diff --git a/.github/actions/manylinux_2014_setup/action.yml b/.github/actions/manylinux_2014_setup/action.yml index 71bb3f0a..5efb89ae 100644 --- a/.github/actions/manylinux_2014_setup/action.yml +++ b/.github/actions/manylinux_2014_setup/action.yml @@ -108,4 +108,4 @@ runs: uses: hendrikmuhs/ccache-action@v1.2.11 # Note: pinned due to GLIBC incompatibility in later releases with: key: ${{ github.job }} - save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-java' }} \ No newline at end of file + save: ${{ github.ref == 'refs/heads/main' || github.repository != 'duckdb/duckdb-java' }} diff --git a/.github/workflows/Java.yml b/.github/workflows/Java.yml index 088dbedd..7db850fa 100644 --- a/.github/workflows/Java.yml +++ b/.github/workflows/Java.yml @@ -26,7 +26,7 @@ jobs: name: Java Linux (amd64) runs-on: ubuntu-latest container: - image: quay.io/pypa/manylinux2014_x86_64 + image: quay.io/pypa/manylinux_2_28_x86_64 env: GEN: ninja ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true @@ -71,7 +71,7 @@ jobs: name: Java Linux (aarch64) runs-on: ubuntu-latest container: - image: ubuntu:18.04 + image: ubuntu:20.04 needs: java-linux-amd64 env: GEN: ninja @@ -239,8 +239,8 @@ jobs: - name: Combine JARs shell: bash run: | - mkdir -p ~/.gnupg - echo "pinentry-mode loopback" > ~/.gnupg/gpg.conf + mkdir -m 700 -p ~/.gnupg + echo -e "passphrase asdf\npinentry-mode loopback\nno-tty\nbatch\n" > ~/.gnupg/gpg.conf if [[ "$GITHUB_REF" =~ ^(refs/heads/main|refs/tags/v.+)$ && "$GITHUB_REPOSITORY" = "duckdb/duckdb-java" ]] ; then export XML=' ' mkdir ~/.m2 - echo $XML | sed "s/PASSWORD/${{ secrets.MAVEN_PASSWORD }}/" > ~/.m2/settings.xml + echo $XML | sed "s|PASSWORD|${{ secrets.MAVEN_PASSWORD }}|" > ~/.m2/settings.xml echo "${{ secrets.MAVEN_PGP_PK }}" | base64 -d > maven_pgp_key gpg --batch --import maven_pgp_key python scripts/jdbc_maven_deploy.py ${{ github.ref_name }} jdbc-artifacts . @@ -276,7 +276,7 @@ jobs: runs-on: ubuntu-20.04 if: ${{ inputs.skip_tests != 'true' }} needs: java-linux-amd64 - container: quay.io/pypa/manylinux2014_x86_64 + container: quay.io/pypa/manylinux_2_28_x86_64 env: BUILD_JDBC: 1 GEN: ninja diff --git a/CMakeLists.txt b/CMakeLists.txt index b65f369d..3a00fbdc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,13 +19,13 @@ project(DuckDBJava) include_directories(${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2}) -include_directories(src/duckdb/src/include src/duckdb/third_party/concurrentqueue src/duckdb/third_party/fast_float src/duckdb/third_party/fastpforlib src/duckdb/third_party/fmt/include src/duckdb/third_party/fsst src/duckdb/third_party/httplib src/duckdb/third_party/hyperloglog src/duckdb/third_party/jaro_winkler src/duckdb/third_party/jaro_winkler/details src/duckdb/third_party/libpg_query src/duckdb/third_party/libpg_query/include src/duckdb/third_party/lz4 src/duckdb/third_party/brotli/include src/duckdb/third_party/brotli/common src/duckdb/third_party/brotli/dec src/duckdb/third_party/brotli/enc src/duckdb/third_party/mbedtls src/duckdb/third_party/mbedtls/include src/duckdb/third_party/mbedtls/library src/duckdb/third_party/miniz src/duckdb/third_party/pcg src/duckdb/third_party/re2 src/duckdb/third_party/skiplist src/duckdb/third_party/tdigest src/duckdb/third_party/utf8proc src/duckdb/third_party/utf8proc/include src/duckdb/third_party/yyjson/include src/duckdb/extension/parquet/include src/duckdb/third_party/parquet src/duckdb/third_party/thrift src/duckdb/third_party/lz4 src/duckdb/third_party/brotli/include src/duckdb/third_party/brotli/common src/duckdb/third_party/brotli/dec src/duckdb/third_party/brotli/enc src/duckdb/third_party/snappy src/duckdb/third_party/zstd/include src/duckdb/third_party/mbedtls src/duckdb/third_party/mbedtls/include src/duckdb/extension/icu/include src/duckdb/extension/icu/third_party/icu/common src/duckdb/extension/icu/third_party/icu/i18n src/duckdb/extension/json/include) -add_definitions(-DDUCKDB_EXTENSION_PARQUET_LINKED -DDUCKDB_EXTENSION_ICU_LINKED -DDUCKDB_EXTENSION_JSON_LINKED) +include_directories(src/duckdb/src/include src/duckdb/third_party/concurrentqueue src/duckdb/third_party/fast_float src/duckdb/third_party/fastpforlib src/duckdb/third_party/fmt/include src/duckdb/third_party/fsst src/duckdb/third_party/httplib src/duckdb/third_party/hyperloglog src/duckdb/third_party/jaro_winkler src/duckdb/third_party/jaro_winkler/details src/duckdb/third_party/libpg_query src/duckdb/third_party/libpg_query/include src/duckdb/third_party/lz4 src/duckdb/third_party/brotli/include src/duckdb/third_party/brotli/common src/duckdb/third_party/brotli/dec src/duckdb/third_party/brotli/enc src/duckdb/third_party/mbedtls src/duckdb/third_party/mbedtls/include src/duckdb/third_party/mbedtls/library src/duckdb/third_party/miniz src/duckdb/third_party/pcg src/duckdb/third_party/re2 src/duckdb/third_party/skiplist src/duckdb/third_party/tdigest src/duckdb/third_party/utf8proc src/duckdb/third_party/utf8proc/include src/duckdb/third_party/yyjson/include src/duckdb/third_party/zstd/include src/duckdb/extension/core_functions/include src/duckdb/extension/parquet/include src/duckdb/third_party/parquet src/duckdb/third_party/thrift src/duckdb/third_party/lz4 src/duckdb/third_party/brotli/include src/duckdb/third_party/brotli/common src/duckdb/third_party/brotli/dec src/duckdb/third_party/brotli/enc src/duckdb/third_party/snappy src/duckdb/third_party/mbedtls src/duckdb/third_party/mbedtls/include src/duckdb/third_party/zstd/include src/duckdb/extension/icu/include src/duckdb/extension/icu/third_party/icu/common src/duckdb/extension/icu/third_party/icu/i18n src/duckdb/extension/json/include) +add_definitions(-DDUCKDB_EXTENSION_CORE_FUNCTIONS_LINKED -DDUCKDB_EXTENSION_PARQUET_LINKED -DDUCKDB_EXTENSION_ICU_LINKED -DDUCKDB_EXTENSION_JSON_LINKED) add_definitions(-DDUCKDB_EXTENSION_AUTOLOAD_DEFAULT=1 -DDUCKDB_EXTENSION_AUTOINSTALL_DEFAULT=1) file(GLOB_RECURSE JAVA_SRC_FILES src/main/java/org/duckdb/*.java) file(GLOB_RECURSE JAVA_TEST_FILES src/test/java/org/duckdb/*.java) -set(DUCKDB_SRC_FILES src/duckdb/ub_src_catalog.cpp src/duckdb/ub_src_catalog_catalog_entry.cpp src/duckdb/ub_src_catalog_catalog_entry_dependency.cpp src/duckdb/ub_src_catalog_default.cpp src/duckdb/ub_src_common_adbc.cpp src/duckdb/ub_src_common_adbc_nanoarrow.cpp src/duckdb/ub_src_common.cpp src/duckdb/ub_src_common_arrow_appender.cpp src/duckdb/ub_src_common_arrow.cpp src/duckdb/ub_src_common_crypto.cpp src/duckdb/ub_src_common_enums.cpp src/duckdb/ub_src_common_exception.cpp src/duckdb/ub_src_common_operator.cpp src/duckdb/ub_src_common_progress_bar.cpp src/duckdb/ub_src_common_row_operations.cpp src/duckdb/ub_src_common_serializer.cpp src/duckdb/ub_src_common_sort.cpp src/duckdb/ub_src_common_tree_renderer.cpp src/duckdb/ub_src_common_types.cpp src/duckdb/ub_src_common_types_column.cpp src/duckdb/ub_src_common_types_row.cpp src/duckdb/ub_src_common_value_operations.cpp src/duckdb/src/common/vector_operations/boolean_operators.cpp src/duckdb/src/common/vector_operations/comparison_operators.cpp src/duckdb/src/common/vector_operations/generators.cpp src/duckdb/src/common/vector_operations/is_distinct_from.cpp src/duckdb/src/common/vector_operations/null_operations.cpp src/duckdb/src/common/vector_operations/numeric_inplace_operators.cpp src/duckdb/src/common/vector_operations/vector_cast.cpp src/duckdb/src/common/vector_operations/vector_copy.cpp src/duckdb/src/common/vector_operations/vector_hash.cpp src/duckdb/src/common/vector_operations/vector_storage.cpp src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp src/duckdb/ub_src_core_functions_aggregate_distributive.cpp src/duckdb/ub_src_core_functions_aggregate_holistic.cpp src/duckdb/ub_src_core_functions_aggregate_nested.cpp src/duckdb/ub_src_core_functions_aggregate_regression.cpp src/duckdb/ub_src_core_functions.cpp src/duckdb/ub_src_core_functions_scalar_array.cpp src/duckdb/ub_src_core_functions_scalar_bit.cpp src/duckdb/ub_src_core_functions_scalar_blob.cpp src/duckdb/ub_src_core_functions_scalar_date.cpp src/duckdb/ub_src_core_functions_scalar_debug.cpp src/duckdb/ub_src_core_functions_scalar_enum.cpp src/duckdb/ub_src_core_functions_scalar_generic.cpp src/duckdb/ub_src_core_functions_scalar_list.cpp src/duckdb/ub_src_core_functions_scalar_map.cpp src/duckdb/ub_src_core_functions_scalar_math.cpp src/duckdb/ub_src_core_functions_scalar_operators.cpp src/duckdb/ub_src_core_functions_scalar_random.cpp src/duckdb/ub_src_core_functions_scalar_string.cpp src/duckdb/ub_src_core_functions_scalar_struct.cpp src/duckdb/ub_src_core_functions_scalar_union.cpp src/duckdb/ub_src_execution.cpp src/duckdb/ub_src_execution_expression_executor.cpp src/duckdb/ub_src_execution_index_art.cpp src/duckdb/ub_src_execution_index.cpp src/duckdb/ub_src_execution_nested_loop_join.cpp src/duckdb/ub_src_execution_operator_aggregate.cpp src/duckdb/ub_src_execution_operator_csv_scanner_buffer_manager.cpp src/duckdb/ub_src_execution_operator_csv_scanner_scanner.cpp src/duckdb/ub_src_execution_operator_csv_scanner_sniffer.cpp src/duckdb/ub_src_execution_operator_csv_scanner_state_machine.cpp src/duckdb/ub_src_execution_operator_csv_scanner_table_function.cpp src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp src/duckdb/ub_src_execution_operator_filter.cpp src/duckdb/ub_src_execution_operator_helper.cpp src/duckdb/ub_src_execution_operator_join.cpp src/duckdb/ub_src_execution_operator_order.cpp src/duckdb/ub_src_execution_operator_persistent.cpp src/duckdb/ub_src_execution_operator_projection.cpp src/duckdb/ub_src_execution_operator_scan.cpp src/duckdb/ub_src_execution_operator_schema.cpp src/duckdb/ub_src_execution_operator_set.cpp src/duckdb/ub_src_execution_physical_plan.cpp src/duckdb/ub_src_function_aggregate_distributive.cpp src/duckdb/ub_src_function_aggregate.cpp src/duckdb/ub_src_function.cpp src/duckdb/ub_src_function_cast.cpp src/duckdb/ub_src_function_cast_union.cpp src/duckdb/ub_src_function_pragma.cpp src/duckdb/ub_src_function_scalar_compressed_materialization.cpp src/duckdb/ub_src_function_scalar.cpp src/duckdb/ub_src_function_scalar_generic.cpp src/duckdb/ub_src_function_scalar_list.cpp src/duckdb/ub_src_function_scalar_operators.cpp src/duckdb/ub_src_function_scalar_sequence.cpp src/duckdb/ub_src_function_scalar_string.cpp src/duckdb/ub_src_function_scalar_string_regexp.cpp src/duckdb/ub_src_function_scalar_struct.cpp src/duckdb/ub_src_function_scalar_system.cpp src/duckdb/ub_src_function_table_arrow.cpp src/duckdb/ub_src_function_table.cpp src/duckdb/ub_src_function_table_system.cpp src/duckdb/ub_src_function_table_version.cpp src/duckdb/ub_src_main.cpp src/duckdb/ub_src_main_buffered_data.cpp src/duckdb/ub_src_main_capi.cpp src/duckdb/ub_src_main_capi_cast.cpp src/duckdb/ub_src_main_chunk_scan_state.cpp src/duckdb/ub_src_main_extension.cpp src/duckdb/ub_src_main_relation.cpp src/duckdb/ub_src_main_secret.cpp src/duckdb/ub_src_main_settings.cpp src/duckdb/ub_src_optimizer.cpp src/duckdb/ub_src_optimizer_compressed_materialization.cpp src/duckdb/ub_src_optimizer_join_order.cpp src/duckdb/ub_src_optimizer_matcher.cpp src/duckdb/ub_src_optimizer_pullup.cpp src/duckdb/ub_src_optimizer_pushdown.cpp src/duckdb/ub_src_optimizer_rule.cpp src/duckdb/ub_src_optimizer_statistics_expression.cpp src/duckdb/ub_src_optimizer_statistics_operator.cpp src/duckdb/ub_src_parallel.cpp src/duckdb/ub_src_parser.cpp src/duckdb/ub_src_parser_constraints.cpp src/duckdb/ub_src_parser_expression.cpp src/duckdb/ub_src_parser_parsed_data.cpp src/duckdb/ub_src_parser_query_node.cpp src/duckdb/ub_src_parser_statement.cpp src/duckdb/ub_src_parser_tableref.cpp src/duckdb/ub_src_parser_transform_constraint.cpp src/duckdb/ub_src_parser_transform_expression.cpp src/duckdb/ub_src_parser_transform_helpers.cpp src/duckdb/ub_src_parser_transform_statement.cpp src/duckdb/ub_src_parser_transform_tableref.cpp src/duckdb/ub_src_planner.cpp src/duckdb/ub_src_planner_binder_expression.cpp src/duckdb/ub_src_planner_binder_query_node.cpp src/duckdb/ub_src_planner_binder_statement.cpp src/duckdb/ub_src_planner_binder_tableref.cpp src/duckdb/ub_src_planner_expression.cpp src/duckdb/ub_src_planner_expression_binder.cpp src/duckdb/ub_src_planner_filter.cpp src/duckdb/ub_src_planner_operator.cpp src/duckdb/ub_src_planner_subquery.cpp src/duckdb/ub_src_storage.cpp src/duckdb/ub_src_storage_buffer.cpp src/duckdb/ub_src_storage_checkpoint.cpp src/duckdb/ub_src_storage_compression_alp.cpp src/duckdb/ub_src_storage_compression.cpp src/duckdb/ub_src_storage_compression_chimp.cpp src/duckdb/ub_src_storage_metadata.cpp src/duckdb/ub_src_storage_serialization.cpp src/duckdb/ub_src_storage_statistics.cpp src/duckdb/ub_src_storage_table.cpp src/duckdb/ub_src_transaction.cpp src/duckdb/src/verification/copied_statement_verifier.cpp src/duckdb/src/verification/deserialized_statement_verifier.cpp src/duckdb/src/verification/external_statement_verifier.cpp src/duckdb/src/verification/fetch_row_verifier.cpp src/duckdb/src/verification/no_operator_caching_verifier.cpp src/duckdb/src/verification/parsed_statement_verifier.cpp src/duckdb/src/verification/prepared_statement_verifier.cpp src/duckdb/src/verification/statement_verifier.cpp src/duckdb/src/verification/unoptimized_statement_verifier.cpp src/duckdb/third_party/fmt/format.cc src/duckdb/third_party/fsst/libfsst.cpp src/duckdb/third_party/miniz/miniz.cpp src/duckdb/third_party/re2/re2/bitmap256.cc src/duckdb/third_party/re2/re2/bitstate.cc src/duckdb/third_party/re2/re2/compile.cc src/duckdb/third_party/re2/re2/dfa.cc src/duckdb/third_party/re2/re2/filtered_re2.cc src/duckdb/third_party/re2/re2/mimics_pcre.cc src/duckdb/third_party/re2/re2/nfa.cc src/duckdb/third_party/re2/re2/onepass.cc src/duckdb/third_party/re2/re2/parse.cc src/duckdb/third_party/re2/re2/perl_groups.cc src/duckdb/third_party/re2/re2/prefilter.cc src/duckdb/third_party/re2/re2/prefilter_tree.cc src/duckdb/third_party/re2/re2/prog.cc src/duckdb/third_party/re2/re2/re2.cc src/duckdb/third_party/re2/re2/regexp.cc src/duckdb/third_party/re2/re2/set.cc src/duckdb/third_party/re2/re2/simplify.cc src/duckdb/third_party/re2/re2/stringpiece.cc src/duckdb/third_party/re2/re2/tostring.cc src/duckdb/third_party/re2/re2/unicode_casefold.cc src/duckdb/third_party/re2/re2/unicode_groups.cc src/duckdb/third_party/re2/util/rune.cc src/duckdb/third_party/re2/util/strutil.cc src/duckdb/third_party/hyperloglog/hyperloglog.cpp src/duckdb/third_party/hyperloglog/sds.cpp src/duckdb/third_party/skiplist/SkipList.cpp src/duckdb/third_party/fastpforlib/bitpacking.cpp src/duckdb/third_party/utf8proc/utf8proc.cpp src/duckdb/third_party/utf8proc/utf8proc_wrapper.cpp src/duckdb/third_party/libpg_query/pg_functions.cpp src/duckdb/third_party/libpg_query/postgres_parser.cpp src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp src/duckdb/third_party/libpg_query/src_backend_parser_scan.cpp src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp src/duckdb/third_party/libpg_query/src_common_keywords.cpp src/duckdb/third_party/mbedtls/library/aes.cpp src/duckdb/third_party/mbedtls/library/aria.cpp src/duckdb/third_party/mbedtls/library/asn1parse.cpp src/duckdb/third_party/mbedtls/library/base64.cpp src/duckdb/third_party/mbedtls/library/bignum.cpp src/duckdb/third_party/mbedtls/library/camellia.cpp src/duckdb/third_party/mbedtls/library/cipher.cpp src/duckdb/third_party/mbedtls/library/cipher_wrap.cpp src/duckdb/third_party/mbedtls/library/constant_time.cpp src/duckdb/third_party/mbedtls/library/entropy.cpp src/duckdb/third_party/mbedtls/library/entropy_poll.cpp src/duckdb/third_party/mbedtls/library/gcm.cpp src/duckdb/third_party/mbedtls/library/md.cpp src/duckdb/third_party/mbedtls/library/oid.cpp src/duckdb/third_party/mbedtls/library/pem.cpp src/duckdb/third_party/mbedtls/library/pk.cpp src/duckdb/third_party/mbedtls/library/pk_wrap.cpp src/duckdb/third_party/mbedtls/library/pkparse.cpp src/duckdb/third_party/mbedtls/library/platform_util.cpp src/duckdb/third_party/mbedtls/library/rsa.cpp src/duckdb/third_party/mbedtls/library/rsa_alt_helpers.cpp src/duckdb/third_party/mbedtls/library/sha1.cpp src/duckdb/third_party/mbedtls/library/sha256.cpp src/duckdb/third_party/mbedtls/library/sha512.cpp src/duckdb/third_party/mbedtls/mbedtls_wrapper.cpp src/duckdb/third_party/yyjson/yyjson.cpp src/duckdb/extension/parquet/column_reader.cpp src/duckdb/extension/parquet/column_writer.cpp src/duckdb/extension/parquet/parquet_crypto.cpp src/duckdb/extension/parquet/parquet_extension.cpp src/duckdb/extension/parquet/parquet_metadata.cpp src/duckdb/extension/parquet/parquet_reader.cpp src/duckdb/extension/parquet/parquet_statistics.cpp src/duckdb/extension/parquet/parquet_timestamp.cpp src/duckdb/extension/parquet/parquet_writer.cpp src/duckdb/extension/parquet/serialize_parquet.cpp src/duckdb/extension/parquet/zstd_file_system.cpp src/duckdb/extension/parquet/geo_parquet.cpp src/duckdb/third_party/parquet/parquet_constants.cpp src/duckdb/third_party/parquet/parquet_types.cpp src/duckdb/third_party/thrift/thrift/protocol/TProtocol.cpp src/duckdb/third_party/thrift/thrift/transport/TTransportException.cpp src/duckdb/third_party/thrift/thrift/transport/TBufferTransports.cpp src/duckdb/third_party/snappy/snappy.cc src/duckdb/third_party/snappy/snappy-sinksource.cc src/duckdb/third_party/zstd/decompress/zstd_ddict.cpp src/duckdb/third_party/zstd/decompress/huf_decompress.cpp src/duckdb/third_party/zstd/decompress/zstd_decompress.cpp src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp src/duckdb/third_party/zstd/common/entropy_common.cpp src/duckdb/third_party/zstd/common/fse_decompress.cpp src/duckdb/third_party/zstd/common/zstd_common.cpp src/duckdb/third_party/zstd/common/error_private.cpp src/duckdb/third_party/zstd/common/xxhash.cpp src/duckdb/third_party/zstd/compress/fse_compress.cpp src/duckdb/third_party/zstd/compress/hist.cpp src/duckdb/third_party/zstd/compress/huf_compress.cpp src/duckdb/third_party/zstd/compress/zstd_compress.cpp src/duckdb/third_party/zstd/compress/zstd_compress_literals.cpp src/duckdb/third_party/zstd/compress/zstd_compress_sequences.cpp src/duckdb/third_party/zstd/compress/zstd_compress_superblock.cpp src/duckdb/third_party/zstd/compress/zstd_double_fast.cpp src/duckdb/third_party/zstd/compress/zstd_fast.cpp src/duckdb/third_party/zstd/compress/zstd_lazy.cpp src/duckdb/third_party/zstd/compress/zstd_ldm.cpp src/duckdb/third_party/zstd/compress/zstd_opt.cpp src/duckdb/third_party/lz4/lz4.cpp src/duckdb/third_party/brotli/common/constants.cpp src/duckdb/third_party/brotli/common/context.cpp src/duckdb/third_party/brotli/common/dictionary.cpp src/duckdb/third_party/brotli/common/platform.cpp src/duckdb/third_party/brotli/common/shared_dictionary.cpp src/duckdb/third_party/brotli/common/transform.cpp src/duckdb/third_party/brotli/dec/bit_reader.cpp src/duckdb/third_party/brotli/dec/decode.cpp src/duckdb/third_party/brotli/dec/huffman.cpp src/duckdb/third_party/brotli/dec/state.cpp src/duckdb/third_party/brotli/enc/backward_references.cpp src/duckdb/third_party/brotli/enc/backward_references_hq.cpp src/duckdb/third_party/brotli/enc/bit_cost.cpp src/duckdb/third_party/brotli/enc/block_splitter.cpp src/duckdb/third_party/brotli/enc/brotli_bit_stream.cpp src/duckdb/third_party/brotli/enc/cluster.cpp src/duckdb/third_party/brotli/enc/command.cpp src/duckdb/third_party/brotli/enc/compound_dictionary.cpp src/duckdb/third_party/brotli/enc/compress_fragment.cpp src/duckdb/third_party/brotli/enc/compress_fragment_two_pass.cpp src/duckdb/third_party/brotli/enc/dictionary_hash.cpp src/duckdb/third_party/brotli/enc/encode.cpp src/duckdb/third_party/brotli/enc/encoder_dict.cpp src/duckdb/third_party/brotli/enc/entropy_encode.cpp src/duckdb/third_party/brotli/enc/fast_log.cpp src/duckdb/third_party/brotli/enc/histogram.cpp src/duckdb/third_party/brotli/enc/literal_cost.cpp src/duckdb/third_party/brotli/enc/memory.cpp src/duckdb/third_party/brotli/enc/metablock.cpp src/duckdb/third_party/brotli/enc/static_dict.cpp src/duckdb/third_party/brotli/enc/utf8_util.cpp src/duckdb/extension/icu/./icu-makedate.cpp src/duckdb/extension/icu/./icu-datefunc.cpp src/duckdb/extension/icu/./icu-table-range.cpp src/duckdb/extension/icu/./icu_extension.cpp src/duckdb/extension/icu/./icu-datesub.cpp src/duckdb/extension/icu/./icu-dateadd.cpp src/duckdb/extension/icu/./icu-datetrunc.cpp src/duckdb/extension/icu/./icu-strptime.cpp src/duckdb/extension/icu/./icu-timezone.cpp src/duckdb/extension/icu/./icu-list-range.cpp src/duckdb/extension/icu/./icu-datepart.cpp src/duckdb/extension/icu/./icu-timebucket.cpp src/duckdb/ub_extension_icu_third_party_icu_common.cpp src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp src/duckdb/extension/json/buffered_json_reader.cpp src/duckdb/extension/json/json_enums.cpp src/duckdb/extension/json/json_extension.cpp src/duckdb/extension/json/json_common.cpp src/duckdb/extension/json/json_functions.cpp src/duckdb/extension/json/json_scan.cpp src/duckdb/extension/json/json_serializer.cpp src/duckdb/extension/json/json_deserializer.cpp src/duckdb/extension/json/serialize_json.cpp src/duckdb/ub_extension_json_json_functions.cpp) +set(DUCKDB_SRC_FILES src/duckdb/ub_src_catalog.cpp src/duckdb/ub_src_catalog_catalog_entry.cpp src/duckdb/ub_src_catalog_catalog_entry_dependency.cpp src/duckdb/ub_src_catalog_default.cpp src/duckdb/ub_src_common_adbc.cpp src/duckdb/ub_src_common_adbc_nanoarrow.cpp src/duckdb/ub_src_common.cpp src/duckdb/ub_src_common_arrow_appender.cpp src/duckdb/ub_src_common_arrow.cpp src/duckdb/ub_src_common_crypto.cpp src/duckdb/ub_src_common_enums.cpp src/duckdb/ub_src_common_exception.cpp src/duckdb/ub_src_common_operator.cpp src/duckdb/ub_src_common_progress_bar.cpp src/duckdb/ub_src_common_row_operations.cpp src/duckdb/ub_src_common_serializer.cpp src/duckdb/ub_src_common_sort.cpp src/duckdb/ub_src_common_tree_renderer.cpp src/duckdb/ub_src_common_types.cpp src/duckdb/ub_src_common_types_column.cpp src/duckdb/ub_src_common_types_row.cpp src/duckdb/ub_src_common_value_operations.cpp src/duckdb/src/common/vector_operations/boolean_operators.cpp src/duckdb/src/common/vector_operations/comparison_operators.cpp src/duckdb/src/common/vector_operations/generators.cpp src/duckdb/src/common/vector_operations/is_distinct_from.cpp src/duckdb/src/common/vector_operations/null_operations.cpp src/duckdb/src/common/vector_operations/numeric_inplace_operators.cpp src/duckdb/src/common/vector_operations/vector_cast.cpp src/duckdb/src/common/vector_operations/vector_copy.cpp src/duckdb/src/common/vector_operations/vector_hash.cpp src/duckdb/src/common/vector_operations/vector_storage.cpp src/duckdb/ub_src_execution.cpp src/duckdb/ub_src_execution_expression_executor.cpp src/duckdb/ub_src_execution_index_art.cpp src/duckdb/ub_src_execution_index.cpp src/duckdb/ub_src_execution_nested_loop_join.cpp src/duckdb/ub_src_execution_operator_aggregate.cpp src/duckdb/ub_src_execution_operator_csv_scanner_buffer_manager.cpp src/duckdb/ub_src_execution_operator_csv_scanner_encode.cpp src/duckdb/ub_src_execution_operator_csv_scanner_scanner.cpp src/duckdb/ub_src_execution_operator_csv_scanner_sniffer.cpp src/duckdb/ub_src_execution_operator_csv_scanner_state_machine.cpp src/duckdb/ub_src_execution_operator_csv_scanner_table_function.cpp src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp src/duckdb/ub_src_execution_operator_filter.cpp src/duckdb/ub_src_execution_operator_helper.cpp src/duckdb/ub_src_execution_operator_join.cpp src/duckdb/ub_src_execution_operator_order.cpp src/duckdb/ub_src_execution_operator_persistent.cpp src/duckdb/ub_src_execution_operator_projection.cpp src/duckdb/ub_src_execution_operator_scan.cpp src/duckdb/ub_src_execution_operator_schema.cpp src/duckdb/ub_src_execution_operator_set.cpp src/duckdb/ub_src_execution_physical_plan.cpp src/duckdb/ub_src_function_aggregate_distributive.cpp src/duckdb/ub_src_function_aggregate.cpp src/duckdb/ub_src_function.cpp src/duckdb/ub_src_function_cast.cpp src/duckdb/ub_src_function_cast_union.cpp src/duckdb/ub_src_function_pragma.cpp src/duckdb/ub_src_function_scalar_compressed_materialization.cpp src/duckdb/ub_src_function_scalar.cpp src/duckdb/ub_src_function_scalar_date.cpp src/duckdb/ub_src_function_scalar_generic.cpp src/duckdb/ub_src_function_scalar_list.cpp src/duckdb/ub_src_function_scalar_map.cpp src/duckdb/ub_src_function_scalar_operator.cpp src/duckdb/ub_src_function_scalar_sequence.cpp src/duckdb/ub_src_function_scalar_string.cpp src/duckdb/ub_src_function_scalar_string_regexp.cpp src/duckdb/ub_src_function_scalar_struct.cpp src/duckdb/ub_src_function_scalar_system.cpp src/duckdb/ub_src_function_table_arrow.cpp src/duckdb/ub_src_function_table.cpp src/duckdb/ub_src_function_table_system.cpp src/duckdb/ub_src_function_table_version.cpp src/duckdb/ub_src_function_window.cpp src/duckdb/ub_src_main.cpp src/duckdb/ub_src_main_buffered_data.cpp src/duckdb/ub_src_main_capi.cpp src/duckdb/ub_src_main_capi_cast.cpp src/duckdb/ub_src_main_chunk_scan_state.cpp src/duckdb/ub_src_main_extension.cpp src/duckdb/ub_src_main_relation.cpp src/duckdb/ub_src_main_secret.cpp src/duckdb/ub_src_main_settings.cpp src/duckdb/ub_src_optimizer.cpp src/duckdb/ub_src_optimizer_compressed_materialization.cpp src/duckdb/ub_src_optimizer_join_order.cpp src/duckdb/ub_src_optimizer_matcher.cpp src/duckdb/ub_src_optimizer_pullup.cpp src/duckdb/ub_src_optimizer_pushdown.cpp src/duckdb/ub_src_optimizer_rule.cpp src/duckdb/ub_src_optimizer_statistics_expression.cpp src/duckdb/ub_src_optimizer_statistics_operator.cpp src/duckdb/ub_src_parallel.cpp src/duckdb/ub_src_parser.cpp src/duckdb/ub_src_parser_constraints.cpp src/duckdb/ub_src_parser_expression.cpp src/duckdb/ub_src_parser_parsed_data.cpp src/duckdb/ub_src_parser_query_node.cpp src/duckdb/ub_src_parser_statement.cpp src/duckdb/ub_src_parser_tableref.cpp src/duckdb/ub_src_parser_transform_constraint.cpp src/duckdb/ub_src_parser_transform_expression.cpp src/duckdb/ub_src_parser_transform_helpers.cpp src/duckdb/ub_src_parser_transform_statement.cpp src/duckdb/ub_src_parser_transform_tableref.cpp src/duckdb/ub_src_planner.cpp src/duckdb/ub_src_planner_binder_expression.cpp src/duckdb/ub_src_planner_binder_query_node.cpp src/duckdb/ub_src_planner_binder_statement.cpp src/duckdb/ub_src_planner_binder_tableref.cpp src/duckdb/ub_src_planner_expression.cpp src/duckdb/ub_src_planner_expression_binder.cpp src/duckdb/ub_src_planner_filter.cpp src/duckdb/ub_src_planner_operator.cpp src/duckdb/ub_src_planner_subquery.cpp src/duckdb/ub_src_storage.cpp src/duckdb/ub_src_storage_buffer.cpp src/duckdb/ub_src_storage_checkpoint.cpp src/duckdb/ub_src_storage_compression_alp.cpp src/duckdb/ub_src_storage_compression.cpp src/duckdb/ub_src_storage_compression_chimp.cpp src/duckdb/ub_src_storage_compression_roaring.cpp src/duckdb/ub_src_storage_metadata.cpp src/duckdb/ub_src_storage_serialization.cpp src/duckdb/ub_src_storage_statistics.cpp src/duckdb/ub_src_storage_table.cpp src/duckdb/ub_src_transaction.cpp src/duckdb/src/verification/copied_statement_verifier.cpp src/duckdb/src/verification/deserialized_statement_verifier.cpp src/duckdb/src/verification/external_statement_verifier.cpp src/duckdb/src/verification/fetch_row_verifier.cpp src/duckdb/src/verification/no_operator_caching_verifier.cpp src/duckdb/src/verification/parsed_statement_verifier.cpp src/duckdb/src/verification/prepared_statement_verifier.cpp src/duckdb/src/verification/statement_verifier.cpp src/duckdb/src/verification/unoptimized_statement_verifier.cpp src/duckdb/third_party/fmt/format.cc src/duckdb/third_party/fsst/libfsst.cpp src/duckdb/third_party/miniz/miniz.cpp src/duckdb/third_party/re2/re2/bitmap256.cc src/duckdb/third_party/re2/re2/bitstate.cc src/duckdb/third_party/re2/re2/compile.cc src/duckdb/third_party/re2/re2/dfa.cc src/duckdb/third_party/re2/re2/filtered_re2.cc src/duckdb/third_party/re2/re2/mimics_pcre.cc src/duckdb/third_party/re2/re2/nfa.cc src/duckdb/third_party/re2/re2/onepass.cc src/duckdb/third_party/re2/re2/parse.cc src/duckdb/third_party/re2/re2/perl_groups.cc src/duckdb/third_party/re2/re2/prefilter.cc src/duckdb/third_party/re2/re2/prefilter_tree.cc src/duckdb/third_party/re2/re2/prog.cc src/duckdb/third_party/re2/re2/re2.cc src/duckdb/third_party/re2/re2/regexp.cc src/duckdb/third_party/re2/re2/set.cc src/duckdb/third_party/re2/re2/simplify.cc src/duckdb/third_party/re2/re2/stringpiece.cc src/duckdb/third_party/re2/re2/tostring.cc src/duckdb/third_party/re2/re2/unicode_casefold.cc src/duckdb/third_party/re2/re2/unicode_groups.cc src/duckdb/third_party/re2/util/rune.cc src/duckdb/third_party/re2/util/strutil.cc src/duckdb/third_party/hyperloglog/hyperloglog.cpp src/duckdb/third_party/hyperloglog/sds.cpp src/duckdb/third_party/skiplist/SkipList.cpp src/duckdb/third_party/fastpforlib/bitpacking.cpp src/duckdb/third_party/utf8proc/utf8proc.cpp src/duckdb/third_party/utf8proc/utf8proc_wrapper.cpp src/duckdb/third_party/libpg_query/pg_functions.cpp src/duckdb/third_party/libpg_query/postgres_parser.cpp src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp src/duckdb/third_party/libpg_query/src_backend_parser_scan.cpp src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp src/duckdb/third_party/libpg_query/src_common_keywords.cpp src/duckdb/third_party/mbedtls/library/aes.cpp src/duckdb/third_party/mbedtls/library/aria.cpp src/duckdb/third_party/mbedtls/library/asn1parse.cpp src/duckdb/third_party/mbedtls/library/base64.cpp src/duckdb/third_party/mbedtls/library/bignum.cpp src/duckdb/third_party/mbedtls/library/camellia.cpp src/duckdb/third_party/mbedtls/library/cipher.cpp src/duckdb/third_party/mbedtls/library/cipher_wrap.cpp src/duckdb/third_party/mbedtls/library/constant_time.cpp src/duckdb/third_party/mbedtls/library/entropy.cpp src/duckdb/third_party/mbedtls/library/entropy_poll.cpp src/duckdb/third_party/mbedtls/library/gcm.cpp src/duckdb/third_party/mbedtls/library/md.cpp src/duckdb/third_party/mbedtls/library/oid.cpp src/duckdb/third_party/mbedtls/library/pem.cpp src/duckdb/third_party/mbedtls/library/pk.cpp src/duckdb/third_party/mbedtls/library/pk_wrap.cpp src/duckdb/third_party/mbedtls/library/pkparse.cpp src/duckdb/third_party/mbedtls/library/platform_util.cpp src/duckdb/third_party/mbedtls/library/rsa.cpp src/duckdb/third_party/mbedtls/library/rsa_alt_helpers.cpp src/duckdb/third_party/mbedtls/library/sha1.cpp src/duckdb/third_party/mbedtls/library/sha256.cpp src/duckdb/third_party/mbedtls/library/sha512.cpp src/duckdb/third_party/mbedtls/mbedtls_wrapper.cpp src/duckdb/third_party/yyjson/yyjson.cpp src/duckdb/third_party/zstd/common/debug.cpp src/duckdb/third_party/zstd/common/entropy_common.cpp src/duckdb/third_party/zstd/common/error_private.cpp src/duckdb/third_party/zstd/common/fse_decompress.cpp src/duckdb/third_party/zstd/common/pool.cpp src/duckdb/third_party/zstd/common/threading.cpp src/duckdb/third_party/zstd/common/xxhash.cpp src/duckdb/third_party/zstd/common/zstd_common.cpp src/duckdb/third_party/zstd/compress/fse_compress.cpp src/duckdb/third_party/zstd/compress/hist.cpp src/duckdb/third_party/zstd/compress/huf_compress.cpp src/duckdb/third_party/zstd/compress/zstd_compress.cpp src/duckdb/third_party/zstd/compress/zstd_compress_literals.cpp src/duckdb/third_party/zstd/compress/zstd_compress_sequences.cpp src/duckdb/third_party/zstd/compress/zstd_compress_superblock.cpp src/duckdb/third_party/zstd/compress/zstd_double_fast.cpp src/duckdb/third_party/zstd/compress/zstd_fast.cpp src/duckdb/third_party/zstd/compress/zstd_lazy.cpp src/duckdb/third_party/zstd/compress/zstd_ldm.cpp src/duckdb/third_party/zstd/compress/zstd_opt.cpp src/duckdb/third_party/zstd/compress/zstdmt_compress.cpp src/duckdb/third_party/zstd/decompress/huf_decompress.cpp src/duckdb/third_party/zstd/decompress/zstd_ddict.cpp src/duckdb/third_party/zstd/decompress/zstd_decompress.cpp src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp src/duckdb/third_party/zstd/deprecated/zbuff_common.cpp src/duckdb/third_party/zstd/deprecated/zbuff_compress.cpp src/duckdb/third_party/zstd/deprecated/zbuff_decompress.cpp src/duckdb/third_party/zstd/dict/cover.cpp src/duckdb/third_party/zstd/dict/divsufsort.cpp src/duckdb/third_party/zstd/dict/fastcover.cpp src/duckdb/third_party/zstd/dict/zdict.cpp src/duckdb/extension/core_functions/lambda_functions.cpp src/duckdb/extension/core_functions/core_functions_extension.cpp src/duckdb/extension/core_functions/function_list.cpp src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp src/duckdb/ub_extension_core_functions_aggregate_nested.cpp src/duckdb/ub_extension_core_functions_aggregate_regression.cpp src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp src/duckdb/ub_extension_core_functions_scalar_random.cpp src/duckdb/ub_extension_core_functions_scalar_bit.cpp src/duckdb/ub_extension_core_functions_scalar_math.cpp src/duckdb/ub_extension_core_functions_scalar_operators.cpp src/duckdb/ub_extension_core_functions_scalar_struct.cpp src/duckdb/ub_extension_core_functions_scalar_map.cpp src/duckdb/ub_extension_core_functions_scalar_list.cpp src/duckdb/ub_extension_core_functions_scalar_blob.cpp src/duckdb/ub_extension_core_functions_scalar_array.cpp src/duckdb/ub_extension_core_functions_scalar_date.cpp src/duckdb/ub_extension_core_functions_scalar_string.cpp src/duckdb/ub_extension_core_functions_scalar_generic.cpp src/duckdb/ub_extension_core_functions_scalar_union.cpp src/duckdb/ub_extension_core_functions_scalar_debug.cpp src/duckdb/ub_extension_core_functions_scalar_enum.cpp src/duckdb/extension/parquet/column_reader.cpp src/duckdb/extension/parquet/column_writer.cpp src/duckdb/extension/parquet/parquet_crypto.cpp src/duckdb/extension/parquet/parquet_extension.cpp src/duckdb/extension/parquet/parquet_metadata.cpp src/duckdb/extension/parquet/parquet_reader.cpp src/duckdb/extension/parquet/parquet_statistics.cpp src/duckdb/extension/parquet/parquet_timestamp.cpp src/duckdb/extension/parquet/parquet_writer.cpp src/duckdb/extension/parquet/serialize_parquet.cpp src/duckdb/extension/parquet/zstd_file_system.cpp src/duckdb/extension/parquet/geo_parquet.cpp src/duckdb/third_party/parquet/parquet_types.cpp src/duckdb/third_party/thrift/thrift/protocol/TProtocol.cpp src/duckdb/third_party/thrift/thrift/transport/TTransportException.cpp src/duckdb/third_party/thrift/thrift/transport/TBufferTransports.cpp src/duckdb/third_party/snappy/snappy.cc src/duckdb/third_party/snappy/snappy-sinksource.cc src/duckdb/third_party/lz4/lz4.cpp src/duckdb/third_party/brotli/common/constants.cpp src/duckdb/third_party/brotli/common/context.cpp src/duckdb/third_party/brotli/common/dictionary.cpp src/duckdb/third_party/brotli/common/platform.cpp src/duckdb/third_party/brotli/common/shared_dictionary.cpp src/duckdb/third_party/brotli/common/transform.cpp src/duckdb/third_party/brotli/dec/bit_reader.cpp src/duckdb/third_party/brotli/dec/decode.cpp src/duckdb/third_party/brotli/dec/huffman.cpp src/duckdb/third_party/brotli/dec/state.cpp src/duckdb/third_party/brotli/enc/backward_references.cpp src/duckdb/third_party/brotli/enc/backward_references_hq.cpp src/duckdb/third_party/brotli/enc/bit_cost.cpp src/duckdb/third_party/brotli/enc/block_splitter.cpp src/duckdb/third_party/brotli/enc/brotli_bit_stream.cpp src/duckdb/third_party/brotli/enc/cluster.cpp src/duckdb/third_party/brotli/enc/command.cpp src/duckdb/third_party/brotli/enc/compound_dictionary.cpp src/duckdb/third_party/brotli/enc/compress_fragment.cpp src/duckdb/third_party/brotli/enc/compress_fragment_two_pass.cpp src/duckdb/third_party/brotli/enc/dictionary_hash.cpp src/duckdb/third_party/brotli/enc/encode.cpp src/duckdb/third_party/brotli/enc/encoder_dict.cpp src/duckdb/third_party/brotli/enc/entropy_encode.cpp src/duckdb/third_party/brotli/enc/fast_log.cpp src/duckdb/third_party/brotli/enc/histogram.cpp src/duckdb/third_party/brotli/enc/literal_cost.cpp src/duckdb/third_party/brotli/enc/memory.cpp src/duckdb/third_party/brotli/enc/metablock.cpp src/duckdb/third_party/brotli/enc/static_dict.cpp src/duckdb/third_party/brotli/enc/utf8_util.cpp src/duckdb/extension/icu/./icu-timebucket.cpp src/duckdb/extension/icu/./icu-timezone.cpp src/duckdb/extension/icu/./icu-datetrunc.cpp src/duckdb/extension/icu/./icu_extension.cpp src/duckdb/extension/icu/./icu-dateadd.cpp src/duckdb/extension/icu/./icu-table-range.cpp src/duckdb/extension/icu/./icu-datesub.cpp src/duckdb/extension/icu/./icu-datefunc.cpp src/duckdb/extension/icu/./icu-makedate.cpp src/duckdb/extension/icu/./icu-strptime.cpp src/duckdb/extension/icu/./icu-list-range.cpp src/duckdb/extension/icu/./icu-datepart.cpp src/duckdb/ub_extension_icu_third_party_icu_common.cpp src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp src/duckdb/extension/json/buffered_json_reader.cpp src/duckdb/extension/json/json_enums.cpp src/duckdb/extension/json/json_extension.cpp src/duckdb/extension/json/json_common.cpp src/duckdb/extension/json/json_functions.cpp src/duckdb/extension/json/json_scan.cpp src/duckdb/extension/json/json_serializer.cpp src/duckdb/extension/json/json_deserializer.cpp src/duckdb/extension/json/serialize_json.cpp src/duckdb/ub_extension_json_json_functions.cpp) set(CMAKE_JAVA_COMPILE_FLAGS -source 1.8 -target 1.8 -encoding utf-8) diff --git a/scripts/jdbc_maven_deploy.py b/scripts/jdbc_maven_deploy.py index 0fabceca..9f40fe46 100644 --- a/scripts/jdbc_maven_deploy.py +++ b/scripts/jdbc_maven_deploy.py @@ -115,8 +115,8 @@ def exec(cmd): 1.6.14 true - ossrh - https://oss.sonatype.org/ + ossrh + https://oss.sonatype.org/ @@ -179,7 +179,7 @@ def exec(cmd): shutil.copyfile(jar, os.path.join(results_dir, os.path.basename(jar))) print("JARs created, uploading (this can take a while!)") -deploy_cmd_prefix = 'mvn gpg:sign-and-deploy-file -Durl=%s -DrepositoryId=ossrh' % deploy_url +deploy_cmd_prefix = 'mvn --no-transfer-progress gpg:sign-and-deploy-file -Durl=%s -DrepositoryId=ossrh' % deploy_url exec("%s -DpomFile=%s -Dfile=%s" % (deploy_cmd_prefix, pom, binary_jar)) exec("%s -Dclassifier=sources -DpomFile=%s -Dfile=%s" % (deploy_cmd_prefix, pom, sources_jar)) exec("%s -Dclassifier=javadoc -DpomFile=%s -Dfile=%s" % (deploy_cmd_prefix, pom, javadoc_jar)) diff --git a/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp b/src/duckdb/extension/core_functions/aggregate/algebraic/avg.cpp similarity index 98% rename from src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp rename to src/duckdb/extension/core_functions/aggregate/algebraic/avg.cpp index d00e743f..f242b277 100644 --- a/src/duckdb/src/core_functions/aggregate/algebraic/avg.cpp +++ b/src/duckdb/extension/core_functions/aggregate/algebraic/avg.cpp @@ -1,5 +1,5 @@ -#include "duckdb/core_functions/aggregate/algebraic_functions.hpp" -#include "duckdb/core_functions/aggregate/sum_helpers.hpp" +#include "core_functions/aggregate/algebraic_functions.hpp" +#include "core_functions/aggregate/sum_helpers.hpp" #include "duckdb/common/types/hugeint.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/function/function_set.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/algebraic/corr.cpp b/src/duckdb/extension/core_functions/aggregate/algebraic/corr.cpp similarity index 53% rename from src/duckdb/src/core_functions/aggregate/algebraic/corr.cpp rename to src/duckdb/extension/core_functions/aggregate/algebraic/corr.cpp index 61678684..bf53a5ad 100644 --- a/src/duckdb/src/core_functions/aggregate/algebraic/corr.cpp +++ b/src/duckdb/extension/core_functions/aggregate/algebraic/corr.cpp @@ -1,7 +1,7 @@ -#include "duckdb/core_functions/aggregate/algebraic_functions.hpp" -#include "duckdb/core_functions/aggregate/algebraic/covar.hpp" -#include "duckdb/core_functions/aggregate/algebraic/stddev.hpp" -#include "duckdb/core_functions/aggregate/algebraic/corr.hpp" +#include "core_functions/aggregate/algebraic_functions.hpp" +#include "core_functions/aggregate/algebraic/covar.hpp" +#include "core_functions/aggregate/algebraic/stddev.hpp" +#include "core_functions/aggregate/algebraic/corr.hpp" #include "duckdb/function/function_set.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp b/src/duckdb/extension/core_functions/aggregate/algebraic/covar.cpp similarity index 80% rename from src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp rename to src/duckdb/extension/core_functions/aggregate/algebraic/covar.cpp index ced7d8be..fddb9ed2 100644 --- a/src/duckdb/src/core_functions/aggregate/algebraic/covar.cpp +++ b/src/duckdb/extension/core_functions/aggregate/algebraic/covar.cpp @@ -1,6 +1,6 @@ -#include "duckdb/core_functions/aggregate/algebraic_functions.hpp" +#include "core_functions/aggregate/algebraic_functions.hpp" #include "duckdb/common/types/null_value.hpp" -#include "duckdb/core_functions/aggregate/algebraic/covar.hpp" +#include "core_functions/aggregate/algebraic/covar.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/aggregate/algebraic/stddev.cpp b/src/duckdb/extension/core_functions/aggregate/algebraic/stddev.cpp similarity index 91% rename from src/duckdb/src/core_functions/aggregate/algebraic/stddev.cpp rename to src/duckdb/extension/core_functions/aggregate/algebraic/stddev.cpp index b21467ee..e9d14ee2 100644 --- a/src/duckdb/src/core_functions/aggregate/algebraic/stddev.cpp +++ b/src/duckdb/extension/core_functions/aggregate/algebraic/stddev.cpp @@ -1,7 +1,7 @@ -#include "duckdb/core_functions/aggregate/algebraic_functions.hpp" +#include "core_functions/aggregate/algebraic_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/function/function_set.hpp" -#include "duckdb/core_functions/aggregate/algebraic/stddev.hpp" +#include "core_functions/aggregate/algebraic/stddev.hpp" #include namespace duckdb { diff --git a/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/approx_count.cpp similarity index 98% rename from src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/approx_count.cpp index 13d33220..37f05b20 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/approx_count.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/approx_count.cpp @@ -1,7 +1,7 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/types/hash.hpp" #include "duckdb/common/types/hyperloglog.hpp" -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/function/function_set.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "hyperloglog.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/arg_min_max.cpp similarity index 90% rename from src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/arg_min_max.cpp index 5120bc79..63c112b3 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/arg_min_max.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/arg_min_max.cpp @@ -1,14 +1,14 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/operator/comparison_operators.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/function/cast/cast_function_set.hpp" #include "duckdb/function/function_set.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/planner/expression/bound_comparison_expression.hpp" #include "duckdb/planner/expression_binder.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" -#include "duckdb/core_functions/aggregate/minmax_n_helpers.hpp" +#include "duckdb/function/create_sort_key.hpp" +#include "duckdb/function/aggregate/minmax_n_helpers.hpp" namespace duckdb { @@ -192,7 +192,7 @@ struct GenericArgMinMaxState { static void PrepareData(Vector &by, idx_t count, Vector &extra_state, UnifiedVectorFormat &result) { OrderModifiers modifiers(ORDER_TYPE, OrderByNullType::NULLS_LAST); - CreateSortKeyHelpers::CreateSortKey(by, count, modifiers, extra_state); + CreateSortKeyHelpers::CreateSortKeyWithValidity(by, extra_state, modifiers, count); extra_state.ToUnifiedFormat(count, result); } }; @@ -285,7 +285,6 @@ struct VectorArgMinMaxBase : ArgMinMaxBase { target.arg_null = source.arg_null; if (!target.arg_null) { STATE::template AssignValue(target.arg, source.arg); - ; } target.is_initialized = true; } @@ -303,21 +302,43 @@ struct VectorArgMinMaxBase : ArgMinMaxBase { static unique_ptr Bind(ClientContext &context, AggregateFunction &function, vector> &arguments) { + if (arguments[1]->return_type.InternalType() == PhysicalType::VARCHAR) { + ExpressionBinder::PushCollation(context, arguments[1], arguments[1]->return_type); + } function.arguments[0] = arguments[0]->return_type; function.return_type = arguments[0]->return_type; return nullptr; } }; +template +AggregateFunction GetGenericArgMinMaxFunction() { + using STATE = ArgMinMaxState; + return AggregateFunction( + {LogicalType::ANY, LogicalType::ANY}, LogicalType::ANY, AggregateFunction::StateSize, + AggregateFunction::StateInitialize, OP::template Update, + AggregateFunction::StateCombine, AggregateFunction::StateVoidFinalize, nullptr, OP::Bind, + AggregateFunction::StateDestroy); +} + template AggregateFunction GetVectorArgMinMaxFunctionInternal(const LogicalType &by_type, const LogicalType &type) { +#ifndef DUCKDB_SMALLER_BINARY using STATE = ArgMinMaxState; - return AggregateFunction( - {type, by_type}, type, AggregateFunction::StateSize, AggregateFunction::StateInitialize, - OP::template Update, AggregateFunction::StateCombine, - AggregateFunction::StateVoidFinalize, nullptr, OP::Bind, AggregateFunction::StateDestroy); + return AggregateFunction({type, by_type}, type, AggregateFunction::StateSize, + AggregateFunction::StateInitialize, + OP::template Update, AggregateFunction::StateCombine, + AggregateFunction::StateVoidFinalize, nullptr, OP::Bind, + AggregateFunction::StateDestroy); +#else + auto function = GetGenericArgMinMaxFunction(); + function.arguments = {type, by_type}; + function.return_type = type; + return function; +#endif } +#ifndef DUCKDB_SMALLER_BINARY template AggregateFunction GetVectorArgMinMaxFunctionBy(const LogicalType &by_type, const LogicalType &type) { switch (by_type.InternalType()) { @@ -335,6 +356,7 @@ AggregateFunction GetVectorArgMinMaxFunctionBy(const LogicalType &by_type, const throw InternalException("Unimplemented arg_min/arg_max aggregate"); } } +#endif static const vector ArgMaxByTypes() { vector types = {LogicalType::INTEGER, LogicalType::BIGINT, LogicalType::HUGEINT, @@ -347,21 +369,34 @@ template void AddVectorArgMinMaxFunctionBy(AggregateFunctionSet &fun, const LogicalType &type) { auto by_types = ArgMaxByTypes(); for (const auto &by_type : by_types) { +#ifndef DUCKDB_SMALLER_BINARY fun.AddFunction(GetVectorArgMinMaxFunctionBy(by_type, type)); +#else + fun.AddFunction(GetVectorArgMinMaxFunctionInternal(by_type, type)); +#endif } } template AggregateFunction GetArgMinMaxFunctionInternal(const LogicalType &by_type, const LogicalType &type) { +#ifndef DUCKDB_SMALLER_BINARY using STATE = ArgMinMaxState; - auto function = AggregateFunction::BinaryAggregate(type, by_type, type); + auto function = + AggregateFunction::BinaryAggregate( + type, by_type, type); if (type.InternalType() == PhysicalType::VARCHAR || by_type.InternalType() == PhysicalType::VARCHAR) { function.destructor = AggregateFunction::StateDestroy; } function.bind = OP::Bind; +#else + auto function = GetGenericArgMinMaxFunction(); + function.arguments = {type, by_type}; + function.return_type = type; +#endif return function; } +#ifndef DUCKDB_SMALLER_BINARY template AggregateFunction GetArgMinMaxFunctionBy(const LogicalType &by_type, const LogicalType &type) { switch (by_type.InternalType()) { @@ -379,18 +414,24 @@ AggregateFunction GetArgMinMaxFunctionBy(const LogicalType &by_type, const Logic throw InternalException("Unimplemented arg_min/arg_max by aggregate"); } } +#endif template void AddArgMinMaxFunctionBy(AggregateFunctionSet &fun, const LogicalType &type) { auto by_types = ArgMaxByTypes(); for (const auto &by_type : by_types) { +#ifndef DUCKDB_SMALLER_BINARY fun.AddFunction(GetArgMinMaxFunctionBy(by_type, type)); +#else + fun.AddFunction(GetArgMinMaxFunctionInternal(by_type, type)); +#endif } } template static AggregateFunction GetDecimalArgMinMaxFunction(const LogicalType &by_type, const LogicalType &type) { D_ASSERT(type.id() == LogicalTypeId::DECIMAL); +#ifndef DUCKDB_SMALLER_BINARY switch (type.InternalType()) { case PhysicalType::INT16: return GetArgMinMaxFunctionBy(by_type, type); @@ -401,6 +442,9 @@ static AggregateFunction GetDecimalArgMinMaxFunction(const LogicalType &by_type, default: return GetArgMinMaxFunctionBy(by_type, type); } +#else + return GetArgMinMaxFunctionInternal(by_type, type); +#endif } template @@ -449,17 +493,19 @@ void AddDecimalArgMinMaxFunctionBy(AggregateFunctionSet &fun, const LogicalType template void AddGenericArgMinMaxFunction(AggregateFunctionSet &fun) { - using STATE = ArgMinMaxState; - fun.AddFunction( - AggregateFunction({LogicalType::ANY, LogicalType::ANY}, LogicalType::ANY, AggregateFunction::StateSize, - AggregateFunction::StateInitialize, OP::template Update, - AggregateFunction::StateCombine, AggregateFunction::StateVoidFinalize, - nullptr, OP::Bind, AggregateFunction::StateDestroy)); + fun.AddFunction(GetGenericArgMinMaxFunction()); } template static void AddArgMinMaxFunctions(AggregateFunctionSet &fun) { + using GENERIC_VECTOR_OP = VectorArgMinMaxBase>; +#ifndef DUCKDB_SMALLER_BINARY using OP = ArgMinMaxBase; + using VECTOR_OP = VectorArgMinMaxBase; +#else + using OP = GENERIC_VECTOR_OP; + using VECTOR_OP = GENERIC_VECTOR_OP; +#endif AddArgMinMaxFunctionBy(fun, LogicalType::INTEGER); AddArgMinMaxFunctionBy(fun, LogicalType::BIGINT); AddArgMinMaxFunctionBy(fun, LogicalType::DOUBLE); @@ -474,11 +520,9 @@ static void AddArgMinMaxFunctions(AggregateFunctionSet &fun) { AddDecimalArgMinMaxFunctionBy(fun, by_type); } - using VECTOR_OP = VectorArgMinMaxBase; AddVectorArgMinMaxFunctionBy(fun, LogicalType::ANY); // we always use LessThan when using sort keys because the ORDER_TYPE takes care of selecting the lowest or highest - using GENERIC_VECTOR_OP = VectorArgMinMaxBase>; AddGenericArgMinMaxFunction(fun); } @@ -577,7 +621,7 @@ static void SpecializeArgMinMaxNFunction(AggregateFunction &function) { using OP = MinMaxNOperation; function.state_size = AggregateFunction::StateSize; - function.initialize = AggregateFunction::StateInitialize; + function.initialize = AggregateFunction::StateInitialize; function.combine = AggregateFunction::StateCombine; function.destructor = AggregateFunction::StateDestroy; @@ -588,6 +632,7 @@ static void SpecializeArgMinMaxNFunction(AggregateFunction &function) { template static void SpecializeArgMinMaxNFunction(PhysicalType arg_type, AggregateFunction &function) { switch (arg_type) { +#ifndef DUCKDB_SMALLER_BINARY case PhysicalType::VARCHAR: SpecializeArgMinMaxNFunction(function); break; @@ -603,6 +648,7 @@ static void SpecializeArgMinMaxNFunction(PhysicalType arg_type, AggregateFunctio case PhysicalType::DOUBLE: SpecializeArgMinMaxNFunction, COMPARATOR>(function); break; +#endif default: SpecializeArgMinMaxNFunction(function); break; @@ -612,6 +658,7 @@ static void SpecializeArgMinMaxNFunction(PhysicalType arg_type, AggregateFunctio template static void SpecializeArgMinMaxNFunction(PhysicalType val_type, PhysicalType arg_type, AggregateFunction &function) { switch (val_type) { +#ifndef DUCKDB_SMALLER_BINARY case PhysicalType::VARCHAR: SpecializeArgMinMaxNFunction(arg_type, function); break; @@ -627,6 +674,7 @@ static void SpecializeArgMinMaxNFunction(PhysicalType val_type, PhysicalType arg case PhysicalType::DOUBLE: SpecializeArgMinMaxNFunction, COMPARATOR>(arg_type, function); break; +#endif default: SpecializeArgMinMaxNFunction(arg_type, function); break; diff --git a/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/bitagg.cpp similarity index 99% rename from src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/bitagg.cpp index af305635..241d2569 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/bitagg.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/bitagg.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/types/null_value.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/bitstring_agg.cpp similarity index 91% rename from src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/bitstring_agg.cpp index 36920a47..4e8143c7 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/bitstring_agg.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/bitstring_agg.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/types/null_value.hpp" #include "duckdb/common/vector_operations/aggregate_executor.hpp" @@ -8,6 +8,8 @@ #include "duckdb/execution/expression_executor.hpp" #include "duckdb/common/types/cast_helpers.hpp" #include "duckdb/common/operator/subtract.hpp" +#include "duckdb/common/serializer/deserializer.hpp" +#include "duckdb/common/serializer/serializer.hpp" namespace duckdb { @@ -43,6 +45,21 @@ struct BitstringAggBindData : public FunctionData { } return false; } + + static void Serialize(Serializer &serializer, const optional_ptr bind_data_p, + const AggregateFunction &) { + auto &bind_data = bind_data_p->Cast(); + serializer.WriteProperty(100, "min", bind_data.min); + serializer.WriteProperty(101, "max", bind_data.max); + } + + static unique_ptr Deserialize(Deserializer &deserializer, AggregateFunction &) { + Value min; + Value max; + deserializer.ReadProperty(100, "min", min); + deserializer.ReadProperty(101, "max", max); + return make_uniq(min, max); + } }; struct BitStringAggOperation { @@ -247,7 +264,9 @@ static void BindBitString(AggregateFunctionSet &bitstring_agg, const LogicalType auto function = AggregateFunction::UnaryAggregateDestructor, TYPE, string_t, BitStringAggOperation>( type, LogicalType::BIT); - function.bind = BindBitstringAgg; // create new a 'BitstringAggBindData' + function.bind = BindBitstringAgg; // create new a 'BitstringAggBindData' + function.serialize = BitstringAggBindData::Serialize; + function.deserialize = BitstringAggBindData::Deserialize; function.statistics = BitstringPropagateStats; // stores min and max from column stats in BitstringAggBindData bitstring_agg.AddFunction(function); // uses the BitstringAggBindData to access statistics for creating bitstring function.arguments = {type, type, type}; diff --git a/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/bool.cpp similarity index 93% rename from src/duckdb/src/core_functions/aggregate/distributive/bool.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/bool.cpp index 20f2f3ba..9b781f84 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/bool.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/bool.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" @@ -95,6 +95,7 @@ AggregateFunction BoolOrFun::GetFunction() { auto fun = AggregateFunction::UnaryAggregate( LogicalType(LogicalTypeId::BOOLEAN), LogicalType::BOOLEAN); fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; + fun.distinct_dependent = AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT; return fun; } @@ -102,6 +103,7 @@ AggregateFunction BoolAndFun::GetFunction() { auto fun = AggregateFunction::UnaryAggregate( LogicalType(LogicalTypeId::BOOLEAN), LogicalType::BOOLEAN); fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; + fun.distinct_dependent = AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT; return fun; } diff --git a/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/kurtosis.cpp similarity index 98% rename from src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/kurtosis.cpp index bca51bd1..4f9f6f30 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/kurtosis.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/kurtosis.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/distributive/product.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/product.cpp similarity index 95% rename from src/duckdb/src/core_functions/aggregate/distributive/product.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/product.cpp index fbe76617..324893f6 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/product.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/product.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/skew.cpp similarity index 96% rename from src/duckdb/src/core_functions/aggregate/distributive/skew.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/skew.cpp index ef42dce4..12f23761 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/skew.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/skew.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" @@ -62,7 +62,7 @@ struct SkewnessOperation { } double div = std::sqrt(p); if (div == 0) { - finalize_data.ReturnNull(); + target = NAN; return; } double temp1 = std::sqrt(n * (n - 1)) / (n - 2); diff --git a/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/string_agg.cpp similarity index 98% rename from src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/string_agg.cpp index f2caa890..b694a236 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/string_agg.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/string_agg.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/types/null_value.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp b/src/duckdb/extension/core_functions/aggregate/distributive/sum.cpp similarity index 94% rename from src/duckdb/src/core_functions/aggregate/distributive/sum.cpp rename to src/duckdb/extension/core_functions/aggregate/distributive/sum.cpp index 3aa254e3..be37d5df 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/sum.cpp +++ b/src/duckdb/extension/core_functions/aggregate/distributive/sum.cpp @@ -1,5 +1,5 @@ -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" -#include "duckdb/core_functions/aggregate/sum_helpers.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/sum_helpers.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/types/decimal.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" @@ -157,6 +157,12 @@ unique_ptr SumPropagateStats(ClientContext &context, BoundAggreg AggregateFunction GetSumAggregate(PhysicalType type) { switch (type) { + case PhysicalType::BOOL: { + auto function = AggregateFunction::UnaryAggregate, bool, hugeint_t, IntegerSumOperation>( + LogicalType::BOOLEAN, LogicalType::HUGEINT); + function.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; + return function; + } case PhysicalType::INT16: { auto function = AggregateFunction::UnaryAggregate, int16_t, hugeint_t, IntegerSumOperation>( LogicalType::SMALLINT, LogicalType::HUGEINT); @@ -209,6 +215,7 @@ AggregateFunctionSet SumFun::GetFunctions() { sum.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL}, LogicalTypeId::DECIMAL, nullptr, nullptr, nullptr, nullptr, nullptr, FunctionNullHandling::DEFAULT_NULL_HANDLING, nullptr, BindDecimalSum)); + sum.AddFunction(GetSumAggregate(PhysicalType::BOOL)); sum.AddFunction(GetSumAggregate(PhysicalType::INT16)); sum.AddFunction(GetSumAggregate(PhysicalType::INT32)); sum.AddFunction(GetSumAggregate(PhysicalType::INT64)); @@ -218,6 +225,10 @@ AggregateFunctionSet SumFun::GetFunctions() { return sum; } +AggregateFunction CountIfFun::GetFunction() { + return GetSumAggregate(PhysicalType::BOOL); +} + AggregateFunctionSet SumNoOverflowFun::GetFunctions() { AggregateFunctionSet sum_no_overflow; sum_no_overflow.AddFunction(GetSumAggregateNoOverflow(PhysicalType::INT32)); diff --git a/src/duckdb/src/core_functions/aggregate/holistic/approx_top_k.cpp b/src/duckdb/extension/core_functions/aggregate/holistic/approx_top_k.cpp similarity index 92% rename from src/duckdb/src/core_functions/aggregate/holistic/approx_top_k.cpp rename to src/duckdb/extension/core_functions/aggregate/holistic/approx_top_k.cpp index 19b3ae88..4eb2b9d3 100644 --- a/src/duckdb/src/core_functions/aggregate/holistic/approx_top_k.cpp +++ b/src/duckdb/extension/core_functions/aggregate/holistic/approx_top_k.cpp @@ -1,6 +1,6 @@ -#include "duckdb/core_functions/aggregate/histogram_helpers.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" -#include "duckdb/core_functions/aggregate/sort_key_helpers.hpp" +#include "core_functions/aggregate/histogram_helpers.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" +#include "duckdb/function/aggregate/sort_key_helpers.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/common/string_map_set.hpp" #include "duckdb/common/printer.hpp" @@ -48,7 +48,7 @@ struct ApproxTopKValue { uint32_t capacity = 0; }; -struct ApproxTopKState { +struct InternalApproxTopKState { // the top-k data structure has two components // a list of k values sorted on "count" (i.e. values[0] has the lowest count) // a lookup map: string_t -> idx in "values" array @@ -169,15 +169,34 @@ struct ApproxTopKState { } }; +struct ApproxTopKState { + InternalApproxTopKState *state; + + InternalApproxTopKState &GetState() { + if (!state) { + state = new InternalApproxTopKState(); + } + return *state; + } + + const InternalApproxTopKState &GetState() const { + if (!state) { + throw InternalException("No state available"); + } + return *state; + } +}; + struct ApproxTopKOperation { template static void Initialize(STATE &state) { - new (&state) STATE(); + state.state = nullptr; } template - static void Operation(STATE &state, const TYPE &input, AggregateInputData &aggr_input, Vector &top_k_vector, + static void Operation(STATE &aggr_state, const TYPE &input, AggregateInputData &aggr_input, Vector &top_k_vector, idx_t offset, idx_t count) { + auto &state = aggr_state.GetState(); if (state.values.empty()) { static constexpr int64_t MAX_APPROX_K = 1000000; // not initialized yet - initialize the K value and set all counters to 0 @@ -208,7 +227,13 @@ struct ApproxTopKOperation { } template - static void Combine(const STATE &source, STATE &target, AggregateInputData &aggr_input) { + static void Combine(const STATE &aggr_source, STATE &aggr_target, AggregateInputData &aggr_input) { + if (!aggr_source.state) { + // source state is empty + return; + } + auto &source = aggr_source.GetState(); + auto &target = aggr_target.GetState(); if (source.values.empty()) { // source is empty return; @@ -279,7 +304,7 @@ struct ApproxTopKOperation { template static void Destroy(STATE &state, AggregateInputData &aggr_input_data) { - state.~STATE(); + delete state.state; } static bool IgnoreNull() { @@ -324,7 +349,7 @@ static void ApproxTopKFinalize(Vector &state_vector, AggregateInputData &, Vecto idx_t new_entries = 0; // figure out how much space we need for (idx_t i = 0; i < count; i++) { - auto &state = *states[sdata.sel->get_index(i)]; + auto &state = states[sdata.sel->get_index(i)]->GetState(); if (state.values.empty()) { continue; } @@ -340,7 +365,7 @@ static void ApproxTopKFinalize(Vector &state_vector, AggregateInputData &, Vecto idx_t current_offset = old_len; for (idx_t i = 0; i < count; i++) { const auto rid = i + offset; - auto &state = *states[sdata.sel->get_index(i)]; + auto &state = states[sdata.sel->get_index(i)]->GetState(); if (state.values.empty()) { mask.SetInvalid(rid); continue; diff --git a/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp b/src/duckdb/extension/core_functions/aggregate/holistic/approximate_quantile.cpp similarity index 88% rename from src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp rename to src/duckdb/extension/core_functions/aggregate/holistic/approximate_quantile.cpp index 5b6abcd2..23d2cf47 100644 --- a/src/duckdb/src/core_functions/aggregate/holistic/approximate_quantile.cpp +++ b/src/duckdb/extension/core_functions/aggregate/holistic/approximate_quantile.cpp @@ -1,5 +1,5 @@ #include "duckdb/execution/expression_executor.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" #include "t_digest.hpp" #include "duckdb/planner/expression.hpp" #include "duckdb/common/operator/cast_operators.hpp" @@ -230,13 +230,18 @@ unique_ptr BindApproxQuantile(ClientContext &context, AggregateFun return make_uniq(quantiles); } -unique_ptr BindApproxQuantileDecimal(ClientContext &context, AggregateFunction &function, - vector> &arguments) { - auto bind_data = BindApproxQuantile(context, function, arguments); - function = GetApproximateQuantileDecimalAggregateFunction(arguments[0]->return_type); +AggregateFunction ApproxQuantileDecimalFunction(const LogicalType &type) { + auto function = GetApproximateQuantileDecimalAggregateFunction(type); function.name = "approx_quantile"; function.serialize = ApproximateQuantileBindData::Serialize; function.deserialize = ApproximateQuantileBindData::Deserialize; + return function; +} + +unique_ptr BindApproxQuantileDecimal(ClientContext &context, AggregateFunction &function, + vector> &arguments) { + auto bind_data = BindApproxQuantile(context, function, arguments); + function = ApproxQuantileDecimalFunction(arguments[0]->return_type); return bind_data; } @@ -344,13 +349,18 @@ AggregateFunction GetApproxQuantileListAggregateFunction(const LogicalType &type } } -unique_ptr BindApproxQuantileDecimalList(ClientContext &context, AggregateFunction &function, - vector> &arguments) { - auto bind_data = BindApproxQuantile(context, function, arguments); - function = GetApproxQuantileListAggregateFunction(arguments[0]->return_type); +AggregateFunction ApproxQuantileDecimalListFunction(const LogicalType &type) { + auto function = GetApproxQuantileListAggregateFunction(type); function.name = "approx_quantile"; function.serialize = ApproximateQuantileBindData::Serialize; function.deserialize = ApproximateQuantileBindData::Deserialize; + return function; +} + +unique_ptr BindApproxQuantileDecimalList(ClientContext &context, AggregateFunction &function, + vector> &arguments) { + auto bind_data = BindApproxQuantile(context, function, arguments); + function = ApproxQuantileDecimalListFunction(arguments[0]->return_type); return bind_data; } @@ -365,11 +375,39 @@ AggregateFunction GetApproxQuantileListAggregate(const LogicalType &type) { return fun; } +unique_ptr ApproxQuantileDecimalDeserialize(Deserializer &deserializer, AggregateFunction &function) { + auto bind_data = ApproximateQuantileBindData::Deserialize(deserializer, function); + auto &return_type = deserializer.Get(); + if (return_type.id() == LogicalTypeId::LIST) { + function = ApproxQuantileDecimalListFunction(function.arguments[0]); + } else { + function = ApproxQuantileDecimalFunction(function.arguments[0]); + } + return bind_data; +} + +AggregateFunction GetApproxQuantileDecimal() { + // stub function - the actual function is set during bind or deserialize + AggregateFunction fun({LogicalTypeId::DECIMAL, LogicalType::FLOAT}, LogicalTypeId::DECIMAL, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, BindApproxQuantileDecimal); + fun.serialize = ApproximateQuantileBindData::Serialize; + fun.deserialize = ApproxQuantileDecimalDeserialize; + return fun; +} + +AggregateFunction GetApproxQuantileDecimalList() { + // stub function - the actual function is set during bind or deserialize + AggregateFunction fun({LogicalTypeId::DECIMAL, LogicalType::LIST(LogicalType::FLOAT)}, + LogicalType::LIST(LogicalTypeId::DECIMAL), nullptr, nullptr, nullptr, nullptr, nullptr, + nullptr, BindApproxQuantileDecimalList); + fun.serialize = ApproximateQuantileBindData::Serialize; + fun.deserialize = ApproxQuantileDecimalDeserialize; + return fun; +} + AggregateFunctionSet ApproxQuantileFun::GetFunctions() { AggregateFunctionSet approx_quantile; - approx_quantile.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL, LogicalType::FLOAT}, LogicalTypeId::DECIMAL, - nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, - BindApproxQuantileDecimal)); + approx_quantile.AddFunction(GetApproxQuantileDecimal()); approx_quantile.AddFunction(GetApproximateQuantileAggregate(LogicalType::SMALLINT)); approx_quantile.AddFunction(GetApproximateQuantileAggregate(LogicalType::INTEGER)); @@ -384,9 +422,7 @@ AggregateFunctionSet ApproxQuantileFun::GetFunctions() { approx_quantile.AddFunction(GetApproximateQuantileAggregate(LogicalType::TIMESTAMP_TZ)); // List variants - approx_quantile.AddFunction(AggregateFunction({LogicalTypeId::DECIMAL, LogicalType::LIST(LogicalType::FLOAT)}, - LogicalType::LIST(LogicalTypeId::DECIMAL), nullptr, nullptr, nullptr, - nullptr, nullptr, nullptr, BindApproxQuantileDecimalList)); + approx_quantile.AddFunction(GetApproxQuantileDecimalList()); approx_quantile.AddFunction(GetApproxQuantileListAggregate(LogicalTypeId::TINYINT)); approx_quantile.AddFunction(GetApproxQuantileListAggregate(LogicalTypeId::SMALLINT)); diff --git a/src/duckdb/src/core_functions/aggregate/holistic/mad.cpp b/src/duckdb/extension/core_functions/aggregate/holistic/mad.cpp similarity index 92% rename from src/duckdb/src/core_functions/aggregate/holistic/mad.cpp rename to src/duckdb/extension/core_functions/aggregate/holistic/mad.cpp index 8be7415f..93516b59 100644 --- a/src/duckdb/src/core_functions/aggregate/holistic/mad.cpp +++ b/src/duckdb/extension/core_functions/aggregate/holistic/mad.cpp @@ -1,9 +1,9 @@ #include "duckdb/execution/expression_executor.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" #include "duckdb/planner/expression.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/operator/abs.hpp" -#include "duckdb/core_functions/aggregate/quantile_state.hpp" +#include "core_functions/aggregate/quantile_state.hpp" namespace duckdb { @@ -190,12 +190,18 @@ struct MedianAbsoluteDeviationOperation : QuantileOperation { } template - static void Window(const INPUT_TYPE *data, const ValidityMask &fmask, const ValidityMask &dmask, - AggregateInputData &aggr_input_data, STATE &state, const SubFrames &frames, Vector &result, - idx_t ridx, const STATE *gstate) { + static void Window(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition, + const_data_ptr_t g_state, data_ptr_t l_state, const SubFrames &frames, Vector &result, + idx_t ridx) { + auto &state = *reinterpret_cast(l_state); + auto gstate = reinterpret_cast(g_state); + + auto &data = state.GetOrCreateWindowCursor(partition); + const auto &fmask = partition.filter_mask; + auto rdata = FlatVector::GetData(result); - QuantileIncluded included(fmask, dmask); + QuantileIncluded included(fmask, data); const auto n = FrameSize(included, frames); if (!n) { @@ -259,11 +265,14 @@ AggregateFunction GetTypedMedianAbsoluteDeviationAggregateFunction(const Logical const LogicalType &target_type) { using STATE = QuantileState; using OP = MedianAbsoluteDeviationOperation; - auto fun = AggregateFunction::UnaryAggregateDestructor(input_type, target_type); + auto fun = AggregateFunction::UnaryAggregateDestructor(input_type, target_type); fun.bind = BindMAD; fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; - fun.window = AggregateFunction::UnaryWindow; +#ifndef DUCKDB_SMALLER_BINARY + fun.window = OP::template Window; fun.window_init = OP::template WindowInit; +#endif return fun; } diff --git a/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp b/src/duckdb/extension/core_functions/aggregate/holistic/mode.cpp similarity index 60% rename from src/duckdb/src/core_functions/aggregate/holistic/mode.cpp rename to src/duckdb/extension/core_functions/aggregate/holistic/mode.cpp index a8d0dbf1..bdfa0fc8 100644 --- a/src/duckdb/src/core_functions/aggregate/holistic/mode.cpp +++ b/src/duckdb/extension/core_functions/aggregate/holistic/mode.cpp @@ -2,45 +2,22 @@ #include "duckdb/common/uhugeint.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/operator/comparison_operators.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" +#include "duckdb/common/types/column/column_data_collection.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/common/unordered_map.hpp" #include "duckdb/common/owning_string_map.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" -#include "duckdb/core_functions/aggregate/sort_key_helpers.hpp" +#include "duckdb/function/create_sort_key.hpp" +#include "duckdb/function/aggregate/sort_key_helpers.hpp" +#include "duckdb/common/algorithm.hpp" #include // MODE( ) // Returns the most frequent value for the values within expr1. // NULL values are ignored. If all the values are NULL, or there are 0 rows, then the function returns NULL. -namespace std { - -template <> -struct hash { - inline size_t operator()(const duckdb::interval_t &val) const { - int64_t months, days, micros; - val.Normalize(months, days, micros); - return hash {}(duckdb::UnsafeNumericCast(days)) ^ - hash {}(duckdb::UnsafeNumericCast(months)) ^ hash {}(micros); - } -}; - -template <> -struct hash { - inline size_t operator()(const duckdb::hugeint_t &val) const { - return hash {}(val.upper) ^ hash {}(val.lower); - } -}; - -template <> -struct hash { - inline size_t operator()(const duckdb::uhugeint_t &val) const { - return hash {}(val.upper) ^ hash {}(val.lower); - } -}; - -} // namespace std +namespace std {} // namespace std namespace duckdb { @@ -98,6 +75,17 @@ struct ModeState { bool valid = false; size_t count = 0; + //! The collection being read + const ColumnDataCollection *inputs; + //! The state used for reading the collection on this thread + ColumnDataScanState scan; + //! The data chunk paged into into + DataChunk page; + //! The data pointer + const KEY_TYPE *data = nullptr; + //! The validity mask + const ValidityMask *validity = nullptr; + ~ModeState() { if (frequency_map) { delete frequency_map; @@ -107,6 +95,45 @@ struct ModeState { } } + void InitializePage(const WindowPartitionInput &partition) { + if (page.ColumnCount() == 0) { + D_ASSERT(partition.inputs); + inputs = partition.inputs; + D_ASSERT(partition.column_ids.size() == 1); + inputs->InitializeScan(scan, partition.column_ids); + inputs->InitializeScanChunk(scan, page); + } + } + + inline sel_t RowOffset(idx_t row_idx) const { + D_ASSERT(RowIsVisible(row_idx)); + return UnsafeNumericCast(row_idx - scan.current_row_index); + } + + inline bool RowIsVisible(idx_t row_idx) const { + return (row_idx < scan.next_row_index && scan.current_row_index <= row_idx); + } + + inline idx_t Seek(idx_t row_idx) { + if (!RowIsVisible(row_idx)) { + D_ASSERT(inputs); + inputs->Seek(row_idx, scan, page); + data = FlatVector::GetData(page.data[0]); + validity = &FlatVector::Validity(page.data[0]); + } + return RowOffset(row_idx); + } + + inline const KEY_TYPE &GetCell(idx_t row_idx) { + const auto offset = Seek(row_idx); + return data[offset]; + } + + inline bool RowIsValid(idx_t row_idx) { + const auto offset = Seek(row_idx); + return validity->RowIsValid(offset); + } + void Reset() { if (frequency_map) { frequency_map->clear(); @@ -116,7 +143,8 @@ struct ModeState { valid = false; } - void ModeAdd(const KEY_TYPE &key, idx_t row) { + void ModeAdd(idx_t row) { + const auto &key = GetCell(row); auto &attr = (*frequency_map)[key]; auto new_count = (attr.count += 1); if (new_count == 1) { @@ -136,7 +164,8 @@ struct ModeState { } } - void ModeRm(const KEY_TYPE &key, idx_t frame) { + void ModeRm(idx_t frame) { + const auto &key = GetCell(frame); auto &attr = (*frequency_map)[key]; auto old_count = attr.count; nonzero -= size_t(old_count == 1); @@ -162,16 +191,16 @@ struct ModeState { } }; +template struct ModeIncluded { - inline explicit ModeIncluded(const ValidityMask &fmask_p, const ValidityMask &dmask_p) - : fmask(fmask_p), dmask(dmask_p) { + inline explicit ModeIncluded(const ValidityMask &fmask_p, STATE &state) : fmask(fmask_p), state(state) { } inline bool operator()(const idx_t &idx) const { - return fmask.RowIsValid(idx) && dmask.RowIsValid(idx); + return fmask.RowIsValid(idx) && state.RowIsValid(idx); } const ValidityMask &fmask; - const ValidityMask &dmask; + STATE &state; }; template @@ -205,6 +234,7 @@ struct BaseModeFunction { if (!target.frequency_map) { // Copy - don't destroy! Otherwise windowing will break. target.frequency_map = new typename STATE::Counts(*source.frequency_map); + target.count = source.count; return; } for (auto &val : *source.frequency_map) { @@ -226,7 +256,21 @@ struct BaseModeFunction { }; template -struct ModeFunction : BaseModeFunction { +struct TypedModeFunction : BaseModeFunction { + template + static void ConstantOperation(STATE &state, const INPUT_TYPE &key, AggregateUnaryInput &aggr_input, idx_t count) { + if (!state.frequency_map) { + state.frequency_map = TYPE_OP::CreateEmpty(aggr_input.input.allocator); + } + auto &i = (*state.frequency_map)[key]; + i.count += count; + i.first_row = MinValue(i.first_row, state.count); + state.count += count; + } +}; + +template +struct ModeFunction : TypedModeFunction { template static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) { if (!state.frequency_map) { @@ -241,25 +285,12 @@ struct ModeFunction : BaseModeFunction { } } - template - static void ConstantOperation(STATE &state, const INPUT_TYPE &key, AggregateUnaryInput &aggr_input, idx_t count) { - if (!state.frequency_map) { - state.frequency_map = TYPE_OP::CreateEmpty(aggr_input.input.allocator); - } - auto &i = (*state.frequency_map)[key]; - i.count += count; - i.first_row = MinValue(i.first_row, state.count); - state.count += count; - } - template struct UpdateWindowState { STATE &state; - const INPUT_TYPE *data; - ModeIncluded &included; + ModeIncluded &included; - inline UpdateWindowState(STATE &state, const INPUT_TYPE *data, ModeIncluded &included) - : state(state), data(data), included(included) { + inline UpdateWindowState(STATE &state, ModeIncluded &included) : state(state), included(included) { } inline void Neither(idx_t begin, idx_t end) { @@ -268,7 +299,7 @@ struct ModeFunction : BaseModeFunction { inline void Left(idx_t begin, idx_t end) { for (; begin < end; ++begin) { if (included(begin)) { - state.ModeRm(data[begin], begin); + state.ModeRm(begin); } } } @@ -276,7 +307,7 @@ struct ModeFunction : BaseModeFunction { inline void Right(idx_t begin, idx_t end) { for (; begin < end; ++begin) { if (included(begin)) { - state.ModeAdd(data[begin], begin); + state.ModeAdd(begin); } } } @@ -286,9 +317,14 @@ struct ModeFunction : BaseModeFunction { }; template - static void Window(const INPUT_TYPE *data, const ValidityMask &fmask, const ValidityMask &dmask, - AggregateInputData &aggr_input_data, STATE &state, const SubFrames &frames, Vector &result, - idx_t rid, const STATE *gstate) { + static void Window(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition, + const_data_ptr_t g_state, data_ptr_t l_state, const SubFrames &frames, Vector &result, + idx_t rid) { + auto &state = *reinterpret_cast(l_state); + + state.InitializePage(partition); + const auto &fmask = partition.filter_mask; + auto rdata = FlatVector::GetData(result); auto &rmask = FlatVector::Validity(result); auto &prevs = state.prevs; @@ -296,7 +332,7 @@ struct ModeFunction : BaseModeFunction { prevs.resize(1); } - ModeIncluded included(fmask, dmask); + ModeIncluded included(fmask, state); if (!state.frequency_map) { state.frequency_map = TYPE_OP::CreateEmpty(Allocator::DefaultAllocator()); @@ -309,13 +345,13 @@ struct ModeFunction : BaseModeFunction { for (const auto &frame : frames) { for (auto i = frame.start; i < frame.end; ++i) { if (included(i)) { - state.ModeAdd(data[i], i); + state.ModeAdd(i); } } } } else { using Updater = UpdateWindowState; - Updater updater(state, data, included); + Updater updater(state, included); AggregateExecutor::IntersectFrames(prevs, frames, updater); } @@ -358,28 +394,31 @@ struct ModeFallbackFunction : BaseModeFunction { } }; -template > -AggregateFunction GetTypedModeFunction(const LogicalType &type) { - using STATE = ModeState; - using OP = ModeFunction; - auto func = AggregateFunction::UnaryAggregateDestructor(type, type); - func.window = AggregateFunction::UnaryWindow; - return func; -} - AggregateFunction GetFallbackModeFunction(const LogicalType &type) { using STATE = ModeState; using OP = ModeFallbackFunction; AggregateFunction aggr({type}, type, AggregateFunction::StateSize, - AggregateFunction::StateInitialize, + AggregateFunction::StateInitialize, AggregateSortKeyHelpers::UnaryUpdate, AggregateFunction::StateCombine, AggregateFunction::StateVoidFinalize, nullptr); aggr.destructor = AggregateFunction::StateDestroy; return aggr; } +template > +AggregateFunction GetTypedModeFunction(const LogicalType &type) { + using STATE = ModeState; + using OP = ModeFunction; + auto func = + AggregateFunction::UnaryAggregateDestructor( + type, type); + func.window = OP::template Window; + return func; +} + AggregateFunction GetModeAggregate(const LogicalType &type) { switch (type.InternalType()) { +#ifndef DUCKDB_SMALLER_BINARY case PhysicalType::INT8: return GetTypedModeFunction(type); case PhysicalType::UINT8: @@ -408,6 +447,7 @@ AggregateFunction GetModeAggregate(const LogicalType &type) { return GetTypedModeFunction(type); case PhysicalType::VARCHAR: return GetTypedModeFunction(type); +#endif default: return GetFallbackModeFunction(type); } @@ -421,9 +461,107 @@ unique_ptr BindModeAggregate(ClientContext &context, AggregateFunc } AggregateFunctionSet ModeFun::GetFunctions() { - AggregateFunctionSet mode; + AggregateFunctionSet mode("mode"); mode.AddFunction(AggregateFunction({LogicalTypeId::ANY}, LogicalTypeId::ANY, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, BindModeAggregate)); return mode; } + +//===--------------------------------------------------------------------===// +// Entropy +//===--------------------------------------------------------------------===// +template +static double FinalizeEntropy(STATE &state) { + if (!state.frequency_map) { + return 0; + } + double count = static_cast(state.count); + double entropy = 0; + for (auto &val : *state.frequency_map) { + double val_sec = static_cast(val.second.count); + entropy += (val_sec / count) * log2(count / val_sec); + } + return entropy; +} + +template +struct EntropyFunction : TypedModeFunction { + template + static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) { + target = FinalizeEntropy(state); + } +}; + +template +struct EntropyFallbackFunction : BaseModeFunction { + template + static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) { + target = FinalizeEntropy(state); + } +}; + +template > +AggregateFunction GetTypedEntropyFunction(const LogicalType &type) { + using STATE = ModeState; + using OP = EntropyFunction; + auto func = + AggregateFunction::UnaryAggregateDestructor( + type, LogicalType::DOUBLE); + func.null_handling = FunctionNullHandling::SPECIAL_HANDLING; + return func; +} + +AggregateFunction GetFallbackEntropyFunction(const LogicalType &type) { + using STATE = ModeState; + using OP = EntropyFallbackFunction; + AggregateFunction func({type}, LogicalType::DOUBLE, AggregateFunction::StateSize, + AggregateFunction::StateInitialize, + AggregateSortKeyHelpers::UnaryUpdate, AggregateFunction::StateCombine, + AggregateFunction::StateFinalize, nullptr); + func.destructor = AggregateFunction::StateDestroy; + func.null_handling = FunctionNullHandling::SPECIAL_HANDLING; + return func; +} + +AggregateFunction GetEntropyFunction(const LogicalType &type) { + switch (type.InternalType()) { +#ifndef DUCKDB_SMALLER_BINARY + case PhysicalType::UINT16: + return GetTypedEntropyFunction(type); + case PhysicalType::UINT32: + return GetTypedEntropyFunction(type); + case PhysicalType::UINT64: + return GetTypedEntropyFunction(type); + case PhysicalType::INT16: + return GetTypedEntropyFunction(type); + case PhysicalType::INT32: + return GetTypedEntropyFunction(type); + case PhysicalType::INT64: + return GetTypedEntropyFunction(type); + case PhysicalType::FLOAT: + return GetTypedEntropyFunction(type); + case PhysicalType::DOUBLE: + return GetTypedEntropyFunction(type); + case PhysicalType::VARCHAR: + return GetTypedEntropyFunction(type); +#endif + default: + return GetFallbackEntropyFunction(type); + } +} + +unique_ptr BindEntropyAggregate(ClientContext &context, AggregateFunction &function, + vector> &arguments) { + function = GetEntropyFunction(arguments[0]->return_type); + function.name = "entropy"; + return nullptr; +} + +AggregateFunctionSet EntropyFun::GetFunctions() { + AggregateFunctionSet entropy("entropy"); + entropy.AddFunction(AggregateFunction({LogicalTypeId::ANY}, LogicalType::DOUBLE, nullptr, nullptr, nullptr, nullptr, + nullptr, nullptr, BindEntropyAggregate)); + return entropy; +} + } // namespace duckdb diff --git a/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp b/src/duckdb/extension/core_functions/aggregate/holistic/quantile.cpp similarity index 91% rename from src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp rename to src/duckdb/extension/core_functions/aggregate/holistic/quantile.cpp index 779ce4de..f8f668af 100644 --- a/src/duckdb/src/core_functions/aggregate/holistic/quantile.cpp +++ b/src/duckdb/extension/core_functions/aggregate/holistic/quantile.cpp @@ -1,15 +1,15 @@ #include "duckdb/execution/expression_executor.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" -#include "duckdb/core_functions/aggregate/quantile_enum.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" +#include "duckdb/common/enums/quantile_enum.hpp" #include "duckdb/planner/expression.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/operator/abs.hpp" -#include "duckdb/core_functions/aggregate/quantile_state.hpp" +#include "core_functions/aggregate/quantile_state.hpp" #include "duckdb/common/types/timestamp.hpp" #include "duckdb/common/queue.hpp" #include "duckdb/common/serializer/serializer.hpp" #include "duckdb/common/serializer/deserializer.hpp" -#include "duckdb/core_functions/aggregate/sort_key_helpers.hpp" +#include "duckdb/function/aggregate/sort_key_helpers.hpp" namespace duckdb { @@ -208,10 +208,16 @@ struct QuantileScalarOperation : public QuantileOperation { } template - static void Window(const INPUT_TYPE *data, const ValidityMask &fmask, const ValidityMask &dmask, - AggregateInputData &aggr_input_data, STATE &state, const SubFrames &frames, Vector &result, - idx_t ridx, const STATE *gstate) { - QuantileIncluded included(fmask, dmask); + static void Window(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition, + const_data_ptr_t g_state, data_ptr_t l_state, const SubFrames &frames, Vector &result, + idx_t ridx) { + auto &state = *reinterpret_cast(l_state); + auto gstate = reinterpret_cast(g_state); + + auto &data = state.GetOrCreateWindowCursor(partition); + const auto &fmask = partition.filter_mask; + + QuantileIncluded included(fmask, data); const auto n = FrameSize(included, frames); D_ASSERT(aggr_input_data.bind_data); @@ -305,13 +311,19 @@ struct QuantileListOperation : QuantileOperation { } template - static void Window(const INPUT_TYPE *data, const ValidityMask &fmask, const ValidityMask &dmask, - AggregateInputData &aggr_input_data, STATE &state, const SubFrames &frames, Vector &list, - idx_t lidx, const STATE *gstate) { + static void Window(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition, + const_data_ptr_t g_state, data_ptr_t l_state, const SubFrames &frames, Vector &list, + idx_t lidx) { + auto &state = *reinterpret_cast(l_state); + auto gstate = reinterpret_cast(g_state); + + auto &data = state.GetOrCreateWindowCursor(partition); + const auto &fmask = partition.filter_mask; + D_ASSERT(aggr_input_data.bind_data); auto &bind_data = aggr_input_data.bind_data->Cast(); - QuantileIncluded included(fmask, dmask); + QuantileIncluded included(fmask, data); const auto n = FrameSize(included, frames); // Result is a constant LIST with a fixed length @@ -378,6 +390,7 @@ struct QuantileListFallback : QuantileOperation { template AggregateFunction GetDiscreteQuantileTemplated(const LogicalType &type) { switch (type.InternalType()) { +#ifndef DUCKDB_SMALLER_BINARY case PhysicalType::INT8: return OP::template GetFunction(type); case PhysicalType::INT16: @@ -396,6 +409,7 @@ AggregateFunction GetDiscreteQuantileTemplated(const LogicalType &type) { return OP::template GetFunction(type); case PhysicalType::VARCHAR: return OP::template GetFunction(type); +#endif default: return OP::GetFallback(type); } @@ -406,9 +420,12 @@ struct ScalarDiscreteQuantile { static AggregateFunction GetFunction(const LogicalType &type) { using STATE = QuantileState; using OP = QuantileScalarOperation; - auto fun = AggregateFunction::UnaryAggregateDestructor(type, type); - fun.window = AggregateFunction::UnaryWindow; + auto fun = AggregateFunction::UnaryAggregateDestructor(type, type); +#ifndef DUCKDB_SMALLER_BINARY + fun.window = OP::Window; fun.window_init = OP::WindowInit; +#endif return fun; } @@ -416,11 +433,12 @@ struct ScalarDiscreteQuantile { using STATE = QuantileState; using OP = QuantileScalarFallback; - AggregateFunction fun( - {type}, type, AggregateFunction::StateSize, AggregateFunction::StateInitialize, - AggregateSortKeyHelpers::UnaryUpdate, AggregateFunction::StateCombine, - AggregateFunction::StateVoidFinalize, nullptr, nullptr, - AggregateFunction::StateDestroy); + AggregateFunction fun({type}, type, AggregateFunction::StateSize, + AggregateFunction::StateInitialize, + AggregateSortKeyHelpers::UnaryUpdate, + AggregateFunction::StateCombine, + AggregateFunction::StateVoidFinalize, nullptr, nullptr, + AggregateFunction::StateDestroy); return fun; } }; @@ -429,7 +447,8 @@ template static AggregateFunction QuantileListAggregate(const LogicalType &input_type, const LogicalType &child_type) { // NOLINT LogicalType result_type = LogicalType::LIST(child_type); return AggregateFunction( - {input_type}, result_type, AggregateFunction::StateSize, AggregateFunction::StateInitialize, + {input_type}, result_type, AggregateFunction::StateSize, + AggregateFunction::StateInitialize, AggregateFunction::UnaryScatterUpdate, AggregateFunction::StateCombine, AggregateFunction::StateFinalize, AggregateFunction::UnaryUpdate, nullptr, AggregateFunction::StateDestroy); @@ -442,8 +461,10 @@ struct ListDiscreteQuantile { using OP = QuantileListOperation; auto fun = QuantileListAggregate(type, type); fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; - fun.window = AggregateFunction::UnaryWindow; +#ifndef DUCKDB_SMALLER_BINARY + fun.window = OP::template Window; fun.window_init = OP::template WindowInit; +#endif return fun; } @@ -451,11 +472,12 @@ struct ListDiscreteQuantile { using STATE = QuantileState; using OP = QuantileListFallback; - AggregateFunction fun( - {type}, LogicalType::LIST(type), AggregateFunction::StateSize, - AggregateFunction::StateInitialize, AggregateSortKeyHelpers::UnaryUpdate, - AggregateFunction::StateCombine, AggregateFunction::StateFinalize, - nullptr, nullptr, AggregateFunction::StateDestroy); + AggregateFunction fun({type}, LogicalType::LIST(type), AggregateFunction::StateSize, + AggregateFunction::StateInitialize, + AggregateSortKeyHelpers::UnaryUpdate, + AggregateFunction::StateCombine, + AggregateFunction::StateFinalize, nullptr, nullptr, + AggregateFunction::StateDestroy); return fun; } }; @@ -529,10 +551,13 @@ struct ScalarContinuousQuantile { using STATE = QuantileState; using OP = QuantileScalarOperation; auto fun = - AggregateFunction::UnaryAggregateDestructor(input_type, target_type); + AggregateFunction::UnaryAggregateDestructor(input_type, target_type); fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; - fun.window = AggregateFunction::UnaryWindow; +#ifndef DUCKDB_SMALLER_BINARY + fun.window = OP::template Window; fun.window_init = OP::template WindowInit; +#endif return fun; } }; @@ -544,8 +569,10 @@ struct ListContinuousQuantile { using OP = QuantileListOperation; auto fun = QuantileListAggregate(input_type, target_type); fun.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; - fun.window = AggregateFunction::UnaryWindow; +#ifndef DUCKDB_SMALLER_BINARY + fun.window = OP::template Window; fun.window_init = OP::template WindowInit; +#endif return fun; } }; diff --git a/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp b/src/duckdb/extension/core_functions/aggregate/holistic/reservoir_quantile.cpp similarity index 99% rename from src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp rename to src/duckdb/extension/core_functions/aggregate/holistic/reservoir_quantile.cpp index b96100de..e9991276 100644 --- a/src/duckdb/src/core_functions/aggregate/holistic/reservoir_quantile.cpp +++ b/src/duckdb/extension/core_functions/aggregate/holistic/reservoir_quantile.cpp @@ -1,6 +1,6 @@ #include "duckdb/execution/expression_executor.hpp" #include "duckdb/execution/reservoir_sample.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" #include "duckdb/planner/expression.hpp" #include "duckdb/common/queue.hpp" #include "duckdb/common/serializer/serializer.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/nested/binned_histogram.cpp b/src/duckdb/extension/core_functions/aggregate/nested/binned_histogram.cpp similarity index 98% rename from src/duckdb/src/core_functions/aggregate/nested/binned_histogram.cpp rename to src/duckdb/extension/core_functions/aggregate/nested/binned_histogram.cpp index b639475a..eda2a653 100644 --- a/src/duckdb/src/core_functions/aggregate/nested/binned_histogram.cpp +++ b/src/duckdb/extension/core_functions/aggregate/nested/binned_histogram.cpp @@ -1,9 +1,9 @@ #include "duckdb/function/scalar/nested_functions.hpp" -#include "duckdb/core_functions/aggregate/nested_functions.hpp" +#include "core_functions/aggregate/nested_functions.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/common/types/vector.hpp" -#include "duckdb/core_functions/aggregate/histogram_helpers.hpp" -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/aggregate/histogram_helpers.hpp" +#include "core_functions/scalar/generic_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/algorithm.hpp" @@ -249,7 +249,7 @@ static Value OtherBucketValue(const LogicalType &type) { return Value::STRUCT(std::move(child_list)); } case LogicalTypeId::LIST: - return Value::EMPTYLIST(ListType::GetChildType(type)); + return Value::LIST(ListType::GetChildType(type), vector()); default: throw InternalException("Unsupported type for other bucket"); } @@ -343,6 +343,7 @@ static AggregateFunction GetHistogramBinFunction(const LogicalType &type) { template AggregateFunction GetHistogramBinFunction(const LogicalType &type) { switch (type.InternalType()) { +#ifndef DUCKDB_SMALLER_BINARY case PhysicalType::BOOL: return GetHistogramBinFunction(type); case PhysicalType::UINT8: @@ -367,6 +368,7 @@ AggregateFunction GetHistogramBinFunction(const LogicalType &type) { return GetHistogramBinFunction(type); case PhysicalType::VARCHAR: return GetHistogramBinFunction(type); +#endif default: return GetHistogramBinFunction(type); } diff --git a/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp b/src/duckdb/extension/core_functions/aggregate/nested/histogram.cpp similarity index 98% rename from src/duckdb/src/core_functions/aggregate/nested/histogram.cpp rename to src/duckdb/extension/core_functions/aggregate/nested/histogram.cpp index 447e8d0d..8a736f23 100644 --- a/src/duckdb/src/core_functions/aggregate/nested/histogram.cpp +++ b/src/duckdb/extension/core_functions/aggregate/nested/histogram.cpp @@ -1,8 +1,8 @@ #include "duckdb/function/scalar/nested_functions.hpp" -#include "duckdb/core_functions/aggregate/nested_functions.hpp" +#include "core_functions/aggregate/nested_functions.hpp" #include "duckdb/common/types/vector.hpp" #include "duckdb/common/string_map_set.hpp" -#include "duckdb/core_functions/aggregate/histogram_helpers.hpp" +#include "core_functions/aggregate/histogram_helpers.hpp" #include "duckdb/common/owning_string_map.hpp" namespace duckdb { @@ -175,6 +175,7 @@ AggregateFunction GetStringMapType(const LogicalType &type) { template AggregateFunction GetHistogramFunction(const LogicalType &type) { switch (type.InternalType()) { +#ifndef DUCKDB_SMALLER_BINARY case PhysicalType::BOOL: return GetMapType(type); case PhysicalType::UINT8: @@ -199,6 +200,7 @@ AggregateFunction GetHistogramFunction(const LogicalType &type) { return GetMapType(type); case PhysicalType::VARCHAR: return GetStringMapType(type); +#endif default: return GetStringMapType(type); } diff --git a/src/duckdb/src/core_functions/aggregate/nested/list.cpp b/src/duckdb/extension/core_functions/aggregate/nested/list.cpp similarity index 99% rename from src/duckdb/src/core_functions/aggregate/nested/list.cpp rename to src/duckdb/extension/core_functions/aggregate/nested/list.cpp index 3ac86573..7b23987d 100644 --- a/src/duckdb/src/core_functions/aggregate/nested/list.cpp +++ b/src/duckdb/extension/core_functions/aggregate/nested/list.cpp @@ -1,6 +1,6 @@ #include "duckdb/common/pair.hpp" #include "duckdb/common/types/list_segment.hpp" -#include "duckdb/core_functions/aggregate/nested_functions.hpp" +#include "core_functions/aggregate/nested_functions.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp b/src/duckdb/extension/core_functions/aggregate/regression/regr_avg.cpp similarity index 96% rename from src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp rename to src/duckdb/extension/core_functions/aggregate/regression/regr_avg.cpp index 4136ab03..b4b43af2 100644 --- a/src/duckdb/src/core_functions/aggregate/regression/regr_avg.cpp +++ b/src/duckdb/extension/core_functions/aggregate/regression/regr_avg.cpp @@ -1,6 +1,6 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/core_functions/aggregate/regression_functions.hpp" +#include "core_functions/aggregate/regression_functions.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/function/function_set.hpp" diff --git a/src/duckdb/src/core_functions/aggregate/regression/regr_count.cpp b/src/duckdb/extension/core_functions/aggregate/regression/regr_count.cpp similarity index 81% rename from src/duckdb/src/core_functions/aggregate/regression/regr_count.cpp rename to src/duckdb/extension/core_functions/aggregate/regression/regr_count.cpp index 333bef41..9215fcfb 100644 --- a/src/duckdb/src/core_functions/aggregate/regression/regr_count.cpp +++ b/src/duckdb/extension/core_functions/aggregate/regression/regr_count.cpp @@ -1,8 +1,8 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/core_functions/aggregate/regression_functions.hpp" +#include "core_functions/aggregate/regression_functions.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" -#include "duckdb/core_functions/aggregate/regression/regr_count.hpp" +#include "core_functions/aggregate/regression/regr_count.hpp" #include "duckdb/function/function_set.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp b/src/duckdb/extension/core_functions/aggregate/regression/regr_intercept.cpp similarity index 89% rename from src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp rename to src/duckdb/extension/core_functions/aggregate/regression/regr_intercept.cpp index a3a11745..e727d266 100644 --- a/src/duckdb/src/core_functions/aggregate/regression/regr_intercept.cpp +++ b/src/duckdb/extension/core_functions/aggregate/regression/regr_intercept.cpp @@ -1,7 +1,7 @@ //! AVG(y)-REGR_SLOPE(y,x)*AVG(x) -#include "duckdb/core_functions/aggregate/regression_functions.hpp" -#include "duckdb/core_functions/aggregate/regression/regr_slope.hpp" +#include "core_functions/aggregate/regression_functions.hpp" +#include "core_functions/aggregate/regression/regr_slope.hpp" #include "duckdb/function/function_set.hpp" namespace duckdb { @@ -45,6 +45,10 @@ struct RegrInterceptOperation { return; } RegrSlopeOperation::Finalize(state.slope, target, finalize_data); + if (Value::IsNan(target)) { + finalize_data.ReturnNull(); + return; + } auto x_avg = state.sum_x / state.count; auto y_avg = state.sum_y / state.count; target = y_avg - target * x_avg; diff --git a/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp b/src/duckdb/extension/core_functions/aggregate/regression/regr_r2.cpp similarity index 95% rename from src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp rename to src/duckdb/extension/core_functions/aggregate/regression/regr_r2.cpp index 4d68225e..ba89a8a6 100644 --- a/src/duckdb/src/core_functions/aggregate/regression/regr_r2.cpp +++ b/src/duckdb/extension/core_functions/aggregate/regression/regr_r2.cpp @@ -5,9 +5,9 @@ // 1 if var_pop(y) = 0 and var_pop(x) <> 0, else // power(corr(y,x), 2) -#include "duckdb/core_functions/aggregate/algebraic/corr.hpp" +#include "core_functions/aggregate/algebraic/corr.hpp" #include "duckdb/function/function_set.hpp" -#include "duckdb/core_functions/aggregate/regression_functions.hpp" +#include "core_functions/aggregate/regression_functions.hpp" namespace duckdb { struct RegrR2State { diff --git a/src/duckdb/src/core_functions/aggregate/regression/regr_slope.cpp b/src/duckdb/extension/core_functions/aggregate/regression/regr_slope.cpp similarity index 80% rename from src/duckdb/src/core_functions/aggregate/regression/regr_slope.cpp rename to src/duckdb/extension/core_functions/aggregate/regression/regr_slope.cpp index 1e86b011..c5859399 100644 --- a/src/duckdb/src/core_functions/aggregate/regression/regr_slope.cpp +++ b/src/duckdb/extension/core_functions/aggregate/regression/regr_slope.cpp @@ -6,9 +6,9 @@ //! Input : Any numeric type //! Output : Double -#include "duckdb/core_functions/aggregate/regression/regr_slope.hpp" +#include "core_functions/aggregate/regression/regr_slope.hpp" #include "duckdb/function/function_set.hpp" -#include "duckdb/core_functions/aggregate/regression_functions.hpp" +#include "core_functions/aggregate/regression_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp b/src/duckdb/extension/core_functions/aggregate/regression/regr_sxx_syy.cpp similarity index 94% rename from src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp rename to src/duckdb/extension/core_functions/aggregate/regression/regr_sxx_syy.cpp index e789172d..72202c2b 100644 --- a/src/duckdb/src/core_functions/aggregate/regression/regr_sxx_syy.cpp +++ b/src/duckdb/extension/core_functions/aggregate/regression/regr_sxx_syy.cpp @@ -3,9 +3,9 @@ // REGR_SYY(y, x) // Returns REGR_COUNT(y, x) * VAR_POP(y) for non-null pairs. -#include "duckdb/core_functions/aggregate/regression/regr_count.hpp" +#include "core_functions/aggregate/regression/regr_count.hpp" #include "duckdb/function/function_set.hpp" -#include "duckdb/core_functions/aggregate/regression_functions.hpp" +#include "core_functions/aggregate/regression_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp b/src/duckdb/extension/core_functions/aggregate/regression/regr_sxy.cpp similarity index 89% rename from src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp rename to src/duckdb/extension/core_functions/aggregate/regression/regr_sxy.cpp index e3f3d4ae..1ab726e8 100644 --- a/src/duckdb/src/core_functions/aggregate/regression/regr_sxy.cpp +++ b/src/duckdb/extension/core_functions/aggregate/regression/regr_sxy.cpp @@ -1,9 +1,9 @@ // REGR_SXY(y, x) // Returns REGR_COUNT(expr1, expr2) * COVAR_POP(expr1, expr2) for non-null pairs. -#include "duckdb/core_functions/aggregate/regression/regr_count.hpp" -#include "duckdb/core_functions/aggregate/algebraic/covar.hpp" -#include "duckdb/core_functions/aggregate/regression_functions.hpp" +#include "core_functions/aggregate/regression/regr_count.hpp" +#include "core_functions/aggregate/algebraic/covar.hpp" +#include "core_functions/aggregate/regression_functions.hpp" #include "duckdb/function/function_set.hpp" namespace duckdb { diff --git a/src/duckdb/extension/core_functions/core_functions_extension.cpp b/src/duckdb/extension/core_functions/core_functions_extension.cpp new file mode 100644 index 00000000..8bf09b80 --- /dev/null +++ b/src/duckdb/extension/core_functions/core_functions_extension.cpp @@ -0,0 +1,85 @@ +#define DUCKDB_EXTENSION_MAIN +#include "core_functions_extension.hpp" + +#include "core_functions/function_list.hpp" +#include "duckdb/main/extension_util.hpp" +#include "duckdb/function/register_function_list_helper.hpp" +#include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp" +#include "duckdb/parser/parsed_data/create_scalar_function_info.hpp" + +namespace duckdb { + +template +static void FillExtraInfo(const StaticFunctionDefinition &function, T &info) { + info.internal = true; + FillFunctionDescriptions(function, info); + info.on_conflict = OnCreateConflict::ALTER_ON_CONFLICT; +} + +void LoadInternal(DuckDB &db) { + auto functions = StaticFunctionDefinition::GetFunctionList(); + for (idx_t i = 0; functions[i].name; i++) { + auto &function = functions[i]; + if (function.get_function || function.get_function_set) { + // scalar function + ScalarFunctionSet result; + if (function.get_function) { + result.AddFunction(function.get_function()); + } else { + result = function.get_function_set(); + } + result.name = function.name; + CreateScalarFunctionInfo info(result); + FillExtraInfo(function, info); + ExtensionUtil::RegisterFunction(*db.instance, std::move(info)); + } else if (function.get_aggregate_function || function.get_aggregate_function_set) { + // aggregate function + AggregateFunctionSet result; + if (function.get_aggregate_function) { + result.AddFunction(function.get_aggregate_function()); + } else { + result = function.get_aggregate_function_set(); + } + result.name = function.name; + CreateAggregateFunctionInfo info(result); + FillExtraInfo(function, info); + ExtensionUtil::RegisterFunction(*db.instance, std::move(info)); + } else { + throw InternalException("Do not know how to register function of this type"); + } + } +} + +void CoreFunctionsExtension::Load(DuckDB &db) { + LoadInternal(db); +} + +std::string CoreFunctionsExtension::Name() { + return "core_functions"; +} + +std::string CoreFunctionsExtension::Version() const { +#ifdef EXT_VERSION_CORE_FUNCTIONS + return EXT_VERSION_CORE_FUNCTIONS; +#else + return ""; +#endif +} + +} // namespace duckdb + +extern "C" { + +DUCKDB_EXTENSION_API void core_functions_init(duckdb::DatabaseInstance &db) { + duckdb::DuckDB db_wrapper(db); + duckdb::LoadInternal(db_wrapper); +} + +DUCKDB_EXTENSION_API const char *core_functions_version() { + return duckdb::DuckDB::LibraryVersion(); +} +} + +#ifndef DUCKDB_EXTENSION_MAIN +#error DUCKDB_EXTENSION_MAIN not defined +#endif diff --git a/src/duckdb/src/core_functions/function_list.cpp b/src/duckdb/extension/core_functions/function_list.cpp similarity index 86% rename from src/duckdb/src/core_functions/function_list.cpp rename to src/duckdb/extension/core_functions/function_list.cpp index c01d3e85..9e459831 100644 --- a/src/duckdb/src/core_functions/function_list.cpp +++ b/src/duckdb/extension/core_functions/function_list.cpp @@ -1,25 +1,25 @@ -#include "duckdb/core_functions/function_list.hpp" -#include "duckdb/core_functions/aggregate/algebraic_functions.hpp" -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" -#include "duckdb/core_functions/aggregate/nested_functions.hpp" -#include "duckdb/core_functions/aggregate/regression_functions.hpp" -#include "duckdb/core_functions/scalar/bit_functions.hpp" -#include "duckdb/core_functions/scalar/blob_functions.hpp" -#include "duckdb/core_functions/scalar/date_functions.hpp" -#include "duckdb/core_functions/scalar/enum_functions.hpp" -#include "duckdb/core_functions/scalar/generic_functions.hpp" -#include "duckdb/core_functions/scalar/list_functions.hpp" -#include "duckdb/core_functions/scalar/map_functions.hpp" -#include "duckdb/core_functions/scalar/math_functions.hpp" -#include "duckdb/core_functions/scalar/operators_functions.hpp" -#include "duckdb/core_functions/scalar/random_functions.hpp" -#include "duckdb/core_functions/scalar/secret_functions.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" -#include "duckdb/core_functions/scalar/struct_functions.hpp" -#include "duckdb/core_functions/scalar/union_functions.hpp" -#include "duckdb/core_functions/scalar/array_functions.hpp" -#include "duckdb/core_functions/scalar/debug_functions.hpp" +#include "core_functions/function_list.hpp" +#include "core_functions/aggregate/algebraic_functions.hpp" +#include "core_functions/aggregate/distributive_functions.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" +#include "core_functions/aggregate/nested_functions.hpp" +#include "core_functions/aggregate/regression_functions.hpp" +#include "core_functions/scalar/bit_functions.hpp" +#include "core_functions/scalar/blob_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/enum_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/map_functions.hpp" +#include "core_functions/scalar/math_functions.hpp" +#include "core_functions/scalar/operators_functions.hpp" +#include "core_functions/scalar/random_functions.hpp" +#include "core_functions/scalar/secret_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/struct_functions.hpp" +#include "core_functions/scalar/union_functions.hpp" +#include "core_functions/scalar/array_functions.hpp" +#include "core_functions/scalar/debug_functions.hpp" namespace duckdb { @@ -47,12 +47,11 @@ namespace duckdb { { nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr } // this list is generated by scripts/generate_functions.py -static const StaticFunctionDefinition internal_functions[] = { +static const StaticFunctionDefinition core_functions[] = { DUCKDB_SCALAR_FUNCTION(FactorialOperatorFun), DUCKDB_SCALAR_FUNCTION_SET(BitwiseAndFun), DUCKDB_SCALAR_FUNCTION_ALIAS(ListHasAnyFunAlias), DUCKDB_SCALAR_FUNCTION(PowOperatorFun), - DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ListNegativeInnerProductFunAlias), DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ListDistanceFunAlias), DUCKDB_SCALAR_FUNCTION_SET(LeftShiftFun), DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ListCosineDistanceFunAlias), @@ -117,7 +116,7 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_AGGREGATE_FUNCTION_SET(BitOrFun), DUCKDB_SCALAR_FUNCTION(BitPositionFun), DUCKDB_AGGREGATE_FUNCTION_SET(BitXorFun), - DUCKDB_SCALAR_FUNCTION(BitStringFun), + DUCKDB_SCALAR_FUNCTION_SET(BitStringFun), DUCKDB_AGGREGATE_FUNCTION_SET(BitstringAggFun), DUCKDB_AGGREGATE_FUNCTION(BoolAndFun), DUCKDB_AGGREGATE_FUNCTION(BoolOrFun), @@ -132,11 +131,11 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION(CosFun), DUCKDB_SCALAR_FUNCTION(CoshFun), DUCKDB_SCALAR_FUNCTION(CotFun), + DUCKDB_AGGREGATE_FUNCTION(CountIfFun), + DUCKDB_AGGREGATE_FUNCTION_ALIAS(CountifFun), DUCKDB_AGGREGATE_FUNCTION(CovarPopFun), DUCKDB_AGGREGATE_FUNCTION(CovarSampFun), - DUCKDB_SCALAR_FUNCTION(CreateSortKeyFun), DUCKDB_SCALAR_FUNCTION(CurrentDatabaseFun), - DUCKDB_SCALAR_FUNCTION(CurrentDateFun), DUCKDB_SCALAR_FUNCTION(CurrentQueryFun), DUCKDB_SCALAR_FUNCTION(CurrentSchemaFun), DUCKDB_SCALAR_FUNCTION(CurrentSchemasFun), @@ -173,7 +172,6 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION_SET(EpochUsFun), DUCKDB_SCALAR_FUNCTION_SET(EquiWidthBinsFun), DUCKDB_SCALAR_FUNCTION_SET(EraFun), - DUCKDB_SCALAR_FUNCTION(ErrorFun), DUCKDB_SCALAR_FUNCTION(EvenFun), DUCKDB_SCALAR_FUNCTION(ExpFun), DUCKDB_SCALAR_FUNCTION_ALIAS(FactorialFun), @@ -194,7 +192,6 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION_ALIAS(GenRandomUuidFun), DUCKDB_SCALAR_FUNCTION_SET(GenerateSeriesFun), DUCKDB_SCALAR_FUNCTION(GetBitFun), - DUCKDB_SCALAR_FUNCTION(CurrentTimeFun), DUCKDB_SCALAR_FUNCTION(GetCurrentTimestampFun), DUCKDB_SCALAR_FUNCTION_SET_ALIAS(GradeUpFun), DUCKDB_SCALAR_FUNCTION_SET(GreatestFun), @@ -215,8 +212,8 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION_SET(ISODayOfWeekFun), DUCKDB_SCALAR_FUNCTION_SET(ISOYearFun), DUCKDB_SCALAR_FUNCTION(JaccardFun), - DUCKDB_SCALAR_FUNCTION(JaroSimilarityFun), - DUCKDB_SCALAR_FUNCTION(JaroWinklerSimilarityFun), + DUCKDB_SCALAR_FUNCTION_SET(JaroSimilarityFun), + DUCKDB_SCALAR_FUNCTION_SET(JaroWinklerSimilarityFun), DUCKDB_SCALAR_FUNCTION_SET(JulianDayFun), DUCKDB_AGGREGATE_FUNCTION(KahanSumFun), DUCKDB_AGGREGATE_FUNCTION(KurtosisFun), @@ -266,22 +263,17 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION_SET(MakeTimestampFun), DUCKDB_SCALAR_FUNCTION(MapFun), DUCKDB_SCALAR_FUNCTION(MapConcatFun), - DUCKDB_SCALAR_FUNCTION(MapContainsFun), DUCKDB_SCALAR_FUNCTION(MapEntriesFun), DUCKDB_SCALAR_FUNCTION(MapExtractFun), DUCKDB_SCALAR_FUNCTION(MapFromEntriesFun), DUCKDB_SCALAR_FUNCTION(MapKeysFun), DUCKDB_SCALAR_FUNCTION(MapValuesFun), - DUCKDB_AGGREGATE_FUNCTION_SET(MaxFun), DUCKDB_AGGREGATE_FUNCTION_SET_ALIAS(MaxByFun), - DUCKDB_SCALAR_FUNCTION_SET(MD5Fun), - DUCKDB_SCALAR_FUNCTION_SET(MD5NumberFun), DUCKDB_AGGREGATE_FUNCTION_SET_ALIAS(MeanFun), DUCKDB_AGGREGATE_FUNCTION_SET(MedianFun), DUCKDB_SCALAR_FUNCTION_SET(MicrosecondsFun), DUCKDB_SCALAR_FUNCTION_SET(MillenniumFun), DUCKDB_SCALAR_FUNCTION_SET(MillisecondsFun), - DUCKDB_AGGREGATE_FUNCTION_SET(MinFun), DUCKDB_AGGREGATE_FUNCTION_SET_ALIAS(MinByFun), DUCKDB_SCALAR_FUNCTION_SET(MinutesFun), DUCKDB_SCALAR_FUNCTION_ALIAS(MismatchesFun), @@ -290,6 +282,7 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION_SET(MonthNameFun), DUCKDB_SCALAR_FUNCTION_SET(NanosecondsFun), DUCKDB_SCALAR_FUNCTION_SET(NextAfterFun), + DUCKDB_SCALAR_FUNCTION(NormalizedIntervalFun), DUCKDB_SCALAR_FUNCTION_ALIAS(NowFun), DUCKDB_SCALAR_FUNCTION_ALIAS(OrdFun), DUCKDB_SCALAR_FUNCTION_SET(ParseDirnameFun), @@ -310,8 +303,6 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION(RandomFun), DUCKDB_SCALAR_FUNCTION_SET(ListRangeFun), DUCKDB_SCALAR_FUNCTION_ALIAS(ReduceFun), - DUCKDB_SCALAR_FUNCTION(RegexpEscapeFun), - DUCKDB_SCALAR_FUNCTION_SET_ALIAS(RegexpSplitToArrayFun), DUCKDB_AGGREGATE_FUNCTION(RegrAvgxFun), DUCKDB_AGGREGATE_FUNCTION(RegrAvgyFun), DUCKDB_AGGREGATE_FUNCTION(RegrCountFun), @@ -328,38 +319,26 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION(RightFun), DUCKDB_SCALAR_FUNCTION(RightGraphemeFun), DUCKDB_SCALAR_FUNCTION_SET(RoundFun), - DUCKDB_SCALAR_FUNCTION(RowFun), DUCKDB_SCALAR_FUNCTION(RpadFun), DUCKDB_SCALAR_FUNCTION_SET(RtrimFun), DUCKDB_SCALAR_FUNCTION_SET(SecondsFun), DUCKDB_AGGREGATE_FUNCTION(StandardErrorOfTheMeanFun), DUCKDB_SCALAR_FUNCTION(SetBitFun), DUCKDB_SCALAR_FUNCTION(SetseedFun), - DUCKDB_SCALAR_FUNCTION_SET(SHA1Fun), - DUCKDB_SCALAR_FUNCTION_SET(SHA256Fun), DUCKDB_SCALAR_FUNCTION_SET(SignFun), DUCKDB_SCALAR_FUNCTION_SET(SignBitFun), DUCKDB_SCALAR_FUNCTION(SinFun), DUCKDB_SCALAR_FUNCTION(SinhFun), DUCKDB_AGGREGATE_FUNCTION(SkewnessFun), - DUCKDB_SCALAR_FUNCTION_ALIAS(SplitFun), DUCKDB_SCALAR_FUNCTION(SqrtFun), DUCKDB_SCALAR_FUNCTION_ALIAS(StartsWithFun), DUCKDB_SCALAR_FUNCTION(StatsFun), DUCKDB_AGGREGATE_FUNCTION_ALIAS(StddevFun), DUCKDB_AGGREGATE_FUNCTION(StdDevPopFun), DUCKDB_AGGREGATE_FUNCTION(StdDevSampFun), - DUCKDB_SCALAR_FUNCTION_ALIAS(StrSplitFun), - DUCKDB_SCALAR_FUNCTION_SET_ALIAS(StrSplitRegexFun), - DUCKDB_SCALAR_FUNCTION_SET(StrfTimeFun), DUCKDB_AGGREGATE_FUNCTION_SET(StringAggFun), - DUCKDB_SCALAR_FUNCTION(StringSplitFun), - DUCKDB_SCALAR_FUNCTION_SET(StringSplitRegexFun), - DUCKDB_SCALAR_FUNCTION_ALIAS(StringToArrayFun), DUCKDB_SCALAR_FUNCTION_ALIAS(StrposFun), - DUCKDB_SCALAR_FUNCTION_SET(StrpTimeFun), DUCKDB_SCALAR_FUNCTION(StructInsertFun), - DUCKDB_SCALAR_FUNCTION(StructPackFun), DUCKDB_AGGREGATE_FUNCTION_SET(SumFun), DUCKDB_AGGREGATE_FUNCTION_SET(SumNoOverflowFun), DUCKDB_AGGREGATE_FUNCTION_ALIAS(SumkahanFun), @@ -388,12 +367,10 @@ static const StaticFunctionDefinition internal_functions[] = { DUCKDB_SCALAR_FUNCTION(ToTimestampFun), DUCKDB_SCALAR_FUNCTION(ToWeeksFun), DUCKDB_SCALAR_FUNCTION(ToYearsFun), - DUCKDB_SCALAR_FUNCTION_ALIAS(TodayFun), DUCKDB_SCALAR_FUNCTION_ALIAS(TransactionTimestampFun), DUCKDB_SCALAR_FUNCTION(TranslateFun), DUCKDB_SCALAR_FUNCTION_SET(TrimFun), DUCKDB_SCALAR_FUNCTION_SET(TruncFun), - DUCKDB_SCALAR_FUNCTION_SET(TryStrpTimeFun), DUCKDB_SCALAR_FUNCTION(CurrentTransactionIdFun), DUCKDB_SCALAR_FUNCTION(TypeOfFun), DUCKDB_SCALAR_FUNCTION(UnbinFun), @@ -423,7 +400,7 @@ static const StaticFunctionDefinition internal_functions[] = { }; const StaticFunctionDefinition *StaticFunctionDefinition::GetFunctionList() { - return internal_functions; + return core_functions; } } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/corr.hpp similarity index 91% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/corr.hpp index 0d595b11..05cdfb14 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/corr.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/corr.hpp @@ -9,8 +9,8 @@ #pragma once #include "duckdb/function/aggregate_function.hpp" -#include "duckdb/core_functions/aggregate/algebraic/covar.hpp" -#include "duckdb/core_functions/aggregate/algebraic/stddev.hpp" +#include "core_functions/aggregate/algebraic/covar.hpp" +#include "core_functions/aggregate/algebraic/stddev.hpp" namespace duckdb { @@ -58,11 +58,7 @@ struct CorrOperation { if (!Value::DoubleIsFinite(std_y)) { throw OutOfRangeException("STDDEV_POP for Y is out of range!"); } - if (std_x * std_y == 0) { - finalize_data.ReturnNull(); - return; - } - target = cov / (std_x * std_y); + target = std_x * std_y != 0 ? cov / (std_x * std_y) : NAN; } } diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/covar.hpp similarity index 100% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/covar.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/covar.hpp diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/stddev.hpp similarity index 100% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic/stddev.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic/stddev.hpp diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic_functions.hpp similarity index 98% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic_functions.hpp index 41ecd18a..da08c769 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/algebraic_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/algebraic_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/aggregate/algebraic_functions.hpp +// core_functions/aggregate/algebraic_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/distributive_functions.hpp similarity index 92% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/distributive_functions.hpp index 8891a2dd..50c0197a 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/distributive_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/distributive_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/aggregate/distributive_functions.hpp +// core_functions/aggregate/distributive_functions.hpp // // //===----------------------------------------------------------------------===// @@ -138,6 +138,21 @@ struct BoolOrFun { static AggregateFunction GetFunction(); }; +struct CountIfFun { + static constexpr const char *Name = "count_if"; + static constexpr const char *Parameters = "arg"; + static constexpr const char *Description = "Counts the total number of TRUE values for a boolean column"; + static constexpr const char *Example = "count_if(A)"; + + static AggregateFunction GetFunction(); +}; + +struct CountifFun { + using ALIAS = CountIfFun; + + static constexpr const char *Name = "countif"; +}; + struct EntropyFun { static constexpr const char *Name = "entropy"; static constexpr const char *Parameters = "x"; @@ -186,26 +201,6 @@ struct KurtosisPopFun { static AggregateFunction GetFunction(); }; -struct MinFun { - static constexpr const char *Name = "min"; - static constexpr const char *Parameters = "arg"; - static constexpr const char *Description = "Returns the minimum value present in arg."; - static constexpr const char *Example = "min(A)"; - - static AggregateFunctionSet GetFunctions(); - static AggregateFunction GetFunction(); -}; - -struct MaxFun { - static constexpr const char *Name = "max"; - static constexpr const char *Parameters = "arg"; - static constexpr const char *Description = "Returns the maximum value present in arg."; - static constexpr const char *Example = "max(A)"; - - static AggregateFunctionSet GetFunctions(); - static AggregateFunction GetFunction(); -}; - struct ProductFun { static constexpr const char *Name = "product"; static constexpr const char *Parameters = "arg"; diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/histogram_helpers.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/histogram_helpers.hpp similarity index 98% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/histogram_helpers.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/histogram_helpers.hpp index 3b824077..7d73a3ca 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/histogram_helpers.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/histogram_helpers.hpp @@ -9,7 +9,7 @@ #pragma once #include "duckdb/common/common.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" +#include "duckdb/function/create_sort_key.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/holistic_functions.hpp similarity index 98% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/holistic_functions.hpp index 99b21649..f8b96a16 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/holistic_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/holistic_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/aggregate/holistic_functions.hpp +// core_functions/aggregate/holistic_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/nested_functions.hpp similarity index 96% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/nested_functions.hpp index faaa2f4d..eb83e5e1 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/nested_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/nested_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/aggregate/nested_functions.hpp +// core_functions/aggregate/nested_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_helpers.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_helpers.hpp similarity index 92% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_helpers.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_helpers.hpp index a2d41deb..253657f5 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_helpers.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_helpers.hpp @@ -9,8 +9,8 @@ #pragma once #include "duckdb/common/common.hpp" -#include "duckdb/core_functions/aggregate/quantile_enum.hpp" -#include "duckdb/core_functions/aggregate/holistic_functions.hpp" +#include "duckdb/common/enums/quantile_enum.hpp" +#include "core_functions/aggregate/holistic_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_sort_tree.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_sort_tree.hpp similarity index 55% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_sort_tree.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_sort_tree.hpp index 146c1259..b669ac9f 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_sort_tree.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_sort_tree.hpp @@ -8,10 +8,14 @@ #pragma once -#include "duckdb/core_functions/aggregate/quantile_helpers.hpp" +#include "duckdb/common/sort/sort.hpp" +#include "duckdb/common/types/column/column_data_collection.hpp" +#include "duckdb/common/types/row/row_layout.hpp" +#include "core_functions/aggregate/quantile_helpers.hpp" #include "duckdb/execution/merge_sort_tree.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/operator/multiply.hpp" +#include "duckdb/planner/expression/bound_constant_expression.hpp" #include #include #include @@ -19,6 +23,64 @@ namespace duckdb { +// Paged access +template +struct QuantileCursor { + explicit QuantileCursor(const WindowPartitionInput &partition) : inputs(*partition.inputs) { + D_ASSERT(partition.column_ids.size() == 1); + inputs.InitializeScan(scan, partition.column_ids); + inputs.InitializeScanChunk(scan, page); + + D_ASSERT(partition.all_valid.size() == 1); + all_valid = partition.all_valid[0]; + } + + inline sel_t RowOffset(idx_t row_idx) const { + D_ASSERT(RowIsVisible(row_idx)); + return UnsafeNumericCast(row_idx - scan.current_row_index); + } + + inline bool RowIsVisible(idx_t row_idx) const { + return (row_idx < scan.next_row_index && scan.current_row_index <= row_idx); + } + + inline idx_t Seek(idx_t row_idx) { + if (!RowIsVisible(row_idx)) { + inputs.Seek(row_idx, scan, page); + data = FlatVector::GetData(page.data[0]); + validity = &FlatVector::Validity(page.data[0]); + } + return RowOffset(row_idx); + } + + inline const INPUT_TYPE &operator[](idx_t row_idx) { + const auto offset = Seek(row_idx); + return data[offset]; + } + + inline bool RowIsValid(idx_t row_idx) { + const auto offset = Seek(row_idx); + return validity->RowIsValid(offset); + } + + inline bool AllValid() { + return all_valid; + } + + //! Windowed paging + const ColumnDataCollection &inputs; + //! The state used for reading the collection on this thread + ColumnDataScanState scan; + //! The data chunk paged into into + DataChunk page; + //! The data pointer + const INPUT_TYPE *data = nullptr; + //! The validity mask + const ValidityMask *validity = nullptr; + //! Paged chunks do not track this but it is really necessary for performance + bool all_valid; +}; + // Direct access template struct QuantileDirect { @@ -35,12 +97,13 @@ template struct QuantileIndirect { using INPUT_TYPE = idx_t; using RESULT_TYPE = T; - const RESULT_TYPE *data; + using CURSOR = QuantileCursor; + CURSOR &data; - explicit QuantileIndirect(const RESULT_TYPE *data_p) : data(data_p) { + explicit QuantileIndirect(CURSOR &data_p) : data(data_p) { } - inline RESULT_TYPE operator()(const idx_t &input) const { + inline RESULT_TYPE operator()(const INPUT_TYPE &input) const { return data[input]; } }; @@ -66,14 +129,23 @@ struct QuantileComposed { template struct QuantileCompare { using INPUT_TYPE = typename ACCESSOR::INPUT_TYPE; - const ACCESSOR &accessor; + const ACCESSOR &accessor_l; + const ACCESSOR &accessor_r; const bool desc; - explicit QuantileCompare(const ACCESSOR &accessor_p, bool desc_p) : accessor(accessor_p), desc(desc_p) { + + // Single cursor for linear operations + explicit QuantileCompare(const ACCESSOR &accessor, bool desc_p) + : accessor_l(accessor), accessor_r(accessor), desc(desc_p) { + } + + // Independent cursors for sorting + explicit QuantileCompare(const ACCESSOR &accessor_l, const ACCESSOR &accessor_r, bool desc_p) + : accessor_l(accessor_l), accessor_r(accessor_r), desc(desc_p) { } inline bool operator()(const INPUT_TYPE &lhs, const INPUT_TYPE &rhs) const { - const auto lval = accessor(lhs); - const auto rval = accessor(rhs); + const auto lval = accessor_l(lhs); + const auto rval = accessor_r(rhs); return desc ? (rval < lval) : (lval < rval); } @@ -143,12 +215,12 @@ struct Interpolator { } template - inline TARGET_TYPE Extract(const INPUT_TYPE **dest, Vector &result) const { + inline TARGET_TYPE Extract(const INPUT_TYPE *dest, Vector &result) const { if (CRN == FRN) { - return CastInterpolation::Cast(*dest[0], result); + return CastInterpolation::Cast(dest[0], result); } else { - auto lo = CastInterpolation::Cast(*dest[0], result); - auto hi = CastInterpolation::Cast(*dest[1], result); + auto lo = CastInterpolation::Cast(dest[0], result); + auto hi = CastInterpolation::Cast(dest[1], result); return CastInterpolation::Interpolate(lo, RN - FRN, hi); } } @@ -212,8 +284,8 @@ struct Interpolator { } template - TARGET_TYPE Extract(const INPUT_TYPE **dest, Vector &result) const { - return CastInterpolation::Cast(*dest[0], result); + TARGET_TYPE Extract(const INPUT_TYPE *dest, Vector &result) const { + return CastInterpolation::Cast(dest[0], result); } const bool desc; @@ -224,23 +296,108 @@ struct Interpolator { idx_t end; }; +template struct QuantileIncluded { - inline explicit QuantileIncluded(const ValidityMask &fmask_p, const ValidityMask &dmask_p) + using CURSOR_TYPE = QuantileCursor; + + inline explicit QuantileIncluded(const ValidityMask &fmask_p, CURSOR_TYPE &dmask_p) : fmask(fmask_p), dmask(dmask_p) { } - inline bool operator()(const idx_t &idx) const { + inline bool operator()(const idx_t &idx) { return fmask.RowIsValid(idx) && dmask.RowIsValid(idx); } - inline bool AllValid() const { + inline bool AllValid() { return fmask.AllValid() && dmask.AllValid(); } const ValidityMask &fmask; - const ValidityMask &dmask; + CURSOR_TYPE &dmask; }; +// Shared untemplated sort logic +static unique_ptr SortQuantileIndices(const WindowPartitionInput &partition, // NOLINT + const LogicalType &index_type, OrderType order_type) { + auto &inputs = *partition.inputs; + const auto &filter_mask = partition.filter_mask; + + // Sort the unfiltered indices by the argument values + vector payload_types; + payload_types.emplace_back(index_type); + + idx_t capacity = STANDARD_VECTOR_SIZE; + DataChunk payload; + payload.Initialize(inputs.GetAllocator(), payload_types, capacity); + RowLayout payload_layout; + payload_layout.Initialize(payload.GetTypes()); + SelectionVector filtered(capacity); + + // TODO: Two pass parallel sorting using Build + ColumnDataScanState state; + DataChunk sort; + inputs.InitializeScan(state, partition.column_ids); + inputs.InitializeScanChunk(state, sort); + auto order_expr = make_uniq(Value(sort.GetTypes()[0])); + vector orders; + orders.emplace_back(BoundOrderByNode(order_type, OrderByNullType::NULLS_LAST, std::move(order_expr))); + + auto &buffer_manager = BufferManager::GetBufferManager(partition.context); + auto global_sort = make_uniq(buffer_manager, orders, payload_layout); + global_sort->external = ClientConfig::GetConfig(partition.context).force_external; + const auto memory_per_thread = PhysicalOperator::GetMaxThreadMemory(partition.context); + + LocalSortState local_sort; + local_sort.Initialize(*global_sort, global_sort->buffer_manager); + + // Build the indirection array by scanning the valid indices + while (inputs.Scan(state, sort)) { + // Match the payload to the scanned data + if (sort.size() > capacity) { + payload.Destroy(); + capacity = sort.size(); + payload.Initialize(inputs.GetAllocator(), payload_types, capacity); + filtered.Initialize(capacity); + } else { + payload.Reset(); + } + auto &indices = payload.data[0]; + payload.SetCardinality(sort); + indices.Sequence(int64_t(state.current_row_index), 1, payload.size()); + + if (!filter_mask.AllValid() || !partition.all_valid[0]) { + auto &key = sort.data[0]; + auto &validity = FlatVector::Validity(key); + idx_t valid = 0; + for (sel_t i = 0; i < sort.size(); ++i) { + if (filter_mask.RowIsValid(i + state.current_row_index) && validity.RowIsValid(i)) { + filtered[valid++] = i; + } + } + if (valid < sort.size()) { + payload.Slice(filtered, valid); + sort.Slice(filtered, valid); + } + } + local_sort.SinkChunk(sort, payload); + if (local_sort.SizeInBytes() > memory_per_thread) { + local_sort.Sort(*global_sort, true); + } + } + global_sort->AddLocalState(local_sort); + + // Sort it + global_sort->PrepareMergePhase(); + while (global_sort->sorted_blocks.size() > 1) { + global_sort->InitializeMergeRound(); + MergeSorter merge_sorter(*global_sort, global_sort->buffer_manager); + merge_sorter.PerformInMergeRound(); + global_sort->CompleteMergeRound(false); + } + + return global_sort; +} + template struct QuantileSortTree : public MergeSortTree { @@ -253,31 +410,48 @@ struct QuantileSortTree : public MergeSortTree { } template - static unique_ptr WindowInit(const INPUT_TYPE *data, AggregateInputData &aggr_input_data, - const ValidityMask &data_mask, const ValidityMask &filter_mask, - idx_t count) { - // Build the indirection array + static unique_ptr WindowInit(AggregateInputData &aggr_input_data, + const WindowPartitionInput &partition) { + auto &inputs = *partition.inputs; + + // Sort the unfiltered indices by the argument values using ElementType = typename QuantileSortTree::ElementType; - vector sorted(count); - if (filter_mask.AllValid() && data_mask.AllValid()) { - std::iota(sorted.begin(), sorted.end(), 0); - } else { - size_t valid = 0; - QuantileIncluded included(filter_mask, data_mask); - for (ElementType i = 0; i < count; ++i) { - if (included(i)) { - sorted[valid++] = i; - } - } - sorted.resize(valid); + vector payload_types; + switch (sizeof(ElementType)) { + case sizeof(int64_t): + payload_types.emplace_back(LogicalType::BIGINT); + break; + case sizeof(int32_t): + payload_types.emplace_back(LogicalType::INTEGER); + break; + default: + throw InternalException("Unsupported Quantile Sort Tree index size"); } - // Sort it + // TODO: Two pass parallel sorting using Build auto &bind_data = aggr_input_data.bind_data->Cast(); - using Accessor = QuantileIndirect; - Accessor indirect(data); - QuantileCompare cmp(indirect, bind_data.desc); - std::sort(sorted.begin(), sorted.end(), cmp); + auto order_type = bind_data.desc ? OrderType::DESCENDING : OrderType::ASCENDING; + auto global_sort = SortQuantileIndices(partition, payload_types[0], order_type); + + // Now scan the sorted indices into an array we can use as the leaves + vector sorted; + if (!global_sort->sorted_blocks.empty()) { + PayloadScanner scanner(*global_sort); + DataChunk payload; + payload.Initialize(inputs.GetAllocator(), payload_types); + sorted.resize(scanner.Remaining()); + for (;;) { + idx_t row_idx = scanner.Scanned(); + scanner.Scan(payload); + if (payload.size() == 0) { + break; + } + auto &indices = payload.data[0]; + auto data = FlatVector::GetData(indices); + + std::copy(data, data + payload.size(), sorted.data() + row_idx); + } + } return make_uniq(std::move(sorted)); } @@ -287,7 +461,7 @@ struct QuantileSortTree : public MergeSortTree { } template - RESULT_TYPE WindowScalar(const INPUT_TYPE *data, const SubFrames &frames, const idx_t n, Vector &result, + RESULT_TYPE WindowScalar(QuantileCursor &data, const SubFrames &frames, const idx_t n, Vector &result, const QuantileValue &q) { D_ASSERT(n > 0); @@ -309,8 +483,8 @@ struct QuantileSortTree : public MergeSortTree { } template - void WindowList(const INPUT_TYPE *data, const SubFrames &frames, const idx_t n, Vector &list, const idx_t lidx, - const QuantileBindData &bind_data) { + void WindowList(QuantileCursor &data, const SubFrames &frames, const idx_t n, Vector &list, + const idx_t lidx, const QuantileBindData &bind_data) { D_ASSERT(n > 0); // Thread safe and idempotent. diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_state.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_state.hpp similarity index 80% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_state.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_state.hpp index a4634095..6b0efe58 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_state.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/quantile_state.hpp @@ -8,7 +8,7 @@ #pragma once -#include "duckdb/core_functions/aggregate/quantile_sort_tree.hpp" +#include "core_functions/aggregate/quantile_sort_tree.hpp" #include "SkipList.h" namespace duckdb { @@ -52,11 +52,9 @@ struct QuantileOperation { template static void WindowInit(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition, data_ptr_t g_state) { - D_ASSERT(partition.input_count == 1); + D_ASSERT(partition.inputs); - auto inputs = partition.inputs; const auto count = partition.count; - const auto &filter_mask = partition.filter_mask; const auto &stats = partition.stats; // If frames overlap significantly, then use local skip lists. @@ -70,22 +68,18 @@ struct QuantileOperation { } } - const auto data = FlatVector::GetData(inputs[0]); - const auto &data_mask = FlatVector::Validity(inputs[0]); - // Build the tree auto &state = *reinterpret_cast(g_state); auto &window_state = state.GetOrCreateWindowState(); if (count < std::numeric_limits::max()) { - window_state.qst32 = QuantileSortTree::WindowInit(data, aggr_input_data, data_mask, - filter_mask, count); + window_state.qst32 = QuantileSortTree::WindowInit(aggr_input_data, partition); } else { - window_state.qst64 = QuantileSortTree::WindowInit(data, aggr_input_data, data_mask, - filter_mask, count); + window_state.qst64 = QuantileSortTree::WindowInit(aggr_input_data, partition); } } - static idx_t FrameSize(const QuantileIncluded &included, const SubFrames &frames) { + template + static idx_t FrameSize(QuantileIncluded &included, const SubFrames &frames) { // Count the number of valid values idx_t n = 0; if (included.AllValid()) { @@ -106,9 +100,9 @@ struct QuantileOperation { }; template -struct PointerLess { +struct SkipLess { inline bool operator()(const T &lhi, const T &rhi) const { - return *lhi < *rhi; + return lhi.second < rhi.second; } }; @@ -121,16 +115,19 @@ struct WindowQuantileState { unique_ptr qst64; // Windowed Quantile skip lists - using PointerType = const INPUT_TYPE *; - using SkipListType = duckdb_skiplistlib::skip_list::HeadNode>; + using SkipType = pair; + using SkipListType = duckdb_skiplistlib::skip_list::HeadNode>; SubFrames prevs; unique_ptr s; - mutable vector dest; + mutable vector skips; // Windowed MAD indirection idx_t count; vector m; + using IncludedType = QuantileIncluded; + using CursorType = QuantileCursor; + WindowQuantileState() : count(0) { } @@ -151,10 +148,10 @@ struct WindowQuantileState { struct SkipListUpdater { SkipListType &skip; - const INPUT_TYPE *data; - const QuantileIncluded &included; + CursorType &data; + IncludedType &included; - inline SkipListUpdater(SkipListType &skip, const INPUT_TYPE *data, const QuantileIncluded &included) + inline SkipListUpdater(SkipListType &skip, CursorType &data, IncludedType &included) : skip(skip), data(data), included(included) { } @@ -164,7 +161,7 @@ struct WindowQuantileState { inline void Left(idx_t begin, idx_t end) { for (; begin < end; ++begin) { if (included(begin)) { - skip.remove(data + begin); + skip.remove(SkipType(begin, data[begin])); } } } @@ -172,7 +169,7 @@ struct WindowQuantileState { inline void Right(idx_t begin, idx_t end) { for (; begin < end; ++begin) { if (included(begin)) { - skip.insert(data + begin); + skip.insert(SkipType(begin, data[begin])); } } } @@ -181,14 +178,14 @@ struct WindowQuantileState { } }; - void UpdateSkip(const INPUT_TYPE *data, const SubFrames &frames, const QuantileIncluded &included) { + void UpdateSkip(CursorType &data, const SubFrames &frames, IncludedType &included) { // No overlap, or no data if (!s || prevs.back().end <= frames.front().start || frames.back().end <= prevs.front().start) { auto &skip = GetSkipList(true); for (const auto &frame : frames) { for (auto i = frame.start; i < frame.end; ++i) { if (included(i)) { - skip.insert(data + i); + skip.insert(SkipType(i, data[i])); } } } @@ -204,7 +201,7 @@ struct WindowQuantileState { } template - RESULT_TYPE WindowScalar(const INPUT_TYPE *data, const SubFrames &frames, const idx_t n, Vector &result, + RESULT_TYPE WindowScalar(CursorType &data, const SubFrames &frames, const idx_t n, Vector &result, const QuantileValue &q) const { D_ASSERT(n > 0); if (qst32) { @@ -215,7 +212,12 @@ struct WindowQuantileState { // Find the position(s) needed try { Interpolator interp(q, s->size(), false); - s->at(interp.FRN, interp.CRN - interp.FRN + 1, dest); + s->at(interp.FRN, interp.CRN - interp.FRN + 1, skips); + array dest; + dest[0] = skips[0].second; + if (skips.size() > 1) { + dest[1] = skips[1].second; + } return interp.template Extract(dest.data(), result); } catch (const duckdb_skiplistlib::skip_list::IndexError &idx_err) { throw InternalException(idx_err.message()); @@ -226,7 +228,7 @@ struct WindowQuantileState { } template - void WindowList(const INPUT_TYPE *data, const SubFrames &frames, const idx_t n, Vector &list, const idx_t lidx, + void WindowList(CursorType &data, const SubFrames &frames, const idx_t n, Vector &list, const idx_t lidx, const QuantileBindData &bind_data) const { D_ASSERT(n > 0); // Result is a constant LIST with a fixed length @@ -269,12 +271,14 @@ struct QuantileStringType { template struct QuantileState { using InputType = INPUT_TYPE; + using CursorType = QuantileCursor; // Regular aggregation vector v; // Window Quantile State unique_ptr> window_state; + unique_ptr window_cursor; void AddElement(INPUT_TYPE element, AggregateInputData &aggr_input) { v.emplace_back(TYPE_OP::Operation(element, aggr_input)); @@ -295,6 +299,19 @@ struct QuantileState { const WindowQuantileState &GetWindowState() const { return *window_state; } + + CursorType &GetOrCreateWindowCursor(const WindowPartitionInput &partition) { + if (!window_cursor) { + window_cursor = make_uniq(partition); + } + return *window_cursor; + } + CursorType &GetWindowCursor() { + return *window_cursor; + } + const CursorType &GetWindowCursor() const { + return *window_cursor; + } }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/regression/regr_count.hpp similarity index 88% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/regression/regr_count.hpp index 2b13a2ab..40366ef6 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_count.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/regression/regr_count.hpp @@ -10,8 +10,8 @@ #pragma once #include "duckdb/function/aggregate_function.hpp" -#include "duckdb/core_functions/aggregate/algebraic/covar.hpp" -#include "duckdb/core_functions/aggregate/algebraic/stddev.hpp" +#include "core_functions/aggregate/algebraic/covar.hpp" +#include "core_functions/aggregate/algebraic/stddev.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/regression/regr_slope.hpp similarity index 88% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/regression/regr_slope.hpp index 70105041..d89af040 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/regression/regr_slope.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/regression/regr_slope.hpp @@ -7,8 +7,8 @@ //! Output : Double #pragma once -#include "duckdb/core_functions/aggregate/algebraic/stddev.hpp" -#include "duckdb/core_functions/aggregate/algebraic/covar.hpp" +#include "core_functions/aggregate/algebraic/stddev.hpp" +#include "core_functions/aggregate/algebraic/covar.hpp" namespace duckdb { @@ -46,11 +46,7 @@ struct RegrSlopeOperation { if (!Value::DoubleIsFinite(var_pop)) { throw OutOfRangeException("VARPOP is out of range!"); } - if (var_pop == 0) { - finalize_data.ReturnNull(); - return; - } - target = cov / var_pop; + target = var_pop != 0 ? cov / var_pop : NAN; } } diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/regression_functions.hpp similarity index 98% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/regression_functions.hpp index 70cd5f07..e82b9fdf 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/regression_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/aggregate/regression_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/aggregate/regression_functions.hpp +// core_functions/aggregate/regression_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp b/src/duckdb/extension/core_functions/include/core_functions/aggregate/sum_helpers.hpp similarity index 100% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/sum_helpers.hpp rename to src/duckdb/extension/core_functions/include/core_functions/aggregate/sum_helpers.hpp diff --git a/src/duckdb/src/include/duckdb/core_functions/array_kernels.hpp b/src/duckdb/extension/core_functions/include/core_functions/array_kernels.hpp similarity index 100% rename from src/duckdb/src/include/duckdb/core_functions/array_kernels.hpp rename to src/duckdb/extension/core_functions/include/core_functions/array_kernels.hpp diff --git a/src/duckdb/src/include/duckdb/core_functions/function_list.hpp b/src/duckdb/extension/core_functions/include/core_functions/function_list.hpp similarity index 100% rename from src/duckdb/src/include/duckdb/core_functions/function_list.hpp rename to src/duckdb/extension/core_functions/include/core_functions/function_list.hpp diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/array_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/array_functions.hpp similarity index 98% rename from src/duckdb/src/include/duckdb/core_functions/scalar/array_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/array_functions.hpp index 865d77bf..561643be 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/array_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/array_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/array_functions.hpp +// core_functions/scalar/array_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/bit_functions.hpp similarity index 95% rename from src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/bit_functions.hpp index c114d72a..e01a2fc5 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/bit_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/bit_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/bit_functions.hpp +// core_functions/scalar/bit_functions.hpp // // //===----------------------------------------------------------------------===// @@ -48,7 +48,7 @@ struct BitStringFun { static constexpr const char *Description = "Pads the bitstring until the specified length"; static constexpr const char *Example = "bitstring('1010'::BIT, 7)"; - static ScalarFunction GetFunction(); + static ScalarFunctionSet GetFunctions(); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/blob_functions.hpp similarity index 81% rename from src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/blob_functions.hpp index 29c4034f..051e212c 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/blob_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/blob_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/blob_functions.hpp +// core_functions/scalar/blob_functions.hpp // // //===----------------------------------------------------------------------===// @@ -57,13 +57,4 @@ struct Base64Fun { static constexpr const char *Name = "base64"; }; -struct CreateSortKeyFun { - static constexpr const char *Name = "create_sort_key"; - static constexpr const char *Parameters = "parameters..."; - static constexpr const char *Description = "Constructs a binary-comparable sort key based on a set of input parameters and sort qualifiers"; - static constexpr const char *Example = "create_sort_key('A', 'DESC')"; - - static ScalarFunction GetFunction(); -}; - } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/date_functions.hpp similarity index 91% rename from src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/date_functions.hpp index 1d072300..35b16f70 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/date_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/date_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/date_functions.hpp +// core_functions/scalar/date_functions.hpp // // //===----------------------------------------------------------------------===// @@ -33,21 +33,6 @@ struct CenturyFun { static ScalarFunctionSet GetFunctions(); }; -struct CurrentDateFun { - static constexpr const char *Name = "current_date"; - static constexpr const char *Parameters = ""; - static constexpr const char *Description = "Returns the current date"; - static constexpr const char *Example = "current_date()"; - - static ScalarFunction GetFunction(); -}; - -struct TodayFun { - using ALIAS = CurrentDateFun; - - static constexpr const char *Name = "today"; -}; - struct DateDiffFun { static constexpr const char *Name = "date_diff"; static constexpr const char *Parameters = "part,startdate,enddate"; @@ -207,15 +192,6 @@ struct EraFun { static ScalarFunctionSet GetFunctions(); }; -struct CurrentTimeFun { - static constexpr const char *Name = "get_current_time"; - static constexpr const char *Parameters = ""; - static constexpr const char *Description = "Returns the current time"; - static constexpr const char *Example = "get_current_time()"; - - static ScalarFunction GetFunction(); -}; - struct GetCurrentTimestampFun { static constexpr const char *Name = "get_current_timestamp"; static constexpr const char *Parameters = ""; @@ -284,9 +260,9 @@ struct LastDayFun { struct MakeDateFun { static constexpr const char *Name = "make_date"; - static constexpr const char *Parameters = "year,month,day"; - static constexpr const char *Description = "The date for the given parts"; - static constexpr const char *Example = "make_date(1992, 9, 20)"; + static constexpr const char *Parameters = "year,month,day\1date-struct::STRUCT(year BIGINT, month BIGINT, day BIGINT)"; + static constexpr const char *Description = "The date for the given parts\1The date for the given struct."; + static constexpr const char *Example = "make_date(1992, 9, 20)\1make_date({'year': 2024, 'month': 11, 'day': 14})"; static ScalarFunctionSet GetFunctions(); }; @@ -372,6 +348,15 @@ struct NanosecondsFun { static ScalarFunctionSet GetFunctions(); }; +struct NormalizedIntervalFun { + static constexpr const char *Name = "normalized_interval"; + static constexpr const char *Parameters = "interval"; + static constexpr const char *Description = "Normalizes an INTERVAL to an equivalent interval"; + static constexpr const char *Example = "normalized_interval(INTERVAL '30 days')"; + + static ScalarFunction GetFunction(); +}; + struct QuarterFun { static constexpr const char *Name = "quarter"; static constexpr const char *Parameters = "ts"; @@ -390,24 +375,6 @@ struct SecondsFun { static ScalarFunctionSet GetFunctions(); }; -struct StrfTimeFun { - static constexpr const char *Name = "strftime"; - static constexpr const char *Parameters = "text,format"; - static constexpr const char *Description = "Converts timestamp to string according to the format string"; - static constexpr const char *Example = "strftime(timestamp '1992-01-01 20:38:40', '%a, %-d %B %Y - %I:%M:%S %p')"; - - static ScalarFunctionSet GetFunctions(); -}; - -struct StrpTimeFun { - static constexpr const char *Name = "strptime"; - static constexpr const char *Parameters = "text,format"; - static constexpr const char *Description = "Converts string to timestamp with time zone according to the format string if %Z is specified"; - static constexpr const char *Example = "strptime('Wed, 1 January 1992 - 08:38:40 PST', '%a, %-d %B %Y - %H:%M:%S %Z')"; - - static ScalarFunctionSet GetFunctions(); -}; - struct TimeBucketFun { static constexpr const char *Name = "time_bucket"; static constexpr const char *Parameters = "bucket_width,timestamp,origin"; @@ -579,15 +546,6 @@ struct ToYearsFun { static ScalarFunction GetFunction(); }; -struct TryStrpTimeFun { - static constexpr const char *Name = "try_strptime"; - static constexpr const char *Parameters = "text,format"; - static constexpr const char *Description = "Converts string to timestamp using the format string (timestamp with time zone if %Z is specified). Returns NULL on failure"; - static constexpr const char *Example = "try_strptime('Wed, 1 January 1992 - 08:38:40 PM', '%a, %-d %B %Y - %I:%M:%S %p')"; - - static ScalarFunctionSet GetFunctions(); -}; - struct WeekFun { static constexpr const char *Name = "week"; static constexpr const char *Parameters = "ts"; diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/debug_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/debug_functions.hpp similarity index 94% rename from src/duckdb/src/include/duckdb/core_functions/scalar/debug_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/debug_functions.hpp index 5c83d51c..ce4debc6 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/debug_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/debug_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/debug_functions.hpp +// core_functions/scalar/debug_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/enum_functions.hpp similarity index 97% rename from src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/enum_functions.hpp index 66c7d681..73791f8a 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/enum_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/enum_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/enum_functions.hpp +// core_functions/scalar/enum_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/generic_functions.hpp similarity index 94% rename from src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/generic_functions.hpp index c7c72387..d874e72a 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/generic_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/generic_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/generic_functions.hpp +// core_functions/scalar/generic_functions.hpp // // //===----------------------------------------------------------------------===// @@ -33,15 +33,6 @@ struct CurrentSettingFun { static ScalarFunction GetFunction(); }; -struct ErrorFun { - static constexpr const char *Name = "error"; - static constexpr const char *Parameters = "message"; - static constexpr const char *Description = "Throws the given error message"; - static constexpr const char *Example = "error('access_mode')"; - - static ScalarFunction GetFunction(); -}; - struct HashFun { static constexpr const char *Name = "hash"; static constexpr const char *Parameters = "param"; diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/list_functions.hpp similarity index 96% rename from src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/list_functions.hpp index 9386278a..2b9318b4 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/list_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/list_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/list_functions.hpp +// core_functions/scalar/list_functions.hpp // // //===----------------------------------------------------------------------===// @@ -104,9 +104,9 @@ struct ListPackFun { struct ListSliceFun { static constexpr const char *Name = "list_slice"; - static constexpr const char *Parameters = "list,begin,end[,step]"; - static constexpr const char *Description = "Extract a sublist using slice conventions. Negative values are accepted"; - static constexpr const char *Example = "list_slice(l, 2, 4)"; + static constexpr const char *Parameters = "list,begin,end\1list,begin,end,step"; + static constexpr const char *Description = "Extract a sublist using slice conventions. Negative values are accepted.\1list_slice with added step feature."; + static constexpr const char *Example = "list_slice([4, 5, 6], 2, 3)\2array_slice('DuckDB', 3, 4)\2array_slice('DuckDB', 3, NULL)\2array_slice('DuckDB', 0, -3)\1list_slice([4, 5, 6], 1, 3, 2)"; static ScalarFunctionSet GetFunctions(); }; @@ -330,12 +330,6 @@ struct ListNegativeDotProductFun { static constexpr const char *Name = "list_negative_dot_product"; }; -struct ListNegativeInnerProductFunAlias { - using ALIAS = ListNegativeInnerProductFun; - - static constexpr const char *Name = "<#>"; -}; - struct UnpivotListFun { static constexpr const char *Name = "unpivot_list"; static constexpr const char *Parameters = "any,..."; diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/map_functions.hpp similarity index 89% rename from src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/map_functions.hpp index eb9aae54..0998a315 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/map_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/map_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/map_functions.hpp +// core_functions/scalar/map_functions.hpp // // //===----------------------------------------------------------------------===// @@ -93,13 +93,4 @@ struct MapValuesFun { static ScalarFunction GetFunction(); }; -struct MapContainsFun { - static constexpr const char *Name = "map_contains"; - static constexpr const char *Parameters = "map,key"; - static constexpr const char *Description = "Returns true if the map contains the key, false otherwise"; - static constexpr const char *Example = "map_contains(map(['key'], ['val']), 'key')"; - - static ScalarFunction GetFunction(); -}; - } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/math_functions.hpp similarity index 99% rename from src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/math_functions.hpp index 2e84f1d9..7b8e2bef 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/math_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/math_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/math_functions.hpp +// core_functions/scalar/math_functions.hpp // // //===----------------------------------------------------------------------===// @@ -427,7 +427,7 @@ struct AcoshFun { static constexpr const char *Name = "acosh"; static constexpr const char *Parameters = "x"; static constexpr const char *Description = "Computes the inverse hyperbolic cos of x"; - static constexpr const char *Example = "acosh(0.5)"; + static constexpr const char *Example = "acosh(2.3)"; static ScalarFunction GetFunction(); }; diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/operators_functions.hpp similarity index 97% rename from src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/operators_functions.hpp index 908ec939..3bbfc565 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/operators_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/operators_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/operators_functions.hpp +// core_functions/scalar/operators_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/random_functions.hpp similarity index 96% rename from src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/random_functions.hpp index 995c3df6..1002f0e4 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/random_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/random_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/random_functions.hpp +// core_functions/scalar/random_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/secret_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/secret_functions.hpp similarity index 100% rename from src/duckdb/src/include/duckdb/core_functions/scalar/secret_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/secret_functions.hpp diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/string_functions.hpp similarity index 83% rename from src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/string_functions.hpp index 7f3181b0..6a6db36d 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/string_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/string_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/string_functions.hpp +// core_functions/scalar/string_functions.hpp // // //===----------------------------------------------------------------------===// @@ -176,20 +176,20 @@ struct JaccardFun { struct JaroSimilarityFun { static constexpr const char *Name = "jaro_similarity"; - static constexpr const char *Parameters = "str1,str2"; + static constexpr const char *Parameters = "str1,str2,score_cutoff"; static constexpr const char *Description = "The Jaro similarity between two strings. Different case is considered different. Returns a number between 0 and 1"; - static constexpr const char *Example = "jaro_similarity('duck','duckdb')"; + static constexpr const char *Example = "jaro_similarity('duck', 'duckdb', 0.5)"; - static ScalarFunction GetFunction(); + static ScalarFunctionSet GetFunctions(); }; struct JaroWinklerSimilarityFun { static constexpr const char *Name = "jaro_winkler_similarity"; - static constexpr const char *Parameters = "str1,str2"; + static constexpr const char *Parameters = "str1,str2,score_cutoff"; static constexpr const char *Description = "The Jaro-Winkler similarity between two strings. Different case is considered different. Returns a number between 0 and 1"; - static constexpr const char *Example = "jaro_winkler_similarity('duck','duckdb')"; + static constexpr const char *Example = "jaro_winkler_similarity('duck', 'duckdb', 0.5)"; - static ScalarFunction GetFunction(); + static ScalarFunctionSet GetFunctions(); }; struct LeftFun { @@ -243,24 +243,6 @@ struct LtrimFun { static ScalarFunctionSet GetFunctions(); }; -struct MD5Fun { - static constexpr const char *Name = "md5"; - static constexpr const char *Parameters = "value"; - static constexpr const char *Description = "Returns the MD5 hash of the value as a string"; - static constexpr const char *Example = "md5('123')"; - - static ScalarFunctionSet GetFunctions(); -}; - -struct MD5NumberFun { - static constexpr const char *Name = "md5_number"; - static constexpr const char *Parameters = "value"; - static constexpr const char *Description = "Returns the MD5 hash of the value as an INT128"; - static constexpr const char *Example = "md5_number('123')"; - - static ScalarFunctionSet GetFunctions(); -}; - struct ParseDirnameFun { static constexpr const char *Name = "parse_dirname"; static constexpr const char *Parameters = "string,separator"; @@ -369,72 +351,6 @@ struct RtrimFun { static ScalarFunctionSet GetFunctions(); }; -struct SHA1Fun { - static constexpr const char *Name = "sha1"; - static constexpr const char *Parameters = "value"; - static constexpr const char *Description = "Returns the SHA1 hash of the value"; - static constexpr const char *Example = "sha1('hello')"; - - static ScalarFunctionSet GetFunctions(); -}; - -struct SHA256Fun { - static constexpr const char *Name = "sha256"; - static constexpr const char *Parameters = "value"; - static constexpr const char *Description = "Returns the SHA256 hash of the value"; - static constexpr const char *Example = "sha256('hello')"; - - static ScalarFunctionSet GetFunctions(); -}; - -struct StringSplitFun { - static constexpr const char *Name = "string_split"; - static constexpr const char *Parameters = "string,separator"; - static constexpr const char *Description = "Splits the string along the separator"; - static constexpr const char *Example = "string_split('hello-world', '-')"; - - static ScalarFunction GetFunction(); -}; - -struct StrSplitFun { - using ALIAS = StringSplitFun; - - static constexpr const char *Name = "str_split"; -}; - -struct StringToArrayFun { - using ALIAS = StringSplitFun; - - static constexpr const char *Name = "string_to_array"; -}; - -struct SplitFun { - using ALIAS = StringSplitFun; - - static constexpr const char *Name = "split"; -}; - -struct StringSplitRegexFun { - static constexpr const char *Name = "string_split_regex"; - static constexpr const char *Parameters = "string,separator"; - static constexpr const char *Description = "Splits the string along the regex"; - static constexpr const char *Example = "string_split_regex('hello␣world; 42', ';?␣')"; - - static ScalarFunctionSet GetFunctions(); -}; - -struct StrSplitRegexFun { - using ALIAS = StringSplitRegexFun; - - static constexpr const char *Name = "str_split_regex"; -}; - -struct RegexpSplitToArrayFun { - using ALIAS = StringSplitRegexFun; - - static constexpr const char *Name = "regexp_split_to_array"; -}; - struct TranslateFun { static constexpr const char *Name = "translate"; static constexpr const char *Parameters = "string,from,to"; @@ -446,9 +362,9 @@ struct TranslateFun { struct TrimFun { static constexpr const char *Name = "trim"; - static constexpr const char *Parameters = "string,characters"; - static constexpr const char *Description = "Removes any occurrences of any of the characters from either side of the string"; - static constexpr const char *Example = "trim('>>>>test<<', '><')"; + static constexpr const char *Parameters = "string::VARCHAR\1string::VARCHAR,characters::VARCHAR"; + static constexpr const char *Description = "Removes any spaces from either side of the string.\1Removes any occurrences of any of the characters from either side of the string"; + static constexpr const char *Example = "trim(' test ')\1trim('>>>>test<<', '><')"; static ScalarFunctionSet GetFunctions(); }; @@ -507,15 +423,6 @@ struct ToBaseFun { static ScalarFunctionSet GetFunctions(); }; -struct RegexpEscapeFun { - static constexpr const char *Name = "regexp_escape"; - static constexpr const char *Parameters = "string"; - static constexpr const char *Description = "Escapes all potentially meaningful regexp characters in the input string"; - static constexpr const char *Example = "regexp_escape('https://duckdb.org')"; - - static ScalarFunction GetFunction(); -}; - struct UrlEncodeFun { static constexpr const char *Name = "url_encode"; static constexpr const char *Parameters = "input"; diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/struct_functions.hpp similarity index 55% rename from src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/struct_functions.hpp index b83c5e95..f921bf43 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/struct_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/struct_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/struct_functions.hpp +// core_functions/scalar/struct_functions.hpp // // //===----------------------------------------------------------------------===// @@ -24,22 +24,4 @@ struct StructInsertFun { static ScalarFunction GetFunction(); }; -struct StructPackFun { - static constexpr const char *Name = "struct_pack"; - static constexpr const char *Parameters = "any"; - static constexpr const char *Description = "Creates a STRUCT containing the argument values. The entry name will be the bound variable name"; - static constexpr const char *Example = "struct_pack(i := 4, s := 'string')"; - - static ScalarFunction GetFunction(); -}; - -struct RowFun { - static constexpr const char *Name = "row"; - static constexpr const char *Parameters = "any"; - static constexpr const char *Description = "Creates an unnamed STRUCT containing the argument values."; - static constexpr const char *Example = "row(4, 'hello')"; - - static ScalarFunction GetFunction(); -}; - } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp b/src/duckdb/extension/core_functions/include/core_functions/scalar/union_functions.hpp similarity index 96% rename from src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp rename to src/duckdb/extension/core_functions/include/core_functions/scalar/union_functions.hpp index 8b869460..766c12e8 100644 --- a/src/duckdb/src/include/duckdb/core_functions/scalar/union_functions.hpp +++ b/src/duckdb/extension/core_functions/include/core_functions/scalar/union_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/scalar/union_functions.hpp +// core_functions/scalar/union_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/extension/core_functions/include/core_functions_extension.hpp b/src/duckdb/extension/core_functions/include/core_functions_extension.hpp new file mode 100644 index 00000000..e877860f --- /dev/null +++ b/src/duckdb/extension/core_functions/include/core_functions_extension.hpp @@ -0,0 +1,22 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// core_functions_extension.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb.hpp" + +namespace duckdb { + +class CoreFunctionsExtension : public Extension { +public: + void Load(DuckDB &db) override; + std::string Name() override; + std::string Version() const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/core_functions/lambda_functions.cpp b/src/duckdb/extension/core_functions/lambda_functions.cpp similarity index 99% rename from src/duckdb/src/core_functions/lambda_functions.cpp rename to src/duckdb/extension/core_functions/lambda_functions.cpp index 9a3a0310..b5549914 100644 --- a/src/duckdb/src/core_functions/lambda_functions.cpp +++ b/src/duckdb/extension/core_functions/lambda_functions.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/lambda_functions.hpp" +#include "duckdb/function/lambda_functions.hpp" #include "duckdb/common/serializer/serializer.hpp" #include "duckdb/common/serializer/deserializer.hpp" diff --git a/src/duckdb/src/core_functions/scalar/array/array_functions.cpp b/src/duckdb/extension/core_functions/scalar/array/array_functions.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/array/array_functions.cpp rename to src/duckdb/extension/core_functions/scalar/array/array_functions.cpp index 347ffcbd..e685d41f 100644 --- a/src/duckdb/src/core_functions/scalar/array/array_functions.cpp +++ b/src/duckdb/extension/core_functions/scalar/array/array_functions.cpp @@ -1,5 +1,5 @@ -#include "duckdb/core_functions/scalar/array_functions.hpp" -#include "duckdb/core_functions/array_kernels.hpp" +#include "core_functions/scalar/array_functions.hpp" +#include "core_functions/array_kernels.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/array/array_value.cpp b/src/duckdb/extension/core_functions/scalar/array/array_value.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/array/array_value.cpp rename to src/duckdb/extension/core_functions/scalar/array/array_value.cpp index ac4f0bd2..e7f715f7 100644 --- a/src/duckdb/src/core_functions/scalar/array/array_value.cpp +++ b/src/duckdb/extension/core_functions/scalar/array/array_value.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/array_functions.hpp" +#include "core_functions/scalar/array_functions.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/storage/statistics/array_stats.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -29,7 +29,7 @@ static void ArrayValueFunction(DataChunk &args, ExpressionState &state, Vector & // Ensure that the child has a validity mask of the correct size // The SetValue call below expects the validity mask to be initialized auto &child_validity = FlatVector::Validity(child); - child_validity.Resize(num_rows, num_rows * num_columns); + child_validity.Resize(num_rows * num_columns); } for (idx_t i = 0; i < num_rows; i++) { diff --git a/src/duckdb/src/core_functions/scalar/bit/bitstring.cpp b/src/duckdb/extension/core_functions/scalar/bit/bitstring.cpp similarity index 80% rename from src/duckdb/src/core_functions/scalar/bit/bitstring.cpp rename to src/duckdb/extension/core_functions/scalar/bit/bitstring.cpp index fc176885..3dfb76a0 100644 --- a/src/duckdb/src/core_functions/scalar/bit/bitstring.cpp +++ b/src/duckdb/extension/core_functions/scalar/bit/bitstring.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/bit_functions.hpp" +#include "core_functions/scalar/bit_functions.hpp" #include "duckdb/common/types/bit.hpp" #include "duckdb/common/types/cast_helpers.hpp" @@ -7,28 +7,46 @@ namespace duckdb { //===--------------------------------------------------------------------===// // BitStringFunction //===--------------------------------------------------------------------===// +template static void BitStringFunction(DataChunk &args, ExpressionState &state, Vector &result) { BinaryExecutor::Execute( args.data[0], args.data[1], result, args.size(), [&](string_t input, int32_t n) { if (n < 0) { throw InvalidInputException("The bitstring length cannot be negative"); } - if (idx_t(n) < input.GetSize()) { + idx_t input_length; + if (FROM_STRING) { + input_length = input.GetSize(); + } else { + input_length = Bit::BitLength(input); + } + if (idx_t(n) < input_length) { throw InvalidInputException("Length must be equal or larger than input string"); } idx_t len; - Bit::TryGetBitStringSize(input, len, nullptr); // string verification + if (FROM_STRING) { + Bit::TryGetBitStringSize(input, len, nullptr); // string verification + } len = Bit::ComputeBitstringLen(UnsafeNumericCast(n)); string_t target = StringVector::EmptyString(result, len); - Bit::BitString(input, UnsafeNumericCast(n), target); + if (FROM_STRING) { + Bit::BitString(input, UnsafeNumericCast(n), target); + } else { + Bit::ExtendBitString(input, UnsafeNumericCast(n), target); + } target.Finalize(); return target; }); } -ScalarFunction BitStringFun::GetFunction() { - return ScalarFunction({LogicalType::VARCHAR, LogicalType::INTEGER}, LogicalType::BIT, BitStringFunction); +ScalarFunctionSet BitStringFun::GetFunctions() { + ScalarFunctionSet bitstring; + bitstring.AddFunction( + ScalarFunction({LogicalType::VARCHAR, LogicalType::INTEGER}, LogicalType::BIT, BitStringFunction)); + bitstring.AddFunction( + ScalarFunction({LogicalType::BIT, LogicalType::INTEGER}, LogicalType::BIT, BitStringFunction)); + return bitstring; } //===--------------------------------------------------------------------===// diff --git a/src/duckdb/src/core_functions/scalar/blob/base64.cpp b/src/duckdb/extension/core_functions/scalar/blob/base64.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/blob/base64.cpp rename to src/duckdb/extension/core_functions/scalar/blob/base64.cpp index 3545f3b5..6a622927 100644 --- a/src/duckdb/src/core_functions/scalar/blob/base64.cpp +++ b/src/duckdb/extension/core_functions/scalar/blob/base64.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/blob_functions.hpp" +#include "core_functions/scalar/blob_functions.hpp" #include "duckdb/common/types/blob.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/blob/encode.cpp b/src/duckdb/extension/core_functions/scalar/blob/encode.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/blob/encode.cpp rename to src/duckdb/extension/core_functions/scalar/blob/encode.cpp index ff11f2f6..7fb4b436 100644 --- a/src/duckdb/src/core_functions/scalar/blob/encode.cpp +++ b/src/duckdb/extension/core_functions/scalar/blob/encode.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/blob_functions.hpp" +#include "core_functions/scalar/blob_functions.hpp" #include "utf8proc_wrapper.hpp" #include "duckdb/common/exception/conversion_exception.hpp" diff --git a/src/duckdb/src/core_functions/scalar/date/age.cpp b/src/duckdb/extension/core_functions/scalar/date/age.cpp similarity index 77% rename from src/duckdb/src/core_functions/scalar/date/age.cpp rename to src/duckdb/extension/core_functions/scalar/date/age.cpp index f8db919f..cf7281f0 100644 --- a/src/duckdb/src/core_functions/scalar/date/age.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/age.cpp @@ -1,21 +1,27 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/types/interval.hpp" #include "duckdb/common/types/time.hpp" #include "duckdb/common/types/timestamp.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/vector_operations/unary_executor.hpp" #include "duckdb/common/vector_operations/binary_executor.hpp" +#include "duckdb/transaction/meta_transaction.hpp" namespace duckdb { static void AgeFunctionStandard(DataChunk &input, ExpressionState &state, Vector &result) { D_ASSERT(input.ColumnCount() == 1); - auto current_timestamp = Timestamp::GetCurrentTimestamp(); + // Subtract argument from current_date (at midnight) + // Theoretically, this should be TZ-sensitive, but since we have to be able to handle + // plain TZ when ICU is not loaded, we implement this in UTC (like everything else) + // To get the PG behaviour, we overload these functions in ICU for TSTZ arguments. + auto current_date = Timestamp::FromDatetime( + Timestamp::GetDate(MetaTransaction::Get(state.GetContext()).start_timestamp), dtime_t(0)); UnaryExecutor::ExecuteWithNulls(input.data[0], result, input.size(), [&](timestamp_t input, ValidityMask &mask, idx_t idx) { if (Timestamp::IsFinite(input)) { - return Interval::GetAge(current_timestamp, input); + return Interval::GetAge(current_date, input); } else { mask.SetInvalid(idx); return interval_t(); diff --git a/src/duckdb/extension/core_functions/scalar/date/current.cpp b/src/duckdb/extension/core_functions/scalar/date/current.cpp new file mode 100644 index 00000000..3d25ee80 --- /dev/null +++ b/src/duckdb/extension/core_functions/scalar/date/current.cpp @@ -0,0 +1,29 @@ +#include "core_functions/scalar/date_functions.hpp" +#include "duckdb/common/exception.hpp" +#include "duckdb/common/operator/cast_operators.hpp" +#include "duckdb/common/types/timestamp.hpp" +#include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/main/client_context.hpp" +#include "duckdb/planner/expression/bound_function_expression.hpp" +#include "duckdb/transaction/meta_transaction.hpp" + +namespace duckdb { + +static timestamp_t GetTransactionTimestamp(ExpressionState &state) { + return MetaTransaction::Get(state.GetContext()).start_timestamp; +} + +static void CurrentTimestampFunction(DataChunk &input, ExpressionState &state, Vector &result) { + D_ASSERT(input.ColumnCount() == 0); + auto ts = GetTransactionTimestamp(state); + auto val = Value::TIMESTAMPTZ(timestamp_tz_t(ts)); + result.Reference(val); +} + +ScalarFunction GetCurrentTimestampFun::GetFunction() { + ScalarFunction current_timestamp({}, LogicalType::TIMESTAMP_TZ, CurrentTimestampFunction); + current_timestamp.stability = FunctionStability::CONSISTENT_WITHIN_QUERY; + return current_timestamp; +} + +} // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/date/date_diff.cpp b/src/duckdb/extension/core_functions/scalar/date/date_diff.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/date/date_diff.cpp rename to src/duckdb/extension/core_functions/scalar/date/date_diff.cpp index 6266dda3..c0e4ba1d 100644 --- a/src/duckdb/src/core_functions/scalar/date/date_diff.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/date_diff.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/enums/date_part_specifier.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/operator/subtract.hpp" @@ -28,6 +28,14 @@ struct DateDiff { }); } + // We need to truncate down, not towards 0 + static inline int64_t Truncate(int64_t value, int64_t units) { + return (value + (value < 0)) / units - (value < 0); + } + static inline int64_t Diff(int64_t start, int64_t end, int64_t units) { + return Truncate(end, units) - Truncate(start, units); + } + struct YearOperator { template static inline TR Operation(TA startdate, TB enddate) { @@ -204,30 +212,28 @@ template <> int64_t DateDiff::MillisecondsOperator::Operation(timestamp_t startdate, timestamp_t enddate) { D_ASSERT(Timestamp::IsFinite(startdate)); D_ASSERT(Timestamp::IsFinite(enddate)); - return Timestamp::GetEpochMs(enddate) - Timestamp::GetEpochMs(startdate); + return Diff(startdate.value, enddate.value, Interval::MICROS_PER_MSEC); } template <> int64_t DateDiff::SecondsOperator::Operation(timestamp_t startdate, timestamp_t enddate) { D_ASSERT(Timestamp::IsFinite(startdate)); D_ASSERT(Timestamp::IsFinite(enddate)); - return Timestamp::GetEpochSeconds(enddate) - Timestamp::GetEpochSeconds(startdate); + return Diff(startdate.value, enddate.value, Interval::MICROS_PER_SEC); } template <> int64_t DateDiff::MinutesOperator::Operation(timestamp_t startdate, timestamp_t enddate) { D_ASSERT(Timestamp::IsFinite(startdate)); D_ASSERT(Timestamp::IsFinite(enddate)); - return Timestamp::GetEpochSeconds(enddate) / Interval::SECS_PER_MINUTE - - Timestamp::GetEpochSeconds(startdate) / Interval::SECS_PER_MINUTE; + return Diff(startdate.value, enddate.value, Interval::MICROS_PER_MINUTE); } template <> int64_t DateDiff::HoursOperator::Operation(timestamp_t startdate, timestamp_t enddate) { D_ASSERT(Timestamp::IsFinite(startdate)); D_ASSERT(Timestamp::IsFinite(enddate)); - return Timestamp::GetEpochSeconds(enddate) / Interval::SECS_PER_HOUR - - Timestamp::GetEpochSeconds(startdate) / Interval::SECS_PER_HOUR; + return Diff(startdate.value, enddate.value, Interval::MICROS_PER_HOUR); } // TIME specialisations diff --git a/src/duckdb/src/core_functions/scalar/date/date_part.cpp b/src/duckdb/extension/core_functions/scalar/date/date_part.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/date/date_part.cpp rename to src/duckdb/extension/core_functions/scalar/date/date_part.cpp index c234e1e3..ce104b58 100644 --- a/src/duckdb/src/core_functions/scalar/date/date_part.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/date_part.cpp @@ -1,18 +1,19 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/case_insensitive_map.hpp" +#include "duckdb/common/enum_util.hpp" #include "duckdb/common/enums/date_part_specifier.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/exception/conversion_exception.hpp" +#include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/string_util.hpp" -#include "duckdb/common/enum_util.hpp" #include "duckdb/common/types/date.hpp" +#include "duckdb/common/types/date_lookup_cache.hpp" #include "duckdb/common/types/time.hpp" #include "duckdb/common/types/timestamp.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/common/types/date_lookup_cache.hpp" namespace duckdb { @@ -400,7 +401,7 @@ struct DatePart { struct EpochMillisOperator { template static inline TR Operation(TA input) { - return Timestamp::GetEpochMs(input); + return Cast::Operation(input); } template @@ -412,7 +413,7 @@ struct DatePart { D_ASSERT(input.ColumnCount() == 1); UnaryExecutor::Execute(input.data[0], result, input.size(), [&](int64_t input) { - // milisecond amounts provided to epoch_ms should never be considered infinite + // millisecond amounts provided to epoch_ms should never be considered infinite // instead such values will just throw when converted to microseconds return Timestamp::FromEpochMsPossiblyInfinite(input); }); @@ -1062,7 +1063,7 @@ int64_t DatePart::EpochMicrosecondsOperator::Operation(interval_t input) { template <> int64_t DatePart::EpochMillisOperator::Operation(timestamp_t input) { D_ASSERT(Timestamp::IsFinite(input)); - return Timestamp::GetEpochMs(input); + return Cast::Operation(input).value; } template <> diff --git a/src/duckdb/src/core_functions/scalar/date/date_sub.cpp b/src/duckdb/extension/core_functions/scalar/date/date_sub.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/date/date_sub.cpp rename to src/duckdb/extension/core_functions/scalar/date/date_sub.cpp index 6d4c4e24..acfb2c79 100644 --- a/src/duckdb/src/core_functions/scalar/date/date_sub.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/date_sub.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/enums/date_part_specifier.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/operator/subtract.hpp" diff --git a/src/duckdb/src/core_functions/scalar/date/date_trunc.cpp b/src/duckdb/extension/core_functions/scalar/date/date_trunc.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/date/date_trunc.cpp rename to src/duckdb/extension/core_functions/scalar/date/date_trunc.cpp index 6e5bcc70..b8279276 100644 --- a/src/duckdb/src/core_functions/scalar/date/date_trunc.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/date_trunc.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/enums/date_part_specifier.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/operator/cast_operators.hpp" diff --git a/src/duckdb/src/core_functions/scalar/date/epoch.cpp b/src/duckdb/extension/core_functions/scalar/date/epoch.cpp similarity index 71% rename from src/duckdb/src/core_functions/scalar/date/epoch.cpp rename to src/duckdb/extension/core_functions/scalar/date/epoch.cpp index 0944335d..c3053034 100644 --- a/src/duckdb/src/core_functions/scalar/date/epoch.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/epoch.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" @@ -28,6 +28,23 @@ ScalarFunction ToTimestampFun::GetFunction() { return ScalarFunction({LogicalType::DOUBLE}, LogicalType::TIMESTAMP_TZ, EpochSecFunction); } +struct NormalizedIntervalOperator { + template + static RESULT_TYPE Operation(INPUT_TYPE input) { + return input.Normalize(); + } +}; + +static void NormalizedIntervalFunction(DataChunk &input, ExpressionState &state, Vector &result) { + D_ASSERT(input.ColumnCount() == 1); + + UnaryExecutor::Execute(input.data[0], result, input.size()); +} + +ScalarFunction NormalizedIntervalFun::GetFunction() { + return ScalarFunction({LogicalType::INTERVAL}, LogicalType::INTERVAL, NormalizedIntervalFunction); +} + struct TimeTZSortKeyOperator { template static RESULT_TYPE Operation(INPUT_TYPE input) { @@ -44,5 +61,4 @@ static void TimeTZSortKeyFunction(DataChunk &input, ExpressionState &state, Vect ScalarFunction TimeTZSortKeyFun::GetFunction() { return ScalarFunction({LogicalType::TIME_TZ}, LogicalType::UBIGINT, TimeTZSortKeyFunction); } - } // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/date/make_date.cpp b/src/duckdb/extension/core_functions/scalar/date/make_date.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/date/make_date.cpp rename to src/duckdb/extension/core_functions/scalar/date/make_date.cpp index 1ef81e37..9af21110 100644 --- a/src/duckdb/src/core_functions/scalar/date/make_date.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/make_date.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/types/date.hpp" #include "duckdb/common/types/time.hpp" @@ -11,6 +11,11 @@ namespace duckdb { +static void MakeDateFromEpoch(DataChunk &input, ExpressionState &state, Vector &result) { + D_ASSERT(input.ColumnCount() == 1); + result.Reinterpret(input.data[0]); +} + struct MakeDateOperator { template static RESULT_TYPE Operation(YYYY yyyy, MM mm, DD dd) { @@ -118,6 +123,7 @@ static void ExecuteMakeTimestamp(DataChunk &input, ExpressionState &state, Vecto ScalarFunctionSet MakeDateFun::GetFunctions() { ScalarFunctionSet make_date("make_date"); + make_date.AddFunction(ScalarFunction({LogicalType::INTEGER}, LogicalType::DATE, MakeDateFromEpoch)); make_date.AddFunction(ScalarFunction({LogicalType::BIGINT, LogicalType::BIGINT, LogicalType::BIGINT}, LogicalType::DATE, ExecuteMakeDate)); diff --git a/src/duckdb/src/core_functions/scalar/date/time_bucket.cpp b/src/duckdb/extension/core_functions/scalar/date/time_bucket.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/date/time_bucket.cpp rename to src/duckdb/extension/core_functions/scalar/date/time_bucket.cpp index 31ae5f53..3c8c2719 100644 --- a/src/duckdb/src/core_functions/scalar/date/time_bucket.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/time_bucket.cpp @@ -9,7 +9,7 @@ #include "duckdb/common/vector_operations/binary_executor.hpp" #include "duckdb/common/vector_operations/ternary_executor.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/date/to_interval.cpp b/src/duckdb/extension/core_functions/scalar/date/to_interval.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/date/to_interval.cpp rename to src/duckdb/extension/core_functions/scalar/date/to_interval.cpp index e16111f8..204f4964 100644 --- a/src/duckdb/src/core_functions/scalar/date/to_interval.cpp +++ b/src/duckdb/extension/core_functions/scalar/date/to_interval.cpp @@ -1,8 +1,8 @@ -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "core_functions/scalar/date_functions.hpp" #include "duckdb/common/types/interval.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/operator/multiply.hpp" -#include "duckdb/core_functions/to_interval.hpp" +#include "duckdb/function/to_interval.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/debug/vector_type.cpp b/src/duckdb/extension/core_functions/scalar/debug/vector_type.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/debug/vector_type.cpp rename to src/duckdb/extension/core_functions/scalar/debug/vector_type.cpp index 625273cd..627d7ac2 100644 --- a/src/duckdb/src/core_functions/scalar/debug/vector_type.cpp +++ b/src/duckdb/extension/core_functions/scalar/debug/vector_type.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/debug_functions.hpp" +#include "core_functions/scalar/debug_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/enum/enum_functions.cpp b/src/duckdb/extension/core_functions/scalar/enum/enum_functions.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/enum/enum_functions.cpp rename to src/duckdb/extension/core_functions/scalar/enum/enum_functions.cpp index ddf07c3d..a10ec381 100644 --- a/src/duckdb/src/core_functions/scalar/enum/enum_functions.cpp +++ b/src/duckdb/extension/core_functions/scalar/enum/enum_functions.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/enum_functions.hpp" +#include "core_functions/scalar/enum_functions.hpp" namespace duckdb { @@ -56,12 +56,7 @@ static void EnumRangeBoundaryFunction(DataChunk &input, ExpressionState &state, for (idx_t i = start; i < end; i++) { enum_values.emplace_back(enum_vector.GetValue(i)); } - Value val; - if (enum_values.empty()) { - val = Value::EMPTYLIST(LogicalType::VARCHAR); - } else { - val = Value::LIST(enum_values); - } + auto val = Value::LIST(LogicalType::VARCHAR, enum_values); result.Reference(val); } diff --git a/src/duckdb/src/core_functions/scalar/generic/alias.cpp b/src/duckdb/extension/core_functions/scalar/generic/alias.cpp similarity index 90% rename from src/duckdb/src/core_functions/scalar/generic/alias.cpp rename to src/duckdb/extension/core_functions/scalar/generic/alias.cpp index e7065ba5..88378778 100644 --- a/src/duckdb/src/core_functions/scalar/generic/alias.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/alias.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/function/scalar/generic/binning.cpp b/src/duckdb/extension/core_functions/scalar/generic/binning.cpp similarity index 99% rename from src/duckdb/src/function/scalar/generic/binning.cpp rename to src/duckdb/extension/core_functions/scalar/generic/binning.cpp index aaa9d19d..6e6c6c6c 100644 --- a/src/duckdb/src/function/scalar/generic/binning.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/binning.cpp @@ -1,12 +1,12 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/hugeint.hpp" +#include "duckdb/common/operator/subtract.hpp" +#include "duckdb/common/serializer/deserializer.hpp" #include "duckdb/common/types/date.hpp" #include "duckdb/common/types/time.hpp" #include "duckdb/common/types/timestamp.hpp" #include "duckdb/common/vector_operations/generic_executor.hpp" -#include "duckdb/core_functions/scalar/generic_functions.hpp" -#include "duckdb/common/operator/subtract.hpp" -#include "duckdb/common/serializer/deserializer.hpp" +#include "core_functions/scalar/generic_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/generic/can_implicitly_cast.cpp b/src/duckdb/extension/core_functions/scalar/generic/can_implicitly_cast.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/generic/can_implicitly_cast.cpp rename to src/duckdb/extension/core_functions/scalar/generic/can_implicitly_cast.cpp index 37b25d48..5db38d60 100644 --- a/src/duckdb/src/core_functions/scalar/generic/can_implicitly_cast.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/can_implicitly_cast.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/function/cast/cast_function_set.hpp" diff --git a/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp b/src/duckdb/extension/core_functions/scalar/generic/current_setting.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/generic/current_setting.cpp rename to src/duckdb/extension/core_functions/scalar/generic/current_setting.cpp index 43bbdcfb..b983b27c 100644 --- a/src/duckdb/src/core_functions/scalar/generic/current_setting.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/current_setting.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" #include "duckdb/main/database.hpp" #include "duckdb/main/client_context.hpp" diff --git a/src/duckdb/src/core_functions/scalar/generic/hash.cpp b/src/duckdb/extension/core_functions/scalar/generic/hash.cpp similarity index 88% rename from src/duckdb/src/core_functions/scalar/generic/hash.cpp rename to src/duckdb/extension/core_functions/scalar/generic/hash.cpp index b99e9704..18491944 100644 --- a/src/duckdb/src/core_functions/scalar/generic/hash.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/hash.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/generic/least.cpp b/src/duckdb/extension/core_functions/scalar/generic/least.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/generic/least.cpp rename to src/duckdb/extension/core_functions/scalar/generic/least.cpp index d91b4939..8dcb6434 100644 --- a/src/duckdb/src/core_functions/scalar/generic/least.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/least.cpp @@ -1,6 +1,6 @@ #include "duckdb/common/operator/comparison_operators.hpp" -#include "duckdb/core_functions/scalar/generic_functions.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" +#include "core_functions/scalar/generic_functions.hpp" +#include "duckdb/function/create_sort_key.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/generic/stats.cpp b/src/duckdb/extension/core_functions/scalar/generic/stats.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/generic/stats.cpp rename to src/duckdb/extension/core_functions/scalar/generic/stats.cpp index f547ca78..ad3f4cd0 100644 --- a/src/duckdb/src/core_functions/scalar/generic/stats.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/stats.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp b/src/duckdb/extension/core_functions/scalar/generic/system_functions.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/generic/system_functions.cpp rename to src/duckdb/extension/core_functions/scalar/generic/system_functions.cpp index 97fb3fbd..5e4251c0 100644 --- a/src/duckdb/src/core_functions/scalar/generic/system_functions.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/system_functions.cpp @@ -1,5 +1,5 @@ #include "duckdb/catalog/catalog_search_path.hpp" -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" #include "duckdb/main/database.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/main/client_data.hpp" diff --git a/src/duckdb/src/core_functions/scalar/generic/typeof.cpp b/src/duckdb/extension/core_functions/scalar/generic/typeof.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/generic/typeof.cpp rename to src/duckdb/extension/core_functions/scalar/generic/typeof.cpp index b74a0cef..1f7caef8 100644 --- a/src/duckdb/src/core_functions/scalar/generic/typeof.cpp +++ b/src/duckdb/extension/core_functions/scalar/generic/typeof.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "core_functions/scalar/generic_functions.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/list/array_slice.cpp b/src/duckdb/extension/core_functions/scalar/list/array_slice.cpp similarity index 73% rename from src/duckdb/src/core_functions/scalar/list/array_slice.cpp rename to src/duckdb/extension/core_functions/scalar/list/array_slice.cpp index 3cc0960d..6aa11078 100644 --- a/src/duckdb/src/core_functions/scalar/list/array_slice.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/array_slice.cpp @@ -1,9 +1,10 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/common/swap.hpp" #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" @@ -58,20 +59,68 @@ static idx_t CalculateSliceLength(idx_t begin, idx_t end, INDEX_TYPE step, bool return (end - begin) / UnsafeNumericCast(step); } -template -INDEX_TYPE ValueLength(const INPUT_TYPE &value) { - return 0; -} +struct BlobSliceOperations { + static int64_t ValueLength(const string_t &value) { + return UnsafeNumericCast(value.GetSize()); + } -template <> -int64_t ValueLength(const list_entry_t &value) { - return UnsafeNumericCast(value.length); -} + static string_t SliceValue(Vector &result, string_t input, int64_t begin, int64_t end) { + return SubstringASCII(result, input, begin + 1, end - begin); + } -template <> -int64_t ValueLength(const string_t &value) { - return LengthFun::Length(value); -} + static string_t SliceValueWithSteps(Vector &result, SelectionVector &sel, string_t input, int64_t begin, + int64_t end, int64_t step, idx_t &sel_idx) { + throw InternalException("Slicing with steps is not supported for strings"); + } +}; + +struct StringSliceOperations { + static int64_t ValueLength(const string_t &value) { + return Length(value); + } + + static string_t SliceValue(Vector &result, string_t input, int64_t begin, int64_t end) { + return SubstringUnicode(result, input, begin + 1, end - begin); + } + + static string_t SliceValueWithSteps(Vector &result, SelectionVector &sel, string_t input, int64_t begin, + int64_t end, int64_t step, idx_t &sel_idx) { + throw InternalException("Slicing with steps is not supported for strings"); + } +}; + +struct ListSliceOperations { + static int64_t ValueLength(const list_entry_t &value) { + return UnsafeNumericCast(value.length); + } + + static list_entry_t SliceValue(Vector &result, list_entry_t input, int64_t begin, int64_t end) { + input.offset = UnsafeNumericCast(UnsafeNumericCast(input.offset) + begin); + input.length = UnsafeNumericCast(end - begin); + return input; + } + + static list_entry_t SliceValueWithSteps(Vector &result, SelectionVector &sel, list_entry_t input, int64_t begin, + int64_t end, int64_t step, idx_t &sel_idx) { + if (end - begin == 0) { + input.length = 0; + input.offset = sel_idx; + return input; + } + input.length = CalculateSliceLength(UnsafeNumericCast(begin), UnsafeNumericCast(end), step, true); + idx_t child_idx = input.offset + UnsafeNumericCast(begin); + if (step < 0) { + child_idx = input.offset + UnsafeNumericCast(end) - 1; + } + input.offset = sel_idx; + for (idx_t i = 0; i < input.length; i++) { + sel.set_index(sel_idx, child_idx); + child_idx += static_cast(step); // intentional overflow?? + sel_idx++; + } + return input; + } +}; template static void ClampIndex(INDEX_TYPE &index, const INPUT_TYPE &value, const INDEX_TYPE length, bool is_min) { @@ -85,7 +134,7 @@ static void ClampIndex(INDEX_TYPE &index, const INPUT_TYPE &value, const INDEX_T return; } -template +template static bool ClampSlice(const INPUT_TYPE &value, INDEX_TYPE &begin, INDEX_TYPE &end) { // Clamp offsets begin = (begin != 0 && begin != (INDEX_TYPE)NumericLimits::Minimum()) ? begin - 1 : begin; @@ -96,7 +145,7 @@ static bool ClampSlice(const INPUT_TYPE &value, INDEX_TYPE &begin, INDEX_TYPE &e is_min = true; } - const auto length = ValueLength(value); + const auto length = OP::ValueLength(value); if (begin < 0 && -begin > length && end < 0 && end < -length) { begin = 0; end = 0; @@ -112,53 +161,7 @@ static bool ClampSlice(const INPUT_TYPE &value, INDEX_TYPE &begin, INDEX_TYPE &e return true; } -template -INPUT_TYPE SliceValue(Vector &result, INPUT_TYPE input, INDEX_TYPE begin, INDEX_TYPE end) { - return input; -} - -template <> -list_entry_t SliceValue(Vector &result, list_entry_t input, int64_t begin, int64_t end) { - input.offset = UnsafeNumericCast(UnsafeNumericCast(input.offset) + begin); - input.length = UnsafeNumericCast(end - begin); - return input; -} - -template <> -string_t SliceValue(Vector &result, string_t input, int64_t begin, int64_t end) { - // one-based - zero has strange semantics - return SubstringFun::SubstringUnicode(result, input, begin + 1, end - begin); -} - -template -INPUT_TYPE SliceValueWithSteps(Vector &result, SelectionVector &sel, INPUT_TYPE input, INDEX_TYPE begin, INDEX_TYPE end, - INDEX_TYPE step, idx_t &sel_idx) { - return input; -} - -template <> -list_entry_t SliceValueWithSteps(Vector &result, SelectionVector &sel, list_entry_t input, int64_t begin, int64_t end, - int64_t step, idx_t &sel_idx) { - if (end - begin == 0) { - input.length = 0; - input.offset = sel_idx; - return input; - } - input.length = CalculateSliceLength(UnsafeNumericCast(begin), UnsafeNumericCast(end), step, true); - idx_t child_idx = input.offset + UnsafeNumericCast(begin); - if (step < 0) { - child_idx = input.offset + UnsafeNumericCast(end) - 1; - } - input.offset = sel_idx; - for (idx_t i = 0; i < input.length; i++) { - sel.set_index(sel_idx, child_idx); - child_idx += static_cast(step); // intentional overflow?? - sel_idx++; - } - return input; -} - -template +template static void ExecuteConstantSlice(Vector &result, Vector &str_vector, Vector &begin_vector, Vector &end_vector, optional_ptr step_vector, const idx_t count, SelectionVector &sel, idx_t &sel_idx, optional_ptr result_child_vector, bool begin_is_empty, @@ -183,19 +186,19 @@ static void ExecuteConstantSlice(Vector &result, Vector &str_vector, Vector &beg auto str = str_data[0]; auto begin = begin_is_empty ? 0 : begin_data[0]; - auto end = end_is_empty ? ValueLength(str) : end_data[0]; + auto end = end_is_empty ? OP::ValueLength(str) : end_data[0]; auto step = step_data ? step_data[0] : 1; if (step < 0) { swap(begin, end); begin = end_is_empty ? 0 : begin; - end = begin_is_empty ? ValueLength(str) : end; + end = begin_is_empty ? OP::ValueLength(str) : end; } // Clamp offsets bool clamp_result = false; if (step_valid || step == 1) { - clamp_result = ClampSlice(str, begin, end); + clamp_result = ClampSlice(str, begin, end); } idx_t sel_length = 0; @@ -211,9 +214,9 @@ static void ExecuteConstantSlice(Vector &result, Vector &str_vector, Vector &beg if (!clamp_result) { ConstantVector::SetNull(result, true); } else if (step == 1) { - result_data[0] = SliceValue(result, str, begin, end); + result_data[0] = OP::SliceValue(result, str, begin, end); } else { - result_data[0] = SliceValueWithSteps(result, sel, str, begin, end, step, sel_idx); + result_data[0] = OP::SliceValueWithSteps(result, sel, str, begin, end, step, sel_idx); } if (sel_valid) { @@ -223,7 +226,7 @@ static void ExecuteConstantSlice(Vector &result, Vector &str_vector, Vector &beg } } -template +template static void ExecuteFlatSlice(Vector &result, Vector &list_vector, Vector &begin_vector, Vector &end_vector, optional_ptr step_vector, const idx_t count, SelectionVector &sel, idx_t &sel_idx, optional_ptr result_child_vector, bool begin_is_empty, bool end_is_empty) { @@ -259,19 +262,18 @@ static void ExecuteFlatSlice(Vector &result, Vector &list_vector, Vector &begin_ auto sliced = reinterpret_cast(list_data.data)[list_idx]; auto begin = begin_is_empty ? 0 : reinterpret_cast(begin_data.data)[begin_idx]; - auto end = end_is_empty ? ValueLength(sliced) - : reinterpret_cast(end_data.data)[end_idx]; + auto end = end_is_empty ? OP::ValueLength(sliced) : reinterpret_cast(end_data.data)[end_idx]; auto step = step_vector ? reinterpret_cast(step_data.data)[step_idx] : 1; if (step < 0) { swap(begin, end); begin = end_is_empty ? 0 : begin; - end = begin_is_empty ? ValueLength(sliced) : end; + end = begin_is_empty ? OP::ValueLength(sliced) : end; } bool clamp_result = false; if (step_valid || step == 1) { - clamp_result = ClampSlice(sliced, begin, end); + clamp_result = ClampSlice(sliced, begin, end); } idx_t length = 0; @@ -284,10 +286,9 @@ static void ExecuteFlatSlice(Vector &result, Vector &list_vector, Vector &begin_ if (!clamp_result) { result_mask.SetInvalid(i); } else if (!step_vector) { - result_data[i] = SliceValue(result, sliced, begin, end); + result_data[i] = OP::SliceValue(result, sliced, begin, end); } else { - result_data[i] = - SliceValueWithSteps(result, sel, sliced, begin, end, step, sel_idx); + result_data[i] = OP::SliceValueWithSteps(result, sel, sliced, begin, end, step, sel_idx); } } if (step_vector) { @@ -301,7 +302,7 @@ static void ExecuteFlatSlice(Vector &result, Vector &list_vector, Vector &begin_ } } -template +template static void ExecuteSlice(Vector &result, Vector &list_or_str_vector, Vector &begin_vector, Vector &end_vector, optional_ptr step_vector, const idx_t count, bool begin_is_empty, bool end_is_empty) { optional_ptr result_child_vector; @@ -313,13 +314,13 @@ static void ExecuteSlice(Vector &result, Vector &list_or_str_vector, Vector &beg idx_t sel_idx = 0; if (result.GetVectorType() == VectorType::CONSTANT_VECTOR) { - ExecuteConstantSlice(result, list_or_str_vector, begin_vector, end_vector, step_vector, + ExecuteConstantSlice(result, list_or_str_vector, begin_vector, end_vector, + step_vector, count, sel, sel_idx, result_child_vector, + begin_is_empty, end_is_empty); + } else { + ExecuteFlatSlice(result, list_or_str_vector, begin_vector, end_vector, step_vector, count, sel, sel_idx, result_child_vector, begin_is_empty, end_is_empty); - } else { - ExecuteFlatSlice(result, list_or_str_vector, begin_vector, end_vector, step_vector, - count, sel, sel_idx, result_child_vector, begin_is_empty, - end_is_empty); } result.Verify(count); } @@ -360,15 +361,18 @@ static void ArraySliceFunction(DataChunk &args, ExpressionState &state, Vector & list_or_str_vector.GetVectorType() != VectorType::CONSTANT_VECTOR) { list_or_str_vector.Flatten(count); } - ExecuteSlice(result, list_or_str_vector, begin_vector, end_vector, step_vector, count, - begin_is_empty, end_is_empty); + ExecuteSlice(result, list_or_str_vector, begin_vector, end_vector, + step_vector, count, begin_is_empty, end_is_empty); break; } - case LogicalTypeId::VARCHAR: { - ExecuteSlice(result, list_or_str_vector, begin_vector, end_vector, step_vector, count, - begin_is_empty, end_is_empty); + case LogicalTypeId::BLOB: + ExecuteSlice(result, list_or_str_vector, begin_vector, end_vector, + step_vector, count, begin_is_empty, end_is_empty); + break; + case LogicalTypeId::VARCHAR: + ExecuteSlice(result, list_or_str_vector, begin_vector, end_vector, + step_vector, count, begin_is_empty, end_is_empty); break; - } default: throw NotImplementedException("Specifier type not implemented"); } @@ -404,6 +408,7 @@ static unique_ptr ArraySliceBind(ClientContext &context, ScalarFun // The result is the same type bound_function.return_type = arguments[0]->return_type; break; + case LogicalTypeId::BLOB: case LogicalTypeId::VARCHAR: // string slice returns a string if (bound_function.arguments.size() == 4) { diff --git a/src/duckdb/src/core_functions/scalar/list/flatten.cpp b/src/duckdb/extension/core_functions/scalar/list/flatten.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/list/flatten.cpp rename to src/duckdb/extension/core_functions/scalar/list/flatten.cpp index 4833dc7a..849c20d1 100644 --- a/src/duckdb/src/core_functions/scalar/list/flatten.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/flatten.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/storage/statistics/list_stats.hpp" diff --git a/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp b/src/duckdb/extension/core_functions/scalar/list/list_aggregates.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_aggregates.cpp index e423c1a7..6b94bf60 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_aggregates.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_aggregates.cpp @@ -1,5 +1,5 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" -#include "duckdb/core_functions/aggregate/nested_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" +#include "core_functions/aggregate/nested_functions.hpp" #include "duckdb/catalog/catalog.hpp" #include "duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp" #include "duckdb/execution/expression_executor.hpp" @@ -10,7 +10,7 @@ #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression_binder.hpp" #include "duckdb/function/function_binder.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" +#include "duckdb/function/create_sort_key.hpp" #include "duckdb/common/owning_string_map.hpp" namespace duckdb { @@ -294,6 +294,7 @@ static void ListAggregatesFunction(DataChunk &args, ExpressionState &state, Vect auto key_type = aggr.function.arguments[0]; switch (key_type.InternalType()) { +#ifndef DUCKDB_SMALLER_BINARY case PhysicalType::BOOL: FUNCTION_FUNCTOR::template ListExecuteFunction( result, state_vector.state_vector, count); @@ -343,6 +344,7 @@ static void ListAggregatesFunction(DataChunk &args, ExpressionState &state, Vect OwningStringMap>(result, state_vector.state_vector, count); break; +#endif default: FUNCTION_FUNCTOR::template ListExecuteFunction>(result, state_vector.state_vector, diff --git a/src/duckdb/src/core_functions/scalar/list/list_distance.cpp b/src/duckdb/extension/core_functions/scalar/list/list_distance.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/list/list_distance.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_distance.cpp index 23e19f87..f4c42098 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_distance.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_distance.cpp @@ -1,5 +1,5 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" -#include "duckdb/core_functions/array_kernels.hpp" +#include "core_functions/scalar/list_functions.hpp" +#include "core_functions/array_kernels.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/list/list_filter.cpp b/src/duckdb/extension/core_functions/scalar/list/list_filter.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/list/list_filter.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_filter.cpp index 9dbab098..d8ab7cdd 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_filter.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_filter.cpp @@ -1,6 +1,6 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" -#include "duckdb/core_functions/lambda_functions.hpp" +#include "duckdb/function/lambda_functions.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/list/list_has_any_or_all.cpp b/src/duckdb/extension/core_functions/scalar/list/list_has_any_or_all.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/list/list_has_any_or_all.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_has_any_or_all.cpp index 4a3e3509..dd15edc9 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_has_any_or_all.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_has_any_or_all.cpp @@ -1,6 +1,6 @@ -#include "duckdb/core_functions/lambda_functions.hpp" -#include "duckdb/core_functions/scalar/list_functions.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" +#include "duckdb/function/lambda_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" +#include "duckdb/function/create_sort_key.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/common/string_map_set.hpp" diff --git a/src/duckdb/src/core_functions/scalar/list/list_reduce.cpp b/src/duckdb/extension/core_functions/scalar/list/list_reduce.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/list/list_reduce.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_reduce.cpp index a3b4e01d..7a0ac4c5 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_reduce.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_reduce.cpp @@ -1,5 +1,5 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" -#include "duckdb/core_functions/lambda_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" +#include "duckdb/function/lambda_functions.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -9,7 +9,7 @@ struct ReduceExecuteInfo { ReduceExecuteInfo(LambdaFunctions::LambdaInfo &info, ClientContext &context) : left_slice(make_uniq(*info.child_vector)) { SelectionVector left_vector(info.row_count); - active_rows.Resize(0, info.row_count); + active_rows.Resize(info.row_count); active_rows.SetAllValid(info.row_count); left_sel.Initialize(info.row_count); diff --git a/src/duckdb/src/core_functions/scalar/list/list_sort.cpp b/src/duckdb/extension/core_functions/scalar/list/list_sort.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/list/list_sort.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_sort.cpp index 0fbe54ba..5ab523d2 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_sort.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_sort.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" #include "duckdb/common/enum_util.hpp" #include "duckdb/common/numeric_utils.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/list/list_transform.cpp b/src/duckdb/extension/core_functions/scalar/list/list_transform.cpp similarity index 93% rename from src/duckdb/src/core_functions/scalar/list/list_transform.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_transform.cpp index 01f10641..69c8e5cc 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_transform.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_transform.cpp @@ -1,6 +1,6 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" -#include "duckdb/core_functions/lambda_functions.hpp" +#include "duckdb/function/lambda_functions.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/list/list_value.cpp b/src/duckdb/extension/core_functions/scalar/list/list_value.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/list/list_value.cpp rename to src/duckdb/extension/core_functions/scalar/list/list_value.cpp index cc7a5df6..6600d7eb 100644 --- a/src/duckdb/src/core_functions/scalar/list/list_value.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/list_value.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/expression/bound_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/list/range.cpp b/src/duckdb/extension/core_functions/scalar/list/range.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/list/range.cpp rename to src/duckdb/extension/core_functions/scalar/list/range.cpp index d965eb30..174fcb9c 100644 --- a/src/duckdb/src/core_functions/scalar/list/range.cpp +++ b/src/duckdb/extension/core_functions/scalar/list/range.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/list_functions.hpp" +#include "core_functions/scalar/list_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/common/types/vector.hpp" diff --git a/src/duckdb/src/core_functions/scalar/map/cardinality.cpp b/src/duckdb/extension/core_functions/scalar/map/cardinality.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/map/cardinality.cpp rename to src/duckdb/extension/core_functions/scalar/map/cardinality.cpp index 8bf0dbd1..9c81223e 100644 --- a/src/duckdb/src/core_functions/scalar/map/cardinality.cpp +++ b/src/duckdb/extension/core_functions/scalar/map/cardinality.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/map_functions.hpp" +#include "core_functions/scalar/map_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/expression/bound_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/map/map.cpp b/src/duckdb/extension/core_functions/scalar/map/map.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/map/map.cpp rename to src/duckdb/extension/core_functions/scalar/map/map.cpp index ab67475d..7e39554e 100644 --- a/src/duckdb/src/core_functions/scalar/map/map.cpp +++ b/src/duckdb/extension/core_functions/scalar/map/map.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/map_functions.hpp" +#include "core_functions/scalar/map_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/expression/bound_expression.hpp" @@ -10,9 +10,8 @@ namespace duckdb { static void MapFunctionEmptyInput(Vector &result, const idx_t row_count) { - - // if no chunk is set in ExpressionExecutor::ExecuteExpression (args.data.empty(), e.g., - // in SELECT MAP()), then we always pass a row_count of 1 + // If no chunk is set in ExpressionExecutor::ExecuteExpression (args.data.empty(), e.g., in SELECT MAP()), + // then we always pass a row_count of 1. result.SetVectorType(VectorType::CONSTANT_VECTOR); ListVector::SetListSize(result, 0); @@ -165,6 +164,7 @@ static void MapFunction(DataChunk &args, ExpressionState &, Vector &result) { result_key_vector.Flatten(offset); result_value_vector.Slice(values_child_vector, sel_values, offset); result_value_vector.Flatten(offset); + FlatVector::Validity(ListVector::GetEntry(result)).Resize(result_child_size); if (args.AllConstant()) { result.SetVectorType(VectorType::CONSTANT_VECTOR); diff --git a/src/duckdb/src/core_functions/scalar/map/map_concat.cpp b/src/duckdb/extension/core_functions/scalar/map/map_concat.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/map/map_concat.cpp rename to src/duckdb/extension/core_functions/scalar/map/map_concat.cpp index b3ffc174..c958f41b 100644 --- a/src/duckdb/src/core_functions/scalar/map/map_concat.cpp +++ b/src/duckdb/extension/core_functions/scalar/map/map_concat.cpp @@ -6,7 +6,7 @@ #include "duckdb/common/pair.hpp" #include "duckdb/common/types.hpp" #include "duckdb/common/unordered_map.hpp" -#include "duckdb/core_functions/scalar/map_functions.hpp" +#include "core_functions/scalar/map_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/map/map_entries.cpp b/src/duckdb/extension/core_functions/scalar/map/map_entries.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/map/map_entries.cpp rename to src/duckdb/extension/core_functions/scalar/map/map_entries.cpp index 47e65399..487fd75f 100644 --- a/src/duckdb/src/core_functions/scalar/map/map_entries.cpp +++ b/src/duckdb/extension/core_functions/scalar/map/map_entries.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/map_functions.hpp" +#include "core_functions/scalar/map_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/expression/bound_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/map/map_extract.cpp b/src/duckdb/extension/core_functions/scalar/map/map_extract.cpp similarity index 73% rename from src/duckdb/src/core_functions/scalar/map/map_extract.cpp rename to src/duckdb/extension/core_functions/scalar/map/map_extract.cpp index 79056cd0..170f2b7d 100644 --- a/src/duckdb/src/core_functions/scalar/map/map_extract.cpp +++ b/src/duckdb/extension/core_functions/scalar/map/map_extract.cpp @@ -1,13 +1,12 @@ -#include "duckdb/core_functions/scalar/map_functions.hpp" -#include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/common/string_util.hpp" -#include "duckdb/parser/expression/bound_expression.hpp" +#include "core_functions/scalar/map_functions.hpp" #include "duckdb/common/types/data_chunk.hpp" -#include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/function/scalar/list/contains_or_position.hpp" +#include "duckdb/function/scalar/nested_functions.hpp" +#include "duckdb/planner/expression/bound_function_expression.hpp" + namespace duckdb { -static unique_ptr MapExtractBind(ClientContext &context, ScalarFunction &bound_function, +static unique_ptr MapExtractBind(ClientContext &, ScalarFunction &bound_function, vector> &arguments) { if (arguments.size() != 2) { throw BinderException("MAP_EXTRACT must have exactly two arguments"); @@ -17,7 +16,7 @@ static unique_ptr MapExtractBind(ClientContext &context, ScalarFun auto &input_type = arguments[1]->return_type; if (map_type.id() == LogicalTypeId::SQLNULL) { - bound_function.return_type = LogicalType::LIST(LogicalTypeId::SQLNULL); + bound_function.return_type = LogicalTypeId::SQLNULL; return make_uniq(bound_function.return_type); } @@ -27,7 +26,7 @@ static unique_ptr MapExtractBind(ClientContext &context, ScalarFun auto &value_type = MapType::ValueType(map_type); //! Here we have to construct the List Type that will be returned - bound_function.return_type = LogicalType::LIST(value_type); + bound_function.return_type = value_type; auto key_type = MapType::KeyType(map_type); if (key_type.id() != LogicalTypeId::SQLNULL && input_type.id() != LogicalTypeId::SQLNULL) { bound_function.arguments[1] = MapType::KeyType(map_type); @@ -46,9 +45,8 @@ static void MapExtractFunc(DataChunk &args, ExpressionState &state, Vector &resu if (map_is_null || arg_is_null) { // Short-circuit if either the map or the arg is NULL - ListVector::SetListSize(result, 0); result.SetVectorType(VectorType::CONSTANT_VECTOR); - ConstantVector::GetData(result)[0] = {0, 0}; + ConstantVector::SetNull(result, true); result.Verify(count); return; } @@ -60,19 +58,16 @@ static void MapExtractFunc(DataChunk &args, ExpressionState &state, Vector &resu Vector pos_vec(LogicalType::INTEGER, count); ListSearchOp(map_vec, key_vec, arg_vec, pos_vec, args.size()); - UnifiedVectorFormat val_format; UnifiedVectorFormat pos_format; UnifiedVectorFormat lst_format; - val_vec.ToUnifiedFormat(ListVector::GetListSize(map_vec), val_format); pos_vec.ToUnifiedFormat(count, pos_format); map_vec.ToUnifiedFormat(count, lst_format); const auto pos_data = UnifiedVectorFormat::GetData(pos_format); const auto inc_list_data = ListVector::GetData(map_vec); - const auto out_list_data = ListVector::GetData(result); - idx_t offset = 0; + auto &result_validity = FlatVector::Validity(result); for (idx_t row_idx = 0; row_idx < count; row_idx++) { auto lst_idx = lst_format.sel->get_index(row_idx); if (!lst_format.validity.RowIsValid(lst_idx)) { @@ -80,23 +75,16 @@ static void MapExtractFunc(DataChunk &args, ExpressionState &state, Vector &resu continue; } - auto &inc_list = inc_list_data[lst_idx]; - auto &out_list = out_list_data[row_idx]; - const auto pos_idx = pos_format.sel->get_index(row_idx); if (!pos_format.validity.RowIsValid(pos_idx)) { - // We didnt find the key in the map, so return an empty list - out_list.offset = offset; - out_list.length = 0; + // We didnt find the key in the map, so return NULL + result_validity.SetInvalid(row_idx); continue; } // Compute the actual position of the value in the map value vector - const auto pos = inc_list.offset + UnsafeNumericCast(pos_data[pos_idx] - 1); - out_list.offset = offset; - out_list.length = 1; - ListVector::Append(result, val_vec, pos + 1, pos); - offset++; + const auto pos = inc_list_data[lst_idx].offset + UnsafeNumericCast(pos_data[pos_idx] - 1); + VectorOperations::Copy(val_vec, result, pos + 1, pos, row_idx); } if (args.size() == 1) { diff --git a/src/duckdb/src/core_functions/scalar/map/map_from_entries.cpp b/src/duckdb/extension/core_functions/scalar/map/map_from_entries.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/map/map_from_entries.cpp rename to src/duckdb/extension/core_functions/scalar/map/map_from_entries.cpp index fbaf1663..8fb23e41 100644 --- a/src/duckdb/src/core_functions/scalar/map/map_from_entries.cpp +++ b/src/duckdb/extension/core_functions/scalar/map/map_from_entries.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/map_functions.hpp" +#include "core_functions/scalar/map_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/expression/bound_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/map/map_keys_values.cpp b/src/duckdb/extension/core_functions/scalar/map/map_keys_values.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/map/map_keys_values.cpp rename to src/duckdb/extension/core_functions/scalar/map/map_keys_values.cpp index c5578895..4107029b 100644 --- a/src/duckdb/src/core_functions/scalar/map/map_keys_values.cpp +++ b/src/duckdb/extension/core_functions/scalar/map/map_keys_values.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/map_functions.hpp" +#include "core_functions/scalar/map_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/expression/bound_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/math/numeric.cpp b/src/duckdb/extension/core_functions/scalar/math/numeric.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/math/numeric.cpp rename to src/duckdb/extension/core_functions/scalar/math/numeric.cpp index 1c47fbd9..b69b38f9 100644 --- a/src/duckdb/src/core_functions/scalar/math/numeric.cpp +++ b/src/duckdb/extension/core_functions/scalar/math/numeric.cpp @@ -1,16 +1,25 @@ -#include "duckdb/core_functions/scalar/math_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/common/algorithm.hpp" +#include "duckdb/common/likely.hpp" #include "duckdb/common/operator/abs.hpp" #include "duckdb/common/operator/multiply.hpp" -#include "duckdb/common/types/hugeint.hpp" +#include "duckdb/common/operator/numeric_binary_operators.hpp" +#include "duckdb/common/types/bit.hpp" #include "duckdb/common/types/cast_helpers.hpp" -#include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/common/algorithm.hpp" +#include "duckdb/common/types/hugeint.hpp" +#include "duckdb/common/types/uhugeint.hpp" +#include "duckdb/common/types/validity_mask.hpp" +#include "duckdb/common/types/vector.hpp" +#include "duckdb/common/vector_operations/unary_executor.hpp" +#include "core_functions/scalar/math_functions.hpp" #include "duckdb/execution/expression_executor.hpp" -#include "duckdb/common/likely.hpp" -#include "duckdb/common/types/bit.hpp" +#include "duckdb/planner/expression/bound_function_expression.hpp" + #include +#include #include +#include +#include namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/operators/bitwise.cpp b/src/duckdb/extension/core_functions/scalar/operators/bitwise.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/operators/bitwise.cpp rename to src/duckdb/extension/core_functions/scalar/operators/bitwise.cpp index 6e9415aa..8e4a0476 100644 --- a/src/duckdb/src/core_functions/scalar/operators/bitwise.cpp +++ b/src/duckdb/extension/core_functions/scalar/operators/bitwise.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/operators_functions.hpp" +#include "core_functions/scalar/operators_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/types/cast_helpers.hpp" #include "duckdb/common/types/bit.hpp" diff --git a/src/duckdb/src/core_functions/scalar/random/random.cpp b/src/duckdb/extension/core_functions/scalar/random/random.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/random/random.cpp rename to src/duckdb/extension/core_functions/scalar/random/random.cpp index 02567a48..c093f0f0 100644 --- a/src/duckdb/src/core_functions/scalar/random/random.cpp +++ b/src/duckdb/extension/core_functions/scalar/random/random.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/random_functions.hpp" +#include "core_functions/scalar/random_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/main/client_context.hpp" diff --git a/src/duckdb/src/core_functions/scalar/random/setseed.cpp b/src/duckdb/extension/core_functions/scalar/random/setseed.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/random/setseed.cpp rename to src/duckdb/extension/core_functions/scalar/random/setseed.cpp index a4e1d01d..8c2e6739 100644 --- a/src/duckdb/src/core_functions/scalar/random/setseed.cpp +++ b/src/duckdb/extension/core_functions/scalar/random/setseed.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/random_functions.hpp" +#include "core_functions/scalar/random_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/execution/expression_executor.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/ascii.cpp b/src/duckdb/extension/core_functions/scalar/string/ascii.cpp similarity index 90% rename from src/duckdb/src/core_functions/scalar/string/ascii.cpp rename to src/duckdb/extension/core_functions/scalar/string/ascii.cpp index 5f41338b..4083c85d 100644 --- a/src/duckdb/src/core_functions/scalar/string/ascii.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/ascii.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "utf8proc.hpp" #include "utf8proc_wrapper.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/bar.cpp b/src/duckdb/extension/core_functions/scalar/string/bar.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/string/bar.cpp rename to src/duckdb/extension/core_functions/scalar/string/bar.cpp index b571e7ac..957b8c62 100644 --- a/src/duckdb/src/core_functions/scalar/string/bar.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/bar.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/types/string_type.hpp" @@ -39,24 +39,26 @@ static string_t BarScalarFunction(double x, double min, double max, double max_w } result.clear(); + idx_t used_blocks = 0; auto width_as_int = LossyNumericCast(width * PARTIAL_BLOCKS_COUNT); idx_t full_blocks_count = (width_as_int / PARTIAL_BLOCKS_COUNT); for (idx_t i = 0; i < full_blocks_count; i++) { + used_blocks++; result += FULL_BLOCK; } idx_t remaining = width_as_int % PARTIAL_BLOCKS_COUNT; if (remaining) { + used_blocks++; result += PARTIAL_BLOCKS[remaining]; } const idx_t integer_max_width = (idx_t)max_width; - if (result.size() < integer_max_width) { - result += std::string(integer_max_width - result.size(), ' '); + if (used_blocks < integer_max_width) { + result += std::string(integer_max_width - used_blocks, ' '); } - return string_t(result); } diff --git a/src/duckdb/src/core_functions/scalar/string/chr.cpp b/src/duckdb/extension/core_functions/scalar/string/chr.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/string/chr.cpp rename to src/duckdb/extension/core_functions/scalar/string/chr.cpp index 34f897eb..bca2de6d 100644 --- a/src/duckdb/src/core_functions/scalar/string/chr.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/chr.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "utf8proc.hpp" #include "utf8proc_wrapper.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/damerau_levenshtein.cpp b/src/duckdb/extension/core_functions/scalar/string/damerau_levenshtein.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/string/damerau_levenshtein.cpp rename to src/duckdb/extension/core_functions/scalar/string/damerau_levenshtein.cpp index 20bb7dfc..91b0fbd3 100644 --- a/src/duckdb/src/core_functions/scalar/string/damerau_levenshtein.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/damerau_levenshtein.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/map.hpp" #include "duckdb/common/vector.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/format_bytes.cpp b/src/duckdb/extension/core_functions/scalar/string/format_bytes.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/string/format_bytes.cpp rename to src/duckdb/extension/core_functions/scalar/string/format_bytes.cpp index 7a511799..46db22f2 100644 --- a/src/duckdb/src/core_functions/scalar/string/format_bytes.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/format_bytes.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/common/string_util.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/hamming.cpp b/src/duckdb/extension/core_functions/scalar/string/hamming.cpp similarity index 95% rename from src/duckdb/src/core_functions/scalar/string/hamming.cpp rename to src/duckdb/extension/core_functions/scalar/string/hamming.cpp index 892430da..b32a8019 100644 --- a/src/duckdb/src/core_functions/scalar/string/hamming.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/hamming.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include diff --git a/src/duckdb/src/core_functions/scalar/string/hex.cpp b/src/duckdb/extension/core_functions/scalar/string/hex.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/string/hex.cpp rename to src/duckdb/extension/core_functions/scalar/string/hex.cpp index 6f982f26..3783933c 100644 --- a/src/duckdb/src/core_functions/scalar/string/hex.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/hex.cpp @@ -6,7 +6,7 @@ #include "duckdb/common/vector_operations/unary_executor.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/string/instr.cpp b/src/duckdb/extension/core_functions/scalar/string/instr.cpp similarity index 89% rename from src/duckdb/src/core_functions/scalar/string/instr.cpp rename to src/duckdb/extension/core_functions/scalar/string/instr.cpp index 66608db6..77539e7c 100644 --- a/src/duckdb/src/core_functions/scalar/string/instr.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/instr.cpp @@ -1,9 +1,9 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "utf8proc.hpp" namespace duckdb { @@ -13,7 +13,7 @@ struct InstrOperator { static inline TR Operation(TA haystack, TB needle) { int64_t string_position = 0; - auto location = ContainsFun::Find(haystack, needle); + auto location = FindStrInStr(haystack, needle); if (location != DConstants::INVALID_INDEX) { auto len = (utf8proc_ssize_t)location; auto str = reinterpret_cast(haystack.GetData()); @@ -32,7 +32,7 @@ struct InstrOperator { struct InstrAsciiOperator { template static inline TR Operation(TA haystack, TB needle) { - auto location = ContainsFun::Find(haystack, needle); + auto location = FindStrInStr(haystack, needle); return UnsafeNumericCast(location == DConstants::INVALID_INDEX ? 0U : location + 1U); } }; diff --git a/src/duckdb/src/core_functions/scalar/string/jaccard.cpp b/src/duckdb/extension/core_functions/scalar/string/jaccard.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/string/jaccard.cpp rename to src/duckdb/extension/core_functions/scalar/string/jaccard.cpp index e3f081b6..eae31dc9 100644 --- a/src/duckdb/src/core_functions/scalar/string/jaccard.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/jaccard.cpp @@ -1,6 +1,6 @@ #include "duckdb/common/map.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include #include diff --git a/src/duckdb/extension/core_functions/scalar/string/jaro_winkler.cpp b/src/duckdb/extension/core_functions/scalar/string/jaro_winkler.cpp new file mode 100644 index 00000000..13db07c7 --- /dev/null +++ b/src/duckdb/extension/core_functions/scalar/string/jaro_winkler.cpp @@ -0,0 +1,112 @@ +#include "jaro_winkler.hpp" + +#include "core_functions/scalar/string_functions.hpp" + +namespace duckdb { + +static inline double JaroScalarFunction(const string_t &s1, const string_t &s2, const double_t &score_cutoff = 0.0) { + auto s1_begin = s1.GetData(); + auto s2_begin = s2.GetData(); + return duckdb_jaro_winkler::jaro_similarity(s1_begin, s1_begin + s1.GetSize(), s2_begin, s2_begin + s2.GetSize(), + score_cutoff); +} + +static inline double JaroWinklerScalarFunction(const string_t &s1, const string_t &s2, + const double_t &score_cutoff = 0.0) { + auto s1_begin = s1.GetData(); + auto s2_begin = s2.GetData(); + return duckdb_jaro_winkler::jaro_winkler_similarity(s1_begin, s1_begin + s1.GetSize(), s2_begin, + s2_begin + s2.GetSize(), 0.1, score_cutoff); +} + +template +static void CachedFunction(Vector &constant, Vector &other, Vector &result, DataChunk &args) { + auto val = constant.GetValue(0); + idx_t count = args.size(); + if (val.IsNull()) { + auto &result_validity = FlatVector::Validity(result); + result_validity.SetAllInvalid(count); + return; + } + + auto str_val = StringValue::Get(val); + auto cached = CACHED_SIMILARITY(str_val); + + D_ASSERT(args.ColumnCount() == 2 || args.ColumnCount() == 3); + if (args.ColumnCount() == 2) { + UnaryExecutor::Execute(other, result, count, [&](const string_t &other_str) { + auto other_str_begin = other_str.GetData(); + return cached.similarity(other_str_begin, other_str_begin + other_str.GetSize()); + }); + } else { + auto score_cutoff = args.data[2]; + BinaryExecutor::Execute( + other, score_cutoff, result, count, [&](const string_t &other_str, const double_t score_cutoff) { + auto other_str_begin = other_str.GetData(); + return cached.similarity(other_str_begin, other_str_begin + other_str.GetSize(), score_cutoff); + }); + } +} + +template +static void TemplatedJaroWinklerFunction(DataChunk &args, Vector &result, SIMILARITY_FUNCTION fun) { + bool arg0_constant = args.data[0].GetVectorType() == VectorType::CONSTANT_VECTOR; + bool arg1_constant = args.data[1].GetVectorType() == VectorType::CONSTANT_VECTOR; + if (!(arg0_constant ^ arg1_constant)) { + // We can't optimize by caching one of the two strings + D_ASSERT(args.ColumnCount() == 2 || args.ColumnCount() == 3); + if (args.ColumnCount() == 2) { + BinaryExecutor::Execute( + args.data[0], args.data[1], result, args.size(), + [&](const string_t &s1, const string_t &s2) { return fun(s1, s2, 0.0); }); + return; + } else { + TernaryExecutor::Execute(args.data[0], args.data[1], args.data[2], + result, args.size(), fun); + return; + } + } + + if (arg0_constant) { + CachedFunction(args.data[0], args.data[1], result, args); + } else { + CachedFunction(args.data[1], args.data[0], result, args); + } +} + +static void JaroFunction(DataChunk &args, ExpressionState &state, Vector &result) { + TemplatedJaroWinklerFunction>(args, result, JaroScalarFunction); +} + +static void JaroWinklerFunction(DataChunk &args, ExpressionState &state, Vector &result) { + TemplatedJaroWinklerFunction>(args, result, + JaroWinklerScalarFunction); +} + +ScalarFunctionSet JaroSimilarityFun::GetFunctions() { + ScalarFunctionSet jaro; + + const auto list_type = LogicalType::LIST(LogicalType::VARCHAR); + auto fun = ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE, JaroFunction); + jaro.AddFunction(fun); + + fun = ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::DOUBLE}, LogicalType::DOUBLE, + JaroFunction); + jaro.AddFunction(fun); + return jaro; +} + +ScalarFunctionSet JaroWinklerSimilarityFun::GetFunctions() { + ScalarFunctionSet jaroWinkler; + + const auto list_type = LogicalType::LIST(LogicalType::VARCHAR); + auto fun = ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE, JaroWinklerFunction); + jaroWinkler.AddFunction(fun); + + fun = ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::DOUBLE}, LogicalType::DOUBLE, + JaroWinklerFunction); + jaroWinkler.AddFunction(fun); + return jaroWinkler; +} + +} // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/string/left_right.cpp b/src/duckdb/extension/core_functions/scalar/string/left_right.cpp similarity index 89% rename from src/duckdb/src/core_functions/scalar/string/left_right.cpp rename to src/duckdb/extension/core_functions/scalar/string/left_right.cpp index 886559b6..b13ff956 100644 --- a/src/duckdb/src/core_functions/scalar/string/left_right.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/left_right.cpp @@ -1,7 +1,7 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/limits.hpp" -#include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include #include @@ -11,22 +11,22 @@ namespace duckdb { struct LeftRightUnicode { template static inline TR Operation(TA input) { - return LengthFun::Length(input); + return Length(input); } static string_t Substring(Vector &result, string_t input, int64_t offset, int64_t length) { - return SubstringFun::SubstringUnicode(result, input, offset, length); + return SubstringUnicode(result, input, offset, length); } }; struct LeftRightGrapheme { template static inline TR Operation(TA input) { - return LengthFun::GraphemeCount(input); + return GraphemeCount(input); } static string_t Substring(Vector &result, string_t input, int64_t offset, int64_t length) { - return SubstringFun::SubstringGrapheme(result, input, offset, length); + return SubstringGrapheme(result, input, offset, length); } }; diff --git a/src/duckdb/src/core_functions/scalar/string/levenshtein.cpp b/src/duckdb/extension/core_functions/scalar/string/levenshtein.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/string/levenshtein.cpp rename to src/duckdb/extension/core_functions/scalar/string/levenshtein.cpp index 13731e38..24e28b89 100644 --- a/src/duckdb/src/core_functions/scalar/string/levenshtein.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/levenshtein.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/string_util.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/pad.cpp b/src/duckdb/extension/core_functions/scalar/string/pad.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/string/pad.cpp rename to src/duckdb/extension/core_functions/scalar/string/pad.cpp index 856544ea..0c6a3ad8 100644 --- a/src/duckdb/src/core_functions/scalar/string/pad.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/pad.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/algorithm.hpp" #include "duckdb/common/exception.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/parse_path.cpp b/src/duckdb/extension/core_functions/scalar/string/parse_path.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/string/parse_path.cpp rename to src/duckdb/extension/core_functions/scalar/string/parse_path.cpp index cc304d51..9ed926b4 100644 --- a/src/duckdb/src/core_functions/scalar/string/parse_path.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/parse_path.cpp @@ -1,5 +1,5 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" -#include "duckdb/function/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/common/local_file_system.hpp" #include @@ -56,11 +56,11 @@ static idx_t Find(const char *input_data, idx_t input_size, const string &sep_da if (sep_data.empty()) { return 0; } - auto pos = ContainsFun::Find(const_uchar_ptr_cast(input_data), input_size, const_uchar_ptr_cast(&sep_data[0]), 1); + auto pos = FindStrInStr(const_uchar_ptr_cast(input_data), input_size, const_uchar_ptr_cast(&sep_data[0]), 1); // both_slash option if (sep_data.size() > 1) { auto sec_pos = - ContainsFun::Find(const_uchar_ptr_cast(input_data), input_size, const_uchar_ptr_cast(&sep_data[1]), 1); + FindStrInStr(const_uchar_ptr_cast(input_data), input_size, const_uchar_ptr_cast(&sep_data[1]), 1); // choose the leftmost valid position if (sec_pos != DConstants::INVALID_INDEX && (sec_pos < pos || pos == DConstants::INVALID_INDEX)) { return sec_pos; diff --git a/src/duckdb/src/core_functions/scalar/string/printf.cpp b/src/duckdb/extension/core_functions/scalar/string/printf.cpp similarity index 99% rename from src/duckdb/src/core_functions/scalar/string/printf.cpp rename to src/duckdb/extension/core_functions/scalar/string/printf.cpp index 8b670b5a..2839fdf2 100644 --- a/src/duckdb/src/core_functions/scalar/string/printf.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/printf.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/limits.hpp" #include "fmt/format.h" diff --git a/src/duckdb/src/core_functions/scalar/string/repeat.cpp b/src/duckdb/extension/core_functions/scalar/string/repeat.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/string/repeat.cpp rename to src/duckdb/extension/core_functions/scalar/string/repeat.cpp index 31318290..a6117d70 100644 --- a/src/duckdb/src/core_functions/scalar/string/repeat.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/repeat.cpp @@ -1,5 +1,5 @@ #include "duckdb/common/vector_operations/binary_executor.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/operator/multiply.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/string/replace.cpp b/src/duckdb/extension/core_functions/scalar/string/replace.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/string/replace.cpp rename to src/duckdb/extension/core_functions/scalar/string/replace.cpp index a85d390f..4702292c 100644 --- a/src/duckdb/src/core_functions/scalar/string/replace.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/replace.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/reverse.cpp b/src/duckdb/extension/core_functions/scalar/string/reverse.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/string/reverse.cpp rename to src/duckdb/extension/core_functions/scalar/string/reverse.cpp index cef1441f..4ff65490 100644 --- a/src/duckdb/src/core_functions/scalar/string/reverse.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/reverse.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/starts_with.cpp b/src/duckdb/extension/core_functions/scalar/string/starts_with.cpp similarity index 76% rename from src/duckdb/src/core_functions/scalar/string/starts_with.cpp rename to src/duckdb/extension/core_functions/scalar/string/starts_with.cpp index c4661b91..7ef27729 100644 --- a/src/duckdb/src/core_functions/scalar/string/starts_with.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/starts_with.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" @@ -37,8 +37,10 @@ struct StartsWithOperator { }; ScalarFunction StartsWithOperatorFun::GetFunction() { - return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, - ScalarFunction::BinaryFunction); + ScalarFunction starts_with({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, + ScalarFunction::BinaryFunction); + starts_with.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return starts_with; } } // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/string/to_base.cpp b/src/duckdb/extension/core_functions/scalar/string/to_base.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/string/to_base.cpp rename to src/duckdb/extension/core_functions/scalar/string/to_base.cpp index 963f4f56..f85f54be 100644 --- a/src/duckdb/src/core_functions/scalar/string/to_base.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/to_base.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/translate.cpp b/src/duckdb/extension/core_functions/scalar/string/translate.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/string/translate.cpp rename to src/duckdb/extension/core_functions/scalar/string/translate.cpp index c01ec2a2..ca661cb3 100644 --- a/src/duckdb/src/core_functions/scalar/string/translate.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/translate.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/trim.cpp b/src/duckdb/extension/core_functions/scalar/string/trim.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/string/trim.cpp rename to src/duckdb/extension/core_functions/scalar/string/trim.cpp index d89ebbaf..5553d75e 100644 --- a/src/duckdb/src/core_functions/scalar/string/trim.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/trim.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/unicode.cpp b/src/duckdb/extension/core_functions/scalar/string/unicode.cpp similarity index 92% rename from src/duckdb/src/core_functions/scalar/string/unicode.cpp rename to src/duckdb/extension/core_functions/scalar/string/unicode.cpp index b62a129a..902c7c5e 100644 --- a/src/duckdb/src/core_functions/scalar/string/unicode.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/unicode.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" diff --git a/src/duckdb/src/core_functions/scalar/string/url_encode.cpp b/src/duckdb/extension/core_functions/scalar/string/url_encode.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/string/url_encode.cpp rename to src/duckdb/extension/core_functions/scalar/string/url_encode.cpp index 51d49079..17b9ad3c 100644 --- a/src/duckdb/src/core_functions/scalar/string/url_encode.cpp +++ b/src/duckdb/extension/core_functions/scalar/string/url_encode.cpp @@ -1,5 +1,5 @@ #include "duckdb/common/vector_operations/unary_executor.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "core_functions/scalar/string_functions.hpp" #include "duckdb/common/string_util.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/struct/struct_insert.cpp b/src/duckdb/extension/core_functions/scalar/struct/struct_insert.cpp similarity index 69% rename from src/duckdb/src/core_functions/scalar/struct/struct_insert.cpp rename to src/duckdb/extension/core_functions/scalar/struct/struct_insert.cpp index 6a44d12a..e69c5f81 100644 --- a/src/duckdb/src/core_functions/scalar/struct/struct_insert.cpp +++ b/src/duckdb/extension/core_functions/scalar/struct/struct_insert.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/struct_functions.hpp" +#include "core_functions/scalar/struct_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/expression/bound_expression.hpp" @@ -11,25 +11,23 @@ namespace duckdb { static void StructInsertFunction(DataChunk &args, ExpressionState &state, Vector &result) { auto &starting_vec = args.data[0]; - starting_vec.Verify(args.size()); auto &starting_child_entries = StructVector::GetEntries(starting_vec); auto &result_child_entries = StructVector::GetEntries(result); - // Assign the starting vector entries to the result vector - for (size_t i = 0; i < starting_child_entries.size(); i++) { + // Assign the original child entries to the STRUCT. + for (idx_t i = 0; i < starting_child_entries.size(); i++) { auto &starting_child = starting_child_entries[i]; result_child_entries[i]->Reference(*starting_child); } - // Assign the new entries to the result vector - for (size_t i = 1; i < args.ColumnCount(); i++) { + // Assign the new children to the result vector. + for (idx_t i = 1; i < args.ColumnCount(); i++) { result_child_entries[starting_child_entries.size() + i - 1]->Reference(args.data[i]); } result.Verify(args.size()); - if (args.AllConstant()) { result.SetVectorType(VectorType::CONSTANT_VECTOR); } @@ -37,69 +35,65 @@ static void StructInsertFunction(DataChunk &args, ExpressionState &state, Vector static unique_ptr StructInsertBind(ClientContext &context, ScalarFunction &bound_function, vector> &arguments) { - case_insensitive_set_t name_collision_set; - if (arguments.empty()) { throw InvalidInputException("Missing required arguments for struct_insert function."); } - if (LogicalTypeId::STRUCT != arguments[0]->return_type.id()) { throw InvalidInputException("The first argument to struct_insert must be a STRUCT"); } - if (arguments.size() < 2) { - throw InvalidInputException("Can't insert nothing into a struct"); + throw InvalidInputException("Can't insert nothing into a STRUCT"); } - child_list_t new_struct_children; - - auto &existing_struct_children = StructType::GetChildTypes(arguments[0]->return_type); + case_insensitive_set_t name_collision_set; + child_list_t new_children; + auto &existing_children = StructType::GetChildTypes(arguments[0]->return_type); - for (size_t i = 0; i < existing_struct_children.size(); i++) { - auto &child = existing_struct_children[i]; + for (idx_t i = 0; i < existing_children.size(); i++) { + auto &child = existing_children[i]; name_collision_set.insert(child.first); - new_struct_children.push_back(make_pair(child.first, child.second)); + new_children.push_back(make_pair(child.first, child.second)); } // Loop through the additional arguments (name/value pairs) for (idx_t i = 1; i < arguments.size(); i++) { auto &child = arguments[i]; - if (child->alias.empty() && bound_function.name == "struct_insert") { - throw BinderException("Need named argument for struct insert, e.g. STRUCT_PACK(a := b)"); + if (child->alias.empty()) { + throw BinderException("Need named argument for struct insert, e.g., a := b"); } if (name_collision_set.find(child->alias) != name_collision_set.end()) { throw BinderException("Duplicate struct entry name \"%s\"", child->alias); } name_collision_set.insert(child->alias); - new_struct_children.push_back(make_pair(child->alias, arguments[i]->return_type)); + new_children.push_back(make_pair(child->alias, arguments[i]->return_type)); } - // this is more for completeness reasons - bound_function.return_type = LogicalType::STRUCT(new_struct_children); + bound_function.return_type = LogicalType::STRUCT(new_children); return make_uniq(bound_function.return_type); } unique_ptr StructInsertStats(ClientContext &context, FunctionStatisticsInput &input) { auto &child_stats = input.child_stats; auto &expr = input.expr; - auto new_struct_stats = StructStats::CreateUnknown(expr.return_type); + auto new_stats = StructStats::CreateUnknown(expr.return_type); auto existing_count = StructType::GetChildCount(child_stats[0].GetType()); auto existing_stats = StructStats::GetChildStats(child_stats[0]); for (idx_t i = 0; i < existing_count; i++) { - StructStats::SetChildStats(new_struct_stats, i, existing_stats[i]); + StructStats::SetChildStats(new_stats, i, existing_stats[i]); } + auto new_count = StructType::GetChildCount(expr.return_type); auto offset = new_count - child_stats.size(); for (idx_t i = 1; i < child_stats.size(); i++) { - StructStats::SetChildStats(new_struct_stats, offset + i, child_stats[i]); + StructStats::SetChildStats(new_stats, offset + i, child_stats[i]); } - return new_struct_stats.ToUnique(); + return new_stats.ToUnique(); } ScalarFunction StructInsertFun::GetFunction() { - // the arguments and return types are actually set in the binder function ScalarFunction fun({}, LogicalTypeId::STRUCT, StructInsertFunction, StructInsertBind, nullptr, StructInsertStats); + fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING; fun.varargs = LogicalType::ANY; fun.serialize = VariableReturnBindData::Serialize; fun.deserialize = VariableReturnBindData::Deserialize; diff --git a/src/duckdb/src/core_functions/scalar/union/union_extract.cpp b/src/duckdb/extension/core_functions/scalar/union/union_extract.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/union/union_extract.cpp rename to src/duckdb/extension/core_functions/scalar/union/union_extract.cpp index 8478ad0f..2a537107 100644 --- a/src/duckdb/src/core_functions/scalar/union/union_extract.cpp +++ b/src/duckdb/extension/core_functions/scalar/union/union_extract.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/union_functions.hpp" +#include "core_functions/scalar/union_functions.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/union/union_tag.cpp b/src/duckdb/extension/core_functions/scalar/union/union_tag.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/union/union_tag.cpp rename to src/duckdb/extension/core_functions/scalar/union/union_tag.cpp index 431df0ad..173e36d6 100644 --- a/src/duckdb/src/core_functions/scalar/union/union_tag.cpp +++ b/src/duckdb/extension/core_functions/scalar/union/union_tag.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/union_functions.hpp" +#include "core_functions/scalar/union_functions.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" diff --git a/src/duckdb/src/core_functions/scalar/union/union_value.cpp b/src/duckdb/extension/core_functions/scalar/union/union_value.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/union/union_value.cpp rename to src/duckdb/extension/core_functions/scalar/union/union_value.cpp index 6ba7070a..106b86dc 100644 --- a/src/duckdb/src/core_functions/scalar/union/union_value.cpp +++ b/src/duckdb/extension/core_functions/scalar/union/union_value.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/union_functions.hpp" +#include "core_functions/scalar/union_functions.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/function/scalar/nested_functions.hpp" diff --git a/src/duckdb/extension/icu/icu-dateadd.cpp b/src/duckdb/extension/icu/icu-dateadd.cpp index 284e2561..c6e1ece2 100644 --- a/src/duckdb/extension/icu/icu-dateadd.cpp +++ b/src/duckdb/extension/icu/icu-dateadd.cpp @@ -37,7 +37,7 @@ static inline void CalendarAddHour(icu::Calendar *calendar, int64_t interval_hou while (interval_hour > 0) { calendar->add(UCAL_HOUR, interval_hour > NumericLimits::Maximum() ? NumericLimits::Maximum() - : interval_hour, + : static_cast(interval_hour), status); interval_hour -= NumericLimits::Maximum(); } @@ -45,7 +45,7 @@ static inline void CalendarAddHour(icu::Calendar *calendar, int64_t interval_hou while (interval_hour < 0) { calendar->add(UCAL_HOUR, interval_hour < NumericLimits::Minimum() ? NumericLimits::Minimum() - : interval_hour, + : static_cast(interval_hour), status); interval_hour -= NumericLimits::Minimum(); } @@ -85,13 +85,13 @@ timestamp_t ICUCalendarAdd::Operation(timestamp_t timestamp, interval_t interval // Break units apart to avoid overflow auto interval_h = interval.micros / Interval::MICROS_PER_MSEC; - const auto interval_ms = interval_h % Interval::MSECS_PER_SEC; + const auto interval_ms = static_cast(interval_h % Interval::MSECS_PER_SEC); interval_h /= Interval::MSECS_PER_SEC; - const auto interval_s = interval_h % Interval::SECS_PER_MINUTE; + const auto interval_s = static_cast(interval_h % Interval::SECS_PER_MINUTE); interval_h /= Interval::SECS_PER_MINUTE; - const auto interval_m = interval_h % Interval::MINS_PER_HOUR; + const auto interval_m = static_cast(interval_h % Interval::MINS_PER_HOUR); interval_h /= Interval::MINS_PER_HOUR; if (interval.months < 0 || interval.days < 0 || interval.micros < 0) { @@ -204,7 +204,9 @@ struct ICUDateAdd : public ICUDateFunc { auto &info = func_expr.bind_info->Cast(); CalendarPtr calendar(info.calendar->clone()); - auto end_date = Timestamp::GetCurrentTimestamp(); + // Subtract argument from current_date (at midnight) + const auto end_date = CurrentMidnight(calendar.get(), state); + UnaryExecutor::Execute(args.data[0], result, args.size(), [&](TA start_date) { return OP::template Operation(end_date, start_date, calendar.get()); }); @@ -247,7 +249,7 @@ struct ICUDateAdd : public ICUDateFunc { LogicalType::INTERVAL)); set.AddFunction(GetDateAddFunction(LogicalType::INTERVAL, LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } template @@ -269,7 +271,7 @@ struct ICUDateAdd : public ICUDateFunc { // temporal - temporal set.AddFunction(GetBinaryAgeFunction(LogicalType::TIMESTAMP_TZ, LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } static void AddDateAgeFunctions(const string &name, DatabaseInstance &db) { @@ -278,7 +280,7 @@ struct ICUDateAdd : public ICUDateFunc { set.AddFunction(GetBinaryAgeFunction(LogicalType::TIMESTAMP_TZ, LogicalType::TIMESTAMP_TZ)); set.AddFunction(GetUnaryAgeFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } }; diff --git a/src/duckdb/extension/icu/icu-datepart.cpp b/src/duckdb/extension/icu/icu-datepart.cpp index c8a090a2..2137afd4 100644 --- a/src/duckdb/extension/icu/icu-datepart.cpp +++ b/src/duckdb/extension/icu/icu-datepart.cpp @@ -587,7 +587,7 @@ struct ICUDatePart : public ICUDateFunc { const LogicalType &result_type = LogicalType::BIGINT) { ScalarFunctionSet set(name); set.AddFunction(GetUnaryPartCodeFunction(LogicalType::TIMESTAMP_TZ, result_type)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } template @@ -610,7 +610,7 @@ struct ICUDatePart : public ICUDateFunc { ScalarFunctionSet set(name); set.AddFunction(GetBinaryPartCodeFunction(LogicalType::TIMESTAMP_TZ)); set.AddFunction(GetStructFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } static duckdb::unique_ptr BindLastDate(ClientContext &context, ScalarFunction &bound_function, @@ -627,7 +627,7 @@ struct ICUDatePart : public ICUDateFunc { static void AddLastDayFunctions(const string &name, DatabaseInstance &db) { ScalarFunctionSet set(name); set.AddFunction(GetLastDayFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } static unique_ptr BindMonthName(ClientContext &context, ScalarFunction &bound_function, @@ -644,7 +644,7 @@ struct ICUDatePart : public ICUDateFunc { static void AddMonthNameFunctions(const string &name, DatabaseInstance &db) { ScalarFunctionSet set(name); set.AddFunction(GetMonthNameFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } static unique_ptr BindDayName(ClientContext &context, ScalarFunction &bound_function, @@ -661,7 +661,7 @@ struct ICUDatePart : public ICUDateFunc { static void AddDayNameFunctions(const string &name, DatabaseInstance &db) { ScalarFunctionSet set(name); set.AddFunction(GetDayNameFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } }; diff --git a/src/duckdb/extension/icu/icu-datesub.cpp b/src/duckdb/extension/icu/icu-datesub.cpp index c56ccebc..625f4fc3 100644 --- a/src/duckdb/extension/icu/icu-datesub.cpp +++ b/src/duckdb/extension/icu/icu-datesub.cpp @@ -142,7 +142,7 @@ struct ICUCalendarSub : public ICUDateFunc { static void AddFunctions(const string &name, DatabaseInstance &db) { ScalarFunctionSet set(name); set.AddFunction(GetFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } }; @@ -278,7 +278,7 @@ struct ICUCalendarDiff : public ICUDateFunc { static void AddFunctions(const string &name, DatabaseInstance &db) { ScalarFunctionSet set(name); set.AddFunction(GetFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } }; diff --git a/src/duckdb/extension/icu/icu-datetrunc.cpp b/src/duckdb/extension/icu/icu-datetrunc.cpp index 625cffa2..63e098af 100644 --- a/src/duckdb/extension/icu/icu-datetrunc.cpp +++ b/src/duckdb/extension/icu/icu-datetrunc.cpp @@ -177,7 +177,7 @@ struct ICUDateTrunc : public ICUDateFunc { static void AddBinaryTimestampFunction(const string &name, DatabaseInstance &db) { ScalarFunctionSet set(name); set.AddFunction(GetDateTruncFunction(LogicalType::TIMESTAMP_TZ)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } }; @@ -224,6 +224,13 @@ ICUDateFunc::part_trunc_t ICUDateFunc::TruncationFactory(DatePartSpecifier type) } } +timestamp_t ICUDateFunc::CurrentMidnight(icu::Calendar *calendar, ExpressionState &state) { + const auto current_timestamp = MetaTransaction::Get(state.GetContext()).start_timestamp; + auto current_micros = SetTime(calendar, current_timestamp); + ICUDateTrunc::TruncDay(calendar, current_micros); + return GetTime(calendar); +} + void RegisterICUDateTruncFunctions(DatabaseInstance &db) { ICUDateTrunc::AddBinaryTimestampFunction("date_trunc", db); ICUDateTrunc::AddBinaryTimestampFunction("datetrunc", db); diff --git a/src/duckdb/extension/icu/icu-list-range.cpp b/src/duckdb/extension/icu/icu-list-range.cpp index bb7a17f3..ea50d7be 100644 --- a/src/duckdb/extension/icu/icu-list-range.cpp +++ b/src/duckdb/extension/icu/icu-list-range.cpp @@ -187,14 +187,14 @@ struct ICUListRange : public ICUDateFunc { range.AddFunction(ScalarFunction({LogicalType::TIMESTAMP_TZ, LogicalType::TIMESTAMP_TZ, LogicalType::INTERVAL}, LogicalType::LIST(LogicalType::TIMESTAMP_TZ), ICUListRangeFunction, Bind)); - ExtensionUtil::AddFunctionOverload(db, range); + ExtensionUtil::RegisterFunction(db, range); // generate_series: similar to range, but inclusive instead of exclusive bounds on the RHS ScalarFunctionSet generate_series("generate_series"); generate_series.AddFunction( ScalarFunction({LogicalType::TIMESTAMP_TZ, LogicalType::TIMESTAMP_TZ, LogicalType::INTERVAL}, LogicalType::LIST(LogicalType::TIMESTAMP_TZ), ICUListRangeFunction, Bind)); - ExtensionUtil::AddFunctionOverload(db, generate_series); + ExtensionUtil::RegisterFunction(db, generate_series); } }; diff --git a/src/duckdb/extension/icu/icu-strptime.cpp b/src/duckdb/extension/icu/icu-strptime.cpp index c7a5351f..35ac0593 100644 --- a/src/duckdb/extension/icu/icu-strptime.cpp +++ b/src/duckdb/extension/icu/icu-strptime.cpp @@ -434,7 +434,7 @@ struct ICUStrftime : public ICUDateFunc { ScalarFunctionSet set(name); set.AddFunction(ScalarFunction({LogicalType::TIMESTAMP_TZ, LogicalType::VARCHAR}, LogicalType::VARCHAR, ICUStrftimeFunction, Bind)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } static string_t CastOperation(icu::Calendar *calendar, timestamp_t input, Vector &result) { diff --git a/src/duckdb/extension/icu/icu-table-range.cpp b/src/duckdb/extension/icu/icu-table-range.cpp index f7efd856..51dd5de7 100644 --- a/src/duckdb/extension/icu/icu-table-range.cpp +++ b/src/duckdb/extension/icu/icu-table-range.cpp @@ -195,7 +195,7 @@ struct ICUTableRange { nullptr, Bind, nullptr, RangeDateTimeLocalInit); range_function.in_out_function = ICUTableRangeFunction; range.AddFunction(range_function); - ExtensionUtil::AddFunctionOverload(db, range); + ExtensionUtil::RegisterFunction(db, range); // generate_series: similar to range, but inclusive instead of exclusive bounds on the RHS TableFunctionSet generate_series("generate_series"); @@ -204,7 +204,7 @@ struct ICUTableRange { RangeDateTimeLocalInit); generate_series_function.in_out_function = ICUTableRangeFunction; generate_series.AddFunction(generate_series_function); - ExtensionUtil::AddFunctionOverload(db, generate_series); + ExtensionUtil::RegisterFunction(db, generate_series); } }; diff --git a/src/duckdb/extension/icu/icu-timebucket.cpp b/src/duckdb/extension/icu/icu-timebucket.cpp index d7be40dc..11b4c7df 100644 --- a/src/duckdb/extension/icu/icu-timebucket.cpp +++ b/src/duckdb/extension/icu/icu-timebucket.cpp @@ -631,7 +631,7 @@ struct ICUTimeBucket : public ICUDateFunc { LogicalType::TIMESTAMP_TZ, ICUTimeBucketOriginFunction, Bind)); set.AddFunction(ScalarFunction({LogicalType::INTERVAL, LogicalType::TIMESTAMP_TZ, LogicalType::VARCHAR}, LogicalType::TIMESTAMP_TZ, ICUTimeBucketTimeZoneFunction, Bind)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } }; diff --git a/src/duckdb/extension/icu/icu-timezone.cpp b/src/duckdb/extension/icu/icu-timezone.cpp index 0a91ef75..0aa8828c 100644 --- a/src/duckdb/extension/icu/icu-timezone.cpp +++ b/src/duckdb/extension/icu/icu-timezone.cpp @@ -339,6 +339,68 @@ struct ICUToTimeTZ : public ICUDateFunc { time = Interval::Add(time, {0, 0, offset * Interval::MICROS_PER_SEC}, date); return dtime_tz_t(time, offset); } + + static inline bool ToTimeTZ(icu::Calendar *calendar, timestamp_t instant, dtime_tz_t &result) { + if (!ICUIsFinite(instant)) { + return false; + } + + // Time in current TZ + auto micros = int32_t(SetTime(calendar, instant)); + const auto hour = ExtractField(calendar, UCAL_HOUR_OF_DAY); + const auto minute = ExtractField(calendar, UCAL_MINUTE); + const auto second = ExtractField(calendar, UCAL_SECOND); + const auto millis = ExtractField(calendar, UCAL_MILLISECOND); + micros += millis * int32_t(Interval::MICROS_PER_MSEC); + if (!Time::IsValidTime(hour, minute, second, micros)) { + return false; + } + const auto time = Time::FromTime(hour, minute, second, micros); + + // Offset in current TZ + auto offset = ExtractField(calendar, UCAL_ZONE_OFFSET); + offset += ExtractField(calendar, UCAL_DST_OFFSET); + offset /= Interval::MSECS_PER_SEC; + + result = dtime_tz_t(time, offset); + return true; + } + + static bool CastToTimeTZ(Vector &source, Vector &result, idx_t count, CastParameters ¶meters) { + auto &cast_data = parameters.cast_data->Cast(); + auto &info = cast_data.info->Cast(); + CalendarPtr calendar(info.calendar->clone()); + + UnaryExecutor::ExecuteWithNulls(source, result, count, + [&](timestamp_t input, ValidityMask &mask, idx_t idx) { + dtime_tz_t output; + if (ToTimeTZ(calendar.get(), input, output)) { + return output; + } else { + mask.SetInvalid(idx); + return dtime_tz_t(); + } + }); + return true; + } + + static BoundCastInfo BindCastToTimeTZ(BindCastInput &input, const LogicalType &source, const LogicalType &target) { + if (!input.context) { + throw InternalException("Missing context for TIMESTAMPTZ to TIMETZ cast."); + } + + auto cast_data = make_uniq(make_uniq(*input.context)); + + return BoundCastInfo(CastToTimeTZ, std::move(cast_data)); + } + + static void AddCasts(DatabaseInstance &db) { + auto &config = DBConfig::GetConfig(db); + auto &casts = config.GetCastFunctions(); + + const auto implicit_cost = CastRules::ImplicitCast(LogicalType::TIMESTAMP_TZ, LogicalType::TIME_TZ); + casts.RegisterCastFunction(LogicalType::TIMESTAMP_TZ, LogicalType::TIME_TZ, BindCastToTimeTZ, implicit_cost); + } }; struct ICUTimeZoneFunc : public ICUDateFunc { @@ -382,7 +444,7 @@ struct ICUTimeZoneFunc : public ICUDateFunc { Execute, Bind)); set.AddFunction(ScalarFunction({LogicalType::VARCHAR, LogicalType::TIME_TZ}, LogicalType::TIME_TZ, Execute, Bind)); - ExtensionUtil::AddFunctionOverload(db, set); + ExtensionUtil::RegisterFunction(db, set); } }; @@ -403,6 +465,7 @@ void RegisterICUTimeZoneFunctions(DatabaseInstance &db) { // Casts ICUFromNaiveTimestamp::AddCasts(db); ICUToNaiveTimestamp::AddCasts(db); + ICUToTimeTZ::AddCasts(db); } } // namespace duckdb diff --git a/src/duckdb/extension/icu/icu_extension.cpp b/src/duckdb/extension/icu/icu_extension.cpp index e5c03880..216eef74 100644 --- a/src/duckdb/extension/icu/icu_extension.cpp +++ b/src/duckdb/extension/icu/icu_extension.cpp @@ -154,7 +154,6 @@ static void ICUCollateFunction(DataChunk &args, ExpressionState &state, Vector & str_data[i * 2 + 1] = HEX_TABLE[byte % 16]; } str_result.Finalize(); - // printf("%s: %s\n", input.GetString().c_str(), str_result.GetString().c_str()); return str_result; }); } @@ -215,9 +214,36 @@ static void SetICUTimeZone(ClientContext &context, SetScope scope, Value ¶me icu::StringPiece utf8(str); const auto uid = icu::UnicodeString::fromUTF8(utf8); duckdb::unique_ptr tz(icu::TimeZone::createTimeZone(uid)); - if (*tz == icu::TimeZone::getUnknown()) { - throw NotImplementedException("Unknown TimeZone '%s'", str); + if (*tz != icu::TimeZone::getUnknown()) { + return; } + + // Try to be friendlier + // Go through all the zone names and look for a case insensitive match + // If we don't find one, make a suggestion + UErrorCode status = U_ZERO_ERROR; + duckdb::unique_ptr calendar(icu::Calendar::createInstance(status)); + duckdb::unique_ptr tzs(icu::TimeZone::createEnumeration()); + vector candidates; + for (;;) { + auto long_id = tzs->snext(status); + if (U_FAILURE(status) || !long_id) { + break; + } + std::string utf8; + long_id->toUTF8String(utf8); + if (StringUtil::CIEquals(utf8, str)) { + parameter = Value(utf8); + return; + } + + candidates.emplace_back(utf8); + } + + string candidate_str = + StringUtil::CandidatesMessage(StringUtil::TopNJaroWinkler(candidates, str), "Candidate time zones"); + + throw NotImplementedException("Unknown TimeZone '%s'!\n%s", str, candidate_str); } struct ICUCalendarData : public GlobalTableFunctionState { @@ -274,9 +300,38 @@ static void SetICUCalendar(ClientContext &context, SetScope scope, Value ¶me UErrorCode status = U_ZERO_ERROR; duckdb::unique_ptr cal(icu::Calendar::createInstance(locale, status)); - if (U_FAILURE(status) || name != cal->getType()) { - throw NotImplementedException("Unknown Calendar setting"); + if (!U_FAILURE(status) && name == cal->getType()) { + return; + } + + // Try to be friendlier + // Go through all the calendar names and look for a case insensitive match + // If we don't find one, make a suggestion + status = U_ZERO_ERROR; + duckdb::unique_ptr calendars; + calendars.reset(icu::Calendar::getKeywordValuesForLocale("calendar", icu::Locale::getDefault(), false, status)); + + vector candidates; + for (;;) { + auto calendar = calendars->snext(status); + if (U_FAILURE(status) || !calendar) { + break; + } + + std::string utf8; + calendar->toUTF8String(utf8); + if (StringUtil::CIEquals(utf8, name)) { + parameter = Value(utf8); + return; + } + + candidates.emplace_back(utf8); } + + string candidate_str = + StringUtil::CandidatesMessage(StringUtil::TopNJaroWinkler(candidates, name), "Candidate calendars"); + + throw NotImplementedException("Unknown Calendar '%s'!\n%s", name, candidate_str); } static void LoadInternal(DuckDB &ddb) { diff --git a/src/duckdb/extension/icu/include/icu-datefunc.hpp b/src/duckdb/extension/icu/include/icu-datefunc.hpp index 1ae2a5f1..5654b260 100644 --- a/src/duckdb/extension/icu/include/icu-datefunc.hpp +++ b/src/duckdb/extension/icu/include/icu-datefunc.hpp @@ -77,6 +77,7 @@ struct ICUDateFunc { //! Truncates the calendar time to the given part precision typedef void (*part_trunc_t)(icu::Calendar *calendar, uint64_t µs); static part_trunc_t TruncationFactory(DatePartSpecifier part); + static timestamp_t CurrentMidnight(icu::Calendar *calendar, ExpressionState &state); //! Subtracts the two times at the given part precision typedef int64_t (*part_sub_t)(icu::Calendar *calendar, timestamp_t start_date, timestamp_t end_date); diff --git a/src/duckdb/extension/icu/third_party/icu/common/putil.cpp b/src/duckdb/extension/icu/third_party/icu/common/putil.cpp index 56d25c3b..c7981149 100644 --- a/src/duckdb/extension/icu/third_party/icu/common/putil.cpp +++ b/src/duckdb/extension/icu/third_party/icu/common/putil.cpp @@ -46,11 +46,6 @@ // First, the platform type. Need this for U_PLATFORM. #include "unicode/platform.h" -#if U_PLATFORM == U_PF_MINGW && defined __STRICT_ANSI__ -/* tzset isn't defined in strict ANSI on MinGW. */ -#undef __STRICT_ANSI__ -#endif - /* * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement. */ diff --git a/src/duckdb/extension/icu/third_party/icu/common/rbbiscan.cpp b/src/duckdb/extension/icu/third_party/icu/common/rbbiscan.cpp index c9e9b2cd..143bb591 100644 --- a/src/duckdb/extension/icu/third_party/icu/common/rbbiscan.cpp +++ b/src/duckdb/extension/icu/third_party/icu/common/rbbiscan.cpp @@ -175,7 +175,7 @@ // // Node Stack. // // Normally has one entry, which is the entire parse tree for the rules. -// // If errors occured, there may be additional subtrees left on the stack. +// // If errors occurred, there may be additional subtrees left on the stack. // while (fNodeStackPtr > 0) { // delete fNodeStack[fNodeStackPtr]; // fNodeStackPtr--; diff --git a/src/duckdb/extension/icu/third_party/icu/common/rbbitblb.cpp b/src/duckdb/extension/icu/third_party/icu/common/rbbitblb.cpp index e5217f23..d3f76262 100644 --- a/src/duckdb/extension/icu/third_party/icu/common/rbbitblb.cpp +++ b/src/duckdb/extension/icu/third_party/icu/common/rbbitblb.cpp @@ -698,7 +698,7 @@ // } // } // return; -// // delete local pointers only if error occured. +// // delete local pointers only if error occurred. // ExitBuildSTdeleteall: // delete initialState; // delete failState; diff --git a/src/duckdb/extension/icu/third_party/icu/common/ucurr.cpp b/src/duckdb/extension/icu/third_party/icu/common/ucurr.cpp index 1d7b6675..0ff3507f 100644 --- a/src/duckdb/extension/icu/third_party/icu/common/ucurr.cpp +++ b/src/duckdb/extension/icu/third_party/icu/common/ucurr.cpp @@ -1515,7 +1515,7 @@ uprv_parseCurrency(const char* locale, int32_t max = 0; int32_t matchIndex = -1; - // case in-sensitive comparision against currency names + // case in-sensitive comparison against currency names searchCurrencyName(currencyNames, total_currency_name_count, upperText, textLen, partialMatchLen, &max, &matchIndex); diff --git a/src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp b/src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp index b03284ed..61b2f433 100644 --- a/src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp +++ b/src/duckdb/extension/icu/third_party/icu/common/uresbund.cpp @@ -3019,7 +3019,7 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status) U_INTERNAL UBool U_EXPORT2 ures_equal(const UResourceBundle* res1, const UResourceBundle* res2){ if(res1==NULL || res2==NULL){ - return res1==res2; /* pointer comparision */ + return res1==res2; /* pointer comparison */ } if(res1->fKey==NULL|| res2->fKey==NULL){ return (res1->fKey==res2->fKey); diff --git a/src/duckdb/extension/icu/third_party/icu/common/uresimp.h b/src/duckdb/extension/icu/third_party/icu/common/uresimp.h index f453ddc0..381a0dbe 100644 --- a/src/duckdb/extension/icu/third_party/icu/common/uresimp.h +++ b/src/duckdb/extension/icu/third_party/icu/common/uresimp.h @@ -172,10 +172,10 @@ U_CFUNC UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle * Returns a resource that can be located using the pathToResource argument. One needs optional package, locale * and path inside the locale, for example: "/myData/en/zoneStrings/3". Keys and indexes are supported. Keys * need to reference data in named structures, while indexes can reference both named and anonymous resources. - * Features a fill-in parameter. - * + * Features a fill-in parameter. + * * Note, this function does NOT have a syntax for specifying items within a tree. May want to consider a - * syntax that delineates between package/tree and resource. + * syntax that delineates between package/tree and resource. * * @param pathToResource a path that will lead to the requested resource * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller. @@ -184,16 +184,16 @@ U_CFUNC UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it */ U_CAPI UResourceBundle* U_EXPORT2 -ures_findResource(const char* pathToResource, - UResourceBundle *fillIn, UErrorCode *status); +ures_findResource(const char* pathToResource, + UResourceBundle *fillIn, UErrorCode *status); /** - * Returns a sub resource that can be located using the pathToResource argument. One needs a path inside + * Returns a sub resource that can be located using the pathToResource argument. One needs a path inside * the supplied resource, for example, if you have "en_US" resource bundle opened, you might ask for * "zoneStrings/3". Keys and indexes are supported. Keys - * need to reference data in named structures, while indexes can reference both + * need to reference data in named structures, while indexes can reference both * named and anonymous resources. - * Features a fill-in parameter. + * Features a fill-in parameter. * * @param resourceBundle a resource * @param pathToResource a path that will lead to the requested resource @@ -203,8 +203,8 @@ ures_findResource(const char* pathToResource, * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it */ U_CAPI UResourceBundle* U_EXPORT2 -ures_findSubResource(const UResourceBundle *resB, - char* pathToResource, +ures_findSubResource(const UResourceBundle *resB, + char* pathToResource, UResourceBundle *fillIn, UErrorCode *status); /** @@ -215,23 +215,23 @@ ures_findSubResource(const UResourceBundle *resB, * @param resName top level resource. Example: "collations" * @param keyword locale keyword. Example: "collation" * @param locid The requested locale - * @param isAvailable If non-null, pointer to fillin parameter that indicates whether the - * requested locale was available. The locale is defined as 'available' if it physically + * @param isAvailable If non-null, pointer to fillin parameter that indicates whether the + * requested locale was available. The locale is defined as 'available' if it physically * exists within the specified tree. * @param omitDefault if TRUE, omit keyword and value if default. 'de_DE\@collation=standard' -> 'de_DE' * @param status error code - * @return the actual buffer size needed for the full locale. If it's greater + * @return the actual buffer size needed for the full locale. If it's greater * than resultCapacity, the returned full name will be truncated and an error code will be returned. */ U_CAPI int32_t U_EXPORT2 -ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, +ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, const char *path, const char *resName, const char *keyword, const char *locid, UBool *isAvailable, UBool omitDefault, UErrorCode *status); /** * Given a tree path and keyword, return a string enumeration of all possible values for that keyword. * @param path path to the tree, or NULL for ICU data - * @param keyword a particular keyword to consider, must match a top level resource name + * @param keyword a particular keyword to consider, must match a top level resource name * within the tree. * @param status error code */ @@ -251,14 +251,14 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status) * Alternatively, you can supply a struct to be filled by this function. * @param status: fills in the outgoing error code * could be U_MISSING_RESOURCE_ERROR if the key is not found - * could be a non-failing error + * could be a non-failing error * e.g.: U_USING_FALLBACK_WARNING,U_USING_DEFAULT_WARNING * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it */ -U_CAPI UResourceBundle* U_EXPORT2 -ures_getByKeyWithFallback(const UResourceBundle *resB, - const char* inKey, - UResourceBundle *fillIn, +U_CAPI UResourceBundle* U_EXPORT2 +ures_getByKeyWithFallback(const UResourceBundle *resB, + const char* inKey, + UResourceBundle *fillIn, UErrorCode *status); @@ -272,13 +272,13 @@ ures_getByKeyWithFallback(const UResourceBundle *resB, * @param inKey a key associated with the requested resource * @param status: fills in the outgoing error code * could be U_MISSING_RESOURCE_ERROR if the key is not found - * could be a non-failing error + * could be a non-failing error * e.g.: U_USING_FALLBACK_WARNING,U_USING_DEFAULT_WARNING * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it */ -U_CAPI const UChar* U_EXPORT2 -ures_getStringByKeyWithFallback(const UResourceBundle *resB, - const char* inKey, +U_CAPI const UChar* U_EXPORT2 +ures_getStringByKeyWithFallback(const UResourceBundle *resB, + const char* inKey, int32_t* len, UErrorCode *status); @@ -318,15 +318,15 @@ ures_getVersionByKey(const UResourceBundle *resB, * The caller does not own this string. * @see ures_getVersion */ -U_CAPI const char* U_EXPORT2 +U_CAPI const char* U_EXPORT2 ures_getVersionNumberInternal(const UResourceBundle *resourceBundle); /** * Return the name of the Locale associated with this ResourceBundle. This API allows - * you to query for the real locale of the resource. For example, if you requested - * "en_US_CALIFORNIA" and only "en_US" bundle exists, "en_US" will be returned. + * you to query for the real locale of the resource. For example, if you requested + * "en_US_CALIFORNIA" and only "en_US" bundle exists, "en_US" will be returned. * For subresources, the locale where this resource comes from will be returned. - * If fallback has occured, getLocale will reflect this. + * If fallback has occurred, getLocale will reflect this. * * This internal version avoids deprecated-warnings in ICU code. * @@ -334,13 +334,13 @@ ures_getVersionNumberInternal(const UResourceBundle *resourceBundle); * @param status just for catching illegal arguments * @return A Locale name */ -U_CAPI const char* U_EXPORT2 -ures_getLocaleInternal(const UResourceBundle* resourceBundle, +U_CAPI const char* U_EXPORT2 +ures_getLocaleInternal(const UResourceBundle* resourceBundle, UErrorCode* status); /** * Same as ures_openDirect() but uses the fill-in parameter instead of allocating a new bundle. - * + * * @param r The existing UResourceBundle to fill in. If NULL then status will be * set to U_ILLEGAL_ARGUMENT_ERROR. * @param packageName The packageName and locale together point to an ICU udata object, diff --git a/src/duckdb/extension/icu/third_party/icu/common/ustring.cpp b/src/duckdb/extension/icu/third_party/icu/common/ustring.cpp index f741740e..9df29918 100644 --- a/src/duckdb/extension/icu/third_party/icu/common/ustring.cpp +++ b/src/duckdb/extension/icu/third_party/icu/common/ustring.cpp @@ -755,7 +755,7 @@ uprv_strCompare(const UChar *s1, int32_t length1, length2=u_strlen(s2); } - /* limit1=start1+min(lenght1, length2) */ + /* limit1=start1+min(length1, length2) */ if(length1 @@ -69,9 +69,9 @@ class UVector32; *
 \htmlonly       "æb"-> the first key is key('a'), the second key is key('e'), and
 *        the third key is key('b'). \endhtmlonly 
* The key of a character, is an integer composed of primary order(short), -* secondary order(char), and tertiary order(char). Java strictly defines the +* secondary order(char), and tertiary order(char). Java strictly defines the * size and signedness of its primitive data types. Therefore, the static -* functions primaryOrder(), secondaryOrder(), and tertiaryOrder() return +* functions primaryOrder(), secondaryOrder(), and tertiaryOrder() return * int32_t to ensure the correctness of the key value. *

Example of the iterator usage: (without error checking) *

@@ -97,8 +97,8 @@ class UVector32;
 * the comparison level of the collator. The method previous() returns the
 * collation order of the previous character based on the comparison level of
 * the collator. The Collation Element Iterator moves only in one direction
-* between calls to reset(), setOffset(), or setText(). That is, next() 
-* and previous() can not be inter-used. Whenever previous() is to be called after 
+* between calls to reset(), setOffset(), or setText(). That is, next()
+* and previous() can not be inter-used. Whenever previous() is to be called after
 * next() or vice versa, reset(), setOffset() or setText() has to be called first
 * to reset the status, shifting pointers to either the end or the start of
 * the string (reset() or setText()), or the specified position (setOffset()).
@@ -109,9 +109,9 @@ class UVector32;
 * The result of a forward iterate (next()) and reversed result of the backward
 * iterate (previous()) on the same string are equivalent, if collation orders
 * with the value 0 are ignored.
-* Character based on the comparison level of the collator.  A collation order 
-* consists of primary order, secondary order and tertiary order.  The data 
-* type of the collation order is int32_t. 
+* Character based on the comparison level of the collator.  A collation order
+* consists of primary order, secondary order and tertiary order.  The data
+* type of the collation order is int32_t.
 *
 * Note, CollationElementIterator should not be subclassed.
 * @see     Collator
@@ -119,13 +119,13 @@ class UVector32;
 * @version 1.8 Jan 16 2001
 */
 class U_I18N_API CollationElementIterator U_FINAL : public UObject {
-public: 
+public:
 
     // CollationElementIterator public data member ------------------------------
 
     enum {
         /**
-         * NULLORDER indicates that an error has occured while processing
+         * NULLORDER indicates that an error has occurred while processing
          * @stable ICU 2.0
          */
         NULLORDER = (int32_t)0xffffffff
@@ -141,7 +141,7 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject {
     */
     CollationElementIterator(const CollationElementIterator& other);
 
-    /** 
+    /**
     * Destructor
     * @stable ICU 2.0
     */
@@ -176,8 +176,8 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject {
     /**
     * Gets the ordering priority of the next character in the string.
     * @param status the error code status.
-    * @return the next character's ordering. otherwise returns NULLORDER if an 
-    *         error has occured or if the end of string has been reached
+    * @return the next character's ordering. otherwise returns NULLORDER if an
+    *         error has occurred or if the end of string has been reached
     * @stable ICU 2.0
     */
     int32_t next(UErrorCode& status);
@@ -185,8 +185,8 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject {
     /**
     * Get the ordering priority of the previous collation element in the string.
     * @param status the error code status.
-    * @return the previous element's ordering. otherwise returns NULLORDER if an 
-    *         error has occured or if the start of string has been reached
+    * @return the previous element's ordering. otherwise returns NULLORDER if an
+    *         error has occurred or if the start of string has been reached
     * @stable ICU 2.0
     */
     int32_t previous(UErrorCode& status);
@@ -216,11 +216,11 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject {
     static inline int32_t tertiaryOrder(int32_t order);
 
     /**
-    * Return the maximum length of any expansion sequences that end with the 
+    * Return the maximum length of any expansion sequences that end with the
     * specified comparison order.
     * @param order a collation order returned by previous or next.
-    * @return maximum size of the expansion sequences ending with the collation 
-    *         element or 1 if collation element does not occur at the end of any 
+    * @return maximum size of the expansion sequences ending with the collation
+    *         element or 1 if collation element does not occur at the end of any
     *         expansion sequence
     * @stable ICU 2.0
     */
@@ -312,9 +312,9 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject {
     friend class UCollationPCE;
 
     /**
-    * CollationElementIterator constructor. This takes the source string and the 
-    * collation object. The cursor will walk thru the source string based on the 
-    * predefined collation rules. If the source string is empty, NULLORDER will 
+    * CollationElementIterator constructor. This takes the source string and the
+    * collation object. The cursor will walk thru the source string based on the
+    * predefined collation rules. If the source string is empty, NULLORDER will
     * be returned on the calls to next().
     * @param sourceText    the source string.
     * @param order         the collation object.
@@ -332,9 +332,9 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject {
     // but only contain the part of RBC== related to data and rules.
 
     /**
-    * CollationElementIterator constructor. This takes the source string and the 
-    * collation object.  The cursor will walk thru the source string based on the 
-    * predefined collation rules.  If the source string is empty, NULLORDER will 
+    * CollationElementIterator constructor. This takes the source string and the
+    * collation object.  The cursor will walk thru the source string based on the
+    * predefined collation rules.  If the source string is empty, NULLORDER will
     * be returned on the calls to next().
     * @param sourceText    the source string.
     * @param order         the collation object.
diff --git a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h
index 96883a81..8788f77e 100644
--- a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h
+++ b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/format.h
@@ -29,8 +29,8 @@
 #if U_SHOW_CPLUSPLUS_API
 
 /**
- * \file 
- * \brief C++ API: Base class for all formats. 
+ * \file
+ * \brief C++ API: Base class for all formats.
  */
 
 #if !UCONFIG_NO_FORMATTING
@@ -40,7 +40,7 @@
 #include "unicode/fieldpos.h"
 #include "unicode/fpositer.h"
 #include "unicode/parsepos.h"
-#include "unicode/parseerr.h" 
+#include "unicode/parseerr.h"
 #include "unicode/locid.h"
 
 U_NAMESPACE_BEGIN
@@ -245,7 +245,7 @@ class U_I18N_API Format : public UObject {
                      UErrorCode& status) const;
 
     /** Get the locale for this format object. You can choose between valid and actual locale.
-     *  @param type type of the locale we're looking for (valid or actual) 
+     *  @param type type of the locale we're looking for (valid or actual)
      *  @param status error code for the operation
      *  @return the locale
      *  @stable ICU 2.8
@@ -254,7 +254,7 @@ class U_I18N_API Format : public UObject {
 
 #ifndef U_HIDE_INTERNAL_API
     /** Get the locale for this format object. You can choose between valid and actual locale.
-     *  @param type type of the locale we're looking for (valid or actual) 
+     *  @param type type of the locale we're looking for (valid or actual)
      *  @param status error code for the operation
      *  @return the locale
      *  @internal
@@ -283,12 +283,12 @@ class U_I18N_API Format : public UObject {
      */
     Format& operator=(const Format&); // Does nothing; for subclasses
 
-       
+
     /**
      * Simple function for initializing a UParseError from a UnicodeString.
      *
      * @param pattern The pattern to copy into the parseError
-     * @param pos The position in pattern where the error occured
+     * @param pos The position in pattern where the error occurred
      * @param parseError The UParseError object to fill in
      * @stable ICU 2.4
      */
diff --git a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucol.h b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucol.h
index c52f0b1d..cd6d4619 100644
--- a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucol.h
+++ b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucol.h
@@ -459,7 +459,7 @@ ucol_openRules( const UChar        *rules,
  *                   instantiating collators (like out of memory or similar), this
  *                   API will return an error if an invalid attribute or attribute/value
  *                   combination is specified.
- * @return           A pointer to a UCollator or 0 if an error occured (including an
+ * @return           A pointer to a UCollator or 0 if an error occurred (including an
  *                   invalid attribute).
  * @see ucol_open
  * @see ucol_setAttribute
diff --git a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucoleitr.h b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucoleitr.h
index 85ec8383..0a2929d4 100644
--- a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucoleitr.h
+++ b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/ucoleitr.h
@@ -11,7 +11,7 @@
 * Modification History:
 *
 * Date        Name        Description
-* 02/15/2001  synwee      Modified all methods to process its own function 
+* 02/15/2001  synwee      Modified all methods to process its own function
 *                         instead of calling the equivalent c++ api (coleitr.h)
 *******************************************************************************/
 
@@ -22,8 +22,8 @@
 
 #if !UCONFIG_NO_COLLATION
 
-/**  
- * This indicates an error has occured during processing or if no more CEs is 
+/**
+ * This indicates an error has occurred during processing or if no more CEs is
  * to be returned.
  * @stable ICU 2.0
  */
@@ -31,7 +31,7 @@
 
 #include "unicode/ucol.h"
 
-/** 
+/**
  * The UCollationElements struct.
  * For usage in C programs.
  * @stable ICU 2.0
@@ -42,10 +42,10 @@ typedef struct UCollationElements UCollationElements;
  * \file
  * \brief C API: UCollationElements
  *
- * The UCollationElements API is used as an iterator to walk through each 
+ * The UCollationElements API is used as an iterator to walk through each
  * character of an international string. Use the iterator to return the
- * ordering priority of the positioned character. The ordering priority of a 
- * character, which we refer to as a key, defines how a character is collated 
+ * ordering priority of the positioned character. The ordering priority of a
+ * character, which we refer to as a key, defines how a character is collated
  * in the given collation object.
  * For example, consider the following in Slovak and in traditional Spanish collation:
  * 
@@ -82,19 +82,19 @@ typedef struct UCollationElements UCollationElements;
  * ucol_next() returns the collation order of the next.
  * ucol_prev() returns the collation order of the previous character.
  * The Collation Element Iterator moves only in one direction between calls to
- * ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used. 
- * Whenever ucol_prev is to be called after ucol_next() or vice versa, 
- * ucol_reset has to be called first to reset the status, shifting pointers to 
- * either the end or the start of the string. Hence at the next call of 
- * ucol_prev or ucol_next, the first or last collation order will be returned. 
- * If a change of direction is done without a ucol_reset, the result is 
+ * ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used.
+ * Whenever ucol_prev is to be called after ucol_next() or vice versa,
+ * ucol_reset has to be called first to reset the status, shifting pointers to
+ * either the end or the start of the string. Hence at the next call of
+ * ucol_prev or ucol_next, the first or last collation order will be returned.
+ * If a change of direction is done without a ucol_reset, the result is
  * undefined.
- * The result of a forward iterate (ucol_next) and reversed result of the  
- * backward iterate (ucol_prev) on the same string are equivalent, if 
+ * The result of a forward iterate (ucol_next) and reversed result of the
+ * backward iterate (ucol_prev) on the same string are equivalent, if
  * collation orders with the value 0 are ignored.
- * Character based on the comparison level of the collator.  A collation order 
- * consists of primary order, secondary order and tertiary order.  The data 
- * type of the collation order is int32_t. 
+ * Character based on the comparison level of the collator.  A collation order
+ * consists of primary order, secondary order and tertiary order.  The data
+ * type of the collation order is int32_t.
  *
  * @see UCollator
  */
@@ -109,7 +109,7 @@ typedef struct UCollationElements UCollationElements;
  * @return a struct containing collation element information
  * @stable ICU 2.0
  */
-U_STABLE UCollationElements* U_EXPORT2 
+U_STABLE UCollationElements* U_EXPORT2
 ucol_openElements(const UCollator  *coll,
                   const UChar      *text,
                         int32_t    textLength,
@@ -123,7 +123,7 @@ ucol_openElements(const UCollator  *coll,
  * @return       the hash code.
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 ucol_keyHashCode(const uint8_t* key, int32_t length);
 
 /**
@@ -132,7 +132,7 @@ ucol_keyHashCode(const uint8_t* key, int32_t length);
  * @param elems The UCollationElements to close.
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 ucol_closeElements(UCollationElements *elems);
 
 /**
@@ -144,7 +144,7 @@ ucol_closeElements(UCollationElements *elems);
  * @see ucol_previous
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 ucol_reset(UCollationElements *elems);
 
 /**
@@ -152,41 +152,41 @@ ucol_reset(UCollationElements *elems);
  * A single character may contain more than one collation element.
  * @param elems The UCollationElements containing the text.
  * @param status A pointer to a UErrorCode to receive any errors.
- * @return The next collation elements ordering, otherwise returns UCOL_NULLORDER 
- *         if an error has occured or if the end of string has been reached
+ * @return The next collation elements ordering, otherwise returns UCOL_NULLORDER
+ *         if an error has occurred or if the end of string has been reached
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 ucol_next(UCollationElements *elems, UErrorCode *status);
 
 /**
  * Get the ordering priority of the previous collation element in the text.
  * A single character may contain more than one collation element.
- * Note that internally a stack is used to store buffered collation elements. 
+ * Note that internally a stack is used to store buffered collation elements.
  * @param elems The UCollationElements containing the text.
- * @param status A pointer to a UErrorCode to receive any errors. Noteably 
+ * @param status A pointer to a UErrorCode to receive any errors. Noteably
  *               a U_BUFFER_OVERFLOW_ERROR is returned if the internal stack
  *               buffer has been exhausted.
- * @return The previous collation elements ordering, otherwise returns 
- *         UCOL_NULLORDER if an error has occured or if the start of string has 
+ * @return The previous collation elements ordering, otherwise returns
+ *         UCOL_NULLORDER if an error has occurred or if the start of string has
  *         been reached.
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 ucol_previous(UCollationElements *elems, UErrorCode *status);
 
 /**
- * Get the maximum length of any expansion sequences that end with the 
+ * Get the maximum length of any expansion sequences that end with the
  * specified comparison order.
  * This is useful for .... ?
  * @param elems The UCollationElements containing the text.
  * @param order A collation order returned by previous or next.
- * @return maximum size of the expansion sequences ending with the collation 
- *         element or 1 if collation element does not occur at the end of any 
+ * @return maximum size of the expansion sequences ending with the collation
+ *         element or 1 if collation element does not occur at the end of any
  *         expansion sequence
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 ucol_getMaxExpansion(const UCollationElements *elems, int32_t order);
 
 /**
@@ -201,8 +201,8 @@ ucol_getMaxExpansion(const UCollationElements *elems, int32_t order);
  * @see ucol_getText
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
-ucol_setText(      UCollationElements *elems, 
+U_STABLE void U_EXPORT2
+ucol_setText(      UCollationElements *elems,
              const UChar              *text,
                    int32_t            textLength,
                    UErrorCode         *status);
@@ -216,7 +216,7 @@ ucol_setText(      UCollationElements *elems,
  * @see ucol_setOffset
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 ucol_getOffset(const UCollationElements *elems);
 
 /**
@@ -231,7 +231,7 @@ ucol_getOffset(const UCollationElements *elems);
  * @see ucol_getOffset
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 ucol_setOffset(UCollationElements *elems,
                int32_t        offset,
                UErrorCode         *status);
@@ -243,7 +243,7 @@ ucol_setOffset(UCollationElements *elems,
 * @stable ICU 2.6
 */
 U_STABLE int32_t U_EXPORT2
-ucol_primaryOrder (int32_t order); 
+ucol_primaryOrder (int32_t order);
 
 /**
 * Get the secondary order of a collation order.
@@ -252,7 +252,7 @@ ucol_primaryOrder (int32_t order);
 * @stable ICU 2.6
 */
 U_STABLE int32_t U_EXPORT2
-ucol_secondaryOrder (int32_t order); 
+ucol_secondaryOrder (int32_t order);
 
 /**
 * Get the tertiary order of a collation order.
@@ -261,7 +261,7 @@ ucol_secondaryOrder (int32_t order);
 * @stable ICU 2.6
 */
 U_STABLE int32_t U_EXPORT2
-ucol_tertiaryOrder (int32_t order); 
+ucol_tertiaryOrder (int32_t order);
 
 #endif /* #if !UCONFIG_NO_COLLATION */
 
diff --git a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/umsg.h b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/umsg.h
index 5d235e42..18765b0f 100644
--- a/src/duckdb/extension/icu/third_party/icu/i18n/unicode/umsg.h
+++ b/src/duckdb/extension/icu/third_party/icu/i18n/unicode/umsg.h
@@ -1,10 +1,10 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
- * COPYRIGHT: 
+ * COPYRIGHT:
  * Copyright (c) 1997-2011, International Business Machines Corporation and
  * others. All Rights Reserved.
- * Copyright (C) 2010 , Yahoo! Inc. 
+ * Copyright (C) 2010 , Yahoo! Inc.
  ********************************************************************
  *
  *   file name:  umsg.h
@@ -100,8 +100,8 @@
  *     u_uastrcpy(str, "MyDisk");
  *     u_uastrcpy(pattern, "The disk {1} contains {0,choice,0#no files|1#one file|1<{0,number,integer} files}");
  *     for(i=0; i<3; i++){
- *       resultlength=0; 
- *       resultLengthOut=u_formatMessage( "en_US", pattern, u_strlen(pattern), NULL, resultlength, &status, testArgs[i], str); 
+ *       resultlength=0;
+ *       resultLengthOut=u_formatMessage( "en_US", pattern, u_strlen(pattern), NULL, resultlength, &status, testArgs[i], str);
  *       if(status==U_BUFFER_OVERFLOW_ERROR){
  *         status=U_ZERO_ERROR;
  *         resultlength=resultLengthOut+1;
@@ -175,7 +175,7 @@
  * @see u_parseMessage
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 u_formatMessage(const char  *locale,
                  const UChar *pattern,
                 int32_t     patternLength,
@@ -202,7 +202,7 @@ u_formatMessage(const char  *locale,
  * @see u_parseMessage
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 u_vformatMessage(   const char  *locale,
                     const UChar *pattern,
                     int32_t     patternLength,
@@ -227,7 +227,7 @@ u_vformatMessage(   const char  *locale,
  * @see u_formatMessage
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 u_parseMessage( const char   *locale,
                 const UChar  *pattern,
                 int32_t      patternLength,
@@ -252,7 +252,7 @@ u_parseMessage( const char   *locale,
  * @see u_formatMessage
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 u_vparseMessage(const char  *locale,
                 const UChar *pattern,
                 int32_t     patternLength,
@@ -281,7 +281,7 @@ u_vparseMessage(const char  *locale,
  * @see u_parseMessage
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 u_formatMessageWithError(   const char    *locale,
                             const UChar   *pattern,
                             int32_t       patternLength,
@@ -310,7 +310,7 @@ u_formatMessageWithError(   const char    *locale,
  * output was truncated.
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 u_vformatMessageWithError(  const char   *locale,
                             const UChar  *pattern,
                             int32_t      patternLength,
@@ -338,7 +338,7 @@ u_vformatMessageWithError(  const char   *locale,
  * @see u_formatMessage
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 u_parseMessageWithError(const char  *locale,
                         const UChar *pattern,
                         int32_t     patternLength,
@@ -366,7 +366,7 @@ u_parseMessageWithError(const char  *locale,
  * @see u_formatMessage
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 u_vparseMessageWithError(const char  *locale,
                          const UChar *pattern,
                          int32_t     patternLength,
@@ -377,7 +377,7 @@ u_vparseMessageWithError(const char  *locale,
                          UErrorCode* status);
 
 /*----------------------- New experimental API --------------------------- */
-/** 
+/**
  * The message format object
  * @stable ICU 2.0
  */
@@ -389,14 +389,14 @@ typedef void* UMessageFormat;
  * @param pattern       A pattern specifying the format to use.
  * @param patternLength Length of the pattern to use
  * @param locale        The locale for which the messages are formatted.
- * @param parseError    A pointer to UParseError struct to receive any errors 
- *                      occured during parsing. Can be NULL.
+ * @param parseError    A pointer to UParseError struct to receive any errors
+ *                      occurred during parsing. Can be NULL.
  * @param status        A pointer to an UErrorCode to receive any errors.
- * @return              A pointer to a UMessageFormat to use for formatting 
- *                      messages, or 0 if an error occurred. 
+ * @return              A pointer to a UMessageFormat to use for formatting
+ *                      messages, or 0 if an error occurred.
  * @stable ICU 2.0
  */
-U_STABLE UMessageFormat* U_EXPORT2 
+U_STABLE UMessageFormat* U_EXPORT2
 umsg_open(  const UChar     *pattern,
             int32_t         patternLength,
             const  char     *locale,
@@ -409,7 +409,7 @@ umsg_open(  const UChar     *pattern,
  * @param format The formatter to close.
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 umsg_close(UMessageFormat* format);
 
 #if U_SHOW_CPLUSPLUS_API
@@ -439,7 +439,7 @@ U_NAMESPACE_END
  * @return A pointer to a UDateFormat identical to fmt.
  * @stable ICU 2.0
  */
-U_STABLE UMessageFormat U_EXPORT2 
+U_STABLE UMessageFormat U_EXPORT2
 umsg_clone(const UMessageFormat *fmt,
            UErrorCode *status);
 
@@ -450,7 +450,7 @@ umsg_clone(const UMessageFormat *fmt,
  * @param locale The locale the formatter should use.
  * @stable ICU 2.0
  */
-U_STABLE void  U_EXPORT2 
+U_STABLE void  U_EXPORT2
 umsg_setLocale(UMessageFormat *fmt,
                const char* locale);
 
@@ -461,7 +461,7 @@ umsg_setLocale(UMessageFormat *fmt,
  * @return the locale.
  * @stable ICU 2.0
  */
-U_STABLE const char*  U_EXPORT2 
+U_STABLE const char*  U_EXPORT2
 umsg_getLocale(const UMessageFormat *fmt);
 
 /**
@@ -469,14 +469,14 @@ umsg_getLocale(const UMessageFormat *fmt);
  * @param fmt           The formatter to use
  * @param pattern       The pattern to be applied.
  * @param patternLength Length of the pattern to use
- * @param parseError    Struct to receive information on position 
+ * @param parseError    Struct to receive information on position
  *                      of error if an error is encountered.Can be NULL.
  * @param status        Output param set to success/failure code on
  *                      exit. If the pattern is invalid, this will be
  *                      set to a failure result.
  * @stable ICU 2.0
  */
-U_STABLE void  U_EXPORT2 
+U_STABLE void  U_EXPORT2
 umsg_applyPattern( UMessageFormat *fmt,
                    const UChar* pattern,
                    int32_t patternLength,
@@ -490,13 +490,13 @@ umsg_applyPattern( UMessageFormat *fmt,
  * @param resultLength The maximum size of result.
  * @param status       Output param set to success/failure code on
  *                     exit. If the pattern is invalid, this will be
- *                     set to a failure result.  
+ *                     set to a failure result.
  * @return the pattern of the format
  * @stable ICU 2.0
  */
-U_STABLE int32_t  U_EXPORT2 
+U_STABLE int32_t  U_EXPORT2
 umsg_toPattern(const UMessageFormat *fmt,
-               UChar* result, 
+               UChar* result,
                int32_t resultLength,
                UErrorCode* status);
 
@@ -509,13 +509,13 @@ umsg_toPattern(const UMessageFormat *fmt,
  * @param result        A pointer to a buffer to receive the formatted message.
  * @param resultLength  The maximum size of result.
  * @param status        A pointer to an UErrorCode to receive any errors
- * @param ...           A variable-length argument list containing the arguments 
+ * @param ...           A variable-length argument list containing the arguments
  *                      specified in pattern.
- * @return              The total buffer size needed; if greater than resultLength, 
+ * @return              The total buffer size needed; if greater than resultLength,
  *                      the output was truncated.
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 umsg_format(    const UMessageFormat *fmt,
                 UChar          *result,
                 int32_t        resultLength,
@@ -527,17 +527,17 @@ umsg_format(    const UMessageFormat *fmt,
  * This function may perform re-ordering of the arguments depending on the
  * locale. For all numeric arguments, double is assumed unless the type is
  * explicitly integer.  All choice format arguments must be of type double.
- * @param fmt          The formatter to use 
+ * @param fmt          The formatter to use
  * @param result       A pointer to a buffer to receive the formatted message.
  * @param resultLength The maximum size of result.
- * @param ap           A variable-length argument list containing the arguments 
+ * @param ap           A variable-length argument list containing the arguments
  * @param status       A pointer to an UErrorCode to receive any errors
  *                     specified in pattern.
- * @return             The total buffer size needed; if greater than resultLength, 
+ * @return             The total buffer size needed; if greater than resultLength,
  *                     the output was truncated.
  * @stable ICU 2.0
  */
-U_STABLE int32_t U_EXPORT2 
+U_STABLE int32_t U_EXPORT2
 umsg_vformat(   const UMessageFormat *fmt,
                 UChar          *result,
                 int32_t        resultLength,
@@ -549,7 +549,7 @@ umsg_vformat(   const UMessageFormat *fmt,
  * For numeric arguments, this function will always use doubles.  Integer types
  * should not be passed.
  * This function is not able to parse all output from {@link #umsg_format }.
- * @param fmt           The formatter to use 
+ * @param fmt           The formatter to use
  * @param source        The text to parse.
  * @param sourceLength  The length of source, or -1 if null-terminated.
  * @param count         Output param to receive number of elements returned.
@@ -558,7 +558,7 @@ umsg_vformat(   const UMessageFormat *fmt,
  *                      specified in pattern.
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 umsg_parse( const UMessageFormat *fmt,
             const UChar    *source,
             int32_t        sourceLength,
@@ -571,7 +571,7 @@ umsg_parse( const UMessageFormat *fmt,
  * For numeric arguments, this function will always use doubles.  Integer types
  * should not be passed.
  * This function is not able to parse all output from {@link #umsg_format }.
- * @param fmt           The formatter to use 
+ * @param fmt           The formatter to use
  * @param source        The text to parse.
  * @param sourceLength  The length of source, or -1 if null-terminated.
  * @param count         Output param to receive number of elements returned.
@@ -581,7 +581,7 @@ umsg_parse( const UMessageFormat *fmt,
  * @see u_formatMessage
  * @stable ICU 2.0
  */
-U_STABLE void U_EXPORT2 
+U_STABLE void U_EXPORT2
 umsg_vparse(const UMessageFormat *fmt,
             const UChar    *source,
             int32_t        sourceLength,
@@ -593,7 +593,7 @@ umsg_vparse(const UMessageFormat *fmt,
 /**
  * Convert an 'apostrophe-friendly' pattern into a standard
  * pattern.  Standard patterns treat all apostrophes as
- * quotes, which is problematic in some languages, e.g. 
+ * quotes, which is problematic in some languages, e.g.
  * French, where apostrophe is commonly used.  This utility
  * assumes that only an unpaired apostrophe immediately before
  * a brace is a true quote.  Other unpaired apostrophes are paired,
@@ -613,8 +613,8 @@ umsg_vparse(const UMessageFormat *fmt,
  *        not
  * @stable ICU 3.4
  */
-U_STABLE int32_t U_EXPORT2 
-umsg_autoQuoteApostrophe(const UChar* pattern, 
+U_STABLE int32_t U_EXPORT2
+umsg_autoQuoteApostrophe(const UChar* pattern,
                          int32_t patternLength,
                          UChar* dest,
                          int32_t destCapacity,
diff --git a/src/duckdb/extension/icu/third_party/icu/i18n/usrchimp.h b/src/duckdb/extension/icu/third_party/icu/i18n/usrchimp.h
index 5438417e..cd3c5a7c 100644
--- a/src/duckdb/extension/icu/third_party/icu/i18n/usrchimp.h
+++ b/src/duckdb/extension/icu/third_party/icu/i18n/usrchimp.h
@@ -43,7 +43,7 @@
 #define isContinuation(CE) (((CE) & UCOL_CONTINUATION_MARKER) == UCOL_CONTINUATION_MARKER)
 
 /**
- * This indicates an error has occured during processing or there are no more CEs
+ * This indicates an error has occurred during processing or there are no more CEs
  * to be returned.
  */
 #define UCOL_PROCESSED_NULLORDER        ((int64_t)U_INT64_MAX)
@@ -101,7 +101,7 @@ class UCollationPCE : public UMemory {
      * @param ixHigh a pointer to an int32_t to receive the iterator index after fetching the CE.
      * @param status A pointer to an UErrorCode to receive any errors.
      * @return The next collation elements ordering, otherwise returns UCOL_PROCESSED_NULLORDER
-     *         if an error has occured or if the end of string has been reached
+     *         if an error has occurred or if the end of string has been reached
      */
     int64_t nextProcessed(int32_t *ixLow, int32_t *ixHigh, UErrorCode *status);
     /**
@@ -114,7 +114,7 @@ class UCollationPCE : public UMemory {
      *               a U_BUFFER_OVERFLOW_ERROR is returned if the internal stack
      *               buffer has been exhausted.
      * @return The previous collation elements ordering, otherwise returns
-     *         UCOL_PROCESSED_NULLORDER if an error has occured or if the start of
+     *         UCOL_PROCESSED_NULLORDER if an error has occurred or if the start of
      *         string has been reached.
      */
     int64_t previousProcessed(int32_t *ixLow, int32_t *ixHigh, UErrorCode *status);
diff --git a/src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp b/src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp
index 1bb59ae0..4151bef6 100644
--- a/src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp
+++ b/src/duckdb/extension/icu/third_party/icu/stubdata/stubdata.cpp
@@ -6,5 +6,5 @@
 #include "unicode/uversion.h"
 
 extern "C" U_EXPORT const unsigned char U_ICUDATA_ENTRY_POINT [] = {
-	144,0,218,39,20,0,0,0,0,0,2,0,67,109,110,68,1,0,0,0,3,0,0,0,32,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,54,32,97,110,100,32,108,97,116,101,114,58,32,85,110,105,99,111,100,101,44,32,73,110,99,46,32,97,110,100,32,111,116,104,101,114,115,46,32,76,105,99,101,110,115,101,32,38,32,116,101,114,109,115,32,111,102,32,117,115,101,58,32,104,116,116,112,58,47,47,119,119,119,46,117,110,105,99,111,100,101,46,111,114,103,47,99,111,112,121,114,105,103,104,116,46,104,116,109,108,32,0,190,0,0,0,244,5,0,0,240,22,0,0,9,6,0,0,32,52,0,0,30,6,0,0,48,54,0,0,51,6,0,0,16,169,0,0,75,6,0,0,96,169,0,0,97,6,0,0,192,169,0,0,118,6,0,0,176,197,0,0,139,6,0,0,48,30,1,0,160,6,0,0,16,58,1,0,181,6,0,0,16,60,1,0,202,6,0,0,128,191,1,0,223,6,0,0,80,2,2,0,244,6,0,0,128,34,2,0,9,7,0,0,192,112,2,0,35,7,0,0,80,139,2,0,56,7,0,0,48,176,2,0,78,7,0,0,112,208,2,0,100,7,0,0,128,210,2,0,121,7,0,0,224,246,2,0,142,7,0,0,112,31,3,0,163,7,0,0,176,141,3,0,184,7,0,0,48,224,3,0,206,7,0,0,128,224,3,0,230,7,0,0,80,6,4,0,6,8,0,0,208,6,4,0,28,8,0,0,128,48,4,0,49,8,0,0,208,48,4,0,70,8,0,0,48,94,4,0,91,8,0,0,112,96,4,0,112,8,0,0,192,96,4,0,136,8,0,0,16,97,4,0,166,8,0,0,144,159,4,0,187,8,0,0,224,196,4,0,208,8,0,0,32,41,5,0,230,8,0,0,112,41,5,0,8,9,0,0,240,41,5,0,29,9,0,0,64,83,5,0,50,9,0,0,80,114,5,0,74,9,0,0,128,148,5,0,95,9,0,0,208,148,5,0,121,9,0,0,112,193,5,0,142,9,0,0,160,74,6,0,164,9,0,0,224,106,6,0,185,9,0,0,64,217,6,0,206,9,0,0,144,217,6,0,230,9,0,0,128,218,6,0,251,9,0,0,48,250,6,0,16,10,0,0,128,250,6,0,37,10,0,0,48,61,7,0,58,10,0,0,0,88,7,0,79,10,0,0,208,125,7,0,101,10,0,0,224,169,7,0,122,10,0,0,192,231,7,0,146,10,0,0,16,232,7,0,167,10,0,0,224,2,8,0,188,10,0,0,128,82,8,0,210,10,0,0,32,122,8,0,231,10,0,0,224,195,8,0,252,10,0,0,112,222,8,0,17,11,0,0,192,222,8,0,41,11,0,0,16,223,8,0,62,11,0,0,80,16,9,0,83,11,0,0,176,16,9,0,107,11,0,0,16,17,9,0,128,11,0,0,240,112,9,0,149,11,0,0,64,113,9,0,170,11,0,0,160,113,9,0,194,11,0,0,0,114,9,0,215,11,0,0,0,174,11,0,236,11,0,0,0,176,11,0,1,12,0,0,64,204,11,0,22,12,0,0,0,40,12,0,43,12,0,0,192,75,12,0,64,12,0,0,192,209,12,0,85,12,0,0,96,61,17,0,107,12,0,0,192,88,17,0,128,12,0,0,240,131,17,0,149,12,0,0,128,159,17,0,170,12,0,0,208,159,17,0,192,12,0,0,48,195,17,0,213,12,0,0,80,28,18,0,234,12,0,0,96,30,18,0,255,12,0,0,112,70,18,0,20,13,0,0,96,107,18,0,41,13,0,0,160,135,18,0,62,13,0,0,112,165,18,0,83,13,0,0,160,167,18,0,104,13,0,0,0,168,18,0,125,13,0,0,176,195,18,0,146,13,0,0,0,196,18,0,167,13,0,0,80,228,18,0,188,13,0,0,208,125,19,0,209,13,0,0,48,126,19,0,233,13,0,0,128,126,19,0,254,13,0,0,128,128,19,0,19,14,0,0,208,128,19,0,40,14,0,0,48,129,19,0,61,14,0,0,192,239,19,0,85,14,0,0,32,240,19,0,106,14,0,0,112,24,20,0,127,14,0,0,224,51,20,0,148,14,0,0,64,80,20,0,174,14,0,0,144,80,20,0,203,14,0,0,224,80,20,0,227,14,0,0,80,81,20,0,248,14,0,0,96,121,20,0,13,15,0,0,0,157,20,0,34,15,0,0,80,157,20,0,62,15,0,0,48,163,20,0,83,15,0,0,80,198,20,0,106,15,0,0,176,97,25,0,127,15,0,0,176,99,25,0,148,15,0,0,0,100,25,0,169,15,0,0,192,213,25,0,190,15,0,0,32,214,25,0,214,15,0,0,144,214,25,0,238,15,0,0,0,215,25,0,6,16,0,0,112,215,25,0,27,16,0,0,128,13,26,0,48,16,0,0,176,113,26,0,69,16,0,0,144,147,26,0,91,16,0,0,96,243,26,0,112,16,0,0,208,33,27,0,133,16,0,0,160,60,27,0,157,16,0,0,16,61,27,0,183,16,0,0,96,61,27,0,212,16,0,0,176,61,27,0,241,16,0,0,0,62,27,0,14,17,0,0,80,62,27,0,40,17,0,0,144,140,27,0,69,17,0,0,224,140,27,0,98,17,0,0,48,141,27,0,122,17,0,0,160,141,27,0,146,17,0,0,16,142,27,0,167,17,0,0,80,24,28,0,188,17,0,0,160,24,28,0,209,17,0,0,48,56,28,0,230,17,0,0,0,83,28,0,251,17,0,0,80,110,28,0,16,18,0,0,160,151,28,0,37,18,0,0,32,199,28,0,58,18,0,0,160,26,29,0,84,18,0,0,192,112,37,0,105,18,0,0,240,141,37,0,126,18,0,0,96,170,37,0,147,18,0,0,112,203,37,0,168,18,0,0,80,237,37,0,189,18,0,0,48,126,38,0,211,18,0,0,128,126,38,0,232,18,0,0,192,165,38,0,253,18,0,0,16,166,38,0,18,19,0,0,112,231,38,0,39,19,0,0,64,11,39,0,61,19,0,0,160,11,39,0,86,19,0,0,0,12,39,0,113,19,0,0,96,12,39,0,143,19,0,0,192,12,39,0,170,19,0,0,32,13,39,0,191,19,0,0,176,17,53,0,215,19,0,0,32,18,53,0,239,19,0,0,144,18,53,0,9,20,0,0,224,18,53,0,38,20,0,0,48,19,53,0,67,20,0,0,128,19,53,0,93,20,0,0,0,20,53,0,122,20,0,0,80,20,53,0,151,20,0,0,160,20,53,0,180,20,0,0,240,20,53,0,204,20,0,0,96,21,53,0,228,20,0,0,208,21,53,0,252,20,0,0,64,22,53,0,17,21,0,0,144,22,53,0,51,21,0,0,176,34,53,0,75,21,0,0,176,111,53,0,99,21,0,0,208,113,53,0,132,21,0,0,96,133,53,0,152,21,0,0,192,133,53,0,172,21,0,0,80,134,53,0,197,21,0,0,144,162,53,0,219,21,0,0,176,65,54,0,246,21,0,0,160,23,55,0,13,22,0,0,192,191,55,0,35,22,0,0,208,82,56,0,65,22,0,0,96,106,56,0,91,22,0,0,32,120,56,0,112,22,0,0,0,2,57,0,142,22,0,0,160,176,60,0,169,22,0,0,16,3,61,0,188,22,0,0,16,67,61,0,214,22,0,0,128,153,61,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,102,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,114,95,83,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,114,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,122,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,103,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,115,95,67,121,114,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,101,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,104,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,95,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,95,65,84,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,95,95,80,72,79,78,69,66,79,79,75,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,115,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,122,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,110,95,85,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,110,95,85,83,95,80,79,83,73,88,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,115,95,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,115,95,95,84,82,65,68,73,84,73,79,78,65,76,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,97,95,65,70,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,102,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,102,95,65,100,108,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,105,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,114,95,67,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,103,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,103,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,103,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,97,119,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,101,95,73,76,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,115,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,100,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,100,95,73,68,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,103,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,110,95,73,68,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,119,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,119,95,73,76,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,106,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,111,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,107,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,118,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,98,95,78,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,111,95,78,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,111,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,111,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,95,71,117,114,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,95,71,117,114,117,95,73,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,95,73,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,101,115,95,105,110,100,101,120,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,111,111,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,95,67,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,95,89,85,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,109,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,113,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,95,77,69,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,95,82,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,76,97,116,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,76,97,116,110,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,76,97,116,110,95,82,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,77,69,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,82,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,118,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,119,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,99,97,100,97,116,97,46,105,99,117,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,103,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,122,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,118,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,119,97,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,119,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,120,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,72,97,110,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,72,97,110,115,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,72,97,110,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,75,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,115,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,115,95,83,71,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,95,72,75,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,95,77,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,95,84,87,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,77,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,83,71,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,84,87,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,117,114,114,101,110,99,121,78,117,109,101,114,105,99,67,111,100,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,100,97,121,80,101,114,105,111,100,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,103,101,110,100,101,114,76,105,115,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,103,114,97,109,109,97,116,105,99,97,108,70,101,97,116,117,114,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,105,99,117,115,116,100,46,114,101,115,0,105,99,117,100,116,54,54,108,47,105,99,117,118,101,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,107,101,121,84,121,112,101,68,97,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,108,97,110,103,73,110,102,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,108,105,107,101,108,121,83,117,98,116,97,103,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,109,101,116,97,90,111,110,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,109,101,116,97,100,97,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,110,117,109,98,101,114,105,110,103,83,121,115,116,101,109,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,112,108,117,114,97,108,82,97,110,103,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,112,108,117,114,97,108,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,115,117,112,112,108,101,109,101,110,116,97,108,68,97,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,116,105,109,101,122,111,110,101,84,121,112,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,117,110,105,116,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,119,105,110,100,111,119,115,90,111,110,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,122,111,110,101,105,110,102,111,54,52,46,114,101,115,0,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,66,7,0,32,7,0,0,0,21,0,0,0,68,7,0,0,68,7,0,0,3,0,0,0,0,0,0,0,27,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,78,0,60,0,60,0,60,0,73,1,0,0,170,170,124,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,24,0,0,100,24,0,0,100,24,0,0,100,24,0,0,168,24,0,0,168,24,0,0,168,24,0,0,168,24,0,0,100,28,0,0,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,29,5,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,2,64,12,32,14,192,14,232,14,22,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,185,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,153,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,153,113,136,113,249,114,232,114,25,114,8,114,170,112,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,10,8,12,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,14,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,16,8,1,0,8,14,18,8,1,0,16,14,0,13,8,13,24,14,20,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,27,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,59,7,0,32,1,0,32,0,64,7,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,0,0,32,7,0,0,0,21,0,0,0,122,0,0,0,122,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,69,0,116,0,104,0,105,0,93,0,0,0,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,11,0,0,0,0,0,143,103,192,255,0,104,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,0,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,113,0,0,32,1,0,32,0,118,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,174,28,0,32,7,0,0,0,23,0,0,0,176,28,0,0,176,28,0,0,3,0,0,0,0,0,0,0,48,8,0,0,99,111,108,108,97,116,105,111,110,115,0,99,111,109,112,97,116,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,56,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,42,6,60,0,60,0,41,6,60,0,60,0,60,0,148,254,60,0,60,0,60,0,147,254,38,0,74,6,60,0,60,0,73,6,60,0,60,0,60,0,232,251,60,0,60,0,60,0,233,251,60,0,60,0,60,0,240,254,60,0,60,0,60,0,239,254,60,0,60,0,60,0,144,252,60,0,60,0,60,0,93,252,0,0,239,223,241,15,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,42,6,60,0,60,0,14,32,41,6,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,14,32,74,6,14,32,60,0,60,0,204,6,60,0,60,0,14,32,73,6,38,0,14,32,33,6,60,0,60,0,14,32,35,6,60,0,60,0,14,32,36,6,60,0,60,0,14,32,37,6,60,0,60,0,14,32,38,6,60,0,60,0,14,32,73,6,85,6,60,0,60,0,14,32,39,6,14,32,38,0,33,6,39,6,14,32,60,0,60,0,14,32,34,6,14,32,38,0,91,0,108,0,97,0,115,0,116,0,32,0,115,0,101,0,99,0,111,0,110,0,100,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,60,0,75,6,60,0,60,0,60,0,240,8,60,0,60,0,60,0,231,8,60,0,60,0,60,0,76,6,60,0,60,0,60,0,241,8,60,0,60,0,60,0,232,8,60,0,60,0,60,0,77,6,60,0,60,0,60,0,242,8,60,0,60,0,60,0,233,8,60,0,60,0,60,0,78,6,60,0,60,0,60,0,228,8,60,0,60,0,60,0,244,8,60,0,60,0,60,0,245,8,60,0,60,0,60,0,79,6,60,0,60,0,60,0,229,8,60,0,60,0,60,0,254,8,60,0,60,0,60,0,80,6,60,0,60,0,60,0,230,8,60,0,60,0,60,0,246,8,60,0,60,0,60,0,81,6,60,0,60,0,60,0,82,6,60,0,60,0,60,0,83,6,60,0,60,0,60,0,223,6,60,0,60,0,60,0,225,6,60,0,60,0,60,0,95,6,60,0,60,0,60,0,86,6,60,0,60,0,60,0,87,6,60,0,60,0,60,0,88,6,60,0,60,0,60,0,255,8,60,0,60,0,60,0,89,6,60,0,60,0,60,0,90,6,60,0,60,0,60,0,91,6,60,0,60,0,60,0,92,6,60,0,60,0,60,0,93,6,60,0,60,0,60,0,94,6,60,0,60,0,60,0,247,8,60,0,60,0,60,0,248,8,60,0,60,0,60,0,253,8,60,0,60,0,60,0,251,8,60,0,60,0,60,0,252,8,60,0,60,0,60,0,249,8,60,0,60,0,60,0,250,8,60,0,60,0,60,0,112,6,38,0,14,32,39,0,40,6,51,6,69,6,32,0,39,6,68,6,68,6,71,6,32,0,39,6,68,6,49,6,45,6,69,6,70,6,32,0,39,6,68,6,49,6,45,6,74,6,69,6,39,0,60,0,60,0,60,0,14,32,253,253,14,32,38,0,33,6,14,32,61,0,128,254,14,32,38,0,39,6,14,32,61,0,141,254,14,32,61,0,142,254,14,32,38,0,39,6,67,6,40,6,49,6,14,32,60,0,60,0,60,0,243,253,14,32,38,0,39,6,68,6,68,6,71,6,14,32,60,0,60,0,60,0,242,253,14,32,38,0,39,6,75,6,14,32,61,0,60,253,14,32,61,0,61,253,14,32,38,0,34,6,14,32,61,0,129,254,14,32,61,0,130,254,14,32,38,0,35,6,14,32,61,0,131,254,14,32,61,0,132,254,14,32,38,0,37,6,14,32,61,0,135,254,14,32,61,0,136,254,14,32,38,0,40,6,14,32,61,0,143,254,14,32,61,0,144,254,14,32,61,0,145,254,14,32,61,0,146,254,14,32,38,0,40,6,44,6,14,32,61,0,5,252,14,32,61,0,156,252,14,32,38,0,40,6,45,6,14,32,61,0,6,252,14,32,61,0,157,252,14,32,38,0,40,6,45,6,74,6,14,32,61,0,194,253,14,32,38,0,40,6,46,6,14,32,61,0,7,252,14,32,61,0,158,252,14,32,38,0,40,6,46,6,74,6,14,32,61,0,158,253,14,32,38,0,40,6,49,6,14,32,61,0,106,252,14,32,38,0,40,6,50,6,14,32,61,0,107,252,14,32,38,0,40,6,69,6,14,32,61,0,8,252,14,32,61,0,108,252,14,32,61,0,159,252,14,32,61,0,225,252,14,32,38,0,40,6,70,6,14,32,61,0,109,252,14,32,38,0,40,6,71,6,14,32,61,0,160,252,14,32,61,0,226,252,14,32,38,0,40,6,73,6,14,32,61,0,9,252,14,32,61,0,110,252,14,32,38,0,40,6,74,6,14,32,61,0,10,252,14,32,61,0,111,252,14,32,38,0,41,6,14,32,61,0,147,254,14,32,61,0,148,254,14,32,38,0,42,6,14,32,61,0,149,254,14,32,61,0,150,254,14,32,61,0,151,254,14,32,61,0,152,254,14,32,38,0,42,6,44,6,14,32,61,0,11,252,14,32,61,0,161,252,14,32,38,0,42,6,44,6,69,6,14,32,61,0,80,253,14,32,38,0,42,6,44,6,73,6,14,32,61,0,160,253,14,32,38,0,42,6,44,6,74,6,14,32,61,0,159,253,14,32,38,0,42,6,45,6,14,32,61,0,12,252,14,32,61,0,162,252,14,32,38,0,42,6,45,6,44,6,14,32,61,0,81,253,14,32,61,0,82,253,14,32,38,0,42,6,45,6,69,6,14,32,61,0,83,253,14,32,38,0,42,6,46,6,14,32,61,0,13,252,14,32,61,0,163,252,14,32,38,0,42,6,46,6,69,6,14,32,61,0,84,253,14,32,38,0,42,6,46,6,73,6,14,32,61,0,162,253,14,32,38,0,42,6,46,6,74,6,14,32,61,0,161,253,14,32,38,0,42,6,49,6,14,32,61,0,112,252,14,32,38,0,42,6,50,6,14,32,61,0,113,252,14,32,38,0,42,6,69,6,14,32,61,0,14,252,14,32,61,0,114,252,14,32,61,0,164,252,14,32,61,0,227,252,14,32,38,0,42,6,69,6,44,6,14,32,61,0,85,253,14,32,38,0,42,6,69,6,45,6,14,32,61,0,86,253,14,32,38,0,42,6,69,6,46,6,14,32,61,0,87,253,14,32,38,0,42,6,69,6,73,6,14,32,61,0,164,253,14,32,38,0,42,6,69,6,74,6,14,32,61,0,163,253,14,32,38,0,42,6,70,6,14,32,61,0,115,252,14,32,38,0,42,6,71,6,14,32,61,0,165,252,14,32,61,0,228,252,14,32,38,0,42,6,73,6,14,32,61,0,15,252,14,32,61,0,116,252,14,32,38,0,42,6,74,6,14,32,61,0,16,252,14,32,61,0,117,252,14,32,38,0,43,6,14,32,61,0,153,254,14,32,61,0,154,254,14,32,61,0,155,254,14,32,61,0,156,254,14,32,38,0,43,6,44,6,14,32,61,0,17,252,14,32,38,0,43,6,49,6,14,32,61,0,118,252,14,32,38,0,43,6,50,6,14,32,61,0,119,252,14,32,38,0,43,6,69,6,14,32,61,0,18,252,14,32,61,0,120,252,14,32,61,0,166,252,14,32,61,0,229,252,14,32,38,0,43,6,70,6,14,32,61,0,121,252,14,32,38,0,43,6,71,6,14,32,61,0,230,252,14,32,38,0,43,6,73,6,14,32,61,0,19,252,14,32,61,0,122,252,14,32,38,0,43,6,74,6,14,32,61,0,20,252,14,32,61,0,123,252,14,32,38,0,44,6,14,32,61,0,157,254,14,32,61,0,158,254,14,32,61,0,159,254,14,32,61,0,160,254,14,32,38,0,44,6,45,6,14,32,61,0,21,252,14,32,61,0,167,252,14,32,38,0,44,6,45,6,73,6,14,32,61,0,166,253,14,32,38,0,44,6,45,6,74,6,14,32,61,0,190,253,14,32,38,0,39,0,44,6,68,6,32,0,44,6,68,6,39,6,68,6,71,6,39,0,14,32,60,0,60,0,60,0,251,253,14,32,38,0,44,6,69,6,14,32,61,0,22,252,14,32,61,0,168,252,14,32,38,0,44,6,69,6,45,6,14,32,61,0,88,253,14,32,61,0,89,253,14,32,38,0,44,6,69,6,73,6,14,32,61,0,167,253,14,32,38,0,44,6,69,6,74,6,14,32,61,0,165,253,14,32,38,0,44,6,73,6,14,32,61,0,1,253,14,32,61,0,29,253,14,32,38,0,44,6,74,6,14,32,61,0,2,253,14,32,61,0,30,253,14,32,38,0,45,6,14,32,61,0,161,254,14,32,61,0,162,254,14,32,61,0,163,254,14,32,61,0,164,254,14,32,38,0,45,6,44,6,14,32,61,0,23,252,14,32,61,0,169,252,14,32,38,0,45,6,44,6,74,6,14,32,61,0,191,253,14,32,38,0,45,6,69,6,14,32,61,0,24,252,14,32,61,0,170,252,14,32,38,0,45,6,69,6,73,6,14,32,61,0,91,253,14,32,38,0,45,6,69,6,74,6,14,32,61,0,90,253,14,32,38,0,45,6,73,6,14,32,61,0,255,252,14,32,61,0,27,253,14,32,38,0,45,6,74,6,14,32,61,0,0,253,14,32,61,0,28,253,14,32,38,0,46,6,14,32,61,0,165,254,14,32,61,0,166,254,14,32,61,0,167,254,14,32,61,0,168,254,14,32,38,0,46,6,44,6,14,32,61,0,25,252,14,32,61,0,171,252,14,32,38,0,46,6,45,6,14,32,61,0,26,252,14,32,38,0,46,6,69,6,14,32,61,0,27,252,14,32,61,0,172,252,14,32,38,0,46,6,73,6,14,32,61,0,3,253,14,32,61,0,31,253,14,32,38,0,46,6,74,6,14,32,61,0,4,253,14,32,61,0,32,253,14,32,38,0,47,6,14,32,61,0,169,254,14,32,61,0,170,254,14,32,38,0,48,6,14,32,61,0,171,254,14,32,61,0,172,254,14,32,38,0,48,6,112,6,14,32,61,0,91,252,14,32,38,0,49,6,14,32,61,0,173,254,14,32,61,0,174,254,14,32,38,0,49,6,51,6,72,6,68,6,14,32,60,0,60,0,60,0,246,253,14,32,38,0,49,6,112,6,14,32,61,0,92,252,14,32,38,0,49,6,204,6,39,6,68,6,14,32,60,0,60,0,60,0,252,253,14,32,38,0,50,6,14,32,61,0,175,254,14,32,61,0,176,254,14,32,38,0,51,6,14,32,61,0,177,254,14,32,61,0,178,254,14,32,61,0,179,254,14,32,61,0,180,254,14,32,38,0,51,6,44,6,14,32,61,0,28,252,14,32,61,0,173,252,14,32,61,0,52,253,14,32,38,0,51,6,44,6,45,6,14,32,61,0,93,253,14,32,38,0,51,6,44,6,73,6,14,32,61,0,94,253,14,32,38,0,51,6,45,6,14,32,61,0,29,252,14,32,61,0,174,252,14,32,61,0,53,253,14,32,38,0,51,6,45,6,44,6,14,32,61,0,92,253,14,32,38,0,51,6,46,6,14,32,61,0,30,252,14,32,61,0,175,252,14,32,61,0,54,253,14,32,38,0,51,6,46,6,73,6,14,32,61,0,168,253,14,32,38,0,51,6,46,6,74,6,14,32,61,0,198,253,14,32,38,0,51,6,49,6,14,32,61,0,14,253,14,32,61,0,42,253,14,32,38,0,51,6,69,6,14,32,61,0,31,252,14,32,61,0,176,252,14,32,61,0,231,252,14,32,38,0,51,6,69,6,44,6,14,32,61,0,97,253,14,32,38,0,51,6,69,6,45,6,14,32,61,0,95,253,14,32,61,0,96,253,14,32,38,0,51,6,69,6,69,6,14,32,61,0,98,253,14,32,61,0,99,253,14,32,38,0,51,6,71,6,14,32,61,0,232,252,14,32,61,0,49,253,14,32,38,0,51,6,73,6,14,32,61,0,251,252,14,32,61,0,23,253,14,32,38,0,51,6,74,6,14,32,61,0,252,252,14,32,61,0,24,253,14,32,38,0,52,6,14,32,61,0,181,254,14,32,61,0,182,254,14,32,61,0,183,254,14,32,61,0,184,254,14,32,38,0,52,6,44,6,14,32,61,0,9,253,14,32,61,0,37,253,14,32,61,0,45,253,14,32,61,0,55,253,14,32,38,0,52,6,44,6,74,6,14,32,61,0,105,253,14,32,38,0,52,6,45,6,14,32,61,0,10,253,14,32,61,0,38,253,14,32,61,0,46,253,14,32,61,0,56,253,14,32,38,0,52,6,45,6,69,6,14,32,61,0,103,253,14,32,61,0,104,253,14,32,38,0,52,6,45,6,74,6,14,32,61,0,170,253,14,32,38,0,52,6,46,6,14,32,61,0,11,253,14,32,61,0,39,253,14,32,61,0,47,253,14,32,61,0,57,253,14,32,38,0,52,6,49,6,14,32,61,0,13,253,14,32,61,0,41,253,14,32,38,0,52,6,69,6,14,32,61,0,233,252,14,32,61,0,12,253,14,32,61,0,40,253,14,32,61,0,48,253,14,32,38,0,52,6,69,6,46,6,14,32,61,0,106,253,14,32,61,0,107,253,14,32,38,0,52,6,69,6,69,6,14,32,61,0,108,253,14,32,61,0,109,253,14,32,38,0,52,6,71,6,14,32,61,0,234,252,14,32,61,0,50,253,14,32,38,0,52,6,73,6,14,32,61,0,253,252,14,32,61,0,25,253,14,32,38,0,52,6,74,6,14,32,61,0,254,252,14,32,61,0,26,253,14,32,38,0,53,6,14,32,61,0,185,254,14,32,61,0,186,254,14,32,61,0,187,254,14,32,61,0,188,254,14,32,38,0,53,6,45,6,14,32,61,0,32,252,14,32,61,0,177,252,14,32,38,0,53,6,45,6,45,6,14,32,61,0,100,253,14,32,61,0,101,253,14,32,38,0,53,6,45,6,74,6,14,32,61,0,169,253,14,32,38,0,53,6,46,6,14,32,61,0,178,252,14,32,38,0,53,6,49,6,14,32,61,0,15,253,14,32,61,0,43,253,14,32,38,0,53,6,68,6,57,6,69,6,14,32,60,0,60,0,60,0,245,253,14,32,38,0,53,6,68,6,73,6,14,32,60,0,60,0,60,0,249,253,14,32,38,0,39,0,53,6,68,6,73,6,32,0,39,6,68,6,68,6,71,6,32,0,57,6,68,6,74,6,71,6,32,0,72,6,51,6,68,6,69,6,39,0,14,32,60,0,60,0,60,0,250,253,14,32,38,0,53,6,68,6,210,6,14,32,60,0,60,0,60,0,240,253,14,32,38,0,53,6,69,6,14,32,61,0,33,252,14,32,61,0,179,252,14,32,38,0,53,6,69,6,69,6,14,32,61,0,102,253,14,32,61,0,197,253,14,32,38,0,53,6,73,6,14,32,61,0,5,253,14,32,61,0,33,253,14,32,38,0,53,6,74,6,14,32,61,0,6,253,14,32,61,0,34,253,14,32,38,0,54,6,14,32,61,0,189,254,14,32,61,0,190,254,14,32,61,0,191,254,14,32,61,0,192,254,14,32,38,0,54,6,44,6,14,32,61,0,34,252,14,32,61,0,180,252,14,32,38,0,54,6,45,6,14,32,61,0,35,252,14,32,61,0,181,252,14,32,38,0,54,6,45,6,73,6,14,32,61,0,110,253,14,32,38,0,54,6,45,6,74,6,14,32,61,0,171,253,14,32,38,0,54,6,46,6,14,32,61,0,36,252,14,32,61,0,182,252,14,32,38,0,54,6,46,6,69,6,14,32,61,0,111,253,14,32,61,0,112,253,14,32,38,0,54,6,49,6,14,32,61,0,16,253,14,32,61,0,44,253,14,32,38,0,54,6,69,6,14,32,61,0,37,252,14,32,61,0,183,252,14,32,38,0,54,6,73,6,14,32,61,0,7,253,14,32,61,0,35,253,14,32,38,0,54,6,74,6,14,32,61,0,8,253,14,32,61,0,36,253,14,32,38,0,55,6,14,32,61,0,193,254,14,32,61,0,194,254,14,32,61,0,195,254,14,32,61,0,196,254,14,32,38,0,55,6,45,6,14,32,61,0,38,252,14,32,61,0,184,252,14,32,38,0,55,6,69,6,14,32,61,0,39,252,14,32,61,0,51,253,14,32,61,0,58,253,14,32,38,0,55,6,69,6,45,6,14,32,61,0,113,253,14,32,61,0,114,253,14,32,38,0,55,6,69,6,69,6,14,32,61,0,115,253,14,32,38,0,55,6,69,6,74,6,14,32,61,0,116,253,14,32,38,0,55,6,73,6,14,32,61,0,245,252,14,32,61,0,17,253,14,32,38,0,55,6,74,6,14,32,61,0,246,252,14,32,61,0,18,253,14,32,38,0,56,6,14,32,61,0,197,254,14,32,61,0,198,254,14,32,61,0,199,254,14,32,61,0,200,254,14,32,38,0,56,6,69,6,14,32,61,0,40,252,14,32,61,0,185,252,14,32,61,0,59,253,14,32,38,0,57,6,14,32,61,0,201,254,14,32,61,0,202,254,14,32,61,0,203,254,14,32,61,0,204,254,14,32,38,0,57,6,44,6,14,32,61,0,41,252,14,32,61,0,186,252,14,32,38,0,57,6,44,6,69,6,14,32,61,0,117,253,14,32,61,0,196,253,14,32,38,0,57,6,68,6,74,6,71,6,14,32,60,0,60,0,60,0,247,253,14,32,38,0,57,6,69,6,14,32,61,0,42,252,14,32,61,0,187,252,14,32,38,0,57,6,69,6,69,6,14,32,61,0,118,253,14,32,61,0,119,253,14,32,38,0,57,6,69,6,73,6,14,32,61,0,120,253,14,32,38,0,57,6,69,6,74,6,14,32,61,0,182,253,14,32,38,0,57,6,73,6,14,32,61,0,247,252,14,32,61,0,19,253,14,32,38,0,57,6,74,6,14,32,61,0,248,252,14,32,61,0,20,253,14,32,38,0,58,6,14,32,61,0,205,254,14,32,61,0,206,254,14,32,61,0,207,254,14,32,61,0,208,254,14,32,38,0,58,6,44,6,14,32,61,0,43,252,14,32,61,0,188,252,14,32,38,0,58,6,69,6,14,32,61,0,44,252,14,32,61,0,189,252,14,32,38,0,58,6,69,6,69,6,14,32,61,0,121,253,14,32,38,0,58,6,69,6,73,6,14,32,61,0,123,253,14,32,38,0,58,6,69,6,74,6,14,32,61,0,122,253,14,32,38,0,58,6,73,6,14,32,61,0,249,252,14,32,61,0,21,253,14,32,38,0,58,6,74,6,14,32,61,0,250,252,14,32,61,0,22,253,14,32,38,0,64,6,75,6,14,32,61,0,113,254,14,32,38,0,64,6,78,6,14,32,61,0,119,254,14,32,38,0,64,6,78,6,81,6,14,32,61,0,242,252,14,32,38,0,64,6,79,6,14,32,61,0,121,254,14,32,38,0,64,6,79,6,81,6,14,32,61,0,243,252,14,32,38,0,64,6,80,6,14,32,61,0,123,254,14,32,38,0,64,6,80,6,81,6,14,32,61,0,244,252,14,32,38,0,64,6,81,6,14,32,61,0,125,254,14,32,38,0,64,6,82,6,14,32,61,0,127,254,14,32,38,0,65,6,14,32,61,0,209,254,14,32,61,0,210,254,14,32,61,0,211,254,14,32,61,0,212,254,14,32,38,0,65,6,44,6,14,32,61,0,45,252,14,32,61,0,190,252,14,32,38,0,65,6,45,6,14,32,61,0,46,252,14,32,61,0,191,252,14,32,38,0,65,6,46,6,14,32,61,0,47,252,14,32,61,0,192,252,14,32,38,0,65,6,46,6,69,6,14,32,61,0,124,253,14,32,61,0,125,253,14,32,38,0,65,6,69,6,14,32,61,0,48,252,14,32,61,0,193,252,14,32,38,0,65,6,69,6,74,6,14,32,61,0,193,253,14,32,38,0,65,6,73,6,14,32,61,0,49,252,14,32,61,0,124,252,14,32,38,0,65,6,74,6,14,32,61,0,50,252,14,32,61,0,125,252,14,32,38,0,66,6,14,32,61,0,213,254,14,32,61,0,214,254,14,32,61,0,215,254,14,32,61,0,216,254,14,32,38,0,66,6,45,6,14,32,61,0,51,252,14,32,61,0,194,252,14,32,38,0,66,6,68,6,210,6,14,32,60,0,60,0,60,0,241,253,14,32,38,0,66,6,69,6,14,32,61,0,52,252,14,32,61,0,195,252,14,32,38,0,66,6,69,6,45,6,14,32,61,0,126,253,14,32,61,0,180,253,14,32,38,0,66,6,69,6,69,6,14,32,61,0,127,253,14,32,38,0,66,6,69,6,74,6,14,32,61,0,178,253,14,32,38,0,66,6,73,6,14,32,61,0,53,252,14,32,61,0,126,252,14,32,38,0,66,6,74,6,14,32,61,0,54,252,14,32,61,0,127,252,14,32,38,0,67,6,14,32,61,0,217,254,14,32,61,0,218,254,14,32,61,0,219,254,14,32,61,0,220,254,14,32,38,0,67,6,39,6,14,32,61,0,55,252,14,32,61,0,128,252,14,32,38,0,67,6,44,6,14,32,61,0,56,252,14,32,61,0,196,252,14,32,38,0,67,6,45,6,14,32,61,0,57,252,14,32,61,0,197,252,14,32,38,0,67,6,46,6,14,32,61,0,58,252,14,32,61,0,198,252,14,32,38,0,67,6,68,6,14,32,61,0,59,252,14,32,61,0,129,252,14,32,61,0,199,252,14,32,61,0,235,252,14,32,38,0,67,6,69,6,14,32,61,0,60,252,14,32,61,0,130,252,14,32,61,0,200,252,14,32,61,0,236,252,14,32,38,0,67,6,69,6,69,6,14,32,61,0,187,253,14,32,61,0,195,253,14,32,38,0,67,6,69,6,74,6,14,32,61,0,183,253,14,32,38,0,67,6,73,6,14,32,61,0,61,252,14,32,61,0,131,252,14,32,38,0,67,6,74,6,14,32,61,0,62,252,14,32,61,0,132,252,14,32,38,0,68,6,14,32,61,0,221,254,14,32,61,0,222,254,14,32,61,0,223,254,14,32,61,0,224,254,14,32,38,0,68,6,39,6,14,32,61,0,251,254,14,32,61,0,252,254,14,32,38,0,68,6,34,6,14,32,61,0,245,254,14,32,61,0,246,254,14,32,38,0,68,6,35,6,14,32,61,0,247,254,14,32,61,0,248,254,14,32,38,0,68,6,37,6,14,32,61,0,249,254,14,32,61,0,250,254,14,32,38,0,68,6,44,6,14,32,61,0,63,252,14,32,61,0,201,252,14,32,38,0,68,6,44,6,44,6,14,32,61,0,131,253,14,32,61,0,132,253,14,32,38,0,68,6,44,6,69,6,14,32,61,0,186,253,14,32,61,0,188,253,14,32,38,0,68,6,44,6,74,6,14,32,61,0,172,253,14,32,38,0,68,6,45,6,14,32,61,0,64,252,14,32,61,0,202,252,14,32,38,0,68,6,45,6,69,6,14,32,61,0,128,253,14,32,61,0,181,253,14,32,38,0,68,6,45,6,73,6,14,32,61,0,130,253,14,32,38,0,68,6,45,6,74,6,14,32,61,0,129,253,14,32,38,0,68,6,46,6,14,32,61,0,65,252,14,32,61,0,203,252,14,32,38,0,68,6,46,6,69,6,14,32,61,0,133,253,14,32,61,0,134,253,14,32,38,0,68,6,69,6,14,32,61,0,66,252,14,32,61,0,133,252,14,32,61,0,204,252,14,32,61,0,237,252,14,32,38,0,68,6,69,6,45,6,14,32,61,0,135,253,14,32,61,0,136,253,14,32,38,0,68,6,69,6,74,6,14,32,61,0,173,253,14,32,38,0,68,6,71,6,14,32,61,0,205,252,14,32,38,0,68,6,73,6,14,32,61,0,67,252,14,32,61,0,134,252,14,32,38,0,68,6,74,6,14,32,61,0,68,252,14,32,61,0,135,252,14,32,38,0,69,6,14,32,61,0,225,254,14,32,61,0,226,254,14,32,61,0,227,254,14,32,61,0,228,254,14,32,38,0,69,6,39,6,14,32,61,0,136,252,14,32,38,0,69,6,44,6,14,32,61,0,69,252,14,32,61,0,206,252,14,32,38,0,69,6,44,6,45,6,14,32,61,0,140,253,14,32,38,0,69,6,44,6,46,6,14,32,61,0,146,253,14,32,38,0,69,6,44,6,69,6,14,32,61,0,141,253,14,32,38,0,69,6,44,6,74,6,14,32,61,0,192,253,14,32,38,0,69,6,45,6,14,32,61,0,70,252,14,32,61,0,207,252,14,32,38,0,69,6,45,6,44,6,14,32,61,0,137,253,14,32,38,0,69,6,45,6,69,6,14,32,61,0,138,253,14,32,38,0,69,6,45,6,69,6,47,6,14,32,60,0,60,0,60,0,244,253,14,32,38,0,69,6,45,6,74,6,14,32,61,0,139,253,14,32,38,0,69,6,46,6,14,32,61,0,71,252,14,32,61,0,208,252,14,32,38,0,69,6,46,6,44,6,14,32,61,0,142,253,14,32,38,0,69,6,46,6,69,6,14,32,61,0,143,253,14,32,38,0,69,6,46,6,74,6,14,32,61,0,185,253,14,32,38,0,69,6,69,6,14,32,61,0,72,252,14,32,61,0,137,252,14,32,61,0,209,252,14,32,38,0,69,6,69,6,74,6,14,32,61,0,177,253,14,32,38,0,69,6,73,6,14,32,61,0,73,252,14,32,38,0,69,6,74,6,14,32,61,0,74,252,14,32,38,0,70,6,14,32,61,0,229,254,14,32,61,0,230,254,14,32,61,0,231,254,14,32,61,0,232,254,14,32,38,0,70,6,44,6,14,32,61,0,75,252,14,32,61,0,210,252,14,32,38,0,70,6,44,6,45,6,14,32,61,0,184,253,14,32,61,0,189,253,14,32,38,0,70,6,44,6,69,6,14,32,61,0,151,253,14,32,61,0,152,253,14,32,38,0,70,6,44,6,73,6,14,32,61,0,153,253,14,32,38,0,70,6,44,6,74,6,14,32,61,0,199,253,14,32,38,0,70,6,45,6,14,32,61,0,76,252,14,32,61,0,211,252,14,32,38,0,70,6,45,6,69,6,14,32,61,0,149,253,14,32,38,0,70,6,45,6,73,6,14,32,61,0,150,253,14,32,38,0,70,6,45,6,74,6,14,32,61,0,179,253,14,32,38,0,70,6,46,6,14,32,61,0,77,252,14,32,61,0,212,252,14,32,38,0,70,6,49,6,14,32,61,0,138,252,14,32,38,0,70,6,50,6,14,32,61,0,139,252,14,32,38,0,70,6,69,6,14,32,61,0,78,252,14,32,61,0,140,252,14,32,61,0,213,252,14,32,61,0,238,252,14,32,38,0,70,6,69,6,73,6,14,32,61,0,155,253,14,32,38,0,70,6,69,6,74,6,14,32,61,0,154,253,14,32,38,0,70,6,70,6,14,32,61,0,141,252,14,32,38,0,70,6,71,6,14,32,61,0,214,252,14,32,61,0,239,252,14,32,38,0,70,6,73,6,14,32,61,0,79,252,14,32,61,0,142,252,14,32,38,0,70,6,74,6,14,32,61,0,80,252,14,32,61,0,143,252,14,32,38,0,71,6,14,32,61,0,233,254,14,32,61,0,234,254,14,32,61,0,235,254,14,32,61,0,236,254,14,32,38,0,71,6,44,6,14,32,61,0,81,252,14,32,61,0,215,252,14,32,38,0,71,6,69,6,14,32,61,0,82,252,14,32,61,0,216,252,14,32,38,0,71,6,69,6,44,6,14,32,61,0,147,253,14,32,38,0,71,6,69,6,69,6,14,32,61,0,148,253,14,32,38,0,71,6,73,6,14,32,61,0,83,252,14,32,38,0,71,6,74,6,14,32,61,0,84,252,14,32,38,0,71,6,112,6,14,32,61,0,217,252,14,32,38,0,72,6,14,32,61,0,237,254,14,32,61,0,238,254,14,32,38,0,72,6,51,6,68,6,69,6,14,32,60,0,60,0,60,0,248,253,14,32,38,0,36,6,14,32,61,0,133,254,14,32,61,0,134,254,14,32,38,0,73,6,14,32,61,0,232,251,14,32,61,0,233,251,14,32,61,0,239,254,14,32,61,0,240,254,14,32,38,0,73,6,112,6,14,32,61,0,93,252,14,32,61,0,144,252,14,32,38,0,74,6,14,32,61,0,241,254,14,32,61,0,242,254,14,32,61,0,243,254,14,32,61,0,244,254,14,32,38,0,74,6,44,6,14,32,61,0,85,252,14,32,61,0,218,252,14,32,38,0,74,6,44,6,74,6,14,32,61,0,175,253,14,32,38,0,74,6,45,6,14,32,61,0,86,252,14,32,61,0,219,252,14,32,38,0,74,6,45,6,74,6,14,32,61,0,174,253,14,32,38,0,74,6,46,6,14,32,61,0,87,252,14,32,61,0,220,252,14,32,38,0,74,6,49,6,14,32,61,0,145,252,14,32,38,0,74,6,50,6,14,32,61,0,146,252,14,32,38,0,74,6,69,6,14,32,61,0,88,252,14,32,61,0,147,252,14,32,61,0,221,252,14,32,61,0,240,252,14,32,38,0,74,6,69,6,69,6,14,32,61,0,156,253,14,32,61,0,157,253,14,32,38,0,74,6,69,6,74,6,14,32,61,0,176,253,14,32,38,0,74,6,70,6,14,32,61,0,148,252,14,32,38,0,74,6,71,6,14,32,61,0,222,252,14,32,61,0,241,252,14,32,38,0,74,6,73,6,14,32,61,0,89,252,14,32,61,0,149,252,14,32,38,0,74,6,74,6,14,32,61,0,90,252,14,32,61,0,150,252,14,32,38,0,38,6,14,32,61,0,137,254,14,32,61,0,138,254,14,32,61,0,139,254,14,32,61,0,140,254,14,32,38,0,38,6,39,6,14,32,61,0,234,251,14,32,61,0,235,251,14,32,38,0,38,6,44,6,14,32,61,0,0,252,14,32,61,0,151,252,14,32,38,0,38,6,45,6,14,32,61,0,1,252,14,32,61,0,152,252,14,32,38,0,38,6,46,6,14,32,61,0,153,252,14,32,38,0,38,6,49,6,14,32,61,0,100,252,14,32,38,0,38,6,50,6,14,32,61,0,101,252,14,32,38,0,38,6,69,6,14,32,61,0,2,252,14,32,61,0,102,252,14,32,61,0,154,252,14,32,61,0,223,252,14,32,38,0,38,6,70,6,14,32,61,0,103,252,14,32,38,0,38,6,71,6,14,32,61,0,155,252,14,32,61,0,224,252,14,32,38,0,38,6,72,6,14,32,61,0,238,251,14,32,61,0,239,251,14,32,38,0,38,6,73,6,14,32,61,0,249,251,14,32,61,0,250,251,14,32,61,0,251,251,14,32,61,0,3,252,14,32,61,0,104,252,14,32,38,0,38,6,74,6,14,32,61,0,4,252,14,32,61,0,105,252,14,32,38,0,38,6,198,6,14,32,61,0,242,251,14,32,61,0,243,251,14,32,38,0,38,6,199,6,14,32,61,0,240,251,14,32,61,0,241,251,14,32,38,0,38,6,200,6,14,32,61,0,244,251,14,32,61,0,245,251,14,32,38,0,38,6,208,6,14,32,61,0,246,251,14,32,61,0,247,251,14,32,61,0,248,251,14,32,38,0,38,6,213,6,14,32,61,0,236,251,14,32,61,0,237,251,14,32,38,0,75,6,14,32,61,0,112,254,14,32,38,0,76,6,14,32,61,0,114,254,14,32,38,0,76,6,81,6,14,32,61,0,94,252,14,32,38,0,77,6,14,32,61,0,116,254,14,32,38,0,77,6,81,6,14,32,61,0,95,252,14,32,38,0,78,6,14,32,61,0,118,254,14,32,38,0,78,6,81,6,14,32,61,0,96,252,14,32,38,0,79,6,14,32,61,0,120,254,14,32,38,0,79,6,81,6,14,32,61,0,97,252,14,32,38,0,80,6,14,32,61,0,122,254,14,32,38,0,80,6,81,6,14,32,61,0,98,252,14,32,38,0,81,6,14,32,61,0,124,254,14,32,38,0,81,6,112,6,14,32,61,0,99,252,14,32,38,0,82,6,14,32,61,0,126,254,14,32,38,0,113,6,14,32,61,0,80,251,14,32,61,0,81,251,14,32,38,0,121,6,14,32,61,0,102,251,14,32,61,0,103,251,14,32,61,0,104,251,14,32,61,0,105,251,14,32,38,0,122,6,14,32,61,0,94,251,14,32,61,0,95,251,14,32,61,0,96,251,14,32,61,0,97,251,14,32,38,0,123,6,14,32,61,0,82,251,14,32,61,0,83,251,14,32,61,0,84,251,14,32,61,0,85,251,14,32,38,0,126,6,14,32,61,0,86,251,14,32,61,0,87,251,14,32,61,0,88,251,14,32,61,0,89,251,14,32,38,0,127,6,14,32,61,0,98,251,14,32,61,0,99,251,14,32,61,0,100,251,14,32,61,0,101,251,14,32,38,0,128,6,14,32,61,0,90,251,14,32,61,0,91,251,14,32,61,0,92,251,14,32,61,0,93,251,14,32,38,0,131,6,14,32,61,0,118,251,14,32,61,0,119,251,14,32,61,0,120,251,14,32,61,0,121,251,14,32,38,0,132,6,14,32,61,0,114,251,14,32,61,0,115,251,14,32,61,0,116,251,14,32,61,0,117,251,14,32,38,0,134,6,14,32,61,0,122,251,14,32,61,0,123,251,14,32,61,0,124,251,14,32,61,0,125,251,14,32,38,0,135,6,14,32,61,0,126,251,14,32,61,0,127,251,14,32,61,0,128,251,14,32,61,0,129,251,14,32,38,0,136,6,14,32,61,0,136,251,14,32,61,0,137,251,14,32,38,0,140,6,14,32,61,0,132,251,14,32,61,0,133,251,14,32,38,0,141,6,14,32,61,0,130,251,14,32,61,0,131,251,14,32,38,0,142,6,14,32,61,0,134,251,14,32,61,0,135,251,14,32,38,0,145,6,14,32,61,0,140,251,14,32,61,0,141,251,14,32,38,0,152,6,14,32,61,0,138,251,14,32,61,0,139,251,14,32,38,0,164,6,14,32,61,0,106,251,14,32,61,0,107,251,14,32,61,0,108,251,14,32,61,0,109,251,14,32,38,0,166,6,14,32,61,0,110,251,14,32,61,0,111,251,14,32,61,0,112,251,14,32,61,0,113,251,14,32,38,0,169,6,14,32,61,0,142,251,14,32,61,0,143,251,14,32,61,0,144,251,14,32,61,0,145,251,14,32,38,0,173,6,14,32,61,0,211,251,14,32,61,0,212,251,14,32,61,0,213,251,14,32,61,0,214,251,14,32,38,0,175,6,14,32,61,0,146,251,14,32,61,0,147,251,14,32,61,0,148,251,14,32,61,0,149,251,14,32,38,0,177,6,14,32,61,0,154,251,14,32,61,0,155,251,14,32,61,0,156,251,14,32,61,0,157,251,14,32,38,0,179,6,14,32,61,0,150,251,14,32,61,0,151,251,14,32,61,0,152,251,14,32,61,0,153,251,14,32,38,0,186,6,14,32,61,0,158,251,14,32,61,0,159,251,14,32,38,0,187,6,14,32,61,0,160,251,14,32,61,0,161,251,14,32,61,0,162,251,14,32,61,0,163,251,14,32,38,0,190,6,14,32,61,0,170,251,14,32,61,0,171,251,14,32,61,0,172,251,14,32,61,0,173,251,14,32,38,0,193,6,14,32,61,0,166,251,14,32,61,0,167,251,14,32,61,0,168,251,14,32,61,0,169,251,14,32,38,0,197,6,14,32,61,0,224,251,14,32,61,0,225,251,14,32,38,0,198,6,14,32,61,0,217,251,14,32,61,0,218,251,14,32,38,0,199,6,14,32,61,0,215,251,14,32,61,0,216,251,14,32,38,0,199,6,116,6,14,32,61,0,221,251,14,32,38,0,200,6,14,32,61,0,219,251,14,32,61,0,220,251,14,32,38,0,201,6,14,32,61,0,226,251,14,32,61,0,227,251,14,32,38,0,203,6,14,32,61,0,222,251,14,32,61,0,223,251,14,32,38,0,204,6,14,32,61,0,252,251,14,32,61,0,253,251,14,32,61,0,254,251,14,32,61,0,255,251,14,32,38,0,208,6,14,32,61,0,228,251,14,32,61,0,229,251,14,32,61,0,230,251,14,32,61,0,231,251,14,32,38,0,210,6,14,32,61,0,174,251,14,32,61,0,175,251,14,32,38,0,211,6,14,32,61,0,176,251,14,32,61,0,177,251,14,32,38,0,192,6,14,32,61,0,164,251,14,32,61,0,165,251,0,0,170,170,170,170,170,170,170,170,170,170,170,170,84,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,248,27,0,0,248,27,0,0,248,27,0,0,248,27,0,0,60,28,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,163,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,118,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,124,0,48,0,48,0,127,0,48,0,135,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,140,0,48,0,48,0,146,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,42,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,70,238,102,7,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,11,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,10,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,42,102,6,70,42,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,70,238,102,8,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,67,0,50,0,59,0,51,8,0,16,4,0,0,96,1,0,0,96,170,170,170,170,84,53,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,144,40,0,0,144,40,0,0,56,42,0,0,56,42,0,0,248,52,0,0,248,52,0,0,60,53,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,108,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,48,0,56,0,107,0,115,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,138,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,131,0,48,0,48,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,154,0,162,0,170,0,175,0,183,0,191,0,199,0,207,0,215,0,223,0,231,0,239,0,247,0,255,0,7,1,15,1,23,1,31,1,39,1,47,1,51,1,48,0,48,0,48,0,59,1,67,1,75,1,83,1,91,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,192,0,172,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,84,0,202,225,84,0,202,2,85,0,202,35,85,0,202,68,85,0,202,101,85,0,202,134,85,0,202,167,85,0,202,200,85,0,202,233,85,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,84,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,66,84,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,84,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,5,70,6,102,5,71,6,102,5,72,6,102,5,73,6,102,201,6,0,0,192,0,0,0,5,2,42,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,1,0,201,134,2,0,201,102,3,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,192,0,0,0,192,0,0,0,198,33,1,0,198,65,1,0,198,97,1,0,198,129,1,0,198,161,1,0,198,193,1,0,198,225,1,0,198,1,2,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,191,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,2,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,2,0,192,0,0,0,198,129,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,2,0,198,193,2,0,198,225,2,0,198,1,3,0,198,33,3,0,198,65,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,3,0,198,129,3,0,198,161,3,0,192,0,0,0,198,193,3,0,198,225,3,0,198,1,4,0,198,33,4,0,198,65,4,0,198,97,4,0,190,0,0,0,198,129,4,0,198,161,4,0,198,193,4,0,198,225,4,0,198,1,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,102,5,5,14,102,5,5,32,102,5,5,32,102,5,5,32,102,5,5,32,102,5,5,34,102,5,5,34,102,5,5,34,102,5,5,34,102,5,5,36,102,5,5,36,102,5,5,36,102,5,5,36,102,5,5,48,102,5,5,48,102,5,5,48,102,5,5,48,102,5,5,54,102,5,5,54,102,5,5,54,102,5,5,54,102,5,5,46,102,5,5,46,102,5,5,46,102,5,5,46,102,193,30,176,102,193,30,176,102,193,30,176,102,193,30,176,102,193,51,176,102,193,51,176,102,193,51,176,102,193,51,176,102,5,5,62,102,5,5,62,102,5,5,62,102,5,5,62,102,5,5,60,102,5,5,60,102,5,5,60,102,5,5,60,102,5,5,64,102,5,5,64,102,5,5,64,102,5,5,64,102,5,5,68,102,5,5,68,102,5,5,68,102,5,5,68,102,5,5,98,102,5,5,98,102,5,5,96,102,5,5,96,102,5,5,102,102,5,5,102,102,5,5,88,102,5,5,88,102,5,5,128,102,5,5,128,102,5,5,114,102,5,5,114,102,5,5,184,102,5,5,184,102,5,5,184,102,5,5,184,102,5,5,192,102,5,5,192,102,5,5,192,102,5,5,192,102,193,30,194,102,193,30,194,102,193,30,194,102,193,30,194,102,193,16,194,102,193,16,194,102,193,16,194,102,193,16,194,102,5,5,206,102,5,5,206,102,193,9,208,102,193,9,208,102,193,9,208,102,193,9,208,102,197,98,0,0,197,98,0,0,5,5,218,102,5,5,218,102,5,5,218,102,5,5,218,102,5,5,216,102,5,5,216,102,5,5,216,102,5,5,216,102,5,5,250,102,5,5,250,102,197,162,0,0,197,162,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,16,190,102,193,16,190,102,193,16,190,102,193,16,190,102,5,5,228,102,5,5,228,102,193,9,226,102,193,9,226,102,5,5,230,102,5,5,230,102,197,226,0,0,193,9,234,102,193,9,234,102,193,2,226,102,193,2,226,102,5,5,232,102,5,5,232,102,5,5,246,102,5,5,246,102,5,5,246,102,5,5,246,102,5,3,238,102,5,3,238,102,197,34,1,0,197,34,1,0,197,98,1,0,197,98,1,0,197,162,1,0,197,162,1,0,197,226,1,0,197,226,1,0,197,34,2,0,197,34,2,0,197,98,2,0,197,98,2,0,197,162,2,0,197,162,2,0,197,162,2,0,197,226,2,0,197,226,2,0,197,226,2,0,5,2,238,102,5,2,238,102,5,2,238,102,5,2,238,102,197,34,3,0,197,98,3,0,197,162,3,0,197,226,2,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,197,98,8,0,197,66,8,0,197,162,8,0,197,226,8,0,197,34,9,0,197,98,9,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,197,130,8,0,197,194,8,0,197,34,20,0,197,98,20,0,197,162,20,0,197,226,20,0,197,34,21,0,197,98,21,0,197,162,21,0,197,226,21,0,197,34,22,0,197,98,22,0,197,162,22,0,197,226,22,0,197,34,23,0,197,2,8,0,197,98,23,0,197,162,23,0,197,194,19,0,197,226,23,0,197,66,23,0,197,34,24,0,197,98,24,0,197,162,24,0,198,34,5,0,198,98,5,0,198,162,5,0,198,226,5,0,198,162,0,0,198,34,6,0,197,226,24,0,197,34,25,0,197,162,3,0,197,98,25,0,197,226,2,0,197,226,3,0,197,162,25,0,197,226,25,0,197,226,4,0,197,34,26,0,197,34,5,0,197,98,5,0,197,98,26,0,197,162,26,0,197,98,6,0,197,226,26,0,197,162,6,0,197,226,6,0,197,34,27,0,197,98,27,0,197,98,7,0,197,162,27,0,197,162,7,0,197,226,7,0,197,226,14,0,197,34,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,27,0,197,34,20,0,197,34,28,0,197,98,28,0,197,162,21,0,197,162,28,0,197,226,21,0,197,34,22,0,197,162,24,0,197,226,28,0,197,34,29,0,197,194,19,0,197,194,20,0,197,226,23,0,197,66,23,0,197,34,3,0,197,98,3,0,197,98,29,0,197,162,3,0,197,162,29,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,226,29,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,34,30,0,197,98,7,0,197,34,8,0,197,98,8,0,197,66,8,0,197,162,8,0,197,226,8,0,197,98,9,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,98,30,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,98,15,0,197,162,15,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,162,30,0,197,226,19,0,197,130,8,0,197,194,8,0,197,34,20,0,197,226,20,0,197,34,21,0,197,98,21,0,197,162,21,0,197,226,30,0,197,98,22,0,197,162,22,0,197,34,31,0,197,2,8,0,197,98,23,0,197,162,23,0,197,194,19,0,197,66,22,0,197,162,3,0,197,162,29,0,197,226,4,0,197,226,29,0,197,98,6,0,197,34,30,0,197,98,7,0,197,98,31,0,197,98,10,0,197,162,31,0,197,226,31,0,197,34,32,0,197,98,17,0,197,162,17,0,197,34,19,0,197,162,21,0,197,226,30,0,197,194,19,0,197,66,22,0,198,162,5,0,198,226,5,0,198,162,0,0,197,98,32,0,197,162,32,0,197,226,32,0,197,34,33,0,197,98,33,0,197,162,33,0,197,226,33,0,197,34,34,0,197,98,34,0,197,162,34,0,197,226,34,0,197,130,23,0,197,34,35,0,197,98,35,0,197,162,35,0,197,194,23,0,197,226,35,0,197,34,36,0,197,98,36,0,197,162,36,0,197,226,36,0,197,34,37,0,197,98,37,0,197,226,31,0,197,162,37,0,197,226,37,0,197,34,38,0,197,98,38,0,197,98,32,0,197,162,32,0,197,226,32,0,197,34,33,0,197,98,33,0,197,162,33,0,197,226,33,0,197,34,34,0,197,98,34,0,197,162,34,0,197,226,34,0,197,130,23,0,197,34,35,0,197,98,35,0,197,162,35,0,197,194,23,0,197,226,35,0,197,34,36,0,197,98,36,0,197,162,36,0,197,226,36,0,197,34,37,0,197,98,37,0,197,226,31,0,197,162,37,0,197,226,37,0,197,34,38,0,197,98,38,0,197,226,36,0,197,34,37,0,197,98,37,0,197,226,31,0,197,162,31,0,197,34,32,0,197,98,12,0,197,162,9,0,197,226,9,0,197,34,10,0,197,226,36,0,197,34,37,0,197,98,37,0,197,98,12,0,197,162,12,0,198,98,6,0,198,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,38,0,197,3,39,0,197,3,39,0,197,99,39,0,197,195,39,0,197,35,40,0,197,131,40,0,197,227,40,0,197,99,8,0,197,99,8,0,197,67,41,0,197,163,41,0,197,3,42,0,197,99,42,0,197,195,42,0,197,35,43,0,197,35,43,0,197,131,43,0,197,227,43,0,197,227,43,0,197,67,44,0,197,67,44,0,197,163,44,0,197,3,45,0,197,3,45,0,197,99,45,0,197,195,45,0,197,195,45,0,197,35,46,0,197,35,46,0,197,131,46,0,197,227,46,0,197,227,46,0,197,67,47,0,197,67,47,0,197,163,47,0,197,3,48,0,197,99,48,0,197,195,48,0,197,195,48,0,197,35,49,0,197,131,49,0,197,227,49,0,197,67,50,0,197,163,50,0,197,163,50,0,197,3,51,0,197,99,51,0,197,195,51,0,197,35,52,0,197,131,52,0,197,227,52,0,197,227,52,0,197,67,53,0,197,67,53,0,197,163,53,0,197,163,53,0,197,3,54,0,197,131,8,0,197,99,54,0,197,195,54,0,197,227,19,0,197,195,8,0,197,35,55,0,192,0,0,0,192,0,0,0,197,131,55,0,197,227,55,0,197,67,56,0,197,163,56,0,197,3,57,0,197,99,57,0,197,99,57,0,197,195,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,197,227,61,0,197,67,62,0,197,163,62,0,197,3,63,0,197,99,63,0,197,195,63,0,197,35,64,0,197,131,64,0,197,227,64,0,197,99,23,0,197,67,65,0,197,163,65,0,197,3,66,0,197,99,66,0,197,195,66,0,197,3,51,0,197,195,51,0,197,35,67,0,197,131,67,0,197,227,67,0,197,67,68,0,197,163,68,0,197,3,69,0,197,163,68,0,197,227,67,0,197,99,69,0,197,195,69,0,197,35,70,0,197,131,70,0,197,227,70,0,197,3,69,0,197,99,48,0,197,163,44,0,197,67,71,0,197,163,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,72,0,197,99,72,0,197,196,72,0,197,68,73,0,197,196,73,0,197,68,74,0,197,196,74,0,197,68,75,0,197,196,75,0,197,67,76,0,197,178,76,0,197,232,78,0,197,228,79,0,197,118,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,198,1,0,0,198,33,0,0,192,0,0,0,198,65,0,0,192,0,0,0,198,97,0,0,198,97,0,0,198,129,0,0,198,129,0,0,198,161,0,0,198,161,0,0,198,193,0,0,198,193,0,0,198,225,0,0,198,225,0,0,5,5,6,102,197,34,0,0,197,34,0,0,5,70,6,102,5,70,6,102,5,71,6,102,5,71,6,102,5,72,6,102,5,72,6,102,5,73,6,102,5,73,6,102,5,73,6,102,5,73,6,102,5,75,6,102,5,75,6,102,5,5,30,102,5,5,30,102,5,5,30,102,5,5,30,102,5,2,42,102,5,2,42,102,5,5,42,102,5,5,42,102,5,5,42,102,5,5,42,102,5,5,44,102,5,5,44,102,5,5,44,102,5,5,44,102,5,5,58,102,5,5,58,102,5,5,58,102,5,5,58,102,5,5,72,102,5,5,72,102,5,5,72,102,5,5,72,102,5,5,74,102,5,5,74,102,5,5,74,102,5,5,74,102,5,5,84,102,5,5,84,102,5,5,86,102,5,5,86,102,5,5,110,102,5,5,110,102,5,5,112,102,5,5,112,102,5,5,134,102,5,5,134,102,5,5,134,102,5,5,134,102,5,5,136,102,5,5,136,102,5,5,136,102,5,5,136,102,5,5,146,102,5,5,146,102,5,5,146,102,5,5,146,102,5,5,148,102,5,5,148,102,5,5,148,102,5,5,148,102,5,5,158,102,5,5,158,102,5,5,158,102,5,5,158,102,5,5,160,102,5,5,160,102,5,5,160,102,5,5,160,102,5,5,166,102,5,5,166,102,5,5,166,102,5,5,166,102,5,5,168,102,5,5,168,102,5,5,168,102,5,5,168,102,5,5,174,102,5,5,174,102,5,5,174,102,5,5,174,102,5,5,178,102,5,5,178,102,5,5,178,102,5,5,178,102,5,5,182,102,5,5,182,102,5,5,182,102,5,5,182,102,5,5,196,102,5,5,196,102,5,5,196,102,5,5,196,102,5,5,200,102,5,5,200,102,5,5,200,102,5,5,200,102,5,5,204,102,5,5,204,102,5,5,204,102,5,5,204,102,5,5,214,102,5,5,214,102,5,5,214,102,5,5,214,102,5,5,222,102,5,5,222,102,5,3,238,102,5,3,238,102,5,5,238,102,5,5,238,102,5,5,238,102,5,5,238,102,197,35,83,0,197,35,83,0,197,130,83,0,197,130,83,0,197,194,83,0,197,194,83,0,197,98,79,0,197,98,79,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,3,189,0,0,0,0,0,0,6,189,0,0,0,0,0,0,9,189,0,0,0,0,0,0,12,189,0,0,0,0,0,0,16,189,0,0,0,0,0,0,19,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,23,189,0,0,0,0,0,0,24,189,0,0,0,0,0,0,28,189,0,0,0,0,0,0,29,189,0,0,0,0,0,0,30,189,0,0,0,0,0,0,32,189,0,0,0,0,0,0,33,189,0,0,0,0,0,0,34,189,0,0,0,0,0,0,35,189,0,0,0,0,0,0,36,189,0,0,0,0,0,0,37,189,0,0,0,0,0,0,27,189,0,0,0,0,0,0,25,189,0,0,0,0,0,0,26,189,0,0,0,0,0,0,13,189,0,0,0,0,0,0,17,189,0,0,0,0,0,0,20,189,0,0,0,0,0,0,5,189,0,0,0,0,0,0,8,189,0,0,0,0,0,0,11,189,0,0,0,0,0,0,4,189,0,0,0,0,0,0,7,189,0,0,0,0,0,0,10,189,0,0,0,0,0,0,14,189,0,0,0,0,0,0,15,189,0,0,0,0,0,0,21,189,0,0,0,0,0,0,38,189,0,0,0,0,0,0,39,189,0,0,0,0,0,0,43,189,0,0,0,0,0,0,41,189,0,0,0,0,0,0,42,189,0,0,0,0,0,0,40,189,0,0,0,0,0,0,18,189,0,0,0,0,0,0,31,189,0,0,0,0,0,0,6,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,9,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,12,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,16,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,0,191,0,0,0,0,0,0,0,5,0,75,0,0,6,102,3,189,0,0,0,0,0,0,0,0,0,0,5,5,6,102,5,76,6,102,193,16,220,102,194,5,128,232,5,5,250,102,194,5,128,232,5,5,228,102,32,5,6,102,5,73,6,102,5,75,6,102,5,73,6,102,193,16,220,102,5,73,6,102,5,5,222,102,5,73,6,102,5,5,228,102,5,73,6,102,193,9,226,102,5,73,6,102,5,5,230,102,5,73,6,102,5,5,246,102,5,73,6,102,5,3,238,102,5,73,6,102,5,5,58,102,5,73,6,102,5,5,72,102,5,73,6,102,5,5,200,102,5,73,6,102,5,5,238,102,5,5,30,102,5,5,58,102,5,5,30,102,5,5,72,102,5,5,30,102,5,5,74,102,5,5,30,102,5,5,200,102,5,5,30,102,5,3,238,102,5,5,30,102,5,5,238,102,5,5,42,102,5,5,58,102,5,5,42,102,5,5,72,102,5,5,42,102,5,5,74,102,5,5,42,102,5,5,200,102,5,5,42,102,5,3,238,102,5,5,42,102,5,5,238,102,5,5,44,102,5,5,58,102,5,5,44,102,5,5,200,102,5,5,44,102,5,3,238,102,5,5,44,102,5,5,238,102,5,5,58,102,5,5,72,102,5,5,58,102,5,5,200,102,5,5,72,102,5,5,200,102,5,5,74,102,5,5,58,102,5,5,74,102,5,5,72,102,5,5,74,102,5,5,200,102,5,5,134,102,5,5,58,102,5,5,134,102,5,5,72,102,5,5,134,102,5,5,74,102,5,5,134,102,5,5,200,102,5,5,146,102,5,5,72,102,5,5,146,102,5,5,200,102,5,5,148,102,5,5,58,102,5,5,148,102,5,5,72,102,5,5,148,102,5,5,74,102,5,5,148,102,5,5,200,102,5,5,158,102,5,5,72,102,5,5,158,102,5,5,200,102,5,5,160,102,5,5,200,102,5,5,166,102,5,5,58,102,5,5,166,102,5,5,200,102,5,5,168,102,5,5,58,102,5,5,168,102,5,5,200,102,5,5,174,102,5,5,58,102,5,5,174,102,5,5,72,102,5,5,174,102,5,5,74,102,5,5,174,102,5,5,200,102,5,5,174,102,5,3,238,102,5,5,174,102,5,5,238,102,5,5,178,102,5,5,72,102,5,5,178,102,5,5,200,102,5,5,178,102,5,3,238,102,5,5,178,102,5,5,238,102,5,5,182,102,5,75,6,102,5,5,182,102,5,5,58,102,5,5,182,102,5,5,72,102,5,5,182,102,5,5,74,102,5,5,182,102,5,5,196,102,5,5,182,102,5,5,200,102,5,5,182,102,5,3,238,102,5,5,182,102,5,5,238,102,5,5,196,102,5,5,58,102,5,5,196,102,5,5,72,102,5,5,196,102,5,5,74,102,5,5,196,102,5,5,200,102,5,5,196,102,5,3,238,102,5,5,196,102,5,5,238,102,5,5,200,102,5,5,58,102,5,5,200,102,5,5,200,102,5,5,200,102,5,3,238,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,58,102,5,5,204,102,5,5,72,102,5,5,204,102,5,5,74,102,5,5,204,102,5,5,200,102,5,5,204,102,5,3,238,102,5,5,204,102,5,5,238,102,5,5,214,102,5,5,58,102,5,5,214,102,5,5,200,102,5,5,214,102,5,3,238,102,5,5,214,102,5,5,238,102,5,5,238,102,5,5,72,102,5,5,238,102,5,5,74,102,5,5,238,102,5,3,238,102,5,5,86,102,191,0,0,0,5,5,110,102,191,0,0,0,5,3,238,102,191,0,0,0,5,73,6,102,5,5,110,102,5,73,6,102,5,5,112,102,5,73,6,102,5,5,204,102,5,5,30,102,5,5,110,102,5,5,30,102,5,5,112,102,5,5,30,102,5,5,204,102,5,5,42,102,5,5,110,102,5,5,42,102,5,5,112,102,5,5,42,102,5,5,204,102,5,5,44,102,5,5,110,102,5,5,44,102,5,5,112,102,5,5,44,102,5,5,204,102,5,5,200,102,5,75,6,102,5,5,204,102,5,5,110,102,5,5,204,102,5,5,112,102,5,5,204,102,5,5,204,102,5,5,238,102,5,5,110,102,5,5,238,102,5,5,112,102,5,73,6,102,5,5,74,102,5,73,6,102,5,5,214,102,5,5,30,102,5,5,214,102,5,5,42,102,5,5,214,102,5,5,146,102,5,5,74,102,5,5,196,102,5,5,214,102,5,5,204,102,5,5,214,102,5,5,214,102,191,0,0,0,5,5,44,102,5,5,214,102,5,5,134,102,5,5,214,102,5,5,136,102,5,5,200,102,5,5,136,102,5,5,214,102,5,5,158,102,5,3,238,102,5,5,158,102,5,5,238,102,5,5,166,102,5,3,238,102,5,5,166,102,5,5,238,102,5,5,168,102,5,3,238,102,5,5,168,102,5,5,238,102,5,5,134,102,5,3,238,102,5,5,134,102,5,5,238,102,5,5,136,102,5,3,238,102,5,5,136,102,5,5,238,102,5,5,72,102,5,3,238,102,5,5,58,102,5,3,238,102,5,5,58,102,5,5,238,102,5,5,74,102,5,3,238,102,5,5,146,102,5,3,238,102,5,5,146,102,5,5,238,102,5,5,148,102,5,3,238,102,5,5,148,102,5,5,238,102,5,5,136,102,5,5,58,102,5,5,136,102,5,5,72,102,5,5,136,102,5,5,74,102,5,5,136,102,5,5,110,102,5,5,134,102,5,5,110,102,5,5,146,102,5,5,110,102,5,5,148,102,5,5,110,102,5,5,42,102,5,5,58,102,5,5,200,102,5,5,42,102,5,5,72,102,5,5,58,102,5,5,42,102,5,5,72,102,5,5,200,102,5,5,42,102,5,5,74,102,5,5,200,102,5,5,42,102,5,5,200,102,5,5,58,102,5,5,42,102,5,5,200,102,5,5,72,102,5,5,42,102,5,5,200,102,5,5,74,102,5,5,72,102,5,5,200,102,5,5,238,102,5,5,72,102,5,5,200,102,5,3,238,102,5,5,134,102,5,5,72,102,5,5,58,102,5,5,134,102,5,5,58,102,5,5,72,102,5,5,134,102,5,5,58,102,5,3,238,102,5,5,134,102,5,5,200,102,5,5,72,102,5,5,134,102,5,5,200,102,5,5,58,102,5,5,134,102,5,5,200,102,5,5,200,102,5,5,146,102,5,5,72,102,5,5,72,102,5,5,146,102,5,5,200,102,5,5,200,102,5,5,136,102,5,5,72,102,5,5,200,102,5,5,136,102,5,5,58,102,5,5,238,102,5,5,136,102,5,5,200,102,5,5,74,102,5,5,136,102,5,5,200,102,5,5,200,102,5,5,148,102,5,5,72,102,5,3,238,102,5,5,148,102,5,5,74,102,5,5,200,102,5,5,158,102,5,5,200,102,5,5,72,102,5,5,158,102,5,5,200,102,5,5,200,102,5,5,158,102,5,5,200,102,5,5,238,102,5,5,166,102,5,5,58,102,5,5,200,102,5,5,166,102,5,5,200,102,5,5,200,102,5,5,166,102,5,5,200,102,5,3,238,102,5,5,168,102,5,5,200,102,5,5,200,102,5,5,168,102,5,5,200,102,5,5,238,102,5,5,168,102,5,5,200,102,5,3,238,102,5,5,174,102,5,5,74,102,5,5,200,102,5,5,178,102,5,5,200,102,5,5,72,102,5,5,178,102,5,5,200,102,5,5,200,102,5,5,196,102,5,5,72,102,5,5,200,102,5,5,196,102,5,5,72,102,5,5,238,102,5,5,196,102,5,5,72,102,5,3,238,102,5,5,196,102,5,5,58,102,5,5,58,102,5,5,196,102,5,5,74,102,5,5,200,102,5,5,196,102,5,5,200,102,5,5,72,102,5,5,200,102,5,5,72,102,5,5,58,102,5,5,200,102,5,5,72,102,5,5,238,102,5,5,200,102,5,5,58,102,5,5,72,102,5,5,200,102,5,5,74,102,5,5,200,102,5,5,200,102,5,5,58,102,5,5,74,102,5,5,214,102,5,5,200,102,5,5,58,102,5,5,214,102,5,5,200,102,5,5,200,102,5,5,204,102,5,5,72,102,5,5,200,102,5,5,204,102,5,5,72,102,5,3,238,102,5,5,204,102,5,5,58,102,5,5,200,102,5,5,204,102,5,5,58,102,5,3,238,102,5,5,204,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,200,102,5,3,238,102,5,5,238,102,5,5,200,102,5,5,200,102,5,5,30,102,5,5,74,102,5,5,238,102,5,5,42,102,5,5,58,102,5,5,238,102,5,5,42,102,5,5,58,102,5,3,238,102,5,5,42,102,5,5,74,102,5,5,238,102,5,5,42,102,5,5,74,102,5,3,238,102,5,5,42,102,5,5,200,102,5,5,238,102,5,5,42,102,5,5,200,102,5,3,238,102,5,5,58,102,5,5,200,102,5,5,238,102,5,5,58,102,5,5,72,102,5,3,238,102,5,5,58,102,5,5,200,102,5,3,238,102,5,5,134,102,5,5,74,102,5,3,238,102,5,5,146,102,5,5,72,102,5,5,238,102,5,5,136,102,5,5,72,102,5,5,238,102,5,5,148,102,5,5,72,102,5,5,238,102,5,5,196,102,5,5,58,102,5,5,238,102,5,5,196,102,5,5,200,102,5,5,238,102,5,5,238,102,5,5,58,102,5,5,238,102,5,5,238,102,5,5,200,102,5,5,238,102,5,5,200,102,5,5,200,102,5,5,238,102,5,5,178,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,72,102,5,5,238,102,5,5,166,102,5,5,200,102,5,5,238,102,5,5,182,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,58,102,5,5,72,102,5,5,200,102,5,5,74,102,5,5,238,102,5,5,196,102,5,5,58,102,5,5,200,102,5,5,182,102,5,5,200,102,5,5,200,102,5,5,58,102,5,5,72,102,5,5,238,102,5,5,72,102,5,5,58,102,5,5,238,102,5,5,200,102,5,5,58,102,5,5,238,102,5,5,174,102,5,5,200,102,5,5,238,102,5,5,30,102,5,5,72,102,5,5,238,102,5,5,134,102,5,5,74,102,5,5,238,102,5,5,204,102,5,5,58,102,5,5,238,102,5,5,146,102,5,5,196,102,7,5,250,102,5,5,178,102,5,5,196,102,6,5,250,102,5,75,6,102,5,5,196,102,5,5,196,102,8,5,214,102,5,75,6,102,5,5,182,102,5,5,30,102,6,5,110,102,5,5,200,102,5,5,72,102,5,5,200,102,6,5,84,102,5,5,146,102,5,5,196,102,5,5,166,102,8,5,200,102,5,5,110,102,5,5,134,102,5,5,222,102,7,5,196,102,5,5,166,102,5,5,196,102,5,5,238,102,6,5,214,102,5,5,222,102,5,5,134,102,5,5,196,102,6,5,200,102,5,5,146,102,5,5,196,102,6,3,238,102,5,5,146,102,5,5,196,102,5,3,238,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,196,102,5,5,214,102,5,5,0,4,5,5,166,102,5,5,196,102,5,5,238,102,5,5,214,102,5,5,0,4,5,5,222,102,5,5,134,102,5,5,196,102,7,5,200,102,5,5,58,102,5,5,196,102,5,5,0,4,5,5,58,102,5,5,196,102,5,75,6,102,5,5,196,102,7,5,214,102,5,5,110,102,5,2,238,102,5,75,6,102,6,5,196,102,5,5,30,102,5,5,134,102,5,5,200,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,196,102,5,5,214,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,110,102,5,5,72,102,5,5,200,102,5,5,204,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,110,102,5,5,72,102,5,5,238,102,9,5,200,102,5,5,196,102,5,5,6,102,5,76,6,102,5,5,196,102,5,70,6,102,5,5,196,102,5,72,6,102,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,6,102,5,75,2,0,83,6,197,162,84,6,255,255,6,102,5,70,85,6,255,255,6,102,5,72,222,102,5,5,48,0,84,6,255,255,6,102,5,71,238,102,5,3,48,0,85,6,255,255,6,102,5,74,238,102,5,5,48,0,84,6,255,255,6,102,5,73,3,0,67,0,50,0,59,0,79,15,0,16,62,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,73,15,0,32,165,28,0,32,1,0,32,0,170,28,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,0,0,80,7,0,0,0,10,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,65,76,73,65,83,0,0,0,97,0,114,0,95,0,83,0,65,0,0,0,1,0,32,0,1,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,241,6,0,32,7,0,0,0,21,0,0,0,243,6,0,0,243,6,0,0,3,0,0,0,0,0,0,0,79,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,109,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,66,0,101,0,110,0,103,0,32,0,68,0,101,0,118,0,97,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,9,60,0,130,9,60,0,129,9,60,0,131,9,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,164,9,60,0,206,9,61,0,164,9,205,9,13,32,38,0,185,9,60,0,149,9,205,9,183,9,0,0,170,170,102,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,224,25,0,0,224,25,0,0,224,25,0,0,224,25,0,0,36,26,0,0,36,26,0,0,68,26,0,0,78,26,0,0,4,0,0,0,10,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,105,190,255,0,106,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,39,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,125,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,103,0,108,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,3,35,105,193,2,35,105,193,4,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,36,105,5,5,49,0,205,9,183,9,255,255,103,105,5,5,66,105,5,5,49,0,205,9,13,32,255,255,65,105,5,5,4,0,183,9,184,9,13,32,14,32,170,170,3,0,69,0,52,0,61,0,79,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,234,6,0,32,1,0,32,0,239,6,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,20,22,0,32,7,0,0,0,23,0,0,0,22,22,0,0,22,22,0,0,3,0,0,0,0,0,0,0,122,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,65,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,97,0,122,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,111,0,116,0,104,0,101,0,114,0,115,0,93,0,0,0,125,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,67,0,60,0,99,0,39,3,60,0,60,0,60,0,67,0,39,3,38,0,71,0,60,0,103,0,6,3,60,0,60,0,60,0,71,0,6,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,105,0,60,0,49,1,60,0,60,0,60,0,73,0,38,0,105,0,60,0,60,0,60,0,48,1,38,0,79,0,60,0,111,0,8,3,60,0,60,0,60,0,79,0,8,3,38,0,83,0,60,0,115,0,39,3,60,0,60,0,60,0,83,0,39,3,38,0,85,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,38,0,75,0,60,0,113,0,60,0,60,0,60,0,81,0,38,0,69,0,60,0,89,2,60,0,60,0,60,0,143,1,38,0,72,0,60,0,120,0,60,0,60,0,60,0,88,0,38,0,90,0,60,0,119,0,60,0,60,0,60,0,87,0,0,0,170,170,170,170,156,45,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,214,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,212,38,0,0,212,38,0,0,212,38,0,0,212,38,0,0,96,43,0,0,96,43,0,0,132,45,0,0,132,45,0,0,132,45,0,0,50,105,114,84,1,0,64,8,96,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,107,0,115,0,120,0,128,0,134,0,142,0,145,0,153,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,152,0,160,0,166,0,174,0,182,0,190,0,48,0,56,0,189,0,197,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,214,0,222,0,48,0,48,0,48,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,246,0,48,0,252,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,14,1,19,1,48,0,23,1,31,1,48,0,38,1,46,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,54,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,212,0,48,0,48,0,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,65,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,73,1,48,0,48,0,79,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,172,1,224,1,24,2,68,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,2,152,2,216,2,192,0,244,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,35,0,202,65,35,0,202,98,35,0,202,131,35,0,202,164,35,0,202,197,35,0,202,230,35,0,202,7,36,0,202,40,36,0,202,73,36,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,134,1,0,156,5,0,56,201,70,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,6,3,0,156,5,0,72,134,5,2,63,156,5,0,76,201,230,3,0,156,5,0,80,201,198,4,0,156,5,0,84,134,5,2,93,134,5,2,57,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,230,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,166,6,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,7,0,5,5,0,72,5,5,2,63,5,5,0,76,201,70,8,0,5,5,0,80,201,38,9,0,5,5,0,84,5,5,2,93,5,5,2,57,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,26,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,66,26,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,26,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,230,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,12,0,201,102,13,0,197,162,3,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,14,0,201,230,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,15,0,201,102,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,197,34,0,0,197,98,0,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,166,18,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,20,0,5,71,238,102,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,8,0,192,0,0,0,197,34,9,0,192,0,0,0,192,0,0,0,197,98,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,0,192,0,0,0,197,226,9,0,192,0,0,0,197,34,10,0,192,0,0,0,197,98,10,0,192,0,0,0,197,162,10,0,197,227,10,0,197,66,11,0,192,0,0,0,192,0,0,0,197,130,11,0,197,195,11,0,197,34,12,0,192,0,0,0,192,0,0,0,197,98,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,8,0,197,162,12,0,5,5,10,121,197,226,12,0,197,34,13,0,5,5,12,121,5,5,16,121,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,226,14,0,5,5,18,121,5,5,20,121,197,2,9,0,5,5,24,121,197,34,9,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,15,0,197,98,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,22,0,192,0,0,0,197,227,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,198,23,0,201,134,24,0,201,70,25,0,201,6,26,0,201,198,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,17,0,197,2,18,0,197,66,18,0,197,130,18,0,197,194,18,0,197,2,19,0,197,66,19,0,197,130,19,0,197,194,19,0,197,2,20,0,197,66,20,0,197,130,20,0,197,194,20,0,197,2,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,21,0,192,0,0,0,201,134,27,0,192,0,0,0,201,70,28,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,29,0,201,134,30,0,201,70,31,0,201,6,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,134,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,93,5,142,0,0,5,5,2,93,5,142,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,2,93,5,138,0,0,5,5,2,93,5,138,0,0,134,5,2,93,5,136,0,0,5,5,2,93,5,136,0,0,134,5,2,93,5,150,0,0,5,5,2,93,5,150,0,0,134,5,2,93,5,156,0,0,5,5,2,93,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,134,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,5,5,2,93,5,146,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,98,8,0,5,5,10,121,5,5,12,121,197,162,8,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,8,0,5,5,24,121,197,34,9,0,5,5,28,121,5,5,30,121,197,98,9,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,9,0,5,5,107,121,197,226,9,0,5,5,111,121,197,34,10,0,5,5,115,121,197,98,10,0,5,5,119,121,197,162,10,0,197,227,10,0,197,66,11,0,5,5,127,121,5,5,129,121,197,130,11,0,197,195,11,0,197,34,12,0,5,5,137,121,5,5,139,121,197,98,12,0,5,5,143,121,5,5,6,121,197,98,8,0,197,162,12,0,5,5,10,121,197,226,12,0,197,34,13,0,5,5,12,121,5,5,16,121,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,226,14,0,5,5,18,121,5,5,20,121,197,2,9,0,5,5,24,121,197,34,9,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,4,192,197,34,5,70,196,190,48,0,8,3,4,192,197,98,156,82,196,190,48,0,8,3,4,192,197,162,5,82,196,190,48,0,8,3,4,192,197,226,156,70,196,162,48,0,8,3,6,192,197,226,5,70,196,162,48,0,8,3,7,192,197,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,15,0,197,162,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,16,192,197,66,5,82,196,198,48,0,8,3,16,192,197,130,156,82,196,208,48,0,8,3,16,192,197,194,5,82,196,208,48,0,8,3,17,192,197,2,156,82,196,204,48,0,8,3,17,192,197,66,5,82,196,204,48,0,8,3,17,192,197,130,21,0,197,194,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,22,192,197,2,5,70,196,196,48,0,8,3,22,192,197,66,22,0,197,131,48,0,8,3,22,192,197,227,23,0,197,67,48,0,8,3,23,192,197,163,156,82,196,196,48,0,8,3,24,192,197,2,5,82,196,196,48,0,8,3,24,192,197,66,24,0,197,131,48,0,8,3,24,192,197,227,25,0,197,67,48,0,8,3,25,192,197,163,3,0,67,0,50,0,59,0,123,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,122,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,220,31,0,0,220,31,0,0,220,31,0,0,220,31,0,0,132,34,0,0,132,34,0,0,98,36,0,0,98,36,0,0,98,40,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,224,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,107,0,115,0,120,0,128,0,134,0,142,0,145,0,153,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,180,0,48,0,184,0,192,0,48,0,199,0,207,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,169,0,48,0,48,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,172,1,224,1,24,2,68,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,20,0,202,33,20,0,202,66,20,0,202,99,20,0,202,132,20,0,202,165,20,0,202,198,20,0,202,231,20,0,202,8,21,0,202,41,21,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,156,5,0,56,201,134,1,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,70,2,0,156,5,0,72,134,5,2,63,156,5,0,76,201,38,3,0,156,5,0,80,201,6,4,0,156,5,0,84,134,5,2,93,134,5,2,57,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,38,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,230,5,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,6,0,5,5,0,72,5,5,2,63,5,5,0,76,201,134,7,0,5,5,0,80,201,102,8,0,5,5,0,84,5,5,2,93,5,5,2,57,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,66,19,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,130,19,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,194,19,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,166,9,0,201,102,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,38,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,197,162,3,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,197,34,0,0,197,98,0,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,17,0,192,0,0,0,197,35,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,102,19,0,201,38,20,0,201,230,20,0,201,166,21,0,201,102,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,11,0,197,66,11,0,197,130,11,0,197,194,11,0,197,2,12,0,197,66,12,0,197,130,12,0,197,194,12,0,197,2,13,0,197,66,13,0,197,130,13,0,197,194,13,0,197,2,14,0,197,66,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,14,0,192,0,0,0,201,38,23,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,93,5,142,0,0,5,5,2,93,5,142,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,2,93,5,138,0,0,5,5,2,93,5,138,0,0,134,5,2,93,5,136,0,0,5,5,2,93,5,136,0,0,134,5,2,93,5,150,0,0,5,5,2,93,5,150,0,0,134,5,2,93,5,156,0,0,5,5,2,93,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,134,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,5,5,2,93,5,146,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,4,192,197,34,5,70,196,190,48,0,8,3,4,192,197,98,156,82,196,190,48,0,8,3,4,192,197,162,5,82,196,190,48,0,8,3,4,192,197,226,156,70,196,162,48,0,8,3,6,192,197,226,5,70,196,162,48,0,8,3,7,192,197,34,8,0,197,226,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,9,192,197,130,5,82,196,198,48,0,8,3,9,192,197,194,156,82,196,208,48,0,8,3,10,192,197,2,5,82,196,208,48,0,8,3,10,192,197,66,156,82,196,204,48,0,8,3,10,192,197,130,5,82,196,204,48,0,8,3,10,192,197,194,15,0,197,2,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,15,192,197,66,5,70,196,196,48,0,8,3,15,192,197,130,15,0,197,195,48,0,8,3,16,192,197,35,16,0,197,131,48,0,8,3,16,192,197,227,156,82,196,196,48,0,8,3,17,192,197,66,5,82,196,196,48,0,8,3,17,192,197,130,17,0,197,195,48,0,8,3,18,192,197,35,18,0,197,131,48,0,8,3,18,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,185,92,30,4,186,108,185,112,185,120,185,124,186,128,32,4,185,144,185,116,185,152,34,4,185,164,36,4,185,180,185,192,185,96,185,184,185,188,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,40,4,168,92,168,104,168,108,168,112,168,120,168,124,168,128,42,4,168,144,168,116,168,152,44,4,168,164,46,4,168,180,168,192,168,96,168,184,168,188,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,77,154,77,250,77,90,78,185,101,153,101,249,101,89,102,217,72,154,130,185,137,153,137,249,137,153,138,185,140,136,14,217,138,185,173,153,173,249,173,185,176,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,77,136,77,232,77,72,78,168,105,136,105,232,105,72,106,200,72,136,130,168,137,136,137,232,137,136,138,168,140,128,14,200,138,168,173,136,173,232,173,168,176,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,185,88,168,88,185,86,168,86,48,4,50,4,249,93,232,93,89,95,72,95,153,102,136,106,57,103,40,107,217,101,200,105,52,4,8,107,185,104,168,100,6,8,8,8,250,109,232,109,249,114,232,114,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,250,157,232,157,185,160,168,160,26,158,8,158,249,166,232,166,25,166,8,166,185,168,168,168,153,174,136,174,57,175,40,175,217,173,200,173,57,174,40,174,121,174,104,174,54,4,56,4,249,193,232,193,249,185,232,185,89,186,153,189,136,189,185,190,168,190,25,190,8,190,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,156,169,156,200,56,169,76,187,104,187,108,170,104,169,108,169,200,169,128,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,100,255,5,185,136,255,5,186,156,255,5,185,172,255,5,168,64,255,5,168,84,255,5,168,136,255,5,168,156,255,5,168,172,255,5,249,86,255,5,232,86,255,5,25,103,255,5,25,175,255,5,8,175,255,1,170,170,3,0,67,0,50,0,59,0,235,11,0,16,71,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,227,11,0,32,11,22,0,32,1,0,32,0,16,22,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,236,6,0,32,7,0,0,0,21,0,0,0,238,6,0,0,238,6,0,0,3,0,0,0,0,0,0,0,39,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,21,4,60,0,81,4,60,0,60,0,60,0,1,4,38,0,67,4,60,0,94,4,60,0,60,0,60,0,14,4,0,0,170,170,244,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,96,26,0,0,96,26,0,0,96,26,0,0,96,26,0,0,164,26,0,0,164,26,0,0,220,26,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,137,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,120,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,173,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,97,174,5,48,0,8,3,255,255,41,97,134,5,172,97,174,5,48,0,6,3,255,255,173,97,134,5,40,97,5,5,48,0,8,3,255,255,41,97,5,5,172,97,5,5,48,0,6,3,255,255,173,97,5,5,3,0,69,0,52,0,61,0,39,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,229,6,0,32,1,0,32,0,234,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,208,32,0,32,7,0,0,0,24,0,0,0,210,32,0,0,210,32,0,0,3,0,0,0,0,0,0,0,112,9,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,116,114,97,100,105,116,105,111,110,97,108,0,0,0,52,0,50,0,0,0,85,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,66,0,101,0,110,0,103,0,32,0,68,0,101,0,118,0,97,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,9,60,0,130,9,60,0,131,9,60,0,129,9,0,0,239,223,81,18,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,66,0,101,0,110,0,103,0,32,0,68,0,101,0,118,0,97,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,9,60,0,130,9,60,0,131,9,60,0,129,9,60,0,149,9,205,9,60,0,150,9,205,9,60,0,151,9,205,9,60,0,152,9,205,9,60,0,153,9,205,9,60,0,154,9,205,9,60,0,155,9,205,9,60,0,156,9,205,9,60,0,157,9,205,9,60,0,158,9,205,9,60,0,159,9,205,9,60,0,160,9,205,9,60,0,161,9,205,9,60,0,162,9,205,9,60,0,163,9,205,9,60,0,206,9,61,0,164,9,205,9,13,32,60,0,60,0,164,9,205,9,60,0,165,9,205,9,60,0,166,9,205,9,60,0,167,9,205,9,60,0,168,9,205,9,60,0,170,9,205,9,60,0,171,9,205,9,60,0,172,9,205,9,60,0,173,9,205,9,60,0,174,9,205,9,60,0,175,9,205,9,60,0,176,9,205,9,60,0,240,9,205,9,60,0,178,9,205,9,60,0,241,9,205,9,60,0,182,9,205,9,60,0,183,9,205,9,60,0,184,9,205,9,60,0,185,9,205,9,38,0,149,9,205,9,133,9,61,0,149,9,38,0,149,9,205,9,134,9,61,0,149,9,190,9,38,0,149,9,205,9,135,9,61,0,149,9,191,9,38,0,149,9,205,9,136,9,61,0,149,9,192,9,38,0,149,9,205,9,137,9,61,0,149,9,193,9,38,0,149,9,205,9,138,9,61,0,149,9,194,9,38,0,149,9,205,9,139,9,61,0,149,9,195,9,38,0,149,9,205,9,224,9,61,0,149,9,196,9,38,0,149,9,205,9,140,9,61,0,149,9,226,9,38,0,149,9,205,9,225,9,61,0,149,9,227,9,38,0,149,9,205,9,143,9,61,0,149,9,199,9,38,0,149,9,205,9,144,9,61,0,149,9,200,9,38,0,149,9,205,9,147,9,61,0,149,9,203,9,38,0,149,9,205,9,148,9,61,0,149,9,204,9,38,0,150,9,205,9,133,9,61,0,150,9,38,0,150,9,205,9,134,9,61,0,150,9,190,9,38,0,150,9,205,9,135,9,61,0,150,9,191,9,38,0,150,9,205,9,136,9,61,0,150,9,192,9,38,0,150,9,205,9,137,9,61,0,150,9,193,9,38,0,150,9,205,9,138,9,61,0,150,9,194,9,38,0,150,9,205,9,139,9,61,0,150,9,195,9,38,0,150,9,205,9,224,9,61,0,150,9,196,9,38,0,150,9,205,9,140,9,61,0,150,9,226,9,38,0,150,9,205,9,225,9,61,0,150,9,227,9,38,0,150,9,205,9,143,9,61,0,150,9,199,9,38,0,150,9,205,9,144,9,61,0,150,9,200,9,38,0,150,9,205,9,147,9,61,0,150,9,203,9,38,0,150,9,205,9,148,9,61,0,150,9,204,9,38,0,151,9,205,9,133,9,61,0,151,9,38,0,151,9,205,9,134,9,61,0,151,9,190,9,38,0,151,9,205,9,135,9,61,0,151,9,191,9,38,0,151,9,205,9,136,9,61,0,151,9,192,9,38,0,151,9,205,9,137,9,61,0,151,9,193,9,38,0,151,9,205,9,138,9,61,0,151,9,194,9,38,0,151,9,205,9,139,9,61,0,151,9,195,9,38,0,151,9,205,9,224,9,61,0,151,9,196,9,38,0,151,9,205,9,140,9,61,0,151,9,226,9,38,0,151,9,205,9,225,9,61,0,151,9,227,9,38,0,151,9,205,9,143,9,61,0,151,9,199,9,38,0,151,9,205,9,144,9,61,0,151,9,200,9,38,0,151,9,205,9,147,9,61,0,151,9,203,9,38,0,151,9,205,9,148,9,61,0,151,9,204,9,38,0,152,9,205,9,133,9,61,0,152,9,38,0,152,9,205,9,134,9,61,0,152,9,190,9,38,0,152,9,205,9,135,9,61,0,152,9,191,9,38,0,152,9,205,9,136,9,61,0,152,9,192,9,38,0,152,9,205,9,137,9,61,0,152,9,193,9,38,0,152,9,205,9,138,9,61,0,152,9,194,9,38,0,152,9,205,9,139,9,61,0,152,9,195,9,38,0,152,9,205,9,224,9,61,0,152,9,196,9,38,0,152,9,205,9,140,9,61,0,152,9,226,9,38,0,152,9,205,9,225,9,61,0,152,9,227,9,38,0,152,9,205,9,143,9,61,0,152,9,199,9,38,0,152,9,205,9,144,9,61,0,152,9,200,9,38,0,152,9,205,9,147,9,61,0,152,9,203,9,38,0,152,9,205,9,148,9,61,0,152,9,204,9,38,0,153,9,205,9,133,9,61,0,153,9,38,0,153,9,205,9,134,9,61,0,153,9,190,9,38,0,153,9,205,9,135,9,61,0,153,9,191,9,38,0,153,9,205,9,136,9,61,0,153,9,192,9,38,0,153,9,205,9,137,9,61,0,153,9,193,9,38,0,153,9,205,9,138,9,61,0,153,9,194,9,38,0,153,9,205,9,139,9,61,0,153,9,195,9,38,0,153,9,205,9,224,9,61,0,153,9,196,9,38,0,153,9,205,9,140,9,61,0,153,9,226,9,38,0,153,9,205,9,225,9,61,0,153,9,227,9,38,0,153,9,205,9,143,9,61,0,153,9,199,9,38,0,153,9,205,9,144,9,61,0,153,9,200,9,38,0,153,9,205,9,147,9,61,0,153,9,203,9,38,0,153,9,205,9,148,9,61,0,153,9,204,9,38,0,154,9,205,9,133,9,61,0,154,9,38,0,154,9,205,9,134,9,61,0,154,9,190,9,38,0,154,9,205,9,135,9,61,0,154,9,191,9,38,0,154,9,205,9,136,9,61,0,154,9,192,9,38,0,154,9,205,9,137,9,61,0,154,9,193,9,38,0,154,9,205,9,138,9,61,0,154,9,194,9,38,0,154,9,205,9,139,9,61,0,154,9,195,9,38,0,154,9,205,9,224,9,61,0,154,9,196,9,38,0,154,9,205,9,140,9,61,0,154,9,226,9,38,0,154,9,205,9,225,9,61,0,154,9,227,9,38,0,154,9,205,9,143,9,61,0,154,9,199,9,38,0,154,9,205,9,144,9,61,0,154,9,200,9,38,0,154,9,205,9,147,9,61,0,154,9,203,9,38,0,154,9,205,9,148,9,61,0,154,9,204,9,38,0,155,9,205,9,133,9,61,0,155,9,38,0,155,9,205,9,134,9,61,0,155,9,190,9,38,0,155,9,205,9,135,9,61,0,155,9,191,9,38,0,155,9,205,9,136,9,61,0,155,9,192,9,38,0,155,9,205,9,137,9,61,0,155,9,193,9,38,0,155,9,205,9,138,9,61,0,155,9,194,9,38,0,155,9,205,9,139,9,61,0,155,9,195,9,38,0,155,9,205,9,224,9,61,0,155,9,196,9,38,0,155,9,205,9,140,9,61,0,155,9,226,9,38,0,155,9,205,9,225,9,61,0,155,9,227,9,38,0,155,9,205,9,143,9,61,0,155,9,199,9,38,0,155,9,205,9,144,9,61,0,155,9,200,9,38,0,155,9,205,9,147,9,61,0,155,9,203,9,38,0,155,9,205,9,148,9,61,0,155,9,204,9,38,0,156,9,205,9,133,9,61,0,156,9,38,0,156,9,205,9,134,9,61,0,156,9,190,9,38,0,156,9,205,9,135,9,61,0,156,9,191,9,38,0,156,9,205,9,136,9,61,0,156,9,192,9,38,0,156,9,205,9,137,9,61,0,156,9,193,9,38,0,156,9,205,9,138,9,61,0,156,9,194,9,38,0,156,9,205,9,139,9,61,0,156,9,195,9,38,0,156,9,205,9,224,9,61,0,156,9,196,9,38,0,156,9,205,9,140,9,61,0,156,9,226,9,38,0,156,9,205,9,225,9,61,0,156,9,227,9,38,0,156,9,205,9,143,9,61,0,156,9,199,9,38,0,156,9,205,9,144,9,61,0,156,9,200,9,38,0,156,9,205,9,147,9,61,0,156,9,203,9,38,0,156,9,205,9,148,9,61,0,156,9,204,9,38,0,157,9,205,9,133,9,61,0,157,9,38,0,157,9,205,9,134,9,61,0,157,9,190,9,38,0,157,9,205,9,135,9,61,0,157,9,191,9,38,0,157,9,205,9,136,9,61,0,157,9,192,9,38,0,157,9,205,9,137,9,61,0,157,9,193,9,38,0,157,9,205,9,138,9,61,0,157,9,194,9,38,0,157,9,205,9,139,9,61,0,157,9,195,9,38,0,157,9,205,9,224,9,61,0,157,9,196,9,38,0,157,9,205,9,140,9,61,0,157,9,226,9,38,0,157,9,205,9,225,9,61,0,157,9,227,9,38,0,157,9,205,9,143,9,61,0,157,9,199,9,38,0,157,9,205,9,144,9,61,0,157,9,200,9,38,0,157,9,205,9,147,9,61,0,157,9,203,9,38,0,157,9,205,9,148,9,61,0,157,9,204,9,38,0,158,9,205,9,133,9,61,0,158,9,38,0,158,9,205,9,134,9,61,0,158,9,190,9,38,0,158,9,205,9,135,9,61,0,158,9,191,9,38,0,158,9,205,9,136,9,61,0,158,9,192,9,38,0,158,9,205,9,137,9,61,0,158,9,193,9,38,0,158,9,205,9,138,9,61,0,158,9,194,9,38,0,158,9,205,9,139,9,61,0,158,9,195,9,38,0,158,9,205,9,224,9,61,0,158,9,196,9,38,0,158,9,205,9,140,9,61,0,158,9,226,9,38,0,158,9,205,9,225,9,61,0,158,9,227,9,38,0,158,9,205,9,143,9,61,0,158,9,199,9,38,0,158,9,205,9,144,9,61,0,158,9,200,9,38,0,158,9,205,9,147,9,61,0,158,9,203,9,38,0,158,9,205,9,148,9,61,0,158,9,204,9,38,0,159,9,205,9,133,9,61,0,159,9,38,0,159,9,205,9,134,9,61,0,159,9,190,9,38,0,159,9,205,9,135,9,61,0,159,9,191,9,38,0,159,9,205,9,136,9,61,0,159,9,192,9,38,0,159,9,205,9,137,9,61,0,159,9,193,9,38,0,159,9,205,9,138,9,61,0,159,9,194,9,38,0,159,9,205,9,139,9,61,0,159,9,195,9,38,0,159,9,205,9,224,9,61,0,159,9,196,9,38,0,159,9,205,9,140,9,61,0,159,9,226,9,38,0,159,9,205,9,225,9,61,0,159,9,227,9,38,0,159,9,205,9,143,9,61,0,159,9,199,9,38,0,159,9,205,9,144,9,61,0,159,9,200,9,38,0,159,9,205,9,147,9,61,0,159,9,203,9,38,0,159,9,205,9,148,9,61,0,159,9,204,9,38,0,160,9,205,9,133,9,61,0,160,9,38,0,160,9,205,9,134,9,61,0,160,9,190,9,38,0,160,9,205,9,135,9,61,0,160,9,191,9,38,0,160,9,205,9,136,9,61,0,160,9,192,9,38,0,160,9,205,9,137,9,61,0,160,9,193,9,38,0,160,9,205,9,138,9,61,0,160,9,194,9,38,0,160,9,205,9,139,9,61,0,160,9,195,9,38,0,160,9,205,9,224,9,61,0,160,9,196,9,38,0,160,9,205,9,140,9,61,0,160,9,226,9,38,0,160,9,205,9,225,9,61,0,160,9,227,9,38,0,160,9,205,9,143,9,61,0,160,9,199,9,38,0,160,9,205,9,144,9,61,0,160,9,200,9,38,0,160,9,205,9,147,9,61,0,160,9,203,9,38,0,160,9,205,9,148,9,61,0,160,9,204,9,38,0,161,9,205,9,133,9,61,0,161,9,38,0,161,9,205,9,134,9,61,0,161,9,190,9,38,0,161,9,205,9,135,9,61,0,161,9,191,9,38,0,161,9,205,9,136,9,61,0,161,9,192,9,38,0,161,9,205,9,137,9,61,0,161,9,193,9,38,0,161,9,205,9,138,9,61,0,161,9,194,9,38,0,161,9,205,9,139,9,61,0,161,9,195,9,38,0,161,9,205,9,224,9,61,0,161,9,196,9,38,0,161,9,205,9,140,9,61,0,161,9,226,9,38,0,161,9,205,9,225,9,61,0,161,9,227,9,38,0,161,9,205,9,143,9,61,0,161,9,199,9,38,0,161,9,205,9,144,9,61,0,161,9,200,9,38,0,161,9,205,9,147,9,61,0,161,9,203,9,38,0,161,9,205,9,148,9,61,0,161,9,204,9,38,0,162,9,205,9,133,9,61,0,162,9,38,0,162,9,205,9,134,9,61,0,162,9,190,9,38,0,162,9,205,9,135,9,61,0,162,9,191,9,38,0,162,9,205,9,136,9,61,0,162,9,192,9,38,0,162,9,205,9,137,9,61,0,162,9,193,9,38,0,162,9,205,9,138,9,61,0,162,9,194,9,38,0,162,9,205,9,139,9,61,0,162,9,195,9,38,0,162,9,205,9,224,9,61,0,162,9,196,9,38,0,162,9,205,9,140,9,61,0,162,9,226,9,38,0,162,9,205,9,225,9,61,0,162,9,227,9,38,0,162,9,205,9,143,9,61,0,162,9,199,9,38,0,162,9,205,9,144,9,61,0,162,9,200,9,38,0,162,9,205,9,147,9,61,0,162,9,203,9,38,0,162,9,205,9,148,9,61,0,162,9,204,9,38,0,163,9,205,9,133,9,61,0,163,9,38,0,163,9,205,9,134,9,61,0,163,9,190,9,38,0,163,9,205,9,135,9,61,0,163,9,191,9,38,0,163,9,205,9,136,9,61,0,163,9,192,9,38,0,163,9,205,9,137,9,61,0,163,9,193,9,38,0,163,9,205,9,138,9,61,0,163,9,194,9,38,0,163,9,205,9,139,9,61,0,163,9,195,9,38,0,163,9,205,9,224,9,61,0,163,9,196,9,38,0,163,9,205,9,140,9,61,0,163,9,226,9,38,0,163,9,205,9,225,9,61,0,163,9,227,9,38,0,163,9,205,9,143,9,61,0,163,9,199,9,38,0,163,9,205,9,144,9,61,0,163,9,200,9,38,0,163,9,205,9,147,9,61,0,163,9,203,9,38,0,163,9,205,9,148,9,61,0,163,9,204,9,38,0,164,9,205,9,133,9,61,0,164,9,38,0,164,9,205,9,134,9,61,0,164,9,190,9,38,0,164,9,205,9,135,9,61,0,164,9,191,9,38,0,164,9,205,9,136,9,61,0,164,9,192,9,38,0,164,9,205,9,137,9,61,0,164,9,193,9,38,0,164,9,205,9,138,9,61,0,164,9,194,9,38,0,164,9,205,9,139,9,61,0,164,9,195,9,38,0,164,9,205,9,224,9,61,0,164,9,196,9,38,0,164,9,205,9,140,9,61,0,164,9,226,9,38,0,164,9,205,9,225,9,61,0,164,9,227,9,38,0,164,9,205,9,143,9,61,0,164,9,199,9,38,0,164,9,205,9,144,9,61,0,164,9,200,9,38,0,164,9,205,9,147,9,61,0,164,9,203,9,38,0,164,9,205,9,148,9,61,0,164,9,204,9,38,0,165,9,205,9,133,9,61,0,165,9,38,0,165,9,205,9,134,9,61,0,165,9,190,9,38,0,165,9,205,9,135,9,61,0,165,9,191,9,38,0,165,9,205,9,136,9,61,0,165,9,192,9,38,0,165,9,205,9,137,9,61,0,165,9,193,9,38,0,165,9,205,9,138,9,61,0,165,9,194,9,38,0,165,9,205,9,139,9,61,0,165,9,195,9,38,0,165,9,205,9,224,9,61,0,165,9,196,9,38,0,165,9,205,9,140,9,61,0,165,9,226,9,38,0,165,9,205,9,225,9,61,0,165,9,227,9,38,0,165,9,205,9,143,9,61,0,165,9,199,9,38,0,165,9,205,9,144,9,61,0,165,9,200,9,38,0,165,9,205,9,147,9,61,0,165,9,203,9,38,0,165,9,205,9,148,9,61,0,165,9,204,9,38,0,166,9,205,9,133,9,61,0,166,9,38,0,166,9,205,9,134,9,61,0,166,9,190,9,38,0,166,9,205,9,135,9,61,0,166,9,191,9,38,0,166,9,205,9,136,9,61,0,166,9,192,9,38,0,166,9,205,9,137,9,61,0,166,9,193,9,38,0,166,9,205,9,138,9,61,0,166,9,194,9,38,0,166,9,205,9,139,9,61,0,166,9,195,9,38,0,166,9,205,9,224,9,61,0,166,9,196,9,38,0,166,9,205,9,140,9,61,0,166,9,226,9,38,0,166,9,205,9,225,9,61,0,166,9,227,9,38,0,166,9,205,9,143,9,61,0,166,9,199,9,38,0,166,9,205,9,144,9,61,0,166,9,200,9,38,0,166,9,205,9,147,9,61,0,166,9,203,9,38,0,166,9,205,9,148,9,61,0,166,9,204,9,38,0,167,9,205,9,133,9,61,0,167,9,38,0,167,9,205,9,134,9,61,0,167,9,190,9,38,0,167,9,205,9,135,9,61,0,167,9,191,9,38,0,167,9,205,9,136,9,61,0,167,9,192,9,38,0,167,9,205,9,137,9,61,0,167,9,193,9,38,0,167,9,205,9,138,9,61,0,167,9,194,9,38,0,167,9,205,9,139,9,61,0,167,9,195,9,38,0,167,9,205,9,224,9,61,0,167,9,196,9,38,0,167,9,205,9,140,9,61,0,167,9,226,9,38,0,167,9,205,9,225,9,61,0,167,9,227,9,38,0,167,9,205,9,143,9,61,0,167,9,199,9,38,0,167,9,205,9,144,9,61,0,167,9,200,9,38,0,167,9,205,9,147,9,61,0,167,9,203,9,38,0,167,9,205,9,148,9,61,0,167,9,204,9,38,0,168,9,205,9,133,9,61,0,168,9,38,0,168,9,205,9,134,9,61,0,168,9,190,9,38,0,168,9,205,9,135,9,61,0,168,9,191,9,38,0,168,9,205,9,136,9,61,0,168,9,192,9,38,0,168,9,205,9,137,9,61,0,168,9,193,9,38,0,168,9,205,9,138,9,61,0,168,9,194,9,38,0,168,9,205,9,139,9,61,0,168,9,195,9,38,0,168,9,205,9,224,9,61,0,168,9,196,9,38,0,168,9,205,9,140,9,61,0,168,9,226,9,38,0,168,9,205,9,225,9,61,0,168,9,227,9,38,0,168,9,205,9,143,9,61,0,168,9,199,9,38,0,168,9,205,9,144,9,61,0,168,9,200,9,38,0,168,9,205,9,147,9,61,0,168,9,203,9,38,0,168,9,205,9,148,9,61,0,168,9,204,9,38,0,170,9,205,9,133,9,61,0,170,9,38,0,170,9,205,9,134,9,61,0,170,9,190,9,38,0,170,9,205,9,135,9,61,0,170,9,191,9,38,0,170,9,205,9,136,9,61,0,170,9,192,9,38,0,170,9,205,9,137,9,61,0,170,9,193,9,38,0,170,9,205,9,138,9,61,0,170,9,194,9,38,0,170,9,205,9,139,9,61,0,170,9,195,9,38,0,170,9,205,9,224,9,61,0,170,9,196,9,38,0,170,9,205,9,140,9,61,0,170,9,226,9,38,0,170,9,205,9,225,9,61,0,170,9,227,9,38,0,170,9,205,9,143,9,61,0,170,9,199,9,38,0,170,9,205,9,144,9,61,0,170,9,200,9,38,0,170,9,205,9,147,9,61,0,170,9,203,9,38,0,170,9,205,9,148,9,61,0,170,9,204,9,38,0,171,9,205,9,133,9,61,0,171,9,38,0,171,9,205,9,134,9,61,0,171,9,190,9,38,0,171,9,205,9,135,9,61,0,171,9,191,9,38,0,171,9,205,9,136,9,61,0,171,9,192,9,38,0,171,9,205,9,137,9,61,0,171,9,193,9,38,0,171,9,205,9,138,9,61,0,171,9,194,9,38,0,171,9,205,9,139,9,61,0,171,9,195,9,38,0,171,9,205,9,224,9,61,0,171,9,196,9,38,0,171,9,205,9,140,9,61,0,171,9,226,9,38,0,171,9,205,9,225,9,61,0,171,9,227,9,38,0,171,9,205,9,143,9,61,0,171,9,199,9,38,0,171,9,205,9,144,9,61,0,171,9,200,9,38,0,171,9,205,9,147,9,61,0,171,9,203,9,38,0,171,9,205,9,148,9,61,0,171,9,204,9,38,0,172,9,205,9,133,9,61,0,172,9,38,0,172,9,205,9,134,9,61,0,172,9,190,9,38,0,172,9,205,9,135,9,61,0,172,9,191,9,38,0,172,9,205,9,136,9,61,0,172,9,192,9,38,0,172,9,205,9,137,9,61,0,172,9,193,9,38,0,172,9,205,9,138,9,61,0,172,9,194,9,38,0,172,9,205,9,139,9,61,0,172,9,195,9,38,0,172,9,205,9,224,9,61,0,172,9,196,9,38,0,172,9,205,9,140,9,61,0,172,9,226,9,38,0,172,9,205,9,225,9,61,0,172,9,227,9,38,0,172,9,205,9,143,9,61,0,172,9,199,9,38,0,172,9,205,9,144,9,61,0,172,9,200,9,38,0,172,9,205,9,147,9,61,0,172,9,203,9,38,0,172,9,205,9,148,9,61,0,172,9,204,9,38,0,173,9,205,9,133,9,61,0,173,9,38,0,173,9,205,9,134,9,61,0,173,9,190,9,38,0,173,9,205,9,135,9,61,0,173,9,191,9,38,0,173,9,205,9,136,9,61,0,173,9,192,9,38,0,173,9,205,9,137,9,61,0,173,9,193,9,38,0,173,9,205,9,138,9,61,0,173,9,194,9,38,0,173,9,205,9,139,9,61,0,173,9,195,9,38,0,173,9,205,9,224,9,61,0,173,9,196,9,38,0,173,9,205,9,140,9,61,0,173,9,226,9,38,0,173,9,205,9,225,9,61,0,173,9,227,9,38,0,173,9,205,9,143,9,61,0,173,9,199,9,38,0,173,9,205,9,144,9,61,0,173,9,200,9,38,0,173,9,205,9,147,9,61,0,173,9,203,9,38,0,173,9,205,9,148,9,61,0,173,9,204,9,38,0,174,9,205,9,133,9,61,0,174,9,38,0,174,9,205,9,134,9,61,0,174,9,190,9,38,0,174,9,205,9,135,9,61,0,174,9,191,9,38,0,174,9,205,9,136,9,61,0,174,9,192,9,38,0,174,9,205,9,137,9,61,0,174,9,193,9,38,0,174,9,205,9,138,9,61,0,174,9,194,9,38,0,174,9,205,9,139,9,61,0,174,9,195,9,38,0,174,9,205,9,224,9,61,0,174,9,196,9,38,0,174,9,205,9,140,9,61,0,174,9,226,9,38,0,174,9,205,9,225,9,61,0,174,9,227,9,38,0,174,9,205,9,143,9,61,0,174,9,199,9,38,0,174,9,205,9,144,9,61,0,174,9,200,9,38,0,174,9,205,9,147,9,61,0,174,9,203,9,38,0,174,9,205,9,148,9,61,0,174,9,204,9,38,0,175,9,205,9,133,9,61,0,175,9,38,0,175,9,205,9,134,9,61,0,175,9,190,9,38,0,175,9,205,9,135,9,61,0,175,9,191,9,38,0,175,9,205,9,136,9,61,0,175,9,192,9,38,0,175,9,205,9,137,9,61,0,175,9,193,9,38,0,175,9,205,9,138,9,61,0,175,9,194,9,38,0,175,9,205,9,139,9,61,0,175,9,195,9,38,0,175,9,205,9,224,9,61,0,175,9,196,9,38,0,175,9,205,9,140,9,61,0,175,9,226,9,38,0,175,9,205,9,225,9,61,0,175,9,227,9,38,0,175,9,205,9,143,9,61,0,175,9,199,9,38,0,175,9,205,9,144,9,61,0,175,9,200,9,38,0,175,9,205,9,147,9,61,0,175,9,203,9,38,0,175,9,205,9,148,9,61,0,175,9,204,9,38,0,176,9,205,9,133,9,61,0,176,9,38,0,176,9,205,9,134,9,61,0,176,9,190,9,38,0,176,9,205,9,135,9,61,0,176,9,191,9,38,0,176,9,205,9,136,9,61,0,176,9,192,9,38,0,176,9,205,9,137,9,61,0,176,9,193,9,38,0,176,9,205,9,138,9,61,0,176,9,194,9,38,0,176,9,205,9,139,9,61,0,176,9,195,9,38,0,176,9,205,9,224,9,61,0,176,9,196,9,38,0,176,9,205,9,140,9,61,0,176,9,226,9,38,0,176,9,205,9,225,9,61,0,176,9,227,9,38,0,176,9,205,9,143,9,61,0,176,9,199,9,38,0,176,9,205,9,144,9,61,0,176,9,200,9,38,0,176,9,205,9,147,9,61,0,176,9,203,9,38,0,176,9,205,9,148,9,61,0,176,9,204,9,38,0,240,9,205,9,133,9,61,0,240,9,38,0,240,9,205,9,134,9,61,0,240,9,190,9,38,0,240,9,205,9,135,9,61,0,240,9,191,9,38,0,240,9,205,9,136,9,61,0,240,9,192,9,38,0,240,9,205,9,137,9,61,0,240,9,193,9,38,0,240,9,205,9,138,9,61,0,240,9,194,9,38,0,240,9,205,9,139,9,61,0,240,9,195,9,38,0,240,9,205,9,224,9,61,0,240,9,196,9,38,0,240,9,205,9,140,9,61,0,240,9,226,9,38,0,240,9,205,9,225,9,61,0,240,9,227,9,38,0,240,9,205,9,143,9,61,0,240,9,199,9,38,0,240,9,205,9,144,9,61,0,240,9,200,9,38,0,240,9,205,9,147,9,61,0,240,9,203,9,38,0,240,9,205,9,148,9,61,0,240,9,204,9,38,0,178,9,205,9,133,9,61,0,178,9,38,0,178,9,205,9,134,9,61,0,178,9,190,9,38,0,178,9,205,9,135,9,61,0,178,9,191,9,38,0,178,9,205,9,136,9,61,0,178,9,192,9,38,0,178,9,205,9,137,9,61,0,178,9,193,9,38,0,178,9,205,9,138,9,61,0,178,9,194,9,38,0,178,9,205,9,139,9,61,0,178,9,195,9,38,0,178,9,205,9,224,9,61,0,178,9,196,9,38,0,178,9,205,9,140,9,61,0,178,9,226,9,38,0,178,9,205,9,225,9,61,0,178,9,227,9,38,0,178,9,205,9,143,9,61,0,178,9,199,9,38,0,178,9,205,9,144,9,61,0,178,9,200,9,38,0,178,9,205,9,147,9,61,0,178,9,203,9,38,0,178,9,205,9,148,9,61,0,178,9,204,9,38,0,241,9,205,9,133,9,61,0,241,9,38,0,241,9,205,9,134,9,61,0,241,9,190,9,38,0,241,9,205,9,135,9,61,0,241,9,191,9,38,0,241,9,205,9,136,9,61,0,241,9,192,9,38,0,241,9,205,9,137,9,61,0,241,9,193,9,38,0,241,9,205,9,138,9,61,0,241,9,194,9,38,0,241,9,205,9,139,9,61,0,241,9,195,9,38,0,241,9,205,9,224,9,61,0,241,9,196,9,38,0,241,9,205,9,140,9,61,0,241,9,226,9,38,0,241,9,205,9,225,9,61,0,241,9,227,9,38,0,241,9,205,9,143,9,61,0,241,9,199,9,38,0,241,9,205,9,144,9,61,0,241,9,200,9,38,0,241,9,205,9,147,9,61,0,241,9,203,9,38,0,241,9,205,9,148,9,61,0,241,9,204,9,38,0,182,9,205,9,133,9,61,0,182,9,38,0,182,9,205,9,134,9,61,0,182,9,190,9,38,0,182,9,205,9,135,9,61,0,182,9,191,9,38,0,182,9,205,9,136,9,61,0,182,9,192,9,38,0,182,9,205,9,137,9,61,0,182,9,193,9,38,0,182,9,205,9,138,9,61,0,182,9,194,9,38,0,182,9,205,9,139,9,61,0,182,9,195,9,38,0,182,9,205,9,224,9,61,0,182,9,196,9,38,0,182,9,205,9,140,9,61,0,182,9,226,9,38,0,182,9,205,9,225,9,61,0,182,9,227,9,38,0,182,9,205,9,143,9,61,0,182,9,199,9,38,0,182,9,205,9,144,9,61,0,182,9,200,9,38,0,182,9,205,9,147,9,61,0,182,9,203,9,38,0,182,9,205,9,148,9,61,0,182,9,204,9,38,0,183,9,205,9,133,9,61,0,183,9,38,0,183,9,205,9,134,9,61,0,183,9,190,9,38,0,183,9,205,9,135,9,61,0,183,9,191,9,38,0,183,9,205,9,136,9,61,0,183,9,192,9,38,0,183,9,205,9,137,9,61,0,183,9,193,9,38,0,183,9,205,9,138,9,61,0,183,9,194,9,38,0,183,9,205,9,139,9,61,0,183,9,195,9,38,0,183,9,205,9,224,9,61,0,183,9,196,9,38,0,183,9,205,9,140,9,61,0,183,9,226,9,38,0,183,9,205,9,225,9,61,0,183,9,227,9,38,0,183,9,205,9,143,9,61,0,183,9,199,9,38,0,183,9,205,9,144,9,61,0,183,9,200,9,38,0,183,9,205,9,147,9,61,0,183,9,203,9,38,0,183,9,205,9,148,9,61,0,183,9,204,9,38,0,184,9,205,9,133,9,61,0,184,9,38,0,184,9,205,9,134,9,61,0,184,9,190,9,38,0,184,9,205,9,135,9,61,0,184,9,191,9,38,0,184,9,205,9,136,9,61,0,184,9,192,9,38,0,184,9,205,9,137,9,61,0,184,9,193,9,38,0,184,9,205,9,138,9,61,0,184,9,194,9,38,0,184,9,205,9,139,9,61,0,184,9,195,9,38,0,184,9,205,9,224,9,61,0,184,9,196,9,38,0,184,9,205,9,140,9,61,0,184,9,226,9,38,0,184,9,205,9,225,9,61,0,184,9,227,9,38,0,184,9,205,9,143,9,61,0,184,9,199,9,38,0,184,9,205,9,144,9,61,0,184,9,200,9,38,0,184,9,205,9,147,9,61,0,184,9,203,9,38,0,184,9,205,9,148,9,61,0,184,9,204,9,38,0,185,9,205,9,133,9,61,0,185,9,38,0,185,9,205,9,134,9,61,0,185,9,190,9,38,0,185,9,205,9,135,9,61,0,185,9,191,9,38,0,185,9,205,9,136,9,61,0,185,9,192,9,38,0,185,9,205,9,137,9,61,0,185,9,193,9,38,0,185,9,205,9,138,9,61,0,185,9,194,9,38,0,185,9,205,9,139,9,61,0,185,9,195,9,38,0,185,9,205,9,224,9,61,0,185,9,196,9,38,0,185,9,205,9,140,9,61,0,185,9,226,9,38,0,185,9,205,9,225,9,61,0,185,9,227,9,38,0,185,9,205,9,143,9,61,0,185,9,199,9,38,0,185,9,205,9,144,9,61,0,185,9,200,9,38,0,185,9,205,9,147,9,61,0,185,9,203,9,38,0,185,9,205,9,148,9,61,0,185,9,204,9,38,0,149,9,60,0,60,0,60,0,149,9,188,9,38,0,149,9,190,9,60,0,60,0,60,0,149,9,188,9,190,9,38,0,149,9,191,9,60,0,60,0,60,0,149,9,188,9,191,9,38,0,149,9,192,9,60,0,60,0,60,0,149,9,188,9,192,9,38,0,149,9,193,9,60,0,60,0,60,0,149,9,188,9,193,9,38,0,149,9,194,9,60,0,60,0,60,0,149,9,188,9,194,9,38,0,149,9,195,9,60,0,60,0,60,0,149,9,188,9,195,9,38,0,149,9,196,9,60,0,60,0,60,0,149,9,188,9,196,9,38,0,149,9,226,9,60,0,60,0,60,0,149,9,188,9,226,9,38,0,149,9,227,9,60,0,60,0,60,0,149,9,188,9,227,9,38,0,149,9,199,9,60,0,60,0,60,0,149,9,188,9,199,9,38,0,149,9,200,9,60,0,60,0,60,0,149,9,188,9,200,9,38,0,149,9,203,9,60,0,60,0,60,0,149,9,188,9,203,9,38,0,149,9,204,9,60,0,60,0,60,0,149,9,188,9,204,9,38,0,149,9,205,9,60,0,60,0,60,0,149,9,188,9,205,9,38,0,150,9,60,0,60,0,60,0,150,9,188,9,38,0,150,9,190,9,60,0,60,0,60,0,150,9,188,9,190,9,38,0,150,9,191,9,60,0,60,0,60,0,150,9,188,9,191,9,38,0,150,9,192,9,60,0,60,0,60,0,150,9,188,9,192,9,38,0,150,9,193,9,60,0,60,0,60,0,150,9,188,9,193,9,38,0,150,9,194,9,60,0,60,0,60,0,150,9,188,9,194,9,38,0,150,9,195,9,60,0,60,0,60,0,150,9,188,9,195,9,38,0,150,9,196,9,60,0,60,0,60,0,150,9,188,9,196,9,38,0,150,9,226,9,60,0,60,0,60,0,150,9,188,9,226,9,38,0,150,9,227,9,60,0,60,0,60,0,150,9,188,9,227,9,38,0,150,9,199,9,60,0,60,0,60,0,150,9,188,9,199,9,38,0,150,9,200,9,60,0,60,0,60,0,150,9,188,9,200,9,38,0,150,9,203,9,60,0,60,0,60,0,150,9,188,9,203,9,38,0,150,9,204,9,60,0,60,0,60,0,150,9,188,9,204,9,38,0,150,9,205,9,60,0,60,0,60,0,150,9,188,9,205,9,38,0,151,9,60,0,60,0,60,0,151,9,188,9,38,0,151,9,190,9,60,0,60,0,60,0,151,9,188,9,190,9,38,0,151,9,191,9,60,0,60,0,60,0,151,9,188,9,191,9,38,0,151,9,192,9,60,0,60,0,60,0,151,9,188,9,192,9,38,0,151,9,193,9,60,0,60,0,60,0,151,9,188,9,193,9,38,0,151,9,194,9,60,0,60,0,60,0,151,9,188,9,194,9,38,0,151,9,195,9,60,0,60,0,60,0,151,9,188,9,195,9,38,0,151,9,196,9,60,0,60,0,60,0,151,9,188,9,196,9,38,0,151,9,226,9,60,0,60,0,60,0,151,9,188,9,226,9,38,0,151,9,227,9,60,0,60,0,60,0,151,9,188,9,227,9,38,0,151,9,199,9,60,0,60,0,60,0,151,9,188,9,199,9,38,0,151,9,200,9,60,0,60,0,60,0,151,9,188,9,200,9,38,0,151,9,203,9,60,0,60,0,60,0,151,9,188,9,203,9,38,0,151,9,204,9,60,0,60,0,60,0,151,9,188,9,204,9,38,0,151,9,205,9,60,0,60,0,60,0,151,9,188,9,205,9,38,0,156,9,60,0,60,0,60,0,156,9,188,9,38,0,156,9,190,9,60,0,60,0,60,0,156,9,188,9,190,9,38,0,156,9,191,9,60,0,60,0,60,0,156,9,188,9,191,9,38,0,156,9,192,9,60,0,60,0,60,0,156,9,188,9,192,9,38,0,156,9,193,9,60,0,60,0,60,0,156,9,188,9,193,9,38,0,156,9,194,9,60,0,60,0,60,0,156,9,188,9,194,9,38,0,156,9,195,9,60,0,60,0,60,0,156,9,188,9,195,9,38,0,156,9,196,9,60,0,60,0,60,0,156,9,188,9,196,9,38,0,156,9,226,9,60,0,60,0,60,0,156,9,188,9,226,9,38,0,156,9,227,9,60,0,60,0,60,0,156,9,188,9,227,9,38,0,156,9,199,9,60,0,60,0,60,0,156,9,188,9,199,9,38,0,156,9,200,9,60,0,60,0,60,0,156,9,188,9,200,9,38,0,156,9,203,9,60,0,60,0,60,0,156,9,188,9,203,9,38,0,156,9,204,9,60,0,60,0,60,0,156,9,188,9,204,9,38,0,156,9,205,9,60,0,60,0,60,0,156,9,188,9,205,9,38,0,161,9,60,0,60,0,60,0,161,9,188,9,38,0,161,9,190,9,60,0,60,0,60,0,161,9,188,9,190,9,38,0,161,9,191,9,60,0,60,0,60,0,161,9,188,9,191,9,38,0,161,9,192,9,60,0,60,0,60,0,161,9,188,9,192,9,38,0,161,9,193,9,60,0,60,0,60,0,161,9,188,9,193,9,38,0,161,9,194,9,60,0,60,0,60,0,161,9,188,9,194,9,38,0,161,9,195,9,60,0,60,0,60,0,161,9,188,9,195,9,38,0,161,9,196,9,60,0,60,0,60,0,161,9,188,9,196,9,38,0,161,9,226,9,60,0,60,0,60,0,161,9,188,9,226,9,38,0,161,9,227,9,60,0,60,0,60,0,161,9,188,9,227,9,38,0,161,9,199,9,60,0,60,0,60,0,161,9,188,9,199,9,38,0,161,9,200,9,60,0,60,0,60,0,161,9,188,9,200,9,38,0,161,9,203,9,60,0,60,0,60,0,161,9,188,9,203,9,38,0,161,9,204,9,60,0,60,0,60,0,161,9,188,9,204,9,38,0,161,9,205,9,60,0,60,0,60,0,161,9,188,9,205,9,38,0,162,9,60,0,60,0,60,0,162,9,188,9,38,0,162,9,190,9,60,0,60,0,60,0,162,9,188,9,190,9,38,0,162,9,191,9,60,0,60,0,60,0,162,9,188,9,191,9,38,0,162,9,192,9,60,0,60,0,60,0,162,9,188,9,192,9,38,0,162,9,193,9,60,0,60,0,60,0,162,9,188,9,193,9,38,0,162,9,194,9,60,0,60,0,60,0,162,9,188,9,194,9,38,0,162,9,195,9,60,0,60,0,60,0,162,9,188,9,195,9,38,0,162,9,196,9,60,0,60,0,60,0,162,9,188,9,196,9,38,0,162,9,226,9,60,0,60,0,60,0,162,9,188,9,226,9,38,0,162,9,227,9,60,0,60,0,60,0,162,9,188,9,227,9,38,0,162,9,199,9,60,0,60,0,60,0,162,9,188,9,199,9,38,0,162,9,200,9,60,0,60,0,60,0,162,9,188,9,200,9,38,0,162,9,203,9,60,0,60,0,60,0,162,9,188,9,203,9,38,0,162,9,204,9,60,0,60,0,60,0,162,9,188,9,204,9,38,0,162,9,205,9,60,0,60,0,60,0,162,9,188,9,205,9,38,0,171,9,60,0,60,0,60,0,171,9,188,9,38,0,171,9,190,9,60,0,60,0,60,0,171,9,188,9,190,9,38,0,171,9,191,9,60,0,60,0,60,0,171,9,188,9,191,9,38,0,171,9,192,9,60,0,60,0,60,0,171,9,188,9,192,9,38,0,171,9,193,9,60,0,60,0,60,0,171,9,188,9,193,9,38,0,171,9,194,9,60,0,60,0,60,0,171,9,188,9,194,9,38,0,171,9,195,9,60,0,60,0,60,0,171,9,188,9,195,9,38,0,171,9,196,9,60,0,60,0,60,0,171,9,188,9,196,9,38,0,171,9,226,9,60,0,60,0,60,0,171,9,188,9,226,9,38,0,171,9,227,9,60,0,60,0,60,0,171,9,188,9,227,9,38,0,171,9,199,9,60,0,60,0,60,0,171,9,188,9,199,9,38,0,171,9,200,9,60,0,60,0,60,0,171,9,188,9,200,9,38,0,171,9,203,9,60,0,60,0,60,0,171,9,188,9,203,9,38,0,171,9,204,9,60,0,60,0,60,0,171,9,188,9,204,9,38,0,171,9,205,9,60,0,60,0,60,0,171,9,188,9,205,9,38,0,172,9,60,0,60,0,60,0,172,9,188,9,38,0,172,9,190,9,60,0,60,0,60,0,172,9,188,9,190,9,38,0,172,9,191,9,60,0,60,0,60,0,172,9,188,9,191,9,38,0,172,9,192,9,60,0,60,0,60,0,172,9,188,9,192,9,38,0,172,9,193,9,60,0,60,0,60,0,172,9,188,9,193,9,38,0,172,9,194,9,60,0,60,0,60,0,172,9,188,9,194,9,38,0,172,9,195,9,60,0,60,0,60,0,172,9,188,9,195,9,38,0,172,9,196,9,60,0,60,0,60,0,172,9,188,9,196,9,38,0,172,9,226,9,60,0,60,0,60,0,172,9,188,9,226,9,38,0,172,9,227,9,60,0,60,0,60,0,172,9,188,9,227,9,38,0,172,9,199,9,60,0,60,0,60,0,172,9,188,9,199,9,38,0,172,9,200,9,60,0,60,0,60,0,172,9,188,9,200,9,38,0,172,9,203,9,60,0,60,0,60,0,172,9,188,9,203,9,38,0,172,9,204,9,60,0,60,0,60,0,172,9,188,9,204,9,38,0,172,9,205,9,60,0,60,0,60,0,172,9,188,9,205,9,38,0,175,9,60,0,60,0,60,0,175,9,188,9,38,0,175,9,190,9,60,0,60,0,60,0,175,9,188,9,190,9,38,0,175,9,191,9,60,0,60,0,60,0,175,9,188,9,191,9,38,0,175,9,192,9,60,0,60,0,60,0,175,9,188,9,192,9,38,0,175,9,193,9,60,0,60,0,60,0,175,9,188,9,193,9,38,0,175,9,194,9,60,0,60,0,60,0,175,9,188,9,194,9,38,0,175,9,195,9,60,0,60,0,60,0,175,9,188,9,195,9,38,0,175,9,196,9,60,0,60,0,60,0,175,9,188,9,196,9,38,0,175,9,226,9,60,0,60,0,60,0,175,9,188,9,226,9,38,0,175,9,227,9,60,0,60,0,60,0,175,9,188,9,227,9,38,0,175,9,199,9,60,0,60,0,60,0,175,9,188,9,199,9,38,0,175,9,200,9,60,0,60,0,60,0,175,9,188,9,200,9,38,0,175,9,203,9,60,0,60,0,60,0,175,9,188,9,203,9,38,0,175,9,204,9,60,0,60,0,60,0,175,9,188,9,204,9,38,0,175,9,205,9,60,0,60,0,60,0,175,9,188,9,205,9,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,20,25,0,0,20,25,0,0,20,25,0,0,20,25,0,0,88,25,0,0,4,0,0,0,10,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,105,190,255,0,106,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,39,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,35,105,193,2,35,105,193,3,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,115,9,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,188,67,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,144,26,0,0,144,26,0,0,184,27,0,0,184,27,0,0,92,46,0,0,92,46,0,0,142,67,0,0,164,67,0,0,4,0,0,0,10,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,105,190,255,0,106,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,39,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,136,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,111,0,119,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,147,0,202,1,148,0,202,34,148,0,202,67,148,0,202,100,148,0,202,133,148,0,202,166,148,0,202,199,148,0,202,232,148,0,202,9,149,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,147,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,147,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,147,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,35,105,193,2,35,105,193,3,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,4,0,0,201,164,14,0,201,68,29,0,201,4,44,0,201,100,51,0,201,196,58,0,201,36,66,0,201,132,73,0,201,68,88,0,201,164,95,0,201,4,103,0,201,100,110,0,201,196,117,0,201,132,132,0,201,68,147,0,201,164,154,0,201,132,162,0,201,228,169,0,201,68,177,0,201,164,184,0,192,0,0,0,201,4,192,0,201,100,199,0,201,36,214,0,201,228,228,0,201,68,236,0,201,164,243,0,201,100,2,1,192,0,0,0,201,196,9,1,192,0,0,0,192,0,0,0,192,0,0,0,201,36,17,1,201,132,24,1,201,228,31,1,201,68,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,20,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,164,46,1,201,228,53,1,192,0,0,0,201,36,61,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,68,1,201,196,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,6,0,5,0,5,35,105,0,6,0,5,0,6,35,105,0,6,0,5,0,7,35,105,0,6,0,5,0,12,35,105,0,6,0,5,0,17,35,105,0,6,0,5,0,18,35,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,8,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,10,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,12,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,14,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,16,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,18,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,20,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,22,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,28,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,32,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,34,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,30,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,24,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,26,105,0,6,0,5,0,26,35,105,0,6,0,5,0,27,35,105,0,6,0,5,0,30,35,105,0,0,0,0,193,5,35,105,5,5,8,105,193,5,35,105,14,5,8,105,193,5,35,105,14,5,10,105,193,5,35,105,14,5,12,105,193,5,35,105,14,5,14,105,193,5,35,105,14,5,16,105,193,5,35,105,14,5,18,105,193,5,35,105,14,5,20,105,193,5,35,105,14,5,22,105,193,5,35,105,14,5,28,105,193,5,35,105,14,5,32,105,193,5,35,105,14,5,34,105,193,5,35,105,14,5,30,105,193,5,35,105,14,5,24,105,193,5,35,105,14,5,26,105,193,5,35,105,5,5,10,105,193,5,35,105,5,5,12,105,193,5,35,105,5,5,14,105,193,5,35,105,5,5,16,105,193,5,35,105,5,5,18,105,193,5,35,105,5,5,20,105,193,5,35,105,5,5,22,105,193,5,35,105,5,5,28,105,193,5,35,105,5,5,32,105,193,5,35,105,5,5,34,105,193,5,35,105,5,5,30,105,193,5,35,105,5,5,24,105,193,5,35,105,5,5,26,105,193,6,35,105,5,5,8,105,193,6,35,105,13,5,8,105,193,6,35,105,13,5,10,105,193,6,35,105,13,5,12,105,193,6,35,105,13,5,14,105,193,6,35,105,13,5,16,105,193,6,35,105,13,5,18,105,193,6,35,105,13,5,20,105,193,6,35,105,13,5,22,105,193,6,35,105,13,5,28,105,193,6,35,105,13,5,32,105,193,6,35,105,13,5,34,105,193,6,35,105,13,5,30,105,193,6,35,105,13,5,24,105,193,6,35,105,13,5,26,105,193,6,35,105,5,5,10,105,193,6,35,105,5,5,12,105,193,6,35,105,5,5,14,105,193,6,35,105,5,5,16,105,193,6,35,105,5,5,18,105,193,6,35,105,5,5,20,105,193,6,35,105,5,5,22,105,193,6,35,105,5,5,28,105,193,6,35,105,5,5,32,105,193,6,35,105,5,5,34,105,193,6,35,105,5,5,30,105,193,6,35,105,5,5,24,105,193,6,35,105,5,5,26,105,193,7,35,105,5,5,8,105,193,7,35,105,12,5,8,105,193,7,35,105,12,5,10,105,193,7,35,105,12,5,12,105,193,7,35,105,12,5,14,105,193,7,35,105,12,5,16,105,193,7,35,105,12,5,18,105,193,7,35,105,12,5,20,105,193,7,35,105,12,5,22,105,193,7,35,105,12,5,28,105,193,7,35,105,12,5,32,105,193,7,35,105,12,5,34,105,193,7,35,105,12,5,30,105,193,7,35,105,12,5,24,105,193,7,35,105,12,5,26,105,193,7,35,105,5,5,10,105,193,7,35,105,5,5,12,105,193,7,35,105,5,5,14,105,193,7,35,105,5,5,16,105,193,7,35,105,5,5,18,105,193,7,35,105,5,5,20,105,193,7,35,105,5,5,22,105,193,7,35,105,5,5,28,105,193,7,35,105,5,5,32,105,193,7,35,105,5,5,34,105,193,7,35,105,5,5,30,105,193,7,35,105,5,5,24,105,193,7,35,105,5,5,26,105,193,8,35,105,5,5,8,105,193,8,35,105,5,5,10,105,193,8,35,105,5,5,12,105,193,8,35,105,5,5,14,105,193,8,35,105,5,5,16,105,193,8,35,105,5,5,18,105,193,8,35,105,5,5,20,105,193,8,35,105,5,5,22,105,193,8,35,105,5,5,28,105,193,8,35,105,5,5,32,105,193,8,35,105,5,5,34,105,193,8,35,105,5,5,30,105,193,8,35,105,5,5,24,105,193,8,35,105,5,5,26,105,193,9,35,105,5,5,8,105,193,9,35,105,5,5,10,105,193,9,35,105,5,5,12,105,193,9,35,105,5,5,14,105,193,9,35,105,5,5,16,105,193,9,35,105,5,5,18,105,193,9,35,105,5,5,20,105,193,9,35,105,5,5,22,105,193,9,35,105,5,5,28,105,193,9,35,105,5,5,32,105,193,9,35,105,5,5,34,105,193,9,35,105,5,5,30,105,193,9,35,105,5,5,24,105,193,9,35,105,5,5,26,105,193,10,35,105,5,5,8,105,193,10,35,105,5,5,10,105,193,10,35,105,5,5,12,105,193,10,35,105,5,5,14,105,193,10,35,105,5,5,16,105,193,10,35,105,5,5,18,105,193,10,35,105,5,5,20,105,193,10,35,105,5,5,22,105,193,10,35,105,5,5,28,105,193,10,35,105,5,5,32,105,193,10,35,105,5,5,34,105,193,10,35,105,5,5,30,105,193,10,35,105,5,5,24,105,193,10,35,105,5,5,26,105,193,11,35,105,5,5,8,105,193,11,35,105,5,5,10,105,193,11,35,105,5,5,12,105,193,11,35,105,5,5,14,105,193,11,35,105,5,5,16,105,193,11,35,105,5,5,18,105,193,11,35,105,5,5,20,105,193,11,35,105,5,5,22,105,193,11,35,105,5,5,28,105,193,11,35,105,5,5,32,105,193,11,35,105,5,5,34,105,193,11,35,105,5,5,30,105,193,11,35,105,5,5,24,105,193,11,35,105,5,5,26,105,193,12,35,105,5,5,8,105,193,12,35,105,11,5,8,105,193,12,35,105,11,5,10,105,193,12,35,105,11,5,12,105,193,12,35,105,11,5,14,105,193,12,35,105,11,5,16,105,193,12,35,105,11,5,18,105,193,12,35,105,11,5,20,105,193,12,35,105,11,5,22,105,193,12,35,105,11,5,28,105,193,12,35,105,11,5,32,105,193,12,35,105,11,5,34,105,193,12,35,105,11,5,30,105,193,12,35,105,11,5,24,105,193,12,35,105,11,5,26,105,193,12,35,105,5,5,10,105,193,12,35,105,5,5,12,105,193,12,35,105,5,5,14,105,193,12,35,105,5,5,16,105,193,12,35,105,5,5,18,105,193,12,35,105,5,5,20,105,193,12,35,105,5,5,22,105,193,12,35,105,5,5,28,105,193,12,35,105,5,5,32,105,193,12,35,105,5,5,34,105,193,12,35,105,5,5,30,105,193,12,35,105,5,5,24,105,193,12,35,105,5,5,26,105,193,13,35,105,5,5,8,105,193,13,35,105,5,5,10,105,193,13,35,105,5,5,12,105,193,13,35,105,5,5,14,105,193,13,35,105,5,5,16,105,193,13,35,105,5,5,18,105,193,13,35,105,5,5,20,105,193,13,35,105,5,5,22,105,193,13,35,105,5,5,28,105,193,13,35,105,5,5,32,105,193,13,35,105,5,5,34,105,193,13,35,105,5,5,30,105,193,13,35,105,5,5,24,105,193,13,35,105,5,5,26,105,193,14,35,105,5,5,8,105,193,14,35,105,5,5,10,105,193,14,35,105,5,5,12,105,193,14,35,105,5,5,14,105,193,14,35,105,5,5,16,105,193,14,35,105,5,5,18,105,193,14,35,105,5,5,20,105,193,14,35,105,5,5,22,105,193,14,35,105,5,5,28,105,193,14,35,105,5,5,32,105,193,14,35,105,5,5,34,105,193,14,35,105,5,5,30,105,193,14,35,105,5,5,24,105,193,14,35,105,5,5,26,105,193,15,35,105,5,5,8,105,193,15,35,105,5,5,10,105,193,15,35,105,5,5,12,105,193,15,35,105,5,5,14,105,193,15,35,105,5,5,16,105,193,15,35,105,5,5,18,105,193,15,35,105,5,5,20,105,193,15,35,105,5,5,22,105,193,15,35,105,5,5,28,105,193,15,35,105,5,5,32,105,193,15,35,105,5,5,34,105,193,15,35,105,5,5,30,105,193,15,35,105,5,5,24,105,193,15,35,105,5,5,26,105,193,16,35,105,5,5,8,105,193,16,35,105,5,5,10,105,193,16,35,105,5,5,12,105,193,16,35,105,5,5,14,105,193,16,35,105,5,5,16,105,193,16,35,105,5,5,18,105,193,16,35,105,5,5,20,105,193,16,35,105,5,5,22,105,193,16,35,105,5,5,28,105,193,16,35,105,5,5,32,105,193,16,35,105,5,5,34,105,193,16,35,105,5,5,30,105,193,16,35,105,5,5,24,105,193,16,35,105,5,5,26,105,193,17,35,105,5,5,8,105,193,17,35,105,10,5,8,105,193,17,35,105,10,5,10,105,193,17,35,105,10,5,12,105,193,17,35,105,10,5,14,105,193,17,35,105,10,5,16,105,193,17,35,105,10,5,18,105,193,17,35,105,10,5,20,105,193,17,35,105,10,5,22,105,193,17,35,105,10,5,28,105,193,17,35,105,10,5,32,105,193,17,35,105,10,5,34,105,193,17,35,105,10,5,30,105,193,17,35,105,10,5,24,105,193,17,35,105,10,5,26,105,193,17,35,105,5,5,10,105,193,17,35,105,5,5,12,105,193,17,35,105,5,5,14,105,193,17,35,105,5,5,16,105,193,17,35,105,5,5,18,105,193,17,35,105,5,5,20,105,193,17,35,105,5,5,22,105,193,17,35,105,5,5,28,105,193,17,35,105,5,5,32,105,193,17,35,105,5,5,34,105,193,17,35,105,5,5,30,105,193,17,35,105,5,5,24,105,193,17,35,105,5,5,26,105,193,18,35,105,5,5,8,105,193,18,35,105,9,5,8,105,193,18,35,105,9,5,10,105,193,18,35,105,9,5,12,105,193,18,35,105,9,5,14,105,193,18,35,105,9,5,16,105,193,18,35,105,9,5,18,105,193,18,35,105,9,5,20,105,193,18,35,105,9,5,22,105,193,18,35,105,9,5,28,105,193,18,35,105,9,5,32,105,193,18,35,105,9,5,34,105,193,18,35,105,9,5,30,105,193,18,35,105,9,5,24,105,193,18,35,105,9,5,26,105,193,18,35,105,5,5,10,105,193,18,35,105,5,5,12,105,193,18,35,105,5,5,14,105,193,18,35,105,5,5,16,105,193,18,35,105,5,5,18,105,193,18,35,105,5,5,20,105,193,18,35,105,5,5,22,105,193,18,35,105,5,5,28,105,193,18,35,105,5,5,32,105,193,18,35,105,5,5,34,105,193,18,35,105,5,5,30,105,193,18,35,105,5,5,24,105,193,18,35,105,5,5,26,105,193,19,35,105,5,5,8,105,193,19,35,105,5,5,10,105,193,19,35,105,5,5,12,105,193,19,35,105,5,5,14,105,193,19,35,105,5,5,16,105,193,19,35,105,5,5,18,105,193,19,35,105,5,5,20,105,193,19,35,105,5,5,22,105,193,19,35,105,5,5,28,105,193,19,35,105,5,5,32,105,193,19,35,105,5,5,34,105,193,19,35,105,5,5,30,105,193,19,35,105,5,5,24,105,193,19,35,105,5,5,26,105,193,21,35,105,5,5,8,105,193,21,35,105,5,5,10,105,193,21,35,105,5,5,12,105,193,21,35,105,5,5,14,105,193,21,35,105,5,5,16,105,193,21,35,105,5,5,18,105,193,21,35,105,5,5,20,105,193,21,35,105,5,5,22,105,193,21,35,105,5,5,28,105,193,21,35,105,5,5,32,105,193,21,35,105,5,5,34,105,193,21,35,105,5,5,30,105,193,21,35,105,5,5,24,105,193,21,35,105,5,5,26,105,193,22,35,105,5,5,8,105,193,22,35,105,5,5,10,105,193,22,35,105,5,5,12,105,193,22,35,105,5,5,14,105,193,22,35,105,5,5,16,105,193,22,35,105,5,5,18,105,193,22,35,105,5,5,20,105,193,22,35,105,5,5,22,105,193,22,35,105,5,5,28,105,193,22,35,105,5,5,32,105,193,22,35,105,5,5,34,105,193,22,35,105,5,5,30,105,193,22,35,105,5,5,24,105,193,22,35,105,5,5,26,105,193,23,35,105,5,5,8,105,193,23,35,105,5,5,10,105,193,23,35,105,5,5,12,105,193,23,35,105,5,5,14,105,193,23,35,105,5,5,16,105,193,23,35,105,5,5,18,105,193,23,35,105,5,5,20,105,193,23,35,105,5,5,22,105,193,23,35,105,5,5,28,105,193,23,35,105,5,5,32,105,193,23,35,105,5,5,34,105,193,23,35,105,5,5,30,105,193,23,35,105,5,5,24,105,193,23,35,105,5,5,26,105,193,24,35,105,5,5,8,105,193,24,35,105,5,5,10,105,193,24,35,105,5,5,12,105,193,24,35,105,5,5,14,105,193,24,35,105,5,5,16,105,193,24,35,105,5,5,18,105,193,24,35,105,5,5,20,105,193,24,35,105,5,5,22,105,193,24,35,105,5,5,28,105,193,24,35,105,5,5,32,105,193,24,35,105,5,5,34,105,193,24,35,105,5,5,30,105,193,24,35,105,5,5,24,105,193,24,35,105,5,5,26,105,193,25,35,105,5,5,8,105,193,25,35,105,5,5,10,105,193,25,35,105,5,5,12,105,193,25,35,105,5,5,14,105,193,25,35,105,5,5,16,105,193,25,35,105,5,5,18,105,193,25,35,105,5,5,20,105,193,25,35,105,5,5,22,105,193,25,35,105,5,5,28,105,193,25,35,105,5,5,32,105,193,25,35,105,5,5,34,105,193,25,35,105,5,5,30,105,193,25,35,105,5,5,24,105,193,25,35,105,5,5,26,105,193,26,35,105,5,5,8,105,193,26,35,105,8,5,8,105,193,26,35,105,8,5,10,105,193,26,35,105,8,5,12,105,193,26,35,105,8,5,14,105,193,26,35,105,8,5,16,105,193,26,35,105,8,5,18,105,193,26,35,105,8,5,20,105,193,26,35,105,8,5,22,105,193,26,35,105,8,5,28,105,193,26,35,105,8,5,32,105,193,26,35,105,8,5,34,105,193,26,35,105,8,5,30,105,193,26,35,105,8,5,24,105,193,26,35,105,8,5,26,105,193,26,35,105,5,5,10,105,193,26,35,105,5,5,12,105,193,26,35,105,5,5,14,105,193,26,35,105,5,5,16,105,193,26,35,105,5,5,18,105,193,26,35,105,5,5,20,105,193,26,35,105,5,5,22,105,193,26,35,105,5,5,28,105,193,26,35,105,5,5,32,105,193,26,35,105,5,5,34,105,193,26,35,105,5,5,30,105,193,26,35,105,5,5,24,105,193,26,35,105,5,5,26,105,193,27,35,105,5,5,8,105,193,27,35,105,7,5,8,105,193,27,35,105,7,5,10,105,193,27,35,105,7,5,12,105,193,27,35,105,7,5,14,105,193,27,35,105,7,5,16,105,193,27,35,105,7,5,18,105,193,27,35,105,7,5,20,105,193,27,35,105,7,5,22,105,193,27,35,105,7,5,28,105,193,27,35,105,7,5,32,105,193,27,35,105,7,5,34,105,193,27,35,105,7,5,30,105,193,27,35,105,7,5,24,105,193,27,35,105,7,5,26,105,193,27,35,105,5,5,10,105,193,27,35,105,5,5,12,105,193,27,35,105,5,5,14,105,193,27,35,105,5,5,16,105,193,27,35,105,5,5,18,105,193,27,35,105,5,5,20,105,193,27,35,105,5,5,22,105,193,27,35,105,5,5,28,105,193,27,35,105,5,5,32,105,193,27,35,105,5,5,34,105,193,27,35,105,5,5,30,105,193,27,35,105,5,5,24,105,193,27,35,105,5,5,26,105,193,28,35,105,5,5,8,105,193,28,35,105,5,5,10,105,193,28,35,105,5,5,12,105,193,28,35,105,5,5,14,105,193,28,35,105,5,5,16,105,193,28,35,105,5,5,18,105,193,28,35,105,5,5,20,105,193,28,35,105,5,5,22,105,193,28,35,105,5,5,28,105,193,28,35,105,5,5,32,105,193,28,35,105,5,5,34,105,193,28,35,105,5,5,30,105,193,28,35,105,5,5,24,105,193,28,35,105,5,5,26,105,193,29,35,105,5,5,8,105,193,29,35,105,5,5,10,105,193,29,35,105,5,5,12,105,193,29,35,105,5,5,14,105,193,29,35,105,5,5,16,105,193,29,35,105,5,5,18,105,193,29,35,105,5,5,20,105,193,29,35,105,5,5,22,105,193,29,35,105,5,5,28,105,193,29,35,105,5,5,32,105,193,29,35,105,5,5,34,105,193,29,35,105,5,5,30,105,193,29,35,105,5,5,24,105,193,29,35,105,5,5,26,105,193,30,35,105,5,5,8,105,193,30,35,105,6,5,8,105,193,30,35,105,6,5,10,105,193,30,35,105,6,5,12,105,193,30,35,105,6,5,14,105,193,30,35,105,6,5,16,105,193,30,35,105,6,5,18,105,193,30,35,105,6,5,20,105,193,30,35,105,6,5,22,105,193,30,35,105,6,5,28,105,193,30,35,105,6,5,32,105,193,30,35,105,6,5,34,105,193,30,35,105,6,5,30,105,193,30,35,105,6,5,24,105,193,30,35,105,6,5,26,105,193,30,35,105,5,5,10,105,193,30,35,105,5,5,12,105,193,30,35,105,5,5,14,105,193,30,35,105,5,5,16,105,193,30,35,105,5,5,18,105,193,30,35,105,5,5,20,105,193,30,35,105,5,5,22,105,193,30,35,105,5,5,28,105,193,30,35,105,5,5,32,105,193,30,35,105,5,5,34,105,193,30,35,105,5,5,30,105,193,30,35,105,5,5,24,105,193,30,35,105,5,5,26,105,193,31,35,105,5,5,8,105,193,31,35,105,5,5,10,105,193,31,35,105,5,5,12,105,193,31,35,105,5,5,14,105,193,31,35,105,5,5,16,105,193,31,35,105,5,5,18,105,193,31,35,105,5,5,20,105,193,31,35,105,5,5,22,105,193,31,35,105,5,5,28,105,193,31,35,105,5,5,32,105,193,31,35,105,5,5,34,105,193,31,35,105,5,5,30,105,193,31,35,105,5,5,24,105,193,31,35,105,5,5,26,105,193,33,35,105,5,5,8,105,193,33,35,105,5,5,10,105,193,33,35,105,5,5,12,105,193,33,35,105,5,5,14,105,193,33,35,105,5,5,16,105,193,33,35,105,5,5,18,105,193,33,35,105,5,5,20,105,193,33,35,105,5,5,22,105,193,33,35,105,5,5,28,105,193,33,35,105,5,5,32,105,193,33,35,105,5,5,34,105,193,33,35,105,5,5,30,105,193,33,35,105,5,5,24,105,193,33,35,105,5,5,26,105,193,35,35,105,5,5,8,105,193,35,35,105,5,5,10,105,193,35,35,105,5,5,12,105,193,35,35,105,5,5,14,105,193,35,35,105,5,5,16,105,193,35,35,105,5,5,18,105,193,35,35,105,5,5,20,105,193,35,35,105,5,5,22,105,193,35,35,105,5,5,28,105,193,35,35,105,5,5,32,105,193,35,35,105,5,5,34,105,193,35,35,105,5,5,30,105,193,35,35,105,5,5,24,105,193,35,35,105,5,5,26,105,193,36,35,105,5,5,8,105,193,36,35,105,5,5,10,105,193,36,35,105,5,5,12,105,193,36,35,105,5,5,14,105,193,36,35,105,5,5,16,105,193,36,35,105,5,5,18,105,193,36,35,105,5,5,20,105,193,36,35,105,5,5,22,105,193,36,35,105,5,5,28,105,193,36,35,105,5,5,32,105,193,36,35,105,5,5,34,105,193,36,35,105,5,5,30,105,193,36,35,105,5,5,24,105,193,36,35,105,5,5,26,105,193,37,35,105,5,5,8,105,193,37,35,105,5,5,10,105,193,37,35,105,5,5,12,105,193,37,35,105,5,5,14,105,193,37,35,105,5,5,16,105,193,37,35,105,5,5,18,105,193,37,35,105,5,5,20,105,193,37,35,105,5,5,22,105,193,37,35,105,5,5,28,105,193,37,35,105,5,5,32,105,193,37,35,105,5,5,34,105,193,37,35,105,5,5,30,105,193,37,35,105,5,5,24,105,193,37,35,105,5,5,26,105,193,38,35,105,5,5,8,105,193,38,35,105,5,5,10,105,193,38,35,105,5,5,12,105,193,38,35,105,5,5,14,105,193,38,35,105,5,5,16,105,193,38,35,105,5,5,18,105,193,38,35,105,5,5,20,105,193,38,35,105,5,5,22,105,193,38,35,105,5,5,28,105,193,38,35,105,5,5,32,105,193,38,35,105,5,5,34,105,193,38,35,105,5,5,30,105,193,38,35,105,5,5,24,105,193,38,35,105,5,5,26,105,193,32,35,105,5,5,8,105,193,32,35,105,5,5,10,105,193,32,35,105,5,5,12,105,193,32,35,105,5,5,14,105,193,32,35,105,5,5,16,105,193,32,35,105,5,5,18,105,193,32,35,105,5,5,20,105,193,32,35,105,5,5,22,105,193,32,35,105,5,5,28,105,193,32,35,105,5,5,32,105,193,32,35,105,5,5,34,105,193,32,35,105,5,5,30,105,193,32,35,105,5,5,24,105,193,32,35,105,5,5,26,105,193,34,35,105,5,5,8,105,193,34,35,105,5,5,10,105,193,34,35,105,5,5,12,105,193,34,35,105,5,5,14,105,193,34,35,105,5,5,16,105,193,34,35,105,5,5,18,105,193,34,35,105,5,5,20,105,193,34,35,105,5,5,22,105,193,34,35,105,5,5,28,105,193,34,35,105,5,5,32,105,193,34,35,105,5,5,34,105,193,34,35,105,5,5,30,105,193,34,35,105,5,5,24,105,193,34,35,105,5,5,26,105,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,6,192,197,34,205,9,255,255,35,105,193,5,226,9,6,192,197,162,227,9,6,192,197,226,196,9,5,192,197,98,199,9,6,0,200,9,6,192,197,98,203,9,5,192,197,226,129,65,197,162,190,9,5,192,197,226,215,9,6,192,197,34,192,9,12,0,192,9,4,192,197,98,193,9,4,192,197,162,194,9,4,192,197,226,195,9,5,192,197,34,188,9,6,0,190,9,3,192,197,226,191,9,4,192,197,34,77,64,197,98,199,9,29,0,204,9,11,0,204,9,2,192,197,226,205,9,198,129,226,9,3,192,197,98,227,9,3,192,197,162,199,9,6,0,200,9,3,192,197,34,203,9,2,192,197,162,193,64,197,98,190,9,2,192,197,162,215,9,2,192,197,226,193,9,12,0,193,9,1,192,197,98,194,9,1,192,197,162,195,9,1,192,197,226,196,9,2,192,197,34,190,9,0,192,197,162,191,9,0,192,197,226,192,9,1,192,197,34,7,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,13,192,197,34,205,9,255,255,35,105,193,6,226,9,13,192,197,162,227,9,13,192,197,226,196,9,12,192,197,98,199,9,6,0,200,9,13,192,197,98,203,9,12,192,197,226,65,67,197,162,190,9,12,192,197,226,215,9,13,192,197,34,192,9,12,0,192,9,11,192,197,98,193,9,11,192,197,162,194,9,11,192,197,226,195,9,12,192,197,34,188,9,6,0,190,9,10,192,197,226,191,9,11,192,197,34,13,66,197,98,199,9,29,0,204,9,11,0,204,9,9,192,197,226,205,9,198,161,226,9,10,192,197,98,227,9,10,192,197,162,199,9,6,0,200,9,10,192,197,34,203,9,9,192,197,162,129,66,197,98,190,9,9,192,197,162,215,9,9,192,197,226,193,9,12,0,193,9,8,192,197,98,194,9,8,192,197,162,195,9,8,192,197,226,196,9,9,192,197,34,190,9,7,192,197,162,191,9,7,192,197,226,192,9,8,192,197,34,14,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,20,192,197,34,205,9,255,255,35,105,193,7,226,9,20,192,197,162,227,9,20,192,197,226,196,9,19,192,197,98,199,9,6,0,200,9,20,192,197,98,203,9,19,192,197,226,1,69,197,162,190,9,19,192,197,226,215,9,20,192,197,34,192,9,12,0,192,9,18,192,197,98,193,9,18,192,197,162,194,9,18,192,197,226,195,9,19,192,197,34,188,9,6,0,190,9,17,192,197,226,191,9,18,192,197,34,205,67,197,98,199,9,30,0,204,9,12,0,204,9,16,192,197,226,205,9,0,192,198,65,226,9,17,192,197,98,227,9,17,192,197,162,199,9,6,0,200,9,17,192,197,34,203,9,16,192,197,162,65,68,197,98,190,9,16,192,197,162,215,9,16,192,197,226,193,9,12,0,193,9,15,192,197,98,194,9,15,192,197,162,195,9,15,192,197,226,196,9,16,192,197,34,190,9,14,192,197,162,191,9,14,192,197,226,192,9,15,192,197,34,21,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,23,192,197,162,205,9,255,255,35,105,193,8,226,9,24,192,197,34,227,9,24,192,197,98,199,9,6,0,200,9,23,192,197,226,203,9,23,192,197,98,1,70,197,34,190,9,23,192,197,98,215,9,23,192,197,162,193,9,12,0,193,9,22,192,197,34,194,9,22,192,197,98,195,9,22,192,197,162,196,9,22,192,197,226,190,9,21,192,197,98,191,9,21,192,197,162,192,9,21,192,197,226,24,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,27,192,197,34,205,9,255,255,35,105,193,9,226,9,27,192,197,162,227,9,27,192,197,226,199,9,6,0,200,9,27,192,197,98,203,9,26,192,197,226,193,70,197,162,190,9,26,192,197,226,215,9,27,192,197,34,193,9,12,0,193,9,25,192,197,162,194,9,25,192,197,226,195,9,26,192,197,34,196,9,26,192,197,98,190,9,24,192,197,226,191,9,25,192,197,34,192,9,25,192,197,98,28,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,30,192,197,162,205,9,255,255,35,105,193,10,226,9,31,192,197,34,227,9,31,192,197,98,199,9,6,0,200,9,30,192,197,226,203,9,30,192,197,98,193,71,197,34,190,9,30,192,197,98,215,9,30,192,197,162,193,9,12,0,193,9,29,192,197,34,194,9,29,192,197,98,195,9,29,192,197,162,196,9,29,192,197,226,190,9,28,192,197,98,191,9,28,192,197,162,192,9,28,192,197,226,31,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,34,192,197,34,205,9,255,255,35,105,193,11,226,9,34,192,197,162,227,9,34,192,197,226,199,9,6,0,200,9,34,192,197,98,203,9,33,192,197,226,129,72,197,162,190,9,33,192,197,226,215,9,34,192,197,34,193,9,12,0,193,9,32,192,197,162,194,9,32,192,197,226,195,9,33,192,197,34,196,9,33,192,197,98,190,9,31,192,197,226,191,9,32,192,197,34,192,9,32,192,197,98,35,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,41,192,197,34,205,9,255,255,35,105,193,12,226,9,41,192,197,162,227,9,41,192,197,226,196,9,40,192,197,98,199,9,6,0,200,9,41,192,197,98,203,9,40,192,197,226,65,74,197,162,190,9,40,192,197,226,215,9,41,192,197,34,192,9,12,0,192,9,39,192,197,98,193,9,39,192,197,162,194,9,39,192,197,226,195,9,40,192,197,34,188,9,6,0,190,9,38,192,197,226,191,9,39,192,197,34,13,73,197,98,199,9,30,0,204,9,12,0,204,9,37,192,197,226,205,9,0,192,198,97,226,9,38,192,197,98,227,9,38,192,197,162,199,9,6,0,200,9,38,192,197,34,203,9,37,192,197,162,129,73,197,98,190,9,37,192,197,162,215,9,37,192,197,226,193,9,12,0,193,9,36,192,197,98,194,9,36,192,197,162,195,9,36,192,197,226,196,9,37,192,197,34,190,9,35,192,197,162,191,9,35,192,197,226,192,9,36,192,197,34,42,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,44,192,197,162,205,9,255,255,35,105,193,13,226,9,45,192,197,34,227,9,45,192,197,98,199,9,6,0,200,9,44,192,197,226,203,9,44,192,197,98,65,75,197,34,190,9,44,192,197,98,215,9,44,192,197,162,193,9,12,0,193,9,43,192,197,34,194,9,43,192,197,98,195,9,43,192,197,162,196,9,43,192,197,226,190,9,42,192,197,98,191,9,42,192,197,162,192,9,42,192,197,226,45,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,48,192,197,34,205,9,255,255,35,105,193,14,226,9,48,192,197,162,227,9,48,192,197,226,199,9,6,0,200,9,48,192,197,98,203,9,47,192,197,226,1,76,197,162,190,9,47,192,197,226,215,9,48,192,197,34,193,9,12,0,193,9,46,192,197,162,194,9,46,192,197,226,195,9,47,192,197,34,196,9,47,192,197,98,190,9,45,192,197,226,191,9,46,192,197,34,192,9,46,192,197,98,49,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,51,192,197,162,205,9,255,255,35,105,193,15,226,9,52,192,197,34,227,9,52,192,197,98,199,9,6,0,200,9,51,192,197,226,203,9,51,192,197,98,1,77,197,34,190,9,51,192,197,98,215,9,51,192,197,162,193,9,12,0,193,9,50,192,197,34,194,9,50,192,197,98,195,9,50,192,197,162,196,9,50,192,197,226,190,9,49,192,197,98,191,9,49,192,197,162,192,9,49,192,197,226,52,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,55,192,197,34,205,9,255,255,35,105,193,16,226,9,55,192,197,162,227,9,55,192,197,226,199,9,6,0,200,9,55,192,197,98,203,9,54,192,197,226,193,77,197,162,190,9,54,192,197,226,215,9,55,192,197,34,193,9,12,0,193,9,53,192,197,162,194,9,53,192,197,226,195,9,54,192,197,34,196,9,54,192,197,98,190,9,52,192,197,226,191,9,53,192,197,34,192,9,53,192,197,98,56,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,62,192,197,34,205,9,255,255,35,105,193,17,226,9,62,192,197,162,227,9,62,192,197,226,196,9,61,192,197,98,199,9,6,0,200,9,62,192,197,98,203,9,61,192,197,226,129,79,197,162,190,9,61,192,197,226,215,9,62,192,197,34,192,9,12,0,192,9,60,192,197,98,193,9,60,192,197,162,194,9,60,192,197,226,195,9,61,192,197,34,188,9,6,0,190,9,59,192,197,226,191,9,60,192,197,34,77,78,197,98,199,9,30,0,204,9,12,0,204,9,58,192,197,226,205,9,0,192,198,129,226,9,59,192,197,98,227,9,59,192,197,162,199,9,6,0,200,9,59,192,197,34,203,9,58,192,197,162,193,78,197,98,190,9,58,192,197,162,215,9,58,192,197,226,193,9,12,0,193,9,57,192,197,98,194,9,57,192,197,162,195,9,57,192,197,226,196,9,58,192,197,34,190,9,56,192,197,162,191,9,56,192,197,226,192,9,57,192,197,34,63,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,69,192,197,34,205,9,255,255,35,105,193,18,226,9,69,192,197,162,227,9,69,192,197,226,196,9,68,192,197,98,199,9,6,0,200,9,69,192,197,98,203,9,68,192,197,226,65,81,197,162,190,9,68,192,197,226,215,9,69,192,197,34,192,9,12,0,192,9,67,192,197,98,193,9,67,192,197,162,194,9,67,192,197,226,195,9,68,192,197,34,188,9,6,0,190,9,66,192,197,226,191,9,67,192,197,34,13,80,197,98,199,9,30,0,204,9,12,0,204,9,65,192,197,226,205,9,0,192,198,161,226,9,66,192,197,98,227,9,66,192,197,162,199,9,6,0,200,9,66,192,197,34,203,9,65,192,197,162,129,80,197,98,190,9,65,192,197,162,215,9,65,192,197,226,193,9,12,0,193,9,64,192,197,98,194,9,64,192,197,162,195,9,64,192,197,226,196,9,65,192,197,34,190,9,63,192,197,162,191,9,63,192,197,226,192,9,64,192,197,34,70,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,72,192,197,162,205,9,255,255,35,105,193,19,226,9,73,192,197,34,227,9,73,192,197,98,199,9,6,0,200,9,72,192,197,226,203,9,72,192,197,98,65,82,197,34,190,9,72,192,197,98,215,9,72,192,197,162,193,9,12,0,193,9,71,192,197,34,194,9,71,192,197,98,195,9,71,192,197,162,196,9,71,192,197,226,190,9,70,192,197,98,191,9,70,192,197,162,192,9,70,192,197,226,0,0,198,194,13,0,199,9,35,0,204,9,17,0,204,9,3,192,198,66,205,9,6,0,226,9,3,192,198,194,227,9,4,192,198,2,112,64,198,193,13,32,255,255,35,105,193,20,199,9,6,0,200,9,3,192,198,130,203,9,3,192,198,2,193,64,198,194,190,9,3,192,198,2,215,9,3,192,198,66,193,9,12,0,193,9,1,192,198,194,194,9,2,192,198,2,195,9,2,192,198,66,196,9,2,192,198,130,190,9,1,192,198,2,191,9,1,192,198,66,192,9,1,192,198,130,73,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,76,192,197,34,205,9,255,255,35,105,193,21,226,9,76,192,197,162,227,9,76,192,197,226,199,9,6,0,200,9,76,192,197,98,203,9,75,192,197,226,1,83,197,162,190,9,75,192,197,226,215,9,76,192,197,34,193,9,12,0,193,9,74,192,197,162,194,9,74,192,197,226,195,9,75,192,197,34,196,9,75,192,197,98,190,9,73,192,197,226,191,9,74,192,197,34,192,9,74,192,197,98,77,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,79,192,197,162,205,9,255,255,35,105,193,22,226,9,80,192,197,34,227,9,80,192,197,98,199,9,6,0,200,9,79,192,197,226,203,9,79,192,197,98,1,84,197,34,190,9,79,192,197,98,215,9,79,192,197,162,193,9,12,0,193,9,78,192,197,34,194,9,78,192,197,98,195,9,78,192,197,162,196,9,78,192,197,226,190,9,77,192,197,98,191,9,77,192,197,162,192,9,77,192,197,226,80,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,83,192,197,34,205,9,255,255,35,105,193,23,226,9,83,192,197,162,227,9,83,192,197,226,199,9,6,0,200,9,83,192,197,98,203,9,82,192,197,226,193,84,197,162,190,9,82,192,197,226,215,9,83,192,197,34,193,9,12,0,193,9,81,192,197,162,194,9,81,192,197,226,195,9,82,192,197,34,196,9,82,192,197,98,190,9,80,192,197,226,191,9,81,192,197,34,192,9,81,192,197,98,84,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,86,192,197,162,205,9,255,255,35,105,193,24,226,9,87,192,197,34,227,9,87,192,197,98,199,9,6,0,200,9,86,192,197,226,203,9,86,192,197,98,193,85,197,34,190,9,86,192,197,98,215,9,86,192,197,162,193,9,12,0,193,9,85,192,197,34,194,9,85,192,197,98,195,9,85,192,197,162,196,9,85,192,197,226,190,9,84,192,197,98,191,9,84,192,197,162,192,9,84,192,197,226,87,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,90,192,197,34,205,9,255,255,35,105,193,25,226,9,90,192,197,162,227,9,90,192,197,226,199,9,6,0,200,9,90,192,197,98,203,9,89,192,197,226,129,86,197,162,190,9,89,192,197,226,215,9,90,192,197,34,193,9,12,0,193,9,88,192,197,162,194,9,88,192,197,226,195,9,89,192,197,34,196,9,89,192,197,98,190,9,87,192,197,226,191,9,88,192,197,34,192,9,88,192,197,98,91,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,97,192,197,34,205,9,255,255,35,105,193,26,226,9,97,192,197,162,227,9,97,192,197,226,196,9,96,192,197,98,199,9,6,0,200,9,97,192,197,98,203,9,96,192,197,226,65,88,197,162,190,9,96,192,197,226,215,9,97,192,197,34,192,9,12,0,192,9,95,192,197,98,193,9,95,192,197,162,194,9,95,192,197,226,195,9,96,192,197,34,188,9,6,0,190,9,94,192,197,226,191,9,95,192,197,34,13,87,197,98,199,9,30,0,204,9,12,0,204,9,93,192,197,226,205,9,4,192,198,65,226,9,94,192,197,98,227,9,94,192,197,162,199,9,6,0,200,9,94,192,197,34,203,9,93,192,197,162,129,87,197,98,190,9,93,192,197,162,215,9,93,192,197,226,193,9,12,0,193,9,92,192,197,98,194,9,92,192,197,162,195,9,92,192,197,226,196,9,93,192,197,34,190,9,91,192,197,162,191,9,91,192,197,226,192,9,92,192,197,34,98,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,104,192,197,34,205,9,255,255,35,105,193,27,226,9,104,192,197,162,227,9,104,192,197,226,196,9,103,192,197,98,199,9,6,0,200,9,104,192,197,98,203,9,103,192,197,226,1,90,197,162,190,9,103,192,197,226,215,9,104,192,197,34,192,9,12,0,192,9,102,192,197,98,193,9,102,192,197,162,194,9,102,192,197,226,195,9,103,192,197,34,188,9,6,0,190,9,101,192,197,226,191,9,102,192,197,34,205,88,197,98,199,9,30,0,204,9,12,0,204,9,100,192,197,226,205,9,4,192,198,97,226,9,101,192,197,98,227,9,101,192,197,162,199,9,6,0,200,9,101,192,197,34,203,9,100,192,197,162,65,89,197,98,190,9,100,192,197,162,215,9,100,192,197,226,193,9,12,0,193,9,99,192,197,98,194,9,99,192,197,162,195,9,99,192,197,226,196,9,100,192,197,34,190,9,98,192,197,162,191,9,98,192,197,226,192,9,99,192,197,34,105,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,107,192,197,162,205,9,255,255,35,105,193,28,226,9,108,192,197,34,227,9,108,192,197,98,199,9,6,0,200,9,107,192,197,226,203,9,107,192,197,98,1,91,197,34,190,9,107,192,197,98,215,9,107,192,197,162,193,9,12,0,193,9,106,192,197,34,194,9,106,192,197,98,195,9,106,192,197,162,196,9,106,192,197,226,190,9,105,192,197,98,191,9,105,192,197,162,192,9,105,192,197,226,108,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,111,192,197,34,205,9,255,255,35,105,193,29,226,9,111,192,197,162,227,9,111,192,197,226,199,9,6,0,200,9,111,192,197,98,203,9,110,192,197,226,193,91,197,162,190,9,110,192,197,226,215,9,111,192,197,34,193,9,12,0,193,9,109,192,197,162,194,9,109,192,197,226,195,9,110,192,197,34,196,9,110,192,197,98,190,9,108,192,197,226,191,9,109,192,197,34,192,9,109,192,197,98,112,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,118,192,197,34,205,9,255,255,35,105,193,30,226,9,118,192,197,162,227,9,118,192,197,226,196,9,117,192,197,98,199,9,6,0,200,9,118,192,197,98,203,9,117,192,197,226,129,93,197,162,190,9,117,192,197,226,215,9,118,192,197,34,192,9,12,0,192,9,116,192,197,98,193,9,116,192,197,162,194,9,116,192,197,226,195,9,117,192,197,34,188,9,6,0,190,9,115,192,197,226,191,9,116,192,197,34,77,92,197,98,199,9,30,0,204,9,12,0,204,9,114,192,197,226,205,9,4,192,198,129,226,9,115,192,197,98,227,9,115,192,197,162,199,9,6,0,200,9,115,192,197,34,203,9,114,192,197,162,193,92,197,98,190,9,114,192,197,162,215,9,114,192,197,226,193,9,12,0,193,9,113,192,197,98,194,9,113,192,197,162,195,9,113,192,197,226,196,9,114,192,197,34,190,9,112,192,197,162,191,9,112,192,197,226,192,9,113,192,197,34,119,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,121,192,197,162,205,9,255,255,35,105,193,31,226,9,122,192,197,34,227,9,122,192,197,98,199,9,6,0,200,9,121,192,197,226,203,9,121,192,197,98,129,94,197,34,190,9,121,192,197,98,215,9,121,192,197,162,193,9,12,0,193,9,120,192,197,34,194,9,120,192,197,98,195,9,120,192,197,162,196,9,120,192,197,226,190,9,119,192,197,98,191,9,119,192,197,162,192,9,119,192,197,226,122,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,125,192,197,34,205,9,255,255,35,105,193,33,226,9,125,192,197,162,227,9,125,192,197,226,199,9,6,0,200,9,125,192,197,98,203,9,124,192,197,226,65,95,197,162,190,9,124,192,197,226,215,9,125,192,197,34,193,9,12,0,193,9,123,192,197,162,194,9,123,192,197,226,195,9,124,192,197,34,196,9,124,192,197,98,190,9,122,192,197,226,191,9,123,192,197,34,192,9,123,192,197,98,126,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,128,192,197,162,205,9,255,255,35,105,193,35,226,9,129,192,197,34,227,9,129,192,197,98,199,9,6,0,200,9,128,192,197,226,203,9,128,192,197,98,65,96,197,34,190,9,128,192,197,98,215,9,128,192,197,162,193,9,12,0,193,9,127,192,197,34,194,9,127,192,197,98,195,9,127,192,197,162,196,9,127,192,197,226,190,9,126,192,197,98,191,9,126,192,197,162,192,9,126,192,197,226,129,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,132,192,197,34,205,9,255,255,35,105,193,36,226,9,132,192,197,162,227,9,132,192,197,226,199,9,6,0,200,9,132,192,197,98,203,9,131,192,197,226,1,97,197,162,190,9,131,192,197,226,215,9,132,192,197,34,193,9,12,0,193,9,130,192,197,162,194,9,130,192,197,226,195,9,131,192,197,34,196,9,131,192,197,98,190,9,129,192,197,226,191,9,130,192,197,34,192,9,130,192,197,98,133,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,135,192,197,162,205,9,255,255,35,105,193,37,226,9,136,192,197,34,227,9,136,192,197,98,199,9,6,0,200,9,135,192,197,226,203,9,135,192,197,98,1,98,197,34,190,9,135,192,197,98,215,9,135,192,197,162,193,9,12,0,193,9,134,192,197,34,194,9,134,192,197,98,195,9,134,192,197,162,196,9,134,192,197,226,190,9,133,192,197,98,191,9,133,192,197,162,192,9,133,192,197,226,136,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,139,192,197,34,205,9,255,255,35,105,193,38,226,9,139,192,197,162,227,9,139,192,197,226,199,9,6,0,200,9,139,192,197,98,203,9,138,192,197,226,193,98,197,162,190,9,138,192,197,226,215,9,139,192,197,34,193,9,12,0,193,9,137,192,197,162,194,9,137,192,197,226,195,9,138,192,197,34,196,9,138,192,197,98,190,9,136,192,197,226,191,9,137,192,197,34,192,9,137,192,197,98,56,0,197,98,13,0,199,9,30,0,204,9,12,0,204,9,58,192,197,226,205,9,0,192,198,129,226,9,59,192,197,98,227,9,59,192,197,162,199,9,6,0,200,9,59,192,197,34,203,9,58,192,197,162,193,78,197,98,190,9,58,192,197,162,215,9,58,192,197,226,193,9,12,0,193,9,57,192,197,98,194,9,57,192,197,162,195,9,57,192,197,226,196,9,58,192,197,34,190,9,56,192,197,162,191,9,56,192,197,226,192,9,57,192,197,34,63,0,197,98,13,0,199,9,30,0,204,9,12,0,204,9,65,192,197,226,205,9,0,192,198,161,226,9,66,192,197,98,227,9,66,192,197,162,199,9,6,0,200,9,66,192,197,34,203,9,65,192,197,162,129,80,197,98,190,9,65,192,197,162,215,9,65,192,197,226,193,9,12,0,193,9,64,192,197,98,194,9,64,192,197,162,195,9,64,192,197,226,196,9,65,192,197,34,190,9,63,192,197,162,191,9,63,192,197,226,192,9,64,192,197,34,112,0,197,98,13,0,199,9,30,0,204,9,12,0,204,9,114,192,197,226,205,9,4,192,198,129,226,9,115,192,197,98,227,9,115,192,197,162,199,9,6,0,200,9,115,192,197,34,203,9,114,192,197,162,193,92,197,98,190,9,114,192,197,162,215,9,114,192,197,226,193,9,12,0,193,9,113,192,197,98,194,9,113,192,197,162,195,9,113,192,197,226,196,9,114,192,197,34,190,9,112,192,197,162,191,9,112,192,197,226,192,9,113,192,197,34,140,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,142,192,197,162,205,9,255,255,35,105,193,32,226,9,143,192,197,34,227,9,143,192,197,98,199,9,6,0,200,9,142,192,197,226,203,9,142,192,197,98,193,99,197,34,190,9,142,192,197,98,215,9,142,192,197,162,193,9,12,0,193,9,141,192,197,34,194,9,141,192,197,98,195,9,141,192,197,162,196,9,141,192,197,226,190,9,140,192,197,98,191,9,140,192,197,162,192,9,140,192,197,226,143,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,146,192,197,34,205,9,255,255,35,105,193,34,226,9,146,192,197,162,227,9,146,192,197,226,199,9,6,0,200,9,146,192,197,98,203,9,145,192,197,226,129,100,197,162,190,9,145,192,197,226,215,9,146,192,197,34,193,9,12,0,193,9,144,192,197,162,194,9,144,192,197,226,195,9,145,192,197,34,196,9,145,192,197,98,190,9,143,192,197,226,191,9,144,192,197,34,192,9,144,192,197,98,10,0,191,9,197,9,199,9,201,9,203,9,205,9,226,9,228,9,13,32,14,32,3,0,69,0,52,0,61,0,215,15,0,16,91,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,208,15,0,32,199,32,0,32,1,0,32,0,204,32,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,170,16,0,32,7,0,0,0,21,0,0,0,172,16,0,0,172,16,0,0,3,0,0,0,0,0,0,0,213,3,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,239,223,120,7,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,105,0,98,0,116,0,93,0,38,0,64,15,98,15,60,0,64,15,98,15,144,15,60,0,64,15,98,15,159,15,60,0,64,15,98,15,158,15,60,0,64,15,98,15,168,15,60,0,64,15,98,15,180,15,60,0,64,15,98,15,181,15,38,0,64,15,99,15,60,0,64,15,99,15,144,15,60,0,64,15,99,15,164,15,38,0,64,15,102,15,60,0,64,15,102,15,168,15,38,0,66,15,73,15,60,0,66,15,73,15,171,15,38,0,80,15,98,15,60,0,80,15,98,15,144,15,38,0,84,15,116,15,102,15,60,0,84,15,116,15,102,15,159,15,114,15,38,0,85,15,99,15,60,0,85,15,99,15,146,15,38,0,86,15,114,15,99,15,60,0,86,15,114,15,99,15,166,15,38,0,88,15,73,15,60,0,88,15,73,15,171,15,38,0,88,15,98,15,60,0,88,15,98,15,146,15,38,0,93,15,98,15,60,0,93,15,98,15,159,15,38,0,100,15,102,15,60,0,100,15,102,15,159,15,38,0,102,15,98,15,60,0,102,15,98,15,146,15,38,0,104,15,98,15,60,0,104,15,98,15,146,15,60,0,104,15,98,15,177,15,61,0,104,15,106,15,177,15,38,0,104,15,102,15,60,0,104,15,102,15,168,15,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,64,15,60,0,13,15,60,0,60,0,14,15,60,0,60,0,15,15,60,0,60,0,16,15,60,0,60,0,17,15,60,0,60,0,20,15,60,0,60,0,52,15,60,0,11,15,61,0,12,15,38,0,64,15,60,0,60,0,136,15,144,15,60,0,107,15,60,0,81,15,64,15,60,0,86,15,64,15,60,0,98,15,144,15,60,0,99,15,144,15,60,0,102,15,144,15,60,0,86,15,98,15,144,15,60,0,86,15,102,15,144,15,38,0,65,15,60,0,60,0,136,15,145,15,60,0,88,15,65,15,60,0,96,15,65,15,38,0,66,15,60,0,81,15,66,15,66,15,60,0,81,15,66,15,68,15,60,0,81,15,66,15,81,15,60,0,81,15,66,15,83,15,60,0,81,15,66,15,86,15,60,0,81,15,66,15,93,15,60,0,81,15,66,15,96,15,60,0,81,15,66,15,98,15,60,0,81,15,66,15,99,15,60,0,81,15,66,15,102,15,60,0,81,15,66,15,114,15,60,0,81,15,66,15,116,15,60,0,81,15,66,15,122,15,60,0,81,15,66,15,124,15,60,0,81,15,66,15,173,15,60,0,81,15,66,15,177,15,60,0,81,15,66,15,178,15,60,0,86,15,66,15,66,15,60,0,86,15,66,15,68,15,60,0,86,15,66,15,81,15,60,0,86,15,66,15,86,15,60,0,86,15,66,15,88,15,60,0,60,0,60,0,86,15,66,15,126,15,60,0,86,15,66,15,93,15,60,0,86,15,66,15,96,15,60,0,86,15,66,15,98,15,60,0,86,15,66,15,99,15,60,0,86,15,66,15,114,15,60,0,86,15,66,15,116,15,60,0,86,15,66,15,122,15,60,0,86,15,66,15,124,15,60,0,86,15,66,15,173,15,60,0,86,15,66,15,177,15,60,0,86,15,66,15,178,15,60,0,86,15,66,15,179,15,60,0,88,15,66,15,66,15,60,0,88,15,66,15,68,15,60,0,88,15,66,15,81,15,60,0,88,15,66,15,86,15,60,0,88,15,66,15,96,15,60,0,88,15,66,15,98,15,60,0,88,15,66,15,99,15,60,0,88,15,66,15,114,15,60,0,88,15,66,15,116,15,60,0,88,15,66,15,122,15,60,0,88,15,66,15,124,15,60,0,88,15,66,15,173,15,60,0,88,15,66,15,177,15,60,0,88,15,66,15,178,15,60,0,96,15,66,15,66,15,60,0,96,15,66,15,68,15,60,0,96,15,66,15,81,15,60,0,96,15,66,15,83,15,60,0,96,15,66,15,86,15,60,0,96,15,66,15,88,15,60,0,60,0,60,0,96,15,66,15,126,15,60,0,96,15,66,15,96,15,60,0,96,15,66,15,98,15,60,0,96,15,66,15,99,15,60,0,96,15,66,15,102,15,60,0,96,15,66,15,114,15,60,0,96,15,66,15,116,15,60,0,96,15,66,15,122,15,60,0,96,15,66,15,124,15,60,0,96,15,66,15,173,15,60,0,96,15,66,15,177,15,60,0,96,15,66,15,178,15,60,0,98,15,146,15,60,0,99,15,146,15,60,0,102,15,146,15,60,0,86,15,98,15,146,15,60,0,86,15,102,15,146,15,38,0,68,15,60,0,60,0,60,0,130,15,60,0,60,0,60,0,131,15,60,0,81,15,68,15,66,15,60,0,81,15,68,15,68,15,60,0,81,15,68,15,81,15,60,0,81,15,68,15,83,15,60,0,81,15,68,15,86,15,60,0,81,15,68,15,96,15,60,0,81,15,68,15,98,15,60,0,81,15,68,15,99,15,60,0,81,15,68,15,114,15,60,0,81,15,68,15,116,15,60,0,81,15,68,15,122,15,60,0,81,15,68,15,124,15,60,0,88,15,68,15,66,15,60,0,88,15,68,15,68,15,60,0,88,15,68,15,81,15,60,0,88,15,68,15,83,15,60,0,88,15,68,15,86,15,60,0,88,15,68,15,96,15,60,0,88,15,68,15,98,15,60,0,88,15,68,15,99,15,60,0,88,15,68,15,114,15,60,0,88,15,68,15,116,15,60,0,88,15,68,15,122,15,60,0,88,15,68,15,124,15,60,0,98,15,148,15,60,0,99,15,148,15,60,0,102,15,148,15,60,0,86,15,98,15,148,15,60,0,86,15,102,15,148,15,38,0,69,15,60,0,66,15,69,15,60,0,86,15,69,15,60,0,99,15,149,15,60,0,86,15,99,15,149,15,38,0,70,15,60,0,88,15,70,15,60,0,96,15,70,15,38,0,71,15,60,0,88,15,71,15,60,0,96,15,71,15,60,0,98,15,151,15,60,0,99,15,151,15,60,0,86,15,98,15,151,15,38,0,73,15,60,0,60,0,139,15,153,15,60,0,66,15,73,15,60,0,88,15,73,15,60,0,98,15,153,15,61,0,106,15,153,15,60,0,102,15,153,15,60,0,86,15,98,15,153,15,61,0,86,15,106,15,153,15,60,0,86,15,102,15,153,15,38,0,79,15,60,0,74,15,60,0,79,15,173,15,60,0,79,15,178,15,60,0,66,15,79,15,60,0,86,15,79,15,60,0,98,15,159,15,60,0,99,15,159,15,60,0,102,15,159,15,60,0,86,15,98,15,159,15,60,0,86,15,99,15,159,15,60,0,86,15,102,15,159,15,38,0,80,15,60,0,75,15,60,0,88,15,80,15,60,0,96,15,80,15,38,0,81,15,60,0,76,15,60,0,66,15,81,15,66,15,60,0,66,15,81,15,68,15,60,0,66,15,81,15,81,15,60,0,66,15,81,15,83,15,60,0,66,15,81,15,86,15,60,0,66,15,81,15,88,15,60,0,60,0,60,0,66,15,81,15,126,15,60,0,66,15,81,15,96,15,60,0,66,15,81,15,98,15,60,0,66,15,81,15,99,15,60,0,66,15,81,15,102,15,60,0,66,15,81,15,114,15,60,0,66,15,81,15,116,15,60,0,66,15,81,15,122,15,60,0,66,15,81,15,124,15,60,0,66,15,81,15,173,15,60,0,86,15,81,15,66,15,60,0,86,15,81,15,68,15,60,0,86,15,81,15,81,15,60,0,86,15,81,15,86,15,60,0,86,15,81,15,88,15,60,0,60,0,60,0,86,15,81,15,126,15,60,0,86,15,81,15,96,15,60,0,86,15,81,15,98,15,60,0,86,15,81,15,99,15,60,0,86,15,81,15,102,15,60,0,86,15,81,15,114,15,60,0,86,15,81,15,116,15,60,0,86,15,81,15,122,15,60,0,86,15,81,15,124,15,60,0,86,15,81,15,173,15,60,0,88,15,81,15,66,15,60,0,88,15,81,15,68,15,60,0,88,15,81,15,81,15,60,0,88,15,81,15,83,15,60,0,88,15,81,15,86,15,60,0,88,15,81,15,96,15,60,0,88,15,81,15,98,15,60,0,88,15,81,15,99,15,60,0,88,15,81,15,102,15,60,0,88,15,81,15,114,15,60,0,88,15,81,15,116,15,60,0,88,15,81,15,122,15,60,0,88,15,81,15,124,15,60,0,88,15,81,15,173,15,60,0,96,15,81,15,66,15,60,0,96,15,81,15,68,15,60,0,96,15,81,15,81,15,60,0,96,15,81,15,83,15,60,0,96,15,81,15,86,15,60,0,96,15,81,15,88,15,60,0,60,0,60,0,96,15,81,15,126,15,60,0,96,15,81,15,93,15,60,0,96,15,81,15,96,15,60,0,96,15,81,15,98,15,60,0,96,15,81,15,99,15,60,0,96,15,81,15,102,15,60,0,96,15,81,15,114,15,60,0,96,15,81,15,116,15,60,0,96,15,81,15,122,15,60,0,96,15,81,15,124,15,60,0,96,15,81,15,173,15,60,0,96,15,81,15,178,15,60,0,98,15,161,15,60,0,99,15,161,15,60,0,102,15,161,15,60,0,86,15,98,15,161,15,60,0,86,15,99,15,161,15,60,0,86,15,102,15,161,15,38,0,83,15,60,0,78,15,60,0,66,15,83,15,66,15,60,0,66,15,83,15,68,15,60,0,66,15,83,15,81,15,60,0,66,15,83,15,83,15,60,0,66,15,83,15,86,15,60,0,66,15,83,15,88,15,60,0,60,0,60,0,66,15,83,15,126,15,60,0,66,15,83,15,93,15,60,0,66,15,83,15,96,15,60,0,66,15,83,15,98,15,60,0,66,15,83,15,99,15,60,0,66,15,83,15,102,15,60,0,66,15,83,15,114,15,60,0,66,15,83,15,116,15,60,0,66,15,83,15,122,15,60,0,66,15,83,15,124,15,60,0,66,15,83,15,173,15,60,0,88,15,83,15,66,15,60,0,88,15,83,15,68,15,60,0,88,15,83,15,81,15,60,0,88,15,83,15,83,15,60,0,88,15,83,15,86,15,60,0,88,15,83,15,88,15,60,0,60,0,60,0,88,15,83,15,126,15,60,0,88,15,83,15,96,15,60,0,88,15,83,15,98,15,60,0,88,15,83,15,99,15,60,0,88,15,83,15,102,15,60,0,88,15,83,15,114,15,60,0,88,15,83,15,116,15,60,0,88,15,83,15,122,15,60,0,88,15,83,15,124,15,60,0,88,15,83,15,173,15,60,0,98,15,163,15,60,0,102,15,163,15,60,0,86,15,98,15,163,15,60,0,86,15,102,15,163,15,38,0,84,15,60,0,60,0,137,15,164,15,60,0,81,15,84,15,66,15,60,0,81,15,84,15,68,15,60,0,81,15,84,15,81,15,60,0,81,15,84,15,86,15,60,0,81,15,84,15,96,15,60,0,81,15,84,15,98,15,60,0,81,15,84,15,99,15,60,0,81,15,84,15,102,15,60,0,81,15,84,15,114,15,60,0,81,15,84,15,116,15,60,0,81,15,84,15,122,15,60,0,81,15,84,15,124,15,60,0,81,15,84,15,177,15,60,0,81,15,84,15,178,15,60,0,99,15,164,15,60,0,102,15,164,15,38,0,85,15,60,0,60,0,137,15,165,15,60,0,96,15,85,15,38,0,86,15,60,0,81,15,86,15,66,15,60,0,81,15,86,15,68,15,60,0,81,15,86,15,81,15,60,0,81,15,86,15,83,15,60,0,81,15,86,15,86,15,60,0,81,15,86,15,96,15,60,0,81,15,86,15,98,15,60,0,81,15,86,15,99,15,60,0,81,15,86,15,102,15,60,0,81,15,86,15,114,15,60,0,81,15,86,15,116,15,60,0,81,15,86,15,122,15,60,0,81,15,86,15,124,15,60,0,81,15,86,15,177,15,60,0,81,15,86,15,178,15,60,0,96,15,86,15,66,15,60,0,96,15,86,15,68,15,60,0,96,15,86,15,81,15,60,0,96,15,86,15,83,15,60,0,96,15,86,15,86,15,60,0,96,15,86,15,88,15,60,0,60,0,60,0,96,15,86,15,126,15,60,0,96,15,86,15,96,15,60,0,96,15,86,15,98,15,60,0,96,15,86,15,99,15,60,0,96,15,86,15,102,15,60,0,96,15,86,15,114,15,60,0,96,15,86,15,116,15,60,0,96,15,86,15,122,15,60,0,96,15,86,15,124,15,60,0,96,15,86,15,177,15,60,0,96,15,86,15,178,15,60,0,98,15,166,15,60,0,99,15,166,15,60,0,102,15,166,15,38,0,88,15,60,0,60,0,60,0,126,15,60,0,81,15,88,15,66,15,60,0,81,15,88,15,68,15,60,0,81,15,88,15,81,15,60,0,81,15,88,15,83,15,60,0,81,15,88,15,86,15,60,0,81,15,88,15,93,15,60,0,81,15,88,15,96,15,60,0,81,15,88,15,98,15,60,0,81,15,88,15,99,15,60,0,81,15,88,15,102,15,60,0,81,15,88,15,114,15,60,0,81,15,88,15,116,15,60,0,81,15,88,15,122,15,60,0,81,15,88,15,124,15,60,0,81,15,88,15,173,15,60,0,81,15,88,15,177,15,60,0,98,15,168,15,60,0,102,15,168,15,38,0,89,15,60,0,66,15,89,15,60,0,86,15,89,15,60,0,98,15,169,15,60,0,102,15,169,15,60,0,86,15,98,15,169,15,60,0,86,15,102,15,169,15,38,0,90,15,60,0,88,15,90,15,60,0,96,15,90,15,38,0,91,15,60,0,88,15,91,15,60,0,96,15,91,15,60,0,98,15,171,15,60,0,86,15,98,15,171,15,38,0,94,15,60,0,66,15,94,15,60,0,86,15,94,15,38,0,95,15,60,0,66,15,95,15,60,0,86,15,95,15,38,0,97,15,60,0,66,15,97,15,38,0,98,15,60,0,60,0,60,0,106,15,60,0,108,15,60,0,86,15,98,15,179,15,61,0,86,15,106,15,179,15,38,0,100,15,60,0,101,15,60,0,66,15,100,15,60,0,86,15,100,15,38,0,102,15,60,0,66,15,102,15,66,15,60,0,66,15,102,15,68,15,60,0,66,15,102,15,81,15,60,0,66,15,102,15,83,15,60,0,66,15,102,15,86,15,60,0,66,15,102,15,96,15,60,0,66,15,102,15,98,15,60,0,66,15,102,15,99,15,60,0,66,15,102,15,102,15,60,0,66,15,102,15,114,15,60,0,66,15,102,15,116,15,60,0,66,15,102,15,122,15,60,0,66,15,102,15,124,15,60,0,66,15,102,15,173,15,60,0,86,15,102,15,66,15,60,0,86,15,102,15,68,15,60,0,86,15,102,15,81,15,60,0,86,15,102,15,86,15,60,0,86,15,102,15,88,15,60,0,60,0,60,0,86,15,102,15,126,15,60,0,86,15,102,15,96,15,60,0,86,15,102,15,98,15,60,0,86,15,102,15,99,15,60,0,86,15,102,15,102,15,60,0,86,15,102,15,114,15,60,0,86,15,102,15,116,15,60,0,86,15,102,15,122,15,60,0,86,15,102,15,124,15,60,0,86,15,102,15,173,15,60,0,86,15,102,15,178,15,60,0,86,15,102,15,179,15,38,0,103,15,60,0,99,15,183,15,38,0,104,15,60,0,113,15,60,0,114,15,60,0,113,15,114,15,60,0,128,15,60,0,113,15,128,15,60,0,116,15,60,0,113,15,116,15,60,0,122,15,60,0,123,15,61,0,122,15,122,15,60,0,124,15,60,0,125,15,61,0,124,15,124,15,60,0,144,15,60,0,145,15,60,0,146,15,60,0,148,15,60,0,149,15,60,0,150,15,60,0,151,15,60,0,153,15,60,0,159,15,60,0,154,15,60,0,160,15,60,0,155,15,60,0,161,15,60,0,156,15,60,0,163,15,60,0,158,15,60,0,164,15,60,0,165,15,60,0,166,15,60,0,168,15,60,0,169,15,60,0,170,15,60,0,171,15,60,0,173,15,60,0,60,0,60,0,186,15,60,0,174,15,60,0,175,15,60,0,176,15,60,0,177,15,60,0,60,0,60,0,187,15,60,0,178,15,60,0,60,0,60,0,188,15,60,0,179,15,60,0,180,15,60,0,181,15,60,0,182,15,60,0,183,15,60,0,184,15,38,0,57,15,60,0,60,0,132,15,60,0,60,0,127,15,60,0,60,0,133,15,60,0,60,0,136,15,60,0,60,0,137,15,60,0,60,0,138,15,60,0,60,0,139,15,60,0,60,0,140,15,60,0,60,0,141,15,60,0,60,0,142,15,60,0,60,0,143,15,38,0,104,15,124,15,126,15,61,0,0,15,38,0,178,15,113,15,128,15,61,0,119,15,38,0,179,15,113,15,128,15,61,0,121,15,0,0,170,170,170,170,170,170,170,170,170,170,44,51,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,76,27,0,0,76,27,0,0,220,27,0,0,220,27,0,0,216,32,0,0,216,32,0,0,202,50,0,0,16,51,0,0,39,0,0,0,0,0,0,116,179,255,198,116,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,0,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,151,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,102,0,110,0,118,0,126,0,134,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,38,0,202,193,38,0,202,226,38,0,202,3,39,0,202,36,39,0,202,69,39,0,202,102,39,0,202,135,39,0,202,168,39,0,202,201,39,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,37,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,38,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,38,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,116,5,5,5,116,193,3,4,116,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,192,0,0,0,192,0,0,0,198,129,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,192,0,0,0,201,196,5,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,57,116,193,2,61,116,193,2,65,116,197,162,6,0,193,2,69,116,201,64,41,0,201,0,43,0,201,100,44,0,197,130,12,0,192,0,0,0,201,102,95,0,201,128,96,0,201,228,97,0,197,98,20,0,201,100,156,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,25,0,201,32,200,0,192,0,0,0,192,0,0,0,201,4,201,0,192,0,0,0,201,224,240,0,201,224,249,0,201,128,1,1,193,2,131,116,201,96,2,1,192,0,0,0,201,160,11,1,197,98,34,0,201,224,14,1,193,2,7,116,193,2,121,116,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,15,1,193,3,147,116,193,4,147,116,193,7,147,116,193,8,147,116,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,17,1,193,10,147,116,201,134,18,1,193,12,147,116,6,5,84,116,194,5,250,244,193,5,147,116,193,6,147,116,6,5,20,116,7,5,20,116,194,5,249,244,194,5,251,244,192,0,0,0,192,0,0,0,201,96,19,1,201,32,21,1,194,5,254,244,201,128,22,1,194,5,2,245,194,5,3,245,194,5,4,245,194,5,5,245,193,13,147,116,193,14,147,116,193,15,147,116,197,226,34,0,193,16,147,116,193,17,147,116,193,18,147,116,193,19,147,116,192,0,0,0,193,20,147,116,193,22,147,116,193,24,147,116,193,26,147,116,197,34,35,0,193,28,147,116,193,21,147,116,193,23,147,116,193,25,147,116,197,98,35,0,193,27,147,116,193,29,147,116,193,30,147,116,193,31,147,116,197,162,35,0,193,32,147,116,193,33,147,116,193,34,147,116,193,35,147,116,197,226,35,0,193,36,147,116,193,37,147,116,193,38,147,116,193,39,147,116,193,40,147,116,201,102,23,1,201,70,27,1,193,43,147,116,193,44,147,116,193,45,147,116,193,46,147,116,193,47,147,116,197,162,37,0,198,225,1,0,198,1,2,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,3,4,116,0,5,0,71,0,3,4,116,0,5,0,72,0,3,4,116,0,5,0,73,0,3,4,116,0,5,0,74,0,3,4,116,0,5,0,75,0,3,4,116,0,6,0,5,0,8,65,116,0,6,0,5,0,8,69,116,0,6,0,5,0,23,17,116,0,6,0,5,0,22,65,116,0,6,0,5,0,20,139,116,0,6,0,5,0,24,69,116,0,6,0,5,0,55,17,116,0,6,0,5,0,51,65,116,0,6,0,5,0,22,81,116,0,6,0,5,0,36,147,116,0,6,0,5,0,40,147,116,0,6,0,5,0,41,147,116,0,0,0,0,5,5,146,116,193,11,147,116,6,5,84,116,5,5,6,116,193,10,121,116,5,5,6,116,193,12,121,116,5,5,6,116,193,11,121,116,5,5,6,116,193,13,121,116,5,5,6,116,193,14,121,116,5,5,6,116,193,15,121,116,5,5,6,116,193,10,121,116,5,5,136,116,5,5,6,116,193,4,127,116,5,5,6,116,193,5,127,116,5,5,6,116,193,4,127,116,5,5,136,116,5,5,6,116,193,35,139,116,5,5,16,116,193,9,37,116,5,5,16,116,193,9,37,116,5,5,144,116,193,3,65,116,5,5,144,116,193,5,65,116,5,5,144,116,193,7,65,116,5,5,144,116,193,3,69,116,5,5,144,116,193,5,69,116,5,5,144,116,193,7,69,116,5,5,144,116,193,2,139,116,5,5,144,116,193,4,139,116,5,5,144,116,193,6,139,116,5,5,144,116,5,5,16,116,193,46,147,116,193,2,65,116,193,46,147,116,193,4,57,116,5,5,172,116,5,5,60,116,193,9,121,116,5,5,60,116,193,9,121,116,5,5,136,116,193,2,17,116,5,5,144,116,193,4,17,116,5,5,144,116,193,6,17,116,5,5,144,116,193,18,17,116,5,5,172,116,193,2,21,116,5,5,144,116,193,4,21,116,5,5,144,116,193,6,21,116,5,5,144,116,193,2,73,116,5,5,144,116,193,4,73,116,5,5,144,116,193,5,73,116,5,5,144,116,193,15,73,116,5,5,172,116,193,2,81,116,5,5,144,116,193,4,81,116,5,5,144,116,193,6,81,116,5,5,144,116,193,16,81,116,5,5,172,116,193,2,85,116,5,5,144,116,193,4,85,116,5,5,144,116,193,6,85,116,5,5,144,116,193,3,7,116,5,5,136,116,5,5,64,116,193,46,147,116,5,5,72,116,5,5,176,116,193,34,139,116,5,5,76,116,193,3,127,116,5,5,76,116,193,3,127,116,5,5,144,116,193,19,17,116,5,5,144,116,193,21,17,116,5,5,144,116,193,22,17,116,5,5,144,116,193,34,17,116,5,5,172,116,193,35,17,116,5,5,172,116,193,18,65,116,5,5,144,116,193,20,65,116,5,5,144,116,193,21,65,116,5,5,144,116,193,3,121,116,5,5,172,116,193,70,17,116,5,5,144,116,193,66,65,116,5,5,144,116,193,5,97,116,5,5,144,116,193,8,7,116,5,5,136,116,193,67,65,116,5,5,144,116,193,16,139,116,5,5,144,116,193,18,139,116,5,5,144,116,193,19,139,116,5,5,144,116,193,30,139,116,5,5,172,116,193,31,139,116,5,5,172,116,193,71,17,116,5,5,144,116,193,68,65,116,5,5,144,116,193,9,7,116,5,5,136,116,193,4,7,116,5,5,136,116,5,5,80,116,5,5,168,116,193,2,127,116,5,5,80,116,5,5,168,116,193,2,127,116,5,5,144,116,5,5,80,116,193,46,147,116,193,36,17,116,5,5,144,116,193,38,17,116,5,5,144,116,193,39,17,116,5,5,144,116,193,49,17,116,5,5,172,116,193,14,21,116,5,5,144,116,193,16,21,116,5,5,144,116,193,18,21,116,5,5,144,116,5,5,84,116,193,8,37,116,5,5,84,116,193,8,37,116,5,5,144,116,193,32,65,116,5,5,144,116,193,34,65,116,5,5,144,116,193,36,65,116,5,5,144,116,193,19,69,116,5,5,144,116,193,21,69,116,5,5,144,116,193,23,69,116,5,5,144,116,193,2,97,116,5,5,144,116,5,5,84,116,193,8,121,116,5,5,84,116,193,8,121,116,5,5,144,116,5,5,96,116,193,46,147,116,5,5,100,116,193,7,121,116,193,50,17,116,5,5,144,116,193,52,17,116,5,5,144,116,193,54,17,116,5,5,144,116,193,66,17,116,5,5,172,116,193,46,65,116,5,5,144,116,193,48,65,116,5,5,144,116,193,50,65,116,5,5,144,116,193,62,65,116,5,5,172,116,193,17,81,116,5,5,144,116,193,19,81,116,5,5,144,116,193,21,81,116,5,5,144,116,193,32,81,116,5,5,172,116,193,3,97,116,5,5,144,116,193,67,17,116,5,5,144,116,193,63,65,116,5,5,144,116,193,33,81,116,5,5,144,116,193,4,97,116,5,5,144,116,193,5,7,116,5,5,136,116,193,68,17,116,5,5,144,116,193,64,65,116,5,5,144,116,193,34,81,116,5,5,144,116,193,6,7,116,5,5,136,116,5,5,130,116,193,33,139,116,5,5,138,116,193,6,121,116,5,5,138,116,193,6,121,116,5,5,144,116,193,69,17,116,5,5,144,116,193,65,65,116,5,5,144,116,193,35,81,116,5,5,144,116,193,7,7,116,5,5,136,116,5,5,146,116,193,4,121,116,5,5,146,116,193,4,121,116,5,5,144,116,5,5,146,116,193,5,121,116,5,5,146,116,193,32,139,116,5,5,6,116,193,44,147,116,5,70,6,116,5,5,136,116,193,15,147,116,193,46,147,116,193,26,147,116,193,46,147,116,193,25,147,116,193,46,147,116,193,31,147,116,193,46,147,116,193,35,147,116,193,46,147,116,5,5,122,116,5,5,166,116,5,5,122,116,5,5,170,116,5,5,122,116,5,5,178,116,5,5,128,116,5,5,166,116,5,5,128,116,5,5,170,116,5,5,128,116,5,5,178,116,193,13,147,116,193,44,147,116,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,6,116,5,5,2,0,98,15,7,0,99,15,29,0,102,15,48,0,168,15,3,192,197,66,6,0,168,15,12,0,168,15,1,192,197,66,180,15,1,192,197,130,181,15,1,192,197,194,185,15,2,192,197,3,144,15,0,192,197,130,158,15,0,192,197,194,159,15,1,192,197,2,2,0,144,15,2,192,197,98,164,15,2,192,197,162,185,15,2,192,197,227,16,116,5,5,10,0,89,15,95,0,97,15,81,0,97,15,255,255,117,116,5,5,100,15,255,255,131,116,193,3,102,15,16,0,96,15,38,0,114,15,20,0,114,15,255,255,139,116,193,11,116,15,255,255,139,116,193,12,122,15,255,255,139,116,193,13,124,15,255,255,139,116,193,14,173,15,255,255,139,116,193,15,96,15,255,255,139,116,193,7,98,15,255,255,139,116,193,8,99,15,255,255,139,116,193,9,102,15,255,255,139,116,193,10,82,15,14,0,82,15,5,192,197,226,83,15,255,255,139,116,193,5,86,15,255,255,139,116,193,6,87,15,6,192,197,34,66,15,255,255,139,116,193,2,67,15,5,192,197,162,68,15,255,255,139,116,193,3,81,15,255,255,139,116,193,4,89,15,255,255,89,116,193,2,94,15,255,255,105,116,193,2,95,15,255,255,109,116,193,2,69,15,255,255,25,116,193,2,73,15,90,0,79,15,255,255,57,116,193,5,81,15,93,0,83,15,19,0,96,15,41,0,116,15,19,0,116,15,255,255,69,116,193,15,122,15,255,255,69,116,193,16,124,15,255,255,69,116,193,17,126,15,0,192,198,225,173,15,255,255,69,116,193,18,96,15,255,255,69,116,193,10,98,15,255,255,69,116,193,11,99,15,255,255,69,116,193,12,102,15,255,255,69,116,193,13,114,15,255,255,69,116,193,14,83,15,19,0,83,15,255,255,69,116,193,6,86,15,255,255,69,116,193,7,87,15,5,192,197,98,88,15,255,255,69,116,193,8,93,15,255,255,69,116,193,9,66,15,255,255,69,116,193,3,67,15,4,192,197,226,68,15,255,255,69,116,193,4,81,15,255,255,69,116,193,5,82,15,5,192,197,34,193,127,37,116,193,2,171,15,3,192,197,130,172,15,3,192,197,195,18,0,96,15,41,0,116,15,19,0,116,15,255,255,65,116,193,14,122,15,255,255,65,116,193,15,124,15,255,255,65,116,193,16,126,15,0,192,198,193,173,15,255,255,65,116,193,17,96,15,255,255,65,116,193,9,98,15,255,255,65,116,193,10,99,15,255,255,65,116,193,11,102,15,255,255,65,116,193,12,114,15,255,255,65,116,193,13,82,15,18,0,82,15,4,192,197,98,83,15,255,255,65,116,193,6,86,15,255,255,65,116,193,7,87,15,4,192,197,162,88,15,255,255,65,116,193,8,66,15,255,255,65,116,193,3,67,15,4,192,197,34,68,15,255,255,65,116,193,4,81,15,255,255,65,116,193,5,56,116,5,5,2,0,118,15,6,192,197,226,173,15,255,255,57,116,193,3,178,15,255,255,57,116,193,4,60,116,5,5,48,0,98,15,1,0,144,15,7,192,197,34,185,15,7,192,197,99,64,116,5,5,6,0,84,15,243,0,84,15,7,0,86,15,80,0,88,15,157,0,105,15,12,192,197,66,17,0,99,15,37,0,118,15,19,0,118,15,10,192,197,66,122,15,255,255,73,116,193,12,124,15,255,255,73,116,193,13,177,15,255,255,73,116,193,14,178,15,255,255,73,116,193,15,99,15,255,255,73,116,193,8,102,15,255,255,73,116,193,9,114,15,255,255,73,116,193,10,116,15,255,255,73,116,193,11,82,15,18,0,82,15,9,192,197,194,86,15,255,255,73,116,193,5,87,15,10,192,197,2,96,15,255,255,73,116,193,6,98,15,255,255,73,116,193,7,66,15,255,255,73,116,193,2,67,15,9,192,197,130,68,15,255,255,73,116,193,3,81,15,255,255,73,116,193,4,18,0,98,15,41,0,118,15,19,0,118,15,11,192,197,66,122,15,255,255,81,116,193,13,124,15,255,255,81,116,193,14,177,15,255,255,81,116,193,15,178,15,255,255,81,116,193,16,98,15,255,255,81,116,193,8,99,15,255,255,81,116,193,9,102,15,255,255,81,116,193,10,114,15,255,255,81,116,193,11,116,15,255,255,81,116,193,12,82,15,18,0,82,15,10,192,197,194,83,15,255,255,81,116,193,5,86,15,255,255,81,116,193,6,87,15,11,192,197,2,96,15,255,255,81,116,193,7,66,15,255,255,81,116,193,2,67,15,10,192,197,130,68,15,255,255,81,116,193,3,81,15,255,255,81,116,193,4,18,0,96,15,42,0,116,15,20,0,116,15,255,255,85,116,193,13,122,15,255,255,85,116,193,14,124,15,255,255,85,116,193,15,173,15,255,255,85,116,193,16,177,15,255,255,85,116,193,17,96,15,255,255,85,116,193,8,98,15,255,255,85,116,193,9,99,15,255,255,85,116,193,10,102,15,255,255,85,116,193,11,114,15,255,255,85,116,193,12,82,15,18,0,82,15,11,192,197,194,83,15,255,255,85,116,193,5,86,15,255,255,85,116,193,6,87,15,12,192,197,2,93,15,255,255,85,116,193,7,66,15,255,255,85,116,193,2,67,15,11,192,197,130,68,15,255,255,85,116,193,3,81,15,255,255,85,116,193,4,64,15,255,255,7,116,193,3,66,15,65,0,68,15,14,0,87,15,33,0,114,15,16,0,114,15,255,255,21,116,193,10,116,15,255,255,21,116,193,11,122,15,255,255,21,116,193,12,124,15,255,255,21,116,193,13,87,15,9,192,197,66,96,15,255,255,21,116,193,7,98,15,255,255,21,116,193,8,99,15,255,255,21,116,193,9,81,15,15,0,81,15,255,255,21,116,193,4,82,15,9,192,197,2,83,15,255,255,21,116,193,5,86,15,255,255,21,116,193,6,66,15,255,255,21,116,193,2,67,15,8,192,197,194,68,15,255,255,21,116,193,3,20,0,98,15,47,0,118,15,25,0,173,15,12,0,173,15,255,255,17,116,193,16,177,15,255,255,17,116,193,17,178,15,255,255,17,116,193,18,118,15,8,192,197,130,122,15,255,255,17,116,193,14,124,15,255,255,17,116,193,15,98,15,255,255,17,116,193,9,99,15,255,255,17,116,193,10,102,15,255,255,17,116,193,11,114,15,255,255,17,116,193,12,116,15,255,255,17,116,193,13,83,15,19,0,83,15,255,255,17,116,193,5,86,15,255,255,17,116,193,6,87,15,8,192,197,66,93,15,255,255,17,116,193,7,96,15,255,255,17,116,193,8,66,15,255,255,17,116,193,2,67,15,7,192,197,194,68,15,255,255,17,116,193,3,81,15,255,255,17,116,193,4,82,15,8,192,197,2,72,116,5,5,51,0,116,15,102,15,159,15,114,15,12,192,197,195,76,116,5,5,48,0,99,15,1,0,146,15,13,192,197,34,147,15,13,192,197,99,80,116,5,5,14,0,95,15,7,1,102,15,167,0,102,15,15,0,105,15,19,192,197,66,106,15,148,0,114,15,48,0,99,15,1,0,166,15,19,192,197,131,167,15,19,192,197,228,32,0,122,15,70,0,159,15,36,0,169,15,19,0,169,15,255,255,89,116,193,7,173,15,255,255,139,116,193,29,178,15,255,255,139,116,193,30,179,15,255,255,139,116,193,31,185,15,19,192,197,2,159,15,255,255,57,116,193,12,161,15,255,255,65,116,193,68,162,15,18,192,197,194,163,15,255,255,69,116,193,37,146,15,15,0,146,15,255,255,17,116,193,71,147,15,18,192,197,130,148,15,255,255,21,116,193,30,153,15,255,255,37,116,193,7,122,15,255,255,139,116,193,27,124,15,255,255,139,116,193,28,126,15,1,192,198,65,144,15,255,255,7,116,193,9,96,15,32,0,114,15,14,0,114,15,255,255,139,116,193,25,116,15,255,255,139,116,193,26,118,15,18,192,197,2,120,15,18,192,197,66,96,15,255,255,139,116,193,21,98,15,255,255,139,116,193,22,99,15,255,255,139,116,193,23,102,15,255,255,139,116,193,24,82,15,14,0,82,15,17,192,197,130,86,15,255,255,139,116,193,19,87,15,17,192,197,194,88,15,255,255,139,116,193,20,66,15,255,255,139,116,193,16,67,15,17,192,197,66,68,15,255,255,139,116,193,17,81,15,255,255,139,116,193,18,2,0,120,15,15,192,197,194,153,15,255,255,37,116,193,6,179,15,255,255,121,116,193,3,95,15,255,255,109,116,193,3,98,15,6,0,99,15,70,0,100,15,255,255,131,116,193,4,15,0,161,15,31,0,171,15,14,0,171,15,255,255,97,116,193,5,172,15,16,192,197,130,179,15,255,255,121,116,193,3,185,15,16,192,197,194,161,15,255,255,65,116,193,66,162,15,16,192,197,66,163,15,255,255,69,116,193,36,169,15,255,255,89,116,193,6,148,15,16,0,148,15,255,255,21,116,193,29,151,15,255,255,33,116,193,6,153,15,255,255,37,116,193,6,159,15,255,255,57,116,193,10,120,15,15,192,197,194,144,15,255,255,7,116,193,8,146,15,255,255,17,116,193,70,147,15,16,192,197,2,3,0,149,15,255,255,25,116,193,5,159,15,255,255,57,116,193,11,161,15,255,255,65,116,193,67,162,15,17,192,197,2,79,15,89,0,79,15,255,255,57,116,193,6,81,15,8,0,89,15,255,255,89,116,193,3,94,15,255,255,105,116,193,3,17,0,98,15,37,0,116,15,19,0,116,15,255,255,65,116,193,28,122,15,255,255,65,116,193,29,124,15,255,255,65,116,193,30,126,15,1,192,198,33,173,15,255,255,65,116,193,31,98,15,255,255,65,116,193,24,99,15,255,255,65,116,193,25,102,15,255,255,65,116,193,26,114,15,255,255,65,116,193,27,82,15,18,0,82,15,15,192,197,66,86,15,255,255,65,116,193,21,87,15,15,192,197,130,88,15,255,255,65,116,193,22,96,15,255,255,65,116,193,23,66,15,255,255,65,116,193,18,67,15,15,192,197,2,68,15,255,255,65,116,193,19,81,15,255,255,65,116,193,20,64,15,255,255,7,116,193,4,66,15,4,0,69,15,255,255,25,116,193,3,22,0,99,15,51,0,124,15,25,0,177,15,12,0,177,15,255,255,17,116,193,33,178,15,255,255,17,116,193,34,179,15,255,255,17,116,193,35,124,15,255,255,17,116,193,31,126,15,1,192,198,1,173,15,255,255,17,116,193,32,118,15,10,0,118,15,14,192,197,130,120,15,14,192,197,194,122,15,255,255,17,116,193,30,99,15,255,255,17,116,193,27,114,15,255,255,17,116,193,28,116,15,255,255,17,116,193,29,86,15,25,0,93,15,12,0,93,15,255,255,17,116,193,24,96,15,255,255,17,116,193,25,98,15,255,255,17,116,193,26,86,15,255,255,17,116,193,22,87,15,14,192,197,66,88,15,255,255,17,116,193,23,66,15,255,255,17,116,193,19,67,15,13,192,197,194,68,15,255,255,17,116,193,20,81,15,255,255,17,116,193,21,82,15,14,192,197,2,84,116,5,5,12,0,80,15,179,0,90,15,19,0,90,15,255,255,93,116,193,2,91,15,255,255,97,116,193,2,92,15,24,192,197,130,98,15,1,0,146,15,24,192,197,194,147,15,25,192,197,3,80,15,255,255,61,116,193,3,81,15,80,0,83,15,18,0,96,15,41,0,116,15,19,0,116,15,255,255,69,116,193,30,122,15,255,255,69,116,193,31,124,15,255,255,69,116,193,32,126,15,1,192,198,97,173,15,255,255,69,116,193,33,96,15,255,255,69,116,193,25,98,15,255,255,69,116,193,26,99,15,255,255,69,116,193,27,102,15,255,255,69,116,193,28,114,15,255,255,69,116,193,29,82,15,18,0,82,15,24,192,197,2,83,15,255,255,69,116,193,22,86,15,255,255,69,116,193,23,87,15,24,192,197,66,88,15,255,255,69,116,193,24,66,15,255,255,69,116,193,19,67,15,23,192,197,194,68,15,255,255,69,116,193,20,81,15,255,255,69,116,193,21,16,0,96,15,38,0,114,15,20,0,114,15,255,255,65,116,193,41,116,15,255,255,65,116,193,42,122,15,255,255,65,116,193,43,124,15,255,255,65,116,193,44,173,15,255,255,65,116,193,45,96,15,255,255,65,116,193,37,98,15,255,255,65,116,193,38,99,15,255,255,65,116,193,39,102,15,255,255,65,116,193,40,82,15,14,0,82,15,23,192,197,66,83,15,255,255,65,116,193,35,86,15,255,255,65,116,193,36,87,15,23,192,197,130,66,15,255,255,65,116,193,32,67,15,23,192,197,2,68,15,255,255,65,116,193,33,81,15,255,255,65,116,193,34,70,15,18,0,70,15,255,255,29,116,193,2,71,15,255,255,33,116,193,2,73,15,193,127,37,116,193,3,171,15,22,192,197,98,172,15,22,192,197,163,65,15,255,255,13,116,193,2,66,15,65,0,68,15,14,0,87,15,33,0,114,15,16,0,114,15,255,255,21,116,193,22,116,15,255,255,21,116,193,23,122,15,255,255,21,116,193,24,124,15,255,255,21,116,193,25,87,15,22,192,197,34,96,15,255,255,21,116,193,19,98,15,255,255,21,116,193,20,99,15,255,255,21,116,193,21,81,15,15,0,81,15,255,255,21,116,193,16,82,15,21,192,197,226,83,15,255,255,21,116,193,17,86,15,255,255,21,116,193,18,66,15,255,255,21,116,193,14,67,15,21,192,197,162,68,15,255,255,21,116,193,15,17,0,99,15,37,0,122,15,20,0,122,15,255,255,17,116,193,45,124,15,255,255,17,116,193,46,173,15,255,255,17,116,193,47,177,15,255,255,17,116,193,48,178,15,255,255,17,116,193,49,99,15,255,255,17,116,193,42,114,15,255,255,17,116,193,43,116,15,255,255,17,116,193,44,118,15,21,192,197,98,82,15,18,0,82,15,20,192,197,226,86,15,255,255,17,116,193,39,87,15,21,192,197,34,96,15,255,255,17,116,193,40,98,15,255,255,17,116,193,41,66,15,255,255,17,116,193,36,67,15,20,192,197,162,68,15,255,255,17,116,193,37,81,15,255,255,17,116,193,38,100,116,5,5,49,0,98,15,159,15,25,192,197,162,112,116,5,5,10,0,81,15,202,0,90,15,11,0,90,15,255,255,93,116,193,3,91,15,255,255,97,116,193,3,92,15,28,192,197,226,81,15,93,0,85,15,255,255,77,116,5,5,86,15,20,0,98,15,46,0,118,15,24,0,126,15,11,0,126,15,1,192,198,193,177,15,255,255,81,116,193,31,178,15,255,255,81,116,193,32,118,15,28,192,197,162,122,15,255,255,81,116,193,29,124,15,255,255,81,116,193,30,98,15,255,255,81,116,193,24,99,15,255,255,81,116,193,25,102,15,255,255,81,116,193,26,114,15,255,255,81,116,193,27,116,15,255,255,81,116,193,28,83,15,19,0,83,15,255,255,81,116,193,20,86,15,255,255,81,116,193,21,87,15,28,192,197,98,88,15,255,255,81,116,193,22,96,15,255,255,81,116,193,23,66,15,255,255,81,116,193,17,67,15,27,192,197,226,68,15,255,255,81,116,193,18,81,15,255,255,81,116,193,19,82,15,28,192,197,34,21,0,98,15,46,0,118,15,24,0,126,15,11,0,126,15,1,192,198,161,173,15,255,255,65,116,193,61,178,15,255,255,65,116,193,62,118,15,27,192,197,162,122,15,255,255,65,116,193,59,124,15,255,255,65,116,193,60,98,15,255,255,65,116,193,54,99,15,255,255,65,116,193,55,102,15,255,255,65,116,193,56,114,15,255,255,65,116,193,57,116,15,255,255,65,116,193,58,83,15,25,0,88,15,12,0,88,15,255,255,65,116,193,51,93,15,255,255,65,116,193,52,96,15,255,255,65,116,193,53,83,15,255,255,65,116,193,49,86,15,255,255,65,116,193,50,87,15,27,192,197,98,66,15,255,255,65,116,193,46,67,15,26,192,197,226,68,15,255,255,65,116,193,47,81,15,255,255,65,116,193,48,82,15,27,192,197,34,65,15,255,255,13,116,193,3,66,15,12,0,70,15,255,255,29,116,193,3,71,15,255,255,33,116,193,3,80,15,255,255,61,116,193,4,21,0,99,15,46,0,122,15,25,0,173,15,12,0,173,15,255,255,17,116,193,64,177,15,255,255,17,116,193,65,178,15,255,255,17,116,193,66,122,15,255,255,17,116,193,62,124,15,255,255,17,116,193,63,126,15,1,192,198,129,99,15,255,255,17,116,193,58,102,15,255,255,17,116,193,59,114,15,255,255,17,116,193,60,116,15,255,255,17,116,193,61,118,15,26,192,197,162,83,15,25,0,88,15,12,0,88,15,255,255,17,116,193,55,96,15,255,255,17,116,193,56,98,15,255,255,17,116,193,57,83,15,255,255,17,116,193,53,86,15,255,255,17,116,193,54,87,15,26,192,197,98,66,15,255,255,17,116,193,50,67,15,25,192,197,226,68,15,255,255,17,116,193,51,81,15,255,255,17,116,193,52,82,15,26,192,197,34,120,116,5,5,16,0,162,15,34,0,168,15,18,0,168,15,255,255,85,116,193,18,169,15,255,255,89,116,193,4,171,15,255,255,97,116,193,4,172,15,29,192,197,226,185,15,30,192,197,34,162,15,29,192,197,98,163,15,255,255,69,116,193,34,166,15,255,255,81,116,193,33,167,15,29,192,197,162,151,15,16,0,151,15,255,255,33,116,193,4,153,15,255,255,37,116,193,4,159,15,255,255,57,116,193,7,161,15,255,255,65,116,193,63,144,15,255,255,7,116,193,5,146,15,255,255,17,116,193,67,147,15,29,192,197,34,148,15,255,255,21,116,193,26,126,116,5,5,13,0,161,15,27,0,166,15,14,0,166,15,255,255,81,116,193,34,167,15,30,192,197,226,183,15,255,255,143,116,5,5,185,15,31,192,197,34,161,15,255,255,65,116,193,64,162,15,30,192,197,162,164,15,255,255,73,116,193,16,148,15,16,0,148,15,255,255,21,116,193,27,149,15,255,255,25,116,193,4,151,15,255,255,33,116,193,5,159,15,255,255,57,116,193,8,144,15,255,255,7,116,193,6,146,15,255,255,17,116,193,68,147,15,30,192,197,98,130,116,5,5,49,0,102,15,159,15,31,192,197,98,138,116,5,5,15,0,162,15,31,0,167,15,14,0,167,15,32,192,197,194,168,15,255,255,85,116,193,19,169,15,255,255,89,116,193,5,185,15,33,192,197,2,162,15,32,192,197,130,163,15,255,255,69,116,193,35,164,15,255,255,73,116,193,17,166,15,255,255,81,116,193,35,148,15,16,0,148,15,255,255,21,116,193,28,153,15,255,255,37,116,193,5,159,15,255,255,57,116,193,9,161,15,255,255,65,116,193,65,98,15,11,0,144,15,255,255,7,116,193,7,146,15,255,255,17,116,193,69,147,15,32,192,197,66,1,0,146,15,31,192,197,162,147,15,31,192,197,227,146,116,5,5,2,0,98,15,7,0,102,15,15,0,106,15,48,0,177,15,33,192,197,226,2,0,146,15,33,192,197,66,147,15,33,192,197,131,177,15,33,192,197,226,48,0,168,15,34,192,197,34,120,116,6,5,48,0,153,15,255,255,37,116,193,4,147,116,193,2,2,0,114,15,255,255,147,116,193,4,116,15,255,255,147,116,193,8,128,15,255,255,147,116,193,6,147,116,193,9,48,0,122,15,255,255,147,116,193,10,147,116,193,11,48,0,124,15,255,255,147,116,193,12,252,244,194,5,2,0,144,15,255,255,6,116,5,70,145,15,255,255,12,116,5,70,185,15,34,192,197,162,253,244,194,5,1,0,164,15,255,255,72,116,5,70,165,15,255,255,76,116,5,70,255,244,194,5,48,0,153,15,255,255,36,116,5,70,147,116,193,41,4,0,113,15,14,0,115,15,36,192,197,98,117,15,36,192,197,162,128,15,255,255,180,116,5,5,129,15,255,255,182,116,5,5,66,73,197,34,114,15,36,192,197,98,116,15,36,192,197,162,128,15,255,255,182,116,5,5,147,116,193,42,4,0,113,15,14,0,115,15,37,192,197,34,117,15,37,192,197,98,128,15,255,255,184,116,5,5,129,15,255,255,186,116,5,5,66,73,197,226,114,15,37,192,197,34,116,15,37,192,197,98,128,15,255,255,186,116,5,5,34,0,65,15,72,15,73,15,74,15,79,15,101,15,102,15,103,15,105,15,107,15,118,15,119,15,120,15,121,15,126,15,127,15,144,15,150,15,151,15,152,15,153,15,154,15,158,15,160,15,161,15,170,15,171,15,174,15,177,15,182,15,183,15,184,15,185,15,186,15,3,0,69,0,52,0,61,0,215,3,0,16,4,0,0,96,1,0,0,96,1,0,43,0,163,16,0,32,1,0,32,0,168,16,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,2,8,0,32,7,0,0,0,21,0,0,0,4,8,0,0,4,8,0,0,3,0,0,0,0,0,0,0,53,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,58,220,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,60,0,99,0,39,0,39,0,104,0,61,0,99,0,188,2,104,0,61,0,99,0,25,32,104,0,60,0,60,0,60,0,67,0,39,0,39,0,104,0,61,0,67,0,188,2,104,0,61,0,67,0,25,32,104,0,60,0,60,0,60,0,67,0,39,0,39,0,72,0,61,0,67,0,188,2,72,0,61,0,67,0,25,32,72,0,0,0,170,170,170,170,170,170,170,170,12,31,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,23,0,0,100,23,0,0,100,23,0,0,100,23,0,0,24,25,0,0,24,25,0,0,230,26,0,0,12,27,0,0,244,30,0,0,50,105,114,84,1,0,64,8,105,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,12,0,202,129,12,0,202,162,12,0,202,195,12,0,202,228,12,0,202,5,13,0,202,38,13,0,202,71,13,0,202,104,13,0,202,137,13,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,192,17,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,11,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,11,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,12,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,71,5,3,47,5,142,0,0,70,5,3,47,5,142,0,0,71,5,3,47,5,144,0,0,70,5,3,47,5,144,0,0,71,5,3,47,5,156,0,0,70,5,3,47,5,156,0,0,71,5,3,47,5,196,0,0,70,5,3,47,5,196,0,0,71,5,3,47,5,150,0,0,70,5,3,47,5,150,0,0,71,5,3,47,5,160,0,0,70,5,3,47,5,160,0,0,71,5,3,47,5,206,0,0,70,5,3,47,5,206,0,0,70,5,3,47,5,210,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,5,196,0,0,70,5,2,47,5,196,0,0,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,5,5,3,47,5,142,0,0,5,5,3,47,5,144,0,0,5,5,3,47,5,156,0,0,5,5,3,47,5,196,0,0,5,5,3,47,5,150,0,0,5,5,3,47,5,160,0,0,5,5,3,47,5,206,0,0,5,5,3,47,5,210,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,5,196,0,0,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,19,0,36,30,50,0,41,30,33,0,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,25,32,16,0,36,30,94,0,40,30,80,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,40,30,6,192,197,98,30,2,14,0,30,2,4,192,197,98,31,2,4,192,197,162,188,2,20,0,34,30,4,192,197,226,35,30,5,192,197,34,39,0,12,0,72,0,2,239,135,5,104,0,2,239,70,5,36,1,3,192,197,226,37,1,4,192,197,34,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,3,239,71,5,104,0,3,239,70,5,36,1,197,162,37,1,0,192,197,98,0,46,5,5,11,0,37,30,36,0,43,30,25,0,43,30,11,192,197,34,150,30,11,192,197,98,25,32,8,0,37,30,60,0,37,30,8,192,197,98,39,30,8,192,197,162,41,30,8,192,197,226,43,30,9,192,197,34,150,30,9,192,197,98,37,30,10,192,197,98,39,30,10,192,197,162,41,30,10,192,197,226,31,2,8,0,31,2,9,192,197,226,188,2,11,0,35,30,10,192,197,34,39,0,6,0,104,0,2,239,5,5,37,1,9,192,197,162,8,0,37,30,15,0,37,30,8,192,197,98,39,30,8,192,197,162,41,30,8,192,197,226,43,30,9,192,197,34,150,30,9,192,197,98,104,0,3,239,5,5,37,1,7,192,197,162,31,2,7,192,197,226,35,30,8,192,197,34,18,0,39,0,40,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,188,2,189,2,34,30,44,30,150,30,151,30,25,32,26,32,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,185,84,185,88,186,92,186,100,185,104,185,108,185,112,186,116,185,124,185,128,185,132,185,140,186,144,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,168,84,168,88,168,92,168,100,168,104,168,108,168,112,168,116,168,124,168,128,168,132,168,140,168,144,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,250,146,232,146,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,144,169,144,200,56,169,76,187,92,187,100,169,92,169,100,169,184,169,116,217,124,187,76,200,124,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,39,2,72,4,186,68,104,4,177,68,36,5,250,69,37,5,241,69,153,3,255,5,168,64,39,2,104,4,168,68,37,5,232,69,153,3,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,251,7,0,32,1,0,32,0,0,8,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,132,19,0,32,7,0,0,0,23,0,0,0,134,19,0,0,134,19,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,93,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,0,0,252,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,113,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,180,35,0,0,180,35,0,0,180,35,0,0,180,35,0,0,172,38,0,0,172,38,0,0,198,40,0,0,228,40,0,0,228,40,0,0,50,105,114,84,1,0,64,8,46,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,152,0,160,0,48,0,56,0,159,0,167,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,192,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,48,0,48,0,216,0,48,0,222,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,240,0,48,0,48,0,248,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,182,0,48,0,48,0,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,23,1,48,0,48,0,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,232,1,32,2,96,2,192,0,124,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,22,0,202,161,22,0,202,194,22,0,202,227,22,0,202,4,23,0,202,37,23,0,202,70,23,0,202,103,23,0,202,136,23,0,202,169,23,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,201,68,2,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,224,4,0,156,5,0,66,201,64,7,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,166,10,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,11,0,201,4,13,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,128,14,0,5,5,0,66,201,32,16,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,18,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,13,0,201,134,19,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,13,0,201,6,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,22,0,201,70,23,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,198,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,25,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,5,71,238,102,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,197,98,5,0,192,0,0,0,192,0,0,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,197,34,6,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,197,226,6,0,197,35,7,0,197,130,7,0,192,0,0,0,192,0,0,0,197,194,7,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,29,0,201,230,29,0,192,0,0,0,192,0,0,0,197,226,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,4,0,5,5,10,121,5,5,12,121,197,226,4,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,197,162,5,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,5,0,5,5,107,121,197,34,6,0,5,5,111,121,197,98,6,0,5,5,115,121,197,162,6,0,5,5,119,121,197,226,6,0,197,35,7,0,197,130,7,0,5,5,127,121,5,5,129,121,197,194,7,0,197,3,8,0,197,98,8,0,5,5,137,121,5,5,139,121,197,162,8,0,5,5,143,121,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,78,196,196,48,0,12,3,11,192,197,98,5,78,196,196,48,0,12,3,11,192,197,162,156,92,196,196,48,0,12,3,12,192,197,98,5,92,196,196,48,0,12,3,12,192,197,162,156,92,196,210,48,0,12,3,12,192,197,226,5,92,196,210,48,0,12,3,13,192,197,34,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,3,0,67,0,50,0,59,0,43,0,0,16,16,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,28,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,188,28,0,0,188,28,0,0,188,28,0,0,188,28,0,0,208,29,0,0,208,29,0,0,164,31,0,0,194,31,0,0,4,36,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,153,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,7,0,202,129,7,0,202,162,7,0,202,195,7,0,202,228,7,0,202,5,8,0,202,38,8,0,202,71,8,0,202,104,8,0,202,137,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,132,1,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,4,0,156,5,0,66,201,128,6,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,10,0,201,68,12,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,13,0,5,5,0,66,201,96,15,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,6,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,230,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,6,0,201,198,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,7,0,201,70,20,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,21,0,201,134,22,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,23,0,201,6,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,24,0,201,134,25,0,192,0,0,0,192,0,0,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,26,0,201,6,27,0,201,198,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,156,78,196,196,48,0,12,3,4,192,197,162,5,78,196,196,48,0,12,3,4,192,197,226,156,92,196,196,48,0,12,3,5,192,197,162,5,92,196,196,48,0,12,3,5,192,197,226,156,92,196,210,48,0,12,3,6,192,197,34,5,92,196,210,48,0,12,3,6,192,197,98,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,186,88,185,92,185,96,185,100,186,104,186,112,185,116,36,4,185,128,46,4,185,144,185,148,185,152,185,160,56,4,185,172,185,180,185,184,185,188,185,192,185,196,58,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,60,4,62,4,168,88,168,92,168,96,168,100,168,104,168,112,168,116,67,4,168,128,73,4,168,144,168,148,168,152,168,160,79,4,168,172,168,180,168,184,168,188,168,192,168,196,81,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,83,4,186,89,154,89,250,89,90,90,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,181,153,181,249,181,89,182,153,197,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,85,4,168,89,136,89,232,89,72,90,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,181,136,181,232,181,72,182,136,197,168,208,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,84,168,84,58,91,40,91,218,89,200,89,186,90,168,90,26,91,8,91,26,90,8,90,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,165,136,165,250,165,232,165,87,4,89,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,153,201,136,201,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,164,169,164,200,56,169,88,187,104,187,112,169,104,169,112,169,212,169,132,217,144,187,88,200,144,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,76,90,2,122,2,125,5,186,80,126,5,177,80,255,5,185,120,74,4,186,124,106,4,177,124,52,5,250,125,53,5,241,125,255,5,186,132,74,4,186,136,106,4,177,136,52,5,250,137,53,5,241,137,255,5,186,164,255,5,185,200,255,5,168,64,255,5,168,76,122,2,126,5,168,80,255,5,168,120,106,4,168,124,53,5,232,125,255,5,168,132,106,4,168,136,53,5,232,137,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,3,0,67,0,50,0,59,0,115,10,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,107,10,0,32,123,19,0,32,1,0,32,0,128,19,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,152,6,0,32,7,0,0,0,21,0,0,0,154,6,0,0,154,6,0,0,3,0,0,0,0,0,0,0,29,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,114,0,93,0,0,0,170,170,170,170,170,170,170,170,196,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,88,25,0,0,88,25,0,0,88,25,0,0,88,25,0,0,172,25,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,174,5,70,97,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,97,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,174,5,70,97,5,140,0,0,5,5,70,97,5,140,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,145,6,0,32,1,0,32,0,150,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,43,9,0,32,7,0,0,0,21,0,0,0,45,9,0,0,45,9,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,170,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,76,0,60,0,64,1,61,0,108,0,183,0,60,0,60,0,60,0,63,1,61,0,76,0,183,0,0,0,170,170,224,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,36,33,0,0,36,33,0,0,36,33,0,0,36,33,0,0,76,35,0,0,76,35,0,0,190,35,0,0,200,35,0,0,200,35,0,0,50,105,114,84,1,0,64,8,5,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,100,0,108,0,114,0,122,0,130,0,138,0,48,0,56,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,0,170,0,48,0,48,0,48,0,178,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,48,0,48,0,194,0,48,0,200,0,208,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,211,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,219,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,222,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,160,0,48,0,48,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,244,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,144,1,200,1,8,2,192,0,36,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,192,0,0,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,32,2,0,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,65,5,5,2,65,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,3,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,5,0,5,71,238,102,201,70,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,64,156,5,1,0,183,0,255,255,2,65,134,5,135,3,255,255,2,65,134,5,0,64,5,5,1,0,183,0,255,255,2,65,5,5,135,3,255,255,2,65,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,4,0,183,0,184,0,135,3,136,3,3,0,67,0,50,0,59,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,36,9,0,32,1,0,32,0,41,9,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,3,8,0,32,7,0,0,0,21,0,0,0,5,8,0,0,5,8,0,0,3,0,0,0,0,0,0,0,34,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,78,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,0,0,170,170,170,170,94,31,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,0,26,0,0,0,26,0,0,32,27,0,0,58,27,0,0,70,31,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,8,0,202,65,8,0,202,98,8,0,202,131,8,0,202,164,8,0,202,197,8,0,202,230,8,0,202,7,9,0,202,40,9,0,202,73,9,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,4,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,196,7,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,7,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,12,0,201,198,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,13,0,201,70,14,0,201,6,15,0,201,198,15,0,201,134,16,0,201,70,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,3,69,5,140,0,0,70,5,3,69,5,140,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,160,0,0,70,5,3,69,5,160,0,0,135,5,3,69,5,144,0,0,70,5,3,69,5,144,0,0,135,5,3,69,5,136,0,0,70,5,3,69,5,136,0,0,135,5,3,69,5,164,0,0,70,5,3,69,5,164,0,0,5,5,3,69,5,142,0,0,5,5,3,69,5,140,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,160,0,0,5,5,3,69,5,144,0,0,5,5,3,69,5,136,0,0,5,5,3,69,5,164,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,16,0,34,1,30,0,244,1,16,0,244,1,2,192,197,162,245,1,2,192,197,226,3,3,255,255,2,69,134,5,32,30,3,192,197,34,33,30,3,192,197,98,34,1,1,192,197,162,35,1,1,192,197,226,230,1,2,192,197,34,231,1,2,192,197,98,30,1,12,0,30,1,0,192,197,162,31,1,0,192,197,226,32,1,1,192,197,34,33,1,1,192,197,98,71,0,255,255,3,69,135,5,103,0,255,255,3,69,70,5,28,1,197,162,29,1,0,192,197,98,0,68,5,5,8,0,35,1,16,0,35,1,4,192,197,98,231,1,4,192,197,162,245,1,4,192,197,226,3,3,255,255,2,69,5,5,33,30,5,192,197,34,103,0,255,255,3,69,5,5,29,1,3,192,197,162,31,1,3,192,197,226,33,1,4,192,197,34,156,68,196,160,48,0,3,3,5,192,197,98,5,68,196,160,48,0,3,3,5,192,197,162,156,68,196,196,48,0,3,3,5,192,197,226,5,68,196,196,48,0,3,3,6,192,197,34,156,68,196,210,48,0,3,3,6,192,197,98,5,68,196,210,48,0,3,3,6,192,197,162,156,68,196,204,48,0,3,3,6,192,197,226,5,68,196,204,48,0,3,3,7,192,197,34,12,0,71,0,72,0,103,0,104,0,28,1,36,1,230,1,232,1,244,1,246,1,32,30,34,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,128,185,132,185,136,185,144,186,148,185,152,185,160,185,164,185,168,185,172,185,176,185,180,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,48,4,168,128,168,132,168,136,168,144,168,148,168,152,168,160,168,164,168,168,168,172,168,176,168,180,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,129,153,129,249,129,153,130,89,130,136,14,217,130,185,161,153,161,249,161,89,162,153,177,185,184,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,129,136,129,232,129,136,130,72,130,128,14,200,130,168,161,136,161,232,161,72,162,136,177,168,184,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,140,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,60,4,62,4,26,114,8,114,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,145,136,145,249,146,232,146,25,146,8,146,154,149,136,149,250,149,232,149,250,150,232,150,26,150,8,150,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,181,136,181,185,182,168,182,25,182,8,182,232,148,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,148,169,148,200,56,169,72,187,88,187,96,169,88,169,96,169,188,169,112,217,128,187,72,200,128,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,71,4,186,120,103,4,177,120,28,5,250,121,29,5,241,121,30,5,218,121,31,5,209,121,32,5,186,122,33,5,177,122,34,5,250,122,35,5,241,122,255,5,168,112,103,4,168,120,29,5,232,121,31,5,200,121,33,5,168,122,35,5,232,122,255,5,250,114,255,5,232,114,255,1,170,170,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,252,7,0,32,1,0,32,0,1,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,0,0,32,7,0,0,0,21,0,0,0,122,0,0,0,122,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,104,0,101,0,114,0,93,0,0,0,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,6,0,0,0,0,0,58,118,177,255,232,118,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,113,0,0,32,1,0,32,0,118,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,13,9,0,32,7,0,0,0,21,0,0,0,15,9,0,0,15,9,0,0,3,0,0,0,0,0,0,0,54,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,60,220,38,0,67,0,60,0,99,0,12,3,60,0,60,0,60,0,67,0,12,3,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,82,0,60,0,114,0,12,3,60,0,60,0,60,0,82,0,12,3,38,0,83,0,60,0,115,0,12,3,60,0,60,0,60,0,83,0,12,3,38,0,90,0,60,0,122,0,12,3,60,0,60,0,60,0,90,0,12,3,0,0,170,170,170,170,56,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,244,26,0,0,244,26,0,0,244,26,0,0,244,26,0,0,200,28,0,0,200,28,0,0,238,30,0,0,8,31,0,0,32,35,0,0,50,105,114,84,1,0,64,8,162,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,91,0,99,0,48,0,56,0,48,0,56,0,107,0,115,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,141,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,131,0,48,0,48,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,108,1,192,0,192,0,172,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,13,0,202,129,13,0,202,162,13,0,202,195,13,0,202,228,13,0,202,5,14,0,202,38,14,0,202,71,14,0,202,104,14,0,202,137,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,4,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,201,198,7,0,201,166,8,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,134,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,100,10,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,201,70,18,0,201,38,19,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,6,20,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,12,0,201,230,20,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,12,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,13,0,201,166,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,22,0,201,38,23,0,134,5,2,77,5,5,2,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,23,0,201,166,24,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,26,0,201,166,27,0,192,0,0,0,192,0,0,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,201,230,29,0,201,166,30,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,31,0,201,38,32,0,201,230,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,17,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,15,0,30,2,0,192,197,162,31,2,0,192,197,226,12,3,2,239,134,5,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,0,76,156,5,48,0,12,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,17,0,36,30,29,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,30,2,15,0,30,2,4,192,197,98,31,2,4,192,197,162,12,3,2,239,5,5,34,30,4,192,197,226,35,30,5,192,197,34,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,0,76,5,5,48,0,12,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,7,192,197,162,5,46,196,160,48,0,12,3,7,192,197,226,156,76,196,160,48,0,12,3,8,192,197,34,5,76,196,160,48,0,12,3,8,192,197,98,156,78,196,160,48,0,12,3,8,192,197,162,5,78,196,160,48,0,12,3,8,192,197,226,156,78,196,202,48,0,12,3,9,192,197,34,5,78,196,202,48,0,12,3,9,192,197,98,156,76,196,196,48,0,12,3,9,192,197,162,5,76,196,196,48,0,12,3,9,192,197,226,156,76,196,210,48,0,12,3,10,192,197,34,5,76,196,210,48,0,12,3,10,192,197,98,156,78,196,196,48,0,12,3,10,192,197,162,5,78,196,196,48,0,12,3,10,192,197,226,156,92,196,196,48,0,12,3,11,192,197,162,5,92,196,196,48,0,12,3,11,192,197,226,156,92,196,210,48,0,12,3,12,192,197,34,5,92,196,210,48,0,12,3,12,192,197,98,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,185,84,185,88,186,96,186,104,185,108,185,112,185,116,186,120,185,128,185,132,185,136,36,4,38,4,185,160,185,168,185,172,185,176,185,180,185,184,40,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,42,4,168,72,168,76,168,80,168,84,168,88,168,96,168,104,168,108,168,112,168,116,168,120,168,128,168,132,168,136,52,4,54,4,168,160,168,168,168,172,168,176,168,180,168,184,56,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,58,4,186,77,154,77,250,77,90,78,186,97,154,97,250,97,90,98,217,72,154,122,185,129,153,129,249,129,153,130,89,130,136,14,217,130,185,169,153,169,249,169,89,170,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,60,4,168,77,136,77,232,77,72,78,168,97,136,97,232,97,72,98,200,72,136,122,168,129,136,129,232,129,136,130,72,130,128,14,200,130,168,169,136,169,232,169,72,170,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,98,136,98,58,99,40,99,218,97,200,97,26,99,8,99,186,98,168,100,6,8,8,8,250,105,232,105,249,110,232,110,168,140,153,113,136,113,249,114,232,114,25,114,8,114,121,115,104,115,89,115,72,115,154,121,136,121,250,122,232,122,26,122,8,122,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,145,136,145,62,4,64,4,185,148,168,148,154,153,136,153,250,153,232,153,66,4,68,4,185,156,168,156,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,25,171,8,171,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,185,192,168,192,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,96,187,104,169,96,169,104,169,200,169,120,217,128,187,76,200,128,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,187,92,104,4,178,92,36,5,251,93,37,5,242,93,255,5,185,144,255,5,186,152,255,5,185,188,255,5,168,64,72,4,177,92,104,4,168,92,36,5,241,93,37,5,232,93,255,5,168,144,255,5,168,152,255,5,168,188,255,5,249,66,255,5,232,66,255,5,249,146,255,5,232,146,255,5,250,154,255,5,232,154,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,6,9,0,32,1,0,32,0,11,9,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,26,10,0,32,7,0,0,0,21,0,0,0,28,10,0,0,28,10,0,0,3,0,0,0,0,0,0,0,84,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,120,220,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,68,0,60,0,100,0,100,0,60,0,60,0,60,0,68,0,100,0,60,0,60,0,60,0,68,0,68,0,38,0,70,0,60,0,102,0,102,0,60,0,60,0,60,0,70,0,102,0,60,0,60,0,60,0,70,0,70,0,38,0,71,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,38,0,76,0,60,0,108,0,108,0,60,0,60,0,60,0,76,0,108,0,60,0,60,0,60,0,76,0,76,0,38,0,80,0,60,0,112,0,104,0,60,0,60,0,60,0,80,0,104,0,60,0,60,0,60,0,80,0,72,0,38,0,82,0,60,0,114,0,104,0,60,0,60,0,60,0,82,0,104,0,60,0,60,0,60,0,82,0,72,0,38,0,84,0,60,0,116,0,104,0,60,0,60,0,60,0,84,0,104,0,60,0,60,0,60,0,84,0,72,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,234,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,23,0,0,100,23,0,0,100,23,0,0,100,23,0,0,140,28,0,0,140,28,0,0,164,33,0,0,226,33,0,0,210,38,0,0,50,105,114,84,1,0,64,8,105,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,40,0,202,33,40,0,202,66,40,0,202,99,40,0,202,132,40,0,202,165,40,0,202,198,40,0,202,231,40,0,202,8,41,0,202,41,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,201,96,7,0,156,5,0,50,201,192,13,0,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,160,15,0,156,5,0,66,201,0,23,0,156,5,0,70,201,32,30,0,160,5,0,74,201,224,37,0,156,5,0,78,201,160,45,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,96,53,0,201,96,57,0,5,5,0,50,201,160,60,0,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,61,0,5,5,0,66,201,128,65,0,5,5,0,70,201,32,69,0,5,5,0,74,201,64,73,0,5,5,0,78,201,96,77,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,66,39,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,130,39,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,194,39,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,5,196,0,0,70,5,2,47,5,196,0,0,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,135,5,2,49,5,144,0,0,70,5,2,49,5,144,0,0,135,5,2,49,5,156,0,0,70,5,2,49,5,156,0,0,135,5,2,49,5,196,0,0,70,5,2,49,5,196,0,0,135,5,2,49,5,210,0,0,70,5,2,49,5,210,0,0,135,5,2,49,5,160,0,0,70,5,2,49,5,160,0,0,135,5,2,49,5,204,0,0,70,5,2,49,5,204,0,0,135,5,2,53,5,156,0,0,70,5,2,53,5,156,0,0,135,5,2,65,5,136,0,0,70,5,2,65,5,136,0,0,135,5,2,65,5,160,0,0,70,5,2,65,5,160,0,0,135,5,2,65,5,144,0,0,70,5,2,65,5,144,0,0,135,5,2,65,5,196,0,0,70,5,2,65,5,196,0,0,135,5,2,65,5,196,0,0,5,164,0,0,70,5,2,65,5,196,0,0,5,164,0,0,135,5,2,65,5,210,0,0,70,5,2,65,5,210,0,0,135,5,2,65,5,204,0,0,70,5,2,65,5,204,0,0,135,5,2,55,5,142,0,0,70,5,2,55,5,142,0,0,135,5,2,55,5,140,0,0,70,5,2,55,5,140,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,160,0,0,70,5,2,55,5,160,0,0,135,5,2,55,5,144,0,0,70,5,2,55,5,144,0,0,135,5,2,55,5,136,0,0,70,5,2,55,5,136,0,0,135,5,2,55,5,164,0,0,70,5,2,55,5,164,0,0,135,5,2,73,5,142,0,0,70,5,2,73,5,142,0,0,135,5,2,73,5,144,0,0,70,5,2,73,5,144,0,0,135,5,2,73,5,156,0,0,70,5,2,73,5,156,0,0,135,5,2,73,5,196,0,0,70,5,2,73,5,196,0,0,135,5,2,73,5,150,0,0,70,5,2,73,5,150,0,0,135,5,2,73,5,160,0,0,70,5,2,73,5,160,0,0,135,5,2,73,5,206,0,0,70,5,2,73,5,206,0,0,70,5,2,73,5,210,0,0,135,5,2,77,5,142,0,0,70,5,2,77,5,142,0,0,135,5,2,77,5,144,0,0,70,5,2,77,5,144,0,0,135,5,2,77,5,156,0,0,70,5,2,77,5,156,0,0,135,5,2,77,5,196,0,0,70,5,2,77,5,196,0,0,135,5,2,77,5,150,0,0,70,5,2,77,5,150,0,0,135,5,2,77,5,160,0,0,70,5,2,77,5,160,0,0,135,5,2,77,5,206,0,0,70,5,2,77,5,206,0,0,70,5,2,77,5,210,0,0,135,5,2,81,5,142,0,0,70,5,2,81,5,142,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,5,196,0,0,70,5,2,81,5,196,0,0,135,5,2,81,5,150,0,0,70,5,2,81,5,150,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,206,0,0,70,5,2,81,5,206,0,0,70,5,2,81,5,210,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,5,196,0,0,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,5,5,2,49,5,144,0,0,5,5,2,49,5,156,0,0,5,5,2,49,5,196,0,0,5,5,2,49,5,210,0,0,5,5,2,49,5,160,0,0,5,5,2,49,5,204,0,0,5,5,2,53,5,156,0,0,5,5,2,65,5,136,0,0,5,5,2,65,5,160,0,0,5,5,2,65,5,144,0,0,5,5,2,65,5,196,0,0,5,5,2,65,5,196,0,0,5,164,0,0,5,5,2,65,5,210,0,0,5,5,2,65,5,204,0,0,5,5,2,55,5,142,0,0,5,5,2,55,5,140,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,160,0,0,5,5,2,55,5,144,0,0,5,5,2,55,5,136,0,0,5,5,2,55,5,164,0,0,5,5,2,73,5,142,0,0,5,5,2,73,5,144,0,0,5,5,2,73,5,156,0,0,5,5,2,73,5,196,0,0,5,5,2,73,5,150,0,0,5,5,2,73,5,160,0,0,5,5,2,73,5,206,0,0,5,5,2,73,5,210,0,0,5,5,2,77,5,142,0,0,5,5,2,77,5,144,0,0,5,5,2,77,5,156,0,0,5,5,2,77,5,196,0,0,5,5,2,77,5,150,0,0,5,5,2,77,5,160,0,0,5,5,2,77,5,206,0,0,5,5,2,77,5,210,0,0,5,5,2,81,5,142,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,156,0,0,5,5,2,81,5,196,0,0,5,5,2,81,5,150,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,206,0,0,5,5,2,81,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,239,135,5,104,0,2,239,70,5,36,1,197,162,37,1,0,192,197,98,0,48,156,5,13,0,13,30,23,0,16,30,12,0,16,30,5,192,197,226,17,30,6,192,197,34,18,30,6,192,197,98,19,30,6,192,197,162,13,30,5,192,197,34,14,30,5,192,197,98,15,30,5,192,197,162,15,1,12,0,15,1,4,192,197,34,10,30,4,192,197,98,11,30,4,192,197,162,12,30,4,192,197,226,68,0,2,241,135,5,100,0,2,241,70,5,14,1,3,192,197,226,0,52,156,5,3,0,70,0,2,245,135,5,102,0,2,245,70,5,30,30,6,192,197,226,31,30,7,192,197,34,0,64,156,5,15,0,54,30,26,0,58,30,12,0,58,30,10,192,197,34,59,30,10,192,197,98,60,30,10,192,197,162,61,30,10,192,197,226,54,30,8,192,197,226,55,30,9,192,197,34,56,30,9,192,197,99,57,30,9,192,197,195,59,1,12,0,59,1,7,192,197,226,60,1,8,192,197,34,61,1,8,192,197,98,62,1,8,192,197,162,76,0,255,255,2,65,135,5,108,0,255,255,2,65,70,5,57,1,7,192,197,98,58,1,7,192,197,162,0,68,156,5,15,0,34,1,26,0,244,1,12,0,244,1,13,192,197,162,245,1,13,192,197,226,32,30,14,192,197,34,33,30,14,192,197,98,34,1,12,192,197,162,35,1,12,192,197,226,230,1,13,192,197,34,231,1,13,192,197,98,30,1,12,0,30,1,11,192,197,162,31,1,11,192,197,226,32,1,12,192,197,34,33,1,12,192,197,98,71,0,2,247,135,5,103,0,2,247,70,5,28,1,11,192,197,34,29,1,11,192,197,98,0,72,156,5,16,0,36,30,29,0,40,30,15,0,40,30,17,192,197,34,41,30,17,192,197,98,42,30,17,192,197,162,43,30,17,192,197,226,150,30,18,192,197,34,36,30,16,192,197,34,37,30,16,192,197,98,38,30,16,192,197,162,39,30,16,192,197,226,30,2,12,0,30,2,15,192,197,34,31,2,15,192,197,98,34,30,15,192,197,162,35,30,15,192,197,226,72,0,255,255,2,73,135,5,104,0,255,255,2,73,70,5,36,1,14,192,197,162,37,1,14,192,197,226,0,76,156,5,16,0,36,30,29,0,40,30,15,0,40,30,20,192,197,226,41,30,21,192,197,34,42,30,21,192,197,98,43,30,21,192,197,162,150,30,21,192,197,226,36,30,19,192,197,226,37,30,20,192,197,34,38,30,20,192,197,98,39,30,20,192,197,162,30,2,12,0,30,2,18,192,197,226,31,2,19,192,197,34,34,30,19,192,197,98,35,30,19,192,197,162,72,0,255,255,2,77,135,5,104,0,255,255,2,77,70,5,36,1,18,192,197,98,37,1,18,192,197,162,0,80,156,5,16,0,36,30,29,0,40,30,15,0,40,30,24,192,197,162,41,30,24,192,197,226,42,30,25,192,197,34,43,30,25,192,197,98,150,30,25,192,197,162,36,30,23,192,197,162,37,30,23,192,197,226,38,30,24,192,197,34,39,30,24,192,197,98,30,2,12,0,30,2,22,192,197,162,31,2,22,192,197,226,34,30,23,192,197,34,35,30,23,192,197,98,72,0,255,255,2,81,135,5,104,0,255,255,2,81,70,5,36,1,22,192,197,34,37,1,22,192,197,98,0,46,5,5,8,0,37,30,15,0,37,30,26,192,197,162,39,30,26,192,197,226,41,30,27,192,197,34,43,30,27,192,197,98,150,30,27,192,197,162,104,0,2,239,5,5,37,1,25,192,197,226,31,2,26,192,197,34,35,30,26,192,197,98,0,48,5,5,6,0,13,30,12,0,13,30,28,192,197,98,15,30,28,192,197,162,17,30,28,192,197,226,19,30,29,192,197,34,100,0,2,241,5,5,15,1,27,192,197,226,11,30,28,192,197,34,0,52,5,5,1,0,102,0,2,245,5,5,31,30,29,192,197,98,0,64,5,5,7,0,55,30,12,0,55,30,30,192,197,98,57,30,30,192,197,163,59,30,31,192,197,2,61,30,31,192,197,66,108,0,255,255,2,65,5,5,58,1,29,192,197,162,60,1,29,192,197,226,62,1,30,192,197,34,0,68,5,5,7,0,35,1,12,0,35,1,32,192,197,66,231,1,32,192,197,130,245,1,32,192,197,194,33,30,33,192,197,2,103,0,2,247,5,5,29,1,31,192,197,130,31,1,31,192,197,194,33,1,32,192,197,2,0,72,5,5,8,0,37,30,15,0,37,30,34,192,197,2,39,30,34,192,197,66,41,30,34,192,197,130,43,30,34,192,197,194,150,30,35,192,197,2,104,0,255,255,2,73,5,5,37,1,33,192,197,66,31,2,33,192,197,130,35,30,33,192,197,194,0,76,5,5,8,0,37,30,15,0,37,30,36,192,197,2,39,30,36,192,197,66,41,30,36,192,197,130,43,30,36,192,197,194,150,30,37,192,197,2,104,0,255,255,2,77,5,5,37,1,35,192,197,66,31,2,35,192,197,130,35,30,35,192,197,194,0,80,5,5,8,0,37,30,15,0,37,30,38,192,197,2,39,30,38,192,197,66,41,30,38,192,197,130,43,30,38,192,197,194,150,30,39,192,197,2,104,0,255,255,2,81,5,5,37,1,37,192,197,66,31,2,37,192,197,130,35,30,37,192,197,194,30,0,68,0,69,0,70,0,73,0,100,0,101,0,102,0,105,0,108,0,109,0,14,1,16,1,28,1,38,1,57,1,63,1,230,1,232,1,244,1,246,1,30,2,32,2,10,30,20,30,30,30,44,30,54,30,62,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,36,4,186,80,46,4,185,92,185,100,186,104,186,112,185,116,52,4,185,128,70,4,185,140,92,4,185,152,102,4,186,168,112,4,185,184,185,188,185,192,185,196,185,200,185,204,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,122,4,128,4,168,80,134,4,168,92,168,100,168,104,168,112,168,116,138,4,168,128,148,4,168,140,160,4,168,152,166,4,168,168,172,4,168,184,168,188,168,192,168,196,168,200,168,204,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,81,154,81,250,81,90,82,186,105,154,105,250,105,90,106,217,72,154,134,185,141,153,141,249,141,153,142,89,142,136,14,217,142,185,185,153,185,249,185,89,186,153,201,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,81,136,81,232,81,72,82,168,105,136,105,232,105,72,106,200,72,136,134,168,141,136,141,232,141,136,142,72,142,128,14,200,142,168,185,136,185,232,185,72,186,136,201,168,208,72,202,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,83,40,83,218,81,200,81,186,82,168,82,26,83,8,83,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,169,136,169,250,169,232,169,250,170,232,170,26,170,8,170,249,174,232,174,25,174,8,174,185,180,168,180,153,186,136,186,57,187,40,187,217,185,200,185,57,186,40,186,121,186,104,186,25,187,8,187,249,193,232,193,249,201,232,201,89,202,153,205,136,205,185,206,168,206,25,206,8,206,232,168,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,168,169,168,200,56,169,80,187,104,187,112,169,104,169,112,169,212,169,132,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,68,104,4,177,68,36,5,250,69,37,5,241,69,255,5,185,72,68,4,186,76,100,4,177,76,14,5,26,78,15,5,17,78,255,5,185,84,70,4,186,88,102,4,177,88,255,5,185,120,76,4,186,124,108,4,177,124,57,5,154,125,58,5,145,125,59,5,250,126,60,5,241,126,61,5,26,126,62,5,17,126,255,5,186,132,71,4,186,96,103,4,177,96,28,5,250,97,29,5,241,97,30,5,218,97,31,5,209,97,32,5,186,98,33,5,177,98,34,5,250,98,35,5,241,98,255,5,185,144,72,4,186,148,104,4,177,148,36,5,250,149,37,5,241,149,255,5,185,160,72,4,186,164,104,4,177,164,36,5,250,165,37,5,241,165,255,5,185,172,72,4,186,176,104,4,177,176,36,5,250,177,37,5,241,177,255,5,168,64,104,4,168,68,37,5,232,69,255,5,168,72,100,4,168,76,15,5,8,78,255,5,168,84,102,4,168,88,255,5,168,120,108,4,168,124,58,5,136,125,60,5,232,126,62,5,8,126,255,5,168,132,103,4,168,96,29,5,232,97,31,5,200,97,33,5,168,98,35,5,232,98,255,5,168,144,104,4,168,148,37,5,232,149,255,5,168,160,104,4,168,164,37,5,232,165,255,5,168,172,104,4,168,176,37,5,232,177,255,1,170,170,3,0,69,0,52,0,61,0,87,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,19,10,0,32,1,0,32,0,24,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,134,27,0,32,7,0,0,0,23,0,0,0,136,27,0,0,136,27,0,0,3,0,0,0,0,0,0,0,131,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,64,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,100,0,97,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,91,0,99,0,97,0,115,0,101,0,70,0,105,0,114,0,115,0,116,0,32,0,111,0,102,0,102,0,93,0,0,0,143,220,91,0,99,0,97,0,115,0,101,0,70,0,105,0,114,0,115,0,116,0,32,0,117,0,112,0,112,0,101,0,114,0,93,0,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,104,0,60,0,60,0,60,0,254,0,38,0,84,0,72,0,60,0,60,0,60,0,222,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,60,0,97,0,97,0,60,0,60,0,60,0,65,0,97,0,60,0,60,0,60,0,65,0,65,0,38,0,111,0,101,0,60,0,60,0,83,1,60,0,60,0,60,0,82,1,0,0,170,170,220,56,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,167,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,108,47,0,0,108,47,0,0,60,51,0,0,60,51,0,0,138,56,0,0,192,56,0,0,192,56,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,29,0,202,97,29,0,202,130,29,0,202,163,29,0,202,196,29,0,202,229,29,0,202,6,30,0,202,39,30,0,202,72,30,0,202,105,30,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,196,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,29,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,134,30,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,36,32,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,230,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,48,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,33,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,193,17,0,5,5,127,12,198,65,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,162,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,65,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,26,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,49,0,201,230,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,17,0,198,1,27,0,197,98,1,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,6,52,0,201,38,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,54,0,201,102,55,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,56,0,201,166,57,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,34,29,0,198,98,29,0,192,0,0,0,192,0,0,0,198,162,29,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,58,0,201,230,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,30,0,197,162,5,0,198,34,31,0,197,226,5,0,198,98,31,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,31,0,198,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,6,61,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,62,0,5,71,238,102,201,198,63,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,197,227,8,0,197,66,9,0,192,0,0,0,192,0,0,0,197,130,9,0,197,195,9,0,197,34,10,0,192,0,0,0,192,0,0,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,64,0,201,198,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,66,0,201,6,68,0,201,38,69,0,201,70,70,0,201,102,71,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,73,0,201,198,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,75,0,201,6,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,78,0,201,70,79,0,201,102,80,0,201,134,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,82,0,201,198,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,156,5,0,80,29,5,0,56,5,5,0,80,6,5,0,56,193,4,111,93,5,162,0,0,133,5,0,70,134,70,0,50,5,5,0,70,5,70,0,50,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,98,6,0,5,5,10,121,5,5,12,121,197,162,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,6,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,197,98,7,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,7,0,5,5,107,121,197,226,7,0,5,5,111,121,197,34,8,0,5,5,115,121,197,98,8,0,5,5,119,121,197,162,8,0,197,227,8,0,197,66,9,0,5,5,127,121,5,5,129,121,197,130,9,0,197,195,9,0,197,34,10,0,5,5,137,121,5,5,139,121,197,98,10,0,5,5,143,121,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,70,156,5,1,0,8,3,17,192,198,193,11,3,17,192,198,225,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,99,179,30,25,192,198,195,181,30,26,192,198,35,183,30,26,192,198,131,169,30,23,192,198,227,171,30,24,192,198,67,173,30,24,192,198,163,175,30,25,192,198,3,161,30,12,0,161,30,22,192,198,162,163,30,22,192,198,226,165,30,23,192,198,35,167,30,23,192,198,131,39,2,10,0,8,3,22,192,198,65,10,3,255,255,111,93,193,4,1,30,22,192,198,98,176,69,198,2,4,3,21,192,198,3,3,1,26,0,225,1,12,0,225,1,21,192,198,3,251,1,21,192,198,99,1,2,21,192,198,194,3,2,22,192,198,2,3,1,19,192,198,226,5,1,20,192,198,34,206,1,20,192,198,98,223,1,20,192,198,163,227,0,12,0,227,0,18,192,198,226,228,0,19,192,198,34,229,0,19,192,198,98,1,1,19,192,198,162,97,0,18,192,198,1,224,0,18,192,198,34,225,0,18,192,198,98,226,0,18,192,198,162,0,70,5,5,1,0,8,3,26,192,198,225,11,3,27,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,98,10,3,27,192,198,162,5,42,196,162,1,0,8,3,27,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,5,82,196,162,1,0,8,3,2,192,197,98,11,3,2,192,197,162,156,70,196,190,1,0,8,3,28,192,198,34,11,3,28,192,198,98,5,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,1,0,8,3,29,192,198,226,11,3,30,192,198,34,5,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,32,192,198,34,10,3,32,192,198,98,5,42,196,200,1,0,8,3,32,192,198,162,10,3,13,192,197,34,156,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,5,82,196,198,1,0,8,3,13,192,197,226,11,3,14,192,197,34,156,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,5,82,196,208,1,0,8,3,14,192,197,226,11,3,15,192,197,34,156,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,5,82,196,204,1,0,8,3,15,192,197,226,11,3,16,192,197,34,156,42,196,196,1,0,8,3,32,192,198,226,10,3,33,192,198,34,5,42,196,196,1,0,8,3,33,192,198,98,10,3,16,192,197,98,156,70,196,196,1,0,8,3,33,192,198,162,11,3,33,192,198,226,5,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,16,0,197,163,1,0,8,3,34,192,198,163,11,3,35,192,198,3,17,0,197,3,1,0,8,3,35,192,198,99,11,3,35,192,198,195,156,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,5,82,196,196,1,0,8,3,17,192,197,226,11,3,18,192,197,34,18,0,197,99,1,0,8,3,18,192,197,195,11,3,19,192,197,35,19,0,197,131,1,0,8,3,19,192,197,227,11,3,20,192,197,67,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,3,0,67,0,50,0,59,0,131,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,226,50,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,35,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,60,39,0,0,60,39,0,0,40,41,0,0,40,41,0,0,48,46,0,0,102,46,0,0,198,50,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,14,0,202,65,14,0,202,98,14,0,202,131,14,0,202,164,14,0,202,197,14,0,202,230,14,0,202,7,15,0,202,40,15,0,202,73,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,4,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,28,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,29,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,100,31,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,70,47,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,33,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,193,17,0,5,5,127,12,198,65,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,226,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,65,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,26,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,49,0,201,38,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,17,0,198,1,27,0,197,98,1,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,70,51,0,201,102,52,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,55,0,201,230,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,34,29,0,198,98,29,0,192,0,0,0,192,0,0,0,198,162,29,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,58,0,201,38,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,30,0,197,162,5,0,198,34,31,0,197,226,5,0,198,98,31,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,31,0,198,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,60,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,62,0,201,166,63,0,201,198,64,0,201,230,65,0,201,6,67,0,201,38,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,69,0,201,102,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,71,0,201,166,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,73,0,201,230,74,0,201,6,76,0,201,38,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,78,0,201,102,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,156,5,0,80,29,5,0,56,5,5,0,80,6,5,0,56,193,4,111,93,5,162,0,0,133,5,0,70,134,70,0,50,5,5,0,70,5,70,0,50,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,70,156,5,1,0,8,3,17,192,198,193,11,3,17,192,198,225,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,99,179,30,25,192,198,195,181,30,26,192,198,35,183,30,26,192,198,131,169,30,23,192,198,227,171,30,24,192,198,67,173,30,24,192,198,163,175,30,25,192,198,3,161,30,12,0,161,30,22,192,198,162,163,30,22,192,198,226,165,30,23,192,198,35,167,30,23,192,198,131,39,2,10,0,8,3,22,192,198,65,10,3,255,255,111,93,193,4,1,30,22,192,198,98,176,69,198,2,4,3,21,192,198,3,3,1,26,0,225,1,12,0,225,1,21,192,198,3,251,1,21,192,198,99,1,2,21,192,198,194,3,2,22,192,198,2,3,1,19,192,198,226,5,1,20,192,198,34,206,1,20,192,198,98,223,1,20,192,198,163,227,0,12,0,227,0,18,192,198,226,228,0,19,192,198,34,229,0,19,192,198,98,1,1,19,192,198,162,97,0,18,192,198,1,224,0,18,192,198,34,225,0,18,192,198,98,226,0,18,192,198,162,0,70,5,5,1,0,8,3,26,192,198,225,11,3,27,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,98,10,3,27,192,198,162,5,42,196,162,1,0,8,3,27,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,5,82,196,162,1,0,8,3,2,192,197,98,11,3,2,192,197,162,156,70,196,190,1,0,8,3,28,192,198,34,11,3,28,192,198,98,5,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,1,0,8,3,29,192,198,226,11,3,30,192,198,34,5,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,156,42,196,200,1,0,8,3,32,192,198,34,10,3,32,192,198,98,5,42,196,200,1,0,8,3,32,192,198,162,10,3,6,192,197,98,156,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,5,82,196,198,1,0,8,3,7,192,197,34,11,3,7,192,197,98,156,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,5,82,196,208,1,0,8,3,8,192,197,34,11,3,8,192,197,98,156,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,5,82,196,204,1,0,8,3,9,192,197,34,11,3,9,192,197,98,156,42,196,196,1,0,8,3,32,192,198,226,10,3,33,192,198,34,5,42,196,196,1,0,8,3,33,192,198,98,10,3,9,192,197,162,156,70,196,196,1,0,8,3,33,192,198,162,11,3,33,192,198,226,5,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,9,0,197,227,1,0,8,3,34,192,198,163,11,3,35,192,198,3,10,0,197,67,1,0,8,3,35,192,198,99,11,3,35,192,198,195,156,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,5,82,196,196,1,0,8,3,11,192,197,34,11,3,11,192,197,98,11,0,197,163,1,0,8,3,12,192,197,3,11,3,12,192,197,99,12,0,197,195,1,0,8,3,13,192,197,35,11,3,13,192,197,131,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,185,72,185,76,185,80,186,84,186,88,186,96,185,100,185,104,185,108,186,112,68,4,185,124,185,128,185,136,186,140,185,144,70,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,72,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,94,4,168,124,168,128,168,136,168,140,168,144,96,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,180,185,188,185,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,184,136,14,185,184,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,200,180,168,188,168,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,184,128,14,168,184,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,98,4,100,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,217,74,200,74,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,250,85,232,85,26,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,12,8,14,8,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,185,146,168,146,25,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,102,4,104,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,185,144,171,84,200,140,169,140,168,144,169,84,187,88,187,96,169,88,169,96,169,176,169,112,184,120,217,72,168,120,200,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,65,4,188,188,97,4,179,188,192,4,188,189,193,4,156,189,194,4,252,189,195,4,124,190,196,4,92,190,197,4,60,190,224,4,179,189,225,4,147,189,226,4,243,189,227,4,115,190,228,4,83,190,229,4,51,190,0,5,252,190,1,5,243,190,2,5,220,189,3,5,211,189,4,5,220,190,5,5,211,190,255,5,185,120,255,5,185,152,255,5,168,56,97,4,170,188,224,4,170,189,225,4,138,189,226,4,234,189,227,4,106,190,228,4,74,190,229,4,42,190,1,5,234,190,3,5,202,189,5,5,202,190,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,170,170,3,0,67,0,50,0,59,0,195,14,0,16,70,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,187,14,0,32,125,27,0,32,1,0,32,0,130,27,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,148,20,0,32,7,0,0,0,23,0,0,0,150,20,0,0,150,20,0,0,3,0,0,0,0,0,0,0,66,0,0,0,99,111,108,108,97,116,105,111,110,115,0,112,104,111,110,101,98,111,111,107,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,101,97,114,99,104,0,0,0,52,0,50,0,0,0,38,0,65,0,69,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,79,0,69,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,38,0,85,0,69,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,0,0,48,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,100,0,101,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,104,0,111,0,110,0,101,0,98,0,107,0,93,0,0,0,170,170,170,170,170,170,82,37,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,4,29,0,0,4,29,0,0,4,29,0,0,4,29,0,0,152,31,0,0,152,31,0,0,58,33,0,0,58,33,0,0,58,37,0,0,50,105,114,84,1,0,64,8,195,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,84,0,92,0,97,0,105,0,110,0,118,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,48,0,48,0,157,0,48,0,165,0,170,0,178,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,145,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,80,1,132,1,184,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,19,0,202,129,19,0,202,162,19,0,202,195,19,0,202,228,19,0,202,5,20,0,202,38,20,0,202,71,20,0,202,104,20,0,202,137,20,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,1,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,2,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,70,3,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,4,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,197,34,0,0,196,146,156,42,197,162,18,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,197,98,0,0,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,197,162,0,0,196,136,156,90,160,5,38,93,197,226,18,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,197,66,1,0,196,146,5,42,197,34,19,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,197,130,1,0,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,197,194,1,0,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,5,0,201,230,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,6,0,201,102,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,8,0,201,230,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,9,0,201,102,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,5,0,197,195,5,0,197,227,0,0,197,3,2,0,197,35,6,0,197,131,6,0,197,227,6,0,197,67,7,0,192,0,0,0,197,163,7,0,197,3,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,11,0,201,230,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,9,0,197,131,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,12,0,201,102,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,14,0,201,230,14,0,201,166,15,0,201,102,16,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,102,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,20,0,201,230,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,21,0,201,102,22,0,201,38,23,0,201,230,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,24,0,201,102,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,156,5,0,42,6,72,0,50,156,5,0,70,6,71,0,50,156,5,0,82,6,70,0,50,156,5,0,82,6,70,0,50,5,136,0,0,28,5,0,42,5,72,0,50,28,5,0,70,5,71,0,50,28,5,0,82,5,70,0,50,28,5,0,82,5,70,0,50,5,136,0,0,156,5,0,42,6,72,0,50,5,162,0,0,28,5,0,42,5,72,0,50,5,162,0,0,156,5,0,82,6,70,0,50,5,162,0,0,28,5,0,82,5,70,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,190,0,0,28,5,0,70,5,71,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,190,0,0,28,5,0,82,5,70,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,164,0,0,28,5,0,82,5,70,0,50,5,164,0,0,156,5,0,82,6,70,0,50,5,144,0,0,28,5,0,82,5,70,0,50,5,144,0,0,156,5,0,82,6,70,0,50,5,138,0,0,28,5,0,82,5,70,0,50,5,138,0,0,156,5,0,42,6,72,0,50,5,164,0,0,28,5,0,42,5,72,0,50,5,164,0,0,156,5,0,70,6,71,0,50,5,162,0,0,28,5,0,70,5,71,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,164,0,0,28,5,0,70,5,71,0,50,5,164,0,0,156,5,0,42,6,72,0,50,5,200,0,0,28,5,0,42,5,72,0,50,5,200,0,0,156,5,0,82,6,70,0,50,5,198,0,0,28,5,0,82,5,70,0,50,5,198,0,0,156,5,0,82,6,70,0,50,5,208,0,0,28,5,0,82,5,70,0,50,5,208,0,0,156,5,0,82,6,70,0,50,5,204,0,0,28,5,0,82,5,70,0,50,5,204,0,0,156,5,0,42,6,72,0,50,5,196,0,0,28,5,0,42,5,72,0,50,5,196,0,0,156,5,0,70,6,71,0,50,5,196,0,0,28,5,0,70,5,71,0,50,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,156,5,0,70,6,71,0,50,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,28,5,0,70,5,71,0,50,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,196,0,0,28,5,0,82,5,70,0,50,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,28,5,0,82,5,70,0,50,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,197,162,0,70,156,5,48,0,8,3,0,192,197,98,0,82,156,5,1,0,8,3,0,192,197,162,68,3,0,192,197,227,0,42,5,5,48,0,8,3,1,192,197,66,0,70,5,5,48,0,8,3,1,192,197,130,0,82,5,5,1,0,8,3,1,192,197,194,68,3,2,192,197,3,156,42,196,162,48,0,8,3,2,192,197,99,5,42,196,162,48,0,8,3,2,192,197,195,156,82,196,162,48,0,8,3,3,192,197,35,5,82,196,162,48,0,8,3,3,192,197,131,156,70,196,190,48,0,8,3,3,192,197,227,5,70,196,190,48,0,8,3,4,192,197,67,156,82,196,190,48,0,8,3,4,192,197,163,5,82,196,190,48,0,8,3,5,192,197,3,156,70,196,162,48,0,8,3,8,192,197,99,5,70,196,162,48,0,8,3,8,192,197,195,156,42,196,200,48,0,8,3,9,192,197,227,5,42,196,200,48,0,8,3,10,192,197,67,156,82,196,198,48,0,8,3,10,192,197,163,5,82,196,198,48,0,8,3,11,192,197,3,156,82,196,208,48,0,8,3,11,192,197,99,5,82,196,208,48,0,8,3,11,192,197,195,156,82,196,204,48,0,8,3,12,192,197,35,5,82,196,204,48,0,8,3,12,192,197,131,156,42,196,196,48,0,8,3,12,192,197,227,5,42,196,196,48,0,8,3,13,192,197,67,156,70,196,196,48,0,8,3,13,192,197,163,5,70,196,196,48,0,8,3,14,192,197,3,14,0,197,99,48,0,8,3,14,192,197,196,15,0,197,67,48,0,8,3,15,192,197,164,156,82,196,196,48,0,8,3,16,192,197,35,5,82,196,196,48,0,8,3,16,192,197,131,16,0,197,227,48,0,8,3,17,192,197,68,17,0,197,195,48,0,8,3,18,192,197,36,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,38,4,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,40,4,185,124,185,128,185,136,186,140,185,144,42,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,44,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,46,4,168,124,168,128,168,136,168,140,168,144,48,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,0,8,57,58,2,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,4,8,136,14,217,122,185,153,153,153,249,153,6,8,153,169,185,176,8,8,168,57,136,57,232,57,136,58,10,8,40,58,12,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,14,8,128,14,200,122,168,153,136,153,232,153,16,8,136,169,168,176,72,170,57,59,40,59,217,57,200,57,50,4,52,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,18,8,20,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,22,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,24,8,26,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,54,4,56,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,185,56,9,73,217,56,187,72,185,120,233,72,185,152,201,72,200,140,169,140,169,56,8,73,200,56,169,72,169,120,232,72,169,152,200,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,120,255,5,168,152,255,5,25,59,255,5,8,59,255,5,25,155,255,5,8,155,255,1,170,170,3,0,70,0,53,0,62,0,67,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,172,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,209,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,52,37,0,0,52,37,0,0,52,37,0,0,52,37,0,0,172,41,0,0,172,41,0,0,148,43,0,0,148,43,0,0,148,43,0,0,50,105,114,84,1,0,64,8,70,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,84,0,92,0,97,0,105,0,110,0,118,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,132,0,140,0,146,0,154,0,162,0,170,0,48,0,56,0,169,0,177,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,194,0,202,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,226,0,48,0,232,0,240,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,243,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,251,0,48,0,48,0,255,0,48,0,7,1,12,1,20,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,28,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,31,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,192,0,48,0,48,0,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,53,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,80,1,132,1,184,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,16,2,72,2,136,2,192,0,164,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,34,0,202,161,34,0,202,194,34,0,202,227,34,0,202,4,35,0,202,37,35,0,202,70,35,0,202,103,35,0,202,136,35,0,202,169,35,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,2,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,3,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,4,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,4,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,197,34,0,0,196,146,156,42,197,98,25,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,197,98,0,0,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,197,162,0,0,196,136,156,90,160,5,38,93,197,162,25,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,197,66,1,0,196,146,5,42,197,226,25,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,197,130,1,0,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,197,194,1,0,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,5,0,201,166,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,7,0,201,38,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,8,0,201,166,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,5,0,197,195,5,0,197,227,0,0,197,3,2,0,197,35,6,0,197,131,6,0,197,227,6,0,197,67,7,0,192,0,0,0,197,163,7,0,197,3,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,9,0,197,131,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,102,13,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,15,0,5,71,238,102,201,38,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,197,34,10,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,10,0,192,0,0,0,197,162,10,0,192,0,0,0,192,0,0,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,192,0,0,0,197,98,11,0,192,0,0,0,197,162,11,0,192,0,0,0,197,226,11,0,192,0,0,0,197,34,12,0,197,99,12,0,197,194,12,0,192,0,0,0,192,0,0,0,197,2,13,0,197,67,13,0,197,162,13,0,192,0,0,0,192,0,0,0,197,226,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,9,0,197,34,14,0,5,5,10,121,197,98,14,0,197,162,14,0,5,5,12,121,5,5,16,121,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,5,5,18,121,5,5,20,121,197,130,10,0,5,5,24,121,197,162,10,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,17,0,201,198,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,70,19,0,201,6,20,0,201,198,20,0,201,134,21,0,201,70,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,198,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,24,0,201,70,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,198,26,0,201,134,27,0,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,29,0,201,198,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,156,5,0,42,6,72,0,50,156,5,0,70,6,71,0,50,156,5,0,82,6,70,0,50,156,5,0,82,6,70,0,50,5,136,0,0,28,5,0,42,5,72,0,50,28,5,0,70,5,71,0,50,28,5,0,82,5,70,0,50,28,5,0,82,5,70,0,50,5,136,0,0,156,5,0,42,6,72,0,50,5,162,0,0,28,5,0,42,5,72,0,50,5,162,0,0,156,5,0,82,6,70,0,50,5,162,0,0,28,5,0,82,5,70,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,190,0,0,28,5,0,70,5,71,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,190,0,0,28,5,0,82,5,70,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,164,0,0,28,5,0,82,5,70,0,50,5,164,0,0,156,5,0,82,6,70,0,50,5,144,0,0,28,5,0,82,5,70,0,50,5,144,0,0,156,5,0,82,6,70,0,50,5,138,0,0,28,5,0,82,5,70,0,50,5,138,0,0,156,5,0,42,6,72,0,50,5,164,0,0,28,5,0,42,5,72,0,50,5,164,0,0,156,5,0,70,6,71,0,50,5,162,0,0,28,5,0,70,5,71,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,164,0,0,28,5,0,70,5,71,0,50,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,156,5,0,42,6,72,0,50,5,200,0,0,28,5,0,42,5,72,0,50,5,200,0,0,156,5,0,82,6,70,0,50,5,198,0,0,28,5,0,82,5,70,0,50,5,198,0,0,156,5,0,82,6,70,0,50,5,208,0,0,28,5,0,82,5,70,0,50,5,208,0,0,156,5,0,82,6,70,0,50,5,204,0,0,28,5,0,82,5,70,0,50,5,204,0,0,156,5,0,42,6,72,0,50,5,196,0,0,28,5,0,42,5,72,0,50,5,196,0,0,156,5,0,70,6,71,0,50,5,196,0,0,28,5,0,70,5,71,0,50,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,156,5,0,70,6,71,0,50,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,28,5,0,70,5,71,0,50,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,196,0,0,28,5,0,82,5,70,0,50,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,28,5,0,82,5,70,0,50,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,226,9,0,5,5,10,121,5,5,12,121,197,34,10,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,10,0,5,5,24,121,197,162,10,0,5,5,28,121,5,5,30,121,197,226,10,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,11,0,5,5,107,121,197,98,11,0,5,5,111,121,197,162,11,0,5,5,115,121,197,226,11,0,5,5,119,121,197,34,12,0,197,99,12,0,197,194,12,0,5,5,127,121,5,5,129,121,197,2,13,0,197,67,13,0,197,162,13,0,5,5,137,121,5,5,139,121,197,226,13,0,5,5,143,121,5,5,6,121,197,226,9,0,197,34,14,0,5,5,10,121,197,98,14,0,197,162,14,0,5,5,12,121,5,5,16,121,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,5,5,18,121,5,5,20,121,197,130,10,0,5,5,24,121,197,162,10,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,48,0,8,3,197,162,0,70,156,5,48,0,8,3,0,192,197,98,0,82,156,5,1,0,8,3,0,192,197,162,68,3,0,192,197,227,0,42,5,5,48,0,8,3,1,192,197,66,0,70,5,5,48,0,8,3,1,192,197,130,0,82,5,5,1,0,8,3,1,192,197,194,68,3,2,192,197,3,156,42,196,162,48,0,8,3,2,192,197,99,5,42,196,162,48,0,8,3,2,192,197,195,156,82,196,162,48,0,8,3,3,192,197,35,5,82,196,162,48,0,8,3,3,192,197,131,156,70,196,190,48,0,8,3,3,192,197,227,5,70,196,190,48,0,8,3,4,192,197,67,156,82,196,190,48,0,8,3,4,192,197,163,5,82,196,190,48,0,8,3,5,192,197,3,156,70,196,162,48,0,8,3,8,192,197,99,5,70,196,162,48,0,8,3,8,192,197,195,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,48,0,8,3,16,192,197,163,5,42,196,200,48,0,8,3,17,192,197,3,156,82,196,198,48,0,8,3,17,192,197,99,5,82,196,198,48,0,8,3,17,192,197,195,156,82,196,208,48,0,8,3,18,192,197,35,5,82,196,208,48,0,8,3,18,192,197,131,156,82,196,204,48,0,8,3,18,192,197,227,5,82,196,204,48,0,8,3,19,192,197,67,156,42,196,196,48,0,8,3,19,192,197,163,5,42,196,196,48,0,8,3,20,192,197,3,156,70,196,196,48,0,8,3,20,192,197,99,5,70,196,196,48,0,8,3,20,192,197,195,21,0,197,35,48,0,8,3,21,192,197,132,22,0,197,3,48,0,8,3,22,192,197,100,156,82,196,196,48,0,8,3,22,192,197,227,5,82,196,196,48,0,8,3,23,192,197,67,23,0,197,163,48,0,8,3,24,192,197,4,24,0,197,131,48,0,8,3,24,192,197,228,3,0,70,0,53,0,62,0,159,9,0,16,35,0,0,96,1,0,0,96,2,0,43,0,85,0,170,170,153,9,0,32,139,20,0,32,1,0,32,0,144,20,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,106,9,0,32,7,0,0,0,22,0,0,0,108,9,0,0,108,9,0,0,3,0,0,0,0,0,0,0,41,0,0,0,99,111,108,108,97,116,105,111,110,115,0,112,104,111,110,101,98,111,111,107,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,170,170,170,0,0,52,0,50,0,0,0,38,0,97,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,111,0,60,0,246,0,60,0,60,0,60,0,214,0,38,0,117,0,60,0,252,0,60,0,60,0,60,0,220,0,38,0,115,0,115,0,60,0,223,0,60,0,60,0,60,0,158,30,0,0,170,170,170,170,170,170,170,170,218,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,29,0,0,100,29,0,0,100,29,0,0,100,29,0,0,48,31,0,0,48,31,0,0,218,32,0,0,218,32,0,0,194,36,0,0,50,105,114,84,1,0,64,8,201,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,84,0,92,0,97,0,105,0,110,0,118,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,48,0,48,0,157,0,163,0,171,0,176,0,184,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,145,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,80,1,132,1,184,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,13,0,202,65,13,0,202,98,13,0,202,131,13,0,202,164,13,0,202,197,13,0,202,230,13,0,202,7,14,0,202,40,14,0,202,73,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,198,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,1,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,2,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,134,3,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,4,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,2,43,196,146,156,42,197,162,12,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,2,43,196,146,5,42,197,226,12,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,5,0,201,102,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,7,0,201,230,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,8,0,201,102,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,10,0,201,230,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,2,0,197,34,3,0,197,34,0,0,197,98,0,0,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,192,0,0,0,197,98,4,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,11,0,201,102,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,13,0,201,230,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,14,0,201,102,15,0,201,38,16,0,201,230,16,0,201,166,17,0,201,102,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,201,38,19,0,201,230,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,20,0,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,22,0,201,230,22,0,201,166,23,0,201,102,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,25,0,201,230,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,5,5,0,78,5,5,2,79,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,43,5,164,0,0,5,5,2,43,5,164,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,133,5,0,78,134,5,2,79,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,2,235,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,42,5,5,48,0,8,3,2,235,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,42,196,162,48,0,8,3,0,192,197,226,5,42,196,162,48,0,8,3,1,192,197,34,156,82,196,162,48,0,8,3,1,192,197,98,5,82,196,162,48,0,8,3,1,192,197,162,156,70,196,190,48,0,8,3,1,192,197,226,5,70,196,190,48,0,8,3,2,192,197,34,156,82,196,190,48,0,8,3,2,192,197,98,5,82,196,190,48,0,8,3,2,192,197,162,156,70,196,162,48,0,8,3,4,192,197,226,5,70,196,162,48,0,8,3,5,192,197,34,156,42,196,200,48,0,8,3,5,192,197,226,5,42,196,200,48,0,8,3,6,192,197,34,156,82,196,198,48,0,8,3,6,192,197,98,5,82,196,198,48,0,8,3,6,192,197,162,156,82,196,208,48,0,8,3,6,192,197,226,5,82,196,208,48,0,8,3,7,192,197,34,156,82,196,204,48,0,8,3,7,192,197,98,5,82,196,204,48,0,8,3,7,192,197,162,156,42,196,196,48,0,8,3,8,192,197,34,5,42,196,196,48,0,8,3,8,192,197,98,156,70,196,196,48,0,8,3,8,192,197,162,5,70,196,196,48,0,8,3,8,192,197,226,9,0,197,35,48,0,8,3,9,192,197,131,9,0,197,227,48,0,8,3,10,192,197,67,156,82,196,196,48,0,8,3,10,192,197,162,5,82,196,196,48,0,8,3,10,192,197,226,11,0,197,35,48,0,8,3,11,192,197,131,11,0,197,227,48,0,8,3,12,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,185,68,185,72,186,76,185,80,185,84,185,88,186,92,186,100,185,104,185,108,185,112,186,116,28,4,185,132,185,136,185,144,185,148,185,156,30,4,185,172,185,176,185,180,185,184,185,188,88,13,168,13,96,13,56,14,80,12,40,14,32,4,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,92,168,100,168,104,168,108,168,112,168,116,34,4,168,132,168,136,168,144,168,148,168,156,36,4,168,172,168,176,168,180,168,184,168,188,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,60,57,58,0,8,249,70,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,185,128,136,14,217,126,185,165,153,165,249,165,185,168,153,185,185,192,2,8,168,57,136,57,232,57,136,58,168,60,40,58,4,8,232,70,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,168,128,128,14,200,126,168,165,136,165,232,165,168,168,136,185,168,192,72,186,57,59,40,59,217,57,200,57,38,4,40,4,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,140,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,145,136,145,249,146,232,146,25,146,8,146,153,149,136,149,249,149,232,149,249,150,232,150,25,150,8,150,249,158,232,158,25,158,8,158,185,160,168,160,153,166,136,166,57,167,40,167,217,165,200,165,57,166,40,166,121,166,104,166,42,4,44,4,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,25,190,8,190,200,148,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,168,148,168,152,200,56,169,76,187,92,187,100,169,92,169,100,169,196,169,116,217,124,187,76,200,124,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,124,255,5,185,164,255,5,168,56,255,5,168,124,255,5,168,164,255,5,25,59,255,5,8,59,255,5,25,167,255,5,8,167,255,1,170,170,3,0,70,0,53,0,62,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,99,9,0,32,1,0,32,0,104,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,20,0,0,32,7,0,0,0,13,0,0,0,22,0,0,0,22,0,0,0,1,0,0,0,0,0,0,0,20,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,170,0,0,112,0,104,0,111,0,110,0,101,0,98,0,111,0,111,0,107,0,0,0,1,0,43,0,1,0,1,0,32,0,11,0,0,80,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,95,10,0,32,7,0,0,0,21,0,0,0,97,10,0,0,97,10,0,0,3,0,0,0,0,0,0,0,77,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,105,220,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,69,0,60,0,27,1,60,0,60,0,60,0,26,1,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,32,0,76,0,60,0,66,1,60,0,60,0,60,0,65,1,38,0,78,0,60,0,68,1,60,0,60,0,60,0,67,1,38,0,82,0,60,0,85,1,60,0,60,0,60,0,84,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,60,0,91,1,60,0,60,0,60,0,90,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,60,0,122,1,60,0,60,0,60,0,121,1,0,0,170,170,170,170,170,170,170,170,170,170,32,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,28,0,0,84,28,0,0,84,28,0,0,84,28,0,0,40,31,0,0,40,31,0,0,182,35,0,0,208,35,0,0,8,40,0,0,50,105,114,84,1,0,64,8,184,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,112,0,120,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,48,0,149,0,157,0,161,0,167,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,136,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,21,0,202,129,21,0,202,162,21,0,202,195,21,0,202,228,21,0,202,5,22,0,202,38,22,0,202,71,22,0,202,104,22,0,202,137,22,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,4,0,0,156,5,0,48,201,134,8,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,70,9,0,156,5,0,70,156,5,0,72,160,5,0,74,201,166,10,0,201,6,12,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,13,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,196,15,0,5,5,0,48,201,102,24,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,38,25,0,5,5,0,70,5,5,0,72,5,5,0,74,201,134,26,0,201,230,27,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,198,29,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,20,0,201,166,31,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,21,0,201,38,33,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,34,0,201,102,35,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,63,5,5,21,63,134,5,2,69,5,5,2,69,201,38,36,0,201,70,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,77,5,5,2,77,201,102,38,0,201,134,39,0,192,0,0,0,192,0,0,0,134,5,3,79,5,5,3,79,192,0,0,0,192,0,0,0,201,166,40,0,201,38,42,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,93,5,5,3,93,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,43,0,201,38,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,46,0,201,102,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,48,0,201,230,48,0,201,166,49,0,201,102,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,51,0,201,70,52,0,201,102,53,0,201,134,54,0,201,166,55,0,201,198,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,57,0,201,6,59,0,192,0,0,0,192,0,0,0,201,38,60,0,201,70,61,0,192,0,0,0,192,0,0,0,201,102,62,0,201,230,63,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,65,0,201,230,66,0,201,102,68,0,201,230,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,71,0,201,38,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,3,79,5,160,0,0,134,5,2,79,5,160,0,0,5,5,3,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,3,79,5,202,0,0,134,5,2,79,5,202,0,0,5,5,3,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,3,79,5,196,0,0,134,5,2,79,5,196,0,0,5,5,3,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,3,79,5,156,0,0,5,5,3,79,5,156,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,3,93,5,196,0,0,134,5,2,93,5,196,0,0,5,5,3,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,3,93,5,210,0,0,134,5,2,93,5,210,0,0,5,5,3,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,51,5,196,0,0,5,5,2,51,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,19,0,35,30,32,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,35,30,1,192,197,98,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,31,2,15,0,31,2,0,192,197,226,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,34,30,1,192,197,34,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,30,2,0,192,197,162,0,50,156,5,48,0,12,3,2,243,134,5,0,68,156,5,1,0,1,3,255,255,2,69,134,5,65,3,255,255,2,69,134,5,0,76,156,5,1,0,1,3,255,255,2,77,134,5,65,3,255,255,2,77,134,5,0,78,156,5,2,0,1,3,255,255,3,79,134,5,12,3,255,255,2,79,134,5,65,3,255,255,3,79,134,5,0,92,156,5,2,0,1,3,255,255,3,93,134,5,12,3,255,255,2,93,134,5,65,3,255,255,3,93,134,5,0,46,5,5,19,0,35,30,32,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,35,30,5,192,197,34,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,31,2,15,0,31,2,4,192,197,162,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,34,30,4,192,197,226,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,30,2,4,192,197,98,0,50,5,5,48,0,12,3,2,243,5,5,0,68,5,5,1,0,1,3,255,255,2,69,5,5,65,3,255,255,2,69,5,5,0,76,5,5,1,0,1,3,255,255,2,77,5,5,65,3,255,255,2,77,5,5,0,78,5,5,2,0,1,3,255,255,3,79,5,5,12,3,255,255,2,79,5,5,65,3,255,255,3,79,5,5,0,92,5,5,2,0,1,3,255,255,3,93,5,5,12,3,255,255,2,93,5,5,65,3,255,255,3,93,5,5,156,46,196,160,2,0,1,3,7,192,197,162,12,3,7,192,197,226,65,3,7,192,197,162,5,46,196,160,2,0,1,3,8,192,197,34,12,3,8,192,197,98,65,3,8,192,197,34,156,50,196,162,48,0,12,3,8,192,197,162,5,50,196,162,48,0,12,3,8,192,197,226,156,68,196,160,1,0,1,3,9,192,197,34,65,3,9,192,197,34,5,68,196,160,1,0,1,3,9,192,197,98,65,3,9,192,197,98,156,76,196,160,1,0,1,3,9,192,197,162,65,3,9,192,197,162,5,76,196,160,1,0,1,3,9,192,197,226,65,3,9,192,197,226,156,78,196,160,2,0,1,3,10,192,197,34,12,3,10,192,197,98,65,3,10,192,197,34,5,78,196,160,2,0,1,3,10,192,197,162,12,3,10,192,197,226,65,3,10,192,197,162,156,78,196,202,2,0,1,3,11,192,197,34,12,3,11,192,197,98,65,3,11,192,197,34,5,78,196,202,2,0,1,3,11,192,197,162,12,3,11,192,197,226,65,3,11,192,197,162,156,50,196,160,48,0,12,3,12,192,197,34,5,50,196,160,48,0,12,3,12,192,197,98,156,50,196,204,48,0,12,3,12,192,197,162,5,50,196,204,48,0,12,3,12,192,197,226,156,50,196,208,48,0,12,3,13,192,197,34,5,50,196,208,48,0,12,3,13,192,197,98,156,68,196,196,1,0,1,3,13,192,197,162,65,3,13,192,197,162,5,68,196,196,1,0,1,3,13,192,197,226,65,3,13,192,197,226,156,68,196,210,1,0,1,3,14,192,197,34,65,3,14,192,197,34,5,68,196,210,1,0,1,3,14,192,197,98,65,3,14,192,197,98,156,68,196,204,1,0,1,3,14,192,197,162,65,3,14,192,197,162,5,68,196,204,1,0,1,3,14,192,197,226,65,3,14,192,197,226,156,76,196,196,1,0,1,3,15,192,197,34,65,3,15,192,197,34,5,76,196,196,1,0,1,3,15,192,197,98,65,3,15,192,197,98,156,76,196,210,1,0,1,3,15,192,197,162,65,3,15,192,197,162,5,76,196,210,1,0,1,3,15,192,197,226,65,3,15,192,197,226,156,78,196,196,2,0,1,3,16,192,197,34,12,3,16,192,197,98,65,3,16,192,197,34,5,78,196,196,2,0,1,3,16,192,197,162,12,3,16,192,197,226,65,3,16,192,197,162,156,92,196,196,2,0,1,3,18,192,197,34,12,3,18,192,197,98,65,3,18,192,197,34,5,92,196,196,2,0,1,3,18,192,197,162,12,3,18,192,197,226,65,3,18,192,197,162,156,92,196,210,2,0,1,3,19,192,197,34,12,3,19,192,197,98,65,3,19,192,197,34,5,92,196,210,2,0,1,3,19,192,197,162,12,3,19,192,197,226,65,3,19,192,197,162,156,50,196,196,48,0,12,3,20,192,197,34,5,50,196,196,48,0,12,3,20,192,197,98,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,76,36,4,185,88,185,92,185,96,186,104,186,112,185,116,185,124,185,128,38,4,185,144,185,148,185,152,40,4,42,4,185,180,185,188,185,192,185,196,185,200,185,204,44,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,46,4,168,76,56,4,168,88,168,92,168,96,168,104,168,112,168,116,168,124,168,128,58,4,168,144,168,148,168,152,60,4,62,4,168,180,168,188,168,192,168,196,168,200,168,204,64,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,66,4,186,81,154,81,250,81,90,82,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,189,153,189,249,189,89,190,153,205,185,220,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,68,4,168,81,136,81,232,81,72,82,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,189,136,189,232,189,72,190,136,205,168,220,72,206,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,70,4,72,4,185,84,168,84,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,125,136,125,249,126,232,126,25,126,8,126,121,127,104,127,185,120,168,120,185,136,168,136,74,4,76,4,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,185,164,168,164,78,4,80,4,25,162,8,162,185,176,168,176,250,169,232,169,82,4,84,4,185,172,168,172,249,182,232,182,25,182,8,182,185,184,168,184,153,190,136,190,57,191,40,191,217,189,200,189,57,190,40,190,121,190,104,190,25,191,8,191,249,197,232,197,249,205,232,205,89,206,185,216,168,216,185,210,168,210,185,212,168,212,232,168,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,168,169,168,200,56,169,80,187,104,187,112,169,104,169,112,169,224,169,132,217,144,187,80,200,144,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,187,100,104,4,178,100,36,5,251,101,37,5,242,101,255,5,186,80,255,5,186,132,255,5,185,160,255,5,186,168,255,5,185,208,255,5,168,64,72,4,177,100,104,4,168,100,36,5,241,101,37,5,232,101,255,5,168,80,255,5,168,132,255,5,168,160,255,5,168,168,255,5,168,208,255,5,249,66,255,5,232,66,255,5,26,83,255,5,8,83,255,5,250,134,255,5,232,134,255,5,249,162,255,5,232,162,255,5,250,170,255,5,232,170,255,1,3,0,69,0,52,0,61,0,79,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,88,10,0,32,1,0,32,0,93,10,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,76,11,0,32,7,0,0,0,21,0,0,0,78,11,0,0,78,11,0,0,3,0,0,0,0,0,0,0,93,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,138,220,38,0,12,3,60,0,60,0,2,3,38,0,68,0,60,0,100,0,122,0,60,0,60,0,60,0,68,0,122,0,60,0,60,0,60,0,68,0,90,0,60,0,86,2,60,0,60,0,60,0,137,1,38,0,69,0,60,0,91,2,60,0,60,0,60,0,144,1,38,0,70,0,60,0,146,1,60,0,60,0,60,0,145,1,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,60,0,99,2,60,0,60,0,60,0,148,1,38,0,72,0,60,0,120,0,60,0,60,0,60,0,88,0,38,0,75,0,60,0,107,0,112,0,60,0,60,0,60,0,75,0,112,0,60,0,60,0,60,0,75,0,80,0,38,0,78,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,79,0,60,0,84,2,60,0,60,0,60,0,134,1,38,0,84,0,60,0,116,0,115,0,60,0,60,0,60,0,84,0,115,0,60,0,60,0,60,0,84,0,83,0,38,0,86,0,60,0,139,2,60,0,60,0,60,0,178,1,0,0,170,170,170,170,170,170,170,170,146,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,30,0,0,164,30,0,0,164,30,0,0,164,30,0,0,116,35,0,0,116,35,0,0,136,38,0,0,222,38,0,0,122,43,0,0,50,105,114,84,1,0,64,8,221,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,109,0,117,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,48,0,56,0,152,0,160,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,182,0,189,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,204,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,176,0,48,0,48,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,180,1,192,0,192,0,232,1,32,2,192,0,96,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,37,0,202,97,37,0,202,130,37,0,202,163,37,0,202,196,37,0,202,229,37,0,202,6,38,0,202,39,38,0,202,72,38,0,202,105,38,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,201,0,0,0,156,5,0,50,156,5,0,52,201,64,6,0,156,5,0,56,156,5,0,58,156,5,0,60,201,224,9,0,156,5,0,64,156,5,0,66,201,192,12,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,201,64,22,0,156,5,0,82,156,5,0,84,160,5,0,86,134,5,2,57,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,201,96,32,0,5,5,0,50,5,5,0,52,201,160,35,0,5,5,0,56,5,5,0,58,5,5,0,60,201,128,37,0,5,5,0,64,5,5,0,66,201,0,39,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,201,32,44,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,2,57,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,145,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,36,0,196,160,156,46,196,138,156,50,196,136,156,50,196,145,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,145,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,145,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,145,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,36,0,196,138,5,42,196,136,5,42,196,145,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,37,0,196,160,5,46,196,138,5,50,196,136,5,50,196,145,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,145,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,145,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,145,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,46,196,145,5,46,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,54,196,145,5,54,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,56,196,145,5,56,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,60,196,145,5,60,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,69,5,5,3,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,78,196,145,5,78,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,160,86,196,145,5,86,196,145,156,90,196,145,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,71,192,0,0,0,192,0,0,0,134,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,134,5,2,53,5,5,2,53,192,0,0,0,134,5,3,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,85,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,71,192,0,0,0,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,85,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,145,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,24,0,197,130,24,0,197,194,24,0,197,2,25,0,192,0,0,0,192,0,0,0,196,145,156,92,196,145,5,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,25,0,197,163,25,0,197,3,26,0,197,99,26,0,197,195,26,0,197,35,27,0,197,131,27,0,197,227,27,0,197,67,28,0,197,163,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,29,0,197,99,29,0,197,195,29,0,197,35,30,0,197,131,30,0,197,227,30,0,197,67,31,0,197,163,31,0,197,3,32,0,197,99,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,32,0,197,35,33,0,197,131,33,0,197,227,33,0,197,67,34,0,197,163,34,0,197,3,35,0,197,99,35,0,197,195,35,0,197,35,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,224,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,49,5,136,0,0,70,5,2,49,5,136,0,0,135,5,2,49,5,156,0,0,70,5,2,49,5,156,0,0,135,5,2,49,5,144,0,0,70,5,2,49,5,144,0,0,135,5,2,49,5,145,0,0,70,5,2,49,5,145,0,0,135,5,2,49,5,196,0,0,70,5,2,49,5,196,0,0,135,5,2,49,5,210,0,0,70,5,2,49,5,210,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,196,0,0,70,5,2,55,5,196,0,0,135,5,2,55,5,210,0,0,70,5,2,55,5,210,0,0,135,5,2,63,5,136,0,0,70,5,2,63,5,136,0,0,135,5,2,63,5,156,0,0,70,5,2,63,5,156,0,0,135,5,2,69,5,136,0,0,70,5,2,69,5,136,0,0,70,5,2,69,5,150,0,0,135,5,2,69,5,145,0,0,70,5,2,69,5,145,0,0,135,5,2,69,5,150,0,0,135,5,2,69,5,164,0,0,70,5,2,69,5,164,0,0,135,5,2,69,5,156,0,0,70,5,2,69,5,156,0,0,70,5,2,69,5,146,0,0,135,5,2,69,5,138,0,0,70,5,2,69,5,138,0,0,135,5,2,69,5,196,0,0,70,5,2,69,5,196,0,0,135,5,2,69,5,182,0,0,70,5,2,69,5,182,0,0,135,5,2,69,5,154,0,0,70,5,2,69,5,154,0,0,135,5,2,81,5,136,0,0,70,5,2,81,5,136,0,0,135,5,2,81,5,145,0,0,70,5,2,81,5,145,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,202,0,0,70,5,2,81,5,202,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,5,196,0,0,70,5,2,81,5,196,0,0,135,5,2,81,5,136,0,0,5,156,0,0,70,5,2,81,5,136,0,0,5,156,0,0,135,5,2,81,5,144,0,0,5,156,0,0,70,5,2,81,5,144,0,0,5,156,0,0,135,5,2,81,5,196,0,0,5,156,0,0,70,5,2,81,5,196,0,0,5,156,0,0,5,5,2,49,5,136,0,0,5,5,2,49,5,156,0,0,5,5,2,49,5,144,0,0,5,5,2,49,5,145,0,0,5,5,2,49,5,196,0,0,5,5,2,49,5,210,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,196,0,0,5,5,2,55,5,210,0,0,5,5,2,63,5,136,0,0,5,5,2,63,5,156,0,0,5,5,2,69,5,136,0,0,5,5,2,69,5,150,0,0,5,5,2,69,5,145,0,0,5,5,2,69,5,164,0,0,5,5,2,69,5,156,0,0,5,5,2,69,5,146,0,0,5,5,2,69,5,138,0,0,5,5,2,69,5,196,0,0,5,5,2,69,5,182,0,0,5,5,2,69,5,154,0,0,5,5,2,81,5,136,0,0,5,5,2,81,5,145,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,202,0,0,5,5,2,81,5,156,0,0,5,5,2,81,5,196,0,0,5,5,2,81,5,136,0,0,5,156,0,0,5,5,2,81,5,144,0,0,5,156,0,0,5,5,2,81,5,196,0,0,5,156,0,0,134,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,134,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,156,5,0,42,5,145,0,0,5,136,0,0,5,5,0,42,5,145,0,0,5,136,0,0,156,5,0,42,5,145,0,0,5,138,0,0,5,5,0,42,5,145,0,0,5,138,0,0,156,5,0,42,5,145,0,0,5,182,0,0,5,5,0,42,5,145,0,0,5,182,0,0,156,5,0,42,5,145,0,0,5,154,0,0,5,5,0,42,5,145,0,0,5,154,0,0,156,5,0,42,5,196,0,0,5,145,0,0,5,5,0,42,5,196,0,0,5,145,0,0,156,5,0,50,5,145,0,0,5,136,0,0,5,5,0,50,5,145,0,0,5,136,0,0,156,5,0,50,5,145,0,0,5,138,0,0,5,5,0,50,5,145,0,0,5,138,0,0,156,5,0,50,5,145,0,0,5,182,0,0,5,5,0,50,5,145,0,0,5,182,0,0,156,5,0,50,5,145,0,0,5,154,0,0,5,5,0,50,5,145,0,0,5,154,0,0,156,5,0,50,5,196,0,0,5,145,0,0,5,5,0,50,5,196,0,0,5,145,0,0,156,5,0,70,5,145,0,0,5,136,0,0,5,5,0,70,5,145,0,0,5,136,0,0,156,5,0,70,5,145,0,0,5,138,0,0,5,5,0,70,5,145,0,0,5,138,0,0,156,5,0,70,5,145,0,0,5,182,0,0,5,5,0,70,5,145,0,0,5,182,0,0,156,5,0,70,5,145,0,0,5,154,0,0,5,5,0,70,5,145,0,0,5,154,0,0,156,5,0,70,5,196,0,0,5,145,0,0,5,5,0,70,5,196,0,0,5,145,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,48,156,5,13,0,126,1,23,0,146,30,12,0,146,30,2,192,197,34,147,30,2,192,197,98,148,30,2,192,197,162,149,30,2,192,197,226,126,1,1,192,197,98,144,30,1,192,197,162,145,30,1,192,197,226,122,1,12,0,122,1,0,192,197,98,123,1,0,192,197,162,124,1,0,192,197,226,125,1,1,192,197,34,90,0,2,241,135,5,122,0,2,241,70,5,121,1,197,162,0,54,156,5,7,0,4,30,12,0,4,30,3,192,197,162,5,30,3,192,197,226,6,30,4,192,197,34,7,30,4,192,197,98,66,0,2,247,135,5,98,0,2,247,70,5,2,30,3,192,197,34,3,30,3,192,197,98,0,62,156,5,5,0,85,30,9,0,85,30,4,192,197,226,86,30,5,192,197,34,87,30,5,192,197,98,80,0,2,255,135,5,112,0,2,255,70,5,84,30,4,192,197,162,0,68,156,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,9,192,197,162,248,30,9,192,197,226,249,30,10,192,197,34,244,30,8,192,197,226,245,30,9,192,197,34,246,30,9,192,197,98,142,30,7,192,197,162,143,30,7,192,197,226,153,30,8,192,197,34,242,30,8,192,197,98,243,30,8,192,197,162,118,1,15,0,118,1,6,192,197,98,119,1,6,192,197,162,120,1,6,192,197,226,50,2,7,192,197,34,51,2,7,192,197,98,89,0,255,255,2,69,135,5,121,0,255,255,2,69,70,5,221,0,5,192,197,162,253,0,5,192,197,226,255,0,6,192,197,34,0,80,156,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,15,192,197,3,104,30,15,192,197,99,105,30,15,192,197,195,100,30,13,192,197,227,101,30,14,192,197,67,102,30,14,192,197,163,25,2,12,192,197,162,96,30,12,192,197,226,97,30,13,192,197,34,98,30,13,192,197,98,99,30,13,192,197,162,93,1,20,0,96,1,9,0,96,1,11,192,197,226,97,1,12,192,197,34,24,2,12,192,197,98,93,1,11,192,197,34,94,1,11,192,197,98,95,1,11,192,197,162,83,0,255,255,2,81,135,5,115,0,255,255,2,81,70,5,90,1,10,192,197,98,91,1,10,192,197,162,92,1,10,192,197,226,0,48,5,5,6,0,126,1,12,0,126,1,16,192,197,162,145,30,16,192,197,226,147,30,17,192,197,34,149,30,17,192,197,98,122,0,2,241,5,5,122,1,16,192,197,34,124,1,16,192,197,98,0,54,5,5,3,0,98,0,2,247,5,5,3,30,17,192,197,162,5,30,17,192,197,226,7,30,18,192,197,34,0,62,5,5,2,0,112,0,2,255,5,5,85,30,18,192,197,98,87,30,18,192,197,162,0,68,5,5,10,0,143,30,20,0,245,30,9,0,245,30,20,192,197,162,247,30,20,192,197,226,249,30,21,192,197,34,143,30,19,192,197,226,153,30,20,192,197,34,243,30,20,192,197,98,121,0,255,255,2,69,5,5,253,0,18,192,197,226,255,0,19,192,197,34,119,1,19,192,197,98,51,2,19,192,197,162,0,80,5,5,10,0,25,2,20,0,101,30,9,0,101,30,23,192,197,35,103,30,23,192,197,131,105,30,23,192,197,227,25,2,22,192,197,98,97,30,22,192,197,162,99,30,22,192,197,226,115,0,255,255,2,81,5,5,91,1,21,192,197,98,93,1,21,192,197,162,95,1,21,192,197,226,97,1,22,192,197,34,42,0,66,0,67,0,80,0,81,0,83,0,84,0,89,0,91,0,98,0,99,0,112,0,113,0,115,0,116,0,121,0,123,0,221,0,222,0,253,0,254,0,255,0,0,1,90,1,98,1,118,1,127,1,24,2,26,2,50,2,52,2,2,30,8,30,84,30,88,30,96,30,106,30,142,30,150,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,26,4,186,76,185,80,44,4,185,92,186,100,186,108,50,4,185,120,185,124,56,4,185,140,185,144,185,148,185,156,186,160,74,4,185,176,185,180,185,184,185,96,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,96,4,168,76,168,80,106,4,168,92,168,100,168,108,110,4,168,120,168,124,114,4,168,140,168,144,168,148,168,156,168,160,124,4,168,176,168,180,168,184,168,96,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,25,58,153,58,89,58,57,58,0,8,249,66,186,77,154,77,26,78,90,78,186,101,154,101,26,102,90,102,217,68,154,130,185,141,153,141,25,142,153,142,89,142,136,14,217,142,185,177,153,177,25,178,89,178,153,189,185,196,2,8,168,57,136,57,8,58,136,58,72,58,40,58,4,8,232,66,168,77,136,77,8,78,72,78,168,101,136,101,8,102,72,102,200,68,136,130,168,141,136,141,8,142,136,142,72,142,128,14,200,142,168,177,136,177,8,178,72,178,136,189,168,196,72,190,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,25,66,8,66,185,66,168,66,249,65,232,65,249,69,232,69,89,71,72,71,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,250,77,232,77,25,86,8,86,217,85,200,85,185,86,168,86,249,86,232,86,25,94,8,94,89,95,72,95,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,26,110,8,110,249,114,232,114,168,152,153,121,136,121,249,122,232,122,249,121,232,121,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,250,129,232,129,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,157,136,157,249,158,232,158,249,157,232,157,154,161,136,161,26,162,8,162,250,162,232,162,250,161,232,161,249,166,232,166,249,165,232,165,185,172,168,172,153,178,136,178,57,179,40,179,217,177,200,177,57,178,40,178,121,178,104,178,25,179,8,179,25,186,8,186,25,190,8,190,89,190,153,193,136,193,185,194,168,194,249,193,232,193,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,160,169,160,200,56,169,76,187,100,187,108,169,100,169,108,169,200,169,128,217,140,187,76,200,140,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,68,90,4,186,72,122,4,177,72,121,5,154,73,122,5,145,73,123,5,186,74,124,5,177,74,125,5,250,73,126,5,241,73,255,5,185,84,66,4,186,88,98,4,177,88,255,5,185,112,80,4,186,116,112,4,177,116,255,5,186,128,89,4,186,132,121,4,177,132,221,4,154,133,253,4,145,133,255,4,81,134,118,5,26,134,119,5,17,134,120,5,90,134,255,5,185,164,83,4,186,168,115,4,177,168,90,5,154,169,91,5,145,169,92,5,26,170,93,5,17,170,94,5,250,170,95,5,241,170,96,5,250,169,97,5,241,169,255,5,168,68,122,4,168,72,122,5,136,73,124,5,168,74,126,5,232,73,255,5,168,84,98,4,168,88,255,5,168,112,112,4,168,116,255,5,168,128,121,4,168,132,253,4,136,133,255,4,72,134,119,5,8,134,255,5,168,164,115,4,168,168,91,5,136,169,93,5,8,170,95,5,232,170,97,5,232,169,255,1,170,170,3,0,69,0,52,0,61,0,95,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,69,11,0,32,1,0,32,0,74,11,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,132,0,0,32,7,0,0,0,21,0,0,0,134,0,0,0,134,0,0,0,3,0,0,0,0,0,0,0,40,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,114,0,101,0,107,0,93,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,14,0,0,0,0,0,0,96,199,255,96,96,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,125,0,0,32,1,0,32,0,130,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,149,15,0,32,7,0,0,0,21,0,0,0,151,15,0,0,151,15,0,0,3,0,0,0,0,0,0,0,70,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,92,220,38,0,65,0,60,0,42,0,39,0,32,0,39,0,45,0,39,0,47,0,39,0,60,0,42,0,48,0,45,0,39,0,64,0,39,0,60,0,42,0,65,0,66,0,67,0,68,0,69,0,70,0,71,0,72,0,73,0,74,0,75,0,76,0,77,0,78,0,79,0,80,0,81,0,82,0,83,0,84,0,85,0,86,0,87,0,88,0,89,0,90,0,60,0,42,0,39,0,91,0,39,0,45,0,39,0,96,0,39,0,60,0,42,0,97,0,98,0,99,0,100,0,101,0,102,0,103,0,104,0,105,0,106,0,107,0,108,0,109,0,110,0,111,0,112,0,113,0,114,0,115,0,116,0,117,0,118,0,119,0,120,0,121,0,122,0,60,0,42,0,39,0,123,0,39,0,45,0,39,0,127,0,39,0,0,0,170,170,170,170,24,61,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,0,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,34,0,0,84,34,0,0,252,51,0,0,252,51,0,0,228,60,0,0,228,60,0,0,252,60,0,0,252,60,0,0,252,60,0,0,50,105,114,84,1,0,64,8,24,1,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,125,0,133,0,141,0,149,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,154,0,162,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,194,0,202,0,210,0,218,0,226,0,234,0,242,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,249,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,178,0,48,0,48,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,244,1,52,2,192,0,192,0,192,0,192,0,104,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,2,43,5,5,3,43,5,5,4,43,193,2,5,43,193,3,5,43,193,4,5,43,193,5,5,43,193,6,5,43,193,7,5,43,193,8,5,43,193,9,5,43,193,10,5,43,193,11,5,43,193,12,5,43,193,13,5,43,193,14,5,43,202,0,70,0,202,33,70,0,202,66,70,0,202,99,70,0,202,132,70,0,202,165,70,0,202,198,70,0,202,231,70,0,202,8,71,0,202,41,71,0,193,25,5,43,193,26,5,43,193,27,5,43,193,28,5,43,193,29,5,43,193,30,5,43,193,31,5,43,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,198,33,1,0,198,65,1,0,198,97,1,0,198,129,1,0,198,161,1,0,198,193,1,0,198,225,1,0,198,1,2,0,198,33,2,0,198,65,2,0,198,97,2,0,198,129,2,0,198,161,2,0,198,193,2,0,198,225,2,0,198,1,3,0,198,33,3,0,193,58,5,43,193,59,5,43,193,60,5,43,193,61,5,43,193,62,5,43,193,63,5,43,193,64,5,43,193,65,5,43,193,66,5,43,193,67,5,43,193,68,5,43,193,69,5,43,193,70,5,43,193,71,5,43,193,72,5,43,193,73,5,43,193,74,5,43,193,75,5,43,193,76,5,43,193,77,5,43,193,78,5,43,193,79,5,43,193,80,5,43,193,81,5,43,193,82,5,43,193,83,5,43,193,84,5,43,193,85,5,43,193,86,5,43,193,87,5,43,193,88,5,43,193,89,5,43,193,90,5,43,193,91,5,43,193,92,5,43,193,93,5,43,193,94,5,43,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,3,0,198,130,3,0,198,194,3,0,198,2,4,0,198,66,4,0,198,130,4,0,197,66,69,0,198,194,4,0,198,2,5,0,198,66,5,0,198,130,5,0,198,194,5,0,198,2,6,0,198,66,6,0,198,130,6,0,198,194,6,0,160,112,0,48,198,2,7,0,198,66,7,0,198,130,7,0,198,194,7,0,198,2,8,0,198,66,8,0,5,5,127,12,196,158,156,70,198,130,8,0,198,194,8,0,198,2,9,0,198,66,9,0,198,130,9,0,160,5,38,93,197,130,69,0,197,34,0,0,197,98,0,0,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,197,194,69,0,197,162,1,0,197,226,1,0,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,197,34,3,0,197,98,3,0,197,162,3,0,5,112,0,48,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,5,5,125,12,196,158,5,70,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,5,5,38,93,197,162,6,0,198,194,9,0,197,226,6,0,198,2,10,0,197,34,7,0,198,66,10,0,197,98,7,0,198,130,10,0,197,162,7,0,198,194,10,0,197,226,7,0,198,2,11,0,197,34,8,0,198,66,11,0,197,98,8,0,198,130,11,0,197,162,8,0,192,0,0,0,192,0,0,0,198,194,11,0,197,226,8,0,198,2,12,0,197,34,9,0,198,66,12,0,197,98,9,0,198,130,12,0,197,162,9,0,198,194,12,0,197,226,9,0,198,2,13,0,197,34,10,0,198,66,13,0,197,98,10,0,198,130,13,0,197,162,10,0,198,194,13,0,197,226,10,0,198,2,14,0,197,34,11,0,192,0,0,0,192,0,0,0,198,66,14,0,197,98,11,0,198,130,14,0,197,162,11,0,198,194,14,0,197,226,11,0,198,2,15,0,197,34,12,0,198,66,15,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,15,0,197,98,12,0,198,194,15,0,197,162,12,0,192,0,0,0,198,2,16,0,197,226,12,0,198,66,16,0,197,34,13,0,198,130,16,0,197,98,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,16,0,197,162,13,0,198,2,17,0,197,226,13,0,198,66,17,0,197,34,14,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,17,0,197,98,14,0,198,194,17,0,197,162,14,0,198,2,18,0,197,226,14,0,192,0,0,0,192,0,0,0,198,66,18,0,197,34,15,0,198,130,18,0,197,98,15,0,198,194,18,0,197,162,15,0,198,2,19,0,197,226,15,0,198,66,19,0,197,34,16,0,198,130,19,0,197,98,16,0,198,194,19,0,197,162,16,0,198,2,20,0,197,226,16,0,198,66,20,0,197,34,17,0,192,0,0,0,192,0,0,0,198,130,20,0,197,98,17,0,198,194,20,0,197,162,17,0,198,2,21,0,197,226,17,0,198,66,21,0,197,34,18,0,198,130,21,0,197,98,18,0,198,194,21,0,197,162,18,0,198,2,22,0,197,226,18,0,198,66,22,0,197,34,19,0,198,130,22,0,198,194,22,0,197,98,19,0,198,2,23,0,197,162,19,0,198,66,23,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,23,0,197,34,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,23,0,197,98,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,24,0,197,162,20,0,198,66,24,0,197,226,20,0,198,130,24,0,197,34,21,0,198,194,24,0,197,98,21,0,198,3,25,0,197,163,21,0,198,99,25,0,197,3,22,0,198,195,25,0,197,99,22,0,198,35,26,0,197,195,22,0,192,0,0,0,198,131,26,0,197,35,23,0,198,227,26,0,197,131,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,27,0,197,226,23,0,198,130,27,0,197,34,24,0,198,194,27,0,197,98,24,0,198,3,28,0,197,163,24,0,192,0,0,0,192,0,0,0,197,2,25,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,28,0,197,66,25,0,192,0,0,0,192,0,0,0,198,162,28,0,197,130,25,0,198,227,28,0,197,195,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,29,0,197,34,26,0,198,130,29,0,197,98,26,0,198,194,29,0,197,162,26,0,198,2,30,0,197,226,26,0,198,66,30,0,197,34,27,0,198,130,30,0,197,98,27,0,198,194,30,0,197,162,27,0,198,2,31,0,197,226,27,0,198,66,31,0,197,34,28,0,198,130,31,0,197,98,28,0,198,194,31,0,197,162,28,0,198,2,32,0,197,226,28,0,198,66,32,0,197,34,29,0,198,130,32,0,197,98,29,0,192,0,0,0,192,0,0,0,198,194,32,0,197,162,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,201,198,0,0,198,2,33,0,197,226,29,0,198,67,33,0,197,35,30,0,198,163,33,0,197,131,30,0,198,2,34,0,197,226,30,0,198,67,34,0,197,35,31,0,198,162,34,0,197,130,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,26,5,43,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,34,0,197,194,31,0,198,34,35,0,197,2,32,0,198,98,35,0,197,66,32,0,198,162,35,0,197,130,32,0,198,227,35,0,197,195,32,0,198,66,36,0,197,34,33,0,198,130,36,0,197,98,33,0,198,194,36,0,197,162,33,0,198,2,37,0,197,226,33,0,198,66,37,0,197,34,34,0,198,131,37,0,197,99,34,0,198,227,37,0,197,195,34,0,198,66,38,0,197,34,35,0,198,130,38,0,197,98,35,0,198,195,38,0,197,163,35,0,198,34,39,0,197,2,36,0,198,98,39,0,197,66,36,0,198,162,39,0,197,130,36,0,198,226,39,0,197,194,36,0,198,34,40,0,197,2,37,0,198,98,40,0,197,66,37,0,198,162,40,0,197,130,37,0,198,226,40,0,197,194,37,0,198,35,41,0,197,3,38,0,198,130,41,0,197,98,38,0,198,194,41,0,197,162,38,0,198,2,42,0,197,226,38,0,198,66,42,0,197,34,39,0,198,131,42,0,197,99,39,0,198,226,42,0,197,194,39,0,198,34,43,0,197,2,40,0,198,98,43,0,197,66,40,0,198,162,43,0,197,130,40,0,198,226,43,0,197,194,40,0,198,34,44,0,197,2,41,0,198,98,44,0,197,66,41,0,198,162,44,0,197,130,41,0,198,226,44,0,197,194,41,0,198,35,45,0,197,3,42,0,198,131,45,0,197,99,42,0,198,227,45,0,197,195,42,0,198,67,46,0,197,35,43,0,198,162,46,0,197,130,43,0,198,226,46,0,197,194,43,0,198,34,47,0,197,2,44,0,198,98,47,0,197,66,44,0,198,163,47,0,197,131,44,0,198,2,48,0,197,226,44,0,198,66,48,0,197,34,45,0,198,130,48,0,197,98,45,0,198,195,48,0,197,163,45,0,198,35,49,0,197,3,46,0,198,131,49,0,197,99,46,0,198,226,49,0,197,194,46,0,198,34,50,0,197,2,47,0,198,98,50,0,197,66,47,0,198,162,50,0,197,130,47,0,198,226,50,0,197,194,47,0,198,34,51,0,197,2,48,0,198,98,51,0,197,66,48,0,198,163,51,0,197,131,48,0,198,3,52,0,197,227,48,0,198,98,52,0,197,66,49,0,198,162,52,0,197,130,49,0,198,226,52,0,197,194,49,0,198,34,53,0,197,2,50,0,198,98,53,0,197,66,50,0,198,162,53,0,197,130,50,0,198,226,53,0,197,194,50,0,198,34,54,0,197,2,51,0,198,98,54,0,197,66,51,0,198,162,54,0,197,130,51,0,198,226,54,0,197,194,51,0,198,34,55,0,197,2,52,0,198,98,55,0,197,66,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,55,0,197,130,53,0,198,226,55,0,197,194,53,0,198,35,56,0,197,3,54,0,198,131,56,0,197,99,54,0,198,227,56,0,197,195,54,0,198,67,57,0,197,35,55,0,198,163,57,0,197,131,55,0,198,3,58,0,197,227,55,0,198,99,58,0,197,67,56,0,198,195,58,0,197,163,56,0,198,35,59,0,197,3,57,0,198,131,59,0,197,99,57,0,198,226,59,0,197,194,57,0,198,34,60,0,197,2,58,0,198,98,60,0,197,66,58,0,198,163,60,0,197,131,58,0,198,3,61,0,197,227,58,0,198,99,61,0,197,67,59,0,198,195,61,0,197,163,59,0,198,35,62,0,197,3,60,0,198,130,62,0,197,98,60,0,198,194,62,0,197,162,60,0,198,2,63,0,197,226,60,0,198,66,63,0,197,34,61,0,198,131,63,0,197,99,61,0,198,227,63,0,197,195,61,0,198,67,64,0,197,35,62,0,198,163,64,0,197,131,62,0,198,3,65,0,197,227,62,0,198,99,65,0,197,67,63,0,198,195,65,0,197,163,63,0,198,35,66,0,197,3,64,0,198,131,66,0,197,99,64,0,198,227,66,0,197,195,64,0,198,66,67,0,197,34,65,0,198,130,67,0,197,98,65,0,198,195,67,0,197,163,65,0,198,35,68,0,197,3,66,0,198,131,68,0,197,99,66,0,198,227,68,0,197,195,66,0,198,67,69,0,197,35,67,0,198,162,69,0,197,130,67,0,198,226,69,0,197,194,67,0,198,34,70,0,197,2,68,0,198,98,70,0,197,66,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,63,5,43,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,1,0,198,130,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,68,0,197,2,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,133,0,5,0,32,5,43,0,133,0,5,0,33,5,43,0,133,0,5,0,34,5,43,0,133,0,5,0,35,5,43,0,133,0,5,0,36,5,43,0,133,0,5,0,37,5,43,0,133,0,5,0,38,5,43,0,133,0,5,0,39,5,43,0,133,0,5,0,40,5,43,0,133,0,5,0,41,5,43,0,133,0,5,0,42,5,43,0,133,0,5,0,43,5,43,0,133,0,5,0,44,5,43,0,133,0,5,0,45,5,43,0,133,0,5,0,46,5,43,0,133,0,5,0,47,5,43,0,133,0,5,0,48,5,43,0,133,0,5,0,49,5,43,0,133,0,5,0,50,5,43,0,133,0,5,0,51,5,43,0,133,0,5,0,52,5,43,0,133,0,5,0,53,5,43,0,133,0,5,0,54,5,43,0,133,0,5,0,55,5,43,0,133,0,5,0,56,5,43,0,133,0,5,0,57,5,43,0,133,0,5,0,32,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,146,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,41,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,152,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,146,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,152,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,162,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,202,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,202,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,200,0,0,0,0,0,133,0,5,0,33,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,33,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,33,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,160,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,164,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,164,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,208,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,160,0,0,0,0,0,5,0,140,0,0,0,0,0,133,0,5,0,37,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,206,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,208,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,150,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,196,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,44,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,44,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,44,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,5,0,150,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,164,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,164,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,47,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,47,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,196,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,198,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,208,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,154,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,164,0,0,0,0,0,5,0,150,0,0,0,0,0,133,0,5,0,53,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,53,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,55,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,55,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,154,0,0,0,0,0,0,0,0,193,64,5,43,5,138,0,0,193,64,5,43,5,136,0,0,193,64,5,43,5,142,0,0,193,64,5,43,5,154,0,0,193,64,5,43,5,150,0,0,193,64,5,43,5,146,0,0,193,66,5,43,5,160,0,0,193,68,5,43,5,138,0,0,193,68,5,43,5,136,0,0,193,68,5,43,5,142,0,0,193,68,5,43,5,150,0,0,193,72,5,43,5,138,0,0,193,72,5,43,5,136,0,0,193,72,5,43,5,142,0,0,193,72,5,43,5,150,0,0,193,77,5,43,5,154,0,0,193,78,5,43,5,138,0,0,193,78,5,43,5,136,0,0,193,78,5,43,5,142,0,0,193,78,5,43,5,154,0,0,193,78,5,43,5,150,0,0,193,84,5,43,5,138,0,0,193,84,5,43,5,136,0,0,193,84,5,43,5,142,0,0,193,84,5,43,5,150,0,0,193,88,5,43,5,136,0,0,193,88,5,43,5,150,0,0,193,64,5,43,5,164,0,0,193,64,5,43,5,140,0,0,193,64,5,43,5,162,0,0,193,66,5,43,5,136,0,0,193,66,5,43,5,142,0,0,193,66,5,43,5,156,0,0,193,66,5,43,5,144,0,0,193,67,5,43,5,144,0,0,193,68,5,43,5,164,0,0,193,68,5,43,5,140,0,0,193,68,5,43,5,156,0,0,193,68,5,43,5,162,0,0,193,68,5,43,5,144,0,0,193,70,5,43,5,142,0,0,193,70,5,43,5,140,0,0,193,70,5,43,5,156,0,0,193,70,5,43,5,160,0,0,193,71,5,43,5,142,0,0,193,72,5,43,5,154,0,0,193,72,5,43,5,164,0,0,193,72,5,43,5,140,0,0,193,72,5,43,5,162,0,0,193,73,5,43,5,142,0,0,193,74,5,43,5,160,0,0,193,75,5,43,5,136,0,0,193,75,5,43,5,160,0,0,193,75,5,43,5,144,0,0,193,77,5,43,5,136,0,0,193,77,5,43,5,160,0,0,193,77,5,43,5,144,0,0,193,78,5,43,5,164,0,0,193,78,5,43,5,140,0,0,193,78,5,43,5,152,0,0,193,81,5,43,5,136,0,0,193,81,5,43,5,160,0,0,193,81,5,43,5,144,0,0,193,82,5,43,5,136,0,0,193,82,5,43,5,142,0,0,193,82,5,43,5,160,0,0,193,82,5,43,5,144,0,0,193,83,5,43,5,160,0,0,193,83,5,43,5,144,0,0,193,84,5,43,5,154,0,0,193,84,5,43,5,164,0,0,193,84,5,43,5,140,0,0,193,84,5,43,5,146,0,0,193,84,5,43,5,152,0,0,193,84,5,43,5,162,0,0,193,86,5,43,5,142,0,0,193,88,5,43,5,142,0,0,193,89,5,43,5,136,0,0,193,89,5,43,5,156,0,0,193,89,5,43,5,144,0,0,193,78,5,43,5,190,0,0,193,84,5,43,5,190,0,0,193,64,5,43,5,144,0,0,193,72,5,43,5,144,0,0,193,78,5,43,5,144,0,0,193,84,5,43,5,144,0,0,193,84,5,43,5,150,0,0,5,164,0,0,193,84,5,43,5,150,0,0,5,136,0,0,193,84,5,43,5,150,0,0,5,144,0,0,193,84,5,43,5,150,0,0,5,138,0,0,193,64,5,43,5,150,0,0,5,164,0,0,193,64,5,43,5,156,0,0,5,164,0,0,193,70,5,43,5,144,0,0,193,74,5,43,5,144,0,0,193,78,5,43,5,162,0,0,193,78,5,43,5,162,0,0,5,164,0,0,193,73,5,43,5,144,0,0,193,70,5,43,5,136,0,0,193,77,5,43,5,138,0,0,193,64,5,43,5,146,0,0,5,136,0,0,193,64,5,43,5,184,0,0,193,64,5,43,5,188,0,0,193,68,5,43,5,184,0,0,193,68,5,43,5,188,0,0,193,72,5,43,5,184,0,0,193,72,5,43,5,188,0,0,193,78,5,43,5,184,0,0,193,78,5,43,5,188,0,0,193,81,5,43,5,184,0,0,193,81,5,43,5,188,0,0,193,84,5,43,5,184,0,0,193,84,5,43,5,188,0,0,193,82,5,43,5,202,0,0,193,83,5,43,5,202,0,0,193,71,5,43,5,144,0,0,193,68,5,43,5,160,0,0,193,78,5,43,5,150,0,0,5,164,0,0,193,78,5,43,5,154,0,0,5,164,0,0,193,78,5,43,5,156,0,0,193,78,5,43,5,156,0,0,5,164,0,0,193,88,5,43,5,164,0,0,193,64,5,43,5,200,0,0,193,65,5,43,5,156,0,0,193,65,5,43,5,196,0,0,193,65,5,43,5,210,0,0,193,66,5,43,5,160,0,0,5,136,0,0,193,67,5,43,5,156,0,0,193,67,5,43,5,196,0,0,193,67,5,43,5,210,0,0,193,67,5,43,5,160,0,0,193,67,5,43,5,204,0,0,193,68,5,43,5,164,0,0,5,138,0,0,193,68,5,43,5,164,0,0,5,136,0,0,193,68,5,43,5,204,0,0,193,68,5,43,5,208,0,0,193,68,5,43,5,160,0,0,5,140,0,0,193,69,5,43,5,156,0,0,193,70,5,43,5,164,0,0,193,71,5,43,5,156,0,0,193,71,5,43,5,196,0,0,193,71,5,43,5,150,0,0,193,71,5,43,5,160,0,0,193,71,5,43,5,206,0,0,193,72,5,43,5,208,0,0,193,72,5,43,5,150,0,0,5,136,0,0,193,74,5,43,5,136,0,0,193,74,5,43,5,196,0,0,193,74,5,43,5,210,0,0,193,75,5,43,5,196,0,0,193,75,5,43,5,196,0,0,5,164,0,0,193,75,5,43,5,210,0,0,193,75,5,43,5,204,0,0,193,76,5,43,5,136,0,0,193,76,5,43,5,156,0,0,193,76,5,43,5,196,0,0,193,77,5,43,5,156,0,0,193,77,5,43,5,196,0,0,193,77,5,43,5,210,0,0,193,77,5,43,5,204,0,0,193,78,5,43,5,154,0,0,5,136,0,0,193,78,5,43,5,154,0,0,5,150,0,0,193,78,5,43,5,164,0,0,5,138,0,0,193,78,5,43,5,164,0,0,5,136,0,0,193,79,5,43,5,136,0,0,193,79,5,43,5,156,0,0,193,81,5,43,5,156,0,0,193,81,5,43,5,196,0,0,193,81,5,43,5,196,0,0,5,164,0,0,193,81,5,43,5,210,0,0,193,82,5,43,5,156,0,0,193,82,5,43,5,196,0,0,193,82,5,43,5,136,0,0,5,156,0,0,193,82,5,43,5,144,0,0,5,156,0,0,193,82,5,43,5,196,0,0,5,156,0,0,193,83,5,43,5,156,0,0,193,83,5,43,5,196,0,0,193,83,5,43,5,210,0,0,193,83,5,43,5,204,0,0,193,84,5,43,5,198,0,0,193,84,5,43,5,208,0,0,193,84,5,43,5,204,0,0,193,84,5,43,5,154,0,0,5,136,0,0,193,84,5,43,5,164,0,0,5,150,0,0,193,85,5,43,5,154,0,0,193,85,5,43,5,196,0,0,193,86,5,43,5,138,0,0,193,86,5,43,5,136,0,0,193,86,5,43,5,150,0,0,193,86,5,43,5,156,0,0,193,86,5,43,5,196,0,0,193,87,5,43,5,156,0,0,193,87,5,43,5,150,0,0,193,88,5,43,5,156,0,0,193,89,5,43,5,142,0,0,193,89,5,43,5,196,0,0,193,89,5,43,5,210,0,0,193,71,5,43,5,210,0,0,193,83,5,43,5,150,0,0,193,86,5,43,5,146,0,0,193,88,5,43,5,146,0,0,193,64,5,43,5,196,0,0,193,64,5,43,5,182,0,0,193,64,5,43,5,142,0,0,5,136,0,0,193,64,5,43,5,142,0,0,5,138,0,0,193,64,5,43,5,142,0,0,5,182,0,0,193,64,5,43,5,142,0,0,5,154,0,0,193,64,5,43,5,196,0,0,5,142,0,0,193,64,5,43,5,140,0,0,5,136,0,0,193,64,5,43,5,140,0,0,5,138,0,0,193,64,5,43,5,140,0,0,5,182,0,0,193,64,5,43,5,140,0,0,5,154,0,0,193,64,5,43,5,196,0,0,5,140,0,0,193,68,5,43,5,196,0,0,193,68,5,43,5,182,0,0,193,68,5,43,5,154,0,0,193,68,5,43,5,142,0,0,5,136,0,0,193,68,5,43,5,142,0,0,5,138,0,0,193,68,5,43,5,142,0,0,5,182,0,0,193,68,5,43,5,142,0,0,5,154,0,0,193,68,5,43,5,196,0,0,5,142,0,0,193,72,5,43,5,182,0,0,193,72,5,43,5,196,0,0,193,78,5,43,5,196,0,0,193,78,5,43,5,182,0,0,193,78,5,43,5,142,0,0,5,136,0,0,193,78,5,43,5,142,0,0,5,138,0,0,193,78,5,43,5,142,0,0,5,182,0,0,193,78,5,43,5,142,0,0,5,154,0,0,193,78,5,43,5,196,0,0,5,142,0,0,193,78,5,43,5,190,0,0,5,136,0,0,193,78,5,43,5,190,0,0,5,138,0,0,193,78,5,43,5,190,0,0,5,182,0,0,193,78,5,43,5,190,0,0,5,154,0,0,193,78,5,43,5,190,0,0,5,196,0,0,193,84,5,43,5,196,0,0,193,84,5,43,5,182,0,0,193,84,5,43,5,190,0,0,5,136,0,0,193,84,5,43,5,190,0,0,5,138,0,0,193,84,5,43,5,190,0,0,5,182,0,0,193,84,5,43,5,190,0,0,5,154,0,0,193,84,5,43,5,190,0,0,5,196,0,0,193,88,5,43,5,138,0,0,193,88,5,43,5,196,0,0,193,88,5,43,5,182,0,0,193,88,5,43,5,154,0,0,193,28,5,43,5,158,0,0,193,27,5,43,5,158,0,0,193,29,5,43,5,158,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,193,15,5,43,193,16,5,43,193,17,5,43,193,18,5,43,193,19,5,43,193,20,5,43,193,21,5,43,193,22,5,43,193,23,5,43,193,24,5,43,26,0,198,226,48,0,4,3,26,192,198,227,23,0,197,130,48,0,4,3,23,192,197,131,3,0,69,0,52,0,61,0,71,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,142,15,0,32,1,0,32,0,147,15,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,72,9,0,32,7,0,0,0,21,0,0,0,74,9,0,0,74,9,0,0,3,0,0,0,0,0,0,0,48,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,48,220,38,0,67,0,60,0,9,1,60,0,60,0,60,0,8,1,38,0,71,0,60,0,29,1,60,0,60,0,60,0,28,1,38,0,72,0,60,0,37,1,60,0,60,0,60,0,36,1,38,0,74,0,60,0,53,1,60,0,60,0,60,0,52,1,38,0,83,0,60,0,93,1,60,0,60,0,60,0,92,1,38,0,85,0,60,0,109,1,60,0,60,0,60,0,108,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,50,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,28,0,0,164,28,0,0,164,28,0,0,164,28,0,0,0,30,0,0,0,30,0,0,10,32,0,0,10,32,0,0,26,36,0,0,50,105,114,84,1,0,64,8,189,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,107,0,115,0,48,0,56,0,120,0,128,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,151,0,48,0,159,0,165,0,48,0,48,0,172,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,144,0,48,0,48,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,172,1,192,0,224,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,9,0,202,193,9,0,202,226,9,0,202,3,10,0,202,36,10,0,202,69,10,0,202,102,10,0,202,135,10,0,202,168,10,0,202,201,10,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,201,134,1,0,156,5,0,58,201,70,2,0,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,3,0,156,5,0,80,201,230,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,4,0,5,5,0,48,5,5,0,50,5,5,0,52,201,134,5,0,201,70,6,0,5,5,0,58,201,6,7,0,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,7,0,5,5,0,80,201,166,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,8,0,201,134,9,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,9,0,201,38,10,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,201,166,11,0,134,5,2,57,5,5,2,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,61,5,5,2,61,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,201,102,12,0,201,38,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,13,0,201,166,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,15,0,201,38,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,16,0,201,166,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,18,0,201,38,19,0,192,0,0,0,192,0,0,0,201,230,19,0,201,166,20,0,201,102,21,0,201,38,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,22,0,201,166,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,24,0,201,38,25,0,201,230,25,0,201,166,26,0,201,102,27,0,201,38,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,29,0,201,102,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,31,0,201,230,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,134,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,134,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,5,5,2,57,5,210,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,2,3,2,239,134,5,0,54,156,5,48,0,2,3,2,247,134,5,0,56,156,5,48,0,2,3,2,249,134,5,0,60,156,5,48,0,2,3,2,253,134,5,0,78,156,5,48,0,2,3,255,255,2,79,134,5,0,82,156,5,48,0,6,3,255,255,2,83,134,5,0,46,5,5,48,0,2,3,2,239,5,5,0,54,5,5,48,0,2,3,2,247,5,5,0,56,5,5,48,0,2,3,2,249,5,5,0,60,5,5,48,0,2,3,2,253,5,5,0,78,5,5,48,0,2,3,255,255,2,79,5,5,0,82,5,5,48,0,6,3,255,255,2,83,5,5,156,46,196,160,48,0,2,3,197,162,5,46,196,160,48,0,2,3,0,192,197,98,156,54,196,160,48,0,2,3,0,192,197,162,5,54,196,160,48,0,2,3,0,192,197,226,156,78,196,160,48,0,2,3,1,192,197,34,5,78,196,160,48,0,2,3,1,192,197,98,156,82,196,162,48,0,6,3,1,192,197,162,5,82,196,162,48,0,6,3,1,192,197,226,156,82,196,190,48,0,6,3,2,192,197,34,5,82,196,190,48,0,6,3,2,192,197,98,156,78,196,202,48,0,2,3,2,192,197,162,5,78,196,202,48,0,2,3,2,192,197,226,156,56,196,196,48,0,2,3,3,192,197,34,5,56,196,196,48,0,2,3,3,192,197,98,156,56,196,160,48,0,2,3,3,192,197,162,5,56,196,160,48,0,2,3,3,192,197,226,156,56,196,206,48,0,2,3,4,192,197,34,5,56,196,206,48,0,2,3,4,192,197,98,156,78,196,196,48,0,2,3,4,192,197,162,5,78,196,196,48,0,2,3,4,192,197,226,156,82,196,198,48,0,6,3,5,192,197,34,5,82,196,198,48,0,6,3,5,192,197,98,156,82,196,208,48,0,6,3,5,192,197,162,5,82,196,208,48,0,6,3,5,192,197,226,156,82,196,204,48,0,6,3,6,192,197,34,5,82,196,204,48,0,6,3,6,192,197,98,5,56,196,210,48,0,2,3,6,192,197,162,156,82,196,196,48,0,6,3,6,192,197,226,5,82,196,196,48,0,6,3,7,192,197,34,7,0,197,99,48,0,6,3,7,192,197,195,8,0,197,35,48,0,6,3,8,192,197,131,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,30,4,186,100,32,4,185,116,185,120,185,124,186,128,185,136,185,140,185,144,185,152,34,4,185,164,36,4,185,180,185,184,185,188,185,192,185,196,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,40,4,42,4,168,100,44,4,168,116,168,120,168,124,168,128,168,136,168,140,168,144,168,152,46,4,168,164,48,4,168,180,168,184,168,188,168,192,168,196,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,50,4,186,77,154,77,250,77,90,78,186,101,154,101,250,101,90,102,217,72,154,130,185,137,153,137,249,137,153,138,89,138,136,14,217,138,185,173,153,173,249,173,89,174,153,193,185,200,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,52,4,168,77,136,77,232,77,72,78,168,101,136,101,232,101,72,102,200,72,136,130,168,137,136,137,232,137,136,138,72,138,128,14,200,138,168,173,136,173,232,173,72,174,136,193,168,200,72,194,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,185,68,168,68,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,185,88,168,88,217,85,200,85,185,86,168,86,54,4,56,4,185,96,168,96,89,95,72,95,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,185,112,168,112,249,118,232,118,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,185,160,168,160,58,4,60,4,26,158,8,158,249,166,232,166,25,166,8,166,185,168,168,168,153,174,136,174,57,175,40,175,185,176,168,176,57,174,40,174,121,174,104,174,62,4,64,4,249,185,232,185,249,193,232,193,89,194,153,197,136,197,185,198,168,198,25,198,8,198,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,156,169,156,200,56,169,76,187,100,187,108,169,100,169,108,169,204,169,128,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,92,255,5,186,108,255,5,186,156,255,5,185,172,255,5,168,64,255,5,168,84,255,5,168,92,255,5,168,108,255,5,168,156,255,5,168,172,255,5,249,66,255,5,232,66,255,5,249,86,255,5,232,86,255,5,250,158,255,5,232,158,255,5,25,175,255,5,8,175,255,1,170,170,3,0,69,0,52,0,61,0,51,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,65,9,0,32,1,0,32,0,70,9,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,6,25,0,32,7,0,0,0,26,0,0,0,8,25,0,0,8,25,0,0,3,0,0,0,0,0,0,0,66,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,116,114,97,100,105,116,105,111,110,97,108,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,78,0,60,0,110,0,3,3,60,0,60,0,60,0,78,0,3,3,0,0,38,0,78,0,60,0,110,0,3,3,60,0,60,0,60,0,78,0,3,3,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,108,0,60,0,108,0,108,0,60,0,60,0,60,0,76,0,108,0,60,0,60,0,60,0,76,0,76,0,0,0,170,170,170,170,212,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,77,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,32,0,0,148,32,0,0,148,32,0,0,148,32,0,0,252,34,0,0,252,34,0,0,188,35,0,0,188,35,0,0,188,35,0,0,50,105,114,84,1,0,64,8,252,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,84,0,92,0,98,0,106,0,114,0,122,0,48,0,56,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,154,0,48,0,48,0,48,0,162,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,170,0,48,0,48,0,178,0,48,0,184,0,192,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,195,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,144,0,48,0,48,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,229,0,48,0,48,0,235,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,1,136,1,200,1,192,0,228,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,18,0,202,33,18,0,202,66,18,0,202,99,18,0,202,132,18,0,202,165,18,0,202,198,18,0,202,231,18,0,202,8,19,0,202,41,19,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,198,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,166,1,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,8,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,9,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,2,0,201,38,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,3,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,5,0,5,71,238,102,201,166,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,197,226,2,0,197,35,3,0,197,130,3,0,192,0,0,0,192,0,0,0,197,194,3,0,197,3,4,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,7,0,201,70,8,0,201,6,9,0,201,198,9,0,201,134,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,0,0,5,5,10,121,5,5,12,121,197,226,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,197,162,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,1,0,5,5,107,121,197,34,2,0,5,5,111,121,197,98,2,0,5,5,115,121,197,162,2,0,5,5,119,121,197,226,2,0,197,35,3,0,197,130,3,0,5,5,127,121,5,5,129,121,197,194,3,0,197,3,4,0,197,98,4,0,5,5,137,121,5,5,139,121,197,162,4,0,5,5,143,121,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,68,196,196,48,0,3,3,7,192,197,98,5,68,196,196,48,0,3,3,7,192,197,162,156,68,196,210,48,0,3,3,7,192,197,226,5,68,196,210,48,0,3,3,8,192,197,34,156,68,196,204,48,0,3,3,8,192,197,98,5,68,196,204,48,0,3,3,8,192,197,162,3,0,67,0,50,0,59,0,67,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,186,29,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,88,25,0,0,88,25,0,0,210,25,0,0,210,25,0,0,162,29,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,2,0,202,1,3,0,202,34,3,0,202,67,3,0,202,100,3,0,202,133,3,0,202,166,3,0,202,199,3,0,202,232,3,0,202,9,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,6,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,230,0,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,2,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,2,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,201,102,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,3,0,201,230,3,0,201,166,4,0,201,102,5,0,201,38,6,0,201,230,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,156,68,196,196,48,0,3,3,0,192,197,162,5,68,196,196,48,0,3,3,0,192,197,226,156,68,196,210,48,0,3,3,1,192,197,34,5,68,196,210,48,0,3,3,1,192,197,98,156,68,196,204,48,0,3,3,1,192,197,162,5,68,196,204,48,0,3,3,1,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,124,185,128,185,132,185,140,186,144,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,28,4,168,124,168,128,168,132,168,140,168,144,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,136,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,30,4,32,4,26,114,8,114,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,250,146,232,146,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,144,169,144,200,56,169,72,187,88,187,96,169,88,169,96,169,184,169,112,217,124,187,72,200,124,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,255,5,168,112,255,5,250,114,255,5,232,114,255,1,170,170,3,0,67,0,50,0,59,0,63,9,0,16,28,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,14,33,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,196,26,0,0,196,26,0,0,168,28,0,0,206,28,0,0,246,32,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,14,0,202,97,14,0,202,130,14,0,202,163,14,0,202,196,14,0,202,229,14,0,202,6,15,0,202,39,15,0,202,72,15,0,202,105,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,96,7,0,156,5,0,66,201,198,14,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,160,15,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,160,19,0,5,5,0,66,201,102,23,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,13,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,14,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,24,0,201,6,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,25,0,201,134,26,0,201,70,27,0,201,6,28,0,201,198,28,0,201,134,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,5,196,0,0,70,5,2,47,5,196,0,0,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,135,5,2,65,5,136,0,0,70,5,2,65,5,136,0,0,135,5,2,65,5,160,0,0,70,5,2,65,5,160,0,0,135,5,2,65,5,144,0,0,70,5,2,65,5,144,0,0,135,5,2,65,5,196,0,0,70,5,2,65,5,196,0,0,135,5,2,65,5,196,0,0,5,164,0,0,70,5,2,65,5,196,0,0,5,164,0,0,135,5,2,65,5,210,0,0,70,5,2,65,5,210,0,0,135,5,2,65,5,204,0,0,70,5,2,65,5,204,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,5,196,0,0,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,5,5,2,65,5,136,0,0,5,5,2,65,5,160,0,0,5,5,2,65,5,144,0,0,5,5,2,65,5,196,0,0,5,5,2,65,5,196,0,0,5,164,0,0,5,5,2,65,5,210,0,0,5,5,2,65,5,204,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,239,135,5,104,0,2,239,70,5,36,1,197,162,37,1,0,192,197,98,0,64,156,5,15,0,54,30,26,0,58,30,12,0,58,30,6,192,197,162,59,30,6,192,197,226,60,30,7,192,197,34,61,30,7,192,197,98,54,30,5,192,197,98,55,30,5,192,197,162,56,30,5,192,197,227,57,30,6,192,197,67,59,1,12,0,59,1,4,192,197,98,60,1,4,192,197,162,61,1,4,192,197,226,62,1,5,192,197,34,76,0,255,255,2,65,135,5,108,0,255,255,2,65,70,5,57,1,3,192,197,226,58,1,4,192,197,34,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,46,5,5,8,0,37,30,15,0,37,30,8,192,197,98,39,30,8,192,197,162,41,30,8,192,197,226,43,30,9,192,197,34,150,30,9,192,197,98,104,0,2,239,5,5,37,1,7,192,197,162,31,2,7,192,197,226,35,30,8,192,197,34,0,64,5,5,7,0,55,30,12,0,55,30,10,192,197,98,57,30,10,192,197,163,59,30,11,192,197,2,61,30,11,192,197,66,108,0,255,255,2,65,5,5,58,1,9,192,197,162,60,1,9,192,197,226,62,1,10,192,197,34,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,11,192,197,130,5,68,196,160,48,0,3,3,11,192,197,194,156,68,196,196,48,0,3,3,12,192,197,2,5,68,196,196,48,0,3,3,12,192,197,66,156,68,196,210,48,0,3,3,12,192,197,130,5,68,196,210,48,0,3,3,12,192,197,194,156,68,196,204,48,0,3,3,13,192,197,2,5,68,196,204,48,0,3,3,13,192,197,66,18,0,72,0,73,0,104,0,105,0,108,0,109,0,36,1,38,1,57,1,63,1,30,2,32,2,34,30,44,30,54,30,62,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,185,84,185,88,186,92,186,100,185,104,36,4,185,116,54,4,185,132,185,136,185,140,185,148,186,152,185,156,185,164,185,168,185,172,185,176,185,180,185,184,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,56,4,168,72,168,76,168,80,168,84,168,88,168,92,168,100,168,104,62,4,168,116,72,4,168,132,168,136,168,140,168,148,168,152,168,156,168,164,168,168,168,172,168,176,168,180,168,184,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,185,124,185,133,153,133,249,133,153,134,89,134,136,14,217,134,185,165,153,165,249,165,89,166,153,181,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,168,124,168,133,136,133,232,133,136,134,72,134,128,14,200,134,168,165,136,165,232,165,72,166,136,181,168,188,72,182,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,144,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,121,136,121,74,4,76,4,26,122,8,122,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,250,154,232,154,26,154,8,154,249,158,232,158,25,158,8,158,185,160,168,160,153,166,136,166,57,167,40,167,217,165,200,165,57,166,40,166,121,166,104,166,25,167,8,167,249,173,232,173,249,181,232,181,89,182,153,185,136,185,185,186,168,186,25,186,8,186,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,92,187,100,169,92,169,100,169,192,169,120,217,132,187,76,200,132,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,68,104,4,177,68,36,5,250,69,37,5,241,69,255,5,185,108,76,4,186,112,108,4,177,112,57,5,154,113,58,5,145,113,59,5,250,114,60,5,241,114,61,5,26,114,62,5,17,114,255,5,186,120,255,5,168,64,104,4,168,68,37,5,232,69,255,5,168,108,108,4,168,112,58,5,136,113,60,5,232,114,62,5,8,114,255,5,168,120,255,5,250,122,255,5,232,122,255,1,170,170,3,0,67,0,50,0,59,0,183,16,0,16,39,0,0,96,1,0,0,96,3,0,43,0,82,0,91,0,57,9,0,32,175,16,0,32,252,24,0,32,1,0,32,0,1,25,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,21,0,0,32,7,0,0,0,13,0,0,0,23,0,0,0,23,0,0,0,1,0,0,0,0,0,0,0,21,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,170,0,0,116,0,114,0,97,0,100,0,105,0,116,0,105,0,111,0,110,0,97,0,108,0,0,0,1,0,43,0,1,0,1,0,32,0,13,0,0,80,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,73,10,0,32,7,0,0,0,21,0,0,0,75,10,0,0,75,10,0,0,3,0,0,0,0,0,0,0,57,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,66,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,84,0,60,0,97,1,60,0,60,0,60,0,96,1,60,0,122,0,60,0,60,0,60,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,88,0,60,0,245,0,60,0,60,0,60,0,213,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,252,0,60,0,60,0,60,0,220,0,0,0,170,170,170,170,170,170,170,170,22,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,30,0,0,116,30,0,0,116,30,0,0,116,30,0,0,96,33,0,0,96,33,0,0,254,35,0,0,254,35,0,0,254,39,0,0,50,105,114,84,1,0,64,8,218,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,105,0,113,0,118,0,126,0,129,0,137,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,161,0,48,0,166,0,174,0,180,0,188,0,193,0,201,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,153,0,48,0,48,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,164,1,216,1,4,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,22,0,202,65,22,0,202,98,22,0,202,131,22,0,202,164,22,0,202,197,22,0,202,230,22,0,202,7,23,0,202,40,23,0,202,73,23,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,0,0,156,5,0,72,160,5,0,74,156,5,0,76,201,70,2,0,156,5,0,80,201,38,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,4,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,5,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,6,0,5,5,0,72,5,5,0,74,5,5,0,76,201,102,7,0,5,5,0,80,201,70,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,134,9,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,14,87,196,146,156,42,197,98,21,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,134,5,13,87,134,5,15,87,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,16,87,196,136,156,90,160,5,38,93,197,162,21,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,14,87,196,146,5,42,197,226,21,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,5,5,13,87,5,5,15,87,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,16,87,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,134,5,37,79,5,5,37,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,6,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,197,34,0,0,197,98,0,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,192,0,0,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,198,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,20,0,201,166,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,8,0,197,98,8,0,197,162,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,22,0,201,38,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,13,0,197,98,13,0,201,230,29,0,201,166,30,0,201,102,31,0,201,38,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,34,0,201,134,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,3,0,197,162,3,0,201,166,36,0,201,198,37,0,201,230,38,0,201,166,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,40,0,201,38,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,16,87,5,136,0,0,5,5,16,87,5,136,0,0,134,5,14,87,5,162,0,0,5,5,14,87,5,162,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,5,16,87,5,162,0,0,5,5,16,87,5,162,0,0,134,5,36,79,5,136,0,0,5,5,36,79,5,136,0,0,134,5,36,79,5,156,0,0,5,5,36,79,5,156,0,0,134,5,13,87,5,190,0,0,134,5,15,87,5,190,0,0,5,5,13,87,5,190,0,0,5,5,15,87,5,190,0,0,134,5,16,87,5,190,0,0,5,5,16,87,5,190,0,0,134,5,16,87,5,164,0,0,5,5,16,87,5,164,0,0,134,5,16,87,5,144,0,0,5,5,16,87,5,144,0,0,134,5,16,87,5,138,0,0,5,5,16,87,5,138,0,0,134,5,14,87,5,164,0,0,5,5,14,87,5,164,0,0,134,5,13,87,5,162,0,0,134,5,15,87,5,162,0,0,5,5,13,87,5,162,0,0,5,5,15,87,5,162,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,134,5,15,87,5,164,0,0,5,5,15,87,5,164,0,0,134,5,13,87,5,164,0,0,5,5,13,87,5,164,0,0,134,5,14,87,5,200,0,0,5,5,14,87,5,200,0,0,134,5,13,87,5,136,0,0,5,5,13,87,5,136,0,0,134,5,13,87,5,150,0,0,5,5,13,87,5,150,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,5,16,87,5,198,0,0,5,5,16,87,5,198,0,0,134,5,16,87,5,208,0,0,5,5,16,87,5,208,0,0,134,5,16,87,5,204,0,0,5,5,16,87,5,204,0,0,134,5,36,79,5,142,0,0,5,5,36,79,5,142,0,0,134,5,36,79,5,196,0,0,134,5,37,79,5,196,0,0,5,5,36,79,5,196,0,0,5,5,37,79,5,196,0,0,134,5,36,79,5,210,0,0,134,5,37,79,5,210,0,0,5,5,36,79,5,210,0,0,5,5,37,79,5,210,0,0,134,5,14,87,5,196,0,0,5,5,14,87,5,196,0,0,134,5,13,87,5,196,0,0,134,5,15,87,5,196,0,0,5,5,13,87,5,196,0,0,5,5,15,87,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,13,87,5,190,0,0,5,196,0,0,134,5,15,87,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,13,87,5,190,0,0,5,196,0,0,5,5,15,87,5,190,0,0,5,196,0,0,134,5,16,87,5,196,0,0,5,5,16,87,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,16,87,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,16,87,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,255,255,14,87,134,5,0,70,156,5,1,0,3,3,255,255,13,87,134,5,8,3,255,255,15,87,134,5,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,82,156,5,1,0,8,3,255,255,16,87,134,5,68,3,197,162,36,79,134,5,48,0,12,3,255,255,37,79,134,5,0,42,5,5,48,0,8,3,255,255,14,87,5,5,0,70,5,5,1,0,3,3,255,255,13,87,5,5,8,3,255,255,15,87,5,5,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,82,5,5,1,0,8,3,255,255,16,87,5,5,68,3,0,192,197,98,36,79,5,5,48,0,12,3,255,255,37,79,5,5,156,42,196,162,48,0,8,3,0,192,197,162,5,42,196,162,48,0,8,3,0,192,197,226,156,78,196,160,48,0,12,3,1,192,197,34,5,78,196,160,48,0,12,3,1,192,197,98,156,82,196,162,48,0,8,3,1,192,197,162,5,82,196,162,48,0,8,3,1,192,197,226,156,70,196,190,1,0,3,3,3,192,197,34,8,3,3,192,197,98,5,70,196,190,1,0,3,3,3,192,197,162,8,3,3,192,197,226,156,82,196,190,48,0,8,3,4,192,197,34,5,82,196,190,48,0,8,3,4,192,197,98,156,70,196,162,1,0,3,3,6,192,197,162,8,3,6,192,197,226,5,70,196,162,1,0,3,3,7,192,197,34,8,3,7,192,197,98,156,78,196,202,48,0,12,3,7,192,197,162,5,78,196,202,48,0,12,3,7,192,197,226,156,42,196,200,48,0,8,3,9,192,197,34,5,42,196,200,48,0,8,3,9,192,197,98,156,78,196,196,48,0,12,3,10,192,197,162,5,78,196,196,48,0,12,3,10,192,197,226,156,82,196,198,48,0,8,3,11,192,197,162,5,82,196,198,48,0,8,3,11,192,197,226,156,82,196,208,48,0,8,3,12,192,197,34,5,82,196,208,48,0,8,3,12,192,197,98,156,82,196,204,48,0,8,3,12,192,197,162,5,82,196,204,48,0,8,3,12,192,197,226,13,0,197,162,48,0,12,3,13,192,197,226,14,0,197,34,48,0,12,3,14,192,197,98,14,0,197,162,48,0,12,3,14,192,197,226,15,0,197,34,48,0,12,3,15,192,197,98,156,42,196,196,48,0,8,3,15,192,197,162,5,42,196,196,48,0,8,3,15,192,197,226,156,70,196,196,1,0,3,3,16,192,197,34,8,3,16,192,197,98,5,70,196,196,1,0,3,3,16,192,197,162,8,3,16,192,197,226,17,0,197,35,1,0,3,3,17,192,197,131,8,3,17,192,197,227,18,0,197,67,1,0,3,3,18,192,197,163,8,3,19,192,197,3,156,82,196,196,48,0,8,3,19,192,197,98,5,82,196,196,48,0,8,3,19,192,197,162,19,0,197,227,48,0,8,3,20,192,197,67,20,0,197,163,48,0,8,3,21,192,197,3,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,28,4,185,124,185,128,185,136,30,4,185,156,32,4,185,168,185,172,185,192,185,196,34,4,88,13,168,13,96,13,56,14,80,12,40,14,36,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,38,4,168,124,168,128,168,136,40,4,168,156,42,4,168,168,168,172,168,192,168,196,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,180,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,185,176,185,184,136,14,217,122,185,165,153,165,249,165,185,188,153,197,185,200,2,8,168,57,136,57,232,57,136,58,168,180,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,168,176,168,184,128,14,200,122,168,165,136,165,232,165,168,188,136,197,168,200,72,198,57,59,40,59,217,57,200,57,46,4,48,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,50,4,52,4,185,144,168,144,249,158,232,158,25,158,8,158,185,160,168,160,153,166,136,166,57,167,40,167,217,165,200,165,57,166,40,166,121,166,104,166,54,4,56,4,249,173,232,173,249,197,232,197,89,198,153,149,136,149,185,150,168,150,185,152,168,152,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,204,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,120,255,5,186,140,255,5,185,164,255,5,185,148,255,5,168,56,255,5,168,120,255,5,168,140,255,5,168,164,255,5,168,148,255,5,25,59,255,5,8,59,255,5,250,142,255,5,232,142,255,5,25,167,255,5,8,167,255,1,170,170,3,0,69,0,52,0,61,0,59,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,66,10,0,32,1,0,32,0,71,10,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,185,7,0,32,7,0,0,0,21,0,0,0,187,7,0,0,187,7,0,0,3,0,0,0,0,0,0,0,96,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,143,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,78,6,60,0,60,0,80,6,60,0,60,0,79,6,60,0,60,0,75,6,60,0,60,0,77,6,60,0,60,0,76,6,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,39,6,60,0,34,6,38,0,39,6,60,0,60,0,113,6,60,0,33,6,60,0,60,0,35,6,60,0,60,0,114,6,60,0,60,0,37,6,60,0,60,0,115,6,60,0,60,0,36,6,60,0,60,0,204,6,84,6,60,0,60,0,60,0,73,6,84,6,60,0,60,0,60,0,38,6,38,0,169,6,60,0,60,0,42,0,170,6,171,6,67,6,172,6,173,6,174,6,38,0,207,6,60,0,71,6,60,0,60,0,213,6,60,0,60,0,193,6,60,0,60,0,41,6,60,0,60,0,195,6,60,0,60,0,192,6,60,0,60,0,190,6,38,0,204,6,60,0,60,0,42,0,73,6,210,6,74,6,208,6,209,6,205,6,206,6,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,54,29,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,48,28,0,0,48,28,0,0,112,28,0,0,112,28,0,0,188,28,0,0,188,28,0,0,30,29,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,166,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,109,0,117,0,125,0,133,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,149,0,48,0,48,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,180,1,244,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,102,5,5,25,102,5,70,27,102,5,74,27,102,5,72,27,102,7,75,27,102,201,6,0,0,192,0,0,0,198,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,184,102,192,0,0,0,192,0,0,0,192,0,0,0,193,24,234,102,201,230,1,0,201,198,2,0,201,166,3,0,194,5,210,230,194,5,212,230,194,5,211,230,192,0,0,0,194,5,209,230,194,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,27,102,5,73,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,184,102,5,71,184,102,5,73,184,102,5,74,184,102,5,75,184,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,198,65,0,0,198,97,0,0,198,130,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,4,0,5,75,240,102,5,76,240,102,192,0,0,0,5,73,240,102,5,74,240,102,5,71,240,102,197,34,0,0,192,0,0,0,201,102,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,72,0,24,234,102,0,5,0,75,0,24,234,102,0,5,0,74,0,24,234,102,0,5,0,71,0,24,234,102,0,5,0,71,0,24,234,102,0,5,128,232,0,0,0,0,0,5,0,73,0,24,234,102,0,5,0,70,0,24,234,102,0,0,0,0,5,71,240,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,25,102,5,5,84,6,255,255,27,102,5,70,85,6,255,255,27,102,5,72,222,102,5,5,48,0,84,6,255,255,27,102,5,74,240,102,5,70,48,0,84,6,255,255,27,102,6,75,240,102,5,72,48,0,84,6,255,255,27,102,7,75,240,102,5,5,48,0,84,6,255,255,27,102,5,75,0,0,198,225,48,0,84,6,0,192,198,65,170,170,3,0,69,0,52,0,61,0,99,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,178,7,0,32,1,0,32,0,183,7,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,128,8,0,32,7,0,0,0,21,0,0,0,130,8,0,0,130,8,0,0,3,0,0,0,0,0,0,0,29,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,112,0,115,0,93,0,0,0,170,170,170,170,170,170,170,170,100,33,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,72,0,0,0,72,1,0,0,184,28,0,0,184,28,0,0,184,28,0,0,184,28,0,0,12,29,0,0,12,29,0,0,140,29,0,0,140,29,0,0,76,33,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,152,0,48,0,48,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,1,0,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,102,5,5,25,102,5,70,26,102,5,70,222,102,5,73,26,102,7,75,240,102,201,6,0,0,192,0,0,0,5,73,214,102,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,71,184,102,192,0,0,0,192,0,0,0,192,0,0,0,201,198,2,0,201,166,3,0,201,134,4,0,201,102,5,0,194,5,210,230,194,5,212,230,194,5,211,230,192,0,0,0,194,5,209,230,194,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,26,102,5,71,26,102,5,74,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,43,102,192,0,0,0,192,0,0,0,5,5,43,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,102,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,102,192,0,0,0,192,0,0,0,5,70,85,102,5,5,85,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,111,102,192,0,0,0,5,5,111,102,192,0,0,0,192,0,0,0,5,5,129,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,184,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,188,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,210,102,192,0,0,0,192,0,0,0,5,72,214,102,192,0,0,0,6,5,214,102,5,71,214,102,197,34,0,0,5,74,214,102,192,0,0,0,192,0,0,0,192,0,0,0,5,71,222,102,192,0,0,0,5,72,222,102,192,0,0,0,192,0,0,0,201,70,6,0,5,74,240,102,192,0,0,0,192,0,0,0,5,73,240,102,192,0,0,0,5,71,240,102,197,98,0,0,192,0,0,0,201,38,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,4,5,71,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,71,214,102,194,5,128,232,5,71,240,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,25,102,5,5,84,6,255,255,26,102,5,70,85,6,255,255,26,102,5,73,72,102,5,5,48,0,84,6,255,255,59,102,5,70,214,102,5,5,48,0,84,6,255,255,214,102,7,5,222,102,5,5,48,0,84,6,255,255,222,102,5,70,240,102,5,70,48,0,84,6,255,255,240,102,6,75,240,102,5,72,48,0,84,6,255,255,240,102,7,75,240,102,5,5,48,0,84,6,255,255,240,102,5,75,214,102,5,70,48,0,84,6,255,255,214,102,6,5,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,1,0,1,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,121,8,0,32,1,0,32,0,126,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,27,11,0,32,7,0,0,0,24,0,0,0,31,11,0,0,31,11,0,0,3,0,0,0,0,0,0,0,134,2,0,0,37,37,80,97,114,101,110,116,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,170,170,170,0,0,52,0,50,0,0,0,114,0,111,0,111,0,116,0,0,0,239,223,208,4,38,0,58,216,0,221,60,0,58,216,0,221,58,216,68,221,38,0,58,216,0,221,58,216,68,221,61,0,58,216,0,221,58,216,0,221,38,0,58,216,34,221,60,0,58,216,34,221,58,216,68,221,38,0,58,216,34,221,58,216,68,221,61,0,58,216,34,221,58,216,34,221,38,0,58,216,1,221,60,0,58,216,1,221,58,216,70,221,38,0,58,216,1,221,58,216,70,221,61,0,58,216,1,221,58,216,1,221,38,0,58,216,35,221,60,0,58,216,35,221,58,216,70,221,38,0,58,216,35,221,58,216,70,221,61,0,58,216,35,221,58,216,35,221,38,0,58,216,2,221,60,0,58,216,2,221,58,216,70,221,38,0,58,216,2,221,58,216,70,221,61,0,58,216,2,221,58,216,2,221,38,0,58,216,36,221,60,0,58,216,36,221,58,216,70,221,38,0,58,216,36,221,58,216,70,221,61,0,58,216,36,221,58,216,36,221,38,0,58,216,3,221,60,0,58,216,3,221,58,216,70,221,38,0,58,216,3,221,58,216,70,221,61,0,58,216,3,221,58,216,3,221,38,0,58,216,37,221,60,0,58,216,37,221,58,216,70,221,38,0,58,216,37,221,58,216,70,221,61,0,58,216,37,221,58,216,37,221,38,0,58,216,4,221,60,0,58,216,4,221,58,216,70,221,38,0,58,216,4,221,58,216,70,221,61,0,58,216,4,221,58,216,4,221,38,0,58,216,38,221,60,0,58,216,38,221,58,216,70,221,38,0,58,216,38,221,58,216,70,221,61,0,58,216,38,221,58,216,38,221,38,0,58,216,5,221,60,0,58,216,5,221,58,216,70,221,38,0,58,216,5,221,58,216,70,221,61,0,58,216,5,221,58,216,5,221,38,0,58,216,39,221,60,0,58,216,39,221,58,216,70,221,38,0,58,216,39,221,58,216,70,221,61,0,58,216,39,221,58,216,39,221,38,0,58,216,6,221,60,0,58,216,6,221,58,216,70,221,38,0,58,216,6,221,58,216,70,221,61,0,58,216,6,221,58,216,6,221,38,0,58,216,40,221,60,0,58,216,40,221,58,216,70,221,38,0,58,216,40,221,58,216,70,221,61,0,58,216,40,221,58,216,40,221,38,0,58,216,7,221,60,0,58,216,7,221,58,216,70,221,38,0,58,216,7,221,58,216,70,221,61,0,58,216,7,221,58,216,7,221,38,0,58,216,41,221,60,0,58,216,41,221,58,216,70,221,38,0,58,216,41,221,58,216,70,221,61,0,58,216,41,221,58,216,41,221,38,0,58,216,8,221,60,0,58,216,8,221,58,216,70,221,38,0,58,216,8,221,58,216,70,221,61,0,58,216,8,221,58,216,8,221,38,0,58,216,42,221,60,0,58,216,42,221,58,216,70,221,38,0,58,216,42,221,58,216,70,221,61,0,58,216,42,221,58,216,42,221,38,0,58,216,10,221,60,0,58,216,10,221,58,216,70,221,38,0,58,216,10,221,58,216,70,221,61,0,58,216,10,221,58,216,10,221,38,0,58,216,44,221,60,0,58,216,44,221,58,216,70,221,38,0,58,216,44,221,58,216,70,221,61,0,58,216,44,221,58,216,44,221,38,0,58,216,13,221,60,0,58,216,13,221,58,216,70,221,38,0,58,216,13,221,58,216,70,221,61,0,58,216,13,221,58,216,13,221,38,0,58,216,47,221,60,0,58,216,47,221,58,216,70,221,38,0,58,216,47,221,58,216,70,221,61,0,58,216,47,221,58,216,47,221,38,0,58,216,14,221,60,0,58,216,14,221,58,216,70,221,38,0,58,216,14,221,58,216,70,221,61,0,58,216,14,221,58,216,14,221,38,0,58,216,48,221,60,0,58,216,48,221,58,216,70,221,38,0,58,216,48,221,58,216,70,221,61,0,58,216,48,221,58,216,48,221,38,0,58,216,15,221,60,0,58,216,15,221,58,216,70,221,38,0,58,216,15,221,58,216,70,221,61,0,58,216,15,221,58,216,15,221,38,0,58,216,49,221,60,0,58,216,49,221,58,216,70,221,38,0,58,216,49,221,58,216,70,221,61,0,58,216,49,221,58,216,49,221,38,0,58,216,16,221,60,0,58,216,16,221,58,216,70,221,38,0,58,216,16,221,58,216,70,221,61,0,58,216,16,221,58,216,16,221,38,0,58,216,50,221,60,0,58,216,50,221,58,216,70,221,38,0,58,216,50,221,58,216,70,221,61,0,58,216,50,221,58,216,50,221,38,0,58,216,17,221,60,0,58,216,17,221,58,216,70,221,38,0,58,216,17,221,58,216,70,221,61,0,58,216,17,221,58,216,17,221,38,0,58,216,51,221,60,0,58,216,51,221,58,216,70,221,38,0,58,216,51,221,58,216,70,221,61,0,58,216,51,221,58,216,51,221,38,0,58,216,18,221,60,0,58,216,18,221,58,216,70,221,38,0,58,216,18,221,58,216,70,221,61,0,58,216,18,221,58,216,18,221,38,0,58,216,52,221,60,0,58,216,52,221,58,216,70,221,38,0,58,216,52,221,58,216,70,221,61,0,58,216,52,221,58,216,52,221,38,0,58,216,20,221,60,0,58,216,20,221,58,216,70,221,38,0,58,216,20,221,58,216,70,221,61,0,58,216,20,221,58,216,20,221,38,0,58,216,54,221,60,0,58,216,54,221,58,216,70,221,38,0,58,216,54,221,58,216,70,221,61,0,58,216,54,221,58,216,54,221,38,0,58,216,21,221,60,0,58,216,21,221,58,216,70,221,38,0,58,216,21,221,58,216,70,221,61,0,58,216,21,221,58,216,21,221,38,0,58,216,55,221,60,0,58,216,55,221,58,216,70,221,38,0,58,216,55,221,58,216,70,221,61,0,58,216,55,221,58,216,55,221,38,0,58,216,22,221,60,0,58,216,22,221,58,216,70,221,38,0,58,216,22,221,58,216,70,221,61,0,58,216,22,221,58,216,22,221,38,0,58,216,56,221,60,0,58,216,56,221,58,216,70,221,38,0,58,216,56,221,58,216,70,221,61,0,58,216,56,221,58,216,56,221,38,0,58,216,23,221,60,0,58,216,23,221,58,216,70,221,38,0,58,216,23,221,58,216,70,221,61,0,58,216,23,221,58,216,23,221,38,0,58,216,57,221,60,0,58,216,57,221,58,216,70,221,38,0,58,216,57,221,58,216,70,221,61,0,58,216,57,221,58,216,57,221,38,0,58,216,24,221,60,0,58,216,24,221,58,216,70,221,38,0,58,216,24,221,58,216,70,221,61,0,58,216,24,221,58,216,24,221,38,0,58,216,58,221,60,0,58,216,58,221,58,216,70,221,38,0,58,216,58,221,58,216,70,221,61,0,58,216,58,221,58,216,58,221,38,0,58,216,25,221,60,0,58,216,25,221,58,216,70,221,38,0,58,216,25,221,58,216,70,221,61,0,58,216,25,221,58,216,25,221,38,0,58,216,59,221,60,0,58,216,59,221,58,216,70,221,38,0,58,216,59,221,58,216,70,221,61,0,58,216,59,221,58,216,59,221,38,0,58,216,26,221,60,0,58,216,26,221,58,216,70,221,38,0,58,216,26,221,58,216,70,221,61,0,58,216,26,221,58,216,26,221,38,0,58,216,60,221,60,0,58,216,60,221,58,216,70,221,38,0,58,216,60,221,58,216,70,221,61,0,58,216,60,221,58,216,60,221,38,0,58,216,27,221,60,0,58,216,27,221,58,216,70,221,38,0,58,216,27,221,58,216,70,221,61,0,58,216,27,221,58,216,27,221,38,0,58,216,61,221,60,0,58,216,61,221,58,216,70,221,38,0,58,216,61,221,58,216,70,221,61,0,58,216,61,221,58,216,61,221,38,0,58,216,28,221,60,0,58,216,28,221,58,216,70,221,38,0,58,216,28,221,58,216,70,221,61,0,58,216,28,221,58,216,28,221,38,0,58,216,62,221,60,0,58,216,62,221,58,216,70,221,38,0,58,216,62,221,58,216,70,221,61,0,58,216,62,221,58,216,62,221,38,0,58,216,29,221,60,0,58,216,29,221,58,216,70,221,38,0,58,216,29,221,58,216,70,221,61,0,58,216,29,221,58,216,29,221,38,0,58,216,63,221,60,0,58,216,63,221,58,216,70,221,38,0,58,216,63,221,58,216,70,221,61,0,58,216,63,221,58,216,63,221,38,0,58,216,30,221,60,0,58,216,30,221,58,216,70,221,38,0,58,216,30,221,58,216,70,221,61,0,58,216,30,221,58,216,30,221,38,0,58,216,64,221,60,0,58,216,64,221,58,216,70,221,38,0,58,216,64,221,58,216,70,221,61,0,58,216,64,221,58,216,64,221,38,0,58,216,31,221,60,0,58,216,31,221,58,216,70,221,38,0,58,216,31,221,58,216,70,221,61,0,58,216,31,221,58,216,31,221,38,0,58,216,65,221,60,0,58,216,65,221,58,216,70,221,38,0,58,216,65,221,58,216,70,221,61,0,58,216,65,221,58,216,65,221,38,0,58,216,32,221,60,0,58,216,32,221,58,216,70,221,38,0,58,216,32,221,58,216,70,221,61,0,58,216,32,221,58,216,32,221,38,0,58,216,66,221,60,0,58,216,66,221,58,216,70,221,38,0,58,216,66,221,58,216,70,221,61,0,58,216,66,221,58,216,66,221,38,0,58,216,33,221,60,0,58,216,33,221,58,216,70,221,38,0,58,216,33,221,58,216,70,221,61,0,58,216,33,221,58,216,33,221,38,0,58,216,67,221,60,0,58,216,67,221,58,216,70,221,38,0,58,216,67,221,58,216,70,221,61,0,58,216,67,221,58,216,67,221,38,0,58,216,9,221,60,0,58,216,9,221,58,216,69,221,38,0,58,216,9,221,58,216,69,221,60,0,60,0,58,216,9,221,58,216,9,221,38,0,58,216,43,221,60,0,58,216,43,221,58,216,69,221,38,0,58,216,43,221,58,216,69,221,60,0,60,0,58,216,43,221,58,216,43,221,38,0,58,216,11,221,60,0,58,216,11,221,58,216,69,221,38,0,58,216,11,221,58,216,69,221,60,0,60,0,58,216,11,221,58,216,11,221,38,0,58,216,45,221,60,0,58,216,45,221,58,216,69,221,38,0,58,216,45,221,58,216,69,221,60,0,60,0,58,216,45,221,58,216,45,221,38,0,58,216,12,221,60,0,58,216,12,221,58,216,69,221,38,0,58,216,12,221,58,216,69,221,60,0,60,0,58,216,12,221,58,216,12,221,38,0,58,216,46,221,60,0,58,216,46,221,58,216,69,221,38,0,58,216,46,221,58,216,69,221,60,0,60,0,58,216,46,221,58,216,46,221,38,0,58,216,19,221,60,0,58,216,19,221,58,216,69,221,38,0,58,216,19,221,58,216,69,221,60,0,60,0,58,216,19,221,58,216,19,221,38,0,58,216,53,221,60,0,58,216,53,221,58,216,69,221,38,0,58,216,53,221,58,216,69,221,60,0,60,0,58,216,53,221,58,216,53,221,0,0,170,170,170,170,48,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,64,0,0,0,64,0,0,0,32,26,0,0,32,26,0,0,112,27,0,0,112,27,0,0,180,27,0,0,180,27,0,0,4,34,0,0,24,34,0,0,50,105,114,84,1,0,160,8,137,0,64,0,192,0,62,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,88,0,48,0,48,0,80,0,128,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,94,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,4,0,0,201,36,1,0,201,68,2,0,201,164,3,0,201,4,5,0,201,100,6,0,201,196,7,0,201,36,9,0,201,132,10,0,201,228,11,0,201,68,13,0,201,164,14,0,201,4,16,0,201,100,17,0,201,196,18,0,201,36,20,0,201,132,21,0,201,228,22,0,201,68,24,0,201,164,25,0,201,4,27,0,201,100,28,0,201,196,29,0,201,36,31,0,201,132,32,0,201,228,33,0,201,68,35,0,201,164,36,0,201,4,38,0,201,100,39,0,201,196,40,0,201,36,42,0,201,132,43,0,201,228,44,0,201,68,46,0,201,228,47,0,201,132,49,0,201,36,51,0,201,196,52,0,201,100,54,0,201,4,56,0,201,164,57,0,201,68,59,0,201,228,60,0,201,100,62,0,201,4,64,0,201,132,65,0,201,4,67,0,201,164,68,0,201,68,70,0,201,228,71,0,201,132,73,0,201,36,75,0,201,196,76,0,201,68,78,0,201,228,79,0,201,132,81,0,201,36,83,0,201,196,84,0,201,100,86,0,201,4,88,0,201,164,89,0,201,68,91,0,201,228,92,0,201,132,94,0,201,36,96,0,201,196,97,0,201,100,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,133,0,5,0,3,170,120,0,133,0,5,0,3,172,120,0,133,0,5,0,3,174,120,0,133,0,5,0,3,176,120,0,133,0,5,0,3,178,120,0,133,0,5,0,3,180,120,0,133,0,5,0,3,182,120,0,133,0,5,0,3,184,120,0,133,0,5,0,3,186,120,0,133,0,70,0,3,188,120,0,133,0,5,0,3,188,120,0,133,0,5,0,3,190,120,0,133,0,70,0,3,192,120,0,133,0,5,0,3,192,120,0,133,0,70,0,3,194,120,0,133,0,5,0,3,194,120,0,133,0,5,0,3,196,120,0,133,0,5,0,3,198,120,0,133,0,5,0,3,200,120,0,133,0,5,0,3,202,120,0,133,0,5,0,3,204,120,0,133,0,5,0,3,206,120,0,133,0,70,0,3,208,120,0,133,0,5,0,3,208,120,0,133,0,5,0,3,210,120,0,133,0,5,0,3,212,120,0,133,0,5,0,3,214,120,0,133,0,5,0,3,216,120,0,133,0,5,0,3,218,120,0,133,0,5,0,3,220,120,0,133,0,5,0,3,222,120,0,133,0,5,0,3,224,120,0,133,0,5,0,3,226,120,0,133,0,5,0,3,228,120,0,133,0,5,0,3,230,120,0,133,0,5,0,3,232,120,0,133,0,5,0,3,234,120,0,133,0,5,0,3,236,120,0,5,0,70,0,2,188,120,0,5,0,70,0,2,192,120,0,5,0,70,0,2,194,120,0,5,0,70,0,2,208,120,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,169,120,160,5,48,0,58,216,1,0,0,221,198,129,68,221,198,129,171,120,160,5,48,0,58,216,1,0,1,221,198,161,70,221,198,161,173,120,160,5,48,0,58,216,1,0,2,221,0,192,198,65,70,221,0,192,198,65,175,120,160,5,48,0,58,216,1,0,3,221,0,192,198,97,70,221,0,192,198,97,177,120,160,5,48,0,58,216,1,0,4,221,0,192,198,129,70,221,0,192,198,129,179,120,160,5,48,0,58,216,1,0,5,221,0,192,198,161,70,221,0,192,198,161,181,120,160,5,48,0,58,216,1,0,6,221,0,192,198,193,70,221,0,192,198,193,183,120,160,5,48,0,58,216,1,0,7,221,0,192,198,225,70,221,0,192,198,225,185,120,160,5,48,0,58,216,1,0,8,221,1,192,198,1,70,221,1,192,198,1,187,120,160,5,48,0,58,216,1,0,9,221,1,192,198,33,69,221,1,192,198,65,189,120,160,5,48,0,58,216,1,0,10,221,1,192,198,97,70,221,1,192,198,97,191,120,160,5,48,0,58,216,1,0,11,221,1,192,198,129,69,221,1,192,198,161,193,120,160,5,48,0,58,216,1,0,12,221,1,192,198,193,69,221,1,192,198,225,195,120,160,5,48,0,58,216,1,0,13,221,2,192,198,1,70,221,2,192,198,1,197,120,160,5,48,0,58,216,1,0,14,221,2,192,198,33,70,221,2,192,198,33,199,120,160,5,48,0,58,216,1,0,15,221,2,192,198,65,70,221,2,192,198,65,201,120,160,5,48,0,58,216,1,0,16,221,2,192,198,97,70,221,2,192,198,97,203,120,160,5,48,0,58,216,1,0,17,221,2,192,198,129,70,221,2,192,198,129,205,120,160,5,48,0,58,216,1,0,18,221,2,192,198,161,70,221,2,192,198,161,207,120,160,5,48,0,58,216,1,0,19,221,2,192,198,193,69,221,2,192,198,225,209,120,160,5,48,0,58,216,1,0,20,221,3,192,198,1,70,221,3,192,198,1,211,120,160,5,48,0,58,216,1,0,21,221,3,192,198,33,70,221,3,192,198,33,213,120,160,5,48,0,58,216,1,0,22,221,3,192,198,65,70,221,3,192,198,65,215,120,160,5,48,0,58,216,1,0,23,221,3,192,198,97,70,221,3,192,198,97,217,120,160,5,48,0,58,216,1,0,24,221,3,192,198,129,70,221,3,192,198,129,219,120,160,5,48,0,58,216,1,0,25,221,3,192,198,161,70,221,3,192,198,161,221,120,160,5,48,0,58,216,1,0,26,221,3,192,198,193,70,221,3,192,198,193,223,120,160,5,48,0,58,216,1,0,27,221,3,192,198,225,70,221,3,192,198,225,225,120,160,5,48,0,58,216,1,0,28,221,4,192,198,1,70,221,4,192,198,1,227,120,160,5,48,0,58,216,1,0,29,221,4,192,198,33,70,221,4,192,198,33,229,120,160,5,48,0,58,216,1,0,30,221,4,192,198,65,70,221,4,192,198,65,231,120,160,5,48,0,58,216,1,0,31,221,4,192,198,97,70,221,4,192,198,97,233,120,160,5,48,0,58,216,1,0,32,221,4,192,198,129,70,221,4,192,198,129,235,120,160,5,48,0,58,216,1,0,33,221,4,192,198,161,70,221,4,192,198,161,169,120,5,5,48,0,58,216,1,0,34,221,255,255,170,120,193,2,68,221,255,255,170,120,193,2,171,120,5,5,48,0,58,216,1,0,35,221,255,255,172,120,193,2,70,221,255,255,172,120,193,2,173,120,5,5,48,0,58,216,1,0,36,221,255,255,174,120,193,2,70,221,255,255,174,120,193,2,175,120,5,5,48,0,58,216,1,0,37,221,255,255,176,120,193,2,70,221,255,255,176,120,193,2,177,120,5,5,48,0,58,216,1,0,38,221,255,255,178,120,193,2,70,221,255,255,178,120,193,2,179,120,5,5,48,0,58,216,1,0,39,221,255,255,180,120,193,2,70,221,255,255,180,120,193,2,181,120,5,5,48,0,58,216,1,0,40,221,255,255,182,120,193,2,70,221,255,255,182,120,193,2,183,120,5,5,48,0,58,216,1,0,41,221,255,255,184,120,193,2,70,221,255,255,184,120,193,2,185,120,5,5,48,0,58,216,1,0,42,221,255,255,186,120,193,2,70,221,255,255,186,120,193,2,187,120,5,5,48,0,58,216,1,0,43,221,4,192,198,193,69,221,255,255,188,120,193,2,189,120,5,5,48,0,58,216,1,0,44,221,255,255,190,120,193,2,70,221,255,255,190,120,193,2,191,120,5,5,48,0,58,216,1,0,45,221,4,192,198,225,69,221,255,255,192,120,193,2,193,120,5,5,48,0,58,216,1,0,46,221,5,192,198,1,69,221,255,255,194,120,193,2,195,120,5,5,48,0,58,216,1,0,47,221,255,255,196,120,193,2,70,221,255,255,196,120,193,2,197,120,5,5,48,0,58,216,1,0,48,221,255,255,198,120,193,2,70,221,255,255,198,120,193,2,199,120,5,5,48,0,58,216,1,0,49,221,255,255,200,120,193,2,70,221,255,255,200,120,193,2,201,120,5,5,48,0,58,216,1,0,50,221,255,255,202,120,193,2,70,221,255,255,202,120,193,2,203,120,5,5,48,0,58,216,1,0,51,221,255,255,204,120,193,2,70,221,255,255,204,120,193,2,205,120,5,5,48,0,58,216,1,0,52,221,255,255,206,120,193,2,70,221,255,255,206,120,193,2,207,120,5,5,48,0,58,216,1,0,53,221,5,192,198,33,69,221,255,255,208,120,193,2,209,120,5,5,48,0,58,216,1,0,54,221,255,255,210,120,193,2,70,221,255,255,210,120,193,2,211,120,5,5,48,0,58,216,1,0,55,221,255,255,212,120,193,2,70,221,255,255,212,120,193,2,213,120,5,5,48,0,58,216,1,0,56,221,255,255,214,120,193,2,70,221,255,255,214,120,193,2,215,120,5,5,48,0,58,216,1,0,57,221,255,255,216,120,193,2,70,221,255,255,216,120,193,2,217,120,5,5,48,0,58,216,1,0,58,221,255,255,218,120,193,2,70,221,255,255,218,120,193,2,219,120,5,5,48,0,58,216,1,0,59,221,255,255,220,120,193,2,70,221,255,255,220,120,193,2,221,120,5,5,48,0,58,216,1,0,60,221,255,255,222,120,193,2,70,221,255,255,222,120,193,2,223,120,5,5,48,0,58,216,1,0,61,221,255,255,224,120,193,2,70,221,255,255,224,120,193,2,225,120,5,5,48,0,58,216,1,0,62,221,255,255,226,120,193,2,70,221,255,255,226,120,193,2,227,120,5,5,48,0,58,216,1,0,63,221,255,255,228,120,193,2,70,221,255,255,228,120,193,2,229,120,5,5,48,0,58,216,1,0,64,221,255,255,230,120,193,2,70,221,255,255,230,120,193,2,231,120,5,5,48,0,58,216,1,0,65,221,255,255,232,120,193,2,70,221,255,255,232,120,193,2,233,120,5,5,48,0,58,216,1,0,66,221,255,255,234,120,193,2,70,221,255,255,234,120,193,2,235,120,5,5,48,0,58,216,1,0,67,221,255,255,236,120,193,2,70,221,255,255,236,120,193,2,8,128,0,0,1,0,0,233,1,0,9,233,1,0,10,233,1,0,71,233,3,0,78,0,61,0,70,0,135,2,0,16,9,0,0,96,1,0,0,96,1,0,52,0,20,11,0,32,2,0,32,0,41,0,170,170,4,0,0,96,25,11,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,63,34,0,32,7,0,0,0,26,0,0,0,65,34,0,0,65,34,0,0,3,0,0,0,0,0,0,0,169,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,116,114,97,100,105,116,105,111,110,97,108,0,170,0,0,52,0,50,0,0,0,45,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,102,0,105,0,45,0,117,0,45,0,99,0,111,0,45,0,116,0,114,0,97,0,100,0,93,0,0,0,103,220,38,0,68,0,53,3,60,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,71,0,53,3,60,0,60,0,229,1,60,0,60,0,60,0,228,1,38,0,78,0,53,3,60,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,84,0,53,3,60,0,60,0,103,1,60,0,60,0,60,0,102,1,38,0,89,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,38,0,90,0,53,3,60,0,60,0,146,2,60,0,60,0,60,0,183,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,0,0,128,220,38,0,68,0,60,0,60,0,240,0,60,0,60,0,60,0,208,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,78,0,60,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,84,0,60,0,60,0,254,0,47,0,104,0,60,0,60,0,60,0,222,0,47,0,104,0,38,0,86,0,60,0,60,0,119,0,60,0,60,0,60,0,87,0,38,0,89,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,60,0,60,0,113,1,60,0,60,0,60,0,112,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,245,0,60,0,60,0,60,0,213,0,60,0,60,0,83,1,60,0,60,0,60,0,82,1,0,0,170,170,170,170,170,170,170,170,6,50,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,202,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,116,39,0,0,116,39,0,0,148,42,0,0,148,42,0,0,240,46,0,0,240,46,0,0,234,49,0,0,234,49,0,0,234,49,0,0,50,105,114,84,1,0,64,8,106,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,149,0,157,0,163,0,171,0,179,0,187,0,48,0,56,0,186,0,194,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,211,0,219,0,48,0,48,0,48,0,227,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,235,0,48,0,48,0,243,0,48,0,249,0,1,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,12,1,48,0,17,1,21,1,29,1,37,1,42,1,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,64,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,209,0,48,0,48,0,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,75,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,83,1,48,0,48,0,89,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,84,2,140,2,204,2,192,0,232,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,33,0,202,193,33,0,202,226,33,0,202,3,34,0,202,36,34,0,202,69,34,0,202,102,34,0,202,135,34,0,202,168,34,0,202,201,34,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,3,0,156,5,0,84,134,70,0,84,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,4,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,38,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,7,0,5,5,0,84,5,70,0,84,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,225,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,198,65,0,0,198,97,0,0,5,5,127,12,198,1,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,2,25,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,33,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,198,161,0,0,193,4,111,93,5,5,125,12,198,65,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,9,0,201,166,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,48,5,71,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,68,5,70,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,193,0,0,198,225,1,0,198,1,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,198,11,0,201,230,12,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,14,0,201,134,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,17,0,201,38,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,0,197,162,4,0,197,34,0,0,197,98,0,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,192,0,0,0,198,98,3,0,197,226,5,0,192,0,0,0,192,0,0,0,198,162,3,0,198,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,19,0,201,198,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,5,0,197,98,6,0,198,162,5,0,198,226,5,0,198,34,6,0,198,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,6,0,197,162,6,0,198,226,6,0,198,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,70,22,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,24,0,5,71,238,102,201,6,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,8,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,192,0,0,0,197,226,8,0,192,0,0,0,197,34,9,0,197,99,9,0,197,194,9,0,192,0,0,0,192,0,0,0,197,2,10,0,197,67,10,0,197,162,10,0,192,0,0,0,192,0,0,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,6,0,197,34,11,0,5,5,10,121,197,98,11,0,197,162,11,0,5,5,12,121,5,5,16,121,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,5,5,18,121,5,5,20,121,197,130,7,0,5,5,24,121,197,162,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,25,0,201,6,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,7,0,198,34,8,0,198,98,8,0,198,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,28,0,201,70,29,0,201,102,30,0,201,134,31,0,201,166,32,0,201,198,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,6,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,37,0,201,166,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,2,0,198,226,2,0,201,38,40,0,201,166,41,0,201,38,43,0,201,70,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,45,0,201,134,46,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,72,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,72,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,73,0,4,111,93,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,70,0,80,5,5,0,56,5,70,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,84,5,142,0,0,5,70,0,84,5,142,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,134,70,0,84,5,138,0,0,5,70,0,84,5,138,0,0,134,70,0,84,5,136,0,0,5,70,0,84,5,136,0,0,134,70,0,84,5,150,0,0,5,70,0,84,5,150,0,0,134,70,0,84,5,156,0,0,5,70,0,84,5,156,0,0,134,70,0,84,5,196,0,0,5,70,0,84,5,196,0,0,5,70,0,84,5,146,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,6,0,5,5,10,121,5,5,12,121,197,34,7,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,7,0,5,5,24,121,197,162,7,0,5,5,28,121,5,5,30,121,197,226,7,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,8,0,5,5,107,121,197,98,8,0,5,5,111,121,197,162,8,0,5,5,115,121,197,226,8,0,5,5,119,121,197,34,9,0,197,99,9,0,197,194,9,0,5,5,127,121,5,5,129,121,197,2,10,0,197,67,10,0,197,162,10,0,5,5,137,121,5,5,139,121,197,226,10,0,5,5,143,121,5,5,6,121,197,226,6,0,197,34,11,0,5,5,10,121,197,98,11,0,197,162,11,0,5,5,12,121,5,5,16,121,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,5,5,18,121,5,5,20,121,197,130,7,0,5,5,24,121,197,162,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,70,156,5,2,0,3,3,0,192,198,65,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,70,5,5,2,0,3,3,0,192,198,161,8,3,255,255,111,93,193,4,11,3,0,192,198,193,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,3,3,2,192,198,34,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,2,0,3,3,2,192,198,226,8,3,3,192,197,34,11,3,3,192,198,34,156,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,5,82,196,190,1,0,8,3,3,192,197,226,11,3,4,192,197,34,156,70,196,162,2,0,3,3,4,192,198,34,8,3,4,192,198,98,11,3,4,192,198,162,5,70,196,162,2,0,3,3,4,192,198,226,8,3,6,192,197,34,11,3,5,192,198,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,7,192,198,98,10,3,7,192,198,162,5,42,196,200,1,0,8,3,13,192,197,162,10,3,13,192,197,226,156,82,196,198,1,0,8,3,14,192,197,34,11,3,14,192,197,98,5,82,196,198,1,0,8,3,14,192,197,162,11,3,14,192,197,226,156,82,196,208,1,0,8,3,15,192,197,34,11,3,15,192,197,98,5,82,196,208,1,0,8,3,15,192,197,162,11,3,15,192,197,226,156,82,196,204,1,0,8,3,16,192,197,34,11,3,16,192,197,98,5,82,196,204,1,0,8,3,16,192,197,162,11,3,16,192,197,226,156,42,196,196,1,0,8,3,8,192,198,226,10,3,9,192,198,34,5,42,196,196,1,0,8,3,19,192,197,226,10,3,20,192,197,34,156,70,196,196,2,0,3,3,9,192,198,98,8,3,9,192,198,162,11,3,9,192,198,226,5,70,196,196,2,0,3,3,10,192,198,34,8,3,20,192,197,98,11,3,10,192,198,98,20,0,197,163,2,0,3,3,10,192,198,163,8,3,11,192,198,3,11,3,11,192,198,99,21,0,197,3,2,0,3,3,11,192,198,195,8,3,21,192,197,99,11,3,12,192,198,35,156,82,196,196,1,0,8,3,21,192,197,194,11,3,22,192,197,2,5,82,196,196,1,0,8,3,22,192,197,66,11,3,22,192,197,130,22,0,197,195,1,0,8,3,23,192,197,35,11,3,23,192,197,131,23,0,197,227,1,0,8,3,24,192,197,67,11,3,24,192,197,163,170,170,3,0,67,0,50,0,59,0,171,0,0,16,4,0,0,96,1,0,0,96,92,40,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,36,31,0,0,36,31,0,0,148,32,0,0,148,32,0,0,124,34,0,0,124,34,0,0,84,36,0,0,84,36,0,0,64,40,0,0,50,105,114,84,1,0,64,8,229,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,107,0,115,0,121,0,129,0,137,0,145,0,48,0,56,0,149,0,157,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,181,0,48,0,48,0,185,0,48,0,193,0,198,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,212,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,173,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,172,1,228,1,36,2,192,0,84,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,14,0,202,33,14,0,202,66,14,0,202,99,14,0,202,132,14,0,202,165,14,0,202,198,14,0,202,231,14,0,202,8,15,0,202,41,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,1,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,2,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,38,4,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,5,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,97,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,65,0,0,5,5,127,12,198,129,0,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,160,5,38,93,197,194,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,161,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,193,4,111,93,5,5,125,12,198,193,0,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,6,0,201,102,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,197,226,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,8,0,201,70,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,10,0,201,198,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,11,0,201,70,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,197,34,0,0,197,98,0,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,192,0,0,0,198,162,1,0,197,162,5,0,192,0,0,0,192,0,0,0,198,226,1,0,198,34,2,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,13,0,201,198,13,0,192,0,0,0,192,0,0,0,197,163,6,0,197,3,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,0,197,98,7,0,198,226,2,0,198,34,3,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,3,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,16,0,201,134,17,0,201,70,18,0,201,6,19,0,201,198,19,0,201,134,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,21,0,201,102,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,23,0,201,70,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,25,0,201,198,25,0,201,134,26,0,201,70,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,28,0,201,198,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,156,5,0,48,194,6,6,179,28,5,0,48,194,5,6,179,156,5,0,68,194,6,4,179,28,5,0,68,194,5,4,179,156,5,0,80,194,6,3,179,28,5,0,80,194,5,3,179,134,70,0,90,5,162,0,0,5,70,0,90,5,162,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,5,70,0,90,5,190,0,0,156,5,0,92,194,6,2,179,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,156,5,0,54,194,6,5,179,28,5,0,54,194,5,5,179,193,4,111,93,5,162,0,0,156,5,0,92,194,6,2,179,5,144,0,0,28,5,0,92,194,5,2,179,5,144,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,5,70,0,90,5,198,0,0,134,70,0,90,5,208,0,0,5,70,0,90,5,208,0,0,134,70,0,90,5,204,0,0,5,70,0,90,5,204,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,5,70,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,70,156,5,48,0,8,3,0,192,198,65,0,82,156,5,1,0,8,3,255,255,0,90,134,70,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,70,5,5,48,0,8,3,255,255,111,93,193,4,0,82,5,5,1,0,8,3,255,255,0,90,5,70,68,3,0,192,197,98,156,42,196,162,1,0,8,3,0,192,198,226,10,3,1,192,198,34,5,42,196,162,1,0,8,3,0,192,197,162,10,3,0,192,197,226,156,82,196,162,48,0,8,3,2,192,197,162,5,82,196,162,48,0,8,3,2,192,197,226,156,70,196,190,48,0,8,3,1,192,198,98,5,70,196,190,48,0,8,3,3,192,197,34,156,82,196,190,48,0,8,3,3,192,197,98,5,82,196,190,48,0,8,3,3,192,197,162,156,70,196,162,48,0,8,3,2,192,198,98,5,70,196,162,48,0,8,3,6,192,197,98,156,42,196,200,1,0,8,3,4,192,198,34,10,3,4,192,198,98,5,42,196,200,1,0,8,3,7,192,197,226,10,3,8,192,197,34,156,82,196,198,48,0,8,3,8,192,197,98,5,82,196,198,48,0,8,3,8,192,197,162,156,82,196,208,48,0,8,3,8,192,197,226,5,82,196,208,48,0,8,3,9,192,197,34,156,82,196,204,48,0,8,3,9,192,197,98,5,82,196,204,48,0,8,3,9,192,197,162,156,42,196,196,1,0,8,3,4,192,198,162,10,3,4,192,198,226,5,42,196,196,1,0,8,3,9,192,197,226,10,3,10,192,197,34,156,70,196,196,48,0,8,3,5,192,198,34,5,70,196,196,48,0,8,3,10,192,197,98,10,0,197,163,48,0,8,3,5,192,198,99,11,0,197,3,48,0,8,3,11,192,197,99,156,82,196,196,48,0,8,3,11,192,197,194,5,82,196,196,48,0,8,3,12,192,197,2,12,0,197,67,48,0,8,3,12,192,197,163,13,0,197,3,48,0,8,3,13,192,197,99,5,2,64,12,32,14,192,14,232,14,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,28,4,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,30,4,185,120,185,124,185,132,186,136,185,140,32,4,185,148,185,152,185,156,185,160,185,164,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,36,4,168,120,168,124,168,132,168,136,168,140,38,4,168,148,168,152,168,156,168,160,168,164,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,116,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,180,185,176,217,180,217,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,117,153,117,249,117,153,118,185,184,136,14,217,184,185,145,153,145,249,145,217,160,153,161,185,168,0,8,168,57,136,57,232,57,136,58,168,180,168,176,200,180,200,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,117,136,117,232,117,136,118,168,184,128,14,200,184,168,145,136,145,232,145,200,160,136,161,168,168,72,162,25,59,8,59,217,57,200,57,40,4,42,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,2,8,137,71,26,75,8,75,218,73,200,73,186,74,168,74,250,74,232,74,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,217,82,200,82,249,85,232,85,57,87,40,87,154,90,136,90,26,91,8,91,218,89,200,89,250,90,232,90,186,90,168,92,4,8,6,8,250,97,232,97,217,102,200,102,168,128,153,105,136,105,217,106,200,106,25,106,8,106,185,107,168,107,57,107,40,107,154,113,136,113,218,114,200,114,26,114,8,114,8,8,10,8,106,115,25,119,8,119,217,117,200,117,121,118,104,118,12,8,14,8,153,133,136,133,217,134,200,134,25,134,8,134,154,137,136,137,250,137,232,137,218,138,200,138,26,138,8,138,217,142,200,142,25,142,8,142,16,8,73,143,153,146,136,146,25,147,8,147,217,145,200,145,57,146,40,146,121,146,104,146,44,4,46,4,249,153,232,153,249,161,232,161,89,162,153,165,136,165,185,166,168,166,25,166,8,166,232,136,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,18,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,20,8,1,0,8,14,22,8,1,0,16,14,0,13,8,13,24,14,24,8,200,12,72,12,32,14,200,136,169,136,185,68,137,3,187,88,187,96,169,88,169,96,169,172,169,112,186,112,105,3,217,116,187,72,200,116,169,72,185,140,73,3,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,116,255,5,185,144,255,5,168,56,255,5,168,116,255,5,168,144,255,5,249,58,255,5,232,58,255,5,249,146,255,5,232,146,255,1,3,0,67,0,50,0,59,0,51,13,0,16,51,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,132,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,31,0,0,52,31,0,0,84,34,0,0,84,34,0,0,204,36,0,0,204,36,0,0,128,39,0,0,128,39,0,0,104,43,0,0,50,105,114,84,1,0,64,8,230,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,48,0,174,0,178,0,186,0,194,0,199,0,207,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,18,0,202,161,18,0,202,194,18,0,202,227,18,0,202,4,19,0,202,37,19,0,202,70,19,0,202,103,19,0,202,136,19,0,202,169,19,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,2,0,156,5,0,84,134,70,0,84,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,4,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,5,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,7,0,5,5,0,84,5,70,0,84,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,225,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,198,65,0,0,198,97,0,0,5,5,127,12,198,1,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,66,18,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,33,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,198,161,0,0,193,4,111,93,5,5,125,12,198,65,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,8,0,201,230,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,48,5,71,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,68,5,70,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,193,0,0,198,225,1,0,198,1,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,6,11,0,201,38,12,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,13,0,201,198,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,16,0,201,102,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,0,197,162,4,0,197,34,0,0,197,98,0,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,192,0,0,0,198,98,3,0,197,226,5,0,192,0,0,0,192,0,0,0,198,162,3,0,198,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,6,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,5,0,197,98,6,0,198,162,5,0,198,226,5,0,198,34,6,0,198,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,6,0,197,162,6,0,198,226,6,0,198,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,21,0,201,166,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,7,0,198,34,8,0,198,98,8,0,198,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,201,6,26,0,201,38,27,0,201,70,28,0,201,102,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,166,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,70,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,2,0,198,226,2,0,201,198,35,0,201,70,37,0,201,198,38,0,201,230,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,41,0,201,38,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,72,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,72,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,73,0,4,111,93,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,70,0,80,5,5,0,56,5,70,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,84,5,142,0,0,5,70,0,84,5,142,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,134,70,0,84,5,138,0,0,5,70,0,84,5,138,0,0,134,70,0,84,5,136,0,0,5,70,0,84,5,136,0,0,134,70,0,84,5,150,0,0,5,70,0,84,5,150,0,0,134,70,0,84,5,156,0,0,5,70,0,84,5,156,0,0,134,70,0,84,5,196,0,0,5,70,0,84,5,196,0,0,5,70,0,84,5,146,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,70,156,5,2,0,3,3,0,192,198,65,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,70,5,5,2,0,3,3,0,192,198,161,8,3,255,255,111,93,193,4,11,3,0,192,198,193,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,3,3,2,192,198,34,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,2,0,3,3,2,192,198,226,8,3,3,192,197,34,11,3,3,192,198,34,156,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,5,82,196,190,1,0,8,3,3,192,197,226,11,3,4,192,197,34,156,70,196,162,2,0,3,3,4,192,198,34,8,3,4,192,198,98,11,3,4,192,198,162,5,70,196,162,2,0,3,3,4,192,198,226,8,3,6,192,197,34,11,3,5,192,198,34,156,42,196,200,1,0,8,3,7,192,198,98,10,3,7,192,198,162,5,42,196,200,1,0,8,3,6,192,197,226,10,3,7,192,197,34,156,82,196,198,1,0,8,3,7,192,197,98,11,3,7,192,197,162,5,82,196,198,1,0,8,3,7,192,197,226,11,3,8,192,197,34,156,82,196,208,1,0,8,3,8,192,197,98,11,3,8,192,197,162,5,82,196,208,1,0,8,3,8,192,197,226,11,3,9,192,197,34,156,82,196,204,1,0,8,3,9,192,197,98,11,3,9,192,197,162,5,82,196,204,1,0,8,3,9,192,197,226,11,3,10,192,197,34,156,42,196,196,1,0,8,3,8,192,198,226,10,3,9,192,198,34,5,42,196,196,1,0,8,3,13,192,197,34,10,3,13,192,197,98,156,70,196,196,2,0,3,3,9,192,198,98,8,3,9,192,198,162,11,3,9,192,198,226,5,70,196,196,2,0,3,3,10,192,198,34,8,3,13,192,197,162,11,3,10,192,198,98,13,0,197,227,2,0,3,3,10,192,198,163,8,3,11,192,198,3,11,3,11,192,198,99,14,0,197,67,2,0,3,3,11,192,198,195,8,3,14,192,197,163,11,3,12,192,198,35,156,82,196,196,1,0,8,3,15,192,197,2,11,3,15,192,197,66,5,82,196,196,1,0,8,3,15,192,197,130,11,3,15,192,197,194,16,0,197,3,1,0,8,3,16,192,197,99,11,3,16,192,197,195,17,0,197,35,1,0,8,3,17,192,197,131,11,3,17,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,185,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,28,4,185,120,185,124,185,132,186,136,185,140,30,4,185,152,217,152,185,156,185,160,185,164,88,13,168,13,96,13,56,14,80,12,40,14,32,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,34,4,168,120,168,124,168,132,168,136,168,140,36,4,168,152,200,152,168,156,168,160,168,164,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,116,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,185,176,185,172,217,176,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,217,68,122,114,185,117,153,117,249,117,25,181,185,180,136,14,217,180,185,149,153,149,249,149,217,160,153,161,0,8,2,8,168,57,136,57,232,57,104,58,168,176,168,172,200,176,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,104,114,168,117,136,117,232,117,8,181,168,180,128,14,200,180,168,149,136,149,232,149,200,160,136,161,4,8,72,162,249,58,232,58,217,57,200,57,38,4,40,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,249,68,232,68,249,74,232,74,217,73,200,73,153,74,136,74,217,74,200,74,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,128,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,217,112,200,112,249,118,232,118,217,117,200,117,249,180,232,180,57,181,40,181,153,133,136,133,185,134,168,134,25,134,8,134,154,137,136,137,250,137,232,137,186,138,168,138,26,138,8,138,185,142,168,142,25,142,8,142,185,144,168,144,121,150,104,150,249,150,232,150,217,149,200,149,57,150,40,150,249,160,232,160,42,4,44,4,12,8,14,8,249,161,232,161,89,162,153,165,136,165,153,166,136,166,25,166,8,166,232,136,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,140,168,84,200,136,169,136,200,140,168,84,187,88,187,96,169,88,169,96,169,168,169,112,217,152,232,1,200,152,232,1,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,116,255,5,185,148,255,5,168,56,255,5,168,116,255,5,168,148,255,5,217,58,255,5,200,58,255,5,217,150,255,5,200,150,255,1,3,0,67,0,50,0,59,0,83,23,0,16,156,0,0,96,1,0,0,96,3,0,43,0,82,0,91,0,46,13,0,32,75,23,0,32,53,34,0,32,1,0,32,0,58,34,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,3,8,0,32,7,0,0,0,21,0,0,0,5,8,0,0,5,8,0,0,3,0,0,0,0,0,0,0,34,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,78,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,0,0,170,170,170,170,94,31,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,0,26,0,0,0,26,0,0,32,27,0,0,58,27,0,0,70,31,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,8,0,202,65,8,0,202,98,8,0,202,131,8,0,202,164,8,0,202,197,8,0,202,230,8,0,202,7,9,0,202,40,9,0,202,73,9,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,4,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,196,7,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,7,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,12,0,201,198,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,13,0,201,70,14,0,201,6,15,0,201,198,15,0,201,134,16,0,201,70,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,3,69,5,140,0,0,70,5,3,69,5,140,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,160,0,0,70,5,3,69,5,160,0,0,135,5,3,69,5,144,0,0,70,5,3,69,5,144,0,0,135,5,3,69,5,136,0,0,70,5,3,69,5,136,0,0,135,5,3,69,5,164,0,0,70,5,3,69,5,164,0,0,5,5,3,69,5,142,0,0,5,5,3,69,5,140,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,160,0,0,5,5,3,69,5,144,0,0,5,5,3,69,5,136,0,0,5,5,3,69,5,164,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,16,0,34,1,30,0,244,1,16,0,244,1,2,192,197,162,245,1,2,192,197,226,3,3,255,255,2,69,134,5,32,30,3,192,197,34,33,30,3,192,197,98,34,1,1,192,197,162,35,1,1,192,197,226,230,1,2,192,197,34,231,1,2,192,197,98,30,1,12,0,30,1,0,192,197,162,31,1,0,192,197,226,32,1,1,192,197,34,33,1,1,192,197,98,71,0,255,255,3,69,135,5,103,0,255,255,3,69,70,5,28,1,197,162,29,1,0,192,197,98,0,68,5,5,8,0,35,1,16,0,35,1,4,192,197,98,231,1,4,192,197,162,245,1,4,192,197,226,3,3,255,255,2,69,5,5,33,30,5,192,197,34,103,0,255,255,3,69,5,5,29,1,3,192,197,162,31,1,3,192,197,226,33,1,4,192,197,34,156,68,196,160,48,0,3,3,5,192,197,98,5,68,196,160,48,0,3,3,5,192,197,162,156,68,196,196,48,0,3,3,5,192,197,226,5,68,196,196,48,0,3,3,6,192,197,34,156,68,196,210,48,0,3,3,6,192,197,98,5,68,196,210,48,0,3,3,6,192,197,162,156,68,196,204,48,0,3,3,6,192,197,226,5,68,196,204,48,0,3,3,7,192,197,34,12,0,71,0,72,0,103,0,104,0,28,1,36,1,230,1,232,1,244,1,246,1,32,30,34,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,128,185,132,185,136,185,144,186,148,185,152,185,160,185,164,185,168,185,172,185,176,185,180,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,48,4,168,128,168,132,168,136,168,144,168,148,168,152,168,160,168,164,168,168,168,172,168,176,168,180,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,129,153,129,249,129,153,130,89,130,136,14,217,130,185,161,153,161,249,161,89,162,153,177,185,184,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,129,136,129,232,129,136,130,72,130,128,14,200,130,168,161,136,161,232,161,72,162,136,177,168,184,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,140,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,60,4,62,4,26,114,8,114,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,145,136,145,249,146,232,146,25,146,8,146,154,149,136,149,250,149,232,149,250,150,232,150,26,150,8,150,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,181,136,181,185,182,168,182,25,182,8,182,232,148,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,148,169,148,200,56,169,72,187,88,187,96,169,88,169,96,169,188,169,112,217,128,187,72,200,128,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,71,4,186,120,103,4,177,120,28,5,250,121,29,5,241,121,30,5,218,121,31,5,209,121,32,5,186,122,33,5,177,122,34,5,250,122,35,5,241,122,255,5,168,112,103,4,168,120,29,5,232,121,31,5,200,121,33,5,168,122,35,5,232,122,255,5,250,114,255,5,232,114,255,1,170,170,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,252,7,0,32,1,0,32,0,1,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,140,27,0,32,7,0,0,0,23,0,0,0,142,27,0,0,142,27,0,0,3,0,0,0,0,0,0,0,119,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,102,0,111,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,134,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,60,0,97,0,97,0,60,0,60,0,60,0,65,0,97,0,60,0,60,0,60,0,65,0,65,0,0,0,170,170,4,57,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,163,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,140,47,0,0,140,47,0,0,76,51,0,0,76,51,0,0,178,56,0,0,232,56,0,0,232,56,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,28,0,202,225,28,0,202,2,29,0,202,35,29,0,202,68,29,0,202,101,29,0,202,134,29,0,202,167,29,0,202,200,29,0,202,233,29,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,196,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,102,29,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,38,30,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,70,31,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,228,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,166,47,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,48,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,34,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,51,0,201,102,52,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,55,0,201,230,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,58,0,201,38,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,60,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,62,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,64,0,5,71,238,102,201,70,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,66,0,201,70,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,68,0,201,134,69,0,201,166,70,0,201,198,71,0,201,230,72,0,201,6,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,75,0,201,70,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,77,0,201,134,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,79,0,201,198,80,0,201,230,81,0,201,6,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,84,0,201,70,85,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,12,192,197,162,156,82,196,198,1,0,8,3,12,192,197,226,11,3,13,192,197,34,5,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,156,82,196,208,1,0,8,3,13,192,197,226,11,3,14,192,197,34,5,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,156,82,196,204,1,0,8,3,14,192,197,226,11,3,15,192,197,34,5,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,15,192,197,226,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,16,0,197,35,1,0,8,3,35,192,198,35,11,3,35,192,198,131,16,0,197,131,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,16,192,197,226,11,3,17,192,197,34,5,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,17,0,197,227,1,0,8,3,18,192,197,67,11,3,18,192,197,163,19,0,197,3,1,0,8,3,19,192,197,99,11,3,19,192,197,195,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,3,0,67,0,50,0,59,0,119,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,10,51,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,92,39,0,0,92,39,0,0,56,41,0,0,56,41,0,0,88,46,0,0,142,46,0,0,238,50,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,13,0,202,193,13,0,202,226,13,0,202,3,14,0,202,36,14,0,202,69,14,0,202,102,14,0,202,135,14,0,202,168,14,0,202,201,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,4,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,28,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,29,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,134,30,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,36,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,230,46,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,47,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,48,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,98,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,50,0,201,166,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,198,52,0,201,230,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,55,0,201,38,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,57,0,201,102,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,59,0,201,166,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,61,0,201,230,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,64,0,201,38,65,0,201,70,66,0,201,102,67,0,201,134,68,0,201,166,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,70,0,201,230,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,73,0,201,38,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,75,0,201,102,76,0,201,134,77,0,201,166,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,79,0,201,230,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,5,192,197,226,156,82,196,198,1,0,8,3,6,192,197,34,11,3,6,192,197,98,5,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,156,82,196,208,1,0,8,3,7,192,197,34,11,3,7,192,197,98,5,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,156,82,196,204,1,0,8,3,8,192,197,34,11,3,8,192,197,98,5,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,9,192,197,34,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,9,0,197,99,1,0,8,3,35,192,198,35,11,3,35,192,198,131,9,0,197,195,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,10,192,197,34,11,3,10,192,197,98,5,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,11,0,197,35,1,0,8,3,11,192,197,131,11,3,11,192,197,227,12,0,197,67,1,0,8,3,12,192,197,163,11,3,13,192,197,3,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,64,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,66,4,185,124,185,128,185,136,186,140,186,144,68,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,70,4,168,60,168,64,168,68,92,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,94,4,168,124,168,128,168,136,168,140,168,144,96,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,180,185,188,185,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,184,136,14,185,184,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,200,180,168,188,168,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,184,128,14,168,184,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,98,4,100,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,180,232,180,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,25,185,8,185,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,102,4,104,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,176,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,65,4,188,188,97,4,179,188,192,4,188,189,193,4,156,189,194,4,252,189,195,4,124,190,196,4,92,190,197,4,60,190,224,4,179,189,225,4,147,189,226,4,243,189,227,4,115,190,228,4,83,190,229,4,51,190,0,5,252,190,1,5,243,190,2,5,220,189,3,5,211,189,4,5,220,190,5,5,211,190,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,97,4,170,188,224,4,170,189,225,4,138,189,226,4,234,189,227,4,106,190,228,4,74,190,229,4,42,190,1,5,234,190,3,5,202,189,5,5,202,190,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,170,170,3,0,67,0,50,0,59,0,191,14,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,185,14,0,32,131,27,0,32,1,0,32,0,136,27,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,47,0,0,32,7,0,0,0,21,0,0,0,49,0,0,0,49,0,0,0,3,0,0,0,0,0,0,0,30,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,98,0,97,0,99,0,107,0,119,0,97,0,114,0,100,0,115,0,32,0,50,0,93,0,0,0,170,170,170,170,32,0,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,2,0,0,0,16,40,2,15,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,40,0,0,32,1,0,32,0,45,0,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,223,7,0,32,7,0,0,0,21,0,0,0,225,7,0,0,225,7,0,0,3,0,0,0,0,0,0,0,28,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,73,0,60,0,60,0,121,0,60,0,60,0,60,0,89,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,224,30,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,26,0,0,20,26,0,0,20,26,0,0,20,26,0,0,240,26,0,0,240,26,0,0,240,26,0,0,240,26,0,0,200,30,0,0,50,105,114,84,1,0,64,8,148,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,95,0,103,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,124,0,48,0,48,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,119,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,124,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,5,0,202,193,5,0,202,226,5,0,202,3,6,0,202,36,6,0,202,69,6,0,202,102,6,0,202,135,6,0,202,168,6,0,202,201,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,134,70,0,58,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,70,0,58,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,4,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,197,34,0,0,160,5,38,93,197,34,5,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,5,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,197,98,0,0,5,5,38,93,197,162,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,0,0,197,34,1,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,197,226,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,2,0,197,34,3,0,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,70,0,58,5,136,0,0,5,70,0,58,5,136,0,0,5,70,0,58,5,150,0,0,134,70,0,58,5,142,0,0,5,70,0,58,5,142,0,0,134,70,0,58,5,150,0,0,134,70,0,58,5,164,0,0,5,70,0,58,5,164,0,0,134,70,0,58,5,156,0,0,5,70,0,58,5,156,0,0,5,70,0,58,5,146,0,0,134,70,0,58,5,138,0,0,5,70,0,58,5,138,0,0,134,70,0,58,5,196,0,0,5,70,0,58,5,196,0,0,134,70,0,58,5,182,0,0,5,70,0,58,5,182,0,0,134,70,0,58,5,154,0,0,5,70,0,58,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,217,88,185,168,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,200,88,168,168,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,2,8,185,172,4,8,168,57,136,57,232,57,136,58,72,58,40,58,6,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,8,8,168,172,10,8,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,12,8,14,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,16,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,18,8,20,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,22,8,24,8,26,8,153,169,136,169,185,170,168,170,25,170,8,170,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,217,56,187,72,217,88,136,1,200,140,169,140,200,56,169,72,200,88,136,1,200,88,72,2,187,88,187,96,169,88,169,96,169,176,169,112,217,120,187,72,200,120,169,72,217,88,232,1,200,88,232,1,217,88,72,2,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,216,7,0,32,1,0,32,0,221,7,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,160,16,0,32,7,0,0,0,23,0,0,0,162,16,0,0,162,16,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,101,0,115,0,93,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,101,0,115,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,0,0,212,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,77,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,32,0,0,148,32,0,0,148,32,0,0,148,32,0,0,252,34,0,0,252,34,0,0,188,35,0,0,188,35,0,0,188,35,0,0,50,105,114,84,1,0,64,8,252,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,84,0,92,0,98,0,106,0,114,0,122,0,48,0,56,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,154,0,48,0,48,0,48,0,162,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,170,0,48,0,48,0,178,0,48,0,184,0,192,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,195,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,144,0,48,0,48,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,229,0,48,0,48,0,235,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,1,136,1,200,1,192,0,228,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,18,0,202,33,18,0,202,66,18,0,202,99,18,0,202,132,18,0,202,165,18,0,202,198,18,0,202,231,18,0,202,8,19,0,202,41,19,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,198,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,166,1,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,8,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,9,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,2,0,201,38,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,3,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,5,0,5,71,238,102,201,166,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,197,226,2,0,197,35,3,0,197,130,3,0,192,0,0,0,192,0,0,0,197,194,3,0,197,3,4,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,7,0,201,70,8,0,201,6,9,0,201,198,9,0,201,134,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,0,0,5,5,10,121,5,5,12,121,197,226,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,197,162,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,1,0,5,5,107,121,197,34,2,0,5,5,111,121,197,98,2,0,5,5,115,121,197,162,2,0,5,5,119,121,197,226,2,0,197,35,3,0,197,130,3,0,5,5,127,121,5,5,129,121,197,194,3,0,197,3,4,0,197,98,4,0,5,5,137,121,5,5,139,121,197,162,4,0,5,5,143,121,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,68,196,196,48,0,3,3,7,192,197,98,5,68,196,196,48,0,3,3,7,192,197,162,156,68,196,210,48,0,3,3,7,192,197,226,5,68,196,210,48,0,3,3,8,192,197,34,156,68,196,204,48,0,3,3,8,192,197,98,5,68,196,204,48,0,3,3,8,192,197,162,3,0,67,0,50,0,59,0,43,0,0,16,16,0,0,96,1,0,0,96,170,170,170,170,186,29,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,88,25,0,0,88,25,0,0,210,25,0,0,210,25,0,0,162,29,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,2,0,202,1,3,0,202,34,3,0,202,67,3,0,202,100,3,0,202,133,3,0,202,166,3,0,202,199,3,0,202,232,3,0,202,9,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,6,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,230,0,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,2,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,2,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,201,102,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,3,0,201,230,3,0,201,166,4,0,201,102,5,0,201,38,6,0,201,230,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,156,68,196,196,48,0,3,3,0,192,197,162,5,68,196,196,48,0,3,3,0,192,197,226,156,68,196,210,48,0,3,3,1,192,197,34,5,68,196,210,48,0,3,3,1,192,197,98,156,68,196,204,48,0,3,3,1,192,197,162,5,68,196,204,48,0,3,3,1,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,124,185,128,185,132,185,140,186,144,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,28,4,168,124,168,128,168,132,168,140,168,144,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,136,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,30,4,32,4,26,114,8,114,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,250,146,232,146,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,144,169,144,200,56,169,72,187,88,187,96,169,88,169,96,169,184,169,112,217,124,187,72,200,124,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,255,5,168,112,255,5,250,114,255,5,232,114,255,1,170,170,3,0,67,0,50,0,59,0,39,9,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,33,9,0,32,151,16,0,32,1,0,32,0,156,16,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,170,6,0,32,7,0,0,0,21,0,0,0,172,6,0,0,172,6,0,0,3,0,0,0,0,0,0,0,67,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,86,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,117,0,106,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,208,10,60,0,130,10,60,0,60,0,129,10,60,0,131,10,0,0,124,25,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,20,25,0,0,20,25,0,0,28,25,0,0,28,25,0,0,96,25,0,0,15,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,107,188,255,0,108,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,39,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,107,193,3,7,107,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,107,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,163,6,0,32,1,0,32,0,168,6,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,106,9,0,32,7,0,0,0,21,0,0,0,108,9,0,0,108,9,0,0,3,0,0,0,0,0,0,0,66,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,84,220,38,0,66,0,60,0,83,2,60,0,60,0,60,0,129,1,38,0,68,0,60,0,87,2,60,0,60,0,60,0,138,1,38,0,75,0,60,0,153,1,60,0,60,0,60,0,152,1,38,0,83,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,84,0,60,0,116,0,115,0,60,0,60,0,60,0,84,0,115,0,60,0,60,0,60,0,84,0,83,0,38,0,89,0,60,0,180,1,60,0,60,0,60,0,188,2,121,0,60,0,60,0,60,0,39,0,39,0,121,0,60,0,60,0,60,0,179,1,60,0,60,0,60,0,188,2,89,0,60,0,60,0,60,0,39,0,39,0,89,0,0,0,170,170,170,170,122,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,25,0,0,164,25,0,0,164,25,0,0,164,25,0,0,228,28,0,0,228,28,0,0,196,31,0,0,26,32,0,0,98,36,0,0,50,105,114,84,1,0,64,8,141,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,94,0,102,0,100,0,108,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,124,0,48,0,48,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,64,1,192,0,192,0,120,1,144,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,201,0,0,0,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,24,0,202,225,24,0,202,2,25,0,202,35,25,0,202,68,25,0,202,101,25,0,202,134,25,0,202,167,25,0,202,200,25,0,202,233,25,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,96,9,0,201,32,17,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,64,27,0,201,96,31,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,24,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,66,24,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,24,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,2,45,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,63,5,5,2,63,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,136,5,2,91,5,5,2,91,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,45,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,128,36,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,74,5,2,91,5,136,0,0,7,5,2,91,5,136,0,0,7,5,2,91,5,150,0,0,74,5,2,91,5,142,0,0,7,5,2,91,5,142,0,0,74,5,2,91,5,150,0,0,74,5,2,91,5,164,0,0,7,5,2,91,5,164,0,0,74,5,2,91,5,156,0,0,7,5,2,91,5,156,0,0,7,5,2,91,5,146,0,0,74,5,2,91,5,138,0,0,7,5,2,91,5,138,0,0,74,5,2,91,5,196,0,0,7,5,2,91,5,196,0,0,74,5,2,91,5,182,0,0,7,5,2,91,5,182,0,0,74,5,2,91,5,154,0,0,7,5,2,91,5,154,0,0,135,5,2,79,5,142,0,0,70,5,2,79,5,142,0,0,135,5,2,79,5,144,0,0,70,5,2,79,5,144,0,0,135,5,2,79,5,156,0,0,70,5,2,79,5,156,0,0,135,5,2,79,5,196,0,0,70,5,2,79,5,196,0,0,135,5,2,79,5,150,0,0,70,5,2,79,5,150,0,0,135,5,2,79,5,160,0,0,70,5,2,79,5,160,0,0,135,5,2,79,5,206,0,0,70,5,2,79,5,206,0,0,70,5,2,79,5,210,0,0,135,5,2,81,5,136,0,0,70,5,2,81,5,136,0,0,135,5,2,81,5,142,0,0,70,5,2,81,5,142,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,202,0,0,70,5,2,81,5,202,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,5,196,0,0,70,5,2,81,5,196,0,0,135,5,2,81,5,136,0,0,5,156,0,0,70,5,2,81,5,136,0,0,5,156,0,0,135,5,2,81,5,144,0,0,5,156,0,0,70,5,2,81,5,144,0,0,5,156,0,0,135,5,2,81,5,196,0,0,5,156,0,0,70,5,2,81,5,196,0,0,5,156,0,0,5,5,2,79,5,142,0,0,5,5,2,79,5,144,0,0,5,5,2,79,5,156,0,0,5,5,2,79,5,196,0,0,5,5,2,79,5,150,0,0,5,5,2,79,5,160,0,0,5,5,2,79,5,206,0,0,5,5,2,79,5,210,0,0,5,5,2,81,5,136,0,0,5,5,2,81,5,142,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,202,0,0,5,5,2,81,5,156,0,0,5,5,2,81,5,196,0,0,5,5,2,81,5,136,0,0,5,156,0,0,5,5,2,81,5,144,0,0,5,156,0,0,5,5,2,81,5,196,0,0,5,156,0,0,73,5,2,91,5,136,0,0,6,5,2,91,5,136,0,0,6,5,2,91,5,150,0,0,73,5,2,91,5,142,0,0,6,5,2,91,5,142,0,0,73,5,2,91,5,150,0,0,73,5,2,91,5,164,0,0,6,5,2,91,5,164,0,0,73,5,2,91,5,156,0,0,6,5,2,91,5,156,0,0,6,5,2,91,5,146,0,0,73,5,2,91,5,138,0,0,6,5,2,91,5,138,0,0,73,5,2,91,5,196,0,0,6,5,2,91,5,196,0,0,73,5,2,91,5,182,0,0,6,5,2,91,5,182,0,0,73,5,2,91,5,154,0,0,6,5,2,91,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,106,9,5,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,4,192,197,34,248,30,4,192,197,98,249,30,4,192,197,162,244,30,3,192,197,98,245,30,3,192,197,162,246,30,3,192,197,226,142,30,2,192,197,34,143,30,2,192,197,98,153,30,2,192,197,162,242,30,2,192,197,226,243,30,3,192,197,34,118,1,15,0,118,1,0,192,197,226,119,1,1,192,197,34,120,1,1,192,197,98,50,2,1,192,197,162,51,2,1,192,197,226,89,0,255,255,2,91,74,5,121,0,255,255,2,91,7,5,221,0,197,162,253,0,0,192,197,98,255,0,0,192,197,162,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,7,192,197,98,41,30,7,192,197,162,42,30,7,192,197,226,43,30,8,192,197,34,150,30,8,192,197,98,36,30,6,192,197,98,37,30,6,192,197,162,38,30,6,192,197,226,39,30,7,192,197,34,30,2,12,0,30,2,5,192,197,98,31,2,5,192,197,162,34,30,5,192,197,226,35,30,6,192,197,34,72,0,255,255,2,79,135,5,104,0,255,255,2,79,70,5,36,1,4,192,197,226,37,1,5,192,197,34,0,80,156,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,13,192,197,67,104,30,13,192,197,163,105,30,14,192,197,3,100,30,12,192,197,35,101,30,12,192,197,131,102,30,12,192,197,227,25,2,10,192,197,226,96,30,11,192,197,34,97,30,11,192,197,98,98,30,11,192,197,162,99,30,11,192,197,226,93,1,20,0,96,1,9,0,96,1,10,192,197,34,97,1,10,192,197,98,24,2,10,192,197,162,93,1,9,192,197,98,94,1,9,192,197,162,95,1,9,192,197,226,83,0,255,255,2,81,135,5,115,0,255,255,2,81,70,5,90,1,8,192,197,162,91,1,8,192,197,226,92,1,9,192,197,34,0,78,5,5,8,0,37,30,15,0,37,30,15,192,197,34,39,30,15,192,197,98,41,30,15,192,197,162,43,30,15,192,197,226,150,30,16,192,197,34,104,0,255,255,2,79,5,5,37,1,14,192,197,98,31,2,14,192,197,162,35,30,14,192,197,226,0,80,5,5,10,0,25,2,20,0,101,30,9,0,101,30,18,192,197,35,103,30,18,192,197,131,105,30,18,192,197,227,25,2,17,192,197,98,97,30,17,192,197,162,99,30,17,192,197,226,115,0,255,255,2,81,5,5,91,1,16,192,197,98,93,1,16,192,197,162,95,1,16,192,197,226,97,1,17,192,197,34,82,93,5,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,23,192,197,66,248,30,23,192,197,130,249,30,23,192,197,194,244,30,22,192,197,130,245,30,22,192,197,194,246,30,23,192,197,2,142,30,21,192,197,66,143,30,21,192,197,130,153,30,21,192,197,194,242,30,22,192,197,2,243,30,22,192,197,66,118,1,15,0,118,1,20,192,197,2,119,1,20,192,197,66,120,1,20,192,197,130,50,2,20,192,197,194,51,2,21,192,197,2,89,0,255,255,2,91,73,5,121,0,255,255,2,91,6,5,221,0,19,192,197,66,253,0,19,192,197,130,255,0,19,192,197,194,42,0,72,0,73,0,83,0,84,0,89,0,90,0,104,0,105,0,115,0,116,0,121,0,122,0,221,0,222,0,253,0,254,0,255,0,0,1,36,1,38,1,90,1,98,1,118,1,121,1,24,2,26,2,30,2,32,2,50,2,52,2,34,30,44,30,96,30,106,30,142,30,144,30,150,30,151,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,26,4,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,44,4,54,4,185,160,185,164,185,168,185,172,185,176,185,184,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,76,4,82,4,168,160,168,164,168,168,168,172,168,176,168,184,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,161,153,161,249,161,89,162,153,177,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,161,136,161,232,161,72,162,136,177,168,188,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,150,232,150,25,150,8,150,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,185,136,185,185,186,168,186,25,186,8,186,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,192,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,216,12,89,4,178,180,121,4,169,180,221,4,146,181,253,4,137,181,255,4,73,182,118,5,242,181,119,5,233,181,120,5,82,182,255,5,186,140,72,4,186,144,104,4,177,144,36,5,250,145,37,5,241,145,255,5,185,148,83,4,186,152,115,4,177,152,90,5,154,153,91,5,145,153,92,5,250,153,93,5,241,153,94,5,250,154,95,5,241,154,96,5,26,154,97,5,17,154,255,5,168,140,104,4,168,144,37,5,232,145,255,5,168,148,115,4,168,152,91,5,136,153,93,5,232,153,95,5,232,154,97,5,8,154,255,1,170,170,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,99,9,0,32,1,0,32,0,104,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,249,10,0,32,7,0,0,0,21,0,0,0,251,10,0,0,251,10,0,0,3,0,0,0,0,0,0,0,39,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,97,0,60,0,101,0,60,0,60,0,60,0,69,0,60,0,105,0,60,0,60,0,60,0,73,0,60,0,111,0,60,0,60,0,60,0,79,0,60,0,117,0,60,0,60,0,60,0,85,0,38,0,119,0,60,0,187,2,0,0,170,170,40,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,31,0,0,84,31,0,0,84,31,0,0,84,31,0,0,80,39,0,0,80,39,0,0,80,39,0,0,80,39,0,0,16,43,0,0,50,105,114,84,1,0,64,8,232,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,106,0,114,0,119,0,127,0,134,0,142,0,48,0,56,0,147,0,155,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,174,0,182,0,187,0,192,0,48,0,199,0,207,0,215,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,171,0,48,0,48,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,168,1,220,1,24,2,192,0,76,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,62,0,202,193,62,0,202,226,62,0,202,3,63,0,202,36,63,0,202,69,63,0,202,102,63,0,202,135,63,0,202,168,63,0,202,201,63,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,134,5,2,43,156,5,0,52,156,5,0,54,156,5,0,56,134,5,3,43,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,134,5,4,43,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,134,5,5,43,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,2,43,5,5,0,52,5,5,0,54,5,5,0,56,5,5,3,43,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,4,43,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,5,43,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,61,0,196,160,156,46,197,34,0,0,197,98,0,0,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,197,162,1,0,197,226,1,0,160,112,0,48,196,154,156,68,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,197,34,3,0,5,5,127,12,196,158,156,70,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,196,136,156,90,160,5,38,93,197,34,62,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,62,0,196,160,5,46,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,5,112,0,48,196,154,5,68,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,5,5,125,12,196,158,5,70,197,162,7,0,197,226,7,0,197,34,8,0,197,98,8,0,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,197,226,8,0,197,34,9,0,197,98,9,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,17,0,197,34,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,0,197,162,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,197,34,20,0,197,99,20,0,197,195,20,0,197,35,21,0,197,131,21,0,197,227,21,0,197,67,22,0,197,163,22,0,197,3,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,23,0,197,162,23,0,197,227,23,0,197,67,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,197,34,25,0,197,98,25,0,197,162,25,0,197,226,25,0,197,34,26,0,197,98,26,0,197,162,26,0,197,226,26,0,197,34,27,0,197,98,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,27,0,197,226,27,0,197,34,28,0,197,98,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,28,0,197,226,28,0,197,35,29,0,197,131,29,0,197,227,29,0,197,67,30,0,197,162,30,0,197,226,30,0,197,35,31,0,197,131,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,87,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,31,0,197,67,32,0,197,163,32,0,197,3,33,0,197,98,33,0,197,162,33,0,197,226,33,0,197,34,34,0,197,99,34,0,197,195,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,35,0,197,98,35,0,197,163,35,0,197,3,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,36,0,197,195,36,0,197,35,37,0,197,131,37,0,197,227,37,0,197,67,38,0,197,163,38,0,197,3,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,39,0,197,162,39,0,197,226,39,0,197,34,40,0,197,98,40,0,197,162,40,0,197,227,40,0,197,67,41,0,197,163,41,0,197,3,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,42,0,197,162,42,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,227,43,0,197,67,44,0,197,163,44,0,197,3,45,0,197,99,45,0,197,195,45,0,197,35,46,0,197,131,46,0,197,227,46,0,197,67,47,0,197,162,47,0,197,226,47,0,197,34,48,0,197,98,48,0,197,162,48,0,197,226,48,0,197,34,49,0,197,98,49,0,197,163,49,0,197,3,50,0,197,99,50,0,197,195,50,0,197,35,51,0,197,131,51,0,197,227,51,0,197,67,52,0,197,163,52,0,197,3,53,0,197,99,53,0,197,195,53,0,197,35,54,0,197,131,54,0,197,227,54,0,197,67,55,0,197,163,55,0,197,3,56,0,197,99,56,0,197,195,56,0,197,34,57,0,197,98,57,0,197,162,57,0,197,226,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,43,5,138,0,0,134,5,2,43,5,136,0,0,134,5,2,43,5,142,0,0,134,5,2,43,5,150,0,0,134,5,3,43,5,138,0,0,134,5,3,43,5,136,0,0,134,5,3,43,5,142,0,0,134,5,3,43,5,150,0,0,134,5,4,43,5,138,0,0,134,5,4,43,5,136,0,0,134,5,4,43,5,142,0,0,134,5,4,43,5,154,0,0,134,5,4,43,5,150,0,0,134,5,5,43,5,138,0,0,134,5,5,43,5,136,0,0,134,5,5,43,5,142,0,0,134,5,5,43,5,150,0,0,5,5,2,43,5,138,0,0,5,5,2,43,5,136,0,0,5,5,2,43,5,142,0,0,5,5,2,43,5,150,0,0,5,5,3,43,5,138,0,0,5,5,3,43,5,136,0,0,5,5,3,43,5,142,0,0,5,5,3,43,5,150,0,0,5,5,4,43,5,138,0,0,5,5,4,43,5,136,0,0,5,5,4,43,5,142,0,0,5,5,4,43,5,154,0,0,5,5,4,43,5,150,0,0,5,5,5,43,5,138,0,0,5,5,5,43,5,136,0,0,5,5,5,43,5,142,0,0,5,5,5,43,5,150,0,0,134,5,2,43,5,164,0,0,5,5,2,43,5,164,0,0,134,5,2,43,5,140,0,0,5,5,2,43,5,140,0,0,134,5,2,43,5,156,0,0,5,5,2,43,5,156,0,0,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,43,5,144,0,0,5,5,2,43,5,144,0,0,134,5,3,43,5,154,0,0,5,5,3,43,5,154,0,0,134,5,3,43,5,164,0,0,5,5,3,43,5,164,0,0,134,5,3,43,5,140,0,0,5,5,3,43,5,140,0,0,134,5,3,43,5,162,0,0,5,5,3,43,5,162,0,0,134,5,3,43,5,156,0,0,134,5,4,43,5,164,0,0,5,5,4,43,5,164,0,0,134,5,4,43,5,140,0,0,5,5,4,43,5,140,0,0,134,5,4,43,5,152,0,0,5,5,4,43,5,152,0,0,134,5,5,43,5,154,0,0,5,5,5,43,5,154,0,0,134,5,5,43,5,164,0,0,5,5,5,43,5,164,0,0,134,5,5,43,5,140,0,0,5,5,5,43,5,140,0,0,134,5,5,43,5,146,0,0,5,5,5,43,5,146,0,0,134,5,5,43,5,152,0,0,5,5,5,43,5,152,0,0,134,5,5,43,5,162,0,0,5,5,5,43,5,162,0,0,134,5,4,43,5,190,0,0,5,5,4,43,5,190,0,0,134,5,5,43,5,190,0,0,5,5,5,43,5,190,0,0,134,5,3,43,5,144,0,0,5,5,3,43,5,144,0,0,134,5,4,43,5,144,0,0,5,5,4,43,5,144,0,0,134,5,5,43,5,144,0,0,5,5,5,43,5,144,0,0,134,5,5,43,5,150,0,0,5,164,0,0,5,5,5,43,5,150,0,0,5,164,0,0,134,5,5,43,5,150,0,0,5,136,0,0,5,5,5,43,5,150,0,0,5,136,0,0,134,5,5,43,5,150,0,0,5,144,0,0,5,5,5,43,5,150,0,0,5,144,0,0,134,5,5,43,5,150,0,0,5,138,0,0,5,5,5,43,5,150,0,0,5,138,0,0,134,5,4,43,5,162,0,0,5,5,4,43,5,162,0,0,134,5,4,43,5,162,0,0,5,164,0,0,5,5,4,43,5,162,0,0,5,164,0,0,134,5,2,43,5,184,0,0,5,5,2,43,5,184,0,0,134,5,2,43,5,188,0,0,5,5,2,43,5,188,0,0,134,5,3,43,5,184,0,0,5,5,3,43,5,184,0,0,134,5,3,43,5,188,0,0,5,5,3,43,5,188,0,0,134,5,4,43,5,184,0,0,5,5,4,43,5,184,0,0,134,5,4,43,5,188,0,0,5,5,4,43,5,188,0,0,134,5,5,43,5,184,0,0,5,5,5,43,5,184,0,0,134,5,5,43,5,188,0,0,5,5,5,43,5,188,0,0,134,5,2,43,5,160,0,0,5,5,2,43,5,160,0,0,134,5,4,43,5,150,0,0,5,164,0,0,5,5,4,43,5,150,0,0,5,164,0,0,134,5,4,43,5,154,0,0,5,164,0,0,5,5,4,43,5,154,0,0,5,164,0,0,134,5,4,43,5,156,0,0,5,5,4,43,5,156,0,0,134,5,4,43,5,156,0,0,5,164,0,0,5,5,4,43,5,156,0,0,5,164,0,0,134,5,2,43,5,164,0,0,5,138,0,0,5,5,2,43,5,164,0,0,5,138,0,0,134,5,2,43,5,164,0,0,5,136,0,0,5,5,2,43,5,164,0,0,5,136,0,0,134,5,2,43,5,204,0,0,5,5,2,43,5,204,0,0,134,5,2,43,5,208,0,0,5,5,2,43,5,208,0,0,134,5,2,43,5,160,0,0,5,140,0,0,5,5,2,43,5,160,0,0,5,140,0,0,134,5,3,43,5,208,0,0,5,5,3,43,5,208,0,0,134,5,3,43,5,150,0,0,5,136,0,0,5,5,3,43,5,150,0,0,5,136,0,0,134,5,4,43,5,154,0,0,5,136,0,0,5,5,4,43,5,154,0,0,5,136,0,0,134,5,4,43,5,154,0,0,5,150,0,0,5,5,4,43,5,154,0,0,5,150,0,0,134,5,4,43,5,164,0,0,5,138,0,0,5,5,4,43,5,164,0,0,5,138,0,0,134,5,4,43,5,164,0,0,5,136,0,0,5,5,4,43,5,164,0,0,5,136,0,0,134,5,5,43,5,198,0,0,5,5,5,43,5,198,0,0,134,5,5,43,5,208,0,0,5,5,5,43,5,208,0,0,134,5,5,43,5,204,0,0,5,5,5,43,5,204,0,0,134,5,5,43,5,154,0,0,5,136,0,0,5,5,5,43,5,154,0,0,5,136,0,0,134,5,5,43,5,164,0,0,5,150,0,0,5,5,5,43,5,164,0,0,5,150,0,0,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,134,5,2,43,5,142,0,0,5,136,0,0,5,5,2,43,5,142,0,0,5,136,0,0,134,5,2,43,5,142,0,0,5,138,0,0,5,5,2,43,5,142,0,0,5,138,0,0,134,5,2,43,5,142,0,0,5,182,0,0,5,5,2,43,5,142,0,0,5,182,0,0,134,5,2,43,5,142,0,0,5,154,0,0,5,5,2,43,5,142,0,0,5,154,0,0,134,5,2,43,5,196,0,0,5,142,0,0,5,5,2,43,5,196,0,0,5,142,0,0,134,5,3,43,5,182,0,0,5,5,3,43,5,182,0,0,134,5,3,43,5,196,0,0,5,5,3,43,5,196,0,0,134,5,4,43,5,196,0,0,5,5,4,43,5,196,0,0,134,5,4,43,5,182,0,0,5,5,4,43,5,182,0,0,134,5,4,43,5,142,0,0,5,136,0,0,5,5,4,43,5,142,0,0,5,136,0,0,134,5,4,43,5,142,0,0,5,138,0,0,5,5,4,43,5,142,0,0,5,138,0,0,134,5,4,43,5,142,0,0,5,182,0,0,5,5,4,43,5,142,0,0,5,182,0,0,134,5,4,43,5,142,0,0,5,154,0,0,5,5,4,43,5,142,0,0,5,154,0,0,134,5,4,43,5,196,0,0,5,142,0,0,5,5,4,43,5,196,0,0,5,142,0,0,134,5,4,43,5,190,0,0,5,136,0,0,5,5,4,43,5,190,0,0,5,136,0,0,134,5,4,43,5,190,0,0,5,138,0,0,5,5,4,43,5,190,0,0,5,138,0,0,134,5,4,43,5,190,0,0,5,182,0,0,5,5,4,43,5,190,0,0,5,182,0,0,134,5,4,43,5,190,0,0,5,154,0,0,5,5,4,43,5,190,0,0,5,154,0,0,134,5,4,43,5,190,0,0,5,196,0,0,5,5,4,43,5,190,0,0,5,196,0,0,134,5,5,43,5,196,0,0,5,5,5,43,5,196,0,0,134,5,5,43,5,182,0,0,5,5,5,43,5,182,0,0,134,5,5,43,5,190,0,0,5,136,0,0,5,5,5,43,5,190,0,0,5,136,0,0,134,5,5,43,5,190,0,0,5,138,0,0,5,5,5,43,5,190,0,0,5,138,0,0,134,5,5,43,5,190,0,0,5,182,0,0,5,5,5,43,5,190,0,0,5,182,0,0,134,5,5,43,5,190,0,0,5,154,0,0,5,5,5,43,5,190,0,0,5,154,0,0,134,5,5,43,5,190,0,0,5,196,0,0,5,5,5,43,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,76,185,80,185,84,185,60,185,92,185,96,185,100,185,64,186,112,185,116,185,120,185,124,186,128,185,68,185,140,185,144,185,152,186,156,185,160,185,72,185,168,185,172,185,176,185,180,185,184,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,76,168,80,168,84,168,60,168,92,168,96,168,100,168,64,168,112,168,116,168,120,168,124,168,128,168,68,168,140,168,144,168,152,168,156,168,160,168,72,168,168,168,172,168,176,168,180,168,184,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,82,185,61,153,61,249,61,89,62,185,65,153,65,249,65,89,66,217,84,154,130,185,69,153,69,249,69,153,70,89,70,136,14,217,138,185,73,153,73,249,73,89,74,153,181,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,82,168,61,136,61,232,61,72,62,168,65,136,65,232,65,72,66,200,84,136,130,168,69,136,69,232,69,136,70,72,70,128,14,200,138,168,73,136,73,232,73,72,74,136,181,168,188,72,182,57,59,40,59,217,57,200,57,25,59,8,59,153,81,136,81,249,81,232,81,185,82,168,82,25,82,8,82,25,86,8,86,89,87,72,87,57,63,40,63,217,61,200,61,185,62,168,62,25,63,8,63,25,62,8,62,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,153,66,136,66,57,67,40,67,217,65,200,65,25,67,8,67,185,66,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,71,40,71,217,69,200,69,121,70,104,70,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,250,157,232,157,250,158,232,158,26,158,8,158,249,162,232,162,25,162,8,162,185,164,168,164,153,74,136,74,57,75,40,75,217,73,200,73,57,74,40,74,121,74,104,74,25,75,8,75,249,173,232,173,249,181,232,181,89,182,153,185,136,185,185,186,168,186,25,186,8,186,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,186,88,200,156,169,156,200,56,169,88,186,104,187,112,169,104,169,112,169,192,169,128,217,136,186,88,200,136,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,39,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,242,10,0,32,1,0,32,0,247,10,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,108,15,0,32,7,0,0,0,23,0,0,0,110,15,0,0,110,15,0,0,3,0,0,0,0,0,0,0,79,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,14,32,38,0,243,5,60,0,60,0,39,0,39,0,14,32,38,0,244,5,60,0,60,0,39,0,34,0,39,0,0,0,65,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,101,0,98,0,114,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,39,0,60,0,60,0,243,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,34,0,39,0,60,0,60,0,244,5,0,0,170,170,106,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,228,31,0,0,228,31,0,0,228,31,0,0,228,31,0,0,12,34,0,0,12,34,0,0,82,34,0,0,82,34,0,0,82,34,0,0,50,105,114,84,1,0,64,8,241,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,224,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,253,0,0,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,194,5,221,251,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,220,251,5,252,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,67,0,50,0,59,0,79,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,188,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,64,0,0,0,64,1,0,0,96,25,0,0,96,25,0,0,96,25,0,0,96,25,0,0,164,25,0,0,19,0,0,0,0,0,0,101,194,255,50,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,0,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,2,106,9,5,2,120,9,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,67,0,50,0,59,0,243,8,0,16,44,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,235,8,0,32,99,15,0,32,1,0,32,0,104,15,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,168,6,0,32,7,0,0,0,21,0,0,0,170,6,0,0,170,6,0,0,3,0,0,0,0,0,0,0,67,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,86,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,80,9,60,0,2,9,60,0,60,0,1,9,60,0,3,9,0,0,116,25,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,108,0,0,0,108,1,0,0,12,25,0,0,12,25,0,0,20,25,0,0,20,25,0,0,88,25,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,39,40,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,104,193,3,7,104,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,104,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,161,6,0,32,1,0,32,0,166,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,220,19,0,32,7,0,0,0,23,0,0,0,222,19,0,0,222,19,0,0,3,0,0,0,0,0,0,0,128,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,65,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,111,0,116,0,104,0,101,0,114,0,115,0,93,0,0,0,136,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,68,0,60,0,100,0,126,1,60,0,60,0,60,0,198,1,60,0,60,0,60,0,68,0,126,1,60,0,60,0,60,0,197,1,60,0,60,0,60,0,68,0,125,1,60,0,60,0,60,0,196,1,60,0,17,1,60,0,60,0,60,0,16,1,38,0,76,0,60,0,108,0,106,0,60,0,60,0,60,0,201,1,60,0,60,0,60,0,76,0,106,0,60,0,60,0,60,0,200,1,60,0,60,0,60,0,76,0,74,0,60,0,60,0,60,0,199,1,38,0,78,0,60,0,110,0,106,0,60,0,60,0,60,0,204,1,60,0,60,0,60,0,78,0,106,0,60,0,60,0,60,0,203,1,60,0,60,0,60,0,78,0,74,0,60,0,60,0,60,0,202,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,252,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,113,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,180,35,0,0,180,35,0,0,180,35,0,0,180,35,0,0,172,38,0,0,172,38,0,0,198,40,0,0,228,40,0,0,228,40,0,0,50,105,114,84,1,0,64,8,46,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,152,0,160,0,48,0,56,0,159,0,167,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,192,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,48,0,48,0,216,0,48,0,222,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,240,0,48,0,48,0,248,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,182,0,48,0,48,0,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,23,1,48,0,48,0,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,232,1,32,2,96,2,192,0,124,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,22,0,202,161,22,0,202,194,22,0,202,227,22,0,202,4,23,0,202,37,23,0,202,70,23,0,202,103,23,0,202,136,23,0,202,169,23,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,201,68,2,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,224,4,0,156,5,0,66,201,64,7,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,166,10,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,11,0,201,4,13,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,128,14,0,5,5,0,66,201,32,16,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,18,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,13,0,201,134,19,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,13,0,201,6,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,22,0,201,70,23,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,198,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,25,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,5,71,238,102,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,197,98,5,0,192,0,0,0,192,0,0,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,197,34,6,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,197,226,6,0,197,35,7,0,197,130,7,0,192,0,0,0,192,0,0,0,197,194,7,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,29,0,201,230,29,0,192,0,0,0,192,0,0,0,197,226,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,4,0,5,5,10,121,5,5,12,121,197,226,4,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,197,162,5,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,5,0,5,5,107,121,197,34,6,0,5,5,111,121,197,98,6,0,5,5,115,121,197,162,6,0,5,5,119,121,197,226,6,0,197,35,7,0,197,130,7,0,5,5,127,121,5,5,129,121,197,194,7,0,197,3,8,0,197,98,8,0,5,5,137,121,5,5,139,121,197,162,8,0,5,5,143,121,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,78,196,196,48,0,12,3,11,192,197,98,5,78,196,196,48,0,12,3,11,192,197,162,156,92,196,196,48,0,12,3,12,192,197,98,5,92,196,196,48,0,12,3,12,192,197,162,156,92,196,210,48,0,12,3,12,192,197,226,5,92,196,210,48,0,12,3,13,192,197,34,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,3,0,67,0,50,0,59,0,131,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,28,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,188,28,0,0,188,28,0,0,188,28,0,0,188,28,0,0,208,29,0,0,208,29,0,0,164,31,0,0,194,31,0,0,4,36,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,153,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,7,0,202,129,7,0,202,162,7,0,202,195,7,0,202,228,7,0,202,5,8,0,202,38,8,0,202,71,8,0,202,104,8,0,202,137,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,132,1,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,4,0,156,5,0,66,201,128,6,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,10,0,201,68,12,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,13,0,5,5,0,66,201,96,15,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,6,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,230,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,6,0,201,198,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,7,0,201,70,20,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,21,0,201,134,22,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,23,0,201,6,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,24,0,201,134,25,0,192,0,0,0,192,0,0,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,26,0,201,6,27,0,201,198,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,156,78,196,196,48,0,12,3,4,192,197,162,5,78,196,196,48,0,12,3,4,192,197,226,156,92,196,196,48,0,12,3,5,192,197,162,5,92,196,196,48,0,12,3,5,192,197,226,156,92,196,210,48,0,12,3,6,192,197,34,5,92,196,210,48,0,12,3,6,192,197,98,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,186,88,185,92,185,96,185,100,186,104,186,112,185,116,36,4,185,128,46,4,185,144,185,148,185,152,185,160,56,4,185,172,185,180,185,184,185,188,185,192,185,196,58,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,60,4,62,4,168,88,168,92,168,96,168,100,168,104,168,112,168,116,67,4,168,128,73,4,168,144,168,148,168,152,168,160,79,4,168,172,168,180,168,184,168,188,168,192,168,196,81,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,83,4,186,89,154,89,250,89,90,90,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,181,153,181,249,181,89,182,153,197,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,85,4,168,89,136,89,232,89,72,90,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,181,136,181,232,181,72,182,136,197,168,208,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,84,168,84,58,91,40,91,218,89,200,89,186,90,168,90,26,91,8,91,26,90,8,90,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,165,136,165,250,165,232,165,87,4,89,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,153,201,136,201,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,164,169,164,200,56,169,88,187,104,187,112,169,104,169,112,169,212,169,132,217,144,187,88,200,144,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,76,90,2,122,2,125,5,186,80,126,5,177,80,255,5,185,120,74,4,186,124,106,4,177,124,52,5,250,125,53,5,241,125,255,5,186,132,74,4,186,136,106,4,177,136,52,5,250,137,53,5,241,137,255,5,186,164,255,5,185,200,255,5,168,64,255,5,168,76,122,2,126,5,168,80,255,5,168,120,106,4,168,124,53,5,232,125,255,5,168,132,106,4,168,136,53,5,232,137,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,3,0,67,0,50,0,59,0,203,10,0,16,71,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,195,10,0,32,211,19,0,32,1,0,32,0,216,19,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,221,9,0,32,7,0,0,0,21,0,0,0,223,9,0,0,223,9,0,0,3,0,0,0,0,0,0,0,70,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,220,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,69,0,60,0,27,1,60,0,60,0,60,0,26,1,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,32,0,76,0,60,0,66,1,60,0,60,0,60,0,65,1,38,0,82,0,60,0,89,1,60,0,60,0,60,0,88,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,60,0,122,1,60,0,60,0,60,0,121,1,0,0,170,170,170,170,170,170,56,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,28,0,0,84,28,0,0,84,28,0,0,84,28,0,0,168,30,0,0,168,30,0,0,222,33,0,0,248,33,0,0,32,38,0,0,50,105,114,84,1,0,64,8,184,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,112,0,120,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,48,0,149,0,157,0,161,0,167,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,136,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,17,0,202,129,17,0,202,162,17,0,202,195,17,0,202,228,17,0,202,5,18,0,202,38,18,0,202,71,18,0,202,104,18,0,202,137,18,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,4,0,0,156,5,0,48,201,134,8,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,201,70,9,0,201,38,10,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,6,11,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,228,12,0,5,5,0,48,201,134,21,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,201,70,22,0,201,38,23,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,6,24,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,16,0,201,230,25,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,16,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,17,0,201,102,27,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,28,0,201,166,29,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,63,5,5,21,63,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,30,0,201,38,31,0,134,5,2,77,5,5,2,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,31,0,201,166,32,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,93,5,5,3,93,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,33,0,201,38,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,166,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,36,0,201,38,37,0,201,230,37,0,201,166,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,39,0,201,38,40,0,192,0,0,0,192,0,0,0,201,230,40,0,201,166,41,0,192,0,0,0,192,0,0,0,201,102,42,0,201,38,43,0,192,0,0,0,192,0,0,0,197,162,13,0,197,226,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,43,0,201,102,45,0,201,230,46,0,201,102,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,49,0,201,166,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,3,93,5,196,0,0,134,5,2,93,5,196,0,0,5,5,3,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,3,93,5,210,0,0,134,5,2,93,5,210,0,0,5,5,3,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,51,5,196,0,0,5,5,2,51,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,19,0,35,30,32,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,35,30,1,192,197,98,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,31,2,15,0,31,2,0,192,197,226,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,34,30,1,192,197,34,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,30,2,0,192,197,162,0,50,156,5,48,0,12,3,2,243,134,5,0,76,156,5,48,0,12,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,2,0,1,3,255,255,3,93,134,5,12,3,255,255,2,93,134,5,65,3,255,255,3,93,134,5,0,46,5,5,19,0,35,30,32,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,35,30,5,192,197,34,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,31,2,15,0,31,2,4,192,197,162,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,34,30,4,192,197,226,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,30,2,4,192,197,98,0,50,5,5,48,0,12,3,2,243,5,5,0,76,5,5,48,0,12,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,2,0,1,3,255,255,3,93,5,5,12,3,255,255,2,93,5,5,65,3,255,255,3,93,5,5,156,46,196,160,2,0,1,3,7,192,197,162,12,3,7,192,197,226,65,3,7,192,197,162,5,46,196,160,2,0,1,3,8,192,197,34,12,3,8,192,197,98,65,3,8,192,197,34,156,50,196,162,48,0,12,3,8,192,197,162,5,50,196,162,48,0,12,3,8,192,197,226,156,76,196,160,48,0,12,3,9,192,197,34,5,76,196,160,48,0,12,3,9,192,197,98,156,78,196,160,48,0,12,3,9,192,197,162,5,78,196,160,48,0,12,3,9,192,197,226,156,78,196,202,48,0,12,3,10,192,197,34,5,78,196,202,48,0,12,3,10,192,197,98,156,50,196,160,48,0,12,3,10,192,197,162,5,50,196,160,48,0,12,3,10,192,197,226,156,50,196,204,48,0,12,3,11,192,197,34,5,50,196,204,48,0,12,3,11,192,197,98,156,50,196,208,48,0,12,3,11,192,197,162,5,50,196,208,48,0,12,3,11,192,197,226,156,76,196,196,48,0,12,3,12,192,197,34,5,76,196,196,48,0,12,3,12,192,197,98,156,76,196,210,48,0,12,3,12,192,197,162,5,76,196,210,48,0,12,3,12,192,197,226,156,78,196,196,48,0,12,3,13,192,197,34,5,78,196,196,48,0,12,3,13,192,197,98,156,92,196,196,2,0,1,3,14,192,197,34,12,3,14,192,197,98,65,3,14,192,197,34,5,92,196,196,2,0,1,3,14,192,197,162,12,3,14,192,197,226,65,3,14,192,197,162,156,92,196,210,2,0,1,3,15,192,197,34,12,3,15,192,197,98,65,3,15,192,197,34,5,92,196,210,2,0,1,3,15,192,197,162,12,3,15,192,197,226,65,3,15,192,197,162,156,50,196,196,48,0,12,3,16,192,197,34,5,50,196,196,48,0,12,3,16,192,197,98,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,76,36,4,185,88,185,92,185,96,186,104,186,112,185,116,185,124,185,128,186,132,185,140,185,144,185,148,38,4,40,4,185,172,185,180,185,184,185,188,185,192,185,196,42,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,44,4,168,76,54,4,168,88,168,92,168,96,168,104,168,112,168,116,168,124,168,128,168,132,168,140,168,144,168,148,56,4,58,4,168,172,168,180,168,184,168,188,168,192,168,196,60,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,62,4,186,81,154,81,250,81,90,82,186,105,154,105,250,105,90,106,217,76,154,134,185,141,153,141,249,141,153,142,89,142,136,14,217,142,185,181,153,181,249,181,89,182,153,197,185,212,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,64,4,168,81,136,81,232,81,72,82,168,105,136,105,232,105,72,106,200,76,136,134,168,141,136,141,232,141,136,142,72,142,128,14,200,142,168,181,136,181,232,181,72,182,136,197,168,212,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,66,4,68,4,185,84,168,84,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,152,153,125,136,125,249,126,232,126,25,126,8,126,121,127,104,127,185,120,168,120,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,157,136,157,70,4,72,4,185,160,168,160,154,165,136,165,250,165,232,165,74,4,76,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,185,208,168,208,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,164,169,164,200,56,169,80,187,104,187,112,169,104,169,112,169,216,169,132,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,187,100,104,4,178,100,36,5,251,101,37,5,242,101,255,5,186,80,255,5,185,156,255,5,186,164,255,5,185,200,255,5,168,64,72,4,177,100,104,4,168,100,36,5,241,101,37,5,232,101,255,5,168,80,255,5,168,156,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,26,83,255,5,8,83,255,5,249,158,255,5,232,158,255,5,250,166,255,5,232,166,255,1,3,0,69,0,52,0,61,0,71,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,214,9,0,32,1,0,32,0,219,9,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,100,18,0,32,7,0,0,0,21,0,0,0,102,18,0,0,102,18,0,0,3,0,0,0,0,0,0,0,19,1,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,246,221,38,0,67,0,60,0,99,0,115,0,60,0,60,0,60,0,67,0,115,0,60,0,60,0,60,0,67,0,83,0,38,0,68,0,60,0,100,0,122,0,60,0,60,0,60,0,68,0,122,0,60,0,60,0,60,0,68,0,90,0,38,0,68,0,90,0,60,0,100,0,122,0,115,0,60,0,60,0,60,0,68,0,122,0,115,0,60,0,60,0,60,0,68,0,90,0,83,0,38,0,71,0,60,0,103,0,121,0,60,0,60,0,60,0,71,0,121,0,60,0,60,0,60,0,71,0,89,0,38,0,76,0,60,0,108,0,121,0,60,0,60,0,60,0,76,0,121,0,60,0,60,0,60,0,76,0,89,0,38,0,78,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,38,0,83,0,60,0,115,0,122,0,60,0,60,0,60,0,83,0,122,0,60,0,60,0,60,0,83,0,90,0,38,0,84,0,60,0,116,0,121,0,60,0,60,0,60,0,84,0,121,0,60,0,60,0,60,0,84,0,89,0,38,0,90,0,60,0,122,0,115,0,60,0,60,0,60,0,90,0,115,0,60,0,60,0,60,0,90,0,83,0,38,0,79,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,38,0,85,0,60,0,252,0,60,0,60,0,60,0,220,0,60,0,60,0,113,1,60,0,60,0,60,0,112,1,38,0,99,0,115,0,60,0,60,0,60,0,99,0,99,0,115,0,47,0,99,0,115,0,38,0,67,0,115,0,60,0,60,0,60,0,67,0,99,0,115,0,47,0,99,0,115,0,38,0,67,0,83,0,60,0,60,0,60,0,67,0,67,0,83,0,47,0,67,0,83,0,38,0,100,0,122,0,60,0,60,0,60,0,100,0,100,0,122,0,47,0,100,0,122,0,38,0,68,0,122,0,60,0,60,0,60,0,68,0,100,0,122,0,47,0,100,0,122,0,38,0,68,0,90,0,60,0,60,0,60,0,68,0,68,0,90,0,47,0,68,0,90,0,38,0,100,0,122,0,115,0,60,0,60,0,60,0,100,0,100,0,122,0,115,0,47,0,100,0,122,0,115,0,38,0,68,0,122,0,115,0,60,0,60,0,60,0,68,0,100,0,122,0,115,0,47,0,100,0,122,0,115,0,38,0,68,0,90,0,83,0,60,0,60,0,60,0,68,0,68,0,90,0,83,0,47,0,68,0,90,0,83,0,38,0,103,0,121,0,60,0,60,0,60,0,103,0,103,0,121,0,47,0,103,0,121,0,38,0,71,0,121,0,60,0,60,0,60,0,71,0,103,0,121,0,47,0,103,0,121,0,38,0,71,0,89,0,60,0,60,0,60,0,71,0,71,0,89,0,47,0,71,0,89,0,38,0,108,0,121,0,60,0,60,0,60,0,108,0,108,0,121,0,47,0,108,0,121,0,38,0,76,0,121,0,60,0,60,0,60,0,76,0,108,0,121,0,47,0,108,0,121,0,38,0,76,0,89,0,60,0,60,0,60,0,76,0,76,0,89,0,47,0,76,0,89,0,38,0,110,0,121,0,60,0,60,0,60,0,110,0,110,0,121,0,47,0,110,0,121,0,38,0,78,0,121,0,60,0,60,0,60,0,78,0,110,0,121,0,47,0,110,0,121,0,38,0,78,0,89,0,60,0,60,0,60,0,78,0,78,0,89,0,47,0,78,0,89,0,38,0,115,0,122,0,60,0,60,0,60,0,115,0,115,0,122,0,47,0,115,0,122,0,38,0,83,0,122,0,60,0,60,0,60,0,83,0,115,0,122,0,47,0,115,0,122,0,38,0,83,0,90,0,60,0,60,0,60,0,83,0,83,0,90,0,47,0,83,0,90,0,38,0,116,0,121,0,60,0,60,0,60,0,116,0,116,0,121,0,47,0,116,0,121,0,38,0,84,0,121,0,60,0,60,0,60,0,84,0,116,0,121,0,47,0,116,0,121,0,38,0,84,0,89,0,60,0,60,0,60,0,84,0,84,0,89,0,47,0,84,0,89,0,38,0,122,0,115,0,60,0,60,0,60,0,122,0,122,0,115,0,47,0,122,0,115,0,38,0,90,0,115,0,60,0,60,0,60,0,90,0,122,0,115,0,47,0,122,0,115,0,38,0,90,0,83,0,60,0,60,0,60,0,90,0,90,0,83,0,47,0,90,0,83,0,0,0,34,69,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,27,0,0,212,27,0,0,212,27,0,0,212,27,0,0,104,45,0,0,104,45,0,0,214,62,0,0,48,63,0,0,10,69,0,0,50,105,114,84,1,0,64,8,176,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,93,0,101,0,106,0,114,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,151,0,159,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,141,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,116,1,168,1,212,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,139,0,202,129,139,0,202,162,139,0,202,195,139,0,202,228,139,0,202,5,140,0,202,38,140,0,202,71,140,0,202,104,140,0,202,137,140,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,201,32,20,0,156,5,0,50,156,5,0,52,201,32,52,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,64,71,0,156,5,0,66,201,160,90,0,201,6,110,0,156,5,0,72,160,5,0,74,156,5,0,76,201,96,111,0,201,128,124,0,201,230,143,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,160,145,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,64,166,0,201,128,176,0,5,5,0,50,5,5,0,52,201,160,192,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,224,202,0,5,5,0,66,201,64,213,0,201,166,223,0,5,5,0,72,5,5,0,74,5,5,0,76,201,0,225,0,201,160,231,0,201,6,242,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,192,243,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,138,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,226,138,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,139,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,71,5,70,2,71,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,83,5,70,2,83,201,38,254,0,201,70,255,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,0,1,201,134,1,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,1,201,198,3,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,126,0,197,98,126,0,197,226,76,0,197,130,118,0,197,162,126,0,197,226,126,0,197,34,127,0,197,98,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,4,1,201,6,6,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,128,0,197,226,128,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,7,1,201,70,8,1,201,102,9,1,201,134,10,1,201,166,11,1,201,198,12,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,13,1,201,6,15,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,16,1,201,70,17,1,201,102,18,1,201,134,19,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,20,1,201,198,21,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,138,5,2,47,137,5,2,47,138,5,2,47,137,5,2,47,5,136,0,0,138,5,2,47,137,5,2,47,5,142,0,0,138,5,2,47,137,5,2,47,5,160,0,0,138,5,2,47,137,5,2,47,5,144,0,0,138,5,2,47,137,5,2,47,5,202,0,0,138,5,2,47,137,5,2,47,5,156,0,0,138,5,2,47,137,5,2,47,5,196,0,0,138,5,2,47,137,5,2,47,5,136,0,0,5,156,0,0,138,5,2,47,137,5,2,47,5,144,0,0,5,156,0,0,138,5,2,47,137,5,2,47,5,196,0,0,5,156,0,0,72,5,2,47,5,5,2,47,72,5,2,47,5,5,2,47,5,136,0,0,72,5,2,47,5,5,2,47,5,142,0,0,72,5,2,47,5,5,2,47,5,160,0,0,72,5,2,47,5,5,2,47,5,144,0,0,72,5,2,47,5,5,2,47,5,202,0,0,72,5,2,47,5,5,2,47,5,156,0,0,72,5,2,47,5,5,2,47,5,196,0,0,72,5,2,47,5,5,2,47,5,136,0,0,5,156,0,0,72,5,2,47,5,5,2,47,5,144,0,0,5,156,0,0,72,5,2,47,5,5,2,47,5,196,0,0,5,156,0,0,71,5,2,47,5,136,0,0,71,5,2,47,5,142,0,0,71,5,2,47,5,160,0,0,71,5,2,47,5,144,0,0,71,5,2,47,5,202,0,0,71,5,2,47,5,156,0,0,71,5,2,47,5,196,0,0,71,5,2,47,5,136,0,0,5,156,0,0,71,5,2,47,5,144,0,0,5,156,0,0,71,5,2,47,5,196,0,0,5,156,0,0,138,5,2,49,137,5,2,49,138,5,3,49,137,5,3,49,138,5,3,49,137,5,3,49,5,136,0,0,138,5,3,49,137,5,3,49,5,142,0,0,138,5,3,49,137,5,3,49,5,160,0,0,138,5,3,49,137,5,3,49,5,144,0,0,138,5,3,49,137,5,3,49,5,202,0,0,138,5,3,49,137,5,3,49,5,156,0,0,138,5,3,49,137,5,3,49,5,196,0,0,138,5,3,49,137,5,3,49,5,136,0,0,5,156,0,0,138,5,3,49,137,5,3,49,5,144,0,0,5,156,0,0,138,5,3,49,137,5,3,49,5,196,0,0,5,156,0,0,138,5,2,49,137,5,2,49,5,136,0,0,138,5,2,49,137,5,2,49,5,156,0,0,138,5,2,49,137,5,2,49,5,144,0,0,138,5,2,49,137,5,2,49,5,142,0,0,138,5,2,49,137,5,2,49,5,196,0,0,138,5,2,49,137,5,2,49,5,210,0,0,72,5,2,49,5,5,2,49,72,5,3,49,5,5,3,49,72,5,3,49,5,5,3,49,5,136,0,0,72,5,3,49,5,5,3,49,5,142,0,0,72,5,3,49,5,5,3,49,5,160,0,0,72,5,3,49,5,5,3,49,5,144,0,0,72,5,3,49,5,5,3,49,5,202,0,0,72,5,3,49,5,5,3,49,5,156,0,0,72,5,3,49,5,5,3,49,5,196,0,0,72,5,3,49,5,5,3,49,5,136,0,0,5,156,0,0,72,5,3,49,5,5,3,49,5,144,0,0,5,156,0,0,72,5,3,49,5,5,3,49,5,196,0,0,5,156,0,0,72,5,2,49,5,5,2,49,5,136,0,0,72,5,2,49,5,5,2,49,5,156,0,0,72,5,2,49,5,5,2,49,5,144,0,0,72,5,2,49,5,5,2,49,5,142,0,0,72,5,2,49,5,5,2,49,5,196,0,0,72,5,2,49,5,5,2,49,5,210,0,0,71,5,3,49,5,136,0,0,71,5,3,49,5,142,0,0,71,5,3,49,5,160,0,0,71,5,3,49,5,144,0,0,71,5,3,49,5,202,0,0,71,5,3,49,5,156,0,0,71,5,3,49,5,196,0,0,71,5,3,49,5,136,0,0,5,156,0,0,71,5,3,49,5,144,0,0,5,156,0,0,71,5,3,49,5,196,0,0,5,156,0,0,71,5,2,49,5,136,0,0,71,5,2,49,5,156,0,0,71,5,2,49,5,144,0,0,71,5,2,49,5,142,0,0,71,5,2,49,5,196,0,0,71,5,2,49,5,210,0,0,138,5,2,55,137,5,2,55,138,5,2,55,137,5,2,55,5,136,0,0,138,5,2,55,137,5,2,55,5,142,0,0,138,5,2,55,137,5,2,55,5,150,0,0,138,5,2,55,137,5,2,55,5,164,0,0,138,5,2,55,137,5,2,55,5,156,0,0,138,5,2,55,137,5,2,55,5,138,0,0,138,5,2,55,137,5,2,55,5,196,0,0,138,5,2,55,137,5,2,55,5,182,0,0,138,5,2,55,137,5,2,55,5,154,0,0,72,5,2,55,5,5,2,55,72,5,2,55,5,5,2,55,5,136,0,0,72,5,2,55,5,5,2,55,5,150,0,0,72,5,2,55,5,5,2,55,5,142,0,0,72,5,2,55,5,5,2,55,5,164,0,0,72,5,2,55,5,5,2,55,5,156,0,0,72,5,2,55,5,5,2,55,5,146,0,0,72,5,2,55,5,5,2,55,5,138,0,0,72,5,2,55,5,5,2,55,5,196,0,0,72,5,2,55,5,5,2,55,5,182,0,0,72,5,2,55,5,5,2,55,5,154,0,0,71,5,2,55,5,136,0,0,71,5,2,55,5,150,0,0,71,5,2,55,5,142,0,0,71,5,2,55,5,164,0,0,71,5,2,55,5,156,0,0,71,5,2,55,5,146,0,0,71,5,2,55,5,138,0,0,71,5,2,55,5,196,0,0,71,5,2,55,5,182,0,0,71,5,2,55,5,154,0,0,138,5,2,65,137,5,2,65,138,5,2,65,137,5,2,65,5,136,0,0,138,5,2,65,137,5,2,65,5,142,0,0,138,5,2,65,137,5,2,65,5,150,0,0,138,5,2,65,137,5,2,65,5,164,0,0,138,5,2,65,137,5,2,65,5,156,0,0,138,5,2,65,137,5,2,65,5,138,0,0,138,5,2,65,137,5,2,65,5,196,0,0,138,5,2,65,137,5,2,65,5,182,0,0,138,5,2,65,137,5,2,65,5,154,0,0,72,5,2,65,5,5,2,65,72,5,2,65,5,5,2,65,5,136,0,0,72,5,2,65,5,5,2,65,5,150,0,0,72,5,2,65,5,5,2,65,5,142,0,0,72,5,2,65,5,5,2,65,5,164,0,0,72,5,2,65,5,5,2,65,5,156,0,0,72,5,2,65,5,5,2,65,5,146,0,0,72,5,2,65,5,5,2,65,5,138,0,0,72,5,2,65,5,5,2,65,5,196,0,0,72,5,2,65,5,5,2,65,5,182,0,0,72,5,2,65,5,5,2,65,5,154,0,0,71,5,2,65,5,136,0,0,71,5,2,65,5,150,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,164,0,0,71,5,2,65,5,156,0,0,71,5,2,65,5,146,0,0,71,5,2,65,5,138,0,0,71,5,2,65,5,196,0,0,71,5,2,65,5,182,0,0,71,5,2,65,5,154,0,0,138,5,2,69,137,5,2,69,138,5,2,69,137,5,2,69,5,136,0,0,138,5,2,69,137,5,2,69,5,142,0,0,138,5,2,69,137,5,2,69,5,150,0,0,138,5,2,69,137,5,2,69,5,164,0,0,138,5,2,69,137,5,2,69,5,156,0,0,138,5,2,69,137,5,2,69,5,138,0,0,138,5,2,69,137,5,2,69,5,196,0,0,138,5,2,69,137,5,2,69,5,182,0,0,138,5,2,69,137,5,2,69,5,154,0,0,72,5,2,69,5,5,2,69,72,5,2,69,5,5,2,69,5,136,0,0,72,5,2,69,5,5,2,69,5,150,0,0,72,5,2,69,5,5,2,69,5,142,0,0,72,5,2,69,5,5,2,69,5,164,0,0,72,5,2,69,5,5,2,69,5,156,0,0,72,5,2,69,5,5,2,69,5,146,0,0,72,5,2,69,5,5,2,69,5,138,0,0,72,5,2,69,5,5,2,69,5,196,0,0,72,5,2,69,5,5,2,69,5,182,0,0,72,5,2,69,5,5,2,69,5,154,0,0,71,5,2,69,5,136,0,0,71,5,2,69,5,150,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,164,0,0,71,5,2,69,5,156,0,0,71,5,2,69,5,146,0,0,71,5,2,69,5,138,0,0,71,5,2,69,5,196,0,0,71,5,2,69,5,182,0,0,71,5,2,69,5,154,0,0,138,5,2,79,137,5,2,79,138,5,2,79,137,5,2,79,5,136,0,0,138,5,2,79,137,5,2,79,5,156,0,0,138,5,2,79,137,5,2,79,5,144,0,0,138,5,2,79,137,5,2,79,5,142,0,0,138,5,2,79,137,5,2,79,5,196,0,0,138,5,2,79,137,5,2,79,5,210,0,0,72,5,2,79,5,5,2,79,72,5,2,79,5,5,2,79,5,136,0,0,72,5,2,79,5,5,2,79,5,156,0,0,72,5,2,79,5,5,2,79,5,144,0,0,72,5,2,79,5,5,2,79,5,142,0,0,72,5,2,79,5,5,2,79,5,196,0,0,72,5,2,79,5,5,2,79,5,210,0,0,71,5,2,79,5,136,0,0,71,5,2,79,5,156,0,0,71,5,2,79,5,144,0,0,71,5,2,79,5,142,0,0,71,5,2,79,5,196,0,0,71,5,2,79,5,210,0,0,138,5,2,81,137,5,2,81,138,5,2,81,137,5,2,81,5,136,0,0,138,5,2,81,137,5,2,81,5,142,0,0,138,5,2,81,137,5,2,81,5,150,0,0,138,5,2,81,137,5,2,81,5,164,0,0,138,5,2,81,137,5,2,81,5,156,0,0,138,5,2,81,137,5,2,81,5,138,0,0,138,5,2,81,137,5,2,81,5,196,0,0,138,5,2,81,137,5,2,81,5,182,0,0,138,5,2,81,137,5,2,81,5,154,0,0,72,5,2,81,5,5,2,81,72,5,2,81,5,5,2,81,5,136,0,0,72,5,2,81,5,5,2,81,5,150,0,0,72,5,2,81,5,5,2,81,5,142,0,0,72,5,2,81,5,5,2,81,5,164,0,0,72,5,2,81,5,5,2,81,5,156,0,0,72,5,2,81,5,5,2,81,5,146,0,0,72,5,2,81,5,5,2,81,5,138,0,0,72,5,2,81,5,5,2,81,5,196,0,0,72,5,2,81,5,5,2,81,5,182,0,0,72,5,2,81,5,5,2,81,5,154,0,0,71,5,2,81,5,136,0,0,71,5,2,81,5,150,0,0,71,5,2,81,5,142,0,0,71,5,2,81,5,164,0,0,71,5,2,81,5,156,0,0,71,5,2,81,5,146,0,0,71,5,2,81,5,138,0,0,71,5,2,81,5,196,0,0,71,5,2,81,5,182,0,0,71,5,2,81,5,154,0,0,134,5,2,83,5,136,0,0,138,5,2,93,137,5,2,93,138,5,2,93,137,5,2,93,5,136,0,0,138,5,2,93,137,5,2,93,5,142,0,0,138,5,2,93,137,5,2,93,5,160,0,0,138,5,2,93,137,5,2,93,5,144,0,0,138,5,2,93,137,5,2,93,5,202,0,0,138,5,2,93,137,5,2,93,5,156,0,0,138,5,2,93,137,5,2,93,5,196,0,0,138,5,2,93,137,5,2,93,5,136,0,0,5,156,0,0,138,5,2,93,137,5,2,93,5,144,0,0,5,156,0,0,138,5,2,93,137,5,2,93,5,196,0,0,5,156,0,0,72,5,2,93,5,5,2,93,72,5,2,93,5,5,2,93,5,136,0,0,72,5,2,93,5,5,2,93,5,142,0,0,72,5,2,93,5,5,2,93,5,160,0,0,72,5,2,93,5,5,2,93,5,144,0,0,72,5,2,93,5,5,2,93,5,202,0,0,72,5,2,93,5,5,2,93,5,156,0,0,72,5,2,93,5,5,2,93,5,196,0,0,72,5,2,93,5,5,2,93,5,136,0,0,5,156,0,0,72,5,2,93,5,5,2,93,5,144,0,0,5,156,0,0,72,5,2,93,5,5,2,93,5,196,0,0,5,156,0,0,71,5,2,93,5,136,0,0,71,5,2,93,5,142,0,0,71,5,2,93,5,160,0,0,71,5,2,93,5,144,0,0,71,5,2,93,5,202,0,0,71,5,2,93,5,156,0,0,71,5,2,93,5,196,0,0,71,5,2,93,5,136,0,0,5,156,0,0,71,5,2,93,5,144,0,0,5,156,0,0,71,5,2,93,5,196,0,0,5,156,0,0,6,5,2,47,5,5,2,47,6,5,2,47,5,5,2,47,5,136,0,0,6,5,2,47,5,5,2,47,5,142,0,0,6,5,2,47,5,5,2,47,5,160,0,0,6,5,2,47,5,5,2,47,5,144,0,0,6,5,2,47,5,5,2,47,5,202,0,0,6,5,2,47,5,5,2,47,5,156,0,0,6,5,2,47,5,5,2,47,5,196,0,0,6,5,2,47,5,5,2,47,5,136,0,0,5,156,0,0,6,5,2,47,5,5,2,47,5,144,0,0,5,156,0,0,6,5,2,47,5,5,2,47,5,196,0,0,5,156,0,0,6,5,2,49,5,5,2,49,6,5,3,49,5,5,3,49,6,5,3,49,5,5,3,49,5,136,0,0,6,5,3,49,5,5,3,49,5,142,0,0,6,5,3,49,5,5,3,49,5,160,0,0,6,5,3,49,5,5,3,49,5,144,0,0,6,5,3,49,5,5,3,49,5,202,0,0,6,5,3,49,5,5,3,49,5,156,0,0,6,5,3,49,5,5,3,49,5,196,0,0,6,5,3,49,5,5,3,49,5,136,0,0,5,156,0,0,6,5,3,49,5,5,3,49,5,144,0,0,5,156,0,0,6,5,3,49,5,5,3,49,5,196,0,0,5,156,0,0,6,5,2,49,5,5,2,49,5,136,0,0,6,5,2,49,5,5,2,49,5,156,0,0,6,5,2,49,5,5,2,49,5,144,0,0,6,5,2,49,5,5,2,49,5,142,0,0,6,5,2,49,5,5,2,49,5,196,0,0,6,5,2,49,5,5,2,49,5,210,0,0,6,5,2,55,5,5,2,55,6,5,2,55,5,5,2,55,5,136,0,0,6,5,2,55,5,5,2,55,5,150,0,0,6,5,2,55,5,5,2,55,5,142,0,0,6,5,2,55,5,5,2,55,5,164,0,0,6,5,2,55,5,5,2,55,5,156,0,0,6,5,2,55,5,5,2,55,5,146,0,0,6,5,2,55,5,5,2,55,5,138,0,0,6,5,2,55,5,5,2,55,5,196,0,0,6,5,2,55,5,5,2,55,5,182,0,0,6,5,2,55,5,5,2,55,5,154,0,0,6,5,2,65,5,5,2,65,6,5,2,65,5,5,2,65,5,136,0,0,6,5,2,65,5,5,2,65,5,150,0,0,6,5,2,65,5,5,2,65,5,142,0,0,6,5,2,65,5,5,2,65,5,164,0,0,6,5,2,65,5,5,2,65,5,156,0,0,6,5,2,65,5,5,2,65,5,146,0,0,6,5,2,65,5,5,2,65,5,138,0,0,6,5,2,65,5,5,2,65,5,196,0,0,6,5,2,65,5,5,2,65,5,182,0,0,6,5,2,65,5,5,2,65,5,154,0,0,6,5,2,69,5,5,2,69,6,5,2,69,5,5,2,69,5,136,0,0,6,5,2,69,5,5,2,69,5,150,0,0,6,5,2,69,5,5,2,69,5,142,0,0,6,5,2,69,5,5,2,69,5,164,0,0,6,5,2,69,5,5,2,69,5,156,0,0,6,5,2,69,5,5,2,69,5,146,0,0,6,5,2,69,5,5,2,69,5,138,0,0,6,5,2,69,5,5,2,69,5,196,0,0,6,5,2,69,5,5,2,69,5,182,0,0,6,5,2,69,5,5,2,69,5,154,0,0,6,5,2,79,5,5,2,79,6,5,2,79,5,5,2,79,5,136,0,0,6,5,2,79,5,5,2,79,5,156,0,0,6,5,2,79,5,5,2,79,5,144,0,0,6,5,2,79,5,5,2,79,5,142,0,0,6,5,2,79,5,5,2,79,5,196,0,0,6,5,2,79,5,5,2,79,5,210,0,0,6,5,2,81,5,5,2,81,6,5,2,81,5,5,2,81,5,136,0,0,6,5,2,81,5,5,2,81,5,150,0,0,6,5,2,81,5,5,2,81,5,142,0,0,6,5,2,81,5,5,2,81,5,164,0,0,6,5,2,81,5,5,2,81,5,156,0,0,6,5,2,81,5,5,2,81,5,146,0,0,6,5,2,81,5,5,2,81,5,138,0,0,6,5,2,81,5,5,2,81,5,196,0,0,6,5,2,81,5,5,2,81,5,182,0,0,6,5,2,81,5,5,2,81,5,154,0,0,5,5,2,83,5,136,0,0,6,5,2,93,5,5,2,93,6,5,2,93,5,5,2,93,5,136,0,0,6,5,2,93,5,5,2,93,5,142,0,0,6,5,2,93,5,5,2,93,5,160,0,0,6,5,2,93,5,5,2,93,5,144,0,0,6,5,2,93,5,5,2,93,5,202,0,0,6,5,2,93,5,5,2,93,5,156,0,0,6,5,2,93,5,5,2,93,5,196,0,0,6,5,2,93,5,5,2,93,5,136,0,0,5,156,0,0,6,5,2,93,5,5,2,93,5,144,0,0,5,156,0,0,6,5,2,93,5,5,2,93,5,196,0,0,5,156,0,0,134,5,2,83,5,162,0,0,134,70,2,83,5,162,0,0,5,5,2,83,5,162,0,0,5,70,2,83,5,162,0,0,134,5,2,71,5,190,0,0,134,70,2,71,5,190,0,0,5,5,2,71,5,190,0,0,5,70,2,71,5,190,0,0,134,5,2,83,5,190,0,0,134,70,2,83,5,190,0,0,5,5,2,83,5,190,0,0,5,70,2,83,5,190,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,134,70,2,71,5,162,0,0,5,5,2,71,5,162,0,0,5,70,2,71,5,162,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,83,5,198,0,0,134,70,2,83,5,198,0,0,5,5,2,83,5,198,0,0,5,70,2,83,5,198,0,0,134,5,2,83,5,208,0,0,134,70,2,83,5,208,0,0,5,5,2,83,5,208,0,0,5,70,2,83,5,208,0,0,134,5,2,83,5,204,0,0,134,70,2,83,5,204,0,0,5,5,2,83,5,204,0,0,5,70,2,83,5,204,0,0,134,5,2,71,5,196,0,0,134,70,2,71,5,196,0,0,5,5,2,71,5,196,0,0,5,70,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,134,70,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,5,70,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,134,70,2,83,5,196,0,0,5,5,2,83,5,196,0,0,5,70,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,134,70,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,5,70,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,23,0,24,2,42,0,100,30,20,0,103,30,9,0,103,30,11,192,197,3,104,30,4,192,197,35,105,30,11,192,197,99,100,30,3,192,197,35,101,30,10,192,197,163,102,30,3,192,197,163,97,30,9,0,97,30,10,192,197,34,98,30,2,192,197,194,99,30,10,192,197,98,24,2,2,192,197,2,25,2,9,192,197,226,96,30,2,192,197,98,92,1,20,0,95,1,9,0,95,1,9,192,197,98,96,1,1,192,197,162,97,1,9,192,197,162,92,1,0,192,197,226,93,1,9,192,197,34,94,1,1,192,197,66,115,0,9,0,115,0,2,239,71,5,90,1,0,192,197,130,91,1,8,192,197,226,67,0,42,0,83,0,2,239,137,5,99,0,10,0,25,2,20,0,101,30,9,0,101,30,7,192,197,100,103,30,7,192,197,228,105,30,8,192,197,100,25,2,6,192,197,67,97,30,6,192,197,163,99,30,7,192,197,3,115,0,4,192,197,130,91,1,4,192,197,195,93,1,5,192,197,35,95,1,5,192,197,131,97,1,5,192,197,227,10,0,24,2,20,0,100,30,9,0,100,30,3,192,197,4,102,30,3,192,197,132,104,30,4,192,197,4,24,2,1,192,197,227,96,30,2,192,197,67,98,30,2,192,197,163,83,0,197,162,90,1,0,192,197,99,92,1,0,192,197,195,94,1,1,192,197,35,96,1,1,192,197,131,0,48,156,5,15,0,125,1,26,0,146,30,12,0,146,30,18,192,197,2,147,30,29,192,197,98,148,30,18,192,197,98,149,30,29,192,197,162,125,1,17,192,197,66,126,1,28,192,197,226,144,30,17,192,197,162,145,30,29,192,197,34,121,1,12,0,121,1,16,192,197,130,122,1,28,192,197,98,123,1,16,192,197,226,124,1,28,192,197,162,68,0,45,0,90,0,105,0,100,0,143,0,122,0,202,127,2,49,71,5,25,2,20,0,101,30,9,0,101,30,27,192,197,67,103,30,27,192,197,163,105,30,28,192,197,3,25,2,26,192,197,130,97,30,26,192,197,194,99,30,27,192,197,2,115,0,3,241,71,5,91,1,25,192,197,130,93,1,25,192,197,194,95,1,26,192,197,2,97,1,26,192,197,66,6,0,125,1,12,0,125,1,17,192,197,35,144,30,17,192,197,131,146,30,17,192,197,227,148,30,18,192,197,67,90,0,6,0,121,1,16,192,197,99,123,1,16,192,197,195,10,67,197,194,24,2,20,0,100,30,9,0,100,30,14,192,197,228,102,30,15,192,197,100,104,30,15,192,197,228,24,2,13,192,197,195,96,30,14,192,197,35,98,30,14,192,197,131,83,0,12,192,197,2,90,1,12,192,197,67,92,1,12,192,197,163,94,1,13,192,197,3,96,1,13,192,197,99,202,127,2,49,137,5,24,2,20,0,100,30,9,0,100,30,15,192,197,3,102,30,15,192,197,131,104,30,16,192,197,3,24,2,13,192,197,226,96,30,14,192,197,66,98,30,14,192,197,162,83,0,3,241,137,5,90,1,12,192,197,98,92,1,12,192,197,194,94,1,13,192,197,34,96,1,13,192,197,130,6,0,126,1,12,0,126,1,24,192,197,3,145,30,24,192,197,99,147,30,24,192,197,195,149,30,25,192,197,35,122,0,6,0,122,1,23,192,197,67,124,1,23,192,197,163,202,68,197,162,25,2,20,0,101,30,9,0,101,30,21,192,197,196,103,30,22,192,197,68,105,30,22,192,197,196,25,2,20,192,197,163,97,30,21,192,197,3,99,30,21,192,197,99,115,0,18,192,197,226,91,1,19,192,197,35,93,1,19,192,197,131,95,1,19,192,197,227,97,1,20,192,197,67,0,54,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,39,192,197,130,248,30,33,192,197,66,249,30,39,192,197,194,244,30,32,192,197,130,245,30,39,192,197,66,246,30,32,192,197,226,153,30,9,0,153,30,38,192,197,194,242,30,32,192,197,34,243,30,39,192,197,2,51,2,38,192,197,66,142,30,31,192,197,194,143,30,38,192,197,130,253,0,20,0,119,1,9,0,119,1,38,192,197,2,120,1,31,192,197,2,50,2,31,192,197,98,253,0,37,192,197,130,255,0,37,192,197,194,118,1,30,192,197,162,71,0,11,0,89,0,2,247,137,5,103,0,39,0,121,0,2,247,71,5,221,0,30,192,197,66,9,0,142,30,15,0,142,30,31,192,197,163,242,30,32,192,197,3,244,30,32,192,197,99,246,30,32,192,197,195,248,30,33,192,197,35,89,0,29,192,197,226,221,0,30,192,197,35,118,1,30,192,197,131,120,1,30,192,197,227,50,2,31,192,197,67,10,0,143,30,20,0,245,30,9,0,245,30,36,192,197,99,247,30,36,192,197,195,249,30,37,192,197,35,143,30,35,192,197,67,153,30,35,192,197,163,243,30,36,192,197,3,121,0,33,192,197,130,253,0,33,192,197,195,255,0,34,192,197,35,119,1,34,192,197,131,51,2,34,192,197,227,0,64,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,49,192,197,162,248,30,43,192,197,98,249,30,49,192,197,226,244,30,42,192,197,162,245,30,49,192,197,98,246,30,43,192,197,2,153,30,9,0,153,30,48,192,197,226,242,30,42,192,197,66,243,30,49,192,197,34,51,2,48,192,197,98,142,30,41,192,197,226,143,30,48,192,197,162,253,0,20,0,119,1,9,0,119,1,48,192,197,34,120,1,41,192,197,34,50,2,41,192,197,130,253,0,47,192,197,162,255,0,47,192,197,226,118,1,40,192,197,194,76,0,13,0,89,0,255,255,2,65,137,5,108,0,40,0,121,0,255,255,2,65,71,5,221,0,40,192,197,98,9,0,142,30,15,0,142,30,41,192,197,195,242,30,42,192,197,35,244,30,42,192,197,131,246,30,42,192,197,227,248,30,43,192,197,67,89,0,40,192,197,2,221,0,40,192,197,67,118,1,40,192,197,163,120,1,41,192,197,3,50,2,41,192,197,99,10,0,143,30,20,0,245,30,9,0,245,30,46,192,197,131,247,30,46,192,197,227,249,30,47,192,197,67,143,30,45,192,197,99,153,30,45,192,197,195,243,30,46,192,197,35,121,0,43,192,197,162,253,0,43,192,197,227,255,0,44,192,197,67,119,1,44,192,197,163,51,2,45,192,197,3,0,68,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,59,192,197,194,248,30,53,192,197,130,249,30,60,192,197,2,244,30,52,192,197,194,245,30,59,192,197,130,246,30,53,192,197,34,153,30,9,0,153,30,59,192,197,2,242,30,52,192,197,98,243,30,59,192,197,66,51,2,58,192,197,130,142,30,52,192,197,2,143,30,58,192,197,194,253,0,20,0,119,1,9,0,119,1,58,192,197,66,120,1,51,192,197,66,50,2,51,192,197,162,253,0,57,192,197,194,255,0,58,192,197,2,118,1,50,192,197,226,78,0,13,0,89,0,255,255,2,69,137,5,110,0,40,0,121,0,255,255,2,69,71,5,221,0,50,192,197,130,9,0,142,30,15,0,142,30,51,192,197,227,242,30,52,192,197,67,244,30,52,192,197,163,246,30,53,192,197,3,248,30,53,192,197,99,89,0,50,192,197,34,221,0,50,192,197,99,118,1,50,192,197,195,120,1,51,192,197,35,50,2,51,192,197,131,10,0,143,30,20,0,245,30,9,0,245,30,56,192,197,163,247,30,57,192,197,3,249,30,57,192,197,99,143,30,55,192,197,131,153,30,55,192,197,227,243,30,56,192,197,67,121,0,53,192,197,194,253,0,54,192,197,3,255,0,54,192,197,99,119,1,54,192,197,195,51,2,55,192,197,35,0,70,156,5,1,0,8,3,255,255,2,71,134,5,11,3,255,255,2,71,134,70,0,78,156,5,15,0,125,1,26,0,146,30,12,0,146,30,62,192,197,34,147,30,66,192,197,66,148,30,62,192,197,130,149,30,66,192,197,130,125,1,61,192,197,98,126,1,65,192,197,194,144,30,61,192,197,194,145,30,66,192,197,2,121,1,12,0,121,1,60,192,197,162,122,1,65,192,197,66,123,1,61,192,197,2,124,1,65,192,197,130,83,0,10,0,90,0,255,255,2,79,137,5,115,0,28,0,122,0,255,255,2,79,71,5,6,0,125,1,12,0,125,1,61,192,197,67,144,30,61,192,197,163,146,30,62,192,197,3,148,30,62,192,197,99,90,0,60,192,197,66,121,1,60,192,197,131,123,1,60,192,197,227,6,0,126,1,12,0,126,1,63,192,197,195,145,30,64,192,197,35,147,30,64,192,197,131,149,30,64,192,197,227,122,0,62,192,197,194,122,1,63,192,197,3,124,1,63,192,197,99,0,80,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,76,192,197,98,248,30,70,192,197,34,249,30,76,192,197,162,244,30,69,192,197,98,245,30,76,192,197,34,246,30,69,192,197,194,153,30,9,0,153,30,75,192,197,162,242,30,69,192,197,2,243,30,75,192,197,226,51,2,75,192,197,34,142,30,68,192,197,162,143,30,75,192,197,98,253,0,20,0,119,1,9,0,119,1,74,192,197,226,120,1,67,192,197,226,50,2,68,192,197,66,253,0,74,192,197,98,255,0,74,192,197,162,118,1,67,192,197,130,84,0,13,0,89,0,255,255,2,81,137,5,116,0,40,0,121,0,255,255,2,81,71,5,221,0,67,192,197,34,9,0,142,30,15,0,142,30,68,192,197,131,242,30,68,192,197,227,244,30,69,192,197,67,246,30,69,192,197,163,248,30,70,192,197,3,89,0,66,192,197,194,221,0,67,192,197,3,118,1,67,192,197,99,120,1,67,192,197,195,50,2,68,192,197,35,10,0,143,30,20,0,245,30,9,0,245,30,73,192,197,67,247,30,73,192,197,163,249,30,74,192,197,3,143,30,72,192,197,35,153,30,72,192,197,131,243,30,72,192,197,227,121,0,70,192,197,98,253,0,70,192,197,163,255,0,71,192,197,3,119,1,71,192,197,99,51,2,71,192,197,195,0,82,156,5,2,0,8,3,255,255,2,83,134,5,11,3,255,255,2,83,134,70,68,3,76,192,197,226,0,92,156,5,23,0,24,2,42,0,100,30,20,0,103,30,9,0,103,30,88,192,197,3,104,30,81,192,197,35,105,30,88,192,197,99,100,30,80,192,197,35,101,30,87,192,197,163,102,30,80,192,197,163,97,30,9,0,97,30,87,192,197,34,98,30,79,192,197,194,99,30,87,192,197,98,24,2,79,192,197,2,25,2,86,192,197,226,96,30,79,192,197,98,92,1,20,0,95,1,9,0,95,1,86,192,197,98,96,1,78,192,197,162,97,1,86,192,197,162,92,1,77,192,197,226,93,1,86,192,197,34,94,1,78,192,197,66,122,0,46,0,122,0,6,0,90,1,77,192,197,130,91,1,85,192,197,226,10,0,25,2,20,0,101,30,9,0,101,30,84,192,197,100,103,30,84,192,197,228,105,30,85,192,197,100,25,2,83,192,197,67,97,30,83,192,197,163,99,30,84,192,197,3,115,0,81,192,197,130,91,1,81,192,197,195,93,1,82,192,197,35,95,1,82,192,197,131,97,1,82,192,197,227,83,0,255,255,2,93,137,5,90,0,4,0,115,0,255,255,2,93,71,5,10,0,24,2,20,0,100,30,9,0,100,30,80,192,197,4,102,30,80,192,197,132,104,30,81,192,197,4,24,2,78,192,197,227,96,30,79,192,197,67,98,30,79,192,197,163,83,0,77,192,197,34,90,1,77,192,197,99,92,1,77,192,197,195,94,1,78,192,197,35,96,1,78,192,197,131,0,46,5,5,11,0,25,2,20,0,101,30,9,0,101,30,7,192,197,131,103,30,8,192,197,3,105,30,8,192,197,131,25,2,6,192,197,98,97,30,6,192,197,194,99,30,7,192,197,34,93,1,9,0,93,1,5,192,197,66,95,1,5,192,197,162,97,1,6,192,197,2,99,0,6,0,115,0,2,239,5,5,91,1,4,192,197,226,10,0,25,2,20,0,101,30,9,0,101,30,91,192,197,164,103,30,92,192,197,36,105,30,92,192,197,164,25,2,90,192,197,131,97,30,90,192,197,227,99,30,91,192,197,67,115,0,88,192,197,194,91,1,89,192,197,3,93,1,89,192,197,99,95,1,89,192,197,195,97,1,90,192,197,35,0,48,5,5,7,0,126,1,12,0,126,1,24,192,197,34,145,30,24,192,197,130,147,30,24,192,197,226,149,30,25,192,197,66,100,0,8,0,122,0,68,0,122,1,23,192,197,98,124,1,23,192,197,194,6,0,126,1,12,0,126,1,98,192,197,131,145,30,98,192,197,227,147,30,99,192,197,67,149,30,99,192,197,163,122,0,6,0,122,1,97,192,197,195,124,1,98,192,197,35,138,87,197,34,25,2,20,0,101,30,9,0,101,30,96,192,197,68,103,30,96,192,197,196,105,30,97,192,197,68,25,2,95,192,197,35,97,30,95,192,197,131,99,30,95,192,197,227,115,0,93,192,197,98,91,1,93,192,197,163,93,1,94,192,197,3,95,1,94,192,197,99,97,1,94,192,197,195,202,127,2,49,5,5,25,2,20,0,101,30,9,0,101,30,21,192,197,227,103,30,22,192,197,99,105,30,22,192,197,227,25,2,20,192,197,194,97,30,21,192,197,34,99,30,21,192,197,130,115,0,3,241,5,5,91,1,19,192,197,66,93,1,19,192,197,162,95,1,20,192,197,2,97,1,20,192,197,98,0,54,5,5,11,0,143,30,20,0,245,30,9,0,245,30,36,192,197,130,247,30,36,192,197,226,249,30,37,192,197,66,143,30,35,192,197,98,153,30,35,192,197,194,243,30,36,192,197,34,255,0,9,0,255,0,34,192,197,66,119,1,34,192,197,162,51,2,35,192,197,2,103,0,6,0,121,0,2,247,5,5,253,0,33,192,197,226,10,0,143,30,20,0,245,30,9,0,245,30,102,192,197,227,247,30,103,192,197,67,249,30,103,192,197,163,143,30,101,192,197,195,153,30,102,192,197,35,243,30,102,192,197,131,121,0,100,192,197,2,253,0,100,192,197,67,255,0,100,192,197,163,119,1,101,192,197,3,51,2,101,192,197,99,0,64,5,5,11,0,143,30,20,0,245,30,9,0,245,30,46,192,197,162,247,30,47,192,197,2,249,30,47,192,197,98,143,30,45,192,197,130,153,30,45,192,197,226,243,30,46,192,197,66,255,0,9,0,255,0,44,192,197,98,119,1,44,192,197,194,51,2,45,192,197,34,108,0,7,0,121,0,255,255,2,65,5,5,253,0,44,192,197,2,10,0,143,30,20,0,245,30,9,0,245,30,106,192,197,227,247,30,107,192,197,67,249,30,107,192,197,163,143,30,105,192,197,195,153,30,106,192,197,35,243,30,106,192,197,131,121,0,104,192,197,2,253,0,104,192,197,67,255,0,104,192,197,163,119,1,105,192,197,3,51,2,105,192,197,99,0,68,5,5,11,0,143,30,20,0,245,30,9,0,245,30,56,192,197,194,247,30,57,192,197,34,249,30,57,192,197,130,143,30,55,192,197,162,153,30,56,192,197,2,243,30,56,192,197,98,255,0,9,0,255,0,54,192,197,130,119,1,54,192,197,226,51,2,55,192,197,66,110,0,7,0,121,0,255,255,2,69,5,5,253,0,54,192,197,34,10,0,143,30,20,0,245,30,9,0,245,30,110,192,197,227,247,30,111,192,197,67,249,30,111,192,197,163,143,30,109,192,197,195,153,30,110,192,197,35,243,30,110,192,197,131,121,0,108,192,197,2,253,0,108,192,197,67,255,0,108,192,197,163,119,1,109,192,197,3,51,2,109,192,197,99,0,70,5,5,1,0,8,3,255,255,2,71,5,5,11,3,255,255,2,71,5,70,0,78,5,5,7,0,126,1,12,0,126,1,63,192,197,226,145,30,64,192,197,66,147,30,64,192,197,162,149,30,65,192,197,2,115,0,10,0,122,0,255,255,2,79,5,5,122,1,63,192,197,34,124,1,63,192,197,130,6,0,126,1,12,0,126,1,113,192,197,3,145,30,113,192,197,99,147,30,113,192,197,195,149,30,114,192,197,35,122,0,112,192,197,2,122,1,112,192,197,67,124,1,112,192,197,163,0,80,5,5,11,0,143,30,20,0,245,30,9,0,245,30,73,192,197,98,247,30,73,192,197,194,249,30,74,192,197,34,143,30,72,192,197,66,153,30,72,192,197,162,243,30,73,192,197,2,255,0,9,0,255,0,71,192,197,34,119,1,71,192,197,130,51,2,71,192,197,226,116,0,7,0,121,0,255,255,2,81,5,5,253,0,70,192,197,194,10,0,143,30,20,0,245,30,9,0,245,30,117,192,197,99,247,30,117,192,197,195,249,30,118,192,197,35,143,30,116,192,197,67,153,30,116,192,197,163,243,30,117,192,197,3,121,0,114,192,197,130,253,0,114,192,197,195,255,0,115,192,197,35,119,1,115,192,197,131,51,2,115,192,197,227,0,82,5,5,2,0,8,3,255,255,2,83,5,5,11,3,255,255,2,83,5,70,68,3,118,192,197,130,0,92,5,5,11,0,25,2,20,0,101,30,9,0,101,30,84,192,197,131,103,30,85,192,197,3,105,30,85,192,197,131,25,2,83,192,197,98,97,30,83,192,197,194,99,30,84,192,197,34,93,1,9,0,93,1,82,192,197,66,95,1,82,192,197,162,97,1,83,192,197,2,115,0,255,255,2,93,5,5,122,0,3,0,91,1,81,192,197,226,10,0,25,2,20,0,101,30,9,0,101,30,121,192,197,164,103,30,122,192,197,36,105,30,122,192,197,164,25,2,120,192,197,131,97,30,120,192,197,227,99,30,121,192,197,67,115,0,118,192,197,194,91,1,119,192,197,3,93,1,119,192,197,99,95,1,119,192,197,195,97,1,120,192,197,35,156,82,196,162,1,0,8,3,123,192,197,34,11,3,123,192,197,98,5,82,196,162,1,0,8,3,123,192,197,162,11,3,123,192,197,226,156,70,196,190,1,0,8,3,124,192,197,34,11,3,124,192,197,98,5,70,196,190,1,0,8,3,124,192,197,162,11,3,124,192,197,226,156,82,196,190,1,0,8,3,125,192,197,34,11,3,125,192,197,98,5,82,196,190,1,0,8,3,125,192,197,162,11,3,125,192,197,226,156,70,196,162,1,0,8,3,127,192,197,162,11,3,127,192,197,226,5,70,196,162,1,0,8,3,128,192,197,34,11,3,128,192,197,98,156,82,196,198,1,0,8,3,129,192,197,34,11,3,129,192,197,98,5,82,196,198,1,0,8,3,129,192,197,162,11,3,129,192,197,226,156,82,196,208,1,0,8,3,130,192,197,34,11,3,130,192,197,98,5,82,196,208,1,0,8,3,130,192,197,162,11,3,130,192,197,226,156,82,196,204,1,0,8,3,131,192,197,34,11,3,131,192,197,98,5,82,196,204,1,0,8,3,131,192,197,162,11,3,131,192,197,226,156,70,196,196,1,0,8,3,132,192,197,34,11,3,132,192,197,98,5,70,196,196,1,0,8,3,132,192,197,162,11,3,132,192,197,226,133,0,197,35,1,0,8,3,133,192,197,131,11,3,133,192,197,227,134,0,197,67,1,0,8,3,134,192,197,163,11,3,135,192,197,3,156,82,196,196,1,0,8,3,135,192,197,98,11,3,135,192,197,162,5,82,196,196,1,0,8,3,135,192,197,226,11,3,136,192,197,34,136,0,197,99,1,0,8,3,136,192,197,195,11,3,137,192,197,35,137,0,197,131,1,0,8,3,137,192,197,227,11,3,138,192,197,67,44,0,67,0,69,0,71,0,72,0,78,0,79,0,83,0,85,0,89,0,91,0,99,0,101,0,103,0,104,0,108,0,109,0,110,0,111,0,115,0,117,0,121,0,123,0,221,0,222,0,253,0,254,0,255,0,0,1,90,1,98,1,118,1,127,1,24,2,26,2,50,2,52,2,96,30,106,30,142,30,150,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,50,4,186,80,185,84,68,4,185,96,186,100,186,108,185,112,88,4,185,124,108,4,128,4,185,148,185,152,185,160,130,4,150,4,170,4,185,192,185,196,185,200,185,204,172,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,196,4,209,4,168,80,168,84,219,4,168,96,168,100,168,108,168,112,230,4,168,124,241,4,252,4,168,148,168,152,168,160,254,4,9,5,20,5,168,192,168,196,168,200,168,204,22,5,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,89,58,57,58,0,8,217,66,186,81,154,81,250,81,90,82,186,101,154,101,250,101,90,102,217,72,122,130,185,141,153,141,249,141,121,142,185,144,136,14,185,142,185,185,153,185,249,185,185,188,153,205,185,216,2,8,168,57,136,57,232,57,104,58,72,58,40,58,4,8,200,66,168,81,136,81,232,81,72,82,168,101,136,101,232,101,72,102,200,72,104,130,168,141,136,141,232,141,104,142,168,144,128,14,168,142,168,185,136,185,232,185,168,188,136,205,168,216,72,206,25,59,8,59,217,57,200,57,249,58,232,58,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,74,8,74,57,75,40,75,26,83,8,83,218,81,200,81,154,82,136,82,250,82,232,82,26,82,8,82,249,89,232,89,217,89,200,89,153,90,136,90,217,90,200,90,249,97,232,97,57,99,40,99,122,102,104,102,26,103,8,103,218,101,200,101,250,102,232,102,154,102,168,104,6,8,8,8,250,109,232,109,217,114,200,114,168,156,153,117,136,117,217,118,200,118,25,118,8,118,89,119,72,119,57,119,40,119,154,129,136,129,218,130,200,130,26,130,8,130,10,8,185,136,168,136,25,143,8,143,217,141,200,141,217,144,200,144,12,8,14,8,153,161,136,161,217,162,200,162,25,162,8,162,154,165,136,165,250,165,232,165,218,166,200,166,26,166,8,166,217,174,200,174,25,174,8,174,185,180,168,180,121,186,104,186,25,187,8,187,217,185,200,185,57,186,40,186,217,188,200,188,35,5,37,5,249,197,232,197,249,205,232,205,89,206,153,209,136,209,153,210,136,210,25,210,8,210,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,164,169,164,200,56,169,80,187,100,187,108,169,100,169,108,169,220,169,128,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,67,2,83,4,186,68,99,2,115,4,177,68,90,5,154,69,91,5,145,69,92,5,250,69,93,5,241,69,94,5,218,70,95,5,209,70,96,5,26,70,97,5,17,70,255,5,185,72,68,2,90,2,100,2,122,2,121,5,154,77,122,5,145,77,123,5,154,78,124,5,145,78,125,5,26,78,126,5,17,78,255,5,185,88,71,2,89,4,186,92,103,2,121,4,177,92,221,4,154,93,253,4,145,93,255,4,81,94,118,5,250,93,119,5,241,93,120,5,90,94,255,5,185,116,76,2,89,4,186,120,108,2,121,4,177,120,221,4,154,121,253,4,145,121,255,4,81,122,118,5,250,121,119,5,241,121,120,5,90,122,255,5,186,128,78,2,89,4,186,132,110,2,121,4,177,132,221,4,154,133,253,4,145,133,255,4,81,134,118,5,250,133,119,5,241,133,120,5,90,134,255,5,185,140,255,5,186,164,83,2,90,4,186,168,115,2,122,4,177,168,121,5,154,169,122,5,145,169,123,5,154,170,124,5,145,170,125,5,26,170,126,5,17,170,255,5,185,172,84,2,89,4,186,176,116,2,121,4,177,176,221,4,154,177,253,4,145,177,255,4,81,178,118,5,250,177,119,5,241,177,120,5,90,178,255,5,185,184,255,5,185,208,83,4,186,212,90,2,115,4,177,212,122,2,90,5,154,213,91,5,145,213,92,5,250,213,93,5,241,213,94,5,218,214,95,5,209,214,96,5,26,214,97,5,17,214,255,5,168,64,99,2,115,4,168,68,91,5,136,69,93,5,232,69,95,5,200,70,97,5,8,70,255,5,168,72,100,2,122,2,122,5,136,77,124,5,136,78,126,5,8,78,255,5,168,88,103,2,121,4,168,92,253,4,136,93,255,4,72,94,119,5,232,93,255,5,168,116,108,2,121,4,168,120,253,4,136,121,255,4,72,122,119,5,232,121,255,5,168,128,110,2,121,4,168,132,253,4,136,133,255,4,72,134,119,5,232,133,255,5,168,140,255,5,168,164,115,2,122,4,168,168,122,5,136,169,124,5,136,170,126,5,8,170,255,5,168,172,116,2,121,4,168,176,253,4,136,177,255,4,72,178,119,5,232,177,255,5,168,184,255,5,168,208,115,4,168,212,122,2,91,5,136,213,93,5,232,213,95,5,200,214,97,5,8,214,255,5,249,186,255,5,232,186,255,1,170,170,3,0,69,0,52,0,61,0,19,1,0,16,4,0,0,96,1,0,0,96,1,0,43,0,93,18,0,32,1,0,32,0,98,18,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,154,6,0,32,7,0,0,0,21,0,0,0,156,6,0,0,156,6,0,0,3,0,0,0,0,0,0,0,34,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,109,0,110,0,93,0,38,0,101,5,126,5,60,0,60,0,60,0,135,5,0,0,170,170,170,170,188,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,88,25,0,0,88,25,0,0,88,25,0,0,88,25,0,0,164,25,0,0,3,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,39,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,16,100,6,5,68,100,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,147,6,0,32,1,0,32,0,152,6,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,67,12,0,32,7,0,0,0,21,0,0,0,69,12,0,0,69,12,0,0,3,0,0,0,0,0,0,0,112,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,175,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,66,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,60,0,103,0,104,0,60,0,60,0,60,0,71,0,104,0,60,0,60,0,60,0,71,0,72,0,60,0,103,0,119,0,60,0,60,0,60,0,71,0,119,0,60,0,60,0,60,0,71,0,87,0,38,0,73,0,60,0,203,30,60,0,60,0,60,0,202,30,38,0,75,0,60,0,107,0,112,0,60,0,60,0,60,0,75,0,112,0,60,0,60,0,60,0,75,0,80,0,60,0,107,0,119,0,60,0,60,0,60,0,75,0,119,0,60,0,60,0,60,0,75,0,87,0,38,0,78,0,60,0,69,30,60,0,60,0,60,0,68,30,60,0,110,0,119,0,60,0,60,0,60,0,78,0,119,0,60,0,60,0,60,0,78,0,87,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,38,0,79,0,60,0,205,30,60,0,60,0,60,0,204,30,38,0,83,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,85,0,60,0,229,30,60,0,60,0,60,0,228,30,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,30,47,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,28,0,0,164,28,0,0,164,28,0,0,164,28,0,0,240,34,0,0,240,34,0,0,176,41,0,0,22,42,0,0,6,47,0,0,50,105,114,84,1,0,64,8,189,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,108,0,116,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,152,0,48,0,48,0,48,0,158,0,166,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,172,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,145,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,176,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,49,0,202,65,49,0,202,98,49,0,202,131,49,0,202,164,49,0,202,197,49,0,202,230,49,0,202,7,50,0,202,40,50,0,202,73,50,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,96,7,0,156,5,0,56,201,134,24,0,156,5,0,60,201,64,25,0,156,5,0,64,156,5,0,66,201,132,34,0,201,38,51,0,156,5,0,72,160,5,0,74,156,5,0,76,201,0,52,0,156,5,0,80,201,198,59,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,160,60,0,5,5,0,48,5,5,0,50,5,5,0,52,201,160,64,0,5,5,0,56,201,230,73,0,5,5,0,60,201,160,74,0,5,5,0,64,5,5,0,66,201,164,79,0,201,166,88,0,5,5,0,72,5,5,0,74,5,5,0,76,201,128,89,0,5,5,0,80,201,166,93,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,48,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,48,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,48,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,94,0,201,70,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,96,0,201,198,96,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,97,0,201,70,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,99,0,201,198,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,100,0,201,70,101,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,102,0,201,198,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,69,5,5,2,69,201,134,103,0,201,70,104,0,201,6,105,0,201,198,105,0,201,134,106,0,201,70,107,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,59,5,5,2,59,134,5,2,71,5,5,2,71,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,47,0,197,34,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,44,0,197,34,45,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,45,0,197,162,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,64,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,45,5,142,0,0,70,5,2,45,5,142,0,0,135,5,2,45,5,144,0,0,70,5,2,45,5,144,0,0,135,5,2,45,5,156,0,0,70,5,2,45,5,156,0,0,135,5,2,45,5,196,0,0,70,5,2,45,5,196,0,0,135,5,2,45,5,150,0,0,70,5,2,45,5,150,0,0,135,5,2,45,5,160,0,0,70,5,2,45,5,160,0,0,135,5,2,45,5,206,0,0,70,5,2,45,5,206,0,0,70,5,2,45,5,210,0,0,135,5,3,55,5,142,0,0,70,5,3,55,5,142,0,0,135,5,4,55,5,142,0,0,70,5,4,55,5,142,0,0,135,5,3,55,5,144,0,0,70,5,3,55,5,144,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,196,0,0,70,5,2,55,5,196,0,0,135,5,2,55,5,210,0,0,70,5,2,55,5,210,0,0,135,5,3,55,5,156,0,0,70,5,3,55,5,156,0,0,135,5,3,55,5,196,0,0,70,5,3,55,5,196,0,0,135,5,3,55,5,150,0,0,70,5,3,55,5,150,0,0,135,5,3,55,5,160,0,0,70,5,3,55,5,160,0,0,135,5,3,55,5,206,0,0,70,5,3,55,5,206,0,0,135,5,4,55,5,138,0,0,70,5,4,55,5,138,0,0,135,5,4,55,5,136,0,0,70,5,4,55,5,136,0,0,135,5,4,55,5,150,0,0,70,5,4,55,5,150,0,0,135,5,4,55,5,156,0,0,70,5,4,55,5,156,0,0,135,5,4,55,5,196,0,0,70,5,4,55,5,196,0,0,70,5,3,55,5,210,0,0,70,5,4,55,5,146,0,0,135,5,3,63,5,142,0,0,70,5,3,63,5,142,0,0,135,5,2,63,5,136,0,0,70,5,2,63,5,136,0,0,135,5,2,63,5,156,0,0,70,5,2,63,5,156,0,0,135,5,3,63,5,138,0,0,70,5,3,63,5,138,0,0,135,5,3,63,5,136,0,0,70,5,3,63,5,136,0,0,135,5,3,63,5,150,0,0,70,5,3,63,5,150,0,0,135,5,3,63,5,156,0,0,70,5,3,63,5,156,0,0,135,5,3,63,5,196,0,0,70,5,3,63,5,196,0,0,70,5,3,63,5,146,0,0,135,5,4,69,5,136,0,0,70,5,4,69,5,136,0,0,70,5,4,69,5,150,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,4,69,5,142,0,0,70,5,4,69,5,142,0,0,135,5,4,69,5,150,0,0,135,5,4,69,5,164,0,0,70,5,4,69,5,164,0,0,135,5,3,69,5,138,0,0,70,5,3,69,5,138,0,0,135,5,3,69,5,136,0,0,70,5,3,69,5,136,0,0,135,5,3,69,5,150,0,0,70,5,3,69,5,150,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,196,0,0,70,5,3,69,5,196,0,0,135,5,4,69,5,156,0,0,70,5,4,69,5,156,0,0,70,5,3,69,5,146,0,0,70,5,4,69,5,146,0,0,135,5,4,69,5,138,0,0,70,5,4,69,5,138,0,0,135,5,4,69,5,196,0,0,70,5,4,69,5,196,0,0,135,5,4,69,5,182,0,0,70,5,4,69,5,182,0,0,135,5,4,69,5,154,0,0,70,5,4,69,5,154,0,0,135,5,2,79,5,142,0,0,70,5,2,79,5,142,0,0,135,5,2,79,5,144,0,0,70,5,2,79,5,144,0,0,135,5,2,79,5,156,0,0,70,5,2,79,5,156,0,0,135,5,2,79,5,196,0,0,70,5,2,79,5,196,0,0,135,5,2,79,5,150,0,0,70,5,2,79,5,150,0,0,135,5,2,79,5,160,0,0,70,5,2,79,5,160,0,0,135,5,2,79,5,206,0,0,70,5,2,79,5,206,0,0,70,5,2,79,5,210,0,0,5,5,2,45,5,142,0,0,5,5,2,45,5,144,0,0,5,5,2,45,5,156,0,0,5,5,2,45,5,196,0,0,5,5,2,45,5,150,0,0,5,5,2,45,5,160,0,0,5,5,2,45,5,206,0,0,5,5,2,45,5,210,0,0,5,5,3,55,5,142,0,0,5,5,4,55,5,142,0,0,5,5,3,55,5,144,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,196,0,0,5,5,2,55,5,210,0,0,5,5,3,55,5,156,0,0,5,5,3,55,5,196,0,0,5,5,3,55,5,150,0,0,5,5,3,55,5,160,0,0,5,5,3,55,5,206,0,0,5,5,4,55,5,138,0,0,5,5,4,55,5,136,0,0,5,5,4,55,5,150,0,0,5,5,4,55,5,156,0,0,5,5,4,55,5,196,0,0,5,5,3,55,5,210,0,0,5,5,4,55,5,146,0,0,5,5,3,63,5,142,0,0,5,5,2,63,5,136,0,0,5,5,2,63,5,156,0,0,5,5,3,63,5,138,0,0,5,5,3,63,5,136,0,0,5,5,3,63,5,150,0,0,5,5,3,63,5,156,0,0,5,5,3,63,5,196,0,0,5,5,3,63,5,146,0,0,5,5,4,69,5,136,0,0,5,5,4,69,5,150,0,0,5,5,3,69,5,142,0,0,5,5,4,69,5,142,0,0,5,5,4,69,5,164,0,0,5,5,3,69,5,138,0,0,5,5,3,69,5,136,0,0,5,5,3,69,5,150,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,196,0,0,5,5,4,69,5,156,0,0,5,5,3,69,5,146,0,0,5,5,4,69,5,146,0,0,5,5,4,69,5,138,0,0,5,5,4,69,5,196,0,0,5,5,4,69,5,182,0,0,5,5,4,69,5,154,0,0,5,5,2,79,5,142,0,0,5,5,2,79,5,144,0,0,5,5,2,79,5,156,0,0,5,5,2,79,5,196,0,0,5,5,2,79,5,150,0,0,5,5,2,79,5,160,0,0,5,5,2,79,5,206,0,0,5,5,2,79,5,210,0,0,134,5,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,71,5,142,0,0,5,5,2,71,5,142,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,237,135,5,104,0,2,237,70,5,36,1,197,162,37,1,0,192,197,98,0,54,156,5,39,0,36,30,66,0,130,30,32,0,135,30,15,0,135,30,11,192,197,34,136,30,11,192,197,98,137,30,11,192,197,162,150,30,11,192,197,226,152,30,12,192,197,34,130,30,9,192,197,226,131,30,10,192,197,34,132,30,10,192,197,98,133,30,10,192,197,162,134,30,10,192,197,226,41,30,15,0,41,30,8,192,197,162,42,30,8,192,197,226,43,30,9,192,197,34,128,30,9,192,197,98,129,30,9,192,197,162,36,30,7,192,197,98,37,30,7,192,197,162,38,30,7,192,197,226,39,30,8,192,197,34,40,30,8,192,197,98,30,2,32,0,5,30,15,0,5,30,6,192,197,34,6,30,6,192,197,98,7,30,6,192,197,162,34,30,6,192,197,226,35,30,7,192,197,34,30,2,4,192,197,226,31,2,5,192,197,34,2,30,5,192,197,98,3,30,5,192,197,162,4,30,5,192,197,226,119,0,15,0,119,0,4,247,70,5,36,1,3,192,197,226,37,1,4,192,197,34,116,1,4,192,197,98,117,1,4,192,197,162,66,0,2,247,135,5,72,0,3,247,135,5,87,0,4,247,135,5,98,0,2,247,70,5,104,0,3,247,70,5,0,58,156,5,48,0,35,3,2,251,134,5,0,62,156,5,20,0,128,30,37,0,133,30,20,0,136,30,9,0,136,30,15,192,197,226,137,30,16,192,197,34,152,30,16,192,197,98,133,30,15,192,197,34,134,30,15,192,197,98,135,30,15,192,197,162,128,30,13,192,197,226,129,30,14,192,197,34,130,30,14,192,197,98,131,30,14,192,197,162,132,30,14,192,197,226,117,1,15,0,117,1,12,192,197,162,84,30,12,192,197,226,85,30,13,192,197,34,86,30,13,192,197,98,87,30,13,192,197,162,80,0,2,255,135,5,87,0,3,255,135,5,112,0,2,255,70,5,119,0,3,255,70,5,116,1,12,192,197,98,0,68,156,5,36,0,131,30,63,0,152,30,32,0,245,30,15,0,245,30,23,192,197,98,246,30,23,192,197,162,247,30,23,192,197,226,248,30,24,192,197,34,249,30,24,192,197,98,152,30,22,192,197,34,153,30,22,192,197,98,242,30,22,192,197,162,243,30,22,192,197,226,244,30,23,192,197,34,135,30,15,0,135,30,20,192,197,226,136,30,21,192,197,34,137,30,21,192,197,98,142,30,21,192,197,162,143,30,21,192,197,226,131,30,19,192,197,226,132,30,20,192,197,34,133,30,20,192,197,98,134,30,20,192,197,162,118,1,30,0,51,2,16,0,51,2,18,192,197,226,7,3,255,255,2,69,134,5,128,30,19,192,197,34,129,30,19,192,197,98,130,30,19,192,197,162,118,1,17,192,197,226,119,1,18,192,197,34,120,1,18,192,197,98,50,2,18,192,197,162,221,0,15,0,221,0,16,192,197,162,253,0,16,192,197,226,255,0,17,192,197,34,116,1,17,192,197,98,117,1,17,192,197,162,87,0,255,255,3,69,135,5,89,0,255,255,4,69,135,5,119,0,255,255,3,69,70,5,121,0,255,255,4,69,70,5,0,70,156,5,48,0,35,3,255,255,2,71,134,5,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,27,192,197,34,41,30,27,192,197,98,42,30,27,192,197,162,43,30,27,192,197,226,150,30,28,192,197,34,36,30,26,192,197,34,37,30,26,192,197,98,38,30,26,192,197,162,39,30,26,192,197,226,30,2,12,0,30,2,25,192,197,34,31,2,25,192,197,98,34,30,25,192,197,162,35,30,25,192,197,226,72,0,255,255,2,79,135,5,104,0,255,255,2,79,70,5,36,1,24,192,197,162,37,1,24,192,197,226,0,82,156,5,48,0,35,3,255,255,2,83,134,5,0,46,5,5,8,0,37,30,15,0,37,30,29,192,197,34,39,30,29,192,197,98,41,30,29,192,197,162,43,30,29,192,197,226,150,30,30,192,197,34,104,0,2,237,5,5,37,1,28,192,197,98,31,2,28,192,197,162,35,30,28,192,197,226,0,54,5,5,20,0,37,30,37,0,131,30,20,0,137,30,9,0,137,30,34,192,197,34,150,30,34,192,197,98,152,30,34,192,197,162,131,30,33,192,197,98,133,30,33,192,197,162,135,30,33,192,197,226,37,30,32,192,197,34,39,30,32,192,197,98,41,30,32,192,197,162,43,30,32,192,197,226,129,30,33,192,197,34,31,2,15,0,31,2,30,192,197,226,3,30,31,192,197,34,5,30,31,192,197,98,7,30,31,192,197,162,35,30,31,192,197,226,98,0,2,247,5,5,104,0,3,247,5,5,119,0,4,247,5,5,37,1,30,192,197,98,117,1,30,192,197,162,0,58,5,5,48,0,35,3,2,251,5,5,0,62,5,5,10,0,129,30,20,0,135,30,9,0,135,30,36,192,197,98,137,30,36,192,197,162,152,30,36,192,197,226,129,30,35,192,197,162,131,30,35,192,197,226,133,30,36,192,197,34,112,0,2,255,5,5,119,0,3,255,5,5,117,1,34,192,197,226,85,30,35,192,197,34,87,30,35,192,197,98,0,68,5,5,19,0,133,30,32,0,153,30,15,0,153,30,40,192,197,34,243,30,40,192,197,98,245,30,40,192,197,162,247,30,40,192,197,226,249,30,41,192,197,34,133,30,38,192,197,226,135,30,39,192,197,34,137,30,39,192,197,98,143,30,39,192,197,162,152,30,39,192,197,226,119,1,16,0,119,1,37,192,197,226,51,2,38,192,197,34,7,3,255,255,2,69,5,5,129,30,38,192,197,98,131,30,38,192,197,162,119,0,255,255,3,69,5,5,121,0,255,255,4,69,5,5,253,0,37,192,197,34,255,0,37,192,197,98,117,1,37,192,197,162,0,70,5,5,48,0,35,3,255,255,2,71,5,5,0,78,5,5,8,0,37,30,15,0,37,30,42,192,197,34,39,30,42,192,197,98,41,30,42,192,197,162,43,30,42,192,197,226,150,30,43,192,197,34,104,0,255,255,2,79,5,5,37,1,41,192,197,98,31,2,41,192,197,162,35,30,41,192,197,226,0,82,5,5,48,0,35,3,255,255,2,83,5,5,156,58,196,162,48,0,35,3,43,192,197,98,5,58,196,162,48,0,35,3,43,192,197,162,156,68,196,160,48,0,7,3,43,192,197,226,5,68,196,160,48,0,7,3,44,192,197,34,156,82,196,162,48,0,35,3,44,192,197,98,5,82,196,162,48,0,35,3,44,192,197,162,156,70,196,190,48,0,35,3,44,192,197,226,5,70,196,190,48,0,35,3,45,192,197,34,156,82,196,190,48,0,35,3,45,192,197,98,5,82,196,190,48,0,35,3,45,192,197,162,156,70,196,162,48,0,35,3,45,192,197,226,5,70,196,162,48,0,35,3,46,192,197,34,156,68,196,196,48,0,7,3,46,192,197,98,5,68,196,196,48,0,7,3,46,192,197,162,156,68,196,210,48,0,7,3,46,192,197,226,5,68,196,210,48,0,7,3,47,192,197,34,156,68,196,204,48,0,7,3,47,192,197,98,5,68,196,204,48,0,7,3,47,192,197,162,50,0,66,0,67,0,72,0,73,0,80,0,81,0,87,0,88,0,89,0,90,0,98,0,99,0,104,0,105,0,112,0,113,0,119,0,120,0,121,0,122,0,221,0,222,0,253,0,254,0,255,0,0,1,36,1,38,1,116,1,121,1,30,2,32,2,50,2,52,2,2,30,8,30,34,30,44,30,84,30,88,30,128,30,138,30,142,30,144,30,150,30,151,30,152,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,36,4,185,100,58,4,186,112,60,4,185,128,185,132,74,4,100,4,185,156,185,160,185,168,102,4,185,180,112,4,185,192,185,196,185,200,185,204,185,208,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,114,4,168,72,168,76,168,80,120,4,168,100,132,4,168,112,134,4,168,128,168,132,142,4,156,4,168,156,168,160,168,168,158,4,168,180,164,4,168,192,168,196,168,200,168,204,168,208,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,152,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,70,186,77,154,77,250,77,90,78,186,105,154,105,250,105,90,106,217,72,154,138,185,153,153,153,249,153,153,154,89,154,136,14,217,154,185,189,153,189,249,189,89,190,153,205,185,212,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,70,168,77,136,77,232,77,72,78,168,105,136,105,232,105,72,106,200,72,136,138,168,153,136,153,232,153,136,154,72,154,128,14,200,154,168,189,136,189,232,189,72,190,136,205,168,212,72,206,57,59,40,59,217,57,200,57,25,59,8,59,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,166,4,168,4,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,164,153,129,136,129,249,130,232,130,25,130,8,130,121,131,104,131,89,131,72,131,154,137,136,137,170,4,172,4,26,138,8,138,10,8,185,148,168,148,57,155,40,155,217,153,200,153,121,154,104,154,12,8,14,8,153,169,136,169,249,170,232,170,25,170,8,170,154,173,136,173,250,173,232,173,250,174,232,174,26,174,8,174,249,182,232,182,25,182,8,182,185,184,168,184,153,190,136,190,57,191,40,191,217,189,200,189,57,190,40,190,121,190,104,190,174,4,176,4,249,197,232,197,249,205,232,205,89,206,153,209,136,209,185,210,168,210,25,210,8,210,232,172,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,172,169,172,200,56,169,76,187,104,187,112,169,104,169,112,169,216,169,136,217,152,187,76,200,152,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,68,72,4,186,64,104,4,177,64,36,5,250,65,37,5,241,65,255,5,185,84,66,4,186,88,72,4,186,92,87,4,186,96,98,4,177,88,104,4,177,92,119,4,177,96,36,5,250,93,37,5,241,93,116,5,250,97,117,5,241,97,255,5,186,104,255,5,185,116,80,4,186,120,87,4,186,124,112,4,177,120,119,4,177,124,116,5,250,125,117,5,241,125,255,5,186,136,87,4,186,140,89,4,186,144,119,4,177,140,121,4,177,144,221,4,154,145,253,4,145,145,255,4,81,146,116,5,250,141,117,5,241,141,118,5,250,145,119,5,241,145,120,5,90,146,255,5,185,152,255,5,186,172,72,4,186,176,104,4,177,176,36,5,250,177,37,5,241,177,255,5,185,188,255,5,168,68,104,4,168,64,37,5,232,65,255,5,168,84,98,4,168,88,104,4,168,92,119,4,168,96,37,5,232,93,117,5,232,97,255,5,168,104,255,5,168,116,112,4,168,120,119,4,168,124,117,5,232,125,255,5,168,136,119,4,168,140,121,4,168,144,253,4,136,145,255,4,72,146,117,5,232,141,119,5,232,145,255,5,168,152,255,5,168,172,104,4,168,176,37,5,232,177,255,5,168,188,255,5,26,107,255,5,8,107,255,5,250,138,255,5,232,138,255,5,25,191,255,5,8,191,255,1,170,170,3,0,69,0,52,0,61,0,115,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,60,12,0,32,1,0,32,0,65,12,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,105,0,100,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,0,0,80,7,0,0,0,10,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,65,76,73,65,83,0,0,0,105,0,100,0,95,0,73,0,68,0,0,0,1,0,32,0,1,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,236,23,0,32,7,0,0,0,23,0,0,0,238,23,0,0,238,23,0,0,3,0,0,0,0,0,0,0,135,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,105,0,115,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,167,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,98,0,60,0,225,0,60,0,60,0,60,0,193,0,38,0,100,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,240,0,60,0,60,0,60,0,208,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,102,0,60,0,233,0,60,0,60,0,60,0,201,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,106,0,60,0,237,0,60,0,60,0,60,0,205,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,112,0,60,0,243,0,60,0,60,0,60,0,211,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,118,0,60,0,250,0,60,0,60,0,60,0,218,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,122,0,60,0,253,0,60,0,60,0,60,0,221,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,229,0,60,0,60,0,60,0,197,0,0,0,206,49,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,188,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,244,38,0,0,244,38,0,0,132,40,0,0,132,40,0,0,168,44,0,0,168,44,0,0,178,49,0,0,178,49,0,0,178,49,0,0,50,105,114,84,1,0,64,8,98,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,15,1,48,0,19,1,48,0,27,1,34,1,42,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,59,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,75,1,48,0,48,0,81,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,31,0,202,1,32,0,202,34,32,0,202,67,32,0,202,100,32,0,202,133,32,0,202,166,32,0,202,199,32,0,202,232,32,0,202,9,33,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,102,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,134,3,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,4,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,6,0,156,5,0,84,160,5,0,86,156,5,0,88,201,198,7,0,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,9,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,11,0,5,5,0,52,5,5,0,54,5,5,0,56,201,70,12,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,13,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,70,15,0,5,5,0,84,5,5,0,86,5,5,0,88,201,166,16,0,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,129,0,0,196,160,156,46,196,138,156,50,134,5,49,51,196,142,156,50,196,150,156,50,196,138,156,58,134,5,27,59,196,142,156,58,196,150,156,58,134,5,2,49,196,154,156,68,196,138,156,70,134,5,61,71,196,142,156,70,196,154,156,70,198,65,0,0,5,5,127,12,198,161,0,0,196,138,156,82,134,5,51,83,196,142,156,82,196,150,156,82,134,5,17,91,160,5,38,93,197,66,23,0,196,138,5,42,5,5,31,43,196,142,5,42,196,154,5,42,198,97,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,5,5,49,51,196,142,5,50,196,150,5,50,196,138,5,58,5,5,27,59,196,142,5,58,196,150,5,58,5,5,2,49,196,154,5,68,196,138,5,70,5,5,61,71,196,142,5,70,196,154,5,70,193,3,111,93,5,5,125,12,198,193,0,0,196,138,5,82,5,5,51,83,196,142,5,82,196,150,5,82,5,5,17,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,21,0,201,166,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,38,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,28,0,201,198,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,31,0,201,102,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,198,34,2,0,192,0,0,0,192,0,0,0,198,98,2,0,197,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,33,0,201,6,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,2,0,197,162,4,0,198,34,3,0,197,226,4,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,36,0,201,166,37,0,198,226,3,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,38,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,40,0,5,71,238,102,201,134,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,42,0,201,70,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,46,0,201,70,47,0,201,102,48,0,201,134,49,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,50,0,201,198,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,52,0,201,6,54,0,201,38,55,0,201,70,56,0,201,102,57,0,201,134,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,59,0,201,134,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,63,0,201,134,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,65,0,201,198,66,0,201,230,67,0,201,102,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,2,0,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,70,0,201,102,72,0,201,230,73,0,201,6,75,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,76,0,201,70,77,0,192,0,0,0,192,0,0,0,201,102,78,0,201,134,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,70,0,2,111,93,0,134,0,5,0,2,111,93,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,4,111,93,5,162,0,0,134,5,49,51,5,162,0,0,5,5,49,51,5,162,0,0,134,5,27,59,5,162,0,0,5,5,27,59,5,162,0,0,134,5,51,83,5,162,0,0,5,5,51,83,5,162,0,0,134,5,61,71,5,190,0,0,5,5,61,71,5,190,0,0,193,3,111,93,5,190,0,0,134,5,51,83,5,190,0,0,5,5,51,83,5,190,0,0,193,2,111,93,5,164,0,0,134,5,61,71,5,162,0,0,5,5,61,71,5,162,0,0,193,3,111,93,5,162,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,134,5,49,51,5,160,0,0,5,5,49,51,5,160,0,0,193,3,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,4,111,93,5,200,0,0,134,5,49,51,5,204,0,0,5,5,49,51,5,204,0,0,134,5,49,51,5,208,0,0,5,5,49,51,5,208,0,0,134,5,27,59,5,208,0,0,5,5,27,59,5,208,0,0,134,5,51,83,5,198,0,0,5,5,51,83,5,198,0,0,134,5,51,83,5,208,0,0,5,5,51,83,5,208,0,0,134,5,51,83,5,204,0,0,5,5,51,83,5,204,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,4,111,93,5,196,0,0,134,5,49,51,5,196,0,0,5,5,49,51,5,196,0,0,134,5,27,59,5,196,0,0,5,5,27,59,5,196,0,0,134,5,61,71,5,196,0,0,5,5,61,71,5,196,0,0,193,3,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,61,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,61,71,5,190,0,0,5,196,0,0,193,3,111,93,5,190,0,0,5,196,0,0,134,5,51,83,5,196,0,0,5,5,51,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,51,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,51,83,5,190,0,0,5,196,0,0,134,5,17,91,5,196,0,0,5,5,17,91,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,3,0,1,3,31,235,134,5,8,3,198,129,10,3,198,161,65,3,31,235,134,5,0,50,156,5,1,0,1,3,49,243,134,5,65,3,49,243,134,5,0,58,156,5,1,0,1,3,27,251,134,5,65,3,27,251,134,5,0,70,156,5,2,0,1,3,255,255,61,71,134,5,8,3,0,192,198,65,65,3,255,255,61,71,134,5,0,82,156,5,1,0,1,3,255,255,51,83,134,5,65,3,255,255,51,83,134,5,0,90,156,5,1,0,1,3,255,255,17,91,134,5,65,3,255,255,17,91,134,5,0,42,5,5,3,0,1,3,31,235,5,5,8,3,0,192,198,97,10,3,255,255,111,93,193,4,65,3,31,235,5,5,0,50,5,5,1,0,1,3,49,243,5,5,65,3,49,243,5,5,0,58,5,5,1,0,1,3,27,251,5,5,65,3,27,251,5,5,0,70,5,5,2,0,1,3,255,255,61,71,5,5,8,3,255,255,111,93,193,3,65,3,255,255,61,71,5,5,0,82,5,5,1,0,1,3,255,255,51,83,5,5,65,3,255,255,51,83,5,5,0,90,5,5,1,0,1,3,255,255,17,91,5,5,65,3,255,255,17,91,5,5,156,42,196,162,3,0,1,3,197,162,8,3,0,192,198,226,10,3,1,192,198,34,65,3,197,162,5,42,196,162,3,0,1,3,0,192,197,98,8,3,1,192,198,98,10,3,0,192,197,162,65,3,0,192,197,98,156,50,196,162,1,0,1,3,0,192,197,226,65,3,0,192,197,226,5,50,196,162,1,0,1,3,1,192,197,34,65,3,1,192,197,34,156,58,196,162,1,0,1,3,1,192,197,98,65,3,1,192,197,98,5,58,196,162,1,0,1,3,1,192,197,162,65,3,1,192,197,162,156,82,196,162,1,0,1,3,1,192,197,226,65,3,1,192,197,226,5,82,196,162,1,0,1,3,2,192,197,34,65,3,2,192,197,34,156,70,196,190,2,0,1,3,2,192,197,98,8,3,1,192,198,162,65,3,2,192,197,98,5,70,196,190,2,0,1,3,2,192,197,162,8,3,2,192,197,226,65,3,2,192,197,162,156,82,196,190,1,0,1,3,3,192,197,34,65,3,3,192,197,34,5,82,196,190,1,0,1,3,3,192,197,98,65,3,3,192,197,98,156,70,196,162,2,0,1,3,3,192,197,226,8,3,2,192,198,162,65,3,3,192,197,226,5,70,196,162,2,0,1,3,4,192,197,34,8,3,4,192,197,98,65,3,4,192,197,34,156,50,196,160,1,0,1,3,5,192,197,34,65,3,5,192,197,34,5,50,196,160,1,0,1,3,5,192,197,98,65,3,5,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,3,0,1,3,12,192,197,162,8,3,4,192,198,34,10,3,4,192,198,98,65,3,12,192,197,162,5,42,196,200,3,0,1,3,12,192,197,226,8,3,4,192,198,162,10,3,13,192,197,34,65,3,12,192,197,226,156,50,196,204,1,0,1,3,13,192,197,98,65,3,13,192,197,98,5,50,196,204,1,0,1,3,13,192,197,162,65,3,13,192,197,162,156,50,196,208,1,0,1,3,13,192,197,226,65,3,13,192,197,226,5,50,196,208,1,0,1,3,14,192,197,34,65,3,14,192,197,34,156,58,196,208,1,0,1,3,14,192,197,98,65,3,14,192,197,98,5,58,196,208,1,0,1,3,14,192,197,162,65,3,14,192,197,162,156,82,196,198,1,0,1,3,14,192,197,226,65,3,14,192,197,226,5,82,196,198,1,0,1,3,15,192,197,34,65,3,15,192,197,34,156,82,196,208,1,0,1,3,15,192,197,98,65,3,15,192,197,98,5,82,196,208,1,0,1,3,15,192,197,162,65,3,15,192,197,162,156,82,196,204,1,0,1,3,15,192,197,226,65,3,15,192,197,226,5,82,196,204,1,0,1,3,16,192,197,34,65,3,16,192,197,34,156,42,196,196,3,0,1,3,16,192,197,98,8,3,4,192,198,226,10,3,5,192,198,34,65,3,16,192,197,98,5,42,196,196,3,0,1,3,16,192,197,162,8,3,5,192,198,98,10,3,16,192,197,226,65,3,16,192,197,162,156,50,196,196,1,0,1,3,17,192,197,34,65,3,17,192,197,34,5,50,196,196,1,0,1,3,17,192,197,98,65,3,17,192,197,98,156,58,196,196,1,0,1,3,17,192,197,162,65,3,17,192,197,162,5,58,196,196,1,0,1,3,17,192,197,226,65,3,17,192,197,226,156,70,196,196,2,0,1,3,18,192,197,34,8,3,5,192,198,162,65,3,18,192,197,34,5,70,196,196,2,0,1,3,18,192,197,98,8,3,18,192,197,162,65,3,18,192,197,98,18,0,197,227,2,0,1,3,19,192,197,67,8,3,5,192,198,227,65,3,19,192,197,67,19,0,197,163,2,0,1,3,20,192,197,3,8,3,20,192,197,99,65,3,20,192,197,3,156,82,196,196,1,0,1,3,20,192,197,194,65,3,20,192,197,194,5,82,196,196,1,0,1,3,21,192,197,2,65,3,21,192,197,2,21,0,197,67,1,0,1,3,21,192,197,163,65,3,21,192,197,163,22,0,197,3,1,0,1,3,22,192,197,99,65,3,22,192,197,99,156,90,196,196,1,0,1,3,22,192,197,194,65,3,22,192,197,194,5,90,196,196,1,0,1,3,23,192,197,2,65,3,23,192,197,2,170,170,3,0,67,0,50,0,59,0,135,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,124,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,30,0,0,196,30,0,0,84,32,0,0,84,32,0,0,148,34,0,0,148,34,0,0,88,39,0,0,88,39,0,0,96,43,0,0,50,105,114,84,1,0,64,8,223,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,173,0,48,0,177,0,48,0,185,0,192,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,16,0,202,225,16,0,202,2,17,0,202,35,17,0,202,68,17,0,202,101,17,0,202,134,17,0,202,167,17,0,202,200,17,0,202,233,17,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,1,0,156,5,0,52,156,5,0,54,156,5,0,56,201,198,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,3,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,5,0,156,5,0,84,160,5,0,86,156,5,0,88,201,6,7,0,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,102,8,0,5,5,0,44,5,5,0,46,5,5,0,48,201,102,10,0,5,5,0,52,5,5,0,54,5,5,0,56,201,134,11,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,12,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,14,0,5,5,0,84,5,5,0,86,5,5,0,88,201,230,15,0,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,129,0,0,196,160,156,46,196,138,156,50,134,5,49,51,196,142,156,50,196,150,156,50,196,138,156,58,134,5,27,59,196,142,156,58,196,150,156,58,134,5,2,49,196,154,156,68,196,138,156,70,134,5,61,71,196,142,156,70,196,154,156,70,198,65,0,0,5,5,127,12,198,161,0,0,196,138,156,82,134,5,51,83,196,142,156,82,196,150,156,82,134,5,17,91,160,5,38,93,197,130,16,0,196,138,5,42,5,5,31,43,196,142,5,42,196,154,5,42,198,97,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,5,5,49,51,196,142,5,50,196,150,5,50,196,138,5,58,5,5,27,59,196,142,5,58,196,150,5,58,5,5,2,49,196,154,5,68,196,138,5,70,5,5,61,71,196,142,5,70,196,154,5,70,193,3,111,93,5,5,125,12,198,193,0,0,196,138,5,82,5,5,51,83,196,142,5,82,196,150,5,82,5,5,17,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,17,0,201,230,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,230,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,38,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,102,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,27,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,166,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,198,34,2,0,192,0,0,0,192,0,0,0,198,98,2,0,197,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,70,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,2,0,197,162,4,0,198,34,3,0,197,226,4,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,35,0,201,230,36,0,198,226,3,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,38,0,201,230,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,41,0,201,230,42,0,201,6,44,0,201,38,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,46,0,201,102,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,48,0,201,166,49,0,201,198,50,0,201,230,51,0,201,6,53,0,201,38,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,55,0,201,38,57,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,59,0,201,38,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,61,0,201,102,62,0,201,134,63,0,201,6,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,2,0,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,66,0,201,6,68,0,201,134,69,0,201,166,70,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,71,0,201,230,72,0,192,0,0,0,192,0,0,0,201,6,74,0,201,38,75,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,70,0,2,111,93,0,134,0,5,0,2,111,93,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,4,111,93,5,162,0,0,134,5,49,51,5,162,0,0,5,5,49,51,5,162,0,0,134,5,27,59,5,162,0,0,5,5,27,59,5,162,0,0,134,5,51,83,5,162,0,0,5,5,51,83,5,162,0,0,134,5,61,71,5,190,0,0,5,5,61,71,5,190,0,0,193,3,111,93,5,190,0,0,134,5,51,83,5,190,0,0,5,5,51,83,5,190,0,0,193,2,111,93,5,164,0,0,134,5,61,71,5,162,0,0,5,5,61,71,5,162,0,0,193,3,111,93,5,162,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,134,5,49,51,5,160,0,0,5,5,49,51,5,160,0,0,193,3,111,93,5,164,0,0,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,4,111,93,5,200,0,0,134,5,49,51,5,204,0,0,5,5,49,51,5,204,0,0,134,5,49,51,5,208,0,0,5,5,49,51,5,208,0,0,134,5,27,59,5,208,0,0,5,5,27,59,5,208,0,0,134,5,51,83,5,198,0,0,5,5,51,83,5,198,0,0,134,5,51,83,5,208,0,0,5,5,51,83,5,208,0,0,134,5,51,83,5,204,0,0,5,5,51,83,5,204,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,4,111,93,5,196,0,0,134,5,49,51,5,196,0,0,5,5,49,51,5,196,0,0,134,5,27,59,5,196,0,0,5,5,27,59,5,196,0,0,134,5,61,71,5,196,0,0,5,5,61,71,5,196,0,0,193,3,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,61,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,61,71,5,190,0,0,5,196,0,0,193,3,111,93,5,190,0,0,5,196,0,0,134,5,51,83,5,196,0,0,5,5,51,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,51,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,51,83,5,190,0,0,5,196,0,0,134,5,17,91,5,196,0,0,5,5,17,91,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,3,0,1,3,31,235,134,5,8,3,198,129,10,3,198,161,65,3,31,235,134,5,0,50,156,5,1,0,1,3,49,243,134,5,65,3,49,243,134,5,0,58,156,5,1,0,1,3,27,251,134,5,65,3,27,251,134,5,0,70,156,5,2,0,1,3,255,255,61,71,134,5,8,3,0,192,198,65,65,3,255,255,61,71,134,5,0,82,156,5,1,0,1,3,255,255,51,83,134,5,65,3,255,255,51,83,134,5,0,90,156,5,1,0,1,3,255,255,17,91,134,5,65,3,255,255,17,91,134,5,0,42,5,5,3,0,1,3,31,235,5,5,8,3,0,192,198,97,10,3,255,255,111,93,193,4,65,3,31,235,5,5,0,50,5,5,1,0,1,3,49,243,5,5,65,3,49,243,5,5,0,58,5,5,1,0,1,3,27,251,5,5,65,3,27,251,5,5,0,70,5,5,2,0,1,3,255,255,61,71,5,5,8,3,255,255,111,93,193,3,65,3,255,255,61,71,5,5,0,82,5,5,1,0,1,3,255,255,51,83,5,5,65,3,255,255,51,83,5,5,0,90,5,5,1,0,1,3,255,255,17,91,5,5,65,3,255,255,17,91,5,5,156,42,196,162,3,0,1,3,197,162,8,3,0,192,198,226,10,3,1,192,198,34,65,3,197,162,5,42,196,162,3,0,1,3,0,192,197,98,8,3,1,192,198,98,10,3,0,192,197,162,65,3,0,192,197,98,156,50,196,162,1,0,1,3,0,192,197,226,65,3,0,192,197,226,5,50,196,162,1,0,1,3,1,192,197,34,65,3,1,192,197,34,156,58,196,162,1,0,1,3,1,192,197,98,65,3,1,192,197,98,5,58,196,162,1,0,1,3,1,192,197,162,65,3,1,192,197,162,156,82,196,162,1,0,1,3,1,192,197,226,65,3,1,192,197,226,5,82,196,162,1,0,1,3,2,192,197,34,65,3,2,192,197,34,156,70,196,190,2,0,1,3,2,192,197,98,8,3,1,192,198,162,65,3,2,192,197,98,5,70,196,190,2,0,1,3,2,192,197,162,8,3,2,192,197,226,65,3,2,192,197,162,156,82,196,190,1,0,1,3,3,192,197,34,65,3,3,192,197,34,5,82,196,190,1,0,1,3,3,192,197,98,65,3,3,192,197,98,156,70,196,162,2,0,1,3,3,192,197,226,8,3,2,192,198,162,65,3,3,192,197,226,5,70,196,162,2,0,1,3,4,192,197,34,8,3,4,192,197,98,65,3,4,192,197,34,156,50,196,160,1,0,1,3,5,192,197,34,65,3,5,192,197,34,5,50,196,160,1,0,1,3,5,192,197,98,65,3,5,192,197,98,156,42,196,200,3,0,1,3,5,192,197,226,8,3,4,192,198,34,10,3,4,192,198,98,65,3,5,192,197,226,5,42,196,200,3,0,1,3,6,192,197,34,8,3,4,192,198,162,10,3,6,192,197,98,65,3,6,192,197,34,156,50,196,204,1,0,1,3,6,192,197,162,65,3,6,192,197,162,5,50,196,204,1,0,1,3,6,192,197,226,65,3,6,192,197,226,156,50,196,208,1,0,1,3,7,192,197,34,65,3,7,192,197,34,5,50,196,208,1,0,1,3,7,192,197,98,65,3,7,192,197,98,156,58,196,208,1,0,1,3,7,192,197,162,65,3,7,192,197,162,5,58,196,208,1,0,1,3,7,192,197,226,65,3,7,192,197,226,156,82,196,198,1,0,1,3,8,192,197,34,65,3,8,192,197,34,5,82,196,198,1,0,1,3,8,192,197,98,65,3,8,192,197,98,156,82,196,208,1,0,1,3,8,192,197,162,65,3,8,192,197,162,5,82,196,208,1,0,1,3,8,192,197,226,65,3,8,192,197,226,156,82,196,204,1,0,1,3,9,192,197,34,65,3,9,192,197,34,5,82,196,204,1,0,1,3,9,192,197,98,65,3,9,192,197,98,156,42,196,196,3,0,1,3,9,192,197,162,8,3,4,192,198,226,10,3,5,192,198,34,65,3,9,192,197,162,5,42,196,196,3,0,1,3,9,192,197,226,8,3,5,192,198,98,10,3,10,192,197,34,65,3,9,192,197,226,156,50,196,196,1,0,1,3,10,192,197,98,65,3,10,192,197,98,5,50,196,196,1,0,1,3,10,192,197,162,65,3,10,192,197,162,156,58,196,196,1,0,1,3,10,192,197,226,65,3,10,192,197,226,5,58,196,196,1,0,1,3,11,192,197,34,65,3,11,192,197,34,156,70,196,196,2,0,1,3,11,192,197,98,8,3,5,192,198,162,65,3,11,192,197,98,5,70,196,196,2,0,1,3,11,192,197,162,8,3,11,192,197,226,65,3,11,192,197,162,12,0,197,35,2,0,1,3,12,192,197,131,8,3,5,192,198,227,65,3,12,192,197,131,12,0,197,227,2,0,1,3,13,192,197,67,8,3,13,192,197,163,65,3,13,192,197,67,156,82,196,196,1,0,1,3,14,192,197,2,65,3,14,192,197,2,5,82,196,196,1,0,1,3,14,192,197,66,65,3,14,192,197,66,14,0,197,131,1,0,1,3,14,192,197,227,65,3,14,192,197,227,15,0,197,67,1,0,1,3,15,192,197,163,65,3,15,192,197,163,156,90,196,196,1,0,1,3,16,192,197,2,65,3,16,192,197,2,5,90,196,196,1,0,1,3,16,192,197,66,65,3,16,192,197,66,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,64,185,68,185,72,24,4,185,88,185,92,185,96,26,4,186,112,185,116,185,120,185,124,186,128,28,4,185,144,185,148,185,156,186,160,185,164,30,4,185,180,185,184,185,188,32,4,185,200,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,64,168,68,168,72,36,4,168,88,168,92,168,96,38,4,168,112,168,116,168,120,168,124,168,128,40,4,168,144,168,148,168,156,168,160,168,164,42,4,168,180,168,184,168,188,44,4,168,200,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,185,60,249,57,153,58,217,212,185,220,185,212,217,70,186,81,185,84,250,81,90,82,186,101,185,108,250,101,90,102,185,76,154,130,185,137,185,140,249,137,153,138,185,216,136,14,217,216,185,173,185,176,249,173,89,174,185,196,185,204,0,8,168,57,168,60,232,57,136,58,200,212,168,220,168,212,200,70,168,81,168,84,232,81,72,82,168,101,168,108,232,101,72,102,168,76,136,130,168,137,168,140,232,137,136,138,168,216,128,14,200,216,168,173,168,176,232,173,72,174,168,196,168,204,72,194,25,59,8,59,217,57,200,57,46,4,48,4,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,217,72,200,72,26,83,8,83,218,81,200,81,186,82,168,82,50,4,52,4,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,217,94,200,94,249,97,232,97,57,99,40,99,154,102,136,102,26,103,8,103,218,101,200,101,54,4,56,4,186,102,168,104,2,8,4,8,250,113,232,113,217,118,200,118,168,152,153,121,136,121,217,122,200,122,25,122,8,122,89,123,72,123,57,123,40,123,154,129,136,129,218,130,200,130,26,130,8,130,6,8,185,132,168,132,25,139,8,139,217,137,200,137,121,138,104,138,8,8,10,8,153,157,136,157,217,158,200,158,25,158,8,158,154,161,136,161,250,161,232,161,218,162,200,162,26,162,8,162,217,166,200,166,25,166,8,166,185,168,168,168,153,174,136,174,25,175,8,175,217,173,200,173,57,174,40,174,121,174,104,174,58,4,60,4,249,185,232,185,249,193,232,193,89,194,153,201,136,201,185,202,168,202,25,202,8,202,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,200,160,169,160,187,100,187,112,169,100,169,112,169,208,169,128,217,136,187,80,200,136,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,80,255,5,186,100,255,5,185,136,255,5,185,172,255,5,185,192,255,5,168,56,255,5,168,80,255,5,168,100,255,5,168,136,255,5,168,172,255,5,168,192,255,5,249,58,255,5,232,58,255,5,250,82,255,5,232,82,255,5,250,102,255,5,232,102,255,5,249,174,255,5,232,174,255,1,3,0,67,0,50,0,59,0,3,13,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,252,12,0,32,227,23,0,32,1,0,32,0,232,23,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,104,0,101,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,0,0,80,7,0,0,0,10,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,65,76,73,65,83,0,0,0,104,0,101,0,95,0,73,0,76,0,0,0,1,0,32,0,1,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,245,142,0,32,7,0,0,0,26,0,0,0,247,142,0,0,247,142,0,0,3,0,0,0,0,0,0,0,218,22,0,0,99,111,108,108,97,116,105,111,110,115,0,112,114,105,118,97,116,101,45,107,97,110,97,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,115,116,97,110,100,97,114,100,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,117,110,105,104,97,110,0,0,0,52,0,50,0,0,0,61,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,117,0,110,0,105,0,104,0,97,0,110,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,106,0,97,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,107,0,97,0,110,0,97,0,93,0,0,0,239,223,39,20,91,0,115,0,116,0,114,0,101,0,110,0,103,0,116,0,104,0,32,0,51,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,75,0,97,0,110,0,97,0,32,0,72,0,97,0,110,0,105,0,93,0,38,0,157,48,60,0,60,0,60,0,60,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,65,48,60,0,60,0,60,0,65,48,124,0,252,48,61,0,66,48,124,0,252,48,61,0,75,48,124,0,252,48,61,0,149,48,124,0,252,48,61,0,76,48,124,0,252,48,61,0,85,48,124,0,252,48,61,0,86,48,124,0,252,48,61,0,95,48,124,0,252,48,61,0,96,48,124,0,252,48,61,0,106,48,124,0,252,48,61,0,111,48,124,0,252,48,61,0,112,48,124,0,252,48,61,0,113,48,124,0,252,48,61,0,126,48,124,0,252,48,61,0,131,48,124,0,252,48,61,0,132,48,124,0,252,48,61,0,137,48,124,0,252,48,61,0,142,48,124,0,252,48,61,0,143,48,124,0,252,48,60,0,60,0,60,0,60,0,161,48,124,0,252,48,61,0,103,255,124,0,252,48,61,0,162,48,124,0,252,48,61,0,113,255,124,0,252,48,61,0,171,48,124,0,252,48,61,0,118,255,124,0,252,48,61,0,172,48,124,0,252,48,61,0,181,48,124,0,252,48,61,0,123,255,124,0,252,48,61,0,182,48,124,0,252,48,61,0,191,48,124,0,252,48,61,0,128,255,124,0,252,48,61,0,192,48,124,0,252,48,61,0,202,48,124,0,252,48,61,0,133,255,124,0,252,48,61,0,207,48,124,0,252,48,61,0,138,255,124,0,252,48,61,0,245,49,124,0,252,48,61,0,208,48,124,0,252,48,61,0,209,48,124,0,252,48,61,0,222,48,124,0,252,48,61,0,143,255,124,0,252,48,61,0,227,48,124,0,252,48,61,0,108,255,124,0,252,48,61,0,228,48,124,0,252,48,61,0,148,255,124,0,252,48,61,0,233,48,124,0,252,48,61,0,151,255,124,0,252,48,61,0,251,49,124,0,252,48,61,0,238,48,124,0,252,48,61,0,239,48,124,0,252,48,61,0,156,255,124,0,252,48,61,0,245,48,124,0,252,48,61,0,247,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,67,48,60,0,60,0,60,0,67,48,124,0,252,48,61,0,68,48,124,0,252,48,61,0,77,48,124,0,252,48,61,0,78,48,124,0,252,48,61,0,87,48,124,0,252,48,61,0,88,48,124,0,252,48,61,0,97,48,124,0,252,48,61,0,98,48,124,0,252,48,61,0,107,48,124,0,252,48,61,0,114,48,124,0,252,48,61,0,115,48,124,0,252,48,61,0,116,48,124,0,252,48,61,0,127,48,124,0,252,48,61,0,138,48,124,0,252,48,61,0,144,48,124,0,252,48,60,0,60,0,60,0,60,0,163,48,124,0,252,48,61,0,104,255,124,0,252,48,61,0,164,48,124,0,252,48,61,0,114,255,124,0,252,48,61,0,173,48,124,0,252,48,61,0,119,255,124,0,252,48,61,0,174,48,124,0,252,48,61,0,183,48,124,0,252,48,61,0,124,255,124,0,252,48,61,0,241,49,124,0,252,48,61,0,184,48,124,0,252,48,61,0,193,48,124,0,252,48,61,0,129,255,124,0,252,48,61,0,194,48,124,0,252,48,61,0,203,48,124,0,252,48,61,0,134,255,124,0,252,48,61,0,210,48,124,0,252,48,61,0,139,255,124,0,252,48,61,0,246,49,124,0,252,48,61,0,211,48,124,0,252,48,61,0,212,48,124,0,252,48,61,0,223,48,124,0,252,48,61,0,144,255,124,0,252,48,61,0,234,48,124,0,252,48,61,0,152,255,124,0,252,48,61,0,252,49,124,0,252,48,61,0,240,48,124,0,252,48,61,0,248,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,69,48,60,0,60,0,60,0,69,48,124,0,252,48,61,0,70,48,124,0,252,48,61,0,79,48,124,0,252,48,61,0,80,48,124,0,252,48,61,0,89,48,124,0,252,48,61,0,90,48,124,0,252,48,61,0,99,48,124,0,252,48,61,0,100,48,124,0,252,48,61,0,101,48,124,0,252,48,61,0,108,48,124,0,252,48,61,0,117,48,124,0,252,48,61,0,118,48,124,0,252,48,61,0,119,48,124,0,252,48,61,0,128,48,124,0,252,48,61,0,133,48,124,0,252,48,61,0,134,48,124,0,252,48,61,0,139,48,124,0,252,48,61,0,148,48,124,0,252,48,60,0,60,0,60,0,60,0,165,48,124,0,252,48,61,0,105,255,124,0,252,48,61,0,166,48,124,0,252,48,61,0,115,255,124,0,252,48,61,0,175,48,124,0,252,48,61,0,120,255,124,0,252,48,61,0,240,49,124,0,252,48,61,0,176,48,124,0,252,48,61,0,185,48,124,0,252,48,61,0,125,255,124,0,252,48,61,0,242,49,124,0,252,48,61,0,186,48,124,0,252,48,61,0,195,48,124,0,252,48,61,0,111,255,124,0,252,48,61,0,196,48,124,0,252,48,61,0,130,255,124,0,252,48,61,0,197,48,124,0,252,48,61,0,204,48,124,0,252,48,61,0,135,255,124,0,252,48,61,0,244,49,124,0,252,48,61,0,213,48,124,0,252,48,61,0,140,255,124,0,252,48,61,0,247,49,124,0,252,48,61,0,214,48,124,0,252,48,61,0,215,48,124,0,252,48,61,0,224,48,124,0,252,48,61,0,145,255,124,0,252,48,61,0,250,49,124,0,252,48,61,0,229,48,124,0,252,48,61,0,109,255,124,0,252,48,61,0,230,48,124,0,252,48,61,0,149,255,124,0,252,48,61,0,235,48,124,0,252,48,61,0,153,255,124,0,252,48,61,0,253,49,124,0,252,48,61,0,244,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,71,48,60,0,60,0,60,0,71,48,124,0,252,48,61,0,72,48,124,0,252,48,61,0,81,48,124,0,252,48,61,0,150,48,124,0,252,48,61,0,82,48,124,0,252,48,61,0,91,48,124,0,252,48,61,0,92,48,124,0,252,48,61,0,102,48,124,0,252,48,61,0,103,48,124,0,252,48,61,0,109,48,124,0,252,48,61,0,120,48,124,0,252,48,61,0,121,48,124,0,252,48,61,0,122,48,124,0,252,48,61,0,129,48,124,0,252,48,61,0,140,48,124,0,252,48,61,0,145,48,124,0,252,48,60,0,60,0,60,0,60,0,167,48,124,0,252,48,61,0,106,255,124,0,252,48,61,0,168,48,124,0,252,48,61,0,116,255,124,0,252,48,61,0,177,48,124,0,252,48,61,0,121,255,124,0,252,48,61,0,178,48,124,0,252,48,61,0,187,48,124,0,252,48,61,0,126,255,124,0,252,48,61,0,188,48,124,0,252,48,61,0,198,48,124,0,252,48,61,0,131,255,124,0,252,48,61,0,199,48,124,0,252,48,61,0,205,48,124,0,252,48,61,0,136,255,124,0,252,48,61,0,216,48,124,0,252,48,61,0,141,255,124,0,252,48,61,0,248,49,124,0,252,48,61,0,217,48,124,0,252,48,61,0,218,48,124,0,252,48,61,0,225,48,124,0,252,48,61,0,146,255,124,0,252,48,61,0,236,48,124,0,252,48,61,0,154,255,124,0,252,48,61,0,254,49,124,0,252,48,61,0,241,48,124,0,252,48,61,0,246,48,124,0,252,48,61,0,249,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,73,48,60,0,60,0,60,0,73,48,124,0,252,48,61,0,74,48,124,0,252,48,61,0,83,48,124,0,252,48,61,0,84,48,124,0,252,48,61,0,93,48,124,0,252,48,61,0,94,48,124,0,252,48,61,0,104,48,124,0,252,48,61,0,105,48,124,0,252,48,61,0,110,48,124,0,252,48,61,0,123,48,124,0,252,48,61,0,124,48,124,0,252,48,61,0,125,48,124,0,252,48,61,0,130,48,124,0,252,48,61,0,135,48,124,0,252,48,61,0,136,48,124,0,252,48,61,0,141,48,124,0,252,48,61,0,146,48,124,0,252,48,60,0,60,0,60,0,60,0,169,48,124,0,252,48,61,0,107,255,124,0,252,48,61,0,170,48,124,0,252,48,61,0,117,255,124,0,252,48,61,0,179,48,124,0,252,48,61,0,122,255,124,0,252,48,61,0,180,48,124,0,252,48,61,0,189,48,124,0,252,48,61,0,127,255,124,0,252,48,61,0,190,48,124,0,252,48,61,0,200,48,124,0,252,48,61,0,132,255,124,0,252,48,61,0,243,49,124,0,252,48,61,0,201,48,124,0,252,48,61,0,206,48,124,0,252,48,61,0,137,255,124,0,252,48,61,0,219,48,124,0,252,48,61,0,142,255,124,0,252,48,61,0,249,49,124,0,252,48,61,0,220,48,124,0,252,48,61,0,221,48,124,0,252,48,61,0,226,48,124,0,252,48,61,0,147,255,124,0,252,48,61,0,231,48,124,0,252,48,61,0,110,255,124,0,252,48,61,0,232,48,124,0,252,48,61,0,150,255,124,0,252,48,61,0,237,48,124,0,252,48,61,0,155,255,124,0,252,48,61,0,255,49,124,0,252,48,61,0,242,48,124,0,252,48,61,0,102,255,124,0,252,48,61,0,250,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,66,48,60,0,60,0,60,0,66,48,124,0,157,48,61,0,65,48,124,0,157,48,60,0,60,0,60,0,60,0,162,48,124,0,253,48,61,0,113,255,124,0,253,48,61,0,161,48,124,0,253,48,61,0,103,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,68,48,60,0,60,0,60,0,68,48,124,0,157,48,61,0,67,48,124,0,157,48,60,0,60,0,60,0,60,0,164,48,124,0,253,48,61,0,114,255,124,0,253,48,61,0,163,48,124,0,253,48,61,0,104,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,70,48,60,0,60,0,60,0,70,48,124,0,157,48,61,0,69,48,124,0,157,48,61,0,148,48,124,0,157,48,61,0,70,48,124,0,158,48,47,0,153,48,61,0,69,48,124,0,158,48,47,0,153,48,61,0,148,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,166,48,124,0,253,48,61,0,115,255,124,0,253,48,61,0,165,48,124,0,253,48,61,0,105,255,124,0,253,48,61,0,244,48,124,0,253,48,61,0,166,48,124,0,254,48,47,0,153,48,61,0,115,255,124,0,254,48,47,0,153,48,61,0,165,48,124,0,254,48,47,0,153,48,61,0,105,255,124,0,254,48,47,0,153,48,61,0,244,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,72,48,60,0,60,0,60,0,72,48,124,0,157,48,61,0,71,48,124,0,157,48,60,0,60,0,60,0,60,0,168,48,124,0,253,48,61,0,116,255,124,0,253,48,61,0,167,48,124,0,253,48,61,0,106,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,74,48,60,0,60,0,60,0,74,48,124,0,157,48,61,0,73,48,124,0,157,48,60,0,60,0,60,0,60,0,170,48,124,0,253,48,61,0,117,255,124,0,253,48,61,0,169,48,124,0,253,48,61,0,107,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,75,48,60,0,60,0,60,0,75,48,124,0,157,48,61,0,149,48,124,0,157,48,60,0,60,0,60,0,60,0,171,48,124,0,253,48,61,0,118,255,124,0,253,48,61,0,245,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,76,48,60,0,60,0,60,0,76,48,124,0,157,48,60,0,60,0,60,0,60,0,172,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,77,48,60,0,60,0,60,0,77,48,124,0,157,48,61,0,78,48,124,0,157,48,61,0,77,48,124,0,158,48,47,0,153,48,61,0,78,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,173,48,124,0,253,48,61,0,119,255,124,0,253,48,61,0,174,48,124,0,253,48,61,0,173,48,124,0,254,48,47,0,153,48,61,0,119,255,124,0,254,48,47,0,153,48,61,0,174,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,79,48,60,0,60,0,60,0,79,48,124,0,157,48,61,0,80,48,124,0,157,48,61,0,79,48,124,0,158,48,47,0,153,48,61,0,80,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,175,48,124,0,253,48,61,0,120,255,124,0,253,48,61,0,240,49,124,0,253,48,61,0,176,48,124,0,253,48,61,0,175,48,124,0,254,48,47,0,153,48,61,0,120,255,124,0,254,48,47,0,153,48,61,0,240,49,124,0,254,48,47,0,153,48,61,0,176,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,81,48,60,0,60,0,60,0,81,48,124,0,157,48,61,0,150,48,124,0,157,48,60,0,60,0,60,0,60,0,177,48,124,0,253,48,61,0,121,255,124,0,253,48,61,0,246,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,82,48,60,0,60,0,60,0,82,48,124,0,157,48,60,0,60,0,60,0,60,0,178,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,83,48,60,0,60,0,60,0,83,48,124,0,157,48,61,0,84,48,124,0,157,48,61,0,83,48,124,0,158,48,47,0,153,48,61,0,84,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,179,48,124,0,253,48,61,0,122,255,124,0,253,48,61,0,180,48,124,0,253,48,61,0,179,48,124,0,254,48,47,0,153,48,61,0,122,255,124,0,254,48,47,0,153,48,61,0,180,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,85,48,60,0,60,0,60,0,85,48,124,0,157,48,61,0,86,48,124,0,157,48,61,0,85,48,124,0,158,48,47,0,153,48,61,0,86,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,181,48,124,0,253,48,61,0,123,255,124,0,253,48,61,0,182,48,124,0,253,48,61,0,181,48,124,0,254,48,47,0,153,48,61,0,123,255,124,0,254,48,47,0,153,48,61,0,182,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,87,48,60,0,60,0,60,0,87,48,124,0,157,48,61,0,88,48,124,0,157,48,61,0,87,48,124,0,158,48,47,0,153,48,61,0,88,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,183,48,124,0,253,48,61,0,124,255,124,0,253,48,61,0,241,49,124,0,253,48,61,0,184,48,124,0,253,48,61,0,183,48,124,0,254,48,47,0,153,48,61,0,124,255,124,0,254,48,47,0,153,48,61,0,241,49,124,0,254,48,47,0,153,48,61,0,184,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,89,48,60,0,60,0,60,0,89,48,124,0,157,48,61,0,90,48,124,0,157,48,61,0,89,48,124,0,158,48,47,0,153,48,61,0,90,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,185,48,124,0,253,48,61,0,125,255,124,0,253,48,61,0,242,49,124,0,253,48,61,0,186,48,124,0,253,48,61,0,185,48,124,0,254,48,47,0,153,48,61,0,125,255,124,0,254,48,47,0,153,48,61,0,242,49,124,0,254,48,47,0,153,48,61,0,186,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,91,48,60,0,60,0,60,0,91,48,124,0,157,48,61,0,92,48,124,0,157,48,61,0,91,48,124,0,158,48,47,0,153,48,61,0,92,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,187,48,124,0,253,48,61,0,126,255,124,0,253,48,61,0,188,48,124,0,253,48,61,0,187,48,124,0,254,48,47,0,153,48,61,0,126,255,124,0,254,48,47,0,153,48,61,0,188,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,93,48,60,0,60,0,60,0,93,48,124,0,157,48,61,0,94,48,124,0,157,48,61,0,93,48,124,0,158,48,47,0,153,48,61,0,94,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,189,48,124,0,253,48,61,0,127,255,124,0,253,48,61,0,190,48,124,0,253,48,61,0,189,48,124,0,254,48,47,0,153,48,61,0,127,255,124,0,254,48,47,0,153,48,61,0,190,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,95,48,60,0,60,0,60,0,95,48,124,0,157,48,61,0,96,48,124,0,157,48,61,0,95,48,124,0,158,48,47,0,153,48,61,0,96,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,191,48,124,0,253,48,61,0,128,255,124,0,253,48,61,0,192,48,124,0,253,48,61,0,191,48,124,0,254,48,47,0,153,48,61,0,128,255,124,0,254,48,47,0,153,48,61,0,192,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,97,48,60,0,60,0,60,0,97,48,124,0,157,48,61,0,98,48,124,0,157,48,61,0,97,48,124,0,158,48,47,0,153,48,61,0,98,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,193,48,124,0,253,48,61,0,129,255,124,0,253,48,61,0,194,48,124,0,253,48,61,0,193,48,124,0,254,48,47,0,153,48,61,0,129,255,124,0,254,48,47,0,153,48,61,0,194,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,100,48,60,0,60,0,60,0,100,48,124,0,157,48,61,0,99,48,124,0,157,48,61,0,101,48,124,0,157,48,61,0,100,48,124,0,158,48,47,0,153,48,61,0,101,48,124,0,158,48,47,0,153,48,61,0,100,48,124,0,157,48,61,0,99,48,124,0,158,48,47,0,153,48,61,0,100,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,196,48,124,0,253,48,61,0,130,255,124,0,253,48,61,0,195,48,124,0,253,48,61,0,111,255,124,0,253,48,61,0,197,48,124,0,253,48,61,0,196,48,124,0,254,48,47,0,153,48,61,0,130,255,124,0,254,48,47,0,153,48,61,0,197,48,124,0,254,48,47,0,153,48,61,0,196,48,124,0,253,48,61,0,130,255,124,0,253,48,61,0,195,48,124,0,254,48,47,0,153,48,61,0,111,255,124,0,254,48,47,0,153,48,61,0,196,48,124,0,254,48,47,0,153,48,61,0,130,255,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,102,48,60,0,60,0,60,0,102,48,124,0,157,48,61,0,103,48,124,0,157,48,61,0,102,48,124,0,158,48,47,0,153,48,61,0,103,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,198,48,124,0,253,48,61,0,131,255,124,0,253,48,61,0,199,48,124,0,253,48,61,0,198,48,124,0,254,48,47,0,153,48,61,0,131,255,124,0,254,48,47,0,153,48,61,0,199,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,104,48,60,0,60,0,60,0,104,48,124,0,157,48,61,0,105,48,124,0,157,48,61,0,104,48,124,0,158,48,47,0,153,48,61,0,105,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,200,48,124,0,253,48,61,0,132,255,124,0,253,48,61,0,243,49,124,0,253,48,61,0,201,48,124,0,253,48,61,0,200,48,124,0,254,48,47,0,153,48,61,0,132,255,124,0,254,48,47,0,153,48,61,0,243,49,124,0,254,48,47,0,153,48,61,0,201,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,106,48,60,0,60,0,60,0,106,48,124,0,157,48,60,0,60,0,60,0,60,0,202,48,124,0,253,48,61,0,133,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,107,48,60,0,60,0,60,0,107,48,124,0,157,48,60,0,60,0,60,0,60,0,203,48,124,0,253,48,61,0,134,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,108,48,60,0,60,0,60,0,108,48,124,0,157,48,60,0,60,0,60,0,60,0,204,48,124,0,253,48,61,0,135,255,124,0,253,48,61,0,244,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,109,48,60,0,60,0,60,0,109,48,124,0,157,48,60,0,60,0,60,0,60,0,205,48,124,0,253,48,61,0,136,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,110,48,60,0,60,0,60,0,110,48,124,0,157,48,60,0,60,0,60,0,60,0,206,48,124,0,253,48,61,0,137,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,111,48,60,0,60,0,60,0,111,48,124,0,157,48,61,0,112,48,124,0,157,48,61,0,111,48,124,0,158,48,47,0,153,48,61,0,112,48,124,0,158,48,47,0,153,48,61,0,113,48,124,0,157,48,61,0,113,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,207,48,124,0,253,48,61,0,138,255,124,0,253,48,61,0,245,49,124,0,253,48,61,0,208,48,124,0,253,48,61,0,207,48,124,0,254,48,47,0,153,48,61,0,138,255,124,0,254,48,47,0,153,48,61,0,245,49,124,0,254,48,47,0,153,48,61,0,208,48,124,0,254,48,47,0,153,48,61,0,209,48,124,0,253,48,61,0,209,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,114,48,60,0,60,0,60,0,114,48,124,0,157,48,61,0,115,48,124,0,157,48,61,0,114,48,124,0,158,48,47,0,153,48,61,0,115,48,124,0,158,48,47,0,153,48,61,0,116,48,124,0,157,48,61,0,116,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,210,48,124,0,253,48,61,0,139,255,124,0,253,48,61,0,246,49,124,0,253,48,61,0,211,48,124,0,253,48,61,0,210,48,124,0,254,48,47,0,153,48,61,0,139,255,124,0,254,48,47,0,153,48,61,0,246,49,124,0,254,48,47,0,153,48,61,0,211,48,124,0,254,48,47,0,153,48,61,0,212,48,124,0,253,48,61,0,212,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,117,48,60,0,60,0,60,0,117,48,124,0,157,48,61,0,118,48,124,0,157,48,61,0,117,48,124,0,158,48,47,0,153,48,61,0,118,48,124,0,158,48,47,0,153,48,61,0,119,48,124,0,157,48,61,0,119,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,213,48,124,0,253,48,61,0,140,255,124,0,253,48,61,0,247,49,124,0,253,48,61,0,214,48,124,0,253,48,61,0,213,48,124,0,254,48,47,0,153,48,61,0,140,255,124,0,254,48,47,0,153,48,61,0,247,49,124,0,254,48,47,0,153,48,61,0,214,48,124,0,254,48,47,0,153,48,61,0,215,48,124,0,253,48,61,0,215,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,120,48,60,0,60,0,60,0,120,48,124,0,157,48,61,0,121,48,124,0,157,48,61,0,120,48,124,0,158,48,47,0,153,48,61,0,121,48,124,0,158,48,47,0,153,48,61,0,122,48,124,0,157,48,61,0,122,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,216,48,124,0,253,48,61,0,141,255,124,0,253,48,61,0,248,49,124,0,253,48,61,0,217,48,124,0,253,48,61,0,216,48,124,0,254,48,47,0,153,48,61,0,141,255,124,0,254,48,47,0,153,48,61,0,248,49,124,0,254,48,47,0,153,48,61,0,217,48,124,0,254,48,47,0,153,48,61,0,218,48,124,0,253,48,61,0,218,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,123,48,60,0,60,0,60,0,123,48,124,0,157,48,61,0,124,48,124,0,157,48,61,0,123,48,124,0,158,48,47,0,153,48,61,0,124,48,124,0,158,48,47,0,153,48,61,0,125,48,124,0,157,48,61,0,125,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,219,48,124,0,253,48,61,0,142,255,124,0,253,48,61,0,249,49,124,0,253,48,61,0,220,48,124,0,253,48,61,0,219,48,124,0,254,48,47,0,153,48,61,0,142,255,124,0,254,48,47,0,153,48,61,0,249,49,124,0,254,48,47,0,153,48,61,0,220,48,124,0,254,48,47,0,153,48,61,0,221,48,124,0,253,48,61,0,221,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,126,48,60,0,60,0,60,0,126,48,124,0,157,48,60,0,60,0,60,0,60,0,222,48,124,0,253,48,61,0,143,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,127,48,60,0,60,0,60,0,127,48,124,0,157,48,60,0,60,0,60,0,60,0,223,48,124,0,253,48,61,0,144,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,128,48,60,0,60,0,60,0,128,48,124,0,157,48,60,0,60,0,60,0,60,0,224,48,124,0,253,48,61,0,145,255,124,0,253,48,61,0,250,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,129,48,60,0,60,0,60,0,129,48,124,0,157,48,60,0,60,0,60,0,60,0,225,48,124,0,253,48,61,0,146,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,130,48,60,0,60,0,60,0,130,48,124,0,157,48,60,0,60,0,60,0,60,0,226,48,124,0,253,48,61,0,147,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,132,48,60,0,60,0,60,0,132,48,124,0,157,48,61,0,131,48,124,0,157,48,60,0,60,0,60,0,60,0,228,48,124,0,253,48,61,0,148,255,124,0,253,48,61,0,227,48,124,0,253,48,61,0,108,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,134,48,60,0,60,0,60,0,134,48,124,0,157,48,61,0,133,48,124,0,157,48,60,0,60,0,60,0,60,0,230,48,124,0,253,48,61,0,149,255,124,0,253,48,61,0,229,48,124,0,253,48,61,0,109,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,136,48,60,0,60,0,60,0,136,48,124,0,157,48,61,0,135,48,124,0,157,48,60,0,60,0,60,0,60,0,232,48,124,0,253,48,61,0,150,255,124,0,253,48,61,0,231,48,124,0,253,48,61,0,110,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,137,48,60,0,60,0,60,0,137,48,124,0,157,48,60,0,60,0,60,0,60,0,233,48,124,0,253,48,61,0,151,255,124,0,253,48,61,0,251,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,138,48,60,0,60,0,60,0,138,48,124,0,157,48,60,0,60,0,60,0,60,0,234,48,124,0,253,48,61,0,152,255,124,0,253,48,61,0,252,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,139,48,60,0,60,0,60,0,139,48,124,0,157,48,60,0,60,0,60,0,60,0,235,48,124,0,253,48,61,0,153,255,124,0,253,48,61,0,253,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,140,48,60,0,60,0,60,0,140,48,124,0,157,48,60,0,60,0,60,0,60,0,236,48,124,0,253,48,61,0,154,255,124,0,253,48,61,0,254,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,141,48,60,0,60,0,60,0,141,48,124,0,157,48,60,0,60,0,60,0,60,0,237,48,124,0,253,48,61,0,155,255,124,0,253,48,61,0,255,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,143,48,60,0,60,0,60,0,143,48,124,0,157,48,61,0,142,48,124,0,157,48,61,0,143,48,124,0,158,48,47,0,153,48,61,0,142,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,239,48,124,0,253,48,61,0,156,255,124,0,253,48,61,0,238,48,124,0,253,48,61,0,247,48,124,0,253,48,61,0,239,48,124,0,254,48,47,0,153,48,61,0,156,255,124,0,254,48,47,0,153,48,61,0,247,48,124,0,254,48,47,0,153,48,61,0,238,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,144,48,60,0,60,0,60,0,144,48,124,0,157,48,61,0,144,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,240,48,124,0,253,48,61,0,248,48,124,0,253,48,61,0,240,48,124,0,254,48,47,0,153,48,61,0,248,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,145,48,60,0,60,0,60,0,145,48,124,0,157,48,61,0,145,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,241,48,124,0,253,48,61,0,249,48,124,0,253,48,61,0,241,48,124,0,254,48,47,0,153,48,61,0,249,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,146,48,60,0,60,0,60,0,146,48,124,0,157,48,61,0,146,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,242,48,124,0,253,48,61,0,102,255,124,0,253,48,61,0,250,48,124,0,253,48,61,0,242,48,124,0,254,48,47,0,153,48,61,0,102,255,124,0,254,48,47,0,153,48,61,0,250,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,147,48,60,0,60,0,60,0,147,48,124,0,157,48,60,0,60,0,60,0,60,0,243,48,124,0,253,48,61,0,157,255,124,0,253,48,38,0,65,48,60,0,60,0,60,0,60,0,161,48,61,0,103,255,38,0,66,48,60,0,60,0,60,0,60,0,162,48,61,0,113,255,38,0,67,48,60,0,60,0,60,0,60,0,163,48,61,0,104,255,38,0,68,48,60,0,60,0,60,0,60,0,164,48,61,0,114,255,38,0,69,48,60,0,60,0,60,0,60,0,165,48,61,0,105,255,38,0,70,48,60,0,60,0,60,0,60,0,166,48,61,0,115,255,38,0,71,48,60,0,60,0,60,0,60,0,167,48,61,0,106,255,38,0,72,48,60,0,60,0,60,0,60,0,168,48,61,0,116,255,38,0,73,48,60,0,60,0,60,0,60,0,169,48,61,0,107,255,38,0,74,48,60,0,60,0,60,0,60,0,170,48,61,0,117,255,38,0,75,48,60,0,60,0,60,0,60,0,171,48,61,0,118,255,38,0,77,48,60,0,60,0,60,0,60,0,173,48,61,0,119,255,38,0,79,48,60,0,60,0,60,0,60,0,175,48,61,0,120,255,38,0,81,48,60,0,60,0,60,0,60,0,177,48,61,0,121,255,38,0,83,48,60,0,60,0,60,0,60,0,179,48,61,0,122,255,38,0,85,48,60,0,60,0,60,0,60,0,181,48,61,0,123,255,38,0,87,48,60,0,60,0,60,0,60,0,183,48,61,0,124,255,38,0,89,48,60,0,60,0,60,0,60,0,185,48,61,0,125,255,38,0,91,48,60,0,60,0,60,0,60,0,187,48,61,0,126,255,38,0,93,48,60,0,60,0,60,0,60,0,189,48,61,0,127,255,38,0,95,48,60,0,60,0,60,0,60,0,191,48,61,0,128,255,38,0,97,48,60,0,60,0,60,0,60,0,193,48,61,0,129,255,38,0,99,48,60,0,60,0,60,0,60,0,195,48,61,0,111,255,38,0,100,48,60,0,60,0,60,0,60,0,196,48,61,0,130,255,38,0,102,48,60,0,60,0,60,0,60,0,198,48,61,0,131,255,38,0,104,48,60,0,60,0,60,0,60,0,200,48,61,0,132,255,38,0,106,48,60,0,60,0,60,0,60,0,202,48,61,0,133,255,38,0,107,48,60,0,60,0,60,0,60,0,203,48,61,0,134,255,38,0,108,48,60,0,60,0,60,0,60,0,204,48,61,0,135,255,38,0,109,48,60,0,60,0,60,0,60,0,205,48,61,0,136,255,38,0,110,48,60,0,60,0,60,0,60,0,206,48,61,0,137,255,38,0,111,48,60,0,60,0,60,0,60,0,207,48,61,0,138,255,38,0,114,48,60,0,60,0,60,0,60,0,210,48,61,0,139,255,38,0,117,48,60,0,60,0,60,0,60,0,213,48,61,0,140,255,38,0,120,48,60,0,60,0,60,0,60,0,216,48,61,0,141,255,38,0,123,48,60,0,60,0,60,0,60,0,219,48,61,0,142,255,38,0,126,48,60,0,60,0,60,0,60,0,222,48,61,0,143,255,38,0,127,48,60,0,60,0,60,0,60,0,223,48,61,0,144,255,38,0,128,48,60,0,60,0,60,0,60,0,224,48,61,0,145,255,38,0,129,48,60,0,60,0,60,0,60,0,225,48,61,0,146,255,38,0,130,48,60,0,60,0,60,0,60,0,226,48,61,0,147,255,38,0,131,48,60,0,60,0,60,0,60,0,227,48,61,0,108,255,38,0,132,48,60,0,60,0,60,0,60,0,228,48,61,0,148,255,38,0,133,48,60,0,60,0,60,0,60,0,229,48,61,0,109,255,38,0,134,48,60,0,60,0,60,0,60,0,230,48,61,0,149,255,38,0,135,48,60,0,60,0,60,0,60,0,231,48,61,0,110,255,38,0,136,48,60,0,60,0,60,0,60,0,232,48,61,0,150,255,38,0,137,48,60,0,60,0,60,0,60,0,233,48,61,0,151,255,38,0,138,48,60,0,60,0,60,0,60,0,234,48,61,0,152,255,38,0,139,48,60,0,60,0,60,0,60,0,235,48,61,0,153,255,38,0,140,48,60,0,60,0,60,0,60,0,236,48,61,0,154,255,38,0,141,48,60,0,60,0,60,0,60,0,237,48,61,0,155,255,38,0,142,48,60,0,60,0,60,0,60,0,238,48,38,0,143,48,60,0,60,0,60,0,60,0,239,48,61,0,156,255,38,0,144,48,60,0,60,0,60,0,60,0,240,48,38,0,145,48,60,0,60,0,60,0,60,0,241,48,38,0,146,48,60,0,60,0,60,0,60,0,242,48,61,0,102,255,38,0,147,48,60,0,60,0,60,0,60,0,243,48,61,0,157,255,38,0,149,48,60,0,60,0,60,0,60,0,245,48,38,0,150,48,60,0,60,0,60,0,60,0,246,48,38,0,136,48,138,48,60,0,60,0,159,48,38,0,179,48,200,48,60,0,60,0,255,48,38,0,39,0,32,0,39,0,61,0,42,0,39,0,0,48,39,0,227,255,38,0,39,0,33,0,39,0,61,0,1,255,38,0,39,0,34,0,39,0,61,0,2,255,38,0,39,0,35,0,39,0,61,0,3,255,38,0,39,0,36,0,39,0,61,0,4,255,38,0,39,0,37,0,39,0,61,0,5,255,38,0,39,0,38,0,39,0,61,0,6,255,38,0,39,0,39,0,61,0,7,255,38,0,39,0,40,0,39,0,61,0,8,255,38,0,39,0,41,0,39,0,61,0,9,255,38,0,39,0,42,0,39,0,61,0,10,255,38,0,39,0,43,0,39,0,61,0,11,255,38,0,39,0,44,0,39,0,61,0,12,255,38,0,39,0,45,0,39,0,61,0,13,255,38,0,39,0,46,0,39,0,61,0,14,255,38,0,39,0,47,0,39,0,61,0,15,255,38,0,48,0,61,0,16,255,38,0,49,0,61,0,17,255,38,0,50,0,61,0,18,255,38,0,51,0,61,0,19,255,38,0,52,0,61,0,20,255,38,0,53,0,61,0,21,255,38,0,54,0,61,0,22,255,38,0,55,0,61,0,23,255,38,0,56,0,61,0,24,255,38,0,57,0,61,0,25,255,38,0,39,0,58,0,39,0,61,0,26,255,38,0,39,0,59,0,39,0,61,0,27,255,38,0,39,0,60,0,39,0,61,0,28,255,38,0,39,0,61,0,39,0,61,0,29,255,38,0,39,0,62,0,39,0,61,0,30,255,38,0,39,0,63,0,39,0,61,0,31,255,38,0,39,0,64,0,39,0,61,0,32,255,38,0,65,0,61,0,33,255,38,0,66,0,61,0,34,255,38,0,67,0,61,0,35,255,38,0,68,0,61,0,36,255,38,0,69,0,61,0,37,255,38,0,70,0,61,0,38,255,38,0,71,0,61,0,39,255,38,0,72,0,61,0,40,255,38,0,73,0,61,0,41,255,38,0,74,0,61,0,42,255,38,0,75,0,61,0,43,255,38,0,76,0,61,0,44,255,38,0,77,0,61,0,45,255,38,0,78,0,61,0,46,255,38,0,79,0,61,0,47,255,38,0,80,0,61,0,48,255,38,0,81,0,61,0,49,255,38,0,82,0,61,0,50,255,38,0,83,0,61,0,51,255,38,0,84,0,61,0,52,255,38,0,85,0,61,0,53,255,38,0,86,0,61,0,54,255,38,0,87,0,61,0,55,255,38,0,88,0,61,0,56,255,38,0,89,0,61,0,57,255,38,0,90,0,61,0,58,255,38,0,39,0,91,0,39,0,61,0,59,255,38,0,39,0,92,0,39,0,61,0,60,255,38,0,39,0,93,0,39,0,61,0,61,255,38,0,39,0,94,0,39,0,61,0,62,255,38,0,39,0,95,0,39,0,61,0,63,255,38,0,39,0,96,0,39,0,61,0,64,255,38,0,97,0,61,0,65,255,38,0,98,0,61,0,66,255,38,0,99,0,61,0,67,255,38,0,100,0,61,0,68,255,38,0,101,0,61,0,69,255,38,0,102,0,61,0,70,255,38,0,103,0,61,0,71,255,38,0,104,0,61,0,72,255,38,0,105,0,61,0,73,255,38,0,106,0,61,0,74,255,38,0,107,0,61,0,75,255,38,0,108,0,61,0,76,255,38,0,109,0,61,0,77,255,38,0,110,0,61,0,78,255,38,0,111,0,61,0,79,255,38,0,112,0,61,0,80,255,38,0,113,0,61,0,81,255,38,0,114,0,61,0,82,255,38,0,115,0,61,0,83,255,38,0,116,0,61,0,84,255,38,0,117,0,61,0,85,255,38,0,118,0,61,0,86,255,38,0,119,0,61,0,87,255,38,0,120,0,61,0,88,255,38,0,121,0,61,0,89,255,38,0,122,0,61,0,90,255,38,0,39,0,123,0,39,0,61,0,91,255,38,0,39,0,124,0,39,0,61,0,92,255,38,0,39,0,125,0,39,0,61,0,93,255,38,0,39,0,126,0,39,0,61,0,94,255,38,0,162,0,61,0,224,255,38,0,163,0,61,0,225,255,38,0,165,0,61,0,229,255,38,0,166,0,61,0,228,255,38,0,172,0,61,0,226,255,38,0,0,17,61,0,161,255,61,0,49,49,38,0,1,17,61,0,162,255,61,0,50,49,38,0,2,17,61,0,164,255,61,0,52,49,38,0,3,17,61,0,167,255,61,0,55,49,38,0,4,17,61,0,168,255,61,0,56,49,38,0,5,17,61,0,169,255,61,0,57,49,38,0,6,17,61,0,177,255,61,0,65,49,38,0,7,17,61,0,178,255,61,0,66,49,38,0,8,17,61,0,179,255,61,0,67,49,38,0,9,17,61,0,181,255,61,0,69,49,38,0,10,17,61,0,182,255,61,0,70,49,38,0,11,17,61,0,183,255,61,0,71,49,38,0,12,17,61,0,184,255,61,0,72,49,38,0,13,17,61,0,185,255,61,0,73,49,38,0,14,17,61,0,186,255,61,0,74,49,38,0,15,17,61,0,187,255,61,0,75,49,38,0,16,17,61,0,188,255,61,0,76,49,38,0,17,17,61,0,189,255,61,0,77,49,38,0,18,17,61,0,190,255,61,0,78,49,38,0,26,17,61,0,176,255,61,0,64,49,38,0,33,17,61,0,180,255,61,0,68,49,38,0,96,17,61,0,160,255,61,0,100,49,38,0,97,17,61,0,194,255,61,0,79,49,38,0,98,17,61,0,195,255,61,0,80,49,38,0,99,17,61,0,196,255,61,0,81,49,38,0,100,17,61,0,197,255,61,0,82,49,38,0,101,17,61,0,198,255,61,0,83,49,38,0,102,17,61,0,199,255,61,0,84,49,38,0,103,17,61,0,202,255,61,0,85,49,38,0,104,17,61,0,203,255,61,0,86,49,38,0,105,17,61,0,204,255,61,0,87,49,38,0,106,17,61,0,205,255,61,0,88,49,38,0,107,17,61,0,206,255,61,0,89,49,38,0,108,17,61,0,207,255,61,0,90,49,38,0,109,17,61,0,210,255,61,0,91,49,38,0,110,17,61,0,211,255,61,0,92,49,38,0,111,17,61,0,212,255,61,0,93,49,38,0,112,17,61,0,213,255,61,0,94,49,38,0,113,17,61,0,214,255,61,0,95,49,38,0,114,17,61,0,215,255,61,0,96,49,38,0,115,17,61,0,218,255,61,0,97,49,38,0,116,17,61,0,219,255,61,0,98,49,38,0,117,17,61,0,220,255,61,0,99,49,38,0,170,17,61,0,163,255,61,0,51,49,38,0,172,17,61,0,165,255,61,0,53,49,38,0,173,17,61,0,166,255,61,0,54,49,38,0,176,17,61,0,170,255,61,0,58,49,38,0,177,17,61,0,171,255,61,0,59,49,38,0,178,17,61,0,172,255,61,0,60,49,38,0,179,17,61,0,173,255,61,0,61,49,38,0,180,17,61,0,174,255,61,0,62,49,38,0,181,17,61,0,175,255,61,0,63,49,38,0,169,32,61,0,230,255,38,0,144,33,61,0,233,255,38,0,145,33,61,0,234,255,38,0,146,33,61,0,235,255,38,0,147,33,61,0,236,255,38,0,2,37,61,0,232,255,38,0,160,37,61,0,237,255,38,0,203,37,61,0,238,255,38,0,1,48,61,0,100,255,38,0,2,48,61,0,97,255,38,0,12,48,61,0,98,255,38,0,13,48,61,0,99,255,0,0,239,223,10,25,38,0,253,48,60,0,42,0,126,51,125,51,124,51,123,51,255,50,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,106,0,97,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,107,0,97,0,110,0,97,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,42,0,156,78,22,85,3,90,63,150,192,84,27,97,40,99,246,89,34,144,117,132,28,131,80,122,170,96,225,99,37,110,237,101,102,132,166,130,245,155,147,104,39,87,161,101,113,98,155,91,208,89,123,134,244,152,98,125,190,125,142,155,22,98,159,124,183,136,137,91,181,94,9,99,151,102,72,104,199,149,141,151,79,103,229,78,10,79,77,79,157,79,73,80,242,86,55,89,212,89,1,90,9,92,223,96,15,97,112,97,19,102,5,105,186,112,79,117,112,117,251,121,173,125,239,125,195,128,14,132,99,136,2,139,85,144,122,144,59,83,149,78,165,78,223,87,178,128,193,144,239,120,0,78,241,88,162,110,56,144,50,122,40,131,139,130,47,156,65,81,112,83,189,84,225,84,224,86,251,89,21,95,242,152,235,109,228,128,45,133,98,150,112,150,160,150,251,151,11,84,243,83,135,91,207,112,189,127,194,143,232,150,111,83,92,157,186,122,17,78,147,120,252,129,38,110,24,86,4,85,29,107,26,133,59,156,229,89,169,83,102,109,220,116,143,149,66,86,145,78,75,144,242,150,79,131,12,153,225,83,182,85,48,91,113,95,32,102,243,102,4,104,56,108,243,108,41,109,91,116,200,118,78,122,52,152,241,130,91,136,96,138,237,146,178,109,171,117,202,118,197,153,166,96,1,139,138,141,178,149,142,105,173,83,134,81,18,87,48,88,68,89,180,91,246,94,40,96,169,99,244,99,191,108,20,111,142,112,20,113,89,113,213,113,63,115,1,126,118,130,209,130,151,133,96,144,91,146,27,157,105,88,188,101,90,108,37,117,249,81,46,89,101,89,128,95,220,95,188,98,250,101,42,106,39,107,180,107,139,115,193,127,86,137,44,157,14,157,196,158,161,92,150,108,123,131,4,81,75,92,182,97,198,129,118,104,97,114,89,78,250,79,120,83,105,96,41,110,79,122,243,151,11,78,22,83,238,78,85,79,61,79,161,79,115,79,160,82,239,83,9,86,15,89,193,90,182,91,225,91,209,121,135,102,156,103,182,103,76,107,179,108,107,112,194,115,141,121,190,121,60,122,135,123,177,130,219,130,4,131,119,131,239,131,211,131,102,135,178,138,41,86,168,140,230,143,78,144,30,151,138,134,196,79,232,92,17,98,89,114,59,117,229,129,189,130,254,134,192,140,197,150,19,153,213,153,203,78,26,79,227,137,222,86,74,88,202,88,251,94,235,95,42,96,148,96,98,96,208,97,18,98,208,98,57,101,65,155,102,102,176,104,119,109,112,112,76,117,134,118,117,125,165,130,249,135,139,149,142,150,157,140,241,81,190,82,22,89,179,84,179,91,22,93,104,97,130,105,175,109,141,120,203,132,87,136,114,138,167,147,184,154,108,109,168,153,217,134,163,87,255,103,206,134,14,146,131,82,135,86,4,84,211,94,225,98,185,100,60,104,56,104,187,107,114,115,186,120,107,122,154,137,210,137,107,141,3,143,237,144,163,149,148,150,105,151,102,91,179,92,125,105,77,152,78,152,155,99,32,123,43,106,127,106,182,104,13,156,95,111,114,82,157,85,112,96,236,98,59,109,7,110,209,110,91,132,16,137,68,143,20,78,57,156,246,83,27,105,58,106,132,151,42,104,92,81,195,122,178,132,220,145,140,147,91,86,40,157,34,104,5,131,49,132,165,124,8,82,197,130,230,116,126,78,131,79,160,81,210,91,10,82,216,82,231,82,251,93,154,85,42,88,230,89,140,91,152,91,219,91,114,94,121,94,163,96,31,97,99,97,190,97,219,99,98,101,209,103,83,104,250,104,62,107,83,107,87,108,34,111,151,111,69,111,176,116,24,117,227,118,11,119,255,122,161,123,33,124,233,125,54,127,240,127,157,128,102,130,158,131,179,137,204,138,171,140,132,144,81,148,147,149,145,149,162,149,101,150,211,151,40,153,24,130,56,78,43,84,184,92,204,93,169,115,76,118,60,119,169,92,235,127,11,141,193,150,17,152,84,152,88,152,1,79,14,79,113,83,156,85,104,86,250,87,71,89,9,91,196,91,144,92,12,94,126,94,204,95,238,99,58,103,215,101,226,101,31,103,203,104,196,104,95,106,48,94,197,107,23,108,125,108,127,117,72,121,99,91,0,122,0,125,189,95,143,137,24,138,180,140,119,141,204,142,29,143,226,152,14,154,60,155,128,78,125,80,0,81,147,89,156,91,47,98,128,98,236,100,58,107,160,114,145,117,71,121,169,127,251,135,188,138,112,139,172,99,202,131,160,151,9,84,3,84,171,85,84,104,88,106,112,138,39,120,117,103,205,158,116,83,162,91,26,129,80,134,6,144,24,78,69,78,199,78,17,79,202,83,56,84,174,91,19,95,37,96,81,101,61,103,66,108,114,108,227,108,120,112,3,116,118,122,174,122,8,123,26,125,254,124,102,125,231,101,91,114,187,83,69,92,232,93,210,98,224,98,25,99,32,110,90,134,49,138,221,141,248,146,1,111,166,121,90,155,168,78,171,78,172,78,155,79,160,79,209,80,71,81,246,122,113,81,246,81,84,83,33,83,127,83,235,83,172,85,131,88,225,92,55,95,74,95,47,96,80,96,109,96,31,99,89,101,75,106,193,108,194,114,237,114,239,119,248,128,5,129,8,130,78,133,247,144,225,147,255,151,87,153,90,154,240,78,221,81,45,92,129,102,109,105,64,92,242,102,117,105,137,115,80,104,129,124,197,80,228,82,71,87,254,93,38,147,164,101,35,107,61,107,52,116,129,121,189,121,75,123,202,125,185,130,204,131,127,136,95,137,57,139,209,143,209,145,31,84,128,146,93,78,54,80,229,83,58,83,215,114,150,115,233,119,230,130,175,142,198,153,200,153,210,153,119,81,26,97,94,134,176,85,122,122,118,80,211,91,71,144,133,150,50,78,219,106,231,145,81,92,72,92,152,99,159,122,147,108,116,151,97,143,170,122,138,113,136,150,130,124,23,104,112,126,81,104,108,147,242,82,27,84,171,133,19,138,164,127,205,142,225,144,102,83,136,136,65,121,194,79,190,80,17,82,68,81,83,85,45,87,234,115,139,87,81,89,98,95,132,95,117,96,118,97,103,97,169,97,178,99,58,100,108,101,111,102,66,104,19,110,102,117,61,122,251,124,76,125,153,125,75,126,107,127,14,131,74,131,205,134,8,138,99,138,102,139,253,142,26,152,143,157,184,130,206,143,232,155,135,82,31,98,131,100,192,111,153,150,65,104,145,80,32,107,122,108,84,111,116,122,80,125,64,136,35,138,8,103,246,78,57,80,38,80,101,80,124,81,56,82,99,82,167,85,15,87,5,88,204,90,250,94,178,97,248,97,243,98,114,99,28,105,41,106,125,114,172,114,46,115,20,120,111,120,121,125,12,119,169,128,139,137,25,139,226,140,210,142,99,144,117,147,122,150,85,152,19,154,120,158,67,81,159,83,179,83,123,94,38,95,27,110,144,110,132,115,254,115,67,125,55,130,0,138,250,138,80,150,78,78,11,80,228,83,124,84,250,86,209,89,100,91,241,93,171,94,39,95,56,98,69,101,175,103,86,110,208,114,202,124,180,136,161,128,225,128,240,131,78,134,135,138,232,141,55,146,199,150,103,152,19,159,148,78,146,78,13,79,72,83,73,84,62,84,47,90,140,95,161,95,159,96,167,104,142,106,90,116,129,120,158,138,164,138,119,139,144,145,94,78,201,155,164,78,124,79,175,79,25,80,22,80,73,81,108,81,159,82,185,82,254,82,154,83,227,83,17,84,14,84,137,85,81,87,162,87,125,89,84,91,93,91,143,91,229,93,231,93,247,93,120,94,131,94,154,94,183,94,24,95,82,96,76,97,151,98,216,98,167,99,59,101,2,102,67,102,244,102,109,103,33,104,151,104,203,105,95,108,42,109,105,109,47,110,157,110,50,117,135,118,108,120,63,122,224,124,5,125,24,125,94,125,177,125,21,128,3,128,175,128,177,128,84,129,143,129,42,130,82,131,76,136,97,136,27,139,162,140,252,140,202,144,117,145,113,146,63,120,252,146,164,149,77,150,5,152,153,153,216,154,59,157,91,82,171,82,247,83,8,84,213,88,247,98,224,111,106,140,95,143,185,158,75,81,59,82,74,84,253,86,64,122,119,145,96,157,210,158,68,115,9,111,112,129,17,117,253,95,218,96,168,154,219,114,188,143,100,107,3,152,202,78,240,86,100,87,190,88,90,90,104,96,199,97,15,102,6,102,57,104,177,104,247,109,213,117,58,125,110,130,66,155,155,78,80,79,201,83,6,85,111,93,230,93,238,93,251,103,153,108,115,116,2,120,80,138,150,147,223,136,80,87,167,94,43,99,181,80,172,80,141,81,0,103,201,84,94,88,187,89,176,91,105,95,77,98,161,99,61,104,115,107,8,110,125,112,199,145,128,114,21,120,38,120,109,121,142,101,48,125,220,131,193,136,9,143,155,150,100,82,40,87,80,103,106,127,161,140,180,81,66,87,42,150,58,88,138,105,180,128,178,84,14,93,252,87,149,120,250,157,92,79,74,82,139,84,62,100,40,102,20,103,245,103,132,122,86,123,34,125,47,147,92,104,173,155,57,123,25,83,138,81,55,82,223,91,246,98,174,100,230,100,45,103,186,107,169,133,209,150,144,118,214,155,76,99,6,147,171,155,191,118,82,102,9,78,152,80,194,83,113,92,232,96,146,100,99,101,95,104,230,113,202,115,35,117,151,123,130,126,149,134,131,139,219,140,120,145,16,153,172,101,171,102,139,107,213,78,212,78,58,79,127,79,58,82,248,83,242,83,227,85,219,86,235,88,203,89,201,89,255,89,80,91,77,92,2,94,43,94,215,95,29,96,7,99,47,101,92,91,175,101,189,101,232,101,157,103,98,107,123,107,15,108,69,115,73,121,193,121,248,124,25,125,43,125,162,128,2,129,243,129,150,137,94,138,105,138,102,138,140,138,238,138,199,140,220,140,204,150,252,152,111,107,139,78,60,79,141,79,80,81,87,91,250,91,72,97,1,99,66,102,33,107,203,110,187,108,62,114,189,116,212,117,193,120,58,121,12,128,51,128,234,129,148,132,158,143,80,108,127,158,15,95,88,139,43,157,250,122,248,142,141,91,235,150,3,78,241,83,247,87,49,89,201,90,164,91,137,96,127,110,6,111,190,117,234,140,159,91,0,133,224,123,114,80,244,103,157,130,97,92,74,133,30,126,14,130,153,81,4,92,104,99,102,141,156,101,110,113,62,121,23,125,5,128,29,139,202,142,110,144,199,134,170,144,31,80,250,82,58,92,83,103,124,112,53,114,76,145,200,145,43,147,229,130,194,91,49,95,249,96,59,78,214,83,136,91,75,98,49,103,138,107,233,114,224,115,46,122,107,129,163,141,82,145,150,153,18,81,215,83,106,84,255,91,136,99,57,106,172,125,0,151,218,86,206,83,104,84,151,91,49,92,222,93,238,79,1,97,254,98,50,109,192,121,203,121,66,125,77,126,210,127,237,129,31,130,144,132,70,136,114,137,144,139,116,142,47,143,49,144,75,145,108,145,198,150,156,145,192,78,79,79,69,81,65,83,147,95,14,98,212,103,65,108,11,110,99,115,38,126,205,145,131,146,212,83,25,89,191,91,209,109,93,121,46,126,155,124,126,88,159,113,250,81,83,136,240,143,202,79,251,92,37,102,172,119,227,122,28,130,255,153,198,81,170,95,236,101,111,105,137,107,243,109,150,110,100,111,254,118,20,125,225,93,117,144,135,145,6,152,230,81,29,82,64,98,145,102,217,102,26,110,182,94,210,125,114,127,248,102,175,133,247,133,248,138,169,82,217,83,115,89,143,94,144,95,85,96,228,146,100,150,183,80,31,81,221,82,32,83,71,83,236,83,232,84,70,85,49,85,23,86,104,89,190,89,60,90,181,91,6,92,15,92,17,92,26,92,132,94,138,94,224,94,112,95,127,98,132,98,219,98,140,99,119,99,7,102,12,102,45,102,118,102,126,103,162,104,31,106,53,106,188,108,136,109,9,110,88,110,60,113,38,113,103,113,199,117,1,119,93,120,1,121,101,121,240,121,224,122,17,123,167,124,57,125,150,128,214,131,139,132,73,133,93,136,243,136,31,138,60,138,84,138,115,138,97,140,222,140,164,145,102,146,126,147,24,148,156,150,152,151,10,78,8,78,30,78,87,78,151,81,112,82,206,87,52,88,204,88,34,91,56,94,197,96,254,100,97,103,86,103,68,109,182,114,115,117,99,122,184,132,114,139,184,145,32,147,49,86,244,87,254,152,237,98,13,105,150,107,237,113,84,126,119,128,114,130,230,137,223,152,85,135,177,143,59,92,56,79,225,79,181,79,7,85,32,90,221,91,233,91,195,95,78,97,47,99,176,101,75,102,238,104,155,105,120,109,241,109,51,117,185,117,31,119,94,121,230,121,51,125,227,129,175,130,170,133,170,137,58,138,171,142,155,143,50,144,221,145,7,151,186,78,193,78,3,82,117,88,236,88,11,92,26,117,61,92,78,129,10,138,197,143,99,150,109,151,37,123,207,138,8,152,98,145,243,86,168,83,23,144,57,84,130,87,37,94,168,99,52,108,138,112,97,119,139,124,224,127,112,136,66,144,84,145,16,147,24,147,143,150,94,116,196,154,7,93,105,93,112,101,162,103,168,141,219,150,110,99,73,103,25,105,197,131,23,152,192,150,254,136,132,111,122,100,248,91,22,78,44,112,93,117,47,102,196,81,54,82,226,82,211,89,129,95,39,96,16,98,63,101,116,101,31,102,116,102,242,104,22,104,99,107,5,110,114,114,31,117,219,118,190,124,86,128,240,88,253,136,127,137,160,138,147,138,203,138,29,144,146,145,82,151,89,151,137,101,14,122,6,129,187,150,45,94,220,96,26,98,165,101,20,102,144,103,243,119,77,122,77,124,62,126,10,129,172,140,100,141,225,141,95,142,169,120,7,82,217,98,165,99,66,100,152,98,45,138,131,122,192,123,172,138,234,150,118,125,12,130,73,135,217,78,72,81,67,83,96,83,163,91,2,92,22,92,221,93,38,98,71,98,176,100,19,104,52,104,201,108,69,109,23,109,211,103,92,111,78,113,125,113,203,101,127,122,173,123,218,125,74,126,168,127,122,129,27,130,57,130,166,133,110,138,206,140,245,141,120,144,119,144,173,146,145,146,131,149,174,155,77,82,132,85,56,111,54,113,104,81,133,121,85,126,179,129,206,124,76,86,81,88,168,92,170,99,254,102,253,102,90,105,217,114,143,117,142,117,14,121,86,121,223,121,151,124,32,125,68,125,7,134,52,138,59,150,97,144,32,159,231,80,117,82,204,83,226,83,9,80,170,85,238,88,79,89,61,114,139,91,100,92,29,83,227,96,243,96,92,99,131,99,63,99,187,99,205,100,233,101,249,102,227,93,205,105,253,105,21,111,229,113,137,78,233,117,248,118,147,122,223,124,207,125,156,125,97,128,73,131,88,131,108,132,188,132,251,133,197,136,112,141,1,144,109,144,151,147,28,151,18,154,207,80,151,88,142,97,211,129,53,133,8,141,32,144,195,79,116,80,71,82,115,83,111,96,73,99,95,103,44,110,179,141,31,144,215,79,94,92,202,140,207,101,154,125,82,83,150,136,118,81,195,99,88,91,107,91,10,92,13,100,81,103,92,144,214,78,26,89,42,89,112,108,81,138,62,85,21,88,165,89,240,96,83,98,193,103,53,130,85,105,64,150,196,153,40,154,83,79,6,88,254,91,16,128,177,92,47,94,133,95,32,96,75,97,52,98,255,102,240,108,222,110,206,128,127,129,212,130,139,136,184,140,0,144,46,144,138,150,219,158,219,155,227,78,240,83,39,89,44,123,141,145,76,152,249,157,221,110,39,112,83,83,68,85,133,91,88,98,158,98,211,98,162,108,239,111,34,116,23,138,56,148,193,111,254,138,56,131,231,81,248,134,234,83,233,83,70,79,84,144,176,143,106,89,49,129,253,93,234,122,191,143,218,104,55,140,248,114,72,156,61,106,176,138,57,78,88,83,6,86,102,87,197,98,162,99,230,101,78,107,225,109,91,110,173,112,237,119,239,122,170,123,187,125,61,128,198,128,203,134,149,138,91,147,227,86,199,88,62,95,173,101,150,102,128,106,181,107,55,117,199,138,36,80,229,119,48,87,27,95,101,96,122,102,96,108,244,117,26,122,110,127,244,129,24,135,69,144,179,153,201,123,92,117,249,122,81,123,196,132,16,144,233,121,146,122,54,131,225,90,64,119,45,78,242,78,153,91,224,95,189,98,60,102,241,103,232,108,107,134,119,136,59,138,78,145,243,146,208,153,23,106,38,112,42,115,231,130,87,132,175,140,1,78,70,81,203,81,139,85,245,91,22,94,51,94,129,94,20,95,53,95,107,95,180,95,242,97,17,99,162,102,29,103,110,111,82,114,58,117,58,119,116,128,57,129,120,129,118,135,191,138,220,138,133,141,243,141,154,146,119,149,2,152,229,156,197,82,87,99,244,118,21,103,136,108,205,115,195,140,174,147,115,150,37,109,156,88,14,105,204,105,253,143,154,147,219,117,26,144,90,88,2,104,180,99,251,105,67,79,44,111,216,103,187,143,38,133,180,125,84,147,63,105,112,111,106,87,247,88,44,91,44,125,42,114,10,84,227,145,180,157,173,78,78,79,92,80,117,80,67,82,158,140,72,84,36,88,154,91,29,94,149,94,173,94,247,94,31,95,140,96,181,98,58,99,208,99,175,104,64,108,135,120,142,121,11,122,224,125,71,130,2,138,230,138,68,142,19,144,184,144,45,145,216,145,14,159,229,108,88,100,226,100,117,101,244,110,132,118,27,123,105,144,209,147,186,110,242,84,185,95,164,100,77,143,237,143,68,146,120,81,107,88,41,89,85,92,151,94,251,109,143,126,28,117,188,140,226,142,91,152,185,112,29,79,191,107,177,111,48,117,251,150,78,81,16,84,53,88,87,88,172,89,96,92,146,95,151,101,92,103,33,110,123,118,223,131,237,140,20,144,253,144,77,147,37,120,58,120,170,82,166,94,31,87,116,89,18,96,18,80,90,81,172,81,205,81,0,82,16,85,84,88,88,88,87,89,149,91,246,92,139,93,188,96,149,98,45,100,113,103,67,104,188,104,223,104,215,118,216,109,111,110,155,109,111,112,200,113,83,95,216,117,119,121,73,123,84,123,82,123,214,124,113,125,48,82,99,132,105,133,228,133,14,138,4,139,70,140,15,142,3,144,15,144,25,148,118,150,45,152,48,154,216,149,205,80,213,82,12,84,2,88,14,92,167,97,158,100,30,109,179,119,229,122,244,128,4,132,83,144,133,146,224,92,7,157,63,83,151,95,179,95,156,109,121,114,99,119,191,121,228,123,210,107,236,114,173,138,3,104,97,106,248,81,129,122,52,105,74,92,246,156,235,130,197,91,73,145,30,112,120,86,111,92,199,96,102,101,140,108,90,140,65,144,19,152,81,84,199,102,13,146,72,89,163,144,133,81,77,78,234,81,153,133,14,139,88,112,122,99,75,147,98,105,180,153,4,126,119,117,87,83,96,105,223,142,227,150,93,108,140,78,60,92,16,95,233,143,2,83,209,140,137,128,121,134,255,94,229,101,115,78,101,81,130,89,63,92,238,151,251,78,138,89,205,95,141,138,225,111,176,121,98,121,231,91,113,132,43,115,177,113,116,94,245,95,123,99,154,100,195,113,152,124,67,78,252,94,75,78,220,87,162,86,169,96,195,111,13,125,253,128,51,129,191,129,178,143,151,137,164,134,244,93,138,98,173,100,135,137,119,103,226,108,62,109,54,116,52,120,70,90,117,127,173,130,172,153,243,79,195,94,221,98,146,99,87,101,111,103,195,118,76,114,204,128,186,128,41,143,77,145,13,80,249,87,146,90,133,104,115,105,100,113,253,114,183,140,242,88,224,140,106,150,25,144,127,135,228,121,231,119,41,132,47,79,101,82,90,83,205,98,207,103,202,108,125,118,148,123,149,124,54,130,132,133,235,143,221,102,32,111,6,114,27,126,171,131,193,153,166,158,253,81,177,123,114,120,184,123,135,128,72,123,232,106,97,94,140,128,81,117,96,117,107,81,98,146,140,110,122,118,151,145,234,154,16,79,112,127,156,98,79,123,165,149,233,156,122,86,89,88,228,134,188,150,52,79,36,82,74,83,205,83,219,83,6,94,44,100,145,101,127,103,62,108,78,108,72,114,175,114,237,115,84,117,65,126,44,130,233,133,169,140,196,123,198,145,105,113,18,152,239,152,61,99,105,102,106,117,228,118,208,120,67,133,238,134,42,83,81,83,38,84,131,89,135,94,124,95,178,96,73,98,121,98,171,98,144,101,212,107,204,108,178,117,174,118,145,120,216,121,203,125,119,127,165,128,171,136,185,138,187,140,127,144,94,151,219,152,11,106,56,124,153,80,62,92,174,95,135,103,216,107,53,116,9,119,142,127,59,159,202,103,23,122,57,83,139,117,237,154,102,95,157,129,241,131,152,128,60,95,197,95,98,117,70,123,60,144,103,104,235,89,155,90,16,125,126,118,44,139,245,79,106,95,25,106,55,108,2,111,226,116,104,121,104,136,85,138,121,140,223,94,207,99,197,117,210,121,215,130,40,147,242,146,156,132,237,134,45,156,193,84,108,95,140,101,92,109,21,112,167,140,211,140,59,152,79,101,246,116,13,78,216,78,224,87,43,89,102,90,204,91,168,81,3,94,156,94,22,96,118,98,119,101,167,101,110,102,110,109,54,114,38,123,80,129,154,129,153,130,92,139,160,140,230,140,116,141,28,150,68,150,174,79,171,100,102,107,30,130,97,132,106,133,232,144,1,92,83,105,168,152,122,132,87,133,15,79,111,82,169,95,69,94,13,103,143,121,121,129,7,137,134,137,245,109,23,95,85,98,184,108,207,78,105,114,146,155,6,82,59,84,116,86,179,88,164,97,110,98,26,113,110,89,137,124,222,124,27,125,240,150,135,101,94,128,25,78,117,79,117,81,64,88,99,94,115,94,10,95,196,103,38,78,61,133,137,149,91,150,115,124,1,152,251,80,193,88,86,118,167,120,37,82,165,119,17,133,134,123,79,80,9,89,71,114,199,123,232,125,186,143,212,143,77,144,191,79,201,82,41,90,1,95,173,151,221,79,23,130,234,146,3,87,85,99,105,107,43,117,220,136,20,143,66,122,223,82,147,88,85,97,10,98,174,102,205,107,63,124,233,131,35,80,248,79,5,83,70,84,49,88,73,89,157,91,240,92,239,92,41,93,150,94,177,98,103,99,62,101,185,101,11,103,213,108,225,108,249,112,50,120,43,126,222,128,179,130,12,132,236,132,2,135,18,137,42,138,74,140,166,144,210,146,253,152,243,156,108,157,79,78,161,78,141,80,86,82,74,87,168,89,61,94,216,95,217,95,63,98,180,102,27,103,208,103,210,104,146,81,33,125,170,128,168,129,0,139,140,140,191,140,126,146,50,150,32,84,44,152,23,83,213,80,92,83,168,88,178,100,52,103,103,114,102,119,70,122,230,145,195,82,161,108,134,107,0,88,76,94,84,89,44,103,251,127,225,81,198,118,105,100,232,120,84,155,187,158,203,87,185,89,39,102,154,103,206,107,233,84,217,105,85,94,156,129,149,103,170,155,254,103,82,156,93,104,166,78,227,79,200,83,185,98,43,103,171,108,196,143,173,79,109,126,191,158,7,78,98,97,128,110,43,111,19,133,115,84,42,103,69,155,243,93,149,123,172,92,198,91,28,135,74,110,209,132,20,122,8,129,153,89,141,124,17,108,32,119,217,82,34,89,33,113,95,114,219,119,39,151,97,157,11,105,127,90,24,90,165,81,13,84,125,84,14,102,223,118,247,143,152,146,244,156,234,89,93,114,197,110,77,81,201,104,191,125,236,125,98,151,186,158,120,100,33,106,2,131,132,89,95,91,219,107,27,115,242,118,178,125,23,128,153,132,50,81,40,103,217,158,238,118,98,103,255,82,5,153,36,92,59,98,126,124,176,140,79,85,182,96,11,125,128,149,1,83,95,78,182,81,28,89,58,114,54,128,206,145,37,95,226,119,132,83,121,95,4,125,172,133,51,138,141,142,86,151,243,103,174,133,83,148,9,97,8,97,185,108,82,118,237,138,56,143,47,85,81,79,42,81,199,82,203,83,165,91,125,94,160,96,130,97,214,99,9,103,218,103,103,110,140,109,54,115,55,115,49,117,80,121,213,136,152,138,74,144,145,144,245,144,196,150,141,135,21,89,136,78,89,79,14,78,137,138,63,143,16,152,173,80,124,94,150,89,185,91,184,94,218,99,250,99,193,100,220,102,74,105,216,105,11,109,182,110,148,113,40,117,175,122,138,127,0,128,73,132,201,132,129,137,33,139,10,142,101,144,125,150,10,153,126,97,145,98,50,107,131,108,116,109,204,127,252,127,192,109,133,127,186,135,248,136,101,103,177,131,60,152,247,150,27,109,97,125,61,132,106,145,113,78,117,83,80,93,4,107,235,111,205,133,45,134,167,137,41,82,15,84,101,92,78,103,168,104,6,116,131,116,226,117,207,136,225,136,204,145,226,150,120,150,139,95,135,115,203,122,78,132,160,99,101,117,137,82,65,109,156,110,9,116,89,117,107,120,146,124,134,150,220,122,141,159,182,79,110,97,197,101,92,134,134,78,174,78,218,80,33,78,204,81,238,91,153,101,129,104,188,109,31,115,66,118,173,119,28,122,231,124,111,130,210,138,124,144,207,145,117,150,24,152,155,82,209,125,43,80,152,83,151,103,203,109,208,113,51,116,232,129,42,143,163,150,87,156,159,158,96,116,65,88,153,109,47,125,94,152,228,78,54,79,139,79,183,81,177,82,186,93,28,96,178,115,60,121,211,130,52,146,183,150,246,150,10,151,151,158,98,159,166,102,116,107,23,82,163,82,200,112,194,136,201,94,75,96,144,97,35,111,73,113,62,124,244,125,111,128,238,132,35,144,44,147,66,84,111,155,211,106,137,112,194,140,239,141,50,151,180,82,65,90,202,94,4,95,23,103,124,105,148,105,106,109,15,111,98,114,252,114,237,123,1,128,126,128,75,135,206,144,109,81,147,158,132,121,139,128,50,147,214,138,45,80,140,84,113,138,106,107,196,140,7,129,209,96,160,103,242,157,153,78,152,78,16,156,107,138,193,133,104,133,0,105,126,110,151,120,85,129,12,95,16,78,21,78,42,78,49,78,54,78,60,78,63,78,66,78,86,78,88,78,130,78,133,78,107,140,138,78,18,130,13,95,142,78,158,78,159,78,160,78,162,78,176,78,179,78,182,78,206,78,205,78,196,78,198,78,194,78,215,78,222,78,237,78,223,78,247,78,9,79,90,79,48,79,91,79,93,79,87,79,71,79,118,79,136,79,143,79,152,79,123,79,105,79,112,79,145,79,111,79,134,79,150,79,24,81,212,79,223,79,206,79,216,79,219,79,209,79,218,79,208,79,228,79,229,79,26,80,40,80,20,80,42,80,37,80,5,80,28,79,246,79,33,80,41,80,44,80,254,79,239,79,17,80,6,80,67,80,71,80,3,103,85,80,80,80,72,80,90,80,86,80,108,80,120,80,128,80,154,80,133,80,180,80,178,80,201,80,202,80,179,80,194,80,214,80,222,80,229,80,237,80,227,80,238,80,249,80,245,80,9,81,1,81,2,81,22,81,21,81,20,81,26,81,33,81,58,81,55,81,60,81,59,81,63,81,64,81,82,81,76,81,84,81,98,81,248,122,105,81,106,81,110,81,128,81,130,81,216,86,140,81,137,81,143,81,145,81,147,81,149,81,150,81,164,81,166,81,162,81,169,81,170,81,171,81,179,81,177,81,178,81,176,81,181,81,189,81,197,81,201,81,219,81,224,81,85,134,233,81,237,81,240,81,245,81,254,81,4,82,11,82,20,82,14,82,39,82,42,82,46,82,51,82,57,82,79,82,68,82,75,82,76,82,94,82,84,82,106,82,116,82,105,82,115,82,127,82,125,82,141,82,148,82,146,82,113,82,136,82,145,82,168,143,167,143,172,82,173,82,188,82,181,82,193,82,205,82,215,82,222,82,227,82,230,82,237,152,224,82,243,82,245,82,248,82,249,82,6,83,8,83,56,117,13,83,16,83,15,83,21,83,26,83,35,83,47,83,49,83,51,83,56,83,64,83,70,83,69,83,23,78,73,83,77,83,214,81,94,83,105,83,110,83,24,89,123,83,119,83,130,83,150,83,160,83,166,83,165,83,174,83,176,83,182,83,195,83,18,124,217,150,223,83,252,102,238,113,238,83,232,83,237,83,250,83,1,84,61,84,64,84,44,84,45,84,60,84,46,84,54,84,41,84,29,84,78,84,143,84,117,84,142,84,95,84,113,84,119,84,112,84,146,84,123,84,128,84,118,84,132,84,144,84,134,84,199,84,162,84,184,84,165,84,172,84,196,84,200,84,168,84,171,84,194,84,164,84,190,84,188,84,216,84,229,84,230,84,15,85,20,85,253,84,238,84,237,84,250,84,226,84,57,85,64,85,99,85,76,85,46,85,92,85,69,85,86,85,87,85,56,85,51,85,93,85,153,85,128,85,175,84,138,85,159,85,123,85,126,85,152,85,158,85,174,85,124,85,131,85,169,85,135,85,168,85,218,85,197,85,223,85,196,85,220,85,228,85,212,85,20,86,247,85,22,86,254,85,253,85,27,86,249,85,78,86,80,86,223,113,52,86,54,86,50,86,56,86,107,86,100,86,47,86,108,86,106,86,134,86,128,86,138,86,160,86,148,86,143,86,165,86,174,86,182,86,180,86,194,86,188,86,193,86,195,86,192,86,200,86,206,86,209,86,211,86,215,86,238,86,249,86,0,87,255,86,4,87,9,87,8,87,11,87,13,87,19,87,24,87,22,87,199,85,28,87,38,87,55,87,56,87,78,87,59,87,64,87,79,87,105,87,192,87,136,87,97,87,127,87,137,87,147,87,160,87,179,87,164,87,170,87,176,87,195,87,198,87,212,87,210,87,211,87,10,88,214,87,227,87,11,88,25,88,29,88,114,88,33,88,98,88,75,88,112,88,192,107,82,88,61,88,121,88,133,88,185,88,159,88,171,88,186,88,222,88,187,88,184,88,174,88,197,88,211,88,209,88,215,88,217,88,216,88,229,88,220,88,228,88,223,88,239,88,250,88,249,88,251,88,252,88,253,88,2,89,10,89,16,89,27,89,166,104,37,89,44,89,45,89,50,89,56,89,62,89,210,122,85,89,80,89,78,89,90,89,88,89,98,89,96,89,103,89,108,89,105,89,120,89,129,89,157,89,94,79,171,79,163,89,178,89,198,89,232,89,220,89,141,89,217,89,218,89,37,90,31,90,17,90,28,90,9,90,26,90,64,90,108,90,73,90,53,90,54,90,98,90,106,90,154,90,188,90,190,90,203,90,194,90,189,90,227,90,215,90,230,90,233,90,214,90,250,90,251,90,12,91,11,91,22,91,50,91,208,90,42,91,54,91,62,91,67,91,69,91,64,91,81,91,85,91,90,91,91,91,101,91,105,91,112,91,115,91,117,91,120,91,136,101,122,91,128,91,131,91,166,91,184,91,195,91,199,91,201,91,212,91,208,91,228,91,230,91,226,91,222,91,229,91,235,91,240,91,246,91,243,91,5,92,7,92,8,92,13,92,19,92,32,92,34,92,40,92,56,92,57,92,65,92,70,92,78,92,83,92,80,92,79,92,113,91,108,92,110,92,98,78,118,92,121,92,140,92,145,92,148,92,155,89,171,92,187,92,182,92,188,92,183,92,197,92,190,92,199,92,217,92,233,92,253,92,250,92,237,92,140,93,234,92,11,93,21,93,23,93,92,93,31,93,27,93,17,93,20,93,34,93,26,93,25,93,24,93,76,93,82,93,78,93,75,93,108,93,115,93,118,93,135,93,132,93,130,93,162,93,157,93,172,93,174,93,189,93,144,93,183,93,188,93,201,93,205,93,211,93,210,93,214,93,219,93,235,93,242,93,245,93,11,94,26,94,25,94,17,94,27,94,54,94,55,94,68,94,67,94,64,94,78,94,87,94,84,94,95,94,98,94,100,94,71,94,117,94,118,94,122,94,188,158,127,94,160,94,193,94,194,94,200,94,208,94,207,94,214,94,227,94,221,94,218,94,219,94,226,94,225,94,232,94,233,94,236,94,241,94,243,94,240,94,244,94,248,94,254,94,3,95,9,95,93,95,92,95,11,95,17,95,22,95,41,95,45,95,56,95,65,95,72,95,76,95,78,95,47,95,81,95,86,95,87,95,89,95,97,95,109,95,115,95,119,95,131,95,130,95,127,95,138,95,136,95,145,95,135,95,158,95,153,95,152,95,160,95,168,95,173,95,188,95,214,95,251,95,228,95,248,95,241,95,221,95,179,96,255,95,33,96,96,96,25,96,16,96,41,96,14,96,49,96,27,96,21,96,43,96,38,96,15,96,58,96,90,96,65,96,106,96,119,96,95,96,74,96,70,96,77,96,99,96,67,96,100,96,66,96,108,96,107,96,89,96,129,96,141,96,231,96,131,96,154,96,132,96,155,96,150,96,151,96,146,96,167,96,139,96,225,96,184,96,224,96,211,96,180,96,240,95,189,96,198,96,181,96,216,96,77,97,21,97,6,97,246,96,247,96,0,97,244,96,250,96,3,97,33,97,251,96,241,96,13,97,14,97,71,97,62,97,40,97,39,97,74,97,63,97,60,97,44,97,52,97,61,97,66,97,68,97,115,97,119,97,88,97,89,97,90,97,107,97,116,97,111,97,101,97,113,97,95,97,93,97,83,97,117,97,153,97,150,97,135,97,172,97,148,97,154,97,138,97,145,97,171,97,174,97,204,97,202,97,201,97,247,97,200,97,195,97,198,97,186,97,203,97,121,127,205,97,230,97,227,97,246,97,250,97,244,97,255,97,253,97,252,97,254,97,0,98,8,98,9,98,13,98,12,98,20,98,27,98,30,98,33,98,42,98,46,98,48,98,50,98,51,98,65,98,78,98,94,98,99,98,91,98,96,98,104,98,124,98,130,98,137,98,126,98,146,98,147,98,150,98,212,98,131,98,148,98,215,98,209,98,187,98,207,98,255,98,198,98,212,100,200,98,220,98,204,98,202,98,194,98,199,98,155,98,201,98,12,99,238,98,241,98,39,99,2,99,8,99,239,98,245,98,80,99,62,99,77,99,28,100,79,99,150,99,142,99,128,99,171,99,118,99,163,99,143,99,137,99,159,99,181,99,107,99,105,99,190,99,233,99,192,99,198,99,227,99,201,99,210,99,246,99,196,99,22,100,52,100,6,100,19,100,38,100,54,100,29,101,23,100,40,100,15,100,103,100,111,100,118,100,78,100,42,101,149,100,147,100,165,100,169,100,136,100,188,100,218,100,210,100,197,100,199,100,187,100,216,100,194,100,241,100,231,100,9,130,224,100,225,100,172,98,227,100,239,100,44,101,246,100,244,100,242,100,250,100,0,101,253,100,24,101,28,101,5,101,36,101,35,101,43,101,52,101,53,101,55,101,54,101,56,101,75,117,72,101,86,101,85,101,77,101,88,101,94,101,93,101,114,101,120,101,130,101,131,101,138,139,155,101,159,101,171,101,183,101,195,101,198,101,193,101,196,101,204,101,210,101,219,101,217,101,224,101,225,101,241,101,114,103,10,102,3,102,251,101,115,103,53,102,54,102,52,102,28,102,79,102,68,102,73,102,65,102,94,102,93,102,100,102,103,102,104,102,95,102,98,102,112,102,131,102,136,102,142,102,137,102,132,102,152,102,157,102,193,102,185,102,201,102,190,102,188,102,196,102,184,102,214,102,218,102,224,102,63,102,230,102,233,102,240,102,245,102,247,102,15,103,22,103,30,103,38,103,39,103,56,151,46,103,63,103,54,103,65,103,56,103,55,103,70,103,94,103,96,103,89,103,99,103,100,103,137,103,112,103,169,103,124,103,106,103,140,103,139,103,166,103,161,103,133,103,183,103,239,103,180,103,236,103,179,103,233,103,184,103,228,103,222,103,221,103,226,103,238,103,185,103,206,103,198,103,231,103,156,106,30,104,70,104,41,104,64,104,77,104,50,104,78,104,179,104,43,104,89,104,99,104,119,104,127,104,159,104,143,104,173,104,148,104,157,104,155,104,131,104,174,106,185,104,116,104,181,104,160,104,186,104,15,105,141,104,126,104,1,105,202,104,8,105,216,104,34,105,38,105,225,104,12,105,205,104,212,104,231,104,213,104,54,105,18,105,4,105,215,104,227,104,37,105,249,104,224,104,239,104,40,105,42,105,26,105,35,105,33,105,198,104,121,105,119,105,92,105,120,105,107,105,84,105,126,105,110,105,57,105,116,105,61,105,89,105,48,105,97,105,94,105,93,105,129,105,106,105,178,105,174,105,208,105,191,105,193,105,211,105,190,105,206,105,232,91,202,105,221,105,187,105,195,105,167,105,46,106,145,105,160,105,156,105,149,105,180,105,222,105,232,105,2,106,27,106,255,105,10,107,249,105,242,105,231,105,5,106,177,105,30,106,237,105,20,106,235,105,10,106,18,106,193,106,35,106,19,106,68,106,12,106,114,106,54,106,120,106,71,106,98,106,89,106,102,106,72,106,56,106,34,106,144,106,141,106,160,106,132,106,162,106,163,106,151,106,23,134,187,106,195,106,194,106,184,106,179,106,172,106,222,106,209,106,223,106,170,106,218,106,234,106,251,106,5,107,22,134,250,106,18,107,22,107,49,155,31,107,56,107,55,107,220,118,57,107,238,152,71,107,67,107,73,107,80,107,89,107,84,107,91,107,95,107,97,107,120,107,121,107,127,107,128,107,132,107,131,107,141,107,152,107,149,107,158,107,164,107,170,107,171,107,175,107,178,107,177,107,179,107,183,107,188,107,198,107,203,107,211,107,223,107,236,107,235,107,243,107,239,107,190,158,8,108,19,108,20,108,27,108,36,108,35,108,94,108,85,108,98,108,106,108,130,108,141,108,154,108,129,108,155,108,126,108,104,108,115,108,146,108,144,108,196,108,241,108,211,108,189,108,215,108,197,108,221,108,174,108,177,108,190,108,186,108,219,108,239,108,217,108,234,108,31,109,77,136,54,109,43,109,61,109,56,109,25,109,53,109,51,109,18,109,12,109,99,109,147,109,100,109,90,109,121,109,89,109,142,109,149,109,228,111,133,109,249,109,21,110,10,110,181,109,199,109,230,109,184,109,198,109,236,109,222,109,204,109,232,109,210,109,197,109,250,109,217,109,228,109,213,109,234,109,238,109,45,110,110,110,46,110,25,110,114,110,95,110,62,110,35,110,107,110,43,110,118,110,77,110,31,110,67,110,58,110,78,110,36,110,255,110,29,110,56,110,130,110,170,110,152,110,201,110,183,110,211,110,189,110,175,110,196,110,178,110,212,110,213,110,143,110,165,110,194,110,159,110,65,111,17,111,76,112,236,110,248,110,254,110,63,111,242,110,49,111,239,110,50,111,204,110,62,111,19,111,247,110,134,111,122,111,120,111,129,111,128,111,111,111,91,111,243,111,109,111,130,111,124,111,88,111,142,111,145,111,194,111,102,111,179,111,163,111,161,111,164,111,185,111,198,111,170,111,223,111,213,111,236,111,212,111,216,111,241,111,238,111,219,111,9,112,11,112,250,111,17,112,1,112,15,112,254,111,27,112,26,112,116,111,29,112,24,112,31,112,48,112,62,112,50,112,81,112,99,112,153,112,146,112,175,112,241,112,172,112,184,112,179,112,174,112,223,112,203,112,221,112,217,112,9,113,253,112,28,113,25,113,101,113,85,113,136,113,102,113,98,113,76,113,86,113,108,113,143,113,251,113,132,113,149,113,168,113,172,113,215,113,185,113,190,113,210,113,201,113,212,113,206,113,224,113,236,113,231,113,245,113,252,113,249,113,255,113,13,114,16,114,27,114,40,114,45,114,44,114,48,114,50,114,59,114,60,114,63,114,64,114,70,114,75,114,88,114,116,114,126,114,130,114,129,114,135,114,146,114,150,114,162,114,167,114,185,114,178,114,195,114,198,114,196,114,206,114,210,114,226,114,224,114,225,114,249,114,247,114,15,80,23,115,10,115,28,115,22,115,29,115,52,115,47,115,41,115,37,115,62,115,78,115,79,115,216,158,87,115,106,115,104,115,112,115,120,115,117,115,123,115,122,115,200,115,179,115,206,115,187,115,192,115,229,115,238,115,222,115,162,116,5,116,111,116,37,116,248,115,50,116,58,116,85,116,63,116,95,116,89,116,65,116,92,116,105,116,112,116,99,116,106,116,118,116,126,116,139,116,158,116,167,116,202,116,207,116,212,116,241,115,224,116,227,116,231,116,233,116,238,116,242,116,240,116,241,116,248,116,247,116,4,117,3,117,5,117,12,117,14,117,13,117,21,117,19,117,30,117,38,117,44,117,60,117,68,117,77,117,74,117,73,117,91,117,70,117,90,117,105,117,100,117,103,117,107,117,109,117,120,117,118,117,134,117,135,117,116,117,138,117,137,117,130,117,148,117,154,117,157,117,165,117,163,117,194,117,179,117,195,117,181,117,189,117,184,117,188,117,177,117,205,117,202,117,210,117,217,117,227,117,222,117,254,117,255,117,252,117,1,118,240,117,250,117,242,117,243,117,11,118,13,118,9,118,31,118,39,118,32,118,33,118,34,118,36,118,52,118,48,118,59,118,71,118,72,118,70,118,92,118,88,118,97,118,98,118,104,118,105,118,106,118,103,118,108,118,112,118,114,118,118,118,120,118,124,118,128,118,131,118,136,118,139,118,142,118,150,118,147,118,153,118,154,118,176,118,180,118,184,118,185,118,186,118,194,118,205,118,214,118,210,118,222,118,225,118,229,118,231,118,234,118,47,134,251,118,8,119,7,119,4,119,41,119,36,119,30,119,37,119,38,119,27,119,55,119,56,119,71,119,90,119,104,119,107,119,91,119,101,119,127,119,126,119,121,119,142,119,139,119,145,119,160,119,158,119,176,119,182,119,185,119,191,119,188,119,189,119,187,119,199,119,205,119,215,119,218,119,220,119,227,119,238,119,252,119,12,120,18,120,38,121,32,120,42,121,69,120,142,120,116,120,134,120,124,120,154,120,140,120,163,120,181,120,170,120,175,120,209,120,198,120,203,120,212,120,190,120,188,120,197,120,202,120,236,120,231,120,218,120,253,120,244,120,7,121,18,121,17,121,25,121,44,121,43,121,64,121,96,121,87,121,95,121,90,121,85,121,83,121,122,121,127,121,138,121,157,121,167,121,75,159,170,121,174,121,179,121,185,121,186,121,201,121,213,121,231,121,236,121,225,121,227,121,8,122,13,122,24,122,25,122,32,122,31,122,128,121,49,122,59,122,62,122,55,122,67,122,87,122,73,122,97,122,98,122,105,122,157,159,112,122,121,122,125,122,136,122,151,122,149,122,152,122,150,122,169,122,200,122,176,122,182,122,197,122,196,122,191,122,131,144,199,122,202,122,205,122,207,122,213,122,211,122,217,122,218,122,221,122,225,122,226,122,230,122,237,122,240,122,2,123,15,123,10,123,6,123,51,123,24,123,25,123,30,123,53,123,40,123,54,123,80,123,122,123,4,123,77,123,11,123,76,123,69,123,117,123,101,123,116,123,103,123,112,123,113,123,108,123,110,123,157,123,152,123,159,123,141,123,156,123,154,123,139,123,146,123,143,123,93,123,153,123,203,123,193,123,204,123,207,123,180,123,198,123,221,123,233,123,17,124,20,124,230,123,229,123,96,124,0,124,7,124,19,124,243,123,247,123,23,124,13,124,246,123,35,124,39,124,42,124,31,124,55,124,43,124,61,124,76,124,67,124,84,124,79,124,64,124,80,124,88,124,95,124,100,124,86,124,101,124,108,124,117,124,131,124,144,124,164,124,173,124,162,124,171,124,161,124,168,124,179,124,178,124,177,124,174,124,185,124,189,124,192,124,197,124,194,124,216,124,210,124,220,124,226,124,59,155,239,124,242,124,244,124,246,124,250,124,6,125,2,125,28,125,21,125,10,125,69,125,75,125,46,125,50,125,63,125,53,125,70,125,115,125,86,125,78,125,114,125,104,125,110,125,79,125,99,125,147,125,137,125,91,125,143,125,125,125,155,125,186,125,174,125,163,125,181,125,199,125,189,125,171,125,61,126,162,125,175,125,220,125,184,125,159,125,176,125,216,125,221,125,228,125,222,125,251,125,242,125,225,125,5,126,10,126,35,126,33,126,18,126,49,126,31,126,9,126,11,126,34,126,70,126,102,126,59,126,53,126,57,126,67,126,55,126,50,126,58,126,103,126,93,126,86,126,94,126,89,126,90,126,121,126,106,126,105,126,124,126,123,126,131,126,213,125,125,126,174,143,127,126,136,126,137,126,140,126,146,126,144,126,147,126,148,126,150,126,142,126,155,126,156,126,56,127,58,127,69,127,76,127,77,127,78,127,80,127,81,127,85,127,84,127,88,127,95,127,96,127,104,127,105,127,103,127,120,127,130,127,134,127,131,127,136,127,135,127,140,127,148,127,158,127,157,127,154,127,163,127,175,127,178,127,185,127,174,127,182,127,184,127,113,139,197,127,198,127,202,127,213,127,212,127,225,127,230,127,233,127,243,127,249,127,220,152,6,128,4,128,11,128,18,128,24,128,25,128,28,128,33,128,40,128,63,128,59,128,74,128,70,128,82,128,88,128,90,128,95,128,98,128,104,128,115,128,114,128,112,128,118,128,121,128,125,128,127,128,132,128,134,128,133,128,155,128,147,128,154,128,173,128,144,81,172,128,219,128,229,128,217,128,221,128,196,128,218,128,214,128,9,129,239,128,241,128,27,129,41,129,35,129,47,129,75,129,139,150,70,129,62,129,83,129,81,129,252,128,113,129,110,129,101,129,102,129,116,129,131,129,136,129,138,129,128,129,130,129,160,129,149,129,164,129,163,129,95,129,147,129,169,129,176,129,181,129,190,129,184,129,189,129,192,129,194,129,186,129,201,129,205,129,209,129,217,129,216,129,200,129,218,129,223,129,224,129,231,129,250,129,251,129,254,129,1,130,2,130,5,130,7,130,10,130,13,130,16,130,22,130,41,130,43,130,56,130,51,130,64,130,89,130,88,130,93,130,90,130,95,130,100,130,98,130,104,130,106,130,107,130,46,130,113,130,119,130,120,130,126,130,141,130,146,130,171,130,159,130,187,130,172,130,225,130,227,130,223,130,210,130,244,130,243,130,250,130,147,131,3,131,251,130,249,130,222,130,6,131,220,130,9,131,217,130,53,131,52,131,22,131,50,131,49,131,64,131,57,131,80,131,69,131,47,131,43,131,23,131,24,131,133,131,154,131,170,131,159,131,162,131,150,131,35,131,142,131,135,131,138,131,124,131,181,131,115,131,117,131,160,131,137,131,168,131,244,131,19,132,235,131,206,131,253,131,3,132,216,131,11,132,193,131,247,131,7,132,224,131,242,131,13,132,34,132,32,132,189,131,56,132,6,133,251,131,109,132,42,132,60,132,90,133,132,132,119,132,107,132,173,132,110,132,130,132,105,132,70,132,44,132,111,132,121,132,53,132,202,132,98,132,185,132,191,132,159,132,217,132,205,132,187,132,218,132,208,132,193,132,198,132,214,132,161,132,33,133,255,132,244,132,23,133,24,133,44,133,31,133,21,133,20,133,252,132,64,133,99,133,88,133,72,133,65,133,2,134,75,133,85,133,128,133,164,133,136,133,145,133,138,133,168,133,109,133,148,133,155,133,234,133,135,133,156,133,119,133,126,133,144,133,201,133,186,133,207,133,185,133,208,133,213,133,221,133,229,133,220,133,249,133,10,134,19,134,11,134,254,133,250,133,6,134,34,134,26,134,48,134,63,134,77,134,85,78,84,134,95,134,103,134,113,134,147,134,163,134,169,134,170,134,139,134,140,134,182,134,175,134,196,134,198,134,176,134,201,134,35,136,171,134,212,134,222,134,233,134,236,134,223,134,219,134,239,134,18,135,6,135,8,135,0,135,3,135,251,134,17,135,9,135,13,135,249,134,10,135,52,135,63,135,55,135,59,135,37,135,41,135,26,135,96,135,95,135,120,135,76,135,78,135,116,135,87,135,104,135,110,135,89,135,83,135,99,135,106,135,5,136,162,135,159,135,130,135,175,135,203,135,189,135,192,135,208,135,214,150,171,135,196,135,179,135,199,135,198,135,187,135,239,135,242,135,224,135,15,136,13,136,254,135,246,135,247,135,14,136,210,135,17,136,22,136,21,136,34,136,33,136,49,136,54,136,57,136,39,136,59,136,68,136,66,136,82,136,89,136,94,136,98,136,107,136,129,136,126,136,158,136,117,136,125,136,181,136,114,136,130,136,151,136,146,136,174,136,153,136,162,136,141,136,164,136,176,136,191,136,177,136,195,136,196,136,212,136,216,136,217,136,221,136,249,136,2,137,252,136,244,136,232,136,242,136,4,137,12,137,10,137,19,137,67,137,30,137,37,137,42,137,43,137,65,137,68,137,59,137,54,137,56,137,76,137,29,137,96,137,94,137,102,137,100,137,109,137,106,137,111,137,116,137,119,137,126,137,131,137,136,137,138,137,147,137,152,137,161,137,169,137,166,137,172,137,175,137,178,137,186,137,189,137,191,137,192,137,218,137,220,137,221,137,231,137,244,137,248,137,3,138,22,138,16,138,12,138,27,138,29,138,37,138,54,138,65,138,91,138,82,138,70,138,72,138,124,138,109,138,108,138,98,138,133,138,130,138,132,138,168,138,161,138,145,138,165,138,166,138,154,138,163,138,196,138,205,138,194,138,218,138,235,138,243,138,231,138,228,138,241,138,20,139,224,138,226,138,247,138,222,138,219,138,12,139,7,139,26,139,225,138,22,139,16,139,23,139,32,139,51,139,171,151,38,139,43,139,62,139,40,139,65,139,76,139,79,139,78,139,73,139,86,139,91,139,90,139,107,139,95,139,108,139,111,139,116,139,125,139,128,139,140,139,142,139,146,139,147,139,150,139,153,139,154,139,58,140,65,140,63,140,72,140,76,140,78,140,80,140,85,140,98,140,108,140,120,140,122,140,130,140,137,140,133,140,138,140,141,140,142,140,148,140,124,140,152,140,29,98,173,140,170,140,189,140,178,140,179,140,174,140,182,140,200,140,193,140,228,140,227,140,218,140,253,140,250,140,251,140,4,141,5,141,10,141,7,141,15,141,13,141,16,141,78,159,19,141,205,140,20,141,22,141,103,141,109,141,113,141,115,141,129,141,153,141,194,141,190,141,186,141,207,141,218,141,214,141,204,141,219,141,203,141,234,141,235,141,223,141,227,141,252,141,8,142,9,142,255,141,29,142,30,142,16,142,31,142,66,142,53,142,48,142,52,142,74,142,71,142,73,142,76,142,80,142,72,142,89,142,100,142,96,142,42,142,99,142,85,142,118,142,114,142,124,142,129,142,135,142,133,142,132,142,139,142,138,142,147,142,145,142,148,142,153,142,170,142,161,142,172,142,176,142,198,142,177,142,190,142,197,142,200,142,203,142,219,142,227,142,252,142,251,142,235,142,254,142,10,143,5,143,21,143,18,143,25,143,19,143,28,143,31,143,27,143,12,143,38,143,51,143,59,143,57,143,69,143,66,143,62,143,76,143,73,143,70,143,78,143,87,143,92,143,98,143,99,143,100,143,156,143,159,143,163,143,173,143,175,143,183,143,218,143,229,143,226,143,234,143,239,143,135,144,244,143,5,144,249,143,250,143,17,144,21,144,33,144,13,144,30,144,22,144,11,144,39,144,54,144,53,144,57,144,248,143,79,144,80,144,81,144,82,144,14,144,73,144,62,144,86,144,88,144,94,144,104,144,111,144,118,144,168,150,114,144,130,144,125,144,129,144,128,144,138,144,137,144,143,144,168,144,175,144,177,144,181,144,226,144,228,144,72,98,219,144,2,145,18,145,25,145,50,145,48,145,74,145,86,145,88,145,99,145,101,145,105,145,115,145,114,145,139,145,137,145,130,145,162,145,171,145,175,145,170,145,181,145,180,145,186,145,192,145,193,145,201,145,203,145,208,145,214,145,223,145,225,145,219,145,252,145,245,145,246,145,30,146,255,145,20,146,44,146,21,146,17,146,94,146,87,146,69,146,73,146,100,146,72,146,149,146,63,146,75,146,80,146,156,146,150,146,147,146,155,146,90,146,207,146,185,146,183,146,233,146,15,147,250,146,68,147,46,147,25,147,34,147,26,147,35,147,58,147,53,147,59,147,92,147,96,147,124,147,110,147,86,147,176,147,172,147,173,147,148,147,185,147,214,147,215,147,232,147,229,147,216,147,195,147,221,147,208,147,200,147,228,147,26,148,20,148,19,148,3,148,7,148,16,148,54,148,43,148,53,148,33,148,58,148,65,148,82,148,68,148,91,148,96,148,98,148,94,148,106,148,41,146,112,148,117,148,119,148,125,148,90,148,124,148,126,148,129,148,127,148,130,149,135,149,138,149,148,149,150,149,152,149,153,149,160,149,168,149,167,149,173,149,188,149,187,149,185,149,190,149,202,149,246,111,195,149,205,149,204,149,213,149,212,149,214,149,220,149,225,149,229,149,226,149,33,150,40,150,46,150,47,150,66,150,76,150,79,150,75,150,119,150,92,150,94,150,93,150,95,150,102,150,114,150,108,150,141,150,152,150,149,150,151,150,170,150,167,150,177,150,178,150,176,150,180,150,182,150,184,150,185,150,206,150,203,150,201,150,205,150,77,137,220,150,13,151,213,150,249,150,4,151,6,151,8,151,19,151,14,151,17,151,15,151,22,151,25,151,36,151,42,151,48,151,57,151,61,151,62,151,68,151,70,151,72,151,66,151,73,151,92,151,96,151,100,151,102,151,104,151,210,82,107,151,113,151,121,151,133,151,124,151,129,151,122,151,134,151,139,151,143,151,144,151,156,151,168,151,166,151,163,151,179,151,180,151,195,151,198,151,200,151,203,151,220,151,237,151,79,159,242,151,223,122,246,151,245,151,15,152,12,152,56,152,36,152,33,152,55,152,61,152,70,152,79,152,75,152,107,152,111,152,112,152,113,152,116,152,115,152,170,152,175,152,177,152,182,152,196,152,195,152,198,152,233,152,235,152,3,153,9,153,18,153,20,153,24,153,33,153,29,153,30,153,36,153,32,153,44,153,46,153,61,153,62,153,66,153,73,153,69,153,80,153,75,153,81,153,82,153,76,153,85,153,151,153,152,153,165,153,173,153,174,153,188,153,223,153,219,153,221,153,216,153,209,153,237,153,238,153,241,153,242,153,251,153,248,153,1,154,15,154,5,154,226,153,25,154,43,154,55,154,69,154,66,154,64,154,67,154,62,154,85,154,77,154,91,154,87,154,95,154,98,154,101,154,100,154,105,154,107,154,106,154,173,154,176,154,188,154,192,154,207,154,209,154,211,154,212,154,222,154,223,154,226,154,227,154,230,154,239,154,235,154,238,154,244,154,241,154,247,154,251,154,6,155,24,155,26,155,31,155,34,155,35,155,37,155,39,155,40,155,41,155,42,155,46,155,47,155,50,155,68,155,67,155,79,155,77,155,78,155,81,155,88,155,116,155,147,155,131,155,145,155,150,155,151,155,159,155,160,155,168,155,180,155,192,155,202,155,185,155,198,155,207,155,209,155,210,155,227,155,226,155,228,155,212,155,225,155,58,156,242,155,241,155,240,155,21,156,20,156,9,156,19,156,12,156,6,156,8,156,18,156,10,156,4,156,46,156,27,156,37,156,36,156,33,156,48,156,71,156,50,156,70,156,62,156,90,156,96,156,103,156,118,156,120,156,231,156,236,156,240,156,9,157,8,157,235,156,3,157,6,157,42,157,38,157,175,157,35,157,31,157,68,157,21,157,18,157,65,157,63,157,62,157,70,157,72,157,93,157,94,157,100,157,81,157,80,157,89,157,114,157,137,157,135,157,171,157,111,157,122,157,154,157,164,157,169,157,178,157,196,157,193,157,187,157,184,157,186,157,198,157,207,157,194,157,217,157,211,157,248,157,230,157,237,157,239,157,253,157,26,158,27,158,30,158,117,158,121,158,125,158,129,158,136,158,139,158,140,158,146,158,149,158,145,158,157,158,165,158,169,158,184,158,170,158,173,158,97,151,204,158,206,158,207,158,208,158,212,158,220,158,222,158,221,158,224,158,229,158,232,158,239,158,244,158,246,158,247,158,249,158,251,158,252,158,253,158,7,159,8,159,183,118,21,159,33,159,44,159,62,159,74,159,82,159,84,159,99,159,95,159,96,159,97,159,102,159,103,159,108,159,106,159,119,159,114,159,118,159,149,159,156,159,160,159,47,88,199,105,89,144,100,116,220,81,153,113,0,0,2,0,56,0,65,0,67,0,1,0,170,170,170,170,170,170,38,141,1,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,72,0,0,0,72,1,0,0,136,103,1,0,136,103,1,0,112,112,1,0,112,112,1,0,108,114,1,0,108,114,1,0,14,141,1,0,25,0,0,0,22,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,94,249,250,251,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,254,255,50,105,114,84,1,0,192,8,75,21,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,97,0,105,0,113,0,121,0,48,0,129,0,137,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,147,0,48,0,48,0,48,0,155,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,163,0,171,0,179,0,187,0,195,0,203,0,211,0,219,0,227,0,235,0,243,0,251,0,3,1,11,1,19,1,27,1,35,1,43,1,51,1,59,1,67,1,74,1,82,1,90,1,98,1,106,1,114,1,122,1,130,1,138,1,146,1,154,1,162,1,170,1,178,1,186,1,194,1,202,1,210,1,218,1,226,1,234,1,242,1,250,1,2,2,10,2,18,2,26,2,34,2,42,2,50,2,58,2,66,2,74,2,82,2,90,2,98,2,104,2,112,2,120,2,128,2,136,2,143,2,151,2,159,2,166,2,174,2,181,2,189,2,197,2,205,2,213,2,221,2,229,2,237,2,245,2,253,2,5,3,13,3,21,3,29,3,37,3,45,3,53,3,61,3,69,3,77,3,85,3,93,3,101,3,109,3,117,3,125,3,133,3,141,3,149,3,157,3,165,3,173,3,181,3,189,3,196,3,204,3,212,3,219,3,227,3,235,3,243,3,251,3,3,4,11,4,19,4,27,4,35,4,43,4,51,4,58,4,66,4,74,4,82,4,90,4,98,4,104,4,112,4,120,4,128,4,136,4,144,4,152,4,160,4,168,4,176,4,184,4,192,4,200,4,208,4,216,4,224,4,232,4,240,4,248,4,0,5,8,5,16,5,24,5,32,5,40,5,48,5,56,5,64,5,72,5,80,5,88,5,96,5,104,5,112,5,120,5,127,5,135,5,143,5,151,5,159,5,167,5,175,5,183,5,191,5,199,5,207,5,215,5,223,5,231,5,239,5,247,5,255,5,7,6,15,6,22,6,30,6,38,6,45,6,53,6,61,6,69,6,77,6,85,6,93,6,101,6,109,6,117,6,125,6,133,6,141,6,149,6,157,6,165,6,173,6,181,6,189,6,197,6,205,6,213,6,221,6,229,6,237,6,245,6,253,6,5,7,13,7,21,7,29,7,37,7,45,7,53,7,61,7,69,7,77,7,85,7,93,7,101,7,109,7,117,7,125,7,133,7,141,7,149,7,157,7,165,7,173,7,181,7,189,7,197,7,205,7,212,7,220,7,228,7,236,7,244,7,252,7,4,8,12,8,18,8,26,8,34,8,42,8,50,8,58,8,66,8,74,8,80,8,88,8,96,8,104,8,111,8,119,8,127,8,135,8,142,8,150,8,158,8,166,8,174,8,182,8,190,8,198,8,206,8,214,8,222,8,230,8,238,8,246,8,254,8,6,9,14,9,22,9,30,9,38,9,46,9,53,9,60,9,68,9,76,9,84,9,92,9,100,9,108,9,116,9,124,9,132,9,140,9,147,9,155,9,163,9,171,9,179,9,187,9,195,9,203,9,211,9,219,9,227,9,234,9,240,9,248,9,0,10,8,10,16,10,24,10,32,10,40,10,48,10,56,10,64,10,72,10,80,10,88,10,96,10,104,10,112,10,120,10,128,10,136,10,144,10,152,10,160,10,168,10,175,10,183,10,191,10,199,10,207,10,215,10,223,10,231,10,239,10,247,10,255,10,7,11,15,11,23,11,31,11,39,11,47,11,55,11,62,11,70,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,141,11,149,11,157,11,165,11,173,11,181,11,189,11,197,11,205,11,212,11,220,11,227,11,235,11,243,11,251,11,3,12,11,12,19,12,27,12,35,12,43,12,51,12,59,12,67,12,75,12,83,12,91,12,99,12,107,12,115,12,123,12,131,12,139,12,147,12,155,12,163,12,48,0,48,0,48,0,48,0,171,12,178,12,186,12,194,12,202,12,210,12,218,12,226,12,234,12,242,12,250,12,2,13,10,13,18,13,26,13,34,13,42,13,50,13,58,13,66,13,74,13,82,13,90,13,98,13,106,13,114,13,122,13,130,13,138,13,146,13,154,13,162,13,170,13,178,13,185,13,193,13,201,13,209,13,217,13,225,13,233,13,241,13,249,13,1,14,9,14,17,14,24,14,32,14,40,14,48,14,56,14,64,14,72,14,80,14,88,14,96,14,104,14,112,14,120,14,127,14,135,14,142,14,150,14,158,14,166,14,174,14,182,14,190,14,198,14,206,14,214,14,222,14,230,14,238,14,246,14,254,14,6,15,14,15,22,15,30,15,38,15,46,15,54,15,62,15,70,15,78,15,86,15,94,15,102,15,110,15,118,15,126,15,134,15,142,15,150,15,158,15,166,15,174,15,182,15,190,15,48,0,48,0,48,0,48,0,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,48,0,48,0,4,16,12,16,20,16,28,16,36,16,44,16,52,16,60,16,68,16,76,16,84,16,92,16,100,16,108,16,116,16,124,16,132,16,134,16,142,16,150,16,158,16,166,16,174,16,182,16,190,16,198,16,206,16,214,16,222,16,230,16,237,16,243,16,251,16,3,17,11,17,19,17,27,17,35,17,43,17,51,17,59,17,67,17,75,17,82,17,89,17,97,17,105,17,112,17,120,17,128,17,135,17,143,17,151,17,159,17,167,17,175,17,183,17,191,17,48,0,48,0,48,0,48,0,48,0,48,0,194,17,202,17,210,17,218,17,226,17,228,17,236,17,244,17,252,17,4,18,12,18,20,18,28,18,36,18,44,18,52,18,60,18,68,18,76,18,84,18,92,18,100,18,108,18,116,18,124,18,48,0,130,18,138,18,146,18,154,18,162,18,170,18,48,0,176,18,183,18,191,18,199,18,207,18,214,18,222,18,230,18,48,0,236,18,244,18,252,18,3,19,11,19,19,19,26,19,34,19,42,19,50,19,58,19,65,19,73,19,81,19,89,19,48,0,48,0,48,0,96,19,104,19,112,19,120,19,128,19,135,19,142,19,150,19,157,19,165,19,48,0,48,0,173,19,181,19,189,19,197,19,205,19,213,19,221,19,229,19,237,19,243,19,251,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,88,0,48,0,48,0,80,0,80,0,80,0,66,21,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,3,20,11,20,19,20,27,20,35,20,43,20,51,20,59,20,67,20,75,20,83,20,91,20,99,20,107,20,115,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,123,20,16,0,131,20,139,20,147,20,155,20,163,20,171,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,179,20,187,20,195,20,203,20,211,20,219,20,227,20,235,20,243,20,251,20,3,21,11,21,19,21,27,21,34,21,42,21,50,21,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,13,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,14,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,14,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,200,0,0,0,200,32,63,0,197,162,13,0,192,0,0,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,198,33,1,0,198,65,1,0,198,98,1,0,198,161,1,0,198,194,1,0,198,1,2,0,198,34,2,0,198,97,2,0,198,130,2,0,198,193,2,0,198,226,2,0,198,33,3,0,198,66,3,0,198,129,3,0,198,162,3,0,198,225,3,0,198,2,4,0,198,65,4,0,198,98,4,0,198,161,4,0,198,194,4,0,198,1,5,0,198,34,5,0,198,97,5,0,198,130,5,0,198,193,5,0,198,225,5,0,198,2,6,0,198,65,6,0,198,98,6,0,198,161,6,0,198,194,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,194,7,0,198,2,8,0,198,65,8,0,198,98,8,0,198,162,8,0,198,225,8,0,198,2,9,0,198,66,9,0,198,129,9,0,198,162,9,0,198,226,9,0,198,33,10,0,198,66,10,0,198,130,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,97,11,0,198,129,11,0,198,161,11,0,198,193,11,0,198,225,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,193,12,0,198,225,12,0,198,1,13,0,198,33,13,0,198,65,13,0,198,97,13,0,198,130,13,0,198,193,13,0,198,225,13,0,198,2,14,0,198,66,14,0,198,130,14,0,198,194,14,0,192,0,0,0,200,0,113,0,200,224,3,1,200,0,87,1,198,66,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,5,5,8,121,5,5,183,121,5,5,10,121,5,5,187,121,5,5,189,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,52,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,66,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,193,247,101,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,13,5,5,123,13,5,5,122,13,5,5,121,13,192,0,0,0,5,5,0,202,5,5,254,232,192,0,0,0,5,5,37,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,235,5,5,18,231,5,5,190,229,5,5,17,231,5,5,118,226,192,0,0,0,5,5,18,235,5,5,119,236,192,0,0,0,5,5,75,237,5,5,11,226,192,0,0,0,192,0,0,0,5,5,8,227,5,5,76,237,5,5,140,231,5,5,41,238,5,5,172,227,5,5,86,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,231,192,0,0,0,192,0,0,0,5,5,212,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,237,192,0,0,0,192,0,0,0,5,5,234,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,237,5,5,48,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,237,192,0,0,0,5,5,85,227,5,5,180,232,192,0,0,0,5,5,85,230,5,5,80,237,192,0,0,0,192,0,0,0,5,5,81,237,192,0,0,0,192,0,0,0,5,5,82,237,5,5,53,234,192,0,0,0,5,5,173,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,234,192,0,0,0,5,5,5,234,5,5,181,228,5,5,173,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,246,5,5,83,237,5,5,20,231,5,5,84,237,5,5,111,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,228,5,5,226,228,5,5,67,236,192,0,0,0,192,0,0,0,5,5,135,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,236,192,0,0,0,5,5,31,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,227,192,0,0,0,5,5,139,227,192,0,0,0,5,5,85,237,192,0,0,0,192,0,0,0,5,5,86,237,5,5,209,236,192,0,0,0,5,5,117,236,5,5,48,232,5,5,88,237,5,5,6,230,5,5,21,234,192,0,0,0,5,5,91,237,192,0,0,0,192,0,0,0,5,5,26,226,5,5,209,228,192,0,0,0,5,5,208,228,5,5,0,196,192,0,0,0,192,0,0,0,5,5,65,237,5,5,64,237,192,0,0,0,5,5,99,229,5,5,0,127,192,0,0,0,5,5,92,237,5,5,93,237,5,5,94,237,5,5,174,235,5,5,95,237,192,0,0,0,5,5,228,228,5,5,0,197,5,5,236,235,192,0,0,0,5,5,210,227,192,0,0,0,192,0,0,0,5,5,211,227,5,5,212,227,5,5,70,233,5,5,210,236,192,0,0,0,5,5,96,237,192,0,0,0,192,0,0,0,5,5,97,237,192,0,0,0,192,0,0,0,5,5,98,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,230,5,5,88,231,5,5,103,237,192,0,0,0,5,5,101,237,192,0,0,0,5,5,102,237,5,5,174,227,192,0,0,0,192,0,0,0,5,5,83,229,5,5,170,226,192,0,0,0,5,5,100,237,5,5,99,237,5,5,69,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,229,5,5,211,229,5,5,100,232,5,5,104,237,5,5,19,235,5,5,207,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,237,5,5,107,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,232,5,5,247,236,5,5,0,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,237,5,5,120,226,192,0,0,0,5,5,248,227,192,0,0,0,5,5,235,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,228,5,5,108,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,237,5,5,0,169,192,0,0,0,192,0,0,0,5,5,210,228,5,5,100,227,5,5,56,235,5,5,144,234,5,5,175,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,226,192,0,0,0,5,5,144,237,5,5,131,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,234,5,5,111,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,234,192,0,0,0,5,5,248,236,192,0,0,0,5,5,55,231,192,0,0,0,5,5,213,229,192,0,0,0,5,5,7,230,5,5,122,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,233,192,0,0,0,192,0,0,0,5,5,166,232,5,5,115,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,170,5,5,71,233,5,5,135,230,5,5,100,229,5,5,92,236,192,0,0,0,5,5,116,232,192,0,0,0,5,5,121,226,192,0,0,0,5,5,114,237,192,0,0,0,5,5,118,236,5,5,110,237,5,5,112,237,5,5,158,229,5,5,113,237,5,5,39,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,237,5,5,122,237,192,0,0,0,192,0,0,0,5,5,124,226,192,0,0,0,5,5,87,235,5,5,116,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,237,5,5,229,228,192,0,0,0,192,0,0,0,5,5,214,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,5,5,125,237,192,0,0,0,5,5,117,237,192,0,0,0,192,0,0,0,5,5,249,236,192,0,0,0,5,5,8,230,192,0,0,0,5,5,118,237,192,0,0,0,5,5,123,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,237,192,0,0,0,5,5,119,237,192,0,0,0,192,0,0,0,5,5,213,227,192,0,0,0,5,5,0,171,192,0,0,0,192,0,0,0,5,5,214,227,5,5,123,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,239,192,0,0,0,5,5,243,235,5,5,44,235,5,5,230,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,231,5,5,205,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,235,192,0,0,0,192,0,0,0,5,5,76,228,5,5,75,232,5,5,158,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,237,192,0,0,0,5,5,135,237,5,5,133,237,192,0,0,0,192,0,0,0,5,5,128,237,192,0,0,0,192,0,0,0,5,5,85,232,5,5,131,237,192,0,0,0,5,5,134,237,5,5,132,237,192,0,0,0,5,5,121,235,192,0,0,0,5,5,129,237,192,0,0,0,5,5,56,231,192,0,0,0,5,5,237,235,5,5,136,237,5,5,137,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,230,5,5,150,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,5,5,242,234,5,5,145,237,192,0,0,0,5,5,140,235,192,0,0,0,5,5,112,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,237,5,5,152,237,192,0,0,0,192,0,0,0,5,5,26,232,192,0,0,0,5,5,182,228,192,0,0,0,5,5,92,234,192,0,0,0,5,5,92,243,192,0,0,0,5,5,151,237,5,5,159,233,192,0,0,0,5,5,140,237,192,0,0,0,5,5,232,228,192,0,0,0,192,0,0,0,5,5,231,228,5,5,138,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,230,192,0,0,0,5,5,146,237,192,0,0,0,5,5,139,235,5,5,209,232,5,5,142,237,5,5,133,228,192,0,0,0,5,5,139,237,5,5,147,237,5,5,141,237,5,5,231,236,5,5,148,237,5,5,55,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,228,192,0,0,0,192,0,0,0,5,5,132,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,237,5,5,158,237,5,5,0,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,235,5,5,157,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,237,5,5,160,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,237,192,0,0,0,5,5,72,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,230,192,0,0,0,5,5,76,232,5,5,73,233,5,5,44,228,192,0,0,0,5,5,162,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,227,192,0,0,0,192,0,0,0,5,5,163,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,229,5,5,213,234,5,5,164,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,229,5,5,123,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,237,5,5,170,237,5,5,166,237,5,5,116,229,192,0,0,0,5,5,201,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,237,192,0,0,0,192,0,0,0,5,5,5,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,237,5,5,169,237,192,0,0,0,192,0,0,0,5,5,207,233,192,0,0,0,5,5,68,232,192,0,0,0,5,5,215,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,235,5,5,172,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,237,192,0,0,0,5,5,174,237,192,0,0,0,5,5,22,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,237,5,5,177,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,237,192,0,0,0,5,5,100,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,227,5,5,181,237,5,5,182,237,192,0,0,0,5,5,105,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,230,192,0,0,0,5,5,185,237,5,5,184,237,5,5,183,237,192,0,0,0,5,5,127,237,192,0,0,0,5,5,186,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,230,192,0,0,0,5,5,187,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,237,192,0,0,0,192,0,0,0,5,5,188,237,5,5,191,237,5,5,190,237,192,0,0,0,192,0,0,0,5,5,192,237,5,5,193,237,5,5,0,210,192,0,0,0,5,5,167,228,5,5,79,228,5,5,136,230,5,5,255,232,5,5,216,227,5,5,208,231,5,5,233,228,192,0,0,0,5,5,64,229,5,5,195,237,5,5,34,236,5,5,136,233,192,0,0,0,5,5,9,230,192,0,0,0,5,5,194,237,192,0,0,0,5,5,196,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,233,192,0,0,0,5,5,15,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,237,192,0,0,0,192,0,0,0,5,5,32,234,192,0,0,0,192,0,0,0,5,5,250,231,5,5,199,237,5,5,200,237,5,5,138,234,5,5,234,228,5,5,49,237,5,5,201,237,192,0,0,0,192,0,0,0,5,5,218,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,235,5,5,92,232,5,5,39,228,5,5,119,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,237,192,0,0,0,5,5,203,237,192,0,0,0,192,0,0,0,5,5,4,234,5,5,59,226,192,0,0,0,192,0,0,0,5,5,206,237,5,5,173,229,192,0,0,0,5,5,205,237,5,5,118,229,192,0,0,0,5,5,207,237,5,5,187,245,5,5,208,237,5,5,187,235,5,5,209,237,192,0,0,0,5,5,210,237,5,5,211,237,5,5,21,231,192,0,0,0,5,5,58,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,227,192,0,0,0,5,5,214,237,192,0,0,0,5,5,212,237,5,5,23,236,5,5,213,237,192,0,0,0,5,5,24,235,5,5,215,237,5,5,216,237,5,5,217,237,5,5,161,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,237,5,5,219,237,5,5,220,237,5,5,218,237,5,5,147,229,5,5,222,237,5,5,68,236,5,5,250,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,231,5,5,224,237,5,5,166,230,192,0,0,0,192,0,0,0,5,5,225,237,192,0,0,0,5,5,2,233,5,5,213,236,5,5,162,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,237,5,5,160,250,5,5,249,227,192,0,0,0,192,0,0,0,5,5,227,237,5,5,216,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,230,5,5,162,232,192,0,0,0,5,5,229,237,5,5,6,234,192,0,0,0,192,0,0,0,5,5,230,237,192,0,0,0,192,0,0,0,5,5,231,237,5,5,198,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,237,5,5,219,227,192,0,0,0,5,5,236,233,5,5,86,226,5,5,156,230,192,0,0,0,192,0,0,0,5,5,127,234,5,5,233,237,192,0,0,0,5,5,163,233,192,0,0,0,192,0,0,0,5,5,89,231,5,5,234,237,192,0,0,0,5,5,72,235,5,5,194,231,5,5,26,227,192,0,0,0,5,5,33,227,5,5,235,237,192,0,0,0,192,0,0,0,5,5,237,237,192,0,0,0,192,0,0,0,5,5,78,228,192,0,0,0,192,0,0,0,5,5,236,237,192,0,0,0,192,0,0,0,5,5,11,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,234,5,5,104,235,192,0,0,0,5,5,238,237,192,0,0,0,5,5,176,236,5,5,239,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,237,192,0,0,0,5,5,192,233,192,0,0,0,192,0,0,0,5,5,241,237,192,0,0,0,192,0,0,0,5,5,145,231,5,5,174,229,5,5,136,228,5,5,242,237,5,5,215,229,5,5,65,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,233,5,5,244,237,192,0,0,0,192,0,0,0,5,5,77,232,192,0,0,0,192,0,0,0,5,5,159,229,5,5,245,237,5,5,246,237,5,5,246,231,192,0,0,0,5,5,243,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,237,192,0,0,0,5,5,176,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,229,192,0,0,0,192,0,0,0,5,5,247,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,228,5,5,142,229,5,5,109,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,237,5,5,249,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,235,5,5,22,231,5,5,4,238,5,5,252,226,5,5,252,237,5,5,250,237,5,5,23,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,237,192,0,0,0,5,5,253,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,228,5,5,5,238,5,5,195,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,238,5,5,3,238,192,0,0,0,5,5,2,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,228,5,5,125,226,192,0,0,0,192,0,0,0,5,5,12,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,230,5,5,154,233,5,5,55,229,5,5,9,238,5,5,10,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,236,192,0,0,0,192,0,0,0,5,5,33,237,5,5,12,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,228,192,0,0,0,192,0,0,0,5,5,11,238,192,0,0,0,5,5,199,226,192,0,0,0,192,0,0,0,5,5,13,238,192,0,0,0,5,5,208,235,192,0,0,0,5,5,32,233,192,0,0,0,5,5,94,236,192,0,0,0,5,5,117,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,249,192,0,0,0,192,0,0,0,5,5,208,233,192,0,0,0,5,5,15,238,5,5,34,227,5,5,13,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,230,5,5,16,238,5,5,131,235,5,5,20,238,192,0,0,0,5,5,146,231,5,5,17,238,5,5,6,228,192,0,0,0,5,5,18,238,5,5,35,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,228,5,5,21,238,192,0,0,0,5,5,22,238,192,0,0,0,192,0,0,0,5,5,23,238,5,5,24,238,5,5,73,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,228,5,5,56,236,192,0,0,0,5,5,66,236,5,5,25,234,192,0,0,0,192,0,0,0,5,5,141,235,5,5,25,238,192,0,0,0,5,5,26,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,238,192,0,0,0,5,5,30,238,5,5,29,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,238,5,5,119,226,5,5,198,235,192,0,0,0,5,5,172,229,5,5,32,238,192,0,0,0,192,0,0,0,5,5,33,232,192,0,0,0,192,0,0,0,5,5,204,230,5,5,221,227,192,0,0,0,5,5,33,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,238,192,0,0,0,5,5,35,238,192,0,0,0,5,5,36,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,238,5,5,224,234,5,5,30,228,5,5,0,195,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,233,5,5,38,238,5,5,137,230,192,0,0,0,5,5,209,231,192,0,0,0,5,5,40,238,5,5,39,238,5,5,205,230,5,5,211,228,5,5,42,238,5,5,156,234,192,0,0,0,192,0,0,0,5,5,43,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,234,5,5,90,232,5,5,148,232,5,5,220,227,192,0,0,0,192,0,0,0,5,5,16,234,5,5,181,232,192,0,0,0,5,5,110,234,192,0,0,0,5,5,200,235,192,0,0,0,5,5,45,238,192,0,0,0,5,5,210,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,228,192,0,0,0,192,0,0,0,5,5,46,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,238,5,5,8,226,5,5,0,211,5,5,101,227,192,0,0,0,5,5,78,232,5,5,167,227,5,5,169,236,192,0,0,0,5,5,50,238,5,5,113,226,192,0,0,0,192,0,0,0,5,5,49,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,227,192,0,0,0,192,0,0,0,5,5,51,238,192,0,0,0,5,5,75,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,238,192,0,0,0,5,5,232,236,192,0,0,0,5,5,238,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,228,5,5,53,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,238,5,5,54,238,192,0,0,0,5,5,105,231,5,5,21,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,226,5,5,56,238,192,0,0,0,5,5,57,238,192,0,0,0,192,0,0,0,5,5,169,228,192,0,0,0,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,229,5,5,59,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,235,5,5,101,229,5,5,176,227,5,5,95,236,5,5,24,232,5,5,157,234,5,5,107,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,230,192,0,0,0,5,5,86,230,5,5,99,230,192,0,0,0,5,5,194,230,192,0,0,0,5,5,158,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,238,192,0,0,0,5,5,31,226,5,5,25,232,5,5,239,228,5,5,183,228,5,5,29,228,192,0,0,0,192,0,0,0,5,5,66,238,5,5,165,232,5,5,164,232,5,5,223,227,5,5,206,230,5,5,67,238,5,5,65,238,5,5,126,226,5,5,140,232,5,5,38,230,5,5,217,229,5,5,2,226,192,0,0,0,192,0,0,0,5,5,10,227,5,5,56,229,5,5,216,229,192,0,0,0,5,5,68,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,238,192,0,0,0,5,5,159,227,5,5,222,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,229,5,5,158,227,5,5,67,233,5,5,0,225,5,5,209,233,5,5,24,236,5,5,241,228,5,5,177,236,5,5,137,233,5,5,240,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,228,192,0,0,0,5,5,78,238,192,0,0,0,5,5,25,228,5,5,196,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,234,192,0,0,0,192,0,0,0,5,5,77,238,192,0,0,0,5,5,86,227,5,5,72,238,5,5,73,238,5,5,75,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,238,192,0,0,0,5,5,177,227,5,5,107,231,192,0,0,0,5,5,73,235,5,5,74,238,5,5,70,238,5,5,213,228,192,0,0,0,5,5,71,238,192,0,0,0,5,5,26,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,235,192,0,0,0,5,5,76,233,5,5,212,228,5,5,66,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,238,192,0,0,0,192,0,0,0,5,5,253,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,230,192,0,0,0,5,5,100,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,238,5,5,84,238,192,0,0,0,5,5,251,235,192,0,0,0,5,5,81,238,5,5,90,238,5,5,85,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,238,5,5,184,228,5,5,25,236,192,0,0,0,192,0,0,0,5,5,89,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,238,192,0,0,0,5,5,93,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,229,5,5,56,237,192,0,0,0,5,5,82,238,5,5,80,238,5,5,92,238,192,0,0,0,5,5,87,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,238,192,0,0,0,5,5,104,238,5,5,97,238,192,0,0,0,192,0,0,0,5,5,101,238,192,0,0,0,192,0,0,0,5,5,102,238,5,5,98,238,192,0,0,0,192,0,0,0,5,5,131,238,192,0,0,0,192,0,0,0,5,5,153,229,5,5,201,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,238,5,5,0,212,5,5,105,238,192,0,0,0,5,5,0,131,5,5,8,235,5,5,103,238,192,0,0,0,5,5,99,238,192,0,0,0,192,0,0,0,5,5,94,238,5,5,100,238,5,5,120,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,213,5,5,116,238,192,0,0,0,192,0,0,0,5,5,108,238,5,5,109,238,192,0,0,0,5,5,207,230,5,5,227,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,238,5,5,113,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,238,192,0,0,0,192,0,0,0,5,5,112,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,226,192,0,0,0,5,5,102,229,5,5,58,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,238,5,5,164,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,238,192,0,0,0,5,5,0,128,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,238,5,5,91,236,192,0,0,0,5,5,209,230,192,0,0,0,5,5,127,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,238,5,5,117,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,232,192,0,0,0,5,5,118,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,232,5,5,123,238,5,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,238,192,0,0,0,192,0,0,0,5,5,62,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,228,192,0,0,0,192,0,0,0,5,5,124,238,5,5,125,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,238,5,5,128,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,238,5,5,139,238,192,0,0,0,5,5,135,238,192,0,0,0,5,5,130,238,192,0,0,0,192,0,0,0,5,5,140,238,5,5,247,231,192,0,0,0,192,0,0,0,5,5,142,238,192,0,0,0,5,5,242,228,5,5,132,238,5,5,3,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,238,5,5,129,238,5,5,37,227,192,0,0,0,5,5,102,227,5,5,253,226,5,5,137,238,5,5,133,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,228,5,5,143,238,5,5,141,238,5,5,27,232,5,5,160,227,5,5,224,227,192,0,0,0,5,5,138,238,192,0,0,0,5,5,42,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,238,5,5,145,238,192,0,0,0,5,5,202,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,238,192,0,0,0,5,5,148,238,192,0,0,0,192,0,0,0,5,5,146,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,229,5,5,149,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,238,192,0,0,0,5,5,157,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,238,5,5,154,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,232,192,0,0,0,192,0,0,0,5,5,127,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,238,192,0,0,0,5,5,153,238,5,5,210,230,5,5,15,226,192,0,0,0,192,0,0,0,5,5,156,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,238,192,0,0,0,5,5,40,231,5,5,163,238,192,0,0,0,5,5,161,238,192,0,0,0,5,5,162,238,192,0,0,0,5,5,164,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,231,192,0,0,0,5,5,158,238,192,0,0,0,5,5,159,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,227,192,0,0,0,5,5,169,238,5,5,165,238,5,5,168,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,233,192,0,0,0,5,5,150,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,238,5,5,221,226,192,0,0,0,192,0,0,0,5,5,172,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,238,192,0,0,0,5,5,57,234,192,0,0,0,192,0,0,0,5,5,176,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,238,192,0,0,0,5,5,178,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,238,5,5,182,238,5,5,180,238,5,5,183,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,238,192,0,0,0,192,0,0,0,5,5,187,238,192,0,0,0,5,5,188,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,238,5,5,204,237,192,0,0,0,5,5,106,230,5,5,219,229,192,0,0,0,192,0,0,0,5,5,173,226,192,0,0,0,5,5,0,214,192,0,0,0,192,0,0,0,5,5,200,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,238,192,0,0,0,5,5,84,229,192,0,0,0,5,5,0,173,5,5,104,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,238,5,5,185,228,192,0,0,0,192,0,0,0,5,5,67,229,192,0,0,0,5,5,193,238,5,5,192,238,192,0,0,0,192,0,0,0,5,5,124,235,5,5,194,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,238,5,5,195,238,192,0,0,0,5,5,197,238,192,0,0,0,5,5,198,238,192,0,0,0,5,5,139,228,192,0,0,0,192,0,0,0,5,5,60,226,5,5,199,238,192,0,0,0,192,0,0,0,5,5,201,238,192,0,0,0,5,5,200,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,238,192,0,0,0,192,0,0,0,5,5,156,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,238,5,5,0,147,5,5,143,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,228,192,0,0,0,192,0,0,0,5,5,211,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,238,5,5,206,238,192,0,0,0,192,0,0,0,5,5,208,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,238,192,0,0,0,5,5,148,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,228,192,0,0,0,192,0,0,0,5,5,177,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,238,5,5,210,238,5,5,113,229,5,5,243,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,238,192,0,0,0,192,0,0,0,5,5,85,229,192,0,0,0,5,5,183,232,192,0,0,0,192,0,0,0,5,5,211,238,5,5,62,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,238,192,0,0,0,192,0,0,0,5,5,108,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,238,5,5,216,238,192,0,0,0,5,5,83,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,238,192,0,0,0,5,5,244,228,5,5,216,226,5,5,220,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,238,192,0,0,0,192,0,0,0,5,5,219,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,238,192,0,0,0,192,0,0,0,5,5,223,238,192,0,0,0,192,0,0,0,5,5,224,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,235,192,0,0,0,192,0,0,0,5,5,23,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,238,5,5,227,238,5,5,225,238,192,0,0,0,5,5,229,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,234,192,0,0,0,192,0,0,0,5,5,0,198,5,5,20,235,192,0,0,0,192,0,0,0,5,5,230,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,231,192,0,0,0,192,0,0,0,5,5,39,230,192,0,0,0,5,5,93,234,5,5,104,227,192,0,0,0,5,5,155,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,235,192,0,0,0,5,5,210,233,192,0,0,0,192,0,0,0,5,5,140,228,5,5,117,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,238,5,5,231,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,238,192,0,0,0,192,0,0,0,5,5,77,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,250,5,5,61,226,5,5,143,235,192,0,0,0,192,0,0,0,5,5,24,231,5,5,138,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,229,192,0,0,0,192,0,0,0,5,5,241,238,192,0,0,0,192,0,0,0,5,5,89,235,5,5,243,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,226,5,5,237,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,232,5,5,240,238,192,0,0,0,5,5,165,233,192,0,0,0,192,0,0,0,5,5,139,233,5,5,166,233,5,5,151,234,5,5,49,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,226,192,0,0,0,5,5,120,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,238,192,0,0,0,5,5,234,238,192,0,0,0,192,0,0,0,5,5,90,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,227,192,0,0,0,5,5,243,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,233,192,0,0,0,192,0,0,0,5,5,245,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,235,192,0,0,0,192,0,0,0,5,5,246,238,192,0,0,0,192,0,0,0,5,5,251,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,238,5,5,244,238,5,5,247,238,5,5,249,238,192,0,0,0,192,0,0,0,5,5,86,229,192,0,0,0,192,0,0,0,5,5,101,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,238,192,0,0,0,5,5,201,232,192,0,0,0,192,0,0,0,5,5,175,226,192,0,0,0,5,5,25,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,238,192,0,0,0,5,5,253,238,192,0,0,0,5,5,58,229,192,0,0,0,5,5,255,238,5,5,3,239,5,5,2,239,192,0,0,0,192,0,0,0,5,5,5,239,192,0,0,0,5,5,248,238,5,5,7,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,239,5,5,4,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,229,5,5,91,231,192,0,0,0,5,5,28,232,5,5,8,239,5,5,164,231,5,5,0,203,5,5,100,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,233,192,0,0,0,5,5,10,239,5,5,9,239,5,5,11,239,5,5,12,239,5,5,13,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,235,5,5,15,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,226,5,5,16,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,236,5,5,200,226,192,0,0,0,5,5,48,238,5,5,148,230,5,5,101,232,5,5,17,239,5,5,69,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,236,192,0,0,0,192,0,0,0,5,5,19,239,192,0,0,0,5,5,141,232,192,0,0,0,5,5,121,233,5,5,102,232,5,5,21,235,5,5,20,239,5,5,21,239,5,5,87,226,192,0,0,0,192,0,0,0,5,5,40,230,5,5,22,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,174,5,5,23,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,226,192,0,0,0,192,0,0,0,5,5,105,227,5,5,2,234,5,5,144,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,239,5,5,29,232,5,5,27,239,5,5,84,228,192,0,0,0,192,0,0,0,5,5,213,235,5,5,26,239,192,0,0,0,5,5,167,233,5,5,30,239,192,0,0,0,5,5,29,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,239,192,0,0,0,5,5,31,239,192,0,0,0,192,0,0,0,5,5,88,226,192,0,0,0,5,5,33,239,5,5,211,230,5,5,35,239,5,5,169,232,192,0,0,0,5,5,34,239,192,0,0,0,5,5,79,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,230,5,5,157,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,239,5,5,33,234,5,5,188,234,5,5,43,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,234,192,0,0,0,192,0,0,0,5,5,46,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,227,192,0,0,0,192,0,0,0,5,5,125,236,192,0,0,0,192,0,0,0,5,5,9,236,192,0,0,0,5,5,141,239,192,0,0,0,5,5,38,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,239,192,0,0,0,5,5,107,232,192,0,0,0,192,0,0,0,5,5,178,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,235,192,0,0,0,5,5,122,229,192,0,0,0,192,0,0,0,5,5,212,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,239,192,0,0,0,192,0,0,0,5,5,222,229,192,0,0,0,5,5,221,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,151,5,5,186,228,192,0,0,0,5,5,147,231,5,5,0,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,239,5,5,48,239,192,0,0,0,5,5,45,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,226,5,5,39,227,192,0,0,0,5,5,44,239,192,0,0,0,5,5,31,236,5,5,237,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,134,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,229,192,0,0,0,5,5,0,176,192,0,0,0,5,5,0,129,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,236,192,0,0,0,5,5,54,239,192,0,0,0,5,5,52,239,192,0,0,0,192,0,0,0,5,5,50,239,5,5,59,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,239,5,5,59,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,239,5,5,34,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,234,192,0,0,0,192,0,0,0,5,5,57,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,239,192,0,0,0,5,5,56,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,239,5,5,238,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,239,5,5,67,239,5,5,64,239,192,0,0,0,192,0,0,0,5,5,129,226,5,5,66,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,230,192,0,0,0,5,5,65,239,5,5,141,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,239,5,5,69,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,232,192,0,0,0,5,5,68,239,192,0,0,0,192,0,0,0,5,5,70,239,192,0,0,0,192,0,0,0,5,5,71,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,239,5,5,74,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,227,192,0,0,0,5,5,76,239,5,5,75,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,239,192,0,0,0,5,5,64,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,226,192,0,0,0,5,5,78,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,192,0,0,0,5,5,85,239,192,0,0,0,192,0,0,0,5,5,83,239,192,0,0,0,5,5,84,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,229,5,5,86,239,192,0,0,0,192,0,0,0,5,5,246,228,5,5,87,239,192,0,0,0,5,5,10,230,5,5,94,232,192,0,0,0,5,5,88,239,5,5,89,239,5,5,232,229,5,5,247,228,192,0,0,0,5,5,44,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,227,5,5,187,228,5,5,90,239,5,5,240,226,192,0,0,0,192,0,0,0,5,5,91,239,192,0,0,0,5,5,95,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,239,5,5,132,239,192,0,0,0,5,5,93,239,192,0,0,0,5,5,94,239,192,0,0,0,192,0,0,0,5,5,95,239,192,0,0,0,5,5,97,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,239,192,0,0,0,192,0,0,0,5,5,99,239,192,0,0,0,5,5,150,232,192,0,0,0,5,5,3,226,5,5,87,230,5,5,0,160,192,0,0,0,5,5,31,232,5,5,40,227,5,5,35,230,192,0,0,0,5,5,248,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,233,192,0,0,0,5,5,109,230,5,5,41,227,5,5,236,232,5,5,78,233,5,5,0,150,5,5,143,227,5,5,145,235,192,0,0,0,5,5,48,230,192,0,0,0,192,0,0,0,5,5,168,227,5,5,211,231,5,5,42,230,5,5,96,236,5,5,100,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,227,192,0,0,0,5,5,123,229,192,0,0,0,192,0,0,0,5,5,202,226,5,5,63,226,5,5,214,230,5,5,130,226,192,0,0,0,5,5,101,239,5,5,126,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,230,192,0,0,0,192,0,0,0,5,5,82,230,5,5,102,239,5,5,107,227,5,5,242,233,5,5,3,236,5,5,103,239,192,0,0,0,5,5,104,239,192,0,0,0,192,0,0,0,5,5,23,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,239,192,0,0,0,5,5,32,227,5,5,45,228,5,5,105,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,227,192,0,0,0,5,5,60,231,5,5,110,239,5,5,175,229,192,0,0,0,5,5,131,226,5,5,109,239,192,0,0,0,5,5,107,239,5,5,111,239,5,5,108,239,5,5,43,234,5,5,230,241,5,5,61,231,192,0,0,0,5,5,112,239,192,0,0,0,192,0,0,0,5,5,214,236,192,0,0,0,5,5,113,239,192,0,0,0,192,0,0,0,5,5,115,239,192,0,0,0,5,5,4,233,5,5,114,239,192,0,0,0,5,5,139,231,192,0,0,0,5,5,11,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,232,5,5,101,230,192,0,0,0,5,5,51,235,5,5,212,231,192,0,0,0,5,5,59,230,5,5,116,239,5,5,215,230,5,5,117,239,5,5,118,239,5,5,0,177,5,5,96,232,5,5,92,231,192,0,0,0,5,5,119,239,5,5,211,233,5,5,216,230,192,0,0,0,5,5,217,230,192,0,0,0,5,5,120,239,192,0,0,0,192,0,0,0,5,5,213,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,239,192,0,0,0,5,5,122,239,192,0,0,0,5,5,58,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,239,5,5,125,239,5,5,74,230,5,5,54,231,5,5,22,234,5,5,94,231,5,5,214,234,5,5,34,234,5,5,253,227,5,5,126,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,227,5,5,127,239,192,0,0,0,5,5,52,228,192,0,0,0,5,5,239,233,5,5,106,226,192,0,0,0,5,5,225,229,5,5,128,239,5,5,131,239,5,5,130,239,5,5,51,228,192,0,0,0,5,5,129,239,192,0,0,0,5,5,122,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,232,192,0,0,0,5,5,141,233,5,5,54,230,192,0,0,0,192,0,0,0,5,5,32,232,5,5,178,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,239,192,0,0,0,5,5,134,239,5,5,246,233,192,0,0,0,5,5,193,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,239,192,0,0,0,192,0,0,0,5,5,137,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,227,5,5,139,239,192,0,0,0,192,0,0,0,5,5,140,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,232,5,5,92,227,192,0,0,0,5,5,142,239,5,5,2,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,232,192,0,0,0,5,5,241,226,192,0,0,0,192,0,0,0,5,5,144,239,5,5,146,239,5,5,87,227,192,0,0,0,192,0,0,0,5,5,143,239,5,5,145,239,192,0,0,0,5,5,148,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,239,192,0,0,0,5,5,149,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,233,5,5,226,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,226,5,5,151,239,5,5,156,239,192,0,0,0,192,0,0,0,5,5,154,239,192,0,0,0,5,5,147,235,5,5,146,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,239,5,5,160,230,192,0,0,0,5,5,152,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,239,192,0,0,0,192,0,0,0,5,5,154,229,192,0,0,0,192,0,0,0,5,5,163,239,192,0,0,0,192,0,0,0,5,5,164,239,5,5,158,239,5,5,203,226,5,5,159,239,5,5,168,239,5,5,167,239,5,5,166,239,5,5,162,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,239,192,0,0,0,192,0,0,0,5,5,165,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,239,5,5,169,239,192,0,0,0,5,5,171,239,192,0,0,0,5,5,170,236,192,0,0,0,5,5,170,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,231,192,0,0,0,192,0,0,0,5,5,173,239,192,0,0,0,192,0,0,0,5,5,103,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,239,192,0,0,0,192,0,0,0,5,5,175,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,239,192,0,0,0,5,5,177,239,192,0,0,0,192,0,0,0,5,5,176,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,233,5,5,155,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,239,192,0,0,0,5,5,182,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,239,192,0,0,0,192,0,0,0,5,5,252,236,192,0,0,0,5,5,186,239,5,5,183,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,239,192,0,0,0,192,0,0,0,5,5,88,227,5,5,188,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,239,5,5,189,239,192,0,0,0,192,0,0,0,5,5,191,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,239,192,0,0,0,5,5,214,231,5,5,111,230,192,0,0,0,192,0,0,0,5,5,176,230,192,0,0,0,5,5,43,232,192,0,0,0,5,5,249,228,5,5,104,229,5,5,250,228,5,5,198,227,192,0,0,0,192,0,0,0,5,5,193,239,192,0,0,0,192,0,0,0,5,5,105,229,192,0,0,0,192,0,0,0,5,5,188,228,5,5,194,239,5,5,254,235,5,5,67,234,5,5,195,239,192,0,0,0,5,5,251,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,227,192,0,0,0,5,5,171,232,5,5,8,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,229,5,5,25,235,192,0,0,0,192,0,0,0,5,5,159,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,239,5,5,109,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,233,192,0,0,0,192,0,0,0,5,5,198,239,5,5,197,239,5,5,200,239,192,0,0,0,5,5,79,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,229,192,0,0,0,5,5,178,231,192,0,0,0,5,5,121,232,5,5,120,227,192,0,0,0,192,0,0,0,5,5,6,233,192,0,0,0,192,0,0,0,5,5,201,239,5,5,202,239,5,5,27,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,235,192,0,0,0,192,0,0,0,5,5,205,239,192,0,0,0,192,0,0,0,5,5,204,239,5,5,203,239,5,5,59,235,192,0,0,0,5,5,212,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,235,192,0,0,0,5,5,206,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,239,5,5,229,235,192,0,0,0,5,5,207,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,239,192,0,0,0,5,5,134,234,5,5,210,239,5,5,90,235,5,5,211,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,227,5,5,91,235,5,5,47,234,5,5,213,239,5,5,214,239,192,0,0,0,5,5,252,228,5,5,44,227,5,5,215,239,5,5,170,228,5,5,124,236,5,5,97,236,5,5,110,227,5,5,217,239,192,0,0,0,5,5,7,233,192,0,0,0,5,5,253,228,5,5,219,230,192,0,0,0,192,0,0,0,5,5,189,234,192,0,0,0,192,0,0,0,5,5,220,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,233,5,5,149,235,5,5,123,233,192,0,0,0,192,0,0,0,5,5,254,228,192,0,0,0,5,5,26,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,233,5,5,114,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,228,192,0,0,0,5,5,81,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,161,5,5,186,230,5,5,255,228,5,5,127,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,239,5,5,220,239,5,5,81,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,239,5,5,15,237,5,5,35,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,239,5,5,222,239,192,0,0,0,192,0,0,0,5,5,223,226,192,0,0,0,192,0,0,0,5,5,224,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,239,5,5,228,239,192,0,0,0,5,5,226,239,192,0,0,0,5,5,252,234,5,5,221,230,5,5,230,239,5,5,229,239,5,5,225,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,239,5,5,232,239,192,0,0,0,192,0,0,0,5,5,233,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,239,5,5,234,239,192,0,0,0,5,5,235,239,5,5,237,239,192,0,0,0,5,5,64,226,5,5,82,233,5,5,238,239,192,0,0,0,5,5,142,228,5,5,176,226,5,5,54,234,192,0,0,0,5,5,239,239,5,5,29,234,192,0,0,0,5,5,119,235,192,0,0,0,5,5,240,239,5,5,36,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,239,5,5,92,235,5,5,244,239,5,5,74,237,5,5,90,237,192,0,0,0,5,5,30,230,5,5,23,234,5,5,245,239,192,0,0,0,5,5,179,227,5,5,8,233,5,5,0,216,5,5,246,239,5,5,66,235,5,5,2,229,192,0,0,0,192,0,0,0,5,5,212,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,236,5,5,171,228,5,5,190,228,192,0,0,0,5,5,247,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,239,192,0,0,0,5,5,254,239,192,0,0,0,5,5,83,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,233,192,0,0,0,5,5,227,227,5,5,249,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,234,192,0,0,0,5,5,202,232,192,0,0,0,192,0,0,0,5,5,250,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,239,192,0,0,0,5,5,228,227,192,0,0,0,5,5,252,239,192,0,0,0,5,5,253,239,192,0,0,0,192,0,0,0,5,5,255,239,192,0,0,0,5,5,184,233,192,0,0,0,192,0,0,0,5,5,2,240,5,5,3,240,192,0,0,0,5,5,4,240,192,0,0,0,192,0,0,0,5,5,243,239,5,5,242,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,240,5,5,85,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,234,192,0,0,0,192,0,0,0,5,5,124,229,5,5,243,234,5,5,10,233,5,5,9,235,5,5,6,240,192,0,0,0,192,0,0,0,5,5,222,230,5,5,34,226,192,0,0,0,5,5,7,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,240,192,0,0,0,5,5,76,236,192,0,0,0,192,0,0,0,5,5,190,234,192,0,0,0,192,0,0,0,5,5,11,240,5,5,89,226,5,5,148,231,5,5,10,240,5,5,9,240,5,5,86,228,5,5,122,232,192,0,0,0,5,5,15,240,5,5,13,240,192,0,0,0,5,5,12,240,5,5,189,236,5,5,215,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,230,5,5,14,240,5,5,142,233,5,5,138,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,233,5,5,18,240,5,5,17,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,240,192,0,0,0,5,5,19,240,5,5,216,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,240,5,5,58,235,5,5,167,230,192,0,0,0,192,0,0,0,5,5,21,240,5,5,215,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,233,5,5,11,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,233,192,0,0,0,192,0,0,0,5,5,22,240,5,5,129,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,231,192,0,0,0,5,5,232,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,227,5,5,38,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,240,5,5,228,229,5,5,180,235,5,5,181,235,192,0,0,0,192,0,0,0,5,5,90,226,5,5,28,240,192,0,0,0,192,0,0,0,5,5,237,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,240,5,5,27,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,234,192,0,0,0,192,0,0,0,5,5,26,240,192,0,0,0,192,0,0,0,5,5,24,240,192,0,0,0,5,5,76,229,192,0,0,0,5,5,30,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,240,5,5,42,240,5,5,34,240,192,0,0,0,5,5,158,233,192,0,0,0,192,0,0,0,5,5,39,240,5,5,27,235,192,0,0,0,192,0,0,0,5,5,33,240,192,0,0,0,5,5,38,240,5,5,253,236,5,5,229,229,192,0,0,0,192,0,0,0,5,5,123,232,5,5,31,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,227,5,5,41,240,5,5,149,231,5,5,65,226,5,5,35,240,5,5,178,226,5,5,40,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,227,192,0,0,0,5,5,37,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,240,5,5,55,240,5,5,53,240,192,0,0,0,192,0,0,0,5,5,50,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,240,5,5,16,237,192,0,0,0,5,5,51,240,192,0,0,0,192,0,0,0,5,5,230,227,192,0,0,0,5,5,3,229,192,0,0,0,192,0,0,0,5,5,198,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,240,5,5,44,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,240,5,5,32,240,192,0,0,0,5,5,180,226,5,5,52,240,5,5,54,240,5,5,213,232,192,0,0,0,192,0,0,0,5,5,88,229,5,5,114,226,5,5,46,240,5,5,57,240,5,5,56,240,5,5,231,227,192,0,0,0,5,5,79,232,5,5,254,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,228,192,0,0,0,5,5,47,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,240,192,0,0,0,5,5,62,240,5,5,64,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,230,192,0,0,0,5,5,70,240,5,5,84,233,5,5,60,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,240,192,0,0,0,5,5,179,226,192,0,0,0,5,5,66,240,5,5,67,240,192,0,0,0,192,0,0,0,5,5,63,240,5,5,65,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,228,5,5,98,236,192,0,0,0,192,0,0,0,5,5,45,227,192,0,0,0,192,0,0,0,5,5,53,226,5,5,69,240,192,0,0,0,5,5,58,234,5,5,0,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,234,5,5,29,240,5,5,75,240,5,5,79,240,5,5,63,236,192,0,0,0,5,5,72,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,233,5,5,77,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,231,5,5,78,240,5,5,247,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,237,192,0,0,0,5,5,74,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,240,192,0,0,0,5,5,77,229,192,0,0,0,5,5,179,231,192,0,0,0,192,0,0,0,5,5,0,178,5,5,73,240,5,5,71,240,192,0,0,0,5,5,34,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,240,5,5,194,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,232,5,5,92,240,192,0,0,0,5,5,35,232,5,5,87,240,192,0,0,0,5,5,84,240,5,5,85,240,192,0,0,0,5,5,84,230,5,5,88,240,5,5,91,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,240,5,5,113,230,192,0,0,0,5,5,89,240,192,0,0,0,192,0,0,0,5,5,83,240,192,0,0,0,5,5,86,236,5,5,85,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,240,5,5,94,240,5,5,0,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,228,5,5,0,132,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,227,192,0,0,0,5,5,90,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,240,5,5,97,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,240,5,5,104,240,5,5,96,240,5,5,100,240,192,0,0,0,192,0,0,0,5,5,105,240,192,0,0,0,5,5,106,240,192,0,0,0,192,0,0,0,5,5,95,240,5,5,12,230,192,0,0,0,5,5,99,240,5,5,124,232,5,5,4,229,5,5,81,240,5,5,63,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,240,192,0,0,0,5,5,133,235,192,0,0,0,192,0,0,0,5,5,109,240,5,5,110,240,5,5,111,240,192,0,0,0,192,0,0,0,5,5,118,240,192,0,0,0,5,5,117,240,192,0,0,0,192,0,0,0,5,5,247,235,5,5,47,227,192,0,0,0,5,5,115,240,192,0,0,0,5,5,89,228,5,5,204,226,192,0,0,0,192,0,0,0,5,5,112,240,192,0,0,0,192,0,0,0,5,5,206,236,5,5,114,240,5,5,0,180,5,5,116,240,192,0,0,0,5,5,107,240,5,5,113,240,5,5,120,240,5,5,88,228,5,5,108,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,240,192,0,0,0,192,0,0,0,5,5,127,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,232,192,0,0,0,5,5,17,237,5,5,128,240,192,0,0,0,192,0,0,0,5,5,125,240,192,0,0,0,5,5,122,240,192,0,0,0,192,0,0,0,5,5,121,240,5,5,126,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,235,192,0,0,0,192,0,0,0,5,5,212,233,192,0,0,0,5,5,90,228,192,0,0,0,5,5,129,240,5,5,124,240,192,0,0,0,5,5,130,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,240,192,0,0,0,192,0,0,0,5,5,137,240,5,5,89,229,5,5,135,240,5,5,133,240,5,5,132,240,5,5,139,240,5,5,131,240,5,5,141,240,192,0,0,0,192,0,0,0,5,5,181,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,240,192,0,0,0,192,0,0,0,5,5,142,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,233,192,0,0,0,5,5,146,240,192,0,0,0,5,5,144,240,5,5,134,240,5,5,144,228,192,0,0,0,5,5,145,240,192,0,0,0,5,5,149,240,5,5,148,240,5,5,150,240,5,5,147,240,5,5,151,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,240,5,5,153,240,5,5,134,235,192,0,0,0,5,5,155,240,5,5,154,240,5,5,139,230,192,0,0,0,5,5,150,231,5,5,160,226,5,5,182,226,192,0,0,0,5,5,156,240,192,0,0,0,5,5,0,157,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,231,5,5,157,240,192,0,0,0,5,5,200,247,5,5,158,240,5,5,117,228,192,0,0,0,5,5,159,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,240,5,5,144,227,5,5,162,240,192,0,0,0,5,5,163,240,5,5,164,240,5,5,125,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,228,192,0,0,0,192,0,0,0,5,5,59,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,235,5,5,182,230,5,5,165,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,231,5,5,128,248,5,5,192,234,192,0,0,0,5,5,88,230,192,0,0,0,5,5,125,229,5,5,166,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,232,192,0,0,0,5,5,67,235,192,0,0,0,192,0,0,0,5,5,151,232,192,0,0,0,192,0,0,0,5,5,169,240,192,0,0,0,192,0,0,0,5,5,167,240,192,0,0,0,5,5,170,240,192,0,0,0,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,235,192,0,0,0,192,0,0,0,5,5,0,149,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,235,192,0,0,0,192,0,0,0,5,5,193,234,192,0,0,0,192,0,0,0,5,5,172,240,192,0,0,0,5,5,175,240,5,5,223,230,5,5,145,227,192,0,0,0,5,5,173,240,5,5,180,240,5,5,224,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,240,5,5,68,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,236,5,5,176,240,5,5,177,240,5,5,181,240,5,5,172,233,5,5,178,240,5,5,5,229,5,5,198,231,192,0,0,0,192,0,0,0,5,5,195,240,5,5,146,234,192,0,0,0,5,5,152,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,234,5,5,10,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,235,192,0,0,0,5,5,184,240,5,5,91,226,5,5,238,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,240,192,0,0,0,192,0,0,0,5,5,184,232,5,5,187,240,5,5,194,240,5,5,189,240,5,5,196,240,5,5,192,240,192,0,0,0,5,5,191,240,5,5,111,234,192,0,0,0,5,5,185,240,5,5,183,226,5,5,183,240,5,5,199,227,5,5,153,232,5,5,179,240,192,0,0,0,192,0,0,0,5,5,182,240,5,5,6,229,5,5,195,231,192,0,0,0,5,5,225,230,5,5,190,240,5,5,82,234,192,0,0,0,192,0,0,0,5,5,200,227,5,5,224,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,226,5,5,43,231,5,5,198,240,5,5,203,240,192,0,0,0,5,5,199,240,192,0,0,0,5,5,145,228,192,0,0,0,5,5,204,240,5,5,176,229,5,5,59,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,230,5,5,186,240,192,0,0,0,5,5,13,230,5,5,201,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,229,5,5,202,240,5,5,0,162,192,0,0,0,192,0,0,0,5,5,197,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,240,5,5,0,133,192,0,0,0,192,0,0,0,5,5,115,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,233,192,0,0,0,192,0,0,0,5,5,178,234,5,5,206,240,5,5,38,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,232,192,0,0,0,192,0,0,0,5,5,185,229,5,5,207,240,192,0,0,0,5,5,209,240,5,5,205,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,235,192,0,0,0,5,5,33,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,235,5,5,60,230,5,5,221,240,192,0,0,0,5,5,220,240,192,0,0,0,192,0,0,0,5,5,130,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,240,5,5,227,230,192,0,0,0,192,0,0,0,5,5,10,234,5,5,49,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,240,192,0,0,0,192,0,0,0,5,5,37,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,230,5,5,217,240,192,0,0,0,192,0,0,0,5,5,226,230,192,0,0,0,5,5,211,240,5,5,216,240,192,0,0,0,192,0,0,0,5,5,83,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,240,192,0,0,0,5,5,53,228,192,0,0,0,192,0,0,0,5,5,245,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,240,5,5,193,236,5,5,126,229,5,5,185,232,5,5,215,240,192,0,0,0,5,5,196,231,192,0,0,0,5,5,7,229,5,5,110,231,5,5,66,226,5,5,4,232,5,5,213,240,5,5,155,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,228,192,0,0,0,5,5,51,233,5,5,219,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,232,192,0,0,0,192,0,0,0,5,5,222,240,192,0,0,0,5,5,224,240,192,0,0,0,192,0,0,0,5,5,93,232,5,5,230,240,192,0,0,0,5,5,225,240,192,0,0,0,192,0,0,0,5,5,227,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,234,5,5,87,233,192,0,0,0,5,5,228,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,236,5,5,49,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,140,192,0,0,0,5,5,226,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,226,192,0,0,0,5,5,229,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,232,192,0,0,0,5,5,240,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,240,192,0,0,0,192,0,0,0,5,5,231,240,5,5,238,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,240,192,0,0,0,5,5,239,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,234,5,5,173,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,240,192,0,0,0,5,5,236,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,240,192,0,0,0,5,5,218,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,240,192,0,0,0,5,5,40,236,192,0,0,0,5,5,138,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,229,5,5,247,240,192,0,0,0,5,5,246,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,233,5,5,248,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,240,192,0,0,0,5,5,45,235,192,0,0,0,5,5,69,234,5,5,177,229,192,0,0,0,5,5,217,231,192,0,0,0,5,5,202,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,226,192,0,0,0,5,5,2,241,5,5,251,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,236,5,5,4,241,192,0,0,0,192,0,0,0,5,5,254,240,192,0,0,0,5,5,255,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,240,192,0,0,0,5,5,188,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,241,192,0,0,0,5,5,252,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,241,5,5,9,241,5,5,105,233,5,5,11,241,192,0,0,0,192,0,0,0,5,5,178,229,5,5,6,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,227,192,0,0,0,192,0,0,0,5,5,12,241,192,0,0,0,5,5,5,241,5,5,16,241,192,0,0,0,5,5,15,241,192,0,0,0,5,5,14,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,241,192,0,0,0,192,0,0,0,5,5,19,241,5,5,29,231,192,0,0,0,5,5,18,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,241,5,5,237,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,241,5,5,23,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,240,5,5,25,241,5,5,13,241,192,0,0,0,192,0,0,0,5,5,231,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,241,5,5,27,241,5,5,29,241,5,5,28,241,5,5,30,241,5,5,184,226,192,0,0,0,5,5,8,229,192,0,0,0,192,0,0,0,5,5,152,235,5,5,151,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,228,192,0,0,0,192,0,0,0,5,5,32,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,241,192,0,0,0,5,5,16,235,192,0,0,0,5,5,181,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,241,5,5,33,241,5,5,84,234,5,5,36,241,5,5,233,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,241,5,5,37,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,227,5,5,196,229,192,0,0,0,192,0,0,0,5,5,248,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,231,192,0,0,0,5,5,39,241,192,0,0,0,5,5,152,231,5,5,106,233,192,0,0,0,5,5,29,235,5,5,40,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,241,5,5,42,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,235,5,5,96,239,5,5,174,231,192,0,0,0,192,0,0,0,5,5,10,235,192,0,0,0,5,5,136,229,192,0,0,0,5,5,195,234,5,5,161,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,233,192,0,0,0,5,5,215,236,192,0,0,0,5,5,44,241,5,5,62,230,192,0,0,0,192,0,0,0,5,5,45,241,192,0,0,0,5,5,0,148,192,0,0,0,192,0,0,0,5,5,10,228,5,5,181,231,192,0,0,0,5,5,30,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,241,5,5,208,229,5,5,203,232,192,0,0,0,5,5,233,229,5,5,65,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,241,192,0,0,0,5,5,153,235,192,0,0,0,192,0,0,0,5,5,83,226,5,5,234,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,241,192,0,0,0,5,5,48,241,5,5,51,241,5,5,207,236,5,5,49,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,231,5,5,52,241,192,0,0,0,192,0,0,0,5,5,88,232,192,0,0,0,192,0,0,0,5,5,53,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,227,192,0,0,0,5,5,55,241,192,0,0,0,5,5,54,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,241,5,5,57,241,5,5,115,227,192,0,0,0,192,0,0,0,5,5,30,234,5,5,186,232,5,5,194,227,5,5,235,229,5,5,41,232,192,0,0,0,192,0,0,0,5,5,168,230,5,5,0,142,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,226,5,5,62,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,229,5,5,61,241,192,0,0,0,192,0,0,0,5,5,91,229,5,5,228,230,192,0,0,0,192,0,0,0,5,5,60,241,192,0,0,0,5,5,229,230,192,0,0,0,5,5,26,236,5,5,90,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,181,5,5,182,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,241,192,0,0,0,192,0,0,0,5,5,153,231,5,5,35,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,230,192,0,0,0,5,5,224,235,5,5,162,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,230,192,0,0,0,5,5,143,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,241,5,5,64,241,5,5,65,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,232,192,0,0,0,192,0,0,0,5,5,97,241,192,0,0,0,5,5,71,241,5,5,14,230,5,5,10,229,5,5,69,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,241,192,0,0,0,5,5,66,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,241,192,0,0,0,192,0,0,0,5,5,189,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,241,5,5,72,241,5,5,77,241,192,0,0,0,192,0,0,0,5,5,78,241,192,0,0,0,5,5,74,241,192,0,0,0,5,5,186,226,5,5,75,241,5,5,76,241,5,5,179,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,235,5,5,94,228,5,5,79,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,231,192,0,0,0,5,5,231,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,227,192,0,0,0,5,5,80,241,5,5,84,241,192,0,0,0,192,0,0,0,5,5,133,226,5,5,81,241,5,5,83,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,241,192,0,0,0,192,0,0,0,5,5,183,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,232,5,5,0,163,5,5,85,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,229,192,0,0,0,192,0,0,0,5,5,135,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,241,5,5,88,241,192,0,0,0,192,0,0,0,5,5,91,241,192,0,0,0,5,5,90,241,192,0,0,0,192,0,0,0,5,5,87,241,192,0,0,0,192,0,0,0,5,5,92,241,192,0,0,0,192,0,0,0,5,5,254,233,192,0,0,0,5,5,89,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,241,192,0,0,0,192,0,0,0,5,5,184,230,5,5,95,241,192,0,0,0,5,5,131,236,5,5,120,234,192,0,0,0,192,0,0,0,5,5,96,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,241,192,0,0,0,192,0,0,0,5,5,99,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,241,192,0,0,0,5,5,254,227,5,5,36,226,5,5,11,229,5,5,101,241,192,0,0,0,5,5,102,241,5,5,189,230,5,5,42,232,192,0,0,0,192,0,0,0,5,5,63,238,5,5,6,232,5,5,5,232,5,5,126,232,5,5,119,229,192,0,0,0,192,0,0,0,5,5,155,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,228,5,5,101,236,192,0,0,0,5,5,154,235,192,0,0,0,5,5,60,235,192,0,0,0,5,5,103,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,229,5,5,35,233,5,5,104,241,5,5,37,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,235,192,0,0,0,5,5,15,233,5,5,105,241,5,5,116,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,241,5,5,107,241,5,5,52,236,192,0,0,0,5,5,252,235,5,5,240,235,5,5,214,235,5,5,179,229,5,5,109,241,192,0,0,0,192,0,0,0,5,5,89,230,192,0,0,0,192,0,0,0,5,5,203,235,192,0,0,0,5,5,111,241,5,5,114,241,5,5,113,241,192,0,0,0,5,5,113,227,192,0,0,0,192,0,0,0,5,5,182,227,192,0,0,0,5,5,110,241,192,0,0,0,5,5,112,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,241,192,0,0,0,192,0,0,0,5,5,131,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,236,5,5,0,167,5,5,144,229,5,5,98,232,192,0,0,0,5,5,75,230,192,0,0,0,192,0,0,0,5,5,31,231,192,0,0,0,192,0,0,0,5,5,118,241,192,0,0,0,192,0,0,0,5,5,144,233,192,0,0,0,5,5,116,241,5,5,81,232,5,5,117,241,5,5,30,231,5,5,55,236,5,5,119,241,5,5,120,241,5,5,160,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,241,192,0,0,0,192,0,0,0,5,5,12,229,192,0,0,0,5,5,85,234,5,5,122,241,5,5,174,233,5,5,59,241,5,5,63,241,192,0,0,0,5,5,165,227,192,0,0,0,5,5,71,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,241,192,0,0,0,5,5,232,230,5,5,162,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,241,192,0,0,0,5,5,216,234,192,0,0,0,5,5,121,241,192,0,0,0,5,5,127,241,5,5,126,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,235,192,0,0,0,5,5,233,236,192,0,0,0,192,0,0,0,5,5,225,235,192,0,0,0,5,5,134,226,5,5,236,229,192,0,0,0,192,0,0,0,5,5,62,237,5,5,129,241,5,5,127,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,241,192,0,0,0,192,0,0,0,5,5,123,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,241,5,5,133,241,192,0,0,0,5,5,135,226,5,5,131,241,5,5,137,241,5,5,143,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,232,192,0,0,0,192,0,0,0,5,5,93,235,192,0,0,0,5,5,145,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,241,5,5,112,234,5,5,185,235,5,5,51,227,192,0,0,0,5,5,223,231,5,5,140,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,233,192,0,0,0,5,5,102,236,192,0,0,0,192,0,0,0,5,5,140,241,5,5,139,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,241,192,0,0,0,5,5,138,241,192,0,0,0,192,0,0,0,5,5,146,241,192,0,0,0,5,5,136,241,192,0,0,0,192,0,0,0,5,5,134,241,192,0,0,0,5,5,142,241,5,5,132,241,192,0,0,0,5,5,240,232,192,0,0,0,5,5,82,236,5,5,52,230,5,5,164,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,229,192,0,0,0,192,0,0,0,5,5,233,235,5,5,217,226,192,0,0,0,192,0,0,0,5,5,50,233,5,5,234,233,5,5,37,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,231,192,0,0,0,192,0,0,0,5,5,156,231,5,5,62,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,241,192,0,0,0,192,0,0,0,5,5,13,229,5,5,22,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,241,5,5,14,227,5,5,156,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,241,192,0,0,0,5,5,219,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,226,5,5,92,229,192,0,0,0,192,0,0,0,5,5,226,226,5,5,127,229,192,0,0,0,192,0,0,0,5,5,151,241,5,5,121,228,5,5,95,228,5,5,175,233,192,0,0,0,192,0,0,0,5,5,149,241,192,0,0,0,5,5,0,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,241,5,5,154,241,192,0,0,0,5,5,3,228,5,5,64,228,192,0,0,0,5,5,52,227,5,5,161,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,241,192,0,0,0,192,0,0,0,5,5,169,229,5,5,235,235,192,0,0,0,5,5,197,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,241,192,0,0,0,5,5,109,226,5,5,159,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,241,5,5,160,241,192,0,0,0,5,5,216,236,192,0,0,0,5,5,167,241,192,0,0,0,5,5,95,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,241,192,0,0,0,5,5,162,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,146,5,5,164,241,192,0,0,0,192,0,0,0,5,5,14,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,241,192,0,0,0,5,5,165,241,192,0,0,0,5,5,161,241,5,5,172,241,192,0,0,0,5,5,233,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,239,5,5,218,228,5,5,180,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,241,192,0,0,0,5,5,88,233,5,5,187,226,5,5,93,229,192,0,0,0,5,5,155,241,192,0,0,0,5,5,171,241,5,5,249,226,192,0,0,0,192,0,0,0,5,5,169,241,5,5,173,241,192,0,0,0,5,5,176,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,227,192,0,0,0,5,5,203,241,192,0,0,0,192,0,0,0,5,5,35,236,5,5,178,241,5,5,117,227,192,0,0,0,5,5,185,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,235,192,0,0,0,5,5,186,241,5,5,188,241,192,0,0,0,5,5,192,241,5,5,180,241,192,0,0,0,5,5,174,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,233,5,5,196,241,5,5,183,241,192,0,0,0,5,5,193,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,231,5,5,197,241,192,0,0,0,192,0,0,0,5,5,155,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,241,5,5,53,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,237,5,5,177,241,192,0,0,0,192,0,0,0,5,5,191,241,5,5,0,182,192,0,0,0,192,0,0,0,5,5,179,241,192,0,0,0,192,0,0,0,5,5,20,236,5,5,184,241,5,5,44,231,5,5,43,233,5,5,174,241,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,231,5,5,200,241,5,5,11,227,5,5,147,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,241,5,5,181,241,5,5,201,241,192,0,0,0,5,5,194,241,5,5,182,241,192,0,0,0,5,5,198,241,192,0,0,0,5,5,199,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,233,192,0,0,0,5,5,189,241,192,0,0,0,192,0,0,0,5,5,212,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,241,192,0,0,0,5,5,60,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,235,5,5,209,241,5,5,112,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,241,5,5,7,232,192,0,0,0,5,5,206,241,5,5,219,241,5,5,218,241,192,0,0,0,5,5,17,234,5,5,217,241,5,5,12,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,241,5,5,208,241,192,0,0,0,5,5,252,227,5,5,211,241,5,5,169,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,234,5,5,213,241,5,5,255,227,192,0,0,0,5,5,205,241,5,5,207,241,5,5,204,241,192,0,0,0,192,0,0,0,5,5,38,237,5,5,242,226,5,5,210,241,192,0,0,0,192,0,0,0,5,5,220,241,5,5,205,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,226,192,0,0,0,192,0,0,0,5,5,237,241,192,0,0,0,192,0,0,0,5,5,39,237,5,5,240,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,231,5,5,239,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,241,192,0,0,0,192,0,0,0,5,5,252,241,5,5,222,241,192,0,0,0,5,5,241,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,241,192,0,0,0,192,0,0,0,5,5,228,241,5,5,225,241,192,0,0,0,5,5,226,241,192,0,0,0,5,5,234,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,250,192,0,0,0,192,0,0,0,5,5,231,241,5,5,15,229,5,5,44,233,5,5,44,232,5,5,229,241,192,0,0,0,5,5,224,241,192,0,0,0,192,0,0,0,5,5,227,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,236,5,5,228,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,241,5,5,242,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,241,5,5,243,241,192,0,0,0,192,0,0,0,5,5,2,242,192,0,0,0,5,5,254,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,241,192,0,0,0,5,5,52,233,192,0,0,0,5,5,45,232,192,0,0,0,5,5,246,241,192,0,0,0,192,0,0,0,5,5,244,241,192,0,0,0,192,0,0,0,5,5,251,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,242,5,5,211,234,5,5,9,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,242,5,5,7,242,5,5,255,241,192,0,0,0,192,0,0,0,5,5,248,232,192,0,0,0,5,5,244,234,192,0,0,0,5,5,245,241,192,0,0,0,192,0,0,0,5,5,253,241,5,5,234,230,192,0,0,0,5,5,41,236,5,5,19,242,5,5,6,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,228,5,5,93,226,5,5,247,226,192,0,0,0,192,0,0,0,5,5,236,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,230,5,5,11,242,192,0,0,0,5,5,18,242,5,5,103,230,5,5,12,227,192,0,0,0,192,0,0,0,5,5,178,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,242,192,0,0,0,192,0,0,0,5,5,13,242,5,5,17,242,192,0,0,0,192,0,0,0,5,5,234,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,227,5,5,15,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,227,192,0,0,0,5,5,235,233,5,5,14,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,226,5,5,205,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,242,5,5,219,228,192,0,0,0,5,5,20,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,242,192,0,0,0,5,5,24,242,5,5,25,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,242,192,0,0,0,5,5,33,242,192,0,0,0,5,5,168,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,242,192,0,0,0,192,0,0,0,5,5,28,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,242,5,5,30,242,5,5,29,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,242,192,0,0,0,5,5,28,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,242,5,5,49,228,192,0,0,0,192,0,0,0,5,5,34,242,5,5,36,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,234,192,0,0,0,5,5,39,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,242,5,5,40,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,236,5,5,41,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,226,192,0,0,0,5,5,47,242,5,5,123,228,5,5,15,230,192,0,0,0,5,5,11,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,242,5,5,48,242,5,5,51,242,5,5,147,227,192,0,0,0,192,0,0,0,5,5,12,228,5,5,54,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,242,192,0,0,0,5,5,55,242,192,0,0,0,192,0,0,0,5,5,136,226,192,0,0,0,5,5,187,232,192,0,0,0,5,5,56,242,192,0,0,0,192,0,0,0,5,5,55,227,5,5,58,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,242,192,0,0,0,5,5,59,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,242,192,0,0,0,5,5,61,242,5,5,237,229,5,5,157,231,5,5,81,229,192,0,0,0,5,5,46,235,192,0,0,0,192,0,0,0,5,5,126,235,5,5,58,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,229,5,5,10,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,242,5,5,63,242,192,0,0,0,5,5,238,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,242,5,5,65,242,192,0,0,0,192,0,0,0,5,5,67,242,5,5,66,242,192,0,0,0,5,5,210,235,192,0,0,0,192,0,0,0,5,5,170,230,5,5,90,230,5,5,210,229,192,0,0,0,5,5,68,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,242,5,5,45,231,192,0,0,0,5,5,69,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,242,5,5,74,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,242,192,0,0,0,5,5,77,242,5,5,76,242,5,5,78,242,5,5,95,226,5,5,206,232,192,0,0,0,5,5,79,242,192,0,0,0,192,0,0,0,5,5,180,229,5,5,228,226,5,5,80,242,192,0,0,0,192,0,0,0,5,5,132,233,5,5,239,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,227,5,5,81,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,242,192,0,0,0,5,5,136,235,5,5,226,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,233,5,5,83,242,5,5,196,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,234,192,0,0,0,192,0,0,0,5,5,45,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,242,5,5,85,242,192,0,0,0,192,0,0,0,5,5,88,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,229,192,0,0,0,5,5,11,236,192,0,0,0,5,5,91,242,5,5,92,242,192,0,0,0,192,0,0,0,5,5,122,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,242,5,5,94,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,231,192,0,0,0,192,0,0,0,5,5,245,234,5,5,38,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,234,192,0,0,0,5,5,89,233,5,5,141,230,5,5,183,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,234,192,0,0,0,5,5,28,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,242,192,0,0,0,5,5,56,227,192,0,0,0,192,0,0,0,5,5,84,226,192,0,0,0,192,0,0,0,5,5,20,234,5,5,96,242,5,5,16,229,5,5,215,232,192,0,0,0,5,5,98,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,242,192,0,0,0,5,5,99,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,232,192,0,0,0,5,5,184,227,5,5,107,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,228,192,0,0,0,192,0,0,0,5,5,123,227,5,5,105,242,192,0,0,0,192,0,0,0,5,5,103,242,5,5,100,242,5,5,152,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,233,5,5,101,242,192,0,0,0,192,0,0,0,5,5,109,242,192,0,0,0,5,5,108,242,5,5,55,228,192,0,0,0,192,0,0,0,5,5,103,226,192,0,0,0,192,0,0,0,5,5,107,229,5,5,102,242,5,5,104,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,235,5,5,154,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,235,192,0,0,0,192,0,0,0,5,5,117,242,192,0,0,0,192,0,0,0,5,5,118,242,192,0,0,0,5,5,137,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,235,5,5,87,236,5,5,120,242,5,5,17,230,5,5,236,230,5,5,113,242,5,5,119,242,5,5,68,226,192,0,0,0,5,5,235,227,192,0,0,0,192,0,0,0,5,5,110,242,5,5,115,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,231,5,5,113,234,192,0,0,0,5,5,197,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,242,192,0,0,0,5,5,155,235,192,0,0,0,5,5,114,242,192,0,0,0,5,5,123,242,192,0,0,0,5,5,121,242,192,0,0,0,5,5,116,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,235,5,5,72,234,5,5,185,227,192,0,0,0,5,5,103,233,192,0,0,0,192,0,0,0,5,5,241,232,192,0,0,0,5,5,124,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,242,5,5,127,232,5,5,111,242,192,0,0,0,5,5,39,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,236,5,5,135,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,231,192,0,0,0,5,5,131,242,192,0,0,0,5,5,164,236,192,0,0,0,192,0,0,0,5,5,214,233,5,5,125,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,226,5,5,17,229,5,5,128,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,230,5,5,133,242,192,0,0,0,5,5,132,242,5,5,127,242,192,0,0,0,5,5,130,242,192,0,0,0,192,0,0,0,5,5,2,227,192,0,0,0,5,5,129,242,5,5,73,234,192,0,0,0,192,0,0,0,5,5,196,236,192,0,0,0,192,0,0,0,5,5,32,231,5,5,221,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,242,5,5,139,242,192,0,0,0,5,5,11,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,242,5,5,138,242,192,0,0,0,5,5,22,226,192,0,0,0,192,0,0,0,5,5,18,229,5,5,40,237,192,0,0,0,5,5,213,226,192,0,0,0,5,5,32,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,236,192,0,0,0,192,0,0,0,5,5,188,226,5,5,69,231,5,5,140,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,242,192,0,0,0,192,0,0,0,5,5,237,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,236,192,0,0,0,5,5,142,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,242,192,0,0,0,5,5,143,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,236,192,0,0,0,5,5,181,233,5,5,226,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,226,192,0,0,0,192,0,0,0,5,5,49,226,192,0,0,0,192,0,0,0,5,5,149,242,192,0,0,0,192,0,0,0,5,5,152,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,242,5,5,153,242,5,5,150,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,236,5,5,156,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,230,5,5,158,242,192,0,0,0,192,0,0,0,5,5,163,242,192,0,0,0,192,0,0,0,5,5,179,233,5,5,161,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,242,192,0,0,0,192,0,0,0,5,5,188,232,192,0,0,0,192,0,0,0,5,5,162,242,192,0,0,0,5,5,151,242,192,0,0,0,5,5,157,242,192,0,0,0,5,5,164,242,5,5,0,218,5,5,154,242,192,0,0,0,5,5,165,242,192,0,0,0,192,0,0,0,5,5,70,231,192,0,0,0,5,5,171,230,192,0,0,0,5,5,65,235,192,0,0,0,5,5,94,229,192,0,0,0,5,5,146,242,5,5,160,242,5,5,124,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,231,192,0,0,0,5,5,3,227,5,5,129,229,5,5,238,230,5,5,148,242,5,5,142,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,228,192,0,0,0,5,5,147,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,242,5,5,185,230,5,5,172,228,192,0,0,0,5,5,184,242,192,0,0,0,5,5,178,242,5,5,202,227,5,5,145,233,192,0,0,0,5,5,173,242,5,5,182,242,5,5,0,141,5,5,14,226,192,0,0,0,192,0,0,0,5,5,115,226,192,0,0,0,5,5,175,242,5,5,82,232,5,5,166,242,5,5,168,242,5,5,19,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,242,192,0,0,0,5,5,180,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,236,192,0,0,0,192,0,0,0,5,5,177,242,5,5,181,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,228,192,0,0,0,5,5,239,230,192,0,0,0,192,0,0,0,5,5,189,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,242,192,0,0,0,192,0,0,0,5,5,167,242,5,5,180,233,192,0,0,0,192,0,0,0,5,5,170,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,237,5,5,44,230,5,5,248,235,192,0,0,0,5,5,186,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,234,192,0,0,0,192,0,0,0,5,5,198,242,5,5,173,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,230,192,0,0,0,5,5,188,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,236,5,5,20,229,192,0,0,0,5,5,201,242,192,0,0,0,192,0,0,0,5,5,0,204,192,0,0,0,192,0,0,0,5,5,199,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,242,192,0,0,0,192,0,0,0,5,5,195,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,236,5,5,190,242,192,0,0,0,192,0,0,0,5,5,112,233,192,0,0,0,192,0,0,0,5,5,192,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,242,192,0,0,0,5,5,194,242,5,5,33,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,242,192,0,0,0,5,5,16,230,5,5,213,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,227,192,0,0,0,5,5,191,242,5,5,196,242,5,5,197,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,232,5,5,128,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,242,192,0,0,0,192,0,0,0,5,5,211,242,192,0,0,0,192,0,0,0,5,5,209,242,192,0,0,0,5,5,107,233,192,0,0,0,192,0,0,0,5,5,216,242,5,5,206,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,242,5,5,183,242,192,0,0,0,5,5,207,227,5,5,246,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,230,192,0,0,0,192,0,0,0,5,5,73,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,237,192,0,0,0,5,5,203,242,192,0,0,0,5,5,215,242,5,5,69,226,5,5,46,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,234,192,0,0,0,5,5,57,227,5,5,18,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,235,5,5,54,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,242,5,5,212,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,242,5,5,208,242,192,0,0,0,5,5,202,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,242,192,0,0,0,192,0,0,0,5,5,223,242,5,5,224,231,192,0,0,0,192,0,0,0,5,5,251,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,230,192,0,0,0,5,5,232,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,242,5,5,16,233,5,5,222,242,5,5,61,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,242,192,0,0,0,5,5,218,242,192,0,0,0,5,5,227,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,242,5,5,220,242,5,5,226,242,192,0,0,0,5,5,137,231,192,0,0,0,5,5,217,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,242,192,0,0,0,192,0,0,0,5,5,230,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,242,192,0,0,0,5,5,234,242,5,5,236,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,233,192,0,0,0,5,5,233,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,228,5,5,159,232,5,5,231,242,5,5,59,234,192,0,0,0,192,0,0,0,5,5,238,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,242,5,5,241,242,192,0,0,0,192,0,0,0,5,5,244,242,192,0,0,0,192,0,0,0,5,5,247,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,242,5,5,60,229,5,5,40,234,192,0,0,0,192,0,0,0,5,5,144,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,236,5,5,242,242,192,0,0,0,5,5,246,242,5,5,155,232,192,0,0,0,5,5,245,242,192,0,0,0,5,5,224,242,192,0,0,0,192,0,0,0,5,5,12,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,242,192,0,0,0,192,0,0,0,5,5,252,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,242,192,0,0,0,5,5,249,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,242,192,0,0,0,5,5,251,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,235,192,0,0,0,192,0,0,0,5,5,5,243,192,0,0,0,5,5,2,243,5,5,255,242,192,0,0,0,5,5,4,243,5,5,244,233,5,5,6,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,232,5,5,147,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,243,192,0,0,0,5,5,9,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,233,5,5,189,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,230,5,5,130,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,237,5,5,112,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,243,5,5,190,232,5,5,19,243,5,5,14,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,243,5,5,130,233,5,5,0,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,237,192,0,0,0,192,0,0,0,5,5,21,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,243,192,0,0,0,5,5,20,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,243,5,5,78,235,192,0,0,0,5,5,26,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,237,192,0,0,0,192,0,0,0,5,5,33,243,192,0,0,0,5,5,225,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,243,5,5,34,243,192,0,0,0,192,0,0,0,5,5,72,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,243,192,0,0,0,5,5,97,234,5,5,28,243,5,5,31,243,5,5,242,230,192,0,0,0,5,5,175,234,192,0,0,0,192,0,0,0,5,5,35,243,192,0,0,0,5,5,63,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,243,192,0,0,0,5,5,59,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,236,5,5,39,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,233,5,5,46,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,243,192,0,0,0,5,5,235,236,192,0,0,0,5,5,45,243,192,0,0,0,5,5,47,243,5,5,73,226,192,0,0,0,5,5,42,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,238,5,5,49,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,232,5,5,198,229,5,5,51,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,243,5,5,46,231,5,5,64,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,243,192,0,0,0,5,5,37,243,5,5,53,243,192,0,0,0,192,0,0,0,5,5,55,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,243,192,0,0,0,192,0,0,0,5,5,57,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,243,192,0,0,0,5,5,66,233,192,0,0,0,5,5,61,243,5,5,60,243,192,0,0,0,192,0,0,0,5,5,62,243,192,0,0,0,5,5,63,243,192,0,0,0,192,0,0,0,5,5,77,230,5,5,33,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,236,5,5,64,243,5,5,65,243,5,5,30,232,5,5,18,230,5,5,66,243,5,5,67,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,243,5,5,110,235,5,5,165,234,192,0,0,0,192,0,0,0,5,5,69,243,5,5,87,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,243,5,5,161,226,192,0,0,0,5,5,195,227,192,0,0,0,5,5,32,236,192,0,0,0,5,5,16,236,192,0,0,0,5,5,110,226,5,5,42,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,235,192,0,0,0,5,5,70,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,231,192,0,0,0,5,5,71,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,228,5,5,72,243,192,0,0,0,5,5,132,229,5,5,74,243,5,5,73,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,227,192,0,0,0,5,5,78,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,228,192,0,0,0,192,0,0,0,5,5,166,234,192,0,0,0,192,0,0,0,5,5,81,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,231,192,0,0,0,192,0,0,0,5,5,80,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,227,5,5,82,243,5,5,84,243,192,0,0,0,5,5,83,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,243,192,0,0,0,5,5,195,228,192,0,0,0,5,5,86,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,228,192,0,0,0,5,5,8,232,192,0,0,0,5,5,79,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,243,5,5,89,243,5,5,87,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,230,192,0,0,0,192,0,0,0,5,5,232,233,5,5,237,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,243,5,5,176,232,5,5,90,243,192,0,0,0,192,0,0,0,5,5,43,237,5,5,98,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,243,5,5,93,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,236,5,5,95,243,5,5,97,243,192,0,0,0,5,5,218,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,243,5,5,250,232,5,5,45,234,192,0,0,0,192,0,0,0,5,5,151,228,5,5,99,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,243,192,0,0,0,5,5,105,236,5,5,106,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,243,5,5,74,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,229,5,5,240,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,243,5,5,104,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,243,192,0,0,0,5,5,107,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,243,192,0,0,0,5,5,229,226,192,0,0,0,192,0,0,0,5,5,111,243,192,0,0,0,192,0,0,0,5,5,110,243,192,0,0,0,5,5,113,243,5,5,112,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,5,5,190,236,192,0,0,0,5,5,2,228,192,0,0,0,5,5,96,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,236,5,5,115,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,243,192,0,0,0,5,5,139,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,243,192,0,0,0,5,5,199,229,192,0,0,0,192,0,0,0,5,5,37,233,5,5,116,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,243,192,0,0,0,5,5,92,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,228,192,0,0,0,192,0,0,0,5,5,167,234,5,5,120,243,192,0,0,0,192,0,0,0,5,5,147,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,227,192,0,0,0,5,5,123,243,5,5,181,236,192,0,0,0,192,0,0,0,5,5,198,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,232,192,0,0,0,192,0,0,0,5,5,125,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,243,5,5,236,236,5,5,13,228,5,5,218,234,5,5,74,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,243,192,0,0,0,5,5,133,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,243,5,5,220,228,5,5,41,226,5,5,134,243,192,0,0,0,5,5,122,231,5,5,131,243,5,5,242,236,192,0,0,0,192,0,0,0,5,5,137,243,5,5,159,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,243,5,5,138,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,243,5,5,136,243,192,0,0,0,192,0,0,0,5,5,108,229,192,0,0,0,192,0,0,0,5,5,139,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,243,192,0,0,0,5,5,247,234,5,5,149,243,192,0,0,0,192,0,0,0,5,5,28,227,5,5,150,243,192,0,0,0,5,5,151,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,243,192,0,0,0,5,5,154,243,5,5,155,243,5,5,153,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,235,5,5,157,243,5,5,156,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,243,5,5,158,243,5,5,160,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,243,5,5,163,243,5,5,162,243,192,0,0,0,192,0,0,0,5,5,75,229,192,0,0,0,5,5,165,243,192,0,0,0,5,5,164,243,192,0,0,0,192,0,0,0,5,5,61,227,192,0,0,0,5,5,93,231,192,0,0,0,5,5,126,233,192,0,0,0,5,5,166,243,5,5,160,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,229,192,0,0,0,5,5,85,226,5,5,167,243,192,0,0,0,5,5,137,236,192,0,0,0,192,0,0,0,5,5,127,235,5,5,168,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,233,5,5,107,236,5,5,21,229,5,5,71,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,232,5,5,27,238,192,0,0,0,5,5,18,233,5,5,162,226,5,5,169,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,243,192,0,0,0,5,5,175,243,192,0,0,0,192,0,0,0,5,5,173,243,5,5,172,243,5,5,31,241,5,5,190,226,5,5,171,243,192,0,0,0,5,5,0,184,192,0,0,0,5,5,136,234,192,0,0,0,192,0,0,0,5,5,168,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,236,5,5,176,243,5,5,174,243,5,5,224,232,5,5,142,231,192,0,0,0,192,0,0,0,5,5,137,234,192,0,0,0,5,5,233,234,192,0,0,0,5,5,178,243,5,5,194,236,5,5,97,228,5,5,179,243,192,0,0,0,5,5,177,243,5,5,180,234,5,5,180,243,192,0,0,0,5,5,181,243,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,192,0,0,0,5,5,34,231,5,5,186,243,192,0,0,0,5,5,183,243,5,5,15,234,5,5,182,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,227,192,0,0,0,192,0,0,0,5,5,189,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,243,5,5,185,243,192,0,0,0,5,5,188,243,5,5,187,243,5,5,225,234,192,0,0,0,192,0,0,0,5,5,10,232,5,5,9,232,192,0,0,0,5,5,149,227,192,0,0,0,192,0,0,0,5,5,190,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,243,192,0,0,0,192,0,0,0,5,5,192,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,243,192,0,0,0,5,5,193,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,243,5,5,198,234,5,5,196,243,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,5,5,200,243,5,5,72,231,192,0,0,0,192,0,0,0,5,5,201,243,5,5,199,243,5,5,46,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,243,5,5,197,243,192,0,0,0,5,5,254,234,192,0,0,0,5,5,243,230,192,0,0,0,192,0,0,0,5,5,204,243,192,0,0,0,192,0,0,0,5,5,203,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,243,192,0,0,0,5,5,20,230,5,5,95,229,192,0,0,0,192,0,0,0,5,5,185,233,5,5,206,243,192,0,0,0,5,5,47,233,192,0,0,0,192,0,0,0,5,5,208,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,236,5,5,207,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,243,192,0,0,0,5,5,215,243,5,5,216,243,5,5,216,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,243,192,0,0,0,5,5,211,243,192,0,0,0,5,5,209,243,5,5,210,243,192,0,0,0,5,5,212,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,243,192,0,0,0,5,5,217,243,192,0,0,0,5,5,218,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,243,5,5,222,243,5,5,223,243,5,5,224,243,192,0,0,0,5,5,225,243,192,0,0,0,192,0,0,0,5,5,221,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,243,5,5,229,243,5,5,230,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,235,192,0,0,0,5,5,233,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,243,5,5,235,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,243,5,5,236,243,5,5,237,243,5,5,238,243,192,0,0,0,5,5,240,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,243,192,0,0,0,5,5,242,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,243,192,0,0,0,5,5,244,243,192,0,0,0,5,5,141,234,5,5,146,233,5,5,245,243,5,5,114,234,5,5,240,234,192,0,0,0,5,5,246,243,192,0,0,0,192,0,0,0,5,5,247,243,5,5,108,233,192,0,0,0,5,5,191,226,5,5,22,229,5,5,248,243,192,0,0,0,192,0,0,0,5,5,249,243,192,0,0,0,192,0,0,0,5,5,250,243,192,0,0,0,5,5,183,229,192,0,0,0,192,0,0,0,5,5,252,243,192,0,0,0,192,0,0,0,5,5,251,243,192,0,0,0,192,0,0,0,5,5,253,243,5,5,254,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,234,192,0,0,0,5,5,255,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,244,192,0,0,0,192,0,0,0,5,5,134,250,5,5,3,244,5,5,4,244,5,5,5,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,229,192,0,0,0,192,0,0,0,5,5,6,244,5,5,86,234,192,0,0,0,192,0,0,0,5,5,217,235,192,0,0,0,5,5,42,226,192,0,0,0,5,5,51,226,192,0,0,0,192,0,0,0,5,5,7,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,244,5,5,178,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,231,5,5,50,242,192,0,0,0,5,5,10,244,5,5,27,236,192,0,0,0,5,5,11,244,192,0,0,0,5,5,62,227,5,5,181,234,5,5,12,244,192,0,0,0,5,5,13,244,192,0,0,0,192,0,0,0,5,5,14,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,236,192,0,0,0,5,5,34,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,232,192,0,0,0,192,0,0,0,5,5,16,244,192,0,0,0,192,0,0,0,5,5,174,230,192,0,0,0,192,0,0,0,5,5,244,230,192,0,0,0,192,0,0,0,5,5,19,244,192,0,0,0,192,0,0,0,5,5,18,244,5,5,17,244,5,5,219,234,192,0,0,0,5,5,63,227,5,5,155,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,244,192,0,0,0,192,0,0,0,5,5,22,244,5,5,73,231,5,5,12,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,244,5,5,23,244,5,5,24,244,192,0,0,0,192,0,0,0,5,5,20,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,244,5,5,27,244,192,0,0,0,5,5,19,233,192,0,0,0,5,5,91,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,244,5,5,32,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,231,192,0,0,0,5,5,228,233,192,0,0,0,5,5,33,244,5,5,205,235,192,0,0,0,5,5,30,244,192,0,0,0,192,0,0,0,5,5,31,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,244,5,5,34,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,244,192,0,0,0,192,0,0,0,5,5,37,244,192,0,0,0,192,0,0,0,5,5,39,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,244,192,0,0,0,5,5,40,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,230,5,5,220,236,192,0,0,0,192,0,0,0,5,5,42,244,192,0,0,0,192,0,0,0,5,5,215,233,192,0,0,0,192,0,0,0,5,5,43,244,192,0,0,0,192,0,0,0,5,5,44,244,192,0,0,0,5,5,48,244,5,5,46,244,5,5,47,244,192,0,0,0,5,5,45,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,244,192,0,0,0,192,0,0,0,5,5,52,244,5,5,17,236,5,5,53,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,236,5,5,54,244,192,0,0,0,5,5,210,232,192,0,0,0,5,5,106,234,192,0,0,0,5,5,33,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,232,5,5,55,244,5,5,238,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,244,192,0,0,0,5,5,152,228,5,5,133,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,233,5,5,134,229,5,5,164,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,235,192,0,0,0,5,5,75,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,236,5,5,23,229,192,0,0,0,192,0,0,0,5,5,153,228,192,0,0,0,192,0,0,0,5,5,129,234,192,0,0,0,5,5,64,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,244,5,5,90,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,244,5,5,207,226,5,5,63,244,192,0,0,0,192,0,0,0,5,5,200,234,192,0,0,0,5,5,12,226,192,0,0,0,5,5,156,229,192,0,0,0,5,5,72,237,192,0,0,0,192,0,0,0,5,5,67,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,235,192,0,0,0,5,5,193,231,5,5,71,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,226,192,0,0,0,5,5,78,244,192,0,0,0,5,5,77,244,192,0,0,0,192,0,0,0,5,5,21,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,244,5,5,74,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,244,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,234,5,5,73,244,192,0,0,0,192,0,0,0,5,5,76,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,244,5,5,219,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,244,192,0,0,0,192,0,0,0,5,5,0,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,232,192,0,0,0,192,0,0,0,5,5,88,244,5,5,87,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,244,5,5,91,244,5,5,90,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,230,192,0,0,0,5,5,255,236,192,0,0,0,5,5,64,230,192,0,0,0,5,5,92,244,5,5,75,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,227,5,5,125,227,5,5,241,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,236,192,0,0,0,192,0,0,0,5,5,98,244,192,0,0,0,5,5,97,244,5,5,12,232,5,5,94,244,192,0,0,0,192,0,0,0,5,5,96,244,192,0,0,0,192,0,0,0,5,5,151,230,5,5,74,231,5,5,95,244,5,5,93,244,192,0,0,0,5,5,42,234,192,0,0,0,192,0,0,0,5,5,247,230,192,0,0,0,192,0,0,0,5,5,248,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,233,192,0,0,0,192,0,0,0,5,5,99,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,244,5,5,122,244,5,5,14,228,192,0,0,0,192,0,0,0,5,5,51,237,5,5,251,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,244,192,0,0,0,192,0,0,0,5,5,140,226,5,5,91,233,5,5,61,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,227,5,5,103,244,192,0,0,0,192,0,0,0,5,5,105,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,244,192,0,0,0,5,5,41,234,192,0,0,0,192,0,0,0,5,5,107,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,244,5,5,109,244,192,0,0,0,192,0,0,0,5,5,15,228,5,5,141,226,5,5,229,233,5,5,116,230,5,5,242,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,244,192,0,0,0,5,5,117,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,226,5,5,255,234,192,0,0,0,192,0,0,0,5,5,111,244,192,0,0,0,192,0,0,0,5,5,201,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,232,192,0,0,0,5,5,114,244,192,0,0,0,5,5,115,244,5,5,105,234,192,0,0,0,5,5,75,231,5,5,112,244,192,0,0,0,5,5,229,232,192,0,0,0,192,0,0,0,5,5,113,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,244,192,0,0,0,192,0,0,0,5,5,92,233,192,0,0,0,5,5,117,244,5,5,175,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,236,192,0,0,0,192,0,0,0,5,5,223,234,5,5,118,244,5,5,119,244,5,5,217,232,192,0,0,0,5,5,221,236,192,0,0,0,192,0,0,0,5,5,121,244,5,5,120,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,230,192,0,0,0,192,0,0,0,5,5,123,244,5,5,0,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,244,5,5,142,226,5,5,98,228,5,5,125,244,5,5,24,229,5,5,68,229,192,0,0,0,5,5,130,235,5,5,127,244,192,0,0,0,192,0,0,0,5,5,206,235,192,0,0,0,192,0,0,0,5,5,129,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,231,5,5,43,226,5,5,116,226,5,5,0,138,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,244,5,5,131,244,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,244,192,0,0,0,5,5,231,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,228,192,0,0,0,5,5,188,227,192,0,0,0,192,0,0,0,5,5,135,244,5,5,43,228,192,0,0,0,192,0,0,0,5,5,136,244,192,0,0,0,5,5,228,231,192,0,0,0,5,5,237,233,192,0,0,0,5,5,200,231,5,5,165,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,232,5,5,51,232,192,0,0,0,5,5,139,244,5,5,141,244,5,5,138,244,5,5,140,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,244,5,5,58,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,227,5,5,138,236,5,5,144,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,227,5,5,147,244,5,5,146,244,192,0,0,0,5,5,150,244,5,5,143,244,192,0,0,0,5,5,151,244,5,5,191,236,192,0,0,0,5,5,152,244,192,0,0,0,5,5,153,244,192,0,0,0,192,0,0,0,5,5,25,239,5,5,155,244,192,0,0,0,5,5,154,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,244,5,5,157,244,192,0,0,0,5,5,203,236,5,5,158,244,192,0,0,0,5,5,112,249,5,5,249,230,5,5,159,244,5,5,160,244,5,5,163,230,192,0,0,0,5,5,216,233,5,5,161,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,232,192,0,0,0,192,0,0,0,5,5,162,244,192,0,0,0,5,5,192,232,5,5,163,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,227,192,0,0,0,5,5,198,237,5,5,225,232,5,5,33,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,227,192,0,0,0,192,0,0,0,5,5,164,244,192,0,0,0,5,5,177,244,192,0,0,0,5,5,167,244,192,0,0,0,5,5,190,227,192,0,0,0,5,5,166,244,5,5,179,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,244,192,0,0,0,5,5,250,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,244,5,5,170,244,192,0,0,0,5,5,109,233,192,0,0,0,192,0,0,0,5,5,171,244,192,0,0,0,5,5,246,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,231,5,5,34,235,192,0,0,0,5,5,173,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,244,192,0,0,0,5,5,172,244,5,5,174,244,192,0,0,0,192,0,0,0,5,5,171,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,244,5,5,234,234,192,0,0,0,5,5,132,234,5,5,187,233,192,0,0,0,5,5,16,228,5,5,180,244,5,5,178,244,192,0,0,0,5,5,147,234,5,5,175,244,5,5,226,232,5,5,189,233,192,0,0,0,5,5,188,233,192,0,0,0,5,5,166,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,244,192,0,0,0,5,5,185,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,244,192,0,0,0,5,5,189,244,192,0,0,0,5,5,186,244,5,5,187,244,192,0,0,0,192,0,0,0,5,5,184,244,5,5,182,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,235,5,5,143,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,244,192,0,0,0,5,5,193,244,192,0,0,0,5,5,198,244,192,0,0,0,192,0,0,0,5,5,197,244,192,0,0,0,5,5,115,234,5,5,255,235,192,0,0,0,5,5,201,229,5,5,191,244,5,5,200,244,5,5,195,244,192,0,0,0,5,5,194,244,5,5,190,244,192,0,0,0,5,5,192,244,192,0,0,0,5,5,65,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,232,192,0,0,0,192,0,0,0,5,5,229,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,234,192,0,0,0,192,0,0,0,5,5,205,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,231,5,5,202,244,192,0,0,0,192,0,0,0,5,5,173,234,192,0,0,0,5,5,206,244,5,5,111,235,192,0,0,0,5,5,223,232,192,0,0,0,5,5,201,244,5,5,203,244,192,0,0,0,192,0,0,0,5,5,204,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,244,192,0,0,0,192,0,0,0,5,5,50,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,233,5,5,212,244,5,5,211,244,192,0,0,0,192,0,0,0,5,5,208,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,244,192,0,0,0,192,0,0,0,5,5,221,244,5,5,218,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,244,5,5,60,238,5,5,216,244,5,5,210,244,192,0,0,0,192,0,0,0,5,5,219,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,244,192,0,0,0,5,5,66,227,192,0,0,0,5,5,222,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,244,192,0,0,0,192,0,0,0,5,5,224,244,5,5,227,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,244,5,5,212,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,244,5,5,20,237,5,5,137,235,5,5,233,244,192,0,0,0,192,0,0,0,5,5,230,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,244,5,5,186,231,192,0,0,0,5,5,232,244,5,5,234,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,244,192,0,0,0,5,5,238,244,192,0,0,0,5,5,235,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,244,5,5,213,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,244,5,5,239,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,235,192,0,0,0,5,5,241,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,236,192,0,0,0,192,0,0,0,5,5,4,228,5,5,61,228,5,5,242,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,235,192,0,0,0,5,5,114,231,192,0,0,0,5,5,10,236,192,0,0,0,192,0,0,0,5,5,243,244,192,0,0,0,5,5,201,236,192,0,0,0,192,0,0,0,5,5,116,234,192,0,0,0,5,5,14,232,5,5,52,234,192,0,0,0,192,0,0,0,5,5,153,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,158,192,0,0,0,5,5,248,244,5,5,246,244,192,0,0,0,5,5,244,244,5,5,25,227,192,0,0,0,5,5,251,230,5,5,249,244,192,0,0,0,192,0,0,0,5,5,247,244,192,0,0,0,5,5,245,244,5,5,253,244,192,0,0,0,192,0,0,0,5,5,252,244,5,5,251,244,5,5,250,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,244,5,5,162,231,192,0,0,0,5,5,2,245,192,0,0,0,5,5,4,245,192,0,0,0,192,0,0,0,5,5,3,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,233,192,0,0,0,5,5,5,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,245,192,0,0,0,5,5,81,235,5,5,52,232,5,5,25,229,192,0,0,0,5,5,8,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,245,192,0,0,0,192,0,0,0,5,5,11,245,192,0,0,0,5,5,12,245,192,0,0,0,5,5,13,245,192,0,0,0,5,5,243,229,192,0,0,0,5,5,14,245,5,5,99,228,192,0,0,0,192,0,0,0,5,5,192,227,192,0,0,0,5,5,128,227,192,0,0,0,5,5,16,245,192,0,0,0,5,5,77,236,5,5,26,229,5,5,15,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,245,5,5,64,236,192,0,0,0,5,5,60,234,192,0,0,0,192,0,0,0,5,5,239,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,230,5,5,18,245,192,0,0,0,5,5,65,230,5,5,27,229,5,5,244,229,5,5,191,227,5,5,82,235,5,5,17,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,232,5,5,188,235,5,5,167,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,229,5,5,65,233,192,0,0,0,5,5,22,245,5,5,245,236,5,5,137,229,192,0,0,0,5,5,23,245,5,5,76,231,192,0,0,0,5,5,25,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,230,5,5,96,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,245,192,0,0,0,192,0,0,0,5,5,118,230,5,5,176,228,5,5,16,232,5,5,20,245,5,5,26,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,245,5,5,100,228,192,0,0,0,5,5,29,245,5,5,33,245,5,5,127,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,245,192,0,0,0,192,0,0,0,5,5,28,229,192,0,0,0,192,0,0,0,5,5,165,236,5,5,0,154,5,5,34,245,192,0,0,0,192,0,0,0,5,5,193,227,192,0,0,0,5,5,31,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,245,192,0,0,0,192,0,0,0,5,5,191,233,5,5,30,245,5,5,27,245,192,0,0,0,5,5,192,226,5,5,204,231,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,228,5,5,89,232,5,5,40,245,5,5,54,232,192,0,0,0,192,0,0,0,5,5,53,245,192,0,0,0,192,0,0,0,5,5,49,245,5,5,43,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,245,5,5,104,230,5,5,0,187,5,5,42,245,5,5,50,245,5,5,54,245,5,5,29,229,5,5,48,236,192,0,0,0,5,5,58,233,5,5,44,245,192,0,0,0,192,0,0,0,5,5,52,245,192,0,0,0,5,5,41,245,5,5,194,232,192,0,0,0,5,5,46,245,5,5,0,155,5,5,36,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,245,192,0,0,0,192,0,0,0,5,5,17,228,5,5,202,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,232,192,0,0,0,5,5,230,236,5,5,187,230,192,0,0,0,192,0,0,0,5,5,93,245,192,0,0,0,192,0,0,0,5,5,55,245,192,0,0,0,5,5,230,231,192,0,0,0,5,5,51,245,5,5,56,245,5,5,58,245,192,0,0,0,5,5,93,233,5,5,61,245,192,0,0,0,192,0,0,0,5,5,57,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,235,5,5,67,227,192,0,0,0,192,0,0,0,5,5,37,236,192,0,0,0,192,0,0,0,5,5,0,188,192,0,0,0,192,0,0,0,5,5,60,245,192,0,0,0,5,5,21,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,226,192,0,0,0,192,0,0,0,5,5,14,234,5,5,62,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,245,5,5,63,245,5,5,70,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,234,192,0,0,0,192,0,0,0,5,5,56,230,5,5,68,245,192,0,0,0,5,5,65,245,5,5,71,245,5,5,64,245,192,0,0,0,192,0,0,0,5,5,144,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,235,192,0,0,0,192,0,0,0,5,5,152,230,192,0,0,0,192,0,0,0,5,5,67,245,5,5,79,245,192,0,0,0,192,0,0,0,5,5,75,245,192,0,0,0,5,5,78,245,192,0,0,0,5,5,76,245,5,5,80,245,5,5,74,245,192,0,0,0,5,5,48,245,5,5,187,231,192,0,0,0,192,0,0,0,5,5,169,234,192,0,0,0,5,5,77,245,192,0,0,0,192,0,0,0,5,5,72,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,231,5,5,102,228,192,0,0,0,5,5,119,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,231,5,5,252,231,5,5,83,245,192,0,0,0,192,0,0,0,5,5,85,245,5,5,86,245,192,0,0,0,192,0,0,0,5,5,82,245,5,5,84,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,245,5,5,81,245,192,0,0,0,5,5,89,245,5,5,88,245,192,0,0,0,192,0,0,0,5,5,244,235,192,0,0,0,192,0,0,0,5,5,63,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,245,192,0,0,0,5,5,91,245,5,5,90,245,5,5,94,245,192,0,0,0,5,5,96,245,192,0,0,0,192,0,0,0,5,5,202,229,5,5,92,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,245,5,5,98,245,192,0,0,0,192,0,0,0,5,5,99,245,192,0,0,0,5,5,105,245,5,5,125,233,5,5,101,245,192,0,0,0,5,5,100,245,5,5,102,245,5,5,103,245,192,0,0,0,5,5,104,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,245,5,5,107,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,227,192,0,0,0,5,5,108,245,192,0,0,0,5,5,109,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,245,5,5,112,245,5,5,113,245,192,0,0,0,5,5,114,245,5,5,115,245,192,0,0,0,192,0,0,0,5,5,117,245,5,5,116,245,192,0,0,0,192,0,0,0,5,5,118,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,245,5,5,120,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,245,5,5,121,245,5,5,122,245,5,5,145,229,5,5,103,228,192,0,0,0,192,0,0,0,5,5,218,232,192,0,0,0,5,5,145,234,192,0,0,0,5,5,188,230,192,0,0,0,192,0,0,0,5,5,77,234,192,0,0,0,5,5,203,234,5,5,124,245,5,5,140,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,245,5,5,127,245,192,0,0,0,5,5,157,236,5,5,126,245,5,5,129,245,5,5,128,245,192,0,0,0,5,5,139,236,192,0,0,0,5,5,130,245,192,0,0,0,5,5,220,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,245,192,0,0,0,192,0,0,0,5,5,133,245,5,5,132,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,245,5,5,70,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,231,5,5,151,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,245,5,5,136,245,192,0,0,0,192,0,0,0,5,5,137,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,245,192,0,0,0,5,5,141,245,5,5,138,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,245,5,5,144,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,245,192,0,0,0,5,5,154,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,230,192,0,0,0,5,5,147,245,5,5,146,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,231,5,5,148,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,245,192,0,0,0,192,0,0,0,5,5,150,245,192,0,0,0,5,5,93,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,227,192,0,0,0,192,0,0,0,5,5,151,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,245,192,0,0,0,5,5,215,235,5,5,155,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,236,5,5,45,237,192,0,0,0,5,5,31,229,5,5,155,245,5,5,66,230,5,5,154,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,245,5,5,23,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,232,192,0,0,0,5,5,157,245,192,0,0,0,192,0,0,0,5,5,30,229,192,0,0,0,5,5,49,236,5,5,158,245,5,5,159,245,192,0,0,0,192,0,0,0,5,5,160,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,230,192,0,0,0,192,0,0,0,5,5,71,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,245,192,0,0,0,5,5,195,232,192,0,0,0,5,5,163,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,231,192,0,0,0,5,5,168,245,192,0,0,0,5,5,169,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,235,5,5,170,245,192,0,0,0,5,5,55,232,5,5,171,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,237,5,5,175,245,192,0,0,0,5,5,174,245,5,5,173,245,5,5,20,233,192,0,0,0,5,5,176,245,5,5,48,231,192,0,0,0,5,5,177,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,245,5,5,46,237,5,5,179,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,245,5,5,182,245,5,5,181,245,5,5,131,234,192,0,0,0,5,5,27,234,192,0,0,0,5,5,52,237,5,5,135,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,245,192,0,0,0,192,0,0,0,5,5,253,230,192,0,0,0,5,5,230,234,192,0,0,0,5,5,185,245,5,5,183,245,192,0,0,0,5,5,70,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,228,5,5,246,229,192,0,0,0,192,0,0,0,5,5,204,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,228,5,5,189,235,192,0,0,0,5,5,188,245,5,5,186,245,192,0,0,0,5,5,32,229,192,0,0,0,5,5,33,229,5,5,0,199,192,0,0,0,5,5,152,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,189,5,5,193,245,192,0,0,0,5,5,196,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,234,192,0,0,0,5,5,129,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,245,192,0,0,0,192,0,0,0,5,5,191,245,5,5,194,245,5,5,189,245,192,0,0,0,5,5,192,245,5,5,160,235,192,0,0,0,192,0,0,0,5,5,199,228,192,0,0,0,192,0,0,0,5,5,0,219,5,5,190,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,245,192,0,0,0,5,5,198,245,192,0,0,0,192,0,0,0,5,5,217,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,245,5,5,61,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,229,192,0,0,0,192,0,0,0,5,5,240,227,5,5,176,231,5,5,60,237,5,5,8,236,5,5,196,245,5,5,188,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,227,5,5,199,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,245,192,0,0,0,5,5,170,232,192,0,0,0,5,5,62,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,245,192,0,0,0,192,0,0,0,5,5,95,231,192,0,0,0,5,5,35,235,5,5,208,245,192,0,0,0,5,5,207,245,5,5,34,229,5,5,73,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,245,5,5,213,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,230,192,0,0,0,192,0,0,0,5,5,211,245,192,0,0,0,5,5,74,229,5,5,210,245,192,0,0,0,192,0,0,0,5,5,214,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,233,5,5,62,235,5,5,233,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,232,5,5,218,245,192,0,0,0,5,5,219,245,5,5,215,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,245,192,0,0,0,5,5,217,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,245,192,0,0,0,5,5,221,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,235,192,0,0,0,5,5,230,235,5,5,228,234,192,0,0,0,192,0,0,0,5,5,220,245,192,0,0,0,192,0,0,0,5,5,223,245,5,5,222,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,235,5,5,226,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,245,192,0,0,0,192,0,0,0,5,5,253,231,192,0,0,0,5,5,228,245,192,0,0,0,192,0,0,0,5,5,230,245,192,0,0,0,5,5,234,245,192,0,0,0,192,0,0,0,5,5,231,245,5,5,229,245,5,5,63,234,5,5,232,245,192,0,0,0,5,5,233,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,226,192,0,0,0,5,5,240,245,5,5,235,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,245,192,0,0,0,5,5,71,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,245,5,5,238,245,5,5,241,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,245,5,5,243,245,192,0,0,0,192,0,0,0,5,5,77,231,192,0,0,0,5,5,163,226,192,0,0,0,5,5,244,245,5,5,237,236,192,0,0,0,5,5,25,230,192,0,0,0,192,0,0,0,5,5,121,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,229,5,5,219,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,245,5,5,246,245,5,5,13,226,192,0,0,0,5,5,247,245,192,0,0,0,192,0,0,0,5,5,248,245,5,5,249,245,192,0,0,0,192,0,0,0,5,5,250,245,192,0,0,0,5,5,251,245,5,5,241,227,5,5,7,241,5,5,252,245,192,0,0,0,5,5,205,231,5,5,253,245,5,5,57,230,192,0,0,0,5,5,254,245,192,0,0,0,5,5,89,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,245,5,5,122,235,5,5,84,227,192,0,0,0,192,0,0,0,5,5,234,231,5,5,164,230,192,0,0,0,5,5,47,235,5,5,122,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,246,5,5,36,229,5,5,3,246,5,5,170,234,192,0,0,0,5,5,17,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,246,192,0,0,0,5,5,111,232,5,5,117,234,5,5,177,228,5,5,4,246,5,5,235,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,246,5,5,7,246,5,5,10,246,192,0,0,0,192,0,0,0,5,5,9,246,192,0,0,0,5,5,11,246,192,0,0,0,192,0,0,0,5,5,13,246,192,0,0,0,5,5,12,246,192,0,0,0,5,5,71,227,192,0,0,0,5,5,14,246,192,0,0,0,5,5,15,246,5,5,16,246,192,0,0,0,192,0,0,0,5,5,97,229,5,5,223,236,192,0,0,0,5,5,18,246,5,5,49,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,226,5,5,19,246,5,5,20,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,208,192,0,0,0,5,5,22,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,230,192,0,0,0,5,5,25,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,226,5,5,0,144,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,246,5,5,27,246,5,5,78,234,192,0,0,0,5,5,78,231,192,0,0,0,5,5,144,226,192,0,0,0,5,5,161,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,228,5,5,18,228,192,0,0,0,5,5,26,246,192,0,0,0,5,5,164,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,226,5,5,31,246,5,5,2,237,5,5,131,232,192,0,0,0,192,0,0,0,5,5,2,235,192,0,0,0,5,5,43,246,192,0,0,0,5,5,145,226,5,5,41,246,192,0,0,0,5,5,39,246,5,5,30,246,192,0,0,0,5,5,28,246,192,0,0,0,5,5,29,246,192,0,0,0,5,5,81,230,5,5,34,228,5,5,251,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,226,192,0,0,0,5,5,33,246,5,5,32,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,246,5,5,34,246,5,5,37,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,236,5,5,36,246,5,5,146,226,5,5,23,227,5,5,40,246,192,0,0,0,192,0,0,0,5,5,42,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,246,5,5,55,246,5,5,56,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,137,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,207,192,0,0,0,192,0,0,0,5,5,54,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,246,192,0,0,0,5,5,48,246,5,5,47,246,192,0,0,0,5,5,45,246,5,5,44,246,5,5,231,232,192,0,0,0,5,5,161,232,5,5,50,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,232,5,5,105,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,226,5,5,51,246,192,0,0,0,5,5,37,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,246,192,0,0,0,5,5,70,246,192,0,0,0,5,5,147,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,226,5,5,67,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,246,192,0,0,0,5,5,65,246,192,0,0,0,5,5,72,246,5,5,66,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,246,192,0,0,0,192,0,0,0,5,5,62,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,227,5,5,60,246,5,5,71,246,192,0,0,0,5,5,61,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,246,192,0,0,0,5,5,59,246,5,5,124,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,227,192,0,0,0,5,5,19,228,192,0,0,0,5,5,77,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,226,192,0,0,0,192,0,0,0,5,5,254,230,192,0,0,0,5,5,80,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,229,192,0,0,0,192,0,0,0,5,5,147,233,5,5,85,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,235,192,0,0,0,5,5,76,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,226,5,5,200,228,5,5,229,234,5,5,86,246,192,0,0,0,5,5,74,246,192,0,0,0,192,0,0,0,5,5,83,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,246,192,0,0,0,5,5,78,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,246,5,5,218,233,192,0,0,0,192,0,0,0,5,5,84,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,246,5,5,162,235,5,5,87,246,5,5,0,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,246,192,0,0,0,5,5,88,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,234,5,5,95,246,192,0,0,0,5,5,106,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,246,192,0,0,0,192,0,0,0,5,5,91,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,246,5,5,166,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,246,192,0,0,0,192,0,0,0,5,5,141,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,235,5,5,111,246,5,5,193,233,192,0,0,0,192,0,0,0,5,5,0,143,192,0,0,0,192,0,0,0,5,5,104,246,192,0,0,0,5,5,100,246,5,5,58,232,5,5,94,246,5,5,102,246,5,5,107,246,192,0,0,0,5,5,44,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,136,192,0,0,0,5,5,99,246,192,0,0,0,5,5,108,246,5,5,54,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,246,192,0,0,0,5,5,98,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,236,192,0,0,0,192,0,0,0,5,5,5,235,192,0,0,0,192,0,0,0,5,5,114,246,192,0,0,0,5,5,123,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,231,5,5,112,246,192,0,0,0,5,5,117,246,5,5,59,232,192,0,0,0,192,0,0,0,5,5,113,246,192,0,0,0,5,5,120,246,192,0,0,0,192,0,0,0,5,5,227,232,192,0,0,0,5,5,121,246,192,0,0,0,192,0,0,0,5,5,142,236,5,5,110,246,5,5,208,226,192,0,0,0,5,5,116,246,192,0,0,0,192,0,0,0,5,5,119,246,5,5,6,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,246,192,0,0,0,192,0,0,0,5,5,115,246,5,5,118,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,235,192,0,0,0,5,5,23,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,246,192,0,0,0,192,0,0,0,5,5,125,246,5,5,49,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,235,192,0,0,0,5,5,250,235,5,5,132,246,5,5,131,246,192,0,0,0,5,5,127,246,5,5,128,246,192,0,0,0,5,5,18,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,246,192,0,0,0,5,5,124,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,246,5,5,0,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,235,192,0,0,0,192,0,0,0,5,5,134,246,5,5,138,246,192,0,0,0,5,5,183,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,246,5,5,2,231,5,5,55,230,5,5,140,246,192,0,0,0,192,0,0,0,5,5,242,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,246,192,0,0,0,5,5,55,235,5,5,136,246,192,0,0,0,5,5,97,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,237,5,5,194,233,5,5,49,235,192,0,0,0,192,0,0,0,5,5,148,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,246,192,0,0,0,5,5,142,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,234,192,0,0,0,192,0,0,0,5,5,152,246,5,5,144,246,192,0,0,0,5,5,146,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,246,5,5,145,246,192,0,0,0,192,0,0,0,5,5,149,246,192,0,0,0,192,0,0,0,5,5,78,226,192,0,0,0,5,5,7,234,192,0,0,0,5,5,150,246,5,5,153,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,246,192,0,0,0,5,5,236,231,192,0,0,0,5,5,147,246,5,5,181,229,5,5,79,231,5,5,68,228,5,5,78,236,192,0,0,0,5,5,83,236,5,5,190,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,246,5,5,158,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,236,192,0,0,0,5,5,159,246,5,5,161,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,246,5,5,163,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,233,5,5,164,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,234,5,5,151,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,230,192,0,0,0,5,5,166,246,5,5,171,246,5,5,60,232,192,0,0,0,192,0,0,0,5,5,170,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,246,5,5,17,232,192,0,0,0,192,0,0,0,5,5,167,246,5,5,169,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,246,192,0,0,0,192,0,0,0,5,5,42,242,5,5,27,242,192,0,0,0,192,0,0,0,5,5,174,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,236,192,0,0,0,5,5,15,244,5,5,175,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,246,5,5,201,228,192,0,0,0,5,5,170,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,246,5,5,228,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,227,192,0,0,0,5,5,208,236,192,0,0,0,5,5,41,228,5,5,180,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,234,192,0,0,0,5,5,0,152,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,226,5,5,187,246,5,5,188,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,246,192,0,0,0,5,5,203,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,246,5,5,66,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,246,5,5,186,246,5,5,196,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,246,5,5,193,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,246,192,0,0,0,5,5,192,246,5,5,70,230,192,0,0,0,5,5,194,246,192,0,0,0,5,5,197,232,192,0,0,0,5,5,106,228,5,5,218,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,226,192,0,0,0,5,5,202,246,192,0,0,0,192,0,0,0,5,5,198,246,5,5,201,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,246,192,0,0,0,192,0,0,0,5,5,200,246,5,5,6,235,5,5,184,234,5,5,203,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,232,5,5,213,246,192,0,0,0,5,5,209,246,192,0,0,0,192,0,0,0,5,5,165,226,192,0,0,0,5,5,207,246,192,0,0,0,5,5,164,235,5,5,208,246,192,0,0,0,192,0,0,0,5,5,205,246,192,0,0,0,5,5,206,246,5,5,211,246,5,5,214,246,192,0,0,0,192,0,0,0,5,5,212,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,246,5,5,204,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,232,192,0,0,0,5,5,221,246,192,0,0,0,5,5,4,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,246,192,0,0,0,192,0,0,0,5,5,217,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,231,192,0,0,0,5,5,47,237,5,5,225,246,192,0,0,0,5,5,226,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,246,192,0,0,0,5,5,52,231,192,0,0,0,5,5,228,246,192,0,0,0,5,5,231,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,246,5,5,222,246,192,0,0,0,192,0,0,0,5,5,233,246,192,0,0,0,192,0,0,0,5,5,150,226,192,0,0,0,5,5,229,246,192,0,0,0,5,5,234,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,246,192,0,0,0,5,5,23,233,192,0,0,0,5,5,224,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,234,192,0,0,0,192,0,0,0,5,5,238,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,246,192,0,0,0,192,0,0,0,5,5,236,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,236,5,5,250,246,192,0,0,0,5,5,241,246,192,0,0,0,192,0,0,0,5,5,242,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,246,192,0,0,0,5,5,249,246,5,5,248,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,246,192,0,0,0,5,5,6,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,246,192,0,0,0,192,0,0,0,5,5,252,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,247,5,5,4,247,192,0,0,0,5,5,194,226,192,0,0,0,5,5,152,227,192,0,0,0,192,0,0,0,5,5,2,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,246,5,5,5,247,5,5,254,246,192,0,0,0,5,5,7,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,247,5,5,8,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,247,5,5,10,247,5,5,195,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,247,192,0,0,0,192,0,0,0,5,5,14,247,192,0,0,0,5,5,16,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,228,192,0,0,0,5,5,18,247,192,0,0,0,5,5,17,247,192,0,0,0,5,5,124,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,229,5,5,126,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,247,5,5,157,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,226,192,0,0,0,5,5,20,247,192,0,0,0,5,5,46,226,192,0,0,0,5,5,3,231,5,5,21,247,192,0,0,0,192,0,0,0,5,5,39,229,5,5,22,247,5,5,0,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,234,192,0,0,0,192,0,0,0,5,5,23,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,231,192,0,0,0,5,5,30,247,192,0,0,0,192,0,0,0,5,5,27,247,192,0,0,0,5,5,243,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,247,5,5,25,247,5,5,20,228,192,0,0,0,5,5,24,247,5,5,31,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,228,192,0,0,0,192,0,0,0,5,5,132,232,192,0,0,0,5,5,37,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,232,5,5,32,247,192,0,0,0,5,5,35,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,247,192,0,0,0,5,5,38,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,234,192,0,0,0,192,0,0,0,5,5,34,247,192,0,0,0,5,5,39,247,5,5,41,247,192,0,0,0,192,0,0,0,5,5,197,228,5,5,29,247,192,0,0,0,5,5,0,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,247,192,0,0,0,5,5,139,229,5,5,14,237,5,5,42,247,5,5,43,247,5,5,61,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,247,5,5,109,236,192,0,0,0,192,0,0,0,5,5,45,247,5,5,46,247,192,0,0,0,192,0,0,0,5,5,128,235,5,5,47,247,192,0,0,0,5,5,112,229,192,0,0,0,5,5,185,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,247,5,5,4,231,5,5,51,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,236,5,5,48,247,192,0,0,0,192,0,0,0,5,5,50,247,5,5,165,231,5,5,136,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,247,192,0,0,0,5,5,54,247,192,0,0,0,192,0,0,0,5,5,63,235,192,0,0,0,192,0,0,0,5,5,56,247,192,0,0,0,5,5,55,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,227,192,0,0,0,5,5,165,235,5,5,57,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,247,5,5,59,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,247,5,5,62,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,247,192,0,0,0,5,5,67,247,192,0,0,0,192,0,0,0,5,5,65,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,247,192,0,0,0,5,5,58,247,5,5,64,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,247,5,5,56,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,247,5,5,21,228,5,5,70,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,247,192,0,0,0,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,247,192,0,0,0,192,0,0,0,5,5,74,247,192,0,0,0,5,5,76,247,192,0,0,0,192,0,0,0,5,5,125,230,192,0,0,0,5,5,77,247,192,0,0,0,192,0,0,0,5,5,78,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,247,5,5,166,231,192,0,0,0,5,5,143,236,192,0,0,0,5,5,80,247,192,0,0,0,192,0,0,0,5,5,64,235,5,5,70,234,5,5,81,247,192,0,0,0,5,5,82,247,5,5,157,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,247,192,0,0,0,192,0,0,0,5,5,249,229,5,5,65,234,5,5,84,247,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,247,5,5,175,236,192,0,0,0,5,5,86,247,5,5,80,231,192,0,0,0,5,5,88,247,192,0,0,0,192,0,0,0,5,5,89,247,192,0,0,0,192,0,0,0,5,5,90,247,5,5,73,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,247,192,0,0,0,192,0,0,0,5,5,92,247,192,0,0,0,5,5,93,247,5,5,94,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,247,192,0,0,0,5,5,96,247,5,5,97,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,226,192,0,0,0,192,0,0,0,5,5,50,231,5,5,98,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,228,192,0,0,0,5,5,95,233,5,5,101,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,228,192,0,0,0,5,5,96,231,192,0,0,0,5,5,104,247,192,0,0,0,5,5,196,233,192,0,0,0,5,5,103,247,192,0,0,0,192,0,0,0,5,5,69,228,192,0,0,0,192,0,0,0,5,5,102,247,5,5,157,232,5,5,131,227,192,0,0,0,192,0,0,0,5,5,105,247,192,0,0,0,5,5,106,247,192,0,0,0,5,5,5,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,228,192,0,0,0,5,5,107,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,235,192,0,0,0,192,0,0,0,5,5,199,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,227,192,0,0,0,5,5,79,236,5,5,18,232,192,0,0,0,5,5,108,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,231,5,5,244,232,5,5,6,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,247,192,0,0,0,5,5,113,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,229,5,5,104,232,5,5,111,247,192,0,0,0,5,5,7,231,5,5,250,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,247,192,0,0,0,192,0,0,0,5,5,250,229,192,0,0,0,5,5,47,226,192,0,0,0,5,5,117,247,5,5,108,228,192,0,0,0,192,0,0,0,5,5,252,229,192,0,0,0,192,0,0,0,5,5,251,229,192,0,0,0,5,5,67,237,5,5,116,247,5,5,115,247,5,5,237,231,192,0,0,0,5,5,163,227,5,5,57,237,5,5,210,226,5,5,8,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,247,192,0,0,0,5,5,120,247,5,5,118,247,192,0,0,0,5,5,202,228,192,0,0,0,5,5,120,236,192,0,0,0,192,0,0,0,5,5,253,229,5,5,39,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,247,192,0,0,0,5,5,168,231,192,0,0,0,5,5,198,232,192,0,0,0,192,0,0,0,5,5,110,236,192,0,0,0,5,5,126,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,228,192,0,0,0,5,5,167,231,5,5,122,247,192,0,0,0,5,5,127,247,5,5,223,228,5,5,124,247,5,5,125,247,192,0,0,0,5,5,121,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,231,5,5,233,233,192,0,0,0,192,0,0,0,5,5,179,232,192,0,0,0,5,5,151,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,234,192,0,0,0,192,0,0,0,5,5,153,227,192,0,0,0,192,0,0,0,5,5,24,233,192,0,0,0,192,0,0,0,5,5,130,247,192,0,0,0,5,5,128,247,192,0,0,0,192,0,0,0,5,5,208,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,231,5,5,74,227,5,5,129,247,192,0,0,0,5,5,101,231,192,0,0,0,192,0,0,0,5,5,224,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,247,5,5,142,247,5,5,25,233,192,0,0,0,5,5,141,247,192,0,0,0,5,5,138,247,5,5,146,247,5,5,139,247,192,0,0,0,5,5,135,247,192,0,0,0,5,5,96,233,5,5,134,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,247,192,0,0,0,5,5,89,236,5,5,254,229,192,0,0,0,192,0,0,0,5,5,136,247,192,0,0,0,5,5,133,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,247,5,5,192,230,192,0,0,0,5,5,179,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,232,192,0,0,0,5,5,191,235,5,5,54,226,5,5,0,192,192,0,0,0,5,5,197,233,192,0,0,0,192,0,0,0,5,5,144,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,247,192,0,0,0,5,5,8,234,192,0,0,0,5,5,148,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,247,192,0,0,0,5,5,147,247,5,5,149,247,192,0,0,0,5,5,158,228,5,5,145,247,5,5,40,229,192,0,0,0,5,5,67,230,192,0,0,0,192,0,0,0,5,5,150,247,5,5,144,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,247,192,0,0,0,5,5,156,247,192,0,0,0,192,0,0,0,5,5,154,247,5,5,241,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,247,192,0,0,0,192,0,0,0,5,5,157,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,247,192,0,0,0,192,0,0,0,5,5,158,247,192,0,0,0,5,5,160,247,5,5,159,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,247,192,0,0,0,5,5,31,230,192,0,0,0,5,5,164,247,5,5,163,247,5,5,38,235,192,0,0,0,192,0,0,0,5,5,166,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,247,5,5,167,247,192,0,0,0,192,0,0,0,5,5,168,247,5,5,154,227,5,5,142,245,5,5,37,231,192,0,0,0,5,5,169,247,192,0,0,0,192,0,0,0,5,5,224,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,247,192,0,0,0,192,0,0,0,5,5,171,247,192,0,0,0,192,0,0,0,5,5,204,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,241,192,0,0,0,5,5,172,247,192,0,0,0,5,5,173,247,192,0,0,0,5,5,126,230,192,0,0,0,5,5,174,247,5,5,175,247,192,0,0,0,192,0,0,0,5,5,176,247,192,0,0,0,192,0,0,0,5,5,177,247,5,5,178,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,232,192,0,0,0,192,0,0,0,5,5,179,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,247,192,0,0,0,5,5,180,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,233,192,0,0,0,5,5,182,247,192,0,0,0,5,5,167,235,192,0,0,0,5,5,183,247,192,0,0,0,5,5,184,247,192,0,0,0,5,5,185,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,231,5,5,187,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,229,5,5,87,237,5,5,188,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,247,5,5,251,234,5,5,190,247,192,0,0,0,5,5,198,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,247,192,0,0,0,192,0,0,0,5,5,193,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,247,5,5,194,247,192,0,0,0,5,5,192,235,5,5,195,247,5,5,196,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,226,5,5,75,233,192,0,0,0,5,5,39,235,5,5,146,229,5,5,41,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,235,5,5,153,226,5,5,172,234,5,5,202,247,5,5,75,227,5,5,189,231,5,5,201,247,5,5,206,247,5,5,253,232,5,5,61,236,192,0,0,0,5,5,204,247,5,5,205,247,5,5,132,227,192,0,0,0,5,5,207,247,5,5,99,234,5,5,133,232,192,0,0,0,192,0,0,0,5,5,207,234,5,5,127,233,5,5,203,247,192,0,0,0,5,5,193,235,5,5,166,226,5,5,209,247,5,5,30,237,5,5,38,233,5,5,59,237,192,0,0,0,192,0,0,0,5,5,255,229,5,5,208,247,192,0,0,0,5,5,87,232,192,0,0,0,192,0,0,0,5,5,225,247,5,5,238,231,192,0,0,0,192,0,0,0,5,5,26,234,192,0,0,0,5,5,14,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,247,5,5,205,229,5,5,2,230,192,0,0,0,5,5,10,231,192,0,0,0,5,5,101,234,192,0,0,0,5,5,159,228,5,5,211,247,5,5,210,247,192,0,0,0,5,5,40,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,230,192,0,0,0,192,0,0,0,5,5,148,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,247,5,5,215,247,5,5,42,229,5,5,213,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,247,5,5,217,247,192,0,0,0,5,5,219,247,5,5,73,232,192,0,0,0,5,5,218,247,5,5,94,227,192,0,0,0,5,5,221,247,192,0,0,0,5,5,220,247,5,5,222,247,192,0,0,0,192,0,0,0,5,5,224,247,5,5,226,247,192,0,0,0,5,5,227,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,231,192,0,0,0,5,5,61,230,5,5,228,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,226,192,0,0,0,5,5,229,247,192,0,0,0,192,0,0,0,5,5,62,232,5,5,230,247,192,0,0,0,5,5,231,247,5,5,41,235,192,0,0,0,192,0,0,0,5,5,133,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,247,5,5,240,247,192,0,0,0,192,0,0,0,5,5,237,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,247,5,5,241,247,192,0,0,0,5,5,205,227,192,0,0,0,5,5,245,247,192,0,0,0,5,5,191,231,192,0,0,0,5,5,246,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,228,192,0,0,0,5,5,243,247,5,5,244,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,233,192,0,0,0,5,5,239,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,247,192,0,0,0,192,0,0,0,5,5,250,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,247,5,5,249,247,5,5,145,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,233,5,5,253,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,247,5,5,252,247,5,5,254,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,248,5,5,2,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,247,192,0,0,0,5,5,97,233,192,0,0,0,192,0,0,0,5,5,6,248,5,5,10,248,5,5,7,248,5,5,5,248,192,0,0,0,5,5,8,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,231,5,5,13,248,192,0,0,0,192,0,0,0,5,5,15,248,5,5,12,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,248,192,0,0,0,5,5,127,230,192,0,0,0,5,5,17,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,248,192,0,0,0,192,0,0,0,5,5,23,248,5,5,22,248,192,0,0,0,5,5,21,248,192,0,0,0,192,0,0,0,5,5,25,248,5,5,24,248,192,0,0,0,5,5,80,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,248,192,0,0,0,5,5,26,248,5,5,28,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,248,5,5,82,231,5,5,32,248,192,0,0,0,192,0,0,0,5,5,35,228,5,5,33,248,5,5,35,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,248,5,5,34,248,192,0,0,0,5,5,38,248,192,0,0,0,5,5,68,230,5,5,39,248,5,5,134,227,5,5,71,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,234,192,0,0,0,192,0,0,0,5,5,128,233,5,5,41,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,230,192,0,0,0,192,0,0,0,5,5,43,248,5,5,42,248,5,5,110,228,5,5,45,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,226,192,0,0,0,5,5,47,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,229,5,5,46,248,192,0,0,0,5,5,55,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,248,5,5,51,248,5,5,129,235,5,5,48,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,248,192,0,0,0,5,5,54,248,5,5,52,248,5,5,135,227,192,0,0,0,5,5,53,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,248,192,0,0,0,192,0,0,0,5,5,90,234,5,5,238,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,236,5,5,59,248,192,0,0,0,5,5,58,248,192,0,0,0,192,0,0,0,5,5,62,248,5,5,121,236,192,0,0,0,192,0,0,0,5,5,61,248,192,0,0,0,5,5,7,227,5,5,60,248,5,5,65,248,192,0,0,0,192,0,0,0,5,5,64,248,192,0,0,0,192,0,0,0,5,5,63,248,5,5,116,233,5,5,66,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,248,192,0,0,0,192,0,0,0,5,5,62,229,192,0,0,0,5,5,57,228,5,5,69,248,5,5,70,248,5,5,71,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,231,5,5,72,248,192,0,0,0,5,5,27,230,5,5,73,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,238,5,5,7,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,248,5,5,95,245,5,5,76,248,5,5,168,232,5,5,53,231,5,5,64,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,248,192,0,0,0,192,0,0,0,5,5,113,235,5,5,56,233,5,5,80,229,192,0,0,0,192,0,0,0,5,5,173,232,192,0,0,0,192,0,0,0,5,5,6,226,192,0,0,0,5,5,242,235,5,5,97,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,228,192,0,0,0,192,0,0,0,5,5,23,228,192,0,0,0,192,0,0,0,5,5,114,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,248,192,0,0,0,192,0,0,0,5,5,79,248,5,5,154,226,192,0,0,0,192,0,0,0,5,5,24,234,5,5,81,248,5,5,119,234,192,0,0,0,5,5,117,233,192,0,0,0,5,5,82,248,5,5,158,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,248,192,0,0,0,192,0,0,0,5,5,28,236,5,5,99,248,5,5,86,248,5,5,87,248,192,0,0,0,192,0,0,0,5,5,45,233,192,0,0,0,192,0,0,0,5,5,134,232,5,5,63,232,192,0,0,0,5,5,200,233,192,0,0,0,5,5,85,248,5,5,171,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,248,192,0,0,0,5,5,91,248,5,5,104,248,5,5,201,233,5,5,228,232,5,5,88,248,192,0,0,0,5,5,98,233,5,5,149,233,5,5,89,248,5,5,93,248,5,5,106,231,192,0,0,0,5,5,103,234,5,5,48,233,192,0,0,0,192,0,0,0,5,5,170,231,5,5,92,248,5,5,84,232,5,5,74,232,5,5,90,248,5,5,0,135,5,5,24,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,232,192,0,0,0,192,0,0,0,5,5,129,230,5,5,84,231,192,0,0,0,192,0,0,0,5,5,97,248,5,5,96,248,192,0,0,0,5,5,0,205,5,5,98,248,192,0,0,0,192,0,0,0,5,5,235,234,192,0,0,0,5,5,106,248,192,0,0,0,192,0,0,0,5,5,251,233,5,5,117,231,192,0,0,0,192,0,0,0,5,5,221,232,192,0,0,0,5,5,46,228,192,0,0,0,5,5,105,248,5,5,111,236,5,5,27,226,192,0,0,0,5,5,115,235,5,5,155,226,5,5,100,248,5,5,101,248,5,5,102,248,5,5,103,248,5,5,219,233,5,5,167,232,5,5,0,193,5,5,107,248,192,0,0,0,5,5,108,248,5,5,158,250,192,0,0,0,192,0,0,0,5,5,99,232,192,0,0,0,5,5,109,248,192,0,0,0,5,5,79,226,5,5,20,232,192,0,0,0,5,5,161,228,192,0,0,0,5,5,146,236,192,0,0,0,192,0,0,0,5,5,110,248,5,5,110,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,232,5,5,69,230,5,5,111,248,192,0,0,0,192,0,0,0,5,5,114,248,192,0,0,0,192,0,0,0,5,5,177,230,5,5,112,248,5,5,241,231,5,5,240,231,192,0,0,0,5,5,0,194,192,0,0,0,5,5,225,236,5,5,116,248,192,0,0,0,5,5,208,234,5,5,118,248,5,5,117,248,5,5,115,248,5,5,149,244,5,5,76,227,192,0,0,0,192,0,0,0,5,5,83,248,192,0,0,0,5,5,120,248,5,5,119,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,248,192,0,0,0,5,5,112,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,234,192,0,0,0,192,0,0,0,5,5,168,235,192,0,0,0,5,5,122,248,192,0,0,0,5,5,71,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,248,192,0,0,0,5,5,124,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,248,192,0,0,0,192,0,0,0,5,5,99,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,228,5,5,126,248,192,0,0,0,5,5,127,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,236,192,0,0,0,5,5,243,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,233,192,0,0,0,192,0,0,0,5,5,134,248,192,0,0,0,5,5,133,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,233,5,5,135,248,5,5,130,230,5,5,78,230,5,5,91,234,5,5,245,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,230,192,0,0,0,5,5,118,231,192,0,0,0,5,5,136,248,192,0,0,0,5,5,137,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,231,5,5,138,248,192,0,0,0,5,5,139,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,248,5,5,167,236,192,0,0,0,5,5,131,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,248,5,5,141,248,192,0,0,0,5,5,44,229,192,0,0,0,5,5,69,229,5,5,206,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,230,192,0,0,0,5,5,144,248,192,0,0,0,5,5,143,248,192,0,0,0,5,5,143,232,192,0,0,0,192,0,0,0,5,5,225,228,192,0,0,0,5,5,171,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,248,192,0,0,0,5,5,11,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,248,5,5,147,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,248,5,5,150,248,192,0,0,0,192,0,0,0,5,5,38,231,192,0,0,0,5,5,152,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,248,5,5,154,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,234,5,5,131,229,5,5,79,230,5,5,155,248,192,0,0,0,5,5,156,248,5,5,186,236,5,5,145,230,5,5,72,236,5,5,226,236,5,5,157,248,5,5,24,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,248,192,0,0,0,5,5,101,233,192,0,0,0,192,0,0,0,5,5,161,248,5,5,18,227,5,5,85,231,192,0,0,0,5,5,159,248,192,0,0,0,5,5,160,248,192,0,0,0,5,5,68,233,192,0,0,0,192,0,0,0,5,5,207,235,5,5,50,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,248,5,5,164,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,248,192,0,0,0,192,0,0,0,5,5,166,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,233,5,5,219,226,192,0,0,0,192,0,0,0,5,5,170,248,192,0,0,0,192,0,0,0,5,5,167,248,5,5,169,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,248,192,0,0,0,192,0,0,0,5,5,168,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,237,192,0,0,0,192,0,0,0,5,5,204,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,233,5,5,173,248,192,0,0,0,192,0,0,0,5,5,176,248,5,5,174,248,192,0,0,0,5,5,179,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,248,192,0,0,0,192,0,0,0,5,5,185,248,5,5,80,226,192,0,0,0,192,0,0,0,5,5,171,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,234,192,0,0,0,5,5,175,248,192,0,0,0,5,5,12,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,235,192,0,0,0,5,5,26,228,192,0,0,0,192,0,0,0,5,5,146,230,192,0,0,0,5,5,220,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,231,192,0,0,0,5,5,183,248,192,0,0,0,5,5,177,248,5,5,182,248,192,0,0,0,5,5,29,236,192,0,0,0,5,5,28,233,5,5,184,248,5,5,181,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,248,192,0,0,0,5,5,187,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,248,192,0,0,0,192,0,0,0,5,5,169,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,248,5,5,123,235,192,0,0,0,192,0,0,0,5,5,48,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,235,5,5,246,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,227,192,0,0,0,5,5,191,248,192,0,0,0,5,5,47,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,248,5,5,119,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,231,5,5,194,248,5,5,196,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,231,192,0,0,0,5,5,195,248,5,5,197,248,192,0,0,0,192,0,0,0,5,5,9,228,192,0,0,0,5,5,3,235,192,0,0,0,192,0,0,0,5,5,80,230,5,5,25,237,192,0,0,0,5,5,193,248,5,5,168,229,192,0,0,0,192,0,0,0,5,5,53,237,192,0,0,0,192,0,0,0,5,5,199,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,248,5,5,200,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,234,192,0,0,0,5,5,151,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,233,192,0,0,0,5,5,205,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,232,5,5,201,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,228,192,0,0,0,5,5,204,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,248,192,0,0,0,5,5,13,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,248,192,0,0,0,5,5,111,229,5,5,65,232,192,0,0,0,192,0,0,0,5,5,46,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,248,5,5,208,248,5,5,39,233,192,0,0,0,5,5,206,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,248,5,5,111,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,248,5,5,212,248,5,5,215,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,227,192,0,0,0,192,0,0,0,5,5,220,248,5,5,214,248,192,0,0,0,192,0,0,0,5,5,213,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,248,192,0,0,0,192,0,0,0,5,5,223,248,5,5,222,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,231,5,5,202,233,5,5,221,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,248,5,5,227,248,192,0,0,0,5,5,158,232,192,0,0,0,5,5,231,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,248,192,0,0,0,192,0,0,0,5,5,234,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,227,5,5,233,248,5,5,84,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,248,5,5,235,248,192,0,0,0,192,0,0,0,5,5,238,248,192,0,0,0,5,5,236,248,192,0,0,0,5,5,237,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,248,192,0,0,0,5,5,243,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,248,5,5,244,248,5,5,247,248,5,5,249,248,192,0,0,0,5,5,248,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,236,192,0,0,0,5,5,250,248,5,5,244,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,248,192,0,0,0,5,5,96,235,5,5,252,248,5,5,195,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,226,192,0,0,0,5,5,79,227,192,0,0,0,5,5,78,227,5,5,253,248,192,0,0,0,5,5,254,248,192,0,0,0,5,5,255,248,5,5,2,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,249,192,0,0,0,5,5,80,227,5,5,237,226,5,5,48,229,5,5,148,234,192,0,0,0,5,5,5,249,5,5,4,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,249,192,0,0,0,5,5,8,249,5,5,7,249,192,0,0,0,5,5,10,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,165,192,0,0,0,192,0,0,0,5,5,11,249,192,0,0,0,5,5,15,249,5,5,14,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,249,5,5,16,249,5,5,18,249,192,0,0,0,5,5,206,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,249,5,5,22,249,192,0,0,0,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,249,192,0,0,0,5,5,149,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,249,5,5,26,249,192,0,0,0,192,0,0,0,5,5,195,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,130,5,5,113,232,192,0,0,0,5,5,27,249,192,0,0,0,5,5,43,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,249,5,5,28,249,5,5,49,229,192,0,0,0,5,5,29,249,5,5,180,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,235,5,5,32,249,5,5,34,249,5,5,33,249,5,5,35,249,192,0,0,0,192,0,0,0,5,5,0,221,5,5,98,231,5,5,200,230,5,5,81,227,5,5,36,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,234,192,0,0,0,5,5,38,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,222,192,0,0,0,5,5,37,249,5,5,40,233,192,0,0,0,5,5,227,236,5,5,203,233,5,5,31,249,5,5,188,236,192,0,0,0,5,5,163,228,192,0,0,0,192,0,0,0,5,5,147,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,228,5,5,202,236,192,0,0,0,5,5,60,228,192,0,0,0,5,5,136,232,5,5,204,245,192,0,0,0,5,5,39,249,5,5,196,226,5,5,121,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,226,5,5,41,249,192,0,0,0,5,5,42,249,5,5,40,249,5,5,120,228,192,0,0,0,5,5,141,229,5,5,15,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,223,192,0,0,0,192,0,0,0,5,5,239,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,249,5,5,113,248,192,0,0,0,5,5,43,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,249,5,5,45,249,5,5,46,249,192,0,0,0,5,5,48,249,192,0,0,0,5,5,49,249,5,5,4,237,5,5,50,249,5,5,51,249,192,0,0,0,5,5,177,231,5,5,153,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,231,5,5,95,227,192,0,0,0,192,0,0,0,5,5,114,236,5,5,167,226,5,5,132,230,5,5,205,228,192,0,0,0,5,5,54,249,192,0,0,0,5,5,53,249,5,5,3,230,5,5,55,249,5,5,52,249,192,0,0,0,192,0,0,0,5,5,182,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,249,5,5,244,246,192,0,0,0,192,0,0,0,5,5,61,238,192,0,0,0,5,5,129,231,5,5,57,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,236,5,5,19,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,226,192,0,0,0,5,5,203,231,5,5,36,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,235,192,0,0,0,5,5,28,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,237,5,5,163,236,192,0,0,0,5,5,60,249,192,0,0,0,5,5,135,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,249,192,0,0,0,5,5,62,249,5,5,86,231,5,5,63,249,192,0,0,0,5,5,6,237,192,0,0,0,192,0,0,0,5,5,58,249,5,5,65,249,5,5,67,249,192,0,0,0,5,5,66,249,192,0,0,0,5,5,64,249,192,0,0,0,192,0,0,0,5,5,68,249,192,0,0,0,192,0,0,0,5,5,69,249,192,0,0,0,192,0,0,0,5,5,66,232,192,0,0,0,5,5,156,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,249,192,0,0,0,192,0,0,0,5,5,18,236,192,0,0,0,192,0,0,0,5,5,71,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,249,192,0,0,0,5,5,32,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,241,5,5,73,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,249,5,5,75,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,249,192,0,0,0,5,5,76,249,192,0,0,0,5,5,77,249,192,0,0,0,5,5,78,249,5,5,80,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,236,192,0,0,0,192,0,0,0,5,5,173,231,192,0,0,0,192,0,0,0,5,5,81,249,192,0,0,0,5,5,209,234,192,0,0,0,5,5,82,249,5,5,112,250,5,5,38,236,192,0,0,0,5,5,83,249,192,0,0,0,5,5,84,249,192,0,0,0,5,5,85,249,5,5,239,226,192,0,0,0,5,5,87,249,192,0,0,0,5,5,99,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,249,192,0,0,0,192,0,0,0,5,5,56,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,249,5,5,93,249,192,0,0,0,5,5,91,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,249,192,0,0,0,192,0,0,0,5,5,13,227,5,5,90,249,5,5,94,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,249,192,0,0,0,5,5,0,166,192,0,0,0,5,5,96,249,5,5,97,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,227,192,0,0,0,192,0,0,0,5,5,101,249,192,0,0,0,192,0,0,0,5,5,100,249,192,0,0,0,5,5,99,249,192,0,0,0,192,0,0,0,5,5,152,247,192,0,0,0,5,5,120,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,249,5,5,103,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,249,192,0,0,0,192,0,0,0,5,5,105,249,192,0,0,0,5,5,106,249,192,0,0,0,192,0,0,0,5,5,107,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,249,5,5,35,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,249,5,5,117,226,192,0,0,0,5,5,114,249,5,5,113,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,227,192,0,0,0,5,5,99,235,5,5,30,233,5,5,82,229,192,0,0,0,5,5,50,229,5,5,179,230,192,0,0,0,5,5,102,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,249,192,0,0,0,192,0,0,0,5,5,115,249,5,5,122,236,5,5,96,227,5,5,176,234,5,5,252,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,231,5,5,228,236,192,0,0,0,5,5,111,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,249,192,0,0,0,192,0,0,0,5,5,118,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,235,5,5,204,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,226,192,0,0,0,192,0,0,0,5,5,120,249,5,5,117,249,192,0,0,0,192,0,0,0,5,5,15,235,5,5,162,236,5,5,121,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,249,5,5,144,232,5,5,243,226,5,5,244,226,5,5,123,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,227,5,5,164,228,192,0,0,0,192,0,0,0,5,5,98,227,192,0,0,0,192,0,0,0,5,5,129,233,192,0,0,0,192,0,0,0,5,5,246,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,249,5,5,127,249,5,5,128,249,192,0,0,0,5,5,130,249,5,5,129,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,235,192,0,0,0,5,5,131,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,249,192,0,0,0,5,5,133,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,249,5,5,135,249,192,0,0,0,5,5,137,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,234,5,5,153,245,192,0,0,0,192,0,0,0,5,5,51,231,192,0,0,0,192,0,0,0,5,5,136,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,249,192,0,0,0,5,5,139,249,192,0,0,0,5,5,19,238,5,5,52,242,5,5,177,234,192,0,0,0,192,0,0,0,5,5,0,217,192,0,0,0,5,5,0,153,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,230,5,5,170,235,5,5,42,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,249,192,0,0,0,5,5,57,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,249,5,5,148,236,192,0,0,0,5,5,30,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,229,192,0,0,0,5,5,142,249,5,5,168,226,5,5,143,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,249,5,5,147,249,192,0,0,0,5,5,149,249,5,5,145,249,192,0,0,0,192,0,0,0,5,5,148,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,249,192,0,0,0,5,5,151,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,249,5,5,153,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,249,192,0,0,0,192,0,0,0,5,5,156,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,249,192,0,0,0,5,5,158,249,5,5,161,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,249,5,5,159,249,5,5,160,249,192,0,0,0,192,0,0,0,5,5,162,249,192,0,0,0,5,5,246,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,230,5,5,163,249,5,5,164,249,5,5,51,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,249,192,0,0,0,192,0,0,0,5,5,214,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,234,5,5,166,249,5,5,167,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,232,5,5,13,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,234,192,0,0,0,192,0,0,0,5,5,114,232,5,5,52,226,5,5,36,228,192,0,0,0,5,5,37,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,232,5,5,173,249,5,5,38,228,192,0,0,0,192,0,0,0,5,5,169,226,192,0,0,0,192,0,0,0,5,5,172,249,192,0,0,0,192,0,0,0,5,5,170,249,192,0,0,0,5,5,171,249,192,0,0,0,5,5,169,249,192,0,0,0,192,0,0,0,5,5,183,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,249,5,5,175,249,192,0,0,0,192,0,0,0,5,5,176,249,5,5,177,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,249,192,0,0,0,192,0,0,0,5,5,178,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,230,192,0,0,0,5,5,180,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,227,5,5,181,249,192,0,0,0,192,0,0,0,5,5,67,232,5,5,165,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,232,192,0,0,0,192,0,0,0,5,5,185,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,249,192,0,0,0,5,5,189,249,192,0,0,0,5,5,188,249,5,5,190,249,192,0,0,0,5,5,187,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,249,192,0,0,0,5,5,195,249,192,0,0,0,192,0,0,0,5,5,247,227,5,5,194,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,249,192,0,0,0,192,0,0,0,5,5,197,249,192,0,0,0,5,5,199,249,5,5,198,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,249,5,5,202,249,5,5,201,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,249,192,0,0,0,192,0,0,0,5,5,204,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,249,192,0,0,0,5,5,208,249,192,0,0,0,5,5,209,249,5,5,210,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,249,5,5,212,249,192,0,0,0,192,0,0,0,5,5,213,249,5,5,214,249,192,0,0,0,192,0,0,0,5,5,215,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,234,5,5,217,249,192,0,0,0,5,5,226,234,5,5,218,249,5,5,216,249,192,0,0,0,5,5,220,249,192,0,0,0,192,0,0,0,5,5,219,249,192,0,0,0,192,0,0,0,5,5,221,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,249,192,0,0,0,5,5,225,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,249,192,0,0,0,192,0,0,0,5,5,227,249,5,5,228,249,192,0,0,0,5,5,229,249,192,0,0,0,5,5,230,249,5,5,231,249,5,5,232,249,5,5,233,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,249,5,5,235,249,192,0,0,0,5,5,46,242,5,5,236,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,245,5,5,138,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,226,5,5,98,229,5,5,238,249,5,5,237,249,5,5,253,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,249,5,5,241,249,5,5,239,249,192,0,0,0,5,5,242,249,192,0,0,0,192,0,0,0,5,5,220,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,249,192,0,0,0,5,5,209,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,156,192,0,0,0,192,0,0,0,5,5,247,249,5,5,71,235,5,5,245,249,192,0,0,0,192,0,0,0,5,5,248,249,5,5,249,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,249,5,5,251,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,249,192,0,0,0,5,5,232,235,5,5,187,229,192,0,0,0,5,5,170,229,5,5,245,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,250,192,0,0,0,192,0,0,0,5,5,227,228,5,5,255,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,250,192,0,0,0,5,5,5,250,5,5,6,250,192,0,0,0,5,5,10,250,192,0,0,0,5,5,184,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,250,5,5,8,250,5,5,7,250,5,5,9,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,250,5,5,14,250,5,5,13,250,192,0,0,0,192,0,0,0,5,5,0,145,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,250,192,0,0,0,5,5,21,250,192,0,0,0,5,5,22,250,5,5,18,250,5,5,24,250,192,0,0,0,5,5,20,250,5,5,250,226,192,0,0,0,192,0,0,0,5,5,66,237,192,0,0,0,5,5,23,250,5,5,19,250,5,5,17,250,5,5,16,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,250,192,0,0,0,192,0,0,0,5,5,29,250,5,5,28,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,235,5,5,26,250,5,5,0,209,5,5,31,250,192,0,0,0,5,5,33,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,227,5,5,12,250,5,5,19,226,192,0,0,0,192,0,0,0,5,5,35,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,250,5,5,32,250,5,5,177,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,236,192,0,0,0,192,0,0,0,5,5,36,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,250,192,0,0,0,5,5,40,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,233,192,0,0,0,5,5,41,250,192,0,0,0,5,5,149,234,192,0,0,0,5,5,46,250,5,5,42,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,250,192,0,0,0,192,0,0,0,5,5,171,235,5,5,30,236,192,0,0,0,5,5,240,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,250,192,0,0,0,192,0,0,0,5,5,48,250,5,5,222,233,5,5,45,250,5,5,44,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,250,192,0,0,0,192,0,0,0,5,5,55,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,250,192,0,0,0,192,0,0,0,5,5,50,250,192,0,0,0,5,5,21,227,192,0,0,0,5,5,49,250,5,5,32,230,5,5,99,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,229,192,0,0,0,192,0,0,0,5,5,59,250,5,5,58,250,192,0,0,0,5,5,57,250,192,0,0,0,192,0,0,0,5,5,54,250,192,0,0,0,5,5,60,250,192,0,0,0,5,5,61,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,250,5,5,65,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,250,192,0,0,0,192,0,0,0,5,5,9,226,5,5,62,250,5,5,63,250,192,0,0,0,5,5,70,229,5,5,19,236,192,0,0,0,192,0,0,0,5,5,64,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,235,192,0,0,0,192,0,0,0,5,5,72,250,192,0,0,0,192,0,0,0,5,5,68,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,250,192,0,0,0,5,5,69,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,250,192,0,0,0,5,5,71,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,250,192,0,0,0,192,0,0,0,5,5,77,250,192,0,0,0,5,5,69,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,250,192,0,0,0,5,5,82,250,5,5,80,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,250,5,5,85,250,192,0,0,0,5,5,78,250,192,0,0,0,5,5,83,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,250,192,0,0,0,5,5,91,250,192,0,0,0,192,0,0,0,5,5,63,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,250,5,5,145,232,5,5,157,229,192,0,0,0,192,0,0,0,5,5,92,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,250,5,5,94,250,192,0,0,0,192,0,0,0,5,5,95,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,250,192,0,0,0,192,0,0,0,5,5,166,228,5,5,97,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,250,192,0,0,0,5,5,29,230,192,0,0,0,5,5,99,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,250,192,0,0,0,192,0,0,0,5,5,101,250,5,5,102,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,250,5,5,103,250,5,5,50,237,192,0,0,0,5,5,104,250,192,0,0,0,5,5,7,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,250,192,0,0,0,5,5,241,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,250,5,5,126,234,192,0,0,0,192,0,0,0,5,5,108,250,5,5,110,250,192,0,0,0,192,0,0,0,5,5,111,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,250,5,5,63,229,5,5,39,236,5,5,221,235,5,5,216,239,192,0,0,0,5,5,89,242,5,5,245,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,250,5,5,166,227,5,5,114,250,5,5,115,250,5,5,116,250,192,0,0,0,5,5,71,229,192,0,0,0,5,5,117,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,243,5,5,53,236,192,0,0,0,5,5,137,232,5,5,118,250,5,5,120,250,5,5,119,250,192,0,0,0,5,5,121,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,250,192,0,0,0,192,0,0,0,5,5,123,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,250,192,0,0,0,5,5,126,250,5,5,127,250,192,0,0,0,5,5,128,250,192,0,0,0,5,5,129,250,5,5,130,250,5,5,131,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,250,5,5,133,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,228,192,0,0,0,5,5,135,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,232,5,5,136,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,234,192,0,0,0,192,0,0,0,5,5,138,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,250,5,5,104,244,192,0,0,0,192,0,0,0,5,5,223,247,5,5,110,249,192,0,0,0,192,0,0,0,5,5,140,250,192,0,0,0,5,5,141,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,250,5,5,144,250,5,5,145,250,5,5,8,237,5,5,142,250,192,0,0,0,192,0,0,0,5,5,146,250,5,5,147,250,192,0,0,0,192,0,0,0,5,5,149,250,192,0,0,0,5,5,148,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,250,5,5,150,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,250,5,5,133,244,192,0,0,0,192,0,0,0,5,5,155,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,247,5,5,11,229,5,5,68,230,5,5,208,247,5,5,4,227,5,5,48,228,5,5,29,228,5,5,154,250,5,5,154,250,5,5,84,228,5,5,24,228,5,5,142,238,5,5,2,234,5,5,144,240,5,5,237,243,5,5,157,236,5,5,176,246,5,5,158,236,5,5,159,236,5,5,121,248,5,5,244,241,5,5,164,236,5,5,23,243,5,5,121,243,5,5,166,236,5,5,167,236,5,5,176,249,5,5,85,237,5,5,169,236,5,5,171,236,5,5,58,243,5,5,174,236,5,5,95,250,5,5,170,236,5,5,172,236,5,5,173,236,5,5,73,247,5,5,196,240,5,5,239,245,192,0,0,0,5,5,35,237,5,5,37,237,5,5,40,237,5,5,43,237,5,5,48,237,5,5,125,237,5,5,250,236,5,5,16,238,192,0,0,0,5,5,28,237,5,5,57,243,5,5,13,244,5,5,45,237,5,5,172,246,5,5,208,236,5,5,31,237,5,5,32,237,5,5,27,237,5,5,157,229,5,5,68,244,5,5,100,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,230,5,5,54,237,5,5,7,239,5,5,36,237,5,5,213,244,5,5,46,237,5,5,42,237,5,5,80,244,5,5,30,237,5,5,163,236,5,5,3,239,192,0,0,0,5,5,7,242,192,0,0,0,5,5,41,237,5,5,245,236,5,5,78,245,5,5,30,249,5,5,86,249,5,5,52,237,5,5,160,250,5,5,213,236,5,5,221,236,5,5,0,155,5,5,229,234,5,5,227,236,5,5,171,247,5,5,185,240,5,5,244,241,5,5,160,232,5,5,180,232,5,5,43,234,5,5,158,233,5,5,190,236,5,5,0,185,5,5,198,235,192,0,0,0,5,5,116,235,5,5,58,235,5,5,18,235,5,5,197,234,5,5,40,241,5,5,167,229,5,5,59,238,5,5,121,229,5,5,244,230,5,5,141,236,192,0,0,0,5,5,180,229,5,5,168,232,5,5,36,233,5,5,114,230,5,5,81,230,5,5,193,236,5,5,194,236,5,5,210,236,5,5,199,237,5,5,225,237,5,5,216,236,5,5,222,236,5,5,223,236,5,5,224,236,5,5,226,236,5,5,22,238,5,5,26,237,5,5,195,230,5,5,233,239,5,5,207,236,5,5,254,242,5,5,61,244,5,5,6,249,5,5,202,249,5,5,7,237,5,5,114,250,5,5,229,236,192,0,0,0,192,0,0,0,5,5,69,248,5,5,47,234,5,5,17,237,5,5,151,240,5,5,50,234,5,5,18,237,5,5,19,237,192,0,0,0,192,0,0,0,5,5,21,237,5,5,22,237,5,5,56,248,5,5,23,237,5,5,24,237,192,0,0,0,5,5,11,237,5,5,12,237,5,5,0,212,5,5,13,237,5,5,14,237,192,0,0,0,5,5,15,237,5,5,48,234,5,5,49,234,192,0,0,0,5,5,20,237,5,5,111,243,5,5,247,236,5,5,191,238,5,5,43,234,5,5,252,236,5,5,253,236,5,5,254,236,5,5,135,243,5,5,134,245,5,5,166,245,5,5,3,237,5,5,5,237,5,5,78,249,5,5,228,236,5,5,249,236,5,5,106,244,5,5,151,248,5,5,50,249,5,5,71,240,5,5,209,236,5,5,211,236,5,5,214,236,5,5,34,234,5,5,215,236,5,5,244,241,5,5,48,243,5,5,219,236,5,5,133,246,5,5,225,236,5,5,204,236,5,5,81,241,5,5,25,249,5,5,195,236,192,0,0,0,5,5,82,236,5,5,196,236,5,5,197,236,5,5,198,236,5,5,199,236,5,5,200,236,5,5,239,234,5,5,246,236,5,5,49,237,5,5,161,240,5,5,188,236,5,5,231,236,5,5,167,239,5,5,164,242,5,5,238,236,5,5,189,236,5,5,106,240,5,5,62,228,5,5,190,236,5,5,202,236,5,5,176,236,5,5,177,236,5,5,178,236,5,5,0,181,5,5,179,236,5,5,180,236,5,5,103,233,5,5,181,236,5,5,183,236,5,5,140,240,5,5,184,236,5,5,185,236,5,5,186,236,5,5,187,236,5,5,223,233,5,5,112,233,5,5,78,238,5,5,235,236,192,0,0,0,5,5,171,246,5,5,239,236,5,5,240,236,5,5,241,236,5,5,233,236,5,5,234,236,5,5,237,236,5,5,191,236,5,5,246,226,5,5,201,236,192,0,0,0,5,5,12,243,5,5,31,230,5,5,134,230,5,5,231,232,5,5,215,229,5,5,194,231,5,5,155,233,5,5,153,232,5,5,190,233,5,5,150,232,5,5,214,233,5,5,183,235,5,5,58,248,5,5,38,229,5,5,49,229,5,5,157,228,5,5,223,226,5,5,193,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,233,192,0,0,0,5,5,154,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,232,5,5,51,226,5,5,255,236,5,5,74,231,5,5,247,230,5,5,61,235,5,5,81,236,5,5,162,231,5,5,5,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,230,192,0,0,0,192,0,0,0,5,5,0,205,5,5,150,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,234,5,5,4,230,5,5,83,227,5,5,69,233,192,0,0,0,5,5,4,237,5,5,44,235,5,5,22,232,5,5,34,236,5,5,117,235,5,5,6,228,5,5,186,234,5,5,253,226,5,5,182,232,5,5,103,227,5,5,89,235,5,5,201,235,5,5,32,232,5,5,134,239,5,5,179,226,5,5,204,226,5,5,70,232,5,5,12,233,5,5,16,235,5,5,115,227,5,5,183,230,5,5,95,234,5,5,188,226,5,5,185,230,5,5,57,227,5,5,63,230,192,0,0,0,5,5,156,232,5,5,200,234,5,5,64,230,5,5,241,229,5,5,125,227,5,5,108,236,5,5,12,232,5,5,151,230,5,5,140,226,5,5,91,233,5,5,68,229,5,5,237,233,5,5,201,231,5,5,21,237,5,5,69,245,5,5,169,234,5,5,188,230,5,5,66,230,5,5,121,230,192,0,0,0,192,0,0,0,5,5,252,232,5,5,6,227,5,5,249,229,5,5,54,226,5,5,22,228,5,5,14,235,5,5,73,232,192,0,0,0,5,5,0,205,5,5,19,234,5,5,245,227,5,5,15,235,5,5,87,228,192,0,0,0,5,5,84,227,192,0,0,0,192,0,0,0,5,5,94,235,5,5,222,237,5,5,250,231,192,0,0,0,5,5,136,230,5,5,202,237,5,5,94,236,5,5,73,230,5,5,253,226,192,0,0,0,5,5,129,238,192,0,0,0,5,5,49,233,5,5,75,235,5,5,62,226,5,5,213,235,5,5,60,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,229,5,5,21,240,5,5,80,240,5,5,63,231,5,5,86,236,5,5,70,232,192,0,0,0,5,5,12,233,5,5,125,232,5,5,230,240,5,5,208,240,192,0,0,0,5,5,33,241,5,5,154,231,5,5,37,237,5,5,184,235,5,5,31,231,5,5,63,242,5,5,180,229,5,5,196,236,192,0,0,0,5,5,16,230,5,5,57,227,5,5,244,233,5,5,63,230,192,0,0,0,5,5,77,230,5,5,166,234,5,5,250,232,192,0,0,0,192,0,0,0,5,5,162,226,192,0,0,0,5,5,220,243,5,5,51,226,5,5,161,231,5,5,34,233,192,0,0,0,5,5,233,232,192,0,0,0,192,0,0,0,5,5,201,231,192,0,0,0,5,5,37,245,5,5,21,237,192,0,0,0,5,5,66,230,5,5,37,229,5,5,148,226,192,0,0,0,5,5,63,247,5,5,64,235,5,5,249,229,5,5,24,233,5,5,192,230,5,5,169,231,5,5,54,226,5,5,160,232,5,5,89,236,5,5,22,228,5,5,43,241,5,5,73,232,5,5,90,236,5,5,114,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,234,5,5,81,236,192,0,0,0,5,5,245,227,192,0,0,0,5,5,15,235,192,0,0,0,5,5,154,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,192,0,0,0,192,0,0,0,133,5,24,9,133,5,70,10,133,5,72,10,133,5,34,7,192,0,0,0,198,65,13,0,198,1,0,0,198,65,0,0,198,129,0,0,198,193,0,0,198,1,1,0,198,97,11,0,198,161,11,0,198,225,11,0,198,193,5,0,192,0,0,0,198,33,0,0,198,97,0,0,198,161,0,0,198,225,0,0,198,33,1,0,198,65,1,0,198,161,1,0,198,1,2,0,198,97,2,0,198,193,2,0,198,33,3,0,198,129,3,0,198,225,3,0,198,65,4,0,198,161,4,0,198,1,5,0,198,97,5,0,198,225,5,0,198,65,6,0,198,161,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,65,8,0,198,225,8,0,198,129,9,0,198,33,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,129,11,0,198,193,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,225,12,0,198,97,13,0,192,0,0,0,192,0,0,0,198,129,35,0,133,5,6,121,133,5,8,121,133,5,183,121,133,5,10,121,133,5,187,121,133,5,189,121,133,5,12,121,133,5,14,121,133,5,16,121,133,5,195,121,133,5,197,121,133,5,199,121,133,5,201,121,133,5,203,121,133,5,205,121,133,5,52,121,133,5,18,121,133,5,20,121,133,5,22,121,133,5,66,121,133,5,24,121,133,5,26,121,133,5,28,121,133,5,30,121,133,5,32,121,133,5,34,121,133,5,36,121,133,5,38,121,133,5,40,121,133,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,133,5,103,121,133,5,105,121,133,5,107,121,133,5,109,121,133,5,111,121,133,5,113,121,192,0,0,0,192,0,0,0,133,5,115,121,133,5,117,121,133,5,119,121,133,5,121,121,133,5,123,121,133,5,125,121,192,0,0,0,192,0,0,0,133,5,127,121,133,5,129,121,133,5,131,121,133,5,133,121,133,5,135,121,133,5,137,121,192,0,0,0,192,0,0,0,133,5,139,121,133,5,141,121,133,5,143,121,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,13,5,5,140,13,5,5,135,12,5,5,0,4,5,5,139,12,5,5,142,13,5,5,192,13,192,0,0,0,133,5,172,12,133,5,99,12,133,5,103,12,133,5,101,12,133,5,105,12,133,5,180,12,133,5,185,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,234,5,5,22,232,5,5,68,232,192,0,0,0,192,0,0,0,5,5,34,236,5,5,196,237,192,0,0,0,5,5,39,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,229,192,0,0,0,5,5,21,231,5,5,212,237,192,0,0,0,5,5,161,233,5,5,222,237,192,0,0,0,5,5,232,237,5,5,89,231,192,0,0,0,5,5,65,229,192,0,0,0,5,5,252,226,192,0,0,0,192,0,0,0,5,5,94,236,5,5,117,235,5,5,6,228,5,5,73,230,5,5,141,235,5,5,25,238,5,5,198,235,5,5,42,238,5,5,186,234,5,5,110,234,5,5,78,232,192,0,0,0,5,5,222,227,5,5,222,227,5,5,222,227,192,0,0,0,5,5,189,226,5,5,176,227,5,5,62,238,192,0,0,0,5,5,223,227,5,5,38,230,192,0,0,0,192,0,0,0,5,5,177,227,5,5,76,233,5,5,108,230,5,5,95,238,192,0,0,0,5,5,164,233,5,5,80,228,5,5,119,238,5,5,247,231,5,5,247,231,5,5,129,238,5,5,160,227,192,0,0,0,192,0,0,0,5,5,201,238,5,5,182,232,192,0,0,0,192,0,0,0,5,5,74,235,5,5,194,231,5,5,28,232,5,5,23,231,5,5,41,231,192,0,0,0,5,5,83,228,192,0,0,0,5,5,143,235,192,0,0,0,192,0,0,0,5,5,100,234,5,5,63,233,192,0,0,0,5,5,101,232,5,5,14,236,5,5,31,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,5,5,82,239,192,0,0,0,5,5,102,239,192,0,0,0,5,5,43,234,5,5,115,239,192,0,0,0,5,5,101,230,5,5,215,230,5,5,184,233,5,5,122,239,192,0,0,0,5,5,141,233,5,5,134,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,230,192,0,0,0,192,0,0,0,5,5,171,232,192,0,0,0,5,5,179,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,230,5,5,35,237,192,0,0,0,5,5,239,239,192,0,0,0,192,0,0,0,5,5,248,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,228,5,5,10,233,192,0,0,0,192,0,0,0,5,5,38,234,5,5,228,229,192,0,0,0,5,5,59,240,192,0,0,0,192,0,0,0,5,5,179,226,192,0,0,0,5,5,247,233,5,5,12,230,5,5,4,229,5,5,63,231,5,5,4,229,192,0,0,0,5,5,70,232,5,5,143,228,5,5,76,235,192,0,0,0,192,0,0,0,5,5,12,233,5,5,144,240,5,5,150,231,5,5,157,240,192,0,0,0,5,5,150,235,5,5,179,240,5,5,205,240,192,0,0,0,5,5,178,234,192,0,0,0,5,5,60,230,5,5,37,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,226,192,0,0,0,5,5,218,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,235,5,5,93,228,192,0,0,0,192,0,0,0,5,5,189,230,5,5,70,241,192,0,0,0,5,5,183,230,192,0,0,0,192,0,0,0,5,5,187,235,5,5,210,237,5,5,119,229,192,0,0,0,5,5,186,245,192,0,0,0,5,5,37,237,5,5,184,235,192,0,0,0,5,5,116,241,5,5,75,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,241,192,0,0,0,5,5,95,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,228,192,0,0,0,5,5,15,230,192,0,0,0,5,5,58,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,229,5,5,228,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,234,192,0,0,0,5,5,68,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,234,5,5,188,226,5,5,196,236,5,5,18,229,5,5,69,231,5,5,145,242,192,0,0,0,192,0,0,0,5,5,19,229,5,5,167,242,192,0,0,0,5,5,16,230,192,0,0,0,192,0,0,0,5,5,146,242,5,5,16,233,192,0,0,0,192,0,0,0,5,5,238,242,192,0,0,0,5,5,244,233,5,5,255,242,192,0,0,0,192,0,0,0,5,5,130,229,192,0,0,0,5,5,190,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,243,5,5,77,230,192,0,0,0,192,0,0,0,5,5,132,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,243,5,5,96,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,243,192,0,0,0,192,0,0,0,5,5,144,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,244,5,5,73,231,5,5,73,231,192,0,0,0,192,0,0,0,5,5,38,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,232,192,0,0,0,192,0,0,0,5,5,61,235,192,0,0,0,192,0,0,0,5,5,68,229,192,0,0,0,5,5,116,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,244,5,5,223,232,192,0,0,0,192,0,0,0,5,5,6,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,227,192,0,0,0,5,5,34,245,192,0,0,0,5,5,45,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,245,192,0,0,0,192,0,0,0,5,5,0,199,192,0,0,0,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,245,192,0,0,0,5,5,27,230,192,0,0,0,192,0,0,0,5,5,0,208,5,5,53,230,192,0,0,0,5,5,144,226,5,5,161,235,5,5,164,226,5,5,34,228,192,0,0,0,5,5,81,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,246,5,5,90,246,192,0,0,0,5,5,252,232,192,0,0,0,5,5,156,227,5,5,19,228,5,5,138,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,227,5,5,208,236,5,5,181,246,192,0,0,0,5,5,185,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,231,5,5,89,236,5,5,43,241,5,5,186,247,192,0,0,0,5,5,75,227,5,5,209,247,192,0,0,0,5,5,133,227,192,0,0,0,192,0,0,0,5,5,242,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,235,192,0,0,0,5,5,128,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,234,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,64,3,0,5,0,0,6,122,64,133,0,5,0,0,6,122,64,3,0,5,0,0,8,122,64,133,0,5,0,0,8,122,64,3,0,5,0,0,10,122,64,133,0,5,0,0,10,122,64,3,0,5,0,0,14,122,64,133,0,5,0,0,14,122,64,3,0,5,0,0,16,122,64,133,0,5,0,0,16,122,64,133,0,5,0,0,18,122,64,133,0,5,0,0,18,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,20,122,64,133,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,22,122,64,133,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,24,122,64,133,0,5,0,0,24,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,26,122,64,133,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,28,122,64,133,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,30,122,64,133,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,32,122,64,133,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,34,122,64,133,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,36,122,64,133,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,38,122,64,133,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,40,122,64,133,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,42,122,64,133,0,5,0,0,42,122,64,133,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,44,122,64,133,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,46,122,64,133,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,48,122,64,133,0,5,0,0,50,122,64,133,0,5,0,0,52,122,64,133,0,5,0,0,54,122,64,133,0,5,0,0,56,122,64,133,0,5,0,0,58,122,64,133,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,58,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,60,122,64,133,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,60,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,62,122,64,133,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,62,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,64,122,64,133,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,64,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,66,122,64,133,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,66,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,68,122,64,133,0,5,0,0,70,122,64,133,0,5,0,0,72,122,64,133,0,5,0,0,74,122,64,133,0,5,0,0,76,122,64,3,0,5,0,0,78,122,64,133,0,5,0,0,78,122,64,3,0,5,0,0,80,122,64,133,0,5,0,0,80,122,64,3,0,5,0,0,82,122,64,133,0,5,0,0,82,122,64,133,0,5,0,0,84,122,64,133,0,5,0,0,86,122,64,133,0,5,0,0,88,122,64,133,0,5,0,0,90,122,64,133,0,5,0,0,92,122,64,3,0,5,0,0,94,122,64,133,0,5,0,0,94,122,64,133,0,5,0,0,96,122,64,133,0,5,0,0,98,122,64,133,0,5,0,0,100,122,64,133,0,5,0,0,102,122,64,133,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,18,122,64,3,0,5,0,0,24,122,64,133,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,6,122,64,2,0,5,0,0,8,122,64,2,0,5,0,0,10,122,64,2,0,5,0,0,14,122,64,2,0,5,0,0,16,122,64,5,0,5,0,0,116,13,64,4,0,5,0,0,6,122,64,4,0,5,0,0,8,122,64,4,0,5,0,0,10,122,64,4,0,5,0,0,14,122,64,4,0,5,0,0,16,122,64,4,0,5,0,0,18,122,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,64,2,0,5,0,0,20,122,64,2,0,5,0,0,22,122,64,4,0,5,0,0,24,122,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,64,2,0,5,0,0,26,122,64,2,0,5,0,0,28,122,64,4,0,5,0,0,30,122,64,4,0,5,0,0,32,122,64,2,0,5,0,0,34,122,64,2,0,5,0,0,36,122,64,2,0,5,0,0,38,122,64,2,0,5,0,0,40,122,64,4,0,5,0,0,42,122,64,2,0,5,0,0,44,122,64,2,0,5,0,0,46,122,64,2,0,5,0,0,48,122,64,2,0,5,0,0,50,122,64,2,0,5,0,0,52,122,64,2,0,5,0,0,54,122,64,2,0,5,0,0,56,122,64,2,0,5,0,0,58,122,64,2,0,5,0,0,60,122,64,2,0,5,0,0,62,122,64,2,0,5,0,0,64,122,64,2,0,5,0,0,66,122,64,4,0,5,0,0,68,122,64,2,0,5,0,0,70,122,64,2,0,5,0,0,72,122,64,4,0,5,0,0,74,122,64,2,0,5,0,0,76,122,64,4,0,5,0,0,78,122,64,4,0,5,0,0,80,122,64,4,0,5,0,0,82,122,64,2,0,5,0,0,84,122,64,2,0,5,0,0,86,122,64,2,0,5,0,0,88,122,64,2,0,5,0,0,90,122,64,2,0,5,0,0,92,122,64,4,0,5,0,0,94,122,64,4,0,5,0,0,96,122,64,4,0,5,0,0,98,122,64,4,0,5,0,0,100,122,64,2,0,5,0,0,102,122,64,5,0,5,0,0,116,13,0,5,0,174,0,0,0,0,64,4,0,5,0,0,6,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,8,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,14,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,16,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,18,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,24,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,48,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,50,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,52,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,54,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,56,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,68,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,70,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,72,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,74,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,76,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,78,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,80,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,82,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,84,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,86,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,88,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,90,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,92,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,102,122,0,5,0,174,0,0,0,0,64,5,0,5,0,0,26,122,0,5,0,70,0,0,46,122,0,133,0,5,0,247,101,121,0,0,0,0,5,5,18,122,2,174,0,0,5,5,24,122,3,174,0,0,5,5,116,13,5,174,0,0,4,5,6,122,5,174,0,0,4,5,8,122,5,174,0,0,4,5,10,122,5,174,0,0,4,5,14,122,5,174,0,0,4,5,16,122,5,174,0,0,4,5,18,122,5,174,0,0,5,5,18,122,2,174,0,0,5,174,0,0,2,5,20,122,5,174,0,0,2,5,22,122,5,174,0,0,4,5,24,122,5,174,0,0,5,5,24,122,3,174,0,0,5,174,0,0,2,5,26,122,5,174,0,0,2,5,28,122,5,174,0,0,4,5,30,122,5,174,0,0,4,5,32,122,5,174,0,0,2,5,34,122,5,174,0,0,2,5,36,122,5,174,0,0,2,5,38,122,5,174,0,0,2,5,40,122,5,174,0,0,4,5,42,122,5,174,0,0,2,5,44,122,5,174,0,0,2,5,46,122,5,174,0,0,2,5,48,122,5,174,0,0,2,5,50,122,5,174,0,0,2,5,52,122,5,174,0,0,2,5,54,122,5,174,0,0,2,5,56,122,5,174,0,0,2,5,58,122,5,174,0,0,2,5,60,122,5,174,0,0,2,5,62,122,5,174,0,0,2,5,64,122,5,174,0,0,2,5,66,122,5,174,0,0,4,5,68,122,5,174,0,0,2,5,70,122,5,174,0,0,2,5,72,122,5,174,0,0,4,5,74,122,5,174,0,0,2,5,76,122,5,174,0,0,4,5,78,122,5,174,0,0,4,5,80,122,5,174,0,0,4,5,82,122,5,174,0,0,2,5,84,122,5,174,0,0,2,5,86,122,5,174,0,0,2,5,88,122,5,174,0,0,2,5,90,122,5,174,0,0,2,5,92,122,5,174,0,0,4,5,94,122,5,174,0,0,4,5,96,122,5,174,0,0,4,5,98,122,5,174,0,0,4,5,100,122,5,174,0,0,2,5,102,122,5,174,0,0,5,5,82,122,5,70,86,122,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,116,13,5,5,0,0,87,0,109,48,48,1,131,48,204,0,142,48,154,0,147,48,132,0,150,48,118,0,150,48,255,255,24,122,4,5,153,48,22,0,154,48,4,0,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,20,0,93,48,48,0,104,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,104,48,255,255,46,122,2,5,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,93,48,255,255,36,122,2,5,95,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,100,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,83,48,20,0,83,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,87,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,70,48,255,255,10,122,4,5,75,48,197,162,77,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,81,48,0,192,197,98,147,48,255,255,102,122,2,5,148,48,255,255,10,122,4,5,149,48,255,255,18,122,4,5,142,48,255,255,94,122,4,5,143,48,255,255,94,122,4,5,144,48,255,255,96,122,4,5,145,48,255,255,98,122,4,5,146,48,255,255,100,122,4,5,136,48,26,0,139,48,12,0,139,48,255,255,88,122,2,5,140,48,255,255,90,122,2,5,141,48,255,255,92,122,2,5,136,48,255,255,82,122,4,5,137,48,255,255,84,122,2,5,138,48,255,255,86,122,2,5,131,48,255,255,78,122,4,5,132,48,255,255,78,122,4,5,133,48,255,255,80,122,4,5,134,48,255,255,80,122,4,5,135,48,255,255,82,122,4,5,120,48,48,0,125,48,26,0,128,48,12,0,128,48,255,255,72,122,2,5,129,48,255,255,74,122,4,5,130,48,255,255,76,122,2,5,125,48,255,255,66,122,2,5,126,48,255,255,68,122,4,5,127,48,255,255,70,122,2,5,120,48,255,255,64,122,2,5,121,48,255,255,64,122,2,5,122,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,124,48,255,255,66,122,2,5,114,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,118,48,255,255,62,122,2,5,119,48,255,255,62,122,2,5,114,48,255,255,60,122,2,5,115,48,255,255,60,122,2,5,116,48,255,255,60,122,2,5,109,48,255,255,54,122,2,5,110,48,255,255,56,122,2,5,111,48,255,255,58,122,2,5,112,48,255,255,58,122,2,5,113,48,255,255,58,122,2,5,87,48,98,0,98,48,48,0,103,48,26,0,106,48,12,0,106,48,255,255,48,122,2,5,107,48,255,255,50,122,2,5,108,48,255,255,52,122,2,5,103,48,255,255,44,122,2,5,104,48,255,255,46,122,2,5,105,48,255,255,46,122,2,5,98,48,255,255,40,122,2,5,99,48,255,255,42,122,4,5,100,48,255,255,42,122,4,5,101,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,92,48,26,0,95,48,12,0,95,48,255,255,38,122,2,5,96,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,92,48,255,255,34,122,2,5,93,48,255,255,36,122,2,5,94,48,255,255,36,122,2,5,87,48,255,255,30,122,4,5,88,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,90,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,76,48,45,0,81,48,25,0,84,48,12,0,84,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,86,48,255,255,28,122,2,5,81,48,255,255,24,122,4,5,82,48,0,192,197,98,83,48,255,255,26,122,2,5,76,48,197,162,77,48,255,255,20,122,2,5,78,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,80,48,255,255,22,122,2,5,70,48,26,0,73,48,12,0,73,48,255,255,16,122,4,5,74,48,255,255,16,122,4,5,75,48,255,255,18,122,4,5,70,48,255,255,10,122,4,5,71,48,255,255,14,122,4,5,72,48,255,255,14,122,4,5,65,48,255,255,6,122,4,5,66,48,255,255,6,122,4,5,67,48,255,255,8,122,4,5,68,48,255,255,8,122,4,5,69,48,255,255,10,122,4,5,0,0,197,162,0,0,87,0,109,48,239,0,131,48,161,0,142,48,122,0,147,48,105,0,150,48,94,0,150,48,3,192,197,66,153,48,17,0,154,48,4,0,111,48,7,192,197,226,114,48,8,192,197,34,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,20,0,93,48,37,0,104,48,20,0,117,48,9,0,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,104,48,6,192,197,98,111,48,7,192,197,226,114,48,8,192,197,34,93,48,5,192,197,34,95,48,5,192,197,98,97,48,5,192,197,162,100,48,5,192,197,226,102,48,6,192,197,34,83,48,15,0,83,48,3,192,197,226,85,48,4,192,197,34,87,48,4,192,197,98,89,48,4,192,197,162,91,48,4,192,197,226,70,48,1,192,197,98,75,48,2,192,197,99,77,48,2,192,197,194,79,48,3,192,197,2,81,48,3,192,197,131,147,48,13,192,197,98,148,48,1,192,197,98,149,48,2,192,197,34,142,48,12,192,197,98,143,48,12,192,197,98,144,48,12,192,197,162,145,48,12,192,197,226,146,48,13,192,197,34,136,48,20,0,139,48,9,0,139,48,11,192,197,162,140,48,11,192,197,226,141,48,12,192,197,34,136,48,10,192,197,226,137,48,11,192,197,34,138,48,11,192,197,98,131,48,10,192,197,98,132,48,10,192,197,98,133,48,10,192,197,162,134,48,10,192,197,162,135,48,10,192,197,226,120,48,37,0,125,48,20,0,128,48,9,0,128,48,9,192,197,162,129,48,9,192,197,226,130,48,10,192,197,34,125,48,8,192,197,226,126,48,9,192,197,34,127,48,9,192,197,98,120,48,8,192,197,162,121,48,8,192,197,162,122,48,8,192,197,162,123,48,8,192,197,226,124,48,8,192,197,226,114,48,20,0,117,48,9,0,117,48,8,192,197,98,118,48,8,192,197,98,119,48,8,192,197,98,114,48,8,192,197,34,115,48,8,192,197,34,116,48,8,192,197,34,109,48,7,192,197,98,110,48,7,192,197,162,111,48,7,192,197,226,112,48,7,192,197,226,113,48,7,192,197,226,87,48,76,0,98,48,37,0,103,48,20,0,106,48,9,0,106,48,6,192,197,162,107,48,6,192,197,226,108,48,7,192,197,34,103,48,6,192,197,34,104,48,6,192,197,98,105,48,6,192,197,98,98,48,5,192,197,162,99,48,5,192,197,226,100,48,5,192,197,226,101,48,5,192,197,226,102,48,6,192,197,34,92,48,20,0,95,48,9,0,95,48,5,192,197,98,96,48,5,192,197,98,97,48,5,192,197,162,92,48,4,192,197,226,93,48,5,192,197,34,94,48,5,192,197,34,87,48,4,192,197,98,88,48,4,192,197,98,89,48,4,192,197,162,90,48,4,192,197,162,91,48,4,192,197,226,76,48,37,0,81,48,20,0,84,48,9,0,84,48,3,192,197,226,85,48,4,192,197,34,86,48,4,192,197,34,81,48,3,192,197,66,82,48,3,192,197,131,83,48,3,192,197,226,76,48,2,192,197,99,77,48,2,192,197,194,78,48,2,192,197,194,79,48,3,192,197,2,80,48,3,192,197,2,70,48,20,0,73,48,9,0,73,48,1,192,197,226,74,48,1,192,197,226,75,48,2,192,197,34,70,48,1,192,197,98,71,48,1,192,197,162,72,48,1,192,197,162,65,48,0,192,197,226,66,48,0,192,197,226,67,48,1,192,197,34,68,48,1,192,197,34,69,48,1,192,197,98,118,13,5,5,0,0,245,0,197,48,175,1,248,49,216,0,126,255,107,0,141,255,54,0,149,255,26,0,153,255,12,0,153,255,15,192,198,65,154,255,15,192,198,97,155,255,15,192,198,129,156,255,15,192,198,1,149,255,15,192,198,65,150,255,15,192,198,129,151,255,15,192,198,1,152,255,15,192,198,33,145,255,12,0,145,255,15,192,198,65,146,255,15,192,198,97,147,255,15,192,198,129,148,255,15,192,198,1,141,255,15,192,198,97,142,255,15,192,198,129,143,255,15,192,198,1,144,255,15,192,198,33,133,255,26,0,137,255,12,0,137,255,15,192,198,129,138,255,15,192,198,1,139,255,15,192,198,33,140,255,15,192,198,65,133,255,15,192,198,1,134,255,15,192,198,33,135,255,15,192,198,65,136,255,15,192,198,97,129,255,12,0,129,255,15,192,198,33,130,255,15,192,198,65,131,255,15,192,198,97,132,255,15,192,198,129,126,255,15,192,198,97,127,255,15,192,198,129,128,255,15,192,198,1,109,255,54,0,118,255,26,0,122,255,12,0,122,255,15,192,198,129,123,255,15,192,198,1,124,255,15,192,198,33,125,255,15,192,198,65,118,255,15,192,198,1,119,255,15,192,198,33,120,255,15,192,198,65,121,255,15,192,198,97,114,255,12,0,114,255,15,192,198,33,115,255,15,192,198,65,116,255,15,192,198,97,117,255,15,192,198,129,109,255,15,192,198,65,110,255,15,192,198,129,111,255,15,192,198,65,113,255,15,192,198,1,255,49,26,0,105,255,12,0,105,255,15,192,198,65,106,255,15,192,198,97,107,255,15,192,198,129,108,255,15,192,198,1,255,49,15,192,198,129,102,255,15,192,198,129,103,255,15,192,198,1,104,255,15,192,198,33,251,49,12,0,251,49,15,192,198,1,252,49,15,192,198,33,253,49,15,192,198,65,254,49,15,192,198,97,248,49,15,192,198,97,249,49,15,192,198,129,250,49,15,192,198,65,227,48,107,0,242,48,54,0,240,49,26,0,244,49,12,0,244,49,15,192,198,65,245,49,15,192,198,1,246,49,15,192,198,33,247,49,15,192,198,65,240,49,15,192,198,65,241,49,15,192,198,33,242,49,15,192,198,65,243,49,15,192,198,129,247,48,12,0,247,48,15,192,198,1,248,48,15,192,198,33,249,48,15,192,198,97,250,48,15,192,198,129,242,48,15,192,198,129,244,48,15,192,198,65,245,48,15,192,198,1,246,48,15,192,198,97,234,48,26,0,238,48,12,0,238,48,15,192,198,1,239,48,15,192,198,1,240,48,15,192,198,33,241,48,15,192,198,97,234,48,15,192,198,33,235,48,15,192,198,65,236,48,15,192,198,97,237,48,15,192,198,129,230,48,12,0,230,48,15,192,198,65,231,48,15,192,198,129,232,48,15,192,198,129,233,48,15,192,198,1,227,48,15,192,198,1,228,48,15,192,198,1,229,48,15,192,198,65,212,48,51,0,219,48,26,0,223,48,12,0,223,48,15,192,198,33,224,48,15,192,198,65,225,48,15,192,198,97,226,48,15,192,198,129,219,48,15,192,198,129,220,48,15,192,198,129,221,48,15,192,198,129,222,48,15,192,198,1,215,48,12,0,215,48,15,192,198,65,216,48,15,192,198,97,217,48,15,192,198,97,218,48,15,192,198,97,212,48,15,192,198,33,213,48,15,192,198,65,214,48,15,192,198,65,204,48,26,0,208,48,12,0,208,48,15,192,198,1,209,48,15,192,198,1,210,48,15,192,198,33,211,48,15,192,198,33,204,48,15,192,198,65,205,48,15,192,198,97,206,48,15,192,198,129,207,48,15,192,198,1,200,48,12,0,200,48,15,192,198,129,201,48,15,192,198,129,202,48,15,192,198,1,203,48,15,192,198,33,197,48,15,192,198,65,198,48,15,192,198,97,199,48,15,192,198,97,126,48,206,1,166,48,107,0,181,48,54,0,189,48,26,0,193,48,12,0,193,48,15,192,198,33,194,48,15,192,198,33,195,48,15,192,198,65,196,48,15,192,198,65,189,48,15,192,198,129,190,48,15,192,198,129,191,48,15,192,198,1,192,48,15,192,198,1,185,48,12,0,185,48,15,192,198,65,186,48,15,192,198,65,187,48,15,192,198,97,188,48,15,192,198,97,181,48,15,192,198,1,182,48,15,192,198,1,183,48,15,192,198,33,184,48,15,192,198,33,173,48,26,0,177,48,12,0,177,48,15,192,198,97,178,48,15,192,198,97,179,48,15,192,198,129,180,48,15,192,198,129,173,48,15,192,198,33,174,48,15,192,198,33,175,48,15,192,198,65,176,48,15,192,198,65,169,48,12,0,169,48,15,192,198,129,170,48,15,192,198,129,171,48,15,192,198,1,172,48,15,192,198,1,166,48,15,192,198,65,167,48,15,192,198,97,168,48,15,192,198,97,141,48,29,1,150,48,249,0,162,48,12,0,162,48,15,192,198,1,163,48,15,192,198,33,164,48,15,192,198,33,165,48,15,192,198,65,150,48,255,255,14,122,2,5,153,48,5,0,154,48,189,0,161,48,15,192,198,1,45,0,173,48,81,0,196,48,42,0,216,48,20,0,240,48,9,0,240,48,15,192,198,33,241,48,15,192,198,97,242,48,15,192,198,129,216,48,15,192,198,97,219,48,15,192,198,129,239,48,15,192,198,1,207,48,9,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,196,48,15,192,198,65,198,48,15,192,198,97,200,48,15,192,198,129,183,48,20,0,189,48,9,0,189,48,15,192,198,129,191,48,15,192,198,1,193,48,15,192,198,33,183,48,15,192,198,33,185,48,15,192,198,65,187,48,15,192,198,97,173,48,15,192,198,33,175,48,15,192,198,65,177,48,15,192,198,97,179,48,15,192,198,129,181,48,15,192,198,1,95,48,52,0,114,48,24,0,123,48,10,0,123,48,255,255,16,122,2,5,166,48,15,192,198,65,171,48,15,192,198,1,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,102,48,12,0,102,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,95,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,100,48,255,255,10,122,2,5,83,48,26,0,89,48,12,0,89,48,255,255,10,122,2,5,91,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,83,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,87,48,255,255,8,122,2,5,70,48,255,255,10,122,2,5,75,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,9,0,207,48,15,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,216,48,15,192,198,97,219,48,15,192,198,129,111,48,255,255,6,122,2,5,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,145,48,16,0,145,48,255,255,14,122,2,5,146,48,255,255,16,122,2,5,148,48,255,255,10,122,2,5,149,48,255,255,6,122,2,5,141,48,255,255,16,122,2,5,142,48,255,255,6,122,2,5,143,48,255,255,6,122,2,5,144,48,255,255,8,122,2,5,133,48,34,0,137,48,16,0,137,48,255,255,6,122,2,5,138,48,255,255,8,122,2,5,139,48,255,255,10,122,2,5,140,48,255,255,14,122,2,5,133,48,255,255,10,122,2,5,134,48,255,255,10,122,2,5,135,48,255,255,16,122,2,5,136,48,255,255,16,122,2,5,129,48,16,0,129,48,255,255,14,122,2,5,130,48,255,255,16,122,2,5,131,48,255,255,6,122,2,5,132,48,255,255,6,122,2,5,126,48,255,255,6,122,2,5,127,48,255,255,8,122,2,5,128,48,255,255,10,122,2,5,95,48,138,0,110,48,70,0,118,48,34,0,122,48,16,0,122,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,124,48,255,255,16,122,2,5,125,48,255,255,16,122,2,5,118,48,255,255,10,122,2,5,119,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,121,48,255,255,14,122,2,5,114,48,16,0,114,48,255,255,8,122,2,5,115,48,255,255,8,122,2,5,116,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,110,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,112,48,255,255,6,122,2,5,113,48,255,255,6,122,2,5,102,48,34,0,106,48,16,0,106,48,255,255,6,122,2,5,107,48,255,255,8,122,2,5,108,48,255,255,10,122,2,5,109,48,255,255,14,122,2,5,102,48,255,255,14,122,2,5,103,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,105,48,255,255,16,122,2,5,98,48,16,0,98,48,255,255,8,122,2,5,99,48,255,255,10,122,2,5,100,48,255,255,10,122,2,5,101,48,255,255,10,122,2,5,95,48,255,255,6,122,2,5,96,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,80,48,66,0,87,48,34,0,91,48,16,0,91,48,255,255,14,122,2,5,92,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,94,48,255,255,16,122,2,5,87,48,255,255,8,122,2,5,88,48,255,255,8,122,2,5,89,48,255,255,10,122,2,5,90,48,255,255,10,122,2,5,83,48,16,0,83,48,255,255,16,122,2,5,84,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,86,48,255,255,6,122,2,5,80,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,82,48,255,255,14,122,2,5,72,48,34,0,76,48,16,0,76,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,78,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,72,48,255,255,14,122,2,5,73,48,255,255,16,122,2,5,74,48,255,255,16,122,2,5,75,48,255,255,6,122,2,5,68,48,16,0,68,48,255,255,8,122,2,5,69,48,255,255,10,122,2,5,70,48,255,255,10,122,2,5,71,48,255,255,14,122,2,5,65,48,255,255,6,122,2,5,66,48,255,255,6,122,2,5,67,48,255,255,8,122,2,5,15,0,198,161,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,21,192,198,129,156,255,21,192,198,161,157,255,22,192,198,33,152,255,21,192,198,33,153,255,21,192,198,65,154,255,21,192,198,97,147,255,20,192,198,129,148,255,20,192,198,161,149,255,20,192,198,193,150,255,20,192,198,225,151,255,21,192,198,1,142,255,15,0,142,255,19,192,198,225,143,255,20,192,198,1,144,255,20,192,198,33,145,255,20,192,198,65,146,255,20,192,198,97,137,255,19,192,198,65,138,255,19,192,198,97,139,255,19,192,198,129,140,255,19,192,198,161,141,255,19,192,198,193,127,255,32,0,132,255,15,0,132,255,18,192,198,161,133,255,18,192,198,193,134,255,18,192,198,225,135,255,19,192,198,1,136,255,19,192,198,33,127,255,18,192,198,1,128,255,18,192,198,33,129,255,18,192,198,65,130,255,18,192,198,97,131,255,18,192,198,129,122,255,15,0,122,255,17,192,198,97,123,255,17,192,198,129,124,255,17,192,198,161,125,255,17,192,198,193,126,255,17,192,198,225,117,255,16,192,198,65,118,255,16,192,198,97,119,255,16,192,198,193,120,255,16,192,198,225,121,255,17,192,198,1,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,15,192,198,225,115,255,16,192,198,1,116,255,16,192,198,33,110,255,20,192,198,225,111,255,18,192,198,97,113,255,15,192,198,193,105,255,16,192,198,1,106,255,16,192,198,33,107,255,16,192,198,65,108,255,20,192,198,161,109,255,20,192,198,193,254,49,15,0,254,49,21,192,198,97,255,49,21,192,198,129,102,255,22,192,198,1,103,255,15,192,198,193,104,255,15,192,198,225,249,49,19,192,198,225,250,49,20,192,198,65,251,49,21,192,198,1,252,49,21,192,198,33,253,49,21,192,198,65,250,48,32,0,244,49,15,0,244,49,19,192,198,1,245,49,19,192,198,97,246,49,19,192,198,129,247,49,19,192,198,161,248,49,19,192,198,193,250,48,22,192,198,1,240,49,16,192,198,225,241,49,17,192,198,161,242,49,17,192,198,193,243,49,18,192,198,161,245,48,15,0,245,48,16,192,198,97,246,48,17,192,198,1,247,48,21,192,198,161,248,48,21,192,198,193,249,48,21,192,198,225,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,243,48,22,192,198,33,244,48,16,192,198,1,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,21,192,198,129,238,48,21,192,198,161,239,48,21,192,198,161,234,48,21,192,198,33,235,48,21,192,198,65,236,48,21,192,198,97,229,48,20,192,198,193,230,48,20,192,198,193,231,48,20,192,198,225,232,48,20,192,198,225,233,48,21,192,198,1,224,48,15,0,224,48,20,192,198,65,225,48,20,192,198,97,226,48,20,192,198,129,227,48,20,192,198,161,228,48,20,192,198,161,219,48,19,192,198,225,220,48,19,192,198,225,221,48,19,192,198,225,222,48,20,192,198,1,223,48,20,192,198,33,209,48,32,0,214,48,15,0,214,48,19,192,198,161,215,48,19,192,198,161,216,48,19,192,198,193,217,48,19,192,198,193,218,48,19,192,198,193,209,48,19,192,198,97,210,48,19,192,198,129,211,48,19,192,198,129,212,48,19,192,198,129,213,48,19,192,198,161,204,48,15,0,204,48,19,192,198,1,205,48,19,192,198,33,206,48,19,192,198,65,207,48,19,192,198,97,208,48,19,192,198,97,199,48,18,192,198,129,200,48,18,192,198,161,201,48,18,192,198,161,202,48,18,192,198,193,203,48,18,192,198,225,179,48,66,0,189,48,32,0,194,48,15,0,194,48,18,192,198,65,195,48,18,192,198,97,196,48,18,192,198,97,197,48,18,192,198,97,198,48,18,192,198,129,189,48,18,192,198,1,190,48,18,192,198,1,191,48,18,192,198,33,192,48,18,192,198,33,193,48,18,192,198,65,184,48,15,0,184,48,17,192,198,161,185,48,17,192,198,193,186,48,17,192,198,193,187,48,17,192,198,225,188,48,17,192,198,225,179,48,17,192,198,97,180,48,17,192,198,97,181,48,17,192,198,129,182,48,17,192,198,129,183,48,17,192,198,161,169,48,32,0,174,48,15,0,174,48,16,192,198,193,175,48,16,192,198,225,176,48,16,192,198,225,177,48,17,192,198,1,178,48,17,192,198,34,169,48,16,192,198,65,170,48,16,192,198,65,171,48,16,192,198,97,172,48,16,192,198,130,173,48,16,192,198,193,164,48,15,0,164,48,15,192,198,225,165,48,16,192,198,1,166,48,16,192,198,1,167,48,16,192,198,33,168,48,16,192,198,33,153,48,11,0,154,48,99,0,161,48,15,192,198,193,162,48,15,192,198,193,163,48,15,192,198,225,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,21,192,198,161,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,200,48,9,0,200,48,18,192,198,161,207,48,19,192,198,97,210,48,19,192,198,129,193,48,18,192,198,65,196,48,18,192,198,97,198,48,18,192,198,129,181,48,20,0,187,48,9,0,187,48,17,192,198,225,189,48,18,192,198,1,191,48,18,192,198,33,181,48,17,192,198,129,183,48,17,192,198,161,185,48,17,192,198,193,175,48,9,0,175,48,16,192,198,225,177,48,17,192,198,34,179,48,17,192,198,97,166,48,16,192,198,1,171,48,16,192,198,130,173,48,16,192,198,193,4,0,207,48,19,192,198,97,210,48,19,192,198,129,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,22,0,198,66,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,33,192,198,194,156,255,34,192,198,2,157,255,35,192,198,2,152,255,33,192,198,2,153,255,33,192,198,66,154,255,33,192,198,130,147,255,31,192,198,194,148,255,32,192,198,2,149,255,32,192,198,66,150,255,32,192,198,130,151,255,32,192,198,194,142,255,15,0,142,255,30,192,198,130,143,255,30,192,198,194,144,255,31,192,198,2,145,255,31,192,198,66,146,255,31,192,198,130,137,255,29,192,198,66,138,255,29,192,198,130,139,255,29,192,198,194,140,255,30,192,198,2,141,255,30,192,198,66,127,255,32,0,132,255,15,0,132,255,28,192,198,2,133,255,28,192,198,66,134,255,28,192,198,130,135,255,28,192,198,194,136,255,29,192,198,2,127,255,26,192,198,194,128,255,27,192,198,2,129,255,27,192,198,66,130,255,27,192,198,130,131,255,27,192,198,194,122,255,15,0,122,255,25,192,198,130,123,255,25,192,198,194,124,255,26,192,198,2,125,255,26,192,198,66,126,255,26,192,198,130,117,255,23,192,198,130,118,255,23,192,198,194,119,255,24,192,198,98,120,255,24,192,198,162,121,255,24,192,198,226,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,22,192,198,194,115,255,23,192,198,2,116,255,23,192,198,66,110,255,32,192,198,130,111,255,27,192,198,130,113,255,22,192,198,130,105,255,23,192,198,2,106,255,23,192,198,66,107,255,23,192,198,130,108,255,32,192,198,2,109,255,32,192,198,66,254,49,15,0,254,49,33,192,198,130,255,49,33,192,198,194,102,255,34,192,198,194,103,255,22,192,198,130,104,255,22,192,198,194,249,49,30,192,198,130,250,49,31,192,198,66,251,49,32,192,198,194,252,49,33,192,198,2,253,49,33,192,198,66,250,48,32,0,244,49,15,0,244,49,28,192,198,194,245,49,29,192,198,130,246,49,29,192,198,194,247,49,30,192,198,2,248,49,30,192,198,66,250,48,34,192,198,194,240,49,24,192,198,162,241,49,26,192,198,2,242,49,26,192,198,66,243,49,28,192,198,2,245,48,15,0,245,48,23,192,198,194,246,48,24,192,198,226,247,48,34,192,198,2,248,48,34,192,198,66,249,48,34,192,198,130,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,243,48,35,192,198,2,244,48,23,192,198,2,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,33,192,198,194,238,48,34,192,198,2,239,48,34,192,198,2,234,48,33,192,198,2,235,48,33,192,198,66,236,48,33,192,198,130,229,48,32,192,198,66,230,48,32,192,198,66,231,48,32,192,198,130,232,48,32,192,198,130,233,48,32,192,198,194,224,48,15,0,224,48,31,192,198,66,225,48,31,192,198,130,226,48,31,192,198,194,227,48,32,192,198,2,228,48,32,192,198,2,219,48,30,192,198,130,220,48,30,192,198,130,221,48,30,192,198,130,222,48,30,192,198,194,223,48,31,192,198,2,209,48,32,0,214,48,15,0,214,48,30,192,198,2,215,48,30,192,198,2,216,48,30,192,198,66,217,48,30,192,198,66,218,48,30,192,198,66,209,48,29,192,198,130,210,48,29,192,198,194,211,48,29,192,198,194,212,48,29,192,198,194,213,48,30,192,198,2,204,48,15,0,204,48,28,192,198,194,205,48,29,192,198,2,206,48,29,192,198,66,207,48,29,192,198,130,208,48,29,192,198,130,199,48,27,192,198,194,200,48,28,192,198,2,201,48,28,192,198,2,202,48,28,192,198,66,203,48,28,192,198,130,179,48,66,0,189,48,32,0,194,48,15,0,194,48,27,192,198,66,195,48,27,192,198,130,196,48,27,192,198,130,197,48,27,192,198,130,198,48,27,192,198,194,189,48,26,192,198,194,190,48,26,192,198,194,191,48,27,192,198,2,192,48,27,192,198,2,193,48,27,192,198,66,184,48,15,0,184,48,26,192,198,2,185,48,26,192,198,66,186,48,26,192,198,66,187,48,26,192,198,130,188,48,26,192,198,130,179,48,25,192,198,130,180,48,25,192,198,130,181,48,25,192,198,194,182,48,25,192,198,194,183,48,26,192,198,2,169,48,32,0,174,48,15,0,174,48,24,192,198,98,175,48,24,192,198,162,176,48,24,192,198,162,177,48,24,192,198,226,178,48,25,192,198,35,169,48,23,192,198,130,170,48,23,192,198,130,171,48,23,192,198,194,172,48,24,192,198,3,173,48,24,192,198,98,164,48,15,0,164,48,22,192,198,194,165,48,23,192,198,2,166,48,23,192,198,2,167,48,23,192,198,66,168,48,23,192,198,66,153,48,11,0,154,48,99,0,161,48,22,192,198,130,162,48,22,192,198,130,163,48,22,192,198,194,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,34,192,198,2,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,200,48,9,0,200,48,28,192,198,2,207,48,29,192,198,130,210,48,29,192,198,194,193,48,27,192,198,66,196,48,27,192,198,130,198,48,27,192,198,194,181,48,20,0,187,48,9,0,187,48,26,192,198,130,189,48,26,192,198,194,191,48,27,192,198,2,181,48,25,192,198,194,183,48,26,192,198,2,185,48,26,192,198,66,175,48,9,0,175,48,24,192,198,162,177,48,25,192,198,35,179,48,25,192,198,130,166,48,23,192,198,2,171,48,24,192,198,3,173,48,24,192,198,98,4,0,207,48,29,192,198,130,210,48,29,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,170,170,3,0,82,0,56,0,65,0,219,22,0,16,109,20,0,96,1,0,0,96,252,82,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,188,31,0,0,188,31,0,0,172,40,0,0,172,40,0,0,168,42,0,0,168,42,0,0,168,78,0,0,224,82,0,0,25,0,0,0,22,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,94,249,250,251,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,254,255,50,105,114,84,1,0,64,8,222,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,97,0,105,0,113,0,121,0,48,0,129,0,137,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,149,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,16,0,165,0,173,0,181,0,189,0,197,0,205,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,13,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,14,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,14,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,200,0,0,0,200,32,63,0,197,162,13,0,192,0,0,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,198,33,1,0,198,65,1,0,198,98,1,0,198,161,1,0,198,194,1,0,198,1,2,0,198,34,2,0,198,97,2,0,198,130,2,0,198,193,2,0,198,226,2,0,198,33,3,0,198,66,3,0,198,129,3,0,198,162,3,0,198,225,3,0,198,2,4,0,198,65,4,0,198,98,4,0,198,161,4,0,198,194,4,0,198,1,5,0,198,34,5,0,198,97,5,0,198,130,5,0,198,193,5,0,198,225,5,0,198,2,6,0,198,65,6,0,198,98,6,0,198,161,6,0,198,194,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,194,7,0,198,2,8,0,198,65,8,0,198,98,8,0,198,162,8,0,198,225,8,0,198,2,9,0,198,66,9,0,198,129,9,0,198,162,9,0,198,226,9,0,198,33,10,0,198,66,10,0,198,130,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,97,11,0,198,129,11,0,198,161,11,0,198,193,11,0,198,225,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,193,12,0,198,225,12,0,198,1,13,0,198,33,13,0,198,65,13,0,198,97,13,0,198,130,13,0,198,193,13,0,198,225,13,0,198,2,14,0,198,66,14,0,198,130,14,0,198,194,14,0,192,0,0,0,200,0,113,0,200,224,3,1,200,0,87,1,198,66,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,5,5,8,121,5,5,183,121,5,5,10,121,5,5,187,121,5,5,189,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,52,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,66,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,193,247,101,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,170,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,192,0,0,0,192,0,0,0,133,5,24,9,133,5,70,10,133,5,72,10,133,5,34,7,192,0,0,0,198,65,13,0,198,1,0,0,198,65,0,0,198,129,0,0,198,193,0,0,198,1,1,0,198,97,11,0,198,161,11,0,198,225,11,0,198,193,5,0,192,0,0,0,198,33,0,0,198,97,0,0,198,161,0,0,198,225,0,0,198,33,1,0,198,65,1,0,198,161,1,0,198,1,2,0,198,97,2,0,198,193,2,0,198,33,3,0,198,129,3,0,198,225,3,0,198,65,4,0,198,161,4,0,198,1,5,0,198,97,5,0,198,225,5,0,198,65,6,0,198,161,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,65,8,0,198,225,8,0,198,129,9,0,198,33,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,129,11,0,198,193,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,225,12,0,198,97,13,0,192,0,0,0,192,0,0,0,198,161,35,0,133,5,6,121,133,5,8,121,133,5,183,121,133,5,10,121,133,5,187,121,133,5,189,121,133,5,12,121,133,5,14,121,133,5,16,121,133,5,195,121,133,5,197,121,133,5,199,121,133,5,201,121,133,5,203,121,133,5,205,121,133,5,52,121,133,5,18,121,133,5,20,121,133,5,22,121,133,5,66,121,133,5,24,121,133,5,26,121,133,5,28,121,133,5,30,121,133,5,32,121,133,5,34,121,133,5,36,121,133,5,38,121,133,5,40,121,133,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,133,5,103,121,133,5,105,121,133,5,107,121,133,5,109,121,133,5,111,121,133,5,113,121,192,0,0,0,192,0,0,0,133,5,115,121,133,5,117,121,133,5,119,121,133,5,121,121,133,5,123,121,133,5,125,121,192,0,0,0,192,0,0,0,133,5,127,121,133,5,129,121,133,5,131,121,133,5,133,121,133,5,135,121,133,5,137,121,192,0,0,0,192,0,0,0,133,5,139,121,133,5,141,121,133,5,143,121,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,13,5,5,140,13,5,5,135,12,5,5,0,4,5,5,139,12,5,5,142,13,5,5,192,13,192,0,0,0,133,5,172,12,133,5,99,12,133,5,103,12,133,5,101,12,133,5,105,12,133,5,180,12,133,5,185,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,64,3,0,5,0,0,6,122,64,133,0,5,0,0,6,122,64,3,0,5,0,0,8,122,64,133,0,5,0,0,8,122,64,3,0,5,0,0,10,122,64,133,0,5,0,0,10,122,64,3,0,5,0,0,14,122,64,133,0,5,0,0,14,122,64,3,0,5,0,0,16,122,64,133,0,5,0,0,16,122,64,133,0,5,0,0,18,122,64,133,0,5,0,0,18,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,20,122,64,133,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,22,122,64,133,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,24,122,64,133,0,5,0,0,24,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,26,122,64,133,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,28,122,64,133,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,30,122,64,133,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,32,122,64,133,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,34,122,64,133,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,36,122,64,133,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,38,122,64,133,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,40,122,64,133,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,42,122,64,133,0,5,0,0,42,122,64,133,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,44,122,64,133,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,46,122,64,133,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,48,122,64,133,0,5,0,0,50,122,64,133,0,5,0,0,52,122,64,133,0,5,0,0,54,122,64,133,0,5,0,0,56,122,64,133,0,5,0,0,58,122,64,133,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,58,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,60,122,64,133,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,60,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,62,122,64,133,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,62,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,64,122,64,133,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,64,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,66,122,64,133,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,66,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,68,122,64,133,0,5,0,0,70,122,64,133,0,5,0,0,72,122,64,133,0,5,0,0,74,122,64,133,0,5,0,0,76,122,64,3,0,5,0,0,78,122,64,133,0,5,0,0,78,122,64,3,0,5,0,0,80,122,64,133,0,5,0,0,80,122,64,3,0,5,0,0,82,122,64,133,0,5,0,0,82,122,64,133,0,5,0,0,84,122,64,133,0,5,0,0,86,122,64,133,0,5,0,0,88,122,64,133,0,5,0,0,90,122,64,133,0,5,0,0,92,122,64,3,0,5,0,0,94,122,64,133,0,5,0,0,94,122,64,133,0,5,0,0,96,122,64,133,0,5,0,0,98,122,64,133,0,5,0,0,100,122,64,133,0,5,0,0,102,122,64,133,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,18,122,64,3,0,5,0,0,24,122,64,133,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,6,122,64,2,0,5,0,0,8,122,64,2,0,5,0,0,10,122,64,2,0,5,0,0,14,122,64,2,0,5,0,0,16,122,64,5,0,5,0,0,116,13,64,4,0,5,0,0,6,122,64,4,0,5,0,0,8,122,64,4,0,5,0,0,10,122,64,4,0,5,0,0,14,122,64,4,0,5,0,0,16,122,64,4,0,5,0,0,18,122,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,64,2,0,5,0,0,20,122,64,2,0,5,0,0,22,122,64,4,0,5,0,0,24,122,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,64,2,0,5,0,0,26,122,64,2,0,5,0,0,28,122,64,4,0,5,0,0,30,122,64,4,0,5,0,0,32,122,64,2,0,5,0,0,34,122,64,2,0,5,0,0,36,122,64,2,0,5,0,0,38,122,64,2,0,5,0,0,40,122,64,4,0,5,0,0,42,122,64,2,0,5,0,0,44,122,64,2,0,5,0,0,46,122,64,2,0,5,0,0,48,122,64,2,0,5,0,0,50,122,64,2,0,5,0,0,52,122,64,2,0,5,0,0,54,122,64,2,0,5,0,0,56,122,64,2,0,5,0,0,58,122,64,2,0,5,0,0,60,122,64,2,0,5,0,0,62,122,64,2,0,5,0,0,64,122,64,2,0,5,0,0,66,122,64,4,0,5,0,0,68,122,64,2,0,5,0,0,70,122,64,2,0,5,0,0,72,122,64,4,0,5,0,0,74,122,64,2,0,5,0,0,76,122,64,4,0,5,0,0,78,122,64,4,0,5,0,0,80,122,64,4,0,5,0,0,82,122,64,2,0,5,0,0,84,122,64,2,0,5,0,0,86,122,64,2,0,5,0,0,88,122,64,2,0,5,0,0,90,122,64,2,0,5,0,0,92,122,64,4,0,5,0,0,94,122,64,4,0,5,0,0,96,122,64,4,0,5,0,0,98,122,64,4,0,5,0,0,100,122,64,2,0,5,0,0,102,122,64,5,0,5,0,0,116,13,0,5,0,174,0,0,0,0,64,4,0,5,0,0,6,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,8,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,14,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,16,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,18,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,24,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,48,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,50,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,52,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,54,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,56,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,68,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,70,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,72,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,74,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,76,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,78,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,80,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,82,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,84,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,86,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,88,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,90,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,92,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,102,122,0,5,0,174,0,0,0,0,64,5,0,5,0,0,26,122,0,5,0,70,0,0,46,122,0,5,0,5,212,55,18,254,0,133,0,5,0,247,101,121,0,0,0,0,5,5,18,122,2,174,0,0,5,5,24,122,3,174,0,0,5,5,116,13,5,174,0,0,4,5,6,122,5,174,0,0,4,5,8,122,5,174,0,0,4,5,10,122,5,174,0,0,4,5,14,122,5,174,0,0,4,5,16,122,5,174,0,0,4,5,18,122,5,174,0,0,5,5,18,122,2,174,0,0,5,174,0,0,2,5,20,122,5,174,0,0,2,5,22,122,5,174,0,0,4,5,24,122,5,174,0,0,5,5,24,122,3,174,0,0,5,174,0,0,2,5,26,122,5,174,0,0,2,5,28,122,5,174,0,0,4,5,30,122,5,174,0,0,4,5,32,122,5,174,0,0,2,5,34,122,5,174,0,0,2,5,36,122,5,174,0,0,2,5,38,122,5,174,0,0,2,5,40,122,5,174,0,0,4,5,42,122,5,174,0,0,2,5,44,122,5,174,0,0,2,5,46,122,5,174,0,0,2,5,48,122,5,174,0,0,2,5,50,122,5,174,0,0,2,5,52,122,5,174,0,0,2,5,54,122,5,174,0,0,2,5,56,122,5,174,0,0,2,5,58,122,5,174,0,0,2,5,60,122,5,174,0,0,2,5,62,122,5,174,0,0,2,5,64,122,5,174,0,0,2,5,66,122,5,174,0,0,4,5,68,122,5,174,0,0,2,5,70,122,5,174,0,0,2,5,72,122,5,174,0,0,4,5,74,122,5,174,0,0,2,5,76,122,5,174,0,0,4,5,78,122,5,174,0,0,4,5,80,122,5,174,0,0,4,5,82,122,5,174,0,0,2,5,84,122,5,174,0,0,2,5,86,122,5,174,0,0,2,5,88,122,5,174,0,0,2,5,90,122,5,174,0,0,2,5,92,122,5,174,0,0,4,5,94,122,5,174,0,0,4,5,96,122,5,174,0,0,4,5,98,122,5,174,0,0,4,5,100,122,5,174,0,0,2,5,102,122,5,174,0,0,5,5,82,122,5,70,86,122,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,116,13,5,5,0,0,87,0,109,48,48,1,131,48,204,0,142,48,154,0,147,48,132,0,150,48,118,0,150,48,255,255,24,122,4,5,153,48,22,0,154,48,4,0,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,20,0,93,48,48,0,104,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,104,48,255,255,46,122,2,5,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,93,48,255,255,36,122,2,5,95,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,100,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,83,48,20,0,83,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,87,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,70,48,255,255,10,122,4,5,75,48,197,162,77,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,81,48,0,192,197,98,147,48,255,255,102,122,2,5,148,48,255,255,10,122,4,5,149,48,255,255,18,122,4,5,142,48,255,255,94,122,4,5,143,48,255,255,94,122,4,5,144,48,255,255,96,122,4,5,145,48,255,255,98,122,4,5,146,48,255,255,100,122,4,5,136,48,26,0,139,48,12,0,139,48,255,255,88,122,2,5,140,48,255,255,90,122,2,5,141,48,255,255,92,122,2,5,136,48,255,255,82,122,4,5,137,48,255,255,84,122,2,5,138,48,255,255,86,122,2,5,131,48,255,255,78,122,4,5,132,48,255,255,78,122,4,5,133,48,255,255,80,122,4,5,134,48,255,255,80,122,4,5,135,48,255,255,82,122,4,5,120,48,48,0,125,48,26,0,128,48,12,0,128,48,255,255,72,122,2,5,129,48,255,255,74,122,4,5,130,48,255,255,76,122,2,5,125,48,255,255,66,122,2,5,126,48,255,255,68,122,4,5,127,48,255,255,70,122,2,5,120,48,255,255,64,122,2,5,121,48,255,255,64,122,2,5,122,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,124,48,255,255,66,122,2,5,114,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,118,48,255,255,62,122,2,5,119,48,255,255,62,122,2,5,114,48,255,255,60,122,2,5,115,48,255,255,60,122,2,5,116,48,255,255,60,122,2,5,109,48,255,255,54,122,2,5,110,48,255,255,56,122,2,5,111,48,255,255,58,122,2,5,112,48,255,255,58,122,2,5,113,48,255,255,58,122,2,5,87,48,98,0,98,48,48,0,103,48,26,0,106,48,12,0,106,48,255,255,48,122,2,5,107,48,255,255,50,122,2,5,108,48,255,255,52,122,2,5,103,48,255,255,44,122,2,5,104,48,255,255,46,122,2,5,105,48,255,255,46,122,2,5,98,48,255,255,40,122,2,5,99,48,255,255,42,122,4,5,100,48,255,255,42,122,4,5,101,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,92,48,26,0,95,48,12,0,95,48,255,255,38,122,2,5,96,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,92,48,255,255,34,122,2,5,93,48,255,255,36,122,2,5,94,48,255,255,36,122,2,5,87,48,255,255,30,122,4,5,88,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,90,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,76,48,45,0,81,48,25,0,84,48,12,0,84,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,86,48,255,255,28,122,2,5,81,48,255,255,24,122,4,5,82,48,0,192,197,98,83,48,255,255,26,122,2,5,76,48,197,162,77,48,255,255,20,122,2,5,78,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,80,48,255,255,22,122,2,5,70,48,26,0,73,48,12,0,73,48,255,255,16,122,4,5,74,48,255,255,16,122,4,5,75,48,255,255,18,122,4,5,70,48,255,255,10,122,4,5,71,48,255,255,14,122,4,5,72,48,255,255,14,122,4,5,65,48,255,255,6,122,4,5,66,48,255,255,6,122,4,5,67,48,255,255,8,122,4,5,68,48,255,255,8,122,4,5,69,48,255,255,10,122,4,5,0,0,197,162,0,0,87,0,109,48,239,0,131,48,161,0,142,48,122,0,147,48,105,0,150,48,94,0,150,48,3,192,197,66,153,48,17,0,154,48,4,0,111,48,7,192,197,226,114,48,8,192,197,34,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,20,0,93,48,37,0,104,48,20,0,117,48,9,0,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,104,48,6,192,197,98,111,48,7,192,197,226,114,48,8,192,197,34,93,48,5,192,197,34,95,48,5,192,197,98,97,48,5,192,197,162,100,48,5,192,197,226,102,48,6,192,197,34,83,48,15,0,83,48,3,192,197,226,85,48,4,192,197,34,87,48,4,192,197,98,89,48,4,192,197,162,91,48,4,192,197,226,70,48,1,192,197,98,75,48,2,192,197,99,77,48,2,192,197,194,79,48,3,192,197,2,81,48,3,192,197,131,147,48,13,192,197,98,148,48,1,192,197,98,149,48,2,192,197,34,142,48,12,192,197,98,143,48,12,192,197,98,144,48,12,192,197,162,145,48,12,192,197,226,146,48,13,192,197,34,136,48,20,0,139,48,9,0,139,48,11,192,197,162,140,48,11,192,197,226,141,48,12,192,197,34,136,48,10,192,197,226,137,48,11,192,197,34,138,48,11,192,197,98,131,48,10,192,197,98,132,48,10,192,197,98,133,48,10,192,197,162,134,48,10,192,197,162,135,48,10,192,197,226,120,48,37,0,125,48,20,0,128,48,9,0,128,48,9,192,197,162,129,48,9,192,197,226,130,48,10,192,197,34,125,48,8,192,197,226,126,48,9,192,197,34,127,48,9,192,197,98,120,48,8,192,197,162,121,48,8,192,197,162,122,48,8,192,197,162,123,48,8,192,197,226,124,48,8,192,197,226,114,48,20,0,117,48,9,0,117,48,8,192,197,98,118,48,8,192,197,98,119,48,8,192,197,98,114,48,8,192,197,34,115,48,8,192,197,34,116,48,8,192,197,34,109,48,7,192,197,98,110,48,7,192,197,162,111,48,7,192,197,226,112,48,7,192,197,226,113,48,7,192,197,226,87,48,76,0,98,48,37,0,103,48,20,0,106,48,9,0,106,48,6,192,197,162,107,48,6,192,197,226,108,48,7,192,197,34,103,48,6,192,197,34,104,48,6,192,197,98,105,48,6,192,197,98,98,48,5,192,197,162,99,48,5,192,197,226,100,48,5,192,197,226,101,48,5,192,197,226,102,48,6,192,197,34,92,48,20,0,95,48,9,0,95,48,5,192,197,98,96,48,5,192,197,98,97,48,5,192,197,162,92,48,4,192,197,226,93,48,5,192,197,34,94,48,5,192,197,34,87,48,4,192,197,98,88,48,4,192,197,98,89,48,4,192,197,162,90,48,4,192,197,162,91,48,4,192,197,226,76,48,37,0,81,48,20,0,84,48,9,0,84,48,3,192,197,226,85,48,4,192,197,34,86,48,4,192,197,34,81,48,3,192,197,66,82,48,3,192,197,131,83,48,3,192,197,226,76,48,2,192,197,99,77,48,2,192,197,194,78,48,2,192,197,194,79,48,3,192,197,2,80,48,3,192,197,2,70,48,20,0,73,48,9,0,73,48,1,192,197,226,74,48,1,192,197,226,75,48,2,192,197,34,70,48,1,192,197,98,71,48,1,192,197,162,72,48,1,192,197,162,65,48,0,192,197,226,66,48,0,192,197,226,67,48,1,192,197,34,68,48,1,192,197,34,69,48,1,192,197,98,118,13,5,5,0,0,245,0,197,48,175,1,248,49,216,0,126,255,107,0,141,255,54,0,149,255,26,0,153,255,12,0,153,255,15,192,198,65,154,255,15,192,198,97,155,255,15,192,198,129,156,255,15,192,198,1,149,255,15,192,198,65,150,255,15,192,198,129,151,255,15,192,198,1,152,255,15,192,198,33,145,255,12,0,145,255,15,192,198,65,146,255,15,192,198,97,147,255,15,192,198,129,148,255,15,192,198,1,141,255,15,192,198,97,142,255,15,192,198,129,143,255,15,192,198,1,144,255,15,192,198,33,133,255,26,0,137,255,12,0,137,255,15,192,198,129,138,255,15,192,198,1,139,255,15,192,198,33,140,255,15,192,198,65,133,255,15,192,198,1,134,255,15,192,198,33,135,255,15,192,198,65,136,255,15,192,198,97,129,255,12,0,129,255,15,192,198,33,130,255,15,192,198,65,131,255,15,192,198,97,132,255,15,192,198,129,126,255,15,192,198,97,127,255,15,192,198,129,128,255,15,192,198,1,109,255,54,0,118,255,26,0,122,255,12,0,122,255,15,192,198,129,123,255,15,192,198,1,124,255,15,192,198,33,125,255,15,192,198,65,118,255,15,192,198,1,119,255,15,192,198,33,120,255,15,192,198,65,121,255,15,192,198,97,114,255,12,0,114,255,15,192,198,33,115,255,15,192,198,65,116,255,15,192,198,97,117,255,15,192,198,129,109,255,15,192,198,65,110,255,15,192,198,129,111,255,15,192,198,65,113,255,15,192,198,1,255,49,26,0,105,255,12,0,105,255,15,192,198,65,106,255,15,192,198,97,107,255,15,192,198,129,108,255,15,192,198,1,255,49,15,192,198,129,102,255,15,192,198,129,103,255,15,192,198,1,104,255,15,192,198,33,251,49,12,0,251,49,15,192,198,1,252,49,15,192,198,33,253,49,15,192,198,65,254,49,15,192,198,97,248,49,15,192,198,97,249,49,15,192,198,129,250,49,15,192,198,65,227,48,107,0,242,48,54,0,240,49,26,0,244,49,12,0,244,49,15,192,198,65,245,49,15,192,198,1,246,49,15,192,198,33,247,49,15,192,198,65,240,49,15,192,198,65,241,49,15,192,198,33,242,49,15,192,198,65,243,49,15,192,198,129,247,48,12,0,247,48,15,192,198,1,248,48,15,192,198,33,249,48,15,192,198,97,250,48,15,192,198,129,242,48,15,192,198,129,244,48,15,192,198,65,245,48,15,192,198,1,246,48,15,192,198,97,234,48,26,0,238,48,12,0,238,48,15,192,198,1,239,48,15,192,198,1,240,48,15,192,198,33,241,48,15,192,198,97,234,48,15,192,198,33,235,48,15,192,198,65,236,48,15,192,198,97,237,48,15,192,198,129,230,48,12,0,230,48,15,192,198,65,231,48,15,192,198,129,232,48,15,192,198,129,233,48,15,192,198,1,227,48,15,192,198,1,228,48,15,192,198,1,229,48,15,192,198,65,212,48,51,0,219,48,26,0,223,48,12,0,223,48,15,192,198,33,224,48,15,192,198,65,225,48,15,192,198,97,226,48,15,192,198,129,219,48,15,192,198,129,220,48,15,192,198,129,221,48,15,192,198,129,222,48,15,192,198,1,215,48,12,0,215,48,15,192,198,65,216,48,15,192,198,97,217,48,15,192,198,97,218,48,15,192,198,97,212,48,15,192,198,33,213,48,15,192,198,65,214,48,15,192,198,65,204,48,26,0,208,48,12,0,208,48,15,192,198,1,209,48,15,192,198,1,210,48,15,192,198,33,211,48,15,192,198,33,204,48,15,192,198,65,205,48,15,192,198,97,206,48,15,192,198,129,207,48,15,192,198,1,200,48,12,0,200,48,15,192,198,129,201,48,15,192,198,129,202,48,15,192,198,1,203,48,15,192,198,33,197,48,15,192,198,65,198,48,15,192,198,97,199,48,15,192,198,97,126,48,206,1,166,48,107,0,181,48,54,0,189,48,26,0,193,48,12,0,193,48,15,192,198,33,194,48,15,192,198,33,195,48,15,192,198,65,196,48,15,192,198,65,189,48,15,192,198,129,190,48,15,192,198,129,191,48,15,192,198,1,192,48,15,192,198,1,185,48,12,0,185,48,15,192,198,65,186,48,15,192,198,65,187,48,15,192,198,97,188,48,15,192,198,97,181,48,15,192,198,1,182,48,15,192,198,1,183,48,15,192,198,33,184,48,15,192,198,33,173,48,26,0,177,48,12,0,177,48,15,192,198,97,178,48,15,192,198,97,179,48,15,192,198,129,180,48,15,192,198,129,173,48,15,192,198,33,174,48,15,192,198,33,175,48,15,192,198,65,176,48,15,192,198,65,169,48,12,0,169,48,15,192,198,129,170,48,15,192,198,129,171,48,15,192,198,1,172,48,15,192,198,1,166,48,15,192,198,65,167,48,15,192,198,97,168,48,15,192,198,97,141,48,29,1,150,48,249,0,162,48,12,0,162,48,15,192,198,1,163,48,15,192,198,33,164,48,15,192,198,33,165,48,15,192,198,65,150,48,255,255,14,122,2,5,153,48,5,0,154,48,189,0,161,48,15,192,198,1,45,0,173,48,81,0,196,48,42,0,216,48,20,0,240,48,9,0,240,48,15,192,198,33,241,48,15,192,198,97,242,48,15,192,198,129,216,48,15,192,198,97,219,48,15,192,198,129,239,48,15,192,198,1,207,48,9,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,196,48,15,192,198,65,198,48,15,192,198,97,200,48,15,192,198,129,183,48,20,0,189,48,9,0,189,48,15,192,198,129,191,48,15,192,198,1,193,48,15,192,198,33,183,48,15,192,198,33,185,48,15,192,198,65,187,48,15,192,198,97,173,48,15,192,198,33,175,48,15,192,198,65,177,48,15,192,198,97,179,48,15,192,198,129,181,48,15,192,198,1,95,48,52,0,114,48,24,0,123,48,10,0,123,48,255,255,16,122,2,5,166,48,15,192,198,65,171,48,15,192,198,1,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,102,48,12,0,102,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,95,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,100,48,255,255,10,122,2,5,83,48,26,0,89,48,12,0,89,48,255,255,10,122,2,5,91,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,83,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,87,48,255,255,8,122,2,5,70,48,255,255,10,122,2,5,75,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,9,0,207,48,15,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,216,48,15,192,198,97,219,48,15,192,198,129,111,48,255,255,6,122,2,5,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,145,48,16,0,145,48,255,255,14,122,2,5,146,48,255,255,16,122,2,5,148,48,255,255,10,122,2,5,149,48,255,255,6,122,2,5,141,48,255,255,16,122,2,5,142,48,255,255,6,122,2,5,143,48,255,255,6,122,2,5,144,48,255,255,8,122,2,5,133,48,34,0,137,48,16,0,137,48,255,255,6,122,2,5,138,48,255,255,8,122,2,5,139,48,255,255,10,122,2,5,140,48,255,255,14,122,2,5,133,48,255,255,10,122,2,5,134,48,255,255,10,122,2,5,135,48,255,255,16,122,2,5,136,48,255,255,16,122,2,5,129,48,16,0,129,48,255,255,14,122,2,5,130,48,255,255,16,122,2,5,131,48,255,255,6,122,2,5,132,48,255,255,6,122,2,5,126,48,255,255,6,122,2,5,127,48,255,255,8,122,2,5,128,48,255,255,10,122,2,5,95,48,138,0,110,48,70,0,118,48,34,0,122,48,16,0,122,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,124,48,255,255,16,122,2,5,125,48,255,255,16,122,2,5,118,48,255,255,10,122,2,5,119,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,121,48,255,255,14,122,2,5,114,48,16,0,114,48,255,255,8,122,2,5,115,48,255,255,8,122,2,5,116,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,110,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,112,48,255,255,6,122,2,5,113,48,255,255,6,122,2,5,102,48,34,0,106,48,16,0,106,48,255,255,6,122,2,5,107,48,255,255,8,122,2,5,108,48,255,255,10,122,2,5,109,48,255,255,14,122,2,5,102,48,255,255,14,122,2,5,103,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,105,48,255,255,16,122,2,5,98,48,16,0,98,48,255,255,8,122,2,5,99,48,255,255,10,122,2,5,100,48,255,255,10,122,2,5,101,48,255,255,10,122,2,5,95,48,255,255,6,122,2,5,96,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,80,48,66,0,87,48,34,0,91,48,16,0,91,48,255,255,14,122,2,5,92,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,94,48,255,255,16,122,2,5,87,48,255,255,8,122,2,5,88,48,255,255,8,122,2,5,89,48,255,255,10,122,2,5,90,48,255,255,10,122,2,5,83,48,16,0,83,48,255,255,16,122,2,5,84,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,86,48,255,255,6,122,2,5,80,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,82,48,255,255,14,122,2,5,72,48,34,0,76,48,16,0,76,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,78,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,72,48,255,255,14,122,2,5,73,48,255,255,16,122,2,5,74,48,255,255,16,122,2,5,75,48,255,255,6,122,2,5,68,48,16,0,68,48,255,255,8,122,2,5,69,48,255,255,10,122,2,5,70,48,255,255,10,122,2,5,71,48,255,255,14,122,2,5,65,48,255,255,6,122,2,5,66,48,255,255,6,122,2,5,67,48,255,255,8,122,2,5,15,0,198,161,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,21,192,198,129,156,255,21,192,198,161,157,255,22,192,198,33,152,255,21,192,198,33,153,255,21,192,198,65,154,255,21,192,198,97,147,255,20,192,198,129,148,255,20,192,198,161,149,255,20,192,198,193,150,255,20,192,198,225,151,255,21,192,198,1,142,255,15,0,142,255,19,192,198,225,143,255,20,192,198,1,144,255,20,192,198,33,145,255,20,192,198,65,146,255,20,192,198,97,137,255,19,192,198,65,138,255,19,192,198,97,139,255,19,192,198,129,140,255,19,192,198,161,141,255,19,192,198,193,127,255,32,0,132,255,15,0,132,255,18,192,198,161,133,255,18,192,198,193,134,255,18,192,198,225,135,255,19,192,198,1,136,255,19,192,198,33,127,255,18,192,198,1,128,255,18,192,198,33,129,255,18,192,198,65,130,255,18,192,198,97,131,255,18,192,198,129,122,255,15,0,122,255,17,192,198,97,123,255,17,192,198,129,124,255,17,192,198,161,125,255,17,192,198,193,126,255,17,192,198,225,117,255,16,192,198,65,118,255,16,192,198,97,119,255,16,192,198,193,120,255,16,192,198,225,121,255,17,192,198,1,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,15,192,198,225,115,255,16,192,198,1,116,255,16,192,198,33,110,255,20,192,198,225,111,255,18,192,198,97,113,255,15,192,198,193,105,255,16,192,198,1,106,255,16,192,198,33,107,255,16,192,198,65,108,255,20,192,198,161,109,255,20,192,198,193,254,49,15,0,254,49,21,192,198,97,255,49,21,192,198,129,102,255,22,192,198,1,103,255,15,192,198,193,104,255,15,192,198,225,249,49,19,192,198,225,250,49,20,192,198,65,251,49,21,192,198,1,252,49,21,192,198,33,253,49,21,192,198,65,250,48,32,0,244,49,15,0,244,49,19,192,198,1,245,49,19,192,198,97,246,49,19,192,198,129,247,49,19,192,198,161,248,49,19,192,198,193,250,48,22,192,198,1,240,49,16,192,198,225,241,49,17,192,198,161,242,49,17,192,198,193,243,49,18,192,198,161,245,48,15,0,245,48,16,192,198,97,246,48,17,192,198,1,247,48,21,192,198,161,248,48,21,192,198,193,249,48,21,192,198,225,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,243,48,22,192,198,33,244,48,16,192,198,1,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,21,192,198,129,238,48,21,192,198,161,239,48,21,192,198,161,234,48,21,192,198,33,235,48,21,192,198,65,236,48,21,192,198,97,229,48,20,192,198,193,230,48,20,192,198,193,231,48,20,192,198,225,232,48,20,192,198,225,233,48,21,192,198,1,224,48,15,0,224,48,20,192,198,65,225,48,20,192,198,97,226,48,20,192,198,129,227,48,20,192,198,161,228,48,20,192,198,161,219,48,19,192,198,225,220,48,19,192,198,225,221,48,19,192,198,225,222,48,20,192,198,1,223,48,20,192,198,33,209,48,32,0,214,48,15,0,214,48,19,192,198,161,215,48,19,192,198,161,216,48,19,192,198,193,217,48,19,192,198,193,218,48,19,192,198,193,209,48,19,192,198,97,210,48,19,192,198,129,211,48,19,192,198,129,212,48,19,192,198,129,213,48,19,192,198,161,204,48,15,0,204,48,19,192,198,1,205,48,19,192,198,33,206,48,19,192,198,65,207,48,19,192,198,97,208,48,19,192,198,97,199,48,18,192,198,129,200,48,18,192,198,161,201,48,18,192,198,161,202,48,18,192,198,193,203,48,18,192,198,225,179,48,66,0,189,48,32,0,194,48,15,0,194,48,18,192,198,65,195,48,18,192,198,97,196,48,18,192,198,97,197,48,18,192,198,97,198,48,18,192,198,129,189,48,18,192,198,1,190,48,18,192,198,1,191,48,18,192,198,33,192,48,18,192,198,33,193,48,18,192,198,65,184,48,15,0,184,48,17,192,198,161,185,48,17,192,198,193,186,48,17,192,198,193,187,48,17,192,198,225,188,48,17,192,198,225,179,48,17,192,198,97,180,48,17,192,198,97,181,48,17,192,198,129,182,48,17,192,198,129,183,48,17,192,198,161,169,48,32,0,174,48,15,0,174,48,16,192,198,193,175,48,16,192,198,225,176,48,16,192,198,225,177,48,17,192,198,1,178,48,17,192,198,34,169,48,16,192,198,65,170,48,16,192,198,65,171,48,16,192,198,97,172,48,16,192,198,130,173,48,16,192,198,193,164,48,15,0,164,48,15,192,198,225,165,48,16,192,198,1,166,48,16,192,198,1,167,48,16,192,198,33,168,48,16,192,198,33,153,48,11,0,154,48,99,0,161,48,15,192,198,193,162,48,15,192,198,193,163,48,15,192,198,225,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,21,192,198,161,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,200,48,9,0,200,48,18,192,198,161,207,48,19,192,198,97,210,48,19,192,198,129,193,48,18,192,198,65,196,48,18,192,198,97,198,48,18,192,198,129,181,48,20,0,187,48,9,0,187,48,17,192,198,225,189,48,18,192,198,1,191,48,18,192,198,33,181,48,17,192,198,129,183,48,17,192,198,161,185,48,17,192,198,193,175,48,9,0,175,48,16,192,198,225,177,48,17,192,198,34,179,48,17,192,198,97,166,48,16,192,198,1,171,48,16,192,198,130,173,48,16,192,198,193,4,0,207,48,19,192,198,97,210,48,19,192,198,129,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,22,0,198,66,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,33,192,198,194,156,255,34,192,198,2,157,255,35,192,198,2,152,255,33,192,198,2,153,255,33,192,198,66,154,255,33,192,198,130,147,255,31,192,198,194,148,255,32,192,198,2,149,255,32,192,198,66,150,255,32,192,198,130,151,255,32,192,198,194,142,255,15,0,142,255,30,192,198,130,143,255,30,192,198,194,144,255,31,192,198,2,145,255,31,192,198,66,146,255,31,192,198,130,137,255,29,192,198,66,138,255,29,192,198,130,139,255,29,192,198,194,140,255,30,192,198,2,141,255,30,192,198,66,127,255,32,0,132,255,15,0,132,255,28,192,198,2,133,255,28,192,198,66,134,255,28,192,198,130,135,255,28,192,198,194,136,255,29,192,198,2,127,255,26,192,198,194,128,255,27,192,198,2,129,255,27,192,198,66,130,255,27,192,198,130,131,255,27,192,198,194,122,255,15,0,122,255,25,192,198,130,123,255,25,192,198,194,124,255,26,192,198,2,125,255,26,192,198,66,126,255,26,192,198,130,117,255,23,192,198,130,118,255,23,192,198,194,119,255,24,192,198,98,120,255,24,192,198,162,121,255,24,192,198,226,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,22,192,198,194,115,255,23,192,198,2,116,255,23,192,198,66,110,255,32,192,198,130,111,255,27,192,198,130,113,255,22,192,198,130,105,255,23,192,198,2,106,255,23,192,198,66,107,255,23,192,198,130,108,255,32,192,198,2,109,255,32,192,198,66,254,49,15,0,254,49,33,192,198,130,255,49,33,192,198,194,102,255,34,192,198,194,103,255,22,192,198,130,104,255,22,192,198,194,249,49,30,192,198,130,250,49,31,192,198,66,251,49,32,192,198,194,252,49,33,192,198,2,253,49,33,192,198,66,250,48,32,0,244,49,15,0,244,49,28,192,198,194,245,49,29,192,198,130,246,49,29,192,198,194,247,49,30,192,198,2,248,49,30,192,198,66,250,48,34,192,198,194,240,49,24,192,198,162,241,49,26,192,198,2,242,49,26,192,198,66,243,49,28,192,198,2,245,48,15,0,245,48,23,192,198,194,246,48,24,192,198,226,247,48,34,192,198,2,248,48,34,192,198,66,249,48,34,192,198,130,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,243,48,35,192,198,2,244,48,23,192,198,2,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,33,192,198,194,238,48,34,192,198,2,239,48,34,192,198,2,234,48,33,192,198,2,235,48,33,192,198,66,236,48,33,192,198,130,229,48,32,192,198,66,230,48,32,192,198,66,231,48,32,192,198,130,232,48,32,192,198,130,233,48,32,192,198,194,224,48,15,0,224,48,31,192,198,66,225,48,31,192,198,130,226,48,31,192,198,194,227,48,32,192,198,2,228,48,32,192,198,2,219,48,30,192,198,130,220,48,30,192,198,130,221,48,30,192,198,130,222,48,30,192,198,194,223,48,31,192,198,2,209,48,32,0,214,48,15,0,214,48,30,192,198,2,215,48,30,192,198,2,216,48,30,192,198,66,217,48,30,192,198,66,218,48,30,192,198,66,209,48,29,192,198,130,210,48,29,192,198,194,211,48,29,192,198,194,212,48,29,192,198,194,213,48,30,192,198,2,204,48,15,0,204,48,28,192,198,194,205,48,29,192,198,2,206,48,29,192,198,66,207,48,29,192,198,130,208,48,29,192,198,130,199,48,27,192,198,194,200,48,28,192,198,2,201,48,28,192,198,2,202,48,28,192,198,66,203,48,28,192,198,130,179,48,66,0,189,48,32,0,194,48,15,0,194,48,27,192,198,66,195,48,27,192,198,130,196,48,27,192,198,130,197,48,27,192,198,130,198,48,27,192,198,194,189,48,26,192,198,194,190,48,26,192,198,194,191,48,27,192,198,2,192,48,27,192,198,2,193,48,27,192,198,66,184,48,15,0,184,48,26,192,198,2,185,48,26,192,198,66,186,48,26,192,198,66,187,48,26,192,198,130,188,48,26,192,198,130,179,48,25,192,198,130,180,48,25,192,198,130,181,48,25,192,198,194,182,48,25,192,198,194,183,48,26,192,198,2,169,48,32,0,174,48,15,0,174,48,24,192,198,98,175,48,24,192,198,162,176,48,24,192,198,162,177,48,24,192,198,226,178,48,25,192,198,35,169,48,23,192,198,130,170,48,23,192,198,130,171,48,23,192,198,194,172,48,24,192,198,3,173,48,24,192,198,98,164,48,15,0,164,48,22,192,198,194,165,48,23,192,198,2,166,48,23,192,198,2,167,48,23,192,198,66,168,48,23,192,198,66,153,48,11,0,154,48,99,0,161,48,22,192,198,130,162,48,22,192,198,130,163,48,22,192,198,194,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,34,192,198,2,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,200,48,9,0,200,48,28,192,198,2,207,48,29,192,198,130,210,48,29,192,198,194,193,48,27,192,198,66,196,48,27,192,198,130,198,48,27,192,198,194,181,48,20,0,187,48,9,0,187,48,26,192,198,130,189,48,26,192,198,194,191,48,27,192,198,2,181,48,25,192,198,194,183,48,26,192,198,2,185,48,26,192,198,66,175,48,9,0,175,48,24,192,198,162,177,48,25,192,198,35,179,48,25,192,198,130,166,48,23,192,198,2,171,48,24,192,198,3,173,48,24,192,198,98,4,0,207,48,29,192,198,130,210,48,29,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,35,0,198,129,0,0,0,1,12,128,107,2,117,152,75,1,254,158,187,0,7,249,74,0,196,249,38,0,10,250,20,0,10,250,255,255,25,253,193,42,30,250,255,255,195,252,193,136,60,250,255,255,135,251,193,8,149,250,255,255,11,252,193,192,206,250,255,255,224,253,193,118,196,249,255,255,224,253,193,12,233,249,255,255,98,253,193,98,247,249,255,255,152,252,193,118,8,250,255,255,15,253,193,118,64,249,16,0,64,249,255,255,209,253,193,178,113,249,255,255,78,253,193,128,129,249,255,255,106,251,193,100,138,249,255,255,42,251,193,8,7,249,255,255,224,253,193,118,8,249,255,255,224,253,193,118,10,249,255,255,98,253,193,242,52,249,255,255,198,252,193,84,127,159,75,0,159,159,57,0,159,159,255,255,224,253,193,218,160,159,255,255,224,253,193,236,126,216,4,0,2,249,255,255,70,253,193,218,9,0,210,221,20,0,210,221,255,255,45,253,193,112,21,222,255,255,213,253,193,94,23,222,255,255,217,253,193,36,24,222,255,255,217,253,193,222,28,222,255,255,219,253,193,240,29,220,255,255,34,251,193,200,117,220,255,255,130,251,193,144,120,220,255,255,135,251,193,8,144,220,255,255,160,251,193,102,196,221,255,255,16,253,193,52,127,159,255,255,223,253,193,110,141,159,255,255,224,253,193,12,153,159,255,255,224,253,193,96,156,159,255,255,224,253,193,118,59,159,16,0,59,159,255,255,219,253,193,240,74,159,255,255,220,253,193,176,80,159,255,255,220,253,193,236,82,159,255,255,220,253,193,248,254,158,255,255,217,253,193,222,14,159,255,255,218,253,193,6,19,159,255,255,218,253,193,62,32,159,255,255,218,253,193,220,50,155,70,0,165,158,34,0,205,158,16,0,205,158,255,255,214,253,193,124,209,158,255,255,214,253,193,252,249,158,255,255,217,253,193,36,253,158,255,255,217,253,193,62,165,158,255,255,211,253,193,56,166,158,255,255,212,253,193,196,187,158,255,255,213,253,193,94,195,158,255,255,213,253,193,210,229,156,16,0,229,156,255,255,195,253,193,218,31,158,255,255,206,253,193,72,117,158,255,255,208,253,193,240,127,158,255,255,209,253,193,178,50,155,255,255,180,253,193,172,60,155,255,255,181,253,193,166,90,155,255,255,184,253,193,2,124,156,255,255,193,253,193,64,153,153,34,0,216,154,16,0,216,154,255,255,175,253,193,232,223,154,255,255,176,253,193,186,37,155,255,255,180,253,193,58,47,155,255,255,180,253,193,136,153,153,255,255,164,253,193,252,172,153,255,255,165,253,193,208,108,154,255,255,171,253,193,244,168,154,255,255,173,253,193,168,222,152,16,0,222,152,255,255,157,253,193,164,223,152,255,255,157,253,193,170,99,153,255,255,163,253,193,20,150,153,255,255,164,253,193,110,117,152,255,255,153,253,193,70,168,152,255,255,154,253,193,82,206,152,255,255,156,253,193,242,219,152,255,255,157,253,193,122,100,141,142,0,127,149,70,0,94,151,34,0,230,151,16,0,230,151,255,255,147,253,193,30,237,151,255,255,147,253,193,108,243,151,255,255,147,253,193,184,1,152,255,255,148,253,193,142,94,151,255,255,140,253,193,44,98,151,255,255,140,253,193,152,105,151,255,255,141,253,193,160,203,151,255,255,145,253,193,196,182,150,16,0,182,150,255,255,131,253,193,186,185,150,255,255,131,253,193,228,232,150,255,255,134,253,193,178,81,151,255,255,139,253,193,216,127,149,255,255,120,253,193,2,128,149,255,255,120,253,193,6,232,149,255,255,124,253,193,84,28,150,255,255,125,253,193,154,181,143,34,0,204,145,16,0,204,145,255,255,98,253,193,98,209,145,255,255,98,253,193,242,133,148,255,255,114,253,193,86,119,149,255,255,118,253,193,200,181,143,255,255,78,253,193,176,145,144,255,255,87,253,193,98,73,145,255,255,93,253,193,148,198,145,255,255,98,253,193,30,202,142,16,0,202,142,255,255,70,253,193,218,102,143,255,255,76,253,193,100,155,143,255,255,77,253,193,186,176,143,255,255,78,253,193,128,100,141,255,255,54,253,193,190,112,141,255,255,55,253,193,84,179,141,255,255,59,253,193,84,171,142,255,255,68,253,193,230,107,134,70,0,0,138,34,0,85,140,16,0,85,140,255,255,45,253,193,112,120,140,255,255,47,253,193,36,157,140,255,255,48,253,193,190,29,141,255,255,53,253,193,202,0,138,255,255,30,253,193,38,160,139,255,255,40,253,193,192,55,140,255,255,43,253,193,160,70,140,255,255,44,253,193,90,126,137,16,0,126,137,255,255,24,253,193,136,139,137,255,255,25,253,193,42,193,137,255,255,27,253,193,148,210,137,255,255,27,253,193,240,107,134,255,255,254,252,193,150,64,136,255,255,14,253,193,202,76,136,255,255,15,253,193,118,99,136,255,255,16,253,193,52,252,129,34,0,110,130,16,0,110,130,255,255,222,252,193,106,114,130,255,255,222,252,193,140,120,130,255,255,223,252,193,6,77,134,255,255,252,252,193,174,252,129,255,255,217,252,193,10,12,130,255,255,218,252,193,106,27,130,255,255,219,252,193,90,31,130,255,255,219,252,193,128,137,128,16,0,137,128,255,255,203,252,193,226,227,129,255,255,215,252,193,90,234,129,255,255,215,252,193,222,243,129,255,255,216,252,193,152,12,128,255,255,198,252,193,214,18,128,255,255,199,252,193,40,51,128,255,255,200,252,193,74,127,128,255,255,203,252,193,128,54,98,30,1,132,115,142,0,226,119,70,0,115,124,34,0,81,127,16,0,81,127,255,255,189,252,193,238,138,127,255,255,193,252,193,14,189,127,255,255,195,252,193,136,1,128,255,255,198,252,193,84,115,124,255,255,168,252,193,76,248,124,255,255,174,252,193,70,159,126,255,255,185,252,193,220,54,127,255,255,188,252,193,198,190,121,16,0,190,121,255,255,140,252,193,156,116,122,255,255,148,252,193,22,203,122,255,255,152,252,193,118,249,122,255,255,154,252,193,154,226,119,255,255,124,252,193,16,243,119,255,255,125,252,193,134,58,121,255,255,134,252,193,210,184,121,255,255,140,252,193,88,139,117,34,0,174,118,16,0,174,118,255,255,109,252,193,26,191,118,255,255,110,252,193,184,238,118,255,255,113,252,193,128,219,119,255,255,123,252,193,54,139,117,255,255,98,252,193,100,146,117,255,255,98,252,193,176,118,118,255,255,106,252,193,156,125,118,255,255,106,252,193,250,24,117,16,0,24,117,255,255,92,252,193,188,31,117,255,255,93,252,193,36,40,117,255,255,93,252,193,208,48,117,255,255,94,252,193,32,132,115,255,255,79,252,193,112,137,115,255,255,79,252,193,132,220,116,255,255,89,252,193,158,230,116,255,255,90,252,193,104,179,107,70,0,42,114,34,0,71,114,16,0,71,114,255,255,66,252,193,252,89,114,255,255,68,252,193,28,91,114,255,255,68,252,193,94,172,114,255,255,72,252,193,46,42,114,255,255,64,252,193,48,54,114,255,255,65,252,193,150,59,114,255,255,65,252,193,218,63,114,255,255,66,252,193,14,15,108,16,0,15,108,255,255,20,252,193,236,20,108,255,255,21,252,193,54,52,108,255,255,21,252,193,230,107,112,255,255,48,252,193,142,179,107,255,255,14,252,193,174,203,107,255,255,16,252,193,104,212,107,255,255,16,252,193,180,219,107,255,255,17,252,193,22,224,101,34,0,40,103,16,0,40,103,255,255,235,251,193,114,32,107,255,255,6,252,193,188,98,107,255,255,9,252,193,190,121,107,255,255,11,252,193,192,224,101,255,255,222,251,193,42,229,101,255,255,222,251,193,86,240,102,255,255,232,251,193,90,8,103,255,255,233,251,193,86,135,101,16,0,135,101,255,255,217,251,193,254,151,101,255,255,218,251,193,178,164,101,255,255,219,251,193,74,185,101,255,255,220,251,193,68,54,98,255,255,190,251,193,162,75,98,255,255,191,251,193,156,47,101,255,255,212,251,193,60,52,101,255,255,212,251,193,230,215,86,142,0,219,93,70,0,254,94,34,0,97,95,16,0,97,95,255,255,165,251,193,122,115,95,255,255,166,251,193,88,195,95,255,255,169,251,193,252,8,98,255,255,188,251,193,76,254,94,255,255,160,251,193,102,11,95,255,255,161,251,193,108,19,95,255,255,161,251,193,216,80,95,255,255,164,251,193,210,114,94,16,0,114,94,255,255,153,251,193,170,122,94,255,255,154,251,193,90,127,94,255,255,154,251,193,218,244,94,255,255,159,251,193,254,219,93,255,255,147,251,193,66,229,93,255,255,147,251,193,210,241,93,255,255,148,251,193,132,254,93,255,255,149,251,193,20,80,91,34,0,34,92,16,0,34,92,255,255,130,251,193,144,56,92,255,255,131,251,193,192,110,92,255,255,135,251,193,8,113,92,255,255,135,251,193,128,80,91,255,255,119,251,193,108,128,91,255,255,121,251,193,174,248,91,255,255,128,251,193,22,15,92,255,255,129,251,193,34,10,89,16,0,10,89,255,255,100,251,193,232,21,89,255,255,101,251,193,136,39,89,255,255,102,251,193,204,115,89,255,255,106,251,193,100,215,86,255,255,83,251,193,76,31,87,255,255,85,251,193,186,235,88,255,255,99,251,193,220,2,89,255,255,100,251,193,178,224,81,70,0,65,83,34,0,130,83,16,0,130,83,255,255,50,251,193,178,182,83,255,255,53,251,193,120,200,83,255,255,54,251,193,122,227,83,255,255,56,251,193,112,65,83,255,255,47,251,193,180,92,83,255,255,49,251,193,44,100,83,255,255,209,253,193,152,105,83,255,255,49,251,193,240,249,82,16,0,249,82,255,255,44,251,193,244,21,83,255,255,45,251,193,234,26,83,255,255,46,251,193,82,56,83,255,255,47,251,193,118,224,81,255,255,33,251,193,196,245,81,255,255,34,251,193,200,0,82,255,255,35,251,193,132,155,82,255,255,42,251,193,8,160,78,34,0,107,81,16,0,107,81,255,255,28,251,193,74,130,81,255,255,29,251,193,104,150,81,255,255,30,251,193,74,171,81,255,255,31,251,193,62,160,78,255,255,8,251,193,232,186,78,255,255,10,251,193,68,63,81,255,255,26,251,193,4,101,81,255,255,27,251,193,188,63,78,16,0,63,78,255,255,4,251,193,252,89,78,255,255,6,251,193,26,133,78,255,255,7,251,193,248,140,78,255,255,8,251,193,74,0,78,255,255,2,251,193,2,40,78,255,255,4,251,193,60,44,78,255,255,66,252,193,246,54,78,255,255,4,251,193,200,26,130,246,1,0,78,1,78,40,78,41,78,44,78,45,78,54,78,55,78,63,78,64,78,89,78,90,78,133,78,134,78,140,78,141,78,160,78,161,78,186,78,187,78,63,81,64,81,101,81,102,81,107,81,108,81,130,81,131,81,150,81,151,81,171,81,172,81,224,81,225,81,245,81,246,81,0,82,1,82,155,82,156,82,249,82,250,82,21,83,22,83,26,83,27,83,56,83,57,83,65,83,66,83,92,83,93,83,100,83,101,83,105,83,106,83,130,83,131,83,182,83,183,83,200,83,201,83,227,83,228,83,215,86,216,86,31,87,32,87,235,88,236,88,2,89,3,89,10,89,11,89,21,89,22,89,39,89,40,89,115,89,116,89,80,91,81,91,128,91,129,91,248,91,249,91,15,92,16,92,34,92,35,92,56,92,57,92,110,92,111,92,113,92,114,92,219,93,220,93,229,93,230,93,241,93,242,93,254,93,255,93,114,94,115,94,122,94,123,94,127,94,128,94,244,94,245,94,254,94,255,94,11,95,12,95,19,95,20,95,80,95,81,95,97,95,98,95,115,95,116,95,195,95,196,95,8,98,9,98,54,98,55,98,75,98,76,98,47,101,48,101,52,101,53,101,135,101,136,101,151,101,152,101,164,101,165,101,185,101,186,101,224,101,225,101,229,101,230,101,240,102,241,102,8,103,9,103,40,103,41,103,32,107,33,107,98,107,99,107,121,107,122,107,179,107,180,107,203,107,204,107,212,107,213,107,219,107,220,107,15,108,16,108,20,108,21,108,52,108,53,108,107,112,108,112,42,114,43,114,54,114,55,114,59,114,60,114,63,114,64,114,71,114,72,114,89,114,90,114,91,114,92,114,172,114,173,114,132,115,133,115,137,115,138,115,220,116,221,116,230,116,231,116,24,117,25,117,31,117,32,117,40,117,41,117,48,117,49,117,139,117,140,117,146,117,147,117,118,118,119,118,125,118,126,118,174,118,175,118,191,118,192,118,238,118,239,118,219,119,220,119,226,119,227,119,243,119,244,119,58,121,59,121,184,121,185,121,190,121,191,121,116,122,117,122,203,122,204,122,249,122,250,122,115,124,116,124,248,124,249,124,159,126,160,126,54,127,55,127,81,127,82,127,138,127,139,127,189,127,190,127,1,128,2,128,12,128,13,128,18,128,19,128,51,128,52,128,127,128,128,128,137,128,138,128,227,129,228,129,234,129,235,129,243,129,244,129,252,129,253,129,12,130,13,130,27,130,28,130,31,130,32,130,110,130,111,130,114,130,115,130,120,130,121,130,77,134,78,134,107,134,108,134,64,136,65,136,76,136,77,136,99,136,100,136,126,137,127,137,139,137,140,137,193,137,194,137,210,137,211,137,0,138,1,138,160,139,161,139,55,140,56,140,70,140,71,140,85,140,86,140,120,140,121,140,157,140,158,140,29,141,30,141,100,141,101,141,112,141,113,141,179,141,180,141,171,142,172,142,202,142,203,142,102,143,103,143,155,143,156,143,176,143,177,143,181,143,182,143,145,144,146,144,73,145,74,145,198,145,199,145,204,145,205,145,209,145,210,145,133,148,134,148,119,149,120,149,127,149,129,149,232,149,233,149,28,150,29,150,182,150,183,150,185,150,186,150,232,150,233,150,81,151,82,151,94,151,95,151,98,151,99,151,105,151,106,151,203,151,204,151,230,151,231,151,237,151,238,151,243,151,244,151,1,152,2,152,117,152,118,152,168,152,169,152,206,152,207,152,219,152,220,152,222,152,224,152,99,153,100,153,150,153,151,153,153,153,154,153,172,153,173,153,108,154,109,154,168,154,169,154,216,154,217,154,223,154,224,154,37,155,38,155,47,155,48,155,50,155,51,155,60,155,61,155,90,155,91,155,124,156,125,156,229,156,230,156,31,158,32,158,117,158,118,158,127,158,128,158,165,158,167,158,187,158,188,158,195,158,196,158,205,158,206,158,209,158,210,158,249,158,250,158,253,158,255,158,14,159,15,159,19,159,20,159,32,159,33,159,59,159,60,159,74,159,75,159,80,159,81,159,82,159,83,159,127,159,128,159,141,159,142,159,153,159,154,159,156,159,157,159,159,159,161,159,126,216,127,216,2,249,3,249,7,249,9,249,10,249,11,249,52,249,53,249,64,249,65,249,113,249,114,249,129,249,130,249,138,249,139,249,196,249,197,249,233,249,234,249,247,249,248,249,8,250,9,250,10,250,11,250,30,250,31,250,60,250,61,250,149,250,150,250,206,250,207,250,2,0,29,248,2,0,30,248,2,0,117,248,2,0,118,248,2,0,120,248,2,0,121,248,2,0,144,248,2,0,145,248,2,0,196,249,2,0,197,249,2,0,210,249,2,0,211,249,2,0,21,250,2,0,22,250,2,0,23,250,2,0,25,250,2,0,28,250,2,0,29,250,3,0,82,0,56,0,65,0,43,122,0,16,4,0,0,96,1,0,0,96,3,0,43,0,73,0,97,0,122,45,0,80,38,122,0,32,235,142,0,32,1,0,32,0,240,142,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,101,0,111,0,114,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,12,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,39,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,5,7,0,32,7,0,0,0,21,0,0,0,7,7,0,0,7,7,0,0,3,0,0,0,0,0,0,0,48,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,48,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,21,4,60,0,81,4,60,0,60,0,60,0,1,4,38,0,176,4,60,0,175,4,60,0,60,0,60,0,174,4,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,76,4,60,0,86,4,60,0,60,0,60,0,6,4,0,0,170,170,170,170,170,170,170,170,170,170,170,170,40,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,160,26,0,0,160,26,0,0,160,26,0,0,160,26,0,0,244,26,0,0,244,26,0,0,16,27,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,141,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,100,0,108,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,124,0,48,0,48,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,144,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,231,97,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,97,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,177,97,5,5,177,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,231,97,5,150,0,0,5,5,231,97,5,150,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,97,174,5,48,0,8,3,255,255,41,97,134,5,40,97,5,5,48,0,8,3,255,255,41,97,5,5,3,0,69,0,52,0,61,0,51,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,254,6,0,32,1,0,32,0,3,7,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,230,22,0,32,7,0,0,0,23,0,0,0,232,22,0,0,232,22,0,0,3,0,0,0,0,0,0,0,117,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,107,0,108,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,130,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,81,0,60,0,60,0,56,1,60,0,60,0,60,0,75,0,39,0,39,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,229,0,60,0,60,0,60,0,197,0,0,0,170,170,170,170,170,170,170,170,170,170,238,47,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,163,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,38,0,0,148,38,0,0,44,41,0,0,44,41,0,0,236,44,0,0,236,44,0,0,204,47,0,0,210,47,0,0,210,47,0,0,50,105,114,84,1,0,64,8,92,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,148,0,156,0,162,0,170,0,178,0,186,0,48,0,56,0,185,0,193,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,218,0,48,0,48,0,48,0,226,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,234,0,48,0,48,0,242,0,48,0,248,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,3,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,11,1,48,0,48,0,15,1,48,0,23,1,28,1,36,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,42,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,53,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,208,0,48,0,48,0,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,61,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,69,1,48,0,48,0,75,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,2,136,2,200,2,192,0,228,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,28,0,202,225,28,0,202,2,29,0,202,35,29,0,202,68,29,0,202,101,29,0,202,134,29,0,202,167,29,0,202,200,29,0,202,233,29,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,201,96,2,0,156,5,0,64,156,5,0,66,156,5,0,68,201,70,3,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,6,0,5,5,0,44,5,5,0,46,5,5,0,48,201,70,7,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,8,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,38,9,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,97,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,34,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,161,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,0,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,201,6,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,74,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,38,13,0,201,70,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,15,0,201,134,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,17,0,201,198,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,198,226,3,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,19,0,201,6,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,5,0,197,34,5,0,198,98,5,0,197,98,5,0,198,162,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,5,0,198,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,38,22,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,5,71,238,102,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,25,0,201,230,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,28,0,201,38,29,0,201,70,30,0,201,102,31,0,201,134,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,34,0,201,230,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,37,0,201,38,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,39,0,201,102,40,0,201,134,41,0,201,166,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,43,0,201,230,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,96,2,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,2,111,93,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,62,156,5,48,0,39,0,255,255,0,74,70,70,0,70,156,5,1,0,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,0,192,198,161,10,3,255,255,111,93,193,4,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,1,0,8,3,0,192,198,225,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,1,0,8,3,2,192,198,226,11,3,3,192,198,34,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,4,192,198,34,11,3,4,192,198,98,5,70,196,162,1,0,8,3,4,192,198,162,11,3,4,192,198,226,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,6,192,198,98,10,3,6,192,198,162,5,42,196,200,1,0,8,3,6,192,198,226,10,3,12,192,197,162,156,82,196,198,1,0,8,3,12,192,197,226,11,3,13,192,197,34,5,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,156,82,196,208,1,0,8,3,13,192,197,226,11,3,14,192,197,34,5,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,156,82,196,204,1,0,8,3,14,192,197,226,11,3,15,192,197,34,5,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,156,42,196,196,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,196,1,0,8,3,7,192,198,162,10,3,15,192,197,226,156,70,196,196,1,0,8,3,7,192,198,226,11,3,8,192,198,34,5,70,196,196,1,0,8,3,8,192,198,98,11,3,8,192,198,162,16,0,197,35,1,0,8,3,8,192,198,227,11,3,9,192,198,67,16,0,197,131,1,0,8,3,9,192,198,163,11,3,10,192,198,3,156,82,196,196,1,0,8,3,16,192,197,226,11,3,17,192,197,34,5,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,17,0,197,227,1,0,8,3,18,192,197,67,11,3,18,192,197,163,19,0,197,3,1,0,8,3,19,192,197,99,11,3,19,192,197,195,2,0,39,0,40,0,170,170,3,0,67,0,50,0,59,0,119,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,132,41,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,30,0,0,100,30,0,0,252,32,0,0,252,32,0,0,216,34,0,0,216,34,0,0,114,37,0,0,120,37,0,0,104,41,0,0,50,105,114,84,1,0,64,8,217,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,48,0,48,0,173,0,48,0,181,0,186,0,194,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,13,0,202,193,13,0,202,226,13,0,202,3,14,0,202,36,14,0,202,69,14,0,202,102,14,0,202,135,14,0,202,168,14,0,202,201,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,230,0,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,201,160,1,0,156,5,0,64,156,5,0,66,156,5,0,68,201,134,2,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,5,0,5,5,0,44,5,5,0,46,5,5,0,48,201,134,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,70,7,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,97,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,98,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,161,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,0,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,74,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,102,12,0,201,134,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,14,0,201,198,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,16,0,201,6,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,198,226,3,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,19,0,201,70,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,5,0,197,34,5,0,198,98,5,0,197,98,5,0,198,162,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,5,0,198,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,21,0,201,134,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,23,0,201,198,24,0,201,230,25,0,201,6,27,0,201,38,28,0,201,70,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,30,0,201,134,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,32,0,201,198,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,6,36,0,201,38,37,0,201,70,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,39,0,201,134,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,160,1,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,2,111,93,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,62,156,5,48,0,39,0,255,255,0,74,70,70,0,70,156,5,1,0,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,0,192,198,161,10,3,255,255,111,93,193,4,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,1,0,8,3,0,192,198,225,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,1,0,8,3,2,192,198,226,11,3,3,192,198,34,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,4,192,198,34,11,3,4,192,198,98,5,70,196,162,1,0,8,3,4,192,198,162,11,3,4,192,198,226,156,42,196,200,1,0,8,3,6,192,198,98,10,3,6,192,198,162,5,42,196,200,1,0,8,3,6,192,198,226,10,3,5,192,197,226,156,82,196,198,1,0,8,3,6,192,197,34,11,3,6,192,197,98,5,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,156,82,196,208,1,0,8,3,7,192,197,34,11,3,7,192,197,98,5,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,156,82,196,204,1,0,8,3,8,192,197,34,11,3,8,192,197,98,5,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,156,42,196,196,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,196,1,0,8,3,7,192,198,162,10,3,9,192,197,34,156,70,196,196,1,0,8,3,7,192,198,226,11,3,8,192,198,34,5,70,196,196,1,0,8,3,8,192,198,98,11,3,8,192,198,162,9,0,197,99,1,0,8,3,8,192,198,227,11,3,9,192,198,67,9,0,197,195,1,0,8,3,9,192,198,163,11,3,10,192,198,3,156,82,196,196,1,0,8,3,10,192,197,34,11,3,10,192,197,98,5,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,11,0,197,35,1,0,8,3,11,192,197,131,11,3,11,192,197,227,12,0,197,67,1,0,8,3,12,192,197,163,11,3,13,192,197,3,2,0,39,0,40,0,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,24,4,185,76,185,80,185,84,186,88,186,96,26,4,185,104,185,108,186,112,30,4,185,124,185,128,185,132,186,136,186,140,32,4,185,152,185,156,185,160,185,164,185,168,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,60,168,64,168,68,36,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,38,4,168,124,168,128,168,132,168,136,168,140,40,4,168,152,168,156,168,160,168,164,168,168,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,176,185,184,185,176,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,180,136,14,185,180,185,149,153,149,249,149,217,164,153,165,0,8,2,8,168,57,136,57,232,57,104,58,200,176,168,184,168,176,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,180,128,14,168,180,168,149,136,149,232,149,200,164,136,165,4,8,72,166,249,58,232,58,217,57,200,57,42,4,44,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,176,232,176,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,200,128,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,180,232,180,25,181,8,181,153,133,136,133,185,134,168,134,25,134,8,134,154,137,136,137,250,137,232,137,186,138,168,138,26,138,8,138,186,142,168,142,26,142,8,142,185,144,168,144,121,150,104,150,249,150,232,150,217,149,200,149,57,150,40,150,249,164,232,164,46,4,48,4,249,157,232,157,249,165,232,165,89,166,153,169,136,169,153,170,136,170,25,170,8,170,232,136,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,140,185,84,200,136,169,136,169,140,168,84,187,88,187,96,169,88,169,96,169,172,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,255,5,185,100,39,4,209,128,255,5,185,120,255,5,185,148,255,5,168,56,255,5,168,72,255,5,168,120,255,5,168,148,255,5,217,58,255,5,200,58,255,5,217,150,255,5,200,150,255,1,3,0,67,0,50,0,59,0,123,12,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,116,12,0,32,221,22,0,32,1,0,32,0,226,22,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,230,8,0,32,7,0,0,0,21,0,0,0,232,8,0,0,232,8,0,0,3,0,0,0,0,0,0,0,33,1,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,18,222,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,75,0,104,0,109,0,114,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,180,23,61,0,181,23,38,0,212,23,155,23,212,23,60,0,60,0,60,0,216,23,38,0,200,23,60,0,60,0,206,23,60,0,60,0,207,23,60,0,60,0,209,23,60,0,60,0,208,23,60,0,60,0,200,23,60,0,60,0,221,23,60,0,60,0,203,23,60,0,60,0,201,23,60,0,60,0,202,23,60,0,60,0,205,23,38,0,154,23,60,0,171,23,60,0,172,23,38,0,155,23,60,0,173,23,60,0,174,23,38,0,154,23,210,23,128,23,60,0,60,0,128,23,204,23,38,0,154,23,210,23,129,23,60,0,60,0,129,23,204,23,38,0,154,23,210,23,130,23,60,0,60,0,130,23,204,23,38,0,154,23,210,23,131,23,60,0,60,0,131,23,204,23,38,0,154,23,210,23,132,23,60,0,60,0,132,23,204,23,38,0,154,23,210,23,133,23,60,0,60,0,133,23,204,23,38,0,154,23,210,23,134,23,60,0,60,0,134,23,204,23,38,0,154,23,210,23,135,23,60,0,60,0,135,23,204,23,38,0,154,23,210,23,136,23,60,0,60,0,136,23,204,23,38,0,154,23,210,23,137,23,60,0,60,0,137,23,204,23,38,0,154,23,210,23,138,23,60,0,60,0,138,23,204,23,38,0,154,23,210,23,139,23,60,0,60,0,139,23,204,23,38,0,154,23,210,23,140,23,60,0,60,0,140,23,204,23,38,0,154,23,210,23,141,23,60,0,60,0,141,23,204,23,38,0,154,23,210,23,142,23,60,0,60,0,142,23,204,23,38,0,154,23,210,23,143,23,60,0,60,0,143,23,204,23,38,0,154,23,210,23,144,23,60,0,60,0,144,23,204,23,38,0,154,23,210,23,145,23,60,0,60,0,145,23,204,23,38,0,154,23,210,23,146,23,60,0,60,0,146,23,204,23,38,0,154,23,210,23,147,23,60,0,60,0,147,23,204,23,38,0,154,23,210,23,148,23,60,0,60,0,148,23,204,23,38,0,154,23,210,23,149,23,60,0,60,0,149,23,204,23,38,0,154,23,210,23,150,23,60,0,60,0,150,23,204,23,38,0,154,23,210,23,151,23,60,0,60,0,151,23,204,23,38,0,154,23,210,23,152,23,60,0,60,0,152,23,204,23,38,0,154,23,210,23,153,23,60,0,60,0,153,23,204,23,38,0,154,23,210,23,154,23,60,0,60,0,154,23,204,23,38,0,154,23,210,23,171,23,60,0,60,0,171,23,204,23,38,0,154,23,210,23,172,23,60,0,60,0,172,23,204,23,38,0,154,23,210,23,155,23,60,0,60,0,155,23,204,23,38,0,154,23,210,23,173,23,60,0,60,0,173,23,204,23,38,0,154,23,210,23,174,23,60,0,60,0,174,23,204,23,38,0,154,23,210,23,156,23,60,0,60,0,156,23,204,23,38,0,154,23,210,23,157,23,60,0,60,0,157,23,204,23,38,0,154,23,210,23,158,23,60,0,60,0,158,23,204,23,38,0,154,23,210,23,159,23,60,0,60,0,159,23,204,23,38,0,154,23,210,23,160,23,60,0,60,0,160,23,204,23,38,0,154,23,210,23,161,23,60,0,60,0,161,23,204,23,38,0,154,23,210,23,162,23,60,0,60,0,162,23,204,23,61,0,163,23,204,23,38,0,162,23,61,0,163,23,38,0,162,23,182,23,61,0,164,23,38,0,162,23,183,23,60,0,60,0,165,23,38,0,162,23,184,23,60,0,60,0,166,23,38,0,162,23,187,23,60,0,60,0,167,23,38,0,162,23,188,23,60,0,60,0,169,23,38,0,162,23,194,23,60,0,60,0,175,23,38,0,162,23,195,23,60,0,60,0,176,23,38,0,162,23,196,23,60,0,60,0,177,23,38,0,162,23,197,23,60,0,60,0,179,23,38,0,167,23,128,23,60,0,60,0,60,0,168,23,38,0,169,23,156,23,60,0,60,0,60,0,170,23,38,0,177,23,60,0,60,0,60,0,178,23,38,0,197,23,60,0,187,23,198,23,60,0,198,23,60,0,182,23,198,23,60,0,199,23,60,0,183,23,199,23,60,0,187,23,199,23,60,0,193,23,199,23,60,0,196,23,199,23,0,0,170,170,170,170,170,170,170,170,236,30,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,236,25,0,0,236,25,0,0,76,26,0,0,76,26,0,0,168,28,0,0,168,28,0,0,198,30,0,0,208,30,0,0,23,0,0,0,0,0,98,117,178,255,0,118,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,0,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,129,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,17,0,202,193,17,0,202,226,17,0,202,3,18,0,202,36,18,0,202,69,18,0,202,102,18,0,202,135,18,0,202,168,18,0,202,201,18,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,16,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,17,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,17,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,201,160,0,0,201,96,1,0,201,32,2,0,201,224,2,0,201,160,3,0,201,96,4,0,201,32,5,0,201,224,5,0,201,160,6,0,201,96,7,0,201,32,8,0,201,224,8,0,201,160,9,0,201,96,10,0,201,32,11,0,201,224,11,0,201,160,12,0,201,96,13,0,201,32,14,0,201,224,14,0,201,160,15,0,201,96,16,0,201,32,17,0,201,224,17,0,201,160,18,0,201,96,19,0,201,32,20,0,201,224,20,0,201,160,21,0,201,96,22,0,201,32,23,0,201,224,23,0,201,160,24,0,201,96,25,0,201,96,25,0,197,66,13,0,197,130,13,0,197,194,13,0,197,2,14,0,197,67,14,0,197,162,14,0,197,227,14,0,201,32,26,0,201,192,26,0,201,128,27,0,201,64,28,0,197,66,15,0,197,130,15,0,197,194,15,0,197,2,16,0,197,66,16,0,0,0,0,0,0,0,0,0,201,0,29,0,201,224,29,0,192,0,0,0,192,0,0,0,192,0,0,0,201,192,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,32,0,192,0,0,0,192,0,0,0,201,0,33,0,192,0,0,0,193,3,237,117,193,5,237,117,194,5,164,245,194,5,167,245,194,5,168,245,194,5,166,245,192,0,0,0,194,5,169,245,194,5,160,245,194,5,161,245,194,5,163,245,194,5,162,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,165,245,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,2,153,117,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,3,153,117,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,2,155,117,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,3,155,117,0,0,0,0,5,5,152,117,5,5,238,117,5,70,100,117,5,5,152,117,5,5,238,117,5,70,102,117,5,5,152,117,5,5,238,117,5,70,104,117,5,5,152,117,5,5,238,117,5,70,106,117,5,5,152,117,5,5,238,117,5,70,108,117,5,5,152,117,5,5,238,117,5,70,110,117,5,5,152,117,5,5,238,117,5,70,112,117,5,5,152,117,5,5,238,117,5,70,114,117,5,5,152,117,5,5,238,117,5,70,116,117,5,5,152,117,5,5,238,117,5,70,118,117,5,5,152,117,5,5,238,117,5,70,120,117,5,5,152,117,5,5,238,117,5,70,122,117,5,5,152,117,5,5,238,117,5,70,124,117,5,5,152,117,5,5,238,117,5,70,126,117,5,5,152,117,5,5,238,117,5,70,128,117,5,5,152,117,5,5,238,117,5,70,130,117,5,5,152,117,5,5,238,117,5,70,132,117,5,5,152,117,5,5,238,117,5,70,134,117,5,5,152,117,5,5,238,117,5,70,136,117,5,5,152,117,5,5,238,117,5,70,138,117,5,5,152,117,5,5,238,117,5,70,140,117,5,5,152,117,5,5,238,117,5,70,142,117,5,5,152,117,5,5,238,117,5,70,144,117,5,5,152,117,5,5,238,117,5,70,146,117,5,5,152,117,5,5,238,117,5,70,148,117,5,5,152,117,5,5,238,117,5,70,150,117,5,5,152,117,5,5,238,117,5,70,152,117,5,5,152,117,5,5,238,117,5,70,154,117,5,5,152,117,5,5,238,117,5,70,156,117,5,5,152,117,5,5,238,117,5,70,158,117,5,5,152,117,5,5,238,117,5,70,160,117,5,5,152,117,5,5,238,117,5,70,162,117,5,5,152,117,5,5,238,117,5,70,164,117,5,5,152,117,5,5,238,117,5,70,166,117,5,5,152,117,5,5,238,117,5,70,168,117,5,5,168,117,5,5,206,117,5,5,168,117,5,70,208,117,5,5,168,117,5,70,210,117,5,5,168,117,5,70,216,117,5,5,168,117,5,70,216,117,6,5,100,117,5,5,168,117,5,70,218,117,5,5,168,117,5,70,218,117,6,5,156,117,5,5,168,117,5,70,230,117,5,5,168,117,5,70,232,117,5,5,168,117,5,70,234,117,5,5,168,117,6,70,234,117,5,5,168,117,5,70,236,117,5,5,48,9,5,5,154,117,6,5,48,9,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,100,117,5,5,48,0,204,23,197,163,102,117,5,5,48,0,204,23,0,192,197,131,104,117,5,5,48,0,204,23,0,192,197,227,106,117,5,5,48,0,204,23,1,192,197,67,108,117,5,5,48,0,204,23,1,192,197,163,110,117,5,5,48,0,204,23,2,192,197,3,112,117,5,5,48,0,204,23,2,192,197,99,114,117,5,5,48,0,204,23,2,192,197,195,116,117,5,5,48,0,204,23,3,192,197,35,118,117,5,5,48,0,204,23,3,192,197,131,120,117,5,5,48,0,204,23,3,192,197,227,122,117,5,5,48,0,204,23,4,192,197,67,124,117,5,5,48,0,204,23,4,192,197,163,126,117,5,5,48,0,204,23,5,192,197,3,128,117,5,5,48,0,204,23,5,192,197,99,130,117,5,5,48,0,204,23,5,192,197,195,132,117,5,5,48,0,204,23,6,192,197,35,134,117,5,5,48,0,204,23,6,192,197,131,136,117,5,5,48,0,204,23,6,192,197,227,138,117,5,5,48,0,204,23,7,192,197,67,140,117,5,5,48,0,204,23,7,192,197,163,142,117,5,5,48,0,204,23,8,192,197,3,144,117,5,5,48,0,204,23,8,192,197,99,146,117,5,5,48,0,204,23,8,192,197,195,148,117,5,5,48,0,204,23,9,192,197,35,150,117,5,5,48,0,204,23,9,192,197,131,152,117,5,5,48,0,204,23,9,192,197,227,154,117,5,5,48,0,204,23,10,192,197,67,156,117,5,5,48,0,204,23,10,192,197,163,158,117,5,5,48,0,204,23,11,192,197,3,160,117,5,5,48,0,204,23,11,192,197,99,162,117,5,5,48,0,204,23,11,192,197,195,164,117,5,5,48,0,204,23,12,192,197,35,166,117,5,5,48,0,204,23,12,192,197,131,168,117,5,5,48,0,204,23,12,192,197,227,153,117,193,2,48,0,204,23,198,131,153,117,193,3,48,0,204,23,0,192,198,99,155,117,193,2,48,0,204,23,0,192,198,195,155,117,193,3,48,0,204,23,1,192,198,35,206,117,5,5,48,0,198,23,255,255,237,117,193,4,208,117,5,5,48,0,199,23,255,255,237,117,193,6,216,117,5,5,1,0,198,23,255,255,237,117,193,2,199,23,255,255,237,117,193,7,228,117,5,5,48,0,199,23,255,255,237,117,193,8,234,117,5,5,48,0,199,23,255,255,237,117,193,9,4,0,198,23,200,23,204,23,205,23,3,0,69,0,52,0,61,0,35,1,0,16,4,0,0,96,1,0,0,96,1,0,43,0,223,8,0,32,1,0,32,0,228,8,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,117,33,0,32,7,0,0,0,24,0,0,0,119,33,0,0,119,33,0,0,3,0,0,0,0,0,0,0,118,9,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,116,114,97,100,105,116,105,111,110,97,108,0,0,0,52,0,50,0,0,0,87,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,75,0,110,0,100,0,97,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,12,60,0,130,12,60,0,131,12,60,0,241,12,60,0,242,12,0,0,239,223,92,18,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,75,0,110,0,100,0,97,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,12,60,0,130,12,60,0,131,12,60,0,241,12,60,0,242,12,60,0,149,12,205,12,60,0,150,12,205,12,60,0,151,12,205,12,60,0,152,12,205,12,60,0,153,12,205,12,60,0,154,12,205,12,60,0,155,12,205,12,60,0,156,12,205,12,60,0,157,12,205,12,60,0,158,12,205,12,60,0,159,12,205,12,60,0,160,12,205,12,60,0,161,12,205,12,60,0,162,12,205,12,60,0,163,12,205,12,60,0,164,12,205,12,60,0,165,12,205,12,60,0,166,12,205,12,60,0,167,12,205,12,60,0,168,12,205,12,60,0,170,12,205,12,60,0,171,12,205,12,60,0,172,12,205,12,60,0,173,12,205,12,60,0,174,12,205,12,60,0,175,12,205,12,60,0,176,12,205,12,60,0,177,12,205,12,60,0,178,12,205,12,60,0,181,12,205,12,60,0,182,12,205,12,60,0,183,12,205,12,60,0,184,12,205,12,60,0,185,12,205,12,60,0,179,12,205,12,60,0,222,12,205,12,38,0,149,12,205,12,133,12,61,0,149,12,38,0,149,12,205,12,134,12,61,0,149,12,190,12,38,0,149,12,205,12,135,12,61,0,149,12,191,12,38,0,149,12,205,12,136,12,61,0,149,12,192,12,38,0,149,12,205,12,137,12,61,0,149,12,193,12,38,0,149,12,205,12,138,12,61,0,149,12,194,12,38,0,149,12,205,12,139,12,61,0,149,12,195,12,38,0,149,12,205,12,224,12,61,0,149,12,196,12,38,0,149,12,205,12,140,12,61,0,149,12,226,12,38,0,149,12,205,12,225,12,61,0,149,12,227,12,38,0,149,12,205,12,142,12,61,0,149,12,198,12,38,0,149,12,205,12,143,12,61,0,149,12,199,12,38,0,149,12,205,12,144,12,61,0,149,12,200,12,38,0,149,12,205,12,146,12,61,0,149,12,202,12,38,0,149,12,205,12,147,12,61,0,149,12,203,12,38,0,149,12,205,12,148,12,61,0,149,12,204,12,38,0,150,12,205,12,133,12,61,0,150,12,38,0,150,12,205,12,134,12,61,0,150,12,190,12,38,0,150,12,205,12,135,12,61,0,150,12,191,12,38,0,150,12,205,12,136,12,61,0,150,12,192,12,38,0,150,12,205,12,137,12,61,0,150,12,193,12,38,0,150,12,205,12,138,12,61,0,150,12,194,12,38,0,150,12,205,12,139,12,61,0,150,12,195,12,38,0,150,12,205,12,224,12,61,0,150,12,196,12,38,0,150,12,205,12,140,12,61,0,150,12,226,12,38,0,150,12,205,12,225,12,61,0,150,12,227,12,38,0,150,12,205,12,142,12,61,0,150,12,198,12,38,0,150,12,205,12,143,12,61,0,150,12,199,12,38,0,150,12,205,12,144,12,61,0,150,12,200,12,38,0,150,12,205,12,146,12,61,0,150,12,202,12,38,0,150,12,205,12,147,12,61,0,150,12,203,12,38,0,150,12,205,12,148,12,61,0,150,12,204,12,38,0,151,12,205,12,133,12,61,0,151,12,38,0,151,12,205,12,134,12,61,0,151,12,190,12,38,0,151,12,205,12,135,12,61,0,151,12,191,12,38,0,151,12,205,12,136,12,61,0,151,12,192,12,38,0,151,12,205,12,137,12,61,0,151,12,193,12,38,0,151,12,205,12,138,12,61,0,151,12,194,12,38,0,151,12,205,12,139,12,61,0,151,12,195,12,38,0,151,12,205,12,224,12,61,0,151,12,196,12,38,0,151,12,205,12,140,12,61,0,151,12,226,12,38,0,151,12,205,12,225,12,61,0,151,12,227,12,38,0,151,12,205,12,142,12,61,0,151,12,198,12,38,0,151,12,205,12,143,12,61,0,151,12,199,12,38,0,151,12,205,12,144,12,61,0,151,12,200,12,38,0,151,12,205,12,146,12,61,0,151,12,202,12,38,0,151,12,205,12,147,12,61,0,151,12,203,12,38,0,151,12,205,12,148,12,61,0,151,12,204,12,38,0,152,12,205,12,133,12,61,0,152,12,38,0,152,12,205,12,134,12,61,0,152,12,190,12,38,0,152,12,205,12,135,12,61,0,152,12,191,12,38,0,152,12,205,12,136,12,61,0,152,12,192,12,38,0,152,12,205,12,137,12,61,0,152,12,193,12,38,0,152,12,205,12,138,12,61,0,152,12,194,12,38,0,152,12,205,12,139,12,61,0,152,12,195,12,38,0,152,12,205,12,224,12,61,0,152,12,196,12,38,0,152,12,205,12,140,12,61,0,152,12,226,12,38,0,152,12,205,12,225,12,61,0,152,12,227,12,38,0,152,12,205,12,142,12,61,0,152,12,198,12,38,0,152,12,205,12,143,12,61,0,152,12,199,12,38,0,152,12,205,12,144,12,61,0,152,12,200,12,38,0,152,12,205,12,146,12,61,0,152,12,202,12,38,0,152,12,205,12,147,12,61,0,152,12,203,12,38,0,152,12,205,12,148,12,61,0,152,12,204,12,38,0,153,12,205,12,133,12,61,0,153,12,38,0,153,12,205,12,134,12,61,0,153,12,190,12,38,0,153,12,205,12,135,12,61,0,153,12,191,12,38,0,153,12,205,12,136,12,61,0,153,12,192,12,38,0,153,12,205,12,137,12,61,0,153,12,193,12,38,0,153,12,205,12,138,12,61,0,153,12,194,12,38,0,153,12,205,12,139,12,61,0,153,12,195,12,38,0,153,12,205,12,224,12,61,0,153,12,196,12,38,0,153,12,205,12,140,12,61,0,153,12,226,12,38,0,153,12,205,12,225,12,61,0,153,12,227,12,38,0,153,12,205,12,142,12,61,0,153,12,198,12,38,0,153,12,205,12,143,12,61,0,153,12,199,12,38,0,153,12,205,12,144,12,61,0,153,12,200,12,38,0,153,12,205,12,146,12,61,0,153,12,202,12,38,0,153,12,205,12,147,12,61,0,153,12,203,12,38,0,153,12,205,12,148,12,61,0,153,12,204,12,38,0,154,12,205,12,133,12,61,0,154,12,38,0,154,12,205,12,134,12,61,0,154,12,190,12,38,0,154,12,205,12,135,12,61,0,154,12,191,12,38,0,154,12,205,12,136,12,61,0,154,12,192,12,38,0,154,12,205,12,137,12,61,0,154,12,193,12,38,0,154,12,205,12,138,12,61,0,154,12,194,12,38,0,154,12,205,12,139,12,61,0,154,12,195,12,38,0,154,12,205,12,224,12,61,0,154,12,196,12,38,0,154,12,205,12,140,12,61,0,154,12,226,12,38,0,154,12,205,12,225,12,61,0,154,12,227,12,38,0,154,12,205,12,142,12,61,0,154,12,198,12,38,0,154,12,205,12,143,12,61,0,154,12,199,12,38,0,154,12,205,12,144,12,61,0,154,12,200,12,38,0,154,12,205,12,146,12,61,0,154,12,202,12,38,0,154,12,205,12,147,12,61,0,154,12,203,12,38,0,154,12,205,12,148,12,61,0,154,12,204,12,38,0,155,12,205,12,133,12,61,0,155,12,38,0,155,12,205,12,134,12,61,0,155,12,190,12,38,0,155,12,205,12,135,12,61,0,155,12,191,12,38,0,155,12,205,12,136,12,61,0,155,12,192,12,38,0,155,12,205,12,137,12,61,0,155,12,193,12,38,0,155,12,205,12,138,12,61,0,155,12,194,12,38,0,155,12,205,12,139,12,61,0,155,12,195,12,38,0,155,12,205,12,224,12,61,0,155,12,196,12,38,0,155,12,205,12,140,12,61,0,155,12,226,12,38,0,155,12,205,12,225,12,61,0,155,12,227,12,38,0,155,12,205,12,142,12,61,0,155,12,198,12,38,0,155,12,205,12,143,12,61,0,155,12,199,12,38,0,155,12,205,12,144,12,61,0,155,12,200,12,38,0,155,12,205,12,146,12,61,0,155,12,202,12,38,0,155,12,205,12,147,12,61,0,155,12,203,12,38,0,155,12,205,12,148,12,61,0,155,12,204,12,38,0,156,12,205,12,133,12,61,0,156,12,38,0,156,12,205,12,134,12,61,0,156,12,190,12,38,0,156,12,205,12,135,12,61,0,156,12,191,12,38,0,156,12,205,12,136,12,61,0,156,12,192,12,38,0,156,12,205,12,137,12,61,0,156,12,193,12,38,0,156,12,205,12,138,12,61,0,156,12,194,12,38,0,156,12,205,12,139,12,61,0,156,12,195,12,38,0,156,12,205,12,224,12,61,0,156,12,196,12,38,0,156,12,205,12,140,12,61,0,156,12,226,12,38,0,156,12,205,12,225,12,61,0,156,12,227,12,38,0,156,12,205,12,142,12,61,0,156,12,198,12,38,0,156,12,205,12,143,12,61,0,156,12,199,12,38,0,156,12,205,12,144,12,61,0,156,12,200,12,38,0,156,12,205,12,146,12,61,0,156,12,202,12,38,0,156,12,205,12,147,12,61,0,156,12,203,12,38,0,156,12,205,12,148,12,61,0,156,12,204,12,38,0,157,12,205,12,133,12,61,0,157,12,38,0,157,12,205,12,134,12,61,0,157,12,190,12,38,0,157,12,205,12,135,12,61,0,157,12,191,12,38,0,157,12,205,12,136,12,61,0,157,12,192,12,38,0,157,12,205,12,137,12,61,0,157,12,193,12,38,0,157,12,205,12,138,12,61,0,157,12,194,12,38,0,157,12,205,12,139,12,61,0,157,12,195,12,38,0,157,12,205,12,224,12,61,0,157,12,196,12,38,0,157,12,205,12,140,12,61,0,157,12,226,12,38,0,157,12,205,12,225,12,61,0,157,12,227,12,38,0,157,12,205,12,142,12,61,0,157,12,198,12,38,0,157,12,205,12,143,12,61,0,157,12,199,12,38,0,157,12,205,12,144,12,61,0,157,12,200,12,38,0,157,12,205,12,146,12,61,0,157,12,202,12,38,0,157,12,205,12,147,12,61,0,157,12,203,12,38,0,157,12,205,12,148,12,61,0,157,12,204,12,38,0,158,12,205,12,133,12,61,0,158,12,38,0,158,12,205,12,134,12,61,0,158,12,190,12,38,0,158,12,205,12,135,12,61,0,158,12,191,12,38,0,158,12,205,12,136,12,61,0,158,12,192,12,38,0,158,12,205,12,137,12,61,0,158,12,193,12,38,0,158,12,205,12,138,12,61,0,158,12,194,12,38,0,158,12,205,12,139,12,61,0,158,12,195,12,38,0,158,12,205,12,224,12,61,0,158,12,196,12,38,0,158,12,205,12,140,12,61,0,158,12,226,12,38,0,158,12,205,12,225,12,61,0,158,12,227,12,38,0,158,12,205,12,142,12,61,0,158,12,198,12,38,0,158,12,205,12,143,12,61,0,158,12,199,12,38,0,158,12,205,12,144,12,61,0,158,12,200,12,38,0,158,12,205,12,146,12,61,0,158,12,202,12,38,0,158,12,205,12,147,12,61,0,158,12,203,12,38,0,158,12,205,12,148,12,61,0,158,12,204,12,38,0,159,12,205,12,133,12,61,0,159,12,38,0,159,12,205,12,134,12,61,0,159,12,190,12,38,0,159,12,205,12,135,12,61,0,159,12,191,12,38,0,159,12,205,12,136,12,61,0,159,12,192,12,38,0,159,12,205,12,137,12,61,0,159,12,193,12,38,0,159,12,205,12,138,12,61,0,159,12,194,12,38,0,159,12,205,12,139,12,61,0,159,12,195,12,38,0,159,12,205,12,224,12,61,0,159,12,196,12,38,0,159,12,205,12,140,12,61,0,159,12,226,12,38,0,159,12,205,12,225,12,61,0,159,12,227,12,38,0,159,12,205,12,142,12,61,0,159,12,198,12,38,0,159,12,205,12,143,12,61,0,159,12,199,12,38,0,159,12,205,12,144,12,61,0,159,12,200,12,38,0,159,12,205,12,146,12,61,0,159,12,202,12,38,0,159,12,205,12,147,12,61,0,159,12,203,12,38,0,159,12,205,12,148,12,61,0,159,12,204,12,38,0,160,12,205,12,133,12,61,0,160,12,38,0,160,12,205,12,134,12,61,0,160,12,190,12,38,0,160,12,205,12,135,12,61,0,160,12,191,12,38,0,160,12,205,12,136,12,61,0,160,12,192,12,38,0,160,12,205,12,137,12,61,0,160,12,193,12,38,0,160,12,205,12,138,12,61,0,160,12,194,12,38,0,160,12,205,12,139,12,61,0,160,12,195,12,38,0,160,12,205,12,224,12,61,0,160,12,196,12,38,0,160,12,205,12,140,12,61,0,160,12,226,12,38,0,160,12,205,12,225,12,61,0,160,12,227,12,38,0,160,12,205,12,142,12,61,0,160,12,198,12,38,0,160,12,205,12,143,12,61,0,160,12,199,12,38,0,160,12,205,12,144,12,61,0,160,12,200,12,38,0,160,12,205,12,146,12,61,0,160,12,202,12,38,0,160,12,205,12,147,12,61,0,160,12,203,12,38,0,160,12,205,12,148,12,61,0,160,12,204,12,38,0,161,12,205,12,133,12,61,0,161,12,38,0,161,12,205,12,134,12,61,0,161,12,190,12,38,0,161,12,205,12,135,12,61,0,161,12,191,12,38,0,161,12,205,12,136,12,61,0,161,12,192,12,38,0,161,12,205,12,137,12,61,0,161,12,193,12,38,0,161,12,205,12,138,12,61,0,161,12,194,12,38,0,161,12,205,12,139,12,61,0,161,12,195,12,38,0,161,12,205,12,224,12,61,0,161,12,196,12,38,0,161,12,205,12,140,12,61,0,161,12,226,12,38,0,161,12,205,12,225,12,61,0,161,12,227,12,38,0,161,12,205,12,142,12,61,0,161,12,198,12,38,0,161,12,205,12,143,12,61,0,161,12,199,12,38,0,161,12,205,12,144,12,61,0,161,12,200,12,38,0,161,12,205,12,146,12,61,0,161,12,202,12,38,0,161,12,205,12,147,12,61,0,161,12,203,12,38,0,161,12,205,12,148,12,61,0,161,12,204,12,38,0,162,12,205,12,133,12,61,0,162,12,38,0,162,12,205,12,134,12,61,0,162,12,190,12,38,0,162,12,205,12,135,12,61,0,162,12,191,12,38,0,162,12,205,12,136,12,61,0,162,12,192,12,38,0,162,12,205,12,137,12,61,0,162,12,193,12,38,0,162,12,205,12,138,12,61,0,162,12,194,12,38,0,162,12,205,12,139,12,61,0,162,12,195,12,38,0,162,12,205,12,224,12,61,0,162,12,196,12,38,0,162,12,205,12,140,12,61,0,162,12,226,12,38,0,162,12,205,12,225,12,61,0,162,12,227,12,38,0,162,12,205,12,142,12,61,0,162,12,198,12,38,0,162,12,205,12,143,12,61,0,162,12,199,12,38,0,162,12,205,12,144,12,61,0,162,12,200,12,38,0,162,12,205,12,146,12,61,0,162,12,202,12,38,0,162,12,205,12,147,12,61,0,162,12,203,12,38,0,162,12,205,12,148,12,61,0,162,12,204,12,38,0,163,12,205,12,133,12,61,0,163,12,38,0,163,12,205,12,134,12,61,0,163,12,190,12,38,0,163,12,205,12,135,12,61,0,163,12,191,12,38,0,163,12,205,12,136,12,61,0,163,12,192,12,38,0,163,12,205,12,137,12,61,0,163,12,193,12,38,0,163,12,205,12,138,12,61,0,163,12,194,12,38,0,163,12,205,12,139,12,61,0,163,12,195,12,38,0,163,12,205,12,224,12,61,0,163,12,196,12,38,0,163,12,205,12,140,12,61,0,163,12,226,12,38,0,163,12,205,12,225,12,61,0,163,12,227,12,38,0,163,12,205,12,142,12,61,0,163,12,198,12,38,0,163,12,205,12,143,12,61,0,163,12,199,12,38,0,163,12,205,12,144,12,61,0,163,12,200,12,38,0,163,12,205,12,146,12,61,0,163,12,202,12,38,0,163,12,205,12,147,12,61,0,163,12,203,12,38,0,163,12,205,12,148,12,61,0,163,12,204,12,38,0,164,12,205,12,133,12,61,0,164,12,38,0,164,12,205,12,134,12,61,0,164,12,190,12,38,0,164,12,205,12,135,12,61,0,164,12,191,12,38,0,164,12,205,12,136,12,61,0,164,12,192,12,38,0,164,12,205,12,137,12,61,0,164,12,193,12,38,0,164,12,205,12,138,12,61,0,164,12,194,12,38,0,164,12,205,12,139,12,61,0,164,12,195,12,38,0,164,12,205,12,224,12,61,0,164,12,196,12,38,0,164,12,205,12,140,12,61,0,164,12,226,12,38,0,164,12,205,12,225,12,61,0,164,12,227,12,38,0,164,12,205,12,142,12,61,0,164,12,198,12,38,0,164,12,205,12,143,12,61,0,164,12,199,12,38,0,164,12,205,12,144,12,61,0,164,12,200,12,38,0,164,12,205,12,146,12,61,0,164,12,202,12,38,0,164,12,205,12,147,12,61,0,164,12,203,12,38,0,164,12,205,12,148,12,61,0,164,12,204,12,38,0,165,12,205,12,133,12,61,0,165,12,38,0,165,12,205,12,134,12,61,0,165,12,190,12,38,0,165,12,205,12,135,12,61,0,165,12,191,12,38,0,165,12,205,12,136,12,61,0,165,12,192,12,38,0,165,12,205,12,137,12,61,0,165,12,193,12,38,0,165,12,205,12,138,12,61,0,165,12,194,12,38,0,165,12,205,12,139,12,61,0,165,12,195,12,38,0,165,12,205,12,224,12,61,0,165,12,196,12,38,0,165,12,205,12,140,12,61,0,165,12,226,12,38,0,165,12,205,12,225,12,61,0,165,12,227,12,38,0,165,12,205,12,142,12,61,0,165,12,198,12,38,0,165,12,205,12,143,12,61,0,165,12,199,12,38,0,165,12,205,12,144,12,61,0,165,12,200,12,38,0,165,12,205,12,146,12,61,0,165,12,202,12,38,0,165,12,205,12,147,12,61,0,165,12,203,12,38,0,165,12,205,12,148,12,61,0,165,12,204,12,38,0,166,12,205,12,133,12,61,0,166,12,38,0,166,12,205,12,134,12,61,0,166,12,190,12,38,0,166,12,205,12,135,12,61,0,166,12,191,12,38,0,166,12,205,12,136,12,61,0,166,12,192,12,38,0,166,12,205,12,137,12,61,0,166,12,193,12,38,0,166,12,205,12,138,12,61,0,166,12,194,12,38,0,166,12,205,12,139,12,61,0,166,12,195,12,38,0,166,12,205,12,224,12,61,0,166,12,196,12,38,0,166,12,205,12,140,12,61,0,166,12,226,12,38,0,166,12,205,12,225,12,61,0,166,12,227,12,38,0,166,12,205,12,142,12,61,0,166,12,198,12,38,0,166,12,205,12,143,12,61,0,166,12,199,12,38,0,166,12,205,12,144,12,61,0,166,12,200,12,38,0,166,12,205,12,146,12,61,0,166,12,202,12,38,0,166,12,205,12,147,12,61,0,166,12,203,12,38,0,166,12,205,12,148,12,61,0,166,12,204,12,38,0,167,12,205,12,133,12,61,0,167,12,38,0,167,12,205,12,134,12,61,0,167,12,190,12,38,0,167,12,205,12,135,12,61,0,167,12,191,12,38,0,167,12,205,12,136,12,61,0,167,12,192,12,38,0,167,12,205,12,137,12,61,0,167,12,193,12,38,0,167,12,205,12,138,12,61,0,167,12,194,12,38,0,167,12,205,12,139,12,61,0,167,12,195,12,38,0,167,12,205,12,224,12,61,0,167,12,196,12,38,0,167,12,205,12,140,12,61,0,167,12,226,12,38,0,167,12,205,12,225,12,61,0,167,12,227,12,38,0,167,12,205,12,142,12,61,0,167,12,198,12,38,0,167,12,205,12,143,12,61,0,167,12,199,12,38,0,167,12,205,12,144,12,61,0,167,12,200,12,38,0,167,12,205,12,146,12,61,0,167,12,202,12,38,0,167,12,205,12,147,12,61,0,167,12,203,12,38,0,167,12,205,12,148,12,61,0,167,12,204,12,38,0,168,12,205,12,133,12,61,0,168,12,38,0,168,12,205,12,134,12,61,0,168,12,190,12,38,0,168,12,205,12,135,12,61,0,168,12,191,12,38,0,168,12,205,12,136,12,61,0,168,12,192,12,38,0,168,12,205,12,137,12,61,0,168,12,193,12,38,0,168,12,205,12,138,12,61,0,168,12,194,12,38,0,168,12,205,12,139,12,61,0,168,12,195,12,38,0,168,12,205,12,224,12,61,0,168,12,196,12,38,0,168,12,205,12,140,12,61,0,168,12,226,12,38,0,168,12,205,12,225,12,61,0,168,12,227,12,38,0,168,12,205,12,142,12,61,0,168,12,198,12,38,0,168,12,205,12,143,12,61,0,168,12,199,12,38,0,168,12,205,12,144,12,61,0,168,12,200,12,38,0,168,12,205,12,146,12,61,0,168,12,202,12,38,0,168,12,205,12,147,12,61,0,168,12,203,12,38,0,168,12,205,12,148,12,61,0,168,12,204,12,38,0,170,12,205,12,133,12,61,0,170,12,38,0,170,12,205,12,134,12,61,0,170,12,190,12,38,0,170,12,205,12,135,12,61,0,170,12,191,12,38,0,170,12,205,12,136,12,61,0,170,12,192,12,38,0,170,12,205,12,137,12,61,0,170,12,193,12,38,0,170,12,205,12,138,12,61,0,170,12,194,12,38,0,170,12,205,12,139,12,61,0,170,12,195,12,38,0,170,12,205,12,224,12,61,0,170,12,196,12,38,0,170,12,205,12,140,12,61,0,170,12,226,12,38,0,170,12,205,12,225,12,61,0,170,12,227,12,38,0,170,12,205,12,142,12,61,0,170,12,198,12,38,0,170,12,205,12,143,12,61,0,170,12,199,12,38,0,170,12,205,12,144,12,61,0,170,12,200,12,38,0,170,12,205,12,146,12,61,0,170,12,202,12,38,0,170,12,205,12,147,12,61,0,170,12,203,12,38,0,170,12,205,12,148,12,61,0,170,12,204,12,38,0,171,12,205,12,133,12,61,0,171,12,38,0,171,12,205,12,134,12,61,0,171,12,190,12,38,0,171,12,205,12,135,12,61,0,171,12,191,12,38,0,171,12,205,12,136,12,61,0,171,12,192,12,38,0,171,12,205,12,137,12,61,0,171,12,193,12,38,0,171,12,205,12,138,12,61,0,171,12,194,12,38,0,171,12,205,12,139,12,61,0,171,12,195,12,38,0,171,12,205,12,224,12,61,0,171,12,196,12,38,0,171,12,205,12,140,12,61,0,171,12,226,12,38,0,171,12,205,12,225,12,61,0,171,12,227,12,38,0,171,12,205,12,142,12,61,0,171,12,198,12,38,0,171,12,205,12,143,12,61,0,171,12,199,12,38,0,171,12,205,12,144,12,61,0,171,12,200,12,38,0,171,12,205,12,146,12,61,0,171,12,202,12,38,0,171,12,205,12,147,12,61,0,171,12,203,12,38,0,171,12,205,12,148,12,61,0,171,12,204,12,38,0,172,12,205,12,133,12,61,0,172,12,38,0,172,12,205,12,134,12,61,0,172,12,190,12,38,0,172,12,205,12,135,12,61,0,172,12,191,12,38,0,172,12,205,12,136,12,61,0,172,12,192,12,38,0,172,12,205,12,137,12,61,0,172,12,193,12,38,0,172,12,205,12,138,12,61,0,172,12,194,12,38,0,172,12,205,12,139,12,61,0,172,12,195,12,38,0,172,12,205,12,224,12,61,0,172,12,196,12,38,0,172,12,205,12,140,12,61,0,172,12,226,12,38,0,172,12,205,12,225,12,61,0,172,12,227,12,38,0,172,12,205,12,142,12,61,0,172,12,198,12,38,0,172,12,205,12,143,12,61,0,172,12,199,12,38,0,172,12,205,12,144,12,61,0,172,12,200,12,38,0,172,12,205,12,146,12,61,0,172,12,202,12,38,0,172,12,205,12,147,12,61,0,172,12,203,12,38,0,172,12,205,12,148,12,61,0,172,12,204,12,38,0,173,12,205,12,133,12,61,0,173,12,38,0,173,12,205,12,134,12,61,0,173,12,190,12,38,0,173,12,205,12,135,12,61,0,173,12,191,12,38,0,173,12,205,12,136,12,61,0,173,12,192,12,38,0,173,12,205,12,137,12,61,0,173,12,193,12,38,0,173,12,205,12,138,12,61,0,173,12,194,12,38,0,173,12,205,12,139,12,61,0,173,12,195,12,38,0,173,12,205,12,224,12,61,0,173,12,196,12,38,0,173,12,205,12,140,12,61,0,173,12,226,12,38,0,173,12,205,12,225,12,61,0,173,12,227,12,38,0,173,12,205,12,142,12,61,0,173,12,198,12,38,0,173,12,205,12,143,12,61,0,173,12,199,12,38,0,173,12,205,12,144,12,61,0,173,12,200,12,38,0,173,12,205,12,146,12,61,0,173,12,202,12,38,0,173,12,205,12,147,12,61,0,173,12,203,12,38,0,173,12,205,12,148,12,61,0,173,12,204,12,38,0,174,12,205,12,133,12,61,0,174,12,38,0,174,12,205,12,134,12,61,0,174,12,190,12,38,0,174,12,205,12,135,12,61,0,174,12,191,12,38,0,174,12,205,12,136,12,61,0,174,12,192,12,38,0,174,12,205,12,137,12,61,0,174,12,193,12,38,0,174,12,205,12,138,12,61,0,174,12,194,12,38,0,174,12,205,12,139,12,61,0,174,12,195,12,38,0,174,12,205,12,224,12,61,0,174,12,196,12,38,0,174,12,205,12,140,12,61,0,174,12,226,12,38,0,174,12,205,12,225,12,61,0,174,12,227,12,38,0,174,12,205,12,142,12,61,0,174,12,198,12,38,0,174,12,205,12,143,12,61,0,174,12,199,12,38,0,174,12,205,12,144,12,61,0,174,12,200,12,38,0,174,12,205,12,146,12,61,0,174,12,202,12,38,0,174,12,205,12,147,12,61,0,174,12,203,12,38,0,174,12,205,12,148,12,61,0,174,12,204,12,38,0,175,12,205,12,133,12,61,0,175,12,38,0,175,12,205,12,134,12,61,0,175,12,190,12,38,0,175,12,205,12,135,12,61,0,175,12,191,12,38,0,175,12,205,12,136,12,61,0,175,12,192,12,38,0,175,12,205,12,137,12,61,0,175,12,193,12,38,0,175,12,205,12,138,12,61,0,175,12,194,12,38,0,175,12,205,12,139,12,61,0,175,12,195,12,38,0,175,12,205,12,224,12,61,0,175,12,196,12,38,0,175,12,205,12,140,12,61,0,175,12,226,12,38,0,175,12,205,12,225,12,61,0,175,12,227,12,38,0,175,12,205,12,142,12,61,0,175,12,198,12,38,0,175,12,205,12,143,12,61,0,175,12,199,12,38,0,175,12,205,12,144,12,61,0,175,12,200,12,38,0,175,12,205,12,146,12,61,0,175,12,202,12,38,0,175,12,205,12,147,12,61,0,175,12,203,12,38,0,175,12,205,12,148,12,61,0,175,12,204,12,38,0,176,12,205,12,133,12,61,0,176,12,38,0,176,12,205,12,134,12,61,0,176,12,190,12,38,0,176,12,205,12,135,12,61,0,176,12,191,12,38,0,176,12,205,12,136,12,61,0,176,12,192,12,38,0,176,12,205,12,137,12,61,0,176,12,193,12,38,0,176,12,205,12,138,12,61,0,176,12,194,12,38,0,176,12,205,12,139,12,61,0,176,12,195,12,38,0,176,12,205,12,224,12,61,0,176,12,196,12,38,0,176,12,205,12,140,12,61,0,176,12,226,12,38,0,176,12,205,12,225,12,61,0,176,12,227,12,38,0,176,12,205,12,142,12,61,0,176,12,198,12,38,0,176,12,205,12,143,12,61,0,176,12,199,12,38,0,176,12,205,12,144,12,61,0,176,12,200,12,38,0,176,12,205,12,146,12,61,0,176,12,202,12,38,0,176,12,205,12,147,12,61,0,176,12,203,12,38,0,176,12,205,12,148,12,61,0,176,12,204,12,38,0,177,12,205,12,133,12,61,0,177,12,38,0,177,12,205,12,134,12,61,0,177,12,190,12,38,0,177,12,205,12,135,12,61,0,177,12,191,12,38,0,177,12,205,12,136,12,61,0,177,12,192,12,38,0,177,12,205,12,137,12,61,0,177,12,193,12,38,0,177,12,205,12,138,12,61,0,177,12,194,12,38,0,177,12,205,12,139,12,61,0,177,12,195,12,38,0,177,12,205,12,224,12,61,0,177,12,196,12,38,0,177,12,205,12,140,12,61,0,177,12,226,12,38,0,177,12,205,12,225,12,61,0,177,12,227,12,38,0,177,12,205,12,142,12,61,0,177,12,198,12,38,0,177,12,205,12,143,12,61,0,177,12,199,12,38,0,177,12,205,12,144,12,61,0,177,12,200,12,38,0,177,12,205,12,146,12,61,0,177,12,202,12,38,0,177,12,205,12,147,12,61,0,177,12,203,12,38,0,177,12,205,12,148,12,61,0,177,12,204,12,38,0,178,12,205,12,133,12,61,0,178,12,38,0,178,12,205,12,134,12,61,0,178,12,190,12,38,0,178,12,205,12,135,12,61,0,178,12,191,12,38,0,178,12,205,12,136,12,61,0,178,12,192,12,38,0,178,12,205,12,137,12,61,0,178,12,193,12,38,0,178,12,205,12,138,12,61,0,178,12,194,12,38,0,178,12,205,12,139,12,61,0,178,12,195,12,38,0,178,12,205,12,224,12,61,0,178,12,196,12,38,0,178,12,205,12,140,12,61,0,178,12,226,12,38,0,178,12,205,12,225,12,61,0,178,12,227,12,38,0,178,12,205,12,142,12,61,0,178,12,198,12,38,0,178,12,205,12,143,12,61,0,178,12,199,12,38,0,178,12,205,12,144,12,61,0,178,12,200,12,38,0,178,12,205,12,146,12,61,0,178,12,202,12,38,0,178,12,205,12,147,12,61,0,178,12,203,12,38,0,178,12,205,12,148,12,61,0,178,12,204,12,38,0,181,12,205,12,133,12,61,0,181,12,38,0,181,12,205,12,134,12,61,0,181,12,190,12,38,0,181,12,205,12,135,12,61,0,181,12,191,12,38,0,181,12,205,12,136,12,61,0,181,12,192,12,38,0,181,12,205,12,137,12,61,0,181,12,193,12,38,0,181,12,205,12,138,12,61,0,181,12,194,12,38,0,181,12,205,12,139,12,61,0,181,12,195,12,38,0,181,12,205,12,224,12,61,0,181,12,196,12,38,0,181,12,205,12,140,12,61,0,181,12,226,12,38,0,181,12,205,12,225,12,61,0,181,12,227,12,38,0,181,12,205,12,142,12,61,0,181,12,198,12,38,0,181,12,205,12,143,12,61,0,181,12,199,12,38,0,181,12,205,12,144,12,61,0,181,12,200,12,38,0,181,12,205,12,146,12,61,0,181,12,202,12,38,0,181,12,205,12,147,12,61,0,181,12,203,12,38,0,181,12,205,12,148,12,61,0,181,12,204,12,38,0,182,12,205,12,133,12,61,0,182,12,38,0,182,12,205,12,134,12,61,0,182,12,190,12,38,0,182,12,205,12,135,12,61,0,182,12,191,12,38,0,182,12,205,12,136,12,61,0,182,12,192,12,38,0,182,12,205,12,137,12,61,0,182,12,193,12,38,0,182,12,205,12,138,12,61,0,182,12,194,12,38,0,182,12,205,12,139,12,61,0,182,12,195,12,38,0,182,12,205,12,224,12,61,0,182,12,196,12,38,0,182,12,205,12,140,12,61,0,182,12,226,12,38,0,182,12,205,12,225,12,61,0,182,12,227,12,38,0,182,12,205,12,142,12,61,0,182,12,198,12,38,0,182,12,205,12,143,12,61,0,182,12,199,12,38,0,182,12,205,12,144,12,61,0,182,12,200,12,38,0,182,12,205,12,146,12,61,0,182,12,202,12,38,0,182,12,205,12,147,12,61,0,182,12,203,12,38,0,182,12,205,12,148,12,61,0,182,12,204,12,38,0,183,12,205,12,133,12,61,0,183,12,38,0,183,12,205,12,134,12,61,0,183,12,190,12,38,0,183,12,205,12,135,12,61,0,183,12,191,12,38,0,183,12,205,12,136,12,61,0,183,12,192,12,38,0,183,12,205,12,137,12,61,0,183,12,193,12,38,0,183,12,205,12,138,12,61,0,183,12,194,12,38,0,183,12,205,12,139,12,61,0,183,12,195,12,38,0,183,12,205,12,224,12,61,0,183,12,196,12,38,0,183,12,205,12,140,12,61,0,183,12,226,12,38,0,183,12,205,12,225,12,61,0,183,12,227,12,38,0,183,12,205,12,142,12,61,0,183,12,198,12,38,0,183,12,205,12,143,12,61,0,183,12,199,12,38,0,183,12,205,12,144,12,61,0,183,12,200,12,38,0,183,12,205,12,146,12,61,0,183,12,202,12,38,0,183,12,205,12,147,12,61,0,183,12,203,12,38,0,183,12,205,12,148,12,61,0,183,12,204,12,38,0,184,12,205,12,133,12,61,0,184,12,38,0,184,12,205,12,134,12,61,0,184,12,190,12,38,0,184,12,205,12,135,12,61,0,184,12,191,12,38,0,184,12,205,12,136,12,61,0,184,12,192,12,38,0,184,12,205,12,137,12,61,0,184,12,193,12,38,0,184,12,205,12,138,12,61,0,184,12,194,12,38,0,184,12,205,12,139,12,61,0,184,12,195,12,38,0,184,12,205,12,224,12,61,0,184,12,196,12,38,0,184,12,205,12,140,12,61,0,184,12,226,12,38,0,184,12,205,12,225,12,61,0,184,12,227,12,38,0,184,12,205,12,142,12,61,0,184,12,198,12,38,0,184,12,205,12,143,12,61,0,184,12,199,12,38,0,184,12,205,12,144,12,61,0,184,12,200,12,38,0,184,12,205,12,146,12,61,0,184,12,202,12,38,0,184,12,205,12,147,12,61,0,184,12,203,12,38,0,184,12,205,12,148,12,61,0,184,12,204,12,38,0,185,12,205,12,133,12,61,0,185,12,38,0,185,12,205,12,134,12,61,0,185,12,190,12,38,0,185,12,205,12,135,12,61,0,185,12,191,12,38,0,185,12,205,12,136,12,61,0,185,12,192,12,38,0,185,12,205,12,137,12,61,0,185,12,193,12,38,0,185,12,205,12,138,12,61,0,185,12,194,12,38,0,185,12,205,12,139,12,61,0,185,12,195,12,38,0,185,12,205,12,224,12,61,0,185,12,196,12,38,0,185,12,205,12,140,12,61,0,185,12,226,12,38,0,185,12,205,12,225,12,61,0,185,12,227,12,38,0,185,12,205,12,142,12,61,0,185,12,198,12,38,0,185,12,205,12,143,12,61,0,185,12,199,12,38,0,185,12,205,12,144,12,61,0,185,12,200,12,38,0,185,12,205,12,146,12,61,0,185,12,202,12,38,0,185,12,205,12,147,12,61,0,185,12,203,12,38,0,185,12,205,12,148,12,61,0,185,12,204,12,38,0,179,12,205,12,133,12,61,0,179,12,38,0,179,12,205,12,134,12,61,0,179,12,190,12,38,0,179,12,205,12,135,12,61,0,179,12,191,12,38,0,179,12,205,12,136,12,61,0,179,12,192,12,38,0,179,12,205,12,137,12,61,0,179,12,193,12,38,0,179,12,205,12,138,12,61,0,179,12,194,12,38,0,179,12,205,12,139,12,61,0,179,12,195,12,38,0,179,12,205,12,224,12,61,0,179,12,196,12,38,0,179,12,205,12,140,12,61,0,179,12,226,12,38,0,179,12,205,12,225,12,61,0,179,12,227,12,38,0,179,12,205,12,142,12,61,0,179,12,198,12,38,0,179,12,205,12,143,12,61,0,179,12,199,12,38,0,179,12,205,12,144,12,61,0,179,12,200,12,38,0,179,12,205,12,146,12,61,0,179,12,202,12,38,0,179,12,205,12,147,12,61,0,179,12,203,12,38,0,179,12,205,12,148,12,61,0,179,12,204,12,38,0,222,12,205,12,133,12,61,0,222,12,38,0,222,12,205,12,134,12,61,0,222,12,190,12,38,0,222,12,205,12,135,12,61,0,222,12,191,12,38,0,222,12,205,12,136,12,61,0,222,12,192,12,38,0,222,12,205,12,137,12,61,0,222,12,193,12,38,0,222,12,205,12,138,12,61,0,222,12,194,12,38,0,222,12,205,12,139,12,61,0,222,12,195,12,38,0,222,12,205,12,224,12,61,0,222,12,196,12,38,0,222,12,205,12,140,12,61,0,222,12,226,12,38,0,222,12,205,12,225,12,61,0,222,12,227,12,38,0,222,12,205,12,142,12,61,0,222,12,198,12,38,0,222,12,205,12,143,12,61,0,222,12,199,12,38,0,222,12,205,12,144,12,61,0,222,12,200,12,38,0,222,12,205,12,146,12,61,0,222,12,202,12,38,0,222,12,205,12,147,12,61,0,222,12,203,12,38,0,222,12,205,12,148,12,61,0,222,12,204,12,38,0,153,12,205,12,149,12,60,0,60,0,60,0,130,12,149,12,38,0,153,12,205,12,150,12,60,0,60,0,60,0,130,12,150,12,38,0,153,12,205,12,151,12,60,0,60,0,60,0,130,12,151,12,38,0,153,12,205,12,152,12,60,0,60,0,60,0,130,12,152,12,38,0,153,12,205,12,153,12,60,0,60,0,60,0,130,12,153,12,38,0,158,12,205,12,154,12,60,0,60,0,60,0,130,12,154,12,38,0,158,12,205,12,155,12,60,0,60,0,60,0,130,12,155,12,38,0,158,12,205,12,156,12,60,0,60,0,60,0,130,12,156,12,38,0,158,12,205,12,157,12,60,0,60,0,60,0,130,12,157,12,38,0,158,12,205,12,158,12,60,0,60,0,60,0,130,12,158,12,38,0,163,12,205,12,159,12,60,0,60,0,60,0,130,12,159,12,38,0,163,12,205,12,160,12,60,0,60,0,60,0,130,12,160,12,38,0,163,12,205,12,161,12,60,0,60,0,60,0,130,12,161,12,38,0,163,12,205,12,162,12,60,0,60,0,60,0,130,12,162,12,38,0,163,12,205,12,163,12,60,0,60,0,60,0,130,12,163,12,38,0,168,12,205,12,164,12,60,0,60,0,60,0,130,12,164,12,38,0,168,12,205,12,165,12,60,0,60,0,60,0,130,12,165,12,38,0,168,12,205,12,166,12,60,0,60,0,60,0,130,12,166,12,38,0,168,12,205,12,167,12,60,0,60,0,60,0,130,12,167,12,38,0,168,12,205,12,168,12,60,0,60,0,60,0,130,12,168,12,38,0,174,12,205,12,170,12,60,0,60,0,60,0,130,12,170,12,38,0,174,12,205,12,171,12,60,0,60,0,60,0,130,12,171,12,38,0,174,12,205,12,172,12,60,0,60,0,60,0,130,12,172,12,38,0,174,12,205,12,173,12,60,0,60,0,60,0,130,12,173,12,38,0,174,12,205,12,174,12,60,0,60,0,60,0,130,12,174,12,38,0,156,12,60,0,60,0,60,0,156,12,188,12,38,0,156,12,190,12,60,0,60,0,60,0,156,12,188,12,190,12,38,0,156,12,191,12,60,0,60,0,60,0,156,12,188,12,191,12,38,0,156,12,192,12,60,0,60,0,60,0,156,12,188,12,192,12,38,0,156,12,193,12,60,0,60,0,60,0,156,12,188,12,193,12,38,0,156,12,194,12,60,0,60,0,60,0,156,12,188,12,194,12,38,0,156,12,195,12,60,0,60,0,60,0,156,12,188,12,195,12,38,0,156,12,196,12,60,0,60,0,60,0,156,12,188,12,196,12,38,0,156,12,226,12,60,0,60,0,60,0,156,12,188,12,226,12,38,0,156,12,227,12,60,0,60,0,60,0,156,12,188,12,227,12,38,0,156,12,198,12,60,0,60,0,60,0,156,12,188,12,198,12,38,0,156,12,199,12,60,0,60,0,60,0,156,12,188,12,199,12,38,0,156,12,200,12,60,0,60,0,60,0,156,12,188,12,200,12,38,0,156,12,202,12,60,0,60,0,60,0,156,12,188,12,202,12,38,0,156,12,203,12,60,0,60,0,60,0,156,12,188,12,203,12,38,0,156,12,204,12,60,0,60,0,60,0,156,12,188,12,204,12,38,0,171,12,60,0,60,0,60,0,171,12,188,12,38,0,171,12,190,12,60,0,60,0,60,0,171,12,188,12,190,12,38,0,171,12,191,12,60,0,60,0,60,0,171,12,188,12,191,12,38,0,171,12,192,12,60,0,60,0,60,0,171,12,188,12,192,12,38,0,171,12,193,12,60,0,60,0,60,0,171,12,188,12,193,12,38,0,171,12,194,12,60,0,60,0,60,0,171,12,188,12,194,12,38,0,171,12,195,12,60,0,60,0,60,0,171,12,188,12,195,12,38,0,171,12,196,12,60,0,60,0,60,0,171,12,188,12,196,12,38,0,171,12,226,12,60,0,60,0,60,0,171,12,188,12,226,12,38,0,171,12,227,12,60,0,60,0,60,0,171,12,188,12,227,12,38,0,171,12,198,12,60,0,60,0,60,0,171,12,188,12,198,12,38,0,171,12,199,12,60,0,60,0,60,0,171,12,188,12,199,12,38,0,171,12,200,12,60,0,60,0,60,0,171,12,188,12,200,12,38,0,171,12,202,12,60,0,60,0,60,0,171,12,188,12,202,12,38,0,171,12,203,12,60,0,60,0,60,0,171,12,188,12,203,12,38,0,171,12,204,12,60,0,60,0,60,0,171,12,188,12,204,12,0,0,170,170,170,170,176,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,84,25,0,0,84,25,0,0,84,25,0,0,84,25,0,0,152,25,0,0,21,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,111,184,255,0,112,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,39,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,117,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,100,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,37,111,193,3,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,37,111,193,5,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,119,9,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,0,70,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,144,26,0,0,144,26,0,0,144,26,0,0,144,26,0,0,0,47,0,0,0,47,0,0,202,69,0,0,232,69,0,0,21,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,111,184,255,0,112,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,39,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,136,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,111,0,119,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,162,0,202,97,162,0,202,130,162,0,202,163,162,0,202,196,162,0,202,229,162,0,202,6,163,0,202,39,163,0,202,72,163,0,202,105,163,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,161,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,161,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,162,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,193,3,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,11,0,201,164,20,0,201,228,29,0,201,36,39,0,201,100,48,0,201,164,57,0,201,228,66,0,201,36,76,0,201,132,95,0,201,196,104,0,201,4,114,0,201,68,123,0,201,132,132,0,201,196,141,0,201,4,151,0,201,68,160,0,201,132,169,0,201,196,178,0,201,4,188,0,201,68,197,0,192,0,0,0,201,132,206,0,201,196,215,0,201,36,235,0,201,100,244,0,201,164,253,0,201,228,6,1,201,36,16,1,201,100,25,1,201,164,34,1,201,228,43,1,192,0,0,0,201,36,53,1,201,100,62,1,201,164,71,1,201,228,80,1,201,36,90,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,99,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,37,111,193,5,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,193,10,37,111,193,6,37,111,32,5,6,111,193,10,37,111,193,7,37,111,31,5,6,111,193,10,37,111,193,8,37,111,30,5,6,111,193,10,37,111,193,9,37,111,29,5,6,111,193,10,37,111,193,10,37,111,28,5,6,111,193,15,37,111,193,11,37,111,27,5,6,111,193,15,37,111,193,12,37,111,26,5,6,111,193,15,37,111,193,13,37,111,25,5,6,111,193,15,37,111,193,14,37,111,24,5,6,111,193,15,37,111,193,15,37,111,23,5,6,111,193,20,37,111,193,16,37,111,22,5,6,111,193,20,37,111,193,17,37,111,21,5,6,111,193,20,37,111,193,18,37,111,20,5,6,111,193,20,37,111,193,19,37,111,19,5,6,111,193,20,37,111,193,20,37,111,18,5,6,111,193,25,37,111,193,21,37,111,17,5,6,111,193,25,37,111,193,22,37,111,16,5,6,111,193,25,37,111,193,23,37,111,15,5,6,111,193,25,37,111,193,24,37,111,14,5,6,111,193,25,37,111,193,25,37,111,13,5,6,111,193,30,37,111,193,26,37,111,12,5,6,111,193,30,37,111,193,27,37,111,11,5,6,111,193,30,37,111,193,28,37,111,10,5,6,111,193,30,37,111,193,29,37,111,9,5,6,111,193,30,37,111,193,30,37,111,8,5,6,111,193,6,37,111,5,5,6,111,193,6,37,111,5,5,8,111,193,6,37,111,5,5,10,111,193,6,37,111,5,5,12,111,193,6,37,111,5,5,14,111,193,6,37,111,5,5,16,111,193,6,37,111,5,5,18,111,193,6,37,111,5,5,20,111,193,6,37,111,5,5,26,111,193,6,37,111,5,5,32,111,193,6,37,111,5,5,34,111,193,6,37,111,5,5,28,111,193,6,37,111,5,5,30,111,193,6,37,111,5,5,36,111,193,6,37,111,5,5,22,111,193,6,37,111,5,5,24,111,193,7,37,111,5,5,6,111,193,7,37,111,5,5,8,111,193,7,37,111,5,5,10,111,193,7,37,111,5,5,12,111,193,7,37,111,5,5,14,111,193,7,37,111,5,5,16,111,193,7,37,111,5,5,18,111,193,7,37,111,5,5,20,111,193,7,37,111,5,5,26,111,193,7,37,111,5,5,32,111,193,7,37,111,5,5,34,111,193,7,37,111,5,5,28,111,193,7,37,111,5,5,30,111,193,7,37,111,5,5,36,111,193,7,37,111,5,5,22,111,193,7,37,111,5,5,24,111,193,8,37,111,5,5,6,111,193,8,37,111,5,5,8,111,193,8,37,111,5,5,10,111,193,8,37,111,5,5,12,111,193,8,37,111,5,5,14,111,193,8,37,111,5,5,16,111,193,8,37,111,5,5,18,111,193,8,37,111,5,5,20,111,193,8,37,111,5,5,26,111,193,8,37,111,5,5,32,111,193,8,37,111,5,5,34,111,193,8,37,111,5,5,28,111,193,8,37,111,5,5,30,111,193,8,37,111,5,5,36,111,193,8,37,111,5,5,22,111,193,8,37,111,5,5,24,111,193,9,37,111,5,5,6,111,193,9,37,111,5,5,8,111,193,9,37,111,5,5,10,111,193,9,37,111,5,5,12,111,193,9,37,111,5,5,14,111,193,9,37,111,5,5,16,111,193,9,37,111,5,5,18,111,193,9,37,111,5,5,20,111,193,9,37,111,5,5,26,111,193,9,37,111,5,5,32,111,193,9,37,111,5,5,34,111,193,9,37,111,5,5,28,111,193,9,37,111,5,5,30,111,193,9,37,111,5,5,36,111,193,9,37,111,5,5,22,111,193,9,37,111,5,5,24,111,193,10,37,111,5,5,6,111,193,10,37,111,5,5,8,111,193,10,37,111,5,5,10,111,193,10,37,111,5,5,12,111,193,10,37,111,5,5,14,111,193,10,37,111,5,5,16,111,193,10,37,111,5,5,18,111,193,10,37,111,5,5,20,111,193,10,37,111,5,5,26,111,193,10,37,111,5,5,32,111,193,10,37,111,5,5,34,111,193,10,37,111,5,5,28,111,193,10,37,111,5,5,30,111,193,10,37,111,5,5,36,111,193,10,37,111,5,5,22,111,193,10,37,111,5,5,24,111,193,11,37,111,5,5,6,111,193,11,37,111,5,5,8,111,193,11,37,111,5,5,10,111,193,11,37,111,5,5,12,111,193,11,37,111,5,5,14,111,193,11,37,111,5,5,16,111,193,11,37,111,5,5,18,111,193,11,37,111,5,5,20,111,193,11,37,111,5,5,26,111,193,11,37,111,5,5,32,111,193,11,37,111,5,5,34,111,193,11,37,111,5,5,28,111,193,11,37,111,5,5,30,111,193,11,37,111,5,5,36,111,193,11,37,111,5,5,22,111,193,11,37,111,5,5,24,111,193,12,37,111,5,5,6,111,193,12,37,111,5,5,8,111,193,12,37,111,5,5,10,111,193,12,37,111,5,5,12,111,193,12,37,111,5,5,14,111,193,12,37,111,5,5,16,111,193,12,37,111,5,5,18,111,193,12,37,111,5,5,20,111,193,12,37,111,5,5,26,111,193,12,37,111,5,5,32,111,193,12,37,111,5,5,34,111,193,12,37,111,5,5,28,111,193,12,37,111,5,5,30,111,193,12,37,111,5,5,36,111,193,12,37,111,5,5,22,111,193,12,37,111,5,5,24,111,193,13,37,111,5,5,6,111,193,13,37,111,7,5,6,111,193,13,37,111,7,5,8,111,193,13,37,111,7,5,10,111,193,13,37,111,7,5,12,111,193,13,37,111,7,5,14,111,193,13,37,111,7,5,16,111,193,13,37,111,7,5,18,111,193,13,37,111,7,5,20,111,193,13,37,111,7,5,26,111,193,13,37,111,7,5,32,111,193,13,37,111,7,5,34,111,193,13,37,111,7,5,28,111,193,13,37,111,7,5,30,111,193,13,37,111,7,5,36,111,193,13,37,111,7,5,22,111,193,13,37,111,7,5,24,111,193,13,37,111,5,5,8,111,193,13,37,111,5,5,10,111,193,13,37,111,5,5,12,111,193,13,37,111,5,5,14,111,193,13,37,111,5,5,16,111,193,13,37,111,5,5,18,111,193,13,37,111,5,5,20,111,193,13,37,111,5,5,26,111,193,13,37,111,5,5,32,111,193,13,37,111,5,5,34,111,193,13,37,111,5,5,28,111,193,13,37,111,5,5,30,111,193,13,37,111,5,5,36,111,193,13,37,111,5,5,22,111,193,13,37,111,5,5,24,111,193,14,37,111,5,5,6,111,193,14,37,111,5,5,8,111,193,14,37,111,5,5,10,111,193,14,37,111,5,5,12,111,193,14,37,111,5,5,14,111,193,14,37,111,5,5,16,111,193,14,37,111,5,5,18,111,193,14,37,111,5,5,20,111,193,14,37,111,5,5,26,111,193,14,37,111,5,5,32,111,193,14,37,111,5,5,34,111,193,14,37,111,5,5,28,111,193,14,37,111,5,5,30,111,193,14,37,111,5,5,36,111,193,14,37,111,5,5,22,111,193,14,37,111,5,5,24,111,193,15,37,111,5,5,6,111,193,15,37,111,5,5,8,111,193,15,37,111,5,5,10,111,193,15,37,111,5,5,12,111,193,15,37,111,5,5,14,111,193,15,37,111,5,5,16,111,193,15,37,111,5,5,18,111,193,15,37,111,5,5,20,111,193,15,37,111,5,5,26,111,193,15,37,111,5,5,32,111,193,15,37,111,5,5,34,111,193,15,37,111,5,5,28,111,193,15,37,111,5,5,30,111,193,15,37,111,5,5,36,111,193,15,37,111,5,5,22,111,193,15,37,111,5,5,24,111,193,16,37,111,5,5,6,111,193,16,37,111,5,5,8,111,193,16,37,111,5,5,10,111,193,16,37,111,5,5,12,111,193,16,37,111,5,5,14,111,193,16,37,111,5,5,16,111,193,16,37,111,5,5,18,111,193,16,37,111,5,5,20,111,193,16,37,111,5,5,26,111,193,16,37,111,5,5,32,111,193,16,37,111,5,5,34,111,193,16,37,111,5,5,28,111,193,16,37,111,5,5,30,111,193,16,37,111,5,5,36,111,193,16,37,111,5,5,22,111,193,16,37,111,5,5,24,111,193,17,37,111,5,5,6,111,193,17,37,111,5,5,8,111,193,17,37,111,5,5,10,111,193,17,37,111,5,5,12,111,193,17,37,111,5,5,14,111,193,17,37,111,5,5,16,111,193,17,37,111,5,5,18,111,193,17,37,111,5,5,20,111,193,17,37,111,5,5,26,111,193,17,37,111,5,5,32,111,193,17,37,111,5,5,34,111,193,17,37,111,5,5,28,111,193,17,37,111,5,5,30,111,193,17,37,111,5,5,36,111,193,17,37,111,5,5,22,111,193,17,37,111,5,5,24,111,193,18,37,111,5,5,6,111,193,18,37,111,5,5,8,111,193,18,37,111,5,5,10,111,193,18,37,111,5,5,12,111,193,18,37,111,5,5,14,111,193,18,37,111,5,5,16,111,193,18,37,111,5,5,18,111,193,18,37,111,5,5,20,111,193,18,37,111,5,5,26,111,193,18,37,111,5,5,32,111,193,18,37,111,5,5,34,111,193,18,37,111,5,5,28,111,193,18,37,111,5,5,30,111,193,18,37,111,5,5,36,111,193,18,37,111,5,5,22,111,193,18,37,111,5,5,24,111,193,19,37,111,5,5,6,111,193,19,37,111,5,5,8,111,193,19,37,111,5,5,10,111,193,19,37,111,5,5,12,111,193,19,37,111,5,5,14,111,193,19,37,111,5,5,16,111,193,19,37,111,5,5,18,111,193,19,37,111,5,5,20,111,193,19,37,111,5,5,26,111,193,19,37,111,5,5,32,111,193,19,37,111,5,5,34,111,193,19,37,111,5,5,28,111,193,19,37,111,5,5,30,111,193,19,37,111,5,5,36,111,193,19,37,111,5,5,22,111,193,19,37,111,5,5,24,111,193,20,37,111,5,5,6,111,193,20,37,111,5,5,8,111,193,20,37,111,5,5,10,111,193,20,37,111,5,5,12,111,193,20,37,111,5,5,14,111,193,20,37,111,5,5,16,111,193,20,37,111,5,5,18,111,193,20,37,111,5,5,20,111,193,20,37,111,5,5,26,111,193,20,37,111,5,5,32,111,193,20,37,111,5,5,34,111,193,20,37,111,5,5,28,111,193,20,37,111,5,5,30,111,193,20,37,111,5,5,36,111,193,20,37,111,5,5,22,111,193,20,37,111,5,5,24,111,193,21,37,111,5,5,6,111,193,21,37,111,5,5,8,111,193,21,37,111,5,5,10,111,193,21,37,111,5,5,12,111,193,21,37,111,5,5,14,111,193,21,37,111,5,5,16,111,193,21,37,111,5,5,18,111,193,21,37,111,5,5,20,111,193,21,37,111,5,5,26,111,193,21,37,111,5,5,32,111,193,21,37,111,5,5,34,111,193,21,37,111,5,5,28,111,193,21,37,111,5,5,30,111,193,21,37,111,5,5,36,111,193,21,37,111,5,5,22,111,193,21,37,111,5,5,24,111,193,22,37,111,5,5,6,111,193,22,37,111,5,5,8,111,193,22,37,111,5,5,10,111,193,22,37,111,5,5,12,111,193,22,37,111,5,5,14,111,193,22,37,111,5,5,16,111,193,22,37,111,5,5,18,111,193,22,37,111,5,5,20,111,193,22,37,111,5,5,26,111,193,22,37,111,5,5,32,111,193,22,37,111,5,5,34,111,193,22,37,111,5,5,28,111,193,22,37,111,5,5,30,111,193,22,37,111,5,5,36,111,193,22,37,111,5,5,22,111,193,22,37,111,5,5,24,111,193,23,37,111,5,5,6,111,193,23,37,111,5,5,8,111,193,23,37,111,5,5,10,111,193,23,37,111,5,5,12,111,193,23,37,111,5,5,14,111,193,23,37,111,5,5,16,111,193,23,37,111,5,5,18,111,193,23,37,111,5,5,20,111,193,23,37,111,5,5,26,111,193,23,37,111,5,5,32,111,193,23,37,111,5,5,34,111,193,23,37,111,5,5,28,111,193,23,37,111,5,5,30,111,193,23,37,111,5,5,36,111,193,23,37,111,5,5,22,111,193,23,37,111,5,5,24,111,193,24,37,111,5,5,6,111,193,24,37,111,5,5,8,111,193,24,37,111,5,5,10,111,193,24,37,111,5,5,12,111,193,24,37,111,5,5,14,111,193,24,37,111,5,5,16,111,193,24,37,111,5,5,18,111,193,24,37,111,5,5,20,111,193,24,37,111,5,5,26,111,193,24,37,111,5,5,32,111,193,24,37,111,5,5,34,111,193,24,37,111,5,5,28,111,193,24,37,111,5,5,30,111,193,24,37,111,5,5,36,111,193,24,37,111,5,5,22,111,193,24,37,111,5,5,24,111,193,25,37,111,5,5,6,111,193,25,37,111,5,5,8,111,193,25,37,111,5,5,10,111,193,25,37,111,5,5,12,111,193,25,37,111,5,5,14,111,193,25,37,111,5,5,16,111,193,25,37,111,5,5,18,111,193,25,37,111,5,5,20,111,193,25,37,111,5,5,26,111,193,25,37,111,5,5,32,111,193,25,37,111,5,5,34,111,193,25,37,111,5,5,28,111,193,25,37,111,5,5,30,111,193,25,37,111,5,5,36,111,193,25,37,111,5,5,22,111,193,25,37,111,5,5,24,111,193,26,37,111,5,5,6,111,193,26,37,111,5,5,8,111,193,26,37,111,5,5,10,111,193,26,37,111,5,5,12,111,193,26,37,111,5,5,14,111,193,26,37,111,5,5,16,111,193,26,37,111,5,5,18,111,193,26,37,111,5,5,20,111,193,26,37,111,5,5,26,111,193,26,37,111,5,5,32,111,193,26,37,111,5,5,34,111,193,26,37,111,5,5,28,111,193,26,37,111,5,5,30,111,193,26,37,111,5,5,36,111,193,26,37,111,5,5,22,111,193,26,37,111,5,5,24,111,193,27,37,111,5,5,6,111,193,27,37,111,6,5,6,111,193,27,37,111,6,5,8,111,193,27,37,111,6,5,10,111,193,27,37,111,6,5,12,111,193,27,37,111,6,5,14,111,193,27,37,111,6,5,16,111,193,27,37,111,6,5,18,111,193,27,37,111,6,5,20,111,193,27,37,111,6,5,26,111,193,27,37,111,6,5,32,111,193,27,37,111,6,5,34,111,193,27,37,111,6,5,28,111,193,27,37,111,6,5,30,111,193,27,37,111,6,5,36,111,193,27,37,111,6,5,22,111,193,27,37,111,6,5,24,111,193,27,37,111,5,5,8,111,193,27,37,111,5,5,10,111,193,27,37,111,5,5,12,111,193,27,37,111,5,5,14,111,193,27,37,111,5,5,16,111,193,27,37,111,5,5,18,111,193,27,37,111,5,5,20,111,193,27,37,111,5,5,26,111,193,27,37,111,5,5,32,111,193,27,37,111,5,5,34,111,193,27,37,111,5,5,28,111,193,27,37,111,5,5,30,111,193,27,37,111,5,5,36,111,193,27,37,111,5,5,22,111,193,27,37,111,5,5,24,111,193,28,37,111,5,5,6,111,193,28,37,111,5,5,8,111,193,28,37,111,5,5,10,111,193,28,37,111,5,5,12,111,193,28,37,111,5,5,14,111,193,28,37,111,5,5,16,111,193,28,37,111,5,5,18,111,193,28,37,111,5,5,20,111,193,28,37,111,5,5,26,111,193,28,37,111,5,5,32,111,193,28,37,111,5,5,34,111,193,28,37,111,5,5,28,111,193,28,37,111,5,5,30,111,193,28,37,111,5,5,36,111,193,28,37,111,5,5,22,111,193,28,37,111,5,5,24,111,193,29,37,111,5,5,6,111,193,29,37,111,5,5,8,111,193,29,37,111,5,5,10,111,193,29,37,111,5,5,12,111,193,29,37,111,5,5,14,111,193,29,37,111,5,5,16,111,193,29,37,111,5,5,18,111,193,29,37,111,5,5,20,111,193,29,37,111,5,5,26,111,193,29,37,111,5,5,32,111,193,29,37,111,5,5,34,111,193,29,37,111,5,5,28,111,193,29,37,111,5,5,30,111,193,29,37,111,5,5,36,111,193,29,37,111,5,5,22,111,193,29,37,111,5,5,24,111,193,30,37,111,5,5,6,111,193,30,37,111,5,5,8,111,193,30,37,111,5,5,10,111,193,30,37,111,5,5,12,111,193,30,37,111,5,5,14,111,193,30,37,111,5,5,16,111,193,30,37,111,5,5,18,111,193,30,37,111,5,5,20,111,193,30,37,111,5,5,26,111,193,30,37,111,5,5,32,111,193,30,37,111,5,5,34,111,193,30,37,111,5,5,28,111,193,30,37,111,5,5,30,111,193,30,37,111,5,5,36,111,193,30,37,111,5,5,22,111,193,30,37,111,5,5,24,111,193,31,37,111,5,5,6,111,193,31,37,111,5,5,8,111,193,31,37,111,5,5,10,111,193,31,37,111,5,5,12,111,193,31,37,111,5,5,14,111,193,31,37,111,5,5,16,111,193,31,37,111,5,5,18,111,193,31,37,111,5,5,20,111,193,31,37,111,5,5,26,111,193,31,37,111,5,5,32,111,193,31,37,111,5,5,34,111,193,31,37,111,5,5,28,111,193,31,37,111,5,5,30,111,193,31,37,111,5,5,36,111,193,31,37,111,5,5,22,111,193,31,37,111,5,5,24,111,193,32,37,111,5,5,6,111,193,32,37,111,5,5,8,111,193,32,37,111,5,5,10,111,193,32,37,111,5,5,12,111,193,32,37,111,5,5,14,111,193,32,37,111,5,5,16,111,193,32,37,111,5,5,18,111,193,32,37,111,5,5,20,111,193,32,37,111,5,5,26,111,193,32,37,111,5,5,32,111,193,32,37,111,5,5,34,111,193,32,37,111,5,5,28,111,193,32,37,111,5,5,30,111,193,32,37,111,5,5,36,111,193,32,37,111,5,5,22,111,193,32,37,111,5,5,24,111,193,33,37,111,5,5,6,111,193,33,37,111,5,5,8,111,193,33,37,111,5,5,10,111,193,33,37,111,5,5,12,111,193,33,37,111,5,5,14,111,193,33,37,111,5,5,16,111,193,33,37,111,5,5,18,111,193,33,37,111,5,5,20,111,193,33,37,111,5,5,26,111,193,33,37,111,5,5,32,111,193,33,37,111,5,5,34,111,193,33,37,111,5,5,28,111,193,33,37,111,5,5,30,111,193,33,37,111,5,5,36,111,193,33,37,111,5,5,22,111,193,33,37,111,5,5,24,111,193,34,37,111,5,5,6,111,193,34,37,111,5,5,8,111,193,34,37,111,5,5,10,111,193,34,37,111,5,5,12,111,193,34,37,111,5,5,14,111,193,34,37,111,5,5,16,111,193,34,37,111,5,5,18,111,193,34,37,111,5,5,20,111,193,34,37,111,5,5,26,111,193,34,37,111,5,5,32,111,193,34,37,111,5,5,34,111,193,34,37,111,5,5,28,111,193,34,37,111,5,5,30,111,193,34,37,111,5,5,36,111,193,34,37,111,5,5,22,111,193,34,37,111,5,5,24,111,193,40,37,111,5,5,6,111,193,40,37,111,5,5,8,111,193,40,37,111,5,5,10,111,193,40,37,111,5,5,12,111,193,40,37,111,5,5,14,111,193,40,37,111,5,5,16,111,193,40,37,111,5,5,18,111,193,40,37,111,5,5,20,111,193,40,37,111,5,5,26,111,193,40,37,111,5,5,32,111,193,40,37,111,5,5,34,111,193,40,37,111,5,5,28,111,193,40,37,111,5,5,30,111,193,40,37,111,5,5,36,111,193,40,37,111,5,5,22,111,193,40,37,111,5,5,24,111,193,35,37,111,5,5,6,111,193,35,37,111,5,5,8,111,193,35,37,111,5,5,10,111,193,35,37,111,5,5,12,111,193,35,37,111,5,5,14,111,193,35,37,111,5,5,16,111,193,35,37,111,5,5,18,111,193,35,37,111,5,5,20,111,193,35,37,111,5,5,26,111,193,35,37,111,5,5,32,111,193,35,37,111,5,5,34,111,193,35,37,111,5,5,28,111,193,35,37,111,5,5,30,111,193,35,37,111,5,5,36,111,193,35,37,111,5,5,22,111,193,35,37,111,5,5,24,111,193,36,37,111,5,5,6,111,193,36,37,111,5,5,8,111,193,36,37,111,5,5,10,111,193,36,37,111,5,5,12,111,193,36,37,111,5,5,14,111,193,36,37,111,5,5,16,111,193,36,37,111,5,5,18,111,193,36,37,111,5,5,20,111,193,36,37,111,5,5,26,111,193,36,37,111,5,5,32,111,193,36,37,111,5,5,34,111,193,36,37,111,5,5,28,111,193,36,37,111,5,5,30,111,193,36,37,111,5,5,36,111,193,36,37,111,5,5,22,111,193,36,37,111,5,5,24,111,193,37,37,111,5,5,6,111,193,37,37,111,5,5,8,111,193,37,37,111,5,5,10,111,193,37,37,111,5,5,12,111,193,37,37,111,5,5,14,111,193,37,37,111,5,5,16,111,193,37,37,111,5,5,18,111,193,37,37,111,5,5,20,111,193,37,37,111,5,5,26,111,193,37,37,111,5,5,32,111,193,37,37,111,5,5,34,111,193,37,37,111,5,5,28,111,193,37,37,111,5,5,30,111,193,37,37,111,5,5,36,111,193,37,37,111,5,5,22,111,193,37,37,111,5,5,24,111,193,38,37,111,5,5,6,111,193,38,37,111,5,5,8,111,193,38,37,111,5,5,10,111,193,38,37,111,5,5,12,111,193,38,37,111,5,5,14,111,193,38,37,111,5,5,16,111,193,38,37,111,5,5,18,111,193,38,37,111,5,5,20,111,193,38,37,111,5,5,26,111,193,38,37,111,5,5,32,111,193,38,37,111,5,5,34,111,193,38,37,111,5,5,28,111,193,38,37,111,5,5,30,111,193,38,37,111,5,5,36,111,193,38,37,111,5,5,22,111,193,38,37,111,5,5,24,111,193,39,37,111,5,5,6,111,193,39,37,111,5,5,8,111,193,39,37,111,5,5,10,111,193,39,37,111,5,5,12,111,193,39,37,111,5,5,14,111,193,39,37,111,5,5,16,111,193,39,37,111,5,5,18,111,193,39,37,111,5,5,20,111,193,39,37,111,5,5,26,111,193,39,37,111,5,5,32,111,193,39,37,111,5,5,34,111,193,39,37,111,5,5,28,111,193,39,37,111,5,5,30,111,193,39,37,111,5,5,36,111,193,39,37,111,5,5,22,111,193,39,37,111,5,5,24,111,193,41,37,111,5,5,6,111,193,41,37,111,5,5,8,111,193,41,37,111,5,5,10,111,193,41,37,111,5,5,12,111,193,41,37,111,5,5,14,111,193,41,37,111,5,5,16,111,193,41,37,111,5,5,18,111,193,41,37,111,5,5,20,111,193,41,37,111,5,5,26,111,193,41,37,111,5,5,32,111,193,41,37,111,5,5,34,111,193,41,37,111,5,5,28,111,193,41,37,111,5,5,30,111,193,41,37,111,5,5,36,111,193,41,37,111,5,5,22,111,193,41,37,111,5,5,24,111,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,37,111,193,2,24,0,161,12,45,0,167,12,23,0,171,12,12,0,171,12,8,192,197,3,172,12,8,192,197,99,173,12,8,192,197,195,174,12,9,192,197,35,167,12,6,192,197,227,168,12,7,192,197,67,170,12,7,192,197,163,164,12,9,0,164,12,5,192,197,195,165,12,6,192,197,35,166,12,6,192,197,131,161,12,4,192,197,163,162,12,5,192,197,3,163,12,5,192,197,99,155,12,20,0,158,12,9,0,158,12,3,192,197,131,159,12,3,192,197,227,160,12,4,192,197,67,155,12,2,192,197,99,156,12,2,192,197,195,157,12,3,192,197,35,152,12,9,0,152,12,1,192,197,67,153,12,1,192,197,163,154,12,2,192,197,3,149,12,197,163,150,12,0,192,197,131,151,12,0,192,197,227,9,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,12,192,197,194,205,12,255,255,37,111,193,6,226,12,13,192,197,2,227,12,13,192,197,66,199,12,12,192,197,66,200,12,12,192,197,130,202,12,25,0,203,12,12,192,197,2,194,12,25,0,194,12,10,192,197,194,195,12,11,192,197,2,196,12,11,192,197,66,198,12,2,67,197,130,194,12,6,0,213,12,12,192,197,66,214,12,12,192,197,130,48,67,197,194,213,12,12,192,197,2,190,12,9,192,197,194,191,12,6,0,192,12,10,192,197,66,193,12,10,192,197,130,240,66,197,2,213,12,10,192,197,66,13,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,16,192,197,194,205,12,255,255,37,111,193,7,226,12,17,192,197,2,227,12,17,192,197,66,199,12,16,192,197,66,200,12,16,192,197,130,202,12,25,0,203,12,16,192,197,2,194,12,25,0,194,12,14,192,197,194,195,12,15,192,197,2,196,12,15,192,197,66,198,12,2,68,197,130,194,12,6,0,213,12,16,192,197,66,214,12,16,192,197,130,48,68,197,194,213,12,16,192,197,2,190,12,13,192,197,194,191,12,6,0,192,12,14,192,197,66,193,12,14,192,197,130,240,67,197,2,213,12,14,192,197,66,17,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,20,192,197,194,205,12,255,255,37,111,193,8,226,12,21,192,197,2,227,12,21,192,197,66,199,12,20,192,197,66,200,12,20,192,197,130,202,12,25,0,203,12,20,192,197,2,194,12,25,0,194,12,18,192,197,194,195,12,19,192,197,2,196,12,19,192,197,66,198,12,2,69,197,130,194,12,6,0,213,12,20,192,197,66,214,12,20,192,197,130,48,69,197,194,213,12,20,192,197,2,190,12,17,192,197,194,191,12,6,0,192,12,18,192,197,66,193,12,18,192,197,130,240,68,197,2,213,12,18,192,197,66,21,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,24,192,197,194,205,12,255,255,37,111,193,9,226,12,25,192,197,2,227,12,25,192,197,66,199,12,24,192,197,66,200,12,24,192,197,130,202,12,25,0,203,12,24,192,197,2,194,12,25,0,194,12,22,192,197,194,195,12,23,192,197,2,196,12,23,192,197,66,198,12,2,70,197,130,194,12,6,0,213,12,24,192,197,66,214,12,24,192,197,130,48,70,197,194,213,12,24,192,197,2,190,12,21,192,197,194,191,12,6,0,192,12,22,192,197,66,193,12,22,192,197,130,240,69,197,2,213,12,22,192,197,66,25,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,28,192,197,194,205,12,255,255,37,111,193,10,226,12,29,192,197,2,227,12,29,192,197,66,199,12,28,192,197,66,200,12,28,192,197,130,202,12,25,0,203,12,28,192,197,2,194,12,25,0,194,12,26,192,197,194,195,12,27,192,197,2,196,12,27,192,197,66,198,12,2,71,197,130,194,12,6,0,213,12,28,192,197,66,214,12,28,192,197,130,48,71,197,194,213,12,28,192,197,2,190,12,25,192,197,194,191,12,6,0,192,12,26,192,197,66,193,12,26,192,197,130,240,70,197,2,213,12,26,192,197,66,29,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,32,192,197,194,205,12,255,255,37,111,193,11,226,12,33,192,197,2,227,12,33,192,197,66,199,12,32,192,197,66,200,12,32,192,197,130,202,12,25,0,203,12,32,192,197,2,194,12,25,0,194,12,30,192,197,194,195,12,31,192,197,2,196,12,31,192,197,66,198,12,2,72,197,130,194,12,6,0,213,12,32,192,197,66,214,12,32,192,197,130,48,72,197,194,213,12,32,192,197,2,190,12,29,192,197,194,191,12,6,0,192,12,30,192,197,66,193,12,30,192,197,130,240,71,197,2,213,12,30,192,197,66,33,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,36,192,197,194,205,12,255,255,37,111,193,12,226,12,37,192,197,2,227,12,37,192,197,66,199,12,36,192,197,66,200,12,36,192,197,130,202,12,25,0,203,12,36,192,197,2,194,12,25,0,194,12,34,192,197,194,195,12,35,192,197,2,196,12,35,192,197,66,198,12,2,73,197,130,194,12,6,0,213,12,36,192,197,66,214,12,36,192,197,130,48,73,197,194,213,12,36,192,197,2,190,12,33,192,197,194,191,12,6,0,192,12,34,192,197,66,193,12,34,192,197,130,240,72,197,2,213,12,34,192,197,66,37,0,197,130,16,0,198,12,47,0,203,12,16,0,203,12,44,192,197,2,204,12,44,192,197,194,205,12,255,255,37,111,193,13,226,12,45,192,197,2,227,12,45,192,197,66,198,12,12,0,199,12,44,192,197,66,200,12,44,192,197,130,202,12,48,75,197,194,213,12,44,192,197,2,2,75,197,130,194,12,6,0,213,12,44,192,197,66,214,12,44,192,197,130,48,75,197,194,213,12,44,192,197,2,193,12,12,0,193,12,42,192,197,130,194,12,42,192,197,194,195,12,43,192,197,2,196,12,43,192,197,66,188,12,8,0,190,12,41,192,197,194,191,12,77,0,192,12,42,192,197,66,142,73,197,194,198,12,43,0,203,12,12,0,203,12,40,192,197,66,204,12,41,192,197,2,226,12,41,192,197,66,227,12,41,192,197,130,198,12,12,0,199,12,40,192,197,130,200,12,40,192,197,194,202,12,112,74,197,2,213,12,40,192,197,66,2,74,197,194,194,12,6,0,213,12,40,192,197,130,214,12,40,192,197,194,112,74,197,2,213,12,40,192,197,66,193,12,12,0,193,12,38,192,197,194,194,12,39,192,197,2,195,12,39,192,197,66,196,12,39,192,197,130,190,12,38,192,197,2,191,12,3,0,192,12,38,192,197,130,240,73,197,66,213,12,38,192,197,130,240,74,197,2,213,12,42,192,197,66,45,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,48,192,197,194,205,12,255,255,37,111,193,14,226,12,49,192,197,2,227,12,49,192,197,66,199,12,48,192,197,66,200,12,48,192,197,130,202,12,25,0,203,12,48,192,197,2,194,12,25,0,194,12,46,192,197,194,195,12,47,192,197,2,196,12,47,192,197,66,198,12,2,76,197,130,194,12,6,0,213,12,48,192,197,66,214,12,48,192,197,130,48,76,197,194,213,12,48,192,197,2,190,12,45,192,197,194,191,12,6,0,192,12,46,192,197,66,193,12,46,192,197,130,240,75,197,2,213,12,46,192,197,66,49,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,52,192,197,194,205,12,255,255,37,111,193,15,226,12,53,192,197,2,227,12,53,192,197,66,199,12,52,192,197,66,200,12,52,192,197,130,202,12,25,0,203,12,52,192,197,2,194,12,25,0,194,12,50,192,197,194,195,12,51,192,197,2,196,12,51,192,197,66,198,12,2,77,197,130,194,12,6,0,213,12,52,192,197,66,214,12,52,192,197,130,48,77,197,194,213,12,52,192,197,2,190,12,49,192,197,194,191,12,6,0,192,12,50,192,197,66,193,12,50,192,197,130,240,76,197,2,213,12,50,192,197,66,53,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,56,192,197,194,205,12,255,255,37,111,193,16,226,12,57,192,197,2,227,12,57,192,197,66,199,12,56,192,197,66,200,12,56,192,197,130,202,12,25,0,203,12,56,192,197,2,194,12,25,0,194,12,54,192,197,194,195,12,55,192,197,2,196,12,55,192,197,66,198,12,2,78,197,130,194,12,6,0,213,12,56,192,197,66,214,12,56,192,197,130,48,78,197,194,213,12,56,192,197,2,190,12,53,192,197,194,191,12,6,0,192,12,54,192,197,66,193,12,54,192,197,130,240,77,197,2,213,12,54,192,197,66,57,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,60,192,197,194,205,12,255,255,37,111,193,17,226,12,61,192,197,2,227,12,61,192,197,66,199,12,60,192,197,66,200,12,60,192,197,130,202,12,25,0,203,12,60,192,197,2,194,12,25,0,194,12,58,192,197,194,195,12,59,192,197,2,196,12,59,192,197,66,198,12,2,79,197,130,194,12,6,0,213,12,60,192,197,66,214,12,60,192,197,130,48,79,197,194,213,12,60,192,197,2,190,12,57,192,197,194,191,12,6,0,192,12,58,192,197,66,193,12,58,192,197,130,240,78,197,2,213,12,58,192,197,66,61,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,64,192,197,194,205,12,255,255,37,111,193,18,226,12,65,192,197,2,227,12,65,192,197,66,199,12,64,192,197,66,200,12,64,192,197,130,202,12,25,0,203,12,64,192,197,2,194,12,25,0,194,12,62,192,197,194,195,12,63,192,197,2,196,12,63,192,197,66,198,12,2,80,197,130,194,12,6,0,213,12,64,192,197,66,214,12,64,192,197,130,48,80,197,194,213,12,64,192,197,2,190,12,61,192,197,194,191,12,6,0,192,12,62,192,197,66,193,12,62,192,197,130,240,79,197,2,213,12,62,192,197,66,65,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,68,192,197,194,205,12,255,255,37,111,193,19,226,12,69,192,197,2,227,12,69,192,197,66,199,12,68,192,197,66,200,12,68,192,197,130,202,12,25,0,203,12,68,192,197,2,194,12,25,0,194,12,66,192,197,194,195,12,67,192,197,2,196,12,67,192,197,66,198,12,2,81,197,130,194,12,6,0,213,12,68,192,197,66,214,12,68,192,197,130,48,81,197,194,213,12,68,192,197,2,190,12,65,192,197,194,191,12,6,0,192,12,66,192,197,66,193,12,66,192,197,130,240,80,197,2,213,12,66,192,197,66,69,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,72,192,197,194,205,12,255,255,37,111,193,20,226,12,73,192,197,2,227,12,73,192,197,66,199,12,72,192,197,66,200,12,72,192,197,130,202,12,25,0,203,12,72,192,197,2,194,12,25,0,194,12,70,192,197,194,195,12,71,192,197,2,196,12,71,192,197,66,198,12,2,82,197,130,194,12,6,0,213,12,72,192,197,66,214,12,72,192,197,130,48,82,197,194,213,12,72,192,197,2,190,12,69,192,197,194,191,12,6,0,192,12,70,192,197,66,193,12,70,192,197,130,240,81,197,2,213,12,70,192,197,66,73,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,76,192,197,194,205,12,255,255,37,111,193,21,226,12,77,192,197,2,227,12,77,192,197,66,199,12,76,192,197,66,200,12,76,192,197,130,202,12,25,0,203,12,76,192,197,2,194,12,25,0,194,12,74,192,197,194,195,12,75,192,197,2,196,12,75,192,197,66,198,12,2,83,197,130,194,12,6,0,213,12,76,192,197,66,214,12,76,192,197,130,48,83,197,194,213,12,76,192,197,2,190,12,73,192,197,194,191,12,6,0,192,12,74,192,197,66,193,12,74,192,197,130,240,82,197,2,213,12,74,192,197,66,77,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,80,192,197,194,205,12,255,255,37,111,193,22,226,12,81,192,197,2,227,12,81,192,197,66,199,12,80,192,197,66,200,12,80,192,197,130,202,12,25,0,203,12,80,192,197,2,194,12,25,0,194,12,78,192,197,194,195,12,79,192,197,2,196,12,79,192,197,66,198,12,2,84,197,130,194,12,6,0,213,12,80,192,197,66,214,12,80,192,197,130,48,84,197,194,213,12,80,192,197,2,190,12,77,192,197,194,191,12,6,0,192,12,78,192,197,66,193,12,78,192,197,130,240,83,197,2,213,12,78,192,197,66,81,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,84,192,197,194,205,12,255,255,37,111,193,23,226,12,85,192,197,2,227,12,85,192,197,66,199,12,84,192,197,66,200,12,84,192,197,130,202,12,25,0,203,12,84,192,197,2,194,12,25,0,194,12,82,192,197,194,195,12,83,192,197,2,196,12,83,192,197,66,198,12,2,85,197,130,194,12,6,0,213,12,84,192,197,66,214,12,84,192,197,130,48,85,197,194,213,12,84,192,197,2,190,12,81,192,197,194,191,12,6,0,192,12,82,192,197,66,193,12,82,192,197,130,240,84,197,2,213,12,82,192,197,66,85,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,88,192,197,194,205,12,255,255,37,111,193,24,226,12,89,192,197,2,227,12,89,192,197,66,199,12,88,192,197,66,200,12,88,192,197,130,202,12,25,0,203,12,88,192,197,2,194,12,25,0,194,12,86,192,197,194,195,12,87,192,197,2,196,12,87,192,197,66,198,12,2,86,197,130,194,12,6,0,213,12,88,192,197,66,214,12,88,192,197,130,48,86,197,194,213,12,88,192,197,2,190,12,85,192,197,194,191,12,6,0,192,12,86,192,197,66,193,12,86,192,197,130,240,85,197,2,213,12,86,192,197,66,89,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,92,192,197,194,205,12,255,255,37,111,193,25,226,12,93,192,197,2,227,12,93,192,197,66,199,12,92,192,197,66,200,12,92,192,197,130,202,12,25,0,203,12,92,192,197,2,194,12,25,0,194,12,90,192,197,194,195,12,91,192,197,2,196,12,91,192,197,66,198,12,2,87,197,130,194,12,6,0,213,12,92,192,197,66,214,12,92,192,197,130,48,87,197,194,213,12,92,192,197,2,190,12,89,192,197,194,191,12,6,0,192,12,90,192,197,66,193,12,90,192,197,130,240,86,197,2,213,12,90,192,197,66,93,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,96,192,197,194,205,12,255,255,37,111,193,26,226,12,97,192,197,2,227,12,97,192,197,66,199,12,96,192,197,66,200,12,96,192,197,130,202,12,25,0,203,12,96,192,197,2,194,12,25,0,194,12,94,192,197,194,195,12,95,192,197,2,196,12,95,192,197,66,198,12,2,88,197,130,194,12,6,0,213,12,96,192,197,66,214,12,96,192,197,130,48,88,197,194,213,12,96,192,197,2,190,12,93,192,197,194,191,12,6,0,192,12,94,192,197,66,193,12,94,192,197,130,240,87,197,2,213,12,94,192,197,66,97,0,197,130,16,0,198,12,47,0,203,12,16,0,203,12,104,192,197,2,204,12,104,192,197,194,205,12,255,255,37,111,193,27,226,12,105,192,197,2,227,12,105,192,197,66,198,12,12,0,199,12,104,192,197,66,200,12,104,192,197,130,202,12,48,90,197,194,213,12,104,192,197,2,2,90,197,130,194,12,6,0,213,12,104,192,197,66,214,12,104,192,197,130,48,90,197,194,213,12,104,192,197,2,193,12,12,0,193,12,102,192,197,130,194,12,102,192,197,194,195,12,103,192,197,2,196,12,103,192,197,66,188,12,8,0,190,12,101,192,197,194,191,12,77,0,192,12,102,192,197,66,142,88,197,194,198,12,43,0,203,12,12,0,203,12,100,192,197,66,204,12,101,192,197,2,226,12,101,192,197,66,227,12,101,192,197,130,198,12,12,0,199,12,100,192,197,130,200,12,100,192,197,194,202,12,112,89,197,2,213,12,100,192,197,66,2,89,197,194,194,12,6,0,213,12,100,192,197,130,214,12,100,192,197,194,112,89,197,2,213,12,100,192,197,66,193,12,12,0,193,12,98,192,197,194,194,12,99,192,197,2,195,12,99,192,197,66,196,12,99,192,197,130,190,12,98,192,197,2,191,12,3,0,192,12,98,192,197,130,240,88,197,66,213,12,98,192,197,130,240,89,197,2,213,12,102,192,197,66,105,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,108,192,197,194,205,12,255,255,37,111,193,28,226,12,109,192,197,2,227,12,109,192,197,66,199,12,108,192,197,66,200,12,108,192,197,130,202,12,25,0,203,12,108,192,197,2,194,12,25,0,194,12,106,192,197,194,195,12,107,192,197,2,196,12,107,192,197,66,198,12,2,91,197,130,194,12,6,0,213,12,108,192,197,66,214,12,108,192,197,130,48,91,197,194,213,12,108,192,197,2,190,12,105,192,197,194,191,12,6,0,192,12,106,192,197,66,193,12,106,192,197,130,240,90,197,2,213,12,106,192,197,66,109,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,112,192,197,194,205,12,255,255,37,111,193,29,226,12,113,192,197,2,227,12,113,192,197,66,199,12,112,192,197,66,200,12,112,192,197,130,202,12,25,0,203,12,112,192,197,2,194,12,25,0,194,12,110,192,197,194,195,12,111,192,197,2,196,12,111,192,197,66,198,12,2,92,197,130,194,12,6,0,213,12,112,192,197,66,214,12,112,192,197,130,48,92,197,194,213,12,112,192,197,2,190,12,109,192,197,194,191,12,6,0,192,12,110,192,197,66,193,12,110,192,197,130,240,91,197,2,213,12,110,192,197,66,113,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,116,192,197,194,205,12,255,255,37,111,193,30,226,12,117,192,197,2,227,12,117,192,197,66,199,12,116,192,197,66,200,12,116,192,197,130,202,12,25,0,203,12,116,192,197,2,194,12,25,0,194,12,114,192,197,194,195,12,115,192,197,2,196,12,115,192,197,66,198,12,2,93,197,130,194,12,6,0,213,12,116,192,197,66,214,12,116,192,197,130,48,93,197,194,213,12,116,192,197,2,190,12,113,192,197,194,191,12,6,0,192,12,114,192,197,66,193,12,114,192,197,130,240,92,197,2,213,12,114,192,197,66,117,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,120,192,197,194,205,12,255,255,37,111,193,31,226,12,121,192,197,2,227,12,121,192,197,66,199,12,120,192,197,66,200,12,120,192,197,130,202,12,25,0,203,12,120,192,197,2,194,12,25,0,194,12,118,192,197,194,195,12,119,192,197,2,196,12,119,192,197,66,198,12,2,94,197,130,194,12,6,0,213,12,120,192,197,66,214,12,120,192,197,130,48,94,197,194,213,12,120,192,197,2,190,12,117,192,197,194,191,12,6,0,192,12,118,192,197,66,193,12,118,192,197,130,240,93,197,2,213,12,118,192,197,66,121,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,124,192,197,194,205,12,255,255,37,111,193,32,226,12,125,192,197,2,227,12,125,192,197,66,199,12,124,192,197,66,200,12,124,192,197,130,202,12,25,0,203,12,124,192,197,2,194,12,25,0,194,12,122,192,197,194,195,12,123,192,197,2,196,12,123,192,197,66,198,12,2,95,197,130,194,12,6,0,213,12,124,192,197,66,214,12,124,192,197,130,48,95,197,194,213,12,124,192,197,2,190,12,121,192,197,194,191,12,6,0,192,12,122,192,197,66,193,12,122,192,197,130,240,94,197,2,213,12,122,192,197,66,125,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,128,192,197,194,205,12,255,255,37,111,193,33,226,12,129,192,197,2,227,12,129,192,197,66,199,12,128,192,197,66,200,12,128,192,197,130,202,12,25,0,203,12,128,192,197,2,194,12,25,0,194,12,126,192,197,194,195,12,127,192,197,2,196,12,127,192,197,66,198,12,2,96,197,130,194,12,6,0,213,12,128,192,197,66,214,12,128,192,197,130,48,96,197,194,213,12,128,192,197,2,190,12,125,192,197,194,191,12,6,0,192,12,126,192,197,66,193,12,126,192,197,130,240,95,197,2,213,12,126,192,197,66,129,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,132,192,197,194,205,12,255,255,37,111,193,34,226,12,133,192,197,2,227,12,133,192,197,66,199,12,132,192,197,66,200,12,132,192,197,130,202,12,25,0,203,12,132,192,197,2,194,12,25,0,194,12,130,192,197,194,195,12,131,192,197,2,196,12,131,192,197,66,198,12,2,97,197,130,194,12,6,0,213,12,132,192,197,66,214,12,132,192,197,130,48,97,197,194,213,12,132,192,197,2,190,12,129,192,197,194,191,12,6,0,192,12,130,192,197,66,193,12,130,192,197,130,240,96,197,2,213,12,130,192,197,66,133,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,136,192,197,194,205,12,255,255,37,111,193,40,226,12,137,192,197,2,227,12,137,192,197,66,199,12,136,192,197,66,200,12,136,192,197,130,202,12,25,0,203,12,136,192,197,2,194,12,25,0,194,12,134,192,197,194,195,12,135,192,197,2,196,12,135,192,197,66,198,12,2,98,197,130,194,12,6,0,213,12,136,192,197,66,214,12,136,192,197,130,48,98,197,194,213,12,136,192,197,2,190,12,133,192,197,194,191,12,6,0,192,12,134,192,197,66,193,12,134,192,197,130,240,97,197,2,213,12,134,192,197,66,137,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,140,192,197,194,205,12,255,255,37,111,193,35,226,12,141,192,197,2,227,12,141,192,197,66,199,12,140,192,197,66,200,12,140,192,197,130,202,12,25,0,203,12,140,192,197,2,194,12,25,0,194,12,138,192,197,194,195,12,139,192,197,2,196,12,139,192,197,66,198,12,2,99,197,130,194,12,6,0,213,12,140,192,197,66,214,12,140,192,197,130,48,99,197,194,213,12,140,192,197,2,190,12,137,192,197,194,191,12,6,0,192,12,138,192,197,66,193,12,138,192,197,130,240,98,197,2,213,12,138,192,197,66,141,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,144,192,197,194,205,12,255,255,37,111,193,36,226,12,145,192,197,2,227,12,145,192,197,66,199,12,144,192,197,66,200,12,144,192,197,130,202,12,25,0,203,12,144,192,197,2,194,12,25,0,194,12,142,192,197,194,195,12,143,192,197,2,196,12,143,192,197,66,198,12,2,100,197,130,194,12,6,0,213,12,144,192,197,66,214,12,144,192,197,130,48,100,197,194,213,12,144,192,197,2,190,12,141,192,197,194,191,12,6,0,192,12,142,192,197,66,193,12,142,192,197,130,240,99,197,2,213,12,142,192,197,66,145,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,148,192,197,194,205,12,255,255,37,111,193,37,226,12,149,192,197,2,227,12,149,192,197,66,199,12,148,192,197,66,200,12,148,192,197,130,202,12,25,0,203,12,148,192,197,2,194,12,25,0,194,12,146,192,197,194,195,12,147,192,197,2,196,12,147,192,197,66,198,12,2,101,197,130,194,12,6,0,213,12,148,192,197,66,214,12,148,192,197,130,48,101,197,194,213,12,148,192,197,2,190,12,145,192,197,194,191,12,6,0,192,12,146,192,197,66,193,12,146,192,197,130,240,100,197,2,213,12,146,192,197,66,149,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,152,192,197,194,205,12,255,255,37,111,193,38,226,12,153,192,197,2,227,12,153,192,197,66,199,12,152,192,197,66,200,12,152,192,197,130,202,12,25,0,203,12,152,192,197,2,194,12,25,0,194,12,150,192,197,194,195,12,151,192,197,2,196,12,151,192,197,66,198,12,2,102,197,130,194,12,6,0,213,12,152,192,197,66,214,12,152,192,197,130,48,102,197,194,213,12,152,192,197,2,190,12,149,192,197,194,191,12,6,0,192,12,150,192,197,66,193,12,150,192,197,130,240,101,197,2,213,12,150,192,197,66,153,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,156,192,197,194,205,12,255,255,37,111,193,39,226,12,157,192,197,2,227,12,157,192,197,66,199,12,156,192,197,66,200,12,156,192,197,130,202,12,25,0,203,12,156,192,197,2,194,12,25,0,194,12,154,192,197,194,195,12,155,192,197,2,196,12,155,192,197,66,198,12,2,103,197,130,194,12,6,0,213,12,156,192,197,66,214,12,156,192,197,130,48,103,197,194,213,12,156,192,197,2,190,12,153,192,197,194,191,12,6,0,192,12,154,192,197,66,193,12,154,192,197,130,240,102,197,2,213,12,154,192,197,66,157,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,160,192,197,194,205,12,255,255,37,111,193,41,226,12,161,192,197,2,227,12,161,192,197,66,199,12,160,192,197,66,200,12,160,192,197,130,202,12,25,0,203,12,160,192,197,2,194,12,25,0,194,12,158,192,197,194,195,12,159,192,197,2,196,12,159,192,197,66,198,12,2,104,197,130,194,12,6,0,213,12,160,192,197,66,214,12,160,192,197,130,48,104,197,194,213,12,160,192,197,2,190,12,157,192,197,194,191,12,6,0,192,12,158,192,197,66,193,12,158,192,197,130,240,103,197,2,213,12,158,192,197,66,14,0,150,12,169,12,170,12,175,12,190,12,194,12,195,12,197,12,198,12,201,12,202,12,205,12,226,12,228,12,3,0,69,0,52,0,61,0,235,15,0,16,93,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,228,15,0,32,108,33,0,32,1,0,32,0,113,33,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,221,26,1,32,7,0,0,0,27,0,0,0,223,26,1,0,223,26,1,0,4,0,0,0,0,0,0,0,73,27,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,101,97,114,99,104,106,108,0,115,116,97,110,100,97,114,100,0,117,110,105,104,97,110,0,170,0,0,52,0,50,0,0,0,51,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,117,0,110,0,105,0,104,0,97,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,103,0,32,0,72,0,97,0,110,0,105,0,93,0,0,0,237,221,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,64,14,45,0,68,14,32,0,192,14,45,0,196,14,32,0,181,170,32,0,182,170,32,0,185,170,32,0,187,170,32,0,188,170,181,25,45,0,183,25,186,25,93,0,93,0,38,0,39,6,60,0,60,0,60,0,142,254,60,0,60,0,60,0,141,254,60,0,60,0,34,6,60,0,60,0,60,0,130,254,60,0,60,0,60,0,129,254,60,0,60,0,35,6,60,0,60,0,60,0,132,254,60,0,60,0,60,0,131,254,60,0,60,0,37,6,60,0,60,0,60,0,136,254,60,0,60,0,60,0,135,254,38,0,72,6,60,0,60,0,60,0,229,6,60,0,60,0,60,0,238,254,60,0,60,0,60,0,237,254,60,0,60,0,36,6,60,0,60,0,60,0,134,254,60,0,60,0,60,0,133,254,38,0,74,6,60,0,60,0,60,0,230,6,60,0,60,0,60,0,243,254,60,0,60,0,60,0,244,254,60,0,60,0,60,0,242,254,60,0,60,0,60,0,241,254,60,0,60,0,38,6,60,0,60,0,60,0,139,254,60,0,60,0,60,0,140,254,60,0,60,0,60,0,138,254,60,0,60,0,60,0,137,254,60,0,60,0,73,6,60,0,60,0,60,0,232,251,60,0,60,0,60,0,233,251,60,0,60,0,60,0,240,254,60,0,60,0,60,0,239,254,38,0,71,6,60,0,60,0,60,0,235,254,60,0,60,0,60,0,236,254,60,0,60,0,60,0,234,254,60,0,60,0,60,0,233,254,60,0,60,0,41,6,60,0,60,0,60,0,148,254,60,0,60,0,60,0,147,254,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,243,5,60,0,60,0,244,5,60,0,60,0,64,6,60,0,60,0,58,14,60,0,60,0,97,17,60,0,60,0,98,17,60,0,60,0,99,17,60,0,60,0,100,17,60,0,60,0,101,17,60,0,60,0,102,17,60,0,60,0,103,17,60,0,60,0,104,17,60,0,60,0,105,17,60,0,60,0,106,17,60,0,60,0,107,17,60,0,60,0,108,17,60,0,60,0,109,17,60,0,60,0,110,17,60,0,60,0,111,17,60,0,60,0,112,17,60,0,60,0,113,17,60,0,60,0,114,17,60,0,60,0,115,17,60,0,60,0,116,17,60,0,60,0,117,17,60,0,60,0,168,17,60,0,60,0,169,17,60,0,60,0,170,17,60,0,60,0,171,17,60,0,60,0,172,17,60,0,60,0,173,17,60,0,60,0,174,17,60,0,60,0,175,17,60,0,60,0,176,17,60,0,60,0,177,17,60,0,60,0,178,17,60,0,60,0,179,17,60,0,60,0,180,17,60,0,60,0,181,17,60,0,60,0,182,17,60,0,60,0,183,17,60,0,60,0,184,17,60,0,60,0,185,17,60,0,60,0,186,17,60,0,60,0,187,17,60,0,60,0,188,17,60,0,60,0,189,17,60,0,60,0,190,17,60,0,60,0,191,17,60,0,60,0,192,17,60,0,60,0,193,17,60,0,60,0,194,17,38,0,91,0,102,0,105,0,114,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,0,17,124,0,0,17,61,0,3,17,124,0,3,17,61,0,7,17,124,0,7,17,61,0,9,17,124,0,9,17,61,0,12,17,124,0,12,17,38,0,0,17,0,17,61,0,1,17,60,0,60,0,60,0,50,49,38,0,3,17,3,17,61,0,4,17,60,0,60,0,60,0,56,49,38,0,7,17,7,17,61,0,8,17,60,0,60,0,60,0,67,49,38,0,9,17,9,17,61,0,10,17,60,0,60,0,60,0,70,49,38,0,12,17,12,17,61,0,13,17,60,0,60,0,60,0,73,49,0,0,14,223,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,0,17,2,17,61,0,250,17,38,0,0,17,3,17,61,0,90,17,38,0,0,17,5,17,61,0,195,17,38,0,0,17,7,17,61,0,251,17,38,0,0,17,9,17,0,17,61,0,196,17,38,0,0,17,14,17,61,0,252,17,38,0,0,17,15,17,61,0,253,17,38,0,0,17,18,17,61,0,254,17,38,0,2,17,0,17,61,0,19,17,61,0,197,17,38,0,2,17,2,17,61,0,20,17,61,0,255,17,38,0,2,17,3,17,61,0,21,17,61,0,198,17,38,0,2,17,7,17,61,0,22,17,38,0,2,17,9,17,61,0,91,17,61,0,199,17,38,0,2,17,12,17,61,0,92,17,38,0,2,17,16,17,61,0,201,17,38,0,2,17,18,17,61,0,93,17,38,0,3,17,0,17,61,0,23,17,61,0,202,17,38,0,3,17,5,17,61,0,94,17,61,0,203,17,38,0,5,17,0,17,9,17,61,0,204,17,38,0,5,17,2,17,61,0,24,17,61,0,205,17,38,0,5,17,3,17,61,0,206,17,38,0,5,17,3,17,18,17,61,0,207,17,38,0,5,17,5,17,61,0,25,17,61,0,208,17,38,0,5,17,6,17,0,17,61,0,209,17,38,0,5,17,6,17,9,17,61,0,210,17,38,0,5,17,7,17,9,17,61,0,211,17,38,0,5,17,7,17,11,17,61,0,213,17,38,0,5,17,7,17,18,17,61,0,212,17,38,0,5,17,9,17,9,17,61,0,214,17,38,0,5,17,11,17,61,0,27,17,38,0,5,17,15,17,61,0,216,17,38,0,5,17,18,17,61,0,26,17,38,0,6,17,0,17,61,0,218,17,38,0,6,17,5,17,61,0,219,17,38,0,6,17,7,17,61,0,28,17,61,0,220,17,38,0,6,17,9,17,61,0,221,17,38,0,6,17,9,17,9,17,61,0,222,17,38,0,6,17,11,17,61,0,29,17,61,0,226,17,38,0,6,17,14,17,61,0,224,17,38,0,6,17,18,17,61,0,225,17,38,0,7,17,0,17,61,0,30,17,38,0,7,17,2,17,61,0,31,17,38,0,7,17,3,17,61,0,32,17,38,0,7,17,5,17,61,0,227,17,38,0,7,17,7,17,11,17,61,0,44,17,38,0,7,17,9,17,61,0,33,17,38,0,7,17,9,17,0,17,61,0,34,17,38,0,7,17,9,17,3,17,61,0,35,17,38,0,7,17,9,17,7,17,61,0,36,17,38,0,7,17,9,17,9,17,61,0,37,17,38,0,7,17,9,17,12,17,61,0,38,17,38,0,7,17,11,17,61,0,43,17,61,0,230,17,38,0,7,17,12,17,61,0,39,17,38,0,7,17,14,17,61,0,40,17,38,0,7,17,16,17,61,0,41,17,38,0,7,17,17,17,61,0,42,17,61,0,228,17,38,0,7,17,18,17,61,0,229,17,38,0,9,17,0,17,61,0,45,17,61,0,231,17,38,0,9,17,2,17,61,0,46,17,38,0,9,17,3,17,61,0,47,17,61,0,232,17,38,0,9,17,5,17,61,0,48,17,61,0,233,17,38,0,9,17,6,17,61,0,49,17,38,0,9,17,7,17,61,0,50,17,61,0,234,17,38,0,9,17,7,17,0,17,61,0,51,17,38,0,9,17,9,17,9,17,61,0,52,17,38,0,9,17,11,17,61,0,53,17,38,0,9,17,12,17,61,0,54,17,38,0,9,17,14,17,61,0,55,17,38,0,9,17,15,17,61,0,56,17,38,0,9,17,16,17,61,0,57,17,38,0,9,17,17,17,61,0,58,17,38,0,9,17,18,17,61,0,59,17,38,0,11,17,0,17,61,0,65,17,61,0,236,17,38,0,11,17,0,17,0,17,61,0,237,17,38,0,11,17,3,17,61,0,66,17,38,0,11,17,6,17,61,0,67,17,38,0,11,17,7,17,61,0,68,17,38,0,11,17,9,17,61,0,69,17,38,0,11,17,11,17,61,0,71,17,61,0,238,17,38,0,11,17,12,17,61,0,72,17,38,0,11,17,14,17,61,0,73,17,38,0,11,17,15,17,61,0,239,17,38,0,11,17,16,17,61,0,74,17,38,0,11,17,17,17,61,0,75,17,38,0,12,17,11,17,61,0,77,17,38,0,14,17,15,17,61,0,82,17,38,0,14,17,18,17,61,0,83,17,38,0,17,17,7,17,61,0,86,17,61,0,243,17,38,0,17,17,11,17,61,0,87,17,61,0,244,17,38,0,18,17,2,17,61,0,245,17,38,0,18,17,5,17,61,0,246,17,38,0,18,17,6,17,61,0,247,17,38,0,18,17,7,17,61,0,248,17,38,0,18,17,18,17,61,0,88,17,38,0,97,17,105,17,61,0,118,17,38,0,97,17,110,17,61,0,119,17,38,0,99,17,105,17,61,0,120,17,38,0,99,17,109,17,61,0,121,17,38,0,101,17,105,17,61,0,122,17,38,0,101,17,110,17,61,0,123,17,38,0,101,17,115,17,61,0,124,17,38,0,103,17,105,17,61,0,125,17,38,0,103,17,110,17,61,0,126,17,38,0,105,17,101,17,61,0,127,17,38,0,105,17,101,17,117,17,61,0,128,17,38,0,105,17,103,17,117,17,61,0,129,17,38,0,105,17,105,17,61,0,130,17,38,0,105,17,110,17,61,0,131,17,38,0,109,17,99,17,61,0,132,17,38,0,109,17,99,17,117,17,61,0,133,17,38,0,109,17,103,17,61,0,134,17,38,0,109,17,105,17,61,0,135,17,38,0,109,17,117,17,61,0,136,17,38,0,110,17,97,17,61,0,137,17,38,0,110,17,97,17,117,17,61,0,138,17,38,0,110,17,101,17,115,17,61,0,139,17,38,0,110,17,103,17,117,17,61,0,140,17,38,0,110,17,110,17,61,0,141,17,38,0,114,17,97,17,61,0,142,17,38,0,114,17,101,17,61,0,143,17,38,0,114,17,101,17,117,17,61,0,144,17,38,0,114,17,103,17,61,0,145,17,38,0,114,17,103,17,117,17,61,0,146,17,38,0,114,17,110,17,61,0,147,17,38,0,114,17,117,17,61,0,148,17,38,0,115,17,110,17,61,0,149,17,38,0,115,17,115,17,61,0,150,17,38,0,116,17,110,17,61,0,151,17,38,0,117,17,97,17,61,0,152,17,38,0,117,17,99,17,61,0,153,17,38,0,117,17,105,17,61,0,154,17,38,0,117,17,110,17,61,0,155,17,38,0,117,17,115,17,61,0,156,17,38,0,97,17,115,17,61,0,163,17,38,0,99,17,110,17,61,0,164,17,38,0,103,17,99,17,61,0,165,17,38,0,105,17,99,17,61,0,166,17,38,0,105,17,99,17,117,17,61,0,167,17,0,0,239,223,33,49,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,103,0,32,0,72,0,97,0,110,0,105,0,93,0,91,0,111,0,112,0,116,0,105,0,109,0,105,0,122,0,101,0,32,0,91,0,0,172,45,0,1,172,4,172,7,172,45,0,10,172,16,172,45,0,23,172,25,172,45,0,29,172,32,172,36,172,44,172,45,0,45,172,47,172,45,0,49,172,56,172,45,0,57,172,60,172,64,172,75,172,77,172,84,172,88,172,92,172,112,172,45,0,113,172,116,172,119,172,45,0,120,172,122,172,128,172,45,0,129,172,131,172,45,0,134,172,137,172,45,0,140,172,144,172,148,172,156,172,45,0,157,172,159,172,45,0,161,172,168,172,45,0,170,172,172,172,175,172,45,0,176,172,184,172,45,0,185,172,187,172,45,0,189,172,193,172,196,172,200,172,204,172,213,172,215,172,224,172,45,0,225,172,228,172,231,172,45,0,232,172,234,172,236,172,239,172,45,0,241,172,243,172,245,172,45,0,246,172,252,172,45,0,253,172,0,173,4,173,6,173,12,173,45,0,13,173,15,173,17,173,24,173,28,173,32,173,41,173,44,173,45,0,45,173,52,173,45,0,53,173,56,173,60,173,68,173,45,0,69,173,71,173,73,173,80,173,84,173,88,173,97,173,99,173,108,173,45,0,109,173,112,173,115,173,45,0,118,173,123,173,45,0,125,173,127,173,129,173,45,0,130,173,136,173,45,0,137,173,140,173,144,173,156,173,45,0,157,173,164,173,183,173,192,173,45,0,193,173,196,173,200,173,208,173,45,0,209,173,211,173,220,173,224,173,228,173,248,173,45,0,249,173,252,173,255,173,45,0,1,174,8,174,45,0,9,174,11,174,13,174,20,174,48,174,45,0,49,174,52,174,55,174,45,0,56,174,58,174,64,174,45,0,65,174,67,174,69,174,45,0,70,174,74,174,76,174,45,0,78,174,80,174,84,174,86,174,92,174,45,0,93,174,95,174,45,0,97,174,101,174,104,174,45,0,105,174,108,174,112,174,120,174,45,0,121,174,123,174,45,0,125,174,132,174,45,0,133,174,140,174,188,174,45,0,190,174,192,174,196,174,204,174,45,0,205,174,207,174,45,0,209,174,216,174,45,0,217,174,220,174,232,174,235,174,237,174,244,174,248,174,252,174,7,175,45,0,8,175,13,175,16,175,44,175,45,0,45,175,48,175,50,175,52,175,60,175,45,0,61,175,63,175,65,175,45,0,67,175,72,175,45,0,73,175,80,175,92,175,45,0,93,175,100,175,45,0,101,175,121,175,128,175,132,175,136,175,144,175,45,0,145,175,149,175,156,175,184,175,45,0,185,175,188,175,192,175,199,175,45,0,201,175,203,175,205,175,45,0,206,175,212,175,220,175,232,175,45,0,233,175,240,175,45,0,241,175,244,175,248,175,0,176,45,0,1,176,4,176,12,176,16,176,20,176,28,176,45,0,29,176,40,176,68,176,45,0,69,176,72,176,74,176,76,176,78,176,83,176,45,0,85,176,87,176,89,176,93,176,124,176,45,0,125,176,128,176,132,176,140,176,45,0,141,176,143,176,145,176,152,176,45,0,154,176,156,176,159,176,45,0,162,176,168,176,45,0,169,176,171,176,45,0,175,176,177,176,179,176,45,0,181,176,184,176,188,176,196,176,45,0,197,176,199,176,45,0,201,176,208,176,45,0,209,176,212,176,216,176,224,176,229,176,8,177,45,0,9,177,11,177,45,0,12,177,16,177,18,177,45,0,19,177,24,177,45,0,25,177,27,177,45,0,29,177,35,177,45,0,37,177,40,177,44,177,52,177,45,0,53,177,55,177,45,0,57,177,64,177,45,0,65,177,68,177,72,177,80,177,45,0,81,177,84,177,45,0,85,177,88,177,92,177,96,177,120,177,45,0,121,177,124,177,128,177,130,177,136,177,45,0,137,177,139,177,141,177,146,177,45,0,148,177,152,177,156,177,168,177,204,177,208,177,212,177,220,177,45,0,221,177,223,177,232,177,45,0,233,177,236,177,240,177,249,177,251,177,253,177,4,178,45,0,5,178,8,178,11,178,45,0,12,178,20,178,45,0,21,178,23,178,25,178,32,178,52,178,60,178,88,178,92,178,96,178,104,178,45,0,105,178,116,178,45,0,117,178,124,178,132,178,45,0,133,178,137,178,144,178,45,0,145,178,148,178,152,178,45,0,154,178,160,178,45,0,161,178,163,178,165,178,45,0,166,178,170,178,172,178,176,178,180,178,200,178,45,0,201,178,204,178,208,178,214,178,216,178,45,0,217,178,219,178,221,178,226,178,228,178,45,0,230,178,232,178,235,178,45,0,239,178,243,178,45,0,245,178,247,178,45,0,251,178,255,178,45,0,1,179,4,179,8,179,16,179,45,0,17,179,19,179,45,0,21,179,28,179,84,179,45,0,86,179,88,179,91,179,45,0,92,179,94,179,45,0,95,179,100,179,45,0,101,179,103,179,105,179,107,179,110,179,112,179,45,0,113,179,116,179,120,179,128,179,45,0,129,179,131,179,45,0,133,179,140,179,144,179,148,179,160,179,45,0,161,179,168,179,172,179,196,179,45,0,197,179,200,179,203,179,45,0,204,179,206,179,208,179,212,179,45,0,213,179,215,179,217,179,219,179,221,179,224,179,228,179,232,179,252,179,16,180,24,180,28,180,32,180,40,180,45,0,41,180,43,180,52,180,80,180,45,0,81,180,84,180,88,180,96,180,45,0,97,180,99,180,101,180,108,180,128,180,136,180,157,180,164,180,168,180,172,180,181,180,183,180,185,180,192,180,196,180,200,180,208,180,213,180,220,180,45,0,221,180,224,180,227,180,45,0,228,180,230,180,236,180,45,0,237,180,239,180,241,180,248,180,20,181,45,0,21,181,24,181,27,181,45,0,28,181,36,181,45,0,37,181,39,181,45,0,42,181,48,181,45,0,49,181,52,181,56,181,64,181,45,0,65,181,67,181,45,0,69,181,75,181,45,0,77,181,80,181,84,181,92,181,45,0,93,181,95,181,45,0,97,181,160,181,45,0,161,181,164,181,168,181,170,181,45,0,171,181,176,181,45,0,177,181,179,181,45,0,181,181,187,181,45,0,189,181,192,181,196,181,204,181,45,0,205,181,207,181,45,0,209,181,216,181,236,181,16,182,45,0,17,182,20,182,24,182,37,182,44,182,52,182,72,182,100,182,104,182,156,182,45,0,157,182,160,182,164,182,171,182,45,0,172,182,177,182,212,182,240,182,244,182,248,182,0,183,45,0,1,183,5,183,40,183,45,0,41,183,44,183,47,183,45,0,48,183,56,183,45,0,57,183,59,183,68,183,72,183,76,183,84,183,45,0,85,183,96,183,100,183,104,183,112,183,45,0,113,183,115,183,117,183,124,183,45,0,125,183,128,183,132,183,140,183,45,0,141,183,143,183,45,0,146,183,150,183,45,0,153,183,156,183,160,183,168,183,45,0,169,183,171,183,45,0,173,183,180,183,45,0,181,183,184,183,199,183,201,183,236,183,45,0,237,183,240,183,244,183,252,183,45,0,253,183,255,183,45,0,1,184,7,184,45,0,9,184,12,184,16,184,24,184,45,0,25,184,27,184,29,184,36,184,45,0,37,184,40,184,44,184,52,184,45,0,53,184,55,184,45,0,57,184,64,184,68,184,81,184,83,184,92,184,45,0,93,184,96,184,100,184,108,184,45,0,109,184,111,184,113,184,120,184,124,184,141,184,168,184,176,184,180,184,184,184,192,184,45,0,193,184,195,184,197,184,204,184,208,184,212,184,221,184,223,184,225,184,232,184,45,0,233,184,236,184,240,184,248,184,45,0,249,184,251,184,253,184,4,185,24,185,32,185,60,185,45,0,61,185,64,185,68,185,76,185,79,185,81,185,88,185,45,0,89,185,92,185,96,185,104,185,45,0,105,185,107,185,109,185,116,185,45,0,117,185,120,185,124,185,132,185,45,0,133,185,135,185,137,185,45,0,138,185,141,185,45,0,142,185,172,185,45,0,173,185,176,185,180,185,188,185,45,0,189,185,191,185,193,185,200,185,45,0,201,185,204,185,206,185,45,0,210,185,216,185,45,0,217,185,219,185,221,185,45,0,222,185,225,185,227,185,45,0,229,185,232,185,236,185,244,185,45,0,245,185,247,185,45,0,250,185,0,186,45,0,1,186,8,186,21,186,56,186,45,0,57,186,60,186,64,186,66,186,72,186,45,0,73,186,75,186,77,186,45,0,78,186,83,186,45,0,85,186,88,186,92,186,100,186,45,0,101,186,103,186,45,0,105,186,112,186,45,0,113,186,116,186,120,186,131,186,45,0,133,186,135,186,140,186,168,186,45,0,169,186,171,186,45,0,172,186,176,186,178,186,184,186,45,0,185,186,187,186,189,186,196,186,200,186,216,186,45,0,217,186,252,186,0,187,4,187,13,187,15,187,17,187,24,187,28,187,32,187,41,187,43,187,52,187,45,0,54,187,56,187,59,187,45,0,62,187,68,187,45,0,69,187,71,187,73,187,77,187,79,187,45,0,80,187,84,187,88,187,97,187,99,187,108,187,136,187,140,187,144,187,164,187,168,187,172,187,180,187,183,187,192,187,196,187,200,187,208,187,211,187,248,187,45,0,249,187,252,187,255,187,45,0,0,188,2,188,8,188,45,0,9,188,11,188,45,0,13,188,15,188,17,188,20,188,45,0,24,188,27,188,45,0,31,188,36,188,45,0,37,188,39,188,41,188,45,188,48,188,45,0,49,188,52,188,56,188,64,188,45,0,65,188,67,188,45,0,69,188,73,188,76,188,45,0,77,188,80,188,93,188,132,188,45,0,133,188,136,188,139,188,45,0,140,188,142,188,148,188,45,0,149,188,151,188,153,188,45,0,154,188,160,188,45,0,161,188,164,188,167,188,45,0,168,188,176,188,45,0,177,188,179,188,45,0,181,188,188,188,45,0,189,188,192,188,196,188,205,188,207,188,45,0,209,188,213,188,216,188,220,188,244,188,45,0,246,188,248,188,252,188,4,189,45,0,5,189,7,189,9,189,16,189,20,189,36,189,44,189,64,189,72,189,45,0,73,189,76,189,80,189,88,189,45,0,89,189,100,189,104,189,128,189,45,0,129,189,132,189,135,189,45,0,138,189,144,189,45,0,145,189,147,189,149,189,153,189,45,0,154,189,156,189,164,189,176,189,184,189,212,189,45,0,213,189,216,189,220,189,233,189,240,189,244,189,248,189,0,190,3,190,5,190,12,190,45,0,13,190,16,190,20,190,28,190,45,0,29,190,31,190,68,190,45,0,69,190,72,190,76,190,78,190,84,190,45,0,85,190,87,190,89,190,45,0,91,190,96,190,45,0,97,190,100,190,104,190,106,190,112,190,45,0,113,190,115,190,45,0,117,190,123,190,45,0,125,190,128,190,132,190,140,190,45,0,141,190,143,190,45,0,145,190,152,190,45,0,153,190,168,190,208,190,45,0,209,190,212,190,215,190,45,0,216,190,224,190,227,190,45,0,229,190,236,190,1,191,8,191,45,0,9,191,24,191,45,0,25,191,27,191,45,0,29,191,64,191,45,0,65,191,68,191,72,191,80,191,45,0,81,191,85,191,148,191,176,191,197,191,204,191,45,0,205,191,208,191,212,191,220,191,223,191,225,191,60,192,81,192,88,192,92,192,96,192,104,192,45,0,105,192,144,192,45,0,145,192,148,192,152,192,160,192,45,0,161,192,163,192,165,192,172,192,45,0,173,192,175,192,45,0,176,192,179,192,45,0,182,192,188,192,45,0,189,192,191,192,45,0,193,192,197,192,200,192,45,0,201,192,204,192,208,192,216,192,45,0,217,192,219,192,45,0,221,192,228,192,45,0,229,192,232,192,236,192,244,192,45,0,245,192,247,192,249,192,0,193,4,193,8,193,16,193,21,193,28,193,45,0,32,193,35,193,45,0,36,193,38,193,45,0,39,193,44,193,45,0,45,193,47,193,45,0,49,193,54,193,56,193,45,0,57,193,60,193,64,193,72,193,45,0,73,193,75,193,45,0,77,193,84,193,45,0,85,193,88,193,92,193,100,193,45,0,101,193,103,193,45,0,105,193,112,193,116,193,120,193,133,193,140,193,45,0,142,193,144,193,148,193,150,193,156,193,45,0,157,193,159,193,161,193,165,193,168,193,45,0,169,193,172,193,176,193,189,193,196,193,200,193,204,193,212,193,215,193,45,0,216,193,224,193,228,193,232,193,240,193,45,0,241,193,243,193,252,193,45,0,253,193,0,194,4,194,12,194,45,0,13,194,15,194,17,194,24,194,45,0,25,194,28,194,31,194,45,0,32,194,40,194,45,0,41,194,43,194,45,194,47,194,49,194,45,0,50,194,52,194,72,194,80,194,45,0,81,194,84,194,88,194,96,194,101,194,108,194,45,0,109,194,112,194,116,194,124,194,45,0,125,194,127,194,129,194,136,194,45,0,137,194,144,194,152,194,155,194,157,194,164,194,45,0,165,194,168,194,172,194,45,0,173,194,180,194,45,0,181,194,183,194,185,194,220,194,45,0,221,194,224,194,227,194,45,0,228,194,235,194,45,0,237,194,239,194,241,194,246,194,248,194,45,0,249,194,251,194,45,0,252,194,0,195,8,195,45,0,9,195,12,195,45,0,13,195,19,195,45,0,21,195,24,195,28,195,36,195,45,0,37,195,40,195,45,0,41,195,69,195,104,195,45,0,105,195,108,195,112,195,114,195,120,195,45,0,121,195,124,195,45,0,125,195,132,195,136,195,140,195,192,195,216,195,45,0,217,195,220,195,223,195,45,0,224,195,226,195,232,195,45,0,233,195,237,195,244,195,45,0,245,195,248,195,8,196,16,196,36,196,44,196,48,196,52,196,60,196,45,0,61,196,72,196,100,196,45,0,101,196,104,196,108,196,116,196,45,0,117,196,121,196,128,196,148,196,156,196,184,196,188,196,233,196,240,196,45,0,241,196,244,196,248,196,250,196,255,196,45,0,1,197,12,197,16,197,20,197,28,197,40,197,45,0,41,197,44,197,48,197,56,197,45,0,57,197,59,197,61,197,68,197,45,0,69,197,72,197,45,0,74,197,76,197,45,0,78,197,83,197,45,0,85,197,87,197,45,0,89,197,93,197,45,0,94,197,96,197,45,0,97,197,100,197,104,197,112,197,45,0,113,197,115,197,45,0,117,197,124,197,45,0,125,197,128,197,132,197,135,197,140,197,45,0,141,197,143,197,145,197,149,197,151,197,45,0,152,197,156,197,160,197,169,197,180,197,45,0,181,197,184,197,45,0,185,197,187,197,45,0,190,197,196,197,45,0,202,197,204,197,206,197,208,197,45,0,209,197,212,197,216,197,224,197,45,0,225,197,227,197,229,197,236,197,45,0,238,197,240,197,244,197,246,197,45,0,247,197,252,197,45,0,1,198,5,198,45,0,8,198,12,198,16,198,24,198,45,0,25,198,27,198,45,0,28,198,36,198,45,0,37,198,40,198,44,198,45,0,46,198,48,198,51,198,45,0,53,198,55,198,57,198,59,198,64,198,45,0,65,198,68,198,72,198,80,198,45,0,81,198,83,198,45,0,85,198,92,198,45,0,93,198,96,198,108,198,111,198,113,198,120,198,45,0,121,198,124,198,128,198,136,198,45,0,137,198,139,198,141,198,148,198,45,0,149,198,152,198,156,198,164,198,45,0,165,198,167,198,169,198,176,198,45,0,177,198,180,198,184,198,45,0,186,198,192,198,45,0,193,198,195,198,197,198,204,198,45,0,205,198,208,198,212,198,220,198,45,0,221,198,224,198,45,0,225,198,232,198,45,0,233,198,236,198,240,198,248,198,45,0,249,198,253,198,4,199,45,0,5,199,8,199,12,199,20,199,45,0,21,199,23,199,25,199,32,199,45,0,33,199,36,199,40,199,48,199,45,0,49,199,51,199,53,199,55,199,60,199,45,0,61,199,64,199,68,199,74,199,76,199,45,0,77,199,79,199,81,199,45,0,88,199,92,199,96,199,104,199,107,199,116,199,45,0,117,199,120,199,124,199,45,0,126,199,131,199,45,0,133,199,135,199,45,0,138,199,142,199,144,199,45,0,145,199,148,199,150,199,45,0,152,199,154,199,160,199,45,0,161,199,163,199,45,0,166,199,172,199,45,0,173,199,176,199,180,199,188,199,45,0,189,199,191,199,45,0,193,199,200,199,45,0,201,199,204,199,206,199,208,199,216,199,221,199,228,199,232,199,236,199,0,200,45,0,1,200,4,200,8,200,10,200,16,200,45,0,17,200,19,200,21,200,45,0,22,200,28,200,45,0,29,200,32,200,36,200,44,200,45,0,45,200,47,200,49,200,56,200,60,200,64,200,72,200,45,0,73,200,76,200,45,0,77,200,84,200,112,200,45,0,113,200,116,200,120,200,122,200,128,200,45,0,129,200,131,200,133,200,45,0,135,200,139,200,45,0,141,200,148,200,157,200,159,200,161,200,168,200,188,200,45,0,189,200,196,200,200,200,204,200,212,200,45,0,213,200,215,200,217,200,224,200,45,0,225,200,228,200,245,200,252,200,45,0,253,200,0,201,4,201,45,0,6,201,12,201,45,0,13,201,15,201,17,201,24,201,44,201,52,201,80,201,45,0,81,201,84,201,88,201,96,201,45,0,97,201,99,201,108,201,112,201,116,201,124,201,136,201,45,0,137,201,140,201,144,201,152,201,45,0,153,201,155,201,157,201,192,201,45,0,193,201,196,201,199,201,45,0,200,201,202,201,208,201,45,0,209,201,211,201,213,201,45,0,214,201,217,201,45,0,218,201,220,201,45,0,221,201,224,201,226,201,228,201,231,201,236,201,45,0,237,201,239,201,45,0,241,201,248,201,45,0,249,201,252,201,0,202,8,202,45,0,9,202,11,202,45,0,13,202,20,202,24,202,41,202,76,202,45,0,77,202,80,202,84,202,92,202,45,0,93,202,95,202,45,0,97,202,104,202,125,202,132,202,152,202,188,202,45,0,189,202,192,202,196,202,204,202,45,0,205,202,207,202,209,202,211,202,216,202,45,0,217,202,224,202,236,202,244,202,8,203,16,203,20,203,24,203,32,203,45,0,33,203,65,203,72,203,45,0,73,203,76,203,80,203,88,203,45,0,89,203,93,203,100,203,120,203,45,0,121,203,156,203,184,203,212,203,228,203,231,203,233,203,12,204,45,0,13,204,16,204,20,204,28,204,45,0,29,204,33,204,45,0,34,204,39,204,45,0,41,204,44,204,46,204,48,204,56,204,45,0,57,204,59,204,45,0,62,204,68,204,45,0,69,204,72,204,76,204,84,204,45,0,85,204,87,204,45,0,89,204,96,204,100,204,102,204,104,204,112,204,117,204,152,204,45,0,153,204,156,204,160,204,168,204,45,0,169,204,171,204,45,0,173,204,180,204,45,0,181,204,184,204,188,204,196,204,45,0,197,204,199,204,201,204,208,204,212,204,228,204,236,204,240,204,1,205,8,205,45,0,9,205,12,205,16,205,24,205,45,0,25,205,27,205,29,205,36,205,40,205,44,205,57,205,92,205,96,205,100,205,108,205,45,0,109,205,111,205,113,205,120,205,136,205,148,205,45,0,149,205,152,205,156,205,164,205,45,0,165,205,167,205,169,205,176,205,196,205,204,205,208,205,232,205,236,205,240,205,248,205,45,0,249,205,251,205,253,205,4,206,8,206,12,206,20,206,25,206,32,206,45,0,33,206,36,206,40,206,48,206,45,0,49,206,51,206,53,206,88,206,45,0,89,206,92,206,95,206,45,0,97,206,104,206,45,0,105,206,107,206,109,206,116,206,45,0,117,206,120,206,124,206,132,206,45,0,133,206,135,206,137,206,144,206,45,0,145,206,148,206,152,206,160,206,45,0,161,206,163,206,45,0,165,206,172,206,45,0,173,206,193,206,228,206,45,0,229,206,232,206,235,206,45,0,236,206,244,206,45,0,245,206,247,206,45,0,249,206,0,207,45,0,1,207,4,207,8,207,16,207,45,0,17,207,19,207,21,207,28,207,32,207,36,207,44,207,45,0,45,207,47,207,45,0,49,207,56,207,84,207,45,0,85,207,88,207,92,207,100,207,45,0,101,207,103,207,105,207,112,207,45,0,113,207,116,207,120,207,128,207,133,207,140,207,161,207,168,207,176,207,196,207,224,207,45,0,225,207,228,207,232,207,240,207,45,0,241,207,243,207,245,207,252,207,0,208,4,208,17,208,24,208,45,208,52,208,45,0,53,208,56,208,60,208,68,208,45,0,69,208,71,208,73,208,80,208,84,208,88,208,96,208,108,208,45,0,109,208,112,208,116,208,124,208,45,0,125,208,129,208,164,208,45,0,165,208,168,208,172,208,180,208,45,0,181,208,183,208,185,208,192,208,45,0,193,208,196,208,200,208,45,0,201,208,208,208,45,0,209,208,211,208,45,0,213,208,220,208,45,0,221,208,224,208,228,208,236,208,45,0,237,208,239,208,45,0,241,208,248,208,13,209,48,209,45,0,49,209,52,209,56,209,58,209,64,209,45,0,65,209,67,209,45,0,69,209,76,209,45,0,77,209,80,209,84,209,92,209,45,0,93,209,95,209,97,209,104,209,108,209,124,209,132,209,136,209,160,209,45,0,161,209,164,209,168,209,176,209,45,0,177,209,179,209,181,209,186,209,188,209,192,209,216,209,244,209,248,209,7,210,9,210,16,210,44,210,45,0,45,210,48,210,52,210,60,210,45,0,61,210,63,210,65,210,72,210,92,210,100,210,128,210,45,0,129,210,132,210,136,210,144,210,45,0,145,210,149,210,156,210,160,210,164,210,172,210,177,210,184,210,45,0,185,210,188,210,191,210,45,0,192,210,194,210,200,210,45,0,201,210,203,210,212,210,216,210,220,210,228,210,45,0,229,210,240,210,45,0,241,210,244,210,248,210,0,211,45,0,1,211,3,211,5,211,12,211,45,0,14,211,16,211,20,211,22,211,28,211,45,0,29,211,31,211,45,0,33,211,37,211,40,211,45,0,41,211,44,211,48,211,56,211,45,0,57,211,59,211,45,0,61,211,68,211,45,0,69,211,124,211,45,0,125,211,128,211,132,211,140,211,45,0,141,211,143,211,45,0,145,211,152,211,45,0,153,211,156,211,160,211,168,211,45,0,169,211,171,211,173,211,180,211,184,211,188,211,196,211,45,0,197,211,200,211,45,0,201,211,208,211,216,211,225,211,227,211,236,211,45,0,237,211,240,211,244,211,252,211,45,0,253,211,255,211,1,212,8,212,29,212,64,212,68,212,92,212,96,212,100,212,109,212,111,212,120,212,45,0,121,212,124,212,127,212,45,0,128,212,130,212,136,212,45,0,137,212,139,212,141,212,148,212,169,212,204,212,208,212,212,212,220,212,223,212,232,212,236,212,240,212,248,212,251,212,253,212,4,213,8,213,12,213,20,213,45,0,21,213,23,213,60,213,45,0,61,213,64,213,68,213,76,213,45,0,77,213,79,213,81,213,88,213,45,0,89,213,92,213,96,213,101,213,104,213,45,0,105,213,107,213,109,213,116,213,45,0,117,213,120,213,124,213,132,213,45,0,133,213,135,213,45,0,137,213,144,213,165,213,200,213,45,0,201,213,204,213,208,213,210,213,216,213,45,0,217,213,219,213,221,213,228,213,45,0,229,213,232,213,236,213,244,213,45,0,245,213,247,213,249,213,0,214,45,0,1,214,4,214,8,214,16,214,45,0,17,214,19,214,45,0,21,214,28,214,32,214,36,214,45,214,56,214,45,0,57,214,60,214,64,214,69,214,72,214,45,0,73,214,75,214,77,214,81,214,84,214,45,0,85,214,88,214,92,214,103,214,105,214,112,214,45,0,113,214,116,214,131,214,133,214,140,214,45,0,141,214,144,214,148,214,157,214,159,214,161,214,168,214,172,214,176,214,185,214,187,214,196,214,45,0,197,214,200,214,204,214,209,214,212,214,215,214,217,214,224,214,228,214,232,214,240,214,245,214,252,214,45,0,253,214,0,215,4,215,17,215,24,215,45,0,25,215,28,215,32,215,40,215,45,0,41,215,43,215,45,215,52,215,45,0,53,215,56,215,60,215,68,215,71,215,73,215,80,215,45,0,81,215,84,215,86,215,45,0,89,215,96,215,45,0,97,215,99,215,101,215,105,215,108,215,112,215,116,215,124,215,45,0,125,215,129,215,136,215,45,0,137,215,140,215,144,215,152,215,45,0,153,215,155,215,157,215,93,0,93,0,38,0,0,172,60,0,60,0,42,0,61,79,115,79,71,80,249,80,160,82,239,83,117,84,229,84,9,86,193,90,182,91,135,102,182,103,183,103,239,103,76,107,194,115,194,117,60,122,219,130,4,131,87,136,136,136,54,138,200,140,207,141,251,142,230,143,213,153,238,78,162,80,150,84,255,84,119,87,138,91,157,101,142,105,159,106,200,115,51,123,30,128,56,130,109,132,12,139,38,0,1,172,60,0,60,0,42,0,59,82,116,83,4,84,106,96,100,97,188,107,207,115,26,129,186,137,210,137,163,149,123,83,175,84,198,87,9,100,241,100,119,104,38,0,4,172,60,0,60,0,42,0,131,79,10,82,190,88,120,89,230,89,114,94,121,94,199,97,192,99,70,103,236,103,127,104,151,111,78,118,11,119,245,120,8,122,255,122,33,124,157,128,110,130,113,130,235,138,147,149,88,80,115,97,30,104,166,105,149,115,198,121,27,131,78,136,118,141,192,143,102,159,38,0,8,172,60,0,60,0,42,0,107,78,157,85,247,102,52,110,163,120,237,122,91,132,16,137,78,135,168,151,118,86,108,105,248,121,175,127,13,136,161,157,38,0,16,172,60,0,60,0,42,0,216,82,78,87,42,88,76,93,31,97,190,97,33,98,98,101,209,103,68,106,27,110,24,117,179,117,227,118,176,119,58,125,175,144,81,148,82,148,149,159,105,87,243,87,65,93,7,95,168,97,188,100,63,107,91,107,212,108,230,109,137,111,217,119,87,143,99,145,123,158,38,0,17,172,60,0,60,0,42,0,35,83,172,92,50,117,219,128,64,146,152,149,208,151,38,0,21,172,60,0,60,0,42,0,91,82,8,88,220,89,161,92,23,93,183,94,58,95,74,95,119,97,95,108,122,117,134,117,224,124,115,125,177,125,140,127,84,129,33,130,145,133,65,137,27,139,252,146,77,150,71,156,139,80,245,80,195,88,252,95,91,98,96,103,127,106,173,107,252,119,69,122,72,126,97,127,151,127,171,127,51,131,71,140,193,151,38,0,28,172,60,0,60,0,42,0,203,78,247,78,11,80,241,81,79,88,55,97,62,97,104,97,57,101,234,105,17,111,165,117,134,118,214,118,135,123,165,130,203,132,167,147,139,149,116,82,3,83,233,99,233,105,160,115,213,120,211,149,38,0,29,172,60,0,60,0,42,0,128,85,162,91,38,0,49,172,60,0,60,0,42,0,81,87,179,124,185,127,92,120,225,140,215,147,38,0,57,172,60,0,60,0,181,145,38,0,112,172,60,0,60,0,42,0,40,80,187,83,69,92,232,93,210,98,110,99,218,100,231,100,32,110,172,112,91,121,221,141,30,142,125,144,69,146,248,146,127,84,27,102,236,121,101,123,103,124,224,128,82,129,227,130,146,131,86,133,39,134,170,136,254,136,207,153,38,0,116,172,60,0,60,0,42,0,126,78,246,78,101,80,254,93,250,94,6,97,87,105,113,129,84,134,71,142,117,147,43,154,245,99,141,114,119,119,48,137,7,139,172,151,38,0,120,172,60,0,60,0,42,0,94,78,145,80,112,103,64,104,108,78,5,103,164,105,38,0,128,172,60,0,60,0,42,0,9,81,141,82,146,82,162,106,188,119,16,146,212,158,191,100,161,130,38,0,129,172,60,0,60,0,42,0,171,82,47,96,242,143,38,82,39,82,38,0,140,172,60,0,60,0,42,0,72,80,169,97,237,99,38,0,169,172,60,0,60,0,42,0,202,100,60,104,132,106,192,111,136,129,161,137,148,150,12,99,196,107,195,149,188,154,50,155,3,157,38,0,172,172,60,0,60,0,42,0,5,88,125,114,172,114,4,117,121,125,109,126,169,128,139,137,116,139,99,144,81,157,43,106,247,114,78,117,103,123,51,126,126,126,130,127,50,136,57,156,38,0,176,172,60,0,60,0,42,0,137,98,122,108,84,111,80,125,58,127,35,138,166,115,214,137,203,149,38,0,184,172,60,0,60,0,42,0,124,81,74,97,157,123,25,139,87,146,140,147,148,80,219,85,146,92,209,98,73,107,17,126,185,132,218,158,56,159,38,0,189,172,60,0,60,0,42,0,172,78,211,79,30,80,190,80,6,81,193,82,205,82,127,83,112,87,131,88,154,94,145,95,118,97,172,97,206,100,108,101,111,102,187,102,244,102,151,104,135,109,133,112,241,112,159,116,165,116,202,116,217,117,108,120,236,120,223,122,246,122,69,125,147,125,21,128,63,128,27,129,150,131,102,139,21,143,21,144,225,147,3,152,56,152,90,154,232,155,143,81,68,82,253,84,248,96,188,97,67,98,160,106,98,113,45,113,178,113,74,117,248,122,134,125,72,152,68,127,39,137,38,139,201,153,193,155,229,158,38,0,196,172,60,0,60,0,42,0,194,79,83,85,58,88,81,89,99,91,70,92,184,96,18,98,66,104,176,104,232,104,170,110,76,117,120,118,206,120,61,122,251,124,107,126,124,126,8,138,161,138,63,140,142,150,196,157,38,88,211,112,8,118,138,121,83,123,174,125,24,126,125,127,106,132,138,133,222,150,251,154,38,0,224,172,60,0,60,0,42,0,228,83,233,83,74,84,113,84,250,86,209,89,100,91,59,92,171,94,247,98,55,101,69,101,114,101,160,102,175,103,193,105,189,108,252,117,144,118,126,119,63,122,148,127,3,128,161,128,143,129,230,130,253,130,240,131,193,133,49,136,180,136,165,138,156,143,46,147,199,150,103,152,216,154,19,159,48,79,197,81,51,82,89,88,114,103,50,104,192,105,249,105,220,106,111,114,139,118,236,118,189,119,1,122,141,123,217,123,213,124,95,127,150,127,250,127,239,128,218,137,65,138,220,144,100,145,55,146,96,151,35,157,241,157,38,0,225,172,60,0,60,0,42,0,237,84,155,101,242,102,143,104,64,122,55,140,96,157,179,86,242,105,32,126,243,137,66,143,38,0,228,172,60,0,60,0,42,0,240,86,100,87,17,93,6,102,177,104,205,104,254,110,40,116,158,136,228,155,3,88,16,93,131,96,70,99,196,125,110,136,205,136,12,137,21,147,171,149,225,154,126,157,164,157,107,159,38,0,232,172,60,0,60,0,42,0,104,108,168,154,48,100,190,105,251,119,187,157,38,0,245,172,60,0,60,0,42,0,155,79,108,81,113,81,159,82,84,91,229,93,80,96,109,96,241,98,167,99,59,101,217,115,122,122,163,134,162,140,143,151,37,80,6,93,190,96,49,104,211,105,156,123,233,134,236,134,27,141,235,141,237,145,148,159,38,0,246,172,60,0,60,0,50,78,38,0,252,172,60,0,60,0,42,0,225,91,8,98,156,103,220,116,209,121,211,131,135,138,178,138,232,141,78,144,75,147,70,152,137,79,29,88,37,89,56,89,190,100,19,115,30,122,160,122,76,135,249,136,29,142,153,146,13,154,38,0,253,172,60,0,60,0,42,0,211,94,232,105,255,133,237,144,1,105,104,118,169,142,13,151,185,151,38,0,0,173,60,0,60,0,42,0,160,81,152,91,236,91,99,97,250,104,62,107,76,112,47,116,216,116,161,123,80,127,197,131,192,137,171,140,220,149,40,153,49,78,171,109,31,114,229,118,124,121,190,122,102,123,176,125,40,143,39,147,117,148,218,150,116,152,214,154,27,158,38,0,4,173,60,0,60,0,42,0,46,82,93,96,236,98,2,144,120,79,29,104,72,123,82,128,250,154,48,157,38,0,17,173,60,0,60,0,42,0,138,79,73,81,33,83,217,88,227,94,224,102,56,109,154,112,194,114,214,115,80,123,241,128,91,148,71,96,68,104,70,104,12,114,119,115,250,120,86,125,138,126,42,131,134,138,145,138,38,0,24,173,60,0,60,0,42,0,102,83,155,99,107,127,188,84,2,99,99,127,127,138,38,0,52,173,60,0,60,0,42,0,86,78,128,80,74,88,222,88,42,96,39,97,208,98,208,105,65,155,191,90,229,94,96,96,112,116,157,116,175,132,88,137,38,0,53,173,60,0,60,0,152,153,38,0,73,173,60,0,60,0,42,0,143,91,24,125,177,128,95,143,100,109,229,137,7,138,142,149,38,0,80,173,60,0,60,0,42,0,164,78,209,80,172,84,172,85,12,91,160,93,231,93,42,101,78,101,33,104,75,106,225,114,142,118,239,119,94,125,249,127,160,129,78,133,223,134,3,143,78,143,202,144,3,153,85,154,171,155,124,79,4,86,16,86,109,86,153,86,227,89,141,97,159,100,72,102,158,102,183,105,253,120,150,122,171,141,123,142,120,146,185,154,65,157,105,159,38,0,108,173,60,0,60,0,42,0,24,78,69,78,93,78,199,78,241,79,119,81,254,82,64,83,227,83,229,83,142,84,20,86,117,87,162,87,199,91,135,93,208,94,252,97,216,98,81,101,184,103,233,103,203,105,80,107,198,107,236,107,66,108,157,110,120,112,215,114,150,115,3,116,191,119,233,119,118,122,127,125,9,128,252,129,5,130,10,130,223,130,98,136,51,139,252,140,192,142,17,144,177,144,100,146,182,146,210,153,69,154,233,156,215,157,156,159,73,79,93,79,197,79,180,80,147,81,172,82,54,83,185,83,244,83,120,87,228,89,190,90,215,90,104,92,163,92,64,95,53,98,99,98,68,99,6,100,115,100,43,102,152,105,26,111,134,116,12,117,154,117,192,117,111,118,155,122,182,122,221,123,215,124,202,128,159,132,175,134,216,136,175,137,108,138,88,144,230,145,221,151,237,151,238,151,182,152,200,153,46,155,199,157,28,158,38,0,109,173,60,0,60,0,42,0,11,87,64,92,202,131,160,151,171,151,180,158,10,83,172,99,252,141,175,158,38,0,112,173,60,0,60,0,42,0,27,84,152,122,164,127,217,136,205,142,225,144,67,99,126,104,184,118,38,0,116,173,60,0,60,0,42,0,0,88,72,92,152,99,159,122,20,80,27,93,200,109,88,138,38,0,129,173,60,0,60,0,42,0,174,91,19,95,121,122,174,122,142,130,172,142,179,142,38,0,140,173,60,0,60,0,42,0,38,80,56,82,248,82,119,83,8,87,243,98,114,99,10,107,195,109,55,119,204,82,211,96,236,104,96,119,163,125,55,135,38,0,144,173,60,0,60,0,42,0,165,83,87,115,104,133,118,142,213,149,38,0,164,173,60,0,60,0,42,0,58,103,195,106,112,111,109,138,204,142,75,153,121,79,224,81,130,82,49,83,146,97,133,100,59,106,63,108,11,124,98,126,234,141,224,149,61,153,130,158,38,0,192,173,60,0,60,0,42,0,119,102,120,107,180,140,60,155,38,0,220,173,60,0,60,0,42,0,235,83,45,87,78,89,198,99,251,105,234,115,69,120,186,122,197,122,254,124,117,132,143,137,115,141,53,144,168,149,50,82,226,90,0,91,203,93,140,102,79,105,27,106,89,111,125,119,250,124,108,134,111,134,236,141,189,144,218,149,13,152,151,153,38,0,224,173,60,0,60,0,42,0,251,82,71,87,71,117,96,123,204,131,30,146,247,86,143,158,38,0,228,173,60,0,60,0,88,106,38,0,249,173,60,0,60,0,42,0,75,81,75,82,135,82,31,98,216,104,117,105,153,150,159,78,5,92,80,92,196,144,38,0,252,173,60,0,60,0,42,0,197,80,164,82,228,82,195,97,164,101,57,104,255,105,126,116,75,123,185,130,235,131,178,137,57,139,209,143,73,153,122,83,170,83,144,88,249,93,209,94,12,111,212,137,223,141,255,145,115,151,38,0,8,174,60,0,60,0,42,0,202,78,151,89,210,100,17,102,142,106,52,116,129,121,189,121,169,130,126,136,127,136,95,137,38,147,43,85,100,86,148,93,18,123,197,158,38,0,9,174,60,0,60,0,42,0,11,79,202,83,37,96,113,98,114,108,26,125,102,125,62,87,140,92,128,118,15,121,8,123,168,130,38,0,13,174,60,0,60,0,42,0,152,78,98,81,220,119,175,128,153,78,145,107,38,0,48,174,60,0,60,0,42,0,1,79,14,79,118,81,128,81,220,85,104,86,59,87,250,87,252,87,20,89,71,89,147,89,196,91,144,92,14,93,241,93,126,94,204,95,128,98,215,101,227,101,30,103,31,103,94,103,203,104,196,104,95,106,58,107,35,108,125,108,130,108,199,109,152,115,38,116,42,116,130,116,163,116,120,117,127,117,129,120,239,120,65,121,71,121,72,121,122,121,149,123,0,125,186,125,136,127,6,128,45,128,140,128,24,138,79,139,72,140,119,141,33,147,36,147,226,152,81,153,14,154,15,154,101,154,146,158,219,80,94,82,141,88,122,92,139,94,3,95,238,95,45,97,142,99,50,101,194,101,163,102,193,102,202,104,103,107,129,112,9,115,168,121,165,125,166,125,135,127,181,128,170,130,176,130,4,134,65,134,29,135,227,135,137,137,172,137,194,141,145,150,14,152,16,155,45,156,214,158,38,0,52,174,60,0,60,0,202,125,38,0,56,174,60,0,60,0,42,0,118,79,9,84,238,98,84,104,222,89,227,134,38,0,64,174,60,0,60,0,209,145,38,0,125,176,60,0,60,0,171,85,38,0,152,176,60,0,60,0,42,0,58,81,28,90,230,97,207,98,255,98,163,144,16,99,42,99,155,104,229,124,239,124,38,0,153,176,60,0,60,0,254,138,38,0,156,176,60,0,60,0,42,0,150,102,86,113,227,150,68,80,87,113,103,141,42,153,38,0,160,176,60,0,60,0,42,0,79,99,122,99,38,0,168,176,60,0,60,0,42,0,87,83,143,103,96,105,115,110,55,117,131,85,223,103,38,0,169,176,60,0,60,0,42,0,13,125,114,136,38,0,173,176,60,0,60,0,42,0,202,86,24,90,233,102,38,0,180,176,60,0,60,0,42,0,67,78,103,81,72,89,240,103,16,128,2,83,118,89,45,91,250,143,16,159,38,0,64,177,60,0,60,0,115,89,38,0,65,177,60,0,60,0,196,96,38,0,68,177,60,0,60,0,42,0,116,94,154,100,202,121,190,120,38,0,80,177,60,0,60,0,42,0,245,95,108,96,200,98,123,99,38,0,85,177,60,0,60,0,42,0,231,91,215,91,94,79,28,81,128,86,216,111,38,0,120,177,60,0,60,0,42,0,170,82,116,89,41,95,18,96,89,116,209,153,118,84,101,91,241,92,49,115,47,123,209,129,38,0,141,177,60,0,60,0,42,0,195,111,191,129,178,143,2,81,101,86,96,122,178,145,38,0,204,177,60,0,60,0,42,0,241,96,102,129,18,153,38,0,232,177,60,0,60,0,42,0,63,92,203,90,50,91,214,109,224,120,202,136,3,148,38,0,4,178,60,0,60,0,42,0,66,85,40,128,38,0,8,178,60,0,60,0,233,90,38,0,12,178,60,0,60,0,42,0,37,138,54,84,173,128,38,0,116,178,60,0,60,0,42,0,123,103,16,125,248,95,117,151,38,0,117,178,60,0,60,0,68,136,38,0,165,178,60,0,60,0,253,128,38,0,200,178,60,0,60,0,42,0,60,92,229,108,98,84,41,96,197,103,98,121,176,121,169,129,38,0,201,178,60,0,60,0,42,0,63,83,186,110,53,102,177,102,38,0,228,178,60,0,60,0,42,0,26,89,54,131,57,114,38,0,232,178,60,0,60,0,42,0,57,78,182,78,70,79,174,85,24,87,199,88,86,95,183,101,230,101,128,106,181,107,77,110,237,119,239,122,30,124,222,125,203,134,146,136,50,145,91,147,113,97,197,98,52,105,25,111,73,118,17,128,198,128,118,129,17,135,38,0,236,178,60,0,60,0,42,0,187,100,190,111,122,115,184,117,84,144,178,89,27,96,229,149,124,151,195,151,38,0,244,178,60,0,60,0,42,0,86,85,77,87,186,97,212,100,199,102,225,109,91,110,109,111,185,111,240,117,67,128,189,129,65,133,131,137,199,138,90,139,31,147,11,81,87,85,73,86,176,88,220,88,239,107,171,121,78,127,157,133,239,144,238,158,245,158,38,0,245,178,60,0,60,0,42,0,147,108,83,117,84,123,15,142,93,144,38,0,249,178,60,0,60,0,42,0,16,85,2,88,88,88,98,94,7,98,158,100,224,104,118,117,214,124,179,135,232,158,24,80,59,81,90,81,42,100,148,106,143,110,109,116,171,116,160,119,17,121,247,135,96,137,156,139,220,147,58,148,51,153,57,153,38,0,0,179,60,0,60,0,42,0,227,78,136,87,110,87,39,89,13,92,177,92,54,94,133,95,52,98,225,100,179,115,250,129,139,136,184,140,138,150,219,158,19,81,223,97,242,101,79,108,147,120,19,148,38,0,1,179,60,0,60,0,133,91,38,0,85,179,60,0,60,0,42,0,183,95,179,96,38,0,196,179,60,0,60,0,42,0,18,80,0,82,48,82,22,87,53,88,87,88,14,92,96,92,246,92,139,93,166,94,146,95,188,96,17,99,137,99,23,100,67,104,249,104,194,106,216,109,33,110,212,110,228,111,254,113,220,118,121,119,177,121,59,122,4,132,169,137,237,140,243,141,72,142,3,144,20,144,83,144,253,144,77,147,118,150,220,151,232,83,212,88,34,95,201,95,70,97,143,99,47,100,227,100,174,106,46,109,130,109,12,122,223,131,116,145,205,149,128,151,177,151,85,153,23,159,38,0,197,179,60,0,60,0,42,0,210,107,6,112,88,114,162,114,104,115,99,119,191,121,228,123,155,126,128,139,221,106,247,158,38,0,200,179,60,0,60,0,42,0,169,88,199,96,102,101,253,101,190,102,140,108,30,113,201,113,90,140,19,152,52,95,97,111,137,142,38,0,204,179,60,0,60,0,42,0,109,78,129,122,132,84,23,88,38,0,217,179,60,0,60,0,42,0,221,78,172,81,205,81,213,82,12,84,167,97,113,103,80,104,223,104,30,109,124,111,188,117,179,119,229,122,244,128,99,132,133,146,151,79,238,80,195,84,140,87,210,92,100,95,35,103,102,106,183,109,95,130,243,130,60,131,107,133,64,135,44,147,151,155,38,0,80,180,60,0,60,0,42,0,92,81,151,101,92,103,147,103,216,117,199,122,115,131,70,140,23,144,45,152,150,98,129,101,154,128,48,129,170,134,57,136,97,150,38,0,84,180,60,0,60,0,42,0,111,92,192,129,154,130,65,144,111,144,13,146,128,122,205,143,38,0,88,180,60,0,60,0,103,78,38,0,221,180,60,0,60,0,151,95,38,0,241,180,60,0,60,0,42,0,157,93,89,106,200,113,123,118,73,123,228,133,4,139,39,145,48,154,243,81,177,88,213,110,244,120,80,124,34,126,163,135,25,148,38,0,124,183,60,0,60,0,42,0,135,85,246,97,105,118,133,127,63,134,186,135,248,136,143,144,46,80,201,86,234,102,48,118,34,120,221,129,124,148,62,154,88,154,38,0,125,183,60,0,60,0,42,0,27,109,217,112,222,115,97,125,61,132,106,145,241,153,224,85,150,114,38,0,128,183,60,0,60,0,42,0,130,78,117,83,4,107,18,107,62,112,27,114,45,134,30,158,62,91,113,94,20,101,83,112,116,137,126,148,204,149,38,0,132,183,60,0,60,0,42,0,76,82,163,143,210,87,162,143,38,0,140,183,60,0,60,0,42,0,80,93,229,100,44,101,22,107,235,111,67,124,156,126,205,133,100,137,189,137,106,90,207,96,38,0,141,183,60,0,60,0,42,0,201,98,216,129,31,136,94,148,38,0,145,183,60,0,60,0,42,0,202,94,23,103,106,109,252,114,5,116,111,116,130,135,222,144,148,105,96,120,2,122,168,131,11,135,172,149,38,0,152,183,60,0,60,0,42,0,134,79,13,93,160,95,10,132,246,109,11,154,38,0,173,183,60,0,60,0,183,81,38,0,181,183,60,0,60,0,42,0,160,99,101,117,103,117,38,0,201,183,60,0,60,0,42,0,174,78,6,80,105,81,201,81,129,104,17,106,174,124,177,124,231,124,111,130,210,138,27,143,207,145,168,85,162,96,11,105,188,109,9,142,78,155,38,0,36,184,60,0,60,0,42,0,182,79,55,81,245,82,66,84,236,94,110,97,62,98,197,101,218,106,254,111,42,121,220,133,35,136,173,149,98,154,106,154,151,158,206,158,34,81,178,83,51,85,160,104,88,118,242,124,130,129,218,129,33,136,140,144,98,148,38,0,37,184,60,0,60,0,42,0,155,82,198,102,119,107,29,112,43,121,98,143,66,151,10,101,223,106,234,106,103,118,99,143,72,145,38,0,40,184,60,0,60,0,42,0,144,97,0,98,35,101,35,111,73,113,137,116,244,125,111,128,238,132,38,143,35,144,74,147,76,91,93,105,69,110,224,129,200,147,10,156,49,156,38,0,44,184,60,0,60,0,42,0,189,81,23,82,163,82,12,109,200,112,194,136,18,99,105,99,178,152,38,0,52,184,60,0,60,0,42,0,201,94,130,101,174,107,194,111,62,124,105,89,50,112,207,120,38,0,53,184,60,0,60,0,42,0,117,115,144,142,35,155,38,0,57,184,60,0,60,0,42,0,228,78,54,79,249,86,186,92,186,93,28,96,178,115,45,123,154,127,206,127,70,128,30,144,52,146,246,150,72,151,24,152,97,159,230,83,100,84,200,89,173,92,36,102,30,107,224,108,226,121,211,130,201,134,232,142,18,157,119,158,38,0,64,184,60,0,60,0,42,0,139,79,167,111,174,121,180,145,183,150,184,150,103,156,38,0,92,184,60,0,60,0,42,0,222,82,136,100,196,100,211,106,94,111,24,112,16,114,231,118,1,128,6,134,92,134,239,141,5,143,50,151,111,155,250,157,117,158,218,88,247,110,136,115,70,118,130,122,106,130,107,130,100,143,42,148,106,148,113,152,215,154,120,156,21,158,38,0,93,184,60,0,60,0,42,0,140,120,127,121,160,125,201,131,4,147,127,158,147,158,37,87,84,95,229,109,9,111,15,124,70,143,4,154,38,0,96,184,60,0,60,0,214,138,38,0,113,184,60,0,60,0,42,0,223,88,4,95,39,103,39,112,207,116,96,124,126,128,49,81,15,101,232,102,49,121,34,134,180,150,142,159,38,0,176,184,60,0,60,0,42,0,33,81,40,112,98,114,202,120,194,140,218,140,244,140,247,150,2,101,12,121,39,121,95,124,135,126,77,127,18,128,126,133,132,138,121,145,66,152,38,0,204,184,60,0,60,0,42,0,134,78,218,80,238,91,214,94,153,101,206,113,66,118,173,119,74,128,252,132,124,144,39,155,57,86,253,90,169,100,184,102,102,111,96,115,90,126,139,129,170,145,16,148,194,152,201,152,38,0,225,184,60,0,60,0,42,0,141,159,146,159,38,0,232,184,60,0,60,0,42,0,216,88,65,90,98,92,19,106,218,109,15,111,59,118,47,125,55,126,30,133,56,137,228,147,75,150,194,80,13,86,129,93,122,97,44,128,187,135,207,154,38,0,88,185,60,0,60,0,42,0,137,82,210,101,243,103,180,105,65,109,156,110,15,112,9,116,96,116,89,117,36,118,107,120,44,139,94,152,74,106,50,126,141,126,91,144,185,157,38,0,89,185,60,0,60,0,42,0,109,81,46,98,120,150,224,82,38,0,92,185,60,0,60,0,42,0,150,79,43,80,25,93,234,109,184,125,42,143,132,99,38,0,96,185,60,0,60,0,42,0,139,95,68,97,23,104,66,93,167,110,38,0,109,185,60,0,60,0,42,0,134,150,67,118,191,122,38,0,117,185,60,0,60,0,42,0,210,82,139,128,208,108,38,0,132,185,60,0,60,0,42,0,220,81,219,81,233,94,159,111,38,0,137,185,60,0,60,0,42,0,204,81,94,105,28,122,190,125,241,131,117,150,48,80,6,133,38,0,172,185,60,0,60,0,42,0,218,79,41,82,152,83,15,84,14,85,101,92,167,96,78,103,168,104,108,109,129,114,248,114,6,116,131,116,226,117,108,124,121,127,184,127,137,131,207,136,225,136,204,145,208,145,226,150,201,155,208,79,122,82,233,84,224,90,150,109,19,111,187,121,133,131,10,135,173,135,141,140,144,144,81,155,208,158,38,0,176,185,60,0,60,0,42,0,29,84,126,111,208,113,152,116,250,133,170,142,163,150,87,156,159,158,153,93,139,96,92,115,247,120,166,124,188,124,87,126,153,142,84,143,48,145,251,147,78,154,38,0,188,185,60,0,60,0,42,0,151,103,203,109,51,116,232,129,22,151,243,117,38,0,189,185,60,0,60,0,42,0,44,120,203,122,32,123,146,124,166,92,38,0,200,185,60,0,60,0,42,0,105,100,106,116,242,117,188,120,232,120,172,153,84,155,187,158,152,82,189,90,158,135,199,135,189,158,191,158,38,0,201,185,60,0,60,0,42,0,222,91,85,94,32,111,156,129,171,131,136,144,153,119,204,147,38,0,204,185,60,0,60,0,42,0,7,78,77,83,41,90,210,93,78,95,98,97,61,99,105,102,252,102,255,110,43,111,99,112,158,119,44,132,19,133,59,136,19,143,69,153,59,156,129,88,218,90,84,94,53,126,62,139,99,142,203,147,221,147,24,155,38,0,208,185,60,0,60,0,42,0,28,85,185,98,43,103,171,108,9,131,106,137,122,151,21,94,227,121,38,0,221,185,60,0,60,0,42,0,161,78,132,89,216,95,217,95,27,103,178,125,84,127,146,130,43,131,189,131,30,143,153,144,216,96,82,108,45,111,190,131,210,135,77,155,38,0,228,185,60,0,60,0,42,0,203,87,185,89,146,90,208,91,39,102,154,103,133,104,207,107,100,113,117,127,183,140,227,140,129,144,69,155,70,84,115,105,172,108,171,115,27,119,250,130,147,131,118,145,9,151,38,0,229,185,60,0,60,0,42,0,8,129,138,140,76,150,64,154,165,158,9,129,131,140,152,140,38,0,249,185,60,0,60,0,42,0,95,91,19,108,27,115,242,118,223,118,12,132,26,81,13,117,63,117,123,134,38,0,113,186,60,0,60,0,42,0,170,81,147,137,78,94,248,124,38,0,116,186,60,0,60,0,42,0,77,81,149,81,201,82,201,104,148,108,4,119,32,119,191,125,236,125,98,151,181,158,219,79,78,110,198,124,220,125,170,158,38,0,120,186,60,0,60,0,42,0,197,110,17,133,254,123,74,136,38,0,133,186,60,0,60,0,42,0,165,81,13,84,125,84,14,102,157,102,39,105,159,110,191,118,145,119,23,131,194,132,159,135,105,145,152,146,244,156,58,109,38,0,140,186,60,0,60,0,130,136,38,0,168,186,60,0,60,0,42,0,174,79,146,81,223,82,198,89,61,94,85,97,120,100,121,100,174,102,208,103,33,106,205,107,219,107,95,114,97,114,65,116,56,119,219,119,23,128,188,130,5,131,0,139,40,139,140,140,148,79,229,89,162,90,235,90,72,96,196,101,131,118,10,119,141,124,226,124,4,128,101,135,202,135,126,146,230,154,38,0,169,186,60,0,60,0,42,0,40,103,144,108,103,114,238,118,102,119,70,122,169,157,233,81,220,130,38,0,176,186,60,0,60,0,42,0,127,107,146,108,38,0,189,186,60,0,60,0,42,0,34,89,38,103,153,132,106,94,222,97,218,102,149,110,219,111,162,119,199,119,104,130,250,150,15,158,38,0,24,187,60,0,60,0,42,0,111,83,147,88,153,89,223,94,207,99,52,102,115,103,58,110,43,115,215,122,215,130,40,147,252,109,7,119,208,133,147,140,38,0,52,187,60,0,60,0,42,0,217,82,235,93,174,97,203,97,10,98,199,98,171,100,224,101,89,105,102,107,203,107,33,113,247,115,93,117,70,126,30,130,2,131,106,133,163,138,191,140,39,151,97,157,27,81,56,86,225,94,180,129,22,154,38,0,53,187,60,0,60,0,42,0,168,88,216,158,63,86,38,0,56,187,60,0,60,0,42,0,17,80,14,82,59,84,79,85,135,101,118,108,10,125,11,125,94,128,138,134,128,149,239,150,1,83,151,96,227,97,134,98,107,99,134,112,138,116,38,0,60,187,60,0,60,0,42,0,255,82,149,108,105,114,38,0,248,187,60,0,60,0,42,0,115,84,154,90,62,92,75,93,76,95,174,95,42,103,182,104,99,105,60,110,68,110,9,119,115,124,142,127,135,133,14,139,247,143,97,151,244,158,185,78,19,90,132,90,186,90,37,95,45,95,73,101,48,112,124,115,220,124,59,126,255,130,60,134,139,158,38,0,252,187,60,0,60,0,42,0,183,92,182,96,13,97,171,97,79,101,251,101,252,101,17,108,239,108,159,115,201,115,225,125,148,149,222,95,223,95,139,102,99,110,205,125,96,127,224,130,169,149,53,156,253,158,38,0,0,188,60,0,60,0,42,0,198,91,28,135,16,139,18,106,245,110,38,0,21,188,60,0,60,0,42,0,93,82,90,83,205,98,15,100,178,100,52,103,56,106,202,108,192,115,158,116,148,123,149,124,27,126,138,129,54,130,132,133,235,143,249,150,193,153,179,78,2,107,84,114,155,147,238,153,198,154,38,0,24,188,60,0,60,0,42,0,52,79,74,83,205,83,219,83,204,98,44,100,0,101,145,101,195,105,238,108,88,111,237,115,84,117,34,118,228,118,252,118,208,120,251,120,44,121,70,125,44,130,224,135,212,143,18,152,239,152,187,90,115,98,43,100,61,101,12,103,214,128,140,135,22,152,38,0,28,188,60,0,60,0,42,0,195,82,212,98,165,100,36,110,81,111,124,118,203,141,177,145,98,146,238,154,67,155,241,84,97,109,22,129,56,146,83,157,38,0,41,188,60,0,60,0,42,0,35,80,141,80,74,87,168,89,40,92,71,94,119,95,63,98,62,101,185,101,193,101,9,102,139,103,156,105,194,110,197,120,33,125,170,128,128,129,43,130,179,130,161,132,140,134,42,138,23,139,166,144,50,150,144,159,255,78,150,83,107,94,172,95,18,100,202,101,134,104,83,114,61,130,131,135,138,147,227,154,116,155,38,0,48,188,60,0,60,0,42,0,13,80,243,79,249,87,152,95,220,98,146,99,111,103,67,110,25,113,195,118,204,128,218,128,244,136,245,136,25,137,224,140,41,143,77,145,106,150,79,87,111,87,82,98,50,116,211,132,38,0,49,188,60,0,60,0,42,0,47,79,112,79,27,94,207,103,34,104,125,118,126,118,68,155,168,124,38,0,136,188,60,0,60,0,42,0,97,94,10,106,105,113,212,113,106,117,65,126,67,133,233,133,220,152,89,126,251,127,176,129,41,134,162,136,38,0,140,188,60,0,60,0,42,0,16,79,79,123,112,127,165,149,67,106,120,127,38,0,148,188,60,0,60,0,42,0,225,81,6,94,181,104,62,108,78,108,219,108,175,114,196,123,3,131,53,123,9,138,191,152,38,0,149,188,60,0,60,0,42,0,213,108,58,116,38,0,189,188,60,0,60,0,42,0,251,80,136,82,193,88,216,100,151,106,167,116,86,118,167,120,23,134,226,149,57,151,215,100,19,117,136,117,94,137,255,157,10,159,38,0,192,188,60,0,60,0,42,0,94,83,1,95,138,139,168,143,175,143,138,144,237,95,131,98,105,124,174,143,65,129,198,140,226,153,191,154,24,157,38,0,196,188,60,0,60,0,42,0,37,82,165,119,73,156,8,159,70,95,233,157,38,0,209,188,60,0,60,0,42,0,25,78,2,80,117,81,91,92,119,94,30,102,58,102,196,103,197,104,179,112,1,117,197,117,201,121,221,122,39,143,32,153,8,154,38,78,64,88,99,125,62,127,248,143,53,146,242,146,124,146,38,0,244,188,60,0,60,0,42,0,221,79,33,88,49,88,246,91,110,102,101,107,17,109,122,110,125,111,228,115,43,117,233,131,220,136,19,137,92,139,20,143,204,79,217,118,32,124,70,132,76,151,7,157,252,158,38,0,245,188,60,0,60,0,42,0,15,79,213,80,16,83,92,83,147,91,169,95,13,103,143,121,121,129,47,131,20,133,7,137,134,137,57,143,59,143,165,153,18,156,163,88,94,94,81,98,238,111,153,123,212,131,96,135,110,135,105,157,38,0,248,188,60,0,60,0,44,103,38,0,252,188,60,0,60,0,118,78,38,0,9,189,60,0,60,0,42,0,248,79,73,89,1,92,239,92,240,92,103,99,210,104,253,112,162,113,43,116,43,126,236,132,2,135,34,144,210,146,243,156,48,78,6,89,247,123,152,125,246,131,12,157,38,0,128,189,60,0,60,0,42,0,13,78,216,78,239,79,133,80,86,82,111,82,38,84,144,84,224,87,43,89,102,90,90,91,117,91,204,91,156,94,118,98,119,101,167,101,110,109,165,110,54,114,38,123,63,124,54,127,80,129,81,129,154,129,64,130,153,130,169,131,3,138,160,140,230,140,251,140,116,141,186,141,232,144,220,145,28,150,68,150,217,153,231,156,198,78,216,79,141,90,148,98,202,98,138,99,116,104,145,105,170,109,158,115,84,121,95,123,88,127,102,127,213,128,163,130,251,130,0,133,168,134,9,135,157,136,210,136,215,141,7,146,43,152,146,155,169,158,38,0,129,189,60,0,60,0,23,83,38,0,132,189,60,0,60,0,42,0,6,82,41,84,116,86,179,88,84,89,110,89,255,95,164,97,110,98,16,102,126,108,26,113,198,118,137,124,222,124,27,125,172,130,193,140,240,150,83,79,76,87,9,94,140,103,251,104,252,104,27,108,83,110,198,111,135,114,90,117,15,120,40,123,166,128,185,129,97,133,82,143,250,158,34,159,38,0,136,189,60,0,60,0,42,0,91,79,23,95,127,95,194,98,170,92,83,121,49,125,116,130,0,131,205,151,244,154,251,158,38,0,149,189,60,0,60,0,42,0,41,93,11,103,218,104,124,120,67,126,108,157,11,88,48,111,5,155,38,0,68,190,60,0,60,0,42,0,21,78,153,80,21,83,42,83,81,83,131,89,98,90,135,94,178,96,138,97,73,98,121,98,144,101,135,103,167,105,212,107,214,107,215,107,216,107,184,108,53,116,250,117,18,120,145,120,213,121,216,121,131,124,203,125,225,127,165,128,62,129,194,129,242,131,26,135,232,136,185,138,108,139,187,140,25,145,94,151,219,152,59,159,243,78,254,79,85,82,46,87,228,87,163,89,65,92,179,94,177,96,208,104,17,105,152,108,221,109,224,109,222,111,201,114,210,114,222,117,249,117,101,119,85,121,230,123,21,125,134,127,83,129,152,130,190,130,6,132,214,132,141,134,148,140,20,141,97,143,179,144,235,144,159,149,116,150,15,151,180,151,17,154,27,154,192,154,25,159,38,0,72,190,60,0,60,0,42,0,172,86,42,91,108,95,140,101,179,106,175,107,92,109,241,111,21,112,93,114,173,115,167,140,211,140,59,152,16,81,239,100,201,119,125,126,207,129,11,134,115,140,160,144,76,148,38,151,112,152,2,155,34,155,38,0,89,190,60,0,60,0,42,0,145,97,55,108,88,128,1,154,176,81,237,81,244,81,9,90,38,0,172,192,60,0,60,0,42,0,77,78,139,78,155,78,213,78,58,79,60,79,127,79,223,79,255,80,242,83,248,83,6,85,227,85,219,86,235,88,98,89,17,90,235,91,250,91,4,92,243,93,43,94,153,95,29,96,104,99,156,101,175,101,246,103,251,103,173,104,123,107,153,108,215,108,35,110,9,112,69,115,2,120,62,121,64,121,96,121,193,121,233,123,23,125,114,125,134,128,13,130,142,131,209,132,199,134,223,136,80,138,94,138,29,139,220,140,102,141,173,143,170,144,252,152,223,153,157,158,158,80,90,82,120,83,139,84,210,89,66,105,173,105,92,108,231,117,182,118,226,122,37,123,55,127,33,135,151,137,219,153,102,155,202,155,36,156,38,0,173,192,60,0,60,0,42,0,74,82,20,103,202,105,13,114,180,132,96,148,38,0,176,192,60,0,60,0,42,0,152,80,42,82,113,92,99,101,85,108,202,115,35,117,157,117,151,123,156,132,120,145,48,151,119,82,205,89,127,91,117,106,120,111,152,111,251,114,86,126,21,138,223,147,138,149,255,107,38,0,180,192,60,0,60,0,42,0,119,78,146,100,186,107,94,113,169,133,38,0,188,192,60,0,60,0,42,0,9,78,73,103,238,104,23,110,159,130,24,133,107,136,221,124,228,145,22,155,38,0,189,192,60,0,60,0,42,0,247,99,129,111,18,146,175,152,69,83,60,85,67,107,227,127,100,147,5,151,14,151,38,0,193,192,60,0,60,0,42,0,10,78,183,80,207,80,31,81,70,85,170,85,23,86,64,91,25,92,224,92,56,94,138,94,160,94,194,94,243,96,81,104,97,106,88,110,61,114,64,114,192,114,248,118,101,121,177,123,212,127,243,136,244,137,115,138,97,140,222,140,28,151,125,88,156,95,76,102,164,107,30,117,215,125,159,147,89,152,58,155,38,0,200,192,60,0,60,0,42,0,94,88,189,116,253,140,19,156,38,0,201,192,60,0,60,0,42,0,199,85,97,122,34,125,114,130,237,105,199,111,18,112,38,0,221,192,60,0,60,0,42,0,114,114,31,117,37,117,25,123,26,119,78,146,38,0,28,193,60,0,60,0,42,0,133,88,251,88,188,93,143,94,182,94,144,95,85,96,146,98,127,99,77,101,145,102,217,102,248,102,22,104,242,104,128,114,94,116,110,123,110,125,214,125,114,127,229,128,18,130,175,133,127,137,147,138,29,144,228,146,205,158,32,159,108,86,127,90,223,99,149,100,81,110,168,111,19,125,33,128,167,130,79,146,38,0,29,193,60,0,60,0,42,0,21,89,109,89,45,94,220,96,20,102,115,102,144,103,80,108,197,109,95,111,243,119,169,120,198,132,203,145,43,147,112,102,253,119,74,129,3,130,37,135,80,146,43,159,38,0,32,193,60,0,60,0,42,0,217,78,202,80,72,81,132,85,11,91,163,91,71,98,126,101,203,101,50,110,125,113,1,116,68,116,135,116,191,116,108,118,170,121,218,125,85,126,168,127,122,129,179,129,57,130,26,134,236,135,117,138,227,141,120,144,145,146,37,148,77,153,174,155,161,88,217,90,31,92,32,92,115,92,3,97,90,107,175,113,69,123,171,125,84,139,113,139,199,147,56,154,83,156,123,156,38,0,36,193,60,0,60,0,42,0,104,83,81,92,84,105,196,108,41,109,43,110,12,130,155,133,59,137,45,138,170,138,234,150,103,159,112,80,159,90,242,99,172,102,7,114,159,120,39,122,50,125,38,0,44,193,60,0,60,0,42,0,97,82,185,102,178,107,150,126,254,135,13,141,131,149,93,150,69,91,184,97,123,100,82,119,107,139,155,146,241,151,38,0,45,193,60,0,60,0,42,0,29,101,137,109,238,113,193,86,254,97,68,112,118,128,161,142,119,148,115,152,38,0,49,193,60,0,60,0,42,0,206,87,211,89,172,91,39,96,250,96,16,98,31,102,95,102,41,115,249,115,219,118,1,119,108,123,86,128,114,128,101,129,160,138,146,145,70,116,2,154,38,0,56,193,60,0,60,0,42,0,22,78,226,82,114,107,23,109,5,122,57,123,48,125,176,140,40,94,18,109,80,126,251,134,38,0,140,193,60,0,60,0,42,0,236,83,47,86,81,88,181,91,15,92,17,92,226,93,64,98,131,99,20,100,45,102,179,104,188,108,136,109,175,110,31,112,164,112,210,113,38,117,143,117,142,117,25,118,17,123,224,123,43,124,32,125,57,125,44,133,109,133,7,134,52,138,13,144,97,144,181,144,183,146,246,151,55,154,75,79,207,79,114,83,201,85,253,87,80,88,44,97,78,99,20,106,221,108,113,123,190,123,69,126,219,127,134,129,88,130,248,134,8,142,101,145,4,151,72,155,185,155,58,156,38,0,141,193,60,0,60,0,42,0,215,79,108,92,95,103,145,109,159,124,140,126,22,139,22,141,31,144,44,109,108,144,38,0,144,193,60,0,60,0,42,0,107,91,253,93,13,100,192,132,92,144,225,152,231,152,241,152,38,0,148,193,60,0,60,0,42,0,135,115,163,122,192,135,38,0,161,193,60,0,60,0,42,0,139,91,154,96,126,103,222,109,31,138,166,138,1,144,12,152,215,103,230,122,6,155,38,0,196,193,60,0,60,0,42,0,55,82,81,112,142,120,150,147,226,96,236,102,99,116,38,0,224,193,60,0,60,0,42,0,112,136,215,145,38,0,24,194,60,0,60,0,42,0,238,79,215,83,253,85,218,86,130,87,253,88,194,90,136,91,171,92,192,92,37,94,1,97,13,98,75,98,136,99,28,100,54,101,120,101,57,106,138,107,52,108,25,109,49,111,231,113,233,114,120,115,7,116,178,116,38,118,97,119,192,121,87,122,234,122,185,124,143,125,172,125,97,126,158,127,41,129,49,131,144,132,218,132,234,133,150,136,176,138,144,139,56,143,66,144,131,144,108,145,150,146,185,146,139,150,167,150,168,150,214,150,0,151,8,152,150,153,211,154,26,155,223,83,46,85,203,94,108,102,179,107,197,108,178,110,201,111,95,119,98,119,141,119,95,121,84,124,58,129,132,129,184,129,142,139,78,140,114,150,188,152,72,153,38,0,25,194,60,0,60,0,42,0,212,83,126,88,25,89,112,91,191,91,209,109,90,111,159,113,33,116,185,116,133,128,253,131,246,79,15,80,53,81,76,90,90,106,76,154,235,157,38,0,28,194,60,0,60,0,42,0,225,93,135,95,170,95,66,96,236,101,18,104,111,105,83,106,137,107,53,109,243,109,227,115,254,118,172,119,77,123,20,125,35,129,28,130,64,131,244,132,99,133,98,138,196,138,135,145,30,147,6,152,180,153,154,79,229,114,249,118,52,119,3,125,171,128,232,153,10,155,137,157,38,0,32,194,60,0,60,0,42,0,12,98,83,136,240,143,101,146,73,125,38,0,45,194,60,0,60,0,42,0,7,93,39,93,105,93,216,131,38,0,108,194,60,0,60,0,42,0,5,80,236,109,32,113,38,0,172,194,60,0,60,0,42,0,95,116,157,129,104,135,113,134,38,0,181,194,60,0,60,0,42,0,213,111,254,98,210,127,54,137,114,137,116,97,160,113,176,150,38,0,185,194,60,0,60,0,42,0,30,78,88,78,231,80,221,82,71,83,127,98,7,102,105,126,5,136,94,150,77,88,25,155,38,0,220,194,60,0,60,0,42,0,141,79,25,83,54,86,203,89,164,90,56,92,78,92,77,92,2,94,17,95,67,96,189,101,47,102,66,102,190,103,244,103,28,115,226,119,58,121,197,127,148,132,205,132,150,137,102,138,105,138,225,138,85,140,122,140,114,80,85,81,174,83,123,85,82,88,221,94,178,103,249,103,140,111,230,125,228,127,223,138,240,138,73,140,195,145,73,147,75,152,38,0,221,194,60,0,60,0,42,0,244,87,212,91,15,95,111,96,237,98,13,105,150,107,92,110,132,113,210,123,85,135,88,139,254,142,223,152,254,152,176,85,179,90,59,104,38,0,224,194,60,0,60,0,42,0,56,79,129,79,225,79,123,84,32,90,184,91,60,97,176,101,104,102,252,113,51,117,94,121,51,125,78,129,227,129,152,131,170,133,206,133,3,135,10,138,171,142,155,143,197,143,194,84,122,86,223,86,250,89,91,108,231,119,36,129,16,141,35,152,234,153,38,0,228,194,60,0,60,0,42,0,49,89,164,91,230,91,137,96,203,135,203,152,38,0,236,194,60,0,60,0,42,0,233,91,11,92,195,95,129,108,241,109,11,112,26,117,175,130,246,138,163,104,111,111,214,113,90,132,20,148,79,156,38,0,237,194,60,0,60,0,42,0,192,78,65,83,187,143,38,0,13,195,60,0,60,0,217,150,38,0,40,197,60,0,60,0,15,108,38,0,68,197,60,0,60,0,42,0,158,78,196,79,82,81,94,85,37,90,232,92,17,98,89,114,189,130,170,131,254,134,89,136,29,138,63,150,197,150,19,153,9,157,93,157,43,78,230,84,63,90,64,90,233,92,180,117,17,120,12,123,211,143,15,147,94,157,38,0,69,197,60,0,60,0,42,0,10,88,179,92,189,93,68,94,225,96,21,97,225,99,2,106,37,110,2,145,84,147,78,152,16,156,119,159,83,80,126,83,162,84,148,85,105,86,109,129,60,132,168,137,228,138,154,157,118,159,38,0,72,197,60,0,60,0,42,0,137,91,184,92,9,99,79,102,72,104,60,119,193,150,141,151,84,152,159,155,73,104,180,114,11,141,8,157,38,0,76,197,60,0,60,0,42,0,161,101,1,139,203,142,188,149,14,86,30,98,224,99,117,122,16,138,79,144,30,152,54,157,38,0,84,197,60,0,60,0,42,0,53,85,169,92,214,93,181,94,151,102,76,118,244,131,199,149,125,85,149,90,83,93,123,102,100,129,74,132,237,132,243,138,55,152,163,153,239,158,38,0,85,197,60,0,60,0,42,0,211,88,188,98,206,114,40,157,38,0,89,197,60,0,60,0,42,0,240,78,46,89,15,96,59,102,131,107,231,121,38,157,108,83,113,87,241,108,206,118,133,151,38,0,96,197,60,0,60,0,42,0,147,83,192,84,195,87,22,93,27,97,214,102,175,109,141,120,126,130,152,150,68,151,254,80,9,85,64,85,111,86,45,90,21,93,40,99,113,99,56,107,4,111,67,115,154,118,90,119,185,119,209,120,25,121,134,133,249,133,73,151,3,154,38,0,97,197,60,0,60,0,42,0,132,83,124,98,150,99,178,109,10,126,75,129,77,152,93,84,57,98,36,100,40,150,38,0,117,197,60,0,60,0,42,0,251,106,76,127,175,157,26,158,182,86,200,90,67,127,234,157,38,0,124,197,60,0,60,0,42,0,95,78,59,80,182,81,28,89,249,96,246,99,48,105,58,114,54,128,206,145,220,87,38,0,125,197,60,0,60,0,42,0,49,95,4,125,229,130,111,132,187,132,229,133,141,142,26,114,180,121,219,123,101,124,112,148,47,156,184,157,160,159,38,0,145,197,60,0,60,0,42,0,111,79,228,88,67,91,89,96,218,99,24,101,109,101,152,102,74,105,35,106,11,109,1,112,108,113,210,117,13,118,179,121,112,122,138,127,68,137,147,139,192,145,125,150,10,153,137,95,62,111,60,112,202,112,98,118,59,119,24,134,48,143,114,148,186,152,100,154,38,0,180,197,60,0,60,0,42,0,4,87,161,95,188,101,1,111,0,118,166,121,158,138,173,153,90,155,108,159,9,87,84,101,228,109,235,152,38,0,181,197,60,0,60,0,42,0,4,81,182,97,145,98,141,106,198,129,118,126,38,0,184,197,60,0,60,0,42,0,67,80,48,88,102,95,9,113,0,138,250,138,191,80,61,83,227,90,158,139,34,145,52,159,57,159,38,0,188,197,60,0,60,0,42,0,124,91,22,134,236,129,38,0,196,197,60,0,60,0,42,0,250,79,60,81,180,86,68,89,169,99,249,109,38,93,127,94,238,102,104,127,131,145,185,149,38,0,197,197,60,0,60,0,42,0,170,93,109,105,171,93,52,145,38,0,208,197,60,0,60,0,42,0,90,96,192,102,38,0,212,197,60,0,60,0,134,81,38,0,236,197,60,0,60,0,42,0,136,78,89,79,130,89,95,107,93,108,181,116,22,121,7,130,69,130,57,131,63,143,93,143,24,153,1,130,38,0,237,197,60,0,60,0,42,0,166,78,223,87,121,95,19,102,171,117,121,126,111,139,6,144,91,154,167,93,204,97,226,109,190,149,38,0,240,197,60,0,60,0,42,0,165,86,39,88,248,89,31,90,180,91,246,94,80,99,59,99,61,105,135,108,191,108,142,109,147,109,245,109,20,111,223,112,54,113,89,113,195,113,213,113,79,120,111,120,117,123,227,125,47,126,77,136,223,142,91,146,246,156,87,81,230,86,207,87,63,91,129,96,190,99,227,102,222,106,55,110,217,129,154,131,53,135,21,136,140,139,240,157,38,0,244,197,60,0,60,0,42,0,133,96,133,109,177,113,177,149,78,86,38,0,252,197,60,0,60,0,42,0,173,83,211,103,142,112,48,113,48,116,118,130,210,130,187,149,229,154,125,158,137,81,105,88,213,97,74,98,191,106,182,106,78,112,105,112,197,145,92,153,88,155,246,158,38,0,253,197,60,0,60,0,42,0,196,102,193,113,73,132,197,102,128,113,23,114,104,151,38,0,1,198,60,0,60,0,42,0,75,88,184,93,113,95,32,102,142,102,121,105,174,105,56,108,243,108,54,110,65,111,218,111,27,112,47,112,80,113,223,113,112,115,91,116,212,116,200,118,78,122,147,126,241,130,96,138,206,143,72,147,25,151,143,84,52,91,48,91,103,109,244,111,109,118,164,120,8,126,17,136,15,141,226,144,250,151,38,0,8,198,60,0,60,0,42,0,66,78,42,80,8,82,225,83,243,102,109,108,202,111,10,115,127,119,98,122,174,130,221,133,2,134,212,136,99,138,125,139,107,140,179,146,19,151,16,152,200,86,219,90,253,98,156,99,152,103,105,115,104,119,150,119,68,126,243,127,197,130,74,133,75,133,137,133,139,134,58,135,226,155,214,157,145,158,38,0,36,198,60,0,60,0,42,0,148,78,13,79,201,79,178,80,72,83,62,84,51,84,218,85,98,88,186,88,103,89,27,90,228,91,159,96,202,97,86,101,255,101,100,102,167,104,90,108,179,111,207,112,172,113,82,115,125,123,8,135,164,138,50,156,7,159,245,78,227,79,20,85,247,85,65,86,44,87,170,90,239,90,228,95,96,97,66,99,89,108,185,122,113,128,35,131,86,137,55,139,195,143,213,143,104,144,202,147,214,147,169,150,65,154,47,159,38,0,37,198,60,0,60,0,42,0,75,92,131,108,68,115,137,115,58,146,38,0,40,198,60,0,60,0,42,0,171,110,101,116,31,118,105,122,21,126,10,134,188,90,77,97,55,102,51,108,133,113,128,133,64,143,158,145,222,151,66,153,46,156,38,0,44,198,60,0,60,0,42,0,64,81,226,85,131,129,38,0,57,198,60,0,60,0,42,0,197,88,193,100,238,116,21,117,112,118,193,127,149,144,205,150,84,153,129,85,241,94,195,110,85,118,186,121,75,127,202,132,221,150,82,152,38,0,64,198,60,0,60,0,42,0,38,110,230,116,169,122,170,122,229,129,217,134,120,135,27,138,199,84,238,86,80,90,153,103,60,109,39,115,138,122,53,132,76,139,38,0,68,198,60,0,60,0,42,0,73,90,140,91,155,91,161,104,0,105,99,109,169,115,19,116,44,116,151,120,233,125,235,127,24,129,85,129,158,131,76,140,46,150,17,152,19,82,184,87,167,89,143,92,232,95,203,96,180,109,204,118,38,0,72,198,60,0,60,0,240,102,38,0,85,198,60,0,60,0,42,0,128,95,250,101,137,103,106,108,139,115,43,92,7,112,236,143,38,0,92,198,60,0,60,0,42,0,45,80,3,90,106,107,238,119,167,90,38,0,120,198,60,0,60,0,42,0,22,89,108,93,205,93,37,115,79,117,78,80,52,93,84,93,40,110,104,113,168,120,200,120,117,128,151,150,38,0,148,198,60,0,60,0,42,0,229,80,249,81,47,88,45,89,150,89,218,89,229,91,162,93,215,98,22,100,147,100,254,100,220,102,72,106,255,113,100,116,136,122,175,122,71,126,94,126,0,128,112,129,239,135,129,137,32,139,89,144,128,144,82,153,96,80,147,85,115,87,157,88,8,91,122,94,173,95,188,95,128,107,134,111,69,121,126,122,133,122,88,133,118,144,194,157,38,0,149,198,60,0,60,0,42,0,126,97,50,107,116,109,31,126,37,137,177,143,189,110,208,132,38,0,169,198,60,0,60,0,42,0,209,79,173,80,151,81,199,82,199,87,137,88,185,91,184,94,66,97,149,105,140,109,103,110,182,110,148,113,98,116,40,117,44,117,115,128,56,131,201,132,10,142,148,147,222,147,155,80,130,91,113,93,117,97,131,97,230,105,103,120,2,130,249,134,52,142,38,0,176,198,60,0,60,0,42,0,142,78,81,79,118,80,42,81,200,83,203,83,243,83,135,91,211,91,36,92,26,97,130,97,244,101,91,114,151,115,64,116,194,118,80,121,145,121,185,121,6,125,189,127,139,130,213,133,94,134,194,143,71,144,245,144,234,145,133,150,232,150,233,150,143,78,180,78,193,79,74,80,1,84,35,88,78,93,189,94,69,103,163,117,241,118,253,122,38,128,48,128,35,139,61,142,93,147,128,158,140,158,114,159,38,0,177,198,60,0,60,0,42,0,214,82,103,95,237,101,49,102,47,104,92,113,54,122,193,144,10,152,224,113,38,0,180,198,60,0,60,0,42,0,145,78,82,106,158,107,144,111,137,113,24,128,184,130,83,133,75,144,149,150,242,150,251,151,242,96,132,108,212,123,28,125,35,151,245,151,38,0,184,198,60,0,60,0,42,0,26,133,49,155,144,78,38,0,197,198,60,0,60,0,42,0,138,113,196,150,38,0,208,198,60,0,60,0,42,0,67,81,159,83,225,84,19,87,18,87,163,87,155,90,196,90,195,91,40,96,63,97,244,99,133,108,57,109,114,110,144,110,48,114,63,115,87,116,209,130,129,136,69,143,96,144,98,150,88,152,27,157,164,81,28,87,108,103,101,105,40,115,169,125,171,130,151,133,63,135,28,139,250,146,53,154,119,157,255,158,38,0,212,198,60,0,60,0,42,0,8,103,138,141,94,146,22,82,164,124,38,0,4,199,60,0,60,0,42,0,77,79,73,80,222,80,113,83,13,87,212,89,1,90,9,92,112,97,144,102,45,110,50,114,75,116,239,125,195,128,14,132,102,132,63,133,95,135,91,136,24,137,2,139,85,144,203,151,79,155,159,85,67,94,82,113,168,113,255,117,115,132,94,136,201,138,54,144,200,149,217,151,225,151,39,153,170,154,38,0,32,199,60,0,60,0,42,0,115,78,145,79,18,81,106,81,47,85,169,85,122,91,165,91,124,94,125,94,190,94,160,96,223,96,8,97,9,97,196,99,56,101,9,103,212,103,218,103,97,105,98,105,185,108,39,109,56,110,225,111,54,115,55,115,92,116,49,117,82,118,173,125,254,129,56,132,213,136,152,138,219,138,237,138,48,142,66,142,74,144,62,144,122,144,73,145,201,145,110,147,152,81,102,84,255,86,221,88,55,94,201,99,191,101,209,108,86,114,9,118,16,118,172,122,179,122,114,124,197,124,204,125,116,129,160,131,85,133,100,133,176,134,180,134,100,135,21,137,137,139,12,144,163,151,170,155,221,158,44,159,165,159,38,0,33,199,60,0,60,0,42,0,9,88,211,107,137,128,178,128,37,81,38,0,36,199,60,0,60,0,42,0,65,81,107,89,57,92,100,111,167,115,228,128,7,141,23,146,143,149,0,102,198,146,38,0,40,199,60,0,60,0,42,0,127,128,79,111,222,119,38,0,53,199,60,0,60,0,42,0,14,98,28,112,104,125,141,135,232,114,38,0,64,199,60,0,60,0,42,0,160,87,105,96,71,97,183,107,190,138,128,146,177,150,44,84,154,86,1,87,189,87,150,97,188,106,181,110,250,114,226,115,110,118,20,138,30,145,87,159,38,0,68,199,60,0,60,0,42,0,89,78,230,156,38,0,76,199,60,0,60,0,42,0,31,84,235,109,45,133,112,150,243,151,238,152,145,85,31,93,213,94,20,97,42,151,38,0,77,199,60,0,60,0,42,0,214,99,227,108,145,144,146,96,57,99,101,109,38,0,81,199,60,0,60,0,42,0,221,81,201,97,186,129,249,157,38,0,88,199,60,0,60,0,42,0,157,79,26,80,0,81,156,91,15,97,255,97,236,100,5,105,197,107,145,117,227,119,169,127,100,130,143,133,251,135,99,136,188,138,112,139,171,145,23,81,210,81,147,82,183,93,57,107,42,111,23,115,18,121,152,135,80,153,38,0,116,199,60,0,60,0,42,0,140,78,229,78,10,79,55,89,232,89,242,93,27,95,91,95,33,96,62,114,229,115,112,117,205,117,251,121,12,128,51,128,132,128,225,130,81,131,189,140,179,140,135,144,244,152,12,153,191,84,104,87,20,92,93,95,46,104,31,109,198,115,17,138,81,138,228,143,182,150,38,0,117,199,60,0,60,0,42,0,55,112,202,118,202,127,204,127,252,127,26,139,11,95,164,113,193,157,38,0,120,199,60,0,60,0,42,0,186,78,193,78,3,82,112,83,189,84,224,86,251,89,197,91,21,95,205,95,110,110,106,125,53,131,147,134,141,138,109,151,119,151,222,78,25,88,36,89,99,90,104,98,36,108,7,109,139,121,126,124,162,130,192,136,38,0,124,199,60,0,60,0,42,0,0,78,90,79,126,79,249,88,229,101,162,110,56,144,176,147,185,153,198,108,252,142,38,0,132,199,60,0,60,0,42,0,251,78,236,88,138,89,217,89,65,96,20,122,79,131,195,140,77,125,125,136,139,146,234,152,38,0,133,199,60,0,60,0,42,0,101,81,68,83,255,94,38,0,137,199,60,0,60,0,42,0,205,78,105,82,85,91,191,130,181,90,38,0,144,199,60,0,60,0,42,0,212,78,58,82,168,84,201,89,255,89,80,91,87,91,92,91,99,96,72,97,203,110,153,112,110,113,134,115,247,116,181,117,193,120,43,125,5,128,234,129,40,131,23,133,201,133,238,138,199,140,204,150,112,84,40,91,86,91,118,91,216,103,218,108,120,114,37,119,38,119,162,124,20,128,254,128,8,131,50,131,191,131,120,134,220,137,62,138,178,140,109,141,161,147,63,152,237,154,147,155,191,157,211,157,38,0,145,199,60,0,60,0,42,0,92,79,250,82,188,86,171,101,40,102,124,112,184,112,53,114,189,125,141,130,76,145,192,150,114,157,157,92,13,96,177,101,222,103,75,108,47,113,179,114,143,120,38,0,148,199,60,0,60,0,42,0,113,91,231,104,152,107,122,111,222,118,87,82,20,98,79,154,38,0,160,199,60,0,60,0,42,0,145,92,171,102,91,111,180,123,42,124,54,136,148,109,92,111,243,111,38,0,161,199,60,0,60,0,42,0,220,150,97,83,195,86,40,119,252,120,77,137,38,0,165,199,60,0,60,0,42,0,8,78,215,78,32,83,52,88,187,88,239,88,108,89,7,92,51,94,132,94,53,95,140,99,178,102,86,103,31,106,163,106,12,107,63,111,70,114,80,115,139,116,224,122,167,124,120,129,223,129,231,129,138,131,108,132,35,133,148,133,207,133,221,136,19,141,172,145,119,149,156,150,189,80,88,89,157,89,25,91,130,93,231,94,21,98,51,111,66,114,52,118,218,124,152,127,7,132,197,136,236,140,35,145,216,147,38,153,158,158,38,0,172,199,60,0,60,0,42,0,141,81,201,84,40,87,176,91,77,98,80,103,61,104,147,104,61,110,211,110,125,112,33,126,193,136,161,140,9,143,75,159,78,159,8,89,61,93,87,98,159,105,126,112,148,126,38,0,193,199,60,0,60,0,42,0,45,114,143,123,205,138,26,147,34,93,25,115,36,116,151,147,38,0,0,200,60,0,60,0,42,0,71,79,78,79,50,81,128,84,208,89,149,94,181,98,117,103,110,105,23,106,174,108,26,110,217,114,42,115,189,117,184,123,53,125,231,130,249,131,87,132,247,133,91,138,175,140,135,142,25,144,184,144,206,150,95,159,129,91,168,92,124,103,226,103,16,108,116,111,38,112,116,114,93,127,157,127,244,130,198,134,155,136,26,137,221,137,70,138,108,140,124,150,38,0,1,200,60,0,60,0,42,0,227,82,10,84,225,90,194,91,88,100,117,101,244,110,196,114,132,118,77,122,27,123,77,124,62,126,223,127,123,131,43,139,202,140,100,141,225,141,95,142,234,143,249,143,105,144,209,147,0,106,231,120,244,124,194,131,191,137,22,144,176,153,38,0,4,200,60,0,60,0,42,0,67,79,122,79,179,80,104,81,120,81,77,82,106,82,97,88,124,88,96,89,8,92,85,92,219,94,155,96,48,98,19,104,191,107,8,108,177,111,78,113,32,116,48,117,56,117,81,117,114,118,76,123,139,123,173,123,198,123,143,126,110,138,62,143,73,143,63,146,147,146,34,147,43,148,251,150,90,152,107,152,30,153,46,84,192,86,229,90,71,92,211,93,41,98,195,99,195,101,52,104,199,105,84,110,182,111,75,114,113,116,14,117,75,117,96,117,202,117,92,118,218,120,91,124,182,127,230,127,70,129,158,129,67,131,148,142,7,143,133,144,61,145,209,146,42,147,91,151,102,151,83,152,230,152,48,153,11,155,99,156,7,158,38,0,8,200,60,0,60,0,42,0,7,82,42,98,152,98,89,109,100,118,202,122,192,123,118,125,138,92,98,102,131,122,38,0,16,200,60,0,60,0,42,0,96,83,190,92,151,94,56,111,185,112,152,124,17,151,142,155,222,158,84,79,138,88,183,115,24,123,31,124,235,130,42,133,197,134,152,137,173,152,207,158,38,0,17,200,60,0,60,0,42,0,165,99,122,100,118,135,4,105,106,105,40,135,213,141,64,142,8,156,38,0,21,200,60,0,60,0,42,0,1,78,149,78,173,78,92,80,117,80,72,84,195,89,154,91,64,94,173,94,247,94,129,95,197,96,58,99,63,101,116,101,204,101,118,102,120,102,254,103,104,105,137,106,99,107,64,108,192,109,232,109,31,110,94,110,30,112,161,112,142,115,253,115,58,117,91,119,135,120,142,121,11,122,125,122,190,124,142,125,71,130,2,138,234,138,158,140,45,145,74,145,216,145,102,146,204,146,32,147,6,151,86,151,92,151,2,152,14,159,66,79,238,83,103,90,119,90,20,96,159,99,111,104,131,104,214,104,111,112,245,115,148,117,115,123,155,131,60,138,73,144,114,145,229,146,90,151,38,0,28,200,60,0,60,0,42,0,54,82,145,82,124,85,36,88,29,94,31,95,140,96,208,99,175,104,223,111,109,121,44,123,205,129,186,133,253,136,248,138,68,142,141,145,100,150,155,150,61,151,76,152,74,159,21,81,35,90,224,100,24,115,69,116,71,119,148,121,10,122,249,125,54,142,79,142,139,142,87,147,132,150,242,151,167,155,247,155,38,0,112,200,60,0,60,0,42,0,206,79,70,81,203,81,169,82,50,86,20,95,107,95,170,99,205,100,233,101,65,102,250,102,249,102,29,103,157,104,215,104,253,105,21,111,110,111,103,113,229,113,42,114,170,116,58,119,86,121,90,121,223,121,32,122,149,122,151,124,223,124,68,125,112,126,135,128,251,133,164,134,84,138,191,138,153,141,129,142,32,144,109,144,227,145,59,150,213,150,229,156,123,79,174,80,1,82,157,83,8,86,106,86,37,91,130,95,198,97,126,98,130,107,161,111,49,116,129,118,103,121,200,122,10,123,217,124,246,124,105,125,91,125,217,128,202,129,90,130,38,133,41,135,130,138,95,139,31,146,154,146,253,146,219,155,112,157,2,159,38,0,113,200,60,0,60,0,42,0,207,101,7,124,179,141,195,147,47,118,38,0,116,200,60,0,60,0,42,0,88,91,10,92,245,98,38,0,120,200,60,0,60,0,42,0,82,83,217,98,29,115,38,0,133,200,60,0,60,0,42,0,39,80,151,91,158,95,176,96,107,97,213,104,217,109,46,116,46,122,66,125,156,125,49,126,107,129,42,142,53,142,126,147,24,148,0,79,82,97,202,103,54,105,5,106,125,116,7,118,189,124,189,135,100,142,38,0,140,200,60,0,60,0,42,0,80,79,80,87,230,93,167,94,43,99,73,82,228,117,157,131,253,154,38,0,196,200,60,0,60,0,106,127,38,0,252,200,60,0,60,0,42,0,59,78,79,79,143,79,90,80,221,89,196,128,106,84,104,84,254,85,79,89,153,91,222,93,218,94,93,102,49,103,241,103,42,104,232,108,50,109,74,110,141,111,183,112,224,115,135,117,76,124,2,125,44,125,162,125,31,130,219,134,59,138,133,138,112,141,138,142,51,143,49,144,78,145,82,145,68,148,208,153,31,78,156,79,20,81,12,92,108,94,196,98,67,120,82,124,152,128,96,129,31,133,192,134,239,136,75,138,217,140,142,141,8,143,82,144,82,146,12,151,20,151,4,159,38,0,253,200,60,0,60,0,42,0,249,122,165,124,38,0,0,201,60,0,60,0,42,0,202,79,1,81,198,81,200,87,239,91,251,92,89,102,61,106,90,109,150,110,236,111,12,113,111,117,227,122,34,136,33,144,117,144,203,150,255,153,66,86,251,87,171,88,247,96,153,100,180,118,167,125,71,127,6,142,114,142,15,148,188,150,21,153,82,156,84,157,38,0,4,201,60,0,60,0,42,0,1,131,124,78,38,0,17,201,60,0,60,0,42,0,45,78,242,78,70,136,205,145,62,119,38,0,137,201,60,0,60,0,42,0,125,83,115,83,158,85,38,0,144,201,60,0,60,0,42,0,219,106,45,154,38,0,153,201,60,0,60,0,42,0,107,105,65,108,122,132,157,106,122,133,38,0,157,201,60,0,60,0,42,0,158,88,142,97,254,102,239,98,221,112,17,117,199,117,82,126,184,132,73,139,8,141,146,93,240,119,126,127,38,0,192,201,60,0,60,0,42,0,75,78,234,83,171,84,48,87,64,87,215,95,1,99,7,99,111,100,47,101,232,101,122,102,157,103,179,103,98,107,96,108,154,108,44,111,229,119,37,120,73,121,87,121,25,125,162,128,2,129,243,129,157,130,183,130,24,135,140,138,4,141,190,141,114,144,123,87,128,88,122,98,176,105,220,108,227,117,234,121,234,123,16,130,31,142,147,142,249,142,47,150,168,155,217,157,38,0,193,201,60,0,60,0,42,0,244,118,25,122,55,122,84,126,119,128,157,121,38,0,196,201,60,0,60,0,42,0,7,85,212,85,117,88,47,99,34,100,73,102,75,102,109,104,155,105,132,107,37,109,177,110,205,115,104,116,161,116,91,117,185,117,225,118,30,119,139,119,230,121,9,126,29,126,251,129,47,133,151,136,58,138,209,140,235,142,176,143,50,144,173,147,99,150,115,150,7,151,178,79,24,81,210,115,57,122,193,132,180,135,129,141,65,146,18,155,38,0,200,201,60,0,60,0,42,0,132,79,241,83,234,89,201,90,25,94,78,104,198,116,190,117,233,121,146,122,163,129,237,134,234,140,204,141,237,143,164,87,112,125,186,132,197,144,85,148,38,0,208,201,60,0,60,0,42,0,159,101,21,103,6,157,38,0,209,201,60,0,60,0,42,0,247,87,87,111,221,125,47,143,246,147,198,150,160,84,34,98,38,0,213,201,60,0,60,0,42,0,181,95,242,97,132,111,130,111,19,112,101,118,170,119,38,0,40,204,60,0,60,0,42,0,20,78,152,79,31,80,201,83,223,85,111,93,238,93,33,107,100,107,203,120,154,123,73,142,202,142,110,144,125,79,86,80,83,89,148,92,163,95,206,105,115,116,104,120,38,0,41,204,60,0,60,0,42,0,73,99,62,100,64,119,132,122,47,147,127,148,106,159,51,98,201,100,178,101,38,0,44,204,60,0,60,0,42,0,176,100,175,111,230,113,168,116,218,116,196,122,18,124,130,126,178,124,152,126,154,139,10,141,125,148,16,153,76,153,39,81,57,81,151,82,209,93,34,101,17,107,40,114,178,141,38,0,48,204,60,0,60,0,42,0,57,82,223,91,230,100,45,103,46,125,78,98,246,98,38,0,56,204,60,0,60,0,42,0,237,80,195,83,121,88,88,97,89,97,250,97,172,101,217,122,146,139,150,139,51,81,197,83,132,93,201,93,90,97,175,97,25,101,231,105,3,107,218,107,86,139,232,147,113,148,94,153,66,154,242,158,38,0,61,204,60,0,60,0,42,0,9,80,33,80,117,82,49,85,60,90,224,94,112,95,52,97,94,101,12,102,54,102,162,102,205,105,196,110,50,111,22,115,33,118,147,122,57,129,89,130,214,131,188,132,0,80,150,80,212,81,49,82,181,96,221,96,39,98,54,100,25,105,5,108,114,116,151,122,187,122,76,142,249,146,6,147,182,149,47,155,172,157,38,0,68,204,60,0,60,0,42,0,181,80,240,87,192,91,232,91,105,95,161,99,38,120,181,125,220,131,33,133,199,145,245,145,204,104,29,131,38,0,69,204,60,0,60,0,42,0,138,81,245,103,86,123,172,140,22,86,88,94,212,120,39,123,0,124,177,134,38,0,152,204,60,0,60,0,42,0,196,81,187,89,189,96,85,134,210,109,11,132,4,137,183,137,234,144,38,0,153,204,60,0,60,0,42,0,28,80,84,82,58,92,125,97,26,98,211,98,242,100,165,101,204,110,32,118,10,129,96,142,95,150,187,150,78,84,103,87,73,88,213,96,87,99,109,100,52,135,214,141,145,142,38,0,156,204,60,0,60,0,42,0,223,78,67,83,152,85,41,89,221,93,197,100,201,108,250,109,148,115,127,122,27,130,166,133,228,140,16,142,119,144,231,145,225,149,33,150,198,151,244,79,41,80,226,80,3,81,10,109,250,111,233,116,70,121,129,124,246,129,138,130,28,131,80,131,168,132,70,133,149,134,191,143,93,151,38,0,160,204,60,0,60,0,42,0,248,81,242,84,134,85,185,95,164,100,136,111,180,125,31,143,77,143,53,148,95,82,92,85,209,87,217,96,135,99,96,107,149,146,35,147,251,152,46,153,38,0,168,204,60,0,60,0,42,0,201,80,22,92,190,108,251,109,27,117,187,119,61,124,100,124,121,138,194,138,104,94,221,95,201,96,144,106,252,106,56,112,55,124,92,137,38,0,169,204,60,0,60,0,42,0,30,88,190,89,22,94,119,99,82,114,138,117,107,119,220,138,188,140,18,143,34,80,107,84,139,85,23,96,58,137,38,0,173,204,60,0,60,0,42,0,243,94,116,102,248,109,125,128,193,131,203,138,81,151,214,155,202,81,10,87,59,135,132,157,38,0,180,204,60,0,60,0,42,0,67,82,255,102,149,109,239,110,224,125,230,138,46,144,94,144,212,154,143,86,88,95,227,104,162,107,12,120,130,132,21,133,94,133,198,142,70,151,240,154,38,0,8,205,60,0,60,0,42,0,29,82,127,82,232,84,148,97,132,98,219,98,162,104,18,105,90,105,53,106,146,112,38,113,93,120,1,121,14,121,210,121,13,122,150,128,120,130,213,130,73,131,73,133,130,140,133,141,98,145,139,145,174,145,98,80,236,80,173,82,230,82,77,86,246,90,167,92,237,92,149,93,10,96,132,96,0,97,106,103,203,113,131,125,22,128,154,138,89,139,160,141,250,142,226,143,20,146,107,147,108,147,152,151,102,152,235,154,230,157,96,159,38,0,9,205,60,0,60,0,42,0,195,79,209,86,237,113,215,119,0,135,248,137,239,102,37,114,218,119,165,133,133,142,209,154,38,0,12,205,60,0,60,0,42,0,248,91,214,95,81,103,168,144,11,84,38,0,29,205,60,0,60,0,42,0,226,83,90,88,245,91,164,96,129,97,96,100,61,126,112,128,37,133,131,146,113,132,239,132,230,147,24,154,68,154,38,0,44,205,60,0,60,0,174,100,38,0,92,205,60,0,60,0,42,0,172,80,20,93,0,103,44,86,103,100,177,105,60,111,128,116,234,120,23,126,39,129,38,0,148,205,60,0,60,0,42,0,156,88,189,98,168,99,14,105,120,105,30,106,107,110,186,118,203,121,187,130,41,132,207,138,168,141,253,143,18,145,75,145,156,145,16,147,24,147,154,147,219,150,54,154,13,156,230,80,126,85,53,90,26,94,198,96,118,99,235,99,37,100,3,117,51,118,157,159,146,123,160,123,9,124,11,126,16,126,173,132,108,150,185,150,166,151,5,154,75,155,12,156,123,157,150,157,181,157,132,158,164,158,38,0,149,205,60,0,60,0,42,0,17,78,92,117,93,121,250,122,81,123,201,123,46,126,196,132,89,142,116,142,248,142,16,144,175,89,51,130,86,140,92,142,0,159,38,0,152,205,60,0,60,0,42,0,37,102,63,105,67,116,38,0,156,205,60,0,60,0,42,0,250,81,46,103,220,158,235,121,38,0,169,205,60,0,60,0,42,0,69,81,224,95,150,108,242,135,93,136,119,136,178,81,225,95,235,115,38,0,204,205,60,0,60,0,42,0,180,96,181,129,3,132,5,141,244,96,227,99,169,117,1,118,71,152,38,0,232,205,60,0,60,0,42,0,214,83,57,84,52,86,54,90,49,92,138,112,224,127,90,128,6,129,237,129,163,141,137,145,95,154,242,157,163,81,71,106,243,107,38,0,33,206,60,0,60,0,42,0,116,80,196,78,160,83,251,96,44,110,193,94,3,102,38,0,53,206,60,0,60,0,100,92,38,0,88,206,60,0,60,0,42,0,136,79,36,80,228,85,217,92,95,94,101,96,148,104,187,108,196,109,190,113,212,117,244,117,97,118,26,122,73,122,199,125,251,125,110,127,244,129,169,134,28,143,201,150,179,153,82,159,110,83,198,84,216,91,245,93,100,117,211,117,122,125,209,131,153,133,43,137,120,140,241,141,25,147,36,150,212,155,25,157,31,157,68,157,38,0,89,206,60,0,60,0,42,0,71,82,197,82,237,152,85,101,38,0,92,206,60,0,60,0,42,0,170,137,236,106,253,133,111,137,84,159,38,0,96,206,60,0,60,0,42,0,3,78,210,103,6,111,38,0,104,206,60,0,60,0,42,0,181,79,226,91,149,103,136,108,120,109,27,116,39,120,221,145,124,147,214,91,241,95,57,105,137,108,244,144,223,146,248,153,38,0,105,206,60,0,60,0,196,135,38,0,109,206,60,0,60,0,42,0,228,121,49,122,38,0,140,207,60,0,60,0,42,0,235,95,114,86,44,89,38,0,192,208,60,0,60,0,42,0,214,78,164,84,62,85,174,88,165,89,240,96,83,98,214,98,54,103,85,105,53,130,64,150,177,153,221,153,87,79,158,87,213,98,193,103,98,106,177,108,107,138,206,141,177,142,222,153,128,155,21,157,9,159,38,0,193,208,60,0,60,0,42,0,44,80,83,83,68,85,124,87,88,98,226,100,107,102,221,103,193,111,239,111,34,116,56,116,23,138,56,148,198,98,80,106,176,108,191,109,250,119,92,124,0,134,20,142,52,144,38,0,196,208,60,0,60,0,42,0,81,84,6,86,102,87,72,95,154,97,78,107,88,112,173,112,187,125,149,138,187,97,36,101,171,107,113,118,82,154,38,0,200,208,60,0,60,0,42,0,106,89,43,129,187,79,38,0,208,208,60,0,60,0,42,0,162,99,8,119,61,128,170,140,255,85,208,95,86,145,38,0,209,208,60,0,60,0,42,0,84,88,45,100,187,105,157,80,76,88,40,100,38,0,213,208,60,0,60,0,42,0,149,91,17,94,111,110,105,133,217,113,234,118,173,120,47,134,38,0,220,208,60,0,60,0,42,0,76,81,240,83,42,89,32,96,75,97,134,107,112,108,240,108,30,123,206,128,212,130,198,141,176,144,177,152,237,87,39,90,97,91,172,98,232,143,196,153,216,153,38,0,221,208,60,0,60,0,42,0,199,100,164,111,38,0,241,208,60,0,60,0,42,0,145,100,144,100,90,114,38,0,48,209,60,0,60,0,4,101,38,0,160,209,60,0,60,0,42,0,78,81,16,84,31,87,14,138,38,0,164,209,60,0,60,0,42,0,75,86,120,86,242,116,38,0,181,209,60,0,60,0,42,0,95,97,118,104,219,117,82,123,113,125,26,144,107,96,11,106,105,123,38,0,244,209,60,0,60,0,42,0,6,88,204,105,127,129,42,137,0,144,57,152,164,150,38,0,44,210,60,0,60,0,42,0,120,80,87,89,172,89,149,98,15,144,42,155,146,89,29,110,176,154,38,0,65,210,60,0,60,0,95,79,38,0,185,210,60,0,60,0,42,0,93,97,121,114,210,95,38,0,200,210,60,0,60,0,214,149,38,0,12,211,60,0,60,0,42,0,97,87,70,90,244,93,138,98,173,100,250,100,119,103,226,108,62,109,44,114,54,116,52,120,119,127,173,130,219,141,23,152,245,83,145,89,165,92,21,96,94,112,56,114,187,115,164,118,6,123,56,124,25,128,224,131,105,132,49,145,38,0,16,211,60,0,60,0,42,0,36,82,66,87,127,103,72,114,227,116,169,140,166,143,17,146,42,150,116,108,38,0,20,211,60,0,60,0,42,0,107,81,237,83,76,99,51,103,67,108,38,0,40,211,60,0,60,0,42,0,105,79,4,85,150,96,87,101,155,108,127,109,76,114,253,114,23,122,135,137,157,140,91,91,198,101,238,115,8,151,56,151,38,0,61,211,60,0,60,0,42,0,109,95,142,111,249,112,168,129,48,120,74,121,218,135,219,135,38,0,69,211,60,0,60,0,14,97,38,0,184,211,60,0,60,0,42,0,191,79,79,80,65,98,71,114,199,123,232,125,233,127,77,144,173,151,25,154,62,83,167,95,252,96,246,125,81,130,57,132,89,135,10,137,222,138,38,0,196,211,60,0,60,0,42,0,182,140,45,120,134,122,38,0,201,211,60,0,60,0,42,0,106,87,115,94,176,103,13,132,85,138,38,96,168,98,217,108,249,130,241,132,131,155,38,0,208,211,60,0,60,0,42,0,32,84,22,91,99,94,226,94,10,95,131,101,186,128,61,133,137,149,91,150,93,101,244,114,88,115,72,118,38,0,236,211,60,0,60,0,42,0,72,79,5,83,13,83,15,83,134,84,250,84,3,87,3,94,22,96,155,98,177,98,85,99,225,108,102,109,177,117,50,120,222,128,47,129,222,130,97,132,178,132,141,136,18,137,11,144,234,146,253,152,145,155,36,81,150,94,97,102,211,102,174,112,176,112,22,130,167,138,75,146,132,151,20,153,198,155,38,0,237,211,60,0,60,0,42,0,69,94,180,102,221,102,17,112,6,114,38,0,92,212,60,0,60,0,42,0,245,79,125,82,106,95,83,97,83,103,25,106,2,111,226,116,104,121,104,136,121,140,199,152,196,152,67,154,196,80,225,82,12,86,214,90,125,100,141,107,155,113,57,126,241,136,226,147,99,148,223,154,62,156,38,0,136,212,60,0,60,0,42,0,193,84,31,122,128,121,38,0,141,212,60,0,60,0,42,0,83,105,247,138,74,140,168,152,174,153,11,118,81,132,38,0,60,213,60,0,60,0,42,0,124,95,171,98,178,117,174,118,171,136,127,144,66,150,86,138,159,143,129,151,242,154,38,0,61,213,60,0,60,0,119,129,38,0,68,213,60,0,60,0,42,0,57,83,60,95,197,95,204,108,204,115,98,117,139,117,70,123,254,130,157,153,86,79,135,84,237,110,243,123,124,127,253,132,241,137,85,142,184,151,224,151,220,153,111,157,38,0,77,213,60,0,60,0,42,0,79,78,60,144,106,80,38,0,88,213,60,0,60,0,42,0,11,78,85,79,166,83,15,89,200,94,48,102,179,108,85,116,119,131,102,135,192,140,80,144,30,151,21,156,64,84,135,86,136,92,215,97,70,113,21,118,69,127,92,147,38,0,89,213,60,0,60,0,42,0,209,88,120,91,80,134,20,139,180,157,226,114,39,118,172,118,110,120,221,144,253,157,38,0,92,213,60,0,60,0,42,0,210,91,104,96,141,96,241,101,87,108,34,111,163,111,26,112,85,127,240,127,145,149,146,149,80,150,211,151,233,80,250,90,251,90,77,99,181,102,136,149,251,153,243,157,62,159,38,0,96,213,60,0,60,0,42,0,114,82,68,143,142,119,38,0,104,213,60,0,60,0,42,0,253,81,43,84,184,84,99,85,138,85,187,106,181,109,216,125,102,130,156,146,119,150,121,158,159,131,225,131,244,138,94,143,222,149,38,0,105,213,60,0,60,0,42,0,8,84,200,84,210,118,228,134,164,149,212,149,92,150,12,83,209,85,217,103,188,105,152,110,205,118,195,144,38,0,109,213,60,0,60,0,42,0,162,78,9,79,238,89,230,90,247,93,82,96,151,98,109,103,65,104,134,108,47,110,56,127,155,128,42,130,5,152,47,89,70,96,149,112,63,127,15,152,38,0,116,213,60,0,60,0,42,0,165,78,85,80,179,84,147,87,90,89,105,91,179,91,200,97,119,105,119,109,35,112,249,135,227,137,114,138,231,138,130,144,237,153,184,154,141,84,176,93,232,94,44,107,108,115,78,116,206,117,164,133,162,145,38,152,173,155,38,0,117,213,60,0,60,0,42,0,190,82,56,104,238,127,136,137,38,0,137,213,60,0,60,0,42,0,22,80,120,94,79,103,71,131,76,136,187,96,38,0,165,213,60,0,60,0,42,0,171,78,17,84,174,86,230,115,21,145,255,151,9,153,87,153,153,153,140,133,38,0,200,213,60,0,60,0,42,0,83,86,159,88,91,134,49,138,84,107,38,0,204,213,60,0,60,0,42,0,178,97,246,106,123,115,210,142,218,93,112,94,7,101,38,0,208,213,60,0,60,0,71,107,38,0,216,213,60,0,60,0,42,0,170,150,87,154,174,93,107,115,129,115,38,0,1,214,60,0,60,0,42,0,85,89,0,114,107,141,105,151,8,95,43,109,49,113,41,155,38,0,4,214,60,0,60,0,42,0,212,79,244,92,38,95,248,97,91,102,235,108,171,112,132,115,185,115,254,115,41,119,77,119,67,125,98,125,35,126,55,130,82,136,226,140,73,146,111,152,7,81,27,91,33,102,4,116,195,117,12,119,111,126,254,127,6,135,162,138,215,146,253,153,38,0,8,214,60,0,60,0,42,0,81,91,116,122,64,136,1,152,92,125,144,141,38,0,16,214,60,0,60,0,204,90,38,0,17,214,60,0,60,0,42,0,224,79,84,83,62,89,253,92,62,99,121,109,249,114,5,129,7,129,162,131,207,146,48,152,39,83,246,83,201,87,74,96,143,96,28,97,203,123,38,0,21,214,60,0,60,0,42,0,168,78,68,81,17,82,139,87,98,95,194,108,206,110,5,112,80,112,175,112,146,113,233,115,105,116,74,131,162,135,97,136,8,144,162,144,163,147,168,153,16,89,25,90,87,138,229,143,88,150,38,0,28,214,60,0,60,0,42,0,110,81,87,95,224,96,103,97,179,102,89,133,74,142,175,145,139,151,146,80,18,86,237,91,175,95,229,105,251,118,17,139,127,139,38,0,56,214,60,0,60,0,42,0,78,78,146,78,124,84,213,88,250,88,125,89,181,92,39,95,54,98,72,98,10,102,103,102,235,107,105,109,207,109,86,110,248,110,148,111,224,111,233,111,93,112,208,114,37,116,90,116,224,116,147,118,92,121,202,124,30,126,225,128,166,130,107,132,191,132,78,134,95,134,116,135,119,139,106,140,172,147,0,152,101,152,43,81,177,81,55,86,237,90,238,90,25,96,141,108,200,110,236,110,146,114,34,115,156,118,158,118,142,123,85,128,144,145,44,153,13,155,38,0,57,214,60,0,60,0,42,0,209,96,22,98,119,145,38,0,60,214,60,0,60,0,42,0,90,90,15,102,247,109,62,110,63,116,66,155,2,87,219,96,183,110,28,113,189,149,38,0,64,214,60,0,60,0,42,0,253,95,218,96,15,123,235,86,38,0,77,214,60,0,60,0,42,0,196,84,24,95,94,108,211,108,42,109,216,112,5,125,121,134,12,138,59,157,78,102,146,111,202,123,119,146,40,155,38,0,84,214,60,0,60,0,42,0,22,83,140,84,5,91,58,106,107,112,117,117,141,121,190,121,177,130,239,131,113,138,65,139,168,140,116,151,240,79,41,86,114,90,237,100,107,117,74,154,162,159,38,0,85,214,60,0,60,0,42,0,244,100,43,101,186,120,187,120,107,122,205,119,225,119,45,121,74,148,38,0,88,214,60,0,60,0,42,0,56,78,154,85,80,89,166,91,123,94,163,96,219,99,97,107,101,102,83,104,25,110,101,113,176,116,8,125,132,144,105,154,37,156,240,91,253,97,208,100,219,116,150,118,70,119,89,125,98,140,88,143,112,147,54,148,31,155,38,0,92,214,60,0,60,0,42,0,59,109,209,110,62,115,65,140,202,149,222,134,38,0,105,214,60,0,60,0,42,0,240,81,76,94,168,95,77,96,246,96,48,97,76,97,67,102,68,102,165,105,193,108,95,110,201,110,98,111,76,113,156,116,135,118,193,123,39,124,82,131,87,135,81,144,141,150,195,158,164,85,147,90,51,96,93,116,147,128,186,140,164,147,38,0,140,214,60,0,60,0,42,0,47,83,222,86,251,94,138,95,98,96,148,96,247,97,102,102,3,103,156,106,238,109,174,111,112,112,106,115,106,126,190,129,52,131,212,134,168,138,196,140,106,79,3,104,4,109,217,110,212,118,124,138,244,143,46,152,96,156,38,0,141,214,60,0,60,0,42,0,131,82,114,115,132,86,38,0,161,214,60,0,60,0,42,0,150,91,107,106,4,148,139,111,28,146,204,158,38,0,168,214,60,0,60,0,42,0,238,84,134,86,93,91,72,101,133,101,201,102,159,104,141,109,198,109,59,114,180,128,117,145,77,154,154,80,194,86,36,93,189,107,135,113,155,118,83,134,26,153,38,0,196,214,60,0,60,0,42,0,175,79,25,80,154,83,14,84,60,84,137,85,197,85,63,94,140,95,61,103,102,113,221,115,5,144,61,84,163,85,149,87,32,88,184,109,52,115,204,123,97,138,67,139,87,145,49,153,38,0,200,214,60,0,60,0,42,0,219,82,243,82,100,88,206,88,4,113,143,113,251,113,176,133,19,138,136,102,219,102,11,114,111,115,129,126,119,132,66,148,38,0,204,214,60,0,60,0,59,107,38,0,217,214,60,0,60,0,168,133,38,0,228,214,60,0,60,0,42,0,167,85,132,102,74,113,49,132,220,112,224,138,252,138,38,0,252,214,60,0,60,0,42,0,73,83,153,85,193,107,236,113,148,130,107,134,122,134,38,0,24,215,60,0,60,0,42,0,89,95,189,95,238,99,137,102,71,113,241,138,29,143,190,158,157,100,236,127,38,0,52,215,60,0,60,0,42,0,17,79,58,100,203,112,102,117,103,134,187,84,213,100,179,150,249,154,66,157,38,0,60,215,60,0,60,0,42,0,100,96,78,139,248,157,121,83,38,0,73,215,60,0,60,0,42,0,71,81,246,81,8,83,54,109,248,128,95,96,247,128,38,0,81,215,60,0,60,0,209,158,38,0,84,215,60,0,60,0,42,0,21,102,35,107,152,112,213,117,136,95,251,95,128,99,46,113,34,138,193,145,38,0,88,215,60,0,60,0,42,0,3,84,121,92,7,125,22,138,225,78,84,108,153,117,196,143,85,159,38,0,96,215,60,0,60,0,42,0,32,107,61,107,70,107,222,94,38,0,97,215,60,0,60,0,42,0,56,84,112,96,61,109,213,127,79,86,89,107,93,111,214,127,38,0,101,215,60,0,60,0,8,130,38,0,108,215,60,0,60,0,42,0,214,80,222,81,156,85,107,86,205,86,236,89,9,91,12,94,153,97,152,97,49,98,94,102,230,102,153,113,185,113,186,113,167,114,167,121,0,122,178,127,165,84,15,85,59,86,149,96,50,98,191,102,55,107,249,113,20,114,104,140,60,153,38,0,144,215,60,0,60,0,42,0,112,138,181,114,136,126,109,137,33,152,224,158,0,0,170,170,170,170,170,170,170,170,98,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,31,1,0,0,68,0,0,0,68,0,0,0,68,0,0,0,84,34,0,0,84,34,0,0,84,34,0,0,84,34,0,0,4,40,0,0,4,40,0,0,74,40,0,0,74,40,0,0,74,40,0,0,50,105,114,84,1,0,64,8,24,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,174,0,182,0,190,0,198,0,206,0,214,0,222,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,241,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,249,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,1,1,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,44,0,202,97,44,0,202,130,44,0,202,163,44,0,202,196,44,0,202,229,44,0,202,6,45,0,202,39,45,0,202,72,45,0,202,105,45,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,35,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,35,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,35,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,197,162,1,0,197,226,1,0,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,197,34,3,0,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,197,98,4,0,197,66,2,0,197,194,0,0,197,163,4,0,197,3,5,0,197,99,5,0,197,195,0,0,197,195,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,99,7,0,197,194,4,0,197,194,7,0,197,34,5,0,197,2,8,0,197,66,8,0,197,130,5,0,197,131,8,0,197,227,8,0,197,66,9,0,197,2,1,0,197,130,9,0,197,194,9,0,197,2,10,0,197,66,10,0,197,130,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,10,0,197,2,11,0,197,130,3,0,197,2,4,0,197,162,7,0,192,0,0,0,197,66,11,0,197,130,11,0,197,194,11,0,197,2,12,0,197,66,12,0,192,0,0,0,197,162,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,12,0,197,194,12,0,192,0,0,0,192,0,0,0,197,2,7,0,197,2,13,0,197,66,13,0,192,0,0,0,197,66,0,0,197,226,7,0,197,130,13,0,197,194,13,0,197,2,14,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,14,0,192,0,0,0,197,130,14,0,192,0,0,0,197,194,14,0,192,0,0,0,197,2,15,0,192,0,0,0,197,66,15,0,197,131,15,0,197,226,15,0,192,0,0,0,192,0,0,0,197,34,16,0,197,99,16,0,197,194,16,0,192,0,0,0,192,0,0,0,197,2,17,0,192,0,0,0,197,98,15,0,197,66,17,0,197,130,17,0,197,194,17,0,197,2,18,0,197,66,16,0,197,66,18,0,197,130,18,0,197,194,18,0,197,34,18,0,197,3,19,0,197,99,19,0,197,194,19,0,197,2,20,0,197,66,20,0,197,131,20,0,197,226,20,0,197,34,21,0,197,98,21,0,197,162,21,0,197,227,21,0,197,67,22,0,197,163,22,0,197,2,23,0,197,66,23,0,197,130,23,0,197,195,23,0,197,34,24,0,197,99,24,0,197,194,24,0,197,2,25,0,197,130,22,0,197,66,25,0,197,131,25,0,197,34,17,0,197,98,14,0,197,34,15,0,197,2,16,0,197,226,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,25,0,197,34,26,0,197,98,26,0,197,162,17,0,197,163,26,0,5,5,6,121,197,34,0,0,197,194,8,0,5,5,10,121,197,130,13,0,197,194,13,0,5,5,12,121,5,5,16,121,197,2,27,0,197,66,27,0,197,130,27,0,197,34,8,0,197,194,27,0,197,2,28,0,197,34,3,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,197,130,2,0,197,67,28,0,197,98,1,0,197,226,1,0,197,226,7,0,192,0,0,0,197,162,28,0,197,98,2,0,197,2,14,0,197,227,28,0,197,162,2,0,197,66,29,0,197,131,29,0,197,226,2,0,197,227,29,0,197,67,30,0,197,163,30,0,197,3,31,0,197,99,31,0,197,195,31,0,192,0,0,0,197,34,32,0,192,0,0,0,197,2,30,0,197,98,27,0,197,162,3,0,197,98,8,0,197,99,32,0,192,0,0,0,197,194,32,0,197,2,33,0,197,226,3,0,197,162,27,0,197,226,6,0,197,34,31,0,197,34,7,0,197,194,4,0,197,34,5,0,197,2,8,0,197,130,5,0,192,0,0,0,197,194,10,0,197,67,33,0,197,66,11,0,197,162,33,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,7,0,197,2,13,0,197,98,13,0,197,66,3,0,197,226,33,0,197,34,34,0,192,0,0,0,197,130,1,0,197,66,4,0,197,98,34,0,197,162,34,0,197,226,34,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,10,121,5,5,6,121,5,5,10,121,5,5,10,121,5,5,10,121,5,5,12,121,5,5,10,121,5,5,20,121,5,5,12,121,5,5,6,121,5,5,16,121,5,5,10,121,5,5,16,121,5,5,16,121,5,5,16,121,5,5,42,121,5,5,16,121,5,5,28,121,5,5,18,121,5,5,20,121,5,5,18,121,5,5,28,121,5,5,20,121,5,5,6,121,5,5,20,121,5,5,10,121,5,5,20,121,5,5,24,121,5,5,6,121,5,5,20,121,5,5,24,121,5,5,12,121,5,5,20,121,5,5,24,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,30,121,5,5,20,121,5,5,30,121,5,5,20,121,5,5,34,121,5,5,20,121,5,5,38,121,5,5,20,121,5,5,40,121,5,5,20,121,5,5,28,121,5,5,20,121,5,5,20,121,5,5,28,121,5,5,24,121,5,5,10,121,5,5,24,121,5,5,16,121,5,5,24,121,5,5,18,121,5,5,24,121,5,5,20,121,5,5,6,121,5,5,24,121,5,5,24,121,5,5,24,121,5,5,24,121,5,5,28,121,5,5,24,121,5,5,34,121,5,5,24,121,5,5,36,121,5,5,24,121,5,5,38,121,5,5,24,121,5,5,40,121,5,5,24,121,5,5,42,121,5,5,28,121,5,5,6,121,5,5,28,121,5,5,12,121,5,5,28,121,5,5,28,121,5,5,28,121,5,5,30,121,5,5,28,121,5,5,34,121,5,5,28,121,5,5,38,121,5,5,28,121,5,5,40,121,5,5,34,121,5,5,36,121,5,5,34,121,5,5,42,121,5,5,40,121,5,5,28,121,5,5,42,121,5,5,42,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,12,121,5,5,16,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,103,121,5,5,129,121,5,5,107,121,5,5,119,121,5,5,107,121,5,5,127,121,5,5,111,121,5,5,119,121,5,5,111,121,5,5,139,121,5,5,115,121,5,5,119,121,5,5,115,121,5,5,129,121,5,5,119,121,5,5,111,121,5,5,143,121,5,5,119,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,119,121,5,5,119,121,5,5,129,121,5,5,127,121,5,5,107,121,5,5,127,121,5,5,107,121,5,5,143,121,5,5,127,121,5,5,115,121,5,5,127,121,5,5,119,121,5,5,127,121,5,5,143,121,5,5,129,121,5,5,103,121,5,5,129,121,5,5,103,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,139,121,5,5,129,121,5,5,115,121,5,5,143,121,5,5,129,121,5,5,129,121,5,5,137,121,5,5,103,121,5,5,137,121,5,5,111,121,5,5,137,121,5,5,111,121,5,5,143,121,5,5,137,121,5,5,115,121,5,5,137,121,5,5,115,121,5,5,143,121,5,5,137,121,5,5,129,121,5,5,137,121,5,5,143,121,5,5,139,121,5,5,139,121,5,5,139,121,5,5,143,121,5,5,129,121,5,5,103,121,5,5,139,121,5,5,107,121,5,5,129,121,5,5,115,121,5,5,107,121,5,5,119,121,5,5,107,121,5,5,143,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,6,121,5,5,24,121,5,5,6,121,5,5,10,121,5,5,38,121,5,5,16,121,5,5,6,121,5,5,24,121,5,5,16,121,5,5,12,121,5,5,16,121,5,5,12,121,5,5,42,121,5,5,16,121,5,5,18,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,24,121,5,5,16,121,5,5,20,121,5,5,24,121,5,5,16,121,5,5,20,121,5,5,42,121,5,5,16,121,5,5,20,121,5,5,28,121,5,5,16,121,5,5,24,121,5,5,24,121,5,5,16,121,5,5,36,121,5,5,18,121,5,5,24,121,5,5,24,121,5,5,18,121,5,5,34,121,5,5,18,121,5,5,42,121,5,5,28,121,5,5,6,121,5,5,6,121,5,5,28,121,5,5,36,121,5,5,42,121,5,5,18,121,5,5,42,121,5,5,20,121,5,5,6,121,5,5,34,121,5,5,6,121,5,5,36,121,5,5,6,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,66,14,0,5,5,107,121,197,130,14,0,5,5,111,121,197,194,14,0,5,5,115,121,197,2,15,0,5,5,119,121,197,66,15,0,197,131,15,0,197,226,15,0,5,5,127,121,5,5,129,121,197,34,16,0,197,99,16,0,197,194,16,0,5,5,137,121,5,5,139,121,197,2,17,0,5,5,143,121,5,5,6,121,197,34,0,0,197,194,8,0,5,5,10,121,197,130,13,0,197,194,13,0,5,5,12,121,5,5,16,121,197,2,27,0,197,66,27,0,197,130,27,0,197,34,8,0,197,194,27,0,197,2,28,0,197,34,3,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,67,0,50,0,59,0,75,27,0,16,40,2,0,96,1,0,0,96,170,170,170,170,130,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,27,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,84,32,0,0,84,32,0,0,84,32,0,0,84,32,0,0,244,33,0,0,244,33,0,0,106,34,0,0,106,34,0,0,106,34,0,0,50,105,114,84,1,0,64,8,248,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,209,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,217,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,225,0,48,0,48,0,231,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,11,0,202,225,11,0,202,2,12,0,202,35,12,0,202,68,12,0,202,101,12,0,202,134,12,0,202,167,12,0,202,200,12,0,202,233,12,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,2,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,3,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,6,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,5,71,238,102,201,198,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,2,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,200,160,3,0,197,34,0,0,192,0,0,0,200,96,4,0,197,98,0,0,192,0,0,0,192,0,0,0,200,32,5,0,197,162,0,0,200,224,5,0,197,226,0,0,192,0,0,0,200,160,6,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,3,255,194,5,4,255,194,5,5,255,194,5,6,255,194,5,7,255,194,5,8,255,194,5,9,255,194,5,10,255,194,5,11,255,194,5,12,255,194,5,13,255,194,5,14,255,194,5,15,255,194,5,16,255,194,5,17,255,194,5,18,255,194,5,19,255,194,5,20,255,194,5,21,255,194,5,22,255,194,5,23,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,24,255,194,5,25,255,194,5,26,255,194,5,27,255,194,5,28,255,194,5,29,255,194,5,30,255,194,5,31,255,194,5,32,255,194,5,33,255,194,5,34,255,194,5,35,255,194,5,36,255,194,5,37,255,194,5,38,255,194,5,39,255,194,5,40,255,194,5,41,255,194,5,42,255,194,5,43,255,194,5,44,255,194,5,45,255,194,5,46,255,194,5,47,255,194,5,48,255,194,5,49,255,194,5,50,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,192,0,0,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,130,0,0,5,5,12,121,5,130,0,0,5,5,20,121,5,130,0,0,5,5,24,121,5,130,0,0,5,5,30,121,5,130,0,0,5,5,6,121,10,130,0,0,5,5,12,121,9,130,0,0,5,5,20,121,8,130,0,0,5,5,24,121,7,130,0,0,5,5,30,121,6,130,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,200,160,3,0,197,34,0,0,5,5,10,121,200,96,4,0,197,98,0,0,5,5,16,121,5,5,18,121,200,32,5,0,197,162,0,0,200,224,5,0,197,226,0,0,5,5,28,121,200,160,6,0,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,194,5,3,255,194,5,4,255,194,5,5,255,194,5,6,255,194,5,7,255,194,5,8,255,194,5,9,255,194,5,10,255,194,5,11,255,194,5,12,255,194,5,13,255,194,5,14,255,194,5,15,255,194,5,16,255,194,5,17,255,194,5,18,255,194,5,19,255,194,5,20,255,194,5,21,255,194,5,22,255,194,5,23,255,194,5,24,255,194,5,25,255,194,5,26,255,194,5,27,255,194,5,28,255,194,5,29,255,194,5,30,255,194,5,31,255,194,5,32,255,194,5,33,255,194,5,34,255,194,5,35,255,194,5,36,255,194,5,37,255,194,5,38,255,194,5,39,255,194,5,40,255,194,5,41,255,194,5,42,255,194,5,43,255,194,5,44,255,194,5,45,255,194,5,46,255,194,5,47,255,194,5,48,255,194,5,49,255,194,5,50,255,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,6,121,5,5,48,0,0,17,0,192,5,130,12,121,5,5,48,0,3,17,0,192,5,130,20,121,5,5,48,0,7,17,0,192,5,130,24,121,5,5,48,0,9,17,0,192,5,130,30,121,5,5,48,0,12,17,0,192,5,130,170,170,3,0,67,0,50,0,59,0,107,37,0,16,57,0,0,96,1,0,0,96,170,170,170,170,52,140,3,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,60,0,0,0,60,1,0,0,156,95,1,0,156,95,1,0,12,96,3,0,12,96,3,0,24,140,3,0,18,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,39,246,247,248,249,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,254,255,50,105,114,84,1,0,192,8,205,20,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,120,0,128,0,136,0,144,0,152,0,160,0,165,0,173,0,181,0,189,0,197,0,205,0,213,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,53,1,61,1,69,1,77,1,85,1,93,1,101,1,109,1,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,21,2,29,2,37,2,45,2,53,2,61,2,69,2,76,2,84,2,92,2,98,2,106,2,113,2,121,2,128,2,136,2,144,2,152,2,160,2,168,2,176,2,184,2,192,2,200,2,208,2,216,2,224,2,232,2,240,2,248,2,0,3,8,3,16,3,24,3,32,3,40,3,48,3,56,3,64,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,128,3,136,3,144,3,152,3,159,3,167,3,175,3,183,3,191,3,199,3,207,3,215,3,223,3,231,3,239,3,246,3,254,3,6,4,14,4,22,4,30,4,38,4,44,4,52,4,60,4,68,4,76,4,84,4,92,4,100,4,108,4,116,4,124,4,132,4,140,4,148,4,156,4,164,4,172,4,180,4,188,4,196,4,204,4,212,4,220,4,228,4,236,4,244,4,252,4,4,5,12,5,20,5,28,5,36,5,44,5,52,5,59,5,67,5,75,5,83,5,91,5,99,5,107,5,115,5,122,5,130,5,138,5,146,5,152,5,160,5,167,5,175,5,183,5,191,5,199,5,206,5,214,5,222,5,230,5,238,5,246,5,254,5,6,6,14,6,22,6,30,6,38,6,46,6,54,6,62,6,70,6,78,6,86,6,94,6,102,6,109,6,117,6,125,6,133,6,141,6,149,6,157,6,165,6,173,6,181,6,189,6,197,6,205,6,213,6,221,6,227,6,235,6,243,6,250,6,2,7,10,7,17,7,25,7,33,7,40,7,48,7,56,7,63,7,71,7,79,7,87,7,95,7,103,7,111,7,119,7,127,7,135,7,143,7,151,7,159,7,167,7,175,7,183,7,190,7,198,7,206,7,214,7,222,7,230,7,237,7,245,7,253,7,4,8,12,8,20,8,28,8,36,8,42,8,50,8,58,8,66,8,74,8,82,8,90,8,97,8,105,8,113,8,120,8,128,8,136,8,144,8,152,8,160,8,168,8,176,8,184,8,192,8,200,8,208,8,216,8,224,8,232,8,239,8,247,8,255,8,7,9,14,9,22,9,30,9,38,9,46,9,54,9,62,9,70,9,78,9,86,9,94,9,102,9,110,9,118,9,126,9,134,9,142,9,150,9,158,9,166,9,174,9,182,9,190,9,198,9,206,9,214,9,222,9,230,9,238,9,246,9,254,9,6,10,14,10,22,10,30,10,38,10,46,10,54,10,62,10,70,10,78,10,86,10,94,10,102,10,110,10,118,10,126,10,134,10,142,10,150,10,158,10,166,10,174,10,182,10,190,10,198,10,206,10,214,10,222,10,230,10,238,10,246,10,254,10,5,11,13,11,21,11,29,11,37,11,45,11,53,11,61,11,69,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,140,11,148,11,156,11,164,11,172,11,180,11,188,11,196,11,204,11,212,11,220,11,228,11,236,11,244,11,252,11,4,12,12,12,20,12,28,12,36,12,44,12,52,12,59,12,67,12,75,12,83,12,91,12,48,0,48,0,48,0,48,0,99,12,107,12,115,12,123,12,131,12,139,12,147,12,155,12,163,12,171,12,179,12,187,12,195,12,203,12,211,12,219,12,227,12,235,12,243,12,251,12,3,13,11,13,19,13,27,13,35,13,43,13,51,13,59,13,67,13,75,13,83,13,91,13,99,13,107,13,112,13,119,13,127,13,135,13,143,13,151,13,157,13,165,13,173,13,181,13,189,13,197,13,204,13,212,13,220,13,228,13,236,13,244,13,252,13,4,14,12,14,20,14,28,14,36,14,44,14,51,14,59,14,67,14,75,14,83,14,91,14,99,14,107,14,115,14,123,14,131,14,139,14,147,14,155,14,163,14,171,14,179,14,187,14,195,14,203,14,211,14,218,14,226,14,234,14,242,14,250,14,2,15,10,15,18,15,26,15,34,15,42,15,50,15,58,15,66,15,74,15,82,15,90,15,98,15,106,15,114,15,48,0,48,0,48,0,48,0,122,15,130,15,138,15,146,15,154,15,162,15,170,15,178,15,48,0,48,0,185,15,193,15,201,15,209,15,217,15,225,15,233,15,241,15,249,15,1,16,9,16,17,16,25,16,33,16,41,16,49,16,57,16,59,16,67,16,75,16,83,16,91,16,99,16,107,16,115,16,123,16,131,16,139,16,147,16,155,16,163,16,171,16,179,16,187,16,195,16,203,16,211,16,219,16,227,16,235,16,243,16,251,16,3,17,10,17,18,17,26,17,34,17,40,17,48,17,56,17,64,17,72,17,80,17,88,17,95,17,103,17,111,17,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,17,127,17,135,17,143,17,151,17,153,17,161,17,169,17,177,17,185,17,193,17,201,17,209,17,217,17,225,17,233,17,241,17,249,17,1,18,9,18,17,18,25,18,33,18,41,18,49,18,48,0,55,18,63,18,71,18,79,18,87,18,95,18,48,0,103,18,111,18,119,18,127,18,135,18,142,18,150,18,158,18,48,0,164,18,172,18,180,18,188,18,196,18,204,18,211,18,219,18,227,18,235,18,243,18,249,18,0,19,8,19,16,19,48,0,48,0,48,0,23,19,31,19,39,19,47,19,55,19,63,19,71,19,79,19,86,19,94,19,48,0,48,0,102,19,110,19,118,19,126,19,134,19,142,19,150,19,158,19,166,19,172,19,180,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,88,0,48,0,48,0,80,0,80,0,80,0,196,20,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,188,19,196,19,204,19,212,19,220,19,228,19,236,19,244,19,252,19,4,20,12,20,20,20,28,20,36,20,44,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,52,20,60,20,68,20,76,20,84,20,92,20,100,20,108,20,116,20,124,20,132,20,140,20,148,20,156,20,164,20,172,20,180,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,95,1,202,65,95,1,202,98,95,1,202,131,95,1,202,164,95,1,202,197,95,1,202,230,95,1,202,7,96,1,202,40,96,1,202,73,96,1,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,94,1,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,94,1,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,94,1,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,0,0,198,99,0,0,192,0,0,0,198,195,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,1,0,198,131,1,0,198,227,1,0,198,67,2,0,197,34,0,0,192,0,0,0,198,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,2,0,192,0,0,0,192,0,0,0,198,66,3,0,198,130,3,0,198,194,3,0,192,0,0,0,198,2,4,0,198,67,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,4,0,198,2,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,192,0,0,0,198,227,5,0,192,0,0,0,192,0,0,0,198,67,6,0,198,163,6,0,197,99,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,0,0,198,3,7,0,192,0,0,0,198,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,198,162,7,0,192,0,0,0,198,226,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,198,34,8,0,197,162,1,0,197,227,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,8,0,192,0,0,0,198,163,8,0,198,3,9,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,9,0,198,163,9,0,197,66,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,10,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,10,0,198,195,10,0,198,35,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,2,0,192,0,0,0,192,0,0,0,198,131,11,0,198,227,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,12,0,192,0,0,0,198,163,12,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,13,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,13,0,192,0,0,0,197,194,2,0,192,0,0,0,192,0,0,0,198,162,13,0,198,226,13,0,192,0,0,0,198,34,14,0,198,98,14,0,198,163,14,0,198,3,15,0,197,2,3,0,192,0,0,0,198,98,15,0,198,163,15,0,192,0,0,0,192,0,0,0,198,3,16,0,198,99,16,0,192,0,0,0,198,194,16,0,192,0,0,0,192,0,0,0,198,2,17,0,198,67,17,0,192,0,0,0,198,163,17,0,198,3,18,0,192,0,0,0,198,98,18,0,197,66,3,0,198,163,18,0,192,0,0,0,198,3,19,0,192,0,0,0,192,0,0,0,198,99,19,0,198,195,19,0,198,35,20,0,198,131,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,20,0,198,66,21,0,192,0,0,0,198,131,21,0,192,0,0,0,192,0,0,0,198,226,21,0,198,35,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,22,0,198,227,22,0,192,0,0,0,192,0,0,0,198,67,23,0,192,0,0,0,198,162,23,0,198,226,23,0,192,0,0,0,192,0,0,0,198,35,24,0,198,130,24,0,192,0,0,0,198,195,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,25,0,198,98,25,0,197,130,3,0,198,163,25,0,198,2,26,0,198,67,26,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,26,0,198,3,27,0,198,99,27,0,192,0,0,0,197,195,3,0,192,0,0,0,198,194,27,0,198,3,28,0,198,98,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,28,0,192,0,0,0,198,227,28,0,192,0,0,0,198,67,29,0,198,162,29,0,192,0,0,0,198,226,29,0,198,35,30,0,198,130,30,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,30,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,31,0,198,131,31,0,198,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,32,0,198,130,32,0,198,195,32,0,192,0,0,0,198,34,33,0,198,98,33,0,198,163,33,0,198,3,34,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,34,0,198,194,34,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,35,0,192,0,0,0,198,99,35,0,192,0,0,0,198,195,35,0,192,0,0,0,198,34,36,0,192,0,0,0,198,98,36,0,198,162,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,36,0,198,67,37,0,192,0,0,0,192,0,0,0,198,163,37,0,197,98,4,0,198,2,38,0,198,66,38,0,192,0,0,0,198,130,38,0,192,0,0,0,197,162,4,0,197,226,4,0,198,194,38,0,197,34,5,0,198,2,39,0,192,0,0,0,198,67,39,0,198,163,39,0,197,98,5,0,197,163,5,0,198,2,40,0,192,0,0,0,197,2,6,0,198,67,40,0,198,163,40,0,198,3,41,0,198,98,41,0,198,163,41,0,198,3,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,6,0,197,130,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,42,0,198,195,42,0,192,0,0,0,192,0,0,0,198,34,43,0,192,0,0,0,192,0,0,0,198,99,43,0,192,0,0,0,198,195,43,0,197,194,6,0,198,35,44,0,198,130,44,0,198,194,44,0,198,2,45,0,198,67,45,0,198,162,45,0,192,0,0,0,198,227,45,0,192,0,0,0,198,67,46,0,198,163,46,0,192,0,0,0,198,2,47,0,192,0,0,0,197,2,7,0,198,66,47,0,198,131,47,0,198,226,47,0,192,0,0,0,198,34,48,0,192,0,0,0,198,98,48,0,192,0,0,0,197,66,7,0,192,0,0,0,192,0,0,0,198,162,48,0,192,0,0,0,198,227,48,0,198,67,49,0,198,162,49,0,192,0,0,0,198,227,49,0,198,67,50,0,198,162,50,0,197,130,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,50,0,197,194,7,0,192,0,0,0,192,0,0,0,198,35,51,0,192,0,0,0,192,0,0,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,51,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,51,0,192,0,0,0,198,66,52,0,198,130,52,0,198,195,52,0,198,34,53,0,198,98,53,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,53,0,198,227,53,0,192,0,0,0,198,66,54,0,192,0,0,0,198,130,54,0,198,194,54,0,198,2,55,0,198,67,55,0,192,0,0,0,198,163,55,0,198,3,56,0,192,0,0,0,192,0,0,0,198,99,56,0,198,194,56,0,192,0,0,0,198,2,57,0,198,67,57,0,192,0,0,0,198,162,57,0,192,0,0,0,198,226,57,0,197,163,8,0,198,35,58,0,192,0,0,0,198,130,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,58,0,198,2,59,0,197,2,9,0,198,66,59,0,192,0,0,0,198,130,59,0,198,195,59,0,197,66,9,0,198,35,60,0,192,0,0,0,198,131,60,0,192,0,0,0,198,227,60,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,61,0,192,0,0,0,198,131,61,0,192,0,0,0,198,227,61,0,192,0,0,0,192,0,0,0,198,66,62,0,198,131,62,0,192,0,0,0,192,0,0,0,198,227,62,0,192,0,0,0,198,66,63,0,192,0,0,0,198,130,63,0,192,0,0,0,198,195,63,0,192,0,0,0,198,35,64,0,198,130,64,0,192,0,0,0,198,195,64,0,192,0,0,0,198,35,65,0,192,0,0,0,198,131,65,0,197,130,9,0,197,194,9,0,192,0,0,0,198,227,65,0,192,0,0,0,198,67,66,0,198,162,66,0,192,0,0,0,198,227,66,0,198,67,67,0,198,163,67,0,197,2,10,0,198,3,68,0,198,99,68,0,198,195,68,0,198,34,69,0,198,99,69,0,197,66,10,0,198,195,69,0,197,131,10,0,197,226,10,0,198,34,70,0,192,0,0,0,198,99,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,70,0,198,35,71,0,192,0,0,0,192,0,0,0,198,130,71,0,198,194,71,0,197,98,11,0,198,2,72,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,11,0,198,67,72,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,72,0,192,0,0,0,197,226,11,0,198,2,73,0,192,0,0,0,198,67,73,0,192,0,0,0,198,162,73,0,192,0,0,0,198,227,73,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,74,0,192,0,0,0,198,130,74,0,192,0,0,0,192,0,0,0,198,195,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,75,0,192,0,0,0,198,130,75,0,192,0,0,0,198,195,75,0,198,35,76,0,198,130,76,0,192,0,0,0,197,130,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,77,0,192,0,0,0,198,163,77,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,78,0,197,194,12,0,192,0,0,0,198,99,78,0,192,0,0,0,198,195,78,0,192,0,0,0,198,35,79,0,198,130,79,0,197,2,13,0,198,195,79,0,192,0,0,0,197,67,13,0,198,34,80,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,13,0,198,163,80,0,198,2,81,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,81,0,198,131,81,0,198,226,81,0,198,34,82,0,192,0,0,0,198,99,82,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,82,0,198,35,83,0,198,131,83,0,192,0,0,0,192,0,0,0,198,226,83,0,192,0,0,0,197,226,13,0,198,35,84,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,84,0,198,227,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,85,0,192,0,0,0,198,162,85,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,85,0,197,34,14,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,86,0,198,130,86,0,192,0,0,0,192,0,0,0,197,98,14,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,86,0,192,0,0,0,192,0,0,0,197,162,14,0,198,34,87,0,198,99,87,0,192,0,0,0,198,195,87,0,192,0,0,0,192,0,0,0,198,34,88,0,198,99,88,0,198,195,88,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,89,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,89,0,192,0,0,0,198,195,89,0,192,0,0,0,192,0,0,0,198,34,90,0,198,98,90,0,197,226,14,0,198,163,90,0,198,3,91,0,198,99,91,0,198,195,91,0,192,0,0,0,198,35,92,0,198,131,92,0,192,0,0,0,198,227,92,0,192,0,0,0,198,67,93,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,93,0,192,0,0,0,197,34,15,0,198,2,94,0,198,66,94,0,197,98,15,0,192,0,0,0,197,162,15,0,198,131,94,0,192,0,0,0,198,227,94,0,198,66,95,0,198,131,95,0,192,0,0,0,192,0,0,0,198,227,95,0,192,0,0,0,198,66,96,0,197,226,15,0,192,0,0,0,198,130,96,0,198,195,96,0,192,0,0,0,198,35,97,0,192,0,0,0,192,0,0,0,198,130,97,0,197,34,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,97,0,197,98,16,0,198,35,98,0,192,0,0,0,198,131,98,0,192,0,0,0,197,162,16,0,192,0,0,0,198,227,98,0,198,66,99,0,198,131,99,0,198,227,99,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,100,0,198,163,100,0,192,0,0,0,198,3,101,0,198,99,101,0,198,195,101,0,198,34,102,0,197,227,16,0,198,99,102,0,198,195,102,0,192,0,0,0,198,35,103,0,197,66,17,0,198,131,103,0,198,226,103,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,104,0,192,0,0,0,192,0,0,0,198,98,104,0,192,0,0,0,198,163,104,0,192,0,0,0,192,0,0,0,198,3,105,0,192,0,0,0,198,98,105,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,105,0,192,0,0,0,192,0,0,0,198,3,106,0,192,0,0,0,198,98,106,0,198,163,106,0,198,3,107,0,197,130,17,0,198,99,107,0,198,195,107,0,198,35,108,0,197,194,17,0,192,0,0,0,192,0,0,0,198,131,108,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,108,0,198,66,109,0,198,130,109,0,198,195,109,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,110,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,110,0,192,0,0,0,192,0,0,0,198,35,111,0,198,131,111,0,192,0,0,0,192,0,0,0,198,226,111,0,192,0,0,0,198,35,112,0,192,0,0,0,192,0,0,0,198,130,112,0,198,194,112,0,192,0,0,0,198,3,113,0,192,0,0,0,198,99,113,0,197,2,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,113,0,192,0,0,0,192,0,0,0,197,66,18,0,198,35,114,0,198,131,114,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,114,0,192,0,0,0,198,67,115,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,115,0,197,130,18,0,198,3,116,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,18,0,198,99,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,19,0,198,34,117,0,198,99,117,0,192,0,0,0,192,0,0,0,198,195,117,0,198,35,118,0,198,130,118,0,198,195,118,0,198,35,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,19,0,192,0,0,0,198,131,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,119,0,198,67,120,0,198,163,120,0,197,130,19,0,192,0,0,0,197,194,19,0,198,3,121,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,121,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,121,0,192,0,0,0,192,0,0,0,197,3,20,0,198,34,122,0,192,0,0,0,198,99,122,0,198,195,122,0,192,0,0,0,197,99,20,0,192,0,0,0,198,35,123,0,197,194,20,0,198,131,123,0,192,0,0,0,192,0,0,0,197,3,21,0,192,0,0,0,192,0,0,0,198,226,123,0,198,34,124,0,192,0,0,0,198,99,124,0,192,0,0,0,192,0,0,0,198,195,124,0,198,35,125,0,197,98,21,0,192,0,0,0,198,131,125,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,125,0,192,0,0,0,192,0,0,0,198,67,126,0,192,0,0,0,198,163,126,0,192,0,0,0,192,0,0,0,198,3,127,0,198,99,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,128,0,198,99,128,0,198,195,128,0,198,35,129,0,192,0,0,0,198,130,129,0,198,195,129,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,130,0,192,0,0,0,198,130,130,0,198,195,130,0,198,34,131,0,198,98,131,0,192,0,0,0,192,0,0,0,197,162,21,0,197,226,21,0,198,163,131,0,198,3,132,0,198,98,132,0,198,163,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,22,0,198,3,133,0,192,0,0,0,192,0,0,0,198,99,133,0,192,0,0,0,197,98,22,0,198,195,133,0,198,35,134,0,198,131,134,0,198,227,134,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,135,0,198,162,135,0,198,226,135,0,198,35,136,0,192,0,0,0,192,0,0,0,198,130,136,0,198,195,136,0,192,0,0,0,198,35,137,0,198,130,137,0,198,195,137,0,192,0,0,0,198,35,138,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,138,0,198,227,138,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,139,0,192,0,0,0,192,0,0,0,197,163,22,0,192,0,0,0,198,130,139,0,198,195,139,0,192,0,0,0,198,35,140,0,192,0,0,0,192,0,0,0,198,130,140,0,192,0,0,0,192,0,0,0,197,2,23,0,192,0,0,0,198,194,140,0,192,0,0,0,192,0,0,0,197,66,23,0,197,131,23,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,141,0,198,99,141,0,198,194,141,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,142,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,23,0,198,99,142,0,197,34,24,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,142,0,198,34,143,0,192,0,0,0,192,0,0,0,198,99,143,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,143,0,198,34,144,0,192,0,0,0,192,0,0,0,198,99,144,0,198,195,144,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,145,0,198,98,145,0,198,163,145,0,198,2,146,0,198,66,146,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,24,0,192,0,0,0,192,0,0,0,198,131,146,0,192,0,0,0,198,227,146,0,192,0,0,0,198,67,147,0,192,0,0,0,198,163,147,0,192,0,0,0,198,3,148,0,192,0,0,0,192,0,0,0,198,99,148,0,198,195,148,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,149,0,192,0,0,0,192,0,0,0,198,131,149,0,198,227,149,0,192,0,0,0,198,67,150,0,198,162,150,0,192,0,0,0,197,195,24,0,192,0,0,0,198,227,150,0,198,66,151,0,198,130,151,0,198,195,151,0,197,34,25,0,198,34,152,0,198,99,152,0,198,195,152,0,192,0,0,0,198,34,153,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,25,0,192,0,0,0,197,194,25,0,192,0,0,0,192,0,0,0,198,99,153,0,192,0,0,0,198,195,153,0,198,35,154,0,192,0,0,0,192,0,0,0,198,130,154,0,198,195,154,0,192,0,0,0,198,35,155,0,198,130,155,0,198,194,155,0,192,0,0,0,198,2,156,0,192,0,0,0,192,0,0,0,197,3,26,0,192,0,0,0,198,67,156,0,192,0,0,0,197,99,26,0,198,162,156,0,192,0,0,0,198,226,156,0,198,35,157,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,157,0,197,194,26,0,198,195,157,0,192,0,0,0,198,34,158,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,158,0,198,195,158,0,192,0,0,0,198,35,159,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,27,0,192,0,0,0,192,0,0,0,198,130,159,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,27,0,192,0,0,0,197,162,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,159,0,192,0,0,0,192,0,0,0,197,227,27,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,160,0,198,99,160,0,198,195,160,0,198,34,161,0,198,99,161,0,192,0,0,0,198,195,161,0,198,35,162,0,198,131,162,0,192,0,0,0,198,227,162,0,198,66,163,0,197,66,28,0,198,131,163,0,192,0,0,0,192,0,0,0,198,227,163,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,164,0,198,131,164,0,197,131,28,0,197,227,28,0,192,0,0,0,192,0,0,0,198,227,164,0,192,0,0,0,192,0,0,0,198,67,165,0,192,0,0,0,198,163,165,0,192,0,0,0,198,3,166,0,192,0,0,0,198,99,166,0,198,195,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,29,0,192,0,0,0,198,35,167,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,167,0,192,0,0,0,197,130,29,0,198,226,167,0,198,35,168,0,197,194,29,0,198,130,168,0,198,195,168,0,198,35,169,0,198,131,169,0,192,0,0,0,198,227,169,0,198,66,170,0,197,3,30,0,198,131,170,0,198,227,170,0,192,0,0,0,198,67,171,0,198,163,171,0,198,3,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,172,0,192,0,0,0,192,0,0,0,198,3,173,0,192,0,0,0,198,98,173,0,192,0,0,0,197,98,30,0,192,0,0,0,192,0,0,0,198,162,173,0,192,0,0,0,198,227,173,0,198,67,174,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,174,0,197,162,30,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,175,0,192,0,0,0,192,0,0,0,198,99,175,0,198,194,175,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,176,0,192,0,0,0,198,66,176,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,176,0,192,0,0,0,198,227,176,0,192,0,0,0,192,0,0,0,198,66,177,0,198,130,177,0,198,195,177,0,198,34,178,0,192,0,0,0,198,99,178,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,178,0,192,0,0,0,197,34,31,0,198,34,179,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,179,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,179,0,192,0,0,0,197,98,31,0,198,3,180,0,198,98,180,0,198,162,180,0,198,226,180,0,198,35,181,0,192,0,0,0,198,130,181,0,198,194,181,0,197,162,31,0,198,2,182,0,198,66,182,0,198,131,182,0,198,227,182,0,198,66,183,0,197,226,31,0,198,131,183,0,198,226,183,0,198,34,184,0,198,98,184,0,197,34,32,0,197,99,32,0,192,0,0,0,198,162,184,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,184,0,192,0,0,0,197,195,32,0,198,35,185,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,33,0,198,131,185,0,198,227,185,0,198,67,186,0,198,163,186,0,198,3,187,0,197,130,33,0,198,98,187,0,198,162,187,0,198,227,187,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,188,0,192,0,0,0,198,163,188,0,192,0,0,0,198,3,189,0,197,194,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,189,0,192,0,0,0,192,0,0,0,198,163,189,0,192,0,0,0,197,3,34,0,198,3,190,0,192,0,0,0,198,99,190,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,190,0,192,0,0,0,192,0,0,0,198,3,191,0,192,0,0,0,197,99,34,0,197,194,34,0,192,0,0,0,198,99,191,0,197,2,35,0,197,66,35,0,198,194,191,0,192,0,0,0,197,130,35,0,192,0,0,0,197,194,35,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,192,0,192,0,0,0,198,67,192,0,192,0,0,0,198,162,192,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,192,0,192,0,0,0,192,0,0,0,198,67,193,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,193,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,194,0,192,0,0,0,198,67,194,0,192,0,0,0,198,162,194,0,192,0,0,0,198,226,194,0,192,0,0,0,198,34,195,0,198,99,195,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,195,0,198,2,196,0,192,0,0,0,198,66,196,0,192,0,0,0,198,130,196,0,198,194,196,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,197,0,197,2,36,0,198,99,197,0,192,0,0,0,198,194,197,0,197,66,36,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,198,0,192,0,0,0,198,98,198,0,197,131,36,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,198,0,197,226,36,0,197,34,37,0,198,226,198,0,198,35,199,0,198,130,199,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,199,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,200,0,192,0,0,0,198,99,200,0,192,0,0,0,197,98,37,0,197,162,37,0,192,0,0,0,192,0,0,0,198,194,200,0,192,0,0,0,192,0,0,0,197,226,37,0,198,2,201,0,192,0,0,0,192,0,0,0,198,67,201,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,38,0,192,0,0,0,192,0,0,0,197,194,38,0,197,2,39,0,198,163,201,0,192,0,0,0,198,2,202,0,198,66,202,0,197,67,39,0,198,131,202,0,198,227,202,0,197,163,39,0,192,0,0,0,197,2,40,0,197,66,40,0,197,131,40,0,198,66,203,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,203,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,203,0,198,34,204,0,192,0,0,0,198,98,204,0,198,162,204,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,204,0,197,226,40,0,192,0,0,0,192,0,0,0,198,67,205,0,198,163,205,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,206,0,192,0,0,0,192,0,0,0,198,67,206,0,192,0,0,0,198,162,206,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,41,0,192,0,0,0,198,226,206,0,198,35,207,0,192,0,0,0,198,130,207,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,207,0,197,98,41,0,198,3,208,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,209,0,192,0,0,0,192,0,0,0,198,98,209,0,197,162,41,0,192,0,0,0,198,163,209,0,192,0,0,0,197,226,41,0,192,0,0,0,198,3,210,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,210,0,192,0,0,0,197,34,42,0,192,0,0,0,198,194,210,0,192,0,0,0,198,2,211,0,192,0,0,0,197,99,42,0,192,0,0,0,198,67,211,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,211,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,212,0,192,0,0,0,192,0,0,0,198,67,212,0,198,163,212,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,213,0,192,0,0,0,198,98,213,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,213,0,197,34,43,0,198,227,213,0,198,66,214,0,192,0,0,0,198,131,214,0,198,227,214,0,192,0,0,0,198,67,215,0,198,163,215,0,192,0,0,0,198,3,216,0,198,98,216,0,192,0,0,0,197,98,43,0,197,163,43,0,198,163,216,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,217,0,192,0,0,0,198,98,217,0,198,163,217,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,218,0,197,2,44,0,197,67,44,0,192,0,0,0,197,162,44,0,198,99,218,0,198,195,218,0,197,226,44,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,45,0,197,99,45,0,192,0,0,0,192,0,0,0,197,195,45,0,198,35,219,0,197,34,46,0,198,131,219,0,198,227,219,0,198,66,220,0,192,0,0,0,198,131,220,0,192,0,0,0,198,227,220,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,46,0,192,0,0,0,198,67,221,0,192,0,0,0,198,162,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,46,0,192,0,0,0,192,0,0,0,198,227,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,222,0,198,131,222,0,198,226,222,0,192,0,0,0,192,0,0,0,198,34,223,0,198,99,223,0,192,0,0,0,198,195,223,0,198,34,224,0,197,2,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,224,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,224,0,198,226,224,0,197,67,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,225,0,192,0,0,0,198,99,225,0,192,0,0,0,198,194,225,0,198,2,226,0,192,0,0,0,192,0,0,0,197,162,47,0,198,66,226,0,198,131,226,0,192,0,0,0,198,226,226,0,192,0,0,0,197,226,47,0,192,0,0,0,198,34,227,0,192,0,0,0,198,99,227,0,198,195,227,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,48,0,192,0,0,0,192,0,0,0,197,98,48,0,192,0,0,0,192,0,0,0,198,34,228,0,192,0,0,0,192,0,0,0,198,98,228,0,192,0,0,0,197,162,48,0,192,0,0,0,198,162,228,0,197,226,48,0,198,226,228,0,198,34,229,0,192,0,0,0,197,34,49,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,229,0,192,0,0,0,198,194,229,0,198,3,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,230,0,192,0,0,0,198,195,230,0,192,0,0,0,198,34,231,0,198,99,231,0,197,99,49,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,49,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,231,0,198,35,232,0,192,0,0,0,192,0,0,0,198,130,232,0,198,195,232,0,198,34,233,0,197,2,50,0,198,98,233,0,198,162,233,0,192,0,0,0,198,226,233,0,192,0,0,0,192,0,0,0,197,66,50,0,192,0,0,0,198,35,234,0,192,0,0,0,198,131,234,0,192,0,0,0,198,227,234,0,192,0,0,0,198,67,235,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,235,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,50,0,192,0,0,0,197,226,50,0,197,34,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,236,0,198,67,236,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,236,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,237,0,192,0,0,0,198,99,237,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,237,0,198,35,238,0,192,0,0,0,198,131,238,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,238,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,239,0,198,163,239,0,197,162,51,0,198,3,240,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,51,0,198,98,240,0,198,163,240,0,192,0,0,0,192,0,0,0,197,34,52,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,241,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,241,0,198,162,241,0,192,0,0,0,192,0,0,0,197,98,52,0,198,227,241,0,198,67,242,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,242,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,52,0,192,0,0,0,192,0,0,0,197,2,53,0,192,0,0,0,198,3,243,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,243,0,192,0,0,0,198,195,243,0,198,34,244,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,244,0,192,0,0,0,198,163,244,0,198,3,245,0,198,98,245,0,198,162,245,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,245,0,198,66,246,0,198,131,246,0,198,227,246,0,192,0,0,0,197,66,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,247,0,198,163,247,0,192,0,0,0,192,0,0,0,198,2,248,0,192,0,0,0,198,67,248,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,248,0,192,0,0,0,192,0,0,0,198,2,249,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,249,0,192,0,0,0,192,0,0,0,198,162,249,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,249,0,198,34,250,0,198,98,250,0,192,0,0,0,198,162,250,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,250,0,192,0,0,0,192,0,0,0,198,35,251,0,192,0,0,0,198,130,251,0,192,0,0,0,198,195,251,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,252,0,192,0,0,0,192,0,0,0,198,131,252,0,192,0,0,0,198,227,252,0,198,67,253,0,198,163,253,0,198,2,254,0,197,130,53,0,198,67,254,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,53,0,192,0,0,0,192,0,0,0,198,163,254,0,192,0,0,0,198,3,255,0,198,99,255,0,198,194,255,0,198,3,0,1,198,99,0,1,192,0,0,0,192,0,0,0,192,0,0,0,198,194,0,1,198,2,1,1,198,67,1,1,198,163,1,1,192,0,0,0,198,2,2,1,192,0,0,0,198,66,2,1,192,0,0,0,198,130,2,1,198,194,2,1,192,0,0,0,192,0,0,0,198,2,3,1,197,3,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,3,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,3,1,192,0,0,0,192,0,0,0,198,195,3,1,198,35,4,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,54,0,192,0,0,0,197,162,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,4,1,192,0,0,0,198,195,4,1,192,0,0,0,198,34,5,1,198,99,5,1,198,195,5,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,6,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,6,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,1,192,0,0,0,192,0,0,0,198,35,7,1,198,131,7,1,198,227,7,1,197,227,54,0,192,0,0,0,198,66,8,1,192,0,0,0,192,0,0,0,198,131,8,1,198,227,8,1,192,0,0,0,198,67,9,1,198,163,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,55,0,192,0,0,0,192,0,0,0,198,3,10,1,198,98,10,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,10,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,10,1,192,0,0,0,192,0,0,0,198,34,11,1,192,0,0,0,192,0,0,0,198,99,11,1,198,195,11,1,192,0,0,0,192,0,0,0,198,35,12,1,192,0,0,0,198,130,12,1,198,194,12,1,198,3,13,1,198,98,13,1,198,162,13,1,192,0,0,0,192,0,0,0,198,227,13,1,192,0,0,0,198,67,14,1,198,163,14,1,192,0,0,0,198,3,15,1,197,130,55,0,192,0,0,0,198,99,15,1,198,195,15,1,198,35,16,1,198,131,16,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,16,1,192,0,0,0,198,67,17,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,17,1,197,195,55,0,192,0,0,0,197,34,56,0,198,226,17,1,192,0,0,0,198,34,18,1,197,98,56,0,192,0,0,0,198,98,18,1,198,163,18,1,192,0,0,0,192,0,0,0,198,3,19,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,56,0,198,99,19,1,198,194,19,1,192,0,0,0,192,0,0,0,198,3,20,1,198,98,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,21,1,198,162,21,1,198,227,21,1,197,227,56,0,198,67,22,1,192,0,0,0,198,162,22,1,198,226,22,1,198,34,23,1,198,98,23,1,192,0,0,0,197,67,57,0,192,0,0,0,192,0,0,0,198,162,23,1,198,227,23,1,198,66,24,1,198,131,24,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,24,1,192,0,0,0,192,0,0,0,198,35,25,1,198,130,25,1,192,0,0,0,197,163,57,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,25,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,26,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,26,1,192,0,0,0,192,0,0,0,198,227,26,1,198,67,27,1,198,163,27,1,192,0,0,0,198,2,28,1,198,67,28,1,192,0,0,0,198,163,28,1,192,0,0,0,198,2,29,1,192,0,0,0,192,0,0,0,192,0,0,0,198,67,29,1,198,163,29,1,192,0,0,0,192,0,0,0,198,2,30,1,192,0,0,0,192,0,0,0,198,67,30,1,192,0,0,0,192,0,0,0,198,162,30,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,58,0,198,226,30,1,198,35,31,1,197,66,58,0,192,0,0,0,198,131,31,1,192,0,0,0,198,227,31,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,32,1,198,163,32,1,192,0,0,0,198,3,33,1,192,0,0,0,192,0,0,0,197,130,58,0,192,0,0,0,198,99,33,1,198,195,33,1,192,0,0,0,198,35,34,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,34,1,198,195,34,1,192,0,0,0,192,0,0,0,198,35,35,1,192,0,0,0,192,0,0,0,198,131,35,1,192,0,0,0,198,227,35,1,192,0,0,0,198,67,36,1,192,0,0,0,198,163,36,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,58,0,192,0,0,0,192,0,0,0,197,35,59,0,192,0,0,0,198,3,37,1,198,98,37,1,197,130,59,0,192,0,0,0,192,0,0,0,198,162,37,1,198,227,37,1,198,66,38,1,192,0,0,0,198,131,38,1,198,226,38,1,198,34,39,1,198,99,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,40,1,198,99,40,1,192,0,0,0,192,0,0,0,198,195,40,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,41,1,197,194,59,0,198,130,41,1,192,0,0,0,198,194,41,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,42,1,192,0,0,0,198,98,42,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,60,0,198,163,42,1,192,0,0,0,192,0,0,0,192,0,0,0,198,2,43,1,198,67,43,1,197,66,60,0,192,0,0,0,192,0,0,0,198,163,43,1,198,2,44,1,192,0,0,0,197,130,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,44,1,192,0,0,0,198,163,44,1,198,2,45,1,192,0,0,0,198,66,45,1,192,0,0,0,198,131,45,1,197,194,60,0,198,226,45,1,197,2,61,0,197,66,61,0,198,35,46,1,198,131,46,1,192,0,0,0,198,227,46,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,47,1,198,130,47,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,47,1,192,0,0,0,192,0,0,0,198,34,48,1,198,98,48,1,198,163,48,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,49,1,198,66,49,1,197,227,61,0,198,130,49,1,192,0,0,0,198,194,49,1,198,3,50,1,197,67,62,0,192,0,0,0,197,162,62,0,198,99,50,1,192,0,0,0,197,226,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,50,1,192,0,0,0,198,34,51,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,51,1,192,0,0,0,198,163,51,1,198,3,52,1,198,99,52,1,198,195,52,1,198,35,53,1,198,131,53,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,63,0,198,226,53,1,192,0,0,0,198,34,54,1,192,0,0,0,198,99,54,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,63,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,63,0,198,194,54,1,198,3,55,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,55,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,63,0,197,34,64,0,198,194,55,1,192,0,0,0,192,0,0,0,197,98,64,0,198,3,56,1,192,0,0,0,198,98,56,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,56,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,57,1,192,0,0,0,198,66,57,1,192,0,0,0,198,131,57,1,198,227,57,1,192,0,0,0,192,0,0,0,192,0,0,0,197,162,64,0,192,0,0,0,192,0,0,0,198,67,58,1,192,0,0,0,192,0,0,0,198,163,58,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,59,1,192,0,0,0,197,226,64,0,192,0,0,0,192,0,0,0,197,35,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,59,1,192,0,0,0,192,0,0,0,198,162,59,1,192,0,0,0,198,227,59,1,198,66,60,1,192,0,0,0,198,130,60,1,192,0,0,0,198,195,60,1,192,0,0,0,192,0,0,0,197,130,65,0,198,34,61,1,198,98,61,1,198,163,61,1,197,194,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,62,1,197,2,66,0,192,0,0,0,198,99,62,1,198,194,62,1,198,3,63,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,63,1,198,162,63,1,198,226,63,1,198,35,64,1,192,0,0,0,198,130,64,1,192,0,0,0,198,195,64,1,192,0,0,0,197,66,66,0,192,0,0,0,198,35,65,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,65,1,192,0,0,0,198,227,65,1,198,67,66,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,66,1,192,0,0,0,197,130,66,0,192,0,0,0,197,194,66,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,66,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,67,1,192,0,0,0,198,130,67,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,67,1,198,35,68,1,192,0,0,0,198,130,68,1,198,194,68,1,192,0,0,0,192,0,0,0,198,3,69,1,198,99,69,1,192,0,0,0,192,0,0,0,197,2,67,0,192,0,0,0,198,194,69,1,192,0,0,0,198,2,70,1,192,0,0,0,198,67,70,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,70,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,70,1,197,66,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,71,1,192,0,0,0,192,0,0,0,198,130,71,1,198,194,71,1,198,2,72,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,67,0,192,0,0,0,192,0,0,0,198,67,72,1,192,0,0,0,192,0,0,0,198,163,72,1,192,0,0,0,192,0,0,0,192,0,0,0,197,194,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,73,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,73,1,198,163,73,1,192,0,0,0,192,0,0,0,198,2,74,1,198,67,74,1,192,0,0,0,192,0,0,0,198,163,74,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,76,1,197,67,68,0,192,0,0,0,198,99,76,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,76,1,198,3,77,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,77,1,192,0,0,0,192,0,0,0,198,194,77,1,192,0,0,0,198,2,78,1,192,0,0,0,192,0,0,0,197,162,68,0,192,0,0,0,192,0,0,0,198,66,78,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,78,1,192,0,0,0,198,227,78,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,79,1,198,131,79,1,198,227,79,1,198,66,80,1,198,130,80,1,198,194,80,1,192,0,0,0,198,2,81,1,198,66,81,1,192,0,0,0,198,131,81,1,192,0,0,0,192,0,0,0,192,0,0,0,198,227,81,1,198,67,82,1,192,0,0,0,198,162,82,1,197,227,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,69,0,198,226,82,1,192,0,0,0,198,35,83,1,198,131,83,1,197,130,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,83,1,198,35,84,1,198,130,84,1,198,195,84,1,192,0,0,0,198,35,85,1,198,131,85,1,192,0,0,0,192,0,0,0,198,227,85,1,192,0,0,0,198,66,86,1,192,0,0,0,197,194,69,0,197,2,70,0,198,130,86,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,86,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,87,1,198,99,87,1,192,0,0,0,198,194,87,1,192,0,0,0,192,0,0,0,198,2,88,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,70,0,192,0,0,0,192,0,0,0,198,66,88,1,197,130,70,0,192,0,0,0,198,131,88,1,198,226,88,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,70,0,192,0,0,0,192,0,0,0,198,35,89,1,192,0,0,0,198,131,89,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,89,1,192,0,0,0,192,0,0,0,198,34,90,1,192,0,0,0,198,99,90,1,192,0,0,0,192,0,0,0,198,194,90,1,192,0,0,0,192,0,0,0,198,3,91,1,192,0,0,0,198,98,91,1,192,0,0,0,198,163,91,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,92,1,198,99,92,1,198,195,92,1,192,0,0,0,192,0,0,0,198,35,93,1,192,0,0,0,198,131,93,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,93,1,192,0,0,0,192,0,0,0,192,0,0,0,198,66,94,1,197,3,71,0,192,0,0,0,192,0,0,0,198,131,94,1,198,227,94,1,198,66,95,1,198,130,95,1,198,195,95,1,192,0,0,0,198,34,96,1,197,98,71,0,198,98,96,1,197,162,71,0,192,0,0,0,198,163,96,1,192,0,0,0,198,2,97,1,192,0,0,0,198,66,97,1,198,130,97,1,198,194,97,1,192,0,0,0,192,0,0,0,192,0,0,0,197,226,71,0,192,0,0,0,198,3,98,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,98,1,198,195,98,1,192,0,0,0,192,0,0,0,192,0,0,0,198,34,99,1,198,98,99,1,192,0,0,0,197,35,72,0,192,0,0,0,197,130,72,0,192,0,0,0,198,163,99,1,192,0,0,0,192,0,0,0,198,3,100,1,192,0,0,0,197,194,72,0,198,99,100,1,192,0,0,0,192,0,0,0,198,195,100,1,192,0,0,0,198,34,101,1,198,98,101,1,198,163,101,1,198,2,102,1,198,67,102,1,198,163,102,1,192,0,0,0,192,0,0,0,198,3,103,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,103,1,192,0,0,0,198,195,103,1,197,3,73,0,198,35,104,1,198,131,104,1,198,226,104,1,198,35,105,1,198,131,105,1,197,98,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,105,1,198,67,106,1,198,163,106,1,197,162,73,0,197,227,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,107,1,192,0,0,0,198,99,107,1,192,0,0,0,198,194,107,1,192,0,0,0,192,0,0,0,197,66,74,0,198,3,108,1,198,98,108,1,198,162,108,1,192,0,0,0,198,227,108,1,198,67,109,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,109,1,198,2,110,1,192,0,0,0,198,67,110,1,198,163,110,1,198,2,111,1,198,67,111,1,198,163,111,1,198,2,112,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,112,1,192,0,0,0,192,0,0,0,192,0,0,0,198,130,112,1,192,0,0,0,198,195,112,1,198,34,113,1,198,99,113,1,192,0,0,0,197,131,74,0,198,195,113,1,197,226,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,114,1,198,131,114,1,192,0,0,0,197,34,75,0,197,99,75,0,192,0,0,0,198,226,114,1,197,194,75,0,198,35,115,1,198,131,115,1,198,226,115,1,198,35,116,1,192,0,0,0,198,130,116,1,198,195,116,1,197,2,76,0,198,34,117,1,198,99,117,1,197,67,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,117,1,198,34,118,1,192,0,0,0,198,99,118,1,192,0,0,0,198,194,118,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,119,1,192,0,0,0,192,0,0,0,198,98,119,1,198,163,119,1,192,0,0,0,198,3,120,1,198,99,120,1,197,162,76,0,198,195,120,1,198,35,121,1,198,130,121,1,198,194,121,1,198,2,122,1,198,66,122,1,192,0,0,0,198,130,122,1,192,0,0,0,192,0,0,0,198,194,122,1,192,0,0,0,198,3,123,1,192,0,0,0,192,0,0,0,198,99,123,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,123,1,198,35,124,1,192,0,0,0,192,0,0,0,192,0,0,0,198,130,124,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,124,1,192,0,0,0,192,0,0,0,198,35,125,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,125,1,198,195,125,1,198,35,126,1,198,130,126,1,198,194,126,1,192,0,0,0,198,2,127,1,198,66,127,1,198,131,127,1,198,226,127,1,192,0,0,0,192,0,0,0,192,0,0,0,198,34,128,1,198,98,128,1,198,163,128,1,198,3,129,1,192,0,0,0,192,0,0,0,198,99,129,1,192,0,0,0,198,194,129,1,198,2,130,1,192,0,0,0,198,67,130,1,198,163,130,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,131,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,131,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,131,1,192,0,0,0,198,2,132,1,192,0,0,0,198,67,132,1,198,162,132,1,192,0,0,0,192,0,0,0,198,226,132,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,133,1,192,0,0,0,192,0,0,0,198,131,133,1,192,0,0,0,198,227,133,1,192,0,0,0,198,67,134,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,77,0,198,162,134,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,77,0,192,0,0,0,198,227,134,1,192,0,0,0,198,67,135,1,192,0,0,0,192,0,0,0,198,163,135,1,198,2,136,1,198,67,136,1,198,163,136,1,192,0,0,0,198,2,137,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,137,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,137,1,192,0,0,0,198,2,138,1,192,0,0,0,197,194,77,0,198,67,138,1,198,162,138,1,197,2,78,0,198,227,138,1,198,67,139,1,198,162,139,1,198,227,139,1,198,67,140,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,140,1,192,0,0,0,198,227,140,1,192,0,0,0,197,66,78,0,192,0,0,0,198,67,141,1,198,163,141,1,192,0,0,0,198,3,142,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,142,1,192,0,0,0,198,194,142,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,143,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,143,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,143,1,198,2,144,1,192,0,0,0,192,0,0,0,192,0,0,0,198,66,144,1,192,0,0,0,198,131,144,1,198,227,144,1,198,66,145,1,192,0,0,0,192,0,0,0,198,131,145,1,192,0,0,0,198,226,145,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,146,1,192,0,0,0,197,195,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,146,1,198,227,146,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,147,1,198,130,147,1,192,0,0,0,198,195,147,1,198,35,148,1,192,0,0,0,192,0,0,0,197,34,79,0,198,130,148,1,198,194,148,1,198,3,149,1,192,0,0,0,198,99,149,1,192,0,0,0,198,195,149,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,150,1,192,0,0,0,192,0,0,0,198,131,150,1,192,0,0,0,197,98,79,0,192,0,0,0,198,227,150,1,198,67,151,1,192,0,0,0,198,163,151,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,152,1,192,0,0,0,192,0,0,0,192,0,0,0,198,67,152,1,198,163,152,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,153,1,198,67,153,1,192,0,0,0,198,162,153,1,192,0,0,0,198,227,153,1,192,0,0,0,192,0,0,0,198,67,154,1,197,226,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,154,1,192,0,0,0,192,0,0,0,197,34,80,0,192,0,0,0,192,0,0,0,198,2,155,1,192,0,0,0,198,67,155,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,155,1,198,227,155,1,192,0,0,0,198,67,156,1,192,0,0,0,192,0,0,0,198,162,156,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,156,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,157,1,192,0,0,0,198,131,157,1,198,226,157,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,158,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,158,1,192,0,0,0,192,0,0,0,198,226,158,1,192,0,0,0,197,98,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,159,1,192,0,0,0,192,0,0,0,198,131,159,1,198,227,159,1,192,0,0,0,192,0,0,0,197,163,80,0,192,0,0,0,197,2,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,81,0,198,67,160,1,192,0,0,0,198,163,160,1,192,0,0,0,198,2,161,1,198,67,161,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,161,1,192,0,0,0,198,2,162,1,192,0,0,0,197,130,81,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,162,1,198,163,162,1,198,3,163,1,192,0,0,0,192,0,0,0,198,99,163,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,163,1,192,0,0,0,192,0,0,0,198,35,164,1,198,130,164,1,192,0,0,0,192,0,0,0,198,195,164,1,198,34,165,1,192,0,0,0,192,0,0,0,198,99,165,1,197,194,81,0,198,194,165,1,198,2,166,1,192,0,0,0,192,0,0,0,198,66,166,1,192,0,0,0,192,0,0,0,198,130,166,1,192,0,0,0,192,0,0,0,198,194,166,1,198,2,167,1,198,66,167,1,197,2,82,0,197,66,82,0,192,0,0,0,198,131,167,1,192,0,0,0,198,227,167,1,192,0,0,0,192,0,0,0,192,0,0,0,198,67,168,1,198,163,168,1,192,0,0,0,192,0,0,0,192,0,0,0,198,2,169,1,198,66,169,1,192,0,0,0,192,0,0,0,198,131,169,1,192,0,0,0,192,0,0,0,198,227,169,1,192,0,0,0,192,0,0,0,197,130,82,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,170,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,170,1,197,195,82,0,192,0,0,0,192,0,0,0,198,3,171,1,198,98,171,1,198,163,171,1,192,0,0,0,197,34,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,172,1,192,0,0,0,192,0,0,0,198,66,172,1,192,0,0,0,192,0,0,0,198,130,172,1,192,0,0,0,198,195,172,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,173,1,192,0,0,0,192,0,0,0,198,130,173,1,198,194,173,1,198,3,174,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,174,1,192,0,0,0,197,98,83,0,198,163,174,1,192,0,0,0,192,0,0,0,197,162,83,0,198,3,175,1,197,227,83,0,192,0,0,0,198,99,175,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,84,0,192,0,0,0,198,195,175,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,176,1,198,131,176,1,192,0,0,0,192,0,0,0,198,227,176,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,177,1,197,162,84,0,192,0,0,0,198,163,177,1,198,3,178,1,197,226,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,178,1,192,0,0,0,198,195,178,1,198,35,179,1,198,130,179,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,179,1,198,35,180,1,198,131,180,1,198,227,180,1,198,67,181,1,192,0,0,0,192,0,0,0,198,163,181,1,198,3,182,1,198,99,182,1,198,194,182,1,197,35,85,0,197,130,85,0,197,194,85,0,198,2,183,1,198,67,183,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,183,1,192,0,0,0,192,0,0,0,198,2,184,1,192,0,0,0,192,0,0,0,198,67,184,1,198,162,184,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,184,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,86,0,198,34,185,1,198,99,185,1,192,0,0,0,192,0,0,0,198,195,185,1,192,0,0,0,198,34,186,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,186,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,186,1,197,66,86,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,187,1,192,0,0,0,198,67,187,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,187,1,192,0,0,0,198,227,187,1,198,66,188,1,198,131,188,1,198,227,188,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,189,1,197,130,86,0,192,0,0,0,192,0,0,0,198,131,189,1,198,227,189,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,86,0,198,67,190,1,198,163,190,1,198,2,191,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,191,1,198,131,191,1,192,0,0,0,198,227,191,1,192,0,0,0,198,67,192,1,198,162,192,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,192,1,198,35,193,1,192,0,0,0,198,130,193,1,197,3,87,0,198,194,193,1,198,3,194,1,198,98,194,1,197,98,87,0,198,163,194,1,192,0,0,0,198,2,195,1,192,0,0,0,198,67,195,1,197,162,87,0,198,163,195,1,192,0,0,0,192,0,0,0,197,226,87,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,196,1,192,0,0,0,198,99,196,1,192,0,0,0,192,0,0,0,198,195,196,1,198,35,197,1,192,0,0,0,192,0,0,0,198,131,197,1,197,34,88,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,197,1,192,0,0,0,198,67,198,1,192,0,0,0,198,162,198,1,198,227,198,1,192,0,0,0,192,0,0,0,198,67,199,1,197,99,88,0,192,0,0,0,197,194,88,0,198,163,199,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,200,1,192,0,0,0,198,98,200,1,192,0,0,0,198,163,200,1,198,2,201,1,198,67,201,1,192,0,0,0,198,163,201,1,197,3,89,0,192,0,0,0,192,0,0,0,198,2,202,1,192,0,0,0,192,0,0,0,192,0,0,0,197,98,89,0,192,0,0,0,192,0,0,0,198,66,202,1,192,0,0,0,192,0,0,0,198,130,202,1,198,195,202,1,197,162,89,0,192,0,0,0,198,34,203,1,192,0,0,0,192,0,0,0,192,0,0,0,198,98,203,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,203,1,192,0,0,0,192,0,0,0,198,3,204,1,198,99,204,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,204,1,192,0,0,0,197,227,89,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,205,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,205,1,192,0,0,0,198,195,205,1,192,0,0,0,198,35,206,1,192,0,0,0,198,130,206,1,192,0,0,0,198,195,206,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,207,1,192,0,0,0,198,131,207,1,197,66,90,0,197,130,90,0,197,194,90,0,192,0,0,0,198,226,207,1,192,0,0,0,198,34,208,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,208,1,192,0,0,0,198,195,208,1,192,0,0,0,198,35,209,1,198,131,209,1,192,0,0,0,198,226,209,1,197,2,91,0,198,34,210,1,198,99,210,1,198,195,210,1,192,0,0,0,192,0,0,0,198,35,211,1,198,131,211,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,211,1,192,0,0,0,198,67,212,1,192,0,0,0,192,0,0,0,197,66,91,0,192,0,0,0,192,0,0,0,198,163,212,1,198,3,213,1,198,99,213,1,198,194,213,1,192,0,0,0,192,0,0,0,198,2,214,1,192,0,0,0,198,67,214,1,197,131,91,0,198,163,214,1,197,226,91,0,198,3,215,1,197,34,92,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,215,1,198,163,215,1,198,2,216,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,216,1,198,162,216,1,198,226,216,1,192,0,0,0,192,0,0,0,198,35,217,1,192,0,0,0,198,131,217,1,192,0,0,0,198,226,217,1,198,34,218,1,192,0,0,0,198,98,218,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,218,1,197,99,92,0,198,3,219,1,198,99,219,1,192,0,0,0,198,195,219,1,198,34,220,1,198,98,220,1,197,194,92,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,220,1,192,0,0,0,198,3,221,1,192,0,0,0,198,99,221,1,192,0,0,0,192,0,0,0,198,194,221,1,197,2,93,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,222,1,192,0,0,0,197,67,93,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,222,1,192,0,0,0,192,0,0,0,198,162,222,1,198,227,222,1,192,0,0,0,192,0,0,0,197,163,93,0,192,0,0,0,197,3,94,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,223,1,198,162,223,1,198,227,223,1,198,67,224,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,224,1,198,3,225,1,198,99,225,1,198,195,225,1,198,35,226,1,192,0,0,0,192,0,0,0,198,130,226,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,226,1,192,0,0,0,192,0,0,0,197,98,94,0,192,0,0,0,198,35,227,1,198,130,227,1,192,0,0,0,192,0,0,0,197,163,94,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,227,1,192,0,0,0,192,0,0,0,198,34,228,1,192,0,0,0,192,0,0,0,197,3,95,0,198,99,228,1,197,99,95,0,192,0,0,0,198,195,228,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,229,1,192,0,0,0,192,0,0,0,198,99,229,1,192,0,0,0,198,195,229,1,192,0,0,0,192,0,0,0,198,34,230,1,192,0,0,0,198,99,230,1,197,194,95,0,198,194,230,1,198,3,231,1,192,0,0,0,197,2,96,0,192,0,0,0,198,99,231,1,198,195,231,1,198,34,232,1,192,0,0,0,192,0,0,0,197,66,96,0,198,98,232,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,232,1,198,3,233,1,198,99,233,1,198,195,233,1,198,34,234,1,198,98,234,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,234,1,192,0,0,0,192,0,0,0,192,0,0,0,197,131,96,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,235,1,198,99,235,1,198,194,235,1,192,0,0,0,192,0,0,0,198,3,236,1,198,99,236,1,198,194,236,1,192,0,0,0,197,227,96,0,192,0,0,0,192,0,0,0,197,67,97,0,192,0,0,0,192,0,0,0,198,3,237,1,192,0,0,0,198,99,237,1,192,0,0,0,192,0,0,0,198,194,237,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,238,1,198,98,238,1,192,0,0,0,192,0,0,0,198,163,238,1,192,0,0,0,197,163,97,0,198,2,239,1,192,0,0,0,197,2,98,0,198,66,239,1,197,67,98,0,197,162,98,0,192,0,0,0,192,0,0,0,198,131,239,1,198,227,239,1,198,67,240,1,198,163,240,1,198,3,241,1,198,99,241,1,192,0,0,0,198,195,241,1,197,227,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,242,1,192,0,0,0,198,131,242,1,198,226,242,1,198,35,243,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,243,1,192,0,0,0,198,227,243,1,197,66,99,0,198,67,244,1,192,0,0,0,197,131,99,0,192,0,0,0,192,0,0,0,198,163,244,1,192,0,0,0,197,226,99,0,197,34,100,0,197,98,100,0,198,3,245,1,192,0,0,0,192,0,0,0,198,99,245,1,198,195,245,1,192,0,0,0,192,0,0,0,192,0,0,0,198,34,246,1,197,162,100,0,192,0,0,0,198,99,246,1,197,227,100,0,198,195,246,1,192,0,0,0,192,0,0,0,198,34,247,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,247,1,198,194,247,1,198,2,248,1,198,67,248,1,197,66,101,0,198,163,248,1,198,3,249,1,192,0,0,0,198,98,249,1,192,0,0,0,192,0,0,0,198,163,249,1,198,2,250,1,197,130,101,0,198,67,250,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,250,1,198,3,251,1,198,98,251,1,198,163,251,1,192,0,0,0,198,3,252,1,192,0,0,0,198,99,252,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,252,1,192,0,0,0,197,195,101,0,192,0,0,0,198,35,253,1,192,0,0,0,198,131,253,1,192,0,0,0,192,0,0,0,198,227,253,1,198,67,254,1,197,35,102,0,198,163,254,1,198,3,255,1,198,99,255,1,192,0,0,0,197,130,102,0,197,194,102,0,198,195,255,1,197,2,103,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,0,2,198,98,0,2,198,163,0,2,198,3,1,2,197,66,103,0,192,0,0,0,197,131,103,0,198,99,1,2,198,195,1,2,197,226,103,0,198,35,2,2,198,131,2,2,198,227,2,2,192,0,0,0,192,0,0,0,192,0,0,0,198,66,3,2,198,130,3,2,192,0,0,0,198,195,3,2,192,0,0,0,192,0,0,0,198,35,4,2,192,0,0,0,197,34,104,0,197,98,104,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,4,2,197,163,104,0,197,2,105,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,4,2,198,67,5,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,2,198,226,5,2,197,67,105,0,192,0,0,0,192,0,0,0,198,35,6,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,6,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,6,2,198,2,7,2,192,0,0,0,192,0,0,0,197,163,105,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,7,2,192,0,0,0,192,0,0,0,198,162,7,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,7,2,192,0,0,0,198,66,8,2,198,131,8,2,192,0,0,0,192,0,0,0,198,227,8,2,192,0,0,0,198,67,9,2,192,0,0,0,198,162,9,2,198,227,9,2,198,66,10,2,192,0,0,0,198,131,10,2,197,2,106,0,197,67,106,0,198,227,10,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,11,2,197,162,106,0,192,0,0,0,198,162,11,2,192,0,0,0,192,0,0,0,198,227,11,2,198,67,12,2,198,163,12,2,192,0,0,0,192,0,0,0,197,227,106,0,192,0,0,0,198,3,13,2,198,98,13,2,192,0,0,0,198,163,13,2,198,3,14,2,198,99,14,2,192,0,0,0,192,0,0,0,197,66,107,0,198,194,14,2,192,0,0,0,192,0,0,0,198,3,15,2,192,0,0,0,192,0,0,0,197,130,107,0,192,0,0,0,197,194,107,0,198,99,15,2,192,0,0,0,198,195,15,2,198,35,16,2,198,131,16,2,198,227,16,2,198,67,17,2,192,0,0,0,192,0,0,0,198,162,17,2,192,0,0,0,192,0,0,0,198,227,17,2,198,67,18,2,192,0,0,0,192,0,0,0,198,163,18,2,198,2,19,2,198,67,19,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,19,2,192,0,0,0,192,0,0,0,198,226,19,2,198,35,20,2,192,0,0,0,198,131,20,2,198,227,20,2,197,2,108,0,192,0,0,0,198,66,21,2,192,0,0,0,198,131,21,2,192,0,0,0,197,66,108,0,197,130,108,0,198,227,21,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,22,2,192,0,0,0,192,0,0,0,198,163,22,2,198,3,23,2,198,98,23,2,192,0,0,0,198,163,23,2,198,3,24,2,192,0,0,0,198,98,24,2,198,163,24,2,192,0,0,0,192,0,0,0,198,3,25,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,25,2,192,0,0,0,198,195,25,2,192,0,0,0,198,35,26,2,198,131,26,2,198,227,26,2,192,0,0,0,198,67,27,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,27,2,192,0,0,0,192,0,0,0,198,2,28,2,198,67,28,2,197,194,108,0,198,163,28,2,198,2,29,2,198,66,29,2,198,131,29,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,29,2,192,0,0,0,197,2,109,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,30,2,198,162,30,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,30,2,192,0,0,0,192,0,0,0,198,66,31,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,31,2,192,0,0,0,192,0,0,0,192,0,0,0,198,226,31,2,197,66,109,0,198,35,32,2,192,0,0,0,198,131,32,2,192,0,0,0,198,226,32,2,197,131,109,0,198,35,33,2,197,226,109,0,198,131,33,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,33,2,197,34,110,0,192,0,0,0,198,66,34,2,192,0,0,0,198,131,34,2,198,226,34,2,198,35,35,2,192,0,0,0,198,131,35,2,198,226,35,2,198,34,36,2,192,0,0,0,198,99,36,2,198,195,36,2,197,99,110,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,37,2,192,0,0,0,192,0,0,0,192,0,0,0,198,131,37,2,198,227,37,2,192,0,0,0,198,67,38,2,198,163,38,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,39,2,192,0,0,0,198,99,39,2,198,195,39,2,192,0,0,0,192,0,0,0,192,0,0,0,198,35,40,2,192,0,0,0,198,131,40,2,197,194,110,0,197,2,111,0,198,227,40,2,198,66,41,2,198,130,41,2,197,66,111,0,192,0,0,0,192,0,0,0,198,195,41,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,111,0,198,35,42,2,198,130,42,2,198,195,42,2,192,0,0,0,198,35,43,2,192,0,0,0,192,0,0,0,192,0,0,0,198,131,43,2,197,194,111,0,198,226,43,2,198,35,44,2,198,130,44,2,192,0,0,0,198,194,44,2,198,3,45,2,192,0,0,0,192,0,0,0,198,99,45,2,198,194,45,2,198,2,46,2,192,0,0,0,192,0,0,0,192,0,0,0,198,66,46,2,198,131,46,2,192,0,0,0,192,0,0,0,198,227,46,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,47,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,47,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,47,2,192,0,0,0,192,0,0,0,198,67,48,2,192,0,0,0,198,163,48,2,192,0,0,0,192,0,0,0,198,2,49,2,192,0,0,0,192,0,0,0,198,66,49,2,198,130,49,2,192,0,0,0,198,195,49,2,192,0,0,0,198,34,50,2,198,99,50,2,198,194,50,2,192,0,0,0,192,0,0,0,198,3,51,2,198,98,51,2,192,0,0,0,198,163,51,2,192,0,0,0,192,0,0,0,198,3,52,2,197,2,112,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,52,2,198,194,52,2,192,0,0,0,198,2,53,2,197,66,112,0,198,66,53,2,198,131,53,2,198,227,53,2,192,0,0,0,192,0,0,0,198,66,54,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,54,2,192,0,0,0,192,0,0,0,197,130,112,0,198,226,54,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,55,2,192,0,0,0,192,0,0,0,192,0,0,0,197,194,112,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,55,2,192,0,0,0,192,0,0,0,198,195,55,2,197,2,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,56,2,192,0,0,0,198,130,56,2,198,195,56,2,198,35,57,2,198,130,57,2,198,195,57,2,198,35,58,2,198,130,58,2,192,0,0,0,198,195,58,2,198,35,59,2,192,0,0,0,198,130,59,2,198,194,59,2,198,3,60,2,198,98,60,2,198,163,60,2,198,3,61,2,198,98,61,2,198,162,61,2,197,66,113,0,198,226,61,2,198,35,62,2,192,0,0,0,198,130,62,2,198,194,62,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,63,2,198,99,63,2,198,195,63,2,198,35,64,2,192,0,0,0,198,131,64,2,192,0,0,0,198,227,64,2,192,0,0,0,198,67,65,2,198,163,65,2,198,2,66,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,113,0,198,67,66,2,198,162,66,2,192,0,0,0,198,226,66,2,197,194,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,67,2,192,0,0,0,198,99,67,2,192,0,0,0,192,0,0,0,198,195,67,2,192,0,0,0,192,0,0,0,192,0,0,0,198,34,68,2,198,98,68,2,198,163,68,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,69,2,192,0,0,0,198,66,69,2,197,2,114,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,69,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,69,2,198,67,70,2,198,163,70,2,192,0,0,0,198,3,71,2,197,67,114,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,71,2,198,163,71,2,198,2,72,2,192,0,0,0,198,67,72,2,192,0,0,0,192,0,0,0,198,163,72,2,192,0,0,0,192,0,0,0,198,3,73,2,198,99,73,2,198,194,73,2,198,3,74,2,198,99,74,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,74,2,192,0,0,0,198,3,75,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,75,2,198,194,75,2,198,3,76,2,192,0,0,0,198,99,76,2,192,0,0,0,192,0,0,0,198,194,76,2,192,0,0,0,192,0,0,0,198,2,77,2,198,67,77,2,192,0,0,0,192,0,0,0,192,0,0,0,198,162,77,2,197,163,114,0,192,0,0,0,192,0,0,0,198,227,77,2,198,67,78,2,192,0,0,0,192,0,0,0,192,0,0,0,198,162,78,2,197,3,115,0,192,0,0,0,192,0,0,0,198,226,78,2,198,35,79,2,192,0,0,0,192,0,0,0,198,131,79,2,198,226,79,2,198,34,80,2,198,98,80,2,192,0,0,0,198,163,80,2,192,0,0,0,198,2,81,2,198,66,81,2,192,0,0,0,192,0,0,0,198,130,81,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,81,2,192,0,0,0,198,35,82,2,192,0,0,0,192,0,0,0,197,98,115,0,197,162,115,0,192,0,0,0,192,0,0,0,198,131,82,2,198,227,82,2,198,66,83,2,197,227,115,0,192,0,0,0,192,0,0,0,198,131,83,2,192,0,0,0,198,227,83,2,197,66,116,0,198,67,84,2,198,162,84,2,192,0,0,0,198,227,84,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,85,2,192,0,0,0,198,163,85,2,192,0,0,0,192,0,0,0,198,3,86,2,197,130,116,0,192,0,0,0,198,98,86,2,192,0,0,0,192,0,0,0,198,162,86,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,86,2,197,194,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,87,2,192,0,0,0,192,0,0,0,192,0,0,0,198,131,87,2,197,3,117,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,87,2,198,35,88,2,198,131,88,2,192,0,0,0,197,98,117,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,88,2,192,0,0,0,198,34,89,2,192,0,0,0,198,98,89,2,197,162,117,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,89,2,192,0,0,0,198,3,90,2,198,99,90,2,197,226,117,0,198,195,90,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,91,2,192,0,0,0,192,0,0,0,198,99,91,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,91,2,192,0,0,0,198,35,92,2,192,0,0,0,192,0,0,0,198,131,92,2,192,0,0,0,198,226,92,2,192,0,0,0,198,34,93,2,198,98,93,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,93,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,93,2,192,0,0,0,198,67,94,2,198,162,94,2,192,0,0,0,192,0,0,0,197,35,118,0,192,0,0,0,198,227,94,2,198,67,95,2,198,163,95,2,197,131,118,0,192,0,0,0,198,2,96,2,198,67,96,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,96,2,192,0,0,0,192,0,0,0,192,0,0,0,197,226,118,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,97,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,97,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,97,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,119,0,192,0,0,0,198,34,98,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,98,2,192,0,0,0,198,194,98,2,192,0,0,0,192,0,0,0,192,0,0,0,198,2,99,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,99,2,198,130,99,2,198,195,99,2,198,35,100,2,192,0,0,0,197,98,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,119,0,192,0,0,0,192,0,0,0,198,130,100,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,100,2,198,35,101,2,198,131,101,2,198,226,101,2,192,0,0,0,198,34,102,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,102,2,198,195,102,2,192,0,0,0,192,0,0,0,197,226,119,0,198,35,103,2,198,130,103,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,103,2,198,35,104,2,192,0,0,0,192,0,0,0,192,0,0,0,198,130,104,2,192,0,0,0,198,194,104,2,192,0,0,0,197,34,120,0,198,3,105,2,192,0,0,0,198,99,105,2,192,0,0,0,198,195,105,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,106,2,198,131,106,2,192,0,0,0,198,226,106,2,198,35,107,2,192,0,0,0,198,131,107,2,192,0,0,0,192,0,0,0,198,226,107,2,198,35,108,2,192,0,0,0,197,99,120,0,192,0,0,0,198,131,108,2,198,227,108,2,192,0,0,0,192,0,0,0,198,66,109,2,198,131,109,2,192,0,0,0,198,227,109,2,192,0,0,0,198,67,110,2,192,0,0,0,198,163,110,2,197,194,120,0,192,0,0,0,198,3,111,2,198,99,111,2,192,0,0,0,198,194,111,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,121,0,198,2,112,2,198,67,112,2,198,162,112,2,192,0,0,0,198,227,112,2,198,67,113,2,198,162,113,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,121,0,197,130,121,0,192,0,0,0,198,227,113,2,192,0,0,0,198,67,114,2,198,163,114,2,192,0,0,0,197,195,121,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,122,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,115,2,192,0,0,0,198,67,115,2,192,0,0,0,198,162,115,2,192,0,0,0,197,98,122,0,192,0,0,0,192,0,0,0,198,227,115,2,192,0,0,0,192,0,0,0,198,67,116,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,116,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,117,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,117,2,198,195,117,2,192,0,0,0,192,0,0,0,192,0,0,0,198,35,118,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,118,2,198,227,118,2,198,67,119,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,119,2,197,163,122,0,198,227,119,2,192,0,0,0,192,0,0,0,198,66,120,2,192,0,0,0,192,0,0,0,198,130,120,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,120,2,198,2,121,2,197,2,123,0,198,66,121,2,192,0,0,0,198,131,121,2,192,0,0,0,198,227,121,2,198,67,122,2,198,163,122,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,123,2,192,0,0,0,192,0,0,0,197,66,123,0,198,66,123,2,192,0,0,0,192,0,0,0,192,0,0,0,198,130,123,2,198,194,123,2,198,3,124,2,192,0,0,0,198,98,124,2,192,0,0,0,192,0,0,0,198,162,124,2,198,227,124,2,198,66,125,2,197,130,123,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,123,0,198,131,125,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,125,2,198,67,126,2,192,0,0,0,192,0,0,0,198,163,126,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,127,2,198,99,127,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,127,2,192,0,0,0,198,3,128,2,198,99,128,2,192,0,0,0,198,194,128,2,198,2,129,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,129,2,192,0,0,0,192,0,0,0,198,162,129,2,198,227,129,2,197,2,124,0,192,0,0,0,197,66,124,0,192,0,0,0,198,67,130,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,130,2,192,0,0,0,192,0,0,0,192,0,0,0,198,2,131,2,198,67,131,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,131,2,192,0,0,0,198,226,131,2,192,0,0,0,198,35,132,2,198,130,132,2,198,194,132,2,192,0,0,0,198,3,133,2,192,0,0,0,198,99,133,2,192,0,0,0,192,0,0,0,198,195,133,2,198,35,134,2,192,0,0,0,198,130,134,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,134,2,198,35,135,2,192,0,0,0,192,0,0,0,198,130,135,2,198,195,135,2,198,35,136,2,198,131,136,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,136,2,192,0,0,0,198,67,137,2,192,0,0,0,192,0,0,0,198,162,137,2,198,226,137,2,192,0,0,0,198,34,138,2,192,0,0,0,198,99,138,2,198,194,138,2,198,3,139,2,198,98,139,2,197,130,124,0,197,194,124,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,139,2,198,3,140,2,198,99,140,2,192,0,0,0,192,0,0,0,198,195,140,2,192,0,0,0,192,0,0,0,198,34,141,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,141,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,141,2,192,0,0,0,192,0,0,0,198,226,141,2,192,0,0,0,198,35,142,2,198,131,142,2,192,0,0,0,198,226,142,2,198,34,143,2,192,0,0,0,192,0,0,0,198,99,143,2,198,195,143,2,192,0,0,0,192,0,0,0,192,0,0,0,198,35,144,2,198,130,144,2,192,0,0,0,198,194,144,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,145,2,198,99,145,2,198,195,145,2,198,35,146,2,192,0,0,0,198,130,146,2,198,195,146,2,192,0,0,0,192,0,0,0,198,35,147,2,192,0,0,0,192,0,0,0,198,131,147,2,198,227,147,2,192,0,0,0,198,67,148,2,197,2,125,0,192,0,0,0,198,163,148,2,192,0,0,0,198,3,149,2,198,99,149,2,198,195,149,2,198,35,150,2,192,0,0,0,198,131,150,2,198,227,150,2,197,67,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,151,2,192,0,0,0,192,0,0,0,198,131,151,2,198,227,151,2,198,67,152,2,198,163,152,2,192,0,0,0,192,0,0,0,198,3,153,2,198,99,153,2,192,0,0,0,198,194,153,2,198,3,154,2,192,0,0,0,192,0,0,0,198,98,154,2,192,0,0,0,198,162,154,2,192,0,0,0,198,226,154,2,197,162,125,0,198,35,155,2,192,0,0,0,192,0,0,0,198,130,155,2,198,195,155,2,198,35,156,2,198,131,156,2,192,0,0,0,192,0,0,0,198,227,156,2,198,67,157,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,157,2,198,226,157,2,197,227,125,0,197,67,126,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,158,2,198,99,158,2,192,0,0,0,198,195,158,2,198,35,159,2,192,0,0,0,198,131,159,2,198,227,159,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,160,2,192,0,0,0,198,163,160,2,192,0,0,0,198,2,161,2,197,162,126,0,198,67,161,2,192,0,0,0,198,162,161,2,198,227,161,2,192,0,0,0,198,66,162,2,197,227,126,0,197,66,127,0,197,130,127,0,198,131,162,2,198,227,162,2,192,0,0,0,198,67,163,2,198,162,163,2,192,0,0,0,198,226,163,2,198,35,164,2,198,131,164,2,192,0,0,0,192,0,0,0,198,227,164,2,198,67,165,2,192,0,0,0,198,163,165,2,198,2,166,2,198,67,166,2,192,0,0,0,198,162,166,2,198,227,166,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,127,0,192,0,0,0,192,0,0,0,198,66,167,2,197,35,128,0,197,130,128,0,192,0,0,0,198,131,167,2,198,226,167,2,192,0,0,0,198,35,168,2,192,0,0,0,197,194,128,0,198,130,168,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,168,2,198,35,169,2,198,131,169,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,169,2,198,66,170,2,192,0,0,0,198,130,170,2,192,0,0,0,198,195,170,2,198,34,171,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,171,2,198,195,171,2,192,0,0,0,198,34,172,2,192,0,0,0,192,0,0,0,198,99,172,2,198,195,172,2,197,2,129,0,197,67,129,0,198,35,173,2,192,0,0,0,192,0,0,0,198,130,173,2,198,195,173,2,192,0,0,0,198,35,174,2,192,0,0,0,192,0,0,0,198,131,174,2,197,162,129,0,198,226,174,2,198,34,175,2,192,0,0,0,192,0,0,0,198,99,175,2,198,195,175,2,198,35,176,2,198,131,176,2,192,0,0,0,197,226,129,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,176,2,192,0,0,0,192,0,0,0,198,34,177,2,192,0,0,0,192,0,0,0,198,98,177,2,198,163,177,2,197,35,130,0,198,2,178,2,197,131,130,0,192,0,0,0,192,0,0,0,198,67,178,2,192,0,0,0,192,0,0,0,198,163,178,2,192,0,0,0,192,0,0,0,197,226,130,0,192,0,0,0,198,3,179,2,198,99,179,2,198,194,179,2,192,0,0,0,197,34,131,0,192,0,0,0,198,3,180,2,198,99,180,2,198,195,180,2,192,0,0,0,198,35,181,2,197,98,131,0,198,131,181,2,192,0,0,0,192,0,0,0,198,227,181,2,198,66,182,2,198,130,182,2,198,194,182,2,192,0,0,0,198,3,183,2,192,0,0,0,198,99,183,2,197,162,131,0,197,226,131,0,192,0,0,0,192,0,0,0,197,34,132,0,192,0,0,0,198,195,183,2,192,0,0,0,192,0,0,0,198,35,184,2,197,98,132,0,192,0,0,0,198,131,184,2,198,227,184,2,198,67,185,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,185,2,198,3,186,2,192,0,0,0,198,99,186,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,186,2,192,0,0,0,198,34,187,2,198,98,187,2,198,162,187,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,187,2,192,0,0,0,192,0,0,0,198,67,188,2,198,163,188,2,198,3,189,2,192,0,0,0,198,98,189,2,198,163,189,2,198,3,190,2,198,99,190,2,198,195,190,2,192,0,0,0,192,0,0,0,198,34,191,2,192,0,0,0,198,99,191,2,198,195,191,2,192,0,0,0,198,34,192,2,192,0,0,0,192,0,0,0,192,0,0,0,197,162,132,0,192,0,0,0,192,0,0,0,197,226,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,192,2,198,163,192,2,192,0,0,0,192,0,0,0,198,3,193,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,193,2,198,163,193,2,198,2,194,2,198,67,194,2,192,0,0,0,197,34,133,0,192,0,0,0,192,0,0,0,198,163,194,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,195,2,192,0,0,0,198,66,195,2,198,131,195,2,198,227,195,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,196,2,192,0,0,0,198,131,196,2,198,227,196,2,192,0,0,0,198,66,197,2,198,131,197,2,198,227,197,2,198,66,198,2,198,130,198,2,192,0,0,0,197,98,133,0,192,0,0,0,197,162,133,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,198,2,197,226,133,0,192,0,0,0,198,3,199,2,198,99,199,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,199,2,192,0,0,0,198,3,200,2,192,0,0,0,198,99,200,2,198,195,200,2,192,0,0,0,192,0,0,0,198,35,201,2,198,131,201,2,192,0,0,0,192,0,0,0,198,226,201,2,192,0,0,0,197,35,134,0,192,0,0,0,198,35,202,2,197,130,134,0,197,194,134,0,198,130,202,2,192,0,0,0,197,2,135,0,198,194,202,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,203,2,198,67,203,2,192,0,0,0,198,162,203,2,198,226,203,2,192,0,0,0,192,0,0,0,198,34,204,2,198,98,204,2,198,162,204,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,204,2,192,0,0,0,192,0,0,0,198,34,205,2,192,0,0,0,192,0,0,0,198,99,205,2,198,194,205,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,206,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,206,2,198,194,206,2,198,3,207,2,198,99,207,2,198,195,207,2,197,66,135,0,192,0,0,0,192,0,0,0,198,35,208,2,198,130,208,2,197,131,135,0,197,226,135,0,192,0,0,0,192,0,0,0,198,195,208,2,198,35,209,2,198,131,209,2,192,0,0,0,192,0,0,0,197,34,136,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,209,2,192,0,0,0,192,0,0,0,198,35,210,2,192,0,0,0,192,0,0,0,198,130,210,2,198,194,210,2,198,2,211,2,192,0,0,0,198,66,211,2,198,130,211,2,198,195,211,2,198,34,212,2,192,0,0,0,192,0,0,0,198,98,212,2,192,0,0,0,198,162,212,2,192,0,0,0,192,0,0,0,198,227,212,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,136,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,213,2,198,163,213,2,192,0,0,0,192,0,0,0,198,2,214,2,198,67,214,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,214,2,198,3,215,2,192,0,0,0,192,0,0,0,198,98,215,2,198,163,215,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,216,2,192,0,0,0,192,0,0,0,192,0,0,0,198,66,216,2,198,131,216,2,192,0,0,0,198,227,216,2,198,66,217,2,192,0,0,0,198,131,217,2,192,0,0,0,192,0,0,0,192,0,0,0,197,163,136,0,198,227,217,2,192,0,0,0,198,67,218,2,198,163,218,2,198,2,219,2,192,0,0,0,192,0,0,0,198,67,219,2,198,163,219,2,198,2,220,2,198,66,220,2,198,131,220,2,192,0,0,0,198,227,220,2,192,0,0,0,198,67,221,2,198,163,221,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,222,2,192,0,0,0,198,99,222,2,198,195,222,2,192,0,0,0,197,3,137,0,198,35,223,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,223,2,192,0,0,0,198,227,223,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,224,2,192,0,0,0,198,131,224,2,198,227,224,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,225,2,198,163,225,2,192,0,0,0,198,3,226,2,192,0,0,0,198,99,226,2,192,0,0,0,198,194,226,2,198,3,227,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,227,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,227,2,197,98,137,0,192,0,0,0,192,0,0,0,198,3,228,2,192,0,0,0,192,0,0,0,192,0,0,0,198,98,228,2,192,0,0,0,198,162,228,2,192,0,0,0,197,162,137,0,197,226,137,0,198,227,228,2,198,66,229,2,198,131,229,2,192,0,0,0,192,0,0,0,192,0,0,0,198,226,229,2,198,34,230,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,230,2,192,0,0,0,197,34,138,0,198,162,230,2,198,227,230,2,192,0,0,0,198,66,231,2,192,0,0,0,198,131,231,2,198,226,231,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,232,2,198,99,232,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,232,2,198,34,233,2,198,98,233,2,198,162,233,2,198,227,233,2,192,0,0,0,192,0,0,0,198,66,234,2,192,0,0,0,198,131,234,2,192,0,0,0,192,0,0,0,198,227,234,2,198,67,235,2,198,162,235,2,198,227,235,2,192,0,0,0,198,67,236,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,236,2,198,3,237,2,192,0,0,0,192,0,0,0,197,98,138,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,237,2,198,194,237,2,192,0,0,0,192,0,0,0,192,0,0,0,198,3,238,2,192,0,0,0,198,99,238,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,238,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,239,2,198,67,239,2,198,163,239,2,198,3,240,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,240,2,198,195,240,2,192,0,0,0,192,0,0,0,198,35,241,2,197,162,138,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,241,2,192,0,0,0,198,227,241,2,197,226,138,0,192,0,0,0,192,0,0,0,198,66,242,2,198,130,242,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,242,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,243,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,139,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,243,2,192,0,0,0,198,227,243,2,192,0,0,0,192,0,0,0,197,99,139,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,244,2,192,0,0,0,198,163,244,2,192,0,0,0,192,0,0,0,198,2,245,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,245,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,245,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,245,2,198,67,246,2,198,162,246,2,192,0,0,0,198,227,246,2,192,0,0,0,198,66,247,2,198,130,247,2,192,0,0,0,192,0,0,0,198,195,247,2,198,35,248,2,192,0,0,0,198,131,248,2,197,194,139,0,197,2,140,0,198,226,248,2,192,0,0,0,198,35,249,2,192,0,0,0,192,0,0,0,198,131,249,2,192,0,0,0,198,227,249,2,198,67,250,2,198,163,250,2,198,3,251,2,197,66,140,0,198,99,251,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,251,2,192,0,0,0,198,3,252,2,192,0,0,0,197,130,140,0,197,194,140,0,198,99,252,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,252,2,192,0,0,0,192,0,0,0,198,2,253,2,192,0,0,0,192,0,0,0,198,67,253,2,198,163,253,2,192,0,0,0,192,0,0,0,198,2,254,2,192,0,0,0,192,0,0,0,198,67,254,2,198,163,254,2,192,0,0,0,192,0,0,0,198,2,255,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,255,2,197,3,141,0,198,163,255,2,198,2,0,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,0,3,198,131,0,3,192,0,0,0,198,226,0,3,197,98,141,0,192,0,0,0,192,0,0,0,198,34,1,3,192,0,0,0,192,0,0,0,198,98,1,3,192,0,0,0,192,0,0,0,192,0,0,0,197,163,141,0,197,3,142,0,192,0,0,0,198,163,1,3,192,0,0,0,198,2,2,3,198,66,2,3,192,0,0,0,198,131,2,3,192,0,0,0,192,0,0,0,192,0,0,0,198,227,2,3,192,0,0,0,192,0,0,0,198,67,3,3,198,162,3,3,197,98,142,0,198,227,3,3,198,66,4,3,192,0,0,0,198,130,4,3,192,0,0,0,192,0,0,0,198,195,4,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,142,0,198,35,5,3,198,131,5,3,198,227,5,3,198,66,6,3,198,130,6,3,192,0,0,0,192,0,0,0,198,195,6,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,7,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,7,3,192,0,0,0,198,194,7,3,192,0,0,0,198,2,8,3,192,0,0,0,198,67,8,3,198,163,8,3,192,0,0,0,198,3,9,3,192,0,0,0,192,0,0,0,198,99,9,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,9,3,198,35,10,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,10,3,198,227,10,3,198,66,11,3,198,130,11,3,192,0,0,0,192,0,0,0,197,226,142,0,192,0,0,0,197,34,143,0,192,0,0,0,198,194,11,3,192,0,0,0,192,0,0,0,197,98,143,0,198,3,12,3,192,0,0,0,198,98,12,3,192,0,0,0,198,163,12,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,13,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,13,3,192,0,0,0,192,0,0,0,198,163,13,3,198,2,14,3,197,162,143,0,197,226,143,0,192,0,0,0,198,67,14,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,14,3,198,3,15,3,192,0,0,0,192,0,0,0,197,34,144,0,198,98,15,3,192,0,0,0,198,162,15,3,198,226,15,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,16,3,192,0,0,0,198,131,16,3,198,227,16,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,17,3,198,163,17,3,198,3,18,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,18,3,192,0,0,0,198,163,18,3,198,2,19,3,192,0,0,0,192,0,0,0,192,0,0,0,198,67,19,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,144,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,19,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,20,3,198,99,20,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,20,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,21,3,192,0,0,0,192,0,0,0,192,0,0,0,198,131,21,3,198,227,21,3,192,0,0,0,198,67,22,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,22,3,192,0,0,0,192,0,0,0,198,3,23,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,144,0,198,99,23,3,192,0,0,0,198,194,23,3,198,3,24,3,192,0,0,0,198,99,24,3,198,195,24,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,25,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,25,3,192,0,0,0,192,0,0,0,198,195,25,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,145,0,198,35,26,3,192,0,0,0,192,0,0,0,198,131,26,3,192,0,0,0,192,0,0,0,198,226,26,3,197,98,145,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,27,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,145,0,198,99,27,3,198,194,27,3,198,3,28,3,198,99,28,3,198,195,28,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,29,3,192,0,0,0,198,131,29,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,29,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,30,3,198,163,30,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,31,3,198,99,31,3,198,195,31,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,32,3,192,0,0,0,198,131,32,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,32,3,198,67,33,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,33,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,34,3,192,0,0,0,197,227,145,0,198,98,34,3,192,0,0,0,197,67,146,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,146,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,146,0,198,2,35,3,197,34,147,0,198,66,35,3,197,99,147,0,192,0,0,0,197,195,147,0,198,131,35,3,198,227,35,3,192,0,0,0,192,0,0,0,192,0,0,0,198,67,36,3,192,0,0,0,192,0,0,0,197,35,148,0,197,131,148,0,192,0,0,0,198,163,36,3,192,0,0,0,192,0,0,0,198,2,37,3,192,0,0,0,198,67,37,3,192,0,0,0,198,162,37,3,192,0,0,0,192,0,0,0,192,0,0,0,197,226,148,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,149,0,198,227,37,3,198,67,38,3,192,0,0,0,192,0,0,0,192,0,0,0,197,130,149,0,198,163,38,3,197,195,149,0,198,2,39,3,198,67,39,3,198,162,39,3,198,226,39,3,198,34,40,3,198,98,40,3,192,0,0,0,192,0,0,0,197,34,150,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,40,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,40,3,198,66,41,3,192,0,0,0,192,0,0,0,198,130,41,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,41,3,198,34,42,3,192,0,0,0,198,98,42,3,198,163,42,3,198,3,43,3,192,0,0,0,197,98,150,0,192,0,0,0,192,0,0,0,198,99,43,3,198,194,43,3,192,0,0,0,192,0,0,0,197,162,150,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,44,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,44,3,192,0,0,0,198,195,44,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,45,3,192,0,0,0,192,0,0,0,192,0,0,0,197,226,150,0,192,0,0,0,198,131,45,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,45,3,192,0,0,0,198,67,46,3,198,163,46,3,198,3,47,3,192,0,0,0,192,0,0,0,198,99,47,3,198,194,47,3,192,0,0,0,198,3,48,3,192,0,0,0,198,99,48,3,192,0,0,0,192,0,0,0,198,195,48,3,192,0,0,0,198,35,49,3,197,34,151,0,192,0,0,0,198,131,49,3,192,0,0,0,197,98,151,0,192,0,0,0,192,0,0,0,198,227,49,3,197,162,151,0,198,66,50,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,50,3,192,0,0,0,198,194,50,3,192,0,0,0,198,2,51,3,192,0,0,0,192,0,0,0,198,67,51,3,198,163,51,3,198,2,52,3,192,0,0,0,198,66,52,3,198,130,52,3,198,194,52,3,192,0,0,0,198,3,53,3,198,98,53,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,151,0,198,162,53,3,192,0,0,0,192,0,0,0,198,227,53,3,192,0,0,0,192,0,0,0,192,0,0,0,197,34,152,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,54,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,54,3,192,0,0,0,192,0,0,0,198,3,55,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,55,3,197,98,152,0,198,163,55,3,192,0,0,0,198,3,56,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,56,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,56,3,198,3,57,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,57,3,198,194,57,3,192,0,0,0,192,0,0,0,198,3,58,3,198,99,58,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,58,3,197,162,152,0,198,35,59,3,198,131,59,3,198,226,59,3,198,35,60,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,60,3,192,0,0,0,192,0,0,0,198,227,60,3,198,66,61,3,198,131,61,3,192,0,0,0,198,227,61,3,192,0,0,0,197,227,152,0,198,67,62,3,192,0,0,0,198,163,62,3,192,0,0,0,198,2,63,3,198,66,63,3,198,131,63,3,198,226,63,3,197,66,153,0,197,131,153,0,198,35,64,3,198,130,64,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,64,3,192,0,0,0,198,35,65,3,192,0,0,0,192,0,0,0,197,226,153,0,192,0,0,0,192,0,0,0,197,34,154,0,192,0,0,0,198,131,65,3,192,0,0,0,198,227,65,3,192,0,0,0,198,67,66,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,66,3,192,0,0,0,192,0,0,0,198,2,67,3,198,67,67,3,192,0,0,0,192,0,0,0,198,163,67,3,198,2,68,3,198,67,68,3,198,163,68,3,198,3,69,3,198,99,69,3,198,195,69,3,197,99,154,0,197,195,154,0,192,0,0,0,192,0,0,0,198,35,70,3,197,34,155,0,192,0,0,0,192,0,0,0,198,131,70,3,192,0,0,0,198,227,70,3,198,67,71,3,198,163,71,3,198,3,72,3,198,99,72,3,192,0,0,0,198,194,72,3,198,2,73,3,198,66,73,3,197,98,155,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,73,3,198,226,73,3,192,0,0,0,197,162,155,0,192,0,0,0,198,35,74,3,198,130,74,3,192,0,0,0,197,226,155,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,74,3,197,34,156,0,192,0,0,0,197,98,156,0,198,2,75,3,198,66,75,3,198,131,75,3,198,227,75,3,192,0,0,0,197,163,156,0,198,67,76,3,192,0,0,0,198,163,76,3,198,2,77,3,198,67,77,3,192,0,0,0,192,0,0,0,198,163,77,3,198,3,78,3,192,0,0,0,197,3,157,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,78,3,198,194,78,3,192,0,0,0,197,99,157,0,198,3,79,3,198,99,79,3,192,0,0,0,198,194,79,3,192,0,0,0,198,3,80,3,198,98,80,3,198,163,80,3,198,2,81,3,198,66,81,3,192,0,0,0,192,0,0,0,198,131,81,3,198,226,81,3,197,194,157,0,198,35,82,3,192,0,0,0,198,130,82,3,192,0,0,0,192,0,0,0,198,194,82,3,192,0,0,0,192,0,0,0,198,3,83,3,192,0,0,0,192,0,0,0,198,99,83,3,198,195,83,3,197,2,158,0,198,35,84,3,192,0,0,0,198,131,84,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,158,0,192,0,0,0,192,0,0,0,198,227,84,3,192,0,0,0,192,0,0,0,198,67,85,3,198,163,85,3,198,3,86,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,86,3,198,162,86,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,86,3,192,0,0,0,198,34,87,3,192,0,0,0,198,99,87,3,192,0,0,0,192,0,0,0,198,195,87,3,198,34,88,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,88,3,192,0,0,0,197,130,158,0,192,0,0,0,198,195,88,3,197,195,158,0,197,35,159,0,198,35,89,3,192,0,0,0,198,130,89,3,192,0,0,0,192,0,0,0,192,0,0,0,198,194,89,3,192,0,0,0,192,0,0,0,198,3,90,3,197,131,159,0,192,0,0,0,198,99,90,3,198,195,90,3,198,35,91,3,197,227,159,0,197,66,160,0,197,131,160,0,197,226,160,0,192,0,0,0,192,0,0,0,198,130,91,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,91,3,198,35,92,3,192,0,0,0,198,131,92,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,92,3,192,0,0,0,198,67,93,3,198,163,93,3,198,3,94,3,198,98,94,3,198,163,94,3,192,0,0,0,197,34,161,0,198,3,95,3,192,0,0,0,198,98,95,3,192,0,0,0,198,162,95,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,95,3,192,0,0,0,192,0,0,0,197,98,161,0,197,163,161,0,197,3,162,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,162,0,192,0,0,0,192,0,0,0,198,66,96,3,192,0,0,0,192,0,0,0,198,131,96,3,192,0,0,0,198,227,96,3,198,66,97,3,198,131,97,3,192,0,0,0,192,0,0,0,198,227,97,3,197,162,162,0,198,67,98,3,192,0,0,0,192,0,0,0,198,163,98,3,192,0,0,0,198,3,99,3,198,99,99,3,197,226,162,0,198,194,99,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,100,3,198,67,100,3,192,0,0,0,192,0,0,0,192,0,0,0,198,162,100,3,192,0,0,0,192,0,0,0,198,227,100,3,192,0,0,0,198,67,101,3,197,35,163,0,192,0,0,0,198,163,101,3,197,130,163,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,102,3,192,0,0,0,192,0,0,0,198,99,102,3,198,195,102,3,192,0,0,0,192,0,0,0,198,35,103,3,197,194,163,0,198,131,103,3,197,2,164,0,198,226,103,3,198,35,104,3,192,0,0,0,192,0,0,0,198,131,104,3,192,0,0,0,192,0,0,0,192,0,0,0,197,66,164,0,192,0,0,0,198,227,104,3,197,130,164,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,105,3,192,0,0,0,198,130,105,3,198,195,105,3,198,34,106,3,192,0,0,0,192,0,0,0,198,98,106,3,198,163,106,3,192,0,0,0,198,2,107,3,198,67,107,3,198,163,107,3,192,0,0,0,198,2,108,3,198,67,108,3,198,163,108,3,192,0,0,0,198,3,109,3,192,0,0,0,198,99,109,3,198,195,109,3,198,34,110,3,192,0,0,0,197,194,164,0,192,0,0,0,192,0,0,0,198,99,110,3,192,0,0,0,198,195,110,3,192,0,0,0,198,35,111,3,198,130,111,3,198,195,111,3,198,35,112,3,198,131,112,3,198,227,112,3,198,67,113,3,198,162,113,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,113,3,192,0,0,0,197,3,165,0,197,98,165,0,198,67,114,3,192,0,0,0,197,162,165,0,192,0,0,0,198,163,114,3,198,2,115,3,198,66,115,3,192,0,0,0,198,130,115,3,198,195,115,3,198,35,116,3,197,226,165,0,192,0,0,0,197,34,166,0,192,0,0,0,192,0,0,0,198,131,116,3,198,227,116,3,197,98,166,0,192,0,0,0,198,67,117,3,192,0,0,0,192,0,0,0,198,163,117,3,192,0,0,0,198,3,118,3,192,0,0,0,198,99,118,3,198,195,118,3,197,162,166,0,192,0,0,0,198,34,119,3,192,0,0,0,198,98,119,3,198,162,119,3,198,227,119,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,120,3,198,130,120,3,198,195,120,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,121,3,192,0,0,0,192,0,0,0,198,99,121,3,198,195,121,3,192,0,0,0,192,0,0,0,198,34,122,3,192,0,0,0,198,99,122,3,198,195,122,3,192,0,0,0,197,226,166,0,192,0,0,0,198,35,123,3,192,0,0,0,192,0,0,0,198,131,123,3,198,227,123,3,192,0,0,0,198,67,124,3,197,35,167,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,124,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,125,3,192,0,0,0,192,0,0,0,192,0,0,0,197,130,167,0,192,0,0,0,192,0,0,0,198,99,125,3,198,195,125,3,192,0,0,0,192,0,0,0,198,35,126,3,198,131,126,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,126,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,127,3,198,131,127,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,127,3,198,67,128,3,192,0,0,0,197,195,167,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,128,3,198,226,128,3,192,0,0,0,198,35,129,3,192,0,0,0,192,0,0,0,198,131,129,3,192,0,0,0,192,0,0,0,198,226,129,3,192,0,0,0,198,35,130,3,192,0,0,0,192,0,0,0,198,130,130,3,198,195,130,3,192,0,0,0,192,0,0,0,192,0,0,0,198,34,131,3,192,0,0,0,198,99,131,3,198,194,131,3,192,0,0,0,192,0,0,0,198,3,132,3,198,99,132,3,198,195,132,3,192,0,0,0,192,0,0,0,198,35,133,3,192,0,0,0,192,0,0,0,198,131,133,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,133,3,198,67,134,3,198,163,134,3,198,3,135,3,192,0,0,0,192,0,0,0,197,34,168,0,197,99,168,0,192,0,0,0,198,98,135,3,198,163,135,3,192,0,0,0,198,3,136,3,192,0,0,0,192,0,0,0,197,195,168,0,192,0,0,0,198,98,136,3,198,162,136,3,198,227,136,3,192,0,0,0,192,0,0,0,192,0,0,0,197,34,169,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,169,0,197,163,169,0,192,0,0,0,197,2,170,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,137,3,198,163,137,3,192,0,0,0,198,2,138,3,197,66,170,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,138,3,198,163,138,3,192,0,0,0,198,2,139,3,197,130,170,0,192,0,0,0,198,66,139,3,192,0,0,0,198,131,139,3,192,0,0,0,192,0,0,0,198,227,139,3,192,0,0,0,192,0,0,0,198,67,140,3,192,0,0,0,192,0,0,0,198,162,140,3,192,0,0,0,198,226,140,3,192,0,0,0,198,34,141,3,198,99,141,3,198,194,141,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,142,3,198,98,142,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,142,3,192,0,0,0,198,3,143,3,198,99,143,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,170,0,198,195,143,3,198,34,144,3,198,99,144,3,192,0,0,0,192,0,0,0,198,195,144,3,198,34,145,3,198,99,145,3,198,195,145,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,146,3,192,0,0,0,192,0,0,0,192,0,0,0,197,2,171,0,192,0,0,0,198,131,146,3,198,227,146,3,192,0,0,0,198,67,147,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,147,3,192,0,0,0,198,3,148,3,192,0,0,0,192,0,0,0,198,99,148,3,192,0,0,0,192,0,0,0,198,195,148,3,198,35,149,3,198,130,149,3,198,195,149,3,198,35,150,3,198,131,150,3,197,67,171,0,198,226,150,3,198,35,151,3,192,0,0,0,198,131,151,3,197,163,171,0,192,0,0,0,198,227,151,3,192,0,0,0,198,66,152,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,152,3,198,226,152,3,198,35,153,3,197,2,172,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,172,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,153,3,192,0,0,0,198,227,153,3,192,0,0,0,198,67,154,3,198,162,154,3,198,227,154,3,192,0,0,0,192,0,0,0,198,67,155,3,198,163,155,3,192,0,0,0,198,3,156,3,192,0,0,0,198,98,156,3,192,0,0,0,198,163,156,3,198,3,157,3,192,0,0,0,197,131,172,0,198,98,157,3,198,162,157,3,198,227,157,3,192,0,0,0,198,67,158,3,192,0,0,0,198,163,158,3,192,0,0,0,197,226,172,0,192,0,0,0,192,0,0,0,198,3,159,3,198,99,159,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,159,3,192,0,0,0,198,34,160,3,192,0,0,0,198,99,160,3,197,35,173,0,192,0,0,0,192,0,0,0,198,194,160,3,198,2,161,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,173,0,198,67,161,3,192,0,0,0,198,163,161,3,192,0,0,0,198,2,162,3,192,0,0,0,192,0,0,0,198,67,162,3,192,0,0,0,192,0,0,0,198,163,162,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,163,3,192,0,0,0,198,99,163,3,198,195,163,3,198,35,164,3,198,131,164,3,192,0,0,0,192,0,0,0,198,227,164,3,198,67,165,3,192,0,0,0,198,162,165,3,197,194,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,165,3,192,0,0,0,192,0,0,0,198,67,166,3,192,0,0,0,198,163,166,3,198,3,167,3,192,0,0,0,192,0,0,0,198,98,167,3,197,2,174,0,197,66,174,0,197,130,174,0,192,0,0,0,192,0,0,0,198,162,167,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,174,0,192,0,0,0,198,227,167,3,198,67,168,3,192,0,0,0,198,163,168,3,198,3,169,3,192,0,0,0,198,99,169,3,192,0,0,0,198,195,169,3,198,35,170,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,170,3,192,0,0,0,192,0,0,0,192,0,0,0,197,2,175,0,192,0,0,0,192,0,0,0,198,227,170,3,192,0,0,0,192,0,0,0,192,0,0,0,198,67,171,3,198,163,171,3,198,3,172,3,192,0,0,0,198,98,172,3,192,0,0,0,198,163,172,3,192,0,0,0,192,0,0,0,192,0,0,0,198,2,173,3,192,0,0,0,197,67,175,0,198,67,173,3,198,163,173,3,192,0,0,0,198,3,174,3,192,0,0,0,192,0,0,0,198,98,174,3,192,0,0,0,198,163,174,3,198,3,175,3,198,99,175,3,198,195,175,3,198,35,176,3,198,130,176,3,192,0,0,0,192,0,0,0,192,0,0,0,197,162,175,0,192,0,0,0,192,0,0,0,197,226,175,0,198,195,176,3,198,34,177,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,177,3,198,194,177,3,192,0,0,0,198,3,178,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,178,3,198,195,178,3,192,0,0,0,192,0,0,0,192,0,0,0,198,35,179,3,192,0,0,0,198,131,179,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,179,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,180,3,192,0,0,0,198,163,180,3,192,0,0,0,198,3,181,3,197,34,176,0,192,0,0,0,198,99,181,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,181,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,176,0,197,162,176,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,182,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,182,3,192,0,0,0,197,226,176,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,182,3,197,34,177,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,183,3,192,0,0,0,192,0,0,0,192,0,0,0,198,131,183,3,198,226,183,3,198,34,184,3,192,0,0,0,192,0,0,0,198,98,184,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,184,3,198,3,185,3,192,0,0,0,192,0,0,0,192,0,0,0,197,98,177,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,185,3,192,0,0,0,192,0,0,0,192,0,0,0,198,194,185,3,192,0,0,0,192,0,0,0,198,3,186,3,192,0,0,0,192,0,0,0,197,163,177,0,198,98,186,3,198,163,186,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,187,3,192,0,0,0,192,0,0,0,198,98,187,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,187,3,198,2,188,3,198,67,188,3,198,162,188,3,198,227,188,3,198,66,189,3,192,0,0,0,192,0,0,0,198,131,189,3,192,0,0,0,192,0,0,0,192,0,0,0,198,226,189,3,198,35,190,3,198,131,190,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,190,3,192,0,0,0,198,67,191,3,197,2,178,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,191,3,192,0,0,0,192,0,0,0,192,0,0,0,198,226,191,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,178,0,198,35,192,3,192,0,0,0,192,0,0,0,197,163,178,0,198,131,192,3,192,0,0,0,198,227,192,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,193,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,193,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,194,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,179,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,194,3,192,0,0,0,192,0,0,0,198,195,194,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,195,3,198,99,195,3,192,0,0,0,198,195,195,3,192,0,0,0,198,35,196,3,192,0,0,0,198,130,196,3,198,194,196,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,197,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,197,3,197,99,179,0,198,163,197,3,198,3,198,3,197,195,179,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,198,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,180,0,197,98,180,0,192,0,0,0,198,195,198,3,197,163,180,0,192,0,0,0,197,3,181,0,192,0,0,0,198,35,199,3,192,0,0,0,198,131,199,3,192,0,0,0,197,98,181,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,199,3,198,67,200,3,192,0,0,0,198,163,200,3,192,0,0,0,192,0,0,0,198,3,201,3,192,0,0,0,198,99,201,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,201,3,192,0,0,0,198,34,202,3,197,163,181,0,197,2,182,0,198,98,202,3,198,162,202,3,198,227,202,3,192,0,0,0,192,0,0,0,198,67,203,3,192,0,0,0,198,162,203,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,203,3,192,0,0,0,192,0,0,0,198,67,204,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,204,3,198,3,205,3,192,0,0,0,197,66,182,0,192,0,0,0,198,99,205,3,198,195,205,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,182,0,192,0,0,0,192,0,0,0,198,35,206,3,192,0,0,0,198,131,206,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,182,0,192,0,0,0,197,34,183,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,206,3,198,67,207,3,192,0,0,0,198,163,207,3,192,0,0,0,198,3,208,3,192,0,0,0,192,0,0,0,192,0,0,0,197,98,183,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,208,3,192,0,0,0,192,0,0,0,198,163,208,3,192,0,0,0,198,3,209,3,198,99,209,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,183,0,197,226,183,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,184,0,192,0,0,0,192,0,0,0,198,195,209,3,192,0,0,0,198,35,210,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,210,3,198,227,210,3,192,0,0,0,198,66,211,3,192,0,0,0,192,0,0,0,198,130,211,3,192,0,0,0,198,195,211,3,192,0,0,0,198,34,212,3,192,0,0,0,198,99,212,3,198,195,212,3,198,35,213,3,192,0,0,0,192,0,0,0,198,131,213,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,213,3,198,67,214,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,214,3,198,227,214,3,198,66,215,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,184,0,198,131,215,3,198,227,215,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,184,0,192,0,0,0,197,227,184,0,198,67,216,3,192,0,0,0,198,162,216,3,198,226,216,3,197,67,185,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,185,0,198,35,217,3,192,0,0,0,192,0,0,0,192,0,0,0,197,3,186,0,198,131,217,3,198,227,217,3,192,0,0,0,192,0,0,0,198,66,218,3,192,0,0,0,192,0,0,0,192,0,0,0,197,98,186,0,192,0,0,0,192,0,0,0,198,131,218,3,192,0,0,0,192,0,0,0,198,227,218,3,198,67,219,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,219,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,220,3,192,0,0,0,192,0,0,0,198,99,220,3,192,0,0,0,198,194,220,3,192,0,0,0,197,162,186,0,198,3,221,3,192,0,0,0,192,0,0,0,198,99,221,3,192,0,0,0,197,226,186,0,192,0,0,0,192,0,0,0,198,195,221,3,198,34,222,3,192,0,0,0,197,34,187,0,198,98,222,3,197,98,187,0,197,162,187,0,192,0,0,0,198,163,222,3,198,2,223,3,192,0,0,0,198,67,223,3,192,0,0,0,198,163,223,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,224,3,198,99,224,3,198,195,224,3,192,0,0,0,192,0,0,0,198,35,225,3,197,226,187,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,188,0,198,131,225,3,198,227,225,3,192,0,0,0,198,66,226,3,192,0,0,0,198,131,226,3,198,226,226,3,198,35,227,3,198,130,227,3,192,0,0,0,198,195,227,3,192,0,0,0,198,34,228,3,192,0,0,0,198,98,228,3,198,162,228,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,228,3,192,0,0,0,198,67,229,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,229,3,192,0,0,0,192,0,0,0,198,227,229,3,192,0,0,0,197,130,188,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,230,3,197,195,188,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,230,3,192,0,0,0,192,0,0,0,198,226,230,3,198,34,231,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,231,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,231,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,189,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,232,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,232,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,189,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,232,3,192,0,0,0,192,0,0,0,198,67,233,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,233,3,198,3,234,3,197,163,189,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,234,3,192,0,0,0,198,195,234,3,192,0,0,0,198,35,235,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,235,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,235,3,192,0,0,0,197,2,190,0,192,0,0,0,198,34,236,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,236,3,192,0,0,0,197,66,190,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,236,3,197,131,190,0,192,0,0,0,192,0,0,0,198,227,236,3,192,0,0,0,192,0,0,0,198,67,237,3,198,162,237,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,190,0,192,0,0,0,192,0,0,0,198,227,237,3,198,66,238,3,197,35,191,0,198,131,238,3,198,227,238,3,198,67,239,3,197,130,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,239,3,197,194,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,239,3,192,0,0,0,192,0,0,0,198,35,240,3,197,2,192,0,197,66,192,0,198,131,240,3,192,0,0,0,198,227,240,3,198,66,241,3,198,131,241,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,192,0,192,0,0,0,192,0,0,0,197,194,192,0,192,0,0,0,197,2,193,0,198,227,241,3,198,67,242,3,197,66,193,0,198,162,242,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,242,3,192,0,0,0,192,0,0,0,197,130,193,0,192,0,0,0,197,194,193,0,197,2,194,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,194,0,198,35,243,3,192,0,0,0,192,0,0,0,192,0,0,0,198,130,243,3,198,195,243,3,198,34,244,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,244,3,192,0,0,0,198,194,244,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,245,3,197,162,194,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,245,3,192,0,0,0,192,0,0,0,192,0,0,0,198,194,245,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,246,3,197,226,194,0,197,34,195,0,197,99,195,0,197,194,195,0,192,0,0,0,192,0,0,0,197,3,196,0,198,99,246,3,192,0,0,0,197,99,196,0,192,0,0,0,192,0,0,0,198,195,246,3,192,0,0,0,198,35,247,3,198,130,247,3,192,0,0,0,198,195,247,3,198,35,248,3,198,130,248,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,196,0,192,0,0,0,192,0,0,0,198,195,248,3,192,0,0,0,198,34,249,3,198,99,249,3,198,194,249,3,198,3,250,3,192,0,0,0,198,99,250,3,192,0,0,0,192,0,0,0,198,195,250,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,251,3,198,131,251,3,198,226,251,3,198,34,252,3,198,98,252,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,252,3,198,227,252,3,198,66,253,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,253,3,198,227,253,3,192,0,0,0,198,67,254,3,192,0,0,0,198,162,254,3,192,0,0,0,198,227,254,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,255,3,198,162,255,3,192,0,0,0,192,0,0,0,192,0,0,0,198,227,255,3,192,0,0,0,198,67,0,4,192,0,0,0,197,34,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,0,4,192,0,0,0,198,2,1,4,192,0,0,0,192,0,0,0,192,0,0,0,198,66,1,4,192,0,0,0,198,130,1,4,198,195,1,4,198,35,2,4,192,0,0,0,197,99,197,0,198,131,2,4,192,0,0,0,198,227,2,4,192,0,0,0,192,0,0,0,198,67,3,4,192,0,0,0,192,0,0,0,192,0,0,0,198,163,3,4,192,0,0,0,192,0,0,0,198,3,4,4,192,0,0,0,192,0,0,0,192,0,0,0,197,194,197,0,198,99,4,4,192,0,0,0,198,194,4,4,192,0,0,0,198,3,5,4,198,99,5,4,198,194,5,4,198,2,6,4,198,67,6,4,192,0,0,0,192,0,0,0,198,163,6,4,198,2,7,4,198,67,7,4,192,0,0,0,198,163,7,4,197,2,198,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,8,4,192,0,0,0,198,98,8,4,192,0,0,0,198,163,8,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,9,4,198,99,9,4,192,0,0,0,192,0,0,0,198,195,9,4,192,0,0,0,198,34,10,4,198,99,10,4,198,195,10,4,198,34,11,4,198,98,11,4,192,0,0,0,198,162,11,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,11,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,198,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,12,4,198,163,12,4,198,3,13,4,192,0,0,0,198,99,13,4,197,162,198,0,198,194,13,4,192,0,0,0,198,3,14,4,192,0,0,0,198,98,14,4,198,163,14,4,198,3,15,4,192,0,0,0,198,99,15,4,198,195,15,4,198,35,16,4,198,130,16,4,198,194,16,4,198,3,17,4,198,99,17,4,198,194,17,4,197,226,198,0,192,0,0,0,198,3,18,4,192,0,0,0,198,99,18,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,18,4,198,34,19,4,198,98,19,4,192,0,0,0,198,163,19,4,198,3,20,4,197,34,199,0,198,99,20,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,199,0,192,0,0,0,192,0,0,0,197,162,199,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,199,0,192,0,0,0,198,195,20,4,192,0,0,0,198,34,21,4,197,34,200,0,198,99,21,4,197,98,200,0,197,163,200,0,198,194,21,4,198,3,22,4,198,98,22,4,192,0,0,0,198,163,22,4,197,2,201,0,198,2,23,4,198,67,23,4,192,0,0,0,192,0,0,0,198,163,23,4,198,3,24,4,198,98,24,4,192,0,0,0,192,0,0,0,198,163,24,4,192,0,0,0,198,3,25,4,198,98,25,4,198,163,25,4,198,3,26,4,198,98,26,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,26,4,198,3,27,4,192,0,0,0,197,66,201,0,192,0,0,0,198,98,27,4,198,162,27,4,192,0,0,0,192,0,0,0,198,226,27,4,198,35,28,4,192,0,0,0,198,131,28,4,198,227,28,4,198,67,29,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,29,4,192,0,0,0,192,0,0,0,192,0,0,0,197,131,201,0,198,2,30,4,198,67,30,4,198,163,30,4,192,0,0,0,198,3,31,4,192,0,0,0,198,98,31,4,192,0,0,0,198,163,31,4,192,0,0,0,198,3,32,4,198,99,32,4,192,0,0,0,198,194,32,4,198,3,33,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,201,0,192,0,0,0,198,98,33,4,192,0,0,0,192,0,0,0,197,66,202,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,33,4,192,0,0,0,192,0,0,0,192,0,0,0,198,2,34,4,192,0,0,0,198,67,34,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,35,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,35,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,35,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,36,4,192,0,0,0,198,131,36,4,198,227,36,4,197,130,202,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,202,0,192,0,0,0,197,2,203,0,198,67,37,4,192,0,0,0,192,0,0,0,197,66,203,0,192,0,0,0,192,0,0,0,198,163,37,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,38,4,192,0,0,0,192,0,0,0,192,0,0,0,198,99,38,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,38,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,39,4,192,0,0,0,198,98,39,4,198,163,39,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,40,4,198,67,40,4,198,163,40,4,192,0,0,0,192,0,0,0,198,3,41,4,192,0,0,0,198,99,41,4,192,0,0,0,198,195,41,4,192,0,0,0,192,0,0,0,198,35,42,4,192,0,0,0,198,131,42,4,198,227,42,4,192,0,0,0,192,0,0,0,198,67,43,4,198,163,43,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,44,4,192,0,0,0,198,99,44,4,198,194,44,4,192,0,0,0,198,3,45,4,192,0,0,0,192,0,0,0,198,98,45,4,198,163,45,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,46,4,197,130,203,0,198,99,46,4,198,195,46,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,47,4,198,131,47,4,192,0,0,0,198,227,47,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,48,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,48,4,192,0,0,0,192,0,0,0,198,3,49,4,198,99,49,4,198,194,49,4,192,0,0,0,198,3,50,4,197,194,203,0,192,0,0,0,198,99,50,4,192,0,0,0,198,195,50,4,198,35,51,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,51,4,198,195,51,4,198,35,52,4,198,131,52,4,198,226,52,4,192,0,0,0,192,0,0,0,198,35,53,4,192,0,0,0,197,3,204,0,192,0,0,0,197,98,204,0,198,131,53,4,197,162,204,0,198,227,53,4,192,0,0,0,192,0,0,0,198,67,54,4,197,226,204,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,54,4,198,2,55,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,205,0,198,67,55,4,192,0,0,0,198,162,55,4,192,0,0,0,198,227,55,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,56,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,56,4,198,226,56,4,198,35,57,4,192,0,0,0,197,99,205,0,197,195,205,0,192,0,0,0,192,0,0,0,198,130,57,4,198,194,57,4,192,0,0,0,197,34,206,0,192,0,0,0,192,0,0,0,198,3,58,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,206,0,198,98,58,4,192,0,0,0,192,0,0,0,198,163,58,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,59,4,192,0,0,0,198,66,59,4,192,0,0,0,192,0,0,0,192,0,0,0,197,194,206,0,192,0,0,0,198,131,59,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,59,4,197,2,207,0,198,35,60,4,198,130,60,4,198,194,60,4,192,0,0,0,192,0,0,0,198,3,61,4,198,99,61,4,192,0,0,0,192,0,0,0,198,195,61,4,197,66,207,0,198,35,62,4,192,0,0,0,198,130,62,4,192,0,0,0,198,194,62,4,198,3,63,4,192,0,0,0,198,99,63,4,192,0,0,0,198,195,63,4,192,0,0,0,192,0,0,0,198,35,64,4,192,0,0,0,192,0,0,0,198,130,64,4,197,130,207,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,64,4,197,194,207,0,197,2,208,0,197,67,208,0,192,0,0,0,192,0,0,0,198,34,65,4,198,99,65,4,192,0,0,0,198,195,65,4,192,0,0,0,192,0,0,0,198,34,66,4,192,0,0,0,192,0,0,0,192,0,0,0,198,98,66,4,198,162,66,4,197,162,208,0,192,0,0,0,192,0,0,0,198,226,66,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,67,4,192,0,0,0,198,130,67,4,198,195,67,4,197,226,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,68,4,198,98,68,4,192,0,0,0,198,162,68,4,192,0,0,0,192,0,0,0,197,34,209,0,198,226,68,4,197,98,209,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,69,4,198,130,69,4,198,194,69,4,192,0,0,0,198,3,70,4,192,0,0,0,198,99,70,4,192,0,0,0,192,0,0,0,198,194,70,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,209,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,71,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,71,4,198,163,71,4,198,3,72,4,198,99,72,4,192,0,0,0,198,194,72,4,192,0,0,0,198,2,73,4,197,227,209,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,73,4,198,162,73,4,192,0,0,0,192,0,0,0,198,226,73,4,198,35,74,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,74,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,74,4,198,3,75,4,192,0,0,0,192,0,0,0,198,98,75,4,192,0,0,0,197,66,210,0,198,163,75,4,192,0,0,0,192,0,0,0,198,3,76,4,192,0,0,0,198,99,76,4,192,0,0,0,192,0,0,0,192,0,0,0,197,130,210,0,192,0,0,0,192,0,0,0,198,195,76,4,198,35,77,4,192,0,0,0,197,194,210,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,77,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,211,0,198,227,77,4,192,0,0,0,198,67,78,4,198,163,78,4,192,0,0,0,198,3,79,4,198,99,79,4,198,194,79,4,192,0,0,0,192,0,0,0,198,3,80,4,198,99,80,4,198,195,80,4,198,34,81,4,198,99,81,4,198,195,81,4,198,35,82,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,82,4,192,0,0,0,192,0,0,0,198,195,82,4,198,35,83,4,198,131,83,4,198,227,83,4,192,0,0,0,198,67,84,4,198,162,84,4,192,0,0,0,198,226,84,4,198,35,85,4,192,0,0,0,198,130,85,4,197,67,211,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,85,4,192,0,0,0,192,0,0,0,198,2,86,4,192,0,0,0,198,66,86,4,192,0,0,0,192,0,0,0,197,162,211,0,192,0,0,0,192,0,0,0,198,131,86,4,192,0,0,0,192,0,0,0,192,0,0,0,198,226,86,4,197,226,211,0,197,34,212,0,192,0,0,0,197,98,212,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,212,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,212,0,192,0,0,0,197,66,213,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,87,4,192,0,0,0,198,130,87,4,192,0,0,0,198,195,87,4,192,0,0,0,197,130,213,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,88,4,192,0,0,0,192,0,0,0,198,130,88,4,198,194,88,4,192,0,0,0,192,0,0,0,198,3,89,4,192,0,0,0,198,99,89,4,192,0,0,0,198,195,89,4,192,0,0,0,198,35,90,4,197,195,213,0,198,131,90,4,192,0,0,0,192,0,0,0,192,0,0,0,197,35,214,0,192,0,0,0,197,130,214,0,192,0,0,0,198,226,90,4,192,0,0,0,192,0,0,0,198,34,91,4,192,0,0,0,198,99,91,4,198,194,91,4,192,0,0,0,198,3,92,4,198,99,92,4,192,0,0,0,198,195,92,4,192,0,0,0,198,35,93,4,198,131,93,4,198,227,93,4,192,0,0,0,198,66,94,4,192,0,0,0,192,0,0,0,198,131,94,4,192,0,0,0,198,226,94,4,192,0,0,0,198,35,95,4,192,0,0,0,192,0,0,0,198,130,95,4,198,195,95,4,192,0,0,0,198,35,96,4,192,0,0,0,192,0,0,0,192,0,0,0,198,131,96,4,198,227,96,4,192,0,0,0,197,194,214,0,198,67,97,4,192,0,0,0,198,163,97,4,192,0,0,0,192,0,0,0,198,3,98,4,192,0,0,0,192,0,0,0,198,99,98,4,192,0,0,0,192,0,0,0,198,194,98,4,197,3,215,0,198,2,99,4,198,66,99,4,198,131,99,4,198,227,99,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,100,4,198,162,100,4,192,0,0,0,192,0,0,0,198,227,100,4,192,0,0,0,198,67,101,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,101,4,198,226,101,4,192,0,0,0,198,35,102,4,198,131,102,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,102,4,192,0,0,0,192,0,0,0,198,67,103,4,198,162,103,4,192,0,0,0,198,226,103,4,198,35,104,4,198,131,104,4,192,0,0,0,198,227,104,4,192,0,0,0,198,67,105,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,105,4,197,98,215,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,106,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,106,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,106,4,198,3,107,4,192,0,0,0,192,0,0,0,192,0,0,0,198,98,107,4,198,163,107,4,198,2,108,4,198,66,108,4,198,131,108,4,192,0,0,0,198,226,108,4,198,35,109,4,192,0,0,0,198,130,109,4,192,0,0,0,192,0,0,0,198,195,109,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,110,4,192,0,0,0,198,130,110,4,192,0,0,0,192,0,0,0,192,0,0,0,198,194,110,4,198,2,111,4,197,162,215,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,111,4,192,0,0,0,198,162,111,4,197,227,215,0,192,0,0,0,192,0,0,0,198,227,111,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,112,4,192,0,0,0,192,0,0,0,198,131,112,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,112,4,192,0,0,0,198,67,113,4,192,0,0,0,198,163,113,4,192,0,0,0,192,0,0,0,198,3,114,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,114,4,192,0,0,0,198,195,114,4,198,34,115,4,192,0,0,0,192,0,0,0,198,99,115,4,192,0,0,0,192,0,0,0,198,195,115,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,116,4,192,0,0,0,198,99,116,4,198,195,116,4,198,34,117,4,192,0,0,0,198,98,117,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,117,4,192,0,0,0,198,3,118,4,192,0,0,0,192,0,0,0,192,0,0,0,197,67,216,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,118,4,192,0,0,0,198,195,118,4,198,35,119,4,198,130,119,4,198,195,119,4,192,0,0,0,198,35,120,4,192,0,0,0,192,0,0,0,197,163,216,0,198,130,120,4,197,2,217,0,192,0,0,0,198,194,120,4,192,0,0,0,198,3,121,4,192,0,0,0,198,98,121,4,192,0,0,0,192,0,0,0,192,0,0,0,198,163,121,4,197,66,217,0,198,2,122,4,198,67,122,4,192,0,0,0,192,0,0,0,198,163,122,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,123,4,198,99,123,4,198,195,123,4,198,35,124,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,124,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,217,0,192,0,0,0,192,0,0,0,198,195,124,4,192,0,0,0,198,34,125,4,198,98,125,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,125,4,192,0,0,0,192,0,0,0,198,226,125,4,198,34,126,4,197,195,217,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,126,4,197,35,218,0,192,0,0,0,192,0,0,0,198,195,126,4,192,0,0,0,198,34,127,4,192,0,0,0,197,130,218,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,127,4,192,0,0,0,198,162,127,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,127,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,128,4,198,162,128,4,192,0,0,0,192,0,0,0,198,227,128,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,129,4,198,162,129,4,192,0,0,0,192,0,0,0,198,226,129,4,198,35,130,4,192,0,0,0,197,195,218,0,198,131,130,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,130,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,131,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,131,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,131,4,198,66,132,4,197,34,219,0,198,131,132,4,192,0,0,0,198,226,132,4,192,0,0,0,198,34,133,4,192,0,0,0,192,0,0,0,192,0,0,0,198,99,133,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,133,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,134,4,198,131,134,4,192,0,0,0,192,0,0,0,198,227,134,4,198,66,135,4,198,131,135,4,192,0,0,0,192,0,0,0,192,0,0,0,198,227,135,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,219,0,197,195,219,0,198,66,136,4,192,0,0,0,198,131,136,4,192,0,0,0,192,0,0,0,198,226,136,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,137,4,192,0,0,0,192,0,0,0,198,130,137,4,192,0,0,0,198,194,137,4,198,2,138,4,192,0,0,0,192,0,0,0,198,66,138,4,198,131,138,4,198,227,138,4,198,66,139,4,192,0,0,0,192,0,0,0,198,131,139,4,198,226,139,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,140,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,140,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,140,4,198,34,141,4,192,0,0,0,197,34,220,0,192,0,0,0,198,99,141,4,192,0,0,0,192,0,0,0,198,194,141,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,142,4,198,99,142,4,192,0,0,0,198,195,142,4,192,0,0,0,192,0,0,0,198,35,143,4,198,131,143,4,198,227,143,4,198,66,144,4,192,0,0,0,192,0,0,0,192,0,0,0,198,130,144,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,144,4,192,0,0,0,198,2,145,4,198,67,145,4,192,0,0,0,198,163,145,4,198,2,146,4,192,0,0,0,192,0,0,0,192,0,0,0,197,98,220,0,192,0,0,0,192,0,0,0,198,66,146,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,146,4,192,0,0,0,192,0,0,0,197,162,220,0,198,195,146,4,198,35,147,4,197,227,220,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,147,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,147,4,192,0,0,0,192,0,0,0,192,0,0,0,198,34,148,4,192,0,0,0,198,98,148,4,198,162,148,4,192,0,0,0,192,0,0,0,192,0,0,0,198,226,148,4,198,35,149,4,198,130,149,4,198,194,149,4,198,2,150,4,198,67,150,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,150,4,192,0,0,0,192,0,0,0,198,227,150,4,198,66,151,4,198,130,151,4,198,194,151,4,198,2,152,4,192,0,0,0,192,0,0,0,198,66,152,4,198,130,152,4,197,66,221,0,198,195,152,4,198,35,153,4,198,130,153,4,198,194,153,4,192,0,0,0,198,2,154,4,192,0,0,0,192,0,0,0,198,67,154,4,192,0,0,0,198,162,154,4,197,130,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,154,4,192,0,0,0,198,35,155,4,192,0,0,0,192,0,0,0,198,131,155,4,197,3,222,0,198,227,155,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,156,4,198,131,156,4,192,0,0,0,197,98,222,0,198,227,156,4,198,67,157,4,192,0,0,0,198,162,157,4,192,0,0,0,192,0,0,0,197,162,222,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,157,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,158,4,197,226,222,0,198,130,158,4,192,0,0,0,198,195,158,4,198,35,159,4,192,0,0,0,192,0,0,0,198,130,159,4,192,0,0,0,198,194,159,4,198,2,160,4,192,0,0,0,198,67,160,4,198,163,160,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,161,4,198,67,161,4,198,162,161,4,192,0,0,0,198,227,161,4,197,34,223,0,198,67,162,4,198,162,162,4,198,226,162,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,163,4,192,0,0,0,192,0,0,0,198,131,163,4,198,227,163,4,197,98,223,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,223,0,198,66,164,4,192,0,0,0,192,0,0,0,198,130,164,4,192,0,0,0,192,0,0,0,198,194,164,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,165,4,192,0,0,0,192,0,0,0,198,67,165,4,198,163,165,4,198,3,166,4,192,0,0,0,198,99,166,4,198,195,166,4,192,0,0,0,198,35,167,4,198,130,167,4,198,195,167,4,198,34,168,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,168,4,192,0,0,0,192,0,0,0,198,194,168,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,223,0,198,2,169,4,198,67,169,4,192,0,0,0,192,0,0,0,198,162,169,4,192,0,0,0,192,0,0,0,198,227,169,4,192,0,0,0,197,34,224,0,198,67,170,4,198,162,170,4,198,226,170,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,171,4,192,0,0,0,192,0,0,0,197,98,224,0,192,0,0,0,198,131,171,4,197,162,224,0,192,0,0,0,198,227,171,4,192,0,0,0,198,66,172,4,197,227,224,0,198,130,172,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,172,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,173,4,192,0,0,0,192,0,0,0,198,131,173,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,173,4,198,67,174,4,192,0,0,0,198,163,174,4,192,0,0,0,198,2,175,4,198,66,175,4,198,130,175,4,192,0,0,0,198,194,175,4,198,3,176,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,176,4,198,195,176,4,192,0,0,0,192,0,0,0,197,66,225,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,177,4,198,131,177,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,177,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,178,4,198,131,178,4,197,130,225,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,178,4,192,0,0,0,197,195,225,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,179,4,192,0,0,0,192,0,0,0,192,0,0,0,197,35,226,0,198,163,179,4,198,2,180,4,192,0,0,0,192,0,0,0,198,67,180,4,198,163,180,4,192,0,0,0,192,0,0,0,198,3,181,4,198,98,181,4,198,163,181,4,198,3,182,4,198,99,182,4,198,194,182,4,198,3,183,4,198,99,183,4,198,194,183,4,197,131,226,0,192,0,0,0,198,2,184,4,192,0,0,0,197,226,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,184,4,198,163,184,4,192,0,0,0,198,2,185,4,198,66,185,4,198,131,185,4,198,227,185,4,192,0,0,0,192,0,0,0,198,66,186,4,192,0,0,0,192,0,0,0,192,0,0,0,198,131,186,4,198,226,186,4,192,0,0,0,192,0,0,0,198,35,187,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,227,0,197,98,227,0,192,0,0,0,198,130,187,4,192,0,0,0,198,195,187,4,198,34,188,4,192,0,0,0,192,0,0,0,192,0,0,0,198,98,188,4,192,0,0,0,192,0,0,0,198,162,188,4,192,0,0,0,192,0,0,0,198,226,188,4,198,34,189,4,198,99,189,4,192,0,0,0,192,0,0,0,198,195,189,4,198,35,190,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,190,4,198,226,190,4,192,0,0,0,198,34,191,4,198,98,191,4,192,0,0,0,198,163,191,4,198,3,192,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,192,4,192,0,0,0,198,163,192,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,193,4,192,0,0,0,198,99,193,4,198,195,193,4,192,0,0,0,198,34,194,4,198,99,194,4,192,0,0,0,198,195,194,4,198,35,195,4,192,0,0,0,192,0,0,0,192,0,0,0,198,130,195,4,192,0,0,0,192,0,0,0,198,195,195,4,192,0,0,0,198,35,196,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,196,4,192,0,0,0,198,227,196,4,198,67,197,4,198,163,197,4,192,0,0,0,192,0,0,0,198,2,198,4,192,0,0,0,198,67,198,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,227,0,192,0,0,0,198,163,198,4,192,0,0,0,198,2,199,4,192,0,0,0,198,66,199,4,192,0,0,0,192,0,0,0,197,227,227,0,192,0,0,0,198,130,199,4,198,195,199,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,200,4,198,131,200,4,192,0,0,0,198,227,200,4,192,0,0,0,192,0,0,0,197,66,228,0,192,0,0,0,198,67,201,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,201,4,198,226,201,4,198,35,202,4,198,131,202,4,192,0,0,0,192,0,0,0,192,0,0,0,197,130,228,0,198,227,202,4,192,0,0,0,198,66,203,4,192,0,0,0,192,0,0,0,192,0,0,0,198,130,203,4,192,0,0,0,198,195,203,4,192,0,0,0,192,0,0,0,192,0,0,0,198,34,204,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,204,4,197,195,228,0,192,0,0,0,198,195,204,4,198,35,205,4,192,0,0,0,198,131,205,4,198,227,205,4,198,67,206,4,192,0,0,0,198,163,206,4,198,3,207,4,198,99,207,4,198,195,207,4,198,34,208,4,198,99,208,4,192,0,0,0,198,195,208,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,209,4,198,99,209,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,209,4,198,3,210,4,198,99,210,4,192,0,0,0,198,195,210,4,192,0,0,0,192,0,0,0,198,35,211,4,192,0,0,0,198,130,211,4,192,0,0,0,192,0,0,0,198,194,211,4,192,0,0,0,198,3,212,4,192,0,0,0,198,99,212,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,212,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,213,4,192,0,0,0,192,0,0,0,192,0,0,0,198,67,213,4,192,0,0,0,198,162,213,4,197,34,229,0,198,227,213,4,192,0,0,0,192,0,0,0,198,66,214,4,192,0,0,0,198,131,214,4,198,226,214,4,192,0,0,0,198,35,215,4,192,0,0,0,198,131,215,4,198,226,215,4,192,0,0,0,198,35,216,4,198,131,216,4,192,0,0,0,192,0,0,0,198,226,216,4,198,35,217,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,217,4,192,0,0,0,192,0,0,0,192,0,0,0,198,227,217,4,192,0,0,0,192,0,0,0,198,67,218,4,192,0,0,0,192,0,0,0,192,0,0,0,197,98,229,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,218,4,192,0,0,0,198,227,218,4,197,163,229,0,192,0,0,0,192,0,0,0,198,67,219,4,192,0,0,0,198,163,219,4,198,3,220,4,192,0,0,0,198,99,220,4,198,195,220,4,197,3,230,0,197,98,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,221,4,192,0,0,0,198,131,221,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,221,4,192,0,0,0,198,35,222,4,192,0,0,0,198,130,222,4,192,0,0,0,192,0,0,0,198,194,222,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,223,4,192,0,0,0,198,98,223,4,192,0,0,0,192,0,0,0,198,162,223,4,198,226,223,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,230,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,224,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,224,4,192,0,0,0,198,227,224,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,225,4,192,0,0,0,198,162,225,4,192,0,0,0,197,2,231,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,225,4,192,0,0,0,192,0,0,0,198,67,226,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,226,4,198,3,227,4,198,98,227,4,198,163,227,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,231,0,192,0,0,0,192,0,0,0,198,3,228,4,198,98,228,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,228,4,197,162,231,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,229,4,198,99,229,4,198,194,229,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,230,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,230,4,198,163,230,4,192,0,0,0,192,0,0,0,198,3,231,4,192,0,0,0,198,98,231,4,192,0,0,0,198,162,231,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,231,4,198,67,232,4,192,0,0,0,192,0,0,0,198,162,232,4,198,227,232,4,192,0,0,0,192,0,0,0,192,0,0,0,198,67,233,4,198,163,233,4,192,0,0,0,198,2,234,4,192,0,0,0,198,67,234,4,192,0,0,0,192,0,0,0,198,162,234,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,234,4,198,34,235,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,235,4,192,0,0,0,192,0,0,0,198,195,235,4,192,0,0,0,198,34,236,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,236,4,192,0,0,0,192,0,0,0,192,0,0,0,198,194,236,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,237,4,192,0,0,0,192,0,0,0,198,99,237,4,192,0,0,0,198,194,237,4,198,3,238,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,238,4,192,0,0,0,192,0,0,0,198,194,238,4,192,0,0,0,198,3,239,4,198,99,239,4,198,195,239,4,198,35,240,4,198,131,240,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,240,4,192,0,0,0,192,0,0,0,198,67,241,4,198,163,241,4,198,3,242,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,242,4,192,0,0,0,192,0,0,0,198,163,242,4,198,3,243,4,198,99,243,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,243,4,198,3,244,4,192,0,0,0,192,0,0,0,192,0,0,0,197,226,231,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,244,4,198,163,244,4,198,2,245,4,192,0,0,0,198,66,245,4,198,131,245,4,192,0,0,0,198,226,245,4,198,35,246,4,198,131,246,4,198,226,246,4,198,35,247,4,192,0,0,0,198,130,247,4,192,0,0,0,192,0,0,0,198,194,247,4,192,0,0,0,198,3,248,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,248,4,192,0,0,0,192,0,0,0,197,34,232,0,192,0,0,0,198,163,248,4,192,0,0,0,198,2,249,4,192,0,0,0,198,67,249,4,192,0,0,0,198,162,249,4,198,226,249,4,192,0,0,0,192,0,0,0,198,34,250,4,192,0,0,0,198,98,250,4,192,0,0,0,198,162,250,4,198,227,250,4,198,67,251,4,197,99,232,0,198,162,251,4,197,195,232,0,197,35,233,0,192,0,0,0,198,227,251,4,198,67,252,4,192,0,0,0,198,163,252,4,192,0,0,0,192,0,0,0,198,2,253,4,192,0,0,0,192,0,0,0,198,66,253,4,198,131,253,4,198,226,253,4,192,0,0,0,198,34,254,4,198,99,254,4,198,194,254,4,198,3,255,4,198,99,255,4,198,195,255,4,192,0,0,0,192,0,0,0,192,0,0,0,198,34,0,5,198,99,0,5,198,195,0,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,1,5,198,98,1,5,192,0,0,0,198,163,1,5,198,2,2,5,198,66,2,5,198,131,2,5,198,227,2,5,198,67,3,5,192,0,0,0,197,130,233,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,3,5,198,227,3,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,4,5,198,163,4,5,198,2,5,5,198,67,5,5,198,163,5,5,192,0,0,0,192,0,0,0,198,3,6,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,6,5,192,0,0,0,192,0,0,0,198,195,6,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,7,5,192,0,0,0,192,0,0,0,198,131,7,5,192,0,0,0,198,226,7,5,197,195,233,0,192,0,0,0,198,34,8,5,192,0,0,0,192,0,0,0,198,99,8,5,198,195,8,5,198,35,9,5,192,0,0,0,192,0,0,0,198,131,9,5,192,0,0,0,198,227,9,5,198,66,10,5,198,131,10,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,10,5,192,0,0,0,198,35,11,5,198,131,11,5,198,226,11,5,198,35,12,5,192,0,0,0,192,0,0,0,198,131,12,5,192,0,0,0,192,0,0,0,198,227,12,5,197,34,234,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,13,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,13,5,192,0,0,0,192,0,0,0,198,195,13,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,14,5,198,130,14,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,14,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,15,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,15,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,15,5,192,0,0,0,198,66,16,5,198,131,16,5,192,0,0,0,198,226,16,5,198,34,17,5,198,99,17,5,192,0,0,0,198,195,17,5,192,0,0,0,198,35,18,5,198,130,18,5,197,98,234,0,198,194,18,5,192,0,0,0,198,3,19,5,198,99,19,5,198,195,19,5,192,0,0,0,198,35,20,5,198,130,20,5,192,0,0,0,192,0,0,0,198,195,20,5,192,0,0,0,198,34,21,5,198,99,21,5,192,0,0,0,198,195,21,5,198,35,22,5,198,131,22,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,22,5,192,0,0,0,192,0,0,0,197,162,234,0,192,0,0,0,192,0,0,0,198,67,23,5,198,162,23,5,198,226,23,5,198,35,24,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,24,5,198,195,24,5,197,227,234,0,192,0,0,0,198,35,25,5,192,0,0,0,198,131,25,5,198,227,25,5,198,67,26,5,192,0,0,0,197,66,235,0,198,163,26,5,192,0,0,0,198,3,27,5,192,0,0,0,192,0,0,0,198,98,27,5,192,0,0,0,198,163,27,5,198,3,28,5,192,0,0,0,192,0,0,0,198,99,28,5,192,0,0,0,192,0,0,0,197,130,235,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,28,5,192,0,0,0,198,35,29,5,192,0,0,0,192,0,0,0,197,194,235,0,192,0,0,0,197,2,236,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,29,5,198,227,29,5,198,67,30,5,198,162,30,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,30,5,198,35,31,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,31,5,192,0,0,0,197,66,236,0,198,226,31,5,192,0,0,0,192,0,0,0,198,35,32,5,192,0,0,0,198,131,32,5,197,130,236,0,198,227,32,5,198,67,33,5,198,162,33,5,198,227,33,5,198,67,34,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,5,192,0,0,0,192,0,0,0,198,3,35,5,198,99,35,5,192,0,0,0,198,195,35,5,198,34,36,5,198,99,36,5,192,0,0,0,198,195,36,5,192,0,0,0,198,34,37,5,192,0,0,0,197,194,236,0,192,0,0,0,198,98,37,5,192,0,0,0,198,163,37,5,198,3,38,5,192,0,0,0,192,0,0,0,198,99,38,5,192,0,0,0,198,195,38,5,198,34,39,5,198,98,39,5,198,162,39,5,198,226,39,5,198,35,40,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,40,5,192,0,0,0,198,195,40,5,192,0,0,0,198,35,41,5,198,131,41,5,198,227,41,5,198,67,42,5,192,0,0,0,198,163,42,5,198,2,43,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,43,5,192,0,0,0,192,0,0,0,198,130,43,5,197,2,237,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,43,5,197,66,237,0,198,34,44,5,192,0,0,0,198,99,44,5,192,0,0,0,198,195,44,5,198,34,45,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,45,5,192,0,0,0,192,0,0,0,198,195,45,5,192,0,0,0,192,0,0,0,198,34,46,5,198,99,46,5,198,195,46,5,192,0,0,0,192,0,0,0,197,131,237,0,198,35,47,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,47,5,197,227,237,0,192,0,0,0,198,195,47,5,192,0,0,0,198,35,48,5,198,130,48,5,192,0,0,0,198,195,48,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,49,5,198,130,49,5,192,0,0,0,198,195,49,5,192,0,0,0,198,35,50,5,192,0,0,0,192,0,0,0,198,131,50,5,198,227,50,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,51,5,198,130,51,5,198,195,51,5,192,0,0,0,198,35,52,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,52,5,198,227,52,5,192,0,0,0,192,0,0,0,192,0,0,0,198,67,53,5,198,163,53,5,197,66,238,0,192,0,0,0,198,3,54,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,54,5,198,195,54,5,198,34,55,5,198,99,55,5,192,0,0,0,198,195,55,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,56,5,198,131,56,5,192,0,0,0,192,0,0,0,198,226,56,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,238,0,192,0,0,0,198,34,57,5,198,99,57,5,198,195,57,5,192,0,0,0,197,194,238,0,192,0,0,0,192,0,0,0,198,34,58,5,192,0,0,0,198,99,58,5,192,0,0,0,197,2,239,0,197,66,239,0,192,0,0,0,192,0,0,0,197,130,239,0,192,0,0,0,198,195,58,5,192,0,0,0,198,34,59,5,192,0,0,0,192,0,0,0,198,98,59,5,192,0,0,0,197,194,239,0,198,163,59,5,198,2,60,5,192,0,0,0,192,0,0,0,197,3,240,0,198,66,60,5,198,131,60,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,60,5,192,0,0,0,192,0,0,0,198,66,61,5,198,130,61,5,198,194,61,5,198,2,62,5,192,0,0,0,198,67,62,5,192,0,0,0,198,163,62,5,192,0,0,0,198,2,63,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,63,5,192,0,0,0,198,130,63,5,198,195,63,5,198,35,64,5,192,0,0,0,198,131,64,5,192,0,0,0,192,0,0,0,197,98,240,0,198,226,64,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,65,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,65,5,197,162,240,0,192,0,0,0,198,227,65,5,192,0,0,0,192,0,0,0,192,0,0,0,198,67,66,5,192,0,0,0,192,0,0,0,197,226,240,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,66,5,192,0,0,0,198,2,67,5,198,67,67,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,67,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,67,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,68,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,68,5,192,0,0,0,198,227,68,5,192,0,0,0,198,67,69,5,192,0,0,0,192,0,0,0,192,0,0,0,198,163,69,5,192,0,0,0,198,3,70,5,197,35,241,0,197,131,241,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,70,5,192,0,0,0,192,0,0,0,192,0,0,0,198,163,70,5,197,226,241,0,198,2,71,5,192,0,0,0,198,67,71,5,198,162,71,5,192,0,0,0,198,227,71,5,192,0,0,0,192,0,0,0,198,67,72,5,192,0,0,0,198,163,72,5,197,34,242,0,192,0,0,0,197,99,242,0,192,0,0,0,198,3,73,5,192,0,0,0,192,0,0,0,198,98,73,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,73,5,198,226,73,5,198,35,74,5,198,131,74,5,192,0,0,0,198,227,74,5,192,0,0,0,198,66,75,5,198,130,75,5,192,0,0,0,198,194,75,5,198,2,76,5,198,66,76,5,198,130,76,5,192,0,0,0,192,0,0,0,198,194,76,5,192,0,0,0,192,0,0,0,198,2,77,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,77,5,198,131,77,5,198,226,77,5,192,0,0,0,198,34,78,5,198,99,78,5,198,194,78,5,198,2,79,5,198,67,79,5,197,194,242,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,79,5,192,0,0,0,192,0,0,0,198,226,79,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,80,5,192,0,0,0,198,98,80,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,80,5,198,226,80,5,192,0,0,0,192,0,0,0,198,34,81,5,192,0,0,0,192,0,0,0,198,98,81,5,192,0,0,0,192,0,0,0,197,2,243,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,243,0,192,0,0,0,198,163,81,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,82,5,192,0,0,0,192,0,0,0,198,99,82,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,82,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,83,5,192,0,0,0,192,0,0,0,198,98,83,5,198,163,83,5,192,0,0,0,198,3,84,5,192,0,0,0,197,162,243,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,84,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,84,5,198,35,85,5,198,130,85,5,198,195,85,5,198,35,86,5,192,0,0,0,198,130,86,5,198,195,86,5,198,35,87,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,87,5,198,227,87,5,198,67,88,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,88,5,198,227,88,5,198,66,89,5,198,130,89,5,192,0,0,0,198,195,89,5,192,0,0,0,198,35,90,5,198,130,90,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,243,0,192,0,0,0,192,0,0,0,198,194,90,5,192,0,0,0,198,2,91,5,192,0,0,0,198,66,91,5,198,131,91,5,192,0,0,0,198,227,91,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,92,5,198,130,92,5,192,0,0,0,192,0,0,0,198,194,92,5,198,3,93,5,192,0,0,0,192,0,0,0,198,99,93,5,198,195,93,5,198,35,94,5,192,0,0,0,198,131,94,5,192,0,0,0,198,227,94,5,192,0,0,0,198,67,95,5,198,163,95,5,192,0,0,0,197,66,244,0,198,2,96,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,244,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,244,0,198,66,96,5,192,0,0,0,198,131,96,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,96,5,192,0,0,0,198,34,97,5,192,0,0,0,197,2,245,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,97,5,198,163,97,5,192,0,0,0,192,0,0,0,198,2,98,5,198,66,98,5,198,131,98,5,192,0,0,0,192,0,0,0,198,226,98,5,192,0,0,0,198,34,99,5,197,66,245,0,192,0,0,0,192,0,0,0,198,99,99,5,198,194,99,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,100,5,192,0,0,0,198,67,100,5,192,0,0,0,192,0,0,0,198,163,100,5,192,0,0,0,192,0,0,0,197,131,245,0,197,227,245,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,101,5,198,98,101,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,101,5,192,0,0,0,192,0,0,0,197,67,246,0,197,162,246,0,197,227,246,0,198,227,101,5,198,67,102,5,198,163,102,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,103,5,192,0,0,0,198,99,103,5,192,0,0,0,198,195,103,5,198,35,104,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,104,5,198,227,104,5,192,0,0,0,192,0,0,0,197,66,247,0,192,0,0,0,198,66,105,5,192,0,0,0,198,131,105,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,105,5,198,34,106,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,106,5,198,194,106,5,192,0,0,0,192,0,0,0,192,0,0,0,198,2,107,5,192,0,0,0,192,0,0,0,198,67,107,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,107,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,108,5,198,99,108,5,192,0,0,0,192,0,0,0,198,195,108,5,192,0,0,0,198,34,109,5,198,98,109,5,198,162,109,5,198,226,109,5,198,35,110,5,198,131,110,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,110,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,111,5,198,131,111,5,198,226,111,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,112,5,192,0,0,0,198,131,112,5,192,0,0,0,192,0,0,0,198,226,112,5,198,35,113,5,192,0,0,0,192,0,0,0,198,130,113,5,192,0,0,0,198,195,113,5,197,131,247,0,198,35,114,5,198,131,114,5,198,227,114,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,247,0,198,67,115,5,192,0,0,0,197,34,248,0,198,163,115,5,198,2,116,5,192,0,0,0,198,66,116,5,192,0,0,0,198,131,116,5,192,0,0,0,198,227,116,5,198,66,117,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,117,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,117,5,192,0,0,0,198,3,118,5,198,99,118,5,198,195,118,5,192,0,0,0,198,34,119,5,192,0,0,0,192,0,0,0,198,99,119,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,119,5,198,34,120,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,120,5,192,0,0,0,192,0,0,0,198,195,120,5,198,34,121,5,197,98,248,0,192,0,0,0,192,0,0,0,198,98,121,5,198,163,121,5,198,3,122,5,192,0,0,0,192,0,0,0,198,99,122,5,197,162,248,0,198,195,122,5,198,35,123,5,192,0,0,0,198,130,123,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,123,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,124,5,192,0,0,0,192,0,0,0,197,226,248,0,192,0,0,0,198,99,124,5,192,0,0,0,198,194,124,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,125,5,198,99,125,5,197,34,249,0,192,0,0,0,192,0,0,0,198,194,125,5,192,0,0,0,198,3,126,5,198,99,126,5,192,0,0,0,192,0,0,0,198,195,126,5,192,0,0,0,197,98,249,0,192,0,0,0,198,35,127,5,198,131,127,5,192,0,0,0,198,226,127,5,192,0,0,0,198,35,128,5,197,162,249,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,128,5,197,226,249,0,192,0,0,0,198,195,128,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,129,5,198,99,129,5,198,194,129,5,192,0,0,0,197,34,250,0,192,0,0,0,192,0,0,0,197,98,250,0,198,3,130,5,198,99,130,5,192,0,0,0,198,194,130,5,192,0,0,0,197,162,250,0,197,227,250,0,192,0,0,0,198,2,131,5,192,0,0,0,198,67,131,5,198,162,131,5,192,0,0,0,192,0,0,0,198,226,131,5,192,0,0,0,198,34,132,5,192,0,0,0,192,0,0,0,192,0,0,0,198,98,132,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,132,5,198,3,133,5,192,0,0,0,198,98,133,5,198,162,133,5,192,0,0,0,198,227,133,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,134,5,198,163,134,5,198,3,135,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,135,5,192,0,0,0,198,194,135,5,198,3,136,5,198,99,136,5,198,194,136,5,198,3,137,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,137,5,192,0,0,0,192,0,0,0,198,194,137,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,251,0,192,0,0,0,198,3,138,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,138,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,138,5,198,3,139,5,198,98,139,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,139,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,251,0,192,0,0,0,197,195,251,0,192,0,0,0,198,3,140,5,192,0,0,0,198,98,140,5,198,162,140,5,192,0,0,0,192,0,0,0,198,227,140,5,198,67,141,5,192,0,0,0,198,163,141,5,198,3,142,5,192,0,0,0,198,99,142,5,192,0,0,0,198,195,142,5,192,0,0,0,198,34,143,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,143,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,143,5,198,2,144,5,192,0,0,0,198,67,144,5,198,163,144,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,145,5,192,0,0,0,197,34,252,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,145,5,198,162,145,5,198,227,145,5,192,0,0,0,192,0,0,0,198,66,146,5,192,0,0,0,198,131,146,5,192,0,0,0,198,227,146,5,198,67,147,5,198,162,147,5,192,0,0,0,198,226,147,5,197,98,252,0,198,34,148,5,198,99,148,5,198,195,148,5,198,34,149,5,198,99,149,5,198,195,149,5,197,162,252,0,197,226,252,0,198,35,150,5,198,130,150,5,197,34,253,0,192,0,0,0,198,195,150,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,151,5,198,99,151,5,198,195,151,5,192,0,0,0,197,98,253,0,198,34,152,5,198,98,152,5,198,162,152,5,198,227,152,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,153,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,153,5,198,227,153,5,198,67,154,5,197,162,253,0,198,162,154,5,192,0,0,0,198,226,154,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,155,5,198,99,155,5,192,0,0,0,198,194,155,5,198,2,156,5,198,67,156,5,198,162,156,5,192,0,0,0,198,226,156,5,192,0,0,0,198,35,157,5,198,130,157,5,197,226,253,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,157,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,158,5,192,0,0,0,198,131,158,5,197,34,254,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,158,5,198,66,159,5,198,130,159,5,192,0,0,0,198,194,159,5,197,99,254,0,198,2,160,5,198,67,160,5,198,163,160,5,198,2,161,5,198,67,161,5,198,162,161,5,198,226,161,5,192,0,0,0,192,0,0,0,198,34,162,5,198,99,162,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,162,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,163,5,198,131,163,5,198,226,163,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,164,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,164,5,192,0,0,0,198,163,164,5,198,3,165,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,165,5,192,0,0,0,198,194,165,5,198,2,166,5,198,67,166,5,197,194,254,0,198,163,166,5,198,2,167,5,192,0,0,0,198,67,167,5,197,2,255,0,192,0,0,0,192,0,0,0,198,163,167,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,168,5,192,0,0,0,192,0,0,0,198,99,168,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,168,5,192,0,0,0,198,34,169,5,198,99,169,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,169,5,198,35,170,5,198,130,170,5,197,67,255,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,170,5,192,0,0,0,192,0,0,0,192,0,0,0,197,162,255,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,171,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,171,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,171,5,198,227,171,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,172,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,172,5,198,194,172,5,192,0,0,0,192,0,0,0,198,3,173,5,192,0,0,0,198,99,173,5,192,0,0,0,198,195,173,5,198,35,174,5,192,0,0,0,197,226,255,0,198,131,174,5,197,35,0,1,198,226,174,5,192,0,0,0,197,131,0,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,175,5,198,130,175,5,198,194,175,5,198,3,176,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,176,5,198,195,176,5,198,34,177,5,192,0,0,0,198,99,177,5,198,195,177,5,192,0,0,0,192,0,0,0,198,35,178,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,178,5,198,227,178,5,192,0,0,0,198,67,179,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,0,1,192,0,0,0,197,34,1,1,198,163,179,5,192,0,0,0,198,3,180,5,192,0,0,0,198,99,180,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,180,5,192,0,0,0,192,0,0,0,198,2,181,5,197,98,1,1,197,163,1,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,181,5,192,0,0,0,198,131,181,5,192,0,0,0,192,0,0,0,192,0,0,0,197,2,2,1,198,226,181,5,198,35,182,5,198,130,182,5,192,0,0,0,198,195,182,5,192,0,0,0,198,35,183,5,192,0,0,0,192,0,0,0,197,66,2,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,183,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,2,1,198,226,183,5,192,0,0,0,198,34,184,5,198,99,184,5,192,0,0,0,192,0,0,0,198,194,184,5,197,194,2,1,198,3,185,5,198,99,185,5,197,2,3,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,3,1,192,0,0,0,192,0,0,0,198,195,185,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,3,1,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,1,192,0,0,0,192,0,0,0,197,34,4,1,198,35,186,5,192,0,0,0,192,0,0,0,198,131,186,5,198,227,186,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,187,5,192,0,0,0,192,0,0,0,198,131,187,5,198,227,187,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,188,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,1,192,0,0,0,192,0,0,0,198,163,188,5,198,3,189,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,189,5,192,0,0,0,198,163,189,5,192,0,0,0,192,0,0,0,197,162,4,1,192,0,0,0,192,0,0,0,197,226,4,1,198,2,190,5,197,34,5,1,198,67,190,5,198,162,190,5,192,0,0,0,198,227,190,5,192,0,0,0,198,67,191,5,192,0,0,0,198,162,191,5,192,0,0,0,198,226,191,5,192,0,0,0,197,99,5,1,192,0,0,0,192,0,0,0,198,35,192,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,5,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,192,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,192,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,193,5,192,0,0,0,192,0,0,0,198,99,193,5,192,0,0,0,192,0,0,0,198,194,193,5,192,0,0,0,198,3,194,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,194,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,194,5,192,0,0,0,198,2,195,5,192,0,0,0,192,0,0,0,198,66,195,5,192,0,0,0,198,131,195,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,195,5,198,67,196,5,198,163,196,5,198,3,197,5,198,99,197,5,192,0,0,0,192,0,0,0,197,2,6,1,198,195,197,5,198,35,198,5,198,131,198,5,192,0,0,0,198,227,198,5,192,0,0,0,198,67,199,5,192,0,0,0,192,0,0,0,198,163,199,5,198,3,200,5,198,98,200,5,192,0,0,0,198,162,200,5,192,0,0,0,192,0,0,0,198,227,200,5,198,66,201,5,192,0,0,0,198,130,201,5,192,0,0,0,192,0,0,0,198,194,201,5,192,0,0,0,192,0,0,0,192,0,0,0,198,2,202,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,202,5,198,163,202,5,198,3,203,5,198,99,203,5,192,0,0,0,198,195,203,5,192,0,0,0,192,0,0,0,198,35,204,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,204,5,197,67,6,1,192,0,0,0,192,0,0,0,198,194,204,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,205,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,205,5,192,0,0,0,198,195,205,5,198,35,206,5,197,162,6,1,192,0,0,0,198,130,206,5,198,195,206,5,192,0,0,0,198,35,207,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,207,5,198,194,207,5,192,0,0,0,198,2,208,5,192,0,0,0,198,67,208,5,192,0,0,0,198,163,208,5,198,2,209,5,192,0,0,0,192,0,0,0,192,0,0,0,198,67,209,5,192,0,0,0,198,162,209,5,198,227,209,5,192,0,0,0,198,67,210,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,1,192,0,0,0,197,34,7,1,192,0,0,0,198,163,210,5,192,0,0,0,198,3,211,5,192,0,0,0,192,0,0,0,198,99,211,5,192,0,0,0,192,0,0,0,198,194,211,5,198,2,212,5,198,66,212,5,192,0,0,0,192,0,0,0,198,130,212,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,212,5,192,0,0,0,198,34,213,5,198,98,213,5,192,0,0,0,198,162,213,5,197,98,7,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,1,192,0,0,0,192,0,0,0,198,227,213,5,192,0,0,0,198,67,214,5,198,162,214,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,214,5,198,67,215,5,198,162,215,5,198,227,215,5,192,0,0,0,198,66,216,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,216,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,216,5,192,0,0,0,198,35,217,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,217,5,192,0,0,0,198,226,217,5,198,34,218,5,192,0,0,0,198,98,218,5,198,162,218,5,192,0,0,0,198,227,218,5,192,0,0,0,192,0,0,0,197,226,7,1,192,0,0,0,198,67,219,5,192,0,0,0,192,0,0,0,198,163,219,5,192,0,0,0,192,0,0,0,198,3,220,5,192,0,0,0,197,34,8,1,192,0,0,0,198,99,220,5,192,0,0,0,198,195,220,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,1,198,35,221,5,198,131,221,5,192,0,0,0,197,163,8,1,198,227,221,5,198,67,222,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,222,5,197,3,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,222,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,223,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,223,5,198,195,223,5,198,35,224,5,198,130,224,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,224,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,1,197,226,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,225,5,198,99,225,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,225,5,198,34,226,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,1,192,0,0,0,198,98,226,5,198,163,226,5,198,2,227,5,192,0,0,0,198,67,227,5,192,0,0,0,198,163,227,5,198,3,228,5,192,0,0,0,197,98,10,1,192,0,0,0,198,98,228,5,192,0,0,0,198,162,228,5,198,226,228,5,192,0,0,0,192,0,0,0,198,35,229,5,198,131,229,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,229,5,198,67,230,5,198,163,230,5,192,0,0,0,198,3,231,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,231,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,231,5,192,0,0,0,198,3,232,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,232,5,192,0,0,0,198,195,232,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,233,5,192,0,0,0,192,0,0,0,198,98,233,5,192,0,0,0,198,162,233,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,10,1,192,0,0,0,197,227,10,1,192,0,0,0,192,0,0,0,197,66,11,1,198,227,233,5,197,130,11,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,11,1,198,66,234,5,192,0,0,0,198,130,234,5,197,2,12,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,12,1,192,0,0,0,192,0,0,0,192,0,0,0,197,130,12,1,198,194,234,5,192,0,0,0,192,0,0,0,198,2,235,5,192,0,0,0,198,67,235,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,235,5,198,227,235,5,197,194,12,1,198,67,236,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,236,5,198,2,237,5,198,67,237,5,198,162,237,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,237,5,192,0,0,0,198,67,238,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,238,5,198,2,239,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,239,5,197,2,13,1,198,130,239,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,239,5,198,2,240,5,198,67,240,5,192,0,0,0,192,0,0,0,198,162,240,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,240,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,241,5,197,66,13,1,198,130,241,5,192,0,0,0,198,195,241,5,192,0,0,0,198,35,242,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,13,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,13,1,192,0,0,0,198,130,242,5,192,0,0,0,192,0,0,0,197,3,14,1,198,194,242,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,243,5,197,99,14,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,243,5,192,0,0,0,192,0,0,0,198,195,243,5,198,35,244,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,244,5,198,195,244,5,192,0,0,0,198,34,245,5,192,0,0,0,192,0,0,0,198,98,245,5,192,0,0,0,198,163,245,5,192,0,0,0,198,3,246,5,198,99,246,5,192,0,0,0,192,0,0,0,198,195,246,5,192,0,0,0,198,34,247,5,198,98,247,5,198,162,247,5,198,227,247,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,248,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,248,5,192,0,0,0,198,226,248,5,192,0,0,0,198,35,249,5,198,130,249,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,249,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,250,5,192,0,0,0,192,0,0,0,198,99,250,5,198,194,250,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,251,5,198,99,251,5,192,0,0,0,198,195,251,5,192,0,0,0,192,0,0,0,198,34,252,5,198,99,252,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,252,5,198,35,253,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,253,5,192,0,0,0,198,195,253,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,254,5,192,0,0,0,197,195,14,1,192,0,0,0,198,131,254,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,15,1,198,227,254,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,255,5,198,130,255,5,197,98,15,1,192,0,0,0,198,195,255,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,0,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,15,1,192,0,0,0,198,131,0,6,192,0,0,0,197,226,15,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,0,6,198,67,1,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,1,6,198,3,2,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,2,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,6,198,227,2,6,192,0,0,0,192,0,0,0,198,67,3,6,198,163,3,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,4,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,4,6,198,163,4,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,5,6,198,66,5,6,192,0,0,0,198,131,5,6,192,0,0,0,192,0,0,0,198,227,5,6,192,0,0,0,192,0,0,0,192,0,0,0,197,35,16,1,192,0,0,0,192,0,0,0,198,66,6,6,192,0,0,0,192,0,0,0,198,130,6,6,198,195,6,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,7,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,7,6,198,227,7,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,8,6,192,0,0,0,192,0,0,0,198,162,8,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,8,6,192,0,0,0,192,0,0,0,198,66,9,6,192,0,0,0,192,0,0,0,198,131,9,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,9,6,192,0,0,0,197,130,16,1,192,0,0,0,197,194,16,1,192,0,0,0,192,0,0,0,198,67,10,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,10,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,11,6,192,0,0,0,192,0,0,0,192,0,0,0,198,99,11,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,11,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,12,6,192,0,0,0,197,2,17,1,198,131,12,6,197,66,17,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,12,6,198,35,13,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,13,6,192,0,0,0,192,0,0,0,198,226,13,6,192,0,0,0,198,35,14,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,17,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,14,6,192,0,0,0,198,227,14,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,15,6,192,0,0,0,198,163,15,6,198,3,16,6,198,99,16,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,16,6,198,35,17,6,192,0,0,0,192,0,0,0,192,0,0,0,198,130,17,6,192,0,0,0,198,194,17,6,192,0,0,0,197,226,17,1,192,0,0,0,198,3,18,6,198,98,18,6,192,0,0,0,192,0,0,0,198,163,18,6,198,2,19,6,197,34,18,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,1,192,0,0,0,192,0,0,0,198,67,19,6,192,0,0,0,192,0,0,0,198,163,19,6,192,0,0,0,198,2,20,6,192,0,0,0,198,67,20,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,20,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,21,6,198,99,21,6,198,195,21,6,192,0,0,0,198,35,22,6,198,130,22,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,22,6,192,0,0,0,192,0,0,0,198,2,23,6,192,0,0,0,198,66,23,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,23,6,192,0,0,0,192,0,0,0,192,0,0,0,198,226,23,6,198,35,24,6,192,0,0,0,192,0,0,0,192,0,0,0,197,162,18,1,192,0,0,0,198,130,24,6,198,195,24,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,25,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,25,6,197,226,18,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,25,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,26,6,198,98,26,6,198,163,26,6,192,0,0,0,192,0,0,0,198,3,27,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,27,6,192,0,0,0,192,0,0,0,198,163,27,6,192,0,0,0,198,2,28,6,192,0,0,0,192,0,0,0,198,66,28,6,192,0,0,0,197,34,19,1,197,98,19,1,192,0,0,0,192,0,0,0,198,130,28,6,198,195,28,6,192,0,0,0,192,0,0,0,198,34,29,6,198,99,29,6,192,0,0,0,198,194,29,6,192,0,0,0,198,2,30,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,30,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,30,6,192,0,0,0,197,162,19,1,192,0,0,0,198,195,30,6,198,34,31,6,198,98,31,6,192,0,0,0,192,0,0,0,198,162,31,6,198,226,31,6,192,0,0,0,192,0,0,0,192,0,0,0,197,226,19,1,198,34,32,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,20,1,192,0,0,0,192,0,0,0,198,99,32,6,192,0,0,0,192,0,0,0,198,195,32,6,192,0,0,0,198,35,33,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,33,6,192,0,0,0,198,226,33,6,198,34,34,6,192,0,0,0,198,98,34,6,192,0,0,0,192,0,0,0,197,98,20,1,198,162,34,6,197,162,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,34,6,192,0,0,0,198,67,35,6,192,0,0,0,192,0,0,0,197,226,20,1,197,34,21,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,35,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,36,6,192,0,0,0,198,98,36,6,192,0,0,0,198,163,36,6,198,3,37,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,37,6,192,0,0,0,192,0,0,0,198,195,37,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,38,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,38,6,192,0,0,0,198,194,38,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,39,6,192,0,0,0,198,99,39,6,198,195,39,6,198,35,40,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,40,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,40,6,192,0,0,0,192,0,0,0,197,99,21,1,192,0,0,0,198,67,41,6,192,0,0,0,192,0,0,0,198,163,41,6,192,0,0,0,198,3,42,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,42,6,192,0,0,0,198,162,42,6,192,0,0,0,198,227,42,6,192,0,0,0,192,0,0,0,198,67,43,6,197,194,21,1,197,3,22,1,198,162,43,6,192,0,0,0,198,227,43,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,44,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,44,6,192,0,0,0,192,0,0,0,198,226,44,6,198,34,45,6,198,99,45,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,45,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,46,6,198,130,46,6,198,195,46,6,192,0,0,0,198,34,47,6,192,0,0,0,192,0,0,0,198,98,47,6,192,0,0,0,192,0,0,0,198,163,47,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,22,1,192,0,0,0,192,0,0,0,198,3,48,6,192,0,0,0,192,0,0,0,198,99,48,6,192,0,0,0,198,195,48,6,198,35,49,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,49,6,192,0,0,0,198,227,49,6,192,0,0,0,198,67,50,6,192,0,0,0,192,0,0,0,192,0,0,0,198,162,50,6,192,0,0,0,198,226,50,6,198,34,51,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,22,1,192,0,0,0,198,99,51,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,51,6,192,0,0,0,198,35,52,6,198,131,52,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,52,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,53,6,192,0,0,0,198,163,53,6,198,2,54,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,54,6,198,162,54,6,198,227,54,6,198,67,55,6,192,0,0,0,198,163,55,6,192,0,0,0,198,2,56,6,192,0,0,0,198,67,56,6,198,162,56,6,192,0,0,0,197,227,22,1,198,227,56,6,198,67,57,6,197,67,23,1,198,163,57,6,198,2,58,6,192,0,0,0,192,0,0,0,197,162,23,1,192,0,0,0,198,66,58,6,192,0,0,0,198,131,58,6,192,0,0,0,192,0,0,0,197,227,23,1,198,227,58,6,192,0,0,0,198,67,59,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,59,6,192,0,0,0,192,0,0,0,198,3,60,6,192,0,0,0,192,0,0,0,192,0,0,0,197,66,24,1,192,0,0,0,192,0,0,0,198,98,60,6,192,0,0,0,198,162,60,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,60,6,198,66,61,6,198,131,61,6,192,0,0,0,198,226,61,6,192,0,0,0,192,0,0,0,198,34,62,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,62,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,62,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,62,6,198,34,63,6,192,0,0,0,192,0,0,0,198,98,63,6,198,163,63,6,197,130,24,1,198,3,64,6,198,99,64,6,192,0,0,0,192,0,0,0,197,194,24,1,192,0,0,0,192,0,0,0,198,194,64,6,192,0,0,0,198,3,65,6,197,2,25,1,198,99,65,6,197,66,25,1,192,0,0,0,192,0,0,0,198,194,65,6,192,0,0,0,192,0,0,0,198,2,66,6,192,0,0,0,198,66,66,6,198,130,66,6,197,130,25,1,198,195,66,6,192,0,0,0,197,195,25,1,197,34,26,1,197,98,26,1,198,35,67,6,192,0,0,0,198,131,67,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,67,6,192,0,0,0,192,0,0,0,197,162,26,1,192,0,0,0,192,0,0,0,197,226,26,1,192,0,0,0,192,0,0,0,198,66,68,6,192,0,0,0,198,130,68,6,198,194,68,6,198,3,69,6,197,34,27,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,69,6,198,163,69,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,70,6,192,0,0,0,198,98,70,6,192,0,0,0,198,163,70,6,192,0,0,0,192,0,0,0,197,98,27,1,192,0,0,0,198,2,71,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,71,6,192,0,0,0,198,131,71,6,198,226,71,6,198,35,72,6,198,130,72,6,198,194,72,6,198,2,73,6,198,67,73,6,198,162,73,6,197,162,27,1,192,0,0,0,198,227,73,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,74,6,192,0,0,0,197,226,27,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,74,6,192,0,0,0,192,0,0,0,197,34,28,1,192,0,0,0,198,195,74,6,198,34,75,6,192,0,0,0,192,0,0,0,198,99,75,6,192,0,0,0,198,195,75,6,192,0,0,0,192,0,0,0,198,35,76,6,192,0,0,0,198,130,76,6,192,0,0,0,198,195,76,6,192,0,0,0,198,35,77,6,192,0,0,0,197,98,28,1,192,0,0,0,192,0,0,0,198,131,77,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,77,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,28,1,198,67,78,6,192,0,0,0,198,163,78,6,198,2,79,6,197,227,28,1,198,66,79,6,192,0,0,0,192,0,0,0,198,131,79,6,192,0,0,0,197,66,29,1,197,130,29,1,192,0,0,0,192,0,0,0,198,227,79,6,198,67,80,6,192,0,0,0,197,194,29,1,198,162,80,6,192,0,0,0,198,226,80,6,197,2,30,1,192,0,0,0,198,35,81,6,197,67,30,1,192,0,0,0,198,131,81,6,198,227,81,6,197,162,30,1,192,0,0,0,198,67,82,6,192,0,0,0,197,227,30,1,192,0,0,0,198,163,82,6,192,0,0,0,198,2,83,6,198,67,83,6,197,66,31,1,192,0,0,0,198,163,83,6,192,0,0,0,192,0,0,0,198,3,84,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,84,6,192,0,0,0,198,162,84,6,192,0,0,0,198,227,84,6,197,130,31,1,192,0,0,0,192,0,0,0,197,195,31,1,192,0,0,0,198,67,85,6,198,163,85,6,192,0,0,0,198,3,86,6,198,99,86,6,198,195,86,6,198,35,87,6,198,130,87,6,192,0,0,0,192,0,0,0,198,194,87,6,192,0,0,0,192,0,0,0,198,2,88,6,192,0,0,0,192,0,0,0,198,67,88,6,192,0,0,0,198,162,88,6,192,0,0,0,192,0,0,0,198,227,88,6,198,66,89,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,89,6,192,0,0,0,192,0,0,0,192,0,0,0,198,194,89,6,192,0,0,0,198,3,90,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,90,6,192,0,0,0,192,0,0,0,197,34,32,1,192,0,0,0,197,98,32,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,90,6,192,0,0,0,192,0,0,0,197,162,32,1,192,0,0,0,197,227,32,1,198,34,91,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,91,6,192,0,0,0,198,195,91,6,192,0,0,0,198,35,92,6,198,130,92,6,198,195,92,6,192,0,0,0,198,34,93,6,192,0,0,0,192,0,0,0,198,98,93,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,93,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,94,6,198,98,94,6,192,0,0,0,192,0,0,0,198,163,94,6,197,66,33,1,198,3,95,6,192,0,0,0,192,0,0,0,198,99,95,6,192,0,0,0,192,0,0,0,197,130,33,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,33,1,192,0,0,0,197,2,34,1,198,195,95,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,96,6,198,99,96,6,192,0,0,0,198,195,96,6,192,0,0,0,198,34,97,6,192,0,0,0,198,98,97,6,192,0,0,0,198,163,97,6,198,3,98,6,192,0,0,0,192,0,0,0,198,99,98,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,98,6,192,0,0,0,198,35,99,6,192,0,0,0,198,131,99,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,99,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,100,6,192,0,0,0,197,67,34,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,100,6,198,195,100,6,198,34,101,6,198,98,101,6,198,163,101,6,192,0,0,0,198,3,102,6,192,0,0,0,198,98,102,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,102,6,198,227,102,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,103,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,103,6,198,3,104,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,34,1,192,0,0,0,197,226,34,1,197,34,35,1,198,98,104,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,104,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,35,1,197,162,35,1,198,2,105,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,105,6,198,131,105,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,105,6,192,0,0,0,198,66,106,6,198,130,106,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,106,6,198,2,107,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,107,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,35,1,198,163,107,6,192,0,0,0,198,2,108,6,198,66,108,6,198,131,108,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,108,6,197,34,36,1,198,67,109,6,197,99,36,1,198,163,109,6,198,3,110,6,192,0,0,0,192,0,0,0,197,194,36,1,198,98,110,6,192,0,0,0,198,162,110,6,198,226,110,6,198,34,111,6,192,0,0,0,197,3,37,1,198,98,111,6,198,162,111,6,192,0,0,0,197,99,37,1,198,226,111,6,198,35,112,6,198,130,112,6,192,0,0,0,198,194,112,6,197,194,37,1,198,3,113,6,198,98,113,6,198,163,113,6,197,2,38,1,192,0,0,0,198,3,114,6,198,98,114,6,198,162,114,6,192,0,0,0,198,227,114,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,115,6,192,0,0,0,198,163,115,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,116,6,198,66,116,6,192,0,0,0,198,130,116,6,192,0,0,0,198,195,116,6,192,0,0,0,198,34,117,6,198,99,117,6,198,195,117,6,198,34,118,6,198,99,118,6,192,0,0,0,198,194,118,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,119,6,192,0,0,0,198,99,119,6,198,194,119,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,120,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,120,6,198,130,120,6,198,194,120,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,121,6,197,66,38,1,192,0,0,0,198,67,121,6,198,163,121,6,192,0,0,0,198,3,122,6,198,99,122,6,192,0,0,0,198,195,122,6,192,0,0,0,198,35,123,6,198,131,123,6,192,0,0,0,192,0,0,0,198,227,123,6,198,66,124,6,192,0,0,0,198,131,124,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,124,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,125,6,192,0,0,0,198,162,125,6,198,227,125,6,192,0,0,0,192,0,0,0,192,0,0,0,197,131,38,1,192,0,0,0,198,66,126,6,192,0,0,0,192,0,0,0,198,130,126,6,192,0,0,0,192,0,0,0,198,194,126,6,198,2,127,6,192,0,0,0,198,67,127,6,198,162,127,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,127,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,128,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,128,6,192,0,0,0,192,0,0,0,192,0,0,0,198,226,128,6,192,0,0,0,197,227,38,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,129,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,129,6,192,0,0,0,192,0,0,0,197,66,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,39,1,192,0,0,0,192,0,0,0,198,162,129,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,129,6,198,67,130,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,130,6,192,0,0,0,192,0,0,0,192,0,0,0,198,226,130,6,192,0,0,0,192,0,0,0,192,0,0,0,198,34,131,6,192,0,0,0,192,0,0,0,192,0,0,0,197,194,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,131,6,198,195,131,6,192,0,0,0,198,34,132,6,198,98,132,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,132,6,198,3,133,6,198,98,133,6,192,0,0,0,192,0,0,0,192,0,0,0,197,2,40,1,192,0,0,0,198,162,133,6,192,0,0,0,198,227,133,6,192,0,0,0,198,67,134,6,192,0,0,0,198,163,134,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,40,1,192,0,0,0,197,130,40,1,198,3,135,6,198,98,135,6,192,0,0,0,192,0,0,0,198,162,135,6,192,0,0,0,197,194,40,1,192,0,0,0,198,226,135,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,136,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,136,6,192,0,0,0,198,226,136,6,198,35,137,6,198,131,137,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,137,6,198,67,138,6,192,0,0,0,192,0,0,0,192,0,0,0,198,163,138,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,139,6,198,66,139,6,198,130,139,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,139,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,41,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,140,6,198,131,140,6,197,66,41,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,140,6,192,0,0,0,192,0,0,0,198,35,141,6,192,0,0,0,197,130,41,1,192,0,0,0,197,194,41,1,192,0,0,0,192,0,0,0,198,131,141,6,198,226,141,6,198,34,142,6,197,2,42,1,192,0,0,0,198,99,142,6,192,0,0,0,192,0,0,0,197,66,42,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,142,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,143,6,192,0,0,0,192,0,0,0,198,131,143,6,192,0,0,0,192,0,0,0,198,227,143,6,198,67,144,6,192,0,0,0,192,0,0,0,198,163,144,6,198,3,145,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,145,6,192,0,0,0,198,195,145,6,192,0,0,0,198,35,146,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,146,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,146,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,147,6,192,0,0,0,197,130,42,1,192,0,0,0,198,99,147,6,198,194,147,6,197,194,42,1,192,0,0,0,198,3,148,6,192,0,0,0,192,0,0,0,198,99,148,6,198,195,148,6,192,0,0,0,198,34,149,6,198,99,149,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,149,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,150,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,150,6,198,227,150,6,198,67,151,6,198,163,151,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,152,6,192,0,0,0,198,67,152,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,152,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,43,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,152,6,198,35,153,6,197,66,43,1,198,131,153,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,153,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,154,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,154,6,192,0,0,0,192,0,0,0,198,3,155,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,155,6,198,194,155,6,198,2,156,6,198,66,156,6,198,131,156,6,192,0,0,0,198,227,156,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,157,6,192,0,0,0,198,130,157,6,192,0,0,0,198,195,157,6,198,34,158,6,198,98,158,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,158,6,198,3,159,6,198,98,159,6,198,163,159,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,160,6,197,130,43,1,197,194,43,1,198,99,160,6,198,195,160,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,161,6,198,131,161,6,198,227,161,6,198,66,162,6,198,131,162,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,162,6,198,67,163,6,192,0,0,0,192,0,0,0,198,162,163,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,163,6,198,35,164,6,192,0,0,0,198,131,164,6,192,0,0,0,192,0,0,0,198,227,164,6,197,2,44,1,198,67,165,6,192,0,0,0,198,163,165,6,192,0,0,0,197,67,44,1,198,3,166,6,198,99,166,6,192,0,0,0,192,0,0,0,198,195,166,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,167,6,198,130,167,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,167,6,192,0,0,0,198,35,168,6,192,0,0,0,192,0,0,0,198,131,168,6,198,227,168,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,44,1,197,227,44,1,198,67,169,6,192,0,0,0,198,162,169,6,198,227,169,6,198,67,170,6,198,162,170,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,170,6,198,66,171,6,192,0,0,0,192,0,0,0,197,66,45,1,192,0,0,0,192,0,0,0,198,131,171,6,198,227,171,6,192,0,0,0,192,0,0,0,198,67,172,6,192,0,0,0,198,163,172,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,173,6,198,67,173,6,198,163,173,6,198,3,174,6,198,99,174,6,198,195,174,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,175,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,175,6,198,227,175,6,192,0,0,0,198,66,176,6,198,130,176,6,197,131,45,1,198,195,176,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,177,6,198,131,177,6,192,0,0,0,192,0,0,0,198,227,177,6,192,0,0,0,198,66,178,6,198,131,178,6,198,226,178,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,179,6,192,0,0,0,198,98,179,6,198,163,179,6,198,2,180,6,192,0,0,0,198,66,180,6,192,0,0,0,198,131,180,6,198,227,180,6,198,67,181,6,198,163,181,6,192,0,0,0,192,0,0,0,198,3,182,6,192,0,0,0,198,99,182,6,192,0,0,0,197,226,45,1,192,0,0,0,192,0,0,0,198,194,182,6,198,3,183,6,198,99,183,6,198,194,183,6,192,0,0,0,192,0,0,0,197,34,46,1,192,0,0,0,192,0,0,0,197,98,46,1,198,3,184,6,198,99,184,6,198,194,184,6,192,0,0,0,197,162,46,1,198,3,185,6,192,0,0,0,198,99,185,6,192,0,0,0,192,0,0,0,198,194,185,6,198,2,186,6,198,66,186,6,192,0,0,0,197,226,46,1,198,131,186,6,198,226,186,6,192,0,0,0,192,0,0,0,198,34,187,6,198,99,187,6,198,195,187,6,198,34,188,6,192,0,0,0,197,34,47,1,198,99,188,6,192,0,0,0,192,0,0,0,198,194,188,6,198,3,189,6,198,99,189,6,198,194,189,6,198,3,190,6,198,99,190,6,198,195,190,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,47,1,192,0,0,0,192,0,0,0,198,34,191,6,198,99,191,6,192,0,0,0,198,195,191,6,198,34,192,6,198,98,192,6,192,0,0,0,198,163,192,6,192,0,0,0,192,0,0,0,192,0,0,0,197,163,47,1,192,0,0,0,197,2,48,1,192,0,0,0,192,0,0,0,198,3,193,6,198,98,193,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,193,6,192,0,0,0,198,227,193,6,197,66,48,1,198,67,194,6,192,0,0,0,198,163,194,6,197,130,48,1,198,3,195,6,197,194,48,1,197,3,49,1,198,98,195,6,198,162,195,6,198,227,195,6,197,98,49,1,192,0,0,0,192,0,0,0,198,66,196,6,198,130,196,6,192,0,0,0,198,194,196,6,198,3,197,6,198,99,197,6,197,162,49,1,192,0,0,0,198,195,197,6,198,34,198,6,192,0,0,0,198,99,198,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,198,6,198,3,199,6,192,0,0,0,192,0,0,0,198,99,199,6,198,194,199,6,198,2,200,6,198,67,200,6,192,0,0,0,192,0,0,0,198,162,200,6,192,0,0,0,192,0,0,0,198,227,200,6,198,66,201,6,198,131,201,6,198,227,201,6,192,0,0,0,197,226,49,1,192,0,0,0,198,66,202,6,198,130,202,6,192,0,0,0,197,34,50,1,198,194,202,6,198,2,203,6,197,98,50,1,198,66,203,6,197,163,50,1,198,131,203,6,192,0,0,0,198,226,203,6,198,35,204,6,192,0,0,0,198,131,204,6,192,0,0,0,197,2,51,1,192,0,0,0,192,0,0,0,198,226,204,6,198,34,205,6,198,99,205,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,205,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,206,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,206,6,192,0,0,0,198,227,206,6,198,66,207,6,192,0,0,0,192,0,0,0,198,131,207,6,192,0,0,0,198,227,207,6,192,0,0,0,198,66,208,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,208,6,198,226,208,6,198,34,209,6,192,0,0,0,198,98,209,6,192,0,0,0,198,162,209,6,192,0,0,0,192,0,0,0,197,66,51,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,209,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,210,6,192,0,0,0,197,131,51,1,198,131,210,6,198,227,210,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,211,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,211,6,197,227,51,1,198,195,211,6,192,0,0,0,192,0,0,0,198,35,212,6,198,131,212,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,212,6,192,0,0,0,197,66,52,1,198,34,213,6,192,0,0,0,198,99,213,6,192,0,0,0,198,195,213,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,52,1,198,34,214,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,214,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,214,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,52,1,192,0,0,0,192,0,0,0,198,3,215,6,192,0,0,0,192,0,0,0,192,0,0,0,198,98,215,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,215,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,216,6,198,99,216,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,216,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,217,6,192,0,0,0,192,0,0,0,198,131,217,6,197,34,53,1,198,227,217,6,192,0,0,0,198,67,218,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,218,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,219,6,197,98,53,1,198,99,219,6,197,162,53,1,198,195,219,6,198,34,220,6,198,98,220,6,192,0,0,0,192,0,0,0,192,0,0,0,198,162,220,6,192,0,0,0,192,0,0,0,192,0,0,0,197,227,53,1,197,66,54,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,220,6,198,35,221,6,198,130,221,6,198,194,221,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,222,6,198,99,222,6,192,0,0,0,198,194,222,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,223,6,192,0,0,0,198,98,223,6,197,130,54,1,198,162,223,6,197,195,54,1,198,227,223,6,198,66,224,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,224,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,224,6,192,0,0,0,197,34,55,1,192,0,0,0,198,66,225,6,192,0,0,0,197,98,55,1,192,0,0,0,192,0,0,0,198,130,225,6,192,0,0,0,198,195,225,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,55,1,192,0,0,0,198,35,226,6,192,0,0,0,192,0,0,0,192,0,0,0,197,226,55,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,226,6,197,34,56,1,198,195,226,6,192,0,0,0,198,34,227,6,197,98,56,1,192,0,0,0,198,99,227,6,198,195,227,6,192,0,0,0,198,34,228,6,198,99,228,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,228,6,197,163,56,1,192,0,0,0,198,34,229,6,192,0,0,0,198,99,229,6,192,0,0,0,198,194,229,6,192,0,0,0,197,2,57,1,192,0,0,0,198,3,230,6,198,98,230,6,198,163,230,6,197,66,57,1,198,3,231,6,198,98,231,6,198,163,231,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,232,6,198,67,232,6,192,0,0,0,192,0,0,0,192,0,0,0,198,162,232,6,197,131,57,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,232,6,198,35,233,6,192,0,0,0,198,130,233,6,198,195,233,6,192,0,0,0,192,0,0,0,198,34,234,6,192,0,0,0,192,0,0,0,198,99,234,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,234,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,235,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,235,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,235,6,192,0,0,0,192,0,0,0,198,3,236,6,198,99,236,6,198,195,236,6,192,0,0,0,198,34,237,6,192,0,0,0,192,0,0,0,198,99,237,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,57,1,192,0,0,0,198,195,237,6,198,34,238,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,238,6,198,195,238,6,192,0,0,0,198,34,239,6,198,99,239,6,192,0,0,0,198,195,239,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,240,6,198,131,240,6,198,227,240,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,241,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,241,6,192,0,0,0,198,226,241,6,192,0,0,0,192,0,0,0,198,35,242,6,198,130,242,6,198,195,242,6,192,0,0,0,198,34,243,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,243,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,243,6,192,0,0,0,192,0,0,0,198,35,244,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,244,6,192,0,0,0,198,226,244,6,198,35,245,6,198,131,245,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,245,6,198,66,246,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,246,6,192,0,0,0,198,226,246,6,192,0,0,0,198,35,247,6,192,0,0,0,192,0,0,0,198,131,247,6,192,0,0,0,198,227,247,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,248,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,248,6,192,0,0,0,198,3,249,6,192,0,0,0,198,99,249,6,198,194,249,6,192,0,0,0,198,3,250,6,198,98,250,6,198,162,250,6,198,227,250,6,197,67,58,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,58,1,192,0,0,0,192,0,0,0,198,66,251,6,198,130,251,6,192,0,0,0,198,194,251,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,252,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,252,6,192,0,0,0,192,0,0,0,197,227,58,1,192,0,0,0,198,195,252,6,198,35,253,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,253,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,59,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,253,6,198,35,254,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,254,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,254,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,255,6,198,99,255,6,198,195,255,6,192,0,0,0,198,35,0,7,198,130,0,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,0,7,192,0,0,0,198,35,1,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,1,7,197,162,59,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,1,7,192,0,0,0,192,0,0,0,197,226,59,1,197,34,60,1,198,35,2,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,2,7,198,227,2,7,198,67,3,7,198,162,3,7,198,227,3,7,198,67,4,7,198,162,4,7,192,0,0,0,198,227,4,7,198,67,5,7,198,162,5,7,192,0,0,0,198,227,5,7,198,67,6,7,198,163,6,7,192,0,0,0,198,2,7,7,198,67,7,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,7,7,198,2,8,7,198,67,8,7,198,162,8,7,192,0,0,0,198,226,8,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,9,7,192,0,0,0,192,0,0,0,197,98,60,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,9,7,197,162,60,1,198,226,9,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,10,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,10,7,198,194,10,7,192,0,0,0,197,226,60,1,192,0,0,0,198,3,11,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,11,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,61,1,192,0,0,0,198,195,11,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,12,7,192,0,0,0,198,131,12,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,12,7,192,0,0,0,197,130,61,1,198,67,13,7,192,0,0,0,192,0,0,0,197,194,61,1,198,163,13,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,14,7,192,0,0,0,198,98,14,7,192,0,0,0,198,163,14,7,197,3,62,1,192,0,0,0,192,0,0,0,198,2,15,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,62,1,198,67,15,7,192,0,0,0,192,0,0,0,198,163,15,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,16,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,16,7,198,195,16,7,192,0,0,0,198,34,17,7,198,99,17,7,198,195,17,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,18,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,18,7,198,195,18,7,198,35,19,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,19,7,198,227,19,7,198,67,20,7,198,163,20,7,192,0,0,0,198,3,21,7,197,162,62,1,192,0,0,0,198,98,21,7,192,0,0,0,198,163,21,7,192,0,0,0,198,3,22,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,22,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,22,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,23,7,197,227,62,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,23,7,198,194,23,7,192,0,0,0,192,0,0,0,198,2,24,7,198,67,24,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,24,7,198,3,25,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,25,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,25,7,198,3,26,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,26,7,198,195,26,7,192,0,0,0,198,35,27,7,192,0,0,0,198,131,27,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,63,1,192,0,0,0,198,226,27,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,63,1,192,0,0,0,198,35,28,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,28,7,198,227,28,7,192,0,0,0,192,0,0,0,198,67,29,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,29,7,192,0,0,0,192,0,0,0,198,3,30,7,192,0,0,0,198,99,30,7,192,0,0,0,197,2,64,1,197,66,64,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,30,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,31,7,198,99,31,7,198,195,31,7,192,0,0,0,192,0,0,0,198,35,32,7,192,0,0,0,198,131,32,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,32,7,198,35,33,7,198,131,33,7,198,227,33,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,34,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,7,192,0,0,0,192,0,0,0,198,3,35,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,35,7,197,130,64,1,198,195,35,7,198,34,36,7,192,0,0,0,192,0,0,0,198,99,36,7,198,195,36,7,192,0,0,0,198,35,37,7,198,131,37,7,198,227,37,7,198,67,38,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,38,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,39,7,192,0,0,0,192,0,0,0,192,0,0,0,198,67,39,7,197,195,64,1,198,163,39,7,192,0,0,0,192,0,0,0,198,2,40,7,198,67,40,7,192,0,0,0,198,163,40,7,198,3,41,7,197,34,65,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,41,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,41,7,192,0,0,0,192,0,0,0,198,35,42,7,192,0,0,0,198,131,42,7,198,227,42,7,198,67,43,7,198,163,43,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,44,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,44,7,198,194,44,7,192,0,0,0,197,99,65,1,198,3,45,7,198,99,45,7,198,194,45,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,46,7,197,195,65,1,198,67,46,7,197,35,66,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,46,7,192,0,0,0,198,227,46,7,192,0,0,0,197,131,66,1,192,0,0,0,197,226,66,1,198,67,47,7,198,163,47,7,192,0,0,0,192,0,0,0,198,3,48,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,48,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,48,7,192,0,0,0,192,0,0,0,197,34,67,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,49,7,192,0,0,0,198,99,49,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,49,7,198,34,50,7,192,0,0,0,192,0,0,0,198,99,50,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,50,7,192,0,0,0,192,0,0,0,192,0,0,0,198,2,51,7,198,66,51,7,192,0,0,0,197,98,67,1,192,0,0,0,198,130,51,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,51,7,198,3,52,7,198,99,52,7,192,0,0,0,192,0,0,0,198,195,52,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,53,7,192,0,0,0,192,0,0,0,197,162,67,1,197,227,67,1,198,131,53,7,198,227,53,7,198,67,54,7,192,0,0,0,198,162,54,7,198,227,54,7,198,67,55,7,197,66,68,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,55,7,192,0,0,0,198,226,55,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,56,7,192,0,0,0,198,130,56,7,198,195,56,7,198,34,57,7,198,99,57,7,198,194,57,7,197,131,68,1,198,3,58,7,192,0,0,0,192,0,0,0,192,0,0,0,198,98,58,7,198,163,58,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,68,1,198,2,59,7,198,67,59,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,59,7,198,226,59,7,192,0,0,0,197,35,69,1,198,34,60,7,192,0,0,0,192,0,0,0,198,98,60,7,192,0,0,0,192,0,0,0,198,163,60,7,198,3,61,7,192,0,0,0,198,98,61,7,198,162,61,7,198,227,61,7,192,0,0,0,197,130,69,1,198,67,62,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,62,7,197,194,69,1,192,0,0,0,192,0,0,0,198,2,63,7,198,66,63,7,198,130,63,7,197,3,70,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,63,7,198,35,64,7,192,0,0,0,197,98,70,1,198,131,64,7,192,0,0,0,198,226,64,7,198,34,65,7,198,98,65,7,198,162,65,7,192,0,0,0,198,227,65,7,198,67,66,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,66,7,198,3,67,7,192,0,0,0,192,0,0,0,198,99,67,7,198,194,67,7,198,3,68,7,198,98,68,7,192,0,0,0,197,162,70,1,192,0,0,0,198,163,68,7,198,2,69,7,198,67,69,7,197,226,70,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,69,7,198,226,69,7,192,0,0,0,192,0,0,0,198,35,70,7,198,131,70,7,197,34,71,1,198,227,70,7,198,67,71,7,198,162,71,7,192,0,0,0,192,0,0,0,192,0,0,0,198,226,71,7,198,35,72,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,72,7,198,194,72,7,198,3,73,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,73,7,198,195,73,7,192,0,0,0,198,35,74,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,74,7,198,226,74,7,192,0,0,0,198,35,75,7,198,131,75,7,198,227,75,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,76,7,192,0,0,0,192,0,0,0,192,0,0,0,198,130,76,7,198,195,76,7,198,35,77,7,198,131,77,7,197,98,71,1,198,226,77,7,192,0,0,0,192,0,0,0,198,34,78,7,198,99,78,7,198,195,78,7,198,34,79,7,192,0,0,0,198,99,79,7,192,0,0,0,197,162,71,1,198,194,79,7,192,0,0,0,198,3,80,7,192,0,0,0,192,0,0,0,198,99,80,7,192,0,0,0,192,0,0,0,198,195,80,7,192,0,0,0,197,226,71,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,81,7,192,0,0,0,192,0,0,0,198,131,81,7,198,226,81,7,192,0,0,0,192,0,0,0,198,35,82,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,82,7,192,0,0,0,198,226,82,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,72,1,198,35,83,7,192,0,0,0,192,0,0,0,192,0,0,0,197,98,72,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,83,7,192,0,0,0,198,226,83,7,192,0,0,0,197,162,72,1,192,0,0,0,198,35,84,7,198,130,84,7,192,0,0,0,192,0,0,0,198,194,84,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,85,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,85,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,85,7,198,35,86,7,198,131,86,7,198,227,86,7,198,66,87,7,192,0,0,0,198,130,87,7,198,194,87,7,198,3,88,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,88,7,192,0,0,0,198,195,88,7,197,227,72,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,89,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,89,7,197,66,73,1,198,226,89,7,192,0,0,0,198,35,90,7,192,0,0,0,192,0,0,0,198,131,90,7,192,0,0,0,198,227,90,7,192,0,0,0,192,0,0,0,192,0,0,0,198,66,91,7,197,130,73,1,192,0,0,0,192,0,0,0,198,130,91,7,198,195,91,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,73,1,192,0,0,0,198,35,92,7,192,0,0,0,198,131,92,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,92,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,93,7,192,0,0,0,192,0,0,0,198,130,93,7,192,0,0,0,192,0,0,0,198,194,93,7,192,0,0,0,198,3,94,7,192,0,0,0,192,0,0,0,198,99,94,7,198,195,94,7,198,35,95,7,192,0,0,0,192,0,0,0,192,0,0,0,198,130,95,7,192,0,0,0,192,0,0,0,198,194,95,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,96,7,198,99,96,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,96,7,192,0,0,0,198,35,97,7,192,0,0,0,192,0,0,0,198,131,97,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,74,1,192,0,0,0,198,227,97,7,192,0,0,0,192,0,0,0,198,67,98,7,192,0,0,0,192,0,0,0,198,163,98,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,99,7,192,0,0,0,192,0,0,0,198,66,99,7,198,130,99,7,198,195,99,7,192,0,0,0,198,35,100,7,198,130,100,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,100,7,198,2,101,7,192,0,0,0,192,0,0,0,198,67,101,7,198,162,101,7,198,227,101,7,192,0,0,0,198,67,102,7,198,162,102,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,102,7,198,67,103,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,103,7,197,66,74,1,197,131,74,1,198,3,104,7,198,99,104,7,192,0,0,0,198,195,104,7,198,35,105,7,192,0,0,0,198,130,105,7,192,0,0,0,198,195,105,7,192,0,0,0,198,35,106,7,198,130,106,7,198,194,106,7,198,3,107,7,197,226,74,1,198,99,107,7,198,195,107,7,198,35,108,7,192,0,0,0,192,0,0,0,198,131,108,7,197,34,75,1,198,227,108,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,109,7,192,0,0,0,192,0,0,0,197,99,75,1,192,0,0,0,198,163,109,7,192,0,0,0,192,0,0,0,197,194,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,110,7,192,0,0,0,198,66,110,7,197,2,76,1,192,0,0,0,197,67,76,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,110,7,198,227,110,7,197,162,76,1,192,0,0,0,198,67,111,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,111,7,192,0,0,0,192,0,0,0,198,226,111,7,192,0,0,0,192,0,0,0,192,0,0,0,198,34,112,7,197,226,76,1,198,99,112,7,192,0,0,0,192,0,0,0,198,194,112,7,197,34,77,1,198,3,113,7,198,99,113,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,113,7,198,35,114,7,198,131,114,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,114,7,198,67,115,7,198,163,115,7,192,0,0,0,192,0,0,0,192,0,0,0,198,2,116,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,77,1,198,66,116,7,198,130,116,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,116,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,117,7,198,131,117,7,198,226,117,7,192,0,0,0,198,35,118,7,198,131,118,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,118,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,119,7,192,0,0,0,198,163,119,7,192,0,0,0,198,2,120,7,198,67,120,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,120,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,120,7,192,0,0,0,198,66,121,7,192,0,0,0,192,0,0,0,198,131,121,7,192,0,0,0,192,0,0,0,198,226,121,7,192,0,0,0,197,162,77,1,192,0,0,0,192,0,0,0,197,226,77,1,192,0,0,0,198,34,122,7,192,0,0,0,198,99,122,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,122,7,198,3,123,7,192,0,0,0,192,0,0,0,198,99,123,7,192,0,0,0,198,195,123,7,198,34,124,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,124,7,198,195,124,7,192,0,0,0,192,0,0,0,198,35,125,7,198,130,125,7,192,0,0,0,198,195,125,7,198,35,126,7,198,131,126,7,192,0,0,0,198,227,126,7,192,0,0,0,192,0,0,0,198,66,127,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,127,7,198,226,127,7,198,34,128,7,198,99,128,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,128,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,129,7,198,99,129,7,192,0,0,0,198,194,129,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,130,7,192,0,0,0,198,98,130,7,198,162,130,7,198,226,130,7,198,35,131,7,192,0,0,0,192,0,0,0,197,34,78,1,192,0,0,0,197,98,78,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,131,7,192,0,0,0,198,227,131,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,132,7,198,162,132,7,198,227,132,7,192,0,0,0,198,67,133,7,192,0,0,0,198,162,133,7,192,0,0,0,198,227,133,7,192,0,0,0,198,67,134,7,197,162,78,1,192,0,0,0,198,163,134,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,135,7,192,0,0,0,192,0,0,0,197,226,78,1,197,34,79,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,135,7,192,0,0,0,192,0,0,0,198,195,135,7,192,0,0,0,192,0,0,0,198,34,136,7,198,99,136,7,192,0,0,0,197,98,79,1,198,195,136,7,198,35,137,7,192,0,0,0,192,0,0,0,198,130,137,7,198,194,137,7,198,2,138,7,192,0,0,0,198,67,138,7,198,162,138,7,192,0,0,0,198,227,138,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,139,7,192,0,0,0,198,163,139,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,140,7,198,66,140,7,198,131,140,7,198,227,140,7,192,0,0,0,192,0,0,0,192,0,0,0,197,163,79,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,141,7,192,0,0,0,198,163,141,7,192,0,0,0,192,0,0,0,198,3,142,7,192,0,0,0,192,0,0,0,192,0,0,0,198,98,142,7,198,162,142,7,198,227,142,7,192,0,0,0,198,67,143,7,198,162,143,7,192,0,0,0,197,2,80,1,198,227,143,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,144,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,144,7,192,0,0,0,192,0,0,0,198,2,145,7,192,0,0,0,192,0,0,0,192,0,0,0,198,66,145,7,198,131,145,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,145,7,198,34,146,7,198,98,146,7,198,162,146,7,192,0,0,0,192,0,0,0,198,226,146,7,192,0,0,0,192,0,0,0,198,34,147,7,198,98,147,7,192,0,0,0,198,162,147,7,198,227,147,7,198,66,148,7,198,130,148,7,198,194,148,7,192,0,0,0,192,0,0,0,198,3,149,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,149,7,192,0,0,0,198,195,149,7,192,0,0,0,192,0,0,0,197,66,80,1,198,35,150,7,192,0,0,0,192,0,0,0,198,131,150,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,150,7,192,0,0,0,192,0,0,0,198,67,151,7,192,0,0,0,198,163,151,7,192,0,0,0,198,3,152,7,192,0,0,0,198,99,152,7,198,195,152,7,198,34,153,7,198,99,153,7,198,194,153,7,192,0,0,0,192,0,0,0,198,3,154,7,192,0,0,0,192,0,0,0,198,98,154,7,192,0,0,0,198,162,154,7,198,226,154,7,198,34,155,7,192,0,0,0,198,98,155,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,155,7,192,0,0,0,198,227,155,7,198,67,156,7,192,0,0,0,198,162,156,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,156,7,192,0,0,0,198,67,157,7,192,0,0,0,192,0,0,0,198,163,157,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,158,7,197,130,80,1,198,98,158,7,198,163,158,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,159,7,192,0,0,0,198,67,159,7,198,162,159,7,198,227,159,7,197,194,80,1,198,67,160,7,198,162,160,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,81,1,192,0,0,0,198,227,160,7,197,66,81,1,198,67,161,7,198,163,161,7,192,0,0,0,192,0,0,0,198,3,162,7,192,0,0,0,192,0,0,0,198,98,162,7,192,0,0,0,197,131,81,1,198,162,162,7,192,0,0,0,198,227,162,7,198,67,163,7,192,0,0,0,192,0,0,0,192,0,0,0,197,226,81,1,192,0,0,0,192,0,0,0,197,34,82,1,192,0,0,0,198,163,163,7,198,2,164,7,192,0,0,0,192,0,0,0,192,0,0,0,197,99,82,1,197,194,82,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,164,7,192,0,0,0,198,162,164,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,83,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,83,1,198,226,164,7,192,0,0,0,192,0,0,0,198,35,165,7,192,0,0,0,192,0,0,0,198,131,165,7,198,226,165,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,166,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,166,7,192,0,0,0,198,195,166,7,192,0,0,0,198,34,167,7,197,130,83,1,192,0,0,0,198,99,167,7,198,194,167,7,198,2,168,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,83,1,192,0,0,0,198,67,168,7,192,0,0,0,198,163,168,7,192,0,0,0,198,3,169,7,198,98,169,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,169,7,192,0,0,0,198,226,169,7,198,35,170,7,192,0,0,0,197,2,84,1,192,0,0,0,197,66,84,1,192,0,0,0,198,131,170,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,84,1,198,227,170,7,198,66,171,7,192,0,0,0,197,194,84,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,171,7,192,0,0,0,192,0,0,0,198,227,171,7,198,67,172,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,172,7,198,3,173,7,192,0,0,0,198,98,173,7,192,0,0,0,192,0,0,0,198,162,173,7,192,0,0,0,198,227,173,7,192,0,0,0,192,0,0,0,192,0,0,0,198,67,174,7,192,0,0,0,198,163,174,7,198,3,175,7,198,98,175,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,175,7,192,0,0,0,192,0,0,0,198,3,176,7,198,99,176,7,192,0,0,0,192,0,0,0,192,0,0,0,198,194,176,7,198,3,177,7,197,3,85,1,197,98,85,1,192,0,0,0,192,0,0,0,192,0,0,0,198,98,177,7,198,163,177,7,192,0,0,0,198,3,178,7,198,99,178,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,178,7,192,0,0,0,198,34,179,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,179,7,198,163,179,7,198,3,180,7,198,99,180,7,198,194,180,7,192,0,0,0,192,0,0,0,198,2,181,7,192,0,0,0,192,0,0,0,198,66,181,7,192,0,0,0,198,131,181,7,198,227,181,7,197,162,85,1,192,0,0,0,198,66,182,7,192,0,0,0,192,0,0,0,198,130,182,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,182,7,192,0,0,0,198,34,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,184,7,192,0,0,0,192,0,0,0,198,131,184,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,184,7,192,0,0,0,192,0,0,0,198,66,185,7,198,130,185,7,198,194,185,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,186,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,186,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,186,7,198,2,187,7,192,0,0,0,198,66,187,7,198,130,187,7,192,0,0,0,197,226,85,1,198,195,187,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,188,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,188,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,188,7,192,0,0,0,192,0,0,0,198,2,189,7,198,66,189,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,86,1,192,0,0,0,198,131,189,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,189,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,190,7,192,0,0,0,198,99,190,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,190,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,191,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,191,7,192,0,0,0,198,195,191,7,192,0,0,0,198,34,192,7,197,98,86,1,192,0,0,0,192,0,0,0,198,99,192,7,192,0,0,0,198,195,192,7,198,34,193,7,192,0,0,0,197,162,86,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,193,7,197,227,86,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,193,7,198,227,193,7,198,67,194,7,192,0,0,0,198,163,194,7,198,2,195,7,192,0,0,0,192,0,0,0,198,67,195,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,195,7,198,2,196,7,198,67,196,7,192,0,0,0,192,0,0,0,197,66,87,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,196,7,192,0,0,0,198,3,197,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,197,7,192,0,0,0,192,0,0,0,198,195,197,7,198,35,198,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,198,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,87,1,192,0,0,0,192,0,0,0,198,227,198,7,192,0,0,0,192,0,0,0,192,0,0,0,198,66,199,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,199,7,192,0,0,0,192,0,0,0,198,195,199,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,200,7,198,99,200,7,198,194,200,7,192,0,0,0,198,2,201,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,201,7,198,163,201,7,192,0,0,0,198,3,202,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,202,7,192,0,0,0,192,0,0,0,198,195,202,7,198,34,203,7,198,99,203,7,198,194,203,7,192,0,0,0,192,0,0,0,198,3,204,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,204,7,192,0,0,0,192,0,0,0,198,194,204,7,192,0,0,0,192,0,0,0,198,3,205,7,197,194,87,1,192,0,0,0,198,99,205,7,192,0,0,0,192,0,0,0,192,0,0,0,197,2,88,1,192,0,0,0,192,0,0,0,192,0,0,0,198,194,205,7,192,0,0,0,192,0,0,0,198,3,206,7,192,0,0,0,198,99,206,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,206,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,207,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,207,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,207,7,197,66,88,1,192,0,0,0,197,130,88,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,208,7,192,0,0,0,198,131,208,7,198,227,208,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,209,7,198,130,209,7,192,0,0,0,198,195,209,7,198,34,210,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,210,7,192,0,0,0,192,0,0,0,198,195,210,7,192,0,0,0,192,0,0,0,198,35,211,7,198,130,211,7,192,0,0,0,198,195,211,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,212,7,192,0,0,0,192,0,0,0,192,0,0,0,198,130,212,7,192,0,0,0,192,0,0,0,198,195,212,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,213,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,213,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,213,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,214,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,214,7,192,0,0,0,192,0,0,0,198,227,214,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,215,7,192,0,0,0,192,0,0,0,198,163,215,7,192,0,0,0,192,0,0,0,198,3,216,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,88,1,198,98,216,7,192,0,0,0,192,0,0,0,198,163,216,7,198,2,217,7,192,0,0,0,198,67,217,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,217,7,192,0,0,0,198,227,217,7,198,66,218,7,192,0,0,0,198,130,218,7,192,0,0,0,192,0,0,0,198,194,218,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,219,7,192,0,0,0,192,0,0,0,198,66,219,7,198,130,219,7,192,0,0,0,198,194,219,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,220,7,192,0,0,0,192,0,0,0,198,67,220,7,198,163,220,7,198,3,221,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,221,7,198,194,221,7,197,34,89,1,198,3,222,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,89,1,198,99,222,7,198,194,222,7,192,0,0,0,192,0,0,0,197,195,89,1,192,0,0,0,198,3,223,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,223,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,223,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,224,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,224,7,198,195,224,7,198,34,225,7,192,0,0,0,198,99,225,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,225,7,192,0,0,0,198,3,226,7,192,0,0,0,197,35,90,1,192,0,0,0,198,99,226,7,192,0,0,0,198,195,226,7,192,0,0,0,198,35,227,7,198,130,227,7,192,0,0,0,197,130,90,1,192,0,0,0,198,194,227,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,228,7,198,66,228,7,192,0,0,0,192,0,0,0,198,131,228,7,192,0,0,0,198,226,228,7,198,34,229,7,198,99,229,7,192,0,0,0,192,0,0,0,192,0,0,0,197,194,90,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,229,7,198,3,230,7,198,99,230,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,230,7,198,3,231,7,192,0,0,0,192,0,0,0,192,0,0,0,198,98,231,7,198,163,231,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,232,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,232,7,198,195,232,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,233,7,192,0,0,0,198,98,233,7,197,2,91,1,198,162,233,7,192,0,0,0,192,0,0,0,192,0,0,0,197,67,91,1,192,0,0,0,198,227,233,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,91,1,198,66,234,7,197,2,92,1,198,131,234,7,198,226,234,7,197,67,92,1,192,0,0,0,192,0,0,0,198,35,235,7,192,0,0,0,198,130,235,7,192,0,0,0,198,195,235,7,192,0,0,0,198,35,236,7,198,130,236,7,198,195,236,7,198,34,237,7,198,99,237,7,192,0,0,0,197,163,92,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,237,7,192,0,0,0,192,0,0,0,198,35,238,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,238,7,198,227,238,7,192,0,0,0,192,0,0,0,198,67,239,7,192,0,0,0,198,162,239,7,198,227,239,7,198,67,240,7,198,163,240,7,192,0,0,0,192,0,0,0,198,3,241,7,198,99,241,7,198,194,241,7,198,3,242,7,192,0,0,0,198,99,242,7,198,195,242,7,192,0,0,0,198,34,243,7,192,0,0,0,198,98,243,7,192,0,0,0,192,0,0,0,198,162,243,7,198,227,243,7,198,66,244,7,198,131,244,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,244,7,192,0,0,0,198,66,245,7,192,0,0,0,192,0,0,0,198,130,245,7,192,0,0,0,192,0,0,0,192,0,0,0,198,194,245,7,192,0,0,0,198,2,246,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,246,7,192,0,0,0,198,131,246,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,246,7,198,66,247,7,192,0,0,0,192,0,0,0,198,130,247,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,247,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,248,7,198,131,248,7,192,0,0,0,198,226,248,7,192,0,0,0,192,0,0,0,198,35,249,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,93,1,198,130,249,7,192,0,0,0,192,0,0,0,198,194,249,7,192,0,0,0,192,0,0,0,192,0,0,0,197,66,93,1,192,0,0,0,198,3,250,7,197,131,93,1,192,0,0,0,198,99,250,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,93,1,198,194,250,7,198,3,251,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,251,7,198,195,251,7,192,0,0,0,198,34,252,7,198,99,252,7,198,195,252,7,198,34,253,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,253,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,253,7,198,3,254,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,254,7,198,195,254,7,192,0,0,0,198,35,255,7,192,0,0,0,198,131,255,7,192,0,0,0,198,227,255,7,198,67,0,8,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,0,8,198,226,0,8,192,0,0,0,192,0,0,0,198,35,1,8,192,0,0,0,197,34,94,1,192,0,0,0,192,0,0,0,198,130,1,8,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,101,6,198,131,181,2,198,226,152,6,198,162,114,6,197,195,168,0,197,99,0,0,198,226,180,0,198,162,0,8,198,162,0,8,198,130,49,1,198,163,231,6,198,98,216,0,198,98,48,1,198,226,31,2,198,194,79,4,198,66,61,5,198,98,233,5,198,2,5,6,198,162,31,6,198,226,204,6,198,3,9,3,198,99,87,3,198,35,192,3,198,99,4,4,198,227,186,5,198,99,222,6,198,131,150,7,198,3,13,0,198,131,169,0,198,195,31,3,198,67,219,3,198,99,232,5,198,99,225,7,198,227,153,1,198,227,167,3,198,99,223,5,198,131,40,6,198,35,58,2,198,3,125,5,198,35,12,6,198,163,190,1,198,99,186,2,198,3,95,3,198,67,239,3,192,0,0,0,198,2,47,0,198,99,116,0,198,66,151,0,198,226,107,2,198,34,27,3,198,66,218,3,198,66,94,4,198,130,75,5,198,162,228,5,198,66,234,5,198,162,135,6,198,226,82,7,198,162,183,7,198,194,222,7,198,227,131,4,198,131,155,4,198,227,15,5,198,131,178,5,198,195,0,7,198,35,227,7,198,227,77,6,198,99,39,1,198,227,198,1,198,227,232,4,198,227,87,5,198,162,228,3,198,194,137,4,198,98,113,6,198,226,74,7,198,162,37,1,198,2,132,1,198,66,11,3,198,34,106,3,198,162,140,3,198,2,2,5,198,34,37,5,198,194,51,7,198,35,149,0,198,35,90,5,198,67,120,0,198,195,118,0,198,227,171,4,198,35,22,5,198,35,182,5,198,99,57,7,198,195,95,6,198,130,59,2,198,3,9,3,198,163,82,6,198,3,7,0,198,131,115,1,198,34,230,1,198,99,249,3,198,2,55,4,198,195,157,0,198,131,143,4,198,227,51,0,198,3,219,1,198,162,2,0,197,3,157,0,198,2,129,2,198,195,0,5,198,131,176,0,198,226,24,1,198,3,98,4,198,131,187,5,198,227,73,6,198,195,48,3,198,3,174,6,197,99,154,0,198,67,66,2,198,35,157,5,198,227,82,2,198,131,53,4,198,131,20,0,198,3,107,0,198,195,117,0,198,3,226,2,198,3,248,4,198,67,141,5,198,131,77,6,198,3,231,6,197,194,25,0,197,194,35,0,197,34,63,0,197,226,87,0,197,130,124,0,197,2,175,0,197,162,220,0,197,34,65,1,197,194,82,1,197,194,90,1,197,2,92,1,198,99,143,0,198,35,176,2,198,227,40,3,198,227,169,6,198,67,181,1,198,131,20,2,198,131,33,2,198,195,102,2,198,99,143,3,198,195,198,3,198,131,28,4,198,227,163,4,198,195,28,5,198,195,84,5,198,35,161,6,198,3,203,5,198,195,190,6,198,67,8,7,198,99,127,0,198,99,144,0,198,163,201,0,198,227,190,3,198,163,26,6,198,227,73,6,198,67,190,1,198,195,227,1,198,67,78,2,198,163,46,3,198,99,229,4,198,195,246,3,198,3,28,0,198,195,243,0,198,131,115,1,198,163,160,1,198,195,231,1,198,67,255,3,198,3,24,4,198,131,64,5,198,99,82,5,198,99,238,6,198,131,74,7,198,35,84,7,198,227,108,7,198,226,47,0,198,130,159,4,198,34,228,6,198,98,65,7,198,195,255,1,198,98,13,0,198,66,86,0,198,34,117,1,198,66,127,1,198,226,131,2,198,3,9,3,198,130,211,3,198,194,74,4,198,130,204,5,198,66,202,6,198,99,254,7,197,35,128,0,198,195,49,7,198,194,141,0,198,194,198,2,198,66,211,2,198,130,91,3,198,162,128,3,198,162,11,4,198,130,51,4,198,226,129,4,198,2,253,4,198,2,116,7,198,35,108,0,198,35,40,2,198,3,58,7,198,195,69,0,198,99,149,1,198,99,109,3,198,131,162,6,198,3,215,1,198,67,9,2,198,67,214,2,198,99,249,3,198,67,59,7,198,130,129,0,198,98,187,0,198,162,132,1,198,131,150,2,198,98,193,2,198,34,230,2,198,130,82,3,198,34,11,4,198,98,66,4,198,2,60,5,198,2,28,6,198,2,30,6,198,98,230,6,198,226,71,7,198,195,160,0,198,35,133,3,198,163,188,0,198,195,211,3,198,163,29,4,198,163,226,5,198,163,62,7,198,131,198,7,198,99,230,7,198,35,202,2,198,131,104,3,198,131,127,5,198,3,192,4,198,67,201,4,198,3,237,4,198,99,234,3,198,98,186,3,198,35,92,6,198,131,22,0,198,2,167,5,198,98,132,0,198,35,125,0,198,194,186,1,198,163,60,2,198,163,244,4,198,195,100,1,198,195,87,3,197,67,129,0,198,131,164,6,198,163,15,6,198,99,52,7,198,227,43,6,198,227,191,1,198,67,100,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,24,1,192,0,0,0,198,67,165,2,192,0,0,0,192,0,0,0,197,130,19,0,197,66,193,0,198,195,89,4,192,0,0,0,198,35,153,4,198,67,154,4,198,67,157,4,198,99,85,7,198,99,243,4,198,162,67,5,192,0,0,0,192,0,0,0,192,0,0,0,197,162,30,1,192,0,0,0,192,0,0,0,198,163,192,6,198,98,214,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,126,7,198,226,127,7,198,227,132,7,197,195,88,1,198,195,211,6,198,34,65,7,198,226,50,0,198,99,87,0,198,131,103,0,198,3,148,0,198,195,152,0,198,66,164,0,198,99,218,0,198,99,225,0,198,130,232,0,198,227,20,1,198,67,32,1,198,67,132,1,192,0,0,0,197,226,99,0,198,194,14,2,198,35,20,2,198,131,31,2,198,3,124,2,192,0,0,0,198,130,168,2,198,194,226,2,197,98,161,0,197,98,165,0,198,3,143,3,198,162,203,3,192,0,0,0,198,3,13,4,198,226,132,4,198,34,148,4,198,2,150,4,198,194,149,4,198,162,150,4,198,194,151,4,198,195,152,4,197,98,222,0,198,227,156,4,198,3,176,4,198,99,182,4,198,227,218,4,198,195,28,5,198,227,29,5,198,99,38,5,198,34,59,5,198,66,76,5,197,162,249,0,192,0,0,0,192,0,0,0,197,98,4,1,198,131,33,6,198,226,44,6,198,67,83,6,198,3,90,6,198,163,115,6,198,163,121,6,192,0,0,0,198,163,192,6,198,35,72,7,198,163,103,7,198,67,111,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,5,0,192,0,0,0,198,163,106,0,192,0,0,0,198,195,101,0,198,130,110,0,198,163,147,0,198,195,153,0,198,99,218,0,192,0,0,0,197,2,44,0,198,195,223,0,198,131,24,1,198,35,34,1,198,195,47,1,198,3,50,1,198,98,73,1,198,34,90,1,192,0,0,0,192,0,0,0,198,226,209,1,198,34,220,1,198,227,253,1,192,0,0,0,197,34,104,0,198,35,20,2,198,98,13,2,198,131,31,2,198,66,41,2,197,130,116,0,198,162,93,2,192,0,0,0,198,66,125,2,198,67,165,2,198,99,186,2,198,195,186,2,198,163,194,2,192,0,0,0,198,195,48,3,198,130,91,3,192,0,0,0,198,98,135,3,198,3,143,3,198,35,176,3,198,162,203,3,192,0,0,0,198,195,221,3,198,67,233,3,197,66,193,0,198,163,25,4,192,0,0,0,192,0,0,0,192,0,0,0,198,67,71,4,198,195,89,4,198,99,91,4,198,35,96,4,192,0,0,0,198,67,105,4,192,0,0,0,192,0,0,0,198,227,218,4,192,0,0,0,198,226,7,5,198,195,28,5,198,131,52,5,198,66,76,5,197,67,255,0,197,2,2,1,192,0,0,0,198,99,37,6,198,67,43,6,198,226,44,6,198,34,75,6,197,162,30,1,198,195,76,6,198,67,83,6,198,163,82,6,197,194,29,1,198,3,90,6,198,99,96,6,198,163,121,6,198,226,163,6,198,162,200,6,192,0,0,0,192,0,0,0,198,98,58,7,198,35,72,7,198,99,85,7,192,0,0,0,198,163,103,7,192,0,0,0,198,67,111,7,198,227,173,7,198,162,0,8,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,254,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,50,0,198,131,51,0,198,227,61,0,192,0,0,0,198,130,79,0,198,99,87,0,198,67,85,0,192,0,0,0,192,0,0,0,198,131,103,0,192,0,0,0,192,0,0,0,198,130,109,0,192,0,0,0,192,0,0,0,198,98,106,0,198,226,111,0,192,0,0,0,198,99,113,0,198,35,114,0,192,0,0,0,198,67,115,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,124,0,192,0,0,0,198,163,132,0,192,0,0,0,197,163,22,0,198,35,140,0,192,0,0,0,198,163,147,0,198,3,148,0,198,195,152,0,198,195,153,0,198,2,156,0,192,0,0,0,198,195,157,0,197,66,28,0,198,66,164,0,198,67,165,0,198,195,168,0,198,67,171,0,198,3,172,0,198,3,172,0,198,3,172,0,192,0,0,0,197,34,177,0,198,195,177,0,198,194,179,0,192,0,0,0,198,2,182,0,198,131,183,0,192,0,0,0,192,0,0,0,197,99,34,0,198,67,192,0,198,226,194,0,198,99,200,0,192,0,0,0,198,3,208,0,198,2,212,0,197,195,42,0,198,163,215,0,198,163,215,0,197,2,44,0,198,227,219,0,192,0,0,0,192,0,0,0,198,2,248,0,198,99,225,0,192,0,0,0,192,0,0,0,198,35,234,0,198,35,125,0,192,0,0,0,198,131,8,1,198,195,11,1,192,0,0,0,198,195,3,1,192,0,0,0,198,194,19,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,42,1,198,2,44,1,198,67,44,1,198,34,51,1,192,0,0,0,192,0,0,0,197,66,66,0,198,130,68,1,198,2,70,1,192,0,0,0,198,2,74,1,192,0,0,0,192,0,0,0,198,66,88,1,198,3,92,1,198,3,92,1,192,0,0,0,198,163,110,1,197,226,74,0,198,131,115,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,131,1,192,0,0,0,198,194,142,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,164,1,198,34,165,1,192,0,0,0,198,67,168,1,198,66,172,1,198,98,174,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,187,1,198,66,188,1,198,163,190,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,250,0,198,66,202,1,198,66,202,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,208,1,198,34,210,1,192,0,0,0,192,0,0,0,198,227,222,1,198,162,223,1,192,0,0,0,198,35,242,1,192,0,0,0,192,0,0,0,197,226,99,0,192,0,0,0,198,163,251,1,198,66,10,2,197,67,106,0,192,0,0,0,197,67,106,0,198,162,17,2,198,35,20,2,198,3,25,2,198,67,22,2,198,163,24,2,198,67,30,2,198,131,31,2,198,226,31,2,198,131,35,2,192,0,0,0,192,0,0,0,198,34,55,2,198,3,61,2,198,99,74,2,192,0,0,0,198,3,71,2,192,0,0,0,198,194,75,2,198,226,78,2,192,0,0,0,192,0,0,0,198,227,93,2,192,0,0,0,198,67,84,2,192,0,0,0,198,34,98,2,192,0,0,0,197,226,119,0,192,0,0,0,192,0,0,0,198,3,124,2,198,3,127,2,192,0,0,0,198,226,141,2,198,66,182,2,198,99,158,2,192,0,0,0,198,130,168,2,192,0,0,0,192,0,0,0,198,130,112,0,198,3,113,0,197,226,131,0,192,0,0,0,198,131,94,5,192,0,0,0,198,99,186,2,198,195,186,2,192,0,0,0,198,66,195,2,197,34,133,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,226,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,245,2,192,0,0,0,198,130,6,3,192,0,0,0,192,0,0,0,198,99,27,3,192,0,0,0,198,98,34,3,192,0,0,0,197,226,148,0,192,0,0,0,198,162,40,3,192,0,0,0,198,195,48,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,60,3,192,0,0,0,198,227,75,3,192,0,0,0,192,0,0,0,192,0,0,0,197,226,160,0,197,98,161,0,198,130,91,3,197,34,161,0,197,163,161,0,198,131,96,3,192,0,0,0,192,0,0,0,198,67,117,3,198,99,125,3,192,0,0,0,198,98,135,3,192,0,0,0,192,0,0,0,198,131,112,3,198,226,152,3,192,0,0,0,192,0,0,0,198,227,164,3,192,0,0,0,198,35,176,3,198,3,175,3,192,0,0,0,192,0,0,0,198,226,183,3,192,0,0,0,198,67,188,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,220,3,198,195,221,3,192,0,0,0,192,0,0,0,198,226,230,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,247,3,198,99,250,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,200,0,198,163,25,4,192,0,0,0,198,3,35,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,55,4,192,0,0,0,198,194,70,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,96,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,100,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,111,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,131,4,192,0,0,0,192,0,0,0,192,0,0,0,198,194,151,4,192,0,0,0,192,0,0,0,198,67,157,4,198,195,167,4,192,0,0,0,198,3,176,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,219,4,198,99,220,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,250,4,192,0,0,0,198,35,9,5,192,0,0,0,197,162,234,0,192,0,0,0,198,98,39,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,73,5,198,66,76,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,85,5,192,0,0,0,192,0,0,0,198,163,95,5,192,0,0,0,192,0,0,0,198,2,107,5,198,227,78,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,250,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,144,5,198,66,146,5,192,0,0,0,197,34,253,0,198,195,150,5,198,98,152,5,198,130,157,5,192,0,0,0,198,35,157,5,198,226,163,5,192,0,0,0,192,0,0,0,198,34,164,5,198,99,176,5,192,0,0,0,197,98,4,1,192,0,0,0,198,227,178,5,198,67,179,5,198,194,180,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,203,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,214,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,10,1,198,66,234,5,197,66,12,1,192,0,0,0,197,2,13,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,250,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,18,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,71,6,197,194,29,1,198,99,96,6,198,162,102,6,192,0,0,0,198,163,109,6,198,3,113,6,198,227,124,6,198,162,127,6,192,0,0,0,192,0,0,0,198,99,131,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,163,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,239,6,198,131,253,6,192,0,0,0,198,131,246,6,192,0,0,0,192,0,0,0,192,0,0,0,198,34,36,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,81,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,100,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,124,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,173,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,233,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,248,7,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,89,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,251,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,16,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,180,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,79,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,185,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,102,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,226,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,32,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,25,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,128,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,7,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,107,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,181,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,49,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,70,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,198,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,117,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,219,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,175,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,154,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,38,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,30,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,158,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,108,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,128,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,31,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,50,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,100,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,109,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,74,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,9,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,81,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,78,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,10,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,193,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,176,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,74,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,213,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,2,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,53,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,129,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,47,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,92,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,124,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,112,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,220,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,185,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,252,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,236,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,240,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,130,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,99,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,41,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,32,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,51,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,209,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,10,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,35,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,55,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,253,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,107,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,180,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,125,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,39,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,232,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,121,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,63,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,122,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,26,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,14,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,110,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,24,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,168,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,134,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,47,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,131,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,80,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,227,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,176,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,158,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,138,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,145,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,136,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,77,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,48,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,27,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,36,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,220,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,170,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,214,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,214,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,169,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,79,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,234,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,241,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,52,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,49,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,116,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,186,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,109,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,200,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,152,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,247,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,89,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,78,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,99,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,132,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,133,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,252,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,52,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,32,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,40,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,6,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,161,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,22,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,31,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,93,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,40,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,59,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,12,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,90,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,181,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,151,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,162,127,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,229,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,129,121,0,5,97,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,248,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,153,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,253,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,29,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,53,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,33,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,151,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,109,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,39,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,91,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,134,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,100,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,231,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,51,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,130,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,4,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,3,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,16,127,0,0,117,121,0,5,0,5,0,0,24,121,0,5,83,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,32,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,92,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,229,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,175,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,26,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,159,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,27,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,71,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,68,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,240,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,15,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,85,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,126,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,23,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,49,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,100,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,163,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,187,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,249,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,61,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,105,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,23,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,17,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,150,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,56,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,23,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,62,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,15,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,246,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,175,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,45,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,135,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,101,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,215,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,144,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,228,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,111,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,84,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,164,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,55,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,159,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,124,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,171,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,179,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,182,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,11,127,0,0,135,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,108,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,157,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,170,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,83,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,56,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,145,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,138,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,45,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,45,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,202,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,61,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,57,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,27,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,158,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,6,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,206,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,43,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,113,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,224,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,60,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,165,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,230,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,229,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,56,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,72,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,75,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,254,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,19,127,0,0,113,121,0,5,0,5,0,0,28,121,0,5,127,126,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,86,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,14,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,40,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,255,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,33,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,254,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,21,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,76,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,215,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,168,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,111,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,25,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,255,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,94,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,32,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,229,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,150,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,207,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,75,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,48,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,180,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,224,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,129,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,173,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,188,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,28,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,151,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,152,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,188,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,34,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,164,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,11,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,103,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,115,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,58,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,78,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,81,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,80,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,3,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,177,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,104,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,110,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,54,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,103,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,166,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,2,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,51,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,76,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,77,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,21,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,176,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,151,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,255,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,135,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,59,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,136,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,250,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,223,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,167,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,222,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,59,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,43,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,57,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,254,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,8,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,152,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,72,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,241,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,28,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,63,127,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,230,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,105,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,9,127,0,0,125,121,0,5,0,5,0,0,40,121,0,5,33,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,185,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,197,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,95,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,70,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,31,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,57,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,198,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,241,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,203,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,125,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,114,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,169,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,180,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,11,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,121,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,106,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,178,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,4,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,34,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,164,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,45,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,101,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,112,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,56,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,204,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,88,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,237,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,39,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,159,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,35,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,109,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,8,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,28,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,221,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,29,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,183,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,112,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,36,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,42,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,42,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,113,121,0,5,71,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,112,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,84,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,25,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,100,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,69,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,165,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,165,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,152,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,138,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,206,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,6,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,198,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,159,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,146,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,127,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,105,121,0,5,126,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,250,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,248,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,251,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,110,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,153,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,107,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,50,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,160,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,181,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,214,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,213,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,139,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,195,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,196,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,147,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,171,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,150,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,148,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,24,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,19,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,139,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,153,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,123,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,21,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,78,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,232,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,146,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,12,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,2,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,108,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,251,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,49,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,104,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,194,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,132,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,133,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,247,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,225,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,49,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,140,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,182,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,70,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,249,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,114,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,48,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,101,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,21,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,102,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,35,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,37,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,62,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,172,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,230,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,118,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,189,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,126,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,161,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,104,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,34,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,170,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,135,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,38,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,231,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,187,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,159,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,236,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,18,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,50,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,36,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,136,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,32,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,58,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,59,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,199,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,215,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,239,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,30,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,2,127,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,252,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,81,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,108,125,0,0,119,121,0,5,0,5,0,0,10,121,0,5,197,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,129,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,166,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,78,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,60,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,206,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,22,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,153,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,166,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,123,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,61,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,218,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,161,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,186,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,66,127,0,0,209,121,0,5,0,5,0,0,18,121,0,5,41,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,52,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,107,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,70,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,224,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,8,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,120,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,82,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,79,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,115,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,152,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,105,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,113,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,227,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,157,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,163,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,188,127,0,0,105,121,0,5,0,5,0,0,40,121,0,5,7,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,51,127,0,0,179,121,0,5,0,5,0,0,40,121,0,5,8,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,9,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,111,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,130,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,108,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,84,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,81,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,5,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,134,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,131,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,167,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,79,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,95,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,26,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,114,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,64,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,146,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,40,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,88,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,53,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,189,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,90,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,181,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,132,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,75,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,16,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,162,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,112,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,60,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,50,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,34,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,155,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,43,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,37,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,124,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,24,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,111,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,3,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,116,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,190,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,95,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,104,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,110,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,15,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,62,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,243,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,48,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,235,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,248,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,154,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,181,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,27,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,36,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,96,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,102,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,113,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,168,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,61,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,22,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,32,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,96,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,28,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,117,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,97,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,91,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,43,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,145,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,92,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,205,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,130,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,115,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,209,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,116,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,94,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,178,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,210,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,55,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,239,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,9,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,53,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,3,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,52,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,137,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,98,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,169,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,138,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,128,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,95,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,30,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,121,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,144,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,162,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,7,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,249,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,46,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,36,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,129,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,208,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,91,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,232,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,22,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,156,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,73,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,191,125,0,0,119,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,25,127,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,147,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,190,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,121,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,2,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,211,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,75,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,117,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,250,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,33,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,95,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,37,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,36,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,7,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,73,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,212,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,213,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,4,127,0,0,103,121,0,5,0,5,0,0,10,121,0,5,203,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,102,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,8,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,76,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,12,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,10,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,191,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,117,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,236,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,233,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,29,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,17,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,16,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,49,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,105,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,125,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,71,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,49,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,122,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,177,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,26,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,182,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,5,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,118,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,51,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,19,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,65,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,217,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,25,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,11,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,102,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,30,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,139,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,205,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,60,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,250,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,191,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,216,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,236,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,37,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,206,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,160,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,136,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,89,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,61,127,0,0,105,121,0,5,0,5,0,0,10,121,0,5,105,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,106,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,148,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,24,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,237,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,255,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,35,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,102,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,114,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,144,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,3,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,91,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,200,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,21,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,179,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,26,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,221,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,8,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,97,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,22,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,17,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,147,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,82,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,112,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,120,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,107,125,0,0,219,121,0,5,0,5,0,0,8,121,0,5,0,5,0,0,143,121,0,5,33,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,87,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,41,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,40,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,95,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,25,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,206,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,192,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,49,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,43,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,29,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,115,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,140,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,217,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,146,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,38,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,110,127,0,0,127,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,118,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,155,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,6,127,0,0,103,121,0,5,0,5,0,0,16,121,0,5,82,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,129,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,111,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,118,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,88,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,108,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,240,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,109,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,85,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,64,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,65,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,188,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,218,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,14,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,2,127,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,114,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,80,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,121,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,38,127,0,0,209,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,224,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,44,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,18,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,156,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,50,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,112,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,62,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,23,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,91,127,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,115,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,123,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,231,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,113,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,157,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,27,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,248,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,37,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,72,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,126,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,32,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,153,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,74,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,77,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,35,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,230,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,233,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,50,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,147,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,141,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,124,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,126,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,57,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,169,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,111,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,79,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,213,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,158,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,18,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,12,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,117,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,16,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,154,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,45,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,184,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,183,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,141,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,42,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,207,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,47,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,232,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,27,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,219,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,56,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,173,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,2,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,45,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,123,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,3,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,105,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,106,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,208,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,41,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,238,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,67,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,102,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,120,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,170,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,119,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,76,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,72,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,86,127,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,78,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,138,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,103,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,63,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,44,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,23,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,119,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,31,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,170,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,32,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,148,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,137,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,13,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,178,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,13,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,149,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,120,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,185,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,66,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,3,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,159,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,50,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,106,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,154,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,252,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,107,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,76,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,58,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,36,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,210,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,234,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,174,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,4,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,12,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,87,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,25,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,11,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,85,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,46,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,15,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,47,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,26,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,41,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,192,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,179,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,193,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,127,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,181,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,254,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,156,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,13,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,139,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,5,127,0,0,121,121,0,5,0,5,0,0,20,121,0,5,46,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,129,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,47,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,28,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,68,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,73,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,47,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,82,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,142,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,25,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,199,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,77,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,33,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,209,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,59,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,172,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,27,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,241,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,115,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,143,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,193,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,250,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,131,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,79,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,39,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,193,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,113,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,207,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,23,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,40,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,133,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,44,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,33,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,199,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,64,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,20,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,155,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,60,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,105,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,97,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,38,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,24,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,205,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,208,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,126,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,186,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,25,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,16,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,3,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,151,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,24,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,194,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,83,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,233,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,137,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,152,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,191,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,43,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,59,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,179,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,68,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,6,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,124,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,4,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,34,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,63,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,249,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,142,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,80,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,84,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,92,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,21,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,149,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,176,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,42,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,30,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,48,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,73,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,45,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,238,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,247,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,140,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,6,127,0,0,121,121,0,5,0,5,0,0,12,121,0,5,139,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,148,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,235,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,37,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,66,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,137,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,50,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,7,127,0,0,121,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,127,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,49,127,0,0,143,121,0,5,0,5,0,0,10,121,0,5,160,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,160,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,57,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,39,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,26,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,41,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,25,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,116,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,41,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,143,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,195,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,222,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,13,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,170,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,85,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,74,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,26,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,198,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,164,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,234,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,133,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,33,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,81,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,50,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,25,127,0,0,209,121,0,5,0,5,0,0,18,121,0,5,39,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,117,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,175,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,2,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,4,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,209,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,44,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,19,127,0,0,193,121,0,5,0,5,0,0,18,121,0,5,108,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,3,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,71,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,96,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,50,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,86,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,237,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,214,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,192,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,77,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,82,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,128,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,34,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,33,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,114,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,171,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,93,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,235,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,51,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,53,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,53,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,29,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,125,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,127,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,51,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,149,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,144,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,233,126,0,0,143,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,234,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,31,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,196,125,0,0,119,121,0,5,0,5,0,0,10,121,0,5,242,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,30,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,103,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,103,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,5,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,182,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,63,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,4,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,161,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,119,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,120,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,69,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,238,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,58,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,12,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,134,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,141,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,236,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,54,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,235,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,55,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,51,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,234,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,16,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,109,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,145,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,214,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,186,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,169,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,94,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,87,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,220,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,41,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,138,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,235,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,114,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,16,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,216,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,172,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,7,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,150,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,187,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,33,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,54,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,78,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,173,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,209,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,200,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,20,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,122,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,71,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,80,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,75,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,54,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,67,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,95,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,221,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,81,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,77,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,78,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,66,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,72,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,25,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,180,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,88,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,118,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,44,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,157,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,74,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,249,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,165,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,238,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,79,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,237,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,10,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,59,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,109,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,250,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,178,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,249,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,52,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,31,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,136,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,75,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,53,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,29,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,237,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,54,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,22,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,6,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,27,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,215,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,204,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,168,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,46,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,113,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,238,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,76,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,122,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,238,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,174,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,105,121,0,5,25,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,99,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,151,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,85,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,32,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,65,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,239,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,249,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,113,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,110,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,225,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,139,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,40,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,4,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,240,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,92,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,181,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,138,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,78,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,242,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,28,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,31,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,242,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,8,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,104,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,156,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,47,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,13,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,123,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,188,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,51,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,128,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,222,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,121,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,239,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,110,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,62,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,100,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,26,126,0,0,179,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,228,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,210,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,197,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,139,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,227,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,14,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,155,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,145,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,140,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,55,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,253,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,132,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,48,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,140,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,146,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,161,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,147,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,42,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,86,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,42,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,30,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,156,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,73,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,140,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,144,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,243,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,244,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,73,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,4,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,110,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,210,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,211,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,101,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,210,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,188,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,88,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,171,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,63,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,216,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,31,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,215,126,0,0,143,121,0,5,0,5,0,0,10,121,0,5,77,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,46,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,176,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,62,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,28,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,76,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,42,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,204,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,90,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,89,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,43,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,156,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,43,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,184,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,145,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,70,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,120,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,251,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,174,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,63,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,17,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,226,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,212,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,106,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,86,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,124,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,5,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,52,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,70,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,50,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,42,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,164,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,129,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,175,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,101,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,82,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,137,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,185,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,152,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,135,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,97,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,141,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,255,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,122,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,86,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,80,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,51,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,153,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,179,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,111,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,104,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,121,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,83,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,162,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,163,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,205,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,24,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,146,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,254,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,44,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,61,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,131,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,53,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,180,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,171,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,64,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,51,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,130,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,231,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,46,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,98,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,75,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,130,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,62,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,150,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,43,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,88,127,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,248,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,216,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,69,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,130,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,225,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,146,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,63,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,30,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,175,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,83,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,119,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,33,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,122,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,147,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,216,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,39,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,84,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,217,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,141,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,89,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,218,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,55,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,57,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,210,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,81,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,22,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,2,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,34,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,73,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,200,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,183,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,77,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,138,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,59,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,149,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,41,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,132,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,245,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,32,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,90,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,63,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,42,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,31,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,54,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,52,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,148,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,55,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,98,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,169,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,216,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,91,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,13,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,196,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,42,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,111,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,243,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,55,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,5,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,154,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,154,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,15,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,149,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,75,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,87,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,142,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,112,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,72,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,5,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,3,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,211,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,200,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,201,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,211,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,89,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,127,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,75,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,194,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,13,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,250,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,236,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,74,126,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,60,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,11,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,236,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,79,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,68,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,185,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,46,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,237,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,26,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,55,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,131,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,88,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,135,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,113,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,107,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,23,127,0,0,111,121,0,5,0,5,0,0,40,121,0,5,34,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,52,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,65,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,240,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,114,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,148,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,217,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,6,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,177,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,139,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,24,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,131,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,157,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,131,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,30,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,115,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,217,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,127,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,207,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,123,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,99,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,56,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,99,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,56,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,42,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,44,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,116,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,40,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,162,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,65,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,7,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,120,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,215,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,201,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,145,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,32,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,7,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,217,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,41,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,61,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,108,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,64,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,89,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,178,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,27,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,92,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,243,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,110,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,129,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,182,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,53,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,180,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,236,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,25,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,199,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,237,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,228,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,35,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,89,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,132,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,176,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,198,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,120,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,133,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,217,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,184,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,233,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,54,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,74,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,14,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,180,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,74,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,187,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,15,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,111,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,250,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,89,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,163,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,211,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,212,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,211,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,183,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,183,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,8,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,158,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,143,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,133,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,17,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,245,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,25,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,66,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,149,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,10,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,86,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,150,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,134,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,226,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,132,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,43,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,96,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,114,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,134,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,237,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,27,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,218,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,198,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,111,121,0,5,23,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,27,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,28,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,157,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,181,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,56,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,130,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,141,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,4,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,34,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,35,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,14,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,135,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,136,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,122,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,128,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,222,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,6,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,66,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,109,127,0,0,143,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,12,127,0,0,209,121,0,5,0,5,0,0,10,121,0,5,53,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,153,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,27,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,85,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,165,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,38,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,200,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,56,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,14,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,9,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,20,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,82,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,151,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,55,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,118,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,83,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,79,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,189,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,34,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,35,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,130,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,83,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,135,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,93,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,67,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,16,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,96,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,33,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,56,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,26,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,251,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,50,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,42,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,55,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,63,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,150,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,96,127,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,104,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,13,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,34,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,28,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,60,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,181,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,86,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,117,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,140,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,218,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,64,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,45,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,158,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,66,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,45,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,198,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,121,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,133,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,252,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,227,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,178,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,136,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,111,121,0,5,24,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,183,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,123,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,29,127,0,0,117,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,50,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,150,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,45,127,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,31,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,9,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,6,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,26,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,15,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,7,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,236,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,124,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,78,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,37,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,19,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,76,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,184,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,4,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,3,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,28,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,232,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,116,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,17,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,103,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,80,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,28,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,97,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,87,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,155,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,213,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,218,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,124,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,100,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,5,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,102,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,52,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,70,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,36,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,28,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,110,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,164,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,173,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,105,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,174,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,190,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,158,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,246,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,182,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,151,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,56,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,43,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,17,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,242,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,73,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,24,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,25,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,35,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,98,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,223,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,185,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,141,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,97,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,175,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,228,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,58,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,2,127,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,71,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,176,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,67,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,134,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,84,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,64,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,196,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,134,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,103,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,177,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,137,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,115,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,206,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,237,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,142,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,52,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,160,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,121,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,28,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,163,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,90,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,20,127,0,0,113,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,125,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,68,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,43,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,36,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,55,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,223,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,179,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,239,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,127,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,104,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,71,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,83,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,159,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,238,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,140,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,199,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,44,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,219,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,114,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,251,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,153,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,159,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,243,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,199,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,222,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,26,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,26,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,124,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,78,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,238,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,195,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,45,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,147,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,156,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,143,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,81,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,105,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,30,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,119,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,121,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,65,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,130,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,37,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,72,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,18,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,185,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,78,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,79,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,222,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,46,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,101,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,144,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,177,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,251,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,213,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,246,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,87,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,105,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,182,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,138,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,115,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,157,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,29,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,49,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,128,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,104,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,4,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,44,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,2,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,154,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,178,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,142,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,29,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,119,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,115,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,241,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,139,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,34,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,244,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,160,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,54,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,57,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,67,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,53,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,160,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,65,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,224,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,27,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,17,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,98,127,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,57,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,80,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,15,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,84,123,0,0,219,121,0,5,0,5,0,0,38,121,0,5,7,127,0,0,105,121,0,5,0,5,0,0,40,121,0,5,16,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,237,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,60,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,184,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,75,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,59,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,12,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,46,127,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,14,127,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,105,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,18,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,93,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,163,126,0,0,179,121,0,5,0,5,0,0,10,121,0,5,244,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,37,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,51,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,64,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,66,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,207,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,14,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,5,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,125,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,76,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,54,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,87,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,51,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,29,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,31,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,208,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,35,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,118,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,31,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,50,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,218,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,67,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,245,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,5,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,6,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,87,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,84,127,0,0,179,121,0,5,0,5,0,0,10,121,0,5,247,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,151,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,2,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,65,127,0,0,105,121,0,5,0,5,0,0,10,121,0,5,248,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,208,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,46,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,10,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,34,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,186,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,224,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,135,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,179,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,182,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,94,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,10,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,79,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,29,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,27,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,33,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,17,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,79,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,164,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,152,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,3,127,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,161,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,65,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,66,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,119,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,7,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,28,127,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,15,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,28,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,247,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,235,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,38,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,158,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,152,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,19,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,90,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,111,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,183,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,88,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,245,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,43,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,57,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,252,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,16,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,24,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,36,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,128,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,112,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,52,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,61,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,239,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,79,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,58,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,41,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,42,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,252,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,52,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,131,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,6,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,189,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,8,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,21,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,170,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,191,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,225,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,84,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,180,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,107,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,170,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,164,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,238,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,248,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,153,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,159,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,209,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,252,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,9,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,205,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,116,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,94,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,184,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,61,127,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,186,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,95,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,124,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,135,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,207,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,80,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,7,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,181,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,74,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,75,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,25,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,180,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,108,126,0,0,119,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,105,121,0,5,108,123,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,105,121,0,5,107,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,177,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,53,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,18,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,69,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,196,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,116,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,28,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,208,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,67,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,47,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,121,121,0,5,23,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,182,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,165,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,14,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,91,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,8,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,64,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,192,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,109,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,150,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,102,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,77,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,113,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,69,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,2,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,26,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,240,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,146,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,138,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,66,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,145,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,3,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,185,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,226,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,67,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,9,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,108,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,67,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,95,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,17,127,0,0,125,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,61,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,246,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,71,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,12,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,253,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,37,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,74,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,201,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,239,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,128,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,91,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,227,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,8,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,112,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,160,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,219,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,176,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,37,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,117,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,214,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,11,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,220,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,238,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,29,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,92,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,126,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,126,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,17,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,24,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,200,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,165,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,73,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,227,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,27,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,70,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,254,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,221,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,12,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,125,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,242,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,161,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,183,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,99,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,218,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,149,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,251,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,140,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,96,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,89,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,57,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,66,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,153,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,33,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,47,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,125,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,84,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,68,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,243,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,154,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,27,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,154,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,106,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,166,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,103,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,215,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,94,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,216,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,113,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,80,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,97,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,239,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,184,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,13,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,115,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,33,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,58,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,48,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,59,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,93,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,9,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,114,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,136,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,188,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,65,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,154,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,104,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,184,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,127,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,128,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,28,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,201,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,178,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,31,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,172,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,55,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,217,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,166,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,9,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,13,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,30,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,27,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,212,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,77,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,77,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,186,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,82,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,212,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,45,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,98,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,137,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,111,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,155,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,182,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,249,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,95,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,189,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,42,127,0,0,127,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,28,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,167,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,18,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,187,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,39,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,115,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,96,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,117,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,210,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,211,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,135,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,5,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,88,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,255,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,27,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,43,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,83,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,35,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,87,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,202,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,107,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,187,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,4,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,208,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,49,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,71,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,88,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,78,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,146,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,14,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,135,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,15,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,10,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,147,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,9,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,137,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,74,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,213,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,30,127,0,0,111,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,72,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,140,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,255,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,10,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,118,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,222,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,168,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,114,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,71,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,171,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,76,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,29,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,91,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,80,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,68,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,171,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,72,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,29,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,115,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,48,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,51,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,240,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,241,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,36,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,53,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,31,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,252,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,8,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,62,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,72,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,235,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,231,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,132,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,55,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,113,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,67,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,73,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,83,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,32,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,117,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,116,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,188,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,207,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,79,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,105,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,151,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,118,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,115,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,103,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,48,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,128,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,36,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,118,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,60,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,61,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,181,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,248,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,65,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,189,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,219,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,238,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,59,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,47,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,20,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,44,126,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,11,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,166,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,6,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,132,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,240,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,186,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,253,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,47,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,30,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,142,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,92,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,90,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,62,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,64,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,155,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,88,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,208,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,58,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,89,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,76,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,164,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,251,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,43,127,0,0,127,121,0,5,0,5,0,0,10,121,0,5,51,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,67,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,106,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,141,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,185,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,218,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,43,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,17,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,79,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,91,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,207,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,112,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,11,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,223,126,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,80,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,117,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,12,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,10,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,11,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,127,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,97,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,15,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,188,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,35,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,243,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,155,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,77,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,74,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,17,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,103,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,73,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,77,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,5,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,167,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,22,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,128,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,241,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,12,127,0,0,103,121,0,5,0,5,0,0,10,121,0,5,161,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,45,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,34,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,98,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,85,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,155,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,118,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,156,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,16,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,137,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,47,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,33,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,247,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,54,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,3,127,0,0,185,121,0,5,0,5,0,0,6,121,0,5,93,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,156,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,46,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,75,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,190,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,46,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,252,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,81,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,85,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,42,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,78,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,31,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,77,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,59,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,31,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,154,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,17,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,18,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,89,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,95,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,56,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,165,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,117,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,32,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,212,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,58,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,20,127,0,0,129,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,99,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,109,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,136,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,242,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,111,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,59,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,113,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,240,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,68,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,32,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,74,127,0,0,219,121,0,5,0,5,0,0,10,121,0,5,249,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,119,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,241,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,55,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,164,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,203,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,254,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,157,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,32,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,173,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,250,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,197,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,220,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,64,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,189,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,167,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,116,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,63,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,23,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,174,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,179,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,165,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,229,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,60,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,120,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,38,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,152,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,166,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,197,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,114,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,33,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,125,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,187,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,34,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,155,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,142,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,44,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,45,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,242,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,60,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,27,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,122,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,30,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,180,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,56,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,187,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,11,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,60,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,244,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,35,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,138,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,193,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,2,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,75,127,0,0,137,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,71,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,157,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,7,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,219,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,49,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,57,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,250,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,51,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,18,127,0,0,209,121,0,5,0,5,0,0,18,121,0,5,221,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,209,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,17,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,28,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,19,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,92,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,56,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,138,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,122,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,39,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,214,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,34,127,0,0,103,121,0,5,0,5,0,0,20,121,0,5,21,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,135,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,159,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,183,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,213,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,219,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,45,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,80,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,4,127,0,0,185,121,0,5,0,5,0,0,20,121,0,5,142,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,194,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,215,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,35,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,35,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,119,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,62,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,253,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,224,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,97,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,82,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,104,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,129,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,169,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,44,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,38,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,47,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,178,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,38,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,57,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,190,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,177,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,99,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,73,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,254,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,59,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,121,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,86,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,144,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,7,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,245,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,76,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,105,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,112,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,225,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,71,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,30,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,76,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,93,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,78,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,3,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,204,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,58,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,167,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,162,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,2,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,204,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,75,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,46,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,94,127,0,0,127,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,13,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,221,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,139,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,35,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,142,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,59,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,65,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,118,125,0,0,219,121,0,5,0,5,0,0,38,121,0,5,16,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,182,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,239,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,156,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,47,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,79,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,18,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,225,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,28,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,16,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,206,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,139,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,22,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,35,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,106,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,60,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,94,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,186,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,252,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,117,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,161,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,116,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,156,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,110,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,71,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,255,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,21,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,63,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,247,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,248,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,133,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,56,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,28,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,17,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,181,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,39,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,4,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,120,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,95,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,202,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,5,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,228,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,99,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,32,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,197,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,67,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,66,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,143,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,92,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,90,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,52,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,13,127,0,0,103,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,122,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,130,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,214,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,39,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,13,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,19,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,33,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,50,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,50,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,117,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,9,127,0,0,113,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,241,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,135,121,0,5,0,5,0,0,24,121,0,5,158,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,230,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,29,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,161,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,40,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,214,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,140,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,163,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,241,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,31,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,115,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,222,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,136,125,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,129,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,157,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,219,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,253,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,172,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,209,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,48,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,152,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,178,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,98,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,48,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,85,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,131,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,51,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,79,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,114,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,11,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,182,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,143,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,144,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,145,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,146,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,40,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,80,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,132,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,247,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,188,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,49,123,0,0,185,121,0,5,0,5,0,0,26,121,0,5,82,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,129,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,23,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,46,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,67,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,143,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,19,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,164,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,143,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,216,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,198,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,20,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,20,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,133,127,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,12,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,168,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,199,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,155,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,80,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,228,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,66,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,225,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,204,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,126,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,195,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,135,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,14,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,59,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,186,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,120,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,113,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,150,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,66,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,68,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,31,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,158,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,69,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,205,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,233,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,192,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,60,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,36,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,30,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,190,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,231,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,109,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,168,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,228,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,123,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,181,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,159,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,15,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,239,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,123,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,14,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,17,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,147,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,251,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,225,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,5,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,37,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,15,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,158,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,210,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,98,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,151,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,168,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,220,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,95,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,160,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,85,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,78,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,200,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,36,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,31,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,100,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,18,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,43,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,32,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,47,126,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,28,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,98,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,130,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,45,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,217,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,144,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,168,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,4,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,253,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,51,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,16,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,10,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,165,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,255,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,167,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,76,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,215,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,159,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,71,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,187,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,48,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,141,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,9,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,193,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,21,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,36,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,81,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,3,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,254,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,218,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,243,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,253,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,47,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,19,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,239,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,129,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,255,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,244,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,198,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,188,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,118,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,75,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,252,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,75,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,160,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,38,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,65,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,39,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,76,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,21,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,22,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,155,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,54,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,246,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,8,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,183,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,123,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,15,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,21,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,121,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,81,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,70,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,47,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,208,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,48,126,0,0,179,121,0,5,0,5,0,0,10,121,0,5,80,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,157,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,230,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,72,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,182,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,68,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,183,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,242,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,220,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,18,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,234,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,95,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,22,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,232,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,92,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,12,127,0,0,135,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,159,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,142,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,40,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,134,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,14,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,147,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,129,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,152,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,6,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,49,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,188,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,76,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,23,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,68,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,158,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,161,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,209,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,8,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,160,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,29,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,61,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,185,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,84,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,218,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,64,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,44,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,222,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,33,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,15,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,90,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,223,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,251,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,49,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,49,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,176,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,54,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,47,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,83,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,119,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,243,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,32,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,24,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,138,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,161,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,131,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,112,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,194,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,19,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,52,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,207,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,195,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,253,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,4,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,37,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,134,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,12,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,94,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,245,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,249,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,34,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,10,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,253,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,216,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,211,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,162,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,162,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,20,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,27,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,202,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,220,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,202,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,170,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,232,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,57,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,69,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,16,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,34,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,159,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,152,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,126,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,226,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,125,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,175,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,189,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,68,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,18,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,235,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,100,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,73,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,178,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,22,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,41,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,122,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,61,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,184,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,212,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,67,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,240,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,190,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,16,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,157,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,166,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,171,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,122,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,53,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,18,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,96,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,219,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,103,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,210,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,67,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,12,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,99,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,77,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,49,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,72,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,77,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,111,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,82,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,36,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,172,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,69,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,244,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,123,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,165,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,240,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,116,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,168,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,53,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,209,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,85,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,201,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,200,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,30,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,29,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,96,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,119,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,50,126,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,90,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,223,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,6,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,243,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,241,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,216,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,162,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,68,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,17,127,0,0,117,121,0,5,0,5,0,0,24,121,0,5,55,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,183,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,50,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,205,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,84,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,245,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,15,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,80,127,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,6,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,220,126,0,0,209,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,220,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,48,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,100,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,212,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,66,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,232,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,220,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,254,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,184,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,160,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,229,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,5,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,129,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,7,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,255,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,78,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,240,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,169,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,5,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,17,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,12,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,189,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,162,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,160,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,38,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,101,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,202,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,2,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,112,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,69,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,221,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,144,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,242,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,25,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,254,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,66,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,10,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,222,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,239,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,223,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,172,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,18,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,19,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,6,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,79,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,144,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,118,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,18,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,13,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,123,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,191,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,119,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,61,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,135,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,156,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,35,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,46,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,118,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,76,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,162,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,104,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,59,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,68,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,58,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,10,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,26,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,255,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,29,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,69,127,0,0,111,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,124,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,37,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,19,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,38,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,190,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,51,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,157,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,54,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,254,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,20,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,206,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,48,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,2,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,209,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,42,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,77,127,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,91,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,166,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,75,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,6,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,91,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,32,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,21,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,31,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,13,127,0,0,135,121,0,5,0,5,0,0,18,121,0,5,52,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,60,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,108,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,169,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,105,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,43,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,241,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,51,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,223,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,73,126,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,76,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,44,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,191,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,179,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,107,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,115,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,124,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,77,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,6,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,59,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,186,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,52,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,33,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,20,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,224,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,148,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,20,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,163,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,50,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,72,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,167,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,179,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,207,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,215,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,119,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,109,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,49,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,45,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,143,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,32,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,89,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,58,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,210,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,2,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,78,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,46,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,166,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,114,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,224,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,195,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,125,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,184,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,167,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,51,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,76,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,108,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,161,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,172,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,19,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,105,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,113,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,53,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,235,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,7,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,156,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,56,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,203,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,126,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,71,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,196,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,158,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,246,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,240,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,120,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,56,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,121,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,123,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,97,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,88,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,107,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,85,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,241,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,182,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,137,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,13,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,106,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,105,121,0,5,109,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,105,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,3,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,81,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,82,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,11,127,0,0,125,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,191,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,229,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,2,127,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,96,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,79,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,194,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,35,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,2,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,49,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,226,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,9,127,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,14,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,195,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,201,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,170,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,96,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,122,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,11,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,127,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,185,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,61,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,186,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,136,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,95,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,160,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,147,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,168,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,205,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,3,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,163,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,242,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,130,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,119,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,9,127,0,0,121,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,172,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,76,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,24,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,99,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,77,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,210,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,84,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,45,127,0,0,127,121,0,5,0,5,0,0,10,121,0,5,206,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,197,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,69,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,206,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,163,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,98,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,208,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,37,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,219,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,70,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,15,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,225,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,102,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,20,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,169,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,16,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,57,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,240,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,30,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,60,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,152,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,126,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,207,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,187,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,27,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,153,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,185,121,0,5,0,5,0,0,6,121,0,5,137,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,106,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,71,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,23,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,131,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,191,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,71,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,173,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,244,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,124,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,4,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,83,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,146,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,61,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,31,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,169,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,77,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,36,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,132,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,229,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,217,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,99,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,242,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,12,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,38,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,3,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,52,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,164,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,143,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,54,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,57,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,38,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,21,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,60,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,129,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,100,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,62,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,53,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,85,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,28,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,32,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,187,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,138,127,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,46,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,131,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,4,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,170,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,39,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,245,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,52,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,51,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,8,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,77,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,72,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,176,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,73,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,168,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,246,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,231,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,145,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,106,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,163,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,105,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,209,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,29,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,148,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,9,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,96,127,0,0,211,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,16,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,107,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,83,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,139,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,188,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,94,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,198,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,201,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,226,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,36,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,143,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,40,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,164,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,11,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,218,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,22,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,208,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,208,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,132,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,43,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,86,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,189,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,45,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,246,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,87,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,74,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,5,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,185,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,189,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,242,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,163,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,99,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,211,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,44,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,170,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,78,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,219,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,75,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,79,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,140,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,185,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,127,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,209,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,171,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,52,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,80,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,190,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,57,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,80,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,67,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,227,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,146,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,186,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,3,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,108,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,170,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,193,124,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,116,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,61,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,191,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,10,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,196,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,186,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,29,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,87,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,210,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,147,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,194,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,77,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,161,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,7,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,137,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,97,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,230,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,98,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,3,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,165,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,55,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,166,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,53,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,136,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,109,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,20,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,54,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,29,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,30,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,107,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,110,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,88,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,35,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,206,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,55,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,110,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,101,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,41,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,50,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,220,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,33,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,54,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,89,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,253,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,254,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,79,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,7,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,58,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,198,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,76,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,136,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,77,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,137,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,53,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,148,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,5,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,4,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,63,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,187,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,231,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,133,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,179,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,213,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,20,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,78,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,122,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,62,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,17,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,221,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,169,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,58,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,188,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,47,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,192,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,211,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,90,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,59,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,7,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,92,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,81,127,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,100,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,187,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,6,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,37,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,196,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,246,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,209,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,212,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,188,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,149,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,226,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,247,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,49,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,137,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,76,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,8,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,6,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,12,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,70,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,173,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,102,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,42,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,172,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,119,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,232,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,11,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,124,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,74,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,59,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,59,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,127,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,62,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,141,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,244,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,203,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,141,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,91,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,21,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,82,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,203,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,249,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,61,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,223,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,191,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,241,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,165,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,189,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,195,124,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,130,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,56,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,36,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,144,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,211,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,157,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,158,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,125,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,164,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,98,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,128,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,180,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,3,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,96,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,227,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,4,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,70,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,19,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,197,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,137,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,13,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,108,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,92,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,33,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,228,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,173,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,9,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,46,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,181,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,62,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,86,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,162,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,117,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,26,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,222,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,79,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,103,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,157,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,114,126,0,0,119,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,115,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,4,127,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,192,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,134,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,25,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,104,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,123,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,161,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,104,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,144,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,87,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,169,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,50,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,224,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,99,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,245,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,48,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,100,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,125,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,223,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,170,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,80,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,81,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,36,127,0,0,211,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,33,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,162,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,122,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,84,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,128,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,22,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,90,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,223,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,96,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,5,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,34,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,181,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,71,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,30,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,213,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,126,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,173,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,214,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,16,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,189,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,193,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,2,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,227,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,163,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,78,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,228,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,224,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,215,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,14,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,117,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,216,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,192,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,210,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,255,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,195,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,204,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,145,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,60,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,80,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,170,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,72,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,8,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,61,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,5,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,139,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,2,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,10,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,52,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,97,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,57,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,85,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,238,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,104,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,100,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,17,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,127,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,140,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,50,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,97,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,217,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,83,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,16,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,63,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,158,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,89,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,164,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,51,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,123,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,150,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,233,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,18,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,17,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,97,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,93,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,21,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,76,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,61,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,47,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,123,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,61,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,136,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,179,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,46,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,43,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,82,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,48,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,153,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,78,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,31,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,225,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,55,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,171,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,151,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,156,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,247,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,173,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,85,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,242,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,142,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,84,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,116,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,210,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,71,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,63,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,221,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,12,127,0,0,125,121,0,5,0,5,0,0,34,121,0,5,34,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,37,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,224,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,105,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,73,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,90,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,192,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,92,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,81,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,145,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,211,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,83,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,79,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,153,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,246,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,220,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,21,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,106,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,37,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,120,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,62,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,18,127,0,0,125,121,0,5,0,5,0,0,34,121,0,5,63,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,126,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,211,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,141,121,0,5,0,5,0,0,28,121,0,5,74,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,19,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,243,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,107,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,73,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,101,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,165,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,166,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,80,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,31,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,171,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,81,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,82,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,19,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,94,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,109,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,186,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,24,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,190,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,129,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,20,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,130,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,70,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,34,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,110,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,216,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,167,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,36,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,124,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,165,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,83,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,158,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,226,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,30,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,50,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,145,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,32,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,116,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,110,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,109,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,120,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,192,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,209,121,0,5,0,5,0,0,16,121,0,5,18,127,0,0,117,121,0,5,0,5,0,0,10,121,0,5,37,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,164,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,9,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,236,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,111,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,204,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,23,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,31,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,17,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,174,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,168,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,193,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,70,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,64,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,152,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,153,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,131,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,101,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,244,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,118,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,225,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,41,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,59,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,38,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,22,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,78,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,60,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,6,127,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,137,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,11,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,247,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,33,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,189,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,65,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,84,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,105,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,52,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,10,127,0,0,121,121,0,5,0,5,0,0,30,121,0,5,132,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,174,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,232,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,119,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,192,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,106,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,243,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,165,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,38,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,229,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,69,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,159,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,194,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,129,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,229,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,175,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,225,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,96,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,13,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,10,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,132,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,141,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,244,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,39,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,34,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,32,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,154,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,23,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,11,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,128,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,88,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,97,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,33,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,60,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,174,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,133,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,121,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,190,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,130,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,190,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,44,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,11,127,0,0,121,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,153,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,245,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,191,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,226,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,62,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,191,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,159,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,60,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,187,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,63,127,0,0,137,121,0,5,0,5,0,0,12,121,0,5,93,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,166,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,83,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,98,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,46,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,28,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,194,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,84,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,100,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,198,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,8,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,171,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,74,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,176,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,86,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,51,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,85,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,111,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,113,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,35,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,135,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,248,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,127,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,167,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,124,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,7,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,40,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,62,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,99,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,130,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,99,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,199,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,247,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,91,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,52,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,84,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,207,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,37,127,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,204,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,12,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,216,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,55,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,145,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,88,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,57,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,146,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,201,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,13,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,36,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,101,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,51,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,111,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,86,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,25,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,108,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,79,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,160,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,207,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,106,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,88,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,37,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,32,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,64,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,49,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,209,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,182,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,58,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,7,127,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,72,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,13,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,171,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,232,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,130,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,35,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,48,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,44,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,14,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,147,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,59,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,125,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,73,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,33,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,84,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,202,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,60,123,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,89,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,37,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,7,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,34,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,234,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,8,127,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,237,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,192,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,8,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,18,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,191,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,169,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,39,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,177,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,234,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,92,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,116,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,15,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,236,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,188,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,52,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,63,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,63,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,249,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,74,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,9,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,19,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,9,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,221,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,248,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,230,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,54,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,131,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,154,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,77,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,217,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,93,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,17,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,20,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,68,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,10,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,238,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,80,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,68,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,7,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,225,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,146,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,172,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,154,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,34,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,100,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,100,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,172,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,134,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,55,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,66,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,82,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,109,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,114,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,221,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,101,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,160,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,113,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,114,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,190,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,121,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,177,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,222,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,248,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,35,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,15,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,177,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,9,127,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,199,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,193,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,168,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,125,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,241,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,192,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,35,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,135,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,138,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,101,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,250,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,115,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,251,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,146,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,169,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,201,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,79,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,64,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,55,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,163,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,229,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,112,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,151,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,152,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,114,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,52,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,56,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,147,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,192,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,170,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,250,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,21,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,121,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,36,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,235,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,10,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,222,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,97,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,64,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,56,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,48,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,75,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,13,127,0,0,113,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,187,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,175,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,111,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,11,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,81,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,233,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,35,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,136,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,86,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,108,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,151,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,87,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,68,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,22,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,6,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,171,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,98,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,4,127,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,36,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,200,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,122,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,145,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,170,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,132,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,38,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,67,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,102,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,171,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,139,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,85,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,197,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,142,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,90,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,112,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,36,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,178,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,87,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,178,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,234,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,227,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,57,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,127,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,121,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,122,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,20,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,211,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,217,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,179,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,52,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,161,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,140,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,37,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,30,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,18,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,233,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,143,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,125,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,159,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,53,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,171,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,183,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,79,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,155,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,16,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,139,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,39,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,138,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,193,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,178,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,13,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,53,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,133,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,50,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,120,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,90,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,248,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,172,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,243,125,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,98,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,243,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,226,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,247,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,16,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,17,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,53,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,14,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,53,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,173,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,227,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,199,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,74,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,36,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,155,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,37,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,169,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,38,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,51,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,235,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,47,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,208,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,202,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,76,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,242,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,136,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,132,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,80,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,154,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,117,121,0,5,0,5,0,0,24,121,0,5,34,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,55,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,160,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,17,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,212,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,107,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,194,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,243,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,223,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,84,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,71,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,180,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,56,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,198,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,49,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,137,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,227,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,214,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,11,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,209,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,189,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,21,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,23,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,67,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,48,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,61,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,230,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,47,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,173,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,191,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,19,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,231,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,249,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,200,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,62,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,69,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,201,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,69,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,34,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,114,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,21,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,205,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,29,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,22,127,0,0,125,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,148,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,38,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,70,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,26,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,10,127,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,140,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,161,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,27,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,133,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,202,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,40,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,116,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,205,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,8,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,54,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,218,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,210,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,224,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,193,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,123,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,87,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,11,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,141,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,226,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,230,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,11,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,162,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,126,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,85,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,181,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,131,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,195,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,163,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,94,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,9,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,122,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,113,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,196,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,102,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,174,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,175,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,86,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,68,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,126,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,35,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,133,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,156,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,91,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,121,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,95,123,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,91,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,249,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,71,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,99,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,12,127,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,85,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,176,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,50,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,115,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,231,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,102,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,65,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,88,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,143,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,61,126,0,0,143,121,0,5,0,5,0,0,10,121,0,5,162,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,63,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,23,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,83,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,88,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,91,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,86,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,225,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,38,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,57,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,136,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,106,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,85,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,89,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,137,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,62,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,89,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,247,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,87,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,61,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,56,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,2,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,89,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,144,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,153,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,244,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,137,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,227,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,90,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,167,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,80,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,108,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,148,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,69,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,102,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,63,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,53,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,172,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,138,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,183,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,219,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,90,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,66,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,78,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,100,127,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,63,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,250,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,232,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,22,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,157,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,53,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,199,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,223,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,164,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,26,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,239,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,251,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,184,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,124,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,35,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,64,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,194,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,93,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,28,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,119,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,172,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,94,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,137,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,22,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,81,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,174,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,41,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,13,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,14,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,172,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,139,121,0,5,219,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,84,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,23,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,202,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,207,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,71,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,219,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,250,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,100,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,90,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,148,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,128,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,182,126,0,0,129,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,14,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,23,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,101,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,175,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,218,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,158,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,70,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,96,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,90,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,248,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,112,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,250,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,251,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,82,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,194,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,142,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,251,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,79,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,148,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,91,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,29,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,236,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,19,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,220,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,17,127,0,0,137,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,65,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,102,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,117,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,196,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,224,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,116,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,219,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,36,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,81,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,174,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,72,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,233,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,252,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,213,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,144,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,97,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,100,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,61,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,92,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,38,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,86,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,197,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,66,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,220,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,54,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,141,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,248,126,0,0,209,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,221,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,18,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,159,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,226,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,173,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,12,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,208,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,106,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,65,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,234,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,103,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,252,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,113,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,104,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,210,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,66,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,124,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,24,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,173,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,147,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,228,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,144,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,180,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,91,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,145,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,146,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,161,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,173,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,40,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,42,127,0,0,111,121,0,5,0,5,0,0,40,121,0,5,39,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,155,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,149,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,56,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,58,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,143,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,64,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,225,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,109,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,45,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,8,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,175,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,38,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,198,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,242,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,253,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,37,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,99,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,37,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,176,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,174,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,184,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,3,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,129,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,130,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,251,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,116,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,252,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,98,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,188,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,107,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,67,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,56,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,174,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,114,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,160,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,246,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,39,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,195,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,254,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,19,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,25,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,189,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,65,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,147,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,29,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,183,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,58,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,128,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,32,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,125,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,212,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,37,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,162,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,126,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,226,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,26,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,226,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,89,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,87,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,107,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,196,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,137,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,199,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,108,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,102,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,68,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,47,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,17,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,197,126,0,0,179,121,0,5,0,5,0,0,40,121,0,5,24,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,147,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,141,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,64,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,83,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,230,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,234,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,64,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,231,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,185,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,86,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,126,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,30,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,235,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,243,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,189,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,73,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,57,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,203,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,18,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,88,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,85,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,240,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,15,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,175,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,24,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,228,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,67,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,24,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,40,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,118,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,183,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,86,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,164,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,133,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,239,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,168,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,186,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,150,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,98,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,48,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,69,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,23,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,85,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,176,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,65,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,94,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,134,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,24,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,10,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,105,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,174,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,127,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,91,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,114,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,66,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,65,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,252,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,18,127,0,0,137,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,138,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,255,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,108,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,214,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,41,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,47,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,87,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,149,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,147,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,149,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,228,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,47,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,109,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,131,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,177,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,64,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,19,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,190,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,56,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,90,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,236,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,54,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,160,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,142,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,179,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,54,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,166,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,197,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,127,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,133,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,27,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,81,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,193,125,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,100,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,20,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,64,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,50,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,149,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,77,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,167,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,87,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,25,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,173,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,55,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,106,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,231,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,140,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,65,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,21,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,184,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,103,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,249,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,233,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,195,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,227,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,177,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,18,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,45,127,0,0,125,121,0,5,0,5,0,0,40,121,0,5,26,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,106,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,213,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,54,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,68,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,232,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,178,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,171,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,244,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,16,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,39,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,85,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,169,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,206,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,184,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,104,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,203,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,175,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,106,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,198,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,185,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,170,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,150,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,245,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,141,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,87,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,151,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,62,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,31,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,57,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,233,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,194,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,119,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,68,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,190,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,110,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,77,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,80,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,20,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,107,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,138,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,175,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,65,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,12,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,93,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,229,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,249,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,81,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,178,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,70,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,101,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,227,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,19,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,34,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,55,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,152,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,20,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,38,127,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,113,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,58,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,187,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,13,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,23,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,24,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,21,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,176,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,75,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,227,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,56,127,0,0,117,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,44,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,144,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,108,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,213,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,162,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,58,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,156,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,180,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,115,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,43,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,237,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,69,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,232,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,116,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,109,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,51,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,115,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,146,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,233,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,82,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,186,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,76,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,212,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,139,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,134,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,58,127,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,18,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,127,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,116,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,14,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,15,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,13,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,123,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,143,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,23,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,199,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,74,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,87,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,8,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,117,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,244,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,225,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,128,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,221,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,117,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,116,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,80,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,81,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,146,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,88,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,2,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,31,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,154,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,228,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,199,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,134,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,179,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,40,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,140,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,32,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,102,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,196,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,21,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,93,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,22,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,81,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,66,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,176,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,103,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,54,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,59,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,102,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,34,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,49,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,50,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,62,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,38,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,181,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,18,127,0,0,113,121,0,5,0,5,0,0,28,121,0,5,109,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,53,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,171,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,117,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,51,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,210,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,33,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,25,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,139,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,66,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,27,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,161,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,223,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,129,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,201,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,92,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,29,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,176,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,81,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,67,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,128,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,155,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,214,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,188,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,12,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,89,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,35,126,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,101,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,132,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,23,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,103,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,145,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,133,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,26,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,133,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,243,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,120,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,146,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,141,121,0,5,0,5,0,0,18,121,0,5,217,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,17,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,24,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,156,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,26,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,200,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,245,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,226,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,86,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,249,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,154,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,218,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,104,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,141,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,48,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,95,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,96,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,110,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,130,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,200,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,15,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,124,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,212,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,174,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,57,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,95,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,244,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,68,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,107,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,9,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,238,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,211,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,75,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,103,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,195,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,137,121,0,5,30,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,221,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,235,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,49,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,52,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,39,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,148,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,19,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,110,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,125,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,135,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,25,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,148,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,191,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,184,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,7,127,0,0,125,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,115,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,126,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,88,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,33,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,34,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,200,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,15,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,20,127,0,0,103,121,0,5,0,5,0,0,12,121,0,5,148,127,0,0,105,121,0,5,0,5,0,0,40,121,0,5,27,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,55,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,187,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,230,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,34,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,177,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,88,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,87,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,239,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,148,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,37,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,255,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,128,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,82,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,185,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,11,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,35,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,197,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,132,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,57,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,110,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,177,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,12,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,162,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,82,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,127,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,95,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,96,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,227,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,13,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,88,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,120,126,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,102,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,186,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,88,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,28,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,58,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,24,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,97,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,200,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,115,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,228,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,69,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,78,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,10,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,163,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,145,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,12,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,38,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,229,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,46,127,0,0,125,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,20,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,149,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,35,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,213,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,233,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,241,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,135,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,70,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,14,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,44,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,16,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,250,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,121,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,131,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,200,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,66,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,199,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,105,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,202,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,67,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,82,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,21,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,167,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,132,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,132,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,198,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,91,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,101,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,234,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,148,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,150,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,102,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,101,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,72,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,119,121,0,5,0,5,0,0,30,121,0,5,89,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,2,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,254,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,2,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,75,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,128,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,54,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,76,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,38,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,2,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,255,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,42,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,205,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,118,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,3,123,0,0,219,121,0,5,0,5,0,0,38,121,0,5,48,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,133,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,78,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,166,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,244,124,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,10,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,91,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,111,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,69,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,70,127,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,24,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,229,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,164,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,15,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,21,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,231,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,60,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,66,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,90,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,119,121,0,5,0,5,0,0,30,121,0,5,3,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,83,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,178,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,79,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,141,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,82,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,32,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,48,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,179,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,232,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,153,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,106,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,107,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,18,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,199,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,62,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,129,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,201,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,11,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,177,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,25,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,61,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,25,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,28,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,135,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,26,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,45,127,0,0,111,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,126,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,92,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,92,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,43,127,0,0,117,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,52,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,59,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,211,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,240,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,70,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,40,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,165,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,188,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,163,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,153,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,142,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,12,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,154,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,251,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,135,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,150,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,73,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,117,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,236,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,3,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,103,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,122,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,108,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,22,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,39,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,253,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,70,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,123,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,151,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,163,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,72,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,77,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,32,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,89,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,126,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,147,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,229,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,228,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,224,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,68,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,230,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,45,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,177,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,146,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,215,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,180,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,17,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,138,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,116,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,90,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,135,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,44,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,149,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,230,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,92,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,203,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,214,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,92,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,218,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,41,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,36,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,93,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,252,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,59,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,178,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,92,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,182,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,164,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,215,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,219,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,201,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,20,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,25,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,62,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,69,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,221,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,189,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,29,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,13,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,30,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,192,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,214,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,81,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,70,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,44,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,95,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,165,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,93,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,124,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,73,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,253,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,222,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,109,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,46,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,33,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,130,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,7,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,4,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,14,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,110,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,71,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,208,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,203,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,91,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,27,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,52,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,200,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,209,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,40,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,3,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,38,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,41,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,5,125,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,109,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,151,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,87,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,14,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,91,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,67,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,135,121,0,5,0,5,0,0,18,121,0,5,117,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,149,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,165,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,4,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,66,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,60,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,38,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,13,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,86,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,71,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,71,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,22,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,136,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,232,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,6,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,84,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,14,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,181,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,131,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,98,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,124,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,40,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,118,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,157,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,4,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,63,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,129,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,168,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,15,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,5,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,150,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,81,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,29,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,175,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,215,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,193,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,97,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,175,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,245,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,129,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,111,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,201,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,69,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,51,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,137,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,182,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,77,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,92,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,62,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,67,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,6,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,9,127,0,0,185,121,0,5,0,5,0,0,6,121,0,5,94,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,246,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,72,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,106,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,85,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,143,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,94,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,122,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,204,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,117,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,7,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,30,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,133,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,212,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,64,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,19,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,23,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,30,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,82,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,36,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,71,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,102,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,138,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,202,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,52,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,82,127,0,0,137,121,0,5,0,5,0,0,16,121,0,5,118,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,169,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,53,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,22,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,39,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,124,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,170,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,112,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,158,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,19,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,72,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,41,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,237,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,182,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,238,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,139,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,31,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,222,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,170,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,36,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,192,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,3,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,40,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,47,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,139,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,72,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,204,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,250,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,23,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,41,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,39,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,123,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,144,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,59,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,37,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,63,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,234,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,103,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,83,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,42,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,99,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,224,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,81,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,62,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,213,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,119,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,247,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,20,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,248,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,151,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,37,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,127,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,133,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,58,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,53,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,104,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,233,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,42,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,43,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,95,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,24,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,99,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,37,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,103,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,119,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,100,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,86,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,39,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,5,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,196,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,60,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,93,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,118,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,42,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,31,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,246,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,195,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,162,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,99,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,234,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,14,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,24,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,64,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,190,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,122,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,123,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,63,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,22,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,76,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,201,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,237,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,64,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,32,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,104,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,56,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,225,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,98,127,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,8,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,252,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,202,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,244,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,250,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,131,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,120,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,241,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,110,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,63,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,183,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,69,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,64,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,234,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,201,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,222,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,65,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,180,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,10,127,0,0,185,121,0,5,0,5,0,0,28,121,0,5,117,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,231,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,121,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,24,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,233,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,93,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,125,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,111,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,232,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,96,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,80,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,33,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,25,127,0,0,103,121,0,5,0,5,0,0,38,121,0,5,8,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,140,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,177,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,190,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,65,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,149,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,131,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,229,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,202,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,141,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,166,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,71,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,52,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,171,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,216,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,26,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,29,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,26,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,16,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,43,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,152,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,172,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,94,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,149,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,96,127,0,0,129,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,103,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,46,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,88,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,70,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,145,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,10,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,172,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,247,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,65,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,235,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,20,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,68,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,135,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,95,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,20,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,191,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,118,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,67,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,228,123,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,92,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,134,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,87,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,173,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,18,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,200,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,18,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,49,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,172,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,113,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,202,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,17,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,202,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,233,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,142,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,72,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,146,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,38,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,21,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,31,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,11,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,35,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,159,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,203,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,63,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,73,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,19,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,119,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,192,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,101,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,68,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,215,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,65,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,228,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,28,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,44,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,197,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,43,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,15,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,27,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,246,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,231,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,143,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,184,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,82,127,0,0,209,121,0,5,0,5,0,0,38,121,0,5,2,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,153,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,203,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,18,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,83,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,193,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,44,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,69,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,105,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,134,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,134,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,246,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,8,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,204,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,59,127,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,9,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,119,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,174,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,9,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,39,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,166,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,167,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,82,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,130,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,148,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,41,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,226,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,56,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,58,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,102,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,251,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,42,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,161,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,100,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,66,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,67,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,73,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,99,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,17,127,0,0,119,121,0,5,0,5,0,0,24,121,0,5,40,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,18,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,193,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,68,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,191,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,128,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,234,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,26,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,134,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,155,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,74,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,3,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,93,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,23,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,73,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,112,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,75,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,213,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,226,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,19,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,107,121,0,5,90,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,14,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,125,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,120,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,21,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,86,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,13,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,222,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,119,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,14,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,23,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,8,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,43,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,9,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,147,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,193,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,201,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,160,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,120,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,53,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,22,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,103,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,37,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,22,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,62,127,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,111,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,86,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,97,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,176,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,110,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,179,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,89,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,203,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,18,127,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,220,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,208,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,65,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,138,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,247,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,74,127,0,0,111,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,41,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,41,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,101,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,59,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,93,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,88,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,46,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,54,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,107,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,214,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,154,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,150,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,44,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,8,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,124,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,205,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,105,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,154,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,139,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,174,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,89,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,204,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,66,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,40,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,194,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,19,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,121,121,0,5,0,5,0,0,30,121,0,5,180,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,183,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,155,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,19,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,195,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,179,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,45,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,103,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,173,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,53,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,47,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,69,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,30,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,204,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,75,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,193,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,216,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,147,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,181,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,229,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,194,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,126,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,187,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,74,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,156,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,253,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,46,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,95,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,67,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,41,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,96,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,36,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,163,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,48,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,104,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,87,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,189,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,242,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,98,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,234,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,126,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,248,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,2,127,0,0,121,121,0,5,0,5,0,0,12,121,0,5,175,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,10,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,57,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,140,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,92,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,98,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,99,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,9,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,223,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,239,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,244,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,47,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,171,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,78,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,183,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,139,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,93,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,28,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,185,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,236,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,96,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,118,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,220,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,253,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,234,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,205,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,217,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,143,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,235,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,125,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,131,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,215,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,206,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,172,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,245,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,95,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,79,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,142,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,42,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,15,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,227,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,83,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,24,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,74,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,157,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,168,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,240,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,157,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,205,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,132,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,68,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,33,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,10,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,11,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,216,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,68,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,16,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,83,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,84,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,70,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,15,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,108,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,107,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,133,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,239,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,43,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,25,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,164,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,82,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,235,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,194,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,15,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,99,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,113,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,155,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,176,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,81,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,246,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,186,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,2,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,177,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,72,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,73,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,254,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,134,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,139,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,205,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,103,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,203,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,69,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,142,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,188,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,140,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,120,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,195,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,135,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,109,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,128,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,22,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,221,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,86,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,143,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,73,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,16,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,192,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,193,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,40,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,152,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,161,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,144,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,21,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,10,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,162,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,253,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,112,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,254,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,44,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,232,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,148,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,112,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,9,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,11,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,80,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,204,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,148,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,74,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,34,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,177,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,58,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,73,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,104,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,203,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,237,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,101,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,19,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,94,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,223,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,238,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,206,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,55,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,176,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,223,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,5,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,15,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,121,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,58,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,150,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,196,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,45,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,134,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,83,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,229,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,57,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,40,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,114,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,214,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,197,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,198,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,236,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,73,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,155,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,75,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,81,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,20,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,21,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,20,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,74,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,25,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,162,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,91,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,149,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,113,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,16,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,243,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,12,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,72,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,198,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,149,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,199,126,0,0,129,121,0,5,0,5,0,0,26,121,0,5,0,5,0,0,103,121,0,5,48,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,165,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,33,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,207,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,57,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,15,127,0,0,143,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,74,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,122,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,123,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,166,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,156,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,39,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,230,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,90,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,16,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,178,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,4,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,69,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,200,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,41,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,47,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,239,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,129,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,89,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,63,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,207,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,56,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,90,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,211,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,235,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,132,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,236,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,17,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,61,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,101,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,235,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,120,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,145,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,245,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,58,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,91,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,77,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,65,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,151,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,48,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,70,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,105,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,49,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,181,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,167,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,19,127,0,0,119,121,0,5,0,5,0,0,18,121,0,5,230,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,173,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,106,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,54,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,136,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,104,126,0,0,185,121,0,5,0,5,0,0,10,121,0,5,54,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,137,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,242,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,22,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,193,126,0,0,119,121,0,5,0,5,0,0,40,121,0,5,42,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,47,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,92,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,42,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,100,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,48,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,27,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,21,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,90,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,49,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,230,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,93,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,194,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,208,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,4,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,64,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,166,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,23,127,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,163,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,190,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,140,127,0,0,211,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,75,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,135,121,0,5,0,5,0,0,12,121,0,5,177,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,202,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,24,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,5,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,203,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,204,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,184,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,2,127,0,0,113,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,95,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,237,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,20,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,247,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,231,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,40,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,50,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,96,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,65,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,157,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,201,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,194,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,72,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,135,127,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,70,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,255,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,112,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,34,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,121,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,92,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,135,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,130,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,38,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,97,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,152,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,97,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,7,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,94,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,27,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,3,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,113,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,127,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,249,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,11,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,208,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,107,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,93,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,204,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,140,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,70,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,45,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,101,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,244,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,71,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,42,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,18,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,134,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,83,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,166,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,74,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,68,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,87,127,0,0,211,121,0,5,0,5,0,0,38,121,0,5,3,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,4,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,205,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,26,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,224,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,206,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,75,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,76,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,142,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,168,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,83,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,38,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,173,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,97,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,108,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,174,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,90,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,19,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,23,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,96,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,113,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,175,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,69,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,42,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,185,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,31,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,39,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,106,127,0,0,127,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,41,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,16,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,70,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,195,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,30,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,114,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,43,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,26,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,72,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,196,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,132,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,153,126,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,78,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,4,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,43,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,109,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,217,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,218,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,25,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,197,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,225,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,94,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,196,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,206,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,141,121,0,5,0,5,0,0,6,121,0,5,98,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,20,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,199,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,195,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,42,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,121,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,202,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,55,127,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,43,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,153,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,124,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,29,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,212,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,111,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,75,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,150,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,10,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,158,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,97,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,179,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,9,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,206,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,117,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,89,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,69,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,202,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,156,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,26,127,0,0,103,121,0,5,0,5,0,0,38,121,0,5,10,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,12,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,203,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,6,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,11,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,21,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,186,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,72,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,165,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,131,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,184,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,2,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,82,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,54,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,13,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,145,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,95,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,78,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,238,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,22,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,197,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,135,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,99,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,100,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,209,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,67,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,143,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,94,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,210,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,224,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,72,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,149,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,217,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,21,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,221,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,236,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,205,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,237,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,144,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,157,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,60,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,228,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,120,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,131,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,107,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,237,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,98,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,217,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,27,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,101,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,60,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,125,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,87,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,73,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,211,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,185,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,87,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,60,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,203,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,167,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,135,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,245,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,189,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,245,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,110,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,106,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,102,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,95,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,215,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,191,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,57,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,58,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,19,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,158,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,75,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,166,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,110,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,5,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,136,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,248,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,194,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,207,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,60,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,204,126,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,11,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,20,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,104,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,64,127,0,0,127,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,9,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,207,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,196,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,111,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,88,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,141,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,17,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,125,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,17,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,216,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,159,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,120,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,42,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,23,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,49,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,125,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,29,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,213,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,122,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,204,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,121,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,246,125,0,0,219,121,0,5,0,5,0,0,38,121,0,5,22,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,88,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,57,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,32,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,39,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,96,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,190,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,94,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,3,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,45,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,28,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,108,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,207,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,43,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,118,127,0,0,219,121,0,5,0,5,0,0,40,121,0,5,44,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,16,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,205,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,152,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,182,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,178,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,99,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,4,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,32,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,254,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,24,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,12,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,125,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,82,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,206,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,137,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,26,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,240,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,255,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,212,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,143,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,212,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,44,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,198,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,149,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,196,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,169,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,27,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,222,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,215,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,111,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,22,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,136,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,223,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,150,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,101,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,13,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,158,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,174,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,20,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,55,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,89,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,49,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,66,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,98,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,115,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,180,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,105,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,23,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,74,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,205,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,20,127,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,42,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,62,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,58,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,136,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,4,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,126,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,203,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,221,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,28,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,116,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,127,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,71,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,62,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,134,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,155,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,7,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,183,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,163,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,218,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,25,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,190,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,156,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,167,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,26,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,23,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,96,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,191,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,195,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,197,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,30,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,27,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,241,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,50,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,64,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,97,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,180,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,36,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,46,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,208,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,98,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,159,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,46,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,103,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,199,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,35,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,61,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,70,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,21,127,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,83,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,142,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,122,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,150,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,112,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,5,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,137,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,31,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,168,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,209,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,9,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,123,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,106,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,100,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,111,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,230,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,141,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,28,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,245,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,142,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,112,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,102,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,231,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,187,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,133,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,216,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,29,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,206,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,40,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,179,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,54,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,50,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,174,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,214,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,219,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,220,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,41,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,48,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,69,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,30,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,63,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,138,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,187,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,55,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,151,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,21,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,29,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,58,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,119,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,201,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,10,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,154,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,231,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,11,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,123,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,22,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,57,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,192,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,67,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,144,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,219,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,48,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,184,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,91,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,213,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,197,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,24,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,151,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,51,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,167,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,246,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,196,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,212,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,49,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,58,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,94,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,30,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,238,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,83,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,56,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,84,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,169,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,84,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,40,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,41,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,136,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,168,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,104,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,93,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,11,127,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,167,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,127,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,100,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,192,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,15,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,143,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,24,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,13,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,127,121,0,5,61,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,76,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,233,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,127,121,0,5,62,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,54,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,85,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,160,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,12,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,242,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,31,127,0,0,137,121,0,0,0,0,5,5,42,121,5,70,103,121,5,5,6,121,5,5,119,121,5,70,221,121,5,5,42,121,5,5,121,121,5,103,185,121,5,5,28,121,5,101,117,121,5,5,30,121,5,123,143,121,5,5,42,121,5,70,119,121,5,5,40,121,5,5,143,121,5,111,211,121,5,5,28,121,5,70,107,121,5,5,28,121,5,80,137,121,5,5,28,121,5,70,115,121,5,5,42,121,5,71,119,121,5,5,42,121,5,70,105,121,5,5,38,121,5,122,103,121,5,5,42,121,5,5,139,121,5,80,193,121,5,5,42,121,5,70,137,121,5,5,30,121,5,85,111,121,5,5,28,121,5,97,135,121,5,5,30,121,5,86,111,121,5,5,30,121,5,91,121,121,5,5,42,121,5,71,103,121,5,5,40,121,5,5,143,121,5,120,193,121,5,5,28,121,5,71,115,121,5,5,40,121,5,99,105,121,5,5,42,121,5,90,125,121,5,5,6,121,5,92,133,121,5,5,34,121,5,81,143,121,5,5,28,121,5,81,137,121,5,5,28,121,5,101,141,121,5,5,42,121,5,70,129,121,5,5,34,121,5,5,143,121,5,111,209,121,5,5,16,121,5,84,115,121,5,5,42,121,5,5,115,121,5,78,211,121,5,5,42,121,5,84,121,121,5,5,40,121,5,91,127,121,5,5,42,121,5,71,129,121,5,5,28,121,5,102,141,121,5,5,34,121,5,82,143,121,5,5,28,121,5,102,117,121,5,5,38,121,5,5,103,121,5,121,179,121,5,5,28,121,5,73,123,121,5,5,28,121,5,71,107,121,5,5,28,121,5,98,135,121,5,5,28,121,5,123,125,121,5,5,42,121,5,71,105,121,5,5,40,121,5,5,143,121,5,113,211,121,5,5,38,121,5,94,129,121,5,5,42,121,5,79,117,121,5,5,42,121,5,83,127,121,5,5,38,121,5,5,103,121,5,117,211,121,5,5,34,121,5,106,125,121,5,5,40,121,5,105,127,121,5,5,42,121,5,70,141,121,5,5,28,121,5,99,135,121,5,5,28,121,5,118,127,121,5,5,28,121,5,103,141,121,5,5,28,121,5,82,137,121,5,5,30,121,5,113,113,121,5,5,28,121,5,120,141,121,5,5,16,121,5,102,115,121,5,5,42,121,5,111,119,121,5,5,30,121,5,87,111,121,5,5,16,121,5,85,115,121,5,5,42,121,5,5,137,121,5,71,219,121,5,5,38,121,5,115,105,121,5,5,28,121,5,83,137,121,5,5,42,121,5,70,117,121,5,5,28,121,5,126,137,121,5,5,34,121,5,94,135,121,5,5,42,121,5,112,119,121,5,5,28,121,5,72,107,121,5,5,34,121,5,76,111,121,5,5,28,121,5,121,141,121,5,5,42,121,5,71,141,121,5,5,6,121,5,93,133,121,5,5,42,121,5,5,121,121,5,85,219,121,5,5,42,121,5,5,137,121,5,72,219,121,5,5,28,121,5,119,127,121,5,5,42,121,5,5,103,121,5,80,209,121,5,5,28,121,5,103,117,121,5,5,30,121,5,90,113,121,5,5,24,121,5,78,123,121,5,5,34,121,5,70,113,121,5,5,30,121,5,96,121,121,5,5,42,121,5,5,103,121,5,107,193,121,5,5,40,121,5,92,127,121,5,5,6,121,5,94,133,121,5,5,42,121,5,5,125,121,5,71,179,121,5,5,30,121,5,91,113,121,5,5,28,121,5,122,141,121,5,5,42,121,5,5,105,121,5,94,179,121,5,5,42,121,5,5,129,121,5,87,185,121,5,5,40,121,5,106,127,121,5,5,42,121,5,5,129,121,5,88,185,121,5,5,16,121,5,86,115,121,5,5,42,121,5,5,137,121,5,73,219,121,5,5,42,121,5,5,103,121,5,104,211,121,5,5,42,121,5,70,121,121,5,5,42,121,5,5,115,121,5,90,211,121,5,5,42,121,5,70,125,121,5,5,6,121,5,95,133,121,5,5,40,121,5,5,143,121,5,110,193,121,5,5,42,121,5,70,133,121,5,5,38,121,5,5,103,121,5,122,179,121,5,5,42,121,5,5,115,121,5,79,211,121,5,5,6,121,5,85,123,121,5,5,34,121,5,105,143,121,5,5,28,121,5,100,135,121,5,5,42,121,5,5,137,121,5,88,193,121,5,5,42,121,5,72,129,121,5,5,42,121,5,72,103,121,5,5,16,121,5,103,115,121,5,5,34,121,5,80,135,121,5,5,28,121,5,104,117,121,5,5,30,121,5,124,143,121,5,5,38,121,5,116,105,121,5,5,40,121,5,108,103,121,5,5,42,121,5,5,115,121,5,91,211,121,5,5,42,121,5,5,139,121,5,76,193,121,5,5,42,121,5,5,103,121,5,97,211,121,5,5,42,121,5,73,129,121,5,5,40,121,5,87,117,121,5,5,42,121,5,5,103,121,5,81,209,121,5,5,42,121,5,5,139,121,5,70,211,121,5,5,34,121,5,81,135,121,5,5,42,121,5,74,129,121,5,5,42,121,5,83,129,121,5,5,42,121,5,84,103,121,5,5,16,121,5,87,115,121,5,5,42,121,5,72,119,121,5,5,30,121,5,88,111,121,5,5,40,121,5,5,143,121,5,121,193,121,5,5,42,121,5,71,121,121,5,5,42,121,5,88,105,121,5,5,38,121,5,123,103,121,5,5,42,121,5,90,141,121,5,5,30,121,5,125,143,121,5,5,42,121,5,72,105,121,5,5,42,121,5,5,103,121,5,82,209,121,5,5,42,121,5,75,137,121,5,5,6,121,5,88,123,121,5,5,40,121,5,5,129,121,5,97,209,121,5,5,42,121,5,5,119,121,5,116,219,121,5,5,34,121,5,106,143,121,5,5,28,121,5,108,121,121,5,5,42,121,5,5,103,121,5,98,211,121,5,5,42,121,5,70,127,121,5,5,40,121,5,100,105,121,5,5,42,121,5,91,141,121,5,5,28,121,5,84,137,121,5,5,16,121,5,104,115,121,5,5,38,121,5,124,103,121,5,5,38,121,5,5,103,121,5,123,179,121,5,5,42,121,5,5,103,121,5,83,209,121,5,5,30,121,5,92,113,121,5,5,42,121,5,75,129,121,5,5,42,121,5,5,103,121,5,84,209,121,5,5,42,121,5,71,133,121,5,5,42,121,5,5,121,121,5,104,185,121,5,5,42,121,5,72,141,121,5,5,28,121,5,122,135,121,5,5,42,121,5,84,129,121,5,5,42,121,5,5,121,121,5,109,219,121,5,5,42,121,5,5,131,121,5,80,185,121,5,5,28,121,5,85,137,121,5,5,42,121,5,76,129,121,5,5,42,121,5,5,103,121,5,105,211,121,5,5,34,121,5,83,143,121,5,5,38,121,5,5,103,121,5,108,209,121,5,5,40,121,5,107,127,121,5,5,42,121,5,80,117,121,5,5,42,121,5,85,121,121,5,5,34,121,5,109,125,121,5,5,34,121,5,82,135,121,5,5,42,121,5,113,119,121,5,5,42,121,5,92,141,121,5,5,42,121,5,5,139,121,5,74,211,121,5,5,42,121,5,70,111,121,5,5,42,121,5,73,141,121,5,5,36,121,5,71,123,121,5,5,42,121,5,5,125,121,5,73,179,121,5,5,42,121,5,71,127,121,5,5,42,121,5,85,103,121,5,5,34,121,5,79,113,121,5,5,42,121,5,84,127,121,5,5,28,121,5,121,117,121,5,5,42,121,5,74,141,121,5,5,42,121,5,71,125,121,5,5,42,121,5,5,119,121,5,99,193,121,5,5,28,121,5,109,121,121,5,5,28,121,5,101,135,121,5,5,30,121,5,92,121,121,5,5,40,121,5,92,103,121,5,5,38,121,5,5,103,121,5,124,179,121,5,5,42,121,5,73,105,121,5,5,42,121,5,85,129,121,5,5,42,121,5,5,115,121,5,92,211,121,5,5,28,121,5,80,107,121,5,5,38,121,5,99,125,121,5,5,34,121,5,5,111,121,5,121,211,121,5,5,42,121,5,86,129,121,5,5,30,121,5,93,113,121,5,5,28,121,5,120,127,121,5,5,38,121,5,5,103,121,5,118,211,121,5,5,38,121,5,5,103,121,5,114,211,121,5,5,42,121,5,5,129,121,5,89,185,121,5,5,34,121,5,103,129,121,5,5,42,121,5,71,111,121,5,5,38,121,5,125,103,121,5,5,42,121,5,5,129,121,5,90,185,121,5,5,42,121,5,5,103,121,5,98,179,121,5,5,42,121,5,73,119,121,5,5,42,121,5,74,119,121,5,5,42,121,5,73,103,121,5,5,28,121,5,118,125,121,5,5,28,121,5,73,107,121,5,5,38,121,5,117,105,121,5,5,36,121,5,72,123,121,5,5,28,121,5,121,127,121,5,5,42,121,5,5,115,121,5,80,211,121,5,5,42,121,5,5,121,121,5,105,185,121,5,5,42,121,5,5,115,121,5,86,179,121,5,5,38,121,5,95,129,121,5,5,42,121,5,74,105,121,5,5,10,121,5,113,115,121,5,5,42,121,5,75,119,121,5,5,28,121,5,72,115,121,5,5,40,121,5,109,103,121,5,5,38,121,5,100,129,121,5,5,28,121,5,122,127,121,5,5,38,121,5,96,129,121,5,5,34,121,5,77,111,121,5,5,34,121,5,5,111,121,5,122,211,121,5,5,30,121,5,89,111,121,5,5,28,121,5,102,135,121,5,5,28,121,5,123,127,121,5,5,42,121,5,75,141,121,5,5,28,121,5,103,135,121,5,5,28,121,5,74,123,121,5,5,30,121,5,114,113,121,5,5,34,121,5,83,135,121,5,5,40,121,5,93,103,121,5,5,28,121,5,110,121,121,5,5,42,121,5,86,121,121,5,5,42,121,5,5,121,121,5,110,219,121,5,5,28,121,5,77,123,121,5,5,42,121,5,5,115,121,5,74,209,121,5,5,40,121,5,108,127,121,5,5,28,121,5,122,117,121,5,5,42,121,5,114,119,121,5,5,42,121,5,115,119,121,5,5,42,121,5,72,121,121,5,5,42,121,5,76,141,121,5,5,40,121,5,88,117,121,5,5,42,121,5,5,115,121,5,100,193,121,5,5,40,121,5,110,105,121,5,5,42,121,5,72,127,121,5,5,42,121,5,75,105,121,5,5,42,121,5,5,103,121,5,99,179,121,5,5,28,121,5,86,137,121,5,5,30,121,5,113,111,121,5,5,42,121,5,5,125,121,5,79,219,121,5,5,28,121,5,104,141,121,5,5,28,121,5,87,137,121,5,5,42,121,5,5,121,121,5,106,185,121,5,5,42,121,5,76,105,121,5,5,34,121,5,5,143,121,5,120,209,121,5,5,34,121,5,107,143,121,5,5,6,121,5,117,121,121,5,5,34,121,5,5,143,121,5,112,209,121,5,5,28,121,5,124,127,121,5,5,42,121,5,81,117,121,5,5,42,121,5,5,121,121,5,120,185,121,5,5,28,121,5,104,135,121,5,5,34,121,5,84,135,121,5,5,42,121,5,5,139,121,5,77,193,121,5,5,42,121,5,86,103,121,5,5,40,121,5,110,103,121,5,5,30,121,5,114,111,121,5,5,42,121,5,76,119,121,5,5,34,121,5,84,143,121,5,5,42,121,5,5,115,121,5,81,211,121,5,5,34,121,5,107,125,121,5,5,42,121,5,85,127,121,5,5,28,121,5,124,125,121,5,5,28,121,5,125,125,121,5,5,28,121,5,119,125,121,5,5,28,121,5,125,127,121,5,5,42,121,5,5,111,121,5,77,209,121,5,5,42,121,5,89,105,121,5,5,28,121,5,123,141,121,5,5,28,121,5,120,125,121,5,5,30,121,5,93,121,121,5,5,40,121,5,94,103,121,5,5,34,121,5,108,143,121,5,5,42,121,5,77,141,121,5,5,34,121,5,5,111,121,5,123,211,121,5,5,30,121,5,94,113,121,5,5,42,121,5,77,129,121,5,5,28,121,5,123,135,121,5,5,40,121,5,5,119,121,5,110,179,121,5,5,42,121,5,5,121,121,5,86,219,121,5,5,34,121,5,85,143,121,5,5,40,121,5,89,117,121,5,5,42,121,5,5,121,121,5,107,185,121,5,5,28,121,5,88,137,121,5,5,28,121,5,89,137,121,5,5,30,121,5,90,111,121,5,5,30,121,5,94,121,121,5,5,28,121,5,90,137,121,5,5,42,121,5,74,103,121,5,5,42,121,5,5,139,121,5,73,209,121,5,5,40,121,5,90,117,121,5,5,42,121,5,90,105,121,5,5,16,121,5,88,115,121,5,5,42,121,5,72,125,121,5,5,42,121,5,5,115,121,5,90,179,121,5,5,40,121,5,91,117,121,5,5,42,121,5,5,119,121,5,117,219,121,5,5,30,121,5,95,113,121,5,5,42,121,5,77,119,121,5,5,40,121,5,5,143,121,5,111,193,121,5,5,42,121,5,71,117,121,5,5,34,121,5,80,113,121,5,5,42,121,5,70,135,121,5,5,40,121,5,93,127,121,5,5,40,121,5,70,143,121,5,5,42,121,5,5,139,121,5,74,185,121,5,5,42,121,5,73,125,121,5,5,42,121,5,78,129,121,5,5,42,121,5,5,121,121,5,87,219,121,5,5,42,121,5,82,117,121,5,5,42,121,5,71,135,121,5,5,40,121,5,5,143,121,5,112,193,121,5,5,38,121,5,5,103,121,5,109,209,121,5,5,38,121,5,5,139,121,5,118,179,121,5,5,36,121,5,70,123,121,5,5,34,121,5,5,143,121,5,121,209,121,5,5,42,121,5,5,139,121,5,75,185,121,5,5,42,121,5,5,119,121,5,96,193,121,5,5,40,121,5,111,103,121,5,5,42,121,5,116,119,121,5,5,38,121,5,118,105,121,5,5,42,121,5,5,121,121,5,111,219,121,5,5,42,121,5,5,115,121,5,93,211,121,5,5,42,121,5,5,121,121,5,88,219,121,5,5,42,121,5,5,137,121,5,76,219,121,5,5,42,121,5,74,125,121,5,5,42,121,5,5,137,121,5,85,193,121,5,5,34,121,5,86,143,121,5,5,42,121,5,5,139,121,5,71,211,121,5,5,30,121,5,96,113,121,5,5,42,121,5,5,115,121,5,94,211,121,5,5,42,121,5,75,125,121,5,5,42,121,5,93,141,121,5,5,40,121,5,101,105,121,5,5,28,121,5,91,137,121,5,5,42,121,5,5,121,121,5,108,185,121,5,5,34,121,5,77,133,121,5,5,34,121,5,78,111,121,5,5,42,121,5,5,119,121,5,83,179,121,5,5,42,121,5,5,119,121,5,97,193,121,5,5,28,121,5,92,137,121,5,5,42,121,5,72,117,121,5,5,24,121,5,82,123,121,5,5,34,121,5,81,133,121,5,5,42,121,5,5,121,121,5,89,219,121,5,5,28,121,5,74,107,121,5,5,28,121,5,93,137,121,5,5,28,121,5,94,137,121,5,5,40,121,5,5,107,121,5,115,179,121,5,5,28,121,5,105,141,121,5,5,42,121,5,5,115,121,5,95,211,121,5,5,42,121,5,5,121,121,5,90,219,121,5,5,38,121,5,119,105,121,5,5,42,121,5,5,121,121,5,91,219,121,5,5,40,121,5,94,127,121,5,5,38,121,5,5,139,121,5,116,179,121,5,5,42,121,5,73,117,121,5,5,16,121,5,89,115,121,5,5,28,121,5,105,135,121,5,5,6,121,5,96,133,121,5,5,42,121,5,79,141,121,5,5,42,121,5,78,141,121,5,5,42,121,5,77,105,121,5,5,42,121,5,87,103,121,5,5,42,121,5,76,125,121,5,5,42,121,5,5,121,121,5,121,185,121,5,5,28,121,5,106,141,121,5,5,6,121,5,118,121,121,5,5,42,121,5,5,119,121,5,84,179,121,5,5,42,121,5,80,141,121,5,5,42,121,5,94,141,121,5,5,42,121,5,78,119,121,5,5,16,121,5,90,115,121,5,5,42,121,5,79,119,121,5,5,40,121,5,95,103,121,5,5,38,121,5,97,129,121,5,5,40,121,5,71,143,121,5,5,30,121,5,91,111,121,5,5,34,121,5,104,129,121,5,5,28,121,5,126,127,121,5,5,28,121,5,123,117,121,5,5,6,121,5,89,123,121,5,5,30,121,5,95,121,121,5,5,42,121,5,5,115,121,5,82,211,121,5,5,34,121,5,5,111,121,5,124,211,121,5,5,42,121,5,5,139,121,5,76,185,121,5,5,6,121,5,86,123,121,5,5,28,121,5,124,117,121,5,5,38,121,5,5,103,121,5,104,209,121,5,5,34,121,5,105,129,121,5,5,28,121,5,95,137,121,5,5,30,121,5,97,113,121,5,5,42,121,5,5,121,121,5,109,185,121,5,5,34,121,5,82,133,121,5,5,42,121,5,72,135,121,5,5,28,121,5,75,107,121,5,5,38,121,5,5,103,121,5,119,211,121,5,5,38,121,5,5,103,121,5,115,211,121,5,5,42,121,5,71,137,121,5,5,34,121,5,110,125,121,5,5,40,121,5,109,127,121,5,5,6,121,5,97,133,121,5,5,42,121,5,78,135,121,5,5,40,121,5,96,103,121,5,5,38,121,5,5,105,121,5,119,179,121,5,5,42,121,5,76,137,121,5,5,30,121,5,115,113,121,5,5,28,121,5,107,141,121,5,5,42,121,5,87,121,121,5,5,42,121,5,5,121,121,5,74,179,121,5,5,40,121,5,97,103,121,5,5,38,121,5,75,111,121,5,5,42,121,5,5,121,121,5,75,179,121,5,5,28,121,5,96,137,121,5,5,42,121,5,73,127,121,5,5,40,121,5,102,105,121,5,5,40,121,5,97,117,121,5,5,40,121,5,92,117,121,5,5,42,121,5,74,127,121,5,5,16,121,5,91,115,121,5,5,40,121,5,111,105,121,5,5,42,121,5,80,119,121,5,5,42,121,5,5,139,121,5,70,185,121,5,5,42,121,5,75,103,121,5,5,42,121,5,5,121,121,5,92,219,121,5,5,42,121,5,5,121,121,5,93,219,121,5,5,42,121,5,81,141,121,5,5,42,121,5,5,121,121,5,111,185,121,5,5,42,121,5,77,125,121,5,5,42,121,5,81,119,121,5,5,42,121,5,5,131,121,5,81,185,121,5,5,42,121,5,5,129,121,5,96,185,121,5,5,42,121,5,73,135,121,5,5,28,121,5,106,135,121,5,5,42,121,5,74,117,121,5,5,40,121,5,5,119,121,5,111,179,121,5,5,42,121,5,95,141,121,5,5,42,121,5,75,127,121,5,5,42,121,5,5,129,121,5,97,185,121,5,5,40,121,5,5,119,121,5,112,179,121,5,5,42,121,5,82,141,121,5,5,24,121,5,83,123,121,5,5,28,121,5,105,117,121,5,5,34,121,5,71,113,121,5,5,34,121,5,108,125,121,5,5,42,121,5,78,125,121,5,5,28,121,5,97,137,121,5,5,6,121,5,86,133,121,5,5,42,121,5,79,129,121,5,5,40,121,5,95,127,121,5,5,30,121,5,92,111,121,5,5,40,121,5,98,103,121,5,5,30,121,5,115,111,121,5,5,34,121,5,5,143,121,5,113,209,121,5,5,28,121,5,125,117,121,5,5,28,121,5,111,121,121,5,5,6,121,5,119,121,121,5,5,28,121,5,98,137,121,5,5,42,121,5,5,103,121,5,106,211,121,5,5,28,121,5,99,137,121,5,5,30,121,5,116,111,121,5,5,42,121,5,91,125,121,5,5,42,121,5,5,105,121,5,95,179,121,5,5,42,121,5,5,121,121,5,112,185,121,5,5,34,121,5,87,143,121,5,5,42,121,5,76,127,121,5,5,16,121,5,105,115,121,5,5,30,121,5,98,113,121,5,5,34,121,5,81,113,121,5,5,28,121,5,108,141,121,5,5,34,121,5,106,129,121,5,5,28,121,5,76,107,121,5,5,34,121,5,5,143,121,5,122,209,121,5,5,28,121,5,100,137,121,5,5,28,121,5,101,137,121,5,5,30,121,5,93,111,121,5,5,42,121,5,78,105,121,5,5,34,121,5,107,129,121,5,5,42,121,5,5,121,121,5,94,219,121,5,5,34,121,5,111,125,121,5,5,38,121,5,5,103,121,5,116,211,121,5,5,42,121,5,5,103,121,5,107,211,121,5,5,38,121,5,100,125,121,5,5,42,121,5,83,117,121,5,5,30,121,5,94,111,121,5,5,40,121,5,96,127,121,5,5,34,121,5,108,129,121,5,5,42,121,5,73,121,121,5,5,6,121,5,98,133,121,5,5,34,121,5,95,135,121,5,5,42,121,5,5,125,121,5,80,219,121,5,5,42,121,5,79,125,121,5,5,42,121,5,5,103,121,5,85,209,121,5,5,6,121,5,87,133,121,5,5,16,121,5,92,115,121,5,5,42,121,5,5,139,121,5,70,209,121,5,5,42,121,5,5,139,121,5,71,185,121,5,5,42,121,5,91,105,121,5,5,42,121,5,96,141,121,5,5,28,121,5,124,141,121,5,5,42,121,5,5,129,121,5,89,193,121,5,5,42,121,5,5,139,121,5,71,209,121,5,5,42,121,5,5,139,121,5,72,209,121,5,5,42,121,5,5,111,121,5,106,193,121,5,5,42,121,5,74,111,121,5,5,42,121,5,5,139,121,5,75,211,121,5,5,28,121,5,73,115,121,5,5,42,121,5,5,121,121,5,110,185,121,5,5,28,121,5,75,123,121,5,5,38,121,5,120,105,121,5,5,40,121,5,110,127,121,5,5,34,121,5,82,113,121,5,5,42,121,5,86,127,121,5,5,42,121,5,72,133,121,5,5,28,121,5,109,141,121,5,5,42,121,5,82,119,121,5,5,34,121,5,96,135,121,5,5,30,121,5,117,111,121,5,5,6,121,5,99,133,121,5,5,42,121,5,5,139,121,5,81,193,121,5,5,28,121,5,74,115,121,5,5,42,121,5,5,119,121,5,118,219,121,5,5,28,121,5,106,117,121,5,5,38,121,5,121,105,121,5,5,34,121,5,5,143,121,5,114,209,121,5,5,34,121,5,5,143,121,5,123,209,121,5,5,42,121,5,117,119,121,5,5,40,121,5,103,105,121,5,5,30,121,5,95,111,121,5,5,42,121,5,76,103,121,5,5,28,121,5,102,137,121,5,5,34,121,5,88,143,121,5,5,42,121,5,5,121,121,5,95,219,121,5,5,40,121,5,5,143,121,5,113,193,121,5,5,42,121,5,5,119,121,5,119,219,121,5,5,40,121,5,99,103,121,5,5,38,121,5,122,105,121,5,5,42,121,5,92,125,121,5,5,28,121,5,103,137,121,5,5,42,121,5,5,119,121,5,120,219,121,5,5,42,121,5,5,115,121,5,91,179,121,5,5,42,121,5,5,137,121,5,74,219,121,5,5,42,121,5,5,121,121,5,90,193,121,5,5,28,121,5,112,121,121,5,5,42,121,5,5,139,121,5,72,211,121,5,5,40,121,5,100,103,121,5,5,42,121,5,83,119,121,5,5,42,121,5,79,105,121,5,5,34,121,5,5,143,121,5,115,209,121,5,5,42,121,5,5,115,121,5,83,211,121,5,5,40,121,5,104,105,121,5,5,42,121,5,77,127,121,5,5,34,121,5,72,113,121,5,5,42,121,5,5,103,121,5,86,209,121,5,5,42,121,5,87,129,121,5,5,34,121,5,89,143,121,5,5,42,121,5,78,127,121,5,5,42,121,5,84,119,121,5,5,34,121,5,80,111,121,5,5,42,121,5,80,125,121,5,5,42,121,5,5,121,121,5,113,185,121,5,5,30,121,5,96,111,121,5,5,38,121,5,101,129,121,5,5,28,121,5,100,121,121,5,5,28,121,5,126,125,121,5,5,28,121,5,107,135,121,5,5,28,121,5,104,137,121,5,5,42,121,5,85,119,121,5,5,42,121,5,5,121,121,5,96,219,121,5,5,34,121,5,109,129,121,5,5,42,121,5,5,103,121,5,108,211,121,5,5,42,121,5,118,119,121,5,5,42,121,5,5,121,121,5,97,219,121,5,5,42,121,5,5,121,121,5,91,193,121,5,5,42,121,5,93,125,121,5,5,42,121,5,119,119,121,5,5,40,121,5,5,143,121,5,122,193,121,5,5,34,121,5,73,113,121,5,5,42,121,5,86,119,121,5,5,40,121,5,97,127,121,5,5,28,121,5,125,141,121,5,5,34,121,5,112,125,121,5,5,42,121,5,5,139,121,5,76,211,121,5,5,42,121,5,5,121,121,5,98,219,121,5,5,6,121,5,88,133,121,5,5,30,121,5,118,111,121,5,5,42,121,5,5,125,121,5,82,219,121,5,5,42,121,5,87,119,121,5,5,38,121,5,5,105,121,5,120,179,121,5,5,42,121,5,81,125,121,5,5,28,121,5,107,117,121,5,5,30,121,5,99,113,121,5,5,42,121,5,88,119,121,5,5,28,121,5,105,137,121,5,5,42,121,5,89,119,121,5,5,16,121,5,93,115,121,5,5,40,121,5,5,119,121,5,113,179,121,5,5,42,121,5,80,105,121,5,5,30,121,5,119,111,121,5,5,24,121,5,79,123,121,5,5,42,121,5,90,119,121,5,5,40,121,5,112,103,121,5,5,42,121,5,74,121,121,5,5,42,121,5,82,125,121,5,5,34,121,5,85,135,121,5,5,42,121,5,5,139,121,5,72,185,121,5,5,42,121,5,72,137,121,5,5,42,121,5,5,119,121,5,121,219,121,5,5,42,121,5,5,131,121,5,84,185,121,5,5,42,121,5,5,129,121,5,91,185,121,5,5,42,121,5,5,139,121,5,77,185,121,5,5,42,121,5,5,115,121,5,92,179,121,5,5,42,121,5,88,103,121,5,5,42,121,5,74,135,121,5,5,42,121,5,5,131,121,5,82,185,121,5,5,42,121,5,5,121,121,5,99,219,121,5,5,28,121,5,124,135,121,5,5,42,121,5,5,121,121,5,114,185,121,5,5,42,121,5,80,129,121,5,5,42,121,5,87,127,121,5,5,42,121,5,5,129,121,5,92,185,121,5,5,42,121,5,83,141,121,5,5,40,121,5,111,127,121,5,5,28,121,5,125,135,121,5,5,42,121,5,84,141,121,5,5,42,121,5,85,141,121,5,5,34,121,5,90,143,121,5,5,42,121,5,73,133,121,5,5,42,121,5,97,141,121,5,5,42,121,5,5,129,121,5,93,185,121,5,5,42,121,5,5,115,121,5,87,179,121,5,5,40,121,5,5,119,121,5,114,179,121,5,5,42,121,5,5,129,121,5,98,185,121,5,5,42,121,5,98,141,121,5,5,40,121,5,101,103,121,5,5,28,121,5,108,135,121,5,5,40,121,5,113,103,121,5,5,28,121,5,77,107,121,5,5,42,121,5,79,127,121,5,5,40,121,5,105,105,121,5,5,34,121,5,5,111,121,5,125,211,121,5,5,30,121,5,120,111,121,5,5,38,121,5,5,139,121,5,117,179,121,5,5,42,121,5,120,119,121,5,5,42,121,5,86,141,121,5,5,42,121,5,5,143,121,5,71,193,121,5,5,42,121,5,91,119,121,5,5,30,121,5,97,111,121,5,5,42,121,5,5,103,121,5,103,179,121,5,5,40,121,5,98,117,121,5,5,42,121,5,5,115,121,5,84,211,121,5,5,40,121,5,106,105,121,5,5,28,121,5,108,117,121,5,5,28,121,5,126,141,121,5,5,30,121,5,116,113,121,5,5,42,121,5,121,119,121,5,5,28,121,5,121,125,121,5,5,28,121,5,113,121,121,5,5,30,121,5,98,111,121,5,5,42,121,5,88,129,121,5,5,28,121,5,106,137,121,5,5,28,121,5,107,137,121,5,5,42,121,5,5,121,121,5,92,193,121,5,5,40,121,5,99,117,121,5,5,28,121,5,126,117,121,5,5,42,121,5,83,125,121,5,5,42,121,5,5,111,121,5,78,209,121,5,5,42,121,5,92,105,121,5,5,42,121,5,5,129,121,5,99,185,121,5,5,42,121,5,5,125,121,5,72,179,121,5,5,42,121,5,5,111,121,5,79,209,121,5,5,40,121,5,114,103,121,5,5,40,121,5,5,143,121,5,114,193,121,5,5,42,121,5,81,129,121,5,5,40,121,5,112,105,121,5,5,34,121,5,5,143,121,5,116,209,121,5,5,42,121,5,92,119,121,5,5,40,121,5,102,103,121,5,5,30,121,5,117,113,121,5,5,28,121,5,109,135,121,5,5,42,121,5,93,105,121,5,5,42,121,5,77,103,121,5,5,42,121,5,93,119,121,5,5,28,121,5,108,137,121,5,5,42,121,5,5,121,121,5,112,219,121,5,5,24,121,5,84,123,121,5,5,34,121,5,113,125,121,5,5,42,121,5,5,121,121,5,100,219,121,5,5,42,121,5,5,121,121,5,115,185,121,5,5,28,121,5,75,115,121,5,5,6,121,5,120,121,121,5,5,42,121,5,94,119,121,5,5,40,121,5,98,127,121,5,5,28,121,5,101,121,121,5,5,28,121,5,109,137,121,5,5,28,121,5,122,125,121,5,5,40,121,5,5,143,121,5,115,193,121,5,5,34,121,5,109,143,121,5,5,42,121,5,73,137,121,5,5,42,121,5,88,121,121,5,5,42,121,5,75,121,121,5,5,34,121,5,5,111,121,5,126,211,121,5,5,40,121,5,5,143,121,5,116,193,121,5,5,28,121,5,110,141,121,5,5,42,121,5,5,139,121,5,82,193,121,5,5,34,121,5,83,133,121,5,5,40,121,5,72,143,121,5,5,30,121,5,99,111,121,5,5,42,121,5,94,105,121,5,5,34,121,5,110,143,121,5,5,34,121,5,91,143,121,5,5,42,121,5,5,139,121,5,73,185,121,5,5,30,121,5,97,121,121,5,5,34,121,5,92,143,121,5,5,28,121,5,126,135,121,5,5,34,121,5,84,133,121,5,5,42,121,5,89,103,121,5,5,42,121,5,5,103,121,5,104,179,121,5,5,40,121,5,100,117,121,5,5,28,121,5,110,137,121,5,5,16,121,5,106,115,121,5,5,34,121,5,93,143,121,5,5,42,121,5,5,121,121,5,101,219,121,5,5,42,121,5,95,119,121,5,5,42,121,5,88,127,121,5,5,42,121,5,122,119,121,5,5,42,121,5,123,119,121,5,5,40,121,5,115,103,121,5,5,42,121,5,5,103,121,5,105,179,121,5,5,40,121,5,73,143,121,5,5,34,121,5,110,129,121,5,5,42,121,5,5,103,121,5,109,211,121,5,5,42,121,5,5,103,121,5,99,211,121,5,5,42,121,5,94,125,121,5,5,42,121,5,84,117,121,5,5,38,121,5,5,103,121,5,105,209,121,5,5,30,121,5,118,113,121,5,5,28,121,5,109,117,121,5,5,42,121,5,5,103,121,5,109,193,121,5,5,42,121,5,5,121,121,5,79,179,121,5,5,42,121,5,5,121,121,5,80,179,121,5,5,28,121,5,111,141,121,5,5,28,121,5,76,123,121,5,5,34,121,5,83,113,121,5,5,34,121,5,5,143,121,5,117,209,121,5,5,40,121,5,5,115,121,5,101,209,121,5,5,40,121,5,103,103,121,5,5,42,121,5,5,103,121,5,106,179,121,5,5,24,121,5,80,123,121,5,5,42,121,5,5,121,121,5,76,179,121,5,5,42,121,5,5,121,121,5,77,179,121,5,5,34,121,5,114,125,121,5,5,28,121,5,76,115,121,5,5,16,121,5,94,115,121,5,5,42,121,5,5,121,121,5,81,179,121,5,5,42,121,5,96,119,121,5,5,40,121,5,99,127,121,5,5,30,121,5,100,113,121,5,5,40,121,5,5,129,121,5,99,209,121,5,5,42,121,5,76,121,121,5,5,30,121,5,119,113,121,5,5,42,121,5,87,141,121,5,5,42,121,5,77,121,121,5,5,34,121,5,111,129,121,5,5,6,121,5,121,121,121,5,5,42,121,5,88,141,121,5,5,30,121,5,120,113,121,5,5,40,121,5,107,105,121,5,5,34,121,5,94,143,121,5,5,40,121,5,5,129,121,5,98,209,121,5,5,34,121,5,95,143,121,5,5,28,121,5,110,117,121,5,5,42,121,5,5,121,121,5,78,179,121,5,5,42,121,5,5,115,121,5,101,193,121,5,5,40,121,5,5,115,121,5,102,209,121,5,5,28,121,5,114,121,121,5,5,28,121,5,102,121,121,5,5,28,121,5,103,121,121,5,5,40,121,5,116,103,121,5,5,42,121,5,5,119,121,5,98,193,121,5,5,38,121,5,123,105,121,5,5,30,121,5,101,113,121,5,5,40,121,5,5,143,121,5,117,193,121,5,5,42,121,5,124,119,121,5,5,30,121,5,100,111,121,5,5,42,121,5,5,121,121,5,102,219,121,5,5,42,121,5,5,115,121,5,96,211,121,5,5,42,121,5,89,129,121,5,5,40,121,5,5,143,121,5,123,193,121,5,5,6,121,5,100,133,121,5,5,42,121,5,5,121,121,5,103,219,121,5,5,40,121,5,117,103,121,5,5,42,121,5,97,119,121,5,5,16,121,5,107,115,121,5,5,42,121,5,5,119,121,5,122,219,121,5,5,42,121,5,5,139,121,5,78,193,121,5,5,42,121,5,5,121,121,5,116,185,121,5,5,30,121,5,101,111,121,5,5,42,121,5,5,115,121,5,104,193,121,5,5,34,121,5,111,143,121,5,5,28,121,5,111,137,121,5,5,34,121,5,96,143,121,5,5,42,121,5,5,103,121,5,87,209,121,5,5,34,121,5,74,113,121,5,5,28,121,5,110,135,121,5,5,30,121,5,121,113,121,5,5,34,121,5,97,143,121,5,5,34,121,5,115,125,121,5,5,42,121,5,98,119,121,5,5,40,121,5,112,127,121,5,5,6,121,5,101,133,121,5,5,42,121,5,84,125,121,5,5,42,121,5,5,129,121,5,100,185,121,5,5,42,121,5,5,143,121,5,72,193,121,5,5,42,121,5,90,103,121,5,5,30,121,5,121,111,121,5,5,6,121,5,90,123,121,5,5,30,121,5,117,125,121,5,5,6,121,5,87,123,121,5,5,34,121,5,98,143,121,5,5,40,121,5,104,103,121,5,5,40,121,5,5,143,121,5,124,193,121,5,5,30,121,5,122,111,121,5,5,28,121,5,112,141,121,5,5,42,121,5,89,141,121,5,5,42,121,5,5,139,121,5,73,211,121,5,5,42,121,5,5,139,121,5,77,211,121,5,5,34,121,5,86,135,121,5,5,42,121,5,79,135,121,5,5,42,121,5,5,105,121,5,96,179,121,5,5,40,121,5,118,103,121,5,5,28,121,5,78,107,121,5,5,38,121,5,5,103,121,5,106,209,121,5,5,34,121,5,87,135,121,5,5,42,121,5,5,121,121,5,113,219,121,5,5,42,121,5,80,127,121,5,5,40,121,5,93,117,121,5,5,28,121,5,111,135,121,5,5,38,121,5,124,105,121,5,5,42,121,5,99,119,121,5,5,42,121,5,5,137,121,5,77,219,121,5,5,42,121,5,5,137,121,5,75,219,121,5,5,42,121,5,5,115,121,5,85,211,121,5,5,34,121,5,88,135,121,5,5,42,121,5,5,115,121,5,86,211,121,5,5,34,121,5,116,125,121,5,5,40,121,5,5,143,121,5,109,179,121,5,5,38,121,5,101,125,121,5,5,16,121,5,108,115,121,5,5,34,121,5,78,133,121,5,5,42,121,5,85,125,121,5,5,30,121,5,102,113,121,5,5,16,121,5,109,115,121,5,5,28,121,5,104,121,121,5,5,34,121,5,89,135,121,5,5,34,121,5,99,143,121,5,5,28,121,5,112,137,121,5,5,28,121,5,83,115,121,5,5,28,121,5,77,115,121,5,5,42,121,5,5,139,121,5,70,219,121,5,5,28,121,5,78,115,121,5,5,28,121,5,113,141,121,5,5,42,121,5,5,103,121,5,88,209,121,5,5,42,121,5,74,133,121,5,5,42,121,5,100,119,121,5,5,40,121,5,105,103,121,5,5,28,121,5,111,117,121,5,5,42,121,5,78,121,121,5,5,34,121,5,112,129,121,5,5,38,121,5,125,105,121,5,5,30,121,5,102,111,121,5,5,30,121,5,123,111,121,5,5,40,121,5,5,143,121,5,118,193,121,5,5,42,121,5,86,125,121,5,5,28,121,5,79,115,121,5,5,42,121,5,5,121,121,5,104,219,121,5,5,42,121,5,78,103,121,5,5,30,121,5,98,121,121,5,5,42,121,5,5,103,121,5,92,209,121,5,5,42,121,5,5,115,121,5,87,211,121,5,5,34,121,5,112,143,121,5,5,6,121,5,122,121,121,5,5,40,121,5,119,103,121,5,5,42,121,5,5,103,121,5,93,209,121,5,5,42,121,5,79,121,121,5,5,30,121,5,103,111,121,5,5,34,121,5,79,133,121,5,5,34,121,5,81,111,121,5,5,28,121,5,112,135,121,5,5,34,121,5,113,129,121,5,5,42,121,5,5,131,121,5,83,185,121,5,5,28,121,5,115,121,121,5,5,28,121,5,113,137,121,5,5,30,121,5,104,111,121,5,5,28,121,5,113,135,121,5,5,40,121,5,120,103,121,5,5,42,121,5,101,119,121,5,5,42,121,5,5,129,121,5,101,185,121,5,5,34,121,5,84,113,121,5,5,42,121,5,102,119,121,5,5,40,121,5,5,143,121,5,125,193,121,5,5,34,121,5,85,113,121,5,5,40,121,5,94,117,121,5,5,28,121,5,114,135,121,5,5,42,121,5,75,117,121,5,5,34,121,5,86,113,121,5,5,28,121,5,114,141,121,5,5,34,121,5,113,143,121,5,5,42,121,5,95,105,121,5,5,42,121,5,5,129,121,5,78,219,121,5,5,42,121,5,5,129,121,5,94,185,121,5,5,30,121,5,103,113,121,5,5,16,121,5,95,115,121,5,5,28,121,5,112,117,121,5,5,30,121,5,105,111,121,5,5,28,121,5,113,117,121,5,5,42,121,5,103,119,121,5,5,42,121,5,5,103,121,5,100,179,121,5,5,42,121,5,89,127,121,5,5,34,121,5,79,111,121,5,5,42,121,5,72,111,121,5,5,42,121,5,104,119,121,5,5,42,121,5,74,137,121,5,5,42,121,5,75,133,121,5,5,42,121,5,76,133,121,5,5,34,121,5,100,143,121,5,5,30,121,5,124,111,121,5,5,42,121,5,87,125,121,5,5,28,121,5,105,121,121,5,5,42,121,5,5,121,121,5,95,193,121,5,5,42,121,5,5,103,121,5,100,211,121,5,5,42,121,5,5,121,121,5,105,219,121,5,5,28,121,5,115,135,121,5,5,42,121,5,79,103,121,5,5,42,121,5,105,119,121,5,5,28,121,5,106,121,121,5,5,34,121,5,5,143,121,5,120,211,121,5,5,42,121,5,81,105,121,5,5,28,121,5,115,141,121,5,5,16,121,5,110,115,121,5,5,16,121,5,96,115,121,5,5,42,121,5,5,115,121,5,102,193,121,5,5,28,121,5,116,135,121,5,5,28,121,5,116,141,121,5,5,40,121,5,100,127,121,5,5,30,121,5,125,111,121,5,5,40,121,5,74,143,121,5,5,28,121,5,114,117,121,5,5,28,121,5,114,137,121,5,5,40,121,5,113,127,121,5,5,30,121,5,104,113,121,5,5,34,121,5,82,111,121,5,5,28,121,5,117,135,121,5,5,30,121,5,126,111,121,5,5,38,121,5,102,125,121,5,5,34,121,5,114,143,121,5,5,42,121,5,5,143,121,5,73,193,121,5,5,40,121,5,108,105,121,5,5,42,121,5,5,105,121,5,97,179,121,5,5,34,121,5,83,111,121,5,5,42,121,5,82,105,121,5,5,42,121,5,5,129,121,5,95,185,121,5,5,42,121,5,5,139,121,5,79,193,121,5,5,28,121,5,107,121,121,5,5,42,121,5,5,139,121,5,78,185,121,5,5,42,121,5,73,111,121,5,5,40,121,5,77,143,121,5,5,30,121,5,106,111,121,5,5,42,121,5,90,129,121,5,5,28,121,5,115,117,121,5,5,6,121,5,89,133,121,5,5,42,121,5,5,143,121,5,70,193,121,5,5,42,121,5,80,121,121,5,5,42,121,5,83,105,121,5,5,42,121,5,95,125,121,5,5,6,121,5,91,123,121,5,5,6,121,5,123,121,121,5,5,28,121,5,115,137,121,5,5,42,121,5,88,125,121,5,5,6,121,5,124,121,121,5,5,28,121,5,117,141,121,5,5,34,121,5,114,129,121,5,5,28,121,5,116,137,121,5,5,42,121,5,5,131,121,5,85,185,121,5,5,34,121,5,75,113,121,5,5,42,121,5,84,105,121,5,5,28,121,5,117,137,121,5,5,42,121,5,75,135,121,5,5,42,121,5,5,103,121,5,94,209,121,5,5,30,121,5,105,113,121,5,5,42,121,5,5,131,121,5,86,185,121,5,5,28,121,5,118,135,121,5,5,42,121,5,85,117,121,5,5,42,121,5,5,103,121,5,101,179,121,5,5,42,121,5,81,121,121,5,5,42,121,5,91,129,121,5,5,28,121,5,116,121,121,5,5,42,121,5,5,137,121,5,86,193,121,5,5,28,121,5,118,141,121,5,5,42,121,5,106,119,121,5,5,28,121,5,116,117,121,5,5,42,121,5,86,117,121,5,5,42,121,5,5,121,121,5,93,193,121,5,5,42,121,5,99,141,121,5,5,42,121,5,107,119,121,5,5,28,121,5,117,117,121,5,5,34,121,5,115,143,121,5,5,40,121,5,101,127,121,5,5,40,121,5,109,105,121,5,5,42,121,5,82,121,121,5,5,38,121,5,5,103,121,5,107,209,121,5,5,30,121,5,107,111,121,5,5,40,121,5,5,115,121,5,100,209,121,5,5,42,121,5,5,121,121,5,114,219,121,5,5,42,121,5,80,103,121,5,5,42,121,5,89,125,121,5,5,34,121,5,80,133,121,5,5,42,121,5,5,115,121,5,88,179,121,5,5,42,121,5,5,115,121,5,105,193,121,5,5,34,121,5,90,135,121,5,5,34,121,5,115,129,121,5,5,38,121,5,126,105,121,5,5,40,121,5,106,103,121,5,5,6,121,5,125,121,121,5,5,6,121,5,102,133,121,5,5,34,121,5,116,143,121,5,5,28,121,5,118,137,121,5,5,30,121,5,122,113,121,5,5,28,121,5,119,137,121,5,5,30,121,5,106,113,121,5,5,42,121,5,76,117,121,5,5,30,121,5,123,113,121,5,5,30,121,5,108,111,121,5,5,30,121,5,124,113,121,5,5,34,121,5,87,113,121,5,5,6,121,5,90,133,121,5,5,34,121,5,101,143,121,5,5,42,121,5,76,135,121,5,5,28,121,5,80,115,121,5,5,42,121,5,5,103,121,5,108,193,121,5,5,28,121,5,81,115,121,5,5,42,121,5,5,103,121,5,95,209,121,5,5,40,121,5,78,143,121,5,5,42,121,5,5,139,121,5,83,193,121,5,5,42,121,5,96,125,121,5,5,34,121,5,116,129,121,5,5,38,121,5,103,125,121,5,5,42,121,5,82,129,121,5,5,38,121,5,98,129,121,5,5,30,121,5,109,111,121,5,5,34,121,5,76,113,121,5,5,40,121,5,5,143,121,5,112,211,121,5,5,28,121,5,121,137,121,5,5,28,121,5,120,137,121,5,5,6,121,5,126,121,121,5,5,42,121,5,81,103,121,5,5,42,121,5,5,121,121,5,106,219,121,5,5,28,121,5,119,135,121,5,5,34,121,5,77,113,121,5,5,28,121,5,122,137,121,5,5,40,121,5,75,143,121,5,5,42,121,5,85,105,121,5,5,42,121,5,5,121,121,5,117,185,121,5,5,16,121,5,111,115,121,5,5,30,121,5,110,111,121,5,5,42,121,5,5,103,121,5,110,211,121,5,5,42,121,5,5,103,121,5,107,179,121,5,5,34,121,5,84,111,121,5,5,34,121,5,5,143,121,5,124,209,121,5,5,34,121,5,117,129,121,5,5,40,121,5,121,103,121,5,5,28,121,5,123,137,121,5,5,34,121,5,118,129,121,5,5,38,121,5,5,103,121,5,110,209,121,5,5,42,121,5,92,129,121,5,5,42,121,5,81,127,121,5,5,42,121,5,5,119,121,5,85,179,121,5,5,34,121,5,91,135,121,5,5,30,121,5,107,113,121,5,5,34,121,5,119,129,121,5,5,42,121,5,96,105,121,5,5,28,121,5,119,141,121,5,5,42,121,5,77,117,121,5,5,42,121,5,5,139,121,5,79,185,121,5,5,28,121,5,124,137,121,5,5,28,121,5,79,107,121,5,5,34,121,5,5,143,121,5,118,209,121,5,5,42,121,5,5,125,121,5,83,219,121,5,5,42,121,5,5,103,121,5,89,209,121,5,5,28,121,5,118,117,121,5,5,42,121,5,5,115,121,5,88,211,121,5,5,34,121,5,5,143,121,5,125,209,121,5,5,34,121,5,120,129,121,5,5,34,121,5,121,129,121,5,5,34,121,5,117,143,121,5,5,30,121,5,125,113,121,5,5,42,121,5,91,103,121,5,5,28,121,5,125,137,121,5,5,34,121,5,5,143,121,5,119,209,121,5,5,24,121,5,81,123,121,5,5,34,121,5,122,129,121,5,5,42,121,5,5,121,121,5,115,219,121,5,5,42,121,5,108,119,121,5,5,40,121,5,114,127,121,5,5,42,121,5,5,125,121,5,81,219,121,5,5,42,121,5,5,129,121,5,102,185,121,5,5,42,121,5,5,121,121,5,82,179,121,5,5,16,121,5,112,115,121,5,5,40,121,5,115,127,121,5,5,40,121,5,95,117,121,5,5,42,121,5,5,103,121,5,101,211,121,5,5,16,121,5,97,115,121,5,5,42,121,5,5,121,121,5,94,193,121,5,5,42,121,5,5,103,121,5,102,211,121,5,5,38,121,5,5,139,121,5,103,209,121,5,5,42,121,5,5,103,121,5,96,209,121,5,5,6,121,5,103,133,121,5,5,34,121,5,118,143,121,5,5,40,121,5,76,143,121,5,5,40,121,5,96,117,121,5,5,42,121,5,5,103,121,5,103,211,121,5,5,30,121,5,108,113,121,5,5,42,121,5,5,103,121,5,90,209,121,5,5,30,121,5,126,113,121,5,5,42,121,5,5,121,121,5,107,219,121,5,5,30,121,5,109,113,121,5,5,38,121,5,105,125,121,5,5,42,121,5,5,111,121,5,75,209,121,5,5,42,121,5,77,137,121,5,5,34,121,5,102,143,121,5,5,30,121,5,111,111,121,5,5,34,121,5,123,129,121,5,5,40,121,5,113,105,121,5,5,28,121,5,119,117,121,5,5,42,121,5,82,103,121,5,5,40,121,5,114,105,121,5,5,30,121,5,110,113,121,5,5,34,121,5,88,113,121,5,5,42,121,5,5,115,121,5,89,179,121,5,5,42,121,5,83,121,121,5,5,40,121,5,79,143,121,5,5,42,121,5,78,117,121,5,5,28,121,5,120,135,121,5,5,42,121,5,109,119,121,5,5,42,121,5,5,115,121,5,103,193,121,5,5,28,121,5,120,117,121,5,5,40,121,5,107,103,121,5,5,42,121,5,5,143,121,5,74,193,121,5,5,42,121,5,97,105,121,5,5,42,121,5,97,125,121,5,5,42,121,5,5,115,121,5,89,211,121,5,5,38,121,5,104,125,121,5,5,34,121,5,85,133,121,5,5,30,121,5,111,113,121,5,5,42,121,5,110,119,121,5,5,40,121,5,103,127,121,5,5,40,121,5,102,127,121,5,5,28,121,5,82,115,121,5,5,42,121,5,90,127,121,5,5,42,121,5,93,129,121,5,5,42,121,5,100,141,121,5,5,6,121,5,104,133,121,5,5,6,121,5,91,133,121,5,5,40,121,5,5,143,121,5,119,193,121,5,5,34,121,5,103,143,121,5,5,42,121,5,86,105,121,5,5,34,121,5,124,129,121,5,5,40,121,5,104,127,121,5,5,42,121,5,89,121,121,5,5,42,121,5,82,127,121,5,5,42,121,5,5,111,121,5,76,209,121,5,5,34,121,5,92,135,121,5,5,16,121,5,98,115,121,5,5,42,121,5,5,121,121,5,118,185,121,5,5,16,121,5,99,115,121,5,5,38,121,5,102,129,121,5,5,42,121,5,87,105,121,5,5,34,121,5,78,113,121,5,5,40,121,5,116,127,121,5,5,34,121,5,89,113,121,5,5,40,121,5,80,143,121,5,5,42,121,5,78,137,121,5,5,30,121,5,99,121,121,5,5,42,121,5,5,115,121,5,93,179,121,5,5,38,121,5,99,129,121,5,5,28,121,5,121,135,121,5,5,42,121,5,98,105,121,5,5,34,121,5,119,143,121,5,5,34,121,5,125,129,121,5,5,42,121,5,83,103,121,5,5,42,121,5,5,121,121,5,119,185,121,5,5,40,121,5,117,127,121,5,5,42,121,5,98,125,121,5,5,34,121,5,120,143,121,5,5,34,121,5,121,143,121,5,5,42,121,5,79,137,121,5,5,34,121,5,122,143,121,5,5,42,121,5,5,103,121,5,102,179,121,5,5,34,121,5,93,135,121,5,5,42,121,5,5,137,121,5,87,193,121,5,5,42,121,5,5,103,121,5,108,179,121,5,5,42,121,5,5,103,121,5,91,209,121,5,5,6,121,5,105,133,121,5,5,16,121,5,100,115,121,5,5,42,121,5,77,135,121,5,5,42,121,5,5,121,121,5,108,219,121,5,5,42,121,5,5,125,121,5,84,219,121,5,5,16,121,5,101,115,121,5,5,42,121,5,5,139,121,5,70,179,121,5,5,42,121,5,5,143,121,5,75,193,121,5,5,30,121,5,112,113,121,5,5,34,121,5,104,143,121,5,5,42,121,5,5,139,121,5,84,193,121,5,5,30,121,5,112,111,121,5,5,42,121,5,90,121,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,67,0,50,0,59,0,19,46,0,16,56,5,0,96,1,0,0,96,170,170,170,170,162,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,72,0,0,0,72,1,0,0,168,24,0,0,168,24,0,0,176,24,0,0,176,24,0,0,244,24,0,0,244,24,0,0,82,34,0,0,138,38,0,0,18,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,39,246,247,248,249,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,254,255,50,105,114,84,1,0,64,8,109,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,5,212,55,18,254,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,0,198,1,0,0,0,1,12,128,107,2,117,152,75,1,254,158,187,0,7,249,74,0,196,249,38,0,10,250,20,0,10,250,255,255,25,253,193,42,30,250,255,255,195,252,193,136,60,250,255,255,135,251,193,8,149,250,255,255,11,252,193,192,206,250,255,255,224,253,193,118,196,249,255,255,224,253,193,12,233,249,255,255,98,253,193,98,247,249,255,255,152,252,193,118,8,250,255,255,15,253,193,118,64,249,16,0,64,249,255,255,209,253,193,178,113,249,255,255,78,253,193,128,129,249,255,255,106,251,193,100,138,249,255,255,42,251,193,8,7,249,255,255,224,253,193,118,8,249,255,255,224,253,193,118,10,249,255,255,98,253,193,242,52,249,255,255,198,252,193,84,127,159,75,0,159,159,57,0,159,159,255,255,224,253,193,218,160,159,255,255,224,253,193,236,126,216,4,0,2,249,255,255,70,253,193,218,9,0,210,221,20,0,210,221,255,255,45,253,193,112,21,222,255,255,213,253,193,94,23,222,255,255,217,253,193,36,24,222,255,255,217,253,193,222,28,222,255,255,219,253,193,240,29,220,255,255,34,251,193,200,117,220,255,255,130,251,193,144,120,220,255,255,135,251,193,8,144,220,255,255,160,251,193,102,196,221,255,255,16,253,193,52,127,159,255,255,223,253,193,110,141,159,255,255,224,253,193,12,153,159,255,255,224,253,193,96,156,159,255,255,224,253,193,118,59,159,16,0,59,159,255,255,219,253,193,240,74,159,255,255,220,253,193,176,80,159,255,255,220,253,193,236,82,159,255,255,220,253,193,248,254,158,255,255,217,253,193,222,14,159,255,255,218,253,193,6,19,159,255,255,218,253,193,62,32,159,255,255,218,253,193,220,50,155,70,0,165,158,34,0,205,158,16,0,205,158,255,255,214,253,193,124,209,158,255,255,214,253,193,252,249,158,255,255,217,253,193,36,253,158,255,255,217,253,193,62,165,158,255,255,211,253,193,56,166,158,255,255,212,253,193,196,187,158,255,255,213,253,193,94,195,158,255,255,213,253,193,210,229,156,16,0,229,156,255,255,195,253,193,218,31,158,255,255,206,253,193,72,117,158,255,255,208,253,193,240,127,158,255,255,209,253,193,178,50,155,255,255,180,253,193,172,60,155,255,255,181,253,193,166,90,155,255,255,184,253,193,2,124,156,255,255,193,253,193,64,153,153,34,0,216,154,16,0,216,154,255,255,175,253,193,232,223,154,255,255,176,253,193,186,37,155,255,255,180,253,193,58,47,155,255,255,180,253,193,136,153,153,255,255,164,253,193,252,172,153,255,255,165,253,193,208,108,154,255,255,171,253,193,244,168,154,255,255,173,253,193,168,222,152,16,0,222,152,255,255,157,253,193,164,223,152,255,255,157,253,193,170,99,153,255,255,163,253,193,20,150,153,255,255,164,253,193,110,117,152,255,255,153,253,193,70,168,152,255,255,154,253,193,82,206,152,255,255,156,253,193,242,219,152,255,255,157,253,193,122,100,141,142,0,127,149,70,0,94,151,34,0,230,151,16,0,230,151,255,255,147,253,193,30,237,151,255,255,147,253,193,108,243,151,255,255,147,253,193,184,1,152,255,255,148,253,193,142,94,151,255,255,140,253,193,44,98,151,255,255,140,253,193,152,105,151,255,255,141,253,193,160,203,151,255,255,145,253,193,196,182,150,16,0,182,150,255,255,131,253,193,186,185,150,255,255,131,253,193,228,232,150,255,255,134,253,193,178,81,151,255,255,139,253,193,216,127,149,255,255,120,253,193,2,128,149,255,255,120,253,193,6,232,149,255,255,124,253,193,84,28,150,255,255,125,253,193,154,181,143,34,0,204,145,16,0,204,145,255,255,98,253,193,98,209,145,255,255,98,253,193,242,133,148,255,255,114,253,193,86,119,149,255,255,118,253,193,200,181,143,255,255,78,253,193,176,145,144,255,255,87,253,193,98,73,145,255,255,93,253,193,148,198,145,255,255,98,253,193,30,202,142,16,0,202,142,255,255,70,253,193,218,102,143,255,255,76,253,193,100,155,143,255,255,77,253,193,186,176,143,255,255,78,253,193,128,100,141,255,255,54,253,193,190,112,141,255,255,55,253,193,84,179,141,255,255,59,253,193,84,171,142,255,255,68,253,193,230,107,134,70,0,0,138,34,0,85,140,16,0,85,140,255,255,45,253,193,112,120,140,255,255,47,253,193,36,157,140,255,255,48,253,193,190,29,141,255,255,53,253,193,202,0,138,255,255,30,253,193,38,160,139,255,255,40,253,193,192,55,140,255,255,43,253,193,160,70,140,255,255,44,253,193,90,126,137,16,0,126,137,255,255,24,253,193,136,139,137,255,255,25,253,193,42,193,137,255,255,27,253,193,148,210,137,255,255,27,253,193,240,107,134,255,255,254,252,193,150,64,136,255,255,14,253,193,202,76,136,255,255,15,253,193,118,99,136,255,255,16,253,193,52,252,129,34,0,110,130,16,0,110,130,255,255,222,252,193,106,114,130,255,255,222,252,193,140,120,130,255,255,223,252,193,6,77,134,255,255,252,252,193,174,252,129,255,255,217,252,193,10,12,130,255,255,218,252,193,106,27,130,255,255,219,252,193,90,31,130,255,255,219,252,193,128,137,128,16,0,137,128,255,255,203,252,193,226,227,129,255,255,215,252,193,90,234,129,255,255,215,252,193,222,243,129,255,255,216,252,193,152,12,128,255,255,198,252,193,214,18,128,255,255,199,252,193,40,51,128,255,255,200,252,193,74,127,128,255,255,203,252,193,128,54,98,30,1,132,115,142,0,226,119,70,0,115,124,34,0,81,127,16,0,81,127,255,255,189,252,193,238,138,127,255,255,193,252,193,14,189,127,255,255,195,252,193,136,1,128,255,255,198,252,193,84,115,124,255,255,168,252,193,76,248,124,255,255,174,252,193,70,159,126,255,255,185,252,193,220,54,127,255,255,188,252,193,198,190,121,16,0,190,121,255,255,140,252,193,156,116,122,255,255,148,252,193,22,203,122,255,255,152,252,193,118,249,122,255,255,154,252,193,154,226,119,255,255,124,252,193,16,243,119,255,255,125,252,193,134,58,121,255,255,134,252,193,210,184,121,255,255,140,252,193,88,139,117,34,0,174,118,16,0,174,118,255,255,109,252,193,26,191,118,255,255,110,252,193,184,238,118,255,255,113,252,193,128,219,119,255,255,123,252,193,54,139,117,255,255,98,252,193,100,146,117,255,255,98,252,193,176,118,118,255,255,106,252,193,156,125,118,255,255,106,252,193,250,24,117,16,0,24,117,255,255,92,252,193,188,31,117,255,255,93,252,193,36,40,117,255,255,93,252,193,208,48,117,255,255,94,252,193,32,132,115,255,255,79,252,193,112,137,115,255,255,79,252,193,132,220,116,255,255,89,252,193,158,230,116,255,255,90,252,193,104,179,107,70,0,42,114,34,0,71,114,16,0,71,114,255,255,66,252,193,252,89,114,255,255,68,252,193,28,91,114,255,255,68,252,193,94,172,114,255,255,72,252,193,46,42,114,255,255,64,252,193,48,54,114,255,255,65,252,193,150,59,114,255,255,65,252,193,218,63,114,255,255,66,252,193,14,15,108,16,0,15,108,255,255,20,252,193,236,20,108,255,255,21,252,193,54,52,108,255,255,21,252,193,230,107,112,255,255,48,252,193,142,179,107,255,255,14,252,193,174,203,107,255,255,16,252,193,104,212,107,255,255,16,252,193,180,219,107,255,255,17,252,193,22,224,101,34,0,40,103,16,0,40,103,255,255,235,251,193,114,32,107,255,255,6,252,193,188,98,107,255,255,9,252,193,190,121,107,255,255,11,252,193,192,224,101,255,255,222,251,193,42,229,101,255,255,222,251,193,86,240,102,255,255,232,251,193,90,8,103,255,255,233,251,193,86,135,101,16,0,135,101,255,255,217,251,193,254,151,101,255,255,218,251,193,178,164,101,255,255,219,251,193,74,185,101,255,255,220,251,193,68,54,98,255,255,190,251,193,162,75,98,255,255,191,251,193,156,47,101,255,255,212,251,193,60,52,101,255,255,212,251,193,230,215,86,142,0,219,93,70,0,254,94,34,0,97,95,16,0,97,95,255,255,165,251,193,122,115,95,255,255,166,251,193,88,195,95,255,255,169,251,193,252,8,98,255,255,188,251,193,76,254,94,255,255,160,251,193,102,11,95,255,255,161,251,193,108,19,95,255,255,161,251,193,216,80,95,255,255,164,251,193,210,114,94,16,0,114,94,255,255,153,251,193,170,122,94,255,255,154,251,193,90,127,94,255,255,154,251,193,218,244,94,255,255,159,251,193,254,219,93,255,255,147,251,193,66,229,93,255,255,147,251,193,210,241,93,255,255,148,251,193,132,254,93,255,255,149,251,193,20,80,91,34,0,34,92,16,0,34,92,255,255,130,251,193,144,56,92,255,255,131,251,193,192,110,92,255,255,135,251,193,8,113,92,255,255,135,251,193,128,80,91,255,255,119,251,193,108,128,91,255,255,121,251,193,174,248,91,255,255,128,251,193,22,15,92,255,255,129,251,193,34,10,89,16,0,10,89,255,255,100,251,193,232,21,89,255,255,101,251,193,136,39,89,255,255,102,251,193,204,115,89,255,255,106,251,193,100,215,86,255,255,83,251,193,76,31,87,255,255,85,251,193,186,235,88,255,255,99,251,193,220,2,89,255,255,100,251,193,178,224,81,70,0,65,83,34,0,130,83,16,0,130,83,255,255,50,251,193,178,182,83,255,255,53,251,193,120,200,83,255,255,54,251,193,122,227,83,255,255,56,251,193,112,65,83,255,255,47,251,193,180,92,83,255,255,49,251,193,44,100,83,255,255,209,253,193,152,105,83,255,255,49,251,193,240,249,82,16,0,249,82,255,255,44,251,193,244,21,83,255,255,45,251,193,234,26,83,255,255,46,251,193,82,56,83,255,255,47,251,193,118,224,81,255,255,33,251,193,196,245,81,255,255,34,251,193,200,0,82,255,255,35,251,193,132,155,82,255,255,42,251,193,8,160,78,34,0,107,81,16,0,107,81,255,255,28,251,193,74,130,81,255,255,29,251,193,104,150,81,255,255,30,251,193,74,171,81,255,255,31,251,193,62,160,78,255,255,8,251,193,232,186,78,255,255,10,251,193,68,63,81,255,255,26,251,193,4,101,81,255,255,27,251,193,188,63,78,16,0,63,78,255,255,4,251,193,252,89,78,255,255,6,251,193,26,133,78,255,255,7,251,193,248,140,78,255,255,8,251,193,74,0,78,255,255,2,251,193,2,40,78,255,255,4,251,193,60,44,78,255,255,66,252,193,246,54,78,255,255,4,251,193,200,26,130,246,1,0,78,1,78,40,78,41,78,44,78,45,78,54,78,55,78,63,78,64,78,89,78,90,78,133,78,134,78,140,78,141,78,160,78,161,78,186,78,187,78,63,81,64,81,101,81,102,81,107,81,108,81,130,81,131,81,150,81,151,81,171,81,172,81,224,81,225,81,245,81,246,81,0,82,1,82,155,82,156,82,249,82,250,82,21,83,22,83,26,83,27,83,56,83,57,83,65,83,66,83,92,83,93,83,100,83,101,83,105,83,106,83,130,83,131,83,182,83,183,83,200,83,201,83,227,83,228,83,215,86,216,86,31,87,32,87,235,88,236,88,2,89,3,89,10,89,11,89,21,89,22,89,39,89,40,89,115,89,116,89,80,91,81,91,128,91,129,91,248,91,249,91,15,92,16,92,34,92,35,92,56,92,57,92,110,92,111,92,113,92,114,92,219,93,220,93,229,93,230,93,241,93,242,93,254,93,255,93,114,94,115,94,122,94,123,94,127,94,128,94,244,94,245,94,254,94,255,94,11,95,12,95,19,95,20,95,80,95,81,95,97,95,98,95,115,95,116,95,195,95,196,95,8,98,9,98,54,98,55,98,75,98,76,98,47,101,48,101,52,101,53,101,135,101,136,101,151,101,152,101,164,101,165,101,185,101,186,101,224,101,225,101,229,101,230,101,240,102,241,102,8,103,9,103,40,103,41,103,32,107,33,107,98,107,99,107,121,107,122,107,179,107,180,107,203,107,204,107,212,107,213,107,219,107,220,107,15,108,16,108,20,108,21,108,52,108,53,108,107,112,108,112,42,114,43,114,54,114,55,114,59,114,60,114,63,114,64,114,71,114,72,114,89,114,90,114,91,114,92,114,172,114,173,114,132,115,133,115,137,115,138,115,220,116,221,116,230,116,231,116,24,117,25,117,31,117,32,117,40,117,41,117,48,117,49,117,139,117,140,117,146,117,147,117,118,118,119,118,125,118,126,118,174,118,175,118,191,118,192,118,238,118,239,118,219,119,220,119,226,119,227,119,243,119,244,119,58,121,59,121,184,121,185,121,190,121,191,121,116,122,117,122,203,122,204,122,249,122,250,122,115,124,116,124,248,124,249,124,159,126,160,126,54,127,55,127,81,127,82,127,138,127,139,127,189,127,190,127,1,128,2,128,12,128,13,128,18,128,19,128,51,128,52,128,127,128,128,128,137,128,138,128,227,129,228,129,234,129,235,129,243,129,244,129,252,129,253,129,12,130,13,130,27,130,28,130,31,130,32,130,110,130,111,130,114,130,115,130,120,130,121,130,77,134,78,134,107,134,108,134,64,136,65,136,76,136,77,136,99,136,100,136,126,137,127,137,139,137,140,137,193,137,194,137,210,137,211,137,0,138,1,138,160,139,161,139,55,140,56,140,70,140,71,140,85,140,86,140,120,140,121,140,157,140,158,140,29,141,30,141,100,141,101,141,112,141,113,141,179,141,180,141,171,142,172,142,202,142,203,142,102,143,103,143,155,143,156,143,176,143,177,143,181,143,182,143,145,144,146,144,73,145,74,145,198,145,199,145,204,145,205,145,209,145,210,145,133,148,134,148,119,149,120,149,127,149,129,149,232,149,233,149,28,150,29,150,182,150,183,150,185,150,186,150,232,150,233,150,81,151,82,151,94,151,95,151,98,151,99,151,105,151,106,151,203,151,204,151,230,151,231,151,237,151,238,151,243,151,244,151,1,152,2,152,117,152,118,152,168,152,169,152,206,152,207,152,219,152,220,152,222,152,224,152,99,153,100,153,150,153,151,153,153,153,154,153,172,153,173,153,108,154,109,154,168,154,169,154,216,154,217,154,223,154,224,154,37,155,38,155,47,155,48,155,50,155,51,155,60,155,61,155,90,155,91,155,124,156,125,156,229,156,230,156,31,158,32,158,117,158,118,158,127,158,128,158,165,158,167,158,187,158,188,158,195,158,196,158,205,158,206,158,209,158,210,158,249,158,250,158,253,158,255,158,14,159,15,159,19,159,20,159,32,159,33,159,59,159,60,159,74,159,75,159,80,159,81,159,82,159,83,159,127,159,128,159,141,159,142,159,153,159,154,159,156,159,157,159,159,159,161,159,126,216,127,216,2,249,3,249,7,249,9,249,10,249,11,249,52,249,53,249,64,249,65,249,113,249,114,249,129,249,130,249,138,249,139,249,196,249,197,249,233,249,234,249,247,249,248,249,8,250,9,250,10,250,11,250,30,250,31,250,60,250,61,250,149,250,150,250,206,250,207,250,2,0,29,248,2,0,30,248,2,0,117,248,2,0,118,248,2,0,120,248,2,0,121,248,2,0,144,248,2,0,145,248,2,0,196,249,2,0,197,249,2,0,210,249,2,0,211,249,2,0,21,250,2,0,22,250,2,0,23,250,2,0,25,250,2,0,28,250,2,0,29,250,170,170,3,0,67,0,50,0,59,0,39,17,1,16,4,0,0,96,1,0,0,96,4,0,43,0,82,0,91,0,100,0,170,170,101,37,0,32,13,46,0,32,33,17,1,32,209,26,1,32,1,0,32,0,214,26,1,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,206,6,0,32,7,0,0,0,21,0,0,0,208,6,0,0,208,6,0,0,3,0,0,0,0,0,0,0,71,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,94,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,80,9,60,0,2,9,60,0,60,0,1,9,60,0,3,9,38,0,57,9,60,0,51,9,60,0,21,9,77,9,55,9,0,0,250,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,120,0,0,0,120,1,0,0,120,25,0,0,120,25,0,0,128,25,0,0,128,25,0,0,204,25,0,0,204,25,0,0,220,25,0,0,226,25,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,39,40,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,119,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,102,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,104,193,3,7,104,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,143,104,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,104,0,0,0,0,193,2,143,104,194,5,175,240,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,62,104,5,5,49,0,77,9,55,9,255,255,143,104,193,3,2,0,55,9,56,9,170,170,3,0,69,0,52,0,61,0,71,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,199,6,0,32,1,0,32,0,204,6,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,194,10,0,32,7,0,0,0,21,0,0,0,196,10,0,0,196,10,0,0,3,0,0,0,0,0,0,0,72,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,95,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,99,0,60,0,231,0,60,0,60,0,60,0,199,0,38,0,101,0,60,0,234,0,60,0,60,0,60,0,202,0,38,0,105,0,60,0,238,0,60,0,60,0,60,0,206,0,38,0,115,0,60,0,95,1,60,0,60,0,60,0,94,1,38,0,117,0,60,0,251,0,60,0,60,0,60,0,219,0,38,0,234,0,60,0,60,0,233,0,60,0,60,0,60,0,201,0,38,0,238,0,60,0,60,0,237,0,60,0,60,0,60,0,205,0,38,0,251,0,60,0,60,0,250,0,60,0,60,0,60,0,218,0,38,0,250,0,60,0,60,0,249,0,60,0,60,0,60,0,217,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,188,41,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,44,30,0,0,44,30,0,0,44,30,0,0,44,30,0,0,64,33,0,0,64,33,0,0,164,37,0,0,164,37,0,0,164,41,0,0,25,0,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,94,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,197,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,48,0,56,0,118,0,126,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,148,0,155,0,48,0,159,0,48,0,165,0,173,0,180,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,142,0,48,0,48,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,192,0,216,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,23,0,202,129,23,0,202,162,23,0,202,195,23,0,202,228,23,0,202,5,24,0,202,38,24,0,202,71,24,0,202,104,24,0,202,137,24,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,201,198,0,0,156,5,0,52,156,5,0,54,156,5,0,56,201,70,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,3,0,156,5,0,80,201,166,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,7,0,5,5,0,48,201,70,8,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,9,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,70,11,0,5,5,0,80,201,38,12,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,22,0,134,5,2,47,196,138,156,50,134,70,2,51,134,5,2,51,196,150,156,50,196,138,156,58,134,70,2,59,134,5,2,59,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,134,71,2,83,134,70,2,83,134,5,2,83,196,150,156,82,196,136,156,90,160,5,38,93,197,226,22,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,23,0,5,5,2,47,196,138,5,50,5,70,2,51,5,5,2,51,196,150,5,50,196,138,5,58,5,70,2,59,5,5,2,59,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,5,71,2,83,5,70,2,83,5,5,2,83,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,15,0,201,70,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,17,0,201,70,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,6,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,134,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,29,0,201,70,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,70,34,0,201,198,35,0,201,70,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,38,0,201,70,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,41,0,201,6,44,0,201,70,46,0,201,134,48,0,201,198,50,0,201,6,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,55,0,201,198,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,98,14,0,197,226,14,0,192,0,0,0,192,0,0,0,201,70,58,0,201,198,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,61,0,201,134,63,0,192,0,0,0,192,0,0,0,197,226,3,0,197,162,4,0,197,162,3,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,65,0,201,6,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,70,2,51,5,162,0,0,134,5,2,51,5,162,0,0,5,70,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,70,2,59,5,162,0,0,134,5,2,59,5,162,0,0,5,70,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,71,2,83,5,162,0,0,134,70,2,83,5,162,0,0,134,5,2,83,5,162,0,0,5,71,2,83,5,162,0,0,5,70,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,71,2,83,5,190,0,0,134,70,2,83,5,190,0,0,134,5,2,83,5,190,0,0,5,71,2,83,5,190,0,0,5,70,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,70,2,51,5,160,0,0,134,5,2,51,5,160,0,0,5,70,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,70,2,51,5,204,0,0,134,5,2,51,5,204,0,0,5,70,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,70,2,51,5,208,0,0,134,5,2,51,5,208,0,0,5,70,2,51,5,208,0,0,5,5,2,51,5,208,0,0,134,70,2,59,5,208,0,0,134,5,2,59,5,208,0,0,5,70,2,59,5,208,0,0,5,5,2,59,5,208,0,0,134,71,2,83,5,198,0,0,134,70,2,83,5,198,0,0,134,5,2,83,5,198,0,0,5,71,2,83,5,198,0,0,5,70,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,71,2,83,5,208,0,0,134,70,2,83,5,208,0,0,134,5,2,83,5,208,0,0,5,71,2,83,5,208,0,0,5,70,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,71,2,83,5,204,0,0,134,70,2,83,5,204,0,0,134,5,2,83,5,204,0,0,5,71,2,83,5,204,0,0,5,70,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,70,2,51,5,196,0,0,134,5,2,51,5,196,0,0,5,70,2,51,5,196,0,0,5,5,2,51,5,196,0,0,134,5,2,51,5,136,0,0,5,5,2,51,5,136,0,0,134,5,2,51,5,138,0,0,5,5,2,51,5,138,0,0,134,5,2,51,5,182,0,0,5,5,2,51,5,182,0,0,134,5,2,51,5,154,0,0,5,5,2,51,5,154,0,0,134,70,2,59,5,196,0,0,134,5,2,59,5,196,0,0,5,70,2,59,5,196,0,0,5,5,2,59,5,196,0,0,134,71,2,83,5,196,0,0,134,70,2,83,5,196,0,0,134,5,2,83,5,196,0,0,5,71,2,83,5,196,0,0,5,70,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,71,2,83,5,190,0,0,5,196,0,0,134,70,2,83,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,71,2,83,5,190,0,0,5,196,0,0,5,70,2,83,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,2,239,134,5,0,50,156,5,2,0,1,3,2,243,134,70,2,3,2,243,134,5,65,3,2,243,134,70,0,58,156,5,2,0,1,3,2,251,134,70,2,3,2,251,134,5,65,3,2,251,134,70,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,4,0,0,3,255,255,2,83,134,71,1,3,255,255,2,83,134,70,2,3,255,255,2,83,134,5,64,3,255,255,2,83,134,71,65,3,255,255,2,83,134,70,0,46,5,5,48,0,39,3,2,239,5,5,0,50,5,5,2,0,1,3,2,243,5,70,2,3,2,243,5,5,65,3,2,243,5,70,0,58,5,5,2,0,1,3,2,251,5,70,2,3,2,251,5,5,65,3,2,251,5,70,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,4,0,0,3,255,255,2,83,5,71,1,3,255,255,2,83,5,70,2,3,255,255,2,83,5,5,64,3,255,255,2,83,5,71,65,3,255,255,2,83,5,70,156,50,196,162,2,0,1,3,197,162,2,3,0,192,197,98,65,3,197,162,5,50,196,162,2,0,1,3,0,192,197,162,2,3,0,192,197,226,65,3,0,192,197,162,156,58,196,162,2,0,1,3,1,192,197,34,2,3,1,192,197,98,65,3,1,192,197,34,5,58,196,162,2,0,1,3,1,192,197,162,2,3,1,192,197,226,65,3,1,192,197,162,156,82,196,162,4,0,0,3,2,192,197,34,1,3,2,192,197,98,2,3,2,192,197,162,64,3,2,192,197,34,65,3,2,192,197,98,5,82,196,162,4,0,0,3,2,192,197,226,1,3,3,192,197,34,2,3,3,192,197,98,64,3,2,192,197,226,65,3,3,192,197,34,156,82,196,190,4,0,0,3,3,192,197,162,1,3,3,192,197,226,2,3,4,192,197,34,64,3,3,192,197,162,65,3,3,192,197,226,5,82,196,190,4,0,0,3,4,192,197,98,1,3,4,192,197,162,2,3,4,192,197,226,64,3,4,192,197,98,65,3,4,192,197,162,156,50,196,160,2,0,1,3,5,192,197,34,2,3,5,192,197,98,65,3,5,192,197,34,5,50,196,160,2,0,1,3,5,192,197,162,2,3,5,192,197,226,65,3,5,192,197,162,156,50,196,204,2,0,1,3,6,192,197,162,2,3,6,192,197,226,65,3,6,192,197,162,5,50,196,204,2,0,1,3,7,192,197,34,2,3,7,192,197,98,65,3,7,192,197,34,156,50,196,208,2,0,1,3,7,192,197,162,2,3,7,192,197,226,65,3,7,192,197,162,5,50,196,208,2,0,1,3,8,192,197,34,2,3,8,192,197,98,65,3,8,192,197,34,156,58,196,208,2,0,1,3,8,192,197,162,2,3,8,192,197,226,65,3,8,192,197,162,5,58,196,208,2,0,1,3,9,192,197,34,2,3,9,192,197,98,65,3,9,192,197,34,156,82,196,198,4,0,0,3,9,192,197,162,1,3,9,192,197,226,2,3,10,192,197,34,64,3,9,192,197,162,65,3,9,192,197,226,5,82,196,198,4,0,0,3,10,192,197,98,1,3,10,192,197,162,2,3,10,192,197,226,64,3,10,192,197,98,65,3,10,192,197,162,156,82,196,208,4,0,0,3,11,192,197,34,1,3,11,192,197,98,2,3,11,192,197,162,64,3,11,192,197,34,65,3,11,192,197,98,5,82,196,208,4,0,0,3,11,192,197,226,1,3,12,192,197,34,2,3,12,192,197,98,64,3,11,192,197,226,65,3,12,192,197,34,156,82,196,204,4,0,0,3,12,192,197,162,1,3,12,192,197,226,2,3,13,192,197,34,64,3,12,192,197,162,65,3,12,192,197,226,5,82,196,204,4,0,0,3,13,192,197,98,1,3,13,192,197,162,2,3,13,192,197,226,64,3,13,192,197,98,65,3,13,192,197,162,156,50,196,196,2,0,1,3,14,192,197,34,2,3,14,192,197,98,65,3,14,192,197,34,5,50,196,196,2,0,1,3,14,192,197,162,2,3,14,192,197,226,65,3,14,192,197,162,156,58,196,196,2,0,1,3,17,192,197,34,2,3,17,192,197,98,65,3,17,192,197,34,5,58,196,196,2,0,1,3,17,192,197,162,2,3,17,192,197,226,65,3,17,192,197,162,156,82,196,196,4,0,0,3,18,192,197,34,1,3,18,192,197,98,2,3,18,192,197,162,64,3,18,192,197,34,65,3,18,192,197,98,5,82,196,196,4,0,0,3,18,192,197,226,1,3,19,192,197,34,2,3,19,192,197,98,64,3,18,192,197,226,65,3,19,192,197,34,19,0,197,163,4,0,0,3,20,192,197,3,1,3,20,192,197,99,2,3,20,192,197,195,64,3,20,192,197,3,65,3,20,192,197,99,21,0,197,35,4,0,0,3,21,192,197,131,1,3,21,192,197,227,2,3,22,192,197,67,64,3,21,192,197,131,65,3,21,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,28,4,185,84,185,88,185,92,30,4,186,108,185,112,185,116,185,120,186,124,185,132,185,136,185,140,185,148,32,4,185,160,34,4,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,36,4,168,72,38,4,168,84,168,88,168,92,40,4,168,108,168,112,168,116,168,120,168,124,168,132,168,136,168,140,168,148,42,4,168,160,44,4,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,77,217,80,185,80,90,78,186,97,217,100,185,100,90,98,217,72,154,126,185,133,153,133,249,133,153,134,89,134,136,14,217,134,249,172,217,172,185,172,89,170,153,189,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,77,200,80,168,80,72,78,168,97,200,100,168,100,72,98,200,72,136,126,168,133,136,133,232,133,136,134,72,134,128,14,200,134,232,172,200,172,168,172,72,170,136,189,168,196,72,190,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,46,4,48,4,26,78,8,78,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,50,4,52,4,186,98,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,144,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,185,156,168,156,26,154,8,154,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,54,4,56,4,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,96,187,108,169,96,169,108,169,200,169,124,217,132,187,76,200,132,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,186,76,255,5,186,96,255,5,186,152,255,5,185,168,255,5,168,64,255,5,168,76,255,5,168,96,255,5,168,152,255,5,168,168,255,5,26,79,255,5,8,79,255,5,26,99,255,5,8,99,255,5,25,171,255,5,8,171,255,1,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,187,10,0,32,1,0,32,0,192,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,217,6,0,32,7,0,0,0,21,0,0,0,219,6,0,0,219,6,0,0,3,0,0,0,0,0,0,0,35,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,53,4,60,0,81,4,60,0,60,0,60,0,1,4,0,0,170,170,184,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,64,26,0,0,64,26,0,0,64,26,0,0,64,26,0,0,132,26,0,0,132,26,0,0,160,26,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,135,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,118,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,97,174,5,48,0,8,3,255,255,41,97,134,5,40,97,5,5,48,0,8,3,255,255,41,97,5,5,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,210,6,0,32,1,0,32,0,215,6,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,204,8,0,32,7,0,0,0,21,0,0,0,206,8,0,0,206,8,0,0,3,0,0,0,0,0,0,0,47,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,46,220,38,0,67,0,60,0,99,0,12,3,60,0,60,0,60,0,67,0,12,3,38,0,71,0,60,0,231,1,60,0,60,0,60,0,230,1,38,0,72,0,60,0,31,2,60,0,60,0,60,0,30,2,38,0,83,0,60,0,115,0,12,3,60,0,60,0,60,0,83,0,12,3,38,0,90,0,60,0,122,0,12,3,60,0,60,0,60,0,90,0,12,3,0,0,82,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,27,0,0,196,27,0,0,196,27,0,0,196,27,0,0,192,28,0,0,192,28,0,0,58,30,0,0,58,30,0,0,58,34,0,0,50,105,114,84,1,0,64,8,175,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,48,0,154,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,6,0,202,193,6,0,202,226,6,0,202,3,7,0,202,36,7,0,202,69,7,0,202,102,7,0,202,135,7,0,202,168,7,0,202,201,7,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,201,134,1,0,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,70,2,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,38,3,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,6,4,0,5,5,0,48,5,5,0,50,5,5,0,52,201,198,4,0,201,134,5,0,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,70,6,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,38,7,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,5,0,201,6,8,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,6,0,201,166,8,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,9,0,201,38,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,201,166,11,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,12,0,201,38,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,57,5,5,2,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,13,0,201,166,14,0,192,0,0,0,192,0,0,0,201,102,15,0,201,38,16,0,201,230,16,0,201,166,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,18,0,201,38,19,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,19,0,201,166,20,0,201,102,21,0,201,38,22,0,201,230,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,134,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,134,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,5,5,2,57,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,12,3,2,239,134,5,0,54,156,5,48,0,12,3,2,247,134,5,0,56,156,5,48,0,12,3,2,249,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,48,0,12,3,2,239,5,5,0,54,5,5,48,0,12,3,2,247,5,5,0,56,5,5,48,0,12,3,2,249,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,54,196,160,48,0,12,3,0,192,197,162,5,54,196,160,48,0,12,3,0,192,197,226,156,78,196,160,48,0,12,3,1,192,197,34,5,78,196,160,48,0,12,3,1,192,197,98,156,78,196,202,48,0,12,3,1,192,197,162,5,78,196,202,48,0,12,3,1,192,197,226,156,56,196,196,48,0,12,3,2,192,197,34,5,56,196,196,48,0,12,3,2,192,197,98,156,56,196,160,48,0,12,3,2,192,197,162,5,56,196,160,48,0,12,3,2,192,197,226,156,56,196,206,48,0,12,3,3,192,197,34,5,56,196,206,48,0,12,3,3,192,197,98,156,78,196,196,48,0,12,3,3,192,197,162,5,78,196,196,48,0,12,3,3,192,197,226,156,92,196,196,48,0,12,3,4,192,197,162,5,92,196,196,48,0,12,3,4,192,197,226,156,92,196,210,48,0,12,3,5,192,197,34,5,92,196,210,48,0,12,3,5,192,197,98,5,56,196,210,48,0,12,3,5,192,197,162,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,30,4,186,92,186,100,185,104,185,108,185,112,186,116,185,124,185,128,185,132,185,140,32,4,185,152,185,160,185,164,185,168,185,172,185,176,34,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,36,4,168,72,168,76,168,80,38,4,40,4,168,92,168,100,168,104,168,108,168,112,168,116,168,124,168,128,168,132,168,140,42,4,168,152,168,160,168,164,168,168,168,172,168,176,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,46,4,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,161,153,161,249,161,89,162,153,177,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,48,4,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,161,136,161,232,161,72,162,136,177,168,188,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,50,4,52,4,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,54,4,56,4,185,148,168,148,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,181,136,181,185,182,168,182,185,184,168,184,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,144,169,144,200,56,169,76,187,92,187,100,169,92,169,100,169,192,169,116,217,124,187,76,200,124,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,88,255,5,186,144,255,5,185,180,255,5,168,64,255,5,168,84,255,5,168,88,255,5,168,144,255,5,168,180,255,5,249,66,255,5,232,66,255,5,249,86,255,5,232,86,255,5,250,146,255,5,232,146,255,1,170,170,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,197,8,0,32,1,0,32,0,202,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,61,22,0,32,7,0,0,0,24,0,0,0,63,22,0,0,63,22,0,0,3,0,0,0,0,0,0,0,206,0,0,0,99,111,108,108,97,116,105,111,110,115,0,112,104,111,110,101,116,105,99,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,170,170,0,0,52,0,50,0,0,0,38,0,69,0,60,0,91,2,60,0,60,0,60,0,144,1,38,0,79,0,60,0,60,0,84,2,60,0,60,0,60,0,134,1,0,0,83,221,38,0,69,0,60,0,91,2,60,0,60,0,60,0,144,1,38,0,79,0,60,0,60,0,84,2,60,0,60,0,60,0,134,1,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,103,0,66,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,38,0,75,0,60,0,107,0,112,0,60,0,60,0,60,0,107,0,80,0,60,0,60,0,60,0,75,0,112,0,60,0,60,0,60,0,75,0,80,0,38,0,77,0,60,0,109,0,98,0,60,0,60,0,60,0,109,0,66,0,60,0,60,0,60,0,77,0,98,0,60,0,60,0,60,0,77,0,66,0,60,0,109,0,102,0,60,0,60,0,60,0,109,0,70,0,60,0,60,0,60,0,77,0,102,0,60,0,60,0,60,0,77,0,70,0,60,0,109,0,112,0,60,0,60,0,60,0,109,0,80,0,60,0,60,0,60,0,77,0,112,0,60,0,60,0,60,0,77,0,80,0,60,0,109,0,118,0,60,0,60,0,60,0,109,0,86,0,60,0,60,0,60,0,77,0,118,0,60,0,60,0,60,0,77,0,86,0,38,0,78,0,60,0,110,0,100,0,60,0,60,0,60,0,110,0,68,0,60,0,60,0,60,0,78,0,100,0,60,0,60,0,60,0,78,0,68,0,60,0,110,0,103,0,60,0,60,0,60,0,110,0,71,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,60,0,110,0,103,0,98,0,60,0,60,0,60,0,110,0,103,0,66,0,60,0,60,0,60,0,110,0,71,0,98,0,60,0,60,0,60,0,110,0,71,0,66,0,60,0,60,0,60,0,78,0,103,0,98,0,60,0,60,0,60,0,78,0,103,0,66,0,60,0,60,0,60,0,78,0,71,0,66,0,60,0,110,0,107,0,60,0,60,0,60,0,110,0,75,0,60,0,60,0,60,0,78,0,107,0,60,0,60,0,60,0,78,0,75,0,60,0,110,0,115,0,60,0,60,0,60,0,110,0,83,0,60,0,60,0,60,0,78,0,115,0,60,0,60,0,60,0,78,0,83,0,60,0,110,0,116,0,60,0,60,0,60,0,110,0,84,0,60,0,60,0,60,0,78,0,116,0,60,0,60,0,60,0,78,0,84,0,60,0,110,0,121,0,60,0,60,0,60,0,110,0,89,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,60,0,110,0,122,0,60,0,60,0,60,0,110,0,90,0,60,0,60,0,60,0,78,0,122,0,60,0,60,0,60,0,78,0,90,0,38,0,83,0,60,0,115,0,104,0,60,0,60,0,60,0,115,0,72,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,84,0,60,0,116,0,115,0,60,0,60,0,60,0,116,0,83,0,60,0,60,0,60,0,84,0,115,0,60,0,60,0,60,0,84,0,83,0,0,0,170,170,170,170,170,170,10,60,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,25,0,0,116,25,0,0,68,33,0,0,68,33,0,0,20,41,0,0,20,41,0,0,4,53,0,0,166,53,0,0,238,59,0,0,50,105,114,84,1,0,64,8,138,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,91,0,99,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,121,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,115,0,48,0,48,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,64,1,192,0,192,0,108,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,61,0,202,97,61,0,202,130,61,0,202,163,61,0,202,196,61,0,202,229,61,0,202,6,62,0,202,39,62,0,202,72,62,0,202,105,62,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,201,0,0,0,156,5,0,56,156,5,0,58,156,5,0,60,201,128,3,0,156,5,0,64,201,96,6,0,201,128,18,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,32,76,0,201,224,83,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,201,0,94,0,5,5,0,56,5,5,0,58,5,5,0,60,201,160,97,0,5,5,0,64,201,128,100,0,201,160,112,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,32,173,0,201,224,180,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,60,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,60,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,61,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,128,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,136,0,5,0,2,5,69,0,136,0,5,0,3,5,69,0,136,0,5,0,4,5,69,0,136,0,5,0,5,5,69,0,136,0,5,0,6,5,69,0,71,0,5,0,2,5,69,0,71,0,5,0,3,5,69,0,71,0,5,0,4,5,69,0,71,0,5,0,5,5,69,0,71,0,5,0,6,5,69,0,136,0,5,0,5,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,150,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,160,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,160,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,142,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,142,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,160,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,160,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,160,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,160,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,142,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,142,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,150,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,136,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,202,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,202,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,202,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,202,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,164,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,164,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,136,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,210,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,210,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,204,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,204,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,142,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,142,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,150,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,146,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,138,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,138,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,182,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,182,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,154,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,154,0,0,0,0,0,70,0,5,0,2,5,69,0,70,0,5,0,3,5,69,0,70,0,5,0,4,5,69,0,70,0,5,0,5,5,69,0,70,0,5,0,6,5,69,0,70,0,5,0,5,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,160,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,142,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,160,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,160,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,142,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,150,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,202,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,202,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,164,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,210,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,210,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,204,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,142,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,210,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,138,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,182,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,154,0,0,0,0,0,0,0,0,136,5,2,55,5,156,0,0,71,5,2,55,5,156,0,0,136,5,2,55,5,196,0,0,71,5,2,55,5,196,0,0,136,5,2,55,5,210,0,0,71,5,2,55,5,210,0,0,136,5,2,63,5,136,0,0,71,5,2,63,5,136,0,0,136,5,2,63,5,156,0,0,71,5,2,63,5,156,0,0,136,5,2,67,5,156,0,0,71,5,2,67,5,156,0,0,136,5,2,67,5,196,0,0,71,5,2,67,5,196,0,0,136,5,2,67,5,210,0,0,71,5,2,67,5,210,0,0,136,5,3,67,5,156,0,0,71,5,3,67,5,156,0,0,136,5,4,67,5,136,0,0,71,5,4,67,5,136,0,0,136,5,4,67,5,156,0,0,71,5,4,67,5,156,0,0,136,5,5,67,5,154,0,0,71,5,5,67,5,154,0,0,136,5,5,67,5,196,0,0,71,5,5,67,5,196,0,0,139,5,4,69,5,156,0,0,139,5,4,69,5,196,0,0,139,5,4,69,5,210,0,0,74,5,4,69,5,156,0,0,73,5,4,69,5,156,0,0,74,5,4,69,5,196,0,0,73,5,4,69,5,196,0,0,74,5,4,69,5,210,0,0,73,5,4,69,5,210,0,0,136,5,2,69,5,144,0,0,71,5,2,69,5,144,0,0,136,5,3,69,5,142,0,0,71,5,3,69,5,142,0,0,136,5,3,69,5,140,0,0,71,5,3,69,5,140,0,0,136,5,3,69,5,156,0,0,71,5,3,69,5,156,0,0,136,5,3,69,5,160,0,0,71,5,3,69,5,160,0,0,136,5,3,69,5,144,0,0,71,5,3,69,5,144,0,0,136,5,3,69,5,136,0,0,71,5,3,69,5,136,0,0,136,5,2,69,5,156,0,0,71,5,2,69,5,156,0,0,136,5,2,69,5,196,0,0,71,5,2,69,5,196,0,0,136,5,2,69,5,210,0,0,71,5,2,69,5,210,0,0,136,5,2,69,5,160,0,0,71,5,2,69,5,160,0,0,136,5,2,69,5,204,0,0,71,5,2,69,5,204,0,0,136,5,3,69,5,164,0,0,71,5,3,69,5,164,0,0,136,5,2,79,5,142,0,0,71,5,2,79,5,142,0,0,136,5,2,79,5,144,0,0,71,5,2,79,5,144,0,0,136,5,2,79,5,156,0,0,71,5,2,79,5,156,0,0,136,5,2,79,5,196,0,0,71,5,2,79,5,196,0,0,136,5,2,79,5,150,0,0,71,5,2,79,5,150,0,0,136,5,2,79,5,160,0,0,71,5,2,79,5,160,0,0,136,5,2,79,5,206,0,0,71,5,2,79,5,206,0,0,71,5,2,79,5,210,0,0,136,5,2,81,5,136,0,0,71,5,2,81,5,136,0,0,136,5,2,81,5,142,0,0,71,5,2,81,5,142,0,0,136,5,2,81,5,160,0,0,71,5,2,81,5,160,0,0,136,5,2,81,5,144,0,0,71,5,2,81,5,144,0,0,136,5,2,81,5,202,0,0,71,5,2,81,5,202,0,0,136,5,2,81,5,156,0,0,71,5,2,81,5,156,0,0,136,5,2,81,5,196,0,0,71,5,2,81,5,196,0,0,136,5,2,81,5,136,0,0,5,156,0,0,71,5,2,81,5,136,0,0,5,156,0,0,136,5,2,81,5,144,0,0,5,156,0,0,71,5,2,81,5,144,0,0,5,156,0,0,136,5,2,81,5,196,0,0,5,156,0,0,71,5,2,81,5,196,0,0,5,156,0,0,70,5,2,55,5,156,0,0,5,5,2,55,5,156,0,0,70,5,2,55,5,196,0,0,5,5,2,55,5,196,0,0,70,5,2,55,5,210,0,0,5,5,2,55,5,210,0,0,70,5,2,63,5,136,0,0,5,5,2,63,5,136,0,0,70,5,2,63,5,156,0,0,5,5,2,63,5,156,0,0,70,5,2,67,5,156,0,0,5,5,2,67,5,156,0,0,70,5,2,67,5,196,0,0,5,5,2,67,5,196,0,0,70,5,2,67,5,210,0,0,5,5,2,67,5,210,0,0,70,5,3,67,5,156,0,0,5,5,3,67,5,156,0,0,70,5,4,67,5,136,0,0,5,5,4,67,5,136,0,0,70,5,4,67,5,156,0,0,5,5,4,67,5,156,0,0,70,5,5,67,5,154,0,0,5,5,5,67,5,154,0,0,70,5,5,67,5,196,0,0,5,5,5,67,5,196,0,0,72,5,4,69,5,156,0,0,71,5,4,69,5,156,0,0,72,5,4,69,5,196,0,0,71,5,4,69,5,196,0,0,72,5,4,69,5,210,0,0,71,5,4,69,5,210,0,0,70,5,4,69,5,156,0,0,5,5,4,69,5,156,0,0,70,5,4,69,5,196,0,0,5,5,4,69,5,196,0,0,70,5,4,69,5,210,0,0,5,5,4,69,5,210,0,0,193,5,5,69,5,136,0,0,193,5,5,69,5,150,0,0,70,5,2,69,5,144,0,0,5,5,2,69,5,144,0,0,70,5,3,69,5,142,0,0,5,5,3,69,5,142,0,0,70,5,3,69,5,140,0,0,5,5,3,69,5,140,0,0,70,5,3,69,5,156,0,0,5,5,3,69,5,156,0,0,70,5,3,69,5,160,0,0,5,5,3,69,5,160,0,0,193,2,5,69,5,160,0,0,193,3,5,69,5,136,0,0,193,3,5,69,5,142,0,0,193,3,5,69,5,160,0,0,193,3,5,69,5,144,0,0,193,4,5,69,5,160,0,0,193,4,5,69,5,144,0,0,193,5,5,69,5,142,0,0,193,6,5,69,5,136,0,0,193,6,5,69,5,156,0,0,193,6,5,69,5,144,0,0,70,5,3,69,5,144,0,0,5,5,3,69,5,144,0,0,193,2,5,69,5,144,0,0,70,5,3,69,5,136,0,0,5,5,3,69,5,136,0,0,193,3,5,69,5,202,0,0,193,4,5,69,5,202,0,0,193,5,5,69,5,164,0,0,70,5,2,69,5,156,0,0,5,5,2,69,5,156,0,0,70,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,70,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,70,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,70,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,70,5,3,69,5,164,0,0,5,5,3,69,5,164,0,0,193,2,5,69,5,136,0,0,193,2,5,69,5,196,0,0,193,2,5,69,5,210,0,0,193,3,5,69,5,156,0,0,193,3,5,69,5,196,0,0,193,3,5,69,5,136,0,0,5,156,0,0,193,3,5,69,5,144,0,0,5,156,0,0,193,3,5,69,5,196,0,0,5,156,0,0,193,4,5,69,5,156,0,0,193,4,5,69,5,196,0,0,193,4,5,69,5,210,0,0,193,4,5,69,5,204,0,0,193,5,5,69,5,156,0,0,193,6,5,69,5,142,0,0,193,6,5,69,5,196,0,0,193,6,5,69,5,210,0,0,193,4,5,69,5,150,0,0,193,5,5,69,5,146,0,0,193,5,5,69,5,138,0,0,193,5,5,69,5,196,0,0,193,5,5,69,5,182,0,0,193,5,5,69,5,154,0,0,70,5,2,79,5,142,0,0,5,5,2,79,5,142,0,0,70,5,2,79,5,144,0,0,5,5,2,79,5,144,0,0,70,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,70,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,70,5,2,79,5,150,0,0,5,5,2,79,5,150,0,0,70,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,70,5,2,79,5,206,0,0,5,5,2,79,5,206,0,0,5,5,2,79,5,210,0,0,70,5,2,81,5,136,0,0,5,5,2,81,5,136,0,0,70,5,2,81,5,142,0,0,5,5,2,81,5,142,0,0,70,5,2,81,5,160,0,0,5,5,2,81,5,160,0,0,70,5,2,81,5,144,0,0,5,5,2,81,5,144,0,0,70,5,2,81,5,202,0,0,5,5,2,81,5,202,0,0,70,5,2,81,5,156,0,0,5,5,2,81,5,156,0,0,70,5,2,81,5,196,0,0,5,5,2,81,5,196,0,0,70,5,2,81,5,136,0,0,5,156,0,0,5,5,2,81,5,136,0,0,5,156,0,0,70,5,2,81,5,144,0,0,5,156,0,0,5,5,2,81,5,144,0,0,5,156,0,0,70,5,2,81,5,196,0,0,5,156,0,0,5,5,2,81,5,196,0,0,5,156,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,54,156,5,7,0,4,30,12,0,4,30,0,192,197,162,5,30,0,192,197,226,6,30,1,192,197,34,7,30,1,192,197,98,66,0,2,247,136,5,98,0,2,247,71,5,2,30,197,162,3,30,0,192,197,98,0,62,156,5,5,0,85,30,9,0,85,30,1,192,197,226,86,30,2,192,197,34,87,30,2,192,197,98,80,0,2,255,136,5,112,0,2,255,71,5,84,30,1,192,197,162,0,66,156,5,23,0,6,30,42,0,86,30,20,0,125,30,9,0,125,30,5,192,197,226,126,30,6,192,197,34,127,30,6,192,197,98,86,30,5,192,197,34,87,30,5,192,197,98,124,30,5,192,197,162,31,30,9,0,31,30,4,192,197,98,84,30,4,192,197,162,85,30,4,192,197,226,6,30,3,192,197,162,7,30,3,192,197,226,30,30,4,192,197,34,112,0,22,0,3,30,9,0,3,30,2,192,197,226,4,30,3,192,197,34,5,30,3,192,197,98,112,0,255,255,4,67,71,5,118,0,255,255,5,67,71,5,2,30,2,192,197,162,86,0,12,0,86,0,255,255,5,67,136,5,98,0,255,255,2,67,71,5,102,0,255,255,3,67,71,5,66,0,255,255,2,67,136,5,70,0,255,255,3,67,136,5,80,0,255,255,4,67,136,5,0,68,156,5,0,0,116,0,26,2,206,0,103,30,103,0,146,30,50,0,243,30,25,0,247,30,11,0,247,30,20,192,198,66,248,30,20,192,198,130,249,30,20,192,198,194,42,33,198,129,243,30,19,192,198,66,244,30,19,192,198,130,245,30,19,192,198,194,246,30,20,192,198,2,149,30,12,0,149,30,18,192,198,66,151,30,18,192,198,130,153,30,18,192,198,194,242,30,19,192,198,2,146,30,17,192,198,130,147,30,17,192,198,194,148,30,18,192,198,2,110,30,26,0,142,30,12,0,142,30,16,192,198,130,143,30,16,192,198,194,144,30,17,192,198,2,145,30,17,192,198,66,110,30,15,192,198,130,111,30,15,192,198,194,112,30,16,192,198,2,113,30,16,192,198,66,106,30,12,0,106,30,14,192,198,130,107,30,14,192,198,194,108,30,15,192,198,2,109,30,15,192,198,66,103,30,13,192,198,99,104,30,13,192,198,195,105,30,14,192,198,35,32,30,51,0,53,30,26,0,99,30,12,0,99,30,12,192,198,2,100,30,12,192,198,67,101,30,12,192,198,163,102,30,13,192,198,3,53,30,11,192,198,2,96,30,11,192,198,66,97,30,11,192,198,130,98,30,11,192,198,194,49,30,12,0,49,30,10,192,198,2,50,30,10,192,198,66,51,30,10,192,198,130,52,30,10,192,198,194,32,30,14,192,197,226,33,30,15,192,197,34,48,30,9,192,198,194,13,30,23,0,16,30,12,0,16,30,13,192,197,226,17,30,14,192,197,34,18,30,14,192,197,98,19,30,14,192,197,162,13,30,13,192,197,34,14,30,13,192,197,98,15,30,13,192,197,162,51,2,12,0,51,2,9,192,198,130,10,30,12,192,197,98,11,30,12,192,197,162,12,30,12,192,197,226,26,2,8,192,198,194,27,2,9,192,198,2,50,2,9,192,198,66,90,1,101,0,120,1,51,0,230,1,26,0,244,1,12,0,244,1,11,192,197,226,245,1,12,192,197,34,24,2,8,192,198,66,25,2,8,192,198,130,230,1,11,192,197,98,231,1,11,192,197,162,232,1,7,192,198,194,233,1,8,192,198,2,123,1,12,0,123,1,6,192,198,194,124,1,7,192,198,2,125,1,7,192,198,66,126,1,7,192,198,130,120,1,6,192,198,2,121,1,6,192,198,66,122,1,6,192,198,130,97,1,23,0,100,1,12,0,100,1,5,192,198,2,101,1,5,192,198,66,118,1,5,192,198,130,119,1,5,192,198,194,97,1,4,192,198,66,98,1,4,192,198,130,99,1,4,192,198,194,93,1,12,0,93,1,3,192,198,66,94,1,3,192,198,130,95,1,3,192,198,194,96,1,4,192,198,2,90,1,2,192,198,130,91,1,2,192,198,194,92,1,3,192,198,2,221,0,51,0,30,1,26,0,34,1,12,0,34,1,10,192,197,226,35,1,11,192,197,34,54,1,2,192,198,2,55,1,2,192,198,66,30,1,9,192,197,226,31,1,10,192,197,34,32,1,10,192,197,98,33,1,10,192,197,162,14,1,12,0,14,1,8,192,197,226,15,1,9,192,197,34,28,1,9,192,197,98,29,1,9,192,197,162,221,0,1,192,198,66,253,0,1,192,198,130,255,0,1,192,198,194,100,0,54,0,115,0,12,0,115,0,0,192,198,193,116,0,0,192,198,225,121,0,1,192,198,1,122,0,1,192,198,33,100,0,255,255,2,69,71,5,103,0,3,0,107,0,0,192,198,161,199,127,3,69,71,5,4,30,12,0,4,30,7,192,197,226,5,30,8,192,197,34,6,30,8,192,197,98,7,30,8,192,197,162,66,0,255,255,4,69,74,5,98,0,255,255,4,69,73,5,2,30,7,192,197,98,3,30,7,192,197,162,83,0,11,0,83,0,198,161,84,0,0,192,198,65,89,0,0,192,198,97,90,0,0,192,198,129,68,0,255,255,2,69,136,5,71,0,2,0,75,0,198,129,195,127,3,69,136,5,66,0,255,255,4,69,139,5,2,30,6,192,197,162,4,30,6,192,197,226,6,30,7,192,197,34,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,17,192,197,226,41,30,18,192,197,34,42,30,18,192,197,98,43,30,18,192,197,162,150,30,18,192,197,226,36,30,16,192,197,226,37,30,17,192,197,34,38,30,17,192,197,98,39,30,17,192,197,162,30,2,12,0,30,2,15,192,197,226,31,2,16,192,197,34,34,30,16,192,197,98,35,30,16,192,197,162,72,0,255,255,2,79,136,5,104,0,255,255,2,79,71,5,36,1,15,192,197,98,37,1,15,192,197,162,0,80,156,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,23,192,197,195,104,30,24,192,197,35,105,30,24,192,197,131,100,30,22,192,197,163,101,30,23,192,197,3,102,30,23,192,197,99,25,2,21,192,197,98,96,30,21,192,197,162,97,30,21,192,197,226,98,30,22,192,197,34,99,30,22,192,197,98,93,1,20,0,96,1,9,0,96,1,20,192,197,162,97,1,20,192,197,226,24,2,21,192,197,34,93,1,19,192,197,226,94,1,20,192,197,34,95,1,20,192,197,98,83,0,255,255,2,81,136,5,115,0,255,255,2,81,71,5,90,1,19,192,197,34,91,1,19,192,197,98,92,1,19,192,197,162,0,54,5,5,7,0,4,30,12,0,4,30,25,192,197,98,5,30,25,192,197,162,6,30,25,192,197,226,7,30,26,192,197,34,66,0,2,247,70,5,98,0,2,247,5,5,2,30,24,192,197,226,3,30,25,192,197,34,0,62,5,5,5,0,85,30,9,0,85,30,26,192,197,162,86,30,26,192,197,226,87,30,27,192,197,34,80,0,2,255,70,5,112,0,2,255,5,5,84,30,26,192,197,98,0,66,5,5,23,0,6,30,42,0,86,30,20,0,125,30,9,0,125,30,30,192,197,162,126,30,30,192,197,226,127,30,31,192,197,34,86,30,29,192,197,226,87,30,30,192,197,34,124,30,30,192,197,98,31,30,9,0,31,30,29,192,197,34,84,30,29,192,197,98,85,30,29,192,197,162,6,30,28,192,197,98,7,30,28,192,197,162,30,30,28,192,197,226,112,0,22,0,3,30,9,0,3,30,27,192,197,162,4,30,27,192,197,226,5,30,28,192,197,34,112,0,255,255,4,67,5,5,118,0,255,255,5,67,5,5,2,30,27,192,197,98,86,0,12,0,86,0,255,255,5,67,70,5,98,0,255,255,2,67,5,5,102,0,255,255,3,67,5,5,66,0,255,255,2,67,70,5,70,0,255,255,3,67,70,5,80,0,255,255,4,67,70,5,0,68,5,5,0,0,116,0,26,2,207,0,103,30,104,0,146,30,51,0,243,30,26,0,247,30,12,0,247,30,50,192,197,130,248,30,31,192,198,2,249,30,50,192,197,194,42,33,21,192,198,1,243,30,50,192,197,2,244,30,30,192,198,130,245,30,50,192,197,66,246,30,30,192,198,194,149,30,12,0,149,30,49,192,197,66,151,30,49,192,197,130,153,30,49,192,197,194,242,30,30,192,198,66,146,30,29,192,198,194,147,30,49,192,197,2,148,30,30,192,198,2,110,30,26,0,142,30,12,0,142,30,29,192,198,66,143,30,48,192,197,130,144,30,29,192,198,130,145,30,48,192,197,194,110,30,28,192,198,194,111,30,48,192,197,2,112,30,29,192,198,2,113,30,48,192,197,66,106,30,12,0,106,30,28,192,198,66,107,30,47,192,197,130,108,30,28,192,198,130,109,30,47,192,197,194,103,30,46,192,197,195,104,30,27,192,198,227,105,30,47,192,197,35,32,30,51,0,53,30,26,0,99,30,12,0,99,30,46,192,197,34,100,30,27,192,198,35,101,30,46,192,197,99,102,30,27,192,198,131,53,30,45,192,197,162,96,30,26,192,198,162,97,30,45,192,197,226,98,30,26,192,198,226,49,30,12,0,49,30,45,192,197,34,50,30,26,192,198,34,51,30,45,192,197,98,52,30,26,192,198,98,32,30,44,192,197,162,33,30,44,192,197,226,48,30,25,192,198,226,13,30,23,0,16,30,12,0,16,30,43,192,197,162,17,30,43,192,197,226,18,30,44,192,197,34,19,30,44,192,197,98,13,30,42,192,197,226,14,30,43,192,197,34,15,30,43,192,197,98,51,2,12,0,51,2,41,192,197,226,10,30,42,192,197,34,11,30,42,192,197,98,12,30,42,192,197,162,26,2,25,192,198,98,27,2,41,192,197,162,50,2,25,192,198,162,90,1,101,0,120,1,51,0,230,1,26,0,244,1,12,0,244,1,40,192,197,226,245,1,41,192,197,34,24,2,25,192,198,34,25,2,41,192,197,98,230,1,40,192,197,34,231,1,40,192,197,98,232,1,24,192,198,226,233,1,40,192,197,162,123,1,12,0,123,1,24,192,198,98,124,1,39,192,197,162,125,1,24,192,198,162,126,1,39,192,197,226,120,1,23,192,198,226,121,1,24,192,198,34,122,1,39,192,197,98,97,1,23,0,100,1,12,0,100,1,23,192,198,98,101,1,38,192,197,226,118,1,23,192,198,162,119,1,39,192,197,34,97,1,38,192,197,98,98,1,23,192,198,34,99,1,38,192,197,162,93,1,12,0,93,1,37,192,197,226,94,1,22,192,198,162,95,1,38,192,197,34,96,1,22,192,198,226,90,1,22,192,198,34,91,1,37,192,197,162,92,1,22,192,198,98,221,0,51,0,30,1,26,0,34,1,12,0,34,1,36,192,197,226,35,1,37,192,197,34,54,1,21,192,198,226,55,1,37,192,197,98,30,1,35,192,197,226,31,1,36,192,197,34,32,1,36,192,197,98,33,1,36,192,197,162,14,1,12,0,14,1,34,192,197,226,15,1,35,192,197,34,28,1,35,192,197,98,29,1,35,192,197,162,221,0,21,192,198,162,253,0,34,192,197,98,255,0,34,192,197,162,100,0,59,0,115,0,16,0,115,0,255,255,5,69,193,3,116,0,255,255,5,69,193,4,121,0,255,255,5,69,193,5,122,0,255,255,5,69,193,6,100,0,255,255,2,69,5,5,103,0,4,0,107,0,255,255,5,69,193,2,199,127,3,69,5,5,4,30,12,0,4,30,33,192,197,98,5,30,33,192,197,162,6,30,33,192,197,226,7,30,34,192,197,34,66,0,255,255,4,69,70,5,98,0,255,255,4,69,5,5,2,30,32,192,197,226,3,30,33,192,197,34,83,0,12,0,83,0,21,192,198,33,84,0,21,192,198,65,89,0,21,192,198,97,90,0,21,192,198,129,68,0,255,255,2,69,70,5,71,0,3,0,75,0,21,192,198,1,199,127,3,69,70,5,4,30,12,0,4,30,31,192,197,226,5,30,32,192,197,34,6,30,32,192,197,98,7,30,32,192,197,162,66,0,255,255,4,69,72,5,98,0,255,255,4,69,71,5,2,30,31,192,197,98,3,30,31,192,197,162,0,78,5,5,16,0,36,30,29,0,40,30,15,0,40,30,53,192,197,130,41,30,53,192,197,194,42,30,54,192,197,2,43,30,54,192,197,66,150,30,54,192,197,130,36,30,52,192,197,130,37,30,52,192,197,194,38,30,53,192,197,2,39,30,53,192,197,66,30,2,12,0,30,2,51,192,197,130,31,2,51,192,197,194,34,30,52,192,197,2,35,30,52,192,197,66,72,0,255,255,2,79,70,5,104,0,255,255,2,79,5,5,36,1,51,192,197,2,37,1,51,192,197,66,0,80,5,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,59,192,197,99,104,30,59,192,197,195,105,30,60,192,197,35,100,30,58,192,197,67,101,30,58,192,197,163,102,30,59,192,197,3,25,2,57,192,197,2,96,30,57,192,197,66,97,30,57,192,197,130,98,30,57,192,197,194,99,30,58,192,197,2,93,1,20,0,96,1,9,0,96,1,56,192,197,66,97,1,56,192,197,130,24,2,56,192,197,194,93,1,55,192,197,130,94,1,55,192,197,194,95,1,56,192,197,2,83,0,255,255,2,81,70,5,115,0,255,255,2,81,5,5,90,1,54,192,197,194,91,1,55,192,197,2,92,1,55,192,197,66,80,0,66,0,67,0,68,0,69,0,70,0,73,0,75,0,76,0,80,0,81,0,83,0,85,0,86,0,87,0,89,0,91,0,98,0,99,0,100,0,101,0,102,0,105,0,107,0,108,0,112,0,113,0,115,0,117,0,118,0,119,0,121,0,123,0,221,0,222,0,253,0,254,0,255,0,0,1,14,1,16,1,28,1,38,1,54,1,56,1,90,1,102,1,118,1,127,1,230,1,234,1,244,1,246,1,24,2,28,2,30,2,32,2,50,2,52,2,2,30,8,30,10,30,20,30,30,30,44,30,48,30,54,30,84,30,88,30,96,30,114,30,124,30,128,30,142,30,152,30,153,30,154,30,242,30,250,30,42,33,43,33,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,26,4,185,88,186,92,186,100,32,4,185,112,38,4,56,4,185,172,185,176,185,180,185,188,156,4,166,4,185,212,185,216,185,220,185,224,185,228,185,232,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,188,4,168,88,168,92,168,100,194,4,168,112,200,4,218,4,168,172,168,176,168,180,168,188,62,5,72,5,168,212,168,216,168,220,168,224,168,228,168,232,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,172,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,93,154,93,250,93,90,94,217,68,154,138,185,173,153,173,249,173,153,174,89,174,136,14,217,174,185,213,153,213,249,213,89,214,153,229,185,236,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,93,136,93,232,93,72,94,200,68,136,138,168,173,136,173,232,173,136,174,72,174,128,14,200,174,168,213,136,213,232,213,72,214,136,229,168,236,72,230,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,184,153,113,136,113,249,114,232,114,25,114,8,114,121,115,104,115,89,115,72,115,154,137,136,137,250,138,232,138,26,138,8,138,10,8,185,168,168,168,57,175,40,175,217,173,200,173,121,174,104,174,12,8,14,8,153,189,136,189,249,190,232,190,25,190,8,190,154,193,136,193,250,193,232,193,250,194,232,194,26,194,8,194,249,202,232,202,25,202,8,202,185,208,168,208,153,214,136,214,57,215,40,215,217,213,200,213,57,214,40,214,121,214,104,214,25,215,8,215,249,221,232,221,249,229,232,229,89,230,153,233,136,233,185,234,168,234,25,234,8,234,232,192,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,192,169,192,200,56,169,72,187,92,187,100,169,92,169,100,169,240,169,136,217,172,187,72,200,172,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,80,66,4,187,84,98,4,178,84,255,5,185,104,80,4,187,108,112,4,178,108,255,5,185,116,66,4,187,120,70,4,187,124,80,4,187,128,86,4,187,132,98,4,178,120,102,4,178,124,112,4,178,128,118,4,178,132,255,5,186,136,68,4,187,140,71,2,75,4,187,148,83,4,187,152,84,4,187,156,89,4,187,160,90,4,187,164,100,4,178,140,103,2,107,4,178,148,115,4,178,152,116,4,178,156,121,4,178,160,122,4,178,164,221,4,155,161,253,4,146,161,255,4,82,162,14,5,27,142,15,5,18,142,28,5,251,145,29,5,242,145,30,5,219,145,31,5,210,145,32,5,187,146,33,5,178,146,34,5,251,146,35,5,242,146,54,5,251,150,55,5,242,150,90,5,155,153,91,5,146,153,92,5,251,153,93,5,242,153,94,5,251,154,95,5,242,154,96,5,27,154,97,5,18,154,98,5,251,158,99,5,242,158,100,5,27,158,101,5,18,158,118,5,251,161,119,5,242,161,120,5,91,162,121,5,155,165,122,5,146,165,123,5,187,166,124,5,178,166,125,5,27,166,126,5,18,166,255,5,186,192,72,4,187,196,104,4,178,196,36,5,251,197,37,5,242,197,255,5,185,200,83,4,187,204,115,4,178,204,90,5,155,205,91,5,146,205,92,5,251,205,93,5,242,205,94,5,251,206,95,5,242,206,96,5,27,206,97,5,18,206,255,5,168,80,66,4,177,84,98,4,168,84,255,5,168,104,80,4,177,108,112,4,168,108,255,5,168,116,66,4,177,120,70,4,177,124,80,4,177,128,86,4,177,132,98,4,168,120,102,4,168,124,112,4,168,128,118,4,168,132,255,5,168,136,68,4,177,140,71,2,75,4,177,148,83,4,177,152,84,4,177,156,89,4,177,160,90,4,177,164,100,4,168,140,103,2,107,4,168,148,115,4,168,152,116,4,168,156,121,4,168,160,122,4,168,164,221,4,145,161,253,4,136,161,255,4,72,162,14,5,17,142,15,5,8,142,28,5,241,145,29,5,232,145,30,5,209,145,31,5,200,145,32,5,177,146,33,5,168,146,34,5,241,146,35,5,232,146,54,5,241,150,55,5,232,150,90,5,145,153,91,5,136,153,92,5,241,153,93,5,232,153,94,5,241,154,95,5,232,154,96,5,17,154,97,5,8,154,98,5,241,158,99,5,232,158,100,5,17,158,101,5,8,158,118,5,241,161,119,5,232,161,120,5,81,162,121,5,145,165,122,5,136,165,123,5,177,166,124,5,168,166,125,5,17,166,126,5,8,166,255,5,168,192,72,4,177,196,104,4,168,196,36,5,241,197,37,5,232,197,255,5,168,200,83,4,177,204,115,4,168,204,90,5,145,205,91,5,136,205,92,5,241,205,93,5,232,205,94,5,241,206,95,5,232,206,96,5,17,206,97,5,8,206,255,1,170,170,3,0,69,0,52,0,61,0,207,0,0,16,22,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,96,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,52,0,0,0,52,0,0,0,4,25,0,0,4,25,0,0,4,25,0,0,4,25,0,0,72,25,0,0,50,105,114,84,1,0,64,8,132,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,91,0,99,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,115,0,48,0,48,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,64,1,192,0,192,0,108,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,219,15,0,16,4,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,211,15,0,32,52,22,0,32,1,0,32,0,57,22,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,0,0,32,7,0,0,0,21,0,0,0,122,0,0,0,122,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,111,0,111,0,93,0,0,0,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,24,0,0,0,0,0,0,115,180,255,132,115,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,0,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,113,0,0,32,1,0,32,0,118,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,250,9,0,32,7,0,0,0,21,0,0,0,252,9,0,0,252,9,0,0,3,0,0,0,0,0,0,0,72,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,96,220,38,0,0,3,61,0,7,3,0,3,38,0,1,3,61,0,7,3,1,3,38,0,3,3,61,0,7,3,3,3,38,0,65,0,60,0,60,0,5,1,60,0,60,0,60,0,4,1,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,69,0,60,0,60,0,25,1,60,0,60,0,60,0,24,1,60,0,60,0,23,1,60,0,60,0,60,0,22,1,38,0,73,0,60,0,60,0,47,1,60,0,60,0,60,0,46,1,60,0,60,0,121,0,60,0,60,0,60,0,89,0,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,85,0,60,0,60,0,115,1,60,0,60,0,60,0,114,1,60,0,60,0,107,1,60,0,60,0,60,0,106,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,154,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,29,0,0,212,29,0,0,212,29,0,0,212,29,0,0,240,31,0,0,240,31,0,0,98,34,0,0,98,34,0,0,130,38,0,0,50,105,114,84,1,0,64,8,208,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,108,0,116,0,48,0,56,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,136,0,144,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,0,48,0,48,0,170,0,177,0,184,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,160,0,48,0,48,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,176,1,192,0,228,1,192,0,192,0,192,0,32,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,15,0,202,193,15,0,202,226,15,0,202,3,16,0,202,36,16,0,202,69,16,0,202,102,16,0,202,135,16,0,202,168,16,0,202,201,16,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,198,0,0,156,5,0,48,201,134,1,0,156,5,0,52,156,5,0,54,156,5,0,56,201,166,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,102,3,0,156,5,0,80,201,70,4,0,156,5,0,84,160,5,0,86,156,5,0,88,134,71,0,58,201,166,5,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,6,0,5,5,0,44,201,70,7,0,5,5,0,48,201,6,8,0,5,5,0,52,5,5,0,54,5,5,0,56,201,38,9,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,230,9,0,5,5,0,80,201,198,10,0,5,5,0,84,5,5,0,86,5,5,0,88,5,71,0,58,201,38,12,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,14,0,201,6,13,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,197,98,0,0,160,5,38,93,197,34,15,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,15,0,201,166,13,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,197,226,0,0,5,5,38,93,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,42,5,70,0,42,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,70,0,50,5,70,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,58,5,70,0,58,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,14,0,201,38,15,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,82,5,71,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,82,5,70,0,82,192,0,0,0,192,0,0,0,197,226,1,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,15,0,201,166,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,17,0,201,38,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,22,0,201,102,23,0,201,38,24,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,25,0,201,102,26,0,192,0,0,0,192,0,0,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,27,0,201,230,27,0,201,166,28,0,201,102,29,0,201,38,30,0,201,230,30,0,192,0,0,0,192,0,0,0,197,34,8,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,197,226,8,0,192,0,0,0,192,0,0,0,201,166,31,0,201,102,32,0,201,38,33,0,201,230,33,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,34,0,201,102,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,36,0,201,230,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,37,0,201,102,38,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,134,71,0,58,5,136,0,0,5,5,2,47,5,160,0,0,5,71,0,58,5,136,0,0,5,71,0,58,5,150,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,71,0,58,5,142,0,0,5,71,0,58,5,142,0,0,134,71,0,58,5,150,0,0,134,71,0,82,5,190,0,0,5,71,0,82,5,190,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,71,0,50,5,160,0,0,5,71,0,50,5,160,0,0,134,71,0,58,5,164,0,0,5,71,0,58,5,164,0,0,134,71,0,50,5,204,0,0,5,71,0,50,5,204,0,0,134,71,0,50,5,208,0,0,5,71,0,50,5,208,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,71,0,82,5,198,0,0,5,71,0,82,5,198,0,0,134,71,0,82,5,208,0,0,5,71,0,82,5,208,0,0,134,71,0,82,5,204,0,0,5,71,0,82,5,204,0,0,134,71,0,82,5,150,0,0,5,71,0,82,5,150,0,0,134,71,0,58,5,156,0,0,5,71,0,58,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,5,71,0,58,5,146,0,0,134,71,0,50,5,196,0,0,5,71,0,50,5,196,0,0,134,71,0,82,5,196,0,0,5,71,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,71,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,71,0,82,5,190,0,0,5,196,0,0,134,71,0,58,5,138,0,0,5,71,0,58,5,138,0,0,134,71,0,58,5,196,0,0,5,71,0,58,5,196,0,0,134,71,0,58,5,182,0,0,5,71,0,58,5,182,0,0,134,71,0,58,5,154,0,0,5,71,0,58,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,40,3,0,234,134,70,0,46,156,5,48,0,12,3,2,239,134,5,0,50,156,5,1,0,7,3,0,242,134,71,40,3,0,242,134,70,0,58,156,5,48,0,40,3,0,250,134,70,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,82,156,5,1,0,4,3,255,255,0,82,134,71,40,3,255,255,0,82,134,70,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,48,0,40,3,0,234,5,70,0,46,5,5,48,0,12,3,2,239,5,5,0,50,5,5,1,0,7,3,0,242,5,71,40,3,0,242,5,70,0,58,5,5,48,0,40,3,0,250,5,70,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,82,5,5,1,0,4,3,255,255,0,82,5,71,40,3,255,255,0,82,5,70,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,162,156,78,196,160,48,0,12,3,1,192,197,98,5,78,196,160,48,0,12,3,1,192,197,162,156,82,196,190,48,0,4,3,2,192,197,162,5,82,196,190,48,0,4,3,2,192,197,226,156,78,196,202,48,0,12,3,3,192,197,34,5,78,196,202,48,0,12,3,3,192,197,98,156,50,196,160,48,0,7,3,3,192,197,162,5,50,196,160,48,0,7,3,3,192,197,226,0,0,5,156,4,0,0,3,0,192,5,138,1,3,0,192,5,136,3,3,0,192,5,154,64,3,0,192,5,138,65,3,0,192,5,136,156,50,196,204,48,0,7,3,4,192,197,162,5,50,196,204,48,0,7,3,4,192,197,226,156,50,196,208,48,0,7,3,5,192,197,34,5,50,196,208,48,0,7,3,5,192,197,98,156,78,196,196,48,0,12,3,5,192,197,162,5,78,196,196,48,0,12,3,5,192,197,226,156,82,196,198,48,0,4,3,6,192,197,162,5,82,196,198,48,0,4,3,6,192,197,226,156,82,196,208,48,0,4,3,7,192,197,34,5,82,196,208,48,0,4,3,7,192,197,98,156,82,196,204,48,0,4,3,7,192,197,162,5,82,196,204,48,0,4,3,7,192,197,226,156,92,196,196,48,0,12,3,9,192,197,34,5,92,196,196,48,0,12,3,9,192,197,98,156,92,196,210,48,0,12,3,9,192,197,162,5,92,196,210,48,0,12,3,9,192,197,226,156,50,196,196,48,0,7,3,10,192,197,98,5,50,196,196,48,0,7,3,10,192,197,162,156,82,196,196,48,0,4,3,10,192,197,226,5,82,196,196,48,0,4,3,11,192,197,34,11,0,197,99,48,0,4,3,11,192,197,195,12,0,197,35,48,0,4,3,12,192,197,131,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,38,4,185,60,40,4,185,72,42,4,185,80,185,84,185,88,44,4,186,100,185,104,185,108,185,112,186,116,185,124,185,128,185,132,185,140,46,4,185,152,48,4,185,164,185,168,185,172,249,92,50,4,88,13,168,13,96,13,56,14,80,12,40,14,52,4,168,60,54,4,168,72,56,4,168,80,168,84,168,88,58,4,168,100,168,104,168,108,168,112,168,116,168,124,168,128,168,132,168,140,60,4,168,152,62,4,168,164,168,168,168,172,232,92,64,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,66,4,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,161,153,161,249,161,89,162,2,8,185,184,4,8,168,57,136,57,232,57,136,58,72,58,40,58,6,8,68,4,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,161,136,161,232,161,72,162,8,8,168,184,10,8,25,59,8,59,217,57,200,57,217,56,200,56,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,57,75,40,75,26,79,8,79,218,77,200,77,249,76,232,76,217,76,200,76,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,57,91,40,91,154,94,136,94,26,95,8,95,218,93,200,93,217,92,200,92,186,94,168,96,12,8,14,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,89,111,72,111,57,111,40,111,154,117,136,117,250,118,232,118,26,118,8,118,16,8,185,120,168,120,25,127,8,127,217,125,200,125,121,126,104,126,18,8,20,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,70,4,72,4,185,148,168,148,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,249,160,232,160,217,161,200,161,57,162,40,162,121,162,104,162,217,160,200,160,249,169,232,169,22,8,24,8,26,8,153,177,136,177,185,178,168,178,185,180,168,180,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,249,56,187,76,249,92,136,1,200,144,169,144,232,56,169,76,232,92,136,1,232,92,72,2,187,92,187,100,169,92,169,100,169,188,169,116,217,124,187,76,200,124,169,76,249,92,232,1,232,92,232,1,249,92,72,2,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,64,255,5,186,76,255,5,186,92,255,5,186,144,255,5,185,160,255,5,185,176,255,5,168,56,255,5,168,64,255,5,168,76,255,5,168,92,255,5,168,144,255,5,168,160,255,5,168,176,255,5,249,66,255,5,232,66,255,5,250,146,255,5,232,146,255,1,170,170,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,243,9,0,32,1,0,32,0,248,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,48,9,0,32,7,0,0,0,21,0,0,0,50,9,0,0,50,9,0,0,3,0,0,0,0,0,0,0,101,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,153,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,68,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,72,0,60,0,35,1,60,0,60,0,60,0,34,1,38,0,73,0,60,0,60,0,121,0,60,0,60,0,60,0,89,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,76,0,60,0,55,1,60,0,60,0,60,0,54,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,77,0,60,0,60,1,60,0,60,0,60,0,59,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,79,0,60,0,70,1,60,0,60,0,60,0,69,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,83,0,60,0,87,1,60,0,60,0,60,0,86,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,84,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,183,1,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,170,170,2,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,28,0,0,20,28,0,0,20,28,0,0,20,28,0,0,96,29,0,0,96,29,0,0,194,30,0,0,194,30,0,0,234,34,0,0,50,105,114,84,1,0,64,8,180,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,112,0,120,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,144,0,149,0,48,0,48,0,156,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,163,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,136,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,9,0,202,65,9,0,202,98,9,0,202,131,9,0,202,164,9,0,202,197,9,0,202,230,9,0,202,7,10,0,202,40,10,0,202,73,10,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,156,5,0,56,156,5,0,58,156,5,0,60,201,134,1,0,201,70,2,0,156,5,0,66,201,38,3,0,156,5,0,70,156,5,0,72,160,5,0,74,201,6,4,0,201,230,4,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,134,70,0,58,201,198,5,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,166,6,0,5,5,0,48,5,5,0,50,5,5,0,52,201,102,7,0,5,5,0,56,5,5,0,58,5,5,0,60,201,38,8,0,201,230,8,0,5,5,0,66,201,198,9,0,5,5,0,70,5,5,0,72,5,5,0,74,201,166,10,0,201,134,11,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,70,0,58,201,102,12,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,8,0,201,70,13,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,197,98,0,0,160,5,38,93,197,162,8,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,8,0,201,230,13,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,197,226,0,0,5,5,38,93,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,47,5,5,21,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,27,55,5,5,27,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,63,5,5,21,63,192,0,0,0,192,0,0,0,192,0,0,0,134,5,45,65,5,5,45,65,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,33,69,5,5,33,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,63,77,5,5,63,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,14,0,201,102,15,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,93,5,5,25,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,16,0,201,230,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,17,0,201,102,18,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,201,38,19,0,201,230,19,0,201,166,20,0,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,21,47,5,160,0,0,134,70,0,58,5,136,0,0,5,5,21,47,5,160,0,0,5,70,0,58,5,136,0,0,5,70,0,58,5,150,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,70,0,58,5,142,0,0,5,70,0,58,5,142,0,0,134,70,0,58,5,150,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,134,70,0,58,5,164,0,0,5,70,0,58,5,164,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,70,0,58,5,156,0,0,5,70,0,58,5,156,0,0,134,5,25,93,5,196,0,0,5,5,25,93,5,196,0,0,134,5,25,93,5,210,0,0,5,5,25,93,5,210,0,0,5,70,0,58,5,146,0,0,134,70,0,58,5,138,0,0,5,70,0,58,5,138,0,0,134,70,0,58,5,196,0,0,5,70,0,58,5,196,0,0,134,70,0,58,5,182,0,0,5,70,0,58,5,182,0,0,134,70,0,58,5,154,0,0,5,70,0,58,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,12,3,21,239,134,5,0,54,156,5,48,0,39,3,27,247,134,5,0,62,156,5,48,0,39,3,21,255,134,5,0,64,156,5,48,0,39,3,255,255,45,65,134,5,0,68,156,5,48,0,39,3,255,255,33,69,134,5,0,76,156,5,48,0,39,3,255,255,63,77,134,5,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,92,156,5,48,0,12,3,255,255,25,93,134,5,0,46,5,5,48,0,12,3,21,239,5,5,0,54,5,5,48,0,39,3,27,247,5,5,0,62,5,5,48,0,39,3,21,255,5,5,0,64,5,5,48,0,39,3,255,255,45,65,5,5,0,68,5,5,48,0,39,3,255,255,33,69,5,5,0,76,5,5,48,0,39,3,255,255,63,77,5,5,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,92,5,5,48,0,12,3,255,255,25,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,162,156,78,196,160,48,0,12,3,1,192,197,98,5,78,196,160,48,0,12,3,1,192,197,162,156,78,196,202,48,0,12,3,2,192,197,162,5,78,196,202,48,0,12,3,2,192,197,226,156,78,196,196,48,0,12,3,3,192,197,162,5,78,196,196,48,0,12,3,3,192,197,226,156,92,196,196,48,0,12,3,5,192,197,34,5,92,196,196,48,0,12,3,5,192,197,98,156,92,196,210,48,0,12,3,5,192,197,162,5,92,196,210,48,0,12,3,5,192,197,226,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,38,4,185,72,186,76,185,80,40,4,185,92,186,96,186,104,42,4,44,4,185,124,46,4,185,140,185,144,185,148,48,4,50,4,185,172,185,180,185,184,185,188,185,192,217,96,52,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,54,4,168,72,168,76,168,80,56,4,168,92,168,96,168,104,58,4,60,4,168,124,62,4,168,140,168,144,168,148,64,4,66,4,168,172,168,180,168,184,168,188,168,192,200,96,68,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,70,4,186,77,154,77,250,77,90,78,186,97,154,97,250,97,90,98,217,72,154,130,185,141,153,141,249,141,153,142,89,142,136,14,217,142,185,181,153,181,249,181,89,182,2,8,185,204,4,8,168,57,136,57,232,57,136,58,72,58,40,58,6,8,72,4,168,77,136,77,232,77,72,78,168,97,136,97,232,97,72,98,200,72,136,130,168,141,136,141,232,141,136,142,72,142,128,14,200,142,168,181,136,181,232,181,72,182,8,8,168,204,10,8,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,185,88,168,88,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,26,99,8,99,186,98,168,100,12,8,14,8,250,105,232,105,185,112,168,112,168,152,153,117,136,117,185,120,168,120,25,118,8,118,121,119,104,119,89,119,72,119,154,129,136,129,185,136,168,136,26,130,8,130,16,8,185,132,168,132,57,143,40,143,217,141,200,141,121,142,104,142,18,8,20,8,153,157,136,157,185,160,168,160,25,158,8,158,154,165,136,165,250,165,232,165,74,4,76,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,22,8,24,8,26,8,153,197,136,197,185,198,168,198,185,200,168,200,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,217,56,187,76,217,96,136,1,200,164,169,164,200,56,169,76,200,96,136,1,200,96,72,2,187,96,187,104,169,96,169,104,169,208,169,128,217,140,187,76,200,140,169,76,217,96,232,1,200,96,232,1,217,96,72,2,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,108,255,5,185,116,255,5,186,128,255,5,185,156,255,5,186,164,255,5,185,196,255,5,168,64,255,5,168,84,255,5,168,108,255,5,168,116,255,5,168,128,255,5,168,156,255,5,168,164,255,5,168,196,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,170,170,3,0,69,0,52,0,61,0,103,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,41,9,0,32,1,0,32,0,46,9,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,7,0,32,7,0,0,0,21,0,0,0,6,7,0,0,6,7,0,0,3,0,0,0,0,0,0,0,53,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,57,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,24,4,56,4,93,0,93,0,38,0,3,5,60,0,83,4,60,0,60,0,60,0,3,4,38,0,91,4,60,0,92,4,60,0,60,0,60,0,12,4,0,0,170,170,170,170,170,170,170,170,170,170,20,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,80,26,0,0,80,26,0,0,80,26,0,0,80,26,0,0,164,26,0,0,164,26,0,0,252,26,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,136,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,95,0,103,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,119,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,124,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,134,5,37,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,171,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,174,5,70,97,197,34,0,0,201,102,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,97,197,98,0,0,201,38,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,174,5,70,97,5,140,0,0,5,5,70,97,5,140,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,16,97,174,5,1,0,1,3,255,255,37,97,134,5,65,3,255,255,37,97,134,5,84,97,174,5,1,0,1,3,255,255,171,97,134,5,65,3,255,255,171,97,134,5,16,97,5,5,1,0,1,3,255,255,37,97,5,5,65,3,255,255,37,97,5,5,84,97,5,5,1,0,1,3,255,255,171,97,5,5,65,3,255,255,171,97,5,5,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,253,6,0,32,1,0,32,0,2,7,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,104,7,0,32,7,0,0,0,21,0,0,0,106,7,0,0,106,7,0,0,3,0,0,0,0,0,0,0,107,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,165,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,77,0,108,0,121,0,109,0,32,0,76,0,97,0,116,0,110,0,32,0,68,0,101,0,118,0,97,0,32,0,65,0,114,0,97,0,98,0,32,0,84,0,97,0,109,0,108,0,32,0,75,0,110,0,100,0,97,0,32,0,84,0,101,0,108,0,117,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,3,13,60,0,60,0,61,13,38,0,76,13,60,0,60,0,87,13,38,0,21,13,77,13,60,0,60,0,21,13,77,13,13,32,60,0,60,0,60,0,127,13,38,0,35,13,77,13,60,0,60,0,35,13,77,13,13,32,60,0,60,0,60,0,122,13,38,0,40,13,77,13,60,0,60,0,40,13,77,13,13,32,60,0,60,0,60,0,123,13,38,0,48,13,77,13,60,0,60,0,48,13,77,13,13,32,60,0,60,0,60,0,124,13,38,0,50,13,77,13,60,0,60,0,50,13,77,13,13,32,60,0,60,0,60,0,125,13,38,0,51,13,77,13,60,0,60,0,51,13,77,13,13,32,60,0,60,0,60,0,126,13,38,0,46,13,77,13,60,0,60,0,2,13,38,0,40,13,77,13,60,0,60,0,60,0,123,13,77,13,0,0,170,170,210,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,160,0,0,0,160,1,0,0,160,26,0,0,160,26,0,0,160,26,0,0,160,26,0,0,84,27,0,0,84,27,0,0,180,27,0,0,186,27,0,0,26,0,0,0,25,0,0,0,10,0,0,0,2,0,0,0,35,0,0,0,21,0,0,0,36,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,33,0,0,0,0,0,0,41,255,255,0,96,7,0,0,102,248,255,0,103,6,0,0,104,245,255,0,105,249,255,0,109,242,255,0,110,243,255,0,111,241,255,0,112,183,255,0,113,245,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,103,104,105,106,107,108,94,109,93,98,99,100,101,95,97,96,39,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,135,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,118,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,4,0,202,129,4,0,202,162,4,0,202,195,4,0,202,228,4,0,202,5,5,0,202,38,5,0,202,71,5,0,202,104,5,0,202,137,5,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,3,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,3,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,4,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,226,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,194,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,162,2,0,192,0,0,0,201,130,3,0,201,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,21,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,148,112,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,201,70,5,0,197,162,2,0,197,226,2,0,197,34,3,0,197,98,3,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,90,112,5,70,152,112,5,5,40,112,5,76,152,112,5,5,68,112,5,75,152,112,5,5,78,112,5,74,152,112,5,5,94,112,5,73,152,112,5,5,96,112,5,72,152,112,5,5,108,112,5,71,152,112,5,5,68,112,6,75,152,112,5,5,78,112,6,74,152,112,5,5,78,112,6,5,152,112,5,5,94,112,6,73,152,112,5,5,96,112,6,72,152,112,5,5,108,112,6,71,152,112,5,5,40,112,6,76,152,112,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,112,5,5,49,0,77,13,13,32,0,192,197,98,68,112,5,5,49,0,77,13,13,32,0,192,197,162,78,112,5,5,49,0,77,13,13,32,0,192,197,226,94,112,5,5,49,0,77,13,13,32,1,192,197,34,96,112,5,5,49,0,77,13,13,32,1,192,197,98,108,112,5,5,49,0,77,13,13,32,1,192,197,162,2,0,197,34,48,0,77,13,2,192,197,98,2,0,13,32,14,32,170,170,3,0,69,0,52,0,61,0,107,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,97,7,0,32,1,0,32,0,102,7,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,127,0,0,32,7,0,0,0,21,0,0,0,129,0,0,0,129,0,0,0,3,0,0,0,0,0,0,0,33,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,32,0,77,0,111,0,110,0,103,0,93,0,0,0,170,170,170,170,170,170,170,170,80,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,56,0,0,0,56,1,0,0,8,0,0,0,27,0,0,0,0,0,0,97,198,255,0,98,0,0,52,118,178,255,56,118,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,120,0,0,32,1,0,32,0,125,0,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,114,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,223,6,0,32,7,0,0,0,21,0,0,0,225,6,0,0,225,6,0,0,3,0,0,0,0,0,0,0,73,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,98,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,80,9,60,0,2,9,60,0,60,0,1,9,60,0,3,9,38,0,57,9,60,0,51,9,60,0,21,9,77,9,55,9,60,0,28,9,77,9,30,9,0,0,170,170,170,170,170,170,170,170,46,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,120,0,0,0,120,1,0,0,152,25,0,0,152,25,0,0,160,25,0,0,160,25,0,0,236,25,0,0,236,25,0,0,12,26,0,0,22,26,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,39,40,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,104,193,3,7,104,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,143,104,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,104,0,0,0,0,193,2,143,104,194,5,175,240,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,62,104,5,5,49,0,77,9,55,9,255,255,143,104,193,3,78,104,5,5,49,0,77,9,30,9,255,255,143,104,193,4,4,0,30,9,31,9,55,9,56,9,170,170,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,216,6,0,32,1,0,32,0,221,6,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,8,0,32,7,0,0,0,21,0,0,0,9,8,0,0,9,8,0,0,3,0,0,0,0,0,0,0,86,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,123,220,91,0,99,0,97,0,115,0,101,0,70,0,105,0,114,0,115,0,116,0,32,0,117,0,112,0,112,0,101,0,114,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,99,0,60,0,11,1,60,0,60,0,60,0,10,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,103,0,60,0,103,0,7,3,60,0,60,0,60,0,71,0,7,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,104,0,60,0,103,0,39,1,60,0,60,0,60,0,103,0,38,1,60,0,60,0,60,0,71,0,39,1,60,0,60,0,60,0,71,0,38,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,105,0,60,0,39,1,60,0,60,0,60,0,38,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,122,0,60,0,122,0,7,3,60,0,60,0,60,0,90,0,7,3,0,0,170,170,170,170,170,170,160,30,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,35,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,68,25,0,0,68,25,0,0,68,25,0,0,68,25,0,0,200,25,0,0,200,25,0,0,138,26,0,0,144,26,0,0,136,30,0,0,50,105,114,84,1,0,64,8,135,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,90,0,98,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,118,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,114,0,48,0,48,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,104,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,2,0,202,1,3,0,202,34,3,0,202,67,3,0,202,100,3,0,202,133,3,0,202,166,3,0,202,199,3,0,202,232,3,0,202,9,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,196,0,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,2,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,38,3,0,5,5,0,48,5,5,0,50,5,5,0,52,201,228,3,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,102,5,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,2,0,201,70,6,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,2,0,201,230,6,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,45,5,5,25,45,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,53,5,5,21,53,201,166,7,0,201,102,8,0,192,0,0,0,192,0,0,0,134,5,27,57,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,17,91,5,5,17,91,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,9,0,201,230,9,0,201,166,10,0,201,102,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,25,45,5,160,0,0,5,5,25,45,5,160,0,0,134,5,21,53,5,160,0,0,5,5,21,53,5,160,0,0,134,5,17,91,5,196,0,0,5,5,17,91,5,196,0,0,134,5,17,91,5,210,0,0,5,5,17,91,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,7,3,25,237,134,5,0,54,156,5,2,0,38,1,27,247,136,5,39,1,27,247,71,5,7,3,21,245,134,5,0,92,156,5,48,0,7,3,255,255,17,91,134,5,0,46,5,5,48,0,7,3,25,237,5,5,0,54,5,5,2,0,38,1,27,247,70,5,39,1,27,247,5,5,7,3,21,245,5,5,0,92,5,5,48,0,7,3,255,255,17,91,5,5,156,46,196,160,48,0,7,3,197,162,5,46,196,160,48,0,7,3,0,192,197,98,156,54,196,160,48,0,7,3,0,192,197,162,5,54,196,160,48,0,7,3,0,192,197,226,156,92,196,196,48,0,7,3,1,192,197,34,5,92,196,196,48,0,7,3,1,192,197,98,156,92,196,210,48,0,7,3,1,192,197,162,5,92,196,210,48,0,7,3,1,192,197,226,2,0,38,1,40,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,185,96,186,104,186,112,185,116,185,120,185,124,186,128,185,136,185,140,185,144,185,152,186,156,185,160,185,168,185,172,185,176,185,180,185,184,34,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,36,4,168,72,168,76,168,80,38,4,168,96,168,104,168,112,168,116,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,168,168,172,168,176,168,180,168,184,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,46,4,186,77,154,77,250,77,90,78,186,105,154,105,250,105,90,106,217,72,154,130,185,137,153,137,249,137,153,138,89,138,136,14,217,138,185,169,153,169,249,169,89,170,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,48,4,168,77,136,77,232,77,72,78,168,105,136,105,232,105,72,106,200,72,136,130,168,137,136,137,232,137,136,138,72,138,128,14,200,138,168,169,136,169,232,169,72,170,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,153,69,136,69,249,69,232,69,185,64,168,64,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,89,232,89,217,89,200,89,185,84,168,84,50,4,52,4,249,97,232,97,185,100,168,100,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,250,157,232,157,250,158,232,158,26,158,8,158,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,25,171,8,171,249,177,232,177,249,185,232,185,89,186,153,193,136,193,185,188,168,188,25,194,8,194,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,156,169,156,200,56,169,76,187,104,187,112,169,104,169,112,169,200,169,128,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,68,255,5,185,88,38,5,187,92,39,5,178,92,255,5,185,192,255,5,168,68,255,5,168,88,38,5,177,92,39,5,168,92,255,5,168,192,255,5,249,70,255,5,232,70,255,5,249,90,255,5,232,90,255,1,3,0,69,0,52,0,61,0,87,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,0,8,0,32,1,0,32,0,5,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,84,38,0,32,7,0,0,0,21,0,0,0,86,38,0,0,86,38,0,0,3,0,0,0,0,0,0,0,52,13,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,239,223,55,26,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,77,0,121,0,109,0,114,0,93,0,38,0,140,16,60,0,55,16,60,0,56,16,60,0,55,16,56,16,38,0,44,16,60,0,60,0,43,16,38,0,50,16,60,0,49,16,44,16,60,0,60,0,49,16,43,16,60,0,49,16,44,16,58,16,60,0,60,0,49,16,43,16,58,16,38,0,52,16,60,0,54,16,60,0,45,16,47,16,60,0,0,16,57,16,60,0,60,0,0,16,58,16,60,0,44,16,0,16,57,16,60,0,60,0,44,16,0,16,58,16,60,0,60,0,43,16,0,16,57,16,60,0,60,0,43,16,0,16,58,16,60,0,45,16,0,16,57,16,60,0,60,0,45,16,0,16,58,16,60,0,47,16,0,16,57,16,60,0,60,0,47,16,0,16,58,16,60,0,49,16,0,16,57,16,60,0,60,0,49,16,0,16,58,16,60,0,49,16,44,16,0,16,57,16,60,0,60,0,49,16,44,16,0,16,58,16,60,0,60,0,49,16,43,16,0,16,57,16,60,0,60,0,49,16,43,16,0,16,58,16,60,0,45,16,47,16,0,16,57,16,60,0,60,0,45,16,47,16,0,16,58,16,60,0,1,16,57,16,60,0,60,0,1,16,58,16,60,0,44,16,1,16,57,16,60,0,60,0,44,16,1,16,58,16,60,0,60,0,43,16,1,16,57,16,60,0,60,0,43,16,1,16,58,16,60,0,45,16,1,16,57,16,60,0,60,0,45,16,1,16,58,16,60,0,47,16,1,16,57,16,60,0,60,0,47,16,1,16,58,16,60,0,49,16,1,16,57,16,60,0,60,0,49,16,1,16,58,16,60,0,49,16,44,16,1,16,57,16,60,0,60,0,49,16,44,16,1,16,58,16,60,0,60,0,49,16,43,16,1,16,57,16,60,0,60,0,49,16,43,16,1,16,58,16,60,0,45,16,47,16,1,16,57,16,60,0,60,0,45,16,47,16,1,16,58,16,60,0,2,16,57,16,60,0,60,0,2,16,58,16,60,0,44,16,2,16,57,16,60,0,60,0,44,16,2,16,58,16,60,0,60,0,43,16,2,16,57,16,60,0,60,0,43,16,2,16,58,16,60,0,45,16,2,16,57,16,60,0,60,0,45,16,2,16,58,16,60,0,47,16,2,16,57,16,60,0,60,0,47,16,2,16,58,16,60,0,49,16,2,16,57,16,60,0,60,0,49,16,2,16,58,16,60,0,49,16,44,16,2,16,57,16,60,0,60,0,49,16,44,16,2,16,58,16,60,0,60,0,49,16,43,16,2,16,57,16,60,0,60,0,49,16,43,16,2,16,58,16,60,0,45,16,47,16,2,16,57,16,60,0,60,0,45,16,47,16,2,16,58,16,60,0,3,16,57,16,60,0,60,0,3,16,58,16,60,0,44,16,3,16,57,16,60,0,60,0,44,16,3,16,58,16,60,0,60,0,43,16,3,16,57,16,60,0,60,0,43,16,3,16,58,16,60,0,45,16,3,16,57,16,60,0,60,0,45,16,3,16,58,16,60,0,47,16,3,16,57,16,60,0,60,0,47,16,3,16,58,16,60,0,49,16,3,16,57,16,60,0,60,0,49,16,3,16,58,16,60,0,49,16,44,16,3,16,57,16,60,0,60,0,49,16,44,16,3,16,58,16,60,0,60,0,49,16,43,16,3,16,57,16,60,0,60,0,49,16,43,16,3,16,58,16,60,0,45,16,47,16,3,16,57,16,60,0,60,0,45,16,47,16,3,16,58,16,60,0,4,16,58,16,57,16,60,0,60,0,4,16,58,16,60,0,44,16,4,16,58,16,57,16,60,0,60,0,44,16,4,16,58,16,60,0,60,0,43,16,4,16,58,16,57,16,60,0,60,0,43,16,4,16,58,16,60,0,45,16,4,16,58,16,57,16,60,0,60,0,45,16,4,16,58,16,60,0,47,16,4,16,58,16,57,16,60,0,60,0,47,16,4,16,58,16,60,0,49,16,4,16,58,16,57,16,60,0,60,0,49,16,4,16,58,16,60,0,49,16,44,16,4,16,58,16,57,16,60,0,60,0,49,16,44,16,4,16,58,16,60,0,60,0,49,16,43,16,4,16,58,16,57,16,60,0,60,0,49,16,43,16,4,16,58,16,60,0,45,16,47,16,4,16,58,16,57,16,60,0,60,0,45,16,47,16,4,16,58,16,60,0,5,16,57,16,60,0,60,0,5,16,58,16,60,0,44,16,5,16,57,16,60,0,60,0,44,16,5,16,58,16,60,0,60,0,43,16,5,16,57,16,60,0,60,0,43,16,5,16,58,16,60,0,45,16,5,16,57,16,60,0,60,0,45,16,5,16,58,16,60,0,47,16,5,16,57,16,60,0,60,0,47,16,5,16,58,16,60,0,49,16,5,16,57,16,60,0,60,0,49,16,5,16,58,16,60,0,49,16,44,16,5,16,57,16,60,0,60,0,49,16,44,16,5,16,58,16,60,0,60,0,49,16,43,16,5,16,57,16,60,0,60,0,49,16,43,16,5,16,58,16,60,0,45,16,47,16,5,16,57,16,60,0,60,0,45,16,47,16,5,16,58,16,60,0,6,16,57,16,60,0,60,0,6,16,58,16,60,0,44,16,6,16,57,16,60,0,60,0,44,16,6,16,58,16,60,0,60,0,43,16,6,16,57,16,60,0,60,0,43,16,6,16,58,16,60,0,45,16,6,16,57,16,60,0,60,0,45,16,6,16,58,16,60,0,47,16,6,16,57,16,60,0,60,0,47,16,6,16,58,16,60,0,49,16,6,16,57,16,60,0,60,0,49,16,6,16,58,16,60,0,49,16,44,16,6,16,57,16,60,0,60,0,49,16,44,16,6,16,58,16,60,0,60,0,49,16,43,16,6,16,57,16,60,0,60,0,49,16,43,16,6,16,58,16,60,0,45,16,47,16,6,16,57,16,60,0,60,0,45,16,47,16,6,16,58,16,60,0,7,16,57,16,60,0,60,0,7,16,58,16,60,0,44,16,7,16,57,16,60,0,60,0,44,16,7,16,58,16,60,0,60,0,43,16,7,16,57,16,60,0,60,0,43,16,7,16,58,16,60,0,45,16,7,16,57,16,60,0,60,0,45,16,7,16,58,16,60,0,47,16,7,16,57,16,60,0,60,0,47,16,7,16,58,16,60,0,49,16,7,16,57,16,60,0,60,0,49,16,7,16,58,16,60,0,49,16,44,16,7,16,57,16,60,0,60,0,49,16,44,16,7,16,58,16,60,0,60,0,49,16,43,16,7,16,57,16,60,0,60,0,49,16,43,16,7,16,58,16,60,0,45,16,47,16,7,16,57,16,60,0,60,0,45,16,47,16,7,16,58,16,60,0,8,16,58,16,60,0,44,16,8,16,58,16,60,0,60,0,43,16,8,16,58,16,60,0,45,16,8,16,58,16,60,0,47,16,8,16,58,16,60,0,49,16,8,16,58,16,60,0,49,16,44,16,8,16,58,16,60,0,60,0,49,16,43,16,8,16,58,16,60,0,45,16,47,16,8,16,58,16,60,0,9,16,57,16,60,0,60,0,9,16,58,16,60,0,44,16,9,16,57,16,60,0,60,0,44,16,9,16,58,16,60,0,60,0,43,16,9,16,57,16,60,0,60,0,43,16,9,16,58,16,60,0,45,16,9,16,57,16,60,0,60,0,45,16,9,16,58,16,60,0,47,16,9,16,57,16,60,0,60,0,47,16,9,16,58,16,60,0,49,16,9,16,57,16,60,0,60,0,49,16,9,16,58,16,60,0,49,16,44,16,9,16,57,16,60,0,60,0,49,16,44,16,9,16,58,16,60,0,60,0,49,16,43,16,9,16,57,16,60,0,60,0,49,16,43,16,9,16,58,16,60,0,45,16,47,16,9,16,57,16,60,0,60,0,45,16,47,16,9,16,58,16,60,0,10,16,57,16,60,0,60,0,10,16,58,16,60,0,44,16,10,16,57,16,60,0,60,0,44,16,10,16,58,16,60,0,60,0,43,16,10,16,57,16,60,0,60,0,43,16,10,16,58,16,60,0,45,16,10,16,57,16,60,0,60,0,45,16,10,16,58,16,60,0,47,16,10,16,57,16,60,0,60,0,47,16,10,16,58,16,60,0,49,16,10,16,57,16,60,0,60,0,49,16,10,16,58,16,60,0,49,16,44,16,10,16,57,16,60,0,60,0,49,16,44,16,10,16,58,16,60,0,60,0,49,16,43,16,10,16,57,16,60,0,60,0,49,16,43,16,10,16,58,16,60,0,45,16,47,16,10,16,57,16,60,0,60,0,45,16,47,16,10,16,58,16,60,0,11,16,57,16,60,0,60,0,11,16,58,16,60,0,44,16,11,16,57,16,60,0,60,0,44,16,11,16,58,16,60,0,60,0,43,16,11,16,57,16,60,0,60,0,43,16,11,16,58,16,60,0,45,16,11,16,57,16,60,0,60,0,45,16,11,16,58,16,60,0,47,16,11,16,57,16,60,0,60,0,47,16,11,16,58,16,60,0,49,16,11,16,57,16,60,0,60,0,49,16,11,16,58,16,60,0,49,16,44,16,11,16,57,16,60,0,60,0,49,16,44,16,11,16,58,16,60,0,60,0,49,16,43,16,11,16,57,16,60,0,60,0,49,16,43,16,11,16,58,16,60,0,45,16,47,16,11,16,57,16,60,0,60,0,45,16,47,16,11,16,58,16,60,0,12,16,57,16,60,0,60,0,12,16,58,16,60,0,44,16,12,16,57,16,60,0,60,0,44,16,12,16,58,16,60,0,60,0,43,16,12,16,57,16,60,0,60,0,43,16,12,16,58,16,60,0,45,16,12,16,57,16,60,0,60,0,45,16,12,16,58,16,60,0,47,16,12,16,57,16,60,0,60,0,47,16,12,16,58,16,60,0,49,16,12,16,57,16,60,0,60,0,49,16,12,16,58,16,60,0,49,16,44,16,12,16,57,16,60,0,60,0,49,16,44,16,12,16,58,16,60,0,60,0,49,16,43,16,12,16,57,16,60,0,60,0,49,16,43,16,12,16,58,16,60,0,45,16,47,16,12,16,57,16,60,0,60,0,45,16,47,16,12,16,58,16,60,0,13,16,57,16,60,0,60,0,13,16,58,16,60,0,44,16,13,16,57,16,60,0,60,0,44,16,13,16,58,16,60,0,60,0,43,16,13,16,57,16,60,0,60,0,43,16,13,16,58,16,60,0,45,16,13,16,57,16,60,0,60,0,45,16,13,16,58,16,60,0,47,16,13,16,57,16,60,0,60,0,47,16,13,16,58,16,60,0,49,16,13,16,57,16,60,0,60,0,49,16,13,16,58,16,60,0,49,16,44,16,13,16,57,16,60,0,60,0,49,16,44,16,13,16,58,16,60,0,60,0,49,16,43,16,13,16,57,16,60,0,60,0,49,16,43,16,13,16,58,16,60,0,45,16,47,16,13,16,57,16,60,0,60,0,45,16,47,16,13,16,58,16,60,0,14,16,57,16,60,0,60,0,14,16,58,16,60,0,44,16,14,16,57,16,60,0,60,0,44,16,14,16,58,16,60,0,60,0,43,16,14,16,57,16,60,0,60,0,43,16,14,16,58,16,60,0,45,16,14,16,57,16,60,0,60,0,45,16,14,16,58,16,60,0,47,16,14,16,57,16,60,0,60,0,47,16,14,16,58,16,60,0,49,16,14,16,57,16,60,0,60,0,49,16,14,16,58,16,60,0,49,16,44,16,14,16,57,16,60,0,60,0,49,16,44,16,14,16,58,16,60,0,60,0,49,16,43,16,14,16,57,16,60,0,60,0,49,16,43,16,14,16,58,16,60,0,45,16,47,16,14,16,57,16,60,0,60,0,45,16,47,16,14,16,58,16,60,0,15,16,57,16,60,0,60,0,15,16,58,16,60,0,44,16,15,16,57,16,60,0,60,0,44,16,15,16,58,16,60,0,60,0,43,16,15,16,57,16,60,0,60,0,43,16,15,16,58,16,60,0,45,16,15,16,57,16,60,0,60,0,45,16,15,16,58,16,60,0,47,16,15,16,57,16,60,0,60,0,47,16,15,16,58,16,60,0,49,16,15,16,57,16,60,0,60,0,49,16,15,16,58,16,60,0,49,16,44,16,15,16,57,16,60,0,60,0,49,16,44,16,15,16,58,16,60,0,60,0,49,16,43,16,15,16,57,16,60,0,60,0,49,16,43,16,15,16,58,16,60,0,45,16,47,16,15,16,57,16,60,0,60,0,45,16,47,16,15,16,58,16,60,0,16,16,57,16,60,0,60,0,16,16,58,16,60,0,44,16,16,16,57,16,60,0,60,0,44,16,16,16,58,16,60,0,60,0,43,16,16,16,57,16,60,0,60,0,43,16,16,16,58,16,60,0,45,16,16,16,57,16,60,0,60,0,45,16,16,16,58,16,60,0,47,16,16,16,57,16,60,0,60,0,47,16,16,16,58,16,60,0,49,16,16,16,57,16,60,0,60,0,49,16,16,16,58,16,60,0,49,16,44,16,16,16,57,16,60,0,60,0,49,16,44,16,16,16,58,16,60,0,60,0,49,16,43,16,16,16,57,16,60,0,60,0,49,16,43,16,16,16,58,16,60,0,45,16,47,16,16,16,57,16,60,0,60,0,45,16,47,16,16,16,58,16,60,0,17,16,57,16,60,0,60,0,17,16,58,16,60,0,44,16,17,16,57,16,60,0,60,0,44,16,17,16,58,16,60,0,60,0,43,16,17,16,57,16,60,0,60,0,43,16,17,16,58,16,60,0,45,16,17,16,57,16,60,0,60,0,45,16,17,16,58,16,60,0,47,16,17,16,57,16,60,0,60,0,47,16,17,16,58,16,60,0,49,16,17,16,57,16,60,0,60,0,49,16,17,16,58,16,60,0,49,16,44,16,17,16,57,16,60,0,60,0,49,16,44,16,17,16,58,16,60,0,60,0,49,16,43,16,17,16,57,16,60,0,60,0,49,16,43,16,17,16,58,16,60,0,45,16,47,16,17,16,57,16,60,0,60,0,45,16,47,16,17,16,58,16,60,0,18,16,57,16,60,0,60,0,18,16,58,16,60,0,44,16,18,16,57,16,60,0,60,0,44,16,18,16,58,16,60,0,60,0,43,16,18,16,57,16,60,0,60,0,43,16,18,16,58,16,60,0,45,16,18,16,57,16,60,0,60,0,45,16,18,16,58,16,60,0,47,16,18,16,57,16,60,0,60,0,47,16,18,16,58,16,60,0,49,16,18,16,57,16,60,0,60,0,49,16,18,16,58,16,60,0,49,16,44,16,18,16,57,16,60,0,60,0,49,16,44,16,18,16,58,16,60,0,60,0,49,16,43,16,18,16,57,16,60,0,60,0,49,16,43,16,18,16,58,16,60,0,45,16,47,16,18,16,57,16,60,0,60,0,45,16,47,16,18,16,58,16,60,0,19,16,57,16,60,0,60,0,19,16,58,16,60,0,44,16,19,16,57,16,60,0,60,0,44,16,19,16,58,16,60,0,60,0,43,16,19,16,57,16,60,0,60,0,43,16,19,16,58,16,60,0,45,16,19,16,57,16,60,0,60,0,45,16,19,16,58,16,60,0,47,16,19,16,57,16,60,0,60,0,47,16,19,16,58,16,60,0,49,16,19,16,57,16,60,0,60,0,49,16,19,16,58,16,60,0,49,16,44,16,19,16,57,16,60,0,60,0,49,16,44,16,19,16,58,16,60,0,60,0,49,16,43,16,19,16,57,16,60,0,60,0,49,16,43,16,19,16,58,16,60,0,45,16,47,16,19,16,57,16,60,0,60,0,45,16,47,16,19,16,58,16,60,0,20,16,57,16,60,0,60,0,20,16,58,16,60,0,44,16,20,16,57,16,60,0,60,0,44,16,20,16,58,16,60,0,60,0,43,16,20,16,57,16,60,0,60,0,43,16,20,16,58,16,60,0,45,16,20,16,57,16,60,0,60,0,45,16,20,16,58,16,60,0,47,16,20,16,57,16,60,0,60,0,47,16,20,16,58,16,60,0,49,16,20,16,57,16,60,0,60,0,49,16,20,16,58,16,60,0,49,16,44,16,20,16,57,16,60,0,60,0,49,16,44,16,20,16,58,16,60,0,60,0,49,16,43,16,20,16,57,16,60,0,60,0,49,16,43,16,20,16,58,16,60,0,45,16,47,16,20,16,57,16,60,0,60,0,45,16,47,16,20,16,58,16,60,0,21,16,57,16,60,0,60,0,21,16,58,16,60,0,44,16,21,16,57,16,60,0,60,0,44,16,21,16,58,16,60,0,60,0,43,16,21,16,57,16,60,0,60,0,43,16,21,16,58,16,60,0,45,16,21,16,57,16,60,0,60,0,45,16,21,16,58,16,60,0,47,16,21,16,57,16,60,0,60,0,47,16,21,16,58,16,60,0,49,16,21,16,57,16,60,0,60,0,49,16,21,16,58,16,60,0,49,16,44,16,21,16,57,16,60,0,60,0,49,16,44,16,21,16,58,16,60,0,60,0,49,16,43,16,21,16,57,16,60,0,60,0,49,16,43,16,21,16,58,16,60,0,45,16,47,16,21,16,57,16,60,0,60,0,45,16,47,16,21,16,58,16,60,0,22,16,57,16,60,0,60,0,22,16,58,16,60,0,44,16,22,16,57,16,60,0,60,0,44,16,22,16,58,16,60,0,60,0,43,16,22,16,57,16,60,0,60,0,43,16,22,16,58,16,60,0,45,16,22,16,57,16,60,0,60,0,45,16,22,16,58,16,60,0,47,16,22,16,57,16,60,0,60,0,47,16,22,16,58,16,60,0,49,16,22,16,57,16,60,0,60,0,49,16,22,16,58,16,60,0,49,16,44,16,22,16,57,16,60,0,60,0,49,16,44,16,22,16,58,16,60,0,60,0,49,16,43,16,22,16,57,16,60,0,60,0,49,16,43,16,22,16,58,16,60,0,45,16,47,16,22,16,57,16,60,0,60,0,45,16,47,16,22,16,58,16,60,0,23,16,57,16,60,0,60,0,23,16,58,16,60,0,44,16,23,16,57,16,60,0,60,0,44,16,23,16,58,16,60,0,60,0,43,16,23,16,57,16,60,0,60,0,43,16,23,16,58,16,60,0,45,16,23,16,57,16,60,0,60,0,45,16,23,16,58,16,60,0,47,16,23,16,57,16,60,0,60,0,47,16,23,16,58,16,60,0,49,16,23,16,57,16,60,0,60,0,49,16,23,16,58,16,60,0,49,16,44,16,23,16,57,16,60,0,60,0,49,16,44,16,23,16,58,16,60,0,60,0,49,16,43,16,23,16,57,16,60,0,60,0,49,16,43,16,23,16,58,16,60,0,45,16,47,16,23,16,57,16,60,0,60,0,45,16,47,16,23,16,58,16,60,0,24,16,57,16,60,0,60,0,24,16,58,16,60,0,44,16,24,16,57,16,60,0,60,0,44,16,24,16,58,16,60,0,60,0,43,16,24,16,57,16,60,0,60,0,43,16,24,16,58,16,60,0,45,16,24,16,57,16,60,0,60,0,45,16,24,16,58,16,60,0,47,16,24,16,57,16,60,0,60,0,47,16,24,16,58,16,60,0,49,16,24,16,57,16,60,0,60,0,49,16,24,16,58,16,60,0,49,16,44,16,24,16,57,16,60,0,60,0,49,16,44,16,24,16,58,16,60,0,60,0,49,16,43,16,24,16,57,16,60,0,60,0,49,16,43,16,24,16,58,16,60,0,45,16,47,16,24,16,57,16,60,0,60,0,45,16,47,16,24,16,58,16,60,0,25,16,57,16,60,0,60,0,25,16,58,16,60,0,44,16,25,16,57,16,60,0,60,0,44,16,25,16,58,16,60,0,60,0,43,16,25,16,57,16,60,0,60,0,43,16,25,16,58,16,60,0,45,16,25,16,57,16,60,0,60,0,45,16,25,16,58,16,60,0,47,16,25,16,57,16,60,0,60,0,47,16,25,16,58,16,60,0,49,16,25,16,57,16,60,0,60,0,49,16,25,16,58,16,60,0,49,16,44,16,25,16,57,16,60,0,60,0,49,16,44,16,25,16,58,16,60,0,60,0,49,16,43,16,25,16,57,16,60,0,60,0,49,16,43,16,25,16,58,16,60,0,45,16,47,16,25,16,57,16,60,0,60,0,45,16,47,16,25,16,58,16,60,0,26,16,57,16,60,0,60,0,26,16,58,16,60,0,44,16,26,16,57,16,60,0,60,0,44,16,26,16,58,16,60,0,60,0,43,16,26,16,57,16,60,0,60,0,43,16,26,16,58,16,60,0,45,16,26,16,57,16,60,0,60,0,45,16,26,16,58,16,60,0,47,16,26,16,57,16,60,0,60,0,47,16,26,16,58,16,60,0,49,16,26,16,57,16,60,0,60,0,49,16,26,16,58,16,60,0,49,16,44,16,26,16,57,16,60,0,60,0,49,16,44,16,26,16,58,16,60,0,60,0,49,16,43,16,26,16,57,16,60,0,60,0,49,16,43,16,26,16,58,16,60,0,45,16,47,16,26,16,57,16,60,0,60,0,45,16,47,16,26,16,58,16,60,0,27,16,57,16,60,0,60,0,27,16,58,16,60,0,44,16,27,16,57,16,60,0,60,0,44,16,27,16,58,16,60,0,60,0,43,16,27,16,57,16,60,0,60,0,43,16,27,16,58,16,60,0,45,16,27,16,57,16,60,0,60,0,45,16,27,16,58,16,60,0,47,16,27,16,57,16,60,0,60,0,47,16,27,16,58,16,60,0,49,16,27,16,57,16,60,0,60,0,49,16,27,16,58,16,60,0,49,16,44,16,27,16,57,16,60,0,60,0,49,16,44,16,27,16,58,16,60,0,60,0,49,16,43,16,27,16,57,16,60,0,60,0,49,16,43,16,27,16,58,16,60,0,45,16,47,16,27,16,57,16,60,0,60,0,45,16,47,16,27,16,58,16,60,0,28,16,57,16,60,0,60,0,28,16,58,16,60,0,44,16,28,16,57,16,60,0,60,0,44,16,28,16,58,16,60,0,60,0,43,16,28,16,57,16,60,0,60,0,43,16,28,16,58,16,60,0,45,16,28,16,57,16,60,0,60,0,45,16,28,16,58,16,60,0,47,16,28,16,57,16,60,0,60,0,47,16,28,16,58,16,60,0,49,16,28,16,57,16,60,0,60,0,49,16,28,16,58,16,60,0,49,16,44,16,28,16,57,16,60,0,60,0,49,16,44,16,28,16,58,16,60,0,60,0,49,16,43,16,28,16,57,16,60,0,60,0,49,16,43,16,28,16,58,16,60,0,45,16,47,16,28,16,57,16,60,0,60,0,45,16,47,16,28,16,58,16,60,0,29,16,58,16,60,0,44,16,29,16,58,16,60,0,60,0,43,16,29,16,58,16,60,0,45,16,29,16,58,16,60,0,47,16,29,16,58,16,60,0,49,16,29,16,58,16,60,0,49,16,44,16,29,16,58,16,60,0,60,0,49,16,43,16,29,16,58,16,60,0,45,16,47,16,29,16,58,16,60,0,30,16,57,16,60,0,60,0,30,16,58,16,60,0,44,16,30,16,57,16,60,0,60,0,44,16,30,16,58,16,60,0,60,0,43,16,30,16,57,16,60,0,60,0,43,16,30,16,58,16,60,0,45,16,30,16,57,16,60,0,60,0,45,16,30,16,58,16,60,0,47,16,30,16,57,16,60,0,60,0,47,16,30,16,58,16,60,0,49,16,30,16,57,16,60,0,60,0,49,16,30,16,58,16,60,0,49,16,44,16,30,16,57,16,60,0,60,0,49,16,44,16,30,16,58,16,60,0,60,0,49,16,43,16,30,16,57,16,60,0,60,0,49,16,43,16,30,16,58,16,60,0,45,16,47,16,30,16,57,16,60,0,60,0,45,16,47,16,30,16,58,16,60,0,31,16,57,16,60,0,60,0,31,16,58,16,60,0,44,16,31,16,57,16,60,0,60,0,44,16,31,16,58,16,60,0,60,0,43,16,31,16,57,16,60,0,60,0,43,16,31,16,58,16,60,0,45,16,31,16,57,16,60,0,60,0,45,16,31,16,58,16,60,0,47,16,31,16,57,16,60,0,60,0,47,16,31,16,58,16,60,0,49,16,31,16,57,16,60,0,60,0,49,16,31,16,58,16,60,0,49,16,44,16,31,16,57,16,60,0,60,0,49,16,44,16,31,16,58,16,60,0,60,0,49,16,43,16,31,16,57,16,60,0,60,0,49,16,43,16,31,16,58,16,60,0,45,16,47,16,31,16,57,16,60,0,60,0,45,16,47,16,31,16,58,16,60,0,32,16,58,16,60,0,44,16,32,16,58,16,60,0,60,0,43,16,32,16,58,16,60,0,45,16,32,16,58,16,60,0,47,16,32,16,58,16,60,0,49,16,32,16,58,16,60,0,49,16,44,16,32,16,58,16,60,0,60,0,49,16,43,16,32,16,58,16,60,0,45,16,47,16,32,16,58,16,60,0,33,16,58,16,60,0,44,16,33,16,58,16,60,0,60,0,43,16,33,16,58,16,60,0,45,16,33,16,58,16,60,0,47,16,33,16,58,16,60,0,49,16,33,16,58,16,60,0,49,16,44,16,33,16,58,16,60,0,60,0,49,16,43,16,33,16,58,16,60,0,45,16,47,16,33,16,58,16,60,0,94,16,60,0,95,16,60,0,59,16,60,0,60,16,60,0,96,16,60,0,61,16,60,0,130,16,60,0,62,16,60,0,59,16,61,16,60,0,60,16,61,16,60,0,59,16,62,16,60,0,60,16,62,16,60,0,61,16,62,16,60,0,59,16,61,16,62,16,60,0,60,16,61,16,62,16,38,0,33,16,45,16,60,0,60,0,60,0,35,16,38,0,33,16,46,16,60,0,60,0,60,0,36,16,38,0,33,16,47,16,60,0,60,0,60,0,37,16,38,0,33,16,48,16,60,0,60,0,60,0,38,16,38,0,33,16,49,16,60,0,60,0,60,0,39,16,60,0,60,0,60,0,40,16,38,0,33,16,49,16,44,16,60,0,60,0,60,0,41,16,38,0,33,16,49,16,44,16,58,16,60,0,60,0,60,0,42,16,38,0,45,16,25,16,58,16,60,0,45,16,54,16,60,0,45,16,25,16,58,16,55,16,60,0,45,16,54,16,55,16,60,0,45,16,25,16,58,16,56,16,60,0,45,16,54,16,56,16,38,0,47,16,25,16,58,16,60,0,47,16,54,16,60,0,47,16,25,16,58,16,55,16,60,0,47,16,54,16,55,16,60,0,47,16,25,16,58,16,56,16,60,0,47,16,54,16,56,16,38,0,33,16,47,16,54,16,60,0,60,0,60,0,37,16,47,16,54,16,38,0,33,16,45,16,0,16,57,16,60,0,60,0,60,0,35,16,0,16,57,16,38,0,33,16,45,16,0,16,58,16,60,0,60,0,60,0,35,16,0,16,58,16,38,0,33,16,47,16,0,16,57,16,60,0,60,0,60,0,37,16,0,16,57,16,38,0,33,16,47,16,0,16,58,16,60,0,60,0,60,0,37,16,0,16,58,16,38,0,33,16,49,16,0,16,57,16,60,0,60,0,60,0,39,16,0,16,57,16,38,0,33,16,49,16,0,16,58,16,60,0,60,0,60,0,39,16,0,16,58,16,38,0,33,16,49,16,44,16,0,16,57,16,60,0,60,0,60,0,41,16,0,16,57,16,38,0,33,16,49,16,44,16,0,16,58,16,60,0,60,0,60,0,41,16,0,16,58,16,38,0,33,16,49,16,44,16,0,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,0,16,57,16,38,0,33,16,49,16,44,16,0,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,0,16,58,16,38,0,33,16,45,16,1,16,57,16,60,0,60,0,60,0,35,16,1,16,57,16,38,0,33,16,45,16,1,16,58,16,60,0,60,0,60,0,35,16,1,16,58,16,38,0,33,16,47,16,1,16,57,16,60,0,60,0,60,0,37,16,1,16,57,16,38,0,33,16,47,16,1,16,58,16,60,0,60,0,60,0,37,16,1,16,58,16,38,0,33,16,49,16,1,16,57,16,60,0,60,0,60,0,39,16,1,16,57,16,38,0,33,16,49,16,1,16,58,16,60,0,60,0,60,0,39,16,1,16,58,16,38,0,33,16,49,16,44,16,1,16,57,16,60,0,60,0,60,0,41,16,1,16,57,16,38,0,33,16,49,16,44,16,1,16,58,16,60,0,60,0,60,0,41,16,1,16,58,16,38,0,33,16,49,16,44,16,1,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,1,16,57,16,38,0,33,16,49,16,44,16,1,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,1,16,58,16,38,0,33,16,45,16,2,16,57,16,60,0,60,0,60,0,35,16,2,16,57,16,38,0,33,16,45,16,2,16,58,16,60,0,60,0,60,0,35,16,2,16,58,16,38,0,33,16,47,16,2,16,57,16,60,0,60,0,60,0,37,16,2,16,57,16,38,0,33,16,47,16,2,16,58,16,60,0,60,0,60,0,37,16,2,16,58,16,38,0,33,16,49,16,2,16,57,16,60,0,60,0,60,0,39,16,2,16,57,16,38,0,33,16,49,16,2,16,58,16,60,0,60,0,60,0,39,16,2,16,58,16,38,0,33,16,49,16,44,16,2,16,57,16,60,0,60,0,60,0,41,16,2,16,57,16,38,0,33,16,49,16,44,16,2,16,58,16,60,0,60,0,60,0,41,16,2,16,58,16,38,0,33,16,49,16,44,16,2,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,2,16,57,16,38,0,33,16,49,16,44,16,2,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,2,16,58,16,38,0,33,16,45,16,3,16,57,16,60,0,60,0,60,0,35,16,3,16,57,16,38,0,33,16,45,16,3,16,58,16,60,0,60,0,60,0,35,16,3,16,58,16,38,0,33,16,47,16,3,16,57,16,60,0,60,0,60,0,37,16,3,16,57,16,38,0,33,16,47,16,3,16,58,16,60,0,60,0,60,0,37,16,3,16,58,16,38,0,33,16,49,16,3,16,57,16,60,0,60,0,60,0,39,16,3,16,57,16,38,0,33,16,49,16,3,16,58,16,60,0,60,0,60,0,39,16,3,16,58,16,38,0,33,16,49,16,44,16,3,16,57,16,60,0,60,0,60,0,41,16,3,16,57,16,38,0,33,16,49,16,44,16,3,16,58,16,60,0,60,0,60,0,41,16,3,16,58,16,38,0,33,16,49,16,44,16,3,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,3,16,57,16,38,0,33,16,49,16,44,16,3,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,3,16,58,16,38,0,33,16,45,16,4,16,57,16,60,0,60,0,60,0,35,16,4,16,57,16,38,0,33,16,45,16,4,16,58,16,60,0,60,0,60,0,35,16,4,16,58,16,38,0,33,16,47,16,4,16,57,16,60,0,60,0,60,0,37,16,4,16,57,16,38,0,33,16,47,16,4,16,58,16,60,0,60,0,60,0,37,16,4,16,58,16,38,0,33,16,49,16,4,16,57,16,60,0,60,0,60,0,39,16,4,16,57,16,38,0,33,16,49,16,4,16,58,16,60,0,60,0,60,0,39,16,4,16,58,16,38,0,33,16,49,16,44,16,4,16,57,16,60,0,60,0,60,0,41,16,4,16,57,16,38,0,33,16,49,16,44,16,4,16,58,16,60,0,60,0,60,0,41,16,4,16,58,16,38,0,33,16,49,16,44,16,4,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,4,16,57,16,38,0,33,16,49,16,44,16,4,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,4,16,58,16,38,0,33,16,45,16,5,16,57,16,60,0,60,0,60,0,35,16,5,16,57,16,38,0,33,16,45,16,5,16,58,16,60,0,60,0,60,0,35,16,5,16,58,16,38,0,33,16,47,16,5,16,57,16,60,0,60,0,60,0,37,16,5,16,57,16,38,0,33,16,47,16,5,16,58,16,60,0,60,0,60,0,37,16,5,16,58,16,38,0,33,16,49,16,5,16,57,16,60,0,60,0,60,0,39,16,5,16,57,16,38,0,33,16,49,16,5,16,58,16,60,0,60,0,60,0,39,16,5,16,58,16,38,0,33,16,49,16,44,16,5,16,57,16,60,0,60,0,60,0,41,16,5,16,57,16,38,0,33,16,49,16,44,16,5,16,58,16,60,0,60,0,60,0,41,16,5,16,58,16,38,0,33,16,49,16,44,16,5,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,5,16,57,16,38,0,33,16,49,16,44,16,5,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,5,16,58,16,38,0,33,16,45,16,6,16,57,16,60,0,60,0,60,0,35,16,6,16,57,16,38,0,33,16,45,16,6,16,58,16,60,0,60,0,60,0,35,16,6,16,58,16,38,0,33,16,47,16,6,16,57,16,60,0,60,0,60,0,37,16,6,16,57,16,38,0,33,16,47,16,6,16,58,16,60,0,60,0,60,0,37,16,6,16,58,16,38,0,33,16,49,16,6,16,57,16,60,0,60,0,60,0,39,16,6,16,57,16,38,0,33,16,49,16,6,16,58,16,60,0,60,0,60,0,39,16,6,16,58,16,38,0,33,16,49,16,44,16,6,16,57,16,60,0,60,0,60,0,41,16,6,16,57,16,38,0,33,16,49,16,44,16,6,16,58,16,60,0,60,0,60,0,41,16,6,16,58,16,38,0,33,16,49,16,44,16,6,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,6,16,57,16,38,0,33,16,49,16,44,16,6,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,6,16,58,16,38,0,33,16,45,16,7,16,57,16,60,0,60,0,60,0,35,16,7,16,57,16,38,0,33,16,45,16,7,16,58,16,60,0,60,0,60,0,35,16,7,16,58,16,38,0,33,16,47,16,7,16,57,16,60,0,60,0,60,0,37,16,7,16,57,16,38,0,33,16,47,16,7,16,58,16,60,0,60,0,60,0,37,16,7,16,58,16,38,0,33,16,49,16,7,16,57,16,60,0,60,0,60,0,39,16,7,16,57,16,38,0,33,16,49,16,7,16,58,16,60,0,60,0,60,0,39,16,7,16,58,16,38,0,33,16,49,16,44,16,7,16,57,16,60,0,60,0,60,0,41,16,7,16,57,16,38,0,33,16,49,16,44,16,7,16,58,16,60,0,60,0,60,0,41,16,7,16,58,16,38,0,33,16,49,16,44,16,7,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,7,16,57,16,38,0,33,16,49,16,44,16,7,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,7,16,58,16,38,0,33,16,45,16,9,16,57,16,60,0,60,0,60,0,35,16,9,16,57,16,38,0,33,16,45,16,9,16,58,16,60,0,60,0,60,0,35,16,9,16,58,16,38,0,33,16,47,16,9,16,57,16,60,0,60,0,60,0,37,16,9,16,57,16,38,0,33,16,47,16,9,16,58,16,60,0,60,0,60,0,37,16,9,16,58,16,38,0,33,16,49,16,9,16,57,16,60,0,60,0,60,0,39,16,9,16,57,16,38,0,33,16,49,16,9,16,58,16,60,0,60,0,60,0,39,16,9,16,58,16,38,0,33,16,49,16,44,16,9,16,57,16,60,0,60,0,60,0,41,16,9,16,57,16,38,0,33,16,49,16,44,16,9,16,58,16,60,0,60,0,60,0,41,16,9,16,58,16,38,0,33,16,49,16,44,16,9,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,9,16,57,16,38,0,33,16,49,16,44,16,9,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,9,16,58,16,38,0,33,16,45,16,10,16,57,16,60,0,60,0,60,0,35,16,10,16,57,16,38,0,33,16,45,16,10,16,58,16,60,0,60,0,60,0,35,16,10,16,58,16,38,0,33,16,47,16,10,16,57,16,60,0,60,0,60,0,37,16,10,16,57,16,38,0,33,16,47,16,10,16,58,16,60,0,60,0,60,0,37,16,10,16,58,16,38,0,33,16,49,16,10,16,57,16,60,0,60,0,60,0,39,16,10,16,57,16,38,0,33,16,49,16,10,16,58,16,60,0,60,0,60,0,39,16,10,16,58,16,38,0,33,16,49,16,44,16,10,16,57,16,60,0,60,0,60,0,41,16,10,16,57,16,38,0,33,16,49,16,44,16,10,16,58,16,60,0,60,0,60,0,41,16,10,16,58,16,38,0,33,16,49,16,44,16,10,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,10,16,57,16,38,0,33,16,49,16,44,16,10,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,10,16,58,16,38,0,33,16,45,16,11,16,57,16,60,0,60,0,60,0,35,16,11,16,57,16,38,0,33,16,45,16,11,16,58,16,60,0,60,0,60,0,35,16,11,16,58,16,38,0,33,16,47,16,11,16,57,16,60,0,60,0,60,0,37,16,11,16,57,16,38,0,33,16,47,16,11,16,58,16,60,0,60,0,60,0,37,16,11,16,58,16,38,0,33,16,49,16,11,16,57,16,60,0,60,0,60,0,39,16,11,16,57,16,38,0,33,16,49,16,11,16,58,16,60,0,60,0,60,0,39,16,11,16,58,16,38,0,33,16,49,16,44,16,11,16,57,16,60,0,60,0,60,0,41,16,11,16,57,16,38,0,33,16,49,16,44,16,11,16,58,16,60,0,60,0,60,0,41,16,11,16,58,16,38,0,33,16,49,16,44,16,11,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,11,16,57,16,38,0,33,16,49,16,44,16,11,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,11,16,58,16,38,0,33,16,45,16,12,16,57,16,60,0,60,0,60,0,35,16,12,16,57,16,38,0,33,16,45,16,12,16,58,16,60,0,60,0,60,0,35,16,12,16,58,16,38,0,33,16,47,16,12,16,57,16,60,0,60,0,60,0,37,16,12,16,57,16,38,0,33,16,47,16,12,16,58,16,60,0,60,0,60,0,37,16,12,16,58,16,38,0,33,16,49,16,12,16,57,16,60,0,60,0,60,0,39,16,12,16,57,16,38,0,33,16,49,16,12,16,58,16,60,0,60,0,60,0,39,16,12,16,58,16,38,0,33,16,49,16,44,16,12,16,57,16,60,0,60,0,60,0,41,16,12,16,57,16,38,0,33,16,49,16,44,16,12,16,58,16,60,0,60,0,60,0,41,16,12,16,58,16,38,0,33,16,49,16,44,16,12,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,12,16,57,16,38,0,33,16,49,16,44,16,12,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,12,16,58,16,38,0,33,16,45,16,13,16,57,16,60,0,60,0,60,0,35,16,13,16,57,16,38,0,33,16,45,16,13,16,58,16,60,0,60,0,60,0,35,16,13,16,58,16,38,0,33,16,47,16,13,16,57,16,60,0,60,0,60,0,37,16,13,16,57,16,38,0,33,16,47,16,13,16,58,16,60,0,60,0,60,0,37,16,13,16,58,16,38,0,33,16,49,16,13,16,57,16,60,0,60,0,60,0,39,16,13,16,57,16,38,0,33,16,49,16,13,16,58,16,60,0,60,0,60,0,39,16,13,16,58,16,38,0,33,16,49,16,44,16,13,16,57,16,60,0,60,0,60,0,41,16,13,16,57,16,38,0,33,16,49,16,44,16,13,16,58,16,60,0,60,0,60,0,41,16,13,16,58,16,38,0,33,16,49,16,44,16,13,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,13,16,57,16,38,0,33,16,49,16,44,16,13,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,13,16,58,16,38,0,33,16,45,16,14,16,57,16,60,0,60,0,60,0,35,16,14,16,57,16,38,0,33,16,45,16,14,16,58,16,60,0,60,0,60,0,35,16,14,16,58,16,38,0,33,16,47,16,14,16,57,16,60,0,60,0,60,0,37,16,14,16,57,16,38,0,33,16,47,16,14,16,58,16,60,0,60,0,60,0,37,16,14,16,58,16,38,0,33,16,49,16,14,16,57,16,60,0,60,0,60,0,39,16,14,16,57,16,38,0,33,16,49,16,14,16,58,16,60,0,60,0,60,0,39,16,14,16,58,16,38,0,33,16,49,16,44,16,14,16,57,16,60,0,60,0,60,0,41,16,14,16,57,16,38,0,33,16,49,16,44,16,14,16,58,16,60,0,60,0,60,0,41,16,14,16,58,16,38,0,33,16,49,16,44,16,14,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,14,16,57,16,38,0,33,16,49,16,44,16,14,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,14,16,58,16,38,0,33,16,45,16,15,16,57,16,60,0,60,0,60,0,35,16,15,16,57,16,38,0,33,16,45,16,15,16,58,16,60,0,60,0,60,0,35,16,15,16,58,16,38,0,33,16,47,16,15,16,57,16,60,0,60,0,60,0,37,16,15,16,57,16,38,0,33,16,47,16,15,16,58,16,60,0,60,0,60,0,37,16,15,16,58,16,38,0,33,16,49,16,15,16,57,16,60,0,60,0,60,0,39,16,15,16,57,16,38,0,33,16,49,16,15,16,58,16,60,0,60,0,60,0,39,16,15,16,58,16,38,0,33,16,49,16,44,16,15,16,57,16,60,0,60,0,60,0,41,16,15,16,57,16,38,0,33,16,49,16,44,16,15,16,58,16,60,0,60,0,60,0,41,16,15,16,58,16,38,0,33,16,49,16,44,16,15,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,15,16,57,16,38,0,33,16,49,16,44,16,15,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,15,16,58,16,38,0,33,16,45,16,16,16,57,16,60,0,60,0,60,0,35,16,16,16,57,16,38,0,33,16,45,16,16,16,58,16,60,0,60,0,60,0,35,16,16,16,58,16,38,0,33,16,47,16,16,16,57,16,60,0,60,0,60,0,37,16,16,16,57,16,38,0,33,16,47,16,16,16,58,16,60,0,60,0,60,0,37,16,16,16,58,16,38,0,33,16,49,16,16,16,57,16,60,0,60,0,60,0,39,16,16,16,57,16,38,0,33,16,49,16,16,16,58,16,60,0,60,0,60,0,39,16,16,16,58,16,38,0,33,16,49,16,44,16,16,16,57,16,60,0,60,0,60,0,41,16,16,16,57,16,38,0,33,16,49,16,44,16,16,16,58,16,60,0,60,0,60,0,41,16,16,16,58,16,38,0,33,16,49,16,44,16,16,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,16,16,57,16,38,0,33,16,49,16,44,16,16,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,16,16,58,16,38,0,33,16,45,16,17,16,57,16,60,0,60,0,60,0,35,16,17,16,57,16,38,0,33,16,45,16,17,16,58,16,60,0,60,0,60,0,35,16,17,16,58,16,38,0,33,16,47,16,17,16,57,16,60,0,60,0,60,0,37,16,17,16,57,16,38,0,33,16,47,16,17,16,58,16,60,0,60,0,60,0,37,16,17,16,58,16,38,0,33,16,49,16,17,16,57,16,60,0,60,0,60,0,39,16,17,16,57,16,38,0,33,16,49,16,17,16,58,16,60,0,60,0,60,0,39,16,17,16,58,16,38,0,33,16,49,16,44,16,17,16,57,16,60,0,60,0,60,0,41,16,17,16,57,16,38,0,33,16,49,16,44,16,17,16,58,16,60,0,60,0,60,0,41,16,17,16,58,16,38,0,33,16,49,16,44,16,17,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,17,16,57,16,38,0,33,16,49,16,44,16,17,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,17,16,58,16,38,0,33,16,45,16,18,16,57,16,60,0,60,0,60,0,35,16,18,16,57,16,38,0,33,16,45,16,18,16,58,16,60,0,60,0,60,0,35,16,18,16,58,16,38,0,33,16,47,16,18,16,57,16,60,0,60,0,60,0,37,16,18,16,57,16,38,0,33,16,47,16,18,16,58,16,60,0,60,0,60,0,37,16,18,16,58,16,38,0,33,16,49,16,18,16,57,16,60,0,60,0,60,0,39,16,18,16,57,16,38,0,33,16,49,16,18,16,58,16,60,0,60,0,60,0,39,16,18,16,58,16,38,0,33,16,49,16,44,16,18,16,57,16,60,0,60,0,60,0,41,16,18,16,57,16,38,0,33,16,49,16,44,16,18,16,58,16,60,0,60,0,60,0,41,16,18,16,58,16,38,0,33,16,49,16,44,16,18,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,18,16,57,16,38,0,33,16,49,16,44,16,18,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,18,16,58,16,38,0,33,16,45,16,19,16,57,16,60,0,60,0,60,0,35,16,19,16,57,16,38,0,33,16,45,16,19,16,58,16,60,0,60,0,60,0,35,16,19,16,58,16,38,0,33,16,47,16,19,16,57,16,60,0,60,0,60,0,37,16,19,16,57,16,38,0,33,16,47,16,19,16,58,16,60,0,60,0,60,0,37,16,19,16,58,16,38,0,33,16,49,16,19,16,57,16,60,0,60,0,60,0,39,16,19,16,57,16,38,0,33,16,49,16,19,16,58,16,60,0,60,0,60,0,39,16,19,16,58,16,38,0,33,16,49,16,44,16,19,16,57,16,60,0,60,0,60,0,41,16,19,16,57,16,38,0,33,16,49,16,44,16,19,16,58,16,60,0,60,0,60,0,41,16,19,16,58,16,38,0,33,16,49,16,44,16,19,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,19,16,57,16,38,0,33,16,49,16,44,16,19,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,19,16,58,16,38,0,33,16,45,16,20,16,57,16,60,0,60,0,60,0,35,16,20,16,57,16,38,0,33,16,45,16,20,16,58,16,60,0,60,0,60,0,35,16,20,16,58,16,38,0,33,16,47,16,20,16,57,16,60,0,60,0,60,0,37,16,20,16,57,16,38,0,33,16,47,16,20,16,58,16,60,0,60,0,60,0,37,16,20,16,58,16,38,0,33,16,49,16,20,16,57,16,60,0,60,0,60,0,39,16,20,16,57,16,38,0,33,16,49,16,20,16,58,16,60,0,60,0,60,0,39,16,20,16,58,16,38,0,33,16,49,16,44,16,20,16,57,16,60,0,60,0,60,0,41,16,20,16,57,16,38,0,33,16,49,16,44,16,20,16,58,16,60,0,60,0,60,0,41,16,20,16,58,16,38,0,33,16,49,16,44,16,20,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,20,16,57,16,38,0,33,16,49,16,44,16,20,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,20,16,58,16,38,0,33,16,45,16,21,16,57,16,60,0,60,0,60,0,35,16,21,16,57,16,38,0,33,16,45,16,21,16,58,16,60,0,60,0,60,0,35,16,21,16,58,16,38,0,33,16,47,16,21,16,57,16,60,0,60,0,60,0,37,16,21,16,57,16,38,0,33,16,47,16,21,16,58,16,60,0,60,0,60,0,37,16,21,16,58,16,38,0,33,16,49,16,21,16,57,16,60,0,60,0,60,0,39,16,21,16,57,16,38,0,33,16,49,16,21,16,58,16,60,0,60,0,60,0,39,16,21,16,58,16,38,0,33,16,49,16,44,16,21,16,57,16,60,0,60,0,60,0,41,16,21,16,57,16,38,0,33,16,49,16,44,16,21,16,58,16,60,0,60,0,60,0,41,16,21,16,58,16,38,0,33,16,49,16,44,16,21,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,21,16,57,16,38,0,33,16,49,16,44,16,21,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,21,16,58,16,38,0,33,16,45,16,22,16,57,16,60,0,60,0,60,0,35,16,22,16,57,16,38,0,33,16,45,16,22,16,58,16,60,0,60,0,60,0,35,16,22,16,58,16,38,0,33,16,47,16,22,16,57,16,60,0,60,0,60,0,37,16,22,16,57,16,38,0,33,16,47,16,22,16,58,16,60,0,60,0,60,0,37,16,22,16,58,16,38,0,33,16,49,16,22,16,57,16,60,0,60,0,60,0,39,16,22,16,57,16,38,0,33,16,49,16,22,16,58,16,60,0,60,0,60,0,39,16,22,16,58,16,38,0,33,16,49,16,44,16,22,16,57,16,60,0,60,0,60,0,41,16,22,16,57,16,38,0,33,16,49,16,44,16,22,16,58,16,60,0,60,0,60,0,41,16,22,16,58,16,38,0,33,16,49,16,44,16,22,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,22,16,57,16,38,0,33,16,49,16,44,16,22,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,22,16,58,16,38,0,33,16,45,16,23,16,57,16,60,0,60,0,60,0,35,16,23,16,57,16,38,0,33,16,45,16,23,16,58,16,60,0,60,0,60,0,35,16,23,16,58,16,38,0,33,16,47,16,23,16,57,16,60,0,60,0,60,0,37,16,23,16,57,16,38,0,33,16,47,16,23,16,58,16,60,0,60,0,60,0,37,16,23,16,58,16,38,0,33,16,49,16,23,16,57,16,60,0,60,0,60,0,39,16,23,16,57,16,38,0,33,16,49,16,23,16,58,16,60,0,60,0,60,0,39,16,23,16,58,16,38,0,33,16,49,16,44,16,23,16,57,16,60,0,60,0,60,0,41,16,23,16,57,16,38,0,33,16,49,16,44,16,23,16,58,16,60,0,60,0,60,0,41,16,23,16,58,16,38,0,33,16,49,16,44,16,23,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,23,16,57,16,38,0,33,16,49,16,44,16,23,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,23,16,58,16,38,0,33,16,45,16,24,16,57,16,60,0,60,0,60,0,35,16,24,16,57,16,38,0,33,16,45,16,24,16,58,16,60,0,60,0,60,0,35,16,24,16,58,16,38,0,33,16,47,16,24,16,57,16,60,0,60,0,60,0,37,16,24,16,57,16,38,0,33,16,47,16,24,16,58,16,60,0,60,0,60,0,37,16,24,16,58,16,38,0,33,16,49,16,24,16,57,16,60,0,60,0,60,0,39,16,24,16,57,16,38,0,33,16,49,16,24,16,58,16,60,0,60,0,60,0,39,16,24,16,58,16,38,0,33,16,49,16,44,16,24,16,57,16,60,0,60,0,60,0,41,16,24,16,57,16,38,0,33,16,49,16,44,16,24,16,58,16,60,0,60,0,60,0,41,16,24,16,58,16,38,0,33,16,49,16,44,16,24,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,24,16,57,16,38,0,33,16,49,16,44,16,24,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,24,16,58,16,38,0,33,16,45,16,25,16,57,16,60,0,60,0,60,0,35,16,25,16,57,16,38,0,33,16,45,16,25,16,58,16,60,0,60,0,60,0,35,16,25,16,58,16,38,0,33,16,47,16,25,16,57,16,60,0,60,0,60,0,37,16,25,16,57,16,38,0,33,16,47,16,25,16,58,16,60,0,60,0,60,0,37,16,25,16,58,16,38,0,33,16,49,16,25,16,57,16,60,0,60,0,60,0,39,16,25,16,57,16,38,0,33,16,49,16,25,16,58,16,60,0,60,0,60,0,39,16,25,16,58,16,38,0,33,16,49,16,44,16,25,16,57,16,60,0,60,0,60,0,41,16,25,16,57,16,38,0,33,16,49,16,44,16,25,16,58,16,60,0,60,0,60,0,41,16,25,16,58,16,38,0,33,16,49,16,44,16,25,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,25,16,57,16,38,0,33,16,49,16,44,16,25,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,25,16,58,16,38,0,33,16,45,16,26,16,57,16,60,0,60,0,60,0,35,16,26,16,57,16,38,0,33,16,45,16,26,16,58,16,60,0,60,0,60,0,35,16,26,16,58,16,38,0,33,16,47,16,26,16,57,16,60,0,60,0,60,0,37,16,26,16,57,16,38,0,33,16,47,16,26,16,58,16,60,0,60,0,60,0,37,16,26,16,58,16,38,0,33,16,49,16,26,16,57,16,60,0,60,0,60,0,39,16,26,16,57,16,38,0,33,16,49,16,26,16,58,16,60,0,60,0,60,0,39,16,26,16,58,16,38,0,33,16,49,16,44,16,26,16,57,16,60,0,60,0,60,0,41,16,26,16,57,16,38,0,33,16,49,16,44,16,26,16,58,16,60,0,60,0,60,0,41,16,26,16,58,16,38,0,33,16,49,16,44,16,26,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,26,16,57,16,38,0,33,16,49,16,44,16,26,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,26,16,58,16,38,0,33,16,45,16,27,16,57,16,60,0,60,0,60,0,35,16,27,16,57,16,38,0,33,16,45,16,27,16,58,16,60,0,60,0,60,0,35,16,27,16,58,16,38,0,33,16,47,16,27,16,57,16,60,0,60,0,60,0,37,16,27,16,57,16,38,0,33,16,47,16,27,16,58,16,60,0,60,0,60,0,37,16,27,16,58,16,38,0,33,16,49,16,27,16,57,16,60,0,60,0,60,0,39,16,27,16,57,16,38,0,33,16,49,16,27,16,58,16,60,0,60,0,60,0,39,16,27,16,58,16,38,0,33,16,49,16,44,16,27,16,57,16,60,0,60,0,60,0,41,16,27,16,57,16,38,0,33,16,49,16,44,16,27,16,58,16,60,0,60,0,60,0,41,16,27,16,58,16,38,0,33,16,49,16,44,16,27,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,27,16,57,16,38,0,33,16,49,16,44,16,27,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,27,16,58,16,38,0,33,16,45,16,28,16,57,16,60,0,60,0,60,0,35,16,28,16,57,16,38,0,33,16,45,16,28,16,58,16,60,0,60,0,60,0,35,16,28,16,58,16,38,0,33,16,47,16,28,16,57,16,60,0,60,0,60,0,37,16,28,16,57,16,38,0,33,16,47,16,28,16,58,16,60,0,60,0,60,0,37,16,28,16,58,16,38,0,33,16,49,16,28,16,57,16,60,0,60,0,60,0,39,16,28,16,57,16,38,0,33,16,49,16,28,16,58,16,60,0,60,0,60,0,39,16,28,16,58,16,38,0,33,16,49,16,44,16,28,16,57,16,60,0,60,0,60,0,41,16,28,16,57,16,38,0,33,16,49,16,44,16,28,16,58,16,60,0,60,0,60,0,41,16,28,16,58,16,38,0,33,16,49,16,44,16,28,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,28,16,57,16,38,0,33,16,49,16,44,16,28,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,28,16,58,16,38,0,33,16,45,16,30,16,57,16,60,0,60,0,60,0,35,16,30,16,57,16,38,0,33,16,45,16,30,16,58,16,60,0,60,0,60,0,35,16,30,16,58,16,38,0,33,16,47,16,30,16,57,16,60,0,60,0,60,0,37,16,30,16,57,16,38,0,33,16,47,16,30,16,58,16,60,0,60,0,60,0,37,16,30,16,58,16,38,0,33,16,49,16,30,16,57,16,60,0,60,0,60,0,39,16,30,16,57,16,38,0,33,16,49,16,30,16,58,16,60,0,60,0,60,0,39,16,30,16,58,16,38,0,33,16,49,16,44,16,30,16,57,16,60,0,60,0,60,0,41,16,30,16,57,16,38,0,33,16,49,16,44,16,30,16,58,16,60,0,60,0,60,0,41,16,30,16,58,16,38,0,33,16,49,16,44,16,30,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,30,16,57,16,38,0,33,16,49,16,44,16,30,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,30,16,58,16,38,0,33,16,45,16,31,16,57,16,60,0,60,0,60,0,35,16,31,16,57,16,38,0,33,16,45,16,31,16,58,16,60,0,60,0,60,0,35,16,31,16,58,16,38,0,33,16,47,16,31,16,57,16,60,0,60,0,60,0,37,16,31,16,57,16,38,0,33,16,47,16,31,16,58,16,60,0,60,0,60,0,37,16,31,16,58,16,38,0,33,16,49,16,31,16,57,16,60,0,60,0,60,0,39,16,31,16,57,16,38,0,33,16,49,16,31,16,58,16,60,0,60,0,60,0,39,16,31,16,58,16,38,0,33,16,49,16,44,16,31,16,57,16,60,0,60,0,60,0,41,16,31,16,57,16,38,0,33,16,49,16,44,16,31,16,58,16,60,0,60,0,60,0,41,16,31,16,58,16,38,0,33,16,49,16,44,16,31,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,31,16,57,16,38,0,33,16,49,16,44,16,31,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,31,16,58,16,38,0,49,16,44,16,0,16,58,16,0,16,59,16,61,0,49,16,44,16,0,16,58,16,59,16,38,0,20,16,58,16,20,16,47,16,21,16,58,16,61,0,20,16,58,16,47,16,21,16,58,16,38,0,49,16,30,16,57,16,30,16,61,0,49,16,63,16,38,0,45,16,30,16,57,16,30,16,61,0,45,16,63,16,38,0,47,16,30,16,57,16,30,16,61,0,47,16,63,16,38,0,33,16,45,16,30,16,57,16,30,16,60,0,60,0,60,0,35,16,63,16,38,0,33,16,47,16,30,16,57,16,30,16,60,0,60,0,60,0,37,16,63,16,38,0,30,16,57,16,30,16,61,0,63,16,38,0,20,16,62,16,45,16,47,16,0,16,58,16,60,0,60,0,76,16,38,0,27,16,61,16,49,16,55,16,60,0,60,0,77,16,38,0,28,16,10,16,58,16,56,16,0,16,49,16,44,16,4,16,58,16,56,16,60,0,60,0,78,16,4,16,58,16,56,16,38,0,33,16,45,16,60,0,60,0,79,16,38,0,28,16,0,16,58,16,26,16,44,16,61,0,28,16,0,16,58,16,59,16,44,16,38,0,30,16,25,16,46,16,61,0,30,16,57,16,25,16,46,16,38,0,17,16,25,16,4,16,58,16,56,16,61,0,17,16,57,16,25,16,4,16,58,16,56,16,38,0,28,16,0,16,58,16,24,16,0,16,58,16,61,0,28,16,57,16,24,16,0,16,58,16,0,0,170,170,170,170,170,170,170,170,170,170,170,170,82,100,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,236,26,0,0,236,26,0,0,12,66,0,0,12,66,0,0,172,66,0,0,172,66,0,0,20,100,0,0,54,100,0,0,28,0,0,0,0,0,79,117,178,255,94,117,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,0,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,145,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,120,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,3,0,202,225,3,0,202,2,4,0,202,35,4,0,202,68,4,0,202,101,4,0,202,134,4,0,202,167,4,0,202,200,4,0,202,233,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,3,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,66,3,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,3,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,201,38,1,0,201,38,2,0,201,70,3,0,201,102,4,0,201,134,5,0,201,166,6,0,201,198,7,0,201,230,8,0,201,166,9,0,201,198,10,0,201,230,11,0,201,6,13,0,201,38,14,0,201,70,15,0,201,102,16,0,201,134,17,0,201,166,18,0,201,166,20,0,201,198,21,0,201,230,22,0,201,166,24,0,201,198,25,0,201,230,26,0,201,6,28,0,201,38,29,0,201,70,30,0,201,102,31,0,201,132,32,0,201,102,35,0,201,38,36,0,201,198,37,0,201,230,38,0,201,166,39,0,192,0,0,0,201,100,40,0,198,34,25,0,201,196,75,0,198,98,40,0,201,68,112,0,198,66,56,0,201,36,147,0,198,66,86,0,201,36,217,0,201,4,255,0,201,4,37,1,192,0,0,0,201,228,115,1,192,0,0,0,201,164,156,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,150,89,117,201,160,16,2,193,81,93,117,192,0,0,0,192,0,0,0,201,128,17,2,201,32,19,2,201,192,20,2,198,193,153,0,198,226,153,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,154,0,198,132,154,0,201,128,21,2,198,194,155,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,156,0,198,33,156,0,198,65,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,152,89,117,0,5,0,5,7,154,89,117,0,5,0,70,7,154,89,117,0,5,0,5,14,154,89,117,0,5,0,70,14,154,89,117,0,5,0,5,21,154,89,117,0,5,0,70,21,154,89,117,0,5,0,70,28,154,89,117,0,5,0,5,28,154,89,117,0,5,0,5,35,154,89,117,0,5,0,70,35,154,89,117,0,5,0,5,42,154,89,117,0,5,0,70,42,154,89,117,0,5,0,5,49,154,89,117,0,5,0,70,49,154,89,117,0,5,0,5,56,154,89,117,0,5,0,5,63,154,89,117,0,5,0,70,63,154,89,117,0,5,0,5,70,154,89,117,0,5,0,70,70,154,89,117,0,5,0,5,77,154,89,117,0,5,0,70,77,154,89,117,0,5,0,5,84,154,89,117,0,5,0,70,84,154,89,117,0,5,0,5,91,154,89,117,0,5,0,70,91,154,89,117,0,5,0,5,98,154,89,117,0,5,0,70,98,154,89,117,0,5,0,5,105,154,89,117,0,5,0,70,105,154,89,117,0,5,0,5,112,154,89,117,0,5,0,70,112,154,89,117,0,5,0,5,119,154,89,117,0,5,0,5,0,119,80,117,0,5,0,5,0,33,81,117,0,5,0,70,28,154,89,117,0,5,0,5,0,81,93,117,0,5,0,70,119,154,89,117,0,5,0,5,126,154,89,117,0,5,0,70,126,154,89,117,0,5,0,5,133,154,89,117,0,5,0,70,133,154,89,117,0,5,0,5,140,154,89,117,0,5,0,70,140,154,89,117,0,5,0,70,140,154,89,117,0,5,0,5,0,168,80,117,0,5,0,70,150,154,89,117,0,5,0,5,147,154,89,117,0,5,0,70,147,154,89,117,0,5,0,5,154,154,89,117,0,5,0,70,154,154,89,117,0,5,0,5,161,154,89,117,0,5,0,70,161,154,89,117,0,5,0,5,168,154,89,117,0,5,0,70,168,154,89,117,0,5,0,5,175,154,89,117,0,5,0,70,175,154,89,117,0,5,0,5,192,154,89,117,0,5,0,70,192,154,89,117,0,5,0,5,199,154,89,117,0,5,0,70,199,154,89,117,0,5,0,5,0,89,81,117,0,5,0,70,0,152,89,117,0,5,0,5,0,47,81,117,0,5,0,5,0,0,87,117,0,5,0,5,206,154,89,117,0,5,0,5,0,89,81,117,0,5,0,70,0,152,89,117,0,5,0,5,0,12,81,117,0,5,0,70,0,152,89,117,0,5,0,70,206,154,89,117,0,5,0,5,213,154,89,117,0,5,0,5,220,154,89,117,0,5,0,70,220,154,89,117,0,5,0,5,227,154,89,117,0,5,0,70,227,154,89,117,0,5,0,5,234,154,89,117,0,5,0,5,241,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,23,89,117,0,5,0,5,0,100,85,117,0,6,0,5,2,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,2,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,9,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,9,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,16,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,16,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,23,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,23,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,30,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,37,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,37,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,44,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,44,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,51,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,51,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,65,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,65,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,72,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,72,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,79,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,79,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,86,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,86,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,93,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,93,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,100,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,100,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,107,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,107,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,114,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,114,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,121,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,121,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,128,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,128,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,135,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,135,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,142,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,142,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,149,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,149,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,156,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,156,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,163,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,163,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,170,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,170,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,177,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,177,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,194,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,194,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,201,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,201,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,208,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,208,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,222,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,222,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,229,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,229,154,89,117,0,5,0,5,0,100,85,117,0,5,0,5,222,154,89,117,0,7,0,5,0,0,83,117,0,5,0,5,0,100,85,117,0,6,0,5,0,37,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,51,89,117,0,5,0,5,0,100,85,117,0,6,0,5,3,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,3,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,10,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,10,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,17,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,17,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,24,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,24,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,31,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,38,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,38,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,45,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,45,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,52,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,52,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,66,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,66,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,73,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,73,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,80,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,80,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,87,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,87,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,94,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,94,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,101,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,101,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,108,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,108,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,115,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,115,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,122,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,122,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,129,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,129,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,136,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,136,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,143,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,143,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,150,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,150,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,157,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,157,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,164,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,164,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,171,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,171,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,183,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,183,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,195,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,195,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,202,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,202,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,209,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,209,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,223,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,223,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,230,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,230,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,72,89,117,0,5,0,5,0,100,85,117,0,6,0,5,184,154,89,117,0,5,0,5,0,100,85,117,0,5,0,5,223,154,89,117,0,6,0,5,0,0,83,117,0,5,0,5,0,100,85,117,0,6,0,5,0,107,89,117,0,5,0,5,0,100,85,117,0,6,0,5,4,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,4,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,11,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,11,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,18,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,18,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,25,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,25,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,32,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,39,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,39,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,46,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,46,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,53,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,53,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,67,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,67,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,74,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,74,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,81,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,81,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,88,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,88,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,95,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,95,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,102,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,102,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,109,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,109,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,116,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,116,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,123,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,123,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,130,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,130,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,137,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,137,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,144,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,144,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,151,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,151,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,158,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,158,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,165,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,165,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,172,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,172,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,189,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,189,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,196,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,196,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,203,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,203,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,210,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,210,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,224,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,224,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,231,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,231,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,0,107,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,136,89,117,0,5,0,5,0,100,85,117,0,7,0,5,5,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,5,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,12,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,12,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,19,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,19,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,26,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,26,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,33,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,40,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,40,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,47,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,47,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,54,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,54,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,68,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,68,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,75,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,75,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,82,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,82,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,89,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,89,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,96,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,96,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,103,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,103,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,110,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,110,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,117,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,117,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,124,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,124,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,131,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,131,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,138,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,138,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,145,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,145,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,152,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,152,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,159,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,159,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,166,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,166,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,173,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,173,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,190,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,190,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,197,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,197,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,204,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,204,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,211,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,211,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,225,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,225,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,232,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,232,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,5,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,5,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,12,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,12,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,19,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,19,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,26,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,26,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,33,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,40,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,40,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,47,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,47,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,54,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,54,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,68,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,68,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,75,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,75,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,82,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,82,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,89,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,89,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,96,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,96,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,103,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,103,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,110,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,110,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,117,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,117,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,124,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,124,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,131,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,131,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,138,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,138,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,145,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,145,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,152,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,152,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,159,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,159,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,166,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,166,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,173,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,173,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,190,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,190,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,197,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,197,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,204,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,204,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,211,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,211,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,225,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,225,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,232,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,232,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,137,89,117,0,5,0,71,0,153,89,117,0,5,0,72,0,153,89,117,0,5,0,71,8,154,89,117,0,5,0,72,8,154,89,117,0,5,0,71,15,154,89,117,0,5,0,72,15,154,89,117,0,5,0,71,22,154,89,117,0,5,0,72,22,154,89,117,0,5,0,72,29,154,89,117,0,5,0,71,29,154,89,117,0,5,0,71,36,154,89,117,0,5,0,72,36,154,89,117,0,5,0,71,43,154,89,117,0,5,0,72,43,154,89,117,0,5,0,71,50,154,89,117,0,5,0,72,50,154,89,117,0,5,0,70,57,154,89,117,0,5,0,71,64,154,89,117,0,5,0,72,64,154,89,117,0,5,0,71,71,154,89,117,0,5,0,72,71,154,89,117,0,5,0,71,78,154,89,117,0,5,0,72,78,154,89,117,0,5,0,71,85,154,89,117,0,5,0,72,85,154,89,117,0,5,0,71,92,154,89,117,0,5,0,72,92,154,89,117,0,5,0,71,99,154,89,117,0,5,0,72,99,154,89,117,0,5,0,71,106,154,89,117,0,5,0,72,106,154,89,117,0,5,0,71,113,154,89,117,0,5,0,72,113,154,89,117,0,5,0,71,120,154,89,117,0,5,0,72,120,154,89,117,0,5,0,71,127,154,89,117,0,5,0,72,127,154,89,117,0,5,0,71,134,154,89,117,0,5,0,72,134,154,89,117,0,5,0,71,141,154,89,117,0,5,0,72,141,154,89,117,0,5,0,71,148,154,89,117,0,5,0,72,148,154,89,117,0,5,0,71,155,154,89,117,0,5,0,72,155,154,89,117,0,5,0,71,162,154,89,117,0,5,0,72,162,154,89,117,0,5,0,71,169,154,89,117,0,5,0,72,169,154,89,117,0,5,0,71,176,154,89,117,0,5,0,72,176,154,89,117,0,5,0,71,193,154,89,117,0,5,0,72,193,154,89,117,0,5,0,71,200,154,89,117,0,5,0,72,200,154,89,117,0,5,0,71,207,154,89,117,0,5,0,72,207,154,89,117,0,5,0,70,214,154,89,117,0,5,0,71,221,154,89,117,0,5,0,72,221,154,89,117,0,5,0,71,228,154,89,117,0,5,0,72,228,154,89,117,0,5,0,70,235,154,89,117,0,5,0,70,242,154,89,117,0,5,0,70,0,153,89,117,0,5,0,5,8,154,89,117,0,5,0,70,8,154,89,117,0,5,0,5,15,154,89,117,0,5,0,70,15,154,89,117,0,5,0,5,22,154,89,117,0,5,0,70,22,154,89,117,0,5,0,70,29,154,89,117,0,5,0,5,29,154,89,117,0,5,0,5,36,154,89,117,0,5,0,70,36,154,89,117,0,5,0,5,43,154,89,117,0,5,0,70,43,154,89,117,0,5,0,5,50,154,89,117,0,5,0,70,50,154,89,117,0,5,0,5,57,154,89,117,0,5,0,5,64,154,89,117,0,5,0,70,64,154,89,117,0,5,0,5,71,154,89,117,0,5,0,70,71,154,89,117,0,5,0,5,78,154,89,117,0,5,0,70,78,154,89,117,0,5,0,5,85,154,89,117,0,5,0,70,85,154,89,117,0,5,0,5,92,154,89,117,0,5,0,70,92,154,89,117,0,5,0,5,99,154,89,117,0,5,0,70,99,154,89,117,0,5,0,5,106,154,89,117,0,5,0,70,106,154,89,117,0,5,0,5,113,154,89,117,0,5,0,70,113,154,89,117,0,5,0,5,120,154,89,117,0,5,0,70,120,154,89,117,0,5,0,5,127,154,89,117,0,5,0,70,127,154,89,117,0,5,0,5,134,154,89,117,0,5,0,70,134,154,89,117,0,5,0,5,141,154,89,117,0,5,0,70,141,154,89,117,0,5,0,5,148,154,89,117,0,5,0,70,148,154,89,117,0,5,0,5,155,154,89,117,0,5,0,70,155,154,89,117,0,5,0,5,162,154,89,117,0,5,0,70,162,154,89,117,0,5,0,5,169,154,89,117,0,5,0,70,169,154,89,117,0,5,0,5,176,154,89,117,0,5,0,70,176,154,89,117,0,5,0,5,193,154,89,117,0,5,0,70,193,154,89,117,0,5,0,5,200,154,89,117,0,5,0,70,200,154,89,117,0,5,0,5,207,154,89,117,0,5,0,70,207,154,89,117,0,5,0,5,214,154,89,117,0,5,0,5,221,154,89,117,0,5,0,70,221,154,89,117,0,5,0,5,228,154,89,117,0,5,0,70,228,154,89,117,0,5,0,5,235,154,89,117,0,5,0,5,242,154,89,117,0,5,0,5,2,154,89,117,0,5,0,70,2,154,89,117,0,5,0,5,9,154,89,117,0,5,0,70,9,154,89,117,0,5,0,5,16,154,89,117,0,5,0,70,16,154,89,117,0,5,0,5,23,154,89,117,0,5,0,70,23,154,89,117,0,5,0,70,30,154,89,117,0,5,0,5,30,154,89,117,0,5,0,5,37,154,89,117,0,5,0,70,37,154,89,117,0,5,0,5,44,154,89,117,0,5,0,70,44,154,89,117,0,5,0,5,51,154,89,117,0,5,0,70,51,154,89,117,0,5,0,5,58,154,89,117,0,5,0,5,65,154,89,117,0,5,0,70,65,154,89,117,0,5,0,5,72,154,89,117,0,5,0,70,72,154,89,117,0,5,0,5,79,154,89,117,0,5,0,70,79,154,89,117,0,5,0,5,86,154,89,117,0,5,0,70,86,154,89,117,0,5,0,5,93,154,89,117,0,5,0,70,93,154,89,117,0,5,0,5,100,154,89,117,0,5,0,70,100,154,89,117,0,5,0,5,107,154,89,117,0,5,0,70,107,154,89,117,0,5,0,5,114,154,89,117,0,5,0,70,114,154,89,117,0,5,0,5,121,154,89,117,0,5,0,70,121,154,89,117,0,5,0,5,128,154,89,117,0,5,0,70,128,154,89,117,0,5,0,5,135,154,89,117,0,5,0,70,135,154,89,117,0,5,0,5,142,154,89,117,0,5,0,70,142,154,89,117,0,5,0,5,149,154,89,117,0,5,0,70,149,154,89,117,0,5,0,5,156,154,89,117,0,5,0,70,156,154,89,117,0,5,0,5,163,154,89,117,0,5,0,70,163,154,89,117,0,5,0,5,170,154,89,117,0,5,0,70,170,154,89,117,0,5,0,5,179,154,89,117,0,5,0,5,177,154,89,117,0,5,0,70,177,154,89,117,0,5,0,5,181,154,89,117,0,5,0,5,194,154,89,117,0,5,0,70,194,154,89,117,0,5,0,5,201,154,89,117,0,5,0,70,201,154,89,117,0,5,0,5,208,154,89,117,0,5,0,70,208,154,89,117,0,5,0,5,215,154,89,117,0,5,0,70,222,154,89,117,0,5,0,5,229,154,89,117,0,5,0,70,229,154,89,117,0,5,0,5,236,154,89,117,0,5,0,5,243,154,89,117,0,5,0,5,6,154,89,117,0,5,0,70,6,154,89,117,0,5,0,5,13,154,89,117,0,5,0,70,13,154,89,117,0,5,0,5,20,154,89,117,0,5,0,70,20,154,89,117,0,5,0,5,27,154,89,117,0,5,0,70,27,154,89,117,0,5,0,70,34,154,89,117,0,5,0,5,34,154,89,117,0,5,0,5,41,154,89,117,0,5,0,70,41,154,89,117,0,5,0,5,48,154,89,117,0,5,0,70,48,154,89,117,0,5,0,5,55,154,89,117,0,5,0,70,55,154,89,117,0,5,0,5,62,154,89,117,0,5,0,5,69,154,89,117,0,5,0,70,69,154,89,117,0,5,0,5,76,154,89,117,0,5,0,70,76,154,89,117,0,5,0,5,83,154,89,117,0,5,0,70,83,154,89,117,0,5,0,5,90,154,89,117,0,5,0,70,90,154,89,117,0,5,0,5,97,154,89,117,0,5,0,70,97,154,89,117,0,5,0,5,104,154,89,117,0,5,0,70,104,154,89,117,0,5,0,5,111,154,89,117,0,5,0,70,111,154,89,117,0,5,0,5,118,154,89,117,0,5,0,70,118,154,89,117,0,5,0,5,125,154,89,117,0,5,0,70,125,154,89,117,0,5,0,5,132,154,89,117,0,5,0,70,132,154,89,117,0,5,0,5,139,154,89,117,0,5,0,70,139,154,89,117,0,5,0,5,146,154,89,117,0,5,0,70,146,154,89,117,0,5,0,5,153,154,89,117,0,5,0,70,153,154,89,117,0,5,0,5,160,154,89,117,0,5,0,70,160,154,89,117,0,5,0,5,167,154,89,117,0,5,0,70,167,154,89,117,0,5,0,5,174,154,89,117,0,5,0,70,174,154,89,117,0,5,0,5,191,154,89,117,0,5,0,70,191,154,89,117,0,5,0,5,198,154,89,117,0,5,0,70,198,154,89,117,0,5,0,5,205,154,89,117,0,5,0,70,205,154,89,117,0,5,0,5,212,154,89,117,0,5,0,70,212,154,89,117,0,5,0,5,219,154,89,117,0,5,0,5,226,154,89,117,0,5,0,70,226,154,89,117,0,5,0,5,233,154,89,117,0,5,0,70,233,154,89,117,0,5,0,5,240,154,89,117,0,5,0,5,247,154,89,117,0,5,0,5,178,154,89,117,0,5,0,5,180,154,89,117,0,5,0,5,182,154,89,117,0,5,0,5,222,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,3,154,89,117,0,5,0,70,3,154,89,117,0,5,0,5,10,154,89,117,0,5,0,70,10,154,89,117,0,5,0,5,17,154,89,117,0,5,0,70,17,154,89,117,0,5,0,5,24,154,89,117,0,5,0,70,24,154,89,117,0,5,0,70,31,154,89,117,0,5,0,5,31,154,89,117,0,5,0,5,38,154,89,117,0,5,0,70,38,154,89,117,0,5,0,5,45,154,89,117,0,5,0,70,45,154,89,117,0,5,0,5,52,154,89,117,0,5,0,70,52,154,89,117,0,5,0,5,59,154,89,117,0,5,0,5,66,154,89,117,0,5,0,70,66,154,89,117,0,5,0,5,73,154,89,117,0,5,0,70,73,154,89,117,0,5,0,5,80,154,89,117,0,5,0,70,80,154,89,117,0,5,0,5,87,154,89,117,0,5,0,70,87,154,89,117,0,5,0,5,94,154,89,117,0,5,0,70,94,154,89,117,0,5,0,5,101,154,89,117,0,5,0,70,101,154,89,117,0,5,0,5,108,154,89,117,0,5,0,70,108,154,89,117,0,5,0,5,115,154,89,117,0,5,0,70,115,154,89,117,0,5,0,5,122,154,89,117,0,5,0,70,122,154,89,117,0,5,0,5,129,154,89,117,0,5,0,70,129,154,89,117,0,5,0,5,136,154,89,117,0,5,0,70,136,154,89,117,0,5,0,5,143,154,89,117,0,5,0,70,143,154,89,117,0,5,0,5,150,154,89,117,0,5,0,5,157,154,89,117,0,5,0,70,157,154,89,117,0,5,0,5,164,154,89,117,0,5,0,70,164,154,89,117,0,5,0,5,171,154,89,117,0,5,0,70,171,154,89,117,0,5,0,5,185,154,89,117,0,5,0,5,183,154,89,117,0,5,0,70,183,154,89,117,0,5,0,5,187,154,89,117,0,5,0,5,195,154,89,117,0,5,0,70,195,154,89,117,0,5,0,5,202,154,89,117,0,5,0,70,202,154,89,117,0,5,0,5,209,154,89,117,0,5,0,70,209,154,89,117,0,5,0,5,216,154,89,117,0,5,0,70,223,154,89,117,0,5,0,5,230,154,89,117,0,5,0,70,230,154,89,117,0,5,0,5,237,154,89,117,0,5,0,5,244,154,89,117,0,5,0,5,184,154,89,117,0,5,0,5,186,154,89,117,0,5,0,5,188,154,89,117,0,5,0,5,223,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,4,154,89,117,0,5,0,70,4,154,89,117,0,5,0,5,11,154,89,117,0,5,0,70,11,154,89,117,0,5,0,5,18,154,89,117,0,5,0,70,18,154,89,117,0,5,0,5,25,154,89,117,0,5,0,70,25,154,89,117,0,5,0,70,32,154,89,117,0,5,0,5,32,154,89,117,0,5,0,5,39,154,89,117,0,5,0,70,39,154,89,117,0,5,0,5,46,154,89,117,0,5,0,70,46,154,89,117,0,5,0,5,53,154,89,117,0,5,0,70,53,154,89,117,0,5,0,5,60,154,89,117,0,5,0,5,67,154,89,117,0,5,0,70,67,154,89,117,0,5,0,5,74,154,89,117,0,5,0,70,74,154,89,117,0,5,0,5,81,154,89,117,0,5,0,70,81,154,89,117,0,5,0,5,88,154,89,117,0,5,0,70,88,154,89,117,0,5,0,5,95,154,89,117,0,5,0,70,95,154,89,117,0,5,0,5,102,154,89,117,0,5,0,70,102,154,89,117,0,5,0,5,109,154,89,117,0,5,0,70,109,154,89,117,0,5,0,5,116,154,89,117,0,5,0,70,116,154,89,117,0,5,0,5,123,154,89,117,0,5,0,70,123,154,89,117,0,5,0,5,130,154,89,117,0,5,0,70,130,154,89,117,0,5,0,5,137,154,89,117,0,5,0,70,137,154,89,117,0,5,0,5,144,154,89,117,0,5,0,70,144,154,89,117,0,5,0,5,151,154,89,117,0,5,0,70,151,154,89,117,0,5,0,5,158,154,89,117,0,5,0,70,158,154,89,117,0,5,0,5,165,154,89,117,0,5,0,70,165,154,89,117,0,5,0,5,172,154,89,117,0,5,0,70,172,154,89,117,0,5,0,5,189,154,89,117,0,5,0,70,189,154,89,117,0,5,0,5,196,154,89,117,0,5,0,70,196,154,89,117,0,5,0,5,203,154,89,117,0,5,0,70,203,154,89,117,0,5,0,5,210,154,89,117,0,5,0,70,210,154,89,117,0,5,0,5,217,154,89,117,0,5,0,5,224,154,89,117,0,5,0,70,224,154,89,117,0,5,0,5,231,154,89,117,0,5,0,70,231,154,89,117,0,5,0,5,238,154,89,117,0,5,0,5,245,154,89,117,0,5,0,70,0,136,89,117,0,5,0,71,5,154,89,117,0,5,0,72,5,154,89,117,0,5,0,71,12,154,89,117,0,5,0,72,12,154,89,117,0,5,0,71,19,154,89,117,0,5,0,72,19,154,89,117,0,5,0,71,26,154,89,117,0,5,0,72,26,154,89,117,0,5,0,72,33,154,89,117,0,5,0,71,33,154,89,117,0,5,0,71,40,154,89,117,0,5,0,72,40,154,89,117,0,5,0,71,47,154,89,117,0,5,0,72,47,154,89,117,0,5,0,71,54,154,89,117,0,5,0,72,54,154,89,117,0,5,0,70,61,154,89,117,0,5,0,71,68,154,89,117,0,5,0,72,68,154,89,117,0,5,0,71,75,154,89,117,0,5,0,72,75,154,89,117,0,5,0,71,82,154,89,117,0,5,0,72,82,154,89,117,0,5,0,71,89,154,89,117,0,5,0,72,89,154,89,117,0,5,0,71,96,154,89,117,0,5,0,72,96,154,89,117,0,5,0,71,103,154,89,117,0,5,0,72,103,154,89,117,0,5,0,71,110,154,89,117,0,5,0,72,110,154,89,117,0,5,0,71,117,154,89,117,0,5,0,72,117,154,89,117,0,5,0,71,124,154,89,117,0,5,0,72,124,154,89,117,0,5,0,71,131,154,89,117,0,5,0,72,131,154,89,117,0,5,0,71,138,154,89,117,0,5,0,72,138,154,89,117,0,5,0,71,145,154,89,117,0,5,0,72,145,154,89,117,0,5,0,71,152,154,89,117,0,5,0,72,152,154,89,117,0,5,0,71,159,154,89,117,0,5,0,72,159,154,89,117,0,5,0,71,166,154,89,117,0,5,0,72,166,154,89,117,0,5,0,71,173,154,89,117,0,5,0,72,173,154,89,117,0,5,0,71,190,154,89,117,0,5,0,72,190,154,89,117,0,5,0,71,197,154,89,117,0,5,0,72,197,154,89,117,0,5,0,71,204,154,89,117,0,5,0,72,204,154,89,117,0,5,0,71,211,154,89,117,0,5,0,72,211,154,89,117,0,5,0,70,218,154,89,117,0,5,0,71,225,154,89,117,0,5,0,72,225,154,89,117,0,5,0,71,232,154,89,117,0,5,0,72,232,154,89,117,0,5,0,70,239,154,89,117,0,5,0,70,246,154,89,117,0,5,0,70,0,137,89,117,0,5,0,5,5,154,89,117,0,5,0,70,5,154,89,117,0,5,0,70,5,154,89,117,0,5,0,5,0,9,79,117,0,5,0,5,250,154,89,117,0,5,0,5,12,154,89,117,0,5,0,70,12,154,89,117,0,5,0,5,19,154,89,117,0,5,0,70,19,154,89,117,0,5,0,5,26,154,89,117,0,5,0,70,26,154,89,117,0,5,0,70,33,154,89,117,0,5,0,5,33,154,89,117,0,5,0,5,40,154,89,117,0,5,0,70,40,154,89,117,0,5,0,5,47,154,89,117,0,5,0,70,47,154,89,117,0,5,0,5,54,154,89,117,0,5,0,70,54,154,89,117,0,5,0,5,61,154,89,117,0,5,0,5,68,154,89,117,0,5,0,70,68,154,89,117,0,5,0,5,75,154,89,117,0,5,0,70,75,154,89,117,0,5,0,5,82,154,89,117,0,5,0,70,82,154,89,117,0,5,0,5,89,154,89,117,0,5,0,70,89,154,89,117,0,5,0,5,96,154,89,117,0,5,0,70,96,154,89,117,0,5,0,5,103,154,89,117,0,5,0,70,103,154,89,117,0,5,0,5,110,154,89,117,0,5,0,70,110,154,89,117,0,5,0,5,117,154,89,117,0,5,0,70,117,154,89,117,0,5,0,5,124,154,89,117,0,5,0,70,124,154,89,117,0,5,0,5,131,154,89,117,0,5,0,70,131,154,89,117,0,5,0,5,138,154,89,117,0,5,0,70,138,154,89,117,0,5,0,5,145,154,89,117,0,5,0,70,145,154,89,117,0,5,0,5,152,154,89,117,0,5,0,70,152,154,89,117,0,5,0,5,159,154,89,117,0,5,0,70,159,154,89,117,0,5,0,5,166,154,89,117,0,5,0,70,166,154,89,117,0,5,0,5,173,154,89,117,0,5,0,70,173,154,89,117,0,5,0,5,190,154,89,117,0,5,0,70,190,154,89,117,0,5,0,5,197,154,89,117,0,5,0,70,197,154,89,117,0,5,0,5,204,154,89,117,0,5,0,70,204,154,89,117,0,5,0,5,211,154,89,117,0,5,0,70,211,154,89,117,0,5,0,5,218,154,89,117,0,5,0,5,225,154,89,117,0,5,0,70,225,154,89,117,0,5,0,5,232,154,89,117,0,5,0,70,232,154,89,117,0,5,0,5,239,154,89,117,0,5,0,5,246,154,89,117,0,5,0,5,224,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,2,155,89,117,0,5,0,5,7,155,89,117,0,5,0,5,4,155,89,117,0,5,0,5,251,154,89,117,0,5,0,5,3,155,89,117,0,5,0,5,8,155,89,117,0,5,0,5,5,155,89,117,0,5,0,5,253,154,89,117,0,5,0,5,6,155,89,117,0,5,0,5,255,154,89,117,0,5,0,5,220,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,0,168,80,117,0,5,0,5,255,154,89,117,0,5,0,71,6,154,89,117,0,5,0,5,0,61,81,117,0,5,0,5,253,154,89,117,0,5,0,5,0,107,89,117,0,5,0,70,0,80,93,117,0,5,0,5,0,89,81,117,0,5,0,70,70,154,89,117,0,5,0,5,0,81,93,117,0,5,0,5,0,9,79,117,0,5,0,70,33,154,89,117,0,5,0,70,0,81,93,117,0,5,0,5,0,100,85,117,0,5,0,70,0,23,89,117,0,5,0,5,248,154,89,117,0,5,0,5,249,154,89,117,0,5,0,5,252,154,89,117,0,5,0,5,254,154,89,117,0,0,0,0,5,5,83,117,193,33,81,117,193,37,89,117,193,100,85,117,193,23,89,117,193,86,79,117,10,5,91,117,193,100,85,117,193,51,89,117,193,86,79,117,9,5,91,117,193,100,85,117,193,107,89,117,193,86,79,117,8,5,91,117,193,100,85,117,193,136,89,117,193,86,79,117,7,5,91,117,193,100,85,117,193,136,89,117,193,86,79,117,6,5,91,117,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,79,117,193,9,1,0,57,16,255,255,89,117,193,152,58,16,198,129,79,117,193,23,1,0,57,16,198,161,58,16,0,192,198,65,79,117,193,37,1,0,57,16,0,192,198,97,58,16,0,192,198,129,79,117,193,65,1,0,57,16,0,192,198,161,58,16,0,192,198,193,79,117,193,86,48,0,58,16,112,64,198,225,57,16,1,192,198,1,79,117,193,100,1,0,57,16,1,192,198,33,58,16,1,192,198,65,79,117,193,121,1,0,57,16,1,192,198,97,58,16,1,192,198,129,79,117,193,149,1,0,57,16,1,192,198,161,58,16,1,192,198,193,79,117,193,184,48,0,58,16,1,192,198,225,79,117,193,233,1,0,57,16,2,192,198,1,58,16,2,192,198,33,80,117,193,7,1,0,57,16,2,192,198,65,58,16,2,192,198,97,80,117,193,14,1,0,57,16,2,192,198,129,58,16,2,192,198,161,80,117,193,28,1,0,57,16,2,192,198,193,58,16,2,192,198,225,80,117,193,42,1,0,57,16,3,192,198,1,58,16,3,192,198,33,80,117,193,63,1,0,57,16,3,192,198,65,58,16,3,192,198,97,80,117,193,84,1,0,57,16,3,192,198,129,58,16,3,192,198,161,80,117,193,112,1,0,57,16,3,192,198,193,58,16,3,192,198,225,80,117,193,119,1,0,57,16,3,0,58,16,4,192,198,161,115,65,198,1,25,16,4,16,58,16,56,16,4,192,198,36,80,117,193,126,1,0,57,16,4,192,198,193,58,16,4,192,198,225,80,117,193,147,1,0,57,16,5,192,198,1,58,16,5,192,198,33,80,117,193,168,1,0,57,16,5,192,198,65,58,16,178,65,198,97,47,16,21,16,58,16,5,192,198,131,80,117,193,196,1,0,57,16,5,192,198,225,58,16,6,192,198,1,80,117,193,203,1,0,57,16,6,192,198,33,58,16,6,192,198,65,80,117,193,245,1,0,57,16,6,192,198,97,58,16,6,192,198,129,81,117,193,12,1,0,57,16,6,192,198,161,58,16,6,192,198,193,81,117,193,33,1,0,57,16,6,192,198,225,58,16,7,192,198,1,81,117,193,47,1,0,57,16,7,192,198,33,58,16,7,192,198,65,81,117,193,61,1,0,57,16,7,192,198,97,58,16,7,192,198,129,81,117,193,89,2,0,0,16,5,0,57,16,9,0,58,16,8,192,198,193,50,0,58,16,59,16,44,16,7,192,198,164,114,66,198,33,24,16,0,16,58,16,8,192,198,68,81,117,193,103,48,0,58,16,8,192,198,225,83,117,5,5,1,0,57,16,3,0,58,16,9,192,198,33,177,66,198,1,25,16,46,16,197,163,85,117,193,9,1,0,57,16,9,192,198,65,58,16,9,192,198,97,85,117,193,51,48,0,58,16,9,192,198,129,85,117,193,100,48,0,58,16,9,192,198,161,9,0,198,194,30,0,16,16,141,0,24,16,67,0,28,16,30,0,28,16,7,0,30,16,12,0,31,16,17,0,63,16,24,192,198,195,1,0,57,16,23,192,198,66,58,16,23,192,198,130,1,0,57,16,23,192,198,194,58,16,24,192,198,2,1,0,57,16,24,192,198,66,58,16,24,192,198,130,24,16,12,0,25,16,17,0,26,16,22,0,27,16,1,0,57,16,22,192,198,194,58,16,23,192,198,2,1,0,57,16,21,192,198,66,58,16,21,192,198,130,1,0,57,16,21,192,198,194,58,16,22,192,198,2,1,0,57,16,22,192,198,66,58,16,22,192,198,130,20,16,35,0,20,16,12,0,21,16,17,0,22,16,22,0,23,16,1,0,57,16,20,192,198,194,58,16,21,192,198,2,1,0,57,16,19,192,198,66,58,16,19,192,198,130,1,0,57,16,19,192,198,194,58,16,20,192,198,2,1,0,57,16,20,192,198,66,58,16,20,192,198,130,16,16,12,0,17,16,17,0,18,16,22,0,19,16,1,0,57,16,18,192,198,194,58,16,19,192,198,2,1,0,57,16,17,192,198,66,58,16,17,192,198,130,1,0,57,16,17,192,198,194,58,16,18,192,198,2,1,0,57,16,18,192,198,66,58,16,18,192,198,130,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,16,192,198,194,58,16,17,192,198,2,1,0,57,16,15,192,198,66,58,16,15,192,198,130,1,0,57,16,15,192,198,194,58,16,16,192,198,2,1,0,57,16,16,192,198,66,58,16,16,192,198,130,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,14,192,198,194,58,16,15,192,198,2,1,0,57,16,13,192,198,66,58,16,13,192,198,130,1,0,57,16,13,192,198,194,58,16,14,192,198,2,1,0,57,16,14,192,198,66,58,16,14,192,198,130,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,12,192,198,194,58,16,13,192,198,2,1,0,57,16,11,192,198,130,58,16,11,192,198,194,1,0,57,16,0,192,197,132,58,16,12,192,198,2,1,0,57,16,12,192,198,66,58,16,12,192,198,130,0,16,10,0,1,16,15,0,2,16,1,0,57,16,11,192,198,2,58,16,11,192,198,66,1,0,57,16,10,192,198,2,58,16,10,192,198,66,1,0,57,16,10,192,198,130,58,16,10,192,198,194,25,0,198,98,32,0,17,16,141,0,25,16,67,0,30,16,30,0,30,16,10,0,31,16,15,0,46,16,40,192,198,98,47,16,17,0,63,16,40,192,198,227,1,0,57,16,39,192,198,98,58,16,39,192,198,162,1,0,57,16,39,192,198,226,58,16,40,192,198,34,48,0,54,16,40,192,198,162,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,38,192,198,226,58,16,39,192,198,34,1,0,57,16,37,192,198,98,58,16,37,192,198,162,1,0,57,16,37,192,198,226,58,16,38,192,198,34,1,0,57,16,38,192,198,98,58,16,38,192,198,162,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,36,192,198,226,58,16,37,192,198,34,1,0,57,16,35,192,198,98,58,16,35,192,198,162,1,0,57,16,35,192,198,226,58,16,36,192,198,34,1,0,57,16,36,192,198,98,58,16,36,192,198,162,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,34,192,198,226,58,16,35,192,198,34,1,0,57,16,33,192,198,98,58,16,33,192,198,162,1,0,57,16,33,192,198,226,58,16,34,192,198,34,1,0,57,16,34,192,198,98,58,16,34,192,198,162,9,16,72,0,13,16,35,0,13,16,12,0,14,16,17,0,15,16,22,0,16,16,1,0,57,16,32,192,198,226,58,16,33,192,198,34,1,0,57,16,31,192,198,98,58,16,31,192,198,162,1,0,57,16,31,192,198,226,58,16,32,192,198,34,1,0,57,16,32,192,198,98,58,16,32,192,198,162,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,30,192,198,226,58,16,31,192,198,34,1,0,57,16,29,192,198,98,58,16,29,192,198,162,1,0,57,16,29,192,198,226,58,16,30,192,198,34,1,0,57,16,30,192,198,98,58,16,30,192,198,162,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,28,192,198,226,58,16,29,192,198,34,1,0,57,16,1,192,197,4,58,16,27,192,198,162,1,0,57,16,27,192,198,226,58,16,28,192,198,34,1,0,57,16,28,192,198,98,58,16,28,192,198,162,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,27,192,198,34,58,16,27,192,198,98,1,0,57,16,25,192,198,162,58,16,25,192,198,226,1,0,57,16,26,192,198,34,58,16,26,192,198,98,1,0,57,16,26,192,198,162,58,16,26,192,198,226,41,0,198,66,29,0,16,16,137,0,23,16,72,0,27,16,35,0,27,16,12,0,28,16,17,0,30,16,22,0,31,16,1,0,57,16,55,192,198,194,58,16,56,192,198,2,1,0,57,16,54,192,198,66,58,16,54,192,198,130,1,0,57,16,54,192,198,194,58,16,55,192,198,2,1,0,57,16,55,192,198,66,58,16,55,192,198,130,23,16,12,0,24,16,17,0,25,16,22,0,26,16,1,0,57,16,53,192,198,194,58,16,54,192,198,2,1,0,57,16,52,192,198,66,58,16,52,192,198,130,1,0,57,16,52,192,198,194,58,16,53,192,198,2,1,0,57,16,53,192,198,66,58,16,53,192,198,130,19,16,35,0,19,16,12,0,20,16,17,0,21,16,22,0,22,16,1,0,57,16,51,192,198,194,58,16,52,192,198,2,1,0,57,16,50,192,198,66,58,16,50,192,198,130,1,0,57,16,50,192,198,194,58,16,51,192,198,2,1,0,57,16,51,192,198,66,58,16,51,192,198,130,16,16,10,0,17,16,15,0,18,16,1,0,57,16,49,192,198,194,58,16,50,192,198,2,1,0,57,16,48,192,198,194,58,16,49,192,198,2,1,0,57,16,49,192,198,66,58,16,49,192,198,130,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,48,192,198,66,58,16,48,192,198,130,1,0,57,16,46,192,198,194,58,16,47,192,198,2,1,0,57,16,47,192,198,66,58,16,47,192,198,130,1,0,57,16,47,192,198,194,58,16,48,192,198,2,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,46,192,198,66,58,16,46,192,198,130,1,0,57,16,44,192,198,194,58,16,45,192,198,2,1,0,57,16,45,192,198,66,58,16,45,192,198,130,1,0,57,16,45,192,198,194,58,16,46,192,198,2,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,44,192,198,66,58,16,44,192,198,130,1,0,57,16,43,192,198,2,58,16,43,192,198,66,1,0,57,16,1,192,197,132,58,16,43,192,198,130,1,0,57,16,43,192,198,194,58,16,44,192,198,2,0,16,10,0,1,16,15,0,2,16,1,0,57,16,42,192,198,130,58,16,42,192,198,194,1,0,57,16,41,192,198,130,58,16,41,192,198,194,1,0,57,16,42,192,198,2,58,16,42,192,198,66,56,0,198,130,30,0,16,16,162,1,24,16,88,1,28,16,51,1,28,16,28,1,30,16,33,1,31,16,38,1,49,16,48,0,44,16,29,0,16,16,137,0,23,16,72,0,27,16,35,0,27,16,12,0,28,16,17,0,30,16,22,0,31,16,1,0,57,16,85,192,198,194,58,16,86,192,198,2,1,0,57,16,84,192,198,66,58,16,84,192,198,130,1,0,57,16,84,192,198,194,58,16,85,192,198,2,1,0,57,16,85,192,198,66,58,16,85,192,198,130,23,16,12,0,24,16,17,0,25,16,22,0,26,16,1,0,57,16,83,192,198,194,58,16,84,192,198,2,1,0,57,16,82,192,198,66,58,16,82,192,198,130,1,0,57,16,82,192,198,194,58,16,83,192,198,2,1,0,57,16,83,192,198,66,58,16,83,192,198,130,19,16,35,0,19,16,12,0,20,16,17,0,21,16,22,0,22,16,1,0,57,16,81,192,198,194,58,16,82,192,198,2,1,0,57,16,80,192,198,66,58,16,80,192,198,130,1,0,57,16,80,192,198,194,58,16,81,192,198,2,1,0,57,16,81,192,198,66,58,16,81,192,198,130,16,16,10,0,17,16,15,0,18,16,1,0,57,16,79,192,198,194,58,16,80,192,198,2,1,0,57,16,78,192,198,194,58,16,79,192,198,2,1,0,57,16,79,192,198,66,58,16,79,192,198,130,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,78,192,198,66,58,16,78,192,198,130,1,0,57,16,76,192,198,194,58,16,77,192,198,2,1,0,57,16,77,192,198,66,58,16,77,192,198,130,1,0,57,16,77,192,198,194,58,16,78,192,198,2,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,76,192,198,66,58,16,76,192,198,130,1,0,57,16,74,192,198,194,58,16,75,192,198,2,1,0,57,16,75,192,198,66,58,16,75,192,198,130,1,0,57,16,75,192,198,194,58,16,76,192,198,2,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,74,192,198,66,58,16,74,192,198,130,1,0,57,16,73,192,198,2,58,16,73,192,198,66,1,0,57,16,2,192,197,132,58,16,73,192,198,130,1,0,57,16,73,192,198,194,58,16,74,192,198,2,0,16,10,0,1,16,15,0,2,16,1,0,57,16,72,192,198,130,58,16,72,192,198,194,1,0,57,16,71,192,198,130,58,16,71,192,198,194,1,0,57,16,72,192,198,2,58,16,72,192,198,66,1,0,57,16,70,192,198,2,58,16,70,192,198,66,1,0,57,16,70,192,198,130,58,16,70,192,198,194,1,0,57,16,71,192,198,2,58,16,71,192,198,66,24,16,12,0,25,16,17,0,26,16,22,0,27,16,1,0,57,16,69,192,198,130,58,16,69,192,198,194,1,0,57,16,68,192,198,2,58,16,68,192,198,66,1,0,57,16,68,192,198,130,58,16,68,192,198,194,1,0,57,16,69,192,198,2,58,16,69,192,198,66,20,16,35,0,20,16,12,0,21,16,17,0,22,16,22,0,23,16,1,0,57,16,67,192,198,130,58,16,67,192,198,194,1,0,57,16,66,192,198,2,58,16,66,192,198,66,1,0,57,16,66,192,198,130,58,16,66,192,198,194,1,0,57,16,67,192,198,2,58,16,67,192,198,66,16,16,12,0,17,16,17,0,18,16,22,0,19,16,1,0,57,16,65,192,198,130,58,16,65,192,198,194,1,0,57,16,64,192,198,2,58,16,64,192,198,66,1,0,57,16,64,192,198,130,58,16,64,192,198,194,1,0,57,16,65,192,198,2,58,16,65,192,198,66,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,63,192,198,130,58,16,63,192,198,194,1,0,57,16,62,192,198,2,58,16,62,192,198,66,1,0,57,16,62,192,198,130,58,16,62,192,198,194,1,0,57,16,63,192,198,2,58,16,63,192,198,66,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,61,192,198,130,58,16,61,192,198,194,1,0,57,16,60,192,198,2,58,16,60,192,198,66,1,0,57,16,60,192,198,130,58,16,60,192,198,194,1,0,57,16,61,192,198,2,58,16,61,192,198,66,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,59,192,198,130,58,16,59,192,198,194,1,0,57,16,58,192,198,66,58,16,58,192,198,130,1,0,57,16,2,192,197,4,58,16,58,192,198,194,1,0,57,16,59,192,198,2,58,16,59,192,198,66,0,16,10,0,1,16,15,0,2,16,1,0,57,16,57,192,198,194,58,16,58,192,198,2,1,0,57,16,56,192,198,194,58,16,57,192,198,2,1,0,57,16,57,192,198,66,58,16,57,192,198,130,87,117,5,70,33,0,17,16,146,0,25,16,72,0,29,16,35,0,29,16,11,0,30,16,13,0,31,16,18,0,32,16,23,0,33,16,48,0,58,16,94,192,198,97,48,0,58,16,93,192,198,161,1,0,57,16,93,192,198,193,58,16,93,192,198,225,1,0,57,16,94,192,198,1,58,16,94,192,198,33,48,0,58,16,94,192,198,65,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,93,192,198,97,58,16,93,192,198,129,1,0,57,16,92,192,198,161,58,16,92,192,198,193,1,0,57,16,92,192,198,225,58,16,93,192,198,1,1,0,57,16,93,192,198,33,58,16,93,192,198,65,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,92,192,198,97,58,16,92,192,198,129,1,0,57,16,91,192,198,161,58,16,91,192,198,193,1,0,57,16,91,192,198,225,58,16,92,192,198,1,1,0,57,16,92,192,198,33,58,16,92,192,198,65,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,91,192,198,97,58,16,91,192,198,129,1,0,57,16,90,192,198,161,58,16,90,192,198,193,1,0,57,16,90,192,198,225,58,16,91,192,198,1,1,0,57,16,91,192,198,33,58,16,91,192,198,65,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,90,192,198,97,58,16,90,192,198,129,1,0,57,16,89,192,198,97,58,16,89,192,198,129,1,0,57,16,89,192,198,161,58,16,89,192,198,193,1,0,57,16,89,192,198,225,58,16,90,192,198,1,1,0,57,16,90,192,198,33,58,16,90,192,198,65,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,89,192,198,33,58,16,89,192,198,65,48,0,58,16,88,192,198,129,1,0,57,16,88,192,198,161,58,16,88,192,198,193,1,0,57,16,88,192,198,225,58,16,89,192,198,1,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,88,192,198,65,58,16,88,192,198,97,48,0,58,16,48,86,198,129,57,16,87,192,198,161,1,0,57,16,87,192,198,193,58,16,87,192,198,225,1,0,57,16,88,192,198,1,58,16,88,192,198,33,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,87,192,198,65,58,16,87,192,198,97,1,0,57,16,86,192,198,129,58,16,86,192,198,161,1,0,57,16,86,192,198,193,58,16,86,192,198,225,1,0,57,16,87,192,198,1,58,16,87,192,198,33,87,117,5,5,33,0,17,16,146,0,25,16,72,0,29,16,35,0,29,16,11,0,30,16,13,0,31,16,18,0,32,16,23,0,33,16,48,0,58,16,102,192,198,65,48,0,58,16,101,192,198,129,1,0,57,16,101,192,198,161,58,16,101,192,198,193,1,0,57,16,101,192,198,225,58,16,102,192,198,1,48,0,58,16,102,192,198,33,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,101,192,198,65,58,16,101,192,198,97,1,0,57,16,100,192,198,129,58,16,100,192,198,161,1,0,57,16,100,192,198,193,58,16,100,192,198,225,1,0,57,16,101,192,198,1,58,16,101,192,198,33,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,100,192,198,65,58,16,100,192,198,97,1,0,57,16,99,192,198,129,58,16,99,192,198,161,1,0,57,16,99,192,198,193,58,16,99,192,198,225,1,0,57,16,100,192,198,1,58,16,100,192,198,33,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,99,192,198,65,58,16,99,192,198,97,1,0,57,16,98,192,198,129,58,16,98,192,198,161,1,0,57,16,98,192,198,193,58,16,98,192,198,225,1,0,57,16,99,192,198,1,58,16,99,192,198,33,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,98,192,198,65,58,16,98,192,198,97,1,0,57,16,97,192,198,65,58,16,97,192,198,97,1,0,57,16,97,192,198,129,58,16,97,192,198,161,1,0,57,16,97,192,198,193,58,16,97,192,198,225,1,0,57,16,98,192,198,1,58,16,98,192,198,33,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,97,192,198,1,58,16,97,192,198,33,48,0,58,16,96,192,198,97,1,0,57,16,96,192,198,129,58,16,96,192,198,161,1,0,57,16,96,192,198,193,58,16,96,192,198,225,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,96,192,198,33,58,16,96,192,198,65,48,0,58,16,48,88,198,97,57,16,95,192,198,129,1,0,57,16,95,192,198,161,58,16,95,192,198,193,1,0,57,16,95,192,198,225,58,16,96,192,198,1,0,16,12,0,1,16,18,0,2,16,23,0,3,16,1,0,57,16,95,192,198,33,58,16,95,192,198,65,1,0,57,16,255,255,89,117,193,153,58,16,94,192,198,129,1,0,57,16,94,192,198,161,58,16,94,192,198,193,1,0,57,16,94,192,198,225,58,16,95,192,198,1,89,117,193,23,36,0,18,16,209,1,27,16,117,1,32,16,74,1,32,16,9,0,33,16,11,0,47,16,13,0,54,16,58,1,63,16,118,192,198,226,48,0,58,16,110,192,198,65,48,0,58,16,110,192,198,97,225,127,89,117,193,151,17,16,146,0,25,16,72,0,29,16,35,0,29,16,11,0,30,16,13,0,31,16,18,0,32,16,23,0,33,16,48,0,58,16,118,192,198,97,48,0,58,16,117,192,198,161,1,0,57,16,117,192,198,193,58,16,117,192,198,225,1,0,57,16,118,192,198,1,58,16,118,192,198,33,48,0,58,16,118,192,198,65,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,117,192,198,97,58,16,117,192,198,129,1,0,57,16,116,192,198,161,58,16,116,192,198,193,1,0,57,16,116,192,198,225,58,16,117,192,198,1,1,0,57,16,117,192,198,33,58,16,117,192,198,65,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,116,192,198,97,58,16,116,192,198,129,1,0,57,16,115,192,198,161,58,16,115,192,198,193,1,0,57,16,115,192,198,225,58,16,116,192,198,1,1,0,57,16,116,192,198,33,58,16,116,192,198,65,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,115,192,198,97,58,16,115,192,198,129,1,0,57,16,114,192,198,161,58,16,114,192,198,193,1,0,57,16,114,192,198,225,58,16,115,192,198,1,1,0,57,16,115,192,198,33,58,16,115,192,198,65,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,114,192,198,97,58,16,114,192,198,129,1,0,57,16,113,192,198,97,58,16,113,192,198,129,1,0,57,16,113,192,198,161,58,16,113,192,198,193,1,0,57,16,113,192,198,225,58,16,114,192,198,1,1,0,57,16,114,192,198,33,58,16,114,192,198,65,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,113,192,198,33,58,16,113,192,198,65,48,0,58,16,112,192,198,129,1,0,57,16,112,192,198,161,58,16,112,192,198,193,1,0,57,16,112,192,198,225,58,16,113,192,198,1,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,112,192,198,65,58,16,112,192,198,97,48,0,58,16,48,92,198,129,57,16,111,192,198,161,1,0,57,16,111,192,198,193,58,16,111,192,198,225,1,0,57,16,112,192,198,1,58,16,112,192,198,33,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,111,192,198,65,58,16,111,192,198,97,1,0,57,16,110,192,198,129,58,16,110,192,198,161,1,0,57,16,110,192,198,193,58,16,110,192,198,225,1,0,57,16,111,192,198,1,58,16,111,192,198,33,193,93,198,129,55,16,118,192,198,161,56,16,118,192,198,193,27,16,14,0,28,16,19,0,29,16,24,0,30,16,26,0,31,16,1,0,57,16,110,192,198,1,58,16,110,192,198,33,1,0,57,16,109,192,198,65,58,16,109,192,198,97,1,0,57,16,109,192,198,129,58,16,109,192,198,161,48,0,58,16,109,192,198,193,1,0,57,16,24,192,198,225,58,16,109,192,198,225,22,16,53,0,22,16,14,0,23,16,19,0,24,16,24,0,25,16,29,0,26,16,1,0,57,16,109,192,198,1,58,16,109,192,198,33,1,0,57,16,107,192,198,193,58,16,107,192,198,225,1,0,57,16,108,192,198,1,58,16,108,192,198,33,1,0,57,16,108,192,198,65,58,16,108,192,198,97,2,0,55,16,9,0,57,16,108,192,198,161,58,16,112,91,198,193,56,16,108,192,198,225,48,0,58,16,108,192,198,129,18,16,12,0,19,16,17,0,20,16,22,0,21,16,1,0,57,16,107,192,198,129,58,16,107,192,198,161,1,0,57,16,106,192,198,193,58,16,106,192,198,225,1,0,57,16,107,192,198,1,58,16,107,192,198,33,1,0,57,16,107,192,198,65,58,16,107,192,198,97,9,16,81,0,13,16,44,0,13,16,14,0,14,16,19,0,15,16,24,0,16,16,29,0,17,16,1,0,57,16,106,192,198,129,58,16,106,192,198,161,1,0,57,16,105,192,198,129,58,16,105,192,198,161,1,0,57,16,105,192,198,193,58,16,105,192,198,225,1,0,57,16,106,192,198,1,58,16,106,192,198,33,1,0,57,16,106,192,198,65,58,16,106,192,198,97,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,105,192,198,65,58,16,105,192,198,97,1,0,57,16,104,192,198,129,58,16,104,192,198,161,1,0,57,16,104,192,198,193,58,16,104,192,198,225,1,0,57,16,105,192,198,1,58,16,105,192,198,33,4,16,41,0,4,16,11,0,5,16,16,0,6,16,21,0,7,16,26,0,8,16,48,0,58,16,104,192,198,97,48,0,58,16,48,90,198,97,57,16,103,192,198,129,1,0,57,16,103,192,198,161,58,16,103,192,198,193,1,0,57,16,103,192,198,225,58,16,104,192,198,1,1,0,57,16,104,192,198,33,58,16,104,192,198,65,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,103,192,198,33,58,16,103,192,198,65,1,0,57,16,102,192,198,97,58,16,102,192,198,129,1,0,57,16,102,192,198,161,58,16,102,192,198,193,1,0,57,16,102,192,198,225,58,16,103,192,198,1,89,117,193,51,35,0,18,16,160,0,27,16,68,0,31,16,34,0,31,16,9,0,32,16,14,0,33,16,16,0,54,16,18,0,63,16,127,192,198,130,1,0,57,16,126,192,198,161,58,16,126,192,198,193,48,0,58,16,126,192,198,225,48,0,58,16,127,192,198,1,1,96,198,33,55,16,127,192,198,65,56,16,127,192,198,97,27,16,12,0,28,16,17,0,29,16,22,0,30,16,1,0,57,16,41,192,198,1,58,16,126,192,198,129,1,0,57,16,125,192,198,225,58,16,126,192,198,1,1,0,57,16,126,192,198,33,58,16,126,192,198,65,48,0,58,16,126,192,198,97,22,16,53,0,22,16,14,0,23,16,19,0,24,16,24,0,25,16,29,0,26,16,1,0,57,16,125,192,198,161,58,16,125,192,198,193,1,0,57,16,124,192,198,97,58,16,124,192,198,129,1,0,57,16,124,192,198,161,58,16,124,192,198,193,1,0,57,16,124,192,198,225,58,16,125,192,198,1,2,0,55,16,9,0,57,16,125,192,198,65,58,16,176,95,198,97,56,16,125,192,198,129,48,0,58,16,125,192,198,33,18,16,12,0,19,16,17,0,20,16,22,0,21,16,1,0,57,16,124,192,198,65,58,16,5,192,198,193,1,0,57,16,123,192,198,129,58,16,123,192,198,161,1,0,57,16,123,192,198,193,58,16,123,192,198,225,1,0,57,16,124,192,198,1,58,16,124,192,198,33,9,16,81,0,13,16,44,0,13,16,14,0,14,16,19,0,15,16,24,0,16,16,29,0,17,16,1,0,57,16,123,192,198,65,58,16,123,192,198,97,1,0,57,16,122,192,198,65,58,16,122,192,198,97,1,0,57,16,122,192,198,129,58,16,122,192,198,161,1,0,57,16,122,192,198,193,58,16,122,192,198,225,1,0,57,16,123,192,198,1,58,16,123,192,198,33,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,122,192,198,1,58,16,122,192,198,33,1,0,57,16,121,192,198,65,58,16,121,192,198,97,1,0,57,16,121,192,198,129,58,16,121,192,198,161,1,0,57,16,121,192,198,193,58,16,121,192,198,225,4,16,41,0,4,16,11,0,5,16,16,0,6,16,21,0,7,16,26,0,8,16,48,0,58,16,121,192,198,33,48,0,58,16,112,94,198,33,57,16,120,192,198,65,1,0,57,16,120,192,198,97,58,16,120,192,198,129,1,0,57,16,120,192,198,161,58,16,120,192,198,193,1,0,57,16,120,192,198,225,58,16,121,192,198,1,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,119,192,198,225,58,16,120,192,198,1,1,0,57,16,119,192,198,33,58,16,119,192,198,65,1,0,57,16,119,192,198,97,58,16,119,192,198,129,1,0,57,16,119,192,198,161,58,16,119,192,198,193,89,117,193,107,36,0,18,16,250,2,27,16,167,2,32,16,124,2,32,16,9,0,33,16,11,0,43,16,13,0,44,16,61,1,63,16,152,192,198,98,48,0,58,16,135,192,198,129,48,0,58,16,135,192,198,161,34,98,198,193,17,16,150,0,26,16,67,0,30,16,33,0,30,16,9,0,31,16,14,0,32,16,19,0,33,16,21,0,58,16,143,192,198,225,1,0,57,16,143,192,198,33,58,16,143,192,198,65,1,0,57,16,143,192,198,97,58,16,143,192,198,129,48,0,58,16,143,192,198,161,48,0,58,16,143,192,198,193,26,16,9,0,27,16,14,0,28,16,19,0,29,16,48,0,58,16,143,192,198,1,1,0,57,16,142,192,198,65,58,16,142,192,198,97,1,0,57,16,142,192,198,129,58,16,142,192,198,161,1,0,57,16,142,192,198,193,58,16,142,192,198,225,21,16,44,0,21,16,14,0,22,16,19,0,23,16,24,0,24,16,29,0,25,16,1,0,57,16,142,192,198,1,58,16,142,192,198,33,1,0,57,16,141,192,198,1,58,16,141,192,198,33,1,0,57,16,141,192,198,65,58,16,141,192,198,97,1,0,57,16,141,192,198,129,58,16,141,192,198,161,1,0,57,16,141,192,198,193,58,16,141,192,198,225,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,140,192,198,193,58,16,140,192,198,225,1,0,57,16,140,192,198,1,58,16,140,192,198,33,1,0,57,16,140,192,198,65,58,16,140,192,198,97,1,0,57,16,140,192,198,129,58,16,140,192,198,161,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,139,192,198,193,58,16,139,192,198,225,1,0,57,16,138,192,198,193,58,16,138,192,198,225,1,0,57,16,139,192,198,1,58,16,139,192,198,33,1,0,57,16,139,192,198,65,58,16,139,192,198,97,1,0,57,16,139,192,198,129,58,16,139,192,198,161,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,138,192,198,129,58,16,138,192,198,161,48,0,58,16,137,192,198,225,1,0,57,16,138,192,198,1,58,16,138,192,198,33,1,0,57,16,138,192,198,65,58,16,138,192,198,97,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,137,192,198,161,58,16,137,192,198,193,48,0,58,16,112,98,198,225,57,16,137,192,198,1,1,0,57,16,137,192,198,33,58,16,137,192,198,65,1,0,57,16,137,192,198,97,58,16,137,192,198,129,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,136,192,198,161,58,16,136,192,198,193,1,0,57,16,135,192,198,225,58,16,136,192,198,1,1,0,57,16,136,192,198,33,58,16,136,192,198,65,1,0,57,16,136,192,198,97,58,16,136,192,198,129,226,127,89,117,193,136,17,16,151,0,26,16,68,0,30,16,34,0,30,16,10,0,31,16,15,0,32,16,20,0,33,16,22,0,58,16,255,255,89,117,193,137,1,0,57,16,151,192,198,161,58,16,151,192,198,193,1,0,57,16,151,192,198,225,58,16,152,192,198,1,48,0,58,16,152,192,198,33,48,0,58,16,152,192,198,65,26,16,9,0,27,16,14,0,28,16,19,0,29,16,48,0,58,16,151,192,198,129,1,0,57,16,150,192,198,193,58,16,150,192,198,225,1,0,57,16,151,192,198,1,58,16,151,192,198,33,1,0,57,16,151,192,198,65,58,16,151,192,198,97,21,16,44,0,21,16,14,0,22,16,19,0,23,16,24,0,24,16,29,0,25,16,1,0,57,16,150,192,198,129,58,16,150,192,198,161,1,0,57,16,149,192,198,129,58,16,149,192,198,161,1,0,57,16,149,192,198,193,58,16,149,192,198,225,1,0,57,16,150,192,198,1,58,16,150,192,198,33,1,0,57,16,150,192,198,65,58,16,150,192,198,97,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,149,192,198,65,58,16,149,192,198,97,1,0,57,16,148,192,198,129,58,16,148,192,198,161,1,0,57,16,148,192,198,193,58,16,148,192,198,225,1,0,57,16,149,192,198,1,58,16,149,192,198,33,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,148,192,198,65,58,16,148,192,198,97,1,0,57,16,147,192,198,65,58,16,147,192,198,97,1,0,57,16,147,192,198,129,58,16,147,192,198,161,1,0,57,16,147,192,198,193,58,16,147,192,198,225,1,0,57,16,148,192,198,1,58,16,148,192,198,33,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,147,192,198,1,58,16,147,192,198,33,48,0,58,16,146,192,198,97,1,0,57,16,146,192,198,129,58,16,146,192,198,161,1,0,57,16,146,192,198,193,58,16,146,192,198,225,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,146,192,198,33,58,16,146,192,198,65,48,0,58,16,176,100,198,97,57,16,145,192,198,129,1,0,57,16,145,192,198,161,58,16,145,192,198,193,1,0,57,16,145,192,198,225,58,16,146,192,198,1,0,16,12,0,1,16,20,0,2,16,25,0,3,16,1,0,57,16,145,192,198,33,58,16,145,192,198,65,1,0,57,16,144,192,198,1,58,16,112,100,198,33,59,16,144,192,198,67,1,0,57,16,144,192,198,161,58,16,144,192,198,193,1,0,57,16,144,192,198,225,58,16,145,192,198,1,27,16,14,0,28,16,19,0,29,16,24,0,30,16,26,0,31,16,1,0,57,16,135,192,198,65,58,16,135,192,198,97,1,0,57,16,134,192,198,97,58,16,134,192,198,129,1,0,57,16,134,192,198,161,58,16,134,192,198,193,48,0,58,16,134,192,198,225,1,0,57,16,135,192,198,1,58,16,135,192,198,33,22,16,44,0,22,16,14,0,23,16,19,0,24,16,24,0,25,16,29,0,26,16,1,0,57,16,134,192,198,33,58,16,134,192,198,65,1,0,57,16,133,192,198,33,58,16,133,192,198,65,1,0,57,16,133,192,198,97,58,16,133,192,198,129,1,0,57,16,133,192,198,161,58,16,133,192,198,193,1,0,57,16,133,192,198,225,58,16,134,192,198,1,18,16,12,0,19,16,17,0,20,16,22,0,21,16,1,0,57,16,132,192,198,225,58,16,133,192,198,1,1,0,57,16,132,192,198,33,58,16,132,192,198,65,1,0,57,16,132,192,198,97,58,16,132,192,198,129,1,0,57,16,132,192,198,161,58,16,132,192,198,193,9,16,81,0,13,16,44,0,13,16,14,0,14,16,19,0,15,16,24,0,16,16,29,0,17,16,1,0,57,16,131,192,198,225,58,16,132,192,198,1,1,0,57,16,130,192,198,225,58,16,131,192,198,1,1,0,57,16,131,192,198,33,58,16,131,192,198,65,1,0,57,16,131,192,198,97,58,16,131,192,198,129,1,0,57,16,131,192,198,161,58,16,131,192,198,193,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,130,192,198,161,58,16,130,192,198,193,1,0,57,16,129,192,198,225,58,16,130,192,198,1,1,0,57,16,130,192,198,33,58,16,130,192,198,65,1,0,57,16,130,192,198,97,58,16,130,192,198,129,4,16,41,0,4,16,11,0,5,16,16,0,6,16,21,0,7,16,26,0,8,16,48,0,58,16,129,192,198,193,48,0,58,16,112,96,198,193,57,16,128,192,198,225,1,0,57,16,129,192,198,1,58,16,129,192,198,33,1,0,57,16,129,192,198,65,58,16,129,192,198,97,1,0,57,16,129,192,198,129,58,16,129,192,198,161,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,128,192,198,129,58,16,128,192,198,161,1,0,57,16,127,192,198,193,58,16,127,192,198,225,1,0,57,16,128,192,198,1,58,16,128,192,198,33,1,0,57,16,128,192,198,65,58,16,128,192,198,97,93,117,193,80,48,0,56,16,255,255,93,117,193,82,144,0,198,129,1,0,61,16,3,0,62,16,152,192,198,225,112,102,198,161,62,16,152,192,198,193,153,0,198,1,1,0,61,16,3,0,62,16,153,192,198,97,176,102,198,33,62,16,153,192,198,65,153,0,198,129,48,0,62,16,153,192,198,161,108,11,5,5,50,0,4,16,58,16,56,16,155,192,198,6,16,0,1,16,34,16,43,16,45,16,47,16,48,16,49,16,50,16,54,16,55,16,56,16,57,16,59,16,60,16,61,16,64,16,170,170,3,0,69,0,52,0,61,0,55,13,0,16,4,0,0,96,1,0,0,96,1,0,43,0,77,38,0,32,1,0,32,0,82,38,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,11,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,80,97,114,101,110,116,0,170,170,170,0,0,110,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,10,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,39,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,11,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,80,97,114,101,110,116,0,170,170,170,0,0,110,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,153,27,0,32,7,0,0,0,23,0,0,0,155,27,0,0,155,27,0,0,3,0,0,0,0,0,0,0,118,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,110,0,111,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,133,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,97,0,97,0,60,0,60,0,60,0,65,0,97,0,60,0,60,0,60,0,65,0,65,0,0,0,170,170,170,170,4,57,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,163,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,140,47,0,0,140,47,0,0,76,51,0,0,76,51,0,0,178,56,0,0,232,56,0,0,232,56,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,28,0,202,225,28,0,202,2,29,0,202,35,29,0,202,68,29,0,202,101,29,0,202,134,29,0,202,167,29,0,202,200,29,0,202,233,29,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,196,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,102,29,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,38,30,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,70,31,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,228,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,166,47,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,48,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,34,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,51,0,201,102,52,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,55,0,201,230,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,58,0,201,38,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,60,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,62,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,64,0,5,71,238,102,201,70,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,66,0,201,70,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,68,0,201,134,69,0,201,166,70,0,201,198,71,0,201,230,72,0,201,6,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,75,0,201,70,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,77,0,201,134,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,79,0,201,198,80,0,201,230,81,0,201,6,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,84,0,201,70,85,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,70,0,4,111,93,0,70,0,70,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,4,111,93,0,5,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,12,192,197,162,156,82,196,198,1,0,8,3,12,192,197,226,11,3,13,192,197,34,5,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,156,82,196,208,1,0,8,3,13,192,197,226,11,3,14,192,197,34,5,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,156,82,196,204,1,0,8,3,14,192,197,226,11,3,15,192,197,34,5,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,15,192,197,226,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,16,0,197,35,1,0,8,3,35,192,198,35,11,3,35,192,198,131,16,0,197,131,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,16,192,197,226,11,3,17,192,197,34,5,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,17,0,197,227,1,0,8,3,18,192,197,67,11,3,18,192,197,163,19,0,197,3,1,0,8,3,19,192,197,99,11,3,19,192,197,195,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,3,0,67,0,50,0,59,0,119,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,64,51,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,92,39,0,0,92,39,0,0,56,41,0,0,56,41,0,0,88,46,0,0,142,46,0,0,36,51,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,13,0,202,193,13,0,202,226,13,0,202,3,14,0,202,36,14,0,202,69,14,0,202,102,14,0,202,135,14,0,202,168,14,0,202,201,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,4,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,28,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,29,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,134,30,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,36,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,230,46,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,47,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,48,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,98,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,50,0,201,166,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,198,52,0,201,230,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,55,0,201,38,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,57,0,201,102,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,59,0,201,166,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,61,0,201,230,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,64,0,201,38,65,0,201,70,66,0,201,102,67,0,201,134,68,0,201,166,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,70,0,201,230,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,73,0,201,38,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,75,0,201,102,76,0,201,134,77,0,201,166,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,79,0,201,230,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,70,0,4,111,93,0,70,0,70,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,4,111,93,0,5,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,5,192,197,226,156,82,196,198,1,0,8,3,6,192,197,34,11,3,6,192,197,98,5,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,156,82,196,208,1,0,8,3,7,192,197,34,11,3,7,192,197,98,5,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,156,82,196,204,1,0,8,3,8,192,197,34,11,3,8,192,197,98,5,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,9,192,197,34,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,9,0,197,99,1,0,8,3,35,192,198,35,11,3,35,192,198,131,9,0,197,195,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,10,192,197,34,11,3,10,192,197,98,5,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,11,0,197,35,1,0,8,3,11,192,197,131,11,3,11,192,197,227,12,0,197,67,1,0,8,3,12,192,197,163,11,3,13,192,197,3,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,82,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,84,4,185,124,185,128,185,136,186,140,186,144,86,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,88,4,168,60,168,64,168,68,119,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,121,4,168,124,168,128,168,136,168,140,168,144,123,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,180,185,188,185,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,184,136,14,185,184,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,200,180,168,188,168,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,184,128,14,168,184,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,125,4,127,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,180,232,180,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,25,185,8,185,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,129,4,131,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,176,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,65,4,218,188,97,4,209,188,192,6,218,188,168,1,193,6,218,188,136,1,194,6,218,188,232,1,195,6,218,188,104,2,196,6,218,188,72,2,197,6,218,188,40,2,224,6,209,188,168,1,225,6,209,188,136,1,226,6,209,188,232,1,227,6,209,188,104,2,228,6,209,188,72,2,229,6,209,188,40,2,0,7,218,188,232,2,1,7,209,188,232,2,2,7,218,188,200,1,3,7,209,188,200,1,4,7,218,188,200,2,5,7,209,188,200,2,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,97,4,200,188,224,6,200,188,168,1,225,6,200,188,136,1,226,6,200,188,232,1,227,6,200,188,104,2,228,6,200,188,72,2,229,6,200,188,40,2,1,7,200,188,232,2,3,7,200,188,200,1,5,7,200,188,200,2,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,3,0,67,0,50,0,59,0,191,14,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,185,14,0,32,144,27,0,32,1,0,32,0,149,27,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,110,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,10,10,0,32,7,0,0,0,21,0,0,0,12,10,0,0,12,10,0,0,3,0,0,0,0,0,0,0,62,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,75,220,38,0,90,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,60,0,100,0,104,0,60,0,60,0,60,0,68,0,104,0,60,0,60,0,60,0,68,0,72,0,60,0,107,0,104,0,60,0,60,0,60,0,75,0,104,0,60,0,60,0,60,0,75,0,72,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,60,0,112,0,104,0,60,0,60,0,60,0,80,0,104,0,60,0,60,0,60,0,80,0,72,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,0,0,170,170,170,170,170,170,12,39,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,23,0,0,196,23,0,0,140,26,0,0,140,26,0,0,200,29,0,0,200,29,0,0,30,34,0,0,96,34,0,0,240,38,0,0,50,105,114,84,1,0,64,8,111,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,94,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,24,0,202,193,24,0,202,226,24,0,202,3,25,0,202,36,25,0,202,69,25,0,202,102,25,0,202,135,25,0,202,168,25,0,202,201,25,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,201,160,7,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,201,96,15,0,156,5,0,64,156,5,0,66,201,32,23,0,156,5,0,70,201,32,32,0,160,5,0,74,156,5,0,76,201,160,39,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,160,43,0,201,192,47,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,201,224,51,0,5,5,0,64,5,5,0,66,201,0,56,0,5,5,0,70,201,32,61,0,5,5,0,74,5,5,0,76,201,64,65,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,23,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,24,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,24,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,96,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,5,0,2,5,93,0,70,0,5,0,2,5,93,0,135,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,150,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,142,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,142,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,150,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,164,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,164,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,146,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,138,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,138,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,182,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,182,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,154,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,154,0,0,0,0,0,135,0,5,0,3,5,93,0,70,0,5,0,3,5,93,0,135,0,5,0,3,5,93,0,5,0,142,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,142,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,144,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,144,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,156,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,150,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,150,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,160,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,160,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,206,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,206,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,210,0,0,0,0,0,70,0,5,0,4,5,93,0,70,0,5,0,4,5,93,0,5,0,142,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,144,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,196,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,150,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,160,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,206,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,210,0,0,0,0,0,0,0,0,135,5,2,93,5,142,0,0,70,5,2,93,5,142,0,0,135,5,2,93,5,144,0,0,70,5,2,93,5,144,0,0,135,5,2,93,5,156,0,0,70,5,2,93,5,156,0,0,135,5,2,93,5,196,0,0,70,5,2,93,5,196,0,0,135,5,2,93,5,150,0,0,70,5,2,93,5,150,0,0,135,5,2,93,5,160,0,0,70,5,2,93,5,160,0,0,135,5,2,93,5,206,0,0,70,5,2,93,5,206,0,0,70,5,2,93,5,210,0,0,135,5,3,93,5,142,0,0,70,5,3,93,5,142,0,0,135,5,3,93,5,144,0,0,70,5,3,93,5,144,0,0,135,5,3,93,5,156,0,0,70,5,3,93,5,156,0,0,135,5,3,93,5,196,0,0,70,5,3,93,5,196,0,0,135,5,3,93,5,150,0,0,70,5,3,93,5,150,0,0,135,5,3,93,5,160,0,0,70,5,3,93,5,160,0,0,135,5,3,93,5,206,0,0,70,5,3,93,5,206,0,0,70,5,3,93,5,210,0,0,135,5,4,93,5,142,0,0,70,5,4,93,5,142,0,0,135,5,4,93,5,144,0,0,70,5,4,93,5,144,0,0,135,5,4,93,5,156,0,0,70,5,4,93,5,156,0,0,135,5,4,93,5,196,0,0,70,5,4,93,5,196,0,0,135,5,4,93,5,150,0,0,70,5,4,93,5,150,0,0,135,5,4,93,5,160,0,0,70,5,4,93,5,160,0,0,135,5,4,93,5,206,0,0,70,5,4,93,5,206,0,0,70,5,4,93,5,210,0,0,5,5,2,93,5,142,0,0,5,5,2,93,5,144,0,0,5,5,2,93,5,156,0,0,5,5,2,93,5,196,0,0,5,5,2,93,5,150,0,0,5,5,2,93,5,160,0,0,5,5,2,93,5,206,0,0,5,5,2,93,5,210,0,0,5,5,3,93,5,142,0,0,5,5,3,93,5,144,0,0,5,5,3,93,5,156,0,0,5,5,3,93,5,196,0,0,5,5,3,93,5,150,0,0,5,5,3,93,5,160,0,0,5,5,3,93,5,206,0,0,5,5,3,93,5,210,0,0,5,5,4,93,5,142,0,0,5,5,4,93,5,144,0,0,5,5,4,93,5,156,0,0,5,5,4,93,5,196,0,0,5,5,4,93,5,150,0,0,5,5,4,93,5,160,0,0,5,5,4,93,5,206,0,0,5,5,4,93,5,210,0,0,193,2,5,93,5,136,0,0,193,2,5,93,5,150,0,0,193,2,5,93,5,142,0,0,193,2,5,93,5,164,0,0,193,2,5,93,5,156,0,0,193,2,5,93,5,146,0,0,193,2,5,93,5,138,0,0,193,2,5,93,5,196,0,0,193,2,5,93,5,182,0,0,193,2,5,93,5,154,0,0,193,3,5,93,5,142,0,0,193,3,5,93,5,144,0,0,193,3,5,93,5,156,0,0,193,3,5,93,5,196,0,0,193,3,5,93,5,150,0,0,193,3,5,93,5,160,0,0,193,3,5,93,5,206,0,0,193,3,5,93,5,210,0,0,193,4,5,93,5,142,0,0,193,4,5,93,5,144,0,0,193,4,5,93,5,156,0,0,193,4,5,93,5,196,0,0,193,4,5,93,5,150,0,0,193,4,5,93,5,160,0,0,193,4,5,93,5,206,0,0,193,4,5,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,255,255,2,93,135,5,104,0,255,255,2,93,70,5,36,1,197,162,37,1,0,192,197,98,0,48,156,5,16,0,36,30,29,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,30,2,12,0,30,2,4,192,197,98,31,2,4,192,197,162,34,30,4,192,197,226,35,30,5,192,197,34,72,0,255,255,3,93,135,5,104,0,255,255,3,93,70,5,36,1,3,192,197,226,37,1,4,192,197,34,0,62,156,5,16,0,36,30,29,0,40,30,15,0,40,30,10,192,197,34,41,30,10,192,197,98,42,30,10,192,197,162,43,30,10,192,197,226,150,30,11,192,197,34,36,30,9,192,197,34,37,30,9,192,197,98,38,30,9,192,197,162,39,30,9,192,197,226,30,2,12,0,30,2,8,192,197,34,31,2,8,192,197,98,34,30,8,192,197,162,35,30,8,192,197,226,72,0,255,255,4,93,135,5,104,0,255,255,4,93,70,5,36,1,7,192,197,162,37,1,7,192,197,226,0,68,156,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,4,192,198,66,248,30,4,192,198,130,249,30,4,192,198,194,244,30,3,192,198,130,245,30,3,192,198,194,246,30,4,192,198,2,142,30,2,192,198,66,143,30,2,192,198,130,153,30,2,192,198,194,242,30,3,192,198,2,243,30,3,192,198,66,118,1,15,0,118,1,1,192,198,2,119,1,1,192,198,66,120,1,1,192,198,130,50,2,1,192,198,194,51,2,2,192,198,2,89,0,198,129,121,0,198,161,221,0,0,192,198,66,253,0,0,192,198,130,255,0,0,192,198,194,0,72,156,5,16,0,36,30,29,0,40,30,15,0,40,30,7,192,198,194,41,30,8,192,198,2,42,30,8,192,198,66,43,30,8,192,198,130,150,30,8,192,198,194,36,30,6,192,198,194,37,30,7,192,198,2,38,30,7,192,198,66,39,30,7,192,198,130,30,2,12,0,30,2,5,192,198,194,31,2,6,192,198,2,34,30,6,192,198,66,35,30,6,192,198,130,72,0,5,192,198,1,104,0,5,192,198,33,36,1,5,192,198,66,37,1,5,192,198,130,0,78,156,5,8,0,37,30,15,0,37,30,9,192,198,226,39,30,10,192,198,34,41,30,10,192,198,98,43,30,10,192,198,162,150,30,10,192,198,226,104,0,9,192,198,1,37,1,9,192,198,34,31,2,9,192,198,98,35,30,9,192,198,162,0,46,5,5,8,0,37,30,15,0,37,30,12,192,197,34,39,30,12,192,197,98,41,30,12,192,197,162,43,30,12,192,197,226,150,30,13,192,197,34,104,0,255,255,2,93,5,5,37,1,11,192,197,98,31,2,11,192,197,162,35,30,11,192,197,226,0,48,5,5,8,0,37,30,15,0,37,30,14,192,197,34,39,30,14,192,197,98,41,30,14,192,197,162,43,30,14,192,197,226,150,30,15,192,197,34,104,0,255,255,3,93,5,5,37,1,13,192,197,98,31,2,13,192,197,162,35,30,13,192,197,226,0,62,5,5,8,0,37,30,15,0,37,30,16,192,197,34,39,30,16,192,197,98,41,30,16,192,197,162,43,30,16,192,197,226,150,30,17,192,197,34,104,0,255,255,4,93,5,5,37,1,15,192,197,98,31,2,15,192,197,162,35,30,15,192,197,226,0,68,5,5,10,0,143,30,20,0,245,30,9,0,245,30,19,192,197,34,247,30,19,192,197,98,249,30,19,192,197,162,143,30,18,192,197,98,153,30,18,192,197,162,243,30,18,192,197,226,121,0,255,255,5,93,193,2,253,0,17,192,197,98,255,0,17,192,197,162,119,1,17,192,197,226,51,2,18,192,197,34,0,72,5,5,8,0,37,30,15,0,37,30,20,192,197,162,39,30,20,192,197,226,41,30,21,192,197,34,43,30,21,192,197,98,150,30,21,192,197,162,104,0,255,255,5,93,193,3,37,1,19,192,197,226,31,2,20,192,197,34,35,30,20,192,197,98,0,78,5,5,8,0,37,30,15,0,37,30,22,192,197,162,39,30,22,192,197,226,41,30,23,192,197,34,43,30,23,192,197,98,150,30,23,192,197,162,104,0,255,255,5,93,193,4,37,1,21,192,197,226,31,2,22,192,197,34,35,30,22,192,197,98,32,0,72,0,73,0,89,0,90,0,104,0,105,0,121,0,122,0,221,0,222,0,253,0,254,0,255,0,0,1,36,1,38,1,118,1,121,1,30,2,32,2,50,2,52,2,34,30,44,30,142,30,144,30,150,30,151,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,36,4,186,72,185,76,185,80,185,84,186,88,186,96,46,4,185,104,185,108,56,4,185,120,74,4,185,128,185,136,84,4,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,90,4,96,4,168,72,168,76,168,80,168,84,168,88,168,96,102,4,168,104,168,108,108,4,168,120,118,4,168,128,168,136,124,4,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,200,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,200,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,204,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,176,104,4,177,176,36,5,250,177,37,5,241,177,255,5,185,68,72,4,186,180,104,4,177,180,36,5,250,181,37,5,241,181,255,5,185,100,72,4,186,184,104,4,177,184,36,5,250,185,37,5,241,185,255,5,186,112,89,4,186,188,121,4,177,188,221,4,154,189,253,4,145,189,255,4,81,190,118,5,250,189,119,5,241,189,120,5,90,190,255,5,185,124,72,4,186,192,104,4,177,192,36,5,250,193,37,5,241,193,255,5,186,140,104,4,177,196,37,5,241,197,255,5,168,64,104,4,168,176,37,5,232,177,255,5,168,68,104,4,168,180,37,5,232,181,255,5,168,100,104,4,168,184,37,5,232,185,255,5,168,112,121,4,168,188,253,4,136,189,255,4,72,190,119,5,232,189,255,5,168,124,104,4,168,192,37,5,232,193,255,5,168,140,104,4,168,196,37,5,232,197,255,1,3,0,69,0,52,0,61,0,63,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,3,10,0,32,1,0,32,0,8,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,208,6,0,32,7,0,0,0,21,0,0,0,210,6,0,0,210,6,0,0,3,0,0,0,0,0,0,0,72,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,96,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,20,11,60,0,1,11,60,0,2,11,60,0,3,11,38,0,57,11,60,0,21,11,77,11,55,11,38,0,47,11,60,0,60,0,95,11,0,0,170,170,170,170,170,170,170,170,170,170,170,170,242,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,128,25,0,0,128,25,0,0,128,25,0,0,128,25,0,0,196,25,0,0,196,25,0,0,212,25,0,0,218,25,0,0,31,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,108,187,255,0,109,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,39,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,119,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,102,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,33,108,193,3,33,108,193,4,33,108,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,84,108,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,34,108,5,5,49,0,77,11,55,11,255,255,105,108,5,5,2,0,55,11,56,11,170,170,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,201,6,0,32,1,0,32,0,206,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,14,7,0,32,7,0,0,0,21,0,0,0,16,7,0,0,16,7,0,0,3,0,0,0,0,0,0,0,74,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,100,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,117,0,114,0,117,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,113,10,60,0,60,0,112,10,60,0,60,0,2,10,60,0,60,0,1,10,60,0,60,0,60,10,38,0,92,10,60,0,77,10,0,0,170,170,170,170,236,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,128,0,0,0,128,1,0,0,96,26,0,0,96,26,0,0,96,26,0,0,96,26,0,0,212,26,0,0,16,0,0,0,10,0,0,0,4,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,2,0,0,0,0,0,0,41,9,0,0,96,7,0,0,102,203,255,0,103,6,0,0,104,192,255,0,106,189,255,0,107,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,103,104,105,106,107,108,49,109,40,41,39,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,133,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,100,0,108,0,116,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,2,0,202,129,2,0,202,162,2,0,202,195,2,0,202,228,2,0,202,5,3,0,202,38,3,0,202,71,3,0,202,104,3,0,202,137,3,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,1,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,2,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,122,241,194,5,121,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,123,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,106,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,197,226,0,0,197,34,1,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,120,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,94,106,194,5,123,241,5,5,32,106,194,5,123,241,5,5,40,106,194,5,123,241,5,5,42,106,194,5,123,241,5,5,52,106,194,5,123,241,5,5,80,106,194,5,123,241,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,7,7,0,32,1,0,32,0,12,7,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,95,0,73,0,78,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,247,9,0,32,7,0,0,0,21,0,0,0,249,9,0,0,249,9,0,0,3,0,0,0,0,0,0,0,59,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,70,220,38,0,65,0,60,0,5,1,60,0,60,0,60,0,4,1,38,0,67,0,60,0,7,1,60,0,60,0,60,0,6,1,38,0,69,0,60,0,25,1,60,0,60,0,60,0,24,1,38,0,76,0,60,0,66,1,60,0,60,0,60,0,65,1,38,0,78,0,60,0,68,1,60,0,60,0,60,0,67,1,38,0,79,0,60,0,243,0,60,0,60,0,60,0,211,0,38,0,83,0,60,0,91,1,60,0,60,0,60,0,90,1,38,0,90,0,60,0,122,1,60,0,60,0,60,0,121,1,60,0,124,1,60,0,60,0,60,0,123,1,0,0,208,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,30,0,0,20,30,0,0,20,30,0,0,20,30,0,0,136,31,0,0,136,31,0,0,168,34,0,0,168,34,0,0,184,38,0,0,50,105,114,84,1,0,64,8,212,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,121,0,129,0,132,0,140,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,0,48,0,169,0,177,0,181,0,48,0,187,0,195,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,156,0,48,0,48,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,228,1,16,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,10,0,202,129,10,0,202,162,10,0,202,195,10,0,202,228,10,0,202,5,11,0,202,38,11,0,202,71,11,0,202,104,11,0,202,137,11,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,198,0,0,156,5,0,48,201,230,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,166,2,0,201,6,4,0,156,5,0,72,160,5,0,74,156,5,0,76,201,102,5,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,198,6,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,166,8,0,5,5,0,44,201,102,9,0,5,5,0,48,201,134,10,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,70,11,0,201,166,12,0,5,5,0,72,5,5,0,74,5,5,0,76,201,6,14,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,102,15,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,9,0,201,70,17,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,134,5,2,71,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,10,0,201,38,18,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,5,5,2,71,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,65,5,5,2,65,134,5,2,69,5,5,2,69,201,70,19,0,201,102,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,201,134,21,0,201,166,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,134,5,3,93,5,5,3,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,38,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,28,0,201,102,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,166,31,0,201,198,32,0,201,230,33,0,201,6,35,0,201,38,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,37,0,201,102,38,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,39,0,201,6,41,0,201,134,42,0,201,6,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,45,0,201,166,46,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,197,226,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,47,0,201,230,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,134,5,3,93,5,196,0,0,5,5,2,93,5,196,0,0,5,5,3,93,5,196,0,0,134,5,2,93,5,210,0,0,134,5,3,93,5,210,0,0,5,5,2,93,5,210,0,0,5,5,3,93,5,210,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,40,3,2,235,134,5,0,46,156,5,1,0,1,3,2,239,134,5,65,3,2,239,134,5,0,50,156,5,48,0,40,3,2,243,134,5,0,68,156,5,1,0,1,3,255,255,2,69,134,5,65,3,255,255,2,69,134,5,0,70,156,5,1,0,1,3,255,255,2,71,134,5,65,3,255,255,2,71,134,5,0,78,156,5,1,0,1,3,255,255,2,79,134,5,65,3,255,255,2,79,134,5,0,92,156,5,2,0,1,3,255,255,2,93,134,5,7,3,255,255,3,93,134,5,65,3,255,255,2,93,134,5,0,42,5,5,48,0,40,3,2,235,5,5,0,46,5,5,1,0,1,3,2,239,5,5,65,3,2,239,5,5,0,50,5,5,48,0,40,3,2,243,5,5,0,68,5,5,1,0,1,3,255,255,2,69,5,5,65,3,255,255,2,69,5,5,0,70,5,5,1,0,1,3,255,255,2,71,5,5,65,3,255,255,2,71,5,5,0,78,5,5,1,0,1,3,255,255,2,79,5,5,65,3,255,255,2,79,5,5,0,92,5,5,2,0,1,3,255,255,2,93,5,5,7,3,255,255,3,93,5,5,65,3,255,255,2,93,5,5,156,46,196,160,1,0,1,3,197,162,65,3,197,162,5,46,196,160,1,0,1,3,0,192,197,98,65,3,0,192,197,98,156,68,196,160,1,0,1,3,0,192,197,162,65,3,0,192,197,162,5,68,196,160,1,0,1,3,0,192,197,226,65,3,0,192,197,226,156,78,196,160,1,0,1,3,1,192,197,34,65,3,1,192,197,34,5,78,196,160,1,0,1,3,1,192,197,98,65,3,1,192,197,98,156,70,196,190,1,0,1,3,1,192,197,162,65,3,1,192,197,162,5,70,196,190,1,0,1,3,1,192,197,226,65,3,1,192,197,226,156,70,196,162,1,0,1,3,2,192,197,34,65,3,2,192,197,34,5,70,196,162,1,0,1,3,2,192,197,98,65,3,2,192,197,98,156,78,196,202,1,0,1,3,2,192,197,162,65,3,2,192,197,162,5,78,196,202,1,0,1,3,2,192,197,226,65,3,2,192,197,226,156,68,196,196,1,0,1,3,3,192,197,34,65,3,3,192,197,34,5,68,196,196,1,0,1,3,3,192,197,98,65,3,3,192,197,98,156,68,196,210,1,0,1,3,3,192,197,162,65,3,3,192,197,162,5,68,196,210,1,0,1,3,3,192,197,226,65,3,3,192,197,226,156,68,196,204,1,0,1,3,4,192,197,34,65,3,4,192,197,34,5,68,196,204,1,0,1,3,4,192,197,98,65,3,4,192,197,98,156,78,196,196,1,0,1,3,4,192,197,162,65,3,4,192,197,162,5,78,196,196,1,0,1,3,4,192,197,226,65,3,4,192,197,226,156,92,196,196,2,0,1,3,5,192,197,162,7,3,5,192,197,226,65,3,5,192,197,162,5,92,196,196,2,0,1,3,6,192,197,34,7,3,6,192,197,98,65,3,6,192,197,34,156,92,196,210,2,0,1,3,6,192,197,162,7,3,6,192,197,226,65,3,6,192,197,162,5,92,196,210,2,0,1,3,7,192,197,34,7,3,7,192,197,98,65,3,7,192,197,34,156,70,196,196,1,0,1,3,7,192,197,162,65,3,7,192,197,162,5,70,196,196,1,0,1,3,7,192,197,226,65,3,7,192,197,226,8,0,197,35,1,0,1,3,8,192,197,131,65,3,8,192,197,131,8,0,197,227,1,0,1,3,9,192,197,67,65,3,9,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,28,4,185,76,30,4,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,124,32,4,34,4,185,148,185,152,185,160,36,4,185,172,185,180,185,184,185,188,185,192,185,196,38,4,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,64,42,4,168,76,44,4,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,124,46,4,48,4,168,148,168,152,168,160,50,4,168,172,168,180,168,184,168,188,168,192,168,196,52,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,54,4,186,81,154,81,250,81,90,82,186,101,154,101,250,101,90,102,217,76,154,130,185,141,185,144,249,141,153,142,89,142,136,14,217,142,185,181,153,181,249,181,89,182,153,197,185,212,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,56,4,168,81,136,81,232,81,72,82,168,101,136,101,232,101,72,102,200,76,136,130,168,141,168,144,232,141,136,142,72,142,128,14,200,142,168,181,136,181,232,181,72,182,136,197,168,212,72,198,57,59,40,59,217,57,200,57,185,60,168,60,185,72,168,72,249,69,232,69,185,70,168,70,25,70,8,70,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,185,84,168,84,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,156,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,185,120,168,120,185,132,168,132,58,4,60,4,26,130,8,130,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,185,168,168,168,250,165,232,165,62,4,64,4,26,166,8,166,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,185,204,168,204,185,208,168,208,25,202,8,202,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,164,169,164,200,56,169,80,187,100,187,108,169,100,169,108,169,216,169,128,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,255,5,186,80,255,5,186,128,255,5,185,140,255,5,186,164,255,5,185,200,255,5,168,56,255,5,168,68,255,5,168,80,255,5,168,128,255,5,168,140,255,5,168,164,255,5,168,200,255,5,249,70,255,5,232,70,255,5,250,130,255,5,232,130,255,5,250,166,255,5,232,166,255,1,3,0,69,0,52,0,61,0,59,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,240,9,0,32,1,0,32,0,245,9,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,220,8,0,32,7,0,0,0,21,0,0,0,222,8,0,0,222,8,0,0,3,0,0,0,0,0,0,0,123,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,197,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,78,6,60,0,60,0,80,6,60,0,60,0,79,6,60,0,60,0,75,6,60,0,60,0,77,6,60,0,60,0,76,6,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,39,6,60,0,34,6,38,0,39,6,60,0,60,0,35,6,60,0,60,0,114,6,60,0,60,0,113,6,60,0,60,0,37,6,60,0,60,0,115,6,60,0,33,6,38,0,42,6,60,0,124,6,60,0,60,0,121,6,38,0,44,6,60,0,129,6,60,0,60,0,45,6,84,6,38,0,134,6,60,0,133,6,38,0,47,6,60,0,137,6,60,0,60,0,136,6,38,0,49,6,60,0,147,6,60,0,60,0,145,6,38,0,152,6,60,0,150,6,38,0,169,6,60,0,60,0,42,0,170,6,67,6,38,0,171,6,60,0,60,0,175,6,38,0,188,6,60,0,60,0,187,6,38,0,72,6,60,0,60,0,36,6,60,0,60,0,199,6,60,0,60,0,201,6,38,0,71,6,60,0,60,0,60,0,192,6,60,0,60,0,60,0,71,6,84,6,60,0,60,0,42,0,213,6,193,6,190,6,41,6,195,6,38,0,204,6,60,0,60,0,42,0,73,6,210,6,74,6,208,6,205,6,60,0,60,0,204,6,84,6,60,0,60,0,60,0,73,6,84,6,60,0,60,0,60,0,38,6,38,0,160,0,60,0,60,0,12,32,60,0,60,0,13,32,0,0,170,170,100,33,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,72,0,0,0,72,1,0,0,184,28,0,0,184,28,0,0,184,28,0,0,184,28,0,0,12,29,0,0,12,29,0,0,140,29,0,0,140,29,0,0,76,33,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,152,0,48,0,48,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,1,0,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,102,5,5,25,102,5,70,26,102,5,70,222,102,5,73,26,102,7,75,240,102,201,6,0,0,192,0,0,0,5,73,214,102,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,71,184,102,192,0,0,0,192,0,0,0,192,0,0,0,201,198,2,0,201,166,3,0,201,134,4,0,201,102,5,0,194,5,210,230,194,5,212,230,194,5,211,230,192,0,0,0,194,5,209,230,194,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,26,102,5,71,26,102,5,74,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,43,102,192,0,0,0,192,0,0,0,5,5,43,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,102,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,102,192,0,0,0,192,0,0,0,5,70,85,102,5,5,85,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,111,102,192,0,0,0,5,5,111,102,192,0,0,0,192,0,0,0,5,5,129,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,184,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,188,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,210,102,192,0,0,0,192,0,0,0,5,72,214,102,192,0,0,0,6,5,214,102,5,71,214,102,197,34,0,0,5,74,214,102,192,0,0,0,192,0,0,0,192,0,0,0,5,71,222,102,192,0,0,0,5,72,222,102,192,0,0,0,192,0,0,0,201,70,6,0,5,74,240,102,192,0,0,0,192,0,0,0,5,73,240,102,192,0,0,0,5,71,240,102,197,98,0,0,192,0,0,0,201,38,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,4,5,71,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,71,214,102,194,5,128,232,5,71,240,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,25,102,5,5,84,6,255,255,26,102,5,70,85,6,255,255,26,102,5,73,72,102,5,5,48,0,84,6,255,255,59,102,5,70,214,102,5,5,48,0,84,6,255,255,214,102,7,5,222,102,5,5,48,0,84,6,255,255,222,102,5,70,240,102,5,70,48,0,84,6,255,255,240,102,6,75,240,102,5,72,48,0,84,6,255,255,240,102,7,75,240,102,5,5,48,0,84,6,255,255,240,102,5,75,214,102,5,70,48,0,84,6,255,255,214,102,6,5,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,1,0,1,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,123,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,213,8,0,32,1,0,32,0,218,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,105,1,0,32,7,0,0,0,195,0,0,0,109,1,0,0,109,1,0,0,140,0,0,0,1,0,0,0,105,1,0,0,73,110,115,116,97,108,108,101,100,76,111,99,97,108,101,115,0,97,102,0,97,109,0,97,114,0,97,114,95,83,65,0,97,115,0,97,122,0,98,101,0,98,103,0,98,110,0,98,111,0,98,114,0,98,115,0,98,115,95,67,121,114,108,0,99,97,0,99,101,98,0,99,104,114,0,99,115,0,99,121,0,100,97,0,100,101,0,100,101,95,65,84,0,100,115,98,0,100,122,0,101,101,0,101,108,0,101,110,0,101,110,95,85,83,0,101,110,95,85,83,95,80,79,83,73,88,0,101,111,0,101,116,0,102,97,0,102,97,95,65,70,0,102,102,0,102,102,95,65,100,108,109,0,102,105,0,102,105,108,0,102,111,0,102,114,0,102,114,95,67,65,0,102,121,0,103,97,0,103,108,0,103,117,0,104,97,0,104,97,119,0,104,101,0,104,101,95,73,76,0,104,105,0,104,115,98,0,104,117,0,104,121,0,105,100,0,105,100,95,73,68,0,105,103,0,105,115,0,105,116,0,106,97,0,107,97,0,107,107,0,107,108,0,107,109,0,107,110,0,107,111,0,107,111,107,0,107,117,0,107,121,0,108,98,0,108,107,116,0,108,110,0,108,111,0,108,116,0,108,118,0,109,107,0,109,108,0,109,114,0,109,115,0,109,116,0,109,121,0,110,98,0,110,98,95,78,79,0,110,101,0,110,108,0,110,110,0,111,109,0,111,114,0,112,97,0,112,97,95,71,117,114,117,0,112,97,95,71,117,114,117,95,73,78,0,112,108,0,112,115,0,112,116,0,114,111,0,115,97,0,115,101,0,115,105,0,115,107,0,115,108,0,115,109,110,0,115,113,0,115,114,0,115,114,95,67,121,114,108,0,115,114,95,67,121,114,108,95,66,65,0,115,114,95,67,121,114,108,95,77,69,0,115,114,95,67,121,114,108,95,82,83,0,115,114,95,76,97,116,110,0,115,114,95,76,97,116,110,95,66,65,0,115,114,95,76,97,116,110,95,82,83,0,115,118,0,115,119,0,116,97,0,116,101,0,116,104,0,116,107,0,116,111,0,116,114,0,117,103,0,117,107,0,117,114,0,117,122,0,118,105,0,119,97,101,0,119,111,0,120,104,0,121,105,0,121,111,0,121,117,101,95,72,97,110,115,95,67,78,0,121,117,101,95,72,97,110,116,0,122,104,0,122,104,95,72,97,110,115,0,122,104,95,72,97,110,115,95,67,78,0,122,104,95,72,97,110,115,95,83,71,0,122,104,95,72,97,110,116,0,122,104,95,72,97,110,116,95,72,75,0,122,104,95,72,97,110,116,95,77,79,0,122,104,95,72,97,110,116,95,84,87,0,122,117,0,65,108,105,97,115,76,111,99,97,108,101,115,0,97,114,115,0,105,110,0,105,110,95,73,68,0,105,119,0,105,119,95,73,76,0,109,111,0,110,111,0,110,111,95,78,79,0,112,97,95,73,78,0,115,104,0,115,104,95,66,65,0,115,104,95,67,83,0,115,104,95,89,85,0,115,114,95,66,65,0,115,114,95,77,69,0,115,114,95,82,83,0,121,117,101,0,121,117,101,95,67,78,0,121,117,101,95,72,97,110,115,0,122,104,95,67,78,0,122,104,95,72,75,0,122,104,95,77,79,0,122,104,95,83,71,0,122,104,95,84,87,0,0,0,24,0,139,2,143,2,146,2,152,2,155,2,161,2,164,2,167,2,173,2,179,2,182,2,188,2,194,2,200,2,206,2,212,2,218,2,222,2,229,2,238,2,244,2,250,2,0,3,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,0,49,0,52,0,55,0,58,0,64,0,67,0,70,0,73,0,76,0,79,0,82,0,85,0,88,0,96,0,99,0,103,0,107,0,110,0,113,0,116,0,119,0,125,0,129,0,132,0,135,0,138,0,141,0,147,0,159,0,136,2,162,0,165,0,168,0,174,0,177,0,185,0,188,0,192,0,195,0,198,0,204,0,207,0,210,0,213,0,216,0,219,0,223,0,226,0,232,0,104,0,235,0,239,0,242,0,245,0,248,0,254,0,1,1,4,1,7,1,10,1,13,1,16,1,19,1,22,1,25,1,28,1,32,1,35,1,38,1,41,1,45,1,48,1,51,1,54,1,57,1,60,1,149,1,63,1,66,1,69,1,72,1,75,1,78,1,84,1,87,1,90,1,93,1,96,1,99,1,102,1,110,1,121,1,124,1,127,1,130,1,107,1,133,1,136,1,139,1,142,1,145,1,148,1,152,1,155,1,158,1,166,1,177,1,188,1,199,1,207,1,218,1,229,1,232,1,235,1,238,1,241,1,244,1,247,1,250,1,253,1,0,2,3,2,6,2,9,2,12,2,16,2,19,2,22,2,25,2,28,2,40,2,49,2,52,2,60,2,71,2,82,2,90,2,101,2,112,2,123,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170,170,2,0,126,2,32,0,170,170,1,0,0,80,50,0,0,80,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,189,8,0,32,7,0,0,0,21,0,0,0,191,8,0,0,191,8,0,0,3,0,0,0,0,0,0,0,47,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,46,220,38,0,65,0,60,0,3,1,60,0,60,0,60,0,2,1,60,0,226,0,60,0,60,0,60,0,194,0,38,0,73,0,60,0,238,0,60,0,60,0,60,0,206,0,38,0,83,0,60,0,95,1,61,0,25,2,60,0,60,0,60,0,94,1,61,0,24,2,38,0,84,0,60,0,99,1,61,0,27,2,60,0,60,0,60,0,98,1,61,0,26,2,0,0,22,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,27,0,0,116,27,0,0,116,27,0,0,116,27,0,0,200,28,0,0,200,28,0,0,14,30,0,0,14,30,0,0,254,33,0,0,50,105,114,84,1,0,64,8,170,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,48,0,56,0,48,0,56,0,102,0,110,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,134,0,139,0,48,0,48,0,48,0,147,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,126,0,48,0,48,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,192,0,192,0,152,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,9,0,202,129,9,0,202,162,9,0,202,195,9,0,202,228,9,0,202,5,10,0,202,38,10,0,202,71,10,0,202,104,10,0,202,137,10,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,201,38,1,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,230,1,0,201,70,3,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,166,4,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,201,198,5,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,134,6,0,201,230,7,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,134,5,3,43,196,154,156,42,196,150,156,42,196,146,156,42,197,162,8,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,134,5,2,59,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,8,0,196,138,5,42,196,136,5,42,5,5,3,43,196,154,5,42,196,150,5,42,196,146,5,42,197,34,9,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,5,5,2,59,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,201,70,9,0,201,70,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,11,0,201,38,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,134,5,2,81,5,5,2,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,134,5,2,81,5,5,2,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,12,0,201,6,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,15,0,201,230,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,16,0,201,198,17,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,3,0,197,162,3,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,197,162,7,0,197,226,7,0,197,98,3,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,3,43,5,162,0,0,134,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,5,3,43,5,200,0,0,134,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,59,5,208,0,0,5,5,2,59,5,208,0,0,134,5,3,43,5,196,0,0,134,5,2,43,5,196,0,0,5,5,3,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,3,43,5,136,0,0,5,5,3,43,5,136,0,0,134,5,3,43,5,138,0,0,5,5,3,43,5,138,0,0,134,5,3,43,5,182,0,0,5,5,3,43,5,182,0,0,134,5,3,43,5,154,0,0,5,5,3,43,5,154,0,0,134,5,2,43,5,136,0,0,5,5,2,43,5,136,0,0,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,134,5,2,59,5,196,0,0,5,5,2,59,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,2,3,3,235,134,5,6,3,2,235,134,5,0,58,156,5,48,0,2,3,2,251,134,5,0,78,156,5,1,0,38,3,255,255,2,79,134,5,39,3,255,255,2,79,134,5,0,80,156,5,1,0,38,3,255,255,2,81,134,5,39,3,255,255,2,81,134,5,0,42,5,5,1,0,2,3,3,235,5,5,6,3,2,235,5,5,0,58,5,5,48,0,2,3,2,251,5,5,0,78,5,5,1,0,38,3,255,255,2,79,5,5,39,3,255,255,2,79,5,5,0,80,5,5,1,0,38,3,255,255,2,81,5,5,39,3,255,255,2,81,5,5,156,42,196,162,1,0,2,3,197,162,6,3,0,192,197,98,5,42,196,162,1,0,2,3,0,192,197,162,6,3,0,192,197,226,156,58,196,162,48,0,2,3,1,192,197,34,5,58,196,162,48,0,2,3,1,192,197,98,156,42,196,200,1,0,2,3,1,192,197,162,6,3,1,192,197,226,5,42,196,200,1,0,2,3,2,192,197,34,6,3,2,192,197,98,156,58,196,208,48,0,2,3,2,192,197,162,5,58,196,208,48,0,2,3,2,192,197,226,156,42,196,196,1,0,2,3,3,192,197,34,6,3,3,192,197,98,5,42,196,196,1,0,2,3,3,192,197,162,6,3,3,192,197,226,156,58,196,196,48,0,2,3,8,192,197,34,5,58,196,196,48,0,2,3,8,192,197,98,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,68,185,72,185,76,186,80,185,84,185,88,185,92,28,4,186,108,185,112,185,116,185,120,186,124,185,132,185,136,185,140,185,148,30,4,32,4,185,172,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,68,168,72,168,76,168,80,168,84,168,88,168,92,36,4,168,108,168,112,168,116,168,120,168,124,168,132,168,136,168,140,168,148,38,4,40,4,168,172,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,185,64,153,58,89,58,57,58,0,8,249,74,186,81,154,81,250,81,90,82,186,97,154,97,185,100,90,98,217,76,154,126,185,133,153,133,249,133,153,134,89,134,136,14,217,134,185,173,153,173,249,173,89,174,153,189,185,196,2,8,168,57,136,57,168,64,136,58,72,58,40,58,4,8,232,74,168,81,136,81,232,81,72,82,168,97,136,97,168,100,72,98,200,76,136,126,168,133,136,133,232,133,136,134,72,134,128,14,200,134,168,173,136,173,232,173,72,174,136,189,168,196,72,190,57,59,40,59,185,60,168,60,42,4,44,4,153,73,136,73,249,73,232,73,185,74,168,74,25,74,8,74,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,26,83,8,83,26,82,8,82,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,46,4,48,4,186,98,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,144,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,185,156,168,156,26,154,8,154,185,164,168,164,25,162,8,162,185,168,168,168,153,174,136,174,57,175,40,175,217,173,200,173,57,174,40,174,121,174,104,174,25,175,8,175,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,152,169,152,200,56,169,80,187,96,187,108,169,96,169,108,169,200,169,124,217,132,187,80,200,132,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,96,255,5,186,152,255,5,185,160,255,5,168,56,255,5,168,96,255,5,168,152,255,5,168,160,255,5,25,59,255,5,8,59,255,5,26,99,255,5,8,99,255,1,170,170,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,182,8,0,32,1,0,32,0,187,8,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,199,38,1,32,7,0,0,0,39,0,0,0,207,38,1,0,207,38,1,0,6,0,0,0,0,0,0,0,102,238,0,0,85,67,65,82,117,108,101,115,0,86,101,114,115,105,111,110,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,101,109,111,106,105,0,83,101,113,117,101,110,99,101,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,101,111,114,0,112,114,105,118,97,116,101,45,117,110,105,104,97,110,0,115,101,97,114,99,104,0,115,116,97,110,100,97,114,100,0,37,37,68,69,80,69,78,68,69,78,67,89,0,100,101,112,101,110,100,115,0,170,170,0,0,52,0,50,0,0,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,0,0,117,0,99,0,97,0,100,0,97,0,116,0,97,0,46,0,105,0,99,0,117,0,0,0,207,221,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,64,14,45,0,68,14,32,0,192,14,45,0,196,14,32,0,181,170,32,0,182,170,32,0,185,170,32,0,187,170,32,0,188,170,181,25,45,0,183,25,186,25,93,0,93,0,38,0,39,0,61,0,39,0,60,0,39,0,96,34,39,0,38,0,39,6,60,0,60,0,60,0,142,254,60,0,60,0,60,0,141,254,60,0,60,0,34,6,60,0,60,0,60,0,130,254,60,0,60,0,60,0,129,254,60,0,60,0,35,6,60,0,60,0,60,0,132,254,60,0,60,0,60,0,131,254,60,0,60,0,37,6,60,0,60,0,60,0,136,254,60,0,60,0,60,0,135,254,38,0,72,6,60,0,60,0,60,0,229,6,60,0,60,0,60,0,238,254,60,0,60,0,60,0,237,254,60,0,60,0,36,6,60,0,60,0,60,0,134,254,60,0,60,0,60,0,133,254,38,0,74,6,60,0,60,0,60,0,230,6,60,0,60,0,60,0,243,254,60,0,60,0,60,0,244,254,60,0,60,0,60,0,242,254,60,0,60,0,60,0,241,254,60,0,60,0,38,6,60,0,60,0,60,0,139,254,60,0,60,0,60,0,140,254,60,0,60,0,60,0,138,254,60,0,60,0,60,0,137,254,60,0,60,0,73,6,60,0,60,0,60,0,232,251,60,0,60,0,60,0,233,251,60,0,60,0,60,0,240,254,60,0,60,0,60,0,239,254,38,0,71,6,60,0,60,0,60,0,235,254,60,0,60,0,60,0,236,254,60,0,60,0,60,0,234,254,60,0,60,0,60,0,233,254,60,0,60,0,41,6,60,0,60,0,60,0,148,254,60,0,60,0,60,0,147,254,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,243,5,60,0,60,0,244,5,60,0,60,0,64,6,60,0,60,0,58,14,38,0,0,17,61,0,168,17,38,0,0,17,0,17,61,0,1,17,61,0,169,17,38,0,0,17,9,17,61,0,170,17,38,0,2,17,61,0,171,17,38,0,2,17,12,17,61,0,172,17,38,0,2,17,18,17,61,0,173,17,38,0,3,17,61,0,174,17,38,0,3,17,3,17,61,0,4,17,38,0,5,17,61,0,175,17,38,0,5,17,0,17,61,0,176,17,38,0,5,17,6,17,61,0,177,17,38,0,5,17,7,17,61,0,178,17,38,0,5,17,9,17,61,0,179,17,38,0,5,17,16,17,61,0,180,17,38,0,5,17,17,17,61,0,181,17,38,0,5,17,18,17,61,0,182,17,38,0,6,17,61,0,183,17,38,0,7,17,61,0,184,17,38,0,7,17,7,17,61,0,8,17,38,0,7,17,9,17,61,0,185,17,38,0,9,17,61,0,186,17,38,0,9,17,9,17,61,0,10,17,61,0,187,17,38,0,11,17,61,0,188,17,38,0,12,17,61,0,189,17,38,0,12,17,12,17,61,0,13,17,38,0,14,17,61,0,190,17,38,0,15,17,61,0,191,17,38,0,16,17,61,0,192,17,38,0,17,17,61,0,193,17,38,0,18,17,61,0,194,17,38,0,97,17,117,17,61,0,98,17,38,0,99,17,117,17,61,0,100,17,38,0,101,17,117,17,61,0,102,17,38,0,103,17,117,17,61,0,104,17,38,0,105,17,97,17,61,0,106,17,38,0,105,17,97,17,117,17,61,0,107,17,38,0,105,17,117,17,61,0,108,17,38,0,110,17,101,17,61,0,111,17,38,0,110,17,101,17,117,17,61,0,112,17,38,0,110,17,117,17,61,0,113,17,38,0,115,17,117,17,61,0,116,17,0,0,239,223,168,4,38,0,0,78,61,0,208,253,0,78,38,0,40,78,61,0,208,253,40,78,38,0,54,78,61,0,208,253,54,78,38,0,63,78,61,0,208,253,63,78,38,0,89,78,61,0,208,253,89,78,38,0,133,78,61,0,208,253,133,78,38,0,140,78,61,0,208,253,140,78,38,0,160,78,61,0,208,253,160,78,38,0,186,78,61,0,208,253,186,78,38,0,63,81,61,0,208,253,63,81,38,0,101,81,61,0,208,253,101,81,38,0,107,81,61,0,208,253,107,81,38,0,130,81,61,0,208,253,130,81,38,0,150,81,61,0,208,253,150,81,38,0,171,81,61,0,208,253,171,81,38,0,224,81,61,0,208,253,224,81,38,0,245,81,61,0,208,253,245,81,38,0,0,82,61,0,208,253,0,82,38,0,155,82,61,0,208,253,155,82,38,0,249,82,61,0,208,253,249,82,38,0,21,83,61,0,208,253,21,83,38,0,26,83,61,0,208,253,26,83,38,0,56,83,61,0,208,253,56,83,38,0,65,83,61,0,208,253,65,83,38,0,92,83,61,0,208,253,92,83,38,0,105,83,61,0,208,253,105,83,38,0,130,83,61,0,208,253,130,83,38,0,182,83,61,0,208,253,182,83,38,0,200,83,61,0,208,253,200,83,38,0,227,83,61,0,208,253,227,83,38,0,215,86,61,0,208,253,215,86,38,0,31,87,61,0,208,253,31,87,38,0,235,88,61,0,208,253,235,88,38,0,2,89,61,0,208,253,2,89,38,0,10,89,61,0,208,253,10,89,38,0,21,89,61,0,208,253,21,89,38,0,39,89,61,0,208,253,39,89,38,0,115,89,61,0,208,253,115,89,38,0,80,91,61,0,208,253,80,91,38,0,128,91,61,0,208,253,128,91,38,0,248,91,61,0,208,253,248,91,38,0,15,92,61,0,208,253,15,92,38,0,34,92,61,0,208,253,34,92,38,0,56,92,61,0,208,253,56,92,38,0,110,92,61,0,208,253,110,92,38,0,113,92,61,0,208,253,113,92,38,0,219,93,61,0,208,253,219,93,38,0,229,93,61,0,208,253,229,93,38,0,241,93,61,0,208,253,241,93,38,0,254,93,61,0,208,253,254,93,38,0,114,94,61,0,208,253,114,94,38,0,97,78,61,0,208,253,122,94,38,0,127,94,61,0,208,253,127,94,38,0,244,94,61,0,208,253,244,94,38,0,254,94,61,0,208,253,254,94,38,0,11,95,61,0,208,253,11,95,38,0,19,95,61,0,208,253,19,95,38,0,80,95,61,0,208,253,80,95,38,0,97,95,61,0,208,253,97,95,38,0,115,95,61,0,208,253,115,95,38,0,195,95,61,0,208,253,195,95,38,0,8,98,61,0,208,253,8,98,38,0,54,98,61,0,208,253,54,98,38,0,75,98,61,0,208,253,75,98,38,0,47,101,61,0,208,253,47,101,38,0,52,101,61,0,208,253,52,101,38,0,135,101,61,0,208,253,135,101,38,0,151,101,61,0,208,253,151,101,38,0,164,101,61,0,208,253,164,101,38,0,185,101,61,0,208,253,185,101,38,0,224,101,61,0,208,253,224,101,38,0,229,101,61,0,208,253,229,101,38,0,240,102,61,0,208,253,240,102,38,0,8,103,61,0,208,253,8,103,38,0,40,103,61,0,208,253,40,103,38,0,32,107,61,0,208,253,32,107,38,0,98,107,61,0,208,253,98,107,38,0,121,107,61,0,208,253,121,107,38,0,179,107,61,0,208,253,179,107,38,0,203,107,61,0,208,253,203,107,38,0,212,107,61,0,208,253,212,107,38,0,219,107,61,0,208,253,219,107,38,0,15,108,61,0,208,253,15,108,38,0,20,108,61,0,208,253,20,108,38,0,52,108,61,0,208,253,52,108,38,0,107,112,61,0,208,253,107,112,38,0,42,114,61,0,208,253,42,114,38,0,54,114,61,0,208,253,54,114,38,0,59,114,61,0,208,253,59,114,38,0,44,78,61,0,208,253,63,114,38,0,130,216,23,220,61,0,208,253,44,78,38,0,71,114,61,0,208,253,71,114,38,0,89,114,61,0,208,253,89,114,38,0,91,114,61,0,208,253,91,114,38,0,172,114,61,0,208,253,172,114,38,0,132,115,61,0,208,253,132,115,38,0,137,115,61,0,208,253,137,115,38,0,220,116,61,0,208,253,220,116,38,0,230,116,61,0,208,253,230,116,38,0,24,117,61,0,208,253,24,117,38,0,31,117,61,0,208,253,31,117,38,0,40,117,61,0,208,253,40,117,38,0,48,117,61,0,208,253,48,117,38,0,139,117,61,0,208,253,139,117,38,0,146,117,61,0,208,253,146,117,38,0,118,118,61,0,208,253,118,118,38,0,125,118,61,0,208,253,125,118,38,0,174,118,61,0,208,253,174,118,38,0,191,118,61,0,208,253,191,118,38,0,238,118,61,0,208,253,238,118,38,0,219,119,61,0,208,253,219,119,38,0,226,119,61,0,208,253,226,119,38,0,243,119,61,0,208,253,243,119,38,0,58,121,61,0,208,253,58,121,38,0,184,121,61,0,208,253,184,121,38,0,190,121,61,0,208,253,190,121,38,0,116,122,61,0,208,253,116,122,38,0,203,122,61,0,208,253,203,122,38,0,249,122,61,0,208,253,249,122,38,0,115,124,61,0,208,253,115,124,38,0,248,124,61,0,208,253,248,124,38,0,159,126,61,0,208,253,159,126,38,0,54,127,61,0,208,253,54,127,38,0,81,127,61,0,208,253,81,127,38,0,138,127,61,0,208,253,138,127,38,0,189,127,61,0,208,253,189,127,38,0,1,128,61,0,208,253,1,128,38,0,12,128,61,0,208,253,12,128,38,0,18,128,61,0,208,253,18,128,38,0,51,128,61,0,208,253,51,128,38,0,127,128,61,0,208,253,127,128,38,0,137,128,61,0,208,253,137,128,38,0,227,129,61,0,208,253,227,129,38,0,234,129,61,0,208,253,234,129,38,0,243,129,61,0,208,253,243,129,38,0,252,129,61,0,208,253,252,129,38,0,12,130,61,0,208,253,12,130,38,0,27,130,61,0,208,253,27,130,38,0,31,130,61,0,208,253,31,130,38,0,110,130,61,0,208,253,110,130,38,0,114,130,61,0,208,253,114,130,38,0,120,130,61,0,208,253,120,130,38,0,77,134,61,0,208,253,77,134,38,0,107,134,61,0,208,253,107,134,38,0,64,136,61,0,208,253,64,136,38,0,76,136,61,0,208,253,76,136,38,0,99,136,61,0,208,253,99,136,38,0,126,137,61,0,208,253,126,137,38,0,139,137,61,0,208,253,139,137,38,0,193,137,61,0,208,253,193,137,38,0,210,137,61,0,208,253,210,137,38,0,0,138,61,0,208,253,0,138,38,0,160,139,61,0,208,253,160,139,38,0,55,140,61,0,208,253,55,140,38,0,70,140,61,0,208,253,70,140,38,0,85,140,61,0,208,253,85,140,38,0,120,140,61,0,208,253,120,140,38,0,157,140,61,0,208,253,157,140,38,0,29,141,61,0,208,253,29,141,38,0,100,141,61,0,208,253,100,141,38,0,112,141,61,0,208,253,112,141,38,0,179,141,61,0,208,253,179,141,38,0,171,142,61,0,208,253,171,142,38,0,202,142,61,0,208,253,202,142,38,0,102,143,61,0,208,253,102,143,38,0,155,143,61,0,208,253,155,143,38,0,176,143,61,0,208,253,176,143,38,0,181,143,61,0,208,253,181,143,38,0,145,144,61,0,208,253,145,144,38,0,73,145,61,0,208,253,73,145,38,0,198,145,61,0,208,253,198,145,38,0,204,145,61,0,208,253,204,145,38,0,209,145,61,0,208,253,209,145,38,0,133,148,61,0,208,253,133,148,38,0,119,149,61,0,208,253,119,149,38,0,127,149,61,0,208,253,127,149,38,0,128,149,61,0,208,253,128,149,38,0,232,149,61,0,208,253,232,149,38,0,28,150,61,0,208,253,28,150,38,0,182,150,61,0,208,253,182,150,38,0,185,150,61,0,208,253,185,150,38,0,232,150,61,0,208,253,232,150,38,0,81,151,61,0,208,253,81,151,38,0,94,151,61,0,208,253,94,151,38,0,98,151,61,0,208,253,98,151,38,0,105,151,61,0,208,253,105,151,38,0,203,151,61,0,208,253,203,151,38,0,230,151,61,0,208,253,230,151,38,0,237,151,61,0,208,253,237,151,38,0,243,151,61,0,208,253,243,151,38,0,1,152,61,0,208,253,1,152,38,0,117,152,61,0,208,253,117,152,38,0,168,152,61,0,208,253,168,152,38,0,206,152,61,0,208,253,206,152,38,0,219,152,61,0,208,253,219,152,38,0,222,152,61,0,208,253,222,152,38,0,223,152,61,0,208,253,223,152,38,0,99,153,61,0,208,253,99,153,38,0,150,153,61,0,208,253,150,153,38,0,153,153,61,0,208,253,153,153,38,0,172,153,61,0,208,253,172,153,38,0,108,154,61,0,208,253,108,154,38,0,168,154,61,0,208,253,168,154,38,0,216,154,61,0,208,253,216,154,38,0,223,154,61,0,208,253,223,154,38,0,37,155,61,0,208,253,37,155,38,0,47,155,61,0,208,253,47,155,38,0,50,155,61,0,208,253,50,155,38,0,60,155,61,0,208,253,60,155,38,0,90,155,61,0,208,253,90,155,38,0,124,156,61,0,208,253,124,156,38,0,229,156,61,0,208,253,229,156,38,0,31,158,61,0,208,253,31,158,38,0,117,158,61,0,208,253,117,158,38,0,132,216,186,222,61,0,208,253,100,83,38,0,127,158,61,0,208,253,127,158,38,0,165,158,61,0,208,253,165,158,38,0,166,158,61,0,208,253,166,158,38,0,187,158,61,0,208,253,187,158,38,0,195,158,61,0,208,253,195,158,38,0,205,158,61,0,208,253,205,158,38,0,209,158,61,0,208,253,209,158,38,0,249,158,61,0,208,253,249,158,38,0,253,158,61,0,208,253,253,158,38,0,254,158,61,0,208,253,254,158,38,0,14,159,61,0,208,253,14,159,38,0,19,159,61,0,208,253,19,159,38,0,32,159,61,0,208,253,32,159,38,0,59,159,61,0,208,253,59,159,38,0,74,159,61,0,208,253,74,159,38,0,80,159,61,0,208,253,80,159,38,0,82,159,61,0,208,253,82,159,38,0,127,159,61,0,208,253,127,159,38,0,141,159,61,0,208,253,141,159,38,0,153,159,61,0,208,253,153,159,38,0,156,159,61,0,208,253,156,159,38,0,159,159,61,0,208,253,159,159,38,0,160,159,61,0,208,253,160,159,0,0,239,223,197,6,38,0,97,0,60,0,60,0,0,29,60,0,60,0,101,44,60,0,60,0,60,0,58,2,60,0,60,0,143,29,60,0,60,0,80,2,60,0,60,0,60,0,111,44,60,0,60,0,60,0,68,29,60,0,60,0,81,2,60,0,60,0,60,0,109,44,60,0,60,0,60,0,69,29,60,0,60,0,144,29,60,0,60,0,82,2,60,0,60,0,60,0,112,44,60,0,60,0,60,0,155,29,38,0,98,0,60,0,60,0,153,2,60,0,60,0,128,1,60,0,60,0,60,0,67,2,60,0,60,0,47,29,60,0,60,0,3,29,60,0,60,0,108,29,60,0,60,0,128,29,60,0,60,0,83,2,60,0,60,0,60,0,129,1,60,0,60,0,131,1,60,0,60,0,60,0,130,1,38,0,99,0,60,0,60,0,4,29,60,0,60,0,60,2,60,0,60,0,60,0,59,2,60,0,60,0,147,167,60,0,60,0,60,0,146,167,60,0,60,0,136,1,60,0,60,0,60,0,135,1,60,0,60,0,85,2,60,0,60,0,60,0,157,29,60,0,60,0,132,33,60,0,60,0,60,0,131,33,60,0,60,0,63,167,60,0,60,0,60,0,62,167,38,0,100,0,60,0,60,0,5,29,60,0,60,0,6,29,60,0,60,0,109,29,60,0,60,0,129,29,60,0,60,0,86,2,60,0,60,0,60,0,137,1,60,0,60,0,87,2,60,0,60,0,60,0,138,1,60,0,60,0,145,29,60,0,60,0,140,1,60,0,60,0,60,0,139,1,60,0,60,0,33,2,60,0,60,0,113,167,60,0,60,0,159,30,60,0,60,0,141,1,38,0,101,0,60,0,60,0,7,29,60,0,60,0,71,2,60,0,60,0,60,0,70,2,60,0,60,0,146,29,60,0,60,0,120,44,60,0,60,0,221,1,60,0,60,0,60,0,142,1,60,0,60,0,60,0,50,29,60,0,60,0,123,44,60,0,60,0,89,2,60,0,60,0,60,0,143,1,60,0,60,0,60,0,74,29,60,0,60,0,60,0,148,32,60,0,60,0,149,29,60,0,60,0,91,2,60,0,60,0,60,0,144,1,60,0,60,0,60,0,7,33,60,0,60,0,60,0,75,29,60,0,60,0,147,29,60,0,60,0,88,2,60,0,60,0,90,2,60,0,60,0,92,2,60,0,60,0,60,0,159,29,60,0,60,0,148,29,60,0,60,0,8,29,60,0,60,0,60,0,76,29,60,0,60,0,93,2,60,0,60,0,94,2,60,0,60,0,154,2,38,0,102,0,60,0,60,0,48,167,60,0,60,0,110,29,60,0,60,0,130,29,60,0,60,0,146,1,60,0,60,0,60,0,145,1,60,0,60,0,78,33,60,0,60,0,60,0,50,33,60,0,60,0,251,167,38,0,103,0,60,0,60,0,97,2,60,0,60,0,60,0,162,29,60,0,60,0,98,2,60,0,60,0,60,0,219,29,60,0,60,0,229,1,60,0,60,0,60,0,228,1,60,0,60,0,131,29,60,0,60,0,96,2,60,0,60,0,60,0,147,1,60,0,60,0,155,2,60,0,60,0,119,29,60,0,60,0,127,167,60,0,60,0,60,0,126,167,60,0,60,0,99,2,60,0,60,0,60,0,148,1,60,0,60,0,60,0,224,2,60,0,60,0,100,2,60,0,60,0,163,1,60,0,60,0,60,0,162,1,38,0,104,0,60,0,60,0,156,2,60,0,60,0,102,2,60,0,60,0,60,0,170,167,60,0,60,0,60,0,177,2,60,0,60,0,104,44,60,0,60,0,60,0,103,44,60,0,60,0,118,44,60,0,60,0,60,0,117,44,60,0,60,0,39,167,60,0,60,0,60,0,38,167,60,0,60,0,103,2,60,0,60,0,101,2,60,0,60,0,60,0,141,167,60,0,60,0,60,0,163,29,60,0,60,0,174,2,60,0,60,0,175,2,38,0,105,0,60,0,60,0,49,1,60,0,60,0,60,0,53,216,164,222,60,0,60,0,106,2,60,0,60,0,60,0,166,29,60,0,60,0,254,167,60,0,60,0,9,29,60,0,60,0,60,0,78,29,60,0,60,0,104,2,60,0,60,0,60,0,151,1,60,0,60,0,60,0,164,29,60,0,60,0,123,29,60,0,60,0,60,0,167,29,60,0,60,0,150,29,60,0,60,0,105,2,60,0,60,0,60,0,150,1,60,0,60,0,60,0,165,29,60,0,60,0,124,29,38,0,106,0,60,0,60,0,55,2,60,0,60,0,60,0,53,216,165,222,60,0,60,0,10,29,60,0,60,0,73,2,60,0,60,0,60,0,72,2,60,0,60,0,157,2,60,0,60,0,60,0,168,29,60,0,60,0,95,2,60,0,60,0,60,0,161,29,60,0,60,0,132,2,38,0,107,0,60,0,60,0,11,29,60,0,60,0,132,29,60,0,60,0,153,1,60,0,60,0,60,0,152,1,60,0,60,0,106,44,60,0,60,0,60,0,105,44,60,0,60,0,65,167,60,0,60,0,60,0,64,167,60,0,60,0,67,167,60,0,60,0,60,0,66,167,60,0,60,0,69,167,60,0,60,0,60,0,68,167,60,0,60,0,56,1,60,0,60,0,158,2,38,0,108,0,60,0,60,0,159,2,60,0,60,0,60,0,222,29,60,0,60,0,60,0,171,29,60,0,60,0,71,167,60,0,60,0,60,0,70,167,60,0,60,0,12,29,60,0,60,0,73,167,60,0,60,0,60,0,72,167,60,0,60,0,154,1,60,0,60,0,60,0,61,2,60,0,60,0,97,44,60,0,60,0,60,0,96,44,60,0,60,0,107,2,60,0,60,0,60,0,98,44,60,0,60,0,108,2,60,0,60,0,133,29,60,0,60,0,60,0,170,29,60,0,60,0,109,2,60,0,60,0,60,0,169,29,60,0,60,0,142,167,60,0,60,0,52,2,60,0,60,0,114,167,60,0,60,0,129,167,60,0,60,0,60,0,128,167,60,0,60,0,155,1,38,0,109,0,60,0,60,0,13,29,60,0,60,0,60,0,223,29,60,0,60,0,111,29,60,0,60,0,134,29,60,0,60,0,113,2,60,0,60,0,60,0,110,44,60,0,60,0,60,0,172,29,60,0,60,0,253,167,60,0,60,0,255,167,60,0,60,0,115,167,60,0,60,0,111,2,60,0,60,0,60,0,156,1,60,0,60,0,60,0,90,29,60,0,60,0,250,167,60,0,60,0,31,29,60,0,60,0,112,2,60,0,60,0,60,0,173,29,38,0,110,0,60,0,60,0,73,1,60,0,60,0,116,2,60,0,60,0,60,0,225,29,60,0,60,0,60,0,176,29,60,0,60,0,59,29,60,0,60,0,14,29,60,0,60,0,112,29,60,0,60,0,114,2,60,0,60,0,60,0,157,1,60,0,60,0,60,0,174,29,60,0,60,0,158,1,60,0,60,0,60,0,32,2,60,0,60,0,145,167,60,0,60,0,60,0,144,167,60,0,60,0,135,29,60,0,60,0,115,2,60,0,60,0,60,0,175,29,60,0,60,0,53,2,60,0,60,0,116,167,60,0,60,0,75,1,60,0,60,0,60,0,74,1,60,0,60,0,60,0,81,29,38,0,111,0,60,0,60,0,15,29,60,0,60,0,17,29,60,0,60,0,19,29,60,0,60,0,84,2,60,0,60,0,60,0,134,1,60,0,60,0,60,0,83,29,60,0,60,0,16,29,60,0,60,0,18,29,60,0,60,0,151,29,60,0,60,0,77,167,60,0,60,0,60,0,76,167,60,0,60,0,22,29,60,0,60,0,60,0,84,29,60,0,60,0,23,29,60,0,60,0,60,0,85,29,60,0,60,0,122,44,60,0,60,0,117,2,60,0,60,0,60,0,159,1,60,0,60,0,60,0,177,29,60,0,60,0,75,167,60,0,60,0,60,0,74,167,60,0,60,0,119,2,60,0,60,0,35,2,60,0,60,0,60,0,34,2,60,0,60,0,60,0,61,29,60,0,60,0,21,29,38,0,112,0,60,0,60,0,24,29,60,0,60,0,125,29,60,0,60,0,60,0,99,44,60,0,60,0,81,167,60,0,60,0,60,0,80,167,60,0,60,0,113,29,60,0,60,0,136,29,60,0,60,0,165,1,60,0,60,0,60,0,164,1,60,0,60,0,83,167,60,0,60,0,60,0,82,167,60,0,60,0,85,167,60,0,60,0,60,0,84,167,60,0,60,0,252,167,60,0,60,0,120,2,60,0,60,0,60,0,178,29,60,0,60,0,119,44,38,0,113,0,60,0,60,0,87,167,60,0,60,0,60,0,86,167,60,0,60,0,89,167,60,0,60,0,60,0,88,167,60,0,60,0,160,2,60,0,60,0,75,2,60,0,60,0,60,0,74,2,38,0,114,0,60,0,60,0,128,2,60,0,60,0,60,0,226,29,60,0,60,0,60,0,166,1,60,0,60,0,91,167,60,0,60,0,60,0,227,29,60,0,60,0,60,0,90,167,60,0,60,0,25,29,60,0,60,0,77,2,60,0,60,0,60,0,76,2,60,0,60,0,114,29,60,0,60,0,121,2,60,0,60,0,60,0,180,2,60,0,60,0,26,29,60,0,60,0,122,2,60,0,60,0,137,29,60,0,60,0,123,2,60,0,60,0,60,0,181,2,60,0,60,0,121,44,60,0,60,0,124,2,60,0,60,0,125,2,60,0,60,0,60,0,100,44,60,0,60,0,126,2,60,0,60,0,115,29,60,0,60,0,127,2,60,0,60,0,129,2,60,0,60,0,60,0,182,2,60,0,60,0,117,167,60,0,60,0,118,167,60,0,60,0,93,167,60,0,60,0,60,0,92,167,38,0,115,0,60,0,60,0,49,167,60,0,60,0,116,29,60,0,60,0,138,29,60,0,60,0,130,2,60,0,60,0,60,0,179,29,60,0,60,0,63,2,60,0,60,0,60,0,126,44,60,0,60,0,156,30,60,0,60,0,157,30,60,0,60,0,131,2,60,0,60,0,60,0,169,1,60,0,60,0,60,0,180,29,60,0,60,0,139,29,60,0,60,0,170,1,60,0,60,0,133,2,60,0,60,0,152,29,60,0,60,0,134,2,38,0,116,0,60,0,60,0,27,29,60,0,60,0,103,1,60,0,60,0,60,0,102,1,60,0,60,0,102,44,60,0,60,0,60,0,62,2,60,0,60,0,117,29,60,0,60,0,171,1,60,0,60,0,60,0,181,29,60,0,60,0,173,1,60,0,60,0,60,0,172,1,60,0,60,0,136,2,60,0,60,0,60,0,174,1,60,0,60,0,54,2,60,0,60,0,119,167,60,0,60,0,135,2,38,0,117,0,60,0,60,0,28,29,60,0,60,0,60,0,184,29,60,0,60,0,29,29,60,0,60,0,60,0,89,29,60,0,60,0,30,29,60,0,60,0,137,2,60,0,60,0,60,0,68,2,60,0,60,0,60,0,182,29,60,0,60,0,126,29,60,0,60,0,153,29,60,0,60,0,138,2,60,0,60,0,60,0,177,1,60,0,60,0,60,0,183,29,60,0,60,0,127,29,38,0,118,0,60,0,60,0,32,29,60,0,60,0,95,167,60,0,60,0,60,0,94,167,60,0,60,0,140,29,60,0,60,0,139,2,60,0,60,0,60,0,178,1,60,0,60,0,60,0,185,29,60,0,60,0,113,44,60,0,60,0,116,44,60,0,60,0,253,30,60,0,60,0,60,0,252,30,60,0,60,0,140,2,60,0,60,0,60,0,69,2,60,0,60,0,60,0,186,29,38,0,119,0,60,0,60,0,33,29,60,0,60,0,115,44,60,0,60,0,60,0,114,44,60,0,60,0,141,2,60,0,60,0,191,1,60,0,60,0,60,0,247,1,38,0,120,0,60,0,60,0,141,29,38,0,121,0,60,0,60,0,143,2,60,0,60,0,79,2,60,0,60,0,60,0,78,2,60,0,60,0,180,1,60,0,60,0,60,0,179,1,60,0,60,0,255,30,60,0,60,0,60,0,254,30,60,0,60,0,142,2,60,0,60,0,29,2,60,0,60,0,60,0,28,2,38,0,122,0,60,0,60,0,34,29,60,0,60,0,182,1,60,0,60,0,60,0,181,1,60,0,60,0,118,29,60,0,60,0,142,29,60,0,60,0,37,2,60,0,60,0,60,0,36,2,60,0,60,0,144,2,60,0,60,0,60,0,188,29,60,0,60,0,145,2,60,0,60,0,60,0,189,29,60,0,60,0,64,2,60,0,60,0,60,0,127,44,60,0,60,0,108,44,60,0,60,0,60,0,107,44,60,0,60,0,99,167,60,0,60,0,60,0,98,167,60,0,60,0,146,2,60,0,60,0,60,0,183,1,60,0,60,0,60,0,190,29,60,0,60,0,239,1,60,0,60,0,60,0,238,1,60,0,60,0,35,29,60,0,60,0,185,1,60,0,60,0,60,0,184,1,60,0,60,0,154,29,60,0,60,0,186,1,60,0,60,0,147,2,38,0,254,0,60,0,60,0,101,167,60,0,60,0,60,0,100,167,60,0,60,0,103,167,60,0,60,0,60,0,102,167,38,0,97,0,101,0,60,0,60,0,1,29,60,0,60,0,2,29,60,0,60,0,60,0,70,29,38,0,100,0,145,2,60,0,60,0,165,2,38,0,100,0,146,2,60,0,60,0,164,2,38,0,104,0,118,0,60,0,60,0,149,1,60,0,60,0,60,0,246,1,38,0,108,0,146,2,60,0,60,0,110,2,38,0,111,0,101,0,60,0,60,0,118,2,60,0,60,0,20,29,38,0,116,0,85,2,60,0,60,0,168,2,38,0,117,0,101,0,60,0,60,0,107,29,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,187,2,61,0,189,2,61,0,105,167,61,0,104,167,61,0,107,167,61,0,106,167,61,0,109,167,61,0,108,167,61,0,111,167,61,0,210,29,61,0,110,167,61,0,112,167,61,0,120,167,61,0,187,1,61,0,43,167,61,0,42,167,61,0,45,167,61,0,44,167,61,0,47,167,61,0,46,167,61,0,168,1,61,0,167,1,61,0,189,1,61,0,188,1,61,0,133,1,61,0,132,1,61,0,148,2,61,0,66,2,61,0,65,2,61,0,192,2,61,0,188,2,61,0,238,2,61,0,190,2,61,0,35,167,61,0,34,167,61,0,140,167,61,0,139,167,61,0,149,2,61,0,228,2,61,0,191,2,61,0,193,2,61,0,36,29,61,0,37,29,61,0,92,29,61,0,37,167,61,0,36,167,61,0,161,2,61,0,162,2,61,0,150,2,61,0,192,1,61,0,193,1,61,0,194,1,61,0,195,1,61,0,151,2,61,0,152,2,61,0,172,2,61,0,173,2,38,0,179,3,60,0,60,0,38,29,38,0,187,3,60,0,60,0,39,29,38,0,192,3,60,0,60,0,40,29,38,0,193,3,60,0,60,0,41,29,38,0,200,3,60,0,60,0,42,29,38,0,82,4,60,0,60,0,83,4,60,0,60,0,60,0,3,4,38,0,57,4,60,0,139,4,60,0,60,0,60,0,138,4,38,0,59,4,60,0,60,0,43,29,38,0,91,4,60,0,60,0,92,4,60,0,60,0,60,0,12,4,38,0,132,5,60,0,135,5,0,0,239,223,75,53,38,0,32,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,42,0,62,216,176,221,62,216,177,221,62,216,179,221,62,216,178,221,60,216,251,223,60,216,252,223,60,216,253,223,60,216,254,223,60,216,255,223,38,0,32,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,209,253,172,32,60,0,42,0,61,216,0,222,61,216,3,222,61,216,4,222,61,216,1,222,61,216,6,222,61,216,5,222,62,216,35,221,61,216,2,222,61,216,66,222,61,216,67,222,62,216,224,222,61,216,9,222,61,216,10,222,61,216,7,222,60,0,42,0,62,216,112,221,61,216,13,222,62,216,41,221,61,216,24,222,61,216,23,222,58,38,61,216,26,222,61,216,25,222,62,216,114,221,60,0,42,0,61,216,11,222,61,216,27,222,61,216,28,222,62,216,42,221,61,216,29,222,62,216,17,221,60,0,42,0,62,216,23,221,62,216,45,221,62,216,226,222,62,216,227,222,62,216,43,221,62,216,20,221,62,216,225,222,60,0,42,0,62,216,16,221,62,216,40,221,61,216,16,222,61,216,17,222,61,216,54,222,62,216,229,222,60,0,32,0,61,216,54,222,13,32,60,216,43,223,60,0,42,0,61,216,15,222,61,216,18,222,61,216,68,222,61,216,44,222,60,0,32,0,61,216,46,222,13,32,61,216,168,220,60,0,42,0,62,216,37,221,62,216,232,222,60,0,42,0,61,216,12,222,61,216,20,222,61,216,42,222,62,216,36,221,61,216,52,222,60,0,42,0,61,216,55,222,62,216,18,221,62,216,21,221,62,216,34,221,62,216,46,221,62,216,39,221,62,216,117,221,62,216,118,221,62,216,116,221,61,216,53,222,60,0,32,0,61,216,53,222,13,32,61,216,171,220,60,0,42,0,62,216,47,221,60,0,42,0,62,216,32,221,62,216,115,221,62,216,120,221,60,0,42,0,61,216,14,222,62,216,19,221,62,216,208,221,60,0,42,0,61,216,21,222,62,216,228,222,61,216,31,222,61,216,65,222,57,38,61,216,46,222,61,216,47,222,61,216,50,222,61,216,51,222,62,216,122,221,62,216,121,221,61,216,38,222,61,216,39,222,61,216,40,222,61,216,48,222,61,216,37,222,61,216,34,222,61,216,45,222,61,216,49,222,61,216,22,222,61,216,35,222,61,216,30,222,61,216,19,222,61,216,41,222,61,216,43,222,62,216,113,221,60,0,42,0,61,216,36,222,61,216,33,222,61,216,32,222,62,216,44,221,61,216,8,222,61,216,127,220,61,216,128,220,32,38,60,0,42,0,61,216,169,220,62,216,33,221,61,216,121,220,61,216,122,220,61,216,123,220,61,216,125,220,61,216,126,220,62,216,22,221,60,0,42,0,61,216,58,222,61,216,56,222,61,216,57,222,61,216,59,222,61,216,60,222,61,216,61,222,61,216,64,222,61,216,63,222,61,216,62,222,60,0,42,0,61,216,72,222,61,216,73,222,61,216,74,222,60,0,42,0,61,216,140,220,61,216,152,220,61,216,157,220,61,216,150,220,61,216,151,220,61,216,147,220,61,216,158,220,61,216,149,220,61,216,159,220,99,39,61,216,148,220,60,0,32,0,100,39,13,32,61,216,37,221,32,0,61,0,32,0,100,39,15,254,13,32,61,216,37,221,60,0,32,0,100,39,13,32,62,216,121,222,32,0,61,0,32,0,100,39,15,254,13,32,62,216,121,222,60,0,42,0,100,39,62,216,119,222,62,216,225,221,61,216,155,220,61,216,154,220,61,216,153,220,62,216,117,222,61,216,156,220,62,216,14,221,61,216,164,221,62,216,118,222,62,216,13,221,60,0,42,0,61,216,139,220,61,216,175,220,61,216,162,220,61,216,165,220,61,216,171,220,61,216,166,220,61,216,168,220,61,216,115,221,61,216,172,220,60,0,32,0,61,216,65,220,13,32,61,216,232,221,32,0,61,0,32,0,61,216,65,220,15,254,13,32,61,216,232,221,60,0,42,0,61,216,232,221,61,216,239,221,61,216,173,220,61,216,164,220,60,0,42,0,61,216,75,220,62,216,26,221,61,216,144,221,11,39,61,216,150,221,62,216,241,222,62,216,242,222,62,216,243,222,62,216,244,222,62,216,247,222,62,216,248,222,60,0,42,0,61,216,76,220,62,216,12,221,62,216,15,221,12,39,62,216,30,221,62,216,240,222,62,216,31,221,62,216,24,221,62,216,25,221,60,0,42,0,61,216,72,220,61,216,73,220,61,216,70,220,61,216,149,221,61,216,71,220,29,38,62,216,245,222,60,0,42,0,61,216,77,220,61,216,78,220,10,39,61,216,74,220,62,216,27,221,62,216,28,221,60,0,42,0,61,216,79,220,61,216,76,222,62,216,246,222,61,216,80,220,62,216,50,221,62,216,29,221,61,216,79,222,60,0,42,0,13,39,61,216,133,220,62,216,51,221,60,0,42,0,61,216,170,220,62,216,190,221,62,216,191,221,62,216,181,221,62,216,182,221,61,216,66,220,62,216,187,221,61,216,67,220,62,216,224,221,62,216,192,222,62,216,193,222,62,216,183,221,62,216,180,221,61,216,64,220,61,216,65,220,61,216,69,220,61,216,68,220,62,216,230,222,60,0,42,0,61,216,118,220,62,216,210,221,61,216,102,220,61,216,103,220,62,216,209,221,61,216,113,220,61,216,104,220,62,216,212,221,60,0,32,0,62,216,212,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,212,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,105,220,60,0,32,0,61,216,113,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,255,223,13,32,64,38,60,0,32,0,61,216,113,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,255,223,13,32,66,38,60,0,42,0,62,216,211,221,61,216,116,220,61,216,117,220,60,0,42,0,61,216,77,222,60,0,32,0,61,216,77,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,77,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,78,222,60,0,32,0,61,216,78,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,78,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,69,222,60,0,32,0,61,216,69,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,69,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,70,222,60,0,32,0,61,216,70,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,70,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,129,220,60,0,32,0,61,216,129,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,129,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,75,222,60,0,32,0,61,216,75,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,75,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,207,221,60,0,32,0,62,216,207,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,207,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,71,222,60,0,32,0,61,216,71,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,71,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,38,221,60,0,32,0,62,216,38,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,38,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,55,221,60,0,32,0,62,216,55,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,55,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,255,223,13,32,64,38,60,0,32,0,62,216,209,221,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,149,38,60,0,32,0,61,216,104,220,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,149,38,60,0,32,0,61,216,105,220,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,149,38,60,0,32,0,62,216,209,221,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,147,223,60,0,32,0,61,216,104,220,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,147,223,60,0,32,0,61,216,105,220,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,147,223,60,0,32,0,62,216,209,221,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,235,223,60,0,32,0,61,216,104,220,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,235,223,60,0,32,0,61,216,105,220,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,235,223,60,0,32,0,62,216,209,221,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,150,38,60,0,32,0,61,216,104,220,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,150,38,60,0,32,0,61,216,105,220,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,150,38,60,0,32,0,62,216,209,221,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,62,223,60,0,32,0,61,216,104,220,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,62,223,60,0,32,0,61,216,105,220,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,62,223,60,0,32,0,62,216,209,221,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,115,223,60,0,32,0,61,216,104,220,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,115,223,60,0,32,0,61,216,105,220,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,115,223,60,0,32,0,62,216,209,221,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,39,221,60,0,32,0,61,216,104,220,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,39,221,60,0,32,0,61,216,105,220,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,39,221,60,0,32,0,62,216,209,221,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,237,223,60,0,32,0,61,216,104,220,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,237,223,60,0,32,0,61,216,105,220,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,237,223,60,0,32,0,62,216,209,221,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,188,220,60,0,32,0,61,216,104,220,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,188,220,60,0,32,0,61,216,105,220,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,188,220,60,0,32,0,62,216,209,221,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,44,221,60,0,32,0,61,216,104,220,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,44,221,60,0,32,0,61,216,105,220,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,44,221,60,0,32,0,62,216,209,221,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,187,220,60,0,32,0,61,216,104,220,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,187,220,60,0,32,0,61,216,105,220,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,187,220,60,0,32,0,62,216,209,221,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,164,223,60,0,32,0,61,216,104,220,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,164,223,60,0,32,0,61,216,105,220,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,164,223,60,0,32,0,62,216,209,221,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,168,223,60,0,32,0,61,216,104,220,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,168,223,60,0,32,0,61,216,105,220,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,168,223,60,0,32,0,62,216,209,221,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,8,39,60,0,32,0,61,216,104,220,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,8,39,60,0,32,0,61,216,105,220,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,8,39,60,0,32,0,62,216,209,221,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,128,222,60,0,32,0,61,216,104,220,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,128,222,60,0,32,0,61,216,105,220,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,128,222,60,0,32,0,62,216,209,221,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,146,222,60,0,32,0,61,216,104,220,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,146,222,60,0,32,0,61,216,105,220,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,146,222,60,0,42,0,61,216,110,220,60,0,32,0,61,216,110,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,110,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,117,221,60,0,32,0,61,216,117,221,13,32,66,38,32,0,61,0,32,0,61,216,117,221,15,254,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,255,223,13,32,66,38,60,0,32,0,61,216,117,221,13,32,64,38,32,0,61,0,32,0,61,216,117,221,15,254,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,130,220,60,0,32,0,61,216,130,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,130,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,255,223,13,32,64,38,60,0,42,0,62,216,119,221,61,216,119,220,60,0,32,0,61,216,119,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,119,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,255,223,13,32,64,38,60,0,42,0,62,216,197,222,62,216,52,221,61,216,120,220,61,216,115,220,60,0,32,0,61,216,115,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,115,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,114,220,62,216,213,221,62,216,53,221,60,0,32,0,62,216,53,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,53,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,112,220,60,0,32,0,61,216,112,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,112,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,255,223,13,32,64,38,60,0,42,0,62,216,48,221,62,216,195,222,62,216,196,222,62,216,49,221,60,0,32,0,61,216,105,220,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,124,223,60,0,32,0,61,216,104,220,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,124,223,60,0,32,0,62,216,209,221,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,124,223,60,0,42,0,61,216,124,220,60,216,133,223,62,216,54,221,60,0,32,0,62,216,209,221,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,132,223,60,0,42,0,62,216,184,221,60,0,32,0,62,216,184,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,184,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,185,221,60,0,32,0,62,216,185,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,185,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,217,221,60,0,32,0,62,216,217,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,217,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,218,221,60,0,32,0,62,216,218,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,218,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,219,221,60,0,32,0,62,216,219,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,219,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,220,221,60,0,32,0,62,216,220,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,220,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,221,221,60,0,32,0,62,216,221,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,221,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,222,221,60,0,32,0,62,216,222,221,13,32,66,38,60,0,32,0,62,216,222,221,13,32,64,38,60,0,42,0,62,216,223,221,60,0,32,0,62,216,223,221,13,32,66,38,60,0,32,0,62,216,223,221,13,32,64,38,60,0,42,0,62,216,204,221,60,0,42,0,61,216,134,220,60,0,32,0,61,216,134,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,134,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,135,220,60,0,32,0,61,216,135,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,135,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,182,222,60,0,32,0,61,216,182,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,182,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,205,221,60,0,32,0,62,216,205,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,205,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,206,221,60,0,32,0,62,216,206,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,206,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,255,223,13,32,64,38,60,0,32,0,62,216,209,221,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,175,221,60,0,32,0,61,216,104,220,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,175,221,60,0,32,0,61,216,105,220,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,175,221,60,0,32,0,62,216,209,221,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,188,221,60,0,32,0,61,216,104,220,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,188,221,60,0,32,0,61,216,105,220,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,188,221,60,0,32,0,62,216,209,221,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,189,221,60,0,32,0,61,216,104,220,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,189,221,60,0,32,0,61,216,105,220,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,189,221,60,0,42,0,60,216,195,223,60,0,32,0,60,216,195,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,195,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,255,223,13,32,64,38,60,0,42,0,61,216,131,220,61,216,122,221,61,216,116,221,61,216,111,220,60,0,32,0,61,216,111,220,13,32,66,38,60,0,32,0,61,216,111,220,13,32,64,38,60,0,42,0,62,216,214,221,60,0,32,0,62,216,214,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,214,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,215,221,60,0,32,0,62,216,215,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,215,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,58,221,60,216,199,223,247,38,60,216,194,223,60,216,204,223,60,0,32,0,60,216,204,223,13,32,66,38,32,0,61,0,32,0,60,216,204,223,15,254,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,204,223,13,32,64,38,32,0,61,0,32,0,60,216,204,223,15,254,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,255,223,13,32,64,38,60,0,42,0,60,216,196,223,60,0,32,0,60,216,196,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,196,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,255,223,13,32,64,38,60,0,42,0,61,216,163,222,60,0,32,0,61,216,163,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,163,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,255,223,13,32,64,38,60,0,42,0,60,216,202,223,60,0,32,0,60,216,202,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,202,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,255,223,13,32,64,38,60,0,42,0,249,38,60,0,32,0,249,38,13,32,66,38,32,0,61,0,32,0,249,38,15,254,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,255,223,13,32,66,38,60,0,32,0,249,38,13,32,64,38,32,0,61,0,32,0,249,38,15,254,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,255,223,13,32,64,38,60,0,42,0,60,216,203,223,60,0,32,0,60,216,203,223,13,32,66,38,32,0,61,0,32,0,60,216,203,223,15,254,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,203,223,13,32,64,38,32,0,61,0,32,0,60,216,203,223,15,254,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,255,223,13,32,64,38,60,0,42,0,61,216,180,222,60,0,32,0,61,216,180,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,180,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,181,222,60,0,32,0,61,216,181,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,181,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,56,221,60,0,32,0,62,216,56,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,56,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,60,221,60,0,32,0,62,216,60,221,13,32,66,38,60,0,32,0,62,216,60,221,13,32,64,38,60,0,42,0,62,216,61,221,60,0,32,0,62,216,61,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,61,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,62,221,60,0,32,0,62,216,62,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,62,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,57,221,60,0,32,0,62,216,57,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,57,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,216,221,60,0,32,0,62,216,216,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,216,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,192,222,61,216,204,222,60,0,32,0,62,216,209,221,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,29,221,13,32,62,216,209,221,60,0,32,0,61,216,109,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,105,220,60,0,32,0,61,216,107,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,60,0,32,0,61,216,108,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,38,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,251,223,61,0,61,216,109,220,60,216,251,223,38,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,252,223,61,0,61,216,109,220,60,216,252,223,38,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,253,223,61,0,61,216,109,220,60,216,253,223,38,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,254,223,61,0,61,216,109,220,60,216,254,223,38,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,255,223,61,0,61,216,109,220,60,216,255,223,38,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,251,223,61,0,61,216,107,220,60,216,251,223,38,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,252,223,61,0,61,216,107,220,60,216,252,223,38,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,253,223,61,0,61,216,107,220,60,216,253,223,38,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,254,223,61,0,61,216,107,220,60,216,254,223,38,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,255,223,61,0,61,216,107,220,60,216,255,223,38,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,251,223,61,0,61,216,108,220,60,216,251,223,38,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,252,223,61,0,61,216,108,220,60,216,252,223,38,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,253,223,61,0,61,216,108,220,60,216,253,223,38,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,254,223,61,0,61,216,108,220,60,216,254,223,38,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,255,223,61,0,61,216,108,220,60,216,255,223,60,0,42,0,61,216,143,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,139,220,13,32,61,216,104,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,139,220,13,32,61,216,104,220,60,0,32,0,61,216,104,220,13,32,100,39,13,32,61,216,139,220,13,32,61,216,104,220,32,0,61,0,32,0,61,216,104,220,13,32,100,39,15,254,13,32,61,216,139,220,13,32,61,216,104,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,139,220,13,32,61,216,105,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,139,220,13,32,61,216,105,220,60,0,42,0,61,216,145,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,104,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,104,220,60,0,32,0,61,216,104,220,13,32,100,39,13,32,61,216,104,220,32,0,61,0,32,0,61,216,104,220,13,32,100,39,15,254,13,32,61,216,104,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,105,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,105,220,60,0,42,0,61,216,106,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,42,0,61,216,227,221,61,216,100,220,61,216,101,220,62,216,194,222,61,216,99,220,60,0,42,0,62,216,176,221,62,216,177,221,62,216,179,221,62,216,178,221,60,0,42,0,61,216,53,220,61,216,18,220,62,216,141,221,62,216,167,221,61,216,54,220,61,216,21,220,62,216,174,221,60,0,32,0,61,216,21,220,13,32,62,216,186,221,60,0,42,0,61,216,41,220,61,216,58,220,62,216,138,221,62,216,157,221,61,216,49,220,61,216,8,220,60,0,32,0,61,216,8,220,13,32,27,43,60,0,42,0,62,216,129,221,61,216,47,220,61,216,5,220,61,216,6,220,61,216,52,220,62,216,206,222,62,216,207,222,61,216,14,220,62,216,132,221,62,216,147,221,62,216,140,221,62,216,172,221,61,216,46,220,61,216,2,220,61,216,3,220,61,216,4,220,61,216,55,220,61,216,22,220,61,216,23,220,61,216,61,220,61,216,15,220,61,216,17,220,61,216,16,220,61,216,42,220,61,216,43,220,62,216,153,221,62,216,146,221,61,216,24,220,62,216,163,221,62,216,143,221,62,216,155,221,61,216,45,220,61,216,1,220,61,216,0,220,61,216,57,220,61,216,48,220,61,216,7,220,61,216,63,220,62,216,171,221,62,216,148,221,62,216,135,221,61,216,59,220,60,0,32,0,61,216,59,220,13,32,68,39,60,0,42,0,61,216,40,220,61,216,60,220,62,216,165,221,62,216,166,221,62,216,168,221,62,216,152,221,62,216,161,221,61,216,62,220,60,0,42,0,62,216,131,221,61,216,20,220,61,216,19,220,61,216,35,220,61,216,36,220,61,216,37,220,61,216,38,220,61,216,39,220,61,216,74,221,62,216,133,221,62,216,134,221,62,216,162,221,62,216,137,221,62,216,164,221,62,216,182,222,62,216,169,221,62,216,154,221,62,216,156,221,62,216,189,222,60,0,32,0,61,216,38,220,13,32,27,43,60,0,42,0,62,216,191,222,60,0,42,0,61,216,56,220,60,0,42,0,61,216,10,220,61,216,34,220,62,216,142,221,61,216,13,220,61,216,50,220,61,216,9,220,62,216,149,221,62,216,150,221,60,0,42,0,61,216,51,220,61,216,11,220,61,216,44,220,62,216,173,221,61,216,31,220,61,216,32,220,61,216,33,220,62,216,136,221,61,216,25,220,61,216,26,220,62,216,184,222,62,216,188,222,60,0,42,0,61,216,12,220,62,216,139,221,61,216,27,220,61,216,28,220,61,216,29,220,62,216,178,222,61,216,30,220,62,216,151,221,62,216,179,222,61,216,119,221,61,216,120,221,62,216,130,221,62,216,159,221,62,216,176,222,62,216,177,222,62,216,160,221,60,0,42,0,61,216,144,220,60,216,56,223,61,216,174,220,62,216,183,222,60,216,245,223,60,216,57,223,62,216,64,221,60,216,58,223,60,216,59,223,60,216,60,223,60,216,55,223,62,216,187,222,60,0,42,0,60,216,49,223,62,216,180,222,60,216,50,223,60,216,51,223,60,216,52,223,60,216,53,223,60,216,62,223,60,216,63,223,24,38,60,216,64,223,60,216,65,223,60,216,66,223,60,216,67,223,62,216,185,222,62,216,186,222,60,216,68,223,60,0,42,0,60,216,71,223,60,216,72,223,60,216,73,223,60,216,74,223,60,216,75,223,60,216,76,223,60,216,77,223,62,216,109,221,60,216,78,223,60,216,79,223,60,216,80,223,60,216,81,223,60,216,82,223,60,216,83,223,62,216,208,222,62,216,93,221,60,216,69,223,62,216,210,222,62,216,101,221,60,0,42,0,62,216,81,221,60,216,70,223,62,216,84,221,62,216,85,221,60,216,61,223,60,216,54,223,62,216,209,222,62,216,82,221,62,216,108,221,62,216,102,221,62,216,196,221,62,216,197,221,62,216,92,221,62,216,216,222,60,216,48,223,62,216,218,222,62,216,219,222,60,0,42,0,60,216,94,223,62,216,80,221,62,216,86,221,62,216,211,222,62,216,104,221,62,216,111,221,62,216,94,221,62,216,199,221,62,216,192,221,60,216,86,223,60,216,87,223,62,216,105,221,62,216,83,221,60,216,84,223,60,216,95,223,60,216,85,223,60,216,45,223,62,216,106,221,60,216,46,223,60,216,47,223,62,216,212,222,62,216,89,221,62,216,198,221,62,216,90,221,60,216,115,223,62,216,88,221,60,216,114,223,62,216,213,222,62,216,99,221,62,216,87,221,60,216,127,223,62,216,200,221,62,216,194,221,62,216,107,221,60,0,42,0,60,216,113,223,60,216,88,223,60,216,89,223,60,216,90,223,60,216,91,223,60,216,92,223,60,216,93,223,60,216,96,223,60,216,98,223,60,216,99,223,60,216,100,223,60,216,101,223,62,216,110,221,60,216,97,223,62,216,95,221,62,216,96,221,62,216,97,221,60,0,42,0,62,216,128,221,62,216,158,221,62,216,144,221,62,216,145,221,62,216,170,221,60,0,42,0,60,216,102,223,60,216,103,223,60,216,104,223,60,216,105,223,60,216,106,223,60,216,130,223,60,216,112,223,62,216,193,221,62,216,103,221,60,216,107,223,60,216,108,223,60,216,109,223,60,216,110,223,60,216,111,223,60,0,42,0,60,216,124,223,62,216,91,221,21,38,62,216,214,222,60,216,117,223,60,216,118,223,60,216,126,223,60,216,119,223,60,216,120,223,60,216,121,223,60,216,122,223,60,216,123,223,62,216,66,221,62,216,67,221,62,216,215,222,62,216,100,221,62,216,203,221,62,216,195,221,62,216,201,221,62,216,202,221,60,0,42,0,62,216,98,221,60,216,125,223,60,216,116,223,62,216,68,221,61,216,42,221,62,216,217,222,60,216,250,223,60,0,42,0,60,216,13,223,60,216,14,223,60,216,15,223,60,216,16,223,61,216,250,221,61,216,254,221,62,216,237,221,60,0,42,0,60,216,212,223,240,38,60,216,11,223,61,216,251,221,60,216,213,223,60,216,214,223,60,216,220,223,60,216,221,223,60,216,222,223,60,0,42,0,60,216,223,223,60,216,219,223,60,216,215,223,62,216,241,221,62,216,168,222,62,216,181,222,61,216,214,222,60,216,216,223,60,216,218,223,60,216,224,223,60,216,225,223,60,216,226,223,60,216,227,223,60,216,228,223,60,216,229,223,60,216,230,223,60,216,232,223,60,216,233,223,60,216,234,223,60,216,235,223,60,216,236,223,60,216,237,223,60,216,239,223,60,216,240,223,61,216,146,220,61,216,252,221,61,216,253,221,60,0,42,0,234,38,61,216,76,221,61,216,213,222,61,216,77,221,233,38,61,216,75,221,60,0,42,0,242,38,250,38,60,216,1,223,60,216,3,223,60,216,217,223,60,216,4,223,60,216,5,223,60,216,6,223,60,216,7,223,60,216,9,223,104,38,60,216,160,223,61,216,221,222,60,216,161,223,60,216,162,223,61,216,136,220,60,216,170,223,60,0,42,0,61,216,130,222,61,216,131,222,61,216,132,222,61,216,133,222,61,216,134,222,61,216,135,222,61,216,136,222,61,216,137,222,61,216,138,222,61,216,157,222,61,216,158,222,61,216,139,222,61,216,140,222,61,216,141,222,61,216,142,222,61,216,144,222,61,216,145,222,61,216,146,222,61,216,147,222,61,216,148,222,61,216,149,222,61,216,150,222,61,216,151,222,61,216,152,222,61,216,153,222,61,216,251,222,61,216,154,222,61,216,155,222,61,216,156,222,60,216,206,223,60,216,205,223,61,216,245,222,62,216,189,221,62,216,188,221,61,216,250,222,61,216,178,222,61,216,244,222,61,216,249,222,61,216,252,222,61,216,143,222,61,216,227,222,61,216,228,222,61,216,226,222,253,38,61,216,222,222,61,216,168,222,61,216,165,222,61,216,166,222,61,216,209,222,61,216,167,222,60,0,42,0,147,38,61,216,223,222,245,38,61,216,246,222,61,216,164,222,61,216,243,222,244,38,61,216,229,222,61,216,162,222,60,0,42,0,8,39,61,216,233,222,61,216,235,222,61,216,236,222,62,216,130,222,61,216,186,220,61,216,129,222,61,216,159,222,61,216,160,222,61,216,161,222,61,216,240,222,61,216,128,222,61,216,248,222,60,0,42,0,61,216,206,222,62,216,243,221,60,0,42,0,27,35,243,35,26,35,240,35,241,35,242,35,61,216,112,221,61,216,91,221,61,216,103,221,61,216,80,221,61,216,92,221,61,216,81,221,61,216,93,221,61,216,82,221,61,216,94,221,61,216,83,221,61,216,95,221,61,216,84,221,61,216,96,221,61,216,85,221,61,216,97,221,61,216,86,221,61,216,98,221,61,216,87,221,61,216,99,221,61,216,88,221,61,216,100,221,61,216,89,221,61,216,101,221,61,216,90,221,61,216,102,221,60,0,42,0,60,216,17,223,60,216,18,223,60,216,19,223,60,216,20,223,60,216,21,223,60,216,22,223,60,216,23,223,60,216,24,223,60,216,25,223,60,216,26,223,60,216,27,223,60,216,28,223,60,216,33,223,0,38,60,216,29,223,60,216,30,223,62,216,144,222,80,43,60,216,31,223,60,216,32,223,60,216,12,223,1,38,197,38,200,38,60,216,36,223,60,216,37,223,60,216,38,223,60,216,39,223,60,216,40,223,60,216,41,223,60,216,42,223,60,216,43,223,60,216,44,223,60,216,0,223,60,216,8,223,60,216,2,223,2,38,20,38,241,38,161,38,68,39,3,38,196,38,4,38,61,216,37,221,61,216,167,220,60,216,10,223,60,0,42,0,60,216,131,223,60,216,132,223,60,216,134,223,60,216,135,223,62,216,232,221,40,39,60,216,136,223,60,216,137,223,60,216,138,223,60,216,139,223,60,216,141,223,60,216,142,223,60,216,143,223,60,216,144,223,60,216,145,223,62,216,231,221,60,216,128,223,60,216,129,223,60,216,151,223,60,216,159,223,60,216,171,223,60,0,42,0,60,216,150,223,60,216,198,223,60,216,197,223,62,216,71,221,62,216,72,221,62,216,73,221,60,0,42,0,189,38,190,38,62,216,78,221,60,216,192,223,60,216,208,223,60,216,200,223,60,216,201,223,60,216,190,223,62,216,79,221,60,216,179,223,60,216,207,223,60,216,209,223,60,216,210,223,62,216,77,221,60,216,211,223,60,216,248,223,62,216,74,221,62,216,75,221,62,216,69,221,243,38,248,38,60,216,163,223,62,216,63,221,60,216,189,223,60,216,191,223,61,216,247,222,62,216,76,221,60,0,42,0,60,216,175,223,62,216,128,222,62,216,129,222,61,216,43,221,60,216,177,223,61,216,46,221,62,216,132,222,60,216,174,223,61,216,121,221,60,216,176,223,60,216,178,223,62,216,233,221,62,216,248,221,62,216,133,222,62,216,169,222,62,216,134,222,96,38,101,38,102,38,99,38,95,38,60,216,207,220,60,216,4,220,60,216,180,223,60,0,42,0,60,216,173,223,61,216,188,221,60,216,168,223,62,216,245,221,62,216,161,222,62,216,246,221,62,216,162,222,60,0,42,0,61,216,83,220,61,216,118,221,62,216,125,221,62,216,124,221,62,216,186,221,61,216,84,220,61,216,85,220,61,216,86,220,62,216,227,221,62,216,228,221,62,216,229,221,62,216,230,221,61,216,87,220,61,216,88,220,62,216,123,221,62,216,113,222,62,216,114,222,62,216,115,222,61,216,89,220,61,216,90,220,62,216,173,222,61,216,91,220,61,216,92,220,61,216,93,220,61,216,205,222,60,216,146,223,62,216,116,222,61,216,94,220,61,216,95,220,62,216,126,221,62,216,127,221,61,216,96,220,61,216,97,220,62,216,112,222,61,216,98,220,62,216,174,222,61,216,81,220,61,216,82,220,60,216,169,223,60,216,147,223,62,216,226,221,62,216,150,222,209,38,61,216,255,220,61,216,132,220,61,216,141,220,61,216,142,220,60,0,42,0,61,216,7,221,61,216,8,221,61,216,9,221,61,216,10,221,61,216,226,220,61,216,227,220,61,216,239,220,61,216,20,221,61,216,21,221,60,0,42,0,60,216,188,223,60,216,181,223,60,216,182,223,60,216,153,223,60,216,154,223,60,216,155,223,60,216,164,223,60,216,167,223,61,216,251,220,60,0,42,0,60,216,183,223,62,216,151,222,60,216,184,223,60,216,185,223,60,216,186,223,60,216,187,223,62,216,149,222,62,216,65,221,62,216,152,222,62,216,135,222,62,216,136,222,60,0,42,0,61,216,241,220,61,216,242,220,14,38,61,216,222,220,61,216,223,220,61,216,224,220,60,0,42,0,61,216,11,221,62,216,171,222,61,216,12,221,61,216,187,220,61,216,165,221,61,216,168,221,40,35,61,216,177,221,61,216,178,221,61,216,189,220,61,216,190,220,61,216,191,220,61,216,192,220,62,216,238,221,60,0,42,0,60,216,165,223,60,216,158,223,61,216,253,220,60,216,172,223,61,216,250,220,61,216,247,220,61,216,248,220,61,216,249,220,61,216,252,220,61,216,13,221,61,216,14,221,61,216,111,221,61,216,161,220,61,216,38,221,60,216,238,223,62,216,148,222,60,0,42,0,61,216,212,220,61,216,213,220,61,216,214,220,61,216,215,220,61,216,216,220,61,216,217,220,61,216,218,220,61,216,211,220,61,216,210,220,61,216,195,220,61,216,220,220,61,216,196,220,61,216,240,220,61,216,222,221,61,216,209,220,61,216,22,221,60,216,247,223,60,0,42,0,61,216,176,220,62,216,153,222,61,216,180,220,61,216,181,220,61,216,182,220,61,216,183,220,61,216,184,220,61,216,179,220,62,216,254,221,61,216,185,220,60,0,42,0,9,39,61,216,231,220,61,216,232,220,61,216,233,220,61,216,228,220,61,216,229,220,61,216,230,220,61,216,235,220,61,216,234,220,61,216,236,220,61,216,237,220,61,216,238,220,61,216,243,221,60,0,42,0,15,39,18,39,61,216,139,221,61,216,138,221,61,216,140,221,61,216,141,221,61,216,221,220,60,0,42,0,61,216,188,220,61,216,193,220,61,216,194,220,61,216,194,221,61,216,197,220,61,216,198,220,61,216,210,221,61,216,211,221,61,216,199,220,61,216,200,220,61,216,201,220,61,216,202,220,61,216,203,220,61,216,204,220,61,216,205,220,61,216,206,220,61,216,135,221,61,216,207,220,61,216,208,220,2,39,61,216,195,221,61,216,196,221,61,216,209,221,60,0,42,0,61,216,18,221,61,216,19,221,61,216,15,221,61,216,16,221,61,216,17,221,61,216,221,221,60,0,42,0,61,216,40,221,62,216,147,222,207,38,146,38,61,216,224,222,61,216,225,221,148,38,61,216,163,220,62,216,131,222,60,216,249,223,61,216,225,222,62,216,154,222,61,216,39,221,62,216,155,222,61,216,41,221,153,38,61,216,220,221,150,38,62,216,175,221,61,216,23,221,211,38,62,216,157,222,62,216,240,221,62,216,242,221,62,216,156,222,60,0,42,0,151,38,62,216,234,221,62,216,235,221,62,216,236,221,61,216,44,221,61,216,45,221,61,216,225,220,60,0,42,0,61,216,137,220,62,216,120,222,61,216,138,220,62,216,121,222,62,216,124,222,62,216,122,222,62,216,123,222,60,0,42,0,61,216,170,222,61,216,215,222,62,216,158,222,62,216,159,222,61,216,207,222,61,216,203,222,62,216,145,222,61,216,189,222,62,216,160,222,61,216,191,222,61,216,193,222,62,216,164,222,62,216,146,222,62,216,244,221,62,216,247,221,62,216,249,221,62,216,250,221,62,216,251,221,62,216,163,222,62,216,252,221,62,216,231,222,62,216,165,222,62,216,253,221,62,216,239,221,61,216,210,222,60,0,42,0,61,216,172,222,176,38,62,216,166,222,177,38,62,216,255,221,62,216,172,222,61,216,255,221,62,216,167,222,62,216,170,222,60,0,42,0,60,216,231,223,61,216,174,222,61,216,176,222,127,38,61,216,185,222,61,216,186,222,61,216,187,222,61,216,188,222,61,216,190,222,61,216,194,222,61,216,195,222,61,216,196,222,61,216,197,222,60,0,42,0,160,38,61,216,184,222,212,38,61,216,171,222,61,216,179,222,61,216,173,222,61,216,175,222,61,216,177,222,61,216,183,222,61,216,245,220,61,216,30,221,34,38,35,38,60,0,42,0,6,43,151,33,161,39,152,33,7,43,153,33,5,43,150,33,149,33,148,33,169,33,170,33,52,41,53,41,61,216,3,221,61,216,4,221,61,216,25,221,61,216,26,221,61,216,27,221,61,216,28,221,61,216,29,221,60,0,42,0,61,216,208,222,155,38,61,216,73,221,33,39,56,38,47,38,29,39,38,38,42,38,46,38,61,216,78,221,61,216,47,221,62,216,175,222,60,0,42,0,72,38,73,38,74,38,75,38,76,38,77,38,78,38,79,38,80,38,81,38,82,38,83,38,206,38,60,0,42,0,61,216,0,221,61,216,1,221,61,216,2,221,182,37,233,35,237,35,239,35,192,37,234,35,238,35,61,216,60,221,235,35,61,216,61,221,236,35,248,35,249,35,250,35,207,35,60,216,166,223,61,216,5,221,61,216,6,221,61,216,246,220,61,216,220,222,61,216,243,220,61,216,244,220,60,0,42,0,64,38,66,38,167,38,60,0,42,0,22,39,149,39,150,39,151,39,61,216,240,223,126,38,60,0,42,0,60,32,73,32,83,39,84,39,85,39,87,39,48,48,60,0,42,0,61,216,177,220,61,216,178,220,60,0,42,0,149,38,123,38,156,38,61,216,49,221,61,216,219,220,61,216,48,221,85,43,5,39,17,38,20,39,76,39,78,39,176,39,191,39,61,48,51,39,52,39,71,39,169,0,174,0,34,33,60,0,32,0,39,0,35,0,227,32,39,0,32,0,61,0,32,0,39,0,35,0,15,254,227,32,39,0,60,0,32,0,39,0,42,0,227,32,39,0,32,0,61,0,32,0,39,0,42,0,15,254,227,32,39,0,60,0,32,0,48,0,227,32,32,0,61,0,32,0,48,0,15,254,227,32,60,0,32,0,49,0,227,32,32,0,61,0,32,0,49,0,15,254,227,32,60,0,32,0,50,0,227,32,32,0,61,0,32,0,50,0,15,254,227,32,60,0,32,0,51,0,227,32,32,0,61,0,32,0,51,0,15,254,227,32,60,0,32,0,52,0,227,32,32,0,61,0,32,0,52,0,15,254,227,32,60,0,32,0,53,0,227,32,32,0,61,0,32,0,53,0,15,254,227,32,60,0,32,0,54,0,227,32,32,0,61,0,32,0,54,0,15,254,227,32,60,0,32,0,55,0,227,32,32,0,61,0,32,0,55,0,15,254,227,32,60,0,32,0,56,0,227,32,32,0,61,0,32,0,56,0,15,254,227,32,60,0,32,0,57,0,227,32,32,0,61,0,32,0,57,0,15,254,227,32,60,0,42,0,61,216,31,221,60,0,42,0,61,216,32,221,61,216,33,221,61,216,34,221,61,216,35,221,61,216,36,221,60,216,112,221,60,216,142,221,60,216,113,221,60,216,145,221,60,216,146,221,60,216,147,221,57,33,60,216,148,221,194,36,60,216,149,221,60,216,150,221,60,216,126,221,60,216,151,221,60,216,127,221,60,216,152,221,60,216,153,221,60,216,154,221,60,216,1,222,60,216,2,222,60,216,55,222,60,216,54,222,60,216,47,222,60,216,80,222,60,216,57,222,60,216,26,222,60,216,50,222,60,216,81,222,60,216,56,222,60,216,52,222,60,216,51,222,151,50,153,50,60,216,58,222,60,216,53,222,60,0,42,0,61,216,52,221,61,216,224,223,61,216,225,223,61,216,226,223,61,216,53,221,61,216,227,223,61,216,228,223,171,38,170,38,61,216,229,223,61,216,231,223,61,216,232,223,61,216,233,223,61,216,230,223,61,216,234,223,61,216,235,223,27,43,28,43,252,37,251,37,254,37,253,37,170,37,171,37,61,216,54,221,61,216,55,221,61,216,56,221,61,216,57,221,61,216,58,221,61,216,59,221,61,216,160,220,61,216,24,221,61,216,51,221,61,216,50,221,60,0,42,0,60,216,193,223,61,216,169,222,60,216,140,223,60,216,244,223,60,216,243,223,60,0,32,0,60,216,243,223,13,32,60,216,8,223,32,0,61,0,32,0,60,216,243,223,15,254,13,32,60,216,8,223,60,0,32,0,60,216,243,223,13,32,167,38,32,0,61,0,32,0,60,216,243,223,15,254,13,32,167,38,60,0,32,0,60,216,244,223,13,32,32,38,60,0,42,0,60,216,230,221,60,216,231,221,60,216,232,221,60,216,233,221,60,216,234,221,60,216,235,221,60,216,236,221,60,216,237,221,60,216,238,221,60,216,239,221,60,216,240,221,60,216,241,221,60,216,242,221,60,216,243,221,60,216,244,221,60,216,245,221,60,216,246,221,60,216,247,221,60,216,248,221,60,216,249,221,60,216,250,221,60,216,251,221,60,216,252,221,60,216,253,221,60,216,254,221,60,216,255,221,60,0,32,0,60,216,244,223,64,219,103,220,64,219,98,220,64,219,101,220,64,219,110,220,64,219,103,220,64,219,127,220,60,0,32,0,60,216,244,223,64,219,103,220,64,219,98,220,64,219,115,220,64,219,99,220,64,219,116,220,64,219,127,220,60,0,32,0,60,216,244,223,64,219,103,220,64,219,98,220,64,219,119,220,64,219,108,220,64,219,115,220,64,219,127,220,38,0,32,0,62,216,209,221,32,0,60,0,60,0,32,0,61,216,113,220,38,0,32,0,61,216,104,220,32,0,60,0,60,0,32,0,62,216,212,221,32,0,60,0,60,0,62,216,212,221,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,255,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,255,223,13,32,66,38,38,0,32,0,61,216,105,220,32,0,60,0,60,0,32,0,62,216,212,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,255,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,255,223,13,32,64,38,0,0,240,223,200,153,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,39,0,1,0,39,0,61,0,39,0,2,0,39,0,61,0,39,0,3,0,39,0,61,0,39,0,4,0,39,0,61,0,39,0,5,0,39,0,61,0,39,0,6,0,39,0,61,0,39,0,7,0,39,0,61,0,39,0,8,0,39,0,61,0,39,0,14,0,39,0,61,0,39,0,15,0,39,0,61,0,39,0,16,0,39,0,61,0,39,0,17,0,39,0,61,0,39,0,18,0,39,0,61,0,39,0,19,0,39,0,61,0,39,0,20,0,39,0,61,0,39,0,21,0,39,0,61,0,39,0,22,0,39,0,61,0,39,0,23,0,39,0,61,0,39,0,24,0,39,0,61,0,39,0,25,0,39,0,61,0,39,0,26,0,39,0,61,0,39,0,27,0,39,0,61,0,39,0,28,0,39,0,61,0,39,0,29,0,39,0,61,0,39,0,30,0,39,0,61,0,39,0,31,0,39,0,61,0,39,0,127,0,39,0,61,0,39,0,128,0,39,0,61,0,39,0,129,0,39,0,61,0,39,0,130,0,39,0,61,0,39,0,131,0,39,0,61,0,39,0,132,0,39,0,61,0,39,0,134,0,39,0,61,0,39,0,135,0,39,0,61,0,39,0,136,0,39,0,61,0,39,0,137,0,39,0,61,0,39,0,138,0,39,0,61,0,39,0,139,0,39,0,61,0,39,0,140,0,39,0,61,0,39,0,141,0,39,0,61,0,39,0,142,0,39,0,61,0,39,0,143,0,39,0,61,0,39,0,144,0,39,0,61,0,39,0,145,0,39,0,61,0,39,0,146,0,39,0,61,0,39,0,147,0,39,0,61,0,39,0,148,0,39,0,61,0,39,0,149,0,39,0,61,0,39,0,150,0,39,0,61,0,39,0,151,0,39,0,61,0,39,0,152,0,39,0,61,0,39,0,153,0,39,0,61,0,39,0,154,0,39,0,61,0,39,0,155,0,39,0,61,0,39,0,156,0,39,0,61,0,39,0,157,0,39,0,61,0,39,0,158,0,39,0,61,0,39,0,159,0,39,0,61,0,39,0,173,0,39,0,61,0,79,3,61,0,136,4,61,0,137,4,61,0,145,5,61,0,146,5,61,0,147,5,61,0,148,5,61,0,149,5,61,0,150,5,61,0,151,5,61,0,152,5,61,0,153,5,61,0,154,5,61,0,155,5,61,0,156,5,61,0,157,5,61,0,158,5,61,0,159,5,61,0,160,5,61,0,161,5,61,0,162,5,61,0,163,5,61,0,164,5,61,0,165,5,61,0,166,5,61,0,167,5,61,0,168,5,61,0,169,5,61,0,170,5,61,0,171,5,61,0,172,5,61,0,173,5,61,0,174,5,61,0,175,5,61,0,189,5,61,0,196,5,61,0,197,5,61,0,39,0,0,6,39,0,61,0,39,0,1,6,39,0,61,0,39,0,2,6,39,0,61,0,39,0,3,6,39,0,61,0,39,0,4,6,39,0,61,0,39,0,5,6,39,0,61,0,16,6,61,0,17,6,61,0,18,6,61,0,19,6,61,0,20,6,61,0,21,6,61,0,22,6,61,0,23,6,61,0,24,6,61,0,25,6,61,0,26,6,61,0,39,0,28,6,39,0,61,0,14,32,64,6,14,32,61,0,214,6,61,0,215,6,61,0,216,6,61,0,217,6,61,0,218,6,61,0,219,6,61,0,220,6,61,0,39,0,221,6,39,0,61,0,223,6,61,0,224,6,61,0,225,6,61,0,226,6,61,0,227,6,61,0,228,6,61,0,231,6,61,0,232,6,61,0,234,6,61,0,235,6,61,0,236,6,61,0,237,6,61,0,39,0,15,7,39,0,61,0,64,7,61,0,67,7,61,0,68,7,61,0,71,7,61,0,72,7,61,0,73,7,61,0,74,7,61,0,14,32,250,7,14,32,61,0,39,0,144,8,39,0,61,0,39,0,145,8,39,0,61,0,152,8,61,0,153,8,61,0,154,8,61,0,155,8,61,0,156,8,61,0,157,8,61,0,202,8,61,0,203,8,61,0,204,8,61,0,205,8,61,0,206,8,61,0,207,8,61,0,208,8,61,0,209,8,61,0,210,8,61,0,211,8,61,0,212,8,61,0,213,8,61,0,214,8,61,0,215,8,61,0,216,8,61,0,217,8,61,0,218,8,61,0,219,8,61,0,220,8,61,0,221,8,61,0,222,8,61,0,223,8,61,0,224,8,61,0,225,8,61,0,39,0,226,8,39,0,61,0,234,8,61,0,235,8,61,0,236,8,61,0,237,8,61,0,238,8,61,0,239,8,61,0,243,8,61,0,81,9,61,0,82,9,61,0,24,15,61,0,25,15,61,0,53,15,61,0,55,15,61,0,62,15,61,0,63,15,61,0,134,15,61,0,135,15,61,0,198,15,61,0,180,23,61,0,181,23,61,0,211,23,61,0,10,24,61,0,11,24,61,0,12,24,61,0,13,24,61,0,39,0,14,24,39,0,61,0,15,24,61,0,127,26,61,0,107,27,61,0,108,27,61,0,109,27,61,0,110,27,61,0,111,27,61,0,112,27,61,0,113,27,61,0,114,27,61,0,115,27,61,0,208,28,61,0,209,28,61,0,210,28,61,0,211,28,61,0,212,28,61,0,213,28,61,0,214,28,61,0,215,28,61,0,216,28,61,0,217,28,61,0,218,28,61,0,219,28,61,0,220,28,61,0,221,28,61,0,222,28,61,0,223,28,61,0,224,28,61,0,225,28,61,0,226,28,61,0,227,28,61,0,228,28,61,0,229,28,61,0,230,28,61,0,231,28,61,0,232,28,61,0,244,28,61,0,247,28,61,0,248,28,61,0,249,28,61,0,39,0,11,32,39,0,61,0,39,0,12,32,39,0,61,0,39,0,13,32,39,0,61,0,39,0,14,32,39,0,61,0,39,0,15,32,39,0,61,0,39,0,42,32,39,0,61,0,39,0,43,32,39,0,61,0,39,0,44,32,39,0,61,0,39,0,45,32,39,0,61,0,39,0,46,32,39,0,61,0,39,0,96,32,39,0,61,0,39,0,97,32,39,0,61,0,39,0,98,32,39,0,61,0,39,0,99,32,39,0,61,0,39,0,100,32,39,0,61,0,39,0,102,32,39,0,61,0,39,0,103,32,39,0,61,0,39,0,104,32,39,0,61,0,39,0,105,32,39,0,61,0,39,0,106,32,39,0,61,0,39,0,107,32,39,0,61,0,39,0,108,32,39,0,61,0,39,0,109,32,39,0,61,0,39,0,110,32,39,0,61,0,39,0,111,32,39,0,61,0,127,45,61,0,112,166,61,0,113,166,61,0,114,166,61,0,224,168,61,0,225,168,61,0,226,168,61,0,227,168,61,0,228,168,61,0,229,168,61,0,230,168,61,0,231,168,61,0,232,168,61,0,233,168,61,0,234,168,61,0,235,168,61,0,236,168,61,0,237,168,61,0,238,168,61,0,239,168,61,0,240,168,61,0,241,168,61,0,0,254,61,0,1,254,61,0,2,254,61,0,3,254,61,0,4,254,61,0,5,254,61,0,6,254,61,0,7,254,61,0,8,254,61,0,9,254,61,0,10,254,61,0,11,254,61,0,12,254,61,0,13,254,61,0,14,254,61,0,15,254,61,0,33,254,61,0,35,254,61,0,36,254,61,0,37,254,61,0,38,254,61,0,40,254,61,0,42,254,61,0,43,254,61,0,44,254,61,0,45,254,61,0,47,254,61,0,14,32,115,254,14,32,61,0,39,0,255,254,39,0,61,0,39,0,249,255,39,0,61,0,39,0,250,255,39,0,61,0,39,0,251,255,39,0,61,0,0,216,224,222,61,0,3,216,253,222,61,0,3,216,254,222,61,0,3,216,255,222,61,0,39,0,4,216,189,220,39,0,61,0,39,0,4,216,205,220,39,0,61,0,4,216,102,223,61,0,4,216,103,223,61,0,4,216,104,223,61,0,4,216,105,223,61,0,4,216,106,223,61,0,4,216,107,223,61,0,4,216,108,223,61,0,4,216,112,223,61,0,4,216,113,223,61,0,4,216,114,223,61,0,4,216,115,223,61,0,4,216,116,223,61,0,39,0,13,216,48,220,39,0,61,0,39,0,13,216,49,220,39,0,61,0,39,0,13,216,50,220,39,0,61,0,39,0,13,216,51,220,39,0,61,0,39,0,13,216,52,220,39,0,61,0,39,0,13,216,53,220,39,0,61,0,39,0,13,216,54,220,39,0,61,0,39,0,13,216,55,220,39,0,61,0,39,0,13,216,56,220,39,0,61,0,39,0,13,216,57,220,39,0,61,0,39,0,13,216,58,220,39,0,61,0,39,0,13,216,59,220,39,0,61,0,39,0,13,216,60,220,39,0,61,0,39,0,13,216,61,220,39,0,61,0,39,0,13,216,62,220,39,0,61,0,39,0,13,216,63,220,39,0,61,0,13,216,64,220,61,0,13,216,71,220,61,0,13,216,72,220,61,0,13,216,73,220,61,0,13,216,74,220,61,0,13,216,75,220,61,0,13,216,76,220,61,0,13,216,77,220,61,0,13,216,78,220,61,0,13,216,79,220,61,0,13,216,80,220,61,0,13,216,81,220,61,0,13,216,82,220,61,0,13,216,83,220,61,0,13,216,84,220,61,0,13,216,85,220,61,0,27,216,228,223,61,0,39,0,47,216,160,220,39,0,61,0,39,0,47,216,161,220,39,0,61,0,39,0,47,216,162,220,39,0,61,0,39,0,47,216,163,220,39,0,61,0,51,216,0,223,61,0,51,216,1,223,61,0,51,216,2,223,61,0,51,216,3,223,61,0,51,216,4,223,61,0,51,216,5,223,61,0,51,216,6,223,61,0,51,216,7,223,61,0,51,216,8,223,61,0,51,216,9,223,61,0,51,216,10,223,61,0,51,216,11,223,61,0,51,216,12,223,61,0,51,216,13,223,61,0,51,216,14,223,61,0,51,216,15,223,61,0,51,216,16,223,61,0,51,216,17,223,61,0,51,216,18,223,61,0,51,216,19,223,61,0,51,216,20,223,61,0,51,216,21,223,61,0,51,216,22,223,61,0,51,216,23,223,61,0,51,216,24,223,61,0,51,216,25,223,61,0,51,216,26,223,61,0,51,216,27,223,61,0,51,216,28,223,61,0,51,216,29,223,61,0,51,216,30,223,61,0,51,216,31,223,61,0,51,216,32,223,61,0,51,216,33,223,61,0,51,216,34,223,61,0,51,216,35,223,61,0,51,216,36,223,61,0,51,216,37,223,61,0,51,216,38,223,61,0,51,216,39,223,61,0,51,216,40,223,61,0,51,216,41,223,61,0,51,216,42,223,61,0,51,216,43,223,61,0,51,216,44,223,61,0,51,216,45,223,61,0,51,216,48,223,61,0,51,216,49,223,61,0,51,216,50,223,61,0,51,216,51,223,61,0,51,216,52,223,61,0,51,216,53,223,61,0,51,216,54,223,61,0,51,216,55,223,61,0,51,216,56,223,61,0,51,216,57,223,61,0,51,216,58,223,61,0,51,216,59,223,61,0,51,216,60,223,61,0,51,216,61,223,61,0,51,216,62,223,61,0,51,216,63,223,61,0,51,216,64,223,61,0,51,216,65,223,61,0,51,216,66,223,61,0,51,216,67,223,61,0,51,216,68,223,61,0,51,216,69,223,61,0,51,216,70,223,61,0,52,216,101,221,61,0,52,216,102,221,61,0,52,216,103,221,61,0,52,216,104,221,61,0,52,216,105,221,61,0,52,216,109,221,61,0,52,216,110,221,61,0,52,216,111,221,61,0,52,216,112,221,61,0,52,216,113,221,61,0,52,216,114,221,61,0,39,0,52,216,115,221,39,0,61,0,39,0,52,216,116,221,39,0,61,0,39,0,52,216,117,221,39,0,61,0,39,0,52,216,118,221,39,0,61,0,39,0,52,216,119,221,39,0,61,0,39,0,52,216,120,221,39,0,61,0,39,0,52,216,121,221,39,0,61,0,39,0,52,216,122,221,39,0,61,0,52,216,123,221,61,0,52,216,124,221,61,0,52,216,125,221,61,0,52,216,126,221,61,0,52,216,127,221,61,0,52,216,128,221,61,0,52,216,129,221,61,0,52,216,130,221,61,0,52,216,133,221,61,0,52,216,134,221,61,0,52,216,135,221,61,0,52,216,136,221,61,0,52,216,137,221,61,0,52,216,138,221,61,0,52,216,139,221,61,0,52,216,170,221,61,0,52,216,171,221,61,0,52,216,172,221,61,0,52,216,173,221,61,0,52,216,66,222,61,0,52,216,67,222,61,0,52,216,68,222,61,0,54,216,0,222,61,0,54,216,1,222,61,0,54,216,2,222,61,0,54,216,3,222,61,0,54,216,4,222,61,0,54,216,5,222,61,0,54,216,6,222,61,0,54,216,7,222,61,0,54,216,8,222,61,0,54,216,9,222,61,0,54,216,10,222,61,0,54,216,11,222,61,0,54,216,12,222,61,0,54,216,13,222,61,0,54,216,14,222,61,0,54,216,15,222,61,0,54,216,16,222,61,0,54,216,17,222,61,0,54,216,18,222,61,0,54,216,19,222,61,0,54,216,20,222,61,0,54,216,21,222,61,0,54,216,22,222,61,0,54,216,23,222,61,0,54,216,24,222,61,0,54,216,25,222,61,0,54,216,26,222,61,0,54,216,27,222,61,0,54,216,28,222,61,0,54,216,29,222,61,0,54,216,30,222,61,0,54,216,31,222,61,0,54,216,32,222,61,0,54,216,33,222,61,0,54,216,34,222,61,0,54,216,35,222,61,0,54,216,36,222,61,0,54,216,37,222,61,0,54,216,38,222,61,0,54,216,39,222,61,0,54,216,40,222,61,0,54,216,41,222,61,0,54,216,42,222,61,0,54,216,43,222,61,0,54,216,44,222,61,0,54,216,45,222,61,0,54,216,46,222,61,0,54,216,47,222,61,0,54,216,48,222,61,0,54,216,49,222,61,0,54,216,50,222,61,0,54,216,51,222,61,0,54,216,52,222,61,0,54,216,53,222,61,0,54,216,54,222,61,0,54,216,59,222,61,0,54,216,60,222,61,0,54,216,61,222,61,0,54,216,62,222,61,0,54,216,63,222,61,0,54,216,64,222,61,0,54,216,65,222,61,0,54,216,66,222,61,0,54,216,67,222,61,0,54,216,68,222,61,0,54,216,69,222,61,0,54,216,70,222,61,0,54,216,71,222,61,0,54,216,72,222,61,0,54,216,73,222,61,0,54,216,74,222,61,0,54,216,75,222,61,0,54,216,76,222,61,0,54,216,77,222,61,0,54,216,78,222,61,0,54,216,79,222,61,0,54,216,80,222,61,0,54,216,81,222,61,0,54,216,82,222,61,0,54,216,83,222,61,0,54,216,84,222,61,0,54,216,85,222,61,0,54,216,86,222,61,0,54,216,87,222,61,0,54,216,88,222,61,0,54,216,89,222,61,0,54,216,90,222,61,0,54,216,91,222,61,0,54,216,92,222,61,0,54,216,93,222,61,0,54,216,94,222,61,0,54,216,95,222,61,0,54,216,96,222,61,0,54,216,97,222,61,0,54,216,98,222,61,0,54,216,99,222,61,0,54,216,100,222,61,0,54,216,101,222,61,0,54,216,102,222,61,0,54,216,103,222,61,0,54,216,104,222,61,0,54,216,105,222,61,0,54,216,106,222,61,0,54,216,107,222,61,0,54,216,108,222,61,0,54,216,117,222,61,0,54,216,132,222,61,0,54,216,155,222,61,0,54,216,156,222,61,0,54,216,157,222,61,0,54,216,158,222,61,0,54,216,159,222,61,0,54,216,161,222,61,0,54,216,162,222,61,0,54,216,163,222,61,0,54,216,164,222,61,0,54,216,165,222,61,0,54,216,166,222,61,0,54,216,167,222,61,0,54,216,168,222,61,0,54,216,169,222,61,0,54,216,170,222,61,0,54,216,171,222,61,0,54,216,172,222,61,0,54,216,173,222,61,0,54,216,174,222,61,0,54,216,175,222,61,0,58,216,208,220,61,0,58,216,209,220,61,0,58,216,210,220,61,0,58,216,211,220,61,0,58,216,212,220,61,0,58,216,213,220,61,0,58,216,214,220,61,0,39,0,64,219,1,220,39,0,61,0,39,0,64,219,32,220,39,0,61,0,39,0,64,219,33,220,39,0,61,0,39,0,64,219,34,220,39,0,61,0,39,0,64,219,35,220,39,0,61,0,39,0,64,219,36,220,39,0,61,0,39,0,64,219,37,220,39,0,61,0,39,0,64,219,38,220,39,0,61,0,39,0,64,219,39,220,39,0,61,0,39,0,64,219,40,220,39,0,61,0,39,0,64,219,41,220,39,0,61,0,39,0,64,219,42,220,39,0,61,0,39,0,64,219,43,220,39,0,61,0,39,0,64,219,44,220,39,0,61,0,39,0,64,219,45,220,39,0,61,0,39,0,64,219,46,220,39,0,61,0,39,0,64,219,47,220,39,0,61,0,39,0,64,219,48,220,39,0,61,0,39,0,64,219,49,220,39,0,61,0,39,0,64,219,50,220,39,0,61,0,39,0,64,219,51,220,39,0,61,0,39,0,64,219,52,220,39,0,61,0,39,0,64,219,53,220,39,0,61,0,39,0,64,219,54,220,39,0,61,0,39,0,64,219,55,220,39,0,61,0,39,0,64,219,56,220,39,0,61,0,39,0,64,219,57,220,39,0,61,0,39,0,64,219,58,220,39,0,61,0,39,0,64,219,59,220,39,0,61,0,39,0,64,219,60,220,39,0,61,0,39,0,64,219,61,220,39,0,61,0,39,0,64,219,62,220,39,0,61,0,39,0,64,219,63,220,39,0,61,0,39,0,64,219,64,220,39,0,61,0,39,0,64,219,65,220,39,0,61,0,39,0,64,219,66,220,39,0,61,0,39,0,64,219,67,220,39,0,61,0,39,0,64,219,68,220,39,0,61,0,39,0,64,219,69,220,39,0,61,0,39,0,64,219,70,220,39,0,61,0,39,0,64,219,71,220,39,0,61,0,39,0,64,219,72,220,39,0,61,0,39,0,64,219,73,220,39,0,61,0,39,0,64,219,74,220,39,0,61,0,39,0,64,219,75,220,39,0,61,0,39,0,64,219,76,220,39,0,61,0,39,0,64,219,77,220,39,0,61,0,39,0,64,219,78,220,39,0,61,0,39,0,64,219,79,220,39,0,61,0,39,0,64,219,80,220,39,0,61,0,39,0,64,219,81,220,39,0,61,0,39,0,64,219,82,220,39,0,61,0,39,0,64,219,83,220,39,0,61,0,39,0,64,219,84,220,39,0,61,0,39,0,64,219,85,220,39,0,61,0,39,0,64,219,86,220,39,0,61,0,39,0,64,219,87,220,39,0,61,0,39,0,64,219,88,220,39,0,61,0,39,0,64,219,89,220,39,0,61,0,39,0,64,219,90,220,39,0,61,0,39,0,64,219,91,220,39,0,61,0,39,0,64,219,92,220,39,0,61,0,39,0,64,219,93,220,39,0,61,0,39,0,64,219,94,220,39,0,61,0,39,0,64,219,95,220,39,0,61,0,39,0,64,219,96,220,39,0,61,0,39,0,64,219,97,220,39,0,61,0,39,0,64,219,98,220,39,0,61,0,39,0,64,219,99,220,39,0,61,0,39,0,64,219,100,220,39,0,61,0,39,0,64,219,101,220,39,0,61,0,39,0,64,219,102,220,39,0,61,0,39,0,64,219,103,220,39,0,61,0,39,0,64,219,104,220,39,0,61,0,39,0,64,219,105,220,39,0,61,0,39,0,64,219,106,220,39,0,61,0,39,0,64,219,107,220,39,0,61,0,39,0,64,219,108,220,39,0,61,0,39,0,64,219,109,220,39,0,61,0,39,0,64,219,110,220,39,0,61,0,39,0,64,219,111,220,39,0,61,0,39,0,64,219,112,220,39,0,61,0,39,0,64,219,113,220,39,0,61,0,39,0,64,219,114,220,39,0,61,0,39,0,64,219,115,220,39,0,61,0,39,0,64,219,116,220,39,0,61,0,39,0,64,219,117,220,39,0,61,0,39,0,64,219,118,220,39,0,61,0,39,0,64,219,119,220,39,0,61,0,39,0,64,219,120,220,39,0,61,0,39,0,64,219,121,220,39,0,61,0,39,0,64,219,122,220,39,0,61,0,39,0,64,219,123,220,39,0,61,0,39,0,64,219,124,220,39,0,61,0,39,0,64,219,125,220,39,0,61,0,39,0,64,219,126,220,39,0,61,0,39,0,64,219,127,220,39,0,61,0,64,219,0,221,61,0,64,219,1,221,61,0,64,219,2,221,61,0,64,219,3,221,61,0,64,219,4,221,61,0,64,219,5,221,61,0,64,219,6,221,61,0,64,219,7,221,61,0,64,219,8,221,61,0,64,219,9,221,61,0,64,219,10,221,61,0,64,219,11,221,61,0,64,219,12,221,61,0,64,219,13,221,61,0,64,219,14,221,61,0,64,219,15,221,61,0,64,219,16,221,61,0,64,219,17,221,61,0,64,219,18,221,61,0,64,219,19,221,61,0,64,219,20,221,61,0,64,219,21,221,61,0,64,219,22,221,61,0,64,219,23,221,61,0,64,219,24,221,61,0,64,219,25,221,61,0,64,219,26,221,61,0,64,219,27,221,61,0,64,219,28,221,61,0,64,219,29,221,61,0,64,219,30,221,61,0,64,219,31,221,61,0,64,219,32,221,61,0,64,219,33,221,61,0,64,219,34,221,61,0,64,219,35,221,61,0,64,219,36,221,61,0,64,219,37,221,61,0,64,219,38,221,61,0,64,219,39,221,61,0,64,219,40,221,61,0,64,219,41,221,61,0,64,219,42,221,61,0,64,219,43,221,61,0,64,219,44,221,61,0,64,219,45,221,61,0,64,219,46,221,61,0,64,219,47,221,61,0,64,219,48,221,61,0,64,219,49,221,61,0,64,219,50,221,61,0,64,219,51,221,61,0,64,219,52,221,61,0,64,219,53,221,61,0,64,219,54,221,61,0,64,219,55,221,61,0,64,219,56,221,61,0,64,219,57,221,61,0,64,219,58,221,61,0,64,219,59,221,61,0,64,219,60,221,61,0,64,219,61,221,61,0,64,219,62,221,61,0,64,219,63,221,61,0,64,219,64,221,61,0,64,219,65,221,61,0,64,219,66,221,61,0,64,219,67,221,61,0,64,219,68,221,61,0,64,219,69,221,61,0,64,219,70,221,61,0,64,219,71,221,61,0,64,219,72,221,61,0,64,219,73,221,61,0,64,219,74,221,61,0,64,219,75,221,61,0,64,219,76,221,61,0,64,219,77,221,61,0,64,219,78,221,61,0,64,219,79,221,61,0,64,219,80,221,61,0,64,219,81,221,61,0,64,219,82,221,61,0,64,219,83,221,61,0,64,219,84,221,61,0,64,219,85,221,61,0,64,219,86,221,61,0,64,219,87,221,61,0,64,219,88,221,61,0,64,219,89,221,61,0,64,219,90,221,61,0,64,219,91,221,61,0,64,219,92,221,61,0,64,219,93,221,61,0,64,219,94,221,61,0,64,219,95,221,61,0,64,219,96,221,61,0,64,219,97,221,61,0,64,219,98,221,61,0,64,219,99,221,61,0,64,219,100,221,61,0,64,219,101,221,61,0,64,219,102,221,61,0,64,219,103,221,61,0,64,219,104,221,61,0,64,219,105,221,61,0,64,219,106,221,61,0,64,219,107,221,61,0,64,219,108,221,61,0,64,219,109,221,61,0,64,219,110,221,61,0,64,219,111,221,61,0,64,219,112,221,61,0,64,219,113,221,61,0,64,219,114,221,61,0,64,219,115,221,61,0,64,219,116,221,61,0,64,219,117,221,61,0,64,219,118,221,61,0,64,219,119,221,61,0,64,219,120,221,61,0,64,219,121,221,61,0,64,219,122,221,61,0,64,219,123,221,61,0,64,219,124,221,61,0,64,219,125,221,61,0,64,219,126,221,61,0,64,219,127,221,61,0,64,219,128,221,61,0,64,219,129,221,61,0,64,219,130,221,61,0,64,219,131,221,61,0,64,219,132,221,61,0,64,219,133,221,61,0,64,219,134,221,61,0,64,219,135,221,61,0,64,219,136,221,61,0,64,219,137,221,61,0,64,219,138,221,61,0,64,219,139,221,61,0,64,219,140,221,61,0,64,219,141,221,61,0,64,219,142,221,61,0,64,219,143,221,61,0,64,219,144,221,61,0,64,219,145,221,61,0,64,219,146,221,61,0,64,219,147,221,61,0,64,219,148,221,61,0,64,219,149,221,61,0,64,219,150,221,61,0,64,219,151,221,61,0,64,219,152,221,61,0,64,219,153,221,61,0,64,219,154,221,61,0,64,219,155,221,61,0,64,219,156,221,61,0,64,219,157,221,61,0,64,219,158,221,61,0,64,219,159,221,61,0,64,219,160,221,61,0,64,219,161,221,61,0,64,219,162,221,61,0,64,219,163,221,61,0,64,219,164,221,61,0,64,219,165,221,61,0,64,219,166,221,61,0,64,219,167,221,61,0,64,219,168,221,61,0,64,219,169,221,61,0,64,219,170,221,61,0,64,219,171,221,61,0,64,219,172,221,61,0,64,219,173,221,61,0,64,219,174,221,61,0,64,219,175,221,61,0,64,219,176,221,61,0,64,219,177,221,61,0,64,219,178,221,61,0,64,219,179,221,61,0,64,219,180,221,61,0,64,219,181,221,61,0,64,219,182,221,61,0,64,219,183,221,61,0,64,219,184,221,61,0,64,219,185,221,61,0,64,219,186,221,61,0,64,219,187,221,61,0,64,219,188,221,61,0,64,219,189,221,61,0,64,219,190,221,61,0,64,219,191,221,61,0,64,219,192,221,61,0,64,219,193,221,61,0,64,219,194,221,61,0,64,219,195,221,61,0,64,219,196,221,61,0,64,219,197,221,61,0,64,219,198,221,61,0,64,219,199,221,61,0,64,219,200,221,61,0,64,219,201,221,61,0,64,219,202,221,61,0,64,219,203,221,61,0,64,219,204,221,61,0,64,219,205,221,61,0,64,219,206,221,61,0,64,219,207,221,61,0,64,219,208,221,61,0,64,219,209,221,61,0,64,219,210,221,61,0,64,219,211,221,61,0,64,219,212,221,61,0,64,219,213,221,61,0,64,219,214,221,61,0,64,219,215,221,61,0,64,219,216,221,61,0,64,219,217,221,61,0,64,219,218,221,61,0,64,219,219,221,61,0,64,219,220,221,61,0,64,219,221,221,61,0,64,219,222,221,61,0,64,219,223,221,61,0,64,219,224,221,61,0,64,219,225,221,61,0,64,219,226,221,61,0,64,219,227,221,61,0,64,219,228,221,61,0,64,219,229,221,61,0,64,219,230,221,61,0,64,219,231,221,61,0,64,219,232,221,61,0,64,219,233,221,61,0,64,219,234,221,61,0,64,219,235,221,61,0,64,219,236,221,61,0,64,219,237,221,61,0,64,219,238,221,61,0,64,219,239,221,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,50,3,60,0,60,0,19,3,61,0,134,4,61,0,241,44,60,0,60,0,20,3,61,0,133,4,61,0,240,44,60,0,60,0,1,3,61,0,84,9,60,0,60,0,0,3,61,0,83,9,60,0,60,0,6,3,60,0,60,0,2,3,60,0,60,0,12,3,60,0,60,0,10,3,60,0,60,0,66,3,60,0,60,0,8,3,60,0,60,0,11,3,60,0,60,0,3,3,60,0,60,0,7,3,60,0,60,0,56,3,60,0,60,0,39,3,60,0,60,0,40,3,60,0,60,0,4,3,60,0,60,0,13,3,61,0,14,3,61,0,18,3,61,0,21,3,61,0,26,3,61,0,61,3,61,0,62,3,61,0,63,3,61,0,70,3,61,0,74,3,61,0,75,3,61,0,76,3,61,0,80,3,61,0,81,3,61,0,82,3,61,0,87,3,61,0,91,3,61,0,93,3,61,0,94,3,61,0,132,4,61,0,135,4,61,0,65,7,61,0,69,7,61,0,85,11,61,0,203,23,61,0,204,23,61,0,205,23,61,0,206,23,61,0,207,23,61,0,208,23,61,0,209,23,61,0,221,23,61,0,176,26,61,0,177,26,61,0,178,26,61,0,179,26,61,0,180,26,61,0,187,26,61,0,188,26,61,0,193,26,61,0,194,26,61,0,197,26,61,0,198,26,61,0,199,26,61,0,200,26,61,0,201,26,61,0,203,26,61,0,192,29,61,0,193,29,61,0,195,29,61,0,196,29,61,0,197,29,61,0,198,29,61,0,199,29,61,0,200,29,61,0,201,29,61,0,203,29,61,0,204,29,61,0,205,29,61,0,206,29,61,0,209,29,61,0,245,29,61,0,246,29,61,0,247,29,61,0,248,29,61,0,251,29,61,0,254,29,61,0,240,32,61,0,239,44,61,0,124,166,61,0,125,166,61,0,2,216,229,222,61,0,3,216,36,221,61,0,3,216,37,221,61,0,3,216,38,221,61,0,3,216,39,221,61,0,3,216,72,223,61,0,3,216,73,223,61,0,3,216,74,223,61,0,3,216,76,223,61,0,3,216,130,223,61,0,3,216,132,223,61,0,47,216,157,220,61,0,56,216,174,222,60,0,60,0,22,3,61,0,23,3,61,0,24,3,61,0,25,3,61,0,28,3,61,0,29,3,61,0,30,3,61,0,31,3,61,0,32,3,61,0,41,3,61,0,42,3,61,0,43,3,61,0,44,3,61,0,47,3,61,0,51,3,61,0,58,3,61,0,59,3,61,0,60,3,61,0,71,3,61,0,72,3,61,0,73,3,61,0,77,3,61,0,78,3,61,0,83,3,61,0,84,3,61,0,85,3,61,0,86,3,61,0,89,3,61,0,90,3,61,0,92,3,61,0,95,3,61,0,98,3,61,0,66,7,61,0,70,7,61,0,253,7,61,0,89,8,61,0,90,8,61,0,91,8,61,0,181,26,61,0,182,26,61,0,183,26,61,0,184,26,61,0,185,26,61,0,186,26,61,0,189,26,61,0,195,26,61,0,196,26,61,0,202,26,61,0,194,29,61,0,207,29,61,0,208,29,61,0,249,29,61,0,250,29,61,0,252,29,61,0,253,29,61,0,255,29,61,0,236,32,61,0,237,32,61,0,238,32,61,0,239,32,61,0,39,254,61,0,0,216,253,221,61,0,2,216,13,222,61,0,2,216,230,222,61,0,3,216,70,223,61,0,3,216,71,223,61,0,3,216,75,223,61,0,3,216,77,223,61,0,3,216,78,223,61,0,3,216,79,223,61,0,3,216,80,223,61,0,3,216,131,223,61,0,3,216,133,223,60,0,60,0,54,3,61,0,55,3,61,0,216,32,61,0,217,32,61,0,218,32,61,0,229,32,61,0,234,32,61,0,235,32,61,0,47,216,158,220,60,0,60,0,190,26,61,0,221,32,61,0,222,32,61,0,223,32,61,0,224,32,61,0,226,32,61,0,227,32,61,0,228,32,60,0,60,0,153,48,60,0,60,0,60,0,158,255,60,0,60,0,154,48,60,0,60,0,60,0,159,255,60,0,60,0,53,3,60,0,60,0,5,3,60,0,60,0,9,3,60,0,60,0,15,3,60,0,60,0,16,3,60,0,60,0,17,3,60,0,60,0,27,3,60,0,60,0,33,3,60,0,60,0,34,3,60,0,60,0,35,3,60,0,60,0,36,3,60,0,60,0,37,3,60,0,60,0,38,3,60,0,60,0,45,3,60,0,60,0,46,3,60,0,60,0,48,3,60,0,60,0,49,3,60,0,60,0,52,3,60,0,60,0,57,3,60,0,60,0,69,3,60,0,60,0,88,3,60,0,60,0,96,3,61,0,34,254,61,0,41,254,60,0,60,0,97,3,61,0,32,254,60,0,60,0,131,4,61,0,46,254,60,0,60,0,111,166,60,0,60,0,176,5,60,0,60,0,177,5,60,0,60,0,178,5,60,0,60,0,179,5,60,0,60,0,180,5,60,0,60,0,181,5,60,0,60,0,182,5,60,0,60,0,183,5,60,0,60,0,184,5,61,0,199,5,60,0,60,0,185,5,61,0,186,5,60,0,60,0,187,5,60,0,60,0,194,5,60,0,60,0,193,5,60,0,60,0,188,5,60,0,60,0,191,5,60,0,60,0,30,251,60,0,60,0,28,8,61,0,29,8,60,0,60,0,30,8,61,0,31,8,61,0,32,8,60,0,60,0,33,8,61,0,34,8,61,0,35,8,60,0,60,0,14,32,36,8,14,32,61,0,37,8,60,0,60,0,38,8,61,0,39,8,60,0,60,0,14,32,40,8,14,32,61,0,41,8,61,0,42,8,60,0,60,0,43,8,60,0,60,0,44,8,60,0,60,0,24,8,60,0,60,0,25,8,60,0,60,0,45,8,60,0,60,0,75,6,60,0,60,0,60,0,14,32,113,254,14,32,60,0,60,0,60,0,14,32,112,254,14,32,60,0,60,0,240,8,60,0,60,0,231,8,60,0,60,0,76,6,60,0,60,0,60,0,14,32,114,254,14,32,60,0,60,0,60,0,14,32,94,252,14,32,47,0,4,216,55,222,60,0,60,0,241,8,60,0,60,0,232,8,60,0,60,0,77,6,60,0,60,0,60,0,14,32,116,254,14,32,60,0,60,0,60,0,14,32,95,252,14,32,47,0,4,216,55,222,60,0,60,0,242,8,60,0,60,0,233,8,60,0,60,0,78,6,60,0,60,0,60,0,14,32,119,254,14,32,60,0,60,0,60,0,14,32,242,252,14,32,47,0,4,216,55,222,60,0,60,0,60,0,14,32,118,254,14,32,60,0,60,0,60,0,14,32,96,252,14,32,47,0,4,216,55,222,60,0,60,0,228,8,60,0,60,0,244,8,60,0,60,0,245,8,60,0,60,0,79,6,60,0,60,0,60,0,14,32,121,254,14,32,60,0,60,0,60,0,14,32,243,252,14,32,47,0,4,216,55,222,60,0,60,0,60,0,14,32,120,254,14,32,60,0,60,0,60,0,14,32,97,252,14,32,47,0,4,216,55,222,60,0,60,0,229,8,60,0,60,0,254,8,60,0,60,0,80,6,60,0,60,0,60,0,14,32,123,254,14,32,60,0,60,0,60,0,14,32,244,252,14,32,47,0,4,216,55,222,60,0,60,0,60,0,14,32,122,254,14,32,60,0,60,0,60,0,14,32,98,252,14,32,47,0,4,216,55,222,60,0,60,0,230,8,60,0,60,0,246,8,60,0,60,0,81,6,61,0,251,10,61,0,4,216,55,222,60,0,60,0,60,0,14,32,125,254,14,32,60,0,60,0,60,0,14,32,124,254,14,32,60,0,60,0,60,0,14,32,99,252,14,32,47,0,112,6,60,0,60,0,82,6,61,0,250,10,61,0,4,216,62,222,60,0,60,0,60,0,14,32,127,254,14,32,60,0,60,0,60,0,14,32,126,254,14,32,60,0,60,0,83,6,61,0,158,8,61,0,159,8,61,0,252,10,61,0,3,216,172,222,60,0,60,0,84,6,61,0,3,216,171,222,60,0,60,0,85,6,60,0,60,0,95,6,60,0,60,0,86,6,60,0,60,0,87,6,60,0,60,0,88,6,60,0,60,0,255,8,60,0,60,0,89,6,60,0,60,0,90,6,60,0,60,0,91,6,60,0,60,0,92,6,60,0,60,0,93,6,60,0,60,0,94,6,60,0,60,0,227,8,60,0,60,0,247,8,60,0,60,0,248,8,60,0,60,0,253,8,60,0,60,0,251,8,60,0,60,0,252,8,60,0,60,0,249,8,60,0,60,0,250,8,60,0,60,0,112,6,60,0,60,0,17,7,60,0,60,0,48,7,60,0,60,0,49,7,60,0,60,0,50,7,60,0,60,0,51,7,60,0,60,0,52,7,60,0,60,0,53,7,60,0,60,0,54,7,60,0,60,0,55,7,60,0,60,0,56,7,60,0,60,0,57,7,60,0,60,0,58,7,60,0,60,0,59,7,60,0,60,0,60,7,60,0,60,0,61,7,60,0,60,0,62,7,60,0,60,0,63,7,60,0,60,0,235,7,60,0,60,0,236,7,60,0,60,0,237,7,60,0,60,0,238,7,60,0,60,0,239,7,60,0,60,0,240,7,60,0,60,0,241,7,60,0,60,0,242,7,60,0,60,0,243,7,60,0,60,0,95,19,60,0,60,0,94,19,60,0,60,0,93,19,60,0,60,0,240,166,60,0,60,0,241,166,60,0,60,0,26,216,240,222,60,0,60,0,26,216,241,222,60,0,60,0,26,216,242,222,60,0,60,0,26,216,243,222,60,0,60,0,26,216,244,222,60,0,60,0,58,216,68,221,61,0,58,216,69,221,61,0,58,216,70,221,60,0,60,0,58,216,74,221,60,0,60,0,58,216,71,221,60,0,60,0,58,216,72,221,60,0,60,0,58,216,73,221,60,0,60,0,60,9,61,0,188,9,61,0,60,10,61,0,188,10,61,0,253,10,61,0,254,10,61,0,255,10,61,0,60,11,61,0,60,12,61,0,188,12,61,0,52,27,61,0,230,27,61,0,55,28,61,0,179,169,61,0,4,216,186,220,61,0,4,216,115,221,61,0,4,216,202,221,61,0,4,216,54,222,61,0,4,216,233,222,61,0,4,216,59,223,61,0,4,216,60,223,61,0,5,216,70,220,61,0,5,216,195,220,61,0,5,216,192,221,61,0,5,216,183,222,61,0,6,216,58,220,61,0,6,216,67,221,61,0,6,216,51,222,61,0,7,216,66,221,60,0,60,0,0,9,61,0,1,9,61,0,129,9,61,0,1,10,61,0,129,10,61,0,1,11,61,0,0,12,61,0,1,12,61,0,129,12,61,0,1,13,61,0,129,13,61,0,130,15,61,0,131,15,61,0,0,27,61,0,1,27,61,0,197,168,61,0,128,169,61,0,4,216,0,220,61,0,4,216,128,220,61,0,4,216,0,221,61,0,4,216,128,221,61,0,4,216,207,221,61,0,4,216,1,223,61,0,5,216,67,220,61,0,5,216,191,220,61,0,5,216,188,221,61,0,5,216,64,222,61,0,6,216,60,221,61,0,6,216,53,222,61,0,6,216,54,222,61,0,6,216,55,222,61,0,7,216,60,220,61,0,7,216,182,220,61,0,7,216,67,221,61,0,7,216,0,223,60,0,60,0,2,9,61,0,130,9,61,0,2,10,61,0,130,10,61,0,2,11,61,0,130,11,61,0,2,12,61,0,4,12,61,0,130,12,61,0,243,12,61,0,0,13,61,0,2,13,61,0,130,13,61,0,126,15,61,0,54,16,61,0,198,23,61,0,116,26,61,0,2,27,61,0,128,27,61,0,237,28,61,0,11,168,61,0,128,168,61,0,129,169,61,0,2,216,14,222,61,0,4,216,1,220,61,0,4,216,129,220,61,0,4,216,1,221,61,0,4,216,129,221,61,0,4,216,52,222,61,0,4,216,223,222,61,0,4,216,0,223,61,0,4,216,2,223,61,0,5,216,68,220,61,0,5,216,192,220,61,0,5,216,189,221,61,0,5,216,61,222,61,0,5,216,171,222,61,0,6,216,55,220,61,0,6,216,59,221,61,0,6,216,222,221,61,0,6,216,56,222,61,0,6,216,150,222,61,0,7,216,61,220,61,0,7,216,181,220,61,0,7,216,64,221,61,0,7,216,149,221,61,0,7,216,1,223,60,0,60,0,3,9,61,0,131,9,61,0,3,10,61,0,131,10,61,0,3,11,61,0,3,12,61,0,131,12,61,0,3,13,61,0,131,13,61,0,127,15,61,0,56,16,61,0,199,23,61,0,4,27,61,0,130,27,61,0,242,28,61,0,243,28,61,0,129,168,61,0,131,169,61,0,2,216,15,222,61,0,4,216,2,220,61,0,4,216,130,220,61,0,4,216,2,221,61,0,4,216,130,221,61,0,4,216,3,223,61,0,5,216,69,220,61,0,5,216,193,220,61,0,5,216,190,221,61,0,5,216,62,222,61,0,5,216,172,222,61,0,6,216,56,220,61,0,6,216,223,221,61,0,6,216,57,222,61,0,6,216,151,222,61,0,7,216,62,220,61,0,7,216,65,221,61,0,7,216,150,221,61,0,7,216,3,223,60,0,60,0,254,9,61,0,4,216,201,221,61,0,5,216,94,220,60,0,60,0,112,10,60,0,60,0,113,10,60,0,60,0,3,27,60,0,60,0,130,169,60,0,60,0,129,27,60,0,60,0,236,171,60,0,60,0,2,216,56,222,60,0,60,0,2,216,57,222,60,0,60,0,2,216,58,222,60,0,60,0,4,216,203,221,60,0,60,0,4,216,204,221,60,0,60,0,6,216,152,222,60,0,60,0,78,14,60,0,60,0,71,14,60,0,60,0,72,14,60,0,60,0,73,14,60,0,60,0,74,14,60,0,60,0,75,14,60,0,60,0,76,14,60,0,60,0,77,14,60,0,60,0,206,14,60,0,60,0,200,14,60,0,60,0,201,14,60,0,60,0,202,14,60,0,60,0,203,14,60,0,60,0,204,14,60,0,60,0,205,14,60,0,60,0,191,170,60,0,60,0,193,170,60,0,60,0,57,15,60,0,60,0,43,169,60,0,60,0,44,169,60,0,60,0,45,169,60,0,60,0,55,16,60,0,60,0,200,23,60,0,60,0,201,23,60,0,60,0,202,23,60,0,60,0,117,26,60,0,60,0,118,26,60,0,60,0,119,26,60,0,60,0,120,26,60,0,60,0,121,26,60,0,60,0,122,26,60,0,60,0,123,26,60,0,60,0,124,26,60,0,60,0,57,25,60,0,60,0,58,25,60,0,60,0,59,25,60,0,60,0,26,216,48,223,61,0,56,216,49,221,60,0,60,0,26,216,49,223,61,0,56,216,54,221,60,0,60,0,26,216,50,223,61,0,56,216,50,221,60,0,60,0,26,216,51,223,61,0,56,216,51,221,60,0,60,0,26,216,52,223,61,0,56,216,48,221,60,0,60,0,26,216,53,223,61,0,56,216,52,221,60,0,60,0,26,216,54,223,61,0,56,216,53,221,60,0,60,0,56,216,236,222,60,0,60,0,56,216,237,222,60,0,60,0,56,216,238,222,60,0,60,0,56,216,239,222,60,0,60,0,57,216,236,220,60,0,60,0,57,216,237,220,60,0,60,0,57,216,238,220,60,0,60,0,57,216,239,220,60,0,60,0,42,48,60,0,60,0,43,48,60,0,60,0,44,48,60,0,60,0,45,48,60,0,60,0,46,48,60,0,60,0,47,48,60,0,60,0,27,216,240,223,60,0,60,0,27,216,241,223,60,0,60,0,208,32,60,0,60,0,209,32,60,0,60,0,210,32,61,0,211,32,60,0,60,0,212,32,60,0,60,0,213,32,60,0,60,0,214,32,60,0,60,0,215,32,60,0,60,0,219,32,60,0,60,0,220,32,60,0,60,0,225,32,60,0,60,0,230,32,60,0,60,0,231,32,60,0,60,0,232,32,60,0,60,0,233,32,60,0,60,0,0,216,253,221,38,0,39,0,47,32,39,0,60,0,39,0,9,0,39,0,60,0,39,0,10,0,39,0,60,0,39,0,11,0,39,0,60,0,39,0,12,0,39,0,60,0,39,0,13,0,39,0,60,0,39,0,133,0,39,0,60,0,39,0,40,32,39,0,60,0,39,0,41,32,39,0,60,0,39,0,32,0,39,0,60,0,60,0,60,0,39,0,0,48,39,0,60,0,60,0,60,0,39,0,128,22,39,0,61,0,39,0,2,32,39,0,61,0,39,0,3,32,39,0,61,0,39,0,4,32,39,0,61,0,39,0,5,32,39,0,61,0,39,0,6,32,39,0,61,0,39,0,8,32,39,0,61,0,39,0,9,32,39,0,61,0,39,0,10,32,39,0,61,0,39,0,95,32,39,0,60,0,60,0,60,0,39,0,160,0,39,0,61,0,39,0,7,32,39,0,61,0,39,0,47,32,39,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,118,0,97,0,114,0,105,0,97,0,98,0,108,0,101,0,93,0,60,0,62,32,60,0,60,0,60,0,73,254,61,0,74,254,61,0,75,254,61,0,76,254,60,0,39,0,95,0,39,0,60,0,60,0,60,0,63,255,60,0,60,0,60,0,77,254,61,0,78,254,61,0,79,254,60,0,60,0,60,0,51,254,61,0,52,254,60,0,23,32,60,0,39,0,45,0,39,0,60,0,60,0,60,0,13,255,60,0,60,0,60,0,99,254,60,0,138,5,60,0,0,20,60,0,96,27,60,0,6,24,60,0,7,24,60,0,16,32,60,0,60,0,60,0,17,32,60,0,18,32,60,0,19,32,60,0,60,0,60,0,50,254,60,0,20,32,60,0,60,0,60,0,88,254,60,0,60,0,60,0,49,254,60,0,21,32,60,0,58,46,60,0,59,46,60,0,83,32,60,0,67,46,60,0,23,46,60,0,64,46,60,0,93,46,60,0,28,48,60,0,48,48,60,0,160,48,60,0,251,48,60,0,60,0,60,0,101,255,60,0,14,32,3,216,173,222,14,32,60,0,39,0,44,0,39,0,60,0,60,0,60,0,12,255,60,0,60,0,60,0,80,254,60,0,60,0,60,0,16,254,60,0,52,46,60,0,50,46,60,0,65,46,60,0,76,46,60,0,78,46,60,0,79,46,60,0,93,5,60,0,12,6,60,0,14,32,13,6,14,32,60,0,107,6,60,0,108,6,60,0,248,7,60,0,2,24,60,0,8,24,60,0,254,164,60,0,13,166,60,0,245,166,60,0,27,216,151,222,60,0,1,48,60,0,60,0,60,0,81,254,60,0,60,0,60,0,100,255,60,0,60,0,60,0,17,254,60,0,69,254,60,0,70,254,60,0,27,216,226,223,60,0,39,0,59,0,39,0,60,0,60,0,60,0,27,255,60,0,60,0,60,0,84,254,60,0,60,0,60,0,20,254,60,0,14,32,27,6,14,32,60,0,79,32,60,0,53,46,60,0,246,166,60,0,73,46,60,0,39,0,58,0,39,0,60,0,60,0,60,0,26,255,60,0,60,0,60,0,116,42,47,0,39,0,58,0,61,0,39,0,60,0,60,0,60,0,85,254,60,0,60,0,60,0,19,254,60,0,137,5,60,0,14,32,30,6,14,32,60,0,14,32,3,7,14,32,60,0,14,32,4,7,14,32,60,0,14,32,5,7,14,32,60,0,14,32,6,7,14,32,60,0,14,32,7,7,14,32,60,0,14,32,8,7,14,32,60,0,14,32,48,8,14,32,60,0,14,32,49,8,14,32,60,0,14,32,50,8,14,32,60,0,14,32,51,8,14,32,60,0,14,32,52,8,14,32,60,0,14,32,53,8,14,32,60,0,14,32,54,8,14,32,60,0,14,32,55,8,14,32,60,0,14,32,56,8,14,32,60,0,14,32,57,8,14,32,60,0,14,32,58,8,14,32,60,0,14,32,59,8,14,32,60,0,14,32,60,8,14,32,60,0,14,32,61,8,14,32,60,0,14,32,62,8,14,32,60,0,97,19,60,0,99,19,60,0,100,19,60,0,101,19,60,0,102,19,60,0,4,24,60,0,5,24,60,0,20,15,60,0,214,23,60,0,93,27,60,0,199,169,60,0,235,22,60,0,236,22,60,0,237,22,60,0,244,166,60,0,39,0,33,0,39,0,60,0,60,0,60,0,1,255,60,0,60,0,60,0,60,32,47,0,39,0,33,0,39,0,60,0,60,0,60,0,73,32,47,0,39,0,63,0,39,0,60,0,60,0,60,0,87,254,60,0,60,0,60,0,21,254,60,0,161,0,60,0,83,46,60,0,92,5,60,0,249,7,60,0,68,25,60,0,14,32,58,216,94,221,14,32,60,0,39,0,63,0,39,0,60,0,60,0,60,0,31,255,60,0,60,0,60,0,72,32,47,0,39,0,33,0,39,0,60,0,60,0,60,0,71,32,47,0,39,0,63,0,39,0,60,0,60,0,60,0,86,254,60,0,60,0,60,0,22,254,60,0,191,0,60,0,46,46,60,0,84,46,60,0,94,5,60,0,14,32,31,6,14,32,60,0,14,32,9,7,14,32,60,0,103,19,60,0,69,25,60,0,250,44,60,0,251,44,60,0,15,166,60,0,247,166,60,0,241,170,60,0,4,216,67,221,60,0,14,32,58,216,95,221,14,32,60,0,61,32,60,0,24,46,60,0,39,0,46,0,39,0,60,0,60,0,60,0,14,255,60,0,60,0,60,0,36,32,60,0,60,0,60,0,37,32,47,0,39,0,46,0,39,0,60,0,60,0,60,0,38,32,47,0,39,0,46,0,46,0,39,0,60,0,60,0,60,0,82,254,60,0,60,0,60,0,48,254,47,0,39,0,46,0,39,0,60,0,60,0,60,0,25,254,47,0,39,0,46,0,46,0,39,0,60,0,1,24,60,0,14,32,212,6,14,32,60,0,14,32,1,7,14,32,60,0,14,32,2,7,14,32,60,0,98,19,60,0,3,24,60,0,9,24,60,0,110,22,60,0,92,27,60,0,249,44,60,0,254,44,60,0,48,46,60,0,60,46,60,0,255,164,60,0,14,166,60,0,243,166,60,0,26,216,245,222,60,0,27,216,152,222,60,0,47,216,159,220,60,0,2,48,60,0,60,0,60,0,97,255,60,0,60,0,60,0,18,254,60,0,183,0,60,0,49,46,60,0,51,46,60,0,100,9,60,0,101,9,60,0,206,168,60,0,207,168,60,0,59,28,60,0,60,28,60,0,118,168,60,0,119,168,60,0,53,23,60,0,54,23,60,0,47,169,60,0,74,16,60,0,75,16,60,0,212,23,60,0,213,23,60,0,168,26,60,0,169,26,60,0,170,26,60,0,171,26,60,0,94,27,60,0,95,27,60,0,200,169,60,0,201,169,60,0,93,170,60,0,94,170,60,0,95,170,60,0,240,170,60,0,235,171,60,0,14,32,2,216,86,222,14,32,60,0,14,32,2,216,87,222,14,32,60,0,4,216,71,220,60,0,4,216,72,220,60,0,4,216,192,220,60,0,4,216,193,220,60,0,4,216,65,221,60,0,4,216,66,221,60,0,4,216,197,221,60,0,4,216,198,221,60,0,4,216,56,222,60,0,4,216,57,222,60,0,5,216,75,220,60,0,5,216,76,220,60,0,5,216,194,221,60,0,5,216,195,221,60,0,5,216,65,222,60,0,5,216,66,222,60,0,5,216,60,223,60,0,5,216,61,223,60,0,6,216,68,221,60,0,7,216,65,220,60,0,7,216,66,220,60,0,7,216,67,223,60,0,7,216,68,223,60,0,26,216,110,222,60,0,26,216,111,222,60,0,126,28,60,0,127,28,60,0,14,32,29,6,14,32,60,0,14,32,0,7,14,32,60,0,247,7,60,0,251,16,60,0,96,19,60,0,104,19,60,0,30,26,60,0,31,26,60,0,90,27,60,0,91,27,60,0,125,27,60,0,126,27,60,0,193,169,60,0,194,169,60,0,195,169,60,0,196,169,60,0,197,169,60,0,198,169,60,0,202,169,60,0,203,169,60,0,204,169,60,0,205,169,60,0,242,166,60,0,95,169,60,0,14,32,2,216,87,220,14,32,60,0,2,216,58,223,60,0,2,216,59,223,60,0,2,216,60,223,60,0,2,216,61,223,60,0,2,216,62,223,60,0,2,216,63,223,60,0,14,32,3,216,85,223,14,32,60,0,14,32,3,216,86,223,14,32,60,0,14,32,3,216,87,223,14,32,60,0,14,32,3,216,88,223,14,32,60,0,14,32,3,216,89,223,14,32,60,0,14,32,3,216,134,223,14,32,60,0,14,32,3,216,135,223,14,32,60,0,14,32,3,216,136,223,14,32,60,0,14,32,3,216,137,223,14,32,60,0,4,216,190,220,60,0,4,216,191,220,60,0,4,216,64,221,60,0,4,216,200,221,60,0,4,216,222,221,60,0,4,216,223,221,60,0,4,216,169,222,60,0,5,216,62,223,60,0,6,216,70,221,60,0,7,216,247,222,60,0,7,216,248,222,60,0,7,216,69,223,60,0,7,216,70,223,60,0,7,216,71,223,60,0,7,216,72,223,60,0,7,216,73,223,60,0,7,216,74,223,60,0,7,216,75,223,60,0,7,216,76,223,60,0,7,216,77,223,60,0,7,216,78,223,60,0,7,216,79,223,60,0,85,32,60,0,86,32,60,0,88,32,60,0,89,32,60,0,90,32,60,0,91,32,60,0,92,32,60,0,93,32,60,0,94,32,60,0,42,46,60,0,43,46,60,0,44,46,60,0,45,46,60,0,61,46,60,0,252,44,60,0,255,44,60,0,25,46,60,0,14,32,2,216,63,221,14,32,60,0,0,216,0,221,60,0,0,216,1,221,60,0,0,216,2,221,60,0,0,216,159,223,60,0,0,216,208,223,60,0,2,216,31,221,60,0,9,216,112,220,60,0,9,216,113,220,60,0,9,216,114,220,60,0,9,216,115,220,60,0,9,216,116,220,60,0,11,216,241,223,60,0,11,216,242,223,60,0,39,0,39,0,60,0,60,0,60,0,7,255,60,0,24,32,60,0,25,32,60,0,26,32,60,0,27,32,60,0,57,32,60,0,58,32,60,0,39,0,34,0,39,0,60,0,60,0,60,0,2,255,60,0,28,32,60,0,29,32,60,0,30,32,60,0,31,32,60,0,66,46,60,0,29,48,60,0,30,48,60,0,31,48,60,0,171,0,60,0,187,0,60,0,39,0,40,0,39,0,60,0,60,0,60,0,8,255,60,0,60,0,60,0,116,36,47,0,14,32,59,216,1,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,125,36,47,0,14,32,59,216,1,221,58,216,80,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,126,36,47,0,14,32,59,216,1,221,59,216,1,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,127,36,47,0,14,32,59,216,1,221,59,216,2,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,128,36,47,0,14,32,59,216,1,221,59,216,3,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,129,36,47,0,14,32,59,216,1,221,59,216,4,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,130,36,47,0,14,32,59,216,1,221,59,216,5,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,131,36,47,0,14,32,59,216,1,221,59,216,6,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,132,36,47,0,14,32,59,216,1,221,59,216,7,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,133,36,47,0,14,32,59,216,1,221,59,216,8,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,134,36,47,0,14,32,59,216,1,221,59,216,9,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,117,36,47,0,14,32,59,216,2,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,135,36,47,0,14,32,59,216,2,221,58,216,80,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,118,36,47,0,14,32,59,216,3,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,119,36,47,0,14,32,59,216,4,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,120,36,47,0,14,32,59,216,5,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,121,36,47,0,14,32,59,216,6,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,122,36,47,0,14,32,59,216,7,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,123,36,47,0,14,32,59,216,8,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,124,36,47,0,14,32,59,216,9,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,156,36,47,0,97,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,16,221,47,0,65,0,39,0,41,0,39,0,60,0,60,0,60,0,157,36,47,0,98,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,17,221,47,0,66,0,39,0,41,0,39,0,60,0,60,0,60,0,158,36,47,0,99,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,18,221,47,0,67,0,39,0,41,0,39,0,60,0,60,0,60,0,159,36,47,0,100,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,19,221,47,0,68,0,39,0,41,0,39,0,60,0,60,0,60,0,160,36,47,0,101,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,20,221,47,0,69,0,39,0,41,0,39,0,60,0,60,0,60,0,161,36,47,0,102,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,21,221,47,0,70,0,39,0,41,0,39,0,60,0,60,0,60,0,162,36,47,0,103,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,22,221,47,0,71,0,39,0,41,0,39,0,60,0,60,0,60,0,163,36,47,0,104,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,23,221,47,0,72,0,39,0,41,0,39,0,60,0,60,0,60,0,164,36,47,0,105,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,24,221,47,0,73,0,39,0,41,0,39,0,60,0,60,0,60,0,165,36,47,0,106,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,25,221,47,0,74,0,39,0,41,0,39,0,60,0,60,0,60,0,166,36,47,0,107,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,26,221,47,0,75,0,39,0,41,0,39,0,60,0,60,0,60,0,167,36,47,0,108,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,27,221,47,0,76,0,39,0,41,0,39,0,60,0,60,0,60,0,168,36,47,0,109,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,28,221,47,0,77,0,39,0,41,0,39,0,60,0,60,0,60,0,169,36,47,0,110,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,29,221,47,0,78,0,39,0,41,0,39,0,60,0,60,0,60,0,170,36,47,0,111,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,30,221,47,0,79,0,39,0,41,0,39,0,60,0,60,0,60,0,171,36,47,0,112,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,31,221,47,0,80,0,39,0,41,0,39,0,60,0,60,0,60,0,172,36,47,0,113,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,32,221,47,0,81,0,39,0,41,0,39,0,60,0,60,0,60,0,173,36,47,0,114,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,33,221,47,0,82,0,39,0,41,0,39,0,60,0,60,0,60,0,174,36,47,0,115,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,34,221,47,0,83,0,39,0,41,0,39,0,60,0,60,0,60,0,175,36,47,0,116,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,35,221,47,0,84,0,39,0,41,0,39,0,60,0,60,0,60,0,176,36,47,0,117,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,36,221,47,0,85,0,39,0,41,0,39,0,60,0,60,0,60,0,177,36,47,0,118,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,37,221,47,0,86,0,39,0,41,0,39,0,60,0,60,0,60,0,178,36,47,0,119,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,38,221,47,0,87,0,39,0,41,0,39,0,60,0,60,0,60,0,179,36,47,0,120,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,39,221,47,0,88,0,39,0,41,0,39,0,60,0,60,0,60,0,180,36,47,0,121,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,40,221,47,0,89,0,39,0,41,0,39,0,60,0,60,0,60,0,181,36,47,0,122,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,41,221,47,0,90,0,39,0,41,0,39,0,60,0,60,0,60,0,0,50,47,0,0,17,39,0,41,0,39,0,60,0,60,0,60,0,14,50,47,0,0,172,39,0,41,0,39,0,60,0,60,0,60,0,1,50,47,0,2,17,39,0,41,0,39,0,60,0,60,0,60,0,15,50,47,0,152,176,39,0,41,0,39,0,60,0,60,0,60,0,2,50,47,0,3,17,39,0,41,0,39,0,60,0,60,0,60,0,16,50,47,0,228,178,39,0,41,0,39,0,60,0,60,0,60,0,3,50,47,0,5,17,39,0,41,0,39,0,60,0,60,0,60,0,17,50,47,0,124,183,39,0,41,0,39,0,60,0,60,0,60,0,4,50,47,0,6,17,39,0,41,0,39,0,60,0,60,0,60,0,18,50,47,0,200,185,39,0,41,0,39,0,60,0,60,0,60,0,5,50,47,0,7,17,39,0,41,0,39,0,60,0,60,0,60,0,19,50,47,0,20,188,39,0,41,0,39,0,60,0,60,0,60,0,6,50,47,0,9,17,39,0,41,0,39,0,60,0,60,0,60,0,20,50,47,0,172,192,39,0,41,0,39,0,60,0,60,0,60,0,7,50,47,0,11,17,39,0,41,0,39,0,60,0,60,0,60,0,21,50,47,0,68,197,39,0,41,0,39,0,60,0,60,0,60,0,29,50,47,0,36,198,4,200,39,0,41,0,39,0,60,0,60,0,60,0,30,50,47,0,36,198,196,214,39,0,41,0,39,0,60,0,60,0,60,0,8,50,47,0,12,17,39,0,41,0,39,0,60,0,60,0,60,0,22,50,47,0,144,199,39,0,41,0,39,0,60,0,60,0,60,0,28,50,47,0,252,200,39,0,41,0,39,0,60,0,60,0,60,0,9,50,47,0,14,17,39,0,41,0,39,0,60,0,60,0,60,0,23,50,47,0,40,204,39,0,41,0,39,0,60,0,60,0,60,0,10,50,47,0,15,17,39,0,41,0,39,0,60,0,60,0,60,0,24,50,47,0,116,206,39,0,41,0,39,0,60,0,60,0,60,0,11,50,47,0,16,17,39,0,41,0,39,0,60,0,60,0,60,0,25,50,47,0,192,208,39,0,41,0,39,0,60,0,60,0,60,0,12,50,47,0,17,17,39,0,41,0,39,0,60,0,60,0,60,0,26,50,47,0,12,211,39,0,41,0,39,0,60,0,60,0,60,0,13,50,47,0,18,17,39,0,41,0,39,0,60,0,60,0,60,0,27,50,47,0,88,213,39,0,41,0,39,0,60,0,60,0,60,0,32,50,47,0,0,78,39,0,41,0,39,0,60,0,60,0,60,0,38,50,47,0,3,78,39,0,41,0,39,0,60,0,60,0,60,0,34,50,47,0,9,78,39,0,41,0,39,0,60,0,60,0,60,0,40,50,47,0,93,78,39,0,41,0,39,0,60,0,60,0,60,0,33,50,47,0,140,78,39,0,41,0,39,0,60,0,60,0,60,0,36,50,47,0,148,78,39,0,41,0,39,0,60,0,60,0,60,0,57,50,47,0,227,78,39,0,41,0,39,0,60,0,60,0,60,0,61,50,47,0,1,79,39,0,41,0,39,0,60,0,60,0,60,0,65,50,47,0,17,79,39,0,41,0,39,0,60,0,60,0,60,0,39,50,47,0,107,81,39,0,41,0,39,0,60,0,60,0,60,0,37,50,47,0,109,81,39,0,41,0,39,0,60,0,60,0,60,0,56,50,47,0,180,82,39,0,41,0,39,0,60,0,60,0,60,0,41,50,47,0,65,83,39,0,41,0,39,0,60,0,60,0,60,0,63,50,47,0,84,83,39,0,41,0,39,0,60,0,60,0,60,0,52,50,47,0,13,84,39,0,41,0,39,0,60,0,60,0,60,0,58,50,47,0,124,84,39,0,41,0,39,0,60,0,60,0,60,0,35,50,47,0,219,86,39,0,41,0,39,0,60,0,60,0,60,0,47,50,47,0,31,87,39,0,41,0,39,0,60,0,60,0,60,0,59,50,47,0,102,91,39,0,41,0,39,0,60,0,60,0,60,0,48,50,47,0,229,101,39,0,41,0,39,0,60,0,60,0,60,0,42,50,47,0,8,103,39,0,41,0,39,0,60,0,60,0,60,0,50,50,47,0,9,103,39,0,41,0,39,0,60,0,60,0,60,0,45,50,47,0,40,103,39,0,41,0,39,0,60,0,60,0,60,0,49,50,47,0,42,104,39,0,41,0,39,0,60,0,60,0,60,0,44,50,47,0,52,108,39,0,41,0,39,0,60,0,60,0,60,0,43,50,47,0,107,112,39,0,41,0,39,0,60,0,60,0,60,0,53,50,47,0,121,114,39,0,41,0,39,0,60,0,60,0,60,0,60,50,47,0,227,118,39,0,41,0,39,0,60,0,60,0,60,0,51,50,47,0,62,121,39,0,41,0,39,0,60,0,60,0,60,0,55,50,47,0,93,121,39,0,41,0,39,0,60,0,60,0,60,0,64,50,47,0,109,121,39,0,41,0,39,0,60,0,60,0,60,0,66,50,47,0,234,129,39,0,41,0,39,0,60,0,60,0,60,0,67,50,47,0,243,129,39,0,41,0,39,0,60,0,60,0,60,0,54,50,47,0,161,140,39,0,41,0,39,0,60,0,60,0,60,0,62,50,47,0,199,140,39,0,41,0,39,0,60,0,60,0,60,0,46,50,47,0,209,145,39,0,41,0,39,0,60,0,60,0,60,0,89,254,60,0,60,0,60,0,125,32,60,0,60,0,60,0,141,32,60,0,60,0,60,0,53,254,60,0,39,0,41,0,39,0,60,0,60,0,60,0,9,255,60,0,60,0,60,0,90,254,60,0,60,0,60,0,126,32,60,0,60,0,60,0,142,32,60,0,60,0,60,0,54,254,60,0,39,0,91,0,39,0,60,0,60,0,60,0,59,255,60,0,60,0,60,0,71,254,60,0,39,0,93,0,39,0,60,0,60,0,60,0,61,255,60,0,60,0,60,0,72,254,60,0,39,0,123,0,39,0,60,0,60,0,60,0,91,255,60,0,60,0,60,0,91,254,60,0,60,0,60,0,55,254,60,0,39,0,125,0,39,0,60,0,60,0,60,0,93,255,60,0,60,0,60,0,92,254,60,0,60,0,60,0,56,254,60,0,58,15,60,0,59,15,60,0,60,15,60,0,61,15,60,0,155,22,60,0,156,22,60,0,69,32,60,0,70,32,60,0,8,35,60,0,9,35,60,0,10,35,60,0,11,35,60,0,252,41,60,0,253,41,60,0,131,41,60,0,132,41,60,0,133,41,60,0,60,0,60,0,95,255,60,0,134,41,60,0,60,0,60,0,96,255,60,0,135,41,60,0,136,41,60,0,137,41,60,0,138,41,60,0,139,41,60,0,140,41,60,0,141,41,60,0,142,41,60,0,143,41,60,0,144,41,60,0,145,41,60,0,146,41,60,0,147,41,60,0,148,41,60,0,149,41,60,0,150,41,60,0,151,41,60,0,152,41,60,0,197,39,60,0,198,39,60,0,230,39,60,0,231,39,60,0,232,39,60,0,233,39,60,0,234,39,60,0,235,39,60,0,236,39,60,0,237,39,60,0,238,39,60,0,239,39,60,0,104,39,60,0,105,39,60,0,106,39,60,0,107,39,60,0,108,39,60,0,109,39,60,0,110,39,60,0,111,39,60,0,112,39,60,0,113,39,60,0,114,39,60,0,115,39,60,0,116,39,60,0,117,39,60,0,2,46,60,0,3,46,60,0,4,46,60,0,5,46,60,0,9,46,60,0,10,46,60,0,12,46,60,0,13,46,60,0,28,46,60,0,29,46,60,0,32,46,60,0,33,46,60,0,34,46,60,0,35,46,60,0,36,46,60,0,37,46,60,0,38,46,60,0,39,46,60,0,40,46,60,0,41,46,60,0,85,46,60,0,86,46,60,0,87,46,60,0,88,46,60,0,89,46,60,0,90,46,60,0,91,46,60,0,92,46,60,0,8,48,60,0,60,0,60,0,63,254,60,0,9,48,60,0,60,0,60,0,64,254,60,0,10,48,60,0,60,0,60,0,61,254,60,0,11,48,60,0,60,0,60,0,62,254,60,0,12,48,60,0,60,0,60,0,98,255,60,0,60,0,60,0,65,254,60,0,13,48,60,0,60,0,60,0,99,255,60,0,60,0,60,0,66,254,60,0,14,48,60,0,60,0,60,0,67,254,60,0,15,48,60,0,60,0,60,0,68,254,60,0,16,48,60,0,60,0,60,0,59,254,60,0,17,48,60,0,60,0,60,0,60,254,60,0,20,48,60,0,60,0,60,0,60,216,42,221,47,0,83,0,21,48,60,0,60,0,60,0,60,216,65,222,47,0,9,78,21,48,60,0,60,0,60,0,60,216,66,222,47,0,140,78,21,48,60,0,60,0,60,0,60,216,71,222,47,0,221,82,21,48,60,0,60,0,60,0,60,216,67,222,47,0,137,91,21,48,60,0,60,0,60,0,60,216,69,222,47,0,83,98,21,48,60,0,60,0,60,0,60,216,72,222,47,0,87,101,21,48,60,0,60,0,60,0,60,216,64,222,47,0,44,103,21,48,60,0,60,0,60,0,60,216,68,222,47,0,185,112,21,48,60,0,60,0,60,0,60,216,70,222,47,0,215,118,21,48,60,0,60,0,60,0,93,254,60,0,60,0,60,0,57,254,60,0,21,48,60,0,60,0,60,0,94,254,60,0,60,0,60,0,58,254,60,0,22,48,60,0,60,0,60,0,23,254,60,0,23,48,60,0,60,0,60,0,24,254,60,0,24,48,60,0,25,48,60,0,26,48,60,0,27,48,60,0,62,253,60,0,63,253,60,0,22,32,60,0,62,46,60,0,216,41,60,0,217,41,60,0,218,41,60,0,219,41,60,0,167,0,60,0,57,46,60,0,182,0,60,0,75,32,60,0,77,46,60,0,63,46,60,0,39,0,64,0,39,0,60,0,60,0,60,0,32,255,60,0,60,0,60,0,107,254,60,0,39,0,42,0,39,0,60,0,60,0,60,0,10,255,60,0,60,0,60,0,97,254,60,0,78,32,60,0,81,32,60,0,14,32,109,6,14,32,60,0,115,166,60,0,39,0,47,0,39,0,60,0,60,0,60,0,15,255,60,0,39,0,92,0,39,0,60,0,60,0,60,0,60,255,60,0,60,0,60,0,104,254,60,0,74,46,60,0,39,0,38,0,39,0,60,0,60,0,60,0,6,255,60,0,60,0,60,0,96,254,60,0,74,32,60,0,82,46,60,0,39,0,35,0,39,0,60,0,60,0,60,0,3,255,60,0,60,0,60,0,95,254,60,0,39,0,37,0,39,0,60,0,60,0,60,0,5,255,60,0,60,0,60,0,106,254,60,0,106,6,60,0,48,32,60,0,9,6,60,0,49,32,60,0,10,6,60,0,32,32,60,0,33,32,60,0,54,46,60,0,55,46,60,0,56,46,60,0,75,46,60,0,34,32,60,0,35,32,60,0,39,32,60,0,67,32,60,0,76,32,60,0,77,32,60,0,50,32,60,0,60,0,60,0,51,32,47,0,50,32,60,0,60,0,60,0,52,32,47,0,50,32,50,32,60,0,60,0,60,0,87,32,47,0,50,32,50,32,50,32,60,0,53,32,60,0,60,0,60,0,54,32,47,0,53,32,60,0,60,0,60,0,55,32,47,0,53,32,53,32,60,0,3,48,60,0,61,48,60,0,56,32,60,0,59,32,60,0,63,32,60,0,84,32,60,0,64,32,60,0,80,32,60,0,65,32,60,0,66,32,60,0,0,46,60,0,1,46,60,0,6,46,60,0,7,46,60,0,8,46,60,0,11,46,60,0,14,46,60,0,15,46,60,0,16,46,60,0,17,46,60,0,18,46,60,0,19,46,60,0,20,46,60,0,21,46,60,0,22,46,60,0,26,46,60,0,27,46,60,0,30,46,60,0,31,46,60,0,68,46,60,0,69,46,60,0,70,46,60,0,71,46,60,0,72,46,60,0,126,166,60,0,90,5,60,0,91,5,60,0,95,5,60,0,14,32,190,5,14,32,60,0,14,32,192,5,14,32,60,0,14,32,195,5,14,32,60,0,14,32,198,5,14,32,60,0,14,32,243,5,14,32,60,0,14,32,244,5,14,32,60,0,14,32,10,7,14,32,60,0,14,32,11,7,14,32,60,0,14,32,12,7,14,32,60,0,14,32,13,7,14,32,60,0,14,32,94,8,14,32,60,0,0,24,60,0,5,216,96,222,60,0,5,216,97,222,60,0,5,216,98,222,60,0,5,216,99,222,60,0,5,216,100,222,60,0,5,216,101,222,60,0,5,216,102,222,60,0,5,216,103,222,60,0,5,216,104,222,60,0,5,216,105,222,60,0,5,216,106,222,60,0,5,216,107,222,60,0,5,216,108,222,60,0,112,9,60,0,248,168,60,0,249,168,60,0,250,168,60,0,252,168,60,0,6,216,0,223,60,0,6,216,1,223,60,0,6,216,2,223,60,0,6,216,3,223,60,0,6,216,4,223,60,0,6,216,5,223,60,0,6,216,6,223,60,0,6,216,7,223,60,0,6,216,8,223,60,0,6,216,9,223,60,0,253,9,60,0,118,10,60,0,240,10,60,0,119,12,60,0,132,12,60,0,244,13,60,0,79,14,60,0,90,14,60,0,91,14,60,0,222,170,60,0,223,170,60,0,4,15,60,0,5,15,60,0,6,15,60,0,7,15,60,0,8,15,60,0,9,15,60,0,10,15,60,0,208,15,60,0,209,15,60,0,11,15,60,0,60,0,60,0,12,15,60,0,13,15,60,0,14,15,60,0,15,15,60,0,16,15,60,0,17,15,60,0,18,15,60,0,133,15,60,0,210,15,60,0,211,15,60,0,212,15,60,0,217,15,60,0,218,15,60,0,6,216,63,222,60,0,6,216,64,222,60,0,6,216,65,222,60,0,6,216,66,222,60,0,6,216,67,222,60,0,6,216,68,222,60,0,6,216,69,222,60,0,6,216,70,222,60,0,6,216,154,222,60,0,6,216,155,222,60,0,6,216,156,222,60,0,6,216,158,222,60,0,6,216,159,222,60,0,6,216,160,222,60,0,6,216,161,222,60,0,6,216,162,222,60,0,7,216,112,220,60,0,7,216,113,220,60,0,61,28,60,0,62,28,60,0,63,28,60,0,76,16,60,0,77,16,60,0,78,16,60,0,79,16,60,0,216,23,60,0,217,23,60,0,218,23,60,0,160,26,60,0,161,26,60,0,162,26,60,0,163,26,60,0,164,26,60,0,165,26,60,0,166,26,60,0,172,26,60,0,173,26,60,0,192,28,60,0,193,28,60,0,194,28,60,0,195,28,60,0,196,28,60,0,197,28,60,0,198,28,60,0,199,28,60,0,112,45,60,0,116,168,60,0,117,168,60,0,252,27,60,0,253,27,60,0,254,27,60,0,255,27,60,0,46,169,60,0,222,169,60,0,223,169,60,0,92,170,60,0,1,216,111,221,60,0,4,216,73,220,60,0,4,216,74,220,60,0,4,216,75,220,60,0,4,216,76,220,60,0,4,216,77,220,60,0,14,32,2,216,80,222,14,32,60,0,14,32,2,216,81,222,14,32,60,0,14,32,2,216,82,222,14,32,60,0,14,32,2,216,83,222,14,32,60,0,14,32,2,216,84,222,14,32,60,0,14,32,2,216,85,222,14,32,60,0,14,32,2,216,88,222,14,32,60,0,7,216,67,220,60,0,7,216,68,220,60,0,7,216,69,220,60,0,2,216,57,223,60,0,14,32,2,216,240,222,14,32,60,0,14,32,2,216,241,222,14,32,60,0,14,32,2,216,242,222,14,32,60,0,14,32,2,216,243,222,14,32,60,0,14,32,2,216,244,222,14,32,60,0,14,32,2,216,245,222,14,32,60,0,14,32,2,216,246,222,14,32,60,0,14,32,2,216,153,223,14,32,60,0,14,32,2,216,154,223,14,32,60,0,14,32,2,216,155,223,14,32,60,0,14,32,2,216,156,223,14,32,60,0,4,216,187,220,60,0,4,216,188,220,60,0,4,216,116,221,60,0,4,216,117,221,60,0,4,216,205,221,60,0,4,216,199,221,60,0,4,216,219,221,60,0,4,216,221,221,60,0,4,216,58,222,60,0,4,216,59,222,60,0,4,216,60,222,60,0,4,216,61,222,60,0,5,216,77,220,60,0,5,216,90,220,60,0,5,216,78,220,60,0,5,216,79,220,60,0,5,216,91,220,60,0,5,216,93,220,60,0,5,216,198,220,60,0,5,216,193,221,60,0,5,216,196,221,60,0,5,216,197,221,60,0,5,216,198,221,60,0,5,216,199,221,60,0,5,216,200,221,60,0,5,216,201,221,60,0,5,216,202,221,60,0,5,216,203,221,60,0,5,216,204,221,60,0,5,216,205,221,60,0,5,216,206,221,60,0,5,216,207,221,60,0,5,216,208,221,60,0,5,216,209,221,60,0,5,216,210,221,60,0,5,216,211,221,60,0,5,216,212,221,60,0,5,216,213,221,60,0,5,216,214,221,60,0,5,216,215,221,60,0,5,216,67,222,60,0,5,216,185,222,60,0,6,216,59,220,60,0,6,216,69,221,60,0,6,216,226,221,60,0,7,216,255,223,60,0,26,216,55,223,60,0,26,216,56,223,60,0,26,216,57,223,60,0,26,216,58,223,60,0,26,216,59,223,60,0,26,216,68,223,60,0,27,216,153,222,60,0,27,216,154,222,60,0,54,216,135,222,60,0,54,216,136,222,60,0,54,216,137,222,60,0,54,216,138,222,60,0,54,216,139,222,60,0,14,32,2,216,127,222,14,32,38,0,253,48,60,0,39,0,96,0,39,0,60,0,60,0,60,0,64,255,60,0,180,0,61,0,132,3,60,0,220,2,60,0,39,0,94,0,39,0,60,0,60,0,60,0,62,255,60,0,175,0,60,0,60,0,60,0,227,255,60,0,216,2,60,0,217,2,60,0,168,0,60,0,218,2,60,0,221,2,60,0,184,0,60,0,219,2,60,0,189,31,61,0,191,31,60,0,254,31,60,0,192,31,60,0,155,48,60,0,156,48,60,0,185,2,60,0,117,3,60,0,186,2,60,0,194,2,60,0,195,2,60,0,196,2,60,0,197,2,60,0,198,2,60,0,199,2,60,0,200,2,60,0,201,2,60,0,202,2,60,0,203,2,60,0,204,2,60,0,205,2,60,0,206,2,60,0,207,2,60,0,210,2,60,0,211,2,60,0,212,2,60,0,213,2,60,0,106,171,60,0,107,171,60,0,214,2,60,0,215,2,60,0,222,2,60,0,223,2,60,0,229,2,60,0,230,2,60,0,231,2,60,0,232,2,60,0,233,2,60,0,234,2,60,0,235,2,60,0,236,2,60,0,237,2,60,0,239,2,60,0,240,2,60,0,241,2,60,0,242,2,60,0,243,2,60,0,244,2,60,0,245,2,60,0,246,2,60,0,247,2,60,0,248,2,60,0,249,2,60,0,250,2,60,0,251,2,60,0,252,2,60,0,253,2,60,0,254,2,60,0,255,2,60,0,144,19,60,0,145,19,60,0,146,19,60,0,147,19,60,0,148,19,60,0,149,19,60,0,150,19,60,0,151,19,60,0,152,19,60,0,153,19,60,0,0,167,60,0,1,167,60,0,2,167,60,0,3,167,60,0,4,167,60,0,5,167,60,0,6,167,60,0,7,167,60,0,8,167,60,0,9,167,60,0,10,167,60,0,11,167,60,0,12,167,60,0,13,167,60,0,14,167,60,0,15,167,60,0,16,167,60,0,17,167,60,0,18,167,60,0,19,167,60,0,20,167,60,0,21,167,60,0,22,167,60,0,23,167,60,0,24,167,60,0,25,167,60,0,26,167,60,0,27,167,60,0,28,167,60,0,29,167,60,0,30,167,60,0,31,167,60,0,32,167,60,0,33,167,60,0,136,167,60,0,137,167,60,0,138,167,60,0,91,171,60,0,43,216,240,223,60,0,43,216,241,223,60,0,43,216,242,223,60,0,43,216,243,223,60,0,43,216,245,223,60,0,43,216,246,223,60,0,43,216,247,223,60,0,43,216,248,223,60,0,43,216,249,223,60,0,43,216,250,223,60,0,43,216,251,223,60,0,43,216,253,223,60,0,43,216,254,223,60,0,176,0,60,0,60,0,60,0,3,33,47,0,67,0,60,0,60,0,60,0,9,33,47,0,70,0,60,0,130,4,60,0,141,5,60,0,142,5,60,0,14,32,8,6,14,32,60,0,59,216,240,222,60,0,59,216,241,222,60,0,14,6,60,0,15,6,60,0,222,6,60,0,233,6,60,0,64,253,60,0,65,253,60,0,66,253,60,0,67,253,60,0,68,253,60,0,69,253,60,0,70,253,60,0,71,253,60,0,72,253,60,0,73,253,60,0,74,253,60,0,75,253,60,0,76,253,60,0,77,253,60,0,78,253,60,0,79,253,60,0,207,253,60,0,253,253,60,0,254,253,60,0,255,253,60,0,14,32,136,8,14,32,60,0,14,32,178,251,14,32,60,0,14,32,179,251,14,32,60,0,14,32,180,251,14,32,60,0,14,32,181,251,14,32,60,0,14,32,182,251,14,32,60,0,14,32,183,251,14,32,60,0,14,32,184,251,14,32,60,0,14,32,185,251,14,32,60,0,14,32,186,251,14,32,60,0,14,32,187,251,14,32,60,0,14,32,188,251,14,32,60,0,14,32,189,251,14,32,60,0,14,32,190,251,14,32,60,0,14,32,191,251,14,32,60,0,14,32,192,251,14,32,60,0,14,32,193,251,14,32,60,0,14,32,194,251,14,32,60,0,246,7,60,0,250,9,60,0,112,11,60,0,243,11,60,0,244,11,60,0,245,11,60,0,246,11,60,0,247,11,60,0,248,11,60,0,250,11,60,0,7,216,213,223,60,0,7,216,214,223,60,0,7,216,215,223,60,0,7,216,216,223,60,0,7,216,217,223,60,0,7,216,218,223,60,0,7,216,219,223,60,0,7,216,220,223,60,0,7,216,225,223,60,0,7,216,226,223,60,0,7,216,227,223,60,0,7,216,228,223,60,0,7,216,229,223,60,0,7,216,230,223,60,0,7,216,231,223,60,0,7,216,232,223,60,0,7,216,233,223,60,0,7,216,234,223,60,0,7,216,235,223,60,0,7,216,236,223,60,0,7,216,237,223,60,0,7,216,238,223,60,0,7,216,239,223,60,0,7,216,240,223,60,0,7,216,241,223,60,0,127,12,60,0,79,13,60,0,121,13,60,0,40,168,60,0,41,168,60,0,42,168,60,0,43,168,60,0,54,168,60,0,55,168,60,0,57,168,60,0,1,15,60,0,2,15,60,0,3,15,60,0,19,15,60,0,21,15,60,0,22,15,60,0,23,15,60,0,26,15,60,0,27,15,60,0,28,15,60,0,29,15,60,0,30,15,60,0,31,15,60,0,52,15,60,0,54,15,60,0,56,15,60,0,190,15,60,0,191,15,60,0,192,15,60,0,193,15,60,0,194,15,60,0,195,15,60,0,196,15,60,0,197,15,60,0,199,15,60,0,200,15,60,0,201,15,60,0,202,15,60,0,203,15,60,0,204,15,60,0,206,15,60,0,207,15,60,0,213,15,60,0,214,15,60,0,215,15,60,0,216,15,60,0,109,22,60,0,64,25,60,0,158,16,60,0,159,16,60,0,119,170,60,0,120,170,60,0,121,170,60,0,5,216,63,223,60,0,224,25,60,0,225,25,60,0,226,25,60,0,227,25,60,0,228,25,60,0,229,25,60,0,230,25,60,0,231,25,60,0,232,25,60,0,233,25,60,0,234,25,60,0,235,25,60,0,236,25,60,0,237,25,60,0,238,25,60,0,239,25,60,0,240,25,60,0,241,25,60,0,242,25,60,0,243,25,60,0,244,25,60,0,245,25,60,0,246,25,60,0,247,25,60,0,248,25,60,0,249,25,60,0,250,25,60,0,251,25,60,0,252,25,60,0,253,25,60,0,254,25,60,0,255,25,60,0,97,27,60,0,98,27,60,0,99,27,60,0,100,27,60,0,101,27,60,0,102,27,60,0,103,27,60,0,104,27,60,0,105,27,60,0,106,27,60,0,116,27,60,0,117,27,60,0,118,27,60,0,119,27,60,0,120,27,60,0,121,27,60,0,122,27,60,0,123,27,60,0,124,27,60,0,169,0,60,0,60,216,47,221,60,0,174,0,60,0,60,216,173,221,60,0,4,33,60,0,8,33,60,0,20,33,60,0,23,33,60,0,24,33,60,0,30,33,60,0,31,33,60,0,35,33,60,0,37,33,60,0,39,33,60,0,41,33,60,0,46,33,60,0,58,33,60,0,65,33,60,0,66,33,60,0,67,33,60,0,68,33,60,0,74,33,60,0,76,33,60,0,79,33,60,0,138,33,60,0,139,33,60,0,144,33,60,0,60,0,60,0,233,255,60,0,146,33,60,0,60,0,60,0,235,255,60,0,145,33,60,0,60,0,60,0,234,255,60,0,147,33,60,0,60,0,60,0,236,255,60,0,148,33,60,0,149,33,60,0,150,33,60,0,151,33,60,0,152,33,60,0,153,33,60,0,156,33,60,0,157,33,60,0,158,33,60,0,159,33,60,0,160,33,60,0,161,33,60,0,162,33,60,0,163,33,60,0,164,33,60,0,165,33,60,0,166,33,60,0,167,33,60,0,168,33,60,0,169,33,60,0,170,33,60,0,171,33,60,0,172,33,60,0,173,33,60,0,175,33,60,0,176,33,60,0,177,33,60,0,178,33,60,0,179,33,60,0,180,33,60,0,181,33,60,0,182,33,60,0,183,33,60,0,184,33,60,0,185,33,60,0,186,33,60,0,187,33,60,0,188,33,60,0,189,33,60,0,190,33,60,0,191,33,60,0,192,33,60,0,193,33,60,0,194,33,60,0,195,33,60,0,196,33,60,0,197,33,60,0,198,33,60,0,199,33,60,0,200,33,60,0,201,33,60,0,202,33,60,0,203,33,60,0,204,33,60,0,208,33,60,0,209,33,60,0,210,33,60,0,211,33,60,0,212,33,60,0,213,33,60,0,214,33,60,0,215,33,60,0,216,33,60,0,217,33,60,0,218,33,60,0,219,33,60,0,220,33,60,0,221,33,60,0,222,33,60,0,223,33,60,0,224,33,60,0,225,33,60,0,226,33,60,0,227,33,60,0,228,33,60,0,229,33,60,0,230,33,60,0,231,33,60,0,232,33,60,0,233,33,60,0,234,33,60,0,235,33,60,0,236,33,60,0,237,33,60,0,238,33,60,0,239,33,60,0,240,33,60,0,241,33,60,0,242,33,60,0,243,33,60,0,244,33,60,0,245,33,60,0,246,33,60,0,247,33,60,0,248,33,60,0,249,33,60,0,250,33,60,0,251,33,60,0,252,33,60,0,253,33,60,0,254,33,60,0,255,33,60,0,0,34,60,0,1,34,60,0,2,34,60,0,60,0,60,0,53,216,219,222,61,0,53,216,21,223,61,0,53,216,79,223,61,0,53,216,137,223,61,0,53,216,195,223,60,0,3,34,60,0,5,34,60,0,6,34,60,0,7,34,60,0,60,0,60,0,53,216,193,222,61,0,53,216,251,222,61,0,53,216,53,223,61,0,53,216,111,223,61,0,53,216,169,223,60,0,8,34,60,0,10,34,60,0,11,34,60,0,13,34,60,0,246,3,60,0,14,34,60,0,15,34,60,0,16,34,60,0,17,34,60,0,60,0,60,0,64,33,60,0,39,0,43,0,39,0,60,0,60,0,60,0,11,255,60,0,60,0,60,0,41,251,60,0,60,0,60,0,98,254,60,0,60,0,60,0,122,32,60,0,60,0,60,0,138,32,60,0,177,0,60,0,247,0,60,0,215,0,60,0,39,0,60,0,39,0,60,0,60,0,60,0,28,255,60,0,60,0,60,0,100,254,60,0,39,0,61,0,39,0,60,0,60,0,60,0,29,255,60,0,60,0,60,0,117,42,47,0,39,0,61,0,39,0,60,0,60,0,60,0,118,42,47,0,39,0,61,0,61,0,39,0,60,0,60,0,60,0,102,254,60,0,60,0,60,0,124,32,60,0,60,0,60,0,140,32,60,0,39,0,62,0,39,0,60,0,60,0,60,0,30,255,60,0,60,0,60,0,101,254,60,0,172,0,60,0,60,0,60,0,226,255,60,0,39,0,124,0,39,0,60,0,60,0,60,0,92,255,60,0,166,0,60,0,60,0,60,0,228,255,60,0,39,0,126,0,39,0,60,0,60,0,60,0,94,255,60,0,18,34,60,0,60,0,60,0,123,32,60,0,60,0,60,0,139,32,60,0,82,32,60,0,19,34,60,0,20,34,60,0,21,34,60,0,68,32,60,0,22,34,60,0,23,34,60,0,24,34,60,0,25,34,60,0,26,34,60,0,27,34,60,0,6,6,60,0,28,34,60,0,7,6,60,0,29,34,60,0,30,34,60,0,31,34,60,0,32,34,60,0,33,34,60,0,34,34,60,0,35,34,60,0,37,34,60,0,39,34,60,0,40,34,60,0,41,34,60,0,42,34,60,0,43,34,60,0,60,0,60,0,44,34,47,0,43,34,60,0,60,0,60,0,45,34,47,0,43,34,43,34,60,0,60,0,60,0,12,42,47,0,43,34,43,34,43,34,60,0,46,34,60,0,60,0,60,0,47,34,47,0,46,34,60,0,60,0,60,0,48,34,47,0,46,34,46,34,60,0,49,34,60,0,50,34,60,0,51,34,60,0,52,34,60,0,53,34,60,0,54,34,60,0,55,34,60,0,56,34,60,0,57,34,60,0,58,34,60,0,59,34,60,0,60,34,60,0,61,34,60,0,62,34,60,0,63,34,60,0,64,34,60,0,66,34,60,0,67,34,60,0,69,34,60,0,70,34,60,0,72,34,60,0,74,34,60,0,75,34,60,0,76,34,60,0,77,34,60,0,78,34,60,0,79,34,60,0,80,34,60,0,81,34,60,0,82,34,60,0,83,34,60,0,84,34,60,0,85,34,60,0,86,34,60,0,87,34,60,0,88,34,60,0,89,34,60,0,90,34,60,0,91,34,60,0,92,34,60,0,93,34,60,0,94,34,60,0,95,34,60,0,97,34,60,0,99,34,60,0,100,34,60,0,101,34,60,0,102,34,60,0,103,34,60,0,104,34,60,0,105,34,60,0,106,34,60,0,107,34,60,0,108,34,60,0,114,34,60,0,115,34,60,0,118,34,60,0,119,34,60,0,122,34,60,0,123,34,60,0,124,34,60,0,125,34,60,0,126,34,60,0,127,34,60,0,130,34,60,0,131,34,60,0,134,34,60,0,135,34,60,0,138,34,60,0,139,34,60,0,140,34,60,0,141,34,60,0,142,34,60,0,143,34,60,0,144,34,60,0,145,34,60,0,146,34,60,0,147,34,60,0,148,34,60,0,149,34,60,0,150,34,60,0,151,34,60,0,152,34,60,0,153,34,60,0,154,34,60,0,155,34,60,0,156,34,60,0,157,34,60,0,158,34,60,0,159,34,60,0,160,34,60,0,161,34,60,0,162,34,60,0,163,34,60,0,164,34,60,0,165,34,60,0,166,34,60,0,167,34,60,0,168,34,60,0,169,34,60,0,170,34,60,0,171,34,60,0,176,34,60,0,177,34,60,0,178,34,60,0,179,34,60,0,180,34,60,0,181,34,60,0,182,34,60,0,183,34,60,0,184,34,60,0,185,34,60,0,186,34,60,0,187,34,60,0,188,34,60,0,75,33,60,0,189,34,60,0,190,34,60,0,191,34,60,0,192,34,60,0,193,34,60,0,194,34,60,0,195,34,60,0,196,34,60,0,197,34,60,0,198,34,60,0,199,34,60,0,200,34,60,0,201,34,60,0,202,34,60,0,203,34,60,0,204,34,60,0,205,34,60,0,206,34,60,0,207,34,60,0,208,34,60,0,209,34,60,0,210,34,60,0,211,34,60,0,212,34,60,0,213,34,60,0,214,34,60,0,215,34,60,0,216,34,60,0,217,34,60,0,218,34,60,0,219,34,60,0,220,34,60,0,221,34,60,0,222,34,60,0,223,34,60,0,228,34,60,0,229,34,60,0,230,34,60,0,231,34,60,0,232,34,60,0,233,34,60,0,238,34,60,0,239,34,60,0,240,34,60,0,241,34,60,0,242,34,60,0,243,34,60,0,244,34,60,0,245,34,60,0,246,34,60,0,247,34,60,0,248,34,60,0,249,34,60,0,250,34,60,0,251,34,60,0,252,34,60,0,253,34,60,0,254,34,60,0,255,34,60,0,0,35,60,0,1,35,60,0,2,35,60,0,3,35,60,0,4,35,60,0,5,35,60,0,6,35,60,0,7,35,60,0,12,35,60,0,13,35,60,0,14,35,60,0,15,35,60,0,16,35,60,0,17,35,60,0,18,35,60,0,19,35,60,0,20,35,60,0,21,35,60,0,22,35,60,0,23,35,60,0,24,35,60,0,25,35,60,0,26,35,60,0,27,35,60,0,28,35,60,0,29,35,60,0,30,35,60,0,31,35,60,0,32,35,60,0,33,35,60,0,34,35,60,0,35,35,60,0,36,35,60,0,37,35,60,0,38,35,60,0,39,35,60,0,40,35,60,0,43,35,60,0,44,35,60,0,45,35,60,0,46,35,60,0,47,35,60,0,48,35,60,0,49,35,60,0,50,35,60,0,51,35,60,0,52,35,60,0,53,35,60,0,54,35,60,0,55,35,60,0,56,35,60,0,57,35,60,0,58,35,60,0,59,35,60,0,60,35,60,0,61,35,60,0,62,35,60,0,63,35,60,0,64,35,60,0,65,35,60,0,66,35,60,0,67,35,60,0,68,35,60,0,69,35,60,0,70,35,60,0,71,35,60,0,72,35,60,0,73,35,60,0,74,35,60,0,75,35,60,0,76,35,60,0,77,35,60,0,78,35,60,0,79,35,60,0,80,35,60,0,81,35,60,0,82,35,60,0,83,35,60,0,84,35,60,0,85,35,60,0,86,35,60,0,87,35,60,0,88,35,60,0,89,35,60,0,90,35,60,0,91,35,60,0,92,35,60,0,93,35,60,0,94,35,60,0,95,35,60,0,96,35,60,0,97,35,60,0,98,35,60,0,99,35,60,0,100,35,60,0,101,35,60,0,102,35,60,0,103,35,60,0,104,35,60,0,105,35,60,0,106,35,60,0,107,35,60,0,108,35,60,0,109,35,60,0,110,35,60,0,111,35,60,0,112,35,60,0,113,35,60,0,114,35,60,0,115,35,60,0,116,35,60,0,117,35,60,0,118,35,60,0,119,35,60,0,120,35,60,0,121,35,60,0,122,35,60,0,123,35,60,0,124,35,60,0,125,35,60,0,126,35,60,0,127,35,60,0,128,35,60,0,129,35,60,0,130,35,60,0,131,35,60,0,132,35,60,0,133,35,60,0,134,35,60,0,135,35,60,0,136,35,60,0,137,35,60,0,138,35,60,0,139,35,60,0,140,35,60,0,141,35,60,0,142,35,60,0,143,35,60,0,144,35,60,0,145,35,60,0,146,35,60,0,147,35,60,0,148,35,60,0,149,35,60,0,150,35,60,0,151,35,60,0,152,35,60,0,153,35,60,0,154,35,60,0,155,35,60,0,156,35,60,0,157,35,60,0,158,35,60,0,159,35,60,0,160,35,60,0,161,35,60,0,162,35,60,0,163,35,60,0,164,35,60,0,165,35,60,0,166,35,60,0,167,35,60,0,168,35,60,0,169,35,60,0,170,35,60,0,171,35,60,0,172,35,60,0,173,35,60,0,174,35,60,0,175,35,60,0,176,35,60,0,177,35,60,0,178,35,60,0,179,35,60,0,180,35,60,0,181,35,60,0,182,35,60,0,183,35,60,0,184,35,60,0,185,35,60,0,186,35,60,0,187,35,60,0,188,35,60,0,189,35,60,0,190,35,60,0,191,35,60,0,192,35,60,0,193,35,60,0,194,35,60,0,195,35,60,0,196,35,60,0,197,35,60,0,198,35,60,0,199,35,60,0,200,35,60,0,201,35,60,0,202,35,60,0,203,35,60,0,204,35,60,0,205,35,60,0,206,35,60,0,207,35,60,0,208,35,60,0,209,35,60,0,210,35,60,0,211,35,60,0,212,35,60,0,213,35,60,0,214,35,60,0,215,35,60,0,216,35,60,0,217,35,60,0,218,35,60,0,219,35,60,0,220,35,60,0,221,35,60,0,222,35,60,0,223,35,60,0,224,35,60,0,225,35,60,0,226,35,60,0,227,35,60,0,228,35,60,0,229,35,60,0,230,35,60,0,231,35,60,0,232,35,60,0,233,35,60,0,234,35,60,0,235,35,60,0,236,35,60,0,237,35,60,0,238,35,60,0,239,35,60,0,240,35,60,0,241,35,60,0,242,35,60,0,243,35,60,0,244,35,60,0,245,35,60,0,246,35,60,0,247,35,60,0,248,35,60,0,249,35,60,0,250,35,60,0,251,35,60,0,252,35,60,0,253,35,60,0,254,35,60,0,255,35,60,0,0,36,60,0,1,36,60,0,2,36,60,0,3,36,60,0,4,36,60,0,5,36,60,0,6,36,60,0,7,36,60,0,8,36,60,0,9,36,60,0,10,36,60,0,11,36,60,0,12,36,60,0,13,36,60,0,14,36,60,0,15,36,60,0,16,36,60,0,17,36,60,0,18,36,60,0,19,36,60,0,20,36,60,0,21,36,60,0,22,36,60,0,23,36,60,0,24,36,60,0,25,36,60,0,26,36,60,0,27,36,60,0,28,36,60,0,29,36,60,0,30,36,60,0,31,36,60,0,32,36,60,0,33,36,60,0,34,36,60,0,35,36,60,0,36,36,60,0,37,36,60,0,38,36,60,0,64,36,60,0,65,36,60,0,66,36,60,0,67,36,60,0,68,36,60,0,69,36,60,0,70,36,60,0,71,36,60,0,72,36,60,0,73,36,60,0,74,36,60,0,0,37,60,0,1,37,60,0,2,37,60,0,60,0,60,0,232,255,60,0,3,37,60,0,4,37,60,0,5,37,60,0,6,37,60,0,7,37,60,0,8,37,60,0,9,37,60,0,10,37,60,0,11,37,60,0,12,37,60,0,13,37,60,0,14,37,60,0,15,37,60,0,16,37,60,0,17,37,60,0,18,37,60,0,19,37,60,0,20,37,60,0,21,37,60,0,22,37,60,0,23,37,60,0,24,37,60,0,25,37,60,0,26,37,60,0,27,37,60,0,28,37,60,0,29,37,60,0,30,37,60,0,31,37,60,0,32,37,60,0,33,37,60,0,34,37,60,0,35,37,60,0,36,37,60,0,37,37,60,0,38,37,60,0,39,37,60,0,40,37,60,0,41,37,60,0,42,37,60,0,43,37,60,0,44,37,60,0,45,37,60,0,46,37,60,0,47,37,60,0,48,37,60,0,49,37,60,0,50,37,60,0,51,37,60,0,52,37,60,0,53,37,60,0,54,37,60,0,55,37,60,0,56,37,60,0,57,37,60,0,58,37,60,0,59,37,60,0,60,37,60,0,61,37,60,0,62,37,60,0,63,37,60,0,64,37,60,0,65,37,60,0,66,37,60,0,67,37,60,0,68,37,60,0,69,37,60,0,70,37,60,0,71,37,60,0,72,37,60,0,73,37,60,0,74,37,60,0,75,37,60,0,76,37,60,0,77,37,60,0,78,37,60,0,79,37,60,0,80,37,60,0,81,37,60,0,82,37,60,0,83,37,60,0,84,37,60,0,85,37,60,0,86,37,60,0,87,37,60,0,88,37,60,0,89,37,60,0,90,37,60,0,91,37,60,0,92,37,60,0,93,37,60,0,94,37,60,0,95,37,60,0,96,37,60,0,97,37,60,0,98,37,60,0,99,37,60,0,100,37,60,0,101,37,60,0,102,37,60,0,103,37,60,0,104,37,60,0,105,37,60,0,106,37,60,0,107,37,60,0,108,37,60,0,109,37,60,0,110,37,60,0,111,37,60,0,112,37,60,0,113,37,60,0,114,37,60,0,115,37,60,0,116,37,60,0,117,37,60,0,118,37,60,0,119,37,60,0,120,37,60,0,121,37,60,0,122,37,60,0,123,37,60,0,124,37,60,0,125,37,60,0,126,37,60,0,127,37,60,0,128,37,60,0,129,37,60,0,130,37,60,0,131,37,60,0,132,37,60,0,133,37,60,0,134,37,60,0,135,37,60,0,136,37,60,0,137,37,60,0,138,37,60,0,139,37,60,0,140,37,60,0,141,37,60,0,142,37,60,0,143,37,60,0,144,37,60,0,145,37,60,0,146,37,60,0,147,37,60,0,148,37,60,0,149,37,60,0,150,37,60,0,151,37,60,0,152,37,60,0,153,37,60,0,154,37,60,0,155,37,60,0,156,37,60,0,157,37,60,0,158,37,60,0,159,37,60,0,160,37,60,0,60,0,60,0,237,255,60,0,161,37,60,0,162,37,60,0,163,37,60,0,164,37,60,0,165,37,60,0,166,37,60,0,167,37,60,0,168,37,60,0,169,37,60,0,170,37,60,0,171,37,60,0,172,37,60,0,173,37,60,0,174,37,60,0,175,37,60,0,176,37,60,0,177,37,60,0,178,37,60,0,179,37,60,0,180,37,60,0,181,37,60,0,182,37,60,0,183,37,60,0,184,37,60,0,185,37,60,0,186,37,60,0,187,37,60,0,188,37,60,0,189,37,60,0,190,37,60,0,191,37,60,0,192,37,60,0,193,37,60,0,194,37,60,0,195,37,60,0,196,37,60,0,197,37,60,0,198,37,60,0,199,37,60,0,200,37,60,0,201,37,60,0,202,37,60,0,203,37,60,0,60,0,60,0,238,255,60,0,204,37,60,0,205,37,60,0,206,37,60,0,207,37,60,0,208,37,60,0,209,37,60,0,210,37,60,0,211,37,60,0,212,37,60,0,213,37,60,0,214,37,60,0,215,37,60,0,216,37,60,0,217,37,60,0,218,37,60,0,219,37,60,0,220,37,60,0,221,37,60,0,222,37,60,0,223,37,60,0,224,37,60,0,225,37,60,0,226,37,60,0,227,37,60,0,228,37,60,0,229,37,60,0,230,37,60,0,231,37,60,0,232,37,60,0,233,37,60,0,234,37,60,0,235,37,60,0,236,37,60,0,237,37,60,0,238,37,60,0,239,37,60,0,240,37,60,0,241,37,60,0,242,37,60,0,243,37,60,0,244,37,60,0,245,37,60,0,246,37,60,0,247,37,60,0,248,37,60,0,249,37,60,0,250,37,60,0,251,37,60,0,252,37,60,0,253,37,60,0,254,37,60,0,255,37,60,0,62,216,0,223,60,0,62,216,1,223,60,0,62,216,2,223,60,0,62,216,3,223,60,0,62,216,4,223,60,0,62,216,5,223,60,0,62,216,6,223,60,0,62,216,7,223,60,0,62,216,8,223,60,0,62,216,9,223,60,0,62,216,10,223,60,0,62,216,11,223,60,0,62,216,12,223,60,0,62,216,13,223,60,0,62,216,14,223,60,0,62,216,15,223,60,0,62,216,16,223,60,0,62,216,17,223,60,0,62,216,18,223,60,0,62,216,19,223,60,0,62,216,20,223,60,0,62,216,21,223,60,0,62,216,22,223,60,0,62,216,23,223,60,0,62,216,24,223,60,0,62,216,25,223,60,0,62,216,26,223,60,0,62,216,27,223,60,0,62,216,28,223,60,0,62,216,29,223,60,0,62,216,30,223,60,0,62,216,31,223,60,0,62,216,32,223,60,0,62,216,33,223,60,0,62,216,34,223,60,0,62,216,35,223,60,0,62,216,36,223,60,0,62,216,37,223,60,0,62,216,38,223,60,0,62,216,39,223,60,0,62,216,40,223,60,0,62,216,41,223,60,0,62,216,42,223,60,0,62,216,43,223,60,0,62,216,44,223,60,0,62,216,45,223,60,0,62,216,46,223,60,0,62,216,47,223,60,0,62,216,48,223,60,0,62,216,49,223,60,0,62,216,50,223,60,0,62,216,51,223,60,0,62,216,52,223,60,0,62,216,53,223,60,0,62,216,54,223,60,0,62,216,55,223,60,0,62,216,56,223,60,0,62,216,57,223,60,0,62,216,58,223,60,0,62,216,59,223,60,0,62,216,60,223,60,0,62,216,61,223,60,0,62,216,62,223,60,0,62,216,63,223,60,0,62,216,64,223,60,0,62,216,65,223,60,0,62,216,66,223,60,0,62,216,67,223,60,0,62,216,68,223,60,0,62,216,69,223,60,0,62,216,70,223,60,0,62,216,71,223,60,0,62,216,72,223,60,0,62,216,73,223,60,0,62,216,74,223,60,0,62,216,75,223,60,0,62,216,76,223,60,0,62,216,77,223,60,0,62,216,78,223,60,0,62,216,79,223,60,0,62,216,80,223,60,0,62,216,81,223,60,0,62,216,82,223,60,0,62,216,83,223,60,0,62,216,84,223,60,0,62,216,85,223,60,0,62,216,86,223,60,0,62,216,87,223,60,0,62,216,88,223,60,0,62,216,89,223,60,0,62,216,90,223,60,0,62,216,91,223,60,0,62,216,92,223,60,0,62,216,93,223,60,0,62,216,94,223,60,0,62,216,95,223,60,0,62,216,96,223,60,0,62,216,97,223,60,0,62,216,98,223,60,0,62,216,99,223,60,0,62,216,100,223,60,0,62,216,101,223,60,0,62,216,102,223,60,0,62,216,103,223,60,0,62,216,104,223,60,0,62,216,105,223,60,0,62,216,106,223,60,0,62,216,107,223,60,0,62,216,108,223,60,0,62,216,109,223,60,0,62,216,110,223,60,0,62,216,111,223,60,0,62,216,112,223,60,0,62,216,113,223,60,0,62,216,114,223,60,0,62,216,115,223,60,0,62,216,116,223,60,0,62,216,117,223,60,0,62,216,118,223,60,0,62,216,119,223,60,0,62,216,120,223,60,0,62,216,121,223,60,0,62,216,122,223,60,0,62,216,123,223,60,0,62,216,124,223,60,0,62,216,125,223,60,0,62,216,126,223,60,0,62,216,127,223,60,0,62,216,128,223,60,0,62,216,129,223,60,0,62,216,130,223,60,0,62,216,131,223,60,0,62,216,132,223,60,0,62,216,133,223,60,0,62,216,134,223,60,0,62,216,135,223,60,0,62,216,136,223,60,0,62,216,137,223,60,0,62,216,138,223,60,0,62,216,139,223,60,0,62,216,140,223,60,0,62,216,141,223,60,0,62,216,142,223,60,0,62,216,143,223,60,0,62,216,144,223,60,0,62,216,145,223,60,0,62,216,146,223,60,0,62,216,148,223,60,0,62,216,149,223,60,0,62,216,150,223,60,0,62,216,151,223,60,0,62,216,152,223,60,0,62,216,153,223,60,0,62,216,154,223,60,0,62,216,155,223,60,0,62,216,156,223,60,0,62,216,157,223,60,0,62,216,158,223,60,0,62,216,159,223,60,0,62,216,160,223,60,0,62,216,161,223,60,0,62,216,162,223,60,0,62,216,163,223,60,0,62,216,164,223,60,0,62,216,165,223,60,0,62,216,166,223,60,0,62,216,167,223,60,0,62,216,168,223,60,0,62,216,169,223,60,0,62,216,170,223,60,0,62,216,171,223,60,0,62,216,172,223,60,0,62,216,173,223,60,0,62,216,174,223,60,0,62,216,175,223,60,0,62,216,176,223,60,0,62,216,177,223,60,0,62,216,178,223,60,0,62,216,179,223,60,0,62,216,180,223,60,0,62,216,181,223,60,0,62,216,182,223,60,0,62,216,183,223,60,0,62,216,184,223,60,0,62,216,185,223,60,0,62,216,186,223,60,0,62,216,187,223,60,0,62,216,188,223,60,0,62,216,189,223,60,0,62,216,190,223,60,0,62,216,191,223,60,0,62,216,192,223,60,0,62,216,193,223,60,0,62,216,194,223,60,0,62,216,195,223,60,0,62,216,196,223,60,0,62,216,197,223,60,0,62,216,198,223,60,0,62,216,199,223,60,0,62,216,200,223,60,0,62,216,201,223,60,0,62,216,202,223,60,0,0,38,60,0,1,38,60,0,2,38,60,0,3,38,60,0,4,38,60,0,5,38,60,0,6,38,60,0,7,38,60,0,8,38,60,0,9,38,60,0,10,38,60,0,11,38,60,0,12,38,60,0,13,38,60,0,14,38,60,0,15,38,60,0,16,38,60,0,17,38,60,0,18,38,60,0,19,38,60,0,20,38,60,0,21,38,60,0,22,38,60,0,23,38,60,0,24,38,60,0,25,38,60,0,26,38,60,0,27,38,60,0,28,38,60,0,29,38,60,0,30,38,60,0,31,38,60,0,32,38,60,0,33,38,60,0,34,38,60,0,35,38,60,0,36,38,60,0,37,38,60,0,38,38,60,0,39,38,60,0,40,38,60,0,41,38,60,0,42,38,60,0,43,38,60,0,44,38,60,0,45,38,60,0,46,38,60,0,47,38,60,0,56,38,60,0,57,38,60,0,58,38,60,0,59,38,60,0,60,38,60,0,61,38,60,0,62,38,60,0,63,38,60,0,64,38,60,0,65,38,60,0,66,38,60,0,67,38,60,0,68,38,60,0,69,38,60,0,70,38,60,0,71,38,60,0,72,38,60,0,73,38,60,0,74,38,60,0,75,38,60,0,76,38,60,0,77,38,60,0,78,38,60,0,79,38,60,0,80,38,60,0,81,38,60,0,82,38,60,0,83,38,60,0,84,38,60,0,85,38,60,0,86,38,60,0,87,38,60,0,88,38,60,0,89,38,60,0,90,38,60,0,91,38,60,0,92,38,60,0,93,38,60,0,94,38,60,0,95,38,60,0,96,38,60,0,97,38,60,0,98,38,60,0,99,38,60,0,100,38,60,0,101,38,60,0,102,38,60,0,103,38,60,0,104,38,60,0,105,38,60,0,106,38,60,0,107,38,60,0,108,38,60,0,112,38,60,0,113,38,60,0,114,38,60,0,115,38,60,0,116,38,60,0,117,38,60,0,118,38,60,0,119,38,60,0,120,38,60,0,121,38,60,0,122,38,60,0,123,38,60,0,124,38,60,0,125,38,60,0,126,38,60,0,127,38,60,0,128,38,60,0,129,38,60,0,130,38,60,0,131,38,60,0,132,38,60,0,133,38,60,0,134,38,60,0,135,38,60,0,136,38,60,0,137,38,60,0,144,38,60,0,145,38,60,0,146,38,60,0,147,38,60,0,148,38,60,0,149,38,60,0,150,38,60,0,151,38,60,0,152,38,60,0,153,38,60,0,154,38,60,0,155,38,60,0,156,38,60,0,157,38,60,0,158,38,60,0,159,38,60,0,160,38,60,0,161,38,60,0,162,38,60,0,163,38,60,0,164,38,60,0,165,38,60,0,166,38,60,0,167,38,60,0,168,38,60,0,169,38,60,0,170,38,60,0,171,38,60,0,172,38,60,0,173,38,60,0,174,38,60,0,175,38,60,0,176,38,60,0,177,38,60,0,178,38,60,0,179,38,60,0,180,38,60,0,181,38,60,0,182,38,60,0,183,38,60,0,184,38,60,0,185,38,60,0,186,38,60,0,187,38,60,0,188,38,60,0,189,38,60,0,190,38,60,0,191,38,60,0,192,38,60,0,193,38,60,0,194,38,60,0,195,38,60,0,196,38,60,0,197,38,60,0,198,38,60,0,199,38,60,0,200,38,60,0,201,38,60,0,202,38,60,0,203,38,60,0,204,38,60,0,205,38,60,0,206,38,60,0,207,38,60,0,208,38,60,0,209,38,60,0,210,38,60,0,211,38,60,0,212,38,60,0,213,38,60,0,214,38,60,0,215,38,60,0,216,38,60,0,217,38,60,0,218,38,60,0,219,38,60,0,220,38,60,0,221,38,60,0,222,38,60,0,223,38,60,0,224,38,60,0,225,38,60,0,226,38,60,0,227,38,60,0,228,38,60,0,229,38,60,0,230,38,60,0,231,38,60,0,232,38,60,0,233,38,60,0,234,38,60,0,235,38,60,0,236,38,60,0,237,38,60,0,238,38,60,0,239,38,60,0,240,38,60,0,241,38,60,0,242,38,60,0,243,38,60,0,244,38,60,0,245,38,60,0,246,38,60,0,247,38,60,0,248,38,60,0,249,38,60,0,250,38,60,0,251,38,60,0,252,38,60,0,253,38,60,0,254,38,60,0,255,38,60,0,60,216,230,221,60,0,60,216,231,221,60,0,60,216,232,221,60,0,60,216,233,221,60,0,60,216,234,221,60,0,60,216,235,221,60,0,60,216,236,221,60,0,60,216,237,221,60,0,60,216,238,221,60,0,60,216,239,221,60,0,60,216,240,221,60,0,60,216,241,221,60,0,60,216,242,221,60,0,60,216,243,221,60,0,60,216,244,221,60,0,60,216,245,221,60,0,60,216,246,221,60,0,60,216,247,221,60,0,60,216,248,221,60,0,60,216,249,221,60,0,60,216,250,221,60,0,60,216,251,221,60,0,60,216,252,221,60,0,60,216,253,221,60,0,60,216,254,221,60,0,60,216,255,221,60,0,0,39,60,0,1,39,60,0,2,39,60,0,3,39,60,0,4,39,60,0,5,39,60,0,6,39,60,0,7,39,60,0,8,39,60,0,9,39,60,0,10,39,60,0,11,39,60,0,12,39,60,0,13,39,60,0,14,39,60,0,15,39,60,0,16,39,60,0,17,39,60,0,18,39,60,0,19,39,60,0,20,39,60,0,21,39,60,0,22,39,60,0,23,39,60,0,24,39,60,0,25,39,60,0,26,39,60,0,27,39,60,0,28,39,60,0,29,39,60,0,30,39,60,0,31,39,60,0,32,39,60,0,80,46,60,0,81,46,60,0,33,39,60,0,34,39,60,0,35,39,60,0,36,39,60,0,37,39,60,0,38,39,60,0,39,39,60,0,40,39,60,0,41,39,60,0,42,39,60,0,43,39,60,0,44,39,60,0,45,39,60,0,46,39,60,0,47,39,60,0,48,39,60,0,49,39,60,0,50,39,60,0,51,39,60,0,52,39,60,0,53,39,60,0,54,39,60,0,55,39,60,0,56,39,60,0,57,39,60,0,58,39,60,0,59,39,60,0,60,39,60,0,61,39,60,0,62,39,60,0,63,39,60,0,64,39,60,0,65,39,60,0,66,39,60,0,67,39,60,0,68,39,60,0,69,39,60,0,70,39,60,0,71,39,60,0,72,39,60,0,73,39,60,0,74,39,60,0,75,39,60,0,76,39,60,0,77,39,60,0,78,39,60,0,79,39,60,0,80,39,60,0,81,39,60,0,82,39,60,0,83,39,60,0,84,39,60,0,85,39,60,0,86,39,60,0,87,39,60,0,88,39,60,0,89,39,60,0,90,39,60,0,91,39,60,0,92,39,60,0,93,39,60,0,94,39,60,0,95,39,60,0,96,39,60,0,97,39,60,0,98,39,60,0,99,39,60,0,100,39,60,0,101,39,60,0,102,39,60,0,103,39,60,0,148,39,60,0,149,39,60,0,150,39,60,0,151,39,60,0,152,39,60,0,153,39,60,0,154,39,60,0,155,39,60,0,156,39,60,0,157,39,60,0,158,39,60,0,159,39,60,0,160,39,60,0,161,39,60,0,162,39,60,0,163,39,60,0,164,39,60,0,165,39,60,0,166,39,60,0,167,39,60,0,168,39,60,0,169,39,60,0,170,39,60,0,171,39,60,0,172,39,60,0,173,39,60,0,174,39,60,0,175,39,60,0,176,39,60,0,177,39,60,0,178,39,60,0,179,39,60,0,180,39,60,0,181,39,60,0,182,39,60,0,183,39,60,0,184,39,60,0,185,39,60,0,186,39,60,0,187,39,60,0,188,39,60,0,189,39,60,0,190,39,60,0,191,39,60,0,192,39,60,0,193,39,60,0,194,39,60,0,195,39,60,0,196,39,60,0,199,39,60,0,200,39,60,0,201,39,60,0,202,39,60,0,203,39,60,0,204,39,60,0,205,39,60,0,206,39,60,0,207,39,60,0,208,39,60,0,209,39,60,0,210,39,60,0,211,39,60,0,212,39,60,0,213,39,60,0,214,39,60,0,215,39,60,0,216,39,60,0,217,39,60,0,218,39,60,0,219,39,60,0,220,39,60,0,221,39,60,0,222,39,60,0,223,39,60,0,224,39,60,0,225,39,60,0,226,39,60,0,227,39,60,0,228,39,60,0,229,39,60,0,240,39,60,0,241,39,60,0,242,39,60,0,243,39,60,0,244,39,60,0,245,39,60,0,246,39,60,0,247,39,60,0,248,39,60,0,249,39,60,0,250,39,60,0,251,39,60,0,252,39,60,0,253,39,60,0,254,39,60,0,255,39,60,0,0,41,60,0,1,41,60,0,2,41,60,0,3,41,60,0,4,41,60,0,5,41,60,0,6,41,60,0,7,41,60,0,8,41,60,0,9,41,60,0,10,41,60,0,11,41,60,0,12,41,60,0,13,41,60,0,14,41,60,0,15,41,60,0,16,41,60,0,17,41,60,0,18,41,60,0,19,41,60,0,20,41,60,0,21,41,60,0,22,41,60,0,23,41,60,0,24,41,60,0,25,41,60,0,26,41,60,0,27,41,60,0,28,41,60,0,29,41,60,0,30,41,60,0,31,41,60,0,32,41,60,0,33,41,60,0,34,41,60,0,35,41,60,0,36,41,60,0,37,41,60,0,38,41,60,0,39,41,60,0,40,41,60,0,41,41,60,0,42,41,60,0,43,41,60,0,44,41,60,0,45,41,60,0,46,41,60,0,47,41,60,0,48,41,60,0,49,41,60,0,50,41,60,0,51,41,60,0,52,41,60,0,53,41,60,0,54,41,60,0,55,41,60,0,56,41,60,0,57,41,60,0,58,41,60,0,59,41,60,0,60,41,60,0,61,41,60,0,62,41,60,0,63,41,60,0,64,41,60,0,65,41,60,0,66,41,60,0,67,41,60,0,68,41,60,0,69,41,60,0,70,41,60,0,71,41,60,0,72,41,60,0,73,41,60,0,74,41,60,0,75,41,60,0,76,41,60,0,77,41,60,0,78,41,60,0,79,41,60,0,80,41,60,0,81,41,60,0,82,41,60,0,83,41,60,0,84,41,60,0,85,41,60,0,86,41,60,0,87,41,60,0,88,41,60,0,89,41,60,0,90,41,60,0,91,41,60,0,92,41,60,0,93,41,60,0,94,41,60,0,95,41,60,0,96,41,60,0,97,41,60,0,98,41,60,0,99,41,60,0,100,41,60,0,101,41,60,0,102,41,60,0,103,41,60,0,104,41,60,0,105,41,60,0,106,41,60,0,107,41,60,0,108,41,60,0,109,41,60,0,110,41,60,0,111,41,60,0,112,41,60,0,113,41,60,0,114,41,60,0,115,41,60,0,116,41,60,0,117,41,60,0,118,41,60,0,119,41,60,0,120,41,60,0,121,41,60,0,122,41,60,0,123,41,60,0,124,41,60,0,125,41,60,0,126,41,60,0,127,41,60,0,128,41,60,0,129,41,60,0,130,41,60,0,153,41,60,0,154,41,60,0,155,41,60,0,156,41,60,0,157,41,60,0,158,41,60,0,159,41,60,0,160,41,60,0,161,41,60,0,162,41,60,0,163,41,60,0,164,41,60,0,165,41,60,0,166,41,60,0,167,41,60,0,168,41,60,0,169,41,60,0,170,41,60,0,171,41,60,0,172,41,60,0,173,41,60,0,174,41,60,0,175,41,60,0,176,41,60,0,177,41,60,0,178,41,60,0,179,41,60,0,180,41,60,0,181,41,60,0,182,41,60,0,183,41,60,0,184,41,60,0,185,41,60,0,186,41,60,0,187,41,60,0,188,41,60,0,189,41,60,0,190,41,60,0,191,41,60,0,192,41,60,0,193,41,60,0,194,41,60,0,195,41,60,0,196,41,60,0,197,41,60,0,198,41,60,0,199,41,60,0,200,41,60,0,201,41,60,0,202,41,60,0,203,41,60,0,204,41,60,0,205,41,60,0,206,41,60,0,207,41,60,0,208,41,60,0,209,41,60,0,210,41,60,0,211,41,60,0,212,41,60,0,213,41,60,0,214,41,60,0,215,41,60,0,220,41,60,0,221,41,60,0,222,41,60,0,223,41,60,0,224,41,60,0,225,41,60,0,226,41,60,0,227,41,60,0,228,41,60,0,229,41,60,0,230,41,60,0,231,41,60,0,232,41,60,0,233,41,60,0,234,41,60,0,235,41,60,0,236,41,60,0,237,41,60,0,238,41,60,0,239,41,60,0,240,41,60,0,241,41,60,0,242,41,60,0,243,41,60,0,244,41,60,0,245,41,60,0,246,41,60,0,247,41,60,0,248,41,60,0,249,41,60,0,250,41,60,0,251,41,60,0,254,41,60,0,255,41,60,0,0,42,60,0,1,42,60,0,2,42,60,0,3,42,60,0,4,42,60,0,5,42,60,0,6,42,60,0,7,42,60,0,8,42,60,0,9,42,60,0,10,42,60,0,11,42,60,0,13,42,60,0,14,42,60,0,15,42,60,0,16,42,60,0,17,42,60,0,18,42,60,0,19,42,60,0,20,42,60,0,21,42,60,0,22,42,60,0,23,42,60,0,24,42,60,0,25,42,60,0,26,42,60,0,27,42,60,0,28,42,60,0,29,42,60,0,30,42,60,0,31,42,60,0,32,42,60,0,33,42,60,0,34,42,60,0,35,42,60,0,36,42,60,0,37,42,60,0,38,42,60,0,39,42,60,0,40,42,60,0,41,42,60,0,42,42,60,0,43,42,60,0,44,42,60,0,45,42,60,0,46,42,60,0,47,42,60,0,48,42,60,0,49,42,60,0,50,42,60,0,51,42,60,0,52,42,60,0,53,42,60,0,54,42,60,0,55,42,60,0,56,42,60,0,57,42,60,0,58,42,60,0,59,42,60,0,60,42,60,0,61,42,60,0,62,42,60,0,63,42,60,0,64,42,60,0,65,42,60,0,66,42,60,0,67,42,60,0,68,42,60,0,69,42,60,0,70,42,60,0,71,42,60,0,72,42,60,0,73,42,60,0,74,42,60,0,75,42,60,0,76,42,60,0,77,42,60,0,78,42,60,0,79,42,60,0,80,42,60,0,81,42,60,0,82,42,60,0,83,42,60,0,84,42,60,0,85,42,60,0,86,42,60,0,87,42,60,0,88,42,60,0,89,42,60,0,90,42,60,0,91,42,60,0,92,42,60,0,93,42,60,0,94,42,60,0,95,42,60,0,96,42,60,0,97,42,60,0,98,42,60,0,99,42,60,0,100,42,60,0,101,42,60,0,102,42,60,0,103,42,60,0,104,42,60,0,105,42,60,0,106,42,60,0,107,42,60,0,108,42,60,0,109,42,60,0,110,42,60,0,111,42,60,0,112,42,60,0,113,42,60,0,114,42,60,0,115,42,60,0,119,42,60,0,120,42,60,0,121,42,60,0,122,42,60,0,123,42,60,0,124,42,60,0,125,42,60,0,126,42,60,0,127,42,60,0,128,42,60,0,129,42,60,0,130,42,60,0,131,42,60,0,132,42,60,0,133,42,60,0,134,42,60,0,135,42,60,0,136,42,60,0,137,42,60,0,138,42,60,0,139,42,60,0,140,42,60,0,141,42,60,0,142,42,60,0,143,42,60,0,144,42,60,0,145,42,60,0,146,42,60,0,147,42,60,0,148,42,60,0,149,42,60,0,150,42,60,0,151,42,60,0,152,42,60,0,153,42,60,0,154,42,60,0,155,42,60,0,156,42,60,0,157,42,60,0,158,42,60,0,159,42,60,0,160,42,60,0,161,42,60,0,162,42,60,0,163,42,60,0,164,42,60,0,165,42,60,0,166,42,60,0,167,42,60,0,168,42,60,0,169,42,60,0,170,42,60,0,171,42,60,0,172,42,60,0,173,42,60,0,174,42,60,0,175,42,60,0,176,42,60,0,177,42,60,0,178,42,60,0,179,42,60,0,180,42,60,0,181,42,60,0,182,42,60,0,183,42,60,0,184,42,60,0,185,42,60,0,186,42,60,0,187,42,60,0,188,42,60,0,189,42,60,0,190,42,60,0,191,42,60,0,192,42,60,0,193,42,60,0,194,42,60,0,195,42,60,0,196,42,60,0,197,42,60,0,198,42,60,0,199,42,60,0,200,42,60,0,201,42,60,0,202,42,60,0,203,42,60,0,204,42,60,0,205,42,60,0,206,42,60,0,207,42,60,0,208,42,60,0,209,42,60,0,210,42,60,0,211,42,60,0,212,42,60,0,213,42,60,0,214,42,60,0,215,42,60,0,216,42,60,0,217,42,60,0,218,42,60,0,219,42,60,0,221,42,60,0,222,42,60,0,223,42,60,0,224,42,60,0,225,42,60,0,226,42,60,0,227,42,60,0,228,42,60,0,229,42,60,0,230,42,60,0,231,42,60,0,232,42,60,0,233,42,60,0,234,42,60,0,235,42,60,0,236,42,60,0,237,42,60,0,238,42,60,0,239,42,60,0,240,42,60,0,241,42,60,0,242,42,60,0,243,42,60,0,244,42,60,0,245,42,60,0,246,42,60,0,247,42,60,0,248,42,60,0,249,42,60,0,250,42,60,0,251,42,60,0,252,42,60,0,253,42,60,0,254,42,60,0,255,42,60,0,0,43,60,0,1,43,60,0,2,43,60,0,3,43,60,0,4,43,60,0,5,43,60,0,6,43,60,0,7,43,60,0,8,43,60,0,9,43,60,0,10,43,60,0,11,43,60,0,12,43,60,0,13,43,60,0,14,43,60,0,15,43,60,0,16,43,60,0,17,43,60,0,18,43,60,0,19,43,60,0,20,43,60,0,21,43,60,0,22,43,60,0,23,43,60,0,24,43,60,0,25,43,60,0,26,43,60,0,27,43,60,0,28,43,60,0,29,43,60,0,30,43,60,0,31,43,60,0,32,43,60,0,33,43,60,0,34,43,60,0,35,43,60,0,36,43,60,0,37,43,60,0,38,43,60,0,39,43,60,0,40,43,60,0,41,43,60,0,42,43,60,0,43,43,60,0,44,43,60,0,45,43,60,0,46,43,60,0,47,43,60,0,48,43,60,0,49,43,60,0,50,43,60,0,51,43,60,0,52,43,60,0,53,43,60,0,54,43,60,0,55,43,60,0,56,43,60,0,57,43,60,0,58,43,60,0,59,43,60,0,60,43,60,0,61,43,60,0,62,43,60,0,63,43,60,0,64,43,60,0,65,43,60,0,66,43,60,0,67,43,60,0,68,43,60,0,69,43,60,0,70,43,60,0,71,43,60,0,72,43,60,0,73,43,60,0,74,43,60,0,75,43,60,0,76,43,60,0,77,43,60,0,78,43,60,0,79,43,60,0,80,43,60,0,81,43,60,0,82,43,60,0,83,43,60,0,84,43,60,0,85,43,60,0,86,43,60,0,87,43,60,0,88,43,60,0,89,43,60,0,90,43,60,0,91,43,60,0,92,43,60,0,93,43,60,0,94,43,60,0,95,43,60,0,96,43,60,0,97,43,60,0,98,43,60,0,99,43,60,0,100,43,60,0,101,43,60,0,102,43,60,0,103,43,60,0,104,43,60,0,105,43,60,0,106,43,60,0,107,43,60,0,108,43,60,0,109,43,60,0,110,43,60,0,111,43,60,0,112,43,60,0,113,43,60,0,114,43,60,0,115,43,60,0,118,43,60,0,119,43,60,0,120,43,60,0,121,43,60,0,122,43,60,0,123,43,60,0,124,43,60,0,125,43,60,0,126,43,60,0,127,43,60,0,128,43,60,0,129,43,60,0,130,43,60,0,131,43,60,0,132,43,60,0,133,43,60,0,134,43,60,0,135,43,60,0,136,43,60,0,137,43,60,0,138,43,60,0,139,43,60,0,140,43,60,0,141,43,60,0,142,43,60,0,143,43,60,0,144,43,60,0,145,43,60,0,146,43,60,0,147,43,60,0,148,43,60,0,149,43,60,0,151,43,60,0,152,43,60,0,153,43,60,0,154,43,60,0,155,43,60,0,156,43,60,0,157,43,60,0,158,43,60,0,159,43,60,0,160,43,60,0,161,43,60,0,162,43,60,0,163,43,60,0,164,43,60,0,165,43,60,0,166,43,60,0,167,43,60,0,168,43,60,0,169,43,60,0,170,43,60,0,171,43,60,0,172,43,60,0,173,43,60,0,174,43,60,0,175,43,60,0,176,43,60,0,177,43,60,0,178,43,60,0,179,43,60,0,180,43,60,0,181,43,60,0,182,43,60,0,183,43,60,0,184,43,60,0,185,43,60,0,186,43,60,0,187,43,60,0,188,43,60,0,189,43,60,0,190,43,60,0,191,43,60,0,192,43,60,0,193,43,60,0,194,43,60,0,195,43,60,0,196,43,60,0,197,43,60,0,198,43,60,0,199,43,60,0,200,43,60,0,201,43,60,0,202,43,60,0,203,43,60,0,204,43,60,0,205,43,60,0,206,43,60,0,207,43,60,0,208,43,60,0,209,43,60,0,210,43,60,0,211,43,60,0,212,43,60,0,213,43,60,0,214,43,60,0,215,43,60,0,216,43,60,0,217,43,60,0,218,43,60,0,219,43,60,0,220,43,60,0,221,43,60,0,222,43,60,0,223,43,60,0,224,43,60,0,225,43,60,0,226,43,60,0,227,43,60,0,228,43,60,0,229,43,60,0,230,43,60,0,231,43,60,0,232,43,60,0,233,43,60,0,234,43,60,0,235,43,60,0,236,43,60,0,237,43,60,0,238,43,60,0,239,43,60,0,240,43,60,0,241,43,60,0,242,43,60,0,243,43,60,0,244,43,60,0,245,43,60,0,246,43,60,0,247,43,60,0,248,43,60,0,249,43,60,0,250,43,60,0,251,43,60,0,252,43,60,0,253,43,60,0,254,43,60,0,255,43,60,0,229,44,60,0,230,44,60,0,231,44,60,0,232,44,60,0,233,44,60,0,234,44,60,0,0,40,60,0,1,40,60,0,2,40,60,0,3,40,60,0,4,40,60,0,5,40,60,0,6,40,60,0,7,40,60,0,8,40,60,0,9,40,60,0,10,40,60,0,11,40,60,0,12,40,60,0,13,40,60,0,14,40,60,0,15,40,60,0,16,40,60,0,17,40,60,0,18,40,60,0,19,40,60,0,20,40,60,0,21,40,60,0,22,40,60,0,23,40,60,0,24,40,60,0,25,40,60,0,26,40,60,0,27,40,60,0,28,40,60,0,29,40,60,0,30,40,60,0,31,40,60,0,32,40,60,0,33,40,60,0,34,40,60,0,35,40,60,0,36,40,60,0,37,40,60,0,38,40,60,0,39,40,60,0,40,40,60,0,41,40,60,0,42,40,60,0,43,40,60,0,44,40,60,0,45,40,60,0,46,40,60,0,47,40,60,0,48,40,60,0,49,40,60,0,50,40,60,0,51,40,60,0,52,40,60,0,53,40,60,0,54,40,60,0,55,40,60,0,56,40,60,0,57,40,60,0,58,40,60,0,59,40,60,0,60,40,60,0,61,40,60,0,62,40,60,0,63,40,60,0,64,40,60,0,65,40,60,0,66,40,60,0,67,40,60,0,68,40,60,0,69,40,60,0,70,40,60,0,71,40,60,0,72,40,60,0,73,40,60,0,74,40,60,0,75,40,60,0,76,40,60,0,77,40,60,0,78,40,60,0,79,40,60,0,80,40,60,0,81,40,60,0,82,40,60,0,83,40,60,0,84,40,60,0,85,40,60,0,86,40,60,0,87,40,60,0,88,40,60,0,89,40,60,0,90,40,60,0,91,40,60,0,92,40,60,0,93,40,60,0,94,40,60,0,95,40,60,0,96,40,60,0,97,40,60,0,98,40,60,0,99,40,60,0,100,40,60,0,101,40,60,0,102,40,60,0,103,40,60,0,104,40,60,0,105,40,60,0,106,40,60,0,107,40,60,0,108,40,60,0,109,40,60,0,110,40,60,0,111,40,60,0,112,40,60,0,113,40,60,0,114,40,60,0,115,40,60,0,116,40,60,0,117,40,60,0,118,40,60,0,119,40,60,0,120,40,60,0,121,40,60,0,122,40,60,0,123,40,60,0,124,40,60,0,125,40,60,0,126,40,60,0,127,40,60,0,128,40,60,0,129,40,60,0,130,40,60,0,131,40,60,0,132,40,60,0,133,40,60,0,134,40,60,0,135,40,60,0,136,40,60,0,137,40,60,0,138,40,60,0,139,40,60,0,140,40,60,0,141,40,60,0,142,40,60,0,143,40,60,0,144,40,60,0,145,40,60,0,146,40,60,0,147,40,60,0,148,40,60,0,149,40,60,0,150,40,60,0,151,40,60,0,152,40,60,0,153,40,60,0,154,40,60,0,155,40,60,0,156,40,60,0,157,40,60,0,158,40,60,0,159,40,60,0,160,40,60,0,161,40,60,0,162,40,60,0,163,40,60,0,164,40,60,0,165,40,60,0,166,40,60,0,167,40,60,0,168,40,60,0,169,40,60,0,170,40,60,0,171,40,60,0,172,40,60,0,173,40,60,0,174,40,60,0,175,40,60,0,176,40,60,0,177,40,60,0,178,40,60,0,179,40,60,0,180,40,60,0,181,40,60,0,182,40,60,0,183,40,60,0,184,40,60,0,185,40,60,0,186,40,60,0,187,40,60,0,188,40,60,0,189,40,60,0,190,40,60,0,191,40,60,0,192,40,60,0,193,40,60,0,194,40,60,0,195,40,60,0,196,40,60,0,197,40,60,0,198,40,60,0,199,40,60,0,200,40,60,0,201,40,60,0,202,40,60,0,203,40,60,0,204,40,60,0,205,40,60,0,206,40,60,0,207,40,60,0,208,40,60,0,209,40,60,0,210,40,60,0,211,40,60,0,212,40,60,0,213,40,60,0,214,40,60,0,215,40,60,0,216,40,60,0,217,40,60,0,218,40,60,0,219,40,60,0,220,40,60,0,221,40,60,0,222,40,60,0,223,40,60,0,224,40,60,0,225,40,60,0,226,40,60,0,227,40,60,0,228,40,60,0,229,40,60,0,230,40,60,0,231,40,60,0,232,40,60,0,233,40,60,0,234,40,60,0,235,40,60,0,236,40,60,0,237,40,60,0,238,40,60,0,239,40,60,0,240,40,60,0,241,40,60,0,242,40,60,0,243,40,60,0,244,40,60,0,245,40,60,0,246,40,60,0,247,40,60,0,248,40,60,0,249,40,60,0,250,40,60,0,251,40,60,0,252,40,60,0,253,40,60,0,254,40,60,0,255,40,60,0,138,38,60,0,139,38,60,0,140,38,60,0,141,38,60,0,142,38,60,0,143,38,60,0,48,38,60,0,49,38,60,0,50,38,60,0,51,38,60,0,52,38,60,0,53,38,60,0,54,38,60,0,55,38,60,0,192,77,60,0,193,77,60,0,194,77,60,0,195,77,60,0,196,77,60,0,197,77,60,0,198,77,60,0,199,77,60,0,200,77,60,0,201,77,60,0,202,77,60,0,203,77,60,0,204,77,60,0,205,77,60,0,206,77,60,0,207,77,60,0,208,77,60,0,209,77,60,0,210,77,60,0,211,77,60,0,212,77,60,0,213,77,60,0,214,77,60,0,215,77,60,0,216,77,60,0,217,77,60,0,218,77,60,0,219,77,60,0,220,77,60,0,221,77,60,0,222,77,60,0,223,77,60,0,224,77,60,0,225,77,60,0,226,77,60,0,227,77,60,0,228,77,60,0,229,77,60,0,230,77,60,0,231,77,60,0,232,77,60,0,233,77,60,0,234,77,60,0,235,77,60,0,236,77,60,0,237,77,60,0,238,77,60,0,239,77,60,0,240,77,60,0,241,77,60,0,242,77,60,0,243,77,60,0,244,77,60,0,245,77,60,0,246,77,60,0,247,77,60,0,248,77,60,0,249,77,60,0,250,77,60,0,251,77,60,0,252,77,60,0,253,77,60,0,254,77,60,0,255,77,60,0,52,216,0,223,60,0,52,216,1,223,60,0,52,216,2,223,60,0,52,216,3,223,60,0,52,216,4,223,60,0,52,216,5,223,60,0,52,216,6,223,60,0,52,216,7,223,60,0,52,216,8,223,60,0,52,216,9,223,60,0,52,216,10,223,60,0,52,216,11,223,60,0,52,216,12,223,60,0,52,216,13,223,60,0,52,216,14,223,60,0,52,216,15,223,60,0,52,216,16,223,60,0,52,216,17,223,60,0,52,216,18,223,60,0,52,216,19,223,60,0,52,216,20,223,60,0,52,216,21,223,60,0,52,216,22,223,60,0,52,216,23,223,60,0,52,216,24,223,60,0,52,216,25,223,60,0,52,216,26,223,60,0,52,216,27,223,60,0,52,216,28,223,60,0,52,216,29,223,60,0,52,216,30,223,60,0,52,216,31,223,60,0,52,216,32,223,60,0,52,216,33,223,60,0,52,216,34,223,60,0,52,216,35,223,60,0,52,216,36,223,60,0,52,216,37,223,60,0,52,216,38,223,60,0,52,216,39,223,60,0,52,216,40,223,60,0,52,216,41,223,60,0,52,216,42,223,60,0,52,216,43,223,60,0,52,216,44,223,60,0,52,216,45,223,60,0,52,216,46,223,60,0,52,216,47,223,60,0,52,216,48,223,60,0,52,216,49,223,60,0,52,216,50,223,60,0,52,216,51,223,60,0,52,216,52,223,60,0,52,216,53,223,60,0,52,216,54,223,60,0,52,216,55,223,60,0,52,216,56,223,60,0,52,216,57,223,60,0,52,216,58,223,60,0,52,216,59,223,60,0,52,216,60,223,60,0,52,216,61,223,60,0,52,216,62,223,60,0,52,216,63,223,60,0,52,216,64,223,60,0,52,216,65,223,60,0,52,216,66,223,60,0,52,216,67,223,60,0,52,216,68,223,60,0,52,216,69,223,60,0,52,216,70,223,60,0,52,216,71,223,60,0,52,216,72,223,60,0,52,216,73,223,60,0,52,216,74,223,60,0,52,216,75,223,60,0,52,216,76,223,60,0,52,216,77,223,60,0,52,216,78,223,60,0,52,216,79,223,60,0,52,216,80,223,60,0,52,216,81,223,60,0,52,216,82,223,60,0,52,216,83,223,60,0,52,216,84,223,60,0,52,216,85,223,60,0,52,216,86,223,60,0,144,164,60,0,145,164,60,0,146,164,60,0,147,164,60,0,148,164,60,0,149,164,60,0,150,164,60,0,151,164,60,0,152,164,60,0,153,164,60,0,154,164,60,0,155,164,60,0,156,164,60,0,157,164,60,0,158,164,60,0,159,164,60,0,160,164,60,0,161,164,60,0,162,164,60,0,163,164,60,0,164,164,60,0,165,164,60,0,166,164,60,0,167,164,60,0,168,164,60,0,169,164,60,0,170,164,60,0,171,164,60,0,172,164,60,0,173,164,60,0,174,164,60,0,175,164,60,0,176,164,60,0,177,164,60,0,178,164,60,0,179,164,60,0,180,164,60,0,181,164,60,0,182,164,60,0,183,164,60,0,184,164,60,0,185,164,60,0,186,164,60,0,187,164,60,0,188,164,60,0,189,164,60,0,190,164,60,0,191,164,60,0,192,164,60,0,193,164,60,0,194,164,60,0,195,164,60,0,196,164,60,0,197,164,60,0,198,164,60,0,0,216,55,221,60,0,0,216,56,221,60,0,0,216,57,221,60,0,0,216,58,221,60,0,0,216,59,221,60,0,0,216,60,221,60,0,0,216,61,221,60,0,0,216,62,221,60,0,0,216,63,221,60,0,0,216,121,221,60,0,0,216,122,221,60,0,0,216,123,221,60,0,0,216,124,221,60,0,0,216,125,221,60,0,0,216,126,221,60,0,0,216,127,221,60,0,0,216,128,221,60,0,0,216,129,221,60,0,0,216,130,221,60,0,0,216,131,221,60,0,0,216,132,221,60,0,0,216,133,221,60,0,0,216,134,221,60,0,0,216,135,221,60,0,0,216,136,221,60,0,0,216,137,221,60,0,0,216,140,221,60,0,0,216,141,221,60,0,0,216,142,221,60,0,0,216,144,221,60,0,0,216,145,221,60,0,0,216,146,221,60,0,0,216,147,221,60,0,0,216,148,221,60,0,0,216,149,221,60,0,0,216,150,221,60,0,0,216,151,221,60,0,0,216,152,221,60,0,0,216,153,221,60,0,0,216,154,221,60,0,0,216,155,221,60,0,0,216,156,221,60,0,0,216,160,221,60,0,0,216,208,221,60,0,0,216,209,221,60,0,0,216,210,221,60,0,0,216,211,221,60,0,0,216,212,221,60,0,0,216,213,221,60,0,0,216,214,221,60,0,0,216,215,221,60,0,0,216,216,221,60,0,0,216,217,221,60,0,0,216,218,221,60,0,0,216,219,221,60,0,0,216,220,221,60,0,0,216,221,221,60,0,0,216,222,221,60,0,0,216,223,221,60,0,0,216,224,221,60,0,0,216,225,221,60,0,0,216,226,221,60,0,0,216,227,221,60,0,0,216,228,221,60,0,0,216,229,221,60,0,0,216,230,221,60,0,0,216,231,221,60,0,0,216,232,221,60,0,0,216,233,221,60,0,0,216,234,221,60,0,0,216,235,221,60,0,0,216,236,221,60,0,0,216,237,221,60,0,0,216,238,221,60,0,0,216,239,221,60,0,0,216,240,221,60,0,0,216,241,221,60,0,0,216,242,221,60,0,0,216,243,221,60,0,0,216,244,221,60,0,0,216,245,221,60,0,0,216,246,221,60,0,0,216,247,221,60,0,0,216,248,221,60,0,0,216,249,221,60,0,0,216,250,221,60,0,0,216,251,221,60,0,0,216,252,221,60,0,14,32,2,216,119,220,14,32,60,0,14,32,2,216,120,220,14,32,60,0,26,216,60,223,60,0,26,216,61,223,60,0,26,216,62,223,60,0,26,216,63,223,60,0,26,216,69,223,60,0,56,216,79,221,60,0,51,216,80,223,60,0,51,216,81,223,60,0,51,216,82,223,60,0,51,216,83,223,60,0,51,216,84,223,60,0,51,216,85,223,60,0,51,216,86,223,60,0,51,216,87,223,60,0,51,216,88,223,60,0,51,216,89,223,60,0,51,216,90,223,60,0,51,216,91,223,60,0,51,216,92,223,60,0,51,216,93,223,60,0,51,216,94,223,60,0,51,216,95,223,60,0,51,216,96,223,60,0,51,216,97,223,60,0,51,216,98,223,60,0,51,216,99,223,60,0,51,216,100,223,60,0,51,216,101,223,60,0,51,216,102,223,60,0,51,216,103,223,60,0,51,216,104,223,60,0,51,216,105,223,60,0,51,216,106,223,60,0,51,216,107,223,60,0,51,216,108,223,60,0,51,216,109,223,60,0,51,216,110,223,60,0,51,216,111,223,60,0,51,216,112,223,60,0,51,216,113,223,60,0,51,216,114,223,60,0,51,216,115,223,60,0,51,216,116,223,60,0,51,216,117,223,60,0,51,216,118,223,60,0,51,216,119,223,60,0,51,216,120,223,60,0,51,216,121,223,60,0,51,216,122,223,60,0,51,216,123,223,60,0,51,216,124,223,60,0,51,216,125,223,60,0,51,216,126,223,60,0,51,216,127,223,60,0,51,216,128,223,60,0,51,216,129,223,60,0,51,216,130,223,60,0,51,216,131,223,60,0,51,216,132,223,60,0,51,216,133,223,60,0,51,216,134,223,60,0,51,216,135,223,60,0,51,216,136,223,60,0,51,216,137,223,60,0,51,216,138,223,60,0,51,216,139,223,60,0,51,216,140,223,60,0,51,216,141,223,60,0,51,216,142,223,60,0,51,216,143,223,60,0,51,216,144,223,60,0,51,216,145,223,60,0,51,216,146,223,60,0,51,216,147,223,60,0,51,216,148,223,60,0,51,216,149,223,60,0,51,216,150,223,60,0,51,216,151,223,60,0,51,216,152,223,60,0,51,216,153,223,60,0,51,216,154,223,60,0,51,216,155,223,60,0,51,216,156,223,60,0,51,216,157,223,60,0,51,216,158,223,60,0,51,216,159,223,60,0,51,216,160,223,60,0,51,216,161,223,60,0,51,216,162,223,60,0,51,216,163,223,60,0,51,216,164,223,60,0,51,216,165,223,60,0,51,216,166,223,60,0,51,216,167,223,60,0,51,216,168,223,60,0,51,216,169,223,60,0,51,216,170,223,60,0,51,216,171,223,60,0,51,216,172,223,60,0,51,216,173,223,60,0,51,216,174,223,60,0,51,216,175,223,60,0,51,216,176,223,60,0,51,216,177,223,60,0,51,216,178,223,60,0,51,216,179,223,60,0,51,216,180,223,60,0,51,216,181,223,60,0,51,216,182,223,60,0,51,216,183,223,60,0,51,216,184,223,60,0,51,216,185,223,60,0,51,216,186,223,60,0,51,216,187,223,60,0,51,216,188,223,60,0,51,216,189,223,60,0,51,216,190,223,60,0,51,216,191,223,60,0,51,216,192,223,60,0,51,216,193,223,60,0,51,216,194,223,60,0,51,216,195,223,60,0,52,216,0,220,60,0,52,216,1,220,60,0,52,216,2,220,60,0,52,216,3,220,60,0,52,216,4,220,60,0,52,216,5,220,60,0,52,216,6,220,60,0,52,216,7,220,60,0,52,216,8,220,60,0,52,216,9,220,60,0,52,216,10,220,60,0,52,216,11,220,60,0,52,216,12,220,60,0,52,216,13,220,60,0,52,216,14,220,60,0,52,216,15,220,60,0,52,216,16,220,60,0,52,216,17,220,60,0,52,216,18,220,60,0,52,216,19,220,60,0,52,216,20,220,60,0,52,216,21,220,60,0,52,216,22,220,60,0,52,216,23,220,60,0,52,216,24,220,60,0,52,216,25,220,60,0,52,216,26,220,60,0,52,216,27,220,60,0,52,216,28,220,60,0,52,216,29,220,60,0,52,216,30,220,60,0,52,216,31,220,60,0,52,216,32,220,60,0,52,216,33,220,60,0,52,216,34,220,60,0,52,216,35,220,60,0,52,216,36,220,60,0,52,216,37,220,60,0,52,216,38,220,60,0,52,216,39,220,60,0,52,216,40,220,60,0,52,216,41,220,60,0,52,216,42,220,60,0,52,216,43,220,60,0,52,216,44,220,60,0,52,216,45,220,60,0,52,216,46,220,60,0,52,216,47,220,60,0,52,216,48,220,60,0,52,216,49,220,60,0,52,216,50,220,60,0,52,216,51,220,60,0,52,216,52,220,60,0,52,216,53,220,60,0,52,216,54,220,60,0,52,216,55,220,60,0,52,216,56,220,60,0,52,216,57,220,60,0,52,216,58,220,60,0,52,216,59,220,60,0,52,216,60,220,60,0,52,216,61,220,60,0,52,216,62,220,60,0,52,216,63,220,60,0,52,216,64,220,60,0,52,216,65,220,60,0,52,216,66,220,60,0,52,216,67,220,60,0,52,216,68,220,60,0,52,216,69,220,60,0,52,216,70,220,60,0,52,216,71,220,60,0,52,216,72,220,60,0,52,216,73,220,60,0,52,216,74,220,60,0,52,216,75,220,60,0,52,216,76,220,60,0,52,216,77,220,60,0,52,216,78,220,60,0,52,216,79,220,60,0,52,216,80,220,60,0,52,216,81,220,60,0,52,216,82,220,60,0,52,216,83,220,60,0,52,216,84,220,60,0,52,216,85,220,60,0,52,216,86,220,60,0,52,216,87,220,60,0,52,216,88,220,60,0,52,216,89,220,60,0,52,216,90,220,60,0,52,216,91,220,60,0,52,216,92,220,60,0,52,216,93,220,60,0,52,216,94,220,60,0,52,216,95,220,60,0,52,216,96,220,60,0,52,216,97,220,60,0,52,216,98,220,60,0,52,216,99,220,60,0,52,216,100,220,60,0,52,216,101,220,60,0,52,216,102,220,60,0,52,216,103,220,60,0,52,216,104,220,60,0,52,216,105,220,60,0,52,216,106,220,60,0,52,216,107,220,60,0,52,216,108,220,60,0,52,216,109,220,60,0,52,216,110,220,60,0,52,216,111,220,60,0,52,216,112,220,60,0,52,216,113,220,60,0,52,216,114,220,60,0,52,216,115,220,60,0,52,216,116,220,60,0,52,216,117,220,60,0,52,216,118,220,60,0,52,216,119,220,60,0,52,216,120,220,60,0,52,216,121,220,60,0,52,216,122,220,60,0,52,216,123,220,60,0,52,216,124,220,60,0,52,216,125,220,60,0,52,216,126,220,60,0,52,216,127,220,60,0,52,216,128,220,60,0,52,216,129,220,60,0,52,216,130,220,60,0,52,216,131,220,60,0,52,216,132,220,60,0,52,216,133,220,60,0,52,216,134,220,60,0,52,216,135,220,60,0,52,216,136,220,60,0,52,216,137,220,60,0,52,216,138,220,60,0,52,216,139,220,60,0,52,216,140,220,60,0,52,216,141,220,60,0,52,216,142,220,60,0,52,216,143,220,60,0,52,216,144,220,60,0,52,216,145,220,60,0,52,216,146,220,60,0,52,216,147,220,60,0,52,216,148,220,60,0,52,216,149,220,60,0,52,216,150,220,60,0,52,216,151,220,60,0,52,216,152,220,60,0,52,216,153,220,60,0,52,216,154,220,60,0,52,216,155,220,60,0,52,216,156,220,60,0,52,216,157,220,60,0,52,216,158,220,60,0,52,216,159,220,60,0,52,216,160,220,60,0,52,216,161,220,60,0,52,216,162,220,60,0,52,216,163,220,60,0,52,216,164,220,60,0,52,216,165,220,60,0,52,216,166,220,60,0,52,216,167,220,60,0,52,216,168,220,60,0,52,216,169,220,60,0,52,216,170,220,60,0,52,216,171,220,60,0,52,216,172,220,60,0,52,216,173,220,60,0,52,216,174,220,60,0,52,216,175,220,60,0,52,216,176,220,60,0,52,216,177,220,60,0,52,216,178,220,60,0,52,216,179,220,60,0,52,216,180,220,60,0,52,216,181,220,60,0,52,216,182,220,60,0,52,216,183,220,60,0,52,216,184,220,60,0,52,216,185,220,60,0,52,216,186,220,60,0,52,216,187,220,60,0,52,216,188,220,60,0,52,216,189,220,60,0,52,216,190,220,60,0,52,216,191,220,60,0,52,216,192,220,60,0,52,216,193,220,60,0,52,216,194,220,60,0,52,216,195,220,60,0,52,216,196,220,60,0,52,216,197,220,60,0,52,216,198,220,60,0,52,216,199,220,60,0,52,216,200,220,60,0,52,216,201,220,60,0,52,216,202,220,60,0,52,216,203,220,60,0,52,216,204,220,60,0,52,216,205,220,60,0,52,216,206,220,60,0,52,216,207,220,60,0,52,216,208,220,60,0,52,216,209,220,60,0,52,216,210,220,60,0,52,216,211,220,60,0,52,216,212,220,60,0,52,216,213,220,60,0,52,216,214,220,60,0,52,216,215,220,60,0,52,216,216,220,60,0,52,216,217,220,60,0,52,216,218,220,60,0,52,216,219,220,60,0,52,216,220,220,60,0,52,216,221,220,60,0,52,216,222,220,60,0,52,216,223,220,60,0,52,216,224,220,60,0,52,216,225,220,60,0,52,216,226,220,60,0,52,216,227,220,60,0,52,216,228,220,60,0,52,216,229,220,60,0,52,216,230,220,60,0,52,216,231,220,60,0,52,216,232,220,60,0,52,216,233,220,60,0,52,216,234,220,60,0,52,216,235,220,60,0,52,216,236,220,60,0,52,216,237,220,60,0,52,216,238,220,60,0,52,216,239,220,60,0,52,216,240,220,60,0,52,216,241,220,60,0,52,216,242,220,60,0,52,216,243,220,60,0,52,216,244,220,60,0,52,216,245,220,60,0,52,216,0,221,60,0,52,216,1,221,60,0,52,216,2,221,60,0,52,216,3,221,60,0,52,216,4,221,60,0,52,216,5,221,60,0,52,216,6,221,60,0,52,216,7,221,60,0,52,216,8,221,60,0,52,216,9,221,60,0,52,216,10,221,60,0,52,216,11,221,60,0,52,216,12,221,60,0,52,216,13,221,60,0,52,216,14,221,60,0,52,216,15,221,60,0,52,216,16,221,60,0,52,216,17,221,60,0,52,216,18,221,60,0,52,216,19,221,60,0,52,216,20,221,60,0,52,216,21,221,60,0,52,216,22,221,60,0,52,216,23,221,60,0,52,216,24,221,60,0,52,216,25,221,60,0,52,216,26,221,60,0,52,216,27,221,60,0,52,216,28,221,60,0,52,216,29,221,60,0,52,216,30,221,60,0,52,216,31,221,60,0,52,216,32,221,60,0,52,216,33,221,60,0,52,216,34,221,60,0,52,216,35,221,60,0,52,216,36,221,60,0,52,216,37,221,60,0,52,216,38,221,60,0,109,38,60,0,110,38,60,0,111,38,60,0,52,216,42,221,60,0,52,216,43,221,60,0,52,216,44,221,60,0,52,216,45,221,60,0,52,216,46,221,60,0,52,216,47,221,60,0,52,216,48,221,60,0,52,216,49,221,60,0,52,216,50,221,60,0,52,216,51,221,60,0,52,216,52,221,60,0,52,216,53,221,60,0,52,216,54,221,60,0,52,216,55,221,60,0,52,216,56,221,60,0,52,216,57,221,60,0,52,216,41,221,60,0,52,216,58,221,60,0,52,216,59,221,60,0,52,216,60,221,60,0,52,216,61,221,60,0,52,216,62,221,60,0,52,216,63,221,60,0,52,216,64,221,60,0,52,216,65,221,60,0,52,216,66,221,60,0,52,216,67,221,60,0,52,216,68,221,60,0,52,216,69,221,60,0,52,216,70,221,60,0,52,216,71,221,60,0,52,216,72,221,60,0,52,216,73,221,60,0,52,216,74,221,60,0,52,216,75,221,60,0,52,216,76,221,60,0,52,216,77,221,60,0,52,216,78,221,60,0,52,216,79,221,60,0,52,216,80,221,60,0,52,216,81,221,60,0,52,216,82,221,60,0,52,216,83,221,60,0,52,216,84,221,60,0,52,216,85,221,60,0,52,216,86,221,60,0,52,216,87,221,60,0,52,216,88,221,60,0,52,216,89,221,60,0,52,216,90,221,60,0,52,216,91,221,60,0,52,216,92,221,60,0,52,216,93,221,60,0,52,216,106,221,60,0,52,216,107,221,60,0,52,216,108,221,60,0,52,216,131,221,60,0,52,216,132,221,60,0,52,216,140,221,60,0,52,216,141,221,60,0,52,216,142,221,60,0,52,216,143,221,60,0,52,216,144,221,60,0,52,216,145,221,60,0,52,216,146,221,60,0,52,216,147,221,60,0,52,216,148,221,60,0,52,216,149,221,60,0,52,216,150,221,60,0,52,216,151,221,60,0,52,216,152,221,60,0,52,216,153,221,60,0,52,216,154,221,60,0,52,216,155,221,60,0,52,216,156,221,60,0,52,216,157,221,60,0,52,216,158,221,60,0,52,216,159,221,60,0,52,216,160,221,60,0,52,216,161,221,60,0,52,216,162,221,60,0,52,216,163,221,60,0,52,216,164,221,60,0,52,216,165,221,60,0,52,216,166,221,60,0,52,216,167,221,60,0,52,216,168,221,60,0,52,216,169,221,60,0,52,216,174,221,60,0,52,216,175,221,60,0,52,216,176,221,60,0,52,216,177,221,60,0,52,216,178,221,60,0,52,216,179,221,60,0,52,216,180,221,60,0,52,216,181,221,60,0,52,216,182,221,60,0,52,216,183,221,60,0,52,216,184,221,60,0,52,216,185,221,60,0,52,216,186,221,60,0,52,216,193,221,60,0,52,216,194,221,60,0,52,216,195,221,60,0,52,216,196,221,60,0,52,216,197,221,60,0,52,216,198,221,60,0,52,216,199,221,60,0,52,216,200,221,60,0,52,216,201,221,60,0,52,216,202,221,60,0,52,216,203,221,60,0,52,216,204,221,60,0,52,216,205,221,60,0,52,216,206,221,60,0,52,216,207,221,60,0,52,216,208,221,60,0,52,216,209,221,60,0,52,216,210,221,60,0,52,216,211,221,60,0,52,216,212,221,60,0,52,216,213,221,60,0,52,216,214,221,60,0,52,216,215,221,60,0,52,216,216,221,60,0,52,216,217,221,60,0,52,216,218,221,60,0,52,216,219,221,60,0,52,216,220,221,60,0,52,216,221,221,60,0,52,216,222,221,60,0,52,216,223,221,60,0,52,216,224,221,60,0,52,216,225,221,60,0,52,216,226,221,60,0,52,216,227,221,60,0,52,216,228,221,60,0,52,216,229,221,60,0,52,216,230,221,60,0,52,216,231,221,60,0,52,216,232,221,60,0,52,216,233,221,60,0,52,216,234,221,60,0,52,216,0,222,60,0,52,216,1,222,60,0,52,216,2,222,60,0,52,216,3,222,60,0,52,216,4,222,60,0,52,216,5,222,60,0,52,216,6,222,60,0,52,216,7,222,60,0,52,216,8,222,60,0,52,216,9,222,60,0,52,216,10,222,60,0,52,216,11,222,60,0,52,216,12,222,60,0,52,216,13,222,60,0,52,216,14,222,60,0,52,216,15,222,60,0,52,216,16,222,60,0,52,216,17,222,60,0,52,216,18,222,60,0,52,216,19,222,60,0,52,216,20,222,60,0,52,216,21,222,60,0,52,216,22,222,60,0,52,216,23,222,60,0,52,216,24,222,60,0,52,216,25,222,60,0,52,216,26,222,60,0,52,216,27,222,60,0,52,216,28,222,60,0,52,216,29,222,60,0,52,216,30,222,60,0,52,216,31,222,60,0,52,216,32,222,60,0,52,216,33,222,60,0,52,216,34,222,60,0,52,216,35,222,60,0,52,216,36,222,60,0,52,216,37,222,60,0,52,216,38,222,60,0,52,216,39,222,60,0,52,216,40,222,60,0,52,216,41,222,60,0,52,216,42,222,60,0,52,216,43,222,60,0,52,216,44,222,60,0,52,216,45,222,60,0,52,216,46,222,60,0,52,216,47,222,60,0,52,216,48,222,60,0,52,216,49,222,60,0,52,216,50,222,60,0,52,216,51,222,60,0,52,216,52,222,60,0,52,216,53,222,60,0,52,216,54,222,60,0,52,216,55,222,60,0,52,216,56,222,60,0,52,216,57,222,60,0,52,216,58,222,60,0,52,216,59,222,60,0,52,216,60,222,60,0,52,216,61,222,60,0,52,216,62,222,60,0,52,216,63,222,60,0,52,216,64,222,60,0,52,216,65,222,60,0,52,216,69,222,60,0,47,216,156,220,60,0,14,32,59,216,172,220,14,32,60,0,14,32,59,216,46,221,14,32,60,0,60,216,0,220,60,0,60,216,1,220,60,0,60,216,2,220,60,0,60,216,3,220,60,0,60,216,4,220,60,0,60,216,5,220,60,0,60,216,6,220,60,0,60,216,7,220,60,0,60,216,8,220,60,0,60,216,9,220,60,0,60,216,10,220,60,0,60,216,11,220,60,0,60,216,12,220,60,0,60,216,13,220,60,0,60,216,14,220,60,0,60,216,15,220,60,0,60,216,16,220,60,0,60,216,17,220,60,0,60,216,18,220,60,0,60,216,19,220,60,0,60,216,20,220,60,0,60,216,21,220,60,0,60,216,22,220,60,0,60,216,23,220,60,0,60,216,24,220,60,0,60,216,25,220,60,0,60,216,26,220,60,0,60,216,27,220,60,0,60,216,28,220,60,0,60,216,29,220,60,0,60,216,30,220,60,0,60,216,31,220,60,0,60,216,32,220,60,0,60,216,33,220,60,0,60,216,34,220,60,0,60,216,35,220,60,0,60,216,36,220,60,0,60,216,37,220,60,0,60,216,38,220,60,0,60,216,39,220,60,0,60,216,40,220,60,0,60,216,41,220,60,0,60,216,42,220,60,0,60,216,43,220,60,0,60,216,48,220,60,0,60,216,49,220,60,0,60,216,50,220,60,0,60,216,51,220,60,0,60,216,52,220,60,0,60,216,53,220,60,0,60,216,54,220,60,0,60,216,55,220,60,0,60,216,56,220,60,0,60,216,57,220,60,0,60,216,58,220,60,0,60,216,59,220,60,0,60,216,60,220,60,0,60,216,61,220,60,0,60,216,62,220,60,0,60,216,63,220,60,0,60,216,64,220,60,0,60,216,65,220,60,0,60,216,66,220,60,0,60,216,67,220,60,0,60,216,68,220,60,0,60,216,69,220,60,0,60,216,70,220,60,0,60,216,71,220,60,0,60,216,72,220,60,0,60,216,73,220,60,0,60,216,74,220,60,0,60,216,75,220,60,0,60,216,76,220,60,0,60,216,77,220,60,0,60,216,78,220,60,0,60,216,79,220,60,0,60,216,80,220,60,0,60,216,81,220,60,0,60,216,82,220,60,0,60,216,83,220,60,0,60,216,84,220,60,0,60,216,85,220,60,0,60,216,86,220,60,0,60,216,87,220,60,0,60,216,88,220,60,0,60,216,89,220,60,0,60,216,90,220,60,0,60,216,91,220,60,0,60,216,92,220,60,0,60,216,93,220,60,0,60,216,94,220,60,0,60,216,95,220,60,0,60,216,96,220,60,0,60,216,97,220,60,0,60,216,98,220,60,0,60,216,99,220,60,0,60,216,100,220,60,0,60,216,101,220,60,0,60,216,102,220,60,0,60,216,103,220,60,0,60,216,104,220,60,0,60,216,105,220,60,0,60,216,106,220,60,0,60,216,107,220,60,0,60,216,108,220,60,0,60,216,109,220,60,0,60,216,110,220,60,0,60,216,111,220,60,0,60,216,112,220,60,0,60,216,113,220,60,0,60,216,114,220,60,0,60,216,115,220,60,0,60,216,116,220,60,0,60,216,117,220,60,0,60,216,118,220,60,0,60,216,119,220,60,0,60,216,120,220,60,0,60,216,121,220,60,0,60,216,122,220,60,0,60,216,123,220,60,0,60,216,124,220,60,0,60,216,125,220,60,0,60,216,126,220,60,0,60,216,127,220,60,0,60,216,128,220,60,0,60,216,129,220,60,0,60,216,130,220,60,0,60,216,131,220,60,0,60,216,132,220,60,0,60,216,133,220,60,0,60,216,134,220,60,0,60,216,135,220,60,0,60,216,136,220,60,0,60,216,137,220,60,0,60,216,138,220,60,0,60,216,139,220,60,0,60,216,140,220,60,0,60,216,141,220,60,0,60,216,142,220,60,0,60,216,143,220,60,0,60,216,144,220,60,0,60,216,145,220,60,0,60,216,146,220,60,0,60,216,147,220,60,0,60,216,160,220,60,0,60,216,161,220,60,0,60,216,162,220,60,0,60,216,163,220,60,0,60,216,164,220,60,0,60,216,165,220,60,0,60,216,166,220,60,0,60,216,167,220,60,0,60,216,168,220,60,0,60,216,169,220,60,0,60,216,170,220,60,0,60,216,171,220,60,0,60,216,172,220,60,0,60,216,173,220,60,0,60,216,174,220,60,0,60,216,177,220,60,0,60,216,178,220,60,0,60,216,179,220,60,0,60,216,180,220,60,0,60,216,181,220,60,0,60,216,182,220,60,0,60,216,183,220,60,0,60,216,184,220,60,0,60,216,185,220,60,0,60,216,186,220,60,0,60,216,187,220,60,0,60,216,188,220,60,0,60,216,189,220,60,0,60,216,190,220,60,0,60,216,191,220,60,0,60,216,193,220,60,0,60,216,194,220,60,0,60,216,195,220,60,0,60,216,196,220,60,0,60,216,197,220,60,0,60,216,198,220,60,0,60,216,199,220,60,0,60,216,200,220,60,0,60,216,201,220,60,0,60,216,202,220,60,0,60,216,203,220,60,0,60,216,204,220,60,0,60,216,205,220,60,0,60,216,206,220,60,0,60,216,207,220,60,0,60,216,209,220,60,0,60,216,210,220,60,0,60,216,211,220,60,0,60,216,212,220,60,0,60,216,213,220,60,0,60,216,214,220,60,0,60,216,215,220,60,0,60,216,216,220,60,0,60,216,217,220,60,0,60,216,218,220,60,0,60,216,219,220,60,0,60,216,220,220,60,0,60,216,221,220,60,0,60,216,222,220,60,0,60,216,223,220,60,0,60,216,224,220,60,0,60,216,225,220,60,0,60,216,226,220,60,0,60,216,227,220,60,0,60,216,228,220,60,0,60,216,229,220,60,0,60,216,230,220,60,0,60,216,231,220,60,0,60,216,232,220,60,0,60,216,233,220,60,0,60,216,234,220,60,0,60,216,235,220,60,0,60,216,236,220,60,0,60,216,237,220,60,0,60,216,238,220,60,0,60,216,239,220,60,0,60,216,240,220,60,0,60,216,241,220,60,0,60,216,242,220,60,0,60,216,243,220,60,0,60,216,244,220,60,0,60,216,245,220,60,0,62,216,0,222,60,0,62,216,1,222,60,0,62,216,2,222,60,0,62,216,3,222,60,0,62,216,4,222,60,0,62,216,5,222,60,0,62,216,6,222,60,0,62,216,7,222,60,0,62,216,8,222,60,0,62,216,9,222,60,0,62,216,10,222,60,0,62,216,11,222,60,0,62,216,12,222,60,0,62,216,13,222,60,0,62,216,14,222,60,0,62,216,15,222,60,0,62,216,16,222,60,0,62,216,17,222,60,0,62,216,18,222,60,0,62,216,19,222,60,0,62,216,20,222,60,0,62,216,21,222,60,0,62,216,22,222,60,0,62,216,23,222,60,0,62,216,24,222,60,0,62,216,25,222,60,0,62,216,26,222,60,0,62,216,27,222,60,0,62,216,28,222,60,0,62,216,29,222,60,0,62,216,30,222,60,0,62,216,31,222,60,0,62,216,32,222,60,0,62,216,33,222,60,0,62,216,34,222,60,0,62,216,35,222,60,0,62,216,36,222,60,0,62,216,37,222,60,0,62,216,38,222,60,0,62,216,39,222,60,0,62,216,40,222,60,0,62,216,41,222,60,0,62,216,42,222,60,0,62,216,43,222,60,0,62,216,44,222,60,0,62,216,45,222,60,0,62,216,46,222,60,0,62,216,47,222,60,0,62,216,48,222,60,0,62,216,49,222,60,0,62,216,50,222,60,0,62,216,51,222,60,0,62,216,52,222,60,0,62,216,53,222,60,0,62,216,54,222,60,0,62,216,55,222,60,0,62,216,56,222,60,0,62,216,57,222,60,0,62,216,58,222,60,0,62,216,59,222,60,0,62,216,60,222,60,0,62,216,61,222,60,0,62,216,62,222,60,0,62,216,63,222,60,0,62,216,64,222,60,0,62,216,65,222,60,0,62,216,66,222,60,0,62,216,67,222,60,0,62,216,68,222,60,0,62,216,69,222,60,0,62,216,70,222,60,0,62,216,71,222,60,0,62,216,72,222,60,0,62,216,73,222,60,0,62,216,74,222,60,0,62,216,75,222,60,0,62,216,76,222,60,0,62,216,77,222,60,0,62,216,78,222,60,0,62,216,79,222,60,0,62,216,80,222,60,0,62,216,81,222,60,0,62,216,82,222,60,0,62,216,83,222,60,0,62,216,96,222,60,0,62,216,97,222,60,0,62,216,98,222,60,0,62,216,99,222,60,0,62,216,100,222,60,0,62,216,101,222,60,0,62,216,102,222,60,0,62,216,103,222,60,0,62,216,104,222,60,0,62,216,105,222,60,0,62,216,106,222,60,0,62,216,107,222,60,0,62,216,108,222,60,0,62,216,109,222,60,0,60,216,13,221,60,0,60,216,14,221,60,0,60,216,15,221,60,0,60,216,109,221,60,0,60,216,110,221,60,0,60,216,111,221,60,0,60,216,96,222,60,0,60,216,97,222,60,0,60,216,98,222,60,0,60,216,99,222,60,0,60,216,100,222,60,0,60,216,101,222,60,0,60,216,0,223,60,0,60,216,1,223,60,0,60,216,2,223,60,0,60,216,3,223,60,0,60,216,4,223,60,0,60,216,5,223,60,0,60,216,6,223,60,0,60,216,7,223,60,0,60,216,8,223,60,0,60,216,9,223,60,0,60,216,10,223,60,0,60,216,11,223,60,0,60,216,12,223,60,0,60,216,13,223,60,0,60,216,14,223,60,0,60,216,15,223,60,0,60,216,16,223,60,0,60,216,17,223,60,0,60,216,18,223,60,0,60,216,19,223,60,0,60,216,20,223,60,0,60,216,21,223,60,0,60,216,22,223,60,0,60,216,23,223,60,0,60,216,24,223,60,0,60,216,25,223,60,0,60,216,26,223,60,0,60,216,27,223,60,0,60,216,28,223,60,0,60,216,29,223,60,0,60,216,30,223,60,0,60,216,31,223,60,0,60,216,32,223,60,0,60,216,33,223,60,0,60,216,34,223,60,0,60,216,35,223,60,0,60,216,36,223,60,0,60,216,37,223,60,0,60,216,38,223,60,0,60,216,39,223,60,0,60,216,40,223,60,0,60,216,41,223,60,0,60,216,42,223,60,0,60,216,43,223,60,0,60,216,44,223,60,0,60,216,45,223,60,0,60,216,46,223,60,0,60,216,47,223,60,0,60,216,48,223,60,0,60,216,49,223,60,0,60,216,50,223,60,0,60,216,51,223,60,0,60,216,52,223,60,0,60,216,53,223,60,0,60,216,54,223,60,0,60,216,55,223,60,0,60,216,56,223,60,0,60,216,57,223,60,0,60,216,58,223,60,0,60,216,59,223,60,0,60,216,60,223,60,0,60,216,61,223,60,0,60,216,62,223,60,0,60,216,63,223,60,0,60,216,64,223,60,0,60,216,65,223,60,0,60,216,66,223,60,0,60,216,67,223,60,0,60,216,68,223,60,0,60,216,69,223,60,0,60,216,70,223,60,0,60,216,71,223,60,0,60,216,72,223,60,0,60,216,73,223,60,0,60,216,74,223,60,0,60,216,75,223,60,0,60,216,76,223,60,0,60,216,77,223,60,0,60,216,78,223,60,0,60,216,79,223,60,0,60,216,80,223,60,0,60,216,81,223,60,0,60,216,82,223,60,0,60,216,83,223,60,0,60,216,84,223,60,0,60,216,85,223,60,0,60,216,86,223,60,0,60,216,87,223,60,0,60,216,88,223,60,0,60,216,89,223,60,0,60,216,90,223,60,0,60,216,91,223,60,0,60,216,92,223,60,0,60,216,93,223,60,0,60,216,94,223,60,0,60,216,95,223,60,0,60,216,96,223,60,0,60,216,97,223,60,0,60,216,98,223,60,0,60,216,99,223,60,0,60,216,100,223,60,0,60,216,101,223,60,0,60,216,102,223,60,0,60,216,103,223,60,0,60,216,104,223,60,0,60,216,105,223,60,0,60,216,106,223,60,0,60,216,107,223,60,0,60,216,108,223,60,0,60,216,109,223,60,0,60,216,110,223,60,0,60,216,111,223,60,0,60,216,112,223,60,0,60,216,113,223,60,0,60,216,114,223,60,0,60,216,115,223,60,0,60,216,116,223,60,0,60,216,117,223,60,0,60,216,118,223,60,0,60,216,119,223,60,0,60,216,120,223,60,0,60,216,121,223,60,0,60,216,122,223,60,0,60,216,123,223,60,0,60,216,124,223,60,0,60,216,125,223,60,0,60,216,126,223,60,0,60,216,127,223,60,0,60,216,128,223,60,0,60,216,129,223,60,0,60,216,130,223,60,0,60,216,131,223,60,0,60,216,132,223,60,0,60,216,133,223,60,0,60,216,134,223,60,0,60,216,135,223,60,0,60,216,136,223,60,0,60,216,137,223,60,0,60,216,138,223,60,0,60,216,139,223,60,0,60,216,140,223,60,0,60,216,141,223,60,0,60,216,142,223,60,0,60,216,143,223,60,0,60,216,144,223,60,0,60,216,145,223,60,0,60,216,146,223,60,0,60,216,147,223,60,0,60,216,148,223,60,0,60,216,149,223,60,0,60,216,150,223,60,0,60,216,151,223,60,0,60,216,152,223,60,0,60,216,153,223,60,0,60,216,154,223,60,0,60,216,155,223,60,0,60,216,156,223,60,0,60,216,157,223,60,0,60,216,158,223,60,0,60,216,159,223,60,0,60,216,160,223,60,0,60,216,161,223,60,0,60,216,162,223,60,0,60,216,163,223,60,0,60,216,164,223,60,0,60,216,165,223,60,0,60,216,166,223,60,0,60,216,167,223,60,0,60,216,168,223,60,0,60,216,169,223,60,0,60,216,170,223,60,0,60,216,171,223,60,0,60,216,172,223,60,0,60,216,173,223,60,0,60,216,174,223,60,0,60,216,175,223,60,0,60,216,176,223,60,0,60,216,177,223,60,0,60,216,178,223,60,0,60,216,179,223,60,0,60,216,180,223,60,0,60,216,181,223,60,0,60,216,182,223,60,0,60,216,183,223,60,0,60,216,184,223,60,0,60,216,185,223,60,0,60,216,186,223,60,0,60,216,187,223,60,0,60,216,188,223,60,0,60,216,189,223,60,0,60,216,190,223,60,0,60,216,191,223,60,0,60,216,192,223,60,0,60,216,193,223,60,0,60,216,194,223,60,0,60,216,195,223,60,0,60,216,196,223,60,0,60,216,197,223,60,0,60,216,198,223,60,0,60,216,199,223,60,0,60,216,200,223,60,0,60,216,201,223,60,0,60,216,202,223,60,0,60,216,203,223,60,0,60,216,204,223,60,0,60,216,205,223,60,0,60,216,206,223,60,0,60,216,207,223,60,0,60,216,208,223,60,0,60,216,209,223,60,0,60,216,210,223,60,0,60,216,211,223,60,0,60,216,212,223,60,0,60,216,213,223,60,0,60,216,214,223,60,0,60,216,215,223,60,0,60,216,216,223,60,0,60,216,217,223,60,0,60,216,218,223,60,0,60,216,219,223,60,0,60,216,220,223,60,0,60,216,221,223,60,0,60,216,222,223,60,0,60,216,223,223,60,0,60,216,224,223,60,0,60,216,225,223,60,0,60,216,226,223,60,0,60,216,227,223,60,0,60,216,228,223,60,0,60,216,229,223,60,0,60,216,230,223,60,0,60,216,231,223,60,0,60,216,232,223,60,0,60,216,233,223,60,0,60,216,234,223,60,0,60,216,235,223,60,0,60,216,236,223,60,0,60,216,237,223,60,0,60,216,238,223,60,0,60,216,239,223,60,0,60,216,240,223,60,0,60,216,241,223,60,0,60,216,242,223,60,0,60,216,243,223,60,0,60,216,244,223,60,0,60,216,245,223,60,0,60,216,246,223,60,0,60,216,247,223,60,0,60,216,248,223,60,0,60,216,249,223,60,0,60,216,250,223,60,0,60,216,251,223,60,0,60,216,252,223,60,0,60,216,253,223,60,0,60,216,254,223,60,0,60,216,255,223,60,0,61,216,0,220,60,0,61,216,1,220,60,0,61,216,2,220,60,0,61,216,3,220,60,0,61,216,4,220,60,0,61,216,5,220,60,0,61,216,6,220,60,0,61,216,7,220,60,0,61,216,8,220,60,0,61,216,9,220,60,0,61,216,10,220,60,0,61,216,11,220,60,0,61,216,12,220,60,0,61,216,13,220,60,0,61,216,14,220,60,0,61,216,15,220,60,0,61,216,16,220,60,0,61,216,17,220,60,0,61,216,18,220,60,0,61,216,19,220,60,0,61,216,20,220,60,0,61,216,21,220,60,0,61,216,22,220,60,0,61,216,23,220,60,0,61,216,24,220,60,0,61,216,25,220,60,0,61,216,26,220,60,0,61,216,27,220,60,0,61,216,28,220,60,0,61,216,29,220,60,0,61,216,30,220,60,0,61,216,31,220,60,0,61,216,32,220,60,0,61,216,33,220,60,0,61,216,34,220,60,0,61,216,35,220,60,0,61,216,36,220,60,0,61,216,37,220,60,0,61,216,38,220,60,0,61,216,39,220,60,0,61,216,40,220,60,0,61,216,41,220,60,0,61,216,42,220,60,0,61,216,43,220,60,0,61,216,44,220,60,0,61,216,45,220,60,0,61,216,46,220,60,0,61,216,47,220,60,0,61,216,48,220,60,0,61,216,49,220,60,0,61,216,50,220,60,0,61,216,51,220,60,0,61,216,52,220,60,0,61,216,53,220,60,0,61,216,54,220,60,0,61,216,55,220,60,0,61,216,56,220,60,0,61,216,57,220,60,0,61,216,58,220,60,0,61,216,59,220,60,0,61,216,60,220,60,0,61,216,61,220,60,0,61,216,62,220,60,0,61,216,63,220,60,0,61,216,64,220,60,0,61,216,65,220,60,0,61,216,66,220,60,0,61,216,67,220,60,0,61,216,68,220,60,0,61,216,69,220,60,0,61,216,70,220,60,0,61,216,71,220,60,0,61,216,72,220,60,0,61,216,73,220,60,0,61,216,74,220,60,0,61,216,75,220,60,0,61,216,76,220,60,0,61,216,77,220,60,0,61,216,78,220,60,0,61,216,79,220,60,0,61,216,80,220,60,0,61,216,81,220,60,0,61,216,82,220,60,0,61,216,83,220,60,0,61,216,84,220,60,0,61,216,85,220,60,0,61,216,86,220,60,0,61,216,87,220,60,0,61,216,88,220,60,0,61,216,89,220,60,0,61,216,90,220,60,0,61,216,91,220,60,0,61,216,92,220,60,0,61,216,93,220,60,0,61,216,94,220,60,0,61,216,95,220,60,0,61,216,96,220,60,0,61,216,97,220,60,0,61,216,98,220,60,0,61,216,99,220,60,0,61,216,100,220,60,0,61,216,101,220,60,0,61,216,102,220,60,0,61,216,103,220,60,0,61,216,104,220,60,0,61,216,105,220,60,0,61,216,106,220,60,0,61,216,107,220,60,0,61,216,108,220,60,0,61,216,109,220,60,0,61,216,110,220,60,0,61,216,111,220,60,0,61,216,112,220,60,0,61,216,113,220,60,0,61,216,114,220,60,0,61,216,115,220,60,0,61,216,116,220,60,0,61,216,117,220,60,0,61,216,118,220,60,0,61,216,119,220,60,0,61,216,120,220,60,0,61,216,121,220,60,0,61,216,122,220,60,0,61,216,123,220,60,0,61,216,124,220,60,0,61,216,125,220,60,0,61,216,126,220,60,0,61,216,127,220,60,0,61,216,128,220,60,0,61,216,129,220,60,0,61,216,130,220,60,0,61,216,131,220,60,0,61,216,132,220,60,0,61,216,133,220,60,0,61,216,134,220,60,0,61,216,135,220,60,0,61,216,136,220,60,0,61,216,137,220,60,0,61,216,138,220,60,0,61,216,139,220,60,0,61,216,140,220,60,0,61,216,141,220,60,0,61,216,142,220,60,0,61,216,143,220,60,0,61,216,144,220,60,0,61,216,145,220,60,0,61,216,146,220,60,0,61,216,147,220,60,0,61,216,148,220,60,0,61,216,149,220,60,0,61,216,150,220,60,0,61,216,151,220,60,0,61,216,152,220,60,0,61,216,153,220,60,0,61,216,154,220,60,0,61,216,155,220,60,0,61,216,156,220,60,0,61,216,157,220,60,0,61,216,158,220,60,0,61,216,159,220,60,0,61,216,160,220,60,0,61,216,161,220,60,0,61,216,162,220,60,0,61,216,163,220,60,0,61,216,164,220,60,0,61,216,165,220,60,0,61,216,166,220,60,0,61,216,167,220,60,0,61,216,168,220,60,0,61,216,169,220,60,0,61,216,170,220,60,0,61,216,171,220,60,0,61,216,172,220,60,0,61,216,173,220,60,0,61,216,174,220,60,0,61,216,175,220,60,0,61,216,176,220,60,0,61,216,177,220,60,0,61,216,178,220,60,0,61,216,179,220,60,0,61,216,180,220,60,0,61,216,181,220,60,0,61,216,182,220,60,0,61,216,183,220,60,0,61,216,184,220,60,0,61,216,185,220,60,0,61,216,186,220,60,0,61,216,187,220,60,0,61,216,188,220,60,0,61,216,189,220,60,0,61,216,190,220,60,0,61,216,191,220,60,0,61,216,192,220,60,0,61,216,193,220,60,0,61,216,194,220,60,0,61,216,195,220,60,0,61,216,196,220,60,0,61,216,197,220,60,0,61,216,198,220,60,0,61,216,199,220,60,0,61,216,200,220,60,0,61,216,201,220,60,0,61,216,202,220,60,0,61,216,203,220,60,0,61,216,204,220,60,0,61,216,205,220,60,0,61,216,206,220,60,0,61,216,207,220,60,0,61,216,208,220,60,0,61,216,209,220,60,0,61,216,210,220,60,0,61,216,211,220,60,0,61,216,212,220,60,0,61,216,213,220,60,0,61,216,214,220,60,0,61,216,215,220,60,0,61,216,216,220,60,0,61,216,217,220,60,0,61,216,218,220,60,0,61,216,219,220,60,0,61,216,220,220,60,0,61,216,221,220,60,0,61,216,222,220,60,0,61,216,223,220,60,0,61,216,224,220,60,0,61,216,225,220,60,0,61,216,226,220,60,0,61,216,227,220,60,0,61,216,228,220,60,0,61,216,229,220,60,0,61,216,230,220,60,0,61,216,231,220,60,0,61,216,232,220,60,0,61,216,233,220,60,0,61,216,234,220,60,0,61,216,235,220,60,0,61,216,236,220,60,0,61,216,237,220,60,0,61,216,238,220,60,0,61,216,239,220,60,0,61,216,240,220,60,0,61,216,241,220,60,0,61,216,242,220,60,0,61,216,243,220,60,0,61,216,244,220,60,0,61,216,245,220,60,0,61,216,246,220,60,0,61,216,247,220,60,0,61,216,248,220,60,0,61,216,249,220,60,0,61,216,250,220,60,0,61,216,251,220,60,0,61,216,252,220,60,0,61,216,253,220,60,0,61,216,254,220,60,0,61,216,255,220,60,0,61,216,0,221,60,0,61,216,1,221,60,0,61,216,2,221,60,0,61,216,3,221,60,0,61,216,4,221,60,0,61,216,5,221,60,0,61,216,6,221,60,0,61,216,7,221,60,0,61,216,8,221,60,0,61,216,9,221,60,0,61,216,10,221,60,0,61,216,11,221,60,0,61,216,12,221,60,0,61,216,13,221,60,0,61,216,14,221,60,0,61,216,15,221,60,0,61,216,16,221,60,0,61,216,17,221,60,0,61,216,18,221,60,0,61,216,19,221,60,0,61,216,20,221,60,0,61,216,21,221,60,0,61,216,22,221,60,0,61,216,23,221,60,0,61,216,24,221,60,0,61,216,25,221,60,0,61,216,26,221,60,0,61,216,27,221,60,0,61,216,28,221,60,0,61,216,29,221,60,0,61,216,30,221,60,0,61,216,31,221,60,0,61,216,32,221,60,0,61,216,33,221,60,0,61,216,34,221,60,0,61,216,35,221,60,0,61,216,36,221,60,0,61,216,37,221,60,0,61,216,38,221,60,0,61,216,39,221,60,0,61,216,40,221,60,0,61,216,41,221,60,0,61,216,42,221,60,0,61,216,43,221,60,0,61,216,44,221,60,0,61,216,45,221,60,0,61,216,46,221,60,0,61,216,47,221,60,0,61,216,48,221,60,0,61,216,49,221,60,0,61,216,50,221,60,0,61,216,51,221,60,0,61,216,52,221,60,0,61,216,53,221,60,0,61,216,54,221,60,0,61,216,55,221,60,0,61,216,56,221,60,0,61,216,57,221,60,0,61,216,58,221,60,0,61,216,59,221,60,0,61,216,60,221,60,0,61,216,61,221,60,0,61,216,62,221,60,0,61,216,63,221,60,0,61,216,64,221,60,0,61,216,65,221,60,0,61,216,66,221,60,0,61,216,67,221,60,0,61,216,68,221,60,0,61,216,69,221,60,0,61,216,70,221,60,0,61,216,71,221,60,0,61,216,72,221,60,0,61,216,73,221,60,0,61,216,74,221,60,0,61,216,75,221,60,0,61,216,76,221,60,0,61,216,77,221,60,0,61,216,78,221,60,0,61,216,79,221,60,0,61,216,80,221,60,0,61,216,81,221,60,0,61,216,82,221,60,0,61,216,83,221,60,0,61,216,84,221,60,0,61,216,85,221,60,0,61,216,86,221,60,0,61,216,87,221,60,0,61,216,88,221,60,0,61,216,89,221,60,0,61,216,90,221,60,0,61,216,91,221,60,0,61,216,92,221,60,0,61,216,93,221,60,0,61,216,94,221,60,0,61,216,95,221,60,0,61,216,96,221,60,0,61,216,97,221,60,0,61,216,98,221,60,0,61,216,99,221,60,0,61,216,100,221,60,0,61,216,101,221,60,0,61,216,102,221,60,0,61,216,103,221,60,0,61,216,104,221,60,0,61,216,105,221,60,0,61,216,106,221,60,0,61,216,107,221,60,0,61,216,108,221,60,0,61,216,109,221,60,0,61,216,110,221,60,0,61,216,111,221,60,0,61,216,112,221,60,0,61,216,113,221,60,0,61,216,114,221,60,0,61,216,115,221,60,0,61,216,116,221,60,0,61,216,117,221,60,0,61,216,118,221,60,0,61,216,119,221,60,0,61,216,120,221,60,0,61,216,121,221,60,0,61,216,122,221,60,0,61,216,123,221,60,0,61,216,124,221,60,0,61,216,125,221,60,0,61,216,126,221,60,0,61,216,127,221,60,0,61,216,128,221,60,0,61,216,129,221,60,0,61,216,130,221,60,0,61,216,131,221,60,0,61,216,132,221,60,0,61,216,133,221,60,0,61,216,134,221,60,0,61,216,135,221,60,0,61,216,136,221,60,0,61,216,137,221,60,0,61,216,138,221,60,0,61,216,139,221,60,0,61,216,140,221,60,0,61,216,141,221,60,0,61,216,142,221,60,0,61,216,143,221,60,0,61,216,144,221,60,0,61,216,145,221,60,0,61,216,146,221,60,0,61,216,147,221,60,0,61,216,148,221,60,0,61,216,149,221,60,0,61,216,150,221,60,0,61,216,151,221,60,0,61,216,152,221,60,0,61,216,153,221,60,0,61,216,154,221,60,0,61,216,155,221,60,0,61,216,156,221,60,0,61,216,157,221,60,0,61,216,158,221,60,0,61,216,159,221,60,0,61,216,160,221,60,0,61,216,161,221,60,0,61,216,162,221,60,0,61,216,163,221,60,0,61,216,164,221,60,0,61,216,165,221,60,0,61,216,166,221,60,0,61,216,167,221,60,0,61,216,168,221,60,0,61,216,169,221,60,0,61,216,170,221,60,0,61,216,171,221,60,0,61,216,172,221,60,0,61,216,173,221,60,0,61,216,174,221,60,0,61,216,175,221,60,0,61,216,176,221,60,0,61,216,177,221,60,0,61,216,178,221,60,0,61,216,179,221,60,0,61,216,180,221,60,0,61,216,181,221,60,0,61,216,182,221,60,0,61,216,183,221,60,0,61,216,184,221,60,0,61,216,185,221,60,0,61,216,186,221,60,0,61,216,187,221,60,0,61,216,188,221,60,0,61,216,189,221,60,0,61,216,190,221,60,0,61,216,191,221,60,0,61,216,192,221,60,0,61,216,193,221,60,0,61,216,194,221,60,0,61,216,195,221,60,0,61,216,196,221,60,0,61,216,197,221,60,0,61,216,198,221,60,0,61,216,199,221,60,0,61,216,200,221,60,0,61,216,201,221,60,0,61,216,202,221,60,0,61,216,203,221,60,0,61,216,204,221,60,0,61,216,205,221,60,0,61,216,206,221,60,0,61,216,207,221,60,0,61,216,208,221,60,0,61,216,209,221,60,0,61,216,210,221,60,0,61,216,211,221,60,0,61,216,212,221,60,0,61,216,213,221,60,0,61,216,214,221,60,0,61,216,215,221,60,0,61,216,216,221,60,0,61,216,217,221,60,0,61,216,218,221,60,0,61,216,219,221,60,0,61,216,220,221,60,0,61,216,221,221,60,0,61,216,222,221,60,0,61,216,223,221,60,0,61,216,224,221,60,0,61,216,225,221,60,0,61,216,226,221,60,0,61,216,227,221,60,0,61,216,228,221,60,0,61,216,229,221,60,0,61,216,230,221,60,0,61,216,231,221,60,0,61,216,232,221,60,0,61,216,233,221,60,0,61,216,234,221,60,0,61,216,235,221,60,0,61,216,236,221,60,0,61,216,237,221,60,0,61,216,238,221,60,0,61,216,239,221,60,0,61,216,240,221,60,0,61,216,241,221,60,0,61,216,242,221,60,0,61,216,243,221,60,0,61,216,244,221,60,0,61,216,245,221,60,0,61,216,246,221,60,0,61,216,247,221,60,0,61,216,248,221,60,0,61,216,249,221,60,0,61,216,250,221,60,0,61,216,251,221,60,0,61,216,252,221,60,0,61,216,253,221,60,0,61,216,254,221,60,0,61,216,255,221,60,0,62,216,0,221,60,0,62,216,1,221,60,0,62,216,2,221,60,0,62,216,3,221,60,0,62,216,4,221,60,0,62,216,5,221,60,0,62,216,6,221,60,0,62,216,7,221,60,0,62,216,8,221,60,0,62,216,9,221,60,0,62,216,10,221,60,0,62,216,11,221,60,0,62,216,12,221,60,0,62,216,13,221,60,0,62,216,14,221,60,0,62,216,15,221,60,0,62,216,16,221,60,0,62,216,17,221,60,0,62,216,18,221,60,0,62,216,19,221,60,0,62,216,20,221,60,0,62,216,21,221,60,0,62,216,22,221,60,0,62,216,23,221,60,0,62,216,24,221,60,0,62,216,25,221,60,0,62,216,26,221,60,0,62,216,27,221,60,0,62,216,28,221,60,0,62,216,29,221,60,0,62,216,30,221,60,0,62,216,31,221,60,0,62,216,32,221,60,0,62,216,33,221,60,0,62,216,34,221,60,0,62,216,35,221,60,0,62,216,36,221,60,0,62,216,37,221,60,0,62,216,38,221,60,0,62,216,39,221,60,0,62,216,40,221,60,0,62,216,41,221,60,0,62,216,42,221,60,0,62,216,43,221,60,0,62,216,44,221,60,0,62,216,45,221,60,0,62,216,46,221,60,0,62,216,47,221,60,0,62,216,48,221,60,0,62,216,49,221,60,0,62,216,50,221,60,0,62,216,51,221,60,0,62,216,52,221,60,0,62,216,53,221,60,0,62,216,54,221,60,0,62,216,55,221,60,0,62,216,56,221,60,0,62,216,57,221,60,0,62,216,58,221,60,0,62,216,59,221,60,0,62,216,60,221,60,0,62,216,61,221,60,0,62,216,62,221,60,0,62,216,63,221,60,0,62,216,64,221,60,0,62,216,65,221,60,0,62,216,66,221,60,0,62,216,67,221,60,0,62,216,68,221,60,0,62,216,69,221,60,0,62,216,70,221,60,0,62,216,71,221,60,0,62,216,72,221,60,0,62,216,73,221,60,0,62,216,74,221,60,0,62,216,75,221,60,0,62,216,76,221,60,0,62,216,77,221,60,0,62,216,78,221,60,0,62,216,79,221,60,0,62,216,80,221,60,0,62,216,81,221,60,0,62,216,82,221,60,0,62,216,83,221,60,0,62,216,84,221,60,0,62,216,85,221,60,0,62,216,86,221,60,0,62,216,87,221,60,0,62,216,88,221,60,0,62,216,89,221,60,0,62,216,90,221,60,0,62,216,91,221,60,0,62,216,92,221,60,0,62,216,93,221,60,0,62,216,94,221,60,0,62,216,95,221,60,0,62,216,96,221,60,0,62,216,97,221,60,0,62,216,98,221,60,0,62,216,99,221,60,0,62,216,100,221,60,0,62,216,101,221,60,0,62,216,102,221,60,0,62,216,103,221,60,0,62,216,104,221,60,0,62,216,105,221,60,0,62,216,106,221,60,0,62,216,107,221,60,0,62,216,108,221,60,0,62,216,109,221,60,0,62,216,110,221,60,0,62,216,111,221,60,0,62,216,112,221,60,0,62,216,113,221,60,0,62,216,114,221,60,0,62,216,115,221,60,0,62,216,116,221,60,0,62,216,117,221,60,0,62,216,118,221,60,0,62,216,119,221,60,0,62,216,120,221,60,0,62,216,121,221,60,0,62,216,122,221,60,0,62,216,123,221,60,0,62,216,124,221,60,0,62,216,125,221,60,0,62,216,126,221,60,0,62,216,127,221,60,0,62,216,128,221,60,0,62,216,129,221,60,0,62,216,130,221,60,0,62,216,131,221,60,0,62,216,132,221,60,0,62,216,133,221,60,0,62,216,134,221,60,0,62,216,135,221,60,0,62,216,136,221,60,0,62,216,137,221,60,0,62,216,138,221,60,0,62,216,139,221,60,0,62,216,140,221,60,0,62,216,141,221,60,0,62,216,142,221,60,0,62,216,143,221,60,0,62,216,144,221,60,0,62,216,145,221,60,0,62,216,146,221,60,0,62,216,147,221,60,0,62,216,148,221,60,0,62,216,149,221,60,0,62,216,150,221,60,0,62,216,151,221,60,0,62,216,152,221,60,0,62,216,153,221,60,0,62,216,154,221,60,0,62,216,155,221,60,0,62,216,156,221,60,0,62,216,157,221,60,0,62,216,158,221,60,0,62,216,159,221,60,0,62,216,160,221,60,0,62,216,161,221,60,0,62,216,162,221,60,0,62,216,163,221,60,0,62,216,164,221,60,0,62,216,165,221,60,0,62,216,166,221,60,0,62,216,167,221,60,0,62,216,168,221,60,0,62,216,169,221,60,0,62,216,170,221,60,0,62,216,171,221,60,0,62,216,172,221,60,0,62,216,173,221,60,0,62,216,174,221,60,0,62,216,175,221,60,0,62,216,176,221,60,0,62,216,177,221,60,0,62,216,178,221,60,0,62,216,179,221,60,0,62,216,180,221,60,0,62,216,181,221,60,0,62,216,182,221,60,0,62,216,183,221,60,0,62,216,184,221,60,0,62,216,185,221,60,0,62,216,186,221,60,0,62,216,187,221,60,0,62,216,188,221,60,0,62,216,189,221,60,0,62,216,190,221,60,0,62,216,191,221,60,0,62,216,192,221,60,0,62,216,193,221,60,0,62,216,194,221,60,0,62,216,195,221,60,0,62,216,196,221,60,0,62,216,197,221,60,0,62,216,198,221,60,0,62,216,199,221,60,0,62,216,200,221,60,0,62,216,201,221,60,0,62,216,202,221,60,0,62,216,203,221,60,0,62,216,204,221,60,0,62,216,205,221,60,0,62,216,206,221,60,0,62,216,207,221,60,0,62,216,208,221,60,0,62,216,209,221,60,0,62,216,210,221,60,0,62,216,211,221,60,0,62,216,212,221,60,0,62,216,213,221,60,0,62,216,214,221,60,0,62,216,215,221,60,0,62,216,216,221,60,0,62,216,217,221,60,0,62,216,218,221,60,0,62,216,219,221,60,0,62,216,220,221,60,0,62,216,221,221,60,0,62,216,222,221,60,0,62,216,223,221,60,0,62,216,224,221,60,0,62,216,225,221,60,0,62,216,226,221,60,0,62,216,227,221,60,0,62,216,228,221,60,0,62,216,229,221,60,0,62,216,230,221,60,0,62,216,231,221,60,0,62,216,232,221,60,0,62,216,233,221,60,0,62,216,234,221,60,0,62,216,235,221,60,0,62,216,236,221,60,0,62,216,237,221,60,0,62,216,238,221,60,0,62,216,239,221,60,0,62,216,240,221,60,0,62,216,241,221,60,0,62,216,242,221,60,0,62,216,243,221,60,0,62,216,244,221,60,0,62,216,245,221,60,0,62,216,246,221,60,0,62,216,247,221,60,0,62,216,248,221,60,0,62,216,249,221,60,0,62,216,250,221,60,0,62,216,251,221,60,0,62,216,252,221,60,0,62,216,253,221,60,0,62,216,254,221,60,0,62,216,255,221,60,0,62,216,112,222,60,0,62,216,113,222,60,0,62,216,114,222,60,0,62,216,115,222,60,0,62,216,116,222,60,0,62,216,117,222,60,0,62,216,118,222,60,0,62,216,119,222,60,0,62,216,120,222,60,0,62,216,121,222,60,0,62,216,122,222,60,0,62,216,123,222,60,0,62,216,124,222,60,0,62,216,128,222,60,0,62,216,129,222,60,0,62,216,130,222,60,0,62,216,131,222,60,0,62,216,132,222,60,0,62,216,133,222,60,0,62,216,134,222,60,0,62,216,135,222,60,0,62,216,136,222,60,0,62,216,144,222,60,0,62,216,145,222,60,0,62,216,146,222,60,0,62,216,147,222,60,0,62,216,148,222,60,0,62,216,149,222,60,0,62,216,150,222,60,0,62,216,151,222,60,0,62,216,152,222,60,0,62,216,153,222,60,0,62,216,154,222,60,0,62,216,155,222,60,0,62,216,156,222,60,0,62,216,157,222,60,0,62,216,158,222,60,0,62,216,159,222,60,0,62,216,160,222,60,0,62,216,161,222,60,0,62,216,162,222,60,0,62,216,163,222,60,0,62,216,164,222,60,0,62,216,165,222,60,0,62,216,166,222,60,0,62,216,167,222,60,0,62,216,168,222,60,0,62,216,169,222,60,0,62,216,170,222,60,0,62,216,171,222,60,0,62,216,172,222,60,0,62,216,173,222,60,0,62,216,174,222,60,0,62,216,175,222,60,0,62,216,176,222,60,0,62,216,177,222,60,0,62,216,178,222,60,0,62,216,179,222,60,0,62,216,180,222,60,0,62,216,181,222,60,0,62,216,182,222,60,0,62,216,183,222,60,0,62,216,184,222,60,0,62,216,185,222,60,0,62,216,186,222,60,0,62,216,187,222,60,0,62,216,188,222,60,0,62,216,189,222,60,0,62,216,191,222,60,0,62,216,192,222,60,0,62,216,193,222,60,0,62,216,194,222,60,0,62,216,195,222,60,0,62,216,196,222,60,0,62,216,197,222,60,0,62,216,206,222,60,0,62,216,207,222,60,0,62,216,208,222,60,0,62,216,209,222,60,0,62,216,210,222,60,0,62,216,211,222,60,0,62,216,212,222,60,0,62,216,213,222,60,0,62,216,214,222,60,0,62,216,215,222,60,0,62,216,216,222,60,0,62,216,217,222,60,0,62,216,218,222,60,0,62,216,219,222,60,0,62,216,224,222,60,0,62,216,225,222,60,0,62,216,226,222,60,0,62,216,227,222,60,0,62,216,228,222,60,0,62,216,229,222,60,0,62,216,230,222,60,0,62,216,231,222,60,0,62,216,232,222,60,0,62,216,240,222,60,0,62,216,241,222,60,0,62,216,242,222,60,0,62,216,243,222,60,0,62,216,244,222,60,0,62,216,245,222,60,0,62,216,246,222,60,0,62,216,247,222,60,0,62,216,248,222,60,0,61,216,0,222,60,0,61,216,1,222,60,0,61,216,2,222,60,0,61,216,3,222,60,0,61,216,4,222,60,0,61,216,5,222,60,0,61,216,6,222,60,0,61,216,7,222,60,0,61,216,8,222,60,0,61,216,9,222,60,0,61,216,10,222,60,0,61,216,11,222,60,0,61,216,12,222,60,0,61,216,13,222,60,0,61,216,14,222,60,0,61,216,15,222,60,0,61,216,16,222,60,0,61,216,17,222,60,0,61,216,18,222,60,0,61,216,19,222,60,0,61,216,20,222,60,0,61,216,21,222,60,0,61,216,22,222,60,0,61,216,23,222,60,0,61,216,24,222,60,0,61,216,25,222,60,0,61,216,26,222,60,0,61,216,27,222,60,0,61,216,28,222,60,0,61,216,29,222,60,0,61,216,30,222,60,0,61,216,31,222,60,0,61,216,32,222,60,0,61,216,33,222,60,0,61,216,34,222,60,0,61,216,35,222,60,0,61,216,36,222,60,0,61,216,37,222,60,0,61,216,38,222,60,0,61,216,39,222,60,0,61,216,40,222,60,0,61,216,41,222,60,0,61,216,42,222,60,0,61,216,43,222,60,0,61,216,44,222,60,0,61,216,45,222,60,0,61,216,46,222,60,0,61,216,47,222,60,0,61,216,48,222,60,0,61,216,49,222,60,0,61,216,50,222,60,0,61,216,51,222,60,0,61,216,52,222,60,0,61,216,53,222,60,0,61,216,54,222,60,0,61,216,55,222,60,0,61,216,56,222,60,0,61,216,57,222,60,0,61,216,58,222,60,0,61,216,59,222,60,0,61,216,60,222,60,0,61,216,61,222,60,0,61,216,62,222,60,0,61,216,63,222,60,0,61,216,64,222,60,0,61,216,65,222,60,0,61,216,66,222,60,0,61,216,67,222,60,0,61,216,68,222,60,0,61,216,69,222,60,0,61,216,70,222,60,0,61,216,71,222,60,0,61,216,72,222,60,0,61,216,73,222,60,0,61,216,74,222,60,0,61,216,75,222,60,0,61,216,76,222,60,0,61,216,77,222,60,0,61,216,78,222,60,0,61,216,79,222,60,0,61,216,80,222,60,0,61,216,81,222,60,0,61,216,82,222,60,0,61,216,83,222,60,0,61,216,84,222,60,0,61,216,85,222,60,0,61,216,86,222,60,0,61,216,87,222,60,0,61,216,88,222,60,0,61,216,89,222,60,0,61,216,90,222,60,0,61,216,91,222,60,0,61,216,92,222,60,0,61,216,93,222,60,0,61,216,94,222,60,0,61,216,95,222,60,0,61,216,96,222,60,0,61,216,97,222,60,0,61,216,98,222,60,0,61,216,99,222,60,0,61,216,100,222,60,0,61,216,101,222,60,0,61,216,102,222,60,0,61,216,103,222,60,0,61,216,104,222,60,0,61,216,105,222,60,0,61,216,106,222,60,0,61,216,107,222,60,0,61,216,108,222,60,0,61,216,109,222,60,0,61,216,110,222,60,0,61,216,111,222,60,0,61,216,112,222,60,0,61,216,113,222,60,0,61,216,114,222,60,0,61,216,115,222,60,0,61,216,116,222,60,0,61,216,117,222,60,0,61,216,118,222,60,0,61,216,119,222,60,0,61,216,120,222,60,0,61,216,121,222,60,0,61,216,122,222,60,0,61,216,123,222,60,0,61,216,124,222,60,0,61,216,125,222,60,0,61,216,126,222,60,0,61,216,127,222,60,0,61,216,128,222,60,0,61,216,129,222,60,0,61,216,130,222,60,0,61,216,131,222,60,0,61,216,132,222,60,0,61,216,133,222,60,0,61,216,134,222,60,0,61,216,135,222,60,0,61,216,136,222,60,0,61,216,137,222,60,0,61,216,138,222,60,0,61,216,139,222,60,0,61,216,140,222,60,0,61,216,141,222,60,0,61,216,142,222,60,0,61,216,143,222,60,0,61,216,144,222,60,0,61,216,145,222,60,0,61,216,146,222,60,0,61,216,147,222,60,0,61,216,148,222,60,0,61,216,149,222,60,0,61,216,150,222,60,0,61,216,151,222,60,0,61,216,152,222,60,0,61,216,153,222,60,0,61,216,154,222,60,0,61,216,155,222,60,0,61,216,156,222,60,0,61,216,157,222,60,0,61,216,158,222,60,0,61,216,159,222,60,0,61,216,160,222,60,0,61,216,161,222,60,0,61,216,162,222,60,0,61,216,163,222,60,0,61,216,164,222,60,0,61,216,165,222,60,0,61,216,166,222,60,0,61,216,167,222,60,0,61,216,168,222,60,0,61,216,169,222,60,0,61,216,170,222,60,0,61,216,171,222,60,0,61,216,172,222,60,0,61,216,173,222,60,0,61,216,174,222,60,0,61,216,175,222,60,0,61,216,176,222,60,0,61,216,177,222,60,0,61,216,178,222,60,0,61,216,179,222,60,0,61,216,180,222,60,0,61,216,181,222,60,0,61,216,182,222,60,0,61,216,183,222,60,0,61,216,184,222,60,0,61,216,185,222,60,0,61,216,186,222,60,0,61,216,187,222,60,0,61,216,188,222,60,0,61,216,189,222,60,0,61,216,190,222,60,0,61,216,191,222,60,0,61,216,192,222,60,0,61,216,193,222,60,0,61,216,194,222,60,0,61,216,195,222,60,0,61,216,196,222,60,0,61,216,197,222,60,0,61,216,198,222,60,0,61,216,199,222,60,0,61,216,200,222,60,0,61,216,201,222,60,0,61,216,202,222,60,0,61,216,203,222,60,0,61,216,204,222,60,0,61,216,205,222,60,0,61,216,206,222,60,0,61,216,207,222,60,0,61,216,208,222,60,0,61,216,209,222,60,0,61,216,210,222,60,0,61,216,211,222,60,0,61,216,212,222,60,0,61,216,213,222,60,0,61,216,214,222,60,0,61,216,215,222,60,0,61,216,220,222,60,0,61,216,221,222,60,0,61,216,222,222,60,0,61,216,223,222,60,0,61,216,224,222,60,0,61,216,225,222,60,0,61,216,226,222,60,0,61,216,227,222,60,0,61,216,228,222,60,0,61,216,229,222,60,0,61,216,230,222,60,0,61,216,231,222,60,0,61,216,232,222,60,0,61,216,233,222,60,0,61,216,234,222,60,0,61,216,235,222,60,0,61,216,236,222,60,0,61,216,240,222,60,0,61,216,241,222,60,0,61,216,242,222,60,0,61,216,243,222,60,0,61,216,244,222,60,0,61,216,245,222,60,0,61,216,246,222,60,0,61,216,247,222,60,0,61,216,248,222,60,0,61,216,249,222,60,0,61,216,250,222,60,0,61,216,251,222,60,0,61,216,252,222,60,0,61,216,0,223,60,0,61,216,1,223,60,0,61,216,2,223,60,0,61,216,3,223,60,0,61,216,4,223,60,0,61,216,5,223,60,0,61,216,6,223,60,0,61,216,7,223,60,0,61,216,8,223,60,0,61,216,9,223,60,0,61,216,10,223,60,0,61,216,11,223,60,0,61,216,12,223,60,0,61,216,13,223,60,0,61,216,14,223,60,0,61,216,15,223,60,0,61,216,16,223,60,0,61,216,17,223,60,0,61,216,18,223,60,0,61,216,19,223,60,0,61,216,20,223,60,0,61,216,21,223,60,0,61,216,22,223,60,0,61,216,23,223,60,0,61,216,24,223,60,0,61,216,25,223,60,0,61,216,26,223,60,0,61,216,27,223,60,0,61,216,28,223,60,0,61,216,29,223,60,0,61,216,30,223,60,0,61,216,31,223,60,0,61,216,32,223,60,0,61,216,33,223,60,0,61,216,34,223,60,0,61,216,35,223,60,0,61,216,36,223,60,0,61,216,37,223,60,0,61,216,38,223,60,0,61,216,39,223,60,0,61,216,40,223,60,0,61,216,41,223,60,0,61,216,42,223,60,0,61,216,43,223,60,0,61,216,44,223,60,0,61,216,45,223,60,0,61,216,46,223,60,0,61,216,47,223,60,0,61,216,48,223,60,0,61,216,49,223,60,0,61,216,50,223,60,0,61,216,51,223,60,0,61,216,52,223,60,0,61,216,53,223,60,0,61,216,54,223,60,0,61,216,55,223,60,0,61,216,56,223,60,0,61,216,57,223,60,0,61,216,58,223,60,0,61,216,59,223,60,0,61,216,60,223,60,0,61,216,61,223,60,0,61,216,62,223,60,0,61,216,63,223,60,0,61,216,64,223,60,0,61,216,65,223,60,0,61,216,66,223,60,0,61,216,67,223,60,0,61,216,68,223,60,0,61,216,69,223,60,0,61,216,70,223,60,0,61,216,71,223,60,0,61,216,72,223,60,0,61,216,73,223,60,0,61,216,74,223,60,0,61,216,75,223,60,0,61,216,76,223,60,0,61,216,77,223,60,0,61,216,78,223,60,0,61,216,79,223,60,0,61,216,80,223,60,0,61,216,81,223,60,0,61,216,82,223,60,0,61,216,83,223,60,0,61,216,84,223,60,0,61,216,85,223,60,0,61,216,86,223,60,0,61,216,87,223,60,0,61,216,88,223,60,0,61,216,89,223,60,0,61,216,90,223,60,0,61,216,91,223,60,0,61,216,92,223,60,0,61,216,93,223,60,0,61,216,94,223,60,0,61,216,95,223,60,0,61,216,96,223,60,0,61,216,97,223,60,0,61,216,98,223,60,0,61,216,99,223,60,0,61,216,100,223,60,0,61,216,101,223,60,0,61,216,102,223,60,0,61,216,103,223,60,0,61,216,104,223,60,0,61,216,105,223,60,0,61,216,106,223,60,0,61,216,107,223,60,0,61,216,108,223,60,0,61,216,109,223,60,0,61,216,110,223,60,0,61,216,111,223,60,0,61,216,112,223,60,0,61,216,113,223,60,0,61,216,114,223,60,0,61,216,115,223,60,0,61,216,116,223,60,0,61,216,117,223,60,0,61,216,118,223,60,0,61,216,123,223,60,0,61,216,124,223,60,0,61,216,125,223,60,0,61,216,126,223,60,0,61,216,127,223,60,0,61,216,128,223,60,0,61,216,129,223,60,0,61,216,130,223,60,0,61,216,131,223,60,0,61,216,132,223,60,0,61,216,133,223,60,0,61,216,134,223,60,0,61,216,135,223,60,0,61,216,136,223,60,0,61,216,137,223,60,0,61,216,138,223,60,0,61,216,139,223,60,0,61,216,140,223,60,0,61,216,141,223,60,0,61,216,142,223,60,0,61,216,143,223,60,0,61,216,144,223,60,0,61,216,145,223,60,0,61,216,146,223,60,0,61,216,147,223,60,0,61,216,148,223,60,0,61,216,149,223,60,0,61,216,150,223,60,0,61,216,151,223,60,0,61,216,152,223,60,0,61,216,153,223,60,0,61,216,154,223,60,0,61,216,155,223,60,0,61,216,156,223,60,0,61,216,157,223,60,0,61,216,158,223,60,0,61,216,159,223,60,0,61,216,160,223,60,0,61,216,161,223,60,0,61,216,162,223,60,0,61,216,163,223,60,0,61,216,164,223,60,0,61,216,165,223,60,0,61,216,166,223,60,0,61,216,167,223,60,0,61,216,168,223,60,0,61,216,169,223,60,0,61,216,170,223,60,0,61,216,171,223,60,0,61,216,172,223,60,0,61,216,173,223,60,0,61,216,174,223,60,0,61,216,175,223,60,0,61,216,176,223,60,0,61,216,177,223,60,0,61,216,178,223,60,0,61,216,179,223,60,0,61,216,180,223,60,0,61,216,181,223,60,0,61,216,182,223,60,0,61,216,183,223,60,0,61,216,184,223,60,0,61,216,185,223,60,0,61,216,186,223,60,0,61,216,187,223,60,0,61,216,188,223,60,0,61,216,189,223,60,0,61,216,190,223,60,0,61,216,191,223,60,0,61,216,192,223,60,0,61,216,193,223,60,0,61,216,194,223,60,0,61,216,195,223,60,0,61,216,196,223,60,0,61,216,197,223,60,0,61,216,198,223,60,0,61,216,199,223,60,0,61,216,200,223,60,0,61,216,201,223,60,0,61,216,202,223,60,0,61,216,203,223,60,0,61,216,204,223,60,0,61,216,205,223,60,0,61,216,206,223,60,0,61,216,207,223,60,0,61,216,208,223,60,0,61,216,209,223,60,0,61,216,210,223,60,0,61,216,211,223,60,0,61,216,212,223,60,0,61,216,213,223,60,0,61,216,214,223,60,0,61,216,215,223,60,0,61,216,216,223,60,0,61,216,217,223,60,0,61,216,224,223,60,0,61,216,225,223,60,0,61,216,226,223,60,0,61,216,227,223,60,0,61,216,228,223,60,0,61,216,229,223,60,0,61,216,230,223,60,0,61,216,231,223,60,0,61,216,232,223,60,0,61,216,233,223,60,0,61,216,234,223,60,0,61,216,235,223,60,0,61,216,240,223,60,0,62,216,0,220,60,0,62,216,1,220,60,0,62,216,2,220,60,0,62,216,3,220,60,0,62,216,4,220,60,0,62,216,5,220,60,0,62,216,6,220,60,0,62,216,7,220,60,0,62,216,8,220,60,0,62,216,9,220,60,0,62,216,10,220,60,0,62,216,11,220,60,0,62,216,16,220,60,0,62,216,17,220,60,0,62,216,18,220,60,0,62,216,19,220,60,0,62,216,20,220,60,0,62,216,21,220,60,0,62,216,22,220,60,0,62,216,23,220,60,0,62,216,24,220,60,0,62,216,25,220,60,0,62,216,26,220,60,0,62,216,27,220,60,0,62,216,28,220,60,0,62,216,29,220,60,0,62,216,30,220,60,0,62,216,31,220,60,0,62,216,32,220,60,0,62,216,33,220,60,0,62,216,34,220,60,0,62,216,35,220,60,0,62,216,36,220,60,0,62,216,37,220,60,0,62,216,38,220,60,0,62,216,39,220,60,0,62,216,40,220,60,0,62,216,41,220,60,0,62,216,42,220,60,0,62,216,43,220,60,0,62,216,44,220,60,0,62,216,45,220,60,0,62,216,46,220,60,0,62,216,47,220,60,0,62,216,48,220,60,0,62,216,49,220,60,0,62,216,50,220,60,0,62,216,51,220,60,0,62,216,52,220,60,0,62,216,53,220,60,0,62,216,54,220,60,0,62,216,55,220,60,0,62,216,56,220,60,0,62,216,57,220,60,0,62,216,58,220,60,0,62,216,59,220,60,0,62,216,60,220,60,0,62,216,61,220,60,0,62,216,62,220,60,0,62,216,63,220,60,0,62,216,64,220,60,0,62,216,65,220,60,0,62,216,66,220,60,0,62,216,67,220,60,0,62,216,68,220,60,0,62,216,69,220,60,0,62,216,70,220,60,0,62,216,71,220,60,0,62,216,80,220,60,0,62,216,81,220,60,0,62,216,82,220,60,0,62,216,83,220,60,0,62,216,84,220,60,0,62,216,85,220,60,0,62,216,86,220,60,0,62,216,87,220,60,0,62,216,88,220,60,0,62,216,89,220,60,0,62,216,96,220,60,0,62,216,97,220,60,0,62,216,98,220,60,0,62,216,99,220,60,0,62,216,100,220,60,0,62,216,101,220,60,0,62,216,102,220,60,0,62,216,103,220,60,0,62,216,104,220,60,0,62,216,105,220,60,0,62,216,106,220,60,0,62,216,107,220,60,0,62,216,108,220,60,0,62,216,109,220,60,0,62,216,110,220,60,0,62,216,111,220,60,0,62,216,112,220,60,0,62,216,113,220,60,0,62,216,114,220,60,0,62,216,115,220,60,0,62,216,116,220,60,0,62,216,117,220,60,0,62,216,118,220,60,0,62,216,119,220,60,0,62,216,120,220,60,0,62,216,121,220,60,0,62,216,122,220,60,0,62,216,123,220,60,0,62,216,124,220,60,0,62,216,125,220,60,0,62,216,126,220,60,0,62,216,127,220,60,0,62,216,128,220,60,0,62,216,129,220,60,0,62,216,130,220,60,0,62,216,131,220,60,0,62,216,132,220,60,0,62,216,133,220,60,0,62,216,134,220,60,0,62,216,135,220,60,0,62,216,144,220,60,0,62,216,145,220,60,0,62,216,146,220,60,0,62,216,147,220,60,0,62,216,148,220,60,0,62,216,149,220,60,0,62,216,150,220,60,0,62,216,151,220,60,0,62,216,152,220,60,0,62,216,153,220,60,0,62,216,154,220,60,0,62,216,155,220,60,0,62,216,156,220,60,0,62,216,157,220,60,0,62,216,158,220,60,0,62,216,159,220,60,0,62,216,160,220,60,0,62,216,161,220,60,0,62,216,162,220,60,0,62,216,163,220,60,0,62,216,164,220,60,0,62,216,165,220,60,0,62,216,166,220,60,0,62,216,167,220,60,0,62,216,168,220,60,0,62,216,169,220,60,0,62,216,170,220,60,0,62,216,171,220,60,0,62,216,172,220,60,0,62,216,173,220,60,0,62,216,176,220,60,0,62,216,177,220,60,0,54,216,0,220,60,0,54,216,1,220,60,0,54,216,2,220,60,0,54,216,3,220,60,0,54,216,4,220,60,0,54,216,5,220,60,0,54,216,6,220,60,0,54,216,7,220,60,0,54,216,8,220,60,0,54,216,9,220,60,0,54,216,10,220,60,0,54,216,11,220,60,0,54,216,12,220,60,0,54,216,13,220,60,0,54,216,14,220,60,0,54,216,15,220,60,0,54,216,16,220,60,0,54,216,17,220,60,0,54,216,18,220,60,0,54,216,19,220,60,0,54,216,20,220,60,0,54,216,21,220,60,0,54,216,22,220,60,0,54,216,23,220,60,0,54,216,24,220,60,0,54,216,25,220,60,0,54,216,26,220,60,0,54,216,27,220,60,0,54,216,28,220,60,0,54,216,29,220,60,0,54,216,30,220,60,0,54,216,31,220,60,0,54,216,32,220,60,0,54,216,33,220,60,0,54,216,34,220,60,0,54,216,35,220,60,0,54,216,36,220,60,0,54,216,37,220,60,0,54,216,38,220,60,0,54,216,39,220,60,0,54,216,40,220,60,0,54,216,41,220,60,0,54,216,42,220,60,0,54,216,43,220,60,0,54,216,44,220,60,0,54,216,45,220,60,0,54,216,46,220,60,0,54,216,47,220,60,0,54,216,48,220,60,0,54,216,49,220,60,0,54,216,50,220,60,0,54,216,51,220,60,0,54,216,52,220,60,0,54,216,53,220,60,0,54,216,54,220,60,0,54,216,55,220,60,0,54,216,56,220,60,0,54,216,57,220,60,0,54,216,58,220,60,0,54,216,59,220,60,0,54,216,60,220,60,0,54,216,61,220,60,0,54,216,62,220,60,0,54,216,63,220,60,0,54,216,64,220,60,0,54,216,65,220,60,0,54,216,66,220,60,0,54,216,67,220,60,0,54,216,68,220,60,0,54,216,69,220,60,0,54,216,70,220,60,0,54,216,71,220,60,0,54,216,72,220,60,0,54,216,73,220,60,0,54,216,74,220,60,0,54,216,75,220,60,0,54,216,76,220,60,0,54,216,77,220,60,0,54,216,78,220,60,0,54,216,79,220,60,0,54,216,80,220,60,0,54,216,81,220,60,0,54,216,82,220,60,0,54,216,83,220,60,0,54,216,84,220,60,0,54,216,85,220,60,0,54,216,86,220,60,0,54,216,87,220,60,0,54,216,88,220,60,0,54,216,89,220,60,0,54,216,90,220,60,0,54,216,91,220,60,0,54,216,92,220,60,0,54,216,93,220,60,0,54,216,94,220,60,0,54,216,95,220,60,0,54,216,96,220,60,0,54,216,97,220,60,0,54,216,98,220,60,0,54,216,99,220,60,0,54,216,100,220,60,0,54,216,101,220,60,0,54,216,102,220,60,0,54,216,103,220,60,0,54,216,104,220,60,0,54,216,105,220,60,0,54,216,106,220,60,0,54,216,107,220,60,0,54,216,108,220,60,0,54,216,109,220,60,0,54,216,110,220,60,0,54,216,111,220,60,0,54,216,112,220,60,0,54,216,113,220,60,0,54,216,114,220,60,0,54,216,115,220,60,0,54,216,116,220,60,0,54,216,117,220,60,0,54,216,118,220,60,0,54,216,119,220,60,0,54,216,120,220,60,0,54,216,121,220,60,0,54,216,122,220,60,0,54,216,123,220,60,0,54,216,124,220,60,0,54,216,125,220,60,0,54,216,126,220,60,0,54,216,127,220,60,0,54,216,128,220,60,0,54,216,129,220,60,0,54,216,130,220,60,0,54,216,131,220,60,0,54,216,132,220,60,0,54,216,133,220,60,0,54,216,134,220,60,0,54,216,135,220,60,0,54,216,136,220,60,0,54,216,137,220,60,0,54,216,138,220,60,0,54,216,139,220,60,0,54,216,140,220,60,0,54,216,141,220,60,0,54,216,142,220,60,0,54,216,143,220,60,0,54,216,144,220,60,0,54,216,145,220,60,0,54,216,146,220,60,0,54,216,147,220,60,0,54,216,148,220,60,0,54,216,149,220,60,0,54,216,150,220,60,0,54,216,151,220,60,0,54,216,152,220,60,0,54,216,153,220,60,0,54,216,154,220,60,0,54,216,155,220,60,0,54,216,156,220,60,0,54,216,157,220,60,0,54,216,158,220,60,0,54,216,159,220,60,0,54,216,160,220,60,0,54,216,161,220,60,0,54,216,162,220,60,0,54,216,163,220,60,0,54,216,164,220,60,0,54,216,165,220,60,0,54,216,166,220,60,0,54,216,167,220,60,0,54,216,168,220,60,0,54,216,169,220,60,0,54,216,170,220,60,0,54,216,171,220,60,0,54,216,172,220,60,0,54,216,173,220,60,0,54,216,174,220,60,0,54,216,175,220,60,0,54,216,176,220,60,0,54,216,177,220,60,0,54,216,178,220,60,0,54,216,179,220,60,0,54,216,180,220,60,0,54,216,181,220,60,0,54,216,182,220,60,0,54,216,183,220,60,0,54,216,184,220,60,0,54,216,185,220,60,0,54,216,186,220,60,0,54,216,187,220,60,0,54,216,188,220,60,0,54,216,189,220,60,0,54,216,190,220,60,0,54,216,191,220,60,0,54,216,192,220,60,0,54,216,193,220,60,0,54,216,194,220,60,0,54,216,195,220,60,0,54,216,196,220,60,0,54,216,197,220,60,0,54,216,198,220,60,0,54,216,199,220,60,0,54,216,200,220,60,0,54,216,201,220,60,0,54,216,202,220,60,0,54,216,203,220,60,0,54,216,204,220,60,0,54,216,205,220,60,0,54,216,206,220,60,0,54,216,207,220,60,0,54,216,208,220,60,0,54,216,209,220,60,0,54,216,210,220,60,0,54,216,211,220,60,0,54,216,212,220,60,0,54,216,213,220,60,0,54,216,214,220,60,0,54,216,215,220,60,0,54,216,216,220,60,0,54,216,217,220,60,0,54,216,218,220,60,0,54,216,219,220,60,0,54,216,220,220,60,0,54,216,221,220,60,0,54,216,222,220,60,0,54,216,223,220,60,0,54,216,224,220,60,0,54,216,225,220,60,0,54,216,226,220,60,0,54,216,227,220,60,0,54,216,228,220,60,0,54,216,229,220,60,0,54,216,230,220,60,0,54,216,231,220,60,0,54,216,232,220,60,0,54,216,233,220,60,0,54,216,234,220,60,0,54,216,235,220,60,0,54,216,236,220,60,0,54,216,237,220,60,0,54,216,238,220,60,0,54,216,239,220,60,0,54,216,240,220,60,0,54,216,241,220,60,0,54,216,242,220,60,0,54,216,243,220,60,0,54,216,244,220,60,0,54,216,245,220,60,0,54,216,246,220,60,0,54,216,247,220,60,0,54,216,248,220,60,0,54,216,249,220,60,0,54,216,250,220,60,0,54,216,251,220,60,0,54,216,252,220,60,0,54,216,253,220,60,0,54,216,254,220,60,0,54,216,255,220,60,0,54,216,0,221,60,0,54,216,1,221,60,0,54,216,2,221,60,0,54,216,3,221,60,0,54,216,4,221,60,0,54,216,5,221,60,0,54,216,6,221,60,0,54,216,7,221,60,0,54,216,8,221,60,0,54,216,9,221,60,0,54,216,10,221,60,0,54,216,11,221,60,0,54,216,12,221,60,0,54,216,13,221,60,0,54,216,14,221,60,0,54,216,15,221,60,0,54,216,16,221,60,0,54,216,17,221,60,0,54,216,18,221,60,0,54,216,19,221,60,0,54,216,20,221,60,0,54,216,21,221,60,0,54,216,22,221,60,0,54,216,23,221,60,0,54,216,24,221,60,0,54,216,25,221,60,0,54,216,26,221,60,0,54,216,27,221,60,0,54,216,28,221,60,0,54,216,29,221,60,0,54,216,30,221,60,0,54,216,31,221,60,0,54,216,32,221,60,0,54,216,33,221,60,0,54,216,34,221,60,0,54,216,35,221,60,0,54,216,36,221,60,0,54,216,37,221,60,0,54,216,38,221,60,0,54,216,39,221,60,0,54,216,40,221,60,0,54,216,41,221,60,0,54,216,42,221,60,0,54,216,43,221,60,0,54,216,44,221,60,0,54,216,45,221,60,0,54,216,46,221,60,0,54,216,47,221,60,0,54,216,48,221,60,0,54,216,49,221,60,0,54,216,50,221,60,0,54,216,51,221,60,0,54,216,52,221,60,0,54,216,53,221,60,0,54,216,54,221,60,0,54,216,55,221,60,0,54,216,56,221,60,0,54,216,57,221,60,0,54,216,58,221,60,0,54,216,59,221,60,0,54,216,60,221,60,0,54,216,61,221,60,0,54,216,62,221,60,0,54,216,63,221,60,0,54,216,64,221,60,0,54,216,65,221,60,0,54,216,66,221,60,0,54,216,67,221,60,0,54,216,68,221,60,0,54,216,69,221,60,0,54,216,70,221,60,0,54,216,71,221,60,0,54,216,72,221,60,0,54,216,73,221,60,0,54,216,74,221,60,0,54,216,75,221,60,0,54,216,76,221,60,0,54,216,77,221,60,0,54,216,78,221,60,0,54,216,79,221,60,0,54,216,80,221,60,0,54,216,81,221,60,0,54,216,82,221,60,0,54,216,83,221,60,0,54,216,84,221,60,0,54,216,85,221,60,0,54,216,86,221,60,0,54,216,87,221,60,0,54,216,88,221,60,0,54,216,89,221,60,0,54,216,90,221,60,0,54,216,91,221,60,0,54,216,92,221,60,0,54,216,93,221,60,0,54,216,94,221,60,0,54,216,95,221,60,0,54,216,96,221,60,0,54,216,97,221,60,0,54,216,98,221,60,0,54,216,99,221,60,0,54,216,100,221,60,0,54,216,101,221,60,0,54,216,102,221,60,0,54,216,103,221,60,0,54,216,104,221,60,0,54,216,105,221,60,0,54,216,106,221,60,0,54,216,107,221,60,0,54,216,108,221,60,0,54,216,109,221,60,0,54,216,110,221,60,0,54,216,111,221,60,0,54,216,112,221,60,0,54,216,113,221,60,0,54,216,114,221,60,0,54,216,115,221,60,0,54,216,116,221,60,0,54,216,117,221,60,0,54,216,118,221,60,0,54,216,119,221,60,0,54,216,120,221,60,0,54,216,121,221,60,0,54,216,122,221,60,0,54,216,123,221,60,0,54,216,124,221,60,0,54,216,125,221,60,0,54,216,126,221,60,0,54,216,127,221,60,0,54,216,128,221,60,0,54,216,129,221,60,0,54,216,130,221,60,0,54,216,131,221,60,0,54,216,132,221,60,0,54,216,133,221,60,0,54,216,134,221,60,0,54,216,135,221,60,0,54,216,136,221,60,0,54,216,137,221,60,0,54,216,138,221,60,0,54,216,139,221,60,0,54,216,140,221,60,0,54,216,141,221,60,0,54,216,142,221,60,0,54,216,143,221,60,0,54,216,144,221,60,0,54,216,145,221,60,0,54,216,146,221,60,0,54,216,147,221,60,0,54,216,148,221,60,0,54,216,149,221,60,0,54,216,150,221,60,0,54,216,151,221,60,0,54,216,152,221,60,0,54,216,153,221,60,0,54,216,154,221,60,0,54,216,155,221,60,0,54,216,156,221,60,0,54,216,157,221,60,0,54,216,158,221,60,0,54,216,159,221,60,0,54,216,160,221,60,0,54,216,161,221,60,0,54,216,162,221,60,0,54,216,163,221,60,0,54,216,164,221,60,0,54,216,165,221,60,0,54,216,166,221,60,0,54,216,167,221,60,0,54,216,168,221,60,0,54,216,169,221,60,0,54,216,170,221,60,0,54,216,171,221,60,0,54,216,172,221,60,0,54,216,173,221,60,0,54,216,174,221,60,0,54,216,175,221,60,0,54,216,176,221,60,0,54,216,177,221,60,0,54,216,178,221,60,0,54,216,179,221,60,0,54,216,180,221,60,0,54,216,181,221,60,0,54,216,182,221,60,0,54,216,183,221,60,0,54,216,184,221,60,0,54,216,185,221,60,0,54,216,186,221,60,0,54,216,187,221,60,0,54,216,188,221,60,0,54,216,189,221,60,0,54,216,190,221,60,0,54,216,191,221,60,0,54,216,192,221,60,0,54,216,193,221,60,0,54,216,194,221,60,0,54,216,195,221,60,0,54,216,196,221,60,0,54,216,197,221,60,0,54,216,198,221,60,0,54,216,199,221,60,0,54,216,200,221,60,0,54,216,201,221,60,0,54,216,202,221,60,0,54,216,203,221,60,0,54,216,204,221,60,0,54,216,205,221,60,0,54,216,206,221,60,0,54,216,207,221,60,0,54,216,208,221,60,0,54,216,209,221,60,0,54,216,210,221,60,0,54,216,211,221,60,0,54,216,212,221,60,0,54,216,213,221,60,0,54,216,214,221,60,0,54,216,215,221,60,0,54,216,216,221,60,0,54,216,217,221,60,0,54,216,218,221,60,0,54,216,219,221,60,0,54,216,220,221,60,0,54,216,221,221,60,0,54,216,222,221,60,0,54,216,223,221,60,0,54,216,224,221,60,0,54,216,225,221,60,0,54,216,226,221,60,0,54,216,227,221,60,0,54,216,228,221,60,0,54,216,229,221,60,0,54,216,230,221,60,0,54,216,231,221,60,0,54,216,232,221,60,0,54,216,233,221,60,0,54,216,234,221,60,0,54,216,235,221,60,0,54,216,236,221,60,0,54,216,237,221,60,0,54,216,238,221,60,0,54,216,239,221,60,0,54,216,240,221,60,0,54,216,241,221,60,0,54,216,242,221,60,0,54,216,243,221,60,0,54,216,244,221,60,0,54,216,245,221,60,0,54,216,246,221,60,0,54,216,247,221,60,0,54,216,248,221,60,0,54,216,249,221,60,0,54,216,250,221,60,0,54,216,251,221,60,0,54,216,252,221,60,0,54,216,253,221,60,0,54,216,254,221,60,0,54,216,255,221,60,0,54,216,55,222,60,0,54,216,56,222,60,0,54,216,57,222,60,0,54,216,58,222,60,0,54,216,109,222,60,0,54,216,110,222,60,0,54,216,111,222,60,0,54,216,112,222,60,0,54,216,113,222,60,0,54,216,114,222,60,0,54,216,115,222,60,0,54,216,116,222,60,0,54,216,118,222,60,0,54,216,119,222,60,0,54,216,120,222,60,0,54,216,121,222,60,0,54,216,122,222,60,0,54,216,123,222,60,0,54,216,124,222,60,0,54,216,125,222,60,0,54,216,126,222,60,0,54,216,127,222,60,0,54,216,128,222,60,0,54,216,129,222,60,0,54,216,130,222,60,0,54,216,131,222,60,0,54,216,133,222,60,0,54,216,134,222,60,0,240,47,60,0,241,47,60,0,242,47,60,0,243,47,60,0,244,47,60,0,245,47,60,0,246,47,60,0,247,47,60,0,248,47,60,0,249,47,60,0,250,47,60,0,251,47,60,0,192,49,60,0,193,49,60,0,194,49,60,0,195,49,60,0,196,49,60,0,197,49,60,0,198,49,60,0,199,49,60,0,200,49,60,0,201,49,60,0,202,49,60,0,203,49,60,0,204,49,60,0,205,49,60,0,206,49,60,0,207,49,60,0,208,49,60,0,209,49,60,0,210,49,60,0,211,49,60,0,212,49,60,0,213,49,60,0,214,49,60,0,215,49,60,0,216,49,60,0,217,49,60,0,218,49,60,0,219,49,60,0,220,49,60,0,221,49,60,0,222,49,60,0,223,49,60,0,224,49,60,0,225,49,60,0,226,49,60,0,227,49,60,0,4,48,60,0,18,48,60,0,60,0,60,0,54,48,60,0,19,48,60,0,32,48,60,0,55,48,60,0,62,48,60,0,63,48,60,0,144,49,60,0,145,49,60,0,127,50,60,0,252,255,60,0,208,2,60,0,60,0,60,0,1,216,129,223,60,0,209,2,60,0,60,0,60,0,1,216,130,223,60,0,113,9,60,0,70,14,60,0,198,14,60,0,215,23,60,0,167,26,60,0,207,169,60,0,230,169,60,0,112,170,60,0,221,170,60,0,243,170,60,0,244,170,60,0,26,216,66,223,60,0,26,216,67,223,60,0,56,216,60,221,60,0,56,216,61,221,60,0,5,48,60,0,59,48,60,0,27,216,224,223,60,0,27,216,225,223,60,0,27,216,227,223,60,0,49,48,60,0,60,0,60,0,50,48,47,0,153,48,60,0,51,48,60,0,60,0,60,0,52,48,47,0,153,48,60,0,53,48,60,0,157,48,60,0,252,48,60,0,60,0,60,0,112,255,60,0,253,48,38,0,252,253,60,0,164,0,60,0,162,0,60,0,60,0,60,0,224,255,60,0,39,0,36,0,39,0,60,0,60,0,60,0,4,255,60,0,60,0,60,0,105,254,60,0,163,0,60,0,60,0,60,0,225,255,60,0,165,0,60,0,60,0,60,0,229,255,60,0,143,5,60,0,14,32,11,6,14,32,60,0,14,32,254,7,14,32,60,0,14,32,255,7,14,32,60,0,242,9,60,0,243,9,60,0,251,9,60,0,241,10,60,0,56,168,60,0,249,11,60,0,7,216,221,223,60,0,7,216,222,223,60,0,7,216,223,223,60,0,7,216,224,223,60,0,63,14,60,0,219,23,60,0,56,216,255,222,60,0,160,32,60,0,161,32,60,0,162,32,60,0,163,32,60,0,164,32,60,0,165,32,60,0,166,32,60,0,167,32,60,0,169,32,60,0,60,0,60,0,230,255,60,0,170,32,60,0,171,32,60,0,172,32,60,0,173,32,60,0,174,32,60,0,175,32,60,0,176,32,60,0,177,32,60,0,178,32,60,0,179,32,60,0,180,32,60,0,181,32,60,0,182,32,60,0,183,32,60,0,184,32,60,0,185,32,60,0,14,32,59,216,176,220,14,32,60,0,186,32,60,0,187,32,60,0,188,32,60,0,189,32,60,0,190,32,60,0,191,32,60,0,192,32,60,0,168,32,60,0,14,32,252,253,14,32,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,244,9,60,0,245,9,60,0,246,9,60,0,247,9,60,0,248,9,60,0,249,9,60,0,114,11,60,0,115,11,60,0,116,11,60,0,117,11,60,0,118,11,60,0,119,11,60,0,48,168,60,0,49,168,60,0,50,168,60,0,51,168,60,0,52,168,60,0,53,168,60,0,240,11,60,0,241,11,60,0,242,11,60,0,7,216,192,223,60,0,7,216,193,223,60,0,7,216,194,223,60,0,7,216,195,223,60,0,7,216,196,223,60,0,7,216,197,223,60,0,7,216,198,223,60,0,7,216,199,223,60,0,7,216,200,223,60,0,7,216,201,223,60,0,7,216,202,223,60,0,7,216,203,223,60,0,7,216,204,223,60,0,7,216,205,223,60,0,7,216,206,223,60,0,7,216,207,223,60,0,7,216,208,223,60,0,7,216,209,223,60,0,7,216,210,223,60,0,7,216,211,223,60,0,7,216,212,223,60,0,88,13,60,0,89,13,60,0,90,13,60,0,91,13,60,0,92,13,60,0,93,13,60,0,94,13,60,0,112,13,60,0,113,13,60,0,114,13,60,0,115,13,60,0,116,13,60,0,117,13,60,0,118,13,60,0,119,13,60,0,120,13,60,0,114,19,60,0,115,19,60,0,116,19,60,0,117,19,60,0,118,19,60,0,119,19,60,0,120,19,60,0,121,19,60,0,122,19,60,0,123,19,60,0,124,19,60,0,128,33,60,0,129,33,60,0,130,33,60,0,134,33,60,0,135,33,60,0,136,33,60,0,3,216,105,222,60,0,3,216,106,222,60,0,3,216,107,222,60,0,3,216,108,222,60,0,3,216,109,222,60,0,3,216,110,222,60,0,3,216,111,222,60,0,3,216,112,222,60,0,3,216,113,222,60,0,3,216,114,222,60,0,3,216,115,222,60,0,3,216,116,222,60,0,3,216,117,222,60,0,3,216,118,222,60,0,3,216,119,222,60,0,3,216,120,222,60,0,3,216,121,222,60,0,3,216,122,222,60,0,3,216,123,222,60,0,3,216,124,222,60,0,3,216,125,222,60,0,3,216,126,222,60,0,253,44,60,0,0,216,34,223,60,0,0,216,35,223,60,0,14,32,3,216,252,220,14,32,60,0,14,32,3,216,253,220,14,32,60,0,14,32,3,216,254,220,14,32,60,0,14,32,3,216,255,220,14,32,60,0,0,216,16,221,60,0,0,216,17,221,60,0,0,216,18,221,60,0,0,216,19,221,60,0,0,216,20,221,60,0,0,216,21,221,60,0,0,216,22,221,60,0,0,216,23,221,60,0,0,216,24,221,60,0,0,216,25,221,60,0,0,216,26,221,60,0,0,216,27,221,60,0,0,216,28,221,60,0,0,216,29,221,60,0,0,216,30,221,60,0,0,216,31,221,60,0,0,216,32,221,60,0,0,216,33,221,60,0,0,216,34,221,60,0,0,216,35,221,60,0,0,216,36,221,60,0,0,216,37,221,60,0,0,216,38,221,60,0,0,216,39,221,60,0,0,216,40,221,60,0,0,216,41,221,60,0,0,216,42,221,60,0,0,216,43,221,60,0,0,216,44,221,60,0,0,216,45,221,60,0,0,216,46,221,60,0,0,216,47,221,60,0,0,216,48,221,60,0,0,216,49,221,60,0,0,216,50,221,60,0,0,216,51,221,60,0,0,216,64,221,60,0,0,216,65,221,60,0,0,216,68,221,60,0,0,216,69,221,60,0,0,216,70,221,60,0,0,216,71,221,60,0,0,216,73,221,60,0,0,216,74,221,60,0,0,216,75,221,60,0,0,216,76,221,60,0,0,216,77,221,60,0,0,216,78,221,60,0,0,216,80,221,60,0,0,216,81,221,60,0,0,216,82,221,60,0,0,216,83,221,60,0,0,216,84,221,60,0,0,216,85,221,60,0,0,216,86,221,60,0,0,216,87,221,60,0,0,216,96,221,60,0,0,216,97,221,60,0,0,216,98,221,60,0,0,216,99,221,60,0,0,216,100,221,60,0,0,216,101,221,60,0,0,216,102,221,60,0,0,216,103,221,60,0,0,216,104,221,60,0,0,216,105,221,60,0,0,216,106,221,60,0,0,216,107,221,60,0,0,216,108,221,60,0,0,216,109,221,60,0,0,216,110,221,60,0,0,216,111,221,60,0,0,216,112,221,60,0,0,216,113,221,60,0,0,216,114,221,60,0,0,216,116,221,60,0,0,216,117,221,60,0,0,216,118,221,60,0,0,216,119,221,60,0,0,216,120,221,60,0,0,216,139,221,60,0,0,216,234,222,60,0,0,216,235,222,60,0,0,216,236,222,60,0,0,216,237,222,60,0,0,216,238,222,60,0,0,216,239,222,60,0,0,216,240,222,60,0,0,216,241,222,60,0,0,216,242,222,60,0,0,216,243,222,60,0,0,216,244,222,60,0,0,216,245,222,60,0,0,216,246,222,60,0,0,216,247,222,60,0,0,216,248,222,60,0,0,216,249,222,60,0,0,216,250,222,60,0,0,216,251,222,60,0,0,216,211,223,60,0,0,216,212,223,60,0,0,216,213,223,60,0,14,32,2,216,126,220,14,32,60,0,14,32,2,216,127,220,14,32,60,0,14,32,2,216,173,220,14,32,60,0,14,32,2,216,174,220,14,32,60,0,14,32,2,216,175,220,14,32,60,0,14,32,2,216,253,220,14,32,60,0,14,32,2,216,254,220,14,32,60,0,14,32,2,216,255,220,14,32,60,0,14,32,2,216,126,222,14,32,60,0,14,32,2,216,158,222,14,32,60,0,14,32,2,216,159,222,14,32,60,0,14,32,2,216,23,221,14,32,60,0,14,32,2,216,24,221,14,32,60,0,14,32,2,216,25,221,14,32,60,0,14,32,2,216,91,220,14,32,60,0,14,32,2,216,92,220,14,32,60,0,14,32,2,216,93,220,14,32,60,0,14,32,2,216,94,220,14,32,60,0,14,32,2,216,95,220,14,32,60,0,14,32,2,216,237,222,14,32,60,0,14,32,2,216,238,222,14,32,60,0,14,32,2,216,239,222,14,32,60,0,14,32,2,216,92,223,14,32,60,0,14,32,2,216,93,223,14,32,60,0,14,32,2,216,94,223,14,32,60,0,14,32,2,216,95,223,14,32,60,0,14,32,2,216,124,223,14,32,60,0,14,32,2,216,125,223,14,32,60,0,14,32,2,216,126,223,14,32,60,0,14,32,2,216,127,223,14,32,60,0,14,32,2,216,173,223,14,32,60,0,14,32,2,216,174,223,14,32,60,0,14,32,2,216,175,223,14,32,60,0,14,32,3,216,34,223,14,32,60,0,14,32,3,216,35,223,14,32,60,0,14,32,3,216,36,223,14,32,60,0,14,32,3,216,37,223,14,32,60,0,14,32,3,216,38,223,14,32,60,0,14,32,3,216,82,223,14,32,60,0,14,32,3,216,83,223,14,32,60,0,14,32,3,216,84,223,14,32,60,0,14,32,3,216,201,223,14,32,60,0,14,32,3,216,202,223,14,32,60,0,14,32,3,216,203,223,14,32,60,0,5,216,58,223,60,0,5,216,59,223,60,0,4,216,91,220,60,0,4,216,92,220,60,0,4,216,93,220,60,0,4,216,94,220,60,0,4,216,95,220,60,0,4,216,96,220,60,0,4,216,97,220,60,0,4,216,98,220,60,0,4,216,99,220,60,0,4,216,100,220,60,0,4,216,101,220,60,0,14,32,2,216,68,222,14,32,60,0,14,32,2,216,69,222,14,32,60,0,14,32,2,216,70,222,14,32,60,0,14,32,2,216,71,222,14,32,60,0,14,32,2,216,72,222,14,32,60,0,7,216,99,220,60,0,7,216,100,220,60,0,7,216,101,220,60,0,7,216,102,220,60,0,7,216,103,220,60,0,7,216,104,220,60,0,7,216,105,220,60,0,7,216,106,220,60,0,7,216,107,220,60,0,7,216,108,220,60,0,4,216,234,221,60,0,4,216,235,221,60,0,4,216,236,221,60,0,4,216,237,221,60,0,4,216,238,221,60,0,4,216,239,221,60,0,4,216,240,221,60,0,4,216,241,221,60,0,4,216,242,221,60,0,4,216,243,221,60,0,4,216,244,221,60,0,6,216,234,220,60,0,6,216,235,220,60,0,6,216,236,220,60,0,6,216,237,220,60,0,6,216,238,220,60,0,6,216,239,220,60,0,6,216,240,220,60,0,6,216,241,220,60,0,6,216,242,220,60,0,26,216,91,223,60,0,26,216,92,223,60,0,26,216,93,223,60,0,26,216,94,223,60,0,26,216,95,223,60,0,26,216,96,223,60,0,26,216,97,223,60,0,27,216,138,222,60,0,27,216,139,222,60,0,27,216,140,222,60,0,27,216,141,222,60,0,27,216,142,222,60,0,27,216,143,222,60,0,27,216,144,222,60,0,27,216,145,222,60,0,27,216,146,222,60,0,27,216,147,222,60,0,52,216,202,222,60,0,52,216,203,222,60,0,52,216,204,222,60,0,52,216,205,222,60,0,52,216,206,222,60,0,52,216,207,222,60,0,52,216,208,222,60,0,52,216,209,222,60,0,52,216,210,222,60,0,52,216,211,222,60,0,52,216,234,222,60,0,52,216,235,222,60,0,52,216,236,222,60,0,52,216,237,222,60,0,52,216,238,222,60,0,52,216,239,222,60,0,52,216,240,222,60,0,52,216,241,222,60,0,52,216,242,222,60,0,52,216,243,222,60,0,14,32,59,216,122,220,14,32,60,0,14,32,59,216,123,220,14,32,60,0,14,32,59,216,124,220,14,32,60,0,14,32,59,216,125,220,14,32,60,0,14,32,59,216,126,220,14,32,60,0,14,32,59,216,127,220,14,32,60,0,14,32,59,216,128,220,14,32,60,0,14,32,59,216,129,220,14,32,60,0,14,32,59,216,130,220,14,32,60,0,14,32,59,216,131,220,14,32,60,0,14,32,59,216,132,220,14,32,60,0,14,32,59,216,133,220,14,32,60,0,14,32,59,216,134,220,14,32,60,0,14,32,59,216,135,220,14,32,60,0,14,32,59,216,136,220,14,32,60,0,14,32,59,216,137,220,14,32,60,0,14,32,59,216,138,220,14,32,60,0,14,32,59,216,139,220,14,32,60,0,14,32,59,216,140,220,14,32,60,0,14,32,59,216,141,220,14,32,60,0,14,32,59,216,142,220,14,32,60,0,14,32,59,216,143,220,14,32,60,0,14,32,59,216,144,220,14,32,60,0,14,32,59,216,145,220,14,32,60,0,14,32,59,216,146,220,14,32,60,0,14,32,59,216,147,220,14,32,60,0,14,32,59,216,148,220,14,32,60,0,14,32,59,216,149,220,14,32,60,0,14,32,59,216,150,220,14,32,60,0,14,32,59,216,151,220,14,32,60,0,14,32,59,216,152,220,14,32,60,0,14,32,59,216,153,220,14,32,60,0,14,32,59,216,154,220,14,32,60,0,14,32,59,216,155,220,14,32,60,0,14,32,59,216,156,220,14,32,60,0,14,32,59,216,157,220,14,32,60,0,14,32,59,216,158,220,14,32,60,0,14,32,59,216,159,220,14,32,60,0,14,32,59,216,160,220,14,32,60,0,14,32,59,216,161,220,14,32,60,0,14,32,59,216,162,220,14,32,60,0,14,32,59,216,173,220,14,32,60,0,14,32,59,216,174,220,14,32,60,0,14,32,59,216,175,220,14,32,60,0,14,32,59,216,179,220,14,32,60,0,14,32,59,216,180,220,14,32,60,0,14,32,59,216,10,221,14,32,60,0,14,32,59,216,11,221,14,32,60,0,14,32,59,216,12,221,14,32,60,0,14,32,59,216,13,221,14,32,60,0,14,32,59,216,14,221,14,32,60,0,14,32,59,216,15,221,14,32,60,0,14,32,59,216,16,221,14,32,60,0,14,32,59,216,17,221,14,32,60,0,14,32,59,216,18,221,14,32,60,0,14,32,59,216,19,221,14,32,60,0,14,32,59,216,20,221,14,32,60,0,14,32,59,216,21,221,14,32,60,0,14,32,59,216,22,221,14,32,60,0,14,32,59,216,23,221,14,32,60,0,14,32,59,216,24,221,14,32,60,0,14,32,59,216,25,221,14,32,60,0,14,32,59,216,26,221,14,32,60,0,14,32,59,216,27,221,14,32,60,0,14,32,59,216,28,221,14,32,60,0,14,32,59,216,29,221,14,32,60,0,14,32,59,216,30,221,14,32,60,0,14,32,59,216,31,221,14,32,60,0,14,32,59,216,32,221,14,32,60,0,14,32,59,216,33,221,14,32,60,0,14,32,59,216,34,221,14,32,60,0,14,32,59,216,35,221,14,32,60,0,14,32,59,216,36,221,14,32,60,0,14,32,59,216,37,221,14,32,60,0,14,32,59,216,38,221,14,32,60,0,14,32,59,216,39,221,14,32,60,0,14,32,59,216,40,221,14,32,60,0,14,32,59,216,41,221,14,32,60,0,14,32,59,216,42,221,14,32,60,0,14,32,59,216,43,221,14,32,60,0,14,32,59,216,44,221,14,32,60,0,14,32,59,216,45,221,14,32,60,0,14,32,59,216,55,221,14,32,60,0,14,32,59,216,56,221,14,32,60,0,14,32,59,216,57,221,14,32,60,0,14,32,59,216,58,221,14,32,60,0,14,32,59,216,59,221,14,32,60,0,14,32,59,216,60,221,14,32,60,0,14,32,59,216,61,221,14,32,60,0,14,32,2,216,201,221,14,32,60,0,14,32,2,216,202,221,14,32,60,0,14,32,2,216,203,221,14,32,60,0,14,32,2,216,204,221,14,32,60,0,14,32,2,216,205,221,14,32,60,0,14,32,2,216,206,221,14,32,60,0,14,32,2,216,207,221,14,32,60,0,14,32,2,216,210,221,14,32,60,0,14,32,2,216,211,221,14,32,60,0,14,32,2,216,212,221,14,32,60,0,14,32,2,216,213,221,14,32,60,0,14,32,2,216,214,221,14,32,60,0,14,32,2,216,215,221,14,32,60,0,14,32,2,216,216,221,14,32,60,0,14,32,2,216,217,221,14,32,60,0,14,32,2,216,218,221,14,32,60,0,14,32,2,216,219,221,14,32,60,0,14,32,2,216,220,221,14,32,60,0,14,32,2,216,221,221,14,32,60,0,14,32,2,216,222,221,14,32,60,0,14,32,2,216,223,221,14,32,60,0,14,32,2,216,224,221,14,32,60,0,14,32,2,216,225,221,14,32,60,0,14,32,2,216,226,221,14,32,60,0,14,32,2,216,227,221,14,32,60,0,14,32,2,216,228,221,14,32,60,0,14,32,2,216,229,221,14,32,60,0,14,32,2,216,230,221,14,32,60,0,14,32,2,216,231,221,14,32,60,0,14,32,2,216,232,221,14,32,60,0,14,32,2,216,233,221,14,32,60,0,14,32,2,216,234,221,14,32,60,0,14,32,2,216,235,221,14,32,60,0,14,32,2,216,236,221,14,32,60,0,14,32,2,216,237,221,14,32,60,0,14,32,2,216,238,221,14,32,60,0,14,32,2,216,239,221,14,32,60,0,14,32,2,216,240,221,14,32,60,0,14,32,2,216,241,221,14,32,60,0,14,32,2,216,242,221,14,32,60,0,14,32,2,216,243,221,14,32,60,0,14,32,2,216,244,221,14,32,60,0,14,32,2,216,245,221,14,32,60,0,14,32,2,216,189,221,14,32,60,0,14,32,2,216,246,221,14,32,60,0,14,32,2,216,247,221,14,32,60,0,14,32,2,216,248,221,14,32,60,0,14,32,2,216,249,221,14,32,60,0,14,32,2,216,250,221,14,32,60,0,14,32,2,216,251,221,14,32,60,0,14,32,2,216,252,221,14,32,60,0,14,32,2,216,253,221,14,32,60,0,14,32,2,216,254,221,14,32,60,0,14,32,2,216,255,221,14,32,60,0,14,32,2,216,188,221,14,32,60,0,9,216,50,220,60,0,9,216,51,220,60,0,9,216,90,220,60,0,9,216,91,220,60,0,9,216,92,220,60,0,9,216,93,220,60,0,9,216,94,220,60,0,9,216,95,220,60,0,9,216,96,220,60,0,9,216,97,220,60,0,9,216,98,220,60,0,9,216,99,220,60,0,9,216,100,220,60,0,9,216,101,220,60,0,9,216,102,220,60,0,9,216,103,220,60,0,9,216,104,220,60,0,52,216,105,223,60,0,52,216,106,223,60,0,52,216,107,223,60,0,52,216,108,223,60,0,52,216,109,223,60,0,52,216,110,223,60,0,52,216,111,223,60,0,52,216,112,223,60,0,52,216,113,223,60,0,48,0,61,0,96,6,61,0,240,6,61,0,14,32,192,7,14,32,61,0,102,9,61,0,230,9,61,0,102,10,61,0,230,10,61,0,102,11,61,0,230,11,61,0,102,12,61,0,120,12,61,0,230,12,61,0,102,13,61,0,230,13,61,0,80,14,61,0,208,14,61,0,32,15,61,0,64,16,61,0,144,16,61,0,224,23,61,0,240,23,61,0,16,24,61,0,70,25,61,0,208,25,61,0,128,26,61,0,144,26,61,0,80,27,61,0,176,27,61,0,64,28,61,0,80,28,61,0,7,48,61,0,32,166,61,0,208,168,61,0,0,169,61,0,208,169,61,0,240,169,61,0,80,170,61,0,240,171,61,0,0,216,138,221,61,0,1,216,160,220,61,0,3,216,48,221,61,0,4,216,102,220,61,0,4,216,240,220,61,0,4,216,54,221,61,0,4,216,208,221,61,0,4,216,240,222,61,0,5,216,80,220,61,0,5,216,208,220,61,0,5,216,80,222,61,0,5,216,192,222,61,0,5,216,48,223,61,0,6,216,224,220,61,0,6,216,80,221,61,0,7,216,80,220,61,0,7,216,80,221,61,0,7,216,160,221,61,0,7,216,80,223,61,0,26,216,96,222,61,0,26,216,192,222,61,0,26,216,80,223,61,0,27,216,128,222,61,0,52,216,192,222,61,0,52,216,224,222,61,0,56,216,64,221,61,0,56,216,240,222,61,0,57,216,240,220,61,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,16,255,60,0,60,0,60,0,51,15,60,0,60,0,60,0,60,216,1,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,60,216,0,221,47,0,39,0,46,0,39,0,60,0,60,0,60,0,88,51,47,0,185,112,60,0,60,0,60,0,53,216,206,223,61,0,53,216,216,223,61,0,53,216,226,223,61,0,53,216,236,223,61,0,53,216,246,223,61,0,62,216,240,223,60,0,60,0,60,0,234,36,61,0,255,36,61,0,60,216,11,221,61,0,60,216,12,221,60,0,60,0,60,0,112,32,60,0,60,0,60,0,128,32,60,0,60,0,60,0,137,33,47,0,14,32,68,32,59,216,3,221,14,32,60,0,49,0,61,0,97,6,61,0,241,6,61,0,14,32,193,7,14,32,61,0,103,9,61,0,231,9,61,0,103,10,61,0,231,10,61,0,103,11,61,0,231,11,61,0,103,12,61,0,121,12,61,0,124,12,61,0,231,12,61,0,103,13,61,0,231,13,61,0,81,14,61,0,209,14,61,0,33,15,61,0,65,16,61,0,145,16,61,0,105,19,61,0,225,23,61,0,241,23,61,0,17,24,61,0,71,25,61,0,209,25,61,0,218,25,61,0,129,26,61,0,145,26,61,0,81,27,61,0,177,27,61,0,65,28,61,0,81,28,61,0,33,48,61,0,33,166,61,0,209,168,61,0,1,169,61,0,209,169,61,0,241,169,61,0,81,170,61,0,241,171,61,0,0,216,7,221,61,0,0,216,66,221,61,0,0,216,88,221,61,0,0,216,89,221,61,0,0,216,90,221,61,0,0,216,225,222,61,0,0,216,32,223,61,0,0,216,209,223,61,0,1,216,161,220,61,0,14,32,2,216,88,220,14,32,61,0,14,32,2,216,121,220,14,32,61,0,14,32,2,216,167,220,14,32,61,0,14,32,2,216,251,220,14,32,61,0,14,32,2,216,22,221,14,32,61,0,14,32,2,216,192,221,14,32,61,0,14,32,2,216,64,222,14,32,61,0,14,32,2,216,125,222,14,32,61,0,14,32,2,216,157,222,14,32,61,0,14,32,2,216,235,222,14,32,61,0,14,32,2,216,88,223,14,32,61,0,14,32,2,216,120,223,14,32,61,0,14,32,2,216,169,223,14,32,61,0,14,32,3,216,250,220,14,32,61,0,3,216,49,221,61,0,3,216,96,222,61,0,14,32,3,216,29,223,14,32,61,0,14,32,3,216,81,223,14,32,61,0,14,32,3,216,197,223,14,32,61,0,4,216,82,220,61,0,4,216,103,220,61,0,4,216,241,220,61,0,4,216,55,221,61,0,4,216,209,221,61,0,4,216,225,221,61,0,4,216,241,222,61,0,5,216,81,220,61,0,5,216,209,220,61,0,5,216,81,222,61,0,5,216,193,222,61,0,5,216,49,223,61,0,6,216,225,220,61,0,6,216,81,221,61,0,7,216,81,220,61,0,7,216,90,220,61,0,7,216,81,221,61,0,7,216,161,221,61,0,7,216,81,223,61,0,9,216,21,220,61,0,9,216,30,220,61,0,9,216,44,220,61,0,9,216,52,220,61,0,9,216,79,220,61,0,9,216,88,220,61,0,26,216,97,222,61,0,26,216,193,222,61,0,26,216,81,223,61,0,27,216,129,222,61,0,52,216,193,222,61,0,52,216,225,222,61,0,52,216,96,223,61,0,52,216,114,223,61,0,52,216,119,223,61,0,56,216,65,221,61,0,56,216,241,222,61,0,57,216,241,220,61,0,14,32,58,216,199,220,14,32,61,0,14,32,58,216,81,221,14,32,61,0,14,32,59,216,113,220,14,32,61,0,14,32,59,216,163,220,14,32,61,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,17,255,60,0,60,0,60,0,42,15,60,0,60,0,60,0,60,216,2,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,136,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,145,36,47,0,14,32,58,216,80,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,233,51,47,0,14,32,58,216,80,221,229,101,14,32,60,0,60,0,60,0,201,50,47,0,14,32,58,216,80,221,8,103,14,32,60,0,60,0,60,0,98,51,47,0,14,32,58,216,80,221,185,112,14,32,60,0,60,0,60,0,146,36,47,0,14,32,59,216,1,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,234,51,47,0,14,32,59,216,1,221,229,101,14,32,60,0,60,0,60,0,202,50,47,0,14,32,59,216,1,221,8,103,14,32,60,0,60,0,60,0,99,51,47,0,14,32,59,216,1,221,185,112,14,32,60,0,60,0,60,0,147,36,47,0,14,32,59,216,2,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,235,51,47,0,14,32,59,216,2,221,229,101,14,32,60,0,60,0,60,0,203,50,47,0,14,32,59,216,2,221,8,103,14,32,60,0,60,0,60,0,100,51,47,0,14,32,59,216,2,221,185,112,14,32,60,0,60,0,60,0,148,36,47,0,14,32,59,216,3,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,236,51,47,0,14,32,59,216,3,221,229,101,14,32,60,0,60,0,60,0,101,51,47,0,14,32,59,216,3,221,185,112,14,32,60,0,60,0,60,0,149,36,47,0,14,32,59,216,4,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,237,51,47,0,14,32,59,216,4,221,229,101,14,32,60,0,60,0,60,0,102,51,47,0,14,32,59,216,4,221,185,112,14,32,60,0,60,0,60,0,150,36,47,0,14,32,59,216,5,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,238,51,47,0,14,32,59,216,5,221,229,101,14,32,60,0,60,0,60,0,103,51,47,0,14,32,59,216,5,221,185,112,14,32,60,0,60,0,60,0,151,36,47,0,14,32,59,216,6,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,239,51,47,0,14,32,59,216,6,221,229,101,14,32,60,0,60,0,60,0,104,51,47,0,14,32,59,216,6,221,185,112,14,32,60,0,60,0,60,0,152,36,47,0,14,32,59,216,7,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,240,51,47,0,14,32,59,216,7,221,229,101,14,32,60,0,60,0,60,0,105,51,47,0,14,32,59,216,7,221,185,112,14,32,60,0,60,0,60,0,153,36,47,0,14,32,59,216,8,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,241,51,47,0,14,32,59,216,8,221,229,101,14,32,60,0,60,0,60,0,106,51,47,0,14,32,59,216,8,221,185,112,14,32,60,0,60,0,60,0,154,36,47,0,14,32,59,216,9,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,242,51,47,0,14,32,59,216,9,221,229,101,14,32,60,0,60,0,60,0,107,51,47,0,14,32,59,216,9,221,185,112,14,32,60,0,60,0,60,0,224,51,47,0,229,101,60,0,60,0,60,0,192,50,47,0,8,103,60,0,60,0,60,0,89,51,47,0,185,112,60,0,60,0,60,0,53,216,207,223,61,0,53,216,217,223,61,0,53,216,227,223,61,0,53,216,237,223,61,0,53,216,247,223,61,0,62,216,241,223,60,0,60,0,60,0,96,36,61,0,245,36,61,0,118,39,61,0,128,39,61,0,138,39,60,0,60,0,60,0,105,36,47,0,14,32,58,216,80,221,14,32,61,0,254,36,47,0,14,32,58,216,80,221,14,32,61,0,127,39,47,0,14,32,58,216,80,221,14,32,61,0,137,39,47,0,14,32,58,216,80,221,14,32,61,0,147,39,47,0,14,32,58,216,80,221,14,32,61,0,72,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,106,36,47,0,14,32,59,216,1,221,14,32,61,0,235,36,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,107,36,47,0,14,32,59,216,2,221,14,32,61,0,236,36,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,108,36,47,0,14,32,59,216,3,221,14,32,61,0,237,36,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,109,36,47,0,14,32,59,216,4,221,14,32,61,0,238,36,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,110,36,47,0,14,32,59,216,5,221,14,32,61,0,239,36,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,111,36,47,0,14,32,59,216,6,221,14,32,61,0,240,36,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,112,36,47,0,14,32,59,216,7,221,14,32,61,0,241,36,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,113,36,47,0,14,32,59,216,8,221,14,32,61,0,242,36,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,114,36,47,0,14,32,59,216,9,221,14,32,61,0,243,36,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,185,0,60,0,60,0,60,0,129,32,60,0,60,0,60,0,60,216,164,221,47,0,14,32,59,216,2,221,58,216,80,221,80,0,14,32,60,0,60,0,60,0,95,33,47,0,68,32,60,0,60,0,60,0,82,33,47,0,14,32,68,32,59,216,1,221,58,216,80,221,14,32,60,0,60,0,60,0,189,0,47,0,14,32,68,32,59,216,2,221,14,32,60,0,60,0,60,0,83,33,47,0,14,32,68,32,59,216,3,221,14,32,60,0,60,0,60,0,188,0,47,0,14,32,68,32,59,216,4,221,14,32,60,0,60,0,60,0,85,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,60,0,89,33,47,0,14,32,68,32,59,216,6,221,14,32,60,0,60,0,60,0,80,33,47,0,14,32,68,32,59,216,7,221,14,32,60,0,60,0,60,0,91,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,60,0,81,33,47,0,14,32,68,32,59,216,9,221,14,32,60,0,60,0,27,216,148,222,61,0,14,32,59,216,177,220,14,32,60,0,50,0,61,0,98,6,61,0,242,6,61,0,14,32,194,7,14,32,61,0,104,9,61,0,232,9,61,0,104,10,61,0,232,10,61,0,104,11,61,0,232,11,61,0,104,12,61,0,122,12,61,0,125,12,61,0,232,12,61,0,104,13,61,0,232,13,61,0,82,14,61,0,210,14,61,0,34,15,61,0,66,16,61,0,146,16,61,0,106,19,61,0,226,23,61,0,242,23,61,0,18,24,61,0,72,25,61,0,210,25,61,0,130,26,61,0,146,26,61,0,82,27,61,0,178,27,61,0,66,28,61,0,82,28,61,0,34,48,61,0,34,166,61,0,210,168,61,0,2,169,61,0,210,169,61,0,242,169,61,0,82,170,61,0,242,171,61,0,0,216,8,221,61,0,0,216,91,221,61,0,0,216,92,221,61,0,0,216,93,221,61,0,0,216,94,221,61,0,0,216,226,222,61,0,0,216,210,223,61,0,1,216,162,220,61,0,14,32,2,216,89,220,14,32,61,0,14,32,2,216,122,220,14,32,61,0,14,32,2,216,168,220,14,32,61,0,14,32,2,216,26,221,14,32,61,0,14,32,2,216,193,221,14,32,61,0,14,32,2,216,65,222,14,32,61,0,14,32,2,216,89,223,14,32,61,0,14,32,2,216,121,223,14,32,61,0,14,32,2,216,170,223,14,32,61,0,3,216,50,221,61,0,3,216,97,222,61,0,14,32,3,216,30,223,14,32,61,0,14,32,3,216,198,223,14,32,61,0,4,216,83,220,61,0,4,216,104,220,61,0,4,216,242,220,61,0,4,216,56,221,61,0,4,216,210,221,61,0,4,216,226,221,61,0,4,216,242,222,61,0,5,216,82,220,61,0,5,216,210,220,61,0,5,216,82,222,61,0,5,216,194,222,61,0,5,216,50,223,61,0,6,216,226,220,61,0,6,216,82,221,61,0,7,216,82,220,61,0,7,216,91,220,61,0,7,216,82,221,61,0,7,216,162,221,61,0,7,216,82,223,61,0,9,216,0,220,61,0,9,216,22,220,61,0,9,216,31,220,61,0,9,216,35,220,61,0,9,216,45,220,61,0,9,216,53,220,61,0,9,216,74,220,61,0,9,216,80,220,61,0,9,216,86,220,61,0,9,216,89,220,61,0,26,216,98,222,61,0,26,216,194,222,61,0,26,216,82,223,61,0,27,216,130,222,61,0,52,216,194,222,61,0,52,216,226,222,61,0,52,216,97,223,61,0,52,216,115,223,61,0,56,216,66,221,61,0,56,216,242,222,61,0,57,216,242,220,61,0,14,32,58,216,200,220,14,32,61,0,14,32,58,216,82,221,14,32,61,0,14,32,59,216,114,220,14,32,61,0,14,32,59,216,164,220,14,32,61,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,18,255,60,0,60,0,60,0,43,15,60,0,60,0,60,0,60,216,3,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,137,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,155,36,47,0,14,32,58,216,80,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,243,51,47,0,14,32,58,216,80,221,229,101,14,32,60,0,60,0,60,0,108,51,47,0,14,32,58,216,80,221,185,112,14,32,60,0,60,0,60,0,244,51,47,0,14,32,59,216,1,221,229,101,14,32,60,0,60,0,60,0,109,51,47,0,14,32,59,216,1,221,185,112,14,32,60,0,60,0,60,0,245,51,47,0,14,32,59,216,2,221,229,101,14,32,60,0,60,0,60,0,110,51,47,0,14,32,59,216,2,221,185,112,14,32,60,0,60,0,60,0,246,51,47,0,14,32,59,216,3,221,229,101,14,32,60,0,60,0,60,0,111,51,47,0,14,32,59,216,3,221,185,112,14,32,60,0,60,0,60,0,247,51,47,0,14,32,59,216,4,221,229,101,14,32,60,0,60,0,60,0,112,51,47,0,14,32,59,216,4,221,185,112,14,32,60,0,60,0,60,0,248,51,47,0,14,32,59,216,5,221,229,101,14,32,60,0,60,0,60,0,249,51,47,0,14,32,59,216,6,221,229,101,14,32,60,0,60,0,60,0,250,51,47,0,14,32,59,216,7,221,229,101,14,32,60,0,60,0,60,0,251,51,47,0,14,32,59,216,8,221,229,101,14,32,60,0,60,0,60,0,252,51,47,0,14,32,59,216,9,221,229,101,14,32,60,0,60,0,60,0,225,51,47,0,229,101,60,0,60,0,60,0,193,50,47,0,8,103,60,0,60,0,60,0,90,51,47,0,185,112,60,0,60,0,60,0,53,216,208,223,61,0,53,216,218,223,61,0,53,216,228,223,61,0,53,216,238,223,61,0,53,216,248,223,61,0,62,216,242,223,60,0,60,0,60,0,97,36,61,0,246,36,61,0,119,39,61,0,129,39,61,0,139,39,60,0,60,0,60,0,115,36,47,0,14,32,58,216,80,221,14,32,61,0,244,36,47,0,14,32,58,216,80,221,14,32,61,0,73,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,81,50,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,82,50,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,83,50,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,84,50,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,85,50,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,86,50,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,87,50,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,88,50,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,89,50,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,178,0,60,0,60,0,60,0,130,32,60,0,60,0,60,0,60,216,162,221,47,0,14,32,59,216,2,221,39,0,46,0,39,0,59,216,2,221,14,32,60,0,60,0,60,0,60,216,157,221,47,0,75,0,60,0,60,0,60,0,60,216,156,221,47,0,110,0,100,0,39,0,32,0,39,0,83,0,99,0,114,0,60,0,60,0,60,0,84,33,47,0,14,32,68,32,59,216,3,221,14,32,60,0,60,0,60,0,86,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,27,216,149,222,61,0,14,32,59,216,178,220,14,32,61,0,14,32,59,216,47,221,14,32,60,0,51,0,61,0,99,6,61,0,243,6,61,0,14,32,195,7,14,32,61,0,105,9,61,0,233,9,61,0,105,10,61,0,233,10,61,0,105,11,61,0,233,11,61,0,105,12,61,0,123,12,61,0,126,12,61,0,233,12,61,0,105,13,61,0,233,13,61,0,83,14,61,0,211,14,61,0,35,15,61,0,67,16,61,0,147,16,61,0,107,19,61,0,227,23,61,0,243,23,61,0,19,24,61,0,73,25,61,0,211,25,61,0,131,26,61,0,147,26,61,0,83,27,61,0,179,27,61,0,67,28,61,0,83,28,61,0,35,48,61,0,35,166,61,0,211,168,61,0,3,169,61,0,211,169,61,0,243,169,61,0,83,170,61,0,243,171,61,0,0,216,9,221,61,0,0,216,227,222,61,0,1,216,163,220,61,0,14,32,2,216,90,220,14,32,61,0,14,32,2,216,123,220,14,32,61,0,14,32,2,216,169,220,14,32,61,0,14,32,2,216,27,221,14,32,61,0,14,32,2,216,194,221,14,32,61,0,14,32,2,216,66,222,14,32,61,0,14,32,2,216,90,223,14,32,61,0,14,32,2,216,122,223,14,32,61,0,14,32,2,216,171,223,14,32,61,0,3,216,51,221,61,0,3,216,98,222,61,0,14,32,3,216,31,223,14,32,61,0,14,32,3,216,199,223,14,32,61,0,4,216,84,220,61,0,4,216,105,220,61,0,4,216,243,220,61,0,4,216,57,221,61,0,4,216,211,221,61,0,4,216,227,221,61,0,4,216,243,222,61,0,5,216,83,220,61,0,5,216,211,220,61,0,5,216,83,222,61,0,5,216,195,222,61,0,5,216,51,223,61,0,6,216,227,220,61,0,6,216,83,221,61,0,7,216,83,220,61,0,7,216,92,220,61,0,7,216,83,221,61,0,7,216,163,221,61,0,7,216,83,223,61,0,9,216,1,220,61,0,9,216,8,220,61,0,9,216,23,220,61,0,9,216,32,220,61,0,9,216,36,220,61,0,9,216,37,220,61,0,9,216,46,220,61,0,9,216,47,220,61,0,9,216,54,220,61,0,9,216,55,220,61,0,9,216,58,220,61,0,9,216,59,220,61,0,9,216,75,220,61,0,9,216,81,220,61,0,9,216,87,220,61,0,26,216,99,222,61,0,26,216,195,222,61,0,26,216,83,223,61,0,27,216,131,222,61,0,52,216,195,222,61,0,52,216,227,222,61,0,52,216,98,223,61,0,52,216,116,223,61,0,56,216,67,221,61,0,56,216,243,222,61,0,57,216,243,220,61,0,14,32,58,216,201,220,14,32,61,0,14,32,58,216,83,221,14,32,61,0,14,32,59,216,115,220,14,32,61,0,14,32,59,216,165,220,14,32,61,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,19,255,60,0,60,0,60,0,44,15,60,0,60,0,60,0,60,216,4,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,138,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,253,51,47,0,14,32,58,216,80,221,229,101,14,32,60,0,60,0,60,0,254,51,47,0,14,32,59,216,1,221,229,101,14,32,60,0,60,0,60,0,226,51,47,0,229,101,60,0,60,0,60,0,194,50,47,0,8,103,60,0,60,0,60,0,91,51,47,0,185,112,60,0,60,0,60,0,53,216,209,223,61,0,53,216,219,223,61,0,53,216,229,223,61,0,53,216,239,223,61,0,53,216,249,223,61,0,62,216,243,223,60,0,60,0,60,0,98,36,61,0,247,36,61,0,120,39,61,0,130,39,61,0,140,39,60,0,60,0,60,0,74,50,47,0,14,32,58,216,80,221,14,32,61,0,90,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,91,50,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,92,50,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,93,50,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,94,50,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,95,50,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,177,50,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,178,50,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,179,50,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,180,50,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,179,0,60,0,60,0,60,0,131,32,60,0,60,0,60,0,60,216,155,221,47,0,68,0,60,0,60,0,60,0,190,0,47,0,14,32,68,32,59,216,4,221,14,32,60,0,60,0,60,0,87,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,60,0,92,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,27,216,150,222,60,0,60,0,60,0,14,32,59,216,48,221,14,32,60,0,52,0,61,0,100,6,61,0,244,6,61,0,14,32,196,7,14,32,61,0,106,9,61,0,234,9,61,0,106,10,61,0,234,10,61,0,106,11,61,0,234,11,61,0,106,12,61,0,234,12,61,0,106,13,61,0,234,13,61,0,84,14,61,0,212,14,61,0,36,15,61,0,68,16,61,0,148,16,61,0,108,19,61,0,228,23,61,0,244,23,61,0,20,24,61,0,74,25,61,0,212,25,61,0,132,26,61,0,148,26,61,0,84,27,61,0,180,27,61,0,68,28,61,0,84,28,61,0,36,48,61,0,36,166,61,0,212,168,61,0,4,169,61,0,212,169,61,0,244,169,61,0,84,170,61,0,244,171,61,0,0,216,10,221,61,0,0,216,228,222,61,0,1,216,164,220,61,0,14,32,2,216,124,220,14,32,61,0,14,32,2,216,170,220,14,32,61,0,14,32,2,216,171,220,14,32,61,0,14,32,2,216,195,221,14,32,61,0,14,32,2,216,67,222,14,32,61,0,14,32,2,216,91,223,14,32,61,0,14,32,2,216,123,223,14,32,61,0,14,32,2,216,172,223,14,32,61,0,3,216,52,221,61,0,3,216,99,222,61,0,14,32,3,216,32,223,14,32,61,0,14,32,3,216,200,223,14,32,61,0,4,216,85,220,61,0,4,216,106,220,61,0,4,216,244,220,61,0,4,216,58,221,61,0,4,216,212,221,61,0,4,216,228,221,61,0,4,216,244,222,61,0,5,216,84,220,61,0,5,216,212,220,61,0,5,216,84,222,61,0,5,216,196,222,61,0,5,216,52,223,61,0,6,216,228,220,61,0,6,216,84,221,61,0,7,216,84,220,61,0,7,216,93,220,61,0,7,216,84,221,61,0,7,216,164,221,61,0,7,216,84,223,61,0,9,216,2,220,61,0,9,216,9,220,61,0,9,216,15,220,61,0,9,216,24,220,61,0,9,216,33,220,61,0,9,216,38,220,61,0,9,216,48,220,61,0,9,216,56,220,61,0,9,216,60,220,61,0,9,216,61,220,61,0,9,216,62,220,61,0,9,216,63,220,61,0,9,216,76,220,61,0,9,216,82,220,61,0,9,216,83,220,61,0,9,216,105,220,61,0,26,216,100,222,61,0,26,216,196,222,61,0,26,216,84,223,61,0,27,216,132,222,61,0,52,216,196,222,61,0,52,216,228,222,61,0,52,216,99,223,61,0,52,216,117,223,61,0,56,216,68,221,61,0,56,216,244,222,61,0,57,216,244,220,61,0,14,32,58,216,202,220,14,32,61,0,14,32,58,216,84,221,14,32,61,0,14,32,59,216,116,220,14,32,61,0,14,32,59,216,166,220,14,32,61,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,20,255,60,0,60,0,60,0,45,15,60,0,60,0,60,0,60,216,5,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,139,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,227,51,47,0,229,101,60,0,60,0,60,0,195,50,47,0,8,103,60,0,60,0,60,0,92,51,47,0,185,112,60,0,60,0,60,0,53,216,210,223,61,0,53,216,220,223,61,0,53,216,230,223,61,0,53,216,240,223,61,0,53,216,250,223,61,0,62,216,244,223,60,0,60,0,60,0,99,36,61,0,248,36,61,0,121,39,61,0,131,39,61,0,141,39,60,0,60,0,60,0,75,50,47,0,14,32,58,216,80,221,14,32,61,0,181,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,182,50,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,183,50,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,184,50,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,185,50,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,186,50,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,187,50,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,188,50,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,189,50,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,190,50,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,116,32,60,0,60,0,60,0,132,32,60,0,60,0,60,0,60,216,158,221,47,0,75,0,60,0,60,0,60,0,88,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,14,32,59,216,49,221,14,32,60,0,53,0,61,0,101,6,61,0,245,6,61,0,14,32,197,7,14,32,61,0,107,9,61,0,235,9,61,0,107,10,61,0,235,10,61,0,107,11,61,0,235,11,61,0,107,12,61,0,235,12,61,0,107,13,61,0,235,13,61,0,85,14,61,0,213,14,61,0,37,15,61,0,69,16,61,0,149,16,61,0,109,19,61,0,229,23,61,0,245,23,61,0,21,24,61,0,75,25,61,0,213,25,61,0,133,26,61,0,149,26,61,0,85,27,61,0,181,27,61,0,69,28,61,0,85,28,61,0,37,48,61,0,37,166,61,0,213,168,61,0,5,169,61,0,213,169,61,0,245,169,61,0,85,170,61,0,245,171,61,0,0,216,11,221,61,0,0,216,67,221,61,0,0,216,72,221,61,0,0,216,79,221,61,0,0,216,95,221,61,0,0,216,115,221,61,0,0,216,229,222,61,0,0,216,33,223,61,0,1,216,165,220,61,0,14,32,2,216,125,220,14,32,61,0,14,32,2,216,172,220,14,32,61,0,14,32,2,216,252,220,14,32,61,0,14,32,2,216,196,221,14,32,61,0,14,32,2,216,236,222,14,32,61,0,14,32,3,216,251,220,14,32,61,0,3,216,53,221,61,0,3,216,100,222,61,0,14,32,3,216,33,223,14,32,61,0,4,216,86,220,61,0,4,216,107,220,61,0,4,216,245,220,61,0,4,216,59,221,61,0,4,216,213,221,61,0,4,216,229,221,61,0,4,216,245,222,61,0,5,216,85,220,61,0,5,216,213,220,61,0,5,216,85,222,61,0,5,216,197,222,61,0,5,216,53,223,61,0,6,216,229,220,61,0,6,216,85,221,61,0,7,216,85,220,61,0,7,216,94,220,61,0,7,216,85,221,61,0,7,216,165,221,61,0,7,216,85,223,61,0,9,216,3,220,61,0,9,216,10,220,61,0,9,216,16,220,61,0,9,216,25,220,61,0,9,216,34,220,61,0,9,216,39,220,61,0,9,216,49,220,61,0,9,216,57,220,61,0,9,216,77,220,61,0,9,216,84,220,61,0,9,216,85,220,61,0,9,216,106,220,61,0,26,216,101,222,61,0,26,216,197,222,61,0,26,216,85,223,61,0,27,216,133,222,61,0,52,216,197,222,61,0,52,216,229,222,61,0,52,216,100,223,61,0,52,216,118,223,61,0,52,216,120,223,61,0,56,216,69,221,61,0,56,216,245,222,61,0,57,216,245,220,61,0,14,32,58,216,203,220,14,32,61,0,14,32,58,216,85,221,14,32,61,0,14,32,59,216,117,220,14,32,61,0,14,32,59,216,167,220,14,32,61,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,21,255,60,0,60,0,60,0,46,15,60,0,60,0,60,0,60,216,6,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,140,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,228,51,47,0,229,101,60,0,60,0,60,0,196,50,47,0,8,103,60,0,60,0,60,0,93,51,47,0,185,112,60,0,60,0,60,0,53,216,211,223,61,0,53,216,221,223,61,0,53,216,231,223,61,0,53,216,241,223,61,0,53,216,251,223,61,0,62,216,245,223,60,0,60,0,60,0,100,36,61,0,249,36,61,0,122,39,61,0,132,39,61,0,142,39,60,0,60,0,60,0,76,50,47,0,14,32,58,216,80,221,14,32,61,0,191,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,117,32,60,0,60,0,60,0,133,32,60,0,60,0,60,0,60,216,160,221,47,0,14,32,39,0,46,0,39,0,59,216,1,221,14,32,60,0,60,0,60,0,90,33,47,0,14,32,68,32,59,216,6,221,14,32,60,0,60,0,60,0,93,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,14,32,59,216,50,221,14,32,60,0,54,0,61,0,102,6,61,0,246,6,61,0,14,32,198,7,14,32,61,0,108,9,61,0,236,9,61,0,108,10,61,0,236,10,61,0,108,11,61,0,236,11,61,0,108,12,61,0,236,12,61,0,108,13,61,0,236,13,61,0,86,14,61,0,214,14,61,0,38,15,61,0,70,16,61,0,150,16,61,0,110,19,61,0,230,23,61,0,246,23,61,0,22,24,61,0,76,25,61,0,214,25,61,0,134,26,61,0,150,26,61,0,86,27,61,0,182,27,61,0,70,28,61,0,86,28,61,0,133,33,61,0,38,48,61,0,38,166,61,0,214,168,61,0,6,169,61,0,214,169,61,0,246,169,61,0,86,170,61,0,246,171,61,0,0,216,12,221,61,0,0,216,230,222,61,0,1,216,166,220,61,0,14,32,2,216,197,221,14,32,61,0,3,216,54,221,61,0,3,216,101,222,61,0,4,216,87,220,61,0,4,216,108,220,61,0,4,216,246,220,61,0,4,216,60,221,61,0,4,216,214,221,61,0,4,216,230,221,61,0,4,216,246,222,61,0,5,216,86,220,61,0,5,216,214,220,61,0,5,216,86,222,61,0,5,216,198,222,61,0,5,216,54,223,61,0,6,216,230,220,61,0,6,216,86,221,61,0,7,216,86,220,61,0,7,216,95,220,61,0,7,216,86,221,61,0,7,216,166,221,61,0,7,216,86,223,61,0,9,216,4,220,61,0,9,216,11,220,61,0,9,216,17,220,61,0,9,216,26,220,61,0,9,216,40,220,61,0,9,216,64,220,61,0,9,216,78,220,61,0,9,216,107,220,61,0,26,216,102,222,61,0,26,216,198,222,61,0,26,216,86,223,61,0,27,216,134,222,61,0,52,216,198,222,61,0,52,216,230,222,61,0,52,216,101,223,61,0,56,216,70,221,61,0,56,216,246,222,61,0,57,216,246,220,61,0,14,32,58,216,204,220,14,32,61,0,14,32,58,216,86,221,14,32,61,0,14,32,59,216,118,220,14,32,61,0,14,32,59,216,168,220,14,32,61,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,22,255,60,0,60,0,60,0,47,15,60,0,60,0,60,0,60,216,7,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,141,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,229,51,47,0,229,101,60,0,60,0,60,0,197,50,47,0,8,103,60,0,60,0,60,0,94,51,47,0,185,112,60,0,60,0,60,0,53,216,212,223,61,0,53,216,222,223,61,0,53,216,232,223,61,0,53,216,242,223,61,0,53,216,252,223,61,0,62,216,246,223,60,0,60,0,60,0,101,36,61,0,250,36,61,0,123,39,61,0,133,39,61,0,143,39,60,0,60,0,60,0,77,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,118,32,60,0,60,0,60,0,134,32,60,0,60,0,60,0,60,216,163,221,47,0,14,32,58,216,80,221,80,0,14,32,60,0,60,0,14,32,59,216,51,221,14,32,60,0,55,0,61,0,103,6,61,0,247,6,61,0,14,32,199,7,14,32,61,0,109,9,61,0,237,9,61,0,109,10,61,0,237,10,61,0,109,11,61,0,237,11,61,0,109,12,61,0,237,12,61,0,109,13,61,0,237,13,61,0,87,14,61,0,215,14,61,0,39,15,61,0,71,16,61,0,151,16,61,0,111,19,61,0,231,23,61,0,247,23,61,0,23,24,61,0,77,25,61,0,215,25,61,0,135,26,61,0,151,26,61,0,87,27,61,0,183,27,61,0,71,28,61,0,87,28,61,0,39,48,61,0,39,166,61,0,215,168,61,0,7,169,61,0,215,169,61,0,247,169,61,0,87,170,61,0,247,171,61,0,0,216,13,221,61,0,0,216,231,222,61,0,1,216,167,220,61,0,14,32,2,216,198,221,14,32,61,0,3,216,55,221,61,0,3,216,102,222,61,0,4,216,88,220,61,0,4,216,109,220,61,0,4,216,247,220,61,0,4,216,61,221,61,0,4,216,215,221,61,0,4,216,231,221,61,0,4,216,247,222,61,0,5,216,87,220,61,0,5,216,215,220,61,0,5,216,87,222,61,0,5,216,199,222,61,0,5,216,55,223,61,0,6,216,231,220,61,0,6,216,87,221,61,0,7,216,87,220,61,0,7,216,96,220,61,0,7,216,87,221,61,0,7,216,167,221,61,0,7,216,87,223,61,0,9,216,5,220,61,0,9,216,12,220,61,0,9,216,18,220,61,0,9,216,27,220,61,0,9,216,41,220,61,0,9,216,65,220,61,0,9,216,66,220,61,0,9,216,67,220,61,0,9,216,108,220,61,0,26,216,103,222,61,0,26,216,199,222,61,0,26,216,87,223,61,0,27,216,135,222,61,0,52,216,199,222,61,0,52,216,231,222,61,0,52,216,102,223,61,0,56,216,71,221,61,0,56,216,247,222,61,0,57,216,247,220,61,0,14,32,58,216,205,220,14,32,61,0,14,32,58,216,87,221,14,32,61,0,14,32,59,216,119,220,14,32,61,0,14,32,59,216,169,220,14,32,61,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,23,255,60,0,60,0,60,0,48,15,60,0,60,0,60,0,60,216,8,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,142,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,230,51,47,0,229,101,60,0,60,0,60,0,198,50,47,0,8,103,60,0,60,0,60,0,95,51,47,0,185,112,60,0,60,0,60,0,53,216,213,223,61,0,53,216,223,223,61,0,53,216,233,223,61,0,53,216,243,223,61,0,53,216,253,223,61,0,62,216,247,223,60,0,60,0,60,0,102,36,61,0,251,36,61,0,124,39,61,0,134,39,61,0,144,39,60,0,60,0,60,0,78,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,119,32,60,0,60,0,60,0,135,32,60,0,60,0,60,0,60,216,161,221,47,0,14,32,39,0,46,0,39,0,59,216,1,221,14,32,60,0,60,0,60,0,94,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,14,32,59,216,52,221,14,32,60,0,56,0,61,0,104,6,61,0,248,6,61,0,14,32,200,7,14,32,61,0,110,9,61,0,238,9,61,0,110,10,61,0,238,10,61,0,110,11,61,0,238,11,61,0,110,12,61,0,238,12,61,0,110,13,61,0,238,13,61,0,88,14,61,0,216,14,61,0,40,15,61,0,72,16,61,0,152,16,61,0,112,19,61,0,232,23,61,0,248,23,61,0,24,24,61,0,78,25,61,0,216,25,61,0,136,26,61,0,152,26,61,0,88,27,61,0,184,27,61,0,72,28,61,0,88,28,61,0,40,48,61,0,40,166,61,0,216,168,61,0,8,169,61,0,216,169,61,0,248,169,61,0,88,170,61,0,248,171,61,0,0,216,14,221,61,0,0,216,232,222,61,0,1,216,168,220,61,0,14,32,2,216,199,221,14,32,61,0,3,216,56,221,61,0,3,216,103,222,61,0,4,216,89,220,61,0,4,216,110,220,61,0,4,216,248,220,61,0,4,216,62,221,61,0,4,216,216,221,61,0,4,216,232,221,61,0,4,216,248,222,61,0,5,216,88,220,61,0,5,216,216,220,61,0,5,216,88,222,61,0,5,216,200,222,61,0,5,216,56,223,61,0,6,216,232,220,61,0,6,216,88,221,61,0,7,216,88,220,61,0,7,216,97,220,61,0,7,216,88,221,61,0,7,216,168,221,61,0,7,216,88,223,61,0,9,216,6,220,61,0,9,216,13,220,61,0,9,216,19,220,61,0,9,216,28,220,61,0,9,216,42,220,61,0,9,216,68,220,61,0,9,216,69,220,61,0,9,216,109,220,61,0,26,216,104,222,61,0,26,216,200,222,61,0,26,216,88,223,61,0,27,216,136,222,61,0,52,216,200,222,61,0,52,216,232,222,61,0,52,216,103,223,61,0,56,216,72,221,61,0,56,216,248,222,61,0,57,216,248,220,61,0,14,32,58,216,206,220,14,32,61,0,14,32,58,216,88,221,14,32,61,0,14,32,59,216,120,220,14,32,61,0,14,32,59,216,170,220,14,32,61,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,24,255,60,0,60,0,60,0,49,15,60,0,60,0,60,0,60,216,9,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,143,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,231,51,47,0,229,101,60,0,60,0,60,0,199,50,47,0,8,103,60,0,60,0,60,0,96,51,47,0,185,112,60,0,60,0,60,0,53,216,214,223,61,0,53,216,224,223,61,0,53,216,234,223,61,0,53,216,244,223,61,0,53,216,254,223,61,0,62,216,248,223,60,0,60,0,60,0,103,36,61,0,252,36,61,0,125,39,61,0,135,39,61,0,145,39,60,0,60,0,60,0,79,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,120,32,60,0,60,0,60,0,136,32,60,0,60,0,60,0,60,216,159,221,47,0,75,0,60,0,60,0,14,32,59,216,53,221,14,32,60,0,57,0,61,0,105,6,61,0,249,6,61,0,14,32,201,7,14,32,61,0,111,9,61,0,239,9,61,0,111,10,61,0,239,10,61,0,111,11,61,0,239,11,61,0,111,12,61,0,239,12,61,0,111,13,61,0,239,13,61,0,89,14,61,0,217,14,61,0,41,15,61,0,73,16,61,0,153,16,61,0,113,19,61,0,233,23,61,0,249,23,61,0,25,24,61,0,79,25,61,0,217,25,61,0,137,26,61,0,153,26,61,0,89,27,61,0,185,27,61,0,73,28,61,0,89,28,61,0,41,48,61,0,41,166,61,0,217,168,61,0,9,169,61,0,217,169,61,0,249,169,61,0,89,170,61,0,249,171,61,0,0,216,15,221,61,0,0,216,233,222,61,0,1,216,169,220,61,0,14,32,2,216,200,221,14,32,61,0,3,216,57,221,61,0,3,216,104,222,61,0,4,216,90,220,61,0,4,216,111,220,61,0,4,216,249,220,61,0,4,216,63,221,61,0,4,216,217,221,61,0,4,216,233,221,61,0,4,216,249,222,61,0,5,216,89,220,61,0,5,216,217,220,61,0,5,216,89,222,61,0,5,216,201,222,61,0,5,216,57,223,61,0,6,216,233,220,61,0,6,216,89,221,61,0,7,216,89,220,61,0,7,216,98,220,61,0,7,216,89,221,61,0,7,216,169,221,61,0,7,216,89,223,61,0,9,216,7,220,61,0,9,216,14,220,61,0,9,216,20,220,61,0,9,216,29,220,61,0,9,216,43,220,61,0,9,216,70,220,61,0,9,216,71,220,61,0,9,216,72,220,61,0,9,216,73,220,61,0,9,216,110,220,61,0,26,216,105,222,61,0,26,216,201,222,61,0,26,216,89,223,61,0,27,216,137,222,61,0,52,216,201,222,61,0,52,216,233,222,61,0,52,216,104,223,61,0,56,216,73,221,61,0,56,216,249,222,61,0,57,216,249,220,61,0,14,32,58,216,207,220,14,32,61,0,14,32,58,216,89,221,14,32,61,0,14,32,59,216,121,220,14,32,61,0,14,32,59,216,171,220,14,32,61,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,25,255,60,0,60,0,60,0,50,15,60,0,60,0,60,0,60,216,10,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,144,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,232,51,47,0,229,101,60,0,60,0,60,0,200,50,47,0,8,103,60,0,60,0,60,0,97,51,47,0,185,112,60,0,60,0,60,0,53,216,215,223,61,0,53,216,225,223,61,0,53,216,235,223,61,0,53,216,245,223,61,0,53,216,255,223,61,0,62,216,249,223,60,0,60,0,60,0,104,36,61,0,253,36,61,0,126,39,61,0,136,39,61,0,146,39,60,0,60,0,60,0,121,32,60,0,60,0,60,0,137,32,60,0,60,0,14,32,59,216,54,221,14,32,60,0,97,0,60,0,60,0,60,0,65,255,60,0,60,0,60,0,99,3,60,0,60,0,60,0,242,29,47,0,8,3,61,0,155,167,47,0,8,3,60,0,60,0,60,0,193,167,47,0,40,3,60,0,60,0,60,0,0,33,47,0,39,0,47,0,39,0,99,0,60,0,60,0,60,0,1,33,47,0,39,0,47,0,39,0,115,0,60,0,60,0,60,0,51,167,47,0,97,0,60,0,60,0,60,0,213,29,47,0,111,0,61,0,53,167,47,0,111,0,60,0,60,0,60,0,55,167,47,0,117,0,60,0,60,0,60,0,214,29,47,0,118,0,61,0,57,167,47,0,118,0,60,0,60,0,60,0,61,167,47,0,121,0,60,0,60,0,60,0,154,30,47,0,190,2,60,0,60,0,60,0,53,216,26,220,61,0,53,216,78,220,61,0,53,216,130,220,61,0,53,216,182,220,61,0,53,216,234,220,61,0,53,216,30,221,61,0,53,216,82,221,61,0,53,216,134,221,61,0,53,216,186,221,61,0,53,216,238,221,61,0,53,216,34,222,61,0,53,216,86,222,61,0,53,216,138,222,60,0,60,0,60,0,208,36,60,0,60,0,60,0,65,0,60,0,60,0,60,0,33,255,60,0,60,0,60,0,154,167,47,0,8,3,60,0,60,0,60,0,192,167,47,0,40,3,60,0,60,0,60,0,77,33,47,0,39,0,47,0,39,0,83,0,60,0,60,0,60,0,50,167,47,0,65,0,60,0,60,0,60,0,52,167,47,0,79,0,60,0,60,0,60,0,54,167,47,0,85,0,60,0,60,0,60,0,56,167,47,0,86,0,60,0,60,0,60,0,60,167,47,0,89,0,60,0,60,0,60,0,53,216,0,220,61,0,53,216,52,220,61,0,53,216,104,220,61,0,53,216,156,220,61,0,53,216,208,220,61,0,53,216,4,221,61,0,53,216,56,221,61,0,53,216,108,221,61,0,53,216,160,221,61,0,53,216,212,221,61,0,53,216,8,222,61,0,53,216,60,222,61,0,53,216,112,222,60,0,60,0,60,0,182,36,61,0,60,216,80,221,60,0,60,0,60,0,170,0,61,0,67,29,60,0,60,0,60,0,1,216,128,223,47,0,97,0,60,0,60,0,60,0,144,32,60,0,60,0,60,0,194,51,47,0,39,0,46,0,39,0,109,0,39,0,46,0,39,0,60,0,60,0,60,0,44,29,61,0,60,216,48,221,61,0,60,216,112,221,60,0,60,0,60,0,223,51,47,0,21,34,109,0,60,0,60,0,60,0,60,216,142,221,47,0,66,0,60,0,60,0,60,0,115,51,47,0,85,0,60,0,60,0,211,29,60,0,60,0,60,0,230,0,47,0,101,0,61,0,212,29,47,0,101,0,60,0,60,0,60,0,59,167,47,0,118,0,60,0,60,0,60,0,198,0,47,0,69,0,60,0,60,0,60,0,58,167,47,0,86,0,60,0,60,0,60,0,45,29,47,0,101,0,61,0,1,216,131,223,47,0,101,0,60,0,0,29,60,0,101,44,60,0,60,0,60,0,58,2,60,0,143,29,60,0,187,167,60,0,60,0,60,0,186,167,60,0,1,29,60,0,2,29,60,0,60,0,60,0,70,29,60,0,49,171,60,0,80,2,60,0,60,0,60,0,111,44,60,0,60,0,60,0,68,29,60,0,81,2,60,0,60,0,60,0,231,29,60,0,60,0,60,0,109,44,60,0,60,0,60,0,69,29,60,0,48,171,60,0,144,29,60,0,82,2,60,0,60,0,60,0,112,44,60,0,60,0,60,0,155,29,60,0,100,171,60,0,98,0,60,0,60,0,60,0,66,255,60,0,60,0,60,0,232,29,60,0,60,0,60,0,53,216,27,220,61,0,53,216,79,220,61,0,53,216,131,220,61,0,53,216,183,220,61,0,53,216,235,220,61,0,53,216,31,221,61,0,53,216,83,221,61,0,53,216,135,221,61,0,53,216,187,221,61,0,53,216,239,221,61,0,53,216,35,222,61,0,53,216,87,222,61,0,53,216,139,222,60,0,60,0,60,0,209,36,60,0,60,0,60,0,66,0,60,0,60,0,60,0,34,255,60,0,60,0,60,0,44,33,61,0,53,216,1,220,61,0,53,216,53,220,61,0,53,216,105,220,61,0,53,216,209,220,61,0,53,216,5,221,61,0,53,216,57,221,61,0,53,216,109,221,61,0,53,216,161,221,61,0,53,216,213,221,61,0,53,216,9,222,61,0,53,216,61,222,61,0,53,216,113,222,60,0,60,0,60,0,183,36,61,0,60,216,81,221,60,0,60,0,60,0,71,29,60,0,60,0,60,0,116,51,47,0,97,0,114,0,60,0,60,0,60,0,46,29,61,0,60,216,49,221,61,0,60,216,113,221,60,0,60,0,60,0,195,51,47,0,113,0,60,0,153,2,60,0,60,0,60,0,1,216,132,223,60,0,128,1,60,0,60,0,60,0,67,2,60,0,47,29,60,0,3,29,60,0,108,29,60,0,151,167,60,0,60,0,60,0,150,167,60,0,128,29,60,0,83,2,60,0,60,0,60,0,129,1,60,0,60,0,60,0,1,216,133,223,60,0,131,1,60,0,60,0,60,0,130,1,60,0,181,167,60,0,60,0,60,0,233,29,60,0,60,0,60,0,180,167,60,0,99,0,60,0,60,0,60,0,67,255,60,0,60,0,60,0,104,3,61,0,125,33,60,0,60,0,60,0,215,29,47,0,39,3,60,0,60,0,60,0,5,33,47,0,39,0,47,0,39,0,111,0,60,0,60,0,60,0,6,33,47,0,39,0,47,0,39,0,117,0,60,0,60,0,60,0,53,216,28,220,61,0,53,216,80,220,61,0,53,216,132,220,61,0,53,216,184,220,61,0,53,216,236,220,61,0,53,216,32,221,61,0,53,216,84,221,61,0,53,216,136,221,61,0,53,216,188,221,61,0,53,216,240,221,61,0,53,216,36,222,61,0,53,216,88,222,61,0,53,216,140,222,60,0,60,0,60,0,210,36,60,0,60,0,60,0,67,0,60,0,60,0,60,0,35,255,60,0,60,0,60,0,109,33,60,0,60,0,60,0,2,33,61,0,45,33,61,0,53,216,2,220,61,0,53,216,54,220,61,0,53,216,106,220,61,0,53,216,158,220,61,0,53,216,210,220,61,0,53,216,110,221,61,0,53,216,162,221,61,0,53,216,214,221,61,0,53,216,10,222,61,0,53,216,62,222,61,0,53,216,114,222,60,0,60,0,60,0,184,36,61,0,60,216,43,221,61,0,60,216,82,221,60,0,60,0,60,0,60,216,45,221,47,0,68,0,60,0,60,0,60,0,156,29,60,0,60,0,60,0,136,51,47,0,97,0,108,0,60,0,60,0,60,0,196,51,47,0,99,0,60,0,60,0,60,0,197,51,47,0,100,0,60,0,60,0,60,0,157,51,47,0,109,0,60,0,60,0,60,0,160,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,164,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,242,167,61,0,60,216,50,221,61,0,60,216,114,221,60,0,60,0,60,0,198,51,47,0,21,34,107,0,103,0,60,0,60,0,60,0,60,216,145,221,47,0,76,0,60,0,60,0,60,0,199,51,47,0,111,0,39,0,46,0,39,0,60,0,60,0,60,0,60,216,146,221,47,0,79,0,79,0,76,0,60,0,4,29,60,0,60,2,60,0,60,0,60,0,59,2,60,0,147,167,60,0,60,0,60,0,146,167,60,0,148,167,60,0,60,0,60,0,196,167,60,0,55,216,29,223,60,0,136,1,60,0,60,0,60,0,135,1,60,0,85,2,60,0,60,0,60,0,157,29,60,0,132,33,60,0,60,0,60,0,131,33,60,0,63,167,60,0,60,0,60,0,62,167,60,0,100,0,60,0,60,0,60,0,17,1,47,0,53,3,60,0,60,0,60,0,68,255,60,0,60,0,60,0,105,3,61,0,126,33,60,0,60,0,60,0,56,2,47,0,98,0,60,0,60,0,60,0,243,1,47,0,122,0,61,0,163,2,47,0,122,0,60,0,60,0,60,0,198,1,47,0,126,1,60,0,60,0,60,0,102,171,47,0,144,2,60,0,60,0,60,0,165,2,47,0,145,2,60,0,60,0,60,0,164,2,47,0,146,2,60,0,60,0,60,0,55,216,18,223,47,0,55,216,24,223,60,0,60,0,60,0,55,216,25,223,47,0,154,29,60,0,60,0,60,0,70,33,61,0,53,216,29,220,61,0,53,216,81,220,61,0,53,216,133,220,61,0,53,216,185,220,61,0,53,216,237,220,61,0,53,216,33,221,61,0,53,216,85,221,61,0,53,216,137,221,61,0,53,216,189,221,61,0,53,216,241,221,61,0,53,216,37,222,61,0,53,216,89,222,61,0,53,216,141,222,60,0,60,0,60,0,211,36,60,0,60,0,60,0,68,0,60,0,60,0,60,0,16,1,47,0,53,3,60,0,60,0,60,0,36,255,60,0,60,0,60,0,110,33,60,0,60,0,60,0,242,1,47,0,122,0,60,0,60,0,60,0,241,1,47,0,90,0,60,0,60,0,60,0,197,1,47,0,126,1,60,0,60,0,60,0,196,1,47,0,125,1,60,0,60,0,60,0,69,33,61,0,53,216,3,220,61,0,53,216,55,220,61,0,53,216,107,220,61,0,53,216,159,220,61,0,53,216,211,220,61,0,53,216,7,221,61,0,53,216,59,221,61,0,53,216,111,221,61,0,53,216,163,221,61,0,53,216,215,221,61,0,53,216,11,222,61,0,53,216,63,222,61,0,53,216,115,222,60,0,60,0,60,0,185,36,61,0,60,216,83,221,60,0,60,0,60,0,72,29,60,0,60,0,60,0,1,216,135,223,47,0,122,0,60,0,60,0,60,0,1,216,136,223,47,0,144,2,60,0,60,0,60,0,1,216,137,223,47,0,145,2,60,0,60,0,60,0,1,216,138,223,47,0,146,2,60,0,60,0,60,0,60,216,165,221,60,0,60,0,60,0,114,51,47,0,97,0,60,0,60,0,60,0,200,51,47,0,66,0,60,0,60,0,60,0,151,51,47,0,108,0,60,0,60,0,60,0,119,51,47,0,109,0,60,0,60,0,60,0,120,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,121,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,48,29,61,0,60,216,51,221,61,0,60,216,115,221,60,0,60,0,60,0,60,216,144,221,47,0,74,0,60,0,60,0,240,0,61,0,217,29,60,0,60,0,60,0,208,0,60,0,60,0,60,0,158,29,60,0,60,0,216,29,61,0,122,167,60,0,60,0,60,0,121,167,60,0,5,29,60,0,6,29,60,0,200,167,60,0,60,0,60,0,199,167,60,0,109,29,60,0,129,29,60,0,86,2,60,0,60,0,60,0,137,1,60,0,60,0,60,0,1,216,139,223,60,0,87,2,60,0,60,0,60,0,138,1,60,0,60,0,60,0,1,216,140,223,60,0,55,216,37,223,60,0,145,29,60,0,60,0,60,0,1,216,141,223,60,0,140,1,60,0,60,0,60,0,139,1,60,0,33,2,60,0,113,167,60,0,159,30,60,0,101,0,60,0,60,0,60,0,69,255,60,0,60,0,60,0,100,3,60,0,60,0,60,0,47,33,61,0,71,33,61,0,53,216,30,220,61,0,53,216,82,220,61,0,53,216,134,220,61,0,53,216,238,220,61,0,53,216,34,221,61,0,53,216,86,221,61,0,53,216,138,221,61,0,53,216,190,221,61,0,53,216,242,221,61,0,53,216,38,222,61,0,53,216,90,222,61,0,53,216,142,222,60,0,60,0,60,0,212,36,60,0,60,0,60,0,69,0,60,0,60,0,60,0,37,255,60,0,60,0,60,0,48,33,61,0,53,216,4,220,61,0,53,216,56,220,61,0,53,216,108,220,61,0,53,216,212,220,61,0,53,216,8,221,61,0,53,216,60,221,61,0,53,216,112,221,61,0,53,216,164,221,61,0,53,216,216,221,61,0,53,216,12,222,61,0,53,216,64,222,61,0,53,216,116,222,60,0,60,0,60,0,186,36,61,0,60,216,84,221,60,0,60,0,60,0,73,29,60,0,60,0,60,0,145,32,60,0,60,0,60,0,205,50,47,0,114,0,103,0,60,0,60,0,60,0,206,50,47,0,86,0,60,0,60,0,60,0,49,29,61,0,60,216,52,221,61,0,60,216,116,221,60,0,7,29,60,0,50,171,60,0,51,171,60,0,71,2,60,0,60,0,60,0,70,2,60,0,146,29,60,0,52,171,60,0,120,44,60,0,221,1,60,0,60,0,60,0,142,1,60,0,60,0,60,0,50,29,60,0,123,44,60,0,89,2,60,0,60,0,60,0,234,29,60,0,60,0,60,0,143,1,60,0,60,0,60,0,74,29,60,0,60,0,60,0,148,32,60,0,149,29,60,0,91,2,60,0,60,0,60,0,144,1,60,0,60,0,60,0,7,33,60,0,60,0,60,0,75,29,60,0,147,29,60,0,88,2,60,0,60,0,60,0,1,216,142,223,60,0,90,2,60,0,92,2,60,0,60,0,60,0,171,167,60,0,60,0,60,0,159,29,60,0,148,29,60,0,8,29,60,0,60,0,60,0,76,29,60,0,93,2,60,0,94,2,60,0,60,0,60,0,1,216,143,223,60,0,154,2,60,0,100,2,60,0,60,0,60,0,1,216,145,223,60,0,102,0,60,0,60,0,60,0,70,255,60,0,60,0,60,0,235,29,60,0,60,0,60,0,0,251,47,0,102,0,60,0,60,0,60,0,3,251,47,0,102,0,105,0,60,0,60,0,60,0,4,251,47,0,102,0,108,0,60,0,60,0,60,0,1,251,47,0,105,0,60,0,60,0,60,0,2,251,47,0,108,0,60,0,60,0,60,0,169,2,47,0,75,1,60,0,60,0,60,0,53,216,31,220,61,0,53,216,83,220,61,0,53,216,135,220,61,0,53,216,187,220,61,0,53,216,239,220,61,0,53,216,35,221,61,0,53,216,87,221,61,0,53,216,139,221,61,0,53,216,191,221,61,0,53,216,243,221,61,0,53,216,39,222,61,0,53,216,91,222,61,0,53,216,143,222,60,0,60,0,60,0,213,36,60,0,60,0,60,0,70,0,60,0,60,0,60,0,38,255,60,0,60,0,60,0,59,33,47,0,65,0,88,0,60,0,60,0,60,0,49,33,61,0,53,216,5,220,61,0,53,216,57,220,61,0,53,216,109,220,61,0,53,216,213,220,61,0,53,216,9,221,61,0,53,216,61,221,61,0,53,216,113,221,61,0,53,216,165,221,61,0,53,216,217,221,61,0,53,216,13,222,61,0,53,216,65,222,61,0,53,216,117,222,60,0,60,0,60,0,187,36,61,0,60,216,85,221,60,0,60,0,60,0,160,29,60,0,60,0,60,0,1,216,144,223,47,0,75,1,60,0,60,0,60,0,153,51,47,0,109,0,60,0,60,0,60,0,243,167,61,0,60,216,53,221,61,0,60,216,117,221,60,0,60,0,60,0,60,216,147,221,47,0,82,0,69,0,69,0,60,0,60,0,124,167,60,0,60,0,60,0,123,167,60,0,60,0,55,216,0,223,47,0,75,1,60,0,48,167,60,0,53,171,60,0,153,167,60,0,60,0,60,0,152,167,60,0,110,29,60,0,130,29,60,0,146,1,60,0,60,0,60,0,145,1,60,0,78,33,60,0,60,0,60,0,50,33,60,0,251,167,60,0,103,0,60,0,60,0,60,0,71,255,60,0,60,0,60,0,218,29,60,0,60,0,60,0,161,167,47,0,47,216,158,220,60,0,60,0,60,0,10,33,61,0,53,216,32,220,61,0,53,216,84,220,61,0,53,216,136,220,61,0,53,216,240,220,61,0,53,216,36,221,61,0,53,216,88,221,61,0,53,216,140,221,61,0,53,216,192,221,61,0,53,216,244,221,61,0,53,216,40,222,61,0,53,216,92,222,61,0,53,216,144,222,60,0,60,0,60,0,214,36,60,0,60,0,60,0,71,0,60,0,60,0,60,0,39,255,60,0,60,0,60,0,160,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,6,220,61,0,53,216,58,220,61,0,53,216,110,220,61,0,53,216,162,220,61,0,53,216,214,220,61,0,53,216,10,221,61,0,53,216,62,221,61,0,53,216,114,221,61,0,53,216,166,221,61,0,53,216,218,221,61,0,53,216,14,222,61,0,53,216,66,222,61,0,53,216,118,222,60,0,60,0,60,0,188,36,61,0,60,216,86,221,60,0,60,0,60,0,77,29,60,0,60,0,60,0,255,51,47,0,97,0,108,0,60,0,60,0,60,0,51,29,61,0,60,216,54,221,61,0,60,216,118,221,60,0,60,0,60,0,135,51,47,0,66,0,60,0,60,0,60,0,147,51,47,0,72,0,122,0,60,0,60,0,60,0,172,51,47,0,80,0,97,0,60,0,60,0,60,0,201,51,47,0,121,0,60,0,60,0,204,26,61,0,121,29,60,0,60,0,60,0,125,167,60,0,209,167,60,0,60,0,60,0,208,167,60,0,97,2,60,0,60,0,60,0,172,167,60,0,60,0,60,0,162,29,60,0,55,216,1,223,60,0,54,171,60,0,98,2,60,0,60,0,60,0,219,29,60,0,60,0,60,0,1,216,146,223,60,0,229,1,60,0,60,0,60,0,228,1,60,0,131,29,60,0,96,2,60,0,60,0,60,0,147,1,60,0,60,0,60,0,1,216,147,223,60,0,155,2,60,0,60,0,60,0,1,216,148,223,60,0,119,29,60,0,55,216,2,223,60,0,127,167,60,0,60,0,60,0,126,167,60,0,99,2,60,0,60,0,60,0,148,1,60,0,60,0,60,0,224,2,60,0,163,1,60,0,60,0,60,0,162,1,60,0,104,0,60,0,60,0,60,0,39,1,47,0,53,3,61,0,15,33,47,0,53,3,60,0,60,0,60,0,72,255,60,0,60,0,60,0,106,3,60,0,60,0,60,0,14,33,61,0,53,216,33,220,61,0,53,216,137,220,61,0,53,216,189,220,61,0,53,216,241,220,61,0,53,216,37,221,61,0,53,216,89,221,61,0,53,216,141,221,61,0,53,216,193,221,61,0,53,216,245,221,61,0,53,216,41,222,61,0,53,216,93,222,61,0,53,216,145,222,60,0,60,0,60,0,215,36,60,0,60,0,60,0,72,0,60,0,60,0,60,0,38,1,47,0,53,3,60,0,60,0,60,0,40,255,60,0,60,0,60,0,11,33,61,0,12,33,61,0,13,33,61,0,53,216,7,220,61,0,53,216,59,220,61,0,53,216,111,220,61,0,53,216,215,220,61,0,53,216,115,221,61,0,53,216,167,221,61,0,53,216,219,221,61,0,53,216,15,222,61,0,53,216,67,222,61,0,53,216,119,222,60,0,60,0,60,0,189,36,61,0,60,216,87,221,60,0,60,0,60,0,176,2,60,0,60,0,60,0,248,167,47,0,53,3,61,0,1,216,149,223,47,0,53,3,60,0,60,0,60,0,149,32,60,0,60,0,60,0,202,51,47,0,97,0,60,0,60,0,60,0,113,51,47,0,80,0,97,0,60,0,60,0,60,0,52,29,61,0,60,216,55,221,61,0,60,216,119,221,60,0,60,0,60,0,60,216,166,221,47,0,99,0,60,0,60,0,60,0,60,216,167,221,47,0,100,0,82,0,60,0,60,0,60,0,204,50,47,0,103,0,60,0,60,0,60,0,60,216,168,221,47,0,105,0,39,0,32,0,39,0,82,0,101,0,115,0,60,0,60,0,60,0,203,51,47,0,80,0,60,0,60,0,60,0,60,216,74,221,47,0,86,0,60,0,60,0,60,0,144,51,47,0,122,0,60,0,156,2,60,0,60,0,60,0,1,216,150,223,60,0,149,1,60,0,60,0,60,0,246,1,60,0,149,167,60,0,102,2,60,0,60,0,60,0,170,167,60,0,60,0,60,0,177,2,60,0,104,44,60,0,60,0,60,0,103,44,60,0,118,44,60,0,60,0,60,0,117,44,60,0,246,167,60,0,60,0,60,0,245,167,60,0,39,167,60,0,60,0,60,0,38,167,60,0,60,0,60,0,92,171,60,0,103,2,60,0,60,0,60,0,1,216,151,223,60,0,187,2,60,0,189,2,60,0,105,0,60,0,60,0,60,0,73,255,60,0,60,0,60,0,101,3,61,0,112,33,60,0,60,0,60,0,113,33,47,0,105,0,60,0,60,0,60,0,114,33,47,0,105,0,105,0,60,0,60,0,60,0,51,1,47,0,106,0,60,0,60,0,60,0,115,33,47,0,118,0,60,0,60,0,60,0,120,33,47,0,120,0,60,0,60,0,60,0,57,33,61,0,72,33,61,0,53,216,34,220,61,0,53,216,86,220,61,0,53,216,138,220,61,0,53,216,190,220,61,0,53,216,242,220,61,0,53,216,38,221,61,0,53,216,90,221,61,0,53,216,142,221,61,0,53,216,194,221,61,0,53,216,246,221,61,0,53,216,42,222,61,0,53,216,94,222,61,0,53,216,146,222,60,0,60,0,60,0,216,36,60,0,60,0,60,0,73,0,60,0,60,0,60,0,41,255,60,0,60,0,60,0,96,33,60,0,60,0,60,0,97,33,47,0,73,0,60,0,60,0,60,0,98,33,47,0,73,0,73,0,60,0,60,0,60,0,50,1,47,0,74,0,60,0,60,0,60,0,99,33,47,0,86,0,60,0,60,0,60,0,104,33,47,0,88,0,60,0,60,0,60,0,16,33,61,0,17,33,61,0,53,216,8,220,61,0,53,216,60,220,61,0,53,216,112,220,61,0,53,216,216,220,61,0,53,216,64,221,61,0,53,216,116,221,61,0,53,216,168,221,61,0,53,216,220,221,61,0,53,216,16,222,61,0,53,216,68,222,61,0,53,216,120,222,60,0,60,0,60,0,190,36,61,0,60,216,88,221,60,0,60,0,60,0,113,32,60,0,60,0,60,0,98,29,60,0,60,0,60,0,204,51,47,0,110,0,60,0,60,0,60,0,53,29,61,0,60,216,56,221,61,0,60,216,120,221,60,0,60,0,60,0,60,216,139,221,47,0,67,0,60,0,60,0,60,0,60,216,148,221,47,0,68,0,60,0,60,0,60,0,122,51,47,0,85,0,60,0,49,1,60,0,60,0,60,0,53,216,164,222,60,0,106,2,60,0,60,0,60,0,174,167,60,0,60,0,60,0,166,29,60,0,254,167,60,0,247,167,60,0,9,29,60,0,60,0,60,0,78,29,60,0,104,2,60,0,60,0,60,0,151,1,60,0,60,0,60,0,164,29,60,0,123,29,60,0,60,0,60,0,167,29,60,0,55,216,26,223,60,0,150,29,60,0,189,167,60,0,60,0,60,0,188,167,60,0,105,2,60,0,60,0,60,0,150,1,60,0,60,0,60,0,165,29,60,0,124,29,60,0,106,0,60,0,60,0,60,0,74,255,60,0,60,0,60,0,73,33,61,0,53,216,35,220,61,0,53,216,87,220,61,0,53,216,139,220,61,0,53,216,191,220,61,0,53,216,243,220,61,0,53,216,39,221,61,0,53,216,91,221,61,0,53,216,143,221,61,0,53,216,195,221,61,0,53,216,247,221,61,0,53,216,43,222,61,0,53,216,95,222,61,0,53,216,147,222,60,0,60,0,60,0,217,36,60,0,60,0,60,0,74,0,60,0,60,0,60,0,42,255,60,0,60,0,60,0,53,216,9,220,61,0,53,216,61,220,61,0,53,216,113,220,61,0,53,216,165,220,61,0,53,216,217,220,61,0,53,216,13,221,61,0,53,216,65,221,61,0,53,216,117,221,61,0,53,216,169,221,61,0,53,216,221,221,61,0,53,216,17,222,61,0,53,216,69,222,61,0,53,216,121,222,60,0,60,0,60,0,191,36,61,0,60,216,89,221,60,0,60,0,60,0,178,2,60,0,60,0,60,0,124,44,60,0,60,0,60,0,54,29,61,0,60,216,57,221,61,0,60,216,121,221,60,0,55,2,60,0,60,0,60,0,53,216,165,222,60,0,10,29,60,0,73,2,60,0,60,0,60,0,72,2,60,0,157,2,60,0,60,0,60,0,178,167,60,0,60,0,60,0,168,29,60,0,95,2,60,0,60,0,60,0,161,29,60,0,132,2,60,0,60,0,60,0,1,216,152,223,60,0,107,0,60,0,60,0,60,0,75,255,60,0,60,0,60,0,220,29,60,0,60,0,60,0,163,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,36,220,61,0,53,216,88,220,61,0,53,216,140,220,61,0,53,216,192,220,61,0,53,216,244,220,61,0,53,216,40,221,61,0,53,216,92,221,61,0,53,216,144,221,61,0,53,216,196,221,61,0,53,216,248,221,61,0,53,216,44,222,61,0,53,216,96,222,61,0,53,216,148,222,60,0,60,0,60,0,218,36,60,0,60,0,60,0,75,0,60,0,60,0,60,0,43,255,60,0,60,0,60,0,162,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,10,220,61,0,53,216,62,220,61,0,53,216,114,220,61,0,53,216,166,220,61,0,53,216,218,220,61,0,53,216,14,221,61,0,53,216,66,221,61,0,53,216,118,221,61,0,53,216,170,221,61,0,53,216,222,221,61,0,53,216,18,222,61,0,53,216,70,222,61,0,53,216,122,222,60,0,60,0,60,0,192,36,61,0,60,216,90,221,60,0,60,0,60,0,79,29,60,0,60,0,60,0,150,32,60,0,60,0,60,0,132,51,47,0,65,0,60,0,60,0,60,0,137,51,47,0,99,0,97,0,108,0,60,0,60,0,60,0,143,51,47,0,103,0,60,0,60,0,60,0,145,51,47,0,72,0,122,0,60,0,60,0,60,0,152,51,47,0,108,0,60,0,60,0,60,0,158,51,47,0,109,0,60,0,60,0,60,0,162,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,166,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,170,51,47,0,80,0,97,0,60,0,60,0,60,0,207,51,47,0,116,0,60,0,60,0,60,0,184,51,47,0,86,0,60,0,60,0,60,0,190,51,47,0,87,0,60,0,60,0,60,0,192,51,47,0,169,3,60,0,60,0,60,0,55,29,61,0,60,216,58,221,61,0,60,216,122,221,60,0,60,0,60,0,133,51,47,0,66,0,60,0,60,0,60,0,205,51,47,0,75,0,60,0,60,0,60,0,206,51,47,0,77,0,60,0,11,29,60,0,132,29,60,0,153,1,60,0,60,0,60,0,152,1,60,0,106,44,60,0,60,0,60,0,105,44,60,0,65,167,60,0,60,0,60,0,64,167,60,0,67,167,60,0,60,0,60,0,66,167,60,0,69,167,60,0,60,0,60,0,68,167,60,0,55,216,3,223,60,0,158,2,60,0,60,0,60,0,176,167,60,0,55,216,16,223,60,0,108,0,60,0,60,0,60,0,66,1,47,0,53,3,60,0,60,0,60,0,76,255,60,0,60,0,60,0,221,29,61,0,124,33,60,0,60,0,60,0,201,1,47,0,106,0,60,0,60,0,60,0,251,30,47,0,108,0,60,0,60,0,60,0,170,2,47,0,115,0,60,0,60,0,60,0,171,2,47,0,122,0,60,0,60,0,60,0,19,33,61,0,53,216,37,220,61,0,53,216,89,220,61,0,53,216,141,220,61,0,53,216,193,220,61,0,53,216,245,220,61,0,53,216,41,221,61,0,53,216,93,221,61,0,53,216,145,221,61,0,53,216,197,221,61,0,53,216,249,221,61,0,53,216,45,222,61,0,53,216,97,222,61,0,53,216,149,222,60,0,60,0,60,0,219,36,60,0,60,0,60,0,76,0,60,0,60,0,60,0,65,1,47,0,53,3,60,0,60,0,60,0,44,255,60,0,60,0,60,0,108,33,60,0,60,0,60,0,200,1,47,0,106,0,60,0,60,0,60,0,199,1,47,0,74,0,60,0,60,0,60,0,250,30,47,0,76,0,60,0,60,0,60,0,18,33,61,0,53,216,11,220,61,0,53,216,63,220,61,0,53,216,115,220,61,0,53,216,219,220,61,0,53,216,15,221,61,0,53,216,67,221,61,0,53,216,119,221,61,0,53,216,171,221,61,0,53,216,223,221,61,0,53,216,19,222,61,0,53,216,71,222,61,0,53,216,123,222,60,0,60,0,60,0,193,36,61,0,60,216,91,221,60,0,60,0,60,0,225,2,60,0,60,0,60,0,1,216,153,223,47,0,115,0,60,0,60,0,60,0,1,216,154,223,47,0,122,0,60,0,60,0,60,0,151,32,60,0,60,0,60,0,208,51,47,0,109,0,60,0,60,0,60,0,209,51,47,0,110,0,60,0,60,0,60,0,210,51,47,0,111,0,103,0,60,0,60,0,60,0,211,51,47,0,120,0,60,0,60,0,60,0,56,29,61,0,60,216,59,221,61,0,60,216,123,221,60,0,60,0,60,0,60,216,169,221,47,0,111,0,115,0,115,0,108,0,101,0,115,0,115,0,60,0,60,0,60,0,207,50,47,0,84,0,68,0,60,0,60,0,108,0,183,0,61,0,108,0,183,0,61,0,64,1,60,0,60,0,60,0,76,0,183,0,61,0,76,0,183,0,61,0,63,1,60,0,159,2,60,0,60,0,60,0,222,29,60,0,60,0,60,0,171,29,60,0,71,167,60,0,60,0,60,0,70,167,60,0,12,29,60,0,73,167,60,0,60,0,60,0,72,167,60,0,154,1,60,0,60,0,60,0,61,2,60,0,97,44,60,0,60,0,60,0,96,44,60,0,107,2,60,0,60,0,60,0,98,44,60,0,60,0,60,0,94,171,60,0,56,171,60,0,60,0,60,0,236,29,60,0,57,171,60,0,108,2,60,0,60,0,60,0,173,167,60,0,60,0,60,0,1,216,155,223,60,0,55,216,4,223,60,0,60,0,60,0,1,216,156,223,60,0,55,216,19,223,60,0,55,171,60,0,60,0,60,0,93,171,60,0,133,29,60,0,60,0,60,0,170,29,60,0,109,2,60,0,60,0,60,0,169,29,60,0,55,216,38,223,60,0,142,167,60,0,60,0,60,0,1,216,157,223,60,0,55,216,17,223,60,0,52,2,60,0,114,167,60,0,110,2,60,0,60,0,60,0,1,216,158,223,60,0,55,216,5,223,60,0,60,0,60,0,1,216,159,223,60,0,129,167,60,0,60,0,60,0,128,167,60,0,155,1,60,0,142,2,60,0,60,0,60,0,1,216,160,223,60,0,55,216,6,223,60,0,60,0,60,0,1,216,161,223,60,0,109,0,60,0,60,0,60,0,77,255,60,0,60,0,60,0,107,3,61,0,127,33,60,0,60,0,60,0,53,216,38,220,61,0,53,216,90,220,61,0,53,216,142,220,61,0,53,216,194,220,61,0,53,216,246,220,61,0,53,216,42,221,61,0,53,216,94,221,61,0,53,216,146,221,61,0,53,216,198,221,61,0,53,216,250,221,61,0,53,216,46,222,61,0,53,216,98,222,61,0,53,216,150,222,60,0,60,0,60,0,220,36,60,0,60,0,60,0,77,0,60,0,60,0,60,0,45,255,60,0,60,0,60,0,111,33,60,0,60,0,60,0,51,33,61,0,53,216,12,220,61,0,53,216,64,220,61,0,53,216,116,220,61,0,53,216,220,220,61,0,53,216,16,221,61,0,53,216,68,221,61,0,53,216,120,221,61,0,53,216,172,221,61,0,53,216,224,221,61,0,53,216,20,222,61,0,53,216,72,222,61,0,53,216,124,222,60,0,60,0,60,0,194,36,61,0,60,216,92,221,60,0,60,0,60,0,80,29,60,0,60,0,60,0,60,216,106,221,47,0,99,0,60,0,60,0,60,0,60,216,107,221,47,0,100,0,60,0,60,0,60,0,60,216,108,221,47,0,114,0,60,0,60,0,60,0,152,32,60,0,60,0,60,0,167,51,47,0,21,34,115,0,60,0,60,0,60,0,168,51,47,0,14,32,21,34,115,0,59,216,2,221,14,32,60,0,60,0,60,0,161,51,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,165,51,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,131,51,47,0,65,0,60,0,60,0,60,0,212,51,47,0,98,0,60,0,60,0,60,0,142,51,47,0,103,0,60,0,60,0,60,0,213,51,47,0,105,0,108,0,60,0,60,0,60,0,150,51,47,0,108,0,60,0,60,0,60,0,156,51,47,0,109,0,60,0,60,0,60,0,159,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,163,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,214,51,47,0,111,0,108,0,60,0,60,0,60,0,179,51,47,0,115,0,60,0,60,0,60,0,183,51,47,0,86,0,60,0,60,0,60,0,189,51,47,0,87,0,60,0,60,0,60,0,57,29,61,0,60,216,60,221,61,0,60,216,124,221,60,0,60,0,60,0,134,51,47,0,66,0,60,0,60,0,60,0,146,51,47,0,72,0,122,0,60,0,60,0,60,0,171,51,47,0,80,0,97,0,60,0,60,0,60,0,185,51,47,0,86,0,61,0,60,216,75,221,47,0,86,0,60,0,60,0,60,0,191,51,47,0,87,0,60,0,60,0,60,0,193,51,47,0,169,3,60,0,13,29,60,0,60,0,60,0,223,29,60,0,111,29,60,0,134,29,60,0,113,2,60,0,60,0,60,0,110,44,60,0,60,0,60,0,172,29,60,0,58,171,60,0,253,167,60,0,255,167,60,0,115,167,60,0,110,0,60,0,60,0,60,0,78,255,60,0,60,0,60,0,224,29,60,0,60,0,60,0,165,167,47,0,47,216,158,220,60,0,60,0,60,0,204,1,47,0,106,0,60,0,60,0,60,0,53,216,39,220,61,0,53,216,91,220,61,0,53,216,143,220,61,0,53,216,195,220,61,0,53,216,247,220,61,0,53,216,43,221,61,0,53,216,95,221,61,0,53,216,147,221,61,0,53,216,199,221,61,0,53,216,251,221,61,0,53,216,47,222,61,0,53,216,99,222,61,0,53,216,151,222,60,0,60,0,60,0,221,36,60,0,60,0,60,0,78,0,60,0,60,0,60,0,46,255,60,0,60,0,60,0,164,167,47,0,47,216,158,220,60,0,60,0,60,0,203,1,47,0,106,0,60,0,60,0,60,0,202,1,47,0,74,0,60,0,60,0,60,0,22,33,47,0,111,0,60,0,60,0,60,0,21,33,61,0,53,216,13,220,61,0,53,216,65,220,61,0,53,216,117,220,61,0,53,216,169,220,61,0,53,216,221,220,61,0,53,216,17,221,61,0,53,216,121,221,61,0,53,216,173,221,61,0,53,216,225,221,61,0,53,216,21,222,61,0,53,216,73,222,61,0,53,216,125,222,60,0,60,0,60,0,195,36,61,0,60,216,93,221,60,0,60,0,60,0,127,32,60,0,60,0,60,0,153,32,60,0,60,0,60,0,129,51,47,0,65,0,60,0,60,0,60,0,139,51,47,0,70,0,60,0,60,0,60,0,154,51,47,0,109,0,60,0,60,0,60,0,177,51,47,0,115,0,60,0,60,0,60,0,181,51,47,0,86,0,60,0,60,0,60,0,187,51,47,0,87,0,60,0,60,0,60,0,58,29,61,0,60,216,61,221,61,0,60,216,125,221,60,0,60,0,60,0,60,216,149,221,47,0,69,0,87,0,60,0,60,0,60,0,60,216,150,221,47,0,71,0,60,0,116,2,60,0,60,0,60,0,225,29,60,0,60,0,60,0,176,29,60,0,59,29,60,0,14,29,60,0,112,29,60,0,114,2,60,0,60,0,60,0,157,1,60,0,60,0,60,0,174,29,60,0,158,1,60,0,60,0,60,0,32,2,60,0,145,167,60,0,60,0,60,0,144,167,60,0,135,29,60,0,115,2,60,0,60,0,60,0,175,29,60,0,55,216,39,223,60,0,53,2,60,0,59,171,60,0,116,167,60,0,75,1,60,0,60,0,60,0,74,1,60,0,60,0,60,0,81,29,60,0,60,171,60,0,55,216,20,223,60,0,55,216,7,223,60,0,111,0,60,0,60,0,60,0,248,0,47,0,56,3,60,0,60,0,60,0,79,255,60,0,60,0,60,0,102,3,60,0,60,0,60,0,243,29,47,0,8,3,61,0,157,167,47,0,8,3,60,0,60,0,60,0,237,29,47,0,3,216,133,223,60,0,60,0,60,0,79,167,47,0,111,0,60,0,60,0,60,0,52,33,61,0,53,216,40,220,61,0,53,216,92,220,61,0,53,216,144,220,61,0,53,216,248,220,61,0,53,216,44,221,61,0,53,216,96,221,61,0,53,216,148,221,61,0,53,216,200,221,61,0,53,216,252,221,61,0,53,216,48,222,61,0,53,216,100,222,61,0,53,216,152,222,60,0,60,0,60,0,222,36,60,0,60,0,60,0,79,0,60,0,60,0,60,0,216,0,47,0,56,3,60,0,60,0,60,0,47,255,60,0,60,0,60,0,156,167,47,0,8,3,60,0,60,0,60,0,78,167,47,0,79,0,60,0,60,0,60,0,53,216,14,220,61,0,53,216,66,220,61,0,53,216,118,220,61,0,53,216,170,220,61,0,53,216,222,220,61,0,53,216,18,221,61,0,53,216,70,221,61,0,53,216,122,221,61,0,53,216,174,221,61,0,53,216,226,221,61,0,53,216,22,222,61,0,53,216,74,222,61,0,53,216,126,222,60,0,60,0,60,0,196,36,61,0,60,216,94,221,60,0,60,0,60,0,186,0,61,0,82,29,60,0,60,0,60,0,1,216,162,223,47,0,56,3,60,0,60,0,60,0,146,32,60,0,60,0,60,0,117,51,47,0,86,0,60,0,60,0,60,0,60,29,61,0,60,216,62,221,61,0,60,216,126,221,60,0,60,0,60,0,60,216,151,221,47,0,75,0,60,0,60,0,83,1,47,0,101,0,60,0,60,0,60,0,82,1,47,0,69,0,60,0,60,0,60,0,249,167,47,0,101,0,60,0,15,29,60,0,17,29,60,0,61,171,60,0,118,2,60,0,60,0,60,0,1,216,163,223,60,0,20,29,60,0,65,171,60,0,66,171,60,0,64,171,60,0,67,171,60,0,68,171,60,0,19,29,60,0,62,171,60,0,55,216,27,223,60,0,84,2,60,0,60,0,60,0,134,1,60,0,60,0,60,0,83,29,60,0,16,29,60,0,18,29,60,0,63,171,60,0,151,29,60,0,98,171,60,0,77,167,60,0,60,0,60,0,76,167,60,0,22,29,60,0,60,0,60,0,84,29,60,0,23,29,60,0,60,0,60,0,85,29,60,0,122,44,60,0,117,2,60,0,60,0,60,0,159,1,60,0,60,0,60,0,177,29,60,0,75,167,60,0,60,0,60,0,74,167,60,0,119,2,60,0,60,0,60,0,1,216,164,223,60,0,183,167,60,0,60,0,60,0,182,167,60,0,35,2,60,0,60,0,60,0,34,2,60,0,60,0,60,0,61,29,60,0,21,29,60,0,112,0,60,0,60,0,60,0,80,255,60,0,60,0,60,0,238,29,60,0,60,0,60,0,53,216,41,220,61,0,53,216,93,220,61,0,53,216,145,220,61,0,53,216,197,220,61,0,53,216,249,220,61,0,53,216,45,221,61,0,53,216,97,221,61,0,53,216,149,221,61,0,53,216,201,221,61,0,53,216,253,221,61,0,53,216,49,222,61,0,53,216,101,222,61,0,53,216,153,222,60,0,60,0,60,0,223,36,60,0,60,0,60,0,80,0,60,0,60,0,60,0,48,255,60,0,60,0,60,0,25,33,61,0,53,216,15,220,61,0,53,216,67,220,61,0,53,216,119,220,61,0,53,216,171,220,61,0,53,216,223,220,61,0,53,216,19,221,61,0,53,216,123,221,61,0,53,216,175,221,61,0,53,216,227,221,61,0,53,216,23,222,61,0,53,216,75,222,61,0,53,216,127,222,60,0,60,0,60,0,197,36,61,0,60,216,95,221,60,0,60,0,60,0,86,29,60,0,60,0,60,0,154,32,60,0,60,0,60,0,216,51,47,0,39,0,46,0,39,0,109,0,39,0,46,0,39,0,60,0,60,0,60,0,128,51,47,0,65,0,60,0,60,0,60,0,118,51,47,0,99,0,60,0,60,0,60,0,138,51,47,0,70,0,60,0,60,0,60,0,176,51,47,0,115,0,60,0,60,0,60,0,180,51,47,0,86,0,60,0,60,0,60,0,186,51,47,0,87,0,60,0,60,0,60,0,62,29,61,0,60,216,63,221,61,0,60,216,127,221,61,0,60,216,138,221,60,0,60,0,60,0,169,51,47,0,97,0,60,0,60,0,60,0,60,216,140,221,47,0,65,0,60,0,60,0,60,0,215,51,47,0,72,0,60,0,60,0,60,0,217,51,47,0,80,0,77,0,60,0,60,0,60,0,60,216,78,221,47,0,80,0,86,0,60,0,60,0,60,0,218,51,47,0,82,0,60,0,60,0,60,0,80,50,47,0,84,0,69,0,60,0,24,29,60,0,125,29,60,0,60,0,60,0,99,44,60,0,81,167,60,0,60,0,60,0,80,167,60,0,113,29,60,0,136,29,60,0,165,1,60,0,60,0,60,0,164,1,60,0,83,167,60,0,60,0,60,0,82,167,60,0,85,167,60,0,60,0,60,0,84,167,60,0,252,167,60,0,120,2,60,0,60,0,60,0,178,29,60,0,119,44,60,0,113,0,60,0,60,0,60,0,81,255,60,0,60,0,60,0,57,2,47,0,112,0,60,0,60,0,60,0,53,216,42,220,61,0,53,216,94,220,61,0,53,216,146,220,61,0,53,216,198,220,61,0,53,216,250,220,61,0,53,216,46,221,61,0,53,216,98,221,61,0,53,216,150,221,61,0,53,216,202,221,61,0,53,216,254,221,61,0,53,216,50,222,61,0,53,216,102,222,61,0,53,216,154,222,60,0,60,0,60,0,224,36,60,0,60,0,60,0,81,0,60,0,60,0,60,0,49,255,60,0,60,0,60,0,26,33,61,0,53,216,16,220,61,0,53,216,68,220,61,0,53,216,120,220,61,0,53,216,172,220,61,0,53,216,224,220,61,0,53,216,20,221,61,0,53,216,124,221,61,0,53,216,176,221,61,0,53,216,228,221,61,0,53,216,24,222,61,0,53,216,76,222,61,0,53,216,128,222,60,0,60,0,60,0,198,36,61,0,60,216,96,221,60,0,60,0,60,0,1,216,165,223,60,0,60,0,60,0,244,167,61,0,60,216,64,221,61,0,60,216,128,221,60,0,175,167,60,0,87,167,60,0,60,0,60,0,86,167,60,0,89,167,60,0,60,0,60,0,88,167,60,0,160,2,60,0,75,2,60,0,60,0,60,0,74,2,60,0,56,1,60,0,114,0,60,0,60,0,60,0,82,255,60,0,60,0,60,0,108,3,61,0,202,29,60,0,60,0,60,0,167,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,43,220,61,0,53,216,95,220,61,0,53,216,147,220,61,0,53,216,199,220,61,0,53,216,251,220,61,0,53,216,47,221,61,0,53,216,99,221,61,0,53,216,151,221,61,0,53,216,203,221,61,0,53,216,255,221,61,0,53,216,51,222,61,0,53,216,103,222,61,0,53,216,155,222,60,0,60,0,60,0,225,36,60,0,60,0,60,0,82,0,60,0,60,0,60,0,50,255,60,0,60,0,60,0,166,167,47,0,47,216,158,220,60,0,60,0,60,0,27,33,61,0,28,33,61,0,29,33,61,0,53,216,17,220,61,0,53,216,69,220,61,0,53,216,121,220,61,0,53,216,225,220,61,0,53,216,125,221,61,0,53,216,177,221,61,0,53,216,229,221,61,0,53,216,25,222,61,0,53,216,77,222,61,0,53,216,129,222,60,0,60,0,60,0,199,36,61,0,60,216,44,221,61,0,60,216,97,221,60,0,60,0,60,0,179,2,60,0,60,0,60,0,99,29,60,0,60,0,60,0,173,51,47,0,97,0,100,0,60,0,60,0,60,0,174,51,47,0,97,0,100,0,21,34,115,0,60,0,60,0,60,0,175,51,47,0,14,32,97,0,100,0,21,34,115,0,59,216,2,221,14,32,60,0,60,0,60,0,63,29,61,0,60,216,65,221,61,0,60,216,129,221,60,0,60,0,205,26,61,0,131,167,60,0,60,0,60,0,130,167,60,0,60,0,227,29,61,0,91,167,60,0,60,0,60,0,90,167,60,0,69,171,60,0,128,2,60,0,60,0,60,0,226,29,60,0,60,0,60,0,166,1,60,0,60,0,60,0,1,216,170,223,60,0,70,171,60,0,25,29,60,0,77,2,60,0,60,0,60,0,76,2,60,0,114,29,60,0,121,2,60,0,60,0,60,0,180,2,60,0,26,29,60,0,122,2,60,0,60,0,60,0,1,216,166,223,60,0,55,216,8,223,60,0,60,0,60,0,1,216,167,223,60,0,123,2,60,0,60,0,60,0,181,2,60,0,121,44,60,0,137,29,60,0,124,2,60,0,125,2,60,0,60,0,60,0,100,44,60,0,60,0,60,0,1,216,168,223,60,0,55,216,40,223,60,0,73,171,60,0,126,2,60,0,60,0,60,0,1,216,169,223,60,0,115,29,60,0,55,216,22,223,60,0,127,2,60,0,71,171,60,0,72,171,60,0,74,171,60,0,75,171,60,0,76,171,60,0,129,2,60,0,60,0,60,0,182,2,60,0,104,171,60,0,55,216,21,223,60,0,117,167,60,0,118,167,60,0,93,167,60,0,60,0,60,0,92,167,60,0,115,0,60,0,60,0,60,0,83,255,60,0,60,0,60,0,228,29,60,0,60,0,60,0,169,167,47,0,47,216,158,220,60,0,60,0,60,0,6,251,47,0,116,0,60,0,60,0,60,0,53,216,44,220,61,0,53,216,96,220,61,0,53,216,148,220,61,0,53,216,200,220,61,0,53,216,252,220,61,0,53,216,48,221,61,0,53,216,100,221,61,0,53,216,152,221,61,0,53,216,204,221,61,0,53,216,0,222,61,0,53,216,52,222,61,0,53,216,104,222,61,0,53,216,156,222,60,0,60,0,60,0,226,36,60,0,60,0,60,0,83,0,60,0,60,0,60,0,51,255,60,0,60,0,60,0,168,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,18,220,61,0,53,216,70,220,61,0,53,216,122,220,61,0,53,216,174,220,61,0,53,216,226,220,61,0,53,216,22,221,61,0,53,216,74,221,61,0,53,216,126,221,61,0,53,216,178,221,61,0,53,216,230,221,61,0,53,216,26,222,61,0,53,216,78,222,61,0,53,216,130,222,60,0,60,0,60,0,200,36,61,0,60,216,98,221,60,0,60,0,60,0,226,2,60,0,60,0,60,0,32,33,47,0,109,0,60,0,60,0,60,0,155,32,60,0,60,0,60,0,219,51,47,0,114,0,60,0,60,0,60,0,60,216,66,221,61,0,60,216,130,221,60,0,60,0,60,0,60,216,141,221,47,0,65,0,60,0,60,0,60,0,60,216,76,221,47,0,68,0,60,0,60,0,60,0,60,216,170,221,47,0,72,0,86,0,60,0,60,0,60,0,60,216,152,221,47,0,79,0,83,0,60,0,60,0,60,0,60,216,77,221,47,0,83,0,60,0,60,0,60,0,220,51,47,0,118,0,60,0,60,0,223,0,47,0,115,0,60,0,60,0,60,0,158,30,47,0,83,0,60,0,60,0,127,1,61,0,229,29,60,0,60,0,60,0,5,251,47,0,116,0,60,0,60,0,133,167,60,0,60,0,60,0,132,167,60,0,60,0,217,167,60,0,60,0,60,0,216,167,60,0,49,167,60,0,202,167,60,0,60,0,60,0,201,167,60,0,116,29,60,0,138,29,60,0,130,2,60,0,60,0,60,0,197,167,60,0,60,0,60,0,179,29,60,0,55,216,41,223,60,0,55,216,30,223,60,0,60,0,60,0,1,216,186,223,60,0,63,2,60,0,60,0,60,0,126,44,60,0,215,167,60,0,60,0,60,0,214,167,60,0,156,30,60,0,157,30,60,0,131,2,60,0,60,0,60,0,239,29,60,0,60,0,60,0,169,1,60,0,60,0,60,0,180,29,60,0,77,171,60,0,139,29,60,0,152,29,60,0,170,1,60,0,133,2,60,0,134,2,60,0,55,216,11,223,60,0,55,216,12,223,60,0,116,0,60,0,60,0,60,0,84,255,60,0,60,0,60,0,109,3,60,0,60,0,60,0,168,2,47,0,85,2,60,0,60,0,60,0,190,1,47,0,115,0,61,0,166,2,47,0,115,0,60,0,60,0,60,0,103,171,47,0,130,2,60,0,60,0,60,0,167,2,47,0,131,2,60,0,60,0,60,0,55,216,23,223,47,0,139,29,60,0,60,0,60,0,55,216,28,223,47,0,152,29,60,0,60,0,60,0,41,167,47,0,122,0,60,0,60,0,60,0,53,216,45,220,61,0,53,216,97,220,61,0,53,216,149,220,61,0,53,216,201,220,61,0,53,216,253,220,61,0,53,216,49,221,61,0,53,216,101,221,61,0,53,216,153,221,61,0,53,216,205,221,61,0,53,216,1,222,61,0,53,216,53,222,61,0,53,216,105,222,61,0,53,216,157,222,60,0,60,0,60,0,227,36,60,0,60,0,60,0,84,0,60,0,60,0,60,0,52,255,60,0,60,0,60,0,33,33,47,0,69,0,76,0,60,0,60,0,60,0,40,167,47,0,122,0,60,0,60,0,60,0,53,216,19,220,61,0,53,216,71,220,61,0,53,216,123,220,61,0,53,216,175,220,61,0,53,216,227,220,61,0,53,216,23,221,61,0,53,216,75,221,61,0,53,216,127,221,61,0,53,216,179,221,61,0,53,216,231,221,61,0,53,216,27,222,61,0,53,216,79,222,61,0,53,216,131,222,60,0,60,0,60,0,201,36,61,0,60,216,99,221,60,0,60,0,60,0,87,29,60,0,60,0,60,0,1,216,171,223,47,0,85,2,60,0,60,0,60,0,34,33,47,0,109,0,60,0,60,0,60,0,1,216,172,223,47,0,115,0,60,0,60,0,60,0,1,216,173,223,47,0,130,2,60,0,60,0,60,0,1,216,174,223,47,0,131,2,60,0,60,0,60,0,156,32,60,0,60,0,60,0,64,29,61,0,60,216,67,221,61,0,60,216,131,221,60,0,60,0,60,0,148,51,47,0,72,0,122,0,60,0,60,0,122,29,47,0,104,0,60,0,60,0,206,26,61,0,135,167,60,0,60,0,60,0,134,167,60,0,27,29,60,0,103,1,60,0,60,0,60,0,102,1,60,0,102,44,60,0,60,0,60,0,62,2,60,0,117,29,60,0,171,1,60,0,60,0,60,0,181,29,60,0,173,1,60,0,60,0,60,0,172,1,60,0,136,2,60,0,60,0,60,0,174,1,60,0,60,0,60,0,1,216,175,223,60,0,55,216,42,223,60,0,55,216,9,223,60,0,54,2,60,0,119,167,60,0,135,2,60,0,60,0,60,0,177,167,60,0,55,216,13,223,60,0,117,0,60,0,60,0,60,0,85,255,60,0,60,0,60,0,103,3,60,0,60,0,60,0,244,29,47,0,8,3,61,0,159,167,47,0,8,3,60,0,60,0,60,0,240,29,47,0,3,216,133,223,60,0,60,0,60,0,53,216,46,220,61,0,53,216,98,220,61,0,53,216,150,220,61,0,53,216,202,220,61,0,53,216,254,220,61,0,53,216,50,221,61,0,53,216,102,221,61,0,53,216,154,221,61,0,53,216,206,221,61,0,53,216,2,222,61,0,53,216,54,222,61,0,53,216,106,222,61,0,53,216,158,222,60,0,60,0,60,0,228,36,60,0,60,0,60,0,85,0,60,0,60,0,60,0,53,255,60,0,60,0,60,0,158,167,47,0,8,3,60,0,60,0,60,0,53,216,20,220,61,0,53,216,72,220,61,0,53,216,124,220,61,0,53,216,176,220,61,0,53,216,228,220,61,0,53,216,24,221,61,0,53,216,76,221,61,0,53,216,128,221,61,0,53,216,180,221,61,0,53,216,232,221,61,0,53,216,28,222,61,0,53,216,80,222,61,0,53,216,132,222,60,0,60,0,60,0,202,36,61,0,60,216,100,221,60,0,60,0,60,0,88,29,60,0,60,0,60,0,100,29,60,0,60,0,60,0,65,29,61,0,60,216,68,221,61,0,60,216,132,221,60,0,60,0,60,0,60,216,171,221,47,0,72,0,68,0,60,0,60,0,60,0,60,216,153,221,47,0,80,0,39,0,33,0,39,0,60,0,28,29,60,0,60,0,60,0,184,29,60,0,78,171,60,0,29,29,60,0,60,0,60,0,89,29,60,0,30,29,60,0,107,29,60,0,80,171,60,0,81,171,60,0,137,2,60,0,60,0,60,0,68,2,60,0,60,0,60,0,182,29,60,0,79,171,60,0,185,167,60,0,60,0,60,0,184,167,60,0,126,29,60,0,153,29,60,0,82,171,60,0,60,0,60,0,95,171,60,0,191,167,60,0,60,0,60,0,190,167,60,0,101,2,60,0,60,0,60,0,141,167,60,0,60,0,60,0,163,29,60,0,174,2,60,0,175,2,60,0,111,2,60,0,60,0,60,0,156,1,60,0,60,0,60,0,90,29,60,0,250,167,60,0,31,29,60,0,112,2,60,0,60,0,60,0,173,29,60,0,138,2,60,0,60,0,60,0,177,1,60,0,60,0,60,0,183,29,60,0,127,29,60,0,118,0,60,0,60,0,60,0,86,255,60,0,60,0,60,0,110,3,61,0,116,33,60,0,60,0,60,0,117,33,47,0,105,0,60,0,60,0,60,0,118,33,47,0,105,0,105,0,60,0,60,0,60,0,119,33,47,0,105,0,105,0,105,0,60,0,60,0,60,0,97,167,47,0,121,0,60,0,60,0,60,0,53,216,47,220,61,0,53,216,99,220,61,0,53,216,151,220,61,0,53,216,203,220,61,0,53,216,255,220,61,0,53,216,51,221,61,0,53,216,103,221,61,0,53,216,155,221,61,0,53,216,207,221,61,0,53,216,3,222,61,0,53,216,55,222,61,0,53,216,107,222,61,0,53,216,159,222,60,0,60,0,60,0,229,36,60,0,60,0,60,0,86,0,60,0,60,0,60,0,54,255,60,0,60,0,60,0,100,33,60,0,60,0,60,0,101,33,47,0,73,0,60,0,60,0,60,0,102,33,47,0,73,0,73,0,60,0,60,0,60,0,103,33,47,0,73,0,73,0,73,0,60,0,60,0,60,0,96,167,47,0,89,0,60,0,60,0,60,0,53,216,21,220,61,0,53,216,73,220,61,0,53,216,125,220,61,0,53,216,177,220,61,0,53,216,229,220,61,0,53,216,25,221,61,0,53,216,77,221,61,0,53,216,129,221,61,0,53,216,181,221,61,0,53,216,233,221,61,0,53,216,29,222,61,0,53,216,81,222,61,0,53,216,133,222,60,0,60,0,60,0,203,36,61,0,60,216,101,221,60,0,60,0,60,0,91,29,60,0,60,0,60,0,101,29,60,0,60,0,60,0,125,44,61,0,60,216,69,221,61,0,60,216,133,221,60,0,60,0,60,0,222,51,47,0,21,34,109,0,60,0,60,0,60,0,60,216,172,221,47,0,79,0,68,0,60,0,60,0,60,0,60,216,154,221,47,0,83,0,60,0,32,29,60,0,95,167,60,0,60,0,60,0,94,167,60,0,140,29,60,0,139,2,60,0,60,0,60,0,178,1,60,0,60,0,60,0,185,29,60,0,113,44,60,0,60,0,60,0,1,216,176,223,60,0,116,44,60,0,253,30,60,0,60,0,60,0,252,30,60,0,140,2,60,0,60,0,60,0,69,2,60,0,60,0,60,0,186,29,60,0,119,0,60,0,60,0,60,0,87,255,60,0,60,0,60,0,191,26,61,0,241,29,60,0,60,0,60,0,53,216,48,220,61,0,53,216,100,220,61,0,53,216,152,220,61,0,53,216,204,220,61,0,53,216,0,221,61,0,53,216,52,221,61,0,53,216,104,221,61,0,53,216,156,221,61,0,53,216,208,221,61,0,53,216,4,222,61,0,53,216,56,222,61,0,53,216,108,222,61,0,53,216,160,222,60,0,60,0,60,0,230,36,60,0,60,0,60,0,87,0,60,0,60,0,60,0,55,255,60,0,60,0,60,0,53,216,22,220,61,0,53,216,74,220,61,0,53,216,126,220,61,0,53,216,178,220,61,0,53,216,230,220,61,0,53,216,26,221,61,0,53,216,78,221,61,0,53,216,130,221,61,0,53,216,182,221,61,0,53,216,234,221,61,0,53,216,30,222,61,0,53,216,82,222,61,0,53,216,134,222,60,0,60,0,60,0,204,36,61,0,60,216,102,221,60,0,60,0,60,0,60,216,46,221,47,0,90,0,60,0,60,0,60,0,183,2,60,0,60,0,60,0,66,29,61,0,60,216,70,221,61,0,60,216,134,221,60,0,60,0,60,0,221,51,47,0,98,0,60,0,60,0,60,0,60,216,79,221,47,0,67,0,61,0,60,216,143,221,47,0,67,0,60,0,60,0,195,167,60,0,60,0,60,0,194,167,60,0,33,29,60,0,115,44,60,0,60,0,60,0,114,44,60,0,141,2,60,0,60,0,60,0,192,26,60,0,60,0,60,0,105,171,60,0,120,0,60,0,60,0,60,0,88,255,60,0,60,0,60,0,111,3,61,0,121,33,60,0,60,0,60,0,122,33,47,0,105,0,60,0,60,0,60,0,123,33,47,0,105,0,105,0,60,0,60,0,60,0,53,216,49,220,61,0,53,216,101,220,61,0,53,216,153,220,61,0,53,216,205,220,61,0,53,216,1,221,61,0,53,216,53,221,61,0,53,216,105,221,61,0,53,216,157,221,61,0,53,216,209,221,61,0,53,216,5,222,61,0,53,216,57,222,61,0,53,216,109,222,61,0,53,216,161,222,60,0,60,0,60,0,231,36,60,0,60,0,60,0,88,0,60,0,60,0,60,0,56,255,60,0,60,0,60,0,105,33,60,0,60,0,60,0,106,33,47,0,73,0,60,0,60,0,60,0,107,33,47,0,73,0,73,0,60,0,60,0,60,0,53,216,23,220,61,0,53,216,75,220,61,0,53,216,127,220,61,0,53,216,179,220,61,0,53,216,231,220,61,0,53,216,27,221,61,0,53,216,79,221,61,0,53,216,131,221,61,0,53,216,183,221,61,0,53,216,235,221,61,0,53,216,31,222,61,0,53,216,83,222,61,0,53,216,135,222,60,0,60,0,60,0,205,36,61,0,60,216,103,221,60,0,60,0,60,0,227,2,60,0,60,0,60,0,147,32,60,0,60,0,60,0,60,216,71,221,61,0,60,216,135,221,60,0,141,29,60,0,86,171,60,0,87,171,60,0,88,171,60,0,89,171,60,0,83,171,60,0,60,0,60,0,179,167,60,0,84,171,60,0,85,171,60,0,121,0,60,0,60,0,60,0,89,255,60,0,60,0,60,0,53,216,50,220,61,0,53,216,102,220,61,0,53,216,154,220,61,0,53,216,206,220,61,0,53,216,2,221,61,0,53,216,54,221,61,0,53,216,106,221,61,0,53,216,158,221,61,0,53,216,210,221,61,0,53,216,6,222,61,0,53,216,58,222,61,0,53,216,110,222,61,0,53,216,162,222,60,0,60,0,60,0,232,36,60,0,60,0,60,0,89,0,60,0,60,0,60,0,57,255,60,0,60,0,60,0,53,216,24,220,61,0,53,216,76,220,61,0,53,216,128,220,61,0,53,216,180,220,61,0,53,216,232,220,61,0,53,216,28,221,61,0,53,216,80,221,61,0,53,216,132,221,61,0,53,216,184,221,61,0,53,216,236,221,61,0,53,216,32,222,61,0,53,216,84,222,61,0,53,216,136,222,60,0,60,0,60,0,206,36,61,0,60,216,104,221,60,0,60,0,60,0,184,2,60,0,60,0,60,0,60,216,72,221,61,0,60,216,136,221,60,0,143,2,60,0,60,0,60,0,1,216,178,223,60,0,79,2,60,0,60,0,60,0,78,2,60,0,180,1,60,0,60,0,60,0,179,1,60,0,255,30,60,0,60,0,60,0,254,30,60,0,90,171,60,0,29,2,60,0,60,0,60,0,28,2,60,0,122,0,60,0,60,0,60,0,90,255,60,0,60,0,60,0,230,29,60,0,60,0,60,0,141,1,47,0,119,0,60,0,60,0,60,0,53,216,51,220,61,0,53,216,103,220,61,0,53,216,155,220,61,0,53,216,207,220,61,0,53,216,3,221,61,0,53,216,55,221,61,0,53,216,107,221,61,0,53,216,159,221,61,0,53,216,211,221,61,0,53,216,7,222,61,0,53,216,59,222,61,0,53,216,111,222,61,0,53,216,163,222,60,0,60,0,60,0,233,36,60,0,60,0,60,0,90,0,60,0,60,0,60,0,58,255,60,0,60,0,60,0,36,33,61,0,40,33,61,0,53,216,25,220,61,0,53,216,77,220,61,0,53,216,129,220,61,0,53,216,181,220,61,0,53,216,233,220,61,0,53,216,133,221,61,0,53,216,185,221,61,0,53,216,237,221,61,0,53,216,33,222,61,0,53,216,85,222,61,0,53,216,137,222,60,0,60,0,60,0,207,36,61,0,60,216,105,221,60,0,60,0,60,0,187,29,60,0,60,0,60,0,60,216,73,221,61,0,60,216,137,221,60,0,34,29,60,0,182,1,60,0,60,0,60,0,181,1,60,0,118,29,60,0,142,29,60,0,60,0,60,0,198,167,60,0,37,2,60,0,60,0,60,0,36,2,60,0,144,2,60,0,60,0,60,0,188,29,60,0,145,2,60,0,60,0,60,0,189,29,60,0,64,2,60,0,60,0,60,0,127,44,60,0,108,44,60,0,60,0,60,0,107,44,60,0,99,167,60,0,60,0,60,0,98,167,60,0,146,2,60,0,60,0,60,0,183,1,60,0,60,0,60,0,190,29,60,0,35,29,60,0,185,1,60,0,60,0,60,0,184,1,60,0,55,216,24,223,60,0,154,29,60,0,186,1,60,0,147,2,60,0,254,0,60,0,60,0,60,0,222,0,60,0,211,167,60,0,101,167,60,0,60,0,60,0,100,167,60,0,103,167,60,0,60,0,60,0,102,167,60,0,191,1,60,0,60,0,60,0,247,1,60,0,213,167,60,0,105,167,60,0,60,0,60,0,104,167,60,0,96,171,60,0,97,171,60,0,99,171,60,0,107,167,60,0,60,0,60,0,106,167,60,0,109,167,60,0,60,0,60,0,108,167,60,0,111,167,60,0,60,0,60,0,210,29,60,0,60,0,60,0,110,167,60,0,60,0,60,0,112,167,60,0,120,167,60,0,187,1,60,0,43,167,60,0,60,0,60,0,42,167,60,0,45,167,60,0,60,0,60,0,44,167,60,0,47,167,60,0,60,0,60,0,46,167,60,0,168,1,60,0,60,0,60,0,167,1,60,0,189,1,60,0,60,0,60,0,188,1,60,0,133,1,60,0,60,0,60,0,132,1,60,0,148,2,60,0,66,2,60,0,60,0,60,0,65,2,60,0,192,2,60,0,188,2,60,0,60,0,60,0,73,1,47,0,110,0,60,0,238,2,60,0,190,2,60,0,35,167,60,0,60,0,60,0,34,167,60,0,140,167,60,0,60,0,60,0,139,167,60,0,143,167,60,0,149,2,60,0,60,0,60,0,228,2,60,0,191,2,60,0,193,2,60,0,36,29,60,0,37,29,60,0,60,0,60,0,92,29,60,0,37,167,60,0,60,0,60,0,36,167,60,0,161,2,60,0,60,0,60,0,1,216,179,223,60,0,162,2,60,0,60,0,60,0,1,216,180,223,60,0,150,2,60,0,55,216,14,223,60,0,192,1,60,0,60,0,60,0,1,216,182,223,60,0,193,1,60,0,60,0,60,0,1,216,183,223,60,0,194,1,60,0,60,0,60,0,1,216,184,223,60,0,195,1,60,0,55,216,10,223,60,0,60,0,60,0,1,216,185,223,60,0,151,2,60,0,55,216,15,223,60,0,152,2,60,0,60,0,60,0,1,216,181,223,60,0,172,2,60,0,173,2,60,0,177,3,60,0,60,0,60,0,53,216,194,222,61,0,53,216,252,222,61,0,53,216,54,223,61,0,53,216,112,223,61,0,53,216,170,223,60,0,60,0,60,0,145,3,60,0,60,0,60,0,53,216,168,222,61,0,53,216,226,222,61,0,53,216,28,223,61,0,53,216,86,223,61,0,53,216,144,223,60,0,178,3,60,0,60,0,60,0,208,3,60,0,60,0,60,0,53,216,195,222,61,0,53,216,253,222,61,0,53,216,55,223,61,0,53,216,113,223,61,0,53,216,171,223,60,0,60,0,60,0,146,3,60,0,60,0,60,0,53,216,169,222,61,0,53,216,227,222,61,0,53,216,29,223,61,0,53,216,87,223,61,0,53,216,145,223,60,0,60,0,60,0,93,29,60,0,60,0,60,0,102,29,60,0,179,3,60,0,60,0,60,0,61,33,61,0,53,216,196,222,61,0,53,216,254,222,61,0,53,216,56,223,61,0,53,216,114,223,61,0,53,216,172,223,60,0,60,0,60,0,147,3,60,0,60,0,60,0,62,33,61,0,53,216,170,222,61,0,53,216,228,222,61,0,53,216,30,223,61,0,53,216,88,223,61,0,53,216,146,223,60,0,60,0,60,0,94,29,60,0,60,0,60,0,103,29,60,0,38,29,60,0,180,3,60,0,60,0,60,0,53,216,197,222,61,0,53,216,255,222,61,0,53,216,57,223,61,0,53,216,115,223,61,0,53,216,173,223,60,0,60,0,60,0,148,3,60,0,60,0,60,0,53,216,171,222,61,0,53,216,229,222,61,0,53,216,31,223,61,0,53,216,89,223,61,0,53,216,147,223,60,0,60,0,60,0,95,29,60,0,181,3,60,0,60,0,60,0,245,3,60,0,60,0,60,0,53,216,198,222,61,0,53,216,220,222,61,0,53,216,0,223,61,0,53,216,22,223,61,0,53,216,58,223,61,0,53,216,80,223,61,0,53,216,116,223,61,0,53,216,138,223,61,0,53,216,174,223,61,0,53,216,196,223,60,0,60,0,60,0,149,3,60,0,60,0,60,0,53,216,172,222,61,0,53,216,230,222,61,0,53,216,32,223,61,0,53,216,90,223,61,0,53,216,148,223,60,0,221,3,60,0,60,0,60,0,53,216,203,223,60,0,60,0,60,0,220,3,60,0,60,0,60,0,53,216,202,223,60,0,119,3,60,0,60,0,60,0,118,3,60,0,219,3,60,0,60,0,60,0,218,3,60,0,182,3,60,0,60,0,60,0,53,216,199,222,61,0,53,216,1,223,61,0,53,216,59,223,61,0,53,216,117,223,61,0,53,216,175,223,60,0,60,0,60,0,150,3,60,0,60,0,60,0,53,216,173,222,61,0,53,216,231,222,61,0,53,216,33,223,61,0,53,216,91,223,61,0,53,216,149,223,60,0,113,3,60,0,60,0,60,0,112,3,60,0,183,3,60,0,60,0,60,0,53,216,200,222,61,0,53,216,2,223,61,0,53,216,60,223,61,0,53,216,118,223,61,0,53,216,176,223,60,0,60,0,60,0,151,3,60,0,60,0,60,0,53,216,174,222,61,0,53,216,232,222,61,0,53,216,34,223,61,0,53,216,92,223,61,0,53,216,150,223,60,0,184,3,60,0,60,0,60,0,209,3,60,0,60,0,60,0,53,216,201,222,61,0,53,216,221,222,61,0,53,216,3,223,61,0,53,216,23,223,61,0,53,216,61,223,61,0,53,216,81,223,61,0,53,216,119,223,61,0,53,216,139,223,61,0,53,216,177,223,61,0,53,216,197,223,60,0,60,0,60,0,152,3,60,0,60,0,60,0,244,3,60,0,60,0,60,0,53,216,175,222,61,0,53,216,185,222,61,0,53,216,233,222,61,0,53,216,243,222,61,0,53,216,35,223,61,0,53,216,45,223,61,0,53,216,93,223,61,0,53,216,103,223,61,0,53,216,151,223,61,0,53,216,161,223,60,0,60,0,60,0,191,29,60,0,185,3,60,0,60,0,60,0,122,3,60,0,60,0,60,0,53,216,202,222,61,0,53,216,4,223,61,0,53,216,62,223,61,0,53,216,120,223,61,0,53,216,178,223,60,0,60,0,60,0,153,3,60,0,60,0,60,0,53,216,176,222,61,0,53,216,234,222,61,0,53,216,36,223,61,0,53,216,94,223,61,0,53,216,152,223,60,0,243,3,60,0,60,0,60,0,127,3,60,0,186,3,60,0,60,0,60,0,240,3,60,0,60,0,60,0,215,3,47,0,177,3,185,3,60,0,60,0,60,0,53,216,203,222,61,0,53,216,222,222,61,0,53,216,5,223,61,0,53,216,24,223,61,0,53,216,63,223,61,0,53,216,82,223,61,0,53,216,121,223,61,0,53,216,140,223,61,0,53,216,179,223,61,0,53,216,198,223,60,0,60,0,60,0,154,3,60,0,60,0,60,0,207,3,47,0,177,3,185,3,60,0,60,0,60,0,53,216,177,222,61,0,53,216,235,222,61,0,53,216,37,223,61,0,53,216,95,223,61,0,53,216,153,223,60,0,187,3,60,0,60,0,60,0,53,216,204,222,61,0,53,216,6,223,61,0,53,216,64,223,61,0,53,216,122,223,61,0,53,216,180,223,60,0,60,0,60,0,155,3,60,0,60,0,60,0,53,216,178,222,61,0,53,216,236,222,61,0,53,216,38,223,61,0,53,216,96,223,61,0,53,216,154,223,60,0,39,29,60,0,188,3,60,0,60,0,60,0,181,0,60,0,60,0,60,0,53,216,205,222,61,0,53,216,7,223,61,0,53,216,65,223,61,0,53,216,123,223,61,0,53,216,181,223,60,0,60,0,60,0,156,3,60,0,60,0,60,0,53,216,179,222,61,0,53,216,237,222,61,0,53,216,39,223,61,0,53,216,97,223,61,0,53,216,155,223,60,0,60,0,60,0,130,51,47,0,65,0,60,0,60,0,60,0,140,51,47,0,70,0,60,0,60,0,60,0,141,51,47,0,103,0,60,0,60,0,60,0,149,51,47,0,108,0,60,0,60,0,60,0,155,51,47,0,109,0,60,0,60,0,60,0,178,51,47,0,115,0,60,0,60,0,60,0,182,51,47,0,86,0,60,0,60,0,60,0,188,51,47,0,87,0,60,0,189,3,60,0,60,0,60,0,53,216,206,222,61,0,53,216,8,223,61,0,53,216,66,223,61,0,53,216,124,223,61,0,53,216,182,223,60,0,60,0,60,0,157,3,60,0,60,0,60,0,53,216,180,222,61,0,53,216,238,222,61,0,53,216,40,223,61,0,53,216,98,223,61,0,53,216,156,223,60,0,190,3,60,0,60,0,60,0,53,216,207,222,61,0,53,216,9,223,61,0,53,216,67,223,61,0,53,216,125,223,61,0,53,216,183,223,60,0,60,0,60,0,158,3,60,0,60,0,60,0,53,216,181,222,61,0,53,216,239,222,61,0,53,216,41,223,61,0,53,216,99,223,61,0,53,216,157,223,60,0,191,3,60,0,60,0,60,0,53,216,208,222,61,0,53,216,10,223,61,0,53,216,68,223,61,0,53,216,126,223,61,0,53,216,184,223,60,0,60,0,60,0,159,3,60,0,60,0,60,0,53,216,182,222,61,0,53,216,240,222,61,0,53,216,42,223,61,0,53,216,100,223,61,0,53,216,158,223,60,0,192,3,60,0,60,0,60,0,214,3,60,0,60,0,60,0,60,33,61,0,53,216,209,222,61,0,53,216,225,222,61,0,53,216,11,223,61,0,53,216,27,223,61,0,53,216,69,223,61,0,53,216,85,223,61,0,53,216,127,223,61,0,53,216,143,223,61,0,53,216,185,223,61,0,53,216,201,223,60,0,60,0,60,0,160,3,60,0,60,0,60,0,63,33,61,0,53,216,183,222,61,0,53,216,241,222,61,0,53,216,43,223,61,0,53,216,101,223,61,0,53,216,159,223,60,0,40,29,60,0,251,3,60,0,60,0,60,0,250,3,60,0,223,3,60,0,60,0,60,0,222,3,60,0,217,3,60,0,60,0,60,0,216,3,60,0,193,3,60,0,60,0,60,0,241,3,60,0,60,0,60,0,53,216,210,222,61,0,53,216,224,222,61,0,53,216,12,223,61,0,53,216,26,223,61,0,53,216,70,223,61,0,53,216,84,223,61,0,53,216,128,223,61,0,53,216,142,223,61,0,53,216,186,223,61,0,53,216,200,223,60,0,60,0,60,0,161,3,60,0,60,0,60,0,53,216,184,222,61,0,53,216,242,222,61,0,53,216,44,223,61,0,53,216,102,223,61,0,53,216,160,223,60,0,60,0,60,0,104,29,60,0,41,29,60,0,252,3,60,0,195,3,60,0,60,0,60,0,242,3,60,0,60,0,60,0,53,216,211,222,61,0,53,216,212,222,61,0,53,216,13,223,61,0,53,216,14,223,61,0,53,216,71,223,61,0,53,216,72,223,61,0,53,216,129,223,61,0,53,216,130,223,61,0,53,216,187,223,61,0,53,216,188,223,60,0,60,0,60,0,163,3,60,0,60,0,60,0,249,3,60,0,60,0,60,0,53,216,186,222,61,0,53,216,244,222,61,0,53,216,46,223,61,0,53,216,104,223,61,0,53,216,162,223,60,0,60,0,60,0,194,3,60,0,124,3,60,0,60,0,60,0,254,3,60,0,123,3,60,0,60,0,60,0,253,3,60,0,125,3,60,0,60,0,60,0,255,3,60,0,196,3,60,0,60,0,60,0,53,216,213,222,61,0,53,216,15,223,61,0,53,216,73,223,61,0,53,216,131,223,61,0,53,216,189,223,60,0,60,0,60,0,164,3,60,0,60,0,60,0,53,216,187,222,61,0,53,216,245,222,61,0,53,216,47,223,61,0,53,216,105,223,61,0,53,216,163,223,60,0,197,3,60,0,60,0,60,0,53,216,214,222,61,0,53,216,16,223,61,0,53,216,74,223,61,0,53,216,132,223,61,0,53,216,190,223,60,0,60,0,60,0,165,3,60,0,60,0,60,0,210,3,60,0,60,0,60,0,53,216,188,222,61,0,53,216,246,222,61,0,53,216,48,223,61,0,53,216,106,223,61,0,53,216,164,223,60,0,198,3,60,0,60,0,60,0,213,3,60,0,60,0,60,0,53,216,215,222,61,0,53,216,223,222,61,0,53,216,17,223,61,0,53,216,25,223,61,0,53,216,75,223,61,0,53,216,83,223,61,0,53,216,133,223,61,0,53,216,141,223,61,0,53,216,191,223,61,0,53,216,199,223,60,0,60,0,60,0,166,3,60,0,60,0,60,0,53,216,189,222,61,0,53,216,247,222,61,0,53,216,49,223,61,0,53,216,107,223,61,0,53,216,165,223,60,0,60,0,60,0,96,29,60,0,60,0,60,0,105,29,60,0,199,3,60,0,60,0,60,0,53,216,216,222,61,0,53,216,18,223,61,0,53,216,76,223,61,0,53,216,134,223,61,0,53,216,192,223,60,0,60,0,60,0,167,3,60,0,60,0,60,0,53,216,190,222,61,0,53,216,248,222,61,0,53,216,50,223,61,0,53,216,108,223,61,0,53,216,166,223,60,0,60,0,60,0,97,29,60,0,60,0,60,0,106,29,60,0,200,3,60,0,60,0,60,0,53,216,217,222,61,0,53,216,19,223,61,0,53,216,77,223,61,0,53,216,135,223,61,0,53,216,193,223,60,0,60,0,60,0,168,3,60,0,60,0,60,0,53,216,191,222,61,0,53,216,249,222,61,0,53,216,51,223,61,0,53,216,109,223,61,0,53,216,167,223,60,0,42,29,60,0,201,3,60,0,60,0,60,0,53,216,218,222,61,0,53,216,20,223,61,0,53,216,78,223,61,0,53,216,136,223,61,0,53,216,194,223,60,0,60,0,60,0,169,3,60,0,60,0,60,0,53,216,192,222,61,0,53,216,250,222,61,0,53,216,52,223,61,0,53,216,110,223,61,0,53,216,168,223,60,0,101,171,60,0,225,3,60,0,60,0,60,0,224,3,60,0,115,3,60,0,60,0,60,0,114,3,60,0,248,3,60,0,60,0,60,0,247,3,60,0,129,44,60,0,60,0,60,0,128,44,60,0,131,44,60,0,60,0,60,0,130,44,60,0,133,44,60,0,60,0,60,0,132,44,60,0,135,44,60,0,60,0,60,0,134,44,60,0,137,44,60,0,60,0,60,0,136,44,60,0,183,44,60,0,60,0,60,0,182,44,60,0,139,44,60,0,60,0,60,0,138,44,60,0,141,44,60,0,60,0,60,0,140,44,60,0,143,44,60,0,60,0,60,0,142,44,60,0,145,44,60,0,60,0,60,0,144,44,60,0,147,44,60,0,60,0,60,0,146,44,60,0,149,44,60,0,60,0,60,0,228,44,47,0,129,44,147,44,60,0,60,0,60,0,148,44,60,0,185,44,60,0,60,0,60,0,184,44,60,0,151,44,60,0,60,0,60,0,150,44,60,0,153,44,60,0,60,0,60,0,152,44,60,0,155,44,60,0,60,0,60,0,154,44,60,0,187,44,60,0,60,0,60,0,186,44,60,0,189,44,60,0,60,0,60,0,188,44,60,0,157,44,60,0,60,0,60,0,156,44,60,0,159,44,60,0,60,0,60,0,158,44,60,0,161,44,60,0,60,0,60,0,160,44,60,0,163,44,60,0,60,0,60,0,162,44,60,0,165,44,60,0,60,0,60,0,164,44,60,0,167,44,60,0,60,0,60,0,166,44,60,0,169,44,60,0,60,0,60,0,168,44,60,0,171,44,60,0,60,0,60,0,170,44,60,0,173,44,60,0,60,0,60,0,172,44,60,0,175,44,60,0,60,0,60,0,174,44,60,0,177,44,60,0,60,0,60,0,176,44,60,0,191,44,60,0,60,0,60,0,190,44,60,0,193,44,60,0,60,0,60,0,192,44,60,0,227,3,60,0,60,0,60,0,226,3,60,0,236,44,60,0,60,0,60,0,235,44,60,0,195,44,60,0,60,0,60,0,194,44,60,0,197,44,60,0,60,0,60,0,196,44,60,0,199,44,60,0,60,0,60,0,198,44,60,0,229,3,60,0,60,0,60,0,228,3,60,0,231,3,60,0,60,0,60,0,230,3,60,0,243,44,60,0,60,0,60,0,242,44,60,0,201,44,60,0,60,0,60,0,200,44,60,0,233,3,60,0,60,0,60,0,232,3,60,0,203,44,60,0,60,0,60,0,202,44,60,0,205,44,60,0,60,0,60,0,204,44,60,0,207,44,60,0,60,0,60,0,206,44,60,0,209,44,60,0,60,0,60,0,208,44,60,0,211,44,60,0,60,0,60,0,210,44,60,0,213,44,60,0,60,0,60,0,212,44,60,0,235,3,60,0,60,0,60,0,234,3,60,0,238,44,60,0,60,0,60,0,237,44,60,0,215,44,60,0,60,0,60,0,214,44,60,0,237,3,60,0,60,0,60,0,236,3,60,0,217,44,60,0,60,0,60,0,216,44,60,0,219,44,60,0,60,0,60,0,218,44,60,0,221,44,60,0,60,0,60,0,220,44,60,0,239,3,60,0,60,0,60,0,238,3,60,0,179,44,60,0,60,0,60,0,178,44,60,0,181,44,60,0,60,0,60,0,180,44,60,0,223,44,60,0,60,0,60,0,222,44,60,0,225,44,60,0,60,0,60,0,224,44,60,0,227,44,60,0,60,0,60,0,226,44,60,0,48,4,60,0,60,0,60,0,246,45,60,0,60,0,60,0,16,4,60,0,60,0,60,0,56,216,48,220,60,0,60,0,60,0,56,216,81,220,60,0,217,4,60,0,60,0,60,0,216,4,60,0,60,0,60,0,56,216,75,220,60,0,213,4,60,0,60,0,60,0,212,4,60,0,49,4,60,0,60,0,60,0,224,45,60,0,60,0,60,0,17,4,60,0,60,0,60,0,56,216,49,220,60,0,60,0,60,0,56,216,82,220,60,0,50,4,60,0,60,0,60,0,128,28,61,0,225,45,60,0,60,0,60,0,18,4,60,0,60,0,60,0,56,216,50,220,60,0,60,0,60,0,56,216,83,220,60,0,51,4,60,0,60,0,60,0,226,45,60,0,60,0,60,0,19,4,60,0,60,0,60,0,56,216,51,220,60,0,60,0,60,0,56,216,84,220,60,0,60,0,56,216,103,220,60,0,60,0,60,0,145,4,60,0,60,0,60,0,144,4,60,0,147,4,60,0,60,0,60,0,146,4,60,0,251,4,60,0,60,0,60,0,250,4,60,0,149,4,60,0,60,0,60,0,148,4,60,0,247,4,60,0,60,0,60,0,246,4,60,0,52,4,60,0,60,0,60,0,129,28,61,0,227,45,60,0,60,0,60,0,20,4,60,0,60,0,60,0,56,216,52,220,60,0,60,0,60,0,56,216,85,220,60,0,1,5,60,0,60,0,60,0,0,5,60,0,129,166,60,0,60,0,60,0,128,166,60,0,82,4,60,0,60,0,60,0,2,4,60,0,99,166,60,0,60,0,60,0,98,166,60,0,3,5,60,0,60,0,60,0,2,5,60,0,153,4,60,0,60,0,60,0,152,4,60,0,53,4,60,0,60,0,60,0,247,45,60,0,60,0,60,0,21,4,60,0,60,0,60,0,56,216,53,220,60,0,60,0,60,0,56,216,86,220,60,0,84,4,60,0,60,0,60,0,116,166,60,0,60,0,60,0,4,4,60,0,54,4,60,0,60,0,60,0,228,45,60,0,60,0,60,0,22,4,60,0,60,0,60,0,56,216,54,220,60,0,60,0,60,0,56,216,87,220,60,0,43,5,60,0,60,0,60,0,42,5,60,0,133,166,60,0,60,0,60,0,132,166,60,0,151,4,60,0,60,0,60,0,150,4,60,0,55,4,60,0,60,0,60,0,229,45,60,0,60,0,60,0,23,4,60,0,60,0,60,0,56,216,55,220,60,0,60,0,60,0,56,216,88,220,60,0,65,166,60,0,60,0,60,0,64,166,60,0,5,5,60,0,60,0,60,0,4,5,60,0,17,5,60,0,60,0,60,0,16,5,60,0,67,166,60,0,60,0,60,0,66,166,60,0,85,4,60,0,60,0,60,0,5,4,60,0,60,0,60,0,56,216,105,220,60,0,69,166,60,0,60,0,60,0,68,166,60,0,225,4,60,0,60,0,60,0,224,4,60,0,137,166,60,0,60,0,60,0,136,166,60,0,60,0,60,0,56,216,74,220,60,0,7,5,60,0,60,0,60,0,6,5,60,0,131,166,60,0,60,0,60,0,130,166,60,0,56,4,60,0,60,0,60,0,117,166,60,0,60,0,60,0,24,4,60,0,60,0,60,0,56,216,56,220,60,0,60,0,60,0,56,216,89,220,60,0,139,4,60,0,60,0,60,0,138,4,60,0,86,4,60,0,60,0,60,0,56,216,143,220,60,0,60,0,60,0,118,166,47,0,8,3,60,0,60,0,60,0,6,4,60,0,60,0,60,0,56,216,76,220,60,0,60,0,60,0,56,216,104,220,60,0,71,166,60,0,60,0,60,0,70,166,60,0,57,4,60,0,60,0,60,0,25,4,60,0,88,4,60,0,60,0,60,0,8,4,60,0,60,0,60,0,56,216,77,220,60,0,73,166,60,0,60,0,60,0,248,45,60,0,60,0,60,0,72,166,60,0,58,4,60,0,60,0,60,0,230,45,60,0,60,0,60,0,26,4,60,0,60,0,60,0,56,216,57,220,60,0,60,0,60,0,56,216,90,220,60,0,155,4,60,0,60,0,60,0,154,4,60,0,196,4,60,0,60,0,60,0,195,4,60,0,161,4,60,0,60,0,60,0,160,4,60,0,159,4,60,0,60,0,60,0,158,4,60,0,157,4,60,0,60,0,60,0,156,4,60,0,31,5,60,0,60,0,60,0,30,5,60,0,27,5,60,0,60,0,60,0,26,5,60,0,59,4,60,0,60,0,60,0,231,45,60,0,60,0,60,0,27,4,60,0,60,0,60,0,56,216,58,220,60,0,60,0,60,0,56,216,91,220,60,0,43,29,60,0,198,4,60,0,60,0,60,0,197,4,60,0,47,5,60,0,60,0,60,0,46,5,60,0,19,5,60,0,60,0,60,0,18,5,60,0,33,5,60,0,60,0,60,0,32,5,60,0,89,4,60,0,60,0,60,0,9,4,60,0,101,166,60,0,60,0,60,0,100,166,60,0,9,5,60,0,60,0,60,0,8,5,60,0,21,5,60,0,60,0,60,0,20,5,60,0,60,4,60,0,60,0,60,0,232,45,60,0,60,0,60,0,28,4,60,0,60,0,60,0,56,216,59,220,60,0,206,4,60,0,60,0,60,0,205,4,60,0,103,166,60,0,60,0,60,0,102,166,60,0,61,4,60,0,60,0,60,0,233,45,60,0,60,0,60,0,29,4,60,0,60,0,60,0,120,29,60,0,41,5,60,0,60,0,60,0,40,5,60,0,202,4,60,0,60,0,60,0,201,4,60,0,163,4,60,0,60,0,60,0,162,4,60,0,200,4,60,0,60,0,60,0,199,4,60,0,35,5,60,0,60,0,60,0,34,5,60,0,165,4,60,0,60,0,60,0,164,4,60,0,90,4,60,0,60,0,60,0,10,4,60,0,11,5,60,0,60,0,60,0,10,5,60,0,62,4,60,0,60,0,60,0,130,28,61,0,234,45,61,0,105,166,61,0,107,166,61,0,109,166,61,0,110,166,61,0,153,166,61,0,155,166,60,0,60,0,60,0,30,4,60,0,60,0,60,0,104,166,61,0,106,166,61,0,108,166,61,0,152,166,61,0,154,166,60,0,60,0,60,0,56,216,60,220,60,0,60,0,60,0,56,216,92,220,60,0,233,4,60,0,60,0,60,0,232,4,60,0,60,0,60,0,56,216,78,220,60,0,63,4,60,0,60,0,60,0,235,45,60,0,60,0,60,0,31,4,60,0,60,0,60,0,56,216,61,220,60,0,60,0,60,0,56,216,93,220,60,0,37,5,60,0,60,0,60,0,36,5,60,0,167,4,60,0,60,0,60,0,166,4,60,0,129,4,60,0,60,0,60,0,128,4,60,0,64,4,60,0,60,0,60,0,236,45,60,0,60,0,60,0,32,4,60,0,60,0,60,0,56,216,62,220,60,0,143,4,60,0,60,0,60,0,142,4,60,0,23,5,60,0,60,0,60,0,22,5,60,0,65,4,60,0,60,0,60,0,131,28,61,0,237,45,60,0,60,0,60,0,245,45,47,0,66,4,60,0,60,0,60,0,33,4,60,0,60,0,60,0,56,216,63,220,60,0,60,0,60,0,56,216,94,220,60,0,13,5,60,0,60,0,60,0,12,5,60,0,171,4,60,0,60,0,60,0,170,4,60,0,60,0,60,0,56,216,107,220,60,0,66,4,60,0,60,0,60,0,132,28,61,0,133,28,61,0,238,45,60,0,60,0,60,0,34,4,60,0,60,0,60,0,56,216,64,220,60,0,141,166,60,0,60,0,60,0,140,166,60,0,15,5,60,0,60,0,60,0,14,5,60,0,173,4,60,0,60,0,60,0,172,4,60,0,139,166,60,0,60,0,60,0,138,166,60,0,91,4,60,0,60,0,60,0,11,4,60,0,67,4,60,0,60,0,60,0,119,166,60,0,60,0,60,0,35,4,60,0,60,0,60,0,56,216,65,220,60,0,60,0,60,0,56,216,95,220,60,0,175,4,60,0,60,0,60,0,174,4,60,0,60,0,60,0,56,216,79,220,60,0,177,4,60,0,60,0,60,0,176,4,60,0,60,0,60,0,56,216,109,220,60,0,75,166,60,0,60,0,60,0,136,28,61,0,249,45,60,0,60,0,60,0,74,166,60,0,121,4,60,0,60,0,60,0,120,4,60,0,68,4,60,0,60,0,60,0,158,166,60,0,60,0,60,0,36,4,60,0,60,0,60,0,56,216,66,220,60,0,60,0,60,0,56,216,96,220,60,0,69,4,60,0,60,0,60,0,239,45,60,0,60,0,60,0,37,4,60,0,60,0,60,0,56,216,67,220,60,0,60,0,60,0,56,216,97,220,60,0,253,4,60,0,60,0,60,0,252,4,60,0,255,4,60,0,60,0,60,0,254,4,60,0,179,4,60,0,60,0,60,0,178,4,60,0,187,4,60,0,60,0,60,0,186,4,60,0,39,5,60,0,60,0,60,0,38,5,60,0,149,166,60,0,60,0,60,0,148,166,60,0,97,4,60,0,60,0,60,0,123,166,60,0,60,0,60,0,96,4,60,0,127,4,60,0,60,0,60,0,126,4,60,0,77,166,60,0,60,0,60,0,76,166,60,0,125,4,60,0,60,0,60,0,124,4,60,0,123,4,60,0,60,0,60,0,122,4,60,0,70,4,60,0,60,0,60,0,240,45,60,0,60,0,60,0,38,4,60,0,60,0,60,0,56,216,68,220,60,0,60,0,60,0,56,216,98,220,60,0,97,166,60,0,60,0,60,0,96,166,60,0,143,166,60,0,60,0,60,0,142,166,60,0,181,4,60,0,60,0,60,0,180,4,60,0,145,166,60,0,60,0,60,0,144,166,60,0,71,4,60,0,60,0,60,0,241,45,60,0,60,0,60,0,39,4,60,0,60,0,60,0,56,216,69,220,60,0,60,0,60,0,56,216,99,220,60,0,45,5,60,0,60,0,60,0,44,5,60,0,147,166,60,0,60,0,60,0,146,166,60,0,183,4,60,0,60,0,60,0,182,4,60,0,204,4,60,0,60,0,60,0,203,4,60,0,185,4,60,0,60,0,60,0,184,4,60,0,135,166,60,0,60,0,60,0,134,166,60,0,189,4,60,0,60,0,60,0,188,4,60,0,191,4,60,0,60,0,60,0,190,4,60,0,95,4,60,0,60,0,60,0,15,4,60,0,60,0,60,0,56,216,106,220,60,0,72,4,60,0,60,0,60,0,242,45,60,0,60,0,60,0,40,4,60,0,60,0,60,0,56,216,70,220,60,0,60,0,60,0,56,216,100,220,60,0,151,166,60,0,60,0,60,0,150,166,60,0,73,4,60,0,60,0,60,0,243,45,60,0,60,0,60,0,41,4,60,0,79,166,60,0,60,0,60,0,78,166,60,0,47,46,60,0,127,166,60,0,74,4,60,0,60,0,60,0,134,28,61,0,120,166,60,0,60,0,60,0,42,4,60,0,60,0,60,0,156,166,60,0,60,0,60,0,56,216,101,220,60,0,81,166,60,0,60,0,60,0,80,166,60,0,60,0,60,0,56,216,108,220,60,0,75,4,60,0,60,0,60,0,121,166,60,0,60,0,60,0,43,4,60,0,60,0,60,0,56,216,71,220,60,0,60,0,60,0,56,216,102,220,60,0,76,4,60,0,60,0,60,0,122,166,60,0,60,0,60,0,44,4,60,0,60,0,60,0,157,166,60,0,141,4,60,0,60,0,60,0,140,4,60,0,99,4,60,0,60,0,60,0,135,28,61,0,250,45,60,0,60,0,60,0,98,4,60,0,83,166,60,0,60,0,60,0,82,166,60,0,77,4,60,0,60,0,60,0,45,4,60,0,60,0,60,0,56,216,72,220,60,0,78,4,60,0,60,0,60,0,251,45,60,0,60,0,60,0,46,4,60,0,60,0,60,0,56,216,73,220,60,0,85,166,60,0,60,0,60,0,84,166,60,0,87,166,60,0,60,0,60,0,252,45,60,0,60,0,60,0,86,166,60,0,79,4,60,0,60,0,60,0,47,4,60,0,25,5,60,0,60,0,60,0,24,5,60,0,101,4,60,0,60,0,60,0,159,166,60,0,60,0,60,0,100,4,60,0,103,4,60,0,60,0,60,0,253,45,60,0,60,0,60,0,102,4,60,0,89,166,60,0,60,0,60,0,88,166,60,0,107,4,60,0,60,0,60,0,254,45,60,0,60,0,60,0,106,4,60,0,91,166,60,0,60,0,60,0,90,166,60,0,105,4,60,0,60,0,60,0,104,4,60,0,93,166,60,0,60,0,60,0,92,166,60,0,109,4,60,0,60,0,60,0,255,45,60,0,60,0,60,0,108,4,60,0,111,4,60,0,60,0,60,0,110,4,60,0,113,4,60,0,60,0,60,0,112,4,60,0,115,4,60,0,60,0,60,0,244,45,60,0,60,0,60,0,114,4,60,0,117,4,60,0,60,0,60,0,116,4,60,0,95,166,60,0,60,0,60,0,94,166,60,0,169,4,60,0,60,0,60,0,168,4,60,0,29,5,60,0,60,0,60,0,28,5,60,0,207,4,60,0,60,0,60,0,192,4,60,0,60,0,60,0,56,216,80,220,60,0,48,44,60,0,60,0,60,0,56,216,0,220,60,0,60,0,60,0,0,44,60,0,49,44,60,0,60,0,60,0,56,216,1,220,60,0,60,0,60,0,1,44,60,0,50,44,60,0,60,0,60,0,56,216,2,220,60,0,60,0,60,0,2,44,60,0,51,44,60,0,60,0,60,0,56,216,3,220,60,0,60,0,60,0,3,44,60,0,52,44,60,0,60,0,60,0,56,216,4,220,60,0,60,0,60,0,4,44,60,0,53,44,60,0,60,0,60,0,56,216,5,220,60,0,60,0,60,0,5,44,60,0,54,44,60,0,60,0,60,0,56,216,6,220,60,0,60,0,60,0,6,44,60,0,55,44,60,0,60,0,60,0,7,44,60,0,56,44,60,0,60,0,60,0,56,216,8,220,60,0,60,0,60,0,8,44,60,0,57,44,60,0,60,0,60,0,56,216,9,220,60,0,60,0,60,0,9,44,60,0,58,44,60,0,60,0,60,0,56,216,10,220,60,0,60,0,60,0,10,44,60,0,59,44,60,0,60,0,60,0,56,216,11,220,60,0,60,0,60,0,11,44,60,0,60,44,60,0,60,0,60,0,56,216,12,220,60,0,60,0,60,0,12,44,60,0,61,44,60,0,60,0,60,0,56,216,13,220,60,0,60,0,60,0,13,44,60,0,62,44,60,0,60,0,60,0,56,216,14,220,60,0,60,0,60,0,14,44,60,0,63,44,60,0,60,0,60,0,56,216,15,220,60,0,60,0,60,0,15,44,60,0,64,44,60,0,60,0,60,0,56,216,16,220,60,0,60,0,60,0,16,44,60,0,65,44,60,0,60,0,60,0,56,216,17,220,60,0,60,0,60,0,17,44,60,0,66,44,60,0,60,0,60,0,56,216,18,220,60,0,60,0,60,0,18,44,60,0,67,44,60,0,60,0,60,0,56,216,19,220,60,0,60,0,60,0,19,44,60,0,68,44,60,0,60,0,60,0,56,216,20,220,60,0,60,0,60,0,20,44,60,0,69,44,60,0,60,0,60,0,56,216,21,220,60,0,60,0,60,0,21,44,60,0,70,44,60,0,60,0,60,0,56,216,22,220,60,0,60,0,60,0,22,44,60,0,71,44,60,0,60,0,60,0,56,216,23,220,60,0,60,0,60,0,23,44,60,0,72,44,60,0,60,0,60,0,56,216,24,220,60,0,60,0,60,0,24,44,60,0,73,44,60,0,60,0,60,0,25,44,60,0,74,44,60,0,60,0,60,0,26,44,60,0,75,44,60,0,60,0,60,0,56,216,27,220,60,0,60,0,60,0,27,44,60,0,76,44,60,0,60,0,60,0,56,216,28,220,60,0,60,0,60,0,28,44,60,0,77,44,60,0,60,0,60,0,56,216,29,220,60,0,60,0,60,0,29,44,60,0,78,44,60,0,60,0,60,0,56,216,30,220,60,0,60,0,60,0,30,44,60,0,79,44,60,0,60,0,60,0,56,216,31,220,60,0,60,0,60,0,31,44,60,0,80,44,60,0,60,0,60,0,56,216,32,220,60,0,60,0,60,0,32,44,60,0,81,44,60,0,60,0,60,0,56,216,33,220,60,0,60,0,60,0,33,44,60,0,82,44,60,0,60,0,60,0,34,44,60,0,83,44,60,0,60,0,60,0,56,216,35,220,60,0,60,0,60,0,35,44,60,0,84,44,60,0,60,0,60,0,56,216,36,220,60,0,60,0,60,0,36,44,60,0,85,44,60,0,60,0,60,0,37,44,60,0,86,44,60,0,60,0,60,0,56,216,38,220,60,0,60,0,60,0,38,44,60,0,87,44,60,0,60,0,60,0,56,216,39,220,60,0,60,0,60,0,39,44,60,0,88,44,60,0,60,0,60,0,56,216,40,220,60,0,60,0,60,0,40,44,60,0,89,44,60,0,60,0,60,0,56,216,41,220,60,0,60,0,60,0,41,44,60,0,90,44,60,0,60,0,60,0,56,216,42,220,60,0,60,0,60,0,42,44,60,0,91,44,60,0,60,0,60,0,43,44,60,0,92,44,60,0,60,0,60,0,44,44,60,0,93,44,60,0,60,0,60,0,45,44,60,0,94,44,60,0,60,0,60,0,46,44,60,0,95,44,60,0,60,0,60,0,47,44,60,0,0,216,80,223,60,0,60,0,60,0,0,216,118,223,60,0,0,216,81,223,60,0,0,216,82,223,60,0,0,216,83,223,60,0,60,0,60,0,0,216,119,223,60,0,0,216,84,223,60,0,0,216,85,223,60,0,0,216,86,223,60,0,0,216,87,223,60,0,60,0,60,0,0,216,120,223,60,0,0,216,88,223,60,0,0,216,89,223,60,0,0,216,90,223,60,0,0,216,91,223,60,0,0,216,92,223,60,0,0,216,93,223,60,0,60,0,60,0,0,216,121,223,60,0,0,216,94,223,60,0,0,216,95,223,60,0,0,216,96,223,60,0,0,216,97,223,60,0,60,0,60,0,0,216,122,223,60,0,0,216,98,223,60,0,0,216,99,223,60,0,0,216,100,223,60,0,0,216,101,223,60,0,0,216,102,223,60,0,0,216,103,223,60,0,0,216,104,223,60,0,0,216,105,223,60,0,0,216,106,223,60,0,0,216,107,223,60,0,0,216,108,223,60,0,0,216,109,223,60,0,0,216,110,223,60,0,0,216,111,223,60,0,0,216,112,223,60,0,0,216,113,223,60,0,0,216,114,223,60,0,0,216,115,223,60,0,0,216,116,223,60,0,0,216,117,223,60,0,208,16,60,0,60,0,60,0,144,28,60,0,0,45,60,0,60,0,60,0,160,16,60,0,209,16,60,0,60,0,60,0,145,28,60,0,1,45,60,0,60,0,60,0,161,16,60,0,210,16,60,0,60,0,60,0,146,28,60,0,2,45,60,0,60,0,60,0,162,16,60,0,211,16,60,0,60,0,60,0,147,28,60,0,3,45,60,0,60,0,60,0,163,16,60,0,212,16,60,0,60,0,60,0,148,28,60,0,4,45,60,0,60,0,60,0,164,16,60,0,213,16,60,0,60,0,60,0,149,28,60,0,5,45,60,0,60,0,60,0,165,16,60,0,214,16,60,0,60,0,60,0,150,28,60,0,6,45,60,0,60,0,60,0,166,16,60,0,241,16,60,0,60,0,60,0,177,28,60,0,33,45,60,0,60,0,60,0,193,16,60,0,215,16,60,0,60,0,60,0,151,28,60,0,7,45,60,0,60,0,60,0,167,16,60,0,216,16,60,0,60,0,60,0,152,28,60,0,8,45,60,0,60,0,60,0,168,16,60,0,217,16,60,0,60,0,60,0,153,28,60,0,9,45,60,0,60,0,60,0,169,16,60,0,218,16,60,0,60,0,60,0,154,28,60,0,10,45,60,0,60,0,60,0,170,16,60,0,219,16,60,0,60,0,60,0,155,28,60,0,11,45,60,0,60,0,60,0,171,16,60,0,220,16,60,0,60,0,60,0,156,28,60,0,60,0,60,0,252,16,60,0,12,45,60,0,60,0,60,0,172,16,60,0,242,16,60,0,60,0,60,0,178,28,60,0,34,45,60,0,60,0,60,0,194,16,60,0,221,16,60,0,60,0,60,0,157,28,60,0,13,45,60,0,60,0,60,0,173,16,60,0,222,16,60,0,60,0,60,0,158,28,60,0,14,45,60,0,60,0,60,0,174,16,60,0,223,16,60,0,60,0,60,0,159,28,60,0,15,45,60,0,60,0,60,0,175,16,60,0,224,16,60,0,60,0,60,0,160,28,60,0,16,45,60,0,60,0,60,0,176,16,60,0,225,16,60,0,60,0,60,0,161,28,60,0,17,45,60,0,60,0,60,0,177,16,60,0,226,16,60,0,60,0,60,0,162,28,60,0,18,45,60,0,60,0,60,0,178,16,60,0,243,16,60,0,60,0,60,0,179,28,60,0,35,45,60,0,60,0,60,0,195,16,60,0,227,16,60,0,60,0,60,0,163,28,60,0,19,45,60,0,60,0,60,0,179,16,60,0,228,16,60,0,60,0,60,0,164,28,60,0,20,45,60,0,60,0,60,0,180,16,60,0,229,16,60,0,60,0,60,0,165,28,60,0,21,45,60,0,60,0,60,0,181,16,60,0,230,16,60,0,60,0,60,0,166,28,60,0,22,45,60,0,60,0,60,0,182,16,60,0,231,16,60,0,60,0,60,0,167,28,60,0,23,45,60,0,60,0,60,0,183,16,60,0,232,16,60,0,60,0,60,0,168,28,60,0,24,45,60,0,60,0,60,0,184,16,60,0,233,16,60,0,60,0,60,0,169,28,60,0,25,45,60,0,60,0,60,0,185,16,60,0,234,16,60,0,60,0,60,0,170,28,60,0,26,45,60,0,60,0,60,0,186,16,60,0,235,16,60,0,60,0,60,0,171,28,60,0,27,45,60,0,60,0,60,0,187,16,60,0,236,16,60,0,60,0,60,0,172,28,60,0,28,45,60,0,60,0,60,0,188,16,60,0,237,16,60,0,60,0,60,0,173,28,60,0,29,45,60,0,60,0,60,0,189,16,60,0,238,16,60,0,60,0,60,0,174,28,60,0,30,45,60,0,60,0,60,0,190,16,60,0,244,16,60,0,60,0,60,0,180,28,60,0,36,45,60,0,60,0,60,0,196,16,60,0,239,16,60,0,60,0,60,0,175,28,60,0,31,45,60,0,60,0,60,0,191,16,60,0,240,16,60,0,60,0,60,0,176,28,60,0,32,45,60,0,60,0,60,0,192,16,60,0,245,16,60,0,60,0,60,0,181,28,60,0,37,45,60,0,60,0,60,0,197,16,60,0,246,16,60,0,60,0,60,0,182,28,60,0,247,16,60,0,60,0,60,0,183,28,60,0,39,45,60,0,60,0,60,0,199,16,60,0,248,16,60,0,60,0,60,0,184,28,60,0,249,16,60,0,60,0,60,0,185,28,60,0,250,16,60,0,60,0,60,0,186,28,60,0,253,16,60,0,60,0,60,0,189,28,60,0,45,45,60,0,60,0,60,0,205,16,60,0,254,16,60,0,60,0,60,0,190,28,60,0,255,16,60,0,60,0,60,0,191,28,60,0,97,5,60,0,60,0,60,0,49,5,60,0,96,5,60,0,98,5,60,0,60,0,60,0,50,5,60,0,99,5,60,0,60,0,60,0,51,5,60,0,100,5,60,0,60,0,60,0,52,5,60,0,101,5,60,0,60,0,60,0,135,5,47,0,130,5,60,0,60,0,60,0,53,5,60,0,102,5,60,0,60,0,60,0,54,5,60,0,103,5,60,0,60,0,60,0,55,5,60,0,104,5,60,0,60,0,60,0,56,5,60,0,105,5,60,0,60,0,60,0,57,5,60,0,106,5,60,0,60,0,60,0,58,5,60,0,107,5,60,0,60,0,60,0,59,5,60,0,108,5,60,0,60,0,60,0,60,5,60,0,109,5,60,0,60,0,60,0,61,5,60,0,110,5,60,0,60,0,60,0,62,5,60,0,111,5,60,0,60,0,60,0,63,5,60,0,112,5,60,0,60,0,60,0,64,5,60,0,113,5,60,0,60,0,60,0,65,5,60,0,114,5,60,0,60,0,60,0,66,5,60,0,115,5,60,0,60,0,60,0,67,5,60,0,116,5,60,0,60,0,60,0,20,251,47,0,101,5,60,0,60,0,60,0,21,251,47,0,107,5,60,0,60,0,60,0,23,251,47,0,109,5,60,0,60,0,60,0,19,251,47,0,118,5,60,0,60,0,60,0,68,5,60,0,117,5,60,0,60,0,60,0,69,5,60,0,136,5,60,0,118,5,60,0,60,0,60,0,70,5,60,0,119,5,60,0,60,0,60,0,71,5,60,0,120,5,60,0,60,0,60,0,72,5,60,0,121,5,60,0,60,0,60,0,73,5,60,0,122,5,60,0,60,0,60,0,74,5,60,0,123,5,60,0,60,0,60,0,75,5,60,0,124,5,60,0,60,0,60,0,76,5,60,0,125,5,60,0,60,0,60,0,77,5,60,0,126,5,60,0,60,0,60,0,22,251,47,0,118,5,60,0,60,0,60,0,78,5,60,0,127,5,60,0,60,0,60,0,79,5,60,0,128,5,60,0,60,0,60,0,80,5,60,0,129,5,60,0,60,0,60,0,81,5,60,0,130,5,60,0,60,0,60,0,82,5,60,0,131,5,60,0,60,0,60,0,83,5,60,0,132,5,60,0,60,0,60,0,84,5,60,0,133,5,60,0,60,0,60,0,85,5,60,0,134,5,60,0,60,0,60,0,86,5,60,0,89,5,60,0,14,32,208,5,14,32,60,0,60,0,60,0,53,33,60,0,60,0,60,0,14,32,79,251,14,32,47,0,14,32,220,5,14,32,60,0,60,0,60,0,14,32,33,251,14,32,60,0,14,32,209,5,14,32,60,0,60,0,60,0,54,33,60,0,14,32,210,5,14,32,60,0,60,0,60,0,55,33,60,0,14,32,211,5,14,32,60,0,60,0,60,0,56,33,60,0,60,0,60,0,14,32,34,251,14,32,60,0,14,32,212,5,14,32,60,0,60,0,60,0,14,32,35,251,14,32,60,0,14,32,213,5,14,32,60,0,60,0,60,0,14,32,240,5,14,32,47,0,14,32,213,5,14,32,60,0,60,0,60,0,14,32,241,5,14,32,47,0,14,32,217,5,14,32,60,0,14,32,214,5,14,32,60,0,14,32,215,5,14,32,60,0,14,32,216,5,14,32,60,0,14,32,217,5,14,32,60,0,60,0,60,0,14,32,239,5,14,32,47,0,14,32,212,5,213,5,212,5,14,32,60,0,60,0,60,0,14,32,242,5,14,32,47,0,14,32,217,5,14,32,60,0,14,32,219,5,14,32,60,0,60,0,60,0,14,32,36,251,14,32,60,0,60,0,60,0,14,32,218,5,14,32,60,0,14,32,220,5,14,32,60,0,60,0,60,0,14,32,37,251,14,32,60,0,14,32,222,5,14,32,60,0,60,0,60,0,14,32,38,251,14,32,60,0,60,0,60,0,14,32,221,5,14,32,60,0,14,32,224,5,14,32,60,0,60,0,60,0,14,32,223,5,14,32,60,0,14,32,225,5,14,32,60,0,14,32,226,5,14,32,60,0,60,0,60,0,14,32,32,251,14,32,60,0,14,32,228,5,14,32,60,0,60,0,60,0,14,32,227,5,14,32,60,0,14,32,230,5,14,32,60,0,60,0,60,0,14,32,229,5,14,32,60,0,14,32,231,5,14,32,60,0,14,32,232,5,14,32,60,0,60,0,60,0,14,32,39,251,14,32,60,0,14,32,233,5,14,32,60,0,14,32,234,5,14,32,60,0,60,0,60,0,14,32,40,251,14,32,60,0,14,32,2,216,0,221,14,32,60,0,14,32,2,216,1,221,14,32,60,0,14,32,2,216,2,221,14,32,60,0,14,32,2,216,3,221,14,32,60,0,14,32,2,216,4,221,14,32,60,0,14,32,2,216,5,221,14,32,60,0,14,32,2,216,6,221,14,32,60,0,14,32,2,216,7,221,14,32,60,0,14,32,2,216,8,221,14,32,60,0,14,32,2,216,9,221,14,32,60,0,14,32,2,216,10,221,14,32,60,0,14,32,2,216,11,221,14,32,60,0,14,32,2,216,12,221,14,32,60,0,14,32,2,216,13,221,14,32,60,0,14,32,2,216,14,221,14,32,60,0,14,32,2,216,15,221,14,32,60,0,14,32,2,216,16,221,14,32,60,0,14,32,2,216,17,221,14,32,60,0,14,32,2,216,18,221,14,32,60,0,14,32,2,216,19,221,14,32,60,0,14,32,2,216,20,221,14,32,60,0,14,32,2,216,21,221,14,32,60,0,14,32,0,8,14,32,60,0,14,32,1,8,14,32,60,0,14,32,2,8,14,32,60,0,14,32,3,8,14,32,60,0,14,32,4,8,14,32,60,0,14,32,5,8,14,32,60,0,14,32,6,8,14,32,60,0,14,32,7,8,14,32,60,0,14,32,8,8,14,32,60,0,14,32,9,8,14,32,60,0,14,32,10,8,14,32,60,0,14,32,11,8,14,32,60,0,14,32,12,8,14,32,60,0,14,32,13,8,14,32,60,0,14,32,14,8,14,32,60,0,14,32,15,8,14,32,60,0,14,32,16,8,14,32,60,0,14,32,17,8,14,32,60,0,14,32,18,8,14,32,60,0,14,32,19,8,14,32,60,0,14,32,20,8,14,32,60,0,14,32,21,8,14,32,60,0,22,8,60,0,23,8,60,0,14,32,26,8,14,32,60,0,27,8,60,0,14,32,33,6,14,32,60,0,60,0,60,0,14,32,116,6,14,32,61,0,14,32,131,8,14,32,61,0,14,32,135,8,14,32,60,0,60,0,60,0,14,32,117,6,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,118,6,14,32,47,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,119,6,14,32,47,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,120,6,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,128,254,14,32,60,0,60,0,60,0,14,32,221,251,14,32,47,0,14,32,199,6,14,32,60,0,60,0,14,32,253,6,14,32,60,0,14,32,34,6,14,32,60,0,60,0,60,0,14,32,130,254,14,32,60,0,60,0,60,0,14,32,129,254,14,32,60,0,14,32,35,6,14,32,60,0,60,0,60,0,14,32,132,254,14,32,60,0,60,0,60,0,14,32,131,254,14,32,60,0,14,32,114,6,14,32,60,0,14,32,113,6,14,32,60,0,60,0,60,0,14,32,81,251,14,32,60,0,60,0,60,0,14,32,80,251,14,32,60,0,14,32,36,6,14,32,60,0,60,0,60,0,14,32,134,254,14,32,60,0,60,0,60,0,14,32,133,254,14,32,60,0,14,32,37,6,14,32,60,0,60,0,60,0,14,32,136,254,14,32,60,0,60,0,60,0,14,32,135,254,14,32,60,0,14,32,115,6,14,32,60,0,14,32,115,7,14,32,60,0,14,32,116,7,14,32,60,0,14,32,38,6,14,32,60,0,60,0,60,0,14,32,139,254,14,32,60,0,60,0,60,0,14,32,151,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,152,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,153,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,154,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,155,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,251,251,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,248,251,14,32,47,0,14,32,208,6,14,32,60,0,60,0,60,0,14,32,140,254,14,32,60,0,60,0,60,0,14,32,223,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,224,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,138,254,14,32,60,0,60,0,60,0,14,32,235,251,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,100,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,101,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,102,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,103,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,237,251,14,32,47,0,14,32,213,6,14,32,60,0,60,0,60,0,14,32,239,251,14,32,47,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,243,251,14,32,47,0,14,32,198,6,14,32,60,0,60,0,60,0,14,32,241,251,14,32,47,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,245,251,14,32,47,0,14,32,200,6,14,32,60,0,60,0,60,0,14,32,250,251,14,32,47,0,14,32,73,6,14,32,61,0,14,32,104,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,105,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,247,251,14,32,47,0,14,32,208,6,14,32,60,0,60,0,60,0,14,32,137,254,14,32,60,0,60,0,60,0,14,32,234,251,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,0,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,1,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,2,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,236,251,14,32,47,0,14,32,213,6,14,32,60,0,60,0,60,0,14,32,238,251,14,32,47,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,242,251,14,32,47,0,14,32,198,6,14,32,60,0,60,0,60,0,14,32,240,251,14,32,47,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,244,251,14,32,47,0,14,32,200,6,14,32,60,0,60,0,60,0,14,32,249,251,14,32,47,0,14,32,73,6,14,32,61,0,14,32,3,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,4,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,246,251,14,32,47,0,14,32,208,6,14,32,60,0,14,32,168,8,14,32,60,0,14,32,169,8,14,32,60,0,14,32,172,8,14,32,60,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,112,8,14,32,61,0,14,32,113,8,14,32,61,0,14,32,114,8,14,32,61,0,14,32,115,8,14,32,61,0,14,32,116,8,14,32,61,0,14,32,117,8,14,32,61,0,14,32,118,8,14,32,61,0,14,32,119,8,14,32,61,0,14,32,120,8,14,32,61,0,14,32,121,8,14,32,61,0,14,32,122,8,14,32,61,0,14,32,123,8,14,32,61,0,14,32,124,8,14,32,61,0,14,32,125,8,14,32,61,0,14,32,126,8,14,32,61,0,14,32,127,8,14,32,61,0,14,32,128,8,14,32,61,0,14,32,129,8,14,32,61,0,14,32,130,8,14,32,61,0,14,32,173,8,14,32,60,0,60,0,60,0,14,32,59,216,0,222,14,32,61,0,14,32,59,216,128,222,14,32,60,0,60,0,60,0,14,32,142,254,14,32,60,0,60,0,60,0,14,32,60,253,14,32,47,0,75,6,60,0,60,0,60,0,14,32,141,254,14,32,60,0,60,0,60,0,14,32,61,253,14,32,47,0,75,6,60,0,60,0,60,0,14,32,243,253,14,32,47,0,14,32,67,6,40,6,49,6,14,32,60,0,60,0,60,0,14,32,242,253,14,32,47,0,14,32,68,6,68,6,71,6,14,32,60,0,14,32,110,6,14,32,60,0,60,0,60,0,14,32,59,216,28,222,14,32,61,0,14,32,59,216,124,222,14,32,60,0,14,32,40,6,14,32,60,0,60,0,60,0,14,32,59,216,1,222,14,32,61,0,14,32,59,216,33,222,14,32,61,0,14,32,59,216,97,222,14,32,61,0,14,32,59,216,129,222,14,32,61,0,14,32,59,216,161,222,14,32,60,0,60,0,60,0,14,32,145,254,14,32,60,0,60,0,60,0,14,32,156,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,157,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,158,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,159,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,160,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,146,254,14,32,60,0,60,0,60,0,14,32,225,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,226,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,144,254,14,32,60,0,60,0,60,0,14,32,194,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,158,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,106,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,107,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,108,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,109,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,110,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,111,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,143,254,14,32,60,0,60,0,60,0,14,32,5,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,6,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,7,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,8,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,9,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,10,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,123,6,14,32,60,0,60,0,60,0,14,32,84,251,14,32,60,0,60,0,60,0,14,32,85,251,14,32,60,0,60,0,60,0,14,32,83,251,14,32,60,0,60,0,60,0,14,32,82,251,14,32,60,0,14,32,126,6,14,32,60,0,60,0,60,0,14,32,88,251,14,32,60,0,60,0,60,0,14,32,89,251,14,32,60,0,60,0,60,0,14,32,87,251,14,32,60,0,60,0,60,0,14,32,86,251,14,32,60,0,14,32,128,6,14,32,60,0,60,0,60,0,14,32,92,251,14,32,60,0,60,0,60,0,14,32,93,251,14,32,60,0,60,0,60,0,14,32,91,251,14,32,60,0,60,0,60,0,14,32,90,251,14,32,60,0,14,32,80,7,14,32,60,0,14,32,81,7,14,32,60,0,14,32,82,7,14,32,60,0,14,32,83,7,14,32,60,0,14,32,84,7,14,32,60,0,14,32,85,7,14,32,60,0,14,32,160,8,14,32,60,0,14,32,86,7,14,32,60,0,14,32,190,8,14,32,60,0,14,32,161,8,14,32,60,0,14,32,182,8,14,32,60,0,14,32,183,8,14,32,60,0,14,32,41,6,14,32,60,0,60,0,60,0,14,32,148,254,14,32,60,0,60,0,60,0,14,32,147,254,14,32,60,0,14,32,42,6,14,32,60,0,60,0,60,0,14,32,59,216,21,222,14,32,61,0,14,32,59,216,53,222,14,32,61,0,14,32,59,216,117,222,14,32,61,0,14,32,59,216,149,222,14,32,61,0,14,32,59,216,181,222,14,32,60,0,60,0,60,0,14,32,151,254,14,32,60,0,60,0,60,0,14,32,161,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,80,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,162,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,82,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,83,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,163,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,84,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,164,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,85,253,14,32,47,0,14,32,69,6,44,6,14,32,60,0,60,0,60,0,14,32,86,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,87,253,14,32,47,0,14,32,69,6,46,6,14,32,60,0,60,0,60,0,14,32,165,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,152,254,14,32,60,0,60,0,60,0,14,32,227,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,228,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,150,254,14,32,60,0,60,0,60,0,14,32,160,253,14,32,47,0,14,32,44,6,73,6,14,32,60,0,60,0,60,0,14,32,159,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,81,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,162,253,14,32,47,0,14,32,46,6,73,6,14,32,60,0,60,0,60,0,14,32,161,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,112,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,113,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,114,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,164,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,163,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,115,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,116,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,117,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,149,254,14,32,60,0,60,0,60,0,14,32,11,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,12,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,13,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,14,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,15,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,16,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,43,6,14,32,60,0,60,0,60,0,14,32,59,216,22,222,14,32,61,0,14,32,59,216,54,222,14,32,61,0,14,32,59,216,118,222,14,32,61,0,14,32,59,216,150,222,14,32,61,0,14,32,59,216,182,222,14,32,60,0,60,0,60,0,14,32,155,254,14,32,60,0,60,0,60,0,14,32,166,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,156,254,14,32,60,0,60,0,60,0,14,32,229,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,230,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,154,254,14,32,60,0,60,0,60,0,14,32,118,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,119,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,120,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,121,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,122,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,123,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,153,254,14,32,60,0,60,0,60,0,14,32,17,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,18,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,19,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,20,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,121,6,14,32,60,0,60,0,60,0,14,32,104,251,14,32,60,0,60,0,60,0,14,32,105,251,14,32,60,0,60,0,60,0,14,32,103,251,14,32,60,0,60,0,60,0,14,32,102,251,14,32,60,0,14,32,122,6,14,32,60,0,60,0,60,0,14,32,96,251,14,32,60,0,60,0,60,0,14,32,97,251,14,32,60,0,60,0,60,0,14,32,95,251,14,32,60,0,60,0,60,0,14,32,94,251,14,32,60,0,14,32,124,6,14,32,60,0,14,32,125,6,14,32,60,0,14,32,127,6,14,32,60,0,60,0,60,0,14,32,100,251,14,32,60,0,60,0,60,0,14,32,101,251,14,32,60,0,60,0,60,0,14,32,99,251,14,32,60,0,60,0,60,0,14,32,98,251,14,32,60,0,14,32,184,8,14,32,60,0,14,32,191,8,14,32,60,0,14,32,192,8,14,32,60,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,59,216,2,222,14,32,61,0,14,32,59,216,34,222,14,32,61,0,14,32,59,216,66,222,14,32,61,0,14,32,59,216,98,222,14,32,61,0,14,32,59,216,130,222,14,32,61,0,14,32,59,216,162,222,14,32,60,0,60,0,60,0,14,32,159,254,14,32,60,0,60,0,60,0,14,32,167,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,168,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,89,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,160,254,14,32,60,0,60,0,60,0,14,32,158,254,14,32,60,0,60,0,60,0,14,32,166,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,190,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,88,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,167,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,165,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,29,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,30,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,157,254,14,32,60,0,60,0,60,0,14,32,21,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,251,253,14,32,47,0,14,32,68,6,39,0,32,0,39,0,44,6,68,6,39,6,68,6,71,6,14,32,60,0,60,0,60,0,14,32,22,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,1,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,2,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,131,6,14,32,60,0,60,0,60,0,14,32,120,251,14,32,60,0,60,0,60,0,14,32,121,251,14,32,60,0,60,0,60,0,14,32,119,251,14,32,60,0,60,0,60,0,14,32,118,251,14,32,60,0,14,32,132,6,14,32,60,0,60,0,60,0,14,32,116,251,14,32,60,0,60,0,60,0,14,32,117,251,14,32,60,0,60,0,60,0,14,32,115,251,14,32,60,0,60,0,60,0,14,32,114,251,14,32,60,0,14,32,138,8,14,32,60,0,14,32,134,6,14,32,60,0,60,0,60,0,14,32,124,251,14,32,60,0,60,0,60,0,14,32,125,251,14,32,60,0,60,0,60,0,14,32,123,251,14,32,60,0,60,0,60,0,14,32,122,251,14,32,60,0,14,32,191,6,14,32,60,0,14,32,135,6,14,32,60,0,60,0,60,0,14,32,128,251,14,32,60,0,60,0,60,0,14,32,129,251,14,32,60,0,60,0,60,0,14,32,127,251,14,32,60,0,60,0,60,0,14,32,126,251,14,32,60,0,14,32,162,8,14,32,60,0,14,32,193,8,14,32,60,0,14,32,197,8,14,32,60,0,14,32,198,8,14,32,60,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,59,216,7,222,14,32,61,0,14,32,59,216,39,222,14,32,61,0,14,32,59,216,71,222,14,32,61,0,14,32,59,216,103,222,14,32,61,0,14,32,59,216,135,222,14,32,61,0,14,32,59,216,167,222,14,32,60,0,60,0,60,0,14,32,163,254,14,32,60,0,60,0,60,0,14,32,169,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,170,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,164,254,14,32,60,0,60,0,60,0,14,32,162,254,14,32,60,0,60,0,60,0,14,32,191,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,91,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,90,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,27,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,28,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,161,254,14,32,60,0,60,0,60,0,14,32,23,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,24,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,255,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,0,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,59,216,23,222,14,32,61,0,14,32,59,216,55,222,14,32,61,0,14,32,59,216,87,222,14,32,61,0,14,32,59,216,119,222,14,32,61,0,14,32,59,216,151,222,14,32,61,0,14,32,59,216,183,222,14,32,60,0,60,0,60,0,14,32,167,254,14,32,60,0,60,0,60,0,14,32,171,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,172,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,168,254,14,32,60,0,60,0,60,0,14,32,166,254,14,32,60,0,60,0,60,0,14,32,31,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,32,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,165,254,14,32,60,0,60,0,60,0,14,32,25,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,26,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,27,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,3,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,4,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,129,6,14,32,60,0,14,32,130,6,14,32,60,0,14,32,133,6,14,32,60,0,14,32,87,7,14,32,60,0,14,32,88,7,14,32,60,0,14,32,110,7,14,32,60,0,14,32,111,7,14,32,60,0,14,32,114,7,14,32,60,0,14,32,124,7,14,32,60,0,14,32,47,6,14,32,60,0,60,0,60,0,14,32,59,216,3,222,14,32,61,0,14,32,59,216,131,222,14,32,61,0,14,32,59,216,163,222,14,32,60,0,60,0,60,0,14,32,170,254,14,32,60,0,60,0,60,0,14,32,169,254,14,32,60,0,14,32,48,6,14,32,60,0,60,0,60,0,14,32,59,216,24,222,14,32,61,0,14,32,59,216,152,222,14,32,61,0,14,32,59,216,184,222,14,32,60,0,60,0,60,0,14,32,172,254,14,32,60,0,60,0,60,0,14,32,171,254,14,32,60,0,60,0,60,0,14,32,91,252,14,32,47,0,112,6,60,0,14,32,136,6,14,32,60,0,60,0,60,0,14,32,137,251,14,32,60,0,60,0,60,0,14,32,136,251,14,32,60,0,14,32,137,6,14,32,60,0,14,32,138,6,14,32,60,0,14,32,139,6,14,32,60,0,14,32,140,6,14,32,60,0,60,0,60,0,14,32,133,251,14,32,60,0,60,0,60,0,14,32,132,251,14,32,60,0,14,32,141,6,14,32,60,0,60,0,60,0,14,32,131,251,14,32,60,0,60,0,60,0,14,32,130,251,14,32,60,0,14,32,174,8,14,32,60,0,14,32,142,6,14,32,60,0,60,0,60,0,14,32,135,251,14,32,60,0,60,0,60,0,14,32,134,251,14,32,60,0,14,32,143,6,14,32,60,0,14,32,144,6,14,32,60,0,14,32,238,6,14,32,60,0,14,32,89,7,14,32,60,0,14,32,90,7,14,32,60,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,59,216,19,222,14,32,61,0,14,32,59,216,147,222,14,32,61,0,14,32,59,216,179,222,14,32,60,0,60,0,60,0,14,32,174,254,14,32,60,0,60,0,60,0,14,32,173,254,14,32,60,0,60,0,60,0,14,32,92,252,14,32,47,0,112,6,60,0,60,0,60,0,14,32,246,253,14,32,47,0,14,32,51,6,72,6,68,6,14,32,60,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,59,216,6,222,14,32,61,0,14,32,59,216,134,222,14,32,61,0,14,32,59,216,166,222,14,32,60,0,60,0,60,0,14,32,176,254,14,32,60,0,60,0,60,0,14,32,175,254,14,32,60,0,14,32,145,6,14,32,60,0,60,0,60,0,14,32,141,251,14,32,60,0,60,0,60,0,14,32,140,251,14,32,60,0,14,32,146,6,14,32,60,0,14,32,147,6,14,32,60,0,14,32,148,6,14,32,60,0,14,32,149,6,14,32,60,0,14,32,150,6,14,32,60,0,14,32,151,6,14,32,60,0,14,32,152,6,14,32,60,0,60,0,60,0,14,32,139,251,14,32,60,0,60,0,60,0,14,32,138,251,14,32,60,0,14,32,153,6,14,32,60,0,14,32,239,6,14,32,60,0,14,32,91,7,14,32,60,0,14,32,107,7,14,32,60,0,14,32,108,7,14,32,60,0,14,32,113,7,14,32,60,0,14,32,170,8,14,32,60,0,14,32,178,8,14,32,60,0,14,32,185,8,14,32,60,0,14,32,51,6,14,32,60,0,60,0,60,0,14,32,59,216,14,222,14,32,61,0,14,32,59,216,46,222,14,32,61,0,14,32,59,216,78,222,14,32,61,0,14,32,59,216,110,222,14,32,61,0,14,32,59,216,142,222,14,32,61,0,14,32,59,216,174,222,14,32,60,0,60,0,60,0,14,32,179,254,14,32,60,0,60,0,60,0,14,32,173,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,93,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,174,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,92,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,175,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,176,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,97,253,14,32,47,0,14,32,69,6,44,6,14,32,60,0,60,0,60,0,14,32,96,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,99,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,49,253,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,180,254,14,32,60,0,60,0,60,0,14,32,52,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,53,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,54,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,231,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,232,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,178,254,14,32,60,0,60,0,60,0,14,32,94,253,14,32,47,0,14,32,44,6,73,6,14,32,60,0,60,0,60,0,14,32,168,253,14,32,47,0,14,32,46,6,73,6,14,32,60,0,60,0,60,0,14,32,198,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,42,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,95,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,98,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,23,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,24,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,177,254,14,32,60,0,60,0,60,0,14,32,28,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,29,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,30,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,14,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,31,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,251,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,252,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,52,6,14,32,60,0,60,0,60,0,14,32,59,216,20,222,14,32,61,0,14,32,59,216,52,222,14,32,61,0,14,32,59,216,84,222,14,32,61,0,14,32,59,216,116,222,14,32,61,0,14,32,59,216,148,222,14,32,61,0,14,32,59,216,180,222,14,32,60,0,60,0,60,0,14,32,183,254,14,32,60,0,60,0,60,0,14,32,45,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,46,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,104,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,47,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,48,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,107,253,14,32,47,0,14,32,69,6,46,6,14,32,60,0,60,0,60,0,14,32,109,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,50,253,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,184,254,14,32,60,0,60,0,60,0,14,32,55,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,56,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,57,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,233,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,234,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,182,254,14,32,60,0,60,0,60,0,14,32,37,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,105,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,38,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,103,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,170,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,39,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,41,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,40,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,106,253,14,32,47,0,14,32,69,6,46,6,14,32,60,0,60,0,60,0,14,32,108,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,25,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,26,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,181,254,14,32,60,0,60,0,60,0,14,32,9,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,10,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,11,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,13,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,12,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,253,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,254,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,154,6,14,32,60,0,14,32,155,6,14,32,60,0,14,32,156,6,14,32,60,0,14,32,250,6,14,32,60,0,14,32,92,7,14,32,60,0,14,32,109,7,14,32,60,0,14,32,112,7,14,32,60,0,14,32,125,7,14,32,60,0,14,32,126,7,14,32,60,0,14,32,53,6,14,32,60,0,60,0,60,0,14,32,59,216,17,222,14,32,61,0,14,32,59,216,49,222,14,32,61,0,14,32,59,216,81,222,14,32,61,0,14,32,59,216,113,222,14,32,61,0,14,32,59,216,145,222,14,32,61,0,14,32,59,216,177,222,14,32,60,0,60,0,60,0,14,32,187,254,14,32,60,0,60,0,60,0,14,32,177,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,101,253,14,32,47,0,14,32,45,6,45,6,14,32,60,0,60,0,60,0,14,32,178,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,179,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,197,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,188,254,14,32,60,0,60,0,60,0,14,32,186,254,14,32,60,0,60,0,60,0,14,32,100,253,14,32,47,0,14,32,45,6,45,6,14,32,60,0,60,0,60,0,14,32,169,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,43,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,102,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,33,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,34,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,185,254,14,32,60,0,60,0,60,0,14,32,32,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,15,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,245,253,14,32,47,0,14,32,68,6,57,6,69,6,14,32,60,0,60,0,60,0,14,32,249,253,14,32,47,0,14,32,68,6,73,6,14,32,60,0,60,0,60,0,14,32,250,253,14,32,47,0,14,32,68,6,73,6,39,0,32,0,39,0,39,6,68,6,68,6,71,6,39,0,32,0,39,0,57,6,68,6,74,6,71,6,39,0,32,0,39,0,72,6,51,6,68,6,69,6,14,32,60,0,60,0,60,0,14,32,240,253,14,32,47,0,14,32,68,6,210,6,14,32,60,0,60,0,60,0,14,32,33,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,5,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,6,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,54,6,14,32,60,0,60,0,60,0,14,32,59,216,25,222,14,32,61,0,14,32,59,216,57,222,14,32,61,0,14,32,59,216,89,222,14,32,61,0,14,32,59,216,121,222,14,32,61,0,14,32,59,216,153,222,14,32,61,0,14,32,59,216,185,222,14,32,60,0,60,0,60,0,14,32,191,254,14,32,60,0,60,0,60,0,14,32,180,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,181,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,182,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,112,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,183,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,192,254,14,32,60,0,60,0,60,0,14,32,190,254,14,32,60,0,60,0,60,0,14,32,110,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,171,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,111,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,44,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,35,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,36,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,189,254,14,32,60,0,60,0,60,0,14,32,34,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,35,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,36,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,16,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,37,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,7,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,8,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,157,6,14,32,60,0,14,32,175,8,14,32,60,0,14,32,158,6,14,32,60,0,14,32,251,6,14,32,60,0,14,32,55,6,14,32,60,0,60,0,60,0,14,32,59,216,8,222,14,32,61,0,14,32,59,216,104,222,14,32,61,0,14,32,59,216,136,222,14,32,61,0,14,32,59,216,168,222,14,32,60,0,60,0,60,0,14,32,195,254,14,32,60,0,60,0,60,0,14,32,184,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,51,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,114,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,115,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,196,254,14,32,60,0,60,0,60,0,14,32,58,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,194,254,14,32,60,0,60,0,60,0,14,32,113,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,116,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,17,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,18,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,193,254,14,32,60,0,60,0,60,0,14,32,38,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,39,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,245,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,246,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,56,6,14,32,60,0,60,0,60,0,14,32,59,216,26,222,14,32,61,0,14,32,59,216,122,222,14,32,61,0,14,32,59,216,154,222,14,32,61,0,14,32,59,216,186,222,14,32,60,0,60,0,60,0,14,32,199,254,14,32,60,0,60,0,60,0,14,32,185,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,200,254,14,32,60,0,60,0,60,0,14,32,59,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,198,254,14,32,60,0,60,0,60,0,14,32,197,254,14,32,60,0,60,0,60,0,14,32,40,252,14,32,47,0,14,32,69,6,14,32,60,0,14,32,159,6,14,32,60,0,14,32,163,8,14,32,60,0,14,32,139,8,14,32,60,0,14,32,140,8,14,32,60,0,14,32,57,6,14,32,60,0,60,0,60,0,14,32,59,216,15,222,14,32,61,0,14,32,59,216,47,222,14,32,61,0,14,32,59,216,79,222,14,32,61,0,14,32,59,216,111,222,14,32,61,0,14,32,59,216,143,222,14,32,61,0,14,32,59,216,175,222,14,32,60,0,60,0,60,0,14,32,203,254,14,32,60,0,60,0,60,0,14,32,186,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,196,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,187,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,119,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,204,254,14,32,60,0,60,0,60,0,14,32,202,254,14,32,60,0,60,0,60,0,14,32,117,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,118,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,120,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,182,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,19,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,20,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,201,254,14,32,60,0,60,0,60,0,14,32,41,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,247,253,14,32,47,0,14,32,68,6,74,6,71,6,14,32,60,0,60,0,60,0,14,32,42,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,247,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,248,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,58,6,14,32,60,0,60,0,60,0,14,32,59,216,27,222,14,32,61,0,14,32,59,216,59,222,14,32,61,0,14,32,59,216,91,222,14,32,61,0,14,32,59,216,123,222,14,32,61,0,14,32,59,216,155,222,14,32,61,0,14,32,59,216,187,222,14,32,60,0,60,0,60,0,14,32,207,254,14,32,60,0,60,0,60,0,14,32,188,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,189,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,208,254,14,32,60,0,60,0,60,0,14,32,206,254,14,32,60,0,60,0,60,0,14,32,121,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,123,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,122,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,21,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,22,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,205,254,14,32,60,0,60,0,60,0,14,32,43,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,44,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,249,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,250,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,160,6,14,32,60,0,14,32,195,8,14,32,60,0,14,32,252,6,14,32,60,0,14,32,93,7,14,32,60,0,14,32,94,7,14,32,60,0,14,32,95,7,14,32,60,0,14,32,179,8,14,32,60,0,14,32,65,6,14,32,60,0,60,0,60,0,14,32,59,216,16,222,14,32,61,0,14,32,59,216,48,222,14,32,61,0,14,32,59,216,112,222,14,32,61,0,14,32,59,216,144,222,14,32,61,0,14,32,59,216,176,222,14,32,60,0,60,0,60,0,14,32,211,254,14,32,60,0,60,0,60,0,14,32,190,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,191,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,192,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,125,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,193,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,212,254,14,32,60,0,60,0,60,0,14,32,210,254,14,32,60,0,60,0,60,0,14,32,124,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,193,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,124,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,125,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,209,254,14,32,60,0,60,0,60,0,14,32,45,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,46,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,47,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,48,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,49,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,50,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,161,6,14,32,60,0,60,0,60,0,14,32,59,216,30,222,14,32,61,0,14,32,59,216,126,222,14,32,60,0,14,32,162,6,14,32,60,0,14,32,187,8,14,32,60,0,14,32,163,6,14,32,60,0,14,32,164,6,14,32,60,0,60,0,60,0,14,32,108,251,14,32,60,0,60,0,60,0,14,32,109,251,14,32,60,0,60,0,60,0,14,32,107,251,14,32,60,0,60,0,60,0,14,32,106,251,14,32,60,0,14,32,164,8,14,32,60,0,14,32,165,6,14,32,60,0,14,32,166,6,14,32,60,0,60,0,60,0,14,32,112,251,14,32,60,0,60,0,60,0,14,32,113,251,14,32,60,0,60,0,60,0,14,32,111,251,14,32,60,0,60,0,60,0,14,32,110,251,14,32,60,0,14,32,96,7,14,32,60,0,14,32,97,7,14,32,60,0,14,32,111,6,14,32,60,0,60,0,60,0,14,32,59,216,31,222,14,32,61,0,14,32,59,216,95,222,14,32,60,0,14,32,66,6,14,32,60,0,60,0,60,0,14,32,59,216,18,222,14,32,61,0,14,32,59,216,50,222,14,32,61,0,14,32,59,216,82,222,14,32,61,0,14,32,59,216,114,222,14,32,61,0,14,32,59,216,146,222,14,32,61,0,14,32,59,216,178,222,14,32,60,0,60,0,60,0,14,32,215,254,14,32,60,0,60,0,60,0,14,32,194,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,195,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,180,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,216,254,14,32,60,0,60,0,60,0,14,32,214,254,14,32,60,0,60,0,60,0,14,32,126,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,127,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,178,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,126,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,127,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,213,254,14,32,60,0,60,0,60,0,14,32,51,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,241,253,14,32,47,0,14,32,68,6,210,6,14,32,60,0,60,0,60,0,14,32,52,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,53,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,54,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,167,6,14,32,60,0,14,32,188,8,14,32,60,0,14,32,168,6,14,32,60,0,14,32,196,8,14,32,60,0,14,32,165,8,14,32,60,0,14,32,181,8,14,32,60,0,14,32,67,6,14,32,60,0,60,0,60,0,14,32,59,216,10,222,14,32,61,0,14,32,59,216,42,222,14,32,61,0,14,32,59,216,106,222,14,32,60,0,60,0,60,0,14,32,219,254,14,32,60,0,60,0,60,0,14,32,196,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,197,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,198,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,199,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,200,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,195,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,220,254,14,32,60,0,60,0,60,0,14,32,235,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,236,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,218,254,14,32,60,0,60,0,60,0,14,32,128,252,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,129,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,130,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,187,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,183,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,131,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,132,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,217,254,14,32,60,0,60,0,60,0,14,32,55,252,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,56,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,57,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,58,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,59,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,60,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,61,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,62,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,169,6,14,32,60,0,60,0,60,0,14,32,144,251,14,32,60,0,60,0,60,0,14,32,145,251,14,32,60,0,60,0,60,0,14,32,143,251,14,32,60,0,60,0,60,0,14,32,142,251,14,32,60,0,14,32,170,6,14,32,60,0,14,32,171,6,14,32,60,0,14,32,172,6,14,32,60,0,14,32,127,7,14,32,60,0,14,32,173,6,14,32,60,0,60,0,60,0,14,32,213,251,14,32,60,0,60,0,60,0,14,32,214,251,14,32,60,0,60,0,60,0,14,32,212,251,14,32,60,0,60,0,60,0,14,32,211,251,14,32,60,0,14,32,174,6,14,32,60,0,14,32,180,8,14,32,60,0,14,32,175,6,14,32,60,0,60,0,60,0,14,32,148,251,14,32,60,0,60,0,60,0,14,32,149,251,14,32,60,0,60,0,60,0,14,32,147,251,14,32,60,0,60,0,60,0,14,32,146,251,14,32,60,0,14,32,176,8,14,32,60,0,14,32,200,8,14,32,60,0,14,32,176,6,14,32,60,0,14,32,177,6,14,32,60,0,60,0,60,0,14,32,156,251,14,32,60,0,60,0,60,0,14,32,157,251,14,32,60,0,60,0,60,0,14,32,155,251,14,32,60,0,60,0,60,0,14,32,154,251,14,32,60,0,14,32,178,6,14,32,60,0,14,32,179,6,14,32,60,0,60,0,60,0,14,32,152,251,14,32,60,0,60,0,60,0,14,32,153,251,14,32,60,0,60,0,60,0,14,32,151,251,14,32,60,0,60,0,60,0,14,32,150,251,14,32,60,0,14,32,180,6,14,32,60,0,14,32,98,7,14,32,60,0,14,32,59,6,14,32,60,0,14,32,141,8,14,32,60,0,14,32,60,6,14,32,60,0,14,32,99,7,14,32,60,0,14,32,100,7,14,32,60,0,14,32,194,8,14,32,60,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,59,216,11,222,14,32,61,0,14,32,59,216,43,222,14,32,61,0,14,32,59,216,75,222,14,32,61,0,14,32,59,216,139,222,14,32,61,0,14,32,59,216,171,222,14,32,60,0,60,0,60,0,14,32,223,254,14,32,60,0,60,0,60,0,14,32,201,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,131,253,14,32,47,0,14,32,44,6,44,6,14,32,60,0,60,0,60,0,14,32,186,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,202,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,181,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,203,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,134,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,204,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,136,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,205,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,224,254,14,32,60,0,60,0,60,0,14,32,237,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,222,254,14,32,60,0,60,0,60,0,14,32,246,254,14,32,47,0,14,32,34,6,14,32,60,0,60,0,60,0,14,32,248,254,14,32,47,0,14,32,35,6,14,32,60,0,60,0,60,0,14,32,250,254,14,32,47,0,14,32,37,6,14,32,60,0,60,0,60,0,14,32,252,254,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,132,253,14,32,47,0,14,32,44,6,44,6,14,32,60,0,60,0,60,0,14,32,188,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,172,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,128,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,130,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,129,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,133,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,133,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,135,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,173,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,134,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,135,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,221,254,14,32,60,0,60,0,60,0,14,32,245,254,14,32,47,0,14,32,34,6,14,32,60,0,60,0,60,0,14,32,247,254,14,32,47,0,14,32,35,6,14,32,60,0,60,0,60,0,14,32,249,254,14,32,47,0,14,32,37,6,14,32,60,0,60,0,60,0,14,32,251,254,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,63,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,64,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,65,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,66,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,67,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,68,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,181,6,14,32,60,0,14,32,182,6,14,32,60,0,14,32,183,6,14,32,60,0,14,32,184,6,14,32,60,0,14,32,106,7,14,32,60,0,14,32,166,8,14,32,60,0,14,32,199,8,14,32,60,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,59,216,12,222,14,32,61,0,14,32,59,216,44,222,14,32,61,0,14,32,59,216,108,222,14,32,61,0,14,32,59,216,140,222,14,32,61,0,14,32,59,216,172,222,14,32,60,0,60,0,60,0,14,32,227,254,14,32,60,0,60,0,60,0,14,32,206,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,140,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,146,253,14,32,47,0,14,32,44,6,46,6,14,32,60,0,60,0,60,0,14,32,141,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,207,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,137,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,138,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,208,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,142,253,14,32,47,0,14,32,46,6,44,6,14,32,60,0,60,0,60,0,14,32,143,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,209,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,228,254,14,32,60,0,60,0,60,0,14,32,226,254,14,32,60,0,60,0,60,0,14,32,136,252,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,192,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,139,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,185,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,137,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,177,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,225,254,14,32,60,0,60,0,60,0,14,32,69,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,70,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,244,253,14,32,47,0,14,32,45,6,69,6,47,6,14,32,60,0,60,0,60,0,14,32,71,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,72,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,73,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,74,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,14,32,254,6,14,32,60,0,14,32,101,7,14,32,60,0,14,32,102,7,14,32,60,0,14,32,167,8,14,32,60,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,59,216,13,222,14,32,61,0,14,32,59,216,45,222,14,32,61,0,14,32,59,216,77,222,14,32,61,0,14,32,59,216,109,222,14,32,61,0,14,32,59,216,141,222,14,32,61,0,14,32,59,216,173,222,14,32,60,0,60,0,60,0,14,32,231,254,14,32,60,0,60,0,60,0,14,32,210,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,184,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,152,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,211,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,149,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,212,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,213,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,214,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,232,254,14,32,60,0,60,0,60,0,14,32,238,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,239,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,230,254,14,32,60,0,60,0,60,0,14,32,189,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,151,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,153,253,14,32,47,0,14,32,44,6,73,6,14,32,60,0,60,0,60,0,14,32,199,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,150,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,179,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,138,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,139,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,140,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,155,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,154,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,141,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,142,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,143,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,229,254,14,32,60,0,60,0,60,0,14,32,75,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,76,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,77,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,78,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,79,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,80,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,186,6,14,32,60,0,60,0,60,0,14,32,59,216,29,222,14,32,61,0,14,32,59,216,93,222,14,32,60,0,60,0,60,0,14,32,159,251,14,32,60,0,60,0,60,0,14,32,158,251,14,32,60,0,14,32,189,8,14,32,60,0,14,32,187,6,14,32,60,0,60,0,60,0,14,32,162,251,14,32,60,0,60,0,60,0,14,32,163,251,14,32,60,0,60,0,60,0,14,32,161,251,14,32,60,0,60,0,60,0,14,32,160,251,14,32,60,0,14,32,188,6,14,32,60,0,14,32,189,6,14,32,60,0,14,32,185,6,14,32,60,0,14,32,103,7,14,32,60,0,14,32,104,7,14,32,60,0,14,32,105,7,14,32,60,0,14,32,137,8,14,32,60,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,59,216,36,222,14,32,61,0,14,32,59,216,100,222,14,32,61,0,14,32,59,216,132,222,14,32,60,0,60,0,60,0,14,32,235,254,14,32,60,0,60,0,60,0,14,32,217,252,14,32,47,0,112,6,60,0,60,0,60,0,14,32,215,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,216,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,147,253,14,32,47,0,14,32,69,6,44,6,14,32,60,0,60,0,60,0,14,32,148,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,236,254,14,32,60,0,60,0,60,0,14,32,234,254,14,32,60,0,60,0,60,0,14,32,233,254,14,32,60,0,60,0,60,0,14,32,81,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,82,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,83,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,84,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,190,6,14,32,60,0,60,0,60,0,14,32,172,251,14,32,60,0,60,0,60,0,14,32,173,251,14,32,60,0,60,0,60,0,14,32,171,251,14,32,60,0,60,0,60,0,14,32,170,251,14,32,60,0,14,32,193,6,14,32,60,0,60,0,60,0,14,32,168,251,14,32,60,0,60,0,60,0,14,32,169,251,14,32,60,0,60,0,60,0,14,32,167,251,14,32,60,0,60,0,60,0,14,32,166,251,14,32,60,0,14,32,195,6,14,32,60,0,14,32,255,6,14,32,60,0,14,32,213,6,14,32,60,0,60,0,60,0,14,32,165,251,14,32,47,0,3,216,171,222,60,0,60,0,60,0,14,32,164,251,14,32,47,0,3,216,171,222,60,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,229,6,14,32,61,0,14,32,132,8,14,32,60,0,60,0,60,0,14,32,59,216,5,222,14,32,61,0,14,32,59,216,133,222,14,32,61,0,14,32,59,216,165,222,14,32,60,0,60,0,60,0,14,32,238,254,14,32,60,0,60,0,60,0,14,32,237,254,14,32,60,0,60,0,60,0,14,32,248,253,14,32,47,0,14,32,51,6,68,6,69,6,14,32,60,0,14,32,196,6,14,32,60,0,14,32,197,6,14,32,60,0,60,0,60,0,14,32,225,251,14,32,60,0,60,0,60,0,14,32,224,251,14,32,60,0,14,32,198,6,14,32,60,0,60,0,60,0,14,32,218,251,14,32,60,0,60,0,60,0,14,32,217,251,14,32,60,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,216,251,14,32,60,0,60,0,60,0,14,32,215,251,14,32,60,0,14,32,200,6,14,32,60,0,60,0,60,0,14,32,220,251,14,32,60,0,60,0,60,0,14,32,219,251,14,32,60,0,14,32,201,6,14,32,60,0,60,0,60,0,14,32,227,251,14,32,60,0,60,0,60,0,14,32,226,251,14,32,60,0,14,32,202,6,14,32,60,0,14,32,203,6,14,32,60,0,60,0,60,0,14,32,223,251,14,32,60,0,60,0,60,0,14,32,222,251,14,32,60,0,14,32,177,8,14,32,60,0,14,32,207,6,14,32,60,0,14,32,120,7,14,32,60,0,14,32,121,7,14,32,60,0,14,32,171,8,14,32,60,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,232,251,14,32,60,0,60,0,60,0,14,32,233,251,14,32,60,0,60,0,60,0,14,32,240,254,14,32,60,0,60,0,60,0,14,32,144,252,14,32,47,0,112,6,60,0,60,0,60,0,14,32,239,254,14,32,60,0,60,0,60,0,14,32,93,252,14,32,47,0,112,6,60,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,230,6,14,32,61,0,14,32,133,8,14,32,61,0,14,32,134,8,14,32,60,0,60,0,60,0,14,32,59,216,9,222,14,32,61,0,14,32,59,216,41,222,14,32,61,0,14,32,59,216,73,222,14,32,61,0,14,32,59,216,105,222,14,32,61,0,14,32,59,216,137,222,14,32,61,0,14,32,59,216,169,222,14,32,60,0,60,0,60,0,14,32,243,254,14,32,60,0,60,0,60,0,14,32,218,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,219,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,220,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,221,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,157,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,222,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,244,254,14,32,60,0,60,0,60,0,14,32,240,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,241,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,242,254,14,32,60,0,60,0,60,0,14,32,175,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,174,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,145,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,146,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,147,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,156,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,176,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,148,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,149,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,150,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,241,254,14,32,60,0,60,0,60,0,14,32,85,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,86,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,87,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,88,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,89,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,90,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,204,6,14,32,60,0,60,0,60,0,14,32,201,8,14,32,60,0,60,0,60,0,14,32,254,251,14,32,60,0,60,0,60,0,14,32,255,251,14,32,60,0,60,0,60,0,14,32,253,251,14,32,60,0,60,0,60,0,14,32,252,251,14,32,60,0,14,32,205,6,14,32,60,0,14,32,206,6,14,32,60,0,14,32,208,6,14,32,60,0,60,0,60,0,14,32,230,251,14,32,60,0,60,0,60,0,14,32,231,251,14,32,60,0,60,0,60,0,14,32,229,251,14,32,60,0,60,0,60,0,14,32,228,251,14,32,60,0,14,32,209,6,14,32,60,0,14,32,61,6,14,32,60,0,14,32,62,6,14,32,60,0,14,32,63,6,14,32,60,0,14,32,32,6,14,32,60,0,14,32,117,7,14,32,60,0,14,32,118,7,14,32,60,0,14,32,119,7,14,32,60,0,14,32,186,8,14,32,60,0,14,32,210,6,14,32,60,0,60,0,60,0,14,32,175,251,14,32,60,0,60,0,60,0,14,32,177,251,14,32,47,0,3,216,171,222,60,0,60,0,60,0,14,32,174,251,14,32,60,0,60,0,60,0,14,32,176,251,14,32,47,0,3,216,171,222,60,0,14,32,122,7,14,32,60,0,14,32,123,7,14,32,60,0,14,32,142,8,14,32,60,0,14,32,16,7,14,32,60,0,14,32,18,7,14,32,60,0,60,0,14,32,45,7,14,32,60,0,14,32,19,7,14,32,60,0,60,0,14,32,20,7,14,32,60,0,60,0,14,32,46,7,14,32,60,0,14,32,22,7,14,32,60,0,14,32,21,7,14,32,60,0,60,0,14,32,47,7,14,32,60,0,14,32,23,7,14,32,60,0,14,32,24,7,14,32,60,0,14,32,25,7,14,32,60,0,14,32,77,7,14,32,60,0,14,32,26,7,14,32,60,0,14,32,27,7,14,32,60,0,60,0,14,32,28,7,14,32,60,0,14,32,29,7,14,32,60,0,14,32,30,7,14,32,60,0,14,32,31,7,14,32,60,0,14,32,78,7,14,32,60,0,14,32,32,7,14,32,60,0,14,32,33,7,14,32,60,0,14,32,34,7,14,32,60,0,14,32,35,7,14,32,60,0,60,0,60,0,14,32,36,7,14,32,60,0,14,32,37,7,14,32,60,0,14,32,38,7,14,32,60,0,60,0,14,32,39,7,14,32,60,0,14,32,79,7,14,32,60,0,14,32,40,7,14,32,60,0,14,32,41,7,14,32,60,0,14,32,42,7,14,32,60,0,14,32,43,7,14,32,60,0,14,32,44,7,14,32,60,0,14,32,96,8,14,32,60,0,14,32,97,8,14,32,60,0,14,32,98,8,14,32,60,0,14,32,99,8,14,32,60,0,14,32,100,8,14,32,60,0,14,32,101,8,14,32,60,0,14,32,102,8,14,32,60,0,14,32,103,8,14,32,60,0,14,32,104,8,14,32,60,0,14,32,105,8,14,32,60,0,14,32,106,8,14,32,60,0,14,32,64,8,14,32,60,0,14,32,65,8,14,32,60,0,14,32,66,8,14,32,60,0,14,32,67,8,14,32,60,0,14,32,68,8,14,32,60,0,14,32,69,8,14,32,60,0,14,32,70,8,14,32,60,0,14,32,71,8,14,32,60,0,14,32,72,8,14,32,60,0,14,32,73,8,14,32,60,0,14,32,74,8,14,32,60,0,14,32,75,8,14,32,60,0,14,32,76,8,14,32,60,0,14,32,77,8,14,32,60,0,14,32,78,8,14,32,60,0,14,32,79,8,14,32,60,0,14,32,80,8,14,32,60,0,14,32,81,8,14,32,60,0,14,32,82,8,14,32,60,0,14,32,83,8,14,32,60,0,14,32,84,8,14,32,60,0,14,32,85,8,14,32,60,0,14,32,86,8,14,32,60,0,14,32,87,8,14,32,60,0,14,32,88,8,14,32,60,0,14,32,128,7,14,32,60,0,14,32,153,7,14,32,60,0,14,32,154,7,14,32,60,0,14,32,129,7,14,32,60,0,14,32,130,7,14,32,60,0,14,32,131,7,14,32,60,0,14,32,156,7,14,32,60,0,14,32,132,7,14,32,60,0,14,32,133,7,14,32,60,0,14,32,134,7,14,32,60,0,14,32,135,7,14,32,60,0,14,32,162,7,14,32,60,0,14,32,163,7,14,32,60,0,14,32,136,7,14,32,60,0,14,32,165,7,14,32,60,0,14,32,137,7,14,32,60,0,14,32,138,7,14,32,60,0,14,32,139,7,14,32,60,0,14,32,155,7,14,32,60,0,14,32,140,7,14,32,60,0,14,32,152,7,14,32,60,0,14,32,160,7,14,32,60,0,14,32,161,7,14,32,60,0,14,32,141,7,14,32,60,0,14,32,142,7,14,32,60,0,14,32,164,7,14,32,60,0,14,32,143,7,14,32,60,0,14,32,144,7,14,32,60,0,14,32,157,7,14,32,60,0,14,32,158,7,14,32,60,0,14,32,159,7,14,32,60,0,14,32,145,7,14,32,60,0,14,32,146,7,14,32,60,0,14,32,147,7,14,32,60,0,14,32,148,7,14,32,60,0,14,32,149,7,14,32,60,0,14,32,150,7,14,32,60,0,14,32,151,7,14,32,60,0,14,32,177,7,14,32,60,0,166,7,60,0,167,7,60,0,168,7,60,0,169,7,60,0,170,7,60,0,171,7,60,0,172,7,60,0,173,7,60,0,174,7,60,0,175,7,60,0,176,7,60,0,14,32,202,7,14,32,60,0,14,32,203,7,14,32,60,0,14,32,204,7,14,32,60,0,14,32,205,7,14,32,60,0,14,32,206,7,14,32,60,0,14,32,207,7,14,32,60,0,14,32,208,7,14,32,60,0,14,32,209,7,14,32,60,0,14,32,210,7,14,32,60,0,14,32,211,7,14,32,60,0,14,32,212,7,14,32,60,0,14,32,213,7,14,32,60,0,14,32,214,7,14,32,60,0,60,0,14,32,232,7,14,32,60,0,14,32,215,7,14,32,60,0,60,0,14,32,233,7,14,32,60,0,14,32,216,7,14,32,60,0,14,32,217,7,14,32,60,0,60,0,14,32,234,7,14,32,60,0,14,32,218,7,14,32,60,0,14,32,219,7,14,32,60,0,14,32,220,7,14,32,60,0,14,32,221,7,14,32,60,0,14,32,222,7,14,32,60,0,14,32,223,7,14,32,60,0,14,32,224,7,14,32,60,0,14,32,225,7,14,32,60,0,14,32,226,7,14,32,60,0,14,32,227,7,14,32,60,0,14,32,228,7,14,32,60,0,14,32,229,7,14,32,60,0,14,32,230,7,14,32,60,0,14,32,231,7,14,32,60,0,14,32,244,7,14,32,60,0,14,32,245,7,14,32,60,0,48,45,60,0,49,45,60,0,50,45,60,0,51,45,60,0,52,45,60,0,53,45,60,0,54,45,60,0,55,45,60,0,56,45,60,0,57,45,60,0,58,45,60,0,59,45,60,0,102,45,60,0,60,45,60,0,61,45,60,0,62,45,60,0,63,45,60,0,64,45,60,0,65,45,60,0,66,45,60,0,67,45,60,0,68,45,60,0,69,45,60,0,70,45,60,0,71,45,60,0,72,45,60,0,73,45,60,0,74,45,60,0,75,45,60,0,76,45,60,0,77,45,60,0,78,45,60,0,79,45,60,0,80,45,60,0,81,45,60,0,82,45,60,0,83,45,60,0,103,45,60,0,84,45,60,0,85,45,60,0,86,45,60,0,87,45,60,0,88,45,60,0,89,45,60,0,90,45,60,0,91,45,60,0,92,45,60,0,93,45,60,0,94,45,60,0,95,45,60,0,96,45,60,0,97,45,60,0,98,45,60,0,99,45,60,0,100,45,60,0,101,45,60,0,111,45,60,0,0,18,60,0,1,18,60,0,2,18,60,0,3,18,60,0,4,18,60,0,5,18,60,0,6,18,60,0,7,18,60,0,8,18,60,0,9,18,60,0,10,18,60,0,11,18,60,0,12,18,60,0,13,18,60,0,14,18,60,0,15,18,60,0,128,45,60,0,16,18,60,0,17,18,60,0,18,18,60,0,19,18,60,0,20,18,60,0,21,18,60,0,22,18,60,0,23,18,60,0,24,18,60,0,25,18,60,0,26,18,60,0,27,18,60,0,28,18,60,0,29,18,60,0,30,18,60,0,31,18,60,0,128,19,60,0,57,216,237,223,60,0,129,19,60,0,57,216,238,223,60,0,130,19,60,0,131,19,60,0,129,45,60,0,32,18,60,0,33,18,60,0,34,18,60,0,35,18,60,0,36,18,60,0,37,18,60,0,38,18,60,0,39,18,60,0,40,18,60,0,41,18,60,0,42,18,60,0,43,18,60,0,44,18,60,0,45,18,60,0,46,18,60,0,47,18,60,0,130,45,60,0,48,18,60,0,49,18,60,0,50,18,60,0,51,18,60,0,52,18,60,0,53,18,60,0,54,18,60,0,55,18,60,0,131,45,60,0,1,171,60,0,2,171,60,0,3,171,60,0,4,171,60,0,5,171,60,0,6,171,60,0,56,18,60,0,57,18,60,0,58,18,60,0,59,18,60,0,60,18,60,0,61,18,60,0,62,18,60,0,63,18,60,0,132,45,60,0,64,18,60,0,65,18,60,0,66,18,60,0,67,18,60,0,68,18,60,0,69,18,60,0,70,18,60,0,71,18,60,0,72,18,60,0,57,216,240,223,60,0,74,18,60,0,75,18,60,0,57,216,241,223,60,0,76,18,60,0,57,216,242,223,60,0,77,18,60,0,80,18,60,0,81,18,60,0,82,18,60,0,83,18,60,0,84,18,60,0,85,18,60,0,86,18,60,0,88,18,60,0,90,18,60,0,91,18,60,0,92,18,60,0,93,18,60,0,96,18,60,0,97,18,60,0,98,18,60,0,99,18,60,0,100,18,60,0,101,18,60,0,102,18,60,0,103,18,60,0,132,19,60,0,57,216,243,223,60,0,133,19,60,0,57,216,244,223,60,0,134,19,60,0,135,19,60,0,133,45,60,0,104,18,60,0,105,18,60,0,106,18,60,0,107,18,60,0,108,18,60,0,109,18,60,0,110,18,60,0,111,18,60,0,112,18,60,0,113,18,60,0,114,18,60,0,115,18,60,0,116,18,60,0,117,18,60,0,118,18,60,0,119,18,60,0,134,45,60,0,120,18,60,0,121,18,60,0,122,18,60,0,123,18,60,0,124,18,60,0,125,18,60,0,126,18,60,0,127,18,60,0,135,45,60,0,128,18,60,0,129,18,60,0,130,18,60,0,131,18,60,0,132,18,60,0,133,18,60,0,134,18,60,0,135,18,60,0,136,18,60,0,138,18,60,0,139,18,60,0,140,18,60,0,141,18,60,0,144,18,60,0,145,18,60,0,146,18,60,0,147,18,60,0,148,18,60,0,149,18,60,0,150,18,60,0,151,18,60,0,136,45,60,0,152,18,60,0,153,18,60,0,154,18,60,0,155,18,60,0,156,18,60,0,157,18,60,0,158,18,60,0,159,18,60,0,137,45,60,0,160,18,60,0,161,18,60,0,162,18,60,0,163,18,60,0,164,18,60,0,165,18,60,0,166,18,60,0,167,18,60,0,138,45,60,0,168,18,60,0,169,18,60,0,170,18,60,0,171,18,60,0,172,18,60,0,173,18,60,0,174,18,60,0,175,18,60,0,176,18,60,0,57,216,245,223,60,0,178,18,60,0,179,18,60,0,57,216,246,223,60,0,180,18,60,0,57,216,247,223,60,0,181,18,60,0,184,18,60,0,185,18,60,0,186,18,60,0,187,18,60,0,188,18,60,0,189,18,60,0,190,18,60,0,57,216,232,223,60,0,192,18,60,0,57,216,233,223,60,0,194,18,60,0,195,18,60,0,57,216,234,223,60,0,196,18,60,0,57,216,235,223,60,0,197,18,60,0,200,18,60,0,201,18,60,0,202,18,60,0,203,18,60,0,204,18,60,0,205,18,60,0,206,18,60,0,207,18,60,0,208,18,60,0,209,18,60,0,210,18,60,0,211,18,60,0,212,18,60,0,213,18,60,0,214,18,60,0,216,18,60,0,217,18,60,0,218,18,60,0,219,18,60,0,220,18,60,0,221,18,60,0,222,18,60,0,223,18,60,0,139,45,60,0,17,171,60,0,18,171,60,0,19,171,60,0,20,171,60,0,21,171,60,0,22,171,60,0,224,18,60,0,225,18,60,0,226,18,60,0,227,18,60,0,228,18,60,0,229,18,60,0,230,18,60,0,231,18,60,0,232,18,60,0,233,18,60,0,234,18,60,0,235,18,60,0,236,18,60,0,237,18,60,0,238,18,60,0,239,18,60,0,240,18,60,0,241,18,60,0,242,18,60,0,243,18,60,0,244,18,60,0,245,18,60,0,246,18,60,0,247,18,60,0,140,45,60,0,9,171,60,0,10,171,60,0,11,171,60,0,12,171,60,0,13,171,60,0,14,171,60,0,248,18,60,0,249,18,60,0,250,18,60,0,251,18,60,0,252,18,60,0,253,18,60,0,254,18,60,0,255,18,60,0,141,45,60,0,0,19,60,0,1,19,60,0,2,19,60,0,3,19,60,0,4,19,60,0,5,19,60,0,6,19,60,0,7,19,60,0,142,45,60,0,8,19,60,0,9,19,60,0,10,19,60,0,11,19,60,0,12,19,60,0,13,19,60,0,14,19,60,0,15,19,60,0,16,19,60,0,57,216,248,223,60,0,18,19,60,0,19,19,60,0,57,216,249,223,60,0,20,19,60,0,57,216,250,223,60,0,21,19,60,0,24,19,60,0,25,19,60,0,26,19,60,0,27,19,60,0,28,19,60,0,29,19,60,0,30,19,60,0,31,19,60,0,147,45,60,0,148,45,60,0,149,45,60,0,150,45,60,0,32,19,60,0,33,19,60,0,34,19,60,0,35,19,60,0,36,19,60,0,37,19,60,0,38,19,60,0,39,19,60,0,143,45,60,0,40,19,60,0,41,19,60,0,42,19,60,0,43,19,60,0,44,19,60,0,45,19,60,0,46,19,60,0,47,19,60,0,144,45,60,0,32,171,60,0,33,171,60,0,34,171,60,0,35,171,60,0,36,171,60,0,37,171,60,0,38,171,60,0,48,19,60,0,49,19,60,0,50,19,60,0,51,19,60,0,52,19,60,0,53,19,60,0,54,19,60,0,55,19,60,0,145,45,60,0,56,19,60,0,57,19,60,0,58,19,60,0,59,19,60,0,60,19,60,0,61,19,60,0,62,19,60,0,63,19,60,0,40,171,60,0,41,171,60,0,42,171,60,0,43,171,60,0,44,171,60,0,45,171,60,0,46,171,60,0,64,19,60,0,65,19,60,0,66,19,60,0,67,19,60,0,68,19,60,0,69,19,60,0,70,19,60,0,71,19,60,0,72,19,60,0,73,19,60,0,74,19,60,0,75,19,60,0,76,19,60,0,77,19,60,0,78,19,60,0,79,19,60,0,136,19,60,0,57,216,251,223,60,0,137,19,60,0,57,216,252,223,60,0,138,19,60,0,139,19,60,0,80,19,60,0,81,19,60,0,82,19,60,0,83,19,60,0,84,19,60,0,85,19,60,0,86,19,60,0,87,19,60,0,140,19,60,0,57,216,253,223,60,0,141,19,60,0,57,216,254,223,60,0,142,19,60,0,143,19,60,0,146,45,60,0,88,19,60,0,89,19,60,0,90,19,60,0,160,45,60,0,161,45,60,0,162,45,60,0,163,45,60,0,164,45,60,0,165,45,60,0,166,45,60,0,168,45,60,0,169,45,60,0,170,45,60,0,171,45,60,0,172,45,60,0,173,45,60,0,174,45,60,0,176,45,60,0,177,45,60,0,178,45,60,0,179,45,60,0,180,45,60,0,181,45,60,0,182,45,60,0,184,45,60,0,185,45,60,0,186,45,60,0,187,45,60,0,188,45,60,0,189,45,60,0,190,45,60,0,192,45,60,0,193,45,60,0,194,45,60,0,195,45,60,0,196,45,60,0,197,45,60,0,198,45,60,0,200,45,60,0,201,45,60,0,202,45,60,0,203,45,60,0,204,45,60,0,205,45,60,0,206,45,60,0,57,216,224,223,60,0,208,45,60,0,57,216,225,223,60,0,209,45,60,0,57,216,226,223,60,0,210,45,60,0,57,216,227,223,60,0,211,45,60,0,57,216,228,223,60,0,212,45,60,0,57,216,229,223,60,0,213,45,60,0,57,216,230,223,60,0,214,45,60,0,216,45,60,0,217,45,60,0,218,45,60,0,219,45,60,0,220,45,60,0,221,45,60,0,222,45,60,0,80,9,60,0,253,168,60,0,114,9,60,0,4,9,60,0,5,9,60,0,6,9,60,0,115,9,60,0,116,9,60,0,117,9,60,0,118,9,60,0,119,9,60,0,7,9,60,0,8,9,60,0,9,9,60,0,10,9,60,0,11,9,60,0,96,9,60,0,12,9,60,0,97,9,60,0,13,9,60,0,14,9,60,0,15,9,60,0,16,9,60,0,254,168,60,0,17,9,60,0,18,9,60,0,19,9,60,0,20,9,60,0,21,9,60,0,22,9,60,0,23,9,60,0,123,9,60,0,24,9,60,0,25,9,60,0,26,9,60,0,27,9,60,0,28,9,60,0,121,9,60,0,124,9,60,0,29,9,60,0,30,9,60,0,31,9,60,0,32,9,60,0,120,9,60,0,33,9,60,0,126,9,60,0,34,9,60,0,35,9,60,0,36,9,60,0,37,9,60,0,38,9,60,0,39,9,60,0,40,9,60,0,42,9,60,0,43,9,60,0,44,9,60,0,127,9,60,0,45,9,60,0,46,9,60,0,47,9,60,0,122,9,60,0,48,9,60,0,50,9,60,0,51,9,60,0,53,9,60,0,54,9,60,0,55,9,60,0,56,9,60,0,57,9,60,0,61,9,60,0,125,9,60,0,233,28,60,0,60,0,60,0,234,28,61,0,235,28,61,0,236,28,61,0,238,28,61,0,239,28,61,0,240,28,61,0,241,28,61,0,250,28,60,0,245,28,60,0,246,28,60,0,242,168,60,0,60,0,60,0,243,168,61,0,244,168,61,0,245,168,61,0,246,168,61,0,247,168,60,0,251,168,60,0,62,9,60,0,58,9,60,0,59,9,60,0,79,9,60,0,86,9,60,0,87,9,60,0,63,9,60,0,64,9,60,0,65,9,60,0,66,9,60,0,67,9,60,0,68,9,60,0,98,9,60,0,99,9,60,0,69,9,60,0,85,9,60,0,70,9,60,0,71,9,60,0,78,9,60,0,72,9,60,0,255,168,60,0,73,9,60,0,74,9,60,0,75,9,60,0,76,9,60,0,77,9,60,0,128,9,60,0,133,9,60,0,134,9,60,0,135,9,60,0,136,9,60,0,137,9,60,0,138,9,60,0,139,9,60,0,224,9,60,0,140,9,60,0,225,9,60,0,143,9,60,0,144,9,60,0,147,9,60,0,148,9,60,0,149,9,60,0,150,9,60,0,151,9,60,0,152,9,60,0,153,9,60,0,154,9,60,0,155,9,60,0,156,9,60,0,157,9,60,0,158,9,60,0,159,9,60,0,160,9,60,0,161,9,60,0,162,9,60,0,163,9,60,0,164,9,60,0,60,0,60,0,206,9,47,0,205,9,60,0,165,9,60,0,166,9,60,0,167,9,60,0,168,9,60,0,170,9,60,0,171,9,60,0,172,9,60,0,173,9,60,0,174,9,60,0,175,9,60,0,176,9,60,0,240,9,60,0,178,9,60,0,241,9,60,0,182,9,60,0,183,9,60,0,184,9,60,0,185,9,60,0,189,9,60,0,190,9,60,0,191,9,60,0,192,9,60,0,193,9,60,0,194,9,60,0,195,9,60,0,196,9,60,0,226,9,60,0,227,9,60,0,199,9,60,0,200,9,60,0,203,9,60,0,204,9,60,0,205,9,60,0,215,9,60,0,252,9,60,0,116,10,60,0,115,10,60,0,9,10,60,0,10,10,60,0,19,10,60,0,5,10,60,0,6,10,60,0,16,10,60,0,20,10,60,0,114,10,60,0,7,10,60,0,8,10,60,0,15,10,60,0,56,10,60,0,57,10,60,0,81,10,60,0,21,10,60,0,22,10,60,0,23,10,60,0,24,10,60,0,25,10,60,0,26,10,60,0,27,10,60,0,28,10,60,0,29,10,60,0,30,10,60,0,31,10,60,0,32,10,60,0,33,10,60,0,34,10,60,0,35,10,60,0,36,10,60,0,37,10,60,0,38,10,60,0,39,10,60,0,40,10,60,0,42,10,60,0,43,10,60,0,44,10,60,0,45,10,60,0,46,10,60,0,47,10,60,0,117,10,60,0,48,10,60,0,50,10,60,0,53,10,60,0,92,10,60,0,62,10,60,0,63,10,60,0,64,10,60,0,65,10,60,0,66,10,60,0,71,10,60,0,72,10,60,0,75,10,60,0,76,10,60,0,77,10,60,0,208,10,60,0,133,10,60,0,134,10,60,0,135,10,60,0,136,10,60,0,137,10,60,0,138,10,60,0,139,10,60,0,224,10,60,0,140,10,60,0,225,10,60,0,141,10,60,0,143,10,60,0,144,10,60,0,145,10,60,0,147,10,60,0,148,10,60,0,149,10,60,0,150,10,60,0,151,10,60,0,152,10,60,0,153,10,60,0,154,10,60,0,155,10,60,0,156,10,60,0,249,10,60,0,157,10,60,0,158,10,60,0,159,10,60,0,160,10,60,0,161,10,60,0,162,10,60,0,163,10,60,0,164,10,60,0,165,10,60,0,166,10,60,0,167,10,60,0,168,10,60,0,170,10,60,0,171,10,60,0,172,10,60,0,173,10,60,0,174,10,60,0,175,10,60,0,176,10,60,0,178,10,60,0,181,10,60,0,182,10,60,0,183,10,60,0,184,10,60,0,185,10,60,0,179,10,60,0,189,10,60,0,190,10,60,0,191,10,60,0,192,10,60,0,193,10,60,0,194,10,60,0,195,10,60,0,196,10,60,0,226,10,60,0,227,10,60,0,197,10,60,0,199,10,60,0,200,10,60,0,201,10,60,0,203,10,60,0,204,10,60,0,205,10,60,0,5,11,60,0,6,11,60,0,7,11,60,0,8,11,60,0,9,11,60,0,10,11,60,0,11,11,60,0,96,11,60,0,12,11,60,0,97,11,60,0,15,11,60,0,16,11,60,0,19,11,60,0,20,11,60,0,21,11,60,0,22,11,60,0,23,11,60,0,24,11,60,0,25,11,60,0,26,11,60,0,27,11,60,0,28,11,60,0,29,11,60,0,30,11,60,0,31,11,60,0,32,11,60,0,33,11,60,0,34,11,60,0,35,11,60,0,36,11,60,0,37,11,60,0,38,11,60,0,39,11,60,0,40,11,60,0,42,11,60,0,43,11,60,0,44,11,60,0,45,11,60,0,46,11,60,0,47,11,60,0,95,11,60,0,48,11,60,0,50,11,60,0,51,11,60,0,53,11,60,0,113,11,60,0,54,11,60,0,55,11,60,0,56,11,60,0,57,11,60,0,61,11,60,0,62,11,60,0,63,11,60,0,64,11,60,0,65,11,60,0,66,11,60,0,67,11,60,0,68,11,60,0,98,11,60,0,99,11,60,0,71,11,60,0,72,11,60,0,75,11,60,0,76,11,60,0,77,11,60,0,86,11,60,0,87,11,60,0,208,11,60,0,133,11,60,0,134,11,60,0,135,11,60,0,136,11,60,0,137,11,60,0,138,11,60,0,142,11,60,0,143,11,60,0,144,11,60,0,146,11,60,0,147,11,60,0,148,11,60,0,131,11,60,0,149,11,60,0,153,11,60,0,154,11,60,0,158,11,60,0,159,11,60,0,163,11,60,0,164,11,60,0,168,11,60,0,170,11,60,0,174,11,60,0,175,11,60,0,176,11,60,0,178,11,60,0,181,11,60,0,180,11,60,0,179,11,60,0,177,11,60,0,169,11,60,0,156,11,60,0,182,11,60,0,183,11,60,0,184,11,60,0,185,11,60,0,190,11,60,0,191,11,60,0,192,11,60,0,193,11,60,0,194,11,60,0,198,11,60,0,199,11,60,0,200,11,60,0,202,11,60,0,203,11,60,0,204,11,60,0,205,11,60,0,215,11,60,0,5,12,60,0,6,12,60,0,7,12,60,0,8,12,60,0,9,12,60,0,10,12,60,0,11,12,60,0,96,12,60,0,12,12,60,0,97,12,60,0,14,12,60,0,15,12,60,0,16,12,60,0,18,12,60,0,19,12,60,0,20,12,60,0,21,12,60,0,22,12,60,0,23,12,60,0,24,12,60,0,25,12,60,0,26,12,60,0,88,12,60,0,27,12,60,0,28,12,60,0,89,12,60,0,29,12,60,0,30,12,60,0,31,12,60,0,32,12,60,0,33,12,60,0,34,12,60,0,35,12,60,0,36,12,60,0,37,12,60,0,38,12,60,0,39,12,60,0,40,12,60,0,60,0,60,0,93,12,47,0,77,12,60,0,42,12,60,0,43,12,60,0,44,12,60,0,45,12,60,0,46,12,60,0,47,12,60,0,48,12,60,0,49,12,60,0,50,12,60,0,53,12,60,0,54,12,60,0,55,12,60,0,56,12,60,0,57,12,60,0,51,12,60,0,52,12,60,0,90,12,60,0,61,12,60,0,62,12,60,0,63,12,60,0,64,12,60,0,65,12,60,0,66,12,60,0,67,12,60,0,68,12,60,0,98,12,60,0,99,12,60,0,70,12,60,0,71,12,60,0,72,12,60,0,74,12,60,0,75,12,60,0,76,12,60,0,77,12,60,0,85,12,60,0,86,12,60,0,133,12,60,0,134,12,60,0,135,12,60,0,136,12,60,0,137,12,60,0,138,12,60,0,139,12,60,0,224,12,60,0,140,12,60,0,225,12,60,0,142,12,60,0,143,12,60,0,144,12,60,0,146,12,60,0,147,12,60,0,148,12,60,0,149,12,60,0,150,12,60,0,151,12,60,0,152,12,60,0,153,12,60,0,154,12,60,0,155,12,60,0,156,12,60,0,157,12,60,0,158,12,60,0,159,12,60,0,160,12,60,0,161,12,60,0,162,12,60,0,163,12,60,0,164,12,60,0,165,12,60,0,166,12,60,0,167,12,60,0,168,12,60,0,60,0,60,0,221,12,47,0,205,12,60,0,170,12,60,0,171,12,60,0,172,12,60,0,173,12,60,0,174,12,60,0,175,12,60,0,176,12,60,0,177,12,60,0,178,12,60,0,181,12,60,0,182,12,60,0,183,12,60,0,184,12,60,0,185,12,60,0,179,12,60,0,222,12,60,0,189,12,60,0,241,12,60,0,242,12,60,0,128,12,60,0,190,12,60,0,191,12,60,0,192,12,60,0,193,12,60,0,194,12,60,0,195,12,60,0,196,12,60,0,226,12,60,0,227,12,60,0,198,12,60,0,199,12,60,0,200,12,60,0,202,12,60,0,203,12,61,0,203,12,60,0,204,12,60,0,205,12,60,0,213,12,60,0,214,12,60,0,5,13,60,0,6,13,60,0,7,13,60,0,8,13,60,0,95,13,60,0,9,13,60,0,10,13,60,0,11,13,60,0,96,13,60,0,12,13,60,0,97,13,60,0,14,13,60,0,15,13,60,0,16,13,60,0,18,13,60,0,19,13,60,0,20,13,60,0,21,13,60,0,60,0,60,0,127,13,47,0,77,13,60,0,22,13,60,0,23,13,60,0,24,13,60,0,25,13,60,0,26,13,60,0,27,13,60,0,28,13,60,0,29,13,60,0,30,13,60,0,31,13,60,0,32,13,60,0,33,13,60,0,34,13,60,0,35,13,60,0,60,0,60,0,122,13,47,0,77,13,60,0,36,13,60,0,37,13,60,0,38,13,60,0,39,13,60,0,40,13,60,0,60,0,60,0,123,13,47,0,77,13,60,0,41,13,60,0,42,13,60,0,43,13,60,0,44,13,60,0,45,13,60,0,46,13,60,0,60,0,60,0,84,13,47,0,77,13,60,0,47,13,60,0,60,0,60,0,85,13,47,0,77,13,60,0,48,13,60,0,60,0,60,0,78,13,47,0,77,13,61,0,124,13,47,0,77,13,60,0,50,13,60,0,60,0,60,0,125,13,47,0,77,13,60,0,53,13,60,0,54,13,60,0,55,13,60,0,56,13,60,0,57,13,60,0,51,13,60,0,60,0,60,0,126,13,47,0,77,13,60,0,52,13,60,0,60,0,60,0,86,13,47,0,77,13,60,0,49,13,60,0,58,13,60,0,61,13,60,0,4,13,60,0,62,13,60,0,63,13,60,0,64,13,60,0,65,13,60,0,66,13,60,0,67,13,60,0,68,13,60,0,98,13,60,0,99,13,60,0,70,13,60,0,71,13,60,0,72,13,60,0,74,13,60,0,75,13,60,0,76,13,60,0,87,13,60,0,77,13,60,0,60,0,60,0,59,13,61,0,60,13,60,0,133,13,60,0,134,13,60,0,135,13,60,0,136,13,60,0,137,13,60,0,138,13,60,0,139,13,60,0,140,13,60,0,141,13,60,0,142,13,60,0,143,13,60,0,144,13,60,0,145,13,60,0,146,13,60,0,147,13,60,0,148,13,60,0,149,13,60,0,150,13,60,0,154,13,60,0,155,13,60,0,156,13,60,0,157,13,60,0,158,13,60,0,159,13,60,0,160,13,60,0,161,13,60,0,162,13,60,0,163,13,60,0,164,13,60,0,165,13,60,0,166,13,60,0,167,13,60,0,168,13,60,0,169,13,60,0,170,13,60,0,171,13,60,0,172,13,60,0,173,13,60,0,174,13,60,0,175,13,60,0,176,13,60,0,177,13,60,0,179,13,60,0,180,13,60,0,181,13,60,0,182,13,60,0,183,13,60,0,184,13,60,0,185,13,60,0,186,13,60,0,187,13,60,0,189,13,60,0,192,13,60,0,193,13,60,0,194,13,60,0,195,13,60,0,196,13,60,0,197,13,60,0,198,13,60,0,207,13,60,0,208,13,60,0,209,13,60,0,210,13,60,0,211,13,60,0,212,13,60,0,214,13,60,0,216,13,60,0,242,13,60,0,223,13,60,0,243,13,60,0,217,13,60,0,218,13,60,0,219,13,60,0,220,13,60,0,221,13,61,0,221,13,60,0,222,13,60,0,202,13,60,0,242,170,60,0,192,171,60,0,193,171,60,0,194,171,60,0,195,171,60,0,196,171,60,0,197,171,60,0,198,171,60,0,199,171,60,0,200,171,60,0,201,171,60,0,202,171,60,0,203,171,60,0,204,171,60,0,205,171,60,0,206,171,60,0,207,171,60,0,208,171,60,0,209,171,60,0,210,171,60,0,211,171,60,0,212,171,60,0,213,171,60,0,214,171,60,0,215,171,60,0,216,171,60,0,217,171,60,0,218,171,60,0,224,170,60,0,225,170,60,0,226,170,60,0,227,170,60,0,228,170,60,0,229,170,60,0,230,170,60,0,231,170,60,0,232,170,60,0,233,170,60,0,234,170,60,0,227,171,60,0,228,171,60,0,229,171,60,0,230,171,60,0,231,171,60,0,232,171,60,0,233,171,60,0,234,171,60,0,235,170,60,0,236,170,60,0,237,170,60,0,238,170,60,0,239,170,60,0,245,170,60,0,219,171,60,0,220,171,60,0,221,171,60,0,222,171,60,0,223,171,60,0,224,171,60,0,225,171,60,0,226,171,60,0,237,171,60,0,246,170,60,0,0,168,60,0,1,168,60,0,2,168,60,0,3,168,60,0,4,168,60,0,5,168,60,0,6,168,60,0,44,168,60,0,7,168,60,0,8,168,60,0,9,168,60,0,10,168,60,0,12,168,60,0,13,168,60,0,14,168,60,0,15,168,60,0,16,168,60,0,17,168,60,0,18,168,60,0,19,168,60,0,20,168,60,0,21,168,60,0,22,168,60,0,23,168,60,0,24,168,60,0,25,168,60,0,26,168,60,0,27,168,60,0,28,168,60,0,29,168,60,0,30,168,60,0,31,168,60,0,32,168,60,0,33,168,60,0,34,168,60,0,35,168,60,0,36,168,60,0,37,168,60,0,38,168,60,0,39,168,60,0,130,168,60,0,131,168,60,0,132,168,60,0,133,168,60,0,134,168,60,0,135,168,60,0,136,168,60,0,137,168,60,0,138,168,60,0,139,168,60,0,140,168,60,0,141,168,60,0,142,168,60,0,143,168,60,0,144,168,60,0,145,168,60,0,146,168,60,0,147,168,60,0,148,168,60,0,149,168,60,0,150,168,60,0,151,168,60,0,152,168,60,0,153,168,60,0,154,168,60,0,155,168,60,0,156,168,60,0,157,168,60,0,158,168,60,0,159,168,60,0,160,168,60,0,161,168,60,0,162,168,60,0,163,168,60,0,164,168,60,0,165,168,60,0,166,168,60,0,167,168,60,0,168,168,60,0,169,168,60,0,170,168,60,0,171,168,60,0,172,168,60,0,173,168,60,0,174,168,60,0,175,168,60,0,176,168,60,0,177,168,60,0,178,168,60,0,179,168,60,0,180,168,60,0,181,168,60,0,182,168,60,0,183,168,60,0,184,168,60,0,185,168,60,0,186,168,60,0,187,168,60,0,188,168,60,0,189,168,60,0,190,168,60,0,191,168,60,0,192,168,60,0,193,168,60,0,194,168,60,0,195,168,60,0,196,168,60,0,4,216,131,220,60,0,4,216,132,220,60,0,4,216,133,220,60,0,4,216,134,220,60,0,4,216,135,220,60,0,4,216,136,220,60,0,4,216,137,220,60,0,4,216,138,220,60,0,4,216,139,220,60,0,4,216,140,220,60,0,4,216,141,220,60,0,4,216,142,220,60,0,4,216,143,220,60,0,4,216,144,220,60,0,4,216,145,220,60,0,4,216,146,220,60,0,4,216,147,220,60,0,4,216,148,220,60,0,4,216,149,220,60,0,4,216,150,220,60,0,4,216,151,220,60,0,4,216,152,220,60,0,4,216,153,220,60,0,4,216,155,220,60,0,4,216,157,220,60,0,4,216,158,220,60,0,4,216,159,220,60,0,4,216,160,220,60,0,4,216,161,220,60,0,4,216,162,220,60,0,4,216,163,220,60,0,4,216,164,220,60,0,4,216,165,220,60,0,4,216,166,220,60,0,4,216,167,220,60,0,4,216,168,220,60,0,4,216,169,220,60,0,4,216,170,220,60,0,4,216,172,220,60,0,4,216,173,220,60,0,4,216,174,220,60,0,4,216,175,220,60,0,4,216,176,220,60,0,4,216,177,220,60,0,4,216,178,220,60,0,4,216,179,220,60,0,4,216,180,220,60,0,4,216,194,220,60,0,4,216,181,220,60,0,4,216,182,220,60,0,4,216,183,220,60,0,4,216,184,220,60,0,4,216,185,220,60,0,4,216,80,221,60,0,4,216,81,221,60,0,4,216,82,221,60,0,4,216,83,221,60,0,4,216,84,221,60,0,4,216,85,221,60,0,4,216,86,221,60,0,4,216,87,221,60,0,4,216,88,221,60,0,4,216,89,221,60,0,4,216,90,221,60,0,4,216,91,221,60,0,4,216,92,221,60,0,4,216,93,221,60,0,4,216,94,221,60,0,4,216,95,221,60,0,4,216,96,221,60,0,4,216,97,221,60,0,4,216,98,221,60,0,4,216,99,221,60,0,4,216,100,221,60,0,4,216,101,221,60,0,4,216,102,221,60,0,4,216,103,221,60,0,4,216,104,221,60,0,4,216,105,221,60,0,4,216,106,221,60,0,4,216,107,221,60,0,4,216,108,221,60,0,4,216,109,221,60,0,4,216,110,221,60,0,4,216,111,221,60,0,4,216,118,221,60,0,4,216,112,221,60,0,4,216,113,221,60,0,4,216,114,221,60,0,4,216,196,221,60,0,4,216,218,221,60,0,4,216,131,221,60,0,4,216,132,221,60,0,4,216,133,221,60,0,4,216,134,221,60,0,4,216,135,221,60,0,4,216,136,221,60,0,4,216,137,221,60,0,4,216,138,221,60,0,4,216,139,221,60,0,4,216,140,221,60,0,4,216,141,221,60,0,4,216,142,221,60,0,4,216,143,221,60,0,4,216,144,221,60,0,4,216,145,221,60,0,4,216,146,221,60,0,4,216,147,221,60,0,4,216,148,221,60,0,4,216,149,221,60,0,4,216,150,221,60,0,4,216,151,221,60,0,4,216,152,221,60,0,4,216,153,221,60,0,4,216,154,221,60,0,4,216,155,221,60,0,4,216,156,221,60,0,4,216,157,221,60,0,4,216,158,221,60,0,4,216,159,221,60,0,4,216,160,221,60,0,4,216,161,221,60,0,4,216,162,221,60,0,4,216,163,221,60,0,4,216,164,221,60,0,4,216,165,221,60,0,4,216,166,221,60,0,4,216,167,221,60,0,4,216,168,221,60,0,4,216,169,221,60,0,4,216,170,221,60,0,4,216,171,221,60,0,4,216,172,221,60,0,4,216,173,221,60,0,4,216,174,221,60,0,4,216,175,221,60,0,4,216,176,221,60,0,4,216,177,221,60,0,4,216,178,221,60,0,4,216,193,221,60,0,4,216,194,221,60,0,4,216,195,221,60,0,4,216,220,221,60,0,4,216,179,221,60,0,4,216,180,221,60,0,4,216,181,221,60,0,4,216,182,221,60,0,4,216,183,221,60,0,4,216,184,221,60,0,4,216,185,221,60,0,4,216,186,221,60,0,4,216,187,221,60,0,4,216,188,221,60,0,4,216,206,221,60,0,4,216,189,221,60,0,4,216,190,221,60,0,4,216,191,221,60,0,4,216,192,221,60,0,4,216,0,222,60,0,4,216,1,222,60,0,4,216,64,222,60,0,4,216,2,222,60,0,4,216,3,222,60,0,4,216,4,222,60,0,4,216,5,222,60,0,4,216,6,222,60,0,4,216,7,222,60,0,4,216,8,222,60,0,4,216,63,222,60,0,4,216,9,222,60,0,4,216,10,222,60,0,4,216,11,222,60,0,4,216,12,222,60,0,4,216,13,222,60,0,4,216,14,222,60,0,4,216,15,222,60,0,4,216,16,222,60,0,4,216,17,222,60,0,4,216,19,222,60,0,4,216,20,222,60,0,4,216,21,222,60,0,4,216,22,222,60,0,4,216,23,222,60,0,4,216,24,222,60,0,4,216,25,222,60,0,4,216,26,222,60,0,4,216,27,222,60,0,4,216,28,222,60,0,4,216,29,222,60,0,4,216,30,222,60,0,4,216,31,222,60,0,4,216,32,222,60,0,4,216,33,222,60,0,4,216,34,222,60,0,4,216,35,222,60,0,4,216,36,222,60,0,4,216,37,222,60,0,4,216,38,222,60,0,4,216,39,222,60,0,4,216,40,222,60,0,4,216,41,222,60,0,4,216,42,222,60,0,4,216,43,222,60,0,4,216,44,222,60,0,4,216,45,222,60,0,4,216,46,222,60,0,4,216,47,222,60,0,4,216,65,222,60,0,4,216,48,222,60,0,4,216,49,222,60,0,4,216,50,222,60,0,4,216,51,222,60,0,4,216,53,222,60,0,4,216,176,222,60,0,4,216,177,222,60,0,4,216,178,222,60,0,4,216,179,222,60,0,4,216,180,222,60,0,4,216,181,222,60,0,4,216,182,222,60,0,4,216,183,222,60,0,4,216,184,222,60,0,4,216,185,222,60,0,4,216,186,222,60,0,4,216,187,222,60,0,4,216,188,222,60,0,4,216,189,222,60,0,4,216,190,222,60,0,4,216,191,222,60,0,4,216,192,222,60,0,4,216,193,222,60,0,4,216,194,222,60,0,4,216,195,222,60,0,4,216,196,222,60,0,4,216,197,222,60,0,4,216,198,222,60,0,4,216,199,222,60,0,4,216,200,222,60,0,4,216,201,222,60,0,4,216,202,222,60,0,4,216,203,222,60,0,4,216,204,222,60,0,4,216,205,222,60,0,4,216,206,222,60,0,4,216,207,222,60,0,4,216,208,222,60,0,4,216,209,222,60,0,4,216,210,222,60,0,4,216,211,222,60,0,4,216,212,222,60,0,4,216,213,222,60,0,4,216,214,222,60,0,4,216,215,222,60,0,4,216,216,222,60,0,4,216,217,222,60,0,4,216,218,222,60,0,4,216,219,222,60,0,4,216,220,222,60,0,4,216,221,222,60,0,4,216,222,222,60,0,4,216,224,222,60,0,4,216,225,222,60,0,4,216,226,222,60,0,4,216,227,222,60,0,4,216,228,222,60,0,4,216,229,222,60,0,4,216,230,222,60,0,4,216,231,222,60,0,4,216,232,222,60,0,4,216,234,222,60,0,4,216,128,222,60,0,4,216,129,222,60,0,4,216,130,222,60,0,4,216,131,222,60,0,4,216,165,222,60,0,4,216,166,222,60,0,4,216,132,222,60,0,4,216,133,222,60,0,4,216,134,222,60,0,4,216,136,222,60,0,4,216,138,222,60,0,4,216,139,222,60,0,4,216,140,222,60,0,4,216,141,222,60,0,4,216,143,222,60,0,4,216,144,222,60,0,4,216,145,222,60,0,4,216,146,222,60,0,4,216,147,222,60,0,4,216,148,222,60,0,4,216,149,222,60,0,4,216,150,222,60,0,4,216,151,222,60,0,4,216,152,222,60,0,4,216,153,222,60,0,4,216,154,222,60,0,4,216,155,222,60,0,4,216,156,222,60,0,4,216,157,222,60,0,4,216,159,222,60,0,4,216,160,222,60,0,4,216,161,222,60,0,4,216,162,222,60,0,4,216,163,222,60,0,4,216,164,222,60,0,4,216,167,222,60,0,4,216,168,222,60,0,4,216,80,223,60,0,4,216,5,223,60,0,4,216,6,223,60,0,4,216,7,223,60,0,4,216,8,223,60,0,4,216,9,223,60,0,4,216,10,223,60,0,4,216,11,223,60,0,4,216,96,223,60,0,4,216,12,223,60,0,4,216,97,223,60,0,4,216,15,223,60,0,4,216,16,223,60,0,4,216,19,223,60,0,4,216,20,223,60,0,4,216,21,223,60,0,4,216,22,223,60,0,4,216,23,223,60,0,4,216,24,223,60,0,4,216,25,223,60,0,4,216,26,223,60,0,4,216,27,223,60,0,4,216,28,223,60,0,4,216,29,223,60,0,4,216,30,223,60,0,4,216,31,223,60,0,4,216,32,223,60,0,4,216,33,223,60,0,4,216,34,223,60,0,4,216,35,223,60,0,4,216,36,223,60,0,4,216,37,223,60,0,4,216,38,223,60,0,4,216,39,223,60,0,4,216,40,223,60,0,4,216,42,223,60,0,4,216,43,223,60,0,4,216,44,223,60,0,4,216,45,223,60,0,4,216,46,223,60,0,4,216,47,223,60,0,4,216,48,223,60,0,4,216,50,223,60,0,4,216,51,223,60,0,4,216,53,223,60,0,4,216,54,223,60,0,4,216,55,223,60,0,4,216,56,223,60,0,4,216,57,223,60,0,4,216,61,223,60,0,4,216,94,223,60,0,4,216,95,223,60,0,4,216,62,223,60,0,4,216,63,223,60,0,4,216,64,223,60,0,4,216,65,223,60,0,4,216,66,223,60,0,4,216,67,223,60,0,4,216,68,223,60,0,4,216,98,223,60,0,4,216,99,223,60,0,4,216,71,223,60,0,4,216,72,223,60,0,4,216,75,223,60,0,4,216,76,223,60,0,4,216,77,223,60,0,4,216,87,223,60,0,4,216,93,223,60,0,5,216,73,220,60,0,5,216,74,220,60,0,5,216,0,220,60,0,5,216,1,220,60,0,5,216,2,220,60,0,5,216,3,220,60,0,5,216,4,220,60,0,5,216,5,220,60,0,5,216,6,220,60,0,5,216,7,220,60,0,5,216,8,220,60,0,5,216,9,220,60,0,5,216,10,220,60,0,5,216,11,220,60,0,5,216,12,220,60,0,5,216,13,220,60,0,5,216,14,220,60,0,5,216,15,220,60,0,5,216,16,220,60,0,5,216,17,220,60,0,5,216,18,220,60,0,5,216,19,220,60,0,5,216,20,220,60,0,5,216,21,220,60,0,5,216,22,220,60,0,5,216,23,220,60,0,5,216,24,220,60,0,5,216,25,220,60,0,5,216,26,220,60,0,5,216,27,220,60,0,5,216,28,220,60,0,5,216,29,220,60,0,5,216,30,220,60,0,5,216,31,220,60,0,5,216,32,220,60,0,5,216,33,220,60,0,5,216,34,220,60,0,5,216,35,220,60,0,5,216,36,220,60,0,5,216,37,220,60,0,5,216,38,220,60,0,5,216,39,220,60,0,5,216,40,220,60,0,5,216,41,220,60,0,5,216,42,220,60,0,5,216,43,220,60,0,5,216,44,220,60,0,5,216,45,220,60,0,5,216,46,220,60,0,5,216,47,220,60,0,5,216,48,220,60,0,5,216,49,220,60,0,5,216,50,220,60,0,5,216,51,220,60,0,5,216,52,220,60,0,5,216,71,220,60,0,5,216,96,220,60,0,5,216,97,220,60,0,5,216,72,220,60,0,5,216,95,220,60,0,5,216,53,220,60,0,5,216,54,220,60,0,5,216,55,220,60,0,5,216,56,220,60,0,5,216,57,220,60,0,5,216,58,220,60,0,5,216,59,220,60,0,5,216,60,220,60,0,5,216,61,220,60,0,5,216,62,220,60,0,5,216,63,220,60,0,5,216,64,220,60,0,5,216,65,220,60,0,5,216,66,220,60,0,5,216,199,220,60,0,5,216,128,220,60,0,5,216,129,220,60,0,5,216,130,220,60,0,5,216,131,220,60,0,5,216,132,220,60,0,5,216,133,220,60,0,5,216,134,220,60,0,5,216,135,220,60,0,5,216,136,220,60,0,5,216,137,220,60,0,5,216,138,220,60,0,5,216,139,220,60,0,5,216,140,220,60,0,5,216,141,220,60,0,5,216,142,220,60,0,5,216,143,220,60,0,5,216,144,220,60,0,5,216,145,220,60,0,5,216,146,220,60,0,5,216,147,220,60,0,5,216,148,220,60,0,5,216,149,220,60,0,5,216,150,220,60,0,5,216,151,220,60,0,5,216,152,220,60,0,5,216,153,220,60,0,5,216,154,220,60,0,5,216,155,220,60,0,5,216,156,220,60,0,5,216,157,220,60,0,5,216,158,220,60,0,5,216,159,220,60,0,5,216,160,220,60,0,5,216,161,220,60,0,5,216,162,220,60,0,5,216,163,220,60,0,5,216,164,220,60,0,5,216,165,220,60,0,5,216,166,220,60,0,5,216,167,220,60,0,5,216,168,220,60,0,5,216,169,220,60,0,5,216,170,220,60,0,5,216,171,220,60,0,5,216,172,220,60,0,5,216,173,220,60,0,5,216,174,220,60,0,5,216,175,220,60,0,5,216,196,220,60,0,5,216,197,220,60,0,5,216,176,220,60,0,5,216,177,220,60,0,5,216,178,220,60,0,5,216,179,220,60,0,5,216,180,220,60,0,5,216,181,220,60,0,5,216,182,220,60,0,5,216,183,220,60,0,5,216,184,220,60,0,5,216,185,220,60,0,5,216,186,220,60,0,5,216,187,220,60,0,5,216,188,220,60,0,5,216,189,220,60,0,5,216,190,220,60,0,5,216,194,220,60,0,5,216,128,221,60,0,5,216,129,221,60,0,5,216,130,221,60,0,60,0,5,216,216,221,60,0,60,0,5,216,217,221,60,0,5,216,131,221,60,0,60,0,5,216,218,221,60,0,5,216,132,221,60,0,60,0,5,216,219,221,60,0,5,216,133,221,60,0,5,216,134,221,60,0,5,216,135,221,60,0,5,216,136,221,60,0,5,216,137,221,60,0,5,216,138,221,60,0,5,216,139,221,60,0,5,216,140,221,60,0,5,216,141,221,60,0,5,216,142,221,60,0,5,216,143,221,60,0,5,216,144,221,60,0,5,216,145,221,60,0,5,216,146,221,60,0,5,216,147,221,60,0,5,216,148,221,60,0,5,216,149,221,60,0,5,216,150,221,60,0,5,216,151,221,60,0,5,216,152,221,60,0,5,216,153,221,60,0,5,216,154,221,60,0,5,216,155,221,60,0,5,216,156,221,60,0,5,216,157,221,60,0,5,216,158,221,60,0,5,216,159,221,60,0,5,216,160,221,60,0,5,216,161,221,60,0,5,216,162,221,60,0,5,216,163,221,60,0,5,216,164,221,60,0,5,216,165,221,60,0,5,216,166,221,60,0,5,216,167,221,60,0,5,216,168,221,60,0,5,216,169,221,60,0,5,216,170,221,60,0,5,216,171,221,60,0,5,216,172,221,60,0,5,216,173,221,60,0,5,216,174,221,60,0,5,216,175,221,60,0,5,216,176,221,60,0,5,216,177,221,60,0,5,216,178,221,60,0,60,0,5,216,220,221,60,0,5,216,179,221,60,0,60,0,5,216,221,221,60,0,5,216,180,221,60,0,5,216,181,221,60,0,5,216,184,221,60,0,5,216,185,221,60,0,5,216,186,221,60,0,5,216,187,221,60,0,5,216,191,221,60,0,5,216,0,222,60,0,5,216,1,222,60,0,5,216,2,222,60,0,5,216,3,222,60,0,5,216,4,222,60,0,5,216,5,222,60,0,5,216,6,222,60,0,5,216,7,222,60,0,5,216,8,222,60,0,5,216,9,222,60,0,5,216,10,222,60,0,5,216,11,222,60,0,5,216,12,222,60,0,5,216,13,222,60,0,5,216,14,222,60,0,5,216,15,222,60,0,5,216,16,222,60,0,5,216,17,222,60,0,5,216,18,222,60,0,5,216,19,222,60,0,5,216,20,222,60,0,5,216,21,222,60,0,5,216,22,222,60,0,5,216,23,222,60,0,5,216,24,222,60,0,5,216,25,222,60,0,5,216,26,222,60,0,5,216,27,222,60,0,5,216,28,222,60,0,5,216,29,222,60,0,5,216,30,222,60,0,5,216,31,222,60,0,5,216,32,222,60,0,5,216,33,222,60,0,5,216,34,222,60,0,5,216,35,222,60,0,5,216,36,222,60,0,5,216,37,222,60,0,5,216,38,222,60,0,5,216,39,222,60,0,5,216,40,222,60,0,5,216,41,222,60,0,5,216,42,222,60,0,5,216,43,222,60,0,5,216,44,222,60,0,5,216,45,222,60,0,5,216,46,222,60,0,5,216,47,222,60,0,5,216,48,222,60,0,5,216,49,222,60,0,5,216,50,222,60,0,5,216,51,222,60,0,5,216,52,222,60,0,5,216,53,222,60,0,5,216,54,222,60,0,5,216,55,222,60,0,5,216,56,222,60,0,5,216,57,222,60,0,5,216,58,222,60,0,5,216,59,222,60,0,5,216,60,222,60,0,5,216,63,222,60,0,5,216,68,222,60,0,5,216,128,222,60,0,5,216,129,222,60,0,5,216,130,222,60,0,5,216,131,222,60,0,5,216,132,222,60,0,5,216,133,222,60,0,5,216,134,222,60,0,5,216,135,222,60,0,5,216,136,222,60,0,5,216,137,222,60,0,5,216,168,222,60,0,5,216,167,222,60,0,5,216,169,222,60,0,5,216,138,222,60,0,5,216,139,222,60,0,5,216,184,222,60,0,5,216,140,222,60,0,5,216,141,222,60,0,5,216,142,222,60,0,5,216,143,222,60,0,5,216,144,222,60,0,5,216,145,222,60,0,5,216,146,222,60,0,5,216,147,222,60,0,5,216,148,222,60,0,5,216,149,222,60,0,5,216,150,222,60,0,5,216,151,222,60,0,5,216,152,222,60,0,5,216,153,222,60,0,5,216,154,222,60,0,5,216,155,222,60,0,5,216,156,222,60,0,5,216,157,222,60,0,5,216,158,222,60,0,5,216,159,222,60,0,5,216,160,222,60,0,5,216,161,222,60,0,5,216,162,222,60,0,5,216,163,222,60,0,5,216,164,222,60,0,5,216,165,222,60,0,5,216,166,222,60,0,5,216,170,222,60,0,5,216,173,222,60,0,5,216,174,222,60,0,5,216,175,222,60,0,5,216,176,222,60,0,5,216,177,222,60,0,5,216,178,222,60,0,5,216,179,222,60,0,5,216,180,222,60,0,5,216,181,222,60,0,5,216,182,222,60,0,6,216,0,221,60,0,6,216,1,221,60,0,6,216,2,221,60,0,6,216,3,221,60,0,6,216,4,221,60,0,6,216,5,221,60,0,6,216,6,221,60,0,6,216,9,221,60,0,6,216,12,221,60,0,6,216,13,221,60,0,6,216,14,221,60,0,6,216,15,221,60,0,6,216,16,221,60,0,6,216,63,221,60,0,6,216,17,221,60,0,6,216,18,221,60,0,6,216,19,221,60,0,6,216,21,221,60,0,6,216,22,221,60,0,6,216,24,221,60,0,6,216,25,221,60,0,6,216,26,221,60,0,6,216,27,221,60,0,6,216,28,221,60,0,6,216,29,221,60,0,6,216,30,221,60,0,6,216,31,221,60,0,6,216,32,221,60,0,6,216,33,221,60,0,6,216,34,221,60,0,6,216,35,221,60,0,6,216,36,221,60,0,6,216,37,221,60,0,6,216,64,221,60,0,6,216,38,221,60,0,6,216,65,221,60,0,6,216,39,221,60,0,6,216,66,221,60,0,6,216,40,221,60,0,6,216,41,221,60,0,6,216,42,221,60,0,6,216,43,221,60,0,6,216,44,221,60,0,6,216,45,221,60,0,6,216,46,221,60,0,6,216,47,221,60,0,6,216,48,221,60,0,6,216,49,221,60,0,6,216,50,221,60,0,6,216,51,221,60,0,6,216,52,221,60,0,6,216,53,221,60,0,6,216,55,221,60,0,6,216,56,221,60,0,6,216,61,221,60,0,6,216,62,221,60,0,6,216,160,221,60,0,6,216,161,221,60,0,6,216,162,221,60,0,6,216,163,221,60,0,6,216,164,221,60,0,6,216,165,221,60,0,6,216,166,221,60,0,6,216,167,221,60,0,6,216,170,221,60,0,6,216,171,221,60,0,6,216,172,221,60,0,6,216,173,221,60,0,6,216,174,221,60,0,6,216,175,221,60,0,6,216,176,221,60,0,6,216,177,221,60,0,6,216,178,221,60,0,6,216,179,221,60,0,6,216,180,221,60,0,6,216,181,221,60,0,6,216,182,221,60,0,6,216,183,221,60,0,6,216,184,221,60,0,6,216,185,221,60,0,6,216,186,221,60,0,6,216,187,221,60,0,6,216,188,221,60,0,6,216,189,221,60,0,6,216,190,221,60,0,6,216,191,221,60,0,6,216,192,221,60,0,6,216,193,221,60,0,6,216,194,221,60,0,6,216,195,221,60,0,6,216,196,221,60,0,6,216,197,221,60,0,6,216,198,221,60,0,6,216,199,221,60,0,6,216,200,221,60,0,6,216,201,221,60,0,6,216,202,221,60,0,6,216,203,221,60,0,6,216,204,221,60,0,6,216,205,221,60,0,6,216,206,221,60,0,6,216,207,221,60,0,6,216,208,221,60,0,6,216,225,221,60,0,6,216,227,221,60,0,6,216,209,221,60,0,6,216,210,221,60,0,6,216,211,221,60,0,6,216,212,221,60,0,6,216,213,221,60,0,6,216,214,221,60,0,6,216,215,221,60,0,6,216,218,221,60,0,6,216,228,221,60,0,6,216,219,221,60,0,6,216,220,221,60,0,6,216,221,221,60,0,6,216,224,221,60,0,6,216,0,220,60,0,6,216,1,220,60,0,6,216,2,220,60,0,6,216,3,220,60,0,6,216,4,220,60,0,6,216,5,220,60,0,6,216,6,220,60,0,6,216,7,220,60,0,6,216,8,220,60,0,6,216,9,220,60,0,6,216,10,220,60,0,6,216,11,220,60,0,6,216,12,220,60,0,6,216,13,220,60,0,6,216,14,220,60,0,6,216,15,220,60,0,6,216,16,220,60,0,6,216,17,220,60,0,6,216,18,220,60,0,6,216,19,220,60,0,6,216,20,220,60,0,6,216,21,220,60,0,6,216,22,220,60,0,6,216,23,220,60,0,6,216,24,220,60,0,6,216,25,220,60,0,6,216,26,220,60,0,6,216,27,220,60,0,6,216,28,220,60,0,6,216,29,220,60,0,6,216,30,220,60,0,6,216,31,220,60,0,6,216,32,220,60,0,6,216,33,220,60,0,6,216,34,220,60,0,6,216,35,220,60,0,6,216,36,220,60,0,6,216,37,220,60,0,6,216,38,220,60,0,6,216,39,220,60,0,6,216,40,220,60,0,6,216,41,220,60,0,6,216,42,220,60,0,6,216,43,220,60,0,6,216,44,220,60,0,6,216,45,220,60,0,6,216,46,220,60,0,6,216,47,220,60,0,6,216,48,220,60,0,6,216,49,220,60,0,6,216,50,220,60,0,6,216,51,220,60,0,6,216,52,220,60,0,6,216,53,220,60,0,6,216,54,220,60,0,6,216,57,220,60,0,5,216,0,223,60,0,5,216,1,223,60,0,5,216,2,223,60,0,5,216,3,223,60,0,5,216,4,223,60,0,60,0,5,216,5,223,60,0,5,216,6,223,60,0,5,216,7,223,60,0,5,216,8,223,60,0,60,0,5,216,26,223,60,0,5,216,9,223,60,0,5,216,10,223,60,0,5,216,11,223,60,0,5,216,12,223,60,0,5,216,13,223,60,0,5,216,14,223,60,0,5,216,15,223,60,0,5,216,16,223,60,0,5,216,17,223,60,0,5,216,18,223,60,0,5,216,19,223,60,0,5,216,20,223,60,0,5,216,21,223,60,0,60,0,5,216,22,223,60,0,5,216,23,223,60,0,5,216,24,223,60,0,5,216,25,223,60,0,5,216,64,223,60,0,5,216,65,223,60,0,5,216,66,223,60,0,5,216,67,223,60,0,5,216,68,223,60,0,5,216,69,223,60,0,5,216,70,223,60,0,5,216,32,223,60,0,5,216,33,223,60,0,5,216,34,223,60,0,5,216,35,223,60,0,5,216,36,223,60,0,5,216,37,223,60,0,5,216,38,223,60,0,5,216,39,223,60,0,5,216,40,223,60,0,5,216,41,223,60,0,5,216,42,223,60,0,5,216,43,223,60,0,5,216,29,223,60,0,5,216,30,223,60,0,5,216,31,223,60,0,7,216,0,221,60,0,7,216,1,221,60,0,7,216,2,221,60,0,7,216,3,221,60,0,7,216,4,221,60,0,7,216,5,221,60,0,7,216,6,221,60,0,7,216,8,221,60,0,7,216,9,221,60,0,7,216,11,221,60,0,7,216,12,221,60,0,7,216,13,221,60,0,7,216,14,221,60,0,7,216,15,221,60,0,7,216,16,221,60,0,7,216,17,221,60,0,7,216,18,221,60,0,7,216,19,221,60,0,7,216,20,221,60,0,7,216,21,221,60,0,7,216,22,221,60,0,7,216,23,221,60,0,7,216,24,221,60,0,7,216,25,221,60,0,7,216,26,221,60,0,7,216,27,221,60,0,7,216,28,221,60,0,7,216,29,221,60,0,7,216,30,221,60,0,7,216,31,221,60,0,7,216,32,221,60,0,7,216,33,221,60,0,7,216,34,221,60,0,7,216,35,221,60,0,7,216,36,221,60,0,7,216,37,221,60,0,7,216,38,221,60,0,60,0,60,0,7,216,70,221,60,0,60,0,60,0,7,216,71,221,60,0,7,216,39,221,60,0,7,216,40,221,60,0,7,216,41,221,60,0,7,216,42,221,60,0,7,216,43,221,60,0,7,216,44,221,60,0,7,216,45,221,60,0,7,216,46,221,60,0,7,216,47,221,60,0,7,216,48,221,60,0,7,216,49,221,60,0,7,216,50,221,60,0,7,216,51,221,60,0,7,216,52,221,60,0,7,216,53,221,60,0,7,216,54,221,60,0,7,216,58,221,60,0,7,216,60,221,60,0,7,216,61,221,60,0,7,216,63,221,60,0,7,216,68,221,60,0,7,216,69,221,60,0,7,216,152,221,60,0,7,216,96,221,60,0,7,216,97,221,60,0,7,216,98,221,60,0,7,216,99,221,60,0,7,216,100,221,60,0,7,216,101,221,60,0,7,216,103,221,60,0,7,216,104,221,60,0,7,216,106,221,60,0,7,216,107,221,60,0,7,216,108,221,60,0,7,216,109,221,60,0,7,216,110,221,60,0,7,216,111,221,60,0,7,216,112,221,60,0,7,216,113,221,60,0,7,216,114,221,60,0,7,216,115,221,60,0,7,216,116,221,60,0,7,216,117,221,60,0,7,216,118,221,60,0,7,216,119,221,60,0,7,216,120,221,60,0,7,216,121,221,60,0,7,216,122,221,60,0,7,216,123,221,60,0,7,216,124,221,60,0,7,216,125,221,60,0,7,216,126,221,60,0,7,216,127,221,60,0,7,216,128,221,60,0,7,216,129,221,60,0,7,216,130,221,60,0,7,216,131,221,60,0,7,216,132,221,60,0,7,216,133,221,60,0,7,216,134,221,60,0,7,216,135,221,60,0,7,216,136,221,60,0,7,216,137,221,60,0,7,216,138,221,60,0,7,216,139,221,60,0,7,216,140,221,60,0,7,216,141,221,60,0,7,216,142,221,60,0,7,216,144,221,60,0,7,216,145,221,60,0,7,216,147,221,60,0,7,216,148,221,60,0,7,216,151,221,60,0,131,27,60,0,60,0,60,0,186,27,60,0,132,27,60,0,133,27,60,0,134,27,60,0,135,27,60,0,136,27,60,0,137,27,60,0,138,27,60,0,60,0,60,0,190,27,60,0,174,27,60,0,139,27,60,0,140,27,60,0,141,27,60,0,142,27,60,0,143,27,60,0,144,27,60,0,145,27,60,0,146,27,60,0,147,27,60,0,148,27,60,0,149,27,60,0,150,27,60,0,151,27,60,0,152,27,60,0,189,27,60,0,153,27,60,0,60,0,60,0,191,27,60,0,172,27,60,0,154,27,60,0,161,27,60,0,155,27,60,0,162,27,60,0,187,27,60,0,156,27,60,0,163,27,60,0,188,27,60,0,157,27,60,0,173,27,60,0,158,27,60,0,159,27,60,0,175,27,60,0,160,27,60,0,164,27,60,0,165,27,60,0,166,27,60,0,167,27,60,0,168,27,60,0,169,27,60,0,170,27,60,0,171,27,60,0,4,216,5,220,60,0,4,216,6,220,60,0,4,216,7,220,60,0,4,216,8,220,60,0,4,216,9,220,60,0,4,216,10,220,60,0,4,216,11,220,60,0,4,216,12,220,60,0,4,216,13,220,60,0,4,216,14,220,60,0,4,216,113,220,60,0,4,216,15,220,60,0,4,216,16,220,60,0,4,216,114,220,60,0,4,216,17,220,60,0,4,216,18,220,60,0,4,216,19,220,60,0,4,216,20,220,60,0,4,216,21,220,60,0,4,216,22,220,60,0,4,216,23,220,60,0,4,216,24,220,60,0,4,216,25,220,60,0,4,216,26,220,60,0,4,216,27,220,60,0,4,216,28,220,60,0,4,216,29,220,60,0,4,216,30,220,60,0,4,216,31,220,60,0,4,216,32,220,60,0,4,216,33,220,60,0,4,216,34,220,60,0,4,216,35,220,60,0,4,216,36,220,60,0,4,216,37,220,60,0,4,216,38,220,60,0,4,216,39,220,60,0,4,216,40,220,60,0,4,216,41,220,60,0,4,216,42,220,60,0,4,216,43,220,60,0,4,216,44,220,60,0,4,216,45,220,60,0,4,216,46,220,60,0,4,216,47,220,60,0,4,216,48,220,60,0,4,216,49,220,60,0,4,216,50,220,60,0,4,216,51,220,60,0,4,216,3,220,60,0,4,216,4,220,60,0,4,216,52,220,60,0,4,216,53,220,60,0,4,216,117,220,60,0,4,216,54,220,60,0,4,216,55,220,60,0,4,216,56,220,60,0,4,216,57,220,60,0,4,216,58,220,60,0,4,216,59,220,60,0,4,216,60,220,60,0,4,216,61,220,60,0,4,216,62,220,60,0,4,216,63,220,60,0,4,216,64,220,60,0,4,216,65,220,60,0,4,216,115,220,60,0,4,216,66,220,60,0,4,216,67,220,60,0,4,216,116,220,60,0,4,216,68,220,60,0,4,216,69,220,60,0,4,216,70,220,60,0,4,216,127,220,60,0,4,216,112,220,60,0,14,32,2,216,0,222,14,32,60,0,2,216,1,222,60,0,2,216,2,222,60,0,2,216,3,222,60,0,2,216,5,222,60,0,2,216,6,222,60,0,2,216,12,222,60,0,14,32,2,216,16,222,14,32,60,0,14,32,2,216,50,222,14,32,60,0,14,32,2,216,17,222,14,32,60,0,14,32,2,216,18,222,14,32,60,0,14,32,2,216,19,222,14,32,60,0,14,32,2,216,21,222,14,32,60,0,14,32,2,216,22,222,14,32,60,0,14,32,2,216,23,222,14,32,60,0,14,32,2,216,25,222,14,32,60,0,14,32,2,216,26,222,14,32,60,0,14,32,2,216,52,222,14,32,60,0,14,32,2,216,27,222,14,32,60,0,14,32,2,216,51,222,14,32,60,0,14,32,2,216,28,222,14,32,60,0,14,32,2,216,29,222,14,32,60,0,14,32,2,216,30,222,14,32,60,0,14,32,2,216,31,222,14,32,60,0,14,32,2,216,32,222,14,32,60,0,14,32,2,216,33,222,14,32,60,0,14,32,2,216,34,222,14,32,60,0,14,32,2,216,35,222,14,32,60,0,14,32,2,216,36,222,14,32,60,0,14,32,2,216,37,222,14,32,60,0,14,32,2,216,38,222,14,32,60,0,14,32,2,216,39,222,14,32,60,0,14,32,2,216,40,222,14,32,60,0,14,32,2,216,41,222,14,32,60,0,14,32,2,216,42,222,14,32,60,0,14,32,2,216,43,222,14,32,60,0,14,32,2,216,44,222,14,32,60,0,14,32,2,216,53,222,14,32,60,0,14,32,2,216,45,222,14,32,60,0,14,32,2,216,46,222,14,32,60,0,14,32,2,216,47,222,14,32,60,0,14,32,2,216,48,222,14,32,60,0,14,32,2,216,49,222,14,32,60,0,2,216,63,222,60,0,7,216,0,220,60,0,7,216,1,220,60,0,7,216,2,220,60,0,7,216,3,220,60,0,7,216,4,220,60,0,7,216,5,220,60,0,7,216,6,220,60,0,7,216,7,220,60,0,7,216,8,220,60,0,7,216,10,220,60,0,7,216,11,220,60,0,7,216,12,220,60,0,7,216,13,220,60,0,7,216,14,220,60,0,7,216,15,220,60,0,7,216,16,220,60,0,7,216,17,220,60,0,7,216,18,220,60,0,7,216,19,220,60,0,7,216,20,220,60,0,7,216,21,220,60,0,7,216,22,220,60,0,7,216,23,220,60,0,7,216,24,220,60,0,7,216,25,220,60,0,7,216,26,220,60,0,7,216,27,220,60,0,7,216,28,220,60,0,7,216,29,220,60,0,7,216,30,220,60,0,7,216,31,220,60,0,7,216,32,220,60,0,7,216,33,220,60,0,7,216,34,220,60,0,7,216,35,220,60,0,7,216,36,220,60,0,7,216,37,220,60,0,7,216,38,220,60,0,7,216,39,220,60,0,7,216,40,220,60,0,7,216,41,220,60,0,7,216,42,220,60,0,7,216,43,220,60,0,7,216,44,220,60,0,7,216,45,220,60,0,7,216,46,220,60,0,7,216,64,220,60,0,7,216,47,220,60,0,7,216,48,220,60,0,7,216,49,220,60,0,7,216,50,220,60,0,7,216,51,220,60,0,7,216,52,220,60,0,7,216,53,220,60,0,7,216,54,220,60,0,7,216,56,220,60,0,7,216,57,220,60,0,7,216,58,220,60,0,7,216,59,220,60,0,7,216,63,220,60,0,1,14,60,0,2,14,60,0,3,14,60,0,4,14,60,0,5,14,60,0,6,14,60,0,7,14,60,0,8,14,60,0,9,14,60,0,10,14,60,0,11,14,60,0,12,14,60,0,13,14,60,0,14,14,60,0,15,14,60,0,16,14,60,0,17,14,60,0,18,14,60,0,19,14,60,0,20,14,60,0,21,14,60,0,22,14,60,0,23,14,60,0,24,14,60,0,25,14,60,0,26,14,60,0,27,14,60,0,28,14,60,0,29,14,60,0,30,14,60,0,31,14,60,0,32,14,60,0,33,14,60,0,34,14,60,0,35,14,60,0,36,14,60,0,37,14,60,0,38,14,60,0,39,14,60,0,40,14,60,0,41,14,60,0,42,14,60,0,43,14,60,0,44,14,60,0,45,14,60,0,46,14,60,0,47,14,60,0,48,14,60,0,49,14,60,0,50,14,60,0,51,14,61,0,77,14,50,14,60,0,52,14,60,0,53,14,60,0,54,14,60,0,55,14,60,0,56,14,60,0,57,14,60,0,58,14,60,0,64,14,60,0,65,14,60,0,66,14,60,0,67,14,60,0,68,14,60,0,69,14,60,0,222,14,60,0,129,14,60,0,130,14,60,0,132,14,60,0,134,14,60,0,135,14,60,0,136,14,60,0,137,14,60,0,170,14,60,0,138,14,60,0,140,14,60,0,142,14,60,0,223,14,60,0,141,14,60,0,143,14,60,0,144,14,60,0,145,14,60,0,146,14,60,0,147,14,60,0,148,14,60,0,149,14,60,0,150,14,60,0,151,14,60,0,152,14,60,0,153,14,60,0,154,14,60,0,155,14,60,0,156,14,60,0,157,14,60,0,158,14,60,0,159,14,60,0,160,14,60,0,161,14,60,0,162,14,60,0,163,14,60,0,165,14,60,0,167,14,60,0,168,14,60,0,169,14,60,0,171,14,60,0,60,0,60,0,220,14,47,0,153,14,60,0,60,0,60,0,221,14,47,0,161,14,60,0,172,14,60,0,173,14,60,0,174,14,60,0,175,14,60,0,176,14,60,0,177,14,60,0,178,14,60,0,179,14,61,0,205,14,178,14,60,0,180,14,60,0,181,14,60,0,182,14,60,0,183,14,60,0,184,14,60,0,185,14,60,0,186,14,60,0,187,14,60,0,188,14,60,0,189,14,60,0,192,14,60,0,193,14,60,0,194,14,60,0,195,14,60,0,196,14,60,0,128,170,60,0,129,170,60,0,130,170,60,0,131,170,60,0,132,170,60,0,133,170,60,0,134,170,60,0,135,170,60,0,136,170,60,0,137,170,60,0,138,170,60,0,139,170,60,0,140,170,60,0,141,170,60,0,142,170,60,0,143,170,60,0,144,170,60,0,145,170,60,0,146,170,60,0,147,170,60,0,148,170,60,0,149,170,60,0,150,170,60,0,151,170,60,0,152,170,60,0,153,170,60,0,154,170,60,0,155,170,60,0,156,170,60,0,157,170,60,0,158,170,60,0,159,170,60,0,160,170,60,0,161,170,60,0,162,170,60,0,163,170,60,0,164,170,60,0,165,170,60,0,166,170,60,0,167,170,60,0,168,170,60,0,169,170,60,0,170,170,60,0,171,170,60,0,172,170,60,0,173,170,60,0,174,170,60,0,175,170,60,0,176,170,60,0,177,170,60,0,178,170,60,0,179,170,60,0,180,170,60,0,181,170,60,0,182,170,60,0,183,170,60,0,184,170,60,0,185,170,60,0,186,170,60,0,187,170,60,0,188,170,60,0,189,170,60,0,190,170,60,0,192,170,60,0,194,170,60,0,219,170,60,0,220,170,60,0,64,15,60,0,144,15,60,0,107,15,60,0,65,15,60,0,145,15,60,0,66,15,60,0,146,15,60,0,68,15,60,0,148,15,60,0,69,15,60,0,149,15,60,0,70,15,60,0,150,15,60,0,71,15,60,0,151,15,60,0,73,15,60,0,153,15,60,0,74,15,60,0,154,15,60,0,75,15,60,0,155,15,60,0,76,15,60,0,156,15,60,0,78,15,60,0,158,15,60,0,79,15,60,0,159,15,60,0,80,15,60,0,160,15,60,0,81,15,60,0,161,15,60,0,83,15,60,0,163,15,60,0,84,15,60,0,164,15,60,0,85,15,60,0,165,15,60,0,86,15,60,0,166,15,60,0,88,15,60,0,168,15,60,0,89,15,60,0,169,15,60,0,90,15,60,0,170,15,60,0,91,15,60,0,171,15,60,0,93,15,60,0,173,15,60,0,60,0,186,15,60,0,94,15,60,0,174,15,60,0,95,15,60,0,175,15,60,0,96,15,60,0,176,15,60,0,97,15,60,0,177,15,60,0,60,0,187,15,60,0,98,15,60,0,60,0,106,15,60,0,178,15,60,0,60,0,60,0,178,15,113,15,47,0,113,15,60,0,60,0,60,0,178,15,113,15,114,15,47,0,113,15,114,15,61,0,178,15,113,15,114,15,47,0,113,15,114,15,60,0,60,0,60,0,178,15,113,15,116,15,47,0,113,15,116,15,61,0,178,15,113,15,116,15,47,0,113,15,116,15,60,0,60,0,188,15,60,0,108,15,60,0,99,15,60,0,179,15,60,0,60,0,60,0,179,15,113,15,47,0,113,15,60,0,60,0,60,0,179,15,113,15,114,15,47,0,113,15,114,15,61,0,179,15,113,15,114,15,47,0,113,15,114,15,60,0,60,0,60,0,179,15,113,15,116,15,47,0,113,15,116,15,61,0,179,15,113,15,116,15,47,0,113,15,116,15,60,0,100,15,60,0,180,15,60,0,101,15,60,0,181,15,60,0,102,15,60,0,182,15,60,0,103,15,60,0,183,15,60,0,104,15,60,0,60,0,60,0,0,15,47,0,124,15,7,216,1,223,60,0,184,15,60,0,136,15,60,0,141,15,60,0,137,15,60,0,142,15,60,0,140,15,60,0,143,15,60,0,138,15,60,0,139,15,60,0,113,15,60,0,114,15,60,0,113,15,114,15,60,0,128,15,60,0,113,15,128,15,60,0,116,15,60,0,113,15,116,15,60,0,178,15,128,15,60,0,119,15,61,0,178,15,113,15,128,15,61,0,178,15,113,15,128,15,60,0,179,15,128,15,60,0,121,15,61,0,179,15,113,15,128,15,61,0,179,15,113,15,128,15,60,0,122,15,60,0,123,15,60,0,124,15,60,0,125,15,60,0,132,15,60,0,6,216,11,222,60,0,6,216,50,222,60,0,6,216,12,222,60,0,6,216,13,222,60,0,6,216,14,222,60,0,6,216,15,222,60,0,6,216,16,222,60,0,6,216,17,222,60,0,6,216,18,222,60,0,6,216,19,222,60,0,6,216,20,222,60,0,6,216,21,222,60,0,6,216,22,222,60,0,6,216,23,222,60,0,6,216,24,222,60,0,6,216,25,222,60,0,6,216,26,222,60,0,6,216,27,222,60,0,6,216,28,222,60,0,6,216,29,222,60,0,6,216,30,222,60,0,6,216,31,222,60,0,6,216,32,222,60,0,6,216,33,222,60,0,6,216,34,222,60,0,6,216,35,222,60,0,6,216,36,222,60,0,6,216,37,222,60,0,6,216,38,222,60,0,6,216,39,222,60,0,6,216,40,222,60,0,6,216,41,222,60,0,6,216,42,222,60,0,60,0,60,0,6,216,59,222,60,0,6,216,43,222,60,0,60,0,60,0,6,216,58,222,60,0,60,0,60,0,6,216,60,222,60,0,6,216,44,222,60,0,60,0,60,0,6,216,61,222,60,0,6,216,45,222,60,0,60,0,60,0,6,216,62,222,60,0,6,216,46,222,60,0,6,216,47,222,60,0,6,216,48,222,60,0,6,216,49,222,60,0,6,216,0,222,60,0,6,216,1,222,60,0,6,216,2,222,60,0,6,216,3,222,60,0,6,216,4,222,60,0,6,216,5,222,60,0,6,216,6,222,60,0,6,216,7,222,60,0,6,216,8,222,60,0,6,216,9,222,60,0,6,216,10,222,60,0,6,216,52,222,60,0,6,216,71,222,60,0,6,216,80,222,60,0,6,216,81,222,60,0,6,216,82,222,60,0,6,216,83,222,60,0,6,216,89,222,60,0,6,216,90,222,60,0,6,216,84,222,60,0,6,216,86,222,60,0,6,216,85,222,60,0,6,216,87,222,60,0,6,216,88,222,60,0,6,216,91,222,60,0,6,216,92,222,60,0,60,0,60,0,6,216,138,222,60,0,6,216,131,222,60,0,6,216,93,222,60,0,60,0,60,0,6,216,139,222,60,0,6,216,94,222,60,0,6,216,95,222,60,0,6,216,96,222,60,0,60,0,60,0,6,216,140,222,60,0,6,216,97,222,60,0,6,216,98,222,60,0,6,216,99,222,60,0,6,216,100,222,60,0,6,216,101,222,60,0,6,216,102,222,60,0,6,216,103,222,60,0,6,216,104,222,60,0,6,216,105,222,60,0,6,216,106,222,60,0,6,216,107,222,60,0,60,0,60,0,6,216,141,222,60,0,6,216,108,222,60,0,6,216,109,222,60,0,6,216,110,222,60,0,6,216,111,222,60,0,60,0,60,0,6,216,142,222,60,0,6,216,112,222,60,0,60,0,60,0,6,216,143,222,60,0,6,216,113,222,60,0,6,216,114,222,60,0,6,216,115,222,60,0,6,216,116,222,60,0,60,0,60,0,6,216,144,222,60,0,6,216,117,222,60,0,6,216,118,222,60,0,6,216,119,222,60,0,6,216,120,222,60,0,6,216,121,222,60,0,6,216,122,222,60,0,60,0,60,0,6,216,149,222,60,0,6,216,123,222,60,0,6,216,124,222,60,0,60,0,60,0,6,216,134,222,60,0,60,0,60,0,6,216,145,222,60,0,6,216,125,222,60,0,60,0,60,0,6,216,135,222,60,0,60,0,60,0,6,216,146,222,60,0,6,216,126,222,60,0,6,216,127,222,60,0,60,0,60,0,6,216,136,222,60,0,60,0,60,0,6,216,147,222,60,0,6,216,128,222,60,0,6,216,129,222,60,0,60,0,60,0,6,216,137,222,60,0,60,0,60,0,6,216,148,222,60,0,6,216,130,222,60,0,6,216,132,222,60,0,6,216,133,222,60,0,6,216,153,222,60,0,6,216,157,222,60,0,7,216,114,220,60,0,7,216,146,220,60,0,7,216,115,220,60,0,7,216,147,220,60,0,7,216,116,220,60,0,7,216,148,220,60,0,7,216,117,220,60,0,7,216,149,220,60,0,7,216,118,220,60,0,7,216,150,220,60,0,7,216,119,220,60,0,7,216,151,220,60,0,7,216,120,220,60,0,7,216,152,220,60,0,7,216,121,220,60,0,7,216,153,220,60,0,7,216,122,220,60,0,7,216,154,220,60,0,7,216,123,220,60,0,7,216,155,220,60,0,7,216,124,220,60,0,7,216,156,220,60,0,7,216,125,220,60,0,7,216,157,220,60,0,7,216,126,220,60,0,7,216,158,220,60,0,7,216,127,220,60,0,7,216,159,220,60,0,7,216,128,220,60,0,7,216,160,220,60,0,7,216,129,220,60,0,7,216,161,220,60,0,7,216,130,220,60,0,7,216,162,220,60,0,7,216,131,220,60,0,7,216,163,220,60,0,7,216,132,220,60,0,7,216,164,220,60,0,7,216,133,220,60,0,7,216,165,220,60,0,7,216,134,220,60,0,7,216,166,220,60,0,7,216,135,220,60,0,7,216,167,220,60,0,7,216,136,220,60,0,7,216,137,220,60,0,7,216,169,220,60,0,7,216,138,220,60,0,7,216,170,220,60,0,7,216,139,220,60,0,7,216,171,220,60,0,7,216,140,220,60,0,7,216,172,220,60,0,7,216,141,220,60,0,7,216,173,220,60,0,7,216,142,220,60,0,7,216,174,220,60,0,7,216,143,220,60,0,7,216,175,220,60,0,7,216,176,220,60,0,7,216,177,220,60,0,7,216,178,220,60,0,7,216,179,220,60,0,7,216,180,220,60,0,0,28,60,0,1,28,60,0,2,28,60,0,3,28,60,0,4,28,60,0,5,28,60,0,6,28,60,0,7,28,60,0,8,28,60,0,9,28,60,0,77,28,60,0,78,28,60,0,79,28,60,0,10,28,60,0,11,28,60,0,12,28,60,0,13,28,60,0,14,28,60,0,15,28,60,0,16,28,60,0,17,28,60,0,18,28,60,0,19,28,60,0,20,28,60,0,21,28,60,0,22,28,60,0,23,28,60,0,24,28,60,0,25,28,60,0,26,28,60,0,36,28,60,0,27,28,60,0,37,28,60,0,28,28,60,0,29,28,60,0,30,28,60,0,31,28,60,0,32,28,60,0,33,28,60,0,34,28,60,0,35,28,60,0,54,28,60,0,38,28,60,0,39,28,60,0,40,28,60,0,41,28,60,0,42,28,60,0,43,28,60,0,44,28,60,0,45,28,60,0,46,28,60,0,47,28,60,0,48,28,60,0,49,28,60,0,50,28,60,0,51,28,60,0,52,28,60,0,53,28,60,0,64,168,60,0,65,168,60,0,66,168,60,0,67,168,60,0,68,168,60,0,69,168,60,0,70,168,60,0,71,168,60,0,105,168,60,0,106,168,60,0,107,168,60,0,108,168,60,0,72,168,60,0,73,168,60,0,74,168,60,0,75,168,60,0,76,168,60,0,77,168,60,0,78,168,60,0,79,168,60,0,80,168,60,0,81,168,60,0,82,168,60,0,83,168,60,0,103,168,60,0,84,168,60,0,85,168,60,0,86,168,60,0,87,168,60,0,104,168,60,0,109,168,60,0,88,168,60,0,113,168,60,0,114,168,60,0,89,168,60,0,90,168,60,0,110,168,60,0,91,168,60,0,92,168,60,0,111,168,60,0,112,168,60,0,93,168,60,0,98,168,60,0,99,168,60,0,100,168,60,0,101,168,60,0,94,168,60,0,95,168,60,0,96,168,60,0,97,168,60,0,102,168,60,0,115,168,60,0,0,25,60,0,1,25,60,0,2,25,60,0,3,25,60,0,4,25,60,0,5,25,60,0,6,25,60,0,7,25,60,0,8,25,60,0,60,0,60,0,29,25,47,0,41,25,60,0,9,25,60,0,10,25,60,0,11,25,60,0,60,0,60,0,30,25,47,0,42,25,60,0,12,25,60,0,13,25,60,0,14,25,60,0,15,25,60,0,16,25,60,0,17,25,60,0,18,25,60,0,19,25,60,0,20,25,60,0,21,25,60,0,22,25,60,0,23,25,60,0,24,25,60,0,25,25,60,0,26,25,60,0,27,25,60,0,28,25,60,0,32,25,60,0,33,25,60,0,34,25,60,0,35,25,60,0,36,25,60,0,37,25,60,0,38,25,60,0,39,25,60,0,40,25,60,0,41,25,60,0,42,25,60,0,43,25,60,0,48,25,60,0,49,25,60,0,50,25,60,0,51,25,60,0,52,25,60,0,53,25,60,0,54,25,60,0,55,25,60,0,56,25,60,0,0,23,60,0,1,23,60,0,2,23,60,0,3,23,60,0,4,23,60,0,5,23,60,0,6,23,60,0,7,23,60,0,8,23,60,0,9,23,60,0,10,23,60,0,11,23,60,0,12,23,60,0,13,23,60,0,31,23,60,0,14,23,60,0,15,23,60,0,16,23,60,0,17,23,60,0,18,23,60,0,19,23,60,0,20,23,60,0,21,23,60,0,32,23,60,0,33,23,60,0,34,23,60,0,35,23,60,0,36,23,60,0,37,23,60,0,38,23,60,0,39,23,60,0,40,23,60,0,41,23,60,0,42,23,60,0,43,23,60,0,44,23,60,0,45,23,60,0,46,23,60,0,47,23,60,0,48,23,60,0,49,23,60,0,50,23,60,0,51,23,60,0,52,23,60,0,64,23,60,0,65,23,60,0,66,23,60,0,67,23,60,0,68,23,60,0,69,23,60,0,70,23,60,0,71,23,60,0,72,23,60,0,73,23,60,0,74,23,60,0,75,23,60,0,76,23,60,0,77,23,60,0,78,23,60,0,79,23,60,0,80,23,60,0,81,23,60,0,82,23,60,0,83,23,60,0,96,23,60,0,97,23,60,0,98,23,60,0,99,23,60,0,100,23,60,0,101,23,60,0,102,23,60,0,103,23,60,0,104,23,60,0,105,23,60,0,106,23,60,0,107,23,60,0,108,23,60,0,110,23,60,0,111,23,60,0,112,23,60,0,114,23,60,0,115,23,60,0,0,26,60,0,1,26,60,0,2,26,60,0,3,26,60,0,4,26,60,0,5,26,60,0,6,26,60,0,7,26,60,0,8,26,60,0,9,26,60,0,10,26,60,0,11,26,60,0,12,26,60,0,13,26,60,0,14,26,60,0,15,26,60,0,16,26,60,0,17,26,60,0,18,26,60,0,19,26,60,0,20,26,60,0,21,26,60,0,22,26,60,0,23,26,60,0,24,26,60,0,25,26,60,0,26,26,60,0,27,26,60,0,7,216,224,222,60,0,7,216,225,222,60,0,7,216,226,222,60,0,7,216,227,222,60,0,7,216,228,222,60,0,7,216,229,222,60,0,7,216,230,222,60,0,7,216,231,222,60,0,7,216,232,222,60,0,7,216,233,222,60,0,7,216,234,222,60,0,7,216,235,222,60,0,7,216,236,222,60,0,7,216,237,222,60,0,7,216,238,222,60,0,7,216,239,222,60,0,7,216,240,222,60,0,7,216,241,222,60,0,7,216,242,222,60,0,7,216,243,222,60,0,7,216,244,222,60,0,7,216,245,222,60,0,7,216,246,222,60,0,192,27,60,0,60,0,60,0,193,27,60,0,194,27,60,0,60,0,60,0,195,27,61,0,196,27,60,0,197,27,60,0,60,0,60,0,198,27,60,0,199,27,60,0,60,0,60,0,200,27,60,0,201,27,60,0,60,0,60,0,202,27,60,0,203,27,60,0,60,0,60,0,204,27,61,0,205,27,60,0,206,27,60,0,60,0,60,0,207,27,60,0,208,27,60,0,209,27,60,0,210,27,60,0,60,0,60,0,211,27,60,0,212,27,60,0,60,0,60,0,213,27,60,0,214,27,60,0,60,0,60,0,215,27,60,0,216,27,60,0,60,0,60,0,217,27,61,0,218,27,60,0,219,27,60,0,60,0,60,0,220,27,60,0,221,27,60,0,222,27,60,0,60,0,60,0,223,27,60,0,224,27,60,0,225,27,60,0,226,27,60,0,227,27,60,0,228,27,60,0,229,27,60,0,231,27,60,0,60,0,60,0,232,27,60,0,233,27,60,0,234,27,60,0,60,0,60,0,235,27,60,0,236,27,60,0,60,0,60,0,237,27,60,0,238,27,60,0,60,0,60,0,239,27,60,0,240,27,60,0,241,27,60,0,242,27,60,0,243,27,60,0,48,169,60,0,49,169,60,0,50,169,60,0,51,169,60,0,52,169,60,0,53,169,60,0,54,169,60,0,55,169,60,0,56,169,60,0,57,169,60,0,58,169,60,0,59,169,60,0,60,169,60,0,61,169,60,0,62,169,60,0,63,169,60,0,64,169,60,0,65,169,60,0,66,169,60,0,67,169,60,0,68,169,60,0,69,169,60,0,70,169,60,0,71,169,60,0,72,169,60,0,73,169,60,0,74,169,60,0,75,169,60,0,76,169,60,0,77,169,60,0,78,169,60,0,79,169,60,0,80,169,60,0,81,169,60,0,82,169,60,0,83,169,60,0,10,169,60,0,11,169,60,0,12,169,60,0,13,169,60,0,14,169,60,0,15,169,60,0,16,169,60,0,17,169,60,0,18,169,60,0,19,169,60,0,20,169,60,0,21,169,60,0,22,169,60,0,23,169,60,0,24,169,60,0,25,169,60,0,26,169,60,0,27,169,60,0,28,169,60,0,29,169,60,0,30,169,60,0,31,169,60,0,32,169,60,0,33,169,60,0,34,169,60,0,35,169,60,0,36,169,60,0,37,169,60,0,38,169,60,0,39,169,60,0,40,169,60,0,41,169,60,0,42,169,60,0,0,16,60,0,117,16,60,0,1,16,60,0,118,16,60,0,2,16,60,0,119,16,60,0,96,170,60,0,233,169,60,0,3,16,60,0,224,169,60,0,234,169,60,0,4,16,60,0,90,16,60,0,5,16,60,0,120,16,60,0,97,170,60,0,6,16,60,0,225,169,60,0,98,170,60,0,126,170,60,0,7,16,60,0,99,170,60,0,235,169,60,0,121,16,60,0,114,170,60,0,8,16,60,0,91,16,60,0,226,169,60,0,100,170,60,0,236,169,60,0,97,16,60,0,127,170,60,0,9,16,60,0,122,16,60,0,101,170,60,0,231,169,60,0,10,16,60,0,11,16,60,0,102,170,60,0,12,16,60,0,103,170,60,0,13,16,60,0,104,170,60,0,237,169,60,0,14,16,60,0,105,170,60,0,238,169,60,0,15,16,60,0,110,16,60,0,227,169,60,0,239,169,60,0,16,16,60,0,17,16,60,0,18,16,60,0,123,16,60,0,251,169,60,0,19,16,60,0,106,170,60,0,252,169,60,0,20,16,60,0,124,16,60,0,107,170,60,0,94,16,60,0,21,16,60,0,22,16,60,0,125,16,60,0,126,16,60,0,111,170,60,0,142,16,60,0,232,169,60,0,23,16,60,0,127,16,60,0,253,169,60,0,24,16,60,0,228,169,60,0,254,169,60,0,25,16,60,0,95,16,60,0,26,16,60,0,59,16,60,0,27,16,60,0,115,170,60,0,122,170,60,0,60,16,60,0,28,16,60,0,96,16,60,0,29,16,60,0,61,16,60,0,130,16,60,0,128,16,60,0,80,16,60,0,81,16,60,0,101,16,60,0,30,16,60,0,60,0,60,0,63,16,47,0,57,16,30,16,60,0,108,170,60,0,31,16,60,0,129,16,60,0,109,170,60,0,62,16,60,0,110,170,60,0,113,170,60,0,32,16,60,0,250,169,60,0,92,16,60,0,93,16,60,0,111,16,60,0,112,16,60,0,102,16,60,0,33,16,60,0,34,16,60,0,35,16,60,0,36,16,60,0,37,16,60,0,38,16,60,0,82,16,60,0,83,16,60,0,84,16,60,0,85,16,60,0,39,16,60,0,40,16,60,0,41,16,60,0,42,16,60,0,44,16,60,0,60,0,60,0,43,16,60,0,131,16,60,0,114,16,60,0,156,16,60,0,45,16,60,0,113,16,60,0,46,16,60,0,51,16,60,0,47,16,60,0,115,16,60,0,116,16,60,0,48,16,60,0,86,16,60,0,87,16,60,0,88,16,60,0,89,16,60,0,49,16,60,0,132,16,60,0,53,16,60,0,133,16,60,0,50,16,60,0,157,16,60,0,134,16,60,0,52,16,60,0,98,16,60,0,103,16,60,0,104,16,60,0,229,169,60,0,57,16,60,0,58,16,60,0,99,16,60,0,100,16,60,0,105,16,60,0,106,16,60,0,107,16,60,0,108,16,60,0,109,16,60,0,135,16,60,0,139,16,60,0,136,16,60,0,140,16,60,0,141,16,60,0,137,16,60,0,138,16,60,0,143,16,60,0,154,16,60,0,155,16,60,0,123,170,60,0,124,170,60,0,125,170,60,0,116,170,60,0,117,170,60,0,118,170,60,0,14,32,3,216,0,221,14,32,60,0,14,32,3,216,29,221,14,32,60,0,14,32,3,216,30,221,14,32,60,0,14,32,3,216,31,221,14,32,60,0,14,32,3,216,32,221,14,32,60,0,14,32,3,216,33,221,14,32,60,0,14,32,3,216,1,221,14,32,60,0,14,32,3,216,2,221,14,32,60,0,14,32,3,216,3,221,14,32,60,0,14,32,3,216,4,221,14,32,60,0,14,32,3,216,5,221,14,32,60,0,14,32,3,216,6,221,14,32,60,0,14,32,3,216,7,221,14,32,60,0,14,32,3,216,8,221,14,32,60,0,14,32,3,216,9,221,14,32,60,0,14,32,3,216,10,221,14,32,60,0,14,32,3,216,11,221,14,32,60,0,14,32,3,216,12,221,14,32,60,0,14,32,3,216,13,221,14,32,60,0,14,32,3,216,14,221,14,32,60,0,14,32,3,216,15,221,14,32,60,0,14,32,3,216,16,221,14,32,60,0,14,32,3,216,17,221,14,32,60,0,14,32,3,216,18,221,14,32,60,0,14,32,3,216,19,221,14,32,60,0,14,32,3,216,20,221,14,32,60,0,14,32,3,216,21,221,14,32,60,0,14,32,3,216,22,221,14,32,60,0,14,32,3,216,23,221,14,32,60,0,14,32,3,216,24,221,14,32,60,0,14,32,3,216,25,221,14,32,60,0,14,32,3,216,26,221,14,32,60,0,14,32,3,216,27,221,14,32,60,0,14,32,3,216,28,221,14,32,60,0,14,32,3,216,34,221,14,32,60,0,14,32,3,216,35,221,14,32,60,0,4,216,3,221,60,0,4,216,4,221,60,0,4,216,5,221,60,0,4,216,6,221,60,0,4,216,7,221,60,0,4,216,8,221,60,0,4,216,9,221,60,0,4,216,10,221,60,0,4,216,11,221,60,0,4,216,12,221,60,0,4,216,13,221,60,0,4,216,14,221,60,0,4,216,15,221,60,0,4,216,16,221,60,0,4,216,17,221,60,0,4,216,18,221,60,0,4,216,19,221,60,0,4,216,20,221,60,0,4,216,21,221,60,0,4,216,22,221,60,0,4,216,23,221,60,0,4,216,24,221,60,0,4,216,25,221,60,0,4,216,26,221,60,0,4,216,27,221,60,0,4,216,28,221,60,0,4,216,29,221,60,0,4,216,30,221,60,0,4,216,31,221,60,0,4,216,32,221,60,0,4,216,33,221,60,0,4,216,34,221,60,0,4,216,35,221,60,0,4,216,71,221,60,0,4,216,36,221,60,0,4,216,37,221,60,0,4,216,38,221,60,0,4,216,68,221,60,0,4,216,39,221,60,0,4,216,40,221,60,0,4,216,41,221,60,0,4,216,42,221,60,0,4,216,43,221,60,0,4,216,44,221,60,0,4,216,45,221,60,0,4,216,46,221,60,0,4,216,47,221,60,0,4,216,48,221,60,0,4,216,49,221,60,0,4,216,50,221,60,0,4,216,69,221,60,0,4,216,70,221,60,0,4,216,51,221,60,0,4,216,52,221,60,0,128,23,60,0,129,23,60,0,130,23,60,0,131,23,60,0,132,23,60,0,133,23,60,0,134,23,60,0,135,23,60,0,136,23,60,0,137,23,60,0,138,23,60,0,139,23,60,0,140,23,60,0,141,23,60,0,142,23,60,0,143,23,60,0,144,23,60,0,145,23,60,0,146,23,60,0,147,23,60,0,148,23,60,0,149,23,60,0,150,23,60,0,151,23,60,0,152,23,60,0,153,23,60,0,154,23,60,0,155,23,60,0,156,23,60,0,157,23,60,0,158,23,60,0,159,23,60,0,160,23,60,0,161,23,60,0,162,23,60,0,220,23,60,0,163,23,60,0,164,23,60,0,165,23,60,0,166,23,60,0,167,23,60,0,168,23,60,0,169,23,60,0,170,23,60,0,171,23,60,0,172,23,60,0,173,23,60,0,174,23,60,0,175,23,60,0,176,23,60,0,177,23,60,0,178,23,60,0,179,23,60,0,182,23,60,0,183,23,60,0,184,23,60,0,185,23,60,0,186,23,60,0,187,23,60,0,188,23,60,0,189,23,60,0,190,23,60,0,191,23,60,0,192,23,60,0,193,23,60,0,194,23,60,0,195,23,60,0,196,23,60,0,197,23,60,0,210,23,60,0,80,25,60,0,81,25,60,0,82,25,60,0,83,25,60,0,84,25,60,0,85,25,60,0,86,25,60,0,87,25,60,0,88,25,60,0,89,25,60,0,90,25,60,0,91,25,60,0,92,25,60,0,93,25,60,0,94,25,60,0,95,25,60,0,96,25,60,0,97,25,60,0,98,25,60,0,99,25,60,0,100,25,60,0,101,25,60,0,102,25,60,0,103,25,60,0,104,25,60,0,105,25,60,0,106,25,60,0,107,25,60,0,108,25,60,0,109,25,60,0,112,25,60,0,113,25,60,0,114,25,60,0,115,25,60,0,116,25,60,0,128,25,60,0,129,25,60,0,130,25,60,0,131,25,60,0,132,25,60,0,133,25,60,0,134,25,60,0,135,25,60,0,136,25,60,0,137,25,60,0,138,25,60,0,139,25,60,0,140,25,60,0,141,25,60,0,142,25,60,0,143,25,60,0,144,25,60,0,145,25,60,0,146,25,60,0,147,25,60,0,148,25,60,0,149,25,60,0,150,25,60,0,151,25,60,0,152,25,60,0,153,25,60,0,154,25,60,0,155,25,60,0,156,25,60,0,60,0,60,0,222,25,47,0,182,25,60,0,60,0,60,0,223,25,47,0,182,25,193,25,60,0,157,25,60,0,158,25,60,0,159,25,60,0,160,25,60,0,161,25,60,0,162,25,60,0,163,25,60,0,164,25,60,0,165,25,60,0,166,25,60,0,167,25,60,0,168,25,60,0,169,25,60,0,170,25,60,0,171,25,60,0,176,25,60,0,177,25,60,0,178,25,60,0,179,25,60,0,180,25,60,0,181,25,60,0,182,25,60,0,183,25,60,0,184,25,60,0,185,25,60,0,186,25,60,0,187,25,60,0,188,25,60,0,189,25,60,0,190,25,60,0,191,25,60,0,192,25,60,0,193,25,60,0,194,25,60,0,195,25,60,0,196,25,60,0,197,25,60,0,198,25,60,0,199,25,60,0,200,25,60,0,201,25,60,0,32,26,60,0,33,26,60,0,34,26,60,0,35,26,60,0,36,26,60,0,37,26,60,0,38,26,60,0,60,0,60,0,88,26,61,0,89,26,60,0,39,26,60,0,40,26,60,0,41,26,60,0,42,26,60,0,43,26,60,0,44,26,60,0,45,26,60,0,46,26,60,0,47,26,60,0,48,26,60,0,49,26,60,0,50,26,60,0,51,26,60,0,52,26,60,0,53,26,60,0,54,26,60,0,55,26,60,0,56,26,60,0,57,26,60,0,58,26,60,0,59,26,60,0,60,0,60,0,90,26,61,0,91,26,60,0,60,26,60,0,61,26,60,0,62,26,60,0,63,26,60,0,64,26,60,0,65,26,60,0,66,26,60,0,67,26,60,0,68,26,60,0,69,26,60,0,70,26,60,0,60,0,60,0,84,26,47,0,96,26,70,26,60,0,71,26,60,0,72,26,60,0,73,26,60,0,74,26,60,0,75,26,60,0,76,26,60,0,83,26,60,0,107,26,60,0,85,26,60,0,86,26,60,0,87,26,60,0,92,26,60,0,93,26,60,0,94,26,60,0,77,26,60,0,78,26,60,0,79,26,60,0,80,26,60,0,81,26,60,0,82,26,60,0,97,26,60,0,108,26,60,0,98,26,60,0,99,26,60,0,60,0,60,0,100,26,60,0,101,26,60,0,102,26,60,0,103,26,60,0,104,26,60,0,105,26,60,0,106,26,60,0,110,26,60,0,111,26,60,0,115,26,60,0,112,26,60,0,113,26,60,0,114,26,60,0,109,26,60,0,96,26,60,0,0,170,60,0,1,170,60,0,2,170,60,0,3,170,60,0,4,170,60,0,5,170,60,0,6,170,60,0,7,170,60,0,8,170,60,0,9,170,60,0,10,170,60,0,11,170,60,0,12,170,60,0,13,170,60,0,14,170,60,0,15,170,60,0,16,170,60,0,17,170,60,0,18,170,60,0,19,170,60,0,20,170,60,0,21,170,60,0,22,170,60,0,23,170,60,0,24,170,60,0,25,170,60,0,26,170,60,0,27,170,60,0,28,170,60,0,29,170,60,0,30,170,60,0,31,170,60,0,32,170,60,0,33,170,60,0,34,170,60,0,35,170,60,0,36,170,60,0,37,170,60,0,38,170,60,0,39,170,60,0,40,170,60,0,51,170,60,0,52,170,60,0,53,170,60,0,54,170,60,0,41,170,60,0,42,170,60,0,43,170,60,0,44,170,60,0,45,170,60,0,46,170,60,0,47,170,60,0,48,170,60,0,49,170,60,0,50,170,60,0,64,170,60,0,65,170,60,0,66,170,60,0,67,170,60,0,68,170,60,0,69,170,60,0,70,170,60,0,71,170,60,0,72,170,60,0,73,170,60,0,74,170,60,0,75,170,60,0,76,170,60,0,77,170,60,0,5,27,60,0,6,27,60,0,7,27,60,0,8,27,60,0,9,27,60,0,10,27,60,0,11,27,60,0,12,27,60,0,13,27,60,0,14,27,60,0,15,27,60,0,16,27,60,0,17,27,60,0,18,27,60,0,19,27,60,0,69,27,60,0,70,27,60,0,20,27,60,0,21,27,60,0,22,27,60,0,23,27,60,0,24,27,60,0,25,27,60,0,26,27,60,0,60,0,60,0,76,27,47,0,68,27,28,27,60,0,27,27,60,0,28,27,60,0,29,27,60,0,30,27,60,0,31,27,60,0,32,27,60,0,33,27,60,0,34,27,60,0,71,27,60,0,35,27,60,0,36,27,60,0,37,27,60,0,38,27,60,0,39,27,60,0,72,27,60,0,40,27,60,0,41,27,60,0,42,27,60,0,43,27,60,0,44,27,60,0,45,27,60,0,46,27,60,0,47,27,60,0,73,27,60,0,48,27,60,0,49,27,60,0,50,27,60,0,74,27,60,0,75,27,60,0,51,27,60,0,53,27,60,0,54,27,60,0,55,27,60,0,56,27,60,0,57,27,60,0,58,27,60,0,59,27,60,0,60,27,60,0,61,27,60,0,62,27,60,0,63,27,60,0,64,27,60,0,65,27,60,0,66,27,60,0,67,27,60,0,68,27,60,0,132,169,60,0,133,169,60,0,134,169,60,0,135,169,60,0,136,169,60,0,137,169,60,0,138,169,60,0,139,169,60,0,140,169,60,0,141,169,60,0,142,169,60,0,143,169,60,0,144,169,60,0,145,169,60,0,146,169,60,0,147,169,60,0,148,169,60,0,149,169,60,0,150,169,60,0,151,169,60,0,152,169,60,0,153,169,60,0,154,169,60,0,155,169,60,0,156,169,60,0,157,169,60,0,158,169,60,0,159,169,60,0,160,169,60,0,161,169,60,0,162,169,60,0,163,169,60,0,164,169,60,0,165,169,60,0,166,169,60,0,167,169,60,0,168,169,60,0,169,169,60,0,170,169,60,0,190,169,60,0,171,169,60,0,60,0,60,0,172,169,60,0,191,169,60,0,173,169,60,0,174,169,60,0,175,169,60,0,176,169,60,0,177,169,60,0,178,169,60,0,180,169,60,0,60,0,60,0,181,169,60,0,188,169,60,0,182,169,60,0,183,169,60,0,184,169,60,0,185,169,60,0,189,169,60,0,186,169,60,0,187,169,60,0,192,169,60,0,7,216,4,223,60,0,7,216,5,223,60,0,7,216,6,223,60,0,7,216,7,223,60,0,7,216,8,223,60,0,7,216,9,223,60,0,7,216,10,223,60,0,7,216,11,223,60,0,7,216,12,223,60,0,7,216,13,223,60,0,7,216,14,223,60,0,7,216,15,223,60,0,7,216,16,223,60,0,7,216,18,223,60,0,7,216,19,223,60,0,7,216,20,223,60,0,7,216,21,223,60,0,7,216,22,223,60,0,7,216,23,223,60,0,7,216,24,223,60,0,7,216,25,223,60,0,7,216,26,223,60,0,7,216,27,223,60,0,7,216,28,223,60,0,7,216,29,223,60,0,7,216,30,223,60,0,7,216,31,223,60,0,7,216,32,223,60,0,7,216,33,223,60,0,7,216,34,223,60,0,7,216,35,223,60,0,7,216,36,223,60,0,7,216,37,223,60,0,7,216,38,223,60,0,7,216,39,223,60,0,7,216,40,223,60,0,7,216,41,223,60,0,7,216,42,223,60,0,7,216,43,223,60,0,7,216,44,223,60,0,7,216,2,223,60,0,7,216,45,223,60,0,7,216,46,223,60,0,7,216,47,223,60,0,7,216,48,223,60,0,7,216,49,223,60,0,7,216,50,223,60,0,7,216,51,223,60,0,7,216,52,223,60,0,7,216,53,223,60,0,7,216,54,223,60,0,7,216,55,223,60,0,7,216,56,223,60,0,7,216,57,223,60,0,7,216,58,223,60,0,7,216,62,223,60,0,7,216,63,223,60,0,7,216,64,223,60,0,7,216,65,223,60,0,7,216,66,223,60,0,128,24,60,0,129,24,60,0,130,24,60,0,131,24,60,0,132,24,60,0,133,24,60,0,134,24,60,0,67,24,60,0,32,24,60,0,135,24,60,0,33,24,60,0,68,24,60,0,93,24,60,0,34,24,60,0,69,24,60,0,94,24,60,0,115,24,60,0,136,24,60,0,95,24,60,0,35,24,60,0,70,24,60,0,36,24,60,0,71,24,60,0,97,24,60,0,37,24,60,0,72,24,60,0,38,24,60,0,73,24,60,0,96,24,60,0,39,24,60,0,40,24,60,0,41,24,60,0,74,24,60,0,98,24,60,0,138,24,60,0,155,24,60,0,42,24,60,0,75,24,60,0,43,24,60,0,76,24,60,0,102,24,60,0,44,24,60,0,77,24,60,0,45,24,60,0,78,24,60,0,100,24,60,0,154,24,60,0,101,24,60,0,46,24,60,0,79,24,60,0,47,24,60,0,48,24,60,0,49,24,60,0,103,24,60,0,156,24,60,0,157,24,60,0,162,24,60,0,164,24,60,0,165,24,60,0,50,24,60,0,80,24,60,0,104,24,60,0,51,24,60,0,81,24,60,0,105,24,60,0,52,24,60,0,82,24,60,0,113,24,60,0,120,24,60,0,92,24,60,0,139,24,60,0,53,24,60,0,83,24,60,0,106,24,60,0,119,24,60,0,54,24,60,0,85,24,60,0,114,24,60,0,55,24,60,0,117,24,60,0,56,24,60,0,86,24,60,0,57,24,60,0,107,24,60,0,118,24,60,0,58,24,60,0,87,24,60,0,99,24,60,0,116,24,60,0,137,24,60,0,59,24,60,0,60,24,60,0,84,24,60,0,110,24,60,0,61,24,60,0,111,24,60,0,88,24,60,0,108,24,60,0,62,24,60,0,89,24,60,0,109,24,60,0,63,24,60,0,64,24,60,0,65,24,60,0,66,24,60,0,90,24,60,0,91,24,60,0,112,24,60,0,140,24,60,0,158,24,60,0,141,24,60,0,142,24,60,0,159,24,60,0,143,24,60,0,144,24,60,0,152,24,60,0,160,24,60,0,145,24,60,0,161,24,60,0,146,24,60,0,147,24,60,0,168,24,60,0,148,24,60,0,163,24,60,0,149,24,60,0,153,24,60,0,150,24,60,0,151,24,60,0,166,24,60,0,167,24,60,0,170,24,60,0,169,24,60,0,90,28,60,0,91,28,60,0,92,28,60,0,93,28,60,0,94,28,60,0,95,28,60,0,96,28,60,0,97,28,60,0,98,28,60,0,99,28,60,0,100,28,60,0,101,28,60,0,102,28,60,0,103,28,60,0,104,28,60,0,105,28,60,0,106,28,60,0,107,28,60,0,108,28,60,0,109,28,60,0,110,28,60,0,111,28,60,0,112,28,60,0,113,28,60,0,114,28,60,0,115,28,60,0,116,28,60,0,117,28,60,0,118,28,60,0,119,28,60,0,120,28,60,0,121,28,60,0,122,28,60,0,123,28,60,0,124,28,60,0,125,28,60,0,112,171,60,0,60,0,60,0,160,19,60,0,113,171,60,0,60,0,60,0,161,19,60,0,114,171,60,0,60,0,60,0,162,19,60,0,115,171,60,0,60,0,60,0,163,19,60,0,116,171,60,0,60,0,60,0,164,19,60,0,117,171,60,0,60,0,60,0,165,19,60,0,118,171,60,0,60,0,60,0,166,19,60,0,119,171,60,0,60,0,60,0,167,19,60,0,120,171,60,0,60,0,60,0,168,19,60,0,121,171,60,0,60,0,60,0,169,19,60,0,122,171,60,0,60,0,60,0,170,19,60,0,123,171,60,0,60,0,60,0,171,19,60,0,124,171,60,0,60,0,60,0,172,19,60,0,125,171,60,0,60,0,60,0,173,19,60,0,126,171,60,0,60,0,60,0,174,19,60,0,127,171,60,0,60,0,60,0,175,19,60,0,128,171,60,0,60,0,60,0,176,19,60,0,129,171,60,0,60,0,60,0,177,19,60,0,130,171,60,0,60,0,60,0,178,19,60,0,131,171,60,0,60,0,60,0,179,19,60,0,132,171,60,0,60,0,60,0,180,19,60,0,133,171,60,0,60,0,60,0,181,19,60,0,134,171,60,0,60,0,60,0,182,19,60,0,135,171,60,0,60,0,60,0,183,19,60,0,136,171,60,0,60,0,60,0,184,19,60,0,137,171,60,0,60,0,60,0,185,19,60,0,138,171,60,0,60,0,60,0,186,19,60,0,139,171,60,0,60,0,60,0,187,19,60,0,140,171,60,0,60,0,60,0,188,19,60,0,141,171,60,0,60,0,60,0,189,19,60,0,142,171,60,0,60,0,60,0,190,19,60,0,143,171,60,0,60,0,60,0,191,19,60,0,144,171,60,0,60,0,60,0,192,19,60,0,145,171,60,0,60,0,60,0,193,19,60,0,146,171,60,0,60,0,60,0,194,19,60,0,147,171,60,0,60,0,60,0,195,19,60,0,148,171,60,0,60,0,60,0,196,19,60,0,149,171,60,0,60,0,60,0,197,19,60,0,150,171,60,0,60,0,60,0,198,19,60,0,151,171,60,0,60,0,60,0,199,19,60,0,152,171,60,0,60,0,60,0,200,19,60,0,153,171,60,0,60,0,60,0,201,19,60,0,154,171,60,0,60,0,60,0,202,19,60,0,155,171,60,0,60,0,60,0,203,19,60,0,156,171,60,0,60,0,60,0,204,19,60,0,157,171,60,0,60,0,60,0,205,19,60,0,158,171,60,0,60,0,60,0,206,19,60,0,159,171,60,0,60,0,60,0,207,19,60,0,160,171,60,0,60,0,60,0,208,19,60,0,161,171,60,0,60,0,60,0,209,19,60,0,162,171,60,0,60,0,60,0,210,19,60,0,163,171,60,0,60,0,60,0,211,19,60,0,164,171,60,0,60,0,60,0,212,19,60,0,165,171,60,0,60,0,60,0,213,19,60,0,166,171,60,0,60,0,60,0,214,19,60,0,167,171,60,0,60,0,60,0,215,19,60,0,168,171,60,0,60,0,60,0,216,19,60,0,169,171,60,0,60,0,60,0,217,19,60,0,170,171,60,0,60,0,60,0,218,19,60,0,171,171,60,0,60,0,60,0,219,19,60,0,172,171,60,0,60,0,60,0,220,19,60,0,173,171,60,0,60,0,60,0,221,19,60,0,174,171,60,0,60,0,60,0,222,19,60,0,175,171,60,0,60,0,60,0,223,19,60,0,176,171,60,0,60,0,60,0,224,19,60,0,177,171,60,0,60,0,60,0,225,19,60,0,178,171,60,0,60,0,60,0,226,19,60,0,179,171,60,0,60,0,60,0,227,19,60,0,180,171,60,0,60,0,60,0,228,19,60,0,181,171,60,0,60,0,60,0,229,19,60,0,182,171,60,0,60,0,60,0,230,19,60,0,183,171,60,0,60,0,60,0,231,19,60,0,184,171,60,0,60,0,60,0,232,19,60,0,185,171,60,0,60,0,60,0,233,19,60,0,186,171,60,0,60,0,60,0,234,19,60,0,187,171,60,0,60,0,60,0,235,19,60,0,188,171,60,0,60,0,60,0,236,19,60,0,189,171,60,0,60,0,60,0,237,19,60,0,190,171,60,0,60,0,60,0,238,19,60,0,191,171,60,0,60,0,60,0,239,19,60,0,248,19,60,0,60,0,60,0,240,19,60,0,249,19,60,0,60,0,60,0,241,19,60,0,250,19,60,0,60,0,60,0,242,19,60,0,251,19,60,0,60,0,60,0,243,19,60,0,252,19,60,0,60,0,60,0,244,19,60,0,253,19,60,0,60,0,60,0,245,19,60,0,1,216,216,220,60,0,60,0,60,0,1,216,176,220,60,0,1,216,217,220,60,0,60,0,60,0,1,216,177,220,60,0,1,216,218,220,60,0,60,0,60,0,1,216,178,220,60,0,1,216,219,220,60,0,60,0,60,0,1,216,179,220,60,0,1,216,220,220,60,0,60,0,60,0,1,216,180,220,60,0,1,216,221,220,60,0,60,0,60,0,1,216,181,220,60,0,1,216,222,220,60,0,60,0,60,0,1,216,182,220,60,0,1,216,223,220,60,0,60,0,60,0,1,216,183,220,60,0,1,216,224,220,60,0,60,0,60,0,1,216,184,220,60,0,1,216,225,220,60,0,60,0,60,0,1,216,185,220,60,0,1,216,226,220,60,0,60,0,60,0,1,216,186,220,60,0,1,216,227,220,60,0,60,0,60,0,1,216,187,220,60,0,1,216,228,220,60,0,60,0,60,0,1,216,188,220,60,0,1,216,229,220,60,0,60,0,60,0,1,216,189,220,60,0,1,216,230,220,60,0,60,0,60,0,1,216,190,220,60,0,1,216,231,220,60,0,60,0,60,0,1,216,191,220,60,0,1,216,232,220,60,0,60,0,60,0,1,216,192,220,60,0,1,216,233,220,60,0,60,0,60,0,1,216,193,220,60,0,1,216,234,220,60,0,60,0,60,0,1,216,194,220,60,0,1,216,235,220,60,0,60,0,60,0,1,216,195,220,60,0,1,216,236,220,60,0,60,0,60,0,1,216,196,220,60,0,1,216,237,220,60,0,60,0,60,0,1,216,197,220,60,0,1,216,238,220,60,0,60,0,60,0,1,216,198,220,60,0,1,216,239,220,60,0,60,0,60,0,1,216,199,220,60,0,1,216,240,220,60,0,60,0,60,0,1,216,200,220,60,0,1,216,241,220,60,0,60,0,60,0,1,216,201,220,60,0,1,216,242,220,60,0,60,0,60,0,1,216,202,220,60,0,1,216,243,220,60,0,60,0,60,0,1,216,203,220,60,0,1,216,244,220,60,0,60,0,60,0,1,216,204,220,60,0,1,216,245,220,60,0,60,0,60,0,1,216,205,220,60,0,1,216,246,220,60,0,60,0,60,0,1,216,206,220,60,0,1,216,247,220,60,0,60,0,60,0,1,216,207,220,60,0,1,216,248,220,60,0,60,0,60,0,1,216,208,220,60,0,1,216,249,220,60,0,60,0,60,0,1,216,209,220,60,0,1,216,250,220,60,0,60,0,60,0,1,216,210,220,60,0,1,216,251,220,60,0,60,0,60,0,1,216,211,220,60,0,1,20,60,0,2,20,60,0,3,20,60,0,4,20,60,0,5,20,60,0,6,20,60,0,7,20,60,0,8,20,60,0,9,20,60,0,10,20,60,0,11,20,60,0,12,20,60,0,13,20,60,0,14,20,60,0,15,20,60,0,16,20,60,0,17,20,60,0,18,20,60,0,19,20,60,0,20,20,60,0,21,20,60,0,22,20,60,0,23,20,60,0,24,20,60,0,25,20,60,0,26,20,60,0,27,20,60,0,28,20,60,0,29,20,60,0,30,20,60,0,31,20,60,0,32,20,60,0,33,20,60,0,34,20,60,0,35,20,60,0,36,20,60,0,37,20,60,0,38,20,60,0,39,20,60,0,40,20,60,0,41,20,60,0,42,20,60,0,43,20,60,0,44,20,60,0,45,20,60,0,46,20,60,0,47,20,60,0,48,20,60,0,49,20,60,0,50,20,60,0,51,20,60,0,52,20,60,0,53,20,60,0,54,20,60,0,55,20,60,0,56,20,60,0,57,20,60,0,58,20,60,0,59,20,60,0,60,20,60,0,61,20,60,0,62,20,60,0,63,20,60,0,64,20,60,0,65,20,60,0,66,20,60,0,67,20,60,0,68,20,60,0,69,20,60,0,70,20,60,0,71,20,60,0,72,20,60,0,73,20,60,0,74,20,60,0,75,20,60,0,76,20,60,0,77,20,60,0,78,20,60,0,79,20,60,0,80,20,60,0,81,20,60,0,82,20,60,0,83,20,60,0,84,20,60,0,85,20,60,0,86,20,60,0,87,20,60,0,88,20,60,0,89,20,60,0,90,20,60,0,91,20,60,0,92,20,60,0,93,20,60,0,94,20,60,0,95,20,60,0,96,20,60,0,97,20,60,0,98,20,60,0,99,20,60,0,100,20,60,0,101,20,60,0,102,20,60,0,103,20,60,0,104,20,60,0,105,20,60,0,106,20,60,0,107,20,60,0,108,20,60,0,109,20,60,0,110,20,60,0,111,20,60,0,112,20,60,0,113,20,60,0,114,20,60,0,115,20,60,0,116,20,60,0,117,20,60,0,118,20,60,0,119,20,60,0,120,20,60,0,121,20,60,0,122,20,60,0,123,20,60,0,124,20,60,0,125,20,60,0,126,20,60,0,127,20,60,0,128,20,60,0,129,20,60,0,130,20,60,0,131,20,60,0,132,20,60,0,133,20,60,0,134,20,60,0,135,20,60,0,136,20,60,0,137,20,60,0,138,20,60,0,139,20,60,0,140,20,60,0,141,20,60,0,142,20,60,0,143,20,60,0,144,20,60,0,145,20,60,0,146,20,60,0,147,20,60,0,148,20,60,0,149,20,60,0,150,20,60,0,151,20,60,0,152,20,60,0,153,20,60,0,154,20,60,0,155,20,60,0,156,20,60,0,157,20,60,0,158,20,60,0,159,20,60,0,160,20,60,0,161,20,60,0,162,20,60,0,163,20,60,0,164,20,60,0,165,20,60,0,166,20,60,0,167,20,60,0,168,20,60,0,169,20,60,0,170,20,60,0,171,20,60,0,172,20,60,0,173,20,60,0,174,20,60,0,175,20,60,0,176,20,60,0,177,20,60,0,178,20,60,0,179,20,60,0,180,20,60,0,181,20,60,0,182,20,60,0,183,20,60,0,184,20,60,0,185,20,60,0,186,20,60,0,187,20,60,0,188,20,60,0,189,20,60,0,190,20,60,0,191,20,60,0,192,20,60,0,193,20,60,0,194,20,60,0,195,20,60,0,196,20,60,0,197,20,60,0,198,20,60,0,199,20,60,0,200,20,60,0,201,20,60,0,202,20,60,0,203,20,60,0,204,20,60,0,205,20,60,0,206,20,60,0,207,20,60,0,208,20,60,0,209,20,60,0,210,20,60,0,211,20,60,0,212,20,60,0,213,20,60,0,214,20,60,0,215,20,60,0,216,20,60,0,217,20,60,0,218,20,60,0,219,20,60,0,220,20,60,0,221,20,60,0,222,20,60,0,223,20,60,0,224,20,60,0,225,20,60,0,226,20,60,0,227,20,60,0,228,20,60,0,229,20,60,0,230,20,60,0,231,20,60,0,232,20,60,0,233,20,60,0,234,20,60,0,235,20,60,0,236,20,60,0,237,20,60,0,238,20,60,0,239,20,60,0,240,20,60,0,241,20,60,0,242,20,60,0,243,20,60,0,244,20,60,0,245,20,60,0,246,20,60,0,247,20,60,0,248,20,60,0,249,20,60,0,250,20,60,0,251,20,60,0,252,20,60,0,253,20,60,0,254,20,60,0,255,20,60,0,0,21,60,0,1,21,60,0,2,21,60,0,3,21,60,0,4,21,60,0,5,21,60,0,6,21,60,0,7,21,60,0,8,21,60,0,9,21,60,0,10,21,60,0,11,21,60,0,12,21,60,0,13,21,60,0,14,21,60,0,15,21,60,0,16,21,60,0,17,21,60,0,18,21,60,0,19,21,60,0,20,21,60,0,21,21,60,0,22,21,60,0,23,21,60,0,24,21,60,0,25,21,60,0,26,21,60,0,27,21,60,0,28,21,60,0,29,21,60,0,30,21,60,0,31,21,60,0,32,21,60,0,33,21,60,0,34,21,60,0,35,21,60,0,36,21,60,0,37,21,60,0,38,21,60,0,39,21,60,0,40,21,60,0,41,21,60,0,42,21,60,0,43,21,60,0,44,21,60,0,45,21,60,0,46,21,60,0,47,21,60,0,48,21,60,0,49,21,60,0,50,21,60,0,51,21,60,0,52,21,60,0,53,21,60,0,54,21,60,0,55,21,60,0,56,21,60,0,57,21,60,0,58,21,60,0,59,21,60,0,60,21,60,0,61,21,60,0,62,21,60,0,63,21,60,0,64,21,60,0,65,21,60,0,66,21,60,0,67,21,60,0,68,21,60,0,69,21,60,0,70,21,60,0,71,21,60,0,72,21,60,0,73,21,60,0,74,21,60,0,75,21,60,0,76,21,60,0,77,21,60,0,78,21,60,0,79,21,60,0,80,21,60,0,81,21,60,0,82,21,60,0,83,21,60,0,84,21,60,0,85,21,60,0,86,21,60,0,87,21,60,0,88,21,60,0,89,21,60,0,90,21,60,0,91,21,60,0,92,21,60,0,93,21,60,0,94,21,60,0,95,21,60,0,96,21,60,0,97,21,60,0,98,21,60,0,99,21,60,0,100,21,60,0,101,21,60,0,102,21,60,0,103,21,60,0,104,21,60,0,105,21,60,0,106,21,60,0,107,21,60,0,108,21,60,0,109,21,60,0,110,21,60,0,111,21,60,0,112,21,60,0,113,21,60,0,114,21,60,0,115,21,60,0,116,21,60,0,117,21,60,0,118,21,60,0,119,21,60,0,120,21,60,0,121,21,60,0,122,21,60,0,123,21,60,0,125,21,60,0,111,22,60,0,126,21,60,0,127,21,60,0,128,21,60,0,129,21,60,0,130,21,60,0,131,21,60,0,132,21,60,0,133,21,60,0,134,21,60,0,135,21,60,0,136,21,60,0,137,21,60,0,138,21,60,0,139,21,60,0,140,21,60,0,141,21,60,0,112,22,60,0,142,21,60,0,143,21,60,0,144,21,60,0,145,21,60,0,146,21,60,0,147,21,60,0,148,21,60,0,149,21,60,0,113,22,60,0,114,22,60,0,115,22,60,0,116,22,60,0,117,22,60,0,118,22,60,0,150,21,60,0,151,21,60,0,152,21,60,0,153,21,60,0,154,21,60,0,155,21,60,0,156,21,60,0,157,21,60,0,158,21,60,0,159,21,60,0,160,21,60,0,161,21,60,0,162,21,60,0,163,21,60,0,164,21,60,0,165,21,60,0,166,21,60,0,124,21,60,0,167,21,60,0,168,21,60,0,169,21,60,0,170,21,60,0,171,21,60,0,172,21,60,0,173,21,60,0,174,21,60,0,175,21,60,0,176,21,60,0,177,21,60,0,178,21,60,0,179,21,60,0,180,21,60,0,181,21,60,0,182,21,60,0,183,21,60,0,184,21,60,0,185,21,60,0,186,21,60,0,187,21,60,0,188,21,60,0,189,21,60,0,190,21,60,0,191,21,60,0,192,21,60,0,193,21,60,0,194,21,60,0,195,21,60,0,196,21,60,0,197,21,60,0,198,21,60,0,199,21,60,0,200,21,60,0,201,21,60,0,202,21,60,0,203,21,60,0,204,21,60,0,205,21,60,0,206,21,60,0,207,21,60,0,208,21,60,0,209,21,60,0,210,21,60,0,211,21,60,0,212,21,60,0,213,21,60,0,214,21,60,0,215,21,60,0,216,21,60,0,217,21,60,0,218,21,60,0,219,21,60,0,220,21,60,0,221,21,60,0,222,21,60,0,223,21,60,0,224,21,60,0,225,21,60,0,226,21,60,0,227,21,60,0,228,21,60,0,229,21,60,0,230,21,60,0,231,21,60,0,232,21,60,0,233,21,60,0,234,21,60,0,235,21,60,0,236,21,60,0,237,21,60,0,238,21,60,0,239,21,60,0,240,21,60,0,241,21,60,0,242,21,60,0,243,21,60,0,244,21,60,0,245,21,60,0,246,21,60,0,247,21,60,0,248,21,60,0,249,21,60,0,250,21,60,0,251,21,60,0,252,21,60,0,253,21,60,0,254,21,60,0,255,21,60,0,0,22,60,0,1,22,60,0,2,22,60,0,3,22,60,0,4,22,60,0,5,22,60,0,6,22,60,0,7,22,60,0,8,22,60,0,9,22,60,0,10,22,60,0,11,22,60,0,12,22,60,0,13,22,60,0,14,22,60,0,15,22,60,0,16,22,60,0,17,22,60,0,18,22,60,0,19,22,60,0,20,22,60,0,21,22,60,0,22,22,60,0,23,22,60,0,24,22,60,0,25,22,60,0,26,22,60,0,27,22,60,0,28,22,60,0,29,22,60,0,30,22,60,0,31,22,60,0,32,22,60,0,33,22,60,0,34,22,60,0,35,22,60,0,36,22,60,0,37,22,60,0,38,22,60,0,39,22,60,0,40,22,60,0,41,22,60,0,42,22,60,0,43,22,60,0,44,22,60,0,45,22,60,0,46,22,60,0,47,22,60,0,48,22,60,0,49,22,60,0,50,22,60,0,51,22,60,0,52,22,60,0,53,22,60,0,54,22,60,0,55,22,60,0,56,22,60,0,57,22,60,0,58,22,60,0,59,22,60,0,60,22,60,0,61,22,60,0,62,22,60,0,63,22,60,0,64,22,60,0,65,22,60,0,66,22,60,0,67,22,60,0,68,22,60,0,69,22,60,0,70,22,60,0,71,22,60,0,72,22,60,0,73,22,60,0,74,22,60,0,75,22,60,0,76,22,60,0,77,22,60,0,78,22,60,0,79,22,60,0,80,22,60,0,81,22,60,0,82,22,60,0,83,22,60,0,84,22,60,0,85,22,60,0,86,22,60,0,87,22,60,0,88,22,60,0,89,22,60,0,90,22,60,0,91,22,60,0,92,22,60,0,93,22,60,0,94,22,60,0,95,22,60,0,96,22,60,0,97,22,60,0,98,22,60,0,99,22,60,0,100,22,60,0,101,22,60,0,102,22,60,0,103,22,60,0,104,22,60,0,105,22,60,0,106,22,60,0,107,22,60,0,108,22,60,0,119,22,60,0,120,22,60,0,121,22,60,0,122,22,60,0,123,22,60,0,124,22,60,0,125,22,60,0,126,22,60,0,127,22,60,0,176,24,60,0,177,24,60,0,178,24,60,0,179,24,60,0,180,24,60,0,181,24,60,0,182,24,60,0,183,24,60,0,184,24,60,0,185,24,60,0,186,24,60,0,187,24,60,0,188,24,60,0,189,24,60,0,190,24,60,0,191,24,60,0,192,24,60,0,193,24,60,0,194,24,60,0,195,24,60,0,196,24,60,0,197,24,60,0,198,24,60,0,199,24,60,0,200,24,60,0,201,24,60,0,202,24,60,0,203,24,60,0,204,24,60,0,205,24,60,0,206,24,60,0,207,24,60,0,208,24,60,0,209,24,60,0,210,24,60,0,211,24,60,0,212,24,60,0,213,24,60,0,214,24,60,0,215,24,60,0,216,24,60,0,217,24,60,0,218,24,60,0,219,24,60,0,220,24,60,0,221,24,60,0,222,24,60,0,223,24,60,0,224,24,60,0,225,24,60,0,226,24,60,0,227,24,60,0,228,24,60,0,229,24,60,0,230,24,60,0,231,24,60,0,232,24,60,0,233,24,60,0,234,24,60,0,235,24,60,0,236,24,60,0,237,24,60,0,238,24,60,0,239,24,60,0,240,24,60,0,241,24,60,0,242,24,60,0,243,24,60,0,244,24,60,0,245,24,60,0,6,216,176,222,60,0,6,216,177,222,60,0,6,216,178,222,60,0,6,216,179,222,60,0,6,216,180,222,60,0,6,216,181,222,60,0,6,216,182,222,60,0,6,216,183,222,60,0,6,216,184,222,60,0,6,216,185,222,60,0,6,216,186,222,60,0,6,216,187,222,60,0,6,216,188,222,60,0,6,216,189,222,60,0,6,216,190,222,60,0,6,216,191,222,60,0,129,22,60,0,130,22,60,0,131,22,60,0,132,22,60,0,133,22,60,0,134,22,60,0,135,22,60,0,136,22,60,0,137,22,60,0,138,22,60,0,139,22,60,0,140,22,60,0,141,22,60,0,142,22,60,0,143,22,60,0,144,22,60,0,145,22,60,0,146,22,60,0,147,22,60,0,148,22,60,0,149,22,60,0,150,22,60,0,151,22,60,0,152,22,60,0,153,22,60,0,154,22,60,0,160,22,60,0,60,0,161,22,60,0,162,22,60,0,60,0,164,22,60,0,60,0,165,22,60,0,166,22,60,0,60,0,60,0,240,22,47,0,166,22,60,0,60,0,167,22,60,0,168,22,60,0,60,0,169,22,60,0,60,0,172,22,60,0,60,0,173,22,60,0,60,0,174,22,60,0,244,22,60,0,175,22,60,0,176,22,60,0,177,22,60,0,178,22,60,0,60,0,179,22,60,0,60,0,180,22,60,0,60,0,181,22,60,0,60,0,182,22,60,0,241,22,60,0,183,22,60,0,185,22,60,0,60,0,233,22,60,0,186,22,60,0,60,0,187,22,60,0,60,0,188,22,60,0,60,0,189,22,60,0,190,22,60,0,60,0,191,22,60,0,60,0,192,22,60,0,193,22,60,0,60,0,194,22,60,0,245,22,60,0,195,22,60,0,60,0,196,22,60,0,197,22,60,0,60,0,60,0,238,22,47,0,218,22,60,0,60,0,198,22,60,0,199,22,60,0,200,22,60,0,60,0,213,22,60,0,201,22,60,0,202,22,60,0,60,0,203,22,60,0,60,0,234,22,60,0,60,0,204,22,60,0,60,0,205,22,60,0,60,0,206,22,60,0,242,22,60,0,207,22,60,0,60,0,208,22,60,0,60,0,209,22,60,0,210,22,60,0,60,0,211,22,60,0,60,0,212,22,60,0,214,22,60,0,246,22,60,0,215,22,60,0,60,0,216,22,60,0,60,0,60,0,239,22,47,0,215,22,60,0,60,0,217,22,60,0,218,22,60,0,60,0,219,22,60,0,220,22,60,0,60,0,221,22,60,0,222,22,60,0,223,22,60,0,243,22,60,0,170,22,60,0,247,22,60,0,171,22,60,0,248,22,60,0,163,22,60,0,224,22,60,0,227,22,60,0,184,22,60,0,228,22,60,0,225,22,60,0,226,22,60,0,229,22,60,0,230,22,60,0,60,0,231,22,60,0,60,0,232,22,60,0,14,32,3,216,192,220,14,32,60,0,60,0,60,0,14,32,3,216,128,220,14,32,60,0,60,0,14,32,3,216,193,220,14,32,60,0,60,0,60,0,14,32,3,216,129,220,14,32,60,0,14,32,3,216,194,220,14,32,60,0,60,0,60,0,14,32,3,216,130,220,14,32,60,0,14,32,3,216,195,220,14,32,60,0,60,0,60,0,14,32,3,216,131,220,14,32,60,0,14,32,3,216,196,220,14,32,60,0,60,0,60,0,14,32,3,216,132,220,14,32,60,0,14,32,3,216,197,220,14,32,60,0,60,0,60,0,14,32,3,216,133,220,14,32,60,0,14,32,3,216,198,220,14,32,60,0,60,0,60,0,14,32,3,216,134,220,14,32,60,0,14,32,3,216,199,220,14,32,60,0,60,0,60,0,14,32,3,216,135,220,14,32,60,0,14,32,3,216,200,220,14,32,60,0,60,0,60,0,14,32,3,216,136,220,14,32,60,0,14,32,3,216,201,220,14,32,60,0,60,0,60,0,14,32,3,216,137,220,14,32,60,0,60,0,14,32,3,216,202,220,14,32,60,0,60,0,60,0,14,32,3,216,138,220,14,32,60,0,60,0,14,32,3,216,203,220,14,32,60,0,60,0,60,0,14,32,3,216,139,220,14,32,60,0,14,32,3,216,204,220,14,32,60,0,60,0,60,0,14,32,3,216,140,220,14,32,60,0,14,32,3,216,205,220,14,32,60,0,60,0,60,0,14,32,3,216,141,220,14,32,60,0,14,32,3,216,206,220,14,32,60,0,60,0,60,0,14,32,3,216,142,220,14,32,60,0,14,32,3,216,207,220,14,32,60,0,60,0,60,0,14,32,3,216,143,220,14,32,60,0,14,32,3,216,208,220,14,32,60,0,60,0,60,0,14,32,3,216,144,220,14,32,60,0,60,0,14,32,3,216,209,220,14,32,60,0,60,0,60,0,14,32,3,216,145,220,14,32,60,0,14,32,3,216,210,220,14,32,60,0,60,0,60,0,14,32,3,216,146,220,14,32,60,0,14,32,3,216,211,220,14,32,60,0,60,0,60,0,14,32,3,216,147,220,14,32,60,0,14,32,3,216,212,220,14,32,60,0,60,0,60,0,14,32,3,216,148,220,14,32,60,0,14,32,3,216,213,220,14,32,60,0,60,0,60,0,14,32,3,216,149,220,14,32,60,0,14,32,3,216,214,220,14,32,60,0,60,0,60,0,14,32,3,216,150,220,14,32,60,0,14,32,3,216,215,220,14,32,60,0,60,0,60,0,14,32,3,216,151,220,14,32,60,0,14,32,3,216,216,220,14,32,60,0,60,0,60,0,14,32,3,216,152,220,14,32,60,0,14,32,3,216,217,220,14,32,60,0,60,0,60,0,14,32,3,216,153,220,14,32,60,0,14,32,3,216,218,220,14,32,60,0,60,0,60,0,14,32,3,216,154,220,14,32,60,0,14,32,3,216,219,220,14,32,60,0,60,0,60,0,14,32,3,216,155,220,14,32,60,0,60,0,14,32,3,216,220,220,14,32,60,0,60,0,60,0,14,32,3,216,156,220,14,32,60,0,14,32,3,216,221,220,14,32,60,0,60,0,60,0,14,32,3,216,157,220,14,32,60,0,60,0,14,32,3,216,222,220,14,32,60,0,60,0,60,0,14,32,3,216,158,220,14,32,60,0,60,0,14,32,3,216,223,220,14,32,60,0,60,0,60,0,14,32,3,216,159,220,14,32,60,0,14,32,3,216,224,220,14,32,60,0,60,0,60,0,14,32,3,216,160,220,14,32,60,0,14,32,3,216,225,220,14,32,60,0,60,0,60,0,14,32,3,216,161,220,14,32,60,0,14,32,3,216,226,220,14,32,60,0,60,0,60,0,14,32,3,216,162,220,14,32,60,0,60,0,14,32,3,216,227,220,14,32,60,0,60,0,60,0,14,32,3,216,163,220,14,32,60,0,14,32,3,216,228,220,14,32,60,0,60,0,60,0,14,32,3,216,164,220,14,32,60,0,14,32,3,216,229,220,14,32,60,0,60,0,60,0,14,32,3,216,165,220,14,32,60,0,14,32,3,216,230,220,14,32,60,0,60,0,60,0,14,32,3,216,166,220,14,32,60,0,14,32,3,216,231,220,14,32,60,0,60,0,60,0,14,32,3,216,167,220,14,32,60,0,14,32,3,216,232,220,14,32,60,0,60,0,60,0,14,32,3,216,168,220,14,32,60,0,14,32,3,216,233,220,14,32,60,0,60,0,60,0,14,32,3,216,169,220,14,32,60,0,14,32,3,216,234,220,14,32,60,0,60,0,60,0,14,32,3,216,170,220,14,32,60,0,60,0,14,32,3,216,235,220,14,32,60,0,60,0,60,0,14,32,3,216,171,220,14,32,60,0,14,32,3,216,236,220,14,32,60,0,60,0,60,0,14,32,3,216,172,220,14,32,60,0,60,0,14,32,3,216,237,220,14,32,60,0,60,0,60,0,14,32,3,216,173,220,14,32,60,0,14,32,3,216,238,220,14,32,60,0,60,0,60,0,14,32,3,216,174,220,14,32,60,0,14,32,3,216,239,220,14,32,60,0,60,0,60,0,14,32,3,216,175,220,14,32,60,0,14,32,3,216,240,220,14,32,60,0,60,0,60,0,14,32,3,216,176,220,14,32,60,0,14,32,3,216,241,220,14,32,60,0,60,0,60,0,14,32,3,216,177,220,14,32,60,0,14,32,3,216,242,220,14,32,60,0,60,0,60,0,14,32,3,216,178,220,14,32,60,0,14,32,3,216,0,220,14,32,60,0,60,0,14,32,3,216,1,220,14,32,60,0,14,32,3,216,2,220,14,32,60,0,14,32,3,216,3,220,14,32,60,0,60,0,14,32,3,216,4,220,14,32,60,0,14,32,3,216,5,220,14,32,60,0,14,32,3,216,6,220,14,32,60,0,14,32,3,216,7,220,14,32,60,0,60,0,14,32,3,216,8,220,14,32,60,0,14,32,3,216,9,220,14,32,60,0,60,0,14,32,3,216,10,220,14,32,60,0,14,32,3,216,11,220,14,32,60,0,60,0,14,32,3,216,12,220,14,32,60,0,14,32,3,216,13,220,14,32,60,0,60,0,14,32,3,216,14,220,14,32,60,0,14,32,3,216,15,220,14,32,60,0,60,0,14,32,3,216,16,220,14,32,60,0,14,32,3,216,17,220,14,32,60,0,60,0,14,32,3,216,18,220,14,32,60,0,14,32,3,216,19,220,14,32,60,0,14,32,3,216,20,220,14,32,60,0,60,0,14,32,3,216,21,220,14,32,60,0,14,32,3,216,22,220,14,32,60,0,60,0,14,32,3,216,23,220,14,32,60,0,14,32,3,216,24,220,14,32,60,0,60,0,14,32,3,216,25,220,14,32,60,0,14,32,3,216,26,220,14,32,60,0,60,0,14,32,3,216,27,220,14,32,60,0,14,32,3,216,28,220,14,32,60,0,60,0,14,32,3,216,29,220,14,32,60,0,14,32,3,216,30,220,14,32,60,0,60,0,14,32,3,216,31,220,14,32,60,0,14,32,3,216,32,220,14,32,60,0,14,32,3,216,33,220,14,32,60,0,14,32,3,216,34,220,14,32,60,0,14,32,3,216,35,220,14,32,60,0,14,32,3,216,36,220,14,32,60,0,60,0,14,32,3,216,37,220,14,32,60,0,14,32,3,216,38,220,14,32,60,0,60,0,14,32,3,216,39,220,14,32,60,0,14,32,3,216,40,220,14,32,60,0,60,0,14,32,3,216,41,220,14,32,60,0,14,32,3,216,42,220,14,32,60,0,60,0,14,32,3,216,43,220,14,32,60,0,14,32,3,216,44,220,14,32,60,0,14,32,3,216,45,220,14,32,60,0,60,0,14,32,3,216,46,220,14,32,60,0,14,32,3,216,47,220,14,32,60,0,14,32,3,216,48,220,14,32,60,0,14,32,3,216,49,220,14,32,60,0,14,32,3,216,50,220,14,32,60,0,60,0,14,32,3,216,51,220,14,32,60,0,14,32,3,216,52,220,14,32,60,0,60,0,14,32,3,216,53,220,14,32,60,0,14,32,3,216,54,220,14,32,60,0,60,0,14,32,3,216,55,220,14,32,60,0,14,32,3,216,56,220,14,32,60,0,60,0,14,32,3,216,57,220,14,32,60,0,14,32,3,216,58,220,14,32,60,0,60,0,14,32,3,216,59,220,14,32,60,0,14,32,3,216,60,220,14,32,60,0,14,32,3,216,61,220,14,32,60,0,14,32,3,216,62,220,14,32,60,0,14,32,3,216,63,220,14,32,60,0,60,0,14,32,3,216,64,220,14,32,60,0,14,32,3,216,65,220,14,32,60,0,60,0,14,32,3,216,66,220,14,32,60,0,14,32,3,216,67,220,14,32,60,0,60,0,14,32,3,216,68,220,14,32,60,0,14,32,3,216,69,220,14,32,60,0,60,0,14,32,3,216,70,220,14,32,60,0,14,32,3,216,71,220,14,32,60,0,14,32,3,216,72,220,14,32,60,0,0,165,60,0,1,165,60,0,2,165,60,0,3,165,60,0,4,165,60,0,5,165,60,0,6,165,60,0,7,165,60,0,8,165,60,0,9,165,60,0,10,165,60,0,11,165,60,0,12,165,60,0,60,0,60,0,19,166,47,0,11,166,60,0,13,165,60,0,14,165,60,0,15,165,60,0,16,165,60,0,17,165,60,0,18,165,60,0,19,165,60,0,20,165,60,0,21,165,60,0,22,165,60,0,23,165,60,0,24,165,60,0,25,165,60,0,26,165,60,0,27,165,60,0,28,165,60,0,29,165,60,0,30,165,60,0,60,0,60,0,20,166,47,0,11,166,60,0,31,165,60,0,32,165,60,0,33,165,60,0,34,165,60,0,35,165,60,0,36,165,60,0,37,165,60,0,38,165,60,0,39,165,60,0,40,165,60,0,41,165,60,0,42,165,60,0,43,165,60,0,44,165,60,0,45,165,60,0,46,165,60,0,47,165,60,0,48,165,60,0,49,165,60,0,50,165,60,0,51,165,60,0,60,0,60,0,21,166,47,0,11,166,60,0,52,165,60,0,53,165,60,0,54,165,60,0,55,165,60,0,56,165,60,0,57,165,60,0,58,165,60,0,59,165,60,0,60,165,60,0,61,165,60,0,62,165,60,0,63,165,60,0,64,165,60,0,65,165,60,0,66,165,60,0,67,165,60,0,68,165,60,0,69,165,60,0,70,165,60,0,71,165,60,0,60,0,60,0,22,166,47,0,12,166,60,0,72,165,60,0,73,165,60,0,74,165,60,0,75,165,60,0,76,165,60,0,77,165,60,0,78,165,60,0,79,165,60,0,80,165,60,0,81,165,60,0,82,165,60,0,60,0,60,0,23,166,47,0,11,166,60,0,83,165,60,0,84,165,60,0,85,165,60,0,86,165,60,0,87,165,60,0,88,165,60,0,60,0,60,0,16,166,60,0,60,0,60,0,24,166,47,0,12,166,60,0,89,165,60,0,90,165,60,0,60,0,60,0,25,166,47,0,12,166,60,0,91,165,60,0,92,165,60,0,93,165,60,0,94,165,60,0,95,165,60,0,96,165,60,0,60,0,60,0,26,166,47,0,11,166,60,0,97,165,60,0,98,165,60,0,99,165,60,0,100,165,60,0,101,165,60,0,102,165,60,0,103,165,60,0,104,165,60,0,105,165,60,0,106,165,60,0,60,0,60,0,17,166,60,0,107,165,60,0,108,165,60,0,109,165,60,0,110,165,60,0,60,0,60,0,42,166,60,0,111,165,60,0,112,165,60,0,113,165,60,0,114,165,60,0,115,165,60,0,116,165,60,0,117,165,60,0,118,165,60,0,119,165,60,0,120,165,60,0,121,165,60,0,122,165,60,0,123,165,60,0,124,165,60,0,125,165,60,0,126,165,60,0,127,165,60,0,128,165,60,0,129,165,60,0,130,165,60,0,131,165,60,0,132,165,60,0,133,165,60,0,60,0,60,0,27,166,47,0,11,166,60,0,134,165,60,0,135,165,60,0,60,0,60,0,18,166,60,0,136,165,60,0,137,165,60,0,138,165,60,0,139,165,60,0,140,165,60,0,141,165,60,0,142,165,60,0,143,165,60,0,144,165,60,0,145,165,60,0,146,165,60,0,147,165,60,0,148,165,60,0,149,165,60,0,150,165,60,0,151,165,60,0,152,165,60,0,153,165,60,0,154,165,60,0,155,165,60,0,156,165,60,0,157,165,60,0,158,165,60,0,159,165,60,0,160,165,60,0,161,165,60,0,162,165,60,0,163,165,60,0,164,165,60,0,165,165,60,0,166,165,60,0,167,165,60,0,168,165,60,0,169,165,60,0,170,165,60,0,171,165,60,0,172,165,60,0,173,165,60,0,174,165,60,0,175,165,60,0,176,165,60,0,177,165,60,0,178,165,60,0,179,165,60,0,180,165,60,0,60,0,60,0,28,166,47,0,11,166,60,0,181,165,60,0,182,165,60,0,183,165,60,0,184,165,60,0,185,165,60,0,186,165,60,0,187,165,60,0,188,165,60,0,189,165,60,0,190,165,60,0,191,165,60,0,192,165,60,0,193,165,60,0,194,165,60,0,195,165,60,0,196,165,60,0,197,165,60,0,198,165,60,0,199,165,60,0,200,165,60,0,201,165,60,0,202,165,60,0,203,165,60,0,60,0,60,0,29,166,47,0,11,166,60,0,204,165,60,0,205,165,60,0,206,165,60,0,207,165,60,0,208,165,60,0,209,165,60,0,60,0,60,0,43,166,60,0,60,0,60,0,30,166,47,0,12,166,60,0,210,165,60,0,211,165,60,0,212,165,60,0,213,165,60,0,214,165,60,0,215,165,60,0,216,165,60,0,60,0,60,0,31,166,47,0,11,166,60,0,217,165,60,0,218,165,60,0,219,165,60,0,220,165,60,0,221,165,60,0,222,165,60,0,223,165,60,0,224,165,60,0,225,165,60,0,226,165,60,0,227,165,60,0,228,165,60,0,229,165,60,0,230,165,60,0,231,165,60,0,232,165,60,0,233,165,60,0,234,165,60,0,235,165,60,0,236,165,60,0,237,165,60,0,238,165,60,0,239,165,60,0,240,165,60,0,241,165,60,0,242,165,60,0,243,165,60,0,244,165,60,0,245,165,60,0,246,165,60,0,247,165,60,0,248,165,60,0,249,165,60,0,250,165,60,0,251,165,60,0,252,165,60,0,253,165,60,0,254,165,60,0,255,165,60,0,0,166,60,0,1,166,60,0,2,166,60,0,3,166,60,0,4,166,60,0,5,166,60,0,6,166,60,0,7,166,60,0,8,166,60,0,9,166,60,0,10,166,60,0,11,166,60,0,12,166,60,0,160,166,60,0,161,166,60,0,162,166,60,0,163,166,60,0,164,166,60,0,165,166,60,0,166,166,60,0,167,166,60,0,168,166,60,0,169,166,60,0,170,166,60,0,171,166,60,0,172,166,60,0,173,166,60,0,174,166,60,0,175,166,60,0,176,166,60,0,177,166,60,0,178,166,60,0,179,166,60,0,180,166,60,0,181,166,60,0,182,166,60,0,183,166,60,0,184,166,60,0,185,166,60,0,186,166,60,0,187,166,60,0,188,166,60,0,189,166,60,0,190,166,60,0,191,166,60,0,192,166,60,0,193,166,60,0,194,166,60,0,195,166,60,0,196,166,60,0,197,166,60,0,198,166,60,0,199,166,60,0,200,166,60,0,201,166,60,0,202,166,60,0,203,166,60,0,204,166,60,0,205,166,60,0,206,166,60,0,207,166,60,0,208,166,60,0,209,166,60,0,210,166,60,0,211,166,60,0,212,166,60,0,213,166,60,0,214,166,60,0,215,166,60,0,216,166,60,0,217,166,60,0,218,166,60,0,219,166,60,0,220,166,60,0,221,166,60,0,222,166,60,0,223,166,60,0,224,166,60,0,225,166,60,0,226,166,60,0,227,166,60,0,228,166,60,0,229,166,60,0,230,166,60,0,231,166,60,0,232,166,60,0,233,166,60,0,234,166,60,0,235,166,60,0,236,166,60,0,237,166,60,0,238,166,60,0,239,166,60,0,26,216,0,220,60,0,26,216,1,220,60,0,26,216,2,220,60,0,26,216,3,220,60,0,26,216,4,220,60,0,26,216,5,220,60,0,26,216,6,220,60,0,26,216,7,220,60,0,26,216,8,220,60,0,26,216,9,220,60,0,26,216,10,220,60,0,26,216,11,220,60,0,26,216,12,220,60,0,26,216,13,220,60,0,26,216,14,220,60,0,26,216,15,220,60,0,26,216,16,220,60,0,26,216,17,220,60,0,26,216,18,220,60,0,26,216,19,220,60,0,26,216,20,220,60,0,26,216,21,220,60,0,26,216,22,220,60,0,26,216,23,220,60,0,26,216,24,220,60,0,26,216,25,220,60,0,26,216,26,220,60,0,26,216,27,220,60,0,26,216,28,220,60,0,26,216,29,220,60,0,26,216,30,220,60,0,26,216,31,220,60,0,26,216,32,220,60,0,26,216,33,220,60,0,26,216,34,220,60,0,26,216,35,220,60,0,26,216,36,220,60,0,26,216,37,220,60,0,26,216,38,220,60,0,26,216,39,220,60,0,26,216,40,220,60,0,26,216,41,220,60,0,26,216,42,220,60,0,26,216,43,220,60,0,26,216,44,220,60,0,26,216,45,220,60,0,26,216,46,220,60,0,26,216,47,220,60,0,26,216,48,220,60,0,26,216,49,220,60,0,26,216,50,220,60,0,26,216,51,220,60,0,26,216,52,220,60,0,26,216,53,220,60,0,26,216,54,220,60,0,26,216,55,220,60,0,26,216,56,220,60,0,26,216,57,220,60,0,26,216,58,220,60,0,26,216,59,220,60,0,26,216,60,220,60,0,26,216,61,220,60,0,26,216,62,220,60,0,26,216,63,220,60,0,26,216,64,220,60,0,26,216,65,220,60,0,26,216,66,220,60,0,26,216,67,220,60,0,26,216,68,220,60,0,26,216,69,220,60,0,26,216,70,220,60,0,26,216,71,220,60,0,26,216,72,220,60,0,26,216,73,220,60,0,26,216,74,220,60,0,26,216,75,220,60,0,26,216,76,220,60,0,26,216,77,220,60,0,26,216,78,220,60,0,26,216,79,220,60,0,26,216,80,220,60,0,26,216,81,220,60,0,26,216,82,220,60,0,26,216,83,220,60,0,26,216,84,220,60,0,26,216,85,220,60,0,26,216,86,220,60,0,26,216,87,220,60,0,26,216,88,220,60,0,26,216,89,220,60,0,26,216,90,220,60,0,26,216,91,220,60,0,26,216,92,220,60,0,26,216,93,220,60,0,26,216,94,220,60,0,26,216,95,220,60,0,26,216,96,220,60,0,26,216,97,220,60,0,26,216,98,220,60,0,26,216,99,220,60,0,26,216,100,220,60,0,26,216,101,220,60,0,26,216,102,220,60,0,26,216,103,220,60,0,26,216,104,220,60,0,26,216,105,220,60,0,26,216,106,220,60,0,26,216,107,220,60,0,26,216,108,220,60,0,26,216,109,220,60,0,26,216,110,220,60,0,26,216,111,220,60,0,26,216,112,220,60,0,26,216,113,220,60,0,26,216,114,220,60,0,26,216,115,220,60,0,26,216,116,220,60,0,26,216,117,220,60,0,26,216,118,220,60,0,26,216,119,220,60,0,26,216,120,220,60,0,26,216,121,220,60,0,26,216,122,220,60,0,26,216,123,220,60,0,26,216,124,220,60,0,26,216,125,220,60,0,26,216,126,220,60,0,26,216,127,220,60,0,26,216,128,220,60,0,26,216,129,220,60,0,26,216,130,220,60,0,26,216,131,220,60,0,26,216,132,220,60,0,26,216,133,220,60,0,26,216,134,220,60,0,26,216,135,220,60,0,26,216,136,220,60,0,26,216,137,220,60,0,26,216,138,220,60,0,26,216,139,220,60,0,26,216,140,220,60,0,26,216,141,220,60,0,26,216,142,220,60,0,26,216,143,220,60,0,26,216,144,220,60,0,26,216,145,220,60,0,26,216,146,220,60,0,26,216,147,220,60,0,26,216,148,220,60,0,26,216,149,220,60,0,26,216,150,220,60,0,26,216,151,220,60,0,26,216,152,220,60,0,26,216,153,220,60,0,26,216,154,220,60,0,26,216,155,220,60,0,26,216,156,220,60,0,26,216,157,220,60,0,26,216,158,220,60,0,26,216,159,220,60,0,26,216,160,220,60,0,26,216,161,220,60,0,26,216,162,220,60,0,26,216,163,220,60,0,26,216,164,220,60,0,26,216,165,220,60,0,26,216,166,220,60,0,26,216,167,220,60,0,26,216,168,220,60,0,26,216,169,220,60,0,26,216,170,220,60,0,26,216,171,220,60,0,26,216,172,220,60,0,26,216,173,220,60,0,26,216,174,220,60,0,26,216,175,220,60,0,26,216,176,220,60,0,26,216,177,220,60,0,26,216,178,220,60,0,26,216,179,220,60,0,26,216,180,220,60,0,26,216,181,220,60,0,26,216,182,220,60,0,26,216,183,220,60,0,26,216,184,220,60,0,26,216,185,220,60,0,26,216,186,220,60,0,26,216,187,220,60,0,26,216,188,220,60,0,26,216,189,220,60,0,26,216,190,220,60,0,26,216,191,220,60,0,26,216,192,220,60,0,26,216,193,220,60,0,26,216,194,220,60,0,26,216,195,220,60,0,26,216,196,220,60,0,26,216,197,220,60,0,26,216,198,220,60,0,26,216,199,220,60,0,26,216,200,220,60,0,26,216,201,220,60,0,26,216,202,220,60,0,26,216,203,220,60,0,26,216,204,220,60,0,26,216,205,220,60,0,26,216,206,220,60,0,26,216,207,220,60,0,26,216,208,220,60,0,26,216,209,220,60,0,26,216,210,220,60,0,26,216,211,220,60,0,26,216,212,220,60,0,26,216,213,220,60,0,26,216,214,220,60,0,26,216,215,220,60,0,26,216,216,220,60,0,26,216,217,220,60,0,26,216,218,220,60,0,26,216,219,220,60,0,26,216,220,220,60,0,26,216,221,220,60,0,26,216,222,220,60,0,26,216,223,220,60,0,26,216,224,220,60,0,26,216,225,220,60,0,26,216,226,220,60,0,26,216,227,220,60,0,26,216,228,220,60,0,26,216,229,220,60,0,26,216,230,220,60,0,26,216,231,220,60,0,26,216,232,220,60,0,26,216,233,220,60,0,26,216,234,220,60,0,26,216,235,220,60,0,26,216,236,220,60,0,26,216,237,220,60,0,26,216,238,220,60,0,26,216,239,220,60,0,26,216,240,220,60,0,26,216,241,220,60,0,26,216,242,220,60,0,26,216,243,220,60,0,26,216,244,220,60,0,26,216,245,220,60,0,26,216,246,220,60,0,26,216,247,220,60,0,26,216,248,220,60,0,26,216,249,220,60,0,26,216,250,220,60,0,26,216,251,220,60,0,26,216,252,220,60,0,26,216,253,220,60,0,26,216,254,220,60,0,26,216,255,220,60,0,26,216,0,221,60,0,26,216,1,221,60,0,26,216,2,221,60,0,26,216,3,221,60,0,26,216,4,221,60,0,26,216,5,221,60,0,26,216,6,221,60,0,26,216,7,221,60,0,26,216,8,221,60,0,26,216,9,221,60,0,26,216,10,221,60,0,26,216,11,221,60,0,26,216,12,221,60,0,26,216,13,221,60,0,26,216,14,221,60,0,26,216,15,221,60,0,26,216,16,221,60,0,26,216,17,221,60,0,26,216,18,221,60,0,26,216,19,221,60,0,26,216,20,221,60,0,26,216,21,221,60,0,26,216,22,221,60,0,26,216,23,221,60,0,26,216,24,221,60,0,26,216,25,221,60,0,26,216,26,221,60,0,26,216,27,221,60,0,26,216,28,221,60,0,26,216,29,221,60,0,26,216,30,221,60,0,26,216,31,221,60,0,26,216,32,221,60,0,26,216,33,221,60,0,26,216,34,221,60,0,26,216,35,221,60,0,26,216,36,221,60,0,26,216,37,221,60,0,26,216,38,221,60,0,26,216,39,221,60,0,26,216,40,221,60,0,26,216,41,221,60,0,26,216,42,221,60,0,26,216,43,221,60,0,26,216,44,221,60,0,26,216,45,221,60,0,26,216,46,221,60,0,26,216,47,221,60,0,26,216,48,221,60,0,26,216,49,221,60,0,26,216,50,221,60,0,26,216,51,221,60,0,26,216,52,221,60,0,26,216,53,221,60,0,26,216,54,221,60,0,26,216,55,221,60,0,26,216,56,221,60,0,26,216,57,221,60,0,26,216,58,221,60,0,26,216,59,221,60,0,26,216,60,221,60,0,26,216,61,221,60,0,26,216,62,221,60,0,26,216,63,221,60,0,26,216,64,221,60,0,26,216,65,221,60,0,26,216,66,221,60,0,26,216,67,221,60,0,26,216,68,221,60,0,26,216,69,221,60,0,26,216,70,221,60,0,26,216,71,221,60,0,26,216,72,221,60,0,26,216,73,221,60,0,26,216,74,221,60,0,26,216,75,221,60,0,26,216,76,221,60,0,26,216,77,221,60,0,26,216,78,221,60,0,26,216,79,221,60,0,26,216,80,221,60,0,26,216,81,221,60,0,26,216,82,221,60,0,26,216,83,221,60,0,26,216,84,221,60,0,26,216,85,221,60,0,26,216,86,221,60,0,26,216,87,221,60,0,26,216,88,221,60,0,26,216,89,221,60,0,26,216,90,221,60,0,26,216,91,221,60,0,26,216,92,221,60,0,26,216,93,221,60,0,26,216,94,221,60,0,26,216,95,221,60,0,26,216,96,221,60,0,26,216,97,221,60,0,26,216,98,221,60,0,26,216,99,221,60,0,26,216,100,221,60,0,26,216,101,221,60,0,26,216,102,221,60,0,26,216,103,221,60,0,26,216,104,221,60,0,26,216,105,221,60,0,26,216,106,221,60,0,26,216,107,221,60,0,26,216,108,221,60,0,26,216,109,221,60,0,26,216,110,221,60,0,26,216,111,221,60,0,26,216,112,221,60,0,26,216,113,221,60,0,26,216,114,221,60,0,26,216,115,221,60,0,26,216,116,221,60,0,26,216,117,221,60,0,26,216,118,221,60,0,26,216,119,221,60,0,26,216,120,221,60,0,26,216,121,221,60,0,26,216,122,221,60,0,26,216,123,221,60,0,26,216,124,221,60,0,26,216,125,221,60,0,26,216,126,221,60,0,26,216,127,221,60,0,26,216,128,221,60,0,26,216,129,221,60,0,26,216,130,221,60,0,26,216,131,221,60,0,26,216,132,221,60,0,26,216,133,221,60,0,26,216,134,221,60,0,26,216,135,221,60,0,26,216,136,221,60,0,26,216,137,221,60,0,26,216,138,221,60,0,26,216,139,221,60,0,26,216,140,221,60,0,26,216,141,221,60,0,26,216,142,221,60,0,26,216,143,221,60,0,26,216,144,221,60,0,26,216,145,221,60,0,26,216,146,221,60,0,26,216,147,221,60,0,26,216,148,221,60,0,26,216,149,221,60,0,26,216,150,221,60,0,26,216,151,221,60,0,26,216,152,221,60,0,26,216,153,221,60,0,26,216,154,221,60,0,26,216,155,221,60,0,26,216,156,221,60,0,26,216,157,221,60,0,26,216,158,221,60,0,26,216,159,221,60,0,26,216,160,221,60,0,26,216,161,221,60,0,26,216,162,221,60,0,26,216,163,221,60,0,26,216,164,221,60,0,26,216,165,221,60,0,26,216,166,221,60,0,26,216,167,221,60,0,26,216,168,221,60,0,26,216,169,221,60,0,26,216,170,221,60,0,26,216,171,221,60,0,26,216,172,221,60,0,26,216,173,221,60,0,26,216,174,221,60,0,26,216,175,221,60,0,26,216,176,221,60,0,26,216,177,221,60,0,26,216,178,221,60,0,26,216,179,221,60,0,26,216,180,221,60,0,26,216,181,221,60,0,26,216,182,221,60,0,26,216,183,221,60,0,26,216,184,221,60,0,26,216,185,221,60,0,26,216,186,221,60,0,26,216,187,221,60,0,26,216,188,221,60,0,26,216,189,221,60,0,26,216,190,221,60,0,26,216,191,221,60,0,26,216,192,221,60,0,26,216,193,221,60,0,26,216,194,221,60,0,26,216,195,221,60,0,26,216,196,221,60,0,26,216,197,221,60,0,26,216,198,221,60,0,26,216,199,221,60,0,26,216,200,221,60,0,26,216,201,221,60,0,26,216,202,221,60,0,26,216,203,221,60,0,26,216,204,221,60,0,26,216,205,221,60,0,26,216,206,221,60,0,26,216,207,221,60,0,26,216,208,221,60,0,26,216,209,221,60,0,26,216,210,221,60,0,26,216,211,221,60,0,26,216,212,221,60,0,26,216,213,221,60,0,26,216,214,221,60,0,26,216,215,221,60,0,26,216,216,221,60,0,26,216,217,221,60,0,26,216,218,221,60,0,26,216,219,221,60,0,26,216,220,221,60,0,26,216,221,221,60,0,26,216,222,221,60,0,26,216,223,221,60,0,26,216,224,221,60,0,26,216,225,221,60,0,26,216,226,221,60,0,26,216,227,221,60,0,26,216,228,221,60,0,26,216,229,221,60,0,26,216,230,221,60,0,26,216,231,221,60,0,26,216,232,221,60,0,26,216,233,221,60,0,26,216,234,221,60,0,26,216,235,221,60,0,26,216,236,221,60,0,26,216,237,221,60,0,26,216,238,221,60,0,26,216,239,221,60,0,26,216,240,221,60,0,26,216,241,221,60,0,26,216,242,221,60,0,26,216,243,221,60,0,26,216,244,221,60,0,26,216,245,221,60,0,26,216,246,221,60,0,26,216,247,221,60,0,26,216,248,221,60,0,26,216,249,221,60,0,26,216,250,221,60,0,26,216,251,221,60,0,26,216,252,221,60,0,26,216,253,221,60,0,26,216,254,221,60,0,26,216,255,221,60,0,26,216,0,222,60,0,26,216,1,222,60,0,26,216,2,222,60,0,26,216,3,222,60,0,26,216,4,222,60,0,26,216,5,222,60,0,26,216,6,222,60,0,26,216,7,222,60,0,26,216,8,222,60,0,26,216,9,222,60,0,26,216,10,222,60,0,26,216,11,222,60,0,26,216,12,222,60,0,26,216,13,222,60,0,26,216,14,222,60,0,26,216,15,222,60,0,26,216,16,222,60,0,26,216,17,222,60,0,26,216,18,222,60,0,26,216,19,222,60,0,26,216,20,222,60,0,26,216,21,222,60,0,26,216,22,222,60,0,26,216,23,222,60,0,26,216,24,222,60,0,26,216,25,222,60,0,26,216,26,222,60,0,26,216,27,222,60,0,26,216,28,222,60,0,26,216,29,222,60,0,26,216,30,222,60,0,26,216,31,222,60,0,26,216,32,222,60,0,26,216,33,222,60,0,26,216,34,222,60,0,26,216,35,222,60,0,26,216,36,222,60,0,26,216,37,222,60,0,26,216,38,222,60,0,26,216,39,222,60,0,26,216,40,222,60,0,26,216,41,222,60,0,26,216,42,222,60,0,26,216,43,222,60,0,26,216,44,222,60,0,26,216,45,222,60,0,26,216,46,222,60,0,26,216,47,222,60,0,26,216,48,222,60,0,26,216,49,222,60,0,26,216,50,222,60,0,26,216,51,222,60,0,26,216,52,222,60,0,26,216,53,222,60,0,26,216,54,222,60,0,26,216,55,222,60,0,26,216,56,222,60,0,26,216,208,222,60,0,26,216,209,222,60,0,26,216,210,222,60,0,26,216,211,222,60,0,26,216,212,222,60,0,26,216,213,222,60,0,26,216,214,222,60,0,26,216,215,222,60,0,26,216,216,222,60,0,26,216,217,222,60,0,26,216,218,222,60,0,26,216,219,222,60,0,26,216,220,222,60,0,26,216,221,222,60,0,26,216,222,222,60,0,26,216,223,222,60,0,26,216,224,222,60,0,26,216,225,222,60,0,26,216,226,222,60,0,26,216,227,222,60,0,26,216,228,222,60,0,26,216,229,222,60,0,26,216,230,222,60,0,26,216,231,222,60,0,26,216,232,222,60,0,26,216,233,222,60,0,26,216,234,222,60,0,26,216,235,222,60,0,26,216,236,222,60,0,26,216,237,222,60,0,14,32,58,216,0,220,14,32,60,0,14,32,58,216,1,220,14,32,60,0,14,32,58,216,2,220,14,32,60,0,14,32,58,216,3,220,14,32,60,0,14,32,58,216,4,220,14,32,60,0,14,32,58,216,5,220,14,32,60,0,14,32,58,216,6,220,14,32,60,0,14,32,58,216,7,220,14,32,60,0,14,32,58,216,8,220,14,32,60,0,14,32,58,216,9,220,14,32,60,0,14,32,58,216,10,220,14,32,60,0,14,32,58,216,11,220,14,32,60,0,14,32,58,216,12,220,14,32,60,0,14,32,58,216,13,220,14,32,60,0,14,32,58,216,14,220,14,32,60,0,14,32,58,216,15,220,14,32,60,0,14,32,58,216,16,220,14,32,60,0,14,32,58,216,17,220,14,32,60,0,14,32,58,216,18,220,14,32,60,0,14,32,58,216,19,220,14,32,60,0,14,32,58,216,20,220,14,32,60,0,14,32,58,216,21,220,14,32,60,0,14,32,58,216,22,220,14,32,60,0,14,32,58,216,23,220,14,32,60,0,14,32,58,216,24,220,14,32,60,0,14,32,58,216,25,220,14,32,60,0,14,32,58,216,26,220,14,32,60,0,14,32,58,216,27,220,14,32,60,0,14,32,58,216,28,220,14,32,60,0,14,32,58,216,29,220,14,32,60,0,14,32,58,216,30,220,14,32,60,0,14,32,58,216,31,220,14,32,60,0,14,32,58,216,32,220,14,32,60,0,14,32,58,216,33,220,14,32,60,0,14,32,58,216,34,220,14,32,60,0,14,32,58,216,35,220,14,32,60,0,14,32,58,216,36,220,14,32,60,0,14,32,58,216,37,220,14,32,60,0,14,32,58,216,38,220,14,32,60,0,14,32,58,216,39,220,14,32,60,0,14,32,58,216,40,220,14,32,60,0,14,32,58,216,41,220,14,32,60,0,14,32,58,216,42,220,14,32,60,0,14,32,58,216,43,220,14,32,60,0,14,32,58,216,44,220,14,32,60,0,14,32,58,216,45,220,14,32,60,0,14,32,58,216,46,220,14,32,60,0,14,32,58,216,47,220,14,32,60,0,14,32,58,216,48,220,14,32,60,0,14,32,58,216,49,220,14,32,60,0,14,32,58,216,50,220,14,32,60,0,14,32,58,216,51,220,14,32,60,0,14,32,58,216,52,220,14,32,60,0,14,32,58,216,53,220,14,32,60,0,14,32,58,216,54,220,14,32,60,0,14,32,58,216,55,220,14,32,60,0,14,32,58,216,56,220,14,32,60,0,14,32,58,216,57,220,14,32,60,0,14,32,58,216,58,220,14,32,60,0,14,32,58,216,59,220,14,32,60,0,14,32,58,216,60,220,14,32,60,0,14,32,58,216,61,220,14,32,60,0,14,32,58,216,62,220,14,32,60,0,14,32,58,216,63,220,14,32,60,0,14,32,58,216,64,220,14,32,60,0,14,32,58,216,65,220,14,32,60,0,14,32,58,216,66,220,14,32,60,0,14,32,58,216,67,220,14,32,60,0,14,32,58,216,68,220,14,32,60,0,14,32,58,216,69,220,14,32,60,0,14,32,58,216,70,220,14,32,60,0,14,32,58,216,71,220,14,32,60,0,14,32,58,216,72,220,14,32,60,0,14,32,58,216,73,220,14,32,60,0,14,32,58,216,74,220,14,32,60,0,14,32,58,216,75,220,14,32,60,0,14,32,58,216,76,220,14,32,60,0,14,32,58,216,77,220,14,32,60,0,14,32,58,216,78,220,14,32,60,0,14,32,58,216,79,220,14,32,60,0,14,32,58,216,80,220,14,32,60,0,14,32,58,216,81,220,14,32,60,0,14,32,58,216,82,220,14,32,60,0,14,32,58,216,83,220,14,32,60,0,14,32,58,216,84,220,14,32,60,0,14,32,58,216,85,220,14,32,60,0,14,32,58,216,86,220,14,32,60,0,14,32,58,216,87,220,14,32,60,0,14,32,58,216,88,220,14,32,60,0,14,32,58,216,89,220,14,32,60,0,14,32,58,216,90,220,14,32,60,0,14,32,58,216,91,220,14,32,60,0,14,32,58,216,92,220,14,32,60,0,14,32,58,216,93,220,14,32,60,0,14,32,58,216,94,220,14,32,60,0,14,32,58,216,95,220,14,32,60,0,14,32,58,216,96,220,14,32,60,0,14,32,58,216,97,220,14,32,60,0,14,32,58,216,98,220,14,32,60,0,14,32,58,216,99,220,14,32,60,0,14,32,58,216,100,220,14,32,60,0,14,32,58,216,101,220,14,32,60,0,14,32,58,216,102,220,14,32,60,0,14,32,58,216,103,220,14,32,60,0,14,32,58,216,104,220,14,32,60,0,14,32,58,216,105,220,14,32,60,0,14,32,58,216,106,220,14,32,60,0,14,32,58,216,107,220,14,32,60,0,14,32,58,216,108,220,14,32,60,0,14,32,58,216,109,220,14,32,60,0,14,32,58,216,110,220,14,32,60,0,14,32,58,216,111,220,14,32,60,0,14,32,58,216,112,220,14,32,60,0,14,32,58,216,113,220,14,32,60,0,14,32,58,216,114,220,14,32,60,0,14,32,58,216,115,220,14,32,60,0,14,32,58,216,116,220,14,32,60,0,14,32,58,216,117,220,14,32,60,0,14,32,58,216,118,220,14,32,60,0,14,32,58,216,119,220,14,32,60,0,14,32,58,216,120,220,14,32,60,0,14,32,58,216,121,220,14,32,60,0,14,32,58,216,122,220,14,32,60,0,14,32,58,216,123,220,14,32,60,0,14,32,58,216,124,220,14,32,60,0,14,32,58,216,125,220,14,32,60,0,14,32,58,216,126,220,14,32,60,0,14,32,58,216,127,220,14,32,60,0,14,32,58,216,128,220,14,32,60,0,14,32,58,216,129,220,14,32,60,0,14,32,58,216,130,220,14,32,60,0,14,32,58,216,131,220,14,32,60,0,14,32,58,216,132,220,14,32,60,0,14,32,58,216,133,220,14,32,60,0,14,32,58,216,134,220,14,32,60,0,14,32,58,216,135,220,14,32,60,0,14,32,58,216,136,220,14,32,60,0,14,32,58,216,137,220,14,32,60,0,14,32,58,216,138,220,14,32,60,0,14,32,58,216,139,220,14,32,60,0,14,32,58,216,140,220,14,32,60,0,14,32,58,216,141,220,14,32,60,0,14,32,58,216,142,220,14,32,60,0,14,32,58,216,143,220,14,32,60,0,14,32,58,216,144,220,14,32,60,0,14,32,58,216,145,220,14,32,60,0,14,32,58,216,146,220,14,32,60,0,14,32,58,216,147,220,14,32,60,0,14,32,58,216,148,220,14,32,60,0,14,32,58,216,149,220,14,32,60,0,14,32,58,216,150,220,14,32,60,0,14,32,58,216,151,220,14,32,60,0,14,32,58,216,152,220,14,32,60,0,14,32,58,216,153,220,14,32,60,0,14,32,58,216,154,220,14,32,60,0,14,32,58,216,155,220,14,32,60,0,14,32,58,216,156,220,14,32,60,0,14,32,58,216,157,220,14,32,60,0,14,32,58,216,158,220,14,32,60,0,14,32,58,216,159,220,14,32,60,0,14,32,58,216,160,220,14,32,60,0,14,32,58,216,161,220,14,32,60,0,14,32,58,216,162,220,14,32,60,0,14,32,58,216,163,220,14,32,60,0,14,32,58,216,164,220,14,32,60,0,14,32,58,216,165,220,14,32,60,0,14,32,58,216,166,220,14,32,60,0,14,32,58,216,167,220,14,32,60,0,14,32,58,216,168,220,14,32,60,0,14,32,58,216,169,220,14,32,60,0,14,32,58,216,170,220,14,32,60,0,14,32,58,216,171,220,14,32,60,0,14,32,58,216,172,220,14,32,60,0,14,32,58,216,173,220,14,32,60,0,14,32,58,216,174,220,14,32,60,0,14,32,58,216,175,220,14,32,60,0,14,32,58,216,176,220,14,32,60,0,14,32,58,216,177,220,14,32,60,0,14,32,58,216,178,220,14,32,60,0,14,32,58,216,179,220,14,32,60,0,14,32,58,216,180,220,14,32,60,0,14,32,58,216,181,220,14,32,60,0,14,32,58,216,182,220,14,32,60,0,14,32,58,216,183,220,14,32,60,0,14,32,58,216,184,220,14,32,60,0,14,32,58,216,185,220,14,32,60,0,14,32,58,216,186,220,14,32,60,0,14,32,58,216,187,220,14,32,60,0,14,32,58,216,188,220,14,32,60,0,14,32,58,216,189,220,14,32,60,0,14,32,58,216,190,220,14,32,60,0,14,32,58,216,191,220,14,32,60,0,14,32,58,216,192,220,14,32,60,0,14,32,58,216,193,220,14,32,60,0,14,32,58,216,194,220,14,32,60,0,14,32,58,216,195,220,14,32,60,0,14,32,58,216,196,220,14,32,60,0,27,216,96,222,60,0,60,0,60,0,27,216,64,222,60,0,27,216,97,222,60,0,60,0,60,0,27,216,65,222,60,0,27,216,98,222,60,0,60,0,60,0,27,216,66,222,60,0,27,216,99,222,60,0,60,0,60,0,27,216,67,222,60,0,27,216,100,222,60,0,60,0,60,0,27,216,68,222,60,0,27,216,101,222,60,0,60,0,60,0,27,216,69,222,60,0,27,216,102,222,60,0,60,0,60,0,27,216,70,222,60,0,27,216,103,222,60,0,60,0,60,0,27,216,71,222,60,0,27,216,104,222,60,0,60,0,60,0,27,216,72,222,60,0,27,216,105,222,60,0,60,0,60,0,27,216,73,222,60,0,27,216,106,222,60,0,60,0,60,0,27,216,74,222,60,0,27,216,107,222,60,0,60,0,60,0,27,216,75,222,60,0,27,216,108,222,60,0,60,0,60,0,27,216,76,222,60,0,27,216,109,222,60,0,60,0,60,0,27,216,77,222,60,0,27,216,110,222,60,0,60,0,60,0,27,216,78,222,60,0,27,216,111,222,60,0,60,0,60,0,27,216,79,222,60,0,27,216,112,222,60,0,60,0,60,0,27,216,80,222,60,0,27,216,113,222,60,0,60,0,60,0,27,216,81,222,60,0,27,216,114,222,60,0,60,0,60,0,27,216,82,222,60,0,27,216,115,222,60,0,60,0,60,0,27,216,83,222,60,0,27,216,116,222,60,0,60,0,60,0,27,216,84,222,60,0,27,216,117,222,60,0,60,0,60,0,27,216,85,222,60,0,27,216,118,222,60,0,60,0,60,0,27,216,86,222,60,0,27,216,119,222,60,0,60,0,60,0,27,216,87,222,60,0,27,216,120,222,60,0,60,0,60,0,27,216,88,222,60,0,27,216,121,222,60,0,60,0,60,0,27,216,89,222,60,0,27,216,122,222,60,0,60,0,60,0,27,216,90,222,60,0,27,216,123,222,60,0,60,0,60,0,27,216,91,222,60,0,27,216,124,222,60,0,60,0,60,0,27,216,92,222,60,0,27,216,125,222,60,0,60,0,60,0,27,216,93,222,60,0,27,216,126,222,60,0,60,0,60,0,27,216,94,222,60,0,27,216,127,222,60,0,60,0,60,0,27,216,95,222,60,0,14,32,58,216,34,221,14,32,60,0,60,0,60,0,14,32,58,216,0,221,14,32,60,0,14,32,58,216,35,221,14,32,60,0,60,0,60,0,14,32,58,216,1,221,14,32,60,0,14,32,58,216,36,221,14,32,60,0,60,0,60,0,14,32,58,216,2,221,14,32,60,0,14,32,58,216,37,221,14,32,60,0,60,0,60,0,14,32,58,216,3,221,14,32,60,0,14,32,58,216,38,221,14,32,60,0,60,0,60,0,14,32,58,216,4,221,14,32,60,0,14,32,58,216,39,221,14,32,60,0,60,0,60,0,14,32,58,216,5,221,14,32,60,0,14,32,58,216,40,221,14,32,60,0,60,0,60,0,14,32,58,216,6,221,14,32,60,0,14,32,58,216,41,221,14,32,60,0,60,0,60,0,14,32,58,216,7,221,14,32,60,0,14,32,58,216,42,221,14,32,60,0,60,0,60,0,14,32,58,216,8,221,14,32,60,0,14,32,58,216,43,221,14,32,60,0,60,0,60,0,14,32,58,216,9,221,14,32,60,0,14,32,58,216,44,221,14,32,60,0,60,0,60,0,14,32,58,216,10,221,14,32,60,0,14,32,58,216,45,221,14,32,60,0,60,0,60,0,14,32,58,216,11,221,14,32,60,0,14,32,58,216,46,221,14,32,60,0,60,0,60,0,14,32,58,216,12,221,14,32,60,0,14,32,58,216,47,221,14,32,60,0,60,0,60,0,14,32,58,216,13,221,14,32,60,0,14,32,58,216,48,221,14,32,60,0,60,0,60,0,14,32,58,216,14,221,14,32,60,0,14,32,58,216,49,221,14,32,60,0,60,0,60,0,14,32,58,216,15,221,14,32,60,0,14,32,58,216,50,221,14,32,60,0,60,0,60,0,14,32,58,216,16,221,14,32,60,0,14,32,58,216,51,221,14,32,60,0,60,0,60,0,14,32,58,216,17,221,14,32,60,0,14,32,58,216,52,221,14,32,60,0,60,0,60,0,14,32,58,216,18,221,14,32,60,0,14,32,58,216,53,221,14,32,60,0,60,0,60,0,14,32,58,216,19,221,14,32,60,0,14,32,58,216,54,221,14,32,60,0,60,0,60,0,14,32,58,216,20,221,14,32,60,0,14,32,58,216,55,221,14,32,60,0,60,0,60,0,14,32,58,216,21,221,14,32,60,0,14,32,58,216,56,221,14,32,60,0,60,0,60,0,14,32,58,216,22,221,14,32,60,0,14,32,58,216,57,221,14,32,60,0,60,0,60,0,14,32,58,216,23,221,14,32,60,0,14,32,58,216,58,221,14,32,60,0,60,0,60,0,14,32,58,216,24,221,14,32,60,0,14,32,58,216,59,221,14,32,60,0,60,0,60,0,14,32,58,216,25,221,14,32,60,0,14,32,58,216,60,221,14,32,60,0,60,0,60,0,14,32,58,216,26,221,14,32,60,0,14,32,58,216,61,221,14,32,60,0,60,0,60,0,14,32,58,216,27,221,14,32,60,0,14,32,58,216,62,221,14,32,60,0,60,0,60,0,14,32,58,216,28,221,14,32,60,0,14,32,58,216,63,221,14,32,60,0,60,0,60,0,14,32,58,216,29,221,14,32,60,0,14,32,58,216,64,221,14,32,60,0,60,0,60,0,14,32,58,216,30,221,14,32,60,0,14,32,58,216,65,221,14,32,60,0,60,0,60,0,14,32,58,216,31,221,14,32,60,0,14,32,58,216,66,221,14,32,60,0,60,0,60,0,14,32,58,216,32,221,14,32,60,0,14,32,58,216,67,221,14,32,60,0,60,0,60,0,14,32,58,216,33,221,14,32,60,0,14,32,58,216,75,221,14,32,60,0,0,17,60,0,60,0,60,0,49,49,60,0,60,0,60,0,96,50,60,0,60,0,60,0,110,50,47,0,97,17,60,0,60,0,60,0,161,255,60,0,1,17,60,0,60,0,60,0,50,49,60,0,60,0,60,0,162,255,60,0,2,17,60,0,60,0,60,0,52,49,60,0,60,0,60,0,97,50,60,0,60,0,60,0,111,50,47,0,97,17,60,0,60,0,60,0,164,255,60,0,3,17,60,0,60,0,60,0,55,49,60,0,60,0,60,0,98,50,60,0,60,0,60,0,112,50,47,0,97,17,60,0,60,0,60,0,167,255,60,0,4,17,60,0,60,0,60,0,56,49,60,0,60,0,60,0,168,255,60,0,5,17,60,0,60,0,60,0,57,49,60,0,60,0,60,0,99,50,60,0,60,0,60,0,113,50,47,0,97,17,60,0,60,0,60,0,169,255,60,0,6,17,60,0,60,0,60,0,65,49,60,0,60,0,60,0,100,50,60,0,60,0,60,0,114,50,47,0,97,17,60,0,60,0,60,0,177,255,60,0,7,17,60,0,60,0,60,0,66,49,60,0,60,0,60,0,101,50,60,0,60,0,60,0,115,50,47,0,97,17,60,0,60,0,60,0,178,255,60,0,8,17,60,0,60,0,60,0,67,49,60,0,60,0,60,0,179,255,60,0,9,17,60,0,60,0,60,0,69,49,60,0,60,0,60,0,102,50,60,0,60,0,60,0,116,50,47,0,97,17,60,0,60,0,60,0,181,255,60,0,10,17,60,0,60,0,60,0,70,49,60,0,60,0,60,0,182,255,60,0,11,17,60,0,60,0,60,0,71,49,60,0,60,0,60,0,103,50,60,0,60,0,60,0,117,50,47,0,97,17,60,0,60,0,60,0,126,50,47,0,110,17,60,0,60,0,60,0,183,255,60,0,12,17,60,0,60,0,60,0,72,49,60,0,60,0,60,0,104,50,60,0,60,0,60,0,118,50,47,0,97,17,60,0,60,0,60,0,125,50,47,0,110,17,88,199,60,0,60,0,60,0,184,255,60,0,13,17,60,0,60,0,60,0,73,49,60,0,60,0,60,0,185,255,60,0,14,17,60,0,60,0,60,0,74,49,60,0,60,0,60,0,105,50,60,0,60,0,60,0,119,50,47,0,97,17,60,0,60,0,60,0,124,50,47,0,97,17,183,17,224,172,60,0,60,0,60,0,186,255,60,0,15,17,60,0,60,0,60,0,75,49,60,0,60,0,60,0,106,50,60,0,60,0,60,0,120,50,47,0,97,17,60,0,60,0,60,0,187,255,60,0,16,17,60,0,60,0,60,0,76,49,60,0,60,0,60,0,107,50,60,0,60,0,60,0,121,50,47,0,97,17,60,0,60,0,60,0,188,255,60,0,17,17,60,0,60,0,60,0,77,49,60,0,60,0,60,0,108,50,60,0,60,0,60,0,122,50,47,0,97,17,60,0,60,0,60,0,189,255,60,0,18,17,60,0,60,0,60,0,78,49,60,0,60,0,60,0,109,50,60,0,60,0,60,0,123,50,47,0,97,17,60,0,60,0,60,0,190,255,60,0,19,17,60,0,20,17,60,0,60,0,60,0,101,49,60,0,21,17,60,0,60,0,60,0,102,49,60,0,22,17,60,0,23,17,60,0,24,17,60,0,25,17,60,0,26,17,60,0,60,0,60,0,64,49,60,0,60,0,60,0,176,255,60,0,27,17,60,0,28,17,60,0,60,0,60,0,110,49,60,0,29,17,60,0,60,0,60,0,113,49,60,0,30,17,60,0,60,0,60,0,114,49,60,0,31,17,60,0,32,17,60,0,60,0,60,0,115,49,60,0,33,17,60,0,60,0,60,0,68,49,60,0,60,0,60,0,180,255,60,0,34,17,60,0,60,0,60,0,116,49,60,0,35,17,60,0,60,0,60,0,117,49,60,0,36,17,60,0,37,17,60,0,38,17,60,0,39,17,60,0,60,0,60,0,118,49,60,0,40,17,60,0,41,17,60,0,60,0,60,0,119,49,60,0,42,17,60,0,43,17,60,0,60,0,60,0,120,49,60,0,44,17,60,0,60,0,60,0,121,49,60,0,45,17,60,0,60,0,60,0,122,49,60,0,46,17,60,0,60,0,60,0,123,49,60,0,47,17,60,0,60,0,60,0,124,49,60,0,48,17,60,0,49,17,60,0,50,17,60,0,60,0,60,0,125,49,60,0,51,17,60,0,52,17,60,0,53,17,60,0,54,17,60,0,60,0,60,0,126,49,60,0,55,17,60,0,56,17,60,0,57,17,60,0,58,17,60,0,59,17,60,0,60,17,60,0,61,17,60,0,62,17,60,0,63,17,60,0,64,17,60,0,60,0,60,0,127,49,60,0,65,17,60,0,66,17,60,0,67,17,60,0,68,17,60,0,69,17,60,0,70,17,60,0,71,17,60,0,60,0,60,0,128,49,60,0,72,17,60,0,73,17,60,0,74,17,60,0,75,17,60,0,76,17,60,0,60,0,60,0,129,49,60,0,77,17,60,0,78,17,60,0,79,17,60,0,80,17,60,0,81,17,60,0,82,17,60,0,83,17,60,0,84,17,60,0,85,17,60,0,86,17,60,0,87,17,60,0,60,0,60,0,132,49,60,0,88,17,60,0,60,0,60,0,133,49,60,0,89,17,60,0,60,0,60,0,134,49,60,0,90,17,60,0,91,17,60,0,92,17,60,0,93,17,60,0,94,17,60,0,96,169,60,0,97,169,60,0,98,169,60,0,99,169,60,0,100,169,60,0,101,169,60,0,102,169,60,0,103,169,60,0,104,169,60,0,105,169,60,0,106,169,60,0,107,169,60,0,108,169,60,0,109,169,60,0,110,169,60,0,111,169,60,0,112,169,60,0,113,169,60,0,114,169,60,0,115,169,60,0,116,169,60,0,117,169,60,0,118,169,60,0,119,169,60,0,120,169,60,0,121,169,60,0,122,169,60,0,123,169,60,0,124,169,60,0,95,17,60,0,96,17,60,0,60,0,60,0,100,49,60,0,60,0,60,0,160,255,60,0,97,17,60,0,60,0,60,0,79,49,60,0,60,0,60,0,194,255,60,0,98,17,60,0,60,0,60,0,80,49,60,0,60,0,60,0,195,255,60,0,99,17,60,0,60,0,60,0,81,49,60,0,60,0,60,0,196,255,60,0,100,17,60,0,60,0,60,0,82,49,60,0,60,0,60,0,197,255,60,0,101,17,60,0,60,0,60,0,83,49,60,0,60,0,60,0,198,255,60,0,102,17,60,0,60,0,60,0,84,49,60,0,60,0,60,0,199,255,60,0,103,17,60,0,60,0,60,0,85,49,60,0,60,0,60,0,202,255,60,0,104,17,60,0,60,0,60,0,86,49,60,0,60,0,60,0,203,255,60,0,105,17,60,0,60,0,60,0,87,49,60,0,60,0,60,0,204,255,60,0,106,17,60,0,60,0,60,0,88,49,60,0,60,0,60,0,205,255,60,0,107,17,60,0,60,0,60,0,89,49,60,0,60,0,60,0,206,255,60,0,108,17,60,0,60,0,60,0,90,49,60,0,60,0,60,0,207,255,60,0,109,17,60,0,60,0,60,0,91,49,60,0,60,0,60,0,210,255,60,0,110,17,60,0,60,0,60,0,92,49,60,0,60,0,60,0,211,255,60,0,111,17,60,0,60,0,60,0,93,49,60,0,60,0,60,0,212,255,60,0,112,17,60,0,60,0,60,0,94,49,60,0,60,0,60,0,213,255,60,0,113,17,60,0,60,0,60,0,95,49,60,0,60,0,60,0,214,255,60,0,114,17,60,0,60,0,60,0,96,49,60,0,60,0,60,0,215,255,60,0,115,17,60,0,60,0,60,0,97,49,60,0,60,0,60,0,218,255,60,0,116,17,60,0,60,0,60,0,98,49,60,0,60,0,60,0,219,255,60,0,117,17,60,0,60,0,60,0,99,49,60,0,60,0,60,0,220,255,60,0,118,17,60,0,119,17,60,0,120,17,60,0,121,17,60,0,122,17,60,0,123,17,60,0,124,17,60,0,125,17,60,0,126,17,60,0,127,17,60,0,128,17,60,0,129,17,60,0,130,17,60,0,131,17,60,0,132,17,60,0,60,0,60,0,135,49,60,0,133,17,60,0,60,0,60,0,136,49,60,0,134,17,60,0,135,17,60,0,136,17,60,0,60,0,60,0,137,49,60,0,137,17,60,0,138,17,60,0,139,17,60,0,140,17,60,0,141,17,60,0,142,17,60,0,143,17,60,0,144,17,60,0,145,17,60,0,60,0,60,0,138,49,60,0,146,17,60,0,60,0,60,0,139,49,60,0,147,17,60,0,148,17,60,0,60,0,60,0,140,49,60,0,149,17,60,0,150,17,60,0,151,17,60,0,152,17,60,0,153,17,60,0,154,17,60,0,155,17,60,0,156,17,60,0,157,17,60,0,158,17,60,0,60,0,60,0,141,49,60,0,159,17,60,0,160,17,60,0,161,17,60,0,60,0,60,0,142,49,60,0,162,17,60,0,163,17,60,0,164,17,60,0,165,17,60,0,166,17,60,0,167,17,60,0,176,215,60,0,177,215,60,0,178,215,60,0,179,215,60,0,180,215,60,0,181,215,60,0,182,215,60,0,183,215,60,0,184,215,60,0,185,215,60,0,186,215,60,0,187,215,60,0,188,215,60,0,189,215,60,0,190,215,60,0,191,215,60,0,192,215,60,0,193,215,60,0,194,215,60,0,195,215,60,0,196,215,60,0,197,215,60,0,198,215,60,0,168,17,60,0,169,17,60,0,170,17,60,0,60,0,60,0,51,49,60,0,60,0,60,0,163,255,60,0,171,17,60,0,172,17,60,0,60,0,60,0,53,49,60,0,60,0,60,0,165,255,60,0,173,17,60,0,60,0,60,0,54,49,60,0,60,0,60,0,166,255,60,0,174,17,60,0,175,17,60,0,176,17,60,0,60,0,60,0,58,49,60,0,60,0,60,0,170,255,60,0,177,17,60,0,60,0,60,0,59,49,60,0,60,0,60,0,171,255,60,0,178,17,60,0,60,0,60,0,60,49,60,0,60,0,60,0,172,255,60,0,179,17,60,0,60,0,60,0,61,49,60,0,60,0,60,0,173,255,60,0,180,17,60,0,60,0,60,0,62,49,60,0,60,0,60,0,174,255,60,0,181,17,60,0,60,0,60,0,63,49,60,0,60,0,60,0,175,255,60,0,182,17,60,0,183,17,60,0,184,17,60,0,185,17,60,0,186,17,60,0,187,17,60,0,188,17,60,0,189,17,60,0,190,17,60,0,191,17,60,0,192,17,60,0,193,17,60,0,194,17,60,0,195,17,60,0,196,17,60,0,197,17,60,0,198,17,60,0,199,17,60,0,60,0,60,0,103,49,60,0,200,17,60,0,60,0,60,0,104,49,60,0,201,17,60,0,202,17,60,0,203,17,60,0,204,17,60,0,60,0,60,0,105,49,60,0,205,17,60,0,206,17,60,0,60,0,60,0,106,49,60,0,207,17,60,0,208,17,60,0,209,17,60,0,210,17,60,0,211,17,60,0,60,0,60,0,107,49,60,0,212,17,60,0,213,17,60,0,214,17,60,0,215,17,60,0,60,0,60,0,108,49,60,0,216,17,60,0,217,17,60,0,60,0,60,0,109,49,60,0,218,17,60,0,219,17,60,0,220,17,60,0,221,17,60,0,60,0,60,0,111,49,60,0,222,17,60,0,223,17,60,0,60,0,60,0,112,49,60,0,224,17,60,0,225,17,60,0,226,17,60,0,227,17,60,0,228,17,60,0,229,17,60,0,230,17,60,0,231,17,60,0,232,17,60,0,233,17,60,0,234,17,60,0,235,17,60,0,236,17,60,0,237,17,60,0,238,17,60,0,239,17,60,0,240,17,60,0,241,17,60,0,60,0,60,0,130,49,60,0,242,17,60,0,60,0,60,0,131,49,60,0,243,17,60,0,244,17,60,0,245,17,60,0,246,17,60,0,247,17,60,0,248,17,60,0,249,17,60,0,250,17,60,0,251,17,60,0,252,17,60,0,253,17,60,0,254,17,60,0,255,17,60,0,203,215,60,0,204,215,60,0,205,215,60,0,206,215,60,0,207,215,60,0,208,215,60,0,209,215,60,0,210,215,60,0,211,215,60,0,212,215,60,0,213,215,60,0,214,215,60,0,215,215,60,0,216,215,60,0,217,215,60,0,218,215,60,0,219,215,60,0,220,215,60,0,221,215,60,0,222,215,60,0,223,215,60,0,224,215,60,0,225,215,60,0,226,215,60,0,227,215,60,0,228,215,60,0,229,215,60,0,230,215,60,0,231,215,60,0,232,215,60,0,233,215,60,0,234,215,60,0,235,215,60,0,236,215,60,0,237,215,60,0,238,215,60,0,239,215,60,0,240,215,60,0,241,215,60,0,242,215,60,0,243,215,60,0,244,215,60,0,245,215,60,0,246,215,60,0,247,215,60,0,248,215,60,0,249,215,60,0,250,215,60,0,251,215,60,0,65,48,60,0,60,0,60,0,66,48,60,0,60,0,60,0,161,48,60,0,60,0,60,0,103,255,60,0,60,0,60,0,162,48,60,0,60,0,60,0,113,255,60,0,60,0,60,0,208,50,60,0,60,0,60,0,3,51,47,0,252,48,139,48,60,0,60,0,60,0,0,51,47,0,113,48,252,48,104,48,60,0,60,0,60,0,1,51,47,0,139,48,117,48,66,48,60,0,60,0,60,0,2,51,47,0,147,48,122,48,66,48,60,0,67,48,60,0,60,0,60,0,68,48,60,0,60,0,60,0,163,48,60,0,60,0,60,0,104,255,60,0,60,0,60,0,164,48,60,0,60,0,60,0,114,255,60,0,60,0,60,0,209,50,60,0,60,0,60,0,4,51,47,0,107,48,147,48,80,48,60,0,60,0,60,0,5,51,47,0,147,48,97,48,60,0,69,48,60,0,60,0,60,0,70,48,60,0,60,0,60,0,165,48,60,0,60,0,60,0,105,255,60,0,60,0,60,0,166,48,60,0,60,0,60,0,115,255,60,0,60,0,60,0,210,50,60,0,60,0,60,0,6,51,47,0,74,48,147,48,60,0,44,216,0,220,60,0,71,48,60,0,60,0,60,0,72,48,60,0,60,0,60,0,167,48,60,0,60,0,60,0,106,255,60,0,60,0,60,0,168,48,60,0,60,0,60,0,116,255,60,0,60,0,60,0,211,50,60,0,60,0,60,0,8,51,47,0,252,48,75,48,252,48,60,0,60,0,60,0,7,51,47,0,89,48,79,48,252,48,105,48,60,0,73,48,60,0,60,0,60,0,74,48,60,0,60,0,60,0,169,48,60,0,60,0,60,0,107,255,60,0,60,0,60,0,170,48,60,0,60,0,60,0,117,255,60,0,60,0,60,0,212,50,60,0,60,0,60,0,10,51,47,0,252,48,128,48,60,0,60,0,60,0,9,51,47,0,147,48,89,48,60,0,149,48,60,0,60,0,60,0,75,48,60,0,60,0,60,0,245,48,60,0,60,0,60,0,171,48,60,0,60,0,60,0,118,255,60,0,60,0,60,0,213,50,60,0,60,0,60,0,11,51,47,0,68,48,138,48,60,0,60,0,60,0,12,51,47,0,137,48,100,48,104,48,60,0,60,0,60,0,13,51,47,0,141,48,138,48,252,48,60,0,60,0,60,0,14,51,47,0,153,48,141,48,147,48,60,0,60,0,60,0,15,51,47,0,153,48,147,48,126,48,60,0,77,48,60,0,60,0,60,0,173,48,60,0,60,0,60,0,119,255,60,0,60,0,60,0,214,50,60,0,60,0,60,0,16,51,47,0,153,48,76,48,60,0,60,0,60,0,17,51,47,0,153,48,107,48,252,48,60,0,60,0,60,0,18,51,47,0,134,48,138,48,252,48,60,0,60,0,60,0,19,51,47,0,153,48,139,48,96,48,252,48,60,0,60,0,60,0,20,51,47,0,141,48,60,0,60,0,60,0,21,51,47,0,141,48,80,48,137,48,128,48,60,0,60,0,60,0,22,51,47,0,141,48,129,48,252,48,104,48,139,48,60,0,60,0,60,0,23,51,47,0,141,48,143,48,100,48,104,48,60,0,79,48,60,0,60,0,60,0,240,49,60,0,60,0,60,0,175,48,60,0,60,0,60,0,120,255,60,0,60,0,60,0,215,50,60,0,60,0,60,0,24,51,47,0,153,48,137,48,128,48,60,0,60,0,60,0,25,51,47,0,153,48,137,48,128,48,104,48,147,48,60,0,60,0,60,0,26,51,47,0,139,48,92,48,68,48,141,48,60,0,60,0,60,0,27,51,47,0,141,48,252,48,109,48,60,0,150,48,60,0,60,0,60,0,81,48,60,0,60,0,60,0,246,48,60,0,60,0,60,0,177,48,60,0,60,0,60,0,121,255,60,0,60,0,60,0,216,50,60,0,60,0,60,0,28,51,47,0,252,48,89,48,60,0,44,216,50,221,60,0,60,0,60,0,83,48,60,0,60,0,60,0,44,216,85,221,60,0,60,0,60,0,179,48,60,0,60,0,60,0,122,255,60,0,60,0,60,0,217,50,60,0,60,0,60,0,255,48,47,0,104,48,60,0,60,0,60,0,30,51,47,0,252,48,125,48,60,0,60,0,60,0,60,216,1,222,47,0,83,48,60,0,60,0,60,0,29,51,47,0,139,48,106,48,60,0,85,48,60,0,60,0,60,0,181,48,60,0,60,0,60,0,123,255,60,0,60,0,60,0,218,50,60,0,60,0,60,0,60,216,2,222,60,0,60,0,60,0,31,51,47,0,68,48,79,48,139,48,60,0,60,0,60,0,32,51,47,0,147,48,97,48,252,48,128,48,60,0,6,48,47,0,129,48,60,0,60,0,60,0,87,48,60,0,60,0,60,0,241,49,60,0,60,0,60,0,183,48,60,0,60,0,60,0,124,255,60,0,60,0,60,0,219,50,60,0,60,0,60,0,33,51,47,0,138,48,147,48,80,48,60,0,89,48,60,0,60,0,60,0,242,49,60,0,60,0,60,0,185,48,60,0,60,0,60,0,125,255,60,0,60,0,60,0,220,50,60,0,91,48,60,0,60,0,60,0,187,48,60,0,60,0,60,0,126,255,60,0,60,0,60,0,221,50,60,0,60,0,60,0,34,51,47,0,147,48,97,48,60,0,60,0,60,0,35,51,47,0,147,48,104,48,60,0,93,48,60,0,60,0,60,0,189,48,60,0,60,0,60,0,127,255,60,0,60,0,60,0,222,50,60,0,95,48,60,0,60,0,60,0,191,48,60,0,60,0,60,0,128,255,60,0,60,0,60,0,223,50,60,0,60,0,60,0,36,51,47,0,153,48,252,48,89,48,60,0,97,48,60,0,60,0,60,0,193,48,60,0,60,0,60,0,129,255,60,0,60,0,60,0,224,50,60,0,99,48,60,0,60,0,60,0,100,48,60,0,60,0,60,0,195,48,60,0,60,0,60,0,111,255,60,0,60,0,60,0,196,48,60,0,60,0,60,0,130,255,60,0,60,0,60,0,225,50,60,0,102,48,60,0,60,0,60,0,198,48,60,0,60,0,60,0,131,255,60,0,60,0,60,0,226,50,60,0,60,0,60,0,60,216,19,222,47,0,153,48,60,0,60,0,60,0,37,51,47,0,153,48,87,48,60,0,104,48,60,0,60,0,60,0,243,49,60,0,60,0,60,0,200,48,60,0,60,0,60,0,132,255,60,0,60,0,60,0,227,50,60,0,60,0,60,0,38,51,47,0,153,48,139,48,60,0,60,0,60,0,39,51,47,0,147,48,60,0,106,48,60,0,60,0,60,0,202,48,60,0,60,0,60,0,133,255,60,0,60,0,60,0,228,50,60,0,60,0,60,0,40,51,47,0,110,48,60,0,107,48,60,0,60,0,60,0,203,48,60,0,60,0,60,0,134,255,60,0,60,0,60,0,229,50,60,0,108,48,60,0,60,0,60,0,244,49,60,0,60,0,60,0,204,48,60,0,60,0,60,0,135,255,60,0,60,0,60,0,230,50,60,0,109,48,60,0,60,0,60,0,205,48,60,0,60,0,60,0,136,255,60,0,60,0,60,0,231,50,60,0,110,48,60,0,60,0,60,0,206,48,60,0,60,0,60,0,137,255,60,0,60,0,60,0,232,50,60,0,60,0,60,0,41,51,47,0,100,48,104,48,60,0,111,48,60,0,60,0,60,0,245,49,60,0,60,0,60,0,207,48,60,0,60,0,60,0,138,255,60,0,60,0,60,0,233,50,60,0,60,0,60,0,43,51,47,0,154,48,252,48,91,48,147,48,104,48,60,0,60,0,60,0,44,51,47,0,154,48,252,48,100,48,60,0,60,0,60,0,45,51,47,0,153,48,252,48,140,48,139,48,60,0,60,0,60,0,42,51,47,0,68,48,100,48,60,0,114,48,60,0,60,0,60,0,246,49,60,0,60,0,60,0,210,48,60,0,60,0,60,0,139,255,60,0,60,0,60,0,234,50,60,0,60,0,60,0,46,51,47,0,154,48,66,48,89,48,104,48,139,48,60,0,60,0,60,0,47,51,47,0,154,48,79,48,139,48,60,0,60,0,60,0,48,51,47,0,154,48,83,48,60,0,60,0,60,0,49,51,47,0,153,48,139,48,60,0,117,48,60,0,60,0,60,0,247,49,60,0,60,0,60,0,213,48,60,0,60,0,60,0,140,255,60,0,60,0,60,0,235,50,60,0,60,0,60,0,50,51,47,0,66,48,137,48,100,48,105,48,60,0,60,0,60,0,51,51,47,0,68,48,252,48,104,48,60,0,60,0,60,0,52,51,47,0,153,48,100,48,87,48,72,48,139,48,60,0,60,0,60,0,53,51,47,0,137,48,147,48,60,0,120,48,60,0,60,0,60,0,248,49,60,0,60,0,60,0,216,48,60,0,60,0,60,0,141,255,60,0,60,0,60,0,236,50,60,0,60,0,60,0,59,51,47,0,154,48,252,48,88,48,60,0,60,0,60,0,60,51,47,0,153,48,252,48,95,48,60,0,60,0,60,0,54,51,47,0,79,48,95,48,252,48,139,48,60,0,60,0,60,0,55,51,47,0,154,48,93,48,60,0,60,0,60,0,56,51,47,0,154,48,107,48,114,48,60,0,60,0,60,0,57,51,47,0,139,48,100,48,60,0,60,0,60,0,58,51,47,0,154,48,147,48,89,48,60,0,123,48,60,0,60,0,60,0,249,49,60,0,60,0,60,0,219,48,60,0,60,0,60,0,142,255,60,0,60,0,60,0,237,50,60,0,60,0,60,0,65,51,47,0,252,48,139,48,60,0,60,0,60,0,66,51,47,0,252,48,147,48,60,0,60,0,60,0,61,51,47,0,154,48,68,48,147,48,104,48,60,0,60,0,60,0,60,216,0,222,47,0,75,48,60,0,60,0,60,0,62,51,47,0,153,48,139,48,104,48,60,0,60,0,60,0,63,51,47,0,147,48,60,0,60,0,60,0,64,51,47,0,154,48,147,48,105,48,60,0,60,48,47,0,89,48,60,0,60,0,60,0,126,48,60,0,60,0,60,0,222,48,60,0,60,0,60,0,143,255,60,0,60,0,60,0,238,50,60,0,60,0,60,0,67,51,47,0,68,48,79,48,141,48,60,0,60,0,60,0,68,51,47,0,68,48,139,48,60,0,60,0,60,0,69,51,47,0,100,48,111,48,60,0,60,0,60,0,70,51,47,0,139,48,79,48,60,0,60,0,60,0,71,51,47,0,147,48,87,48,136,48,147,48,60,0,127,48,60,0,60,0,60,0,223,48,60,0,60,0,60,0,144,255,60,0,60,0,60,0,239,50,60,0,60,0,60,0,72,51,47,0,79,48,141,48,147,48,60,0,60,0,60,0,73,51,47,0,138,48,60,0,60,0,60,0,74,51,47,0,138,48,112,48,252,48,139,48,60,0,128,48,60,0,60,0,60,0,250,49,60,0,60,0,60,0,224,48,60,0,60,0,60,0,145,255,60,0,60,0,60,0,240,50,60,0,129,48,60,0,60,0,60,0,225,48,60,0,60,0,60,0,146,255,60,0,60,0,60,0,241,50,60,0,60,0,60,0,77,51,47,0,252,48,104,48,139,48,60,0,60,0,60,0,75,51,47,0,76,48,60,0,60,0,60,0,76,51,47,0,76,48,104,48,147,48,60,0,130,48,60,0,60,0,60,0,226,48,60,0,60,0,60,0,147,255,60,0,60,0,60,0,242,50,60,0,131,48,60,0,60,0,60,0,132,48,60,0,60,0,60,0,227,48,60,0,60,0,60,0,108,255,60,0,60,0,60,0,228,48,60,0,60,0,60,0,148,255,60,0,60,0,60,0,243,50,60,0,60,0,60,0,78,51,47,0,252,48,105,48,60,0,60,0,60,0,79,51,47,0,252,48,139,48,60,0,44,216,32,221,60,0,133,48,60,0,60,0,60,0,134,48,60,0,60,0,60,0,229,48,60,0,60,0,60,0,109,255,60,0,60,0,60,0,230,48,60,0,60,0,60,0,149,255,60,0,60,0,60,0,244,50,60,0,60,0,60,0,80,51,47,0,66,48,147,48,60,0,44,216,33,221,60,0,135,48,60,0,60,0,60,0,136,48,60,0,60,0,60,0,231,48,60,0,60,0,60,0,110,255,60,0,60,0,60,0,232,48,60,0,60,0,60,0,150,255,60,0,60,0,60,0,245,50,60,0,60,0,60,0,159,48,47,0,138,48,60,0,137,48,60,0,60,0,60,0,251,49,60,0,60,0,60,0,233,48,60,0,60,0,60,0,151,255,60,0,60,0,60,0,246,50,60,0,138,48,60,0,60,0,60,0,252,49,60,0,60,0,60,0,234,48,60,0,60,0,60,0,152,255,60,0,60,0,60,0,247,50,60,0,60,0,60,0,81,51,47,0,100,48,104,48,139,48,60,0,60,0,60,0,82,51,47,0,137,48,60,0,139,48,60,0,60,0,60,0,253,49,60,0,60,0,60,0,235,48,60,0,60,0,60,0,153,255,60,0,60,0,60,0,248,50,60,0,60,0,60,0,84,51,47,0,252,48,118,48,139,48,60,0,60,0,60,0,83,51,47,0,116,48,252,48,60,0,140,48,60,0,60,0,60,0,254,49,60,0,60,0,60,0,236,48,60,0,60,0,60,0,154,255,60,0,60,0,60,0,249,50,60,0,60,0,60,0,85,51,47,0,128,48,60,0,60,0,60,0,86,51,47,0,147,48,104,48,82,48,147,48,60,0,141,48,60,0,60,0,60,0,255,49,60,0,60,0,60,0,237,48,60,0,60,0,60,0,155,255,60,0,60,0,60,0,250,50,60,0,142,48,60,0,60,0,60,0,143,48,60,0,60,0,60,0,238,48,60,0,60,0,60,0,239,48,60,0,60,0,60,0,156,255,60,0,60,0,60,0,251,50,60,0,60,0,60,0,87,51,47,0,100,48,104,48,60,0,44,216,80,221,60,0,60,0,60,0,144,48,60,0,60,0,60,0,44,216,100,221,60,0,60,0,60,0,240,48,60,0,60,0,60,0,252,50,60,0,44,216,31,221,60,0,60,0,60,0,44,216,34,221,60,0,44,216,81,221,60,0,60,0,60,0,145,48,60,0,60,0,60,0,44,216,101,221,60,0,60,0,60,0,241,48,60,0,60,0,60,0,253,50,60,0,44,216,82,221,60,0,60,0,60,0,146,48,60,0,60,0,60,0,44,216,102,221,60,0,60,0,60,0,242,48,60,0,60,0,60,0,102,255,60,0,60,0,60,0,254,50,60,0,147,48,60,0,60,0,60,0,44,216,103,221,60,0,60,0,60,0,243,48,60,0,60,0,60,0,157,255,60,0,44,216,2,220,60,0,44,216,3,220,60,0,44,216,4,220,60,0,44,216,5,220,60,0,44,216,6,220,60,0,44,216,7,220,60,0,44,216,8,220,60,0,44,216,9,220,60,0,44,216,10,220,60,0,44,216,11,220,60,0,44,216,12,220,60,0,44,216,13,220,60,0,44,216,14,220,60,0,44,216,1,220,60,0,44,216,15,220,60,0,44,216,16,220,60,0,44,216,17,220,60,0,44,216,18,220,60,0,44,216,19,220,60,0,44,216,20,220,60,0,44,216,21,220,60,0,44,216,22,220,60,0,44,216,23,220,60,0,44,216,24,220,60,0,44,216,25,220,60,0,44,216,26,220,60,0,44,216,27,220,60,0,44,216,28,220,60,0,44,216,29,220,60,0,44,216,30,220,60,0,44,216,31,220,60,0,44,216,32,220,60,0,44,216,33,220,60,0,44,216,34,220,60,0,44,216,35,220,60,0,44,216,36,220,60,0,44,216,37,220,60,0,44,216,38,220,60,0,44,216,39,220,60,0,44,216,40,220,60,0,44,216,41,220,60,0,44,216,42,220,60,0,44,216,43,220,60,0,44,216,44,220,60,0,44,216,45,220,60,0,44,216,46,220,60,0,44,216,47,220,60,0,44,216,48,220,60,0,44,216,49,220,60,0,44,216,50,220,60,0,44,216,51,220,60,0,44,216,52,220,60,0,44,216,53,220,60,0,44,216,54,220,60,0,44,216,55,220,60,0,44,216,56,220,60,0,44,216,57,220,60,0,44,216,58,220,60,0,44,216,59,220,60,0,44,216,60,220,60,0,44,216,61,220,60,0,44,216,62,220,60,0,44,216,63,220,60,0,44,216,64,220,60,0,44,216,65,220,60,0,44,216,66,220,60,0,44,216,67,220,60,0,44,216,68,220,60,0,44,216,69,220,60,0,44,216,70,220,60,0,44,216,71,220,60,0,44,216,72,220,60,0,44,216,73,220,60,0,44,216,74,220,60,0,44,216,75,220,60,0,44,216,76,220,60,0,44,216,77,220,60,0,44,216,78,220,60,0,44,216,79,220,60,0,44,216,80,220,60,0,44,216,81,220,60,0,44,216,82,220,60,0,44,216,83,220,60,0,44,216,84,220,60,0,44,216,85,220,60,0,44,216,86,220,60,0,44,216,87,220,60,0,44,216,88,220,60,0,44,216,89,220,60,0,44,216,90,220,60,0,44,216,91,220,60,0,44,216,92,220,60,0,44,216,93,220,60,0,44,216,94,220,60,0,44,216,95,220,60,0,44,216,96,220,60,0,44,216,97,220,60,0,44,216,98,220,60,0,44,216,99,220,60,0,44,216,100,220,60,0,44,216,101,220,60,0,44,216,102,220,60,0,44,216,103,220,60,0,44,216,104,220,60,0,44,216,105,220,60,0,44,216,106,220,60,0,44,216,107,220,60,0,44,216,108,220,60,0,44,216,109,220,60,0,44,216,110,220,60,0,44,216,111,220,60,0,44,216,112,220,60,0,44,216,113,220,60,0,44,216,114,220,60,0,44,216,115,220,60,0,44,216,116,220,60,0,44,216,117,220,60,0,44,216,118,220,60,0,44,216,119,220,60,0,44,216,120,220,60,0,44,216,121,220,60,0,44,216,122,220,60,0,44,216,123,220,60,0,44,216,124,220,60,0,44,216,125,220,60,0,44,216,126,220,60,0,44,216,127,220,60,0,44,216,128,220,60,0,44,216,129,220,60,0,44,216,130,220,60,0,44,216,131,220,60,0,44,216,132,220,60,0,44,216,133,220,60,0,44,216,134,220,60,0,44,216,135,220,60,0,44,216,136,220,60,0,44,216,137,220,60,0,44,216,138,220,60,0,44,216,139,220,60,0,44,216,140,220,60,0,44,216,141,220,60,0,44,216,142,220,60,0,44,216,143,220,60,0,44,216,144,220,60,0,44,216,145,220,60,0,44,216,146,220,60,0,44,216,147,220,60,0,44,216,148,220,60,0,44,216,149,220,60,0,44,216,150,220,60,0,44,216,151,220,60,0,44,216,152,220,60,0,44,216,153,220,60,0,44,216,154,220,60,0,44,216,155,220,60,0,44,216,156,220,60,0,44,216,157,220,60,0,44,216,158,220,60,0,44,216,159,220,60,0,44,216,160,220,60,0,44,216,161,220,60,0,44,216,162,220,60,0,44,216,163,220,60,0,44,216,164,220,60,0,44,216,165,220,60,0,44,216,166,220,60,0,44,216,167,220,60,0,44,216,168,220,60,0,44,216,169,220,60,0,44,216,170,220,60,0,44,216,171,220,60,0,44,216,172,220,60,0,44,216,173,220,60,0,44,216,174,220,60,0,44,216,175,220,60,0,44,216,176,220,60,0,44,216,177,220,60,0,44,216,178,220,60,0,44,216,179,220,60,0,44,216,180,220,60,0,44,216,181,220,60,0,44,216,182,220,60,0,44,216,183,220,60,0,44,216,184,220,60,0,44,216,185,220,60,0,44,216,186,220,60,0,44,216,187,220,60,0,44,216,188,220,60,0,44,216,189,220,60,0,44,216,190,220,60,0,44,216,191,220,60,0,44,216,192,220,60,0,44,216,193,220,60,0,44,216,194,220,60,0,44,216,195,220,60,0,44,216,196,220,60,0,44,216,197,220,60,0,44,216,198,220,60,0,44,216,199,220,60,0,44,216,200,220,60,0,44,216,201,220,60,0,44,216,202,220,60,0,44,216,203,220,60,0,44,216,204,220,60,0,44,216,205,220,60,0,44,216,206,220,60,0,44,216,207,220,60,0,44,216,208,220,60,0,44,216,209,220,60,0,44,216,210,220,60,0,44,216,211,220,60,0,44,216,212,220,60,0,44,216,213,220,60,0,44,216,214,220,60,0,44,216,215,220,60,0,44,216,216,220,60,0,44,216,217,220,60,0,44,216,218,220,60,0,44,216,219,220,60,0,44,216,220,220,60,0,44,216,221,220,60,0,44,216,222,220,60,0,44,216,223,220,60,0,44,216,224,220,60,0,44,216,225,220,60,0,44,216,226,220,60,0,44,216,227,220,60,0,44,216,228,220,60,0,44,216,229,220,60,0,44,216,230,220,60,0,44,216,231,220,60,0,44,216,232,220,60,0,44,216,233,220,60,0,44,216,234,220,60,0,44,216,235,220,60,0,44,216,236,220,60,0,44,216,237,220,60,0,44,216,238,220,60,0,44,216,239,220,60,0,44,216,240,220,60,0,44,216,241,220,60,0,44,216,242,220,60,0,44,216,243,220,60,0,44,216,244,220,60,0,44,216,245,220,60,0,44,216,246,220,60,0,44,216,247,220,60,0,44,216,248,220,60,0,44,216,249,220,60,0,44,216,250,220,60,0,44,216,251,220,60,0,44,216,252,220,60,0,44,216,253,220,60,0,44,216,254,220,60,0,44,216,255,220,60,0,44,216,0,221,60,0,44,216,1,221,60,0,44,216,2,221,60,0,44,216,3,221,60,0,44,216,4,221,60,0,44,216,5,221,60,0,44,216,6,221,60,0,44,216,7,221,60,0,44,216,8,221,60,0,44,216,9,221,60,0,44,216,10,221,60,0,44,216,11,221,60,0,44,216,12,221,60,0,44,216,13,221,60,0,44,216,14,221,60,0,44,216,15,221,60,0,44,216,16,221,60,0,44,216,17,221,60,0,44,216,18,221,60,0,44,216,19,221,60,0,44,216,20,221,60,0,44,216,21,221,60,0,44,216,22,221,60,0,44,216,23,221,60,0,44,216,24,221,60,0,44,216,25,221,60,0,44,216,26,221,60,0,44,216,27,221,60,0,44,216,28,221,60,0,44,216,29,221,60,0,44,216,30,221,60,0,5,49,60,0,60,0,160,49,60,0,6,49,60,0,60,0,60,0,180,49,60,0,7,49,60,0,172,49,60,0,8,49,60,0,42,49,60,0,9,49,60,0,10,49,60,0,60,0,60,0,181,49,60,0,11,49,60,0,47,49,60,0,12,49,60,0,13,49,60,0,60,0,60,0,187,49,60,0,60,0,163,49,60,0,14,49,60,0,60,0,60,0,182,49,60,0,43,49,60,0,173,49,60,0,15,49,60,0,60,0,60,0,183,49,60,0,16,49,60,0,60,0,162,49,60,0,17,49,60,0,18,49,60,0,44,49,60,0,188,49,60,0,189,49,60,0,19,49,60,0,20,49,60,0,21,49,60,0,22,49,60,0,23,49,60,0,60,0,161,49,60,0,24,49,60,0,25,49,60,0,184,49,60,0,185,49,60,0,186,49,60,0,26,49,60,0,60,0,169,49,60,0,27,49,60,0,60,0,167,49,60,0,166,49,60,0,28,49,60,0,60,0,60,0,46,49,60,0,29,49,60,0,164,49,60,0,60,0,165,49,60,0,30,49,60,0,60,0,174,49,60,0,31,49,60,0,32,49,60,0,60,0,175,49,60,0,33,49,60,0,34,49,60,0,35,49,60,0,36,49,60,0,178,49,60,0,37,49,60,0,176,49,60,0,177,49,60,0,38,49,60,0,39,49,60,0,60,0,170,49,60,0,60,0,60,0,179,49,60,0,40,49,60,0,60,0,171,49,60,0,60,0,168,49,60,0,41,49,60,0,45,49,60,0,190,49,60,0,191,49,60,0,0,160,60,0,1,160,60,0,2,160,60,0,3,160,60,0,4,160,60,0,5,160,60,0,6,160,60,0,7,160,60,0,8,160,60,0,9,160,60,0,10,160,60,0,11,160,60,0,12,160,60,0,13,160,60,0,14,160,60,0,15,160,60,0,16,160,60,0,17,160,60,0,18,160,60,0,19,160,60,0,20,160,60,0,21,160,60,0,22,160,60,0,23,160,60,0,24,160,60,0,25,160,60,0,26,160,60,0,27,160,60,0,28,160,60,0,29,160,60,0,30,160,60,0,31,160,60,0,32,160,60,0,33,160,60,0,34,160,60,0,35,160,60,0,36,160,60,0,37,160,60,0,38,160,60,0,39,160,60,0,40,160,60,0,41,160,60,0,42,160,60,0,43,160,60,0,44,160,60,0,45,160,60,0,46,160,60,0,47,160,60,0,48,160,60,0,49,160,60,0,50,160,60,0,51,160,60,0,52,160,60,0,53,160,60,0,54,160,60,0,55,160,60,0,56,160,60,0,57,160,60,0,58,160,60,0,59,160,60,0,60,160,60,0,61,160,60,0,62,160,60,0,63,160,60,0,64,160,60,0,65,160,60,0,66,160,60,0,67,160,60,0,68,160,60,0,69,160,60,0,70,160,60,0,71,160,60,0,72,160,60,0,73,160,60,0,74,160,60,0,75,160,60,0,76,160,60,0,77,160,60,0,78,160,60,0,79,160,60,0,80,160,60,0,81,160,60,0,82,160,60,0,83,160,60,0,84,160,60,0,85,160,60,0,86,160,60,0,87,160,60,0,88,160,60,0,89,160,60,0,90,160,60,0,91,160,60,0,92,160,60,0,93,160,60,0,94,160,60,0,95,160,60,0,96,160,60,0,97,160,60,0,98,160,60,0,99,160,60,0,100,160,60,0,101,160,60,0,102,160,60,0,103,160,60,0,104,160,60,0,105,160,60,0,106,160,60,0,107,160,60,0,108,160,60,0,109,160,60,0,110,160,60,0,111,160,60,0,112,160,60,0,113,160,60,0,114,160,60,0,115,160,60,0,116,160,60,0,117,160,60,0,118,160,60,0,119,160,60,0,120,160,60,0,121,160,60,0,122,160,60,0,123,160,60,0,124,160,60,0,125,160,60,0,126,160,60,0,127,160,60,0,128,160,60,0,129,160,60,0,130,160,60,0,131,160,60,0,132,160,60,0,133,160,60,0,134,160,60,0,135,160,60,0,136,160,60,0,137,160,60,0,138,160,60,0,139,160,60,0,140,160,60,0,141,160,60,0,142,160,60,0,143,160,60,0,144,160,60,0,145,160,60,0,146,160,60,0,147,160,60,0,148,160,60,0,149,160,60,0,150,160,60,0,151,160,60,0,152,160,60,0,153,160,60,0,154,160,60,0,155,160,60,0,156,160,60,0,157,160,60,0,158,160,60,0,159,160,60,0,160,160,60,0,161,160,60,0,162,160,60,0,163,160,60,0,164,160,60,0,165,160,60,0,166,160,60,0,167,160,60,0,168,160,60,0,169,160,60,0,170,160,60,0,171,160,60,0,172,160,60,0,173,160,60,0,174,160,60,0,175,160,60,0,176,160,60,0,177,160,60,0,178,160,60,0,179,160,60,0,180,160,60,0,181,160,60,0,182,160,60,0,183,160,60,0,184,160,60,0,185,160,60,0,186,160,60,0,187,160,60,0,188,160,60,0,189,160,60,0,190,160,60,0,191,160,60,0,192,160,60,0,193,160,60,0,194,160,60,0,195,160,60,0,196,160,60,0,197,160,60,0,198,160,60,0,199,160,60,0,200,160,60,0,201,160,60,0,202,160,60,0,203,160,60,0,204,160,60,0,205,160,60,0,206,160,60,0,207,160,60,0,208,160,60,0,209,160,60,0,210,160,60,0,211,160,60,0,212,160,60,0,213,160,60,0,214,160,60,0,215,160,60,0,216,160,60,0,217,160,60,0,218,160,60,0,219,160,60,0,220,160,60,0,221,160,60,0,222,160,60,0,223,160,60,0,224,160,60,0,225,160,60,0,226,160,60,0,227,160,60,0,228,160,60,0,229,160,60,0,230,160,60,0,231,160,60,0,232,160,60,0,233,160,60,0,234,160,60,0,235,160,60,0,236,160,60,0,237,160,60,0,238,160,60,0,239,160,60,0,240,160,60,0,241,160,60,0,242,160,60,0,243,160,60,0,244,160,60,0,245,160,60,0,246,160,60,0,247,160,60,0,248,160,60,0,249,160,60,0,250,160,60,0,251,160,60,0,252,160,60,0,253,160,60,0,254,160,60,0,255,160,60,0,0,161,60,0,1,161,60,0,2,161,60,0,3,161,60,0,4,161,60,0,5,161,60,0,6,161,60,0,7,161,60,0,8,161,60,0,9,161,60,0,10,161,60,0,11,161,60,0,12,161,60,0,13,161,60,0,14,161,60,0,15,161,60,0,16,161,60,0,17,161,60,0,18,161,60,0,19,161,60,0,20,161,60,0,21,161,60,0,22,161,60,0,23,161,60,0,24,161,60,0,25,161,60,0,26,161,60,0,27,161,60,0,28,161,60,0,29,161,60,0,30,161,60,0,31,161,60,0,32,161,60,0,33,161,60,0,34,161,60,0,35,161,60,0,36,161,60,0,37,161,60,0,38,161,60,0,39,161,60,0,40,161,60,0,41,161,60,0,42,161,60,0,43,161,60,0,44,161,60,0,45,161,60,0,46,161,60,0,47,161,60,0,48,161,60,0,49,161,60,0,50,161,60,0,51,161,60,0,52,161,60,0,53,161,60,0,54,161,60,0,55,161,60,0,56,161,60,0,57,161,60,0,58,161,60,0,59,161,60,0,60,161,60,0,61,161,60,0,62,161,60,0,63,161,60,0,64,161,60,0,65,161,60,0,66,161,60,0,67,161,60,0,68,161,60,0,69,161,60,0,70,161,60,0,71,161,60,0,72,161,60,0,73,161,60,0,74,161,60,0,75,161,60,0,76,161,60,0,77,161,60,0,78,161,60,0,79,161,60,0,80,161,60,0,81,161,60,0,82,161,60,0,83,161,60,0,84,161,60,0,85,161,60,0,86,161,60,0,87,161,60,0,88,161,60,0,89,161,60,0,90,161,60,0,91,161,60,0,92,161,60,0,93,161,60,0,94,161,60,0,95,161,60,0,96,161,60,0,97,161,60,0,98,161,60,0,99,161,60,0,100,161,60,0,101,161,60,0,102,161,60,0,103,161,60,0,104,161,60,0,105,161,60,0,106,161,60,0,107,161,60,0,108,161,60,0,109,161,60,0,110,161,60,0,111,161,60,0,112,161,60,0,113,161,60,0,114,161,60,0,115,161,60,0,116,161,60,0,117,161,60,0,118,161,60,0,119,161,60,0,120,161,60,0,121,161,60,0,122,161,60,0,123,161,60,0,124,161,60,0,125,161,60,0,126,161,60,0,127,161,60,0,128,161,60,0,129,161,60,0,130,161,60,0,131,161,60,0,132,161,60,0,133,161,60,0,134,161,60,0,135,161,60,0,136,161,60,0,137,161,60,0,138,161,60,0,139,161,60,0,140,161,60,0,141,161,60,0,142,161,60,0,143,161,60,0,144,161,60,0,145,161,60,0,146,161,60,0,147,161,60,0,148,161,60,0,149,161,60,0,150,161,60,0,151,161,60,0,152,161,60,0,153,161,60,0,154,161,60,0,155,161,60,0,156,161,60,0,157,161,60,0,158,161,60,0,159,161,60,0,160,161,60,0,161,161,60,0,162,161,60,0,163,161,60,0,164,161,60,0,165,161,60,0,166,161,60,0,167,161,60,0,168,161,60,0,169,161,60,0,170,161,60,0,171,161,60,0,172,161,60,0,173,161,60,0,174,161,60,0,175,161,60,0,176,161,60,0,177,161,60,0,178,161,60,0,179,161,60,0,180,161,60,0,181,161,60,0,182,161,60,0,183,161,60,0,184,161,60,0,185,161,60,0,186,161,60,0,187,161,60,0,188,161,60,0,189,161,60,0,190,161,60,0,191,161,60,0,192,161,60,0,193,161,60,0,194,161,60,0,195,161,60,0,196,161,60,0,197,161,60,0,198,161,60,0,199,161,60,0,200,161,60,0,201,161,60,0,202,161,60,0,203,161,60,0,204,161,60,0,205,161,60,0,206,161,60,0,207,161,60,0,208,161,60,0,209,161,60,0,210,161,60,0,211,161,60,0,212,161,60,0,213,161,60,0,214,161,60,0,215,161,60,0,216,161,60,0,217,161,60,0,218,161,60,0,219,161,60,0,220,161,60,0,221,161,60,0,222,161,60,0,223,161,60,0,224,161,60,0,225,161,60,0,226,161,60,0,227,161,60,0,228,161,60,0,229,161,60,0,230,161,60,0,231,161,60,0,232,161,60,0,233,161,60,0,234,161,60,0,235,161,60,0,236,161,60,0,237,161,60,0,238,161,60,0,239,161,60,0,240,161,60,0,241,161,60,0,242,161,60,0,243,161,60,0,244,161,60,0,245,161,60,0,246,161,60,0,247,161,60,0,248,161,60,0,249,161,60,0,250,161,60,0,251,161,60,0,252,161,60,0,253,161,60,0,254,161,60,0,255,161,60,0,0,162,60,0,1,162,60,0,2,162,60,0,3,162,60,0,4,162,60,0,5,162,60,0,6,162,60,0,7,162,60,0,8,162,60,0,9,162,60,0,10,162,60,0,11,162,60,0,12,162,60,0,13,162,60,0,14,162,60,0,15,162,60,0,16,162,60,0,17,162,60,0,18,162,60,0,19,162,60,0,20,162,60,0,21,162,60,0,22,162,60,0,23,162,60,0,24,162,60,0,25,162,60,0,26,162,60,0,27,162,60,0,28,162,60,0,29,162,60,0,30,162,60,0,31,162,60,0,32,162,60,0,33,162,60,0,34,162,60,0,35,162,60,0,36,162,60,0,37,162,60,0,38,162,60,0,39,162,60,0,40,162,60,0,41,162,60,0,42,162,60,0,43,162,60,0,44,162,60,0,45,162,60,0,46,162,60,0,47,162,60,0,48,162,60,0,49,162,60,0,50,162,60,0,51,162,60,0,52,162,60,0,53,162,60,0,54,162,60,0,55,162,60,0,56,162,60,0,57,162,60,0,58,162,60,0,59,162,60,0,60,162,60,0,61,162,60,0,62,162,60,0,63,162,60,0,64,162,60,0,65,162,60,0,66,162,60,0,67,162,60,0,68,162,60,0,69,162,60,0,70,162,60,0,71,162,60,0,72,162,60,0,73,162,60,0,74,162,60,0,75,162,60,0,76,162,60,0,77,162,60,0,78,162,60,0,79,162,60,0,80,162,60,0,81,162,60,0,82,162,60,0,83,162,60,0,84,162,60,0,85,162,60,0,86,162,60,0,87,162,60,0,88,162,60,0,89,162,60,0,90,162,60,0,91,162,60,0,92,162,60,0,93,162,60,0,94,162,60,0,95,162,60,0,96,162,60,0,97,162,60,0,98,162,60,0,99,162,60,0,100,162,60,0,101,162,60,0,102,162,60,0,103,162,60,0,104,162,60,0,105,162,60,0,106,162,60,0,107,162,60,0,108,162,60,0,109,162,60,0,110,162,60,0,111,162,60,0,112,162,60,0,113,162,60,0,114,162,60,0,115,162,60,0,116,162,60,0,117,162,60,0,118,162,60,0,119,162,60,0,120,162,60,0,121,162,60,0,122,162,60,0,123,162,60,0,124,162,60,0,125,162,60,0,126,162,60,0,127,162,60,0,128,162,60,0,129,162,60,0,130,162,60,0,131,162,60,0,132,162,60,0,133,162,60,0,134,162,60,0,135,162,60,0,136,162,60,0,137,162,60,0,138,162,60,0,139,162,60,0,140,162,60,0,141,162,60,0,142,162,60,0,143,162,60,0,144,162,60,0,145,162,60,0,146,162,60,0,147,162,60,0,148,162,60,0,149,162,60,0,150,162,60,0,151,162,60,0,152,162,60,0,153,162,60,0,154,162,60,0,155,162,60,0,156,162,60,0,157,162,60,0,158,162,60,0,159,162,60,0,160,162,60,0,161,162,60,0,162,162,60,0,163,162,60,0,164,162,60,0,165,162,60,0,166,162,60,0,167,162,60,0,168,162,60,0,169,162,60,0,170,162,60,0,171,162,60,0,172,162,60,0,173,162,60,0,174,162,60,0,175,162,60,0,176,162,60,0,177,162,60,0,178,162,60,0,179,162,60,0,180,162,60,0,181,162,60,0,182,162,60,0,183,162,60,0,184,162,60,0,185,162,60,0,186,162,60,0,187,162,60,0,188,162,60,0,189,162,60,0,190,162,60,0,191,162,60,0,192,162,60,0,193,162,60,0,194,162,60,0,195,162,60,0,196,162,60,0,197,162,60,0,198,162,60,0,199,162,60,0,200,162,60,0,201,162,60,0,202,162,60,0,203,162,60,0,204,162,60,0,205,162,60,0,206,162,60,0,207,162,60,0,208,162,60,0,209,162,60,0,210,162,60,0,211,162,60,0,212,162,60,0,213,162,60,0,214,162,60,0,215,162,60,0,216,162,60,0,217,162,60,0,218,162,60,0,219,162,60,0,220,162,60,0,221,162,60,0,222,162,60,0,223,162,60,0,224,162,60,0,225,162,60,0,226,162,60,0,227,162,60,0,228,162,60,0,229,162,60,0,230,162,60,0,231,162,60,0,232,162,60,0,233,162,60,0,234,162,60,0,235,162,60,0,236,162,60,0,237,162,60,0,238,162,60,0,239,162,60,0,240,162,60,0,241,162,60,0,242,162,60,0,243,162,60,0,244,162,60,0,245,162,60,0,246,162,60,0,247,162,60,0,248,162,60,0,249,162,60,0,250,162,60,0,251,162,60,0,252,162,60,0,253,162,60,0,254,162,60,0,255,162,60,0,0,163,60,0,1,163,60,0,2,163,60,0,3,163,60,0,4,163,60,0,5,163,60,0,6,163,60,0,7,163,60,0,8,163,60,0,9,163,60,0,10,163,60,0,11,163,60,0,12,163,60,0,13,163,60,0,14,163,60,0,15,163,60,0,16,163,60,0,17,163,60,0,18,163,60,0,19,163,60,0,20,163,60,0,21,163,60,0,22,163,60,0,23,163,60,0,24,163,60,0,25,163,60,0,26,163,60,0,27,163,60,0,28,163,60,0,29,163,60,0,30,163,60,0,31,163,60,0,32,163,60,0,33,163,60,0,34,163,60,0,35,163,60,0,36,163,60,0,37,163,60,0,38,163,60,0,39,163,60,0,40,163,60,0,41,163,60,0,42,163,60,0,43,163,60,0,44,163,60,0,45,163,60,0,46,163,60,0,47,163,60,0,48,163,60,0,49,163,60,0,50,163,60,0,51,163,60,0,52,163,60,0,53,163,60,0,54,163,60,0,55,163,60,0,56,163,60,0,57,163,60,0,58,163,60,0,59,163,60,0,60,163,60,0,61,163,60,0,62,163,60,0,63,163,60,0,64,163,60,0,65,163,60,0,66,163,60,0,67,163,60,0,68,163,60,0,69,163,60,0,70,163,60,0,71,163,60,0,72,163,60,0,73,163,60,0,74,163,60,0,75,163,60,0,76,163,60,0,77,163,60,0,78,163,60,0,79,163,60,0,80,163,60,0,81,163,60,0,82,163,60,0,83,163,60,0,84,163,60,0,85,163,60,0,86,163,60,0,87,163,60,0,88,163,60,0,89,163,60,0,90,163,60,0,91,163,60,0,92,163,60,0,93,163,60,0,94,163,60,0,95,163,60,0,96,163,60,0,97,163,60,0,98,163,60,0,99,163,60,0,100,163,60,0,101,163,60,0,102,163,60,0,103,163,60,0,104,163,60,0,105,163,60,0,106,163,60,0,107,163,60,0,108,163,60,0,109,163,60,0,110,163,60,0,111,163,60,0,112,163,60,0,113,163,60,0,114,163,60,0,115,163,60,0,116,163,60,0,117,163,60,0,118,163,60,0,119,163,60,0,120,163,60,0,121,163,60,0,122,163,60,0,123,163,60,0,124,163,60,0,125,163,60,0,126,163,60,0,127,163,60,0,128,163,60,0,129,163,60,0,130,163,60,0,131,163,60,0,132,163,60,0,133,163,60,0,134,163,60,0,135,163,60,0,136,163,60,0,137,163,60,0,138,163,60,0,139,163,60,0,140,163,60,0,141,163,60,0,142,163,60,0,143,163,60,0,144,163,60,0,145,163,60,0,146,163,60,0,147,163,60,0,148,163,60,0,149,163,60,0,150,163,60,0,151,163,60,0,152,163,60,0,153,163,60,0,154,163,60,0,155,163,60,0,156,163,60,0,157,163,60,0,158,163,60,0,159,163,60,0,160,163,60,0,161,163,60,0,162,163,60,0,163,163,60,0,164,163,60,0,165,163,60,0,166,163,60,0,167,163,60,0,168,163,60,0,169,163,60,0,170,163,60,0,171,163,60,0,172,163,60,0,173,163,60,0,174,163,60,0,175,163,60,0,176,163,60,0,177,163,60,0,178,163,60,0,179,163,60,0,180,163,60,0,181,163,60,0,182,163,60,0,183,163,60,0,184,163,60,0,185,163,60,0,186,163,60,0,187,163,60,0,188,163,60,0,189,163,60,0,190,163,60,0,191,163,60,0,192,163,60,0,193,163,60,0,194,163,60,0,195,163,60,0,196,163,60,0,197,163,60,0,198,163,60,0,199,163,60,0,200,163,60,0,201,163,60,0,202,163,60,0,203,163,60,0,204,163,60,0,205,163,60,0,206,163,60,0,207,163,60,0,208,163,60,0,209,163,60,0,210,163,60,0,211,163,60,0,212,163,60,0,213,163,60,0,214,163,60,0,215,163,60,0,216,163,60,0,217,163,60,0,218,163,60,0,219,163,60,0,220,163,60,0,221,163,60,0,222,163,60,0,223,163,60,0,224,163,60,0,225,163,60,0,226,163,60,0,227,163,60,0,228,163,60,0,229,163,60,0,230,163,60,0,231,163,60,0,232,163,60,0,233,163,60,0,234,163,60,0,235,163,60,0,236,163,60,0,237,163,60,0,238,163,60,0,239,163,60,0,240,163,60,0,241,163,60,0,242,163,60,0,243,163,60,0,244,163,60,0,245,163,60,0,246,163,60,0,247,163,60,0,248,163,60,0,249,163,60,0,250,163,60,0,251,163,60,0,252,163,60,0,253,163,60,0,254,163,60,0,255,163,60,0,0,164,60,0,1,164,60,0,2,164,60,0,3,164,60,0,4,164,60,0,5,164,60,0,6,164,60,0,7,164,60,0,8,164,60,0,9,164,60,0,10,164,60,0,11,164,60,0,12,164,60,0,13,164,60,0,14,164,60,0,15,164,60,0,16,164,60,0,17,164,60,0,18,164,60,0,19,164,60,0,20,164,60,0,21,164,60,0,22,164,60,0,23,164,60,0,24,164,60,0,25,164,60,0,26,164,60,0,27,164,60,0,28,164,60,0,29,164,60,0,30,164,60,0,31,164,60,0,32,164,60,0,33,164,60,0,34,164,60,0,35,164,60,0,36,164,60,0,37,164,60,0,38,164,60,0,39,164,60,0,40,164,60,0,41,164,60,0,42,164,60,0,43,164,60,0,44,164,60,0,45,164,60,0,46,164,60,0,47,164,60,0,48,164,60,0,49,164,60,0,50,164,60,0,51,164,60,0,52,164,60,0,53,164,60,0,54,164,60,0,55,164,60,0,56,164,60,0,57,164,60,0,58,164,60,0,59,164,60,0,60,164,60,0,61,164,60,0,62,164,60,0,63,164,60,0,64,164,60,0,65,164,60,0,66,164,60,0,67,164,60,0,68,164,60,0,69,164,60,0,70,164,60,0,71,164,60,0,72,164,60,0,73,164,60,0,74,164,60,0,75,164,60,0,76,164,60,0,77,164,60,0,78,164,60,0,79,164,60,0,80,164,60,0,81,164,60,0,82,164,60,0,83,164,60,0,84,164,60,0,85,164,60,0,86,164,60,0,87,164,60,0,88,164,60,0,89,164,60,0,90,164,60,0,91,164,60,0,92,164,60,0,93,164,60,0,94,164,60,0,95,164,60,0,96,164,60,0,97,164,60,0,98,164,60,0,99,164,60,0,100,164,60,0,101,164,60,0,102,164,60,0,103,164,60,0,104,164,60,0,105,164,60,0,106,164,60,0,107,164,60,0,108,164,60,0,109,164,60,0,110,164,60,0,111,164,60,0,112,164,60,0,113,164,60,0,114,164,60,0,115,164,60,0,116,164,60,0,117,164,60,0,118,164,60,0,119,164,60,0,120,164,60,0,121,164,60,0,122,164,60,0,123,164,60,0,124,164,60,0,125,164,60,0,126,164,60,0,127,164,60,0,128,164,60,0,129,164,60,0,130,164,60,0,131,164,60,0,132,164,60,0,133,164,60,0,134,164,60,0,135,164,60,0,136,164,60,0,137,164,60,0,138,164,60,0,139,164,60,0,140,164,60,0,248,164,60,0,249,164,60,0,250,164,60,0,251,164,60,0,253,164,60,0,252,164,60,0,208,164,60,0,209,164,60,0,210,164,60,0,211,164,60,0,212,164,60,0,213,164,60,0,214,164,60,0,215,164,60,0,216,164,60,0,217,164,60,0,218,164,60,0,219,164,60,0,220,164,60,0,221,164,60,0,222,164,60,0,223,164,60,0,224,164,60,0,225,164,60,0,226,164,60,0,227,164,60,0,228,164,60,0,229,164,60,0,230,164,60,0,231,164,60,0,232,164,60,0,233,164,60,0,235,164,60,0,237,164,60,0,234,164,60,0,236,164,60,0,7,216,176,223,60,0,238,164,60,0,239,164,60,0,240,164,60,0,241,164,60,0,242,164,60,0,243,164,60,0,244,164,60,0,245,164,60,0,246,164,60,0,247,164,60,0,27,216,0,223,60,0,27,216,1,223,60,0,27,216,2,223,60,0,27,216,3,223,60,0,27,216,69,223,60,0,27,216,4,223,60,0,60,0,60,0,27,216,6,223,60,0,27,216,5,223,60,0,27,216,7,223,60,0,27,216,8,223,60,0,27,216,9,223,60,0,27,216,10,223,60,0,27,216,11,223,60,0,27,216,12,223,60,0,27,216,13,223,60,0,27,216,72,223,60,0,27,216,14,223,60,0,27,216,15,223,60,0,27,216,74,223,60,0,27,216,16,223,60,0,60,0,60,0,27,216,19,223,60,0,27,216,17,223,60,0,27,216,18,223,60,0,27,216,20,223,60,0,27,216,21,223,60,0,27,216,22,223,60,0,27,216,23,223,60,0,27,216,24,223,60,0,27,216,25,223,60,0,27,216,26,223,60,0,27,216,27,223,60,0,27,216,28,223,60,0,27,216,29,223,60,0,27,216,30,223,60,0,27,216,31,223,60,0,27,216,32,223,60,0,27,216,33,223,60,0,27,216,34,223,60,0,27,216,35,223,60,0,60,0,60,0,27,216,37,223,60,0,27,216,36,223,60,0,27,216,38,223,60,0,27,216,39,223,60,0,27,216,40,223,60,0,27,216,41,223,60,0,27,216,42,223,60,0,27,216,43,223,60,0,27,216,44,223,60,0,27,216,45,223,60,0,27,216,46,223,60,0,27,216,47,223,60,0,27,216,48,223,60,0,27,216,49,223,60,0,27,216,50,223,60,0,27,216,71,223,60,0,27,216,51,223,60,0,27,216,70,223,60,0,27,216,52,223,60,0,27,216,53,223,60,0,27,216,54,223,60,0,27,216,55,223,60,0,27,216,56,223,60,0,27,216,57,223,60,0,27,216,73,223,60,0,27,216,58,223,60,0,27,216,59,223,60,0,27,216,60,223,60,0,27,216,61,223,60,0,60,0,60,0,27,216,63,223,60,0,27,216,62,223,60,0,27,216,64,223,60,0,27,216,65,223,60,0,27,216,66,223,60,0,27,216,67,223,60,0,27,216,68,223,60,0,27,216,80,223,60,0,27,216,81,223,60,0,27,216,82,223,60,0,27,216,83,223,60,0,27,216,79,223,60,0,27,216,84,223,60,0,27,216,85,223,60,0,27,216,86,223,60,0,27,216,87,223,60,0,27,216,88,223,60,0,27,216,129,223,60,0,27,216,89,223,60,0,27,216,90,223,60,0,27,216,91,223,60,0,27,216,92,223,60,0,27,216,131,223,60,0,27,216,93,223,60,0,27,216,94,223,60,0,27,216,95,223,60,0,27,216,96,223,60,0,27,216,132,223,60,0,27,216,97,223,60,0,27,216,98,223,60,0,27,216,99,223,60,0,27,216,100,223,60,0,27,216,101,223,60,0,27,216,134,223,60,0,27,216,102,223,60,0,27,216,103,223,60,0,27,216,104,223,60,0,27,216,105,223,60,0,27,216,106,223,60,0,27,216,107,223,60,0,27,216,108,223,60,0,27,216,109,223,60,0,27,216,127,223,60,0,27,216,135,223,60,0,27,216,110,223,60,0,27,216,111,223,60,0,27,216,112,223,60,0,27,216,113,223,60,0,27,216,114,223,60,0,27,216,128,223,60,0,27,216,115,223,60,0,27,216,116,223,60,0,27,216,133,223,60,0,27,216,130,223,60,0,27,216,117,223,60,0,27,216,118,223,60,0,27,216,119,223,60,0,27,216,120,223,60,0,27,216,121,223,60,0,27,216,122,223,60,0,27,216,123,223,60,0,27,216,124,223,60,0,27,216,125,223,60,0,27,216,126,223,60,0,27,216,143,223,60,0,27,216,144,223,60,0,27,216,145,223,60,0,27,216,146,223,60,0,27,216,147,223,60,0,27,216,148,223,60,0,27,216,149,223,60,0,27,216,150,223,60,0,27,216,151,223,60,0,27,216,152,223,60,0,27,216,153,223,60,0,27,216,154,223,60,0,27,216,155,223,60,0,27,216,156,223,60,0,27,216,157,223,60,0,27,216,158,223,60,0,27,216,159,223,60,0,6,216,255,220,60,0,6,216,192,220,60,0,60,0,60,0,6,216,160,220,60,0,6,216,193,220,60,0,60,0,60,0,6,216,161,220,60,0,6,216,194,220,60,0,60,0,60,0,6,216,162,220,60,0,6,216,195,220,60,0,60,0,60,0,6,216,163,220,60,0,6,216,196,220,60,0,60,0,60,0,6,216,164,220,60,0,6,216,197,220,60,0,60,0,60,0,6,216,165,220,60,0,6,216,198,220,60,0,60,0,60,0,6,216,166,220,60,0,6,216,199,220,60,0,60,0,60,0,6,216,167,220,60,0,6,216,200,220,60,0,60,0,60,0,6,216,168,220,60,0,6,216,201,220,60,0,60,0,60,0,6,216,169,220,60,0,6,216,202,220,60,0,60,0,60,0,6,216,170,220,60,0,6,216,203,220,60,0,60,0,60,0,6,216,171,220,60,0,6,216,204,220,60,0,60,0,60,0,6,216,172,220,60,0,6,216,205,220,60,0,60,0,60,0,6,216,173,220,60,0,6,216,206,220,60,0,60,0,60,0,6,216,174,220,60,0,6,216,207,220,60,0,60,0,60,0,6,216,175,220,60,0,6,216,208,220,60,0,60,0,60,0,6,216,176,220,60,0,6,216,209,220,60,0,60,0,60,0,6,216,177,220,60,0,6,216,210,220,60,0,60,0,60,0,6,216,178,220,60,0,6,216,211,220,60,0,60,0,60,0,6,216,179,220,60,0,6,216,212,220,60,0,60,0,60,0,6,216,180,220,60,0,6,216,213,220,60,0,60,0,60,0,6,216,181,220,60,0,6,216,214,220,60,0,60,0,60,0,6,216,182,220,60,0,6,216,215,220,60,0,60,0,60,0,6,216,183,220,60,0,6,216,216,220,60,0,60,0,60,0,6,216,184,220,60,0,6,216,217,220,60,0,60,0,60,0,6,216,185,220,60,0,6,216,218,220,60,0,60,0,60,0,6,216,186,220,60,0,6,216,219,220,60,0,60,0,60,0,6,216,187,220,60,0,6,216,220,220,60,0,60,0,60,0,6,216,188,220,60,0,6,216,221,220,60,0,60,0,60,0,6,216,189,220,60,0,6,216,222,220,60,0,60,0,60,0,6,216,190,220,60,0,6,216,223,220,60,0,60,0,60,0,6,216,191,220,60,0,6,216,213,222,60,0,6,216,214,222,60,0,6,216,215,222,60,0,6,216,216,222,60,0,6,216,217,222,60,0,6,216,218,222,60,0,6,216,219,222,60,0,6,216,192,222,60,0,6,216,193,222,60,0,6,216,194,222,60,0,6,216,195,222,60,0,6,216,196,222,60,0,6,216,197,222,60,0,6,216,198,222,60,0,6,216,199,222,60,0,6,216,200,222,60,0,6,216,201,222,60,0,6,216,202,222,60,0,6,216,203,222,60,0,6,216,204,222,60,0,6,216,205,222,60,0,6,216,206,222,60,0,6,216,207,222,60,0,6,216,208,222,60,0,6,216,209,222,60,0,6,216,210,222,60,0,6,216,211,222,60,0,6,216,212,222,60,0,6,216,220,222,60,0,6,216,221,222,60,0,6,216,223,222,60,0,6,216,224,222,60,0,6,216,225,222,60,0,6,216,226,222,60,0,6,216,227,222,60,0,6,216,222,222,60,0,6,216,228,222,60,0,6,216,239,222,60,0,6,216,242,222,60,0,6,216,241,222,60,0,6,216,230,222,60,0,6,216,233,222,60,0,6,216,229,222,60,0,6,216,232,222,60,0,6,216,244,222,60,0,6,216,247,222,60,0,6,216,243,222,60,0,6,216,246,222,60,0,6,216,236,222,60,0,6,216,238,222,60,0,6,216,235,222,60,0,6,216,237,222,60,0,6,216,245,222,60,0,6,216,248,222,60,0,6,216,231,222,60,0,6,216,234,222,60,0,6,216,240,222,60,0,26,216,0,223,60,0,26,216,1,223,60,0,26,216,2,223,60,0,26,216,3,223,60,0,26,216,4,223,60,0,26,216,5,223,60,0,26,216,6,223,60,0,26,216,7,223,60,0,26,216,8,223,60,0,26,216,9,223,60,0,26,216,10,223,60,0,26,216,11,223,60,0,26,216,12,223,60,0,26,216,13,223,60,0,26,216,14,223,60,0,26,216,15,223,60,0,26,216,16,223,60,0,26,216,17,223,60,0,26,216,18,223,60,0,26,216,19,223,60,0,26,216,20,223,60,0,26,216,21,223,60,0,26,216,22,223,60,0,26,216,23,223,60,0,26,216,24,223,60,0,26,216,25,223,60,0,26,216,26,223,60,0,26,216,27,223,60,0,26,216,28,223,60,0,26,216,29,223,60,0,26,216,30,223,60,0,26,216,31,223,60,0,26,216,32,223,60,0,26,216,33,223,60,0,26,216,34,223,60,0,26,216,35,223,60,0,26,216,36,223,60,0,26,216,37,223,60,0,26,216,38,223,60,0,26,216,39,223,60,0,26,216,40,223,60,0,26,216,41,223,60,0,26,216,42,223,60,0,26,216,43,223,60,0,26,216,44,223,60,0,26,216,45,223,60,0,26,216,46,223,60,0,26,216,47,223,60,0,26,216,64,223,60,0,26,216,65,223,60,0,26,216,99,223,60,0,26,216,100,223,60,0,26,216,101,223,60,0,26,216,102,223,60,0,26,216,103,223,60,0,26,216,104,223,60,0,26,216,105,223,60,0,26,216,106,223,60,0,26,216,107,223,60,0,26,216,108,223,60,0,26,216,109,223,60,0,26,216,110,223,60,0,26,216,111,223,60,0,26,216,112,223,60,0,26,216,113,223,60,0,26,216,114,223,60,0,26,216,115,223,60,0,26,216,116,223,60,0,26,216,117,223,60,0,26,216,118,223,60,0,26,216,119,223,60,0,26,216,125,223,60,0,26,216,126,223,60,0,26,216,127,223,60,0,26,216,128,223,60,0,26,216,129,223,60,0,26,216,130,223,60,0,26,216,131,223,60,0,26,216,132,223,60,0,26,216,133,223,60,0,26,216,134,223,60,0,26,216,135,223,60,0,26,216,136,223,60,0,26,216,137,223,60,0,26,216,138,223,60,0,26,216,139,223,60,0,26,216,140,223,60,0,26,216,141,223,60,0,26,216,142,223,60,0,26,216,143,223,60,0,56,216,0,221,60,0,56,216,1,221,60,0,56,216,2,221,60,0,56,216,3,221,60,0,56,216,4,221,60,0,56,216,5,221,60,0,56,216,6,221,60,0,56,216,7,221,60,0,56,216,8,221,60,0,56,216,9,221,60,0,56,216,10,221,60,0,56,216,11,221,60,0,56,216,12,221,60,0,56,216,13,221,60,0,56,216,14,221,60,0,56,216,15,221,60,0,56,216,16,221,60,0,56,216,17,221,60,0,56,216,18,221,60,0,56,216,19,221,60,0,56,216,20,221,60,0,56,216,21,221,60,0,56,216,22,221,60,0,56,216,23,221,60,0,56,216,24,221,60,0,56,216,25,221,60,0,56,216,26,221,60,0,56,216,27,221,60,0,56,216,28,221,60,0,56,216,29,221,60,0,56,216,30,221,60,0,56,216,31,221,60,0,56,216,32,221,60,0,56,216,33,221,60,0,56,216,34,221,60,0,56,216,35,221,60,0,56,216,36,221,60,0,56,216,37,221,60,0,56,216,38,221,60,0,56,216,39,221,60,0,56,216,40,221,60,0,56,216,41,221,60,0,56,216,42,221,60,0,56,216,43,221,60,0,56,216,44,221,60,0,56,216,55,221,60,0,56,216,56,221,60,0,56,216,57,221,60,0,56,216,58,221,60,0,56,216,59,221,60,0,56,216,78,221,60,0,56,216,144,222,60,0,56,216,145,222,60,0,56,216,146,222,60,0,56,216,147,222,60,0,56,216,148,222,60,0,56,216,149,222,60,0,56,216,150,222,60,0,56,216,151,222,60,0,56,216,152,222,60,0,56,216,153,222,60,0,56,216,154,222,60,0,56,216,155,222,60,0,56,216,156,222,60,0,56,216,157,222,60,0,56,216,158,222,60,0,56,216,159,222,60,0,56,216,160,222,60,0,56,216,161,222,60,0,56,216,162,222,60,0,56,216,163,222,60,0,56,216,164,222,60,0,56,216,165,222,60,0,56,216,166,222,60,0,56,216,167,222,60,0,56,216,168,222,60,0,56,216,169,222,60,0,56,216,170,222,60,0,56,216,171,222,60,0,56,216,172,222,60,0,56,216,173,222,60,0,56,216,192,222,60,0,56,216,193,222,60,0,56,216,194,222,60,0,56,216,195,222,60,0,56,216,196,222,60,0,56,216,197,222,60,0,56,216,198,222,60,0,56,216,199,222,60,0,56,216,200,222,60,0,56,216,201,222,60,0,56,216,202,222,60,0,56,216,203,222,60,0,56,216,204,222,60,0,56,216,205,222,60,0,56,216,206,222,60,0,56,216,207,222,60,0,56,216,208,222,60,0,56,216,209,222,60,0,56,216,210,222,60,0,56,216,211,222,60,0,56,216,212,222,60,0,56,216,213,222,60,0,56,216,214,222,60,0,56,216,215,222,60,0,56,216,216,222,60,0,56,216,217,222,60,0,56,216,218,222,60,0,56,216,219,222,60,0,56,216,220,222,60,0,56,216,221,222,60,0,56,216,222,222,60,0,56,216,223,222,60,0,56,216,224,222,60,0,56,216,225,222,60,0,56,216,226,222,60,0,56,216,227,222,60,0,56,216,228,222,60,0,56,216,229,222,60,0,56,216,230,222,60,0,56,216,231,222,60,0,56,216,232,222,60,0,56,216,233,222,60,0,56,216,234,222,60,0,56,216,235,222,60,0,57,216,208,220,60,0,57,216,209,220,60,0,57,216,210,220,60,0,57,216,211,220,60,0,57,216,212,220,60,0,57,216,213,220,60,0,57,216,214,220,60,0,57,216,215,220,60,0,57,216,216,220,60,0,57,216,217,220,60,0,57,216,218,220,60,0,57,216,219,220,60,0,57,216,220,220,60,0,57,216,221,220,60,0,57,216,222,220,60,0,57,216,223,220,60,0,57,216,224,220,60,0,57,216,225,220,60,0,57,216,226,220,60,0,57,216,227,220,60,0,57,216,228,220,60,0,57,216,229,220,60,0,57,216,230,220,60,0,57,216,231,220,60,0,57,216,232,220,60,0,57,216,233,220,60,0,57,216,234,220,60,0,57,216,235,220,60,0,0,216,128,222,60,0,0,216,129,222,60,0,0,216,130,222,60,0,0,216,131,222,60,0,0,216,132,222,60,0,0,216,133,222,60,0,0,216,134,222,60,0,0,216,135,222,60,0,0,216,136,222,60,0,0,216,137,222,60,0,0,216,138,222,60,0,0,216,139,222,60,0,0,216,140,222,60,0,0,216,141,222,60,0,0,216,142,222,60,0,0,216,143,222,60,0,0,216,144,222,60,0,0,216,145,222,60,0,0,216,146,222,60,0,0,216,147,222,60,0,0,216,148,222,60,0,0,216,149,222,60,0,0,216,150,222,60,0,0,216,151,222,60,0,0,216,152,222,60,0,0,216,153,222,60,0,0,216,154,222,60,0,0,216,155,222,60,0,0,216,156,222,60,0,0,216,160,222,60,0,0,216,161,222,60,0,0,216,162,222,60,0,0,216,163,222,60,0,0,216,164,222,60,0,0,216,165,222,60,0,0,216,166,222,60,0,0,216,167,222,60,0,0,216,168,222,60,0,0,216,169,222,60,0,0,216,170,222,60,0,0,216,171,222,60,0,0,216,172,222,60,0,0,216,173,222,60,0,0,216,174,222,60,0,0,216,175,222,60,0,0,216,176,222,60,0,0,216,177,222,60,0,0,216,178,222,60,0,0,216,179,222,60,0,0,216,180,222,60,0,0,216,181,222,60,0,0,216,182,222,60,0,0,216,183,222,60,0,0,216,184,222,60,0,0,216,185,222,60,0,0,216,186,222,60,0,0,216,187,222,60,0,0,216,188,222,60,0,0,216,189,222,60,0,0,216,190,222,60,0,0,216,191,222,60,0,0,216,192,222,60,0,0,216,193,222,60,0,0,216,194,222,60,0,0,216,195,222,60,0,0,216,196,222,60,0,0,216,197,222,60,0,0,216,198,222,60,0,0,216,199,222,60,0,0,216,200,222,60,0,0,216,201,222,60,0,0,216,202,222,60,0,0,216,203,222,60,0,0,216,204,222,60,0,0,216,205,222,60,0,0,216,206,222,60,0,0,216,207,222,60,0,0,216,208,222,60,0,14,32,2,216,32,221,14,32,60,0,14,32,2,216,33,221,14,32,60,0,14,32,2,216,34,221,14,32,60,0,14,32,2,216,35,221,14,32,60,0,14,32,2,216,36,221,14,32,60,0,14,32,2,216,37,221,14,32,60,0,14,32,2,216,38,221,14,32,60,0,14,32,2,216,39,221,14,32,60,0,14,32,2,216,40,221,14,32,60,0,14,32,2,216,41,221,14,32,60,0,14,32,2,216,42,221,14,32,60,0,14,32,2,216,43,221,14,32,60,0,14,32,2,216,44,221,14,32,60,0,14,32,2,216,45,221,14,32,60,0,14,32,2,216,46,221,14,32,60,0,14,32,2,216,47,221,14,32,60,0,14,32,2,216,48,221,14,32,60,0,14,32,2,216,49,221,14,32,60,0,14,32,2,216,50,221,14,32,60,0,14,32,2,216,51,221,14,32,60,0,14,32,2,216,52,221,14,32,60,0,14,32,2,216,53,221,14,32,60,0,14,32,2,216,54,221,14,32,60,0,14,32,2,216,55,221,14,32,60,0,14,32,2,216,56,221,14,32,60,0,14,32,2,216,57,221,14,32,60,0,0,216,0,223,60,0,0,216,1,223,60,0,0,216,2,223,60,0,0,216,3,223,60,0,0,216,4,223,60,0,0,216,5,223,60,0,0,216,6,223,60,0,0,216,7,223,60,0,0,216,8,223,60,0,0,216,9,223,60,0,0,216,10,223,60,0,0,216,11,223,60,0,0,216,12,223,60,0,0,216,13,223,60,0,0,216,14,223,60,0,0,216,31,223,60,0,0,216,15,223,60,0,0,216,16,223,60,0,0,216,17,223,60,0,0,216,18,223,60,0,0,216,19,223,60,0,0,216,20,223,60,0,0,216,21,223,60,0,0,216,22,223,60,0,0,216,23,223,60,0,0,216,24,223,60,0,0,216,25,223,60,0,0,216,26,223,60,0,0,216,27,223,60,0,0,216,28,223,60,0,0,216,29,223,60,0,0,216,30,223,60,0,0,216,45,223,60,0,0,216,46,223,60,0,0,216,47,223,60,0,0,216,48,223,60,0,0,216,49,223,60,0,0,216,50,223,60,0,0,216,51,223,60,0,0,216,52,223,60,0,0,216,53,223,60,0,0,216,54,223,60,0,0,216,55,223,60,0,0,216,56,223,60,0,0,216,57,223,60,0,0,216,58,223,60,0,0,216,59,223,60,0,0,216,60,223,60,0,0,216,61,223,60,0,0,216,62,223,60,0,0,216,63,223,60,0,0,216,64,223,60,0,0,216,65,223,60,0,0,216,66,223,60,0,0,216,67,223,60,0,0,216,68,223,60,0,0,216,69,223,60,0,0,216,70,223,60,0,0,216,71,223,60,0,0,216,72,223,60,0,0,216,73,223,60,0,0,216,74,223,60,0,1,216,40,220,60,0,60,0,60,0,1,216,0,220,60,0,1,216,41,220,60,0,60,0,60,0,1,216,1,220,60,0,1,216,42,220,60,0,60,0,60,0,1,216,2,220,60,0,1,216,43,220,60,0,60,0,60,0,1,216,3,220,60,0,1,216,44,220,60,0,60,0,60,0,1,216,4,220,60,0,1,216,45,220,60,0,60,0,60,0,1,216,5,220,60,0,1,216,46,220,60,0,60,0,60,0,1,216,6,220,60,0,1,216,47,220,60,0,60,0,60,0,1,216,7,220,60,0,1,216,48,220,60,0,60,0,60,0,1,216,8,220,60,0,1,216,49,220,60,0,60,0,60,0,1,216,9,220,60,0,1,216,50,220,60,0,60,0,60,0,1,216,10,220,60,0,1,216,51,220,60,0,60,0,60,0,1,216,11,220,60,0,1,216,52,220,60,0,60,0,60,0,1,216,12,220,60,0,1,216,53,220,60,0,60,0,60,0,1,216,13,220,60,0,1,216,54,220,60,0,60,0,60,0,1,216,14,220,60,0,1,216,55,220,60,0,60,0,60,0,1,216,15,220,60,0,1,216,56,220,60,0,60,0,60,0,1,216,16,220,60,0,1,216,57,220,60,0,60,0,60,0,1,216,17,220,60,0,1,216,58,220,60,0,60,0,60,0,1,216,18,220,60,0,1,216,59,220,60,0,60,0,60,0,1,216,19,220,60,0,1,216,60,220,60,0,60,0,60,0,1,216,20,220,60,0,1,216,61,220,60,0,60,0,60,0,1,216,21,220,60,0,1,216,62,220,60,0,60,0,60,0,1,216,22,220,60,0,1,216,63,220,60,0,60,0,60,0,1,216,23,220,60,0,1,216,64,220,60,0,60,0,60,0,1,216,24,220,60,0,1,216,65,220,60,0,60,0,60,0,1,216,25,220,60,0,1,216,66,220,60,0,60,0,60,0,1,216,26,220,60,0,1,216,67,220,60,0,60,0,60,0,1,216,27,220,60,0,1,216,68,220,60,0,60,0,60,0,1,216,28,220,60,0,1,216,69,220,60,0,60,0,60,0,1,216,29,220,60,0,1,216,70,220,60,0,60,0,60,0,1,216,30,220,60,0,1,216,71,220,60,0,60,0,60,0,1,216,31,220,60,0,1,216,72,220,60,0,60,0,60,0,1,216,32,220,60,0,1,216,73,220,60,0,60,0,60,0,1,216,33,220,60,0,1,216,74,220,60,0,60,0,60,0,1,216,34,220,60,0,1,216,75,220,60,0,60,0,60,0,1,216,35,220,60,0,1,216,76,220,60,0,60,0,60,0,1,216,36,220,60,0,1,216,77,220,60,0,60,0,60,0,1,216,37,220,60,0,1,216,78,220,60,0,60,0,60,0,1,216,38,220,60,0,1,216,79,220,60,0,60,0,60,0,1,216,39,220,60,0,1,216,80,220,60,0,1,216,81,220,60,0,1,216,82,220,60,0,1,216,83,220,60,0,1,216,84,220,60,0,1,216,85,220,60,0,1,216,86,220,60,0,1,216,87,220,60,0,1,216,88,220,60,0,1,216,89,220,60,0,1,216,90,220,60,0,1,216,91,220,60,0,1,216,92,220,60,0,1,216,93,220,60,0,1,216,94,220,60,0,1,216,95,220,60,0,1,216,96,220,60,0,1,216,97,220,60,0,1,216,98,220,60,0,1,216,99,220,60,0,1,216,100,220,60,0,1,216,101,220,60,0,1,216,102,220,60,0,1,216,103,220,60,0,1,216,104,220,60,0,1,216,105,220,60,0,1,216,106,220,60,0,1,216,107,220,60,0,1,216,108,220,60,0,1,216,109,220,60,0,1,216,110,220,60,0,1,216,111,220,60,0,1,216,112,220,60,0,1,216,113,220,60,0,1,216,114,220,60,0,1,216,115,220,60,0,1,216,116,220,60,0,1,216,117,220,60,0,1,216,118,220,60,0,1,216,119,220,60,0,1,216,120,220,60,0,1,216,121,220,60,0,1,216,122,220,60,0,1,216,123,220,60,0,1,216,124,220,60,0,1,216,125,220,60,0,1,216,126,220,60,0,1,216,127,220,60,0,47,216,0,220,60,0,47,216,1,220,60,0,47,216,2,220,60,0,47,216,3,220,60,0,47,216,4,220,60,0,47,216,5,220,60,0,47,216,6,220,60,0,47,216,7,220,60,0,47,216,8,220,60,0,47,216,9,220,60,0,47,216,10,220,60,0,47,216,11,220,60,0,47,216,12,220,60,0,47,216,13,220,60,0,47,216,14,220,60,0,47,216,15,220,60,0,47,216,16,220,60,0,47,216,17,220,60,0,47,216,18,220,60,0,47,216,19,220,60,0,47,216,20,220,60,0,47,216,21,220,60,0,47,216,22,220,60,0,47,216,23,220,60,0,47,216,24,220,60,0,47,216,25,220,60,0,47,216,26,220,60,0,47,216,27,220,60,0,47,216,28,220,60,0,47,216,29,220,60,0,47,216,30,220,60,0,47,216,31,220,60,0,47,216,32,220,60,0,47,216,33,220,60,0,47,216,34,220,60,0,47,216,35,220,60,0,47,216,36,220,60,0,47,216,37,220,60,0,47,216,38,220,60,0,47,216,39,220,60,0,47,216,40,220,60,0,47,216,41,220,60,0,47,216,42,220,60,0,47,216,43,220,60,0,47,216,44,220,60,0,47,216,45,220,60,0,47,216,46,220,60,0,47,216,47,220,60,0,47,216,48,220,60,0,47,216,49,220,60,0,47,216,50,220,60,0,47,216,51,220,60,0,47,216,52,220,60,0,47,216,53,220,60,0,47,216,54,220,60,0,47,216,55,220,60,0,47,216,56,220,60,0,47,216,57,220,60,0,47,216,58,220,60,0,47,216,59,220,60,0,47,216,60,220,60,0,47,216,61,220,60,0,47,216,62,220,60,0,47,216,63,220,60,0,47,216,64,220,60,0,47,216,65,220,60,0,47,216,66,220,60,0,47,216,67,220,60,0,47,216,68,220,60,0,47,216,69,220,60,0,47,216,70,220,60,0,47,216,71,220,60,0,47,216,72,220,60,0,47,216,73,220,60,0,47,216,74,220,60,0,47,216,75,220,60,0,47,216,76,220,60,0,47,216,77,220,60,0,47,216,78,220,60,0,47,216,79,220,60,0,47,216,80,220,60,0,47,216,81,220,60,0,47,216,82,220,60,0,47,216,83,220,60,0,47,216,84,220,60,0,47,216,85,220,60,0,47,216,86,220,60,0,47,216,87,220,60,0,47,216,88,220,60,0,47,216,89,220,60,0,47,216,90,220,60,0,47,216,91,220,60,0,47,216,92,220,60,0,47,216,93,220,60,0,47,216,94,220,60,0,47,216,95,220,60,0,47,216,96,220,60,0,47,216,97,220,60,0,47,216,98,220,60,0,47,216,99,220,60,0,47,216,100,220,60,0,47,216,101,220,60,0,47,216,102,220,60,0,47,216,103,220,60,0,47,216,104,220,60,0,47,216,105,220,60,0,47,216,106,220,60,0,47,216,112,220,60,0,47,216,113,220,60,0,47,216,114,220,60,0,47,216,115,220,60,0,47,216,116,220,60,0,47,216,117,220,60,0,47,216,118,220,60,0,47,216,119,220,60,0,47,216,120,220,60,0,47,216,121,220,60,0,47,216,122,220,60,0,47,216,123,220,60,0,47,216,124,220,60,0,47,216,128,220,60,0,47,216,129,220,60,0,47,216,130,220,60,0,47,216,131,220,60,0,47,216,132,220,60,0,47,216,133,220,60,0,47,216,134,220,60,0,47,216,135,220,60,0,47,216,136,220,60,0,47,216,144,220,60,0,47,216,145,220,60,0,47,216,146,220,60,0,47,216,147,220,60,0,47,216,148,220,60,0,47,216,149,220,60,0,47,216,150,220,60,0,47,216,151,220,60,0,47,216,152,220,60,0,47,216,153,220,60,0,1,216,128,220,60,0,1,216,129,220,60,0,1,216,130,220,60,0,1,216,131,220,60,0,1,216,132,220,60,0,1,216,133,220,60,0,1,216,134,220,60,0,1,216,135,220,60,0,1,216,136,220,60,0,1,216,137,220,60,0,1,216,138,220,60,0,1,216,139,220,60,0,1,216,140,220,60,0,1,216,141,220,60,0,1,216,142,220,60,0,1,216,143,220,60,0,1,216,144,220,60,0,1,216,145,220,60,0,1,216,146,220,60,0,1,216,147,220,60,0,1,216,148,220,60,0,1,216,149,220,60,0,1,216,150,220,60,0,1,216,151,220,60,0,1,216,152,220,60,0,1,216,153,220,60,0,1,216,154,220,60,0,1,216,155,220,60,0,1,216,156,220,60,0,1,216,157,220,60,0,1,216,0,221,60,0,1,216,1,221,60,0,1,216,2,221,60,0,1,216,3,221,60,0,1,216,4,221,60,0,1,216,5,221,60,0,1,216,6,221,60,0,1,216,7,221,60,0,1,216,8,221,60,0,1,216,9,221,60,0,1,216,10,221,60,0,1,216,11,221,60,0,1,216,12,221,60,0,1,216,13,221,60,0,1,216,14,221,60,0,1,216,15,221,60,0,1,216,16,221,60,0,1,216,17,221,60,0,1,216,18,221,60,0,1,216,19,221,60,0,1,216,20,221,60,0,1,216,21,221,60,0,1,216,22,221,60,0,1,216,23,221,60,0,1,216,24,221,60,0,1,216,25,221,60,0,1,216,26,221,60,0,1,216,27,221,60,0,1,216,28,221,60,0,1,216,29,221,60,0,1,216,30,221,60,0,1,216,31,221,60,0,1,216,32,221,60,0,1,216,33,221,60,0,1,216,34,221,60,0,1,216,35,221,60,0,1,216,36,221,60,0,1,216,37,221,60,0,1,216,38,221,60,0,1,216,39,221,60,0,1,216,48,221,60,0,1,216,49,221,60,0,1,216,50,221,60,0,1,216,51,221,60,0,1,216,52,221,60,0,1,216,53,221,60,0,1,216,54,221,60,0,1,216,55,221,60,0,1,216,56,221,60,0,1,216,57,221,60,0,1,216,58,221,60,0,1,216,59,221,60,0,1,216,60,221,60,0,1,216,61,221,60,0,1,216,62,221,60,0,1,216,63,221,60,0,1,216,64,221,60,0,1,216,65,221,60,0,1,216,66,221,60,0,1,216,67,221,60,0,1,216,68,221,60,0,1,216,69,221,60,0,1,216,70,221,60,0,1,216,71,221,60,0,1,216,72,221,60,0,1,216,73,221,60,0,1,216,74,221,60,0,1,216,75,221,60,0,1,216,76,221,60,0,1,216,77,221,60,0,1,216,78,221,60,0,1,216,79,221,60,0,1,216,80,221,60,0,1,216,81,221,60,0,1,216,82,221,60,0,1,216,83,221,60,0,1,216,84,221,60,0,1,216,85,221,60,0,1,216,86,221,60,0,1,216,87,221,60,0,1,216,88,221,60,0,1,216,89,221,60,0,1,216,90,221,60,0,1,216,91,221,60,0,1,216,92,221,60,0,1,216,93,221,60,0,1,216,94,221,60,0,1,216,95,221,60,0,1,216,96,221,60,0,1,216,97,221,60,0,1,216,98,221,60,0,1,216,99,221,60,0,1,216,151,221,60,0,60,0,60,0,1,216,112,221,60,0,1,216,152,221,60,0,60,0,60,0,1,216,113,221,60,0,1,216,153,221,60,0,60,0,60,0,1,216,114,221,60,0,1,216,154,221,60,0,60,0,60,0,1,216,115,221,60,0,1,216,155,221,60,0,60,0,60,0,1,216,116,221,60,0,1,216,156,221,60,0,60,0,60,0,1,216,117,221,60,0,1,216,157,221,60,0,60,0,60,0,1,216,118,221,60,0,1,216,158,221,60,0,60,0,60,0,1,216,119,221,60,0,1,216,159,221,60,0,60,0,60,0,1,216,120,221,60,0,1,216,160,221,60,0,60,0,60,0,1,216,121,221,60,0,1,216,161,221,60,0,60,0,60,0,1,216,122,221,60,0,1,216,163,221,60,0,60,0,60,0,1,216,124,221,60,0,1,216,164,221,60,0,60,0,60,0,1,216,125,221,60,0,1,216,165,221,60,0,60,0,60,0,1,216,126,221,60,0,1,216,166,221,60,0,60,0,60,0,1,216,127,221,60,0,1,216,167,221,60,0,60,0,60,0,1,216,128,221,60,0,1,216,168,221,60,0,60,0,60,0,1,216,129,221,60,0,1,216,169,221,60,0,60,0,60,0,1,216,130,221,60,0,1,216,170,221,60,0,60,0,60,0,1,216,131,221,60,0,1,216,171,221,60,0,60,0,60,0,1,216,132,221,60,0,1,216,172,221,60,0,60,0,60,0,1,216,133,221,60,0,1,216,173,221,60,0,60,0,60,0,1,216,134,221,60,0,1,216,174,221,60,0,60,0,60,0,1,216,135,221,60,0,1,216,175,221,60,0,60,0,60,0,1,216,136,221,60,0,1,216,176,221,60,0,60,0,60,0,1,216,137,221,60,0,1,216,177,221,60,0,60,0,60,0,1,216,138,221,60,0,1,216,179,221,60,0,60,0,60,0,1,216,140,221,60,0,1,216,180,221,60,0,60,0,60,0,1,216,141,221,60,0,1,216,181,221,60,0,60,0,60,0,1,216,142,221,60,0,1,216,182,221,60,0,60,0,60,0,1,216,143,221,60,0,1,216,183,221,60,0,60,0,60,0,1,216,144,221,60,0,1,216,184,221,60,0,60,0,60,0,1,216,145,221,60,0,1,216,185,221,60,0,60,0,60,0,1,216,146,221,60,0,1,216,187,221,60,0,60,0,60,0,1,216,148,221,60,0,1,216,188,221,60,0,60,0,60,0,1,216,149,221,60,0,4,216,208,220,60,0,4,216,209,220,60,0,4,216,210,220,60,0,4,216,211,220,60,0,4,216,212,220,60,0,4,216,213,220,60,0,4,216,214,220,60,0,4,216,215,220,60,0,4,216,216,220,60,0,4,216,217,220,60,0,4,216,218,220,60,0,4,216,219,220,60,0,4,216,220,220,60,0,4,216,221,220,60,0,4,216,222,220,60,0,4,216,223,220,60,0,4,216,224,220,60,0,4,216,225,220,60,0,4,216,226,220,60,0,4,216,227,220,60,0,4,216,228,220,60,0,4,216,229,220,60,0,4,216,230,220,60,0,4,216,231,220,60,0,4,216,232,220,60,0,26,216,64,222,60,0,26,216,65,222,60,0,26,216,66,222,60,0,26,216,67,222,60,0,26,216,68,222,60,0,26,216,69,222,60,0,26,216,70,222,60,0,26,216,71,222,60,0,26,216,72,222,60,0,26,216,73,222,60,0,26,216,74,222,60,0,26,216,75,222,60,0,26,216,76,222,60,0,26,216,77,222,60,0,26,216,78,222,60,0,26,216,79,222,60,0,26,216,80,222,60,0,26,216,81,222,60,0,26,216,82,222,60,0,26,216,83,222,60,0,26,216,84,222,60,0,26,216,85,222,60,0,26,216,86,222,60,0,26,216,87,222,60,0,26,216,88,222,60,0,26,216,89,222,60,0,26,216,90,222,60,0,26,216,91,222,60,0,26,216,92,222,60,0,26,216,93,222,60,0,26,216,94,222,60,0,26,216,112,222,60,0,26,216,113,222,60,0,26,216,114,222,60,0,26,216,115,222,60,0,26,216,116,222,60,0,26,216,117,222,60,0,26,216,118,222,60,0,26,216,119,222,60,0,26,216,120,222,60,0,26,216,121,222,60,0,26,216,122,222,60,0,26,216,123,222,60,0,26,216,124,222,60,0,26,216,125,222,60,0,26,216,126,222,60,0,26,216,127,222,60,0,26,216,128,222,60,0,26,216,129,222,60,0,26,216,130,222,60,0,26,216,131,222,60,0,26,216,132,222,60,0,26,216,133,222,60,0,26,216,134,222,60,0,26,216,135,222,60,0,26,216,136,222,60,0,26,216,137,222,60,0,26,216,138,222,60,0,26,216,139,222,60,0,26,216,140,222,60,0,26,216,141,222,60,0,26,216,142,222,60,0,26,216,143,222,60,0,26,216,144,222,60,0,26,216,145,222,60,0,26,216,146,222,60,0,26,216,147,222,60,0,26,216,148,222,60,0,26,216,149,222,60,0,26,216,150,222,60,0,26,216,151,222,60,0,26,216,152,222,60,0,26,216,153,222,60,0,26,216,154,222,60,0,26,216,155,222,60,0,26,216,156,222,60,0,26,216,157,222,60,0,26,216,158,222,60,0,26,216,159,222,60,0,26,216,160,222,60,0,26,216,161,222,60,0,26,216,162,222,60,0,26,216,163,222,60,0,26,216,164,222,60,0,26,216,165,222,60,0,26,216,166,222,60,0,26,216,167,222,60,0,26,216,168,222,60,0,26,216,169,222,60,0,26,216,170,222,60,0,26,216,171,222,60,0,26,216,172,222,60,0,26,216,173,222,60,0,26,216,174,222,60,0,26,216,175,222,60,0,26,216,176,222,60,0,26,216,177,222,60,0,26,216,178,222,60,0,26,216,179,222,60,0,26,216,180,222,60,0,26,216,181,222,60,0,26,216,182,222,60,0,26,216,183,222,60,0,26,216,184,222,60,0,26,216,185,222,60,0,26,216,186,222,60,0,26,216,187,222,60,0,26,216,188,222,60,0,26,216,189,222,60,0,26,216,190,222,60,0,0,216,0,220,60,0,0,216,1,220,60,0,0,216,2,220,60,0,0,216,3,220,60,0,0,216,4,220,60,0,0,216,5,220,60,0,0,216,6,220,60,0,0,216,7,220,60,0,0,216,8,220,60,0,0,216,9,220,60,0,0,216,10,220,60,0,0,216,11,220,60,0,0,216,13,220,60,0,0,216,14,220,60,0,0,216,15,220,60,0,0,216,16,220,60,0,0,216,17,220,60,0,0,216,18,220,60,0,0,216,19,220,60,0,0,216,20,220,60,0,0,216,21,220,60,0,0,216,22,220,60,0,0,216,23,220,60,0,0,216,24,220,60,0,0,216,25,220,60,0,0,216,26,220,60,0,0,216,27,220,60,0,0,216,28,220,60,0,0,216,29,220,60,0,0,216,30,220,60,0,0,216,31,220,60,0,0,216,32,220,60,0,0,216,33,220,60,0,0,216,34,220,60,0,0,216,35,220,60,0,0,216,36,220,60,0,0,216,37,220,60,0,0,216,38,220,60,0,0,216,40,220,60,0,0,216,41,220,60,0,0,216,42,220,60,0,0,216,43,220,60,0,0,216,44,220,60,0,0,216,45,220,60,0,0,216,46,220,60,0,0,216,47,220,60,0,0,216,48,220,60,0,0,216,49,220,60,0,0,216,50,220,60,0,0,216,51,220,60,0,0,216,52,220,60,0,0,216,53,220,60,0,0,216,54,220,60,0,0,216,55,220,60,0,0,216,56,220,60,0,0,216,57,220,60,0,0,216,58,220,60,0,0,216,60,220,60,0,0,216,61,220,60,0,0,216,63,220,60,0,0,216,64,220,60,0,0,216,65,220,60,0,0,216,66,220,60,0,0,216,67,220,60,0,0,216,68,220,60,0,0,216,69,220,60,0,0,216,70,220,60,0,0,216,71,220,60,0,0,216,72,220,60,0,0,216,73,220,60,0,0,216,74,220,60,0,0,216,75,220,60,0,0,216,76,220,60,0,0,216,77,220,60,0,0,216,80,220,60,0,0,216,81,220,60,0,0,216,82,220,60,0,0,216,83,220,60,0,0,216,84,220,60,0,0,216,85,220,60,0,0,216,86,220,60,0,0,216,87,220,60,0,0,216,88,220,60,0,0,216,89,220,60,0,0,216,90,220,60,0,0,216,91,220,60,0,0,216,92,220,60,0,0,216,93,220,60,0,0,216,128,220,60,0,0,216,129,220,60,0,0,216,130,220,60,0,0,216,131,220,60,0,0,216,132,220,60,0,0,216,133,220,60,0,0,216,134,220,60,0,0,216,135,220,60,0,0,216,136,220,60,0,0,216,137,220,60,0,0,216,138,220,60,0,0,216,139,220,60,0,0,216,140,220,60,0,0,216,141,220,60,0,0,216,142,220,60,0,0,216,143,220,60,0,0,216,144,220,60,0,0,216,145,220,60,0,0,216,146,220,60,0,0,216,147,220,60,0,0,216,148,220,60,0,0,216,149,220,60,0,0,216,150,220,60,0,0,216,151,220,60,0,0,216,152,220,60,0,0,216,153,220,60,0,0,216,154,220,60,0,0,216,155,220,60,0,0,216,156,220,60,0,0,216,157,220,60,0,0,216,158,220,60,0,0,216,159,220,60,0,0,216,160,220,60,0,0,216,161,220,60,0,0,216,162,220,60,0,0,216,163,220,60,0,0,216,164,220,60,0,0,216,165,220,60,0,0,216,166,220,60,0,0,216,167,220,60,0,0,216,168,220,60,0,0,216,169,220,60,0,0,216,170,220,60,0,0,216,171,220,60,0,0,216,172,220,60,0,0,216,173,220,60,0,0,216,174,220,60,0,0,216,175,220,60,0,0,216,176,220,60,0,0,216,177,220,60,0,0,216,178,220,60,0,0,216,179,220,60,0,0,216,180,220,60,0,0,216,181,220,60,0,0,216,182,220,60,0,0,216,183,220,60,0,0,216,184,220,60,0,0,216,185,220,60,0,0,216,186,220,60,0,0,216,187,220,60,0,0,216,188,220,60,0,0,216,189,220,60,0,0,216,190,220,60,0,0,216,191,220,60,0,0,216,192,220,60,0,0,216,193,220,60,0,0,216,194,220,60,0,0,216,195,220,60,0,0,216,196,220,60,0,0,216,197,220,60,0,0,216,198,220,60,0,0,216,199,220,60,0,0,216,200,220,60,0,0,216,201,220,60,0,0,216,202,220,60,0,0,216,203,220,60,0,0,216,204,220,60,0,0,216,205,220,60,0,0,216,206,220,60,0,0,216,207,220,60,0,0,216,208,220,60,0,0,216,209,220,60,0,0,216,210,220,60,0,0,216,211,220,60,0,0,216,212,220,60,0,0,216,213,220,60,0,0,216,214,220,60,0,0,216,215,220,60,0,0,216,216,220,60,0,0,216,217,220,60,0,0,216,218,220,60,0,0,216,219,220,60,0,0,216,220,220,60,0,0,216,221,220,60,0,0,216,222,220,60,0,0,216,223,220,60,0,0,216,224,220,60,0,0,216,225,220,60,0,0,216,226,220,60,0,0,216,227,220,60,0,0,216,228,220,60,0,0,216,229,220,60,0,0,216,230,220,60,0,0,216,231,220,60,0,0,216,232,220,60,0,0,216,233,220,60,0,0,216,234,220,60,0,0,216,235,220,60,0,0,216,236,220,60,0,0,216,237,220,60,0,0,216,238,220,60,0,0,216,239,220,60,0,0,216,240,220,60,0,0,216,241,220,60,0,0,216,242,220,60,0,0,216,243,220,60,0,0,216,244,220,60,0,0,216,245,220,60,0,0,216,246,220,60,0,0,216,247,220,60,0,0,216,248,220,60,0,0,216,249,220,60,0,0,216,250,220,60,0,1,216,0,222,60,0,1,216,1,222,60,0,1,216,2,222,60,0,1,216,3,222,60,0,1,216,4,222,60,0,1,216,5,222,60,0,1,216,6,222,60,0,1,216,7,222,60,0,1,216,8,222,60,0,1,216,9,222,60,0,1,216,10,222,60,0,1,216,11,222,60,0,1,216,12,222,60,0,1,216,13,222,60,0,1,216,14,222,60,0,1,216,15,222,60,0,1,216,16,222,60,0,1,216,17,222,60,0,1,216,18,222,60,0,1,216,19,222,60,0,1,216,20,222,60,0,1,216,21,222,60,0,1,216,22,222,60,0,1,216,23,222,60,0,1,216,24,222,60,0,1,216,25,222,60,0,1,216,26,222,60,0,1,216,27,222,60,0,1,216,28,222,60,0,1,216,29,222,60,0,1,216,30,222,60,0,1,216,31,222,60,0,1,216,32,222,60,0,1,216,33,222,60,0,1,216,34,222,60,0,1,216,35,222,60,0,1,216,36,222,60,0,1,216,37,222,60,0,1,216,38,222,60,0,1,216,39,222,60,0,1,216,40,222,60,0,1,216,41,222,60,0,1,216,42,222,60,0,1,216,43,222,60,0,1,216,44,222,60,0,1,216,45,222,60,0,1,216,46,222,60,0,1,216,47,222,60,0,1,216,48,222,60,0,1,216,49,222,60,0,1,216,50,222,60,0,1,216,51,222,60,0,1,216,52,222,60,0,1,216,53,222,60,0,1,216,54,222,60,0,1,216,55,222,60,0,1,216,56,222,60,0,1,216,57,222,60,0,1,216,58,222,60,0,1,216,59,222,60,0,1,216,60,222,60,0,1,216,61,222,60,0,1,216,62,222,60,0,1,216,63,222,60,0,1,216,64,222,60,0,1,216,65,222,60,0,1,216,66,222,60,0,1,216,67,222,60,0,1,216,68,222,60,0,1,216,69,222,60,0,1,216,70,222,60,0,1,216,71,222,60,0,1,216,72,222,60,0,1,216,73,222,60,0,1,216,74,222,60,0,1,216,75,222,60,0,1,216,76,222,60,0,1,216,77,222,60,0,1,216,78,222,60,0,1,216,79,222,60,0,1,216,80,222,60,0,1,216,81,222,60,0,1,216,82,222,60,0,1,216,83,222,60,0,1,216,84,222,60,0,1,216,85,222,60,0,1,216,86,222,60,0,1,216,87,222,60,0,1,216,88,222,60,0,1,216,89,222,60,0,1,216,90,222,60,0,1,216,91,222,60,0,1,216,92,222,60,0,1,216,93,222,60,0,1,216,94,222,60,0,1,216,95,222,60,0,1,216,96,222,60,0,1,216,97,222,60,0,1,216,98,222,60,0,1,216,99,222,60,0,1,216,100,222,60,0,1,216,101,222,60,0,1,216,102,222,60,0,1,216,103,222,60,0,1,216,104,222,60,0,1,216,105,222,60,0,1,216,106,222,60,0,1,216,107,222,60,0,1,216,108,222,60,0,1,216,109,222,60,0,1,216,110,222,60,0,1,216,111,222,60,0,1,216,112,222,60,0,1,216,113,222,60,0,1,216,114,222,60,0,1,216,115,222,60,0,1,216,116,222,60,0,1,216,117,222,60,0,1,216,118,222,60,0,1,216,119,222,60,0,1,216,120,222,60,0,1,216,121,222,60,0,1,216,122,222,60,0,1,216,123,222,60,0,1,216,124,222,60,0,1,216,125,222,60,0,1,216,126,222,60,0,1,216,127,222,60,0,1,216,128,222,60,0,1,216,129,222,60,0,1,216,130,222,60,0,1,216,131,222,60,0,1,216,132,222,60,0,1,216,133,222,60,0,1,216,134,222,60,0,1,216,135,222,60,0,1,216,136,222,60,0,1,216,137,222,60,0,1,216,138,222,60,0,1,216,139,222,60,0,1,216,140,222,60,0,1,216,141,222,60,0,1,216,142,222,60,0,1,216,143,222,60,0,1,216,144,222,60,0,1,216,145,222,60,0,1,216,146,222,60,0,1,216,147,222,60,0,1,216,148,222,60,0,1,216,149,222,60,0,1,216,150,222,60,0,1,216,151,222,60,0,1,216,152,222,60,0,1,216,153,222,60,0,1,216,154,222,60,0,1,216,155,222,60,0,1,216,156,222,60,0,1,216,157,222,60,0,1,216,158,222,60,0,1,216,159,222,60,0,1,216,160,222,60,0,1,216,161,222,60,0,1,216,162,222,60,0,1,216,163,222,60,0,1,216,164,222,60,0,1,216,165,222,60,0,1,216,166,222,60,0,1,216,167,222,60,0,1,216,168,222,60,0,1,216,169,222,60,0,1,216,170,222,60,0,1,216,171,222,60,0,1,216,172,222,60,0,1,216,173,222,60,0,1,216,174,222,60,0,1,216,175,222,60,0,1,216,176,222,60,0,1,216,177,222,60,0,1,216,178,222,60,0,1,216,179,222,60,0,1,216,180,222,60,0,1,216,181,222,60,0,1,216,182,222,60,0,1,216,183,222,60,0,1,216,184,222,60,0,1,216,185,222,60,0,1,216,186,222,60,0,1,216,187,222,60,0,1,216,188,222,60,0,1,216,189,222,60,0,1,216,190,222,60,0,1,216,191,222,60,0,1,216,192,222,60,0,1,216,193,222,60,0,1,216,194,222,60,0,1,216,195,222,60,0,1,216,196,222,60,0,1,216,197,222,60,0,1,216,198,222,60,0,1,216,199,222,60,0,1,216,200,222,60,0,1,216,201,222,60,0,1,216,202,222,60,0,1,216,203,222,60,0,1,216,204,222,60,0,1,216,205,222,60,0,1,216,206,222,60,0,1,216,207,222,60,0,1,216,208,222,60,0,1,216,209,222,60,0,1,216,210,222,60,0,1,216,211,222,60,0,1,216,212,222,60,0,1,216,213,222,60,0,1,216,214,222,60,0,1,216,215,222,60,0,1,216,216,222,60,0,1,216,217,222,60,0,1,216,218,222,60,0,1,216,219,222,60,0,1,216,220,222,60,0,1,216,221,222,60,0,1,216,222,222,60,0,1,216,223,222,60,0,1,216,224,222,60,0,1,216,225,222,60,0,1,216,226,222,60,0,1,216,227,222,60,0,1,216,228,222,60,0,1,216,229,222,60,0,1,216,230,222,60,0,1,216,231,222,60,0,1,216,232,222,60,0,1,216,233,222,60,0,1,216,234,222,60,0,1,216,235,222,60,0,1,216,236,222,60,0,1,216,237,222,60,0,1,216,238,222,60,0,1,216,239,222,60,0,1,216,240,222,60,0,1,216,241,222,60,0,1,216,242,222,60,0,1,216,243,222,60,0,1,216,244,222,60,0,1,216,245,222,60,0,1,216,246,222,60,0,1,216,247,222,60,0,1,216,248,222,60,0,1,216,249,222,60,0,1,216,250,222,60,0,1,216,251,222,60,0,1,216,252,222,60,0,1,216,253,222,60,0,1,216,254,222,60,0,1,216,255,222,60,0,1,216,0,223,60,0,1,216,1,223,60,0,1,216,2,223,60,0,1,216,3,223,60,0,1,216,4,223,60,0,1,216,5,223,60,0,1,216,6,223,60,0,1,216,7,223,60,0,1,216,8,223,60,0,1,216,9,223,60,0,1,216,10,223,60,0,1,216,11,223,60,0,1,216,12,223,60,0,1,216,13,223,60,0,1,216,14,223,60,0,1,216,15,223,60,0,1,216,16,223,60,0,1,216,17,223,60,0,1,216,18,223,60,0,1,216,19,223,60,0,1,216,20,223,60,0,1,216,21,223,60,0,1,216,22,223,60,0,1,216,23,223,60,0,1,216,24,223,60,0,1,216,25,223,60,0,1,216,26,223,60,0,1,216,27,223,60,0,1,216,28,223,60,0,1,216,29,223,60,0,1,216,30,223,60,0,1,216,31,223,60,0,1,216,32,223,60,0,1,216,33,223,60,0,1,216,34,223,60,0,1,216,35,223,60,0,1,216,36,223,60,0,1,216,37,223,60,0,1,216,38,223,60,0,1,216,39,223,60,0,1,216,40,223,60,0,1,216,41,223,60,0,1,216,42,223,60,0,1,216,43,223,60,0,1,216,44,223,60,0,1,216,45,223,60,0,1,216,46,223,60,0,1,216,47,223,60,0,1,216,48,223,60,0,1,216,49,223,60,0,1,216,50,223,60,0,1,216,51,223,60,0,1,216,52,223,60,0,1,216,53,223,60,0,1,216,54,223,60,0,1,216,64,223,60,0,1,216,65,223,60,0,1,216,66,223,60,0,1,216,67,223,60,0,1,216,68,223,60,0,1,216,69,223,60,0,1,216,70,223,60,0,1,216,71,223,60,0,1,216,72,223,60,0,1,216,73,223,60,0,1,216,74,223,60,0,1,216,75,223,60,0,1,216,76,223,60,0,1,216,77,223,60,0,1,216,78,223,60,0,1,216,79,223,60,0,1,216,80,223,60,0,1,216,81,223,60,0,1,216,82,223,60,0,1,216,83,223,60,0,1,216,84,223,60,0,1,216,85,223,60,0,1,216,96,223,60,0,1,216,97,223,60,0,1,216,98,223,60,0,1,216,99,223,60,0,1,216,100,223,60,0,1,216,101,223,60,0,1,216,102,223,60,0,1,216,103,223,60,0,14,32,2,216,0,220,14,32,60,0,14,32,2,216,1,220,14,32,60,0,14,32,2,216,2,220,14,32,60,0,14,32,2,216,3,220,14,32,60,0,14,32,2,216,4,220,14,32,60,0,14,32,2,216,5,220,14,32,60,0,14,32,2,216,8,220,14,32,60,0,14,32,2,216,10,220,14,32,60,0,14,32,2,216,11,220,14,32,60,0,14,32,2,216,12,220,14,32,60,0,14,32,2,216,13,220,14,32,60,0,14,32,2,216,14,220,14,32,60,0,14,32,2,216,15,220,14,32,60,0,14,32,2,216,16,220,14,32,60,0,14,32,2,216,17,220,14,32,60,0,14,32,2,216,18,220,14,32,60,0,14,32,2,216,19,220,14,32,60,0,14,32,2,216,20,220,14,32,60,0,14,32,2,216,21,220,14,32,60,0,14,32,2,216,22,220,14,32,60,0,14,32,2,216,23,220,14,32,60,0,14,32,2,216,24,220,14,32,60,0,14,32,2,216,25,220,14,32,60,0,14,32,2,216,26,220,14,32,60,0,14,32,2,216,27,220,14,32,60,0,14,32,2,216,28,220,14,32,60,0,14,32,2,216,29,220,14,32,60,0,14,32,2,216,30,220,14,32,60,0,14,32,2,216,31,220,14,32,60,0,14,32,2,216,32,220,14,32,60,0,14,32,2,216,33,220,14,32,60,0,14,32,2,216,34,220,14,32,60,0,14,32,2,216,35,220,14,32,60,0,14,32,2,216,36,220,14,32,60,0,14,32,2,216,37,220,14,32,60,0,14,32,2,216,38,220,14,32,60,0,14,32,2,216,39,220,14,32,60,0,14,32,2,216,40,220,14,32,60,0,14,32,2,216,41,220,14,32,60,0,14,32,2,216,42,220,14,32,60,0,14,32,2,216,43,220,14,32,60,0,14,32,2,216,44,220,14,32,60,0,14,32,2,216,45,220,14,32,60,0,14,32,2,216,46,220,14,32,60,0,14,32,2,216,47,220,14,32,60,0,14,32,2,216,48,220,14,32,60,0,14,32,2,216,49,220,14,32,60,0,14,32,2,216,50,220,14,32,60,0,14,32,2,216,51,220,14,32,60,0,14,32,2,216,52,220,14,32,60,0,14,32,2,216,53,220,14,32,60,0,14,32,2,216,55,220,14,32,60,0,14,32,2,216,56,220,14,32,60,0,14,32,2,216,60,220,14,32,60,0,14,32,2,216,63,220,14,32,60,0,11,216,144,223,60,0,11,216,145,223,60,0,11,216,146,223,60,0,11,216,147,223,60,0,11,216,148,223,60,0,11,216,149,223,60,0,11,216,150,223,60,0,11,216,151,223,60,0,11,216,152,223,60,0,11,216,153,223,60,0,11,216,154,223,60,0,11,216,155,223,60,0,11,216,156,223,60,0,11,216,157,223,60,0,11,216,158,223,60,0,11,216,159,223,60,0,11,216,160,223,60,0,11,216,161,223,60,0,11,216,162,223,60,0,11,216,163,223,60,0,11,216,164,223,60,0,11,216,165,223,60,0,11,216,166,223,60,0,11,216,167,223,60,0,11,216,168,223,60,0,11,216,169,223,60,0,11,216,170,223,60,0,11,216,171,223,60,0,11,216,172,223,60,0,11,216,173,223,60,0,11,216,174,223,60,0,11,216,175,223,60,0,11,216,176,223,60,0,11,216,177,223,60,0,11,216,178,223,60,0,11,216,179,223,60,0,11,216,180,223,60,0,11,216,181,223,60,0,11,216,182,223,60,0,11,216,183,223,60,0,11,216,184,223,60,0,11,216,185,223,60,0,11,216,186,223,60,0,11,216,187,223,60,0,11,216,188,223,60,0,11,216,189,223,60,0,11,216,190,223,60,0,11,216,191,223,60,0,11,216,192,223,60,0,11,216,193,223,60,0,11,216,194,223,60,0,11,216,195,223,60,0,11,216,196,223,60,0,11,216,197,223,60,0,11,216,198,223,60,0,11,216,199,223,60,0,11,216,200,223,60,0,11,216,201,223,60,0,11,216,202,223,60,0,11,216,203,223,60,0,11,216,204,223,60,0,11,216,205,223,60,0,11,216,206,223,60,0,11,216,207,223,60,0,11,216,208,223,60,0,11,216,209,223,60,0,11,216,210,223,60,0,11,216,211,223,60,0,11,216,212,223,60,0,11,216,213,223,60,0,11,216,214,223,60,0,11,216,215,223,60,0,11,216,216,223,60,0,11,216,217,223,60,0,11,216,218,223,60,0,11,216,219,223,60,0,11,216,220,223,60,0,11,216,221,223,60,0,11,216,222,223,60,0,11,216,223,223,60,0,11,216,224,223,60,0,11,216,225,223,60,0,11,216,226,223,60,0,11,216,227,223,60,0,11,216,228,223,60,0,11,216,229,223,60,0,11,216,230,223,60,0,11,216,231,223,60,0,11,216,232,223,60,0,11,216,233,223,60,0,11,216,234,223,60,0,11,216,235,223,60,0,11,216,236,223,60,0,11,216,237,223,60,0,11,216,238,223,60,0,11,216,239,223,60,0,11,216,240,223,60,0,14,32,2,216,96,222,14,32,60,0,14,32,2,216,97,222,14,32,60,0,14,32,2,216,98,222,14,32,60,0,14,32,2,216,99,222,14,32,60,0,14,32,2,216,100,222,14,32,60,0,14,32,2,216,101,222,14,32,60,0,14,32,2,216,102,222,14,32,60,0,14,32,2,216,103,222,14,32,60,0,14,32,2,216,104,222,14,32,60,0,14,32,2,216,105,222,14,32,60,0,14,32,2,216,106,222,14,32,60,0,14,32,2,216,107,222,14,32,60,0,14,32,2,216,108,222,14,32,60,0,14,32,2,216,109,222,14,32,60,0,14,32,2,216,110,222,14,32,60,0,14,32,2,216,111,222,14,32,60,0,14,32,2,216,112,222,14,32,60,0,14,32,2,216,113,222,14,32,60,0,14,32,2,216,114,222,14,32,60,0,14,32,2,216,115,222,14,32,60,0,14,32,2,216,116,222,14,32,60,0,14,32,2,216,117,222,14,32,60,0,14,32,2,216,118,222,14,32,60,0,14,32,2,216,119,222,14,32,60,0,14,32,2,216,120,222,14,32,60,0,14,32,2,216,121,222,14,32,60,0,14,32,2,216,122,222,14,32,60,0,14,32,2,216,123,222,14,32,60,0,14,32,2,216,124,222,14,32,60,0,14,32,2,216,128,222,14,32,60,0,14,32,2,216,129,222,14,32,60,0,14,32,2,216,130,222,14,32,60,0,14,32,2,216,131,222,14,32,60,0,14,32,2,216,132,222,14,32,60,0,14,32,2,216,133,222,14,32,60,0,14,32,2,216,134,222,14,32,60,0,14,32,2,216,135,222,14,32,60,0,14,32,2,216,136,222,14,32,60,0,14,32,2,216,137,222,14,32,60,0,14,32,2,216,138,222,14,32,60,0,14,32,2,216,139,222,14,32,60,0,14,32,2,216,140,222,14,32,60,0,14,32,2,216,141,222,14,32,60,0,14,32,2,216,142,222,14,32,60,0,14,32,2,216,143,222,14,32,60,0,14,32,2,216,144,222,14,32,60,0,14,32,2,216,145,222,14,32,60,0,14,32,2,216,146,222,14,32,60,0,14,32,2,216,147,222,14,32,60,0,14,32,2,216,148,222,14,32,60,0,14,32,2,216,149,222,14,32,60,0,14,32,2,216,150,222,14,32,60,0,14,32,2,216,151,222,14,32,60,0,14,32,2,216,152,222,14,32,60,0,14,32,2,216,153,222,14,32,60,0,14,32,2,216,154,222,14,32,60,0,14,32,2,216,155,222,14,32,60,0,14,32,2,216,156,222,14,32,60,0,14,32,2,216,0,223,14,32,60,0,14,32,2,216,1,223,14,32,60,0,14,32,2,216,2,223,14,32,60,0,14,32,2,216,3,223,14,32,60,0,14,32,2,216,4,223,14,32,60,0,14,32,2,216,5,223,14,32,60,0,14,32,2,216,6,223,14,32,60,0,14,32,2,216,7,223,14,32,60,0,14,32,2,216,8,223,14,32,60,0,14,32,2,216,9,223,14,32,60,0,14,32,2,216,10,223,14,32,60,0,14,32,2,216,11,223,14,32,60,0,14,32,2,216,12,223,14,32,60,0,14,32,2,216,13,223,14,32,60,0,14,32,2,216,14,223,14,32,60,0,14,32,2,216,15,223,14,32,60,0,14,32,2,216,16,223,14,32,60,0,14,32,2,216,17,223,14,32,60,0,14,32,2,216,18,223,14,32,60,0,14,32,2,216,19,223,14,32,60,0,14,32,2,216,20,223,14,32,60,0,14,32,2,216,21,223,14,32,60,0,14,32,2,216,22,223,14,32,60,0,14,32,2,216,23,223,14,32,60,0,14,32,2,216,24,223,14,32,60,0,14,32,2,216,25,223,14,32,60,0,14,32,2,216,26,223,14,32,60,0,14,32,2,216,27,223,14,32,60,0,14,32,2,216,28,223,14,32,60,0,14,32,2,216,29,223,14,32,60,0,14,32,2,216,30,223,14,32,60,0,14,32,2,216,31,223,14,32,60,0,14,32,2,216,32,223,14,32,60,0,14,32,2,216,33,223,14,32,60,0,14,32,2,216,34,223,14,32,60,0,14,32,2,216,35,223,14,32,60,0,14,32,2,216,36,223,14,32,60,0,14,32,2,216,37,223,14,32,60,0,14,32,2,216,38,223,14,32,60,0,14,32,2,216,39,223,14,32,60,0,14,32,2,216,40,223,14,32,60,0,14,32,2,216,41,223,14,32,60,0,14,32,2,216,42,223,14,32,60,0,14,32,2,216,43,223,14,32,60,0,14,32,2,216,44,223,14,32,60,0,14,32,2,216,45,223,14,32,60,0,60,0,14,32,2,216,46,223,14,32,60,0,14,32,2,216,47,223,14,32,60,0,14,32,2,216,48,223,14,32,60,0,14,32,2,216,49,223,14,32,60,0,14,32,2,216,50,223,14,32,60,0,14,32,2,216,51,223,14,32,60,0,14,32,2,216,52,223,14,32,60,0,14,32,2,216,53,223,14,32,60,0,14,32,2,216,96,220,14,32,60,0,14,32,2,216,97,220,14,32,60,0,14,32,2,216,98,220,14,32,60,0,14,32,2,216,99,220,14,32,60,0,14,32,2,216,100,220,14,32,60,0,14,32,2,216,101,220,14,32,60,0,14,32,2,216,102,220,14,32,60,0,14,32,2,216,103,220,14,32,60,0,14,32,2,216,104,220,14,32,60,0,14,32,2,216,105,220,14,32,60,0,14,32,2,216,106,220,14,32,60,0,14,32,2,216,107,220,14,32,60,0,14,32,2,216,108,220,14,32,60,0,14,32,2,216,110,220,14,32,60,0,60,0,60,0,14,32,2,216,109,220,14,32,60,0,14,32,2,216,111,220,14,32,60,0,14,32,2,216,112,220,14,32,60,0,14,32,2,216,113,220,14,32,60,0,14,32,2,216,114,220,14,32,60,0,14,32,2,216,115,220,14,32,60,0,14,32,2,216,116,220,14,32,60,0,14,32,2,216,117,220,14,32,60,0,14,32,2,216,118,220,14,32,60,0,14,32,2,216,129,220,14,32,60,0,60,0,60,0,14,32,2,216,128,220,14,32,60,0,14,32,2,216,131,220,14,32,60,0,60,0,60,0,14,32,2,216,130,220,14,32,60,0,14,32,2,216,132,220,14,32,60,0,14,32,2,216,133,220,14,32,60,0,14,32,2,216,135,220,14,32,60,0,60,0,60,0,14,32,2,216,134,220,14,32,60,0,14,32,2,216,136,220,14,32,60,0,14,32,2,216,137,220,14,32,60,0,14,32,2,216,138,220,14,32,60,0,14,32,2,216,139,220,14,32,60,0,14,32,2,216,141,220,14,32,60,0,60,0,60,0,14,32,2,216,140,220,14,32,60,0,14,32,2,216,143,220,14,32,60,0,60,0,60,0,14,32,2,216,142,220,14,32,60,0,14,32,2,216,145,220,14,32,60,0,60,0,60,0,14,32,2,216,144,220,14,32,60,0,14,32,2,216,147,220,14,32,60,0,60,0,60,0,14,32,2,216,146,220,14,32,60,0,14,32,2,216,149,220,14,32,60,0,60,0,60,0,14,32,2,216,148,220,14,32,60,0,14,32,2,216,150,220,14,32,60,0,14,32,2,216,151,220,14,32,60,0,14,32,2,216,152,220,14,32,60,0,14,32,2,216,153,220,14,32,60,0,14,32,2,216,154,220,14,32,60,0,14,32,2,216,155,220,14,32,60,0,14,32,2,216,157,220,14,32,60,0,60,0,60,0,14,32,2,216,156,220,14,32,60,0,14,32,2,216,158,220,14,32,60,0,14,32,2,216,224,220,14,32,60,0,14,32,2,216,225,220,14,32,60,0,14,32,2,216,226,220,14,32,60,0,14,32,2,216,227,220,14,32,60,0,14,32,2,216,228,220,14,32,60,0,14,32,2,216,229,220,14,32,60,0,14,32,2,216,230,220,14,32,60,0,14,32,2,216,231,220,14,32,60,0,14,32,2,216,232,220,14,32,60,0,14,32,2,216,233,220,14,32,60,0,14,32,2,216,234,220,14,32,60,0,14,32,2,216,235,220,14,32,60,0,14,32,2,216,236,220,14,32,60,0,14,32,2,216,237,220,14,32,60,0,14,32,2,216,238,220,14,32,60,0,14,32,2,216,239,220,14,32,60,0,14,32,2,216,240,220,14,32,60,0,14,32,2,216,241,220,14,32,60,0,14,32,2,216,242,220,14,32,60,0,14,32,2,216,244,220,14,32,60,0,14,32,2,216,245,220,14,32,60,0,14,32,2,216,64,220,14,32,60,0,14,32,2,216,65,220,14,32,60,0,14,32,2,216,66,220,14,32,60,0,14,32,2,216,67,220,14,32,60,0,14,32,2,216,68,220,14,32,60,0,14,32,2,216,69,220,14,32,60,0,14,32,2,216,70,220,14,32,60,0,14,32,2,216,71,220,14,32,60,0,14,32,2,216,72,220,14,32,60,0,14,32,2,216,73,220,14,32,60,0,14,32,2,216,74,220,14,32,60,0,14,32,2,216,75,220,14,32,60,0,14,32,2,216,76,220,14,32,60,0,14,32,2,216,77,220,14,32,60,0,14,32,2,216,78,220,14,32,60,0,14,32,2,216,79,220,14,32,60,0,14,32,2,216,80,220,14,32,60,0,14,32,2,216,81,220,14,32,60,0,14,32,2,216,82,220,14,32,60,0,14,32,2,216,83,220,14,32,60,0,14,32,2,216,84,220,14,32,60,0,14,32,2,216,85,220,14,32,60,0,14,32,2,216,64,223,14,32,60,0,14,32,2,216,65,223,14,32,60,0,14,32,2,216,66,223,14,32,60,0,14,32,2,216,67,223,14,32,60,0,14,32,2,216,68,223,14,32,60,0,14,32,2,216,69,223,14,32,60,0,14,32,2,216,70,223,14,32,60,0,14,32,2,216,71,223,14,32,60,0,14,32,2,216,72,223,14,32,60,0,14,32,2,216,73,223,14,32,60,0,14,32,2,216,74,223,14,32,60,0,14,32,2,216,75,223,14,32,60,0,14,32,2,216,76,223,14,32,60,0,14,32,2,216,77,223,14,32,60,0,14,32,2,216,78,223,14,32,60,0,14,32,2,216,79,223,14,32,60,0,14,32,2,216,80,223,14,32,60,0,14,32,2,216,81,223,14,32,60,0,14,32,2,216,82,223,14,32,60,0,14,32,2,216,83,223,14,32,60,0,14,32,2,216,84,223,14,32,60,0,14,32,2,216,85,223,14,32,60,0,14,32,2,216,96,223,14,32,60,0,14,32,2,216,97,223,14,32,60,0,14,32,2,216,98,223,14,32,60,0,14,32,2,216,99,223,14,32,60,0,14,32,2,216,100,223,14,32,60,0,14,32,2,216,101,223,14,32,60,0,14,32,2,216,102,223,14,32,60,0,14,32,2,216,103,223,14,32,60,0,14,32,2,216,104,223,14,32,60,0,14,32,2,216,105,223,14,32,60,0,14,32,2,216,106,223,14,32,60,0,14,32,2,216,107,223,14,32,60,0,14,32,2,216,108,223,14,32,60,0,14,32,2,216,109,223,14,32,60,0,14,32,2,216,110,223,14,32,60,0,14,32,2,216,111,223,14,32,60,0,14,32,2,216,112,223,14,32,60,0,14,32,2,216,113,223,14,32,60,0,14,32,2,216,114,223,14,32,60,0,14,32,2,216,128,223,14,32,60,0,14,32,2,216,129,223,14,32,60,0,14,32,2,216,130,223,14,32,60,0,14,32,2,216,131,223,14,32,60,0,14,32,2,216,132,223,14,32,60,0,14,32,2,216,133,223,14,32,60,0,14,32,2,216,134,223,14,32,60,0,14,32,2,216,135,223,14,32,60,0,14,32,2,216,136,223,14,32,60,0,14,32,2,216,137,223,14,32,60,0,14,32,2,216,138,223,14,32,60,0,14,32,2,216,139,223,14,32,60,0,14,32,2,216,140,223,14,32,60,0,14,32,2,216,141,223,14,32,60,0,14,32,2,216,142,223,14,32,60,0,14,32,2,216,143,223,14,32,60,0,14,32,2,216,144,223,14,32,60,0,14,32,2,216,145,223,14,32,60,0,14,32,3,216,224,223,14,32,60,0,14,32,3,216,225,223,14,32,60,0,14,32,3,216,226,223,14,32,60,0,14,32,3,216,227,223,14,32,60,0,14,32,3,216,228,223,14,32,60,0,14,32,3,216,229,223,14,32,60,0,14,32,3,216,230,223,14,32,60,0,60,0,60,0,14,32,3,216,246,223,14,32,47,0,14,32,3,216,233,223,14,32,60,0,14,32,3,216,231,223,14,32,60,0,14,32,3,216,232,223,14,32,60,0,14,32,3,216,233,223,14,32,60,0,14,32,3,216,234,223,14,32,60,0,14,32,3,216,235,223,14,32,60,0,14,32,3,216,236,223,14,32,60,0,14,32,3,216,237,223,14,32,60,0,14,32,3,216,238,223,14,32,60,0,14,32,3,216,239,223,14,32,60,0,14,32,3,216,240,223,14,32,60,0,14,32,3,216,241,223,14,32,60,0,14,32,3,216,242,223,14,32,60,0,14,32,3,216,243,223,14,32,60,0,14,32,3,216,244,223,14,32,60,0,14,32,3,216,245,223,14,32,60,0,14,32,2,216,192,222,14,32,60,0,14,32,2,216,193,222,14,32,60,0,14,32,2,216,194,222,14,32,60,0,14,32,2,216,195,222,14,32,60,0,14,32,2,216,196,222,14,32,60,0,14,32,2,216,197,222,14,32,60,0,14,32,2,216,198,222,14,32,60,0,14,32,2,216,199,222,14,32,60,0,60,0,14,32,2,216,200,222,14,32,60,0,14,32,2,216,201,222,14,32,60,0,14,32,2,216,202,222,14,32,60,0,14,32,2,216,203,222,14,32,60,0,14,32,2,216,204,222,14,32,60,0,14,32,2,216,205,222,14,32,60,0,14,32,2,216,206,222,14,32,60,0,14,32,2,216,207,222,14,32,60,0,14,32,2,216,208,222,14,32,60,0,14,32,2,216,209,222,14,32,60,0,14,32,2,216,210,222,14,32,60,0,14,32,2,216,211,222,14,32,60,0,14,32,2,216,212,222,14,32,60,0,14,32,2,216,213,222,14,32,60,0,14,32,2,216,214,222,14,32,60,0,14,32,2,216,215,222,14,32,60,0,14,32,2,216,216,222,14,32,60,0,14,32,2,216,217,222,14,32,60,0,14,32,2,216,218,222,14,32,60,0,14,32,2,216,219,222,14,32,60,0,14,32,2,216,220,222,14,32,60,0,14,32,2,216,221,222,14,32,60,0,14,32,2,216,222,222,14,32,60,0,14,32,2,216,223,222,14,32,60,0,14,32,2,216,224,222,14,32,60,0,14,32,2,216,225,222,14,32,60,0,14,32,2,216,226,222,14,32,60,0,14,32,2,216,227,222,14,32,60,0,14,32,2,216,228,222,14,32,60,0,14,32,3,216,0,223,14,32,60,0,60,0,60,0,14,32,3,216,1,223,14,32,60,0,14,32,3,216,2,223,14,32,60,0,60,0,60,0,14,32,3,216,3,223,14,32,60,0,14,32,3,216,4,223,14,32,60,0,14,32,3,216,5,223,14,32,60,0,60,0,60,0,14,32,3,216,6,223,14,32,60,0,14,32,3,216,7,223,14,32,60,0,14,32,3,216,8,223,14,32,60,0,14,32,3,216,9,223,14,32,60,0,14,32,3,216,10,223,14,32,60,0,14,32,3,216,11,223,14,32,60,0,14,32,3,216,12,223,14,32,60,0,14,32,3,216,13,223,14,32,60,0,14,32,3,216,14,223,14,32,60,0,60,0,60,0,14,32,3,216,15,223,14,32,60,0,60,0,14,32,3,216,16,223,14,32,60,0,14,32,3,216,17,223,14,32,60,0,14,32,3,216,18,223,14,32,60,0,60,0,60,0,14,32,3,216,39,223,14,32,47,0,14,32,3,216,24,223,14,32,60,0,60,0,14,32,3,216,19,223,14,32,60,0,14,32,3,216,20,223,14,32,60,0,14,32,3,216,21,223,14,32,60,0,60,0,60,0,14,32,3,216,22,223,14,32,60,0,60,0,14,32,3,216,23,223,14,32,60,0,14,32,3,216,24,223,14,32,60,0,14,32,3,216,25,223,14,32,60,0,14,32,3,216,26,223,14,32,60,0,60,0,60,0,14,32,3,216,27,223,14,32,60,0,60,0,14,32,3,216,28,223,14,32,60,0,14,32,3,216,48,223,14,32,60,0,14,32,3,216,49,223,14,32,60,0,14,32,3,216,50,223,14,32,60,0,14,32,3,216,51,223,14,32,60,0,14,32,3,216,52,223,14,32,60,0,14,32,3,216,53,223,14,32,60,0,14,32,3,216,54,223,14,32,60,0,14,32,3,216,55,223,14,32,60,0,14,32,3,216,56,223,14,32,60,0,14,32,3,216,57,223,14,32,60,0,14,32,3,216,58,223,14,32,60,0,14,32,3,216,59,223,14,32,60,0,14,32,3,216,60,223,14,32,60,0,14,32,3,216,61,223,14,32,60,0,14,32,3,216,62,223,14,32,60,0,14,32,3,216,63,223,14,32,60,0,14,32,3,216,64,223,14,32,60,0,14,32,3,216,65,223,14,32,60,0,60,0,14,32,3,216,69,223,14,32,60,0,14,32,3,216,66,223,14,32,60,0,14,32,3,216,67,223,14,32,60,0,14,32,3,216,68,223,14,32,60,0,14,32,3,216,112,223,14,32,60,0,14,32,3,216,113,223,14,32,60,0,14,32,3,216,114,223,14,32,60,0,14,32,3,216,115,223,14,32,60,0,14,32,3,216,116,223,14,32,60,0,14,32,3,216,117,223,14,32,60,0,14,32,3,216,118,223,14,32,60,0,14,32,3,216,119,223,14,32,60,0,14,32,3,216,120,223,14,32,60,0,14,32,3,216,121,223,14,32,60,0,14,32,3,216,122,223,14,32,60,0,14,32,3,216,123,223,14,32,60,0,14,32,3,216,124,223,14,32,60,0,14,32,3,216,125,223,14,32,60,0,14,32,3,216,126,223,14,32,60,0,14,32,3,216,127,223,14,32,60,0,14,32,3,216,128,223,14,32,60,0,14,32,3,216,129,223,14,32,60,0,14,32,3,216,128,222,14,32,60,0,14,32,3,216,129,222,14,32,60,0,14,32,3,216,130,222,14,32,60,0,14,32,3,216,131,222,14,32,60,0,14,32,3,216,132,222,14,32,60,0,14,32,3,216,133,222,14,32,60,0,14,32,3,216,134,222,14,32,60,0,14,32,3,216,135,222,14,32,60,0,14,32,3,216,136,222,14,32,60,0,14,32,3,216,137,222,14,32,60,0,14,32,3,216,138,222,14,32,60,0,14,32,3,216,139,222,14,32,60,0,14,32,3,216,140,222,14,32,60,0,14,32,3,216,141,222,14,32,60,0,14,32,3,216,142,222,14,32,60,0,14,32,3,216,143,222,14,32,60,0,14,32,3,216,144,222,14,32,60,0,14,32,3,216,145,222,14,32,60,0,14,32,3,216,146,222,14,32,60,0,14,32,3,216,147,222,14,32,60,0,14,32,3,216,148,222,14,32,60,0,14,32,3,216,149,222,14,32,60,0,14,32,3,216,150,222,14,32,60,0,14,32,3,216,151,222,14,32,60,0,14,32,3,216,152,222,14,32,60,0,14,32,3,216,153,222,14,32,60,0,14,32,3,216,154,222,14,32,60,0,14,32,3,216,155,222,14,32,60,0,14,32,3,216,156,222,14,32,60,0,14,32,3,216,157,222,14,32,60,0,14,32,3,216,158,222,14,32,60,0,14,32,3,216,159,222,14,32,60,0,14,32,3,216,160,222,14,32,60,0,14,32,3,216,176,222,14,32,60,0,14,32,3,216,161,222,14,32,60,0,14,32,3,216,162,222,14,32,60,0,14,32,3,216,163,222,14,32,60,0,14,32,3,216,164,222,14,32,60,0,14,32,3,216,165,222,14,32,60,0,14,32,3,216,166,222,14,32,60,0,14,32,3,216,167,222,14,32,60,0,14,32,3,216,168,222,14,32,60,0,14,32,3,216,177,222,14,32,60,0,14,32,3,216,169,222,14,32,60,0,14,32,3,216,176,223,14,32,60,0,14,32,3,216,177,223,14,32,60,0,14,32,3,216,178,223,14,32,60,0,14,32,3,216,179,223,14,32,60,0,14,32,3,216,180,223,14,32,60,0,14,32,3,216,181,223,14,32,60,0,14,32,3,216,182,223,14,32,60,0,14,32,3,216,183,223,14,32,60,0,14,32,3,216,184,223,14,32,60,0,14,32,3,216,185,223,14,32,60,0,14,32,3,216,186,223,14,32,60,0,14,32,3,216,187,223,14,32,60,0,14,32,3,216,188,223,14,32,60,0,14,32,3,216,189,223,14,32,60,0,14,32,3,216,190,223,14,32,60,0,14,32,3,216,191,223,14,32,60,0,14,32,3,216,192,223,14,32,60,0,14,32,3,216,193,223,14,32,60,0,14,32,3,216,194,223,14,32,60,0,14,32,3,216,195,223,14,32,60,0,14,32,3,216,196,223,14,32,60,0,0,216,128,223,60,0,0,216,129,223,60,0,0,216,130,223,60,0,0,216,131,223,60,0,0,216,132,223,60,0,0,216,133,223,60,0,0,216,134,223,60,0,0,216,135,223,60,0,0,216,136,223,60,0,0,216,137,223,60,0,0,216,138,223,60,0,0,216,139,223,60,0,0,216,140,223,60,0,0,216,141,223,60,0,0,216,142,223,60,0,0,216,143,223,60,0,0,216,144,223,60,0,0,216,145,223,60,0,0,216,146,223,60,0,0,216,147,223,60,0,0,216,148,223,60,0,0,216,149,223,60,0,0,216,150,223,60,0,0,216,151,223,60,0,0,216,152,223,60,0,0,216,153,223,60,0,0,216,154,223,60,0,0,216,155,223,60,0,0,216,156,223,60,0,0,216,157,223,60,0,0,216,160,223,60,0,0,216,161,223,60,0,0,216,162,223,60,0,0,216,163,223,60,0,0,216,164,223,60,0,0,216,165,223,60,0,0,216,166,223,60,0,0,216,167,223,60,0,0,216,168,223,60,0,0,216,169,223,60,0,0,216,170,223,60,0,0,216,171,223,60,0,0,216,172,223,60,0,0,216,173,223,60,0,0,216,174,223,60,0,0,216,175,223,60,0,0,216,176,223,60,0,0,216,177,223,60,0,0,216,178,223,60,0,0,216,179,223,60,0,0,216,180,223,60,0,0,216,181,223,60,0,0,216,182,223,60,0,0,216,183,223,60,0,0,216,184,223,60,0,0,216,185,223,60,0,0,216,186,223,60,0,0,216,187,223,60,0,0,216,188,223,60,0,0,216,189,223,60,0,0,216,190,223,60,0,0,216,191,223,60,0,0,216,192,223,60,0,0,216,193,223,60,0,0,216,194,223,60,0,0,216,195,223,60,0,0,216,200,223,60,0,0,216,201,223,60,0,0,216,202,223,60,0,0,216,203,223,60,0,0,216,204,223,60,0,0,216,205,223,60,0,0,216,206,223,60,0,0,216,207,223,60,0,8,216,0,220,60,0,8,216,1,220,60,0,8,216,2,220,60,0,8,216,3,220,60,0,8,216,4,220,60,0,8,216,5,220,60,0,8,216,6,220,60,0,8,216,7,220,60,0,8,216,8,220,60,0,8,216,9,220,60,0,8,216,10,220,60,0,8,216,11,220,60,0,8,216,12,220,60,0,8,216,13,220,60,0,8,216,14,220,60,0,8,216,15,220,60,0,8,216,16,220,60,0,8,216,17,220,60,0,8,216,18,220,60,0,8,216,19,220,60,0,8,216,20,220,60,0,8,216,21,220,60,0,8,216,22,220,60,0,8,216,23,220,60,0,8,216,24,220,60,0,8,216,25,220,60,0,8,216,26,220,60,0,8,216,27,220,60,0,8,216,28,220,60,0,8,216,29,220,60,0,8,216,30,220,60,0,8,216,31,220,60,0,8,216,32,220,60,0,8,216,33,220,60,0,8,216,34,220,60,0,8,216,35,220,60,0,8,216,36,220,60,0,8,216,37,220,60,0,8,216,38,220,60,0,8,216,39,220,60,0,8,216,40,220,60,0,8,216,41,220,60,0,8,216,42,220,60,0,8,216,43,220,60,0,8,216,44,220,60,0,8,216,45,220,60,0,8,216,46,220,60,0,8,216,47,220,60,0,8,216,48,220,60,0,8,216,49,220,60,0,8,216,50,220,60,0,8,216,51,220,60,0,8,216,52,220,60,0,8,216,53,220,60,0,8,216,54,220,60,0,8,216,55,220,60,0,8,216,56,220,60,0,8,216,57,220,60,0,8,216,58,220,60,0,8,216,59,220,60,0,8,216,60,220,60,0,8,216,61,220,60,0,8,216,62,220,60,0,8,216,63,220,60,0,8,216,64,220,60,0,8,216,65,220,60,0,8,216,66,220,60,0,8,216,67,220,60,0,8,216,68,220,60,0,8,216,69,220,60,0,8,216,70,220,60,0,8,216,71,220,60,0,8,216,72,220,60,0,8,216,73,220,60,0,8,216,74,220,60,0,8,216,75,220,60,0,8,216,76,220,60,0,8,216,77,220,60,0,8,216,78,220,60,0,8,216,79,220,60,0,8,216,80,220,60,0,8,216,81,220,60,0,8,216,82,220,60,0,8,216,83,220,60,0,8,216,84,220,60,0,8,216,85,220,60,0,8,216,86,220,60,0,8,216,87,220,60,0,8,216,88,220,60,0,8,216,89,220,60,0,8,216,90,220,60,0,8,216,91,220,60,0,8,216,92,220,60,0,8,216,93,220,60,0,8,216,94,220,60,0,8,216,95,220,60,0,8,216,96,220,60,0,8,216,97,220,60,0,8,216,98,220,60,0,8,216,99,220,60,0,8,216,100,220,60,0,8,216,101,220,60,0,8,216,102,220,60,0,8,216,103,220,60,0,8,216,104,220,60,0,8,216,105,220,60,0,8,216,106,220,60,0,8,216,107,220,60,0,8,216,108,220,60,0,8,216,109,220,60,0,8,216,110,220,60,0,8,216,111,220,60,0,8,216,112,220,60,0,8,216,113,220,60,0,8,216,114,220,60,0,8,216,115,220,60,0,8,216,116,220,60,0,8,216,117,220,60,0,8,216,118,220,60,0,8,216,119,220,60,0,8,216,120,220,60,0,8,216,121,220,60,0,8,216,122,220,60,0,8,216,123,220,60,0,8,216,124,220,60,0,8,216,125,220,60,0,8,216,126,220,60,0,8,216,127,220,60,0,8,216,128,220,60,0,8,216,129,220,60,0,8,216,130,220,60,0,8,216,131,220,60,0,8,216,132,220,60,0,8,216,133,220,60,0,8,216,134,220,60,0,8,216,135,220,60,0,8,216,136,220,60,0,8,216,137,220,60,0,8,216,138,220,60,0,8,216,139,220,60,0,8,216,140,220,60,0,8,216,141,220,60,0,8,216,142,220,60,0,8,216,143,220,60,0,8,216,144,220,60,0,8,216,145,220,60,0,8,216,146,220,60,0,8,216,147,220,60,0,8,216,148,220,60,0,8,216,149,220,60,0,8,216,150,220,60,0,8,216,151,220,60,0,8,216,152,220,60,0,8,216,153,220,60,0,8,216,154,220,60,0,8,216,155,220,60,0,8,216,156,220,60,0,8,216,157,220,60,0,8,216,158,220,60,0,8,216,159,220,60,0,8,216,160,220,60,0,8,216,161,220,60,0,8,216,162,220,60,0,8,216,163,220,60,0,8,216,164,220,60,0,8,216,165,220,60,0,8,216,166,220,60,0,8,216,167,220,60,0,8,216,168,220,60,0,8,216,169,220,60,0,8,216,170,220,60,0,8,216,171,220,60,0,8,216,172,220,60,0,8,216,173,220,60,0,8,216,174,220,60,0,8,216,175,220,60,0,8,216,176,220,60,0,8,216,177,220,60,0,8,216,178,220,60,0,8,216,179,220,60,0,8,216,180,220,60,0,8,216,181,220,60,0,8,216,182,220,60,0,8,216,183,220,60,0,8,216,184,220,60,0,8,216,185,220,60,0,8,216,186,220,60,0,8,216,187,220,60,0,8,216,188,220,60,0,8,216,189,220,60,0,8,216,190,220,60,0,8,216,191,220,60,0,8,216,192,220,60,0,8,216,193,220,60,0,8,216,194,220,60,0,8,216,195,220,60,0,8,216,196,220,60,0,8,216,197,220,60,0,8,216,198,220,60,0,8,216,199,220,60,0,8,216,200,220,60,0,8,216,201,220,60,0,8,216,202,220,60,0,8,216,203,220,60,0,8,216,204,220,60,0,8,216,205,220,60,0,8,216,206,220,60,0,8,216,207,220,60,0,8,216,208,220,60,0,8,216,209,220,60,0,8,216,210,220,60,0,8,216,211,220,60,0,8,216,212,220,60,0,8,216,213,220,60,0,8,216,214,220,60,0,8,216,215,220,60,0,8,216,216,220,60,0,8,216,217,220,60,0,8,216,218,220,60,0,8,216,219,220,60,0,8,216,220,220,60,0,8,216,221,220,60,0,8,216,222,220,60,0,8,216,223,220,60,0,8,216,224,220,60,0,8,216,225,220,60,0,8,216,226,220,60,0,8,216,227,220,60,0,8,216,228,220,60,0,8,216,229,220,60,0,8,216,230,220,60,0,8,216,231,220,60,0,8,216,232,220,60,0,8,216,233,220,60,0,8,216,234,220,60,0,8,216,235,220,60,0,8,216,236,220,60,0,8,216,237,220,60,0,8,216,238,220,60,0,8,216,239,220,60,0,8,216,240,220,60,0,8,216,241,220,60,0,8,216,242,220,60,0,8,216,243,220,60,0,8,216,244,220,60,0,8,216,245,220,60,0,8,216,246,220,60,0,8,216,247,220,60,0,8,216,248,220,60,0,8,216,249,220,60,0,8,216,250,220,60,0,8,216,251,220,60,0,8,216,252,220,60,0,8,216,253,220,60,0,8,216,254,220,60,0,8,216,255,220,60,0,8,216,0,221,60,0,8,216,1,221,60,0,8,216,2,221,60,0,8,216,3,221,60,0,8,216,4,221,60,0,8,216,5,221,60,0,8,216,6,221,60,0,8,216,7,221,60,0,8,216,8,221,60,0,8,216,9,221,60,0,8,216,10,221,60,0,8,216,11,221,60,0,8,216,12,221,60,0,8,216,13,221,60,0,8,216,14,221,60,0,8,216,15,221,60,0,8,216,16,221,60,0,8,216,17,221,60,0,8,216,18,221,60,0,8,216,19,221,60,0,8,216,20,221,60,0,8,216,21,221,60,0,8,216,22,221,60,0,8,216,23,221,60,0,8,216,24,221,60,0,8,216,25,221,60,0,8,216,26,221,60,0,8,216,27,221,60,0,8,216,28,221,60,0,8,216,29,221,60,0,8,216,30,221,60,0,8,216,31,221,60,0,8,216,32,221,60,0,8,216,33,221,60,0,8,216,34,221,60,0,8,216,35,221,60,0,8,216,36,221,60,0,8,216,37,221,60,0,8,216,38,221,60,0,8,216,39,221,60,0,8,216,40,221,60,0,8,216,41,221,60,0,8,216,42,221,60,0,8,216,43,221,60,0,8,216,44,221,60,0,8,216,45,221,60,0,8,216,46,221,60,0,8,216,47,221,60,0,8,216,48,221,60,0,8,216,49,221,60,0,8,216,50,221,60,0,8,216,51,221,60,0,8,216,52,221,60,0,8,216,53,221,60,0,8,216,54,221,60,0,8,216,55,221,60,0,8,216,56,221,60,0,8,216,57,221,60,0,8,216,58,221,60,0,8,216,59,221,60,0,8,216,60,221,60,0,8,216,61,221,60,0,8,216,62,221,60,0,8,216,63,221,60,0,8,216,64,221,60,0,8,216,65,221,60,0,8,216,66,221,60,0,8,216,67,221,60,0,8,216,68,221,60,0,8,216,69,221,60,0,8,216,70,221,60,0,8,216,71,221,60,0,8,216,72,221,60,0,8,216,73,221,60,0,8,216,74,221,60,0,8,216,75,221,60,0,8,216,76,221,60,0,8,216,77,221,60,0,8,216,78,221,60,0,8,216,79,221,60,0,8,216,80,221,60,0,8,216,81,221,60,0,8,216,82,221,60,0,8,216,83,221,60,0,8,216,84,221,60,0,8,216,85,221,60,0,8,216,86,221,60,0,8,216,87,221,60,0,8,216,88,221,60,0,8,216,89,221,60,0,8,216,90,221,60,0,8,216,91,221,60,0,8,216,92,221,60,0,8,216,93,221,60,0,8,216,94,221,60,0,8,216,95,221,60,0,8,216,96,221,60,0,8,216,97,221,60,0,8,216,98,221,60,0,8,216,99,221,60,0,8,216,100,221,60,0,8,216,101,221,60,0,8,216,102,221,60,0,8,216,103,221,60,0,8,216,104,221,60,0,8,216,105,221,60,0,8,216,106,221,60,0,8,216,107,221,60,0,8,216,108,221,60,0,8,216,109,221,60,0,8,216,110,221,60,0,8,216,111,221,60,0,8,216,112,221,60,0,8,216,113,221,60,0,8,216,114,221,60,0,8,216,115,221,60,0,8,216,116,221,60,0,8,216,117,221,60,0,8,216,118,221,60,0,8,216,119,221,60,0,8,216,120,221,60,0,8,216,121,221,60,0,8,216,122,221,60,0,8,216,123,221,60,0,8,216,124,221,60,0,8,216,125,221,60,0,8,216,126,221,60,0,8,216,127,221,60,0,8,216,128,221,60,0,8,216,129,221,60,0,8,216,130,221,60,0,8,216,131,221,60,0,8,216,132,221,60,0,8,216,133,221,60,0,8,216,134,221,60,0,8,216,135,221,60,0,8,216,136,221,60,0,8,216,137,221,60,0,8,216,138,221,60,0,8,216,139,221,60,0,8,216,140,221,60,0,8,216,141,221,60,0,8,216,142,221,60,0,8,216,143,221,60,0,8,216,144,221,60,0,8,216,145,221,60,0,8,216,146,221,60,0,8,216,147,221,60,0,8,216,148,221,60,0,8,216,149,221,60,0,8,216,150,221,60,0,8,216,151,221,60,0,8,216,152,221,60,0,8,216,153,221,60,0,8,216,154,221,60,0,8,216,155,221,60,0,8,216,156,221,60,0,8,216,157,221,60,0,8,216,158,221,60,0,8,216,159,221,60,0,8,216,160,221,60,0,8,216,161,221,60,0,8,216,162,221,60,0,8,216,163,221,60,0,8,216,164,221,60,0,8,216,165,221,60,0,8,216,166,221,60,0,8,216,167,221,60,0,8,216,168,221,60,0,8,216,169,221,60,0,8,216,170,221,60,0,8,216,171,221,60,0,8,216,172,221,60,0,8,216,173,221,60,0,8,216,174,221,60,0,8,216,175,221,60,0,8,216,176,221,60,0,8,216,177,221,60,0,8,216,178,221,60,0,8,216,179,221,60,0,8,216,180,221,60,0,8,216,181,221,60,0,8,216,182,221,60,0,8,216,183,221,60,0,8,216,184,221,60,0,8,216,185,221,60,0,8,216,186,221,60,0,8,216,187,221,60,0,8,216,188,221,60,0,8,216,189,221,60,0,8,216,190,221,60,0,8,216,191,221,60,0,8,216,192,221,60,0,8,216,193,221,60,0,8,216,194,221,60,0,8,216,195,221,60,0,8,216,196,221,60,0,8,216,197,221,60,0,8,216,198,221,60,0,8,216,199,221,60,0,8,216,200,221,60,0,8,216,201,221,60,0,8,216,202,221,60,0,8,216,203,221,60,0,8,216,204,221,60,0,8,216,205,221,60,0,8,216,206,221,60,0,8,216,207,221,60,0,8,216,208,221,60,0,8,216,209,221,60,0,8,216,210,221,60,0,8,216,211,221,60,0,8,216,212,221,60,0,8,216,213,221,60,0,8,216,214,221,60,0,8,216,215,221,60,0,8,216,216,221,60,0,8,216,217,221,60,0,8,216,218,221,60,0,8,216,219,221,60,0,8,216,220,221,60,0,8,216,221,221,60,0,8,216,222,221,60,0,8,216,223,221,60,0,8,216,224,221,60,0,8,216,225,221,60,0,8,216,226,221,60,0,8,216,227,221,60,0,8,216,228,221,60,0,8,216,229,221,60,0,8,216,230,221,60,0,8,216,231,221,60,0,8,216,232,221,60,0,8,216,233,221,60,0,8,216,234,221,60,0,8,216,235,221,60,0,8,216,236,221,60,0,8,216,237,221,60,0,8,216,238,221,60,0,8,216,239,221,60,0,8,216,240,221,60,0,8,216,241,221,60,0,8,216,242,221,60,0,8,216,243,221,60,0,8,216,244,221,60,0,8,216,245,221,60,0,8,216,246,221,60,0,8,216,247,221,60,0,8,216,248,221,60,0,8,216,249,221,60,0,8,216,250,221,60,0,8,216,251,221,60,0,8,216,252,221,60,0,8,216,253,221,60,0,8,216,254,221,60,0,8,216,255,221,60,0,8,216,0,222,60,0,8,216,1,222,60,0,8,216,2,222,60,0,8,216,3,222,60,0,8,216,4,222,60,0,8,216,5,222,60,0,8,216,6,222,60,0,8,216,7,222,60,0,8,216,8,222,60,0,8,216,9,222,60,0,8,216,10,222,60,0,8,216,11,222,60,0,8,216,12,222,60,0,8,216,13,222,60,0,8,216,14,222,60,0,8,216,15,222,60,0,8,216,16,222,60,0,8,216,17,222,60,0,8,216,18,222,60,0,8,216,19,222,60,0,8,216,20,222,60,0,8,216,21,222,60,0,8,216,22,222,60,0,8,216,23,222,60,0,8,216,24,222,60,0,8,216,25,222,60,0,8,216,26,222,60,0,8,216,27,222,60,0,8,216,28,222,60,0,8,216,29,222,60,0,8,216,30,222,60,0,8,216,31,222,60,0,8,216,32,222,60,0,8,216,33,222,60,0,8,216,34,222,60,0,8,216,35,222,60,0,8,216,36,222,60,0,8,216,37,222,60,0,8,216,38,222,60,0,8,216,39,222,60,0,8,216,40,222,60,0,8,216,41,222,60,0,8,216,42,222,60,0,8,216,43,222,60,0,8,216,44,222,60,0,8,216,45,222,60,0,8,216,46,222,60,0,8,216,47,222,60,0,8,216,48,222,60,0,8,216,49,222,60,0,8,216,50,222,60,0,8,216,51,222,60,0,8,216,52,222,60,0,8,216,53,222,60,0,8,216,54,222,60,0,8,216,55,222,60,0,8,216,56,222,60,0,8,216,57,222,60,0,8,216,58,222,60,0,8,216,59,222,60,0,8,216,60,222,60,0,8,216,61,222,60,0,8,216,62,222,60,0,8,216,63,222,60,0,8,216,64,222,60,0,8,216,65,222,60,0,8,216,66,222,60,0,8,216,67,222,60,0,8,216,68,222,60,0,8,216,69,222,60,0,8,216,70,222,60,0,8,216,71,222,60,0,8,216,72,222,60,0,8,216,73,222,60,0,8,216,74,222,60,0,8,216,75,222,60,0,8,216,76,222,60,0,8,216,77,222,60,0,8,216,78,222,60,0,8,216,79,222,60,0,8,216,80,222,60,0,8,216,81,222,60,0,8,216,82,222,60,0,8,216,83,222,60,0,8,216,84,222,60,0,8,216,85,222,60,0,8,216,86,222,60,0,8,216,87,222,60,0,8,216,88,222,60,0,8,216,89,222,60,0,8,216,90,222,60,0,8,216,91,222,60,0,8,216,92,222,60,0,8,216,93,222,60,0,8,216,94,222,60,0,8,216,95,222,60,0,8,216,96,222,60,0,8,216,97,222,60,0,8,216,98,222,60,0,8,216,212,222,60,0,8,216,213,222,60,0,8,216,99,222,60,0,8,216,100,222,60,0,8,216,101,222,60,0,8,216,102,222,60,0,8,216,103,222,60,0,8,216,104,222,60,0,8,216,105,222,60,0,8,216,106,222,60,0,8,216,107,222,60,0,8,216,108,222,60,0,8,216,109,222,60,0,8,216,110,222,60,0,8,216,111,222,60,0,8,216,112,222,60,0,8,216,113,222,60,0,8,216,114,222,60,0,8,216,115,222,60,0,8,216,116,222,60,0,8,216,117,222,60,0,8,216,118,222,60,0,8,216,119,222,60,0,8,216,120,222,60,0,8,216,121,222,60,0,8,216,122,222,60,0,8,216,123,222,60,0,8,216,124,222,60,0,8,216,125,222,60,0,8,216,126,222,60,0,8,216,127,222,60,0,8,216,128,222,60,0,8,216,129,222,60,0,8,216,130,222,60,0,8,216,131,222,60,0,8,216,132,222,60,0,8,216,133,222,60,0,8,216,134,222,60,0,8,216,135,222,60,0,8,216,136,222,60,0,8,216,137,222,60,0,8,216,138,222,60,0,8,216,139,222,60,0,8,216,140,222,60,0,8,216,141,222,60,0,8,216,142,222,60,0,8,216,143,222,60,0,8,216,144,222,60,0,8,216,145,222,60,0,8,216,146,222,60,0,8,216,147,222,60,0,8,216,148,222,60,0,8,216,149,222,60,0,8,216,150,222,60,0,8,216,151,222,60,0,8,216,152,222,60,0,8,216,153,222,60,0,8,216,154,222,60,0,8,216,155,222,60,0,8,216,156,222,60,0,8,216,157,222,60,0,8,216,158,222,60,0,8,216,159,222,60,0,8,216,160,222,60,0,8,216,161,222,60,0,8,216,162,222,60,0,8,216,163,222,60,0,8,216,164,222,60,0,8,216,165,222,60,0,8,216,166,222,60,0,8,216,167,222,60,0,8,216,168,222,60,0,8,216,169,222,60,0,8,216,170,222,60,0,8,216,171,222,60,0,8,216,172,222,60,0,8,216,173,222,60,0,8,216,174,222,60,0,8,216,175,222,60,0,8,216,176,222,60,0,8,216,177,222,60,0,8,216,178,222,60,0,8,216,179,222,60,0,8,216,180,222,60,0,8,216,181,222,60,0,8,216,182,222,60,0,8,216,183,222,60,0,8,216,184,222,60,0,8,216,185,222,60,0,8,216,186,222,60,0,8,216,187,222,60,0,8,216,188,222,60,0,8,216,189,222,60,0,8,216,190,222,60,0,8,216,191,222,60,0,8,216,192,222,60,0,8,216,193,222,60,0,8,216,194,222,60,0,8,216,195,222,60,0,8,216,196,222,60,0,8,216,197,222,60,0,8,216,198,222,60,0,8,216,199,222,60,0,8,216,200,222,60,0,8,216,201,222,60,0,8,216,202,222,60,0,8,216,203,222,60,0,8,216,204,222,60,0,8,216,205,222,60,0,8,216,206,222,60,0,8,216,207,222,60,0,8,216,208,222,60,0,8,216,209,222,60,0,8,216,210,222,60,0,8,216,211,222,60,0,8,216,214,222,60,0,8,216,215,222,60,0,8,216,216,222,60,0,8,216,217,222,60,0,8,216,218,222,60,0,8,216,219,222,60,0,8,216,220,222,60,0,8,216,221,222,60,0,8,216,222,222,60,0,8,216,223,222,60,0,8,216,224,222,60,0,8,216,225,222,60,0,8,216,226,222,60,0,8,216,227,222,60,0,8,216,228,222,60,0,8,216,229,222,60,0,8,216,230,222,60,0,8,216,231,222,60,0,8,216,232,222,60,0,8,216,233,222,60,0,8,216,234,222,60,0,8,216,235,222,60,0,8,216,236,222,60,0,8,216,237,222,60,0,8,216,238,222,60,0,8,216,239,222,60,0,8,216,240,222,60,0,8,216,241,222,60,0,8,216,242,222,60,0,8,216,243,222,60,0,8,216,244,222,60,0,8,216,245,222,60,0,8,216,246,222,60,0,8,216,247,222,60,0,8,216,248,222,60,0,8,216,249,222,60,0,8,216,250,222,60,0,8,216,251,222,60,0,8,216,252,222,60,0,8,216,253,222,60,0,8,216,254,222,60,0,8,216,255,222,60,0,8,216,0,223,60,0,8,216,1,223,60,0,8,216,2,223,60,0,8,216,3,223,60,0,8,216,4,223,60,0,8,216,5,223,60,0,8,216,6,223,60,0,8,216,7,223,60,0,8,216,8,223,60,0,8,216,9,223,60,0,8,216,10,223,60,0,8,216,11,223,60,0,8,216,12,223,60,0,8,216,13,223,60,0,8,216,14,223,60,0,8,216,15,223,60,0,8,216,16,223,60,0,8,216,17,223,60,0,8,216,18,223,60,0,8,216,19,223,60,0,8,216,20,223,60,0,8,216,21,223,60,0,8,216,22,223,60,0,8,216,23,223,60,0,8,216,24,223,60,0,8,216,25,223,60,0,8,216,26,223,60,0,8,216,27,223,60,0,8,216,28,223,60,0,8,216,29,223,60,0,8,216,30,223,60,0,8,216,31,223,60,0,8,216,32,223,60,0,8,216,33,223,60,0,8,216,34,223,60,0,8,216,35,223,60,0,8,216,36,223,60,0,8,216,37,223,60,0,8,216,38,223,60,0,8,216,39,223,60,0,8,216,40,223,60,0,8,216,41,223,60,0,8,216,42,223,60,0,8,216,43,223,60,0,8,216,44,223,60,0,8,216,45,223,60,0,8,216,46,223,60,0,8,216,47,223,60,0,8,216,48,223,60,0,8,216,49,223,60,0,8,216,50,223,60,0,8,216,51,223,60,0,8,216,52,223,60,0,8,216,53,223,60,0,8,216,54,223,60,0,8,216,55,223,60,0,8,216,56,223,60,0,8,216,57,223,60,0,8,216,58,223,60,0,8,216,59,223,60,0,8,216,60,223,60,0,8,216,61,223,60,0,8,216,62,223,60,0,8,216,63,223,60,0,8,216,64,223,60,0,8,216,65,223,60,0,8,216,66,223,60,0,8,216,67,223,60,0,8,216,68,223,60,0,8,216,69,223,60,0,8,216,70,223,60,0,8,216,71,223,60,0,8,216,72,223,60,0,8,216,73,223,60,0,8,216,74,223,60,0,8,216,75,223,60,0,8,216,76,223,60,0,8,216,77,223,60,0,8,216,78,223,60,0,8,216,79,223,60,0,8,216,80,223,60,0,8,216,81,223,60,0,8,216,82,223,60,0,8,216,83,223,60,0,8,216,84,223,60,0,8,216,85,223,60,0,8,216,86,223,60,0,8,216,87,223,60,0,8,216,88,223,60,0,8,216,89,223,60,0,8,216,90,223,60,0,8,216,91,223,60,0,8,216,92,223,60,0,8,216,93,223,60,0,8,216,94,223,60,0,8,216,95,223,60,0,8,216,96,223,60,0,8,216,97,223,60,0,8,216,98,223,60,0,8,216,99,223,60,0,8,216,100,223,60,0,8,216,101,223,60,0,8,216,102,223,60,0,8,216,103,223,60,0,8,216,104,223,60,0,8,216,105,223,60,0,8,216,106,223,60,0,8,216,107,223,60,0,8,216,108,223,60,0,8,216,109,223,60,0,8,216,110,223,60,0,8,216,111,223,60,0,8,216,112,223,60,0,8,216,113,223,60,0,8,216,114,223,60,0,8,216,115,223,60,0,8,216,116,223,60,0,8,216,117,223,60,0,8,216,118,223,60,0,8,216,119,223,60,0,8,216,120,223,60,0,8,216,121,223,60,0,8,216,122,223,60,0,8,216,123,223,60,0,8,216,124,223,60,0,8,216,125,223,60,0,8,216,126,223,60,0,8,216,127,223,60,0,8,216,128,223,60,0,8,216,129,223,60,0,8,216,130,223,60,0,8,216,131,223,60,0,8,216,132,223,60,0,8,216,133,223,60,0,8,216,134,223,60,0,8,216,135,223,60,0,8,216,136,223,60,0,8,216,137,223,60,0,8,216,138,223,60,0,8,216,139,223,60,0,8,216,140,223,60,0,8,216,141,223,60,0,8,216,142,223,60,0,8,216,143,223,60,0,8,216,144,223,60,0,8,216,145,223,60,0,8,216,146,223,60,0,8,216,147,223,60,0,8,216,148,223,60,0,8,216,149,223,60,0,8,216,150,223,60,0,8,216,151,223,60,0,8,216,152,223,60,0,8,216,153,223,60,0,9,216,128,220,60,0,9,216,129,220,60,0,9,216,130,220,60,0,9,216,131,220,60,0,9,216,132,220,60,0,9,216,133,220,60,0,9,216,134,220,60,0,9,216,135,220,60,0,9,216,136,220,60,0,9,216,137,220,60,0,9,216,138,220,60,0,9,216,139,220,60,0,9,216,140,220,60,0,9,216,141,220,60,0,9,216,142,220,60,0,9,216,143,220,60,0,9,216,144,220,60,0,9,216,145,220,60,0,9,216,146,220,60,0,9,216,147,220,60,0,9,216,148,220,60,0,9,216,149,220,60,0,9,216,150,220,60,0,9,216,151,220,60,0,9,216,152,220,60,0,9,216,153,220,60,0,9,216,154,220,60,0,9,216,155,220,60,0,9,216,156,220,60,0,9,216,157,220,60,0,9,216,158,220,60,0,9,216,159,220,60,0,9,216,160,220,60,0,9,216,161,220,60,0,9,216,162,220,60,0,9,216,163,220,60,0,9,216,164,220,60,0,9,216,165,220,60,0,9,216,166,220,60,0,9,216,167,220,60,0,9,216,168,220,60,0,9,216,169,220,60,0,9,216,170,220,60,0,9,216,171,220,60,0,9,216,172,220,60,0,9,216,173,220,60,0,9,216,174,220,60,0,9,216,175,220,60,0,9,216,176,220,60,0,9,216,177,220,60,0,9,216,178,220,60,0,9,216,179,220,60,0,9,216,180,220,60,0,9,216,181,220,60,0,9,216,182,220,60,0,9,216,183,220,60,0,9,216,184,220,60,0,9,216,185,220,60,0,9,216,186,220,60,0,9,216,187,220,60,0,9,216,188,220,60,0,9,216,189,220,60,0,9,216,190,220,60,0,9,216,191,220,60,0,9,216,192,220,60,0,9,216,193,220,60,0,9,216,194,220,60,0,9,216,195,220,60,0,9,216,196,220,60,0,9,216,197,220,60,0,9,216,198,220,60,0,9,216,199,220,60,0,9,216,200,220,60,0,9,216,201,220,60,0,9,216,202,220,60,0,9,216,203,220,60,0,9,216,204,220,60,0,9,216,205,220,60,0,9,216,206,220,60,0,9,216,207,220,60,0,9,216,208,220,60,0,9,216,209,220,60,0,9,216,210,220,60,0,9,216,211,220,60,0,9,216,212,220,60,0,9,216,213,220,60,0,9,216,214,220,60,0,9,216,215,220,60,0,9,216,216,220,60,0,9,216,217,220,60,0,9,216,218,220,60,0,9,216,219,220,60,0,9,216,220,220,60,0,9,216,221,220,60,0,9,216,222,220,60,0,9,216,223,220,60,0,9,216,224,220,60,0,9,216,225,220,60,0,9,216,226,220,60,0,9,216,227,220,60,0,9,216,228,220,60,0,9,216,229,220,60,0,9,216,230,220,60,0,9,216,231,220,60,0,9,216,232,220,60,0,9,216,233,220,60,0,9,216,234,220,60,0,9,216,235,220,60,0,9,216,236,220,60,0,9,216,237,220,60,0,9,216,238,220,60,0,9,216,239,220,60,0,9,216,240,220,60,0,9,216,241,220,60,0,9,216,242,220,60,0,9,216,243,220,60,0,9,216,244,220,60,0,9,216,245,220,60,0,9,216,246,220,60,0,9,216,247,220,60,0,9,216,248,220,60,0,9,216,249,220,60,0,9,216,250,220,60,0,9,216,251,220,60,0,9,216,252,220,60,0,9,216,253,220,60,0,9,216,254,220,60,0,9,216,255,220,60,0,9,216,0,221,60,0,9,216,1,221,60,0,9,216,2,221,60,0,9,216,3,221,60,0,9,216,4,221,60,0,9,216,5,221,60,0,9,216,6,221,60,0,9,216,7,221,60,0,9,216,8,221,60,0,9,216,9,221,60,0,9,216,10,221,60,0,9,216,11,221,60,0,9,216,12,221,60,0,9,216,13,221,60,0,9,216,14,221,60,0,9,216,15,221,60,0,9,216,16,221,60,0,9,216,17,221,60,0,9,216,18,221,60,0,9,216,19,221,60,0,9,216,20,221,60,0,9,216,21,221,60,0,9,216,22,221,60,0,9,216,23,221,60,0,9,216,24,221,60,0,9,216,25,221,60,0,9,216,26,221,60,0,9,216,27,221,60,0,9,216,28,221,60,0,9,216,29,221,60,0,9,216,30,221,60,0,9,216,31,221,60,0,9,216,32,221,60,0,9,216,33,221,60,0,9,216,34,221,60,0,9,216,35,221,60,0,9,216,36,221,60,0,9,216,37,221,60,0,9,216,38,221,60,0,9,216,39,221,60,0,9,216,40,221,60,0,9,216,41,221,60,0,9,216,42,221,60,0,9,216,43,221,60,0,9,216,44,221,60,0,9,216,45,221,60,0,9,216,46,221,60,0,9,216,47,221,60,0,9,216,48,221,60,0,9,216,49,221,60,0,9,216,50,221,60,0,9,216,51,221,60,0,9,216,52,221,60,0,9,216,53,221,60,0,9,216,54,221,60,0,9,216,55,221,60,0,9,216,56,221,60,0,9,216,57,221,60,0,9,216,58,221,60,0,9,216,59,221,60,0,9,216,60,221,60,0,9,216,61,221,60,0,9,216,62,221,60,0,9,216,63,221,60,0,9,216,64,221,60,0,9,216,65,221,60,0,9,216,66,221,60,0,9,216,67,221,60,0,12,216,0,220,60,0,12,216,1,220,60,0,12,216,2,220,60,0,12,216,3,220,60,0,12,216,4,220,60,0,12,216,5,220,60,0,12,216,6,220,60,0,12,216,7,220,60,0,12,216,8,220,60,0,12,216,9,220,60,0,12,216,10,220,60,0,12,216,11,220,60,0,12,216,12,220,60,0,12,216,13,220,60,0,12,216,14,220,60,0,12,216,15,220,60,0,12,216,16,220,60,0,12,216,17,220,60,0,12,216,18,220,60,0,12,216,19,220,60,0,12,216,20,220,60,0,12,216,21,220,60,0,12,216,22,220,60,0,12,216,23,220,60,0,12,216,24,220,60,0,12,216,25,220,60,0,12,216,26,220,60,0,12,216,27,220,60,0,12,216,28,220,60,0,12,216,29,220,60,0,12,216,30,220,60,0,12,216,31,220,60,0,12,216,32,220,60,0,12,216,33,220,60,0,12,216,34,220,60,0,12,216,35,220,60,0,12,216,36,220,60,0,12,216,37,220,60,0,12,216,38,220,60,0,12,216,39,220,60,0,12,216,40,220,60,0,12,216,41,220,60,0,12,216,42,220,60,0,12,216,43,220,60,0,12,216,44,220,60,0,12,216,45,220,60,0,12,216,46,220,60,0,12,216,47,220,60,0,12,216,48,220,60,0,12,216,49,220,60,0,12,216,50,220,60,0,12,216,51,220,60,0,12,216,52,220,60,0,12,216,53,220,60,0,12,216,54,220,60,0,12,216,55,220,60,0,12,216,56,220,60,0,12,216,57,220,60,0,12,216,58,220,60,0,12,216,59,220,60,0,12,216,60,220,60,0,12,216,61,220,60,0,12,216,62,220,60,0,12,216,63,220,60,0,12,216,64,220,60,0,12,216,65,220,60,0,12,216,66,220,60,0,12,216,67,220,60,0,12,216,68,220,60,0,12,216,69,220,60,0,12,216,70,220,60,0,12,216,71,220,60,0,12,216,72,220,60,0,12,216,73,220,60,0,12,216,74,220,60,0,12,216,75,220,60,0,12,216,76,220,60,0,12,216,77,220,60,0,12,216,78,220,60,0,12,216,79,220,60,0,12,216,80,220,60,0,12,216,81,220,60,0,12,216,82,220,60,0,12,216,83,220,60,0,12,216,84,220,60,0,12,216,85,220,60,0,12,216,86,220,60,0,12,216,87,220,60,0,12,216,88,220,60,0,12,216,89,220,60,0,12,216,90,220,60,0,12,216,91,220,60,0,12,216,92,220,60,0,12,216,93,220,60,0,12,216,94,220,60,0,12,216,95,220,60,0,12,216,96,220,60,0,12,216,97,220,60,0,12,216,98,220,60,0,12,216,99,220,60,0,12,216,100,220,60,0,12,216,101,220,60,0,12,216,102,220,60,0,12,216,103,220,60,0,12,216,104,220,60,0,12,216,105,220,60,0,12,216,106,220,60,0,12,216,107,220,60,0,12,216,108,220,60,0,12,216,109,220,60,0,12,216,110,220,60,0,12,216,111,220,60,0,12,216,112,220,60,0,12,216,113,220,60,0,12,216,114,220,60,0,12,216,115,220,60,0,12,216,116,220,60,0,12,216,117,220,60,0,12,216,118,220,60,0,12,216,119,220,60,0,12,216,120,220,60,0,12,216,121,220,60,0,12,216,122,220,60,0,12,216,123,220,60,0,12,216,124,220,60,0,12,216,125,220,60,0,12,216,126,220,60,0,12,216,127,220,60,0,12,216,128,220,60,0,12,216,129,220,60,0,12,216,130,220,60,0,12,216,131,220,60,0,12,216,132,220,60,0,12,216,133,220,60,0,12,216,134,220,60,0,12,216,135,220,60,0,12,216,136,220,60,0,12,216,137,220,60,0,12,216,138,220,60,0,12,216,139,220,60,0,12,216,140,220,60,0,12,216,141,220,60,0,12,216,142,220,60,0,12,216,143,220,60,0,12,216,144,220,60,0,12,216,145,220,60,0,12,216,146,220,60,0,12,216,147,220,60,0,12,216,148,220,60,0,12,216,149,220,60,0,12,216,150,220,60,0,12,216,151,220,60,0,12,216,152,220,60,0,12,216,153,220,60,0,12,216,154,220,60,0,12,216,155,220,60,0,12,216,156,220,60,0,12,216,157,220,60,0,12,216,158,220,60,0,12,216,159,220,60,0,12,216,160,220,60,0,12,216,161,220,60,0,12,216,162,220,60,0,12,216,163,220,60,0,12,216,164,220,60,0,12,216,165,220,60,0,12,216,166,220,60,0,12,216,167,220,60,0,12,216,168,220,60,0,12,216,169,220,60,0,12,216,170,220,60,0,12,216,171,220,60,0,12,216,172,220,60,0,12,216,173,220,60,0,12,216,174,220,60,0,12,216,175,220,60,0,12,216,176,220,60,0,12,216,177,220,60,0,12,216,178,220,60,0,12,216,179,220,60,0,12,216,180,220,60,0,12,216,181,220,60,0,12,216,182,220,60,0,12,216,183,220,60,0,12,216,184,220,60,0,12,216,185,220,60,0,12,216,186,220,60,0,12,216,187,220,60,0,12,216,188,220,60,0,12,216,189,220,60,0,12,216,190,220,60,0,12,216,191,220,60,0,12,216,192,220,60,0,12,216,193,220,60,0,12,216,194,220,60,0,12,216,195,220,60,0,12,216,196,220,60,0,12,216,197,220,60,0,12,216,198,220,60,0,12,216,199,220,60,0,12,216,200,220,60,0,12,216,201,220,60,0,12,216,202,220,60,0,12,216,203,220,60,0,12,216,204,220,60,0,12,216,205,220,60,0,12,216,206,220,60,0,12,216,207,220,60,0,12,216,208,220,60,0,12,216,209,220,60,0,12,216,210,220,60,0,12,216,211,220,60,0,12,216,212,220,60,0,12,216,213,220,60,0,12,216,214,220,60,0,12,216,215,220,60,0,12,216,216,220,60,0,12,216,217,220,60,0,12,216,218,220,60,0,12,216,219,220,60,0,12,216,220,220,60,0,12,216,221,220,60,0,12,216,222,220,60,0,12,216,223,220,60,0,12,216,224,220,60,0,12,216,225,220,60,0,12,216,226,220,60,0,12,216,227,220,60,0,12,216,228,220,60,0,12,216,229,220,60,0,12,216,230,220,60,0,12,216,231,220,60,0,12,216,232,220,60,0,12,216,233,220,60,0,12,216,234,220,60,0,12,216,235,220,60,0,12,216,236,220,60,0,12,216,237,220,60,0,12,216,238,220,60,0,12,216,239,220,60,0,12,216,240,220,60,0,12,216,241,220,60,0,12,216,242,220,60,0,12,216,243,220,60,0,12,216,244,220,60,0,12,216,245,220,60,0,12,216,246,220,60,0,12,216,247,220,60,0,12,216,248,220,60,0,12,216,249,220,60,0,12,216,250,220,60,0,12,216,251,220,60,0,12,216,252,220,60,0,12,216,253,220,60,0,12,216,254,220,60,0,12,216,255,220,60,0,12,216,0,221,60,0,12,216,1,221,60,0,12,216,2,221,60,0,12,216,3,221,60,0,12,216,4,221,60,0,12,216,5,221,60,0,12,216,6,221,60,0,12,216,7,221,60,0,12,216,8,221,60,0,12,216,9,221,60,0,12,216,10,221,60,0,12,216,11,221,60,0,12,216,12,221,60,0,12,216,13,221,60,0,12,216,14,221,60,0,12,216,15,221,60,0,12,216,16,221,60,0,12,216,17,221,60,0,12,216,18,221,60,0,12,216,19,221,60,0,12,216,20,221,60,0,12,216,21,221,60,0,12,216,22,221,60,0,12,216,23,221,60,0,12,216,24,221,60,0,12,216,25,221,60,0,12,216,26,221,60,0,12,216,27,221,60,0,12,216,28,221,60,0,12,216,29,221,60,0,12,216,30,221,60,0,12,216,31,221,60,0,12,216,32,221,60,0,12,216,33,221,60,0,12,216,34,221,60,0,12,216,35,221,60,0,12,216,36,221,60,0,12,216,37,221,60,0,12,216,38,221,60,0,12,216,39,221,60,0,12,216,40,221,60,0,12,216,41,221,60,0,12,216,42,221,60,0,12,216,43,221,60,0,12,216,44,221,60,0,12,216,45,221,60,0,12,216,46,221,60,0,12,216,47,221,60,0,12,216,48,221,60,0,12,216,49,221,60,0,12,216,50,221,60,0,12,216,51,221,60,0,12,216,52,221,60,0,12,216,53,221,60,0,12,216,54,221,60,0,12,216,55,221,60,0,12,216,56,221,60,0,12,216,57,221,60,0,12,216,58,221,60,0,12,216,59,221,60,0,12,216,60,221,60,0,12,216,61,221,60,0,12,216,62,221,60,0,12,216,63,221,60,0,12,216,64,221,60,0,12,216,65,221,60,0,12,216,66,221,60,0,12,216,67,221,60,0,12,216,68,221,60,0,12,216,69,221,60,0,12,216,70,221,60,0,12,216,71,221,60,0,12,216,72,221,60,0,12,216,73,221,60,0,12,216,74,221,60,0,12,216,75,221,60,0,12,216,76,221,60,0,12,216,77,221,60,0,12,216,78,221,60,0,12,216,79,221,60,0,12,216,80,221,60,0,12,216,81,221,60,0,12,216,82,221,60,0,12,216,83,221,60,0,12,216,84,221,60,0,12,216,85,221,60,0,12,216,86,221,60,0,12,216,87,221,60,0,12,216,88,221,60,0,12,216,89,221,60,0,12,216,90,221,60,0,12,216,91,221,60,0,12,216,92,221,60,0,12,216,93,221,60,0,12,216,94,221,60,0,12,216,95,221,60,0,12,216,96,221,60,0,12,216,97,221,60,0,12,216,98,221,60,0,12,216,99,221,60,0,12,216,100,221,60,0,12,216,101,221,60,0,12,216,102,221,60,0,12,216,103,221,60,0,12,216,104,221,60,0,12,216,105,221,60,0,12,216,106,221,60,0,12,216,107,221,60,0,12,216,108,221,60,0,12,216,109,221,60,0,12,216,110,221,60,0,12,216,111,221,60,0,12,216,112,221,60,0,12,216,113,221,60,0,12,216,114,221,60,0,12,216,115,221,60,0,12,216,116,221,60,0,12,216,117,221,60,0,12,216,118,221,60,0,12,216,119,221,60,0,12,216,120,221,60,0,12,216,121,221,60,0,12,216,122,221,60,0,12,216,123,221,60,0,12,216,124,221,60,0,12,216,125,221,60,0,12,216,126,221,60,0,12,216,127,221,60,0,12,216,128,221,60,0,12,216,129,221,60,0,12,216,130,221,60,0,12,216,131,221,60,0,12,216,132,221,60,0,12,216,133,221,60,0,12,216,134,221,60,0,12,216,135,221,60,0,12,216,136,221,60,0,12,216,137,221,60,0,12,216,138,221,60,0,12,216,139,221,60,0,12,216,140,221,60,0,12,216,141,221,60,0,12,216,142,221,60,0,12,216,143,221,60,0,12,216,144,221,60,0,12,216,145,221,60,0,12,216,146,221,60,0,12,216,147,221,60,0,12,216,148,221,60,0,12,216,149,221,60,0,12,216,150,221,60,0,12,216,151,221,60,0,12,216,152,221,60,0,12,216,153,221,60,0,12,216,154,221,60,0,12,216,155,221,60,0,12,216,156,221,60,0,12,216,157,221,60,0,12,216,158,221,60,0,12,216,159,221,60,0,12,216,160,221,60,0,12,216,161,221,60,0,12,216,162,221,60,0,12,216,163,221,60,0,12,216,164,221,60,0,12,216,165,221,60,0,12,216,166,221,60,0,12,216,167,221,60,0,12,216,168,221,60,0,12,216,169,221,60,0,12,216,170,221,60,0,12,216,171,221,60,0,12,216,172,221,60,0,12,216,173,221,60,0,12,216,174,221,60,0,12,216,175,221,60,0,12,216,176,221,60,0,12,216,177,221,60,0,12,216,178,221,60,0,12,216,179,221,60,0,12,216,180,221,60,0,12,216,181,221,60,0,12,216,182,221,60,0,12,216,183,221,60,0,12,216,184,221,60,0,12,216,185,221,60,0,12,216,186,221,60,0,12,216,187,221,60,0,12,216,188,221,60,0,12,216,189,221,60,0,12,216,190,221,60,0,12,216,191,221,60,0,12,216,192,221,60,0,12,216,193,221,60,0,12,216,194,221,60,0,12,216,195,221,60,0,12,216,196,221,60,0,12,216,197,221,60,0,12,216,198,221,60,0,12,216,199,221,60,0,12,216,200,221,60,0,12,216,201,221,60,0,12,216,202,221,60,0,12,216,203,221,60,0,12,216,204,221,60,0,12,216,205,221,60,0,12,216,206,221,60,0,12,216,207,221,60,0,12,216,208,221,60,0,12,216,209,221,60,0,12,216,210,221,60,0,12,216,211,221,60,0,12,216,212,221,60,0,12,216,213,221,60,0,12,216,214,221,60,0,12,216,215,221,60,0,12,216,216,221,60,0,12,216,217,221,60,0,12,216,218,221,60,0,12,216,219,221,60,0,12,216,220,221,60,0,12,216,221,221,60,0,12,216,222,221,60,0,12,216,223,221,60,0,12,216,224,221,60,0,12,216,225,221,60,0,12,216,226,221,60,0,12,216,227,221,60,0,12,216,228,221,60,0,12,216,229,221,60,0,12,216,230,221,60,0,12,216,231,221,60,0,12,216,232,221,60,0,12,216,233,221,60,0,12,216,234,221,60,0,12,216,235,221,60,0,12,216,236,221,60,0,12,216,237,221,60,0,12,216,238,221,60,0,12,216,239,221,60,0,12,216,240,221,60,0,12,216,241,221,60,0,12,216,242,221,60,0,12,216,243,221,60,0,12,216,244,221,60,0,12,216,245,221,60,0,12,216,246,221,60,0,12,216,247,221,60,0,12,216,248,221,60,0,12,216,249,221,60,0,12,216,250,221,60,0,12,216,251,221,60,0,12,216,252,221,60,0,12,216,253,221,60,0,12,216,254,221,60,0,12,216,255,221,60,0,12,216,0,222,60,0,12,216,1,222,60,0,12,216,2,222,60,0,12,216,3,222,60,0,12,216,4,222,60,0,12,216,5,222,60,0,12,216,6,222,60,0,12,216,7,222,60,0,12,216,8,222,60,0,12,216,9,222,60,0,12,216,10,222,60,0,12,216,11,222,60,0,12,216,12,222,60,0,12,216,13,222,60,0,12,216,14,222,60,0,12,216,15,222,60,0,12,216,16,222,60,0,12,216,17,222,60,0,12,216,18,222,60,0,12,216,19,222,60,0,12,216,20,222,60,0,12,216,21,222,60,0,12,216,22,222,60,0,12,216,23,222,60,0,12,216,24,222,60,0,12,216,25,222,60,0,12,216,26,222,60,0,12,216,27,222,60,0,12,216,28,222,60,0,12,216,29,222,60,0,12,216,30,222,60,0,12,216,31,222,60,0,12,216,32,222,60,0,12,216,33,222,60,0,12,216,34,222,60,0,12,216,35,222,60,0,12,216,36,222,60,0,12,216,37,222,60,0,12,216,38,222,60,0,12,216,39,222,60,0,12,216,40,222,60,0,12,216,41,222,60,0,12,216,42,222,60,0,12,216,43,222,60,0,12,216,44,222,60,0,12,216,45,222,60,0,12,216,46,222,60,0,12,216,47,222,60,0,12,216,48,222,60,0,12,216,49,222,60,0,12,216,50,222,60,0,12,216,51,222,60,0,12,216,52,222,60,0,12,216,53,222,60,0,12,216,54,222,60,0,12,216,55,222,60,0,12,216,56,222,60,0,12,216,57,222,60,0,12,216,58,222,60,0,12,216,59,222,60,0,12,216,60,222,60,0,12,216,61,222,60,0,12,216,62,222,60,0,12,216,63,222,60,0,12,216,64,222,60,0,12,216,65,222,60,0,12,216,66,222,60,0,12,216,67,222,60,0,12,216,68,222,60,0,12,216,69,222,60,0,12,216,70,222,60,0,12,216,71,222,60,0,12,216,72,222,60,0,12,216,73,222,60,0,12,216,74,222,60,0,12,216,75,222,60,0,12,216,76,222,60,0,12,216,77,222,60,0,12,216,78,222,60,0,12,216,79,222,60,0,12,216,80,222,60,0,12,216,81,222,60,0,12,216,82,222,60,0,12,216,83,222,60,0,12,216,84,222,60,0,12,216,85,222,60,0,12,216,86,222,60,0,12,216,87,222,60,0,12,216,88,222,60,0,12,216,89,222,60,0,12,216,90,222,60,0,12,216,91,222,60,0,12,216,92,222,60,0,12,216,93,222,60,0,12,216,94,222,60,0,12,216,95,222,60,0,12,216,96,222,60,0,12,216,97,222,60,0,12,216,98,222,60,0,12,216,99,222,60,0,12,216,100,222,60,0,12,216,101,222,60,0,12,216,102,222,60,0,12,216,103,222,60,0,12,216,104,222,60,0,12,216,105,222,60,0,12,216,106,222,60,0,12,216,107,222,60,0,12,216,108,222,60,0,12,216,109,222,60,0,12,216,110,222,60,0,12,216,111,222,60,0,12,216,112,222,60,0,12,216,113,222,60,0,12,216,114,222,60,0,12,216,115,222,60,0,12,216,116,222,60,0,12,216,117,222,60,0,12,216,118,222,60,0,12,216,119,222,60,0,12,216,120,222,60,0,12,216,121,222,60,0,12,216,122,222,60,0,12,216,123,222,60,0,12,216,124,222,60,0,12,216,125,222,60,0,12,216,126,222,60,0,12,216,127,222,60,0,12,216,128,222,60,0,12,216,129,222,60,0,12,216,130,222,60,0,12,216,131,222,60,0,12,216,132,222,60,0,12,216,133,222,60,0,12,216,134,222,60,0,12,216,135,222,60,0,12,216,136,222,60,0,12,216,137,222,60,0,12,216,138,222,60,0,12,216,139,222,60,0,12,216,140,222,60,0,12,216,141,222,60,0,12,216,142,222,60,0,12,216,143,222,60,0,12,216,144,222,60,0,12,216,145,222,60,0,12,216,146,222,60,0,12,216,147,222,60,0,12,216,148,222,60,0,12,216,149,222,60,0,12,216,150,222,60,0,12,216,151,222,60,0,12,216,152,222,60,0,12,216,153,222,60,0,12,216,154,222,60,0,12,216,155,222,60,0,12,216,156,222,60,0,12,216,157,222,60,0,12,216,158,222,60,0,12,216,159,222,60,0,12,216,160,222,60,0,12,216,161,222,60,0,12,216,162,222,60,0,12,216,163,222,60,0,12,216,164,222,60,0,12,216,165,222,60,0,12,216,166,222,60,0,12,216,167,222,60,0,12,216,168,222,60,0,12,216,169,222,60,0,12,216,170,222,60,0,12,216,171,222,60,0,12,216,172,222,60,0,12,216,173,222,60,0,12,216,174,222,60,0,12,216,175,222,60,0,12,216,176,222,60,0,12,216,177,222,60,0,12,216,178,222,60,0,12,216,179,222,60,0,12,216,180,222,60,0,12,216,181,222,60,0,12,216,182,222,60,0,12,216,183,222,60,0,12,216,184,222,60,0,12,216,185,222,60,0,12,216,186,222,60,0,12,216,187,222,60,0,12,216,188,222,60,0,12,216,189,222,60,0,12,216,190,222,60,0,12,216,191,222,60,0,12,216,192,222,60,0,12,216,193,222,60,0,12,216,194,222,60,0,12,216,195,222,60,0,12,216,196,222,60,0,12,216,197,222,60,0,12,216,198,222,60,0,12,216,199,222,60,0,12,216,200,222,60,0,12,216,201,222,60,0,12,216,202,222,60,0,12,216,203,222,60,0,12,216,204,222,60,0,12,216,205,222,60,0,12,216,206,222,60,0,12,216,207,222,60,0,12,216,208,222,60,0,12,216,209,222,60,0,12,216,210,222,60,0,12,216,211,222,60,0,12,216,212,222,60,0,12,216,213,222,60,0,12,216,214,222,60,0,12,216,215,222,60,0,12,216,216,222,60,0,12,216,217,222,60,0,12,216,218,222,60,0,12,216,219,222,60,0,12,216,220,222,60,0,12,216,221,222,60,0,12,216,222,222,60,0,12,216,223,222,60,0,12,216,224,222,60,0,12,216,225,222,60,0,12,216,226,222,60,0,12,216,227,222,60,0,12,216,228,222,60,0,12,216,229,222,60,0,12,216,230,222,60,0,12,216,231,222,60,0,12,216,232,222,60,0,12,216,233,222,60,0,12,216,234,222,60,0,12,216,235,222,60,0,12,216,236,222,60,0,12,216,237,222,60,0,12,216,238,222,60,0,12,216,239,222,60,0,12,216,240,222,60,0,12,216,241,222,60,0,12,216,242,222,60,0,12,216,243,222,60,0,12,216,244,222,60,0,12,216,245,222,60,0,12,216,246,222,60,0,12,216,247,222,60,0,12,216,248,222,60,0,12,216,249,222,60,0,12,216,250,222,60,0,12,216,251,222,60,0,12,216,252,222,60,0,12,216,253,222,60,0,12,216,254,222,60,0,12,216,255,222,60,0,12,216,0,223,60,0,12,216,1,223,60,0,12,216,2,223,60,0,12,216,3,223,60,0,12,216,4,223,60,0,12,216,5,223,60,0,12,216,6,223,60,0,12,216,7,223,60,0,12,216,8,223,60,0,12,216,9,223,60,0,12,216,10,223,60,0,12,216,11,223,60,0,12,216,12,223,60,0,12,216,13,223,60,0,12,216,14,223,60,0,12,216,15,223,60,0,12,216,16,223,60,0,12,216,17,223,60,0,12,216,18,223,60,0,12,216,19,223,60,0,12,216,20,223,60,0,12,216,21,223,60,0,12,216,22,223,60,0,12,216,23,223,60,0,12,216,24,223,60,0,12,216,25,223,60,0,12,216,26,223,60,0,12,216,27,223,60,0,12,216,28,223,60,0,12,216,29,223,60,0,12,216,30,223,60,0,12,216,31,223,60,0,12,216,32,223,60,0,12,216,33,223,60,0,12,216,34,223,60,0,12,216,35,223,60,0,12,216,36,223,60,0,12,216,37,223,60,0,12,216,38,223,60,0,12,216,39,223,60,0,12,216,40,223,60,0,12,216,41,223,60,0,12,216,42,223,60,0,12,216,43,223,60,0,12,216,44,223,60,0,12,216,45,223,60,0,12,216,46,223,60,0,12,216,47,223,60,0,12,216,48,223,60,0,12,216,49,223,60,0,12,216,50,223,60,0,12,216,51,223,60,0,12,216,52,223,60,0,12,216,53,223,60,0,12,216,54,223,60,0,12,216,55,223,60,0,12,216,56,223,60,0,12,216,57,223,60,0,12,216,58,223,60,0,12,216,59,223,60,0,12,216,60,223,60,0,12,216,61,223,60,0,12,216,62,223,60,0,12,216,63,223,60,0,12,216,64,223,60,0,12,216,65,223,60,0,12,216,66,223,60,0,12,216,67,223,60,0,12,216,68,223,60,0,12,216,69,223,60,0,12,216,70,223,60,0,12,216,71,223,60,0,12,216,72,223,60,0,12,216,73,223,60,0,12,216,74,223,60,0,12,216,75,223,60,0,12,216,76,223,60,0,12,216,77,223,60,0,12,216,78,223,60,0,12,216,79,223,60,0,12,216,80,223,60,0,12,216,81,223,60,0,12,216,82,223,60,0,12,216,83,223,60,0,12,216,84,223,60,0,12,216,85,223,60,0,12,216,86,223,60,0,12,216,87,223,60,0,12,216,88,223,60,0,12,216,89,223,60,0,12,216,90,223,60,0,12,216,91,223,60,0,12,216,92,223,60,0,12,216,93,223,60,0,12,216,94,223,60,0,12,216,95,223,60,0,12,216,96,223,60,0,12,216,97,223,60,0,12,216,98,223,60,0,12,216,99,223,60,0,12,216,100,223,60,0,12,216,101,223,60,0,12,216,102,223,60,0,12,216,103,223,60,0,12,216,104,223,60,0,12,216,105,223,60,0,12,216,106,223,60,0,12,216,107,223,60,0,12,216,108,223,60,0,12,216,109,223,60,0,12,216,110,223,60,0,12,216,111,223,60,0,12,216,112,223,60,0,12,216,113,223,60,0,12,216,114,223,60,0,12,216,115,223,60,0,12,216,116,223,60,0,12,216,117,223,60,0,12,216,118,223,60,0,12,216,119,223,60,0,12,216,120,223,60,0,12,216,121,223,60,0,12,216,122,223,60,0,12,216,123,223,60,0,12,216,124,223,60,0,12,216,125,223,60,0,12,216,126,223,60,0,12,216,127,223,60,0,12,216,128,223,60,0,12,216,129,223,60,0,12,216,130,223,60,0,12,216,131,223,60,0,12,216,132,223,60,0,12,216,133,223,60,0,12,216,134,223,60,0,12,216,135,223,60,0,12,216,136,223,60,0,12,216,137,223,60,0,12,216,138,223,60,0,12,216,139,223,60,0,12,216,140,223,60,0,12,216,141,223,60,0,12,216,142,223,60,0,12,216,143,223,60,0,12,216,144,223,60,0,12,216,145,223,60,0,12,216,146,223,60,0,12,216,147,223,60,0,12,216,148,223,60,0,12,216,149,223,60,0,12,216,150,223,60,0,12,216,151,223,60,0,12,216,152,223,60,0,12,216,153,223,60,0,12,216,154,223,60,0,12,216,155,223,60,0,12,216,156,223,60,0,12,216,157,223,60,0,12,216,158,223,60,0,12,216,159,223,60,0,12,216,160,223,60,0,12,216,161,223,60,0,12,216,162,223,60,0,12,216,163,223,60,0,12,216,164,223,60,0,12,216,165,223,60,0,12,216,166,223,60,0,12,216,167,223,60,0,12,216,168,223,60,0,12,216,169,223,60,0,12,216,170,223,60,0,12,216,171,223,60,0,12,216,172,223,60,0,12,216,173,223,60,0,12,216,174,223,60,0,12,216,175,223,60,0,12,216,176,223,60,0,12,216,177,223,60,0,12,216,178,223,60,0,12,216,179,223,60,0,12,216,180,223,60,0,12,216,181,223,60,0,12,216,182,223,60,0,12,216,183,223,60,0,12,216,184,223,60,0,12,216,185,223,60,0,12,216,186,223,60,0,12,216,187,223,60,0,12,216,188,223,60,0,12,216,189,223,60,0,12,216,190,223,60,0,12,216,191,223,60,0,12,216,192,223,60,0,12,216,193,223,60,0,12,216,194,223,60,0,12,216,195,223,60,0,12,216,196,223,60,0,12,216,197,223,60,0,12,216,198,223,60,0,12,216,199,223,60,0,12,216,200,223,60,0,12,216,201,223,60,0,12,216,202,223,60,0,12,216,203,223,60,0,12,216,204,223,60,0,12,216,205,223,60,0,12,216,206,223,60,0,12,216,207,223,60,0,12,216,208,223,60,0,12,216,209,223,60,0,12,216,210,223,60,0,12,216,211,223,60,0,12,216,212,223,60,0,12,216,213,223,60,0,12,216,214,223,60,0,12,216,215,223,60,0,12,216,216,223,60,0,12,216,217,223,60,0,12,216,218,223,60,0,12,216,219,223,60,0,12,216,220,223,60,0,12,216,221,223,60,0,12,216,222,223,60,0,12,216,223,223,60,0,12,216,224,223,60,0,12,216,225,223,60,0,12,216,226,223,60,0,12,216,227,223,60,0,12,216,228,223,60,0,12,216,229,223,60,0,12,216,230,223,60,0,12,216,231,223,60,0,12,216,232,223,60,0,12,216,233,223,60,0,12,216,234,223,60,0,12,216,235,223,60,0,12,216,236,223,60,0,12,216,237,223,60,0,12,216,238,223,60,0,12,216,239,223,60,0,12,216,240,223,60,0,12,216,241,223,60,0,12,216,242,223,60,0,12,216,243,223,60,0,12,216,244,223,60,0,12,216,245,223,60,0,12,216,246,223,60,0,12,216,247,223,60,0,12,216,248,223,60,0,12,216,249,223,60,0,12,216,250,223,60,0,12,216,251,223,60,0,12,216,252,223,60,0,12,216,253,223,60,0,12,216,254,223,60,0,12,216,255,223,60,0,13,216,0,220,60,0,13,216,1,220,60,0,13,216,2,220,60,0,13,216,3,220,60,0,13,216,4,220,60,0,13,216,5,220,60,0,13,216,6,220,60,0,13,216,7,220,60,0,13,216,8,220,60,0,13,216,9,220,60,0,13,216,10,220,60,0,13,216,11,220,60,0,13,216,12,220,60,0,13,216,13,220,60,0,13,216,14,220,60,0,13,216,15,220,60,0,13,216,16,220,60,0,13,216,17,220,60,0,13,216,18,220,60,0,13,216,19,220,60,0,13,216,20,220,60,0,13,216,21,220,60,0,13,216,22,220,60,0,13,216,23,220,60,0,13,216,24,220,60,0,13,216,25,220,60,0,13,216,26,220,60,0,13,216,27,220,60,0,13,216,28,220,60,0,13,216,29,220,60,0,13,216,30,220,60,0,13,216,31,220,60,0,13,216,32,220,60,0,13,216,33,220,60,0,13,216,34,220,60,0,13,216,35,220,60,0,13,216,36,220,60,0,13,216,37,220,60,0,13,216,38,220,60,0,13,216,39,220,60,0,13,216,40,220,60,0,13,216,41,220,60,0,13,216,42,220,60,0,13,216,43,220,60,0,13,216,44,220,60,0,13,216,45,220,60,0,13,216,46,220,60,0,13,216,47,220,60,0,13,216,65,220,60,0,13,216,66,220,60,0,13,216,67,220,60,0,13,216,68,220,60,0,13,216,69,220,60,0,13,216,70,220,60,0,14,32,2,216,160,221,14,32,60,0,60,0,14,32,2,216,128,221,14,32,60,0,14,32,2,216,161,221,14,32,60,0,60,0,14,32,2,216,129,221,14,32,60,0,14,32,2,216,162,221,14,32,60,0,60,0,14,32,2,216,130,221,14,32,60,0,14,32,2,216,163,221,14,32,60,0,60,0,14,32,2,216,131,221,14,32,60,0,14,32,2,216,164,221,14,32,60,0,60,0,14,32,2,216,132,221,14,32,60,0,14,32,2,216,165,221,14,32,60,0,60,0,14,32,2,216,133,221,14,32,60,0,14,32,2,216,166,221,14,32,60,0,60,0,14,32,2,216,134,221,14,32,60,0,60,0,14,32,2,216,135,221,14,32,60,0,14,32,2,216,167,221,14,32,60,0,60,0,14,32,2,216,136,221,14,32,60,0,14,32,2,216,168,221,14,32,60,0,60,0,14,32,2,216,137,221,14,32,60,0,14,32,2,216,169,221,14,32,60,0,60,0,14,32,2,216,138,221,14,32,60,0,60,0,14,32,2,216,139,221,14,32,60,0,14,32,2,216,170,221,14,32,60,0,60,0,14,32,2,216,140,221,14,32,60,0,60,0,14,32,2,216,141,221,14,32,60,0,14,32,2,216,171,221,14,32,60,0,60,0,14,32,2,216,142,221,14,32,60,0,60,0,14,32,2,216,143,221,14,32,60,0,14,32,2,216,172,221,14,32,60,0,60,0,14,32,2,216,144,221,14,32,60,0,14,32,2,216,173,221,14,32,60,0,60,0,14,32,2,216,145,221,14,32,60,0,14,32,2,216,174,221,14,32,60,0,60,0,14,32,2,216,146,221,14,32,60,0,14,32,2,216,175,221,14,32,60,0,60,0,14,32,2,216,176,221,14,32,60,0,60,0,14,32,2,216,147,221,14,32,60,0,60,0,14,32,2,216,148,221,14,32,60,0,14,32,2,216,177,221,14,32,60,0,60,0,14,32,2,216,149,221,14,32,60,0,14,32,2,216,178,221,14,32,60,0,60,0,14,32,2,216,150,221,14,32,60,0,14,32,2,216,179,221,14,32,60,0,60,0,14,32,2,216,151,221,14,32,60,0,14,32,2,216,180,221,14,32,60,0,60,0,14,32,2,216,152,221,14,32,60,0,60,0,14,32,2,216,153,221,14,32,60,0,14,32,2,216,181,221,14,32,60,0,60,0,14,32,2,216,154,221,14,32,60,0,60,0,14,32,2,216,155,221,14,32,60,0,14,32,2,216,182,221,14,32,60,0,60,0,14,32,2,216,156,221,14,32,60,0,14,32,2,216,183,221,14,32,60,0,60,0,14,32,2,216,157,221,14,32,60,0,14,32,2,216,190,221,14,32,60,0,14,32,2,216,191,221,14,32,60,0,14,32,2,216,158,221,14,32,60,0,14,32,2,216,159,221,14,32,60,0,17,216,0,220,60,0,17,216,1,220,60,0,17,216,2,220,60,0,17,216,3,220,60,0,17,216,4,220,60,0,17,216,5,220,60,0,17,216,6,220,60,0,17,216,7,220,60,0,17,216,8,220,60,0,17,216,9,220,60,0,17,216,10,220,60,0,17,216,11,220,60,0,17,216,12,220,60,0,17,216,13,220,60,0,17,216,14,220,60,0,17,216,15,220,60,0,17,216,16,220,60,0,17,216,17,220,60,0,17,216,18,220,60,0,17,216,19,220,60,0,17,216,20,220,60,0,17,216,21,220,60,0,17,216,22,220,60,0,17,216,23,220,60,0,17,216,24,220,60,0,17,216,25,220,60,0,17,216,26,220,60,0,17,216,27,220,60,0,17,216,28,220,60,0,17,216,29,220,60,0,17,216,30,220,60,0,17,216,31,220,60,0,17,216,32,220,60,0,17,216,33,220,60,0,17,216,34,220,60,0,17,216,35,220,60,0,17,216,36,220,60,0,17,216,37,220,60,0,17,216,38,220,60,0,17,216,39,220,60,0,17,216,40,220,60,0,17,216,41,220,60,0,17,216,42,220,60,0,17,216,43,220,60,0,17,216,44,220,60,0,17,216,45,220,60,0,17,216,46,220,60,0,17,216,47,220,60,0,17,216,48,220,60,0,17,216,49,220,60,0,17,216,50,220,60,0,17,216,51,220,60,0,17,216,52,220,60,0,17,216,53,220,60,0,17,216,54,220,60,0,17,216,55,220,60,0,17,216,56,220,60,0,17,216,57,220,60,0,17,216,58,220,60,0,17,216,59,220,60,0,17,216,60,220,60,0,17,216,61,220,60,0,17,216,62,220,60,0,17,216,63,220,60,0,17,216,64,220,60,0,17,216,65,220,60,0,17,216,66,220,60,0,17,216,67,220,60,0,17,216,68,220,60,0,17,216,69,220,60,0,17,216,70,220,60,0,17,216,71,220,60,0,17,216,72,220,60,0,17,216,73,220,60,0,17,216,74,220,60,0,17,216,75,220,60,0,17,216,76,220,60,0,17,216,77,220,60,0,17,216,78,220,60,0,17,216,79,220,60,0,17,216,80,220,60,0,17,216,81,220,60,0,17,216,82,220,60,0,17,216,83,220,60,0,17,216,84,220,60,0,17,216,85,220,60,0,17,216,86,220,60,0,17,216,87,220,60,0,17,216,88,220,60,0,17,216,89,220,60,0,17,216,90,220,60,0,17,216,91,220,60,0,17,216,92,220,60,0,17,216,93,220,60,0,17,216,94,220,60,0,17,216,95,220,60,0,17,216,96,220,60,0,17,216,97,220,60,0,17,216,98,220,60,0,17,216,99,220,60,0,17,216,100,220,60,0,17,216,101,220,60,0,17,216,102,220,60,0,17,216,103,220,60,0,17,216,104,220,60,0,17,216,105,220,60,0,17,216,106,220,60,0,17,216,107,220,60,0,17,216,108,220,60,0,17,216,109,220,60,0,17,216,110,220,60,0,17,216,111,220,60,0,17,216,112,220,60,0,17,216,113,220,60,0,17,216,114,220,60,0,17,216,115,220,60,0,17,216,116,220,60,0,17,216,117,220,60,0,17,216,118,220,60,0,17,216,119,220,60,0,17,216,120,220,60,0,17,216,121,220,60,0,17,216,122,220,60,0,17,216,123,220,60,0,17,216,124,220,60,0,17,216,125,220,60,0,17,216,126,220,60,0,17,216,127,220,60,0,17,216,128,220,60,0,17,216,129,220,60,0,17,216,130,220,60,0,17,216,131,220,60,0,17,216,132,220,60,0,17,216,133,220,60,0,17,216,134,220,60,0,17,216,135,220,60,0,17,216,136,220,60,0,17,216,137,220,60,0,17,216,138,220,60,0,17,216,139,220,60,0,17,216,140,220,60,0,17,216,141,220,60,0,17,216,142,220,60,0,17,216,143,220,60,0,17,216,144,220,60,0,17,216,145,220,60,0,17,216,146,220,60,0,17,216,147,220,60,0,17,216,148,220,60,0,17,216,149,220,60,0,17,216,150,220,60,0,17,216,151,220,60,0,17,216,152,220,60,0,17,216,153,220,60,0,17,216,154,220,60,0,17,216,155,220,60,0,17,216,156,220,60,0,17,216,157,220,60,0,17,216,158,220,60,0,17,216,159,220,60,0,17,216,160,220,60,0,17,216,161,220,60,0,17,216,162,220,60,0,17,216,163,220,60,0,17,216,164,220,60,0,17,216,165,220,60,0,17,216,166,220,60,0,17,216,167,220,60,0,17,216,168,220,60,0,17,216,169,220,60,0,17,216,170,220,60,0,17,216,171,220,60,0,17,216,172,220,60,0,17,216,173,220,60,0,17,216,174,220,60,0,17,216,175,220,60,0,17,216,176,220,60,0,17,216,177,220,60,0,17,216,178,220,60,0,17,216,179,220,60,0,17,216,180,220,60,0,17,216,181,220,60,0,17,216,182,220,60,0,17,216,183,220,60,0,17,216,184,220,60,0,17,216,185,220,60,0,17,216,186,220,60,0,17,216,187,220,60,0,17,216,188,220,60,0,17,216,189,220,60,0,17,216,190,220,60,0,17,216,191,220,60,0,17,216,192,220,60,0,17,216,193,220,60,0,17,216,194,220,60,0,17,216,195,220,60,0,17,216,196,220,60,0,17,216,197,220,60,0,17,216,198,220,60,0,17,216,199,220,60,0,17,216,200,220,60,0,17,216,201,220,60,0,17,216,202,220,60,0,17,216,203,220,60,0,17,216,204,220,60,0,17,216,205,220,60,0,17,216,206,220,60,0,17,216,207,220,60,0,17,216,208,220,60,0,17,216,209,220,60,0,17,216,210,220,60,0,17,216,211,220,60,0,17,216,212,220,60,0,17,216,213,220,60,0,17,216,214,220,60,0,17,216,215,220,60,0,17,216,216,220,60,0,17,216,217,220,60,0,17,216,218,220,60,0,17,216,219,220,60,0,17,216,220,220,60,0,17,216,221,220,60,0,17,216,222,220,60,0,17,216,223,220,60,0,17,216,224,220,60,0,17,216,225,220,60,0,17,216,226,220,60,0,17,216,227,220,60,0,17,216,228,220,60,0,17,216,229,220,60,0,17,216,230,220,60,0,17,216,231,220,60,0,17,216,232,220,60,0,17,216,233,220,60,0,17,216,234,220,60,0,17,216,235,220,60,0,17,216,236,220,60,0,17,216,237,220,60,0,17,216,238,220,60,0,17,216,239,220,60,0,17,216,240,220,60,0,17,216,241,220,60,0,17,216,242,220,60,0,17,216,243,220,60,0,17,216,244,220,60,0,17,216,245,220,60,0,17,216,246,220,60,0,17,216,247,220,60,0,17,216,248,220,60,0,17,216,249,220,60,0,17,216,250,220,60,0,17,216,251,220,60,0,17,216,252,220,60,0,17,216,253,220,60,0,17,216,254,220,60,0,17,216,255,220,60,0,17,216,0,221,60,0,17,216,1,221,60,0,17,216,2,221,60,0,17,216,3,221,60,0,17,216,4,221,60,0,17,216,5,221,60,0,17,216,6,221,60,0,17,216,7,221,60,0,17,216,8,221,60,0,17,216,9,221,60,0,17,216,10,221,60,0,17,216,11,221,60,0,17,216,12,221,60,0,17,216,13,221,60,0,17,216,14,221,60,0,17,216,15,221,60,0,17,216,16,221,60,0,17,216,17,221,60,0,17,216,18,221,60,0,17,216,19,221,60,0,17,216,20,221,60,0,17,216,21,221,60,0,17,216,22,221,60,0,17,216,23,221,60,0,17,216,24,221,60,0,17,216,25,221,60,0,17,216,26,221,60,0,17,216,27,221,60,0,17,216,28,221,60,0,17,216,29,221,60,0,17,216,30,221,60,0,17,216,31,221,60,0,17,216,32,221,60,0,17,216,33,221,60,0,17,216,34,221,60,0,17,216,35,221,60,0,17,216,36,221,60,0,17,216,37,221,60,0,17,216,38,221,60,0,17,216,39,221,60,0,17,216,40,221,60,0,17,216,41,221,60,0,17,216,42,221,60,0,17,216,43,221,60,0,17,216,44,221,60,0,17,216,45,221,60,0,17,216,46,221,60,0,17,216,47,221,60,0,17,216,48,221,60,0,17,216,49,221,60,0,17,216,50,221,60,0,17,216,51,221,60,0,17,216,52,221,60,0,17,216,53,221,60,0,17,216,54,221,60,0,17,216,55,221,60,0,17,216,56,221,60,0,17,216,57,221,60,0,17,216,58,221,60,0,17,216,59,221,60,0,17,216,60,221,60,0,17,216,61,221,60,0,17,216,62,221,60,0,17,216,63,221,60,0,17,216,64,221,60,0,17,216,65,221,60,0,17,216,66,221,60,0,17,216,67,221,60,0,17,216,68,221,60,0,17,216,69,221,60,0,17,216,70,221,60,0,17,216,71,221,60,0,17,216,72,221,60,0,17,216,73,221,60,0,17,216,74,221,60,0,17,216,75,221,60,0,17,216,76,221,60,0,17,216,77,221,60,0,17,216,78,221,60,0,17,216,79,221,60,0,17,216,80,221,60,0,17,216,81,221,60,0,17,216,82,221,60,0,17,216,83,221,60,0,17,216,84,221,60,0,17,216,85,221,60,0,17,216,86,221,60,0,17,216,87,221,60,0,17,216,88,221,60,0,17,216,89,221,60,0,17,216,90,221,60,0,17,216,91,221,60,0,17,216,92,221,60,0,17,216,93,221,60,0,17,216,94,221,60,0,17,216,95,221,60,0,17,216,96,221,60,0,17,216,97,221,60,0,17,216,98,221,60,0,17,216,99,221,60,0,17,216,100,221,60,0,17,216,101,221,60,0,17,216,102,221,60,0,17,216,103,221,60,0,17,216,104,221,60,0,17,216,105,221,60,0,17,216,106,221,60,0,17,216,107,221,60,0,17,216,108,221,60,0,17,216,109,221,60,0,17,216,110,221,60,0,17,216,111,221,60,0,17,216,112,221,60,0,17,216,113,221,60,0,17,216,114,221,60,0,17,216,115,221,60,0,17,216,116,221,60,0,17,216,117,221,60,0,17,216,118,221,60,0,17,216,119,221,60,0,17,216,120,221,60,0,17,216,121,221,60,0,17,216,122,221,60,0,17,216,123,221,60,0,17,216,124,221,60,0,17,216,125,221,60,0,17,216,126,221,60,0,17,216,127,221,60,0,17,216,128,221,60,0,17,216,129,221,60,0,17,216,130,221,60,0,17,216,131,221,60,0,17,216,132,221,60,0,17,216,133,221,60,0,17,216,134,221,60,0,17,216,135,221,60,0,17,216,136,221,60,0,17,216,137,221,60,0,17,216,138,221,60,0,17,216,139,221,60,0,17,216,140,221,60,0,17,216,141,221,60,0,17,216,142,221,60,0,17,216,143,221,60,0,17,216,144,221,60,0,17,216,145,221,60,0,17,216,146,221,60,0,17,216,147,221,60,0,17,216,148,221,60,0,17,216,149,221,60,0,17,216,150,221,60,0,17,216,151,221,60,0,17,216,152,221,60,0,17,216,153,221,60,0,17,216,154,221,60,0,17,216,155,221,60,0,17,216,156,221,60,0,17,216,157,221,60,0,17,216,158,221,60,0,17,216,159,221,60,0,17,216,160,221,60,0,17,216,161,221,60,0,17,216,162,221,60,0,17,216,163,221,60,0,17,216,164,221,60,0,17,216,165,221,60,0,17,216,166,221,60,0,17,216,167,221,60,0,17,216,168,221,60,0,17,216,169,221,60,0,17,216,170,221,60,0,17,216,171,221,60,0,17,216,172,221,60,0,17,216,173,221,60,0,17,216,174,221,60,0,17,216,175,221,60,0,17,216,176,221,60,0,17,216,177,221,60,0,17,216,178,221,60,0,17,216,179,221,60,0,17,216,180,221,60,0,17,216,181,221,60,0,17,216,182,221,60,0,17,216,183,221,60,0,17,216,184,221,60,0,17,216,185,221,60,0,17,216,186,221,60,0,17,216,187,221,60,0,17,216,188,221,60,0,17,216,189,221,60,0,17,216,190,221,60,0,17,216,191,221,60,0,17,216,192,221,60,0,17,216,193,221,60,0,17,216,194,221,60,0,17,216,195,221,60,0,17,216,196,221,60,0,17,216,197,221,60,0,17,216,198,221,60,0,17,216,199,221,60,0,17,216,200,221,60,0,17,216,201,221,60,0,17,216,202,221,60,0,17,216,203,221,60,0,17,216,204,221,60,0,17,216,205,221,60,0,17,216,206,221,60,0,17,216,207,221,60,0,17,216,208,221,60,0,17,216,209,221,60,0,17,216,210,221,60,0,17,216,211,221,60,0,17,216,212,221,60,0,17,216,213,221,60,0,17,216,214,221,60,0,17,216,215,221,60,0,17,216,216,221,60,0,17,216,217,221,60,0,17,216,218,221,60,0,17,216,219,221,60,0,17,216,220,221,60,0,17,216,221,221,60,0,17,216,222,221,60,0,17,216,223,221,60,0,17,216,224,221,60,0,17,216,225,221,60,0,17,216,226,221,60,0,17,216,227,221,60,0,17,216,228,221,60,0,17,216,229,221,60,0,17,216,230,221,60,0,17,216,231,221,60,0,17,216,232,221,60,0,17,216,233,221,60,0,17,216,234,221,60,0,17,216,235,221,60,0,17,216,236,221,60,0,17,216,237,221,60,0,17,216,238,221,60,0,17,216,239,221,60,0,17,216,240,221,60,0,17,216,241,221,60,0,17,216,242,221,60,0,17,216,243,221,60,0,17,216,244,221,60,0,17,216,245,221,60,0,17,216,246,221,60,0,17,216,247,221,60,0,17,216,248,221,60,0,17,216,249,221,60,0,17,216,250,221,60,0,17,216,251,221,60,0,17,216,252,221,60,0,17,216,253,221,60,0,17,216,254,221,60,0,17,216,255,221,60,0,17,216,0,222,60,0,17,216,1,222,60,0,17,216,2,222,60,0,17,216,3,222,60,0,17,216,4,222,60,0,17,216,5,222,60,0,17,216,6,222,60,0,17,216,7,222,60,0,17,216,8,222,60,0,17,216,9,222,60,0,17,216,10,222,60,0,17,216,11,222,60,0,17,216,12,222,60,0,17,216,13,222,60,0,17,216,14,222,60,0,17,216,15,222,60,0,17,216,16,222,60,0,17,216,17,222,60,0,17,216,18,222,60,0,17,216,19,222,60,0,17,216,20,222,60,0,17,216,21,222,60,0,17,216,22,222,60,0,17,216,23,222,60,0,17,216,24,222,60,0,17,216,25,222,60,0,17,216,26,222,60,0,17,216,27,222,60,0,17,216,28,222,60,0,17,216,29,222,60,0,17,216,30,222,60,0,17,216,31,222,60,0,17,216,32,222,60,0,17,216,33,222,60,0,17,216,34,222,60,0,17,216,35,222,60,0,17,216,36,222,60,0,17,216,37,222,60,0,17,216,38,222,60,0,17,216,39,222,60,0,17,216,40,222,60,0,17,216,41,222,60,0,17,216,42,222,60,0,17,216,43,222,60,0,17,216,44,222,60,0,17,216,45,222,60,0,17,216,46,222,60,0,17,216,47,222,60,0,17,216,48,222,60,0,17,216,49,222,60,0,17,216,50,222,60,0,17,216,51,222,60,0,17,216,52,222,60,0,17,216,53,222,60,0,17,216,54,222,60,0,17,216,55,222,60,0,17,216,56,222,60,0,17,216,57,222,60,0,17,216,58,222,60,0,17,216,59,222,60,0,17,216,60,222,60,0,17,216,61,222,60,0,17,216,62,222,60,0,17,216,63,222,60,0,17,216,64,222,60,0,17,216,65,222,60,0,17,216,66,222,60,0,17,216,67,222,60,0,17,216,68,222,60,0,17,216,69,222,60,0,17,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,60,0,60,0,60,0,128,50,60,0,60,0,60,0,146,49,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,130,50,60,0,60,0,60,0,148,49,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,164,50,60,0,60,0,60,0,150,49,38,0,11,78,60,0,60,0,60,0,166,50,60,0,60,0,60,0,152,49,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,44,78,60,0,60,0,60,0,166,46,38,0,45,78,60,0,60,0,60,0,165,50,60,0,60,0,60,0,151,49,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,60,0,60,0,128,46,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,60,0,60,0,60,0,154,49,60,0,60,0,132,46,38,0,90,78,60,0,60,0,60,0,131,46,38,0,91,78,60,0,60,0,60,0,130,46,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,60,0,60,0,60,0,129,50,60,0,60,0,60,0,147,49,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,60,0,60,0,60,0,159,49,38,0,187,78,60,0,60,0,60,0,133,46,38,0,228,78,60,0,255,50,47,0,140,84,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,60,0,60,0,134,46,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,60,0,60,0,135,46,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,60,0,60,0,136,46,38,0,2,82,60,0,60,0,60,0,137,46,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,61,0,56,48,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,60,0,60,0,138,46,38,0,105,83,60,0,60,0,60,0,25,47,60,0,60,0,139,46,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,60,0,60,0,129,46,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,131,50,60,0,60,0,60,0,149,49,38,0,31,87,60,0,60,0,60,0,31,47,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,60,0,60,0,60,0,125,51,47,0,99,107,38,0,41,89,60,0,60,0,60,0,157,49,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,60,0,60,0,140,46,60,0,60,0,141,46,38,0,34,92,60,0,60,0,60,0,144,46,61,0,42,47,60,0,60,0,142,46,38,0,35,92,60,0,60,0,60,0,143,46,60,0,60,0,145,46,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,243,93,60,0,60,0,60,0,146,46,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,60,0,123,51,47,0,16,98,38,0,122,94,60,0,60,0,60,0,147,46,61,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,60,0,60,0,149,46,38,0,81,95,60,0,60,0,60,0,148,46,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,60,0,60,0,151,46,38,0,196,95,60,0,60,0,60,0,150,46,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,60,0,60,0,60,0,60,216,16,222,38,0,76,98,60,0,60,0,60,0,152,46,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,53,101,60,0,60,0,60,0,153,46,38,0,135,101,60,0,60,0,60,0,66,47,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,225,101,60,0,60,0,60,0,155,46,38,0,229,101,60,0,60,0,60,0,71,47,60,0,60,0,60,0,144,50,60,0,60,0,156,46,38,0,14,102,60,0,126,51,47,0,187,108,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,60,0,124,51,47,0,140,84,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,60,0,60,0,60,0,138,50,60,0,60,0,60,0,60,216,55,222,60,0,60,0,157,46,38,0,9,103,60,0,60,0,60,0,146,50,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,60,0,60,0,60,0,127,51,47,0,15,95,26,79,62,121,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,122,107,60,0,60,0,158,46,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,17,108,60,0,60,0,60,0,160,46,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,60,0,60,0,60,0,140,50,38,0,53,108,60,0,60,0,60,0,161,46,38,0,58,108,60,0,60,0,60,0,162,46,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,60,0,60,0,60,0,139,50,38,0,108,112,60,0,60,0,60,0,163,46,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,43,114,60,0,60,0,60,0,164,46,60,0,60,0,165,46,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,60,0,60,0,167,46,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,173,114,60,0,60,0,60,0,168,46,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,139,115,60,0,60,0,169,46,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,60,0,60,0,170,46,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,60,0,60,0,171,46,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,60,0,60,0,172,46,38,0,59,121,60,0,60,0,60,0,173,46,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,60,0,60,0,174,46,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,249,124,60,0,60,0,60,0,175,46,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,159,126,60,0,60,0,60,0,176,46,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,82,127,60,0,60,0,60,0,178,46,60,0,60,0,181,46,38,0,83,127,60,0,60,0,60,0,177,46,60,0,60,0,179,46,60,0,60,0,180,46,38,0,138,127,60,0,60,0,60,0,122,47,60,0,60,0,182,46,60,0,60,0,183,46,38,0,139,127,60,0,60,0,60,0,184,46,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,2,128,60,0,60,0,60,0,185,46,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,60,0,60,0,187,46,38,0,128,128,60,0,60,0,60,0,186,46,38,0,137,128,60,0,60,0,60,0,129,47,60,0,60,0,188,46,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,60,0,60,0,189,46,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,121,130,60,0,60,0,60,0,190,46,60,0,60,0,191,46,60,0,60,0,192,46,38,0,77,134,60,0,60,0,60,0,140,47,38,0,78,134,60,0,60,0,60,0,193,46,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,100,136,60,0,60,0,60,0,194,46,38,0,126,137,60,0,60,0,60,0,145,47,38,0,127,137,60,0,60,0,60,0,196,46,38,0,128,137,60,0,60,0,60,0,195,46,38,0,139,137,60,0,60,0,60,0,146,47,38,0,193,137,60,0,60,0,60,0,197,46,38,0,210,137,60,0,60,0,60,0,198,46,61,0,147,47,60,0,60,0,199,46,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,160,139,60,0,60,0,60,0,200,46,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,29,141,60,0,60,0,60,0,201,46,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,60,0,60,0,202,46,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,102,143,60,0,60,0,60,0,203,46,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,182,143,60,0,60,0,60,0,204,46,60,0,60,0,205,46,60,0,60,0,206,46,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,60,0,60,0,207,46,38,0,73,145,60,0,60,0,60,0,163,47,38,0,77,145,60,0,60,0,60,0,60,216,59,222,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,60,0,60,0,60,0,142,50,38,0,133,148,60,0,60,0,60,0,208,46,38,0,119,149,60,0,60,0,60,0,209,46,61,0,167,47,38,0,120,149,60,0,60,0,60,0,210,46,38,0,127,149,60,0,60,0,60,0,211,46,38,0,128,149,60,0,60,0,60,0,168,47,38,0,232,149,60,0,60,0,60,0,212,46,38,0,28,150,60,0,60,0,60,0,169,47,60,0,60,0,213,46,38,0,29,150,60,0,60,0,60,0,214,46,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,60,0,60,0,215,46,38,0,81,151,60,0,60,0,60,0,173,47,38,0,82,151,60,0,60,0,60,0,216,46,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,230,151,60,0,60,0,60,0,217,46,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,117,152,60,0,60,0,60,0,218,46,38,0,168,152,60,0,60,0,60,0,181,47,38,0,206,152,60,0,60,0,60,0,219,46,38,0,219,152,60,0,60,0,60,0,182,47,38,0,222,152,60,0,60,0,60,0,220,46,38,0,223,152,60,0,60,0,60,0,221,46,61,0,183,47,38,0,224,152,60,0,60,0,60,0,223,46,60,0,60,0,222,46,38,0,99,153,60,0,60,0,60,0,224,46,38,0,150,153,60,0,60,0,60,0,184,47,60,0,60,0,225,46,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,108,154,60,0,60,0,60,0,226,46,38,0,168,154,60,0,60,0,60,0,187,47,60,0,60,0,227,46,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,60,0,60,0,228,46,38,0,90,155,60,0,60,0,60,0,194,47,38,0,124,156,60,0,60,0,60,0,229,46,38,0,229,156,60,0,60,0,60,0,195,47,38,0,31,158,60,0,60,0,60,0,230,46,38,0,117,158,60,0,60,0,60,0,196,47,60,0,60,0,231,46,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,166,158,60,0,60,0,60,0,232,46,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,196,158,60,0,60,0,60,0,233,46,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,254,158,60,0,60,0,60,0,234,46,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,60,0,60,0,235,46,38,0,80,159,60,0,60,0,60,0,236,46,38,0,82,159,60,0,60,0,60,0,210,47,60,0,60,0,237,46,38,0,127,159,60,0,60,0,60,0,238,46,38,0,141,159,60,0,60,0,60,0,211,47,60,0,60,0,239,46,38,0,153,159,60,0,60,0,60,0,240,46,38,0,156,159,60,0,60,0,60,0,212,47,60,0,60,0,241,46,60,0,60,0,242,46,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,38,0,14,250,61,0,14,250,38,0,15,250,61,0,15,250,38,0,17,250,61,0,17,250,38,0,19,250,61,0,19,250,38,0,20,250,61,0,20,250,38,0,31,250,61,0,31,250,38,0,33,250,61,0,33,250,38,0,35,250,61,0,35,250,38,0,36,250,61,0,36,250,38,0,39,250,61,0,39,250,38,0,40,250,61,0,40,250,38,0,41,250,61,0,41,250,38,0,1,14,64,14,61,0,64,14,1,14,38,0,1,14,65,14,61,0,65,14,1,14,38,0,1,14,66,14,61,0,66,14,1,14,38,0,1,14,67,14,61,0,67,14,1,14,38,0,1,14,68,14,61,0,68,14,1,14,38,0,2,14,64,14,61,0,64,14,2,14,38,0,2,14,65,14,61,0,65,14,2,14,38,0,2,14,66,14,61,0,66,14,2,14,38,0,2,14,67,14,61,0,67,14,2,14,38,0,2,14,68,14,61,0,68,14,2,14,38,0,3,14,64,14,61,0,64,14,3,14,38,0,3,14,65,14,61,0,65,14,3,14,38,0,3,14,66,14,61,0,66,14,3,14,38,0,3,14,67,14,61,0,67,14,3,14,38,0,3,14,68,14,61,0,68,14,3,14,38,0,4,14,64,14,61,0,64,14,4,14,38,0,4,14,65,14,61,0,65,14,4,14,38,0,4,14,66,14,61,0,66,14,4,14,38,0,4,14,67,14,61,0,67,14,4,14,38,0,4,14,68,14,61,0,68,14,4,14,38,0,5,14,64,14,61,0,64,14,5,14,38,0,5,14,65,14,61,0,65,14,5,14,38,0,5,14,66,14,61,0,66,14,5,14,38,0,5,14,67,14,61,0,67,14,5,14,38,0,5,14,68,14,61,0,68,14,5,14,38,0,6,14,64,14,61,0,64,14,6,14,38,0,6,14,65,14,61,0,65,14,6,14,38,0,6,14,66,14,61,0,66,14,6,14,38,0,6,14,67,14,61,0,67,14,6,14,38,0,6,14,68,14,61,0,68,14,6,14,38,0,7,14,64,14,61,0,64,14,7,14,38,0,7,14,65,14,61,0,65,14,7,14,38,0,7,14,66,14,61,0,66,14,7,14,38,0,7,14,67,14,61,0,67,14,7,14,38,0,7,14,68,14,61,0,68,14,7,14,38,0,8,14,64,14,61,0,64,14,8,14,38,0,8,14,65,14,61,0,65,14,8,14,38,0,8,14,66,14,61,0,66,14,8,14,38,0,8,14,67,14,61,0,67,14,8,14,38,0,8,14,68,14,61,0,68,14,8,14,38,0,9,14,64,14,61,0,64,14,9,14,38,0,9,14,65,14,61,0,65,14,9,14,38,0,9,14,66,14,61,0,66,14,9,14,38,0,9,14,67,14,61,0,67,14,9,14,38,0,9,14,68,14,61,0,68,14,9,14,38,0,10,14,64,14,61,0,64,14,10,14,38,0,10,14,65,14,61,0,65,14,10,14,38,0,10,14,66,14,61,0,66,14,10,14,38,0,10,14,67,14,61,0,67,14,10,14,38,0,10,14,68,14,61,0,68,14,10,14,38,0,11,14,64,14,61,0,64,14,11,14,38,0,11,14,65,14,61,0,65,14,11,14,38,0,11,14,66,14,61,0,66,14,11,14,38,0,11,14,67,14,61,0,67,14,11,14,38,0,11,14,68,14,61,0,68,14,11,14,38,0,12,14,64,14,61,0,64,14,12,14,38,0,12,14,65,14,61,0,65,14,12,14,38,0,12,14,66,14,61,0,66,14,12,14,38,0,12,14,67,14,61,0,67,14,12,14,38,0,12,14,68,14,61,0,68,14,12,14,38,0,13,14,64,14,61,0,64,14,13,14,38,0,13,14,65,14,61,0,65,14,13,14,38,0,13,14,66,14,61,0,66,14,13,14,38,0,13,14,67,14,61,0,67,14,13,14,38,0,13,14,68,14,61,0,68,14,13,14,38,0,14,14,64,14,61,0,64,14,14,14,38,0,14,14,65,14,61,0,65,14,14,14,38,0,14,14,66,14,61,0,66,14,14,14,38,0,14,14,67,14,61,0,67,14,14,14,38,0,14,14,68,14,61,0,68,14,14,14,38,0,15,14,64,14,61,0,64,14,15,14,38,0,15,14,65,14,61,0,65,14,15,14,38,0,15,14,66,14,61,0,66,14,15,14,38,0,15,14,67,14,61,0,67,14,15,14,38,0,15,14,68,14,61,0,68,14,15,14,38,0,16,14,64,14,61,0,64,14,16,14,38,0,16,14,65,14,61,0,65,14,16,14,38,0,16,14,66,14,61,0,66,14,16,14,38,0,16,14,67,14,61,0,67,14,16,14,38,0,16,14,68,14,61,0,68,14,16,14,38,0,17,14,64,14,61,0,64,14,17,14,38,0,17,14,65,14,61,0,65,14,17,14,38,0,17,14,66,14,61,0,66,14,17,14,38,0,17,14,67,14,61,0,67,14,17,14,38,0,17,14,68,14,61,0,68,14,17,14,38,0,18,14,64,14,61,0,64,14,18,14,38,0,18,14,65,14,61,0,65,14,18,14,38,0,18,14,66,14,61,0,66,14,18,14,38,0,18,14,67,14,61,0,67,14,18,14,38,0,18,14,68,14,61,0,68,14,18,14,38,0,19,14,64,14,61,0,64,14,19,14,38,0,19,14,65,14,61,0,65,14,19,14,38,0,19,14,66,14,61,0,66,14,19,14,38,0,19,14,67,14,61,0,67,14,19,14,38,0,19,14,68,14,61,0,68,14,19,14,38,0,20,14,64,14,61,0,64,14,20,14,38,0,20,14,65,14,61,0,65,14,20,14,38,0,20,14,66,14,61,0,66,14,20,14,38,0,20,14,67,14,61,0,67,14,20,14,38,0,20,14,68,14,61,0,68,14,20,14,38,0,21,14,64,14,61,0,64,14,21,14,38,0,21,14,65,14,61,0,65,14,21,14,38,0,21,14,66,14,61,0,66,14,21,14,38,0,21,14,67,14,61,0,67,14,21,14,38,0,21,14,68,14,61,0,68,14,21,14,38,0,22,14,64,14,61,0,64,14,22,14,38,0,22,14,65,14,61,0,65,14,22,14,38,0,22,14,66,14,61,0,66,14,22,14,38,0,22,14,67,14,61,0,67,14,22,14,38,0,22,14,68,14,61,0,68,14,22,14,38,0,23,14,64,14,61,0,64,14,23,14,38,0,23,14,65,14,61,0,65,14,23,14,38,0,23,14,66,14,61,0,66,14,23,14,38,0,23,14,67,14,61,0,67,14,23,14,38,0,23,14,68,14,61,0,68,14,23,14,38,0,24,14,64,14,61,0,64,14,24,14,38,0,24,14,65,14,61,0,65,14,24,14,38,0,24,14,66,14,61,0,66,14,24,14,38,0,24,14,67,14,61,0,67,14,24,14,38,0,24,14,68,14,61,0,68,14,24,14,38,0,25,14,64,14,61,0,64,14,25,14,38,0,25,14,65,14,61,0,65,14,25,14,38,0,25,14,66,14,61,0,66,14,25,14,38,0,25,14,67,14,61,0,67,14,25,14,38,0,25,14,68,14,61,0,68,14,25,14,38,0,26,14,64,14,61,0,64,14,26,14,38,0,26,14,65,14,61,0,65,14,26,14,38,0,26,14,66,14,61,0,66,14,26,14,38,0,26,14,67,14,61,0,67,14,26,14,38,0,26,14,68,14,61,0,68,14,26,14,38,0,27,14,64,14,61,0,64,14,27,14,38,0,27,14,65,14,61,0,65,14,27,14,38,0,27,14,66,14,61,0,66,14,27,14,38,0,27,14,67,14,61,0,67,14,27,14,38,0,27,14,68,14,61,0,68,14,27,14,38,0,28,14,64,14,61,0,64,14,28,14,38,0,28,14,65,14,61,0,65,14,28,14,38,0,28,14,66,14,61,0,66,14,28,14,38,0,28,14,67,14,61,0,67,14,28,14,38,0,28,14,68,14,61,0,68,14,28,14,38,0,29,14,64,14,61,0,64,14,29,14,38,0,29,14,65,14,61,0,65,14,29,14,38,0,29,14,66,14,61,0,66,14,29,14,38,0,29,14,67,14,61,0,67,14,29,14,38,0,29,14,68,14,61,0,68,14,29,14,38,0,30,14,64,14,61,0,64,14,30,14,38,0,30,14,65,14,61,0,65,14,30,14,38,0,30,14,66,14,61,0,66,14,30,14,38,0,30,14,67,14,61,0,67,14,30,14,38,0,30,14,68,14,61,0,68,14,30,14,38,0,31,14,64,14,61,0,64,14,31,14,38,0,31,14,65,14,61,0,65,14,31,14,38,0,31,14,66,14,61,0,66,14,31,14,38,0,31,14,67,14,61,0,67,14,31,14,38,0,31,14,68,14,61,0,68,14,31,14,38,0,32,14,64,14,61,0,64,14,32,14,38,0,32,14,65,14,61,0,65,14,32,14,38,0,32,14,66,14,61,0,66,14,32,14,38,0,32,14,67,14,61,0,67,14,32,14,38,0,32,14,68,14,61,0,68,14,32,14,38,0,33,14,64,14,61,0,64,14,33,14,38,0,33,14,65,14,61,0,65,14,33,14,38,0,33,14,66,14,61,0,66,14,33,14,38,0,33,14,67,14,61,0,67,14,33,14,38,0,33,14,68,14,61,0,68,14,33,14,38,0,34,14,64,14,61,0,64,14,34,14,38,0,34,14,65,14,61,0,65,14,34,14,38,0,34,14,66,14,61,0,66,14,34,14,38,0,34,14,67,14,61,0,67,14,34,14,38,0,34,14,68,14,61,0,68,14,34,14,38,0,35,14,64,14,61,0,64,14,35,14,38,0,35,14,65,14,61,0,65,14,35,14,38,0,35,14,66,14,61,0,66,14,35,14,38,0,35,14,67,14,61,0,67,14,35,14,38,0,35,14,68,14,61,0,68,14,35,14,38,0,36,14,64,14,61,0,64,14,36,14,38,0,36,14,65,14,61,0,65,14,36,14,38,0,36,14,66,14,61,0,66,14,36,14,38,0,36,14,67,14,61,0,67,14,36,14,38,0,36,14,68,14,61,0,68,14,36,14,38,0,37,14,64,14,61,0,64,14,37,14,38,0,37,14,65,14,61,0,65,14,37,14,38,0,37,14,66,14,61,0,66,14,37,14,38,0,37,14,67,14,61,0,67,14,37,14,38,0,37,14,68,14,61,0,68,14,37,14,38,0,38,14,64,14,61,0,64,14,38,14,38,0,38,14,65,14,61,0,65,14,38,14,38,0,38,14,66,14,61,0,66,14,38,14,38,0,38,14,67,14,61,0,67,14,38,14,38,0,38,14,68,14,61,0,68,14,38,14,38,0,39,14,64,14,61,0,64,14,39,14,38,0,39,14,65,14,61,0,65,14,39,14,38,0,39,14,66,14,61,0,66,14,39,14,38,0,39,14,67,14,61,0,67,14,39,14,38,0,39,14,68,14,61,0,68,14,39,14,38,0,40,14,64,14,61,0,64,14,40,14,38,0,40,14,65,14,61,0,65,14,40,14,38,0,40,14,66,14,61,0,66,14,40,14,38,0,40,14,67,14,61,0,67,14,40,14,38,0,40,14,68,14,61,0,68,14,40,14,38,0,41,14,64,14,61,0,64,14,41,14,38,0,41,14,65,14,61,0,65,14,41,14,38,0,41,14,66,14,61,0,66,14,41,14,38,0,41,14,67,14,61,0,67,14,41,14,38,0,41,14,68,14,61,0,68,14,41,14,38,0,42,14,64,14,61,0,64,14,42,14,38,0,42,14,65,14,61,0,65,14,42,14,38,0,42,14,66,14,61,0,66,14,42,14,38,0,42,14,67,14,61,0,67,14,42,14,38,0,42,14,68,14,61,0,68,14,42,14,38,0,43,14,64,14,61,0,64,14,43,14,38,0,43,14,65,14,61,0,65,14,43,14,38,0,43,14,66,14,61,0,66,14,43,14,38,0,43,14,67,14,61,0,67,14,43,14,38,0,43,14,68,14,61,0,68,14,43,14,38,0,44,14,64,14,61,0,64,14,44,14,38,0,44,14,65,14,61,0,65,14,44,14,38,0,44,14,66,14,61,0,66,14,44,14,38,0,44,14,67,14,61,0,67,14,44,14,38,0,44,14,68,14,61,0,68,14,44,14,38,0,45,14,64,14,61,0,64,14,45,14,38,0,45,14,65,14,61,0,65,14,45,14,38,0,45,14,66,14,61,0,66,14,45,14,38,0,45,14,67,14,61,0,67,14,45,14,38,0,45,14,68,14,61,0,68,14,45,14,38,0,46,14,64,14,61,0,64,14,46,14,38,0,46,14,65,14,61,0,65,14,46,14,38,0,46,14,66,14,61,0,66,14,46,14,38,0,46,14,67,14,61,0,67,14,46,14,38,0,46,14,68,14,61,0,68,14,46,14,38,0,222,14,192,14,61,0,192,14,222,14,38,0,222,14,193,14,61,0,193,14,222,14,38,0,222,14,194,14,61,0,194,14,222,14,38,0,222,14,195,14,61,0,195,14,222,14,38,0,222,14,196,14,61,0,196,14,222,14,38,0,129,14,192,14,61,0,192,14,129,14,38,0,129,14,193,14,61,0,193,14,129,14,38,0,129,14,194,14,61,0,194,14,129,14,38,0,129,14,195,14,61,0,195,14,129,14,38,0,129,14,196,14,61,0,196,14,129,14,38,0,130,14,192,14,61,0,192,14,130,14,38,0,130,14,193,14,61,0,193,14,130,14,38,0,130,14,194,14,61,0,194,14,130,14,38,0,130,14,195,14,61,0,195,14,130,14,38,0,130,14,196,14,61,0,196,14,130,14,38,0,132,14,192,14,61,0,192,14,132,14,38,0,132,14,193,14,61,0,193,14,132,14,38,0,132,14,194,14,61,0,194,14,132,14,38,0,132,14,195,14,61,0,195,14,132,14,38,0,132,14,196,14,61,0,196,14,132,14,38,0,134,14,192,14,61,0,192,14,134,14,38,0,134,14,193,14,61,0,193,14,134,14,38,0,134,14,194,14,61,0,194,14,134,14,38,0,134,14,195,14,61,0,195,14,134,14,38,0,134,14,196,14,61,0,196,14,134,14,38,0,135,14,192,14,61,0,192,14,135,14,38,0,135,14,193,14,61,0,193,14,135,14,38,0,135,14,194,14,61,0,194,14,135,14,38,0,135,14,195,14,61,0,195,14,135,14,38,0,135,14,196,14,61,0,196,14,135,14,38,0,136,14,192,14,61,0,192,14,136,14,38,0,136,14,193,14,61,0,193,14,136,14,38,0,136,14,194,14,61,0,194,14,136,14,38,0,136,14,195,14,61,0,195,14,136,14,38,0,136,14,196,14,61,0,196,14,136,14,38,0,137,14,192,14,61,0,192,14,137,14,38,0,137,14,193,14,61,0,193,14,137,14,38,0,137,14,194,14,61,0,194,14,137,14,38,0,137,14,195,14,61,0,195,14,137,14,38,0,137,14,196,14,61,0,196,14,137,14,38,0,170,14,192,14,61,0,192,14,170,14,38,0,170,14,193,14,61,0,193,14,170,14,38,0,170,14,194,14,61,0,194,14,170,14,38,0,170,14,195,14,61,0,195,14,170,14,38,0,170,14,196,14,61,0,196,14,170,14,38,0,138,14,192,14,61,0,192,14,138,14,38,0,138,14,193,14,61,0,193,14,138,14,38,0,138,14,194,14,61,0,194,14,138,14,38,0,138,14,195,14,61,0,195,14,138,14,38,0,138,14,196,14,61,0,196,14,138,14,38,0,140,14,192,14,61,0,192,14,140,14,38,0,140,14,193,14,61,0,193,14,140,14,38,0,140,14,194,14,61,0,194,14,140,14,38,0,140,14,195,14,61,0,195,14,140,14,38,0,140,14,196,14,61,0,196,14,140,14,38,0,142,14,192,14,61,0,192,14,142,14,38,0,142,14,193,14,61,0,193,14,142,14,38,0,142,14,194,14,61,0,194,14,142,14,38,0,142,14,195,14,61,0,195,14,142,14,38,0,142,14,196,14,61,0,196,14,142,14,38,0,223,14,192,14,61,0,192,14,223,14,38,0,223,14,193,14,61,0,193,14,223,14,38,0,223,14,194,14,61,0,194,14,223,14,38,0,223,14,195,14,61,0,195,14,223,14,38,0,223,14,196,14,61,0,196,14,223,14,38,0,141,14,192,14,61,0,192,14,141,14,38,0,141,14,193,14,61,0,193,14,141,14,38,0,141,14,194,14,61,0,194,14,141,14,38,0,141,14,195,14,61,0,195,14,141,14,38,0,141,14,196,14,61,0,196,14,141,14,38,0,143,14,192,14,61,0,192,14,143,14,38,0,143,14,193,14,61,0,193,14,143,14,38,0,143,14,194,14,61,0,194,14,143,14,38,0,143,14,195,14,61,0,195,14,143,14,38,0,143,14,196,14,61,0,196,14,143,14,38,0,144,14,192,14,61,0,192,14,144,14,38,0,144,14,193,14,61,0,193,14,144,14,38,0,144,14,194,14,61,0,194,14,144,14,38,0,144,14,195,14,61,0,195,14,144,14,38,0,144,14,196,14,61,0,196,14,144,14,38,0,145,14,192,14,61,0,192,14,145,14,38,0,145,14,193,14,61,0,193,14,145,14,38,0,145,14,194,14,61,0,194,14,145,14,38,0,145,14,195,14,61,0,195,14,145,14,38,0,145,14,196,14,61,0,196,14,145,14,38,0,146,14,192,14,61,0,192,14,146,14,38,0,146,14,193,14,61,0,193,14,146,14,38,0,146,14,194,14,61,0,194,14,146,14,38,0,146,14,195,14,61,0,195,14,146,14,38,0,146,14,196,14,61,0,196,14,146,14,38,0,147,14,192,14,61,0,192,14,147,14,38,0,147,14,193,14,61,0,193,14,147,14,38,0,147,14,194,14,61,0,194,14,147,14,38,0,147,14,195,14,61,0,195,14,147,14,38,0,147,14,196,14,61,0,196,14,147,14,38,0,148,14,192,14,61,0,192,14,148,14,38,0,148,14,193,14,61,0,193,14,148,14,38,0,148,14,194,14,61,0,194,14,148,14,38,0,148,14,195,14,61,0,195,14,148,14,38,0,148,14,196,14,61,0,196,14,148,14,38,0,149,14,192,14,61,0,192,14,149,14,38,0,149,14,193,14,61,0,193,14,149,14,38,0,149,14,194,14,61,0,194,14,149,14,38,0,149,14,195,14,61,0,195,14,149,14,38,0,149,14,196,14,61,0,196,14,149,14,38,0,150,14,192,14,61,0,192,14,150,14,38,0,150,14,193,14,61,0,193,14,150,14,38,0,150,14,194,14,61,0,194,14,150,14,38,0,150,14,195,14,61,0,195,14,150,14,38,0,150,14,196,14,61,0,196,14,150,14,38,0,151,14,192,14,61,0,192,14,151,14,38,0,151,14,193,14,61,0,193,14,151,14,38,0,151,14,194,14,61,0,194,14,151,14,38,0,151,14,195,14,61,0,195,14,151,14,38,0,151,14,196,14,61,0,196,14,151,14,38,0,152,14,192,14,61,0,192,14,152,14,38,0,152,14,193,14,61,0,193,14,152,14,38,0,152,14,194,14,61,0,194,14,152,14,38,0,152,14,195,14,61,0,195,14,152,14,38,0,152,14,196,14,61,0,196,14,152,14,38,0,153,14,192,14,61,0,192,14,153,14,38,0,153,14,193,14,61,0,193,14,153,14,38,0,153,14,194,14,61,0,194,14,153,14,38,0,153,14,195,14,61,0,195,14,153,14,38,0,153,14,196,14,61,0,196,14,153,14,38,0,154,14,192,14,61,0,192,14,154,14,38,0,154,14,193,14,61,0,193,14,154,14,38,0,154,14,194,14,61,0,194,14,154,14,38,0,154,14,195,14,61,0,195,14,154,14,38,0,154,14,196,14,61,0,196,14,154,14,38,0,155,14,192,14,61,0,192,14,155,14,38,0,155,14,193,14,61,0,193,14,155,14,38,0,155,14,194,14,61,0,194,14,155,14,38,0,155,14,195,14,61,0,195,14,155,14,38,0,155,14,196,14,61,0,196,14,155,14,38,0,156,14,192,14,61,0,192,14,156,14,38,0,156,14,193,14,61,0,193,14,156,14,38,0,156,14,194,14,61,0,194,14,156,14,38,0,156,14,195,14,61,0,195,14,156,14,38,0,156,14,196,14,61,0,196,14,156,14,38,0,157,14,192,14,61,0,192,14,157,14,38,0,157,14,193,14,61,0,193,14,157,14,38,0,157,14,194,14,61,0,194,14,157,14,38,0,157,14,195,14,61,0,195,14,157,14,38,0,157,14,196,14,61,0,196,14,157,14,38,0,158,14,192,14,61,0,192,14,158,14,38,0,158,14,193,14,61,0,193,14,158,14,38,0,158,14,194,14,61,0,194,14,158,14,38,0,158,14,195,14,61,0,195,14,158,14,38,0,158,14,196,14,61,0,196,14,158,14,38,0,159,14,192,14,61,0,192,14,159,14,38,0,159,14,193,14,61,0,193,14,159,14,38,0,159,14,194,14,61,0,194,14,159,14,38,0,159,14,195,14,61,0,195,14,159,14,38,0,159,14,196,14,61,0,196,14,159,14,38,0,160,14,192,14,61,0,192,14,160,14,38,0,160,14,193,14,61,0,193,14,160,14,38,0,160,14,194,14,61,0,194,14,160,14,38,0,160,14,195,14,61,0,195,14,160,14,38,0,160,14,196,14,61,0,196,14,160,14,38,0,161,14,192,14,61,0,192,14,161,14,38,0,161,14,193,14,61,0,193,14,161,14,38,0,161,14,194,14,61,0,194,14,161,14,38,0,161,14,195,14,61,0,195,14,161,14,38,0,161,14,196,14,61,0,196,14,161,14,38,0,162,14,192,14,61,0,192,14,162,14,38,0,162,14,193,14,61,0,193,14,162,14,38,0,162,14,194,14,61,0,194,14,162,14,38,0,162,14,195,14,61,0,195,14,162,14,38,0,162,14,196,14,61,0,196,14,162,14,38,0,163,14,192,14,61,0,192,14,163,14,38,0,163,14,193,14,61,0,193,14,163,14,38,0,163,14,194,14,61,0,194,14,163,14,38,0,163,14,195,14,61,0,195,14,163,14,38,0,163,14,196,14,61,0,196,14,163,14,38,0,165,14,192,14,61,0,192,14,165,14,38,0,165,14,193,14,61,0,193,14,165,14,38,0,165,14,194,14,61,0,194,14,165,14,38,0,165,14,195,14,61,0,195,14,165,14,38,0,165,14,196,14,61,0,196,14,165,14,38,0,167,14,192,14,61,0,192,14,167,14,38,0,167,14,193,14,61,0,193,14,167,14,38,0,167,14,194,14,61,0,194,14,167,14,38,0,167,14,195,14,61,0,195,14,167,14,38,0,167,14,196,14,61,0,196,14,167,14,38,0,168,14,192,14,61,0,192,14,168,14,38,0,168,14,193,14,61,0,193,14,168,14,38,0,168,14,194,14,61,0,194,14,168,14,38,0,168,14,195,14,61,0,195,14,168,14,38,0,168,14,196,14,61,0,196,14,168,14,38,0,169,14,192,14,61,0,192,14,169,14,38,0,169,14,193,14,61,0,193,14,169,14,38,0,169,14,194,14,61,0,194,14,169,14,38,0,169,14,195,14,61,0,195,14,169,14,38,0,169,14,196,14,61,0,196,14,169,14,38,0,171,14,192,14,61,0,192,14,171,14,38,0,171,14,193,14,61,0,193,14,171,14,38,0,171,14,194,14,61,0,194,14,171,14,38,0,171,14,195,14,61,0,195,14,171,14,38,0,171,14,196,14,61,0,196,14,171,14,38,0,220,14,192,14,61,0,192,14,220,14,38,0,220,14,193,14,61,0,193,14,220,14,38,0,220,14,194,14,61,0,194,14,220,14,38,0,220,14,195,14,61,0,195,14,220,14,38,0,220,14,196,14,61,0,196,14,220,14,38,0,221,14,192,14,61,0,192,14,221,14,38,0,221,14,193,14,61,0,193,14,221,14,38,0,221,14,194,14,61,0,194,14,221,14,38,0,221,14,195,14,61,0,195,14,221,14,38,0,221,14,196,14,61,0,196,14,221,14,38,0,172,14,192,14,61,0,192,14,172,14,38,0,172,14,193,14,61,0,193,14,172,14,38,0,172,14,194,14,61,0,194,14,172,14,38,0,172,14,195,14,61,0,195,14,172,14,38,0,172,14,196,14,61,0,196,14,172,14,38,0,173,14,192,14,61,0,192,14,173,14,38,0,173,14,193,14,61,0,193,14,173,14,38,0,173,14,194,14,61,0,194,14,173,14,38,0,173,14,195,14,61,0,195,14,173,14,38,0,173,14,196,14,61,0,196,14,173,14,38,0,174,14,192,14,61,0,192,14,174,14,38,0,174,14,193,14,61,0,193,14,174,14,38,0,174,14,194,14,61,0,194,14,174,14,38,0,174,14,195,14,61,0,195,14,174,14,38,0,174,14,196,14,61,0,196,14,174,14,38,0,128,170,181,170,61,0,181,170,128,170,38,0,128,170,182,170,61,0,182,170,128,170,38,0,128,170,185,170,61,0,185,170,128,170,38,0,128,170,187,170,61,0,187,170,128,170,38,0,128,170,188,170,61,0,188,170,128,170,38,0,129,170,181,170,61,0,181,170,129,170,38,0,129,170,182,170,61,0,182,170,129,170,38,0,129,170,185,170,61,0,185,170,129,170,38,0,129,170,187,170,61,0,187,170,129,170,38,0,129,170,188,170,61,0,188,170,129,170,38,0,130,170,181,170,61,0,181,170,130,170,38,0,130,170,182,170,61,0,182,170,130,170,38,0,130,170,185,170,61,0,185,170,130,170,38,0,130,170,187,170,61,0,187,170,130,170,38,0,130,170,188,170,61,0,188,170,130,170,38,0,131,170,181,170,61,0,181,170,131,170,38,0,131,170,182,170,61,0,182,170,131,170,38,0,131,170,185,170,61,0,185,170,131,170,38,0,131,170,187,170,61,0,187,170,131,170,38,0,131,170,188,170,61,0,188,170,131,170,38,0,132,170,181,170,61,0,181,170,132,170,38,0,132,170,182,170,61,0,182,170,132,170,38,0,132,170,185,170,61,0,185,170,132,170,38,0,132,170,187,170,61,0,187,170,132,170,38,0,132,170,188,170,61,0,188,170,132,170,38,0,133,170,181,170,61,0,181,170,133,170,38,0,133,170,182,170,61,0,182,170,133,170,38,0,133,170,185,170,61,0,185,170,133,170,38,0,133,170,187,170,61,0,187,170,133,170,38,0,133,170,188,170,61,0,188,170,133,170,38,0,134,170,181,170,61,0,181,170,134,170,38,0,134,170,182,170,61,0,182,170,134,170,38,0,134,170,185,170,61,0,185,170,134,170,38,0,134,170,187,170,61,0,187,170,134,170,38,0,134,170,188,170,61,0,188,170,134,170,38,0,135,170,181,170,61,0,181,170,135,170,38,0,135,170,182,170,61,0,182,170,135,170,38,0,135,170,185,170,61,0,185,170,135,170,38,0,135,170,187,170,61,0,187,170,135,170,38,0,135,170,188,170,61,0,188,170,135,170,38,0,136,170,181,170,61,0,181,170,136,170,38,0,136,170,182,170,61,0,182,170,136,170,38,0,136,170,185,170,61,0,185,170,136,170,38,0,136,170,187,170,61,0,187,170,136,170,38,0,136,170,188,170,61,0,188,170,136,170,38,0,137,170,181,170,61,0,181,170,137,170,38,0,137,170,182,170,61,0,182,170,137,170,38,0,137,170,185,170,61,0,185,170,137,170,38,0,137,170,187,170,61,0,187,170,137,170,38,0,137,170,188,170,61,0,188,170,137,170,38,0,138,170,181,170,61,0,181,170,138,170,38,0,138,170,182,170,61,0,182,170,138,170,38,0,138,170,185,170,61,0,185,170,138,170,38,0,138,170,187,170,61,0,187,170,138,170,38,0,138,170,188,170,61,0,188,170,138,170,38,0,139,170,181,170,61,0,181,170,139,170,38,0,139,170,182,170,61,0,182,170,139,170,38,0,139,170,185,170,61,0,185,170,139,170,38,0,139,170,187,170,61,0,187,170,139,170,38,0,139,170,188,170,61,0,188,170,139,170,38,0,140,170,181,170,61,0,181,170,140,170,38,0,140,170,182,170,61,0,182,170,140,170,38,0,140,170,185,170,61,0,185,170,140,170,38,0,140,170,187,170,61,0,187,170,140,170,38,0,140,170,188,170,61,0,188,170,140,170,38,0,141,170,181,170,61,0,181,170,141,170,38,0,141,170,182,170,61,0,182,170,141,170,38,0,141,170,185,170,61,0,185,170,141,170,38,0,141,170,187,170,61,0,187,170,141,170,38,0,141,170,188,170,61,0,188,170,141,170,38,0,142,170,181,170,61,0,181,170,142,170,38,0,142,170,182,170,61,0,182,170,142,170,38,0,142,170,185,170,61,0,185,170,142,170,38,0,142,170,187,170,61,0,187,170,142,170,38,0,142,170,188,170,61,0,188,170,142,170,38,0,143,170,181,170,61,0,181,170,143,170,38,0,143,170,182,170,61,0,182,170,143,170,38,0,143,170,185,170,61,0,185,170,143,170,38,0,143,170,187,170,61,0,187,170,143,170,38,0,143,170,188,170,61,0,188,170,143,170,38,0,144,170,181,170,61,0,181,170,144,170,38,0,144,170,182,170,61,0,182,170,144,170,38,0,144,170,185,170,61,0,185,170,144,170,38,0,144,170,187,170,61,0,187,170,144,170,38,0,144,170,188,170,61,0,188,170,144,170,38,0,145,170,181,170,61,0,181,170,145,170,38,0,145,170,182,170,61,0,182,170,145,170,38,0,145,170,185,170,61,0,185,170,145,170,38,0,145,170,187,170,61,0,187,170,145,170,38,0,145,170,188,170,61,0,188,170,145,170,38,0,146,170,181,170,61,0,181,170,146,170,38,0,146,170,182,170,61,0,182,170,146,170,38,0,146,170,185,170,61,0,185,170,146,170,38,0,146,170,187,170,61,0,187,170,146,170,38,0,146,170,188,170,61,0,188,170,146,170,38,0,147,170,181,170,61,0,181,170,147,170,38,0,147,170,182,170,61,0,182,170,147,170,38,0,147,170,185,170,61,0,185,170,147,170,38,0,147,170,187,170,61,0,187,170,147,170,38,0,147,170,188,170,61,0,188,170,147,170,38,0,148,170,181,170,61,0,181,170,148,170,38,0,148,170,182,170,61,0,182,170,148,170,38,0,148,170,185,170,61,0,185,170,148,170,38,0,148,170,187,170,61,0,187,170,148,170,38,0,148,170,188,170,61,0,188,170,148,170,38,0,149,170,181,170,61,0,181,170,149,170,38,0,149,170,182,170,61,0,182,170,149,170,38,0,149,170,185,170,61,0,185,170,149,170,38,0,149,170,187,170,61,0,187,170,149,170,38,0,149,170,188,170,61,0,188,170,149,170,38,0,150,170,181,170,61,0,181,170,150,170,38,0,150,170,182,170,61,0,182,170,150,170,38,0,150,170,185,170,61,0,185,170,150,170,38,0,150,170,187,170,61,0,187,170,150,170,38,0,150,170,188,170,61,0,188,170,150,170,38,0,151,170,181,170,61,0,181,170,151,170,38,0,151,170,182,170,61,0,182,170,151,170,38,0,151,170,185,170,61,0,185,170,151,170,38,0,151,170,187,170,61,0,187,170,151,170,38,0,151,170,188,170,61,0,188,170,151,170,38,0,152,170,181,170,61,0,181,170,152,170,38,0,152,170,182,170,61,0,182,170,152,170,38,0,152,170,185,170,61,0,185,170,152,170,38,0,152,170,187,170,61,0,187,170,152,170,38,0,152,170,188,170,61,0,188,170,152,170,38,0,153,170,181,170,61,0,181,170,153,170,38,0,153,170,182,170,61,0,182,170,153,170,38,0,153,170,185,170,61,0,185,170,153,170,38,0,153,170,187,170,61,0,187,170,153,170,38,0,153,170,188,170,61,0,188,170,153,170,38,0,154,170,181,170,61,0,181,170,154,170,38,0,154,170,182,170,61,0,182,170,154,170,38,0,154,170,185,170,61,0,185,170,154,170,38,0,154,170,187,170,61,0,187,170,154,170,38,0,154,170,188,170,61,0,188,170,154,170,38,0,155,170,181,170,61,0,181,170,155,170,38,0,155,170,182,170,61,0,182,170,155,170,38,0,155,170,185,170,61,0,185,170,155,170,38,0,155,170,187,170,61,0,187,170,155,170,38,0,155,170,188,170,61,0,188,170,155,170,38,0,156,170,181,170,61,0,181,170,156,170,38,0,156,170,182,170,61,0,182,170,156,170,38,0,156,170,185,170,61,0,185,170,156,170,38,0,156,170,187,170,61,0,187,170,156,170,38,0,156,170,188,170,61,0,188,170,156,170,38,0,157,170,181,170,61,0,181,170,157,170,38,0,157,170,182,170,61,0,182,170,157,170,38,0,157,170,185,170,61,0,185,170,157,170,38,0,157,170,187,170,61,0,187,170,157,170,38,0,157,170,188,170,61,0,188,170,157,170,38,0,158,170,181,170,61,0,181,170,158,170,38,0,158,170,182,170,61,0,182,170,158,170,38,0,158,170,185,170,61,0,185,170,158,170,38,0,158,170,187,170,61,0,187,170,158,170,38,0,158,170,188,170,61,0,188,170,158,170,38,0,159,170,181,170,61,0,181,170,159,170,38,0,159,170,182,170,61,0,182,170,159,170,38,0,159,170,185,170,61,0,185,170,159,170,38,0,159,170,187,170,61,0,187,170,159,170,38,0,159,170,188,170,61,0,188,170,159,170,38,0,160,170,181,170,61,0,181,170,160,170,38,0,160,170,182,170,61,0,182,170,160,170,38,0,160,170,185,170,61,0,185,170,160,170,38,0,160,170,187,170,61,0,187,170,160,170,38,0,160,170,188,170,61,0,188,170,160,170,38,0,161,170,181,170,61,0,181,170,161,170,38,0,161,170,182,170,61,0,182,170,161,170,38,0,161,170,185,170,61,0,185,170,161,170,38,0,161,170,187,170,61,0,187,170,161,170,38,0,161,170,188,170,61,0,188,170,161,170,38,0,162,170,181,170,61,0,181,170,162,170,38,0,162,170,182,170,61,0,182,170,162,170,38,0,162,170,185,170,61,0,185,170,162,170,38,0,162,170,187,170,61,0,187,170,162,170,38,0,162,170,188,170,61,0,188,170,162,170,38,0,163,170,181,170,61,0,181,170,163,170,38,0,163,170,182,170,61,0,182,170,163,170,38,0,163,170,185,170,61,0,185,170,163,170,38,0,163,170,187,170,61,0,187,170,163,170,38,0,163,170,188,170,61,0,188,170,163,170,38,0,164,170,181,170,61,0,181,170,164,170,38,0,164,170,182,170,61,0,182,170,164,170,38,0,164,170,185,170,61,0,185,170,164,170,38,0,164,170,187,170,61,0,187,170,164,170,38,0,164,170,188,170,61,0,188,170,164,170,38,0,165,170,181,170,61,0,181,170,165,170,38,0,165,170,182,170,61,0,182,170,165,170,38,0,165,170,185,170,61,0,185,170,165,170,38,0,165,170,187,170,61,0,187,170,165,170,38,0,165,170,188,170,61,0,188,170,165,170,38,0,166,170,181,170,61,0,181,170,166,170,38,0,166,170,182,170,61,0,182,170,166,170,38,0,166,170,185,170,61,0,185,170,166,170,38,0,166,170,187,170,61,0,187,170,166,170,38,0,166,170,188,170,61,0,188,170,166,170,38,0,167,170,181,170,61,0,181,170,167,170,38,0,167,170,182,170,61,0,182,170,167,170,38,0,167,170,185,170,61,0,185,170,167,170,38,0,167,170,187,170,61,0,187,170,167,170,38,0,167,170,188,170,61,0,188,170,167,170,38,0,168,170,181,170,61,0,181,170,168,170,38,0,168,170,182,170,61,0,182,170,168,170,38,0,168,170,185,170,61,0,185,170,168,170,38,0,168,170,187,170,61,0,187,170,168,170,38,0,168,170,188,170,61,0,188,170,168,170,38,0,169,170,181,170,61,0,181,170,169,170,38,0,169,170,182,170,61,0,182,170,169,170,38,0,169,170,185,170,61,0,185,170,169,170,38,0,169,170,187,170,61,0,187,170,169,170,38,0,169,170,188,170,61,0,188,170,169,170,38,0,170,170,181,170,61,0,181,170,170,170,38,0,170,170,182,170,61,0,182,170,170,170,38,0,170,170,185,170,61,0,185,170,170,170,38,0,170,170,187,170,61,0,187,170,170,170,38,0,170,170,188,170,61,0,188,170,170,170,38,0,171,170,181,170,61,0,181,170,171,170,38,0,171,170,182,170,61,0,182,170,171,170,38,0,171,170,185,170,61,0,185,170,171,170,38,0,171,170,187,170,61,0,187,170,171,170,38,0,171,170,188,170,61,0,188,170,171,170,38,0,172,170,181,170,61,0,181,170,172,170,38,0,172,170,182,170,61,0,182,170,172,170,38,0,172,170,185,170,61,0,185,170,172,170,38,0,172,170,187,170,61,0,187,170,172,170,38,0,172,170,188,170,61,0,188,170,172,170,38,0,173,170,181,170,61,0,181,170,173,170,38,0,173,170,182,170,61,0,182,170,173,170,38,0,173,170,185,170,61,0,185,170,173,170,38,0,173,170,187,170,61,0,187,170,173,170,38,0,173,170,188,170,61,0,188,170,173,170,38,0,174,170,181,170,61,0,181,170,174,170,38,0,174,170,182,170,61,0,182,170,174,170,38,0,174,170,185,170,61,0,185,170,174,170,38,0,174,170,187,170,61,0,187,170,174,170,38,0,174,170,188,170,61,0,188,170,174,170,38,0,175,170,181,170,61,0,181,170,175,170,38,0,175,170,182,170,61,0,182,170,175,170,38,0,175,170,185,170,61,0,185,170,175,170,38,0,175,170,187,170,61,0,187,170,175,170,38,0,175,170,188,170,61,0,188,170,175,170,38,0,128,25,181,25,61,0,181,25,128,25,38,0,128,25,182,25,61,0,182,25,128,25,38,0,128,25,183,25,61,0,183,25,128,25,38,0,128,25,186,25,61,0,186,25,128,25,38,0,129,25,181,25,61,0,181,25,129,25,38,0,129,25,182,25,61,0,182,25,129,25,38,0,129,25,183,25,61,0,183,25,129,25,38,0,129,25,186,25,61,0,186,25,129,25,38,0,130,25,181,25,61,0,181,25,130,25,38,0,130,25,182,25,61,0,182,25,130,25,38,0,130,25,183,25,61,0,183,25,130,25,38,0,130,25,186,25,61,0,186,25,130,25,38,0,131,25,181,25,61,0,181,25,131,25,38,0,131,25,182,25,61,0,182,25,131,25,38,0,131,25,183,25,61,0,183,25,131,25,38,0,131,25,186,25,61,0,186,25,131,25,38,0,132,25,181,25,61,0,181,25,132,25,38,0,132,25,182,25,61,0,182,25,132,25,38,0,132,25,183,25,61,0,183,25,132,25,38,0,132,25,186,25,61,0,186,25,132,25,38,0,133,25,181,25,61,0,181,25,133,25,38,0,133,25,182,25,61,0,182,25,133,25,38,0,133,25,183,25,61,0,183,25,133,25,38,0,133,25,186,25,61,0,186,25,133,25,38,0,134,25,181,25,61,0,181,25,134,25,38,0,134,25,182,25,61,0,182,25,134,25,38,0,134,25,183,25,61,0,183,25,134,25,38,0,134,25,186,25,61,0,186,25,134,25,38,0,135,25,181,25,61,0,181,25,135,25,38,0,135,25,182,25,61,0,182,25,135,25,38,0,135,25,183,25,61,0,183,25,135,25,38,0,135,25,186,25,61,0,186,25,135,25,38,0,136,25,181,25,61,0,181,25,136,25,38,0,136,25,182,25,61,0,182,25,136,25,38,0,136,25,183,25,61,0,183,25,136,25,38,0,136,25,186,25,61,0,186,25,136,25,38,0,137,25,181,25,61,0,181,25,137,25,38,0,137,25,182,25,61,0,182,25,137,25,38,0,137,25,183,25,61,0,183,25,137,25,38,0,137,25,186,25,61,0,186,25,137,25,38,0,138,25,181,25,61,0,181,25,138,25,38,0,138,25,182,25,61,0,182,25,138,25,38,0,138,25,183,25,61,0,183,25,138,25,38,0,138,25,186,25,61,0,186,25,138,25,38,0,139,25,181,25,61,0,181,25,139,25,38,0,139,25,182,25,61,0,182,25,139,25,38,0,139,25,183,25,61,0,183,25,139,25,38,0,139,25,186,25,61,0,186,25,139,25,38,0,140,25,181,25,61,0,181,25,140,25,38,0,140,25,182,25,61,0,182,25,140,25,38,0,140,25,183,25,61,0,183,25,140,25,38,0,140,25,186,25,61,0,186,25,140,25,38,0,141,25,181,25,61,0,181,25,141,25,38,0,141,25,182,25,61,0,182,25,141,25,38,0,141,25,183,25,61,0,183,25,141,25,38,0,141,25,186,25,61,0,186,25,141,25,38,0,142,25,181,25,61,0,181,25,142,25,38,0,142,25,182,25,61,0,182,25,142,25,38,0,142,25,183,25,61,0,183,25,142,25,38,0,142,25,186,25,61,0,186,25,142,25,38,0,143,25,181,25,61,0,181,25,143,25,38,0,143,25,182,25,61,0,182,25,143,25,38,0,143,25,183,25,61,0,183,25,143,25,38,0,143,25,186,25,61,0,186,25,143,25,38,0,144,25,181,25,61,0,181,25,144,25,38,0,144,25,182,25,61,0,182,25,144,25,38,0,144,25,183,25,61,0,183,25,144,25,38,0,144,25,186,25,61,0,186,25,144,25,38,0,145,25,181,25,61,0,181,25,145,25,38,0,145,25,182,25,61,0,182,25,145,25,38,0,145,25,183,25,61,0,183,25,145,25,38,0,145,25,186,25,61,0,186,25,145,25,38,0,146,25,181,25,61,0,181,25,146,25,38,0,146,25,182,25,61,0,182,25,146,25,38,0,146,25,183,25,61,0,183,25,146,25,38,0,146,25,186,25,61,0,186,25,146,25,38,0,147,25,181,25,61,0,181,25,147,25,38,0,147,25,182,25,61,0,182,25,147,25,38,0,147,25,183,25,61,0,183,25,147,25,38,0,147,25,186,25,61,0,186,25,147,25,38,0,148,25,181,25,61,0,181,25,148,25,38,0,148,25,182,25,61,0,182,25,148,25,38,0,148,25,183,25,61,0,183,25,148,25,38,0,148,25,186,25,61,0,186,25,148,25,38,0,149,25,181,25,61,0,181,25,149,25,38,0,149,25,182,25,61,0,182,25,149,25,38,0,149,25,183,25,61,0,183,25,149,25,38,0,149,25,186,25,61,0,186,25,149,25,38,0,150,25,181,25,61,0,181,25,150,25,38,0,150,25,182,25,61,0,182,25,150,25,38,0,150,25,183,25,61,0,183,25,150,25,38,0,150,25,186,25,61,0,186,25,150,25,38,0,151,25,181,25,61,0,181,25,151,25,38,0,151,25,182,25,61,0,182,25,151,25,38,0,151,25,183,25,61,0,183,25,151,25,38,0,151,25,186,25,61,0,186,25,151,25,38,0,152,25,181,25,61,0,181,25,152,25,38,0,152,25,182,25,61,0,182,25,152,25,38,0,152,25,183,25,61,0,183,25,152,25,38,0,152,25,186,25,61,0,186,25,152,25,38,0,153,25,181,25,61,0,181,25,153,25,38,0,153,25,182,25,61,0,182,25,153,25,38,0,153,25,183,25,61,0,183,25,153,25,38,0,153,25,186,25,61,0,186,25,153,25,38,0,154,25,181,25,61,0,181,25,154,25,38,0,154,25,182,25,61,0,182,25,154,25,38,0,154,25,183,25,61,0,183,25,154,25,38,0,154,25,186,25,61,0,186,25,154,25,38,0,155,25,181,25,61,0,181,25,155,25,38,0,155,25,182,25,61,0,182,25,155,25,38,0,155,25,183,25,61,0,183,25,155,25,38,0,155,25,186,25,61,0,186,25,155,25,38,0,156,25,181,25,61,0,181,25,156,25,38,0,156,25,182,25,61,0,182,25,156,25,38,0,156,25,183,25,61,0,183,25,156,25,38,0,156,25,186,25,61,0,186,25,156,25,38,0,157,25,181,25,61,0,181,25,157,25,38,0,157,25,182,25,61,0,182,25,157,25,38,0,157,25,183,25,61,0,183,25,157,25,38,0,157,25,186,25,61,0,186,25,157,25,38,0,158,25,181,25,61,0,181,25,158,25,38,0,158,25,182,25,61,0,182,25,158,25,38,0,158,25,183,25,61,0,183,25,158,25,38,0,158,25,186,25,61,0,186,25,158,25,38,0,159,25,181,25,61,0,181,25,159,25,38,0,159,25,182,25,61,0,182,25,159,25,38,0,159,25,183,25,61,0,183,25,159,25,38,0,159,25,186,25,61,0,186,25,159,25,38,0,160,25,181,25,61,0,181,25,160,25,38,0,160,25,182,25,61,0,182,25,160,25,38,0,160,25,183,25,61,0,183,25,160,25,38,0,160,25,186,25,61,0,186,25,160,25,38,0,161,25,181,25,61,0,181,25,161,25,38,0,161,25,182,25,61,0,182,25,161,25,38,0,161,25,183,25,61,0,183,25,161,25,38,0,161,25,186,25,61,0,186,25,161,25,38,0,162,25,181,25,61,0,181,25,162,25,38,0,162,25,182,25,61,0,182,25,162,25,38,0,162,25,183,25,61,0,183,25,162,25,38,0,162,25,186,25,61,0,186,25,162,25,38,0,163,25,181,25,61,0,181,25,163,25,38,0,163,25,182,25,61,0,182,25,163,25,38,0,163,25,183,25,61,0,183,25,163,25,38,0,163,25,186,25,61,0,186,25,163,25,38,0,164,25,181,25,61,0,181,25,164,25,38,0,164,25,182,25,61,0,182,25,164,25,38,0,164,25,183,25,61,0,183,25,164,25,38,0,164,25,186,25,61,0,186,25,164,25,38,0,165,25,181,25,61,0,181,25,165,25,38,0,165,25,182,25,61,0,182,25,165,25,38,0,165,25,183,25,61,0,183,25,165,25,38,0,165,25,186,25,61,0,186,25,165,25,38,0,166,25,181,25,61,0,181,25,166,25,38,0,166,25,182,25,61,0,182,25,166,25,38,0,166,25,183,25,61,0,183,25,166,25,38,0,166,25,186,25,61,0,186,25,166,25,38,0,167,25,181,25,61,0,181,25,167,25,38,0,167,25,182,25,61,0,182,25,167,25,38,0,167,25,183,25,61,0,183,25,167,25,38,0,167,25,186,25,61,0,186,25,167,25,38,0,168,25,181,25,61,0,181,25,168,25,38,0,168,25,182,25,61,0,182,25,168,25,38,0,168,25,183,25,61,0,183,25,168,25,38,0,168,25,186,25,61,0,186,25,168,25,38,0,169,25,181,25,61,0,181,25,169,25,38,0,169,25,182,25,61,0,182,25,169,25,38,0,169,25,183,25,61,0,183,25,169,25,38,0,169,25,186,25,61,0,186,25,169,25,38,0,170,25,181,25,61,0,181,25,170,25,38,0,170,25,182,25,61,0,182,25,170,25,38,0,170,25,183,25,61,0,183,25,170,25,38,0,170,25,186,25,61,0,186,25,170,25,38,0,171,25,181,25,61,0,181,25,171,25,38,0,171,25,182,25,61,0,182,25,171,25,38,0,171,25,183,25,61,0,183,25,171,25,38,0,171,25,186,25,61,0,186,25,171,25,0,0,1,0,13,0,2,0,74,0,41,0,234,1,1,0,170,170,170,170,170,170,26,139,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,64,0,0,164,64,0,0,28,91,0,0,28,91,0,0,104,91,0,0,104,91,0,0,174,133,0,0,18,135,0,0,254,138,0,0,50,105,114,84,1,0,224,8,233,2,64,0,192,0,64,0,0,0,8,0,16,0,24,0,54,0,62,0,70,0,78,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,95,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,118,0,125,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,0,136,0,48,0,48,0,48,0,48,0,141,0,147,0,48,0,48,0,48,0,48,0,48,0,48,0,155,0,48,0,48,0,48,0,48,0,48,0,48,0,161,0,169,0,171,0,179,0,187,0,195,0,203,0,211,0,219,0,227,0,233,0,241,0,249,0,0,1,8,1,11,1,19,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,27,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,34,1,48,0,42,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,94,0,48,0,48,0,86,0,224,2,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,216,0,24,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,96,8,160,8,63,1,48,0,48,0,48,0,48,0,48,0,68,1,48,0,48,0,48,0,48,0,72,1,80,1,48,0,48,0,87,1,95,1,102,1,109,1,48,0,48,0,48,0,48,0,48,0,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,20,2,27,2,35,2,43,2,51,2,59,2,67,2,48,0,75,2,83,2,91,2,99,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,107,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,2,120,2,128,2,136,2,144,2,152,2,160,2,168,2,48,0,48,0,48,0,176,2,184,2,192,2,200,2,208,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,201,0,0,0,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,201,96,1,0,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,232,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,233,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,205,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,206,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,234,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,5,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,133,130,13,193,132,130,13,193,131,130,13,193,125,130,13,193,127,130,13,193,129,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,134,130,13,193,135,130,13,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,184,128,13,193,182,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,179,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,188,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,175,130,13,193,179,130,13,193,182,130,13,193,184,130,13,193,176,130,13,193,180,130,13,193,177,130,13,193,185,128,13,193,186,128,13,193,187,128,13,193,183,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,185,130,13,193,186,130,13,193,187,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,55,131,13,193,56,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,174,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,178,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,52,131,13,193,51,131,13,193,54,131,13,193,53,131,13,192,0,0,0,193,226,128,13,193,234,128,13,193,249,128,13,193,254,128,13,193,2,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,169,129,13,192,0,0,0,192,0,0,0,193,222,130,13,192,0,0,0,192,0,0,0,193,250,128,13,193,17,128,13,192,0,0,0,192,0,0,0,193,155,127,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,189,125,13,192,0,0,0,192,0,0,0,193,104,125,13,192,0,0,0,193,122,130,13,193,123,130,13,192,0,0,0,192,0,0,0,193,152,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,153,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,154,130,13,193,150,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,149,130,13,193,75,125,13,193,17,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,196,130,13,192,0,0,0,193,197,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,158,130,13,193,159,130,13,193,160,130,13,193,161,130,13,193,162,130,13,193,163,130,13,193,164,130,13,193,165,130,13,193,166,130,13,193,167,130,13,193,168,130,13,193,169,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,80,129,13,193,76,129,13,192,0,0,0,192,0,0,0,193,79,129,13,192,0,0,0,193,77,129,13,193,78,129,13,192,0,0,0,193,101,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,215,130,13,192,0,0,0,192,0,0,0,193,204,130,13,193,101,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,28,130,13,193,158,128,13,193,31,130,13,193,214,130,13,193,42,130,13,193,50,130,13,192,0,0,0,193,40,130,13,192,0,0,0,193,146,130,13,193,216,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,111,130,13,193,252,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,198,130,13,192,0,0,0,192,0,0,0,193,41,131,13,193,40,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,90,130,13,193,92,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,33,129,13,193,34,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,255,128,13,193,235,128,13,192,0,0,0,192,0,0,0,193,236,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,170,130,13,193,27,130,13,192,0,0,0,193,133,129,13,192,0,0,0,193,45,130,13,193,113,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,89,128,13,193,85,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,50,128,13,193,251,128,13,193,91,128,13,193,52,129,13,193,164,128,13,193,160,128,13,192,0,0,0,193,172,126,13,193,53,129,13,201,128,16,0,193,92,128,13,192,0,0,0,192,0,0,0,193,151,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,15,130,13,192,0,0,0,192,0,0,0,193,221,130,13,192,0,0,0,192,0,0,0,193,167,128,13,193,230,129,13,193,193,125,13,193,167,125,13,193,178,125,13,193,204,125,13,192,0,0,0,193,243,129,13,192,0,0,0,192,0,0,0,193,244,129,13,192,0,0,0,193,223,130,13,192,0,0,0,193,199,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,151,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,148,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,11,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,229,130,13,193,230,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,253,128,13,192,0,0,0,192,0,0,0,193,231,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,224,130,13,192,0,0,0,193,225,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,207,130,13,193,208,130,13,193,209,130,13,192,0,0,0,193,210,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,134,125,13,201,96,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,200,130,13,193,201,130,13,193,202,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,226,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,227,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,136,130,13,193,137,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,130,130,13,193,124,130,13,193,128,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,49,131,13,193,50,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,230,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,220,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,211,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,228,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,29,131,13,192,0,0,0,193,30,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,82,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,81,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,1,0,198,129,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,1,0,198,193,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,1,0,192,0,0,0,192,0,0,0,198,1,2,0,198,33,2,0,198,65,2,0,198,97,2,0,198,129,2,0,198,161,2,0,198,193,2,0,198,225,2,0,198,1,3,0,198,33,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,75,131,13,193,76,131,13,193,77,131,13,193,78,131,13,193,79,131,13,193,80,131,13,193,81,131,13,193,82,131,13,193,83,131,13,193,84,131,13,193,85,131,13,193,86,131,13,193,87,131,13,193,88,131,13,193,89,131,13,193,90,131,13,193,91,131,13,193,92,131,13,193,93,131,13,193,94,131,13,193,95,131,13,193,96,131,13,193,97,131,13,193,98,131,13,193,99,131,13,193,100,131,13,192,0,0,0,193,16,131,13,193,17,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,23,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,20,131,13,192,0,0,0,192,0,0,0,193,24,131,13,193,28,131,13,193,27,131,13,193,32,131,13,193,19,131,13,193,18,131,13,193,26,131,13,193,22,131,13,193,31,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,21,131,13,193,25,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,246,128,13,193,93,128,13,193,248,128,13,193,94,128,13,193,96,128,13,193,97,128,13,193,98,128,13,193,99,128,13,193,247,128,13,193,100,128,13,193,5,129,13,193,51,128,13,193,233,128,13,193,42,128,13,193,43,128,13,193,44,128,13,193,45,128,13,193,213,128,13,193,214,128,13,193,215,128,13,193,216,128,13,193,217,128,13,193,218,128,13,193,219,128,13,193,220,128,13,193,221,128,13,193,222,128,13,193,223,128,13,193,224,128,13,193,227,128,13,193,228,128,13,193,231,128,13,193,232,128,13,193,225,128,13,192,0,0,0,192,0,0,0,193,237,128,13,193,238,128,13,193,239,128,13,193,240,128,13,193,241,128,13,193,242,128,13,193,243,128,13,193,244,128,13,193,245,128,13,193,215,127,13,193,217,127,13,193,218,127,13,193,196,127,13,193,147,127,13,193,149,127,13,193,150,127,13,193,151,127,13,193,152,127,13,193,187,127,13,193,145,127,13,193,136,127,13,193,140,127,13,193,142,127,13,193,143,127,13,193,144,127,13,193,186,127,13,193,153,127,13,193,154,127,13,193,156,127,13,193,157,127,13,193,158,127,13,193,159,127,13,193,162,127,13,193,179,127,13,193,183,127,13,193,163,127,13,193,164,127,13,193,165,127,13,193,166,127,13,193,167,127,13,193,168,127,13,193,169,127,13,193,171,127,13,193,172,127,13,193,173,127,13,193,174,127,13,193,175,127,13,193,176,127,13,193,212,127,13,193,214,127,13,193,208,127,13,193,209,127,13,193,234,127,13,193,235,127,13,193,236,127,13,193,237,127,13,193,238,127,13,193,239,127,13,193,199,127,13,193,213,127,13,193,240,127,13,193,246,127,13,193,241,127,13,193,242,127,13,193,243,127,13,193,244,127,13,193,255,127,13,193,2,128,13,193,3,128,13,193,4,128,13,193,5,128,13,193,10,128,13,193,11,128,13,193,12,128,13,193,13,128,13,193,14,128,13,193,7,128,13,193,233,127,13,193,225,127,13,193,223,127,13,193,37,128,13,193,19,128,13,193,20,128,13,193,22,128,13,193,23,128,13,193,24,128,13,193,25,128,13,193,26,128,13,193,15,128,13,193,36,128,13,193,21,128,13,193,229,127,13,193,22,129,13,193,23,129,13,193,6,128,13,193,6,129,13,193,7,129,13,193,100,126,13,193,8,129,13,193,9,129,13,193,12,129,13,193,13,129,13,193,14,129,13,193,15,129,13,193,69,131,13,193,16,129,13,193,17,129,13,193,18,129,13,193,19,129,13,193,20,129,13,193,116,129,13,193,130,129,13,192,0,0,0,192,0,0,0,193,27,129,13,193,24,129,13,192,0,0,0,193,150,129,13,193,151,129,13,193,152,129,13,192,0,0,0,192,0,0,0,193,188,129,13,193,25,129,13,193,102,128,13,193,104,128,13,193,105,128,13,193,54,129,13,193,153,129,13,193,187,129,13,193,189,130,13,193,154,129,13,193,86,129,13,193,129,129,13,193,107,128,13,193,26,129,13,193,190,129,13,193,84,129,13,193,67,129,13,193,60,129,13,193,69,129,13,193,64,129,13,193,70,129,13,193,42,129,13,193,83,129,13,193,148,129,13,193,149,129,13,193,156,129,13,193,158,129,13,193,159,129,13,193,160,129,13,193,161,129,13,193,147,129,13,193,56,129,13,193,40,129,13,193,57,129,13,193,36,129,13,193,67,131,13,193,173,126,13,201,224,27,0,201,96,36,0,193,29,129,13,193,28,129,13,193,171,126,13,193,38,129,13,193,39,129,13,201,224,44,0,201,96,53,0,201,96,62,0,193,138,128,13,193,137,128,13,193,43,129,13,193,37,129,13,193,44,129,13,193,45,129,13,193,47,129,13,193,49,128,13,193,53,128,13,193,54,128,13,193,60,128,13,193,65,128,13,193,95,128,13,193,66,128,13,193,59,128,13,193,55,128,13,193,56,128,13,193,57,128,13,193,58,128,13,193,67,128,13,193,68,128,13,193,69,128,13,193,70,128,13,193,71,128,13,193,72,128,13,193,73,128,13,193,98,130,13,193,74,128,13,193,75,128,13,193,76,128,13,193,77,128,13,193,78,128,13,193,79,128,13,193,201,129,13,193,80,128,13,193,81,128,13,192,0,0,0,192,0,0,0,201,96,71,0,201,128,73,0,193,139,127,13,192,0,0,0,193,219,129,13,193,48,129,13,193,34,130,13,193,41,128,13,194,5,224,251,5,252,0,0,5,253,0,0,5,254,0,0,5,255,0,0,193,59,127,13,193,58,127,13,193,39,127,13,193,40,127,13,193,41,127,13,193,28,127,13,193,29,127,13,193,62,127,13,201,128,79,0,193,104,127,13,193,99,127,13,193,108,127,13,193,119,127,13,193,102,127,13,193,33,127,13,193,46,127,13,193,48,127,13,193,47,127,13,193,12,127,13,193,79,127,13,193,78,127,13,201,96,80,0,193,43,127,13,193,44,127,13,193,53,127,13,193,115,127,13,193,116,127,13,193,121,127,13,193,122,127,13,193,123,127,13,193,125,127,13,193,111,127,13,193,112,127,13,193,113,127,13,193,100,127,13,193,80,127,13,193,81,127,13,193,82,127,13,201,96,81,0,193,84,127,13,193,69,127,13,193,19,127,13,193,49,127,13,193,50,127,13,193,109,127,13,193,57,127,13,193,38,127,13,193,27,127,13,193,61,127,13,193,23,127,13,193,103,127,13,193,107,127,13,193,30,127,13,193,11,127,13,193,15,127,13,193,42,127,13,193,98,127,13,193,60,127,13,193,20,127,13,201,64,82,0,193,70,127,13,193,45,127,13,193,76,127,13,193,63,127,13,193,220,125,13,201,32,83,0,193,212,125,13,193,214,125,13,193,223,125,13,193,222,125,13,193,186,125,13,193,188,125,13,193,184,125,13,193,185,125,13,193,194,125,13,193,164,125,13,193,175,125,13,193,191,125,13,193,192,125,13,193,197,125,13,193,200,125,13,193,127,129,13,193,128,129,13,193,91,129,13,193,96,129,13,193,97,129,13,193,98,129,13,193,103,129,13,193,104,129,13,193,109,129,13,193,110,129,13,193,112,129,13,193,113,129,13,193,114,129,13,193,118,129,13,193,119,129,13,193,122,129,13,193,123,129,13,193,125,129,13,193,6,127,13,193,3,127,13,193,4,127,13,193,227,125,13,193,228,125,13,201,64,85,0,201,32,164,0,193,230,126,13,201,160,243,0,201,32,246,0,201,160,248,0,201,32,251,0,201,160,3,1,201,0,5,1,201,128,13,1,193,84,126,13,201,0,22,1,193,239,125,13,193,240,125,13,193,225,125,13,201,128,30,1,193,80,126,13,193,107,125,13,193,108,125,13,193,109,125,13,193,99,126,13,193,110,125,13,193,111,125,13,193,102,125,13,193,103,125,13,201,0,39,1,201,128,47,1,193,158,126,13,193,135,129,13,193,205,125,13,201,0,56,1,201,128,64,1,193,106,128,13,193,57,130,13,193,59,130,13,193,150,125,13,193,125,125,13,193,136,129,13,193,137,129,13,193,222,126,13,193,135,127,13,193,226,126,13,193,82,128,13,193,130,125,13,193,135,125,13,193,132,125,13,193,128,125,13,193,129,125,13,193,126,125,13,193,143,125,13,193,142,125,13,193,141,125,13,193,145,125,13,193,127,125,13,193,131,125,13,193,133,125,13,193,63,131,13,193,199,129,13,193,152,125,13,193,32,130,13,193,163,125,13,193,153,125,13,193,155,125,13,193,4,129,13,193,156,125,13,193,105,125,13,193,207,125,13,193,154,125,13,193,158,125,13,193,162,125,13,193,137,127,13,193,151,125,13,193,220,129,13,193,212,130,13,193,213,130,13,193,227,129,13,193,222,129,13,193,223,129,13,193,224,129,13,193,225,129,13,193,226,129,13,193,229,129,13,193,172,128,13,193,176,129,13,193,250,129,13,193,182,129,13,193,183,129,13,193,184,129,13,193,185,129,13,193,251,129,13,193,252,129,13,193,212,129,13,193,214,129,13,193,254,129,13,193,255,129,13,193,4,130,13,193,5,130,13,193,6,130,13,193,7,130,13,193,8,130,13,193,9,130,13,193,10,130,13,193,11,130,13,193,13,130,13,193,14,130,13,193,217,129,13,193,211,129,13,193,210,129,13,193,203,129,13,193,204,129,13,193,205,129,13,193,206,129,13,193,207,129,13,193,208,129,13,193,209,129,13,193,218,130,13,193,213,129,13,193,249,129,13,193,170,129,13,193,171,129,13,193,172,129,13,193,56,130,13,193,142,129,13,193,143,129,13,193,234,129,13,193,235,129,13,193,236,129,13,193,231,129,13,193,232,129,13,193,233,129,13,193,238,129,13,193,237,129,13,193,239,129,13,193,240,129,13,193,241,129,13,193,144,129,13,193,215,129,13,193,167,129,13,193,168,129,13,193,194,130,13,193,195,130,13,193,120,130,13,193,192,130,13,193,192,129,13,193,193,129,13,193,194,129,13,193,191,129,13,193,155,129,13,193,195,129,13,193,189,129,13,192,0,0,0,193,134,129,13,193,171,130,13,193,172,130,13,193,173,130,13,193,138,130,13,193,139,130,13,193,190,130,13,193,191,130,13,193,138,129,13,193,139,129,13,193,140,129,13,193,141,129,13,193,173,129,13,193,175,129,13,193,196,129,13,193,197,129,13,193,21,130,13,193,22,130,13,193,23,130,13,193,19,130,13,193,20,130,13,193,145,129,13,193,146,129,13,193,218,129,13,193,44,130,13,193,64,131,13,193,140,130,13,193,141,130,13,193,142,130,13,193,143,130,13,193,144,130,13,193,121,130,13,193,247,130,13,193,248,130,13,193,249,130,13,193,250,130,13,193,251,130,13,193,252,130,13,193,3,129,13,193,200,129,13,193,37,130,13,193,25,130,13,193,39,130,13,193,39,128,13,193,63,129,13,193,54,130,13,193,55,130,13,193,65,129,13,193,156,130,13,193,219,130,13,193,217,130,13,193,66,131,13,193,65,131,13,193,33,131,13,193,37,131,13,193,57,131,13,193,58,131,13,193,59,131,13,193,60,131,13,193,61,131,13,193,62,131,13,193,181,130,13,193,183,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,147,130,13,193,85,127,13,193,90,128,13,193,86,128,13,193,88,128,13,193,155,130,13,192,0,0,0,193,191,128,13,193,193,128,13,193,195,128,13,193,197,128,13,193,199,128,13,193,201,128,13,193,203,128,13,193,205,128,13,193,207,128,13,193,209,128,13,193,211,128,13,193,189,128,13,193,192,128,13,193,194,128,13,193,196,128,13,193,198,128,13,193,200,128,13,193,202,128,13,193,204,128,13,193,206,128,13,193,208,128,13,193,210,128,13,193,212,128,13,193,190,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,198,129,13,193,188,128,13,192,0,0,0,192,0,0,0,193,157,125,13,193,160,126,13,201,0,73,1,193,92,129,13,193,128,127,13,193,129,127,13,193,68,129,13,193,159,126,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,12,130,13,192,0,0,0,192,0,0,0,193,246,129,13,193,245,129,13,193,247,129,13,193,248,129,13,192,0,0,0,192,0,0,0,193,166,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,187,125,13,193,168,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,147,125,13,193,177,129,13,192,0,0,0,192,0,0,0,193,178,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,180,129,13,193,181,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,85,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,253,129,13,193,16,130,13,193,17,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,18,130,13,193,2,130,13,193,3,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,41,130,13,193,24,130,13,193,216,129,13,192,0,0,0,192,0,0,0,193,30,130,13,192,0,0,0,193,2,127,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,160,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,161,125,13,192,0,0,0,192,0,0,0,192,0,0,0,193,242,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,46,128,13,193,52,128,13,193,83,128,13,193,84,128,13,193,47,128,13,193,95,130,13,5,5,121,13,5,5,124,13,193,5,125,13,5,5,122,13,5,5,123,13,193,3,125,13,193,2,125,13,193,11,125,13,193,101,125,13,193,9,125,13,193,10,125,13,193,21,125,13,193,48,125,13,193,13,125,13,193,68,125,13,193,41,125,13,193,36,125,13,193,37,125,13,193,42,125,13,193,93,125,13,193,49,125,13,193,71,125,13,193,90,125,13,193,16,125,13,193,15,125,13,193,19,125,13,193,18,125,13,193,22,125,13,193,23,125,13,193,25,125,13,193,92,125,13,193,73,125,13,193,99,125,13,193,98,125,13,193,87,125,13,193,91,125,13,193,97,125,13,193,86,125,13,193,82,125,13,193,83,125,13,193,84,125,13,193,94,125,13,193,50,125,13,193,95,125,13,193,44,125,13,193,88,125,13,201,0,82,1,193,77,125,13,193,85,125,13,193,89,125,13,193,78,125,13,193,79,125,13,193,52,125,13,201,0,83,1,201,0,84,1,193,53,125,13,193,114,125,13,193,115,125,13,193,113,125,13,193,116,125,13,193,117,125,13,193,118,125,13,193,121,125,13,193,120,125,13,193,119,125,13,193,74,125,13,193,6,125,13,193,7,125,13,193,43,125,13,201,0,85,1,201,128,93,1,201,0,102,1,193,122,125,13,193,123,125,13,193,124,125,13,201,128,110,1,193,198,125,13,201,0,119,1,201,128,127,1,193,203,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,178,128,13,193,173,128,13,193,108,128,13,193,109,128,13,193,110,128,13,193,111,128,13,193,112,128,13,193,113,128,13,193,114,128,13,193,115,128,13,193,116,128,13,193,119,128,13,193,120,128,13,193,121,128,13,193,122,128,13,193,147,128,13,193,123,128,13,193,124,128,13,193,125,128,13,193,126,128,13,193,127,128,13,193,128,128,13,193,129,128,13,193,130,128,13,193,131,128,13,193,132,128,13,193,134,128,13,193,135,128,13,193,136,128,13,193,117,128,13,193,118,128,13,193,174,128,13,193,175,128,13,193,176,128,13,193,166,128,13,201,0,136,1,193,162,128,13,193,154,128,13,193,155,128,13,193,157,128,13,193,153,128,13,193,68,131,13,193,64,130,13,193,114,130,13,193,89,130,13,193,116,130,13,193,99,130,13,193,117,130,13,193,100,130,13,193,118,130,13,193,143,128,13,193,115,130,13,201,128,144,1,201,0,153,1,201,128,161,1,193,119,130,13,193,112,130,13,193,102,130,13,193,103,130,13,193,104,130,13,193,105,130,13,193,71,130,13,193,106,130,13,193,73,130,13,193,216,126,13,193,74,130,13,193,107,130,13,193,108,130,13,193,109,130,13,193,110,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,69,130,13,193,217,126,13,193,115,129,13,193,180,128,13,193,68,130,13,193,145,130,13,193,156,128,13,193,88,130,13,192,0,0,0,192,0,0,0,193,87,128,13,193,64,128,13,193,65,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,193,130,13,193,103,128,13,193,152,128,13,193,159,128,13,193,29,130,13,193,35,130,13,193,150,128,13,193,148,128,13,193,149,128,13,193,165,128,13,192,0,0,0,192,0,0,0,192,0,0,0,193,168,128,13,192,0,0,0,193,169,128,13,193,170,128,13,192,0,0,0,192,0,0,0,192,0,0,0,193,177,128,13,192,0,0,0,192,0,0,0,193,163,128,13,193,144,128,13,193,139,128,13,193,161,128,13,193,58,129,13,193,179,128,13,193,145,128,13,193,142,128,13,193,133,128,13,193,146,128,13,192,0,0,0,192,0,0,0,192,0,0,0,193,34,131,13,193,35,131,13,193,36,131,13,193,38,131,13,193,39,131,13,193,42,131,13,193,46,131,13,193,43,131,13,193,44,131,13,193,45,131,13,193,47,131,13,193,48,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,203,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,176,125,13,193,149,125,13,193,146,125,13,193,177,125,13,193,34,125,13,193,26,125,13,193,54,125,13,193,69,125,13,193,32,125,13,193,55,125,13,193,112,125,13,193,27,125,13,193,182,125,13,193,183,125,13,193,165,125,13,193,195,125,13,193,196,125,13,193,202,125,13,193,179,125,13,193,181,125,13,193,65,125,13,193,106,125,13,193,56,125,13,193,4,125,13,193,51,125,13,193,46,125,13,201,0,170,1,193,58,125,13,193,35,125,13,193,14,125,13,193,24,125,13,193,31,125,13,193,100,125,13,193,28,125,13,193,57,125,13,193,64,125,13,193,92,126,13,193,95,126,13,193,201,125,13,193,206,125,13,193,79,126,13,201,128,178,1,193,101,126,13,201,0,187,1,201,128,195,1,201,0,204,1,193,170,126,13,192,0,0,0,201,128,212,1,201,224,213,1,201,96,222,1,193,55,129,13,193,141,127,13,193,163,129,13,193,27,128,13,193,28,128,13,193,38,128,13,193,51,129,13,192,0,0,0,193,30,129,13,193,31,129,13,193,32,129,13,193,49,129,13,193,50,129,13,193,59,129,13,193,46,129,13,193,35,129,13,193,41,129,13,193,200,127,13,193,182,127,13,193,189,127,13,193,211,127,13,193,184,127,13,193,185,127,13,193,201,127,13,193,228,127,13,193,224,127,13,193,220,127,13,193,222,127,13,193,16,128,13,193,194,127,13,193,178,127,13,193,205,127,13,193,247,127,13,193,248,127,13,193,249,127,13,193,35,128,13,193,227,127,13,193,30,128,13,193,181,127,13,193,191,127,13,193,9,128,13,193,203,127,13,193,210,127,13,193,216,127,13,193,232,127,13,193,190,127,13,193,170,127,13,193,245,127,13,193,204,127,13,193,12,125,13,193,96,125,13,193,20,125,13,193,66,125,13,193,61,125,13,193,59,125,13,193,60,125,13,193,74,126,13,193,67,125,13,193,81,125,13,193,80,125,13,193,105,129,13,193,94,129,13,193,93,129,13,193,120,129,13,193,121,129,13,193,250,127,13,193,26,127,13,193,130,127,13,193,77,127,13,193,34,127,13,193,86,127,13,193,87,127,13,193,66,127,13,193,114,127,13,193,89,127,13,193,21,127,13,193,120,127,13,193,36,127,13,193,13,127,13,193,101,127,13,193,55,127,13,193,252,127,13,193,253,127,13,193,52,127,13,193,35,127,13,193,65,127,13,193,105,127,13,193,106,127,13,193,126,127,13,193,74,127,13,193,51,127,13,193,93,127,13,193,56,127,13,193,94,127,13,193,22,127,13,193,251,127,13,193,131,127,13,193,134,127,13,193,75,127,13,193,88,127,13,193,54,127,13,193,90,127,13,193,71,127,13,193,72,127,13,193,14,127,13,193,73,127,13,193,92,127,13,193,254,127,13,193,64,127,13,193,37,127,13,193,110,127,13,193,17,127,13,193,43,130,13,193,7,127,13,193,8,127,13,193,10,127,13,193,9,127,13,193,219,125,13,193,210,125,13,193,211,125,13,193,218,125,13,201,224,230,1,201,96,239,1,193,95,129,13,193,213,125,13,193,141,128,13,193,140,128,13,193,208,125,13,193,209,125,13,193,207,127,13,193,8,128,13,193,231,127,13,193,32,128,13,193,192,127,13,193,193,127,13,193,221,127,13,193,206,127,13,193,230,127,13,193,33,128,13,193,34,128,13,193,31,128,13,193,130,126,13,201,224,247,1,201,96,0,2,201,224,8,2,193,70,125,13,201,96,17,2,193,226,125,13,193,238,125,13,201,32,85,2,193,85,126,13,201,160,93,2,201,32,102,2,201,160,110,2,201,32,119,2,201,160,127,2,201,32,136,2,201,160,144,2,201,32,153,2,201,160,161,2,201,0,163,2,193,215,125,13,193,140,125,13,193,131,129,13,193,99,129,13,193,100,129,13,193,101,129,13,193,102,129,13,193,21,129,13,193,10,129,13,193,71,129,13,193,51,130,13,193,52,130,13,193,53,130,13,193,48,128,13,193,186,129,13,193,87,130,13,193,47,130,13,193,61,128,13,193,48,130,13,193,181,128,13,193,77,130,13,193,87,129,13,193,89,129,13,193,78,130,13,193,72,129,13,193,79,130,13,193,80,130,13,193,81,130,13,193,83,130,13,193,86,130,13,193,228,129,13,193,93,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,124,129,13,193,106,129,13,193,107,129,13,193,108,129,13,193,117,129,13,193,144,125,13,193,148,125,13,193,139,125,13,193,58,130,13,193,60,130,13,193,62,130,13,193,63,130,13,193,61,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,61,129,13,193,62,129,13,193,171,128,13,193,33,130,13,193,66,129,13,193,73,129,13,193,75,129,13,193,165,129,13,193,166,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,229,128,13,193,70,130,13,193,76,130,13,193,26,130,13,193,202,129,13,193,162,129,13,193,132,129,13,193,157,129,13,193,164,129,13,193,221,129,13,193,36,130,13,193,38,130,13,193,49,130,13,193,46,130,13,193,66,130,13,193,67,130,13,193,72,130,13,193,88,129,13,193,90,129,13,193,82,130,13,193,75,130,13,193,85,130,13,193,91,130,13,193,96,130,13,193,62,128,13,193,74,129,13,193,97,130,13,193,174,129,13,193,94,130,13,193,111,129,13,193,126,129,13,193,157,130,13,193,132,127,13,193,133,127,13,193,124,127,13,193,127,127,13,193,148,127,13,193,63,128,13,193,91,127,13,193,138,127,13,193,117,127,13,193,160,127,13,193,161,127,13,193,146,127,13,193,118,127,13,193,95,127,13,192,0,0,0,193,97,127,13,193,216,125,13,193,217,125,13,193,5,127,13,193,93,126,13,193,94,126,13,193,78,126,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,31,127,13,193,32,127,13,193,177,127,13,193,188,127,13,193,180,127,13,193,202,127,13,193,219,127,13,193,226,127,13,193,18,128,13,193,29,128,13,193,195,127,13,193,40,128,13,193,197,127,13,193,198,127,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,8,125,13,193,33,125,13,193,29,125,13,193,30,125,13,193,72,125,13,193,39,125,13,193,224,125,13,193,84,130,13,193,47,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,180,125,13,193,169,125,13,193,170,125,13,193,171,125,13,193,172,125,13,193,190,125,13,193,199,125,13,193,173,125,13,193,174,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,133,0,5,0,7,131,13,0,5,0,70,0,188,126,13,0,5,0,70,0,187,126,13,0,5,0,71,0,188,126,13,0,5,0,71,0,187,126,13,0,5,0,72,0,188,126,13,0,5,0,72,0,187,126,13,0,5,0,73,0,188,126,13,0,5,0,73,0,187,126,13,0,5,0,74,0,188,126,13,0,5,0,74,0,187,126,13,0,133,0,5,0,253,130,13,0,133,0,5,0,255,130,13,0,133,0,5,0,10,131,13,0,133,0,5,0,12,131,13,0,133,0,5,0,254,130,13,0,133,0,5,0,2,131,13,0,133,0,5,0,3,131,13,0,133,0,5,0,4,131,13,0,133,0,5,0,6,131,13,0,133,0,5,0,8,131,13,0,133,0,5,0,9,131,13,0,133,0,5,0,11,131,13,0,133,0,5,0,13,131,13,0,69,0,5,0,14,131,13,0,133,0,5,0,15,131,13,0,5,0,70,0,157,126,13,0,5,0,70,0,156,126,13,0,5,0,71,0,157,126,13,0,5,0,71,0,156,126,13,0,5,0,72,0,157,126,13,0,5,0,72,0,156,126,13,0,5,0,73,0,157,126,13,0,5,0,73,0,156,126,13,0,5,0,74,0,157,126,13,0,5,0,74,0,156,126,13,0,5,0,70,0,179,126,13,0,5,0,70,0,178,126,13,0,5,0,71,0,179,126,13,0,5,0,71,0,178,126,13,0,5,0,72,0,179,126,13,0,5,0,72,0,178,126,13,0,5,0,73,0,179,126,13,0,5,0,73,0,178,126,13,0,5,0,74,0,179,126,13,0,5,0,74,0,178,126,13,0,5,0,70,0,185,126,13,0,5,0,70,0,184,126,13,0,5,0,71,0,185,126,13,0,5,0,71,0,184,126,13,0,5,0,72,0,185,126,13,0,5,0,72,0,184,126,13,0,5,0,73,0,185,126,13,0,5,0,73,0,184,126,13,0,5,0,74,0,185,126,13,0,5,0,74,0,184,126,13,0,5,0,70,0,191,126,13,0,5,0,70,0,190,126,13,0,5,0,71,0,191,126,13,0,5,0,71,0,190,126,13,0,5,0,72,0,191,126,13,0,5,0,72,0,190,126,13,0,5,0,73,0,191,126,13,0,5,0,73,0,190,126,13,0,5,0,74,0,191,126,13,0,5,0,74,0,190,126,13,0,5,0,70,0,176,126,13,0,5,0,70,0,175,126,13,0,5,0,71,0,176,126,13,0,5,0,71,0,175,126,13,0,5,0,72,0,176,126,13,0,5,0,72,0,175,126,13,0,5,0,73,0,176,126,13,0,5,0,73,0,175,126,13,0,5,0,74,0,176,126,13,0,5,0,74,0,175,126,13,0,5,0,70,0,18,126,13,0,5,0,70,0,27,126,13,0,5,0,70,0,57,126,13,0,5,0,70,0,30,126,13,0,5,0,70,0,33,126,13,0,5,0,70,0,97,126,13,0,5,0,70,0,21,126,13,0,5,0,70,0,51,126,13,0,5,0,70,0,54,126,13,0,5,0,70,0,24,126,13,0,5,0,70,0,39,126,13,0,5,0,70,0,48,126,13,0,5,0,70,0,42,126,13,0,5,0,70,0,36,126,13,0,5,0,70,0,45,126,13,0,5,0,70,0,60,126,13,0,5,0,70,0,63,126,13,0,5,0,70,0,221,126,13,0,5,0,70,0,147,126,13,0,5,0,70,0,150,126,13,0,5,0,70,0,153,126,13,0,5,0,71,0,18,126,13,0,5,0,71,0,27,126,13,0,5,0,71,0,57,126,13,0,5,0,71,0,30,126,13,0,5,0,71,0,33,126,13,0,5,0,71,0,97,126,13,0,5,0,71,0,21,126,13,0,5,0,71,0,51,126,13,0,5,0,71,0,54,126,13,0,5,0,71,0,24,126,13,0,5,0,71,0,39,126,13,0,5,0,71,0,48,126,13,0,5,0,71,0,42,126,13,0,5,0,71,0,36,126,13,0,5,0,71,0,45,126,13,0,5,0,71,0,60,126,13,0,5,0,71,0,63,126,13,0,5,0,71,0,221,126,13,0,5,0,71,0,147,126,13,0,5,0,71,0,150,126,13,0,5,0,71,0,153,126,13,0,5,0,72,0,18,126,13,0,5,0,72,0,27,126,13,0,5,0,72,0,57,126,13,0,5,0,72,0,30,126,13,0,5,0,72,0,33,126,13,0,5,0,72,0,97,126,13,0,5,0,72,0,21,126,13,0,5,0,72,0,51,126,13,0,5,0,72,0,54,126,13,0,5,0,72,0,24,126,13,0,5,0,72,0,39,126,13,0,5,0,72,0,48,126,13,0,5,0,72,0,42,126,13,0,5,0,72,0,36,126,13,0,5,0,72,0,45,126,13,0,5,0,72,0,60,126,13,0,5,0,72,0,63,126,13,0,5,0,72,0,221,126,13,0,5,0,72,0,147,126,13,0,5,0,72,0,150,126,13,0,5,0,72,0,153,126,13,0,5,0,73,0,18,126,13,0,5,0,73,0,27,126,13,0,5,0,73,0,57,126,13,0,5,0,73,0,30,126,13,0,5,0,73,0,33,126,13,0,5,0,73,0,97,126,13,0,5,0,73,0,21,126,13,0,5,0,73,0,51,126,13,0,5,0,73,0,54,126,13,0,5,0,73,0,24,126,13,0,5,0,73,0,39,126,13,0,5,0,73,0,48,126,13,0,5,0,73,0,42,126,13,0,5,0,73,0,36,126,13,0,5,0,73,0,45,126,13,0,5,0,73,0,60,126,13,0,5,0,73,0,63,126,13,0,5,0,73,0,221,126,13,0,5,0,73,0,147,126,13,0,5,0,73,0,150,126,13,0,5,0,73,0,153,126,13,0,5,0,74,0,18,126,13,0,5,0,74,0,27,126,13,0,5,0,74,0,57,126,13,0,5,0,74,0,30,126,13,0,5,0,74,0,33,126,13,0,5,0,74,0,97,126,13,0,5,0,74,0,21,126,13,0,5,0,74,0,51,126,13,0,5,0,74,0,54,126,13,0,5,0,74,0,24,126,13,0,5,0,74,0,39,126,13,0,5,0,74,0,48,126,13,0,5,0,74,0,42,126,13,0,5,0,74,0,36,126,13,0,5,0,74,0,45,126,13,0,5,0,74,0,60,126,13,0,5,0,74,0,63,126,13,0,5,0,74,0,221,126,13,0,5,0,74,0,147,126,13,0,5,0,74,0,150,126,13,0,5,0,74,0,153,126,13,0,5,0,70,0,19,126,13,0,5,0,70,0,28,126,13,0,5,0,70,0,58,126,13,0,5,0,70,0,31,126,13,0,5,0,70,0,34,126,13,0,5,0,70,0,96,126,13,0,5,0,70,0,22,126,13,0,5,0,70,0,52,126,13,0,5,0,70,0,55,126,13,0,5,0,70,0,25,126,13,0,5,0,70,0,40,126,13,0,5,0,70,0,49,126,13,0,5,0,70,0,43,126,13,0,5,0,70,0,37,126,13,0,5,0,70,0,46,126,13,0,5,0,70,0,61,126,13,0,5,0,70,0,64,126,13,0,5,0,70,0,220,126,13,0,5,0,70,0,219,126,13,0,5,0,70,0,148,126,13,0,5,0,70,0,151,126,13,0,5,0,70,0,154,126,13,0,5,0,71,0,19,126,13,0,5,0,71,0,28,126,13,0,5,0,71,0,58,126,13,0,5,0,71,0,31,126,13,0,5,0,71,0,34,126,13,0,5,0,71,0,96,126,13,0,5,0,71,0,22,126,13,0,5,0,71,0,52,126,13,0,5,0,71,0,55,126,13,0,5,0,71,0,25,126,13,0,5,0,71,0,40,126,13,0,5,0,71,0,49,126,13,0,5,0,71,0,43,126,13,0,5,0,71,0,37,126,13,0,5,0,71,0,46,126,13,0,5,0,71,0,61,126,13,0,5,0,71,0,64,126,13,0,5,0,71,0,220,126,13,0,5,0,71,0,219,126,13,0,5,0,71,0,148,126,13,0,5,0,71,0,151,126,13,0,5,0,71,0,154,126,13,0,5,0,72,0,19,126,13,0,5,0,72,0,28,126,13,0,5,0,72,0,58,126,13,0,5,0,72,0,31,126,13,0,5,0,72,0,34,126,13,0,5,0,72,0,96,126,13,0,5,0,72,0,22,126,13,0,5,0,72,0,52,126,13,0,5,0,72,0,55,126,13,0,5,0,72,0,25,126,13,0,5,0,72,0,40,126,13,0,5,0,72,0,49,126,13,0,5,0,72,0,43,126,13,0,5,0,72,0,37,126,13,0,5,0,72,0,46,126,13,0,5,0,72,0,61,126,13,0,5,0,72,0,64,126,13,0,5,0,72,0,220,126,13,0,5,0,72,0,219,126,13,0,5,0,72,0,148,126,13,0,5,0,72,0,151,126,13,0,5,0,72,0,154,126,13,0,5,0,73,0,19,126,13,0,5,0,73,0,28,126,13,0,5,0,73,0,58,126,13,0,5,0,73,0,31,126,13,0,5,0,73,0,34,126,13,0,5,0,73,0,96,126,13,0,5,0,73,0,22,126,13,0,5,0,73,0,52,126,13,0,5,0,73,0,55,126,13,0,5,0,73,0,25,126,13,0,5,0,73,0,40,126,13,0,5,0,73,0,49,126,13,0,5,0,73,0,43,126,13,0,5,0,73,0,37,126,13,0,5,0,73,0,46,126,13,0,5,0,73,0,61,126,13,0,5,0,73,0,64,126,13,0,5,0,73,0,220,126,13,0,5,0,73,0,219,126,13,0,5,0,73,0,148,126,13,0,5,0,73,0,151,126,13,0,5,0,73,0,154,126,13,0,5,0,74,0,19,126,13,0,5,0,74,0,28,126,13,0,5,0,74,0,58,126,13,0,5,0,74,0,31,126,13,0,5,0,74,0,34,126,13,0,5,0,74,0,96,126,13,0,5,0,74,0,22,126,13,0,5,0,74,0,52,126,13,0,5,0,74,0,55,126,13,0,5,0,74,0,25,126,13,0,5,0,74,0,40,126,13,0,5,0,74,0,49,126,13,0,5,0,74,0,43,126,13,0,5,0,74,0,37,126,13,0,5,0,74,0,46,126,13,0,5,0,74,0,61,126,13,0,5,0,74,0,64,126,13,0,5,0,74,0,220,126,13,0,5,0,74,0,219,126,13,0,5,0,74,0,148,126,13,0,5,0,74,0,151,126,13,0,5,0,74,0,154,126,13,0,5,0,70,0,220,126,13,0,5,224,251,0,0,0,0,0,5,0,71,0,220,126,13,0,5,0,252,0,0,0,0,0,5,0,72,0,220,126,13,0,5,0,253,0,0,0,0,0,5,0,73,0,220,126,13,0,5,0,254,0,0,0,0,0,5,0,74,0,220,126,13,0,5,0,255,0,0,0,0,0,5,0,70,0,221,126,13,0,5,224,251,0,0,0,0,0,5,0,71,0,221,126,13,0,5,0,252,0,0,0,0,0,5,0,72,0,221,126,13,0,5,0,253,0,0,0,0,0,5,0,73,0,221,126,13,0,5,0,254,0,0,0,0,0,5,0,74,0,221,126,13,0,5,0,255,0,0,0,0,0,5,0,70,0,219,126,13,0,5,224,251,0,0,0,0,0,5,0,71,0,219,126,13,0,5,0,252,0,0,0,0,0,5,0,72,0,219,126,13,0,5,0,253,0,0,0,0,0,5,0,73,0,219,126,13,0,5,0,254,0,0,0,0,0,5,0,74,0,219,126,13,0,5,0,255,0,0,0,0,0,5,0,70,0,67,126,13,0,5,0,70,0,66,126,13,0,5,0,71,0,67,126,13,0,5,0,71,0,66,126,13,0,5,0,72,0,67,126,13,0,5,0,72,0,66,126,13,0,5,0,73,0,67,126,13,0,5,0,73,0,66,126,13,0,5,0,74,0,67,126,13,0,5,0,74,0,66,126,13,0,5,0,70,0,91,126,13,0,5,0,70,0,90,126,13,0,5,0,71,0,91,126,13,0,5,0,71,0,90,126,13,0,5,0,72,0,91,126,13,0,5,0,72,0,90,126,13,0,5,0,73,0,91,126,13,0,5,0,73,0,90,126,13,0,5,0,74,0,91,126,13,0,5,0,74,0,90,126,13,0,5,0,70,0,229,125,13,0,5,0,76,0,235,125,13,0,5,0,77,0,231,125,13,0,5,0,77,0,235,125,13,0,5,0,78,0,231,125,13,0,5,0,78,0,235,125,13,0,5,0,79,0,231,125,13,0,5,0,79,0,235,125,13,0,5,0,80,0,231,125,13,0,5,0,80,0,235,125,13,0,5,0,81,0,231,125,13,0,5,0,81,0,235,125,13,0,5,0,82,0,231,125,13,0,5,0,70,0,83,126,13,0,5,0,70,0,82,126,13,0,5,0,71,0,83,126,13,0,5,0,71,0,82,126,13,0,5,0,72,0,83,126,13,0,5,0,72,0,82,126,13,0,5,0,73,0,83,126,13,0,5,0,73,0,82,126,13,0,5,0,74,0,83,126,13,0,5,0,74,0,82,126,13,0,5,0,70,0,77,126,13,0,5,0,70,0,76,126,13,0,5,0,71,0,77,126,13,0,5,0,71,0,76,126,13,0,5,0,72,0,77,126,13,0,5,0,72,0,76,126,13,0,5,0,73,0,77,126,13,0,5,0,73,0,76,126,13,0,5,0,74,0,77,126,13,0,5,0,74,0,76,126,13,0,5,0,70,0,255,125,13,0,5,0,70,0,254,125,13,0,5,0,71,0,255,125,13,0,5,0,71,0,254,125,13,0,5,0,72,0,255,125,13,0,5,0,72,0,254,125,13,0,5,0,73,0,255,125,13,0,5,0,73,0,254,125,13,0,5,0,74,0,255,125,13,0,5,0,74,0,254,125,13,0,5,0,70,0,73,126,13,0,5,0,70,0,72,126,13,0,5,0,71,0,73,126,13,0,5,0,71,0,72,126,13,0,5,0,72,0,73,126,13,0,5,0,72,0,72,126,13,0,5,0,73,0,73,126,13,0,5,0,73,0,72,126,13,0,5,0,74,0,73,126,13,0,5,0,74,0,72,126,13,0,5,0,70,0,133,126,13,0,5,0,70,0,132,126,13,0,5,0,71,0,133,126,13,0,5,0,71,0,132,126,13,0,5,0,72,0,133,126,13,0,5,0,72,0,132,126,13,0,5,0,73,0,133,126,13,0,5,0,73,0,132,126,13,0,5,0,74,0,133,126,13,0,5,0,74,0,132,126,13,0,5,0,70,0,136,126,13,0,5,0,70,0,135,126,13,0,5,0,71,0,136,126,13,0,5,0,71,0,135,126,13,0,5,0,72,0,136,126,13,0,5,0,72,0,135,126,13,0,5,0,73,0,136,126,13,0,5,0,73,0,135,126,13,0,5,0,74,0,136,126,13,0,5,0,74,0,135,126,13,0,5,0,70,0,70,126,13,0,5,0,70,0,69,126,13,0,5,0,71,0,70,126,13,0,5,0,71,0,69,126,13,0,5,0,72,0,70,126,13,0,5,0,72,0,69,126,13,0,5,0,73,0,70,126,13,0,5,0,73,0,69,126,13,0,5,0,74,0,70,126,13,0,5,0,74,0,69,126,13,0,5,0,70,0,249,125,13,0,5,0,70,0,248,125,13,0,5,0,71,0,249,125,13,0,5,0,71,0,248,125,13,0,5,0,72,0,249,125,13,0,5,0,72,0,248,125,13,0,5,0,73,0,249,125,13,0,5,0,73,0,248,125,13,0,5,0,74,0,249,125,13,0,5,0,74,0,248,125,13,0,5,0,70,0,252,125,13,0,5,0,70,0,251,125,13,0,5,0,71,0,252,125,13,0,5,0,71,0,251,125,13,0,5,0,72,0,252,125,13,0,5,0,72,0,251,125,13,0,5,0,73,0,252,125,13,0,5,0,73,0,251,125,13,0,5,0,74,0,252,125,13,0,5,0,74,0,251,125,13,0,5,0,70,0,10,126,13,0,5,0,70,0,9,126,13,0,5,0,71,0,10,126,13,0,5,0,71,0,9,126,13,0,5,0,72,0,10,126,13,0,5,0,72,0,9,126,13,0,5,0,73,0,10,126,13,0,5,0,73,0,9,126,13,0,5,0,74,0,10,126,13,0,5,0,74,0,9,126,13,0,5,0,70,0,4,126,13,0,5,0,70,0,3,126,13,0,5,0,71,0,4,126,13,0,5,0,71,0,3,126,13,0,5,0,72,0,4,126,13,0,5,0,72,0,3,126,13,0,5,0,73,0,4,126,13,0,5,0,73,0,3,126,13,0,5,0,74,0,4,126,13,0,5,0,74,0,3,126,13,0,5,0,70,0,243,125,13,0,5,0,70,0,242,125,13,0,5,0,71,0,243,125,13,0,5,0,71,0,242,125,13,0,5,0,72,0,243,125,13,0,5,0,72,0,242,125,13,0,5,0,73,0,243,125,13,0,5,0,73,0,242,125,13,0,5,0,74,0,243,125,13,0,5,0,74,0,242,125,13,0,5,0,70,0,246,125,13,0,5,0,70,0,245,125,13,0,5,0,71,0,246,125,13,0,5,0,71,0,245,125,13,0,5,0,72,0,246,125,13,0,5,0,72,0,245,125,13,0,5,0,73,0,246,125,13,0,5,0,73,0,245,125,13,0,5,0,74,0,246,125,13,0,5,0,74,0,245,125,13,0,5,0,70,0,182,126,13,0,5,0,70,0,181,126,13,0,5,0,71,0,182,126,13,0,5,0,71,0,181,126,13,0,5,0,72,0,182,126,13,0,5,0,72,0,181,126,13,0,5,0,73,0,182,126,13,0,5,0,73,0,181,126,13,0,5,0,74,0,182,126,13,0,5,0,74,0,181,126,13,0,5,0,70,0,194,126,13,0,5,0,70,0,193,126,13,0,5,0,71,0,194,126,13,0,5,0,71,0,193,126,13,0,5,0,72,0,194,126,13,0,5,0,72,0,193,126,13,0,5,0,73,0,194,126,13,0,5,0,73,0,193,126,13,0,5,0,74,0,194,126,13,0,5,0,74,0,193,126,13,0,5,0,70,0,197,126,13,0,5,0,70,0,196,126,13,0,5,0,71,0,197,126,13,0,5,0,71,0,196,126,13,0,5,0,72,0,197,126,13,0,5,0,72,0,196,126,13,0,5,0,73,0,197,126,13,0,5,0,73,0,196,126,13,0,5,0,74,0,197,126,13,0,5,0,74,0,196,126,13,0,5,0,70,0,139,126,13,0,5,0,70,0,138,126,13,0,5,0,71,0,139,126,13,0,5,0,71,0,138,126,13,0,5,0,72,0,139,126,13,0,5,0,72,0,138,126,13,0,5,0,73,0,139,126,13,0,5,0,73,0,138,126,13,0,5,0,74,0,139,126,13,0,5,0,74,0,138,126,13,0,5,0,70,0,13,126,13,0,5,0,70,0,12,126,13,0,5,0,71,0,13,126,13,0,5,0,71,0,12,126,13,0,5,0,72,0,13,126,13,0,5,0,72,0,12,126,13,0,5,0,73,0,13,126,13,0,5,0,73,0,12,126,13,0,5,0,74,0,13,126,13,0,5,0,74,0,12,126,13,0,5,0,70,0,88,126,13,0,5,0,70,0,87,126,13,0,5,0,71,0,88,126,13,0,5,0,71,0,87,126,13,0,5,0,72,0,88,126,13,0,5,0,72,0,87,126,13,0,5,0,73,0,88,126,13,0,5,0,73,0,87,126,13,0,5,0,74,0,88,126,13,0,5,0,74,0,87,126,13,0,5,0,70,0,16,126,13,0,5,0,70,0,15,126,13,0,5,0,71,0,16,126,13,0,5,0,71,0,15,126,13,0,5,0,72,0,16,126,13,0,5,0,72,0,15,126,13,0,5,0,73,0,16,126,13,0,5,0,73,0,15,126,13,0,5,0,74,0,16,126,13,0,5,0,74,0,15,126,13,0,5,0,70,0,200,126,13,0,5,0,70,0,199,126,13,0,5,0,71,0,200,126,13,0,5,0,71,0,199,126,13,0,5,0,72,0,200,126,13,0,5,0,72,0,199,126,13,0,5,0,73,0,200,126,13,0,5,0,73,0,199,126,13,0,5,0,74,0,200,126,13,0,5,0,74,0,199,126,13,0,5,0,70,0,212,126,13,0,5,0,70,0,211,126,13,0,5,0,71,0,212,126,13,0,5,0,71,0,211,126,13,0,5,0,72,0,212,126,13,0,5,0,72,0,211,126,13,0,5,0,73,0,212,126,13,0,5,0,73,0,211,126,13,0,5,0,74,0,212,126,13,0,5,0,74,0,211,126,13,0,5,0,70,0,206,126,13,0,5,0,70,0,205,126,13,0,5,0,71,0,206,126,13,0,5,0,71,0,205,126,13,0,5,0,72,0,206,126,13,0,5,0,72,0,205,126,13,0,5,0,73,0,206,126,13,0,5,0,73,0,205,126,13,0,5,0,74,0,206,126,13,0,5,0,74,0,205,126,13,0,5,0,70,0,209,126,13,0,5,0,70,0,208,126,13,0,5,0,71,0,209,126,13,0,5,0,71,0,208,126,13,0,5,0,72,0,209,126,13,0,5,0,72,0,208,126,13,0,5,0,73,0,209,126,13,0,5,0,73,0,208,126,13,0,5,0,74,0,209,126,13,0,5,0,74,0,208,126,13,0,5,0,70,0,105,126,13,0,5,0,70,0,104,126,13,0,5,0,71,0,105,126,13,0,5,0,71,0,104,126,13,0,5,0,72,0,105,126,13,0,5,0,72,0,104,126,13,0,5,0,73,0,105,126,13,0,5,0,73,0,104,126,13,0,5,0,74,0,105,126,13,0,5,0,74,0,104,126,13,0,5,0,70,0,108,126,13,0,5,0,70,0,107,126,13,0,5,0,71,0,108,126,13,0,5,0,71,0,107,126,13,0,5,0,72,0,108,126,13,0,5,0,72,0,107,126,13,0,5,0,73,0,108,126,13,0,5,0,73,0,107,126,13,0,5,0,74,0,108,126,13,0,5,0,74,0,107,126,13,0,5,0,70,0,142,126,13,0,5,0,70,0,141,126,13,0,5,0,71,0,142,126,13,0,5,0,71,0,141,126,13,0,5,0,72,0,142,126,13,0,5,0,72,0,141,126,13,0,5,0,73,0,142,126,13,0,5,0,73,0,141,126,13,0,5,0,74,0,142,126,13,0,5,0,74,0,141,126,13,0,5,0,70,0,145,126,13,0,5,0,70,0,144,126,13,0,5,0,71,0,145,126,13,0,5,0,71,0,144,126,13,0,5,0,72,0,145,126,13,0,5,0,72,0,144,126,13,0,5,0,73,0,145,126,13,0,5,0,73,0,144,126,13,0,5,0,74,0,145,126,13,0,5,0,74,0,144,126,13,0,5,0,70,0,7,126,13,0,5,0,70,0,6,126,13,0,5,0,71,0,7,126,13,0,5,0,71,0,6,126,13,0,5,0,72,0,7,126,13,0,5,0,72,0,6,126,13,0,5,0,73,0,7,126,13,0,5,0,73,0,6,126,13,0,5,0,74,0,7,126,13,0,5,0,74,0,6,126,13,0,5,0,70,0,17,126,13,0,5,0,70,0,26,126,13,0,5,0,70,0,56,126,13,0,5,0,70,0,29,126,13,0,5,0,70,0,32,126,13,0,5,0,70,0,98,126,13,0,5,0,70,0,102,126,13,0,5,0,70,0,20,126,13,0,5,0,70,0,50,126,13,0,5,0,70,0,53,126,13,0,5,0,70,0,23,126,13,0,5,0,70,0,38,126,13,0,5,0,70,0,47,126,13,0,5,0,70,0,41,126,13,0,5,0,70,0,35,126,13,0,5,0,70,0,44,126,13,0,5,0,70,0,59,126,13,0,5,0,70,0,62,126,13,0,5,0,70,0,218,126,13,0,5,0,70,0,146,126,13,0,5,0,70,0,149,126,13,0,5,0,70,0,152,126,13,0,5,0,71,0,17,126,13,0,5,0,71,0,26,126,13,0,5,0,71,0,56,126,13,0,5,0,71,0,29,126,13,0,5,0,71,0,32,126,13,0,5,0,71,0,98,126,13,0,5,0,71,0,102,126,13,0,5,0,71,0,20,126,13,0,5,0,71,0,50,126,13,0,5,0,71,0,53,126,13,0,5,0,71,0,23,126,13,0,5,0,71,0,38,126,13,0,5,0,71,0,47,126,13,0,5,0,71,0,41,126,13,0,5,0,71,0,35,126,13,0,5,0,71,0,44,126,13,0,5,0,71,0,59,126,13,0,5,0,71,0,62,126,13,0,5,0,71,0,218,126,13,0,5,0,71,0,146,126,13,0,5,0,71,0,149,126,13,0,5,0,71,0,152,126,13,0,5,0,72,0,17,126,13,0,5,0,72,0,26,126,13,0,5,0,72,0,56,126,13,0,5,0,72,0,29,126,13,0,5,0,72,0,32,126,13,0,5,0,72,0,98,126,13,0,5,0,72,0,102,126,13,0,5,0,72,0,20,126,13,0,5,0,72,0,50,126,13,0,5,0,72,0,53,126,13,0,5,0,72,0,23,126,13,0,5,0,72,0,38,126,13,0,5,0,72,0,47,126,13,0,5,0,72,0,41,126,13,0,5,0,72,0,35,126,13,0,5,0,72,0,44,126,13,0,5,0,72,0,59,126,13,0,5,0,72,0,62,126,13,0,5,0,72,0,218,126,13,0,5,0,72,0,146,126,13,0,5,0,72,0,149,126,13,0,5,0,72,0,152,126,13,0,5,0,73,0,17,126,13,0,5,0,73,0,26,126,13,0,5,0,73,0,56,126,13,0,5,0,73,0,29,126,13,0,5,0,73,0,32,126,13,0,5,0,73,0,98,126,13,0,5,0,73,0,102,126,13,0,5,0,73,0,20,126,13,0,5,0,73,0,50,126,13,0,5,0,73,0,53,126,13,0,5,0,73,0,23,126,13,0,5,0,73,0,38,126,13,0,5,0,73,0,47,126,13,0,5,0,73,0,41,126,13,0,5,0,73,0,35,126,13,0,5,0,73,0,44,126,13,0,5,0,73,0,59,126,13,0,5,0,73,0,62,126,13,0,5,0,73,0,218,126,13,0,5,0,73,0,146,126,13,0,5,0,73,0,149,126,13,0,5,0,73,0,152,126,13,0,5,0,74,0,17,126,13,0,5,0,74,0,26,126,13,0,5,0,74,0,56,126,13,0,5,0,74,0,29,126,13,0,5,0,74,0,32,126,13,0,5,0,74,0,98,126,13,0,5,0,74,0,102,126,13,0,5,0,74,0,20,126,13,0,5,0,74,0,50,126,13,0,5,0,74,0,53,126,13,0,5,0,74,0,23,126,13,0,5,0,74,0,38,126,13,0,5,0,74,0,47,126,13,0,5,0,74,0,41,126,13,0,5,0,74,0,35,126,13,0,5,0,74,0,44,126,13,0,5,0,74,0,59,126,13,0,5,0,74,0,62,126,13,0,5,0,74,0,218,126,13,0,5,0,74,0,146,126,13,0,5,0,74,0,149,126,13,0,5,0,74,0,152,126,13,0,5,0,70,0,231,125,13,0,5,0,70,0,235,125,13,0,5,0,71,0,231,125,13,0,5,0,71,0,235,125,13,0,5,0,72,0,231,125,13,0,5,0,72,0,235,125,13,0,5,0,73,0,231,125,13,0,5,0,73,0,235,125,13,0,5,0,74,0,231,125,13,0,5,0,74,0,235,125,13,0,5,0,75,0,231,125,13,0,5,0,75,0,235,125,13,0,5,0,76,0,231,125,13,0,5,0,70,0,166,126,13,0,5,0,70,0,165,126,13,0,5,0,71,0,166,126,13,0,5,0,71,0,165,126,13,0,5,0,72,0,166,126,13,0,5,0,72,0,165,126,13,0,5,0,73,0,166,126,13,0,5,0,73,0,165,126,13,0,5,0,74,0,166,126,13,0,5,0,74,0,165,126,13,0,5,0,70,0,169,126,13,0,5,0,70,0,168,126,13,0,5,0,71,0,169,126,13,0,5,0,71,0,168,126,13,0,5,0,72,0,169,126,13,0,5,0,72,0,168,126,13,0,5,0,73,0,169,126,13,0,5,0,73,0,168,126,13,0,5,0,74,0,169,126,13,0,5,0,74,0,168,126,13,0,5,0,70,0,215,126,13,0,5,0,70,0,214,126,13,0,5,0,71,0,215,126,13,0,5,0,71,0,214,126,13,0,5,0,72,0,215,126,13,0,5,0,72,0,214,126,13,0,5,0,73,0,215,126,13,0,5,0,73,0,214,126,13,0,5,0,74,0,215,126,13,0,5,0,74,0,214,126,13,0,5,0,70,0,111,126,13,0,5,0,70,0,110,126,13,0,5,0,71,0,111,126,13,0,5,0,71,0,110,126,13,0,5,0,72,0,111,126,13,0,5,0,72,0,110,126,13,0,5,0,73,0,111,126,13,0,5,0,73,0,110,126,13,0,5,0,74,0,111,126,13,0,5,0,74,0,110,126,13,0,5,0,70,0,114,126,13,0,5,0,70,0,113,126,13,0,5,0,71,0,114,126,13,0,5,0,71,0,113,126,13,0,5,0,72,0,114,126,13,0,5,0,72,0,113,126,13,0,5,0,73,0,114,126,13,0,5,0,73,0,113,126,13,0,5,0,74,0,114,126,13,0,5,0,74,0,113,126,13,0,5,0,70,0,117,126,13,0,5,0,70,0,116,126,13,0,5,0,71,0,117,126,13,0,5,0,71,0,116,126,13,0,5,0,72,0,117,126,13,0,5,0,72,0,116,126,13,0,5,0,73,0,117,126,13,0,5,0,73,0,116,126,13,0,5,0,74,0,117,126,13,0,5,0,74,0,116,126,13,0,5,0,70,0,120,126,13,0,5,0,70,0,119,126,13,0,5,0,71,0,120,126,13,0,5,0,71,0,119,126,13,0,5,0,72,0,120,126,13,0,5,0,72,0,119,126,13,0,5,0,73,0,120,126,13,0,5,0,73,0,119,126,13,0,5,0,74,0,120,126,13,0,5,0,74,0,119,126,13,0,5,0,70,0,123,126,13,0,5,0,70,0,122,126,13,0,5,0,71,0,123,126,13,0,5,0,71,0,122,126,13,0,5,0,72,0,123,126,13,0,5,0,72,0,122,126,13,0,5,0,73,0,123,126,13,0,5,0,73,0,122,126,13,0,5,0,74,0,123,126,13,0,5,0,74,0,122,126,13,0,0,0,0,193,133,130,13,5,158,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,201,192,2,0,201,32,4,0,201,128,5,0,201,224,6,0,201,64,8,0,201,160,9,0,201,0,11,0,201,96,12,0,201,192,13,0,201,32,15,0,150,10,5,5,1,0,227,32,130,205,193,235,15,254,48,0,227,32,130,205,193,235,128,10,5,5,1,0,227,32,130,205,193,236,15,254,48,0,227,32,130,205,193,236,0,19,5,5,1,0,227,32,130,205,193,237,15,254,48,0,227,32,130,205,193,237,0,21,5,5,1,0,227,32,130,205,193,238,15,254,48,0,227,32,130,205,193,238,0,23,5,5,1,0,227,32,130,205,193,239,15,254,48,0,227,32,130,205,193,239,0,25,5,5,1,0,227,32,130,205,193,240,15,254,48,0,227,32,130,205,193,240,0,27,5,5,1,0,227,32,130,205,193,241,15,254,48,0,227,32,130,205,193,241,0,29,5,5,1,0,227,32,130,205,193,242,15,254,48,0,227,32,130,205,193,242,0,31,5,5,1,0,227,32,130,205,193,243,15,254,48,0,227,32,130,205,193,243,0,33,5,5,1,0,227,32,130,205,193,244,15,254,48,0,227,32,130,205,193,244,0,35,5,5,1,0,227,32,130,205,193,245,15,254,48,0,227,32,130,205,193,245,0,37,5,5,1,0,227,32,130,205,193,246,15,254,48,0,227,32,130,205,193,246,126,13,193,186,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,188,66,38,126,205,193,187,4,0,251,223,16,0,252,223,22,0,253,223,29,0,254,223,36,0,255,223,48,0,13,32,1,0,64,38,1,192,198,33,66,38,1,192,198,65,48,0,13,32,1,0,64,38,198,161,66,38,0,192,198,65,48,0,13,32,1,0,64,38,0,192,198,97,66,38,0,192,198,129,48,0,13,32,1,0,64,38,0,192,198,161,66,38,0,192,198,193,48,0,13,32,1,0,64,38,0,192,198,225,66,38,1,192,198,1,125,13,193,138,1,0,13,32,3,0,15,254,48,0,13,32,1,0,61,216,5,0,62,216,48,0,121,222,125,205,193,137,48,0,37,221,125,205,193,136,126,13,193,155,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,4,192,198,65,66,38,4,192,198,97,48,0,13,32,1,0,64,38,3,192,198,65,66,38,3,192,198,97,48,0,13,32,1,0,64,38,3,192,198,129,66,38,3,192,198,161,48,0,13,32,1,0,64,38,3,192,198,193,66,38,3,192,198,225,48,0,13,32,1,0,64,38,4,192,198,1,66,38,4,192,198,33,1,0,64,38,126,205,193,157,66,38,126,205,193,156,126,13,193,177,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,5,192,198,129,66,38,5,192,198,161,48,0,13,32,1,0,64,38,4,192,198,129,66,38,4,192,198,161,48,0,13,32,1,0,64,38,4,192,198,193,66,38,4,192,198,225,48,0,13,32,1,0,64,38,5,192,198,1,66,38,5,192,198,33,48,0,13,32,1,0,64,38,5,192,198,65,66,38,5,192,198,97,1,0,64,38,126,205,193,179,66,38,126,205,193,178,126,13,193,183,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,6,192,198,193,66,38,6,192,198,225,48,0,13,32,1,0,64,38,5,192,198,193,66,38,5,192,198,225,48,0,13,32,1,0,64,38,6,192,198,1,66,38,6,192,198,33,48,0,13,32,1,0,64,38,6,192,198,65,66,38,6,192,198,97,48,0,13,32,1,0,64,38,6,192,198,129,66,38,6,192,198,161,1,0,64,38,126,205,193,185,66,38,126,205,193,184,126,13,193,189,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,191,66,38,126,205,193,190,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,8,192,198,1,66,38,8,192,198,33,48,0,13,32,1,0,64,38,7,192,198,1,66,38,7,192,198,33,48,0,13,32,1,0,64,38,7,192,198,65,66,38,7,192,198,97,48,0,13,32,1,0,64,38,7,192,198,129,66,38,7,192,198,161,48,0,13,32,1,0,64,38,7,192,198,193,66,38,7,192,198,225,126,13,193,174,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,176,66,38,126,205,193,175,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,9,192,198,65,66,38,9,192,198,97,48,0,13,32,1,0,64,38,8,192,198,65,66,38,8,192,198,97,48,0,13,32,1,0,64,38,8,192,198,129,66,38,8,192,198,161,48,0,13,32,1,0,64,38,8,192,198,193,66,38,8,192,198,225,48,0,13,32,1,0,64,38,9,192,198,1,66,38,9,192,198,33,131,13,193,71,1,0,13,32,3,0,15,254,48,0,13,32,1,0,167,38,131,205,193,73,60,216,48,0,8,223,131,205,193,72,131,13,193,70,1,0,13,32,39,0,64,219,51,0,103,220,64,219,98,220,64,219,2,0,101,220,12,0,115,220,19,0,119,220,53,0,64,219,108,220,64,219,115,220,64,219,127,220,131,205,193,103,53,0,64,219,110,220,64,219,103,220,64,219,127,220,131,205,193,101,53,0,64,219,99,220,64,219,116,220,64,219,127,220,131,205,193,102,48,0,32,38,131,205,193,74,127,13,193,24,49,0,13,32,27,43,127,205,193,25,127,13,193,16,50,0,13,32,62,216,186,221,127,205,193,18,127,13,193,83,49,0,13,32,27,43,127,205,193,96,127,13,193,67,49,0,13,32,68,39,127,205,193,68,125,13,193,221,1,0,13,32,7,0,15,254,50,0,13,32,61,216,232,221,125,205,193,159,49,0,61,216,232,221,125,205,193,159,125,13,193,231,1,0,13,32,180,1,60,216,4,0,251,223,92,0,252,223,175,0,253,223,2,1,254,223,85,1,255,223,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,22,192,198,65,188,221,22,192,198,97,189,221,22,192,198,129,50,0,13,32,61,216,104,220,22,192,198,33,7,0,164,223,12,0,164,223,20,192,198,225,168,223,21,192,198,1,235,223,21,192,198,33,237,223,21,192,198,65,62,223,20,192,198,97,115,223,20,192,198,129,124,223,20,192,198,161,147,223,20,192,198,193,5,0,44,221,9,0,44,221,21,192,198,193,128,222,21,192,198,225,146,222,22,192,198,1,187,220,21,192,198,97,188,220,21,192,198,129,39,221,21,192,198,161,149,38,20,192,198,1,150,38,20,192,198,33,8,39,20,192,198,65,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,11,192,198,193,188,221,11,192,198,225,189,221,12,192,198,1,50,0,13,32,61,216,104,220,11,192,198,161,7,0,164,223,12,0,164,223,10,192,198,97,168,223,10,192,198,129,235,223,10,192,198,161,237,223,10,192,198,193,62,223,9,192,198,225,115,223,10,192,198,1,124,223,10,192,198,33,147,223,10,192,198,65,5,0,44,221,9,0,44,221,11,192,198,65,128,222,11,192,198,97,146,222,11,192,198,129,187,220,10,192,198,225,188,220,11,192,198,1,39,221,11,192,198,33,149,38,9,192,198,129,150,38,9,192,198,161,8,39,9,192,198,193,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,14,192,198,97,188,221,14,192,198,129,189,221,14,192,198,161,50,0,13,32,61,216,104,220,14,192,198,65,7,0,164,223,12,0,164,223,13,192,198,1,168,223,13,192,198,33,235,223,13,192,198,65,237,223,13,192,198,97,62,223,12,192,198,129,115,223,12,192,198,161,124,223,12,192,198,193,147,223,12,192,198,225,5,0,44,221,9,0,44,221,13,192,198,225,128,222,14,192,198,1,146,222,14,192,198,33,187,220,13,192,198,129,188,220,13,192,198,161,39,221,13,192,198,193,149,38,12,192,198,33,150,38,12,192,198,65,8,39,12,192,198,97,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,17,192,198,1,188,221,17,192,198,33,189,221,17,192,198,65,50,0,13,32,61,216,104,220,16,192,198,225,7,0,164,223,12,0,164,223,15,192,198,161,168,223,15,192,198,193,235,223,15,192,198,225,237,223,16,192,198,1,62,223,15,192,198,33,115,223,15,192,198,65,124,223,15,192,198,97,147,223,15,192,198,129,5,0,44,221,9,0,44,221,16,192,198,129,128,222,16,192,198,161,146,222,16,192,198,193,187,220,16,192,198,33,188,220,16,192,198,65,39,221,16,192,198,97,149,38,14,192,198,193,150,38,14,192,198,225,8,39,15,192,198,1,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,19,192,198,161,188,221,19,192,198,193,189,221,19,192,198,225,50,0,13,32,61,216,104,220,19,192,198,129,7,0,164,223,12,0,164,223,18,192,198,65,168,223,18,192,198,97,235,223,18,192,198,129,237,223,18,192,198,161,62,223,17,192,198,193,115,223,17,192,198,225,124,223,18,192,198,1,147,223,18,192,198,33,5,0,44,221,9,0,44,221,19,192,198,33,128,222,19,192,198,65,146,222,19,192,198,97,187,220,18,192,198,193,188,220,18,192,198,225,39,221,19,192,198,1,149,38,17,192,198,97,150,38,17,192,198,129,8,39,17,192,198,161,6,0,100,39,178,0,100,39,15,0,60,216,44,0,61,216,69,0,62,216,2,0,175,221,126,205,193,147,188,221,126,205,193,150,189,221,126,205,193,153,1,0,13,32,15,0,15,254,49,0,13,32,61,216,1,0,104,220,126,205,193,228,139,220,50,0,13,32,61,216,104,220,126,205,193,224,48,0,61,216,1,0,104,220,126,205,193,228,139,220,50,0,13,32,61,216,104,220,126,205,193,224,7,0,164,223,12,0,164,223,126,205,193,51,168,223,126,205,193,54,235,223,126,205,193,24,237,223,126,205,193,39,62,223,126,205,193,30,115,223,126,205,193,33,124,223,126,205,193,97,147,223,126,205,193,21,9,0,188,220,15,0,188,220,126,205,193,42,39,221,126,205,193,36,44,221,126,205,193,45,128,222,126,205,193,60,146,222,126,205,193,63,102,220,9,0,103,220,15,0,104,220,25,0,105,220,50,0,187,220,126,205,193,48,242,127,126,13,193,246,13,32,61,216,102,220,126,205,193,247,241,127,126,13,193,248,13,32,61,216,1,0,102,220,126,205,193,249,103,220,126,205,193,250,49,0,13,32,61,216,1,0,102,220,13,0,103,220,241,127,126,13,193,237,13,32,61,216,1,0,102,220,126,205,193,238,103,220,126,205,193,240,242,127,126,13,193,236,13,32,61,216,102,220,126,205,193,239,49,0,13,32,61,216,1,0,102,220,13,0,103,220,241,127,126,13,193,232,13,32,61,216,1,0,102,220,126,205,193,233,103,220,126,205,193,235,242,127,126,13,193,231,13,32,61,216,102,220,126,205,193,234,149,38,126,205,193,18,150,38,126,205,193,27,8,39,126,205,193,57,125,13,193,235,1,0,13,32,200,1,60,216,4,0,251,223,96,0,252,223,183,0,253,223,14,1,254,223,101,1,255,223,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,36,192,198,1,188,221,36,192,198,33,189,221,36,192,198,65,49,0,13,32,61,216,1,0,104,220,35,192,198,193,105,220,35,192,198,225,7,0,164,223,12,0,164,223,34,192,198,129,168,223,34,192,198,161,235,223,34,192,198,193,237,223,34,192,198,225,62,223,34,192,198,1,115,223,34,192,198,33,124,223,34,192,198,65,147,223,34,192,198,97,5,0,44,221,9,0,44,221,35,192,198,97,128,222,35,192,198,129,146,222,35,192,198,161,187,220,35,192,198,1,188,220,35,192,198,33,39,221,35,192,198,65,149,38,33,192,198,161,150,38,33,192,198,193,8,39,33,192,198,225,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,25,192,198,1,188,221,25,192,198,33,189,221,25,192,198,65,49,0,13,32,61,216,1,0,104,220,24,192,198,193,105,220,24,192,198,225,7,0,164,223,12,0,164,223,23,192,198,129,168,223,23,192,198,161,235,223,23,192,198,193,237,223,23,192,198,225,62,223,23,192,198,1,115,223,23,192,198,33,124,223,23,192,198,65,147,223,23,192,198,97,5,0,44,221,9,0,44,221,24,192,198,97,128,222,24,192,198,129,146,222,24,192,198,161,187,220,24,192,198,1,188,220,24,192,198,33,39,221,24,192,198,65,149,38,22,192,198,161,150,38,22,192,198,193,8,39,22,192,198,225,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,27,192,198,193,188,221,27,192,198,225,189,221,28,192,198,1,49,0,13,32,61,216,1,0,104,220,27,192,198,129,105,220,27,192,198,161,7,0,164,223,12,0,164,223,26,192,198,65,168,223,26,192,198,97,235,223,26,192,198,129,237,223,26,192,198,161,62,223,25,192,198,193,115,223,25,192,198,225,124,223,26,192,198,1,147,223,26,192,198,33,5,0,44,221,9,0,44,221,27,192,198,33,128,222,27,192,198,65,146,222,27,192,198,97,187,220,26,192,198,193,188,220,26,192,198,225,39,221,27,192,198,1,149,38,25,192,198,97,150,38,25,192,198,129,8,39,25,192,198,161,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,30,192,198,129,188,221,30,192,198,161,189,221,30,192,198,193,49,0,13,32,61,216,1,0,104,220,30,192,198,65,105,220,30,192,198,97,7,0,164,223,12,0,164,223,29,192,198,1,168,223,29,192,198,33,235,223,29,192,198,65,237,223,29,192,198,97,62,223,28,192,198,129,115,223,28,192,198,161,124,223,28,192,198,193,147,223,28,192,198,225,5,0,44,221,9,0,44,221,29,192,198,225,128,222,30,192,198,1,146,222,30,192,198,33,187,220,29,192,198,129,188,220,29,192,198,161,39,221,29,192,198,193,149,38,28,192,198,33,150,38,28,192,198,65,8,39,28,192,198,97,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,33,192,198,65,188,221,33,192,198,97,189,221,33,192,198,129,49,0,13,32,61,216,1,0,104,220,33,192,198,1,105,220,33,192,198,33,7,0,164,223,12,0,164,223,31,192,198,193,168,223,31,192,198,225,235,223,32,192,198,1,237,223,32,192,198,33,62,223,31,192,198,65,115,223,31,192,198,97,124,223,31,192,198,129,147,223,31,192,198,161,5,0,44,221,9,0,44,221,32,192,198,161,128,222,32,192,198,193,146,222,32,192,198,225,187,220,32,192,198,65,188,220,32,192,198,97,39,221,32,192,198,129,149,38,30,192,198,225,150,38,31,192,198,1,8,39,31,192,198,33,6,0,100,39,163,0,100,39,15,0,60,216,58,0,61,216,83,0,62,216,2,0,175,221,126,205,193,148,188,221,126,205,193,151,189,221,126,205,193,154,1,0,13,32,22,0,15,254,49,0,13,32,61,216,2,0,104,220,126,205,193,227,105,220,126,205,193,229,139,220,49,0,13,32,61,216,1,0,104,220,126,205,193,223,105,220,126,205,193,225,48,0,61,216,2,0,104,220,126,205,193,227,105,220,126,205,193,229,139,220,49,0,13,32,61,216,1,0,104,220,126,205,193,223,105,220,126,205,193,225,7,0,164,223,12,0,164,223,126,205,193,52,168,223,126,205,193,55,235,223,126,205,193,25,237,223,126,205,193,40,62,223,126,205,193,31,115,223,126,205,193,34,124,223,126,205,193,96,147,223,126,205,193,22,8,0,188,220,15,0,188,220,126,205,193,43,39,221,126,205,193,37,44,221,126,205,193,46,128,222,126,205,193,61,146,222,126,205,193,64,102,220,7,0,103,220,13,0,105,220,23,0,187,220,126,205,193,49,242,127,126,13,193,251,13,32,61,216,102,220,126,205,193,252,241,127,126,13,193,253,13,32,61,216,1,0,102,220,126,205,193,254,103,220,126,205,193,255,49,0,13,32,61,216,1,0,102,220,13,0,103,220,241,127,126,13,193,242,13,32,61,216,1,0,102,220,126,205,193,243,103,220,126,205,193,245,242,127,126,13,193,241,13,32,61,216,102,220,126,205,193,244,149,38,126,205,193,19,150,38,126,205,193,28,8,39,126,205,193,58,126,13,193,220,48,0,60,216,4,0,251,223,36,192,198,98,252,223,36,192,198,162,253,223,36,192,198,226,254,223,37,192,198,34,255,223,37,192,198,98,126,13,193,221,48,0,60,216,4,0,251,223,37,192,198,162,252,223,37,192,198,226,253,223,38,192,198,34,254,223,38,192,198,98,255,223,38,192,198,162,126,13,193,219,48,0,60,216,4,0,251,223,38,192,198,226,252,223,39,192,198,34,253,223,39,192,198,98,254,223,39,192,198,162,255,223,39,192,198,226,126,13,193,65,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,41,192,198,33,66,38,41,192,198,65,48,0,13,32,1,0,64,38,40,192,198,33,66,38,40,192,198,65,48,0,13,32,1,0,64,38,40,192,198,97,66,38,40,192,198,129,48,0,13,32,1,0,64,38,40,192,198,161,66,38,40,192,198,193,48,0,13,32,1,0,64,38,40,192,198,225,66,38,41,192,198,1,1,0,64,38,126,205,193,67,66,38,126,205,193,66,126,13,193,161,48,0,13,32,1,0,64,38,126,205,193,163,66,38,126,205,193,162,126,13,193,89,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,42,192,198,97,66,38,42,192,198,129,48,0,13,32,1,0,64,38,41,192,198,97,66,38,41,192,198,129,48,0,13,32,1,0,64,38,41,192,198,161,66,38,41,192,198,193,48,0,13,32,1,0,64,38,41,192,198,225,66,38,42,192,198,1,48,0,13,32,1,0,64,38,42,192,198,33,66,38,42,192,198,65,1,0,64,38,126,205,193,91,66,38,126,205,193,90,42,0,198,161,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,44,192,198,1,66,38,44,192,198,33,48,0,13,32,1,0,64,38,43,192,198,1,66,38,43,192,198,33,48,0,13,32,1,0,64,38,43,192,198,65,66,38,43,192,198,97,48,0,13,32,1,0,64,38,43,192,198,129,66,38,43,192,198,161,48,0,13,32,1,0,64,38,43,192,198,193,66,38,43,192,198,225,1,0,64,38,42,192,198,193,66,38,42,192,198,225,126,13,193,81,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,45,192,198,65,66,38,45,192,198,97,48,0,13,32,1,0,64,38,44,192,198,65,66,38,44,192,198,97,48,0,13,32,1,0,64,38,44,192,198,129,66,38,44,192,198,161,48,0,13,32,1,0,64,38,44,192,198,193,66,38,44,192,198,225,48,0,13,32,1,0,64,38,45,192,198,1,66,38,45,192,198,33,1,0,64,38,126,205,193,83,66,38,126,205,193,82,126,13,193,75,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,46,192,198,129,66,38,46,192,198,161,48,0,13,32,1,0,64,38,45,192,198,129,66,38,45,192,198,161,48,0,13,32,1,0,64,38,45,192,198,193,66,38,45,192,198,225,48,0,13,32,1,0,64,38,46,192,198,1,66,38,46,192,198,33,48,0,13,32,1,0,64,38,46,192,198,65,66,38,46,192,198,97,1,0,64,38,126,205,193,77,66,38,126,205,193,76,125,13,193,253,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,47,192,198,193,66,38,47,192,198,225,48,0,13,32,1,0,64,38,46,192,198,193,66,38,46,192,198,225,48,0,13,32,1,0,64,38,47,192,198,1,66,38,47,192,198,33,48,0,13,32,1,0,64,38,47,192,198,65,66,38,47,192,198,97,48,0,13,32,1,0,64,38,47,192,198,129,66,38,47,192,198,161,1,0,64,38,125,205,193,255,66,38,125,205,193,254,126,13,193,71,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,49,192,198,1,66,38,49,192,198,33,48,0,13,32,1,0,64,38,48,192,198,1,66,38,48,192,198,33,48,0,13,32,1,0,64,38,48,192,198,65,66,38,48,192,198,97,48,0,13,32,1,0,64,38,48,192,198,129,66,38,48,192,198,161,48,0,13,32,1,0,64,38,48,192,198,193,66,38,48,192,198,225,1,0,64,38,126,205,193,73,66,38,126,205,193,72,126,13,193,131,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,50,192,198,65,66,38,50,192,198,97,48,0,13,32,1,0,64,38,49,192,198,65,66,38,49,192,198,97,48,0,13,32,1,0,64,38,49,192,198,129,66,38,49,192,198,161,48,0,13,32,1,0,64,38,49,192,198,193,66,38,49,192,198,225,48,0,13,32,1,0,64,38,50,192,198,1,66,38,50,192,198,33,1,0,64,38,126,205,193,133,66,38,126,205,193,132,126,13,193,134,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,51,192,198,129,66,38,51,192,198,161,48,0,13,32,1,0,64,38,50,192,198,129,66,38,50,192,198,161,48,0,13,32,1,0,64,38,50,192,198,193,66,38,50,192,198,225,48,0,13,32,1,0,64,38,51,192,198,1,66,38,51,192,198,33,48,0,13,32,1,0,64,38,51,192,198,65,66,38,51,192,198,97,1,0,64,38,126,205,193,136,66,38,126,205,193,135,126,13,193,68,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,70,66,38,126,205,193,69,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,52,192,198,193,66,38,52,192,198,225,48,0,13,32,1,0,64,38,51,192,198,193,66,38,51,192,198,225,48,0,13,32,1,0,64,38,52,192,198,1,66,38,52,192,198,33,48,0,13,32,1,0,64,38,52,192,198,65,66,38,52,192,198,97,48,0,13,32,1,0,64,38,52,192,198,129,66,38,52,192,198,161,125,13,193,76,50,0,13,32,61,216,168,220,125,205,193,45,125,13,193,62,50,0,13,32,61,216,171,220,125,205,193,63,125,13,193,38,50,0,13,32,60,216,43,223,125,205,193,40,125,13,193,247,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,54,192,198,1,66,38,54,192,198,33,48,0,13,32,1,0,64,38,53,192,198,1,66,38,53,192,198,33,48,0,13,32,1,0,64,38,53,192,198,65,66,38,53,192,198,97,48,0,13,32,1,0,64,38,53,192,198,129,66,38,53,192,198,161,48,0,13,32,1,0,64,38,53,192,198,193,66,38,53,192,198,225,1,0,64,38,125,205,193,249,66,38,125,205,193,248,125,13,193,250,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,55,192,198,65,66,38,55,192,198,97,48,0,13,32,1,0,64,38,54,192,198,65,66,38,54,192,198,97,48,0,13,32,1,0,64,38,54,192,198,129,66,38,54,192,198,161,48,0,13,32,1,0,64,38,54,192,198,193,66,38,54,192,198,225,48,0,13,32,1,0,64,38,55,192,198,1,66,38,55,192,198,33,1,0,64,38,125,205,193,252,66,38,125,205,193,251,126,13,193,8,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,56,192,198,129,66,38,56,192,198,161,48,0,13,32,1,0,64,38,55,192,198,129,66,38,55,192,198,161,48,0,13,32,1,0,64,38,55,192,198,193,66,38,55,192,198,225,48,0,13,32,1,0,64,38,56,192,198,1,66,38,56,192,198,33,48,0,13,32,1,0,64,38,56,192,198,65,66,38,56,192,198,97,1,0,64,38,126,205,193,10,66,38,126,205,193,9,126,13,193,2,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,57,192,198,193,66,38,57,192,198,225,48,0,13,32,1,0,64,38,56,192,198,193,66,38,56,192,198,225,48,0,13,32,1,0,64,38,57,192,198,1,66,38,57,192,198,33,48,0,13,32,1,0,64,38,57,192,198,65,66,38,57,192,198,97,48,0,13,32,1,0,64,38,57,192,198,129,66,38,57,192,198,161,1,0,64,38,126,205,193,4,66,38,126,205,193,3,125,13,193,241,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,59,192,198,1,66,38,59,192,198,33,48,0,13,32,1,0,64,38,58,192,198,1,66,38,58,192,198,33,48,0,13,32,1,0,64,38,58,192,198,65,66,38,58,192,198,97,48,0,13,32,1,0,64,38,58,192,198,129,66,38,58,192,198,161,48,0,13,32,1,0,64,38,58,192,198,193,66,38,58,192,198,225,1,0,64,38,125,205,193,243,66,38,125,205,193,242,125,13,193,244,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,60,192,198,65,66,38,60,192,198,97,48,0,13,32,1,0,64,38,59,192,198,65,66,38,59,192,198,97,48,0,13,32,1,0,64,38,59,192,198,129,66,38,59,192,198,161,48,0,13,32,1,0,64,38,59,192,198,193,66,38,59,192,198,225,48,0,13,32,1,0,64,38,60,192,198,1,66,38,60,192,198,33,1,0,64,38,125,205,193,246,66,38,125,205,193,245,126,13,193,180,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,61,192,198,129,66,38,61,192,198,161,48,0,13,32,1,0,64,38,60,192,198,129,66,38,60,192,198,161,48,0,13,32,1,0,64,38,60,192,198,193,66,38,60,192,198,225,48,0,13,32,1,0,64,38,61,192,198,1,66,38,61,192,198,33,48,0,13,32,1,0,64,38,61,192,198,65,66,38,61,192,198,97,1,0,64,38,126,205,193,182,66,38,126,205,193,181,126,13,193,192,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,62,192,198,193,66,38,62,192,198,225,48,0,13,32,1,0,64,38,61,192,198,193,66,38,61,192,198,225,48,0,13,32,1,0,64,38,62,192,198,1,66,38,62,192,198,33,48,0,13,32,1,0,64,38,62,192,198,65,66,38,62,192,198,97,48,0,13,32,1,0,64,38,62,192,198,129,66,38,62,192,198,161,1,0,64,38,126,205,193,194,66,38,126,205,193,193,126,13,193,195,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,64,192,198,1,66,38,64,192,198,33,48,0,13,32,1,0,64,38,63,192,198,1,66,38,63,192,198,33,48,0,13,32,1,0,64,38,63,192,198,65,66,38,63,192,198,97,48,0,13,32,1,0,64,38,63,192,198,129,66,38,63,192,198,161,48,0,13,32,1,0,64,38,63,192,198,193,66,38,63,192,198,225,1,0,64,38,126,205,193,197,66,38,126,205,193,196,126,13,193,137,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,65,192,198,65,66,38,65,192,198,97,48,0,13,32,1,0,64,38,64,192,198,65,66,38,64,192,198,97,48,0,13,32,1,0,64,38,64,192,198,129,66,38,64,192,198,161,48,0,13,32,1,0,64,38,64,192,198,193,66,38,64,192,198,225,48,0,13,32,1,0,64,38,65,192,198,1,66,38,65,192,198,33,1,0,64,38,126,205,193,139,66,38,126,205,193,138,126,13,193,11,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,66,192,198,129,66,38,66,192,198,161,48,0,13,32,1,0,64,38,65,192,198,129,66,38,65,192,198,161,48,0,13,32,1,0,64,38,65,192,198,193,66,38,65,192,198,225,48,0,13,32,1,0,64,38,66,192,198,1,66,38,66,192,198,33,48,0,13,32,1,0,64,38,66,192,198,65,66,38,66,192,198,97,1,0,64,38,126,205,193,13,66,38,126,205,193,12,126,13,193,86,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,67,192,198,193,66,38,67,192,198,225,48,0,13,32,1,0,64,38,66,192,198,193,66,38,66,192,198,225,48,0,13,32,1,0,64,38,67,192,198,1,66,38,67,192,198,33,48,0,13,32,1,0,64,38,67,192,198,65,66,38,67,192,198,97,48,0,13,32,1,0,64,38,67,192,198,129,66,38,67,192,198,161,1,0,64,38,126,205,193,88,66,38,126,205,193,87,126,13,193,14,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,69,192,198,1,66,38,69,192,198,33,48,0,13,32,1,0,64,38,68,192,198,1,66,38,68,192,198,33,48,0,13,32,1,0,64,38,68,192,198,65,66,38,68,192,198,97,48,0,13,32,1,0,64,38,68,192,198,129,66,38,68,192,198,161,48,0,13,32,1,0,64,38,68,192,198,193,66,38,68,192,198,225,1,0,64,38,126,205,193,16,66,38,126,205,193,15,126,13,193,198,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,70,192,198,65,66,38,70,192,198,97,48,0,13,32,1,0,64,38,69,192,198,65,66,38,69,192,198,97,48,0,13,32,1,0,64,38,69,192,198,129,66,38,69,192,198,161,48,0,13,32,1,0,64,38,69,192,198,193,66,38,69,192,198,225,48,0,13,32,1,0,64,38,70,192,198,1,66,38,70,192,198,33,1,0,64,38,126,205,193,200,66,38,126,205,193,199,126,13,193,210,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,71,192,198,129,66,38,71,192,198,161,48,0,13,32,1,0,64,38,70,192,198,129,66,38,70,192,198,161,48,0,13,32,1,0,64,38,70,192,198,193,66,38,70,192,198,225,48,0,13,32,1,0,64,38,71,192,198,1,66,38,71,192,198,33,48,0,13,32,1,0,64,38,71,192,198,65,66,38,71,192,198,97,1,0,64,38,126,205,193,212,66,38,126,205,193,211,126,13,193,201,48,0,13,32,1,0,64,38,126,205,193,203,66,38,126,205,193,202,126,13,193,204,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,72,192,198,193,66,38,72,192,198,225,48,0,13,32,1,0,64,38,71,192,198,193,66,38,71,192,198,225,48,0,13,32,1,0,64,38,72,192,198,1,66,38,72,192,198,33,48,0,13,32,1,0,64,38,72,192,198,65,66,38,72,192,198,97,48,0,13,32,1,0,64,38,72,192,198,129,66,38,72,192,198,161,1,0,64,38,126,205,193,206,66,38,126,205,193,205,126,13,193,207,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,74,192,198,1,66,38,74,192,198,33,48,0,13,32,1,0,64,38,73,192,198,1,66,38,73,192,198,33,48,0,13,32,1,0,64,38,73,192,198,65,66,38,73,192,198,97,48,0,13,32,1,0,64,38,73,192,198,129,66,38,73,192,198,161,48,0,13,32,1,0,64,38,73,192,198,193,66,38,73,192,198,225,1,0,64,38,126,205,193,209,66,38,126,205,193,208,126,13,193,103,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,75,192,198,65,66,38,75,192,198,97,48,0,13,32,1,0,64,38,74,192,198,65,66,38,74,192,198,97,48,0,13,32,1,0,64,38,74,192,198,129,66,38,74,192,198,161,48,0,13,32,1,0,64,38,74,192,198,193,66,38,74,192,198,225,48,0,13,32,1,0,64,38,75,192,198,1,66,38,75,192,198,33,1,0,64,38,126,205,193,105,66,38,126,205,193,104,126,13,193,106,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,76,192,198,129,66,38,76,192,198,161,48,0,13,32,1,0,64,38,75,192,198,129,66,38,75,192,198,161,48,0,13,32,1,0,64,38,75,192,198,193,66,38,75,192,198,225,48,0,13,32,1,0,64,38,76,192,198,1,66,38,76,192,198,33,48,0,13,32,1,0,64,38,76,192,198,65,66,38,76,192,198,97,1,0,64,38,126,205,193,108,66,38,126,205,193,107,126,13,193,140,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,77,192,198,193,66,38,77,192,198,225,48,0,13,32,1,0,64,38,76,192,198,193,66,38,76,192,198,225,48,0,13,32,1,0,64,38,77,192,198,1,66,38,77,192,198,33,48,0,13,32,1,0,64,38,77,192,198,65,66,38,77,192,198,97,48,0,13,32,1,0,64,38,77,192,198,129,66,38,77,192,198,161,1,0,64,38,126,205,193,142,66,38,126,205,193,141,126,13,193,143,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,79,192,198,1,66,38,79,192,198,33,48,0,13,32,1,0,64,38,78,192,198,1,66,38,78,192,198,33,48,0,13,32,1,0,64,38,78,192,198,65,66,38,78,192,198,97,48,0,13,32,1,0,64,38,78,192,198,129,66,38,78,192,198,161,48,0,13,32,1,0,64,38,78,192,198,193,66,38,78,192,198,225,1,0,64,38,126,205,193,145,66,38,126,205,193,144,126,13,193,5,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,80,192,198,65,66,38,80,192,198,97,48,0,13,32,1,0,64,38,79,192,198,65,66,38,79,192,198,97,48,0,13,32,1,0,64,38,79,192,198,129,66,38,79,192,198,161,48,0,13,32,1,0,64,38,79,192,198,193,66,38,79,192,198,225,48,0,13,32,1,0,64,38,80,192,198,1,66,38,80,192,198,33,1,0,64,38,126,205,193,7,66,38,126,205,193,6,125,13,193,229,1,0,13,32,195,1,60,216,4,0,251,223,95,0,252,223,181,0,253,223,11,1,254,223,97,1,255,223,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,93,192,198,225,188,221,94,192,198,1,189,221,94,192,198,33,50,0,13,32,62,216,209,221,93,192,198,193,8,0,147,223,15,0,147,223,92,192,198,97,164,223,92,192,198,129,168,223,92,192,198,161,235,223,92,192,198,193,237,223,92,192,198,225,62,223,91,192,198,225,115,223,92,192,198,1,124,223,92,192,198,33,132,223,92,192,198,65,5,0,44,221,9,0,44,221,93,192,198,97,128,222,93,192,198,129,146,222,93,192,198,161,187,220,93,192,198,1,188,220,93,192,198,33,39,221,93,192,198,65,149,38,91,192,198,129,150,38,91,192,198,161,8,39,91,192,198,193,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,82,192,198,225,188,221,83,192,198,1,189,221,83,192,198,33,50,0,13,32,62,216,209,221,82,192,198,193,8,0,147,223,15,0,147,223,81,192,198,97,164,223,81,192,198,129,168,223,81,192,198,161,235,223,81,192,198,193,237,223,81,192,198,225,62,223,80,192,198,225,115,223,81,192,198,1,124,223,81,192,198,33,132,223,81,192,198,65,5,0,44,221,9,0,44,221,82,192,198,97,128,222,82,192,198,129,146,222,82,192,198,161,187,220,82,192,198,1,188,220,82,192,198,33,39,221,82,192,198,65,149,38,80,192,198,129,150,38,80,192,198,161,8,39,80,192,198,193,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,85,192,198,161,188,221,85,192,198,193,189,221,85,192,198,225,50,0,13,32,62,216,209,221,85,192,198,129,8,0,147,223,15,0,147,223,84,192,198,33,164,223,84,192,198,65,168,223,84,192,198,97,235,223,84,192,198,129,237,223,84,192,198,161,62,223,83,192,198,161,115,223,83,192,198,193,124,223,83,192,198,225,132,223,84,192,198,1,5,0,44,221,9,0,44,221,85,192,198,33,128,222,85,192,198,65,146,222,85,192,198,97,187,220,84,192,198,193,188,220,84,192,198,225,39,221,85,192,198,1,149,38,83,192,198,65,150,38,83,192,198,97,8,39,83,192,198,129,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,88,192,198,97,188,221,88,192,198,129,189,221,88,192,198,161,50,0,13,32,62,216,209,221,88,192,198,65,8,0,147,223,15,0,147,223,86,192,198,225,164,223,87,192,198,1,168,223,87,192,198,33,235,223,87,192,198,65,237,223,87,192,198,97,62,223,86,192,198,97,115,223,86,192,198,129,124,223,86,192,198,161,132,223,86,192,198,193,5,0,44,221,9,0,44,221,87,192,198,225,128,222,88,192,198,1,146,222,88,192,198,33,187,220,87,192,198,129,188,220,87,192,198,161,39,221,87,192,198,193,149,38,86,192,198,1,150,38,86,192,198,33,8,39,86,192,198,65,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,91,192,198,33,188,221,91,192,198,65,189,221,91,192,198,97,50,0,13,32,62,216,209,221,91,192,198,1,8,0,147,223,15,0,147,223,89,192,198,161,164,223,89,192,198,193,168,223,89,192,198,225,235,223,90,192,198,1,237,223,90,192,198,33,62,223,89,192,198,33,115,223,89,192,198,65,124,223,89,192,198,97,132,223,89,192,198,129,5,0,44,221,9,0,44,221,90,192,198,161,128,222,90,192,198,193,146,222,90,192,198,225,187,220,90,192,198,65,188,220,90,192,198,97,39,221,90,192,198,129,149,38,88,192,198,193,150,38,88,192,198,225,8,39,89,192,198,1,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,126,205,193,146,188,221,126,205,193,149,189,221,126,205,193,152,50,0,13,32,62,216,209,221,126,205,193,218,8,0,147,223,15,0,147,223,126,205,193,20,164,223,126,205,193,50,168,223,126,205,193,53,235,223,126,205,193,23,237,223,126,205,193,38,62,223,126,205,193,29,115,223,126,205,193,32,124,223,126,205,193,98,132,223,126,205,193,102,5,0,44,221,9,0,44,221,126,205,193,44,128,222,126,205,193,59,146,222,126,205,193,62,187,220,126,205,193,47,188,220,126,205,193,41,39,221,126,205,193,35,149,38,126,205,193,17,150,38,126,205,193,26,8,39,126,205,193,56,94,0,198,65,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,95,192,198,161,66,38,95,192,198,193,48,0,13,32,1,0,64,38,94,192,198,161,66,38,94,192,198,193,48,0,13,32,1,0,64,38,94,192,198,225,66,38,95,192,198,1,48,0,13,32,1,0,64,38,95,192,198,33,66,38,95,192,198,65,48,0,13,32,1,0,64,38,95,192,198,97,66,38,95,192,198,129,1,0,64,38,94,192,198,97,66,38,94,192,198,129,126,13,193,164,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,96,192,198,225,66,38,97,192,198,1,48,0,13,32,1,0,64,38,95,192,198,225,66,38,96,192,198,1,48,0,13,32,1,0,64,38,96,192,198,33,66,38,96,192,198,65,48,0,13,32,1,0,64,38,96,192,198,97,66,38,96,192,198,129,48,0,13,32,1,0,64,38,96,192,198,161,66,38,96,192,198,193,1,0,64,38,126,205,193,166,66,38,126,205,193,165,126,13,193,167,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,98,192,198,33,66,38,98,192,198,65,48,0,13,32,1,0,64,38,97,192,198,33,66,38,97,192,198,65,48,0,13,32,1,0,64,38,97,192,198,97,66,38,97,192,198,129,48,0,13,32,1,0,64,38,97,192,198,161,66,38,97,192,198,193,48,0,13,32,1,0,64,38,97,192,198,225,66,38,98,192,198,1,1,0,64,38,126,205,193,169,66,38,126,205,193,168,126,13,193,213,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,99,192,198,97,66,38,99,192,198,129,48,0,13,32,1,0,64,38,98,192,198,97,66,38,98,192,198,129,48,0,13,32,1,0,64,38,98,192,198,161,66,38,98,192,198,193,48,0,13,32,1,0,64,38,98,192,198,225,66,38,99,192,198,1,48,0,13,32,1,0,64,38,99,192,198,33,66,38,99,192,198,65,1,0,64,38,126,205,193,215,66,38,126,205,193,214,126,13,193,109,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,100,192,198,161,66,38,100,192,198,193,48,0,13,32,1,0,64,38,99,192,198,161,66,38,99,192,198,193,48,0,13,32,1,0,64,38,99,192,198,225,66,38,100,192,198,1,48,0,13,32,1,0,64,38,100,192,198,33,66,38,100,192,198,65,48,0,13,32,1,0,64,38,100,192,198,97,66,38,100,192,198,129,1,0,64,38,126,205,193,111,66,38,126,205,193,110,126,13,193,112,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,101,192,198,225,66,38,102,192,198,1,48,0,13,32,1,0,64,38,100,192,198,225,66,38,101,192,198,1,48,0,13,32,1,0,64,38,101,192,198,33,66,38,101,192,198,65,48,0,13,32,1,0,64,38,101,192,198,97,66,38,101,192,198,129,48,0,13,32,1,0,64,38,101,192,198,161,66,38,101,192,198,193,1,0,64,38,126,205,193,114,66,38,126,205,193,113,126,13,193,115,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,103,192,198,33,66,38,103,192,198,65,48,0,13,32,1,0,64,38,102,192,198,33,66,38,102,192,198,65,48,0,13,32,1,0,64,38,102,192,198,97,66,38,102,192,198,129,48,0,13,32,1,0,64,38,102,192,198,161,66,38,102,192,198,193,48,0,13,32,1,0,64,38,102,192,198,225,66,38,103,192,198,1,1,0,64,38,126,205,193,117,66,38,126,205,193,116,126,13,193,118,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,104,192,198,97,66,38,104,192,198,129,48,0,13,32,1,0,64,38,103,192,198,97,66,38,103,192,198,129,48,0,13,32,1,0,64,38,103,192,198,161,66,38,103,192,198,193,48,0,13,32,1,0,64,38,103,192,198,225,66,38,104,192,198,1,48,0,13,32,1,0,64,38,104,192,198,33,66,38,104,192,198,65,1,0,64,38,126,205,193,120,66,38,126,205,193,119,126,13,193,121,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,105,192,198,161,66,38,105,192,198,193,48,0,13,32,1,0,64,38,104,192,198,161,66,38,104,192,198,193,48,0,13,32,1,0,64,38,104,192,198,225,66,38,105,192,198,1,48,0,13,32,1,0,64,38,105,192,198,33,66,38,105,192,198,65,48,0,13,32,1,0,64,38,105,192,198,97,66,38,105,192,198,129,1,0,64,38,126,205,193,123,66,38,126,205,193,122,126,13,193,124,48,0,13,32,1,0,64,38,126,205,193,126,66,38,126,205,193,125,126,13,193,127,48,0,13,32,1,0,64,38,126,205,193,129,66,38,126,205,193,128,176,128,28,0,13,32,14,32,227,32,228,32,32,38,33,38,64,38,65,38,66,38,67,38,149,38,151,38,167,38,168,38,8,39,9,39,68,39,69,39,100,39,101,39,27,43,28,43,60,216,63,216,64,219,65,219,15,254,16,254,1,0,8,243,1,0,9,243,1,0,43,243,1,0,44,243,1,0,62,243,1,0,63,243,1,0,115,243,1,0,116,243,1,0,124,243,1,0,125,243,1,0,132,243,1,0,133,243,1,0,147,243,1,0,148,243,1,0,164,243,1,0,165,243,1,0,168,243,1,0,169,243,1,0,235,243,1,0,236,243,1,0,237,243,1,0,238,243,1,0,251,243,1,0,0,244,1,0,102,244,1,0,106,244,1,0,139,244,1,0,140,244,1,0,168,244,1,0,169,244,1,0,171,244,1,0,172,244,1,0,187,244,1,0,189,244,1,0,37,245,1,0,38,245,1,0,39,245,1,0,40,245,1,0,44,245,1,0,45,245,1,0,232,245,1,0,233,245,1,0,128,246,1,0,129,246,1,0,146,246,1,0,147,246,1,0,29,249,1,0,30,249,1,0,175,249,1,0,176,249,1,0,186,249,1,0,187,249,1,0,188,249,1,0,190,249,1,0,209,249,1,0,210,249,1,0,121,250,1,0,122,250,14,0,98,0,14,0,100,0,14,0,101,0,14,0,102,0,14,0,103,0,14,0,104,0,14,0,108,0,14,0,109,0,14,0,110,0,14,0,111,0,14,0,115,0,14,0,117,0,14,0,119,0,14,0,120,0,14,0,127,0,14,0,128,0,5,2,64,12,32,14,200,14,240,14,22,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,24,4,224,14,192,13,176,13,216,12,72,13,80,13,26,4,96,14,144,12,96,12,208,12,160,13,28,4,30,4,32,4,34,4,36,4,38,4,40,4,42,4,44,4,46,4,160,12,152,12,128,14,136,14,144,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,160,14,112,13,176,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,216,14,232,14,208,14,240,14,168,14,128,13,72,14,192,14,170,56,56,13,152,14,0,0,200,14,64,14,88,14,104,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,120,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,112,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,184,14,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,255,5,0,0,255,5,184,13,255,5,152,13,255,5,168,16,255,5,168,20,255,5,168,24,255,5,168,28,255,5,168,32,255,5,168,36,255,5,168,40,255,5,168,44,255,5,168,48,255,5,168,52,255,1,170,170,3,0,83,0,74,0,41,0,103,238,0,16,93,13,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,56,51,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,76,46,0,0,76,46,0,0,76,46,0,0,76,46,0,0,240,46,0,0,240,46,0,0,100,47,0,0,100,47,0,0,32,51,0,0,50,105,114,84,1,0,156,8,204,1,64,0,192,0,59,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,111,0,119,0,127,0,135,0,141,0,149,0,157,0,165,0,173,0,181,0,189,0,197,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,205,0,213,0,220,0,228,0,234,0,242,0,48,0,56,0,48,0,56,0,48,0,56,0,249,0,1,1,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,25,1,33,1,41,1,49,1,57,1,65,1,73,1,81,1,48,0,48,0,48,0,48,0,82,1,48,0,48,0,90,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,98,1,48,0,48,0,48,0,105,1,109,1,114,1,48,0,122,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,138,1,146,1,154,1,162,1,168,1,48,0,171,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,17,1,48,0,48,0,9,1,195,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,188,1,252,1,52,2,116,2,180,2,244,2,192,0,192,0,192,0,192,0,52,3,112,3,168,3,192,0,192,0,192,0,228,3,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,91,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,179,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,3,0,202,1,4,0,202,34,4,0,202,67,4,0,202,100,4,0,202,133,4,0,202,166,4,0,202,199,4,0,202,232,4,0,202,9,5,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,3,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,3,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,3,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,58,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,77,0,62,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,68,134,82,0,68,5,82,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,80,5,71,0,80,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,71,0,44,134,76,0,44,134,77,0,44,5,77,0,44,0,0,0,0,0,0,0,0,134,73,0,70,134,73,0,46,5,73,0,46,134,74,0,48,134,75,0,48,134,77,0,48,5,77,0,48,5,81,0,48,134,79,0,50,134,81,0,50,134,83,0,50,134,73,0,52,5,73,0,52,134,74,0,54,134,78,0,54,197,34,0,0,134,77,0,58,134,74,0,58,134,72,0,62,5,72,0,62,5,74,0,64,5,84,0,64,134,77,0,66,134,75,0,68,5,76,0,68,134,81,0,70,192,0,0,0,192,0,0,0,134,80,0,54,5,80,0,54,134,75,0,72,5,75,0,72,135,70,0,76,0,0,0,0,0,0,0,0,134,77,0,78,5,79,0,78,5,74,0,80,134,75,0,80,5,75,0,80,134,76,0,80,192,0,0,0,192,0,0,0,134,76,0,82,134,74,0,84,134,72,0,90,5,72,0,90,134,71,0,92,5,71,0,92,201,6,0,0,134,86,0,92,5,86,0,92,5,88,0,92,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,5,73,0,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,79,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,72,0,54,5,72,0,54,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,84,0,92,5,84,0,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,0,0,134,73,0,86,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,75,0,90,5,75,0,90,192,0,0,0,192,0,0,0,134,76,0,68,5,78,0,48,134,84,0,70,5,84,0,70,134,74,0,92,5,74,0,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,81,0,64,5,80,0,68,5,77,0,80,5,70,0,60,192,0,0,0,192,0,0,0,134,71,0,42,134,71,0,46,5,71,0,46,134,74,0,64,134,72,0,80,5,74,0,78,5,78,0,92,0,0,0,0,0,0,0,0,134,71,0,44,134,73,0,82,134,78,0,84,134,76,0,50,5,76,0,50,134,72,0,60,5,72,0,60,134,73,0,74,5,73,0,74,134,73,0,76,5,73,0,76,134,71,0,90,5,71,0,90,5,73,0,42,5,74,0,42,5,76,0,42,5,76,0,44,5,73,0,70,5,74,0,46,5,74,0,48,5,75,0,48,5,85,0,50,5,81,0,50,5,86,0,50,5,83,0,50,5,87,0,50,5,90,0,50,5,91,0,50,5,74,0,60,5,74,0,54,5,70,0,54,5,71,0,54,5,78,0,54,5,79,0,54,5,76,0,56,5,71,0,56,5,75,0,56,5,74,0,58,5,77,0,58,5,71,0,58,5,76,0,64,5,77,0,64,5,79,0,64,197,162,0,0,5,77,0,66,5,80,0,66,5,73,0,66,5,75,0,68,5,79,0,68,5,71,0,68,5,81,0,70,197,226,0,0,5,83,0,70,5,79,0,72,5,75,0,76,5,77,0,76,5,79,0,76,5,81,0,76,5,82,0,76,5,83,0,76,5,85,0,76,5,70,0,76,5,86,0,76,5,73,0,78,5,77,0,78,5,75,0,60,5,80,0,78,5,82,0,78,5,79,0,80,5,76,0,80,5,73,0,82,5,76,0,82,5,74,0,84,5,78,0,84,5,72,0,86,5,74,0,90,5,70,0,90,5,75,0,92,5,76,0,92,201,230,0,0,5,89,0,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,70,0,44,5,92,0,50,5,75,0,54,5,70,0,56,5,73,0,60,5,78,0,62,5,70,0,64,5,72,0,74,0,0,0,0,0,0,0,0,192,0,0,0,197,34,1,0,197,98,1,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,5,77,0,56,5,78,0,56,192,0,0,0,7,71,0,56,192,0,0,0,192,0,0,0,6,75,0,76,6,79,0,76,6,86,0,76,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,78,0,54,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,32,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,170,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,32,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,170,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,79,97,5,5,79,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,100,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,42,197,226,1,0,197,34,2,0,5,73,0,44,5,70,0,46,5,70,0,48,5,71,0,48,5,75,0,50,5,89,0,50,5,73,0,58,5,71,0,60,5,70,0,62,5,72,0,64,5,70,0,66,5,73,0,68,5,70,0,70,5,74,0,70,5,71,0,70,5,75,0,70,5,72,0,70,197,98,2,0,5,85,0,70,5,78,0,70,5,79,0,70,5,70,0,72,5,72,0,76,5,76,0,76,5,70,0,80,5,70,0,82,5,71,0,82,5,72,0,82,5,79,0,66,5,71,0,84,5,70,0,86,5,70,0,92,5,85,0,92,0,0,0,0,0,0,0,0,5,70,10,96,5,70,38,96,5,70,50,96,5,70,60,96,5,70,82,96,5,70,98,97,192,0,0,0,192,0,0,0,192,0,0,0,5,72,0,44,192,0,0,0,192,0,0,0,135,79,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,0,68,192,0,0,0,135,84,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,73,0,42,7,74,0,42,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,7,81,0,50,8,83,0,50,6,89,0,50,192,0,0,0,6,73,0,58,192,0,0,0,192,0,0,0,7,82,0,68,192,0,0,0,7,73,0,70,6,78,0,70,6,79,0,70,192,0,0,0,192,0,0,0,192,0,0,0,6,71,0,82,7,77,0,66,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,2,0,5,74,0,44,5,72,0,48,5,71,0,52,5,71,0,66,5,74,0,68,5,73,0,72,5,74,0,76,5,84,0,76,5,71,0,78,5,73,0,80,5,72,0,92,5,76,0,54,192,0,0,0,192,0,0,0,192,0,0,0,5,75,0,58,5,78,0,58,5,71,0,72,5,74,0,82,5,77,0,82,5,75,0,44,5,73,0,48,5,72,0,52,5,73,0,54,5,71,0,62,5,78,0,64,5,72,0,66,5,78,0,68,5,74,0,72,5,78,0,76,5,72,0,78,5,78,0,78,5,73,0,84,5,70,0,88,5,73,0,92,5,72,0,42,5,75,0,42,5,76,0,48,5,77,0,50,5,84,0,50,5,88,0,50,5,82,0,50,5,76,0,58,5,76,0,70,5,81,0,78,5,75,0,82,5,87,0,92,7,76,0,42,192,0,0,0,6,74,0,46,192,0,0,0,6,87,0,50,192,0,0,0,6,74,0,60,6,70,0,54,7,76,0,56,7,74,0,58,7,77,0,58,6,71,0,58,6,75,0,58,6,73,0,60,6,79,0,64,6,78,0,64,7,70,0,64,7,73,0,66,6,80,0,66,7,75,0,68,6,79,0,68,7,71,0,68,7,81,0,70,6,79,0,72,6,73,0,78,7,77,0,78,6,74,0,80,7,73,0,82,7,76,0,82,6,70,0,82,7,74,0,84,7,78,0,84,192,0,0,0,6,75,0,92,6,76,0,92,7,81,0,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,0,54,192,0,0,0,192,0,0,0,6,70,0,64,6,70,0,66,192,0,0,0,6,71,0,68,6,70,0,76,6,71,0,76,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,75,0,78,5,76,0,78,192,0,0,0,5,80,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,77,0,84,5,77,0,84,134,73,0,90,5,73,0,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,81,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,135,83,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,74,0,52,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,74,0,52,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,76,0,46,5,76,0,46,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,75,0,64,5,75,0,64,134,76,0,64,134,71,0,72,134,82,0,76,5,71,0,42,5,72,0,80,134,72,0,56,5,72,0,56,134,73,0,62,5,73,0,62,134,79,0,92,5,79,0,92,134,74,0,42,134,73,0,66,134,73,0,42,134,76,0,42,5,75,0,84,134,71,0,86,5,71,0,86,5,76,0,84,134,73,0,56,5,73,0,56,5,80,0,72,5,78,0,50,5,80,0,76,5,80,0,70,5,80,0,50,192,0,0,0,192,0,0,0,134,74,0,78,134,78,0,92,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134,74,0,56,5,74,0,56,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,70,0,52,5,70,0,78,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,77,0,46,5,77,0,46,134,74,0,62,5,74,0,62,134,75,0,62,5,75,0,62,134,76,0,62,5,76,0,62,134,71,0,64,5,71,0,64,134,73,0,64,5,73,0,64,134,82,0,70,5,82,0,70,134,77,0,70,5,77,0,70,192,0,0,0,192,0,0,0,134,72,0,72,5,72,0,72,134,76,0,72,5,76,0,72,134,77,0,72,5,77,0,72,134,70,0,74,5,70,0,74,134,71,0,74,5,71,0,74,135,71,0,76,5,71,0,76,134,89,0,76,5,89,0,76,134,72,0,84,5,72,0,84,192,0,0,0,192,0,0,0,134,80,0,92,5,80,0,92,134,70,38,93,5,70,38,93,134,71,38,93,5,71,38,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,79,0,48,5,82,0,64,5,76,0,66,5,81,0,68,5,87,0,76,5,88,0,76,5,78,0,80,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,77,0,54,5,77,0,54,134,83,0,64,5,83,0,64,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,134,76,0,56,5,80,0,64,192,0,0,0,134,77,0,68,5,77,0,68,134,72,0,46,5,72,0,46,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,56,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,78,0,66,5,75,0,52,5,78,0,72,5,74,0,66,5,72,0,58,5,75,0,66,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,70,0,58,6,70,0,60,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,0,56,5,70,0,84,133,5,0,56,6,70,0,84,5,5,0,64,5,82,0,92,5,5,0,70,5,71,0,50,5,5,0,48,5,83,0,92,5,5,0,48,5,77,0,92,5,5,0,80,5,75,0,46,5,5,0,42,5,73,0,50,5,5,0,42,5,74,0,50,5,5,0,70,5,72,0,50,5,5,0,42,6,74,0,50,5,5,0,82,5,70,0,50,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,92,134,81,48,0,12,3,255,255,0,92,134,84,0,92,5,81,48,0,12,3,255,255,0,92,5,84,16,97,174,5,1,0,1,3,255,255,32,97,134,70,65,3,255,255,32,97,134,70,84,97,174,5,1,0,1,3,255,255,170,97,134,70,65,3,255,255,170,97,134,70,16,97,5,5,1,0,1,3,255,255,32,97,5,70,65,3,255,255,32,97,5,70,84,97,5,5,1,0,1,3,255,255,170,97,5,70,65,3,255,255,170,97,5,70,5,2,64,12,32,14,192,14,232,14,22,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,92,185,96,185,100,185,104,185,108,185,112,185,116,185,120,185,124,186,128,185,132,185,136,185,140,185,144,185,148,185,152,185,156,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,92,168,96,168,100,168,104,168,108,168,112,168,116,168,120,168,124,168,128,168,132,168,136,168,140,168,144,168,148,168,152,168,156,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,112,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,153,110,185,113,153,113,249,113,153,114,89,114,136,14,217,114,185,137,153,137,249,137,89,138,153,153,185,160,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,110,168,113,136,113,232,113,136,114,72,114,128,14,200,114,168,137,136,137,232,137,72,138,136,153,168,160,72,154,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,200,88,6,8,8,8,250,93,232,93,249,98,232,98,200,96,153,101,136,101,249,102,232,102,25,102,8,102,121,103,104,103,89,103,72,103,153,109,136,109,249,110,232,110,25,110,8,110,200,108,249,108,232,108,57,115,40,115,217,113,200,113,121,114,104,114,10,8,12,8,153,125,136,125,249,126,232,126,25,126,8,126,154,129,136,129,250,129,232,129,250,130,232,130,26,130,8,130,249,134,232,134,25,134,8,134,217,132,200,132,153,138,136,138,57,139,40,139,217,137,200,137,57,138,40,138,121,138,104,138,25,139,8,139,249,145,232,145,249,153,232,153,89,154,153,157,136,157,185,158,168,158,25,158,8,158,232,128,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,14,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,16,8,1,0,8,14,18,8,1,0,16,14,0,13,8,13,24,14,20,8,200,12,72,12,32,14,217,56,187,72,200,128,169,128,200,56,169,72,187,88,187,92,169,88,169,92,217,112,187,72,200,112,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,83,0,74,0,41,0,55,17,1,16,149,6,0,96,1,0,0,96,106,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,228,31,0,0,228,31,0,0,228,31,0,0,228,31,0,0,12,34,0,0,12,34,0,0,82,34,0,0,82,34,0,0,82,34,0,0,50,105,114,84,1,0,64,8,241,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,224,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,83,0,74,0,41,0,11,30,1,16,25,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,32,0,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,2,0,0,0,16,32,2,15,3,0,83,0,74,0,41,0,175,38,1,16,0,0,0,0,1,0,0,96,6,0,60,0,68,0,98,0,102,0,117,0,124,0,170,170,4,0,0,96,47,17,1,32,6,30,1,32,120,220,1,80,167,38,1,32,184,38,1,32,5,0,133,0,32,0,41,0,49,0,146,0,118,220,1,144,171,66,0,96,1,0,0,96,189,38,1,32,13,0,0,96,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,101,28,0,32,7,0,0,0,23,0,0,0,103,28,0,0,103,28,0,0,3,0,0,0,0,0,0,0,203,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,101,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,47,221,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,98,0,60,0,225,0,60,0,60,0,60,0,193,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,100,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,146,2,60,0,60,0,60,0,183,1,60,0,239,1,60,0,60,0,60,0,238,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,101,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,104,0,60,0,231,1,60,0,60,0,60,0,230,1,60,0,229,1,60,0,60,0,60,0,228,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,108,0,60,0,233,1,60,0,60,0,60,0,232,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,111,0,60,0,75,1,60,0,60,0,60,0,74,1,60,0,60,0,68,1,60,0,60,0,60,0,67,1,60,0,60,0,241,0,60,0,60,0,60,0,209,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,116,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,117,0,60,0,103,1,60,0,60,0,60,0,102,1,60,0,60,0,254,0,60,0,60,0,60,0,222,0,38,0,121,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,60,0,60,0,113,1,60,0,60,0,60,0,112,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,126,1,60,0,60,0,60,0,125,1,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,39,2,60,0,60,0,60,0,38,2,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,227,0,60,0,60,0,60,0,195,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,245,0,60,0,60,0,60,0,213,0,60,0,60,0,244,0,60,0,60,0,60,0,212,0,60,0,60,0,235,1,60,0,60,0,60,0,234,1,0,0,248,57,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,6,1,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,40,0,0,148,40,0,0,236,45,0,0,236,45,0,0,56,51,0,0,56,51,0,0,220,57,0,0,220,57,0,0,220,57,0,0,50,105,114,84,1,0,64,8,124,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,126,0,134,0,142,0,150,0,48,0,56,0,154,0,162,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,159,0,167,0,173,0,181,0,189,0,197,0,48,0,56,0,196,0,204,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,48,0,48,0,48,0,237,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,245,0,48,0,48,0,253,0,48,0,3,1,11,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,14,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,22,1,26,1,33,1,41,1,47,1,55,1,60,1,68,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,74,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,82,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,85,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,219,0,48,0,48,0,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,93,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,101,1,48,0,48,0,107,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,248,1,56,2,192,0,104,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,124,2,180,2,244,2,192,0,16,3,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,41,0,202,65,41,0,202,98,41,0,202,131,41,0,202,164,41,0,202,197,41,0,202,230,41,0,202,7,42,0,202,40,42,0,202,73,42,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,201,102,3,0,156,5,0,48,156,5,0,50,156,5,0,52,201,38,4,0,156,5,0,56,156,5,0,58,156,5,0,60,201,230,4,0,156,5,0,64,156,5,0,66,201,166,5,0,201,134,7,0,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,201,166,10,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,12,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,13,0,5,5,0,44,201,38,16,0,5,5,0,48,5,5,0,50,5,5,0,52,201,230,16,0,5,5,0,56,5,5,0,58,5,5,0,60,201,166,17,0,5,5,0,64,5,5,0,66,201,102,18,0,201,70,20,0,5,5,0,72,5,5,0,74,5,5,0,76,201,166,22,0,5,5,0,80,201,134,23,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,70,25,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,198,1,0,0,198,65,0,0,198,97,0,0,198,1,2,0,201,38,26,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,29,49,134,71,33,69,196,138,156,70,196,136,156,70,198,129,0,0,198,161,0,0,198,193,0,0,5,5,127,12,198,33,2,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,134,70,25,81,197,130,32,0,196,138,5,42,5,5,31,43,196,142,5,42,198,65,1,0,193,6,111,93,193,5,111,93,193,4,111,93,201,230,26,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,29,49,5,71,33,69,196,138,5,70,196,136,5,70,198,129,1,0,198,161,1,0,193,7,111,93,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,5,70,25,81,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,27,0,201,134,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,47,5,5,21,47,192,0,0,0,192,0,0,0,134,5,29,49,5,5,29,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,33,0,201,38,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,166,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,33,69,5,70,33,69,201,102,36,0,201,230,37,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,33,69,5,5,33,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,0,0,198,193,1,0,198,193,3,0,198,225,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,39,0,201,38,40,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,81,5,5,25,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,230,40,0,201,6,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,1,0,193,2,111,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,43,0,201,6,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,46,0,201,6,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,49,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,197,34,7,0,197,34,0,0,197,98,0,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,192,0,0,0,198,194,5,0,197,98,8,0,198,2,6,0,198,66,6,0,198,130,6,0,197,162,8,0,134,5,28,55,5,5,28,55,134,5,27,55,5,5,27,55,134,5,21,63,5,5,21,63,201,230,49,0,201,198,51,0,198,130,8,0,198,194,8,0,134,5,23,47,5,5,23,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,9,0,197,34,9,0,198,66,9,0,197,98,9,0,198,130,9,0,197,162,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,53,0,201,102,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,97,1,0,192,0,0,0,192,0,0,0,198,194,9,0,197,98,10,0,198,2,10,0,198,66,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,55,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,55,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,57,0,5,71,238,102,201,166,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,10,0,192,0,0,0,192,0,0,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,192,0,0,0,197,98,11,0,192,0,0,0,192,0,0,0,197,162,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,11,0,192,0,0,0,197,34,12,0,192,0,0,0,197,98,12,0,192,0,0,0,197,162,12,0,192,0,0,0,197,226,12,0,197,35,13,0,197,130,13,0,192,0,0,0,192,0,0,0,197,194,13,0,197,3,14,0,197,98,14,0,192,0,0,0,192,0,0,0,197,162,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,10,0,197,226,14,0,5,5,10,121,197,34,15,0,197,98,15,0,5,5,12,121,5,5,16,121,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,5,5,18,121,5,5,20,121,197,66,11,0,5,5,24,121,197,98,11,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,59,0,201,102,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,65,0,201,6,66,0,201,198,66,0,201,134,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,68,0,201,198,69,0,201,70,71,0,201,198,72,0,201,70,74,0,201,198,75,0,198,2,12,0,198,66,12,0,198,130,12,0,198,194,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,77,0,201,6,78,0,192,0,0,0,192,0,0,0,197,226,22,0,197,34,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,78,0,201,230,79,0,201,6,81,0,201,38,82,0,201,70,83,0,201,102,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,85,0,201,70,86,0,201,6,87,0,201,198,87,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,88,0,201,102,91,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,94,0,201,38,96,0,192,0,0,0,192,0,0,0,198,194,16,0,198,2,17,0,198,66,17,0,198,130,17,0,198,194,17,0,198,2,18,0,198,66,18,0,198,130,18,0,198,2,15,0,198,2,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,4,0,198,66,5,0,201,6,98,0,201,230,99,0,201,198,101,0,201,230,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,104,0,201,38,105,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,4,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,6,111,93,0,134,0,70,0,5,111,93,0,134,0,5,0,6,111,93,0,134,0,5,0,5,111,93,0,134,0,72,0,7,111,93,0,134,0,71,0,7,111,93,0,134,0,5,0,7,111,93,0,134,0,70,0,7,111,93,0,134,0,73,0,7,111,93,0,134,0,5,0,2,111,93,0,5,0,70,0,6,111,93,0,5,0,70,0,5,111,93,0,5,0,72,0,7,111,93,0,5,0,71,0,7,111,93,0,5,0,70,0,7,111,93,0,5,0,73,0,7,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,210,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,5,21,47,5,160,0,0,5,5,21,47,5,160,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,6,111,93,5,162,0,0,193,5,111,93,5,162,0,0,134,5,27,55,5,160,0,0,5,5,27,55,5,160,0,0,134,5,21,63,5,160,0,0,5,5,21,63,5,160,0,0,134,70,33,69,5,160,0,0,134,71,33,69,5,160,0,0,5,70,33,69,5,160,0,0,5,71,33,69,5,160,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,7,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,6,111,93,5,164,0,0,193,4,111,93,5,164,0,0,193,7,111,93,5,162,0,0,193,5,111,93,5,136,0,0,193,4,111,93,5,136,0,0,193,3,111,93,5,136,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,193,7,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,6,111,93,5,200,0,0,193,5,111,93,5,200,0,0,134,5,21,63,5,196,0,0,5,5,21,63,5,196,0,0,134,5,21,63,5,210,0,0,5,5,21,63,5,210,0,0,134,70,33,69,5,196,0,0,134,71,33,69,5,196,0,0,5,70,33,69,5,196,0,0,5,71,33,69,5,196,0,0,134,70,33,69,5,210,0,0,134,71,33,69,5,210,0,0,5,70,33,69,5,210,0,0,5,71,33,69,5,210,0,0,134,70,33,69,5,204,0,0,134,71,33,69,5,204,0,0,5,70,33,69,5,204,0,0,5,71,33,69,5,204,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,2,111,93,5,196,0,0,193,2,111,93,5,210,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,6,111,93,5,196,0,0,193,5,111,93,5,196,0,0,193,7,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,7,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,162,10,0,5,5,10,121,5,5,12,121,197,226,10,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,11,0,5,5,24,121,197,98,11,0,5,5,28,121,5,5,30,121,197,162,11,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,11,0,5,5,107,121,197,34,12,0,5,5,111,121,197,98,12,0,5,5,115,121,197,162,12,0,5,5,119,121,197,226,12,0,197,35,13,0,197,130,13,0,5,5,127,121,5,5,129,121,197,194,13,0,197,3,14,0,197,98,14,0,5,5,137,121,5,5,139,121,197,162,14,0,5,5,143,121,5,5,6,121,197,162,10,0,197,226,14,0,5,5,10,121,197,34,15,0,197,98,15,0,5,5,12,121,5,5,16,121,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,5,5,18,121,5,5,20,121,197,66,11,0,5,5,24,121,197,98,11,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,5,0,8,3,9,0,8,3,0,192,198,65,10,3,0,192,198,97,65,3,31,235,134,5,1,3,31,235,134,5,3,3,198,129,7,3,198,161,0,46,156,5,48,0,12,3,21,239,134,5,0,54,156,5,48,0,12,3,27,247,134,5,0,62,156,5,48,0,12,3,21,255,134,5,0,68,156,5,2,0,1,3,255,255,33,69,134,70,3,3,255,255,33,69,134,71,65,3,255,255,33,69,134,70,0,70,156,5,4,0,2,3,0,192,198,129,3,3,0,192,198,161,8,3,0,192,198,193,11,3,0,192,198,225,40,3,1,192,198,1,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,92,156,5,48,0,12,3,1,192,198,33,0,42,5,5,5,0,8,3,11,0,8,3,255,255,111,93,193,6,10,3,255,255,111,93,193,5,65,3,31,235,5,5,1,3,31,235,5,5,3,3,1,192,198,65,7,3,1,192,198,97,0,46,5,5,48,0,12,3,21,239,5,5,0,54,5,5,48,0,12,3,27,247,5,5,0,62,5,5,48,0,12,3,21,255,5,5,0,68,5,5,2,0,1,3,255,255,33,69,5,70,3,3,255,255,33,69,5,71,65,3,255,255,33,69,5,70,0,70,5,5,4,0,2,3,1,192,198,129,3,3,1,192,198,161,8,3,255,255,111,93,193,7,11,3,1,192,198,193,40,3,1,192,198,225,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,0,92,5,5,48,0,12,3,255,255,111,93,193,2,156,46,196,160,48,0,12,3,0,192,197,162,5,46,196,160,48,0,12,3,0,192,197,226,156,42,196,162,5,0,8,3,9,0,8,3,2,192,198,194,10,3,3,192,198,2,65,3,1,192,197,34,1,3,1,192,197,34,3,3,2,192,198,66,7,3,2,192,198,130,5,42,196,162,5,0,8,3,9,0,8,3,1,192,197,162,10,3,1,192,197,226,65,3,1,192,197,98,1,3,1,192,197,98,3,3,3,192,198,66,7,3,3,192,198,130,156,54,196,160,48,0,12,3,2,192,197,34,5,54,196,160,48,0,12,3,2,192,197,98,156,62,196,160,48,0,12,3,2,192,197,162,5,62,196,160,48,0,12,3,2,192,197,226,156,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,5,68,196,160,2,0,1,3,3,192,197,162,3,3,3,192,197,226,65,3,3,192,197,162,156,78,196,160,48,0,12,3,4,192,197,34,5,78,196,160,48,0,12,3,4,192,197,98,156,82,196,162,1,0,8,3,4,192,197,162,11,3,4,192,197,226,5,82,196,162,1,0,8,3,5,192,197,34,11,3,5,192,197,98,156,70,196,190,3,0,2,3,4,192,198,2,3,3,4,192,198,66,8,3,4,192,198,130,11,3,4,192,198,194,5,70,196,190,3,0,2,3,5,192,198,2,3,3,5,192,198,66,8,3,5,192,197,162,11,3,5,192,198,130,156,82,196,190,1,0,8,3,5,192,197,226,11,3,6,192,197,34,5,82,196,190,1,0,8,3,6,192,197,98,11,3,6,192,197,162,22,47,134,5,48,0,12,3,23,239,134,5,1,0,198,1,3,0,2,3,6,192,198,194,3,3,7,192,198,2,8,3,7,192,198,66,11,3,7,192,198,130,1,0,198,225,3,0,2,3,7,192,198,194,3,3,8,192,198,2,8,3,8,192,197,226,11,3,8,192,198,66,156,78,196,202,48,0,12,3,9,192,197,226,5,78,196,202,48,0,12,3,10,192,197,34,22,47,5,5,48,0,12,3,23,239,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,5,0,8,3,9,0,8,3,11,192,198,2,10,3,11,192,198,66,65,3,17,192,197,98,1,3,17,192,197,98,3,3,10,192,198,130,7,3,10,192,198,194,5,42,196,200,5,0,8,3,9,0,8,3,17,192,197,226,10,3,18,192,197,34,65,3,17,192,197,162,1,3,17,192,197,162,3,3,11,192,198,130,7,3,11,192,198,194,156,62,196,196,48,0,12,3,18,192,197,98,5,62,196,196,48,0,12,3,18,192,197,162,156,62,196,210,48,0,12,3,18,192,197,226,5,62,196,210,48,0,12,3,19,192,197,34,156,68,196,196,2,0,1,3,19,192,197,98,3,3,19,192,197,162,65,3,19,192,197,98,5,68,196,196,2,0,1,3,19,192,197,226,3,3,20,192,197,34,65,3,19,192,197,226,156,68,196,210,2,0,1,3,20,192,197,98,3,3,20,192,197,162,65,3,20,192,197,98,5,68,196,210,2,0,1,3,20,192,197,226,3,3,21,192,197,34,65,3,20,192,197,226,156,68,196,204,2,0,1,3,21,192,197,98,3,3,21,192,197,162,65,3,21,192,197,98,5,68,196,204,2,0,1,3,21,192,197,226,3,3,22,192,197,34,65,3,21,192,197,226,156,78,196,196,48,0,12,3,22,192,197,98,5,78,196,196,48,0,12,3,22,192,197,162,156,82,196,198,1,0,8,3,23,192,197,98,11,3,23,192,197,162,5,82,196,198,1,0,8,3,23,192,197,226,11,3,24,192,197,34,156,82,196,208,1,0,8,3,24,192,197,98,11,3,24,192,197,162,5,82,196,208,1,0,8,3,24,192,197,226,11,3,25,192,197,34,156,82,196,204,1,0,8,3,25,192,197,98,11,3,25,192,197,162,5,82,196,204,1,0,8,3,25,192,197,226,11,3,26,192,197,34,156,92,196,196,48,0,12,3,13,192,198,2,5,92,196,196,48,0,12,3,26,192,197,98,156,92,196,210,48,0,12,3,13,192,198,66,5,92,196,210,48,0,12,3,26,192,197,162,156,42,196,196,5,0,8,3,9,0,8,3,14,192,198,2,10,3,14,192,198,66,65,3,26,192,197,226,1,3,26,192,197,226,3,3,13,192,198,130,7,3,13,192,198,194,5,42,196,196,5,0,8,3,9,0,8,3,27,192,197,98,10,3,27,192,197,162,65,3,27,192,197,34,1,3,27,192,197,34,3,3,14,192,198,130,7,3,14,192,198,194,156,70,196,196,3,0,2,3,15,192,198,2,3,3,15,192,198,66,8,3,15,192,198,130,11,3,15,192,198,194,5,70,196,196,3,0,2,3,16,192,198,2,3,3,16,192,198,66,8,3,27,192,197,226,11,3,16,192,198,130,28,0,197,35,3,0,2,3,18,192,198,195,3,3,19,192,198,35,8,3,19,192,198,131,11,3,19,192,198,227,28,0,197,131,3,0,2,3,20,192,198,67,3,3,20,192,198,163,8,3,28,192,197,227,11,3,21,192,198,3,156,82,196,196,1,0,8,3,29,192,197,66,11,3,29,192,197,130,5,82,196,196,1,0,8,3,29,192,197,194,11,3,30,192,197,2,30,0,197,67,1,0,8,3,30,192,197,163,11,3,31,192,197,3,31,0,197,99,1,0,8,3,31,192,197,195,11,3,32,192,197,35,3,0,67,0,50,0,59,0,203,0,0,16,4,0,0,96,1,0,0,96,46,52,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,32,0,0,196,32,0,0,28,38,0,0,28,38,0,0,132,41,0,0,132,41,0,0,226,47,0,0,226,47,0,0,18,52,0,0,50,105,114,84,1,0,64,8,255,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,126,0,134,0,142,0,150,0,48,0,56,0,154,0,162,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,190,0,197,0,205,0,211,0,219,0,224,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,178,0,48,0,48,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,248,1,56,2,192,0,104,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,26,0,202,33,26,0,202,66,26,0,202,99,26,0,202,132,26,0,202,165,26,0,202,198,26,0,202,231,26,0,202,8,27,0,202,41,27,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,166,2,0,156,5,0,48,156,5,0,50,156,5,0,52,201,102,3,0,156,5,0,56,156,5,0,58,156,5,0,60,201,38,4,0,156,5,0,64,156,5,0,66,201,230,4,0,201,198,6,0,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,201,230,9,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,134,11,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,12,0,5,5,0,44,201,102,15,0,5,5,0,48,5,5,0,50,5,5,0,52,201,38,16,0,5,5,0,56,5,5,0,58,5,5,0,60,201,230,16,0,5,5,0,64,5,5,0,66,201,166,17,0,201,134,19,0,5,5,0,72,5,5,0,74,5,5,0,76,201,230,21,0,5,5,0,80,201,198,22,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,134,24,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,198,1,0,0,198,65,0,0,198,97,0,0,198,1,2,0,201,102,25,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,29,49,134,71,33,69,196,138,156,70,196,136,156,70,198,129,0,0,198,161,0,0,198,193,0,0,5,5,127,12,198,33,2,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,134,70,25,81,197,194,25,0,196,138,5,42,5,5,31,43,196,142,5,42,198,65,1,0,193,6,111,93,193,5,111,93,193,4,111,93,201,38,26,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,29,49,5,71,33,69,196,138,5,70,196,136,5,70,198,129,1,0,198,161,1,0,193,7,111,93,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,5,70,25,81,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,26,0,201,198,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,47,5,5,21,47,192,0,0,0,192,0,0,0,134,5,29,49,5,5,29,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,32,0,201,102,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,34,0,201,230,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,33,69,5,70,33,69,201,166,35,0,201,38,37,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,33,69,5,5,33,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,0,0,198,193,1,0,198,193,3,0,198,225,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,38,0,201,102,39,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,81,5,5,25,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,38,40,0,201,70,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,1,0,193,2,111,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,42,0,201,70,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,46,0,201,70,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,197,34,7,0,197,34,0,0,197,98,0,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,192,0,0,0,198,194,5,0,197,98,8,0,198,2,6,0,198,66,6,0,198,130,6,0,197,162,8,0,134,5,28,55,5,5,28,55,134,5,27,55,5,5,27,55,134,5,21,63,5,5,21,63,201,38,49,0,201,6,51,0,198,130,8,0,198,194,8,0,134,5,23,47,5,5,23,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,9,0,197,34,9,0,198,66,9,0,197,98,9,0,198,130,9,0,197,162,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,52,0,201,166,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,97,1,0,192,0,0,0,192,0,0,0,198,194,9,0,197,98,10,0,198,2,10,0,198,66,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,55,0,201,6,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,60,0,201,166,61,0,201,102,62,0,201,38,63,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,63,0,201,102,65,0,201,230,66,0,201,102,68,0,201,230,69,0,201,102,71,0,198,2,12,0,198,66,12,0,198,130,12,0,198,194,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,72,0,201,166,73,0,192,0,0,0,192,0,0,0,197,34,16,0,197,98,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,74,0,201,134,75,0,201,166,76,0,201,198,77,0,201,230,78,0,201,6,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,81,0,201,230,81,0,201,166,82,0,201,102,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,84,0,201,6,87,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,89,0,201,198,91,0,192,0,0,0,192,0,0,0,198,194,16,0,198,2,17,0,198,66,17,0,198,130,17,0,198,194,17,0,198,2,18,0,198,66,18,0,198,130,18,0,198,2,15,0,198,2,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,4,0,198,66,5,0,201,166,93,0,201,134,95,0,201,102,97,0,201,134,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,99,0,201,198,100,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,4,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,6,111,93,0,134,0,70,0,5,111,93,0,134,0,5,0,6,111,93,0,134,0,5,0,5,111,93,0,134,0,72,0,7,111,93,0,134,0,71,0,7,111,93,0,134,0,5,0,7,111,93,0,134,0,70,0,7,111,93,0,134,0,73,0,7,111,93,0,134,0,5,0,2,111,93,0,5,0,70,0,6,111,93,0,5,0,70,0,5,111,93,0,5,0,72,0,7,111,93,0,5,0,71,0,7,111,93,0,5,0,70,0,7,111,93,0,5,0,73,0,7,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,210,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,5,21,47,5,160,0,0,5,5,21,47,5,160,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,6,111,93,5,162,0,0,193,5,111,93,5,162,0,0,134,5,27,55,5,160,0,0,5,5,27,55,5,160,0,0,134,5,21,63,5,160,0,0,5,5,21,63,5,160,0,0,134,70,33,69,5,160,0,0,134,71,33,69,5,160,0,0,5,70,33,69,5,160,0,0,5,71,33,69,5,160,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,7,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,6,111,93,5,164,0,0,193,4,111,93,5,164,0,0,193,7,111,93,5,162,0,0,193,5,111,93,5,136,0,0,193,4,111,93,5,136,0,0,193,3,111,93,5,136,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,193,7,111,93,5,164,0,0,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,6,111,93,5,200,0,0,193,5,111,93,5,200,0,0,134,5,21,63,5,196,0,0,5,5,21,63,5,196,0,0,134,5,21,63,5,210,0,0,5,5,21,63,5,210,0,0,134,70,33,69,5,196,0,0,134,71,33,69,5,196,0,0,5,70,33,69,5,196,0,0,5,71,33,69,5,196,0,0,134,70,33,69,5,210,0,0,134,71,33,69,5,210,0,0,5,70,33,69,5,210,0,0,5,71,33,69,5,210,0,0,134,70,33,69,5,204,0,0,134,71,33,69,5,204,0,0,5,70,33,69,5,204,0,0,5,71,33,69,5,204,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,2,111,93,5,196,0,0,193,2,111,93,5,210,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,6,111,93,5,196,0,0,193,5,111,93,5,196,0,0,193,7,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,7,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,8,3,9,0,8,3,0,192,198,65,10,3,0,192,198,97,65,3,31,235,134,5,1,3,31,235,134,5,3,3,198,129,7,3,198,161,0,46,156,5,48,0,12,3,21,239,134,5,0,54,156,5,48,0,12,3,27,247,134,5,0,62,156,5,48,0,12,3,21,255,134,5,0,68,156,5,2,0,1,3,255,255,33,69,134,70,3,3,255,255,33,69,134,71,65,3,255,255,33,69,134,70,0,70,156,5,4,0,2,3,0,192,198,129,3,3,0,192,198,161,8,3,0,192,198,193,11,3,0,192,198,225,40,3,1,192,198,1,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,92,156,5,48,0,12,3,1,192,198,33,0,42,5,5,5,0,8,3,11,0,8,3,255,255,111,93,193,6,10,3,255,255,111,93,193,5,65,3,31,235,5,5,1,3,31,235,5,5,3,3,1,192,198,65,7,3,1,192,198,97,0,46,5,5,48,0,12,3,21,239,5,5,0,54,5,5,48,0,12,3,27,247,5,5,0,62,5,5,48,0,12,3,21,255,5,5,0,68,5,5,2,0,1,3,255,255,33,69,5,70,3,3,255,255,33,69,5,71,65,3,255,255,33,69,5,70,0,70,5,5,4,0,2,3,1,192,198,129,3,3,1,192,198,161,8,3,255,255,111,93,193,7,11,3,1,192,198,193,40,3,1,192,198,225,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,0,92,5,5,48,0,12,3,255,255,111,93,193,2,156,46,196,160,48,0,12,3,0,192,197,162,5,46,196,160,48,0,12,3,0,192,197,226,156,42,196,162,5,0,8,3,9,0,8,3,2,192,198,194,10,3,3,192,198,2,65,3,1,192,197,34,1,3,1,192,197,34,3,3,2,192,198,66,7,3,2,192,198,130,5,42,196,162,5,0,8,3,9,0,8,3,1,192,197,162,10,3,1,192,197,226,65,3,1,192,197,98,1,3,1,192,197,98,3,3,3,192,198,66,7,3,3,192,198,130,156,54,196,160,48,0,12,3,2,192,197,34,5,54,196,160,48,0,12,3,2,192,197,98,156,62,196,160,48,0,12,3,2,192,197,162,5,62,196,160,48,0,12,3,2,192,197,226,156,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,5,68,196,160,2,0,1,3,3,192,197,162,3,3,3,192,197,226,65,3,3,192,197,162,156,78,196,160,48,0,12,3,4,192,197,34,5,78,196,160,48,0,12,3,4,192,197,98,156,82,196,162,1,0,8,3,4,192,197,162,11,3,4,192,197,226,5,82,196,162,1,0,8,3,5,192,197,34,11,3,5,192,197,98,156,70,196,190,3,0,2,3,4,192,198,2,3,3,4,192,198,66,8,3,4,192,198,130,11,3,4,192,198,194,5,70,196,190,3,0,2,3,5,192,198,2,3,3,5,192,198,66,8,3,5,192,197,162,11,3,5,192,198,130,156,82,196,190,1,0,8,3,5,192,197,226,11,3,6,192,197,34,5,82,196,190,1,0,8,3,6,192,197,98,11,3,6,192,197,162,22,47,134,5,48,0,12,3,23,239,134,5,1,0,198,1,3,0,2,3,6,192,198,194,3,3,7,192,198,2,8,3,7,192,198,66,11,3,7,192,198,130,1,0,198,225,3,0,2,3,7,192,198,194,3,3,8,192,198,2,8,3,8,192,197,226,11,3,8,192,198,66,156,78,196,202,48,0,12,3,9,192,197,226,5,78,196,202,48,0,12,3,10,192,197,34,22,47,5,5,48,0,12,3,23,239,5,5,156,42,196,200,5,0,8,3,9,0,8,3,11,192,198,2,10,3,11,192,198,66,65,3,10,192,197,162,1,3,10,192,197,162,3,3,10,192,198,130,7,3,10,192,198,194,5,42,196,200,5,0,8,3,9,0,8,3,11,192,197,34,10,3,11,192,197,98,65,3,10,192,197,226,1,3,10,192,197,226,3,3,11,192,198,130,7,3,11,192,198,194,156,62,196,196,48,0,12,3,11,192,197,162,5,62,196,196,48,0,12,3,11,192,197,226,156,62,196,210,48,0,12,3,12,192,197,34,5,62,196,210,48,0,12,3,12,192,197,98,156,68,196,196,2,0,1,3,12,192,197,162,3,3,12,192,197,226,65,3,12,192,197,162,5,68,196,196,2,0,1,3,13,192,197,34,3,3,13,192,197,98,65,3,13,192,197,34,156,68,196,210,2,0,1,3,13,192,197,162,3,3,13,192,197,226,65,3,13,192,197,162,5,68,196,210,2,0,1,3,14,192,197,34,3,3,14,192,197,98,65,3,14,192,197,34,156,68,196,204,2,0,1,3,14,192,197,162,3,3,14,192,197,226,65,3,14,192,197,162,5,68,196,204,2,0,1,3,15,192,197,34,3,3,15,192,197,98,65,3,15,192,197,34,156,78,196,196,48,0,12,3,15,192,197,162,5,78,196,196,48,0,12,3,15,192,197,226,156,82,196,198,1,0,8,3,16,192,197,162,11,3,16,192,197,226,5,82,196,198,1,0,8,3,17,192,197,34,11,3,17,192,197,98,156,82,196,208,1,0,8,3,17,192,197,162,11,3,17,192,197,226,5,82,196,208,1,0,8,3,18,192,197,34,11,3,18,192,197,98,156,82,196,204,1,0,8,3,18,192,197,162,11,3,18,192,197,226,5,82,196,204,1,0,8,3,19,192,197,34,11,3,19,192,197,98,156,92,196,196,48,0,12,3,13,192,198,2,5,92,196,196,48,0,12,3,19,192,197,162,156,92,196,210,48,0,12,3,13,192,198,66,5,92,196,210,48,0,12,3,19,192,197,226,156,42,196,196,5,0,8,3,9,0,8,3,14,192,198,2,10,3,14,192,198,66,65,3,20,192,197,34,1,3,20,192,197,34,3,3,13,192,198,130,7,3,13,192,198,194,5,42,196,196,5,0,8,3,9,0,8,3,20,192,197,162,10,3,20,192,197,226,65,3,20,192,197,98,1,3,20,192,197,98,3,3,14,192,198,130,7,3,14,192,198,194,156,70,196,196,3,0,2,3,15,192,198,2,3,3,15,192,198,66,8,3,15,192,198,130,11,3,15,192,198,194,5,70,196,196,3,0,2,3,16,192,198,2,3,3,16,192,198,66,8,3,21,192,197,34,11,3,16,192,198,130,21,0,197,99,3,0,2,3,18,192,198,195,3,3,19,192,198,35,8,3,19,192,198,131,11,3,19,192,198,227,21,0,197,195,3,0,2,3,20,192,198,67,3,3,20,192,198,163,8,3,22,192,197,35,11,3,21,192,198,3,156,82,196,196,1,0,8,3,22,192,197,130,11,3,22,192,197,194,5,82,196,196,1,0,8,3,23,192,197,2,11,3,23,192,197,66,23,0,197,131,1,0,8,3,23,192,197,227,11,3,24,192,197,67,24,0,197,163,1,0,8,3,25,192,197,3,11,3,25,192,197,99,5,2,64,12,32,14,192,14,232,14,16,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,18,4,185,64,20,4,185,76,185,84,185,88,22,4,185,96,186,100,186,108,24,4,185,116,185,120,26,4,28,4,185,136,185,140,185,148,30,4,185,160,32,4,185,172,185,176,185,180,185,184,34,4,88,13,168,13,96,13,56,14,80,12,40,14,36,4,168,64,38,4,168,76,168,84,168,88,40,4,168,96,168,100,168,108,42,4,168,116,168,120,44,4,46,4,168,136,168,140,168,148,48,4,168,160,50,4,168,172,168,176,168,180,168,184,52,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,185,60,249,57,217,212,185,212,185,208,185,204,54,4,185,85,153,85,249,85,89,86,186,101,154,101,250,101,90,102,217,80,249,128,185,133,153,133,25,217,249,216,185,216,136,14,185,200,185,169,153,169,249,169,217,184,153,185,217,164,0,8,168,57,168,60,232,57,200,212,168,212,168,208,168,204,56,4,168,85,136,85,232,85,72,86,168,101,136,101,232,101,72,102,200,80,232,128,168,133,136,133,8,217,232,216,168,216,128,14,168,200,168,169,136,169,232,169,200,184,136,185,200,164,72,186,249,58,232,58,217,57,200,57,58,4,60,4,153,69,136,69,249,69,232,69,153,70,136,70,185,72,168,72,25,78,8,78,185,80,168,80,249,86,232,86,217,85,200,85,153,86,136,86,217,86,200,86,25,86,8,86,249,93,232,93,217,93,200,93,153,94,136,94,62,4,64,4,249,97,232,97,25,99,8,99,122,102,104,102,250,102,232,102,218,101,200,101,218,102,200,102,154,102,168,104,2,8,4,8,250,109,232,109,66,4,68,4,168,144,153,117,136,117,185,118,168,118,25,118,8,118,57,119,40,119,25,119,8,119,217,128,200,128,70,4,72,4,26,126,8,126,6,8,185,128,168,128,249,134,232,134,217,133,200,133,217,216,200,216,217,200,200,200,153,149,136,149,185,150,168,150,25,150,8,150,154,153,136,153,250,153,232,153,74,4,76,4,185,156,168,156,185,162,168,162,25,162,8,162,185,164,168,164,121,170,104,170,249,170,232,170,217,169,200,169,57,170,40,170,249,184,232,184,78,4,80,4,249,177,232,177,249,185,232,185,89,186,153,189,136,189,153,190,136,190,185,196,168,196,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,8,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,10,8,1,0,8,14,12,8,1,0,16,14,0,13,8,13,24,14,14,8,200,12,72,12,32,14,200,152,169,152,187,100,187,108,169,100,169,108,169,192,169,124,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,255,5,185,92,255,5,185,112,255,5,186,124,255,5,185,132,255,5,186,152,255,5,185,168,255,5,185,188,255,5,168,56,255,5,168,68,255,5,168,92,255,5,168,112,255,5,168,124,255,5,168,132,255,5,168,152,255,5,168,168,255,5,168,188,255,5,185,70,255,5,168,70,255,5,217,58,255,5,200,58,255,5,185,94,255,5,168,94,255,5,185,114,255,5,168,114,255,5,186,126,255,5,168,126,255,5,186,154,255,5,168,154,255,5,217,170,255,5,200,170,255,1,170,170,3,0,67,0,50,0,59,0,79,15,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,74,15,0,32,92,28,0,32,1,0,32,0,97,28,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,65,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,83,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,83,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,13,0,32,7,0,0,0,24,0,0,0,122,13,0,0,122,13,0,0,3,0,0,0,0,0,0,0,117,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,105,99,116,105,111,110,97,114,121,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,87,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,83,0,105,0,110,0,104,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,93,0,38,0,150,13,60,0,130,13,60,0,131,13,38,0,165,13,60,0,164,13,0,0,90,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,83,0,105,0,110,0,104,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,93,0,38,0,150,13,60,0,130,13,60,0,131,13,38,0,162,13,202,13,164,13,60,0,60,0,165,13,0,0,170,170,170,170,170,170,170,170,170,170,232,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,112,0,0,0,112,1,0,0,128,25,0,0,128,25,0,0,128,25,0,0,128,25,0,0,208,25,0,0,33,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,113,182,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,47,48,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,120,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,1,0,202,97,1,0,202,130,1,0,202,163,1,0,202,196,1,0,202,229,1,0,202,6,2,0,202,39,2,0,202,72,2,0,202,105,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,41,113,193,3,41,113,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,58,113,5,5,158,113,5,70,62,113,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,71,0,54,0,63,0,119,0,0,16,93,0,0,96,1,0,0,96,220,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,112,0,0,0,112,1,0,0,128,25,0,0,128,25,0,0,128,25,0,0,128,25,0,0,196,25,0,0,33,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,113,182,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,47,48,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,120,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,41,113,193,3,41,113,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,113,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,71,0,54,0,63,0,247,6,0,16,4,0,0,96,1,0,0,96,2,0,43,0,86,0,170,170,242,6,0,32,111,13,0,32,1,0,32,0,116,13,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,25,0,32,7,0,0,0,23,0,0,0,2,25,0,0,2,25,0,0,3,0,0,0,0,0,0,0,153,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,80,220,38,0,65,0,60,0,97,0,8,3,60,0,60,0,60,0,65,0,8,3,38,0,67,0,60,0,99,0,12,3,60,0,60,0,60,0,67,0,12,3,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,79,0,60,0,111,0,2,3,60,0,60,0,60,0,79,0,2,3,38,0,82,0,60,0,114,0,12,3,60,0,60,0,60,0,82,0,12,3,38,0,83,0,60,0,115,0,12,3,60,0,60,0,60,0,83,0,12,3,38,0,90,0,60,0,122,0,12,3,60,0,60,0,60,0,90,0,12,3,0,0,172,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,65,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,68,0,60,0,15,1,60,0,60,0,60,0,14,1,38,0,69,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,27,1,60,0,60,0,60,0,26,1,38,0,73,0,60,0,237,0,60,0,60,0,60,0,205,0,38,0,76,0,60,0,58,1,60,0,60,0,60,0,57,1,60,0,62,1,60,0,60,0,60,0,61,1,38,0,78,0,60,0,72,1,60,0,60,0,60,0,71,1,38,0,79,0,60,0,243,0,60,0,60,0,60,0,211,0,60,0,244,0,60,0,60,0,60,0,212,0,38,0,82,0,60,0,85,1,60,0,60,0,60,0,84,1,60,0,89,1,60,0,60,0,60,0,88,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,84,0,60,0,101,1,60,0,60,0,60,0,100,1,38,0,85,0,60,0,250,0,60,0,60,0,60,0,218,0,60,0,111,1,60,0,60,0,60,0,110,1,38,0,89,0,60,0,253,0,60,0,60,0,60,0,221,0,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,48,57,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,149,1,0,0,68,0,0,0,68,0,0,0,68,0,0,0,212,39,0,0,212,39,0,0,212,39,0,0,212,39,0,0,92,47,0,0,92,47,0,0,24,57,0,0,24,57,0,0,24,57,0,0,50,105,114,84,1,0,64,8,112,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,125,0,133,0,136,0,144,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,147,0,155,0,161,0,169,0,177,0,185,0,48,0,56,0,184,0,192,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,209,0,217,0,48,0,48,0,48,0,225,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,241,0,48,0,247,0,255,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,2,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,10,1,17,1,25,1,33,1,39,1,47,1,54,1,62,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,70,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,73,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,207,0,48,0,48,0,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,81,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,89,1,48,0,48,0,95,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,244,1,32,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,76,2,132,2,196,2,192,0,224,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,59,0,202,33,59,0,202,66,59,0,202,99,59,0,202,132,59,0,202,165,59,0,202,198,59,0,202,231,59,0,202,8,60,0,202,41,60,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,201,70,2,0,201,6,3,0,201,198,3,0,156,5,0,52,156,5,0,54,156,5,0,56,201,70,5,0,156,5,0,60,156,5,0,62,201,102,6,0,156,5,0,66,201,70,8,0,201,38,9,0,156,5,0,72,160,5,0,74,201,6,11,0,201,230,12,0,201,198,13,0,201,166,14,0,156,5,0,84,160,5,0,86,156,5,0,88,201,134,16,0,201,230,17,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,18,0,5,5,0,44,201,70,20,0,201,6,21,0,201,198,21,0,5,5,0,52,5,5,0,54,5,5,0,56,201,70,23,0,5,5,0,60,5,5,0,62,201,102,24,0,5,5,0,66,201,70,26,0,201,38,27,0,5,5,0,72,5,5,0,74,201,6,29,0,201,230,30,0,201,198,31,0,201,166,32,0,5,5,0,84,5,5,0,86,5,5,0,88,201,134,34,0,201,230,35,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,2,43,196,142,156,42,196,154,156,42,134,5,3,43,196,146,156,42,197,226,49,0,201,198,36,0,196,138,156,50,134,5,2,51,196,142,156,50,196,150,156,50,196,138,156,58,134,5,2,59,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,134,5,2,71,134,5,3,71,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,134,5,2,83,196,142,156,82,196,150,156,82,134,5,2,91,160,5,38,93,197,34,50,0,196,138,5,42,5,5,2,43,196,142,5,42,196,154,5,42,5,5,3,43,196,146,5,42,197,98,50,0,201,102,37,0,196,138,5,50,5,5,2,51,196,142,5,50,196,150,5,50,196,138,5,58,5,5,2,59,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,5,5,2,71,5,5,3,71,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,5,5,2,83,196,142,5,82,196,150,5,82,5,5,2,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,38,0,201,166,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,41,0,201,166,42,0,134,5,3,51,5,5,3,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,44,0,201,70,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,65,5,5,2,65,201,102,46,0,201,230,47,0,134,5,3,65,5,5,3,65,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,49,0,201,38,50,0,134,5,2,69,5,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,77,5,5,2,77,201,230,50,0,201,102,52,0,134,5,3,77,5,5,3,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,53,0,201,166,54,0,134,5,2,79,5,5,2,79,201,102,55,0,201,38,56,0,134,5,2,81,5,5,2,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,83,5,5,3,83,192,0,0,0,192,0,0,0,201,230,56,0,201,102,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,59,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,62,0,201,102,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,65,0,201,102,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,68,0,201,166,69,0,201,102,70,0,201,38,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,71,0,201,102,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,74,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,76,0,5,71,238,102,201,166,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,13,0,192,0,0,0,192,0,0,0,197,98,13,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,13,0,192,0,0,0,197,226,13,0,192,0,0,0,192,0,0,0,197,34,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,14,0,192,0,0,0,197,162,14,0,192,0,0,0,197,226,14,0,192,0,0,0,197,34,15,0,192,0,0,0,197,98,15,0,197,163,15,0,197,2,16,0,192,0,0,0,192,0,0,0,197,66,16,0,197,131,16,0,197,226,16,0,192,0,0,0,192,0,0,0,197,34,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,13,0,197,98,17,0,5,5,10,121,197,162,17,0,197,226,17,0,5,5,12,121,5,5,16,121,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,5,5,18,121,5,5,20,121,197,194,13,0,5,5,24,121,197,226,13,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,78,0,201,6,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,81,0,201,70,82,0,201,6,83,0,201,198,83,0,201,134,84,0,201,70,85,0,201,6,86,0,201,198,86,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,87,0,201,6,89,0,201,134,90,0,201,6,92,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,93,0,201,166,94,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,95,0,201,70,97,0,192,0,0,0,192,0,0,0,201,198,98,0,201,70,100,0,201,198,101,0,201,70,103,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,104,0,201,134,105,0,201,70,106,0,201,6,107,0,201,198,107,0,201,134,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,109,0,201,198,110,0,192,0,0,0,192,0,0,0,201,70,112,0,201,198,113,0,192,0,0,0,192,0,0,0,201,70,115,0,201,6,116,0,192,0,0,0,192,0,0,0,197,98,32,0,197,162,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,116,0,201,134,117,0,201,70,118,0,201,6,119,0,201,198,119,0,201,134,120,0,201,70,121,0,201,198,122,0,201,70,124,0,201,198,125,0,201,70,127,0,201,198,128,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,130,0,201,6,131,0,201,198,131,0,201,134,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,133,0,201,198,134,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,136,0,201,198,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,139,0,201,102,140,0,201,134,141,0,201,6,143,0,192,0,0,0,192,0,0,0,197,226,41,0,197,34,42,0,197,98,42,0,197,162,42,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,34,41,0,197,162,41,0,197,162,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,144,0,201,6,146,0,201,134,147,0,201,6,149,0,192,0,0,0,192,0,0,0,197,162,8,0,197,34,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,150,0,201,6,152,0,192,0,0,0,192,0,0,0,201,134,153,0,201,166,154,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,43,5,162,0,0,134,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,134,5,2,51,5,162,0,0,134,5,3,51,5,162,0,0,5,5,2,51,5,162,0,0,5,5,3,51,5,162,0,0,134,5,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,5,2,65,5,160,0,0,134,5,3,65,5,160,0,0,5,5,2,65,5,160,0,0,5,5,3,65,5,160,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,77,5,160,0,0,134,5,3,77,5,160,0,0,5,5,2,77,5,160,0,0,5,5,3,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,81,5,160,0,0,5,5,2,81,5,160,0,0,134,5,2,83,5,162,0,0,134,5,3,83,5,162,0,0,5,5,2,83,5,162,0,0,5,5,3,83,5,162,0,0,134,5,2,71,5,190,0,0,134,5,3,71,5,190,0,0,5,5,2,71,5,190,0,0,5,5,3,71,5,190,0,0,134,5,2,83,5,190,0,0,134,5,3,83,5,190,0,0,5,5,2,83,5,190,0,0,5,5,3,83,5,190,0,0,134,5,3,43,5,164,0,0,5,5,3,43,5,164,0,0,134,5,2,71,5,162,0,0,134,5,3,71,5,162,0,0,5,5,2,71,5,162,0,0,5,5,3,71,5,162,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,81,5,202,0,0,5,5,2,81,5,202,0,0,134,5,2,51,5,160,0,0,134,5,3,51,5,160,0,0,5,5,2,51,5,160,0,0,5,5,3,51,5,160,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,43,5,200,0,0,134,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,134,5,2,49,5,196,0,0,5,5,2,49,5,196,0,0,134,5,2,49,5,210,0,0,5,5,2,49,5,210,0,0,134,5,2,49,5,160,0,0,5,5,2,49,5,160,0,0,134,5,2,49,5,204,0,0,5,5,2,49,5,204,0,0,134,5,2,51,5,204,0,0,134,5,3,51,5,204,0,0,5,5,2,51,5,204,0,0,5,5,3,51,5,204,0,0,134,5,2,51,5,208,0,0,134,5,3,51,5,208,0,0,5,5,2,51,5,208,0,0,5,5,3,51,5,208,0,0,134,5,2,59,5,208,0,0,5,5,2,59,5,208,0,0,134,5,2,65,5,196,0,0,134,5,3,65,5,196,0,0,5,5,2,65,5,196,0,0,5,5,3,65,5,196,0,0,134,5,2,65,5,210,0,0,134,5,3,65,5,210,0,0,5,5,2,65,5,210,0,0,5,5,3,65,5,210,0,0,134,5,2,65,5,204,0,0,134,5,3,65,5,204,0,0,5,5,2,65,5,204,0,0,5,5,3,65,5,204,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,77,5,196,0,0,134,5,3,77,5,196,0,0,5,5,2,77,5,196,0,0,5,5,3,77,5,196,0,0,134,5,2,77,5,210,0,0,134,5,3,77,5,210,0,0,5,5,2,77,5,210,0,0,5,5,3,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,81,5,196,0,0,5,5,2,81,5,196,0,0,134,5,2,81,5,210,0,0,5,5,2,81,5,210,0,0,134,5,2,81,5,204,0,0,5,5,2,81,5,204,0,0,134,5,2,83,5,198,0,0,134,5,3,83,5,198,0,0,5,5,2,83,5,198,0,0,5,5,3,83,5,198,0,0,134,5,2,83,5,208,0,0,134,5,3,83,5,208,0,0,5,5,2,83,5,208,0,0,5,5,3,83,5,208,0,0,134,5,2,83,5,204,0,0,134,5,3,83,5,204,0,0,5,5,2,83,5,204,0,0,5,5,3,83,5,204,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,43,5,196,0,0,134,5,3,43,5,196,0,0,5,5,2,43,5,196,0,0,5,5,3,43,5,196,0,0,134,5,2,51,5,196,0,0,134,5,3,51,5,196,0,0,5,5,2,51,5,196,0,0,5,5,3,51,5,196,0,0,134,5,2,59,5,196,0,0,5,5,2,59,5,196,0,0,134,5,2,71,5,196,0,0,134,5,3,71,5,196,0,0,5,5,2,71,5,196,0,0,5,5,3,71,5,196,0,0,134,5,3,71,5,136,0,0,5,5,3,71,5,136,0,0,134,5,3,71,5,138,0,0,5,5,3,71,5,138,0,0,134,5,3,71,5,182,0,0,5,5,3,71,5,182,0,0,134,5,3,71,5,154,0,0,5,5,3,71,5,154,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,134,5,3,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,5,5,3,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,134,5,3,83,5,196,0,0,5,5,2,83,5,196,0,0,5,5,3,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,134,5,3,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,5,5,3,83,5,190,0,0,5,196,0,0,134,5,2,91,5,196,0,0,5,5,2,91,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,13,0,5,5,10,121,5,5,12,121,197,98,13,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,13,0,5,5,24,121,197,226,13,0,5,5,28,121,5,5,30,121,197,34,14,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,14,0,5,5,107,121,197,162,14,0,5,5,111,121,197,226,14,0,5,5,115,121,197,34,15,0,5,5,119,121,197,98,15,0,197,163,15,0,197,2,16,0,5,5,127,121,5,5,129,121,197,66,16,0,197,131,16,0,197,226,16,0,5,5,137,121,5,5,139,121,197,34,17,0,5,5,143,121,5,5,6,121,197,34,13,0,197,98,17,0,5,5,10,121,197,162,17,0,197,226,17,0,5,5,12,121,5,5,16,121,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,5,5,18,121,5,5,20,121,197,194,13,0,5,5,24,121,197,226,13,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,2,0,1,3,2,235,134,5,8,3,3,235,134,5,65,3,2,235,134,5,0,46,156,5,48,0,12,3,2,239,134,5,0,48,156,5,48,0,12,3,2,241,134,5,0,50,156,5,2,0,1,3,2,243,134,5,12,3,3,243,134,5,65,3,2,243,134,5,0,58,156,5,1,0,1,3,2,251,134,5,65,3,2,251,134,5,0,64,156,5,2,0,1,3,255,255,2,65,134,5,12,3,255,255,3,65,134,5,65,3,255,255,2,65,134,5,0,68,156,5,48,0,12,3,255,255,2,69,134,5,0,70,156,5,2,0,1,3,255,255,2,71,134,5,2,3,255,255,3,71,134,5,65,3,255,255,2,71,134,5,0,76,156,5,2,0,1,3,255,255,2,77,134,5,12,3,255,255,3,77,134,5,65,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,80,156,5,48,0,12,3,255,255,2,81,134,5,0,82,156,5,2,0,1,3,255,255,2,83,134,5,10,3,255,255,3,83,134,5,65,3,255,255,2,83,134,5,0,90,156,5,1,0,1,3,255,255,2,91,134,5,65,3,255,255,2,91,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,2,0,1,3,2,235,5,5,8,3,3,235,5,5,65,3,2,235,5,5,0,46,5,5,48,0,12,3,2,239,5,5,0,48,5,5,48,0,12,3,2,241,5,5,0,50,5,5,2,0,1,3,2,243,5,5,12,3,3,243,5,5,65,3,2,243,5,5,0,58,5,5,1,0,1,3,2,251,5,5,65,3,2,251,5,5,0,64,5,5,2,0,1,3,255,255,2,65,5,5,12,3,255,255,3,65,5,5,65,3,255,255,2,65,5,5,0,68,5,5,48,0,12,3,255,255,2,69,5,5,0,70,5,5,2,0,1,3,255,255,2,71,5,5,2,3,255,255,3,71,5,5,65,3,255,255,2,71,5,5,0,76,5,5,2,0,1,3,255,255,2,77,5,5,12,3,255,255,3,77,5,5,65,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,80,5,5,48,0,12,3,255,255,2,81,5,5,0,82,5,5,2,0,1,3,255,255,2,83,5,5,10,3,255,255,3,83,5,5,65,3,255,255,2,83,5,5,0,90,5,5,1,0,1,3,255,255,2,91,5,5,65,3,255,255,2,91,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,42,196,162,2,0,1,3,0,192,197,162,8,3,0,192,197,226,65,3,0,192,197,162,5,42,196,162,2,0,1,3,1,192,197,34,8,3,1,192,197,98,65,3,1,192,197,34,156,50,196,162,2,0,1,3,1,192,197,162,12,3,1,192,197,226,65,3,1,192,197,162,5,50,196,162,2,0,1,3,2,192,197,34,12,3,2,192,197,98,65,3,2,192,197,34,156,58,196,162,1,0,1,3,2,192,197,162,65,3,2,192,197,162,5,58,196,162,1,0,1,3,2,192,197,226,65,3,2,192,197,226,156,64,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,5,64,196,160,2,0,1,3,3,192,197,162,12,3,3,192,197,226,65,3,3,192,197,162,156,68,196,160,48,0,12,3,4,192,197,34,5,68,196,160,48,0,12,3,4,192,197,98,156,76,196,160,2,0,1,3,4,192,197,162,12,3,4,192,197,226,65,3,4,192,197,162,5,76,196,160,2,0,1,3,5,192,197,34,12,3,5,192,197,98,65,3,5,192,197,34,156,78,196,160,48,0,12,3,5,192,197,162,5,78,196,160,48,0,12,3,5,192,197,226,156,80,196,160,48,0,12,3,6,192,197,34,5,80,196,160,48,0,12,3,6,192,197,98,156,82,196,162,2,0,1,3,6,192,197,162,10,3,6,192,197,226,65,3,6,192,197,162,5,82,196,162,2,0,1,3,7,192,197,34,10,3,7,192,197,98,65,3,7,192,197,34,156,70,196,190,2,0,1,3,7,192,197,162,2,3,7,192,197,226,65,3,7,192,197,162,5,70,196,190,2,0,1,3,8,192,197,34,2,3,8,192,197,98,65,3,8,192,197,34,156,82,196,190,2,0,1,3,8,192,197,162,10,3,8,192,197,226,65,3,8,192,197,162,5,82,196,190,2,0,1,3,9,192,197,34,10,3,9,192,197,98,65,3,9,192,197,34,156,70,196,162,2,0,1,3,10,192,197,34,2,3,10,192,197,98,65,3,10,192,197,34,5,70,196,162,2,0,1,3,10,192,197,162,2,3,10,192,197,226,65,3,10,192,197,162,156,78,196,202,48,0,12,3,11,192,197,34,5,78,196,202,48,0,12,3,11,192,197,98,156,80,196,202,48,0,12,3,11,192,197,162,5,80,196,202,48,0,12,3,11,192,197,226,156,50,196,160,2,0,1,3,12,192,197,34,12,3,12,192,197,98,65,3,12,192,197,34,5,50,196,160,2,0,1,3,12,192,197,162,12,3,12,192,197,226,65,3,12,192,197,162,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,2,0,1,3,19,192,197,226,8,3,20,192,197,34,65,3,19,192,197,226,5,42,196,200,2,0,1,3,20,192,197,98,8,3,20,192,197,162,65,3,20,192,197,98,156,48,196,196,48,0,12,3,20,192,197,226,5,48,196,196,48,0,12,3,21,192,197,34,156,48,196,210,48,0,12,3,21,192,197,98,5,48,196,210,48,0,12,3,21,192,197,162,156,48,196,160,48,0,12,3,21,192,197,226,5,48,196,160,48,0,12,3,22,192,197,34,156,48,196,204,48,0,12,3,22,192,197,98,5,48,196,204,48,0,12,3,22,192,197,162,156,50,196,204,2,0,1,3,22,192,197,226,12,3,23,192,197,34,65,3,22,192,197,226,5,50,196,204,2,0,1,3,23,192,197,98,12,3,23,192,197,162,65,3,23,192,197,98,156,50,196,208,2,0,1,3,23,192,197,226,12,3,24,192,197,34,65,3,23,192,197,226,5,50,196,208,2,0,1,3,24,192,197,98,12,3,24,192,197,162,65,3,24,192,197,98,156,58,196,208,1,0,1,3,24,192,197,226,65,3,24,192,197,226,5,58,196,208,1,0,1,3,25,192,197,34,65,3,25,192,197,34,156,64,196,196,2,0,1,3,25,192,197,98,12,3,25,192,197,162,65,3,25,192,197,98,5,64,196,196,2,0,1,3,25,192,197,226,12,3,26,192,197,34,65,3,25,192,197,226,156,64,196,210,2,0,1,3,26,192,197,98,12,3,26,192,197,162,65,3,26,192,197,98,5,64,196,210,2,0,1,3,26,192,197,226,12,3,27,192,197,34,65,3,26,192,197,226,156,64,196,204,2,0,1,3,27,192,197,98,12,3,27,192,197,162,65,3,27,192,197,98,5,64,196,204,2,0,1,3,27,192,197,226,12,3,28,192,197,34,65,3,27,192,197,226,156,68,196,196,48,0,12,3,28,192,197,98,5,68,196,196,48,0,12,3,28,192,197,162,156,68,196,210,48,0,12,3,28,192,197,226,5,68,196,210,48,0,12,3,29,192,197,34,156,68,196,204,48,0,12,3,29,192,197,98,5,68,196,204,48,0,12,3,29,192,197,162,156,76,196,196,2,0,1,3,29,192,197,226,12,3,30,192,197,34,65,3,29,192,197,226,5,76,196,196,2,0,1,3,30,192,197,98,12,3,30,192,197,162,65,3,30,192,197,98,156,76,196,210,2,0,1,3,30,192,197,226,12,3,31,192,197,34,65,3,30,192,197,226,5,76,196,210,2,0,1,3,31,192,197,98,12,3,31,192,197,162,65,3,31,192,197,98,156,78,196,196,48,0,12,3,31,192,197,226,5,78,196,196,48,0,12,3,32,192,197,34,156,80,196,196,48,0,12,3,32,192,197,226,5,80,196,196,48,0,12,3,33,192,197,34,156,80,196,210,48,0,12,3,33,192,197,98,5,80,196,210,48,0,12,3,33,192,197,162,156,80,196,204,48,0,12,3,33,192,197,226,5,80,196,204,48,0,12,3,34,192,197,34,156,82,196,198,2,0,1,3,34,192,197,98,10,3,34,192,197,162,65,3,34,192,197,98,5,82,196,198,2,0,1,3,34,192,197,226,10,3,35,192,197,34,65,3,34,192,197,226,156,82,196,208,2,0,1,3,35,192,197,98,10,3,35,192,197,162,65,3,35,192,197,98,5,82,196,208,2,0,1,3,35,192,197,226,10,3,36,192,197,34,65,3,35,192,197,226,156,82,196,204,2,0,1,3,36,192,197,98,10,3,36,192,197,162,65,3,36,192,197,98,5,82,196,204,2,0,1,3,36,192,197,226,10,3,37,192,197,34,65,3,36,192,197,226,156,92,196,196,48,0,12,3,37,192,197,98,5,92,196,196,48,0,12,3,37,192,197,162,156,92,196,210,48,0,12,3,37,192,197,226,5,92,196,210,48,0,12,3,38,192,197,34,156,42,196,196,2,0,1,3,38,192,197,98,8,3,38,192,197,162,65,3,38,192,197,98,5,42,196,196,2,0,1,3,38,192,197,226,8,3,39,192,197,34,65,3,38,192,197,226,156,50,196,196,2,0,1,3,39,192,197,98,12,3,39,192,197,162,65,3,39,192,197,98,5,50,196,196,2,0,1,3,39,192,197,226,12,3,40,192,197,34,65,3,39,192,197,226,156,58,196,196,1,0,1,3,40,192,197,98,65,3,40,192,197,98,5,58,196,196,1,0,1,3,40,192,197,162,65,3,40,192,197,162,156,70,196,196,2,0,1,3,40,192,197,226,2,3,41,192,197,34,65,3,40,192,197,226,5,70,196,196,2,0,1,3,41,192,197,98,2,3,41,192,197,162,65,3,41,192,197,98,43,0,197,227,2,0,1,3,44,192,197,67,2,3,44,192,197,163,65,3,44,192,197,67,45,0,197,3,2,0,1,3,45,192,197,99,2,3,45,192,197,195,65,3,45,192,197,99,156,82,196,196,2,0,1,3,46,192,197,34,10,3,46,192,197,98,65,3,46,192,197,34,5,82,196,196,2,0,1,3,46,192,197,162,10,3,46,192,197,226,65,3,46,192,197,162,47,0,197,35,2,0,1,3,47,192,197,131,10,3,47,192,197,227,65,3,47,192,197,131,48,0,197,67,2,0,1,3,48,192,197,163,10,3,49,192,197,3,65,3,48,192,197,163,156,90,196,196,1,0,1,3,49,192,197,98,65,3,49,192,197,98,5,90,196,196,1,0,1,3,49,192,197,162,65,3,49,192,197,162,3,0,67,0,50,0,59,0,155,0,0,16,86,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,28,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,4,30,0,0,4,30,0,0,4,30,0,0,4,30,0,0,184,32,0,0,184,32,0,0,186,35,0,0,212,35,0,0,4,40,0,0,50,105,114,84,1,0,64,8,211,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,91,0,99,0,107,0,115,0,116,0,124,0,127,0,135,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,159,0,48,0,161,0,169,0,173,0,181,0,186,0,194,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,151,0,48,0,48,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,108,1,172,1,208,1,252,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,20,0,202,129,20,0,202,162,20,0,202,195,20,0,202,228,20,0,202,5,21,0,202,38,21,0,202,71,21,0,202,104,21,0,202,137,21,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,196,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,134,8,0,156,5,0,72,160,5,0,74,201,102,9,0,201,70,10,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,38,11,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,12,0,5,5,0,44,201,196,12,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,20,0,5,5,0,72,5,5,0,74,201,134,21,0,201,102,22,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,70,23,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,2,43,196,146,156,42,197,162,19,0,201,38,24,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,134,5,2,71,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,19,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,2,43,196,146,5,42,197,34,20,0,201,230,24,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,5,5,2,71,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,25,0,201,102,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,27,0,201,230,27,0,134,5,2,77,5,5,2,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,28,0,201,102,29,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,30,0,201,230,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,31,0,201,102,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,33,0,201,230,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,34,0,201,102,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,36,0,201,230,36,0,192,0,0,0,192,0,0,0,201,166,37,0,201,102,38,0,192,0,0,0,192,0,0,0,201,38,39,0,201,230,39,0,192,0,0,0,192,0,0,0,197,162,13,0,197,226,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,40,0,201,102,41,0,201,38,42,0,201,230,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,43,0,201,102,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,45,0,201,230,45,0,192,0,0,0,192,0,0,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,162,15,0,197,226,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,46,0,201,102,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,43,5,164,0,0,5,5,2,43,5,164,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,134,5,2,71,5,136,0,0,5,5,2,71,5,136,0,0,134,5,2,71,5,138,0,0,5,5,2,71,5,138,0,0,134,5,2,71,5,182,0,0,5,5,2,71,5,182,0,0,134,5,2,71,5,154,0,0,5,5,2,71,5,154,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,2,235,134,5,0,46,156,5,17,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,15,0,30,2,0,192,197,162,31,2,0,192,197,226,12,3,2,239,134,5,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,0,70,156,5,48,0,2,3,255,255,2,71,134,5,0,76,156,5,48,0,12,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,48,0,8,3,2,235,5,5,0,46,5,5,17,0,36,30,29,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,30,2,15,0,30,2,4,192,197,98,31,2,4,192,197,162,12,3,2,239,5,5,34,30,4,192,197,226,35,30,5,192,197,34,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,0,70,5,5,48,0,2,3,255,255,2,71,5,5,0,76,5,5,48,0,12,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,7,192,197,162,5,46,196,160,48,0,12,3,7,192,197,226,156,42,196,162,48,0,8,3,8,192,197,34,5,42,196,162,48,0,8,3,8,192,197,98,156,76,196,160,48,0,12,3,8,192,197,162,5,76,196,160,48,0,12,3,8,192,197,226,156,78,196,160,48,0,12,3,9,192,197,34,5,78,196,160,48,0,12,3,9,192,197,98,156,70,196,190,48,0,2,3,9,192,197,162,5,70,196,190,48,0,2,3,9,192,197,226,156,70,196,162,48,0,2,3,10,192,197,162,5,70,196,162,48,0,2,3,10,192,197,226,156,78,196,202,48,0,12,3,11,192,197,34,5,78,196,202,48,0,12,3,11,192,197,98,156,42,196,200,48,0,8,3,11,192,197,162,5,42,196,200,48,0,8,3,11,192,197,226,156,76,196,196,48,0,12,3,12,192,197,34,5,76,196,196,48,0,12,3,12,192,197,98,156,76,196,210,48,0,12,3,12,192,197,162,5,76,196,210,48,0,12,3,12,192,197,226,156,78,196,196,48,0,12,3,13,192,197,34,5,78,196,196,48,0,12,3,13,192,197,98,156,92,196,196,48,0,12,3,14,192,197,34,5,92,196,196,48,0,12,3,14,192,197,98,156,92,196,210,48,0,12,3,14,192,197,162,5,92,196,210,48,0,12,3,14,192,197,226,156,42,196,196,48,0,8,3,15,192,197,34,5,42,196,196,48,0,8,3,15,192,197,98,156,70,196,196,48,0,2,3,15,192,197,162,5,70,196,196,48,0,2,3,15,192,197,226,18,0,197,35,48,0,2,3,18,192,197,131,18,0,197,227,48,0,2,3,19,192,197,67,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,28,4,185,76,186,80,185,84,185,88,185,92,186,100,186,108,185,112,185,116,185,120,186,124,38,4,185,140,185,144,40,4,42,4,185,168,185,176,185,180,185,184,185,188,185,192,44,4,88,13,168,13,96,13,56,14,80,12,40,14,46,4,168,64,48,4,168,76,168,80,168,84,168,88,168,92,168,100,168,108,168,112,168,116,168,120,168,124,58,4,168,140,168,144,60,4,62,4,168,168,168,176,168,180,168,184,168,188,168,192,64,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,60,57,58,0,8,66,4,186,81,154,81,250,81,90,82,186,101,154,101,250,101,90,102,217,76,154,126,185,133,153,133,185,136,153,134,89,134,136,14,217,134,185,177,153,177,249,177,89,178,153,193,185,204,2,8,168,57,136,57,232,57,136,58,168,60,40,58,4,8,68,4,168,81,136,81,232,81,72,82,168,101,136,101,232,101,72,102,200,76,136,126,168,133,136,133,168,136,136,134,72,134,128,14,200,134,168,177,136,177,232,177,72,178,136,193,168,204,72,194,57,59,40,59,217,57,200,57,70,4,72,4,153,69,136,69,249,69,232,69,185,70,168,70,185,72,168,72,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,26,83,8,83,26,82,8,82,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,148,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,153,136,153,74,4,76,4,185,156,168,156,154,161,136,161,250,161,232,161,78,4,80,4,185,164,168,164,249,170,232,170,25,170,8,170,185,172,168,172,153,178,136,178,57,179,40,179,217,177,200,177,57,178,40,178,121,178,104,178,25,179,8,179,249,185,232,185,249,193,232,193,89,194,153,197,136,197,185,198,168,198,185,200,168,200,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,160,169,160,200,56,169,80,187,100,187,108,169,100,169,108,169,208,169,124,217,132,187,80,200,132,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,72,4,187,96,104,4,178,96,36,5,251,97,37,5,242,97,255,5,185,132,255,5,185,152,255,5,186,160,255,5,185,196,255,5,168,56,255,5,168,68,72,4,177,96,104,4,168,96,36,5,241,97,37,5,232,97,255,5,168,132,255,5,168,152,255,5,168,160,255,5,168,196,255,5,249,70,255,5,232,70,255,5,25,59,255,5,8,59,255,5,249,154,255,5,232,154,255,5,250,162,255,5,232,162,255,1,3,0,67,0,50,0,59,0,239,14,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,232,14,0,32,247,24,0,32,1,0,32,0,252,24,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,108,8,0,32,7,0,0,0,21,0,0,0,110,8,0,0,110,8,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,68,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,228,32,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,27,0,0,20,27,0,0,20,27,0,0,20,27,0,0,216,27,0,0,216,27,0,0,228,28,0,0,228,28,0,0,204,32,0,0,50,105,114,84,1,0,64,8,164,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,48,0,56,0,105,0,113,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,135,0,48,0,48,0,143,0,147,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,129,0,48,0,48,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,192,0,164,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,4,0,202,1,5,0,202,34,5,0,202,67,5,0,202,100,5,0,202,133,5,0,202,166,5,0,202,199,5,0,202,232,5,0,202,9,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,134,1,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,102,2,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,70,3,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,4,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,5,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,4,0,201,134,6,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,4,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,4,0,201,198,7,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,9,0,201,6,10,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,10,0,201,134,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,197,162,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,12,0,201,6,13,0,192,0,0,0,192,0,0,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,13,0,201,134,14,0,201,70,15,0,201,6,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,197,162,12,3,0,192,197,98,65,3,197,162,5,46,196,160,2,0,1,3,0,192,197,162,12,3,0,192,197,226,65,3,0,192,197,162,156,78,196,160,48,0,12,3,1,192,197,34,5,78,196,160,48,0,12,3,1,192,197,98,156,78,196,202,48,0,12,3,1,192,197,162,5,78,196,202,48,0,12,3,1,192,197,226,156,78,196,196,48,0,12,3,2,192,197,34,5,78,196,196,48,0,12,3,2,192,197,98,156,92,196,196,48,0,12,3,3,192,197,34,5,92,196,196,48,0,12,3,3,192,197,98,156,92,196,210,48,0,12,3,3,192,197,162,5,92,196,210,48,0,12,3,3,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,76,186,84,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,120,186,124,185,132,185,136,185,140,185,148,28,4,185,160,185,168,185,172,185,176,185,180,185,184,30,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,32,4,168,76,168,84,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,120,168,124,168,132,168,136,168,140,168,148,34,4,168,160,168,168,168,172,168,176,168,180,168,184,36,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,38,4,186,85,154,85,250,85,90,86,186,101,154,101,250,101,90,102,217,76,154,126,185,133,153,133,249,133,153,134,89,134,136,14,217,134,185,169,153,169,249,169,89,170,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,40,4,168,85,136,85,232,85,72,86,168,101,136,101,232,101,72,102,200,76,136,126,168,133,136,133,232,133,136,134,72,134,128,14,200,134,168,169,136,169,232,169,72,170,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,80,168,80,58,87,40,87,218,85,200,85,186,86,168,86,26,87,8,87,26,86,8,86,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,144,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,42,4,44,4,185,156,168,156,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,25,171,8,171,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,185,192,168,192,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,84,200,152,169,152,200,56,169,84,187,100,187,108,169,100,169,108,169,200,169,124,217,132,187,84,200,132,169,84,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,186,152,255,5,185,188,255,5,168,64,255,5,168,152,255,5,168,188,255,5,249,66,255,5,232,66,255,5,250,154,255,5,232,154,255,1,3,0,69,0,52,0,61,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,101,8,0,32,1,0,32,0,106,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,231,23,0,32,7,0,0,0,23,0,0,0,233,23,0,0,233,23,0,0,3,0,0,0,0,0,0,0,105,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,50,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,109,0,110,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,105,220,38,0,65,0,60,0,226,0,60,0,60,0,60,0,194,0,60,0,60,0,224,0,60,0,60,0,60,0,192,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,68,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,74,1,60,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,60,0,68,1,60,0,60,0,60,0,67,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,229,0,60,0,60,0,60,0,197,0,60,0,227,0,60,0,60,0,60,0,195,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,246,0,60,0,60,0,60,0,214,0,0,0,170,170,170,170,170,170,170,170,170,170,250,49,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,214,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,132,39,0,0,132,39,0,0,228,40,0,0,228,40,0,0,112,45,0,0,112,45,0,0,222,49,0,0,222,49,0,0,222,49,0,0,50,105,114,84,1,0,64,8,107,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,148,0,156,0,162,0,170,0,178,0,186,0,48,0,56,0,185,0,193,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,218,0,48,0,48,0,48,0,226,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,234,0,48,0,48,0,242,0,48,0,248,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,3,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,11,1,48,0,18,1,26,1,30,1,38,1,43,1,51,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,65,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,68,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,208,0,48,0,48,0,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,76,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,84,1,48,0,48,0,90,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,2,136,2,200,2,192,0,228,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,35,0,202,65,35,0,202,98,35,0,202,131,35,0,202,164,35,0,202,197,35,0,202,230,35,0,202,7,36,0,202,40,36,0,202,73,36,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,201,6,4,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,198,4,0,201,166,6,0,156,5,0,72,160,5,0,74,156,5,0,76,201,102,7,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,8,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,9,0,5,5,0,44,201,102,13,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,38,14,0,201,6,16,0,5,5,0,72,5,5,0,74,5,5,0,76,201,230,16,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,198,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,43,198,1,0,0,134,5,2,43,198,33,0,0,198,65,0,0,198,97,0,0,134,5,3,93,201,166,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,70,30,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,129,0,0,5,5,127,12,134,5,4,93,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,130,26,0,5,70,2,43,193,5,5,93,5,5,2,43,193,3,5,93,193,4,5,93,193,2,5,93,5,5,3,93,201,70,19,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,70,30,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,193,6,5,93,5,5,125,12,5,5,4,93,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,20,0,201,166,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,30,69,5,71,30,69,201,70,27,0,201,198,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,30,0,201,6,31,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,31,0,201,134,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,33,0,201,6,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,2,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,34,0,201,134,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,70,36,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,38,0,5,71,238,102,201,6,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,192,0,0,0,192,0,0,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,197,226,8,0,192,0,0,0,197,34,9,0,192,0,0,0,197,98,9,0,192,0,0,0,197,162,9,0,197,227,9,0,197,66,10,0,192,0,0,0,192,0,0,0,197,130,10,0,197,195,10,0,197,34,11,0,192,0,0,0,192,0,0,0,197,98,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,7,0,197,162,11,0,5,5,10,121,197,226,11,0,197,34,12,0,5,5,12,121,5,5,16,121,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,5,5,18,121,5,5,20,121,197,2,8,0,5,5,24,121,197,34,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,39,0,201,134,43,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,47,0,201,166,48,0,201,38,50,0,201,166,51,0,201,38,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,56,0,201,230,56,0,192,0,0,0,192,0,0,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,57,0,201,102,58,0,201,38,59,0,201,230,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,60,0,201,70,64,0,192,0,0,0,192,0,0,0,197,34,23,0,197,98,23,0,197,162,23,0,197,226,23,0,197,34,24,0,197,98,24,0,197,162,24,0,197,226,24,0,197,98,21,0,197,34,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,67,0,201,166,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,69,0,201,38,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,5,5,93,0,134,0,5,0,3,5,93,0,134,0,5,0,4,5,93,0,134,0,5,0,2,5,93,0,134,0,5,0,6,5,93,0,134,0,5,0,5,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,70,2,43,5,162,0,0,134,5,2,43,5,162,0,0,5,70,2,43,5,162,0,0,193,5,5,93,5,162,0,0,5,5,2,43,5,162,0,0,193,3,5,93,5,162,0,0,193,4,5,93,5,162,0,0,193,2,5,93,5,162,0,0,134,71,30,69,5,160,0,0,134,70,30,69,5,160,0,0,5,71,30,69,5,160,0,0,5,70,30,69,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,193,6,5,93,5,190,0,0,193,4,5,93,5,164,0,0,134,5,3,93,5,164,0,0,5,5,3,93,5,164,0,0,193,6,5,93,5,162,0,0,193,2,5,93,5,136,0,0,134,5,3,93,5,136,0,0,5,5,3,93,5,136,0,0,134,5,4,93,5,136,0,0,5,5,4,93,5,136,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,193,6,5,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,70,2,43,5,200,0,0,134,5,2,43,5,200,0,0,5,70,2,43,5,200,0,0,193,5,5,93,5,200,0,0,5,5,2,43,5,200,0,0,193,3,5,93,5,200,0,0,193,4,5,93,5,200,0,0,193,2,5,93,5,200,0,0,134,71,30,69,5,196,0,0,134,70,30,69,5,196,0,0,5,71,30,69,5,196,0,0,5,70,30,69,5,196,0,0,134,71,30,69,5,210,0,0,134,70,30,69,5,210,0,0,5,71,30,69,5,210,0,0,5,70,30,69,5,210,0,0,134,71,30,69,5,204,0,0,134,70,30,69,5,204,0,0,5,71,30,69,5,204,0,0,5,70,30,69,5,204,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,70,2,43,5,196,0,0,134,5,2,43,5,196,0,0,5,70,2,43,5,196,0,0,193,5,5,93,5,196,0,0,5,5,2,43,5,196,0,0,193,3,5,93,5,196,0,0,193,4,5,93,5,196,0,0,193,2,5,93,5,196,0,0,134,5,2,43,5,136,0,0,5,5,2,43,5,136,0,0,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,193,6,5,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,6,5,93,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,98,7,0,5,5,10,121,5,5,12,121,197,162,7,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,7,0,5,5,24,121,197,34,8,0,5,5,28,121,5,5,30,121,197,98,8,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,8,0,5,5,107,121,197,226,8,0,5,5,111,121,197,34,9,0,5,5,115,121,197,98,9,0,5,5,119,121,197,162,9,0,197,227,9,0,197,66,10,0,5,5,127,121,5,5,129,121,197,130,10,0,197,195,10,0,197,34,11,0,5,5,137,121,5,5,139,121,197,98,11,0,5,5,143,121,5,5,6,121,197,98,7,0,197,162,11,0,5,5,10,121,197,226,11,0,197,34,12,0,5,5,12,121,5,5,16,121,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,5,5,18,121,5,5,20,121,197,2,8,0,5,5,24,121,197,34,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,7,0,8,3,11,0,8,3,0,192,198,65,10,3,0,192,198,97,64,3,2,235,134,70,65,3,198,129,0,3,2,235,134,70,1,3,198,129,2,3,2,235,134,5,3,3,198,161,0,46,156,5,48,0,12,3,2,239,134,5,0,68,156,5,2,0,1,3,255,255,30,69,134,71,3,3,255,255,30,69,134,70,65,3,255,255,30,69,134,71,0,70,156,5,48,0,8,3,0,192,198,129,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,7,0,8,3,15,0,8,3,255,255,5,93,193,4,10,3,255,255,5,93,193,2,64,3,2,235,5,70,65,3,255,255,5,93,193,5,0,3,2,235,5,70,1,3,255,255,5,93,193,5,2,3,2,235,5,5,3,3,255,255,5,93,193,3,0,46,5,5,48,0,12,3,2,239,5,5,0,68,5,5,2,0,1,3,255,255,30,69,5,71,3,3,255,255,30,69,5,70,65,3,255,255,30,69,5,71,0,70,5,5,48,0,8,3,255,255,5,93,193,6,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,42,196,162,7,0,8,3,12,0,8,3,1,192,198,34,10,3,1,192,198,98,64,3,0,192,197,162,65,3,0,192,198,162,0,3,0,192,197,162,1,3,0,192,198,162,2,3,0,192,197,226,3,3,0,192,198,226,5,42,196,162,7,0,8,3,12,0,8,3,2,192,197,34,10,3,2,192,197,98,64,3,1,192,197,34,65,3,1,192,197,98,0,3,1,192,197,34,1,3,1,192,197,98,2,3,1,192,197,162,3,3,1,192,197,226,156,68,196,160,2,0,1,3,2,192,197,162,3,3,2,192,197,226,65,3,2,192,197,162,5,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,70,196,190,48,0,8,3,1,192,198,162,5,70,196,190,48,0,8,3,4,192,197,34,156,70,196,162,48,0,8,3,2,192,198,34,5,70,196,162,48,0,8,3,5,192,197,34,156,78,196,202,48,0,12,3,6,192,197,162,5,78,196,202,48,0,12,3,6,192,197,226,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,7,0,8,3,12,0,8,3,3,192,198,98,10,3,3,192,198,162,64,3,14,192,197,34,65,3,2,192,198,226,0,3,14,192,197,34,1,3,2,192,198,226,2,3,14,192,197,98,3,3,3,192,198,34,5,42,196,200,7,0,8,3,12,0,8,3,15,192,197,162,10,3,15,192,197,226,64,3,14,192,197,162,65,3,14,192,197,226,0,3,14,192,197,162,1,3,14,192,197,226,2,3,15,192,197,34,3,3,15,192,197,98,156,68,196,196,2,0,1,3,16,192,197,34,3,3,16,192,197,98,65,3,16,192,197,34,5,68,196,196,2,0,1,3,16,192,197,162,3,3,16,192,197,226,65,3,16,192,197,162,156,68,196,210,2,0,1,3,17,192,197,34,3,3,17,192,197,98,65,3,17,192,197,34,5,68,196,210,2,0,1,3,17,192,197,162,3,3,17,192,197,226,65,3,17,192,197,162,156,68,196,204,2,0,1,3,18,192,197,34,3,3,18,192,197,98,65,3,18,192,197,34,5,68,196,204,2,0,1,3,18,192,197,162,3,3,18,192,197,226,65,3,18,192,197,162,156,78,196,196,48,0,12,3,19,192,197,34,5,78,196,196,48,0,12,3,19,192,197,98,156,92,196,196,48,0,12,3,20,192,197,34,5,92,196,196,48,0,12,3,20,192,197,98,156,92,196,210,48,0,12,3,20,192,197,162,5,92,196,210,48,0,12,3,20,192,197,226,156,42,196,196,7,0,8,3,12,0,8,3,4,192,198,98,10,3,4,192,198,162,64,3,21,192,197,34,65,3,3,192,198,226,0,3,21,192,197,34,1,3,3,192,198,226,2,3,21,192,197,98,3,3,4,192,198,34,5,42,196,196,7,0,8,3,12,0,8,3,22,192,197,162,10,3,22,192,197,226,64,3,21,192,197,162,65,3,21,192,197,226,0,3,21,192,197,162,1,3,21,192,197,226,2,3,22,192,197,34,3,3,22,192,197,98,156,70,196,196,48,0,8,3,4,192,198,226,5,70,196,196,48,0,8,3,25,192,197,34,25,0,197,99,48,0,8,3,5,192,198,35,25,0,197,195,48,0,8,3,26,192,197,35,170,170,3,0,67,0,50,0,59,0,107,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,168,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,31,0,0,84,31,0,0,180,32,0,0,180,32,0,0,92,35,0,0,92,35,0,0,132,39,0,0,132,39,0,0,140,43,0,0,50,105,114,84,1,0,64,8,232,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,48,0,176,0,184,0,188,0,196,0,201,0,209,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,215,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,20,0,202,33,20,0,202,66,20,0,202,99,20,0,202,132,20,0,202,165,20,0,202,198,20,0,202,231,20,0,202,8,21,0,202,41,21,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,70,3,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,6,4,0,201,230,5,0,156,5,0,72,160,5,0,74,156,5,0,76,201,166,6,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,134,7,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,102,8,0,5,5,0,44,201,166,12,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,102,13,0,201,70,15,0,5,5,0,72,5,5,0,74,5,5,0,76,201,38,16,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,6,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,43,198,1,0,0,134,5,2,43,198,33,0,0,198,65,0,0,198,97,0,0,134,5,3,93,201,230,17,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,70,30,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,129,0,0,5,5,127,12,134,5,4,93,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,19,0,5,70,2,43,193,5,5,93,5,5,2,43,193,3,5,93,193,4,5,93,193,2,5,93,5,5,3,93,201,134,18,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,70,30,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,193,6,5,93,5,5,125,12,5,5,4,93,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,19,0,201,230,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,30,69,5,71,30,69,201,134,26,0,201,6,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,29,0,201,70,30,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,31,0,201,198,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,32,0,201,70,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,2,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,34,0,201,198,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,35,0,201,38,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,42,0,201,70,44,0,201,198,45,0,201,70,47,0,201,198,48,0,201,70,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,51,0,201,134,52,0,192,0,0,0,192,0,0,0,197,226,12,0,197,34,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,53,0,201,6,54,0,201,198,54,0,201,134,55,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,56,0,201,230,59,0,192,0,0,0,192,0,0,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,162,14,0,197,98,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,63,0,201,70,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,65,0,201,198,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,5,5,93,0,134,0,5,0,3,5,93,0,134,0,5,0,4,5,93,0,134,0,5,0,2,5,93,0,134,0,5,0,6,5,93,0,134,0,5,0,5,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,70,2,43,5,162,0,0,134,5,2,43,5,162,0,0,5,70,2,43,5,162,0,0,193,5,5,93,5,162,0,0,5,5,2,43,5,162,0,0,193,3,5,93,5,162,0,0,193,4,5,93,5,162,0,0,193,2,5,93,5,162,0,0,134,71,30,69,5,160,0,0,134,70,30,69,5,160,0,0,5,71,30,69,5,160,0,0,5,70,30,69,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,193,6,5,93,5,190,0,0,193,4,5,93,5,164,0,0,134,5,3,93,5,164,0,0,5,5,3,93,5,164,0,0,193,6,5,93,5,162,0,0,193,2,5,93,5,136,0,0,134,5,3,93,5,136,0,0,5,5,3,93,5,136,0,0,134,5,4,93,5,136,0,0,5,5,4,93,5,136,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,193,6,5,93,5,164,0,0,134,70,2,43,5,200,0,0,134,5,2,43,5,200,0,0,5,70,2,43,5,200,0,0,193,5,5,93,5,200,0,0,5,5,2,43,5,200,0,0,193,3,5,93,5,200,0,0,193,4,5,93,5,200,0,0,193,2,5,93,5,200,0,0,134,71,30,69,5,196,0,0,134,70,30,69,5,196,0,0,5,71,30,69,5,196,0,0,5,70,30,69,5,196,0,0,134,71,30,69,5,210,0,0,134,70,30,69,5,210,0,0,5,71,30,69,5,210,0,0,5,70,30,69,5,210,0,0,134,71,30,69,5,204,0,0,134,70,30,69,5,204,0,0,5,71,30,69,5,204,0,0,5,70,30,69,5,204,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,70,2,43,5,196,0,0,134,5,2,43,5,196,0,0,5,70,2,43,5,196,0,0,193,5,5,93,5,196,0,0,5,5,2,43,5,196,0,0,193,3,5,93,5,196,0,0,193,4,5,93,5,196,0,0,193,2,5,93,5,196,0,0,134,5,2,43,5,136,0,0,5,5,2,43,5,136,0,0,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,193,6,5,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,6,5,93,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,7,0,8,3,11,0,8,3,0,192,198,65,10,3,0,192,198,97,64,3,2,235,134,70,65,3,198,129,0,3,2,235,134,70,1,3,198,129,2,3,2,235,134,5,3,3,198,161,0,46,156,5,48,0,12,3,2,239,134,5,0,68,156,5,2,0,1,3,255,255,30,69,134,71,3,3,255,255,30,69,134,70,65,3,255,255,30,69,134,71,0,70,156,5,48,0,8,3,0,192,198,129,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,7,0,8,3,15,0,8,3,255,255,5,93,193,4,10,3,255,255,5,93,193,2,64,3,2,235,5,70,65,3,255,255,5,93,193,5,0,3,2,235,5,70,1,3,255,255,5,93,193,5,2,3,2,235,5,5,3,3,255,255,5,93,193,3,0,46,5,5,48,0,12,3,2,239,5,5,0,68,5,5,2,0,1,3,255,255,30,69,5,71,3,3,255,255,30,69,5,70,65,3,255,255,30,69,5,71,0,70,5,5,48,0,8,3,255,255,5,93,193,6,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,42,196,162,7,0,8,3,12,0,8,3,1,192,198,34,10,3,1,192,198,98,64,3,0,192,197,162,65,3,0,192,198,162,0,3,0,192,197,162,1,3,0,192,198,162,2,3,0,192,197,226,3,3,0,192,198,226,5,42,196,162,7,0,8,3,12,0,8,3,2,192,197,34,10,3,2,192,197,98,64,3,1,192,197,34,65,3,1,192,197,98,0,3,1,192,197,34,1,3,1,192,197,98,2,3,1,192,197,162,3,3,1,192,197,226,156,68,196,160,2,0,1,3,2,192,197,162,3,3,2,192,197,226,65,3,2,192,197,162,5,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,70,196,190,48,0,8,3,1,192,198,162,5,70,196,190,48,0,8,3,4,192,197,34,156,70,196,162,48,0,8,3,2,192,198,34,5,70,196,162,48,0,8,3,5,192,197,34,156,78,196,202,48,0,12,3,6,192,197,162,5,78,196,202,48,0,12,3,6,192,197,226,156,42,196,200,7,0,8,3,12,0,8,3,3,192,198,98,10,3,3,192,198,162,64,3,7,192,197,98,65,3,2,192,198,226,0,3,7,192,197,98,1,3,2,192,198,226,2,3,7,192,197,162,3,3,3,192,198,34,5,42,196,200,7,0,8,3,12,0,8,3,8,192,197,226,10,3,9,192,197,34,64,3,7,192,197,226,65,3,8,192,197,34,0,3,7,192,197,226,1,3,8,192,197,34,2,3,8,192,197,98,3,3,8,192,197,162,156,68,196,196,2,0,1,3,9,192,197,98,3,3,9,192,197,162,65,3,9,192,197,98,5,68,196,196,2,0,1,3,9,192,197,226,3,3,10,192,197,34,65,3,9,192,197,226,156,68,196,210,2,0,1,3,10,192,197,98,3,3,10,192,197,162,65,3,10,192,197,98,5,68,196,210,2,0,1,3,10,192,197,226,3,3,11,192,197,34,65,3,10,192,197,226,156,68,196,204,2,0,1,3,11,192,197,98,3,3,11,192,197,162,65,3,11,192,197,98,5,68,196,204,2,0,1,3,11,192,197,226,3,3,12,192,197,34,65,3,11,192,197,226,156,78,196,196,48,0,12,3,12,192,197,98,5,78,196,196,48,0,12,3,12,192,197,162,156,92,196,196,48,0,12,3,13,192,197,98,5,92,196,196,48,0,12,3,13,192,197,162,156,92,196,210,48,0,12,3,13,192,197,226,5,92,196,210,48,0,12,3,14,192,197,34,156,42,196,196,7,0,8,3,12,0,8,3,4,192,198,98,10,3,4,192,198,162,64,3,14,192,197,98,65,3,3,192,198,226,0,3,14,192,197,98,1,3,3,192,198,226,2,3,14,192,197,162,3,3,4,192,198,34,5,42,196,196,7,0,8,3,12,0,8,3,15,192,197,226,10,3,16,192,197,34,64,3,14,192,197,226,65,3,15,192,197,34,0,3,14,192,197,226,1,3,15,192,197,34,2,3,15,192,197,98,3,3,15,192,197,162,156,70,196,196,48,0,8,3,4,192,198,226,5,70,196,196,48,0,8,3,18,192,197,98,18,0,197,163,48,0,8,3,5,192,198,35,19,0,197,3,48,0,8,3,19,192,197,99,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,64,24,4,185,76,186,84,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,120,26,4,28,4,185,136,185,140,185,148,30,4,185,160,185,168,185,172,185,176,185,180,185,184,32,4,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,64,36,4,168,76,168,84,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,120,38,4,40,4,168,136,168,140,168,148,42,4,168,160,168,168,168,172,168,176,168,180,168,184,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,217,60,185,216,185,60,185,208,185,212,185,204,185,196,46,4,186,85,154,85,250,85,90,86,186,101,154,101,250,101,90,102,217,76,217,128,185,133,153,133,249,133,153,134,185,220,136,14,185,200,185,169,153,169,249,169,89,170,153,185,185,224,0,8,200,60,168,216,168,60,168,208,168,212,168,204,168,196,48,4,168,85,136,85,232,85,72,86,168,101,136,101,232,101,72,102,200,76,200,128,168,133,136,133,232,133,136,134,168,220,128,14,168,200,168,169,136,169,232,169,72,170,136,185,168,224,72,186,25,59,8,59,217,57,200,57,50,4,52,4,153,69,136,69,249,69,232,69,185,70,168,70,185,72,168,72,25,78,8,78,185,80,168,80,26,87,8,87,218,85,200,85,186,86,168,86,250,86,232,86,26,86,8,86,249,93,232,93,217,93,200,93,185,94,168,94,217,94,200,94,249,97,232,97,57,99,40,99,154,102,136,102,26,103,8,103,218,101,200,101,250,102,232,102,186,102,168,104,2,8,4,8,250,109,232,109,217,114,200,114,168,144,153,117,136,117,217,118,200,118,25,118,8,118,89,119,72,119,57,119,40,119,249,128,232,128,54,4,56,4,26,126,8,126,6,8,185,128,168,128,25,135,8,135,217,133,200,133,121,134,104,134,8,8,10,8,153,149,136,149,217,150,200,150,25,150,8,150,154,153,136,153,250,153,232,153,58,4,60,4,185,156,168,156,217,162,200,162,25,162,8,162,185,164,168,164,153,170,136,170,25,171,8,171,217,169,200,169,57,170,40,170,121,170,104,170,249,170,232,170,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,185,192,168,192,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,200,152,169,152,187,100,187,108,169,100,169,108,169,228,169,124,217,132,187,84,200,132,169,84,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,255,5,186,124,255,5,185,132,255,5,186,152,255,5,185,188,255,5,168,56,255,5,168,68,255,5,168,124,255,5,168,132,255,5,168,152,255,5,168,188,255,5,217,70,255,5,200,70,255,5,249,58,255,5,232,58,255,5,218,126,255,5,200,126,255,5,218,154,255,5,200,154,255,1,3,0,67,0,50,0,59,0,243,12,0,16,56,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,235,12,0,32,222,23,0,32,1,0,32,0,227,23,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,143,11,0,32,7,0,0,0,21,0,0,0,145,11,0,0,145,11,0,0,3,0,0,0,0,0,0,0,155,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,5,221,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,68,0,60,0,231,0,60,0,60,0,60,0,199,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,69,0,60,0,100,0,104,0,60,0,60,0,60,0,68,0,104,0,60,0,60,0,60,0,68,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,70,0,60,0,235,0,60,0,60,0,60,0,203,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,72,0,60,0,103,0,106,0,60,0,60,0,60,0,71,0,106,0,60,0,60,0,60,0,71,0,74,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,77,0,60,0,108,0,108,0,60,0,60,0,60,0,76,0,108,0,60,0,60,0,60,0,76,0,76,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,79,0,60,0,110,0,106,0,60,0,60,0,60,0,78,0,106,0,60,0,60,0,60,0,78,0,74,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,83,0,60,0,114,0,114,0,60,0,60,0,60,0,82,0,114,0,60,0,60,0,60,0,82,0,82,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,84,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,85,0,60,0,116,0,104,0,60,0,60,0,60,0,84,0,104,0,60,0,60,0,60,0,84,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,89,0,60,0,120,0,104,0,60,0,60,0,60,0,88,0,104,0,60,0,60,0,60,0,88,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,183,1,60,0,122,0,104,0,60,0,60,0,60,0,90,0,104,0,60,0,60,0,60,0,90,0,72,0,0,0,170,170,174,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,25,0,0,164,25,0,0,164,25,0,0,164,25,0,0,200,31,0,0,200,31,0,0,36,38,0,0,110,38,0,0,150,43,0,0,50,105,114,84,1,0,64,8,141,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,87,0,95,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,117,0,48,0,48,0,48,0,48,0,124,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,111,0,48,0,48,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,192,0,192,0,192,0,92,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,47,0,202,1,48,0,202,34,48,0,202,67,48,0,202,100,48,0,202,133,48,0,202,166,48,0,202,199,48,0,202,232,48,0,202,9,49,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,192,0,0,201,38,8,0,156,5,0,52,201,224,8,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,11,0,156,5,0,66,201,128,18,0,156,5,0,70,156,5,0,72,160,5,0,74,201,0,21,0,201,224,29,0,201,160,37,0,156,5,0,82,156,5,0,84,160,5,0,86,201,96,45,0,156,5,0,90,201,32,53,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,230,60,0,201,160,61,0,201,166,65,0,5,5,0,52,201,96,66,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,224,67,0,5,5,0,66,201,160,71,0,5,5,0,70,5,5,0,72,5,5,0,74,201,64,73,0,201,192,77,0,201,224,81,0,5,5,0,82,5,5,0,84,5,5,0,86,201,0,86,0,5,5,0,90,201,32,90,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,47,0,134,5,21,47,196,138,156,50,196,136,156,50,196,142,156,50,134,5,49,51,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,47,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,47,0,5,5,21,47,196,138,5,50,196,136,5,50,196,142,5,50,5,5,49,51,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,94,0,201,6,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,95,0,201,134,96,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,45,0,197,98,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,97,0,201,6,98,0,201,198,98,0,201,134,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,100,0,201,6,101,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,29,49,5,142,0,0,70,5,29,49,5,142,0,0,135,5,29,49,5,144,0,0,70,5,29,49,5,144,0,0,135,5,29,49,5,156,0,0,70,5,29,49,5,156,0,0,135,5,29,49,5,196,0,0,70,5,29,49,5,196,0,0,135,5,29,49,5,150,0,0,70,5,29,49,5,150,0,0,135,5,29,49,5,160,0,0,70,5,29,49,5,160,0,0,135,5,29,49,5,206,0,0,70,5,29,49,5,206,0,0,70,5,29,49,5,210,0,0,135,5,27,55,5,142,0,0,70,5,27,55,5,142,0,0,70,5,27,55,5,144,0,0,135,5,45,65,5,136,0,0,70,5,45,65,5,136,0,0,135,5,45,65,5,160,0,0,70,5,45,65,5,160,0,0,135,5,45,65,5,144,0,0,70,5,45,65,5,144,0,0,135,5,45,65,5,196,0,0,70,5,45,65,5,196,0,0,135,5,45,65,5,196,0,0,5,164,0,0,70,5,45,65,5,196,0,0,5,164,0,0,135,5,45,65,5,210,0,0,70,5,45,65,5,210,0,0,135,5,45,65,5,204,0,0,70,5,45,65,5,204,0,0,135,5,33,69,5,142,0,0,70,5,33,69,5,142,0,0,70,5,33,69,5,144,0,0,135,5,63,77,5,136,0,0,70,5,63,77,5,136,0,0,135,5,63,77,5,160,0,0,70,5,63,77,5,160,0,0,135,5,63,77,5,144,0,0,70,5,63,77,5,144,0,0,135,5,63,77,5,184,0,0,70,5,63,77,5,184,0,0,135,5,63,77,5,188,0,0,70,5,63,77,5,188,0,0,135,5,63,77,5,156,0,0,70,5,63,77,5,156,0,0,135,5,63,77,5,196,0,0,70,5,63,77,5,196,0,0,135,5,63,77,5,196,0,0,5,164,0,0,70,5,63,77,5,196,0,0,5,164,0,0,135,5,63,77,5,210,0,0,70,5,63,77,5,210,0,0,135,5,35,79,5,142,0,0,70,5,35,79,5,142,0,0,135,5,35,79,5,144,0,0,70,5,35,79,5,144,0,0,135,5,35,79,5,156,0,0,70,5,35,79,5,156,0,0,135,5,35,79,5,196,0,0,70,5,35,79,5,196,0,0,135,5,35,79,5,150,0,0,70,5,35,79,5,150,0,0,135,5,35,79,5,160,0,0,70,5,35,79,5,160,0,0,135,5,35,79,5,206,0,0,70,5,35,79,5,206,0,0,70,5,35,79,5,210,0,0,135,5,25,81,5,142,0,0,70,5,25,81,5,142,0,0,135,5,25,81,5,144,0,0,70,5,25,81,5,144,0,0,135,5,25,81,5,156,0,0,70,5,25,81,5,156,0,0,135,5,25,81,5,196,0,0,70,5,25,81,5,196,0,0,135,5,25,81,5,150,0,0,70,5,25,81,5,150,0,0,135,5,25,81,5,160,0,0,70,5,25,81,5,160,0,0,135,5,25,81,5,206,0,0,70,5,25,81,5,206,0,0,70,5,25,81,5,210,0,0,135,5,21,89,5,142,0,0,70,5,21,89,5,142,0,0,135,5,21,89,5,144,0,0,70,5,21,89,5,144,0,0,135,5,21,89,5,156,0,0,70,5,21,89,5,156,0,0,135,5,21,89,5,196,0,0,70,5,21,89,5,196,0,0,135,5,21,89,5,150,0,0,70,5,21,89,5,150,0,0,135,5,21,89,5,160,0,0,70,5,21,89,5,160,0,0,135,5,21,89,5,206,0,0,70,5,21,89,5,206,0,0,70,5,21,89,5,210,0,0,135,5,25,93,5,142,0,0,70,5,25,93,5,142,0,0,135,5,25,93,5,144,0,0,70,5,25,93,5,144,0,0,135,5,25,93,5,156,0,0,70,5,25,93,5,156,0,0,135,5,25,93,5,196,0,0,70,5,25,93,5,196,0,0,135,5,25,93,5,150,0,0,70,5,25,93,5,150,0,0,135,5,25,93,5,160,0,0,70,5,25,93,5,160,0,0,135,5,25,93,5,206,0,0,70,5,25,93,5,206,0,0,70,5,25,93,5,210,0,0,5,5,29,49,5,142,0,0,5,5,29,49,5,144,0,0,5,5,29,49,5,156,0,0,5,5,29,49,5,196,0,0,5,5,29,49,5,150,0,0,5,5,29,49,5,160,0,0,5,5,29,49,5,206,0,0,5,5,29,49,5,210,0,0,5,5,27,55,5,142,0,0,5,5,27,55,5,144,0,0,5,5,45,65,5,136,0,0,5,5,45,65,5,160,0,0,5,5,45,65,5,144,0,0,5,5,45,65,5,196,0,0,5,5,45,65,5,196,0,0,5,164,0,0,5,5,45,65,5,210,0,0,5,5,45,65,5,204,0,0,5,5,33,69,5,142,0,0,5,5,33,69,5,144,0,0,5,5,63,77,5,136,0,0,5,5,63,77,5,160,0,0,5,5,63,77,5,144,0,0,5,5,63,77,5,184,0,0,5,5,63,77,5,188,0,0,5,5,63,77,5,156,0,0,5,5,63,77,5,196,0,0,5,5,63,77,5,196,0,0,5,164,0,0,5,5,63,77,5,210,0,0,5,5,35,79,5,142,0,0,5,5,35,79,5,144,0,0,5,5,35,79,5,156,0,0,5,5,35,79,5,196,0,0,5,5,35,79,5,150,0,0,5,5,35,79,5,160,0,0,5,5,35,79,5,206,0,0,5,5,35,79,5,210,0,0,5,5,25,81,5,142,0,0,5,5,25,81,5,144,0,0,5,5,25,81,5,156,0,0,5,5,25,81,5,196,0,0,5,5,25,81,5,150,0,0,5,5,25,81,5,160,0,0,5,5,25,81,5,206,0,0,5,5,25,81,5,210,0,0,5,5,21,89,5,142,0,0,5,5,21,89,5,144,0,0,5,5,21,89,5,156,0,0,5,5,21,89,5,196,0,0,5,5,21,89,5,150,0,0,5,5,21,89,5,160,0,0,5,5,21,89,5,206,0,0,5,5,21,89,5,210,0,0,5,5,25,93,5,142,0,0,5,5,25,93,5,144,0,0,5,5,25,93,5,156,0,0,5,5,25,93,5,196,0,0,5,5,25,93,5,150,0,0,5,5,25,93,5,160,0,0,5,5,25,93,5,206,0,0,5,5,25,93,5,210,0,0,134,5,49,51,5,162,0,0,5,5,49,51,5,162,0,0,134,5,49,51,5,160,0,0,5,5,49,51,5,160,0,0,134,5,21,47,5,136,0,0,5,5,21,47,5,136,0,0,134,5,49,51,5,204,0,0,5,5,49,51,5,204,0,0,134,5,49,51,5,208,0,0,5,5,49,51,5,208,0,0,134,5,49,51,5,196,0,0,5,5,49,51,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,21,239,134,5,0,48,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,29,241,135,5,104,0,29,241,70,5,36,1,197,162,37,1,0,192,197,98,0,50,156,5,48,0,8,3,49,243,134,5,0,54,156,5,4,0,74,0,27,247,135,5,106,0,27,247,70,5,52,1,3,192,197,226,53,1,4,192,197,34,240,1,4,192,197,98,0,64,156,5,15,0,54,30,26,0,58,30,12,0,58,30,7,192,197,98,59,30,7,192,197,162,60,30,7,192,197,226,61,30,8,192,197,34,54,30,6,192,197,34,55,30,6,192,197,98,56,30,6,192,197,163,57,30,7,192,197,3,59,1,12,0,59,1,5,192,197,34,60,1,5,192,197,98,61,1,5,192,197,162,62,1,5,192,197,226,76,0,255,255,45,65,135,5,108,0,255,255,45,65,70,5,57,1,4,192,197,162,58,1,4,192,197,226,0,68,156,5,4,0,74,0,255,255,33,69,135,5,106,0,255,255,33,69,70,5,52,1,8,192,197,98,53,1,8,192,197,162,240,1,8,192,197,226,0,76,156,5,19,0,18,2,32,0,91,30,15,0,91,30,12,192,197,98,92,30,12,192,197,163,93,30,13,192,197,3,94,30,13,192,197,98,95,30,13,192,197,162,18,2,11,192,197,34,19,2,11,192,197,98,88,30,11,192,197,162,89,30,11,192,197,226,90,30,12,192,197,34,87,1,15,0,87,1,9,192,197,226,88,1,10,192,197,34,89,1,10,192,197,98,16,2,10,192,197,162,17,2,10,192,197,226,82,0,255,255,63,77,135,5,114,0,255,255,63,77,70,5,84,1,9,192,197,34,85,1,9,192,197,98,86,1,9,192,197,162,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,16,192,197,98,41,30,16,192,197,162,42,30,16,192,197,226,43,30,17,192,197,34,150,30,17,192,197,98,36,30,15,192,197,98,37,30,15,192,197,162,38,30,15,192,197,226,39,30,16,192,197,34,30,2,12,0,30,2,14,192,197,98,31,2,14,192,197,162,34,30,14,192,197,226,35,30,15,192,197,34,72,0,255,255,35,79,135,5,104,0,255,255,35,79,70,5,36,1,13,192,197,226,37,1,14,192,197,34,0,80,156,5,16,0,36,30,29,0,40,30,15,0,40,30,20,192,197,34,41,30,20,192,197,98,42,30,20,192,197,162,43,30,20,192,197,226,150,30,21,192,197,34,36,30,19,192,197,34,37,30,19,192,197,98,38,30,19,192,197,162,39,30,19,192,197,226,30,2,12,0,30,2,18,192,197,34,31,2,18,192,197,98,34,30,18,192,197,162,35,30,18,192,197,226,72,0,255,255,25,81,135,5,104,0,255,255,25,81,70,5,36,1,17,192,197,162,37,1,17,192,197,226,0,88,156,5,16,0,36,30,29,0,40,30,15,0,40,30,23,192,197,226,41,30,24,192,197,34,42,30,24,192,197,98,43,30,24,192,197,162,150,30,24,192,197,226,36,30,22,192,197,226,37,30,23,192,197,34,38,30,23,192,197,98,39,30,23,192,197,162,30,2,12,0,30,2,21,192,197,226,31,2,22,192,197,34,34,30,22,192,197,98,35,30,22,192,197,162,72,0,255,255,21,89,135,5,104,0,255,255,21,89,70,5,36,1,21,192,197,98,37,1,21,192,197,162,0,92,156,5,16,0,36,30,29,0,40,30,15,0,40,30,27,192,197,162,41,30,27,192,197,226,42,30,28,192,197,34,43,30,28,192,197,98,150,30,28,192,197,162,36,30,26,192,197,162,37,30,26,192,197,226,38,30,27,192,197,34,39,30,27,192,197,98,30,2,12,0,30,2,25,192,197,162,31,2,25,192,197,226,34,30,26,192,197,34,35,30,26,192,197,98,72,0,255,255,25,93,135,5,104,0,255,255,25,93,70,5,36,1,25,192,197,34,37,1,25,192,197,98,0,46,5,5,48,0,39,3,21,239,5,5,0,48,5,5,8,0,37,30,15,0,37,30,29,192,197,162,39,30,29,192,197,226,41,30,30,192,197,34,43,30,30,192,197,98,150,30,30,192,197,162,104,0,29,241,5,5,37,1,28,192,197,226,31,2,29,192,197,34,35,30,29,192,197,98,0,50,5,5,48,0,8,3,49,243,5,5,0,54,5,5,2,0,106,0,27,247,5,5,53,1,30,192,197,226,240,1,31,192,197,34,0,64,5,5,7,0,55,30,12,0,55,30,32,192,197,34,57,30,32,192,197,99,59,30,32,192,197,194,61,30,33,192,197,2,108,0,255,255,45,65,5,5,58,1,31,192,197,98,60,1,31,192,197,162,62,1,31,192,197,226,0,68,5,5,2,0,106,0,255,255,33,69,5,5,53,1,33,192,197,66,240,1,33,192,197,130,0,76,5,5,9,0,19,2,15,0,19,2,34,192,197,194,89,30,35,192,197,2,91,30,35,192,197,66,93,30,35,192,197,131,95,30,35,192,197,226,114,0,255,255,63,77,5,5,85,1,33,192,197,194,87,1,34,192,197,2,89,1,34,192,197,66,17,2,34,192,197,130,0,78,5,5,8,0,37,30,15,0,37,30,36,192,197,226,39,30,37,192,197,34,41,30,37,192,197,98,43,30,37,192,197,162,150,30,37,192,197,226,104,0,255,255,35,79,5,5,37,1,36,192,197,34,31,2,36,192,197,98,35,30,36,192,197,162,0,80,5,5,8,0,37,30,15,0,37,30,38,192,197,226,39,30,39,192,197,34,41,30,39,192,197,98,43,30,39,192,197,162,150,30,39,192,197,226,104,0,255,255,25,81,5,5,37,1,38,192,197,34,31,2,38,192,197,98,35,30,38,192,197,162,0,88,5,5,8,0,37,30,15,0,37,30,40,192,197,226,39,30,41,192,197,34,41,30,41,192,197,98,43,30,41,192,197,162,150,30,41,192,197,226,104,0,255,255,21,89,5,5,37,1,40,192,197,34,31,2,40,192,197,98,35,30,40,192,197,162,0,92,5,5,8,0,37,30,15,0,37,30,42,192,197,226,39,30,43,192,197,34,41,30,43,192,197,98,43,30,43,192,197,162,150,30,43,192,197,226,104,0,255,255,25,93,5,5,37,1,42,192,197,34,31,2,42,192,197,98,35,30,42,192,197,162,156,50,196,162,48,0,8,3,44,192,197,34,5,50,196,162,48,0,8,3,44,192,197,98,156,50,196,160,48,0,8,3,44,192,197,162,5,50,196,160,48,0,8,3,44,192,197,226,156,50,196,204,48,0,8,3,45,192,197,162,5,50,196,204,48,0,8,3,45,192,197,226,156,50,196,208,48,0,8,3,46,192,197,34,5,50,196,208,48,0,8,3,46,192,197,98,156,50,196,196,48,0,8,3,46,192,197,162,5,50,196,196,48,0,8,3,46,192,197,226,36,0,72,0,73,0,74,0,75,0,82,0,83,0,104,0,105,0,106,0,107,0,108,0,109,0,114,0,115,0,36,1,38,1,52,1,54,1,57,1,63,1,84,1,90,1,240,1,241,1,16,2,20,2,30,2,32,2,34,30,44,30,54,30,62,30,88,30,96,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,38,4,185,88,40,4,185,100,186,104,186,112,185,116,50,4,185,128,68,4,185,144,185,148,185,152,78,4,96,4,106,4,185,188,185,192,185,196,116,4,185,208,126,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,136,4,138,4,144,4,168,88,146,4,168,100,168,104,168,112,168,116,152,4,168,128,162,4,168,144,168,148,168,152,168,4,178,4,184,4,168,188,168,192,168,196,190,4,168,208,196,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,81,154,81,250,81,185,84,186,105,154,105,250,105,90,106,217,72,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,189,153,189,249,189,89,190,153,209,185,220,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,81,136,81,232,81,168,84,168,105,136,105,232,105,72,106,200,72,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,189,136,189,232,189,72,190,136,209,168,220,72,210,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,83,40,83,218,81,200,81,186,82,168,82,202,4,204,4,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,136,168,136,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,169,136,169,250,169,232,169,250,170,232,170,26,170,8,170,249,178,232,178,25,178,8,178,185,180,168,180,153,190,136,190,57,191,40,191,217,189,200,189,57,190,40,190,121,190,104,190,25,191,8,191,249,197,232,197,249,209,232,209,89,210,153,213,136,213,185,214,168,214,25,214,8,214,232,168,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,168,169,168,200,56,169,80,187,104,187,112,169,104,169,112,169,224,169,132,217,144,187,80,200,144,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,72,72,4,186,76,104,4,177,76,36,5,250,77,37,5,241,77,255,5,186,80,255,5,185,92,74,4,186,96,106,4,177,96,52,5,250,97,53,5,241,97,255,5,185,120,76,4,186,124,108,4,177,124,57,5,154,125,58,5,145,125,59,5,250,126,60,5,241,126,61,5,26,126,62,5,17,126,255,5,186,132,74,4,186,140,106,4,177,140,52,5,250,141,53,5,241,141,255,5,185,160,82,4,186,164,114,4,177,164,84,5,154,165,85,5,145,165,86,5,250,166,87,5,241,166,88,5,26,166,89,5,17,166,255,5,186,168,72,4,186,172,104,4,177,172,36,5,250,173,37,5,241,173,255,5,185,176,72,4,186,184,104,4,177,184,36,5,250,185,37,5,241,185,255,5,185,200,72,4,186,204,104,4,177,204,36,5,250,205,37,5,241,205,255,5,185,212,72,4,186,216,104,4,177,216,36,5,250,217,37,5,241,217,255,5,168,64,255,5,168,72,104,4,168,76,37,5,232,77,255,5,168,80,255,5,168,92,106,4,168,96,53,5,232,97,255,5,168,120,108,4,168,124,58,5,136,125,60,5,232,126,62,5,8,126,255,5,168,132,106,4,168,140,53,5,232,141,255,5,168,160,114,4,168,164,85,5,136,165,87,5,232,166,89,5,8,166,255,5,168,168,104,4,168,172,37,5,232,173,255,5,168,176,104,4,168,184,37,5,232,185,255,5,168,200,104,4,168,204,37,5,232,205,255,5,168,212,104,4,168,216,37,5,232,217,255,5,26,83,255,5,8,83,255,1,170,170,3,0,69,0,52,0,61,0,155,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,136,11,0,32,1,0,32,0,141,11,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,168,6,0,32,7,0,0,0,21,0,0,0,170,6,0,0,170,6,0,0,3,0,0,0,0,0,0,0,45,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,41,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,24,4,56,4,93,0,93,0,0,0,170,170,170,170,170,170,170,170,170,170,196,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,88,25,0,0,88,25,0,0,88,25,0,0,88,25,0,0,172,25,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,174,5,70,97,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,97,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,174,5,70,97,5,140,0,0,5,5,70,97,5,140,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,161,6,0,32,1,0,32,0,166,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,65,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,132,19,0,32,7,0,0,0,23,0,0,0,134,19,0,0,134,19,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,93,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,0,0,252,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,113,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,180,35,0,0,180,35,0,0,180,35,0,0,180,35,0,0,172,38,0,0,172,38,0,0,198,40,0,0,228,40,0,0,228,40,0,0,50,105,114,84,1,0,64,8,46,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,152,0,160,0,48,0,56,0,159,0,167,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,192,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,48,0,48,0,216,0,48,0,222,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,240,0,48,0,48,0,248,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,182,0,48,0,48,0,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,23,1,48,0,48,0,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,232,1,32,2,96,2,192,0,124,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,22,0,202,161,22,0,202,194,22,0,202,227,22,0,202,4,23,0,202,37,23,0,202,70,23,0,202,103,23,0,202,136,23,0,202,169,23,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,201,68,2,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,224,4,0,156,5,0,66,201,64,7,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,166,10,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,11,0,201,4,13,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,128,14,0,5,5,0,66,201,32,16,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,18,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,13,0,201,134,19,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,13,0,201,6,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,22,0,201,70,23,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,198,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,25,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,5,71,238,102,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,197,98,5,0,192,0,0,0,192,0,0,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,197,34,6,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,197,226,6,0,197,35,7,0,197,130,7,0,192,0,0,0,192,0,0,0,197,194,7,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,29,0,201,230,29,0,192,0,0,0,192,0,0,0,197,226,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,4,0,5,5,10,121,5,5,12,121,197,226,4,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,197,162,5,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,5,0,5,5,107,121,197,34,6,0,5,5,111,121,197,98,6,0,5,5,115,121,197,162,6,0,5,5,119,121,197,226,6,0,197,35,7,0,197,130,7,0,5,5,127,121,5,5,129,121,197,194,7,0,197,3,8,0,197,98,8,0,5,5,137,121,5,5,139,121,197,162,8,0,5,5,143,121,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,78,196,196,48,0,12,3,11,192,197,98,5,78,196,196,48,0,12,3,11,192,197,162,156,92,196,196,48,0,12,3,12,192,197,98,5,92,196,196,48,0,12,3,12,192,197,162,156,92,196,210,48,0,12,3,12,192,197,226,5,92,196,210,48,0,12,3,13,192,197,34,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,3,0,67,0,50,0,59,0,43,0,0,16,16,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,28,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,188,28,0,0,188,28,0,0,188,28,0,0,188,28,0,0,208,29,0,0,208,29,0,0,164,31,0,0,194,31,0,0,4,36,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,153,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,7,0,202,129,7,0,202,162,7,0,202,195,7,0,202,228,7,0,202,5,8,0,202,38,8,0,202,71,8,0,202,104,8,0,202,137,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,132,1,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,4,0,156,5,0,66,201,128,6,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,10,0,201,68,12,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,13,0,5,5,0,66,201,96,15,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,6,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,230,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,6,0,201,198,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,7,0,201,70,20,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,21,0,201,134,22,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,23,0,201,6,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,24,0,201,134,25,0,192,0,0,0,192,0,0,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,26,0,201,6,27,0,201,198,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,156,78,196,196,48,0,12,3,4,192,197,162,5,78,196,196,48,0,12,3,4,192,197,226,156,92,196,196,48,0,12,3,5,192,197,162,5,92,196,196,48,0,12,3,5,192,197,226,156,92,196,210,48,0,12,3,6,192,197,34,5,92,196,210,48,0,12,3,6,192,197,98,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,186,88,185,92,185,96,185,100,186,104,186,112,185,116,36,4,185,128,46,4,185,144,185,148,185,152,185,160,56,4,185,172,185,180,185,184,185,188,185,192,185,196,58,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,60,4,62,4,168,88,168,92,168,96,168,100,168,104,168,112,168,116,67,4,168,128,73,4,168,144,168,148,168,152,168,160,79,4,168,172,168,180,168,184,168,188,168,192,168,196,81,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,83,4,186,89,154,89,250,89,90,90,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,181,153,181,249,181,89,182,153,197,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,85,4,168,89,136,89,232,89,72,90,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,181,136,181,232,181,72,182,136,197,168,208,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,84,168,84,58,91,40,91,218,89,200,89,186,90,168,90,26,91,8,91,26,90,8,90,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,165,136,165,250,165,232,165,87,4,89,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,153,201,136,201,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,164,169,164,200,56,169,88,187,104,187,112,169,104,169,112,169,212,169,132,217,144,187,88,200,144,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,76,90,2,122,2,125,5,186,80,126,5,177,80,255,5,185,120,74,4,186,124,106,4,177,124,52,5,250,125,53,5,241,125,255,5,186,132,74,4,186,136,106,4,177,136,52,5,250,137,53,5,241,137,255,5,186,164,255,5,185,200,255,5,168,64,255,5,168,76,122,2,126,5,168,80,255,5,168,120,106,4,168,124,53,5,232,125,255,5,168,132,106,4,168,136,53,5,232,137,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,3,0,67,0,50,0,59,0,115,10,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,107,10,0,32,123,19,0,32,1,0,32,0,128,19,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,69,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,83,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,133,34,0,32,7,0,0,0,28,0,0,0,135,34,0,0,135,34,0,0,4,0,0,0,0,0,0,0,195,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,116,114,97,100,105,116,105,111,110,97,108,0,170,0,0,52,0,50,0,0,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,118,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,126,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,60,0,244,0,60,0,60,0,60,0,212,0,0,0,139,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,118,0,60,0,60,0,60,0,86,0,60,0,60,0,119,0,60,0,60,0,60,0,87,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,60,0,244,0,60,0,60,0,60,0,212,0,0,0,170,170,214,48,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,176,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,180,41,0,0,180,41,0,0,168,45,0,0,168,45,0,0,186,48,0,0,186,48,0,0,186,48,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,30,0,202,129,30,0,202,162,30,0,202,195,30,0,202,228,30,0,202,5,31,0,202,38,31,0,202,71,31,0,202,104,31,0,202,137,31,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,2,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,230,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,5,0,5,5,0,44,5,5,0,46,5,5,0,48,201,230,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,7,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,70,9,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,198,97,0,0,196,154,156,70,198,129,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,194,21,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,97,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,198,225,0,0,196,154,5,70,193,4,111,93,5,5,125,12,198,129,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,11,0,201,38,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,70,13,0,201,102,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,15,0,201,6,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,162,3,0,197,98,5,0,192,0,0,0,192,0,0,0,198,226,3,0,198,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,70,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,197,226,5,0,198,226,5,0,198,34,6,0,198,98,6,0,198,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,23,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,25,0,5,71,238,102,201,134,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,197,227,8,0,197,66,9,0,192,0,0,0,192,0,0,0,197,130,9,0,197,195,9,0,197,34,10,0,192,0,0,0,192,0,0,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,29,0,201,198,30,0,201,230,31,0,201,6,33,0,201,38,34,0,201,70,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,36,0,201,134,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,38,0,201,38,40,0,192,0,0,0,192,0,0,0,198,98,9,0,198,162,9,0,198,226,9,0,198,34,10,0,198,98,10,0,198,162,10,0,198,226,10,0,198,34,11,0,198,34,8,0,198,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,41,0,201,38,43,0,201,166,44,0,201,198,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,46,0,201,6,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,71,0,3,111,93,0,134,0,73,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,71,0,3,111,93,0,5,0,73,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,72,0,4,111,93,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,98,6,0,5,5,10,121,5,5,12,121,197,162,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,6,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,197,98,7,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,7,0,5,5,107,121,197,226,7,0,5,5,111,121,197,34,8,0,5,5,115,121,197,98,8,0,5,5,119,121,197,162,8,0,197,227,8,0,197,66,9,0,5,5,127,121,5,5,129,121,197,130,9,0,197,195,9,0,197,34,10,0,5,5,137,121,5,5,139,121,197,98,10,0,5,5,143,121,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,70,156,5,2,0,2,3,0,192,198,97,8,3,0,192,198,129,11,3,0,192,198,161,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,2,0,2,3,0,192,198,225,8,3,255,255,111,93,193,4,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,162,10,3,1,192,198,226,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,2,3,2,192,198,98,8,3,2,192,198,162,11,3,2,192,198,226,5,70,196,190,2,0,2,3,3,192,198,34,8,3,2,192,197,162,11,3,3,192,198,98,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,2,0,2,3,4,192,198,98,8,3,4,192,198,162,11,3,4,192,198,226,5,70,196,162,2,0,2,3,5,192,198,34,8,3,5,192,197,162,11,3,5,192,198,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,200,1,0,8,3,13,192,197,34,10,3,13,192,197,98,156,82,196,198,1,0,8,3,13,192,197,162,11,3,13,192,197,226,5,82,196,198,1,0,8,3,14,192,197,34,11,3,14,192,197,98,156,82,196,208,1,0,8,3,14,192,197,162,11,3,14,192,197,226,5,82,196,208,1,0,8,3,15,192,197,34,11,3,15,192,197,98,156,82,196,204,1,0,8,3,15,192,197,162,11,3,15,192,197,226,5,82,196,204,1,0,8,3,16,192,197,34,11,3,16,192,197,98,156,42,196,196,1,0,8,3,7,192,198,162,10,3,7,192,198,226,5,42,196,196,1,0,8,3,16,192,197,162,10,3,16,192,197,226,156,70,196,196,2,0,2,3,8,192,198,34,8,3,8,192,198,98,11,3,8,192,198,162,5,70,196,196,2,0,2,3,8,192,198,226,8,3,17,192,197,34,11,3,9,192,198,34,17,0,197,99,2,0,2,3,11,192,198,99,8,3,11,192,198,195,11,3,12,192,198,35,17,0,197,195,2,0,2,3,12,192,198,131,8,3,18,192,197,35,11,3,12,192,198,227,156,82,196,196,1,0,8,3,18,192,197,130,11,3,18,192,197,194,5,82,196,196,1,0,8,3,19,192,197,2,11,3,19,192,197,66,19,0,197,131,1,0,8,3,19,192,197,227,11,3,20,192,197,67,20,0,197,163,1,0,8,3,21,192,197,3,11,3,21,192,197,99,170,170,3,0,75,0,58,0,67,0,195,0,0,16,13,0,0,96,1,0,0,96,100,42,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,132,33,0,0,132,33,0,0,148,35,0,0,148,35,0,0,96,38,0,0,96,38,0,0,72,42,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,15,0,202,97,15,0,202,130,15,0,202,163,15,0,202,196,15,0,202,229,15,0,202,6,16,0,202,39,16,0,202,72,16,0,202,105,16,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,230,0,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,230,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,198,97,0,0,196,154,156,70,198,129,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,2,15,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,97,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,198,225,0,0,196,154,5,70,193,4,111,93,5,5,125,12,198,129,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,10,0,201,102,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,12,0,201,166,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,14,0,201,70,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,17,0,201,230,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,162,3,0,197,98,5,0,192,0,0,0,192,0,0,0,198,226,3,0,198,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,20,0,201,134,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,197,226,5,0,198,226,5,0,198,34,6,0,198,98,6,0,198,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,38,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,102,26,0,201,134,27,0,201,166,28,0,201,198,29,0,201,230,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,32,0,201,38,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,34,0,201,198,35,0,192,0,0,0,192,0,0,0,198,98,9,0,198,162,9,0,198,226,9,0,198,34,10,0,198,98,10,0,198,162,10,0,198,226,10,0,198,34,11,0,198,34,8,0,198,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,37,0,201,198,38,0,201,70,40,0,201,102,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,42,0,201,166,43,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,71,0,3,111,93,0,134,0,73,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,71,0,3,111,93,0,5,0,73,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,72,0,4,111,93,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,70,156,5,2,0,2,3,0,192,198,97,8,3,0,192,198,129,11,3,0,192,198,161,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,2,0,2,3,0,192,198,225,8,3,255,255,111,93,193,4,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,162,10,3,1,192,198,226,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,2,3,2,192,198,98,8,3,2,192,198,162,11,3,2,192,198,226,5,70,196,190,2,0,2,3,3,192,198,34,8,3,2,192,197,162,11,3,3,192,198,98,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,2,0,2,3,4,192,198,98,8,3,4,192,198,162,11,3,4,192,198,226,5,70,196,162,2,0,2,3,5,192,198,34,8,3,5,192,197,162,11,3,5,192,198,98,156,42,196,200,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,200,1,0,8,3,6,192,197,98,10,3,6,192,197,162,156,82,196,198,1,0,8,3,6,192,197,226,11,3,7,192,197,34,5,82,196,198,1,0,8,3,7,192,197,98,11,3,7,192,197,162,156,82,196,208,1,0,8,3,7,192,197,226,11,3,8,192,197,34,5,82,196,208,1,0,8,3,8,192,197,98,11,3,8,192,197,162,156,82,196,204,1,0,8,3,8,192,197,226,11,3,9,192,197,34,5,82,196,204,1,0,8,3,9,192,197,98,11,3,9,192,197,162,156,42,196,196,1,0,8,3,7,192,198,162,10,3,7,192,198,226,5,42,196,196,1,0,8,3,9,192,197,226,10,3,10,192,197,34,156,70,196,196,2,0,2,3,8,192,198,34,8,3,8,192,198,98,11,3,8,192,198,162,5,70,196,196,2,0,2,3,8,192,198,226,8,3,10,192,197,98,11,3,9,192,198,34,10,0,197,163,2,0,2,3,11,192,198,99,8,3,11,192,198,195,11,3,12,192,198,35,11,0,197,3,2,0,2,3,12,192,198,131,8,3,11,192,197,99,11,3,12,192,198,227,156,82,196,196,1,0,8,3,11,192,197,194,11,3,12,192,197,2,5,82,196,196,1,0,8,3,12,192,197,66,11,3,12,192,197,130,12,0,197,195,1,0,8,3,13,192,197,35,11,3,13,192,197,131,13,0,197,227,1,0,8,3,14,192,197,67,11,3,14,192,197,163,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,24,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,26,4,185,124,185,128,185,136,186,140,186,144,28,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,30,4,168,60,168,64,168,68,32,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,34,4,168,124,168,128,168,136,168,140,168,144,36,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,185,184,185,180,217,184,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,57,189,121,122,185,188,136,14,217,188,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,168,184,168,180,200,184,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,40,189,104,122,168,188,128,14,200,188,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,38,4,40,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,184,232,184,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,188,232,188,25,189,8,189,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,42,4,44,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,176,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,3,0,75,0,58,0,67,0,255,12,0,16,64,0,0,96,1,0,0,96,170,170,170,170,100,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,30,0,0,196,30,0,0,20,34,0,0,20,34,0,0,140,36,0,0,140,36,0,0,88,39,0,0,88,39,0,0,72,43,0,0,50,105,114,84,1,0,64,8,223,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,106,0,114,0,119,0,127,0,135,0,143,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,167,0,48,0,48,0,171,0,179,0,187,0,192,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,159,0,48,0,48,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,168,1,220,1,28,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,18,0,202,161,18,0,202,194,18,0,202,227,18,0,202,4,19,0,202,37,19,0,202,70,19,0,202,103,19,0,202,136,19,0,202,169,19,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,230,0,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,3,0,134,5,0,84,134,70,0,84,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,230,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,8,0,5,5,0,84,5,70,0,84,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,198,97,0,0,196,154,156,70,198,129,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,66,18,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,97,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,198,225,0,0,196,154,5,70,193,4,111,93,5,5,125,12,198,129,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,10,0,201,102,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,12,0,201,166,13,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,14,0,201,70,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,17,0,201,230,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,0,197,162,4,0,197,34,0,0,197,98,0,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,192,0,0,0,198,162,3,0,197,226,5,0,192,0,0,0,192,0,0,0,198,226,3,0,198,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,20,0,201,134,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,197,98,6,0,198,226,5,0,198,34,6,0,198,98,6,0,198,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,38,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,102,26,0,201,134,27,0,201,166,28,0,201,198,29,0,201,230,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,154,134,84,192,0,0,0,196,196,134,84,192,0,0,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,32,0,201,38,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,34,0,201,198,35,0,192,0,0,0,192,0,0,0,198,98,9,0,198,162,9,0,198,226,9,0,198,34,10,0,198,98,10,0,198,162,10,0,198,226,10,0,198,34,11,0,198,34,8,0,198,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,37,0,201,198,38,0,201,70,40,0,201,102,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,42,0,201,166,43,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,71,0,3,111,93,0,134,0,73,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,71,0,3,111,93,0,5,0,73,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,72,0,4,111,93,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,84,5,142,0,0,5,70,0,84,5,142,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,134,70,0,84,5,138,0,0,5,70,0,84,5,138,0,0,134,70,0,84,5,136,0,0,5,70,0,84,5,136,0,0,134,70,0,84,5,150,0,0,5,70,0,84,5,150,0,0,134,70,0,84,5,156,0,0,5,70,0,84,5,156,0,0,134,70,0,84,5,196,0,0,5,70,0,84,5,196,0,0,5,70,0,84,5,146,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,70,156,5,2,0,2,3,0,192,198,97,8,3,0,192,198,129,11,3,0,192,198,161,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,2,0,2,3,0,192,198,225,8,3,255,255,111,93,193,4,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,162,10,3,1,192,198,226,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,2,3,2,192,198,98,8,3,2,192,198,162,11,3,2,192,198,226,5,70,196,190,2,0,2,3,3,192,198,34,8,3,3,192,197,34,11,3,3,192,198,98,156,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,5,82,196,190,1,0,8,3,3,192,197,226,11,3,4,192,197,34,156,70,196,162,2,0,2,3,4,192,198,98,8,3,4,192,198,162,11,3,4,192,198,226,5,70,196,162,2,0,2,3,5,192,198,34,8,3,6,192,197,34,11,3,5,192,198,98,156,42,196,200,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,200,1,0,8,3,6,192,197,226,10,3,7,192,197,34,156,82,196,198,1,0,8,3,7,192,197,98,11,3,7,192,197,162,5,82,196,198,1,0,8,3,7,192,197,226,11,3,8,192,197,34,156,82,196,208,1,0,8,3,8,192,197,98,11,3,8,192,197,162,5,82,196,208,1,0,8,3,8,192,197,226,11,3,9,192,197,34,156,82,196,204,1,0,8,3,9,192,197,98,11,3,9,192,197,162,5,82,196,204,1,0,8,3,9,192,197,226,11,3,10,192,197,34,156,42,196,196,1,0,8,3,7,192,198,162,10,3,7,192,198,226,5,42,196,196,1,0,8,3,13,192,197,34,10,3,13,192,197,98,156,70,196,196,2,0,2,3,8,192,198,34,8,3,8,192,198,98,11,3,8,192,198,162,5,70,196,196,2,0,2,3,8,192,198,226,8,3,13,192,197,162,11,3,9,192,198,34,13,0,197,227,2,0,2,3,11,192,198,99,8,3,11,192,198,195,11,3,12,192,198,35,14,0,197,67,2,0,2,3,12,192,198,131,8,3,14,192,197,163,11,3,12,192,198,227,156,82,196,196,1,0,8,3,15,192,197,2,11,3,15,192,197,66,5,82,196,196,1,0,8,3,15,192,197,130,11,3,15,192,197,194,16,0,197,3,1,0,8,3,16,192,197,99,11,3,16,192,197,195,17,0,197,35,1,0,8,3,17,192,197,131,11,3,17,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,30,4,185,124,185,128,185,136,186,140,186,144,32,4,185,156,217,156,185,160,185,164,185,168,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,60,168,64,168,68,36,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,38,4,168,124,168,128,168,136,168,140,168,144,40,4,168,156,200,156,168,160,168,164,168,168,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,185,180,185,176,217,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,57,185,121,122,185,184,136,14,217,184,185,153,153,153,249,153,217,164,153,165,0,8,2,8,168,57,136,57,232,57,104,58,168,180,168,176,200,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,40,185,104,122,168,184,128,14,200,184,168,153,136,153,232,153,200,164,136,165,4,8,72,166,249,58,232,58,217,57,200,57,42,4,44,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,180,232,180,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,25,185,8,185,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,164,232,164,46,4,48,4,12,8,14,8,249,165,232,165,89,166,153,169,136,169,153,170,136,170,25,170,8,170,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,172,169,112,217,156,232,1,200,156,232,1,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,3,0,75,0,58,0,67,0,159,23,0,16,192,0,0,96,1,0,0,96,4,0,43,0,51,0,90,0,99,0,170,170,4,0,0,96,250,12,0,32,153,23,0,32,121,34,0,32,1,0,32,0,126,34,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,216,7,0,32,7,0,0,0,21,0,0,0,218,7,0,0,218,7,0,0,3,0,0,0,0,0,0,0,251,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,197,221,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,97,0,109,0,108,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,11,60,0,130,11,60,0,131,11,38,0,185,11,60,0,149,11,205,11,183,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,149,11,60,0,149,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,153,11,60,0,153,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,154,11,60,0,154,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,158,11,60,0,158,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,159,11,60,0,159,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,163,11,60,0,163,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,164,11,60,0,164,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,168,11,60,0,168,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,170,11,60,0,170,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,174,11,60,0,174,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,175,11,60,0,175,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,176,11,60,0,176,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,178,11,60,0,178,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,181,11,60,0,181,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,180,11,60,0,180,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,179,11,60,0,179,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,177,11,60,0,177,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,169,11,60,0,169,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,156,11,60,0,156,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,182,11,60,0,182,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,183,11,60,0,183,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,184,11,60,0,184,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,185,11,60,0,185,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,149,11,205,11,183,11,60,0,149,11,205,11,183,11,205,11,0,0,170,170,84,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,160,25,0,0,160,25,0,0,160,25,0,0,160,25,0,0,228,25,0,0,228,25,0,0,54,27,0,0,60,27,0,0,35,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,109,186,255,0,110,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,39,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,31,109,193,3,31,109,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,201,198,2,0,192,0,0,0,201,166,3,0,192,0,0,0,201,134,4,0,201,102,5,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,6,0,201,38,7,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,8,0,201,230,8,0,201,198,9,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,10,0,201,134,11,0,201,102,12,0,201,70,13,0,201,38,14,0,201,6,15,0,201,230,15,0,201,198,16,0,201,166,17,0,201,134,18,0,201,102,19,0,201,70,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,34,109,5,5,48,0,205,11,240,127,33,109,5,5,183,11,240,127,79,109,193,3,205,11,255,255,79,109,193,2,36,109,5,5,48,0,205,11,255,255,35,109,5,5,38,109,5,5,48,0,205,11,255,255,37,109,5,5,70,109,5,5,48,0,205,11,255,255,69,109,5,5,40,109,5,5,48,0,205,11,255,255,39,109,5,5,42,109,5,5,48,0,205,11,255,255,41,109,5,5,44,109,5,5,48,0,205,11,255,255,43,109,5,5,46,109,5,5,48,0,205,11,255,255,45,109,5,5,48,109,5,5,48,0,205,11,255,255,47,109,5,5,68,109,5,5,48,0,205,11,255,255,67,109,5,5,50,109,5,5,48,0,205,11,255,255,49,109,5,5,52,109,5,5,48,0,205,11,255,255,51,109,5,5,54,109,5,5,48,0,205,11,255,255,53,109,5,5,56,109,5,5,48,0,205,11,255,255,55,109,5,5,66,109,5,5,48,0,205,11,255,255,65,109,5,5,58,109,5,5,48,0,205,11,255,255,57,109,5,5,64,109,5,5,48,0,205,11,255,255,63,109,5,5,62,109,5,5,48,0,205,11,255,255,61,109,5,5,60,109,5,5,48,0,205,11,255,255,59,109,5,5,72,109,5,5,48,0,205,11,255,255,71,109,5,5,74,109,5,5,48,0,205,11,255,255,73,109,5,5,76,109,5,5,48,0,205,11,255,255,75,109,5,5,78,109,5,5,48,0,205,11,255,255,77,109,5,5,2,0,183,11,184,11,3,0,69,0,52,0,61,0,251,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,209,7,0,32,1,0,32,0,214,7,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,167,6,0,32,7,0,0,0,21,0,0,0,169,6,0,0,169,6,0,0,3,0,0,0,0,0,0,0,67,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,85,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,101,0,108,0,117,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,20,12,60,0,1,12,60,0,2,12,60,0,3,12,0,0,170,170,112,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,20,25,0,0,20,25,0,0,20,25,0,0,20,25,0,0,88,25,0,0,36,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,110,185,255,0,111,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,39,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,37,110,193,3,37,110,193,4,37,110,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,160,6,0,32,1,0,32,0,165,6,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,199,6,0,32,7,0,0,0,21,0,0,0,201,6,0,0,201,6,0,0,3,0,0,0,0,0,0,0,83,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,118,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,97,0,108,0,116,0,101,0,114,0,110,0,97,0,116,0,101,0,32,0,115,0,104,0,105,0,102,0,116,0,101,0,100,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,104,0,97,0,105,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,90,14,60,0,47,14,38,0,91,14,60,0,70,14,38,0,78,14,60,0,60,0,76,14,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,48,14,60,0,77,14,38,0,50,14,60,0,60,0,60,0,69,14,38,0,50,14,77,14,60,0,60,0,60,0,77,14,50,14,60,0,60,0,60,0,51,14,38,0,69,14,77,14,60,0,60,0,60,0,77,14,69,14,38,0,68,14,60,0,58,14,0,0,176,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,21,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,68,0,0,0,68,1,0,0,36,25,0,0,36,25,0,0,36,25,0,0,36,25,0,0,128,25,0,0,128,25,0,0,146,25,0,0,152,25,0,0,38,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,39,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,117,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,93,0,100,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,1,0,202,193,1,0,202,226,1,0,202,3,2,0,202,36,2,0,202,69,2,0,202,102,2,0,202,135,2,0,202,168,2,0,202,201,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,1,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,11,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,104,114,5,5,55,11,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,229,242,201,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,104,114,8,5,99,114,5,5,104,114,7,5,99,114,6,5,104,114,6,5,99,114,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,99,114,5,5,1,0,50,14,0,192,197,98,69,14,0,192,197,162,2,0,69,14,70,14,3,0,69,0,52,0,61,0,83,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,192,6,0,32,1,0,32,0,197,6,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,74,10,0,32,7,0,0,0,21,0,0,0,76,10,0,0,76,10,0,0,3,0,0,0,0,0,0,0,56,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,64,220,38,0,67,0,60,0,231,0,60,0,60,0,60,0,199,0,38,0,69,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,74,0,60,0,126,1,60,0,60,0,60,0,125,1,38,0,78,0,60,0,72,1,60,0,60,0,60,0,71,1,38,0,79,0,60,0,246,0,60,0,60,0,60,0,214,0,38,0,83,0,60,0,95,1,60,0,60,0,60,0,94,1,38,0,85,0,60,0,252,0,60,0,60,0,60,0,220,0,38,0,89,0,60,0,253,0,60,0,60,0,60,0,221,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,26,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,180,30,0,0,180,30,0,0,180,30,0,0,180,30,0,0,248,32,0,0,248,32,0,0,234,35,0,0,234,35,0,0,2,40,0,0,50,105,114,84,1,0,64,8,222,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,111,0,119,0,124,0,132,0,135,0,143,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,167,0,48,0,174,0,178,0,184,0,192,0,197,0,205,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,159,0,48,0,48,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,188,1,240,1,28,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,16,0,202,1,17,0,202,34,17,0,202,67,17,0,202,100,17,0,202,133,17,0,202,166,17,0,202,199,17,0,202,232,17,0,202,9,18,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,198,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,134,1,0,201,102,2,0,156,5,0,72,160,5,0,74,156,5,0,76,201,70,3,0,156,5,0,80,201,38,4,0,156,5,0,84,160,5,0,86,156,5,0,88,201,70,5,0,201,166,6,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,102,7,0,5,5,0,44,201,38,8,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,230,8,0,201,198,9,0,5,5,0,72,5,5,0,74,5,5,0,76,201,166,10,0,5,5,0,80,201,134,11,0,5,5,0,84,5,5,0,86,5,5,0,88,201,198,12,0,201,38,14,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,2,51,196,146,156,42,197,34,16,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,134,5,2,91,160,5,38,93,197,98,16,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,2,51,196,146,5,42,197,162,16,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,5,5,2,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,134,5,2,69,5,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,17,0,201,166,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,61,5,5,2,61,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,19,0,201,38,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,20,0,201,166,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,197,34,0,0,197,98,0,0,197,162,3,0,197,226,3,0,197,34,4,0,197,98,4,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,22,0,201,38,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,226,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,6,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,29,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,34,0,201,38,35,0,201,230,35,0,201,166,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,37,0,201,38,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,38,0,201,166,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,40,0,201,38,41,0,201,230,41,0,201,166,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,43,0,201,38,44,0,192,0,0,0,192,0,0,0,201,230,44,0,201,6,46,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,51,5,164,0,0,5,5,2,51,5,164,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,51,5,200,0,0,5,5,2,51,5,200,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,2,61,5,196,0,0,5,5,2,61,5,196,0,0,134,5,2,61,5,210,0,0,5,5,2,61,5,210,0,0,134,5,2,51,5,196,0,0,5,5,2,51,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,134,5,2,91,5,196,0,0,5,5,2,91,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,2,243,134,5,0,46,156,5,48,0,39,3,2,239,134,5,0,68,156,5,48,0,12,3,255,255,2,69,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,90,156,5,1,0,1,3,255,255,2,91,134,5,65,3,255,255,2,91,134,5,0,92,156,5,48,0,12,3,2,253,134,5,0,42,5,5,48,0,8,3,2,243,5,5,0,46,5,5,48,0,39,3,2,239,5,5,0,68,5,5,48,0,12,3,255,255,2,69,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,0,90,5,5,1,0,1,3,255,255,2,91,5,5,65,3,255,255,2,91,5,5,0,92,5,5,48,0,12,3,2,253,5,5,156,42,196,162,48,0,8,3,0,192,197,162,5,42,196,162,48,0,8,3,0,192,197,226,156,68,196,160,48,0,12,3,1,192,197,34,5,68,196,160,48,0,12,3,1,192,197,98,156,82,196,162,48,0,8,3,1,192,197,162,5,82,196,162,48,0,8,3,1,192,197,226,156,70,196,190,48,0,8,3,2,192,197,34,5,70,196,190,48,0,8,3,2,192,197,98,156,82,196,190,48,0,8,3,2,192,197,162,5,82,196,190,48,0,8,3,2,192,197,226,156,70,196,162,48,0,8,3,5,192,197,34,5,70,196,162,48,0,8,3,5,192,197,98,156,42,196,200,48,0,8,3,6,192,197,34,5,42,196,200,48,0,8,3,6,192,197,98,156,68,196,196,48,0,12,3,7,192,197,34,5,68,196,196,48,0,12,3,7,192,197,98,156,68,196,210,48,0,12,3,7,192,197,162,5,68,196,210,48,0,12,3,7,192,197,226,156,68,196,204,48,0,12,3,8,192,197,34,5,68,196,204,48,0,12,3,8,192,197,98,156,82,196,198,48,0,8,3,8,192,197,162,5,82,196,198,48,0,8,3,8,192,197,226,156,82,196,208,48,0,8,3,9,192,197,34,5,82,196,208,48,0,8,3,9,192,197,98,156,82,196,204,48,0,8,3,9,192,197,162,5,82,196,204,48,0,8,3,9,192,197,226,156,92,196,196,48,0,12,3,10,192,197,34,5,92,196,196,48,0,12,3,10,192,197,98,156,92,196,210,48,0,12,3,10,192,197,162,5,92,196,210,48,0,12,3,10,192,197,226,156,42,196,196,48,0,8,3,11,192,197,34,5,42,196,196,48,0,8,3,11,192,197,98,156,70,196,196,48,0,8,3,11,192,197,162,5,70,196,196,48,0,8,3,11,192,197,226,12,0,197,35,48,0,8,3,12,192,197,131,12,0,197,227,48,0,8,3,13,192,197,67,156,82,196,196,48,0,8,3,13,192,197,162,5,82,196,196,48,0,8,3,13,192,197,226,14,0,197,35,48,0,8,3,14,192,197,131,14,0,197,227,48,0,8,3,15,192,197,67,156,90,196,196,1,0,1,3,15,192,197,162,65,3,15,192,197,162,5,90,196,196,1,0,1,3,15,192,197,226,65,3,15,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,28,4,185,72,186,76,185,84,185,88,185,92,186,96,186,104,185,112,185,116,185,120,30,4,32,4,185,144,185,148,185,156,34,4,185,168,36,4,185,184,185,188,185,192,38,4,40,4,88,13,168,13,96,13,56,14,80,12,40,14,42,4,168,60,44,4,168,72,168,76,168,84,168,88,168,92,168,96,168,104,168,112,168,116,168,120,46,4,48,4,168,144,168,148,168,156,50,4,168,168,52,4,168,184,168,188,168,192,54,4,56,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,80,57,58,0,8,185,68,186,77,154,77,250,77,90,78,186,97,154,97,250,97,90,98,217,72,154,126,185,137,153,137,249,137,153,138,185,140,136,14,217,138,185,177,153,177,249,177,185,180,185,200,185,208,2,8,168,57,136,57,232,57,136,58,168,80,40,58,4,8,168,68,168,77,136,77,232,77,72,78,168,97,136,97,232,97,72,98,200,72,136,126,168,137,136,137,232,137,136,138,168,140,128,14,200,138,168,177,136,177,232,177,168,180,168,200,168,208,72,198,57,59,40,59,217,57,200,57,58,4,60,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,26,99,8,99,186,98,168,100,6,8,8,8,250,105,232,105,249,114,232,114,168,152,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,62,4,64,4,185,128,168,128,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,157,136,157,249,158,232,158,25,158,8,158,154,161,136,161,250,161,232,161,185,164,168,164,26,162,8,162,249,170,232,170,25,170,8,170,185,172,168,172,153,178,136,178,57,179,40,179,217,177,200,177,57,178,40,178,121,178,104,178,66,4,68,4,249,189,232,189,249,197,232,197,89,198,153,205,136,205,185,206,168,206,185,108,168,108,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,160,169,160,200,56,169,76,187,96,187,104,169,96,169,104,169,212,169,124,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,64,255,5,186,124,255,5,185,136,255,5,186,160,255,5,185,176,255,5,185,196,255,5,185,204,255,5,168,56,255,5,168,64,255,5,168,124,255,5,168,136,255,5,168,160,255,5,168,176,255,5,168,196,255,5,168,204,255,5,25,59,255,5,8,59,255,5,250,126,255,5,232,126,255,5,25,179,255,5,8,179,255,1,170,170,3,0,69,0,52,0,61,0,59,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,67,10,0,32,1,0,32,0,72,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,213,11,0,32,7,0,0,0,21,0,0,0,215,11,0,0,215,11,0,0,3,0,0,0,0,0,0,0,80,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,111,220,38,0,110,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,60,0,60,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,122,0,60,0,187,2,60,0,60,0,60,0,189,2,38,0,97,0,60,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,60,0,1,1,60,0,60,0,60,0,0,1,38,0,101,0,60,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,60,0,19,1,60,0,60,0,60,0,18,1,38,0,105,0,60,0,60,0,237,0,60,0,60,0,60,0,205,0,60,0,60,0,43,1,60,0,60,0,60,0,42,1,38,0,111,0,60,0,60,0,243,0,60,0,60,0,60,0,211,0,60,0,60,0,77,1,60,0,60,0,60,0,76,1,38,0,117,0,60,0,60,0,250,0,60,0,60,0,60,0,218,0,60,0,60,0,107,1,60,0,60,0,60,0,106,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,230,45,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,68,31,0,0,68,31,0,0,68,31,0,0,68,31,0,0,144,35,0,0,144,35,0,0,104,41,0,0,130,41,0,0,206,45,0,0,50,105,114,84,1,0,64,8,231,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,107,0,115,0,120,0,128,0,132,0,140,0,48,0,56,0,143,0,151,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,182,0,186,0,191,0,48,0,199,0,206,0,214,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,167,0,48,0,48,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,172,1,224,1,16,2,192,0,60,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,33,0,202,65,33,0,202,98,33,0,202,131,33,0,202,164,33,0,202,197,33,0,202,230,33,0,202,7,34,0,202,40,34,0,202,73,34,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,1,0,156,5,0,52,156,5,0,54,156,5,0,56,201,6,3,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,128,4,0,201,198,11,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,13,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,15,0,5,5,0,44,5,5,0,46,5,5,0,48,201,6,17,0,5,5,0,52,5,5,0,54,5,5,0,56,201,134,18,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,0,20,0,201,198,23,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,166,25,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,70,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,32,0,196,160,156,46,196,138,156,50,134,70,0,50,196,142,156,50,196,150,156,50,196,138,156,58,134,70,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,134,70,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,134,70,0,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,32,0,196,138,5,42,5,70,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,32,0,196,160,5,46,196,138,5,50,5,70,0,50,196,142,5,50,196,150,5,50,196,138,5,58,5,70,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,5,70,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,5,70,0,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,134,71,0,42,5,71,0,42,192,0,0,0,192,0,0,0,201,134,27,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,6,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,58,5,71,0,58,192,0,0,0,192,0,0,0,201,134,33,0,201,6,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,137,5,2,69,8,5,2,69,134,71,0,70,5,71,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,82,5,71,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,36,0,201,6,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,39,0,201,6,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,42,0,201,6,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,45,0,201,6,47,0,197,162,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,48,0,201,6,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,93,192,0,0,0,6,5,2,93,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,51,0,201,6,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,14,0,197,162,14,0,197,226,14,0,197,34,15,0,201,134,54,0,201,6,56,0,201,134,57,0,201,6,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,60,0,201,6,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,63,0,201,6,65,0,201,134,66,0,201,6,68,0,201,134,69,0,201,6,71,0,192,0,0,0,192,0,0,0,197,98,22,0,197,162,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,72,0,201,6,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,75,0,201,6,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,78,0,201,6,80,0,201,134,81,0,201,6,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,9,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,84,0,201,6,86,0,201,134,87,0,201,6,89,0,192,0,0,0,192,0,0,0,197,98,10,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,90,0,201,6,92,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,69,5,142,0,0,70,5,2,69,5,142,0,0,135,5,2,69,5,140,0,0,70,5,2,69,5,140,0,0,135,5,2,69,5,156,0,0,70,5,2,69,5,156,0,0,135,5,2,69,5,160,0,0,70,5,2,69,5,160,0,0,135,5,2,69,5,144,0,0,70,5,2,69,5,144,0,0,135,5,2,69,5,136,0,0,70,5,2,69,5,136,0,0,135,5,2,69,5,164,0,0,70,5,2,69,5,164,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,140,0,0,5,5,2,69,5,156,0,0,5,5,2,69,5,160,0,0,5,5,2,69,5,144,0,0,5,5,2,69,5,136,0,0,5,5,2,69,5,164,0,0,134,70,0,42,5,162,0,0,134,71,0,42,5,162,0,0,5,70,0,42,5,162,0,0,5,71,0,42,5,162,0,0,134,70,0,50,5,162,0,0,134,71,0,50,5,162,0,0,5,70,0,50,5,162,0,0,5,71,0,50,5,162,0,0,134,70,0,58,5,162,0,0,134,71,0,58,5,162,0,0,5,70,0,58,5,162,0,0,5,71,0,58,5,162,0,0,134,70,0,82,5,162,0,0,134,71,0,82,5,162,0,0,5,70,0,82,5,162,0,0,5,71,0,82,5,162,0,0,134,70,0,70,5,190,0,0,134,71,0,70,5,190,0,0,5,70,0,70,5,190,0,0,5,71,0,70,5,190,0,0,134,70,0,82,5,190,0,0,134,71,0,82,5,190,0,0,5,70,0,82,5,190,0,0,5,71,0,82,5,190,0,0,134,70,0,70,5,162,0,0,134,71,0,70,5,162,0,0,5,70,0,70,5,162,0,0,5,71,0,70,5,162,0,0,134,70,0,50,5,160,0,0,134,71,0,50,5,160,0,0,5,70,0,50,5,160,0,0,5,71,0,50,5,160,0,0,134,70,0,42,5,200,0,0,134,71,0,42,5,200,0,0,5,70,0,42,5,200,0,0,5,71,0,42,5,200,0,0,134,71,0,50,5,138,0,0,5,71,0,50,5,138,0,0,134,71,0,50,5,136,0,0,5,71,0,50,5,136,0,0,134,70,0,50,5,204,0,0,134,71,0,50,5,204,0,0,5,70,0,50,5,204,0,0,5,71,0,50,5,204,0,0,134,70,0,50,5,208,0,0,134,71,0,50,5,208,0,0,5,70,0,50,5,208,0,0,5,71,0,50,5,208,0,0,134,70,0,58,5,208,0,0,134,71,0,58,5,208,0,0,5,70,0,58,5,208,0,0,5,71,0,58,5,208,0,0,134,71,0,70,5,138,0,0,5,71,0,70,5,138,0,0,134,71,0,70,5,136,0,0,5,71,0,70,5,136,0,0,134,70,0,82,5,198,0,0,134,71,0,82,5,198,0,0,5,70,0,82,5,198,0,0,5,71,0,82,5,198,0,0,134,70,0,82,5,208,0,0,134,71,0,82,5,208,0,0,5,70,0,82,5,208,0,0,5,71,0,82,5,208,0,0,134,70,0,82,5,204,0,0,134,71,0,82,5,204,0,0,5,70,0,82,5,204,0,0,5,71,0,82,5,204,0,0,134,71,0,82,5,150,0,0,5,71,0,82,5,150,0,0,134,70,0,42,5,196,0,0,134,71,0,42,5,196,0,0,5,70,0,42,5,196,0,0,5,71,0,42,5,196,0,0,134,70,0,50,5,196,0,0,134,71,0,50,5,196,0,0,5,70,0,50,5,196,0,0,5,71,0,50,5,196,0,0,134,70,0,58,5,196,0,0,134,71,0,58,5,196,0,0,5,70,0,58,5,196,0,0,5,71,0,58,5,196,0,0,134,70,0,70,5,196,0,0,134,71,0,70,5,196,0,0,5,70,0,70,5,196,0,0,5,71,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,70,0,70,5,190,0,0,5,196,0,0,134,71,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,70,0,70,5,190,0,0,5,196,0,0,5,71,0,70,5,190,0,0,5,196,0,0,134,70,0,82,5,196,0,0,134,71,0,82,5,196,0,0,5,70,0,82,5,196,0,0,5,71,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,82,5,190,0,0,5,196,0,0,134,71,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,82,5,190,0,0,5,196,0,0,5,71,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,2,0,1,3,0,234,134,70,4,3,0,234,134,71,65,3,0,234,134,70,0,50,156,5,2,0,1,3,0,242,134,70,4,3,0,242,134,71,65,3,0,242,134,70,0,58,156,5,2,0,1,3,0,250,134,70,4,3,0,250,134,71,65,3,0,250,134,70,0,68,156,5,15,0,34,1,26,0,244,1,12,0,244,1,2,192,197,162,245,1,2,192,197,226,32,30,3,192,197,34,33,30,3,192,197,98,34,1,1,192,197,162,35,1,1,192,197,226,230,1,2,192,197,34,231,1,2,192,197,98,30,1,12,0,30,1,0,192,197,162,31,1,0,192,197,226,32,1,1,192,197,34,33,1,1,192,197,98,71,0,255,255,2,69,135,5,103,0,255,255,2,69,70,5,28,1,197,162,29,1,0,192,197,98,0,70,156,5,2,0,1,3,255,255,0,70,134,70,4,3,255,255,0,70,134,71,65,3,255,255,0,70,134,70,0,82,156,5,2,0,1,3,255,255,0,82,134,70,4,3,255,255,0,82,134,71,65,3,255,255,0,82,134,70,0,42,5,5,2,0,1,3,0,234,5,70,4,3,0,234,5,71,65,3,0,234,5,70,0,50,5,5,2,0,1,3,0,242,5,70,4,3,0,242,5,71,65,3,0,242,5,70,0,58,5,5,2,0,1,3,0,250,5,70,4,3,0,250,5,71,65,3,0,250,5,70,0,68,5,5,7,0,35,1,12,0,35,1,4,192,197,98,231,1,4,192,197,162,245,1,4,192,197,226,33,30,5,192,197,34,103,0,255,255,2,69,5,5,29,1,3,192,197,162,31,1,3,192,197,226,33,1,4,192,197,34,0,70,5,5,2,0,1,3,255,255,0,70,5,70,4,3,255,255,0,70,5,71,65,3,255,255,0,70,5,70,0,82,5,5,2,0,1,3,255,255,0,82,5,70,4,3,255,255,0,82,5,71,65,3,255,255,0,82,5,70,156,42,196,162,2,0,1,3,5,192,197,98,4,3,5,192,197,162,65,3,5,192,197,98,5,42,196,162,2,0,1,3,5,192,197,226,4,3,6,192,197,34,65,3,5,192,197,226,156,50,196,162,2,0,1,3,6,192,197,98,4,3,6,192,197,162,65,3,6,192,197,98,5,50,196,162,2,0,1,3,6,192,197,226,4,3,7,192,197,34,65,3,6,192,197,226,156,58,196,162,2,0,1,3,7,192,197,98,4,3,7,192,197,162,65,3,7,192,197,98,5,58,196,162,2,0,1,3,7,192,197,226,4,3,8,192,197,34,65,3,7,192,197,226,156,82,196,162,2,0,1,3,8,192,197,98,4,3,8,192,197,162,65,3,8,192,197,98,5,82,196,162,2,0,1,3,8,192,197,226,4,3,9,192,197,34,65,3,8,192,197,226,156,70,196,190,2,0,1,3,9,192,197,98,4,3,9,192,197,162,65,3,9,192,197,98,5,70,196,190,2,0,1,3,9,192,197,226,4,3,10,192,197,34,65,3,9,192,197,226,156,82,196,190,2,0,1,3,10,192,197,98,4,3,10,192,197,162,65,3,10,192,197,98,5,82,196,190,2,0,1,3,10,192,197,226,4,3,11,192,197,34,65,3,10,192,197,226,156,70,196,162,2,0,1,3,11,192,197,98,4,3,11,192,197,162,65,3,11,192,197,98,5,70,196,162,2,0,1,3,11,192,197,226,4,3,12,192,197,34,65,3,11,192,197,226,156,50,196,160,2,0,1,3,12,192,197,98,4,3,12,192,197,162,65,3,12,192,197,98,5,50,196,160,2,0,1,3,12,192,197,226,4,3,13,192,197,34,65,3,12,192,197,226,156,42,196,200,2,0,1,3,13,192,197,98,4,3,13,192,197,162,65,3,13,192,197,98,5,42,196,200,2,0,1,3,13,192,197,226,4,3,14,192,197,34,65,3,13,192,197,226,156,50,196,204,2,0,1,3,15,192,197,98,4,3,15,192,197,162,65,3,15,192,197,98,5,50,196,204,2,0,1,3,15,192,197,226,4,3,16,192,197,34,65,3,15,192,197,226,156,50,196,208,2,0,1,3,16,192,197,98,4,3,16,192,197,162,65,3,16,192,197,98,5,50,196,208,2,0,1,3,16,192,197,226,4,3,17,192,197,34,65,3,16,192,197,226,156,58,196,208,2,0,1,3,17,192,197,98,4,3,17,192,197,162,65,3,17,192,197,98,5,58,196,208,2,0,1,3,17,192,197,226,4,3,18,192,197,34,65,3,17,192,197,226,156,82,196,198,2,0,1,3,19,192,197,98,4,3,19,192,197,162,65,3,19,192,197,98,5,82,196,198,2,0,1,3,19,192,197,226,4,3,20,192,197,34,65,3,19,192,197,226,156,82,196,208,2,0,1,3,20,192,197,98,4,3,20,192,197,162,65,3,20,192,197,98,5,82,196,208,2,0,1,3,20,192,197,226,4,3,21,192,197,34,65,3,20,192,197,226,156,82,196,204,2,0,1,3,21,192,197,98,4,3,21,192,197,162,65,3,21,192,197,98,5,82,196,204,2,0,1,3,21,192,197,226,4,3,22,192,197,34,65,3,21,192,197,226,156,42,196,196,2,0,1,3,22,192,197,226,4,3,23,192,197,34,65,3,22,192,197,226,5,42,196,196,2,0,1,3,23,192,197,98,4,3,23,192,197,162,65,3,23,192,197,98,156,50,196,196,2,0,1,3,23,192,197,226,4,3,24,192,197,34,65,3,23,192,197,226,5,50,196,196,2,0,1,3,24,192,197,98,4,3,24,192,197,162,65,3,24,192,197,98,156,58,196,196,2,0,1,3,24,192,197,226,4,3,25,192,197,34,65,3,24,192,197,226,5,58,196,196,2,0,1,3,25,192,197,98,4,3,25,192,197,162,65,3,25,192,197,98,156,70,196,196,2,0,1,3,25,192,197,226,4,3,26,192,197,34,65,3,25,192,197,226,5,70,196,196,2,0,1,3,26,192,197,98,4,3,26,192,197,162,65,3,26,192,197,98,26,0,197,227,2,0,1,3,27,192,197,67,4,3,27,192,197,163,65,3,27,192,197,67,28,0,197,3,2,0,1,3,28,192,197,99,4,3,28,192,197,195,65,3,28,192,197,99,156,82,196,196,2,0,1,3,29,192,197,34,4,3,29,192,197,98,65,3,29,192,197,34,5,82,196,196,2,0,1,3,29,192,197,162,4,3,29,192,197,226,65,3,29,192,197,162,30,0,197,35,2,0,1,3,30,192,197,131,4,3,30,192,197,227,65,3,30,192,197,131,31,0,197,67,2,0,1,3,31,192,197,163,4,3,32,192,197,3,65,3,31,192,197,163,12,0,71,0,72,0,103,0,104,0,28,1,36,1,230,1,232,1,244,1,246,1,32,30,34,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,185,108,32,4,54,4,185,124,185,128,185,136,186,140,185,144,56,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,58,4,168,60,168,64,168,68,60,4,168,76,168,80,168,84,62,4,168,96,168,100,168,104,168,108,64,4,76,4,168,124,168,128,168,136,168,140,168,144,78,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,217,56,249,57,153,58,89,58,57,58,0,8,249,66,186,73,217,72,250,73,90,74,186,89,217,88,250,89,90,90,217,68,154,114,185,121,217,120,249,121,153,122,89,122,136,14,217,122,185,153,217,152,249,153,89,154,153,169,185,176,2,8,168,57,200,56,232,57,136,58,72,58,40,58,4,8,232,66,168,73,200,72,232,73,72,74,168,89,200,88,232,89,72,90,200,68,136,114,168,121,200,120,232,121,136,122,72,122,128,14,200,122,168,153,200,152,232,153,72,154,136,169,168,176,72,170,249,56,232,56,217,57,200,57,80,4,82,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,57,71,40,71,249,72,232,72,218,73,200,73,186,74,168,74,84,4,86,4,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,57,87,40,87,154,90,136,90,249,88,232,88,218,89,200,89,88,4,90,4,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,89,107,72,107,57,107,40,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,188,116,171,116,249,120,232,120,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,249,152,232,152,217,153,200,153,57,154,40,154,121,154,104,154,92,4,94,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,25,57,187,72,200,140,169,140,8,57,169,72,187,88,187,96,169,88,169,96,169,180,169,112,25,121,187,72,8,121,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,186,112,71,4,186,116,103,4,177,116,28,5,250,117,29,5,241,117,30,5,218,117,31,5,209,117,32,5,186,118,33,5,177,118,34,5,250,118,35,5,241,118,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,112,103,4,168,116,29,5,232,117,31,5,200,117,33,5,168,118,35,5,232,118,255,5,168,120,255,5,168,152,255,5,25,59,255,5,8,59,255,5,26,75,255,5,8,75,255,5,26,91,255,5,8,91,255,5,25,155,255,5,8,155,255,1,170,170,3,0,69,0,52,0,61,0,83,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,206,11,0,32,1,0,32,0,211,11,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,212,20,0,32,7,0,0,0,23,0,0,0,214,20,0,0,214,20,0,0,3,0,0,0,0,0,0,0,89,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,116,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,74,220,38,0,67,0,60,0,99,0,39,3,60,0,60,0,60,0,67,0,39,3,38,0,71,0,60,0,103,0,6,3,60,0,60,0,60,0,71,0,6,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,105,0,60,0,49,1,60,0,60,0,60,0,73,0,38,0,105,0,60,0,60,0,60,0,48,1,38,0,79,0,60,0,111,0,8,3,60,0,60,0,60,0,79,0,8,3,38,0,83,0,60,0,115,0,39,3,60,0,60,0,60,0,83,0,39,3,38,0,85,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,0,0,170,170,170,170,170,170,170,170,170,170,4,44,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,180,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,196,37,0,0,196,37,0,0,196,37,0,0,196,37,0,0,200,41,0,0,200,41,0,0,236,43,0,0,236,43,0,0,236,43,0,0,50,105,114,84,1,0,64,8,79,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,106,0,114,0,119,0,127,0,133,0,141,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,144,0,152,0,158,0,166,0,174,0,182,0,48,0,56,0,181,0,189,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,206,0,214,0,48,0,48,0,48,0,222,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,0,48,0,48,0,238,0,48,0,244,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,6,1,11,1,48,0,15,1,48,0,48,0,21,1,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,40,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,204,0,48,0,48,0,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,62,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,168,1,220,1,20,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,2,120,2,184,2,192,0,212,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,30,0,202,1,31,0,202,34,31,0,202,67,31,0,202,100,31,0,202,133,31,0,202,166,31,0,202,199,31,0,202,232,31,0,202,9,32,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,134,1,0,156,5,0,56,201,70,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,6,3,0,156,5,0,72,160,5,0,74,156,5,0,76,201,230,3,0,156,5,0,80,201,198,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,230,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,166,6,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,7,0,5,5,0,72,5,5,0,74,5,5,0,76,201,70,8,0,5,5,0,80,201,38,9,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,194,21,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,2,22,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,66,22,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,230,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,12,0,201,102,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,14,0,201,230,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,15,0,201,102,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,4,0,197,34,5,0,197,34,0,0,197,98,0,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,166,18,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,20,0,5,71,238,102,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,192,0,0,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,9,0,192,0,0,0,197,98,9,0,192,0,0,0,197,162,9,0,192,0,0,0,197,226,9,0,192,0,0,0,197,34,10,0,197,99,10,0,197,194,10,0,192,0,0,0,192,0,0,0,197,2,11,0,197,67,11,0,197,162,11,0,192,0,0,0,192,0,0,0,197,226,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,7,0,197,34,12,0,5,5,10,121,197,98,12,0,197,162,12,0,5,5,12,121,5,5,16,121,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,5,5,18,121,5,5,20,121,197,130,8,0,5,5,24,121,197,162,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,14,0,197,226,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,22,0,192,0,0,0,197,99,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,198,23,0,201,134,24,0,201,70,25,0,201,6,26,0,201,198,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,17,0,192,0,0,0,201,134,27,0,192,0,0,0,201,70,28,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,29,0,201,134,30,0,201,70,31,0,201,6,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,134,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,226,7,0,5,5,10,121,5,5,12,121,197,34,8,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,8,0,5,5,24,121,197,162,8,0,5,5,28,121,5,5,30,121,197,226,8,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,9,0,5,5,107,121,197,98,9,0,5,5,111,121,197,162,9,0,5,5,115,121,197,226,9,0,5,5,119,121,197,34,10,0,197,99,10,0,197,194,10,0,5,5,127,121,5,5,129,121,197,2,11,0,197,67,11,0,197,162,11,0,5,5,137,121,5,5,139,121,197,226,11,0,5,5,143,121,5,5,6,121,197,226,7,0,197,34,12,0,5,5,10,121,197,98,12,0,197,162,12,0,5,5,12,121,5,5,16,121,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,5,5,18,121,5,5,20,121,197,130,8,0,5,5,24,121,197,162,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,3,192,197,162,5,70,196,190,48,0,8,3,3,192,197,226,156,82,196,190,48,0,8,3,4,192,197,34,5,82,196,190,48,0,8,3,4,192,197,98,156,70,196,162,48,0,8,3,6,192,197,98,5,70,196,162,48,0,8,3,6,192,197,162,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,15,0,197,34,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,15,192,197,194,5,82,196,198,48,0,8,3,16,192,197,2,156,82,196,208,48,0,8,3,16,192,197,66,5,82,196,208,48,0,8,3,16,192,197,130,156,82,196,204,48,0,8,3,16,192,197,194,5,82,196,204,48,0,8,3,17,192,197,2,17,0,197,130,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,17,192,197,194,5,70,196,196,48,0,8,3,18,192,197,2,18,0,197,67,48,0,8,3,18,192,197,163,19,0,197,3,48,0,8,3,19,192,197,99,156,82,196,196,48,0,8,3,19,192,197,194,5,82,196,196,48,0,8,3,20,192,197,2,20,0,197,67,48,0,8,3,20,192,197,163,21,0,197,3,48,0,8,3,21,192,197,99,3,0,67,0,50,0,59,0,91,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,154,37,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,132,29,0,0,132,29,0,0,132,29,0,0,132,29,0,0,164,31,0,0,164,31,0,0,130,33,0,0,130,33,0,0,130,37,0,0,50,105,114,84,1,0,64,8,203,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,106,0,114,0,119,0,127,0,133,0,141,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,163,0,168,0,48,0,172,0,48,0,48,0,178,0,186,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,157,0,48,0,48,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,168,1,220,1,20,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,15,0,202,225,15,0,202,2,16,0,202,35,16,0,202,68,16,0,202,101,16,0,202,134,16,0,202,167,16,0,202,200,16,0,202,233,16,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,156,5,0,56,201,134,1,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,70,2,0,156,5,0,72,160,5,0,74,156,5,0,76,201,38,3,0,156,5,0,80,201,6,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,38,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,230,5,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,6,0,5,5,0,72,5,5,0,74,5,5,0,76,201,134,7,0,5,5,0,80,201,102,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,15,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,66,15,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,15,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,166,9,0,201,102,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,38,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,4,0,197,34,5,0,197,34,0,0,197,98,0,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,17,0,192,0,0,0,197,163,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,102,19,0,201,38,20,0,201,230,20,0,201,166,21,0,201,102,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,10,0,192,0,0,0,201,38,23,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,3,192,197,162,5,70,196,190,48,0,8,3,3,192,197,226,156,82,196,190,48,0,8,3,4,192,197,34,5,82,196,190,48,0,8,3,4,192,197,98,156,70,196,162,48,0,8,3,6,192,197,98,5,70,196,162,48,0,8,3,6,192,197,162,8,0,197,98,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,9,192,197,2,5,82,196,198,48,0,8,3,9,192,197,66,156,82,196,208,48,0,8,3,9,192,197,130,5,82,196,208,48,0,8,3,9,192,197,194,156,82,196,204,48,0,8,3,10,192,197,2,5,82,196,204,48,0,8,3,10,192,197,66,10,0,197,194,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,11,192,197,2,5,70,196,196,48,0,8,3,11,192,197,66,11,0,197,131,48,0,8,3,11,192,197,227,12,0,197,67,48,0,8,3,12,192,197,163,156,82,196,196,48,0,8,3,13,192,197,2,5,82,196,196,48,0,8,3,13,192,197,66,13,0,197,131,48,0,8,3,13,192,197,227,14,0,197,67,48,0,8,3,14,192,197,163,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,185,92,30,4,186,104,185,108,185,112,185,116,186,120,32,4,185,136,185,140,185,148,34,4,185,160,36,4,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,40,4,168,92,168,100,168,104,168,108,168,112,168,116,168,120,42,4,168,136,168,140,168,148,44,4,168,160,46,4,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,77,154,77,250,77,90,78,185,97,153,97,249,97,89,98,217,72,154,122,185,129,153,129,249,129,153,130,185,132,136,14,217,130,185,169,153,169,249,169,185,172,153,189,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,77,136,77,232,77,72,78,168,101,136,101,232,101,72,102,200,72,136,122,168,129,136,129,232,129,136,130,168,132,128,14,200,130,168,169,136,169,232,169,168,172,136,189,168,196,72,190,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,185,88,168,88,185,86,168,86,48,4,50,4,249,93,232,93,89,95,72,95,153,98,136,102,57,99,40,103,217,97,200,101,52,4,8,103,185,100,168,96,6,8,8,8,250,105,232,105,249,110,232,110,168,144,153,113,136,113,249,114,232,114,25,114,8,114,121,115,104,115,89,115,72,115,154,121,136,121,250,122,232,122,26,122,8,122,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,185,156,168,156,26,154,8,154,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,54,4,56,4,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,100,187,104,170,100,169,104,169,200,169,120,217,128,187,76,200,128,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,96,255,5,185,128,255,5,186,152,255,5,185,168,255,5,168,64,255,5,168,84,255,5,168,128,255,5,168,152,255,5,168,168,255,5,249,86,255,5,232,86,255,5,25,99,255,5,25,171,255,5,8,171,255,1,170,170,3,0,67,0,50,0,59,0,99,11,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,93,11,0,32,203,20,0,32,1,0,32,0,208,20,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,0,0,0,0,0,0,0,0,0,0,20,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,106,23,0,0,80,0,0,0,80,0,0,0,80,0,0,0,24,35,7,0,24,35,7,0,80,96,7,0,80,96,7,0,124,191,7,0,184,39,8,0,182,73,8,0,90,78,8,0,26,82,8,0,254,84,8,0,254,85,8,0,254,85,8,0,50,105,114,84,1,0,4,23,75,111,224,6,192,0,193,1,0,0,8,0,16,0,24,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,144,0,152,0,160,0,168,0,176,0,184,0,192,0,200,0,208,0,216,0,224,0,232,0,240,0,248,0,0,1,8,1,16,1,24,1,32,1,40,1,48,1,56,1,64,1,72,1,80,1,88,1,96,1,104,1,112,1,120,1,128,1,136,1,144,1,152,1,160,1,168,1,176,1,184,1,192,1,200,1,208,1,216,1,224,1,232,1,240,1,248,1,0,2,8,2,16,2,24,2,232,89,240,89,184,89,169,103,48,0,25,103,27,88,35,88,248,90,72,90,43,88,72,93,0,91,80,90,41,104,8,92,8,91,88,90,49,104,16,92,16,91,96,90,57,104,16,90,24,91,104,90,112,89,116,95,176,91,73,104,65,104,123,95,32,91,89,104,81,104,175,94,40,91,112,90,97,104,59,100,48,91,105,104,139,95,147,95,56,91,113,104,121,104,183,94,43,105,97,99,40,92,48,0,51,105,59,105,48,92,48,0,51,88,59,88,75,105,184,91,67,88,163,95,75,88,48,0,163,105,192,91,96,93,171,105,171,95,209,102,193,102,160,93,50,107,90,107,94,107,110,107,126,107,134,107,150,107,154,107,185,103,201,103,217,103,225,103,233,103,241,103,249,103,1,104,9,104,17,104,40,90,8,93,39,95,32,106,48,106,64,106,176,92,86,106,86,106,86,106,86,106,86,106,86,106,86,106,86,106,86,106,86,106,87,106,95,106,102,106,104,106,104,106,104,106,104,106,104,106,64,93,136,92,123,106,131,106,32,93,131,105,88,93,139,105,147,105,187,105,83,88,91,88,67,100,99,88,8,106,0,106,16,106,248,105,24,106,112,106,115,106,123,105,80,92,40,93,195,105,203,105,211,105,75,100,187,95,168,93,219,105,226,105,107,88,83,100,120,89,33,102,48,0,64,91,120,90,16,93,115,88,200,91,91,100,155,105,128,90,107,105,136,90,99,100,152,93,113,102,217,102,123,88,129,88,129,101,89,101,81,101,169,101,145,101,225,101,128,89,136,89,105,101,241,101,17,102,25,102,121,101,97,101,217,101,9,102,41,102,65,102,73,102,57,102,49,102,23,95,15,95,7,95,137,88,145,88,144,92,153,88,8,94,105,99,200,89,144,89,79,95,203,95,211,95,177,101,219,95,226,95,231,95,239,95,247,95,87,96,103,96,79,96,111,96,127,96,135,96,119,96,88,94,135,94,143,96,143,96,143,96,143,96,143,96,143,96,143,96,150,96,158,96,16,94,24,94,40,94,57,101,171,100,166,96,167,96,167,96,167,96,167,96,175,96,181,96,184,96,227,96,231,96,237,96,242,96,248,96,252,96,252,96,252,96,12,97,20,97,21,97,127,94,29,97,34,97,112,94,119,94,98,97,98,97,98,97,98,97,98,97,98,97,98,97,98,97,42,97,42,97,42,97,42,97,104,94,50,97,159,94,96,94,95,96,58,97,58,97,0,93,66,97,66,97,67,97,75,97,75,97,75,97,75,97,78,97,84,97,90,97,90,97,90,97,153,102,137,102,161,102,137,101,81,102,89,102,97,102,104,89,201,102,225,102,177,103,161,88,193,103,25,104,33,104,105,102,200,92,184,92,192,92,48,0,42,110,26,110,10,111,58,111,242,109,138,110,194,110,234,110,2,111,42,111,66,111,50,99,128,92,112,92,170,107,210,107,208,89,208,92,218,107,216,92,2,108,58,107,74,107,82,107,73,99,10,108,58,99,65,99,56,94,64,94,72,94,81,99,250,109,235,100,211,100,226,107,178,107,202,107,179,100,219,100,185,101,193,101,113,101,203,100,144,2,96,3,253,3,87,4,240,4,120,5,64,6,48,7,168,7,8,8,224,8,136,9,35,10,151,10,206,10,26,11,224,7,150,12,75,13,246,13,141,14,84,15,193,15,169,15,90,16,136,16,28,17,172,17,140,18,243,18,82,19,174,19,2,20,80,20,216,20,45,21,140,21,18,22,161,22,9,23,101,23,198,23,22,24,83,24,152,24,13,25,178,25,31,26,172,26,12,27,63,27,170,27,26,28,130,28,2,29,154,29,250,29,105,30,9,31,134,31,211,31,13,32,132,32,140,32,54,33,172,33,220,33,60,34,146,34,14,35,138,35,209,35,58,36,135,36,243,36,113,37,185,37,45,38,177,38,84,39,188,39,131,40,201,40,25,41,110,41,213,41,43,42,128,42,230,42,70,43,117,43,213,43,75,44,105,44,167,44,53,45,157,45,37,46,83,46,146,46,254,46,131,47,214,47,11,48,131,48,17,49,129,49,176,49,238,49,62,50,154,50,7,51,71,51,137,51,186,51,231,51,140,52,244,52,72,53,159,53,228,53,86,54,220,54,68,55,210,55,26,56,136,56,238,56,69,57,134,57,183,57,94,58,150,58,246,58,52,59,147,59,6,60,56,60,119,60,48,61,156,61,244,61,127,62,247,62,59,63,194,63,33,64,121,64,199,64,47,65,111,65,204,65,43,66,135,66,20,67,131,67,227,67,106,68,154,68,248,68,41,69,141,69,33,70,120,70,232,70,120,71,71,72,175,72,33,73,176,73,104,74,207,74,94,75,34,76,145,76,6,77,228,52,213,77,60,78,138,78,202,78,25,79,97,79,149,79,237,79,75,80,119,80,207,80,103,81,179,81,243,81,99,82,200,82,61,83,180,83,233,83,71,84,214,84,22,85,91,85,174,85,106,86,176,86,248,86,110,87,208,2,106,97,106,97,64,2,152,2,248,2,56,3,104,2,160,3,224,3,229,3,233,3,238,3,13,4,245,3,37,4,42,4,74,4,79,4,127,4,127,4,162,4,162,4,194,4,200,4,232,4,32,5,64,5,80,5,152,5,184,5,24,6,80,6,120,6,184,6,8,7,40,7,64,7,104,7,160,7,216,7,248,7,32,8,64,8,104,8,112,2,176,8,240,8,24,9,72,9,144,9,192,9,216,9,217,9,239,9,247,9,19,10,27,10,80,10,80,10,86,10,135,10,143,10,186,10,190,10,10,11,18,11,66,11,74,11,198,10,138,11,218,11,225,11,70,12,134,12,158,12,206,12,222,12,230,12,21,13,45,13,51,13,122,13,125,13,164,13,172,13,201,13,238,13,46,14,70,14,176,9,173,14,229,14,29,15,76,15,156,15,161,15,185,15,217,15,224,15,0,16,16,16,24,16,72,16,77,16,82,16,128,16,160,16,197,16,244,16,20,17,92,17,116,17,164,17,180,17,36,18,16,3,164,18,211,18,34,19,66,19,74,19,98,19,114,19,166,19,204,19,226,19,250,19,24,20,72,20,136,20,192,20,232,20,13,21,37,21,109,21,132,21,164,21,218,21,50,22,106,22,153,22,217,22,249,22,33,23,85,23,125,23,133,23,157,23,189,23,190,23,226,23,234,23,10,24,14,24,60,24,67,24,112,24,75,24,144,24,204,24,224,24,5,25,99,25,130,25,170,25,218,25,234,25,241,25,17,26,23,26,70,26,76,26,105,26,112,26,160,26,164,26,202,26,204,26,211,26,4,27,219,26,48,27,55,27,98,27,105,27,146,27,162,27,234,27,42,28,90,28,154,28,234,28,42,29,106,29,122,29,146,29,170,29,210,29,242,29,49,30,89,30,218,29,56,6,233,30,25,31,41,31,49,31,54,31,92,31,92,31,96,31,120,31,120,31,126,31,166,31,166,31,174,31,198,31,198,31,203,31,255,31,255,31,5,32,76,32,76,32,84,32,116,32,89,32,189,32,124,32,225,32,233,32,17,33,46,33,101,33,156,33,204,33,244,33,52,34,106,34,154,34,218,34,54,35,216,5,101,35,108,35,124,35,130,35,154,35,161,35,192,35,198,35,201,35,241,35,243,35,250,35,35,36,35,36,43,36,113,36,113,36,50,36,121,36,176,36,127,36,184,36,190,36,227,36,235,36,43,37,51,37,105,37,59,37,137,37,177,37,209,37,247,37,29,38,61,38,101,38,109,38,138,38,169,38,217,38,225,38,230,38,61,39,68,39,140,39,180,39,211,39,19,40,83,40,171,40,193,40,249,40,17,41,62,41,86,41,102,41,126,41,190,41,229,41,245,41,5,42,29,42,35,42,91,42,120,42,158,42,182,42,206,42,254,42,38,43,94,43,141,43,157,43,205,43,243,43,43,44,67,44,97,44,129,44,145,44,183,44,238,44,30,45,77,45,141,45,197,45,5,46,29,46,53,46,106,46,130,46,180,46,223,46,22,47,84,47,115,47,123,47,158,47,198,47,206,47,230,47,251,47,43,48,75,48,107,48,155,48,177,48,241,48,65,49,89,49,121,49,152,49,168,49,6,50,46,50,92,50,130,50,194,50,226,50,255,50,23,51,47,51,55,51,101,51,63,51,163,51,167,51,223,51,7,52,61,52,116,52,132,52,164,52,236,52,58,53,64,53,96,53,128,53,144,53,182,53,151,53,214,53,220,53,3,54,27,54,59,54,109,54,140,54,164,54,188,54,196,54,212,54,252,54,44,55,84,55,139,55,194,55,234,55,10,56,50,56,82,56,98,56,176,56,200,56,208,56,224,56,230,56,22,57,61,57,93,57,126,57,249,30,175,57,230,57,30,58,86,58,110,58,158,58,190,58,222,58,230,58,14,59,18,59,238,58,39,59,44,59,71,59,76,59,131,59,131,59,131,59,49,49,139,59,195,59,199,59,76,39,247,59,254,59,47,60,48,60,103,60,111,60,180,60,186,60,248,60,40,61,89,61,0,61,16,9,204,61,236,61,252,61,12,62,60,62,82,62,88,62,95,62,156,62,164,62,211,62,215,62,172,62,239,62,75,63,130,63,170,63,186,63,210,63,226,63,250,63,25,64,81,64,105,64,137,64,185,48,207,64,123,48,39,65,87,65,103,65,135,65,143,65,175,65,183,65,220,65,227,65,11,66,35,66,79,66,103,66,127,66,158,66,166,66,198,66,204,66,228,66,12,67,52,67,108,67,155,67,171,67,211,67,170,28,34,68,50,68,58,68,98,68,132,68,224,68,240,68,14,69,33,69,65,69,125,69,133,69,219,69,17,70,49,70,81,70,97,70,136,70,200,70,248,70,8,71,32,71,48,71,88,71,104,71,160,71,176,71,227,71,42,72,63,72,87,72,127,72,159,72,205,72,251,72,17,73,49,73,88,73,136,73,160,73,168,73,192,73,195,73,203,73,207,73,223,73,226,73,17,74,23,74,30,74,51,74,57,74,96,74,125,74,129,74,166,74,172,74,199,74,227,74,40,75,46,75,70,75,86,75,102,75,118,75,125,75,165,75,228,75,244,75,26,76,81,76,121,76,137,76,161,76,201,76,225,76,254,76,76,77,122,77,176,77,205,77,12,78,52,78,116,78,146,78,210,78,1,79,49,79,89,79,125,79,165,79,213,79,229,79,19,80,83,80,111,80,135,80,175,80,239,80,7,81,47,81,79,81,95,81,131,81,171,81,203,81,235,81,19,82,59,82,83,82,147,82,176,82,246,82,45,83,132,83,164,83,172,83,204,83,209,83,250,83,2,84,55,84,111,84,158,84,174,84,206,84,230,84,246,84,14,85,50,85,71,65,83,85,126,85,144,85,63,84,195,85,2,86,34,86,50,86,98,86,153,86,108,39,8,87,62,87,126,87,158,87,197,87,2,22,48,3,176,2,180,21,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,138,97,142,97,149,97,232,92,187,106,195,106,202,106,210,106,217,106,220,106,226,106,233,106,240,92,107,100,129,102,169,88,121,102,241,106,241,106,48,90,47,95,55,95,1,102,209,101,63,95,153,101,201,101,233,101,208,91,155,95,115,105,80,93,216,91,137,104,72,91,177,88,115,100,72,92,176,93,102,107,80,91,144,90,24,93,89,99,234,105,240,105,104,93,179,95,67,105,56,92,64,92,48,93,209,103,161,101,71,95,31,95,40,106,56,106,129,104,24,92,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,48,2,142,107,162,107,40,2,158,98,151,98,143,98,63,98,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,216,97,122,97,122,97,122,97,122,97,122,97,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,34,110,82,110,58,110,10,110,114,110,66,110,90,110,74,110,152,9,20,62,186,110,18,110,154,110,226,110,34,111,48,0,224,89,71,96,233,102,105,103,137,103,100,95,108,95,249,102,9,103,153,103,248,89,8,90,1,103,81,103,17,103,0,90,129,103,151,94,89,103,145,103,73,103,97,103,56,2,92,95,72,89,80,89,152,92,88,89,241,102,121,103,161,103,96,89,168,92,160,92,80,94,224,92,216,89,66,107,118,107,32,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,0,1,64,1,128,1,192,1,0,2,64,2,128,2,192,2,0,3,64,3,128,3,192,3,0,4,64,4,128,4,192,4,0,5,64,5,128,5,192,5,0,6,64,6,128,6,192,6,0,7,64,7,128,7,192,7,0,8,64,8,33,18,97,20,97,18,161,20,33,21,224,6,161,18,224,6,1,22,224,6,224,6,224,6,224,6,225,18,65,22,65,22,66,22,130,22,224,6,224,6,224,6,224,6,225,21,33,19,224,6,224,6,97,19,161,19,225,20,225,19,97,21,161,21,33,10,97,11,161,13,225,12,33,12,225,13,225,14,161,12,161,14,161,11,225,11,161,16,97,13,33,15,97,17,97,14,33,14,97,15,33,16,225,15,225,9,33,13,225,10,33,11,97,16,97,10,97,12,161,15,33,17,161,17,224,6,194,22,161,10,225,16,225,17,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,33,20,34,85,58,85,64,85,67,85,99,85,102,85,134,85,136,85,152,85,157,85,161,85,166,85,182,85,187,85,203,85,219,85,227,85,234,85,250,85,82,86,90,86,114,86,121,86,137,86,189,14,161,86,168,86,184,86,200,86,216,86,224,86,232,86,240,86,0,87,16,87,24,87,32,87,38,87,46,87,70,87,86,87,118,87,134,87,142,87,150,87,166,87,174,87,181,87,205,87,212,87,219,87,235,87,243,87,3,88,72,2,48,0,120,2,168,3,111,4,16,5,176,5,128,6,24,7,24,8,80,2,160,2,184,2,232,2,0,3,24,3,32,3,64,3,112,3,136,3,152,3,176,3,184,3,216,3,5,4,21,4,29,4,50,4,95,4,103,4,135,4,142,4,146,4,170,4,208,4,216,4,248,4,0,5,40,5,8,5,48,5,72,5,88,5,104,5,136,5,144,5,160,5,192,5,208,5,224,5,240,5,8,6,32,6,48,6,72,6,96,6,112,6,136,6,152,6,176,6,192,6,216,6,224,6,0,7,16,7,56,7,72,7,88,7,112,7,120,7,128,7,136,7,152,7,176,7,44,62,231,62,162,63,57,64,239,64,127,65,63,66,182,66,220,66,244,66,76,67,235,67,66,68,208,68,85,69,235,69,208,70,72,71,211,71,2,72,103,72,213,72,120,73,1,74,158,74,32,75,78,75,141,75,181,75,113,76,185,76,44,77,197,77,84,78,57,79,221,79,59,80,223,80,15,81,55,81,35,82,139,82,85,83,47,84,150,84,222,84,6,85,110,85,10,86,58,86,129,86,78,87,251,87,88,2,168,2,200,2,8,3,72,3,144,3,208,3,58,4,154,4,224,4,24,5,96,2,240,2,88,3,200,3,66,4,186,4,112,5,0,6,144,6,32,7,184,7,96,8,168,8,40,9,128,9,72,10,2,11,130,11,22,12,37,13,156,13,38,14,125,14,53,15,248,15,12,17,156,17,252,17,227,18,158,19,104,20,61,21,210,21,177,22,117,23,2,24,136,24,67,25,9,26,97,26,194,26,90,27,2,28,18,29,202,29,57,30,161,30,158,31,68,32,181,32,85,33,12,34,83,34,6,35,93,35,233,35,105,36,168,36,35,37,169,37,93,38,209,38,53,39,172,39,115,48,1,49,200,49,186,50,93,51,255,51,156,52,112,53,43,54,172,54,28,55,178,55,74,56,45,57,17,31,166,58,107,59,171,59,23,60,164,60,24,61,180,61,119,62,43,63,49,64,223,64,251,65,174,66,252,66,243,67,216,68,179,69,176,70,64,71,203,71,119,72,104,73,249,73,150,74,24,75,133,75,4,76,177,76,160,77,76,78,117,79,35,80,255,80,63,81,27,82,216,82,225,83,127,84,182,84,75,85,18,86,66,86,102,87,128,2,14,14,58,29,201,38,4,53,212,66,157,75,136,2,224,2,40,3,192,3,119,4,178,4,56,5,128,5,200,5,104,6,208,6,96,7,208,7,72,8,160,8,248,8,56,9,120,9,11,10,119,10,170,10,242,10,106,11,210,11,46,12,110,12,5,13,148,13,22,14,157,14,45,15,132,15,240,15,56,16,152,16,220,16,4,17,132,17,196,17,236,17,20,18,100,18,195,18,142,19,96,20,208,20,101,21,234,21,66,22,185,22,61,23,218,23,104,24,188,24,75,25,146,25,54,26,144,26,244,26,82,27,242,27,106,28,194,28,192,7,200,7,240,7,0,8,16,8,40,8,56,8,80,8,88,8,192,2,112,8,120,8,136,8,144,8,80,3,192,8,208,8,232,8,248,5,8,9,32,9,48,9,64,9,200,6,88,9,112,9,200,8,16,6,160,9,184,9,200,9,225,9,231,9,255,9,3,10,43,10,43,10,48,10,94,10,101,10,104,10,111,10,159,10,159,10,159,10,162,10,214,10,222,10,223,10,226,10,34,11,42,11,47,11,47,11,50,11,82,11,82,11,82,11,82,11,90,11,146,11,153,11,160,11,186,11,134,41,158,41,174,41,182,41,198,41,205,41,221,41,237,41,253,41,13,42,51,42,67,42,99,42,104,42,136,42,142,42,166,42,190,42,198,42,214,42,238,42,6,43,14,43,22,43,46,43,62,43,78,43,102,43,109,43,125,43,116,18,193,22,149,43,165,43,181,43,104,3,221,43,227,43,216,2,3,44,11,44,35,44,51,44,83,44,89,44,113,44,121,44,137,44,153,44,159,44,175,44,191,44,199,44,223,44,230,44,246,44,254,44,14,45,38,45,45,45,61,45,93,45,101,45,117,45,125,45,133,45,149,45,165,45,189,45,168,6,213,45,237,45,245,45,13,46,45,46,61,46,67,46,91,46,98,46,10,29,114,46,138,46,154,46,157,46,164,46,188,46,191,46,231,46,239,46,246,46,6,47,14,47,30,47,38,47,54,47,60,47,76,47,92,47,99,47,139,47,144,47,150,47,166,47,222,47,238,47,243,47,3,48,19,48,51,48,67,48,83,48,91,48,99,48,139,48,163,48,169,48,193,48,209,48,233,48,249,48,9,49,33,49,120,3,81,49,97,49,137,49,144,49,160,49,152,20,160,20,184,20,200,20,224,20,240,20,245,20,5,21,21,21,29,21,53,21,69,21,85,21,128,3,248,6,117,21,124,21,52,17,156,21,172,21,188,21,194,21,226,21,250,21,10,22,26,22,58,22,232,6,82,22,98,22,114,22,121,22,129,22,169,22,201,22,168,20,225,22,233,22,241,22,17,23,25,23,41,23,46,23,53,23,77,23,93,23,109,23,141,23,165,23,173,23,206,23,210,23,242,23,242,23,30,24,30,24,30,24,36,24,91,24,91,24,96,24,120,24,120,24,160,24,96,5,168,5,232,5,40,6,88,6,160,6,240,6,80,7,144,7,232,7,48,8,128,8,0,9,80,9,208,9,64,10,127,10,178,10,250,10,58,11,114,11,122,11,178,11,246,11,14,12,54,12,94,12,174,12,13,13,114,13,193,13,30,14,109,14,205,14,253,14,100,15,64,16,189,16,36,17,108,17,204,17,12,18,68,18,203,18,26,19,150,19,242,19,48,20,144,20,253,20,93,21,148,21,242,21,74,22,145,22,1,23,69,23,181,23,250,23,52,24,128,24,196,24,253,24,83,25,109,33,116,33,132,33,13,15,164,33,180,33,196,33,212,33,228,33,236,33,252,33,152,8,90,22,88,20,36,34,68,34,75,34,91,34,98,34,114,34,130,34,162,34,178,34,194,34,202,34,210,34,226,34,242,34,248,34,254,34,22,35,30,35,62,35,69,35,77,35,85,35,116,35,146,35,169,35,176,35,217,35,2,36,2,36,5,36,66,36,66,36,11,36,74,36,81,36,143,36,144,36,198,36,198,36,198,36,203,36,251,36,209,22,3,37,11,37,67,37,67,37,73,37,81,37,121,37,120,16,112,16,144,16,168,16,173,16,205,16,212,16,228,16,236,16,252,16,184,8,44,17,68,17,84,17,100,17,124,17,140,17,148,17,188,17,212,17,168,9,228,17,244,17,4,18,28,18,44,18,52,18,76,18,92,18,108,18,124,18,132,18,148,18,156,18,172,18,180,18,187,18,219,18,235,18,251,18,11,19,18,19,42,19,50,19,58,19,90,19,106,19,122,19,126,19,182,19,182,19,188,19,212,19,218,19,234,19,10,20,16,20,32,20,40,20,56,20,140,15,64,20,112,20,128,20,216,8,104,9,56,10,234,10,98,11,38,12,253,12,106,13,230,13,93,14,5,15,116,15,48,16,181,16,76,17,220,17,84,18,3,19,196,19,120,20,77,21,202,21,137,22,149,23,44,24,180,24,59,25,1,26,136,26,32,27,194,27,202,28,82,29,186,29,73,30,201,30,112,31,231,31,44,32,165,32,9,33,124,33,82,28,38,35,19,36,152,36,19,37,129,37,7,38,130,38,250,38,100,39,235,39,115,40,118,41,75,42,150,42,222,42,133,43,251,43,69,45,253,45,207,46,174,47,136,53,167,53,174,53,190,53,236,53,243,53,251,53,11,54,19,54,35,54,67,54,70,54,94,54,101,54,117,54,124,54,132,54,236,54,4,55,12,55,20,55,134,19,52,55,42,22,76,55,100,55,124,55,131,55,96,9,147,55,154,55,162,55,186,55,218,55,172,24,242,55,250,55,2,56,18,56,42,56,58,56,66,56,90,56,106,56,112,56,120,56,144,56,152,56,160,56,184,56,193,30,216,56,246,56,254,56,6,57,30,57,37,57,225,30,77,57,101,57,103,57,142,57,110,57,150,57,163,11,170,11,233,11,233,11,238,11,254,11,254,11,6,12,30,12,62,12,78,12,86,12,102,12,126,12,142,12,166,12,182,12,198,12,214,12,238,12,245,12,29,13,59,13,67,13,83,13,90,13,133,13,140,13,180,13,185,13,209,13,214,13,254,13,54,14,62,14,78,14,85,14,101,14,117,14,133,14,149,14,165,14,181,14,197,14,213,14,237,14,245,14,21,15,37,15,61,15,68,15,92,15,108,15,148,15,177,15,201,15,209,15,232,15,8,16,32,16,40,16,98,16,98,16,104,16,160,24,164,24,212,24,212,24,216,24,232,24,237,24,21,25,28,25,35,25,51,25,91,25,107,25,114,25,122,25,138,25,194,11,154,25,186,25,202,25,226,25,249,25,39,26,46,26,84,26,89,26,120,26,120,26,128,26,180,26,180,26,186,26,227,26,228,26,236,26,20,27,20,27,24,27,71,27,71,27,74,27,113,27,113,27,114,27,138,27,138,27,122,27,154,27,178,27,186,27,210,27,218,27,226,27,250,27,221,14,10,28,34,28,50,28,66,28,74,28,114,28,98,28,138,28,146,28,0,69,6,69,22,69,25,69,49,69,73,69,77,69,101,69,109,69,149,69,155,69,163,69,171,69,187,69,195,69,211,69,227,69,243,69,249,69,1,70,25,70,41,70,57,70,73,70,89,70,105,70,112,70,128,70,144,70,168,70,184,70,216,70,224,70,210,25,16,71,40,71,56,71,80,71,96,71,112,71,128,71,136,71,168,71,184,71,192,71,195,71,202,11,235,71,242,71,192,70,18,72,26,72,50,72,55,72,79,72,95,72,111,72,135,72,151,72,167,72,183,72,190,72,197,72,229,72,184,64,191,64,215,64,231,64,247,64,255,64,23,65,31,65,55,65,63,65,79,65,95,65,119,65,151,65,159,65,191,65,196,65,212,65,235,65,243,65,19,66,51,66,55,66,71,66,87,66,95,66,111,66,143,66,150,66,118,12,4,67,222,13,28,67,44,67,60,67,84,67,92,67,100,67,116,67,123,67,139,67,147,67,163,67,179,67,195,67,219,67,92,55,251,67,11,68,18,68,26,68,74,68,82,68,90,68,114,68,119,68,124,68,140,68,146,68,162,68,168,68,184,68,200,68,232,68,121,37,176,20,145,37,153,37,193,37,201,37,217,37,223,37,255,37,15,38,21,38,37,38,53,38,77,38,117,38,122,38,146,38,153,38,185,38,193,38,238,38,242,38,18,39,22,39,29,39,92,39,37,39,116,39,124,39,148,39,156,39,124,15,196,39,203,39,219,39,251,39,3,40,11,40,27,40,35,40,190,12,59,40,67,40,75,40,107,40,123,40,139,40,147,40,155,40,179,40,185,40,209,40,28,34,233,40,170,34,241,40,1,41,9,41,33,41,38,41,70,41,78,41,94,41,194,25,162,28,178,28,58,28,218,28,226,28,250,28,26,29,50,29,66,29,90,29,114,29,130,29,162,29,178,29,226,29,234,29,2,30,9,30,33,30,34,22,60,18,97,30,65,30,113,30,137,30,145,30,169,30,185,30,217,30,1,31,33,31,62,31,68,31,104,31,142,31,98,13,182,31,182,31,190,31,219,31,219,31,223,31,21,32,28,32,30,32,36,32,97,32,97,32,100,32,148,32,152,32,157,32,197,32,197,32,197,32,201,32,241,32,249,32,1,33,25,33,30,33,62,33,69,33,93,33,158,57,159,57,245,24,167,57,207,57,214,57,222,57,246,57,254,57,6,58,6,14,22,58,57,49,227,39,46,58,62,58,78,58,102,58,118,58,134,58,142,58,221,45,174,58,182,58,198,58,254,58,26,59,31,59,60,59,63,59,84,59,88,59,93,59,99,59,155,59,155,59,155,59,155,59,163,59,207,59,207,59,211,36,215,59,223,59,14,60,14,60,14,60,15,60,64,60,72,60,80,60,80,60,87,60,127,60,43,25,135,60,143,60,151,60,194,60,156,60,202,60,208,60,8,61,216,60,235,72,3,73,9,73,25,73,41,73,57,73,73,73,80,73,96,73,112,73,144,73,184,73,126,58,215,73,234,73,241,73,38,74,43,74,65,74,65,74,72,74,112,74,117,74,137,74,142,74,180,74,183,74,215,74,219,74,235,74,241,74,1,75,8,75,16,75,54,75,189,75,197,75,213,75,220,75,236,75,252,75,12,76,18,76,42,76,58,76,65,76,89,76,97,76,105,76,153,76,169,76,60,17,209,76,233,76,241,76,246,76,14,77,20,77,36,77,52,77,68,77,84,77,90,77,98,77,162,25,62,26,152,26,252,26,40,27,130,27,202,27,18,28,122,28,242,28,74,29,138,29,194,29,25,30,41,30,81,30,129,30,177,30,241,30,84,31,150,31,247,31,60,32,173,32,217,32,77,33,140,33,4,34,44,34,122,34,186,34,46,35,184,35,27,36,97,36,160,36,27,37,97,37,161,37,239,37,69,38,161,38,10,39,45,39,164,39,243,39,91,40,225,40,54,41,142,41,21,42,112,42,246,42,86,43,189,43,235,43,19,44,207,44,22,45,85,45,173,45,21,46,122,46,215,46,247,80,186,28,39,81,71,81,87,81,111,81,115,81,139,81,163,81,147,81,187,81,195,81,211,81,219,81,227,81,3,82,43,82,67,82,75,82,91,82,107,82,115,82,123,82,131,82,155,82,160,82,184,82,208,82,224,82,230,82,238,82,254,82,6,83,14,83,22,83,29,83,37,83,53,83,69,83,77,83,101,83,108,83,124,83,148,83,156,83,140,83,196,83,217,83,241,83,242,83,10,84,18,84,34,84,39,84,79,84,87,84,95,84,119,84,135,84,142,84,188,83,238,84,254,84,30,85,106,77,130,77,137,77,144,77,152,77,168,77,184,77,189,77,221,77,250,71,245,77,253,77,4,78,20,78,28,78,44,78,68,78,92,78,100,78,108,78,124,78,130,78,154,78,162,78,170,78,186,78,194,78,218,78,226,78,242,78,249,78,9,79,17,79,33,79,41,79,65,79,81,79,105,79,109,79,133,79,141,79,157,79,173,79,181,79,197,79,210,28,245,79,251,79,11,80,27,80,43,80,51,80,91,80,97,80,103,80,127,80,143,80,151,80,167,80,183,80,191,80,199,80,215,80,231,80,34,29,98,29,17,30,153,30,209,30,76,31,239,31,52,32,108,32,209,32,38,33,188,33,20,34,138,34,234,34,225,35,89,36,219,36,89,37,231,37,85,38,2,39,132,39,43,40,99,40,217,40,166,41,59,42,174,42,30,43,173,43,59,44,6,45,181,45,229,45,172,46,107,47,59,48,217,48,73,49,254,49,210,50,39,51,155,51,77,52,180,52,34,53,198,53,78,54,180,54,228,54,60,55,170,55,128,56,53,57,238,57,38,58,206,58,179,59,31,60,95,60,224,60,73,61,140,61,184,49,192,49,208,49,224,49,230,49,246,49,14,50,22,50,148,33,38,50,54,50,70,50,76,50,100,50,106,50,114,50,122,50,138,50,162,50,178,50,202,50,218,50,121,30,234,50,239,50,15,51,31,51,79,51,85,51,109,51,113,51,145,51,147,51,175,51,175,51,178,51,194,51,194,51,202,51,239,51,207,51,247,51,15,52,22,52,29,52,45,52,69,52,85,52,92,52,108,52,124,52,148,52,172,52,196,52,204,52,220,52,252,52,12,53,18,53,26,53,50,53,80,53,88,53,104,53,51,40,163,40,46,41,150,41,83,42,54,43,197,43,27,44,215,44,109,45,205,45,75,46,199,46,68,47,190,47,35,48,201,48,113,49,30,50,170,50,129,51,53,52,212,52,120,53,156,54,204,54,244,54,202,55,192,56,14,57,118,57,199,57,54,58,214,58,123,59,239,59,240,60,196,61,148,62,51,63,17,64,15,65,27,66,190,66,236,66,36,67,203,67,42,68,176,68,93,69,9,70,160,70,240,70,0,71,152,71,34,72,221,72,152,73,88,74,62,75,110,75,149,75,173,75,50,76,46,47,182,47,27,48,147,48,225,48,25,49,105,49,216,49,84,50,146,50,247,50,121,51,215,51,37,52,100,52,188,52,42,53,206,53,51,54,148,54,36,55,116,55,226,55,34,56,168,56,85,57,191,57,14,58,70,58,6,59,115,59,187,59,231,59,39,60,172,60,232,60,32,61,81,61,118,61,172,61,52,62,203,62,21,63,138,63,242,63,73,64,176,64,7,65,167,65,3,66,119,66,68,67,187,67,3,68,192,68,57,69,117,69,203,69,65,70,152,70,24,71,144,71,219,71,10,72,16,61,56,61,56,61,58,61,97,61,97,61,65,61,105,61,110,61,126,61,132,61,148,61,41,49,164,61,188,61,212,61,220,61,228,61,4,62,28,62,36,62,68,62,74,62,103,62,111,62,135,62,140,62,180,62,180,62,188,62,195,62,223,62,255,62,108,55,7,63,8,63,13,63,29,63,35,63,67,63,83,63,91,63,99,63,106,63,114,63,122,63,146,63,154,63,178,63,202,63,218,63,234,63,2,64,9,64,41,64,65,64,89,64,97,64,113,64,129,64,145,64,152,64,160,64,168,64,143,72,243,72,65,73,128,73,9,74,80,74,191,74,249,74,205,75,73,76,193,76,28,77,114,77,229,77,36,78,178,78,73,79,189,79,159,80,31,81,123,81,251,81,168,82,93,83,26,84,190,84,118,85,242,85,192,86,54,87,189,87,19,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,76,217,76,60,77,237,77,234,78,205,79,3,80,67,80,23,81,155,81,11,82,51,82,192,82,116,83,103,84,166,84,198,84,42,85,211,85,26,86,42,86,74,86,145,86,208,86,94,87,227,87,11,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,242,108,249,108,1,109,48,0,9,109,9,109,9,109,11,109,224,93,157,97,137,99,165,97,172,97,180,97,184,97,120,92,48,0,48,0,48,0,48,0,138,108,146,108,150,108,185,88,158,108,121,99,177,102,185,102,232,93,105,109,240,93,48,0,174,108,166,108,182,108,186,108,208,108,123,100,72,106,78,106,216,108,222,108,226,108,215,94,48,0,48,0,48,0,48,0,19,109,19,109,19,109,19,109,19,109,19,109,19,109,19,109,19,109,22,109,30,109,38,109,48,0,48,0,48,0,48,0,88,91,27,105,120,93,209,99,96,91,193,88,201,88,131,100,104,91,139,100,56,93,152,90,112,91,145,104,160,90,217,99,153,104,24,90,48,0,48,0,161,104,200,93,224,91,168,90,120,91,176,90,169,104,209,88,48,0,48,0,48,0,48,0,177,104,180,104,184,90,188,104,196,104,128,91,192,90,48,0,48,0,48,0,48,0,48,0,204,104,136,91,200,90,48,0,212,104,232,91,144,91,167,94,220,104,208,90,147,100,48,0,252,104,128,93,48,0,48,0,48,0,48,0,48,0,48,0,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,217,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,251,106,234,108,144,93,48,0,48,0,2,107,56,90,106,108,88,92,247,94,233,99,114,108,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,26,107,18,107,248,92,48,0,48,0,48,0,34,108,50,108,42,108,66,108,58,108,48,0,48,0,225,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,194,108,194,108,194,108,200,108,176,89,233,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,97,208,97,208,97,208,97,208,97,208,97,208,97,224,97,232,97,239,97,246,97,241,88,249,88,255,88,254,97,6,98,14,98,22,98,7,89,48,0,48,0,48,0,48,0,241,99,114,97,114,97,130,97,51,100,48,0,48,0,48,0,48,0,243,100,43,101,246,100,46,101,254,100,6,101,65,101,14,101,22,101,17,101,30,101,45,101,15,101,243,100,43,101,38,101,46,101,41,101,49,101,44,101,14,101,249,101,255,95,39,96,7,96,47,96,15,96,55,96,23,96,63,96,31,96,155,100,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,15,89,18,89,15,89,25,89,32,89,40,89,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,10,107,10,107,10,107,10,107,10,107,10,107,48,89,48,0,42,107,34,107,64,90,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,246,99,254,99,30,98,48,0,48,0,6,100,38,98,48,0,48,0,48,0,48,0,48,0,48,0,33,103,57,103,113,103,49,103,41,103,65,103,48,0,87,95,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,89,15,89,15,89,15,89,48,0,48,0,48,0,48,0,15,89,15,89,15,89,15,89,15,89,15,89,15,89,64,89,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,46,109,49,109,184,93,192,97,65,109,145,99,48,0,153,99,248,93,216,93,48,0,48,0,173,109,27,100,14,100,19,100,192,89,32,92,112,93,255,94,161,99,48,0,81,109,152,89,57,109,192,93,169,99,177,99,223,94,185,99,48,0,48,0,163,106,171,106,179,106,48,0,147,106,155,106,139,106,129,99,179,105,160,89,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,113,99,89,109,32,90,48,0,48,0,187,100,193,99,168,89,48,0,48,0,97,109,201,99,73,109,244,104,216,90,48,0,48,0,48,0,82,108,74,108,225,99,228,104,152,91,224,90,48,0,48,0,236,104,240,91,231,94,83,105,232,90,191,94,91,105,248,91,199,94,90,108,98,108,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,35,105,160,91,136,93,207,94,99,105,168,91,48,0,48,0,4,105,11,105,240,90,19,105,0,92,147,100,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,93,48,0,48,0,48,0,48,0,48,0,26,108,131,95,239,94,145,102,169,102,48,0,48,0,48,0,48,0,48,0,48,0,122,108,96,92,200,97,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,108,104,92,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,121,109,132,109,132,109,124,109,140,109,140,109,140,109,140,109,140,109,142,109,48,0,48,0,48,0,195,100,35,100,43,100,0,94,150,109,150,109,150,109,150,109,150,109,150,109,157,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,46,98,51,98,55,98,55,98,71,98,79,98,87,98,92,98,32,94,48,94,73,101,119,98,227,100,195,95,48,0,4,97,194,107,2,110,143,94,127,98,48,0,48,0,48,0,48,0,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,214,98,214,98,214,98,214,98,214,98,214,98,216,98,224,98,232,98,232,98,232,98,235,98,243,98,243,98,245,98,253,98,5,99,9,99,15,99,23,99,29,99,34,99,48,0,48,0,166,98,166,98,166,98,168,98,175,98,175,98,180,98,184,98,100,98,100,98,103,98,111,98,192,98,198,98,206,98,48,0,192,96,192,96,192,96,192,96,208,96,213,96,219,96,163,100,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,107,249,107,249,107,249,107,249,107,249,107,249,107,249,107,250,107,48,0,234,107,241,107,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,223,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,188,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,198,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,234,109,48,0,214,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,110,122,110,106,110,146,110,162,110,178,110,98,110,202,110,210,110,218,110,242,110,250,110,130,110,18,111,26,111,170,110,50,111,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,14,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,5,0,4,5,5,92,7,5,5,136,13,5,5,140,13,5,5,134,13,5,5,142,13,5,5,139,12,5,5,114,10,5,5,16,12,5,5,91,12,43,5,0,42,5,5,138,9,5,5,135,12,0,0,0,0,5,5,95,12,5,5,12,12,5,5,83,12,5,5,123,12,36,5,0,23,36,5,0,25,5,5,6,12,16,5,42,96,5,5,118,10,200,0,0,0,5,5,20,12,36,5,0,21,43,5,0,70,5,5,140,9,197,35,69,0,197,99,68,0,197,227,83,0,5,5,100,7,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,108,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,192,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,108,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,196,164,156,42,196,164,5,42,196,140,156,42,196,140,5,42,196,162,156,42,196,162,5,42,196,136,156,46,196,136,5,46,196,142,156,46,196,142,5,46,196,156,156,46,196,156,5,46,196,144,156,46,196,144,5,46,196,144,156,48,196,144,5,48,196,178,156,48,196,178,5,48,196,164,156,50,196,164,5,50,196,140,156,50,196,140,5,50,196,156,156,50,196,156,5,50,196,162,156,50,196,162,5,50,196,144,156,50,196,144,5,50,196,142,156,54,196,142,5,54,196,140,156,54,196,140,5,54,196,156,156,54,196,156,5,54,196,160,156,54,196,160,5,54,196,142,156,56,196,142,5,56,196,178,156,56,196,178,5,56,196,154,156,58,196,154,5,58,196,164,156,58,196,164,5,58,196,140,156,58,196,140,5,58,196,162,156,58,196,162,5,58,196,156,156,58,5,5,6,59,197,66,141,0,197,2,141,0,196,142,156,60,196,142,5,60,196,160,156,62,196,160,5,62,5,5,16,75,196,136,156,64,196,136,5,64,196,160,156,64,196,160,5,64,196,144,156,64,196,144,5,64,197,2,149,0,197,194,148,0,196,178,156,64,196,178,5,64,196,136,156,68,196,136,5,68,196,160,156,68,196,160,5,68,196,144,156,68,196,144,5,68,197,162,212,0,158,5,30,69,5,5,30,69,196,164,156,70,196,164,5,70,196,140,156,70,196,140,5,70,196,152,156,70,196,152,5,70,197,2,179,0,197,194,178,0,196,136,156,76,196,136,5,76,196,160,156,76,196,160,5,76,196,144,156,76,196,144,5,76,196,136,156,78,196,136,5,78,196,142,156,78,196,142,5,78,196,160,156,78,196,160,5,78,196,144,156,78,196,144,5,78,196,160,156,80,196,160,5,80,196,144,156,80,196,144,5,80,160,5,8,81,5,5,8,81,196,154,156,82,196,154,5,82,196,164,156,82,196,164,5,82,196,140,156,82,196,140,5,82,196,146,156,82,196,146,5,82,196,152,156,82,196,152,5,82,196,162,156,82,196,162,5,82,196,142,160,86,196,142,5,86,196,142,156,90,196,142,5,90,196,150,156,90,196,136,156,92,196,136,5,92,196,156,156,92,196,156,5,92,196,144,156,92,196,144,5,92,5,120,0,78,5,5,8,45,160,5,20,45,160,5,22,45,5,5,22,45,160,5,74,93,5,5,74,93,160,5,30,71,160,5,14,47,5,5,14,47,160,5,16,49,160,5,18,49,160,5,22,49,5,5,22,49,197,226,211,0,160,5,20,51,155,5,24,51,144,5,28,51,160,5,16,53,5,5,16,53,160,5,16,55,160,5,24,55,5,5,8,57,160,5,24,59,160,5,16,59,160,5,10,63,5,5,10,63,5,5,14,65,5,5,42,65,160,5,40,83,160,5,14,69,5,5,16,69,160,5,50,71,196,190,156,70,196,190,5,70,160,5,26,55,5,5,26,55,160,5,16,73,5,5,16,73,174,5,8,77,160,5,70,93,5,5,70,93,158,5,22,79,5,5,28,79,5,5,14,81,160,5,16,81,5,5,16,81,160,5,18,81,196,190,156,82,196,190,5,82,160,5,48,83,160,5,12,85,160,5,10,91,5,5,10,91,160,5,8,93,5,5,8,93,158,5,26,93,160,5,30,93,5,5,30,93,5,5,34,93,5,5,62,93,160,5,72,93,5,5,72,93,197,34,195,0,5,5,44,93,5,5,112,93,5,5,114,93,5,5,116,93,5,5,118,93,197,67,123,0,197,227,122,0,197,131,122,0,197,194,149,0,197,130,149,0,197,66,149,0,197,66,162,0,197,2,162,0,197,194,161,0,196,144,156,42,196,144,5,42,196,144,156,58,196,144,5,58,196,144,156,70,196,144,5,70,196,144,156,82,196,144,5,82,197,131,199,0,197,35,199,0,197,67,197,0,197,227,196,0,197,195,198,0,197,99,198,0,197,3,198,0,197,163,197,0,5,5,20,51,197,195,102,0,197,99,102,0,197,131,103,0,197,35,103,0,197,3,110,0,197,163,109,0,160,5,12,55,5,5,12,55,196,144,156,54,196,144,5,54,196,144,156,62,196,144,5,62,196,162,156,70,196,162,5,70,197,35,172,0,197,195,171,0,197,98,212,0,197,34,212,0,196,144,5,60,197,66,122,0,197,2,122,0,197,194,121,0,196,136,156,54,196,136,5,54,160,5,8,57,160,5,44,93,196,138,156,68,196,138,5,68,197,131,101,0,197,35,101,0,197,67,109,0,197,227,108,0,197,99,171,0,197,3,171,0,196,184,156,42,196,184,5,42,196,188,156,42,196,188,5,42,196,184,156,50,196,184,5,50,196,188,156,50,196,188,5,50,196,184,156,58,196,184,5,58,196,188,156,58,196,188,5,58,196,184,156,70,196,184,5,70,196,188,156,70,196,188,5,70,196,184,156,76,196,184,5,76,196,188,156,76,196,188,5,76,196,184,156,82,196,184,5,82,196,188,156,82,196,188,5,82,196,202,156,78,196,202,5,78,196,202,156,80,196,202,5,80,160,5,16,91,5,5,16,91,196,144,156,56,196,144,5,56,160,5,16,69,5,5,24,49,160,5,58,71,5,5,58,71,160,5,14,93,5,5,14,93,196,156,156,42,196,156,5,42,196,160,156,50,196,160,5,50,197,163,167,0,197,67,167,0,197,227,169,0,197,131,169,0,196,156,156,70,196,156,5,70,197,163,170,0,197,67,170,0,196,164,156,90,196,164,5,90,5,5,34,65,5,5,24,69,5,5,20,81,5,5,6,61,197,194,119,0,197,98,184,0,160,5,8,43,160,5,8,47,5,5,8,47,160,5,14,65,160,5,10,81,5,5,16,79,5,5,20,93,160,5,78,93,5,5,78,93,160,5,8,45,160,5,20,83,160,5,20,85,160,5,12,51,5,5,12,51,160,5,10,61,5,5,10,61,160,5,14,75,5,5,14,75,160,5,16,77,5,5,16,77,160,5,8,91,5,5,8,91,5,5,20,43,5,5,22,43,5,5,28,43,5,5,20,45,5,5,30,71,5,5,16,47,5,5,16,49,5,5,18,49,5,5,32,51,5,5,24,51,5,5,34,51,5,5,28,51,5,5,36,51,5,5,42,51,5,5,44,51,5,5,14,61,5,5,16,55,5,5,6,55,5,5,10,55,5,5,24,55,5,5,48,51,5,5,34,83,5,5,12,57,5,5,22,57,5,5,16,59,5,5,24,59,5,5,8,59,5,5,18,65,5,5,24,65,5,5,30,65,5,5,38,65,5,5,40,83,5,5,46,83,5,5,12,67,5,5,14,69,5,5,22,69,5,5,6,69,5,5,50,71,5,5,12,71,5,5,54,71,5,5,24,73,5,5,20,77,5,5,24,77,5,5,28,77,5,5,32,77,5,5,34,77,5,5,38,77,5,5,42,77,5,5,8,77,5,5,54,77,5,5,14,79,5,5,22,79,5,5,16,61,5,5,30,79,5,5,34,79,5,5,24,81,5,5,18,81,5,5,20,83,5,5,48,83,5,5,12,85,5,5,20,85,5,5,12,87,5,5,44,65,5,5,6,91,5,5,16,93,5,5,18,93,5,5,26,93,5,5,36,93,5,5,76,93,5,5,94,93,5,5,110,93,5,5,120,93,5,5,122,93,5,5,6,45,5,5,46,51,5,5,18,55,5,5,6,57,5,5,12,61,5,5,20,63,5,5,6,65,5,5,12,75,5,5,106,93,5,5,108,93,197,194,121,0,197,34,124,0,197,226,123,0,197,34,195,0,197,162,195,0,197,162,193,0,197,162,132,0,197,98,152,0,197,66,153,0,5,5,124,93,5,5,126,93,5,5,36,83,5,5,38,83,43,5,0,56,46,5,12,57,43,5,0,60,43,5,0,76,32,5,20,77,32,5,28,77,32,5,54,77,52,5,0,86,43,5,0,90,5,5,24,12,5,5,28,12,5,5,24,57,5,5,82,93,5,5,26,57,5,5,86,93,5,5,96,93,5,5,80,93,5,5,98,93,193,2,30,12,193,9,30,12,193,16,30,12,193,23,30,12,5,5,32,12,5,5,34,12,5,5,36,12,5,5,38,12,5,5,40,12,5,5,42,12,5,5,44,12,5,5,46,12,5,5,48,12,5,5,50,12,5,5,80,13,5,5,82,13,193,2,52,12,193,9,52,12,193,16,52,12,193,23,52,12,193,44,52,12,193,51,52,12,193,2,14,12,193,9,14,12,193,2,18,12,193,2,22,12,5,5,8,12,193,9,18,12,193,58,52,12,193,65,52,12,46,5,24,55,43,5,0,64,43,5,0,78,43,5,0,88,32,5,94,93,193,72,52,12,193,79,52,12,193,86,52,12,193,93,52,12,193,100,52,12,193,107,52,12,193,114,52,12,5,5,54,12,193,2,56,12,5,5,84,93,193,9,56,12,193,16,56,12,193,23,56,12,193,30,56,12,193,37,56,12,193,44,56,12,193,51,56,12,193,58,56,12,193,65,56,12,193,72,56,12,193,79,56,12,193,86,56,12,193,93,56,12,193,100,56,12,193,107,56,12,193,114,56,12,193,121,56,12,5,138,0,0,5,136,0,0,5,142,0,0,5,154,0,0,5,164,0,0,5,180,0,0,5,140,0,0,5,156,0,0,5,150,0,0,5,182,0,0,5,146,0,0,5,152,0,0,5,144,0,0,5,166,0,0,5,166,0,0,5,184,0,0,5,186,0,0,5,188,0,0,5,166,0,0,5,132,0,0,5,134,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,190,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,192,0,0,5,194,0,0,5,196,0,0,5,198,0,0,5,200,0,0,5,202,0,0,5,160,0,0,5,162,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,204,0,0,5,206,0,0,5,168,0,0,5,208,0,0,5,210,0,0,5,130,0,0,5,168,0,0,5,212,0,0,5,178,0,0,5,170,0,0,5,170,0,0,5,158,0,0,5,214,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,138,0,0,5,136,0,0,5,148,0,0,5,132,0,0,197,34,0,0,5,216,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,0,0,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,218,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,220,0,0,5,222,0,0,5,168,0,0,19,5,0,42,19,5,0,50,19,5,0,58,19,5,0,70,19,5,0,82,19,5,0,46,19,5,0,48,19,5,0,56,19,5,0,66,19,5,0,76,19,5,0,80,19,5,0,84,19,5,0,88,160,5,26,96,5,5,26,96,160,5,92,96,5,5,92,96,5,5,24,12,5,5,26,12,160,5,20,96,5,5,20,96,255,255,255,255,255,255,255,255,16,5,32,96,5,5,70,96,5,5,68,96,5,5,72,96,5,5,42,7,160,5,34,96,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,12,197,98,49,0,197,34,226,0,200,0,0,0,197,2,234,0,197,2,248,0,197,98,0,1,255,255,255,255,197,2,11,1,255,255,255,255,197,226,16,1,197,66,34,1,197,99,2,1,166,5,6,96,158,5,8,96,152,5,10,96,155,5,14,96,166,5,16,96,158,5,24,96,158,5,28,96,158,5,30,96,166,5,32,96,160,5,36,96,158,5,38,96,160,5,42,96,158,5,44,96,158,5,46,96,158,5,48,96,166,5,50,96,160,5,60,96,255,255,255,255,158,5,66,96,158,5,74,96,155,5,76,96,158,5,78,96,152,5,80,96,158,5,82,96,155,5,86,96,197,34,2,1,197,226,18,1,197,226,225,0,197,194,233,0,197,194,247,0,197,34,0,1,197,99,19,1,5,5,6,96,5,5,8,96,5,5,10,96,5,5,14,96,5,5,16,96,5,5,24,96,5,5,28,96,5,5,30,96,5,5,32,96,5,5,36,96,5,5,38,96,5,5,42,96,5,5,44,96,5,5,46,96,5,5,48,96,5,5,50,96,5,5,60,96,51,5,66,96,5,5,66,96,5,5,74,96,5,5,76,96,5,5,78,96,5,5,80,96,5,5,82,96,5,5,86,96,197,226,1,1,197,162,18,1,197,194,10,1,197,162,16,1,197,2,34,1,197,99,4,1,16,5,8,96,16,5,30,96,166,5,76,96,197,34,17,1,197,34,19,1,16,5,78,96,16,5,50,96,197,3,4,1,160,5,58,96,5,5,58,96,160,5,22,96,5,5,22,96,158,5,18,96,5,5,18,96,160,5,56,96,5,5,56,96,160,5,90,96,5,5,90,96,160,5,160,96,5,5,160,96,160,5,170,96,5,5,170,96,160,5,172,96,5,5,172,96,160,5,178,96,5,5,178,96,160,5,192,96,5,5,192,96,160,5,198,96,5,5,198,96,160,5,206,96,5,5,206,96,16,5,36,96,16,5,60,96,16,5,66,96,5,5,34,96,165,5,30,96,16,5,16,96,193,30,117,12,160,5,94,96,5,5,94,96,165,5,66,96,160,5,54,96,5,5,54,96,5,5,64,96,160,5,70,96,160,5,68,96,160,5,72,96,197,130,39,1,197,130,40,1,160,5,32,97,197,2,39,1,174,5,42,97,160,5,58,97,174,5,74,97,197,66,44,1,160,5,80,97,160,5,106,97,160,5,134,97,160,5,170,97,197,194,44,1,197,130,42,1,197,130,46,1,160,5,216,97,174,5,6,97,174,5,12,97,174,5,14,97,174,5,16,97,174,5,26,97,174,5,40,97,174,5,44,97,174,5,50,97,201,102,1,0,160,5,78,97,174,5,84,97,174,5,98,97,174,5,114,97,158,5,120,97,158,5,138,97,174,5,142,97,174,5,150,97,174,5,156,97,174,5,162,97,174,5,172,97,174,5,180,97,174,5,182,97,174,5,192,97,174,5,200,97,174,5,218,97,174,5,222,97,158,5,226,97,174,5,230,97,158,5,232,97,160,5,238,97,174,5,240,97,160,5,244,97,5,5,6,97,5,5,12,97,5,5,14,97,5,5,16,97,5,5,26,97,5,5,40,97,5,5,44,97,5,5,50,97,201,70,2,0,5,5,78,97,5,5,84,97,5,5,98,97,5,5,114,97,5,5,120,97,5,5,138,97,5,5,142,97,5,5,150,97,5,5,156,97,5,5,162,97,5,5,172,97,5,5,180,97,5,5,182,97,5,5,192,97,5,5,200,97,5,5,218,97,5,5,222,97,5,5,226,97,5,5,230,97,5,5,232,97,5,5,238,97,5,5,240,97,5,5,244,97,197,66,39,1,197,66,40,1,5,5,32,97,197,194,38,1,5,5,42,97,5,5,58,97,5,5,74,97,197,194,43,1,5,5,80,97,5,5,106,97,5,5,134,97,5,5,170,97,197,130,44,1,197,66,42,1,197,66,46,1,5,5,216,97,198,225,155,0,193,16,190,97,198,65,157,0,193,2,236,97,198,33,158,0,193,9,246,97,198,97,158,0,193,16,246,97,198,1,159,0,193,44,246,97,198,193,158,0,193,30,246,97,198,97,159,0,193,58,246,97,198,129,159,0,193,65,246,97,198,161,159,0,193,72,246,97,198,225,159,0,193,79,246,97,198,1,160,0,193,86,246,97,198,34,160,0,197,194,49,1,198,33,155,0,193,9,178,97,198,97,156,0,193,44,190,97,198,65,156,0,193,37,190,97,198,1,156,0,193,23,190,97,160,5,148,97,5,5,148,97,193,2,85,12,5,224,0,0,5,166,0,0,5,134,0,0,5,132,0,0,5,166,0,0,0,0,0,0,0,0,0,0,160,5,72,97,5,5,72,97,160,5,234,97,5,5,234,97,160,5,152,97,5,5,152,97,160,112,16,97,5,112,16,97,160,5,18,97,5,5,18,97,160,5,22,97,5,5,22,97,160,5,48,97,5,5,48,97,160,5,38,97,5,5,38,97,160,5,86,97,5,5,86,97,160,5,94,97,5,5,94,97,160,5,92,97,5,5,92,97,160,5,90,97,5,5,90,97,160,5,126,97,5,5,126,97,160,5,132,97,5,5,132,97,160,5,146,97,5,5,146,97,160,5,248,97,5,5,248,97,160,5,160,97,5,5,160,97,160,5,166,97,5,5,166,97,160,5,174,97,5,5,174,97,160,5,176,97,5,5,176,97,160,5,186,97,5,5,186,97,160,5,196,97,5,5,196,97,160,5,204,97,5,5,204,97,160,5,208,97,5,5,208,97,160,5,188,97,5,5,188,97,160,5,212,97,5,5,212,97,160,5,214,97,5,5,214,97,160,5,252,97,197,2,41,1,197,194,40,1,160,5,88,97,5,5,88,97,160,5,102,97,5,5,102,97,160,5,128,97,5,5,128,97,160,5,124,97,5,5,124,97,160,5,206,97,5,5,206,97,160,5,116,97,5,5,116,97,5,5,252,97,197,130,37,1,197,66,37,1,197,2,38,1,197,194,37,1,160,5,10,97,5,5,10,97,197,2,40,1,197,194,39,1,160,5,8,97,5,5,8,97,197,130,38,1,197,66,38,1,197,130,41,1,197,66,41,1,197,2,42,1,197,194,41,1,160,5,62,97,5,5,62,97,197,130,43,1,197,66,43,1,197,2,43,1,197,194,42,1,197,66,45,1,197,2,45,1,160,5,140,97,5,5,140,97,197,194,45,1,197,130,45,1,197,130,49,1,197,66,49,1,197,2,48,1,197,194,47,1,197,2,47,1,197,194,46,1,197,130,47,1,197,66,47,1,197,130,48,1,197,66,48,1,160,5,24,97,5,5,24,97,197,2,49,1,197,194,48,1,160,5,20,97,5,5,20,97,198,65,155,0,193,2,184,97,198,97,155,0,193,9,184,97,160,5,28,97,5,5,28,97,160,5,36,97,5,5,36,97,160,5,54,97,5,5,54,97,160,5,66,97,5,5,66,97,160,5,110,97,5,5,110,97,160,5,136,97,5,5,136,97,160,5,158,97,5,5,158,97,198,193,154,0,193,9,164,97,198,193,153,0,193,2,56,97,198,97,154,0,193,9,104,97,160,5,112,97,5,5,112,97,160,5,154,97,5,5,154,97,198,225,157,0,193,2,246,97,198,33,154,0,193,9,96,97,160,5,250,97,5,5,250,97,198,1,154,0,193,2,96,97,198,129,154,0,193,16,104,97,160,5,130,97,5,5,130,97,160,5,144,97,5,5,144,97,198,129,155,0,193,2,190,97,160,5,122,97,5,5,122,97,198,129,153,0,193,2,46,97,198,193,156,0,193,2,202,97,198,65,154,0,193,2,104,97,255,255,255,255,160,5,6,100,160,5,10,100,160,5,12,100,160,5,14,100,174,5,16,100,160,5,18,100,160,5,20,100,160,5,22,100,160,5,24,100,160,5,26,100,174,5,28,100,160,5,30,100,174,5,32,100,160,5,34,100,160,5,36,100,160,5,38,100,160,5,40,100,160,5,42,100,160,5,44,100,174,5,46,100,160,5,48,100,174,5,52,100,160,5,54,100,160,5,56,100,160,5,58,100,160,5,60,100,160,5,62,100,160,5,64,100,160,5,66,100,174,5,68,100,160,5,70,100,160,5,72,100,160,5,74,100,174,5,76,100,160,5,78,100,160,5,80,100,160,5,82,100,160,5,84,100,255,255,255,255,255,255,255,255,5,5,86,100,5,5,8,11,5,5,10,11,5,5,94,7,5,5,18,7,5,5,104,7,5,5,12,11,5,5,8,100,5,5,6,100,5,5,10,100,5,5,12,100,5,5,14,100,5,5,16,100,5,5,18,100,5,5,20,100,5,5,22,100,5,5,24,100,5,5,26,100,5,5,28,100,5,5,30,100,5,5,32,100,5,5,34,100,5,5,36,100,5,5,38,100,5,5,40,100,5,5,42,100,5,5,44,100,5,5,46,100,5,5,48,100,5,5,52,100,5,5,54,100,5,5,56,100,5,5,58,100,5,5,60,100,5,5,62,100,5,5,64,100,5,5,66,100,5,5,68,100,5,5,70,100,5,5,72,100,5,5,74,100,5,5,76,100,5,5,78,100,5,5,80,100,5,5,82,100,5,5,84,100,197,2,50,1,5,5,50,100,5,5,56,7,5,5,16,5,255,255,255,255,255,255,255,255,193,9,85,12,193,16,85,12,5,5,144,13,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,5,35,226,194,5,68,226,194,5,101,226,194,5,134,226,194,5,167,226,194,5,200,226,194,5,233,226,194,5,12,227,194,5,45,227,194,5,78,227,194,5,78,227,194,5,111,227,194,5,210,227,0,0,0,0,5,5,14,11,194,5,243,227,5,5,16,11,194,5,177,227,194,5,144,227,5,5,18,11,0,0,0,0,0,0,0,0,5,5,20,11,194,5,45,227,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,101,5,5,8,101,5,5,10,101,5,5,12,101,5,5,14,101,5,5,16,101,5,5,18,101,5,5,20,101,5,5,22,101,5,5,24,101,46,5,26,101,5,5,26,101,5,5,28,101,46,5,30,101,5,5,30,101,32,5,32,101,5,5,32,101,5,5,34,101,5,5,36,101,32,5,38,101,5,5,38,101,32,5,40,101,5,5,40,101,5,5,42,101,5,5,44,101,5,5,46,101,5,5,48,101,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,196,55,1,197,66,54,1,197,130,54,1,197,66,56,1,5,5,22,11,5,5,24,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,44,151,12,193,58,151,12,193,23,85,12,5,5,158,10,5,5,162,10,5,5,146,13,5,5,20,7,5,5,22,7,193,44,85,12,193,51,85,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,44,7,0,0,0,0,255,255,255,255,5,5,58,7,5,5,106,7,193,30,248,102,5,5,6,102,5,5,8,102,5,5,10,102,5,5,16,102,5,5,18,102,5,5,22,102,201,38,3,0,5,5,30,102,5,5,40,102,5,5,42,102,5,5,44,102,5,5,58,102,5,5,72,102,5,5,74,102,5,5,84,102,5,5,86,102,5,5,110,102,5,5,112,102,5,5,134,102,5,5,136,102,5,5,146,102,5,5,148,102,5,5,158,102,5,5,160,102,5,5,166,102,5,5,168,102,193,51,194,102,193,58,194,102,193,9,248,102,193,16,248,102,193,23,248,102,0,0,0,0,5,5,174,102,5,5,178,102,5,5,182,102,5,5,196,102,5,5,200,102,5,5,204,102,5,5,214,102,201,6,5,0,5,5,236,102,201,230,5,0,194,5,164,229,194,5,9,230,194,5,108,230,194,5,207,230,194,5,85,231,194,5,184,231,194,5,29,232,194,5,62,232,194,5,95,232,194,5,128,232,194,5,161,232,194,5,227,232,194,5,6,233,194,5,39,233,194,5,105,233,194,5,138,233,194,5,171,233,194,5,204,233,194,5,237,233,194,5,16,234,194,5,194,232,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,154,10,5,5,24,7,5,5,26,7,5,5,134,10,5,5,28,102,193,72,176,102,194,5,59,235,5,5,14,102,5,5,12,102,193,2,20,102,32,5,6,102,197,226,69,1,197,98,183,1,197,162,183,1,197,162,184,1,5,5,46,102,5,5,48,102,5,5,32,102,5,5,50,102,5,5,52,102,5,5,34,102,5,5,54,102,5,5,36,102,5,5,76,102,5,5,78,102,5,5,60,102,5,5,62,102,5,5,80,102,5,5,64,102,5,5,68,102,5,5,88,102,5,5,90,102,5,5,92,102,5,5,94,102,5,5,96,102,5,5,98,102,5,5,102,102,5,5,104,102,5,5,106,102,5,5,114,102,5,5,116,102,5,5,118,102,5,5,120,102,5,5,122,102,5,5,124,102,5,5,126,102,5,5,128,102,5,5,130,102,5,5,138,102,5,5,140,102,5,5,142,102,5,5,150,102,5,5,154,102,5,5,162,102,5,5,170,102,193,2,176,102,193,9,176,102,193,23,176,102,193,30,176,102,193,44,176,102,193,51,176,102,193,2,180,102,193,16,180,102,5,5,184,102,5,5,186,102,5,5,188,102,193,2,190,102,193,16,190,102,193,23,190,102,5,5,192,102,193,9,194,102,193,16,194,102,193,23,194,102,193,30,194,102,193,37,194,102,193,2,198,102,193,9,198,102,193,16,198,102,193,23,198,102,193,9,212,102,5,5,206,102,193,9,208,102,5,5,210,102,193,2,212,102,5,5,216,102,5,5,66,102,197,34,183,1,5,5,218,102,197,226,182,1,193,2,220,102,5,5,224,102,193,2,226,102,193,9,226,102,5,5,228,102,5,5,230,102,5,5,232,102,193,2,234,102,193,9,234,102,5,5,240,102,5,5,242,102,5,5,244,102,193,23,234,102,5,5,246,102,193,2,248,102,5,5,250,102,197,194,190,1,5,5,8,9,193,16,220,102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,58,85,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,5,222,102,16,5,238,102,0,0,0,0,0,0,0,0,193,65,85,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,2,108,102,193,2,132,102,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,2,144,102,5,5,156,102,193,9,172,102,5,112,6,102,5,112,200,102,193,9,220,102,193,28,53,9,193,2,10,9,193,9,10,9,193,2,60,7,193,9,60,7,193,16,60,7,193,23,60,7,193,30,60,7,193,37,60,7,5,5,108,7,193,2,26,11,193,9,26,11,193,16,26,11,193,23,26,11,255,255,255,255,0,0,0,0,193,9,4,103,194,5,92,235,5,5,6,103,5,5,8,103,5,112,8,103,5,5,12,103,5,5,10,103,193,2,14,103,193,9,14,103,193,16,14,103,193,30,14,103,5,5,16,103,5,112,16,103,193,2,18,103,193,9,18,103,193,16,18,103,193,30,18,103,193,37,18,103,193,44,18,103,5,5,20,103,32,5,20,103,5,5,22,103,5,5,24,103,5,112,24,103,193,9,26,103,193,16,26,103,193,23,26,103,193,30,26,103,193,37,26,103,5,112,6,103,5,120,8,103,5,112,12,103,194,5,125,235,194,5,158,235,194,5,191,235,194,5,224,235,194,5,3,236,194,5,36,236,194,5,69,236,194,5,102,236,194,5,135,236,194,5,168,236,194,5,201,236,194,5,234,236,194,5,13,237,194,5,46,237,194,5,79,237,194,5,112,237,0,0,0,0,5,166,0,0,5,168,0,0,0,0,0,0,0,0,0,0,5,166,0,0,5,168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,193,23,14,103,193,23,18,103,193,2,26,103,193,2,38,102,193,9,38,102,193,16,38,102,193,23,38,102,193,30,38,102,193,37,38,102,193,51,38,102,193,2,82,102,193,9,82,102,193,9,108,102,193,16,108,102,193,9,132,102,193,9,144,102,193,16,172,102,193,23,172,102,193,30,172,102,193,58,176,102,193,65,176,102,193,44,194,102,193,65,194,102,193,72,194,102,193,2,202,102,193,9,202,102,193,16,212,102,193,23,212,102,193,30,212,102,193,30,198,102,193,16,132,102,193,23,132,102,193,16,144,102,193,16,82,102,193,23,82,102,193,23,144,102,193,30,132,102,193,30,82,102,193,9,20,102,193,16,20,102,193,37,248,102,193,44,248,102,193,51,248,102,193,30,234,102,193,37,234,102,193,2,252,102,193,9,252,102,193,37,82,102,193,30,144,102,193,37,144,102,193,9,190,102,5,5,30,103,5,5,36,103,5,5,38,103,5,5,40,103,5,5,44,103,5,5,46,103,5,5,48,103,5,5,50,103,5,5,56,103,5,5,60,103,5,5,62,103,5,5,64,103,5,5,68,103,5,5,76,103,5,5,78,103,5,5,82,103,5,5,84,103,5,5,92,103,5,5,94,103,5,5,96,103,5,5,98,103,5,5,100,103,5,5,102,103,5,5,104,103,5,5,70,103,5,5,32,103,5,5,34,103,5,5,66,103,5,5,42,103,5,5,86,103,5,5,88,103,5,5,90,103,5,5,72,103,5,5,74,103,5,5,52,103,5,5,54,103,5,5,80,103,5,5,58,103,5,5,108,103,5,5,110,103,5,5,112,103,5,5,114,103,5,5,116,103,5,5,118,103,5,5,120,103,5,5,122,103,5,5,124,103,5,5,126,103,5,5,128,103,5,5,106,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,9,130,103,193,16,130,103,193,23,130,103,193,30,130,103,193,37,130,103,193,44,130,103,193,51,130,103,193,58,130,103,193,65,130,103,193,72,130,103,193,79,130,103,193,86,130,103,5,5,132,103,5,5,134,103,5,5,136,103,5,5,138,103,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,5,112,132,103,5,112,134,103,5,112,138,103,194,5,145,237,194,5,178,237,194,5,211,237,194,5,244,237,194,5,23,238,194,5,56,238,194,5,89,238,194,5,122,238,194,5,155,238,193,100,140,103,193,107,140,103,193,191,85,12,193,35,53,9,5,5,28,7,193,2,96,7,0,0,0,0,255,255,255,255,255,255,255,255,5,168,0,0,193,2,148,13,193,9,148,13,32,5,136,13,32,5,140,13,32,5,135,12,32,5,12,12,32,5,139,12,32,5,142,13,32,5,192,13,255,255,255,255,160,5,172,12,160,5,99,12,160,5,103,12,160,5,101,12,160,5,105,12,160,5,180,12,160,5,185,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,193,58,78,13,5,5,253,255,5,5,0,2,5,5,255,255,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,197,67,167,1,197,67,144,1,197,35,72,1,197,131,153,1,197,227,134,1,197,35,123,1,197,195,102,1,197,35,174,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,201,192,184,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,2,251,193,6,2,251,193,8,2,251,193,10,2,251,193,12,2,251,193,14,2,251,193,16,2,251,193,28,2,251,193,30,2,251,193,32,2,251,193,34,2,251,193,36,2,251,193,38,2,251,193,76,2,251,193,78,2,251,193,80,2,251,193,82,2,251,193,84,2,251,193,86,2,251,193,88,2,251,193,124,2,251,193,126,2,251,193,128,2,251,193,90,2,251,193,130,2,251,193,132,2,251,193,134,2,251,193,136,2,251,193,138,2,251,193,140,2,251,193,186,2,251,193,188,2,251,193,194,224,253,193,198,224,253,193,200,224,253,193,202,224,253,193,204,224,253,193,208,224,253,193,210,224,253,193,214,224,253,193,216,224,253,193,122,224,253,193,242,224,253,193,254,224,253,193,2,225,253,193,4,225,253,193,16,225,253,193,18,225,253,193,20,225,253,193,22,225,253,193,26,225,253,193,28,225,253,193,34,225,253,193,36,225,253,193,38,225,253,193,96,57,251,193,108,83,251,193,4,2,251,193,52,2,251,193,198,131,251,193,212,147,251,193,208,33,251,255,255,255,255,255,255,255,255,193,18,2,251,193,20,2,251,193,22,2,251,193,44,2,251,193,46,2,251,193,48,2,251,193,50,2,251,193,92,2,251,193,94,2,251,193,96,2,251,193,98,2,251,193,100,2,251,193,102,2,251,193,144,2,251,193,146,2,251,193,148,2,251,193,150,2,251,193,152,2,251,193,154,2,251,193,156,2,251,193,158,2,251,193,160,2,251,193,162,2,251,193,164,2,251,193,200,2,251,193,202,2,251,193,204,2,251,193,32,103,251,193,206,2,251,193,64,49,251,193,208,2,251,193,210,2,251,193,6,225,253,193,32,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,24,2,251,193,60,2,251,193,62,2,251,193,64,2,251,193,66,2,251,193,108,2,251,193,110,2,251,193,112,2,251,193,114,2,251,193,116,2,251,193,170,2,251,193,172,2,251,193,174,2,251,193,176,2,251,193,178,2,251,193,220,2,251,193,26,2,251,193,68,2,251,193,70,2,251,193,72,2,251,193,74,2,251,193,118,2,251,193,120,2,251,193,122,2,251,193,180,2,251,193,182,2,251,193,184,2,251,193,242,2,251,193,46,3,251,193,90,3,251,193,118,3,251,193,120,3,251,193,122,3,251,193,124,3,251,193,152,3,251,193,154,3,251,193,156,3,251,193,158,3,251,193,206,3,251,193,208,3,251,193,210,3,251,193,240,3,251,193,242,3,251,193,6,4,251,193,8,4,251,193,22,4,251,193,46,4,251,193,56,4,251,193,146,7,251,193,184,7,251,193,202,7,251,193,204,7,251,193,206,7,251,193,248,7,251,193,252,7,251,193,8,8,251,193,18,8,251,193,30,8,251,193,38,8,251,193,48,8,251,193,74,8,251,193,82,8,251,193,84,8,251,193,86,8,251,193,40,2,251,193,90,8,251,193,92,8,251,193,94,8,251,193,96,8,251,193,98,8,251,193,100,8,251,193,106,8,251,193,110,8,251,193,112,8,251,193,114,8,251,193,132,8,251,193,134,8,251,193,146,8,251,193,148,8,251,193,150,8,251,193,168,47,251,193,180,47,251,193,182,47,251,193,184,47,251,193,42,2,251,193,186,47,251,193,188,47,251,193,190,47,251,193,192,47,251,193,208,47,251,193,210,47,251,193,226,47,251,193,212,47,251,193,228,47,251,193,230,47,251,193,232,47,251,193,234,47,251,193,46,48,251,193,48,48,251,193,50,48,251,193,52,48,251,193,54,48,251,193,56,48,251,193,92,48,251,193,94,48,251,193,132,48,251,193,154,48,251,193,30,49,251,193,44,49,251,193,48,49,251,193,50,49,251,193,54,49,251,193,54,2,251,193,56,2,251,193,104,2,251,193,68,3,251,193,104,3,251,193,136,3,251,193,170,3,251,193,40,4,251,193,92,4,251,193,142,4,251,193,204,4,251,193,234,4,251,193,154,5,251,193,196,5,251,193,216,5,251,193,218,5,251,193,140,6,251,193,200,6,251,193,248,6,251,193,250,6,251,193,40,7,251,193,88,7,251,193,122,7,251,193,124,7,251,193,168,7,251,193,190,7,251,193,192,7,251,193,212,7,251,193,46,8,251,193,64,8,251,193,216,8,251,193,224,8,251,193,58,2,251,193,214,2,251,193,18,3,251,193,254,3,251,193,52,5,251,193,18,9,251,193,234,10,251,193,52,14,251,193,54,14,251,193,64,17,251,193,196,18,251,193,56,21,251,193,158,26,251,193,236,29,251,193,58,32,251,193,192,32,251,193,8,38,251,193,48,44,251,193,36,48,251,193,84,48,251,193,96,48,251,193,50,51,251,193,234,51,251,193,236,51,251,193,98,57,251,193,196,61,251,193,188,73,251,193,176,75,251,193,182,78,251,193,230,79,251,193,104,82,251,193,50,93,251,193,112,161,251,193,106,2,251,193,166,2,251,193,168,2,251,193,216,2,251,193,218,2,251,193,20,3,251,193,22,3,251,193,24,3,251,193,26,3,251,193,70,3,251,193,72,3,251,193,74,3,251,193,76,3,251,193,106,3,251,193,138,3,251,193,140,3,251,193,142,3,251,193,144,3,251,193,172,3,251,193,174,3,251,193,176,3,251,193,198,3,251,193,216,3,251,193,218,3,251,193,220,3,251,193,222,3,251,193,224,3,251,193,226,3,251,193,2,4,251,193,16,4,251,193,18,4,251,193,142,2,251,193,196,2,251,193,198,2,251,193,72,4,251,193,74,4,251,193,10,5,251,193,132,5,251,193,62,6,251,193,64,6,251,193,66,6,251,193,86,6,251,193,88,6,251,193,120,6,251,193,122,6,251,193,124,6,251,193,126,6,251,193,178,6,251,193,180,6,251,193,182,6,251,193,184,6,251,193,186,6,251,193,188,6,251,193,234,6,251,193,236,6,251,193,238,6,251,193,28,7,251,193,30,7,251,193,32,7,251,193,64,7,251,193,66,7,251,193,68,7,251,193,70,7,251,193,190,2,251,193,192,2,251,193,194,2,251,193,244,2,251,193,246,2,251,193,248,2,251,193,48,3,251,193,50,3,251,193,60,4,251,193,62,4,251,193,68,4,251,193,70,4,251,193,14,66,252,193,82,4,251,193,84,4,251,193,86,4,251,193,88,4,251,193,98,4,251,193,112,4,251,193,120,4,251,193,134,4,251,193,148,4,251,193,200,4,251,193,202,4,251,193,206,4,251,193,216,4,251,193,218,4,251,193,222,4,251,193,224,4,251,193,250,2,251,193,236,4,251,193,252,4,251,193,212,2,251,193,254,2,251,193,2,3,251,193,4,3,251,193,6,3,251,193,136,8,251,193,8,3,251,193,10,3,251,193,12,3,251,193,32,8,251,193,14,3,251,193,16,3,251,193,52,3,251,193,54,3,251,193,56,3,251,193,14,84,251,193,58,3,251,193,60,3,251,193,62,3,251,193,64,3,251,193,66,3,251,193,94,3,251,193,96,3,251,193,242,60,251,193,98,3,251,193,244,60,251,193,100,3,251,193,102,3,251,193,24,101,251,193,126,3,251,193,128,3,251,193,130,3,251,193,222,2,251,193,224,2,251,193,226,2,251,193,228,2,251,193,230,2,251,193,232,2,251,193,234,2,251,193,236,2,251,193,238,2,251,193,240,2,251,193,28,3,251,193,30,3,251,193,32,3,251,193,34,3,251,193,36,3,251,193,38,3,251,193,40,3,251,193,42,3,251,193,44,3,251,193,78,3,251,193,80,3,251,193,82,3,251,193,84,3,251,193,86,3,251,193,88,3,251,193,108,3,251,193,110,3,251,193,112,3,251,193,114,3,251,193,116,3,251,193,146,3,251,193,148,3,251,193,236,250,252,193,174,32,253,193,186,74,253,193,130,116,252,193,190,239,251,193,142,139,252,193,54,135,252,193,182,13,251,193,136,166,251,193,138,166,251,193,84,228,252,193,128,22,253,193,98,32,252,193,170,88,251,193,164,127,252,193,110,116,253,193,106,189,253,193,160,31,251,193,156,226,252,193,140,233,252,193,184,117,253,193,102,193,253,193,252,2,251,193,92,3,251,193,102,19,251,193,154,20,251,193,188,23,251,193,192,33,251,193,168,211,251,193,144,6,252,193,142,14,252,193,208,142,252,193,132,3,251,193,160,3,251,193,162,3,251,193,164,3,251,193,166,3,251,193,168,3,251,193,188,3,251,193,190,3,251,193,192,3,251,193,140,34,251,193,194,3,251,193,196,3,251,193,212,3,251,193,214,3,251,193,244,3,251,193,246,3,251,193,248,3,251,193,250,3,251,193,252,3,251,193,12,4,251,193,14,4,251,193,24,4,251,193,44,4,251,193,26,4,251,193,28,4,251,193,30,4,251,193,32,4,251,193,34,4,251,193,76,29,251,193,36,4,251,193,216,230,251,193,48,4,251,193,44,46,251,193,46,46,251,193,134,3,251,193,60,46,251,193,62,46,251,193,66,46,251,193,70,46,251,193,72,46,251,193,74,46,251,193,76,46,251,193,78,46,251,193,22,218,252,193,84,46,251,193,86,46,251,193,114,46,251,193,116,46,251,193,118,46,251,193,120,46,251,193,126,47,251,193,140,46,251,193,142,46,251,193,144,46,251,193,146,46,251,193,148,46,251,193,166,46,251,193,168,46,251,193,170,46,251,193,172,46,251,193,186,46,251,193,188,46,251,193,190,46,251,193,192,46,251,193,150,3,251,193,178,3,251,193,180,3,251,193,182,3,251,193,184,3,251,193,186,3,251,193,200,3,251,193,202,3,251,193,204,3,251,193,228,3,251,193,230,3,251,193,232,3,251,193,234,3,251,193,236,3,251,193,238,3,251,193,4,4,251,193,20,4,251,193,58,4,251,193,106,4,251,193,108,4,251,193,144,4,251,193,158,4,251,193,160,4,251,193,162,4,251,193,174,4,251,193,176,4,251,193,214,4,251,193,232,4,251,193,238,4,251,193,244,4,251,193,248,4,251,193,22,5,251,193,98,222,253,193,100,222,253,193,102,222,253,193,160,222,253,193,162,222,253,193,206,222,253,193,208,222,253,193,236,222,253,193,26,223,253,193,44,223,253,193,46,223,253,193,98,223,253,193,56,224,253,193,102,224,253,193,104,224,253,193,136,224,253,193,142,224,253,193,168,224,253,193,170,224,253,193,240,224,253,193,252,224,253,193,24,225,253,193,10,4,251,193,188,56,251,193,30,57,251,193,10,135,251,193,134,233,251,193,136,233,251,193,48,234,251,193,108,234,251,193,110,7,252,193,196,157,253,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,193,76,97,252,193,78,97,252,193,80,97,252,193,82,97,252,193,84,97,252,193,86,97,252,193,88,97,252,193,38,4,251,193,90,97,252,193,92,97,252,193,130,97,252,193,132,97,252,193,134,97,252,193,136,97,252,193,138,97,252,193,140,97,252,193,142,97,252,193,144,97,252,193,146,97,252,193,76,98,253,206,128,56,0,206,128,56,0,206,128,56,0,206,128,56,0,193,42,4,251,193,50,4,251,193,52,4,251,193,76,4,251,193,78,4,251,193,94,4,251,193,118,4,251,193,130,4,251,193,154,4,251,193,156,4,251,193,180,4,251,193,184,4,251,193,186,4,251,193,194,4,251,193,198,4,251,193,54,5,251,193,116,5,251,193,156,5,251,193,158,5,251,193,160,5,251,193,168,5,251,193,180,5,251,193,182,5,251,193,184,5,251,193,186,5,251,193,198,5,251,193,200,5,251,193,220,5,251,193,222,5,251,193,240,5,251,193,248,5,251,193,10,6,251,193,54,4,251,193,64,4,251,193,66,4,251,193,90,4,251,193,98,83,251,193,100,4,251,193,104,4,251,193,114,4,251,193,116,4,251,193,122,4,251,193,124,4,251,193,126,4,251,193,128,4,251,193,136,4,251,193,138,4,251,193,140,4,251,193,150,4,251,193,152,4,251,193,2,126,253,193,168,4,251,193,170,4,251,193,172,4,251,193,178,4,251,193,132,72,251,193,182,4,251,193,188,4,251,193,192,4,251,193,196,4,251,193,210,4,251,193,212,4,251,193,90,6,251,193,220,4,251,193,80,4,251,193,96,4,251,193,102,4,251,193,110,4,251,193,132,4,251,193,146,4,251,193,164,4,251,193,166,4,251,193,190,4,251,193,242,4,251,193,30,5,251,193,32,5,251,193,122,5,251,193,250,5,251,193,252,5,251,193,254,5,251,193,76,6,251,193,116,6,251,193,152,6,251,193,154,6,251,193,156,6,251,193,158,6,251,193,216,6,251,193,218,6,251,193,220,6,251,193,222,6,251,193,224,6,251,193,226,6,251,193,228,6,251,193,8,7,251,193,10,7,251,193,12,7,251,193,254,4,251,193,2,5,251,193,4,5,251,193,6,5,251,193,8,5,251,193,34,5,251,193,36,5,251,193,38,5,251,193,40,5,251,193,208,4,251,193,42,5,251,193,58,5,251,193,60,5,251,193,80,5,251,193,82,5,251,193,84,5,251,193,86,5,251,193,124,5,251,193,126,5,251,193,128,5,251,193,130,5,251,193,164,5,251,193,172,5,251,193,190,5,251,193,202,5,251,193,26,6,251,193,28,6,251,193,30,6,251,193,46,6,251,193,48,6,251,193,56,6,251,193,58,6,251,193,226,4,251,193,228,4,251,193,230,4,251,193,240,4,251,193,246,4,251,193,250,4,251,193,12,5,251,193,14,5,251,193,16,5,251,193,18,5,251,193,20,5,251,193,44,5,251,193,46,5,251,193,48,5,251,193,50,5,251,193,64,5,251,193,66,5,251,193,68,5,251,193,70,5,251,193,72,5,251,193,88,5,251,193,90,5,251,193,92,5,251,193,94,5,251,193,96,5,251,193,98,5,251,193,100,5,251,193,102,5,251,193,104,5,251,193,106,5,251,193,108,5,251,193,110,5,251,193,24,5,251,193,26,5,251,193,28,5,251,193,56,5,251,193,74,5,251,193,76,5,251,193,78,5,251,193,118,5,251,193,120,5,251,193,162,5,251,193,170,5,251,193,188,5,251,193,224,5,251,193,226,5,251,193,228,5,251,193,230,5,251,193,242,5,251,193,6,6,251,193,14,6,251,193,16,6,251,193,18,6,251,193,20,6,251,193,74,6,251,193,112,6,251,193,114,6,251,193,144,6,251,193,146,6,251,193,148,6,251,193,150,6,251,193,204,6,251,193,206,6,251,193,208,6,251,193,18,130,251,193,36,130,251,193,144,130,251,193,146,130,251,193,152,130,251,193,172,130,251,193,174,130,251,193,176,130,251,193,190,130,251,193,192,130,251,193,194,130,251,193,196,130,251,193,198,130,251,193,226,130,251,193,254,130,251,193,2,131,251,193,72,131,251,193,74,131,251,193,102,131,251,193,104,131,251,193,106,131,251,193,146,131,251,193,172,131,251,193,174,131,251,193,192,131,251,193,62,5,251,193,196,131,251,193,202,131,251,193,204,131,251,193,222,131,251,193,252,131,251,193,254,131,251,193,112,5,251,193,114,5,251,193,134,5,251,193,136,5,251,193,138,5,251,193,140,5,251,193,142,5,251,193,144,5,251,193,130,219,252,193,146,5,251,193,148,5,251,193,150,5,251,193,232,50,251,193,152,5,251,193,234,50,251,193,166,5,251,193,26,51,251,193,184,16,252,193,174,5,251,193,176,5,251,193,192,5,251,193,224,93,252,193,178,5,251,193,194,5,251,193,74,7,251,193,204,5,251,193,206,5,251,193,208,5,251,193,210,5,251,193,212,5,251,193,214,5,251,193,232,5,251,193,234,5,251,193,236,5,251,193,238,5,251,193,244,5,251,193,246,5,251,193,4,6,251,193,2,6,251,193,8,6,251,193,22,6,251,193,32,6,251,193,34,6,251,193,36,6,251,193,38,6,251,193,40,6,251,193,42,6,251,193,52,6,251,193,54,6,251,193,44,6,251,193,68,6,251,193,70,6,251,193,72,6,251,193,92,6,251,193,94,6,251,193,96,6,251,193,98,6,251,193,100,6,251,193,102,6,251,193,104,6,251,193,106,6,251,193,108,6,251,193,128,6,251,193,130,6,251,193,12,6,251,193,24,6,251,193,110,6,251,193,142,6,251,193,202,6,251,193,252,6,251,193,254,6,251,193,2,7,251,193,42,7,251,193,90,7,251,193,126,7,251,193,128,7,251,193,130,7,251,193,170,7,251,193,172,7,251,193,214,7,251,193,216,7,251,193,128,8,251,193,144,8,251,193,164,8,251,193,196,8,251,193,208,8,251,193,210,8,251,193,218,8,251,193,228,8,251,193,230,8,251,193,42,9,251,193,114,9,251,193,176,9,251,193,212,9,251,193,214,9,251,193,228,9,251,193,236,224,253,193,238,224,253,193,246,224,253,193,250,224,253,193,12,225,253,193,14,225,253,193,74,58,252,193,12,230,251,193,218,46,251,193,176,243,252,193,102,55,253,193,214,71,253,193,86,104,253,193,62,170,253,193,182,171,253,193,212,100,253,193,192,9,252,193,94,83,251,193,84,107,253,193,78,97,251,193,50,6,251,193,162,191,251,193,192,85,251,193,14,223,252,193,60,129,251,193,110,28,251,193,58,48,251,193,66,38,253,193,252,97,251,193,76,58,252,193,202,109,252,193,208,230,252,193,60,6,251,193,90,154,251,193,130,135,251,193,78,6,251,193,80,6,251,193,82,6,251,193,84,6,251,193,118,6,251,193,160,6,251,193,162,6,251,193,164,6,251,193,166,6,251,193,168,6,251,193,170,6,251,193,172,6,251,193,174,6,251,193,176,6,251,193,230,6,251,193,232,6,251,193,16,7,251,193,18,7,251,193,20,7,251,193,22,7,251,193,24,7,251,193,26,7,251,193,56,7,251,193,58,7,251,193,60,7,251,193,62,7,251,193,110,7,251,193,142,7,251,193,144,7,251,193,132,6,251,193,134,6,251,193,136,6,251,193,138,6,251,193,190,6,251,193,192,6,251,193,194,6,251,193,196,6,251,193,198,6,251,193,240,6,251,193,242,6,251,193,72,94,252,193,244,6,251,193,34,7,251,193,36,7,251,193,38,7,251,193,226,93,252,193,238,119,251,193,76,7,251,193,78,7,251,193,80,7,251,193,82,7,251,193,84,7,251,193,86,7,251,193,112,7,251,193,114,7,251,193,116,7,251,193,118,7,251,193,154,7,251,193,156,7,251,193,158,7,251,193,160,7,251,193,210,6,251,193,212,6,251,193,214,6,251,193,4,7,251,193,6,7,251,193,44,7,251,193,46,7,251,193,48,7,251,193,92,7,251,193,94,7,251,193,96,7,251,193,98,7,251,193,132,7,251,193,134,7,251,193,174,7,251,193,176,7,251,193,178,7,251,193,180,7,251,193,194,7,251,193,196,7,251,193,198,7,251,193,218,7,251,193,12,8,251,193,14,8,251,193,16,8,251,193,36,8,251,193,54,8,251,193,66,8,251,193,72,8,251,193,88,8,251,193,166,8,251,193,176,8,251,193,214,48,251,193,216,48,251,193,218,48,251,193,220,48,251,193,222,48,251,193,238,48,251,193,240,48,251,193,242,48,251,193,244,48,251,193,2,49,251,193,4,49,251,193,6,49,251,193,8,49,251,193,10,49,251,193,22,49,251,193,32,49,251,193,36,49,251,193,40,49,251,193,46,49,251,193,62,49,251,193,66,49,251,193,68,49,251,193,70,49,251,193,72,49,251,193,74,49,251,193,82,49,251,193,84,49,251,193,86,49,251,193,88,49,251,193,246,6,251,193,104,49,251,193,106,49,251,193,14,7,251,193,50,7,251,193,52,7,251,193,54,7,251,193,100,7,251,193,102,7,251,193,104,7,251,193,106,7,251,193,108,7,251,193,136,7,251,193,138,7,251,193,140,7,251,193,182,7,251,193,200,7,251,193,230,7,251,193,232,7,251,193,236,7,251,193,240,7,251,193,28,8,251,193,58,8,251,193,60,8,251,193,104,8,251,193,108,8,251,193,130,8,251,193,180,8,251,193,212,8,251,193,220,8,251,193,226,8,251,193,22,9,251,193,150,9,251,193,182,9,251,193,184,9,251,193,72,7,251,193,148,7,251,193,150,7,251,193,152,7,251,193,186,7,251,193,234,7,251,193,242,7,251,193,20,8,251,193,50,8,251,193,152,8,251,193,4,9,251,193,6,9,251,193,30,9,251,193,54,9,251,193,190,9,251,193,34,10,251,193,202,10,251,193,204,10,251,193,206,10,251,193,208,10,251,193,210,10,251,193,212,10,251,193,214,10,251,193,216,10,251,193,130,11,251,193,132,11,251,193,134,11,251,193,136,11,251,193,138,11,251,193,140,11,251,193,142,11,251,193,144,11,251,193,112,95,252,193,120,7,251,193,114,95,252,193,116,95,252,193,118,95,252,193,178,95,252,193,180,95,252,193,182,95,252,193,184,95,252,193,186,95,252,193,188,95,252,193,190,95,252,193,192,95,252,193,194,95,252,193,196,95,252,193,198,95,252,193,200,95,252,193,202,95,252,193,204,95,252,193,206,95,252,193,208,95,252,193,210,95,252,193,212,95,252,193,214,95,252,193,216,95,252,193,218,95,252,193,220,95,252,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,193,162,7,251,193,164,7,251,193,166,7,251,193,208,7,251,193,210,7,251,193,220,7,251,193,222,7,251,193,224,7,251,193,226,7,251,193,238,7,251,193,244,7,251,193,246,7,251,193,250,7,251,193,254,7,251,193,2,8,251,193,4,8,251,193,6,8,251,193,10,8,251,193,22,8,251,193,24,8,251,193,26,8,251,193,34,8,251,193,40,8,251,193,42,8,251,193,44,8,251,193,52,8,251,193,56,8,251,193,62,8,251,193,68,8,251,193,70,8,251,193,76,8,251,193,78,8,251,193,188,7,251,193,116,140,252,193,118,140,252,193,120,140,252,193,126,140,252,193,128,140,252,193,130,140,252,193,132,140,252,193,140,140,252,193,142,140,252,193,148,140,252,193,154,140,252,193,158,140,252,193,160,140,252,193,162,140,252,193,164,140,252,193,182,140,252,193,184,140,252,193,186,140,252,193,188,140,252,193,222,140,252,193,224,140,252,193,226,140,252,193,228,140,252,193,230,140,252,193,232,140,252,193,234,140,252,193,236,140,252,193,238,140,252,193,240,140,252,193,242,140,252,193,244,140,252,193,26,154,251,193,228,7,251,193,38,154,251,193,106,102,251,193,40,154,251,193,54,154,251,193,62,154,251,193,64,154,251,193,66,154,251,193,68,154,251,193,72,154,251,193,80,154,251,193,84,154,251,193,86,154,251,193,88,154,251,193,96,154,251,193,98,154,251,193,100,154,251,193,108,154,251,193,110,154,251,193,112,154,251,193,114,154,251,193,122,154,251,193,126,154,251,193,128,154,251,193,130,154,251,193,132,154,251,193,136,154,251,193,138,154,251,193,140,154,251,193,142,154,251,193,146,154,251,193,80,8,251,193,102,8,251,193,116,8,251,193,118,8,251,193,120,8,251,193,122,8,251,193,124,8,251,193,126,8,251,193,138,8,251,193,140,8,251,193,142,8,251,193,154,8,251,193,156,8,251,193,158,8,251,193,160,8,251,193,162,8,251,193,168,8,251,193,170,8,251,193,172,8,251,193,174,8,251,193,216,162,251,193,182,8,251,193,184,8,251,193,186,8,251,193,188,8,251,193,192,8,251,193,194,8,251,193,198,8,251,193,202,8,251,193,204,8,251,193,206,8,251,193,214,8,251,193,178,8,251,193,190,8,251,193,200,8,251,193,248,8,251,193,20,9,251,193,44,9,251,193,46,9,251,193,48,9,251,193,70,9,251,193,72,9,251,193,92,9,251,193,94,9,251,193,96,9,251,193,116,9,251,193,140,9,251,193,142,9,251,193,144,9,251,193,146,9,251,193,148,9,251,193,178,9,251,193,180,9,251,193,216,9,251,193,218,9,251,193,220,9,251,193,222,9,251,193,252,9,251,193,254,9,251,193,30,10,251,193,32,10,251,193,40,10,251,193,42,10,251,193,56,10,251,193,222,8,251,193,240,8,251,193,242,8,251,193,8,9,251,193,10,9,251,193,12,9,251,193,14,9,251,193,16,9,251,193,32,9,251,193,34,9,251,193,36,9,251,193,38,9,251,193,56,9,251,193,58,9,251,193,60,9,251,193,62,9,251,193,64,9,251,193,66,9,251,193,68,9,251,193,86,9,251,193,88,9,251,193,90,9,251,193,100,9,251,193,210,101,251,193,102,9,251,193,104,9,251,193,106,9,251,193,108,9,251,193,110,9,251,193,112,9,251,193,118,9,251,193,120,9,251,193,232,8,251,193,234,8,251,193,236,8,251,193,238,8,251,193,250,8,251,193,252,8,251,193,254,8,251,193,2,9,251,193,24,9,251,193,26,9,251,193,28,9,251,193,50,9,251,193,52,9,251,193,74,9,251,193,76,9,251,193,78,9,251,193,80,9,251,193,82,9,251,193,84,9,251,193,98,9,251,193,152,9,251,193,154,9,251,193,186,9,251,193,188,9,251,193,4,10,251,193,52,10,251,193,68,10,251,193,70,10,251,193,74,10,251,193,76,10,251,193,78,10,251,193,80,10,251,193,244,8,251,193,246,8,251,193,40,9,251,193,138,9,251,193,174,9,251,193,250,9,251,193,48,10,251,193,136,10,251,193,214,11,251,193,216,11,251,193,218,11,251,193,220,11,251,193,226,12,251,193,228,12,251,193,230,12,251,193,232,12,251,193,234,12,251,193,236,12,251,193,238,12,251,193,240,12,251,193,242,12,251,193,40,14,251,193,42,14,251,193,44,14,251,193,46,14,251,193,48,14,251,193,50,14,251,193,132,15,251,193,134,15,251,193,136,15,251,193,138,15,251,193,140,15,251,193,122,9,251,193,124,9,251,193,126,9,251,193,128,9,251,193,130,9,251,193,132,9,251,193,134,9,251,193,136,9,251,193,156,9,251,193,158,9,251,193,160,9,251,193,162,9,251,193,164,9,251,193,166,9,251,193,168,9,251,193,170,9,251,193,162,124,252,193,22,102,251,193,172,9,251,193,192,9,251,193,194,9,251,193,196,9,251,193,198,9,251,193,200,9,251,193,202,9,251,193,186,154,251,193,204,9,251,193,206,9,251,193,208,9,251,193,20,130,251,193,224,9,251,193,226,9,251,193,210,9,251,193,232,9,251,193,234,9,251,193,236,9,251,193,238,9,251,193,240,9,251,193,242,9,251,193,244,9,251,193,246,9,251,193,248,9,251,193,194,74,251,193,6,10,251,193,8,10,251,193,10,10,251,193,12,10,251,193,14,10,251,193,16,10,251,193,18,10,251,193,20,10,251,193,140,102,251,193,22,10,251,193,142,102,251,193,24,10,251,193,26,10,251,193,28,10,251,193,160,102,251,193,44,10,251,193,64,231,251,193,200,220,253,193,46,10,251,193,54,10,251,193,62,10,251,193,230,9,251,193,36,10,251,193,38,10,251,193,50,10,251,193,58,10,251,193,88,10,251,193,138,10,251,193,140,10,251,193,142,10,251,193,236,10,251,193,238,10,251,193,222,11,251,193,224,11,251,193,226,11,251,193,228,11,251,193,230,11,251,193,232,11,251,193,244,12,251,193,246,12,251,193,248,12,251,193,250,12,251,193,252,12,251,193,254,12,251,193,2,13,251,193,4,13,251,193,56,14,251,193,58,14,251,193,60,14,251,193,62,14,251,193,64,14,251,193,148,15,251,193,150,15,251,193,2,10,251,193,148,10,251,193,252,10,251,193,254,10,251,193,244,11,251,193,246,11,251,193,248,11,251,193,250,11,251,193,252,11,251,193,254,11,251,193,2,12,251,193,32,13,251,193,34,13,251,193,36,13,251,193,38,13,251,193,40,13,251,193,42,13,251,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,193,60,10,251,193,144,10,251,193,146,10,251,193,240,10,251,193,242,10,251,193,244,10,251,193,246,10,251,193,248,10,251,193,250,10,251,193,234,11,251,193,236,11,251,193,238,11,251,193,240,11,251,193,242,11,251,193,6,13,251,193,8,13,251,193,10,13,251,193,12,13,251,193,14,13,251,193,16,13,251,193,18,13,251,193,20,13,251,193,22,13,251,193,24,13,251,193,26,13,251,193,28,13,251,193,30,13,251,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,193,64,10,251,193,66,10,251,193,72,10,251,193,82,10,251,193,84,10,251,193,86,10,251,193,130,10,251,193,132,10,251,193,134,10,251,193,218,10,251,193,220,10,251,193,222,10,251,193,224,10,251,193,226,10,251,193,40,42,251,193,228,10,251,193,230,10,251,193,214,47,251,193,228,154,251,193,232,10,251,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,193,90,10,251,193,92,10,251,193,94,10,251,193,96,10,251,193,98,10,251,193,100,10,251,193,102,10,251,193,104,10,251,193,106,10,251,193,108,10,251,193,110,10,251,193,112,10,251,193,114,10,251,193,116,10,251,193,118,10,251,193,120,10,251,193,122,10,251,193,124,10,251,193,126,10,251,193,128,10,251,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,193,128,11,251,193,114,12,251,193,116,12,251,193,118,12,251,193,120,12,251,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,193,146,11,251,193,122,12,251,193,124,12,251,193,126,12,251,193,128,12,251,193,130,12,251,193,132,12,251,193,134,12,251,193,136,12,251,193,184,13,251,193,186,13,251,193,188,13,251,193,190,13,251,193,192,13,251,193,194,13,251,193,196,13,251,193,198,13,251,193,200,13,251,193,202,13,251,193,204,13,251,193,206,13,251,193,208,13,251,193,210,13,251,193,254,14,251,193,2,15,251,193,4,15,251,193,6,15,251,193,8,15,251,193,10,15,251,193,12,15,251,193,14,15,251,193,16,15,251,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,193,216,27,251,193,208,11,251,193,210,11,251,193,212,11,251,193,138,12,251,193,140,12,251,193,142,12,251,193,144,12,251,193,146,12,251,193,148,12,251,193,150,12,251,193,152,12,251,193,154,12,251,193,156,12,251,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,193,158,12,251,193,160,12,251,193,162,12,251,193,164,12,251,193,166,12,251,193,168,12,251,193,170,12,251,193,172,12,251,193,174,12,251,193,176,12,251,193,178,12,251,193,180,12,251,193,182,12,251,193,184,12,251,193,186,12,251,193,188,12,251,193,190,12,251,193,192,12,251,193,194,12,251,193,196,12,251,193,198,12,251,193,200,12,251,193,202,12,251,193,204,12,251,193,206,12,251,193,208,12,251,193,210,12,251,193,212,12,251,193,214,12,251,193,216,12,251,193,218,12,251,193,220,12,251,193,222,12,251,193,224,12,251,193,46,58,251,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,193,116,129,251,193,24,14,251,193,26,14,251,193,28,14,251,193,30,14,251,193,32,14,251,193,34,14,251,193,36,14,251,193,38,14,251,193,24,15,251,193,26,15,251,193,28,15,251,193,30,15,251,193,32,15,251,193,34,15,251,193,36,15,251,193,38,15,251,193,40,15,251,193,42,15,251,193,44,15,251,193,46,15,251,193,48,15,251,193,50,15,251,193,52,15,251,193,54,15,251,193,56,15,251,193,58,15,251,193,60,15,251,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,193,172,15,251,193,174,15,251,193,176,15,251,193,178,15,251,193,180,15,251,193,182,15,251,193,184,15,251,193,186,15,251,193,188,15,251,193,190,15,251,193,192,15,251,193,194,15,251,193,196,15,251,193,198,15,251,193,200,15,251,193,202,15,251,193,204,15,251,193,206,15,251,193,208,15,251,193,210,15,251,193,212,15,251,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,193,214,15,251,193,216,15,251,193,218,15,251,193,220,15,251,193,222,15,251,193,224,15,251,193,226,15,251,193,228,15,251,193,230,15,251,193,232,15,251,193,136,17,251,193,138,17,251,193,140,17,251,193,142,17,251,193,144,17,251,193,146,17,251,193,148,17,251,193,150,17,251,193,250,18,251,193,252,18,251,193,254,18,251,193,2,19,251,193,4,19,251,193,6,19,251,193,8,19,251,193,10,19,251,193,12,19,251,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,193,18,15,251,193,20,15,251,193,22,15,251,193,144,16,251,193,26,18,251,193,146,16,251,193,148,16,251,193,150,16,251,193,152,16,251,193,154,16,251,193,156,16,251,193,158,16,251,193,160,16,251,193,162,16,251,193,28,18,251,193,30,18,251,193,32,18,251,193,34,18,251,193,36,18,251,193,104,19,251,193,106,19,251,193,108,19,251,193,110,19,251,193,112,19,251,193,114,19,251,193,116,19,251,193,118,19,251,193,156,20,251,193,158,20,251,193,160,20,251,193,162,20,251,193,164,20,251,193,62,15,251,193,64,15,251,193,66,15,251,193,68,15,251,193,70,15,251,193,72,15,251,193,74,15,251,193,76,15,251,193,78,15,251,193,80,15,251,193,82,15,251,193,84,15,251,193,86,15,251,193,88,15,251,193,90,15,251,193,92,15,251,193,94,15,251,193,96,15,251,193,98,15,251,193,100,15,251,193,102,15,251,193,104,15,251,193,106,15,251,193,108,15,251,193,110,15,251,193,112,15,251,193,114,15,251,193,116,15,251,193,118,15,251,193,120,15,251,193,122,15,251,193,124,15,251,193,126,15,251,193,128,15,251,193,130,15,251,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,193,142,15,251,193,144,15,251,193,146,15,251,193,48,17,251,193,50,17,251,193,52,17,251,193,54,17,251,193,56,17,251,193,58,17,251,193,60,17,251,193,62,17,251,193,174,18,251,193,176,18,251,193,178,18,251,193,180,18,251,193,182,18,251,193,184,18,251,193,186,18,251,193,188,18,251,193,190,18,251,193,192,18,251,193,194,18,251,193,236,19,251,193,238,19,251,193,240,19,251,193,242,19,251,193,244,19,251,193,246,19,251,193,248,19,251,193,250,19,251,193,252,19,251,193,254,19,251,193,152,15,251,193,154,15,251,193,156,15,251,193,158,15,251,193,160,15,251,193,162,15,251,193,164,15,251,193,166,15,251,193,168,15,251,193,170,15,251,193,66,17,251,193,68,17,251,193,70,17,251,193,72,17,251,193,74,17,251,193,76,17,251,193,78,17,251,193,80,17,251,193,82,17,251,193,84,17,251,193,86,17,251,193,88,17,251,193,90,17,251,193,92,17,251,193,94,17,251,193,96,17,251,193,98,17,251,193,100,17,251,193,102,17,251,193,198,18,251,193,200,18,251,193,202,18,251,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,193,174,157,253,193,122,18,251,193,124,18,251,193,126,18,251,193,128,18,251,193,130,18,251,193,132,18,251,193,134,18,251,193,136,18,251,193,138,18,251,193,140,18,251,193,142,18,251,193,144,18,251,193,146,18,251,193,46,17,251,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,193,212,18,251,193,214,18,251,193,216,18,251,193,218,18,251,193,220,18,251,193,222,18,251,193,224,18,251,193,226,18,251,193,228,18,251,193,230,18,251,193,232,18,251,193,234,18,251,193,236,18,251,193,238,18,251,193,240,18,251,193,242,18,251,193,244,18,251,193,246,18,251,193,248,18,251,193,28,20,251,193,30,20,251,193,32,20,251,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,193,148,18,251,193,150,18,251,193,152,18,251,193,154,18,251,193,156,18,251,193,158,18,251,193,160,18,251,193,162,18,251,193,164,18,251,193,166,18,251,193,168,18,251,193,170,18,251,193,172,18,251,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,193,204,18,251,193,206,18,251,193,208,18,251,193,210,18,251,193,2,20,251,193,4,20,251,193,6,20,251,193,8,20,251,193,10,20,251,193,12,20,251,193,14,20,251,193,16,20,251,193,18,20,251,193,20,20,251,193,22,20,251,193,24,20,251,193,26,20,251,193,58,21,251,193,60,21,251,193,62,21,251,193,64,21,251,193,66,21,251,193,68,21,251,193,118,22,251,193,120,22,251,193,122,22,251,193,124,22,251,193,126,22,251,193,128,22,251,193,130,22,251,193,132,22,251,193,134,22,251,193,14,19,251,193,16,19,251,193,66,20,251,193,68,20,251,193,70,20,251,193,72,20,251,193,74,20,251,193,76,20,251,193,78,20,251,193,80,20,251,193,104,21,251,193,106,21,251,193,108,21,251,193,170,22,251,193,172,22,251,193,174,22,251,193,176,22,251,193,178,22,251,193,180,22,251,193,142,23,251,193,144,23,251,193,146,23,251,193,148,23,251,193,150,23,251,193,152,23,251,193,154,23,251,193,40,24,251,193,42,24,251,193,44,24,251,193,46,24,251,193,160,24,251,193,162,24,251,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,193,36,28,251,193,170,19,251,193,172,19,251,193,174,19,251,193,176,19,251,193,178,19,251,193,180,19,251,193,182,19,251,193,184,19,251,193,186,19,251,193,188,19,251,193,190,19,251,193,192,19,251,193,194,19,251,193,196,19,251,193,198,19,251,193,200,19,251,193,202,19,251,193,204,19,251,193,206,19,251,193,208,19,251,193,210,19,251,193,212,19,251,193,214,19,251,193,50,101,251,193,226,107,252,193,216,19,251,193,218,19,251,193,220,19,251,193,222,19,251,193,224,19,251,193,226,19,251,193,228,19,251,193,230,19,251,193,232,19,251,193,234,19,251,193,206,115,252,193,170,20,251,193,172,20,251,193,174,20,251,193,176,20,251,193,178,20,251,193,180,20,251,193,182,20,251,193,184,20,251,193,186,20,251,193,188,20,251,193,190,20,251,193,192,20,251,193,194,20,251,193,196,20,251,193,198,20,251,193,200,20,251,193,202,20,251,193,204,20,251,193,206,20,251,193,208,20,251,193,210,20,251,193,34,20,251,193,36,20,251,193,38,20,251,193,40,20,251,193,42,20,251,193,44,20,251,193,46,20,251,193,48,20,251,193,50,20,251,193,52,20,251,193,54,20,251,193,56,20,251,193,58,20,251,193,60,20,251,193,62,20,251,193,64,20,251,193,70,21,251,193,72,21,251,193,74,21,251,193,76,21,251,193,78,21,251,193,80,21,251,193,82,21,251,193,84,21,251,193,86,21,251,193,88,21,251,193,90,21,251,193,92,21,251,193,94,21,251,193,96,21,251,193,98,21,251,193,100,21,251,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,193,166,20,251,193,168,20,251,193,188,21,251,193,190,21,251,193,192,21,251,193,194,21,251,193,196,21,251,193,198,21,251,193,200,21,251,193,202,21,251,193,204,21,251,193,206,21,251,193,208,21,251,193,210,21,251,193,212,21,251,193,214,21,251,193,216,21,251,193,236,22,251,193,238,22,251,193,240,22,251,193,242,22,251,193,244,22,251,193,246,22,251,193,248,22,251,193,250,22,251,193,190,23,251,193,192,23,251,193,194,23,251,193,196,23,251,193,74,24,251,193,76,24,251,193,180,24,251,193,212,20,251,193,214,20,251,193,216,20,251,193,218,20,251,193,220,20,251,193,222,20,251,193,224,20,251,193,226,20,251,193,228,20,251,193,230,20,251,193,232,20,251,193,234,20,251,193,236,20,251,193,238,20,251,193,240,20,251,193,242,20,251,193,244,20,251,193,246,20,251,193,248,20,251,193,250,20,251,193,252,20,251,193,254,20,251,193,2,21,251,193,4,21,251,193,6,21,251,193,8,21,251,193,10,21,251,193,12,21,251,193,14,21,251,193,16,21,251,193,18,21,251,193,20,21,251,193,22,21,251,193,24,21,251,193,140,123,252,193,26,21,251,193,28,21,251,193,218,21,251,193,30,21,251,193,32,21,251,193,34,21,251,193,36,21,251,193,38,21,251,193,40,21,251,193,42,21,251,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,193,62,22,251,193,64,22,251,193,66,22,251,193,68,22,251,193,70,22,251,193,72,22,251,193,74,22,251,193,76,22,251,193,78,22,251,193,80,22,251,193,82,22,251,193,84,22,251,193,86,22,251,193,88,22,251,193,90,22,251,193,92,22,251,193,94,22,251,193,96,22,251,193,98,22,251,193,100,22,251,193,102,22,251,193,44,21,251,193,210,189,251,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,193,46,21,251,193,48,21,251,193,50,21,251,193,52,21,251,193,54,21,251,193,106,22,251,193,108,22,251,193,110,22,251,193,112,22,251,193,114,22,251,193,116,22,251,193,88,23,251,193,90,23,251,193,92,23,251,193,94,23,251,193,96,23,251,193,10,24,251,193,12,24,251,193,14,24,251,193,16,24,251,193,130,24,251,193,132,24,251,193,134,24,251,193,232,24,251,193,234,24,251,193,236,24,251,193,76,25,251,193,78,25,251,193,80,25,251,193,132,25,251,193,180,25,251,193,128,26,251,193,102,21,251,193,142,22,251,193,144,22,251,193,146,22,251,193,148,22,251,193,150,22,251,193,152,22,251,193,154,22,251,193,156,22,251,193,158,22,251,193,160,22,251,193,162,22,251,193,164,22,251,193,166,22,251,193,168,22,251,193,118,23,251,193,120,23,251,193,122,23,251,193,124,23,251,193,126,23,251,193,128,23,251,193,130,23,251,193,132,23,251,193,134,23,251,193,136,23,251,193,138,23,251,193,140,23,251,193,28,24,251,193,30,24,251,193,32,24,251,193,34,24,251,193,36,24,251,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,193,182,22,251,193,182,21,251,193,184,21,251,193,184,22,251,193,186,22,251,193,186,21,251,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,193,122,140,252,193,52,22,251,193,54,22,251,193,250,65,252,193,96,221,253,193,56,22,251,193,58,22,251,193,60,22,251,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,193,104,22,251,193,48,23,251,193,198,23,251,193,196,74,251,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,193,136,22,251,193,138,22,251,193,140,22,251,193,98,23,251,193,100,23,251,193,102,23,251,193,104,23,251,193,106,23,251,193,108,23,251,193,110,23,251,193,112,23,251,193,114,23,251,193,116,23,251,193,18,24,251,193,20,24,251,193,22,24,251,193,24,24,251,193,26,24,251,193,136,24,251,193,138,24,251,193,140,24,251,193,142,24,251,193,144,24,251,193,146,24,251,193,148,24,251,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,193,156,23,251,193,158,23,251,193,160,23,251,193,162,23,251,193,164,23,251,193,166,23,251,193,168,23,251,193,170,23,251,193,172,23,251,193,174,23,251,193,176,23,251,193,178,23,251,193,180,23,251,193,182,23,251,193,184,23,251,193,48,24,251,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,193,198,74,251,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,193,50,24,251,193,52,24,251,193,54,24,251,193,56,24,251,193,58,24,251,193,60,24,251,193,62,24,251,193,64,24,251,193,66,24,251,193,68,24,251,193,70,24,251,193,186,23,251,193,72,24,251,193,168,24,251,193,170,24,251,193,172,24,251,193,174,24,251,193,176,24,251,193,178,24,251,193,30,25,251,193,32,25,251,193,34,25,251,193,102,25,251,193,144,25,251,193,146,25,251,193,148,25,251,193,150,25,251,193,194,25,251,193,196,25,251,193,212,25,251,193,240,25,251,193,4,26,251,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,193,78,24,251,193,80,24,251,193,82,24,251,193,84,24,251,193,86,24,251,193,88,24,251,193,90,24,251,193,92,24,251,193,94,24,251,193,96,24,251,193,98,24,251,193,100,24,251,193,102,24,251,193,104,24,251,193,106,24,251,193,108,24,251,193,110,24,251,193,112,24,251,193,114,24,251,193,116,24,251,193,166,36,253,193,118,24,251,193,120,24,251,193,122,24,251,193,38,24,251,193,150,24,251,193,152,24,251,193,154,24,251,193,156,24,251,193,158,24,251,193,6,25,251,193,8,25,251,193,10,25,251,193,12,25,251,193,14,25,251,193,16,25,251,193,18,25,251,193,92,25,251,193,94,25,251,193,96,25,251,193,140,25,251,193,142,25,251,193,210,25,251,193,234,25,251,193,236,25,251,193,246,25,251,193,16,26,251,193,18,26,251,193,20,26,251,193,28,26,251,193,30,26,251,193,32,26,251,193,34,26,251,193,36,26,251,193,90,26,251,193,92,26,251,193,124,24,251,193,126,24,251,193,128,24,251,193,184,24,251,193,186,24,251,193,188,24,251,193,190,24,251,193,192,24,251,193,194,24,251,193,196,24,251,193,198,24,251,193,200,24,251,193,202,24,251,193,204,24,251,193,206,24,251,193,208,24,251,193,210,24,251,193,212,24,251,193,214,24,251,193,216,24,251,193,218,24,251,193,220,24,251,193,222,24,251,193,224,24,251,193,226,24,251,193,228,24,251,193,230,24,251,193,42,25,251,193,44,25,251,193,46,25,251,193,48,25,251,193,50,25,251,193,164,24,251,193,166,24,251,193,20,25,251,193,22,25,251,193,24,25,251,193,26,25,251,193,28,25,251,193,98,25,251,193,100,25,251,193,238,25,251,193,38,26,251,193,96,26,251,193,140,26,251,193,218,26,251,193,250,26,251,193,14,27,251,193,16,27,251,193,50,27,251,193,52,27,251,193,96,27,251,193,98,27,251,193,156,27,251,193,226,27,251,193,254,27,251,193,2,28,251,193,4,28,251,193,16,28,251,193,18,28,251,193,34,28,251,193,126,28,251,193,128,28,251,193,130,28,251,193,182,24,251,193,36,25,251,193,38,25,251,193,40,25,251,193,104,25,251,193,106,25,251,193,108,25,251,193,152,25,251,193,154,25,251,193,214,25,251,193,250,25,251,193,52,26,251,193,108,26,251,193,168,26,251,193,196,26,251,193,126,27,251,193,202,27,251,193,204,27,251,193,214,27,251,193,228,27,251,193,230,27,251,193,134,28,251,193,136,28,251,193,138,28,251,193,182,28,251,193,98,29,251,193,202,29,251,193,12,30,251,193,14,30,251,193,24,30,251,193,38,30,251,193,70,30,251,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,193,82,25,251,193,84,25,251,193,86,25,251,193,88,25,251,193,90,25,251,193,134,25,251,193,136,25,251,193,138,25,251,193,182,25,251,193,184,25,251,193,186,25,251,193,188,25,251,193,190,25,251,193,192,25,251,193,228,25,251,193,230,25,251,193,232,25,251,193,244,25,251,193,248,25,251,193,62,26,251,193,130,26,251,193,160,26,251,193,212,26,251,193,214,26,251,193,236,26,251,193,238,26,251,193,8,27,251,193,38,27,251,193,52,25,251,193,54,25,251,193,8,66,252,193,56,25,251,193,58,25,251,193,60,25,251,193,62,25,251,193,64,25,251,193,66,25,251,193,68,25,251,193,70,25,251,193,72,25,251,193,74,25,251,193,110,25,251,193,112,25,251,193,114,25,251,193,116,25,251,193,118,25,251,193,120,25,251,193,122,25,251,193,124,25,251,193,126,25,251,193,128,25,251,193,156,25,251,193,158,25,251,193,160,25,251,193,162,25,251,193,164,25,251,193,166,25,251,193,168,25,251,193,130,25,251,193,170,25,251,193,172,25,251,193,174,25,251,193,176,25,251,193,178,25,251,193,198,25,251,193,200,25,251,193,202,25,251,193,204,25,251,193,206,25,251,193,208,25,251,193,216,25,251,193,218,25,251,193,220,25,251,193,222,25,251,193,224,25,251,193,226,25,251,193,242,25,251,193,78,233,251,193,252,25,251,193,254,25,251,193,170,14,253,193,2,26,251,193,14,26,251,193,24,26,251,193,26,26,251,193,54,26,251,193,56,26,251,193,58,26,251,193,60,26,251,193,78,26,251,193,80,26,251,193,82,26,251,193,6,26,251,193,8,26,251,193,10,26,251,193,12,26,251,193,22,26,251,193,40,26,251,193,42,26,251,193,44,26,251,193,46,26,251,193,48,26,251,193,50,26,251,193,64,26,251,193,66,26,251,193,68,26,251,193,70,26,251,193,72,26,251,193,74,26,251,193,76,26,251,193,98,26,251,193,100,26,251,193,102,26,251,193,104,26,251,193,106,26,251,193,142,26,251,193,144,26,251,193,146,26,251,193,164,26,251,193,166,26,251,193,190,26,251,193,192,26,251,193,194,26,251,193,220,26,251,193,84,26,251,193,86,26,251,193,88,26,251,193,110,26,251,193,112,26,251,193,114,26,251,193,116,26,251,193,118,26,251,193,120,26,251,193,122,26,251,193,124,26,251,193,126,26,251,193,148,26,251,193,150,26,251,193,152,26,251,193,154,26,251,193,170,26,251,193,172,26,251,193,174,26,251,193,176,26,251,193,178,26,251,193,180,26,251,193,182,26,251,193,198,26,251,193,200,26,251,193,202,26,251,193,204,26,251,193,206,26,251,193,208,26,251,193,210,26,251,193,224,26,251,193,226,26,251,193,94,26,251,193,132,26,251,193,134,26,251,193,136,26,251,193,138,26,251,193,162,26,251,193,186,26,251,193,188,26,251,193,216,26,251,193,240,26,251,193,242,26,251,193,244,26,251,193,246,26,251,193,248,26,251,193,10,27,251,193,12,27,251,193,42,27,251,193,44,27,251,193,46,27,251,193,48,27,251,193,74,27,251,193,94,27,251,193,120,27,251,193,122,27,251,193,124,27,251,193,144,27,251,193,146,27,251,193,208,27,251,193,242,27,251,193,244,27,251,193,246,27,251,193,252,27,251,193,156,26,251,193,184,26,251,193,6,27,251,193,68,27,251,193,70,27,251,193,72,27,251,193,152,27,251,193,28,28,251,193,116,28,251,193,8,29,251,193,36,29,251,193,54,29,251,193,58,29,251,193,74,29,251,193,198,29,251,193,132,30,251,193,134,30,251,193,150,30,251,193,202,30,251,193,224,30,251,193,248,30,251,193,16,31,251,193,92,31,251,193,124,31,251,193,126,31,251,193,128,31,251,193,130,31,251,193,184,31,251,193,186,31,251,193,188,31,251,193,242,31,251,193,52,32,251,193,222,26,251,193,252,26,251,193,18,27,251,193,76,27,251,193,164,27,251,193,188,27,251,193,190,27,251,193,194,27,251,193,210,27,251,193,248,27,251,193,6,28,251,193,74,28,251,193,78,28,251,193,80,28,251,193,82,28,251,193,84,28,251,193,94,28,251,193,102,28,251,193,104,28,251,193,106,28,251,193,108,28,251,193,132,28,251,193,154,28,251,193,156,28,251,193,158,28,251,193,178,28,251,193,204,28,251,193,180,28,251,193,206,28,251,193,226,28,251,193,18,29,251,193,20,29,251,193,228,26,251,193,230,26,251,193,232,26,251,193,234,26,251,193,254,26,251,193,2,27,251,193,4,27,251,193,20,27,251,193,22,27,251,193,24,27,251,193,26,27,251,193,28,27,251,193,30,27,251,193,32,27,251,193,34,27,251,193,36,27,251,193,54,27,251,193,56,27,251,193,58,27,251,193,78,27,251,193,60,27,251,193,62,27,251,193,64,27,251,193,66,27,251,193,80,27,251,193,82,27,251,193,84,27,251,193,86,27,251,193,88,27,251,193,90,27,251,193,92,27,251,193,100,27,251,193,40,27,251,193,116,27,251,193,118,27,251,193,136,27,251,193,138,27,251,193,140,27,251,193,142,27,251,193,154,27,251,193,174,27,251,193,30,28,251,193,42,28,251,193,118,28,251,193,120,28,251,193,166,28,251,193,214,28,251,193,216,28,251,193,232,28,251,193,10,29,251,193,38,29,251,193,84,29,251,193,92,29,251,193,94,29,251,193,102,29,251,193,44,30,251,193,136,30,251,193,170,30,251,193,172,30,251,193,20,31,251,193,42,31,251,193,50,31,251,193,66,31,251,193,94,31,251,193,102,27,251,193,104,27,251,193,106,27,251,193,108,27,251,193,110,27,251,193,112,27,251,193,128,27,251,193,114,27,251,193,130,27,251,193,132,27,251,193,134,27,251,193,148,27,251,193,116,159,251,193,158,27,251,193,150,27,251,193,160,27,251,193,162,27,251,193,166,27,251,193,168,27,251,193,170,27,251,193,172,27,251,193,176,27,251,193,178,27,251,193,180,27,251,193,182,27,251,193,184,27,251,193,186,27,251,193,192,27,251,193,196,27,251,193,198,27,251,193,200,27,251,193,206,27,251,193,106,21,252,193,108,21,252,193,110,21,252,193,130,21,252,193,132,21,252,193,134,21,252,193,136,21,252,193,138,21,252,193,140,21,252,193,142,21,252,193,152,21,252,193,154,21,252,193,164,21,252,193,166,21,252,193,168,21,252,193,170,21,252,193,172,21,252,193,182,21,252,193,192,21,252,193,194,21,252,193,230,21,252,193,232,21,252,193,242,21,252,193,244,21,252,193,246,21,252,193,248,21,252,193,234,21,252,193,6,22,252,193,8,22,252,193,212,27,251,193,10,22,252,193,12,22,252,193,218,27,251,193,220,27,251,193,222,27,251,193,224,27,251,193,232,27,251,193,234,27,251,193,236,27,251,193,238,27,251,193,240,27,251,193,250,27,251,193,8,28,251,193,10,28,251,193,12,28,251,193,20,28,251,193,22,28,251,193,24,28,251,193,26,28,251,193,32,28,251,193,38,28,251,193,40,28,251,193,44,28,251,193,46,28,251,193,48,28,251,193,50,28,251,193,52,28,251,193,54,28,251,193,56,28,251,193,58,28,251,193,60,28,251,193,64,28,251,193,68,28,251,193,70,28,251,193,14,28,251,193,62,28,251,193,66,28,251,193,72,28,251,193,100,28,251,193,122,28,251,193,124,28,251,193,152,28,251,193,168,28,251,193,170,28,251,193,172,28,251,193,174,28,251,193,196,28,251,193,198,28,251,193,200,28,251,193,218,28,251,193,220,28,251,193,234,28,251,193,236,28,251,193,238,28,251,193,12,29,251,193,14,29,251,193,16,29,251,193,40,29,251,193,42,29,251,193,56,29,251,193,60,29,251,193,62,29,251,193,64,29,251,193,96,29,251,193,100,29,251,193,130,29,251,193,76,28,251,193,86,28,251,193,88,28,251,193,90,28,251,193,92,28,251,193,96,28,251,193,98,28,251,193,180,78,253,193,112,28,251,193,114,28,251,193,140,28,251,193,142,28,251,193,144,28,251,193,146,28,251,193,148,28,251,193,150,28,251,193,160,28,251,193,162,28,251,193,184,28,251,193,186,28,251,193,188,28,251,193,190,28,251,193,192,28,251,193,194,28,251,193,218,162,251,193,208,28,251,193,210,28,251,193,212,28,251,193,228,28,251,193,230,28,251,193,242,28,251,193,244,28,251,193,28,51,251,193,30,51,251,193,32,51,251,193,34,51,251,193,36,51,251,193,38,51,251,193,40,51,251,193,42,51,251,193,44,51,251,193,46,51,251,193,74,51,251,193,76,51,251,193,78,51,251,193,80,51,251,193,82,51,251,193,84,51,251,193,86,51,251,193,88,51,251,193,90,51,251,193,92,51,251,193,94,51,251,193,96,51,251,193,164,28,251,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,193,176,28,251,193,202,28,251,193,222,28,251,193,224,28,251,193,240,28,251,193,44,29,251,193,108,29,251,193,180,29,251,193,182,29,251,193,6,30,251,193,8,30,251,193,36,30,251,193,54,30,251,193,56,30,251,193,102,30,251,193,138,30,251,193,140,30,251,193,218,30,251,193,6,31,251,193,58,31,251,193,60,31,251,193,76,31,251,193,140,31,251,193,142,31,251,193,144,31,251,193,204,31,251,193,206,31,251,193,4,32,251,193,6,32,251,193,8,32,251,193,70,32,251,193,148,32,251,193,246,28,251,193,248,28,251,193,250,28,251,193,252,28,251,193,254,28,251,193,2,29,251,193,4,29,251,193,6,29,251,193,22,29,251,193,24,29,251,193,26,29,251,193,28,29,251,193,30,29,251,193,32,29,251,193,34,29,251,193,46,29,251,193,48,29,251,193,50,29,251,193,80,54,251,193,68,29,251,193,70,29,251,193,72,29,251,193,80,29,251,193,82,29,251,193,86,29,251,193,88,29,251,193,90,29,251,193,104,218,252,193,106,29,251,193,122,29,251,193,124,29,251,193,126,29,251,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,193,200,55,251,193,202,55,251,193,204,55,251,193,206,55,251,193,208,55,251,193,210,55,251,193,212,55,251,193,214,55,251,193,216,55,251,193,218,55,251,193,240,55,251,193,242,55,251,193,244,55,251,193,246,55,251,193,248,55,251,193,250,55,251,193,252,55,251,193,56,101,251,193,254,55,251,193,2,56,251,193,4,56,251,193,6,56,251,193,52,29,251,193,18,56,251,193,20,56,251,193,22,56,251,193,24,56,251,193,66,29,251,193,78,29,251,193,104,29,251,193,110,29,251,193,112,29,251,193,114,29,251,193,116,29,251,193,118,29,251,193,120,29,251,193,132,29,251,193,134,29,251,193,136,29,251,193,138,29,251,193,162,29,251,193,164,29,251,193,184,29,251,193,200,29,251,193,228,29,251,193,230,29,251,193,242,29,251,193,244,29,251,193,10,30,251,193,74,30,251,193,76,30,251,193,78,30,251,193,88,30,251,193,90,30,251,193,104,30,251,193,106,30,251,193,122,30,251,193,142,30,251,193,154,30,251,193,128,29,251,193,140,29,251,193,142,29,251,193,144,29,251,193,146,29,251,193,148,29,251,193,150,29,251,193,152,29,251,193,154,29,251,193,156,29,251,193,158,29,251,193,166,29,251,193,168,29,251,193,170,29,251,193,172,29,251,193,174,29,251,193,186,29,251,193,188,29,251,193,190,29,251,193,192,29,251,193,194,29,251,193,196,29,251,193,204,29,251,193,206,29,251,193,208,29,251,193,210,29,251,193,212,29,251,193,232,29,251,193,234,29,251,193,246,29,251,193,248,29,251,193,250,29,251,193,160,29,251,193,176,29,251,193,178,29,251,193,214,29,251,193,216,29,251,193,218,29,251,193,220,29,251,193,222,29,251,193,224,29,251,193,226,29,251,193,238,29,251,193,240,29,251,193,252,29,251,193,254,29,251,193,2,30,251,193,4,30,251,193,32,30,251,193,34,30,251,193,66,30,251,193,100,30,251,193,152,30,251,193,204,30,251,193,206,30,251,193,208,30,251,193,210,30,251,193,212,30,251,193,214,30,251,193,216,30,251,193,226,30,251,193,228,30,251,193,230,30,251,193,232,30,251,193,16,30,251,193,18,30,251,193,20,30,251,193,26,30,251,193,28,30,251,193,30,30,251,193,40,30,251,193,42,30,251,193,46,30,251,193,48,30,251,193,50,30,251,193,228,181,251,193,52,30,251,193,58,30,251,193,60,30,251,193,62,30,251,193,64,30,251,193,68,30,251,193,72,30,251,193,84,30,251,193,86,30,251,193,92,30,251,193,94,30,251,193,96,30,251,193,98,30,251,193,108,30,251,193,110,30,251,193,112,30,251,193,114,30,251,193,116,30,251,193,118,30,251,193,120,30,251,193,22,30,251,193,198,232,251,193,200,232,251,193,220,232,251,193,232,232,251,193,234,232,251,193,20,233,251,193,72,233,251,193,86,233,251,193,90,233,251,193,124,233,251,193,126,233,251,193,128,233,251,193,130,233,251,193,168,233,251,193,170,233,251,193,172,233,251,193,62,205,252,193,204,233,251,193,206,233,251,193,208,233,251,193,210,233,251,193,238,233,251,193,240,233,251,193,242,233,251,193,244,233,251,193,246,233,251,193,248,233,251,193,38,234,251,193,40,234,251,193,42,234,251,193,44,234,251,193,80,30,251,193,82,30,251,193,158,30,251,193,234,30,251,193,18,31,251,193,68,31,251,193,108,31,251,193,110,31,251,193,162,31,251,193,218,31,251,193,220,31,251,193,222,31,251,193,224,31,251,193,226,31,251,193,16,32,251,193,18,32,251,193,94,32,251,193,96,32,251,193,98,32,251,193,160,32,251,193,224,32,251,193,226,32,251,193,14,33,251,193,58,33,251,193,114,34,251,193,238,34,251,193,190,35,251,193,192,35,251,193,194,35,251,193,6,36,251,193,8,36,251,193,124,36,251,193,124,30,251,193,126,30,251,193,128,30,251,193,130,30,251,193,144,30,251,193,146,30,251,193,148,30,251,193,160,30,251,193,162,30,251,193,164,30,251,193,166,30,251,193,168,30,251,193,188,30,251,193,190,30,251,193,192,30,251,193,194,30,251,193,196,30,251,193,198,30,251,193,200,30,251,193,222,30,251,193,236,30,251,193,238,30,251,193,240,30,251,193,242,30,251,193,244,30,251,193,246,30,251,193,252,30,251,193,254,30,251,193,10,31,251,193,12,31,251,193,14,31,251,193,146,138,252,193,156,30,251,193,174,30,251,193,176,30,251,193,178,30,251,193,180,30,251,193,182,30,251,193,184,30,251,193,186,30,251,193,220,30,251,193,8,31,251,193,28,31,251,193,62,31,251,193,78,31,251,193,80,31,251,193,82,31,251,193,84,31,251,193,98,31,251,193,100,31,251,193,102,31,251,193,104,31,251,193,106,31,251,193,146,31,251,193,148,31,251,193,150,31,251,193,152,31,251,193,154,31,251,193,156,31,251,193,158,31,251,193,208,31,251,193,210,31,251,193,212,31,251,193,214,31,251,193,250,30,251,193,2,31,251,193,4,31,251,193,22,31,251,193,24,31,251,193,26,31,251,193,72,31,251,193,74,31,251,193,96,31,251,193,200,31,251,193,202,31,251,193,250,31,251,193,252,31,251,193,254,31,251,193,2,32,251,193,66,32,251,193,68,32,251,193,138,32,251,193,140,32,251,193,142,32,251,193,144,32,251,193,146,32,251,193,202,32,251,193,204,32,251,193,206,32,251,193,254,32,251,193,2,33,251,193,4,33,251,193,44,33,251,193,46,33,251,193,48,33,251,193,78,33,251,193,30,31,251,193,32,31,251,193,34,31,251,193,36,31,251,193,38,31,251,193,40,31,251,193,44,31,251,193,46,31,251,193,48,31,251,193,52,31,251,193,54,31,251,193,56,31,251,193,64,31,251,193,70,31,251,193,86,31,251,193,88,31,251,193,90,31,251,193,112,31,251,193,114,31,251,193,116,31,251,193,118,31,251,193,120,31,251,193,122,31,251,193,164,31,251,193,166,31,251,193,168,31,251,193,170,31,251,193,172,31,251,193,174,31,251,193,176,31,251,193,178,31,251,193,180,31,251,193,132,31,251,193,134,31,251,193,136,31,251,193,138,31,251,193,190,31,251,193,192,31,251,193,194,31,251,193,196,31,251,193,198,31,251,193,244,31,251,193,246,31,251,193,248,31,251,193,60,32,251,193,62,32,251,193,64,32,251,193,134,32,251,193,136,32,251,193,194,32,251,193,196,32,251,193,198,32,251,193,200,32,251,193,250,32,251,193,252,32,251,193,40,33,251,193,42,33,251,193,76,33,251,193,114,33,251,193,116,33,251,193,118,33,251,193,176,33,251,193,20,34,251,193,22,34,251,193,228,31,251,193,182,31,251,193,230,31,251,193,232,31,251,193,234,31,251,193,236,31,251,193,238,31,251,193,240,31,251,193,20,32,251,193,22,32,251,193,24,32,251,193,26,32,251,193,28,32,251,193,30,32,251,193,32,32,251,193,34,32,251,193,36,32,251,193,38,32,251,193,40,32,251,193,42,32,251,193,44,32,251,193,46,32,251,193,48,32,251,193,50,32,251,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,193,216,31,251,193,10,32,251,193,12,32,251,193,14,32,251,193,72,32,251,193,74,32,251,193,76,32,251,193,78,32,251,193,80,32,251,193,82,32,251,193,84,32,251,193,86,32,251,193,88,32,251,193,90,32,251,193,92,32,251,193,154,32,251,193,156,32,251,193,158,32,251,193,214,32,251,193,216,32,251,193,218,32,251,193,220,32,251,193,222,32,251,193,12,33,251,193,56,33,251,193,88,33,251,193,90,33,251,193,92,33,251,193,94,33,251,193,128,33,251,193,130,33,251,193,142,33,251,193,54,32,251,193,56,32,251,193,126,32,251,193,128,32,251,193,130,32,251,193,132,32,251,193,186,32,251,193,188,32,251,193,190,32,251,193,246,32,251,193,248,32,251,193,36,33,251,193,38,33,251,193,74,33,251,193,112,33,251,193,138,33,251,193,184,33,251,193,18,34,251,193,52,34,251,193,106,34,251,193,128,34,251,193,164,34,251,193,234,34,251,193,22,35,251,193,38,35,251,193,64,35,251,193,72,35,251,193,74,35,251,193,114,35,251,193,118,35,251,193,56,36,251,193,58,36,251,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,193,162,32,251,193,164,32,251,193,166,32,251,193,168,32,251,193,170,32,251,193,172,32,251,193,174,32,251,193,176,32,251,193,178,32,251,193,180,32,251,193,182,32,251,193,184,32,251,193,228,32,251,193,230,32,251,193,232,32,251,193,234,32,251,193,236,32,251,193,238,32,251,193,240,32,251,193,242,32,251,193,244,32,251,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,193,150,32,251,193,152,32,251,193,208,32,251,193,210,32,251,193,212,32,251,193,6,33,251,193,8,33,251,193,10,33,251,193,50,33,251,193,52,33,251,193,54,33,251,193,84,33,251,193,86,33,251,193,126,33,251,193,162,33,251,193,164,33,251,193,110,34,251,193,214,34,251,193,24,35,251,193,44,35,251,193,46,35,251,193,58,35,251,193,94,35,251,193,102,35,251,193,104,35,251,193,176,35,251,193,178,35,251,193,226,35,251,193,228,35,251,193,230,35,251,193,78,36,251,193,80,36,251,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,193,60,33,251,193,62,33,251,193,64,33,251,193,66,33,251,193,68,33,251,193,70,33,251,193,96,33,251,193,98,33,251,193,100,33,251,193,102,33,251,193,104,33,251,193,106,33,251,193,108,33,251,193,110,33,251,193,132,33,251,193,72,33,251,193,134,33,251,193,136,33,251,193,144,33,251,193,146,33,251,193,148,33,251,193,150,33,251,193,152,33,251,193,154,33,251,193,156,33,251,193,166,33,251,193,168,33,251,193,170,33,251,193,80,33,251,193,82,33,251,193,120,33,251,193,122,33,251,193,124,33,251,193,140,33,251,193,160,33,251,193,178,33,251,193,186,33,251,193,228,33,251,193,230,33,251,193,232,33,251,193,234,33,251,193,24,34,251,193,26,34,251,193,28,34,251,193,54,34,251,193,82,34,251,193,84,34,251,193,92,34,251,193,94,34,251,193,132,34,251,193,134,34,251,193,154,34,251,193,168,34,251,193,170,34,251,193,192,34,251,193,12,35,251,193,42,35,251,193,56,35,251,193,70,35,251,193,92,35,251,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,193,166,112,252,193,168,112,252,193,170,112,252,193,172,112,252,193,174,112,252,193,176,112,252,193,178,112,252,193,180,112,252,193,182,112,252,193,184,112,252,193,186,112,252,193,188,112,252,193,190,112,252,193,192,112,252,193,158,33,251,193,194,112,252,193,196,112,252,193,198,112,252,193,200,112,252,193,220,112,252,193,222,112,252,193,224,112,252,193,248,112,252,193,226,112,252,193,228,112,252,193,230,112,252,193,232,112,252,193,172,33,251,193,174,33,251,193,180,33,251,193,182,33,251,193,188,33,251,193,190,33,251,193,194,33,251,193,198,33,251,193,200,33,251,193,212,33,251,193,214,33,251,193,216,33,251,193,218,33,251,193,220,33,251,193,222,33,251,193,224,33,251,193,226,33,251,193,242,33,251,193,244,33,251,193,246,33,251,193,248,33,251,193,4,34,251,193,6,34,251,193,8,34,251,193,10,34,251,193,12,34,251,193,14,34,251,193,16,34,251,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,193,196,33,251,193,202,33,251,193,204,33,251,193,206,33,251,193,210,33,251,193,236,33,251,193,238,33,251,193,240,33,251,193,250,33,251,193,252,33,251,193,254,33,251,193,2,34,251,193,30,34,251,193,56,34,251,193,58,34,251,193,60,34,251,193,112,34,251,193,136,34,251,193,138,34,251,193,172,34,251,193,174,34,251,193,200,34,251,193,206,34,251,193,216,34,251,193,218,34,251,193,220,34,251,193,222,34,251,193,224,34,251,193,236,34,251,193,14,35,251,193,26,35,251,193,60,35,251,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,193,62,34,251,193,64,34,251,193,66,34,251,193,68,34,251,193,70,34,251,193,72,34,251,193,74,34,251,193,76,34,251,193,78,34,251,193,86,34,251,193,88,34,251,193,90,34,251,193,96,34,251,193,98,34,251,193,100,34,251,193,102,34,251,193,104,34,251,193,148,147,251,193,116,34,251,193,118,34,251,193,218,100,251,193,120,34,251,193,122,34,251,193,124,34,251,193,126,34,251,193,142,34,251,193,170,53,251,193,172,53,251,193,174,53,251,193,176,53,251,193,178,53,251,193,180,53,251,193,188,53,251,193,190,53,251,193,192,53,251,193,202,53,251,193,204,53,251,193,206,53,251,193,208,53,251,193,210,53,251,193,80,34,251,193,212,53,251,193,214,53,251,193,216,53,251,193,218,53,251,193,68,55,251,193,220,53,251,193,222,53,251,193,224,53,251,193,226,53,251,193,228,53,251,193,246,53,251,193,248,53,251,193,250,53,251,193,252,53,251,193,22,54,251,193,24,54,251,193,34,54,251,193,108,34,251,193,130,34,251,193,152,34,251,193,166,34,251,193,40,35,251,193,66,35,251,193,68,35,251,193,76,35,251,193,78,35,251,193,80,35,251,193,88,35,251,193,90,35,251,193,98,35,251,193,120,35,251,193,122,35,251,193,124,35,251,193,216,35,251,193,218,35,251,193,62,36,251,193,64,36,251,193,66,36,251,193,182,36,251,193,184,36,251,193,186,36,251,193,188,36,251,193,190,36,251,193,192,36,251,193,194,36,251,193,108,37,251,193,110,37,251,193,112,37,251,193,114,37,251,193,144,34,251,193,146,34,251,193,148,34,251,193,150,34,251,193,156,34,251,193,158,34,251,193,160,34,251,193,162,34,251,193,176,34,251,193,178,34,251,193,180,34,251,193,182,34,251,193,238,154,253,193,184,34,251,193,186,34,251,193,188,34,251,193,190,34,251,193,194,34,251,193,196,34,251,193,198,34,251,193,202,34,251,193,204,34,251,193,208,34,251,193,210,34,251,193,212,34,251,193,226,34,251,193,228,34,251,193,230,34,251,193,190,56,251,193,232,34,251,193,240,34,251,193,242,34,251,193,244,34,251,193,246,34,251,193,248,34,251,193,250,34,251,193,252,34,251,193,254,34,251,193,2,35,251,193,4,35,251,193,6,35,251,193,8,35,251,193,10,35,251,193,16,35,251,193,18,35,251,193,20,35,251,193,28,35,251,193,30,35,251,193,32,35,251,193,156,140,253,193,34,35,251,193,36,35,251,193,48,35,251,193,50,35,251,193,52,35,251,193,54,35,251,193,62,35,251,193,82,35,251,193,84,35,251,193,84,96,251,193,96,35,251,193,106,35,251,193,108,35,251,193,116,35,251,193,14,161,251,193,16,161,251,193,22,161,251,193,24,161,251,193,26,161,251,193,28,161,251,193,38,161,251,193,40,161,251,193,42,161,251,193,44,161,251,193,46,161,251,193,48,161,251,193,56,161,251,193,86,35,251,193,62,161,251,193,64,161,251,193,66,161,251,193,68,161,251,193,80,161,251,193,82,161,251,193,84,161,251,193,92,161,251,193,96,161,251,193,102,161,251,193,104,161,251,193,106,161,251,193,110,161,251,193,116,161,251,193,118,161,251,193,134,161,251,193,136,161,251,193,140,161,251,193,100,35,251,193,110,35,251,193,170,35,251,193,172,35,251,193,174,35,251,193,220,35,251,193,222,35,251,193,224,35,251,193,68,36,251,193,70,36,251,193,72,36,251,193,74,36,251,193,76,36,251,193,196,36,251,193,198,36,251,193,200,36,251,193,202,36,251,193,204,36,251,193,206,36,251,193,208,36,251,193,210,36,251,193,116,37,251,193,118,37,251,193,120,37,251,193,122,37,251,193,124,37,251,193,126,37,251,193,128,37,251,193,130,37,251,193,132,37,251,193,134,37,251,193,136,37,251,193,178,132,251,193,158,154,251,193,148,154,251,193,160,154,251,193,162,154,251,193,164,154,251,193,166,154,251,193,168,154,251,193,170,154,251,193,172,154,251,193,180,154,251,193,188,154,251,193,196,154,251,193,198,154,251,193,200,154,251,193,202,154,251,193,204,154,251,193,206,154,251,193,208,154,251,193,210,154,251,193,114,130,251,193,112,35,251,193,216,154,251,193,250,154,251,193,252,154,251,193,254,154,251,193,2,155,251,193,4,155,251,193,6,155,251,193,8,155,251,193,10,155,251,193,12,155,251,193,126,35,251,193,128,35,251,193,130,35,251,193,138,35,251,193,144,35,251,193,154,35,251,193,156,35,251,193,158,35,251,193,160,35,251,193,162,35,251,193,164,35,251,193,166,35,251,193,168,35,251,193,196,35,251,193,198,35,251,193,200,35,251,193,202,35,251,193,204,35,251,193,206,35,251,193,208,35,251,193,210,35,251,193,10,36,251,193,212,35,251,193,12,36,251,193,14,36,251,193,16,36,251,193,18,36,251,193,214,35,251,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,193,132,35,251,193,134,35,251,193,136,35,251,193,140,35,251,193,142,35,251,193,146,35,251,193,148,35,251,193,150,35,251,193,152,35,251,193,180,35,251,193,182,35,251,193,184,35,251,193,186,35,251,193,188,35,251,193,232,35,251,193,234,35,251,193,236,35,251,193,238,35,251,193,240,35,251,193,242,35,251,193,244,35,251,193,246,35,251,193,248,35,251,193,250,35,251,193,252,35,251,193,254,35,251,193,2,36,251,193,4,36,251,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,193,60,36,251,193,178,36,251,193,180,36,251,193,102,37,251,193,104,37,251,193,106,37,251,193,4,38,251,193,6,38,251,193,186,38,251,193,188,38,251,193,72,39,251,193,74,39,251,193,76,39,251,193,78,39,251,193,218,39,251,193,220,39,251,193,222,39,251,193,74,40,251,193,76,40,251,193,78,40,251,193,52,41,251,193,110,41,251,193,112,41,251,193,150,42,251,193,152,42,251,193,154,42,251,193,220,42,251,193,222,42,251,193,38,43,251,193,112,43,251,193,114,43,251,193,116,43,251,193,82,36,251,193,84,36,251,193,86,36,251,193,212,36,251,193,214,36,251,193,216,36,251,193,218,36,251,193,142,37,251,193,144,37,251,193,146,37,251,193,148,37,251,193,150,37,251,193,28,38,251,193,30,38,251,193,32,38,251,193,34,38,251,193,36,38,251,193,38,38,251,193,40,38,251,193,220,38,251,193,222,38,251,193,224,38,251,193,226,38,251,193,116,39,251,193,118,39,251,193,120,39,251,193,122,39,251,193,106,40,251,193,108,40,251,193,110,40,251,193,230,40,251,193,232,40,251,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,193,220,36,251,193,222,36,251,193,224,36,251,193,226,36,251,193,228,36,251,193,230,36,251,193,232,36,251,193,234,36,251,193,236,36,251,193,238,36,251,193,240,36,251,193,242,36,251,193,244,36,251,193,246,36,251,193,248,36,251,193,250,36,251,193,252,36,251,193,254,36,251,193,126,36,251,193,8,37,251,193,10,37,251,193,12,37,251,193,14,37,251,193,16,37,251,193,18,37,251,193,182,37,251,193,184,37,251,193,186,37,251,193,188,37,251,193,190,37,251,193,86,38,251,193,88,38,251,193,90,38,251,193,92,38,251,193,94,38,251,193,248,38,251,193,250,38,251,193,252,38,251,193,254,38,251,193,2,39,251,193,4,39,251,193,134,39,251,193,136,39,251,193,138,39,251,193,140,39,251,193,142,39,251,193,12,40,251,193,14,40,251,193,122,40,251,193,124,40,251,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,193,2,37,251,193,4,37,251,193,6,37,251,193,152,37,251,193,154,37,251,193,156,37,251,193,158,37,251,193,160,37,251,193,162,37,251,193,164,37,251,193,166,37,251,193,168,37,251,193,170,37,251,193,172,37,251,193,174,37,251,193,176,37,251,193,178,37,251,193,180,37,251,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,193,138,37,251,193,140,37,251,193,14,38,251,193,16,38,251,193,18,38,251,193,20,38,251,193,22,38,251,193,24,38,251,193,26,38,251,193,198,38,251,193,200,38,251,193,202,38,251,193,204,38,251,193,206,38,251,193,208,38,251,193,210,38,251,193,212,38,251,193,214,38,251,193,216,38,251,193,218,38,251,193,94,39,251,193,96,39,251,193,98,39,251,193,100,39,251,193,102,39,251,193,104,39,251,193,106,39,251,193,108,39,251,193,110,39,251,193,112,39,251,193,114,39,251,193,234,39,251,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,193,10,38,251,193,12,38,251,193,190,38,251,193,192,38,251,193,194,38,251,193,196,38,251,193,80,39,251,193,82,39,251,193,84,39,251,193,86,39,251,193,88,39,251,193,90,39,251,193,92,39,251,193,224,39,251,193,226,39,251,193,228,39,251,193,230,39,251,193,232,39,251,193,80,40,251,193,82,40,251,193,84,40,251,193,216,40,251,193,218,40,251,193,220,40,251,193,222,40,251,193,224,40,251,193,54,41,251,193,162,41,251,193,188,41,251,193,190,41,251,193,192,41,251,193,208,41,251,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,193,228,38,251,193,124,39,251,193,230,38,251,193,232,38,251,193,234,38,251,193,236,38,251,193,238,38,251,193,240,38,251,193,242,38,251,193,244,38,251,193,126,39,251,193,128,39,251,193,130,39,251,193,132,39,251,193,246,38,251,193,248,39,251,193,250,39,251,193,252,39,251,193,254,39,251,193,2,40,251,193,4,40,251,193,6,40,251,193,8,40,251,193,10,40,251,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,193,6,39,251,193,8,39,251,193,10,39,251,193,12,39,251,193,14,39,251,193,16,39,251,193,18,39,251,193,20,39,251,193,22,39,251,193,24,39,251,193,26,39,251,193,28,39,251,193,30,39,251,193,32,39,251,193,34,39,251,193,36,39,251,193,38,39,251,193,40,39,251,193,42,39,251,193,44,39,251,193,46,39,251,193,48,39,251,193,50,39,251,193,52,39,251,193,54,39,251,193,184,38,251,193,56,39,251,193,58,39,251,193,60,39,251,193,62,39,251,193,64,39,251,193,66,39,251,193,68,39,251,193,70,39,251,193,144,39,251,193,146,39,251,193,148,39,251,193,150,39,251,193,152,39,251,193,154,39,251,193,156,39,251,193,158,39,251,193,160,39,251,193,162,39,251,193,164,39,251,193,166,39,251,193,168,39,251,193,170,39,251,193,172,39,251,193,174,39,251,193,176,39,251,193,178,39,251,193,180,39,251,193,182,39,251,193,184,39,251,193,186,39,251,193,188,39,251,193,190,39,251,193,192,39,251,193,194,39,251,193,196,39,251,193,198,39,251,193,200,39,251,193,228,142,252,193,202,39,251,193,204,39,251,193,206,39,251,193,208,39,251,193,210,39,251,193,212,39,251,193,214,39,251,193,216,39,251,193,16,40,251,193,18,40,251,193,20,40,251,193,22,40,251,193,24,40,251,193,26,40,251,193,28,40,251,193,30,40,251,193,32,40,251,193,34,40,251,193,36,40,251,193,38,40,251,193,40,40,251,193,42,40,251,193,44,40,251,193,46,40,251,193,48,40,251,193,50,40,251,193,52,40,251,193,54,40,251,193,56,40,251,193,58,40,251,193,60,40,251,193,62,40,251,193,64,40,251,193,66,40,251,193,68,40,251,193,236,39,251,193,238,39,251,193,240,39,251,193,242,39,251,193,244,39,251,193,246,39,251,193,86,40,251,193,88,40,251,193,90,40,251,193,92,40,251,193,94,40,251,193,96,40,251,193,98,40,251,193,100,40,251,193,102,40,251,193,104,40,251,193,226,40,251,193,228,40,251,193,56,41,251,193,114,41,251,193,116,41,251,193,118,41,251,193,120,41,251,193,122,41,251,193,164,41,251,193,166,41,251,193,194,41,251,193,196,41,251,193,212,41,251,193,252,41,251,193,26,42,251,193,48,42,251,193,70,40,251,193,72,40,251,193,146,40,251,193,148,40,251,193,150,40,251,193,152,40,251,193,154,40,251,193,156,40,251,193,158,40,251,193,160,40,251,193,162,40,251,193,164,40,251,193,166,40,251,193,168,40,251,193,170,40,251,193,172,40,251,193,174,40,251,193,176,40,251,193,178,40,251,193,180,40,251,193,182,40,251,193,184,40,251,193,186,40,251,193,188,40,251,193,190,40,251,193,192,40,251,193,194,40,251,193,196,40,251,193,198,40,251,193,200,40,251,193,202,40,251,193,204,40,251,193,112,40,251,193,114,40,251,193,116,40,251,193,118,40,251,193,120,40,251,193,240,40,251,193,242,40,251,193,244,40,251,193,246,40,251,193,248,40,251,193,250,40,251,193,252,40,251,193,254,40,251,193,2,41,251,193,4,41,251,193,6,41,251,193,60,41,251,193,62,41,251,193,64,41,251,193,66,41,251,193,68,41,251,193,126,41,251,193,198,41,251,193,226,41,251,193,228,41,251,193,240,41,251,193,242,41,251,193,8,42,251,193,10,42,251,193,16,42,251,193,18,42,251,193,28,42,251,193,126,40,251,193,128,40,251,193,130,40,251,193,132,40,251,193,134,40,251,193,136,40,251,193,138,40,251,193,140,40,251,193,142,40,251,193,144,40,251,193,8,41,251,193,70,41,251,193,72,41,251,193,74,41,251,193,128,41,251,193,130,41,251,193,174,41,251,193,200,41,251,193,214,41,251,193,36,42,251,193,64,42,251,193,66,42,251,193,68,42,251,193,116,42,251,193,118,42,251,193,188,42,251,193,190,42,251,193,192,42,251,193,10,43,251,193,74,43,251,193,76,43,251,193,78,43,251,193,10,41,251,193,206,40,251,193,208,40,251,193,210,40,251,193,212,40,251,193,214,40,251,193,12,41,251,193,14,41,251,193,16,41,251,193,18,41,251,193,20,41,251,193,22,41,251,193,24,41,251,193,26,41,251,193,28,41,251,193,30,41,251,193,32,41,251,193,34,41,251,193,36,41,251,193,38,41,251,193,40,41,251,193,42,41,251,193,44,41,251,193,46,41,251,193,48,41,251,193,50,41,251,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,193,234,40,251,193,236,40,251,193,238,40,251,193,58,41,251,193,124,41,251,193,168,41,251,193,170,41,251,193,172,41,251,193,248,41,251,193,90,42,251,193,160,42,251,193,162,42,251,193,164,42,251,193,236,42,251,193,238,42,251,193,142,43,251,193,144,43,251,193,196,43,251,193,198,43,251,193,200,43,251,193,254,43,251,193,64,44,251,193,128,44,251,193,130,44,251,193,160,44,251,193,216,44,251,193,232,44,251,193,14,45,251,193,102,45,251,193,104,45,251,193,154,45,251,193,156,45,251,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,193,144,51,253,193,132,41,251,193,134,41,251,193,136,41,251,193,138,41,251,193,140,41,251,193,142,41,251,193,144,41,251,193,146,41,251,193,148,41,251,193,150,41,251,193,152,41,251,193,154,41,251,193,156,41,251,193,158,41,251,193,160,41,251,193,176,41,251,193,178,41,251,193,180,41,251,193,182,41,251,193,184,41,251,193,186,41,251,193,202,41,251,193,204,41,251,193,206,41,251,193,216,41,251,193,230,41,251,193,218,41,251,193,220,41,251,193,222,41,251,193,224,41,251,193,232,41,251,193,234,41,251,193,236,41,251,193,238,41,251,193,244,41,251,193,250,41,251,193,2,42,251,193,4,42,251,193,12,42,251,193,20,42,251,193,22,42,251,193,24,42,251,193,42,42,251,193,44,42,251,193,46,42,251,193,70,42,251,193,72,42,251,193,74,42,251,193,76,42,251,193,78,42,251,193,80,42,251,193,82,42,251,193,210,41,251,193,246,41,251,193,254,41,251,193,6,42,251,193,14,42,251,193,88,42,251,193,156,42,251,193,158,42,251,193,224,42,251,193,40,43,251,193,42,43,251,193,44,43,251,193,46,43,251,193,48,43,251,193,118,43,251,193,120,43,251,193,122,43,251,193,124,43,251,193,126,43,251,193,186,43,251,193,244,43,251,193,246,43,251,193,50,44,251,193,52,44,251,193,116,44,251,193,156,44,251,193,158,44,251,193,170,44,251,193,172,44,251,193,212,44,251,193,214,44,251,193,240,44,251,193,30,42,251,193,32,42,251,193,34,42,251,193,52,42,251,193,54,42,251,193,56,42,251,193,58,42,251,193,60,42,251,193,62,42,251,193,92,42,251,193,94,42,251,193,96,42,251,193,98,42,251,193,100,42,251,193,102,42,251,193,104,42,251,193,106,42,251,193,108,42,251,193,110,42,251,193,112,42,251,193,114,42,251,193,166,42,251,193,168,42,251,193,170,42,251,193,172,42,251,193,174,42,251,193,176,42,251,193,178,42,251,193,180,42,251,193,182,42,251,193,184,42,251,193,186,42,251,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,193,2,78,251,193,4,78,251,193,6,78,251,193,8,78,251,193,40,79,251,193,42,79,251,193,44,79,251,193,46,79,251,193,48,79,251,193,50,79,251,193,52,79,251,193,84,80,251,193,86,80,251,193,88,80,251,193,40,81,251,193,42,81,251,193,192,81,251,193,194,81,251,193,196,81,251,193,52,82,251,193,136,82,251,193,138,82,251,193,238,82,251,193,14,83,251,193,96,83,251,193,38,42,251,193,128,83,251,193,50,42,251,193,226,42,251,193,228,42,251,193,230,42,251,193,232,42,251,193,234,42,251,193,50,43,251,193,52,43,251,193,54,43,251,193,56,43,251,193,58,43,251,193,60,43,251,193,128,43,251,193,130,43,251,193,132,43,251,193,134,43,251,193,136,43,251,193,138,43,251,193,140,43,251,193,188,43,251,193,190,43,251,193,192,43,251,193,194,43,251,193,248,43,251,193,250,43,251,193,252,43,251,193,54,44,251,193,56,44,251,193,58,44,251,193,60,44,251,193,62,44,251,193,118,44,251,193,84,42,251,193,86,42,251,193,120,42,251,193,122,42,251,193,124,42,251,193,126,42,251,193,128,42,251,193,130,42,251,193,132,42,251,193,134,42,251,193,136,42,251,193,138,42,251,193,140,42,251,193,142,42,251,193,144,42,251,193,146,42,251,193,148,42,251,193,194,42,251,193,196,42,251,193,198,42,251,193,200,42,251,193,202,42,251,193,204,42,251,193,206,42,251,193,208,42,251,193,210,42,251,193,212,42,251,193,214,42,251,193,216,42,251,193,218,42,251,193,12,43,251,193,14,43,251,193,240,42,251,193,242,42,251,193,244,42,251,193,246,42,251,193,248,42,251,193,250,42,251,193,252,42,251,193,254,42,251,193,2,43,251,193,4,43,251,193,6,43,251,193,8,43,251,193,62,43,251,193,64,43,251,193,66,43,251,193,68,43,251,193,70,43,251,193,72,43,251,193,146,43,251,193,148,43,251,193,150,43,251,193,152,43,251,193,154,43,251,193,106,225,251,193,156,43,251,193,158,43,251,193,160,43,251,193,202,43,251,193,204,43,251,193,206,43,251,193,208,43,251,193,2,44,251,193,16,43,251,193,18,43,251,193,20,43,251,193,22,43,251,193,24,43,251,193,26,43,251,193,28,43,251,193,30,43,251,193,32,43,251,193,34,43,251,193,36,43,251,193,80,43,251,193,82,43,251,193,84,43,251,193,86,43,251,193,88,43,251,193,90,43,251,193,92,43,251,193,94,43,251,193,96,43,251,193,98,43,251,193,100,43,251,193,102,43,251,193,104,43,251,193,106,43,251,193,108,43,251,193,110,43,251,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,193,162,43,251,193,210,43,251,193,78,44,251,193,180,44,251,193,182,44,251,193,184,44,251,193,186,44,251,193,202,44,251,193,136,45,251,193,162,45,251,193,176,45,251,193,242,45,251,193,14,46,251,193,54,46,251,193,226,214,252,193,136,46,251,193,138,46,251,193,246,46,251,193,20,47,251,193,22,47,251,193,24,47,251,193,42,47,251,193,112,47,251,193,136,47,251,193,170,47,251,193,194,47,251,193,236,47,251,193,238,47,251,193,170,48,251,193,102,49,251,193,248,49,251,193,250,49,251,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,193,212,43,251,193,214,43,251,193,216,43,251,193,218,43,251,193,220,43,251,193,222,43,251,193,224,43,251,193,226,43,251,193,228,43,251,193,230,43,251,193,232,43,251,193,234,43,251,193,236,43,251,193,238,43,251,193,20,44,251,193,22,44,251,193,24,44,251,193,26,44,251,193,28,44,251,193,30,44,251,193,32,44,251,193,34,44,251,193,36,44,251,193,38,44,251,193,40,44,251,193,42,44,251,193,44,44,251,193,184,43,251,193,240,43,251,193,242,43,251,193,46,44,251,193,112,44,251,193,114,44,251,193,154,44,251,193,230,44,251,193,238,45,251,193,254,45,251,193,36,46,251,193,68,46,251,193,122,46,251,193,150,46,251,193,152,46,251,193,210,46,251,193,230,46,251,193,50,47,251,193,106,47,251,193,34,48,251,193,124,48,251,193,146,48,251,193,190,48,251,193,206,48,251,193,224,48,251,193,226,48,251,193,246,48,251,193,12,49,251,193,26,49,251,193,52,49,251,193,92,49,251,193,172,49,251,193,4,44,251,193,6,44,251,193,8,44,251,193,10,44,251,193,12,44,251,193,14,44,251,193,16,44,251,193,18,44,251,193,66,44,251,193,68,44,251,193,70,44,251,193,72,44,251,193,74,44,251,193,76,44,251,193,132,44,251,193,134,44,251,193,136,44,251,193,138,44,251,193,140,44,251,193,162,44,251,193,174,44,251,193,176,44,251,193,178,44,251,193,218,44,251,193,224,44,251,193,244,44,251,193,246,44,251,193,248,44,251,193,250,44,251,193,252,44,251,193,254,44,251,193,2,45,251,193,80,44,251,193,82,44,251,193,84,44,251,193,86,44,251,193,88,44,251,193,90,44,251,193,92,44,251,193,94,44,251,193,96,44,251,193,98,44,251,193,100,44,251,193,102,44,251,193,104,44,251,193,106,44,251,193,108,44,251,193,110,44,251,193,142,44,251,193,144,44,251,193,146,44,251,193,148,44,251,193,150,44,251,193,152,44,251,193,164,44,251,193,166,44,251,193,168,44,251,193,188,44,251,193,190,44,251,193,192,44,251,193,194,44,251,193,196,44,251,193,198,44,251,193,200,44,251,193,120,44,251,193,122,44,251,193,124,44,251,193,126,44,251,193,12,45,251,193,38,45,251,193,48,45,251,193,60,45,251,193,62,45,251,193,82,45,251,193,84,45,251,193,100,45,251,193,152,45,251,193,172,45,251,193,188,45,251,193,190,45,251,193,2,46,251,193,18,46,251,193,38,46,251,193,48,46,251,193,90,46,251,193,102,46,251,193,104,46,251,193,158,46,251,193,160,46,251,193,176,46,251,193,178,46,251,193,234,46,251,193,252,46,251,193,254,46,251,193,54,47,251,193,158,47,251,193,204,44,251,193,206,44,251,193,208,44,251,193,210,44,251,193,220,44,251,193,222,44,251,193,226,44,251,193,228,44,251,193,234,44,251,193,236,44,251,193,238,44,251,193,242,44,251,193,10,45,251,193,26,45,251,193,28,45,251,193,30,45,251,193,32,45,251,193,42,45,251,193,44,45,251,193,46,45,251,193,52,45,251,193,54,45,251,193,56,45,251,193,58,45,251,193,70,45,251,193,72,45,251,193,74,45,251,193,76,45,251,193,78,45,251,193,80,45,251,193,88,45,251,193,90,45,251,193,4,45,251,193,6,45,251,193,8,45,251,193,16,45,251,193,18,45,251,193,20,45,251,193,22,45,251,193,24,45,251,193,40,45,251,193,50,45,251,193,64,45,251,193,66,45,251,193,68,45,251,193,86,45,251,193,106,45,251,193,132,45,251,193,134,45,251,193,158,45,251,193,160,45,251,193,174,45,251,193,206,45,251,193,234,45,251,193,240,45,251,193,248,45,251,193,50,46,251,193,52,46,251,193,82,46,251,193,92,46,251,193,94,46,251,193,96,46,251,193,98,46,251,193,106,46,251,193,34,45,251,193,36,45,251,193,128,45,251,193,130,45,251,193,170,45,251,193,210,45,251,193,220,45,251,193,246,45,251,193,56,46,251,193,58,46,251,193,80,46,251,193,88,46,251,193,100,46,251,193,124,46,251,193,126,46,251,193,128,46,251,193,154,46,251,193,174,46,251,193,156,46,251,193,212,46,251,193,232,46,251,193,16,47,251,193,32,47,251,193,52,47,251,193,70,47,251,193,72,47,251,193,80,47,251,193,84,47,251,193,86,47,251,193,110,47,251,193,38,48,251,193,86,48,251,193,92,45,251,193,94,45,251,193,96,45,251,193,98,45,251,193,108,45,251,193,110,45,251,193,112,45,251,193,114,45,251,193,116,45,251,193,118,45,251,193,120,45,251,193,122,45,251,193,124,45,251,193,126,45,251,193,138,45,251,193,140,45,251,193,142,45,251,193,144,45,251,193,146,45,251,193,148,45,251,193,150,45,251,193,164,45,251,193,166,45,251,193,168,45,251,193,178,45,251,193,180,45,251,193,182,45,251,193,184,45,251,193,186,45,251,193,192,45,251,193,194,45,251,193,196,45,251,193,198,45,251,193,200,45,251,193,202,45,251,193,208,45,251,193,212,45,251,193,214,45,251,193,216,45,251,193,218,45,251,193,222,45,251,193,224,45,251,193,226,45,251,193,228,45,251,193,230,45,251,193,232,45,251,193,236,45,251,193,244,45,251,193,250,45,251,193,4,46,251,193,6,46,251,193,8,46,251,193,10,46,251,193,12,46,251,193,16,46,251,193,22,46,251,193,24,46,251,193,26,46,251,193,28,46,251,193,30,46,251,193,32,46,251,193,34,46,251,193,40,46,251,193,42,46,251,193,204,45,251,193,252,45,251,193,20,46,251,193,64,46,251,193,162,46,251,193,236,46,251,193,238,46,251,193,2,47,251,193,34,47,251,193,92,47,251,193,132,47,251,193,144,47,251,193,162,47,251,193,204,47,251,193,206,47,251,193,224,47,251,193,16,48,251,193,18,48,251,193,40,48,251,193,42,48,251,193,44,48,251,193,90,48,251,193,106,48,251,193,108,48,251,193,128,48,251,193,130,48,251,193,150,48,251,193,152,48,251,193,198,48,251,193,210,48,251,193,212,48,251,193,254,48,251,193,108,46,251,193,110,46,251,193,112,46,251,193,130,46,251,193,132,46,251,193,134,46,251,193,164,46,251,193,180,46,251,193,182,46,251,193,184,46,251,193,214,46,251,193,216,46,251,193,240,46,251,193,242,46,251,193,244,46,251,193,18,47,251,193,36,47,251,193,38,47,251,193,40,47,251,193,56,47,251,193,74,47,251,193,82,47,251,193,94,47,251,193,100,47,251,193,118,47,251,193,120,47,251,193,122,47,251,193,134,47,251,193,146,47,251,193,150,47,251,193,164,47,251,193,166,47,251,193,194,46,251,193,196,46,251,193,198,46,251,193,152,47,251,193,200,46,251,193,202,46,251,193,204,46,251,193,206,46,251,193,208,46,251,193,220,46,251,193,222,46,251,193,224,46,251,193,226,46,251,193,228,46,251,193,248,46,251,193,250,46,251,193,4,47,251,193,6,47,251,193,8,47,251,193,10,47,251,193,12,47,251,193,14,47,251,193,26,47,251,193,28,47,251,193,30,47,251,193,44,47,251,193,46,47,251,193,48,47,251,193,58,47,251,193,60,47,251,193,62,47,251,193,64,47,251,193,66,47,251,193,68,47,251,193,76,47,251,193,78,47,251,193,88,47,251,193,90,47,251,193,96,47,251,193,98,47,251,193,102,47,251,193,104,47,251,193,108,47,251,193,114,47,251,193,116,47,251,193,124,47,251,193,128,47,251,193,130,47,251,193,138,47,251,193,140,47,251,193,142,47,251,193,148,47,251,193,154,47,251,193,156,47,251,193,160,47,251,193,172,47,251,193,174,47,251,193,176,47,251,193,178,47,251,193,196,47,251,193,198,47,251,193,216,47,251,193,218,47,251,193,200,47,251,193,202,47,251,193,102,48,251,193,104,48,251,193,126,48,251,193,148,48,251,193,166,48,251,193,168,48,251,193,196,48,251,193,232,48,251,193,234,48,251,193,236,48,251,193,14,49,251,193,16,49,251,193,28,49,251,193,38,49,251,193,76,49,251,193,94,49,251,193,190,49,251,193,252,49,251,193,12,50,251,193,24,50,251,193,44,50,251,193,78,50,251,193,80,50,251,193,82,50,251,193,84,50,251,193,86,50,251,193,112,50,251,193,114,50,251,193,146,50,251,193,148,50,251,193,156,50,251,193,220,47,251,193,222,47,251,193,240,47,251,193,242,47,251,193,244,47,251,193,246,47,251,193,248,47,251,193,250,47,251,193,252,47,251,193,254,47,251,193,2,48,251,193,4,48,251,193,6,48,251,193,8,48,251,193,10,48,251,193,12,48,251,193,14,48,251,193,20,48,251,193,22,48,251,193,24,48,251,193,26,48,251,193,28,48,251,193,30,48,251,193,32,48,251,193,60,48,251,193,62,48,251,193,64,48,251,193,66,48,251,193,68,48,251,193,70,48,251,193,72,48,251,193,74,48,251,193,76,48,251,193,78,48,251,193,80,48,251,193,110,48,251,193,112,48,251,193,114,48,251,193,116,48,251,193,118,48,251,193,120,48,251,193,122,48,251,193,134,48,251,193,136,48,251,193,138,48,251,193,140,48,251,193,142,48,251,193,144,48,251,193,156,48,251,193,158,48,251,193,160,48,251,193,162,48,251,193,172,48,251,193,174,48,251,193,176,48,251,193,178,48,251,193,180,48,251,193,182,48,251,193,184,48,251,193,186,48,251,193,188,48,251,193,200,48,251,193,202,48,251,193,204,48,251,193,38,10,252,193,40,10,252,193,68,10,252,193,70,10,252,193,72,10,252,193,82,48,251,193,96,10,252,193,98,10,252,193,100,10,252,193,102,10,252,193,104,10,252,193,106,10,252,193,108,10,252,193,110,10,252,193,112,10,252,193,114,10,252,193,116,10,252,193,118,10,252,193,198,165,251,193,140,10,252,193,142,10,252,193,144,10,252,193,146,10,252,193,148,10,252,193,150,10,252,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,193,88,48,251,193,98,48,251,193,100,48,251,193,164,48,251,193,192,48,251,193,194,48,251,193,208,48,251,193,228,48,251,193,230,48,251,193,248,48,251,193,250,48,251,193,252,48,251,193,24,49,251,193,34,49,251,193,126,49,251,193,152,49,251,193,174,49,251,193,200,49,251,193,202,49,251,193,210,49,251,193,212,49,251,193,220,49,251,193,230,49,251,193,232,49,251,193,234,49,251,193,10,50,251,193,42,50,251,193,120,50,251,193,132,50,251,193,144,50,251,193,152,50,251,193,154,50,251,193,18,49,251,193,20,49,251,193,42,49,251,193,128,49,251,193,154,49,251,193,156,49,251,193,158,49,251,193,204,49,251,193,206,49,251,193,228,49,251,193,242,49,251,193,14,50,251,193,46,50,251,193,48,50,251,193,62,50,251,193,88,50,251,193,108,50,251,193,122,50,251,193,124,50,251,193,158,50,251,193,162,50,251,193,216,50,251,193,8,51,251,193,10,51,251,193,60,51,251,193,172,51,251,193,174,51,251,193,246,51,251,193,248,51,251,193,250,51,251,193,252,51,251,193,254,51,251,193,56,49,251,193,58,49,251,193,60,49,251,193,78,49,251,193,80,49,251,193,96,49,251,193,98,49,251,193,100,49,251,193,176,49,251,193,240,49,251,193,244,49,251,193,246,49,251,193,254,49,251,193,16,50,251,193,18,50,251,193,20,50,251,193,26,50,251,193,28,50,251,193,50,50,251,193,52,50,251,193,54,50,251,193,56,50,251,193,64,50,251,193,66,50,251,193,68,50,251,193,70,50,251,193,72,50,251,193,90,50,251,193,92,50,251,193,94,50,251,193,116,50,251,193,118,50,251,193,128,119,251,193,130,119,251,193,132,119,251,193,156,119,251,193,158,119,251,193,160,119,251,193,186,119,251,193,188,119,251,193,190,119,251,193,192,119,251,193,194,119,251,193,90,49,251,193,196,119,251,193,198,119,251,193,240,119,251,193,242,119,251,193,244,119,251,193,246,119,251,193,248,119,251,193,250,119,251,193,252,119,251,193,254,119,251,193,2,120,251,193,4,120,251,193,6,120,251,193,8,120,251,193,10,120,251,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,193,108,49,251,193,110,49,251,193,112,49,251,193,114,49,251,193,116,49,251,193,118,49,251,193,120,49,251,193,122,49,251,193,124,49,251,193,130,49,251,193,132,49,251,193,134,49,251,193,136,49,251,193,138,49,251,193,140,49,251,193,142,49,251,193,144,49,251,193,146,49,251,193,148,49,251,193,160,49,251,193,162,49,251,193,164,49,251,193,166,49,251,193,168,49,251,193,242,208,253,193,170,49,251,193,178,49,251,193,180,49,251,193,182,49,251,193,184,49,251,193,186,49,251,193,188,49,251,193,72,55,251,193,74,55,251,193,76,55,251,193,78,55,251,193,80,55,251,193,82,55,251,193,84,55,251,193,86,55,251,193,88,55,251,193,150,49,251,193,112,55,251,193,114,55,251,193,116,55,251,193,118,55,251,193,120,55,251,193,122,55,251,193,124,55,251,193,126,55,251,193,128,55,251,193,130,55,251,193,132,55,251,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,193,192,49,251,193,194,49,251,193,196,49,251,193,24,102,251,193,198,49,251,193,208,49,251,193,214,49,251,193,216,49,251,193,222,49,251,193,224,49,251,193,226,49,251,193,236,49,251,193,238,49,251,193,2,50,251,193,4,50,251,193,6,50,251,193,8,50,251,193,22,50,251,193,30,50,251,193,32,50,251,193,34,50,251,193,36,50,251,193,38,50,251,193,40,50,251,193,60,50,251,193,96,50,251,193,98,50,251,193,100,50,251,193,102,50,251,193,104,50,251,193,110,50,251,193,126,50,251,193,218,49,251,193,76,50,251,193,106,50,251,193,210,50,251,193,48,51,251,193,98,51,251,193,100,51,251,193,158,51,251,193,160,51,251,193,162,51,251,193,164,51,251,193,226,51,251,193,228,51,251,193,230,51,251,193,232,51,251,193,40,52,251,193,42,52,251,193,92,52,251,193,94,52,251,193,158,52,251,193,160,52,251,193,162,52,251,193,232,52,251,193,234,52,251,193,26,53,251,193,28,53,251,193,60,53,251,193,86,53,251,193,230,53,251,193,254,53,251,193,26,54,251,193,50,54,251,193,58,50,251,193,74,50,251,193,226,50,251,193,228,50,251,193,230,50,251,193,20,51,251,193,22,51,251,193,24,51,251,193,70,51,251,193,72,51,251,193,124,51,251,193,186,51,251,193,188,51,251,193,190,51,251,193,70,52,251,193,138,52,251,193,188,52,251,193,190,52,251,193,254,52,251,193,56,53,251,193,104,53,251,193,136,53,251,193,244,53,251,193,18,54,251,193,20,54,251,193,92,54,251,193,138,54,251,193,140,54,251,193,190,54,251,193,230,54,251,193,24,55,251,193,66,55,251,193,128,50,251,193,130,50,251,193,138,50,251,193,140,50,251,193,142,50,251,193,150,50,251,193,164,50,251,193,166,50,251,193,168,50,251,193,170,50,251,193,172,50,251,193,176,50,251,193,188,50,251,193,196,50,251,193,198,50,251,193,200,50,251,193,202,50,251,193,204,50,251,193,206,50,251,193,208,50,251,193,236,50,251,193,238,50,251,193,240,50,251,193,242,50,251,193,244,50,251,193,246,50,251,193,248,50,251,193,250,50,251,193,252,50,251,193,254,50,251,193,2,51,251,193,4,51,251,193,134,50,251,193,136,50,251,193,178,50,251,193,180,50,251,193,182,50,251,193,184,50,251,193,186,50,251,193,190,50,251,193,192,50,251,193,194,50,251,193,218,50,251,193,220,50,251,193,222,50,251,193,224,50,251,193,12,51,251,193,14,51,251,193,16,51,251,193,18,51,251,193,62,51,251,193,64,51,251,193,66,51,251,193,68,51,251,193,112,51,251,193,114,51,251,193,116,51,251,193,118,51,251,193,120,51,251,193,122,51,251,193,176,51,251,193,178,51,251,193,180,51,251,193,182,51,251,193,160,50,251,193,174,50,251,193,212,50,251,193,52,51,251,193,54,51,251,193,102,51,251,193,104,51,251,193,106,51,251,193,108,51,251,193,166,51,251,193,168,51,251,193,238,51,251,193,44,52,251,193,46,52,251,193,48,52,251,193,50,52,251,193,52,52,251,193,96,52,251,193,98,52,251,193,100,52,251,193,102,52,251,193,104,52,251,193,106,52,251,193,108,52,251,193,164,52,251,193,166,52,251,193,168,52,251,193,170,52,251,193,236,52,251,193,238,52,251,193,30,53,251,193,32,53,251,193,214,50,251,193,6,51,251,193,56,51,251,193,58,51,251,193,110,51,251,193,170,51,251,193,240,51,251,193,242,51,251,193,244,51,251,193,54,52,251,193,56,52,251,193,58,52,251,193,110,52,251,193,112,52,251,193,114,52,251,193,116,52,251,193,118,52,251,193,172,52,251,193,174,52,251,193,240,52,251,193,242,52,251,193,244,52,251,193,34,53,251,193,52,53,251,193,110,53,251,193,182,53,251,193,184,53,251,193,236,53,251,193,238,53,251,193,240,53,251,193,4,54,251,193,6,54,251,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,193,192,51,251,193,194,51,251,193,196,51,251,193,198,51,251,193,200,51,251,193,202,51,251,193,204,51,251,193,206,51,251,193,208,51,251,193,210,51,251,193,212,51,251,193,214,51,251,193,216,51,251,193,218,51,251,193,220,51,251,193,222,51,251,193,224,51,251,193,12,52,251,193,14,52,251,193,16,52,251,193,18,52,251,193,20,52,251,193,22,52,251,193,24,52,251,193,140,52,251,193,128,251,252,193,130,251,252,193,224,251,252,193,226,251,252,193,228,251,252,193,230,251,252,193,38,252,252,193,40,252,252,193,42,252,252,193,44,252,252,193,112,252,252,193,150,252,252,193,152,252,252,193,174,252,252,193,178,252,252,193,180,252,252,193,194,252,252,193,214,252,252,193,184,51,251,193,216,252,252,193,218,252,252,193,2,253,252,193,4,253,252,193,6,253,252,193,8,253,252,193,10,253,252,193,12,253,252,193,54,253,252,193,56,253,252,193,58,253,252,193,98,253,252,193,100,253,252,193,2,52,251,193,4,52,251,193,6,52,251,193,8,52,251,193,60,52,251,193,62,52,251,193,64,52,251,193,66,52,251,193,68,52,251,193,10,52,251,193,134,52,251,193,136,52,251,193,178,52,251,193,180,52,251,193,182,52,251,193,184,52,251,193,186,52,251,193,250,52,251,193,252,52,251,193,54,53,251,193,82,53,251,193,114,53,251,193,120,53,251,193,130,53,251,193,132,53,251,193,134,53,251,193,144,53,251,193,146,53,251,193,148,53,251,193,162,53,251,193,164,53,251,193,186,53,251,193,26,52,251,193,28,52,251,193,30,52,251,193,32,52,251,193,34,52,251,193,36,52,251,193,38,52,251,193,72,52,251,193,74,52,251,193,76,52,251,193,78,52,251,193,80,52,251,193,82,52,251,193,84,52,251,193,86,52,251,193,88,52,251,193,90,52,251,193,142,52,251,193,144,52,251,193,146,52,251,193,148,52,251,193,150,52,251,193,152,52,251,193,154,52,251,193,156,52,251,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,193,120,52,251,193,122,52,251,193,124,52,251,193,126,52,251,193,128,52,251,193,130,52,251,193,132,52,251,193,176,52,251,193,246,52,251,193,248,52,251,193,64,53,251,193,66,53,251,193,90,53,251,193,160,53,251,193,242,53,251,193,52,54,251,193,186,54,251,193,216,54,251,193,218,54,251,193,220,54,251,193,222,54,251,193,224,54,251,193,226,54,251,193,6,55,251,193,8,55,251,193,10,55,251,193,12,55,251,193,50,55,251,193,52,55,251,193,54,55,251,193,104,55,251,193,106,55,251,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,193,2,53,251,193,4,53,251,193,6,53,251,193,8,53,251,193,10,53,251,193,12,53,251,193,14,53,251,193,16,53,251,193,18,53,251,193,20,53,251,193,22,53,251,193,24,53,251,193,226,91,252,193,36,53,251,193,38,53,251,193,40,53,251,193,42,53,251,193,44,53,251,193,58,53,251,193,46,53,251,193,48,53,251,193,50,53,251,193,62,53,251,193,88,53,251,193,108,53,251,193,142,53,251,193,194,53,251,193,232,53,251,193,234,53,251,193,2,54,251,193,28,54,251,193,70,54,251,193,72,54,251,193,74,54,251,193,108,54,251,193,110,54,251,193,120,54,251,193,160,54,251,193,210,54,251,193,250,54,251,193,252,54,251,193,254,54,251,193,2,55,251,193,4,55,251,193,42,55,251,193,94,55,251,193,96,55,251,193,138,55,251,193,140,55,251,193,142,55,251,193,144,55,251,193,68,53,251,193,70,53,251,193,72,53,251,193,74,53,251,193,76,53,251,193,78,53,251,193,80,53,251,193,84,53,251,193,178,20,252,193,92,53,251,193,94,53,251,193,96,53,251,193,98,53,251,193,100,53,251,193,102,53,251,193,106,53,251,193,112,53,251,193,116,53,251,193,118,53,251,193,122,53,251,193,124,53,251,193,126,53,251,193,128,53,251,193,138,53,251,193,140,53,251,193,150,53,251,193,152,53,251,193,154,53,251,193,156,53,251,193,158,53,251,193,166,53,251,193,168,53,251,193,196,53,251,193,198,53,251,193,200,53,251,193,14,54,251,193,16,54,251,193,32,54,251,193,78,54,251,193,90,54,251,193,122,54,251,193,124,54,251,193,128,54,251,193,130,54,251,193,132,54,251,193,134,54,251,193,136,54,251,193,162,54,251,193,164,54,251,193,166,54,251,193,188,54,251,193,228,54,251,193,14,55,251,193,16,55,251,193,18,55,251,193,20,55,251,193,22,55,251,193,56,55,251,193,58,55,251,193,60,55,251,193,62,55,251,193,64,55,251,193,108,55,251,193,110,55,251,193,8,54,251,193,10,54,251,193,12,54,251,193,30,54,251,193,76,54,251,193,126,54,251,193,184,54,251,193,212,54,251,193,214,54,251,193,44,55,251,193,46,55,251,193,48,55,251,193,98,55,251,193,100,55,251,193,102,55,251,193,146,55,251,193,148,55,251,193,190,55,251,193,192,55,251,193,228,55,251,193,230,55,251,193,40,56,251,193,42,56,251,193,56,56,251,193,222,56,251,193,224,56,251,193,112,57,251,193,114,57,251,193,116,57,251,193,118,57,251,193,120,57,251,193,122,57,251,193,36,54,251,193,38,54,251,193,40,54,251,193,42,54,251,193,44,54,251,193,46,54,251,193,54,54,251,193,56,54,251,193,58,54,251,193,60,54,251,193,62,54,251,193,64,54,251,193,66,54,251,193,82,54,251,193,84,54,251,193,86,54,251,193,88,54,251,193,94,54,251,193,96,54,251,193,100,54,251,193,112,54,251,193,102,54,251,193,104,54,251,193,106,54,251,193,114,54,251,193,116,54,251,193,142,54,251,193,144,54,251,193,146,54,251,193,148,54,251,193,150,54,251,193,152,54,251,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,193,48,54,251,193,16,194,252,193,18,194,252,193,20,194,252,193,22,194,252,193,24,194,252,193,26,194,252,193,28,194,252,193,30,194,252,193,32,194,252,193,34,194,252,193,36,194,252,193,38,194,252,193,40,194,252,193,42,194,252,193,44,194,252,193,46,194,252,193,48,194,252,193,68,194,252,193,70,194,252,193,72,194,252,193,74,194,252,193,76,194,252,193,78,194,252,193,80,194,252,193,82,194,252,193,84,194,252,193,68,54,251,193,98,54,251,193,118,54,251,193,156,54,251,193,158,54,251,193,208,54,251,193,248,54,251,193,38,55,251,193,40,55,251,193,90,55,251,193,92,55,251,193,134,55,251,193,136,55,251,193,220,55,251,193,222,55,251,193,8,56,251,193,34,56,251,193,72,56,251,193,216,56,251,193,170,58,251,193,172,58,251,193,174,58,251,193,4,60,251,193,6,60,251,193,8,60,251,193,10,60,251,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,193,154,54,251,193,168,54,251,193,170,54,251,193,172,54,251,193,174,54,251,193,176,54,251,193,178,54,251,193,180,54,251,193,182,54,251,193,192,54,251,193,194,54,251,193,196,54,251,193,198,54,251,193,200,54,251,193,202,54,251,193,204,54,251,193,206,54,251,193,232,54,251,193,234,54,251,193,236,54,251,193,238,54,251,193,240,54,251,193,242,54,251,193,244,54,251,193,246,54,251,193,26,55,251,193,28,55,251,193,30,55,251,193,32,55,251,193,34,55,251,193,36,55,251,193,70,55,251,193,182,55,251,193,184,55,251,193,186,55,251,193,188,55,251,193,224,55,251,193,226,55,251,193,10,56,251,193,12,56,251,193,36,56,251,193,38,56,251,193,54,56,251,193,74,56,251,193,76,56,251,193,84,56,251,193,86,56,251,193,126,56,251,193,218,56,251,193,220,56,251,193,100,57,251,193,102,57,251,193,104,57,251,193,106,57,251,193,108,57,251,193,110,57,251,193,176,58,251,193,178,58,251,193,180,58,251,193,182,58,251,193,184,58,251,193,186,58,251,193,188,58,251,193,12,60,251,193,194,55,251,193,196,55,251,193,232,55,251,193,234,55,251,193,14,56,251,193,44,56,251,193,98,56,251,193,226,56,251,193,130,57,251,193,132,57,251,193,212,58,251,193,214,58,251,193,216,58,251,193,218,58,251,193,68,60,251,193,70,60,251,193,72,60,251,193,74,60,251,193,76,60,251,193,78,60,251,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,193,198,55,251,193,16,56,251,193,144,50,253,193,182,56,251,193,184,56,251,193,186,56,251,193,24,57,251,193,26,57,251,193,28,57,251,193,18,58,251,193,20,58,251,193,22,58,251,193,24,58,251,193,26,58,251,193,28,58,251,193,30,58,251,193,32,58,251,193,34,58,251,193,36,58,251,193,38,58,251,193,40,58,251,193,42,58,251,193,44,58,251,193,96,59,251,193,98,59,251,193,100,59,251,193,102,59,251,193,104,59,251,193,106,59,251,193,108,59,251,193,110,59,251,193,112,59,251,193,236,55,251,193,58,56,251,193,88,56,251,193,112,56,251,193,128,56,251,193,130,56,251,193,132,56,251,193,134,56,251,193,136,56,251,193,138,56,251,193,140,56,251,193,142,56,251,193,144,56,251,193,146,56,251,193,148,56,251,193,150,56,251,193,152,56,251,193,154,56,251,193,156,56,251,193,158,56,251,193,160,56,251,193,162,56,251,193,164,56,251,193,166,56,251,193,168,56,251,193,170,56,251,193,172,56,251,193,174,56,251,193,176,56,251,193,178,56,251,193,180,56,251,193,228,56,251,193,150,35,251,193,212,155,251,193,206,193,251,193,236,171,252,193,200,121,251,193,114,25,252,193,60,229,251,193,206,73,253,193,118,15,253,193,174,126,253,193,42,25,253,193,252,157,251,193,6,26,251,193,160,69,251,193,238,55,251,193,192,89,251,193,182,93,251,193,118,141,251,193,96,226,251,193,232,245,251,193,110,248,251,193,130,33,251,193,54,75,252,193,12,111,252,193,216,134,252,193,160,135,252,193,36,136,252,193,246,137,252,193,234,139,253,193,186,170,252,193,136,195,252,193,178,243,252,193,26,56,251,193,28,56,251,193,30,56,251,193,46,56,251,193,48,56,251,193,50,56,251,193,52,56,251,193,60,56,251,193,62,56,251,193,64,56,251,193,66,56,251,193,68,56,251,193,70,56,251,193,78,56,251,193,80,56,251,193,82,56,251,193,90,56,251,193,94,56,251,193,96,56,251,193,100,56,251,193,102,56,251,193,104,56,251,193,106,56,251,193,108,56,251,193,110,56,251,193,114,56,251,193,116,56,251,193,118,56,251,193,120,56,251,193,122,56,251,193,124,56,251,193,192,56,251,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,193,32,56,251,193,56,126,251,193,234,98,251,193,92,56,251,193,236,98,251,193,58,99,251,193,60,99,251,193,62,99,251,193,104,99,251,193,166,99,251,193,168,99,251,193,182,99,251,193,202,99,251,193,220,99,251,193,222,99,251,193,224,99,251,193,228,99,251,193,232,99,251,193,234,99,251,193,236,99,251,193,238,99,251,193,240,99,251,193,252,99,251,193,254,99,251,193,12,100,251,193,32,100,251,193,34,100,251,193,44,100,251,193,46,100,251,193,48,100,251,193,62,100,251,193,80,100,251,193,82,100,251,193,104,100,251,193,194,56,251,193,196,56,251,193,198,56,251,193,200,56,251,193,202,56,251,193,204,56,251,193,206,56,251,193,208,56,251,193,210,56,251,193,212,56,251,193,214,56,251,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,193,230,56,251,193,232,56,251,193,234,56,251,193,236,56,251,193,238,56,251,193,240,56,251,193,242,56,251,193,244,56,251,193,246,56,251,193,248,56,251,193,250,56,251,193,252,56,251,193,254,56,251,193,2,57,251,193,4,57,251,193,6,57,251,193,8,57,251,193,10,57,251,193,12,57,251,193,14,57,251,193,16,57,251,193,18,57,251,193,20,57,251,193,22,57,251,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,193,124,57,251,193,126,57,251,193,128,57,251,193,190,58,251,193,192,58,251,193,194,58,251,193,196,58,251,193,198,58,251,193,200,58,251,193,202,58,251,193,204,58,251,193,206,58,251,193,208,58,251,193,210,58,251,193,36,60,251,193,38,60,251,193,40,60,251,193,42,60,251,193,44,60,251,193,46,60,251,193,48,60,251,193,50,60,251,193,52,60,251,193,54,60,251,193,56,60,251,193,58,60,251,193,60,60,251,193,62,60,251,193,64,60,251,193,66,60,251,193,234,61,251,193,236,61,251,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,193,220,58,251,193,222,58,251,193,224,58,251,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,193,226,58,251,193,228,58,251,193,230,58,251,193,232,58,251,193,234,58,251,193,236,58,251,193,238,58,251,193,240,58,251,193,242,58,251,193,244,58,251,193,246,58,251,193,248,58,251,193,250,58,251,193,252,58,251,193,254,58,251,193,2,59,251,193,4,59,251,193,6,59,251,193,8,59,251,193,10,59,251,193,12,59,251,193,14,59,251,193,16,59,251,193,18,59,251,193,20,59,251,193,22,59,251,193,24,59,251,193,26,59,251,193,28,59,251,193,30,59,251,193,32,59,251,193,34,59,251,193,36,59,251,193,38,59,251,193,40,59,251,193,42,59,251,193,44,59,251,193,46,59,251,193,48,59,251,193,50,59,251,193,52,59,251,193,54,59,251,193,56,59,251,193,58,59,251,193,60,59,251,193,62,59,251,193,64,59,251,193,66,59,251,193,68,59,251,193,70,59,251,193,72,59,251,193,74,59,251,193,76,59,251,193,78,59,251,193,80,59,251,193,82,59,251,193,84,59,251,193,86,59,251,193,88,59,251,193,90,59,251,193,92,59,251,193,94,59,251,193,80,60,251,193,82,60,251,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,193,14,60,251,193,16,60,251,193,18,60,251,193,20,60,251,193,22,60,251,193,24,60,251,193,26,60,251,193,28,60,251,193,30,60,251,193,32,60,251,193,34,60,251,193,198,61,251,193,200,61,251,193,202,61,251,193,204,61,251,193,206,61,251,193,208,61,251,193,210,61,251,193,212,61,251,193,214,61,251,193,216,61,251,193,218,61,251,193,220,61,251,193,222,61,251,193,224,61,251,193,226,61,251,193,228,61,251,193,230,61,251,193,232,61,251,193,242,63,251,193,244,63,251,193,246,63,251,193,84,60,251,193,86,60,251,193,88,60,251,193,90,60,251,193,92,60,251,193,94,60,251,193,96,60,251,193,98,60,251,193,100,60,251,193,102,60,251,193,104,60,251,193,106,60,251,193,108,60,251,193,110,60,251,193,112,60,251,193,114,60,251,193,116,60,251,193,118,60,251,193,120,60,251,193,122,60,251,193,124,60,251,193,126,60,251,193,128,60,251,193,130,60,251,193,132,60,251,193,134,60,251,193,136,60,251,193,138,60,251,193,140,60,251,193,142,60,251,193,144,60,251,193,146,60,251,193,148,60,251,193,150,60,251,193,152,60,251,193,154,60,251,193,156,60,251,193,158,60,251,193,160,60,251,193,162,60,251,193,164,60,251,193,166,60,251,193,168,60,251,193,170,60,251,193,172,60,251,193,174,60,251,193,176,60,251,193,178,60,251,193,180,60,251,193,182,60,251,193,184,60,251,193,186,60,251,193,188,60,251,193,190,60,251,193,192,60,251,193,194,60,251,193,196,60,251,193,198,60,251,193,200,60,251,193,202,60,251,193,204,60,251,193,206,60,251,193,208,60,251,193,210,60,251,193,212,60,251,193,214,60,251,193,216,60,251,193,218,60,251,193,220,60,251,193,222,60,251,193,224,60,251,193,226,60,251,193,228,60,251,193,230,60,251,193,232,60,251,193,234,60,251,193,236,60,251,193,238,60,251,193,240,60,251,193,202,62,251,193,204,62,251,193,206,62,251,193,208,62,251,193,210,62,251,193,212,62,251,193,214,62,251,193,216,62,251,193,218,62,251,193,220,62,251,193,222,62,251,193,224,62,251,193,226,62,251,193,228,62,251,193,230,62,251,193,232,62,251,193,6,65,251,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,193,220,63,251,193,222,63,251,193,224,63,251,193,226,63,251,193,228,63,251,193,230,63,251,193,232,63,251,193,234,63,251,193,236,63,251,193,238,63,251,193,240,63,251,193,88,66,251,193,90,66,251,193,92,66,251,193,94,66,251,193,96,66,251,193,98,66,251,193,100,66,251,193,102,66,251,193,104,66,251,193,106,66,251,193,108,66,251,193,110,66,251,193,112,66,251,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,193,238,61,251,193,240,61,251,193,242,61,251,193,244,61,251,193,246,61,251,193,248,61,251,193,250,61,251,193,252,61,251,193,254,61,251,193,2,62,251,193,4,62,251,193,6,62,251,193,8,62,251,193,10,62,251,193,12,62,251,193,14,62,251,193,16,62,251,193,18,62,251,193,20,62,251,193,22,62,251,193,24,62,251,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,193,76,64,251,193,78,64,251,193,80,64,251,193,82,64,251,193,84,64,251,193,86,64,251,193,88,64,251,193,90,64,251,193,92,64,251,193,94,64,251,193,96,64,251,193,98,64,251,193,100,64,251,193,246,66,251,193,248,66,251,193,250,66,251,193,252,66,251,193,254,66,251,193,2,67,251,193,4,67,251,193,6,67,251,193,8,67,251,193,10,67,251,193,12,67,251,193,14,67,251,193,16,67,251,193,18,67,251,193,120,69,251,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,193,52,65,251,193,94,63,251,193,96,63,251,193,98,63,251,193,100,63,251,193,102,63,251,193,248,93,252,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,193,158,81,252,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,193,248,63,251,193,250,63,251,193,252,63,251,193,254,63,251,193,2,64,251,193,4,64,251,193,6,64,251,193,8,64,251,193,10,64,251,193,12,64,251,193,14,64,251,193,16,64,251,193,18,64,251,193,20,64,251,193,22,64,251,193,24,64,251,193,26,64,251,193,28,64,251,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,193,20,67,251,193,200,64,251,193,202,64,251,193,204,64,251,193,206,64,251,193,208,64,251,193,30,214,251,193,210,64,251,193,212,64,251,193,214,64,251,193,216,64,251,193,218,64,251,193,220,64,251,193,222,64,251,193,224,64,251,193,226,64,251,193,228,64,251,193,230,64,251,193,22,67,251,193,232,64,251,193,234,64,251,193,236,64,251,193,238,64,251,193,240,64,251,193,242,64,251,193,244,64,251,193,246,64,251,193,248,64,251,193,250,64,251,193,252,64,251,193,254,64,251,193,2,65,251,193,4,65,251,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,193,8,65,251,193,10,65,251,193,12,65,251,193,14,65,251,193,16,65,251,193,18,65,251,193,20,65,251,193,22,65,251,193,24,65,251,193,26,65,251,193,28,65,251,193,30,65,251,193,32,65,251,193,34,65,251,193,36,65,251,193,38,65,251,193,40,65,251,193,42,65,251,193,44,65,251,193,46,65,251,193,48,65,251,193,50,65,251,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,193,218,67,251,193,220,67,251,193,222,67,251,193,224,67,251,193,226,67,251,193,228,67,251,193,230,67,251,193,232,67,251,193,234,67,251,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,193,252,68,251,193,254,68,251,193,2,69,251,193,4,69,251,193,6,69,251,193,8,69,251,193,10,69,251,193,12,69,251,193,14,69,251,193,16,69,251,193,18,69,251,193,20,69,251,193,22,69,251,193,24,69,251,193,26,69,251,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,193,156,69,251,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,193,158,69,251,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,193,160,67,251,193,130,74,251,193,132,74,251,193,134,74,251,193,136,74,251,193,138,74,251,193,140,74,251,193,142,74,251,193,144,74,251,193,146,74,251,193,148,74,251,193,150,74,251,193,98,72,251,193,152,74,251,193,100,72,251,193,154,74,251,193,22,65,252,193,156,74,251,193,158,74,251,193,160,74,251,193,162,74,251,193,164,74,251,193,166,74,251,193,168,74,251,193,170,74,251,193,30,76,251,193,32,76,251,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,193,14,70,251,193,16,70,251,193,18,70,251,193,20,70,251,193,22,70,251,193,24,70,251,193,26,70,251,193,28,70,251,193,30,70,251,193,32,70,251,193,34,70,251,193,36,70,251,193,38,70,251,193,40,70,251,193,236,67,251,193,238,67,251,193,240,67,251,193,242,67,251,193,244,67,251,193,246,67,251,193,248,67,251,193,250,67,251,193,252,67,251,193,254,67,251,193,2,68,251,193,4,68,251,193,6,68,251,193,8,68,251,193,10,68,251,193,12,68,251,193,14,68,251,193,16,68,251,193,18,68,251,193,20,68,251,193,22,68,251,193,24,68,251,193,26,68,251,193,28,68,251,193,30,68,251,193,32,68,251,193,34,68,251,193,36,68,251,193,38,68,251,193,40,68,251,193,42,68,251,193,44,68,251,193,46,68,251,193,48,68,251,193,46,70,251,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,193,48,70,251,193,50,70,251,193,52,70,251,193,54,70,251,193,56,70,251,193,216,68,251,193,218,68,251,193,220,68,251,193,222,68,251,193,58,70,251,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,193,96,71,251,193,98,71,251,193,100,71,251,193,102,71,251,193,104,71,251,193,106,71,251,193,108,71,251,193,110,71,251,193,112,71,251,193,114,71,251,193,116,71,251,193,118,71,251,193,120,71,251,193,122,71,251,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,193,28,69,251,193,30,69,251,193,32,69,251,193,124,71,251,193,126,71,251,193,128,71,251,193,130,71,251,193,132,71,251,193,134,71,251,193,136,71,251,193,138,71,251,193,140,71,251,193,142,71,251,193,144,71,251,193,146,71,251,193,148,71,251,193,150,71,251,193,152,71,251,193,154,71,251,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,193,122,69,251,193,124,69,251,193,126,69,251,193,128,69,251,193,130,69,251,193,132,69,251,193,134,69,251,193,136,69,251,193,138,69,251,193,140,69,251,193,142,69,251,193,144,69,251,193,146,69,251,193,148,69,251,193,150,69,251,193,152,69,251,193,154,69,251,193,228,71,251,193,230,71,251,193,232,71,251,193,234,71,251,193,236,71,251,193,238,71,251,193,240,71,251,193,242,71,251,193,244,71,251,193,246,71,251,193,248,71,251,193,250,71,251,193,252,71,251,193,254,71,251,193,48,74,251,193,160,69,251,193,162,69,251,193,164,69,251,193,166,69,251,193,168,69,251,193,170,69,251,193,172,69,251,193,174,69,251,193,176,69,251,193,178,69,251,193,180,69,251,193,182,69,251,193,184,69,251,193,186,69,251,193,188,69,251,193,190,69,251,193,192,69,251,193,194,69,251,193,196,69,251,193,198,69,251,193,200,69,251,193,202,69,251,193,204,69,251,193,206,69,251,193,208,69,251,193,210,69,251,193,212,69,251,193,214,69,251,193,216,69,251,193,218,69,251,193,220,69,251,193,222,69,251,193,224,69,251,193,226,69,251,193,228,69,251,193,230,69,251,193,232,69,251,193,234,69,251,193,236,69,251,193,238,69,251,193,240,69,251,193,242,69,251,193,244,69,251,193,246,69,251,193,248,69,251,193,250,69,251,193,252,69,251,193,254,69,251,193,2,70,251,193,4,70,251,193,6,70,251,193,8,70,251,193,10,70,251,193,12,70,251,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,193,42,70,251,193,44,70,251,193,102,72,251,193,104,72,251,193,106,72,251,193,108,72,251,193,110,72,251,193,112,72,251,193,114,72,251,193,116,72,251,193,118,72,251,193,120,72,251,193,122,72,251,193,124,72,251,193,126,72,251,193,128,72,251,193,130,72,251,193,174,74,251,193,176,74,251,193,178,74,251,193,180,74,251,193,182,74,251,193,184,74,251,193,186,74,251,193,188,74,251,193,190,74,251,193,192,74,251,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,193,60,70,251,193,62,70,251,193,64,70,251,193,66,70,251,193,68,70,251,193,70,70,251,193,72,70,251,193,74,70,251,193,76,70,251,193,78,70,251,193,80,70,251,193,82,70,251,193,84,70,251,193,86,70,251,193,88,70,251,193,90,70,251,193,92,70,251,193,94,70,251,193,96,70,251,193,98,70,251,193,100,70,251,193,102,70,251,193,104,70,251,193,106,70,251,193,108,70,251,193,110,70,251,193,112,70,251,193,114,70,251,193,116,70,251,193,118,70,251,193,120,70,251,193,122,70,251,193,124,70,251,193,126,70,251,193,128,70,251,193,130,70,251,193,132,70,251,193,134,70,251,193,136,70,251,193,138,70,251,193,140,70,251,193,142,70,251,193,144,70,251,193,146,70,251,193,148,70,251,193,150,70,251,193,152,70,251,193,154,70,251,193,200,74,251,193,202,74,251,193,204,74,251,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,193,232,73,251,193,234,73,251,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,193,68,74,251,193,70,74,251,193,84,72,251,193,86,72,251,193,88,72,251,193,90,72,251,193,92,72,251,193,94,72,251,193,96,72,251,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,193,158,75,251,193,160,75,251,193,162,75,251,193,164,75,251,193,166,75,251,193,168,75,251,193,170,75,251,193,172,75,251,193,174,75,251,193,92,77,251,193,94,77,251,193,96,77,251,193,98,77,251,193,100,77,251,193,102,77,251,193,104,77,251,193,174,78,251,193,176,78,251,193,178,78,251,193,180,78,251,193,218,79,251,193,220,79,251,193,222,79,251,193,224,79,251,193,226,79,251,193,228,79,251,193,184,80,251,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,193,178,75,251,193,180,75,251,193,182,75,251,193,184,75,251,193,186,75,251,193,188,75,251,193,190,75,251,193,192,75,251,193,194,75,251,193,196,75,251,193,198,75,251,193,200,75,251,193,202,75,251,193,204,75,251,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,193,236,73,251,193,238,73,251,193,240,73,251,193,242,73,251,193,244,73,251,193,246,73,251,193,248,73,251,193,250,73,251,193,252,73,251,193,254,73,251,193,2,74,251,193,4,74,251,193,6,74,251,193,8,74,251,193,10,74,251,193,12,74,251,193,14,74,251,193,16,74,251,193,18,74,251,193,20,74,251,193,22,74,251,193,24,74,251,193,26,74,251,193,28,74,251,193,30,74,251,193,32,74,251,193,34,74,251,193,36,74,251,193,38,74,251,193,40,74,251,193,42,74,251,193,44,74,251,193,46,74,251,193,206,75,251,193,208,75,251,193,210,75,251,193,212,75,251,193,214,75,251,193,216,75,251,193,218,75,251,193,220,75,251,193,222,75,251,193,224,75,251,193,226,75,251,193,228,75,251,193,230,75,251,193,232,75,251,193,234,75,251,193,236,75,251,193,238,75,251,193,240,75,251,193,242,75,251,193,244,75,251,193,246,75,251,193,248,75,251,193,250,75,251,193,252,75,251,193,254,75,251,193,2,76,251,193,4,76,251,193,6,76,251,193,8,76,251,193,10,76,251,193,12,76,251,193,50,74,251,193,52,74,251,193,54,74,251,193,56,74,251,193,58,74,251,193,60,74,251,193,62,74,251,193,64,74,251,193,66,74,251,193,18,76,251,193,20,76,251,193,22,76,251,193,24,76,251,193,26,76,251,193,28,76,251,193,192,77,251,193,194,77,251,193,196,77,251,193,198,77,251,193,200,77,251,193,202,77,251,193,204,77,251,193,206,77,251,193,246,78,251,193,248,78,251,193,250,78,251,193,252,78,251,193,254,78,251,193,2,79,251,193,4,79,251,193,50,80,251,193,52,80,251,193,34,76,251,193,36,76,251,193,38,76,251,193,40,76,251,193,42,76,251,193,44,76,251,193,46,76,251,193,48,76,251,193,50,76,251,193,52,76,251,193,54,76,251,193,56,76,251,193,58,76,251,193,60,76,251,193,62,76,251,193,64,76,251,193,66,76,251,193,68,76,251,193,70,76,251,193,72,76,251,193,172,74,251,193,74,76,251,193,76,76,251,193,78,76,251,193,80,76,251,193,82,76,251,193,84,76,251,193,86,76,251,193,88,76,251,193,208,77,251,193,210,77,251,193,212,77,251,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,193,124,140,252,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,193,154,75,251,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,193,156,75,251,193,44,77,251,193,46,77,251,193,48,77,251,193,50,77,251,193,52,77,251,193,54,77,251,193,56,77,251,193,58,77,251,193,60,77,251,193,62,77,251,193,64,77,251,193,66,77,251,193,68,77,251,193,70,77,251,193,72,77,251,193,74,77,251,193,76,77,251,193,78,77,251,193,80,77,251,193,82,77,251,193,84,77,251,193,86,77,251,206,32,9,0,206,32,9,0,206,32,9,0,193,14,76,251,193,16,76,251,193,140,77,251,193,142,77,251,193,144,77,251,193,146,77,251,193,148,77,251,193,150,77,251,193,152,77,251,193,154,77,251,193,156,77,251,193,158,77,251,193,160,77,251,193,162,77,251,193,164,77,251,193,166,77,251,193,168,77,251,193,170,77,251,193,172,77,251,193,174,77,251,193,176,77,251,193,178,77,251,193,180,77,251,193,182,77,251,193,184,77,251,193,186,77,251,193,188,77,251,193,190,77,251,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,193,70,190,251,193,72,190,251,193,74,190,251,193,76,190,251,193,78,190,251,193,80,190,251,193,82,190,251,193,84,190,251,193,86,190,251,193,88,77,251,193,88,190,251,193,90,190,251,193,120,190,251,193,122,190,251,193,124,190,251,193,126,190,251,193,128,190,251,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,193,90,77,251,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,193,184,78,251,193,186,78,251,193,188,78,251,193,190,78,251,193,192,78,251,193,194,78,251,193,196,78,251,193,198,78,251,193,200,78,251,193,202,78,251,193,204,78,251,193,232,79,251,193,234,79,251,193,236,79,251,193,238,79,251,193,240,79,251,193,242,79,251,193,244,79,251,193,246,79,251,193,248,79,251,193,250,79,251,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,193,214,77,251,193,216,77,251,193,218,77,251,193,220,77,251,193,222,77,251,193,224,77,251,193,226,77,251,193,228,77,251,193,230,77,251,193,232,77,251,193,234,77,251,193,236,77,251,193,238,77,251,193,240,77,251,193,242,77,251,193,244,77,251,193,246,77,251,193,248,77,251,193,250,77,251,193,252,77,251,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,193,60,80,251,193,62,80,251,193,64,80,251,193,66,80,251,193,68,80,251,193,70,80,251,193,72,80,251,193,74,80,251,193,76,80,251,193,78,80,251,193,80,80,251,193,82,80,251,193,22,81,251,193,24,81,251,193,26,81,251,193,28,81,251,193,30,81,251,193,32,81,251,193,34,81,251,193,36,81,251,193,38,81,251,193,254,77,251,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,193,90,80,251,193,92,80,251,193,94,80,251,193,96,80,251,193,98,80,251,193,100,80,251,193,102,80,251,193,104,80,251,193,106,80,251,193,108,80,251,193,110,80,251,193,112,80,251,193,114,80,251,193,116,80,251,193,118,80,251,193,120,80,251,193,216,79,251,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,193,222,80,251,193,224,80,251,193,226,80,251,193,228,80,251,193,230,80,251,193,232,80,251,193,234,80,251,193,236,80,251,193,238,80,251,193,240,80,251,193,242,80,251,193,244,80,251,193,246,80,251,193,248,80,251,193,250,80,251,193,252,80,251,193,254,80,251,193,2,81,251,193,4,81,251,193,6,81,251,193,8,81,251,193,10,81,251,193,54,80,251,193,56,80,251,193,58,80,251,193,16,81,251,193,18,81,251,193,20,81,251,193,162,81,251,193,164,81,251,193,166,81,251,193,168,81,251,193,32,82,251,193,34,82,251,193,128,82,251,193,242,83,251,193,244,83,251,193,42,84,251,193,44,84,251,193,206,84,251,193,38,85,251,193,90,85,251,193,116,85,251,193,202,85,251,193,246,85,251,193,248,85,251,193,70,87,251,193,72,87,251,193,74,87,251,193,76,87,251,193,78,87,251,193,80,87,251,193,82,87,251,193,70,88,251,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,193,10,66,252,193,170,80,251,193,172,80,251,193,174,80,251,193,176,80,251,193,178,80,251,193,180,80,251,193,182,80,251,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,193,186,80,251,193,188,80,251,193,108,81,251,193,110,81,251,193,112,81,251,193,102,82,251,193,212,82,251,193,214,82,251,193,232,83,251,193,34,84,251,193,80,84,251,193,136,84,251,193,190,84,251,193,192,84,251,193,32,85,251,193,76,85,251,193,130,85,251,193,236,85,251,193,238,85,251,193,64,86,251,193,66,86,251,193,68,86,251,193,70,86,251,193,72,86,251,193,14,87,251,193,16,87,251,193,18,87,251,193,20,87,251,193,22,87,251,193,24,87,251,193,26,87,251,193,28,87,251,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,193,114,81,251,193,116,81,251,193,118,81,251,193,120,81,251,193,122,81,251,193,124,81,251,193,126,81,251,193,128,81,251,193,130,81,251,193,132,81,251,193,18,82,251,193,20,82,251,193,22,82,251,193,106,82,251,193,158,82,251,193,160,82,251,193,162,82,251,193,216,82,251,193,218,82,251,193,220,82,251,193,12,81,251,193,14,81,251,193,134,81,251,193,136,81,251,193,138,81,251,193,140,81,251,193,142,81,251,193,144,81,251,193,146,81,251,193,148,81,251,193,150,81,251,193,152,81,251,193,154,81,251,193,156,81,251,193,158,81,251,193,160,81,251,193,24,82,251,193,26,82,251,193,28,82,251,193,30,82,251,193,108,82,251,193,110,82,251,193,112,82,251,193,114,82,251,193,116,82,251,193,118,82,251,193,120,82,251,193,122,82,251,193,124,82,251,193,126,82,251,193,164,82,251,193,166,82,251,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,193,36,82,251,193,38,82,251,193,40,82,251,193,42,82,251,193,44,82,251,193,46,82,251,193,48,82,251,193,130,82,251,193,190,81,251,193,50,82,251,193,132,82,251,193,134,82,251,193,180,82,251,193,182,82,251,193,184,82,251,193,234,82,251,193,236,82,251,193,54,83,251,193,76,83,251,193,84,83,251,193,86,83,251,193,88,83,251,193,90,83,251,193,92,83,251,193,114,83,251,193,116,83,251,193,118,83,251,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,193,160,100,251,193,82,195,252,193,54,82,251,193,56,82,251,193,58,82,251,193,60,82,251,193,62,82,251,193,64,82,251,193,66,82,251,193,68,82,251,193,70,82,251,193,72,82,251,193,74,82,251,193,76,82,251,193,16,82,251,193,78,82,251,193,80,82,251,193,82,82,251,193,84,82,251,193,86,82,251,193,88,82,251,193,90,82,251,193,92,82,251,193,94,82,251,193,96,82,251,193,98,82,251,193,100,82,251,193,140,82,251,193,142,82,251,193,144,82,251,193,146,82,251,193,148,82,251,193,150,82,251,193,152,82,251,193,154,82,251,193,156,82,251,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,193,168,82,251,193,170,82,251,193,172,82,251,193,174,82,251,193,176,82,251,193,178,82,251,193,222,82,251,193,224,82,251,193,226,82,251,193,228,82,251,193,230,82,251,193,232,82,251,193,6,83,251,193,8,83,251,193,10,83,251,193,12,83,251,193,36,83,251,193,38,83,251,193,40,83,251,193,50,83,251,193,52,83,251,193,64,83,251,193,66,83,251,193,68,83,251,193,70,83,251,193,74,83,251,193,112,83,251,193,238,83,251,193,240,83,251,193,40,84,251,193,86,84,251,193,88,84,251,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,193,240,82,251,193,242,82,251,193,244,82,251,193,246,82,251,193,248,82,251,193,250,82,251,193,252,82,251,193,254,82,251,193,2,83,251,193,16,83,251,193,18,83,251,193,20,83,251,193,22,83,251,193,24,83,251,193,26,83,251,193,28,83,251,193,30,83,251,193,32,83,251,193,34,83,251,193,42,83,251,193,44,83,251,193,56,83,251,193,58,83,251,193,60,83,251,193,46,83,251,193,72,83,251,193,4,83,251,193,48,83,251,193,110,83,251,193,234,83,251,193,236,83,251,193,36,84,251,193,38,84,251,193,82,84,251,193,84,84,251,193,138,84,251,193,140,84,251,193,194,84,251,193,196,84,251,193,244,84,251,193,246,84,251,193,248,84,251,193,34,85,251,193,78,85,251,193,108,85,251,193,132,85,251,193,146,85,251,193,174,85,251,193,200,85,251,193,240,85,251,193,242,85,251,193,74,86,251,193,76,86,251,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,193,166,40,253,193,168,40,253,193,170,40,253,193,172,40,253,193,174,40,253,193,62,83,251,193,176,40,253,193,178,40,253,193,184,40,253,193,190,40,253,193,82,41,253,193,162,43,253,193,174,43,253,193,176,43,253,193,178,43,253,193,186,43,253,193,188,43,253,193,190,43,253,193,192,43,253,193,202,43,253,193,204,43,253,193,214,43,253,193,216,43,253,193,218,43,253,193,228,43,253,193,230,43,253,193,238,43,253,193,240,43,253,193,242,43,253,193,244,43,253,193,246,43,253,193,248,43,253,193,78,83,251,193,80,83,251,193,82,83,251,193,100,83,251,193,102,83,251,193,104,83,251,193,106,83,251,193,130,83,251,193,132,83,251,193,134,83,251,193,136,83,251,193,138,83,251,193,140,83,251,193,142,83,251,193,144,83,251,193,146,83,251,193,148,83,251,193,150,83,251,193,152,83,251,193,154,83,251,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,193,120,83,251,193,122,83,251,193,124,83,251,193,126,83,251,193,156,83,251,193,158,83,251,193,160,83,251,193,162,83,251,193,164,83,251,193,166,83,251,193,168,83,251,193,170,83,251,193,172,83,251,193,174,83,251,193,176,83,251,193,178,83,251,193,180,83,251,193,182,83,251,193,184,83,251,193,186,83,251,193,188,83,251,193,190,83,251,193,246,83,251,193,248,83,251,193,250,83,251,193,252,83,251,193,254,83,251,193,2,84,251,193,4,84,251,193,6,84,251,193,8,84,251,193,46,84,251,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,193,16,84,251,193,18,84,251,193,20,84,251,193,22,84,251,193,24,84,251,193,120,94,252,193,26,84,251,193,28,84,251,193,30,84,251,193,32,84,251,193,52,84,251,193,54,84,251,193,56,84,251,193,58,84,251,193,60,84,251,193,62,84,251,193,64,84,251,193,66,84,251,193,68,84,251,193,70,84,251,193,72,84,251,193,74,84,251,193,76,84,251,193,78,84,251,193,10,84,251,193,12,84,251,193,50,84,251,193,102,84,251,193,48,85,251,193,160,85,251,193,216,85,251,193,160,86,251,193,162,86,251,193,164,86,251,193,166,86,251,193,168,86,251,193,170,86,251,193,172,86,251,193,174,86,251,193,176,86,251,193,178,86,251,193,168,87,251,193,170,87,251,193,172,87,251,193,174,87,251,193,176,87,251,193,172,88,251,193,174,88,251,193,176,88,251,193,178,88,251,193,180,88,251,193,182,88,251,193,184,88,251,193,186,88,251,193,188,88,251,193,194,89,251,193,48,84,251,193,90,84,251,193,92,84,251,193,94,84,251,193,96,84,251,193,98,84,251,193,100,84,251,193,152,84,251,193,154,84,251,193,156,84,251,193,158,84,251,193,160,84,251,193,208,84,251,193,210,84,251,193,212,84,251,193,162,84,251,193,214,84,251,193,254,84,251,193,2,85,251,193,4,85,251,193,6,85,251,193,8,85,251,193,40,85,251,193,42,85,251,193,44,85,251,193,46,85,251,193,92,85,251,193,118,85,251,193,120,85,251,193,178,85,251,193,180,85,251,193,186,85,251,193,104,84,251,193,106,84,251,193,108,84,251,193,110,84,251,193,112,84,251,193,114,84,251,193,116,84,251,193,118,84,251,193,120,84,251,193,122,84,251,193,124,84,251,193,126,84,251,193,128,84,251,193,130,84,251,193,132,84,251,193,134,84,251,193,164,84,251,193,166,84,251,193,168,84,251,193,170,84,251,193,172,84,251,193,174,84,251,193,176,84,251,193,178,84,251,193,180,84,251,193,182,84,251,193,184,84,251,193,186,84,251,193,216,84,251,193,218,84,251,193,220,84,251,193,222,84,251,193,142,84,251,193,144,84,251,193,146,84,251,193,148,84,251,193,150,84,251,193,198,84,251,193,200,84,251,193,202,84,251,193,204,84,251,193,250,84,251,193,252,84,251,193,36,85,251,193,80,85,251,193,82,85,251,193,84,85,251,193,86,85,251,193,88,85,251,193,110,85,251,193,112,85,251,193,114,85,251,193,134,85,251,193,148,85,251,193,152,85,251,193,158,85,251,193,176,85,251,193,184,85,251,193,244,85,251,193,78,86,251,193,80,86,251,193,82,86,251,193,56,87,251,193,58,87,251,193,188,84,251,193,224,84,251,193,226,84,251,193,228,84,251,193,230,84,251,193,232,84,251,193,234,84,251,193,236,84,251,193,238,84,251,193,240,84,251,193,10,85,251,193,12,85,251,193,14,85,251,193,16,85,251,193,18,85,251,193,20,85,251,193,22,85,251,193,24,85,251,193,26,85,251,193,28,85,251,193,30,85,251,193,50,85,251,193,52,85,251,193,54,85,251,193,56,85,251,193,58,85,251,193,60,85,251,193,62,85,251,193,64,85,251,193,66,85,251,193,68,85,251,193,70,85,251,193,110,64,252,193,112,64,252,193,114,64,252,193,116,64,252,193,118,64,252,193,120,64,252,193,122,64,252,193,124,64,252,193,126,64,252,193,128,64,252,193,130,64,252,193,132,64,252,193,144,64,252,193,146,64,252,193,148,64,252,193,150,64,252,193,170,64,252,193,172,64,252,193,174,64,252,193,176,64,252,193,190,64,252,193,192,64,252,193,194,64,252,193,242,84,251,193,196,64,252,193,198,64,252,193,200,64,252,193,202,64,252,193,226,64,252,193,228,64,252,193,230,64,252,193,232,64,252,193,72,85,251,193,74,85,251,193,94,85,251,193,96,85,251,193,98,85,251,193,122,85,251,193,100,85,251,193,102,85,251,193,104,85,251,193,106,85,251,193,124,85,251,193,126,85,251,193,128,85,251,193,136,85,251,193,138,85,251,193,140,85,251,193,142,85,251,193,144,85,251,193,150,85,251,193,154,85,251,193,156,85,251,193,162,85,251,193,164,85,251,193,166,85,251,193,168,85,251,193,170,85,251,193,172,85,251,193,182,85,251,193,194,85,251,193,196,85,251,193,198,85,251,193,218,85,251,193,188,85,251,193,190,85,251,193,204,85,251,193,206,85,251,193,208,85,251,193,210,85,251,193,212,85,251,193,214,85,251,193,250,85,251,193,252,85,251,193,254,85,251,193,2,86,251,193,4,86,251,193,6,86,251,193,8,86,251,193,10,86,251,193,12,86,251,193,14,86,251,193,16,86,251,193,18,86,251,193,20,86,251,193,22,86,251,193,24,86,251,193,26,86,251,193,28,86,251,193,30,86,251,193,32,86,251,193,84,86,251,193,86,86,251,193,88,86,251,193,90,86,251,193,92,86,251,193,220,85,251,193,222,85,251,193,224,85,251,193,226,85,251,193,228,85,251,193,230,85,251,193,232,85,251,193,234,85,251,193,34,86,251,193,36,86,251,193,38,86,251,193,40,86,251,193,42,86,251,193,44,86,251,193,46,86,251,193,48,86,251,193,50,86,251,193,52,86,251,193,54,86,251,193,56,86,251,193,58,86,251,193,60,86,251,193,62,86,251,193,154,119,251,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,193,94,86,251,193,96,86,251,193,98,86,251,193,100,86,251,193,102,86,251,193,104,86,251,193,106,86,251,193,108,86,251,193,110,86,251,193,112,86,251,193,114,86,251,193,116,86,251,193,118,86,251,193,120,86,251,193,122,86,251,193,124,86,251,193,126,86,251,193,128,86,251,193,130,86,251,193,132,86,251,193,134,86,251,193,136,86,251,193,138,86,251,193,140,86,251,193,142,86,251,193,144,86,251,193,146,86,251,193,148,86,251,193,150,86,251,193,152,86,251,193,154,86,251,193,156,86,251,193,158,86,251,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,193,30,87,251,193,32,87,251,193,34,87,251,193,26,88,251,193,28,88,251,193,30,88,251,193,32,88,251,193,34,88,251,193,36,88,251,193,38,88,251,193,40,88,251,193,42,89,251,193,44,89,251,193,46,89,251,193,48,89,251,193,50,89,251,193,52,89,251,193,54,89,251,193,56,89,251,193,58,89,251,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,193,42,88,251,193,44,88,251,193,46,88,251,193,48,88,251,193,60,89,251,193,62,89,251,193,64,89,251,193,66,89,251,193,68,89,251,193,70,89,251,193,72,89,251,193,104,90,251,193,106,90,251,193,108,90,251,193,110,90,251,193,112,90,251,193,114,90,251,193,116,90,251,193,118,90,251,193,120,90,251,193,122,90,251,193,124,90,251,193,126,90,251,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,193,60,87,251,193,62,87,251,193,64,87,251,193,66,87,251,193,68,87,251,193,50,88,251,193,52,88,251,193,54,88,251,193,56,88,251,193,58,88,251,193,60,88,251,193,62,88,251,193,64,88,251,193,66,88,251,193,68,88,251,193,74,89,251,193,76,89,251,193,78,89,251,193,80,89,251,193,82,89,251,193,84,89,251,193,86,89,251,193,88,89,251,193,90,89,251,193,92,89,251,193,94,89,251,193,96,89,251,193,98,89,251,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,193,72,88,251,193,74,88,251,193,76,88,251,193,78,88,251,193,80,88,251,193,100,89,251,193,102,89,251,193,104,89,251,193,106,89,251,193,108,89,251,193,110,89,251,193,112,89,251,193,114,89,251,193,116,89,251,193,154,90,251,193,156,90,251,193,158,90,251,193,160,90,251,193,162,90,251,193,164,90,251,193,166,90,251,193,168,90,251,193,170,90,251,193,244,91,251,193,246,91,251,193,248,91,251,193,250,91,251,193,252,91,251,193,254,91,251,193,2,92,251,193,4,92,251,193,6,92,251,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,193,168,88,251,193,166,89,251,193,168,89,251,193,170,89,251,193,172,89,251,193,174,89,251,193,176,89,251,193,178,89,251,193,180,89,251,193,182,89,251,193,184,89,251,193,186,89,251,193,188,89,251,193,190,89,251,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,193,168,205,252,193,10,89,251,193,12,89,251,193,14,89,251,193,16,89,251,193,18,89,251,193,20,89,251,193,22,89,251,193,24,89,251,193,26,89,251,193,28,89,251,193,30,89,251,193,32,89,251,193,34,89,251,193,36,89,251,193,38,89,251,193,40,89,251,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,193,196,89,251,193,198,89,251,193,200,89,251,193,202,89,251,193,204,89,251,193,206,89,251,193,208,89,251,193,32,91,251,193,34,91,251,193,36,91,251,193,38,91,251,193,40,91,251,193,42,91,251,193,44,91,251,193,110,92,251,193,112,92,251,193,114,92,251,193,116,92,251,193,118,92,251,193,120,92,251,193,122,92,251,193,124,92,251,193,126,92,251,193,128,92,251,193,130,92,251,193,230,93,251,193,232,93,251,193,234,93,251,193,236,93,251,193,238,93,251,193,240,93,251,193,242,93,251,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,193,70,90,251,193,70,240,251,193,72,240,251,193,74,240,251,193,76,240,251,193,78,240,251,193,80,240,251,193,82,240,251,193,84,240,251,193,86,240,251,193,88,240,251,193,90,240,251,193,92,240,251,193,94,240,251,193,96,240,251,193,98,240,251,193,100,240,251,193,102,240,251,193,104,240,251,193,106,240,251,193,108,240,251,193,110,240,251,193,112,240,251,193,114,240,251,206,160,36,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,193,170,91,251,193,172,91,251,193,174,91,251,193,176,91,251,193,178,91,251,193,180,91,251,193,182,91,251,193,184,91,251,193,186,91,251,193,188,91,251,193,190,91,251,193,192,91,251,193,194,91,251,193,196,91,251,193,26,93,251,193,28,93,251,193,30,93,251,193,32,93,251,193,34,93,251,193,36,93,251,193,38,93,251,193,40,93,251,193,42,93,251,193,44,93,251,193,46,93,251,193,48,93,251,193,118,94,251,193,120,94,251,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,193,218,91,251,193,220,91,251,193,222,91,251,193,224,91,251,193,226,91,251,193,228,91,251,193,230,91,251,193,232,91,251,193,234,91,251,193,236,91,251,193,238,91,251,193,240,91,251,193,242,91,251,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,193,10,92,251,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,193,52,93,251,193,54,93,251,193,56,93,251,193,58,93,251,193,60,93,251,193,62,93,251,193,64,93,251,193,66,93,251,193,68,93,251,193,70,93,251,193,72,93,251,193,74,93,251,193,150,94,251,193,152,94,251,193,154,94,251,193,156,94,251,193,158,94,251,193,160,94,251,193,162,94,251,193,164,94,251,193,166,94,251,193,194,95,251,193,196,95,251,193,198,95,251,193,200,95,251,193,202,95,251,193,8,92,251,193,120,93,251,193,122,93,251,193,124,93,251,193,126,93,251,193,128,93,251,193,130,93,251,193,132,93,251,193,134,93,251,193,136,93,251,193,138,93,251,193,140,93,251,193,142,93,251,193,202,94,251,193,204,94,251,193,206,94,251,193,208,94,251,193,210,94,251,193,212,94,251,193,214,94,251,193,216,94,251,193,218,94,251,193,220,94,251,193,222,94,251,193,224,94,251,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,193,144,93,251,193,90,92,251,193,92,92,251,193,94,92,251,193,96,92,251,193,98,92,251,193,146,93,251,193,100,92,251,193,102,92,251,193,104,92,251,193,106,92,251,193,108,92,251,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,193,168,94,251,193,170,94,251,193,172,94,251,193,174,94,251,193,176,94,251,193,178,94,251,193,180,94,251,193,182,94,251,193,184,94,251,193,186,94,251,193,188,94,251,193,190,94,251,193,192,94,251,193,194,94,251,193,196,94,251,193,198,94,251,193,200,94,251,193,210,95,251,193,212,95,251,193,214,95,251,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,193,122,44,253,193,124,44,253,193,126,44,253,193,128,44,253,193,130,44,253,193,144,44,253,193,146,44,253,193,116,94,251,193,148,44,253,193,162,44,253,193,164,44,253,193,166,44,253,193,168,44,253,193,184,44,253,193,186,44,253,193,188,44,253,193,190,44,253,193,192,44,253,193,194,44,253,193,196,44,253,193,198,44,253,193,200,44,253,193,202,44,253,193,218,44,253,193,220,44,253,193,222,44,253,193,224,44,253,193,226,44,253,193,238,44,253,193,240,44,253,193,242,44,253,193,244,44,253,193,122,94,251,193,124,94,251,193,126,94,251,193,128,94,251,193,130,94,251,193,132,94,251,193,134,94,251,193,136,94,251,193,138,94,251,193,140,94,251,193,142,94,251,193,144,94,251,193,146,94,251,193,148,94,251,193,170,95,251,193,172,95,251,193,174,95,251,193,176,95,251,193,178,95,251,193,180,95,251,193,182,95,251,193,184,95,251,193,186,95,251,193,188,95,251,193,190,95,251,193,214,96,251,193,216,96,251,193,218,96,251,193,220,96,251,193,222,96,251,193,224,96,251,193,178,97,251,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,193,56,95,251,193,58,95,251,193,60,95,251,193,62,95,251,193,64,95,251,193,66,95,251,193,68,95,251,193,66,96,251,193,68,96,251,193,70,96,251,193,72,96,251,193,74,96,251,193,76,96,251,193,78,96,251,193,80,96,251,193,82,96,251,193,80,97,251,193,82,97,251,193,84,97,251,193,86,97,251,193,88,97,251,193,90,97,251,193,92,97,251,193,254,97,251,193,2,98,251,193,4,98,251,193,6,98,251,193,122,98,251,193,124,98,251,193,126,98,251,193,238,98,251,193,240,98,251,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,193,86,96,251,193,88,96,251,193,200,216,252,193,210,216,252,193,216,216,252,193,218,216,252,193,220,216,252,193,228,216,252,193,230,216,252,193,232,216,252,193,168,95,251,193,236,216,252,193,238,216,252,193,240,216,252,193,242,216,252,193,244,216,252,193,250,216,252,193,252,216,252,193,254,216,252,193,12,217,252,193,14,217,252,193,16,217,252,193,18,217,252,193,24,217,252,193,26,217,252,193,34,217,252,193,36,217,252,193,28,217,252,193,38,217,252,193,40,217,252,193,42,217,252,193,56,217,252,193,58,217,252,193,60,217,252,193,192,95,251,193,192,97,251,193,166,101,251,193,178,101,251,193,126,104,251,193,4,106,251,193,140,107,251,193,122,109,251,193,124,109,251,193,164,110,251,193,166,110,251,193,168,110,251,193,128,113,251,193,144,115,251,193,160,116,251,193,62,121,251,193,250,125,251,193,128,126,251,193,250,131,251,193,32,136,251,193,130,138,251,193,150,139,251,193,8,157,251,193,10,157,251,193,180,165,251,193,142,171,251,193,138,194,251,193,14,196,251,193,6,202,251,193,226,203,251,193,208,205,251,193,64,210,251,193,204,95,251,193,206,95,251,193,208,95,251,193,226,96,251,193,228,96,251,193,230,96,251,193,232,96,251,193,234,96,251,193,236,96,251,193,238,96,251,193,240,96,251,193,242,96,251,193,244,96,251,193,194,97,251,193,196,97,251,193,198,97,251,193,96,98,251,193,98,98,251,193,100,98,251,193,102,98,251,193,104,98,251,193,106,98,251,193,196,98,251,193,198,98,251,193,200,98,251,193,36,99,251,193,38,99,251,193,40,99,251,193,42,99,251,193,90,99,251,193,92,99,251,193,94,99,251,193,216,95,251,193,218,95,251,193,220,95,251,193,222,95,251,193,224,95,251,193,226,95,251,193,228,95,251,193,230,95,251,193,232,95,251,193,234,95,251,193,246,96,251,193,248,96,251,193,250,96,251,193,252,96,251,193,254,96,251,193,2,97,251,193,4,97,251,193,6,97,251,193,8,97,251,193,10,97,251,193,12,97,251,193,14,97,251,193,200,97,251,193,202,97,251,193,204,97,251,193,206,97,251,193,208,97,251,193,210,97,251,193,212,97,251,193,214,97,251,193,108,98,251,193,110,98,251,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,193,16,97,251,193,18,97,251,193,20,97,251,193,22,97,251,193,24,97,251,193,26,97,251,193,28,97,251,193,30,97,251,193,32,97,251,193,34,97,251,193,36,97,251,193,38,97,251,193,216,97,251,193,218,97,251,193,220,97,251,193,222,97,251,193,224,97,251,193,226,97,251,193,228,97,251,193,114,98,251,193,116,98,251,193,210,98,251,193,212,98,251,193,214,98,251,193,216,98,251,193,218,98,251,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,193,16,215,253,193,32,96,251,193,34,96,251,193,36,96,251,193,38,96,251,193,40,96,251,193,42,96,251,193,44,96,251,193,46,96,251,193,48,96,251,193,50,96,251,193,52,96,251,193,54,96,251,193,56,96,251,193,58,96,251,193,60,96,251,193,62,96,251,193,64,96,251,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,193,90,96,251,193,92,96,251,193,94,96,251,193,96,96,251,193,98,96,251,193,100,96,251,193,102,96,251,193,104,96,251,193,106,96,251,193,108,96,251,193,110,96,251,193,112,96,251,193,114,96,251,193,116,96,251,193,118,96,251,193,120,96,251,193,122,96,251,193,124,96,251,193,126,96,251,193,128,96,251,193,130,96,251,193,132,96,251,193,134,96,251,193,136,96,251,193,138,96,251,193,140,96,251,193,142,96,251,193,144,96,251,193,146,96,251,193,148,96,251,193,150,96,251,193,152,96,251,193,154,96,251,193,156,96,251,193,158,96,251,193,160,96,251,193,162,96,251,193,164,96,251,193,166,96,251,193,168,96,251,193,170,96,251,193,172,96,251,193,174,96,251,193,176,96,251,193,178,96,251,193,180,96,251,193,182,96,251,193,184,96,251,193,186,96,251,193,188,96,251,193,190,96,251,193,192,96,251,193,194,96,251,193,196,96,251,193,198,96,251,193,200,96,251,193,202,96,251,193,204,96,251,193,206,96,251,193,208,96,251,193,210,96,251,193,212,96,251,193,94,97,251,193,96,97,251,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,193,230,97,251,193,232,97,251,193,234,97,251,193,236,97,251,193,238,97,251,193,240,97,251,193,242,97,251,193,244,97,251,193,246,97,251,193,248,97,251,193,250,97,251,193,118,98,251,193,120,98,251,193,222,98,251,193,224,98,251,193,226,98,251,193,228,98,251,193,230,98,251,193,232,98,251,193,98,97,251,193,100,97,251,193,102,97,251,193,104,97,251,193,106,97,251,193,108,97,251,193,110,97,251,193,112,97,251,193,114,97,251,193,116,97,251,193,118,97,251,193,120,97,251,193,122,97,251,193,124,97,251,193,126,97,251,193,128,97,251,193,130,97,251,193,132,97,251,193,134,97,251,193,136,97,251,193,138,97,251,193,140,97,251,193,142,97,251,193,144,97,251,193,146,97,251,193,148,97,251,193,126,119,253,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,193,8,98,251,193,10,98,251,193,12,98,251,193,14,98,251,193,16,98,251,193,18,98,251,193,20,98,251,193,22,98,251,193,24,98,251,193,26,98,251,193,28,98,251,193,30,98,251,193,32,98,251,193,34,98,251,193,36,98,251,193,38,98,251,193,40,98,251,193,42,98,251,193,44,98,251,193,46,98,251,193,48,98,251,193,50,98,251,193,52,98,251,193,180,97,251,193,182,97,251,193,184,97,251,193,186,97,251,193,188,97,251,193,190,97,251,193,84,98,251,193,86,98,251,193,88,98,251,193,90,98,251,193,92,98,251,193,94,98,251,193,188,98,251,193,190,98,251,193,192,98,251,193,194,98,251,193,34,99,251,193,88,99,251,193,28,100,251,193,74,100,251,193,168,100,251,193,230,100,251,193,66,101,251,193,164,101,251,193,194,101,251,193,206,101,251,193,236,101,251,193,8,102,251,193,46,102,251,193,108,102,251,193,130,102,251,193,152,102,251,193,54,98,251,193,74,218,253,193,56,98,251,193,58,98,251,193,60,98,251,193,62,98,251,193,64,98,251,193,66,98,251,193,68,98,251,193,70,98,251,193,72,98,251,193,74,98,251,193,76,98,251,193,78,98,251,193,80,98,251,193,82,98,251,193,128,98,251,193,130,98,251,193,132,98,251,193,134,98,251,193,136,98,251,193,138,98,251,193,140,98,251,193,142,98,251,193,144,98,251,193,146,98,251,193,148,98,251,193,150,98,251,193,152,98,251,193,154,98,251,193,156,98,251,193,158,98,251,193,112,98,251,193,202,98,251,193,204,98,251,193,206,98,251,193,208,98,251,193,44,99,251,193,46,99,251,193,48,99,251,193,50,99,251,193,52,99,251,193,96,99,251,193,98,99,251,193,138,99,251,193,140,99,251,193,142,99,251,193,162,99,251,193,200,99,251,193,208,99,251,193,250,99,251,193,56,100,251,193,58,100,251,193,60,100,251,193,76,100,251,193,98,100,251,193,116,100,251,193,134,100,251,193,150,100,251,193,172,100,251,193,176,100,251,193,190,100,251,193,214,100,251,193,234,100,251,193,242,98,251,193,160,98,251,193,162,98,251,193,164,98,251,193,166,98,251,193,168,98,251,193,170,98,251,193,172,98,251,193,174,98,251,193,176,98,251,193,178,98,251,193,180,98,251,193,244,98,251,193,182,98,251,193,184,98,251,193,186,98,251,193,246,98,251,193,248,98,251,193,250,98,251,193,252,98,251,193,254,98,251,193,2,99,251,193,4,99,251,193,6,99,251,193,8,99,251,193,10,99,251,193,12,99,251,193,50,44,253,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,193,220,98,251,193,54,99,251,193,56,99,251,193,100,99,251,193,102,99,251,193,164,99,251,193,180,99,251,193,210,99,251,193,246,99,251,193,30,100,251,193,78,100,251,193,100,100,251,193,102,100,251,193,158,100,251,193,216,100,251,193,54,101,251,193,200,101,251,193,58,102,251,193,60,102,251,193,74,102,251,193,118,102,251,193,120,102,251,193,138,102,251,193,158,102,251,193,172,102,251,193,8,103,251,193,56,103,251,193,126,103,251,193,128,103,251,193,236,103,251,193,238,103,251,193,240,103,251,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,193,66,99,251,193,68,99,251,193,70,99,251,193,72,99,251,193,74,99,251,193,76,99,251,193,78,99,251,193,80,99,251,193,82,99,251,193,84,99,251,193,86,99,251,193,106,99,251,193,108,99,251,193,110,99,251,193,112,99,251,193,114,99,251,193,116,99,251,193,232,161,253,193,118,99,251,193,120,99,251,193,144,99,251,193,122,99,251,193,124,99,251,193,126,99,251,193,128,99,251,193,130,99,251,193,64,99,251,193,184,99,251,193,204,99,251,193,50,100,251,193,108,100,251,193,210,100,251,193,10,101,251,193,12,101,251,193,144,101,251,193,186,101,251,193,20,102,251,193,84,102,251,193,86,102,251,193,174,102,251,193,242,102,251,193,26,103,251,193,28,103,251,193,30,103,251,193,70,103,251,193,72,103,251,193,150,103,251,193,152,103,251,193,154,103,251,193,156,103,251,193,158,103,251,193,160,103,251,193,6,104,251,193,8,104,251,193,152,104,251,193,154,104,251,193,156,104,251,193,234,104,251,193,132,99,251,193,134,99,251,193,146,99,251,193,148,99,251,193,150,99,251,193,152,99,251,193,154,99,251,193,156,99,251,193,158,99,251,193,160,99,251,193,170,99,251,193,172,99,251,193,174,99,251,193,176,99,251,193,178,99,251,193,186,99,251,193,188,99,251,193,190,99,251,193,192,99,251,193,194,99,251,193,196,99,251,193,198,99,251,193,206,99,251,193,212,99,251,193,214,99,251,193,216,99,251,193,218,99,251,193,226,99,251,193,230,99,251,193,242,99,251,193,244,99,251,193,248,99,251,193,136,99,251,193,8,100,251,193,10,100,251,193,94,100,251,193,96,100,251,193,114,100,251,193,154,100,251,193,156,100,251,193,170,100,251,193,174,100,251,193,228,100,251,193,28,101,251,193,30,101,251,193,196,101,251,193,238,101,251,193,10,102,251,193,12,102,251,193,48,102,251,193,50,102,251,193,110,102,251,193,112,102,251,193,132,102,251,193,154,102,251,193,156,102,251,193,168,102,251,193,194,102,251,193,200,102,251,193,226,102,251,193,52,103,251,193,116,103,251,193,118,103,251,193,120,103,251,193,2,100,251,193,4,100,251,193,6,100,251,193,14,100,251,193,16,100,251,193,18,100,251,193,20,100,251,193,22,100,251,193,24,100,251,193,26,100,251,193,36,100,251,193,38,100,251,193,40,100,251,193,42,100,251,193,52,100,251,193,54,100,251,193,64,100,251,193,236,104,251,193,66,100,251,193,68,100,251,193,70,100,251,193,72,100,251,193,84,100,251,193,66,218,253,193,86,100,251,193,88,100,251,193,90,100,251,193,92,100,251,193,110,100,251,193,112,100,251,193,120,100,251,193,122,100,251,193,106,100,251,193,118,100,251,193,178,100,251,193,182,100,251,193,184,100,251,193,192,100,251,193,198,100,251,193,206,100,251,193,208,100,251,193,6,101,251,193,232,100,251,193,240,100,251,193,246,100,251,193,8,101,251,193,20,101,251,193,22,101,251,193,72,101,251,193,106,101,251,193,120,101,251,193,108,101,251,193,128,101,251,193,136,101,251,193,138,101,251,193,140,101,251,193,142,101,251,193,152,101,251,193,154,101,251,193,156,101,251,193,182,101,251,193,184,101,251,193,208,101,251,193,240,101,251,193,124,100,251,193,126,100,251,193,128,100,251,193,130,100,251,193,132,100,251,193,136,100,251,193,4,45,253,193,138,100,251,193,140,100,251,193,142,100,251,193,144,100,251,193,146,100,251,193,148,100,251,193,152,100,251,193,240,133,252,193,162,100,251,193,164,100,251,193,166,100,251,193,180,100,251,193,186,100,251,193,188,100,251,193,194,100,251,193,196,100,251,193,200,100,251,193,202,100,251,193,204,100,251,193,212,100,251,193,220,100,251,193,222,100,251,193,226,100,251,193,236,100,251,193,238,100,251,193,66,211,253,193,76,211,253,193,78,211,253,193,80,211,253,193,82,211,253,193,96,211,253,193,98,211,253,193,100,211,253,193,102,211,253,193,104,211,253,193,106,211,253,193,108,211,253,193,110,211,253,193,112,211,253,193,114,211,253,193,116,211,253,193,118,211,253,193,120,211,253,193,122,211,253,193,124,211,253,193,140,211,253,193,142,211,253,193,144,211,253,193,146,211,253,193,148,211,253,193,150,211,253,193,152,211,253,193,224,100,251,193,154,211,253,193,156,211,253,193,158,211,253,193,160,211,253,193,242,100,251,193,244,100,251,193,248,100,251,193,250,100,251,193,252,100,251,193,254,100,251,193,26,101,251,193,36,101,251,193,38,101,251,193,40,101,251,193,42,101,251,193,44,101,251,193,46,101,251,193,52,101,251,193,58,101,251,193,60,101,251,193,62,101,251,193,64,101,251,193,74,101,251,193,76,101,251,193,78,101,251,193,80,101,251,193,86,101,251,193,88,101,251,193,92,101,251,193,94,101,251,193,96,101,251,193,102,101,251,193,110,101,251,193,112,101,251,193,114,101,251,193,116,101,251,193,2,101,251,193,4,101,251,193,14,101,251,193,16,101,251,193,18,101,251,193,32,101,251,193,34,101,251,193,48,101,251,193,68,101,251,193,70,101,251,193,82,101,251,193,84,101,251,193,90,101,251,193,98,101,251,193,100,101,251,193,104,101,251,193,118,101,251,193,124,101,251,193,130,101,251,193,168,101,251,193,170,101,251,193,180,101,251,193,198,101,251,193,14,102,251,193,16,102,251,193,52,102,251,193,54,102,251,193,56,102,251,193,114,102,251,193,116,102,251,193,134,102,251,193,136,102,251,193,122,101,251,193,126,101,251,193,132,101,251,193,134,101,251,193,146,101,251,193,148,101,251,193,150,101,251,193,158,101,251,193,160,101,251,193,162,101,251,193,172,101,251,193,174,101,251,193,176,101,251,193,188,101,251,193,190,101,251,193,192,101,251,193,202,101,251,193,204,101,251,193,212,101,251,193,214,101,251,193,216,101,251,193,218,101,251,193,220,101,251,193,222,101,251,193,224,101,251,193,226,101,251,193,228,101,251,193,230,101,251,193,232,101,251,193,244,101,251,193,246,101,251,193,248,101,251,193,100,212,251,193,110,212,251,193,112,212,251,193,114,212,251,193,116,212,251,193,118,212,251,193,120,212,251,193,122,212,251,193,234,101,251,193,124,212,251,193,130,212,251,193,132,212,251,193,134,212,251,193,136,212,251,193,144,212,251,193,146,212,251,193,148,212,251,193,150,212,251,193,152,212,251,193,154,212,251,193,156,212,251,193,158,212,251,193,160,212,251,193,162,212,251,193,164,212,251,193,166,212,251,193,174,212,251,193,176,212,251,193,178,212,251,193,182,212,251,193,184,212,251,193,186,212,251,193,242,101,251,193,18,102,251,193,76,102,251,193,78,102,251,193,80,102,251,193,82,102,251,193,122,102,251,193,204,102,251,193,206,102,251,193,208,102,251,193,210,102,251,193,212,102,251,193,214,102,251,193,216,102,251,193,228,102,251,193,230,102,251,193,232,102,251,193,234,102,251,193,236,102,251,193,238,102,251,193,240,102,251,193,10,103,251,193,12,103,251,193,14,103,251,193,16,103,251,193,18,103,251,193,20,103,251,193,22,103,251,193,24,103,251,193,58,103,251,193,60,103,251,193,62,103,251,193,250,101,251,193,252,101,251,193,254,101,251,193,2,102,251,193,4,102,251,193,6,102,251,193,26,102,251,193,28,102,251,193,30,102,251,193,32,102,251,193,34,102,251,193,36,102,251,193,38,102,251,193,40,102,251,193,42,102,251,193,62,102,251,193,44,102,251,193,64,102,251,193,66,102,251,193,68,102,251,193,70,102,251,193,72,102,251,193,88,102,251,193,90,102,251,193,92,102,251,193,94,102,251,193,96,102,251,193,98,102,251,193,100,102,251,193,102,102,251,193,104,102,251,193,124,102,251,193,126,102,251,193,128,102,251,193,144,102,251,193,146,102,251,193,148,102,251,193,150,102,251,193,162,102,251,193,164,102,251,193,166,102,251,193,176,102,251,193,178,102,251,193,182,102,251,193,184,102,251,193,188,102,251,193,190,102,251,193,196,102,251,193,186,102,251,193,202,102,251,193,218,102,251,193,220,102,251,193,222,102,251,193,244,102,251,193,246,102,251,193,248,102,251,193,250,102,251,193,252,102,251,193,254,102,251,193,2,103,251,193,52,72,252,193,34,103,251,193,36,103,251,193,38,103,251,193,170,102,251,193,180,102,251,193,6,103,251,193,54,103,251,193,122,103,251,193,124,103,251,193,224,103,251,193,226,103,251,193,228,103,251,193,230,103,251,193,232,103,251,193,234,103,251,193,54,104,251,193,56,104,251,193,58,104,251,193,132,104,251,193,134,104,251,193,136,104,251,193,138,104,251,193,204,104,251,193,206,104,251,193,208,104,251,193,210,104,251,193,44,105,251,193,46,105,251,193,48,105,251,193,50,105,251,193,52,105,251,193,122,105,251,193,124,105,251,193,126,105,251,193,128,105,251,193,192,102,251,193,224,102,251,193,4,103,251,193,50,103,251,193,110,103,251,193,112,103,251,193,114,103,251,193,206,103,251,193,208,103,251,193,210,103,251,193,212,103,251,193,214,103,251,193,216,103,251,193,42,104,251,193,44,104,251,193,46,104,251,193,120,104,251,193,122,104,251,193,124,104,251,193,196,104,251,193,198,104,251,193,200,104,251,193,24,105,251,193,26,105,251,193,28,105,251,193,106,105,251,193,108,105,251,193,110,105,251,193,164,105,251,193,166,105,251,193,168,105,251,193,214,105,251,193,94,6,252,193,96,6,252,193,98,6,252,193,100,6,252,193,102,6,252,193,104,6,252,193,106,6,252,193,108,6,252,193,110,6,252,193,120,6,252,193,122,6,252,193,124,6,252,193,126,6,252,193,128,6,252,193,112,6,252,193,130,6,252,193,132,6,252,193,134,6,252,193,146,6,252,193,198,102,251,193,148,6,252,193,150,6,252,193,160,6,252,193,162,6,252,193,164,6,252,193,168,6,252,193,172,6,252,193,174,6,252,193,176,6,252,193,182,6,252,193,184,6,252,193,186,6,252,193,40,103,251,193,42,103,251,193,44,103,251,193,46,103,251,193,48,103,251,193,74,103,251,193,76,103,251,193,78,103,251,193,80,103,251,193,82,103,251,193,84,103,251,193,86,103,251,193,88,103,251,193,90,103,251,193,92,103,251,193,94,103,251,193,96,103,251,193,98,103,251,193,100,103,251,193,102,103,251,193,104,103,251,193,106,103,251,193,108,103,251,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,193,64,103,251,193,66,103,251,193,68,103,251,193,130,103,251,193,132,103,251,193,134,103,251,193,136,103,251,193,138,103,251,193,140,103,251,193,142,103,251,193,64,104,251,193,144,103,251,193,146,103,251,193,148,103,251,193,242,103,251,193,244,103,251,193,246,103,251,193,248,103,251,193,250,103,251,193,252,103,251,193,254,103,251,193,2,104,251,193,4,104,251,193,66,104,251,193,68,104,251,193,70,104,251,193,72,104,251,193,144,104,251,193,146,104,251,193,148,104,251,193,150,104,251,193,220,104,251,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,193,10,104,251,193,12,104,251,193,14,104,251,193,16,104,251,193,18,104,251,193,20,104,251,193,22,104,251,193,24,104,251,193,26,104,251,193,28,104,251,193,30,104,251,193,32,104,251,193,34,104,251,193,36,104,251,193,38,104,251,193,40,104,251,193,74,104,251,193,76,104,251,193,78,104,251,193,218,103,251,193,220,103,251,193,222,103,251,193,48,104,251,193,50,104,251,193,52,104,251,193,128,104,251,193,130,104,251,193,202,104,251,193,30,105,251,193,32,105,251,193,34,105,251,193,36,105,251,193,38,105,251,193,40,105,251,193,42,105,251,193,112,105,251,193,114,105,251,193,116,105,251,193,118,105,251,193,120,105,251,193,170,105,251,193,172,105,251,193,174,105,251,193,220,105,251,193,222,105,251,193,224,105,251,193,226,105,251,193,228,105,251,193,6,106,251,193,8,106,251,193,10,106,251,193,60,104,251,193,62,104,251,193,140,104,251,193,142,104,251,193,212,104,251,193,214,104,251,193,216,104,251,193,218,104,251,193,54,105,251,193,56,105,251,193,58,105,251,193,60,105,251,193,62,105,251,193,130,105,251,193,132,105,251,193,178,105,251,193,180,105,251,193,230,105,251,193,20,106,251,193,22,106,251,193,72,106,251,193,106,106,251,193,142,106,251,193,234,106,251,193,236,106,251,193,170,107,251,193,172,107,251,193,174,107,251,193,158,108,251,193,162,109,251,193,164,109,251,193,166,109,251,193,80,104,251,193,82,104,251,193,84,104,251,193,86,104,251,193,88,104,251,193,90,104,251,193,92,104,251,193,94,104,251,193,96,104,251,193,98,104,251,193,100,104,251,193,102,104,251,193,104,104,251,193,106,104,251,193,108,104,251,193,110,104,251,193,112,104,251,193,114,104,251,193,116,104,251,193,118,104,251,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,193,238,104,251,193,240,104,251,193,242,104,251,193,244,104,251,193,246,104,251,193,248,104,251,193,250,104,251,193,252,104,251,193,254,104,251,193,2,105,251,193,4,105,251,193,6,105,251,193,8,105,251,193,10,105,251,193,12,105,251,193,14,105,251,193,16,105,251,193,18,105,251,193,20,105,251,193,22,105,251,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,193,222,104,251,193,224,104,251,193,226,104,251,193,228,104,251,193,230,104,251,193,232,104,251,193,64,105,251,193,66,105,251,193,68,105,251,193,134,105,251,193,136,105,251,193,138,105,251,193,140,105,251,193,182,105,251,193,232,105,251,193,234,105,251,193,44,106,251,193,78,106,251,193,92,106,251,193,100,106,251,193,108,106,251,193,110,106,251,193,112,106,251,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,193,70,105,251,193,236,105,251,193,114,106,251,193,180,106,251,193,182,106,251,193,184,106,251,193,186,106,251,193,188,106,251,193,190,106,251,193,52,107,251,193,54,107,251,193,56,107,251,193,58,107,251,193,60,107,251,193,62,107,251,193,64,107,251,193,10,108,251,193,12,108,251,193,14,108,251,193,16,108,251,193,18,108,251,193,20,108,251,193,22,108,251,193,24,108,251,193,26,108,251,193,28,108,251,193,30,108,251,193,32,108,251,193,34,108,251,193,36,108,251,193,38,108,251,193,40,108,251,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,193,142,105,251,193,144,105,251,193,146,105,251,193,148,105,251,193,150,105,251,193,152,105,251,193,154,105,251,193,156,105,251,193,158,105,251,193,160,105,251,193,162,105,251,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,193,176,105,251,193,14,106,251,193,16,106,251,193,18,106,251,193,42,106,251,193,52,106,251,193,62,106,251,193,132,106,251,193,134,106,251,193,136,106,251,193,138,106,251,193,140,106,251,193,230,106,251,193,232,106,251,193,166,107,251,193,168,107,251,193,146,108,251,193,148,108,251,193,150,108,251,193,152,108,251,193,154,108,251,193,156,108,251,193,154,109,251,193,156,109,251,193,158,109,251,193,160,109,251,193,196,110,251,193,198,110,251,193,200,110,251,193,202,110,251,193,204,110,251,193,206,110,251,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,193,238,105,251,193,240,105,251,193,242,105,251,193,244,105,251,193,246,105,251,193,248,105,251,193,250,105,251,193,252,105,251,193,254,105,251,193,24,106,251,193,26,106,251,193,28,106,251,193,30,106,251,193,32,106,251,193,34,106,251,193,36,106,251,193,38,106,251,193,46,106,251,193,54,106,251,193,56,106,251,193,58,106,251,193,64,106,251,193,74,106,251,193,76,106,251,193,80,106,251,193,82,106,251,193,216,105,251,193,218,105,251,193,50,106,251,193,66,106,251,193,220,106,251,193,222,106,251,193,126,107,251,193,128,107,251,193,130,107,251,193,132,107,251,193,134,107,251,193,136,107,251,193,138,107,251,193,128,108,251,193,130,108,251,193,132,108,251,193,134,108,251,193,112,109,251,193,114,109,251,193,116,109,251,193,118,109,251,193,120,109,251,193,154,110,251,193,156,110,251,193,158,110,251,193,160,110,251,193,162,110,251,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,193,2,106,251,193,44,60,252,193,46,60,252,193,48,60,252,193,50,60,252,193,52,60,252,193,54,60,252,193,56,60,252,193,58,60,252,193,60,60,252,193,62,60,252,193,64,60,252,193,66,60,252,193,68,60,252,193,70,60,252,193,72,60,252,193,74,60,252,193,76,60,252,193,78,60,252,193,80,60,252,193,82,60,252,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,193,12,106,251,193,40,106,251,193,60,106,251,193,68,106,251,193,70,106,251,193,90,106,251,193,104,106,251,193,130,106,251,193,224,106,251,193,226,106,251,193,228,106,251,193,142,107,251,193,144,107,251,193,146,107,251,193,148,107,251,193,150,107,251,193,152,107,251,193,154,107,251,193,156,107,251,193,158,107,251,193,160,107,251,193,162,107,251,193,164,107,251,193,136,108,251,193,138,108,251,193,140,108,251,193,142,108,251,193,144,108,251,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,193,192,145,251,193,194,145,251,193,228,145,251,193,230,145,251,193,232,145,251,193,234,145,251,193,236,145,251,193,238,145,251,193,240,145,251,193,242,145,251,193,244,145,251,193,246,145,251,193,248,145,251,193,250,145,251,193,252,145,251,193,254,145,251,193,2,146,251,193,4,146,251,193,6,146,251,193,8,146,251,193,10,146,251,193,12,146,251,193,14,146,251,193,48,106,251,193,56,146,251,193,58,146,251,193,60,146,251,193,62,146,251,193,64,146,251,193,66,146,251,193,68,146,251,193,70,146,251,193,84,106,251,193,86,106,251,193,88,106,251,193,94,106,251,193,96,106,251,193,98,106,251,193,102,106,251,193,116,106,251,193,118,106,251,193,120,106,251,193,122,106,251,193,124,106,251,193,126,106,251,193,128,106,251,193,192,106,251,193,194,106,251,193,196,106,251,193,198,106,251,193,200,106,251,193,202,106,251,193,204,106,251,193,206,106,251,193,208,106,251,193,210,106,251,193,212,106,251,193,214,106,251,193,216,106,251,193,218,106,251,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,193,238,106,251,193,240,106,251,193,242,106,251,193,244,106,251,193,160,108,251,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,193,66,107,251,193,50,110,251,193,52,110,251,193,54,110,251,193,56,110,251,193,90,111,251,193,92,111,251,193,94,111,251,193,96,111,251,193,98,111,251,193,100,111,251,193,102,111,251,193,104,111,251,193,106,111,251,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,193,46,108,251,193,48,108,251,193,50,108,251,193,52,108,251,193,54,108,251,193,56,108,251,193,58,108,251,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,193,42,108,251,193,44,108,251,193,2,109,251,193,4,109,251,193,6,109,251,193,8,109,251,193,10,109,251,193,12,109,251,193,14,109,251,193,16,109,251,193,18,109,251,193,20,109,251,193,22,109,251,193,12,110,251,193,14,110,251,193,16,110,251,193,18,110,251,193,20,110,251,193,22,110,251,193,24,110,251,193,26,110,251,193,28,110,251,193,30,110,251,193,32,110,251,193,34,110,251,193,36,110,251,193,38,110,251,193,40,110,251,193,42,110,251,193,44,110,251,193,46,110,251,193,48,110,251,193,60,108,251,193,62,108,251,193,64,108,251,193,66,108,251,193,68,108,251,193,70,108,251,193,72,108,251,193,74,108,251,193,76,108,251,193,78,108,251,193,80,108,251,193,82,108,251,193,84,108,251,193,86,108,251,193,88,108,251,193,90,108,251,193,92,108,251,193,94,108,251,193,96,108,251,193,98,108,251,193,100,108,251,193,102,108,251,193,104,108,251,193,106,108,251,193,108,108,251,193,110,108,251,193,112,108,251,193,114,108,251,193,116,108,251,193,118,108,251,193,120,108,251,193,122,108,251,193,124,108,251,193,126,108,251,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,193,176,109,251,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,193,114,168,252,193,248,108,251,193,250,108,251,193,252,108,251,193,254,108,251,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,193,170,110,251,193,172,110,251,193,174,110,251,193,176,110,251,193,178,110,251,193,180,110,251,193,182,110,251,193,184,110,251,193,186,110,251,193,188,110,251,193,190,110,251,193,192,110,251,193,194,110,251,193,254,111,251,193,2,112,251,193,4,112,251,193,6,112,251,193,8,112,251,193,10,112,251,193,12,112,251,193,14,112,251,193,16,112,251,193,168,109,251,193,170,109,251,193,172,109,251,193,174,109,251,193,208,110,251,193,210,110,251,193,34,112,251,193,36,112,251,193,38,112,251,193,40,112,251,193,42,112,251,193,44,112,251,193,174,113,251,193,176,113,251,193,178,113,251,193,174,114,251,193,176,114,251,193,178,114,251,193,180,114,251,193,182,114,251,193,184,114,251,193,196,115,251,193,194,116,251,193,196,116,251,193,144,117,251,193,146,117,251,193,148,117,251,193,54,119,251,193,168,119,251,193,170,119,251,193,208,119,251,193,210,119,251,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,193,212,110,251,193,248,109,251,193,250,109,251,193,252,109,251,193,254,109,251,193,2,110,251,193,4,110,251,193,6,110,251,193,8,110,251,193,214,110,251,193,216,110,251,193,218,110,251,193,220,110,251,193,222,110,251,193,224,110,251,193,226,110,251,193,228,110,251,193,10,110,251,193,230,110,251,193,232,110,251,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,193,108,111,251,193,110,111,251,193,234,110,251,193,236,110,251,193,238,110,251,193,240,110,251,193,242,110,251,193,244,110,251,193,246,110,251,193,248,110,251,193,250,110,251,193,252,110,251,193,254,110,251,193,2,111,251,193,4,111,251,193,6,111,251,193,8,111,251,193,10,111,251,193,12,111,251,193,14,111,251,193,16,111,251,193,18,111,251,193,20,111,251,193,22,111,251,193,24,111,251,193,26,111,251,193,28,111,251,193,30,111,251,193,32,111,251,193,34,111,251,193,36,111,251,193,38,111,251,193,40,111,251,193,42,111,251,193,44,111,251,193,46,111,251,193,48,111,251,193,50,111,251,193,52,111,251,193,54,111,251,193,56,111,251,193,58,111,251,193,60,111,251,193,62,111,251,193,64,111,251,193,66,111,251,193,68,111,251,193,70,111,251,193,72,111,251,193,74,111,251,193,76,111,251,193,78,111,251,193,80,111,251,193,82,111,251,193,84,111,251,193,86,111,251,193,88,111,251,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,193,112,111,251,193,114,111,251,193,116,111,251,193,118,111,251,193,120,111,251,193,122,111,251,193,124,111,251,193,126,111,251,193,128,111,251,193,130,111,251,193,132,111,251,193,134,111,251,193,136,111,251,193,138,111,251,193,140,111,251,193,142,111,251,193,144,111,251,193,146,111,251,193,148,111,251,193,150,111,251,193,152,111,251,193,154,111,251,193,156,111,251,193,158,111,251,193,160,111,251,193,162,111,251,193,164,111,251,193,166,111,251,193,168,111,251,193,170,111,251,193,172,111,251,193,174,111,251,193,176,111,251,193,178,111,251,193,180,111,251,193,182,111,251,193,184,111,251,193,186,111,251,193,188,111,251,193,190,111,251,193,192,111,251,193,194,111,251,193,196,111,251,193,198,111,251,193,200,111,251,193,202,111,251,193,204,111,251,193,206,111,251,193,208,111,251,193,210,111,251,193,212,111,251,193,214,111,251,193,216,111,251,193,218,111,251,193,220,111,251,193,222,111,251,193,224,111,251,193,226,111,251,193,228,111,251,193,230,111,251,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,193,106,113,251,193,108,113,251,193,110,113,251,193,112,113,251,193,114,113,251,193,116,113,251,193,118,113,251,193,120,113,251,193,122,113,251,193,124,113,251,193,126,113,251,193,124,114,251,193,126,114,251,193,128,114,251,193,130,114,251,193,132,114,251,193,134,114,251,193,126,115,251,193,128,115,251,193,130,115,251,193,132,115,251,193,134,115,251,193,136,115,251,193,138,115,251,193,140,115,251,193,142,115,251,193,18,112,251,193,20,112,251,193,22,112,251,193,130,113,251,193,132,113,251,193,134,113,251,193,136,113,251,193,138,113,251,193,140,113,251,193,142,113,251,193,144,113,251,193,146,113,251,193,148,113,251,193,150,113,251,193,152,113,251,193,154,113,251,193,156,113,251,193,136,114,251,193,138,114,251,193,140,114,251,193,142,114,251,193,144,114,251,193,146,114,251,193,148,114,251,193,150,114,251,193,152,114,251,193,154,114,251,193,156,114,251,193,158,114,251,193,160,114,251,193,162,114,251,193,146,115,251,193,24,112,251,193,26,112,251,193,28,112,251,193,30,112,251,193,32,112,251,193,158,113,251,193,160,113,251,193,162,113,251,193,164,113,251,193,166,113,251,193,168,113,251,193,170,113,251,193,172,113,251,193,164,114,251,193,166,114,251,193,168,114,251,193,170,114,251,193,172,114,251,193,172,115,251,193,174,115,251,193,176,115,251,193,178,115,251,193,180,115,251,193,182,115,251,193,184,115,251,193,186,115,251,193,188,115,251,193,190,115,251,193,192,115,251,193,194,115,251,193,186,116,251,193,188,116,251,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,193,180,113,251,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,193,158,112,251,193,244,113,251,193,246,113,251,193,248,113,251,193,250,113,251,193,252,113,251,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,193,254,113,251,193,2,114,251,193,4,114,251,193,6,114,251,193,8,114,251,193,10,114,251,193,12,114,251,193,14,114,251,193,16,114,251,193,18,114,251,193,20,114,251,193,22,114,251,193,24,114,251,193,26,114,251,193,28,114,251,193,30,114,251,193,246,114,251,193,248,114,251,193,250,114,251,193,252,114,251,193,254,114,251,193,2,115,251,193,4,115,251,193,6,115,251,193,8,115,251,193,10,115,251,193,12,115,251,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,193,36,115,251,193,38,115,251,193,40,115,251,193,104,113,251,193,42,115,251,193,44,115,251,193,46,115,251,193,48,115,251,193,50,115,251,193,52,115,251,193,54,115,251,193,56,115,251,193,58,115,251,193,60,115,251,193,62,115,251,193,64,115,251,193,66,115,251,193,68,115,251,193,18,116,251,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,193,14,116,251,193,20,115,251,193,16,116,251,193,22,115,251,193,24,115,251,193,26,115,251,193,28,115,251,193,30,115,251,193,32,115,251,193,34,115,251,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,193,14,115,251,193,16,115,251,193,18,115,251,193,2,116,251,193,4,116,251,193,6,116,251,193,8,116,251,193,10,116,251,193,12,116,251,193,238,116,251,193,240,116,251,193,242,116,251,193,244,116,251,193,246,116,251,193,190,117,251,193,192,117,251,193,46,118,251,193,48,118,251,193,126,118,251,193,128,118,251,193,130,118,251,193,132,118,251,193,202,118,251,193,204,118,251,193,206,118,251,193,250,118,251,193,28,119,251,193,94,119,251,193,96,119,251,193,152,119,251,193,182,119,251,193,184,119,251,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,193,148,115,251,193,150,115,251,193,152,115,251,193,154,115,251,193,156,115,251,193,158,115,251,193,160,115,251,193,162,115,251,193,164,115,251,193,166,115,251,193,168,115,251,193,170,115,251,193,162,116,251,193,164,116,251,193,166,116,251,193,168,116,251,193,170,116,251,193,172,116,251,193,174,116,251,193,176,116,251,193,178,116,251,193,180,116,251,193,182,116,251,193,184,116,251,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,193,198,116,251,193,200,116,251,193,202,116,251,193,204,116,251,193,206,116,251,193,208,116,251,193,210,116,251,193,212,116,251,193,214,116,251,193,216,116,251,193,218,116,251,193,220,116,251,193,222,116,251,193,224,116,251,193,226,116,251,193,228,116,251,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,193,248,116,251,193,112,171,252,193,146,116,251,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,193,148,116,251,193,150,116,251,193,152,116,251,193,154,116,251,193,156,116,251,193,158,116,251,193,100,117,251,193,102,117,251,193,104,117,251,193,106,117,251,193,108,117,251,193,12,118,251,193,88,118,251,193,90,118,251,193,92,118,251,193,94,118,251,193,170,118,251,193,172,118,251,193,228,118,251,193,14,119,251,193,16,119,251,193,64,119,251,193,200,119,251,193,202,119,251,193,204,119,251,193,206,119,251,193,12,120,251,193,68,120,251,193,144,120,251,193,146,120,251,193,148,120,251,193,204,120,251,193,190,116,251,193,192,116,251,193,136,117,251,193,138,117,251,193,140,117,251,193,142,117,251,193,30,118,251,193,32,118,251,193,34,118,251,193,110,118,251,193,112,118,251,193,114,118,251,193,116,118,251,193,118,118,251,193,186,118,251,193,234,118,251,193,236,118,251,193,238,118,251,193,240,118,251,193,242,118,251,193,84,119,251,193,92,119,251,193,136,119,251,193,138,119,251,193,140,119,251,193,142,119,251,193,162,119,251,193,164,119,251,193,166,119,251,193,20,120,251,193,22,120,251,193,24,120,251,193,230,116,251,193,232,116,251,193,234,116,251,193,150,117,251,193,152,117,251,193,154,117,251,193,156,117,251,193,158,117,251,193,160,117,251,193,162,117,251,193,164,117,251,193,166,117,251,193,168,117,251,193,170,117,251,193,172,117,251,193,174,117,251,193,176,117,251,193,178,117,251,193,180,117,251,193,182,117,251,193,236,116,251,193,184,117,251,193,186,117,251,193,188,117,251,193,36,118,251,193,120,118,251,193,38,118,251,193,40,118,251,193,42,118,251,193,44,118,251,193,122,118,251,193,124,118,251,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,193,194,117,251,193,196,117,251,193,198,117,251,193,200,117,251,193,202,117,251,193,204,117,251,193,206,117,251,193,208,117,251,193,210,117,251,193,212,117,251,193,214,117,251,193,216,117,251,193,218,117,251,193,220,117,251,193,222,117,251,193,224,117,251,193,226,117,251,193,228,117,251,193,230,117,251,193,232,117,251,193,234,117,251,193,236,117,251,193,238,117,251,193,240,117,251,193,242,117,251,193,244,117,251,193,246,117,251,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,193,14,118,251,193,16,118,251,193,18,118,251,193,20,118,251,193,22,118,251,193,24,118,251,193,26,118,251,193,28,118,251,193,96,118,251,193,98,118,251,193,100,118,251,193,102,118,251,193,104,118,251,193,106,118,251,193,108,118,251,193,174,118,251,193,176,118,251,193,178,118,251,193,180,118,251,193,182,118,251,193,184,118,251,193,230,118,251,193,232,118,251,193,18,119,251,193,20,119,251,193,50,119,251,193,52,119,251,193,248,117,251,193,250,117,251,193,184,98,253,193,252,117,251,193,254,117,251,193,2,118,251,193,4,118,251,193,6,118,251,193,8,118,251,193,10,118,251,193,50,118,251,193,52,118,251,193,54,118,251,193,56,118,251,193,58,118,251,193,60,118,251,193,62,118,251,193,64,118,251,193,66,118,251,193,68,118,251,193,70,118,251,193,72,118,251,193,74,118,251,193,76,118,251,193,78,118,251,193,80,118,251,193,82,118,251,193,84,118,251,193,86,118,251,193,134,118,251,193,136,118,251,193,138,118,251,193,140,118,251,193,142,118,251,193,144,118,251,193,146,118,251,193,148,118,251,193,150,118,251,193,152,118,251,193,154,118,251,193,156,118,251,193,158,118,251,193,160,118,251,193,162,118,251,193,164,118,251,193,166,118,251,193,208,118,251,193,210,118,251,193,212,118,251,193,214,118,251,193,216,118,251,193,218,118,251,193,220,118,251,193,222,118,251,193,224,118,251,193,226,118,251,193,252,118,251,193,254,118,251,193,2,119,251,193,4,119,251,193,6,119,251,193,8,119,251,193,168,118,251,193,10,119,251,193,188,118,251,193,190,118,251,193,192,118,251,193,194,118,251,193,196,118,251,193,198,118,251,193,200,118,251,193,244,118,251,193,246,118,251,193,248,118,251,193,22,119,251,193,24,119,251,193,26,119,251,193,56,119,251,193,68,119,251,193,70,119,251,193,108,119,251,193,110,119,251,193,112,119,251,193,114,119,251,193,118,119,251,193,122,119,251,193,144,119,251,193,146,119,251,193,148,119,251,193,150,119,251,193,172,119,251,193,174,119,251,193,176,119,251,193,178,119,251,193,180,119,251,193,218,119,251,193,12,119,251,193,30,119,251,193,32,119,251,193,34,119,251,193,36,119,251,193,38,119,251,193,40,119,251,193,42,119,251,193,44,119,251,193,46,119,251,193,48,119,251,193,58,119,251,193,60,119,251,193,62,119,251,193,72,119,251,193,74,119,251,193,76,119,251,193,78,119,251,193,80,119,251,193,82,119,251,193,86,119,251,193,88,119,251,193,90,119,251,193,98,119,251,193,100,119,251,193,102,119,251,193,104,119,251,193,106,119,251,193,116,119,251,193,120,119,251,193,124,119,251,193,126,119,251,193,66,119,251,193,134,119,251,193,14,120,251,193,16,120,251,193,18,120,251,193,70,120,251,193,106,120,251,193,150,120,251,193,152,120,251,193,206,120,251,193,208,120,251,193,6,121,251,193,8,121,251,193,36,121,251,193,38,121,251,193,64,121,251,193,66,121,251,193,98,121,251,193,100,121,251,193,138,121,251,193,166,121,251,193,242,121,251,193,244,121,251,193,52,122,251,193,54,122,251,193,56,122,251,193,58,122,251,193,60,122,251,193,62,122,251,193,64,122,251,193,152,122,251,193,154,122,251,193,212,119,251,193,214,119,251,193,216,119,251,193,28,120,251,193,30,120,251,193,32,120,251,193,76,120,251,193,78,120,251,193,118,120,251,193,168,120,251,193,170,120,251,193,172,120,251,193,222,120,251,193,224,120,251,193,14,121,251,193,44,121,251,193,106,121,251,193,126,121,251,193,158,121,251,193,198,121,251,193,248,121,251,193,250,121,251,193,72,122,251,193,74,122,251,193,76,122,251,193,174,122,251,193,176,122,251,193,26,123,251,193,28,123,251,193,30,123,251,193,182,123,251,193,184,123,251,193,220,119,251,193,222,119,251,193,224,119,251,193,226,119,251,193,228,119,251,193,230,119,251,193,232,119,251,193,234,119,251,193,34,120,251,193,36,120,251,193,38,120,251,193,80,120,251,193,82,120,251,193,84,120,251,193,120,120,251,193,122,120,251,193,124,120,251,193,174,120,251,193,126,120,251,193,226,120,251,193,228,120,251,193,16,121,251,193,18,121,251,193,20,121,251,193,68,121,251,193,70,121,251,193,108,121,251,193,110,121,251,193,128,121,251,193,142,121,251,193,144,121,251,193,162,121,251,193,236,119,251,193,40,120,251,193,86,120,251,193,88,120,251,193,176,120,251,193,230,120,251,193,46,121,251,193,72,121,251,193,168,121,251,193,176,121,251,193,188,121,251,193,190,121,251,193,210,121,251,193,212,121,251,193,16,122,251,193,18,122,251,193,20,122,251,193,22,122,251,193,108,122,251,193,196,122,251,193,198,122,251,193,200,122,251,193,202,122,251,193,72,123,251,193,74,123,251,193,76,123,251,193,78,123,251,193,210,123,251,193,212,123,251,193,214,123,251,193,216,123,251,193,218,123,251,193,26,120,251,193,72,120,251,193,74,120,251,193,108,120,251,193,110,120,251,193,112,120,251,193,114,120,251,193,116,120,251,193,154,120,251,193,156,120,251,193,158,120,251,193,160,120,251,193,162,120,251,193,164,120,251,193,166,120,251,193,210,120,251,193,212,120,251,193,214,120,251,193,216,120,251,193,218,120,251,193,220,120,251,193,10,121,251,193,12,121,251,193,40,121,251,193,42,121,251,193,102,121,251,193,104,121,251,193,118,121,251,193,140,121,251,193,172,121,251,193,246,121,251,193,66,122,251,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,193,90,120,251,193,92,120,251,193,94,120,251,193,96,120,251,193,98,120,251,193,100,120,251,193,128,120,251,193,130,120,251,193,132,120,251,193,134,120,251,193,136,120,251,193,138,120,251,193,140,120,251,193,142,120,251,193,178,120,251,193,180,120,251,193,182,120,251,193,184,120,251,193,186,120,251,193,188,120,251,193,190,120,251,193,192,120,251,193,194,120,251,193,196,120,251,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,193,102,120,251,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,193,104,120,251,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,193,198,120,251,193,200,120,251,193,202,120,251,193,232,120,251,193,234,120,251,193,236,120,251,193,238,120,251,193,240,120,251,193,242,120,251,193,244,120,251,193,246,120,251,193,248,120,251,193,250,120,251,193,252,120,251,193,254,120,251,193,2,121,251,193,4,121,251,193,22,121,251,193,24,121,251,193,26,121,251,193,28,121,251,193,30,121,251,193,32,121,251,193,48,121,251,193,50,121,251,193,52,121,251,193,54,121,251,193,56,121,251,193,58,121,251,193,60,121,251,193,74,121,251,193,76,121,251,193,34,121,251,193,96,121,251,193,114,121,251,193,116,121,251,193,160,121,251,193,46,122,251,193,48,122,251,193,50,122,251,193,148,122,251,193,150,122,251,193,250,122,251,193,252,122,251,193,254,122,251,193,148,123,251,193,150,123,251,193,152,123,251,193,154,123,251,193,24,124,251,193,26,124,251,193,28,124,251,193,182,124,251,193,184,124,251,193,186,124,251,193,188,124,251,193,190,124,251,193,192,124,251,193,194,124,251,193,72,125,251,193,74,125,251,193,76,125,251,193,78,125,251,193,80,125,251,193,78,121,251,193,80,121,251,193,82,121,251,193,84,121,251,193,86,121,251,193,88,121,251,193,90,121,251,193,92,121,251,193,94,121,251,193,112,121,251,193,120,121,251,193,122,121,251,193,124,121,251,193,130,121,251,193,132,121,251,193,134,121,251,193,136,121,251,193,146,121,251,193,148,121,251,193,150,121,251,193,152,121,251,193,154,121,251,193,156,121,251,193,164,121,251,193,170,121,251,193,178,121,251,193,192,121,251,193,194,121,251,193,196,121,251,193,214,121,251,193,216,121,251,193,218,121,251,193,174,121,251,193,180,121,251,193,182,121,251,193,184,121,251,193,186,121,251,193,200,121,251,193,202,121,251,193,204,121,251,193,206,121,251,193,208,121,251,193,252,121,251,193,254,121,251,193,2,122,251,193,4,122,251,193,6,122,251,193,8,122,251,193,10,122,251,193,12,122,251,193,14,122,251,193,78,122,251,193,80,122,251,193,82,122,251,193,84,122,251,193,86,122,251,193,88,122,251,193,90,122,251,193,92,122,251,193,94,122,251,193,96,122,251,193,98,122,251,193,100,122,251,193,102,122,251,193,220,121,251,193,222,121,251,193,224,121,251,193,226,121,251,193,228,121,251,193,230,121,251,193,232,121,251,193,234,121,251,193,236,121,251,193,238,121,251,193,240,121,251,193,24,122,251,193,26,122,251,193,28,122,251,193,30,122,251,193,32,122,251,193,34,122,251,193,36,122,251,193,38,122,251,193,40,122,251,193,42,122,251,193,44,122,251,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,193,68,122,251,193,70,122,251,193,158,122,251,193,160,122,251,193,162,122,251,193,164,122,251,193,166,122,251,193,168,122,251,193,170,122,251,193,172,122,251,193,14,123,251,193,16,123,251,193,18,123,251,193,20,123,251,193,22,123,251,193,24,123,251,193,174,123,251,193,176,123,251,193,178,123,251,193,180,123,251,193,50,124,251,193,52,124,251,193,54,124,251,193,56,124,251,193,58,124,251,193,60,124,251,193,62,124,251,193,64,124,251,193,66,124,251,193,68,124,251,193,70,124,251,193,72,124,251,193,104,122,251,193,106,122,251,193,178,122,251,193,180,122,251,193,182,122,251,193,184,122,251,193,186,122,251,193,32,123,251,193,188,122,251,193,190,122,251,193,192,122,251,193,194,122,251,193,34,123,251,193,36,123,251,193,38,123,251,193,40,123,251,193,42,123,251,193,44,123,251,193,46,123,251,193,48,123,251,193,50,123,251,193,52,123,251,193,54,123,251,193,56,123,251,193,58,123,251,193,60,123,251,193,62,123,251,193,64,123,251,193,66,123,251,193,68,123,251,193,70,123,251,193,188,123,251,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,193,204,122,251,193,206,122,251,193,208,122,251,193,210,122,251,193,212,122,251,193,214,122,251,193,216,122,251,193,218,122,251,193,220,122,251,193,222,122,251,193,224,122,251,193,226,122,251,193,228,122,251,193,230,122,251,193,232,122,251,193,234,122,251,193,236,122,251,193,238,122,251,193,240,122,251,193,242,122,251,193,244,122,251,193,246,122,251,193,248,122,251,193,156,122,251,193,2,123,251,193,4,123,251,193,6,123,251,193,8,123,251,193,10,123,251,193,12,123,251,193,156,123,251,193,158,123,251,193,160,123,251,193,162,123,251,193,164,123,251,193,166,123,251,193,168,123,251,193,170,123,251,193,172,123,251,193,30,124,251,193,32,124,251,193,34,124,251,193,36,124,251,193,38,124,251,193,40,124,251,193,42,124,251,193,44,124,251,193,46,124,251,193,48,124,251,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,193,80,123,251,193,82,123,251,193,84,123,251,193,86,123,251,193,88,123,251,193,90,123,251,193,92,123,251,193,94,123,251,193,96,123,251,193,98,123,251,193,100,123,251,193,102,123,251,193,104,123,251,193,106,123,251,193,108,123,251,193,110,123,251,193,112,123,251,193,114,123,251,193,116,123,251,193,118,123,251,193,120,123,251,193,122,123,251,193,124,123,251,193,126,123,251,193,128,123,251,193,130,123,251,193,132,123,251,193,134,123,251,193,136,123,251,193,138,123,251,193,140,123,251,193,142,123,251,193,144,123,251,193,146,123,251,193,224,123,251,193,226,123,251,193,228,123,251,193,230,123,251,193,232,123,251,193,234,123,251,193,236,123,251,193,238,123,251,193,240,123,251,193,242,123,251,193,244,123,251,193,246,123,251,193,248,123,251,193,250,123,251,193,252,123,251,193,254,123,251,193,2,124,251,193,4,124,251,193,6,124,251,193,8,124,251,193,10,124,251,193,12,124,251,193,14,124,251,193,16,124,251,193,18,124,251,193,20,124,251,193,22,124,251,193,114,124,251,193,116,124,251,193,118,124,251,193,186,123,251,193,74,124,251,193,76,124,251,193,78,124,251,193,80,124,251,193,82,124,251,193,228,124,251,193,230,124,251,193,232,124,251,193,234,124,251,193,236,124,251,193,238,124,251,193,240,124,251,193,242,124,251,193,120,125,251,193,122,125,251,193,124,125,251,193,126,125,251,193,128,125,251,193,130,125,251,193,132,125,251,193,134,125,251,193,136,125,251,193,138,125,251,193,34,126,251,193,36,126,251,193,38,126,251,193,152,126,251,193,154,126,251,193,240,126,251,193,242,126,251,193,244,126,251,193,190,123,251,193,192,123,251,193,194,123,251,193,196,123,251,193,198,123,251,193,200,123,251,193,202,123,251,193,204,123,251,193,206,123,251,193,208,123,251,193,84,124,251,193,86,124,251,193,88,124,251,193,90,124,251,193,92,124,251,193,94,124,251,193,96,124,251,193,98,124,251,193,100,124,251,193,102,124,251,193,104,124,251,193,106,124,251,193,244,124,251,193,246,124,251,193,248,124,251,193,250,124,251,193,252,124,251,193,254,124,251,193,2,125,251,193,4,125,251,193,140,125,251,193,142,125,251,193,220,123,251,193,222,123,251,193,110,124,251,193,112,124,251,193,6,125,251,193,8,125,251,193,10,125,251,193,12,125,251,193,14,125,251,193,162,125,251,193,164,125,251,193,166,125,251,193,168,125,251,193,50,126,251,193,52,126,251,193,54,126,251,193,52,127,251,193,172,127,251,193,254,127,251,193,28,128,251,193,48,128,251,193,54,128,251,193,108,128,251,193,152,128,251,193,172,129,251,193,244,129,251,193,38,130,251,193,62,130,251,193,178,130,251,193,200,130,251,193,228,130,251,193,230,130,251,193,144,125,251,193,146,125,251,193,148,125,251,193,150,125,251,193,152,125,251,193,154,125,251,193,156,125,251,193,158,125,251,193,160,125,251,193,40,126,251,193,108,124,251,193,42,126,251,193,44,126,251,193,46,126,251,193,48,126,251,193,156,126,251,193,158,126,251,193,246,126,251,193,248,126,251,193,104,127,251,193,106,127,251,193,108,127,251,193,146,127,251,193,170,127,251,193,22,128,251,193,26,128,251,193,30,128,251,193,32,128,251,193,34,128,251,193,42,128,251,193,44,128,251,193,46,128,251,193,120,124,251,193,122,124,251,193,124,124,251,193,126,124,251,193,128,124,251,193,130,124,251,193,132,124,251,193,134,124,251,193,136,124,251,193,138,124,251,193,140,124,251,193,142,124,251,193,144,124,251,193,146,124,251,193,148,124,251,193,150,124,251,193,152,124,251,193,154,124,251,193,156,124,251,193,158,124,251,193,160,124,251,193,162,124,251,193,164,124,251,193,166,124,251,193,168,124,251,193,170,124,251,193,172,124,251,193,174,124,251,193,176,124,251,193,178,124,251,193,180,124,251,193,16,125,251,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,193,84,125,251,193,86,125,251,193,88,125,251,193,90,125,251,193,92,125,251,193,94,125,251,193,96,125,251,193,98,125,251,193,100,125,251,193,102,125,251,193,104,125,251,193,252,125,251,193,254,125,251,193,2,126,251,193,4,126,251,193,6,126,251,193,8,126,251,193,10,126,251,193,12,126,251,193,14,126,251,193,16,126,251,193,18,126,251,193,20,126,251,193,22,126,251,193,24,126,251,193,130,126,251,193,132,126,251,193,134,126,251,193,216,124,251,193,218,124,251,193,220,124,251,193,222,124,251,193,224,124,251,193,226,124,251,193,106,125,251,193,108,125,251,193,110,125,251,193,112,125,251,193,114,125,251,193,116,125,251,193,118,125,251,193,26,126,251,193,28,126,251,193,30,126,251,193,32,126,251,193,140,126,251,193,142,126,251,193,144,126,251,193,146,126,251,193,148,126,251,193,150,126,251,193,234,126,251,193,236,126,251,193,238,126,251,193,40,127,251,193,42,127,251,193,44,127,251,193,46,127,251,193,48,127,251,193,96,127,251,193,18,125,251,193,20,125,251,193,22,125,251,193,24,125,251,193,26,125,251,193,28,125,251,193,30,125,251,193,32,125,251,193,34,125,251,193,36,125,251,193,38,125,251,193,40,125,251,193,42,125,251,193,44,125,251,193,46,125,251,193,48,125,251,193,50,125,251,193,52,125,251,193,54,125,251,193,56,125,251,193,58,125,251,193,60,125,251,193,62,125,251,193,64,125,251,193,66,125,251,193,68,125,251,193,70,125,251,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,193,82,125,251,193,240,125,251,193,242,125,251,193,244,125,251,193,246,125,251,193,248,125,251,193,118,126,251,193,120,126,251,193,122,126,251,193,124,126,251,193,126,126,251,193,198,126,251,193,200,126,251,193,202,126,251,193,204,126,251,193,22,127,251,193,82,127,251,193,84,127,251,193,86,127,251,193,158,127,251,193,160,127,251,193,190,127,251,193,236,127,251,193,38,128,251,193,136,128,251,193,138,128,251,193,166,128,251,193,242,128,251,193,244,128,251,193,8,129,251,193,18,129,251,193,100,129,251,193,58,126,251,193,60,126,251,193,62,126,251,193,64,126,251,193,66,126,251,193,68,126,251,193,70,126,251,193,72,126,251,193,74,126,251,193,76,126,251,193,78,126,251,193,80,126,251,193,82,126,251,193,84,126,251,193,86,126,251,193,88,126,251,193,90,126,251,193,92,126,251,193,94,126,251,193,96,126,251,193,98,126,251,193,100,126,251,193,102,126,251,193,104,126,251,193,106,126,251,193,108,126,251,193,110,126,251,193,112,126,251,193,114,126,251,193,116,126,251,193,160,126,251,193,162,126,251,193,136,126,251,193,138,126,251,193,206,126,251,193,208,126,251,193,210,126,251,193,212,126,251,193,214,126,251,193,216,126,251,193,218,126,251,193,220,126,251,193,222,126,251,193,224,126,251,193,226,126,251,193,228,126,251,193,230,126,251,193,232,126,251,193,24,127,251,193,26,127,251,193,28,127,251,193,30,127,251,193,32,127,251,193,34,127,251,193,36,127,251,193,38,127,251,193,88,127,251,193,90,127,251,193,92,127,251,193,94,127,251,193,132,127,251,193,134,127,251,193,136,127,251,193,138,127,251,193,164,126,251,193,166,126,251,193,168,126,251,193,170,126,251,193,172,126,251,193,174,126,251,193,176,126,251,193,178,126,251,193,180,126,251,193,182,126,251,193,184,126,251,193,186,126,251,193,188,126,251,193,190,126,251,193,192,126,251,193,194,126,251,193,196,126,251,193,250,126,251,193,252,126,251,193,254,126,251,193,2,127,251,193,4,127,251,193,6,127,251,193,8,127,251,193,10,127,251,193,12,127,251,193,14,127,251,193,16,127,251,193,18,127,251,193,20,127,251,193,54,127,251,193,56,127,251,193,50,127,251,193,102,127,251,193,168,127,251,193,228,127,251,193,244,127,251,193,222,128,251,193,254,128,251,193,40,129,251,193,42,129,251,193,66,129,251,193,110,129,251,193,170,129,251,193,118,130,251,193,252,130,251,193,18,131,251,193,44,131,251,193,200,131,251,193,42,132,251,193,44,132,251,193,110,132,251,193,112,132,251,193,204,132,251,193,206,132,251,193,208,132,251,193,36,133,251,193,38,133,251,193,40,133,251,193,42,133,251,193,122,133,251,193,124,133,251,193,126,133,251,193,198,133,251,193,58,127,251,193,60,127,251,193,62,127,251,193,64,127,251,193,66,127,251,193,68,127,251,193,70,127,251,193,72,127,251,193,74,127,251,193,76,127,251,193,78,127,251,193,80,127,251,193,110,127,251,193,112,127,251,193,114,127,251,193,116,127,251,193,118,127,251,193,120,127,251,193,122,127,251,193,124,127,251,193,126,127,251,193,128,127,251,193,130,127,251,193,148,127,251,193,150,127,251,193,152,127,251,193,154,127,251,193,156,127,251,206,192,17,0,206,192,17,0,206,192,17,0,206,192,17,0,193,98,127,251,193,100,127,251,193,140,127,251,193,142,127,251,193,144,127,251,193,164,127,251,193,166,127,251,193,198,127,251,193,220,127,251,193,40,128,251,193,50,128,251,193,72,128,251,193,74,128,251,193,96,128,251,193,98,128,251,193,100,128,251,193,114,128,251,193,116,128,251,193,118,128,251,193,140,128,251,193,142,128,251,193,144,128,251,193,172,128,251,193,174,128,251,193,176,128,251,193,194,128,251,193,196,128,251,193,198,128,251,193,200,128,251,193,216,128,251,193,218,128,251,193,220,128,251,193,162,127,251,193,192,127,251,193,194,127,251,193,196,127,251,193,216,127,251,193,218,127,251,193,224,127,251,193,226,127,251,193,238,127,251,193,240,127,251,193,242,127,251,193,18,128,251,193,94,128,251,193,112,128,251,193,168,128,251,193,170,128,251,193,186,128,251,193,188,128,251,193,190,128,251,193,192,128,251,193,246,128,251,193,248,128,251,193,30,129,251,193,32,129,251,193,102,129,251,193,104,129,251,193,130,129,251,193,132,129,251,193,164,129,251,193,166,129,251,193,230,129,251,193,232,129,251,206,192,17,0,206,192,17,0,206,192,17,0,206,192,17,0,193,200,127,251,193,202,127,251,193,204,127,251,193,206,127,251,193,208,127,251,193,210,127,251,193,212,127,251,193,214,127,251,193,222,127,251,193,230,127,251,193,8,128,251,193,232,127,251,193,234,127,251,193,246,127,251,193,14,128,251,193,248,127,251,193,250,127,251,193,252,127,251,193,2,128,251,193,4,128,251,193,6,128,251,193,10,128,251,193,12,128,251,193,16,128,251,193,20,128,251,193,24,128,251,193,36,128,251,193,56,128,251,193,52,128,251,193,76,128,251,193,78,128,251,193,102,128,251,193,104,128,251,193,106,128,251,193,80,128,251,193,120,128,251,193,122,128,251,193,124,128,251,193,146,128,251,193,148,128,251,193,150,128,251,193,202,128,251,193,224,128,251,193,34,129,251,193,44,129,251,193,46,129,251,193,52,129,251,193,54,129,251,193,56,129,251,193,58,129,251,193,68,129,251,193,70,129,251,193,72,129,251,193,112,129,251,193,114,129,251,193,138,129,251,193,140,129,251,193,142,129,251,193,242,129,251,193,16,130,251,193,58,128,251,193,60,128,251,193,62,128,251,193,64,128,251,193,66,128,251,193,68,128,251,193,70,128,251,193,82,128,251,193,84,128,251,193,86,128,251,193,88,128,251,193,90,128,251,193,92,128,251,193,110,128,251,193,126,128,251,193,128,128,251,193,130,128,251,193,132,128,251,193,134,128,251,193,154,128,251,193,156,128,251,193,158,128,251,193,160,128,251,193,162,128,251,193,164,128,251,193,178,128,251,193,180,128,251,193,182,128,251,193,184,128,251,193,204,128,251,193,206,128,251,193,208,128,251,193,210,128,251,193,212,128,251,193,214,128,251,193,226,128,251,193,228,128,251,193,230,128,251,193,232,128,251,193,234,128,251,193,236,128,251,193,238,128,251,193,2,129,251,193,4,129,251,193,6,129,251,193,12,129,251,193,14,129,251,193,16,129,251,193,20,129,251,193,22,129,251,193,26,129,251,193,28,129,251,193,36,129,251,193,48,129,251,193,50,129,251,193,62,129,251,193,64,129,251,193,74,129,251,193,76,129,251,193,78,129,251,193,80,129,251,193,84,129,251,193,86,129,251,193,88,129,251,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,193,32,230,251,193,108,229,251,193,110,229,251,193,112,229,251,193,114,229,251,193,116,229,251,193,118,229,251,193,120,229,251,193,122,229,251,193,240,128,251,193,124,229,251,193,126,229,251,193,128,229,251,193,130,229,251,193,132,229,251,193,134,229,251,193,136,229,251,193,138,229,251,193,140,229,251,193,142,229,251,193,144,229,251,193,34,230,251,193,36,230,251,193,250,128,251,193,252,128,251,193,10,129,251,193,24,129,251,193,38,129,251,193,82,129,251,193,106,129,251,193,108,129,251,193,134,129,251,193,136,129,251,193,168,129,251,193,34,130,251,193,106,130,251,193,188,130,251,193,250,130,251,193,68,131,251,193,70,131,251,193,130,131,251,193,132,131,251,193,144,131,251,193,220,131,251,193,102,132,251,193,104,132,251,193,106,132,251,193,108,132,251,193,194,132,251,193,196,132,251,193,198,132,251,193,200,132,251,193,202,132,251,193,32,133,251,193,34,133,251,193,90,129,251,193,92,129,251,193,94,129,251,193,96,129,251,193,98,129,251,193,118,129,251,193,120,129,251,193,122,129,251,193,124,129,251,193,126,129,251,193,144,129,251,193,146,129,251,193,148,129,251,193,150,129,251,193,152,129,251,193,154,129,251,193,156,129,251,193,158,129,251,193,160,129,251,193,162,129,251,193,174,129,251,193,176,129,251,193,178,129,251,193,180,129,251,193,182,129,251,193,184,129,251,193,186,129,251,193,188,129,251,193,190,129,251,193,196,129,251,193,198,129,251,193,200,129,251,193,128,129,251,193,192,129,251,193,194,129,251,193,56,130,251,193,84,130,251,193,98,130,251,193,116,130,251,193,100,131,251,193,128,131,251,193,30,132,251,193,32,132,251,193,34,132,251,193,94,132,251,193,180,132,251,193,182,132,251,193,24,133,251,193,26,133,251,193,110,133,251,193,250,133,251,193,252,133,251,193,254,133,251,193,188,133,251,193,190,133,251,193,192,133,251,193,194,133,251,193,58,134,251,193,60,134,251,193,118,134,251,193,120,134,251,193,158,134,251,193,172,134,251,193,206,134,251,193,202,129,251,193,204,129,251,193,206,129,251,193,208,129,251,193,210,129,251,193,212,129,251,193,214,129,251,193,216,129,251,193,218,129,251,193,220,129,251,193,222,129,251,193,224,129,251,193,226,129,251,193,228,129,251,193,246,129,251,193,248,129,251,193,250,129,251,193,252,129,251,193,254,129,251,193,2,130,251,193,4,130,251,193,6,130,251,193,8,130,251,193,10,130,251,193,22,130,251,193,24,130,251,193,26,130,251,193,28,130,251,193,30,130,251,193,32,130,251,193,40,130,251,193,42,130,251,193,234,129,251,193,236,129,251,193,238,129,251,193,240,129,251,193,12,130,251,193,14,130,251,193,58,130,251,193,60,130,251,193,86,130,251,193,88,130,251,193,100,130,251,193,102,130,251,193,104,130,251,193,138,130,251,193,170,130,251,193,224,130,251,193,248,130,251,193,66,131,251,193,160,131,251,193,36,132,251,193,38,132,251,193,40,132,251,193,96,132,251,193,98,132,251,193,100,132,251,193,184,132,251,193,186,132,251,193,188,132,251,193,190,132,251,193,192,132,251,193,28,133,251,193,30,133,251,193,44,130,251,193,46,130,251,193,48,130,251,193,50,130,251,193,52,130,251,193,54,130,251,193,64,130,251,193,66,130,251,193,68,130,251,193,70,130,251,193,72,130,251,193,74,130,251,193,76,130,251,193,78,130,251,193,80,130,251,193,82,130,251,193,90,130,251,193,92,130,251,193,94,130,251,193,96,130,251,193,108,130,251,193,110,130,251,193,112,130,251,193,120,130,251,193,122,130,251,193,124,130,251,193,126,130,251,193,128,130,251,193,132,130,251,193,134,130,251,193,136,130,251,193,140,130,251,193,208,92,252,193,212,92,252,193,214,92,252,193,216,92,252,193,218,92,252,193,228,92,252,193,238,92,252,193,250,92,252,193,4,93,252,193,14,93,252,193,16,93,252,193,20,93,252,193,22,93,252,193,26,93,252,193,28,93,252,193,130,130,251,193,30,93,252,193,32,93,252,193,34,93,252,193,38,93,252,193,40,93,252,193,44,93,252,193,46,93,252,193,48,93,252,193,58,93,252,193,60,93,252,193,62,93,252,193,64,93,252,193,66,93,252,193,68,93,252,193,70,93,252,193,78,93,252,193,142,130,251,193,148,130,251,193,150,130,251,193,154,130,251,193,156,130,251,193,158,130,251,193,160,130,251,193,162,130,251,193,164,130,251,193,166,130,251,193,168,130,251,193,180,130,251,193,182,130,251,193,184,130,251,193,186,130,251,193,202,130,251,193,204,130,251,193,206,130,251,193,208,130,251,193,210,130,251,193,212,130,251,193,214,130,251,193,216,130,251,193,218,130,251,193,220,130,251,193,222,130,251,193,232,130,251,193,234,130,251,193,236,130,251,193,238,130,251,193,240,130,251,193,242,130,251,193,244,130,251,193,246,130,251,193,8,131,251,193,10,131,251,193,12,131,251,193,240,254,252,193,14,131,251,193,16,131,251,193,22,131,251,193,24,131,251,193,26,131,251,193,28,131,251,193,30,131,251,193,32,131,251,193,34,131,251,193,36,131,251,193,38,131,251,193,40,131,251,193,42,131,251,193,54,131,251,193,56,131,251,193,58,131,251,193,60,131,251,193,62,131,251,193,64,131,251,193,80,131,251,193,82,131,251,193,84,131,251,193,86,131,251,193,88,131,251,193,90,131,251,193,92,131,251,193,4,131,251,193,6,131,251,193,20,131,251,193,46,131,251,193,48,131,251,193,50,131,251,193,52,131,251,193,76,131,251,193,78,131,251,193,108,131,251,193,110,131,251,193,206,131,251,193,224,131,251,193,226,131,251,193,10,132,251,193,60,132,251,193,62,132,251,193,64,132,251,193,124,132,251,193,126,132,251,193,128,132,251,193,130,132,251,193,132,132,251,193,228,132,251,193,54,133,251,193,56,133,251,193,136,133,251,193,138,133,251,193,28,134,251,193,30,134,251,193,32,134,251,193,84,134,251,193,94,131,251,193,96,131,251,193,98,131,251,193,112,131,251,193,114,131,251,193,116,131,251,193,118,131,251,193,120,131,251,193,122,131,251,193,124,131,251,193,126,131,251,193,134,131,251,193,136,131,251,193,138,131,251,193,140,131,251,193,142,131,251,193,148,131,251,193,150,131,251,193,152,131,251,193,154,131,251,193,156,131,251,193,158,131,251,193,162,131,251,193,164,131,251,193,166,131,251,193,168,131,251,193,170,131,251,193,176,131,251,193,178,131,251,193,180,131,251,193,182,131,251,193,184,131,251,193,186,131,251,193,188,131,251,193,190,131,251,193,194,131,251,193,208,131,251,193,210,131,251,193,212,131,251,193,214,131,251,193,216,131,251,193,228,131,251,193,230,131,251,193,232,131,251,193,234,131,251,193,236,131,251,193,238,131,251,193,240,131,251,193,242,131,251,193,244,131,251,193,246,131,251,193,248,131,251,193,218,131,251,193,12,132,251,193,14,132,251,193,16,132,251,193,18,132,251,193,20,132,251,193,22,132,251,193,24,132,251,193,26,132,251,193,28,132,251,193,66,132,251,193,68,132,251,193,2,132,251,193,4,132,251,193,6,132,251,193,8,132,251,193,46,132,251,193,48,132,251,193,50,132,251,193,52,132,251,193,54,132,251,193,56,132,251,193,58,132,251,193,114,132,251,193,116,132,251,193,118,132,251,193,120,132,251,193,122,132,251,193,210,132,251,193,212,132,251,193,214,132,251,193,216,132,251,193,218,132,251,193,220,132,251,193,222,132,251,193,224,132,251,193,226,132,251,193,44,133,251,193,46,133,251,193,48,133,251,193,50,133,251,193,52,133,251,193,128,133,251,193,130,133,251,193,70,132,251,193,72,132,251,193,74,132,251,193,76,132,251,193,78,132,251,193,80,132,251,193,82,132,251,193,84,132,251,193,86,132,251,193,88,132,251,193,90,132,251,193,92,132,251,193,134,132,251,193,136,132,251,193,138,132,251,193,140,132,251,193,142,132,251,193,144,132,251,193,146,132,251,193,148,132,251,193,150,132,251,193,152,132,251,193,154,132,251,193,156,132,251,193,158,132,251,193,160,132,251,193,162,132,251,193,164,132,251,193,166,132,251,193,168,132,251,193,170,132,251,193,172,132,251,193,174,132,251,193,176,132,251,193,230,132,251,193,232,132,251,193,234,132,251,193,236,132,251,193,238,132,251,193,240,132,251,193,242,132,251,193,244,132,251,193,246,132,251,193,248,132,251,193,250,132,251,193,252,132,251,193,254,132,251,193,2,133,251,193,4,133,251,193,6,133,251,193,8,133,251,193,10,133,251,193,12,133,251,193,14,133,251,193,16,133,251,193,18,133,251,193,20,133,251,193,22,133,251,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,193,112,133,251,193,2,134,251,193,62,134,251,193,64,134,251,193,66,134,251,193,68,134,251,193,160,134,251,193,162,134,251,193,174,134,251,193,186,134,251,193,210,134,251,193,212,134,251,193,236,134,251,193,238,134,251,193,84,135,251,193,110,135,251,193,112,135,251,193,186,135,251,193,188,135,251,193,190,135,251,193,192,135,251,193,34,136,251,193,212,136,251,193,214,136,251,193,176,137,251,193,178,137,251,193,132,138,251,193,134,138,251,193,152,139,251,193,154,139,251,193,156,139,251,193,158,139,251,193,114,133,251,193,116,133,251,193,118,133,251,193,120,133,251,193,196,133,251,193,4,134,251,193,6,134,251,193,8,134,251,193,10,134,251,193,12,134,251,193,14,134,251,193,16,134,251,193,18,134,251,193,20,134,251,193,70,134,251,193,72,134,251,193,122,134,251,193,124,134,251,193,126,134,251,193,128,134,251,193,130,134,251,193,132,134,251,193,176,134,251,193,188,134,251,193,190,134,251,193,214,134,251,193,216,134,251,193,240,134,251,193,250,134,251,193,2,135,251,193,20,135,251,193,36,135,251,193,132,133,251,193,134,133,251,193,24,134,251,193,26,134,251,193,76,134,251,193,78,134,251,193,80,134,251,193,82,134,251,193,166,134,251,193,178,134,251,193,180,134,251,193,192,134,251,193,228,134,251,193,252,134,251,193,8,135,251,193,14,135,251,193,22,135,251,193,128,135,251,193,132,135,251,193,140,135,251,193,142,135,251,193,144,135,251,193,146,135,251,193,148,135,251,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,193,200,133,251,193,22,134,251,193,74,134,251,193,134,134,251,193,136,134,251,193,138,134,251,193,164,134,251,193,218,134,251,193,104,135,251,193,44,136,251,193,228,136,251,193,230,136,251,193,232,136,251,193,234,136,251,193,200,137,251,193,202,137,251,193,204,137,251,193,206,137,251,193,208,137,251,193,210,137,251,193,156,138,251,193,158,138,251,193,160,138,251,193,162,138,251,193,164,138,251,193,166,138,251,193,168,138,251,193,170,138,251,193,172,138,251,193,174,138,251,193,176,138,251,193,182,139,251,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,193,34,134,251,193,36,134,251,193,38,134,251,193,40,134,251,193,42,134,251,193,44,134,251,193,46,134,251,193,48,134,251,193,50,134,251,193,52,134,251,193,54,134,251,193,56,134,251,193,88,134,251,193,90,134,251,193,92,134,251,193,94,134,251,193,96,134,251,193,98,134,251,193,100,134,251,193,102,134,251,193,104,134,251,193,106,134,251,193,108,134,251,193,110,134,251,193,112,134,251,193,114,134,251,193,116,134,251,193,140,134,251,193,86,134,251,193,194,134,251,193,16,135,251,193,38,135,251,193,150,135,251,193,152,135,251,193,154,135,251,193,156,135,251,193,220,135,251,193,222,135,251,193,224,135,251,193,226,135,251,193,228,135,251,193,230,135,251,193,232,135,251,193,234,135,251,193,94,136,251,193,96,136,251,193,98,136,251,193,100,136,251,193,102,136,251,193,104,136,251,193,106,136,251,193,40,135,251,193,108,136,251,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,193,142,134,251,193,144,134,251,193,146,134,251,193,148,134,251,193,150,134,251,193,152,134,251,193,154,134,251,193,156,134,251,193,168,134,251,193,170,134,251,193,182,134,251,193,184,134,251,193,196,134,251,193,198,134,251,193,200,134,251,193,202,134,251,193,204,134,251,193,220,134,251,193,222,134,251,193,224,134,251,193,226,134,251,193,230,134,251,193,232,134,251,193,234,134,251,193,242,134,251,193,244,134,251,193,246,134,251,193,254,134,251,193,4,135,251,193,6,135,251,193,12,135,251,193,18,135,251,193,208,134,251,193,248,134,251,193,24,136,251,193,26,136,251,193,28,136,251,193,30,136,251,193,206,136,251,193,208,136,251,193,210,136,251,193,164,137,251,193,166,137,251,193,168,137,251,193,170,137,251,193,172,137,251,193,174,137,251,193,118,138,251,193,120,138,251,193,122,138,251,193,124,138,251,193,126,138,251,193,128,138,251,193,138,139,251,193,140,139,251,193,142,139,251,193,144,139,251,193,146,139,251,193,148,139,251,193,234,140,251,193,236,140,251,193,238,140,251,193,240,140,251,193,242,140,251,193,24,135,251,193,26,135,251,193,28,135,251,193,30,135,251,193,32,135,251,193,34,135,251,193,42,135,251,193,44,135,251,193,46,135,251,193,48,135,251,193,50,135,251,193,52,135,251,193,54,135,251,193,56,135,251,193,58,135,251,193,60,135,251,193,62,135,251,193,64,135,251,193,66,135,251,193,68,135,251,193,70,135,251,193,72,135,251,193,74,135,251,193,76,135,251,193,78,135,251,193,80,135,251,193,82,135,251,206,64,18,0,206,64,18,0,206,64,18,0,206,64,18,0,206,64,18,0,193,106,135,251,193,108,135,251,193,114,135,251,193,116,135,251,193,118,135,251,193,120,135,251,193,122,135,251,193,124,135,251,193,126,135,251,193,134,135,251,193,136,135,251,193,138,135,251,193,158,135,251,193,160,135,251,193,162,135,251,193,164,135,251,193,166,135,251,193,168,135,251,193,170,135,251,193,172,135,251,193,174,135,251,193,176,135,251,193,178,135,251,193,180,135,251,193,182,135,251,193,184,135,251,193,236,135,251,193,238,135,251,193,194,135,251,193,36,136,251,193,38,136,251,193,40,136,251,193,42,136,251,193,216,136,251,193,218,136,251,193,220,136,251,193,222,136,251,193,224,136,251,193,226,136,251,193,180,137,251,193,182,137,251,193,184,137,251,193,186,137,251,193,188,137,251,193,190,137,251,193,192,137,251,193,194,137,251,193,196,137,251,193,198,137,251,193,136,138,251,193,138,138,251,193,140,138,251,193,142,138,251,193,144,138,251,193,146,138,251,193,148,138,251,193,150,138,251,193,152,138,251,193,154,138,251,193,162,139,251,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,193,46,136,251,193,48,136,251,193,50,136,251,193,52,136,251,193,54,136,251,193,56,136,251,193,58,136,251,193,60,136,251,193,62,136,251,193,212,137,251,193,64,136,251,193,66,136,251,193,68,136,251,193,70,136,251,193,72,136,251,193,74,136,251,193,76,136,251,193,78,136,251,193,80,136,251,193,82,136,251,193,84,136,251,193,86,136,251,193,88,136,251,193,90,136,251,193,92,136,251,193,236,136,251,193,238,136,251,193,240,136,251,193,240,135,251,193,242,135,251,193,244,135,251,193,246,135,251,193,248,135,251,193,250,135,251,193,252,135,251,193,254,135,251,193,2,136,251,193,4,136,251,193,6,136,251,193,8,136,251,193,10,136,251,193,12,136,251,193,14,136,251,193,16,136,251,193,18,136,251,193,20,136,251,193,22,136,251,193,110,136,251,193,112,136,251,193,114,136,251,193,116,136,251,193,118,136,251,193,120,136,251,193,122,136,251,193,124,136,251,193,126,136,251,193,128,136,251,193,130,136,251,193,132,136,251,193,134,136,251,193,136,136,251,193,138,136,251,193,140,136,251,193,142,136,251,193,144,136,251,193,146,136,251,193,148,136,251,193,150,136,251,193,152,136,251,193,154,136,251,193,156,136,251,193,158,136,251,193,160,136,251,193,162,136,251,193,164,136,251,193,166,136,251,193,168,136,251,193,170,136,251,193,172,136,251,193,174,136,251,193,176,136,251,193,178,136,251,193,180,136,251,193,182,136,251,193,184,136,251,193,186,136,251,193,188,136,251,193,190,136,251,193,192,136,251,193,194,136,251,193,196,136,251,193,198,136,251,193,200,136,251,193,202,136,251,193,204,136,251,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,193,242,136,251,193,244,136,251,193,246,136,251,193,248,136,251,193,250,136,251,193,252,136,251,193,254,136,251,193,2,137,251,193,4,137,251,193,6,137,251,193,8,137,251,193,10,137,251,193,12,137,251,193,14,137,251,193,16,137,251,193,18,137,251,193,20,137,251,193,22,137,251,193,24,137,251,193,26,137,251,193,28,137,251,193,30,137,251,193,32,137,251,193,34,137,251,193,36,137,251,193,38,137,251,193,40,137,251,193,42,137,251,193,44,137,251,193,46,137,251,193,48,137,251,193,50,137,251,193,52,137,251,193,54,137,251,193,56,137,251,193,58,137,251,193,60,137,251,193,62,137,251,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,193,28,138,251,193,30,138,251,193,32,138,251,193,238,138,251,193,240,138,251,193,242,138,251,193,244,138,251,193,246,138,251,193,248,138,251,193,250,138,251,193,252,138,251,193,254,138,251,193,2,139,251,193,4,139,251,193,6,139,251,193,8,139,251,193,10,139,251,193,12,139,251,193,14,139,251,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,193,228,93,252,193,152,137,251,193,154,137,251,193,156,137,251,193,158,137,251,193,160,137,251,193,162,137,251,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,193,136,139,251,193,180,190,252,193,182,190,252,193,184,190,252,193,186,190,252,193,188,190,252,193,214,190,252,193,216,190,252,193,218,190,252,193,220,190,252,193,222,190,252,193,224,190,252,193,226,190,252,193,228,190,252,193,230,190,252,193,190,190,252,193,232,190,252,193,234,190,252,193,236,190,252,193,238,190,252,193,240,190,252,193,242,190,252,193,244,190,252,193,246,190,252,206,160,72,0,206,160,72,0,206,160,72,0,206,160,72,0,193,160,139,251,193,248,140,251,193,250,140,251,193,252,140,251,193,254,140,251,193,2,141,251,193,26,142,251,193,28,142,251,193,30,142,251,193,32,142,251,193,242,142,251,193,244,142,251,193,246,142,251,193,248,142,251,193,250,142,251,193,252,142,251,193,254,142,251,193,208,143,251,193,210,143,251,193,212,143,251,193,214,143,251,193,176,144,251,193,178,144,251,193,72,145,251,193,74,145,251,193,76,145,251,193,78,145,251,193,80,145,251,193,82,145,251,193,204,145,251,193,18,146,251,193,102,146,251,193,164,139,251,193,166,139,251,193,168,139,251,193,170,139,251,193,172,139,251,193,174,139,251,193,176,139,251,193,178,139,251,193,180,139,251,193,4,141,251,193,6,141,251,193,8,141,251,193,10,141,251,193,12,141,251,193,14,141,251,193,16,141,251,193,18,141,251,193,20,141,251,193,34,142,251,193,36,142,251,193,38,142,251,193,40,142,251,193,42,142,251,193,44,142,251,193,46,142,251,193,48,142,251,193,50,142,251,193,52,142,251,193,54,142,251,193,56,142,251,193,58,142,251,193,60,142,251,193,184,139,251,193,186,139,251,193,188,139,251,193,190,139,251,193,192,139,251,193,22,141,251,193,24,141,251,193,26,141,251,193,28,141,251,193,62,142,251,193,64,142,251,193,66,142,251,193,68,142,251,193,70,142,251,193,16,143,251,193,18,143,251,193,20,143,251,193,242,143,251,193,244,143,251,193,246,143,251,193,248,143,251,193,202,144,251,193,204,144,251,193,206,144,251,193,208,144,251,193,88,145,251,193,90,145,251,193,214,145,251,193,34,146,251,193,36,146,251,193,38,146,251,193,124,146,251,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,193,120,141,251,193,122,141,251,193,124,141,251,193,126,141,251,193,128,141,251,193,130,141,251,193,132,141,251,193,134,141,251,193,136,141,251,193,138,141,251,193,124,142,251,193,126,142,251,193,128,142,251,193,130,142,251,193,132,142,251,193,134,142,251,193,136,142,251,193,138,142,251,193,140,142,251,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,193,244,140,251,193,246,140,251,193,14,142,251,193,16,142,251,193,18,142,251,193,20,142,251,193,22,142,251,193,24,142,251,193,234,142,251,193,236,142,251,193,238,142,251,193,240,142,251,193,194,143,251,193,196,143,251,193,198,143,251,193,200,143,251,193,202,143,251,193,204,143,251,193,206,143,251,193,168,144,251,193,170,144,251,193,172,144,251,193,174,144,251,193,64,145,251,193,66,145,251,193,68,145,251,193,70,145,251,193,198,145,251,193,200,145,251,193,202,145,251,193,100,146,251,193,210,146,251,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,193,72,142,251,193,80,141,251,193,82,141,251,193,84,141,251,193,86,141,251,193,88,141,251,193,90,141,251,193,92,141,251,193,94,141,251,193,96,141,251,193,98,141,251,193,100,141,251,193,102,141,251,193,104,141,251,193,106,141,251,193,108,141,251,193,110,141,251,193,112,141,251,193,114,141,251,193,116,141,251,193,74,142,251,193,76,142,251,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,193,78,142,251,193,80,142,251,193,82,142,251,193,84,142,251,193,86,142,251,193,88,142,251,193,90,142,251,193,92,142,251,193,94,142,251,193,96,142,251,193,98,142,251,193,100,142,251,193,102,142,251,193,104,142,251,193,106,142,251,193,108,142,251,193,110,142,251,193,112,142,251,193,114,142,251,193,116,142,251,193,118,142,251,193,120,142,251,193,122,142,251,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,193,2,143,251,193,4,143,251,193,6,143,251,193,8,143,251,193,10,143,251,193,12,143,251,193,14,143,251,193,216,143,251,193,218,143,251,193,220,143,251,193,222,143,251,193,224,143,251,193,226,143,251,193,228,143,251,193,230,143,251,193,232,143,251,193,234,143,251,193,236,143,251,193,238,143,251,193,240,143,251,193,180,144,251,193,182,144,251,193,184,144,251,193,186,144,251,193,188,144,251,193,190,144,251,193,192,144,251,193,194,144,251,193,196,144,251,193,198,144,251,193,200,144,251,193,84,145,251,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,193,42,144,251,193,44,144,251,193,46,144,251,193,48,144,251,193,50,144,251,193,52,144,251,193,54,144,251,193,56,144,251,193,58,144,251,193,60,144,251,193,62,144,251,193,64,144,251,193,244,144,251,193,246,144,251,193,248,144,251,193,250,144,251,193,252,144,251,193,254,144,251,193,2,145,251,193,108,145,251,193,110,145,251,193,112,145,251,193,114,145,251,193,116,145,251,193,222,145,251,193,224,145,251,193,226,145,251,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,193,210,144,251,193,212,144,251,193,214,144,251,193,216,144,251,193,218,144,251,193,220,144,251,193,222,144,251,193,224,144,251,193,226,144,251,193,228,144,251,193,230,144,251,193,232,144,251,193,234,144,251,193,236,144,251,193,238,144,251,193,240,144,251,193,242,144,251,193,92,145,251,193,94,145,251,193,96,145,251,193,98,145,251,193,40,146,251,193,100,145,251,193,102,145,251,193,104,145,251,193,106,145,251,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,193,4,145,251,193,6,145,251,193,8,145,251,193,10,145,251,193,12,145,251,193,14,145,251,193,16,145,251,193,18,145,251,193,20,145,251,193,22,145,251,193,24,145,251,193,26,145,251,193,118,145,251,193,28,145,251,193,30,145,251,193,32,145,251,193,34,145,251,193,36,145,251,193,38,145,251,193,40,145,251,193,42,145,251,193,44,145,251,193,46,145,251,193,48,145,251,193,50,145,251,193,52,145,251,193,54,145,251,193,56,145,251,193,58,145,251,193,60,145,251,193,62,145,251,193,120,145,251,193,122,145,251,193,124,145,251,193,126,145,251,193,86,145,251,193,206,145,251,193,208,145,251,193,210,145,251,193,212,145,251,193,20,146,251,193,22,146,251,193,24,146,251,193,26,146,251,193,28,146,251,193,30,146,251,193,32,146,251,193,112,146,251,193,114,146,251,193,116,146,251,193,118,146,251,193,120,146,251,193,122,146,251,193,172,146,251,193,174,146,251,193,176,146,251,193,214,146,251,193,216,146,251,193,4,147,251,193,18,147,251,193,40,147,251,193,80,147,251,193,98,147,251,193,100,147,251,193,112,147,251,193,114,147,251,193,128,147,251,193,128,145,251,193,130,145,251,193,132,145,251,193,134,145,251,193,136,145,251,193,138,145,251,193,140,145,251,193,142,145,251,193,144,145,251,193,146,145,251,193,148,145,251,193,150,145,251,193,152,145,251,193,154,145,251,193,156,145,251,193,158,145,251,193,160,145,251,193,162,145,251,193,164,145,251,193,166,145,251,193,168,145,251,193,170,145,251,193,172,145,251,193,174,145,251,193,176,145,251,193,178,145,251,193,180,145,251,193,182,145,251,193,184,145,251,193,186,145,251,193,188,145,251,193,190,145,251,193,16,146,251,193,72,146,251,193,74,146,251,193,76,146,251,193,78,146,251,193,80,146,251,193,82,146,251,193,84,146,251,193,86,146,251,193,88,146,251,193,90,146,251,193,92,146,251,193,94,146,251,193,96,146,251,193,146,146,251,193,148,146,251,193,150,146,251,193,152,146,251,193,154,146,251,193,156,146,251,193,158,146,251,193,160,146,251,193,162,146,251,193,164,146,251,193,166,146,251,193,168,146,251,193,170,146,251,193,196,145,251,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,193,216,145,251,193,218,145,251,193,220,145,251,193,42,146,251,193,44,146,251,193,46,146,251,193,130,146,251,193,132,146,251,193,134,146,251,193,136,146,251,193,138,146,251,193,140,146,251,193,142,146,251,193,178,146,251,193,218,146,251,193,180,146,251,193,182,146,251,193,220,146,251,193,222,146,251,193,224,146,251,193,226,146,251,193,228,146,251,193,6,147,251,193,230,146,251,193,8,147,251,193,10,147,251,193,12,147,251,193,66,147,251,193,68,147,251,193,70,147,251,193,82,147,251,193,84,147,251,193,48,146,251,193,50,146,251,193,52,146,251,193,54,146,251,193,144,146,251,193,184,146,251,193,186,146,251,193,232,146,251,193,60,147,251,193,86,147,251,193,214,147,251,193,44,148,251,193,46,148,251,193,62,148,251,193,86,148,251,193,142,148,251,193,160,148,251,193,204,148,251,193,36,149,251,193,38,149,251,193,60,149,251,193,62,149,251,193,64,149,251,193,120,149,251,193,122,149,251,193,124,149,251,193,126,149,251,193,128,149,251,193,130,149,251,193,216,149,251,193,218,149,251,193,220,149,251,193,98,11,252,193,118,11,252,193,120,11,252,193,122,11,252,193,124,11,252,193,126,11,252,193,142,11,252,193,144,11,252,193,146,11,252,193,148,11,252,193,150,11,252,193,152,11,252,193,158,11,252,193,98,146,251,193,166,11,252,193,178,11,252,193,180,11,252,193,182,11,252,193,184,11,252,193,186,11,252,193,188,11,252,193,194,11,252,193,196,11,252,193,200,11,252,193,206,11,252,193,208,11,252,193,210,11,252,193,212,11,252,193,214,11,252,193,216,11,252,193,218,11,252,193,228,11,252,193,104,146,251,193,106,146,251,193,108,146,251,193,110,146,251,193,212,146,251,193,38,147,251,193,48,147,251,193,76,147,251,193,154,147,251,193,168,147,251,193,198,147,251,193,14,148,251,193,24,148,251,193,36,148,251,193,56,148,251,193,78,148,251,193,84,148,251,193,96,148,251,193,104,148,251,193,106,148,251,193,114,148,251,193,150,148,251,193,200,148,251,193,216,148,251,193,236,148,251,193,238,148,251,193,6,149,251,193,12,149,251,193,14,149,251,193,48,149,251,193,50,149,251,193,176,149,251,193,126,146,251,193,128,146,251,193,50,147,251,193,144,147,251,193,146,147,251,193,174,147,251,193,180,147,251,193,4,148,251,193,16,148,251,193,18,148,251,193,20,148,251,193,28,148,251,193,58,148,251,193,108,148,251,193,120,148,251,193,202,148,251,193,218,148,251,193,52,149,251,193,102,149,251,193,188,149,251,193,190,149,251,193,28,150,251,193,30,150,251,193,142,150,251,193,144,150,251,193,238,150,251,193,226,151,251,193,228,151,251,193,230,151,251,193,60,152,251,193,140,152,251,193,224,152,251,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,193,234,146,251,193,236,146,251,193,238,146,251,193,240,146,251,193,242,146,251,193,244,146,251,193,246,146,251,193,248,146,251,193,250,146,251,193,252,146,251,193,254,146,251,193,14,147,251,193,16,147,251,193,20,147,251,193,22,147,251,193,24,147,251,193,26,147,251,193,28,147,251,193,30,147,251,193,32,147,251,193,34,147,251,193,36,147,251,193,42,147,251,193,44,147,251,193,46,147,251,193,2,147,251,193,110,147,251,193,140,147,251,193,250,147,251,193,54,148,251,193,68,148,251,193,76,148,251,193,82,148,251,193,112,148,251,193,118,148,251,193,130,148,251,193,166,148,251,193,154,148,251,193,232,148,251,193,234,148,251,193,246,148,251,193,2,149,251,193,4,149,251,193,46,149,251,193,226,150,251,193,80,151,251,193,82,151,251,193,84,151,251,193,86,151,251,193,200,151,251,193,202,151,251,193,204,151,251,193,132,152,251,193,220,152,251,193,22,153,251,193,66,153,251,193,112,153,251,193,52,147,251,193,54,147,251,193,62,147,251,193,56,147,251,193,58,147,251,193,64,147,251,193,72,147,251,193,78,147,251,193,74,147,251,193,88,147,251,193,90,147,251,193,92,147,251,193,94,147,251,193,96,147,251,193,104,147,251,193,106,147,251,193,108,147,251,193,116,147,251,193,118,147,251,193,120,147,251,193,122,147,251,193,124,147,251,193,126,147,251,193,130,147,251,193,132,147,251,193,134,147,251,193,136,147,251,193,138,147,251,193,150,147,251,193,152,147,251,193,162,147,251,193,164,147,251,193,102,147,251,193,212,78,253,193,158,147,251,193,160,147,251,193,176,147,251,193,210,147,251,193,228,147,251,193,230,147,251,193,232,147,251,193,242,147,251,193,244,147,251,193,6,148,251,193,30,148,251,193,32,148,251,193,42,148,251,193,60,148,251,193,70,148,251,193,132,148,251,193,134,148,251,193,136,148,251,193,138,148,251,193,152,148,251,193,158,148,251,193,172,148,251,193,174,148,251,193,176,148,251,193,178,148,251,193,180,148,251,193,190,148,251,193,220,148,251,193,20,149,251,193,22,149,251,193,142,147,251,193,156,147,251,193,226,147,251,193,252,147,251,193,254,147,251,193,2,148,251,193,26,148,251,193,38,148,251,193,40,148,251,193,80,148,251,193,156,148,251,193,168,148,251,193,170,148,251,193,188,148,251,193,240,148,251,193,242,148,251,193,16,149,251,193,98,149,251,193,100,149,251,193,184,149,251,193,186,149,251,193,16,150,251,193,18,150,251,193,20,150,251,193,22,150,251,193,24,150,251,193,26,150,251,193,134,150,251,193,136,150,251,193,138,150,251,193,140,150,251,193,228,150,251,193,166,147,251,193,170,147,251,193,172,147,251,193,178,147,251,193,182,147,251,193,184,147,251,193,186,147,251,193,188,147,251,193,190,147,251,193,192,147,251,193,194,147,251,193,196,147,251,193,200,147,251,193,202,147,251,193,204,147,251,193,206,147,251,193,208,147,251,193,216,147,251,193,218,147,251,193,220,147,251,193,222,147,251,193,224,147,251,193,234,147,251,193,236,147,251,193,238,147,251,193,240,147,251,193,246,147,251,193,248,147,251,193,8,148,251,193,10,148,251,193,12,148,251,193,22,148,251,193,34,148,251,193,48,148,251,193,50,148,251,193,52,148,251,193,64,148,251,193,66,148,251,193,72,148,251,193,74,148,251,193,88,148,251,193,90,148,251,193,92,148,251,193,94,148,251,193,98,148,251,193,110,148,251,193,116,148,251,193,122,148,251,193,124,148,251,193,126,148,251,193,128,148,251,193,140,148,251,193,144,148,251,193,146,148,251,193,148,148,251,193,162,148,251,193,164,148,251,193,182,148,251,193,184,148,251,193,186,148,251,193,192,148,251,193,194,148,251,193,196,148,251,193,198,148,251,193,16,165,251,193,18,165,251,193,26,165,251,193,28,165,251,193,30,165,251,193,44,165,251,193,46,165,251,193,48,165,251,193,54,165,251,193,56,165,251,193,58,165,251,193,60,165,251,193,62,165,251,193,64,165,251,193,66,165,251,193,80,165,251,193,100,148,251,193,82,165,251,193,84,165,251,193,90,165,251,193,92,165,251,193,94,165,251,193,96,165,251,193,102,165,251,193,104,165,251,193,106,165,251,193,108,165,251,193,110,165,251,193,112,165,251,193,114,165,251,193,116,165,251,193,120,165,251,206,32,47,0,206,32,47,0,193,102,148,251,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,193,206,148,251,193,208,148,251,193,210,148,251,193,212,148,251,193,214,148,251,193,222,148,251,193,224,148,251,193,226,148,251,193,228,148,251,193,230,148,251,193,244,148,251,193,248,148,251,193,250,148,251,193,252,148,251,193,8,149,251,193,254,148,251,193,10,149,251,193,18,149,251,193,40,149,251,193,42,149,251,193,44,149,251,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,193,24,149,251,193,26,149,251,193,28,149,251,193,30,149,251,193,32,149,251,193,34,149,251,193,54,149,251,193,56,149,251,193,58,149,251,193,104,149,251,193,106,149,251,193,108,149,251,193,110,149,251,193,112,149,251,193,114,149,251,193,116,149,251,193,118,149,251,193,192,149,251,193,194,149,251,193,196,149,251,193,198,149,251,193,200,149,251,193,202,149,251,193,204,149,251,193,206,149,251,193,208,149,251,193,210,149,251,193,212,149,251,193,214,149,251,193,32,150,251,193,34,150,251,193,36,150,251,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,193,132,149,251,193,134,149,251,193,136,149,251,193,138,149,251,193,140,149,251,193,142,149,251,193,144,149,251,193,146,149,251,193,148,149,251,193,150,149,251,193,152,149,251,193,154,149,251,193,156,149,251,193,158,149,251,193,160,149,251,193,162,149,251,193,164,149,251,193,166,149,251,193,168,149,251,193,170,149,251,193,172,149,251,193,174,149,251,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,193,178,149,251,193,180,149,251,193,182,149,251,193,12,150,251,193,14,150,251,193,132,150,251,193,88,151,251,193,90,151,251,193,206,151,251,193,208,151,251,193,42,152,251,193,44,152,251,193,46,152,251,193,48,152,251,193,50,152,251,193,52,152,251,193,24,153,251,193,26,153,251,193,114,153,251,193,116,153,251,193,180,153,251,193,194,153,251,193,196,153,251,193,254,153,251,193,32,154,251,193,34,154,251,193,36,154,251,193,42,154,251,193,58,154,251,193,60,154,251,193,76,154,251,193,152,154,251,193,222,149,251,193,54,150,251,193,56,150,251,193,58,150,251,193,60,150,251,193,62,150,251,193,64,150,251,193,166,150,251,193,168,150,251,193,8,151,251,193,10,151,251,193,12,151,251,193,14,151,251,193,16,151,251,193,18,151,251,193,122,151,251,193,124,151,251,193,126,151,251,193,128,151,251,193,130,151,251,193,132,151,251,193,134,151,251,193,136,151,251,193,244,151,251,193,246,151,251,193,248,151,251,193,250,151,251,193,252,151,251,193,84,152,251,193,86,152,251,193,88,152,251,193,90,152,251,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,193,38,150,251,193,40,150,251,193,42,150,251,193,44,150,251,193,46,150,251,193,48,150,251,193,50,150,251,193,52,150,251,193,146,150,251,193,148,150,251,193,150,150,251,193,152,150,251,193,154,150,251,193,156,150,251,193,158,150,251,193,160,150,251,193,162,150,251,193,164,150,251,193,240,150,251,193,242,150,251,193,244,150,251,193,246,150,251,193,248,150,251,193,250,150,251,193,252,150,251,193,254,150,251,193,2,151,251,193,4,151,251,193,6,151,251,193,98,151,251,193,100,151,251,193,102,151,251,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,193,230,150,251,193,232,150,251,193,234,150,251,193,236,150,251,193,92,151,251,193,94,151,251,193,96,151,251,193,210,151,251,193,212,151,251,193,214,151,251,193,216,151,251,193,218,151,251,193,220,151,251,193,222,151,251,193,224,151,251,193,54,152,251,193,56,152,251,193,58,152,251,193,134,152,251,193,136,152,251,193,138,152,251,193,222,152,251,193,28,153,251,193,30,153,251,193,32,153,251,193,82,153,251,193,84,153,251,193,86,153,251,193,118,153,251,193,156,153,251,193,182,153,251,193,214,153,251,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,193,104,151,251,193,106,151,251,193,108,151,251,193,110,151,251,193,112,151,251,193,114,151,251,193,116,151,251,193,118,151,251,193,62,152,251,193,120,151,251,193,232,151,251,193,234,151,251,193,236,151,251,193,238,151,251,193,240,151,251,193,242,151,251,193,114,209,252,193,64,152,251,193,66,152,251,193,68,152,251,193,70,152,251,193,72,152,251,193,74,152,251,193,76,152,251,193,78,152,251,193,80,152,251,193,142,152,251,193,82,152,251,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,193,254,151,251,193,2,152,251,193,4,152,251,193,6,152,251,193,8,152,251,193,10,152,251,193,12,152,251,193,14,152,251,193,16,152,251,193,18,152,251,193,20,152,251,193,22,152,251,193,24,152,251,193,26,152,251,193,28,152,251,193,30,152,251,193,32,152,251,193,34,152,251,193,36,152,251,193,38,152,251,193,40,152,251,193,92,152,251,193,94,152,251,193,96,152,251,193,98,152,251,193,100,152,251,193,102,152,251,193,104,152,251,193,106,152,251,193,108,152,251,193,110,152,251,193,112,152,251,193,114,152,251,193,116,152,251,193,118,152,251,193,120,152,251,193,122,152,251,193,124,152,251,193,126,152,251,193,128,152,251,193,130,152,251,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,193,226,152,251,193,228,152,251,193,230,152,251,193,232,152,251,193,36,153,251,193,38,153,251,193,40,153,251,193,68,153,251,193,70,153,251,193,72,153,251,193,88,153,251,193,120,153,251,193,170,153,251,193,172,153,251,193,176,153,251,193,178,153,251,193,200,153,251,193,202,153,251,193,204,153,251,193,20,154,251,193,92,154,251,193,94,154,251,193,106,154,251,193,144,154,251,193,174,154,251,193,218,154,251,193,164,152,251,193,166,152,251,193,234,152,251,193,236,152,251,193,238,152,251,193,42,153,251,193,44,153,251,193,122,153,251,193,124,153,251,193,142,153,251,193,144,153,251,193,176,154,251,193,178,154,251,193,194,154,251,193,214,154,251,193,244,154,251,193,246,154,251,193,248,154,251,193,60,155,251,193,62,155,251,193,130,155,251,193,132,155,251,193,134,155,251,193,136,155,251,193,138,155,251,193,140,155,251,193,142,155,251,193,144,155,251,193,214,155,251,193,216,155,251,193,218,155,251,193,220,155,251,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,193,240,152,251,193,242,152,251,193,244,152,251,193,246,152,251,193,248,152,251,193,250,152,251,193,252,152,251,193,254,152,251,193,2,153,251,193,4,153,251,193,6,153,251,193,8,153,251,193,10,153,251,193,12,153,251,193,14,153,251,193,16,153,251,193,18,153,251,193,20,153,251,193,46,153,251,193,34,153,251,193,140,153,251,193,184,153,251,193,198,153,251,193,218,153,251,193,244,153,251,193,246,153,251,193,2,154,251,193,4,154,251,193,14,154,251,193,16,154,251,193,18,154,251,193,50,154,251,193,52,154,251,193,70,154,251,193,118,154,251,193,120,154,251,193,156,154,251,193,28,155,251,193,196,155,251,193,198,155,251,193,22,156,251,193,24,156,251,193,140,156,251,193,142,156,251,193,28,157,251,193,30,157,251,193,32,157,251,193,148,157,251,193,150,157,251,193,236,157,251,193,92,158,251,193,48,153,251,193,50,153,251,193,52,153,251,193,54,153,251,193,56,153,251,193,58,153,251,193,60,153,251,193,62,153,251,193,64,153,251,193,74,153,251,193,76,153,251,193,78,153,251,193,80,153,251,193,90,153,251,193,92,153,251,193,94,153,251,193,96,153,251,193,98,153,251,193,100,153,251,193,102,153,251,193,104,153,251,193,106,153,251,193,108,153,251,193,110,153,251,193,126,153,251,193,128,153,251,193,130,153,251,193,134,153,251,193,136,153,251,193,138,153,251,193,146,153,251,193,148,153,251,193,132,153,251,193,192,153,251,193,250,153,251,193,252,153,251,193,12,154,251,193,28,154,251,193,30,154,251,193,56,154,251,193,74,154,251,193,82,154,251,193,124,154,251,193,150,154,251,193,94,155,251,193,96,155,251,193,188,155,251,193,190,155,251,193,10,156,251,193,12,156,251,193,104,156,251,193,106,156,251,193,108,156,251,193,110,156,251,193,112,156,251,193,114,156,251,193,4,157,251,193,6,157,251,193,128,157,251,193,130,157,251,193,216,157,251,193,218,157,251,193,66,158,251,193,68,158,251,193,150,153,251,193,152,153,251,193,154,153,251,193,158,153,251,193,160,153,251,193,162,153,251,193,164,153,251,193,166,153,251,193,168,153,251,193,174,153,251,193,186,153,251,193,188,153,251,193,190,153,251,193,206,153,251,193,208,153,251,193,210,153,251,193,212,153,251,193,220,153,251,193,222,153,251,193,224,153,251,193,226,153,251,193,228,153,251,193,232,153,251,193,234,153,251,193,236,153,251,193,238,153,251,193,248,153,251,193,6,154,251,193,8,154,251,193,10,154,251,193,22,154,251,193,24,154,251,193,216,153,251,193,230,153,251,193,240,153,251,193,242,153,251,193,44,154,251,193,46,154,251,193,48,154,251,193,78,154,251,193,102,154,251,193,104,154,251,193,116,154,251,193,134,154,251,193,154,154,251,193,232,154,251,193,234,154,251,193,236,154,251,193,22,155,251,193,24,155,251,193,26,155,251,193,100,155,251,193,102,155,251,193,104,155,251,193,106,155,251,193,108,155,251,193,192,155,251,193,194,155,251,193,18,156,251,193,20,156,251,193,128,156,251,193,130,156,251,193,132,156,251,193,134,156,251,193,182,154,251,193,184,154,251,193,190,154,251,193,192,154,251,193,212,154,251,193,230,154,251,193,20,155,251,193,98,155,251,193,14,156,251,193,16,156,251,193,116,156,251,193,118,156,251,193,120,156,251,193,122,156,251,193,124,156,251,193,126,156,251,193,12,157,251,193,14,157,251,193,16,157,251,193,18,157,251,193,20,157,251,193,22,157,251,193,132,157,251,193,134,157,251,193,136,157,251,193,138,157,251,193,220,157,251,193,222,157,251,193,72,158,251,193,74,158,251,193,76,158,251,193,78,158,251,193,220,154,251,193,222,154,251,193,224,154,251,193,226,154,251,193,238,154,251,193,240,154,251,193,242,154,251,193,30,155,251,193,32,155,251,193,34,155,251,193,36,155,251,193,38,155,251,193,40,155,251,193,42,155,251,193,44,155,251,193,46,155,251,193,48,155,251,193,50,155,251,193,52,155,251,193,54,155,251,193,56,155,251,193,110,155,251,193,112,155,251,193,114,155,251,193,58,155,251,193,116,155,251,193,118,155,251,193,120,155,251,193,122,155,251,193,124,155,251,193,126,155,251,193,128,155,251,193,14,155,251,193,16,155,251,193,18,155,251,193,64,155,251,193,66,155,251,193,68,155,251,193,70,155,251,193,72,155,251,193,74,155,251,193,76,155,251,193,78,155,251,193,80,155,251,193,82,155,251,193,84,155,251,193,86,155,251,193,88,155,251,193,90,155,251,193,92,155,251,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,193,228,155,251,193,230,155,251,193,232,155,251,193,234,155,251,193,236,155,251,193,238,155,251,193,240,155,251,193,242,155,251,193,244,155,251,193,246,155,251,193,248,155,251,193,250,155,251,193,252,155,251,193,254,155,251,193,2,156,251,193,4,156,251,193,6,156,251,193,8,156,251,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,193,200,155,251,193,202,155,251,193,204,155,251,193,206,155,251,193,208,155,251,193,210,155,251,193,212,155,251,193,26,156,251,193,28,156,251,193,30,156,251,193,32,156,251,193,34,156,251,193,36,156,251,193,38,156,251,193,40,156,251,193,42,156,251,193,144,156,251,193,146,156,251,193,148,156,251,193,150,156,251,193,152,156,251,193,154,156,251,193,156,156,251,193,158,156,251,193,160,156,251,193,162,156,251,193,164,156,251,193,166,156,251,193,168,156,251,193,34,157,251,193,36,157,251,193,38,157,251,193,222,155,251,193,224,155,251,193,226,155,251,193,44,156,251,193,46,156,251,193,48,156,251,193,50,156,251,193,52,156,251,193,170,156,251,193,172,156,251,193,174,156,251,193,176,156,251,193,178,156,251,193,50,157,251,193,52,157,251,193,54,157,251,193,56,157,251,193,168,157,251,193,10,158,251,193,12,158,251,193,14,158,251,193,16,158,251,193,122,158,251,193,124,158,251,193,126,158,251,193,210,158,251,193,212,158,251,193,214,158,251,193,216,158,251,193,114,159,251,193,160,159,251,193,6,160,251,193,136,156,251,193,138,156,251,193,24,157,251,193,26,157,251,193,140,157,251,193,142,157,251,193,144,157,251,193,146,157,251,193,224,157,251,193,226,157,251,193,228,157,251,193,230,157,251,193,232,157,251,193,234,157,251,193,80,158,251,193,82,158,251,193,84,158,251,193,86,158,251,193,88,158,251,193,90,158,251,193,178,158,251,193,180,158,251,193,182,158,251,193,184,158,251,193,186,158,251,193,188,158,251,193,190,158,251,193,192,158,251,206,128,22,0,206,128,22,0,206,128,22,0,206,128,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,193,180,209,253,193,250,156,251,193,252,156,251,193,254,156,251,193,2,157,251,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,193,40,157,251,193,42,157,251,193,44,157,251,193,46,157,251,193,238,157,251,193,152,157,251,193,154,157,251,193,156,157,251,193,158,157,251,193,160,157,251,193,48,157,251,193,162,157,251,193,164,157,251,193,240,157,251,193,242,157,251,193,244,157,251,193,246,157,251,193,248,157,251,193,250,157,251,193,252,157,251,193,254,157,251,193,2,158,251,193,4,158,251,193,6,158,251,193,8,158,251,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,193,170,157,251,193,124,157,251,193,126,157,251,193,172,157,251,193,168,147,252,193,12,193,252,193,186,201,252,193,26,202,252,193,228,202,252,193,138,222,252,193,238,250,252,193,176,131,253,193,160,139,253,193,254,192,253,193,220,60,252,193,214,21,252,193,208,126,252,193,86,115,253,193,166,157,251,193,242,171,252,193,98,39,252,193,20,80,252,193,154,44,253,193,78,190,253,193,178,193,253,193,72,194,253,193,74,194,253,193,244,194,253,193,110,195,253,193,112,195,253,193,102,207,253,193,36,219,253,193,38,219,253,255,255,255,255,255,255,255,255,255,255,255,255,193,174,157,251,193,176,157,251,193,178,157,251,193,180,157,251,193,182,157,251,193,184,157,251,193,186,157,251,193,188,157,251,193,190,157,251,193,192,157,251,193,194,157,251,193,196,157,251,193,198,157,251,193,200,157,251,193,202,157,251,193,204,157,251,193,206,157,251,193,208,157,251,193,210,157,251,193,212,157,251,193,214,157,251,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,193,128,158,251,193,130,158,251,193,132,158,251,193,134,158,251,193,136,158,251,193,138,158,251,193,140,158,251,193,142,158,251,193,144,158,251,193,146,158,251,193,148,158,251,193,150,158,251,193,152,158,251,193,154,158,251,193,156,158,251,193,158,158,251,193,160,158,251,193,162,158,251,193,164,158,251,193,70,158,251,193,170,158,251,193,172,158,251,193,174,158,251,193,248,158,251,193,250,158,251,193,48,159,251,193,50,159,251,193,52,159,251,193,94,159,251,193,144,159,251,193,192,159,251,193,14,160,251,193,42,160,251,193,44,160,251,193,70,160,251,193,76,160,251,193,88,160,251,193,96,160,251,193,152,160,251,193,170,160,251,193,226,160,251,193,18,161,251,193,30,161,251,193,86,161,251,193,98,161,251,193,58,162,251,193,176,162,251,193,252,162,251,193,254,162,251,193,58,163,251,193,136,163,251,193,94,158,251,193,96,158,251,193,194,158,251,193,196,158,251,193,64,159,251,193,106,159,251,193,220,159,251,193,128,160,251,193,130,160,251,193,154,160,251,193,236,160,251,193,238,160,251,193,58,161,251,193,154,161,251,193,172,161,251,193,174,161,251,193,176,161,251,193,200,161,251,193,206,161,251,193,190,162,251,193,192,162,251,193,22,163,251,193,24,163,251,193,78,163,251,193,80,163,251,193,150,163,251,193,152,163,251,193,154,163,251,193,216,163,251,193,218,163,251,193,220,163,251,193,40,164,251,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,193,198,158,251,193,200,158,251,193,202,158,251,193,204,158,251,193,206,158,251,193,208,158,251,193,66,159,251,193,108,159,251,193,110,159,251,193,154,159,251,193,156,159,251,193,158,159,251,193,184,159,251,193,200,159,251,193,240,159,251,193,254,159,251,193,4,160,251,193,18,160,251,193,20,160,251,193,30,160,251,193,32,160,251,193,48,160,251,193,50,160,251,193,52,160,251,193,56,160,251,193,102,160,251,193,106,160,251,193,166,158,251,193,168,158,251,193,218,158,251,193,220,158,251,193,222,158,251,193,224,158,251,193,226,158,251,193,228,158,251,193,230,158,251,193,232,158,251,193,234,158,251,193,236,158,251,193,238,158,251,193,240,158,251,193,242,158,251,193,244,158,251,193,246,158,251,193,18,159,251,193,20,159,251,193,22,159,251,193,24,159,251,193,26,159,251,193,28,159,251,193,30,159,251,193,32,159,251,193,34,159,251,193,36,159,251,193,38,159,251,193,130,9,253,193,40,159,251,193,42,159,251,193,44,159,251,193,176,158,251,193,252,158,251,193,254,158,251,193,54,159,251,193,56,159,251,193,58,159,251,193,60,159,251,193,96,159,251,193,146,159,251,193,180,159,251,193,194,159,251,193,212,159,251,193,214,159,251,193,232,159,251,193,234,159,251,193,242,159,251,193,246,159,251,193,16,160,251,193,78,160,251,193,80,160,251,193,98,160,251,193,100,160,251,193,126,160,251,193,172,160,251,193,174,160,251,193,176,160,251,193,228,160,251,193,230,160,251,193,252,160,251,193,254,160,251,193,20,161,251,193,32,161,251,206,128,22,0,206,128,22,0,206,128,22,0,206,128,22,0,193,62,159,251,193,98,159,251,193,100,159,251,193,102,159,251,193,104,159,251,193,148,159,251,193,150,159,251,193,152,159,251,193,182,159,251,193,196,159,251,193,198,159,251,193,216,159,251,193,218,159,251,193,238,159,251,193,24,160,251,193,26,160,251,193,28,160,251,193,46,160,251,193,208,160,251,193,232,160,251,193,234,160,251,193,34,161,251,193,50,161,251,193,74,161,251,193,76,161,251,193,78,161,251,193,100,161,251,193,122,161,251,193,46,159,251,193,68,159,251,193,70,159,251,193,72,159,251,193,74,159,251,193,76,159,251,193,78,159,251,193,80,159,251,193,82,159,251,193,84,159,251,193,86,159,251,193,88,159,251,193,90,159,251,193,92,159,251,193,118,159,251,193,120,159,251,193,122,159,251,193,124,159,251,193,126,159,251,193,128,159,251,193,130,159,251,193,132,159,251,193,134,159,251,193,136,159,251,193,138,159,251,193,140,159,251,193,142,159,251,206,160,22,0,206,160,22,0,206,160,22,0,206,160,22,0,206,160,22,0,193,112,223,253,193,114,223,253,193,118,223,253,193,132,223,253,193,134,223,253,193,136,223,253,193,138,223,253,193,160,223,253,193,162,223,253,193,188,223,253,193,190,223,253,193,226,223,253,193,228,223,253,193,12,224,253,193,14,224,253,193,16,224,253,193,112,159,251,193,30,224,253,193,44,224,253,193,50,224,253,193,52,224,253,193,54,224,253,193,88,224,253,193,90,224,253,193,92,224,253,193,96,224,253,193,110,224,253,193,112,224,253,193,118,224,253,193,166,224,253,193,206,224,253,193,218,224,253,206,160,22,0,206,160,22,0,206,160,22,0,206,160,22,0,193,186,159,251,193,188,159,251,193,190,159,251,193,16,47,252,193,202,159,251,193,204,159,251,193,206,159,251,193,208,159,251,193,210,159,251,193,222,159,251,193,224,159,251,193,226,159,251,193,228,159,251,193,230,159,251,193,236,159,251,193,244,159,251,193,248,159,251,193,250,159,251,193,252,159,251,193,2,160,251,193,8,160,251,193,10,160,251,193,12,160,251,193,36,160,251,193,22,160,251,193,38,160,251,193,40,160,251,193,54,160,251,193,34,160,251,193,36,161,251,193,54,161,251,193,60,161,251,193,138,161,251,193,156,161,251,193,188,161,251,193,228,161,251,193,26,162,251,193,28,162,251,193,30,162,251,193,32,162,251,193,76,162,251,193,78,162,251,193,140,162,251,193,142,162,251,193,144,162,251,193,146,162,251,193,204,162,251,193,206,162,251,193,208,162,251,193,210,162,251,193,212,162,251,193,214,162,251,193,34,163,251,193,36,163,251,193,94,163,251,193,96,163,251,193,98,163,251,193,166,163,251,193,168,163,251,193,170,163,251,193,58,160,251,193,60,160,251,193,62,160,251,193,64,160,251,193,66,160,251,193,68,160,251,193,72,160,251,193,74,160,251,193,82,160,251,193,84,160,251,193,86,160,251,193,90,160,251,193,104,160,251,193,110,160,251,193,114,160,251,193,116,160,251,193,120,160,251,193,122,160,251,193,124,160,251,193,138,160,251,193,182,160,251,193,140,160,251,193,142,160,251,193,144,160,251,193,146,160,251,193,148,160,251,193,150,160,251,193,158,160,251,193,184,160,251,193,160,160,251,193,162,160,251,193,164,160,251,193,172,228,251,193,92,160,251,193,174,228,251,193,176,228,251,193,178,228,251,193,180,228,251,193,182,228,251,193,184,228,251,193,186,228,251,193,188,228,251,193,190,228,251,193,192,228,251,193,194,228,251,193,196,228,251,193,198,228,251,193,200,228,251,193,202,228,251,193,204,228,251,193,206,228,251,193,208,228,251,193,210,228,251,193,212,228,251,193,214,228,251,193,216,228,251,193,218,228,251,193,220,228,251,193,222,228,251,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,193,164,191,252,193,166,191,252,193,168,191,252,193,170,191,252,193,172,191,252,193,174,191,252,193,176,191,252,193,178,191,252,193,180,191,252,193,182,191,252,193,94,160,251,193,184,191,252,193,186,191,252,193,188,191,252,193,190,191,252,193,208,191,252,193,210,191,252,193,212,191,252,193,214,191,252,193,216,191,252,193,218,191,252,193,220,191,252,193,222,191,252,193,224,191,252,193,226,191,252,193,228,191,252,193,230,191,252,193,232,191,252,193,234,191,252,193,22,192,252,193,24,192,252,193,26,192,252,193,108,160,251,193,112,160,251,193,118,160,251,193,132,160,251,193,134,160,251,193,136,160,251,193,156,160,251,193,178,160,251,193,180,160,251,193,210,160,251,193,52,161,251,193,108,161,251,193,114,161,251,193,120,161,251,193,128,161,251,193,130,161,251,193,132,161,251,193,182,161,251,193,186,161,251,193,216,161,251,193,222,161,251,193,224,161,251,193,226,161,251,193,250,161,251,193,252,161,251,193,18,162,251,193,20,162,251,193,22,162,251,193,24,162,251,193,68,162,251,193,70,162,251,193,72,162,251,193,166,160,251,193,168,160,251,193,186,160,251,193,188,160,251,193,190,160,251,193,192,160,251,193,194,160,251,193,196,160,251,193,198,160,251,193,200,160,251,193,202,160,251,193,204,160,251,193,206,160,251,193,212,160,251,193,214,160,251,193,216,160,251,193,218,160,251,193,220,160,251,193,222,160,251,193,224,160,251,193,240,160,251,193,242,160,251,193,244,160,251,193,246,160,251,193,248,160,251,193,250,160,251,193,2,161,251,193,4,161,251,193,6,161,251,193,8,161,251,193,10,161,251,193,12,161,251,193,70,161,251,193,72,161,251,193,88,161,251,193,90,161,251,193,94,161,251,193,60,162,251,193,62,162,251,193,64,162,251,193,110,162,251,193,112,162,251,193,114,162,251,193,178,162,251,193,180,162,251,193,182,162,251,193,2,163,251,193,4,163,251,193,6,163,251,193,8,163,251,193,10,163,251,193,60,163,251,193,62,163,251,193,64,163,251,193,66,163,251,193,138,163,251,193,140,163,251,193,196,163,251,193,198,163,251,193,36,164,251,193,68,164,251,193,70,164,251,193,96,164,251,193,98,164,251,193,124,161,251,193,126,161,251,193,180,161,251,193,196,161,251,193,198,161,251,193,248,161,251,193,66,162,251,193,116,162,251,193,118,162,251,193,184,162,251,193,186,162,251,193,188,162,251,193,12,163,251,193,14,163,251,193,16,163,251,193,18,163,251,193,20,163,251,193,68,163,251,193,70,163,251,193,72,163,251,193,74,163,251,193,76,163,251,193,142,163,251,193,144,163,251,193,146,163,251,193,148,163,251,193,200,163,251,193,202,163,251,193,204,163,251,193,206,163,251,193,208,163,251,193,210,163,251,193,142,161,251,193,144,161,251,193,146,161,251,193,148,161,251,193,150,161,251,193,152,161,251,193,158,161,251,193,160,161,251,193,162,161,251,193,164,161,251,193,166,161,251,193,168,161,251,193,170,161,251,193,178,161,251,193,184,161,251,193,190,161,251,193,192,161,251,193,202,161,251,193,204,161,251,193,208,161,251,193,210,161,251,193,212,161,251,193,214,161,251,193,218,161,251,193,220,161,251,193,230,161,251,193,232,161,251,193,234,161,251,193,236,161,251,193,238,161,251,193,240,161,251,193,242,161,251,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,193,238,10,252,193,240,10,252,193,242,10,252,193,244,10,252,193,250,220,253,193,246,10,252,193,248,10,252,193,250,10,252,193,194,161,251,193,28,11,252,193,30,11,252,193,32,11,252,193,34,11,252,193,54,11,252,193,56,11,252,193,58,11,252,193,60,11,252,193,62,11,252,193,64,11,252,193,66,11,252,193,68,11,252,193,90,11,252,193,92,11,252,193,94,11,252,193,96,11,252,193,244,161,251,193,246,161,251,193,254,161,251,193,2,162,251,193,4,162,251,193,6,162,251,193,8,162,251,193,10,162,251,193,12,162,251,193,14,162,251,193,16,162,251,193,34,162,251,193,36,162,251,193,38,162,251,193,40,162,251,193,42,162,251,193,44,162,251,193,46,162,251,193,48,162,251,193,50,162,251,193,52,162,251,193,54,162,251,193,56,162,251,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,193,74,162,251,193,120,162,251,193,122,162,251,193,124,162,251,193,126,162,251,193,128,162,251,193,130,162,251,193,132,162,251,193,134,162,251,193,136,162,251,193,138,162,251,193,194,162,251,193,196,162,251,193,198,162,251,193,200,162,251,193,202,162,251,193,26,163,251,193,28,163,251,193,30,163,251,193,32,163,251,193,82,163,251,193,84,163,251,193,86,163,251,193,88,163,251,193,90,163,251,193,92,163,251,193,156,163,251,193,158,163,251,193,160,163,251,193,162,163,251,193,164,163,251,193,222,163,251,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,193,148,162,251,193,150,162,251,193,152,162,251,193,154,162,251,193,156,162,251,193,158,162,251,193,160,162,251,193,162,162,251,193,164,162,251,193,166,162,251,193,168,162,251,193,170,162,251,193,172,162,251,193,174,162,251,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,193,38,163,251,193,40,163,251,193,42,163,251,193,44,163,251,193,46,163,251,193,48,163,251,193,50,163,251,193,52,163,251,193,54,163,251,193,56,163,251,193,100,163,251,193,102,163,251,193,104,163,251,193,106,163,251,193,108,163,251,193,110,163,251,193,112,163,251,193,114,163,251,193,116,163,251,193,118,163,251,193,120,163,251,193,122,163,251,193,124,163,251,193,126,163,251,193,128,163,251,193,130,163,251,193,132,163,251,193,134,163,251,193,172,163,251,193,174,163,251,193,176,163,251,193,178,163,251,193,180,163,251,193,182,163,251,193,184,163,251,193,186,163,251,193,188,163,251,193,190,163,251,193,236,163,251,193,238,163,251,193,240,163,251,193,242,163,251,193,244,163,251,193,246,163,251,193,248,163,251,193,250,163,251,193,10,164,251,193,12,164,251,193,14,164,251,193,16,164,251,193,18,164,251,193,20,164,251,193,22,164,251,193,24,164,251,193,26,164,251,193,28,164,251,193,30,164,251,193,32,164,251,193,54,164,251,193,56,164,251,193,192,163,251,193,194,163,251,193,34,164,251,193,118,164,251,193,188,164,251,193,204,164,251,193,226,164,251,193,98,165,251,193,200,165,251,193,48,166,251,193,68,166,251,193,172,166,251,193,226,166,251,193,132,167,251,193,134,167,251,193,254,167,251,193,2,168,251,193,96,168,251,193,98,168,251,193,100,168,251,193,200,168,251,193,202,168,251,193,24,169,251,193,26,169,251,193,28,169,251,193,142,169,251,193,170,169,251,193,192,169,251,193,194,169,251,193,38,170,251,193,142,170,251,193,128,171,251,193,212,163,251,193,214,163,251,193,252,163,251,193,254,163,251,193,38,164,251,193,72,164,251,193,74,164,251,193,76,164,251,193,100,164,251,193,102,164,251,193,122,164,251,193,124,164,251,193,142,164,251,193,242,164,251,193,244,164,251,193,2,165,251,193,20,165,251,193,36,165,251,193,38,165,251,193,170,165,251,193,14,166,251,193,16,166,251,193,28,166,251,193,30,166,251,193,32,166,251,193,50,166,251,193,52,166,251,193,54,166,251,193,118,166,251,193,120,166,251,193,182,166,251,193,230,166,251,193,224,163,251,193,226,163,251,193,228,163,251,193,2,164,251,193,4,164,251,193,6,164,251,193,42,164,251,193,44,164,251,193,46,164,251,193,48,164,251,193,80,164,251,193,82,164,251,193,104,164,251,193,126,164,251,193,194,164,251,193,198,164,251,193,210,164,251,193,212,164,251,193,214,164,251,193,216,164,251,193,230,164,251,193,232,164,251,193,246,164,251,193,10,165,251,193,24,165,251,193,40,165,251,193,42,165,251,193,74,165,251,193,76,165,251,193,86,165,251,193,88,165,251,193,100,165,251,193,230,163,251,193,232,163,251,193,234,163,251,193,8,164,251,193,50,164,251,193,52,164,251,193,178,164,251,193,234,164,251,193,78,165,251,193,130,165,251,193,146,165,251,193,154,165,251,193,156,165,251,193,158,165,251,193,214,165,251,193,238,165,251,193,240,165,251,193,22,166,251,193,36,166,251,193,56,166,251,193,94,166,251,193,106,166,251,193,140,166,251,193,142,166,251,193,202,166,251,193,204,166,251,193,14,167,251,193,16,167,251,193,18,167,251,193,20,167,251,193,22,167,251,193,24,167,251,193,58,164,251,193,60,164,251,193,62,164,251,193,64,164,251,193,66,164,251,193,84,164,251,193,86,164,251,193,88,164,251,193,90,164,251,193,92,164,251,193,94,164,251,193,250,171,252,193,106,164,251,193,108,164,251,193,110,164,251,193,112,164,251,193,114,164,251,193,116,164,251,193,128,164,251,193,130,164,251,193,132,164,251,193,134,164,251,193,136,164,251,193,138,164,251,193,144,164,251,193,146,164,251,193,148,164,251,193,150,164,251,193,152,164,251,193,154,164,251,193,156,164,251,193,160,164,251,193,78,164,251,193,176,164,251,193,192,164,251,193,22,165,251,193,50,165,251,193,52,165,251,193,152,165,251,193,172,165,251,193,182,165,251,193,204,165,251,193,206,165,251,193,254,165,251,193,122,166,251,193,246,166,251,193,150,167,251,193,152,167,251,193,26,168,251,193,28,168,251,193,30,168,251,193,32,168,251,193,124,168,251,193,126,168,251,193,212,168,251,193,40,169,251,193,150,169,251,193,202,169,251,193,12,170,251,193,46,170,251,193,48,170,251,193,160,170,251,193,162,170,251,193,164,170,251,193,120,164,251,193,140,164,251,193,174,164,251,193,190,164,251,193,240,164,251,193,32,165,251,193,34,165,251,193,70,165,251,193,72,165,251,193,202,165,251,193,70,166,251,193,100,166,251,193,116,166,251,193,174,166,251,193,176,166,251,193,178,166,251,193,180,166,251,193,228,166,251,193,58,167,251,193,60,167,251,193,136,167,251,193,138,167,251,193,4,168,251,193,6,168,251,193,8,168,251,193,102,168,251,193,104,168,251,193,106,168,251,193,108,168,251,193,110,168,251,193,204,168,251,193,206,168,251,193,88,93,252,193,90,93,252,193,92,93,252,193,94,93,252,193,96,93,252,193,98,93,252,193,116,93,252,193,118,93,252,193,120,93,252,193,122,93,252,193,124,93,252,193,126,93,252,193,134,93,252,193,136,93,252,193,138,93,252,193,140,93,252,193,142,93,252,193,144,93,252,193,160,93,252,193,162,93,252,193,164,93,252,193,176,93,252,193,180,93,252,193,182,93,252,193,184,93,252,193,186,93,252,193,188,93,252,193,194,93,252,193,196,93,252,193,158,164,251,193,198,93,252,193,200,93,252,193,162,164,251,193,164,164,251,193,166,164,251,193,168,164,251,193,170,164,251,193,172,164,251,193,180,164,251,193,182,164,251,193,184,164,251,193,186,164,251,193,196,164,251,193,200,164,251,193,202,164,251,193,206,164,251,193,208,164,251,193,218,164,251,193,220,164,251,193,222,164,251,193,224,164,251,193,228,164,251,193,236,164,251,193,238,164,251,193,122,94,252,193,248,164,251,193,250,164,251,193,252,164,251,193,254,164,251,193,4,165,251,193,6,165,251,193,8,165,251,193,12,165,251,193,14,165,251,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,193,68,165,251,193,220,37,252,193,222,37,252,193,224,37,252,193,226,37,252,193,228,37,252,193,230,37,252,193,118,165,251,193,122,165,251,193,140,165,251,193,142,165,251,193,144,165,251,193,174,165,251,193,176,165,251,193,184,165,251,193,186,165,251,193,208,165,251,193,192,252,252,193,210,165,251,193,212,165,251,193,236,165,251,193,2,166,251,193,18,166,251,193,20,166,251,193,34,166,251,193,78,166,251,193,88,166,251,193,102,166,251,193,104,166,251,193,124,166,251,193,126,166,251,193,128,166,251,193,130,166,251,193,132,166,251,193,134,166,251,206,0,23,0,206,0,23,0,206,0,23,0,206,0,23,0,193,124,165,251,193,126,165,251,193,128,165,251,193,132,165,251,193,134,165,251,193,136,165,251,193,138,165,251,193,148,165,251,193,150,165,251,193,160,165,251,193,162,165,251,193,164,165,251,193,166,165,251,193,168,165,251,193,178,165,251,193,188,165,251,193,190,165,251,193,192,165,251,193,194,165,251,193,196,165,251,193,216,165,251,193,218,165,251,193,220,165,251,193,222,165,251,193,224,165,251,193,226,165,251,193,228,165,251,193,230,165,251,193,232,165,251,193,234,165,251,193,242,165,251,193,244,165,251,193,246,165,251,193,248,165,251,193,250,165,251,193,252,165,251,193,4,166,251,193,6,166,251,193,8,166,251,193,10,166,251,193,12,166,251,193,24,166,251,193,26,166,251,193,38,166,251,193,40,166,251,193,42,166,251,193,44,166,251,193,46,166,251,193,58,166,251,193,60,166,251,193,62,166,251,193,64,166,251,193,66,166,251,193,72,166,251,193,76,166,251,193,74,166,251,193,80,166,251,193,82,166,251,193,84,166,251,193,86,166,251,193,90,166,251,193,92,166,251,193,96,166,251,193,98,166,251,193,108,166,251,193,110,166,251,193,112,166,251,193,114,166,251,193,144,166,251,193,146,166,251,193,148,166,251,193,150,166,251,193,152,166,251,193,154,166,251,193,156,166,251,193,158,166,251,193,160,166,251,193,162,166,251,193,164,166,251,193,166,166,251,193,168,166,251,193,170,166,251,193,206,166,251,193,208,166,251,193,210,166,251,193,212,166,251,193,214,166,251,193,216,166,251,193,218,166,251,193,220,166,251,193,222,166,251,193,224,166,251,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,0,23,0,206,0,23,0,206,0,23,0,206,0,23,0,206,0,23,0,193,248,166,251,193,250,166,251,193,252,166,251,193,254,166,251,193,2,167,251,193,4,167,251,193,6,167,251,193,8,167,251,193,10,167,251,193,68,167,251,193,70,167,251,193,72,167,251,193,74,167,251,193,76,167,251,193,78,167,251,193,12,167,251,193,80,167,251,193,154,167,251,193,156,167,251,193,158,167,251,193,160,167,251,193,34,168,251,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,193,232,166,251,193,234,166,251,193,236,166,251,193,238,166,251,193,240,166,251,193,242,166,251,193,244,166,251,193,62,167,251,193,64,167,251,193,66,167,251,193,140,167,251,193,142,167,251,193,144,167,251,193,146,167,251,193,148,167,251,193,10,168,251,193,12,168,251,193,14,168,251,193,16,168,251,193,18,168,251,193,20,168,251,193,22,168,251,193,24,168,251,193,112,168,251,193,114,168,251,193,116,168,251,193,118,168,251,193,120,168,251,193,122,168,251,193,210,168,251,193,34,169,251,193,36,169,251,193,26,167,251,193,28,167,251,193,82,167,251,193,84,167,251,193,182,167,251,193,184,167,251,193,186,167,251,193,188,167,251,193,190,167,251,193,192,167,251,193,50,168,251,193,52,168,251,193,54,168,251,193,56,168,251,193,58,168,251,193,138,168,251,193,220,168,251,193,222,168,251,193,224,168,251,193,56,169,251,193,58,169,251,193,110,169,251,193,112,169,251,193,156,169,251,193,206,169,251,193,222,169,251,193,8,170,251,193,22,170,251,193,86,170,251,193,88,170,251,193,90,170,251,193,92,170,251,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,193,86,167,251,193,88,167,251,193,90,167,251,193,92,167,251,193,94,167,251,193,96,167,251,193,98,167,251,193,100,167,251,193,102,167,251,193,104,167,251,193,106,167,251,193,108,167,251,193,110,167,251,193,112,167,251,193,114,167,251,193,116,167,251,193,118,167,251,193,120,167,251,193,122,167,251,193,124,167,251,193,126,167,251,193,128,167,251,193,130,167,251,193,194,167,251,193,196,167,251,193,198,167,251,193,200,167,251,193,202,167,251,193,204,167,251,193,206,167,251,193,208,167,251,193,210,167,251,193,212,167,251,193,214,167,251,193,216,167,251,193,218,167,251,193,220,167,251,193,222,167,251,193,224,167,251,193,226,167,251,193,228,167,251,193,230,167,251,193,232,167,251,193,234,167,251,193,236,167,251,193,238,167,251,193,240,167,251,193,242,167,251,193,244,167,251,193,246,167,251,193,248,167,251,193,250,167,251,193,252,167,251,193,60,168,251,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,193,36,168,251,193,38,168,251,193,40,168,251,193,42,168,251,193,44,168,251,193,46,168,251,193,48,168,251,193,128,168,251,193,130,168,251,193,132,168,251,193,134,168,251,193,136,168,251,193,214,168,251,193,42,169,251,193,216,168,251,193,218,168,251,193,44,169,251,193,46,169,251,193,48,169,251,193,50,169,251,193,52,169,251,193,54,169,251,193,106,169,251,193,108,169,251,193,152,169,251,193,154,169,251,193,204,169,251,193,62,168,251,193,64,168,251,193,66,168,251,193,68,168,251,193,70,168,251,193,72,168,251,193,74,168,251,193,76,168,251,193,78,168,251,193,80,168,251,193,82,168,251,193,84,168,251,193,186,15,253,193,86,168,251,193,88,168,251,193,90,168,251,193,92,168,251,193,94,168,251,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,193,198,168,251,193,20,169,251,193,22,169,251,193,60,169,251,193,62,169,251,193,64,169,251,193,66,169,251,193,68,169,251,193,70,169,251,193,72,169,251,193,74,169,251,193,76,169,251,193,78,169,251,193,80,169,251,193,82,169,251,193,84,169,251,193,86,169,251,193,88,169,251,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,193,208,168,251,193,30,169,251,193,32,169,251,193,90,169,251,193,92,169,251,193,94,169,251,193,172,169,251,193,196,169,251,193,198,169,251,193,240,169,251,193,246,169,251,193,40,170,251,193,42,170,251,193,44,170,251,193,144,170,251,193,146,170,251,193,148,170,251,193,150,170,251,193,144,171,251,193,146,171,251,193,148,171,251,193,150,171,251,193,152,171,251,193,154,171,251,193,156,171,251,193,158,171,251,193,206,172,251,193,208,172,251,193,210,172,251,193,212,172,251,193,214,172,251,193,216,172,251,193,38,169,251,193,96,169,251,193,98,169,251,193,100,169,251,193,102,169,251,193,104,169,251,193,144,169,251,193,146,169,251,193,148,169,251,193,200,169,251,193,216,169,251,193,152,170,251,193,154,170,251,193,156,170,251,193,158,170,251,193,160,171,251,193,162,171,251,193,164,171,251,193,166,171,251,193,168,171,251,193,170,171,251,193,172,171,251,193,174,171,251,193,176,171,251,193,178,171,251,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,193,14,16,253,193,138,169,251,193,140,169,251,193,158,169,251,193,160,169,251,193,162,169,251,193,18,16,253,193,164,169,251,193,166,169,251,193,168,169,251,193,174,169,251,193,176,169,251,193,178,169,251,193,180,169,251,193,182,169,251,193,184,169,251,193,186,169,251,193,188,169,251,193,190,169,251,193,208,169,251,193,210,169,251,193,212,169,251,193,176,215,253,193,214,169,251,193,224,169,251,193,226,169,251,193,228,169,251,193,218,169,251,193,220,169,251,193,234,169,251,193,252,169,251,193,254,169,251,193,4,170,251,193,6,170,251,193,14,170,251,193,16,170,251,193,18,170,251,193,20,170,251,193,50,170,251,193,52,170,251,193,54,170,251,193,56,170,251,193,58,170,251,193,60,170,251,193,62,170,251,193,64,170,251,193,66,170,251,193,68,170,251,193,70,170,251,193,72,170,251,193,74,170,251,193,76,170,251,193,78,170,251,193,80,170,251,193,82,170,251,193,84,170,251,193,168,170,251,193,170,170,251,193,172,170,251,193,230,169,251,193,40,16,253,193,232,169,251,193,236,169,251,193,238,169,251,193,242,169,251,193,244,169,251,193,248,169,251,193,250,169,251,193,2,170,251,193,10,170,251,193,24,170,251,193,26,170,251,193,28,170,251,193,30,170,251,193,32,170,251,193,34,170,251,193,36,170,251,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,193,94,170,251,193,252,170,251,193,254,170,251,193,2,171,251,193,4,171,251,193,6,171,251,193,8,171,251,193,10,171,251,193,12,171,251,193,14,171,251,193,16,171,251,193,18,171,251,193,58,172,251,193,60,172,251,193,62,172,251,193,64,172,251,193,66,172,251,193,68,172,251,193,70,172,251,193,72,172,251,193,74,172,251,193,76,172,251,193,78,172,251,193,80,172,251,193,82,172,251,193,84,172,251,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,193,166,170,251,193,180,171,251,193,182,171,251,193,184,171,251,193,186,171,251,193,188,171,251,193,190,171,251,193,192,171,251,193,194,171,251,193,196,171,251,193,248,172,251,193,250,172,251,193,252,172,251,193,254,172,251,193,2,173,251,193,4,173,251,193,6,173,251,193,8,173,251,193,10,173,251,193,12,173,251,193,116,174,251,193,118,174,251,193,120,174,251,193,122,174,251,193,124,174,251,193,126,174,251,193,128,174,251,193,130,174,251,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,193,174,170,251,193,176,170,251,193,178,170,251,193,180,170,251,193,182,170,251,193,184,170,251,193,186,170,251,193,188,170,251,193,190,170,251,193,192,170,251,193,194,170,251,193,196,170,251,193,198,170,251,193,200,170,251,193,202,170,251,193,204,170,251,193,206,170,251,193,208,170,251,193,210,170,251,193,212,170,251,193,214,170,251,193,216,170,251,193,218,170,251,193,220,170,251,193,222,170,251,193,224,170,251,193,226,170,251,193,228,170,251,193,230,170,251,193,232,170,251,193,234,170,251,193,236,170,251,193,238,170,251,193,240,170,251,193,242,170,251,193,244,170,251,193,246,170,251,193,248,170,251,193,250,170,251,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,193,86,172,251,193,130,171,251,193,132,171,251,193,134,171,251,193,136,171,251,193,138,171,251,193,140,171,251,193,192,172,251,193,194,172,251,193,196,172,251,193,198,172,251,193,200,172,251,193,202,172,251,193,204,172,251,193,48,174,251,193,50,174,251,193,52,174,251,193,54,174,251,193,56,174,251,193,58,174,251,193,60,174,251,193,62,174,251,193,166,175,251,193,168,175,251,193,170,175,251,193,172,175,251,193,174,175,251,193,176,175,251,193,178,175,251,193,180,175,251,193,182,175,251,193,184,175,251,193,156,177,251,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,193,88,172,251,193,90,172,251,193,92,172,251,193,94,172,251,193,96,172,251,193,98,172,251,193,100,172,251,193,102,172,251,193,104,172,251,193,106,172,251,193,108,172,251,193,110,172,251,193,112,172,251,193,114,172,251,193,116,172,251,193,118,172,251,193,120,172,251,193,122,172,251,193,124,172,251,193,126,172,251,193,128,172,251,193,130,172,251,193,132,172,251,193,134,172,251,193,136,172,251,193,138,172,251,193,140,172,251,193,142,172,251,193,144,172,251,193,146,172,251,193,148,172,251,193,150,172,251,193,152,172,251,193,154,172,251,193,156,172,251,193,158,172,251,193,160,172,251,193,162,172,251,193,164,172,251,193,166,172,251,193,168,172,251,193,170,172,251,193,172,172,251,193,174,172,251,193,176,172,251,193,178,172,251,193,180,172,251,193,182,172,251,193,184,172,251,193,186,172,251,193,188,172,251,193,190,172,251,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,193,88,174,251,193,90,174,251,193,92,174,251,193,94,174,251,193,96,174,251,193,98,174,251,193,100,174,251,193,102,174,251,193,104,174,251,193,106,174,251,193,108,174,251,193,110,174,251,193,112,174,251,193,114,174,251,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,193,132,174,251,193,134,174,251,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,193,232,174,251,193,234,174,251,193,236,174,251,193,238,174,251,193,240,174,251,193,242,174,251,193,244,174,251,193,246,174,251,193,248,174,251,193,250,174,251,193,252,174,251,193,254,174,251,193,178,173,251,193,2,175,251,193,4,175,251,193,6,175,251,193,146,176,251,193,148,176,251,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,193,64,174,251,193,66,174,251,193,68,174,251,193,70,174,251,193,72,174,251,193,74,174,251,193,76,174,251,193,78,174,251,193,80,174,251,193,82,174,251,193,84,174,251,193,86,174,251,193,186,175,251,193,188,175,251,193,190,175,251,193,192,175,251,193,194,175,251,193,196,175,251,193,198,175,251,193,200,175,251,193,202,175,251,193,204,175,251,193,172,177,251,193,174,177,251,193,176,177,251,193,178,177,251,193,180,177,251,193,182,177,251,193,184,177,251,193,186,177,251,193,188,177,251,193,190,177,251,193,136,174,251,193,138,174,251,193,140,174,251,193,142,174,251,193,144,174,251,193,146,174,251,193,148,174,251,193,150,174,251,193,152,174,251,193,154,174,251,193,156,174,251,193,158,174,251,193,160,174,251,193,162,174,251,193,164,174,251,193,166,174,251,193,168,174,251,193,170,174,251,193,172,174,251,193,174,174,251,193,176,174,251,193,178,174,251,193,180,174,251,193,182,174,251,193,184,174,251,193,186,174,251,193,188,174,251,193,190,174,251,193,192,174,251,193,194,174,251,193,196,174,251,193,198,174,251,193,200,174,251,193,202,174,251,193,204,174,251,193,206,174,251,193,208,174,251,193,210,174,251,193,212,174,251,193,214,174,251,193,216,174,251,193,218,174,251,193,220,174,251,193,222,174,251,193,224,174,251,193,226,174,251,193,228,174,251,193,230,174,251,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,193,192,177,251,193,194,177,251,193,196,177,251,193,198,177,251,193,200,177,251,193,202,177,251,193,204,177,251,193,206,177,251,193,208,177,251,193,210,177,251,193,212,177,251,193,214,177,251,193,216,177,251,193,218,177,251,193,220,177,251,193,222,177,251,193,224,177,251,193,226,177,251,193,228,177,251,193,230,177,251,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,193,234,177,251,193,236,177,251,193,238,177,251,193,240,177,251,193,242,177,251,193,244,177,251,193,246,177,251,193,248,177,251,193,250,177,251,193,190,179,251,193,192,179,251,193,194,179,251,193,196,179,251,193,198,179,251,193,200,179,251,193,202,179,251,193,204,179,251,193,206,179,251,193,208,179,251,193,210,179,251,193,212,179,251,206,0,26,0,206,0,26,0,206,0,26,0,206,0,26,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,193,150,176,251,193,152,176,251,193,154,176,251,193,156,176,251,193,158,176,251,193,160,176,251,193,162,176,251,193,164,176,251,193,166,176,251,193,168,176,251,193,170,176,251,193,172,176,251,193,174,176,251,193,176,176,251,193,178,176,251,193,180,176,251,193,182,176,251,193,184,176,251,193,186,176,251,193,188,176,251,193,190,176,251,193,192,176,251,193,194,176,251,193,196,176,251,193,198,176,251,193,200,176,251,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,193,158,177,251,193,160,177,251,193,162,177,251,193,164,177,251,193,166,177,251,193,168,177,251,193,170,177,251,193,94,179,251,193,96,179,251,193,98,179,251,193,100,179,251,193,102,179,251,193,104,179,251,193,106,179,251,193,108,179,251,193,110,179,251,193,112,179,251,193,114,179,251,193,116,179,251,193,244,180,251,193,246,180,251,193,248,180,251,193,250,180,251,193,252,180,251,193,254,180,251,193,2,181,251,193,4,181,251,193,6,181,251,193,8,181,251,193,10,181,251,193,12,181,251,193,140,182,251,193,232,177,251,193,146,179,251,193,148,179,251,193,150,179,251,193,152,179,251,193,154,179,251,193,156,179,251,193,158,179,251,193,160,179,251,193,162,179,251,193,164,179,251,193,166,179,251,193,168,179,251,193,170,179,251,193,172,179,251,193,174,179,251,193,176,179,251,193,178,179,251,193,180,179,251,193,182,179,251,193,184,179,251,193,186,179,251,193,188,179,251,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,193,108,178,251,193,140,181,251,193,142,181,251,193,144,181,251,193,146,181,251,193,242,182,251,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,193,46,180,251,193,48,180,251,193,50,180,251,193,52,180,251,193,54,180,251,193,56,180,251,193,58,180,251,193,60,180,251,193,62,180,251,193,64,180,251,193,66,180,251,193,68,180,251,193,70,180,251,193,72,180,251,193,74,180,251,193,76,180,251,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,193,118,179,251,193,120,179,251,193,122,179,251,193,124,179,251,193,126,179,251,193,128,179,251,193,130,179,251,193,132,179,251,193,134,179,251,193,136,179,251,193,138,179,251,193,140,179,251,193,142,179,251,193,144,179,251,193,14,181,251,193,16,181,251,193,18,181,251,193,20,181,251,193,22,181,251,193,24,181,251,193,26,181,251,193,28,181,251,193,30,181,251,193,32,181,251,193,158,182,251,193,160,182,251,193,162,182,251,193,164,182,251,193,166,182,251,193,168,182,251,193,170,182,251,193,172,182,251,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,0,26,0,206,0,26,0,206,0,26,0,206,0,26,0,206,0,26,0,193,230,182,251,193,232,182,251,193,234,182,251,193,236,182,251,193,238,182,251,193,240,182,251,193,110,184,251,193,112,184,251,193,114,184,251,193,116,184,251,193,118,184,251,193,120,184,251,193,122,184,251,193,124,184,251,193,126,184,251,193,118,185,251,193,120,185,251,193,122,185,251,193,44,186,251,193,46,186,251,193,48,186,251,193,50,186,251,193,214,186,251,193,216,186,251,193,218,186,251,193,220,186,251,193,84,187,251,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,193,76,183,251,193,78,183,251,193,80,183,251,193,82,183,251,193,84,183,251,193,86,183,251,193,88,183,251,193,90,183,251,193,92,183,251,193,94,183,251,193,96,183,251,193,98,183,251,193,100,183,251,193,102,183,251,193,192,184,251,193,194,184,251,193,196,184,251,193,166,185,251,193,168,185,251,193,170,185,251,193,172,185,251,193,174,185,251,193,176,185,251,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,193,232,196,252,193,194,196,252,193,234,196,252,193,236,196,252,193,238,196,252,193,240,196,252,193,242,196,252,193,244,196,252,193,246,196,252,193,248,196,252,193,250,196,252,193,252,196,252,193,138,182,251,193,254,196,252,193,2,197,252,193,4,197,252,193,6,197,252,193,8,197,252,193,10,197,252,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,193,142,182,251,193,144,182,251,193,146,182,251,193,148,182,251,193,150,182,251,193,152,182,251,193,154,182,251,193,156,182,251,193,44,184,251,193,46,184,251,193,48,184,251,193,50,184,251,193,52,184,251,193,54,184,251,193,66,185,251,193,68,185,251,193,70,185,251,193,72,185,251,193,74,185,251,193,76,185,251,193,78,185,251,193,80,185,251,193,82,185,251,193,16,186,251,193,18,186,251,193,20,186,251,193,168,186,251,193,170,186,251,193,172,186,251,193,174,186,251,193,176,186,251,193,60,187,251,193,174,182,251,193,176,182,251,193,178,182,251,193,56,184,251,193,58,184,251,193,60,184,251,193,62,184,251,193,64,184,251,193,66,184,251,193,68,184,251,193,84,185,251,193,86,185,251,193,88,185,251,193,90,185,251,193,92,185,251,193,94,185,251,193,22,186,251,193,24,186,251,193,26,186,251,193,178,186,251,193,180,186,251,193,182,186,251,193,184,186,251,193,186,186,251,193,188,186,251,193,190,186,251,193,64,187,251,193,66,187,251,193,68,187,251,193,128,187,251,193,130,187,251,193,132,187,251,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,193,70,184,251,193,72,184,251,193,74,184,251,193,76,184,251,193,78,184,251,193,80,184,251,193,82,184,251,193,84,184,251,193,86,184,251,193,88,184,251,193,90,184,251,193,92,184,251,193,94,184,251,193,96,184,251,193,98,184,251,193,100,184,251,193,102,184,251,193,104,184,251,193,106,184,251,193,108,184,251,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,193,128,184,251,193,130,184,251,193,132,184,251,193,134,184,251,193,136,184,251,193,138,184,251,193,140,184,251,193,124,185,251,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,193,118,213,252,193,120,213,252,193,122,213,252,193,124,213,252,193,8,213,252,193,126,213,252,193,128,213,252,193,130,213,252,193,132,213,252,193,134,213,252,193,136,213,252,193,138,213,252,193,140,213,252,193,142,213,252,193,250,213,252,193,144,213,252,193,146,213,252,193,148,213,252,193,150,213,252,193,152,213,252,193,154,213,252,193,156,213,252,193,30,235,251,193,64,185,251,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,193,28,186,251,193,30,186,251,193,32,186,251,193,34,186,251,193,36,186,251,193,38,186,251,193,40,186,251,193,42,186,251,193,192,186,251,193,194,186,251,193,196,186,251,193,198,186,251,193,200,186,251,193,202,186,251,193,204,186,251,193,206,186,251,193,208,186,251,193,210,186,251,193,212,186,251,193,70,187,251,193,72,187,251,193,74,187,251,193,76,187,251,193,78,187,251,193,80,187,251,193,82,187,251,193,138,187,251,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,193,52,186,251,193,54,186,251,193,56,186,251,193,58,186,251,193,60,186,251,193,62,186,251,193,64,186,251,193,66,186,251,193,68,186,251,193,70,186,251,193,72,186,251,193,74,186,251,193,222,186,251,193,224,186,251,193,226,186,251,193,228,186,251,193,88,187,251,193,90,187,251,193,92,187,251,193,152,187,251,193,154,187,251,193,156,187,251,193,158,187,251,193,178,185,251,193,76,186,251,193,78,186,251,193,230,186,251,193,232,186,251,193,234,186,251,193,236,186,251,193,238,186,251,193,94,187,251,193,96,187,251,193,98,187,251,193,212,187,251,193,214,187,251,193,58,188,251,193,122,188,251,193,124,188,251,193,154,188,251,193,156,188,251,193,158,188,251,193,200,188,251,193,254,188,251,193,2,189,251,193,4,189,251,193,46,189,251,193,92,189,251,193,152,189,251,193,208,189,251,193,6,190,251,193,8,190,251,193,118,190,251,193,190,190,251,193,212,190,251,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,193,166,186,251,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,193,100,187,251,193,102,187,251,193,104,187,251,193,106,187,251,193,108,187,251,193,110,187,251,193,112,187,251,193,114,187,251,193,116,187,251,193,118,187,251,193,120,187,251,193,122,187,251,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,193,62,187,251,193,124,187,251,193,126,187,251,193,188,187,251,193,190,187,251,193,236,187,251,193,238,187,251,193,16,188,251,193,44,188,251,193,88,188,251,193,110,188,251,193,236,188,251,193,238,188,251,193,22,189,251,193,24,189,251,193,66,189,251,193,68,189,251,193,118,189,251,193,182,189,251,193,242,189,251,193,92,190,251,193,94,190,251,193,96,190,251,193,160,190,251,193,22,191,251,193,72,191,251,193,126,191,251,193,146,191,251,193,60,192,251,193,52,193,251,193,54,193,251,193,56,193,251,193,86,187,251,193,146,187,251,193,148,187,251,193,150,187,251,193,194,188,251,193,196,188,251,193,246,188,251,193,248,188,251,193,250,188,251,193,36,189,251,193,84,189,251,193,138,189,251,193,190,189,251,193,192,189,251,193,194,189,251,193,250,189,251,193,64,190,251,193,66,190,251,193,110,190,251,193,112,190,251,193,102,191,251,193,130,191,251,193,136,191,251,193,210,191,251,193,212,191,251,193,214,191,251,193,216,191,251,193,218,191,251,193,72,192,251,193,74,192,251,193,86,193,251,193,88,193,251,193,134,187,251,193,136,187,251,193,192,187,251,193,194,187,251,193,196,187,251,193,66,188,251,193,112,188,251,193,114,188,251,193,142,188,251,193,184,188,251,193,186,188,251,193,240,188,251,193,242,188,251,193,26,189,251,193,28,189,251,193,30,189,251,193,32,189,251,193,34,189,251,193,70,189,251,193,72,189,251,193,74,189,251,193,76,189,251,193,78,189,251,193,120,189,251,193,122,189,251,193,124,189,251,193,126,189,251,193,128,189,251,193,130,189,251,193,132,189,251,193,134,189,251,193,184,189,251,193,140,187,251,193,142,187,251,193,144,187,251,193,198,187,251,193,200,187,251,193,202,187,251,193,204,187,251,193,240,187,251,193,38,188,251,193,40,188,251,193,42,188,251,193,46,188,251,193,48,188,251,193,54,188,251,193,90,188,251,193,144,188,251,193,188,188,251,193,190,188,251,193,192,188,251,193,244,188,251,193,80,189,251,193,82,189,251,193,136,189,251,193,188,189,251,193,246,189,251,193,248,189,251,193,58,190,251,193,60,190,251,193,62,190,251,193,108,190,251,193,130,190,251,193,174,190,251,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,193,216,187,251,193,218,187,251,193,220,187,251,193,222,187,251,193,224,187,251,193,226,187,251,193,228,187,251,193,230,187,251,193,232,187,251,193,234,187,251,193,246,187,251,193,248,187,251,193,250,187,251,193,252,187,251,193,254,187,251,193,2,188,251,193,4,188,251,193,6,188,251,193,8,188,251,193,10,188,251,193,12,188,251,193,14,188,251,193,22,188,251,193,24,188,251,193,26,188,251,193,28,188,251,193,30,188,251,193,206,187,251,193,208,187,251,193,210,187,251,193,242,187,251,193,244,187,251,193,18,188,251,193,20,188,251,193,56,188,251,193,76,188,251,193,78,188,251,193,80,188,251,193,82,188,251,193,92,188,251,193,94,188,251,193,96,188,251,193,98,188,251,193,100,188,251,193,116,188,251,193,118,188,251,193,120,188,251,193,146,188,251,193,148,188,251,193,150,188,251,193,152,188,251,193,198,188,251,193,252,188,251,193,38,189,251,193,40,189,251,193,42,189,251,193,44,189,251,193,86,189,251,193,88,189,251,193,32,188,251,193,34,188,251,193,36,188,251,193,50,188,251,193,52,188,251,193,60,188,251,193,62,188,251,193,64,188,251,193,68,188,251,193,70,188,251,193,72,188,251,193,74,188,251,193,84,188,251,193,86,188,251,193,102,188,251,193,104,188,251,193,106,188,251,193,108,188,251,193,126,188,251,193,128,188,251,193,130,188,251,193,132,188,251,193,134,188,251,193,136,188,251,193,138,188,251,193,140,188,251,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,193,202,188,251,193,204,188,251,193,206,188,251,193,208,188,251,193,210,188,251,193,212,188,251,193,214,188,251,193,216,188,251,193,218,188,251,193,220,188,251,193,222,188,251,193,224,188,251,193,226,188,251,193,228,188,251,193,230,188,251,193,232,188,251,193,234,188,251,193,6,189,251,193,8,189,251,193,10,189,251,193,12,189,251,193,14,189,251,193,16,189,251,193,18,189,251,193,20,189,251,193,48,189,251,193,50,189,251,193,52,189,251,193,54,189,251,193,56,189,251,193,58,189,251,193,60,189,251,193,62,189,251,193,64,189,251,193,94,189,251,193,96,189,251,193,98,189,251,193,100,189,251,193,102,189,251,193,104,189,251,193,106,189,251,193,108,189,251,193,110,189,251,193,112,189,251,193,114,189,251,193,116,189,251,193,154,189,251,193,156,189,251,193,158,189,251,193,160,189,251,193,162,189,251,193,164,189,251,193,166,189,251,193,168,189,251,193,170,189,251,193,172,189,251,193,174,189,251,193,176,189,251,193,140,189,251,193,142,189,251,193,144,189,251,193,146,189,251,193,148,189,251,193,150,189,251,193,90,189,251,193,196,189,251,193,198,189,251,193,200,189,251,193,202,189,251,193,204,189,251,193,206,189,251,193,252,189,251,193,254,189,251,193,2,190,251,193,68,190,251,193,4,190,251,193,114,190,251,193,132,190,251,193,116,190,251,193,158,190,251,193,162,190,251,193,164,190,251,193,166,190,251,193,168,190,251,193,184,190,251,193,186,190,251,193,188,190,251,193,204,190,251,193,206,190,251,193,208,190,251,193,178,189,251,193,180,189,251,193,212,189,251,193,214,189,251,193,216,189,251,193,218,189,251,193,220,189,251,193,222,189,251,193,10,190,251,193,224,189,251,193,226,189,251,193,228,189,251,193,230,189,251,193,232,189,251,193,234,189,251,193,236,189,251,193,238,189,251,193,240,189,251,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,193,186,189,251,193,244,189,251,193,54,190,251,193,56,190,251,193,98,190,251,193,100,190,251,193,102,190,251,193,104,190,251,193,106,190,251,193,230,190,251,193,24,191,251,193,58,191,251,193,60,191,251,193,74,191,251,193,76,191,251,193,92,191,251,193,94,191,251,193,110,191,251,193,154,191,251,193,174,191,251,193,206,191,251,193,62,192,251,193,64,192,251,193,66,192,251,193,66,193,251,193,68,193,251,193,70,193,251,193,72,193,251,193,140,194,251,193,142,194,251,193,144,194,251,193,146,194,251,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,193,170,190,251,193,172,190,251,193,176,190,251,193,178,190,251,193,180,190,251,193,182,190,251,193,192,190,251,193,194,190,251,193,196,190,251,193,198,190,251,193,200,190,251,193,216,190,251,193,218,190,251,193,220,190,251,193,222,190,251,193,224,190,251,193,226,190,251,193,228,190,251,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,193,202,190,251,193,232,190,251,193,234,190,251,193,26,191,251,193,28,191,251,193,30,191,251,193,32,191,251,193,96,191,251,193,98,191,251,193,100,191,251,193,128,191,251,193,134,191,251,193,152,191,251,193,164,191,251,193,208,191,251,193,68,192,251,193,70,192,251,193,74,193,251,193,76,193,251,193,78,193,251,193,80,193,251,193,82,193,251,193,84,193,251,193,152,194,251,193,154,194,251,193,156,194,251,193,158,194,251,193,160,194,251,193,162,194,251,193,164,194,251,193,166,194,251,193,168,194,251,193,210,190,251,193,236,190,251,193,238,190,251,193,240,190,251,193,34,191,251,193,36,191,251,193,38,191,251,193,40,191,251,193,62,191,251,193,78,191,251,193,80,191,251,193,156,191,251,193,158,191,251,193,160,191,251,193,166,191,251,193,220,191,251,193,176,191,251,193,178,191,251,193,180,191,251,193,182,191,251,193,184,191,251,193,186,191,251,193,188,191,251,193,222,191,251,193,224,191,251,193,226,191,251,193,228,191,251,193,230,191,251,193,232,191,251,193,234,191,251,193,236,191,251,193,76,192,251,193,214,190,251,193,242,190,251,193,244,190,251,193,190,191,251,193,192,191,251,193,194,191,251,193,10,192,251,193,12,192,251,193,14,192,251,193,190,192,251,193,192,192,251,193,194,192,251,193,196,192,251,193,198,192,251,193,200,192,251,193,202,192,251,193,204,192,251,193,206,192,251,193,252,193,251,193,254,193,251,193,2,194,251,193,4,194,251,193,6,194,251,193,8,194,251,193,10,194,251,193,12,194,251,193,14,194,251,193,16,194,251,193,18,194,251,193,20,194,251,193,22,194,251,193,24,194,251,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,193,42,191,251,193,44,191,251,193,46,191,251,193,48,191,251,193,50,191,251,193,52,191,251,193,54,191,251,193,56,191,251,193,64,191,251,193,66,191,251,193,68,191,251,193,70,191,251,193,82,191,251,193,84,191,251,193,86,191,251,193,88,191,251,193,90,191,251,193,104,191,251,193,106,191,251,193,112,191,251,193,114,191,251,193,116,191,251,193,118,191,251,193,120,191,251,193,122,191,251,193,124,191,251,193,132,191,251,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,193,108,191,251,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,193,138,191,251,193,140,191,251,193,144,191,251,193,148,191,251,193,150,191,251,193,168,191,251,193,170,191,251,193,172,191,251,193,196,191,251,193,198,191,251,193,200,191,251,193,202,191,251,193,204,191,251,193,16,192,251,193,18,192,251,193,20,192,251,193,22,192,251,193,24,192,251,193,26,192,251,193,28,192,251,193,30,192,251,193,32,192,251,193,34,192,251,193,36,192,251,193,38,192,251,193,40,192,251,193,42,192,251,193,44,192,251,193,46,192,251,193,48,192,251,193,50,192,251,193,52,192,251,193,36,78,253,193,38,78,253,193,40,78,253,193,42,78,253,193,44,78,253,193,46,78,253,193,48,78,253,193,50,78,253,193,56,78,253,193,58,78,253,193,60,78,253,193,62,78,253,193,64,78,253,193,66,78,253,193,68,78,253,193,70,78,253,193,74,78,253,193,76,78,253,193,78,78,253,193,142,191,251,193,204,97,252,193,86,78,253,193,88,78,253,193,90,78,253,193,92,78,253,193,94,78,253,193,102,78,253,193,104,78,253,193,106,78,253,193,112,78,253,193,116,78,253,193,118,78,253,193,238,191,251,193,240,191,251,193,242,191,251,193,244,191,251,193,246,191,251,193,248,191,251,193,250,191,251,193,252,191,251,193,254,191,251,193,2,192,251,193,4,192,251,193,6,192,251,193,8,192,251,193,78,192,251,193,80,192,251,193,82,192,251,193,84,192,251,193,86,192,251,193,88,192,251,193,90,192,251,193,92,192,251,193,94,192,251,193,96,192,251,193,98,192,251,193,114,193,251,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,193,54,192,251,193,56,192,251,193,58,192,251,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,193,58,193,251,193,60,193,251,193,62,193,251,193,64,193,251,193,124,194,251,193,126,194,251,193,128,194,251,193,130,194,251,193,132,194,251,193,134,194,251,193,136,194,251,193,250,195,251,193,252,195,251,193,254,195,251,193,2,196,251,193,4,196,251,193,6,196,251,193,8,196,251,193,10,196,251,193,12,196,251,193,166,197,251,193,168,197,251,193,170,197,251,193,172,197,251,193,174,197,251,193,176,197,251,193,178,197,251,193,180,197,251,193,182,197,251,193,184,197,251,193,186,197,251,193,188,197,251,193,90,193,251,193,92,193,251,193,94,193,251,193,96,193,251,193,98,193,251,193,100,193,251,193,102,193,251,193,104,193,251,193,106,193,251,193,108,193,251,193,110,193,251,193,112,193,251,193,174,194,251,193,176,194,251,193,178,194,251,193,180,194,251,193,182,194,251,193,184,194,251,193,186,194,251,193,188,194,251,193,190,194,251,193,192,194,251,193,194,194,251,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,193,26,194,251,193,66,195,251,193,68,195,251,193,70,195,251,193,72,195,251,193,74,195,251,193,76,195,251,193,78,195,251,193,80,195,251,193,82,195,251,193,84,195,251,193,86,195,251,193,88,195,251,193,90,195,251,193,92,195,251,193,94,195,251,193,96,195,251,193,98,195,251,193,242,196,251,193,244,196,251,193,246,196,251,193,248,196,251,193,250,196,251,193,252,196,251,193,254,196,251,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,193,148,194,251,193,150,194,251,193,16,196,251,193,18,196,251,193,20,196,251,193,22,196,251,193,24,196,251,193,26,196,251,193,28,196,251,193,30,196,251,193,32,196,251,193,34,196,251,193,36,196,251,193,38,196,251,193,40,196,251,193,42,196,251,193,44,196,251,193,192,197,251,193,194,197,251,193,196,197,251,193,198,197,251,193,200,197,251,193,202,197,251,193,204,197,251,193,206,197,251,193,208,197,251,193,210,197,251,193,212,197,251,193,214,197,251,193,216,197,251,193,218,197,251,193,220,197,251,193,170,194,251,193,172,194,251,193,46,196,251,193,48,196,251,193,50,196,251,193,52,196,251,193,54,196,251,193,56,196,251,193,58,196,251,193,60,196,251,193,62,196,251,193,64,196,251,193,66,196,251,193,68,196,251,193,70,196,251,193,72,196,251,193,74,196,251,193,76,196,251,193,78,196,251,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,193,14,198,251,193,16,198,251,193,18,198,251,193,20,198,251,193,22,198,251,193,24,198,251,193,26,198,251,193,28,198,251,193,30,198,251,193,32,198,251,193,34,198,251,193,36,198,251,193,38,198,251,193,40,198,251,193,42,198,251,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,193,190,197,251,193,206,199,251,193,208,199,251,193,210,199,251,193,212,199,251,193,214,199,251,193,216,199,251,193,218,199,251,193,220,199,251,193,222,199,251,193,224,199,251,193,226,199,251,193,238,201,251,193,240,201,251,193,242,201,251,193,244,201,251,193,246,201,251,193,248,201,251,193,250,201,251,193,252,201,251,193,254,201,251,193,2,202,251,193,4,202,251,193,202,203,251,193,204,203,251,193,206,203,251,193,208,203,251,193,210,203,251,193,212,203,251,193,214,203,251,193,216,203,251,193,218,203,251,193,222,197,251,193,228,199,251,193,230,199,251,193,232,199,251,193,234,199,251,193,236,199,251,193,238,199,251,193,240,199,251,193,242,199,251,193,244,199,251,193,246,199,251,193,248,199,251,193,250,199,251,193,252,199,251,193,254,199,251,193,2,200,251,193,4,200,251,193,6,200,251,193,8,200,251,193,10,200,251,193,12,200,251,193,14,200,251,193,16,200,251,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,193,18,200,251,193,20,200,251,193,22,200,251,193,24,200,251,193,26,200,251,193,28,200,251,193,30,200,251,193,32,200,251,193,34,200,251,193,36,200,251,193,38,200,251,193,40,200,251,193,42,200,251,193,44,200,251,193,46,200,251,193,48,200,251,193,50,200,251,193,52,200,251,193,54,200,251,193,56,200,251,193,58,200,251,193,44,202,251,193,46,202,251,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,193,82,200,251,193,198,198,251,193,200,198,251,193,202,198,251,193,204,198,251,193,206,198,251,193,208,198,251,193,210,198,251,193,212,198,251,193,214,198,251,193,216,198,251,193,218,198,251,193,84,200,251,193,86,200,251,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,193,228,200,251,193,230,200,251,193,232,200,251,193,234,200,251,193,236,200,251,193,238,200,251,193,240,200,251,193,242,200,251,193,244,200,251,193,246,200,251,193,248,200,251,193,250,200,251,193,252,200,251,193,246,202,251,193,254,200,251,193,2,201,251,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,193,84,202,251,193,86,202,251,193,88,202,251,193,90,202,251,193,92,202,251,193,94,202,251,193,96,202,251,193,98,202,251,193,100,202,251,193,102,202,251,193,104,202,251,193,106,202,251,193,108,202,251,193,44,204,251,193,46,204,251,193,48,204,251,193,50,204,251,193,52,204,251,193,54,204,251,193,56,204,251,193,58,204,251,193,60,204,251,193,62,204,251,193,64,204,251,193,66,204,251,193,68,204,251,193,10,206,251,193,88,200,251,193,90,200,251,193,92,200,251,193,94,200,251,193,96,200,251,193,70,204,251,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,193,72,204,251,193,74,204,251,193,76,204,251,193,78,204,251,193,80,204,251,193,82,204,251,193,84,204,251,193,226,200,251,193,86,204,251,193,88,204,251,193,90,204,251,193,26,206,251,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,193,148,117,252,193,176,201,251,193,178,201,251,193,180,201,251,193,182,201,251,193,184,201,251,193,186,201,251,193,188,201,251,193,190,201,251,193,192,201,251,193,194,201,251,193,196,201,251,193,198,201,251,193,200,201,251,193,202,201,251,193,204,201,251,193,206,201,251,193,208,201,251,193,210,201,251,193,212,201,251,193,214,201,251,193,216,201,251,193,218,201,251,193,220,201,251,193,222,201,251,193,224,201,251,193,226,201,251,193,228,201,251,193,230,201,251,193,232,201,251,193,234,201,251,193,236,201,251,206,0,31,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,193,228,203,251,193,230,203,251,193,232,203,251,193,234,203,251,193,236,203,251,193,238,203,251,193,240,203,251,193,242,203,251,193,244,203,251,193,246,203,251,193,248,203,251,193,250,203,251,193,252,203,251,193,254,203,251,193,210,205,251,193,212,205,251,193,214,205,251,193,216,205,251,193,218,205,251,193,220,205,251,193,222,205,251,193,224,205,251,193,226,205,251,193,48,202,251,193,50,202,251,193,52,202,251,193,54,202,251,193,56,202,251,193,58,202,251,193,60,202,251,193,62,202,251,193,64,202,251,193,66,202,251,193,68,202,251,193,70,202,251,193,72,202,251,193,74,202,251,193,76,202,251,193,78,202,251,193,80,202,251,193,82,202,251,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,193,24,206,251,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,193,186,204,251,193,188,204,251,193,190,204,251,193,192,204,251,193,194,204,251,193,196,204,251,193,198,204,251,193,200,204,251,193,202,204,251,193,204,204,251,193,206,204,251,193,208,204,251,193,210,204,251,193,212,204,251,193,214,204,251,193,216,204,251,193,218,204,251,193,220,204,251,193,222,204,251,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,193,220,203,251,193,222,203,251,193,224,203,251,193,192,205,251,193,194,205,251,193,196,205,251,193,198,205,251,193,200,205,251,193,202,205,251,193,204,205,251,193,206,205,251,193,106,207,251,193,108,207,251,193,110,207,251,193,112,207,251,193,114,207,251,193,116,207,251,193,118,207,251,193,120,207,251,193,122,207,251,193,124,207,251,193,156,208,251,193,158,208,251,193,160,208,251,193,102,209,251,193,104,209,251,193,106,209,251,193,52,210,251,193,54,210,251,193,56,210,251,193,58,210,251,193,60,210,251,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,193,232,205,251,193,234,205,251,193,236,205,251,193,238,205,251,193,240,205,251,193,242,205,251,193,244,205,251,193,246,205,251,193,248,205,251,193,250,205,251,193,252,205,251,193,254,205,251,193,2,206,251,193,4,206,251,193,6,206,251,193,8,206,251,193,142,207,251,193,144,207,251,193,146,207,251,193,148,207,251,193,150,207,251,193,152,207,251,193,154,207,251,193,156,207,251,193,158,207,251,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,193,28,206,251,193,30,206,251,193,184,204,251,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,193,224,204,251,193,226,204,251,193,228,204,251,193,136,206,251,193,138,206,251,193,140,206,251,193,142,206,251,193,144,206,251,193,146,206,251,193,148,206,251,193,150,206,251,193,152,206,251,193,154,206,251,193,156,206,251,193,158,206,251,193,160,206,251,193,162,206,251,193,164,206,251,193,244,207,251,193,246,207,251,193,248,207,251,193,250,207,251,193,252,207,251,193,254,207,251,193,2,208,251,193,4,208,251,193,4,209,251,193,6,209,251,193,8,209,251,193,10,209,251,193,12,209,251,193,14,209,251,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,193,166,206,251,193,172,205,251,193,174,205,251,193,176,205,251,193,178,205,251,193,180,205,251,193,182,205,251,193,184,205,251,193,186,205,251,193,188,205,251,193,190,205,251,193,228,205,251,193,230,205,251,193,126,207,251,193,128,207,251,193,130,207,251,193,132,207,251,193,134,207,251,193,136,207,251,193,138,207,251,193,140,207,251,193,162,208,251,193,164,208,251,193,166,208,251,193,168,208,251,193,170,208,251,193,172,208,251,193,108,209,251,193,110,209,251,193,112,209,251,193,66,210,251,193,68,210,251,193,70,210,251,193,72,210,251,193,74,210,251,193,76,210,251,193,206,210,251,193,208,210,251,193,60,211,251,193,136,211,251,193,138,211,251,193,140,211,251,193,212,211,251,193,12,206,251,193,14,206,251,193,16,206,251,193,18,206,251,193,20,206,251,193,22,206,251,193,166,207,251,193,168,207,251,193,170,207,251,193,172,207,251,193,204,208,251,193,206,208,251,193,208,208,251,193,210,208,251,193,212,208,251,193,214,208,251,193,216,208,251,193,218,208,251,193,220,208,251,193,138,209,251,193,140,209,251,193,142,209,251,193,144,209,251,193,146,209,251,193,90,210,251,193,92,210,251,193,226,210,251,193,72,211,251,193,74,211,251,193,146,211,251,193,148,211,251,193,216,211,251,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,193,134,206,251,193,196,207,251,193,198,207,251,193,200,207,251,193,202,207,251,193,204,207,251,193,206,207,251,193,208,207,251,193,210,207,251,193,212,207,251,193,214,207,251,193,216,207,251,193,218,207,251,193,220,207,251,193,222,207,251,193,224,207,251,193,226,207,251,193,228,207,251,193,230,207,251,193,232,207,251,193,234,207,251,193,236,207,251,193,238,207,251,193,240,207,251,193,242,207,251,193,222,208,251,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,193,104,207,251,193,146,208,251,193,148,208,251,193,150,208,251,193,152,208,251,193,154,208,251,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,193,160,207,251,193,162,207,251,193,164,207,251,193,174,208,251,193,176,208,251,193,178,208,251,193,180,208,251,193,182,208,251,193,184,208,251,193,186,208,251,193,188,208,251,193,190,208,251,193,192,208,251,193,194,208,251,193,196,208,251,193,198,208,251,193,200,208,251,193,202,208,251,193,114,209,251,193,116,209,251,193,118,209,251,193,120,209,251,193,122,209,251,193,124,209,251,193,126,209,251,193,128,209,251,193,130,209,251,193,132,209,251,193,134,209,251,193,136,209,251,193,78,210,251,193,80,210,251,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,193,224,208,251,193,226,208,251,193,228,208,251,193,230,208,251,193,232,208,251,193,148,209,251,193,234,208,251,193,236,208,251,193,238,208,251,193,240,208,251,193,242,208,251,193,244,208,251,193,246,208,251,193,248,208,251,193,250,208,251,193,252,208,251,193,254,208,251,193,2,209,251,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,193,216,209,251,193,218,209,251,193,220,209,251,193,222,209,251,193,224,209,251,193,226,209,251,193,228,209,251,193,230,209,251,193,232,209,251,193,234,209,251,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,193,94,210,251,193,96,210,251,193,98,210,251,193,100,210,251,193,102,210,251,193,104,210,251,193,106,210,251,193,108,210,251,193,110,210,251,193,112,210,251,193,228,210,251,193,114,210,251,193,230,210,251,193,232,210,251,193,234,210,251,193,236,210,251,193,238,210,251,193,240,210,251,193,242,210,251,193,244,210,251,193,76,211,251,193,78,211,251,193,80,211,251,193,150,211,251,193,152,211,251,193,192,209,251,193,194,209,251,193,196,209,251,193,198,209,251,193,200,209,251,193,202,209,251,193,204,209,251,193,206,209,251,193,208,209,251,193,210,209,251,193,212,209,251,193,214,209,251,193,116,210,251,193,118,210,251,193,246,210,251,193,248,210,251,193,250,210,251,193,82,211,251,193,84,211,251,193,86,211,251,193,88,211,251,193,228,211,251,193,230,211,251,193,232,211,251,193,36,212,251,193,38,212,251,193,76,212,251,193,106,212,251,193,108,212,251,193,128,212,251,193,142,212,251,193,254,212,251,193,236,209,251,193,238,209,251,193,240,209,251,193,242,209,251,193,244,209,251,193,246,209,251,193,248,209,251,193,250,209,251,193,252,209,251,193,254,209,251,193,2,210,251,193,4,210,251,193,6,210,251,193,8,210,251,193,10,210,251,193,12,210,251,193,14,210,251,193,16,210,251,193,18,210,251,193,20,210,251,193,22,210,251,193,24,210,251,193,26,210,251,193,28,210,251,193,30,210,251,193,32,210,251,193,34,210,251,193,36,210,251,193,38,210,251,193,40,210,251,193,42,210,251,193,44,210,251,193,46,210,251,193,48,210,251,193,50,210,251,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,193,62,210,251,193,204,210,251,193,58,211,251,193,210,211,251,193,250,211,251,193,138,212,251,193,92,212,251,193,188,212,251,193,80,213,251,193,148,213,251,193,150,213,251,193,248,213,251,193,250,213,251,193,142,214,251,193,48,215,251,193,50,215,251,193,182,215,251,193,40,216,251,193,42,216,251,193,136,216,251,193,138,216,251,193,140,216,251,193,142,216,251,193,244,216,251,193,246,216,251,193,248,216,251,193,54,217,251,193,102,217,251,193,104,217,251,193,200,217,251,193,202,217,251,193,232,217,251,193,82,210,251,193,84,210,251,193,86,210,251,193,88,210,251,193,210,210,251,193,212,210,251,193,214,210,251,193,216,210,251,193,218,210,251,193,220,210,251,193,222,210,251,193,224,210,251,193,62,211,251,193,64,211,251,193,66,211,251,193,68,211,251,193,70,211,251,193,142,211,251,193,144,211,251,193,56,212,251,193,62,212,251,193,68,212,251,193,72,212,251,193,102,212,251,193,104,212,251,193,168,212,251,193,170,212,251,193,190,212,251,193,206,212,251,193,208,212,251,193,220,212,251,193,224,212,251,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,193,252,210,251,193,254,210,251,193,2,211,251,193,4,211,251,193,6,211,251,193,8,211,251,193,10,211,251,193,12,211,251,193,14,211,251,193,16,211,251,193,18,211,251,193,20,211,251,193,22,211,251,193,24,211,251,193,26,211,251,193,28,211,251,193,30,211,251,193,32,211,251,193,34,211,251,193,36,211,251,193,38,211,251,193,90,211,251,193,40,211,251,193,42,211,251,193,44,211,251,193,46,211,251,193,48,211,251,193,50,211,251,193,52,211,251,193,54,211,251,193,56,211,251,193,92,211,251,193,94,211,251,193,96,211,251,193,98,211,251,193,100,211,251,193,102,211,251,193,104,211,251,193,106,211,251,193,108,211,251,193,110,211,251,193,112,211,251,193,114,211,251,193,116,211,251,193,118,211,251,193,120,211,251,193,122,211,251,193,124,211,251,193,126,211,251,193,128,211,251,193,130,211,251,193,132,211,251,193,134,211,251,193,170,211,251,193,172,211,251,193,174,211,251,193,176,211,251,193,178,211,251,193,180,211,251,193,182,211,251,193,184,211,251,193,186,211,251,193,188,211,251,193,190,211,251,193,192,211,251,193,194,211,251,193,196,211,251,193,198,211,251,193,200,211,251,193,202,211,251,193,204,211,251,193,206,211,251,193,208,211,251,193,234,211,251,193,236,211,251,193,238,211,251,193,240,211,251,193,242,211,251,193,244,211,251,193,246,211,251,193,248,211,251,193,4,212,251,193,6,212,251,193,154,211,251,193,156,211,251,193,158,211,251,193,160,211,251,193,162,211,251,193,218,211,251,193,164,211,251,193,166,211,251,193,220,211,251,193,222,211,251,193,224,211,251,193,226,211,251,193,254,211,251,193,2,212,251,193,34,212,251,193,60,212,251,193,64,212,251,193,94,212,251,193,140,212,251,193,192,212,251,193,230,212,251,193,232,212,251,193,234,212,251,193,236,212,251,193,244,212,251,193,246,212,251,193,248,212,251,193,250,212,251,193,252,212,251,193,26,213,251,193,28,213,251,193,30,213,251,193,214,211,251,193,252,211,251,193,32,212,251,193,180,212,251,193,204,212,251,193,222,212,251,193,238,212,251,193,20,213,251,193,82,213,251,193,152,213,251,193,252,213,251,193,254,213,251,193,2,214,251,193,4,214,251,193,6,214,251,193,8,214,251,193,10,214,251,193,146,214,251,193,148,214,251,193,150,214,251,193,152,214,251,193,154,214,251,193,156,214,251,193,158,214,251,193,160,214,251,193,52,215,251,193,54,215,251,193,56,215,251,193,58,215,251,193,60,215,251,193,62,215,251,193,64,215,251,193,8,212,251,193,10,212,251,193,12,212,251,193,14,212,251,193,16,212,251,193,18,212,251,193,20,212,251,193,22,212,251,193,24,212,251,193,26,212,251,193,28,212,251,193,30,212,251,193,40,212,251,193,42,212,251,193,44,212,251,193,46,212,251,193,48,212,251,193,50,212,251,193,52,212,251,193,54,212,251,193,58,212,251,193,66,212,251,193,70,212,251,193,78,212,251,193,80,212,251,193,82,212,251,193,84,212,251,193,86,212,251,193,88,212,251,193,90,212,251,193,96,212,251,193,98,212,251,193,74,212,251,193,126,212,251,193,172,212,251,193,242,212,251,193,86,213,251,193,88,213,251,193,90,213,251,193,164,213,251,193,28,214,251,193,170,214,251,193,172,214,251,193,80,215,251,193,82,215,251,193,84,215,251,193,86,215,251,193,212,215,251,193,214,215,251,193,64,216,251,193,160,216,251,193,162,216,251,193,10,217,251,193,12,217,251,193,66,217,251,193,68,217,251,193,146,217,251,193,186,217,251,193,52,218,251,193,128,218,251,193,158,218,251,193,108,219,251,193,110,219,251,193,186,219,251,193,194,212,251,193,196,212,251,193,198,212,251,193,200,212,251,193,202,212,251,193,210,212,251,193,212,212,251,193,214,212,251,193,216,212,251,193,218,212,251,193,226,212,251,193,4,213,251,193,6,213,251,193,8,213,251,193,10,213,251,193,12,213,251,193,14,213,251,193,16,213,251,193,18,213,251,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,193,228,212,251,193,240,212,251,193,22,213,251,193,24,213,251,193,84,213,251,193,154,213,251,193,156,213,251,193,158,213,251,193,160,213,251,193,162,213,251,193,12,214,251,193,14,214,251,193,16,214,251,193,18,214,251,193,20,214,251,193,22,214,251,193,24,214,251,193,26,214,251,193,162,214,251,193,164,214,251,193,166,214,251,193,168,214,251,193,68,215,251,193,70,215,251,193,72,215,251,193,74,215,251,193,76,215,251,193,78,215,251,193,198,215,251,193,200,215,251,193,202,215,251,193,204,215,251,193,2,213,251,193,32,213,251,193,34,213,251,193,104,213,251,193,106,213,251,193,108,213,251,193,110,213,251,193,180,213,251,193,182,213,251,193,184,213,251,193,62,214,251,193,64,214,251,193,66,214,251,193,68,214,251,193,70,214,251,193,206,214,251,193,208,214,251,193,210,214,251,193,212,214,251,193,214,214,251,193,216,214,251,193,218,214,251,193,220,214,251,193,222,214,251,193,224,214,251,193,226,214,251,193,228,214,251,193,98,215,251,193,100,215,251,193,102,215,251,193,104,215,251,193,106,215,251,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,193,112,213,251,193,114,213,251,193,116,213,251,193,118,213,251,193,120,213,251,193,122,213,251,193,124,213,251,193,126,213,251,193,128,213,251,193,130,213,251,193,132,213,251,193,134,213,251,193,136,213,251,193,138,213,251,193,140,213,251,193,142,213,251,193,144,213,251,193,146,213,251,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,193,92,213,251,193,94,213,251,193,96,213,251,193,98,213,251,193,100,213,251,193,102,213,251,193,166,213,251,193,168,213,251,193,170,213,251,193,172,213,251,193,174,213,251,193,176,213,251,193,178,213,251,193,32,214,251,193,34,214,251,193,36,214,251,193,38,214,251,193,40,214,251,193,42,214,251,193,44,214,251,193,46,214,251,193,48,214,251,193,50,214,251,193,52,214,251,193,54,214,251,193,56,214,251,193,58,214,251,193,60,214,251,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,193,252,217,251,193,2,218,251,193,10,218,251,193,18,218,251,193,20,218,251,193,22,218,251,193,28,218,251,193,30,218,251,193,32,218,251,193,34,218,251,193,60,218,251,193,246,213,251,193,62,218,251,193,64,218,251,193,78,218,251,193,80,218,251,193,82,218,251,193,84,218,251,193,86,218,251,193,88,218,251,193,96,218,251,193,98,218,251,193,100,218,251,193,114,218,251,193,116,218,251,193,118,218,251,193,90,218,251,193,134,216,251,193,130,218,251,193,132,218,251,193,134,218,251,193,136,218,251,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,193,230,214,251,193,232,214,251,193,138,214,251,193,234,214,251,193,236,214,251,193,238,214,251,193,240,214,251,193,242,214,251,193,244,214,251,193,246,214,251,193,248,214,251,193,250,214,251,193,252,214,251,193,254,214,251,193,2,215,251,193,4,215,251,193,6,215,251,193,8,215,251,193,10,215,251,193,12,215,251,193,14,215,251,193,16,215,251,193,18,215,251,193,20,215,251,193,22,215,251,193,24,215,251,193,26,215,251,193,28,215,251,193,30,215,251,193,140,214,251,193,32,215,251,193,34,215,251,193,36,215,251,193,38,215,251,193,40,215,251,193,42,215,251,193,44,215,251,193,108,215,251,193,126,12,252,193,128,12,252,193,190,12,252,193,192,12,252,193,22,13,252,193,122,13,252,193,230,13,252,193,104,14,252,193,222,14,252,193,224,14,252,193,144,214,251,193,24,15,252,193,64,15,252,193,66,15,252,193,68,15,252,193,120,15,252,193,186,15,252,193,14,16,252,193,16,16,252,193,94,16,252,193,164,16,252,193,252,16,252,193,26,17,252,193,108,17,252,193,110,17,252,193,206,17,252,193,208,17,252,193,38,18,252,193,40,18,252,193,222,18,252,193,224,18,252,193,72,19,252,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,193,88,215,251,193,90,215,251,193,204,214,251,193,92,215,251,193,94,215,251,193,96,215,251,193,216,215,251,193,218,215,251,193,220,215,251,193,66,216,251,193,68,216,251,193,70,216,251,193,72,216,251,193,74,216,251,193,76,216,251,193,78,216,251,193,80,216,251,193,164,216,251,193,166,216,251,193,168,216,251,193,170,216,251,193,174,215,251,193,176,215,251,193,178,215,251,193,46,215,251,193,180,215,251,193,150,117,252,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,193,66,215,251,193,184,215,251,193,186,215,251,193,188,215,251,193,190,215,251,193,192,215,251,193,194,215,251,193,196,215,251,193,44,216,251,193,46,216,251,193,48,216,251,193,50,216,251,193,52,216,251,193,144,216,251,193,146,216,251,193,148,216,251,193,150,216,251,193,250,216,251,193,252,216,251,193,254,216,251,193,2,217,251,193,4,217,251,193,6,217,251,193,8,217,251,193,56,217,251,193,58,217,251,193,60,217,251,193,106,217,251,193,108,217,251,193,110,217,251,193,136,217,251,193,138,217,251,193,110,215,251,193,112,215,251,193,114,215,251,193,116,215,251,193,118,215,251,193,120,215,251,193,122,215,251,193,124,215,251,193,126,215,251,193,128,215,251,193,130,215,251,193,132,215,251,193,134,215,251,193,136,215,251,193,138,215,251,193,140,215,251,193,142,215,251,193,144,215,251,193,146,215,251,193,148,215,251,193,150,215,251,193,152,215,251,193,154,215,251,193,156,215,251,193,158,215,251,193,160,215,251,193,162,215,251,193,164,215,251,193,166,215,251,193,168,215,251,193,170,215,251,193,172,215,251,193,206,215,251,193,208,215,251,193,210,215,251,193,54,216,251,193,56,216,251,193,58,216,251,193,60,216,251,193,62,216,251,193,152,216,251,193,154,216,251,193,156,216,251,193,158,216,251,193,62,217,251,193,64,217,251,193,112,217,251,193,114,217,251,193,208,217,251,193,210,217,251,193,218,217,251,193,244,217,251,193,14,218,251,193,42,218,251,193,44,218,251,193,46,218,251,193,48,218,251,193,50,218,251,193,150,218,251,193,152,218,251,193,42,219,251,193,48,219,251,193,72,219,251,193,80,219,251,193,222,215,251,193,224,215,251,193,226,215,251,193,228,215,251,193,82,216,251,193,84,216,251,193,86,216,251,193,172,216,251,193,174,216,251,193,176,216,251,193,178,216,251,193,74,217,251,193,76,217,251,193,152,217,251,193,188,217,251,193,8,218,251,193,58,218,251,193,112,218,251,193,182,218,251,193,184,218,251,193,190,218,251,193,198,218,251,193,210,218,251,193,228,218,251,193,244,218,251,193,30,219,251,193,52,219,251,193,70,219,251,193,116,219,251,193,118,219,251,193,128,219,251,193,130,219,251,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,193,24,138,252,193,88,216,251,193,90,216,251,193,92,216,251,193,94,216,251,193,96,216,251,193,98,216,251,193,100,216,251,193,102,216,251,193,104,216,251,193,106,216,251,193,108,216,251,193,110,216,251,193,112,216,251,193,114,216,251,193,116,216,251,193,118,216,251,193,120,216,251,193,122,216,251,193,124,216,251,193,126,216,251,193,128,216,251,193,130,216,251,193,132,216,251,193,180,216,251,193,182,216,251,193,184,216,251,193,186,216,251,193,188,216,251,193,190,216,251,193,192,216,251,193,194,216,251,193,196,216,251,193,198,216,251,193,200,216,251,193,202,216,251,193,204,216,251,193,206,216,251,193,208,216,251,193,210,216,251,193,212,216,251,193,214,216,251,193,216,216,251,193,218,216,251,193,220,216,251,193,222,216,251,193,224,216,251,193,226,216,251,193,228,216,251,193,230,216,251,193,232,216,251,193,234,216,251,193,236,216,251,193,238,216,251,193,240,216,251,193,242,216,251,193,20,217,251,193,22,217,251,193,14,217,251,193,16,217,251,193,18,217,251,193,70,217,251,193,116,217,251,193,148,217,251,193,150,217,251,193,254,217,251,193,6,218,251,193,16,218,251,193,54,218,251,193,56,218,251,193,70,218,251,193,72,218,251,193,74,218,251,193,76,218,251,193,92,218,251,193,94,218,251,193,110,218,251,193,142,218,251,193,160,218,251,193,168,218,251,193,174,218,251,193,178,218,251,193,186,218,251,193,206,218,251,193,208,218,251,193,224,218,251,193,226,218,251,193,242,218,251,193,4,219,251,193,6,219,251,193,24,217,251,193,26,217,251,193,28,217,251,193,30,217,251,193,78,217,251,193,32,217,251,193,34,217,251,193,36,217,251,193,38,217,251,193,40,217,251,193,42,217,251,193,44,217,251,193,46,217,251,193,48,217,251,193,50,217,251,193,52,217,251,193,80,217,251,193,82,217,251,193,84,217,251,193,86,217,251,193,88,217,251,193,90,217,251,193,92,217,251,193,94,217,251,193,96,217,251,193,98,217,251,193,100,217,251,193,118,217,251,193,120,217,251,193,122,217,251,193,124,217,251,193,126,217,251,193,52,52,253,193,72,217,251,193,54,52,253,193,56,52,253,193,58,52,253,193,60,52,253,193,144,52,253,193,146,52,253,193,148,52,253,193,150,52,253,193,152,52,253,193,154,52,253,193,156,52,253,193,242,52,253,193,244,52,253,193,246,52,253,193,34,53,253,193,36,53,253,193,38,53,253,193,40,53,253,193,42,53,253,193,86,53,253,193,88,53,253,193,90,53,253,193,92,53,253,193,136,53,253,193,138,53,253,193,168,53,253,193,178,53,253,193,202,53,253,193,204,53,253,193,206,53,253,193,128,217,251,193,130,217,251,193,132,217,251,193,154,217,251,193,156,217,251,193,158,217,251,193,160,217,251,193,162,217,251,193,164,217,251,193,166,217,251,193,168,217,251,193,170,217,251,193,172,217,251,193,174,217,251,193,190,217,251,193,192,217,251,193,194,217,251,193,196,217,251,193,198,217,251,193,212,217,251,193,214,217,251,193,220,217,251,193,222,217,251,193,224,217,251,193,226,217,251,193,228,217,251,193,230,217,251,193,240,217,251,193,242,217,251,193,246,217,251,193,248,217,251,193,250,217,251,193,160,164,253,193,168,164,253,193,170,164,253,193,172,164,253,193,174,164,253,193,176,164,253,193,178,164,253,193,180,164,253,193,194,164,253,193,196,164,253,193,208,164,253,193,210,164,253,193,212,164,253,193,214,164,253,193,134,217,251,193,222,164,253,193,176,217,251,193,224,164,253,193,230,164,253,193,234,164,253,193,236,164,253,193,240,164,253,193,242,164,253,193,244,164,253,193,248,164,253,193,250,164,253,193,254,164,253,193,4,165,253,193,6,165,253,193,8,165,253,193,22,165,253,193,24,165,253,193,140,217,251,193,142,217,251,193,144,217,251,193,178,217,251,193,180,217,251,193,182,217,251,193,184,217,251,193,204,217,251,193,206,217,251,193,216,217,251,193,234,217,251,193,236,217,251,193,238,217,251,193,4,218,251,193,38,218,251,193,40,218,251,193,68,218,251,193,108,218,251,193,166,218,251,193,222,218,251,193,240,218,251,193,2,219,251,193,40,219,251,193,46,219,251,193,60,219,251,193,148,219,251,193,150,219,251,193,182,219,251,193,184,219,251,193,12,220,251,193,54,220,251,193,60,220,251,193,12,218,251,193,24,218,251,193,26,218,251,193,36,218,251,193,66,218,251,193,102,218,251,193,104,218,251,193,106,218,251,193,122,218,251,193,124,218,251,193,126,218,251,193,204,218,251,193,220,218,251,193,28,219,251,193,38,219,251,193,58,219,251,193,68,219,251,193,104,219,251,193,100,220,251,193,102,220,251,193,138,220,251,193,206,220,251,193,208,220,251,193,210,220,251,193,22,221,251,193,68,221,251,193,70,221,251,193,72,221,251,193,74,221,251,193,112,221,251,193,144,221,251,193,166,221,251,193,110,154,253,193,112,154,253,193,126,154,253,193,128,154,253,193,130,154,253,193,132,154,253,193,134,154,253,193,136,154,253,193,138,154,253,193,140,154,253,193,142,154,253,193,144,154,253,193,146,154,253,193,148,154,253,193,150,154,253,193,152,154,253,193,120,218,251,193,154,154,253,193,156,154,253,193,158,154,253,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,193,138,218,251,193,140,218,251,193,144,218,251,193,146,218,251,193,148,218,251,193,154,218,251,193,156,218,251,193,162,218,251,193,164,218,251,193,170,218,251,193,172,218,251,193,176,218,251,193,180,218,251,193,188,218,251,193,192,218,251,193,194,218,251,193,196,218,251,193,200,218,251,193,202,218,251,193,212,218,251,193,214,218,251,193,216,218,251,193,218,218,251,193,230,218,251,193,232,218,251,193,234,218,251,193,236,218,251,193,238,218,251,193,246,218,251,193,248,218,251,193,250,218,251,193,252,218,251,193,254,218,251,193,8,219,251,193,20,219,251,193,10,219,251,193,12,219,251,193,14,219,251,193,22,219,251,193,24,219,251,193,26,219,251,193,32,219,251,193,34,219,251,193,36,219,251,193,54,219,251,193,56,219,251,193,62,219,251,193,64,219,251,193,66,219,251,193,76,219,251,193,82,219,251,193,84,219,251,193,94,219,251,193,96,219,251,193,98,219,251,193,100,219,251,193,102,219,251,193,120,219,251,193,122,219,251,193,132,219,251,193,134,219,251,193,136,219,251,193,142,219,251,193,144,219,251,193,16,219,251,193,18,219,251,193,44,219,251,193,50,219,251,193,74,219,251,193,78,219,251,193,86,219,251,193,88,219,251,193,90,219,251,193,92,219,251,193,112,219,251,193,114,219,251,193,138,219,251,193,140,219,251,193,152,219,251,193,154,219,251,193,188,219,251,193,190,219,251,193,216,219,251,193,234,219,251,193,250,219,251,193,18,220,251,193,20,220,251,193,34,220,251,193,64,220,251,193,68,220,251,193,86,220,251,193,88,220,251,193,90,220,251,193,110,220,251,193,112,220,251,193,114,220,251,193,106,219,251,193,124,219,251,193,126,219,251,193,210,219,251,193,212,219,251,193,230,219,251,193,32,220,251,193,70,220,251,193,76,220,251,193,78,220,251,193,80,220,251,193,106,220,251,193,108,220,251,193,140,220,251,193,142,220,251,193,144,220,251,193,146,220,251,193,148,220,251,193,150,220,251,193,152,220,251,193,154,220,251,193,224,220,251,193,226,220,251,193,228,220,251,193,230,220,251,193,232,220,251,193,30,221,251,193,80,221,251,193,82,221,251,193,84,221,251,193,86,221,251,193,122,221,251,193,146,219,251,193,158,219,251,193,160,219,251,193,162,219,251,193,164,219,251,193,166,219,251,193,168,219,251,193,170,219,251,193,172,219,251,193,174,219,251,193,176,219,251,193,208,136,252,193,178,219,251,193,180,219,251,193,192,219,251,193,194,219,251,193,196,219,251,193,198,219,251,193,200,219,251,193,202,219,251,193,204,219,251,193,206,219,251,193,220,219,251,193,222,219,251,193,224,219,251,193,226,219,251,193,228,219,251,193,238,219,251,193,240,219,251,193,242,219,251,193,244,219,251,193,246,219,251,193,156,219,251,193,218,219,251,193,236,219,251,193,72,220,251,193,92,220,251,193,172,220,251,193,118,220,251,193,174,220,251,193,176,220,251,193,178,220,251,193,252,220,251,193,254,220,251,193,2,221,251,193,42,221,251,193,156,221,251,193,158,221,251,193,116,222,251,193,118,222,251,193,164,222,251,193,166,222,251,193,168,222,251,193,170,222,251,193,172,222,251,193,174,222,251,193,46,223,251,193,48,223,251,193,50,223,251,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,193,38,117,252,193,224,117,252,193,226,117,252,193,228,117,252,193,230,117,252,193,232,117,252,193,234,117,252,193,236,117,252,193,238,117,252,193,208,219,251,193,240,117,252,193,242,117,252,193,244,117,252,193,246,117,252,193,248,117,252,193,250,117,252,193,252,117,252,193,254,117,252,193,2,118,252,193,4,118,252,193,6,118,252,193,214,219,251,193,232,219,251,193,248,219,251,193,14,220,251,193,16,220,251,193,46,220,251,193,66,220,251,193,156,220,251,193,234,220,251,193,32,221,251,193,34,221,251,193,36,221,251,193,88,221,251,193,90,221,251,193,126,221,251,193,154,221,251,193,48,222,251,193,142,222,251,193,144,222,251,193,232,222,251,193,160,223,251,193,162,223,251,193,164,223,251,193,166,223,251,193,118,224,251,193,120,224,251,193,122,224,251,193,124,224,251,193,126,224,251,193,128,224,251,193,130,224,251,193,90,225,251,193,252,219,251,193,254,219,251,193,2,220,251,193,4,220,251,193,6,220,251,193,8,220,251,193,10,220,251,193,22,220,251,193,24,220,251,193,26,220,251,193,28,220,251,193,30,220,251,193,36,220,251,193,38,220,251,193,40,220,251,193,42,220,251,193,44,220,251,193,48,220,251,193,50,220,251,193,52,220,251,193,56,220,251,193,58,220,251,193,62,220,251,193,74,220,251,193,82,220,251,193,84,220,251,193,94,220,251,193,96,220,251,193,98,220,251,193,120,220,251,193,122,220,251,193,124,220,251,193,104,220,251,193,212,220,251,193,214,220,251,193,216,220,251,193,218,220,251,193,220,220,251,193,222,220,251,193,26,221,251,193,28,221,251,193,76,221,251,193,78,221,251,193,116,221,251,193,118,221,251,193,120,221,251,193,146,221,251,193,148,221,251,193,150,221,251,193,170,221,251,193,172,221,251,193,200,221,251,193,202,221,251,193,204,221,251,193,206,221,251,193,214,221,251,193,232,221,251,193,234,221,251,193,236,221,251,193,238,221,251,193,2,222,251,193,4,222,251,193,14,222,251,193,16,222,251,193,116,220,251,193,158,220,251,193,160,220,251,193,162,220,251,193,164,220,251,193,166,220,251,193,168,220,251,193,236,220,251,193,238,220,251,193,240,220,251,193,170,220,251,193,242,220,251,193,244,220,251,193,246,220,251,193,248,220,251,193,250,220,251,193,38,221,251,193,40,221,251,193,92,221,251,193,94,221,251,193,96,221,251,193,98,221,251,193,128,221,251,193,130,221,251,193,180,221,251,193,182,221,251,193,210,221,251,193,218,221,251,193,244,221,251,193,246,221,251,193,248,221,251,193,8,222,251,193,126,220,251,193,128,220,251,193,130,220,251,193,132,220,251,193,134,220,251,193,136,220,251,193,180,220,251,193,182,220,251,193,184,220,251,193,186,220,251,193,188,220,251,193,190,220,251,193,192,220,251,193,194,220,251,193,196,220,251,193,198,220,251,193,200,220,251,193,202,220,251,193,204,220,251,193,4,221,251,193,6,221,251,193,8,221,251,193,10,221,251,193,12,221,251,193,14,221,251,193,16,221,251,193,18,221,251,193,20,221,251,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,193,24,221,251,193,114,221,251,193,82,224,251,193,84,224,251,193,32,225,251,193,222,233,251,193,80,234,251,193,82,234,251,193,120,237,251,193,142,240,251,193,144,240,251,193,168,249,251,193,170,249,251,193,212,251,251,193,214,251,251,193,216,251,251,193,36,254,251,193,182,255,251,193,230,2,252,193,4,11,252,193,26,14,252,193,242,20,252,193,246,20,252,193,94,28,252,193,252,30,252,193,254,35,252,193,2,36,252,193,4,36,252,193,178,40,252,193,152,42,252,193,18,46,252,193,200,51,252,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,193,100,221,251,193,102,221,251,193,104,221,251,193,106,221,251,193,108,221,251,193,110,221,251,193,132,221,251,193,134,221,251,193,136,221,251,193,138,221,251,193,140,221,251,193,142,221,251,193,160,221,251,193,162,221,251,193,164,221,251,193,184,221,251,193,186,221,251,193,188,221,251,193,190,221,251,193,192,221,251,193,194,221,251,193,212,221,251,193,220,221,251,193,222,221,251,193,124,221,251,193,152,221,251,193,174,221,251,193,176,221,251,193,178,221,251,193,208,221,251,193,216,221,251,193,240,221,251,193,242,221,251,193,6,222,251,193,84,222,251,193,98,222,251,193,136,222,251,193,138,222,251,193,140,222,251,193,226,222,251,193,228,222,251,193,230,222,251,193,130,223,251,193,132,223,251,193,134,223,251,193,136,223,251,193,138,223,251,193,140,223,251,193,142,223,251,193,144,223,251,193,146,223,251,193,148,223,251,193,150,223,251,193,152,223,251,193,154,223,251,193,156,223,251,193,168,221,251,193,196,221,251,193,198,221,251,193,252,221,251,193,254,221,251,193,12,222,251,193,218,222,251,193,220,222,251,193,110,223,251,193,112,223,251,193,114,223,251,193,116,223,251,193,118,223,251,193,120,223,251,193,122,223,251,193,62,224,251,193,64,224,251,193,66,224,251,193,68,224,251,193,70,224,251,193,72,224,251,193,74,224,251,193,76,224,251,193,78,224,251,193,80,224,251,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,193,224,221,251,193,226,221,251,193,228,221,251,193,230,221,251,193,250,221,251,193,10,222,251,193,20,222,251,193,24,222,251,193,26,222,251,193,30,222,251,193,34,222,251,193,36,222,251,193,38,222,251,193,46,222,251,193,50,222,251,193,52,222,251,193,56,222,251,193,58,222,251,193,60,222,251,193,62,222,251,193,68,222,251,193,70,222,251,193,74,222,251,193,76,222,251,193,78,222,251,193,80,222,251,193,82,222,251,193,92,222,251,193,94,222,251,193,96,222,251,193,120,222,251,193,122,222,251,193,18,222,251,193,22,222,251,193,28,222,251,193,32,222,251,193,40,222,251,193,66,222,251,193,134,222,251,193,222,222,251,193,224,222,251,193,124,223,251,193,126,223,251,193,128,223,251,193,86,224,251,193,88,224,251,193,90,224,251,193,34,225,251,193,36,225,251,193,38,225,251,193,40,225,251,193,42,225,251,193,44,225,251,193,10,226,251,193,12,226,251,193,14,226,251,193,16,226,251,193,18,226,251,193,20,226,251,193,44,227,251,193,46,227,251,193,48,227,251,193,50,227,251,193,52,227,251,193,42,222,251,193,44,222,251,193,54,222,251,193,64,222,251,193,72,222,251,193,86,222,251,193,88,222,251,193,90,222,251,193,100,222,251,193,102,222,251,193,104,222,251,193,106,222,251,193,108,222,251,193,110,222,251,193,112,222,251,193,114,222,251,193,146,222,251,193,148,222,251,193,150,222,251,193,152,222,251,193,154,222,251,193,156,222,251,193,158,222,251,193,160,222,251,193,162,222,251,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,193,124,222,251,193,126,222,251,193,128,222,251,193,130,222,251,193,176,222,251,193,132,222,251,193,178,222,251,193,180,222,251,193,182,222,251,193,184,222,251,193,186,222,251,193,188,222,251,193,190,222,251,193,192,222,251,193,194,222,251,193,196,222,251,193,198,222,251,193,200,222,251,193,202,222,251,193,204,222,251,193,206,222,251,193,208,222,251,193,210,222,251,193,212,222,251,193,214,222,251,193,216,222,251,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,193,158,223,251,193,92,224,251,193,94,224,251,193,96,224,251,193,98,224,251,193,100,224,251,193,102,224,251,193,104,224,251,193,106,224,251,193,108,224,251,193,110,224,251,193,112,224,251,193,114,224,251,193,116,224,251,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,193,178,224,251,193,180,224,251,193,182,224,251,193,184,224,251,193,186,224,251,193,188,224,251,193,190,224,251,193,192,224,251,193,194,224,251,193,196,224,251,193,148,225,251,193,150,225,251,193,152,225,251,193,154,225,251,193,156,225,251,193,158,225,251,193,130,226,251,193,132,226,251,193,134,226,251,193,136,226,251,193,138,226,251,193,140,226,251,193,142,226,251,193,144,226,251,193,146,226,251,193,148,226,251,193,150,226,251,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,193,128,232,251,193,46,224,251,193,48,224,251,193,50,224,251,193,52,224,251,193,54,224,251,193,56,224,251,193,58,224,251,193,60,224,251,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,193,132,224,251,193,134,224,251,193,136,224,251,193,138,224,251,193,140,224,251,193,142,224,251,193,144,224,251,193,146,224,251,193,148,224,251,193,150,224,251,193,152,224,251,193,154,224,251,193,156,224,251,193,158,224,251,193,160,224,251,193,162,224,251,193,164,224,251,193,166,224,251,193,168,224,251,193,170,224,251,193,172,224,251,193,174,224,251,193,176,224,251,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,193,160,225,251,193,162,225,251,193,164,225,251,193,166,225,251,193,168,225,251,193,170,225,251,193,172,225,251,193,174,225,251,193,176,225,251,193,178,225,251,193,180,225,251,193,182,225,251,193,184,225,251,193,186,225,251,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,193,2,226,251,193,4,226,251,193,6,226,251,193,8,226,251,193,32,227,251,193,34,227,251,193,36,227,251,193,38,227,251,193,40,227,251,193,42,227,251,193,10,228,251,193,12,228,251,193,14,228,251,193,16,228,251,193,18,228,251,193,20,228,251,193,22,228,251,193,24,228,251,193,26,228,251,193,224,228,251,193,226,228,251,193,228,228,251,193,230,228,251,193,232,228,251,193,234,228,251,193,148,229,251,193,150,229,251,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,193,22,226,251,193,24,226,251,193,26,226,251,193,28,226,251,193,30,226,251,193,32,226,251,193,34,226,251,193,36,226,251,193,38,226,251,193,40,226,251,193,42,226,251,193,44,226,251,193,46,226,251,193,48,226,251,193,50,226,251,193,52,226,251,193,54,226,251,193,56,226,251,193,58,226,251,193,60,226,251,193,62,226,251,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,193,92,225,251,193,94,225,251,193,96,225,251,193,98,225,251,193,100,225,251,193,102,225,251,193,104,225,251,193,64,226,251,193,66,226,251,193,68,226,251,193,70,226,251,193,72,226,251,193,74,226,251,193,88,227,251,193,90,227,251,193,92,227,251,193,94,227,251,193,96,227,251,193,98,227,251,193,100,227,251,193,102,227,251,193,104,227,251,193,96,228,251,193,98,228,251,193,100,228,251,193,102,228,251,193,104,228,251,193,26,229,251,193,28,229,251,193,30,229,251,193,32,229,251,193,34,229,251,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,193,150,231,251,193,152,231,251,193,154,231,251,193,198,231,251,193,200,231,251,193,202,231,251,193,204,231,251,193,206,231,251,193,208,231,251,193,242,231,251,193,38,232,251,193,40,232,251,193,42,232,251,193,52,232,251,193,54,232,251,193,70,232,251,193,90,232,251,193,92,232,251,193,94,232,251,193,96,232,251,193,102,232,251,193,104,232,251,193,114,232,251,193,126,232,251,193,146,232,251,193,176,232,251,193,148,232,251,193,178,232,251,193,180,232,251,193,146,225,251,193,194,232,251,193,196,232,251,193,188,225,251,193,190,225,251,193,192,225,251,193,194,225,251,193,196,225,251,193,198,225,251,193,200,225,251,193,202,225,251,193,204,225,251,193,206,225,251,193,208,225,251,193,210,225,251,193,212,225,251,193,214,225,251,193,216,225,251,193,218,225,251,193,220,225,251,193,222,225,251,193,224,225,251,193,226,225,251,193,228,225,251,193,230,225,251,193,232,225,251,193,234,225,251,193,236,225,251,193,238,225,251,193,240,225,251,193,242,225,251,193,244,225,251,193,246,225,251,193,248,225,251,193,250,225,251,193,252,225,251,193,254,225,251,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,193,106,227,251,193,108,227,251,193,110,227,251,193,112,227,251,193,114,227,251,193,116,227,251,193,118,227,251,193,120,227,251,193,122,227,251,193,124,227,251,193,126,227,251,193,128,227,251,193,130,227,251,193,128,226,251,193,132,227,251,193,134,227,251,193,136,227,251,193,138,227,251,193,140,227,251,193,142,227,251,193,144,227,251,193,146,227,251,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,193,152,226,251,193,148,227,251,193,150,227,251,193,152,227,251,193,154,227,251,193,156,227,251,193,158,227,251,193,160,227,251,193,162,227,251,193,164,227,251,193,166,227,251,193,168,227,251,193,170,227,251,193,136,228,251,193,138,228,251,193,140,228,251,193,142,228,251,193,68,229,251,193,70,229,251,193,72,229,251,193,74,229,251,193,76,229,251,193,78,229,251,193,14,230,251,193,16,230,251,193,18,230,251,193,20,230,251,193,22,230,251,193,24,230,251,193,26,230,251,193,28,230,251,193,30,230,251,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,193,54,227,251,193,56,227,251,193,28,228,251,193,30,228,251,193,32,228,251,193,34,228,251,193,36,228,251,193,38,228,251,193,40,228,251,193,42,228,251,193,236,228,251,193,238,228,251,193,240,228,251,193,242,228,251,193,244,228,251,193,246,228,251,193,164,229,251,193,166,229,251,193,168,229,251,193,130,230,251,193,132,230,251,193,134,230,251,193,136,230,251,193,138,230,251,193,140,230,251,193,10,231,251,193,12,231,251,193,14,231,251,193,114,231,251,193,230,231,251,193,232,231,251,193,110,232,251,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,193,44,228,251,193,46,228,251,193,48,228,251,193,50,228,251,193,52,228,251,193,54,228,251,193,56,228,251,193,58,228,251,193,60,228,251,193,62,228,251,193,64,228,251,193,66,228,251,193,68,228,251,193,70,228,251,193,72,228,251,193,74,228,251,193,76,228,251,193,78,228,251,193,80,228,251,193,82,228,251,193,84,228,251,193,86,228,251,193,88,228,251,193,90,228,251,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,193,144,228,251,193,146,228,251,193,148,228,251,193,150,228,251,193,152,228,251,193,154,228,251,193,156,228,251,193,158,228,251,193,160,228,251,193,162,228,251,193,164,228,251,193,166,228,251,193,168,228,251,193,170,228,251,193,92,228,251,193,94,228,251,193,248,228,251,193,250,228,251,193,252,228,251,193,254,228,251,193,2,229,251,193,4,229,251,193,6,229,251,193,8,229,251,193,10,229,251,193,12,229,251,193,14,229,251,193,16,229,251,193,18,229,251,193,20,229,251,193,22,229,251,193,24,229,251,193,170,229,251,193,172,229,251,193,174,229,251,193,176,229,251,193,178,229,251,193,180,229,251,193,182,229,251,193,184,229,251,193,186,229,251,193,188,229,251,193,190,229,251,193,192,229,251,193,194,229,251,193,196,229,251,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,193,38,229,251,193,40,229,251,193,42,229,251,193,44,229,251,193,46,229,251,193,48,229,251,193,50,229,251,193,52,229,251,193,54,229,251,193,56,229,251,193,58,229,251,193,60,229,251,193,62,229,251,193,64,229,251,193,66,229,251,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,193,36,229,251,193,202,229,251,193,204,229,251,193,206,229,251,193,208,229,251,193,210,229,251,193,212,229,251,193,214,229,251,193,216,229,251,193,218,229,251,193,220,229,251,193,180,230,251,193,182,230,251,193,184,230,251,193,186,230,251,193,36,231,251,193,38,231,251,193,40,231,251,193,42,231,251,193,138,231,251,193,140,231,251,193,142,231,251,193,192,231,251,193,194,231,251,193,196,231,251,193,8,232,251,193,10,232,251,193,12,232,251,193,36,232,251,193,50,232,251,193,82,232,251,193,216,232,251,193,102,230,251,193,104,230,251,193,106,230,251,193,108,230,251,193,110,230,251,193,112,230,251,193,114,230,251,193,146,229,251,193,116,230,251,193,218,230,251,193,220,230,251,193,222,230,251,193,224,230,251,193,226,230,251,193,228,230,251,193,230,230,251,193,232,230,251,193,234,230,251,193,236,230,251,193,238,230,251,193,240,230,251,193,242,230,251,193,244,230,251,193,246,230,251,193,248,230,251,193,250,230,251,193,252,230,251,193,254,230,251,193,2,231,251,193,4,231,251,193,66,231,251,193,68,231,251,193,152,229,251,193,154,229,251,193,156,229,251,193,158,229,251,193,160,229,251,193,162,229,251,193,6,231,251,193,118,230,251,193,120,230,251,193,122,230,251,193,124,230,251,193,126,230,251,193,128,230,251,193,8,231,251,193,108,231,251,193,110,231,251,193,112,231,251,193,254,231,251,193,2,232,251,193,4,232,251,193,64,232,251,193,8,233,251,193,32,233,251,193,34,233,251,193,60,233,251,193,94,233,251,193,112,233,251,193,142,233,251,193,188,233,251,193,190,233,251,193,220,233,251,193,162,234,251,193,198,229,251,193,200,229,251,193,142,230,251,193,144,230,251,193,146,230,251,193,148,230,251,193,150,230,251,193,152,230,251,193,154,230,251,193,156,230,251,193,158,230,251,193,160,230,251,193,162,230,251,193,164,230,251,193,166,230,251,193,168,230,251,193,170,230,251,193,172,230,251,193,174,230,251,193,176,230,251,193,178,230,251,193,16,231,251,193,18,231,251,193,20,231,251,193,22,231,251,193,24,231,251,193,26,231,251,193,28,231,251,193,30,231,251,193,32,231,251,193,34,231,251,193,116,231,251,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,193,188,230,251,193,190,230,251,193,192,230,251,193,194,230,251,193,196,230,251,193,198,230,251,193,200,230,251,193,202,230,251,193,204,230,251,193,206,230,251,193,44,231,251,193,46,231,251,193,208,230,251,193,48,231,251,193,50,231,251,193,144,231,251,193,146,231,251,193,148,231,251,193,38,230,251,193,40,230,251,193,42,230,251,193,44,230,251,193,46,230,251,193,48,230,251,193,50,230,251,193,52,230,251,193,54,230,251,193,56,230,251,193,58,230,251,193,60,230,251,193,62,230,251,193,64,230,251,193,66,230,251,193,68,230,251,193,70,230,251,193,72,230,251,193,74,230,251,193,76,230,251,193,78,230,251,193,80,230,251,193,82,230,251,193,84,230,251,193,86,230,251,193,88,230,251,193,90,230,251,193,92,230,251,193,94,230,251,193,96,230,251,193,98,230,251,193,100,230,251,193,210,230,251,193,212,230,251,193,214,230,251,193,52,231,251,193,54,231,251,193,56,231,251,193,58,231,251,193,60,231,251,193,62,231,251,193,156,231,251,193,158,231,251,193,210,231,251,193,14,232,251,193,16,232,251,193,44,232,251,193,72,232,251,193,98,232,251,193,22,233,251,193,36,233,251,193,132,233,251,193,212,233,251,193,214,233,251,193,250,233,251,193,252,233,251,193,46,234,251,193,112,208,252,193,148,234,251,193,150,234,251,193,192,234,251,193,194,234,251,193,196,234,251,193,234,234,251,193,70,231,251,193,72,231,251,193,74,231,251,193,76,231,251,193,78,231,251,193,80,231,251,193,82,231,251,193,84,231,251,193,86,231,251,193,88,231,251,193,90,231,251,193,92,231,251,193,94,231,251,193,96,231,251,193,98,231,251,193,100,231,251,193,102,231,251,193,104,231,251,193,160,231,251,193,162,231,251,193,164,231,251,193,166,231,251,193,168,231,251,193,170,231,251,193,172,231,251,193,174,231,251,193,176,231,251,193,178,231,251,193,180,231,251,193,182,231,251,193,184,231,251,193,212,231,251,193,86,154,252,193,88,154,252,193,106,231,251,193,90,154,252,193,92,154,252,193,98,154,252,193,100,154,252,193,102,154,252,193,112,154,252,193,114,154,252,193,116,154,252,193,118,154,252,193,120,154,252,193,122,154,252,193,126,154,252,193,128,154,252,193,134,154,252,193,136,154,252,193,146,154,252,193,140,154,252,193,142,154,252,193,148,154,252,193,150,154,252,193,156,154,252,193,158,154,252,193,164,154,252,193,166,154,252,193,168,154,252,193,170,154,252,193,194,154,252,193,196,154,252,193,198,154,252,193,118,231,251,193,120,231,251,193,122,231,251,193,124,231,251,193,126,231,251,193,128,231,251,193,130,231,251,193,132,231,251,193,134,231,251,193,136,231,251,193,186,231,251,193,188,231,251,193,190,231,251,193,234,231,251,193,236,231,251,193,238,231,251,193,240,231,251,193,6,232,251,193,48,232,251,193,66,232,251,193,68,232,251,193,78,232,251,193,80,232,251,193,84,232,251,193,100,232,251,193,142,232,251,193,144,232,251,193,172,232,251,193,174,232,251,193,214,232,251,193,248,232,251,193,12,233,251,193,214,231,251,193,216,231,251,193,218,231,251,193,220,231,251,193,222,231,251,193,224,231,251,193,226,231,251,193,228,231,251,193,244,231,251,193,246,231,251,193,248,231,251,193,250,231,251,193,252,231,251,193,18,232,251,193,20,232,251,193,22,232,251,193,24,232,251,193,26,232,251,193,28,232,251,193,30,232,251,193,32,232,251,193,34,232,251,193,46,232,251,193,56,232,251,193,58,232,251,193,60,232,251,193,82,40,253,193,62,232,251,193,74,232,251,193,76,232,251,193,128,195,252,193,86,232,251,193,88,232,251,193,106,232,251,193,108,232,251,193,116,232,251,193,118,232,251,193,120,232,251,193,122,232,251,193,130,232,251,193,132,232,251,193,134,232,251,193,136,232,251,193,138,232,251,193,140,232,251,193,150,232,251,193,152,232,251,193,154,232,251,193,156,232,251,193,158,232,251,193,160,232,251,193,162,232,251,193,164,232,251,193,166,232,251,193,168,232,251,193,182,232,251,193,184,232,251,193,186,232,251,193,188,232,251,193,202,232,251,193,204,232,251,193,206,232,251,193,222,232,251,193,224,232,251,193,112,232,251,193,124,232,251,193,170,232,251,193,190,232,251,193,192,232,251,193,208,232,251,193,210,232,251,193,212,232,251,193,242,232,251,193,244,232,251,193,246,232,251,193,10,233,251,193,42,233,251,193,66,233,251,193,68,233,251,193,70,233,251,193,96,233,251,193,114,233,251,193,116,233,251,193,118,233,251,193,144,233,251,193,146,233,251,193,148,233,251,193,150,233,251,193,152,233,251,193,192,233,251,193,224,233,251,193,226,233,251,193,228,233,251,193,18,234,251,193,20,234,251,193,22,234,251,193,218,232,251,193,250,232,251,193,54,233,251,193,80,233,251,193,166,233,251,193,202,233,251,193,234,233,251,193,236,233,251,193,102,234,251,193,104,234,251,193,144,234,251,193,188,234,251,193,226,234,251,193,228,234,251,193,12,235,251,193,72,235,251,193,206,235,251,193,208,235,251,193,210,235,251,193,106,236,251,193,144,237,251,193,146,237,251,193,148,237,251,193,150,237,251,193,4,239,251,193,6,239,251,193,8,239,251,193,10,239,251,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,193,226,232,251,193,228,232,251,193,230,232,251,193,236,232,251,193,238,232,251,193,240,232,251,193,252,232,251,193,254,232,251,193,2,233,251,193,4,233,251,193,6,233,251,193,24,233,251,193,26,233,251,193,28,233,251,193,30,233,251,193,38,233,251,193,40,233,251,193,44,233,251,193,46,233,251,193,48,233,251,193,50,233,251,193,52,233,251,193,56,233,251,193,58,233,251,193,62,233,251,193,64,233,251,193,76,233,251,193,82,233,251,193,84,233,251,193,88,233,251,193,92,233,251,193,102,233,251,193,14,233,251,193,16,233,251,193,18,233,251,193,74,233,251,193,98,233,251,193,100,233,251,193,120,233,251,193,122,233,251,193,154,233,251,193,156,233,251,193,158,233,251,193,160,233,251,193,162,233,251,193,164,233,251,193,194,233,251,193,196,233,251,193,198,233,251,193,200,233,251,193,230,233,251,193,232,233,251,193,28,234,251,193,30,234,251,193,32,234,251,193,34,234,251,193,36,234,251,193,92,234,251,193,94,234,251,193,96,234,251,193,98,234,251,193,100,234,251,193,138,234,251,193,140,234,251,193,104,233,251,193,106,233,251,193,108,233,251,193,110,233,251,193,138,233,251,193,174,233,251,193,176,233,251,193,178,233,251,193,170,205,252,193,180,233,251,193,182,233,251,193,184,233,251,193,186,233,251,193,216,233,251,193,218,233,251,193,160,206,252,193,162,206,252,193,254,233,251,193,2,234,251,193,4,234,251,193,6,234,251,193,8,234,251,193,10,234,251,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,193,196,204,252,193,198,204,252,193,200,204,252,193,202,204,252,193,204,204,252,193,206,204,252,193,208,204,252,193,210,204,252,193,212,204,252,193,214,204,252,193,216,204,252,193,218,204,252,193,220,204,252,193,222,204,252,193,224,204,252,193,226,204,252,193,228,204,252,193,230,204,252,193,232,204,252,193,234,204,252,193,236,204,252,193,238,204,252,193,240,204,252,193,140,233,251,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,193,12,234,251,193,14,234,251,193,16,234,251,193,78,234,251,193,128,234,251,193,130,234,251,193,132,234,251,193,134,234,251,193,164,234,251,193,166,234,251,193,168,234,251,193,214,234,251,193,216,234,251,193,252,234,251,193,92,235,251,193,94,235,251,193,108,235,251,193,84,236,251,193,86,236,251,193,88,236,251,193,90,236,251,193,92,236,251,193,112,237,251,193,114,237,251,193,116,237,251,193,118,237,251,193,202,238,251,193,204,238,251,193,206,238,251,193,208,238,251,193,210,238,251,193,212,238,251,193,24,234,251,193,26,234,251,193,84,234,251,193,86,234,251,193,88,234,251,193,90,234,251,193,136,234,251,193,170,234,251,193,172,234,251,193,174,234,251,193,176,234,251,193,178,234,251,193,180,234,251,193,218,234,251,193,220,234,251,193,254,234,251,193,2,235,251,193,32,235,251,193,34,235,251,193,36,235,251,193,38,235,251,193,62,235,251,193,64,235,251,193,74,235,251,193,76,235,251,193,96,235,251,193,112,235,251,193,122,235,251,193,144,235,251,193,94,236,251,193,96,236,251,193,98,236,251,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,193,110,234,251,193,112,234,251,193,114,234,251,193,116,234,251,193,118,234,251,193,120,234,251,193,122,234,251,193,124,234,251,193,126,234,251,193,152,234,251,193,154,234,251,193,156,234,251,193,158,234,251,193,160,234,251,193,198,234,251,193,200,234,251,193,202,234,251,193,204,234,251,193,206,234,251,193,208,234,251,193,210,234,251,193,212,234,251,193,236,234,251,193,238,234,251,193,16,235,251,193,240,234,251,193,242,234,251,193,244,234,251,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,193,76,234,251,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,193,106,234,251,193,116,209,252,193,146,234,251,193,230,234,251,193,232,234,251,193,88,212,252,193,50,235,251,193,86,235,251,193,114,235,251,193,116,235,251,193,124,235,251,193,126,235,251,193,128,235,251,193,130,235,251,193,132,235,251,193,134,235,251,193,136,235,251,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,193,142,234,251,193,182,234,251,193,184,234,251,193,186,234,251,193,222,234,251,193,224,234,251,193,4,235,251,193,6,235,251,193,8,235,251,193,10,235,251,193,40,235,251,193,42,235,251,193,44,235,251,193,46,235,251,193,48,235,251,193,66,235,251,193,68,235,251,193,70,235,251,193,78,235,251,193,80,235,251,193,82,235,251,193,84,235,251,193,104,235,251,193,110,235,251,193,146,235,251,193,100,236,251,193,102,236,251,193,104,236,251,193,132,237,251,193,134,237,251,193,136,237,251,193,138,237,251,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,193,190,234,251,193,90,212,252,193,92,212,252,193,94,212,252,193,96,212,252,193,98,212,252,193,100,212,252,193,102,212,252,193,104,212,252,193,106,212,252,193,108,212,252,193,110,212,252,193,112,212,252,193,114,212,252,193,116,212,252,193,118,212,252,193,120,212,252,193,122,212,252,193,124,212,252,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,193,246,234,251,193,248,234,251,193,250,234,251,193,18,235,251,193,20,235,251,193,22,235,251,193,24,235,251,193,26,235,251,193,28,235,251,193,52,235,251,193,54,235,251,193,56,235,251,193,58,235,251,193,60,235,251,193,88,235,251,193,90,235,251,193,98,235,251,193,100,235,251,193,106,235,251,193,118,235,251,193,120,235,251,193,138,235,251,193,140,235,251,193,142,235,251,193,188,235,251,193,190,235,251,193,192,235,251,193,194,235,251,193,196,235,251,193,198,235,251,193,200,235,251,193,202,235,251,193,14,235,251,193,186,235,251,193,36,236,251,193,38,236,251,193,40,236,251,193,42,236,251,193,44,236,251,193,242,236,251,193,244,236,251,193,246,236,251,193,248,236,251,193,250,236,251,193,252,236,251,193,254,236,251,193,2,237,251,193,4,237,251,193,6,237,251,193,98,238,251,193,100,238,251,193,102,238,251,193,104,238,251,193,106,238,251,193,108,238,251,193,110,238,251,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,193,212,214,252,193,250,214,252,193,20,215,252,193,102,235,251,193,88,215,252,193,116,215,252,193,148,215,252,193,154,215,252,193,166,215,252,193,206,215,252,193,52,216,252,193,88,216,252,193,110,216,252,193,150,216,252,193,212,216,252,193,222,216,252,193,224,216,252,193,2,217,252,193,14,218,252,193,86,218,252,193,116,218,252,193,198,218,252,193,200,218,252,193,38,219,252,193,68,219,252,193,80,219,252,193,180,219,252,193,240,220,252,193,66,221,252,193,68,221,252,193,180,221,252,193,244,221,252,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,193,204,235,251,193,46,236,251,193,48,236,251,193,50,236,251,193,52,236,251,193,54,236,251,193,56,236,251,193,58,236,251,193,60,236,251,193,62,236,251,193,64,236,251,193,66,236,251,193,68,236,251,193,70,236,251,193,72,236,251,193,74,236,251,193,76,236,251,193,78,236,251,193,80,236,251,193,82,236,251,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,193,108,236,251,193,110,236,251,193,112,236,251,193,114,236,251,193,116,236,251,193,118,236,251,193,120,236,251,193,122,236,251,193,124,236,251,193,126,236,251,193,128,236,251,193,130,236,251,193,132,236,251,193,134,236,251,193,136,236,251,193,138,236,251,193,140,236,251,193,142,236,251,193,144,236,251,193,146,236,251,193,148,236,251,193,150,236,251,193,152,236,251,193,34,236,251,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,193,122,237,251,193,124,237,251,193,126,237,251,193,128,237,251,193,130,237,251,193,220,238,251,193,222,238,251,193,146,240,251,193,148,240,251,193,150,240,251,193,152,240,251,193,154,240,251,193,156,240,251,193,158,240,251,193,160,240,251,193,162,240,251,193,164,240,251,193,166,240,251,193,82,242,251,193,84,242,251,193,86,242,251,193,88,242,251,193,90,242,251,193,92,242,251,193,94,242,251,193,96,242,251,193,98,242,251,193,100,242,251,193,102,242,251,193,172,244,251,193,174,244,251,193,176,244,251,193,140,237,251,193,142,237,251,193,224,238,251,193,226,238,251,193,228,238,251,193,230,238,251,193,232,238,251,193,234,238,251,193,236,238,251,193,238,238,251,193,240,238,251,193,242,238,251,193,244,238,251,193,246,238,251,193,248,238,251,193,250,238,251,193,252,238,251,193,254,238,251,193,2,239,251,193,168,240,251,193,170,240,251,193,172,240,251,193,174,240,251,193,176,240,251,193,178,240,251,193,180,240,251,193,182,240,251,193,184,240,251,193,186,240,251,193,188,240,251,193,190,240,251,193,192,240,251,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,193,214,238,251,193,216,238,251,193,218,238,251,193,116,240,251,193,118,240,251,193,120,240,251,193,122,240,251,193,124,240,251,193,126,240,251,193,128,240,251,193,130,240,251,193,132,240,251,193,134,240,251,193,136,240,251,193,138,240,251,193,140,240,251,193,52,242,251,193,54,242,251,193,56,242,251,193,58,242,251,193,60,242,251,193,62,242,251,193,64,242,251,193,66,242,251,193,68,242,251,193,70,242,251,193,72,242,251,193,74,242,251,193,76,242,251,193,78,242,251,193,80,242,251,193,138,244,251,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,193,144,241,251,193,146,241,251,193,148,241,251,193,150,241,251,193,152,241,251,193,154,241,251,193,156,241,251,193,158,241,251,193,160,241,251,193,162,241,251,193,164,241,251,193,166,241,251,193,168,241,251,193,170,241,251,193,128,243,251,193,172,241,251,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,193,194,240,251,193,196,240,251,193,198,240,251,193,104,242,251,193,106,242,251,193,108,242,251,193,110,242,251,193,112,242,251,193,114,242,251,193,116,242,251,193,118,242,251,193,120,242,251,193,122,242,251,193,124,242,251,193,126,242,251,193,128,242,251,193,130,242,251,193,132,242,251,193,134,242,251,193,136,242,251,193,138,242,251,193,140,242,251,193,142,242,251,193,144,242,251,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,193,146,242,251,193,148,242,251,193,150,242,251,193,152,242,251,193,154,242,251,193,156,242,251,193,158,242,251,193,160,242,251,193,162,242,251,193,164,242,251,193,24,245,251,193,26,245,251,193,28,245,251,193,30,245,251,193,32,245,251,193,34,245,251,193,36,245,251,193,38,245,251,193,40,245,251,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,193,234,245,251,193,236,245,251,193,238,245,251,193,240,245,251,193,242,245,251,193,244,245,251,193,246,245,251,193,248,245,251,193,250,245,251,193,252,245,251,193,254,245,251,193,2,246,251,193,4,246,251,193,6,246,251,193,8,246,251,193,10,246,251,193,12,246,251,193,14,246,251,193,16,246,251,193,18,246,251,193,20,246,251,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,193,140,244,251,193,142,244,251,193,144,244,251,193,146,244,251,193,148,244,251,193,150,244,251,193,152,244,251,193,154,244,251,193,156,244,251,193,158,244,251,193,160,244,251,193,162,244,251,193,164,244,251,193,166,244,251,193,168,244,251,193,170,244,251,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,193,178,244,251,193,180,244,251,193,182,244,251,193,184,244,251,193,186,244,251,193,188,244,251,193,190,244,251,193,192,244,251,193,194,244,251,193,196,244,251,193,198,244,251,193,200,244,251,193,202,244,251,193,204,244,251,193,206,244,251,193,208,244,251,193,210,244,251,193,212,244,251,193,214,244,251,193,216,244,251,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,193,192,247,251,193,224,245,251,193,226,245,251,193,194,247,251,193,196,247,251,193,198,247,251,193,200,247,251,193,202,247,251,193,204,247,251,193,206,247,251,193,228,245,251,193,208,247,251,193,210,247,251,193,212,247,251,193,230,245,251,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,193,22,246,251,193,108,55,252,193,24,246,251,193,26,246,251,193,112,248,251,193,114,248,251,193,116,248,251,193,118,248,251,193,120,248,251,193,122,248,251,193,124,248,251,193,126,248,251,193,128,248,251,193,130,248,251,193,132,248,251,193,134,248,251,193,136,248,251,193,138,248,251,193,140,248,251,193,142,248,251,193,144,248,251,193,146,248,251,193,148,248,251,193,150,248,251,193,152,248,251,193,154,248,251,193,156,248,251,193,158,248,251,193,160,248,251,193,162,248,251,193,190,250,251,193,192,250,251,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,193,164,248,251,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,193,126,249,251,193,128,249,251,193,130,249,251,193,132,249,251,193,134,249,251,193,136,249,251,193,138,249,251,193,140,249,251,193,142,249,251,193,144,249,251,193,146,249,251,193,148,249,251,193,150,249,251,193,152,249,251,193,154,249,251,193,156,249,251,193,158,249,251,193,160,249,251,193,162,249,251,193,164,249,251,193,166,249,251,193,180,251,251,193,182,251,251,193,184,251,251,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,193,220,249,251,193,222,249,251,193,224,249,251,193,226,249,251,193,228,249,251,193,230,249,251,193,232,249,251,193,234,249,251,193,236,249,251,193,238,249,251,193,240,249,251,193,242,249,251,193,244,249,251,193,246,249,251,193,248,249,251,193,250,249,251,193,252,249,251,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,193,254,249,251,193,2,250,251,193,4,250,251,193,6,250,251,193,8,250,251,193,10,250,251,193,12,250,251,193,14,250,251,193,16,250,251,193,18,250,251,193,20,250,251,193,22,250,251,193,24,250,251,193,26,250,251,193,28,250,251,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,193,30,250,251,193,32,250,251,193,34,250,251,193,36,250,251,193,38,250,251,193,40,250,251,193,42,250,251,193,106,248,251,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,193,108,248,251,193,180,250,251,193,182,250,251,193,184,250,251,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,193,218,251,251,193,220,251,251,193,222,251,251,193,224,251,251,193,226,251,251,193,228,251,251,193,230,251,251,193,232,251,251,193,234,251,251,193,236,251,251,193,238,251,251,193,240,251,251,193,242,251,251,193,244,251,251,193,246,251,251,193,248,251,251,193,250,251,251,193,252,251,251,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,193,186,250,251,193,186,252,251,193,188,252,251,193,190,252,251,193,192,252,251,193,194,252,251,193,196,252,251,193,198,252,251,193,200,252,251,193,202,252,251,193,204,252,251,193,206,252,251,193,208,252,251,193,210,252,251,193,212,252,251,193,188,250,251,193,214,252,251,193,216,252,251,193,218,252,251,193,220,252,251,193,222,252,251,193,224,252,251,193,226,252,251,193,228,252,251,193,134,254,251,193,136,254,251,193,138,254,251,193,194,250,251,193,196,250,251,193,198,250,251,193,200,250,251,193,202,250,251,193,204,250,251,193,206,250,251,193,208,250,251,193,210,250,251,193,212,250,251,193,214,250,251,193,216,250,251,193,218,250,251,193,220,250,251,193,222,250,251,193,224,250,251,193,230,252,251,193,226,250,251,193,228,250,251,193,232,252,251,193,234,252,251,193,236,252,251,193,238,252,251,193,240,252,251,193,242,252,251,193,244,252,251,193,246,252,251,193,248,252,251,193,250,252,251,193,252,252,251,193,254,252,251,193,2,253,251,193,230,250,251,193,4,253,251,193,6,253,251,193,8,253,251,193,10,253,251,193,12,253,251,193,14,253,251,193,16,253,251,193,18,253,251,193,20,253,251,193,226,254,251,193,228,254,251,193,230,254,251,193,232,254,251,193,234,254,251,193,236,254,251,193,238,254,251,193,240,254,251,193,242,254,251,193,244,254,251,193,246,254,251,193,248,254,251,193,250,254,251,193,48,2,252,193,50,2,252,193,52,2,252,193,54,2,252,193,56,2,252,193,58,2,252,193,60,2,252,193,88,3,252,193,90,3,252,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,193,22,253,251,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,193,186,251,251,193,188,251,251,193,190,251,251,193,192,251,251,193,194,251,251,193,196,251,251,193,198,251,251,193,200,251,251,193,202,251,251,193,204,251,251,193,206,251,251,193,208,251,251,193,210,251,251,193,4,254,251,193,6,254,251,193,8,254,251,193,10,254,251,193,12,254,251,193,14,254,251,193,16,254,251,193,18,254,251,193,20,254,251,193,22,254,251,193,24,254,251,193,26,254,251,193,28,254,251,193,30,254,251,193,32,254,251,193,34,254,251,193,158,255,251,193,160,255,251,193,162,255,251,193,254,251,251,193,2,252,251,193,4,252,251,193,6,252,251,193,8,252,251,193,10,252,251,193,12,252,251,193,14,252,251,193,16,252,251,193,18,252,251,193,20,252,251,193,22,252,251,193,24,252,251,193,26,252,251,193,28,252,251,193,30,252,251,193,32,252,251,193,34,252,251,193,36,252,251,193,38,252,251,193,40,252,251,193,42,252,251,193,44,252,251,193,46,252,251,193,48,252,251,193,50,252,251,193,52,252,251,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,193,106,254,251,193,108,254,251,193,110,254,251,193,112,254,251,193,114,254,251,193,116,254,251,193,118,254,251,193,120,254,251,193,122,254,251,193,124,254,251,193,126,254,251,193,128,254,251,193,130,254,251,193,132,254,251,193,222,255,251,193,224,255,251,193,226,255,251,193,228,255,251,193,230,255,251,193,232,255,251,193,234,255,251,193,236,255,251,193,22,3,252,193,24,3,252,193,26,3,252,193,14,4,252,193,16,4,252,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,193,252,254,251,193,254,254,251,193,2,255,251,193,4,255,251,193,6,255,251,193,8,255,251,193,10,255,251,193,12,255,251,193,14,255,251,193,16,255,251,193,18,255,251,193,20,255,251,193,22,255,251,193,24,255,251,193,26,255,251,193,28,255,251,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,193,184,255,251,193,186,255,251,193,188,255,251,193,190,255,251,193,192,255,251,193,194,255,251,193,196,255,251,193,198,255,251,193,200,255,251,193,202,255,251,193,204,255,251,193,232,2,252,193,234,2,252,193,236,2,252,193,238,2,252,193,240,2,252,193,242,2,252,193,244,2,252,193,246,2,252,193,248,2,252,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,193,206,255,251,193,208,255,251,193,210,255,251,193,212,255,251,193,214,255,251,193,216,255,251,193,218,255,251,193,220,255,251,193,252,2,252,193,254,2,252,193,2,3,252,193,4,3,252,193,6,3,252,193,8,3,252,193,10,3,252,193,12,3,252,193,14,3,252,193,16,3,252,193,18,3,252,193,20,3,252,193,246,3,252,193,248,3,252,193,140,254,251,193,142,254,251,193,144,254,251,193,146,254,251,193,148,254,251,193,150,254,251,193,152,254,251,193,154,254,251,193,156,254,251,193,158,254,251,193,160,254,251,193,162,254,251,193,164,254,251,193,166,254,251,193,168,254,251,193,170,254,251,193,172,254,251,193,174,254,251,193,176,254,251,193,178,254,251,193,180,254,251,193,182,254,251,193,184,254,251,193,186,254,251,193,188,254,251,193,190,254,251,193,192,254,251,193,194,254,251,193,196,254,251,193,198,254,251,193,200,254,251,193,202,254,251,193,204,254,251,193,206,254,251,193,208,254,251,193,210,254,251,193,212,254,251,193,214,254,251,193,216,254,251,193,218,254,251,193,220,254,251,193,222,254,251,193,224,254,251,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,193,30,255,251,193,32,255,251,193,34,255,251,193,36,255,251,193,38,255,251,193,40,255,251,193,42,255,251,193,44,255,251,193,46,255,251,193,48,255,251,193,50,255,251,193,52,255,251,193,54,255,251,193,56,255,251,193,58,255,251,193,60,255,251,193,62,255,251,193,64,255,251,193,66,255,251,193,68,255,251,193,70,255,251,193,72,255,251,193,74,255,251,193,76,255,251,193,78,255,251,193,80,255,251,193,82,255,251,193,84,255,251,193,86,255,251,193,88,255,251,193,90,255,251,193,92,255,251,193,94,255,251,193,96,255,251,193,138,140,252,193,98,255,251,193,100,255,251,193,102,255,251,193,104,255,251,193,106,255,251,193,108,255,251,193,110,255,251,193,112,255,251,193,114,255,251,193,116,255,251,193,118,255,251,193,120,255,251,193,122,255,251,193,124,255,251,193,126,255,251,193,128,255,251,193,130,255,251,193,132,255,251,193,134,255,251,193,136,255,251,193,138,255,251,193,140,255,251,193,142,255,251,193,144,255,251,193,146,255,251,193,148,255,251,193,150,255,251,193,152,255,251,193,154,255,251,193,156,255,251,193,62,2,252,193,64,2,252,193,66,2,252,193,68,2,252,193,70,2,252,193,72,2,252,193,74,2,252,193,76,2,252,193,78,2,252,193,80,2,252,193,82,2,252,193,84,2,252,193,86,2,252,193,88,2,252,193,90,2,252,193,92,2,252,193,94,2,252,193,96,2,252,193,98,2,252,193,100,2,252,193,102,2,252,193,104,2,252,193,106,2,252,193,108,2,252,193,110,3,252,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,193,164,255,251,193,166,255,251,193,168,255,251,193,170,255,251,193,172,255,251,193,174,255,251,193,176,255,251,193,178,255,251,193,180,255,251,193,216,2,252,193,218,2,252,193,220,2,252,193,222,2,252,193,224,2,252,193,226,2,252,193,228,2,252,193,218,3,252,193,220,3,252,193,222,3,252,193,224,3,252,193,226,3,252,193,228,3,252,193,164,4,252,193,166,4,252,193,168,4,252,193,170,4,252,193,172,4,252,193,62,5,252,193,64,5,252,193,66,5,252,193,68,5,252,193,180,5,252,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,193,72,133,252,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,193,250,2,252,193,230,3,252,193,232,3,252,193,234,3,252,193,236,3,252,193,238,3,252,193,240,3,252,193,242,3,252,193,244,3,252,193,174,4,252,193,176,4,252,193,70,5,252,193,72,5,252,193,74,5,252,193,76,5,252,193,78,5,252,193,186,5,252,193,188,5,252,193,190,5,252,193,192,5,252,193,6,6,252,193,70,6,252,193,72,6,252,193,74,6,252,193,76,6,252,193,138,6,252,193,140,6,252,193,154,6,252,193,178,6,252,193,220,6,252,193,222,6,252,193,16,7,252,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,193,28,4,252,193,30,4,252,193,32,4,252,193,34,4,252,193,84,3,252,193,36,4,252,193,86,3,252,193,38,4,252,193,40,4,252,193,42,4,252,193,44,4,252,193,46,4,252,193,48,4,252,193,50,4,252,193,52,4,252,193,54,4,252,193,96,5,252,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,193,92,3,252,193,94,3,252,193,96,3,252,193,98,3,252,193,100,3,252,193,102,3,252,193,104,3,252,193,106,3,252,193,108,3,252,193,56,4,252,193,58,4,252,193,60,4,252,193,62,4,252,193,64,4,252,193,66,4,252,193,68,4,252,193,70,4,252,193,72,4,252,193,74,4,252,193,76,4,252,193,230,4,252,193,232,4,252,193,78,4,252,193,114,5,252,193,116,5,252,193,208,5,252,193,210,5,252,193,212,5,252,193,214,5,252,193,200,6,252,193,202,6,252,193,232,6,252,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,193,80,4,252,193,82,4,252,193,84,4,252,193,86,4,252,193,88,4,252,193,90,4,252,193,92,4,252,193,94,4,252,193,96,4,252,193,98,4,252,193,100,4,252,193,102,4,252,193,104,4,252,193,216,3,252,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,193,250,3,252,193,252,3,252,193,254,3,252,193,2,4,252,193,4,4,252,193,6,4,252,193,8,4,252,193,10,4,252,193,12,4,252,193,178,4,252,193,180,4,252,193,182,4,252,193,184,4,252,193,186,4,252,193,188,4,252,193,190,4,252,193,192,4,252,193,194,4,252,193,196,4,252,193,198,4,252,193,80,5,252,193,82,5,252,193,84,5,252,193,86,5,252,193,194,5,252,193,196,5,252,193,198,5,252,193,8,6,252,193,10,6,252,193,12,6,252,193,14,6,252,193,16,6,252,193,18,4,252,193,20,4,252,193,22,4,252,193,24,4,252,193,26,4,252,193,88,5,252,193,90,5,252,193,92,5,252,193,94,5,252,193,166,6,252,193,22,7,252,193,24,7,252,193,84,7,252,193,230,7,252,193,232,7,252,193,60,8,252,193,62,8,252,193,64,8,252,193,148,8,252,193,150,8,252,193,152,8,252,193,154,8,252,193,226,8,252,193,228,8,252,193,30,9,252,193,106,9,252,193,220,9,252,193,240,9,252,193,242,9,252,193,52,10,252,193,54,10,252,193,56,10,252,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,193,234,4,252,193,236,4,252,193,238,4,252,193,240,4,252,193,242,4,252,193,244,4,252,193,246,4,252,193,248,4,252,193,250,4,252,193,252,4,252,193,254,4,252,193,2,5,252,193,4,5,252,193,6,5,252,193,8,5,252,193,10,5,252,193,12,5,252,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,193,98,5,252,193,100,5,252,193,102,5,252,193,104,5,252,193,106,5,252,193,108,5,252,193,228,4,252,193,110,5,252,193,112,5,252,193,200,5,252,193,202,5,252,193,204,5,252,193,206,5,252,193,20,6,252,193,22,6,252,193,24,6,252,193,78,6,252,193,80,6,252,193,82,6,252,193,84,6,252,193,86,6,252,193,88,6,252,193,116,6,252,193,118,6,252,193,156,6,252,193,158,6,252,193,14,5,252,193,16,5,252,193,118,5,252,193,18,5,252,193,20,5,252,193,22,5,252,193,24,5,252,193,26,5,252,193,28,5,252,193,30,5,252,193,32,5,252,193,34,5,252,193,36,5,252,193,38,5,252,193,40,5,252,193,42,5,252,193,44,5,252,193,46,5,252,193,48,5,252,193,50,5,252,193,52,5,252,193,54,5,252,193,56,5,252,193,58,5,252,193,60,5,252,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,193,182,5,252,193,184,5,252,193,2,6,252,193,4,6,252,193,66,6,252,193,68,6,252,193,114,6,252,193,152,6,252,193,136,6,252,193,14,7,252,193,76,7,252,193,78,7,252,193,214,7,252,193,216,7,252,193,48,8,252,193,136,8,252,193,138,8,252,193,216,8,252,193,24,9,252,193,144,9,252,193,180,9,252,193,42,10,252,193,120,10,252,193,152,10,252,193,206,10,252,193,254,10,252,193,2,11,252,193,36,11,252,193,70,11,252,193,100,11,252,193,102,11,252,193,128,11,252,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,193,26,6,252,193,28,6,252,193,30,6,252,193,32,6,252,193,34,6,252,193,36,6,252,193,38,6,252,193,40,6,252,193,42,6,252,193,44,6,252,193,46,6,252,193,48,6,252,193,50,6,252,193,52,6,252,193,54,6,252,193,56,6,252,193,58,6,252,193,60,6,252,193,62,6,252,193,90,6,252,193,92,6,252,193,18,6,252,193,142,6,252,193,170,6,252,193,180,6,252,193,196,6,252,193,18,7,252,193,20,7,252,193,154,7,252,193,156,7,252,193,158,7,252,193,160,7,252,193,162,7,252,193,228,7,252,193,54,8,252,193,56,8,252,193,58,8,252,193,144,8,252,193,146,8,252,193,224,8,252,193,26,9,252,193,28,9,252,193,70,9,252,193,72,9,252,193,146,9,252,193,214,9,252,193,216,9,252,193,218,9,252,193,46,10,252,193,48,10,252,193,50,10,252,193,78,10,252,193,80,10,252,193,178,147,252,193,180,147,252,193,182,147,252,193,184,147,252,193,186,147,252,193,188,147,252,193,208,147,252,193,210,147,252,193,212,147,252,193,214,147,252,193,220,147,252,193,222,147,252,193,224,147,252,193,226,147,252,193,228,147,252,193,230,147,252,193,232,147,252,193,234,147,252,193,236,147,252,193,242,147,252,193,64,6,252,193,244,147,252,193,246,147,252,193,252,147,252,193,254,147,252,193,2,148,252,193,4,148,252,193,6,148,252,193,8,148,252,193,10,148,252,193,12,148,252,193,14,148,252,193,188,6,252,193,190,6,252,193,192,6,252,193,224,6,252,193,198,6,252,193,226,6,252,193,228,6,252,193,230,6,252,193,26,7,252,193,28,7,252,193,30,7,252,193,86,7,252,193,88,7,252,193,90,7,252,193,92,7,252,193,94,7,252,193,96,7,252,193,98,7,252,193,164,7,252,193,166,7,252,193,168,7,252,193,170,7,252,193,172,7,252,193,174,7,252,193,176,7,252,193,234,7,252,193,236,7,252,193,238,7,252,193,240,7,252,193,242,7,252,193,244,7,252,193,246,7,252,193,194,6,252,193,204,6,252,193,206,6,252,193,208,6,252,193,210,6,252,193,212,6,252,193,214,6,252,193,216,6,252,193,218,6,252,193,240,6,252,193,242,6,252,193,244,6,252,193,246,6,252,193,248,6,252,193,250,6,252,193,252,6,252,193,254,6,252,193,2,7,252,193,4,7,252,193,6,7,252,193,8,7,252,193,10,7,252,193,12,7,252,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,193,234,6,252,193,236,6,252,193,238,6,252,193,32,7,252,193,34,7,252,193,36,7,252,193,38,7,252,193,40,7,252,193,42,7,252,193,100,7,252,193,102,7,252,193,104,7,252,193,106,7,252,193,108,7,252,193,178,7,252,193,180,7,252,193,182,7,252,193,184,7,252,193,248,7,252,193,250,7,252,193,252,7,252,193,254,7,252,193,2,8,252,193,148,12,252,193,4,8,252,193,84,8,252,193,86,8,252,193,88,8,252,193,90,8,252,193,92,8,252,193,94,8,252,193,166,8,252,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,193,112,7,252,193,114,7,252,193,116,7,252,193,118,7,252,193,120,7,252,193,122,7,252,193,124,7,252,193,126,7,252,193,128,7,252,193,130,7,252,193,132,7,252,193,134,7,252,193,136,7,252,193,138,7,252,193,140,7,252,193,142,7,252,193,144,7,252,193,146,7,252,193,148,7,252,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,193,80,7,252,193,82,7,252,193,150,7,252,193,152,7,252,193,218,7,252,193,220,7,252,193,222,7,252,193,224,7,252,193,226,7,252,193,50,8,252,193,52,8,252,193,140,8,252,193,142,8,252,193,218,8,252,193,220,8,252,193,222,8,252,193,66,9,252,193,68,9,252,193,104,9,252,193,120,9,252,193,156,9,252,193,176,9,252,193,210,9,252,193,212,9,252,193,238,9,252,193,44,10,252,193,74,10,252,193,76,10,252,193,122,10,252,193,124,10,252,193,154,10,252,193,156,10,252,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,193,6,8,252,193,8,8,252,193,10,8,252,193,12,8,252,193,14,8,252,193,16,8,252,193,18,8,252,193,20,8,252,193,22,8,252,193,24,8,252,193,26,8,252,193,28,8,252,193,30,8,252,193,32,8,252,193,34,8,252,193,36,8,252,193,38,8,252,193,40,8,252,193,42,8,252,193,44,8,252,193,46,8,252,193,96,8,252,193,98,8,252,193,100,8,252,193,66,8,252,193,68,8,252,193,70,8,252,193,72,8,252,193,74,8,252,193,76,8,252,193,78,8,252,193,80,8,252,193,82,8,252,193,156,8,252,193,158,8,252,193,160,8,252,193,162,8,252,193,164,8,252,193,230,8,252,193,232,8,252,193,234,8,252,193,236,8,252,193,238,8,252,193,240,8,252,193,32,9,252,193,34,9,252,193,36,9,252,193,38,9,252,193,40,9,252,193,42,9,252,193,44,9,252,193,74,9,252,193,76,9,252,193,78,9,252,193,108,9,252,193,110,9,252,193,102,8,252,193,104,8,252,193,106,8,252,193,108,8,252,193,110,8,252,193,112,8,252,193,114,8,252,193,116,8,252,193,118,8,252,193,120,8,252,193,122,8,252,193,124,8,252,193,30,50,253,193,126,8,252,193,128,8,252,193,130,8,252,193,132,8,252,193,134,8,252,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,193,168,8,252,193,170,8,252,193,242,8,252,193,244,8,252,193,46,9,252,193,48,9,252,193,80,9,252,193,82,9,252,193,84,9,252,193,86,9,252,193,124,9,252,193,136,9,252,193,160,9,252,193,172,9,252,193,182,9,252,193,204,9,252,193,224,9,252,193,226,9,252,193,62,10,252,193,64,10,252,193,66,10,252,193,174,10,252,193,176,10,252,193,26,11,252,193,140,11,252,193,204,11,252,193,10,12,252,193,12,12,252,193,14,12,252,193,16,12,252,193,78,12,252,193,80,12,252,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,193,246,8,252,193,248,8,252,193,250,8,252,193,252,8,252,193,254,8,252,193,2,9,252,193,4,9,252,193,6,9,252,193,8,9,252,193,10,9,252,193,12,9,252,193,14,9,252,193,16,9,252,193,18,9,252,193,20,9,252,193,22,9,252,193,50,9,252,193,52,9,252,193,54,9,252,193,56,9,252,193,58,9,252,193,60,9,252,193,62,9,252,193,64,9,252,193,88,9,252,193,90,9,252,193,92,9,252,193,94,9,252,193,96,9,252,193,98,9,252,193,100,9,252,193,102,9,252,193,112,9,252,193,114,9,252,193,116,9,252,193,118,9,252,193,126,9,252,193,128,9,252,193,130,9,252,193,132,9,252,193,134,9,252,193,138,9,252,193,140,9,252,193,142,9,252,193,148,9,252,193,150,9,252,193,162,9,252,193,152,9,252,193,154,9,252,193,164,9,252,193,166,9,252,193,168,9,252,193,170,9,252,193,174,9,252,193,178,9,252,193,184,9,252,193,122,9,252,193,158,9,252,193,190,9,252,193,196,9,252,193,202,9,252,193,222,9,252,193,244,9,252,193,246,9,252,193,248,9,252,193,250,9,252,193,58,10,252,193,60,10,252,193,92,10,252,193,94,10,252,193,170,10,252,193,172,10,252,193,230,10,252,193,232,10,252,193,234,10,252,193,236,10,252,193,24,11,252,193,50,11,252,193,52,11,252,193,88,11,252,193,138,11,252,193,192,11,252,193,198,11,252,193,202,11,252,193,226,11,252,193,254,11,252,193,2,12,252,193,4,12,252,193,186,9,252,193,188,9,252,193,194,9,252,193,198,9,252,193,200,9,252,193,206,9,252,193,208,9,252,193,228,9,252,193,230,9,252,193,252,9,252,193,232,9,252,193,234,9,252,193,236,9,252,193,254,9,252,193,2,10,252,193,4,10,252,193,6,10,252,193,8,10,252,193,10,10,252,193,12,10,252,193,14,10,252,193,16,10,252,193,18,10,252,193,20,10,252,193,22,10,252,193,24,10,252,193,26,10,252,193,28,10,252,193,30,10,252,193,32,10,252,193,34,10,252,193,36,10,252,193,82,10,252,193,126,10,252,193,160,10,252,193,162,10,252,193,164,10,252,193,166,10,252,193,214,10,252,193,216,10,252,193,218,10,252,193,220,10,252,193,10,11,252,193,12,11,252,193,42,11,252,193,44,11,252,193,76,11,252,193,78,11,252,193,80,11,252,193,82,11,252,193,108,11,252,193,110,11,252,193,112,11,252,193,134,11,252,193,136,11,252,193,156,11,252,193,168,11,252,193,170,11,252,193,172,11,252,193,174,11,252,193,190,11,252,193,220,11,252,193,222,11,252,193,224,11,252,193,84,10,252,193,86,10,252,193,88,10,252,193,90,10,252,193,128,10,252,193,130,10,252,193,132,10,252,193,134,10,252,193,136,10,252,193,138,10,252,193,168,10,252,193,222,10,252,193,224,10,252,193,226,10,252,193,228,10,252,193,14,11,252,193,16,11,252,193,18,11,252,193,20,11,252,193,22,11,252,193,46,11,252,193,48,11,252,193,84,11,252,193,86,11,252,193,114,11,252,193,116,11,252,193,164,11,252,193,176,11,252,193,252,11,252,193,218,12,252,193,220,12,252,193,38,13,252,193,158,10,252,193,208,10,252,193,210,10,252,193,212,10,252,193,6,11,252,193,8,11,252,193,38,11,252,193,40,11,252,193,72,11,252,193,74,11,252,193,104,11,252,193,106,11,252,193,130,11,252,193,132,11,252,193,154,11,252,193,160,11,252,193,162,11,252,193,130,12,252,193,132,12,252,193,194,12,252,193,196,12,252,193,198,12,252,193,24,13,252,193,26,13,252,193,124,13,252,193,126,13,252,193,128,13,252,193,186,13,252,193,140,14,252,193,154,14,252,193,178,14,252,193,190,14,252,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,193,126,70,252,193,128,70,252,193,130,70,252,193,132,70,252,193,134,70,252,193,136,70,252,193,138,70,252,193,140,70,252,193,142,70,252,193,144,70,252,193,146,70,252,193,148,70,252,193,150,70,252,193,152,70,252,193,154,70,252,193,252,10,252,193,156,70,252,193,158,70,252,193,160,70,252,193,230,11,252,193,232,11,252,193,234,11,252,193,236,11,252,193,238,11,252,193,240,11,252,193,242,11,252,193,244,11,252,193,246,11,252,193,18,12,252,193,20,12,252,193,22,12,252,193,24,12,252,193,26,12,252,193,28,12,252,193,30,12,252,193,32,12,252,193,34,12,252,193,36,12,252,193,38,12,252,193,40,12,252,193,42,12,252,193,44,12,252,193,46,12,252,193,48,12,252,193,50,12,252,193,52,12,252,193,54,12,252,193,56,12,252,193,84,12,252,193,86,12,252,193,88,12,252,193,248,11,252,193,250,11,252,193,58,12,252,193,60,12,252,193,62,12,252,193,64,12,252,193,134,12,252,193,136,12,252,193,138,12,252,193,200,12,252,193,202,12,252,193,204,12,252,193,206,12,252,193,208,12,252,193,210,12,252,193,212,12,252,193,214,12,252,193,216,12,252,193,28,13,252,193,30,13,252,193,32,13,252,193,34,13,252,193,36,13,252,193,130,13,252,193,132,13,252,193,188,13,252,193,190,13,252,193,192,13,252,193,232,13,252,193,28,14,252,193,30,14,252,193,72,14,252,193,6,12,252,193,8,12,252,193,66,12,252,193,68,12,252,193,70,12,252,193,72,12,252,193,74,12,252,193,76,12,252,193,140,12,252,193,142,12,252,193,144,12,252,193,146,12,252,193,222,12,252,193,224,12,252,193,226,12,252,193,228,12,252,193,230,12,252,193,232,12,252,193,234,12,252,193,236,12,252,193,42,13,252,193,44,13,252,193,46,13,252,193,48,13,252,193,50,13,252,193,52,13,252,193,54,13,252,193,134,13,252,193,136,13,252,193,194,13,252,193,196,13,252,193,198,13,252,193,82,12,252,193,150,12,252,193,238,12,252,193,240,12,252,193,56,13,252,193,58,13,252,193,60,13,252,193,62,13,252,193,64,13,252,193,66,13,252,193,138,13,252,193,140,13,252,193,142,13,252,193,144,13,252,193,146,13,252,193,204,13,252,193,206,13,252,193,208,13,252,193,210,13,252,193,244,13,252,193,246,13,252,193,44,14,252,193,46,14,252,193,48,14,252,193,88,14,252,193,144,14,252,193,146,14,252,193,166,14,252,193,176,14,252,193,182,14,252,193,212,14,252,193,214,14,252,193,90,12,252,193,92,12,252,193,94,12,252,193,96,12,252,193,98,12,252,193,100,12,252,193,102,12,252,193,104,12,252,193,106,12,252,193,108,12,252,193,110,12,252,193,112,12,252,193,114,12,252,193,116,12,252,193,118,12,252,193,120,12,252,193,122,12,252,193,124,12,252,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,193,242,12,252,193,244,12,252,193,246,12,252,193,248,12,252,193,250,12,252,193,252,12,252,193,254,12,252,193,2,13,252,193,4,13,252,193,6,13,252,193,8,13,252,193,10,13,252,193,12,13,252,193,14,13,252,193,16,13,252,193,18,13,252,193,20,13,252,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,193,40,13,252,193,32,14,252,193,156,14,252,193,134,15,252,193,136,15,252,193,138,15,252,193,198,15,252,193,200,15,252,193,2,16,252,193,22,16,252,193,60,16,252,193,230,16,252,193,242,16,252,193,62,17,252,193,120,17,252,193,122,17,252,193,124,17,252,193,126,17,252,193,222,17,252,193,224,17,252,193,226,17,252,193,228,17,252,193,44,18,252,193,46,18,252,193,122,18,252,193,124,18,252,193,126,18,252,193,128,18,252,193,130,18,252,193,132,18,252,193,232,18,252,193,234,18,252,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,193,212,13,252,193,214,13,252,193,216,13,252,193,218,13,252,193,220,13,252,193,222,13,252,193,224,13,252,193,226,13,252,193,228,13,252,193,248,13,252,193,250,13,252,193,252,13,252,193,254,13,252,193,2,14,252,193,4,14,252,193,6,14,252,193,8,14,252,193,10,14,252,193,12,14,252,193,14,14,252,193,16,14,252,193,18,14,252,193,20,14,252,193,22,14,252,193,24,14,252,193,50,14,252,193,52,14,252,193,54,14,252,193,200,13,252,193,202,13,252,193,234,13,252,193,236,13,252,193,238,13,252,193,240,13,252,193,242,13,252,193,34,14,252,193,36,14,252,193,38,14,252,193,40,14,252,193,42,14,252,193,82,14,252,193,84,14,252,193,86,14,252,193,106,14,252,193,132,14,252,193,134,14,252,193,158,14,252,193,174,14,252,193,180,14,252,193,196,14,252,193,198,14,252,193,210,14,252,193,240,14,252,193,242,14,252,193,244,14,252,193,246,14,252,193,40,15,252,193,42,15,252,193,82,15,252,193,84,15,252,193,56,14,252,193,58,14,252,193,60,14,252,193,62,14,252,193,64,14,252,193,66,14,252,193,68,14,252,193,70,14,252,193,90,14,252,193,92,14,252,193,94,14,252,193,96,14,252,193,98,14,252,193,100,14,252,193,102,14,252,193,108,14,252,193,110,14,252,193,112,14,252,193,114,14,252,193,116,14,252,193,118,14,252,193,120,14,252,193,122,14,252,193,136,14,252,193,138,14,252,193,148,14,252,193,150,14,252,193,152,14,252,193,160,14,252,193,162,14,252,193,164,14,252,193,168,14,252,193,74,14,252,193,76,14,252,193,78,14,252,193,80,14,252,193,124,14,252,193,126,14,252,193,128,14,252,193,130,14,252,193,194,14,252,193,230,14,252,193,232,14,252,193,234,14,252,193,236,14,252,193,238,14,252,193,32,15,252,193,34,15,252,193,36,15,252,193,38,15,252,193,72,15,252,193,74,15,252,193,76,15,252,193,78,15,252,193,80,15,252,193,130,15,252,193,132,15,252,193,164,15,252,193,166,15,252,193,168,15,252,193,194,15,252,193,196,15,252,193,248,15,252,193,250,15,252,193,170,14,252,193,172,14,252,193,184,14,252,193,186,14,252,193,188,14,252,193,200,14,252,193,202,14,252,193,204,14,252,193,216,14,252,193,218,14,252,193,220,14,252,193,250,14,252,193,252,14,252,193,254,14,252,193,2,15,252,193,4,15,252,193,6,15,252,193,8,15,252,193,10,15,252,193,12,15,252,193,14,15,252,193,16,15,252,193,18,15,252,193,20,15,252,193,22,15,252,193,50,15,252,193,52,15,252,193,54,15,252,193,56,15,252,193,58,15,252,193,60,15,252,193,62,15,252,193,192,14,252,193,206,14,252,193,208,14,252,193,226,14,252,193,228,14,252,193,26,15,252,193,28,15,252,193,30,15,252,193,70,15,252,193,122,15,252,193,124,15,252,193,126,15,252,193,128,15,252,193,162,15,252,193,188,15,252,193,190,15,252,193,192,15,252,193,246,15,252,193,18,16,252,193,20,16,252,193,72,16,252,193,102,16,252,193,136,16,252,193,152,16,252,193,174,16,252,193,232,16,252,193,240,16,252,193,12,17,252,193,60,17,252,193,112,17,252,193,114,17,252,193,116,17,252,193,248,14,252,193,44,15,252,193,46,15,252,193,48,15,252,193,92,15,252,193,144,15,252,193,206,15,252,193,208,15,252,193,210,15,252,193,4,16,252,193,24,16,252,193,204,16,252,193,28,17,252,193,68,17,252,193,70,17,252,193,72,17,252,193,74,17,252,193,76,17,252,193,132,17,252,193,248,17,252,193,56,18,252,193,58,18,252,193,60,18,252,193,62,18,252,193,64,18,252,193,66,18,252,193,68,18,252,193,150,18,252,193,152,18,252,193,154,18,252,193,156,18,252,193,4,19,252,193,86,15,252,193,88,15,252,193,90,15,252,193,140,15,252,193,142,15,252,193,170,15,252,193,172,15,252,193,202,15,252,193,204,15,252,193,44,16,252,193,74,16,252,193,104,16,252,193,106,16,252,193,110,16,252,193,112,16,252,193,118,16,252,193,120,16,252,193,124,16,252,193,126,16,252,193,154,16,252,193,180,16,252,193,182,16,252,193,198,16,252,193,200,16,252,193,202,16,252,193,208,16,252,193,6,17,252,193,22,17,252,193,40,17,252,193,42,17,252,193,64,17,252,193,66,17,252,193,94,15,252,193,96,15,252,193,98,15,252,193,100,15,252,193,102,15,252,193,104,15,252,193,106,15,252,193,108,15,252,193,110,15,252,193,112,15,252,193,114,15,252,193,116,15,252,193,118,15,252,193,152,117,252,193,146,15,252,193,148,15,252,193,150,15,252,193,152,15,252,193,154,15,252,193,156,15,252,193,158,15,252,193,160,15,252,193,174,15,252,193,176,15,252,193,178,15,252,193,180,15,252,193,182,15,252,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,193,4,71,252,193,6,71,252,193,8,71,252,193,10,71,252,193,12,71,252,193,14,71,252,193,16,71,252,193,18,71,252,193,20,71,252,193,22,71,252,193,60,71,252,193,62,71,252,193,64,71,252,193,66,71,252,193,68,71,252,193,70,71,252,193,72,71,252,193,74,71,252,193,76,71,252,193,78,71,252,193,80,71,252,193,82,71,252,193,84,71,252,193,184,15,252,193,86,71,252,193,88,71,252,193,90,71,252,193,92,71,252,193,94,71,252,193,96,71,252,193,98,71,252,193,100,71,252,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,193,6,16,252,193,8,16,252,193,10,16,252,193,12,16,252,193,26,16,252,193,28,16,252,193,30,16,252,193,32,16,252,193,34,16,252,193,36,16,252,193,38,16,252,193,40,16,252,193,46,16,252,193,48,16,252,193,50,16,252,193,52,16,252,193,54,16,252,193,56,16,252,193,62,16,252,193,64,16,252,193,252,15,252,193,254,15,252,193,42,16,252,193,58,16,252,193,66,16,252,193,90,16,252,193,96,16,252,193,116,16,252,193,138,16,252,193,166,16,252,193,206,16,252,193,216,16,252,193,218,16,252,193,220,16,252,193,222,16,252,193,228,16,252,193,234,16,252,193,236,16,252,193,118,17,252,193,212,17,252,193,214,17,252,193,216,17,252,193,218,17,252,193,220,17,252,193,42,18,252,193,118,18,252,193,120,18,252,193,226,18,252,193,228,18,252,193,230,18,252,193,76,19,252,193,78,19,252,193,68,16,252,193,70,16,252,193,76,16,252,193,78,16,252,193,80,16,252,193,82,16,252,193,84,16,252,193,86,16,252,193,88,16,252,193,92,16,252,193,98,16,252,193,100,16,252,193,108,16,252,193,114,16,252,193,122,16,252,193,128,16,252,193,130,16,252,193,132,16,252,193,134,16,252,193,140,16,252,193,142,16,252,193,144,16,252,193,146,16,252,193,148,16,252,193,150,16,252,193,156,16,252,193,158,16,252,193,160,16,252,193,162,16,252,193,168,16,252,193,170,16,252,193,172,16,252,193,176,16,252,193,178,16,252,193,186,16,252,193,188,16,252,193,190,16,252,193,192,16,252,193,194,16,252,193,196,16,252,193,210,16,252,193,212,16,252,193,214,16,252,193,224,16,252,193,226,16,252,193,238,16,252,193,244,16,252,193,246,16,252,193,248,16,252,193,250,16,252,193,254,16,252,193,2,17,252,193,4,17,252,193,8,17,252,193,10,17,252,193,14,17,252,193,16,17,252,193,18,17,252,193,20,17,252,193,24,17,252,193,30,17,252,193,32,17,252,193,34,17,252,193,36,17,252,193,38,17,252,193,44,17,252,193,46,17,252,193,48,17,252,193,50,17,252,193,52,17,252,193,54,17,252,193,56,17,252,193,58,17,252,193,78,17,252,193,80,17,252,193,82,17,252,193,84,17,252,193,86,17,252,193,88,17,252,193,90,17,252,193,92,17,252,193,94,17,252,193,96,17,252,193,98,17,252,193,100,17,252,193,102,17,252,193,104,17,252,193,106,17,252,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,193,128,17,252,193,130,17,252,193,230,17,252,193,232,17,252,193,234,17,252,193,236,17,252,193,238,17,252,193,240,17,252,193,242,17,252,193,244,17,252,193,246,17,252,193,48,18,252,193,50,18,252,193,52,18,252,193,54,18,252,193,134,18,252,193,136,18,252,193,138,18,252,193,140,18,252,193,142,18,252,193,144,18,252,193,146,18,252,193,148,18,252,193,244,18,252,193,246,18,252,193,248,18,252,193,250,18,252,193,252,18,252,193,254,18,252,193,2,19,252,193,86,19,252,193,188,19,252,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,193,210,17,252,193,116,18,252,193,74,19,252,193,162,19,252,193,164,19,252,193,240,19,252,193,50,20,252,193,98,20,252,193,150,20,252,193,250,20,252,193,4,21,252,193,6,21,252,193,18,21,252,193,24,21,252,193,42,21,252,193,94,21,252,193,124,21,252,193,146,21,252,193,200,21,252,193,220,21,252,193,162,22,252,193,164,22,252,193,166,22,252,193,168,22,252,193,172,23,252,193,174,23,252,193,176,23,252,193,244,24,252,193,246,24,252,193,248,24,252,193,250,24,252,193,252,24,252,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,193,236,18,252,193,238,18,252,193,240,18,252,193,242,18,252,193,80,19,252,193,82,19,252,193,84,19,252,193,172,19,252,193,174,19,252,193,176,19,252,193,178,19,252,193,180,19,252,193,182,19,252,193,184,19,252,193,186,19,252,193,242,19,252,193,244,19,252,193,246,19,252,193,58,20,252,193,154,20,252,193,156,20,252,193,176,20,252,193,214,20,252,193,248,20,252,193,20,21,252,193,26,21,252,193,48,21,252,193,68,21,252,193,98,21,252,193,100,21,252,193,126,21,252,193,128,21,252,193,6,19,252,193,8,19,252,193,10,19,252,193,12,19,252,193,88,19,252,193,90,19,252,193,92,19,252,193,94,19,252,193,96,19,252,193,98,19,252,193,4,20,252,193,6,20,252,193,8,20,252,193,10,20,252,193,12,20,252,193,110,20,252,193,112,20,252,193,160,20,252,193,226,20,252,193,22,21,252,193,84,21,252,193,156,21,252,193,202,21,252,193,210,21,252,193,250,21,252,193,34,22,252,193,36,22,252,193,38,22,252,193,40,22,252,193,120,22,252,193,122,22,252,193,124,22,252,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,193,100,19,252,193,102,19,252,193,104,19,252,193,106,19,252,193,108,19,252,193,110,19,252,193,112,19,252,193,114,19,252,193,116,19,252,193,118,19,252,193,120,19,252,193,122,19,252,193,124,19,252,193,126,19,252,193,128,19,252,193,130,19,252,193,132,19,252,193,134,19,252,193,136,19,252,193,138,19,252,193,140,19,252,193,142,19,252,193,144,19,252,193,146,19,252,193,148,19,252,193,150,19,252,193,152,19,252,193,154,19,252,193,156,19,252,193,158,19,252,193,196,19,252,193,198,19,252,193,200,19,252,193,202,19,252,193,204,19,252,193,206,19,252,193,208,19,252,193,210,19,252,193,212,19,252,193,214,19,252,193,216,19,252,193,218,19,252,193,220,19,252,193,222,19,252,193,224,19,252,193,226,19,252,193,228,19,252,193,230,19,252,193,232,19,252,193,234,19,252,193,236,19,252,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,193,160,19,252,193,238,19,252,193,148,20,252,193,92,21,252,193,122,21,252,193,160,21,252,193,190,21,252,193,198,21,252,193,64,22,252,193,154,22,252,193,156,22,252,193,158,22,252,193,160,22,252,193,164,23,252,193,166,23,252,193,168,23,252,193,170,23,252,193,232,24,252,193,234,24,252,193,236,24,252,193,238,24,252,193,240,24,252,193,242,24,252,193,116,26,252,193,118,26,252,193,120,26,252,193,122,26,252,193,124,26,252,193,126,26,252,193,128,26,252,193,66,28,252,193,68,28,252,193,166,19,252,193,168,19,252,193,170,19,252,193,52,20,252,193,54,20,252,193,56,20,252,193,100,20,252,193,102,20,252,193,104,20,252,193,106,20,252,193,152,20,252,193,174,20,252,193,190,20,252,193,212,20,252,193,222,20,252,193,232,20,252,193,8,21,252,193,36,21,252,193,96,21,252,193,208,21,252,193,212,21,252,193,224,21,252,193,170,22,252,193,172,22,252,193,178,23,252,193,180,23,252,193,182,23,252,193,184,23,252,193,186,23,252,193,254,24,252,193,2,25,252,193,4,25,252,193,190,19,252,193,192,19,252,193,194,19,252,193,248,19,252,193,250,19,252,193,252,19,252,193,254,19,252,193,2,20,252,193,60,20,252,193,62,20,252,193,64,20,252,193,108,20,252,193,158,20,252,193,202,20,252,193,224,20,252,193,236,20,252,193,238,20,252,193,240,20,252,193,244,20,252,193,252,20,252,193,54,21,252,193,56,21,252,193,58,21,252,193,60,21,252,193,62,21,252,193,70,21,252,193,72,21,252,193,78,21,252,193,80,21,252,193,82,21,252,193,102,21,252,193,104,21,252,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,193,66,20,252,193,68,20,252,193,70,20,252,193,72,20,252,193,74,20,252,193,76,20,252,193,78,20,252,193,80,20,252,193,82,20,252,193,84,20,252,193,86,20,252,193,88,20,252,193,90,20,252,193,92,20,252,193,94,20,252,193,96,20,252,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,193,162,20,252,193,164,20,252,193,166,20,252,193,168,20,252,193,170,20,252,193,172,20,252,193,180,20,252,193,182,20,252,193,184,20,252,193,186,20,252,193,188,20,252,193,192,20,252,193,194,20,252,193,196,20,252,193,198,20,252,193,200,20,252,193,204,20,252,193,206,20,252,193,208,20,252,193,210,20,252,193,216,20,252,193,218,20,252,193,220,20,252,193,228,20,252,193,230,20,252,193,234,20,252,193,254,20,252,193,2,21,252,193,10,21,252,193,12,21,252,193,14,21,252,193,16,21,252,193,28,21,252,193,30,21,252,193,32,21,252,193,34,21,252,193,38,21,252,193,40,21,252,193,44,21,252,193,46,21,252,193,50,21,252,193,52,21,252,193,64,21,252,193,66,21,252,193,74,21,252,193,76,21,252,193,86,21,252,193,88,21,252,193,90,21,252,193,112,21,252,193,114,21,252,193,116,21,252,193,118,21,252,193,120,21,252,193,144,21,252,193,174,21,252,193,158,21,252,193,176,21,252,193,178,21,252,193,184,21,252,193,186,21,252,193,188,21,252,193,196,21,252,193,204,21,252,193,206,21,252,193,216,21,252,193,218,21,252,193,222,21,252,193,226,21,252,193,228,21,252,193,236,21,252,193,252,21,252,193,254,21,252,193,2,22,252,193,42,22,252,193,44,22,252,193,46,22,252,193,48,22,252,193,50,22,252,193,52,22,252,193,54,22,252,193,56,22,252,193,58,22,252,193,60,22,252,193,62,22,252,193,148,21,252,193,150,21,252,193,162,21,252,193,180,21,252,193,238,21,252,193,240,21,252,193,4,22,252,193,174,22,252,193,176,22,252,193,178,22,252,193,180,22,252,193,182,22,252,193,188,23,252,193,190,23,252,193,192,23,252,193,194,23,252,193,196,23,252,193,198,23,252,193,30,25,252,193,32,25,252,193,34,25,252,193,36,25,252,193,38,25,252,193,40,25,252,193,42,25,252,193,44,25,252,193,46,25,252,193,48,25,252,193,50,25,252,193,52,25,252,193,166,26,252,193,168,26,252,193,14,22,252,193,16,22,252,193,18,22,252,193,20,22,252,193,22,22,252,193,24,22,252,193,26,22,252,193,28,22,252,193,30,22,252,193,32,22,252,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,193,126,22,252,193,128,22,252,193,130,22,252,193,132,22,252,193,134,22,252,193,136,22,252,193,138,22,252,193,140,22,252,193,142,22,252,193,144,22,252,193,146,22,252,193,148,22,252,193,150,22,252,193,152,22,252,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,193,70,23,252,193,72,23,252,193,74,23,252,193,76,23,252,193,78,23,252,193,80,23,252,193,82,23,252,193,84,23,252,193,86,23,252,193,88,23,252,193,90,23,252,193,110,24,252,193,112,24,252,193,114,24,252,193,116,24,252,193,118,24,252,193,120,24,252,193,122,24,252,193,124,24,252,193,126,24,252,193,128,24,252,193,130,24,252,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,193,54,25,252,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,193,226,125,252,193,92,24,252,193,94,24,252,193,96,24,252,193,98,24,252,193,100,24,252,193,102,24,252,193,104,24,252,193,106,24,252,193,108,24,252,193,56,25,252,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,193,6,25,252,193,8,25,252,193,10,25,252,193,12,25,252,193,14,25,252,193,16,25,252,193,18,25,252,193,20,25,252,193,22,25,252,193,24,25,252,193,26,25,252,193,28,25,252,193,144,26,252,193,146,26,252,193,148,26,252,193,150,26,252,193,152,26,252,193,154,26,252,193,156,26,252,193,158,26,252,193,160,26,252,193,162,26,252,193,164,26,252,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,193,58,25,252,193,60,25,252,193,62,25,252,193,64,25,252,193,66,25,252,193,68,25,252,193,70,25,252,193,72,25,252,193,74,25,252,193,76,25,252,193,78,25,252,193,80,25,252,193,82,25,252,193,192,26,252,193,84,25,252,193,86,25,252,193,88,25,252,193,90,25,252,193,92,25,252,193,94,25,252,193,96,25,252,193,98,25,252,193,194,26,252,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,193,108,27,252,193,110,27,252,193,112,27,252,193,114,27,252,193,116,27,252,193,118,27,252,193,120,27,252,193,122,27,252,193,124,27,252,193,126,27,252,193,128,27,252,193,130,27,252,193,132,27,252,193,134,27,252,193,136,27,252,193,138,27,252,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,192,43,0,206,192,43,0,193,130,26,252,193,132,26,252,193,134,26,252,193,136,26,252,193,138,26,252,193,140,26,252,193,142,26,252,193,96,28,252,193,98,28,252,193,100,28,252,193,102,28,252,193,104,28,252,193,106,28,252,193,108,28,252,193,110,28,252,193,112,28,252,193,114,28,252,193,116,28,252,193,118,28,252,193,120,28,252,193,122,28,252,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,193,170,26,252,193,172,26,252,193,174,26,252,193,176,26,252,193,178,26,252,193,180,26,252,193,182,26,252,193,184,26,252,193,186,26,252,193,188,26,252,193,190,26,252,193,158,28,252,193,160,28,252,193,162,28,252,193,164,28,252,193,166,28,252,193,168,28,252,193,170,28,252,193,172,28,252,193,174,28,252,193,176,28,252,193,178,28,252,193,180,28,252,193,182,28,252,193,184,28,252,193,186,28,252,193,188,28,252,193,190,28,252,193,192,28,252,193,86,31,252,193,88,31,252,193,90,31,252,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,193,194,28,252,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,193,64,28,252,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,193,70,28,252,193,72,28,252,193,74,28,252,193,76,28,252,193,78,28,252,193,80,28,252,193,82,28,252,193,84,28,252,193,86,28,252,193,88,28,252,193,90,28,252,193,92,28,252,193,230,30,252,193,232,30,252,193,234,30,252,193,236,30,252,193,238,30,252,193,240,30,252,193,242,30,252,193,244,30,252,193,246,30,252,193,248,30,252,193,250,30,252,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,193,32,31,252,193,34,31,252,193,36,31,252,193,38,31,252,193,40,31,252,193,42,31,252,193,44,31,252,193,46,31,252,193,48,31,252,193,50,31,252,193,52,31,252,193,54,31,252,193,56,31,252,193,58,31,252,193,60,31,252,193,62,31,252,193,64,31,252,193,66,31,252,193,68,31,252,193,70,31,252,193,72,31,252,193,74,31,252,193,76,31,252,193,78,31,252,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,193,116,31,252,193,120,29,252,193,122,29,252,193,124,29,252,193,126,29,252,193,128,29,252,193,130,29,252,193,132,29,252,193,134,29,252,193,136,29,252,193,138,29,252,193,140,29,252,193,142,29,252,193,144,29,252,193,146,29,252,193,148,29,252,193,150,29,252,193,152,29,252,193,154,29,252,193,156,29,252,193,158,29,252,193,118,31,252,193,120,31,252,193,160,29,252,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,193,162,29,252,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,193,228,30,252,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,193,120,33,252,193,122,33,252,193,124,33,252,193,126,33,252,193,128,33,252,193,130,33,252,193,132,33,252,193,134,33,252,193,136,33,252,193,138,33,252,193,140,33,252,193,142,33,252,193,144,33,252,193,146,33,252,193,148,33,252,193,150,33,252,193,152,33,252,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,193,80,31,252,193,82,31,252,193,84,31,252,193,154,33,252,193,156,33,252,193,158,33,252,193,160,33,252,193,162,33,252,193,164,33,252,193,166,33,252,193,168,33,252,193,170,33,252,193,172,33,252,193,174,33,252,193,176,33,252,193,178,33,252,193,180,33,252,193,182,33,252,193,184,33,252,193,186,33,252,193,188,33,252,193,190,33,252,193,192,33,252,193,194,33,252,193,196,33,252,193,198,33,252,193,200,33,252,193,202,33,252,193,204,33,252,193,206,33,252,193,208,33,252,193,210,33,252,193,92,31,252,193,94,31,252,193,96,31,252,193,98,31,252,193,100,31,252,193,102,31,252,193,104,31,252,193,106,31,252,193,108,31,252,193,110,31,252,193,112,31,252,193,114,31,252,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,193,94,32,252,193,100,36,252,193,136,34,252,193,138,34,252,193,140,34,252,193,142,34,252,193,144,34,252,193,146,34,252,193,148,34,252,193,150,34,252,193,152,34,252,193,154,34,252,193,156,34,252,193,158,34,252,193,160,34,252,193,102,36,252,193,162,34,252,193,164,34,252,193,166,34,252,193,96,32,252,193,168,34,252,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,193,194,34,252,193,196,34,252,193,198,34,252,193,200,34,252,193,202,34,252,193,204,34,252,193,206,34,252,193,208,34,252,193,210,34,252,193,212,34,252,193,214,34,252,193,216,34,252,193,218,34,252,193,220,34,252,193,222,34,252,193,224,34,252,193,226,34,252,193,228,34,252,193,230,34,252,193,232,34,252,193,234,34,252,193,236,34,252,193,238,34,252,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,193,212,35,252,193,214,35,252,193,216,35,252,193,218,35,252,193,220,35,252,193,222,35,252,193,224,35,252,193,226,35,252,193,228,35,252,193,230,35,252,193,232,35,252,193,234,35,252,193,236,35,252,193,238,35,252,193,240,35,252,193,242,35,252,193,244,35,252,193,246,35,252,193,248,35,252,193,250,35,252,193,252,35,252,193,48,38,252,193,212,33,252,193,214,33,252,193,36,36,252,193,38,36,252,193,40,36,252,193,42,36,252,193,44,36,252,193,46,36,252,193,48,36,252,193,50,36,252,193,52,36,252,193,54,36,252,193,56,36,252,193,58,36,252,193,60,36,252,193,62,36,252,193,64,36,252,193,66,36,252,193,68,36,252,193,70,36,252,193,72,36,252,193,74,36,252,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,193,76,36,252,193,78,36,252,193,80,36,252,193,82,36,252,193,84,36,252,193,86,36,252,193,88,36,252,193,90,36,252,193,92,36,252,193,94,36,252,193,96,36,252,193,98,36,252,193,154,38,252,193,156,38,252,193,158,38,252,193,160,38,252,193,162,38,252,193,164,38,252,193,166,38,252,193,168,38,252,193,170,38,252,193,172,38,252,193,174,38,252,193,176,38,252,193,178,38,252,193,180,38,252,193,182,38,252,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,193,170,34,252,193,172,34,252,193,174,34,252,193,176,34,252,193,178,34,252,193,180,34,252,193,182,34,252,193,184,34,252,193,186,34,252,193,188,34,252,193,190,34,252,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,193,190,38,252,193,168,36,252,193,170,36,252,193,172,36,252,193,174,36,252,193,176,36,252,193,178,36,252,193,180,36,252,193,192,34,252,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,193,210,35,252,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,193,72,38,252,193,74,38,252,193,76,38,252,193,78,38,252,193,80,38,252,193,82,38,252,193,84,38,252,193,86,38,252,193,88,38,252,193,90,38,252,193,92,38,252,193,94,38,252,193,96,38,252,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,193,192,38,252,193,10,37,252,193,12,37,252,193,14,37,252,193,16,37,252,193,18,37,252,193,20,37,252,193,22,37,252,193,24,37,252,193,26,37,252,193,28,37,252,193,30,37,252,193,32,37,252,193,34,37,252,193,36,37,252,193,38,37,252,193,40,37,252,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,193,100,39,252,193,102,39,252,193,104,39,252,193,106,39,252,193,108,39,252,193,110,39,252,193,112,39,252,193,114,39,252,193,116,39,252,193,118,39,252,193,120,39,252,193,122,39,252,193,124,39,252,193,126,39,252,193,128,39,252,193,130,39,252,193,132,39,252,193,134,39,252,193,136,39,252,193,160,41,252,193,162,41,252,193,164,41,252,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,193,138,39,252,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,193,232,37,252,193,234,37,252,193,236,37,252,193,238,37,252,193,240,37,252,193,242,37,252,193,244,37,252,193,246,37,252,193,248,37,252,193,250,37,252,193,252,37,252,193,254,37,252,193,2,38,252,193,4,38,252,193,6,38,252,193,8,38,252,193,10,38,252,193,12,38,252,193,14,38,252,193,16,38,252,193,18,38,252,193,20,38,252,193,22,38,252,193,24,38,252,193,26,38,252,193,28,38,252,193,30,38,252,193,32,38,252,193,34,38,252,193,36,38,252,193,38,38,252,193,40,38,252,193,42,38,252,193,44,38,252,193,46,38,252,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,193,50,38,252,193,52,38,252,193,54,38,252,193,56,38,252,193,58,38,252,193,60,38,252,193,62,38,252,193,64,38,252,193,66,38,252,193,68,38,252,193,70,38,252,193,142,40,252,193,144,40,252,193,146,40,252,193,148,40,252,193,150,40,252,193,152,40,252,193,154,40,252,193,156,40,252,193,158,40,252,193,160,40,252,193,162,40,252,193,164,40,252,193,166,40,252,193,168,40,252,193,170,40,252,193,172,40,252,193,174,40,252,193,176,40,252,193,130,42,252,193,132,42,252,193,134,42,252,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,193,184,38,252,193,186,38,252,193,188,38,252,193,22,41,252,193,24,41,252,193,26,41,252,193,28,41,252,193,30,41,252,193,32,41,252,193,34,41,252,193,36,41,252,193,38,41,252,193,40,41,252,193,42,41,252,193,44,41,252,193,46,41,252,193,48,41,252,193,208,42,252,193,210,42,252,193,212,42,252,193,214,42,252,193,216,42,252,193,218,42,252,193,220,42,252,193,222,42,252,193,18,44,252,193,20,44,252,193,22,44,252,193,24,44,252,193,26,44,252,193,28,44,252,193,30,44,252,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,193,224,42,252,193,40,39,252,193,42,39,252,193,44,39,252,193,46,39,252,193,48,39,252,193,50,39,252,193,52,39,252,193,54,39,252,193,56,39,252,193,58,39,252,193,60,39,252,193,62,39,252,193,64,39,252,193,66,39,252,193,68,39,252,193,70,39,252,193,72,39,252,193,74,39,252,193,76,39,252,193,78,39,252,193,80,39,252,193,82,39,252,193,84,39,252,193,86,39,252,193,50,41,252,193,88,39,252,193,90,39,252,193,92,39,252,193,94,39,252,193,52,41,252,193,54,41,252,193,120,41,252,193,122,41,252,193,124,41,252,193,126,41,252,193,128,41,252,193,130,41,252,193,132,41,252,193,134,41,252,193,136,41,252,193,138,41,252,193,140,41,252,193,142,41,252,193,144,41,252,193,146,41,252,193,148,41,252,193,150,41,252,193,96,39,252,193,152,41,252,193,154,41,252,193,156,41,252,193,226,42,252,193,228,42,252,193,158,41,252,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,193,196,41,252,193,90,40,252,193,92,40,252,193,94,40,252,193,96,40,252,193,98,40,252,193,100,40,252,193,102,40,252,193,104,40,252,193,106,40,252,193,108,40,252,193,110,40,252,193,112,40,252,193,114,40,252,193,116,40,252,193,118,40,252,193,120,40,252,193,122,40,252,193,124,40,252,193,126,40,252,193,128,40,252,193,130,40,252,193,132,40,252,193,70,43,252,193,134,40,252,193,136,40,252,193,138,40,252,193,140,40,252,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,193,154,42,252,193,156,42,252,193,158,42,252,193,160,42,252,193,162,42,252,193,164,42,252,193,166,42,252,193,168,42,252,193,170,42,252,193,172,42,252,193,174,42,252,193,216,43,252,193,218,43,252,193,220,43,252,193,222,43,252,193,224,43,252,193,226,43,252,193,228,43,252,193,230,43,252,193,28,45,252,193,30,45,252,193,32,45,252,193,34,45,252,193,20,46,252,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,193,176,42,252,193,178,42,252,193,180,42,252,193,182,42,252,193,184,42,252,193,186,42,252,193,188,42,252,193,190,42,252,193,192,42,252,193,194,42,252,193,196,42,252,193,198,42,252,193,200,42,252,193,202,42,252,193,204,42,252,193,206,42,252,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,193,56,41,252,193,58,41,252,193,60,41,252,193,62,41,252,193,64,41,252,193,66,41,252,193,68,41,252,193,70,41,252,193,72,41,252,193,74,41,252,193,76,41,252,193,78,41,252,193,80,41,252,193,82,41,252,193,84,41,252,193,86,41,252,193,88,41,252,193,90,41,252,193,92,41,252,193,94,41,252,193,96,41,252,193,98,41,252,193,100,41,252,193,102,41,252,193,104,41,252,193,106,41,252,193,108,41,252,193,110,41,252,193,112,41,252,193,114,41,252,193,116,41,252,193,118,41,252,193,166,41,252,193,168,41,252,193,170,41,252,193,172,41,252,193,174,41,252,193,176,41,252,193,178,41,252,193,180,41,252,193,182,41,252,193,184,41,252,193,186,41,252,193,188,41,252,193,190,41,252,193,192,41,252,193,194,41,252,193,42,43,252,193,44,43,252,193,46,43,252,193,48,43,252,193,50,43,252,193,52,43,252,193,54,43,252,193,56,43,252,193,58,43,252,193,60,43,252,193,62,43,252,193,64,43,252,193,66,43,252,193,68,43,252,193,92,44,252,193,94,44,252,193,96,44,252,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,193,136,42,252,193,138,42,252,193,140,42,252,193,142,42,252,193,144,42,252,193,146,42,252,193,148,42,252,193,150,42,252,193,194,43,252,193,196,43,252,193,198,43,252,193,200,43,252,193,202,43,252,193,204,43,252,193,206,43,252,193,208,43,252,193,210,43,252,193,212,43,252,193,214,43,252,193,14,45,252,193,16,45,252,193,18,45,252,193,20,45,252,193,22,45,252,193,24,45,252,193,26,45,252,193,6,46,252,193,8,46,252,193,10,46,252,193,12,46,252,193,14,46,252,193,16,46,252,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,193,80,45,252,193,32,43,252,193,34,43,252,193,36,43,252,193,38,43,252,193,40,43,252,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,193,106,44,252,193,190,43,252,193,192,43,252,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,193,36,45,252,193,38,45,252,193,40,45,252,193,42,45,252,193,44,45,252,193,46,45,252,193,48,45,252,193,50,45,252,193,52,45,252,193,54,45,252,193,56,45,252,193,58,45,252,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,193,32,44,252,193,34,44,252,193,60,45,252,193,62,45,252,193,64,45,252,193,66,45,252,193,68,45,252,193,70,45,252,193,72,45,252,193,74,45,252,193,76,45,252,193,78,45,252,193,64,46,252,193,66,46,252,193,68,46,252,193,70,46,252,193,224,46,252,193,226,46,252,193,128,47,252,193,204,47,252,193,206,47,252,193,130,48,252,193,198,48,252,193,40,49,252,193,42,49,252,193,44,49,252,193,46,49,252,193,48,49,252,193,50,49,252,193,228,49,252,193,230,49,252,193,232,49,252,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,193,98,44,252,193,100,44,252,193,102,44,252,193,104,44,252,193,134,45,252,193,136,45,252,193,138,45,252,193,140,45,252,193,142,45,252,193,144,45,252,193,146,45,252,193,148,45,252,193,110,46,252,193,112,46,252,193,114,46,252,193,116,46,252,193,118,46,252,193,120,46,252,193,2,47,252,193,4,47,252,193,6,47,252,193,8,47,252,193,10,47,252,193,12,47,252,193,14,47,252,193,146,47,252,193,148,47,252,193,216,47,252,193,218,47,252,193,220,47,252,193,26,48,252,193,28,48,252,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,193,150,45,252,193,228,44,252,193,230,44,252,193,232,44,252,193,152,45,252,193,234,44,252,193,236,44,252,193,238,44,252,193,240,44,252,193,242,44,252,193,244,44,252,193,246,44,252,193,248,44,252,193,250,44,252,193,252,44,252,193,254,44,252,193,2,45,252,193,4,45,252,193,6,45,252,193,8,45,252,193,10,45,252,193,12,45,252,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,193,72,46,252,193,74,46,252,193,76,46,252,193,78,46,252,193,80,46,252,193,82,46,252,193,84,46,252,193,86,46,252,193,88,46,252,193,90,46,252,193,92,46,252,193,94,46,252,193,96,46,252,193,98,46,252,193,100,46,252,193,102,46,252,193,104,46,252,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,193,22,46,252,193,24,46,252,193,26,46,252,193,28,46,252,193,30,46,252,193,204,46,252,193,206,46,252,193,208,46,252,193,210,46,252,193,212,46,252,193,214,46,252,193,108,47,252,193,110,47,252,193,112,47,252,193,194,47,252,193,196,47,252,193,50,48,252,193,52,48,252,193,126,48,252,193,138,48,252,193,16,49,252,193,18,49,252,193,20,49,252,193,22,49,252,193,24,49,252,193,26,49,252,193,28,49,252,193,196,49,252,193,198,49,252,193,200,49,252,193,202,49,252,193,204,49,252,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,193,216,46,252,193,218,46,252,193,220,46,252,193,222,46,252,193,114,47,252,193,116,47,252,193,118,47,252,193,120,47,252,193,122,47,252,193,124,47,252,193,126,47,252,193,198,47,252,193,200,47,252,193,202,47,252,193,54,48,252,193,56,48,252,193,58,48,252,193,60,48,252,193,134,48,252,193,152,48,252,193,106,46,252,193,108,46,252,193,228,46,252,193,230,46,252,193,232,46,252,193,234,46,252,193,236,46,252,193,238,46,252,193,240,46,252,193,242,46,252,193,244,46,252,193,246,46,252,193,248,46,252,193,250,46,252,193,80,48,252,193,252,46,252,193,254,46,252,193,130,47,252,193,132,47,252,193,134,47,252,193,136,47,252,193,138,47,252,193,140,47,252,193,142,47,252,193,144,47,252,193,208,47,252,193,210,47,252,193,212,47,252,193,214,47,252,193,16,48,252,193,18,48,252,193,20,48,252,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,193,198,46,252,193,200,46,252,193,202,46,252,193,98,47,252,193,100,47,252,193,102,47,252,193,104,47,252,193,106,47,252,193,190,47,252,193,192,47,252,193,12,48,252,193,14,48,252,193,48,48,252,193,150,48,252,193,10,49,252,193,12,49,252,193,14,49,252,193,182,49,252,193,184,49,252,193,186,49,252,193,188,49,252,193,190,49,252,193,192,49,252,193,194,49,252,193,174,50,252,193,176,50,252,193,178,50,252,193,180,50,252,193,182,50,252,193,184,50,252,193,186,50,252,193,188,50,252,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,193,222,47,252,193,224,47,252,193,226,47,252,193,228,47,252,193,230,47,252,193,232,47,252,193,234,47,252,193,236,47,252,193,238,47,252,193,240,47,252,193,242,47,252,193,244,47,252,193,246,47,252,193,248,47,252,193,250,47,252,193,252,47,252,193,254,47,252,193,2,48,252,193,4,48,252,193,6,48,252,193,8,48,252,193,10,48,252,193,22,48,252,193,24,48,252,193,62,48,252,193,64,48,252,193,82,48,252,193,84,48,252,193,86,48,252,193,104,48,252,193,106,48,252,193,128,48,252,193,132,48,252,193,142,48,252,193,144,48,252,193,146,48,252,193,154,48,252,193,156,48,252,193,158,48,252,193,160,48,252,193,162,48,252,193,164,48,252,193,200,48,252,193,202,48,252,193,204,48,252,193,206,48,252,193,208,48,252,193,210,48,252,193,212,48,252,193,214,48,252,193,216,48,252,193,218,48,252,193,220,48,252,193,222,48,252,193,30,48,252,193,32,48,252,193,34,48,252,193,36,48,252,193,38,48,252,193,40,48,252,193,42,48,252,193,44,48,252,193,46,48,252,193,66,48,252,193,68,48,252,193,70,48,252,193,72,48,252,193,74,48,252,193,76,48,252,193,78,48,252,193,90,48,252,193,92,48,252,193,94,48,252,193,96,48,252,193,98,48,252,193,100,48,252,193,102,48,252,193,108,48,252,193,110,48,252,193,112,48,252,193,114,48,252,193,116,48,252,193,118,48,252,193,120,48,252,193,122,48,252,193,124,48,252,193,88,48,252,193,168,48,252,193,170,48,252,193,226,48,252,193,228,48,252,193,230,48,252,193,110,49,252,193,112,49,252,193,114,49,252,193,116,49,252,193,118,49,252,193,56,50,252,193,58,50,252,193,60,50,252,193,62,50,252,193,64,50,252,193,66,50,252,193,68,50,252,193,70,50,252,193,64,51,252,193,66,51,252,193,68,51,252,193,70,51,252,193,72,51,252,193,74,51,252,193,110,52,252,193,112,52,252,193,114,52,252,193,116,52,252,193,118,52,252,193,120,52,252,193,122,52,252,193,136,48,252,193,140,48,252,193,148,48,252,193,172,48,252,193,174,48,252,193,176,48,252,193,178,48,252,193,180,48,252,193,182,48,252,193,184,48,252,193,186,48,252,193,188,48,252,193,190,48,252,193,232,48,252,193,234,48,252,193,236,48,252,193,238,48,252,193,240,48,252,193,242,48,252,193,244,48,252,193,246,48,252,193,248,48,252,193,250,48,252,193,252,48,252,193,254,48,252,193,2,49,252,193,4,49,252,193,6,49,252,193,8,49,252,193,120,49,252,193,122,49,252,193,124,49,252,193,224,48,252,193,52,49,252,193,54,49,252,193,56,49,252,193,58,49,252,193,60,49,252,193,62,49,252,193,166,48,252,193,64,49,252,193,66,49,252,193,68,49,252,193,70,49,252,193,72,49,252,193,74,49,252,193,76,49,252,193,78,49,252,193,80,49,252,193,82,49,252,193,84,49,252,193,86,49,252,193,88,49,252,193,90,49,252,193,92,49,252,193,94,49,252,193,96,49,252,193,98,49,252,193,100,49,252,193,102,49,252,193,104,49,252,193,106,49,252,193,108,49,252,193,236,49,252,193,192,48,252,193,194,48,252,193,196,48,252,193,30,49,252,193,32,49,252,193,34,49,252,193,36,49,252,193,38,49,252,193,208,49,252,193,210,49,252,193,212,49,252,193,214,49,252,193,216,49,252,193,218,49,252,193,220,49,252,193,222,49,252,193,224,49,252,193,226,49,252,193,200,50,252,193,202,50,252,193,204,50,252,193,206,50,252,193,208,50,252,193,210,50,252,193,212,50,252,193,214,50,252,193,216,50,252,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,193,126,49,252,193,128,49,252,193,130,49,252,193,132,49,252,193,134,49,252,193,136,49,252,193,138,49,252,193,140,49,252,193,142,49,252,193,144,49,252,193,146,49,252,193,148,49,252,193,150,49,252,193,152,49,252,193,154,49,252,193,156,49,252,193,158,49,252,193,160,49,252,193,162,49,252,193,164,49,252,193,166,49,252,193,168,49,252,193,170,49,252,193,172,49,252,193,174,49,252,193,176,49,252,193,178,49,252,193,180,49,252,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,193,206,49,252,193,196,50,252,193,198,50,252,193,202,51,252,193,204,51,252,193,206,51,252,193,208,51,252,193,210,51,252,193,212,51,252,193,14,53,252,193,16,53,252,193,18,53,252,193,20,53,252,193,22,53,252,193,24,53,252,193,26,53,252,193,28,53,252,193,30,53,252,193,32,53,252,193,34,53,252,193,36,53,252,193,38,53,252,193,40,53,252,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,193,234,49,252,193,218,50,252,193,220,50,252,193,222,50,252,193,224,50,252,193,226,50,252,193,228,50,252,193,230,50,252,193,236,51,252,193,238,51,252,193,240,51,252,193,242,51,252,193,244,51,252,193,246,51,252,193,248,51,252,193,250,51,252,193,252,51,252,193,254,51,252,193,2,52,252,193,4,52,252,193,6,52,252,193,8,52,252,193,10,52,252,193,12,52,252,193,14,52,252,193,16,52,252,193,18,52,252,193,20,52,252,193,22,52,252,193,24,52,252,193,26,52,252,193,78,53,252,193,238,49,252,193,240,49,252,193,242,49,252,193,244,49,252,193,246,49,252,193,248,49,252,193,250,49,252,193,252,49,252,193,254,49,252,193,2,50,252,193,4,50,252,193,6,50,252,193,8,50,252,193,10,50,252,193,12,50,252,193,14,50,252,193,16,50,252,193,18,50,252,193,20,50,252,193,22,50,252,193,24,50,252,193,26,50,252,193,28,50,252,193,30,50,252,193,32,50,252,193,34,50,252,193,36,50,252,193,38,50,252,193,40,50,252,193,42,50,252,193,44,50,252,193,46,50,252,193,48,50,252,193,50,50,252,193,52,50,252,193,54,50,252,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,193,190,50,252,193,192,50,252,193,194,50,252,193,184,51,252,193,186,51,252,193,188,51,252,193,190,51,252,193,192,51,252,193,194,51,252,193,196,51,252,193,198,51,252,193,250,52,252,193,252,52,252,193,254,52,252,193,2,53,252,193,4,53,252,193,6,53,252,193,8,53,252,193,10,53,252,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,193,128,52,252,193,130,52,252,193,132,52,252,193,134,52,252,193,136,52,252,193,138,52,252,193,140,52,252,193,142,52,252,193,144,52,252,193,146,52,252,193,148,52,252,193,150,52,252,193,152,52,252,193,154,52,252,193,156,52,252,193,158,52,252,193,160,52,252,193,162,52,252,193,164,52,252,193,166,52,252,193,168,52,252,193,170,52,252,193,172,52,252,193,174,52,252,193,176,52,252,193,178,52,252,193,180,52,252,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,193,42,53,252,193,44,53,252,193,46,53,252,193,48,53,252,193,50,53,252,193,52,53,252,193,54,53,252,193,56,53,252,193,58,53,252,193,60,53,252,193,62,53,252,193,64,53,252,193,66,53,252,193,68,53,252,193,70,53,252,193,72,53,252,193,74,53,252,193,76,53,252,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,193,106,53,252,193,102,52,252,193,104,52,252,193,106,52,252,193,108,52,252,193,108,53,252,193,110,53,252,193,112,53,252,193,114,53,252,193,116,53,252,193,118,53,252,193,120,53,252,193,124,52,252,193,126,52,252,193,190,53,252,193,192,53,252,193,194,53,252,193,196,53,252,193,198,53,252,193,200,53,252,193,202,53,252,193,204,53,252,193,206,53,252,193,208,53,252,193,210,53,252,193,212,53,252,193,110,55,252,193,112,55,252,193,114,55,252,193,116,55,252,193,118,55,252,193,120,55,252,193,122,55,252,193,124,55,252,193,126,55,252,193,128,55,252,193,130,55,252,193,132,55,252,193,134,55,252,193,136,55,252,193,138,55,252,193,140,55,252,193,142,55,252,193,250,56,252,193,182,52,252,193,184,52,252,193,186,52,252,193,188,52,252,193,190,52,252,193,192,52,252,193,194,52,252,193,196,52,252,193,198,52,252,193,200,52,252,193,202,52,252,193,204,52,252,193,206,52,252,193,208,52,252,193,210,52,252,193,212,52,252,193,214,52,252,193,216,52,252,193,218,52,252,193,220,52,252,193,222,52,252,193,224,52,252,193,226,52,252,193,228,52,252,193,230,52,252,193,232,52,252,193,234,52,252,193,236,52,252,193,238,52,252,193,240,52,252,193,242,52,252,193,244,52,252,193,246,52,252,193,248,52,252,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,193,12,53,252,193,192,57,252,193,84,69,252,193,132,73,252,193,132,75,252,193,94,80,252,193,244,81,252,193,216,83,252,193,214,85,252,193,162,86,252,193,220,92,252,193,226,95,252,193,40,100,252,193,192,103,252,193,152,107,252,193,214,110,252,193,2,111,252,193,232,111,252,193,108,115,252,193,56,116,252,193,128,136,252,193,24,137,252,193,114,139,252,193,154,142,252,193,232,143,252,193,42,148,252,193,84,152,252,193,132,152,252,193,52,153,252,193,148,160,252,193,150,160,252,193,152,160,252,193,80,53,252,193,82,53,252,193,84,53,252,193,86,53,252,193,88,53,252,193,90,53,252,193,92,53,252,193,94,53,252,193,96,53,252,193,98,53,252,193,100,53,252,193,102,53,252,193,104,53,252,193,224,54,252,193,226,54,252,193,228,54,252,193,230,54,252,193,232,54,252,193,234,54,252,193,236,54,252,193,238,54,252,193,240,54,252,193,242,54,252,193,244,54,252,193,246,54,252,193,248,54,252,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,193,122,53,252,193,124,53,252,193,126,53,252,193,128,53,252,193,130,53,252,193,132,53,252,193,134,53,252,193,136,53,252,193,138,53,252,193,140,53,252,193,142,53,252,193,144,53,252,193,146,53,252,193,148,53,252,193,150,53,252,193,152,53,252,193,154,53,252,193,156,53,252,193,158,53,252,193,160,53,252,193,162,53,252,193,164,53,252,193,166,53,252,193,168,53,252,193,170,53,252,193,172,53,252,193,174,53,252,193,176,53,252,193,178,53,252,193,180,53,252,193,182,53,252,193,184,53,252,193,186,53,252,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,193,188,53,252,193,86,55,252,193,88,55,252,193,90,55,252,193,92,55,252,193,94,55,252,193,96,55,252,193,98,55,252,193,100,55,252,193,102,55,252,193,104,55,252,193,182,56,252,193,106,55,252,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,193,60,56,252,193,62,56,252,193,64,56,252,193,66,56,252,193,68,56,252,193,70,56,252,193,72,56,252,193,74,56,252,193,76,56,252,193,78,56,252,193,80,56,252,193,82,56,252,193,84,56,252,193,86,56,252,193,162,57,252,193,164,57,252,193,166,57,252,193,168,57,252,193,170,57,252,193,172,57,252,193,174,57,252,193,176,57,252,193,178,57,252,193,180,57,252,193,182,57,252,193,184,57,252,193,186,57,252,193,188,57,252,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,193,88,56,252,193,90,56,252,193,92,56,252,193,94,56,252,193,96,56,252,193,98,56,252,193,100,56,252,193,102,56,252,193,104,56,252,193,194,57,252,193,196,57,252,193,198,57,252,193,200,57,252,193,202,57,252,193,204,57,252,193,206,57,252,193,208,57,252,193,210,57,252,193,212,57,252,193,214,57,252,193,216,57,252,193,218,57,252,193,8,59,252,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,193,106,56,252,193,108,56,252,193,110,56,252,193,112,56,252,193,114,56,252,193,116,56,252,193,118,56,252,193,120,56,252,193,122,56,252,193,124,56,252,193,126,56,252,193,128,56,252,193,130,56,252,193,132,56,252,193,134,56,252,193,136,56,252,193,138,56,252,193,140,56,252,193,142,56,252,193,144,56,252,193,146,56,252,193,148,56,252,193,150,56,252,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,193,4,184,253,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,193,58,56,252,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,193,152,56,252,193,154,56,252,193,220,57,252,193,222,57,252,193,224,57,252,193,226,57,252,193,228,57,252,193,230,57,252,193,232,57,252,193,234,57,252,193,236,57,252,193,238,57,252,193,240,57,252,193,242,57,252,193,244,57,252,193,246,57,252,193,248,57,252,193,250,57,252,193,252,57,252,193,20,59,252,193,22,59,252,193,24,59,252,193,26,59,252,193,28,59,252,193,30,59,252,193,32,59,252,193,34,59,252,193,36,59,252,193,38,59,252,193,120,60,252,193,122,60,252,193,124,60,252,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,193,254,57,252,193,2,58,252,193,4,58,252,193,6,58,252,193,8,58,252,193,10,58,252,193,12,58,252,193,14,58,252,193,16,58,252,193,40,59,252,193,42,59,252,193,44,59,252,193,46,59,252,193,48,59,252,193,50,59,252,193,52,59,252,193,54,59,252,193,56,59,252,193,150,60,252,193,152,60,252,193,154,60,252,193,156,60,252,193,158,60,252,193,160,60,252,193,162,60,252,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,193,246,56,252,193,42,58,252,193,44,58,252,193,46,58,252,193,48,58,252,193,50,58,252,193,52,58,252,193,54,58,252,193,56,58,252,193,58,58,252,193,60,58,252,193,62,58,252,193,64,58,252,193,66,58,252,193,68,58,252,193,70,58,252,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,193,248,56,252,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,193,252,56,252,193,254,56,252,193,2,57,252,193,4,57,252,193,6,57,252,193,8,57,252,193,10,57,252,193,12,57,252,193,14,57,252,193,16,57,252,193,18,57,252,193,78,58,252,193,80,58,252,193,82,58,252,193,84,58,252,193,86,58,252,193,88,58,252,193,90,58,252,193,92,58,252,193,140,59,252,193,142,59,252,193,144,59,252,193,146,59,252,193,148,59,252,193,150,59,252,193,152,59,252,193,154,59,252,193,156,59,252,193,158,59,252,193,160,59,252,193,222,60,252,193,224,60,252,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,193,94,58,252,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,193,190,57,252,193,244,58,252,193,246,58,252,193,248,58,252,193,250,58,252,193,252,58,252,193,254,58,252,193,2,59,252,193,4,59,252,193,6,59,252,193,84,60,252,193,86,60,252,193,88,60,252,193,90,60,252,193,92,60,252,193,94,60,252,193,96,60,252,193,98,60,252,193,100,60,252,193,102,60,252,193,74,61,252,193,76,61,252,193,78,61,252,193,80,61,252,193,82,61,252,193,84,61,252,193,86,61,252,193,88,61,252,193,6,62,252,193,8,62,252,193,10,62,252,193,12,62,252,193,160,213,253,193,172,213,253,193,198,213,253,193,210,213,253,193,212,213,253,193,220,213,253,193,222,213,253,193,238,213,253,193,240,213,253,193,242,213,253,193,250,213,253,193,252,213,253,193,110,214,253,193,124,214,253,193,132,214,253,193,158,214,253,193,218,214,253,193,252,214,253,193,254,214,253,193,18,215,253,193,40,215,253,193,42,215,253,193,44,215,253,193,46,215,253,193,48,215,253,193,72,58,252,193,84,215,253,193,86,215,253,193,88,215,253,193,90,215,253,193,92,215,253,193,128,215,253,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,193,162,59,252,193,146,58,252,193,148,58,252,193,150,58,252,193,152,58,252,193,154,58,252,193,156,58,252,193,158,58,252,193,160,58,252,193,162,58,252,193,164,58,252,193,166,58,252,193,168,58,252,193,170,58,252,193,172,58,252,193,174,58,252,193,176,58,252,193,178,58,252,193,180,58,252,193,182,58,252,193,184,58,252,193,186,58,252,193,188,58,252,193,96,236,252,193,190,58,252,193,228,140,253,193,192,58,252,193,194,58,252,193,196,58,252,193,198,58,252,193,200,58,252,193,202,58,252,193,204,58,252,193,206,58,252,193,208,58,252,193,210,58,252,193,212,58,252,193,214,58,252,193,216,58,252,193,218,58,252,193,220,58,252,193,222,58,252,193,224,58,252,193,226,58,252,193,228,58,252,193,230,58,252,193,232,58,252,193,234,58,252,193,236,58,252,193,238,58,252,193,240,58,252,193,242,58,252,193,164,59,252,193,166,59,252,193,168,59,252,193,10,59,252,193,12,59,252,193,14,59,252,193,16,59,252,193,18,59,252,193,104,60,252,193,106,60,252,193,108,60,252,193,110,60,252,193,112,60,252,193,114,60,252,193,116,60,252,193,118,60,252,193,90,61,252,193,92,61,252,193,94,61,252,193,96,61,252,193,16,62,252,193,18,62,252,193,20,62,252,193,148,62,252,193,150,62,252,193,152,62,252,193,154,62,252,193,156,62,252,193,44,63,252,193,46,63,252,193,48,63,252,193,50,63,252,193,52,63,252,193,214,63,252,193,6,64,252,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,193,170,60,252,193,170,59,252,193,172,59,252,193,174,59,252,193,176,59,252,193,178,59,252,193,180,59,252,193,182,59,252,193,184,59,252,193,186,59,252,193,188,59,252,193,190,59,252,193,192,59,252,193,194,59,252,193,196,59,252,193,198,59,252,193,200,59,252,193,202,59,252,193,204,59,252,193,206,59,252,193,208,59,252,193,210,59,252,193,212,59,252,193,214,59,252,193,216,59,252,193,218,59,252,193,220,59,252,193,222,59,252,193,224,59,252,193,226,59,252,193,228,59,252,193,230,59,252,193,232,59,252,193,234,59,252,193,236,59,252,193,238,59,252,193,240,59,252,193,242,59,252,193,244,59,252,193,246,59,252,193,248,59,252,193,250,59,252,193,252,59,252,193,254,59,252,193,2,60,252,193,4,60,252,193,6,60,252,193,8,60,252,193,10,60,252,193,12,60,252,193,14,60,252,193,16,60,252,193,18,60,252,193,20,60,252,193,22,60,252,193,24,60,252,193,26,60,252,193,28,60,252,193,30,60,252,193,32,60,252,193,34,60,252,193,36,60,252,193,38,60,252,193,40,60,252,193,42,60,252,193,126,60,252,193,128,60,252,193,130,60,252,193,132,60,252,193,134,60,252,193,136,60,252,193,138,60,252,193,140,60,252,193,142,60,252,193,144,60,252,193,146,60,252,193,148,60,252,193,98,61,252,193,100,61,252,193,102,61,252,193,104,61,252,193,106,61,252,193,108,61,252,193,110,61,252,193,112,61,252,193,114,61,252,193,116,61,252,193,118,61,252,193,120,61,252,193,122,61,252,193,124,61,252,193,22,62,252,193,24,62,252,193,26,62,252,193,28,62,252,193,30,62,252,193,32,62,252,193,164,60,252,193,166,60,252,193,168,60,252,193,126,61,252,193,128,61,252,193,130,61,252,193,132,61,252,193,134,61,252,193,136,61,252,193,138,61,252,193,38,62,252,193,40,62,252,193,42,62,252,193,44,62,252,193,46,62,252,193,48,62,252,193,162,62,252,193,164,62,252,193,166,62,252,193,168,62,252,193,60,63,252,193,62,63,252,193,64,63,252,193,66,63,252,193,68,63,252,193,70,63,252,193,126,63,252,193,234,63,252,193,96,64,252,193,140,64,252,193,164,64,252,193,166,64,252,193,172,60,252,193,174,60,252,193,176,60,252,193,178,60,252,193,180,60,252,193,182,60,252,193,184,60,252,193,186,60,252,193,188,60,252,193,190,60,252,193,192,60,252,193,194,60,252,193,196,60,252,193,198,60,252,193,200,60,252,193,202,60,252,193,204,60,252,193,206,60,252,193,208,60,252,193,210,60,252,193,212,60,252,193,214,60,252,193,216,60,252,193,218,60,252,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,193,226,60,252,193,228,60,252,193,230,60,252,193,232,60,252,193,164,61,252,193,166,61,252,193,72,62,252,193,74,62,252,193,190,62,252,193,76,62,252,193,192,62,252,193,194,62,252,193,196,62,252,193,78,63,252,193,138,63,252,193,176,63,252,193,178,63,252,193,10,64,252,193,72,64,252,193,74,64,252,193,168,64,252,193,2,65,252,193,170,65,252,193,178,65,252,193,188,65,252,193,204,65,252,193,222,65,252,193,52,66,252,193,120,66,252,193,10,67,252,193,12,67,252,193,66,67,252,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,193,168,61,252,193,170,61,252,193,172,61,252,193,174,61,252,193,176,61,252,193,178,61,252,193,180,61,252,193,182,61,252,193,184,61,252,193,186,61,252,193,188,61,252,193,190,61,252,193,192,61,252,193,194,61,252,193,196,61,252,193,198,61,252,193,200,61,252,193,202,61,252,193,204,61,252,193,206,61,252,193,208,61,252,193,210,61,252,193,212,61,252,193,214,61,252,193,216,61,252,193,218,61,252,193,220,61,252,193,222,61,252,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,193,50,62,252,193,52,62,252,193,54,62,252,193,56,62,252,193,58,62,252,193,60,62,252,193,62,62,252,193,170,62,252,193,64,62,252,193,66,62,252,193,68,62,252,193,172,62,252,193,174,62,252,193,176,62,252,193,178,62,252,193,180,62,252,193,182,62,252,193,70,62,252,193,184,62,252,193,186,62,252,193,188,62,252,193,72,63,252,193,74,63,252,193,76,63,252,193,128,63,252,193,130,63,252,193,132,63,252,193,134,63,252,193,224,61,252,193,226,61,252,193,228,61,252,193,248,213,252,193,230,61,252,193,232,61,252,193,234,61,252,193,236,61,252,193,238,61,252,193,240,61,252,193,242,61,252,193,244,61,252,193,246,61,252,193,248,61,252,193,250,61,252,193,252,61,252,193,254,61,252,193,2,62,252,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,193,248,217,252,193,254,217,252,193,2,218,252,193,4,218,252,193,6,218,252,193,8,218,252,193,10,218,252,193,12,218,252,193,4,62,252,193,24,218,252,193,26,218,252,193,28,218,252,193,30,218,252,193,38,218,252,193,40,218,252,193,32,218,252,193,42,218,252,193,44,218,252,193,46,218,252,193,48,218,252,193,50,218,252,193,52,218,252,193,54,218,252,193,56,218,252,193,58,218,252,193,60,218,252,193,64,218,252,193,66,218,252,193,72,218,252,193,76,218,252,193,78,218,252,193,80,218,252,193,14,62,252,193,144,62,252,193,146,62,252,193,38,63,252,193,40,63,252,193,42,63,252,193,166,63,252,193,168,63,252,193,212,63,252,193,228,63,252,193,2,64,252,193,4,64,252,193,24,64,252,193,66,64,252,193,134,64,252,193,178,64,252,193,204,64,252,193,206,64,252,193,208,64,252,193,210,64,252,193,238,64,252,193,240,64,252,193,40,65,252,193,42,65,252,193,86,65,252,193,88,65,252,193,148,65,252,193,184,65,252,193,192,65,252,193,226,65,252,193,110,66,252,193,138,66,252,193,34,62,252,193,36,62,252,193,158,62,252,193,160,62,252,193,54,63,252,193,56,63,252,193,58,63,252,193,170,63,252,193,230,63,252,193,232,63,252,193,94,64,252,193,138,64,252,193,156,64,252,193,158,64,252,193,160,64,252,193,162,64,252,193,184,64,252,193,216,64,252,193,246,64,252,193,248,64,252,193,18,65,252,193,20,65,252,193,48,65,252,193,64,65,252,193,66,65,252,193,104,65,252,193,154,65,252,193,162,65,252,193,194,65,252,193,216,65,252,193,28,66,252,193,30,66,252,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,193,198,62,252,193,200,62,252,193,202,62,252,193,204,62,252,193,206,62,252,193,208,62,252,193,210,62,252,193,212,62,252,193,214,62,252,193,216,62,252,193,218,62,252,193,220,62,252,193,222,62,252,193,224,62,252,193,226,62,252,193,228,62,252,193,230,62,252,193,232,62,252,193,234,62,252,193,236,62,252,193,238,62,252,193,240,62,252,193,242,62,252,193,244,62,252,193,246,62,252,193,248,62,252,193,250,62,252,193,252,62,252,193,254,62,252,193,2,63,252,193,4,63,252,193,6,63,252,193,8,63,252,193,10,63,252,193,12,63,252,193,14,63,252,193,16,63,252,193,18,63,252,193,20,63,252,193,22,63,252,193,24,63,252,193,26,63,252,193,28,63,252,193,30,63,252,193,32,63,252,193,34,63,252,193,80,63,252,193,82,63,252,193,84,63,252,193,86,63,252,193,88,63,252,193,90,63,252,193,92,63,252,193,36,63,252,193,140,63,252,193,94,63,252,193,96,63,252,193,98,63,252,193,100,63,252,193,102,63,252,193,104,63,252,193,106,63,252,193,108,63,252,193,110,63,252,193,112,63,252,193,114,63,252,193,116,63,252,193,118,63,252,193,120,63,252,193,122,63,252,193,124,63,252,193,142,63,252,193,144,63,252,193,180,63,252,193,146,63,252,193,148,63,252,193,150,63,252,193,136,63,252,193,172,63,252,193,174,63,252,193,216,63,252,193,236,63,252,193,238,63,252,193,240,63,252,193,26,64,252,193,36,64,252,193,42,64,252,193,48,64,252,193,50,64,252,193,68,64,252,193,70,64,252,193,98,64,252,193,100,64,252,193,102,64,252,193,142,64,252,193,188,64,252,193,254,64,252,193,24,65,252,193,94,65,252,193,150,65,252,193,152,65,252,193,164,65,252,193,176,65,252,193,202,65,252,193,218,65,252,193,228,65,252,193,238,65,252,193,248,65,252,193,16,66,252,193,152,63,252,193,154,63,252,193,156,63,252,193,158,63,252,193,160,63,252,193,162,63,252,193,164,63,252,193,182,63,252,193,184,63,252,193,186,63,252,193,188,63,252,193,190,63,252,193,192,63,252,193,194,63,252,193,196,63,252,193,30,215,252,193,198,63,252,193,200,63,252,193,202,63,252,193,204,63,252,193,206,63,252,193,208,63,252,193,210,63,252,193,218,63,252,193,220,63,252,193,222,63,252,193,224,63,252,193,226,63,252,193,242,63,252,193,244,63,252,193,246,63,252,193,70,218,252,193,248,63,252,193,250,63,252,193,252,63,252,193,254,63,252,193,12,64,252,193,14,64,252,193,16,64,252,193,18,64,252,193,20,64,252,193,22,64,252,193,28,64,252,193,38,64,252,193,30,64,252,193,40,64,252,193,44,64,252,193,52,64,252,193,54,64,252,193,56,64,252,193,58,64,252,193,60,64,252,193,62,64,252,193,64,64,252,193,76,64,252,193,78,64,252,193,80,64,252,193,82,64,252,193,84,64,252,193,86,64,252,193,88,64,252,193,104,64,252,193,106,64,252,193,108,64,252,193,8,64,252,193,32,64,252,193,34,64,252,193,46,64,252,193,90,64,252,193,92,64,252,193,136,64,252,193,152,64,252,193,154,64,252,193,180,64,252,193,182,64,252,193,212,64,252,193,214,64,252,193,242,64,252,193,244,64,252,193,14,65,252,193,16,65,252,193,44,65,252,193,46,65,252,193,60,65,252,193,62,65,252,193,90,65,252,193,92,65,252,193,112,65,252,193,126,65,252,193,128,65,252,193,146,65,252,193,160,65,252,193,212,65,252,193,6,66,252,193,12,66,252,193,62,66,252,193,186,64,252,193,218,64,252,193,220,64,252,193,222,64,252,193,224,64,252,193,250,64,252,193,252,64,252,193,50,65,252,193,68,65,252,193,138,65,252,193,140,65,252,193,174,65,252,193,186,65,252,193,200,65,252,193,44,66,252,193,46,66,252,193,48,66,252,193,72,66,252,193,90,66,252,193,116,66,252,193,118,66,252,193,152,66,252,193,186,66,252,193,246,66,252,193,248,66,252,193,30,67,252,193,32,67,252,193,60,67,252,193,62,67,252,193,64,67,252,193,108,67,252,193,152,67,252,193,234,64,252,193,236,64,252,193,4,65,252,193,6,65,252,193,8,65,252,193,10,65,252,193,12,65,252,193,26,65,252,193,28,65,252,193,30,65,252,193,32,65,252,193,34,65,252,193,36,65,252,193,38,65,252,193,52,65,252,193,54,65,252,193,56,65,252,193,58,65,252,193,70,65,252,193,72,65,252,193,74,65,252,193,76,65,252,193,78,65,252,193,80,65,252,193,82,65,252,193,96,65,252,193,106,65,252,193,98,65,252,193,84,65,252,193,100,65,252,193,102,65,252,193,108,65,252,193,110,65,252,193,182,189,252,193,114,65,252,193,116,65,252,193,118,65,252,193,120,65,252,193,122,65,252,193,124,65,252,193,130,65,252,193,132,65,252,193,134,65,252,193,136,65,252,193,142,65,252,193,144,65,252,193,156,65,252,193,158,65,252,193,166,65,252,193,168,65,252,193,172,65,252,193,180,65,252,193,182,65,252,193,190,65,252,193,196,65,252,193,198,65,252,193,206,65,252,193,208,65,252,193,210,65,252,193,214,65,252,193,220,65,252,193,224,65,252,193,230,65,252,193,232,65,252,193,234,65,252,193,236,65,252,193,240,65,252,193,242,65,252,193,244,65,252,193,246,65,252,193,252,65,252,193,254,65,252,193,2,66,252,193,4,66,252,193,18,66,252,193,20,66,252,193,22,66,252,193,24,66,252,193,26,66,252,193,34,66,252,193,36,66,252,193,38,66,252,193,54,66,252,193,56,66,252,193,58,66,252,193,60,66,252,193,76,66,252,193,78,66,252,193,80,66,252,193,82,66,252,193,84,66,252,206,96,51,0,206,96,51,0,206,96,51,0,206,96,51,0,206,96,51,0,193,32,66,252,193,50,66,252,193,74,66,252,193,154,66,252,193,162,66,252,193,174,66,252,193,206,66,252,193,252,66,252,193,8,67,252,193,34,67,252,193,36,67,252,193,110,67,252,193,112,67,252,193,114,67,252,193,154,67,252,193,156,67,252,193,158,67,252,193,160,67,252,193,162,67,252,193,184,67,252,193,186,67,252,193,202,67,252,193,204,67,252,193,206,67,252,193,18,68,252,193,28,68,252,193,68,68,252,193,94,68,252,193,96,68,252,193,102,68,252,193,104,68,252,193,106,68,252,193,40,66,252,193,42,66,252,193,68,66,252,193,70,66,252,193,86,66,252,193,88,66,252,193,114,66,252,193,216,66,252,193,222,66,252,193,28,67,252,193,56,67,252,193,58,67,252,193,106,67,252,193,4,68,252,193,16,68,252,193,40,68,252,193,44,68,252,193,56,68,252,193,80,68,252,193,100,68,252,193,118,68,252,193,238,68,252,193,240,68,252,193,242,68,252,193,244,68,252,193,246,68,252,193,88,69,252,193,90,69,252,193,92,69,252,193,94,69,252,193,158,69,252,193,160,69,252,193,64,66,252,193,66,66,252,193,112,66,252,193,140,66,252,193,142,66,252,193,144,66,252,193,146,66,252,193,148,66,252,193,150,66,252,193,172,66,252,193,184,66,252,193,200,66,252,193,202,66,252,193,204,66,252,193,220,66,252,193,228,66,252,193,232,66,252,193,234,66,252,193,250,66,252,193,24,67,252,193,26,67,252,193,104,67,252,193,26,68,252,193,54,68,252,193,86,68,252,193,116,68,252,193,146,68,252,193,234,68,252,193,236,68,252,193,86,69,252,193,154,69,252,193,156,69,252,206,96,51,0,206,96,51,0,206,96,51,0,206,96,51,0,193,122,66,252,193,124,66,252,193,126,66,252,193,128,66,252,193,130,66,252,193,132,66,252,193,134,66,252,193,136,66,252,193,156,66,252,193,158,66,252,193,160,66,252,193,164,66,252,193,166,66,252,193,168,66,252,193,170,66,252,193,176,66,252,193,178,66,252,193,180,66,252,193,188,66,252,193,190,66,252,193,192,66,252,193,194,66,252,193,196,66,252,193,198,66,252,193,208,66,252,193,210,66,252,193,212,66,252,193,214,66,252,193,182,66,252,193,218,66,252,193,84,67,252,193,100,67,252,193,102,67,252,193,150,67,252,193,244,67,252,193,38,68,252,193,78,68,252,193,144,68,252,193,80,69,252,193,82,69,252,193,148,69,252,193,150,69,252,193,152,69,252,193,78,70,252,193,182,70,252,193,24,71,252,193,26,71,252,193,28,71,252,193,104,71,252,193,160,71,252,193,6,72,252,193,238,72,252,193,128,73,252,193,130,73,252,193,46,74,252,193,48,74,252,193,212,74,252,193,214,74,252,193,124,75,252,193,126,75,252,193,224,66,252,193,226,66,252,193,230,66,252,193,236,66,252,193,238,66,252,193,240,66,252,193,242,66,252,193,244,66,252,193,254,66,252,193,2,67,252,193,4,67,252,193,6,67,252,193,14,67,252,193,16,67,252,193,18,67,252,193,20,67,252,193,22,67,252,193,38,67,252,193,40,67,252,193,42,67,252,193,44,67,252,193,46,67,252,193,48,67,252,193,50,67,252,193,52,67,252,193,54,67,252,193,72,67,252,193,74,67,252,193,76,67,252,193,78,67,252,193,80,67,252,193,82,67,252,193,68,67,252,193,70,67,252,193,188,67,252,193,246,67,252,193,6,68,252,193,22,68,252,193,30,68,252,193,48,68,252,193,108,68,252,193,132,68,252,193,134,68,252,193,168,68,252,193,170,68,252,193,172,68,252,193,174,68,252,193,176,68,252,193,20,69,252,193,22,69,252,193,24,69,252,193,26,69,252,193,28,69,252,193,120,69,252,193,122,69,252,193,124,69,252,193,126,69,252,193,176,69,252,193,178,69,252,193,180,69,252,193,182,69,252,193,184,69,252,193,186,69,252,193,188,69,252,193,86,67,252,193,88,67,252,193,90,67,252,193,92,67,252,193,94,67,252,193,96,67,252,193,98,67,252,193,116,67,252,193,118,67,252,193,120,67,252,193,122,67,252,193,124,67,252,193,126,67,252,193,128,67,252,193,130,67,252,193,132,67,252,193,134,67,252,193,136,67,252,193,138,67,252,193,140,67,252,193,142,67,252,193,144,67,252,193,146,67,252,193,148,67,252,193,164,67,252,193,166,67,252,193,168,67,252,193,170,67,252,193,172,67,252,193,174,67,252,193,176,67,252,193,178,67,252,193,180,67,252,193,182,67,252,193,190,67,252,193,192,67,252,193,194,67,252,193,196,67,252,193,198,67,252,193,200,67,252,193,208,67,252,193,210,67,252,193,212,67,252,193,214,67,252,193,216,67,252,193,218,67,252,193,220,67,252,193,222,67,252,193,224,67,252,193,226,67,252,193,228,67,252,193,230,67,252,193,232,67,252,193,234,67,252,193,236,67,252,193,238,67,252,193,240,67,252,193,242,67,252,193,248,67,252,193,250,67,252,193,252,67,252,193,254,67,252,193,2,68,252,193,8,68,252,193,10,68,252,193,12,68,252,193,14,68,252,193,20,68,252,193,24,68,252,193,32,68,252,193,36,68,252,193,42,68,252,193,50,68,252,193,52,68,252,193,62,68,252,193,64,68,252,193,70,68,252,193,72,68,252,193,74,68,252,193,76,68,252,193,82,68,252,193,84,68,252,193,88,68,252,193,90,68,252,193,98,68,252,193,110,68,252,193,112,68,252,193,114,68,252,193,136,68,252,193,138,68,252,193,140,68,252,193,142,68,252,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,193,34,68,252,193,46,68,252,193,58,68,252,193,60,68,252,193,66,68,252,193,92,68,252,193,120,68,252,193,148,68,252,193,150,68,252,193,248,68,252,193,250,68,252,193,252,68,252,193,254,68,252,193,96,69,252,193,98,69,252,193,100,69,252,193,102,69,252,193,104,69,252,193,106,69,252,193,108,69,252,193,162,69,252,193,242,69,252,193,102,70,252,193,104,70,252,193,192,70,252,193,38,71,252,193,40,71,252,193,116,71,252,193,166,71,252,193,126,72,252,193,128,72,252,193,250,72,252,193,122,68,252,193,124,68,252,193,126,68,252,193,128,68,252,193,130,68,252,193,152,68,252,193,154,68,252,193,156,68,252,193,158,68,252,193,160,68,252,193,162,68,252,193,164,68,252,193,166,68,252,193,2,69,252,193,4,69,252,193,6,69,252,193,8,69,252,193,10,69,252,193,12,69,252,193,14,69,252,193,16,69,252,193,18,69,252,193,110,69,252,193,112,69,252,193,114,69,252,193,116,69,252,193,118,69,252,193,164,69,252,193,166,69,252,193,168,69,252,193,170,69,252,193,172,69,252,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,193,128,69,252,193,130,69,252,193,132,69,252,193,134,69,252,193,136,69,252,193,138,69,252,193,140,69,252,193,142,69,252,193,144,69,252,193,146,69,252,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,193,244,69,252,193,174,69,252,193,246,69,252,193,248,69,252,193,250,69,252,193,252,69,252,193,254,69,252,193,2,70,252,193,4,70,252,193,6,70,252,193,8,70,252,193,10,70,252,193,106,70,252,193,108,70,252,193,110,70,252,193,112,70,252,193,114,70,252,193,116,70,252,193,194,70,252,193,196,70,252,193,198,70,252,193,200,70,252,193,202,70,252,193,204,70,252,193,42,71,252,193,44,71,252,193,46,71,252,193,48,71,252,193,118,71,252,193,120,71,252,193,122,71,252,193,124,71,252,193,190,69,252,193,12,70,252,193,14,70,252,193,16,70,252,193,206,70,252,193,118,70,252,193,120,70,252,193,122,70,252,193,124,70,252,193,208,70,252,193,210,70,252,193,212,70,252,193,50,71,252,193,52,71,252,193,54,71,252,193,56,71,252,193,58,71,252,193,126,71,252,193,128,71,252,193,130,71,252,193,170,71,252,193,172,71,252,193,174,71,252,193,196,71,252,193,198,71,252,193,216,71,252,193,248,71,252,193,10,72,252,193,162,72,252,193,164,72,252,193,166,72,252,193,168,72,252,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,193,232,69,252,193,80,70,252,193,82,70,252,193,184,70,252,193,186,70,252,193,188,70,252,193,30,71,252,193,32,71,252,193,106,71,252,193,56,72,252,193,120,72,252,193,122,72,252,193,134,73,252,193,136,73,252,193,50,74,252,193,52,74,252,193,54,74,252,193,56,74,252,193,216,74,252,193,218,74,252,193,220,74,252,193,134,75,252,193,136,75,252,193,138,75,252,193,80,76,252,193,82,76,252,193,84,76,252,193,86,76,252,193,88,76,252,193,252,76,252,193,254,76,252,193,2,77,252,193,234,69,252,193,236,69,252,193,238,69,252,193,240,69,252,193,84,70,252,193,86,70,252,193,88,70,252,193,90,70,252,193,92,70,252,193,94,70,252,193,96,70,252,193,98,70,252,193,100,70,252,193,190,70,252,193,34,71,252,193,36,71,252,193,108,71,252,193,110,71,252,193,112,71,252,193,114,71,252,193,162,71,252,193,164,71,252,193,232,71,252,193,28,72,252,193,74,72,252,193,124,72,252,193,240,72,252,193,242,72,252,193,244,72,252,193,246,72,252,193,248,72,252,193,138,73,252,193,162,70,252,193,164,70,252,193,166,70,252,193,168,70,252,193,170,70,252,193,172,70,252,193,174,70,252,193,176,70,252,193,178,70,252,193,214,70,252,193,216,70,252,193,218,70,252,193,220,70,252,193,222,70,252,193,224,70,252,193,226,70,252,193,228,70,252,193,230,70,252,193,232,70,252,193,234,70,252,193,236,70,252,193,238,70,252,193,240,70,252,193,242,70,252,193,244,70,252,193,246,70,252,193,248,70,252,193,250,70,252,193,252,70,252,193,254,70,252,193,2,71,252,193,180,70,252,193,102,71,252,193,132,71,252,193,134,71,252,193,136,71,252,193,138,71,252,193,140,71,252,193,142,71,252,193,144,71,252,193,146,71,252,193,148,71,252,193,150,71,252,193,152,71,252,193,154,71,252,193,156,71,252,193,158,71,252,193,176,71,252,193,178,71,252,193,180,71,252,193,182,71,252,193,184,71,252,193,186,71,252,193,188,71,252,193,190,71,252,193,192,71,252,193,194,71,252,193,200,71,252,193,202,71,252,193,218,71,252,193,220,71,252,193,222,71,252,193,224,71,252,193,226,71,252,193,168,71,252,193,204,71,252,193,206,71,252,193,208,71,252,193,210,71,252,193,212,71,252,193,214,71,252,193,234,71,252,193,236,71,252,193,8,72,252,193,30,72,252,193,42,72,252,193,46,72,252,193,48,72,252,193,50,72,252,193,58,72,252,193,60,72,252,193,76,72,252,193,78,72,252,193,80,72,252,193,82,72,252,193,84,72,252,193,86,72,252,193,88,72,252,193,90,72,252,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,193,228,71,252,193,230,71,252,193,238,71,252,193,240,71,252,193,242,71,252,193,244,71,252,193,246,71,252,193,250,71,252,193,252,71,252,193,254,71,252,193,2,72,252,193,4,72,252,193,12,72,252,193,14,72,252,193,16,72,252,193,18,72,252,193,20,72,252,193,22,72,252,193,24,72,252,193,26,72,252,193,32,72,252,193,34,72,252,193,36,72,252,193,38,72,252,193,40,72,252,193,44,72,252,193,54,72,252,193,62,72,252,193,64,72,252,193,66,72,252,193,68,72,252,193,70,72,252,193,72,72,252,193,92,72,252,193,94,72,252,193,96,72,252,193,98,72,252,193,100,72,252,193,102,72,252,193,104,72,252,193,106,72,252,193,108,72,252,193,110,72,252,193,112,72,252,193,114,72,252,193,116,72,252,193,118,72,252,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,193,2,73,252,193,4,73,252,193,6,73,252,193,8,73,252,193,10,73,252,193,12,73,252,193,14,73,252,193,16,73,252,193,18,73,252,193,20,73,252,193,22,73,252,193,24,73,252,193,26,73,252,193,28,73,252,193,30,73,252,193,32,73,252,193,34,73,252,193,36,73,252,193,38,73,252,193,40,73,252,193,42,73,252,193,44,73,252,193,162,73,252,193,170,72,252,193,46,73,252,193,48,73,252,193,50,73,252,193,52,73,252,193,54,73,252,193,56,73,252,193,58,73,252,193,60,73,252,193,62,73,252,193,64,73,252,193,202,73,252,193,204,73,252,193,206,73,252,193,208,73,252,193,210,73,252,193,212,73,252,193,114,74,252,193,116,74,252,193,118,74,252,193,120,74,252,193,122,74,252,193,124,74,252,193,126,74,252,193,128,74,252,193,58,75,252,193,60,75,252,193,62,75,252,193,64,75,252,193,66,75,252,193,68,75,252,193,70,75,252,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,193,236,72,252,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,193,252,72,252,193,254,72,252,193,148,73,252,193,150,73,252,193,152,73,252,193,154,73,252,193,156,73,252,193,158,73,252,193,160,73,252,193,70,74,252,193,72,74,252,193,74,74,252,193,76,74,252,193,78,74,252,193,238,74,252,193,240,74,252,193,242,74,252,193,244,74,252,193,246,74,252,193,150,75,252,193,152,75,252,193,154,75,252,193,156,75,252,193,158,75,252,193,160,75,252,193,162,75,252,193,164,75,252,193,166,75,252,193,168,75,252,193,170,75,252,193,110,76,252,193,112,76,252,193,140,73,252,193,142,73,252,193,144,73,252,193,146,73,252,193,58,74,252,193,60,74,252,193,62,74,252,193,64,74,252,193,66,74,252,193,68,74,252,193,222,74,252,193,224,74,252,193,226,74,252,193,228,74,252,193,230,74,252,193,232,74,252,193,234,74,252,193,236,74,252,193,140,75,252,193,142,75,252,193,144,75,252,193,146,75,252,193,148,75,252,193,90,76,252,193,92,76,252,193,94,76,252,193,96,76,252,193,98,76,252,193,100,76,252,193,102,76,252,193,104,76,252,193,106,76,252,193,164,73,252,193,166,73,252,193,168,73,252,193,170,73,252,193,172,73,252,193,174,73,252,193,176,73,252,193,178,73,252,193,180,73,252,193,182,73,252,193,184,73,252,193,186,73,252,193,188,73,252,193,190,73,252,193,192,73,252,193,194,73,252,193,196,73,252,193,198,73,252,193,200,73,252,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,193,130,74,252,193,132,74,252,193,134,74,252,193,136,74,252,193,138,74,252,193,140,74,252,193,142,74,252,193,144,74,252,193,146,74,252,193,148,74,252,193,44,74,252,193,150,74,252,193,152,74,252,193,154,74,252,193,156,74,252,193,158,74,252,193,160,74,252,193,162,74,252,193,164,74,252,193,166,74,252,193,168,74,252,193,170,74,252,193,172,74,252,193,174,74,252,193,176,74,252,193,178,74,252,193,180,74,252,193,182,74,252,193,184,74,252,193,186,74,252,193,188,74,252,193,190,74,252,193,192,74,252,193,194,74,252,193,196,74,252,193,198,74,252,193,200,74,252,193,202,74,252,193,204,74,252,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,193,248,74,252,193,250,74,252,193,252,74,252,193,254,74,252,193,2,75,252,193,4,75,252,193,6,75,252,193,8,75,252,193,10,75,252,193,12,75,252,193,14,75,252,193,16,75,252,193,18,75,252,193,20,75,252,193,22,75,252,193,24,75,252,193,26,75,252,193,28,75,252,193,30,75,252,193,32,75,252,193,34,75,252,193,36,75,252,193,38,75,252,193,40,75,252,193,42,75,252,193,44,75,252,193,46,75,252,193,48,75,252,193,206,74,252,193,208,74,252,193,210,74,252,193,74,75,252,193,76,75,252,193,78,75,252,193,80,75,252,193,82,75,252,193,84,75,252,193,86,75,252,193,88,75,252,193,90,75,252,193,92,75,252,193,94,75,252,193,96,75,252,193,98,75,252,193,100,75,252,193,102,75,252,193,104,75,252,193,106,75,252,193,108,75,252,193,110,75,252,193,112,75,252,193,114,75,252,193,116,75,252,193,118,75,252,193,120,75,252,193,122,75,252,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,193,50,75,252,193,52,75,252,193,172,75,252,193,174,75,252,193,176,75,252,193,178,75,252,193,180,75,252,193,182,75,252,193,184,75,252,193,186,75,252,193,54,75,252,193,56,75,252,193,188,75,252,193,190,75,252,193,192,75,252,193,194,75,252,193,196,75,252,193,198,75,252,193,200,75,252,193,202,75,252,193,204,75,252,193,206,75,252,193,208,75,252,193,210,75,252,193,212,75,252,193,214,75,252,193,116,76,252,193,118,76,252,193,120,76,252,193,122,76,252,193,124,76,252,193,126,76,252,193,72,75,252,193,218,75,252,193,220,75,252,193,222,75,252,193,224,75,252,193,226,75,252,193,228,75,252,193,146,76,252,193,148,76,252,193,150,76,252,193,152,76,252,193,154,76,252,193,156,76,252,193,158,76,252,193,32,77,252,193,34,77,252,193,36,77,252,193,38,77,252,193,40,77,252,193,42,77,252,193,192,77,252,193,194,77,252,193,196,77,252,193,198,77,252,193,200,77,252,193,202,77,252,193,70,78,252,193,72,78,252,193,74,78,252,193,150,78,252,193,152,78,252,193,154,78,252,193,128,75,252,193,130,75,252,193,72,76,252,193,74,76,252,193,76,76,252,193,78,76,252,193,248,76,252,193,250,76,252,193,128,77,252,193,32,78,252,193,184,78,252,193,236,78,252,193,18,79,252,193,166,79,252,193,80,80,252,193,82,80,252,193,84,80,252,193,86,80,252,193,88,80,252,193,90,80,252,193,92,80,252,193,30,81,252,193,32,81,252,193,226,81,252,193,228,81,252,193,230,81,252,193,232,81,252,193,234,81,252,193,236,81,252,193,238,81,252,193,240,81,252,193,242,81,252,193,128,76,252,193,216,75,252,193,130,76,252,193,132,76,252,193,10,77,252,193,134,76,252,193,136,76,252,193,138,76,252,193,140,76,252,193,142,76,252,193,144,76,252,193,160,77,252,193,12,77,252,193,14,77,252,193,16,77,252,193,18,77,252,193,20,77,252,193,22,77,252,193,24,77,252,193,26,77,252,193,28,77,252,193,30,77,252,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,193,108,76,252,193,6,77,252,193,140,77,252,193,142,77,252,193,144,77,252,193,146,77,252,193,148,77,252,193,150,77,252,193,38,78,252,193,40,78,252,193,42,78,252,193,44,78,252,193,46,78,252,193,134,78,252,193,188,78,252,193,190,78,252,193,240,78,252,193,242,78,252,193,48,79,252,193,66,79,252,193,110,79,252,193,168,79,252,193,106,80,252,193,108,80,252,193,110,80,252,193,112,80,252,193,114,80,252,193,116,80,252,206,0,54,0,206,0,54,0,206,0,54,0,206,0,54,0,193,114,76,252,193,8,77,252,193,152,77,252,193,154,77,252,193,156,77,252,193,158,77,252,193,48,78,252,193,50,78,252,193,244,78,252,193,20,79,252,193,22,79,252,193,24,79,252,193,68,79,252,193,170,79,252,193,172,79,252,193,118,80,252,193,120,80,252,193,122,80,252,193,124,80,252,193,126,80,252,193,64,81,252,193,66,81,252,193,68,81,252,193,22,82,252,193,24,82,252,193,26,82,252,193,28,82,252,193,30,82,252,193,32,82,252,193,226,82,252,193,228,82,252,193,230,82,252,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,193,44,77,252,193,46,77,252,193,48,77,252,193,50,77,252,193,52,77,252,193,54,77,252,193,56,77,252,193,4,77,252,193,130,77,252,193,132,77,252,193,134,77,252,193,136,77,252,193,138,77,252,193,34,78,252,193,36,78,252,193,128,78,252,193,130,78,252,193,132,78,252,193,186,78,252,193,238,78,252,193,46,79,252,193,104,79,252,193,130,79,252,193,226,79,252,193,228,79,252,193,96,80,252,193,98,80,252,193,100,80,252,193,102,80,252,193,104,80,252,193,34,81,252,193,36,81,252,193,38,81,252,193,40,81,252,193,42,81,252,193,44,81,252,193,46,81,252,193,246,81,252,193,248,81,252,193,58,77,252,193,60,77,252,193,62,77,252,193,64,77,252,193,66,77,252,193,68,77,252,193,70,77,252,193,72,77,252,193,74,77,252,193,76,77,252,193,78,77,252,193,80,77,252,193,82,77,252,193,84,77,252,193,86,77,252,193,88,77,252,193,90,77,252,193,92,77,252,193,94,77,252,193,96,77,252,193,98,77,252,193,100,77,252,193,102,77,252,193,104,77,252,193,106,77,252,193,108,77,252,193,110,77,252,193,112,77,252,193,114,77,252,193,116,77,252,193,118,77,252,193,120,77,252,193,122,77,252,193,124,77,252,193,126,77,252,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,193,52,78,252,193,54,78,252,193,56,78,252,193,58,78,252,193,60,78,252,193,62,78,252,193,64,78,252,193,66,78,252,193,68,78,252,193,136,78,252,193,138,78,252,193,140,78,252,193,142,78,252,193,144,78,252,193,146,78,252,193,148,78,252,193,192,78,252,193,194,78,252,193,196,78,252,193,198,78,252,193,246,78,252,193,248,78,252,193,250,78,252,193,26,79,252,193,28,79,252,193,50,79,252,193,52,79,252,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,193,156,78,252,193,158,78,252,193,160,78,252,193,162,78,252,193,164,78,252,193,166,78,252,193,168,78,252,193,170,78,252,193,172,78,252,193,174,78,252,193,176,78,252,193,178,78,252,193,180,78,252,193,182,78,252,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,193,200,78,252,193,252,78,252,193,254,78,252,193,30,79,252,193,32,79,252,193,34,79,252,193,36,79,252,193,94,79,252,193,152,79,252,193,154,79,252,193,156,79,252,193,158,79,252,193,194,79,252,193,196,79,252,193,198,79,252,193,200,79,252,193,22,80,252,193,24,80,252,193,26,80,252,193,28,80,252,193,30,80,252,193,32,80,252,193,34,80,252,193,192,80,252,193,194,80,252,193,196,80,252,193,198,80,252,193,200,80,252,193,202,80,252,193,204,80,252,193,206,80,252,193,138,81,252,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,193,2,79,252,193,4,79,252,193,6,79,252,193,8,79,252,193,10,79,252,193,12,79,252,193,14,79,252,193,16,79,252,193,38,79,252,193,40,79,252,193,42,79,252,193,44,79,252,193,54,79,252,193,56,79,252,193,58,79,252,193,60,79,252,193,62,79,252,193,64,79,252,193,72,79,252,193,74,79,252,193,76,79,252,193,78,79,252,193,86,79,252,193,88,79,252,193,90,79,252,193,92,79,252,193,96,79,252,193,70,79,252,193,80,79,252,193,82,79,252,193,84,79,252,193,112,79,252,193,116,79,252,193,120,79,252,193,122,79,252,193,124,79,252,193,132,79,252,193,138,79,252,193,134,79,252,193,140,79,252,193,142,79,252,193,144,79,252,193,146,79,252,193,148,79,252,193,150,79,252,193,174,79,252,193,176,79,252,193,178,79,252,193,180,79,252,193,182,79,252,193,184,79,252,193,186,79,252,193,188,79,252,193,190,79,252,193,192,79,252,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,193,98,79,252,193,100,79,252,193,102,79,252,193,106,79,252,193,108,79,252,193,114,79,252,193,118,79,252,193,126,79,252,193,128,79,252,193,136,79,252,193,160,79,252,193,162,79,252,193,164,79,252,193,202,79,252,193,204,79,252,193,206,79,252,193,208,79,252,193,210,79,252,193,212,79,252,193,214,79,252,193,216,79,252,193,218,79,252,193,220,79,252,193,222,79,252,193,224,79,252,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,0,54,0,206,0,54,0,206,0,54,0,206,0,54,0,193,6,82,252,193,8,82,252,193,10,82,252,193,12,82,252,193,14,82,252,193,16,82,252,193,18,82,252,193,20,82,252,193,208,82,252,193,210,82,252,193,212,82,252,193,214,82,252,193,216,82,252,193,218,82,252,193,220,82,252,193,222,82,252,193,224,82,252,193,238,83,252,193,240,83,252,193,242,83,252,193,244,83,252,193,246,83,252,193,248,83,252,193,250,83,252,193,252,83,252,193,254,83,252,193,2,84,252,193,4,84,252,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,193,34,82,252,193,36,82,252,193,38,82,252,193,40,82,252,193,234,82,252,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,193,136,81,252,193,76,82,252,193,78,82,252,193,80,82,252,193,82,82,252,193,84,82,252,193,86,82,252,193,88,82,252,193,90,82,252,193,92,82,252,193,94,82,252,193,236,82,252,193,238,82,252,193,240,82,252,193,242,82,252,193,244,82,252,193,246,82,252,193,248,82,252,193,250,82,252,193,252,82,252,193,254,82,252,193,20,84,252,193,2,83,252,193,140,81,252,193,142,81,252,193,144,81,252,193,146,81,252,193,148,81,252,193,150,81,252,193,152,81,252,193,154,81,252,193,156,81,252,193,96,82,252,193,98,82,252,193,100,82,252,193,102,82,252,193,104,82,252,193,106,82,252,193,108,82,252,193,110,82,252,193,62,83,252,193,64,83,252,193,66,83,252,193,68,83,252,193,70,83,252,193,72,83,252,193,74,83,252,193,76,83,252,193,78,83,252,193,80,83,252,193,82,83,252,193,84,83,252,193,92,84,252,193,94,84,252,193,96,84,252,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,193,250,81,252,193,252,81,252,193,254,81,252,193,2,82,252,193,4,82,252,193,198,82,252,193,200,82,252,193,202,82,252,193,204,82,252,193,206,82,252,193,218,83,252,193,220,83,252,193,222,83,252,193,224,83,252,193,226,83,252,193,228,83,252,193,230,83,252,193,232,83,252,193,234,83,252,193,236,83,252,193,8,85,252,193,10,85,252,193,12,85,252,193,14,85,252,193,16,85,252,193,18,85,252,193,20,85,252,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,193,186,82,252,193,188,82,252,193,190,82,252,193,192,82,252,193,194,82,252,193,196,82,252,193,190,83,252,193,192,83,252,193,194,83,252,193,196,83,252,193,198,83,252,193,200,83,252,193,202,83,252,193,204,83,252,193,206,83,252,193,208,83,252,193,210,83,252,193,212,83,252,193,214,83,252,193,230,84,252,193,232,84,252,193,234,84,252,193,236,84,252,193,238,84,252,193,240,84,252,193,242,84,252,193,244,84,252,193,246,84,252,193,248,84,252,193,250,84,252,193,252,84,252,193,254,84,252,193,232,82,252,193,12,84,252,193,14,84,252,193,16,84,252,193,18,84,252,193,38,85,252,193,40,85,252,193,42,85,252,193,44,85,252,193,244,85,252,193,246,85,252,193,190,86,252,193,192,86,252,193,194,86,252,193,140,87,252,193,142,87,252,193,144,87,252,193,146,87,252,193,148,87,252,193,44,88,252,193,46,88,252,193,238,88,252,193,240,88,252,193,42,89,252,193,44,89,252,193,82,89,252,193,106,89,252,193,160,89,252,193,210,89,252,193,244,89,252,193,8,90,252,193,10,90,252,193,4,83,252,193,6,83,252,193,8,83,252,193,10,83,252,193,12,83,252,193,14,83,252,193,16,83,252,193,18,83,252,193,20,83,252,193,22,83,252,193,24,83,252,193,26,83,252,193,28,83,252,193,30,83,252,193,32,83,252,193,34,83,252,193,36,83,252,193,38,83,252,193,40,83,252,193,42,83,252,193,44,83,252,193,46,83,252,193,48,83,252,193,50,83,252,193,52,83,252,193,54,83,252,193,56,83,252,193,58,83,252,193,60,83,252,193,22,84,252,193,24,84,252,193,26,84,252,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,193,6,84,252,193,8,84,252,193,10,84,252,193,22,85,252,193,24,85,252,193,26,85,252,193,28,85,252,193,30,85,252,193,32,85,252,193,34,85,252,193,36,85,252,193,236,85,252,193,238,85,252,193,240,85,252,193,242,85,252,193,176,86,252,193,178,86,252,193,180,86,252,193,182,86,252,193,184,86,252,193,186,86,252,193,188,86,252,193,120,87,252,193,122,87,252,193,124,87,252,193,126,87,252,193,128,87,252,193,130,87,252,193,132,87,252,193,134,87,252,193,136,87,252,193,138,87,252,193,28,84,252,193,30,84,252,193,32,84,252,193,34,84,252,193,36,84,252,193,38,84,252,193,40,84,252,193,42,84,252,193,44,84,252,193,46,84,252,193,48,84,252,193,50,84,252,193,52,84,252,193,54,84,252,193,56,84,252,193,58,84,252,193,60,84,252,193,62,84,252,193,64,84,252,193,66,84,252,193,68,84,252,193,70,84,252,193,72,84,252,193,74,84,252,193,76,84,252,193,78,84,252,193,80,84,252,193,82,84,252,193,84,84,252,193,86,84,252,193,88,84,252,193,90,84,252,193,98,84,252,193,100,84,252,193,102,84,252,193,104,84,252,193,106,84,252,193,108,84,252,193,110,84,252,193,96,85,252,193,98,85,252,193,100,85,252,193,102,85,252,193,38,86,252,193,40,86,252,193,42,86,252,193,44,86,252,193,46,86,252,193,48,86,252,193,50,86,252,193,52,86,252,193,54,86,252,193,56,86,252,193,238,86,252,193,240,86,252,193,242,86,252,193,244,86,252,193,246,86,252,193,248,86,252,193,250,86,252,193,252,86,252,193,184,87,252,193,186,87,252,193,188,87,252,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,193,2,85,252,193,4,85,252,193,6,85,252,193,188,85,252,193,190,85,252,193,192,85,252,193,194,85,252,193,196,85,252,193,198,85,252,193,200,85,252,193,202,85,252,193,204,85,252,193,206,85,252,193,208,85,252,193,210,85,252,193,212,85,252,193,148,86,252,193,150,86,252,193,152,86,252,193,154,86,252,193,156,86,252,193,158,86,252,193,160,86,252,193,84,87,252,193,86,87,252,193,88,87,252,193,90,87,252,193,92,87,252,193,94,87,252,193,96,87,252,193,98,87,252,193,100,87,252,193,46,85,252,193,48,85,252,193,50,85,252,193,52,85,252,193,54,85,252,193,56,85,252,193,58,85,252,193,60,85,252,193,62,85,252,193,64,85,252,193,66,85,252,193,68,85,252,193,70,85,252,193,72,85,252,193,74,85,252,193,76,85,252,193,78,85,252,193,80,85,252,193,82,85,252,193,84,85,252,193,86,85,252,193,88,85,252,193,90,85,252,193,92,85,252,193,94,85,252,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,193,164,86,252,193,166,86,252,193,168,86,252,193,170,86,252,193,172,86,252,193,174,86,252,193,104,87,252,193,106,87,252,193,108,87,252,193,110,87,252,193,112,87,252,193,114,87,252,193,116,87,252,193,118,87,252,193,18,88,252,193,20,88,252,193,22,88,252,193,24,88,252,193,142,88,252,193,144,88,252,193,146,88,252,193,228,88,252,193,34,89,252,193,36,89,252,193,38,89,252,193,134,89,252,193,146,89,252,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,193,196,86,252,193,34,86,252,193,198,86,252,193,200,86,252,193,202,86,252,193,204,86,252,193,36,86,252,193,206,86,252,193,208,86,252,193,210,86,252,193,212,86,252,193,214,86,252,193,216,86,252,193,218,86,252,193,220,86,252,193,222,86,252,193,224,86,252,193,226,86,252,193,228,86,252,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,193,254,86,252,193,146,86,252,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,193,230,86,252,193,232,86,252,193,150,87,252,193,234,86,252,193,236,86,252,193,152,87,252,193,154,87,252,193,156,87,252,193,158,87,252,193,160,87,252,193,162,87,252,193,164,87,252,193,166,87,252,193,168,87,252,193,170,87,252,193,172,87,252,193,174,87,252,193,176,87,252,193,178,87,252,193,180,87,252,193,182,87,252,193,48,88,252,193,50,88,252,193,52,88,252,193,54,88,252,193,56,88,252,193,58,88,252,193,60,88,252,193,62,88,252,193,64,88,252,193,66,88,252,193,68,88,252,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,193,102,87,252,193,6,88,252,193,8,88,252,193,10,88,252,193,12,88,252,193,14,88,252,193,16,88,252,193,138,88,252,193,140,88,252,193,222,88,252,193,224,88,252,193,226,88,252,193,26,89,252,193,28,89,252,193,30,89,252,193,32,89,252,193,76,89,252,193,126,89,252,193,132,89,252,193,166,89,252,193,182,89,252,193,6,90,252,193,136,90,252,193,176,90,252,193,178,90,252,193,226,90,252,193,136,91,252,193,138,91,252,193,206,91,252,193,252,91,252,193,254,91,252,193,160,92,252,193,190,87,252,193,192,87,252,193,194,87,252,193,174,88,252,193,176,88,252,193,178,88,252,193,180,88,252,193,2,89,252,193,110,89,252,193,168,89,252,193,170,89,252,193,190,89,252,193,192,89,252,193,214,89,252,193,216,89,252,193,228,89,252,193,12,90,252,193,14,90,252,193,16,90,252,193,28,90,252,193,30,90,252,193,60,90,252,193,96,90,252,193,112,90,252,193,124,90,252,193,126,90,252,193,158,90,252,193,160,90,252,193,194,90,252,193,196,90,252,193,198,90,252,193,200,90,252,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,193,26,88,252,193,28,88,252,193,30,88,252,193,32,88,252,193,34,88,252,193,36,88,252,193,38,88,252,193,40,88,252,193,42,88,252,193,148,88,252,193,150,88,252,193,152,88,252,193,154,88,252,193,230,88,252,193,232,88,252,193,234,88,252,193,236,88,252,193,40,89,252,193,78,89,252,193,80,89,252,193,100,89,252,193,102,89,252,193,104,89,252,193,184,89,252,193,208,89,252,193,56,90,252,193,68,90,252,193,106,90,252,193,108,90,252,193,184,90,252,193,28,91,252,193,30,91,252,193,70,88,252,193,72,88,252,193,74,88,252,193,156,88,252,193,158,88,252,193,160,88,252,193,162,88,252,193,164,88,252,193,166,88,252,193,168,88,252,193,170,88,252,193,172,88,252,193,242,88,252,193,244,88,252,193,246,88,252,193,248,88,252,193,250,88,252,193,252,88,252,193,254,88,252,193,46,89,252,193,48,89,252,193,50,89,252,193,52,89,252,193,84,89,252,193,86,89,252,193,88,89,252,193,108,89,252,193,128,89,252,193,158,89,252,193,162,89,252,193,186,89,252,193,188,89,252,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,193,182,88,252,193,184,88,252,193,186,88,252,193,188,88,252,193,190,88,252,193,192,88,252,193,194,88,252,193,196,88,252,193,198,88,252,193,200,88,252,193,202,88,252,193,136,88,252,193,204,88,252,193,206,88,252,193,208,88,252,193,210,88,252,193,212,88,252,193,214,88,252,193,216,88,252,193,218,88,252,193,220,88,252,193,4,89,252,193,6,89,252,193,8,89,252,193,10,89,252,193,12,89,252,193,14,89,252,193,16,89,252,193,18,89,252,193,20,89,252,193,22,89,252,193,24,89,252,193,54,89,252,193,56,89,252,193,58,89,252,193,60,89,252,193,62,89,252,193,64,89,252,193,66,89,252,193,68,89,252,193,70,89,252,193,72,89,252,193,74,89,252,193,90,89,252,193,92,89,252,193,94,89,252,193,96,89,252,193,98,89,252,193,112,89,252,193,114,89,252,193,116,89,252,193,118,89,252,193,120,89,252,193,122,89,252,193,124,89,252,193,130,89,252,193,226,189,252,193,150,89,252,193,136,89,252,193,138,89,252,193,140,89,252,193,142,89,252,193,144,89,252,193,152,89,252,193,156,89,252,193,164,89,252,193,172,89,252,193,174,89,252,193,176,89,252,193,178,89,252,193,180,89,252,193,194,89,252,193,196,89,252,193,198,89,252,193,200,89,252,193,202,89,252,193,218,89,252,193,220,89,252,193,222,89,252,193,224,89,252,193,226,89,252,193,230,89,252,193,232,89,252,193,234,89,252,193,236,89,252,193,238,89,252,193,240,89,252,193,148,89,252,193,154,89,252,193,204,89,252,193,206,89,252,193,118,90,252,193,138,90,252,193,180,90,252,193,182,90,252,193,20,91,252,193,22,91,252,193,24,91,252,193,26,91,252,193,140,91,252,193,142,91,252,193,208,91,252,193,2,92,252,193,122,92,252,193,252,92,252,193,6,93,252,193,72,93,252,193,102,93,252,193,104,93,252,193,128,93,252,193,152,93,252,193,154,93,252,193,156,93,252,193,166,93,252,193,168,93,252,193,170,93,252,193,234,93,252,193,236,93,252,193,92,94,252,193,212,89,252,193,246,89,252,193,48,90,252,193,72,90,252,193,80,90,252,193,92,90,252,193,104,90,252,193,110,90,252,193,120,90,252,193,122,90,252,193,140,90,252,193,142,90,252,193,144,90,252,193,146,90,252,193,148,90,252,193,150,90,252,193,152,90,252,193,154,90,252,193,156,90,252,193,188,90,252,193,190,90,252,193,192,90,252,193,228,90,252,193,230,90,252,193,232,90,252,193,36,91,252,193,38,91,252,193,40,91,252,193,42,91,252,193,84,91,252,193,86,91,252,193,88,91,252,193,242,89,252,193,248,89,252,193,250,89,252,193,252,89,252,193,254,89,252,193,2,90,252,193,4,90,252,193,32,90,252,193,18,90,252,193,20,90,252,193,22,90,252,193,24,90,252,193,26,90,252,193,34,90,252,193,50,90,252,193,52,90,252,193,36,90,252,193,38,90,252,193,40,90,252,193,42,90,252,193,44,90,252,193,46,90,252,193,54,90,252,193,58,90,252,193,62,90,252,193,64,90,252,193,66,90,252,193,74,90,252,193,76,90,252,193,78,90,252,193,82,90,252,193,84,90,252,193,70,90,252,193,86,90,252,193,186,90,252,193,146,91,252,193,148,91,252,193,210,91,252,193,212,91,252,193,222,92,252,193,224,92,252,193,236,92,252,193,242,92,252,193,74,93,252,193,82,93,252,193,106,93,252,193,132,93,252,193,172,93,252,193,246,93,252,193,252,93,252,193,254,93,252,193,6,94,252,193,54,94,252,193,94,94,252,193,96,94,252,193,98,94,252,193,152,94,252,193,32,95,252,193,34,95,252,193,36,95,252,193,38,95,252,193,40,95,252,193,42,95,252,193,142,95,252,193,88,90,252,193,90,90,252,193,94,90,252,193,98,90,252,193,100,90,252,193,102,90,252,193,114,90,252,193,116,90,252,193,128,90,252,193,130,90,252,193,132,90,252,193,134,90,252,193,162,90,252,193,164,90,252,193,166,90,252,193,168,90,252,193,170,90,252,193,172,90,252,193,174,90,252,193,204,90,252,193,206,90,252,193,208,90,252,193,210,90,252,193,212,90,252,193,214,90,252,193,216,90,252,193,218,90,252,193,220,90,252,193,222,90,252,193,224,90,252,193,246,90,252,193,248,90,252,193,202,90,252,193,234,90,252,193,236,90,252,193,238,90,252,193,240,90,252,193,242,90,252,193,244,90,252,193,44,91,252,193,46,91,252,193,48,91,252,193,50,91,252,193,94,91,252,193,96,91,252,193,98,91,252,193,100,91,252,193,102,91,252,193,104,91,252,193,106,91,252,193,160,91,252,193,162,91,252,193,164,91,252,193,166,91,252,193,168,91,252,193,170,91,252,193,220,91,252,193,222,91,252,193,224,91,252,193,16,92,252,193,18,92,252,193,20,92,252,193,22,92,252,193,50,92,252,193,250,90,252,193,252,90,252,193,254,90,252,193,2,91,252,193,4,91,252,193,6,91,252,193,8,91,252,193,10,91,252,193,12,91,252,193,14,91,252,193,16,91,252,193,18,91,252,193,52,91,252,193,54,91,252,193,56,91,252,193,58,91,252,193,60,91,252,193,62,91,252,193,64,91,252,193,66,91,252,193,68,91,252,193,70,91,252,193,72,91,252,193,74,91,252,193,76,91,252,193,78,91,252,193,80,91,252,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,193,32,91,252,193,34,91,252,193,82,91,252,193,144,91,252,193,4,92,252,193,108,92,252,193,110,92,252,193,132,92,252,193,134,92,252,193,162,92,252,193,192,92,252,193,194,92,252,193,234,92,252,193,254,92,252,193,8,93,252,193,10,93,252,193,18,93,252,193,50,93,252,193,52,93,252,193,54,93,252,193,80,93,252,193,130,93,252,193,190,93,252,193,192,93,252,193,238,93,252,193,244,93,252,193,4,94,252,193,12,94,252,193,20,94,252,193,52,94,252,193,14,95,252,193,16,95,252,193,90,91,252,193,92,91,252,193,150,91,252,193,152,91,252,193,154,91,252,193,156,91,252,193,158,91,252,193,214,91,252,193,216,91,252,193,218,91,252,193,6,92,252,193,8,92,252,193,10,92,252,193,12,92,252,193,14,92,252,193,42,92,252,193,44,92,252,193,46,92,252,193,48,92,252,193,82,92,252,193,84,92,252,193,86,92,252,193,112,92,252,193,136,92,252,193,188,92,252,193,196,92,252,193,210,92,252,193,230,92,252,193,232,92,252,193,244,92,252,193,246,92,252,193,36,93,252,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,193,172,91,252,193,174,91,252,193,176,91,252,193,178,91,252,193,180,91,252,193,182,91,252,193,184,91,252,193,186,91,252,193,188,91,252,193,190,91,252,193,192,91,252,193,132,91,252,193,194,91,252,193,196,91,252,193,198,91,252,193,200,91,252,193,202,91,252,193,204,91,252,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,193,24,92,252,193,26,92,252,193,28,92,252,193,30,92,252,193,32,92,252,193,34,92,252,193,36,92,252,193,38,92,252,193,40,92,252,193,64,92,252,193,66,92,252,193,68,92,252,193,70,92,252,193,72,92,252,193,74,92,252,193,76,92,252,193,78,92,252,193,134,91,252,193,80,92,252,193,92,92,252,193,94,92,252,193,96,92,252,193,98,92,252,193,100,92,252,193,102,92,252,193,104,92,252,193,106,92,252,193,52,92,252,193,54,92,252,193,56,92,252,193,58,92,252,193,60,92,252,193,62,92,252,193,88,92,252,193,90,92,252,193,114,92,252,193,116,92,252,193,152,92,252,193,176,92,252,193,180,92,252,193,226,92,252,193,248,92,252,193,2,93,252,193,12,93,252,193,24,93,252,193,114,93,252,193,174,93,252,193,178,93,252,193,66,94,252,193,68,94,252,193,70,94,252,193,182,94,252,193,184,94,252,193,186,94,252,193,68,95,252,193,70,95,252,193,174,95,252,193,176,95,252,193,24,96,252,193,118,92,252,193,120,92,252,193,124,92,252,193,126,92,252,193,128,92,252,193,130,92,252,193,138,92,252,193,140,92,252,193,142,92,252,193,144,92,252,193,146,92,252,193,148,92,252,193,150,92,252,193,154,92,252,193,156,92,252,193,158,92,252,193,164,92,252,193,166,92,252,193,168,92,252,193,170,92,252,193,172,92,252,193,174,92,252,193,178,92,252,193,182,92,252,193,184,92,252,193,186,92,252,193,190,92,252,193,198,92,252,193,200,92,252,193,202,92,252,193,204,92,252,193,206,92,252,193,240,92,252,193,42,93,252,193,100,93,252,193,146,93,252,193,148,93,252,193,150,93,252,193,216,93,252,193,90,94,252,193,148,94,252,193,4,95,252,193,6,95,252,193,8,95,252,193,10,95,252,193,120,95,252,193,122,95,252,193,124,95,252,193,126,95,252,193,222,95,252,193,224,95,252,193,72,96,252,193,74,96,252,193,76,96,252,193,78,96,252,193,80,96,252,193,178,96,252,193,180,96,252,193,182,96,252,193,232,96,252,193,234,96,252,193,40,97,252,193,42,97,252,193,94,97,252,193,56,93,252,193,76,93,252,193,84,93,252,193,86,93,252,193,108,93,252,193,110,93,252,193,112,93,252,193,158,93,252,193,208,93,252,193,210,93,252,193,212,93,252,193,218,93,252,193,220,93,252,193,240,93,252,193,242,93,252,193,8,94,252,193,32,94,252,193,34,94,252,193,36,94,252,193,38,94,252,193,40,94,252,193,42,94,252,193,46,94,252,193,56,94,252,193,58,94,252,193,60,94,252,193,62,94,252,193,100,94,252,193,64,94,252,193,102,94,252,193,104,94,252,193,106,94,252,193,202,93,252,193,204,93,252,193,206,93,252,193,214,93,252,193,222,93,252,193,230,93,252,193,232,93,252,193,250,93,252,193,2,94,252,193,10,94,252,193,14,94,252,193,16,94,252,193,18,94,252,193,22,94,252,193,24,94,252,193,26,94,252,193,30,94,252,193,28,94,252,193,44,94,252,193,48,94,252,193,50,94,252,193,74,94,252,193,76,94,252,193,78,94,252,193,80,94,252,193,82,94,252,193,84,94,252,193,86,94,252,193,88,94,252,193,124,94,252,193,126,94,252,193,128,94,252,193,108,94,252,193,110,94,252,193,112,94,252,193,114,94,252,193,116,94,252,193,118,94,252,193,154,94,252,193,156,94,252,193,158,94,252,193,160,94,252,193,162,94,252,193,164,94,252,193,166,94,252,193,168,94,252,193,170,94,252,193,172,94,252,193,174,94,252,193,176,94,252,193,178,94,252,193,180,94,252,193,44,95,252,193,46,95,252,193,48,95,252,193,50,95,252,193,52,95,252,193,54,95,252,193,56,95,252,193,58,95,252,193,60,95,252,193,62,95,252,193,64,95,252,193,66,95,252,193,130,94,252,193,132,94,252,193,134,94,252,193,136,94,252,193,138,94,252,193,140,94,252,193,142,94,252,193,144,94,252,193,146,94,252,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,193,150,94,252,193,12,95,252,193,128,95,252,193,130,95,252,193,228,95,252,193,230,95,252,193,232,95,252,193,82,96,252,193,84,96,252,193,86,96,252,193,88,96,252,193,184,96,252,193,44,97,252,193,46,97,252,193,48,97,252,193,50,97,252,193,52,97,252,193,54,97,252,193,56,97,252,193,100,97,252,193,102,97,252,193,166,97,252,193,208,97,252,193,210,97,252,193,58,98,252,193,144,98,252,193,180,98,252,193,2,99,252,193,4,99,252,193,122,99,252,193,124,99,252,193,126,99,252,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,193,72,95,252,193,74,95,252,193,76,95,252,193,78,95,252,193,80,95,252,193,82,95,252,193,84,95,252,193,86,95,252,193,88,95,252,193,90,95,252,193,92,95,252,193,94,95,252,193,96,95,252,193,98,95,252,193,100,95,252,193,102,95,252,193,104,95,252,193,106,95,252,193,108,95,252,193,110,95,252,193,18,95,252,193,20,95,252,193,22,95,252,193,24,95,252,193,26,95,252,193,28,95,252,193,30,95,252,193,132,95,252,193,134,95,252,193,136,95,252,193,138,95,252,193,140,95,252,193,234,95,252,193,236,95,252,193,238,95,252,193,240,95,252,193,242,95,252,193,244,95,252,193,246,95,252,193,248,95,252,193,90,96,252,193,92,96,252,193,94,96,252,193,96,96,252,193,98,96,252,193,100,96,252,193,102,96,252,193,186,96,252,193,188,96,252,193,190,96,252,193,192,96,252,193,194,96,252,193,144,95,252,193,146,95,252,193,148,95,252,193,150,95,252,193,152,95,252,193,154,95,252,193,250,95,252,193,252,95,252,193,254,95,252,193,2,96,252,193,4,96,252,193,104,96,252,193,196,96,252,193,246,96,252,193,248,96,252,193,62,97,252,193,64,97,252,193,66,97,252,193,120,97,252,193,122,97,252,193,174,97,252,193,176,97,252,193,178,97,252,193,180,97,252,193,182,97,252,193,184,97,252,193,186,97,252,193,244,97,252,193,16,98,252,193,36,98,252,193,88,98,252,193,92,98,252,193,110,107,252,193,156,95,252,193,158,95,252,193,160,95,252,193,162,95,252,193,164,95,252,193,166,95,252,193,168,95,252,193,16,169,252,193,170,95,252,193,6,96,252,193,8,96,252,193,10,96,252,193,12,96,252,193,14,96,252,193,16,96,252,193,172,95,252,193,198,96,252,193,18,96,252,193,20,96,252,193,22,96,252,193,106,96,252,193,108,96,252,193,110,96,252,193,112,96,252,193,114,96,252,193,116,96,252,193,200,96,252,193,202,96,252,193,204,96,252,193,250,96,252,193,252,96,252,193,26,96,252,193,118,96,252,193,120,96,252,193,122,96,252,193,124,96,252,193,206,96,252,193,254,96,252,193,2,97,252,193,4,97,252,193,74,97,252,193,128,97,252,193,190,97,252,193,192,97,252,193,220,97,252,193,248,97,252,193,50,98,252,193,138,98,252,193,192,98,252,193,194,98,252,193,232,98,252,193,234,98,252,193,236,98,252,193,238,98,252,193,38,99,252,193,40,99,252,193,42,99,252,193,44,99,252,193,46,99,252,193,48,99,252,193,198,99,252,193,200,99,252,193,202,99,252,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,193,208,96,252,193,210,96,252,193,212,96,252,193,214,96,252,193,216,96,252,193,218,96,252,193,220,96,252,193,222,96,252,193,224,96,252,193,226,96,252,193,228,96,252,193,230,96,252,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,193,236,96,252,193,238,96,252,193,240,96,252,193,242,96,252,193,244,96,252,193,58,97,252,193,60,97,252,193,104,97,252,193,106,97,252,193,108,97,252,193,110,97,252,193,112,97,252,193,114,97,252,193,116,97,252,193,118,97,252,193,168,97,252,193,170,97,252,193,172,97,252,193,212,97,252,193,214,97,252,193,240,97,252,193,242,97,252,193,12,98,252,193,14,98,252,193,34,98,252,193,48,98,252,193,60,98,252,193,66,98,252,193,82,98,252,193,86,98,252,193,108,98,252,193,116,98,252,193,68,97,252,193,70,97,252,193,72,97,252,193,124,97,252,193,126,97,252,193,188,97,252,193,216,97,252,193,218,97,252,193,246,97,252,193,38,98,252,193,40,98,252,193,100,98,252,193,110,98,252,193,118,98,252,193,128,98,252,193,130,98,252,193,150,98,252,193,152,98,252,193,176,98,252,193,182,98,252,193,184,98,252,193,186,98,252,193,188,98,252,193,190,98,252,193,214,98,252,193,216,98,252,193,218,98,252,193,220,98,252,193,222,98,252,193,224,98,252,193,226,98,252,193,228,98,252,193,96,97,252,193,98,97,252,193,164,97,252,193,206,97,252,193,10,98,252,193,30,98,252,193,32,98,252,193,170,98,252,193,114,99,252,193,116,99,252,193,118,99,252,193,120,99,252,193,34,100,252,193,36,100,252,193,38,100,252,193,166,100,252,193,100,101,252,193,102,101,252,193,60,102,252,193,246,102,252,193,248,102,252,193,250,102,252,193,188,103,252,193,190,103,252,193,254,104,252,193,2,105,252,193,206,105,252,193,96,107,252,193,98,107,252,193,150,107,252,193,254,107,252,193,2,108,252,206,128,56,0,206,128,56,0,206,128,56,0,206,128,56,0,193,194,97,252,193,196,97,252,193,198,97,252,193,200,97,252,193,202,97,252,193,222,97,252,193,224,97,252,193,226,97,252,193,228,97,252,193,230,97,252,193,232,97,252,193,234,97,252,193,236,97,252,193,250,97,252,193,238,97,252,193,252,97,252,193,254,97,252,193,2,98,252,193,4,98,252,193,6,98,252,193,8,98,252,193,18,98,252,193,20,98,252,193,22,98,252,193,24,98,252,193,26,98,252,193,28,98,252,193,42,98,252,193,44,98,252,193,46,98,252,193,52,98,252,193,54,98,252,193,56,98,252,193,62,98,252,193,64,98,252,193,68,98,252,193,70,98,252,193,72,98,252,193,74,98,252,193,76,98,252,193,78,98,252,193,80,98,252,193,84,98,252,193,90,98,252,193,94,98,252,193,96,98,252,193,98,98,252,193,102,98,252,193,104,98,252,193,106,98,252,193,112,98,252,193,120,98,252,193,114,98,252,193,132,98,252,193,134,98,252,193,136,98,252,193,140,98,252,193,142,98,252,193,158,98,252,193,162,98,252,193,122,98,252,193,124,98,252,193,146,98,252,193,154,98,252,193,156,98,252,193,160,98,252,193,130,99,252,193,132,99,252,193,54,100,252,193,56,100,252,193,180,100,252,193,182,100,252,193,184,100,252,193,186,100,252,193,114,101,252,193,116,101,252,193,118,101,252,193,120,101,252,193,122,101,252,193,70,102,252,193,72,102,252,193,74,102,252,193,76,102,252,193,4,103,252,193,6,103,252,193,8,103,252,193,10,103,252,193,12,103,252,193,14,103,252,193,16,103,252,193,196,103,252,193,90,104,252,193,126,98,252,193,148,98,252,193,134,99,252,193,136,99,252,193,138,99,252,193,140,99,252,193,142,99,252,193,144,99,252,193,146,99,252,193,58,100,252,193,60,100,252,193,188,100,252,193,190,100,252,193,124,101,252,193,126,101,252,193,128,101,252,193,78,102,252,193,80,102,252,193,82,102,252,193,84,102,252,193,86,102,252,193,18,103,252,193,20,103,252,193,22,103,252,193,24,103,252,193,26,103,252,193,198,103,252,193,200,103,252,193,202,103,252,193,204,103,252,193,108,104,252,193,110,104,252,193,164,98,252,193,166,98,252,193,168,98,252,193,172,98,252,193,174,98,252,193,178,98,252,193,196,98,252,193,198,98,252,193,200,98,252,193,202,98,252,193,204,98,252,193,206,98,252,193,208,98,252,193,210,98,252,193,212,98,252,193,240,98,252,193,242,98,252,193,244,98,252,193,246,98,252,193,248,98,252,193,250,98,252,193,252,98,252,193,254,98,252,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,193,230,98,252,193,6,99,252,193,8,99,252,193,10,99,252,193,12,99,252,193,14,99,252,193,16,99,252,193,18,99,252,193,20,99,252,193,22,99,252,193,24,99,252,193,26,99,252,193,28,99,252,193,30,99,252,193,32,99,252,193,34,99,252,193,148,99,252,193,150,99,252,193,152,99,252,193,154,99,252,193,156,99,252,193,158,99,252,193,160,99,252,193,162,99,252,193,164,99,252,193,166,99,252,193,36,99,252,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,193,128,99,252,193,42,100,252,193,44,100,252,193,46,100,252,193,48,100,252,193,50,100,252,193,52,100,252,193,168,100,252,193,170,100,252,193,172,100,252,193,174,100,252,193,176,100,252,193,178,100,252,193,104,101,252,193,106,101,252,193,108,101,252,193,110,101,252,193,112,101,252,193,62,102,252,193,64,102,252,193,66,102,252,193,68,102,252,193,252,102,252,193,254,102,252,193,2,103,252,193,194,103,252,193,86,104,252,193,88,104,252,193,4,105,252,193,6,105,252,193,126,105,252,193,54,106,252,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,193,62,100,252,193,64,100,252,193,66,100,252,193,68,100,252,193,70,100,252,193,72,100,252,193,74,100,252,193,76,100,252,193,78,100,252,193,80,100,252,193,82,100,252,193,84,100,252,193,86,100,252,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,193,204,99,252,193,206,99,252,193,208,99,252,193,210,99,252,193,212,99,252,193,214,99,252,193,216,99,252,193,218,99,252,193,220,99,252,193,222,99,252,193,88,100,252,193,90,100,252,193,92,100,252,193,94,100,252,193,96,100,252,193,98,100,252,193,100,100,252,193,102,100,252,193,104,100,252,193,234,100,252,193,236,100,252,193,238,100,252,193,240,100,252,193,242,100,252,193,244,100,252,193,246,100,252,193,248,100,252,193,250,100,252,193,252,100,252,193,254,100,252,193,2,101,252,193,4,101,252,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,193,10,101,252,193,12,101,252,193,14,101,252,193,16,101,252,193,18,101,252,193,20,101,252,193,22,101,252,193,24,101,252,193,26,101,252,193,28,101,252,193,30,101,252,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,193,6,101,252,193,8,101,252,193,184,101,252,193,186,101,252,193,188,101,252,193,190,101,252,193,192,101,252,193,194,101,252,193,196,101,252,193,198,101,252,193,128,102,252,193,130,102,252,193,132,102,252,193,134,102,252,193,136,102,252,193,138,102,252,193,140,102,252,193,142,102,252,193,144,102,252,193,146,102,252,193,148,102,252,193,150,102,252,193,62,103,252,193,64,103,252,193,66,103,252,193,68,103,252,193,70,103,252,193,72,103,252,193,74,103,252,193,76,103,252,193,78,103,252,193,80,103,252,193,32,101,252,193,34,101,252,193,36,101,252,193,38,101,252,193,40,101,252,193,42,101,252,193,44,101,252,193,46,101,252,193,48,101,252,193,50,101,252,193,52,101,252,193,54,101,252,193,56,101,252,193,58,101,252,193,60,101,252,193,62,101,252,193,64,101,252,193,66,101,252,193,68,101,252,193,70,101,252,193,72,101,252,193,74,101,252,193,76,101,252,193,78,101,252,193,80,101,252,193,82,101,252,193,84,101,252,193,86,101,252,193,88,101,252,193,90,101,252,193,92,101,252,193,94,101,252,193,96,101,252,193,98,101,252,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,193,88,102,252,193,90,102,252,193,92,102,252,193,94,102,252,193,96,102,252,193,98,102,252,193,100,102,252,193,102,102,252,193,104,102,252,193,106,102,252,193,108,102,252,193,110,102,252,193,112,102,252,193,114,102,252,193,116,102,252,193,118,102,252,193,120,102,252,193,122,102,252,193,28,103,252,193,30,103,252,193,32,103,252,193,34,103,252,193,36,103,252,193,38,103,252,193,124,102,252,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,193,40,103,252,193,42,103,252,193,44,103,252,193,46,103,252,193,48,103,252,193,50,103,252,193,52,103,252,193,126,102,252,193,54,103,252,193,56,103,252,193,58,103,252,193,60,103,252,193,206,103,252,193,208,103,252,193,210,103,252,193,212,103,252,193,214,103,252,193,216,103,252,193,218,103,252,193,220,103,252,193,222,103,252,193,224,103,252,193,226,103,252,193,228,103,252,193,230,103,252,193,232,103,252,193,234,103,252,193,236,103,252,193,238,103,252,193,240,103,252,193,242,103,252,193,244,103,252,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,193,82,103,252,193,84,103,252,193,248,103,252,193,250,103,252,193,252,103,252,193,254,103,252,193,2,104,252,193,4,104,252,193,6,104,252,193,142,104,252,193,144,104,252,193,60,105,252,193,62,105,252,193,64,105,252,193,66,105,252,193,68,105,252,193,70,105,252,193,146,105,252,193,148,105,252,193,150,105,252,193,228,105,252,193,26,106,252,193,28,106,252,193,30,106,252,193,66,106,252,193,86,106,252,193,108,106,252,193,110,106,252,193,144,106,252,193,18,107,252,193,62,107,252,193,122,107,252,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,193,8,104,252,193,10,104,252,193,12,104,252,193,114,104,252,193,116,104,252,193,118,104,252,193,120,104,252,193,122,104,252,193,124,104,252,193,126,104,252,193,128,104,252,193,130,104,252,193,132,104,252,193,246,103,252,193,134,104,252,193,136,104,252,193,138,104,252,193,140,104,252,193,28,105,252,193,30,105,252,193,32,105,252,193,34,105,252,193,36,105,252,193,38,105,252,193,40,105,252,193,42,105,252,193,44,105,252,193,46,105,252,193,48,105,252,193,50,105,252,193,52,105,252,193,54,105,252,193,56,105,252,193,58,105,252,193,138,105,252,193,14,104,252,193,16,104,252,193,18,104,252,193,20,104,252,193,22,104,252,193,24,104,252,193,26,104,252,193,28,104,252,193,30,104,252,193,32,104,252,193,34,104,252,193,36,104,252,193,38,104,252,193,40,104,252,193,42,104,252,193,44,104,252,193,46,104,252,193,48,104,252,193,50,104,252,193,52,104,252,193,54,104,252,193,56,104,252,193,58,104,252,193,60,104,252,193,62,104,252,193,64,104,252,193,66,104,252,193,68,104,252,193,70,104,252,193,72,104,252,193,74,104,252,193,76,104,252,193,78,104,252,193,80,104,252,193,82,104,252,193,146,104,252,193,148,104,252,193,150,104,252,193,152,104,252,193,154,104,252,193,156,104,252,193,158,104,252,193,160,104,252,193,162,104,252,193,164,104,252,193,166,104,252,193,168,104,252,193,170,104,252,193,172,104,252,193,174,104,252,193,176,104,252,193,178,104,252,193,180,104,252,193,182,104,252,193,184,104,252,193,186,104,252,193,188,104,252,193,190,104,252,193,192,104,252,193,194,104,252,193,196,104,252,193,198,104,252,193,84,104,252,193,200,104,252,193,92,104,252,193,94,104,252,193,96,104,252,193,98,104,252,193,100,104,252,193,102,104,252,193,104,104,252,193,106,104,252,193,8,105,252,193,10,105,252,193,12,105,252,193,14,105,252,193,16,105,252,193,18,105,252,193,128,105,252,193,130,105,252,193,208,105,252,193,210,105,252,193,212,105,252,193,214,105,252,193,216,105,252,193,8,106,252,193,10,106,252,193,12,106,252,193,58,106,252,193,120,106,252,193,122,106,252,193,140,106,252,193,148,106,252,193,158,106,252,193,180,106,252,193,182,106,252,193,112,104,252,193,20,105,252,193,22,105,252,193,24,105,252,193,26,105,252,193,132,105,252,193,134,105,252,193,136,105,252,193,218,105,252,193,14,106,252,193,80,106,252,193,154,106,252,193,166,106,252,193,168,106,252,193,184,106,252,193,192,106,252,193,218,106,252,193,228,106,252,193,8,107,252,193,50,107,252,193,52,107,252,193,170,107,252,193,210,107,252,193,212,107,252,193,214,107,252,193,8,108,252,193,68,108,252,193,70,108,252,193,72,108,252,193,186,108,252,193,32,109,252,193,110,109,252,193,202,104,252,193,204,104,252,193,206,104,252,193,208,104,252,193,210,104,252,193,212,104,252,193,214,104,252,193,216,104,252,193,218,104,252,193,220,104,252,193,222,104,252,193,224,104,252,193,226,104,252,193,228,104,252,193,230,104,252,193,232,104,252,193,234,104,252,193,236,104,252,193,238,104,252,193,240,104,252,193,242,104,252,193,244,104,252,193,246,104,252,193,248,104,252,193,250,104,252,193,252,104,252,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,193,140,105,252,193,142,105,252,193,220,105,252,193,144,105,252,193,222,105,252,193,224,105,252,193,226,105,252,193,16,106,252,193,18,106,252,193,20,106,252,193,22,106,252,193,24,106,252,193,60,106,252,193,62,106,252,193,64,106,252,193,82,106,252,193,84,106,252,193,104,106,252,193,106,106,252,193,130,106,252,193,142,106,252,193,152,106,252,193,156,106,252,193,164,106,252,193,170,106,252,193,172,106,252,193,174,106,252,193,202,106,252,193,204,106,252,193,250,106,252,193,252,106,252,193,254,106,252,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,193,230,105,252,193,232,105,252,193,234,105,252,193,236,105,252,193,238,105,252,193,240,105,252,193,242,105,252,193,244,105,252,193,246,105,252,193,248,105,252,193,250,105,252,193,252,105,252,193,254,105,252,193,2,106,252,193,4,106,252,193,6,106,252,193,32,106,252,193,34,106,252,193,36,106,252,193,38,106,252,193,40,106,252,193,42,106,252,193,44,106,252,193,46,106,252,193,48,106,252,193,50,106,252,193,52,106,252,193,68,106,252,193,70,106,252,193,72,106,252,193,74,106,252,193,76,106,252,193,88,106,252,193,90,106,252,193,92,106,252,193,94,106,252,193,96,106,252,193,98,106,252,193,100,106,252,193,102,106,252,193,112,106,252,193,114,106,252,193,116,106,252,193,118,106,252,193,124,106,252,193,126,106,252,193,128,106,252,193,132,106,252,193,56,106,252,193,78,106,252,193,214,106,252,193,6,107,252,193,100,107,252,193,102,107,252,193,154,107,252,193,156,107,252,193,198,107,252,193,200,107,252,193,4,108,252,193,52,108,252,193,54,108,252,193,56,108,252,193,58,108,252,193,106,108,252,193,108,108,252,193,10,109,252,193,72,109,252,193,102,109,252,193,104,109,252,193,190,109,252,193,38,110,252,193,216,110,252,193,4,111,252,193,6,111,252,193,72,111,252,193,74,111,252,193,138,111,252,193,140,111,252,193,142,111,252,193,182,111,252,193,134,106,252,193,136,106,252,193,138,106,252,193,146,106,252,193,150,106,252,193,160,106,252,193,162,106,252,193,176,106,252,193,178,106,252,193,186,106,252,193,188,106,252,193,190,106,252,193,194,106,252,193,196,106,252,193,198,106,252,193,206,106,252,193,208,106,252,193,210,106,252,193,212,106,252,193,220,106,252,193,222,106,252,193,224,106,252,193,230,106,252,193,234,106,252,193,236,106,252,193,240,106,252,193,242,106,252,193,248,106,252,193,244,106,252,193,2,107,252,193,4,107,252,193,20,107,252,193,200,106,252,193,216,106,252,193,226,106,252,193,232,106,252,193,238,106,252,193,246,106,252,193,26,107,252,193,42,107,252,193,44,107,252,193,46,107,252,193,48,107,252,193,104,107,252,193,106,107,252,193,108,107,252,193,158,107,252,193,160,107,252,193,162,107,252,193,164,107,252,193,166,107,252,193,168,107,252,193,202,107,252,193,204,107,252,193,206,107,252,193,208,107,252,193,6,108,252,193,60,108,252,193,62,108,252,193,64,108,252,193,66,108,252,193,110,108,252,193,112,108,252,193,142,108,252,193,10,107,252,193,12,107,252,193,14,107,252,193,16,107,252,193,28,107,252,193,54,107,252,193,56,107,252,193,58,107,252,193,60,107,252,193,112,107,252,193,114,107,252,193,116,107,252,193,118,107,252,193,120,107,252,193,172,107,252,193,174,107,252,193,176,107,252,193,178,107,252,193,216,107,252,193,218,107,252,193,220,107,252,193,222,107,252,193,224,107,252,193,10,108,252,193,12,108,252,193,14,108,252,193,114,108,252,193,116,108,252,193,118,108,252,193,120,108,252,193,122,108,252,193,144,108,252,193,22,107,252,193,24,107,252,193,30,107,252,193,32,107,252,193,34,107,252,193,36,107,252,193,38,107,252,193,40,107,252,193,64,107,252,193,66,107,252,193,68,107,252,193,70,107,252,193,72,107,252,193,74,107,252,193,76,107,252,193,78,107,252,193,80,107,252,193,82,107,252,193,84,107,252,193,86,107,252,193,88,107,252,193,90,107,252,193,92,107,252,193,94,107,252,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,193,184,107,252,193,186,107,252,193,188,107,252,193,190,107,252,193,192,107,252,193,194,107,252,193,196,107,252,193,228,107,252,193,230,107,252,193,232,107,252,193,234,107,252,193,236,107,252,193,238,107,252,193,240,107,252,193,242,107,252,193,244,107,252,193,246,107,252,193,248,107,252,193,250,107,252,193,252,107,252,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,193,180,107,252,193,182,107,252,193,16,108,252,193,74,108,252,193,76,108,252,193,124,108,252,193,150,108,252,193,208,108,252,193,242,108,252,193,20,109,252,193,36,109,252,193,52,109,252,193,54,109,252,193,78,109,252,193,80,109,252,193,120,109,252,193,122,109,252,193,166,109,252,193,204,109,252,193,206,109,252,193,4,110,252,193,6,110,252,193,48,110,252,193,50,110,252,193,78,110,252,193,118,110,252,193,154,110,252,193,202,110,252,193,232,110,252,193,234,110,252,193,28,111,252,193,30,111,252,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,193,78,108,252,193,80,108,252,193,82,108,252,193,84,108,252,193,86,108,252,193,88,108,252,193,90,108,252,193,92,108,252,193,94,108,252,193,96,108,252,193,98,108,252,193,100,108,252,193,126,108,252,193,128,108,252,193,130,108,252,193,132,108,252,193,134,108,252,193,136,108,252,193,138,108,252,193,152,108,252,193,154,108,252,193,156,108,252,193,158,108,252,193,160,108,252,193,48,108,252,193,50,108,252,193,102,108,252,193,104,108,252,193,140,108,252,193,250,108,252,193,50,109,252,193,70,109,252,193,34,110,252,193,36,110,252,193,252,110,252,193,254,110,252,193,68,111,252,193,70,111,252,193,136,111,252,193,178,111,252,193,180,111,252,193,228,111,252,193,230,111,252,193,20,112,252,193,22,112,252,193,82,112,252,193,146,112,252,193,202,112,252,193,204,112,252,193,236,112,252,193,8,113,252,193,58,113,252,193,82,113,252,193,106,113,252,193,122,113,252,193,228,113,252,193,146,108,252,193,148,108,252,193,164,108,252,193,166,108,252,193,168,108,252,193,170,108,252,193,188,108,252,193,190,108,252,193,192,108,252,193,206,108,252,193,228,108,252,193,230,108,252,193,240,108,252,193,4,109,252,193,26,109,252,193,34,109,252,193,74,109,252,193,76,109,252,193,118,109,252,193,162,109,252,193,164,109,252,193,200,109,252,193,250,109,252,193,252,109,252,193,254,109,252,193,2,110,252,193,46,110,252,193,76,110,252,193,106,110,252,193,116,110,252,193,152,110,252,193,184,110,252,193,162,108,252,193,202,108,252,193,204,108,252,193,106,109,252,193,108,109,252,193,140,109,252,193,142,109,252,193,144,109,252,193,146,109,252,193,148,109,252,193,150,109,252,193,192,109,252,193,236,109,252,193,238,109,252,193,240,109,252,193,40,110,252,193,42,110,252,193,66,110,252,193,68,110,252,193,70,110,252,193,102,110,252,193,104,110,252,193,114,110,252,193,138,110,252,193,148,110,252,193,150,110,252,193,176,110,252,193,182,110,252,193,8,111,252,193,76,111,252,193,78,111,252,193,80,111,252,193,172,108,252,193,174,108,252,193,176,108,252,193,178,108,252,193,180,108,252,193,182,108,252,193,184,108,252,193,194,108,252,193,196,108,252,193,198,108,252,193,200,108,252,193,210,108,252,193,212,108,252,193,214,108,252,193,216,108,252,193,218,108,252,193,220,108,252,193,222,108,252,193,224,108,252,193,226,108,252,193,232,108,252,193,234,108,252,193,236,108,252,193,238,108,252,193,244,108,252,193,246,108,252,193,248,108,252,193,252,108,252,193,254,108,252,193,2,109,252,193,6,109,252,193,8,109,252,193,12,109,252,193,14,109,252,193,16,109,252,193,18,109,252,193,22,109,252,193,24,109,252,193,28,109,252,193,30,109,252,193,38,109,252,193,40,109,252,193,42,109,252,193,44,109,252,193,46,109,252,193,48,109,252,193,56,109,252,193,58,109,252,193,60,109,252,193,62,109,252,193,64,109,252,193,66,109,252,193,68,109,252,193,82,109,252,193,84,109,252,193,86,109,252,193,88,109,252,193,90,109,252,193,92,109,252,193,94,109,252,193,96,109,252,193,98,109,252,193,100,109,252,193,124,109,252,193,112,109,252,193,114,109,252,193,116,109,252,193,152,109,252,193,154,109,252,193,156,109,252,193,158,109,252,193,160,109,252,193,194,109,252,193,196,109,252,193,198,109,252,193,242,109,252,193,244,109,252,193,246,109,252,193,248,109,252,193,44,110,252,193,72,110,252,193,74,110,252,193,194,110,252,193,196,110,252,193,198,110,252,193,218,110,252,193,82,111,252,193,84,111,252,193,86,111,252,193,88,111,252,193,190,111,252,193,192,111,252,193,254,111,252,193,50,112,252,193,52,112,252,193,54,112,252,193,126,109,252,193,128,109,252,193,130,109,252,193,132,109,252,193,134,109,252,193,136,109,252,193,138,109,252,193,168,109,252,193,170,109,252,193,172,109,252,193,174,109,252,193,176,109,252,193,178,109,252,193,180,109,252,193,182,109,252,193,208,109,252,193,184,109,252,193,186,109,252,193,188,109,252,193,210,109,252,193,212,109,252,193,214,109,252,193,216,109,252,193,218,109,252,193,220,109,252,193,222,109,252,193,224,109,252,193,226,109,252,193,228,109,252,193,230,109,252,193,232,109,252,193,234,109,252,193,8,110,252,193,10,110,252,193,12,110,252,193,14,110,252,193,16,110,252,193,18,110,252,193,20,110,252,193,22,110,252,193,24,110,252,193,26,110,252,193,28,110,252,193,30,110,252,193,32,110,252,193,52,110,252,193,54,110,252,193,56,110,252,193,58,110,252,193,60,110,252,193,62,110,252,193,64,110,252,193,80,110,252,193,82,110,252,193,84,110,252,193,86,110,252,193,88,110,252,193,90,110,252,193,92,110,252,193,94,110,252,193,96,110,252,193,98,110,252,193,100,110,252,193,108,110,252,193,110,110,252,193,112,110,252,193,120,110,252,193,122,110,252,193,124,110,252,193,126,110,252,193,128,110,252,193,130,110,252,193,132,110,252,193,134,110,252,193,136,110,252,193,140,110,252,193,142,110,252,193,144,110,252,193,146,110,252,193,156,110,252,193,158,110,252,193,160,110,252,193,162,110,252,193,164,110,252,193,166,110,252,193,168,110,252,193,170,110,252,193,172,110,252,193,174,110,252,193,178,110,252,193,180,110,252,193,196,218,253,193,208,218,253,193,214,218,253,193,218,218,253,193,190,110,252,193,186,110,252,193,188,110,252,193,200,110,252,193,220,110,252,193,222,110,252,193,224,110,252,193,226,110,252,193,228,110,252,193,230,110,252,193,10,111,252,193,12,111,252,193,14,111,252,193,16,111,252,193,18,111,252,193,20,111,252,193,22,111,252,193,24,111,252,193,26,111,252,193,90,111,252,193,92,111,252,193,94,111,252,193,96,111,252,193,98,111,252,193,100,111,252,193,102,111,252,193,148,111,252,193,150,111,252,193,104,111,252,193,152,111,252,193,194,111,252,193,196,111,252,193,198,111,252,193,192,110,252,193,204,110,252,193,206,110,252,193,208,110,252,193,210,110,252,193,212,110,252,193,236,110,252,193,238,110,252,193,240,110,252,193,242,110,252,193,244,110,252,193,246,110,252,193,248,110,252,193,250,110,252,193,34,111,252,193,36,111,252,193,38,111,252,193,40,111,252,193,42,111,252,193,44,111,252,193,46,111,252,193,48,111,252,193,50,111,252,193,52,111,252,193,54,111,252,193,56,111,252,193,58,111,252,193,60,111,252,193,62,111,252,193,64,111,252,193,110,111,252,193,112,111,252,193,32,111,252,193,106,111,252,193,108,111,252,193,154,111,252,193,200,111,252,193,202,111,252,193,10,112,252,193,106,112,252,193,108,112,252,193,164,112,252,193,246,112,252,193,52,113,252,193,70,113,252,193,120,113,252,193,136,113,252,193,138,113,252,193,184,113,252,193,186,113,252,193,188,113,252,193,190,113,252,193,192,113,252,193,46,114,252,193,48,114,252,193,50,114,252,193,52,114,252,193,54,114,252,193,56,114,252,193,58,114,252,193,60,114,252,193,62,114,252,193,64,114,252,193,2,115,252,193,114,111,252,193,116,111,252,193,118,111,252,193,120,111,252,193,122,111,252,193,124,111,252,193,126,111,252,193,128,111,252,193,130,111,252,193,132,111,252,193,134,111,252,193,66,111,252,193,156,111,252,193,158,111,252,193,160,111,252,193,162,111,252,193,164,111,252,193,166,111,252,193,168,111,252,193,170,111,252,193,172,111,252,193,174,111,252,193,176,111,252,193,204,111,252,193,206,111,252,193,208,111,252,193,210,111,252,193,212,111,252,193,214,111,252,193,216,111,252,193,218,111,252,193,220,111,252,193,144,111,252,193,146,111,252,193,188,111,252,193,246,111,252,193,248,111,252,193,250,111,252,193,252,111,252,193,40,112,252,193,42,112,252,193,44,112,252,193,46,112,252,193,48,112,252,193,86,112,252,193,88,112,252,193,90,112,252,193,92,112,252,193,150,112,252,193,214,112,252,193,242,112,252,193,20,113,252,193,22,113,252,193,66,113,252,193,96,113,252,193,164,113,252,193,166,113,252,193,168,113,252,193,234,113,252,193,236,113,252,193,238,113,252,193,240,113,252,193,168,114,252,193,170,114,252,193,184,111,252,193,186,111,252,193,234,111,252,193,236,111,252,193,238,111,252,193,240,111,252,193,242,111,252,193,244,111,252,193,24,112,252,193,26,112,252,193,28,112,252,193,30,112,252,193,32,112,252,193,34,112,252,193,36,112,252,193,38,112,252,193,84,112,252,193,148,112,252,193,206,112,252,193,208,112,252,193,210,112,252,193,212,112,252,193,238,112,252,193,240,112,252,193,10,113,252,193,12,113,252,193,14,113,252,193,16,113,252,193,18,113,252,193,50,113,252,193,60,113,252,193,62,113,252,193,222,111,252,193,224,111,252,193,226,111,252,193,12,112,252,193,14,112,252,193,16,112,252,193,18,112,252,193,58,112,252,193,60,112,252,193,62,112,252,193,64,112,252,193,66,112,252,193,68,112,252,193,70,112,252,193,72,112,252,193,74,112,252,193,76,112,252,193,78,112,252,193,80,112,252,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,193,2,112,252,193,4,112,252,193,6,112,252,193,8,112,252,193,56,112,252,193,100,112,252,193,102,112,252,193,104,112,252,193,158,112,252,193,160,112,252,193,162,112,252,193,216,112,252,193,218,112,252,193,26,113,252,193,128,113,252,193,134,113,252,193,172,113,252,193,174,113,252,193,176,113,252,193,178,113,252,193,180,113,252,193,182,113,252,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,193,94,112,252,193,96,112,252,193,98,112,252,193,152,112,252,193,154,112,252,193,156,112,252,193,244,112,252,193,24,113,252,193,68,113,252,193,88,113,252,193,118,113,252,193,170,113,252,193,242,113,252,193,244,113,252,193,246,113,252,193,248,113,252,193,250,113,252,193,184,114,252,193,186,114,252,193,188,114,252,193,190,114,252,193,136,115,252,193,138,115,252,193,140,115,252,193,142,115,252,193,144,115,252,193,146,115,252,193,148,115,252,193,150,115,252,193,86,116,252,193,88,116,252,193,90,116,252,193,234,112,252,193,250,112,252,193,252,112,252,193,254,112,252,193,2,113,252,193,4,113,252,193,6,113,252,193,28,113,252,193,30,113,252,193,32,113,252,193,34,113,252,193,36,113,252,193,38,113,252,193,40,113,252,193,42,113,252,193,44,113,252,193,46,113,252,193,48,113,252,193,54,113,252,193,72,113,252,193,74,113,252,193,76,113,252,193,78,113,252,193,80,113,252,193,90,113,252,193,92,113,252,193,98,113,252,193,100,113,252,193,102,113,252,193,104,113,252,193,94,113,252,193,108,113,252,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,193,4,222,252,193,6,222,252,193,8,222,252,193,10,222,252,193,12,222,252,193,14,222,252,193,16,222,252,193,18,222,252,193,20,222,252,193,32,222,252,193,34,222,252,193,36,222,252,193,38,222,252,193,40,222,252,193,46,222,252,193,48,222,252,193,50,222,252,193,56,113,252,193,52,222,252,193,54,222,252,193,56,222,252,193,64,222,252,193,66,222,252,193,68,222,252,193,64,113,252,193,84,113,252,193,86,113,252,193,112,113,252,193,114,113,252,193,232,113,252,193,164,114,252,193,166,114,252,193,110,115,252,193,112,115,252,193,114,115,252,193,116,115,252,193,118,115,252,193,120,115,252,193,122,115,252,193,124,115,252,193,58,116,252,193,60,116,252,193,62,116,252,193,64,116,252,193,66,116,252,193,68,116,252,193,44,117,252,193,46,117,252,193,20,118,252,193,22,118,252,193,24,118,252,193,26,118,252,193,18,119,252,193,20,119,252,193,224,119,252,193,226,119,252,193,110,113,252,193,116,113,252,193,124,113,252,193,126,113,252,193,130,113,252,193,132,113,252,193,140,113,252,193,142,113,252,193,144,113,252,193,146,113,252,193,148,113,252,193,150,113,252,193,152,113,252,193,154,113,252,193,156,113,252,193,158,113,252,193,160,113,252,193,162,113,252,193,194,113,252,193,196,113,252,193,198,113,252,193,200,113,252,193,202,113,252,193,204,113,252,193,206,113,252,193,208,113,252,193,210,113,252,193,212,113,252,193,214,113,252,193,216,113,252,193,218,113,252,193,220,113,252,193,222,113,252,193,224,113,252,193,226,113,252,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,193,230,113,252,193,158,114,252,193,160,114,252,193,162,114,252,193,100,115,252,193,102,115,252,193,104,115,252,193,106,115,252,193,50,116,252,193,52,116,252,193,54,116,252,193,40,117,252,193,42,117,252,193,12,118,252,193,14,118,252,193,16,118,252,193,18,118,252,193,10,119,252,193,12,119,252,193,14,119,252,193,16,119,252,193,216,119,252,193,218,119,252,193,220,119,252,193,222,119,252,193,162,120,252,193,164,120,252,193,166,120,252,193,94,121,252,193,96,121,252,193,98,121,252,193,100,121,252,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,193,172,114,252,193,174,114,252,193,176,114,252,193,178,114,252,193,180,114,252,193,182,114,252,193,126,115,252,193,128,115,252,193,130,115,252,193,132,115,252,193,134,115,252,193,70,116,252,193,72,116,252,193,74,116,252,193,76,116,252,193,78,116,252,193,80,116,252,193,82,116,252,193,84,116,252,193,48,117,252,193,50,117,252,193,52,117,252,193,54,117,252,193,56,117,252,193,58,117,252,193,28,118,252,193,30,118,252,193,32,118,252,193,34,118,252,193,36,118,252,193,38,118,252,193,40,118,252,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,193,152,115,252,193,154,115,252,193,156,115,252,193,158,115,252,193,160,115,252,193,162,115,252,193,164,115,252,193,166,115,252,193,168,115,252,193,170,115,252,193,172,115,252,193,174,115,252,193,176,115,252,193,178,115,252,193,180,115,252,193,182,115,252,193,184,115,252,193,186,115,252,193,254,114,252,193,4,115,252,193,6,115,252,193,8,115,252,193,10,115,252,193,12,115,252,193,14,115,252,193,16,115,252,193,190,115,252,193,192,115,252,193,194,115,252,193,196,115,252,193,198,115,252,193,200,115,252,193,202,115,252,193,204,115,252,193,132,116,252,193,134,116,252,193,136,116,252,193,138,116,252,193,140,116,252,193,142,116,252,193,144,116,252,193,146,116,252,193,148,116,252,193,150,116,252,193,152,116,252,193,154,116,252,193,156,116,252,193,158,116,252,193,160,116,252,193,162,116,252,193,164,116,252,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,193,96,116,252,193,188,115,252,193,98,116,252,193,100,116,252,193,102,116,252,193,104,116,252,193,106,116,252,193,108,116,252,193,110,116,252,193,112,116,252,193,114,116,252,193,116,116,252,193,118,116,252,193,120,116,252,193,122,116,252,193,124,116,252,193,126,116,252,193,128,116,252,193,76,117,252,193,78,117,252,193,80,117,252,193,82,117,252,193,84,117,252,193,86,117,252,193,88,117,252,193,90,117,252,193,92,117,252,193,94,117,252,193,96,117,252,193,98,117,252,193,100,117,252,193,102,117,252,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,193,92,116,252,193,94,116,252,193,60,117,252,193,62,117,252,193,64,117,252,193,66,117,252,193,68,117,252,193,70,117,252,193,72,117,252,193,74,117,252,193,48,118,252,193,50,118,252,193,52,118,252,193,54,118,252,193,56,118,252,193,58,118,252,193,60,118,252,193,62,118,252,193,64,118,252,193,66,118,252,193,68,118,252,193,48,119,252,193,50,119,252,193,52,119,252,193,246,119,252,193,248,119,252,193,250,119,252,193,252,119,252,193,254,119,252,193,2,120,252,193,192,120,252,193,194,120,252,193,166,116,252,193,130,117,252,193,132,117,252,193,134,117,252,193,136,117,252,193,138,117,252,193,140,117,252,193,142,117,252,193,144,117,252,193,146,117,252,193,122,118,252,193,124,118,252,193,126,118,252,193,128,118,252,193,130,118,252,193,132,118,252,193,134,118,252,193,136,118,252,193,138,118,252,193,140,118,252,193,142,118,252,193,144,118,252,193,146,118,252,193,80,119,252,193,82,119,252,193,84,119,252,193,86,119,252,193,88,119,252,193,90,119,252,193,92,119,252,193,94,119,252,193,96,119,252,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,193,154,117,252,193,32,117,252,193,34,117,252,193,36,117,252,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,193,104,117,252,193,70,118,252,193,106,117,252,193,108,117,252,193,110,117,252,193,112,117,252,193,114,117,252,193,116,117,252,193,118,117,252,193,120,117,252,193,122,117,252,193,124,117,252,193,126,117,252,193,128,117,252,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,193,8,118,252,193,10,118,252,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,193,42,118,252,193,44,118,252,193,46,118,252,193,22,119,252,193,24,119,252,193,26,119,252,193,28,119,252,193,30,119,252,193,32,119,252,193,34,119,252,193,36,119,252,193,38,119,252,193,40,119,252,193,42,119,252,193,44,119,252,193,46,119,252,193,236,119,252,193,238,119,252,193,240,119,252,193,242,119,252,193,244,119,252,193,176,120,252,193,178,120,252,193,180,120,252,193,182,120,252,193,184,120,252,193,186,120,252,193,188,120,252,193,190,120,252,193,108,121,252,193,110,121,252,193,112,121,252,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,193,54,119,252,193,56,119,252,193,58,119,252,193,60,119,252,193,62,119,252,193,64,119,252,193,66,119,252,193,68,119,252,193,70,119,252,193,72,119,252,193,74,119,252,193,76,119,252,193,78,119,252,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,193,98,119,252,193,100,119,252,193,36,120,252,193,38,120,252,193,40,120,252,193,42,120,252,193,44,120,252,193,46,120,252,193,48,120,252,193,50,120,252,193,52,120,252,193,240,120,252,193,242,120,252,193,244,120,252,193,246,120,252,193,248,120,252,193,250,120,252,193,252,120,252,193,254,120,252,193,2,121,252,193,144,121,252,193,146,121,252,193,148,121,252,193,150,121,252,193,152,121,252,193,154,121,252,193,156,121,252,193,98,122,252,193,100,122,252,193,102,122,252,193,104,122,252,193,156,122,252,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,193,214,119,252,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,193,228,119,252,193,230,119,252,193,232,119,252,193,234,119,252,193,168,120,252,193,170,120,252,193,172,120,252,193,174,120,252,193,104,121,252,193,106,121,252,193,72,122,252,193,192,122,252,193,24,123,252,193,68,123,252,193,150,123,252,193,180,123,252,193,92,124,252,193,94,124,252,193,184,124,252,193,186,124,252,193,232,124,252,193,86,125,252,193,98,125,252,193,112,125,252,193,122,125,252,193,162,125,252,193,214,125,252,193,216,125,252,193,218,125,252,193,102,126,252,193,104,126,252,193,106,126,252,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,193,200,120,252,193,202,120,252,193,204,120,252,193,206,120,252,193,208,120,252,193,210,120,252,193,212,120,252,193,214,120,252,193,216,120,252,193,218,120,252,193,220,120,252,193,222,120,252,193,224,120,252,193,226,120,252,193,228,120,252,193,230,120,252,193,232,120,252,193,234,120,252,193,236,120,252,193,238,120,252,193,122,121,252,193,124,121,252,193,126,121,252,193,128,121,252,193,130,121,252,193,132,121,252,193,134,121,252,193,136,121,252,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,193,160,120,252,193,92,121,252,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,193,196,120,252,193,198,120,252,193,118,121,252,193,120,121,252,193,250,121,252,193,252,121,252,193,254,121,252,193,84,122,252,193,86,122,252,193,146,122,252,193,202,122,252,193,232,122,252,193,52,123,252,193,62,123,252,193,80,123,252,193,100,123,252,193,114,123,252,193,152,123,252,193,18,124,252,193,28,124,252,193,64,124,252,193,66,124,252,193,98,124,252,193,188,124,252,193,238,124,252,193,240,124,252,193,10,125,252,193,40,125,252,193,42,125,252,193,44,125,252,193,58,125,252,193,60,125,252,193,102,121,252,193,70,122,252,193,144,122,252,193,188,122,252,193,190,122,252,193,48,123,252,193,78,123,252,193,136,123,252,193,56,124,252,193,58,124,252,193,150,124,252,193,230,124,252,193,6,125,252,193,30,125,252,193,32,125,252,193,116,125,252,193,120,125,252,193,96,126,252,193,98,126,252,193,100,126,252,193,66,127,252,193,68,127,252,193,70,127,252,193,72,127,252,193,74,127,252,193,36,128,252,193,38,128,252,193,40,128,252,193,42,128,252,193,44,128,252,193,214,128,252,193,216,128,252,193,114,121,252,193,116,121,252,193,236,121,252,193,238,121,252,193,240,121,252,193,242,121,252,193,244,121,252,193,246,121,252,193,248,121,252,193,74,122,252,193,76,122,252,193,78,122,252,193,80,122,252,193,82,122,252,193,194,122,252,193,196,122,252,193,198,122,252,193,200,122,252,193,230,122,252,193,12,123,252,193,14,123,252,193,56,123,252,193,60,123,252,193,96,123,252,193,98,123,252,193,110,123,252,193,112,123,252,193,198,123,252,193,208,123,252,193,26,124,252,193,60,124,252,193,62,124,252,193,138,121,252,193,140,121,252,193,142,121,252,193,2,122,252,193,4,122,252,193,6,122,252,193,8,122,252,193,10,122,252,193,12,122,252,193,14,122,252,193,16,122,252,193,88,122,252,193,90,122,252,193,92,122,252,193,94,122,252,193,96,122,252,193,148,122,252,193,150,122,252,193,152,122,252,193,154,122,252,193,234,122,252,193,254,122,252,193,26,123,252,193,2,123,252,193,16,123,252,193,18,123,252,193,28,123,252,193,54,123,252,193,70,123,252,193,82,123,252,193,116,123,252,193,118,123,252,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,193,18,122,252,193,20,122,252,193,22,122,252,193,24,122,252,193,26,122,252,193,28,122,252,193,30,122,252,193,32,122,252,193,34,122,252,193,36,122,252,193,38,122,252,193,40,122,252,193,42,122,252,193,44,122,252,193,46,122,252,193,48,122,252,193,50,122,252,193,52,122,252,193,54,122,252,193,56,122,252,193,58,122,252,193,60,122,252,193,48,144,253,193,62,122,252,193,64,122,252,193,66,122,252,193,68,122,252,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,193,160,122,252,193,162,122,252,193,164,122,252,193,166,122,252,193,168,122,252,193,170,122,252,193,172,122,252,193,174,122,252,193,176,122,252,193,178,122,252,193,180,122,252,193,182,122,252,193,184,122,252,193,206,122,252,193,208,122,252,193,210,122,252,193,212,122,252,193,214,122,252,193,216,122,252,193,158,122,252,193,204,122,252,193,236,122,252,193,238,122,252,193,20,123,252,193,50,123,252,193,64,123,252,193,72,123,252,193,102,123,252,193,154,123,252,193,210,123,252,193,212,123,252,193,214,123,252,193,246,123,252,193,8,124,252,193,70,124,252,193,72,124,252,193,104,124,252,193,106,124,252,193,160,124,252,193,192,124,252,193,242,124,252,193,136,125,252,193,148,125,252,193,186,125,252,193,188,125,252,193,28,126,252,193,30,126,252,193,32,126,252,193,34,126,252,193,36,126,252,193,210,126,252,193,218,122,252,193,220,122,252,193,186,122,252,193,222,122,252,193,88,27,253,193,224,122,252,193,226,122,252,193,228,122,252,193,240,122,252,193,242,122,252,193,244,122,252,193,246,122,252,193,248,122,252,193,250,122,252,193,252,122,252,193,4,123,252,193,6,123,252,193,8,123,252,193,10,123,252,193,22,123,252,193,30,123,252,193,32,123,252,193,34,123,252,193,36,123,252,193,38,123,252,193,40,123,252,193,42,123,252,193,44,123,252,193,46,123,252,193,58,123,252,193,66,123,252,193,74,123,252,193,76,123,252,193,84,123,252,193,86,123,252,193,88,123,252,193,90,123,252,193,92,123,252,193,94,123,252,193,104,123,252,193,106,123,252,193,108,123,252,193,120,123,252,193,122,123,252,193,124,123,252,193,126,123,252,193,128,123,252,193,130,123,252,193,132,123,252,193,134,123,252,193,142,123,252,193,144,123,252,193,146,123,252,193,148,123,252,193,156,123,252,193,158,123,252,193,160,123,252,193,162,123,252,193,164,123,252,193,166,123,252,193,168,123,252,193,170,123,252,193,172,123,252,193,174,123,252,193,138,123,252,193,10,124,252,193,16,124,252,193,20,124,252,193,30,124,252,193,32,124,252,193,36,124,252,193,38,124,252,193,40,124,252,193,68,124,252,193,100,124,252,193,102,124,252,193,156,124,252,193,158,124,252,193,190,124,252,193,68,125,252,193,70,125,252,193,102,125,252,193,114,125,252,193,134,125,252,193,142,125,252,193,144,125,252,193,146,125,252,193,164,125,252,193,166,125,252,193,168,125,252,193,170,125,252,193,172,125,252,193,174,125,252,193,176,125,252,193,178,125,252,193,180,125,252,193,176,123,252,193,178,123,252,193,182,123,252,193,184,123,252,193,186,123,252,193,188,123,252,193,190,123,252,193,192,123,252,193,194,123,252,193,196,123,252,193,200,123,252,193,202,123,252,193,204,123,252,193,206,123,252,193,224,123,252,193,216,123,252,193,218,123,252,193,220,123,252,193,222,123,252,193,226,123,252,193,228,123,252,193,230,123,252,193,232,123,252,193,234,123,252,193,236,123,252,193,238,123,252,193,240,123,252,193,242,123,252,193,244,123,252,193,254,123,252,193,248,123,252,193,250,123,252,193,252,123,252,193,2,124,252,193,4,124,252,193,6,124,252,193,12,124,252,193,14,124,252,193,22,124,252,193,24,124,252,193,34,124,252,193,42,124,252,193,44,124,252,193,46,124,252,193,48,124,252,193,50,124,252,193,52,124,252,193,54,124,252,193,74,124,252,193,76,124,252,193,78,124,252,193,80,124,252,193,82,124,252,193,84,124,252,193,86,124,252,193,88,124,252,193,90,124,252,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,193,96,124,252,193,152,124,252,193,154,124,252,193,234,124,252,193,236,124,252,193,8,125,252,193,34,125,252,193,36,125,252,193,38,125,252,193,56,125,252,193,118,125,252,193,220,125,252,193,222,125,252,193,114,126,252,193,116,126,252,193,88,127,252,193,90,127,252,193,92,127,252,193,94,127,252,193,96,127,252,193,98,127,252,193,54,128,252,193,56,128,252,193,58,128,252,193,60,128,252,193,236,128,252,193,238,128,252,193,240,128,252,193,242,128,252,193,244,128,252,193,246,128,252,193,248,128,252,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,193,164,124,252,193,166,124,252,193,168,124,252,193,170,124,252,193,172,124,252,193,174,124,252,193,176,124,252,193,178,124,252,193,180,124,252,193,182,124,252,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,193,244,124,252,193,246,124,252,193,248,124,252,193,250,124,252,193,252,124,252,193,254,124,252,193,2,125,252,193,4,125,252,193,12,125,252,193,14,125,252,193,16,125,252,193,18,125,252,193,20,125,252,193,22,125,252,193,24,125,252,193,26,125,252,193,28,125,252,193,46,125,252,193,48,125,252,193,50,125,252,193,52,125,252,193,54,125,252,193,62,125,252,193,64,125,252,193,66,125,252,193,100,125,252,193,224,125,252,193,118,126,252,193,120,126,252,193,122,126,252,193,124,126,252,193,126,126,252,193,128,126,252,193,130,126,252,193,132,126,252,193,100,127,252,193,102,127,252,193,104,127,252,193,106,127,252,193,108,127,252,193,110,127,252,193,62,128,252,193,64,128,252,193,66,128,252,193,68,128,252,193,70,128,252,193,72,128,252,193,74,128,252,193,76,128,252,193,78,128,252,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,193,72,125,252,193,74,125,252,193,76,125,252,193,78,125,252,193,80,125,252,193,82,125,252,193,84,125,252,193,88,125,252,193,90,125,252,193,92,125,252,193,94,125,252,193,96,125,252,193,104,125,252,193,106,125,252,193,108,125,252,193,110,125,252,193,128,125,252,193,124,125,252,193,126,125,252,193,130,125,252,193,132,125,252,193,138,125,252,193,140,125,252,193,150,125,252,193,152,125,252,193,154,125,252,193,156,125,252,193,158,125,252,193,160,125,252,193,190,125,252,193,192,125,252,193,194,125,252,193,182,125,252,193,184,125,252,193,228,125,252,193,230,125,252,193,232,125,252,193,234,125,252,193,236,125,252,193,238,125,252,193,240,125,252,193,242,125,252,193,244,125,252,193,246,125,252,193,248,125,252,193,250,125,252,193,252,125,252,193,254,125,252,193,2,126,252,193,4,126,252,193,6,126,252,193,8,126,252,193,10,126,252,193,12,126,252,193,14,126,252,193,16,126,252,193,18,126,252,193,20,126,252,193,22,126,252,193,24,126,252,193,26,126,252,193,134,126,252,193,136,126,252,193,138,126,252,193,196,125,252,193,198,125,252,193,200,125,252,193,202,125,252,193,204,125,252,193,206,125,252,193,208,125,252,193,210,125,252,193,212,125,252,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,193,108,126,252,193,110,126,252,193,112,126,252,193,76,127,252,193,78,127,252,193,80,127,252,193,82,127,252,193,84,127,252,193,86,127,252,193,46,128,252,193,48,128,252,193,50,128,252,193,52,128,252,193,226,128,252,193,228,128,252,193,230,128,252,193,232,128,252,193,234,128,252,193,236,129,252,193,238,129,252,193,240,129,252,193,242,129,252,193,204,130,252,193,206,130,252,193,208,130,252,193,210,130,252,193,212,130,252,193,140,131,252,193,52,132,252,193,54,132,252,193,56,132,252,193,240,132,252,193,140,126,252,193,142,126,252,193,144,126,252,193,146,126,252,193,148,126,252,193,150,126,252,193,152,126,252,193,154,126,252,193,156,126,252,193,158,126,252,193,160,126,252,193,162,126,252,193,164,126,252,193,166,126,252,193,168,126,252,193,170,126,252,193,172,126,252,193,174,126,252,193,176,126,252,193,178,126,252,193,180,126,252,193,182,126,252,193,184,126,252,193,186,126,252,193,188,126,252,193,190,126,252,193,192,126,252,193,194,126,252,193,196,126,252,193,198,126,252,193,200,126,252,193,202,126,252,193,204,126,252,193,206,126,252,193,112,127,252,193,114,127,252,193,116,127,252,193,118,127,252,193,120,127,252,193,122,127,252,193,124,127,252,193,126,127,252,193,128,127,252,193,130,127,252,193,132,127,252,193,134,127,252,193,136,127,252,193,138,127,252,193,140,127,252,193,142,127,252,193,144,127,252,193,146,127,252,193,148,127,252,193,150,127,252,193,152,127,252,193,154,127,252,193,156,127,252,193,158,127,252,193,160,127,252,193,162,127,252,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,193,212,126,252,193,214,126,252,193,216,126,252,193,218,126,252,193,220,126,252,193,222,126,252,193,224,126,252,193,226,126,252,193,228,126,252,193,166,127,252,193,168,127,252,193,170,127,252,193,172,127,252,193,174,127,252,193,176,127,252,193,178,127,252,193,136,128,252,193,138,128,252,193,140,128,252,193,142,128,252,193,144,128,252,193,146,128,252,193,148,128,252,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,193,20,129,252,193,22,129,252,193,24,129,252,193,26,129,252,193,28,129,252,193,30,129,252,193,20,130,252,193,32,129,252,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,193,218,128,252,193,220,128,252,193,222,128,252,193,224,128,252,193,224,129,252,193,226,129,252,193,228,129,252,193,230,129,252,193,232,129,252,193,234,129,252,193,200,130,252,193,202,130,252,193,134,131,252,193,136,131,252,193,138,131,252,193,40,132,252,193,42,132,252,193,44,132,252,193,46,132,252,193,48,132,252,193,50,132,252,193,234,132,252,193,236,132,252,193,238,132,252,193,112,133,252,193,114,133,252,193,116,133,252,193,192,133,252,193,194,133,252,193,196,133,252,193,86,134,252,193,154,134,252,193,250,128,252,193,252,128,252,193,244,129,252,193,246,129,252,193,248,129,252,193,250,129,252,193,252,129,252,193,254,129,252,193,2,130,252,193,4,130,252,193,6,130,252,193,8,130,252,193,214,130,252,193,216,130,252,193,218,130,252,193,220,130,252,193,222,130,252,193,224,130,252,193,226,130,252,193,228,130,252,193,230,130,252,193,232,130,252,193,142,131,252,193,144,131,252,193,146,131,252,193,148,131,252,193,150,131,252,206,0,62,0,206,0,62,0,206,0,62,0,206,0,62,0,206,0,62,0,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,193,10,130,252,193,12,130,252,193,14,130,252,193,16,130,252,193,18,130,252,193,234,130,252,193,236,130,252,193,238,130,252,193,240,130,252,193,242,130,252,193,244,130,252,193,152,131,252,193,154,131,252,193,156,131,252,193,158,131,252,193,160,131,252,193,162,131,252,193,164,131,252,193,166,131,252,193,76,132,252,193,78,132,252,193,80,132,252,193,82,132,252,193,84,132,252,193,86,132,252,193,88,132,252,193,34,129,252,193,36,129,252,193,38,129,252,193,40,129,252,193,42,129,252,193,44,129,252,193,46,129,252,193,48,129,252,193,50,129,252,193,52,129,252,193,54,129,252,193,56,129,252,193,58,129,252,193,60,129,252,193,62,129,252,193,64,129,252,193,66,129,252,193,68,129,252,193,70,129,252,193,72,129,252,193,74,129,252,193,76,129,252,193,78,129,252,193,80,129,252,193,82,129,252,193,84,129,252,193,86,129,252,193,88,129,252,193,90,129,252,193,22,130,252,193,24,130,252,193,26,130,252,193,28,130,252,193,30,130,252,193,32,130,252,193,34,130,252,193,36,130,252,193,38,130,252,193,40,130,252,193,42,130,252,193,44,130,252,193,46,130,252,193,48,130,252,193,50,130,252,193,52,130,252,193,54,130,252,193,56,130,252,193,58,130,252,193,92,129,252,193,60,130,252,193,62,130,252,193,64,130,252,193,66,130,252,193,68,130,252,193,70,130,252,193,72,130,252,193,74,130,252,193,76,130,252,193,246,130,252,193,248,130,252,193,250,130,252,193,252,130,252,193,254,130,252,193,2,131,252,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,193,80,130,252,193,82,130,252,193,84,130,252,193,86,130,252,193,88,130,252,193,90,130,252,193,92,130,252,193,94,130,252,193,96,130,252,193,58,131,252,193,60,131,252,193,62,131,252,193,64,131,252,193,66,131,252,193,68,131,252,193,70,131,252,193,206,131,252,193,208,131,252,193,210,131,252,193,212,131,252,193,214,131,252,193,216,131,252,193,218,131,252,193,138,132,252,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,193,4,131,252,193,78,130,252,193,6,131,252,193,8,131,252,193,10,131,252,193,12,131,252,193,14,131,252,193,16,131,252,193,18,131,252,193,20,131,252,193,22,131,252,193,24,131,252,193,26,131,252,193,28,131,252,193,30,131,252,193,32,131,252,193,34,131,252,193,36,131,252,193,38,131,252,193,40,131,252,193,42,131,252,193,44,131,252,193,46,131,252,193,48,131,252,193,50,131,252,193,52,131,252,193,168,131,252,193,170,131,252,193,54,131,252,193,172,131,252,193,174,131,252,193,176,131,252,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,193,178,131,252,193,180,131,252,193,182,131,252,193,184,131,252,193,56,131,252,193,186,131,252,193,188,131,252,193,190,131,252,193,192,131,252,193,194,131,252,193,196,131,252,193,198,131,252,193,200,131,252,193,202,131,252,193,204,131,252,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,193,220,131,252,193,140,132,252,193,142,132,252,193,144,132,252,193,146,132,252,193,148,132,252,193,150,132,252,193,152,132,252,193,154,132,252,193,58,133,252,193,60,133,252,193,62,133,252,193,64,133,252,193,66,133,252,193,68,133,252,193,70,133,252,193,156,133,252,193,234,133,252,193,236,133,252,193,238,133,252,193,56,134,252,193,58,134,252,193,60,134,252,193,62,134,252,193,92,134,252,193,94,134,252,193,164,134,252,193,184,134,252,193,222,134,252,193,56,135,252,193,58,135,252,193,60,135,252,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,0,62,0,206,0,62,0,206,0,62,0,206,0,62,0,193,250,132,252,193,252,132,252,193,254,132,252,193,2,133,252,193,4,133,252,193,6,133,252,193,122,133,252,193,124,133,252,193,126,133,252,193,128,133,252,193,130,133,252,193,132,133,252,193,202,133,252,193,204,133,252,193,206,133,252,193,208,133,252,193,36,134,252,193,88,134,252,193,156,134,252,193,158,134,252,193,160,134,252,193,176,134,252,193,178,134,252,193,194,134,252,193,236,134,252,193,238,134,252,193,20,135,252,193,120,135,252,193,90,132,252,193,8,133,252,193,10,133,252,193,12,133,252,193,14,133,252,193,16,133,252,193,18,133,252,193,20,133,252,193,22,133,252,193,210,133,252,193,38,134,252,193,128,134,252,193,130,134,252,193,22,135,252,193,24,135,252,193,26,135,252,193,28,135,252,193,126,135,252,193,128,135,252,193,26,136,252,193,28,136,252,193,30,136,252,193,156,136,252,193,158,136,252,193,160,136,252,193,162,136,252,193,164,136,252,193,166,136,252,193,168,136,252,193,170,136,252,193,172,136,252,193,174,136,252,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,193,24,133,252,193,26,133,252,193,28,133,252,193,30,133,252,193,32,133,252,193,34,133,252,193,36,133,252,193,38,133,252,193,40,133,252,193,42,133,252,193,44,133,252,193,46,133,252,193,48,133,252,193,50,133,252,193,52,133,252,193,54,133,252,193,56,133,252,193,134,133,252,193,136,133,252,193,138,133,252,193,140,133,252,193,142,133,252,193,144,133,252,193,146,133,252,193,148,133,252,193,150,133,252,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,193,242,132,252,193,244,132,252,193,246,132,252,193,248,132,252,193,118,133,252,193,120,133,252,193,198,133,252,193,200,133,252,193,34,134,252,193,124,134,252,193,126,134,252,193,174,134,252,193,18,135,252,193,112,135,252,193,114,135,252,193,116,135,252,193,118,135,252,193,252,135,252,193,254,135,252,193,2,136,252,193,130,136,252,193,132,136,252,193,26,137,252,193,28,137,252,193,30,137,252,193,32,137,252,193,34,137,252,193,36,137,252,193,38,137,252,193,40,137,252,193,186,137,252,193,188,137,252,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,193,158,133,252,193,160,133,252,193,162,133,252,193,164,133,252,193,166,133,252,193,168,133,252,193,170,133,252,193,172,133,252,193,174,133,252,193,176,133,252,193,178,133,252,193,180,133,252,193,182,133,252,193,184,133,252,193,186,133,252,193,188,133,252,193,190,133,252,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,193,152,133,252,193,154,133,252,193,212,133,252,193,214,133,252,193,216,133,252,193,218,133,252,193,220,133,252,193,222,133,252,193,224,133,252,193,226,133,252,193,228,133,252,193,230,133,252,193,232,133,252,193,40,134,252,193,42,134,252,193,44,134,252,193,46,134,252,193,48,134,252,193,50,134,252,193,52,134,252,193,54,134,252,193,90,134,252,193,132,134,252,193,134,134,252,193,162,134,252,193,180,134,252,193,210,134,252,193,212,134,252,193,216,134,252,193,220,134,252,193,240,134,252,193,242,134,252,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,193,64,134,252,193,66,134,252,193,68,134,252,193,70,134,252,193,72,134,252,193,74,134,252,193,76,134,252,193,78,134,252,193,80,134,252,193,82,134,252,193,84,134,252,193,96,134,252,193,98,134,252,193,100,134,252,193,102,134,252,193,104,134,252,193,106,134,252,193,108,134,252,193,110,134,252,193,112,134,252,193,114,134,252,193,116,134,252,193,118,134,252,193,120,134,252,193,122,134,252,193,136,134,252,193,138,134,252,193,140,134,252,193,142,134,252,193,144,134,252,193,146,134,252,193,148,134,252,193,150,134,252,193,152,134,252,193,166,134,252,193,168,134,252,193,196,165,253,193,170,134,252,193,172,134,252,193,182,134,252,193,186,134,252,193,188,134,252,193,190,134,252,193,192,134,252,193,196,134,252,193,198,134,252,193,200,134,252,193,202,134,252,193,204,134,252,193,206,134,252,193,208,134,252,193,214,134,252,193,218,134,252,193,224,134,252,193,226,134,252,193,228,134,252,193,230,134,252,193,232,134,252,193,234,134,252,193,252,134,252,193,254,134,252,193,2,135,252,193,4,135,252,193,6,135,252,193,8,135,252,193,10,135,252,193,12,135,252,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,193,244,134,252,193,246,134,252,193,248,134,252,193,250,134,252,193,30,135,252,193,32,135,252,193,34,135,252,193,36,135,252,193,38,135,252,193,40,135,252,193,42,135,252,193,44,135,252,193,46,135,252,193,48,135,252,193,50,135,252,193,130,135,252,193,132,135,252,193,134,135,252,193,136,135,252,193,138,135,252,193,140,135,252,193,142,135,252,193,144,135,252,193,146,135,252,193,148,135,252,193,150,135,252,193,152,135,252,193,154,135,252,193,156,135,252,193,158,135,252,193,160,135,252,193,162,135,252,193,14,135,252,193,16,135,252,193,108,135,252,193,110,135,252,193,246,135,252,193,248,135,252,193,250,135,252,193,120,136,252,193,122,136,252,193,124,136,252,193,126,136,252,193,14,137,252,193,16,137,252,193,18,137,252,193,20,137,252,193,22,137,252,193,166,137,252,193,168,137,252,193,170,137,252,193,172,137,252,193,174,137,252,193,176,137,252,193,178,137,252,193,180,137,252,193,182,137,252,193,184,137,252,193,88,138,252,193,90,138,252,193,186,138,252,193,188,138,252,193,190,138,252,193,192,138,252,193,114,27,253,193,148,27,253,193,150,27,253,193,154,27,253,193,156,27,253,193,158,27,253,193,52,135,252,193,160,27,253,193,162,27,253,193,164,27,253,193,180,27,253,193,188,27,253,193,198,27,253,193,200,27,253,193,204,27,253,193,216,27,253,193,222,27,253,193,224,27,253,193,240,27,253,193,252,27,253,193,254,27,253,193,24,28,253,193,26,28,253,193,28,28,253,193,30,28,253,193,32,28,253,193,92,28,253,193,94,28,253,193,142,28,253,193,96,28,253,193,98,28,253,193,144,28,253,193,62,135,252,193,170,135,252,193,172,135,252,193,174,135,252,193,56,136,252,193,58,136,252,193,60,136,252,193,200,136,252,193,202,136,252,193,204,136,252,193,206,136,252,193,90,137,252,193,92,137,252,193,94,137,252,193,96,137,252,193,98,137,252,193,100,137,252,193,102,137,252,193,104,137,252,193,14,138,252,193,16,138,252,193,18,138,252,193,20,138,252,193,22,138,252,193,142,138,252,193,144,138,252,193,222,138,252,193,224,138,252,193,226,138,252,193,228,138,252,193,230,138,252,193,70,139,252,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,193,122,135,252,193,124,135,252,193,4,136,252,193,6,136,252,193,8,136,252,193,10,136,252,193,12,136,252,193,14,136,252,193,16,136,252,193,18,136,252,193,20,136,252,193,22,136,252,193,24,136,252,193,134,136,252,193,136,136,252,193,138,136,252,193,140,136,252,193,142,136,252,193,144,136,252,193,146,136,252,193,148,136,252,193,150,136,252,193,152,136,252,193,154,136,252,193,42,137,252,193,44,137,252,193,46,137,252,193,48,137,252,193,50,137,252,193,52,137,252,193,54,137,252,193,208,137,252,193,164,135,252,193,166,135,252,193,168,135,252,193,32,136,252,193,34,136,252,193,36,136,252,193,176,136,252,193,38,136,252,193,40,136,252,193,42,136,252,193,44,136,252,193,46,136,252,193,48,136,252,193,50,136,252,193,52,136,252,193,54,136,252,193,178,136,252,193,180,136,252,193,182,136,252,193,184,136,252,193,186,136,252,193,188,136,252,193,190,136,252,193,192,136,252,193,194,136,252,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,193,196,136,252,193,86,137,252,193,88,137,252,193,230,137,252,193,232,137,252,193,234,137,252,193,236,137,252,193,238,137,252,193,240,137,252,193,242,137,252,193,244,137,252,193,246,137,252,193,248,137,252,193,250,137,252,193,252,137,252,193,254,137,252,193,2,138,252,193,4,138,252,193,6,138,252,193,8,138,252,193,10,138,252,193,12,138,252,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,193,140,24,253,193,150,24,253,193,170,24,253,193,186,24,253,193,188,24,253,193,206,24,253,193,4,25,253,193,12,25,253,193,14,25,253,193,32,25,253,193,36,25,253,193,42,25,253,193,48,25,253,193,54,25,253,193,56,25,253,193,74,25,253,193,76,25,253,193,78,25,253,193,80,25,253,193,82,25,253,193,84,25,253,193,124,25,253,193,198,136,252,193,126,25,253,193,128,25,253,193,50,25,253,193,130,25,253,193,176,25,253,193,178,25,253,193,230,25,253,193,232,25,253,193,234,25,253,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,193,56,137,252,193,58,137,252,193,60,137,252,193,62,137,252,193,218,137,252,193,220,137,252,193,222,137,252,193,224,137,252,193,226,137,252,193,228,137,252,193,114,138,252,193,116,138,252,193,118,138,252,193,120,138,252,193,210,138,252,193,212,138,252,193,214,138,252,193,56,139,252,193,58,139,252,193,132,139,252,193,186,139,252,193,240,139,252,193,242,139,252,193,2,140,252,193,30,140,252,193,80,140,252,193,108,140,252,193,194,140,252,193,2,141,252,193,130,141,252,193,132,141,252,193,16,142,252,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,193,190,137,252,193,192,137,252,193,194,137,252,193,196,137,252,193,198,137,252,193,200,137,252,193,202,137,252,193,204,137,252,193,206,137,252,193,92,138,252,193,94,138,252,193,96,138,252,193,98,138,252,193,100,138,252,193,194,138,252,193,196,138,252,193,198,138,252,193,26,139,252,193,28,139,252,193,30,139,252,193,32,139,252,193,34,139,252,193,36,139,252,193,38,139,252,193,116,139,252,193,118,139,252,193,120,139,252,193,180,139,252,193,212,139,252,193,18,140,252,193,136,140,252,193,150,140,252,193,210,137,252,193,212,137,252,193,214,137,252,193,216,137,252,193,102,138,252,193,104,138,252,193,106,138,252,193,108,138,252,193,110,138,252,193,112,138,252,193,200,138,252,193,202,138,252,193,204,138,252,193,206,138,252,193,208,138,252,193,40,139,252,193,42,139,252,193,44,139,252,193,46,139,252,193,48,139,252,193,50,139,252,193,52,139,252,193,54,139,252,193,122,139,252,193,124,139,252,193,126,139,252,193,128,139,252,193,130,139,252,193,182,139,252,193,184,139,252,193,214,139,252,193,216,139,252,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,193,148,138,252,193,150,138,252,193,152,138,252,193,154,138,252,193,156,138,252,193,158,138,252,193,160,138,252,193,162,138,252,193,164,138,252,193,166,138,252,193,168,138,252,193,170,138,252,193,172,138,252,193,174,138,252,193,176,138,252,193,178,138,252,193,180,138,252,193,182,138,252,193,184,138,252,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,193,216,138,252,193,218,138,252,193,220,138,252,193,60,139,252,193,62,139,252,193,64,139,252,193,66,139,252,193,68,139,252,193,134,139,252,193,136,139,252,193,138,139,252,193,140,139,252,193,188,139,252,193,190,139,252,193,218,139,252,193,4,140,252,193,6,140,252,193,32,140,252,193,48,140,252,193,50,140,252,193,88,140,252,193,92,140,252,193,94,140,252,193,98,140,252,193,102,140,252,193,110,140,252,193,156,140,252,193,168,140,252,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,193,72,139,252,193,74,139,252,193,76,139,252,193,78,139,252,193,80,139,252,193,82,139,252,193,84,139,252,193,86,139,252,193,88,139,252,193,90,139,252,193,92,139,252,193,94,139,252,193,96,139,252,193,98,139,252,193,100,139,252,193,102,139,252,193,104,139,252,193,106,139,252,193,22,139,252,193,24,139,252,193,178,139,252,193,210,139,252,193,70,140,252,193,144,140,252,193,166,140,252,193,252,140,252,193,100,141,252,193,102,141,252,193,244,141,252,193,246,141,252,193,248,141,252,193,250,141,252,193,146,142,252,193,148,142,252,193,150,142,252,193,152,142,252,193,28,143,252,193,30,143,252,193,32,143,252,193,34,143,252,193,36,143,252,193,38,143,252,193,40,143,252,193,226,143,252,193,228,143,252,193,230,143,252,193,176,144,252,193,178,144,252,193,180,144,252,193,182,144,252,193,108,139,252,193,110,139,252,193,112,139,252,193,148,139,252,193,150,139,252,193,152,139,252,193,154,139,252,193,156,139,252,193,158,139,252,193,160,139,252,193,162,139,252,193,164,139,252,193,166,139,252,193,168,139,252,193,170,139,252,193,172,139,252,193,174,139,252,193,176,139,252,193,194,139,252,193,196,139,252,193,198,139,252,193,200,139,252,193,202,139,252,193,204,139,252,193,206,139,252,193,208,139,252,193,222,139,252,193,224,139,252,193,226,139,252,193,228,139,252,193,230,139,252,193,232,139,252,193,144,139,252,193,146,139,252,193,192,139,252,193,220,139,252,193,244,139,252,193,86,140,252,193,178,140,252,193,180,140,252,193,210,140,252,193,212,140,252,193,214,140,252,193,216,140,252,193,218,140,252,193,220,140,252,193,30,141,252,193,32,141,252,193,34,141,252,193,36,141,252,193,38,141,252,193,40,141,252,193,42,141,252,193,44,141,252,193,184,141,252,193,186,141,252,193,188,141,252,193,190,141,252,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,193,234,139,252,193,236,139,252,193,238,139,252,193,20,140,252,193,22,140,252,193,24,140,252,193,26,140,252,193,28,140,252,193,46,140,252,193,60,140,252,193,62,140,252,193,64,140,252,193,106,140,252,193,146,140,252,193,152,140,252,193,192,140,252,193,254,140,252,193,112,141,252,193,114,141,252,193,116,141,252,193,118,141,252,193,120,141,252,193,122,141,252,193,124,141,252,193,126,141,252,193,128,141,252,193,2,142,252,193,4,142,252,193,6,142,252,193,8,142,252,193,10,142,252,193,12,142,252,193,246,139,252,193,248,139,252,193,250,139,252,193,252,139,252,193,254,139,252,193,8,140,252,193,10,140,252,193,12,140,252,193,14,140,252,193,16,140,252,193,34,140,252,193,36,140,252,193,38,140,252,193,40,140,252,193,42,140,252,193,44,140,252,193,52,140,252,193,54,140,252,193,56,140,252,193,58,140,252,193,66,140,252,193,68,140,252,193,72,140,252,193,74,140,252,193,76,140,252,193,82,140,252,193,84,140,252,193,90,140,252,193,96,140,252,193,100,140,252,193,104,140,252,193,114,140,252,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,193,78,140,252,193,120,252,252,193,122,252,252,193,124,252,252,193,126,252,252,193,128,252,252,193,130,252,252,193,132,252,252,193,134,252,252,193,142,252,252,193,144,252,252,193,146,252,252,193,148,252,252,193,170,252,252,193,154,252,252,193,156,252,252,193,160,252,252,193,164,252,252,193,172,252,252,193,168,252,252,193,162,252,252,193,184,252,252,193,198,252,252,193,200,252,252,193,202,252,252,193,228,252,252,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,193,192,232,252,193,194,232,252,193,196,232,252,193,112,140,252,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,193,180,217,252,193,182,217,252,193,184,217,252,193,186,217,252,193,188,217,252,193,190,217,252,193,192,217,252,193,194,217,252,193,196,217,252,193,198,217,252,193,214,217,252,193,216,217,252,193,218,217,252,193,220,217,252,193,222,217,252,193,134,140,252,193,224,217,252,193,226,217,252,193,228,217,252,193,232,217,252,193,234,217,252,193,236,217,252,193,238,217,252,193,240,217,252,193,242,217,252,193,244,217,252,193,246,217,252,193,170,140,252,193,172,140,252,193,174,140,252,193,176,140,252,193,196,140,252,193,198,140,252,193,200,140,252,193,202,140,252,193,204,140,252,193,206,140,252,193,208,140,252,193,4,141,252,193,6,141,252,193,8,141,252,193,10,141,252,193,12,141,252,193,14,141,252,193,16,141,252,193,18,141,252,193,20,141,252,193,22,141,252,193,24,141,252,193,26,141,252,193,28,141,252,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,193,190,140,252,193,104,141,252,193,106,141,252,193,108,141,252,193,110,141,252,193,252,141,252,193,254,141,252,193,156,142,252,193,158,142,252,193,160,142,252,193,42,143,252,193,44,143,252,193,46,143,252,193,234,143,252,193,236,143,252,193,238,143,252,193,240,143,252,193,186,144,252,193,188,144,252,193,190,144,252,193,192,144,252,193,106,145,252,193,108,145,252,193,110,145,252,193,112,145,252,193,114,145,252,193,20,146,252,193,22,146,252,193,24,146,252,193,26,146,252,193,170,146,252,193,172,146,252,193,246,140,252,193,248,140,252,193,250,140,252,193,46,141,252,193,48,141,252,193,50,141,252,193,52,141,252,193,54,141,252,193,56,141,252,193,58,141,252,193,60,141,252,193,62,141,252,193,64,141,252,193,66,141,252,193,68,141,252,193,70,141,252,193,72,141,252,193,74,141,252,193,76,141,252,193,78,141,252,193,80,141,252,193,82,141,252,193,84,141,252,193,86,141,252,193,88,141,252,193,90,141,252,193,92,141,252,193,94,141,252,193,96,141,252,193,98,141,252,193,192,141,252,193,194,141,252,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,193,28,142,252,193,30,142,252,193,32,142,252,193,34,142,252,193,36,142,252,193,38,142,252,193,40,142,252,193,42,142,252,193,44,142,252,193,46,142,252,193,48,142,252,193,50,142,252,193,52,142,252,193,54,142,252,193,178,142,252,193,196,141,252,193,198,141,252,193,200,141,252,193,202,141,252,193,204,141,252,193,206,141,252,193,208,141,252,193,210,141,252,193,212,141,252,193,214,141,252,193,216,141,252,193,218,141,252,193,220,141,252,193,222,141,252,193,224,141,252,193,226,141,252,193,228,141,252,193,230,141,252,193,232,141,252,193,234,141,252,193,236,141,252,193,238,141,252,193,240,141,252,193,242,141,252,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,193,14,142,252,193,162,142,252,193,164,142,252,193,166,142,252,193,168,142,252,193,48,143,252,193,50,143,252,193,242,143,252,193,244,143,252,193,246,143,252,193,248,143,252,193,250,143,252,193,252,143,252,193,254,143,252,193,2,144,252,193,4,144,252,193,6,144,252,193,8,144,252,193,10,144,252,193,194,144,252,193,196,144,252,193,198,144,252,193,200,144,252,193,202,144,252,193,204,144,252,193,206,144,252,193,208,144,252,193,116,145,252,193,118,145,252,193,120,145,252,193,122,145,252,193,124,145,252,193,18,142,252,193,20,142,252,193,22,142,252,193,24,142,252,193,26,142,252,193,170,142,252,193,172,142,252,193,174,142,252,193,176,142,252,193,52,143,252,193,54,143,252,193,56,143,252,193,58,143,252,193,12,144,252,193,14,144,252,193,16,144,252,193,210,144,252,193,132,145,252,193,134,145,252,193,136,145,252,193,138,145,252,193,46,146,252,193,48,146,252,193,50,146,252,193,188,146,252,193,190,146,252,193,192,146,252,193,194,146,252,193,38,147,252,193,40,147,252,193,164,147,252,193,166,147,252,193,180,142,252,193,182,142,252,193,184,142,252,193,186,142,252,193,188,142,252,193,190,142,252,193,56,142,252,193,192,142,252,193,194,142,252,193,196,142,252,193,198,142,252,193,200,142,252,193,202,142,252,193,204,142,252,193,206,142,252,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,193,210,142,252,193,212,142,252,193,214,142,252,193,216,142,252,193,218,142,252,193,220,142,252,193,222,142,252,193,224,142,252,193,226,142,252,193,106,143,252,193,108,143,252,193,110,143,252,193,112,143,252,193,114,143,252,193,116,143,252,193,118,143,252,193,120,143,252,193,122,143,252,193,124,143,252,193,126,143,252,193,128,143,252,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,193,144,142,252,193,14,143,252,193,16,143,252,193,18,143,252,193,20,143,252,193,22,143,252,193,24,143,252,193,26,143,252,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,193,18,144,252,193,20,144,252,193,22,144,252,193,24,144,252,193,26,144,252,193,28,144,252,193,30,144,252,193,32,144,252,193,34,144,252,193,36,144,252,193,38,144,252,193,40,144,252,193,42,144,252,193,44,144,252,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,193,72,144,252,193,74,144,252,193,76,144,252,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,193,140,145,252,193,142,145,252,193,144,145,252,193,146,145,252,193,148,145,252,193,52,146,252,193,46,144,252,193,150,145,252,193,152,145,252,193,154,145,252,193,156,145,252,193,158,145,252,193,160,145,252,193,162,145,252,193,164,145,252,193,54,146,252,193,56,146,252,193,58,146,252,193,60,146,252,193,62,146,252,193,64,146,252,193,66,146,252,193,68,146,252,193,70,146,252,193,72,146,252,193,74,146,252,193,76,146,252,193,196,146,252,193,48,144,252,193,50,144,252,193,52,144,252,193,54,144,252,193,56,144,252,193,58,144,252,193,60,144,252,193,62,144,252,193,64,144,252,193,66,144,252,193,68,144,252,193,70,144,252,193,244,144,252,193,246,144,252,193,248,144,252,193,250,144,252,193,252,144,252,193,254,144,252,193,2,145,252,193,4,145,252,193,6,145,252,193,8,145,252,193,10,145,252,193,166,145,252,193,168,145,252,193,170,145,252,193,172,145,252,193,174,145,252,193,176,145,252,193,178,145,252,193,78,146,252,193,80,146,252,193,78,144,252,193,80,144,252,193,82,144,252,193,84,144,252,193,86,144,252,193,88,144,252,193,90,144,252,193,92,144,252,193,94,144,252,193,96,144,252,193,98,144,252,193,100,144,252,193,102,144,252,193,104,144,252,193,106,144,252,193,108,144,252,193,110,144,252,193,112,144,252,193,114,144,252,193,116,144,252,193,118,144,252,193,120,144,252,193,122,144,252,193,124,144,252,193,126,144,252,193,128,144,252,193,130,144,252,193,132,144,252,193,134,144,252,193,136,144,252,193,138,144,252,193,140,144,252,193,142,144,252,193,144,144,252,193,146,144,252,193,148,144,252,193,150,144,252,193,152,144,252,193,154,144,252,193,156,144,252,193,158,144,252,193,160,144,252,193,162,144,252,193,164,144,252,193,166,144,252,193,168,144,252,193,170,144,252,193,172,144,252,193,174,144,252,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,193,184,144,252,193,98,145,252,193,100,145,252,193,102,145,252,193,104,145,252,193,18,146,252,193,168,146,252,193,30,147,252,193,32,147,252,193,160,147,252,193,146,148,252,193,234,148,252,193,70,149,252,193,72,149,252,193,182,149,252,193,184,149,252,193,186,149,252,193,42,150,252,193,44,150,252,193,46,150,252,193,134,150,252,193,136,150,252,193,226,150,252,193,80,151,252,193,82,151,252,193,84,151,252,193,86,151,252,193,184,151,252,193,226,151,252,193,92,152,252,193,146,152,252,193,186,152,252,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,193,126,145,252,193,128,145,252,193,130,145,252,193,28,146,252,193,30,146,252,193,32,146,252,193,34,146,252,193,36,146,252,193,38,146,252,193,40,146,252,193,42,146,252,193,44,146,252,193,176,146,252,193,178,146,252,193,180,146,252,193,182,146,252,193,184,146,252,193,186,146,252,193,36,147,252,193,98,147,252,193,192,147,252,193,194,147,252,193,248,147,252,193,250,147,252,193,82,148,252,193,152,148,252,193,238,148,252,193,240,148,252,193,78,149,252,193,192,149,252,193,194,149,252,193,196,149,252,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,193,82,146,252,193,206,146,252,193,208,146,252,193,210,146,252,193,212,146,252,193,214,146,252,193,216,146,252,193,218,146,252,193,108,147,252,193,110,147,252,193,170,147,252,193,172,147,252,193,174,147,252,193,176,147,252,193,204,147,252,193,206,147,252,193,16,148,252,193,32,148,252,193,54,148,252,193,100,148,252,193,102,148,252,193,104,148,252,193,106,148,252,193,178,148,252,193,180,148,252,193,182,148,252,193,12,149,252,193,14,149,252,193,16,149,252,193,18,149,252,193,20,149,252,193,22,149,252,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,193,174,146,252,193,34,147,252,193,96,147,252,193,162,147,252,193,190,147,252,193,44,148,252,193,148,148,252,193,150,148,252,193,236,148,252,193,74,149,252,193,76,149,252,193,188,149,252,193,190,149,252,193,48,150,252,193,228,150,252,193,230,150,252,193,88,151,252,193,90,151,252,193,92,151,252,193,94,151,252,193,228,151,252,193,72,152,252,193,122,152,252,193,148,152,252,193,188,152,252,193,190,152,252,193,192,152,252,193,6,153,252,193,8,153,252,193,54,153,252,193,108,153,252,193,110,153,252,193,198,146,252,193,200,146,252,193,202,146,252,193,204,146,252,193,42,147,252,193,44,147,252,193,46,147,252,193,48,147,252,193,50,147,252,193,52,147,252,193,54,147,252,193,56,147,252,193,100,147,252,193,102,147,252,193,104,147,252,193,106,147,252,193,200,147,252,193,218,147,252,193,240,147,252,193,202,147,252,193,22,148,252,193,26,148,252,193,28,148,252,193,30,148,252,193,46,148,252,193,48,148,252,193,50,148,252,193,52,148,252,206,32,65,0,206,32,65,0,206,32,65,0,206,32,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,193,58,147,252,193,10,147,252,193,12,147,252,193,14,147,252,193,16,147,252,193,18,147,252,193,20,147,252,193,22,147,252,193,24,147,252,193,26,147,252,193,28,147,252,193,60,147,252,193,62,147,252,193,64,147,252,193,66,147,252,193,68,147,252,193,70,147,252,193,72,147,252,193,74,147,252,193,76,147,252,193,78,147,252,193,80,147,252,193,82,147,252,193,84,147,252,193,112,147,252,193,86,147,252,193,88,147,252,193,90,147,252,193,92,147,252,193,94,147,252,193,114,147,252,193,116,147,252,193,118,147,252,193,120,147,252,193,122,147,252,193,124,147,252,193,126,147,252,193,128,147,252,193,130,147,252,193,132,147,252,193,134,147,252,193,136,147,252,193,138,147,252,193,140,147,252,193,142,147,252,193,216,98,253,193,144,147,252,193,146,147,252,193,148,147,252,193,150,147,252,193,152,147,252,193,154,147,252,193,156,147,252,193,158,147,252,193,196,147,252,193,198,147,252,193,216,147,252,193,238,147,252,193,154,148,252,193,242,148,252,193,244,148,252,193,246,148,252,193,248,148,252,193,250,148,252,193,80,149,252,193,200,149,252,193,202,149,252,193,204,149,252,193,206,149,252,193,208,149,252,193,64,150,252,193,66,150,252,193,68,150,252,193,146,150,252,193,148,150,252,193,150,150,252,193,238,150,252,193,240,150,252,193,110,151,252,193,112,151,252,193,196,151,252,193,198,151,252,193,236,151,252,193,238,151,252,193,240,151,252,193,76,152,252,193,18,148,252,193,20,148,252,193,24,148,252,193,34,148,252,193,36,148,252,193,38,148,252,193,40,148,252,193,56,148,252,193,58,148,252,193,60,148,252,193,62,148,252,193,64,148,252,193,66,148,252,193,68,148,252,193,70,148,252,193,72,148,252,193,74,148,252,193,76,148,252,193,78,148,252,193,80,148,252,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,32,65,0,206,32,65,0,206,32,65,0,206,32,65,0,193,156,148,252,193,158,148,252,193,160,148,252,193,162,148,252,193,164,148,252,193,166,148,252,193,168,148,252,193,170,148,252,193,172,148,252,193,174,148,252,193,176,148,252,193,252,148,252,193,254,148,252,193,2,149,252,193,4,149,252,193,6,149,252,193,8,149,252,193,10,149,252,193,82,149,252,193,84,149,252,193,86,149,252,193,88,149,252,193,90,149,252,193,92,149,252,193,94,149,252,193,96,149,252,193,210,149,252,193,212,149,252,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,193,184,148,252,193,186,148,252,193,188,148,252,193,190,148,252,193,192,148,252,193,194,148,252,193,196,148,252,193,198,148,252,193,200,148,252,193,202,148,252,193,204,148,252,193,206,148,252,193,208,148,252,193,210,148,252,193,212,148,252,193,214,148,252,193,216,148,252,193,218,148,252,193,220,148,252,193,222,148,252,193,224,148,252,193,226,148,252,193,228,148,252,193,230,148,252,193,232,148,252,193,24,149,252,193,98,149,252,193,100,149,252,193,102,149,252,193,104,149,252,193,106,149,252,193,230,149,252,193,232,149,252,193,234,149,252,193,236,149,252,193,82,150,252,193,84,150,252,193,166,150,252,193,168,150,252,193,170,150,252,193,6,151,252,193,8,151,252,193,10,151,252,193,12,151,252,193,14,151,252,193,16,151,252,193,126,151,252,193,128,151,252,193,130,151,252,193,132,151,252,193,134,151,252,193,136,151,252,193,138,151,252,193,204,151,252,193,206,151,252,193,244,151,252,193,246,151,252,193,26,149,252,193,28,149,252,193,30,149,252,193,32,149,252,193,34,149,252,193,36,149,252,193,38,149,252,193,40,149,252,193,42,149,252,193,44,149,252,193,46,149,252,193,48,149,252,193,50,149,252,193,52,149,252,193,54,149,252,193,56,149,252,193,58,149,252,193,60,149,252,193,62,149,252,193,64,149,252,193,66,149,252,193,68,149,252,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,193,198,149,252,193,50,150,252,193,52,150,252,193,54,150,252,193,56,150,252,193,58,150,252,193,60,150,252,193,62,150,252,193,138,150,252,193,140,150,252,193,142,150,252,193,144,150,252,193,232,150,252,193,234,150,252,193,236,150,252,193,96,151,252,193,98,151,252,193,100,151,252,193,102,151,252,193,104,151,252,193,106,151,252,193,108,151,252,193,186,151,252,193,188,151,252,193,190,151,252,193,192,151,252,193,194,151,252,193,230,151,252,193,232,151,252,193,234,151,252,193,8,152,252,193,10,152,252,193,214,149,252,193,216,149,252,193,218,149,252,193,220,149,252,193,222,149,252,193,224,149,252,193,226,149,252,193,228,149,252,193,70,150,252,193,72,150,252,193,74,150,252,193,76,150,252,193,78,150,252,193,80,150,252,193,152,150,252,193,154,150,252,193,156,150,252,193,158,150,252,193,160,150,252,193,162,150,252,193,164,150,252,193,242,150,252,193,244,150,252,193,246,150,252,193,248,150,252,193,250,150,252,193,252,150,252,193,254,150,252,193,2,151,252,193,4,151,252,193,114,151,252,193,116,151,252,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,193,172,150,252,193,174,150,252,193,176,150,252,193,178,150,252,193,180,150,252,193,182,150,252,193,184,150,252,193,186,150,252,193,188,150,252,193,190,150,252,193,192,150,252,193,194,150,252,193,196,150,252,193,198,150,252,193,200,150,252,193,202,150,252,193,204,150,252,193,206,150,252,193,32,202,252,193,208,150,252,193,210,150,252,193,212,150,252,193,214,150,252,193,216,150,252,193,218,150,252,193,220,150,252,193,222,150,252,193,224,150,252,193,18,151,252,193,20,151,252,193,22,151,252,193,24,151,252,193,26,151,252,193,28,151,252,193,30,151,252,193,32,151,252,193,34,151,252,193,36,151,252,193,38,151,252,193,40,151,252,193,42,151,252,193,44,151,252,193,46,151,252,193,48,151,252,193,140,151,252,193,50,151,252,193,52,151,252,193,54,151,252,193,56,151,252,193,58,151,252,193,60,151,252,193,62,151,252,193,64,151,252,193,66,151,252,193,68,151,252,193,70,151,252,193,72,151,252,193,74,151,252,193,76,151,252,193,78,151,252,193,142,151,252,193,144,151,252,193,146,151,252,193,148,151,252,193,150,151,252,193,152,151,252,193,154,151,252,193,156,151,252,193,158,151,252,193,160,151,252,193,162,151,252,193,164,151,252,193,166,151,252,193,168,151,252,193,170,151,252,193,172,151,252,193,174,151,252,193,176,151,252,193,178,151,252,193,180,151,252,193,118,151,252,193,120,151,252,193,122,151,252,193,124,151,252,193,200,151,252,193,202,151,252,193,242,151,252,193,16,152,252,193,38,152,252,193,40,152,252,193,78,152,252,193,118,152,252,193,124,152,252,193,126,152,252,193,134,152,252,193,136,152,252,193,152,152,252,193,154,152,252,193,156,152,252,193,158,152,252,193,160,152,252,193,162,152,252,193,164,152,252,193,166,152,252,193,200,152,252,193,202,152,252,193,204,152,252,193,206,152,252,193,208,152,252,193,210,152,252,193,212,152,252,193,186,147,253,193,208,151,252,193,210,151,252,193,212,151,252,193,214,151,252,193,216,151,252,193,218,151,252,193,220,151,252,193,222,151,252,193,224,151,252,193,182,151,252,193,248,151,252,193,250,151,252,193,252,151,252,193,254,151,252,193,2,152,252,193,4,152,252,193,20,152,252,193,22,152,252,193,6,152,252,193,24,152,252,193,26,152,252,193,42,152,252,193,28,152,252,193,30,152,252,193,32,152,252,193,34,152,252,193,36,152,252,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,193,12,152,252,193,14,152,252,193,74,152,252,193,86,152,252,193,94,152,252,193,96,152,252,193,108,152,252,193,150,152,252,193,194,152,252,193,10,153,252,193,12,153,252,193,14,153,252,193,16,153,252,193,56,153,252,193,58,153,252,193,114,153,252,193,116,153,252,193,172,153,252,193,174,153,252,193,176,153,252,193,222,153,252,193,224,153,252,193,226,153,252,193,6,154,252,193,28,154,252,193,30,154,252,193,32,154,252,193,70,154,252,193,72,154,252,193,106,154,252,193,124,154,252,193,152,154,252,193,18,152,252,193,80,152,252,193,120,152,252,193,138,152,252,193,140,152,252,193,168,152,252,193,170,152,252,193,214,152,252,193,216,152,252,193,218,152,252,193,220,152,252,193,22,153,252,193,76,153,252,193,78,153,252,193,126,153,252,193,128,153,252,193,130,153,252,193,132,153,252,193,12,154,252,193,44,154,252,193,76,154,252,193,94,154,252,193,192,154,252,193,18,155,252,193,20,155,252,193,22,155,252,193,24,155,252,193,26,155,252,193,28,155,252,193,30,155,252,193,210,155,252,193,212,155,252,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,193,82,152,252,193,88,152,252,193,90,152,252,193,98,152,252,193,100,152,252,193,110,152,252,193,102,152,252,193,104,152,252,193,106,152,252,193,112,152,252,193,114,152,252,193,116,152,252,193,128,152,252,193,130,152,252,193,142,152,252,193,144,152,252,193,172,152,252,193,174,152,252,193,176,152,252,193,178,152,252,193,180,152,252,193,182,152,252,193,184,152,252,193,196,152,252,193,198,152,252,193,18,153,252,193,60,153,252,193,62,153,252,193,228,153,252,193,230,153,252,193,232,153,252,193,234,153,252,193,34,154,252,193,36,154,252,193,144,154,252,193,234,154,252,193,236,154,252,193,120,155,252,193,122,155,252,193,124,155,252,193,126,155,252,193,64,156,252,193,66,156,252,193,68,156,252,193,70,156,252,193,72,156,252,193,74,156,252,193,28,157,252,193,30,157,252,193,32,157,252,193,40,158,252,193,42,158,252,193,44,158,252,193,46,158,252,193,104,159,252,193,222,152,252,193,224,152,252,193,226,152,252,193,228,152,252,193,230,152,252,193,232,152,252,193,234,152,252,193,236,152,252,193,238,152,252,193,240,152,252,193,242,152,252,193,244,152,252,193,246,152,252,193,248,152,252,193,250,152,252,193,252,152,252,193,254,152,252,193,24,153,252,193,26,153,252,193,28,153,252,193,30,153,252,193,32,153,252,193,34,153,252,193,36,153,252,193,38,153,252,193,40,153,252,193,42,153,252,193,44,153,252,193,46,153,252,193,48,153,252,193,80,153,252,193,82,153,252,193,2,153,252,193,4,153,252,193,50,153,252,193,104,153,252,193,106,153,252,193,162,153,252,193,164,153,252,193,212,153,252,193,214,153,252,193,252,153,252,193,254,153,252,193,2,154,252,193,22,154,252,193,66,154,252,193,104,154,252,193,138,154,252,193,172,154,252,193,230,154,252,193,90,155,252,193,92,155,252,193,94,155,252,193,96,155,252,193,98,155,252,193,100,155,252,193,36,156,252,193,38,156,252,193,40,156,252,193,42,156,252,193,242,156,252,193,244,156,252,193,250,157,252,193,252,157,252,193,188,147,253,193,20,153,252,193,64,153,252,193,66,153,252,193,68,153,252,193,70,153,252,193,72,153,252,193,74,153,252,193,118,153,252,193,120,153,252,193,122,153,252,193,124,153,252,193,178,153,252,193,180,153,252,193,8,154,252,193,182,153,252,193,184,153,252,193,10,154,252,193,38,154,252,193,40,154,252,193,42,154,252,193,74,154,252,193,108,154,252,193,110,154,252,193,132,154,252,193,154,154,252,193,160,154,252,193,162,154,252,206,0,66,0,206,0,66,0,206,0,66,0,206,0,66,0,193,84,153,252,193,86,153,252,193,88,153,252,193,90,153,252,193,92,153,252,193,94,153,252,193,96,153,252,193,98,153,252,193,100,153,252,193,102,153,252,193,134,153,252,193,136,153,252,193,138,153,252,193,140,153,252,193,142,153,252,193,144,153,252,193,146,153,252,193,148,153,252,193,150,153,252,193,152,153,252,193,154,153,252,193,156,153,252,193,158,153,252,193,160,153,252,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,193,112,153,252,193,166,153,252,193,168,153,252,193,170,153,252,193,216,153,252,193,218,153,252,193,220,153,252,193,4,154,252,193,24,154,252,193,26,154,252,193,68,154,252,193,130,154,252,193,174,154,252,193,232,154,252,193,102,155,252,193,104,155,252,193,106,155,252,193,108,155,252,193,110,155,252,193,44,156,252,193,46,156,252,193,48,156,252,193,50,156,252,193,52,156,252,193,54,156,252,193,56,156,252,193,246,156,252,193,248,156,252,193,250,156,252,193,252,156,252,193,254,156,252,193,2,157,252,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,193,236,153,252,193,238,153,252,193,240,153,252,193,242,153,252,193,244,153,252,193,246,153,252,193,248,153,252,193,250,153,252,193,14,154,252,193,16,154,252,193,46,154,252,193,18,154,252,193,20,154,252,193,48,154,252,193,50,154,252,193,52,154,252,193,54,154,252,193,56,154,252,193,58,154,252,193,60,154,252,193,62,154,252,193,96,154,252,193,64,154,252,193,78,154,252,193,80,154,252,193,82,154,252,193,84,154,252,206,0,66,0,206,0,66,0,206,0,66,0,206,0,66,0,193,76,156,252,193,238,154,252,193,240,154,252,193,242,154,252,193,244,154,252,193,246,154,252,193,248,154,252,193,250,154,252,193,252,154,252,193,254,154,252,193,2,155,252,193,4,155,252,193,6,155,252,193,8,155,252,193,10,155,252,193,12,155,252,193,14,155,252,193,16,155,252,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,193,200,154,252,193,202,154,252,193,204,154,252,193,206,154,252,193,208,154,252,193,210,154,252,193,212,154,252,193,214,154,252,193,216,154,252,193,218,154,252,193,220,154,252,193,222,154,252,193,224,154,252,193,226,154,252,193,228,154,252,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,193,112,155,252,193,114,155,252,193,116,155,252,193,118,155,252,193,58,156,252,193,60,156,252,193,62,156,252,193,8,157,252,193,10,157,252,193,12,157,252,193,14,157,252,193,16,157,252,193,18,157,252,193,20,157,252,193,22,157,252,193,24,157,252,193,26,157,252,193,32,158,252,193,34,158,252,193,36,158,252,193,38,158,252,193,80,159,252,193,82,159,252,193,84,159,252,193,86,159,252,193,88,159,252,193,90,159,252,193,92,159,252,193,94,159,252,193,96,159,252,193,98,159,252,193,100,159,252,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,193,78,156,252,193,214,155,252,193,216,155,252,193,218,155,252,193,220,155,252,193,222,155,252,193,224,155,252,193,226,155,252,193,140,156,252,193,142,156,252,193,144,156,252,193,146,156,252,193,148,156,252,193,150,156,252,193,152,156,252,193,154,156,252,193,156,156,252,193,158,156,252,193,160,156,252,193,162,156,252,193,164,156,252,193,166,156,252,193,106,157,252,193,108,157,252,193,110,157,252,193,112,157,252,193,114,157,252,193,116,157,252,193,118,157,252,193,120,157,252,193,122,157,252,193,124,157,252,193,126,157,252,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,193,168,156,252,193,170,156,252,193,172,156,252,193,174,156,252,193,176,156,252,193,178,156,252,193,180,156,252,193,182,156,252,193,184,156,252,193,186,156,252,193,188,156,252,193,190,156,252,193,192,156,252,193,194,156,252,193,196,156,252,193,198,156,252,193,200,156,252,193,202,156,252,193,204,156,252,193,206,156,252,193,208,156,252,193,34,156,252,193,80,156,252,193,82,156,252,193,84,156,252,193,86,156,252,193,88,156,252,193,90,156,252,193,92,156,252,193,94,156,252,193,96,156,252,193,98,156,252,193,100,156,252,193,102,156,252,193,104,156,252,193,106,156,252,193,108,156,252,193,110,156,252,193,112,156,252,193,114,156,252,193,116,156,252,193,118,156,252,193,120,156,252,193,122,156,252,193,124,156,252,193,126,156,252,193,128,156,252,193,130,156,252,193,132,156,252,193,134,156,252,193,136,156,252,193,138,156,252,193,34,157,252,193,36,157,252,193,210,156,252,193,212,156,252,193,214,156,252,193,216,156,252,193,218,156,252,193,220,156,252,193,222,156,252,193,224,156,252,193,226,156,252,193,228,156,252,193,230,156,252,193,232,156,252,193,234,156,252,193,236,156,252,193,238,156,252,193,240,156,252,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,193,4,157,252,193,6,157,252,193,8,158,252,193,10,158,252,193,12,158,252,193,14,158,252,193,16,158,252,193,18,158,252,193,20,158,252,193,22,158,252,193,24,158,252,193,26,158,252,193,28,158,252,193,30,158,252,193,56,159,252,193,58,159,252,193,60,159,252,193,62,159,252,193,64,159,252,193,66,159,252,193,68,159,252,193,70,159,252,193,72,159,252,193,74,159,252,193,76,159,252,193,78,159,252,193,154,160,252,193,156,160,252,193,158,160,252,193,160,160,252,193,162,160,252,193,164,160,252,193,38,157,252,193,40,157,252,193,42,157,252,193,44,157,252,193,46,157,252,193,48,157,252,193,50,157,252,193,52,157,252,193,54,157,252,193,56,157,252,193,58,157,252,193,60,157,252,193,62,157,252,193,64,157,252,193,66,157,252,193,68,157,252,193,70,157,252,193,72,157,252,193,74,157,252,193,76,157,252,193,78,157,252,193,80,157,252,193,82,157,252,193,84,157,252,193,86,157,252,193,88,157,252,193,90,157,252,193,92,157,252,193,94,157,252,193,96,157,252,193,98,157,252,193,100,157,252,193,102,157,252,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,193,104,157,252,193,156,159,252,193,158,159,252,193,160,159,252,193,162,159,252,193,164,159,252,193,166,159,252,193,168,159,252,193,170,159,252,193,218,160,252,193,172,159,252,193,174,159,252,193,176,159,252,193,178,159,252,193,180,159,252,193,182,159,252,193,184,159,252,193,186,159,252,193,188,159,252,193,190,159,252,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,193,128,157,252,193,134,158,252,193,136,158,252,193,138,158,252,193,140,158,252,193,142,158,252,193,144,158,252,193,146,158,252,193,148,158,252,193,150,158,252,193,152,158,252,193,154,158,252,193,156,158,252,193,158,158,252,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,193,160,158,252,193,242,157,252,193,244,157,252,193,246,157,252,193,248,157,252,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,193,254,157,252,193,2,158,252,193,4,158,252,193,6,158,252,193,44,159,252,193,46,159,252,193,48,159,252,193,50,159,252,193,52,159,252,193,54,159,252,193,136,160,252,193,138,160,252,193,140,160,252,193,142,160,252,193,144,160,252,193,146,160,252,193,240,161,252,193,242,161,252,193,244,161,252,193,246,161,252,193,248,161,252,193,250,161,252,193,252,161,252,193,254,161,252,193,56,163,252,193,58,163,252,193,60,163,252,193,62,163,252,193,64,163,252,193,66,163,252,193,68,163,252,193,70,163,252,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,193,116,159,252,193,118,159,252,193,120,159,252,193,122,159,252,193,124,159,252,193,126,159,252,193,128,159,252,193,130,159,252,193,132,159,252,193,134,159,252,193,136,159,252,193,138,159,252,193,140,159,252,193,142,159,252,193,144,159,252,193,146,159,252,193,148,159,252,193,150,159,252,193,152,159,252,193,154,159,252,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,193,102,159,252,193,170,160,252,193,172,160,252,193,174,160,252,193,176,160,252,193,178,160,252,193,180,160,252,193,182,160,252,193,184,160,252,193,186,160,252,193,188,160,252,193,190,160,252,193,192,160,252,193,194,160,252,193,196,160,252,193,16,162,252,193,18,162,252,193,20,162,252,193,22,162,252,193,24,162,252,193,26,162,252,193,28,162,252,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,193,106,159,252,193,108,159,252,193,110,159,252,193,112,159,252,193,114,159,252,193,198,160,252,193,200,160,252,193,202,160,252,193,204,160,252,193,206,160,252,193,208,160,252,193,210,160,252,193,212,160,252,193,214,160,252,193,216,160,252,193,30,162,252,193,32,162,252,193,34,162,252,193,36,162,252,193,38,162,252,193,114,163,252,193,116,163,252,193,118,163,252,193,188,164,252,193,190,164,252,193,192,164,252,193,152,165,252,193,154,165,252,193,36,166,252,193,38,166,252,193,208,166,252,193,210,166,252,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,193,26,161,252,193,28,161,252,193,30,161,252,193,32,161,252,193,34,161,252,193,36,161,252,193,38,161,252,193,40,161,252,193,42,161,252,193,44,161,252,193,46,161,252,193,48,161,252,193,50,161,252,193,52,161,252,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,193,166,160,252,193,168,160,252,193,2,162,252,193,4,162,252,193,6,162,252,193,8,162,252,193,10,162,252,193,12,162,252,193,14,162,252,193,72,163,252,193,74,163,252,193,76,163,252,193,78,163,252,193,150,164,252,193,152,164,252,193,154,164,252,193,156,164,252,193,158,164,252,193,160,164,252,193,114,165,252,193,116,165,252,193,118,165,252,193,120,165,252,193,122,165,252,193,124,165,252,193,126,165,252,193,128,165,252,193,170,166,252,193,172,166,252,193,174,166,252,193,176,166,252,193,178,166,252,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,193,22,161,252,193,106,162,252,193,108,162,252,193,110,162,252,193,24,161,252,193,112,162,252,193,114,162,252,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,193,174,163,252,193,176,163,252,193,178,163,252,193,180,163,252,193,182,163,252,193,184,163,252,193,186,163,252,193,226,164,252,193,188,163,252,193,190,163,252,193,192,163,252,193,194,163,252,193,196,163,252,193,198,163,252,193,200,163,252,193,202,163,252,193,204,163,252,193,206,163,252,193,208,163,252,193,228,164,252,193,230,164,252,193,232,164,252,193,234,164,252,193,236,164,252,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,193,212,163,252,193,46,163,252,193,48,163,252,193,50,163,252,193,52,163,252,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,193,54,163,252,193,104,164,252,193,106,164,252,193,108,164,252,193,110,164,252,193,112,164,252,193,114,164,252,193,116,164,252,193,118,164,252,193,120,164,252,193,122,164,252,193,124,164,252,193,126,164,252,193,128,164,252,193,130,164,252,193,132,164,252,193,134,164,252,193,136,164,252,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,193,162,164,252,193,164,164,252,193,166,164,252,193,168,164,252,193,170,164,252,193,172,164,252,193,174,164,252,193,176,164,252,193,178,164,252,193,180,164,252,193,182,164,252,193,184,164,252,193,186,164,252,193,130,165,252,193,132,165,252,193,134,165,252,193,136,165,252,193,138,165,252,193,140,165,252,193,142,165,252,193,144,165,252,193,146,165,252,193,148,165,252,193,150,165,252,193,18,166,252,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,193,194,164,252,193,196,164,252,193,198,164,252,193,200,164,252,193,202,164,252,193,204,164,252,193,206,164,252,193,208,164,252,193,210,164,252,193,212,164,252,193,214,164,252,193,216,164,252,193,218,164,252,193,238,164,252,193,240,164,252,193,242,164,252,193,210,163,252,193,244,164,252,193,186,165,252,193,50,166,252,193,52,166,252,193,54,166,252,193,56,166,252,193,58,166,252,193,60,166,252,193,62,166,252,193,64,166,252,193,240,166,252,193,242,166,252,193,244,166,252,193,246,166,252,193,100,167,252,193,102,167,252,193,104,167,252,193,134,162,253,193,154,167,252,193,244,167,252,193,12,168,252,193,64,168,252,193,140,168,252,193,204,168,252,193,206,168,252,193,44,169,252,193,46,169,252,193,48,169,252,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,193,138,164,252,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,193,140,164,252,193,142,164,252,193,144,164,252,193,146,164,252,193,148,164,252,193,110,165,252,193,112,165,252,193,16,166,252,193,162,166,252,193,164,166,252,193,166,166,252,193,168,166,252,193,56,167,252,193,146,167,252,193,196,167,252,193,234,167,252,193,48,168,252,193,98,168,252,193,100,168,252,193,158,168,252,193,160,168,252,193,236,168,252,193,238,168,252,193,240,168,252,193,102,169,252,193,104,169,252,193,106,169,252,193,108,169,252,193,110,169,252,193,240,169,252,193,242,169,252,193,244,169,252,193,220,164,252,193,222,164,252,193,224,164,252,193,156,165,252,193,158,165,252,193,160,165,252,193,162,165,252,193,164,165,252,193,166,165,252,193,168,165,252,193,170,165,252,193,172,165,252,193,174,165,252,193,176,165,252,193,178,165,252,193,180,165,252,193,40,166,252,193,42,166,252,193,44,166,252,193,46,166,252,193,48,166,252,193,182,165,252,193,184,165,252,193,218,166,252,193,220,166,252,193,222,166,252,193,224,166,252,193,226,166,252,193,228,166,252,193,230,166,252,193,232,166,252,193,234,166,252,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,193,20,166,252,193,22,166,252,193,24,166,252,193,26,166,252,193,28,166,252,193,30,166,252,193,32,166,252,193,34,166,252,193,180,166,252,193,182,166,252,193,184,166,252,193,186,166,252,193,188,166,252,193,190,166,252,193,192,166,252,193,194,166,252,193,196,166,252,193,198,166,252,193,200,166,252,193,202,166,252,193,204,166,252,193,206,166,252,193,70,167,252,193,72,167,252,193,74,167,252,193,76,167,252,193,78,167,252,193,80,167,252,193,82,167,252,193,84,167,252,193,236,167,252,193,238,167,252,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,193,212,166,252,193,214,166,252,193,216,166,252,193,150,167,252,193,10,168,252,193,36,168,252,193,112,168,252,193,166,168,252,193,168,168,252,193,170,168,252,193,172,168,252,193,4,169,252,193,6,169,252,193,8,169,252,193,10,169,252,193,12,169,252,193,14,169,252,193,140,169,252,193,142,169,252,193,144,169,252,193,146,169,252,193,148,169,252,193,24,170,252,193,26,170,252,193,28,170,252,193,30,170,252,193,32,170,252,193,34,170,252,193,36,170,252,193,168,170,252,193,64,171,252,193,66,171,252,193,236,166,252,193,238,166,252,193,86,167,252,193,88,167,252,193,90,167,252,193,92,167,252,193,94,167,252,193,96,167,252,193,98,167,252,193,200,167,252,193,152,167,252,193,202,167,252,193,204,167,252,193,206,167,252,193,208,167,252,193,240,167,252,193,242,167,252,193,62,168,252,193,72,168,252,193,76,168,252,193,84,168,252,193,86,168,252,193,88,168,252,193,116,168,252,193,118,168,252,193,120,168,252,193,122,168,252,193,124,168,252,193,126,168,252,193,128,168,252,193,130,168,252,193,132,168,252,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,193,58,167,252,193,60,167,252,193,62,167,252,193,64,167,252,193,66,167,252,193,68,167,252,193,148,167,252,193,198,167,252,193,28,168,252,193,30,168,252,193,32,168,252,193,82,168,252,193,102,168,252,193,104,168,252,193,106,168,252,193,162,168,252,193,242,168,252,193,244,168,252,193,246,168,252,193,112,169,252,193,114,169,252,193,116,169,252,193,118,169,252,193,120,169,252,193,122,169,252,193,248,169,252,193,250,169,252,193,252,169,252,193,254,169,252,193,146,170,252,193,148,170,252,193,150,170,252,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,193,156,167,252,193,158,167,252,193,160,167,252,193,162,167,252,193,164,167,252,193,166,167,252,193,168,167,252,193,170,167,252,193,172,167,252,193,174,167,252,193,176,167,252,193,178,167,252,193,180,167,252,193,182,167,252,193,184,167,252,193,186,167,252,193,188,167,252,193,190,167,252,193,192,167,252,193,194,167,252,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,193,246,167,252,193,248,167,252,193,250,167,252,193,252,167,252,193,254,167,252,193,2,168,252,193,4,168,252,193,6,168,252,193,14,168,252,193,16,168,252,193,18,168,252,193,20,168,252,193,22,168,252,193,24,168,252,193,26,168,252,193,38,168,252,193,50,168,252,193,52,168,252,193,40,168,252,193,42,168,252,193,44,168,252,193,46,168,252,193,54,168,252,193,56,168,252,193,8,168,252,193,34,168,252,193,60,168,252,193,108,168,252,193,110,168,252,193,164,168,252,193,248,168,252,193,250,168,252,193,252,168,252,193,254,168,252,193,2,169,252,193,124,169,252,193,126,169,252,193,128,169,252,193,130,169,252,193,132,169,252,193,134,169,252,193,136,169,252,193,138,169,252,193,2,170,252,193,4,170,252,193,6,170,252,193,8,170,252,193,10,170,252,193,12,170,252,193,14,170,252,193,16,170,252,193,18,170,252,193,20,170,252,193,22,170,252,193,154,170,252,193,156,170,252,193,58,168,252,193,66,168,252,193,68,168,252,193,70,168,252,193,74,168,252,193,78,168,252,193,80,168,252,193,90,168,252,193,92,168,252,193,94,168,252,193,96,168,252,193,142,168,252,193,144,168,252,193,146,168,252,193,148,168,252,193,150,168,252,193,152,168,252,193,154,168,252,193,156,168,252,193,208,168,252,193,210,168,252,193,212,168,252,193,214,168,252,193,216,168,252,193,218,168,252,193,220,168,252,193,222,168,252,193,224,168,252,193,226,168,252,193,228,168,252,193,230,168,252,193,232,168,252,193,134,168,252,193,136,168,252,193,138,168,252,193,174,168,252,193,176,168,252,193,178,168,252,193,180,168,252,193,182,168,252,193,184,168,252,193,186,168,252,193,188,168,252,193,190,168,252,193,192,168,252,193,194,168,252,193,196,168,252,193,198,168,252,193,200,168,252,193,202,168,252,193,18,169,252,193,20,169,252,193,22,169,252,193,24,169,252,193,26,169,252,193,28,169,252,193,30,169,252,193,32,169,252,193,34,169,252,193,36,169,252,193,38,169,252,193,40,169,252,193,150,169,252,193,152,169,252,193,234,168,252,193,52,169,252,193,54,169,252,193,56,169,252,193,58,169,252,193,60,169,252,193,62,169,252,193,64,169,252,193,66,169,252,193,68,169,252,193,70,169,252,193,72,169,252,193,74,169,252,193,76,169,252,193,78,169,252,193,80,169,252,193,82,169,252,193,84,169,252,193,86,169,252,193,88,169,252,193,90,169,252,193,92,169,252,193,94,169,252,193,192,169,252,193,96,169,252,193,98,169,252,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,193,154,169,252,193,156,169,252,193,158,169,252,193,42,169,252,193,160,169,252,193,162,169,252,193,164,169,252,193,166,169,252,193,168,169,252,193,170,169,252,193,172,169,252,193,174,169,252,193,176,169,252,193,178,169,252,193,38,170,252,193,40,170,252,193,42,170,252,193,44,170,252,193,46,170,252,193,48,170,252,193,50,170,252,193,52,170,252,193,170,170,252,193,172,170,252,193,174,170,252,193,176,170,252,193,178,170,252,193,180,170,252,193,182,170,252,193,184,170,252,193,186,170,252,193,188,170,252,193,50,169,252,193,180,169,252,193,182,169,252,193,184,169,252,193,186,169,252,193,188,169,252,193,190,169,252,193,56,170,252,193,58,170,252,193,60,170,252,193,62,170,252,193,64,170,252,193,66,170,252,193,192,170,252,193,194,170,252,193,196,170,252,193,198,170,252,193,200,170,252,193,202,170,252,193,98,171,252,193,100,171,252,193,102,171,252,193,104,171,252,193,106,171,252,193,108,171,252,193,110,171,252,193,244,171,252,193,246,171,252,193,122,172,252,193,124,172,252,193,126,172,252,193,128,172,252,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,193,100,169,252,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,193,246,169,252,193,144,170,252,193,32,171,252,193,34,171,252,193,36,171,252,193,38,171,252,193,184,171,252,193,186,171,252,193,188,171,252,193,52,172,252,193,54,172,252,193,56,172,252,193,58,172,252,193,184,172,252,193,186,172,252,193,42,173,252,193,44,173,252,193,46,173,252,193,134,173,252,193,136,173,252,193,138,173,252,193,140,173,252,193,174,173,252,193,244,173,252,193,246,173,252,193,248,173,252,193,102,174,252,193,104,174,252,193,162,174,252,193,164,174,252,193,96,175,252,193,32,176,252,193,54,170,252,193,190,170,252,193,72,171,252,193,74,171,252,193,76,171,252,193,78,171,252,193,80,171,252,193,82,171,252,193,84,171,252,193,86,171,252,193,88,171,252,193,90,171,252,193,92,171,252,193,94,171,252,193,96,171,252,193,222,171,252,193,224,171,252,193,226,171,252,193,228,171,252,193,230,171,252,193,232,171,252,193,234,171,252,193,236,171,252,193,238,171,252,193,240,171,252,193,100,172,252,193,102,172,252,193,104,172,252,193,106,172,252,193,108,172,252,193,110,172,252,193,112,172,252,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,193,204,170,252,193,206,170,252,193,208,170,252,193,210,170,252,193,212,170,252,193,214,170,252,193,216,170,252,193,218,170,252,193,152,170,252,193,40,171,252,193,42,171,252,193,44,171,252,193,46,171,252,193,48,171,252,193,190,171,252,193,192,171,252,193,194,171,252,193,196,171,252,193,198,171,252,193,60,172,252,193,62,172,252,193,64,172,252,193,66,172,252,193,68,172,252,193,70,172,252,193,72,172,252,193,74,172,252,193,190,172,252,193,192,172,252,193,194,172,252,193,48,173,252,193,50,173,252,193,52,173,252,193,54,173,252,193,56,173,252,193,142,173,252,193,176,173,252,193,178,173,252,193,180,173,252,193,214,173,252,193,158,170,252,193,160,170,252,193,162,170,252,193,164,170,252,193,166,170,252,193,50,171,252,193,52,171,252,193,54,171,252,193,56,171,252,193,58,171,252,193,60,171,252,193,62,171,252,193,200,171,252,193,202,171,252,193,204,171,252,193,206,171,252,193,208,171,252,193,210,171,252,193,212,171,252,193,76,172,252,193,78,172,252,193,80,172,252,193,82,172,252,193,84,172,252,193,86,172,252,193,88,172,252,193,196,172,252,193,58,173,252,193,60,173,252,193,144,173,252,193,146,173,252,193,216,173,252,193,220,170,252,193,222,170,252,193,224,170,252,193,226,170,252,193,228,170,252,193,230,170,252,193,232,170,252,193,234,170,252,193,236,170,252,193,238,170,252,193,240,170,252,193,242,170,252,193,244,170,252,193,246,170,252,193,248,170,252,193,250,170,252,193,252,170,252,193,254,170,252,193,2,171,252,193,4,171,252,193,6,171,252,193,8,171,252,193,10,171,252,193,12,171,252,193,14,171,252,193,16,171,252,193,18,171,252,193,20,171,252,193,22,171,252,193,24,171,252,193,26,171,252,193,28,171,252,193,30,171,252,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,193,68,171,252,193,70,171,252,193,214,171,252,193,216,171,252,193,218,171,252,193,220,171,252,193,90,172,252,193,92,172,252,193,94,172,252,193,96,172,252,193,98,172,252,193,198,172,252,193,200,172,252,193,202,172,252,193,204,172,252,193,206,172,252,193,208,172,252,193,62,173,252,193,64,173,252,193,66,173,252,193,182,173,252,193,184,173,252,193,254,173,252,193,106,174,252,193,174,174,252,193,176,174,252,193,108,175,252,193,110,175,252,193,112,175,252,193,114,175,252,193,56,176,252,193,58,176,252,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,193,252,171,252,193,254,171,252,193,2,172,252,193,4,172,252,193,6,172,252,193,8,172,252,193,10,172,252,193,12,172,252,193,14,172,252,193,16,172,252,193,18,172,252,193,20,172,252,193,22,172,252,193,24,172,252,193,26,172,252,193,28,172,252,193,30,172,252,193,32,172,252,193,34,172,252,193,36,172,252,193,38,172,252,193,40,172,252,193,42,172,252,193,44,172,252,193,46,172,252,193,48,172,252,193,50,172,252,193,136,172,252,193,248,171,252,193,102,133,253,193,104,133,253,193,180,133,253,193,220,133,253,193,2,134,253,193,4,134,253,193,6,134,253,193,80,134,253,193,148,134,253,193,172,134,253,193,198,134,253,193,240,134,253,193,242,134,253,193,60,135,253,193,118,135,253,193,120,135,253,193,122,135,253,193,124,135,253,193,126,135,253,193,128,135,253,193,130,135,253,193,132,135,253,193,202,135,253,193,204,135,253,193,206,135,253,193,64,136,253,193,66,136,253,193,68,136,253,193,70,136,253,193,202,136,253,193,204,136,253,193,114,172,252,193,116,172,252,193,118,172,252,193,210,172,252,193,212,172,252,193,214,172,252,193,216,172,252,193,218,172,252,193,120,172,252,193,68,173,252,193,70,173,252,193,72,173,252,193,74,173,252,193,76,173,252,193,148,173,252,193,150,173,252,193,152,173,252,193,218,173,252,193,186,173,252,193,220,173,252,193,222,173,252,193,2,174,252,193,30,174,252,193,58,174,252,193,70,174,252,193,72,174,252,193,74,174,252,193,76,174,252,193,78,174,252,193,80,174,252,193,82,174,252,193,84,174,252,193,130,172,252,193,132,172,252,193,134,172,252,193,220,172,252,193,222,172,252,193,224,172,252,193,226,172,252,193,228,172,252,193,230,172,252,193,232,172,252,193,78,173,252,193,80,173,252,193,82,173,252,193,154,173,252,193,156,173,252,193,188,173,252,193,224,173,252,193,4,174,252,193,6,174,252,193,32,174,252,193,34,174,252,193,86,174,252,193,128,174,252,193,130,174,252,193,132,174,252,193,134,174,252,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,193,138,172,252,193,140,172,252,193,142,172,252,193,144,172,252,193,146,172,252,193,148,172,252,193,150,172,252,193,152,172,252,193,154,172,252,193,156,172,252,193,158,172,252,193,160,172,252,193,162,172,252,193,164,172,252,193,166,172,252,193,168,172,252,193,170,172,252,193,172,172,252,193,174,172,252,193,176,172,252,193,178,172,252,193,180,172,252,193,182,172,252,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,193,188,172,252,193,130,180,252,193,106,183,252,193,198,186,252,193,28,187,252,193,126,187,252,193,232,187,252,193,182,188,252,193,58,193,252,193,102,200,252,193,92,211,252,193,110,217,252,193,208,225,252,193,210,225,252,193,104,227,252,193,134,229,252,193,136,229,252,193,138,229,252,193,20,235,252,193,22,235,252,193,198,237,252,193,110,240,252,193,214,242,252,193,162,12,253,193,252,15,253,193,26,16,253,193,66,19,253,193,198,24,253,193,102,27,253,193,2,40,253,193,22,41,253,193,96,41,253,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,193,158,173,252,193,160,173,252,193,162,173,252,193,164,173,252,193,166,173,252,193,168,173,252,193,170,173,252,193,172,173,252,193,190,173,252,193,192,173,252,193,194,173,252,193,196,173,252,193,198,173,252,193,200,173,252,193,202,173,252,193,204,173,252,193,206,173,252,193,208,173,252,193,226,173,252,193,210,173,252,193,212,173,252,193,228,173,252,193,230,173,252,193,232,173,252,193,234,173,252,193,236,173,252,193,238,173,252,193,240,173,252,193,242,173,252,193,8,174,252,193,10,174,252,193,12,174,252,193,14,174,252,193,16,174,252,193,18,174,252,193,20,174,252,193,22,174,252,193,24,174,252,193,26,174,252,193,36,174,252,193,38,174,252,193,40,174,252,193,42,174,252,193,44,174,252,193,48,174,252,193,50,174,252,193,52,174,252,193,54,174,252,193,56,174,252,193,250,173,252,193,252,173,252,193,28,174,252,193,166,174,252,193,168,174,252,193,98,175,252,193,100,175,252,193,38,176,252,193,40,176,252,193,42,176,252,193,44,176,252,193,8,177,252,193,10,177,252,193,12,177,252,193,14,177,252,193,16,177,252,193,18,177,252,193,20,177,252,193,22,177,252,193,24,177,252,193,26,177,252,193,252,177,252,193,254,177,252,193,2,178,252,193,4,178,252,193,6,178,252,193,8,178,252,193,10,178,252,193,12,178,252,193,14,178,252,193,16,178,252,193,52,179,252,193,46,174,252,193,170,174,252,193,172,174,252,193,102,175,252,193,104,175,252,193,106,175,252,193,46,176,252,193,48,176,252,193,50,176,252,193,52,176,252,193,54,176,252,193,28,177,252,193,30,177,252,193,32,177,252,193,34,177,252,193,36,177,252,193,38,177,252,193,18,178,252,193,20,178,252,193,22,178,252,193,24,178,252,193,26,178,252,193,70,179,252,193,72,179,252,193,74,179,252,193,76,179,252,193,78,179,252,193,80,179,252,193,82,179,252,193,84,179,252,193,86,179,252,193,88,179,252,193,60,174,252,193,62,174,252,193,64,174,252,193,66,174,252,193,68,174,252,193,88,174,252,193,90,174,252,193,92,174,252,193,94,174,252,193,96,174,252,193,98,174,252,193,100,174,252,193,136,174,252,193,138,174,252,193,140,174,252,193,142,174,252,193,144,174,252,193,146,174,252,193,148,174,252,193,150,174,252,193,152,174,252,193,154,174,252,193,156,174,252,193,158,174,252,193,160,174,252,193,12,175,252,193,14,175,252,193,16,175,252,193,18,175,252,193,20,175,252,193,22,175,252,193,24,175,252,193,108,174,252,193,110,174,252,193,112,174,252,193,114,174,252,193,116,174,252,193,118,174,252,193,120,174,252,193,122,174,252,193,124,174,252,193,126,174,252,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,193,190,175,252,193,192,175,252,193,194,175,252,193,196,175,252,193,198,175,252,193,200,175,252,193,202,175,252,193,204,175,252,193,206,175,252,193,208,175,252,193,210,175,252,193,212,175,252,193,214,175,252,193,148,176,252,193,150,176,252,193,152,176,252,193,154,176,252,193,156,176,252,193,158,176,252,193,160,176,252,193,162,176,252,193,164,176,252,193,166,176,252,193,122,177,252,193,26,175,252,193,28,175,252,193,30,175,252,193,32,175,252,193,34,175,252,193,36,175,252,193,38,175,252,193,40,175,252,193,42,175,252,193,44,175,252,193,46,175,252,193,48,175,252,193,50,175,252,193,52,175,252,193,54,175,252,193,56,175,252,193,58,175,252,193,60,175,252,193,62,175,252,193,64,175,252,193,66,175,252,193,68,175,252,193,70,175,252,193,72,175,252,193,74,175,252,193,76,175,252,193,78,175,252,193,80,175,252,193,82,175,252,193,84,175,252,193,86,175,252,193,88,175,252,193,90,175,252,193,92,175,252,193,94,175,252,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,193,64,176,252,193,66,176,252,193,68,176,252,193,70,176,252,193,72,176,252,193,74,176,252,193,76,176,252,193,78,176,252,193,80,176,252,193,82,176,252,193,84,176,252,193,86,176,252,193,88,176,252,193,90,176,252,193,46,177,252,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,193,34,176,252,193,36,176,252,193,2,177,252,193,4,177,252,193,6,177,252,193,242,177,252,193,244,177,252,193,246,177,252,193,248,177,252,193,250,177,252,193,34,179,252,193,36,179,252,193,38,179,252,193,40,179,252,193,42,179,252,193,44,179,252,193,46,179,252,193,48,179,252,193,50,179,252,193,120,180,252,193,122,180,252,193,124,180,252,193,126,180,252,193,128,180,252,193,146,181,252,193,148,181,252,193,150,181,252,193,152,181,252,193,154,181,252,193,122,182,252,193,124,182,252,193,126,182,252,193,60,176,252,193,62,176,252,193,40,177,252,193,42,177,252,193,44,177,252,193,28,178,252,193,30,178,252,193,32,178,252,193,34,178,252,193,96,179,252,193,98,179,252,193,100,179,252,193,102,179,252,193,104,179,252,193,174,180,252,193,176,180,252,193,180,181,252,193,168,182,252,193,170,182,252,193,134,183,252,193,136,183,252,193,4,185,252,193,6,185,252,193,8,185,252,193,80,185,252,193,82,185,252,193,120,185,252,193,210,185,252,193,228,185,252,193,60,186,252,193,62,186,252,193,64,186,252,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,193,120,177,252,193,140,178,252,193,142,178,252,193,106,179,252,193,144,178,252,193,146,178,252,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,193,124,177,252,193,126,177,252,193,128,177,252,193,130,177,252,193,132,177,252,193,134,177,252,193,136,177,252,193,148,178,252,193,150,178,252,193,152,178,252,193,154,178,252,193,156,178,252,193,158,178,252,193,160,178,252,193,162,178,252,193,164,178,252,193,166,178,252,193,168,178,252,193,170,178,252,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,193,54,179,252,193,56,179,252,193,58,179,252,193,60,179,252,193,62,179,252,193,64,179,252,193,66,179,252,193,68,179,252,193,132,180,252,193,134,180,252,193,136,180,252,193,138,180,252,193,140,180,252,193,142,180,252,193,144,180,252,193,156,181,252,193,158,181,252,193,160,181,252,193,162,181,252,193,130,182,252,193,132,182,252,193,134,182,252,193,136,182,252,193,138,182,252,193,140,182,252,193,142,182,252,193,144,182,252,193,108,183,252,193,110,183,252,193,112,183,252,193,114,183,252,193,116,183,252,193,90,179,252,193,92,179,252,193,94,179,252,193,146,180,252,193,148,180,252,193,150,180,252,193,152,180,252,193,154,180,252,193,156,180,252,193,158,180,252,193,160,180,252,193,162,180,252,193,164,180,252,193,166,180,252,193,168,180,252,193,170,180,252,193,172,180,252,193,164,181,252,193,166,181,252,193,168,181,252,193,170,181,252,193,172,181,252,193,174,181,252,193,176,181,252,193,178,181,252,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,193,244,180,252,193,246,180,252,193,248,180,252,193,250,180,252,193,252,180,252,193,254,180,252,193,2,181,252,193,252,181,252,193,254,181,252,193,2,182,252,193,4,182,252,193,6,182,252,193,8,182,252,193,10,182,252,193,12,182,252,193,14,182,252,193,16,182,252,193,226,182,252,193,228,182,252,193,230,182,252,193,232,182,252,193,234,182,252,193,236,182,252,193,178,183,252,193,180,183,252,193,182,183,252,193,184,183,252,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,193,4,181,252,193,68,180,252,193,70,180,252,193,72,180,252,193,74,180,252,193,76,180,252,193,78,180,252,193,80,180,252,193,82,180,252,193,84,180,252,193,86,180,252,193,88,180,252,193,90,180,252,193,92,180,252,193,94,180,252,193,96,180,252,193,98,180,252,193,100,180,252,193,102,180,252,193,104,180,252,193,106,180,252,193,108,180,252,193,110,180,252,193,112,180,252,193,114,180,252,193,116,180,252,193,118,180,252,193,6,181,252,193,8,181,252,193,10,181,252,193,12,181,252,193,14,181,252,193,16,181,252,193,18,181,252,193,20,181,252,193,22,181,252,193,24,181,252,193,26,181,252,193,28,181,252,193,30,181,252,193,32,181,252,193,34,181,252,193,36,181,252,193,38,181,252,193,40,181,252,193,42,181,252,193,44,181,252,193,46,181,252,193,48,181,252,193,50,181,252,193,52,181,252,193,54,181,252,193,56,181,252,193,58,181,252,193,60,181,252,193,62,181,252,193,64,181,252,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,193,66,181,252,193,68,181,252,193,70,181,252,193,72,181,252,193,74,181,252,193,76,181,252,193,78,181,252,193,80,181,252,193,82,181,252,193,84,181,252,193,86,181,252,193,88,181,252,193,90,181,252,193,92,181,252,193,94,181,252,193,96,181,252,193,98,181,252,193,100,181,252,193,102,181,252,193,104,181,252,193,106,181,252,193,108,181,252,193,110,181,252,193,112,181,252,193,114,181,252,193,116,181,252,193,118,181,252,193,120,181,252,193,122,181,252,193,124,181,252,193,126,181,252,193,128,181,252,193,130,181,252,193,132,181,252,193,18,182,252,193,134,181,252,193,136,181,252,193,138,181,252,193,140,181,252,193,142,181,252,193,144,181,252,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,193,172,182,252,193,244,181,252,193,246,181,252,193,138,183,252,193,248,181,252,193,250,181,252,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,193,128,182,252,193,98,183,252,193,100,183,252,193,102,183,252,193,104,183,252,193,18,184,252,193,20,184,252,193,22,184,252,193,24,184,252,193,26,184,252,193,28,184,252,193,30,184,252,193,128,184,252,193,130,184,252,193,132,184,252,193,236,184,252,193,238,184,252,193,240,184,252,193,62,185,252,193,64,185,252,193,66,185,252,193,112,185,252,193,174,185,252,193,184,185,252,193,202,185,252,193,222,185,252,193,42,186,252,193,44,186,252,193,46,186,252,193,48,186,252,193,112,186,252,193,114,186,252,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,193,122,183,252,193,124,183,252,193,126,183,252,193,128,183,252,193,130,183,252,193,132,183,252,193,34,184,252,193,36,184,252,193,38,184,252,193,40,184,252,193,42,184,252,193,44,184,252,193,146,184,252,193,148,184,252,193,150,184,252,193,250,184,252,193,252,184,252,193,254,184,252,193,2,185,252,193,74,185,252,193,76,185,252,193,78,185,252,193,118,185,252,193,152,185,252,193,154,185,252,193,176,185,252,193,178,185,252,193,204,185,252,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,193,140,183,252,193,222,182,252,193,142,183,252,193,144,183,252,193,146,183,252,193,148,183,252,193,150,183,252,193,152,183,252,193,154,183,252,193,156,183,252,193,158,183,252,193,224,182,252,193,160,183,252,193,162,183,252,193,164,183,252,193,166,183,252,193,168,183,252,193,170,183,252,193,172,183,252,193,174,183,252,193,176,183,252,206,0,72,0,206,0,72,0,206,0,72,0,206,0,72,0,206,0,72,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,193,118,183,252,193,120,183,252,193,32,184,252,193,134,184,252,193,136,184,252,193,138,184,252,193,140,184,252,193,142,184,252,193,144,184,252,193,242,184,252,193,244,184,252,193,246,184,252,193,248,184,252,193,68,185,252,193,70,185,252,193,72,185,252,193,114,185,252,193,116,185,252,193,150,185,252,193,2,186,252,193,50,186,252,193,52,186,252,193,54,186,252,193,56,186,252,193,58,186,252,193,116,186,252,193,118,186,252,193,120,186,252,193,122,186,252,193,124,186,252,193,126,186,252,193,200,186,252,193,186,183,252,193,188,183,252,193,190,183,252,193,64,184,252,193,66,184,252,193,68,184,252,193,70,184,252,193,72,184,252,193,178,184,252,193,180,184,252,193,14,185,252,193,16,185,252,193,18,185,252,193,20,185,252,193,92,185,252,193,124,185,252,193,126,185,252,193,128,185,252,193,130,185,252,193,164,185,252,193,166,185,252,193,190,185,252,193,254,185,252,193,106,186,252,193,40,186,252,193,108,186,252,193,184,186,252,193,186,186,252,193,8,187,252,193,112,187,252,193,212,187,252,193,214,187,252,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,32,72,0,206,32,72,0,206,32,72,0,206,32,72,0,193,182,184,252,193,16,184,252,193,90,184,252,193,92,184,252,193,184,184,252,193,94,184,252,193,96,184,252,193,186,184,252,193,98,184,252,193,100,184,252,193,102,184,252,193,104,184,252,193,106,184,252,193,108,184,252,193,110,184,252,193,112,184,252,193,114,184,252,193,116,184,252,193,118,184,252,193,120,184,252,193,122,184,252,193,124,184,252,193,126,184,252,193,188,184,252,193,190,184,252,193,192,184,252,193,194,184,252,193,196,184,252,206,0,72,0,206,0,72,0,206,0,72,0,206,0,72,0,193,152,184,252,193,154,184,252,193,156,184,252,193,158,184,252,193,160,184,252,193,162,184,252,193,164,184,252,193,166,184,252,193,168,184,252,193,170,184,252,193,172,184,252,193,174,184,252,193,176,184,252,193,10,185,252,193,12,185,252,193,84,185,252,193,86,185,252,193,88,185,252,193,90,185,252,193,122,185,252,193,156,185,252,193,158,185,252,193,160,185,252,193,162,185,252,193,186,185,252,193,188,185,252,193,212,185,252,193,220,185,252,193,198,184,252,193,200,184,252,193,22,185,252,193,202,184,252,193,204,184,252,193,206,184,252,193,208,184,252,193,210,184,252,193,212,184,252,193,214,184,252,193,216,184,252,193,218,184,252,193,220,184,252,193,222,184,252,193,224,184,252,193,226,184,252,193,228,184,252,193,230,184,252,193,232,184,252,193,234,184,252,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,193,94,185,252,193,96,185,252,193,98,185,252,193,100,185,252,193,102,185,252,193,104,185,252,193,106,185,252,193,108,185,252,193,110,185,252,193,132,185,252,193,134,185,252,193,136,185,252,193,138,185,252,193,140,185,252,193,142,185,252,193,144,185,252,193,146,185,252,193,168,185,252,193,148,185,252,193,170,185,252,193,172,185,252,193,180,185,252,193,182,185,252,193,192,185,252,193,194,185,252,193,196,185,252,193,198,185,252,193,200,185,252,193,206,185,252,193,208,185,252,193,214,185,252,193,216,185,252,193,218,185,252,193,110,186,252,193,188,186,252,193,10,187,252,193,12,187,252,193,14,187,252,193,114,187,252,193,116,187,252,193,118,187,252,193,120,187,252,193,216,187,252,193,218,187,252,193,220,187,252,193,222,187,252,193,224,187,252,193,38,188,252,193,40,188,252,193,42,188,252,193,44,188,252,193,82,188,252,193,118,188,252,193,120,188,252,193,122,188,252,193,162,188,252,193,164,188,252,193,224,185,252,193,230,185,252,193,232,185,252,193,234,185,252,193,236,185,252,193,238,185,252,193,240,185,252,193,242,185,252,193,244,185,252,193,246,185,252,193,248,185,252,193,250,185,252,193,4,186,252,193,6,186,252,193,8,186,252,193,10,186,252,193,12,186,252,193,14,186,252,193,16,186,252,193,18,186,252,193,20,186,252,193,22,186,252,193,252,185,252,193,24,186,252,193,26,186,252,193,28,186,252,193,30,186,252,193,32,186,252,193,34,186,252,193,36,186,252,193,38,186,252,193,70,186,252,193,226,185,252,193,128,186,252,193,130,186,252,193,132,186,252,193,218,186,252,193,220,186,252,193,222,186,252,193,38,187,252,193,40,187,252,193,42,187,252,193,136,187,252,193,138,187,252,193,140,187,252,193,252,187,252,193,102,188,252,193,104,188,252,193,218,188,252,193,238,188,252,193,16,189,252,193,48,189,252,193,50,189,252,193,82,189,252,193,108,189,252,193,132,189,252,193,152,189,252,193,170,189,252,193,172,189,252,193,174,189,252,193,2,190,252,193,62,190,252,193,106,190,252,193,108,190,252,193,66,186,252,193,68,186,252,193,134,186,252,193,136,186,252,193,138,186,252,193,140,186,252,193,142,186,252,193,144,186,252,193,146,186,252,193,148,186,252,193,150,186,252,193,152,186,252,193,224,186,252,193,226,186,252,193,228,186,252,193,230,186,252,193,232,186,252,193,234,186,252,193,236,186,252,193,238,186,252,193,240,186,252,193,242,186,252,193,44,187,252,193,46,187,252,193,48,187,252,193,50,187,252,193,52,187,252,193,54,187,252,193,56,187,252,193,58,187,252,193,60,187,252,193,142,187,252,193,72,186,252,193,74,186,252,193,76,186,252,193,78,186,252,193,80,186,252,193,82,186,252,193,84,186,252,193,86,186,252,193,88,186,252,193,90,186,252,193,92,186,252,193,94,186,252,193,96,186,252,193,98,186,252,193,100,186,252,193,102,186,252,193,104,186,252,193,154,186,252,193,156,186,252,193,158,186,252,193,160,186,252,193,162,186,252,193,164,186,252,193,166,186,252,193,168,186,252,193,170,186,252,193,172,186,252,193,174,186,252,193,176,186,252,193,178,186,252,193,180,186,252,193,182,186,252,193,190,186,252,193,192,186,252,193,194,186,252,193,196,186,252,193,16,187,252,193,18,187,252,193,20,187,252,193,22,187,252,193,24,187,252,193,26,187,252,193,122,187,252,193,124,187,252,193,226,187,252,193,228,187,252,193,230,187,252,193,46,188,252,193,48,188,252,193,84,188,252,193,86,188,252,193,88,188,252,193,90,188,252,193,124,188,252,193,126,188,252,193,166,188,252,193,180,188,252,193,196,188,252,193,46,189,252,193,78,189,252,193,100,189,252,193,102,189,252,193,128,189,252,193,192,189,252,193,202,186,252,193,204,186,252,193,206,186,252,193,208,186,252,193,210,186,252,193,212,186,252,193,214,186,252,193,216,186,252,193,30,187,252,193,32,187,252,193,34,187,252,193,36,187,252,193,128,187,252,193,130,187,252,193,132,187,252,193,134,187,252,193,234,187,252,193,236,187,252,193,238,187,252,193,240,187,252,193,242,187,252,193,244,187,252,193,246,187,252,193,248,187,252,193,250,187,252,193,50,188,252,193,52,188,252,193,54,188,252,193,56,188,252,193,58,188,252,193,92,188,252,193,94,188,252,193,244,186,252,193,246,186,252,193,248,186,252,193,250,186,252,193,252,186,252,193,254,186,252,193,2,187,252,193,4,187,252,193,6,187,252,193,62,187,252,193,64,187,252,193,66,187,252,193,68,187,252,193,70,187,252,193,72,187,252,193,74,187,252,193,76,187,252,193,78,187,252,193,80,187,252,193,82,187,252,193,84,187,252,193,86,187,252,193,88,187,252,193,90,187,252,193,92,187,252,193,94,187,252,193,96,187,252,193,98,187,252,193,100,187,252,193,102,187,252,193,104,187,252,193,106,187,252,193,108,187,252,193,110,187,252,193,166,187,252,193,168,187,252,193,170,187,252,193,172,187,252,193,174,187,252,193,176,187,252,193,178,187,252,193,180,187,252,193,182,187,252,193,184,187,252,193,186,187,252,193,188,187,252,193,190,187,252,193,192,187,252,193,194,187,252,193,196,187,252,193,198,187,252,193,200,187,252,193,202,187,252,193,204,187,252,193,206,187,252,193,208,187,252,193,210,187,252,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,193,144,187,252,193,146,187,252,193,148,187,252,193,150,187,252,193,152,187,252,193,154,187,252,193,156,187,252,193,158,187,252,193,160,187,252,193,162,187,252,193,164,187,252,193,254,187,252,193,2,188,252,193,4,188,252,193,6,188,252,193,8,188,252,193,10,188,252,193,60,188,252,193,62,188,252,193,64,188,252,193,66,188,252,193,106,188,252,193,108,188,252,193,140,188,252,193,142,188,252,193,144,188,252,193,146,188,252,193,148,188,252,193,170,188,252,193,172,188,252,193,174,188,252,193,184,188,252,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,193,68,188,252,193,70,188,252,193,72,188,252,193,74,188,252,193,76,188,252,193,78,188,252,193,80,188,252,193,110,188,252,193,112,188,252,193,114,188,252,193,116,188,252,193,150,188,252,193,152,188,252,193,154,188,252,193,156,188,252,193,158,188,252,193,192,188,252,193,198,188,252,193,202,188,252,193,208,188,252,193,220,188,252,193,222,188,252,193,240,188,252,193,224,188,252,193,242,188,252,193,18,189,252,193,20,189,252,193,36,188,252,193,160,188,252,193,210,188,252,193,226,188,252,193,244,188,252,193,246,188,252,193,248,188,252,193,250,188,252,193,252,188,252,193,254,188,252,193,24,189,252,193,56,189,252,193,58,189,252,193,112,189,252,193,216,189,252,193,244,189,252,193,30,190,252,193,32,190,252,193,70,190,252,193,72,190,252,193,74,190,252,193,130,190,252,193,132,190,252,193,134,190,252,193,212,190,252,193,16,191,252,193,18,191,252,193,68,191,252,193,70,191,252,193,72,191,252,193,74,191,252,193,156,191,252,193,96,188,252,193,98,188,252,193,100,188,252,193,128,188,252,193,130,188,252,193,132,188,252,193,134,188,252,193,136,188,252,193,138,188,252,193,168,188,252,193,186,188,252,193,194,188,252,193,234,188,252,193,236,188,252,193,14,189,252,193,36,189,252,193,80,189,252,193,104,189,252,193,106,189,252,193,130,189,252,193,194,189,252,193,20,190,252,193,56,190,252,193,58,190,252,193,60,190,252,193,104,190,252,193,194,190,252,193,196,190,252,193,198,190,252,193,254,190,252,193,40,191,252,193,42,191,252,193,176,188,252,193,178,188,252,193,200,188,252,193,212,188,252,193,214,188,252,193,216,188,252,193,228,188,252,193,230,188,252,193,232,188,252,193,2,189,252,193,4,189,252,193,6,189,252,193,8,189,252,193,10,189,252,193,12,189,252,193,26,189,252,193,28,189,252,193,30,189,252,193,32,189,252,193,34,189,252,193,38,189,252,193,40,189,252,193,42,189,252,193,44,189,252,193,60,189,252,193,62,189,252,193,64,189,252,193,66,189,252,193,68,189,252,193,70,189,252,193,72,189,252,193,74,189,252,193,188,188,252,193,190,188,252,193,204,188,252,193,206,188,252,193,84,189,252,193,154,189,252,193,176,189,252,193,208,189,252,193,112,190,252,193,208,190,252,193,4,191,252,193,6,191,252,193,8,191,252,193,46,191,252,193,48,191,252,193,140,191,252,193,142,191,252,193,144,191,252,193,4,192,252,193,6,192,252,193,8,192,252,193,78,192,252,193,252,192,252,193,34,193,252,193,124,193,252,193,250,193,252,193,154,194,252,193,194,194,252,193,196,194,252,193,140,195,252,193,244,195,252,193,246,195,252,193,22,189,252,193,52,189,252,193,54,189,252,193,110,189,252,193,134,189,252,193,136,189,252,193,138,189,252,193,156,189,252,193,158,189,252,193,160,189,252,193,178,189,252,193,180,189,252,193,196,189,252,193,202,189,252,193,210,189,252,193,212,189,252,193,224,189,252,193,238,189,252,193,240,189,252,193,242,189,252,193,22,190,252,193,24,190,252,193,26,190,252,193,28,190,252,193,64,190,252,193,66,190,252,193,68,190,252,193,114,190,252,193,116,190,252,193,118,190,252,193,120,190,252,193,122,190,252,193,76,189,252,193,86,189,252,193,88,189,252,193,90,189,252,193,92,189,252,193,94,189,252,193,96,189,252,193,98,189,252,193,114,189,252,193,116,189,252,193,118,189,252,193,120,189,252,193,122,189,252,193,124,189,252,193,126,189,252,193,140,189,252,193,142,189,252,193,144,189,252,193,146,189,252,193,148,189,252,193,150,189,252,193,162,189,252,193,164,189,252,193,166,189,252,193,168,189,252,193,184,189,252,193,186,189,252,193,188,189,252,193,190,189,252,193,198,189,252,193,200,189,252,193,204,189,252,193,206,189,252,193,214,189,252,193,218,189,252,193,220,189,252,193,222,189,252,193,228,189,252,193,230,189,252,193,232,189,252,193,234,189,252,193,236,189,252,193,246,189,252,193,248,189,252,193,4,190,252,193,250,189,252,193,6,190,252,193,254,189,252,193,252,189,252,193,8,190,252,193,10,190,252,193,12,190,252,193,14,190,252,193,16,190,252,193,18,190,252,193,34,190,252,193,36,190,252,193,38,190,252,193,40,190,252,193,42,190,252,193,44,190,252,193,46,190,252,193,48,190,252,193,50,190,252,193,52,190,252,193,76,190,252,193,78,190,252,193,80,190,252,193,82,190,252,193,84,190,252,193,86,190,252,193,88,190,252,193,90,190,252,193,92,190,252,193,94,190,252,193,96,190,252,193,98,190,252,193,100,190,252,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,193,54,190,252,193,102,190,252,193,192,190,252,193,248,190,252,193,250,190,252,193,252,190,252,193,122,191,252,193,124,191,252,193,192,191,252,193,236,191,252,193,64,192,252,193,154,192,252,193,192,192,252,193,216,192,252,193,32,193,252,193,186,193,252,193,188,193,252,193,190,193,252,193,192,193,252,193,236,193,252,193,238,193,252,193,50,194,252,193,140,194,252,193,142,194,252,193,144,194,252,193,180,194,252,193,228,194,252,193,230,194,252,193,232,194,252,193,28,195,252,193,30,195,252,193,76,195,252,193,110,190,252,193,200,190,252,193,202,190,252,193,204,190,252,193,206,190,252,193,2,191,252,193,44,191,252,193,134,191,252,193,136,191,252,193,138,191,252,193,194,191,252,193,196,191,252,193,198,191,252,193,244,191,252,193,246,191,252,193,248,191,252,193,250,191,252,193,252,191,252,193,254,191,252,193,2,192,252,193,66,192,252,193,68,192,252,193,70,192,252,193,72,192,252,193,74,192,252,193,76,192,252,193,124,192,252,193,126,192,252,193,158,192,252,193,194,192,252,193,196,192,252,193,220,192,252,193,124,190,252,193,126,190,252,193,128,190,252,193,210,190,252,193,10,191,252,193,12,191,252,193,14,191,252,193,50,191,252,193,52,191,252,193,54,191,252,193,56,191,252,193,58,191,252,193,60,191,252,193,62,191,252,193,64,191,252,193,146,191,252,193,148,191,252,193,150,191,252,193,66,191,252,193,152,191,252,193,154,191,252,193,200,191,252,193,202,191,252,193,204,191,252,193,206,191,252,193,10,192,252,193,12,192,252,193,14,192,252,193,16,192,252,193,80,192,252,193,82,192,252,193,84,192,252,206,160,72,0,206,160,72,0,206,160,72,0,206,160,72,0,206,160,72,0,193,76,191,252,193,78,191,252,193,80,191,252,193,82,191,252,193,84,191,252,193,86,191,252,193,88,191,252,193,90,191,252,193,92,191,252,193,94,191,252,193,96,191,252,193,98,191,252,193,38,191,252,193,100,191,252,193,102,191,252,193,104,191,252,193,106,191,252,193,108,191,252,193,110,191,252,193,112,191,252,193,114,191,252,193,116,191,252,193,118,191,252,193,120,191,252,193,158,191,252,193,160,191,252,193,162,191,252,193,126,191,252,193,128,191,252,193,130,191,252,193,132,191,252,193,238,191,252,193,240,191,252,193,242,191,252,193,120,192,252,193,122,192,252,193,156,192,252,193,218,192,252,193,226,192,252,193,60,193,252,193,118,193,252,193,120,193,252,193,122,193,252,193,194,193,252,193,240,193,252,193,242,193,252,193,244,193,252,193,52,194,252,193,90,194,252,193,92,194,252,193,146,194,252,193,148,194,252,193,182,194,252,193,184,194,252,193,186,194,252,193,234,194,252,193,236,194,252,193,32,195,252,193,58,195,252,193,18,192,252,193,20,192,252,193,90,192,252,193,130,192,252,193,168,192,252,193,210,192,252,193,234,192,252,193,82,193,252,193,84,193,252,193,86,193,252,193,140,193,252,193,142,193,252,193,144,193,252,193,146,193,252,193,206,193,252,193,208,193,252,193,210,193,252,193,14,194,252,193,58,194,252,193,60,194,252,193,62,194,252,193,64,194,252,193,66,194,252,193,112,194,252,193,160,194,252,193,162,194,252,193,198,194,252,193,244,194,252,193,246,194,252,193,102,195,252,193,192,195,252,193,194,195,252,193,28,192,252,193,30,192,252,193,32,192,252,193,34,192,252,193,36,192,252,193,38,192,252,193,40,192,252,193,42,192,252,193,44,192,252,193,46,192,252,193,48,192,252,193,50,192,252,193,52,192,252,193,54,192,252,193,56,192,252,193,58,192,252,193,60,192,252,193,62,192,252,193,92,192,252,193,94,192,252,193,96,192,252,193,98,192,252,193,100,192,252,193,102,192,252,193,104,192,252,193,106,192,252,193,108,192,252,193,110,192,252,193,112,192,252,193,114,192,252,193,116,192,252,193,132,192,252,193,86,192,252,193,88,192,252,193,128,192,252,193,160,192,252,193,162,192,252,193,164,192,252,193,166,192,252,193,222,192,252,193,230,192,252,193,232,192,252,193,14,193,252,193,22,193,252,193,24,193,252,193,36,193,252,193,38,193,252,193,40,193,252,193,42,193,252,193,44,193,252,193,68,193,252,193,70,193,252,193,72,193,252,193,126,193,252,193,74,193,252,193,76,193,252,193,78,193,252,193,80,193,252,193,128,193,252,193,130,193,252,193,132,193,252,193,134,193,252,193,136,193,252,193,138,193,252,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,193,118,192,252,193,186,51,253,193,188,51,253,193,190,51,253,193,192,51,253,193,194,51,253,193,196,51,253,193,242,51,253,193,244,51,253,193,246,51,253,193,248,51,253,193,250,51,253,193,252,51,253,193,254,51,253,193,2,52,253,193,4,52,253,193,6,52,253,193,8,52,253,193,10,52,253,193,12,52,253,193,14,52,253,193,16,52,253,193,18,52,253,193,20,52,253,193,22,52,253,193,64,52,253,193,66,52,253,193,134,192,252,193,136,192,252,193,138,192,252,193,140,192,252,193,142,192,252,193,144,192,252,193,146,192,252,193,148,192,252,193,150,192,252,193,248,194,252,193,170,192,252,193,172,192,252,193,174,192,252,193,176,192,252,193,178,192,252,193,180,192,252,193,182,192,252,193,184,192,252,193,186,192,252,193,188,192,252,193,190,192,252,193,198,192,252,193,200,192,252,193,202,192,252,193,204,192,252,193,206,192,252,193,208,192,252,193,212,192,252,193,214,192,252,193,224,192,252,193,236,192,252,193,238,192,252,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,193,152,192,252,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,193,228,192,252,193,254,192,252,193,62,193,252,193,64,193,252,193,66,193,252,193,196,193,252,193,198,193,252,193,246,193,252,193,248,193,252,193,54,194,252,193,94,194,252,193,96,194,252,193,98,194,252,193,100,194,252,193,150,194,252,193,152,194,252,193,188,194,252,193,190,194,252,193,192,194,252,193,34,195,252,193,60,195,252,193,98,195,252,193,100,195,252,193,114,195,252,193,236,195,252,193,238,195,252,193,240,195,252,193,242,195,252,193,64,196,252,193,140,196,252,193,142,196,252,193,144,196,252,193,240,192,252,193,242,192,252,193,244,192,252,193,246,192,252,193,248,192,252,193,250,192,252,193,2,193,252,193,4,193,252,193,6,193,252,193,8,193,252,193,10,193,252,193,16,193,252,193,18,193,252,193,20,193,252,193,26,193,252,193,28,193,252,193,30,193,252,193,46,193,252,193,48,193,252,193,50,193,252,193,52,193,252,193,54,193,252,193,56,193,252,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,193,148,193,252,193,150,193,252,193,152,193,252,193,154,193,252,193,156,193,252,193,158,193,252,193,160,193,252,193,162,193,252,193,164,193,252,193,116,193,252,193,166,193,252,193,168,193,252,193,170,193,252,193,172,193,252,193,174,193,252,193,176,193,252,193,178,193,252,193,180,193,252,193,182,193,252,193,184,193,252,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,193,200,193,252,193,202,193,252,193,204,193,252,193,252,193,252,193,254,193,252,193,2,194,252,193,4,194,252,193,6,194,252,193,8,194,252,193,10,194,252,193,12,194,252,193,56,194,252,193,102,194,252,193,104,194,252,193,106,194,252,193,108,194,252,193,110,194,252,193,156,194,252,193,158,194,252,193,238,194,252,193,240,194,252,193,242,194,252,193,36,195,252,193,38,195,252,193,40,195,252,193,42,195,252,193,62,195,252,193,78,195,252,193,80,195,252,193,136,195,252,193,144,195,252,193,146,195,252,193,86,194,252,193,88,194,252,193,114,194,252,193,116,194,252,193,118,194,252,193,120,194,252,193,122,194,252,193,124,194,252,193,126,194,252,193,128,194,252,193,130,194,252,193,132,194,252,193,134,194,252,193,136,194,252,193,138,194,252,193,164,194,252,193,166,194,252,193,168,194,252,193,170,194,252,193,172,194,252,193,174,194,252,193,176,194,252,193,178,194,252,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,193,250,194,252,193,252,194,252,193,254,194,252,193,2,195,252,193,4,195,252,193,6,195,252,193,8,195,252,193,10,195,252,193,12,195,252,193,14,195,252,193,16,195,252,193,18,195,252,193,20,195,252,193,22,195,252,193,24,195,252,193,26,195,252,193,44,195,252,193,46,195,252,193,48,195,252,193,50,195,252,193,52,195,252,193,54,195,252,193,56,195,252,193,64,195,252,193,66,195,252,193,68,195,252,193,70,195,252,193,72,195,252,193,74,195,252,193,84,195,252,193,86,195,252,193,88,195,252,193,90,195,252,193,92,195,252,193,94,195,252,193,104,195,252,193,106,195,252,193,116,195,252,193,118,195,252,193,120,195,252,193,122,195,252,193,124,195,252,193,130,195,252,193,132,195,252,193,134,195,252,193,142,195,252,193,138,195,252,193,148,195,252,193,150,195,252,193,152,195,252,193,154,195,252,193,156,195,252,193,158,195,252,193,160,195,252,193,162,195,252,193,164,195,252,193,166,195,252,193,168,195,252,193,170,195,252,193,96,195,252,193,112,195,252,193,126,195,252,193,200,196,252,193,14,197,252,193,160,197,252,193,162,197,252,193,210,197,252,193,212,197,252,193,96,198,252,193,98,198,252,193,148,198,252,193,174,198,252,193,200,198,252,193,206,198,252,193,16,199,252,193,126,199,252,193,50,200,252,193,118,200,252,193,120,200,252,193,10,201,252,193,12,201,252,193,14,201,252,193,86,201,252,193,88,201,252,193,90,201,252,193,152,201,252,193,154,201,252,193,156,201,252,193,158,201,252,193,252,201,252,193,254,201,252,193,108,195,252,193,110,195,252,193,176,195,252,193,234,195,252,193,62,196,252,193,134,196,252,193,136,196,252,193,138,196,252,193,196,196,252,193,198,196,252,193,12,197,252,193,94,197,252,193,96,197,252,193,156,197,252,193,158,197,252,193,208,197,252,193,12,198,252,193,14,198,252,193,76,198,252,193,144,198,252,193,146,198,252,193,172,198,252,193,180,198,252,193,188,198,252,193,204,198,252,193,102,199,252,193,122,199,252,193,124,199,252,193,146,199,252,193,214,199,252,193,238,199,252,193,36,200,252,193,172,195,252,193,174,195,252,193,196,195,252,193,198,195,252,193,200,195,252,193,202,195,252,193,204,195,252,193,206,195,252,193,208,195,252,193,210,195,252,193,212,195,252,193,214,195,252,193,216,195,252,193,218,195,252,193,220,195,252,193,222,195,252,193,224,195,252,193,226,195,252,193,228,195,252,193,230,195,252,193,232,195,252,193,34,196,252,193,36,196,252,193,38,196,252,193,40,196,252,193,42,196,252,193,44,196,252,193,46,196,252,193,48,196,252,193,50,196,252,193,52,196,252,193,54,196,252,193,178,195,252,193,180,195,252,193,182,195,252,193,184,195,252,193,186,195,252,193,188,195,252,193,190,195,252,193,250,195,252,193,252,195,252,193,254,195,252,193,2,196,252,193,4,196,252,193,6,196,252,193,8,196,252,193,10,196,252,193,12,196,252,193,14,196,252,193,16,196,252,193,18,196,252,193,68,196,252,193,70,196,252,193,72,196,252,193,74,196,252,193,76,196,252,193,78,196,252,193,80,196,252,193,82,196,252,193,154,196,252,193,156,196,252,193,158,196,252,193,208,196,252,193,210,196,252,193,248,195,252,193,66,196,252,193,152,196,252,193,206,196,252,193,24,197,252,193,174,197,252,193,78,198,252,193,90,198,252,193,108,198,252,193,110,198,252,193,152,198,252,193,182,198,252,193,238,198,252,193,2,199,252,193,4,199,252,193,32,199,252,193,78,199,252,193,80,199,252,193,52,200,252,193,126,200,252,193,198,200,252,193,200,200,252,193,202,200,252,193,204,200,252,193,18,201,252,193,20,201,252,193,22,201,252,193,28,203,252,193,136,203,252,193,160,203,252,193,232,203,252,193,16,204,252,193,20,196,252,193,22,196,252,193,24,196,252,193,26,196,252,193,28,196,252,193,30,196,252,193,32,196,252,193,84,196,252,193,86,196,252,193,88,196,252,193,90,196,252,193,160,196,252,193,162,196,252,193,164,196,252,193,166,196,252,193,222,196,252,193,224,196,252,193,226,196,252,193,228,196,252,193,230,196,252,193,114,197,252,193,116,197,252,193,228,197,252,193,230,197,252,193,232,197,252,193,36,198,252,193,54,198,252,193,100,198,252,193,158,198,252,193,160,198,252,193,162,198,252,193,234,198,252,193,56,196,252,193,58,196,252,193,60,196,252,193,92,196,252,193,94,196,252,193,96,196,252,193,98,196,252,193,100,196,252,193,102,196,252,193,104,196,252,193,106,196,252,193,108,196,252,193,110,196,252,193,112,196,252,193,114,196,252,193,116,196,252,193,118,196,252,193,120,196,252,193,122,196,252,193,124,196,252,193,126,196,252,193,128,196,252,193,130,196,252,193,132,196,252,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,193,146,196,252,193,148,196,252,193,150,196,252,193,202,196,252,193,204,196,252,193,16,197,252,193,18,197,252,193,20,197,252,193,22,197,252,193,98,197,252,193,100,197,252,193,102,197,252,193,104,197,252,193,164,197,252,193,166,197,252,193,168,197,252,193,170,197,252,193,172,197,252,193,214,197,252,193,216,197,252,193,28,198,252,193,30,198,252,193,50,198,252,193,52,198,252,193,64,198,252,193,66,198,252,193,82,198,252,193,150,198,252,193,166,198,252,193,168,198,252,193,176,198,252,193,254,198,252,193,212,196,252,193,214,196,252,193,216,196,252,193,218,196,252,193,220,196,252,193,26,197,252,193,28,197,252,193,30,197,252,193,32,197,252,193,34,197,252,193,36,197,252,193,38,197,252,193,40,197,252,193,42,197,252,193,106,197,252,193,108,197,252,193,110,197,252,193,112,197,252,193,176,197,252,193,178,197,252,193,180,197,252,193,182,197,252,193,184,197,252,193,218,197,252,193,220,197,252,193,222,197,252,193,224,197,252,193,226,197,252,193,186,197,252,193,16,198,252,193,18,198,252,193,32,198,252,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,193,118,197,252,193,120,197,252,193,122,197,252,193,124,197,252,193,126,197,252,193,128,197,252,193,130,197,252,193,132,197,252,193,134,197,252,193,136,197,252,193,138,197,252,193,92,197,252,193,140,197,252,193,142,197,252,193,144,197,252,193,146,197,252,193,148,197,252,193,150,197,252,193,152,197,252,193,188,197,252,193,190,197,252,193,192,197,252,193,194,197,252,193,196,197,252,193,198,197,252,193,200,197,252,193,202,197,252,193,204,197,252,193,206,197,252,193,234,197,252,193,236,197,252,193,238,197,252,193,240,197,252,193,242,197,252,193,244,197,252,193,246,197,252,193,248,197,252,193,250,197,252,193,252,197,252,193,254,197,252,193,2,198,252,193,4,198,252,193,6,198,252,193,8,198,252,193,20,198,252,193,22,198,252,193,154,197,252,193,10,198,252,193,24,198,252,193,26,198,252,193,38,198,252,193,40,198,252,193,42,198,252,193,44,198,252,193,56,198,252,193,68,198,252,193,58,198,252,193,60,198,252,193,46,198,252,193,48,198,252,193,62,198,252,193,70,198,252,193,72,198,252,193,74,198,252,193,80,198,252,193,92,198,252,193,94,198,252,193,102,198,252,193,104,198,252,193,106,198,252,193,118,198,252,193,120,198,252,193,122,198,252,193,124,198,252,193,132,198,252,193,134,198,252,193,136,198,252,193,138,198,252,193,140,198,252,193,142,198,252,193,34,198,252,193,84,198,252,193,86,198,252,193,88,198,252,193,112,198,252,193,114,198,252,193,116,198,252,193,126,198,252,193,128,198,252,193,130,198,252,193,154,198,252,193,156,198,252,193,214,198,252,193,224,198,252,193,226,198,252,193,228,198,252,193,230,198,252,193,232,198,252,193,40,199,252,193,44,199,252,193,54,199,252,193,64,199,252,193,66,199,252,193,68,199,252,193,70,199,252,193,72,199,252,193,82,199,252,193,84,199,252,193,86,199,252,193,88,199,252,193,90,199,252,193,92,199,252,193,164,198,252,193,170,198,252,193,178,198,252,193,194,198,252,193,184,198,252,193,186,198,252,193,190,198,252,193,192,198,252,193,196,198,252,193,198,198,252,193,202,198,252,193,208,198,252,193,210,198,252,193,212,198,252,193,218,198,252,193,220,198,252,193,216,198,252,193,222,198,252,193,242,198,252,193,244,198,252,193,246,198,252,193,248,198,252,193,250,198,252,193,252,198,252,193,6,199,252,193,8,199,252,193,10,199,252,193,12,199,252,193,14,199,252,193,18,199,252,193,20,199,252,193,26,199,252,193,236,198,252,193,240,198,252,193,56,199,252,193,94,199,252,193,136,199,252,193,138,199,252,193,156,199,252,193,158,199,252,193,160,199,252,193,162,199,252,193,164,199,252,193,192,199,252,193,194,199,252,193,244,199,252,193,246,199,252,193,248,199,252,193,16,200,252,193,58,200,252,193,78,200,252,193,150,200,252,193,152,200,252,193,228,200,252,193,230,200,252,193,40,201,252,193,100,201,252,193,102,201,252,193,188,201,252,193,190,201,252,193,192,201,252,193,194,201,252,193,196,201,252,193,28,202,252,193,22,199,252,193,24,199,252,193,36,199,252,193,52,199,252,193,76,199,252,193,104,199,252,193,106,199,252,193,108,199,252,193,128,199,252,193,130,199,252,193,148,199,252,193,38,200,252,193,122,200,252,193,124,200,252,193,196,200,252,193,16,201,252,193,160,201,252,193,162,201,252,193,164,201,252,193,4,202,252,193,6,202,252,193,8,202,252,193,94,202,252,193,96,202,252,193,98,202,252,193,162,202,252,193,216,202,252,193,26,203,252,193,82,203,252,193,84,203,252,193,96,203,252,193,98,203,252,193,28,199,252,193,30,199,252,193,34,199,252,193,38,199,252,193,42,199,252,193,46,199,252,193,48,199,252,193,50,199,252,193,58,199,252,193,60,199,252,193,62,199,252,193,74,199,252,193,96,199,252,193,98,199,252,193,100,199,252,193,112,199,252,193,114,199,252,193,116,199,252,193,118,199,252,193,120,199,252,193,140,199,252,193,142,199,252,193,144,199,252,193,166,199,252,193,168,199,252,193,170,199,252,193,172,199,252,193,174,199,252,193,176,199,252,193,178,199,252,193,180,199,252,193,182,199,252,193,110,199,252,193,132,199,252,193,134,199,252,193,150,199,252,193,152,199,252,193,154,199,252,193,188,199,252,193,190,199,252,193,216,199,252,193,218,199,252,193,220,199,252,193,240,199,252,193,242,199,252,193,12,200,252,193,14,200,252,193,54,200,252,193,56,200,252,193,64,200,252,193,66,200,252,193,74,200,252,193,76,200,252,193,82,200,252,193,104,200,252,193,106,200,252,193,128,200,252,193,130,200,252,193,132,200,252,193,134,200,252,193,136,200,252,193,138,200,252,193,140,200,252,193,142,200,252,193,184,199,252,193,186,199,252,193,196,199,252,193,198,199,252,193,200,199,252,193,202,199,252,193,204,199,252,193,206,199,252,193,208,199,252,193,210,199,252,193,212,199,252,193,222,199,252,193,224,199,252,193,226,199,252,193,228,199,252,193,230,199,252,193,232,199,252,193,234,199,252,193,236,199,252,193,250,199,252,193,252,199,252,193,254,199,252,193,2,200,252,193,4,200,252,193,6,200,252,193,8,200,252,193,10,200,252,193,18,200,252,193,20,200,252,193,22,200,252,193,24,200,252,193,40,200,252,193,26,200,252,193,28,200,252,193,30,200,252,193,32,200,252,193,34,200,252,193,42,200,252,193,44,200,252,193,46,200,252,193,48,200,252,193,60,200,252,193,62,200,252,193,68,200,252,193,70,200,252,193,72,200,252,193,80,200,252,193,84,200,252,193,86,200,252,193,88,200,252,193,90,200,252,193,92,200,252,193,94,200,252,193,96,200,252,193,98,200,252,193,108,200,252,193,110,200,252,193,112,200,252,193,114,200,252,193,116,200,252,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,193,100,200,252,193,194,200,252,193,82,201,252,193,84,201,252,193,146,201,252,193,148,201,252,193,150,201,252,193,248,201,252,193,250,201,252,193,88,202,252,193,148,202,252,193,150,202,252,193,152,202,252,193,154,202,252,193,212,202,252,193,214,202,252,193,18,203,252,193,20,203,252,193,54,203,252,193,124,203,252,193,180,203,252,193,196,203,252,193,24,205,252,193,26,205,252,193,28,205,252,193,20,206,252,193,22,206,252,193,24,206,252,193,26,206,252,193,20,207,252,193,22,207,252,193,254,207,252,193,144,200,252,193,146,200,252,193,148,200,252,193,206,200,252,193,208,200,252,193,210,200,252,193,212,200,252,193,214,200,252,193,216,200,252,193,218,200,252,193,220,200,252,193,222,200,252,193,224,200,252,193,226,200,252,193,24,201,252,193,26,201,252,193,28,201,252,193,30,201,252,193,32,201,252,193,34,201,252,193,36,201,252,193,92,201,252,193,94,201,252,193,96,201,252,193,98,201,252,193,166,201,252,193,168,201,252,193,170,201,252,193,172,201,252,193,174,201,252,193,176,201,252,193,178,201,252,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,193,232,200,252,193,234,200,252,193,236,200,252,193,238,200,252,193,240,200,252,193,242,200,252,193,244,200,252,193,246,200,252,193,248,200,252,193,250,200,252,193,252,200,252,193,254,200,252,193,2,201,252,193,4,201,252,193,6,201,252,193,8,201,252,193,38,201,252,193,180,201,252,193,182,201,252,193,184,201,252,193,10,202,252,193,12,202,252,193,14,202,252,193,16,202,252,193,18,202,252,193,20,202,252,193,22,202,252,193,24,202,252,193,100,202,252,193,102,202,252,193,218,202,252,193,164,202,252,193,166,202,252,193,168,202,252,193,170,202,252,193,172,202,252,193,220,202,252,193,222,202,252,193,224,202,252,193,226,202,252,193,30,203,252,193,56,203,252,193,58,203,252,193,60,203,252,193,62,203,252,193,100,203,252,193,102,203,252,193,128,203,252,193,42,201,252,193,44,201,252,193,46,201,252,193,104,201,252,193,48,201,252,193,50,201,252,193,52,201,252,193,54,201,252,193,56,201,252,193,58,201,252,193,60,201,252,193,62,201,252,193,64,201,252,193,66,201,252,193,68,201,252,193,70,201,252,193,72,201,252,193,74,201,252,193,76,201,252,193,78,201,252,193,80,201,252,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,193,198,201,252,193,200,201,252,193,202,201,252,193,204,201,252,193,206,201,252,193,208,201,252,193,210,201,252,193,212,201,252,193,214,201,252,193,216,201,252,193,218,201,252,193,220,201,252,193,222,201,252,193,224,201,252,193,226,201,252,193,144,201,252,193,228,201,252,193,230,201,252,193,232,201,252,193,234,201,252,193,236,201,252,193,238,201,252,193,240,201,252,193,242,201,252,193,244,201,252,193,246,201,252,193,34,202,252,193,36,202,252,193,38,202,252,193,40,202,252,193,42,202,252,193,44,202,252,193,46,202,252,193,48,202,252,193,50,202,252,193,52,202,252,193,54,202,252,193,56,202,252,193,58,202,252,193,60,202,252,193,62,202,252,193,64,202,252,193,66,202,252,193,68,202,252,193,70,202,252,193,72,202,252,193,74,202,252,193,76,202,252,193,78,202,252,193,80,202,252,193,82,202,252,193,84,202,252,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,193,2,202,252,193,90,202,252,193,92,202,252,193,156,202,252,193,158,202,252,193,160,202,252,193,22,203,252,193,24,203,252,193,80,203,252,193,126,203,252,193,140,203,252,193,182,203,252,193,204,203,252,193,212,203,252,193,214,203,252,193,84,204,252,193,30,205,252,193,32,205,252,193,34,205,252,193,36,205,252,193,28,206,252,193,30,206,252,193,32,206,252,193,24,207,252,193,26,207,252,193,28,207,252,193,30,207,252,193,6,208,252,193,8,208,252,193,10,208,252,193,12,208,252,193,14,208,252,193,30,202,252,193,104,202,252,193,106,202,252,193,108,202,252,193,174,202,252,193,176,202,252,193,178,202,252,193,180,202,252,193,230,202,252,193,64,203,252,193,104,203,252,193,174,203,252,193,244,203,252,193,246,203,252,193,58,204,252,193,60,204,252,193,166,204,252,193,168,204,252,193,170,204,252,193,172,204,252,193,174,204,252,193,176,204,252,193,178,204,252,193,180,204,252,193,182,204,252,193,184,204,252,193,186,204,252,193,188,204,252,193,190,204,252,193,192,204,252,193,152,205,252,193,154,205,252,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,193,86,202,252,193,132,202,252,193,134,202,252,193,136,202,252,193,138,202,252,193,140,202,252,193,142,202,252,193,144,202,252,193,146,202,252,193,182,202,252,193,184,202,252,193,186,202,252,193,188,202,252,193,190,202,252,193,192,202,252,193,194,202,252,193,196,202,252,193,198,202,252,193,200,202,252,193,202,202,252,193,204,202,252,193,206,202,252,193,208,202,252,193,210,202,252,193,232,202,252,193,234,202,252,193,236,202,252,193,238,202,252,193,240,202,252,193,242,202,252,193,244,202,252,193,246,202,252,193,248,202,252,193,250,202,252,193,252,202,252,193,254,202,252,193,2,203,252,193,4,203,252,193,6,203,252,193,8,203,252,193,10,203,252,193,12,203,252,193,14,203,252,193,16,203,252,193,32,203,252,193,34,203,252,193,36,203,252,193,38,203,252,193,40,203,252,193,42,203,252,193,44,203,252,193,46,203,252,193,48,203,252,193,50,203,252,193,52,203,252,193,66,203,252,193,68,203,252,193,70,203,252,193,72,203,252,193,74,203,252,193,76,203,252,193,78,203,252,193,86,203,252,193,88,203,252,193,90,203,252,193,92,203,252,193,94,203,252,193,106,203,252,193,108,203,252,193,110,203,252,193,112,203,252,193,114,203,252,193,116,203,252,193,120,203,252,193,122,203,252,193,132,203,252,193,138,203,252,193,144,203,252,193,154,203,252,193,156,203,252,193,158,203,252,193,162,203,252,193,164,203,252,193,166,203,252,193,176,203,252,193,178,203,252,193,190,203,252,193,192,203,252,193,194,203,252,193,118,203,252,193,134,203,252,193,142,203,252,193,146,203,252,193,184,203,252,193,206,203,252,193,208,203,252,193,228,203,252,193,86,204,252,193,88,204,252,193,90,204,252,193,38,205,252,193,34,206,252,193,36,206,252,193,38,206,252,193,40,206,252,193,32,207,252,193,34,207,252,193,36,207,252,193,38,207,252,193,20,208,252,193,22,208,252,193,24,208,252,193,26,208,252,193,28,208,252,193,30,208,252,193,80,209,252,193,82,209,252,193,84,209,252,193,86,209,252,193,88,209,252,193,90,209,252,193,130,203,252,193,148,203,252,193,150,203,252,193,152,203,252,193,168,203,252,193,170,203,252,193,172,203,252,193,186,203,252,193,188,203,252,193,226,203,252,193,230,203,252,193,234,203,252,193,236,203,252,193,238,203,252,193,240,203,252,193,242,203,252,193,24,204,252,193,26,204,252,193,28,204,252,193,30,204,252,193,32,204,252,193,34,204,252,193,36,204,252,193,38,204,252,193,40,204,252,193,42,204,252,193,44,204,252,193,46,204,252,193,48,204,252,193,50,204,252,193,52,204,252,193,54,204,252,193,198,203,252,193,200,203,252,193,202,203,252,193,210,203,252,193,216,203,252,193,218,203,252,193,220,203,252,193,222,203,252,193,224,203,252,193,248,203,252,193,250,203,252,193,252,203,252,193,254,203,252,193,2,204,252,193,4,204,252,193,6,204,252,193,8,204,252,193,10,204,252,193,12,204,252,193,14,204,252,193,62,204,252,193,64,204,252,193,66,204,252,193,68,204,252,193,70,204,252,193,72,204,252,193,74,204,252,193,76,204,252,193,78,204,252,193,80,204,252,193,82,204,252,193,194,204,252,193,18,204,252,193,20,204,252,193,22,204,252,193,92,204,252,193,94,204,252,193,96,204,252,193,98,204,252,193,40,205,252,193,42,205,252,193,44,205,252,193,46,205,252,193,48,205,252,193,50,205,252,193,52,205,252,193,54,205,252,193,56,205,252,193,58,205,252,193,60,205,252,193,42,206,252,193,44,206,252,193,46,206,252,193,48,206,252,193,50,206,252,193,52,206,252,193,54,206,252,193,56,206,252,193,58,206,252,193,60,206,252,193,62,206,252,193,40,207,252,193,42,207,252,193,44,207,252,193,56,204,252,193,100,204,252,193,102,204,252,193,104,204,252,193,106,204,252,193,108,204,252,193,110,204,252,193,112,204,252,193,114,204,252,193,116,204,252,193,118,204,252,193,120,204,252,193,122,204,252,193,124,204,252,193,126,204,252,193,128,204,252,193,130,204,252,193,132,204,252,193,134,204,252,193,136,204,252,193,138,204,252,193,140,204,252,193,142,204,252,193,144,204,252,193,146,204,252,193,148,204,252,193,150,204,252,193,152,204,252,193,154,204,252,193,156,204,252,193,158,204,252,193,160,204,252,193,162,204,252,193,164,204,252,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,193,150,205,252,193,120,206,252,193,122,206,252,193,124,206,252,193,126,206,252,193,128,206,252,193,130,206,252,193,132,206,252,193,134,206,252,193,136,206,252,193,138,206,252,193,140,206,252,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,193,156,205,252,193,158,205,252,193,160,205,252,193,162,205,252,193,164,205,252,193,166,205,252,193,142,206,252,193,144,206,252,193,146,206,252,193,148,206,252,193,150,206,252,193,152,206,252,193,154,206,252,193,156,206,252,193,158,206,252,193,128,207,252,193,130,207,252,193,132,207,252,193,134,207,252,193,136,207,252,193,138,207,252,193,140,207,252,193,142,207,252,193,144,207,252,193,146,207,252,193,148,207,252,193,150,207,252,193,152,207,252,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,193,164,206,252,193,166,206,252,193,168,206,252,193,170,206,252,193,172,206,252,193,174,206,252,193,176,206,252,193,178,206,252,193,180,206,252,193,182,206,252,193,184,206,252,193,186,206,252,193,188,206,252,193,190,206,252,193,192,206,252,193,194,206,252,193,196,206,252,193,198,206,252,193,200,206,252,193,202,206,252,193,204,206,252,193,206,206,252,193,208,206,252,193,210,206,252,193,212,206,252,193,214,206,252,193,216,206,252,193,218,206,252,193,220,206,252,193,222,206,252,193,224,206,252,193,226,206,252,193,228,206,252,193,230,206,252,193,232,206,252,193,234,206,252,193,236,206,252,193,238,206,252,193,240,206,252,193,242,206,252,193,244,206,252,193,246,206,252,193,248,206,252,193,250,206,252,193,252,206,252,193,254,206,252,193,2,207,252,193,4,207,252,193,6,207,252,193,8,207,252,193,10,207,252,193,12,207,252,193,14,207,252,193,16,207,252,193,18,207,252,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,193,46,207,252,193,48,207,252,193,50,207,252,193,52,207,252,193,54,207,252,193,32,208,252,193,34,208,252,193,36,208,252,193,38,208,252,193,40,208,252,193,42,208,252,193,94,209,252,193,96,209,252,193,98,209,252,193,100,209,252,193,102,209,252,193,104,209,252,193,106,209,252,193,108,209,252,193,110,209,252,193,112,209,252,193,120,210,252,193,122,210,252,193,124,210,252,193,126,210,252,193,128,210,252,193,130,210,252,193,132,210,252,193,134,210,252,193,136,210,252,193,138,210,252,193,140,210,252,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,193,2,208,252,193,4,208,252,193,60,209,252,193,62,209,252,193,64,209,252,193,66,209,252,193,96,210,252,193,98,210,252,193,100,210,252,193,80,211,252,193,82,211,252,193,84,211,252,193,86,211,252,193,88,211,252,193,90,211,252,193,32,212,252,193,34,212,252,193,36,212,252,193,38,212,252,193,40,212,252,193,42,212,252,193,12,213,252,193,14,213,252,193,16,213,252,193,18,213,252,193,204,213,252,193,206,213,252,193,208,213,252,193,50,214,252,193,52,214,252,193,142,214,252,193,144,214,252,193,16,208,252,193,18,208,252,193,68,209,252,193,70,209,252,193,72,209,252,193,74,209,252,193,76,209,252,193,78,209,252,193,102,210,252,193,104,210,252,193,106,210,252,193,108,210,252,193,94,211,252,193,96,211,252,193,98,211,252,193,44,212,252,193,46,212,252,193,48,212,252,193,50,212,252,193,52,212,252,193,20,213,252,193,22,213,252,193,24,213,252,193,26,213,252,193,28,213,252,193,210,213,252,193,212,213,252,193,214,213,252,193,54,214,252,193,56,214,252,193,214,214,252,193,252,214,252,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,193,190,209,252,193,192,209,252,193,194,209,252,193,196,209,252,193,198,209,252,193,200,209,252,193,202,209,252,193,204,209,252,193,206,209,252,193,208,209,252,193,210,209,252,193,212,209,252,193,214,209,252,193,216,209,252,193,218,209,252,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,193,92,209,252,193,110,210,252,193,112,210,252,193,114,210,252,193,116,210,252,193,118,210,252,193,100,211,252,193,102,211,252,193,104,211,252,193,106,211,252,193,108,211,252,193,110,211,252,193,112,211,252,193,114,211,252,193,116,211,252,193,118,211,252,193,120,211,252,193,54,212,252,193,56,212,252,193,58,212,252,193,60,212,252,193,62,212,252,193,64,212,252,193,66,212,252,193,68,212,252,193,70,212,252,193,30,213,252,193,32,213,252,193,34,213,252,193,36,213,252,193,38,213,252,193,40,213,252,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,193,144,210,252,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,193,92,210,252,193,94,210,252,193,74,211,252,193,76,211,252,193,78,211,252,193,200,211,252,193,202,211,252,193,204,211,252,193,206,211,252,193,208,211,252,193,210,211,252,193,212,211,252,193,214,211,252,193,142,210,252,193,122,211,252,193,124,211,252,193,126,211,252,193,128,211,252,193,130,211,252,193,132,211,252,193,134,211,252,193,136,211,252,193,138,211,252,193,140,211,252,193,142,211,252,193,72,212,252,193,74,212,252,193,76,212,252,193,78,212,252,193,80,212,252,193,82,212,252,193,84,212,252,193,86,212,252,193,42,213,252,193,44,213,252,193,46,213,252,193,48,213,252,193,50,213,252,193,52,213,252,193,54,213,252,193,56,213,252,193,58,213,252,193,60,213,252,193,220,213,252,193,222,213,252,193,146,210,252,193,148,210,252,193,150,210,252,193,152,210,252,193,154,210,252,193,156,210,252,193,158,210,252,193,160,210,252,193,162,210,252,193,164,210,252,193,166,210,252,193,168,210,252,193,170,210,252,193,172,210,252,193,174,210,252,193,176,210,252,193,178,210,252,193,180,210,252,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,193,180,211,252,193,182,211,252,193,184,211,252,193,186,211,252,193,188,211,252,193,190,211,252,193,192,211,252,193,194,211,252,193,196,211,252,193,198,211,252,193,126,212,252,193,128,212,252,193,130,212,252,193,132,212,252,193,134,212,252,193,136,212,252,193,138,212,252,193,140,212,252,193,142,212,252,193,106,213,252,193,108,213,252,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,193,216,211,252,193,218,211,252,193,220,211,252,193,222,211,252,193,224,211,252,193,226,211,252,193,228,211,252,193,230,211,252,193,232,211,252,193,234,211,252,193,236,211,252,193,238,211,252,193,240,211,252,193,242,211,252,193,244,211,252,193,246,211,252,193,248,211,252,193,250,211,252,193,252,211,252,193,254,211,252,193,2,212,252,193,4,212,252,193,6,212,252,193,8,212,252,193,10,212,252,193,12,212,252,193,14,212,252,193,16,212,252,193,18,212,252,193,20,212,252,193,22,212,252,193,24,212,252,193,26,212,252,193,28,212,252,193,30,212,252,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,193,114,213,252,193,116,213,252,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,193,10,213,252,193,202,213,252,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,193,226,213,252,193,228,213,252,193,230,213,252,193,232,213,252,193,234,213,252,193,236,213,252,193,238,213,252,193,74,214,252,193,76,214,252,193,160,214,252,193,78,214,252,193,80,214,252,193,162,214,252,193,164,214,252,193,166,214,252,193,168,214,252,193,224,214,252,193,254,214,252,193,2,215,252,193,110,213,252,193,112,213,252,193,240,213,252,193,242,213,252,193,244,213,252,193,246,213,252,193,82,214,252,193,84,214,252,193,86,214,252,193,170,214,252,193,172,214,252,193,228,214,252,193,230,214,252,193,232,214,252,193,234,214,252,193,4,215,252,193,124,215,252,193,200,215,252,193,164,216,252,193,208,216,252,193,54,217,252,193,78,217,252,193,148,217,252,193,178,217,252,193,212,217,252,193,126,218,252,193,128,218,252,193,150,218,252,193,248,218,252,193,102,219,252,193,108,219,252,193,114,219,252,193,216,213,252,193,218,213,252,193,58,214,252,193,60,214,252,193,62,214,252,193,64,214,252,193,66,214,252,193,146,214,252,193,148,214,252,193,150,214,252,193,216,214,252,193,68,215,252,193,94,215,252,193,102,215,252,193,132,215,252,193,134,215,252,193,168,215,252,193,170,215,252,193,172,215,252,193,188,215,252,193,16,216,252,193,18,216,252,193,30,216,252,193,32,216,252,193,34,216,252,193,54,216,252,193,60,216,252,193,62,216,252,193,72,216,252,193,136,216,252,193,138,216,252,193,146,216,252,193,224,213,252,193,68,214,252,193,70,214,252,193,72,214,252,193,152,214,252,193,154,214,252,193,156,214,252,193,158,214,252,193,218,214,252,193,220,214,252,193,222,214,252,193,22,215,252,193,74,215,252,193,86,215,252,193,106,215,252,193,122,215,252,193,136,215,252,193,152,215,252,193,174,215,252,193,176,215,252,193,242,215,252,193,36,216,252,193,56,216,252,193,124,216,252,193,172,217,252,193,174,217,252,193,206,217,252,193,18,218,252,193,62,218,252,193,168,218,252,193,170,218,252,193,172,218,252,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,193,174,214,252,193,176,214,252,193,178,214,252,193,180,214,252,193,182,214,252,193,184,214,252,193,186,214,252,193,188,214,252,193,190,214,252,193,192,214,252,193,194,214,252,193,196,214,252,193,198,214,252,193,200,214,252,193,202,214,252,193,204,214,252,193,206,214,252,193,208,214,252,193,210,214,252,193,236,214,252,193,238,214,252,193,240,214,252,193,242,214,252,193,244,214,252,193,246,214,252,193,248,214,252,193,6,215,252,193,8,215,252,193,10,215,252,193,12,215,252,193,14,215,252,193,16,215,252,193,18,215,252,193,32,215,252,193,34,215,252,193,36,215,252,193,38,215,252,193,40,215,252,193,42,215,252,193,44,215,252,193,46,215,252,193,48,215,252,193,50,215,252,193,52,215,252,193,56,215,252,193,58,215,252,193,60,215,252,193,62,215,252,193,64,215,252,193,70,215,252,193,72,215,252,193,76,215,252,193,78,215,252,193,80,215,252,193,82,215,252,193,84,215,252,193,96,215,252,193,92,215,252,193,104,215,252,193,24,215,252,193,26,215,252,193,28,215,252,193,90,215,252,193,98,215,252,193,100,215,252,193,138,215,252,193,158,215,252,193,190,215,252,193,192,215,252,193,222,215,252,193,226,215,252,193,244,215,252,193,246,215,252,193,38,216,252,193,40,216,252,193,42,216,252,193,74,216,252,193,90,216,252,193,152,216,252,193,162,216,252,193,190,216,252,193,192,216,252,193,194,216,252,193,196,216,252,193,206,216,252,193,214,216,252,193,234,216,252,193,10,217,252,193,20,217,252,193,22,217,252,193,32,217,252,193,54,215,252,193,66,215,252,193,118,215,252,193,120,215,252,193,130,215,252,193,150,215,252,193,156,215,252,193,182,215,252,193,184,215,252,193,198,215,252,193,212,215,252,193,216,215,252,193,28,216,252,193,70,216,252,193,106,216,252,193,122,216,252,193,134,216,252,193,160,216,252,193,176,216,252,193,202,216,252,193,246,216,252,193,248,216,252,193,4,217,252,193,8,217,252,193,46,217,252,193,48,217,252,193,140,217,252,193,200,217,252,193,230,217,252,193,250,217,252,193,16,218,252,193,34,218,252,193,108,215,252,193,110,215,252,193,112,215,252,193,114,215,252,193,126,215,252,193,128,215,252,193,140,215,252,193,142,215,252,193,144,215,252,193,146,215,252,193,186,215,252,193,160,215,252,193,162,215,252,193,178,215,252,193,164,215,252,193,180,215,252,193,194,215,252,193,196,215,252,193,202,215,252,193,204,215,252,193,208,215,252,193,210,215,252,193,214,215,252,193,218,215,252,193,220,215,252,193,224,215,252,193,228,215,252,193,230,215,252,193,232,215,252,193,234,215,252,193,236,215,252,193,238,215,252,193,240,215,252,193,248,215,252,193,250,215,252,193,252,215,252,193,254,215,252,193,2,216,252,193,4,216,252,193,6,216,252,193,8,216,252,193,10,216,252,193,12,216,252,193,14,216,252,193,20,216,252,193,22,216,252,193,24,216,252,193,26,216,252,193,44,216,252,193,46,216,252,193,48,216,252,193,50,216,252,193,58,216,252,193,64,216,252,193,66,216,252,193,68,216,252,193,76,216,252,193,78,216,252,193,80,216,252,193,82,216,252,193,84,216,252,193,86,216,252,193,92,216,252,193,94,216,252,193,96,216,252,193,98,216,252,193,100,216,252,193,102,216,252,193,104,216,252,193,108,216,252,193,112,216,252,193,114,216,252,193,116,216,252,193,118,216,252,193,120,216,252,193,126,216,252,193,128,216,252,193,130,216,252,193,132,216,252,193,140,216,252,193,142,216,252,193,144,216,252,193,148,216,252,193,154,216,252,193,156,216,252,193,158,216,252,193,166,216,252,193,168,216,252,193,170,216,252,193,172,216,252,193,174,216,252,193,182,216,252,193,184,216,252,193,186,216,252,193,188,216,252,193,198,216,252,193,178,216,252,193,180,216,252,193,204,216,252,193,226,216,252,193,6,217,252,193,30,217,252,193,72,217,252,193,74,217,252,193,112,217,252,193,114,217,252,193,116,217,252,193,118,217,252,193,120,217,252,193,142,217,252,193,144,217,252,193,170,217,252,193,202,217,252,193,204,217,252,193,82,218,252,193,94,218,252,193,120,218,252,193,122,218,252,193,164,218,252,193,166,218,252,193,204,218,252,193,240,218,252,193,16,219,252,193,18,219,252,193,20,219,252,193,22,219,252,193,24,219,252,193,40,219,252,193,62,217,252,193,64,217,252,193,66,217,252,193,68,217,252,193,70,217,252,193,80,217,252,193,82,217,252,193,44,217,252,193,84,217,252,193,86,217,252,193,88,217,252,193,90,217,252,193,92,217,252,193,98,217,252,193,100,217,252,193,102,217,252,193,104,217,252,193,106,217,252,193,108,217,252,193,124,217,252,193,126,217,252,193,128,217,252,193,130,217,252,193,132,217,252,193,134,217,252,193,136,217,252,193,138,217,252,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,193,50,217,252,193,52,217,252,193,76,217,252,193,94,217,252,193,96,217,252,193,122,217,252,193,208,217,252,193,146,217,252,193,176,217,252,193,210,217,252,193,252,217,252,193,20,218,252,193,106,218,252,193,110,218,252,193,112,218,252,193,114,218,252,193,124,218,252,193,148,218,252,193,174,218,252,193,216,218,252,193,218,218,252,193,220,218,252,193,244,218,252,193,246,218,252,193,28,219,252,193,52,219,252,193,64,219,252,193,90,219,252,193,96,219,252,193,98,219,252,193,100,219,252,193,128,219,252,193,36,218,252,193,68,218,252,193,74,218,252,193,88,218,252,193,96,218,252,193,160,218,252,193,162,218,252,193,202,218,252,193,238,218,252,193,8,219,252,193,10,219,252,193,12,219,252,193,14,219,252,193,48,219,252,193,60,219,252,193,70,219,252,193,72,219,252,193,150,219,252,193,182,219,252,193,104,220,252,193,162,220,252,193,242,220,252,193,244,220,252,193,70,221,252,193,128,221,252,193,130,221,252,193,132,221,252,193,182,221,252,193,58,222,252,193,176,222,252,193,200,222,252,193,4,223,252,193,84,218,252,193,90,218,252,193,92,218,252,193,98,218,252,193,100,218,252,193,102,218,252,193,108,218,252,193,118,218,252,193,130,218,252,193,132,218,252,193,134,218,252,193,136,218,252,193,138,218,252,193,140,218,252,193,142,218,252,193,144,218,252,193,146,218,252,193,152,218,252,193,154,218,252,193,156,218,252,193,158,218,252,193,176,218,252,193,178,218,252,193,180,218,252,193,182,218,252,193,184,218,252,193,186,218,252,193,188,218,252,193,190,218,252,193,194,218,252,193,196,218,252,193,222,218,252,193,192,218,252,193,206,218,252,193,208,218,252,193,210,218,252,193,212,218,252,193,214,218,252,193,242,218,252,193,26,219,252,193,50,219,252,193,62,219,252,193,94,219,252,193,242,219,252,193,58,220,252,193,174,220,252,193,250,220,252,193,72,221,252,193,74,221,252,193,76,221,252,193,134,221,252,193,246,221,252,193,114,222,252,193,146,222,252,193,170,222,252,193,172,222,252,193,184,222,252,193,202,222,252,193,234,222,252,193,240,222,252,193,72,223,252,193,74,223,252,193,76,223,252,193,78,223,252,193,224,218,252,193,226,218,252,193,228,218,252,193,230,218,252,193,232,218,252,193,234,218,252,193,236,218,252,193,250,218,252,193,252,218,252,193,254,218,252,193,2,219,252,193,4,219,252,193,6,219,252,193,30,219,252,193,32,219,252,193,34,219,252,193,36,219,252,193,42,219,252,193,44,219,252,193,46,219,252,193,54,219,252,193,56,219,252,193,58,219,252,193,66,219,252,193,74,219,252,193,76,219,252,193,78,219,252,193,82,219,252,193,84,219,252,193,88,219,252,193,104,219,252,193,106,219,252,193,86,219,252,193,92,219,252,193,124,219,252,193,238,219,252,193,240,219,252,193,46,220,252,193,48,220,252,193,50,220,252,193,52,220,252,193,54,220,252,193,56,220,252,193,106,220,252,193,108,220,252,193,164,220,252,193,166,220,252,193,168,220,252,193,170,220,252,193,172,220,252,193,246,220,252,193,248,220,252,193,184,221,252,193,60,222,252,193,82,222,252,193,84,222,252,193,124,222,252,193,126,222,252,193,134,222,252,193,142,222,252,193,144,222,252,193,216,222,252,193,250,222,252,193,152,224,252,193,110,219,252,193,112,219,252,193,118,219,252,193,116,219,252,193,120,219,252,193,122,219,252,193,126,219,252,193,132,219,252,193,138,219,252,193,140,219,252,193,142,219,252,193,144,219,252,193,146,219,252,193,148,219,252,193,166,219,252,193,168,219,252,193,170,219,252,193,172,219,252,193,174,219,252,193,176,219,252,193,178,219,252,193,214,219,252,193,216,219,252,193,218,219,252,193,220,219,252,193,222,219,252,193,224,219,252,193,226,219,252,193,228,219,252,193,230,219,252,193,232,219,252,193,234,219,252,193,134,219,252,193,152,219,252,193,154,219,252,193,156,219,252,193,158,219,252,193,184,219,252,193,186,219,252,193,188,219,252,193,190,219,252,193,192,219,252,193,194,219,252,193,196,219,252,193,198,219,252,193,200,219,252,193,202,219,252,193,204,219,252,193,206,219,252,193,208,219,252,193,244,219,252,193,246,219,252,193,248,219,252,193,250,219,252,193,252,219,252,193,254,219,252,193,2,220,252,193,4,220,252,193,6,220,252,193,8,220,252,193,60,220,252,193,62,220,252,193,64,220,252,193,66,220,252,193,136,219,252,193,160,219,252,193,162,219,252,193,164,219,252,193,210,219,252,193,212,219,252,193,10,220,252,193,12,220,252,193,14,220,252,193,16,220,252,193,68,220,252,193,70,220,252,193,72,220,252,193,74,220,252,193,76,220,252,193,130,220,252,193,132,220,252,193,184,220,252,193,186,220,252,193,188,220,252,193,190,220,252,193,192,220,252,193,194,220,252,193,196,220,252,193,198,220,252,193,12,221,252,193,14,221,252,193,16,221,252,193,88,221,252,193,90,221,252,193,92,221,252,193,144,221,252,193,236,219,252,193,18,220,252,193,20,220,252,193,22,220,252,193,24,220,252,193,26,220,252,193,28,220,252,193,30,220,252,193,32,220,252,193,34,220,252,193,36,220,252,193,38,220,252,193,40,220,252,193,42,220,252,193,44,220,252,193,78,220,252,193,80,220,252,193,82,220,252,193,84,220,252,193,134,220,252,193,86,220,252,193,88,220,252,193,90,220,252,193,92,220,252,193,94,220,252,193,96,220,252,193,98,220,252,193,100,220,252,193,102,220,252,193,136,220,252,193,138,220,252,193,140,220,252,193,110,220,252,193,112,220,252,193,114,220,252,193,116,220,252,193,118,220,252,193,120,220,252,193,122,220,252,193,124,220,252,193,126,220,252,193,128,220,252,193,176,220,252,193,178,220,252,193,180,220,252,193,182,220,252,193,252,220,252,193,254,220,252,193,2,221,252,193,4,221,252,193,6,221,252,193,8,221,252,193,10,221,252,193,78,221,252,193,80,221,252,193,82,221,252,193,84,221,252,193,86,221,252,193,136,221,252,193,138,221,252,193,140,221,252,193,142,221,252,193,186,221,252,193,188,221,252,193,142,220,252,193,144,220,252,193,146,220,252,193,148,220,252,193,150,220,252,193,152,220,252,193,154,220,252,193,156,220,252,193,158,220,252,193,160,220,252,193,200,220,252,193,202,220,252,193,204,220,252,193,206,220,252,193,208,220,252,193,210,220,252,193,212,220,252,193,214,220,252,193,216,220,252,193,218,220,252,193,220,220,252,193,222,220,252,193,224,220,252,193,226,220,252,193,228,220,252,193,230,220,252,193,232,220,252,193,234,220,252,193,236,220,252,193,18,221,252,193,20,221,252,193,22,221,252,193,20,101,253,193,22,101,253,193,194,101,253,193,196,101,253,193,198,101,253,193,200,101,253,193,202,101,253,193,204,101,253,193,206,101,253,193,208,101,253,193,210,101,253,193,212,101,253,193,214,101,253,193,216,101,253,193,218,101,253,193,220,101,253,193,222,101,253,193,224,101,253,193,226,101,253,193,228,101,253,193,230,101,253,193,232,101,253,193,234,101,253,193,236,101,253,193,238,101,253,193,240,101,253,193,242,101,253,193,244,101,253,193,246,101,253,193,248,101,253,193,238,220,252,193,250,101,253,193,24,221,252,193,26,221,252,193,28,221,252,193,30,221,252,193,32,221,252,193,34,221,252,193,36,221,252,193,38,221,252,193,40,221,252,193,42,221,252,193,44,221,252,193,46,221,252,193,48,221,252,193,50,221,252,193,52,221,252,193,54,221,252,193,56,221,252,193,58,221,252,193,60,221,252,193,62,221,252,193,94,221,252,193,96,221,252,193,98,221,252,193,100,221,252,193,102,221,252,193,104,221,252,193,106,221,252,193,108,221,252,193,110,221,252,193,112,221,252,193,114,221,252,193,64,221,252,193,116,221,252,193,118,221,252,193,120,221,252,193,122,221,252,193,124,221,252,193,126,221,252,193,158,221,252,193,160,221,252,193,162,221,252,193,164,221,252,193,166,221,252,193,168,221,252,193,170,221,252,193,172,221,252,193,174,221,252,193,176,221,252,193,178,221,252,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,193,146,221,252,193,148,221,252,193,150,221,252,193,152,221,252,193,154,221,252,193,156,221,252,193,192,221,252,193,194,221,252,193,196,221,252,193,30,222,252,193,148,222,252,193,156,222,252,193,218,222,252,193,220,222,252,193,236,222,252,193,238,222,252,193,252,222,252,193,10,223,252,193,38,223,252,193,40,223,252,193,42,223,252,193,122,223,252,193,124,223,252,193,126,223,252,193,128,223,252,193,130,223,252,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,193,190,221,252,193,248,221,252,193,250,221,252,193,252,221,252,193,254,221,252,193,2,222,252,193,22,222,252,193,24,222,252,193,26,222,252,193,28,222,252,193,44,222,252,193,62,222,252,193,86,222,252,193,92,222,252,193,106,222,252,193,108,222,252,193,110,222,252,193,130,222,252,193,140,222,252,193,152,222,252,193,154,222,252,193,186,222,252,193,242,222,252,193,254,222,252,193,6,223,252,193,8,223,252,193,12,223,252,193,22,223,252,193,24,223,252,193,26,223,252,193,28,223,252,193,30,223,252,193,42,222,252,193,76,222,252,193,78,222,252,193,80,222,252,193,232,222,252,193,66,223,252,193,68,223,252,193,168,223,252,193,170,223,252,193,136,224,252,193,138,224,252,193,140,224,252,193,142,224,252,193,144,224,252,193,192,225,252,193,194,225,252,193,196,225,252,193,198,225,252,193,200,225,252,193,202,225,252,193,204,225,252,193,206,225,252,193,86,227,252,193,88,227,252,193,90,227,252,193,92,227,252,193,94,227,252,193,96,227,252,193,98,227,252,193,100,227,252,193,102,227,252,193,100,229,252,193,70,222,252,193,72,222,252,193,74,222,252,193,88,222,252,193,90,222,252,193,94,222,252,193,96,222,252,193,98,222,252,193,102,222,252,193,100,222,252,193,104,222,252,193,112,222,252,193,116,222,252,193,118,222,252,193,120,222,252,193,122,222,252,193,128,222,252,193,132,222,252,193,136,222,252,193,150,222,252,193,158,222,252,193,160,222,252,193,162,222,252,193,164,222,252,193,166,222,252,193,168,222,252,193,174,222,252,193,178,222,252,193,180,222,252,193,182,222,252,193,188,222,252,193,190,222,252,193,192,222,252,193,194,222,252,193,196,222,252,193,198,222,252,193,204,222,252,193,206,222,252,193,208,222,252,193,210,222,252,193,212,222,252,193,214,222,252,193,222,222,252,193,224,222,252,193,226,222,252,193,228,222,252,193,230,222,252,193,244,222,252,193,246,222,252,193,248,222,252,193,2,223,252,193,16,223,252,193,18,223,252,193,20,223,252,193,44,223,252,193,46,223,252,193,48,223,252,193,50,223,252,193,52,223,252,193,54,223,252,193,56,223,252,193,58,223,252,193,60,223,252,193,62,223,252,193,32,223,252,193,34,223,252,193,36,223,252,193,80,223,252,193,82,223,252,193,84,223,252,193,86,223,252,193,88,223,252,193,90,223,252,193,92,223,252,193,94,223,252,193,96,223,252,193,98,223,252,193,100,223,252,193,102,223,252,193,104,223,252,193,106,223,252,193,108,223,252,193,110,223,252,193,112,223,252,193,114,223,252,193,116,223,252,193,118,223,252,193,120,223,252,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,193,64,223,252,193,132,223,252,193,134,223,252,193,136,223,252,193,138,223,252,193,140,223,252,193,142,223,252,193,144,223,252,193,146,223,252,193,148,223,252,193,150,223,252,193,152,223,252,193,154,223,252,193,156,223,252,193,158,223,252,193,160,223,252,193,162,223,252,193,164,223,252,193,166,223,252,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,193,70,223,252,193,172,223,252,193,174,223,252,193,146,224,252,193,148,224,252,193,150,224,252,193,212,225,252,193,214,225,252,193,106,227,252,193,108,227,252,193,110,227,252,193,112,227,252,193,114,227,252,193,116,227,252,193,118,227,252,193,140,229,252,193,142,229,252,193,144,229,252,193,146,229,252,193,148,229,252,193,150,229,252,193,152,229,252,193,154,229,252,193,156,229,252,193,158,229,252,193,160,229,252,193,162,229,252,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,193,176,223,252,193,178,223,252,193,180,223,252,193,162,224,252,193,164,224,252,193,166,224,252,193,168,224,252,193,170,224,252,193,172,224,252,193,174,224,252,193,176,224,252,193,222,225,252,193,224,225,252,193,226,225,252,193,228,225,252,193,230,225,252,193,232,225,252,193,234,225,252,193,156,227,252,193,158,227,252,193,160,227,252,193,162,227,252,193,164,227,252,193,166,227,252,193,168,227,252,193,170,227,252,193,172,227,252,193,174,227,252,193,176,227,252,193,178,227,252,193,210,229,252,193,212,229,252,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,193,178,224,252,193,6,224,252,193,8,224,252,193,10,224,252,193,12,224,252,193,14,224,252,193,16,224,252,193,18,224,252,193,20,224,252,193,22,224,252,193,24,224,252,193,26,224,252,193,28,224,252,193,30,224,252,193,32,224,252,193,34,224,252,193,36,224,252,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,193,2,226,252,193,4,226,252,193,6,226,252,193,182,227,252,193,8,226,252,193,10,226,252,193,12,226,252,193,14,226,252,193,16,226,252,193,18,226,252,193,20,226,252,193,22,226,252,193,24,226,252,193,26,226,252,193,28,226,252,193,30,226,252,193,32,226,252,193,34,226,252,193,36,226,252,193,38,226,252,193,40,226,252,193,42,226,252,193,44,226,252,193,46,226,252,193,48,226,252,193,50,226,252,193,52,226,252,193,54,226,252,193,56,226,252,193,58,226,252,193,38,224,252,193,60,226,252,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,193,64,225,252,193,66,225,252,193,68,225,252,193,70,225,252,193,72,225,252,193,74,225,252,193,76,225,252,193,78,225,252,193,80,225,252,193,82,225,252,193,158,226,252,193,160,226,252,193,162,226,252,193,164,226,252,193,166,226,252,193,168,226,252,193,170,226,252,193,172,226,252,193,174,226,252,193,176,226,252,193,178,226,252,193,180,226,252,193,182,226,252,193,184,226,252,193,186,226,252,193,188,226,252,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,193,154,224,252,193,156,224,252,193,158,224,252,193,160,224,252,193,216,225,252,193,218,225,252,193,220,225,252,193,120,227,252,193,122,227,252,193,124,227,252,193,126,227,252,193,128,227,252,193,130,227,252,193,132,227,252,193,134,227,252,193,136,227,252,193,138,227,252,193,140,227,252,193,142,227,252,193,144,227,252,193,146,227,252,193,148,227,252,193,150,227,252,193,152,227,252,193,154,227,252,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,193,236,225,252,193,58,225,252,193,60,225,252,193,62,225,252,193,238,225,252,193,240,225,252,193,242,225,252,193,244,225,252,193,246,225,252,193,248,225,252,193,250,225,252,193,180,227,252,193,252,225,252,193,254,225,252,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,193,62,226,252,193,64,226,252,193,66,226,252,193,68,226,252,193,70,226,252,193,72,226,252,193,74,226,252,193,76,226,252,193,78,226,252,193,80,226,252,193,82,226,252,193,84,226,252,193,86,226,252,193,88,226,252,193,90,226,252,193,92,226,252,193,94,226,252,193,96,226,252,193,98,226,252,193,244,229,252,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,193,190,226,252,193,192,226,252,193,86,228,252,193,88,228,252,193,90,228,252,193,92,228,252,193,94,228,252,193,96,228,252,193,98,228,252,193,100,228,252,193,102,228,252,193,104,228,252,193,106,228,252,193,108,228,252,193,110,228,252,193,112,228,252,193,114,228,252,193,116,228,252,193,118,228,252,193,120,228,252,193,122,228,252,193,210,230,252,193,124,228,252,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,193,190,232,252,193,52,228,252,193,54,228,252,193,56,228,252,193,58,228,252,193,60,228,252,193,62,228,252,193,64,228,252,193,66,228,252,193,68,228,252,193,70,228,252,193,72,228,252,193,74,228,252,193,76,228,252,193,78,228,252,193,80,228,252,193,82,228,252,206,0,78,0,206,0,78,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,193,4,231,252,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,193,6,231,252,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,193,102,229,252,193,104,229,252,193,106,229,252,193,108,229,252,193,110,229,252,193,112,229,252,193,114,229,252,193,116,229,252,193,118,229,252,193,120,229,252,193,122,229,252,193,124,229,252,193,126,229,252,193,128,229,252,193,130,229,252,193,132,229,252,193,56,232,252,193,58,232,252,193,60,232,252,193,62,232,252,193,64,232,252,193,66,232,252,193,68,232,252,193,70,232,252,193,72,232,252,193,74,232,252,193,76,232,252,193,78,232,252,193,80,232,252,193,82,232,252,193,84,232,252,193,86,232,252,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,193,124,232,252,193,126,232,252,193,128,232,252,193,130,232,252,193,132,232,252,193,134,232,252,193,136,232,252,193,138,232,252,193,140,232,252,193,142,232,252,193,144,232,252,193,146,232,252,193,148,232,252,193,150,232,252,193,152,232,252,193,154,232,252,193,214,229,252,193,216,229,252,193,218,229,252,193,220,229,252,193,222,229,252,193,224,229,252,193,226,229,252,193,228,229,252,193,230,229,252,193,232,229,252,193,234,229,252,193,236,229,252,193,238,229,252,193,240,229,252,193,242,229,252,193,162,232,252,193,164,232,252,193,166,232,252,193,168,232,252,193,170,232,252,193,172,232,252,193,174,232,252,193,176,232,252,193,178,232,252,193,180,232,252,193,182,232,252,193,184,232,252,193,186,232,252,193,188,232,252,193,116,235,252,193,118,235,252,193,120,235,252,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,193,206,230,252,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,193,142,233,252,193,144,233,252,193,146,233,252,193,148,233,252,193,150,233,252,193,152,233,252,193,154,233,252,193,156,233,252,193,158,233,252,193,160,233,252,193,162,233,252,193,164,233,252,193,166,233,252,193,168,233,252,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,193,88,232,252,193,232,234,252,193,234,234,252,193,236,234,252,193,238,234,252,193,240,234,252,193,242,234,252,193,244,234,252,193,246,234,252,193,248,234,252,193,250,234,252,193,252,234,252,193,254,234,252,193,2,235,252,193,4,235,252,193,6,235,252,193,8,235,252,193,10,235,252,193,12,235,252,193,14,235,252,193,16,235,252,193,18,235,252,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,193,24,235,252,193,26,235,252,193,28,235,252,193,30,235,252,193,32,235,252,193,34,235,252,193,36,235,252,193,38,235,252,193,40,235,252,193,42,235,252,193,44,235,252,193,46,235,252,193,48,235,252,193,50,235,252,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,193,156,232,252,193,158,232,252,193,160,232,252,193,52,235,252,193,54,235,252,193,56,235,252,193,58,235,252,193,60,235,252,193,62,235,252,193,64,235,252,193,66,235,252,193,68,235,252,193,70,235,252,193,72,235,252,193,74,235,252,193,76,235,252,193,78,235,252,193,80,235,252,193,82,235,252,193,84,235,252,193,86,235,252,193,88,235,252,193,90,235,252,193,92,235,252,193,94,235,252,193,96,235,252,193,98,235,252,193,100,235,252,193,102,235,252,193,104,235,252,193,106,235,252,193,108,235,252,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,193,98,236,252,193,182,234,252,193,184,234,252,193,186,234,252,193,188,234,252,193,190,234,252,193,192,234,252,193,194,234,252,193,196,234,252,193,198,234,252,193,200,234,252,193,202,234,252,193,204,234,252,193,206,234,252,193,208,234,252,193,210,234,252,193,212,234,252,193,214,234,252,193,216,234,252,193,218,234,252,193,220,234,252,193,222,234,252,193,224,234,252,193,226,234,252,193,228,234,252,193,230,234,252,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,193,110,235,252,193,112,235,252,193,114,235,252,193,254,237,252,193,2,238,252,193,4,238,252,193,6,238,252,193,8,238,252,193,10,238,252,193,12,238,252,193,14,238,252,193,16,238,252,193,18,238,252,193,20,238,252,193,22,238,252,193,24,238,252,193,26,238,252,193,28,238,252,193,30,238,252,193,32,238,252,193,34,238,252,193,36,238,252,193,38,238,252,193,40,238,252,193,42,238,252,193,44,238,252,193,46,238,252,193,48,238,252,193,50,238,252,193,52,238,252,193,54,238,252,193,56,238,252,193,122,235,252,193,124,235,252,193,126,235,252,193,128,235,252,193,130,235,252,193,132,235,252,193,134,235,252,193,136,235,252,193,138,235,252,193,140,235,252,193,142,235,252,193,60,238,252,193,62,238,252,193,64,238,252,193,66,238,252,193,68,238,252,193,70,238,252,193,72,238,252,193,210,240,252,193,212,240,252,193,214,240,252,193,216,240,252,193,52,243,252,193,54,243,252,193,56,243,252,193,58,243,252,193,60,243,252,193,62,243,252,193,64,243,252,193,98,245,252,193,100,245,252,193,102,245,252,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,193,74,238,252,193,58,236,252,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,193,56,239,252,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,193,68,240,252,193,70,240,252,193,72,240,252,193,74,240,252,193,76,240,252,193,78,240,252,193,80,240,252,193,82,240,252,193,84,240,252,193,86,240,252,193,88,240,252,193,90,240,252,193,92,240,252,193,94,240,252,193,96,240,252,193,98,240,252,193,100,240,252,193,102,240,252,193,104,240,252,193,106,240,252,193,108,240,252,193,198,242,252,193,200,242,252,193,202,242,252,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,193,58,238,252,193,162,240,252,193,164,240,252,193,166,240,252,193,168,240,252,193,170,240,252,193,172,240,252,193,174,240,252,193,176,240,252,193,178,240,252,193,180,240,252,193,182,240,252,193,184,240,252,193,186,240,252,193,188,240,252,193,190,240,252,193,192,240,252,193,194,240,252,193,196,240,252,193,198,240,252,193,200,240,252,193,202,240,252,193,204,240,252,193,206,240,252,193,208,240,252,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,193,218,240,252,193,220,240,252,193,222,240,252,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,193,58,239,252,193,60,239,252,193,62,239,252,193,64,239,252,193,66,239,252,193,68,239,252,193,70,239,252,193,72,239,252,193,74,239,252,193,76,239,252,193,78,239,252,193,80,239,252,193,82,239,252,193,84,239,252,193,86,239,252,193,88,239,252,193,90,239,252,193,92,239,252,193,94,239,252,193,96,239,252,193,98,239,252,193,100,239,252,193,102,239,252,193,104,239,252,193,106,239,252,193,108,239,252,193,110,239,252,193,112,239,252,193,114,239,252,193,116,239,252,193,118,239,252,193,120,239,252,193,122,239,252,193,124,239,252,193,126,239,252,193,128,239,252,193,130,239,252,193,132,239,252,193,134,239,252,193,136,239,252,193,138,239,252,193,140,239,252,193,142,239,252,193,144,239,252,193,146,239,252,193,148,239,252,193,150,239,252,193,152,239,252,193,154,239,252,193,156,239,252,193,158,239,252,193,160,239,252,193,162,239,252,193,164,239,252,193,166,239,252,193,168,239,252,193,170,239,252,193,172,239,252,193,174,239,252,193,176,239,252,193,178,239,252,193,126,241,252,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,193,158,252,252,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,193,216,242,252,193,218,242,252,193,220,242,252,193,222,242,252,193,224,242,252,193,226,242,252,193,228,242,252,193,230,242,252,193,232,242,252,193,234,242,252,193,236,242,252,193,238,242,252,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,193,224,240,252,193,226,240,252,193,228,240,252,193,230,240,252,193,232,240,252,193,234,240,252,193,236,240,252,193,238,240,252,193,240,240,252,193,242,240,252,193,244,240,252,193,246,240,252,193,248,240,252,193,250,240,252,193,252,240,252,193,254,240,252,193,2,241,252,193,4,241,252,193,6,241,252,193,8,241,252,193,10,241,252,193,12,241,252,193,14,241,252,193,16,241,252,193,18,241,252,193,20,241,252,193,22,241,252,193,24,241,252,193,26,241,252,193,28,241,252,193,30,241,252,193,32,241,252,193,34,241,252,193,36,241,252,193,38,241,252,193,40,241,252,193,42,241,252,193,44,241,252,193,46,241,252,193,48,241,252,193,50,241,252,193,52,241,252,193,54,241,252,193,56,241,252,193,58,241,252,193,60,241,252,193,62,241,252,193,64,241,252,193,66,241,252,193,68,241,252,193,70,241,252,193,72,241,252,193,74,241,252,193,76,241,252,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,193,180,243,252,193,182,243,252,193,184,243,252,193,186,243,252,193,188,243,252,193,190,243,252,193,192,243,252,193,194,243,252,193,196,243,252,193,198,243,252,193,200,243,252,193,202,243,252,193,204,243,252,193,200,245,252,193,202,245,252,193,204,245,252,193,206,245,252,193,208,245,252,193,210,245,252,193,212,245,252,193,214,245,252,193,216,245,252,193,218,245,252,193,220,245,252,193,222,245,252,193,134,247,252,193,136,247,252,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,193,206,243,252,193,112,242,252,193,114,242,252,193,116,242,252,193,118,242,252,193,120,242,252,193,122,242,252,193,124,242,252,193,126,242,252,193,128,242,252,193,130,242,252,193,132,242,252,193,134,242,252,193,136,242,252,193,138,242,252,193,140,242,252,193,142,242,252,193,144,242,252,193,146,242,252,193,148,242,252,193,150,242,252,193,152,242,252,193,154,242,252,193,156,242,252,193,158,242,252,193,160,242,252,193,162,242,252,193,164,242,252,193,166,242,252,193,168,242,252,193,170,242,252,193,172,242,252,193,174,242,252,193,176,242,252,193,178,242,252,193,180,242,252,193,182,242,252,193,184,242,252,193,186,242,252,193,188,242,252,193,190,242,252,193,192,242,252,193,194,242,252,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,193,196,242,252,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,193,204,242,252,193,206,242,252,193,208,242,252,193,210,242,252,193,212,242,252,193,214,244,252,193,216,244,252,193,218,244,252,193,220,244,252,193,222,244,252,193,224,244,252,193,226,244,252,193,228,244,252,193,230,244,252,193,232,244,252,193,234,244,252,193,236,244,252,193,238,244,252,193,240,244,252,193,242,244,252,193,244,244,252,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,193,120,245,252,193,168,243,252,193,170,243,252,193,172,243,252,193,122,245,252,193,174,243,252,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,193,72,246,252,193,210,244,252,193,74,246,252,193,76,246,252,193,78,246,252,193,80,246,252,193,82,246,252,193,84,246,252,193,86,246,252,193,88,246,252,193,90,246,252,193,92,246,252,193,94,246,252,193,96,246,252,193,98,246,252,193,100,246,252,193,102,246,252,193,104,246,252,193,106,246,252,193,108,246,252,193,110,246,252,193,112,246,252,193,114,246,252,193,116,246,252,193,212,244,252,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,193,228,246,252,193,230,246,252,193,232,246,252,193,234,246,252,193,236,246,252,193,238,246,252,193,240,246,252,193,242,246,252,193,244,246,252,193,246,246,252,193,248,246,252,193,250,246,252,193,252,246,252,193,254,246,252,193,2,247,252,193,4,247,252,193,6,247,252,193,8,247,252,193,100,248,252,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,193,104,245,252,193,106,245,252,193,108,245,252,193,110,245,252,193,112,245,252,193,114,245,252,193,116,245,252,193,118,245,252,193,64,247,252,193,66,247,252,193,166,248,252,193,168,248,252,193,170,248,252,193,172,248,252,193,174,248,252,193,176,248,252,193,178,248,252,193,234,249,252,193,236,249,252,193,238,249,252,193,220,250,252,193,222,250,252,193,108,251,252,193,110,252,252,193,250,252,252,193,252,252,252,193,254,252,252,193,48,253,252,193,50,253,252,193,52,253,252,193,94,253,252,193,96,253,252,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,193,10,250,252,193,12,250,252,193,242,248,252,193,14,250,252,193,198,245,252,193,16,250,252,193,18,250,252,193,20,250,252,193,22,250,252,193,24,250,252,193,26,250,252,193,28,250,252,193,30,250,252,193,32,250,252,193,34,250,252,193,36,250,252,193,38,250,252,193,110,251,252,193,224,250,252,193,226,250,252,193,228,250,252,193,230,250,252,193,232,250,252,193,234,250,252,193,112,251,252,193,114,251,252,193,116,251,252,193,118,251,252,193,120,251,252,193,122,251,252,193,124,251,252,193,126,251,252,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,193,150,247,252,193,152,247,252,193,54,246,252,193,56,246,252,193,58,246,252,193,60,246,252,193,62,246,252,193,64,246,252,193,66,246,252,193,154,247,252,193,68,246,252,193,70,246,252,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,193,86,248,252,193,88,248,252,193,90,248,252,193,92,248,252,193,94,248,252,193,96,248,252,193,98,248,252,193,180,249,252,193,182,249,252,193,184,249,252,193,186,249,252,193,176,250,252,193,178,250,252,193,180,250,252,193,182,250,252,193,74,251,252,193,76,251,252,193,78,251,252,193,202,251,252,193,28,252,252,193,30,252,252,193,32,252,252,193,104,252,252,193,106,252,252,193,204,252,252,193,206,252,252,193,236,252,252,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,193,180,248,252,193,120,247,252,193,122,247,252,193,124,247,252,193,126,247,252,193,128,247,252,193,130,247,252,193,132,247,252,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,193,138,247,252,193,140,247,252,193,142,247,252,193,144,247,252,193,146,247,252,193,148,247,252,193,244,248,252,193,246,248,252,193,248,248,252,193,250,248,252,193,252,248,252,193,254,248,252,193,2,249,252,193,4,249,252,193,6,249,252,193,8,249,252,193,10,249,252,193,12,249,252,193,14,249,252,193,40,250,252,193,42,250,252,193,44,250,252,193,46,250,252,193,48,250,252,193,240,250,252,193,242,250,252,193,244,250,252,193,132,251,252,193,134,251,252,193,136,251,252,193,232,251,252,193,46,252,252,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,193,84,248,252,193,50,250,252,193,178,249,252,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,193,102,248,252,193,104,248,252,193,106,248,252,193,108,248,252,193,110,248,252,193,112,248,252,193,114,248,252,193,116,248,252,193,118,248,252,193,120,248,252,193,122,248,252,193,124,248,252,193,126,248,252,193,128,248,252,193,188,249,252,193,190,249,252,193,192,249,252,193,194,249,252,193,196,249,252,193,198,249,252,193,200,249,252,193,202,249,252,193,184,250,252,193,186,250,252,193,188,250,252,193,190,250,252,193,192,250,252,193,194,250,252,193,80,251,252,193,82,251,252,193,84,251,252,193,86,251,252,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,193,204,249,252,193,206,249,252,193,208,249,252,193,210,249,252,193,212,249,252,193,214,249,252,193,216,249,252,193,218,249,252,193,220,249,252,193,222,249,252,193,224,249,252,193,226,249,252,193,228,249,252,193,230,249,252,193,232,249,252,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,193,240,249,252,193,238,248,252,193,240,248,252,193,242,249,252,193,244,249,252,193,246,249,252,193,248,249,252,193,250,249,252,193,252,249,252,193,254,249,252,193,2,250,252,193,4,250,252,193,6,250,252,193,8,250,252,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,193,88,251,252,193,90,251,252,193,92,251,252,193,94,251,252,193,96,251,252,193,98,251,252,193,100,251,252,193,102,251,252,193,104,251,252,193,106,251,252,193,214,251,252,193,216,251,252,193,218,251,252,193,220,251,252,193,222,251,252,193,36,252,252,193,74,252,252,193,76,252,252,193,108,252,252,193,176,252,252,193,186,252,252,193,188,252,252,193,190,252,252,193,210,252,252,193,212,252,252,193,242,252,252,193,244,252,252,193,246,252,252,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,193,204,251,252,193,206,251,252,193,208,251,252,193,210,251,252,193,212,251,252,193,34,252,252,193,72,252,252,193,208,252,252,193,238,252,252,193,240,252,252,193,86,253,252,193,126,253,252,193,128,253,252,193,130,253,252,193,18,254,252,193,20,254,252,193,22,254,252,193,84,254,252,193,104,254,252,193,144,254,252,193,30,255,252,193,32,255,252,193,210,255,252,193,212,255,252,193,214,255,252,193,216,255,252,193,218,255,252,193,220,255,252,193,198,2,253,193,200,2,253,193,202,2,253,193,204,2,253,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,193,50,252,252,193,52,252,252,193,54,252,252,193,56,252,252,193,58,252,252,193,60,252,252,193,62,252,252,193,140,252,252,193,64,252,252,193,66,252,252,193,68,252,252,193,70,252,252,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,193,48,252,252,193,78,252,252,193,114,252,252,193,116,252,252,193,118,252,252,193,136,252,252,193,138,252,252,193,166,252,252,193,182,252,252,193,196,252,252,193,220,252,252,193,222,252,252,193,224,252,252,193,226,252,252,193,14,253,252,193,16,253,252,193,60,253,252,193,62,253,252,193,102,253,252,193,104,253,252,193,106,253,252,193,108,253,252,193,110,253,252,193,188,253,252,193,228,253,252,193,32,254,252,193,62,254,252,193,64,254,252,193,88,254,252,193,156,254,252,193,234,254,252,193,236,254,252,193,230,252,252,193,232,252,252,193,234,252,252,193,18,253,252,193,20,253,252,193,22,253,252,193,24,253,252,193,26,253,252,193,28,253,252,193,30,253,252,193,32,253,252,193,34,253,252,193,36,253,252,193,38,253,252,193,40,253,252,193,42,253,252,193,44,253,252,193,64,253,252,193,66,253,252,193,68,253,252,193,70,253,252,193,72,253,252,193,74,253,252,193,76,253,252,193,78,253,252,193,80,253,252,193,112,253,252,193,114,253,252,193,116,253,252,193,118,253,252,193,120,253,252,193,122,253,252,193,248,252,252,193,46,253,252,193,88,253,252,193,90,253,252,193,92,253,252,193,132,253,252,193,134,253,252,193,216,253,252,193,218,253,252,193,24,254,252,193,26,254,252,193,56,254,252,193,58,254,252,193,86,254,252,193,106,254,252,193,118,254,252,193,152,254,252,193,162,254,252,193,196,254,252,193,34,255,252,193,36,255,252,193,38,255,252,193,40,255,252,193,42,255,252,193,222,255,252,193,224,255,252,193,226,255,252,193,228,255,252,193,230,255,252,193,210,2,253,193,212,2,253,193,214,2,253,193,82,253,252,193,84,253,252,193,176,253,252,193,54,254,252,193,194,254,252,193,26,255,252,193,28,255,252,193,200,255,252,193,202,255,252,193,204,255,252,193,206,255,252,193,208,255,252,193,184,2,253,193,186,2,253,193,188,2,253,193,190,2,253,193,192,2,253,193,194,2,253,193,196,2,253,193,176,3,253,193,178,3,253,193,180,3,253,193,182,3,253,193,184,3,253,193,186,3,253,193,188,3,253,193,190,3,253,193,192,3,253,193,194,3,253,193,190,4,253,193,192,4,253,193,194,4,253,193,124,253,252,193,148,253,252,193,150,253,252,193,152,253,252,193,154,253,252,193,156,253,252,193,158,253,252,193,160,253,252,193,162,253,252,193,164,253,252,193,166,253,252,193,168,253,252,193,170,253,252,193,172,253,252,193,174,253,252,193,190,253,252,193,192,253,252,193,194,253,252,193,196,253,252,193,198,253,252,193,200,253,252,193,202,253,252,193,204,253,252,193,206,253,252,193,208,253,252,193,210,253,252,193,212,253,252,193,214,253,252,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,193,136,253,252,193,138,253,252,193,140,253,252,193,142,253,252,193,178,253,252,193,180,253,252,193,182,253,252,193,220,253,252,193,134,254,252,193,198,254,252,193,44,255,252,193,232,255,252,193,234,255,252,193,236,255,252,193,238,255,252,193,240,255,252,193,242,255,252,193,244,255,252,193,246,255,252,193,218,2,253,193,220,2,253,193,222,2,253,193,224,2,253,193,226,2,253,193,224,3,253,193,226,3,253,193,240,4,253,193,242,4,253,193,244,4,253,193,246,4,253,193,248,4,253,193,80,6,253,193,144,253,252,193,146,253,252,193,184,253,252,193,186,253,252,193,222,253,252,193,224,253,252,193,226,253,252,193,28,254,252,193,30,254,252,193,60,254,252,193,146,254,252,193,150,254,252,193,154,254,252,193,164,254,252,193,166,254,252,193,168,254,252,193,170,254,252,193,172,254,252,193,174,254,252,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,193,34,254,252,193,36,254,252,193,38,254,252,193,40,254,252,193,42,254,252,193,44,254,252,193,46,254,252,193,48,254,252,193,50,254,252,193,52,254,252,193,66,254,252,193,68,254,252,193,70,254,252,193,72,254,252,193,74,254,252,193,76,254,252,193,78,254,252,193,90,254,252,193,80,254,252,193,82,254,252,193,92,254,252,193,94,254,252,193,96,254,252,193,98,254,252,193,100,254,252,193,102,254,252,193,108,254,252,193,110,254,252,193,112,254,252,193,114,254,252,193,116,254,252,193,110,161,253,193,120,254,252,193,122,254,252,193,124,254,252,193,126,254,252,193,128,254,252,193,130,254,252,193,132,254,252,193,136,254,252,193,138,254,252,193,140,254,252,193,142,254,252,193,148,254,252,193,158,254,252,193,160,254,252,193,176,254,252,193,178,254,252,193,180,254,252,193,182,254,252,193,184,254,252,193,186,254,252,193,188,254,252,193,190,254,252,193,192,254,252,193,242,254,252,193,244,254,252,193,246,254,252,193,248,254,252,193,250,254,252,193,252,254,252,193,254,254,252,193,2,255,252,193,4,255,252,193,6,255,252,193,8,255,252,193,10,255,252,193,12,255,252,193,14,255,252,193,16,255,252,193,18,255,252,193,20,255,252,193,22,255,252,193,24,255,252,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,193,46,255,252,193,48,255,252,193,50,255,252,193,52,255,252,193,228,2,253,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,193,238,254,252,193,124,255,252,193,126,255,252,193,128,255,252,193,68,2,253,193,70,2,253,193,72,2,253,193,74,2,253,193,76,2,253,193,78,2,253,193,80,2,253,193,82,2,253,193,84,2,253,193,48,3,253,193,50,3,253,193,52,3,253,193,54,3,253,193,56,3,253,193,58,3,253,193,60,3,253,193,62,3,253,193,64,3,253,193,50,4,253,193,52,4,253,193,54,4,253,193,56,4,253,193,58,4,253,193,60,4,253,193,62,4,253,193,64,4,253,193,66,4,253,193,96,5,253,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,193,248,255,252,193,122,255,252,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,193,86,2,253,193,88,2,253,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,193,230,2,253,193,232,2,253,193,234,2,253,193,236,2,253,193,238,2,253,193,240,2,253,193,228,3,253,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,193,240,249,252,193,66,2,253,193,156,35,253,193,178,55,253,193,86,79,253,193,170,81,253,193,102,90,253,193,218,102,253,193,88,104,253,193,30,129,253,193,14,158,253,193,98,158,253,193,188,159,253,193,250,201,253,193,66,89,253,193,204,131,253,193,126,14,251,193,160,21,251,193,68,26,251,193,4,43,251,193,12,44,251,193,46,48,251,193,92,67,251,193,34,72,251,193,50,76,251,193,94,92,251,193,16,215,253,193,76,134,251,193,8,135,251,193,176,174,251,193,108,178,251,193,254,182,251,193,90,2,253,193,92,2,253,193,94,2,253,193,96,2,253,193,98,2,253,193,100,2,253,193,102,2,253,193,104,2,253,193,106,2,253,193,108,2,253,193,110,2,253,193,112,2,253,193,114,2,253,193,116,2,253,193,118,2,253,193,120,2,253,193,122,2,253,193,124,2,253,193,126,2,253,193,128,2,253,193,130,2,253,193,132,2,253,193,134,2,253,193,136,2,253,193,138,2,253,193,140,2,253,193,142,2,253,193,144,2,253,193,146,2,253,193,148,2,253,193,150,2,253,193,152,2,253,193,154,2,253,193,156,2,253,193,158,2,253,193,160,2,253,193,162,2,253,193,164,2,253,193,166,2,253,193,168,2,253,193,170,2,253,193,172,2,253,193,174,2,253,193,176,2,253,193,178,2,253,193,180,2,253,193,182,2,253,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,193,206,2,253,193,208,2,253,193,196,3,253,193,198,3,253,193,200,3,253,193,202,3,253,193,204,3,253,193,206,3,253,193,200,4,253,193,202,4,253,193,204,4,253,193,206,4,253,193,208,4,253,193,210,4,253,193,40,6,253,193,42,6,253,193,44,6,253,193,46,6,253,193,48,6,253,193,50,6,253,193,52,6,253,193,54,6,253,193,56,6,253,193,58,6,253,193,60,6,253,193,62,6,253,193,64,6,253,193,148,7,253,193,150,7,253,193,152,7,253,193,154,7,253,193,218,8,253,193,216,2,253,193,208,3,253,193,210,3,253,193,212,3,253,193,214,3,253,193,216,3,253,193,218,3,253,193,220,3,253,193,222,3,253,193,212,4,253,193,214,4,253,193,216,4,253,193,218,4,253,193,220,4,253,193,222,4,253,193,224,4,253,193,226,4,253,193,228,4,253,193,230,4,253,193,232,4,253,193,234,4,253,193,236,4,253,193,238,4,253,193,66,6,253,193,68,6,253,193,70,6,253,193,72,6,253,193,74,6,253,193,76,6,253,193,78,6,253,193,156,7,253,193,158,7,253,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,193,68,4,253,193,122,3,253,193,124,3,253,193,70,4,253,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,193,72,4,253,193,74,4,253,193,76,4,253,193,78,4,253,193,80,4,253,193,82,4,253,193,84,4,253,193,86,4,253,193,88,4,253,193,90,4,253,193,92,4,253,193,94,4,253,193,96,4,253,193,98,4,253,193,100,4,253,193,102,4,253,193,104,4,253,193,106,4,253,193,108,4,253,193,110,4,253,193,112,4,253,193,114,4,253,193,122,5,253,193,116,4,253,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,193,46,4,253,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,193,48,4,253,193,86,5,253,193,88,5,253,193,90,5,253,193,92,5,253,193,94,5,253,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,193,118,4,253,193,120,4,253,193,122,4,253,193,124,4,253,193,126,4,253,193,128,4,253,193,130,4,253,193,132,4,253,193,134,4,253,193,136,4,253,193,138,4,253,193,140,4,253,193,142,4,253,193,144,4,253,193,146,4,253,193,148,4,253,193,150,4,253,193,152,4,253,193,154,4,253,193,156,4,253,193,158,4,253,193,160,4,253,193,162,4,253,193,164,4,253,193,166,4,253,193,168,4,253,193,170,4,253,193,172,4,253,193,174,4,253,193,176,4,253,193,178,4,253,193,180,4,253,193,182,4,253,193,184,4,253,193,186,4,253,193,124,5,253,193,126,5,253,193,128,5,253,193,130,5,253,193,132,5,253,193,134,5,253,193,136,5,253,193,138,5,253,193,140,5,253,193,142,5,253,193,144,5,253,193,146,5,253,193,148,5,253,193,150,5,253,193,152,5,253,193,154,5,253,193,156,5,253,193,158,5,253,193,160,5,253,193,162,5,253,193,164,5,253,193,166,5,253,193,168,5,253,193,170,5,253,193,172,5,253,193,174,5,253,193,176,5,253,193,188,4,253,193,178,5,253,193,196,4,253,193,198,4,253,193,24,6,253,193,26,6,253,193,28,6,253,193,30,6,253,193,32,6,253,193,34,6,253,193,36,6,253,193,38,6,253,193,138,7,253,193,140,7,253,193,142,7,253,193,144,7,253,193,146,7,253,193,204,8,253,193,206,8,253,193,208,8,253,193,210,8,253,193,212,8,253,193,214,8,253,193,216,8,253,193,28,10,253,193,30,10,253,193,32,10,253,193,34,10,253,193,42,11,253,193,44,11,253,193,46,11,253,193,48,11,253,193,50,11,253,193,10,12,253,193,98,5,253,193,100,5,253,193,102,5,253,193,104,5,253,193,106,5,253,193,108,5,253,193,110,5,253,193,112,5,253,193,114,5,253,193,116,5,253,193,118,5,253,193,208,6,253,193,210,6,253,193,212,6,253,193,214,6,253,193,216,6,253,193,218,6,253,193,220,6,253,193,222,6,253,193,224,6,253,193,226,6,253,193,120,5,253,193,228,6,253,193,16,8,253,193,18,8,253,193,20,8,253,193,22,8,253,193,24,8,253,193,26,8,253,193,28,8,253,193,30,8,253,193,98,9,253,193,180,5,253,193,182,5,253,193,184,5,253,193,186,5,253,193,188,5,253,193,190,5,253,193,192,5,253,193,194,5,253,193,196,5,253,193,198,5,253,193,200,5,253,193,202,5,253,193,204,5,253,193,206,5,253,193,208,5,253,193,210,5,253,193,230,6,253,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,193,82,6,253,193,84,6,253,193,86,6,253,193,88,6,253,193,90,6,253,193,92,6,253,193,94,6,253,193,96,6,253,193,98,6,253,193,100,6,253,193,176,7,253,193,178,7,253,193,180,7,253,193,182,7,253,193,252,8,253,193,254,8,253,193,2,9,253,193,4,9,253,193,6,9,253,193,8,9,253,193,10,9,253,193,12,9,253,193,60,10,253,193,62,10,253,193,64,10,253,193,66,10,253,193,68,10,253,193,78,11,253,193,80,11,253,193,36,12,253,193,38,12,253,193,40,12,253,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,193,184,7,253,193,192,6,253,193,194,6,253,193,196,6,253,193,198,6,253,193,200,6,253,193,202,6,253,193,204,6,253,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,193,94,10,253,193,206,6,253,193,96,10,253,193,98,10,253,193,100,10,253,193,102,10,253,193,104,10,253,193,106,10,253,193,108,10,253,193,110,10,253,193,112,10,253,193,114,10,253,193,116,10,253,193,118,10,253,193,120,10,253,193,122,10,253,193,124,10,253,193,126,10,253,193,128,10,253,193,130,10,253,193,132,10,253,193,134,10,253,193,82,11,253,193,84,11,253,193,86,11,253,193,88,11,253,193,90,11,253,193,92,11,253,193,94,11,253,193,96,11,253,193,98,11,253,193,100,11,253,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,193,136,7,253,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,193,160,7,253,193,162,7,253,193,164,7,253,193,166,7,253,193,168,7,253,193,170,7,253,193,172,7,253,193,174,7,253,193,230,8,253,193,232,8,253,193,234,8,253,193,236,8,253,193,238,8,253,193,240,8,253,193,242,8,253,193,244,8,253,193,246,8,253,193,248,8,253,193,250,8,253,193,44,10,253,193,46,10,253,193,48,10,253,193,50,10,253,193,52,10,253,193,54,10,253,193,56,10,253,193,58,10,253,193,64,11,253,193,66,11,253,193,68,11,253,193,70,11,253,193,72,11,253,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,193,70,10,253,193,72,10,253,193,74,10,253,193,76,10,253,193,14,8,253,193,78,10,253,193,80,10,253,193,82,10,253,193,84,10,253,193,86,10,253,193,88,10,253,193,90,10,253,193,92,10,253,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,193,220,8,253,193,222,8,253,193,224,8,253,193,226,8,253,193,228,8,253,193,36,10,253,193,38,10,253,193,40,10,253,193,42,10,253,193,52,11,253,193,54,11,253,193,56,11,253,193,58,11,253,193,60,11,253,193,62,11,253,193,18,12,253,193,20,12,253,193,22,12,253,193,164,12,253,193,166,12,253,193,168,12,253,193,170,12,253,193,172,12,253,193,174,12,253,193,58,13,253,193,178,13,253,193,250,13,253,193,96,14,253,193,16,15,253,193,120,15,253,193,158,15,253,193,160,15,253,193,102,11,253,193,96,9,253,193,104,11,253,193,106,11,253,193,108,11,253,193,110,11,253,193,112,11,253,193,114,11,253,193,116,11,253,193,118,11,253,193,120,11,253,193,122,11,253,193,124,11,253,193,126,11,253,193,136,10,253,193,128,11,253,193,44,12,253,193,46,12,253,193,48,12,253,193,50,12,253,193,52,12,253,193,54,12,253,193,56,12,253,193,58,12,253,193,60,12,253,193,62,12,253,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,193,100,9,253,193,102,9,253,193,104,9,253,193,106,9,253,193,108,9,253,193,110,9,253,193,112,9,253,193,114,9,253,193,116,9,253,193,118,9,253,193,120,9,253,193,122,9,253,193,124,9,253,193,126,9,253,193,128,9,253,193,138,10,253,193,140,10,253,193,142,10,253,193,144,10,253,193,146,10,253,193,130,11,253,193,132,11,253,193,134,11,253,193,136,11,253,193,138,11,253,193,140,11,253,193,142,11,253,193,144,11,253,193,64,12,253,193,66,12,253,193,68,12,253,193,70,12,253,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,193,74,11,253,193,76,11,253,193,24,12,253,193,26,12,253,193,28,12,253,193,30,12,253,193,32,12,253,193,34,12,253,193,176,12,253,193,178,12,253,193,180,12,253,193,182,12,253,193,60,13,253,193,62,13,253,193,64,13,253,193,66,13,253,193,68,13,253,193,70,13,253,193,180,13,253,193,252,13,253,193,254,13,253,193,2,14,253,193,4,14,253,193,60,14,253,193,98,14,253,193,100,14,253,193,120,14,253,193,168,14,253,193,204,14,253,193,212,14,253,193,252,14,253,193,254,14,253,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,193,12,12,253,193,14,12,253,193,16,12,253,193,156,12,253,193,158,12,253,193,160,12,253,193,54,13,253,193,56,13,253,193,176,13,253,193,180,14,253,193,238,14,253,193,250,14,253,193,78,15,253,193,174,15,253,193,202,15,253,193,250,15,253,193,32,16,253,193,48,16,253,193,20,17,253,193,22,17,253,193,24,17,253,193,204,17,253,193,206,17,253,193,208,17,253,193,136,18,253,193,138,18,253,193,140,18,253,193,142,18,253,193,144,18,253,193,64,19,253,193,40,20,253,193,42,20,253,193,42,12,253,193,184,12,253,193,186,12,253,193,188,12,253,193,72,13,253,193,182,13,253,193,62,14,253,193,2,15,253,193,20,15,253,193,80,15,253,193,204,15,253,193,222,15,253,193,224,15,253,193,226,15,253,193,234,15,253,193,34,16,253,193,84,16,253,193,46,17,253,193,240,17,253,193,242,17,253,193,244,17,253,193,246,17,253,193,248,17,253,193,250,17,253,193,252,17,253,193,178,18,253,193,180,18,253,193,106,19,253,193,108,19,253,193,110,19,253,193,112,19,253,193,114,19,253,193,72,12,253,193,74,12,253,193,214,12,253,193,216,12,253,193,218,12,253,193,90,13,253,193,92,13,253,193,94,13,253,193,96,13,253,193,98,13,253,193,198,13,253,193,200,13,253,193,202,13,253,193,66,14,253,193,152,14,253,193,218,14,253,193,226,14,253,193,242,14,253,193,22,15,253,193,34,15,253,193,50,15,253,193,148,15,253,193,184,15,253,193,10,16,253,193,12,16,253,193,38,16,253,193,62,16,253,193,64,16,253,193,100,16,253,193,102,16,253,193,104,16,253,193,204,16,253,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,193,74,13,253,193,76,13,253,193,78,13,253,193,80,13,253,193,82,13,253,193,84,13,253,193,86,13,253,193,88,13,253,193,184,13,253,193,186,13,253,193,188,13,253,193,190,13,253,193,192,13,253,193,194,13,253,193,196,13,253,193,212,12,253,193,6,14,253,193,8,14,253,193,10,14,253,193,12,14,253,193,14,14,253,193,16,14,253,193,64,14,253,193,102,14,253,193,122,14,253,193,124,14,253,193,150,14,253,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,193,100,13,253,193,102,13,253,193,104,13,253,193,106,13,253,193,108,13,253,193,110,13,253,193,112,13,253,193,114,13,253,193,116,13,253,193,118,13,253,193,120,13,253,193,122,13,253,193,124,13,253,193,126,13,253,193,128,13,253,193,130,13,253,193,132,13,253,193,134,13,253,193,136,13,253,193,138,13,253,193,140,13,253,193,142,13,253,193,144,13,253,193,146,13,253,193,148,13,253,193,150,13,253,193,152,13,253,193,154,13,253,193,156,13,253,193,158,13,253,193,160,13,253,193,162,13,253,193,164,13,253,193,166,13,253,193,168,13,253,193,170,13,253,193,172,13,253,193,174,13,253,193,204,13,253,193,206,13,253,193,208,13,253,193,210,13,253,193,212,13,253,193,214,13,253,193,216,13,253,193,218,13,253,193,220,13,253,193,222,13,253,193,224,13,253,193,226,13,253,193,228,13,253,193,230,13,253,193,232,13,253,193,234,13,253,193,18,14,253,193,236,13,253,193,238,13,253,193,240,13,253,193,242,13,253,193,244,13,253,193,246,13,253,193,248,13,253,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,193,68,14,253,193,70,14,253,193,72,14,253,193,74,14,253,193,76,14,253,193,78,14,253,193,80,14,253,193,82,14,253,193,84,14,253,193,86,14,253,193,88,14,253,193,90,14,253,193,92,14,253,193,94,14,253,193,104,14,253,193,106,14,253,193,108,14,253,193,110,14,253,193,112,14,253,193,114,14,253,193,116,14,253,193,126,14,253,193,128,14,253,193,130,14,253,193,132,14,253,193,134,14,253,193,136,14,253,193,118,14,253,193,138,14,253,193,140,14,253,193,142,14,253,193,144,14,253,193,146,14,253,193,148,14,253,193,154,14,253,193,156,14,253,193,158,14,253,193,160,14,253,193,162,14,253,193,164,14,253,193,166,14,253,193,172,14,253,193,174,14,253,193,176,14,253,193,178,14,253,193,182,14,253,193,184,14,253,193,186,14,253,193,188,14,253,193,18,206,253,193,190,14,253,193,192,14,253,193,194,14,253,193,196,14,253,193,198,14,253,193,200,14,253,193,206,14,253,193,208,14,253,193,210,14,253,193,220,14,253,193,228,14,253,193,230,14,253,193,232,14,253,193,234,14,253,193,236,14,253,193,244,14,253,193,246,14,253,193,248,14,253,193,12,15,253,193,14,15,253,193,24,15,253,193,26,15,253,193,28,15,253,193,30,15,253,193,32,15,253,193,36,15,253,193,38,15,253,193,40,15,253,193,42,15,253,193,44,15,253,193,46,15,253,193,202,14,253,193,214,14,253,193,216,14,253,193,222,14,253,193,224,14,253,193,240,14,253,193,4,15,253,193,6,15,253,193,8,15,253,193,10,15,253,193,102,15,253,193,114,15,253,193,118,15,253,193,130,15,253,193,132,15,253,193,146,15,253,193,162,15,253,193,164,15,253,193,166,15,253,193,168,15,253,193,170,15,253,193,176,15,253,193,178,15,253,193,180,15,253,193,182,15,253,193,206,15,253,193,236,15,253,193,238,15,253,193,240,15,253,193,242,15,253,193,2,16,253,193,4,16,253,193,18,15,253,193,106,15,253,193,144,15,253,193,220,15,253,193,58,16,253,193,78,16,253,193,80,16,253,193,82,16,253,193,148,16,253,193,32,17,253,193,34,17,253,193,36,17,253,193,38,17,253,193,40,17,253,193,42,17,253,193,44,17,253,193,222,17,253,193,224,17,253,193,226,17,253,193,228,17,253,193,230,17,253,193,232,17,253,193,234,17,253,193,236,17,253,193,238,17,253,193,162,18,253,193,164,18,253,193,166,18,253,193,168,18,253,193,170,18,253,193,172,18,253,193,174,18,253,193,52,15,253,193,54,15,253,193,56,15,253,193,58,15,253,193,48,15,253,193,60,15,253,193,62,15,253,193,64,15,253,193,66,15,253,193,68,15,253,193,70,15,253,193,72,15,253,193,74,15,253,193,76,15,253,193,82,15,253,193,84,15,253,193,86,15,253,193,88,15,253,193,90,15,253,193,92,15,253,193,94,15,253,193,96,15,253,193,98,15,253,193,100,15,253,193,104,15,253,193,108,15,253,193,110,15,253,193,112,15,253,193,116,15,253,193,122,15,253,193,124,15,253,193,126,15,253,193,128,15,253,193,134,15,253,193,136,15,253,193,138,15,253,193,140,15,253,193,142,15,253,193,150,15,253,193,152,15,253,193,154,15,253,193,156,15,253,193,172,15,253,193,188,15,253,193,190,15,253,193,192,15,253,193,194,15,253,193,196,15,253,193,198,15,253,193,200,15,253,193,208,15,253,193,210,15,253,193,212,15,253,193,214,15,253,193,216,15,253,193,218,15,253,193,228,15,253,193,244,15,253,193,230,15,253,193,232,15,253,193,246,15,253,193,248,15,253,193,16,16,253,193,20,16,253,193,254,15,253,193,44,16,253,193,76,16,253,193,138,16,253,193,140,16,253,193,142,16,253,193,144,16,253,193,146,16,253,193,26,17,253,193,28,17,253,193,30,17,253,193,210,17,253,193,212,17,253,193,214,17,253,193,216,17,253,193,218,17,253,193,220,17,253,193,146,18,253,193,148,18,253,193,150,18,253,193,152,18,253,193,154,18,253,193,156,18,253,193,158,18,253,193,160,18,253,193,68,19,253,193,70,19,253,193,72,19,253,193,74,19,253,193,76,19,253,193,54,20,253,193,56,20,253,193,6,16,253,193,8,16,253,193,50,16,253,193,52,16,253,193,54,16,253,193,60,16,253,193,86,16,253,193,88,16,253,193,90,16,253,193,92,16,253,193,94,16,253,193,96,16,253,193,98,16,253,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,193,22,16,253,193,24,16,253,193,28,16,253,193,30,16,253,193,36,16,253,193,42,16,253,193,46,16,253,193,56,16,253,193,66,16,253,193,68,16,253,193,70,16,253,193,72,16,253,193,74,16,253,193,106,16,253,193,108,16,253,193,110,16,253,193,112,16,253,193,114,16,253,193,116,16,253,193,118,16,253,193,120,16,253,193,122,16,253,193,124,16,253,193,126,16,253,193,128,16,253,193,130,16,253,193,132,16,253,193,134,16,253,193,136,16,253,193,210,16,253,193,212,16,253,193,214,16,253,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,193,206,16,253,193,208,16,253,193,128,17,253,193,130,17,253,193,132,17,253,193,134,17,253,193,136,17,253,193,138,17,253,193,52,18,253,193,54,18,253,193,56,18,253,193,58,18,253,193,60,18,253,193,62,18,253,193,64,18,253,193,238,18,253,193,240,18,253,193,242,18,253,193,244,18,253,193,178,19,253,193,180,19,253,193,182,19,253,193,184,19,253,193,186,19,253,193,188,19,253,193,190,19,253,193,192,19,253,193,194,19,253,193,196,19,253,193,198,19,253,193,200,19,253,193,202,19,253,193,216,16,253,193,218,16,253,193,220,16,253,193,222,16,253,193,224,16,253,193,226,16,253,193,228,16,253,193,230,16,253,193,232,16,253,193,234,16,253,193,236,16,253,193,238,16,253,193,240,16,253,193,242,16,253,193,244,16,253,193,246,16,253,193,248,16,253,193,250,16,253,193,252,16,253,193,254,16,253,193,2,17,253,193,4,17,253,193,6,17,253,193,8,17,253,193,10,17,253,193,12,17,253,193,14,17,253,193,16,17,253,193,18,17,253,193,140,17,253,193,66,18,253,193,142,17,253,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,193,254,17,253,193,126,17,253,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,193,144,17,253,193,146,17,253,193,148,17,253,193,150,17,253,193,152,17,253,193,154,17,253,193,156,17,253,193,158,17,253,193,160,17,253,193,162,17,253,193,164,17,253,193,166,17,253,193,168,17,253,193,170,17,253,193,172,17,253,193,174,17,253,193,176,17,253,193,178,17,253,193,180,17,253,193,182,17,253,193,184,17,253,193,186,17,253,193,188,17,253,193,190,17,253,193,192,17,253,193,194,17,253,193,196,17,253,193,198,17,253,193,200,17,253,193,202,17,253,193,68,18,253,193,70,18,253,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,193,72,18,253,193,74,18,253,193,76,18,253,193,78,18,253,193,80,18,253,193,82,18,253,193,84,18,253,193,86,18,253,193,88,18,253,193,90,18,253,193,92,18,253,193,94,18,253,193,96,18,253,193,98,18,253,193,100,18,253,193,102,18,253,193,104,18,253,193,106,18,253,193,108,18,253,193,110,18,253,193,112,18,253,193,114,18,253,193,116,18,253,193,118,18,253,193,120,18,253,193,122,18,253,193,124,18,253,193,126,18,253,193,128,18,253,193,130,18,253,193,132,18,253,193,134,18,253,193,176,18,253,193,78,19,253,193,80,19,253,193,82,19,253,193,84,19,253,193,86,19,253,193,88,19,253,193,90,19,253,193,92,19,253,193,94,19,253,193,96,19,253,193,98,19,253,193,100,19,253,193,102,19,253,193,104,19,253,193,68,20,253,193,70,20,253,193,72,20,253,193,74,20,253,193,76,20,253,193,248,20,253,193,250,20,253,193,252,20,253,193,254,20,253,193,2,21,253,193,4,21,253,193,6,21,253,193,8,21,253,193,10,21,253,193,12,21,253,193,14,21,253,193,16,21,253,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,193,82,20,253,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,193,210,19,253,193,212,19,253,193,214,19,253,193,216,19,253,193,218,19,253,193,220,19,253,193,222,19,253,193,224,19,253,193,226,19,253,193,228,19,253,193,230,19,253,193,232,19,253,193,234,19,253,193,236,19,253,193,238,19,253,193,240,19,253,193,242,19,253,193,244,19,253,193,246,19,253,193,248,19,253,193,250,19,253,193,252,19,253,193,254,19,253,193,156,20,253,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,193,116,19,253,193,78,20,253,193,80,20,253,193,182,21,253,193,184,21,253,193,186,21,253,193,92,22,253,193,94,22,253,193,96,22,253,193,34,24,253,193,100,24,253,193,234,24,253,193,254,24,253,193,30,25,253,193,170,25,253,193,172,25,253,193,174,25,253,193,32,26,253,193,104,26,253,193,216,26,253,193,66,27,253,193,176,27,253,193,178,27,253,193,192,27,253,193,194,27,253,193,196,27,253,193,214,27,253,193,220,27,253,193,230,27,253,193,234,27,253,193,238,27,253,193,244,27,253,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,193,84,20,253,193,86,20,253,193,88,20,253,193,90,20,253,193,92,20,253,193,94,20,253,193,96,20,253,193,98,20,253,193,100,20,253,193,102,20,253,193,104,20,253,193,106,20,253,193,108,20,253,193,110,20,253,193,112,20,253,193,114,20,253,193,116,20,253,193,118,20,253,193,120,20,253,193,122,20,253,193,124,20,253,193,126,20,253,193,128,20,253,193,130,20,253,193,132,20,253,193,20,21,253,193,22,21,253,193,204,19,253,193,206,19,253,193,208,19,253,193,134,20,253,193,136,20,253,193,138,20,253,193,140,20,253,193,142,20,253,193,144,20,253,193,146,20,253,193,148,20,253,193,150,20,253,193,152,20,253,193,154,20,253,193,64,21,253,193,66,21,253,193,68,21,253,193,70,21,253,193,72,21,253,193,74,21,253,193,226,21,253,193,228,21,253,193,230,21,253,193,232,21,253,193,234,21,253,193,236,21,253,193,238,21,253,193,240,21,253,193,242,21,253,193,244,21,253,193,130,22,253,193,132,22,253,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,193,44,20,253,193,46,20,253,193,48,20,253,193,50,20,253,193,52,20,253,193,240,20,253,193,242,20,253,193,152,21,253,193,154,21,253,193,156,21,253,193,62,22,253,193,64,22,253,193,66,22,253,193,68,22,253,193,70,22,253,193,72,22,253,193,238,22,253,193,240,22,253,193,242,22,253,193,96,23,253,193,98,23,253,193,182,23,253,193,238,23,253,193,56,24,253,193,76,24,253,193,78,24,253,193,180,24,253,193,252,24,253,193,72,25,253,193,164,25,253,193,222,25,253,193,22,26,253,193,58,20,253,193,60,20,253,193,62,20,253,193,64,20,253,193,66,20,253,193,244,20,253,193,246,20,253,193,158,21,253,193,160,21,253,193,162,21,253,193,74,22,253,193,76,22,253,193,78,22,253,193,80,22,253,193,244,22,253,193,246,22,253,193,100,23,253,193,102,23,253,193,184,23,253,193,186,23,253,193,188,23,253,193,240,23,253,193,242,23,253,193,32,24,253,193,168,24,253,193,212,24,253,193,230,24,253,193,10,25,253,193,120,25,253,193,166,25,253,193,92,26,253,193,94,26,253,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,193,18,21,253,193,164,21,253,193,166,21,253,193,168,21,253,193,170,21,253,193,172,21,253,193,174,21,253,193,176,21,253,193,178,21,253,193,180,21,253,193,82,22,253,193,84,22,253,193,86,22,253,193,88,22,253,193,90,22,253,193,248,22,253,193,250,22,253,193,252,22,253,193,254,22,253,193,2,23,253,193,4,23,253,193,6,23,253,193,8,23,253,193,104,23,253,193,106,23,253,193,108,23,253,193,110,23,253,193,190,23,253,193,192,23,253,193,244,23,253,193,246,23,253,193,182,24,253,193,24,21,253,193,26,21,253,193,28,21,253,193,30,21,253,193,32,21,253,193,34,21,253,193,36,21,253,193,38,21,253,193,40,21,253,193,42,21,253,193,44,21,253,193,46,21,253,193,48,21,253,193,50,21,253,193,52,21,253,193,54,21,253,193,56,21,253,193,58,21,253,193,60,21,253,193,188,21,253,193,62,21,253,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,193,246,21,253,193,248,21,253,193,250,21,253,193,252,21,253,193,254,21,253,193,2,22,253,193,4,22,253,193,6,22,253,193,8,22,253,193,10,22,253,193,12,22,253,193,150,21,253,193,14,22,253,193,16,22,253,193,18,22,253,193,20,22,253,193,142,22,253,193,22,22,253,193,24,22,253,193,26,22,253,193,28,22,253,193,30,22,253,193,32,22,253,193,34,22,253,193,36,22,253,193,38,22,253,193,40,22,253,193,42,22,253,193,44,22,253,193,46,22,253,193,48,22,253,193,50,22,253,193,52,22,253,193,54,22,253,193,56,22,253,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,193,98,22,253,193,100,22,253,193,102,22,253,193,104,22,253,193,106,22,253,193,108,22,253,193,110,22,253,193,112,22,253,193,114,22,253,193,116,22,253,193,118,22,253,193,120,22,253,193,122,22,253,193,124,22,253,193,224,21,253,193,126,22,253,193,10,23,253,193,12,23,253,193,14,23,253,193,16,23,253,193,18,23,253,193,20,23,253,193,22,23,253,193,24,23,253,193,26,23,253,193,28,23,253,193,58,22,253,193,60,22,253,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,193,134,22,253,193,136,22,253,193,138,22,253,193,140,22,253,193,36,23,253,193,38,23,253,193,124,23,253,193,126,23,253,193,128,23,253,193,130,23,253,193,206,23,253,193,2,24,253,193,42,24,253,193,44,24,253,193,64,24,253,193,66,24,253,193,90,24,253,193,112,24,253,193,152,24,253,193,160,24,253,193,172,24,253,193,190,24,253,193,192,24,253,193,58,25,253,193,60,25,253,193,86,25,253,193,88,25,253,193,90,25,253,193,132,25,253,193,134,25,253,193,136,25,253,193,138,25,253,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,193,30,23,253,193,32,23,253,193,34,23,253,193,112,23,253,193,114,23,253,193,116,23,253,193,118,23,253,193,120,23,253,193,122,23,253,193,194,23,253,193,196,23,253,193,198,23,253,193,200,23,253,193,202,23,253,193,204,23,253,193,248,23,253,193,250,23,253,193,252,23,253,193,254,23,253,193,36,24,253,193,38,24,253,193,58,24,253,193,60,24,253,193,62,24,253,193,80,24,253,193,82,24,253,193,84,24,253,193,86,24,253,193,88,24,253,193,40,24,253,193,136,24,253,193,138,24,253,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,193,132,23,253,193,134,23,253,193,136,23,253,193,138,23,253,193,140,23,253,193,142,23,253,193,144,23,253,193,146,23,253,193,148,23,253,193,150,23,253,193,208,23,253,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,193,210,23,253,193,212,23,253,193,214,23,253,193,216,23,253,193,218,23,253,193,220,23,253,193,222,23,253,193,224,23,253,193,226,23,253,193,228,23,253,193,230,23,253,193,4,24,253,193,232,23,253,193,234,23,253,193,236,23,253,193,6,24,253,193,8,24,253,193,10,24,253,193,12,24,253,193,14,24,253,193,16,24,253,193,18,24,253,193,20,24,253,193,22,24,253,193,24,24,253,193,26,24,253,193,28,24,253,193,30,24,253,193,46,24,253,193,48,24,253,193,50,24,253,193,52,24,253,193,54,24,253,193,68,24,253,193,70,24,253,193,72,24,253,193,74,24,253,193,92,24,253,193,94,24,253,193,96,24,253,193,98,24,253,193,102,24,253,193,104,24,253,193,106,24,253,193,108,24,253,193,110,24,253,193,114,24,253,193,116,24,253,193,118,24,253,193,120,24,253,193,122,24,253,193,124,24,253,193,126,24,253,193,128,24,253,193,130,24,253,193,132,24,253,193,134,24,253,193,142,24,253,193,144,24,253,193,146,24,253,193,148,24,253,193,154,24,253,193,156,24,253,193,158,24,253,193,162,24,253,193,164,24,253,193,166,24,253,193,174,24,253,193,176,24,253,193,178,24,253,193,194,24,253,193,196,24,253,193,208,24,253,193,210,24,253,193,214,24,253,193,216,24,253,193,218,24,253,193,220,24,253,193,222,24,253,193,224,24,253,193,226,24,253,193,228,24,253,193,236,24,253,193,238,24,253,193,240,24,253,193,246,24,253,193,248,24,253,193,250,24,253,193,2,25,253,193,184,24,253,193,200,24,253,193,202,24,253,193,204,24,253,193,232,24,253,193,242,24,253,193,244,24,253,193,18,25,253,193,22,25,253,193,26,25,253,193,28,25,253,193,34,25,253,193,40,25,253,193,122,25,253,193,168,25,253,193,224,25,253,193,226,25,253,193,228,25,253,193,26,26,253,193,28,26,253,193,30,26,253,193,98,26,253,193,100,26,253,193,102,26,253,193,172,26,253,193,214,26,253,193,36,27,253,193,38,27,253,193,40,27,253,193,42,27,253,193,64,27,253,193,248,27,253,193,6,25,253,193,8,25,253,193,16,25,253,193,20,25,253,193,24,25,253,193,38,25,253,193,44,25,253,193,46,25,253,193,52,25,253,193,62,25,253,193,64,25,253,193,66,25,253,193,68,25,253,193,70,25,253,193,92,25,253,193,94,25,253,193,96,25,253,193,98,25,253,193,100,25,253,193,102,25,253,193,104,25,253,193,106,25,253,193,108,25,253,193,110,25,253,193,112,25,253,193,114,25,253,193,116,25,253,193,118,25,253,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,193,184,25,253,193,186,25,253,193,188,25,253,193,190,25,253,193,192,25,253,193,194,25,253,193,196,25,253,193,198,25,253,193,200,25,253,193,202,25,253,193,204,25,253,193,206,25,253,193,208,25,253,193,210,25,253,193,212,25,253,193,214,25,253,193,216,25,253,193,218,25,253,193,220,25,253,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,193,180,25,253,193,182,25,253,193,240,25,253,193,242,25,253,193,42,26,253,193,44,26,253,193,116,26,253,193,118,26,253,193,120,26,253,193,122,26,253,193,184,26,253,193,186,26,253,193,188,26,253,193,226,26,253,193,228,26,253,193,10,27,253,193,12,27,253,193,14,27,253,193,16,27,253,193,18,27,253,193,72,27,253,193,132,27,253,193,140,27,253,193,34,28,253,193,162,28,253,193,164,28,253,193,166,28,253,193,206,28,253,193,252,28,253,193,254,28,253,193,2,29,253,193,4,29,253,193,236,25,253,193,238,25,253,193,34,26,253,193,36,26,253,193,38,26,253,193,40,26,253,193,106,26,253,193,108,26,253,193,110,26,253,193,112,26,253,193,114,26,253,193,174,26,253,193,176,26,253,193,178,26,253,193,180,26,253,193,182,26,253,193,218,26,253,193,220,26,253,193,222,26,253,193,224,26,253,193,254,26,253,193,2,27,253,193,4,27,253,193,6,27,253,193,8,27,253,193,44,27,253,193,46,27,253,193,48,27,253,193,68,27,253,193,70,27,253,193,84,27,253,193,86,27,253,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,193,46,26,253,193,48,26,253,193,50,26,253,193,52,26,253,193,54,26,253,193,56,26,253,193,58,26,253,193,60,26,253,193,62,26,253,193,64,26,253,193,66,26,253,193,68,26,253,193,70,26,253,193,72,26,253,193,74,26,253,193,76,26,253,193,78,26,253,193,80,26,253,193,82,26,253,193,84,26,253,193,86,26,253,193,24,26,253,193,90,26,253,193,168,26,253,193,170,26,253,193,250,26,253,193,62,27,253,193,128,27,253,193,130,27,253,193,166,27,253,193,168,27,253,193,182,27,253,193,206,27,253,193,226,27,253,193,236,27,253,193,182,28,253,193,184,28,253,193,104,29,253,193,106,29,253,193,154,30,253,193,156,30,253,193,90,31,253,193,92,31,253,193,54,32,253,193,56,32,253,193,58,32,253,193,60,32,253,193,40,33,253,193,42,33,253,193,34,34,253,193,36,34,253,193,38,34,253,193,60,35,253,193,88,26,253,193,124,26,253,193,126,26,253,193,128,26,253,193,130,26,253,193,132,26,253,193,134,26,253,193,136,26,253,193,138,26,253,193,140,26,253,193,142,26,253,193,144,26,253,193,146,26,253,193,148,26,253,193,150,26,253,193,152,26,253,193,154,26,253,193,156,26,253,193,158,26,253,193,160,26,253,193,162,26,253,193,164,26,253,193,166,26,253,193,190,26,253,193,192,26,253,193,194,26,253,193,196,26,253,193,198,26,253,193,200,26,253,193,202,26,253,193,204,26,253,193,206,26,253,193,96,26,253,193,212,26,253,193,252,26,253,193,32,27,253,193,34,27,253,193,82,27,253,193,104,27,253,193,152,27,253,193,170,27,253,193,172,27,253,193,174,27,253,193,184,27,253,193,190,27,253,193,186,27,253,193,202,27,253,193,208,27,253,193,210,27,253,193,212,27,253,193,218,27,253,193,228,27,253,193,232,27,253,193,132,28,253,193,186,28,253,193,232,28,253,193,54,29,253,193,238,29,253,193,76,30,253,193,78,30,253,193,158,30,253,193,160,30,253,193,162,30,253,193,94,31,253,193,208,26,253,193,210,26,253,193,230,26,253,193,232,26,253,193,234,26,253,193,236,26,253,193,238,26,253,193,240,26,253,193,242,26,253,193,244,26,253,193,246,26,253,193,248,26,253,193,20,27,253,193,22,27,253,193,24,27,253,193,26,27,253,193,28,27,253,193,30,27,253,193,50,27,253,193,52,27,253,193,54,27,253,193,56,27,253,193,58,27,253,193,60,27,253,193,74,27,253,193,76,27,253,193,78,27,253,193,80,27,253,193,90,27,253,193,92,27,253,193,94,27,253,193,96,27,253,193,98,27,253,193,100,27,253,193,106,27,253,193,108,27,253,193,110,27,253,193,112,27,253,193,116,27,253,193,118,27,253,193,120,27,253,193,122,27,253,193,124,27,253,193,126,27,253,193,134,27,253,193,136,27,253,193,138,27,253,193,142,27,253,193,144,27,253,193,146,27,253,193,242,27,253,193,246,27,253,193,2,28,253,193,4,28,253,193,6,28,253,193,10,28,253,193,12,28,253,193,14,28,253,193,16,28,253,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,193,250,27,253,193,18,28,253,193,20,28,253,193,80,28,253,193,82,28,253,193,84,28,253,193,86,28,253,193,88,28,253,193,90,28,253,193,134,28,253,193,136,28,253,193,188,28,253,193,190,28,253,193,192,28,253,193,194,28,253,193,196,28,253,193,234,28,253,193,236,28,253,193,238,28,253,193,56,29,253,193,154,29,253,193,156,29,253,193,216,29,253,193,80,30,253,193,82,30,253,193,164,30,253,193,166,30,253,193,98,31,253,193,100,31,253,193,102,31,253,193,104,31,253,193,66,32,253,193,8,28,253,193,22,28,253,193,138,28,253,193,140,28,253,193,240,28,253,193,242,28,253,193,218,29,253,193,52,30,253,193,84,30,253,193,86,30,253,193,106,31,253,193,84,32,253,193,86,32,253,193,72,33,253,193,74,33,253,193,76,33,253,193,78,33,253,193,80,33,253,193,82,33,253,193,84,33,253,193,86,33,253,193,88,33,253,193,90,33,253,193,92,33,253,193,94,33,253,193,64,34,253,193,66,34,253,193,68,34,253,193,96,35,253,193,98,35,253,193,84,36,253,193,86,36,253,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,193,100,28,253,193,102,28,253,193,104,28,253,193,106,28,253,193,108,28,253,193,110,28,253,193,112,28,253,193,114,28,253,193,116,28,253,193,118,28,253,193,120,28,253,193,122,28,253,193,124,28,253,193,126,28,253,193,128,28,253,193,130,28,253,193,168,28,253,193,170,28,253,193,172,28,253,193,174,28,253,193,176,28,253,193,178,28,253,193,180,28,253,193,208,28,253,193,210,28,253,193,212,28,253,193,214,28,253,193,216,28,253,193,218,28,253,193,220,28,253,193,222,28,253,193,224,28,253,193,226,28,253,193,228,28,253,193,230,28,253,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,193,146,28,253,193,148,28,253,193,150,28,253,193,152,28,253,193,154,28,253,193,156,28,253,193,158,28,253,193,160,28,253,193,198,28,253,193,200,28,253,193,202,28,253,193,204,28,253,193,244,28,253,193,246,28,253,193,248,28,253,193,250,28,253,193,58,29,253,193,60,29,253,193,108,29,253,193,110,29,253,193,158,29,253,193,186,29,253,193,188,29,253,193,220,29,253,193,222,29,253,193,224,29,253,193,240,29,253,193,250,29,253,193,252,29,253,193,10,30,253,193,12,30,253,193,22,30,253,193,6,29,253,193,62,29,253,193,64,29,253,193,66,29,253,193,68,29,253,193,112,29,253,193,114,29,253,193,162,29,253,193,190,29,253,193,192,29,253,193,226,29,253,193,228,29,253,193,194,29,253,193,24,30,253,193,68,30,253,193,70,30,253,193,72,30,253,193,124,30,253,193,126,30,253,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,193,70,29,253,193,72,29,253,193,74,29,253,193,76,29,253,193,78,29,253,193,80,29,253,193,82,29,253,193,84,29,253,193,86,29,253,193,88,29,253,193,90,29,253,193,92,29,253,193,94,29,253,193,96,29,253,193,98,29,253,193,100,29,253,193,116,29,253,193,118,29,253,193,120,29,253,193,122,29,253,193,124,29,253,193,126,29,253,193,128,29,253,193,102,29,253,193,130,29,253,193,132,29,253,193,134,29,253,193,136,29,253,193,138,29,253,193,140,29,253,193,142,29,253,193,144,29,253,193,146,29,253,193,148,29,253,193,150,29,253,193,152,29,253,193,164,29,253,193,166,29,253,193,168,29,253,193,170,29,253,193,172,29,253,193,174,29,253,193,176,29,253,193,178,29,253,193,180,29,253,193,182,29,253,193,184,29,253,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,193,160,29,253,193,66,199,253,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,193,230,29,253,193,232,29,253,193,234,29,253,193,236,29,253,193,242,29,253,193,244,29,253,193,246,29,253,193,248,29,253,193,254,29,253,193,2,30,253,193,4,30,253,193,6,30,253,193,8,30,253,193,14,30,253,193,16,30,253,193,18,30,253,193,20,30,253,193,26,30,253,193,28,30,253,193,30,30,253,193,32,30,253,193,34,30,253,193,36,30,253,193,42,30,253,193,44,30,253,193,46,30,253,193,48,30,253,193,50,30,253,193,38,30,253,193,40,30,253,193,54,30,253,193,56,30,253,193,58,30,253,193,60,30,253,193,62,30,253,193,64,30,253,193,66,30,253,193,88,30,253,193,90,30,253,193,92,30,253,193,94,30,253,193,96,30,253,193,98,30,253,193,100,30,253,193,102,30,253,193,104,30,253,193,106,30,253,193,108,30,253,193,110,30,253,193,112,30,253,193,114,30,253,193,116,30,253,193,118,30,253,193,120,30,253,193,122,30,253,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,193,74,30,253,193,128,30,253,193,130,30,253,193,132,30,253,193,134,30,253,193,136,30,253,193,138,30,253,193,140,30,253,193,142,30,253,193,144,30,253,193,146,30,253,193,148,30,253,193,150,30,253,193,152,30,253,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,193,108,31,253,193,110,31,253,193,112,31,253,193,114,31,253,193,116,31,253,193,118,31,253,193,120,31,253,193,122,31,253,193,124,31,253,193,126,31,253,193,128,31,253,193,130,31,253,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,193,198,31,253,193,200,31,253,193,202,31,253,193,204,31,253,193,206,31,253,193,208,31,253,193,210,31,253,193,212,31,253,193,214,31,253,193,216,31,253,193,218,31,253,193,220,31,253,193,222,31,253,193,224,31,253,193,226,31,253,193,228,31,253,193,176,32,253,193,178,32,253,193,180,32,253,193,182,32,253,193,184,32,253,193,186,32,253,193,188,32,253,193,190,32,253,193,192,32,253,193,166,33,253,193,168,33,253,193,170,33,253,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,193,230,31,253,193,232,31,253,193,234,31,253,193,236,31,253,193,96,31,253,193,62,32,253,193,64,32,253,193,44,33,253,193,46,33,253,193,48,33,253,193,50,33,253,193,52,33,253,193,54,33,253,193,56,33,253,193,40,34,253,193,42,34,253,193,44,34,253,193,46,34,253,193,64,35,253,193,66,35,253,193,68,35,253,193,70,35,253,193,72,35,253,193,74,35,253,193,52,36,253,193,54,36,253,193,56,36,253,193,58,36,253,193,60,36,253,193,62,36,253,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,193,132,31,253,193,134,31,253,193,136,31,253,193,138,31,253,193,140,31,253,193,142,31,253,193,144,31,253,193,146,31,253,193,148,31,253,193,150,31,253,193,152,31,253,193,154,31,253,193,156,31,253,193,158,31,253,193,160,31,253,193,162,31,253,193,164,31,253,193,166,31,253,193,168,31,253,193,170,31,253,193,172,31,253,193,174,31,253,193,176,31,253,193,178,31,253,193,180,31,253,193,182,31,253,193,184,31,253,193,186,31,253,193,188,31,253,193,190,31,253,193,192,31,253,193,194,31,253,193,196,31,253,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,193,238,31,253,193,240,31,253,193,242,31,253,193,244,31,253,193,246,31,253,193,248,31,253,193,250,31,253,193,252,31,253,193,254,31,253,193,2,32,253,193,4,32,253,193,6,32,253,193,8,32,253,193,10,32,253,193,12,32,253,193,14,32,253,193,16,32,253,193,18,32,253,193,20,32,253,193,22,32,253,193,24,32,253,193,26,32,253,193,28,32,253,193,30,32,253,193,32,32,253,193,34,32,253,193,36,32,253,193,38,32,253,193,40,32,253,193,42,32,253,193,44,32,253,193,46,32,253,193,48,32,253,193,50,32,253,193,52,32,253,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,193,68,32,253,193,70,32,253,193,72,32,253,193,74,32,253,193,76,32,253,193,78,32,253,193,80,32,253,193,82,32,253,193,58,33,253,193,60,33,253,193,62,33,253,193,64,33,253,193,66,33,253,193,68,33,253,193,70,33,253,193,48,34,253,193,50,34,253,193,52,34,253,193,54,34,253,193,56,34,253,193,58,34,253,193,60,34,253,193,62,34,253,193,76,35,253,193,78,35,253,193,80,35,253,193,82,35,253,193,84,35,253,193,86,35,253,193,88,35,253,193,90,35,253,193,92,35,253,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,193,96,33,253,193,98,33,253,193,100,33,253,193,102,33,253,193,104,33,253,193,106,33,253,193,108,33,253,193,110,33,253,193,112,33,253,193,114,33,253,193,116,33,253,193,118,33,253,193,120,33,253,193,122,33,253,193,124,33,253,193,126,33,253,193,128,33,253,193,130,33,253,193,132,33,253,193,134,33,253,193,136,33,253,193,172,32,253,193,138,33,253,193,140,33,253,193,142,33,253,193,144,33,253,193,146,33,253,193,148,33,253,193,150,33,253,193,152,33,253,193,154,33,253,193,156,33,253,193,158,33,253,193,160,33,253,193,162,33,253,193,164,33,253,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,193,38,33,253,193,16,34,253,193,18,34,253,193,20,34,253,193,172,33,253,193,174,33,253,193,176,33,253,193,178,33,253,193,180,33,253,193,182,33,253,193,184,33,253,193,186,33,253,193,188,33,253,193,160,34,253,193,162,34,253,193,164,34,253,193,166,34,253,193,168,34,253,193,170,34,253,193,172,34,253,193,174,34,253,193,176,34,253,193,178,34,253,193,180,34,253,193,182,34,253,193,184,34,253,193,186,34,253,193,188,34,253,193,190,34,253,193,180,35,253,193,182,35,253,193,184,35,253,193,186,35,253,193,188,35,253,193,156,36,253,193,158,36,253,193,22,34,253,193,24,34,253,193,26,34,253,193,28,34,253,193,30,34,253,193,32,34,253,193,192,34,253,193,194,34,253,193,196,34,253,193,198,34,253,193,200,34,253,193,202,34,253,193,204,34,253,193,206,34,253,193,208,34,253,193,210,34,253,193,212,34,253,193,214,34,253,193,216,34,253,193,218,34,253,193,220,34,253,193,222,34,253,193,224,34,253,193,226,34,253,193,228,34,253,193,230,34,253,193,232,34,253,193,234,34,253,193,236,34,253,193,238,34,253,193,240,34,253,193,242,34,253,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,193,158,34,253,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,193,244,34,253,193,246,34,253,193,248,34,253,193,250,34,253,193,252,34,253,193,254,34,253,193,2,35,253,193,4,35,253,193,6,35,253,193,8,35,253,193,10,35,253,193,12,35,253,193,14,35,253,193,16,35,253,193,18,35,253,193,20,35,253,193,22,35,253,193,24,35,253,193,26,35,253,193,28,35,253,193,30,35,253,193,32,35,253,193,34,35,253,193,36,35,253,193,38,35,253,193,40,35,253,193,42,35,253,193,44,35,253,193,46,35,253,193,48,35,253,193,50,35,253,193,52,35,253,193,54,35,253,193,56,35,253,193,58,35,253,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,193,62,35,253,193,42,36,253,193,44,36,253,193,46,36,253,193,48,36,253,193,50,36,253,193,30,37,253,193,32,37,253,193,34,37,253,193,232,37,253,193,234,37,253,193,236,37,253,193,238,37,253,193,164,38,253,193,166,38,253,193,168,38,253,193,54,39,253,193,56,39,253,193,156,39,253,193,64,40,253,193,108,40,253,193,110,40,253,193,112,40,253,193,154,40,253,193,180,40,253,193,230,40,253,193,18,41,253,193,20,41,253,193,84,41,253,193,86,41,253,193,88,41,253,193,90,41,253,193,94,35,253,193,64,36,253,193,66,36,253,193,68,36,253,193,70,36,253,193,72,36,253,193,74,36,253,193,76,36,253,193,78,36,253,193,80,36,253,193,82,36,253,193,58,37,253,193,60,37,253,193,62,37,253,193,64,37,253,193,66,37,253,193,242,37,253,193,244,37,253,193,246,37,253,193,248,37,253,193,250,37,253,193,252,37,253,193,254,37,253,193,2,38,253,193,4,38,253,193,178,38,253,193,180,38,253,193,182,38,253,193,184,38,253,193,186,38,253,193,62,39,253,193,64,39,253,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,193,94,36,253,193,96,36,253,193,98,36,253,193,100,36,253,193,102,36,253,193,104,36,253,193,106,36,253,193,108,36,253,193,110,36,253,193,112,36,253,193,114,36,253,193,116,36,253,193,118,36,253,193,120,36,253,193,122,36,253,193,124,36,253,193,126,36,253,193,128,36,253,193,130,36,253,193,132,36,253,193,134,36,253,193,136,36,253,193,138,36,253,193,140,36,253,193,142,36,253,193,144,36,253,193,146,36,253,193,148,36,253,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,193,88,36,253,193,90,36,253,193,92,36,253,193,68,37,253,193,70,37,253,193,6,38,253,193,188,38,253,193,190,38,253,193,192,38,253,193,174,39,253,193,204,40,253,193,236,40,253,193,238,40,253,193,34,41,253,193,36,41,253,193,38,41,253,193,40,41,253,193,42,41,253,193,44,41,253,193,114,41,253,193,116,41,253,193,118,41,253,193,120,41,253,193,122,41,253,193,124,41,253,193,126,41,253,193,128,41,253,193,130,41,253,193,132,41,253,193,134,41,253,193,136,41,253,193,138,41,253,193,150,36,253,193,152,36,253,193,154,36,253,193,72,37,253,193,74,37,253,193,76,37,253,193,78,37,253,193,80,37,253,193,82,37,253,193,84,37,253,193,86,37,253,193,88,37,253,193,90,37,253,193,92,37,253,193,94,37,253,193,96,37,253,193,98,37,253,193,100,37,253,193,102,37,253,193,104,37,253,193,106,37,253,193,108,37,253,193,110,37,253,193,112,37,253,193,114,37,253,193,116,37,253,193,118,37,253,193,120,37,253,193,122,37,253,193,124,37,253,193,126,37,253,193,8,38,253,193,160,36,253,193,162,36,253,193,164,36,253,193,128,37,253,193,130,37,253,193,132,37,253,193,134,37,253,193,136,37,253,193,138,37,253,193,140,37,253,193,142,37,253,193,68,38,253,193,70,38,253,193,72,38,253,193,74,38,253,193,76,38,253,193,78,38,253,193,80,38,253,193,240,38,253,193,242,38,253,193,244,38,253,193,246,38,253,193,248,38,253,193,250,38,253,193,252,38,253,193,94,39,253,193,96,39,253,193,98,39,253,193,100,39,253,193,102,39,253,193,104,39,253,193,192,39,253,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,193,240,37,253,193,170,38,253,193,172,38,253,193,174,38,253,193,176,38,253,193,58,39,253,193,60,39,253,193,158,39,253,193,160,39,253,193,162,39,253,193,164,39,253,193,166,39,253,193,168,39,253,193,4,40,253,193,6,40,253,193,8,40,253,193,66,40,253,193,114,40,253,193,186,40,253,193,188,40,253,193,232,40,253,193,234,40,253,193,24,41,253,193,26,41,253,193,28,41,253,193,30,41,253,193,32,41,253,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,193,82,38,253,193,84,38,253,193,10,38,253,193,12,38,253,193,14,38,253,193,16,38,253,193,18,38,253,193,20,38,253,193,22,38,253,193,24,38,253,193,26,38,253,193,28,38,253,193,30,38,253,193,32,38,253,193,34,38,253,193,194,38,253,193,36,38,253,193,38,38,253,193,40,38,253,193,42,38,253,193,44,38,253,193,46,38,253,193,48,38,253,193,50,38,253,193,52,38,253,193,54,38,253,193,56,38,253,193,58,38,253,193,60,38,253,193,62,38,253,193,64,38,253,193,196,38,253,193,198,38,253,193,200,38,253,193,86,38,253,193,88,38,253,193,90,38,253,193,92,38,253,193,94,38,253,193,96,38,253,193,98,38,253,193,100,38,253,193,102,38,253,193,104,38,253,193,106,38,253,193,108,38,253,193,110,38,253,193,112,38,253,193,114,38,253,193,116,38,253,193,118,38,253,193,120,38,253,193,122,38,253,193,124,38,253,193,126,38,253,193,128,38,253,193,130,38,253,193,132,38,253,193,134,38,253,193,136,38,253,193,138,38,253,193,140,38,253,193,142,38,253,193,144,38,253,193,146,38,253,193,148,38,253,193,150,38,253,193,152,38,253,193,154,38,253,193,156,38,253,193,158,38,253,193,160,38,253,193,162,38,253,193,254,38,253,193,2,39,253,193,4,39,253,193,6,39,253,193,8,39,253,193,10,39,253,193,12,39,253,193,14,39,253,193,16,39,253,193,18,39,253,193,20,39,253,193,22,39,253,193,24,39,253,193,26,39,253,193,28,39,253,193,30,39,253,193,32,39,253,193,34,39,253,193,36,39,253,193,38,39,253,193,40,39,253,193,42,39,253,193,44,39,253,193,46,39,253,193,48,39,253,193,202,38,253,193,204,38,253,193,206,38,253,193,208,38,253,193,210,38,253,193,212,38,253,193,214,38,253,193,216,38,253,193,218,38,253,193,220,38,253,193,222,38,253,193,224,38,253,193,226,38,253,193,228,38,253,193,230,38,253,193,232,38,253,193,234,38,253,193,236,38,253,193,238,38,253,193,72,39,253,193,74,39,253,193,76,39,253,193,78,39,253,193,80,39,253,193,82,39,253,193,84,39,253,193,86,39,253,193,88,39,253,193,90,39,253,193,92,39,253,193,176,39,253,193,178,39,253,193,50,39,253,193,52,39,253,193,106,39,253,193,108,39,253,193,110,39,253,193,112,39,253,193,114,39,253,193,116,39,253,193,118,39,253,193,120,39,253,193,122,39,253,193,124,39,253,193,126,39,253,193,128,39,253,193,130,39,253,193,132,39,253,193,134,39,253,193,198,39,253,193,136,39,253,193,138,39,253,193,140,39,253,193,142,39,253,193,144,39,253,193,146,39,253,193,148,39,253,193,150,39,253,193,152,39,253,193,154,39,253,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,193,66,39,253,193,68,39,253,193,70,39,253,193,170,39,253,193,172,39,253,193,10,40,253,193,12,40,253,193,68,40,253,193,138,40,253,193,34,42,253,193,92,43,253,193,144,43,253,193,196,43,253,193,220,43,253,193,232,43,253,193,254,43,253,193,18,44,253,193,68,44,253,193,132,44,253,193,170,44,253,193,172,44,253,193,228,44,253,193,18,45,253,193,40,45,253,193,70,45,253,193,80,45,253,193,128,45,253,193,182,45,253,193,214,45,253,193,216,45,253,193,218,45,253,193,8,46,253,193,180,39,253,193,182,39,253,193,184,39,253,193,186,39,253,193,188,39,253,193,190,39,253,193,14,40,253,193,16,40,253,193,18,40,253,193,20,40,253,193,22,40,253,193,24,40,253,193,26,40,253,193,28,40,253,193,30,40,253,193,32,40,253,193,34,40,253,193,70,40,253,193,72,40,253,193,74,40,253,193,76,40,253,193,78,40,253,193,80,40,253,193,116,40,253,193,118,40,253,193,120,40,253,193,140,40,253,193,142,40,253,193,156,40,253,193,158,40,253,193,160,40,253,193,182,40,253,193,194,39,253,193,196,39,253,193,36,40,253,193,16,41,253,193,190,41,253,193,94,42,253,193,234,42,253,193,236,42,253,193,34,43,253,193,146,43,253,193,164,43,253,193,172,43,253,193,198,43,253,193,200,43,253,193,226,43,253,193,236,43,253,193,30,44,253,193,44,44,253,193,80,44,253,193,92,44,253,193,110,44,253,193,120,44,253,193,142,44,253,193,156,44,253,193,158,44,253,193,160,44,253,193,182,44,253,193,208,44,253,193,210,44,253,193,212,44,253,193,214,44,253,193,216,44,253,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,193,84,40,253,193,86,40,253,193,88,40,253,193,90,40,253,193,92,40,253,193,94,40,253,193,96,40,253,193,98,40,253,193,100,40,253,193,102,40,253,193,104,40,253,193,106,40,253,193,122,40,253,193,124,40,253,193,126,40,253,193,128,40,253,193,130,40,253,193,132,40,253,193,134,40,253,193,136,40,253,193,144,40,253,193,146,40,253,193,148,40,253,193,150,40,253,193,152,40,253,193,162,40,253,193,164,40,253,193,192,40,253,193,194,40,253,193,196,40,253,193,198,40,253,193,200,40,253,193,202,40,253,193,206,40,253,193,208,40,253,193,210,40,253,193,212,40,253,193,214,40,253,193,216,40,253,193,218,40,253,193,220,40,253,193,222,40,253,193,224,40,253,193,226,40,253,193,228,40,253,193,240,40,253,193,242,40,253,193,244,40,253,193,246,40,253,193,248,40,253,193,250,40,253,193,252,40,253,193,254,40,253,193,2,41,253,193,4,41,253,193,6,41,253,193,8,41,253,193,10,41,253,193,12,41,253,193,14,41,253,193,46,41,253,193,48,41,253,193,50,41,253,193,52,41,253,193,54,41,253,193,56,41,253,193,58,41,253,193,60,41,253,193,62,41,253,193,64,41,253,193,66,41,253,193,68,41,253,193,70,41,253,193,72,41,253,193,74,41,253,193,76,41,253,193,78,41,253,193,80,41,253,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,193,92,41,253,193,94,41,253,193,192,41,253,193,194,41,253,193,196,41,253,193,198,41,253,193,200,41,253,193,8,42,253,193,10,42,253,193,12,42,253,193,14,42,253,193,96,42,253,193,98,42,253,193,100,42,253,193,102,42,253,193,186,42,253,193,188,42,253,193,190,42,253,193,192,42,253,193,194,42,253,193,196,42,253,193,238,42,253,193,240,42,253,193,242,42,253,193,244,42,253,193,36,43,253,193,38,43,253,193,70,43,253,193,72,43,253,193,110,43,253,193,124,43,253,193,140,43,253,193,98,41,253,193,100,41,253,193,102,41,253,193,104,41,253,193,106,41,253,193,108,41,253,193,110,41,253,193,112,41,253,193,202,41,253,193,204,41,253,193,206,41,253,193,208,41,253,193,210,41,253,193,212,41,253,193,214,41,253,193,216,41,253,193,218,41,253,193,220,41,253,193,222,41,253,193,224,41,253,193,16,42,253,193,18,42,253,193,20,42,253,193,22,42,253,193,24,42,253,193,26,42,253,193,28,42,253,193,30,42,253,193,32,42,253,193,108,42,253,193,110,42,253,193,112,42,253,193,140,41,253,193,142,41,253,193,226,41,253,193,228,41,253,193,230,41,253,193,232,41,253,193,234,41,253,193,36,42,253,193,38,42,253,193,40,42,253,193,42,42,253,193,44,42,253,193,46,42,253,193,48,42,253,193,50,42,253,193,52,42,253,193,128,42,253,193,130,42,253,193,132,42,253,193,134,42,253,193,136,42,253,193,138,42,253,193,140,42,253,193,142,42,253,193,144,42,253,193,10,43,253,193,12,43,253,193,14,43,253,193,16,43,253,193,18,43,253,193,20,43,253,193,22,43,253,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,193,236,41,253,193,238,41,253,193,240,41,253,193,242,41,253,193,244,41,253,193,246,41,253,193,248,41,253,193,250,41,253,193,252,41,253,193,254,41,253,193,2,42,253,193,4,42,253,193,6,42,253,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,193,146,42,253,193,148,42,253,193,150,42,253,193,152,42,253,193,154,42,253,193,156,42,253,193,158,42,253,193,160,42,253,193,162,42,253,193,164,42,253,193,166,42,253,193,168,42,253,193,170,42,253,193,172,42,253,193,174,42,253,193,176,42,253,193,178,42,253,193,180,42,253,193,182,42,253,193,184,42,253,193,216,42,253,193,104,42,253,193,106,42,253,193,246,42,253,193,222,66,253,193,204,76,253,193,116,77,253,193,160,77,253,193,206,78,253,193,62,83,253,193,64,83,253,193,224,85,253,193,132,88,253,193,64,90,253,193,208,90,253,193,212,94,253,193,104,98,253,193,38,102,253,193,12,108,253,193,104,114,253,193,138,114,253,193,230,114,253,193,232,114,253,193,108,115,253,193,110,115,253,193,4,116,253,193,6,116,253,193,8,116,253,193,10,116,253,193,124,116,253,193,250,116,253,193,94,117,253,193,96,117,253,193,114,42,253,193,116,42,253,193,118,42,253,193,120,42,253,193,122,42,253,193,124,42,253,193,126,42,253,193,198,42,253,193,200,42,253,193,202,42,253,193,204,42,253,193,206,42,253,193,208,42,253,193,210,42,253,193,212,42,253,193,214,42,253,193,248,42,253,193,250,42,253,193,252,42,253,193,254,42,253,193,2,43,253,193,4,43,253,193,6,43,253,193,8,43,253,193,40,43,253,193,42,43,253,193,44,43,253,193,46,43,253,193,48,43,253,193,74,43,253,193,76,43,253,193,78,43,253,193,218,42,253,193,220,42,253,193,222,42,253,193,224,42,253,193,226,42,253,193,228,42,253,193,230,42,253,193,232,42,253,193,24,43,253,193,26,43,253,193,28,43,253,193,30,43,253,193,32,43,253,193,58,43,253,193,60,43,253,193,62,43,253,193,64,43,253,193,66,43,253,193,68,43,253,193,104,43,253,193,106,43,253,193,108,43,253,193,150,43,253,193,160,43,253,193,170,43,253,193,180,43,253,193,182,43,253,193,184,43,253,193,212,43,253,193,224,43,253,193,234,43,253,193,24,44,253,193,50,43,253,193,52,43,253,193,54,43,253,193,56,43,253,193,94,43,253,193,96,43,253,193,98,43,253,193,100,43,253,193,102,43,253,193,118,43,253,193,120,43,253,193,122,43,253,193,134,43,253,193,136,43,253,193,138,43,253,193,154,43,253,193,168,43,253,193,208,43,253,193,210,43,253,193,222,43,253,193,2,44,253,193,20,44,253,193,22,44,253,193,94,44,253,193,118,44,253,193,134,44,253,193,136,44,253,193,152,44,253,193,174,44,253,193,206,44,253,193,254,44,253,193,20,45,253,193,80,43,253,193,82,43,253,193,84,43,253,193,86,43,253,193,88,43,253,193,90,43,253,193,112,43,253,193,114,43,253,193,116,43,253,193,126,43,253,193,128,43,253,193,130,43,253,193,132,43,253,193,142,43,253,193,148,43,253,193,152,43,253,193,156,43,253,193,158,43,253,193,206,43,253,193,252,43,253,193,16,44,253,193,40,44,253,193,116,44,253,193,150,44,253,193,38,45,253,193,60,45,253,193,88,45,253,193,126,45,253,193,178,45,253,193,180,45,253,193,46,46,253,193,48,46,253,193,166,43,253,193,194,43,253,193,250,43,253,193,204,44,253,193,16,45,253,193,122,45,253,193,176,45,253,193,42,46,253,193,44,46,253,193,134,46,253,193,54,47,253,193,182,47,253,193,48,48,253,193,84,48,253,193,210,48,253,193,244,48,253,193,246,48,253,193,248,48,253,193,74,49,253,193,76,49,253,193,222,49,253,193,224,49,253,193,100,50,253,193,196,50,253,193,198,50,253,193,200,50,253,193,76,51,253,193,78,51,253,193,198,51,253,193,200,51,253,193,202,51,253,193,24,52,253,193,4,44,253,193,6,44,253,193,8,44,253,193,10,44,253,193,12,44,253,193,14,44,253,193,32,44,253,193,34,44,253,193,36,44,253,193,38,44,253,193,46,44,253,193,52,44,253,193,54,44,253,193,56,44,253,193,58,44,253,193,60,44,253,193,62,44,253,193,64,44,253,193,66,44,253,193,70,44,253,193,72,44,253,193,74,44,253,193,76,44,253,193,84,44,253,193,86,44,253,193,88,44,253,193,96,44,253,193,102,44,253,193,104,44,253,193,106,44,253,193,112,44,253,193,114,44,253,193,26,44,253,193,28,44,253,193,42,44,253,193,48,44,253,193,78,44,253,193,82,44,253,193,90,44,253,193,98,44,253,193,100,44,253,193,108,44,253,193,138,44,253,193,140,44,253,193,176,44,253,193,178,44,253,193,180,44,253,193,230,44,253,193,2,45,253,193,46,45,253,193,94,45,253,193,102,45,253,193,108,45,253,193,112,45,253,193,118,45,253,193,134,45,253,193,146,45,253,193,148,45,253,193,150,45,253,193,152,45,253,193,154,45,253,193,156,45,253,193,184,45,253,193,186,45,253,193,232,44,253,193,234,44,253,193,236,44,253,193,64,45,253,193,96,45,253,193,136,45,253,193,158,45,253,193,160,45,253,193,192,45,253,193,232,45,253,193,52,46,253,193,54,46,253,193,56,46,253,193,110,46,253,193,112,46,253,193,188,46,253,193,208,46,253,193,210,46,253,193,238,46,253,193,250,46,253,193,18,47,253,193,20,47,253,193,60,47,253,193,62,47,253,193,64,47,253,193,66,47,253,193,100,47,253,193,102,47,253,193,192,47,253,193,230,47,253,193,232,47,253,193,18,48,253,193,246,44,253,193,248,44,253,193,250,44,253,193,6,45,253,193,8,45,253,193,10,45,253,193,12,45,253,193,14,45,253,193,252,44,253,193,22,45,253,193,24,45,253,193,26,45,253,193,28,45,253,193,30,45,253,193,32,45,253,193,34,45,253,193,36,45,253,193,48,45,253,193,50,45,253,193,52,45,253,193,54,45,253,193,56,45,253,193,58,45,253,193,66,45,253,193,68,45,253,193,72,45,253,193,74,45,253,193,76,45,253,193,78,45,253,193,82,45,253,193,84,45,253,193,86,45,253,193,42,45,253,193,44,45,253,193,62,45,253,193,90,45,253,193,130,45,253,193,132,45,253,193,220,45,253,193,96,46,253,193,98,46,253,193,100,46,253,193,142,46,253,193,144,46,253,193,146,46,253,193,148,46,253,193,182,46,253,193,236,46,253,193,32,47,253,193,216,48,253,193,4,49,253,193,100,49,253,193,102,49,253,193,104,49,253,193,106,49,253,193,108,49,253,193,110,49,253,193,112,49,253,193,114,49,253,193,116,49,253,193,244,49,253,193,246,49,253,193,248,49,253,193,250,49,253,193,92,45,253,193,98,45,253,193,100,45,253,193,104,45,253,193,106,45,253,193,110,45,253,193,120,45,253,193,114,45,253,193,116,45,253,193,124,45,253,193,138,45,253,193,140,45,253,193,142,45,253,193,144,45,253,193,162,45,253,193,164,45,253,193,166,45,253,193,168,45,253,193,170,45,253,193,172,45,253,193,174,45,253,193,194,45,253,193,196,45,253,193,198,45,253,193,200,45,253,193,202,45,253,193,204,45,253,193,206,45,253,193,208,45,253,193,210,45,253,193,212,45,253,193,234,45,253,193,188,45,253,193,190,45,253,193,222,45,253,193,224,45,253,193,226,45,253,193,228,45,253,193,230,45,253,193,12,46,253,193,14,46,253,193,16,46,253,193,18,46,253,193,102,46,253,193,104,46,253,193,106,46,253,193,108,46,253,193,150,46,253,193,152,46,253,193,154,46,253,193,156,46,253,193,158,46,253,193,184,46,253,193,186,46,253,193,222,46,253,193,206,46,253,193,36,47,253,193,44,47,253,193,46,47,253,193,48,47,253,193,56,47,253,193,58,47,253,193,88,47,253,193,90,47,253,193,236,45,253,193,238,45,253,193,240,45,253,193,242,45,253,193,244,45,253,193,246,45,253,193,248,45,253,193,250,45,253,193,252,45,253,193,254,45,253,193,2,46,253,193,4,46,253,193,6,46,253,193,20,46,253,193,22,46,253,193,24,46,253,193,26,46,253,193,28,46,253,193,30,46,253,193,32,46,253,193,34,46,253,193,36,46,253,193,38,46,253,193,40,46,253,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,193,10,46,253,193,136,46,253,193,138,46,253,193,140,46,253,193,204,46,253,193,42,47,253,193,84,47,253,193,86,47,253,193,140,47,253,193,142,47,253,193,224,47,253,193,50,48,253,193,152,48,253,193,214,48,253,193,250,48,253,193,252,48,253,193,254,48,253,193,2,49,253,193,86,49,253,193,88,49,253,193,90,49,253,193,92,49,253,193,94,49,253,193,96,49,253,193,98,49,253,193,228,49,253,193,230,49,253,193,232,49,253,193,234,49,253,193,236,49,253,193,238,49,253,193,240,49,253,193,50,46,253,193,90,46,253,193,92,46,253,193,94,46,253,193,178,46,253,193,180,46,253,193,234,46,253,193,248,46,253,193,184,47,253,193,8,48,253,193,116,48,253,193,118,48,253,193,150,48,253,193,176,48,253,193,212,48,253,193,78,49,253,193,80,49,253,193,82,49,253,193,84,49,253,193,226,49,253,193,102,50,253,193,104,50,253,193,202,50,253,193,204,50,253,193,206,50,253,193,208,50,253,193,210,50,253,193,80,51,253,193,82,51,253,193,84,51,253,193,86,51,253,193,88,51,253,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,193,114,46,253,193,116,46,253,193,118,46,253,193,120,46,253,193,122,46,253,193,124,46,253,193,126,46,253,193,128,46,253,193,130,46,253,193,132,46,253,193,160,46,253,193,162,46,253,193,164,46,253,193,166,46,253,193,168,46,253,193,170,46,253,193,172,46,253,193,174,46,253,193,176,46,253,193,190,46,253,193,192,46,253,193,194,46,253,193,196,46,253,193,198,46,253,193,200,46,253,193,202,46,253,193,212,46,253,193,214,46,253,193,216,46,253,193,218,46,253,193,220,46,253,193,224,46,253,193,226,46,253,193,228,46,253,193,230,46,253,193,232,46,253,193,240,46,253,193,242,46,253,193,244,46,253,193,246,46,253,193,252,46,253,193,254,46,253,193,2,47,253,193,4,47,253,193,8,47,253,193,10,47,253,193,12,47,253,193,6,47,253,193,14,47,253,193,16,47,253,193,22,47,253,193,24,47,253,193,26,47,253,193,28,47,253,193,30,47,253,193,34,47,253,193,38,47,253,193,40,47,253,193,50,47,253,193,52,47,253,193,68,47,253,193,70,47,253,193,72,47,253,193,74,47,253,193,76,47,253,193,78,47,253,193,80,47,253,193,82,47,253,193,104,47,253,193,106,47,253,193,108,47,253,193,110,47,253,193,112,47,253,193,114,47,253,193,116,47,253,193,118,47,253,193,120,47,253,193,122,47,253,193,124,47,253,193,126,47,253,193,128,47,253,193,130,47,253,193,132,47,253,193,134,47,253,193,136,47,253,193,138,47,253,193,158,47,253,193,160,47,253,193,92,47,253,193,94,47,253,193,96,47,253,193,98,47,253,193,144,47,253,193,146,47,253,193,148,47,253,193,150,47,253,193,152,47,253,193,154,47,253,193,156,47,253,193,186,47,253,193,188,47,253,193,190,47,253,193,226,47,253,193,228,47,253,193,10,48,253,193,12,48,253,193,14,48,253,193,16,48,253,193,52,48,253,193,54,48,253,193,56,48,253,193,86,48,253,193,88,48,253,193,90,48,253,193,120,48,253,193,184,48,253,193,186,48,253,193,190,48,253,193,192,48,253,193,194,48,253,193,162,47,253,193,164,47,253,193,166,47,253,193,168,47,253,193,170,47,253,193,172,47,253,193,174,47,253,193,176,47,253,193,178,47,253,193,180,47,253,193,194,47,253,193,196,47,253,193,198,47,253,193,200,47,253,193,202,47,253,193,204,47,253,193,206,47,253,193,208,47,253,193,210,47,253,193,212,47,253,193,214,47,253,193,216,47,253,193,218,47,253,193,220,47,253,193,222,47,253,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,193,20,48,253,193,22,48,253,193,24,48,253,193,26,48,253,193,28,48,253,193,30,48,253,193,32,48,253,193,34,48,253,193,36,48,253,193,38,48,253,193,40,48,253,193,6,48,253,193,42,48,253,193,44,48,253,193,46,48,253,193,60,48,253,193,62,48,253,193,64,48,253,193,66,48,253,193,68,48,253,193,70,48,253,193,72,48,253,193,74,48,253,193,76,48,253,193,78,48,253,193,80,48,253,193,58,48,253,193,92,48,253,193,94,48,253,193,122,48,253,193,124,48,253,193,126,48,253,193,128,48,253,193,26,49,253,193,28,49,253,193,156,49,253,193,158,49,253,193,160,49,253,193,162,49,253,193,164,49,253,193,166,49,253,193,168,49,253,193,24,50,253,193,26,50,253,193,28,50,253,193,146,50,253,193,148,50,253,193,150,50,253,193,12,51,253,193,14,51,253,193,16,51,253,193,18,51,253,193,20,51,253,193,22,51,253,193,24,51,253,193,26,51,253,193,28,51,253,193,30,51,253,193,82,48,253,193,96,48,253,193,98,48,253,193,100,48,253,193,102,48,253,193,104,48,253,193,130,48,253,193,106,48,253,193,108,48,253,193,110,48,253,193,112,48,253,193,114,48,253,193,132,48,253,193,134,48,253,193,136,48,253,193,138,48,253,193,154,48,253,193,140,48,253,193,142,48,253,193,144,48,253,193,146,48,253,193,148,48,253,193,156,48,253,193,158,48,253,193,160,48,253,193,162,48,253,193,164,48,253,193,166,48,253,193,168,48,253,193,170,48,253,193,172,48,253,193,174,48,253,193,178,48,253,193,180,48,253,193,182,48,253,193,188,48,253,193,198,48,253,193,200,48,253,193,202,48,253,193,204,48,253,193,206,48,253,193,208,48,253,193,226,48,253,193,228,48,253,193,230,48,253,193,232,48,253,193,234,48,253,193,236,48,253,193,238,48,253,193,240,48,253,193,242,48,253,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,193,196,48,253,193,218,48,253,193,220,48,253,193,222,48,253,193,224,48,253,193,6,49,253,193,8,49,253,193,10,49,253,193,12,49,253,193,14,49,253,193,16,49,253,193,18,49,253,193,20,49,253,193,22,49,253,193,24,49,253,193,118,49,253,193,120,49,253,193,122,49,253,193,124,49,253,193,126,49,253,193,128,49,253,193,130,49,253,193,132,49,253,193,134,49,253,193,136,49,253,193,138,49,253,193,140,49,253,193,142,49,253,193,144,49,253,193,146,49,253,193,148,49,253,193,150,49,253,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,193,170,49,253,193,172,49,253,193,174,49,253,193,176,49,253,193,178,49,253,193,180,49,253,193,182,49,253,193,184,49,253,193,186,49,253,193,188,49,253,193,190,49,253,193,192,49,253,193,194,49,253,193,196,49,253,193,198,49,253,193,200,49,253,193,202,49,253,193,204,49,253,193,206,49,253,193,208,49,253,193,210,49,253,193,212,49,253,193,214,49,253,193,152,49,253,193,154,49,253,193,252,49,253,193,254,49,253,193,2,50,253,193,4,50,253,193,6,50,253,193,8,50,253,193,10,50,253,193,12,50,253,193,14,50,253,193,16,50,253,193,18,50,253,193,20,50,253,193,22,50,253,193,124,50,253,193,126,50,253,193,128,50,253,193,130,50,253,193,132,50,253,193,134,50,253,193,136,50,253,193,138,50,253,193,140,50,253,193,142,50,253,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,193,216,49,253,193,218,49,253,193,220,49,253,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,193,242,49,253,193,106,50,253,193,108,50,253,193,110,50,253,193,112,50,253,193,212,50,253,193,214,50,253,193,216,50,253,193,218,50,253,193,220,50,253,193,222,50,253,193,90,51,253,193,92,51,253,193,94,51,253,193,96,51,253,193,98,51,253,193,100,51,253,193,102,51,253,193,104,51,253,193,106,51,253,193,108,51,253,193,210,51,253,193,212,51,253,193,214,51,253,193,216,51,253,193,218,51,253,193,34,52,253,193,36,52,253,193,38,52,253,193,40,52,253,193,130,52,253,193,132,52,253,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,193,152,50,253,193,154,50,253,193,156,50,253,193,158,50,253,193,160,50,253,193,162,50,253,193,164,50,253,193,166,50,253,193,168,50,253,193,170,50,253,193,172,50,253,193,174,50,253,193,176,50,253,193,178,50,253,193,180,50,253,193,182,50,253,193,184,50,253,193,186,50,253,193,188,50,253,193,190,50,253,193,192,50,253,193,194,50,253,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,193,114,50,253,193,116,50,253,193,118,50,253,193,120,50,253,193,122,50,253,193,224,50,253,193,110,51,253,193,112,51,253,193,114,51,253,193,220,51,253,193,42,52,253,193,44,52,253,193,46,52,253,193,136,52,253,193,138,52,253,193,140,52,253,193,142,52,253,193,228,52,253,193,230,52,253,193,232,52,253,193,234,52,253,193,236,52,253,193,238,52,253,193,240,52,253,193,80,53,253,193,82,53,253,193,84,53,253,193,134,53,253,193,184,53,253,193,186,53,253,193,214,53,253,193,216,53,253,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,193,116,51,253,193,118,51,253,193,120,51,253,193,122,51,253,193,124,51,253,193,126,51,253,193,128,51,253,193,130,51,253,193,132,51,253,193,222,51,253,193,224,51,253,193,226,51,253,193,228,51,253,193,230,51,253,193,232,51,253,193,234,51,253,193,236,51,253,193,48,52,253,193,50,52,253,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,193,134,51,253,193,136,51,253,193,138,51,253,193,140,51,253,193,142,51,253,193,238,51,253,193,240,51,253,193,62,52,253,193,158,52,253,193,248,52,253,193,94,53,253,193,140,53,253,193,58,54,253,193,98,54,253,193,100,54,253,193,122,54,253,193,124,54,253,193,198,54,253,193,226,54,253,193,242,54,253,193,244,54,253,193,60,55,253,193,124,55,253,193,126,55,253,193,128,55,253,193,180,55,253,193,182,55,253,193,184,55,253,193,186,55,253,193,22,56,253,193,24,56,253,193,26,56,253,193,204,51,253,193,206,51,253,193,208,51,253,193,28,52,253,193,30,52,253,193,32,52,253,193,126,52,253,193,128,52,253,193,214,52,253,193,28,53,253,193,66,53,253,193,68,53,253,193,70,53,253,193,72,53,253,193,126,53,253,193,128,53,253,193,130,53,253,193,164,53,253,193,200,53,253,193,248,53,253,193,28,54,253,193,30,54,253,193,32,54,253,193,60,54,253,193,74,54,253,193,110,54,253,193,128,54,253,193,130,54,253,193,132,54,253,193,134,54,253,193,148,54,253,193,180,54,253,193,26,52,253,193,124,52,253,193,212,52,253,193,122,53,253,193,124,53,253,193,162,53,253,193,24,54,253,193,26,54,253,193,72,54,253,193,108,54,253,193,126,54,253,193,168,54,253,193,178,54,253,193,218,54,253,193,234,54,253,193,10,55,253,193,48,55,253,193,238,55,253,193,90,56,253,193,198,56,253,193,200,56,253,193,54,57,253,193,56,57,253,193,58,57,253,193,152,57,253,193,154,57,253,193,156,57,253,193,248,57,253,193,250,57,253,193,62,58,253,193,144,58,253,193,146,58,253,193,68,52,253,193,70,52,253,193,72,52,253,193,74,52,253,193,76,52,253,193,78,52,253,193,80,52,253,193,82,52,253,193,84,52,253,193,86,52,253,193,88,52,253,193,90,52,253,193,92,52,253,193,94,52,253,193,96,52,253,193,98,52,253,193,100,52,253,193,102,52,253,193,104,52,253,193,106,52,253,193,108,52,253,193,110,52,253,193,112,52,253,193,114,52,253,193,116,52,253,193,118,52,253,193,120,52,253,193,122,52,253,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,193,134,52,253,193,216,52,253,193,218,52,253,193,220,52,253,193,222,52,253,193,224,52,253,193,226,52,253,193,30,53,253,193,32,53,253,193,74,53,253,193,76,53,253,193,78,53,253,193,132,53,253,193,166,53,253,193,194,53,253,193,196,53,253,193,198,53,253,193,32,55,253,193,92,55,253,193,160,55,253,193,246,55,253,193,248,55,253,193,98,56,253,193,100,56,253,193,206,56,253,193,208,56,253,193,68,57,253,193,70,57,253,193,6,58,253,193,74,58,253,193,76,58,253,193,214,58,253,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,193,44,53,253,193,46,53,253,193,48,53,253,193,50,53,253,193,52,53,253,193,54,53,253,193,56,53,253,193,58,53,253,193,60,53,253,193,62,53,253,193,64,53,253,193,96,53,253,193,98,53,253,193,100,53,253,193,102,53,253,193,104,53,253,193,106,53,253,193,108,53,253,193,110,53,253,193,112,53,253,193,114,53,253,193,116,53,253,193,118,53,253,193,142,53,253,193,144,53,253,193,120,53,253,193,146,53,253,193,148,53,253,193,150,53,253,193,152,53,253,193,154,53,253,193,156,53,253,193,158,53,253,193,160,53,253,193,170,53,253,193,172,53,253,193,174,53,253,193,176,53,253,193,180,53,253,193,182,53,253,193,188,53,253,193,190,53,253,193,192,53,253,193,246,53,253,193,22,54,253,193,70,54,253,193,102,54,253,193,104,54,253,193,106,54,253,193,158,54,253,193,192,54,253,193,194,54,253,193,196,54,253,193,206,54,253,193,208,54,253,193,212,54,253,193,214,54,253,193,216,54,253,193,208,53,253,193,210,53,253,193,212,53,253,193,220,53,253,193,222,53,253,193,224,53,253,193,226,53,253,193,228,53,253,193,230,53,253,193,232,53,253,193,234,53,253,193,236,53,253,193,238,53,253,193,240,53,253,193,242,53,253,193,244,53,253,193,252,53,253,193,254,53,253,193,2,54,253,193,4,54,253,193,6,54,253,193,8,54,253,193,10,54,253,193,12,54,253,193,14,54,253,193,16,54,253,193,18,54,253,193,20,54,253,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,193,218,53,253,193,250,53,253,193,34,54,253,193,112,54,253,193,114,54,253,193,116,54,253,193,136,54,253,193,138,54,253,193,150,54,253,193,152,54,253,193,154,54,253,193,170,54,253,193,176,54,253,193,182,54,253,193,184,54,253,193,238,54,253,193,82,55,253,193,162,55,253,193,250,55,253,193,102,56,253,193,104,56,253,193,210,56,253,193,212,56,253,193,214,56,253,193,162,57,253,193,164,57,253,193,8,58,253,193,78,58,253,193,80,58,253,193,82,58,253,193,152,58,253,193,216,58,253,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,193,62,54,253,193,64,54,253,193,66,54,253,193,68,54,253,193,76,54,253,193,78,54,253,193,80,54,253,193,82,54,253,193,84,54,253,193,86,54,253,193,88,54,253,193,90,54,253,193,92,54,253,193,94,54,253,193,96,54,253,193,118,54,253,193,120,54,253,193,140,54,253,193,142,54,253,193,144,54,253,193,146,54,253,193,156,54,253,193,160,54,253,193,162,54,253,193,164,54,253,193,166,54,253,193,172,54,253,193,174,54,253,193,186,54,253,193,190,54,253,193,200,54,253,193,202,54,253,193,204,54,253,193,220,54,253,193,222,54,253,193,224,54,253,193,240,54,253,193,12,55,253,193,14,55,253,193,16,55,253,193,34,55,253,193,84,55,253,193,86,55,253,193,94,55,253,193,96,55,253,193,98,55,253,193,100,55,253,193,118,55,253,193,120,55,253,193,122,55,253,193,164,55,253,193,166,55,253,193,168,55,253,193,170,55,253,193,172,55,253,193,174,55,253,193,176,55,253,193,188,54,253,193,210,54,253,193,236,54,253,193,30,55,253,193,72,55,253,193,158,55,253,193,240,55,253,193,242,55,253,193,244,55,253,193,92,56,253,193,94,56,253,193,96,56,253,193,202,56,253,193,204,56,253,193,60,57,253,193,62,57,253,193,64,57,253,193,66,57,253,193,158,57,253,193,160,57,253,193,252,57,253,193,254,57,253,193,2,58,253,193,4,58,253,193,64,58,253,193,66,58,253,193,68,58,253,193,70,58,253,193,72,58,253,193,148,58,253,193,150,58,253,193,212,58,253,193,228,54,253,193,230,54,253,193,232,54,253,193,246,54,253,193,248,54,253,193,250,54,253,193,252,54,253,193,254,54,253,193,2,55,253,193,4,55,253,193,6,55,253,193,8,55,253,193,18,55,253,193,20,55,253,193,22,55,253,193,24,55,253,193,26,55,253,193,28,55,253,193,36,55,253,193,38,55,253,193,40,55,253,193,42,55,253,193,44,55,253,193,46,55,253,193,50,55,253,193,52,55,253,193,54,55,253,193,56,55,253,193,58,55,253,193,62,55,253,193,64,55,253,193,66,55,253,193,68,55,253,193,70,55,253,193,74,55,253,193,76,55,253,193,78,55,253,193,80,55,253,193,88,55,253,193,90,55,253,193,104,55,253,193,106,55,253,193,108,55,253,193,110,55,253,193,112,55,253,193,114,55,253,193,116,55,253,193,130,55,253,193,132,55,253,193,134,55,253,193,136,55,253,193,138,55,253,193,140,55,253,193,142,55,253,193,144,55,253,193,146,55,253,193,148,55,253,193,150,55,253,193,152,55,253,193,154,55,253,193,156,55,253,193,188,55,253,193,190,55,253,193,192,55,253,193,194,55,253,193,196,55,253,193,198,55,253,193,200,55,253,193,202,55,253,193,204,55,253,193,206,55,253,193,208,55,253,193,210,55,253,193,212,55,253,193,214,55,253,193,216,55,253,193,218,55,253,193,220,55,253,193,222,55,253,193,224,55,253,193,226,55,253,193,228,55,253,193,230,55,253,193,232,55,253,193,234,55,253,193,236,55,253,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,193,252,55,253,193,254,55,253,193,2,56,253,193,4,56,253,193,6,56,253,193,8,56,253,193,10,56,253,193,12,56,253,193,14,56,253,193,16,56,253,193,18,56,253,193,20,56,253,193,106,56,253,193,108,56,253,193,110,56,253,193,112,56,253,193,114,56,253,193,116,56,253,193,118,56,253,193,120,56,253,193,122,56,253,193,216,56,253,193,218,56,253,193,220,56,253,193,222,56,253,193,224,56,253,193,226,56,253,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,193,28,56,253,193,30,56,253,193,32,56,253,193,34,56,253,193,36,56,253,193,124,56,253,193,126,56,253,193,128,56,253,193,130,56,253,193,132,56,253,193,134,56,253,193,228,56,253,193,230,56,253,193,232,56,253,193,234,56,253,193,236,56,253,193,238,56,253,193,240,56,253,193,242,56,253,193,92,57,253,193,94,57,253,193,96,57,253,193,98,57,253,193,100,57,253,193,102,57,253,193,172,57,253,193,174,57,253,193,176,57,253,193,178,57,253,193,12,58,253,193,14,58,253,193,16,58,253,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,193,104,57,253,193,106,57,253,193,108,57,253,193,110,57,253,193,112,57,253,193,114,57,253,193,116,57,253,193,118,57,253,193,120,57,253,193,122,57,253,193,124,57,253,193,126,57,253,193,128,57,253,193,130,57,253,193,132,57,253,193,52,57,253,193,134,57,253,193,180,57,253,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,193,166,57,253,193,168,57,253,193,170,57,253,193,10,58,253,193,154,58,253,193,156,58,253,193,158,58,253,193,160,58,253,193,162,58,253,193,218,58,253,193,254,58,253,193,2,59,253,193,44,59,253,193,78,59,253,193,84,59,253,193,94,59,253,193,120,59,253,193,122,59,253,193,124,59,253,193,126,59,253,193,190,59,253,193,192,59,253,193,194,59,253,193,2,61,253,193,196,59,253,193,198,59,253,193,200,59,253,193,136,57,253,193,138,57,253,193,140,57,253,193,142,57,253,193,144,57,253,193,146,57,253,193,148,57,253,193,150,57,253,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,193,20,58,253,193,22,58,253,193,24,58,253,193,26,58,253,193,28,58,253,193,30,58,253,193,32,58,253,193,34,58,253,193,36,58,253,193,38,58,253,193,40,58,253,193,42,58,253,193,44,58,253,193,46,58,253,193,48,58,253,193,50,58,253,193,52,58,253,193,54,58,253,193,56,58,253,193,58,58,253,193,60,58,253,193,96,58,253,193,98,58,253,193,18,58,253,193,84,58,253,193,86,58,253,193,88,58,253,193,90,58,253,193,92,58,253,193,94,58,253,193,164,58,253,193,220,58,253,193,222,58,253,193,224,58,253,193,226,58,253,193,4,59,253,193,22,59,253,193,24,59,253,193,26,59,253,193,46,59,253,193,60,59,253,193,66,59,253,193,96,59,253,193,98,59,253,193,128,59,253,193,130,59,253,193,212,59,253,193,214,59,253,193,216,59,253,193,218,59,253,193,220,59,253,193,222,59,253,193,224,59,253,193,226,59,253,193,126,60,253,193,100,58,253,193,102,58,253,193,104,58,253,193,106,58,253,193,108,58,253,193,110,58,253,193,112,58,253,193,114,58,253,193,116,58,253,193,118,58,253,193,120,58,253,193,122,58,253,193,124,58,253,193,126,58,253,193,128,58,253,193,130,58,253,193,132,58,253,193,134,58,253,193,136,58,253,193,138,58,253,193,140,58,253,193,142,58,253,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,193,228,58,253,193,230,58,253,193,232,58,253,193,234,58,253,193,236,58,253,193,238,58,253,193,240,58,253,193,242,58,253,193,244,58,253,193,246,58,253,193,248,58,253,193,250,58,253,193,6,59,253,193,8,59,253,193,10,59,253,193,12,59,253,193,14,59,253,193,16,59,253,193,18,59,253,193,252,58,253,193,118,59,253,193,184,59,253,193,186,59,253,193,188,59,253,193,66,60,253,193,68,60,253,193,70,60,253,193,184,61,253,193,186,61,253,193,188,61,253,193,190,61,253,193,192,61,253,193,194,61,253,193,196,61,253,193,198,61,253,193,136,62,253,193,138,62,253,193,140,62,253,193,142,62,253,193,122,63,253,193,124,63,253,193,126,63,253,193,128,63,253,193,130,63,253,193,132,63,253,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,193,20,59,253,193,28,59,253,193,30,59,253,193,32,59,253,193,34,59,253,193,36,59,253,193,38,59,253,193,40,59,253,193,48,59,253,193,50,59,253,193,52,59,253,193,54,59,253,193,56,59,253,193,58,59,253,193,62,59,253,193,64,59,253,193,68,59,253,193,70,59,253,193,72,59,253,193,74,59,253,193,76,59,253,193,80,59,253,193,82,59,253,193,86,59,253,193,88,59,253,193,90,59,253,193,100,59,253,193,102,59,253,193,104,59,253,193,106,59,253,193,108,59,253,193,110,59,253,193,42,59,253,193,92,59,253,193,116,59,253,193,172,59,253,193,174,59,253,193,176,59,253,193,178,59,253,193,180,59,253,193,182,59,253,193,54,60,253,193,56,60,253,193,58,60,253,193,60,60,253,193,62,60,253,193,64,60,253,193,240,60,253,193,242,60,253,193,244,60,253,193,246,60,253,193,248,60,253,193,250,60,253,193,252,60,253,193,254,60,253,193,180,61,253,193,182,61,253,193,122,62,253,193,124,62,253,193,126,62,253,193,128,62,253,193,130,62,253,193,132,62,253,193,134,62,253,193,112,59,253,193,132,59,253,193,134,59,253,193,136,59,253,193,138,59,253,193,140,59,253,193,142,59,253,193,144,59,253,193,146,59,253,193,148,59,253,193,150,59,253,193,152,59,253,193,154,59,253,193,156,59,253,193,158,59,253,193,160,59,253,193,162,59,253,193,164,59,253,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,193,114,59,253,193,168,59,253,193,170,59,253,193,44,60,253,193,46,60,253,193,48,60,253,193,50,60,253,193,52,60,253,193,232,60,253,193,234,60,253,193,236,60,253,193,238,60,253,193,168,61,253,193,170,61,253,193,172,61,253,193,174,61,253,193,176,61,253,193,178,61,253,193,114,62,253,193,116,62,253,193,118,62,253,193,120,62,253,193,80,63,253,193,82,63,253,193,84,63,253,193,86,63,253,193,88,63,253,193,90,63,253,206,32,94,0,206,32,94,0,206,32,94,0,206,32,94,0,193,166,59,253,193,38,60,253,193,40,60,253,193,42,60,253,193,226,60,253,193,228,60,253,193,230,60,253,193,158,61,253,193,160,61,253,193,162,61,253,193,164,61,253,193,166,61,253,193,108,62,253,193,110,62,253,193,112,62,253,193,70,63,253,193,72,63,253,193,74,63,253,193,76,63,253,193,78,63,253,193,50,64,253,193,52,64,253,193,54,64,253,193,56,64,253,193,58,64,253,193,24,65,253,193,26,65,253,193,28,65,253,193,6,66,253,193,8,66,253,193,10,66,253,193,12,66,253,193,202,59,253,193,204,59,253,193,206,59,253,193,208,59,253,193,210,59,253,193,72,60,253,193,74,60,253,193,76,60,253,193,78,60,253,193,80,60,253,193,82,60,253,193,84,60,253,193,86,60,253,193,88,60,253,193,90,60,253,193,92,60,253,193,94,60,253,193,96,60,253,193,98,60,253,193,100,60,253,193,102,60,253,193,104,60,253,193,106,60,253,193,108,60,253,193,110,60,253,193,112,60,253,193,114,60,253,193,116,60,253,193,118,60,253,193,120,60,253,193,122,60,253,193,4,61,253,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,193,6,61,253,193,8,61,253,193,10,61,253,193,12,61,253,193,14,61,253,193,16,61,253,193,18,61,253,193,20,61,253,193,22,61,253,193,24,61,253,193,26,61,253,193,28,61,253,193,30,61,253,193,32,61,253,193,34,61,253,193,36,61,253,193,38,61,253,193,40,61,253,193,42,61,253,193,44,61,253,193,46,61,253,193,124,60,253,193,48,61,253,193,50,61,253,193,52,61,253,193,54,61,253,193,56,61,253,193,58,61,253,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,193,128,60,253,193,130,60,253,193,132,60,253,193,134,60,253,193,136,60,253,193,138,60,253,193,140,60,253,193,142,60,253,193,144,60,253,193,146,60,253,193,148,60,253,193,150,60,253,193,152,60,253,193,154,60,253,193,60,61,253,193,62,61,253,193,64,61,253,193,66,61,253,193,68,61,253,193,70,61,253,193,238,61,253,193,240,61,253,193,242,61,253,193,244,61,253,193,246,61,253,193,248,61,253,193,250,61,253,193,252,61,253,193,210,62,253,193,254,61,253,193,212,62,253,193,214,62,253,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,193,134,63,253,193,200,62,253,193,202,62,253,193,204,62,253,193,206,62,253,193,136,63,253,193,138,63,253,193,140,63,253,193,142,63,253,193,144,63,253,193,146,63,253,193,148,63,253,193,150,63,253,193,152,63,253,193,154,63,253,193,208,62,253,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,193,216,62,253,193,218,62,253,193,220,62,253,193,222,62,253,193,224,62,253,193,226,62,253,193,228,62,253,193,230,62,253,193,232,62,253,193,234,62,253,193,236,62,253,193,238,62,253,193,240,62,253,193,178,63,253,193,180,63,253,193,182,63,253,193,184,63,253,193,186,63,253,193,188,63,253,193,190,63,253,193,192,63,253,193,194,63,253,193,196,63,253,193,166,64,253,193,168,64,253,193,170,64,253,193,172,64,253,193,174,64,253,193,176,64,253,193,178,64,253,193,108,65,253,193,110,65,253,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,193,198,63,253,193,200,63,253,193,68,63,253,193,92,63,253,193,94,63,253,193,96,63,253,193,98,63,253,193,100,63,253,193,102,63,253,193,104,63,253,193,106,63,253,193,108,63,253,193,110,63,253,193,112,63,253,193,114,63,253,193,116,63,253,193,118,63,253,193,120,63,253,193,76,64,253,193,78,64,253,193,80,64,253,193,82,64,253,193,84,64,253,193,86,64,253,193,88,64,253,193,90,64,253,193,92,64,253,193,94,64,253,193,96,64,253,193,98,64,253,193,100,64,253,193,102,64,253,193,104,64,253,193,106,64,253,193,108,64,253,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,193,138,64,253,193,140,64,253,193,142,64,253,193,144,64,253,193,146,64,253,193,148,64,253,193,150,64,253,193,152,64,253,193,154,64,253,193,156,64,253,193,158,64,253,193,160,64,253,193,162,64,253,193,164,64,253,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,193,180,64,253,193,182,64,253,193,184,64,253,193,186,64,253,193,188,64,253,193,190,64,253,193,192,64,253,193,194,64,253,193,196,64,253,193,198,64,253,193,200,64,253,193,202,64,253,193,204,64,253,206,32,94,0,206,32,94,0,206,32,94,0,206,32,94,0,193,30,65,253,193,32,65,253,193,34,65,253,193,36,65,253,193,38,65,253,193,40,65,253,193,14,66,253,193,16,66,253,193,18,66,253,193,20,66,253,193,22,66,253,193,24,66,253,193,26,66,253,193,224,66,253,193,226,66,253,193,228,66,253,193,230,66,253,193,110,67,253,193,112,67,253,193,114,67,253,193,194,67,253,193,16,68,253,193,78,68,253,193,80,68,253,193,122,68,253,193,196,68,253,193,212,68,253,193,220,68,253,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,193,60,65,253,193,62,65,253,193,50,66,253,193,242,66,253,193,244,66,253,193,246,66,253,193,248,66,253,193,250,66,253,193,122,67,253,193,124,67,253,193,126,67,253,193,206,67,253,193,208,67,253,193,210,67,253,193,28,68,253,193,30,68,253,193,166,68,253,193,198,68,253,193,46,69,253,193,94,69,253,193,96,69,253,193,98,69,253,193,4,70,253,193,6,70,253,193,206,64,253,193,208,64,253,193,210,64,253,193,212,64,253,193,214,64,253,193,216,64,253,193,218,64,253,193,220,64,253,193,222,64,253,193,224,64,253,193,226,64,253,193,228,64,253,193,230,64,253,193,232,64,253,193,234,64,253,193,236,64,253,193,238,64,253,193,240,64,253,193,242,64,253,193,244,64,253,193,246,64,253,193,248,64,253,193,250,64,253,193,252,64,253,193,254,64,253,193,2,65,253,193,4,65,253,193,6,65,253,193,8,65,253,193,10,65,253,193,12,65,253,193,14,65,253,193,16,65,253,193,18,65,253,193,20,65,253,193,118,65,253,193,22,65,253,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,193,42,65,253,193,44,65,253,193,46,65,253,193,48,65,253,193,50,65,253,193,52,65,253,193,54,65,253,193,56,65,253,193,58,65,253,193,28,66,253,193,30,66,253,193,32,66,253,193,34,66,253,193,36,66,253,193,38,66,253,193,40,66,253,193,42,66,253,193,44,66,253,193,46,66,253,193,48,66,253,193,232,66,253,193,234,66,253,193,236,66,253,193,238,66,253,193,240,66,253,193,116,67,253,193,118,67,253,193,120,67,253,193,196,67,253,193,198,67,253,193,200,67,253,193,202,67,253,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,193,52,66,253,193,54,66,253,193,56,66,253,193,58,66,253,193,60,66,253,193,62,66,253,193,104,65,253,193,64,66,253,193,66,66,253,193,68,66,253,193,70,66,253,193,72,66,253,193,74,66,253,193,76,66,253,193,78,66,253,193,80,66,253,193,82,66,253,193,84,66,253,193,86,66,253,193,88,66,253,193,90,66,253,193,92,66,253,193,94,66,253,193,96,66,253,193,106,65,253,193,252,66,253,193,254,66,253,193,2,67,253,193,4,67,253,193,6,67,253,193,8,67,253,193,10,67,253,193,12,67,253,193,14,67,253,193,128,67,253,193,130,67,253,193,132,67,253,193,134,67,253,193,136,67,253,193,138,67,253,193,212,67,253,193,214,67,253,193,216,67,253,193,218,67,253,193,220,67,253,193,222,67,253,193,224,67,253,193,32,68,253,193,34,68,253,193,36,68,253,193,38,68,253,193,40,68,253,193,42,68,253,193,92,68,253,193,94,68,253,193,96,68,253,193,112,65,253,193,114,65,253,193,116,65,253,193,98,66,253,193,100,66,253,193,102,66,253,193,104,66,253,193,106,66,253,193,16,67,253,193,18,67,253,193,140,67,253,193,142,67,253,193,226,67,253,193,44,68,253,193,46,68,253,193,100,68,253,193,138,68,253,193,202,68,253,193,50,69,253,193,52,69,253,193,54,69,253,193,56,69,253,193,58,69,253,193,104,69,253,193,106,69,253,193,108,69,253,193,110,69,253,193,214,69,253,193,14,70,253,193,52,70,253,193,54,70,253,193,120,70,253,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,193,108,66,253,193,110,66,253,193,112,66,253,193,114,66,253,193,116,66,253,193,118,66,253,193,120,66,253,193,122,66,253,193,124,66,253,193,126,66,253,193,128,66,253,193,130,66,253,193,132,66,253,193,134,66,253,193,136,66,253,193,138,66,253,193,4,66,253,193,140,66,253,193,142,66,253,193,144,66,253,193,146,66,253,193,148,66,253,193,150,66,253,193,152,66,253,193,154,66,253,193,156,66,253,193,158,66,253,193,160,66,253,193,162,66,253,193,164,66,253,193,166,66,253,193,168,66,253,193,170,66,253,193,172,66,253,193,174,66,253,193,176,66,253,193,178,66,253,193,180,66,253,193,182,66,253,193,184,66,253,193,186,66,253,193,188,66,253,193,190,66,253,193,192,66,253,193,194,66,253,193,196,66,253,193,198,66,253,193,200,66,253,193,202,66,253,193,204,66,253,193,206,66,253,193,208,66,253,193,210,66,253,193,212,66,253,193,214,66,253,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,193,216,66,253,193,218,66,253,193,220,66,253,193,102,67,253,193,104,67,253,193,106,67,253,193,108,67,253,193,190,67,253,193,192,67,253,193,76,68,253,193,144,69,253,193,146,69,253,193,190,69,253,193,80,70,253,193,82,70,253,193,108,70,253,193,150,70,253,193,172,70,253,193,38,71,253,193,146,71,253,193,22,72,253,193,24,72,253,193,248,72,253,193,250,72,253,193,252,72,253,193,138,73,253,193,34,74,253,193,36,74,253,193,152,74,253,193,154,74,253,193,254,74,253,193,2,75,253,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,193,144,67,253,193,146,67,253,193,148,67,253,193,150,67,253,193,152,67,253,193,154,67,253,193,156,67,253,193,158,67,253,193,160,67,253,193,162,67,253,193,164,67,253,193,166,67,253,193,168,67,253,193,170,67,253,193,172,67,253,193,174,67,253,193,176,67,253,193,178,67,253,193,180,67,253,193,182,67,253,193,184,67,253,193,186,67,253,193,188,67,253,193,228,67,253,193,230,67,253,193,232,67,253,193,234,67,253,193,236,67,253,193,238,67,253,193,240,67,253,193,242,67,253,193,244,67,253,193,246,67,253,193,248,67,253,193,250,67,253,193,252,67,253,193,254,67,253,193,2,68,253,193,4,68,253,193,6,68,253,193,8,68,253,193,10,68,253,193,12,68,253,193,14,68,253,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,193,204,67,253,193,18,68,253,193,20,68,253,193,22,68,253,193,24,68,253,193,26,68,253,193,82,68,253,193,84,68,253,193,86,68,253,193,88,68,253,193,90,68,253,193,124,68,253,193,126,68,253,193,184,68,253,193,254,68,253,193,44,69,253,193,92,69,253,193,150,69,253,193,152,69,253,193,154,69,253,193,156,69,253,193,158,69,253,193,192,69,253,193,194,69,253,193,196,69,253,193,198,69,253,193,174,70,253,193,176,70,253,193,178,70,253,193,204,70,253,193,212,70,253,193,40,71,253,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,193,102,68,253,193,104,68,253,193,106,68,253,193,108,68,253,193,110,68,253,193,112,68,253,193,114,68,253,193,116,68,253,193,118,68,253,193,120,68,253,193,140,68,253,193,142,68,253,193,144,68,253,193,146,68,253,193,148,68,253,193,150,68,253,193,152,68,253,193,154,68,253,193,156,68,253,193,158,68,253,193,160,68,253,193,162,68,253,193,164,68,253,193,172,68,253,193,174,68,253,193,176,68,253,193,178,68,253,193,180,68,253,193,98,68,253,193,128,68,253,193,130,68,253,193,132,68,253,193,134,68,253,193,136,68,253,193,168,68,253,193,170,68,253,193,200,68,253,193,186,68,253,193,188,68,253,193,230,68,253,193,242,68,253,193,2,69,253,193,4,69,253,193,6,69,253,193,48,69,253,193,100,69,253,193,102,69,253,193,160,69,253,193,162,69,253,193,164,69,253,193,200,69,253,193,202,69,253,193,204,69,253,193,206,69,253,193,208,69,253,193,210,69,253,193,212,69,253,193,10,70,253,193,12,70,253,193,50,70,253,193,182,68,253,193,190,68,253,193,192,68,253,193,194,68,253,193,204,68,253,193,206,68,253,193,208,68,253,193,210,68,253,193,214,68,253,193,216,68,253,193,218,68,253,193,222,68,253,193,224,68,253,193,226,68,253,193,228,68,253,193,232,68,253,193,234,68,253,193,236,68,253,193,240,68,253,193,244,68,253,193,246,68,253,193,248,68,253,193,250,68,253,193,252,68,253,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,193,238,68,253,193,42,69,253,193,90,69,253,193,148,69,253,193,244,69,253,193,246,69,253,193,248,69,253,193,250,69,253,193,252,69,253,193,254,69,253,193,2,70,253,193,38,70,253,193,84,70,253,193,86,70,253,193,88,70,253,193,110,70,253,193,152,70,253,193,148,71,253,193,26,72,253,193,28,72,253,193,30,72,253,193,148,72,253,193,140,73,253,193,142,73,253,193,38,74,253,193,40,74,253,193,156,74,253,193,4,75,253,193,6,75,253,193,8,75,253,193,148,75,253,193,240,75,253,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,193,60,69,253,193,62,69,253,193,64,69,253,193,66,69,253,193,68,69,253,193,70,69,253,193,72,69,253,193,74,69,253,193,76,69,253,193,78,69,253,193,80,69,253,193,82,69,253,193,84,69,253,193,86,69,253,193,88,69,253,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,193,166,69,253,193,168,69,253,193,170,69,253,193,172,69,253,193,174,69,253,193,176,69,253,193,178,69,253,193,180,69,253,193,182,69,253,193,184,69,253,193,186,69,253,193,188,69,253,193,216,69,253,193,218,69,253,193,220,69,253,193,222,69,253,193,224,69,253,193,226,69,253,193,228,69,253,193,230,69,253,193,232,69,253,193,234,69,253,193,236,69,253,193,238,69,253,193,240,69,253,193,242,69,253,193,16,70,253,193,18,70,253,193,20,70,253,193,22,70,253,193,56,70,253,193,24,70,253,193,26,70,253,193,28,70,253,193,30,70,253,193,32,70,253,193,34,70,253,193,36,70,253,193,58,70,253,193,60,70,253,193,62,70,253,193,64,70,253,193,66,70,253,193,68,70,253,193,70,70,253,193,72,70,253,193,74,70,253,193,76,70,253,193,78,70,253,193,96,70,253,193,98,70,253,193,100,70,253,193,102,70,253,193,104,70,253,193,106,70,253,193,122,70,253,193,8,70,253,193,40,70,253,193,42,70,253,193,44,70,253,193,46,70,253,193,48,70,253,193,90,70,253,193,154,70,253,193,222,70,253,193,224,70,253,193,42,71,253,193,44,71,253,193,162,71,253,193,46,72,253,193,48,72,253,193,50,72,253,193,52,72,253,193,160,72,253,193,4,73,253,193,162,73,253,193,164,73,253,193,166,73,253,193,168,73,253,193,170,73,253,193,172,73,253,193,174,73,253,193,176,73,253,193,48,74,253,193,50,74,253,193,52,74,253,193,54,74,253,193,164,74,253,193,92,70,253,193,94,70,253,193,112,70,253,193,114,70,253,193,116,70,253,193,118,70,253,193,156,70,253,193,180,70,253,193,206,70,253,193,216,70,253,193,218,70,253,193,220,70,253,193,226,70,253,193,228,70,253,193,250,70,253,193,252,70,253,193,254,70,253,193,2,71,253,193,4,71,253,193,6,71,253,193,8,71,253,193,10,71,253,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,193,124,70,253,193,126,70,253,193,128,70,253,193,130,70,253,193,132,70,253,193,134,70,253,193,136,70,253,193,138,70,253,193,140,70,253,193,142,70,253,193,144,70,253,193,146,70,253,193,148,70,253,193,160,70,253,193,162,70,253,193,164,70,253,193,166,70,253,193,168,70,253,193,170,70,253,193,182,70,253,193,184,70,253,193,186,70,253,193,188,70,253,193,190,70,253,193,192,70,253,193,194,70,253,193,196,70,253,193,200,70,253,193,202,70,253,193,208,70,253,193,210,70,253,193,214,70,253,193,158,70,253,193,198,70,253,193,230,70,253,193,232,70,253,193,234,70,253,193,12,71,253,193,74,71,253,193,76,71,253,193,78,71,253,193,80,71,253,193,82,71,253,193,84,71,253,193,86,71,253,193,88,71,253,193,90,71,253,193,216,71,253,193,218,71,253,193,220,71,253,193,222,71,253,193,86,72,253,193,88,72,253,193,90,72,253,193,92,72,253,193,94,72,253,193,180,72,253,193,182,72,253,193,184,72,253,193,186,72,253,193,52,73,253,193,54,73,253,193,56,73,253,193,58,73,253,193,236,70,253,193,238,70,253,193,240,70,253,193,242,70,253,193,244,70,253,193,246,70,253,193,248,70,253,193,14,71,253,193,16,71,253,193,18,71,253,193,20,71,253,193,22,71,253,193,24,71,253,193,26,71,253,193,28,71,253,193,30,71,253,193,32,71,253,193,34,71,253,193,36,71,253,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,193,164,71,253,193,166,71,253,193,168,71,253,193,170,71,253,193,172,71,253,193,174,71,253,193,176,71,253,193,178,71,253,193,180,71,253,193,54,72,253,193,182,71,253,193,184,71,253,193,186,71,253,193,188,71,253,193,190,71,253,193,192,71,253,193,194,71,253,193,196,71,253,193,198,71,253,193,200,71,253,193,202,71,253,193,204,71,253,193,206,71,253,193,208,71,253,193,210,71,253,193,212,71,253,193,56,72,253,193,58,72,253,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,193,150,71,253,193,152,71,253,193,154,71,253,193,156,71,253,193,158,71,253,193,160,71,253,193,32,72,253,193,34,72,253,193,36,72,253,193,38,72,253,193,40,72,253,193,42,72,253,193,44,72,253,193,150,72,253,193,152,72,253,193,154,72,253,193,156,72,253,193,158,72,253,193,254,72,253,193,2,73,253,193,144,73,253,193,146,73,253,193,148,73,253,193,150,73,253,193,152,73,253,193,154,73,253,193,156,73,253,193,158,73,253,193,160,73,253,193,42,74,253,193,44,74,253,193,46,74,253,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,193,96,72,253,193,98,72,253,193,100,72,253,193,102,72,253,193,104,72,253,193,106,72,253,193,108,72,253,193,110,72,253,193,112,72,253,193,114,72,253,193,116,72,253,193,118,72,253,193,120,72,253,193,122,72,253,193,124,72,253,193,126,72,253,193,128,72,253,193,130,72,253,193,132,72,253,193,134,72,253,193,136,72,253,193,138,72,253,193,140,72,253,193,142,72,253,193,60,72,253,193,62,72,253,193,64,72,253,193,66,72,253,193,68,72,253,193,70,72,253,193,72,72,253,193,74,72,253,193,76,72,253,193,78,72,253,193,80,72,253,193,82,72,253,193,84,72,253,193,162,72,253,193,164,72,253,193,166,72,253,193,168,72,253,193,170,72,253,193,172,72,253,193,174,72,253,193,176,72,253,193,178,72,253,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,193,144,72,253,193,146,72,253,193,188,72,253,193,190,72,253,193,192,72,253,193,194,72,253,193,196,72,253,193,198,72,253,193,200,72,253,193,202,72,253,193,204,72,253,193,206,72,253,193,208,72,253,193,210,72,253,193,212,72,253,193,214,72,253,193,216,72,253,193,218,72,253,193,220,72,253,193,222,72,253,193,224,72,253,193,226,72,253,193,228,72,253,193,230,72,253,193,232,72,253,193,234,72,253,193,236,72,253,193,238,72,253,193,240,72,253,193,242,72,253,193,244,72,253,193,246,72,253,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,193,178,73,253,193,180,73,253,193,182,73,253,193,184,73,253,193,186,73,253,193,188,73,253,193,190,73,253,193,192,73,253,193,194,73,253,193,196,73,253,193,198,73,253,193,200,73,253,193,202,73,253,193,204,73,253,193,206,73,253,193,208,73,253,193,56,74,253,193,58,74,253,193,60,74,253,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,193,210,73,253,193,212,73,253,193,214,73,253,193,216,73,253,193,218,73,253,193,74,74,253,193,76,74,253,193,78,74,253,193,80,74,253,193,82,74,253,193,84,74,253,193,188,74,253,193,190,74,253,193,192,74,253,193,194,74,253,193,196,74,253,193,198,74,253,193,200,74,253,193,34,75,253,193,36,75,253,193,38,75,253,193,40,75,253,193,98,75,253,193,168,75,253,193,170,75,253,193,172,75,253,193,210,75,253,193,212,75,253,193,26,76,253,193,54,76,253,193,70,76,253,193,90,76,253,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,193,62,74,253,193,64,74,253,193,66,74,253,193,68,74,253,193,70,74,253,193,72,74,253,193,172,74,253,193,174,74,253,193,176,74,253,193,178,74,253,193,180,74,253,193,182,74,253,193,184,74,253,193,18,75,253,193,20,75,253,193,22,75,253,193,24,75,253,193,26,75,253,193,28,75,253,193,30,75,253,193,32,75,253,193,86,75,253,193,88,75,253,193,90,75,253,193,92,75,253,193,94,75,253,193,96,75,253,193,158,75,253,193,160,75,253,193,162,75,253,193,164,75,253,193,166,75,253,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,193,158,74,253,193,160,74,253,193,162,74,253,193,10,75,253,193,12,75,253,193,14,75,253,193,72,75,253,193,74,75,253,193,76,75,253,193,150,75,253,193,152,75,253,193,154,75,253,193,194,75,253,193,196,75,253,193,198,75,253,193,200,75,253,193,244,75,253,193,246,75,253,193,248,75,253,193,158,76,253,193,210,76,253,193,254,76,253,193,24,77,253,193,96,77,253,193,98,77,253,193,164,77,253,193,166,77,253,193,6,78,253,193,20,78,253,193,80,78,253,193,134,78,253,193,160,78,253,193,166,74,253,193,168,74,253,193,170,74,253,193,16,75,253,193,78,75,253,193,80,75,253,193,82,75,253,193,84,75,253,193,156,75,253,193,202,75,253,193,250,75,253,193,252,75,253,193,52,76,253,193,66,76,253,193,94,76,253,193,104,76,253,193,108,76,253,193,110,76,253,193,124,76,253,193,126,76,253,193,128,76,253,193,130,76,253,193,160,76,253,193,162,76,253,193,164,76,253,193,166,76,253,193,168,76,253,193,170,76,253,206,64,96,0,206,64,96,0,206,64,96,0,206,64,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,193,42,75,253,193,44,75,253,193,46,75,253,193,48,75,253,193,50,75,253,193,52,75,253,193,54,75,253,193,56,75,253,193,58,75,253,193,60,75,253,193,62,75,253,193,64,75,253,193,66,75,253,193,68,75,253,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,193,70,75,253,193,146,75,253,193,192,75,253,193,96,76,253,193,120,76,253,193,122,76,253,193,148,76,253,193,150,76,253,193,198,76,253,193,200,76,253,193,202,76,253,193,246,76,253,193,248,76,253,193,14,77,253,193,46,77,253,193,48,77,253,193,50,77,253,193,52,77,253,193,86,77,253,193,88,77,253,193,114,77,253,193,128,77,253,193,130,77,253,193,146,77,253,193,158,77,253,193,176,77,253,193,216,77,253,193,238,77,253,193,240,77,253,193,108,78,253,193,184,78,253,193,22,79,253,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,193,174,75,253,193,176,75,253,193,178,75,253,193,180,75,253,193,182,75,253,193,184,75,253,193,186,75,253,193,188,75,253,193,190,75,253,193,214,75,253,193,216,75,253,193,218,75,253,193,220,75,253,193,222,75,253,193,224,75,253,193,226,75,253,193,228,75,253,193,230,75,253,193,232,75,253,193,234,75,253,193,236,75,253,193,238,75,253,193,4,76,253,193,6,76,253,193,78,86,253,193,124,86,253,193,126,86,253,193,128,86,253,193,130,86,253,193,132,86,253,193,134,86,253,193,136,86,253,193,138,86,253,193,140,86,253,193,142,86,253,193,144,86,253,193,146,86,253,193,148,86,253,193,150,86,253,193,152,86,253,193,154,86,253,193,156,86,253,193,158,86,253,193,160,86,253,193,162,86,253,193,164,86,253,193,166,86,253,193,198,86,253,193,200,86,253,193,202,86,253,193,204,86,253,193,206,86,253,193,144,75,253,193,208,86,253,193,210,86,253,193,212,86,253,193,204,75,253,193,206,75,253,193,208,75,253,193,254,75,253,193,2,76,253,193,68,76,253,193,100,76,253,193,102,76,253,193,106,76,253,193,112,76,253,193,114,76,253,193,116,76,253,193,132,76,253,193,134,76,253,193,136,76,253,193,138,76,253,193,140,76,253,193,172,76,253,193,174,76,253,193,176,76,253,193,178,76,253,193,180,76,253,193,182,76,253,193,184,76,253,193,186,76,253,193,188,76,253,193,190,76,253,193,192,76,253,206,96,96,0,206,96,96,0,206,96,96,0,206,96,96,0,193,242,75,253,193,152,76,253,193,154,76,253,193,156,76,253,193,206,76,253,193,208,76,253,193,250,76,253,193,252,76,253,193,16,77,253,193,18,77,253,193,20,77,253,193,22,77,253,193,54,77,253,193,90,77,253,193,92,77,253,193,94,77,253,193,118,77,253,193,120,77,253,193,132,77,253,193,134,77,253,193,162,77,253,193,172,77,253,193,192,77,253,193,218,77,253,193,220,77,253,193,222,77,253,193,4,78,253,193,120,78,253,193,208,78,253,193,164,79,253,193,166,79,253,193,168,79,253,193,8,76,253,193,10,76,253,193,12,76,253,193,14,76,253,193,16,76,253,193,18,76,253,193,20,76,253,193,22,76,253,193,24,76,253,193,28,76,253,193,30,76,253,193,32,76,253,193,34,76,253,193,36,76,253,193,38,76,253,193,40,76,253,193,42,76,253,193,44,76,253,193,46,76,253,193,48,76,253,193,50,76,253,193,56,76,253,193,58,76,253,193,60,76,253,193,62,76,253,193,72,76,253,193,78,76,253,193,74,76,253,193,80,76,253,193,64,76,253,193,76,76,253,193,82,76,253,193,84,76,253,193,86,76,253,193,88,76,253,193,92,76,253,193,98,76,253,193,144,76,253,193,146,76,253,193,196,76,253,193,244,76,253,193,144,77,253,193,184,77,253,193,188,77,253,193,190,77,253,193,194,77,253,193,196,77,253,193,200,77,253,193,202,77,253,193,204,77,253,193,212,77,253,193,214,77,253,193,230,77,253,193,232,77,253,193,234,77,253,193,236,77,253,193,250,77,253,193,252,77,253,193,254,77,253,193,2,78,253,193,12,78,253,193,14,78,253,193,16,78,253,193,18,78,253,193,118,76,253,193,142,76,253,193,194,76,253,193,10,78,253,193,100,78,253,193,140,78,253,193,150,78,253,193,154,78,253,193,168,78,253,193,170,78,253,193,238,78,253,193,240,78,253,193,88,79,253,193,90,79,253,193,92,79,253,193,94,79,253,193,218,79,253,193,220,79,253,193,116,80,253,193,118,80,253,193,120,80,253,193,122,80,253,193,124,80,253,193,126,80,253,193,128,80,253,193,18,81,253,193,20,81,253,193,22,81,253,193,178,81,253,193,180,81,253,193,182,81,253,193,184,81,253,206,64,96,0,206,64,96,0,206,64,96,0,206,64,96,0,193,2,77,253,193,4,77,253,193,6,77,253,193,26,77,253,193,28,77,253,193,56,77,253,193,58,77,253,193,60,77,253,193,62,77,253,193,64,77,253,193,66,77,253,193,68,77,253,193,70,77,253,193,72,77,253,193,100,77,253,193,102,77,253,193,104,77,253,193,106,77,253,193,122,77,253,193,124,77,253,193,136,77,253,193,138,77,253,193,148,77,253,193,150,77,253,193,152,77,253,193,154,77,253,193,156,77,253,193,168,77,253,206,96,96,0,206,96,96,0,206,96,96,0,206,96,96,0,193,8,77,253,193,10,77,253,193,12,77,253,193,30,77,253,193,32,77,253,193,34,77,253,193,36,77,253,193,38,77,253,193,40,77,253,193,42,77,253,193,44,77,253,193,74,77,253,193,76,77,253,193,78,77,253,193,80,77,253,193,82,77,253,193,84,77,253,193,108,77,253,193,110,77,253,193,112,77,253,193,126,77,253,193,140,77,253,193,142,77,253,193,186,77,253,193,208,77,253,193,210,77,253,193,224,77,253,193,226,77,253,193,170,77,253,193,174,77,253,193,178,77,253,193,180,77,253,193,182,77,253,193,198,77,253,193,206,77,253,193,242,77,253,193,22,78,253,193,52,78,253,193,82,78,253,193,96,78,253,193,114,78,253,193,148,78,253,193,210,78,253,193,30,79,253,193,32,79,253,193,34,79,253,193,36,79,253,193,38,79,253,193,176,79,253,193,178,79,253,193,68,80,253,193,206,80,253,193,208,80,253,193,210,80,253,193,212,80,253,193,132,81,253,193,134,81,253,193,136,81,253,193,100,82,253,193,102,82,253,193,228,77,253,193,244,77,253,193,246,77,253,193,248,77,253,193,8,78,253,193,24,78,253,193,26,78,253,193,28,78,253,193,30,78,253,193,32,78,253,193,34,78,253,193,54,78,253,193,72,78,253,193,84,78,253,193,98,78,253,193,110,78,253,193,128,78,253,193,136,78,253,193,138,78,253,193,152,78,253,193,164,78,253,193,176,78,253,193,178,78,253,193,182,78,253,193,186,78,253,193,188,78,253,193,190,78,253,193,192,78,253,193,194,78,253,193,196,78,253,193,214,78,253,193,216,78,253,193,122,78,253,193,124,78,253,193,126,78,253,193,130,78,253,193,132,78,253,193,142,78,253,193,144,78,253,193,146,78,253,193,156,78,253,193,158,78,253,193,166,78,253,193,172,78,253,193,174,78,253,193,198,78,253,193,200,78,253,193,202,78,253,193,204,78,253,193,242,78,253,193,244,78,253,193,246,78,253,193,248,78,253,193,250,78,253,193,252,78,253,193,254,78,253,193,2,79,253,193,4,79,253,193,6,79,253,193,8,79,253,193,10,79,253,193,12,79,253,193,14,79,253,193,16,79,253,193,162,78,253,193,24,79,253,193,26,79,253,193,28,79,253,193,172,79,253,193,174,79,253,193,50,80,253,193,52,80,253,193,54,80,253,193,56,80,253,193,58,80,253,193,60,80,253,193,62,80,253,193,64,80,253,193,66,80,253,193,200,80,253,193,202,80,253,193,204,80,253,193,124,81,253,193,126,81,253,193,128,81,253,193,130,81,253,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,193,218,78,253,193,220,78,253,193,222,78,253,193,224,78,253,193,226,78,253,193,228,78,253,193,230,78,253,193,232,78,253,193,234,78,253,193,236,78,253,193,40,79,253,193,42,79,253,193,44,79,253,193,46,79,253,193,48,79,253,193,50,79,253,193,52,79,253,193,54,79,253,193,56,79,253,193,58,79,253,193,60,79,253,193,62,79,253,193,64,79,253,193,66,79,253,193,68,79,253,193,70,79,253,193,72,79,253,193,74,79,253,193,76,79,253,193,78,79,253,193,80,79,253,193,82,79,253,193,18,79,253,193,20,79,253,193,96,79,253,193,98,79,253,193,100,79,253,193,102,79,253,193,104,79,253,193,106,79,253,193,108,79,253,193,110,79,253,193,112,79,253,193,114,79,253,193,116,79,253,193,118,79,253,193,120,79,253,193,122,79,253,193,124,79,253,193,126,79,253,193,128,79,253,193,130,79,253,193,132,79,253,193,134,79,253,193,136,79,253,193,138,79,253,193,140,79,253,193,142,79,253,193,144,79,253,193,146,79,253,193,148,79,253,193,150,79,253,193,152,79,253,193,154,79,253,193,180,79,253,193,182,79,253,193,184,79,253,193,186,79,253,193,188,79,253,193,190,79,253,193,192,79,253,193,194,79,253,193,196,79,253,193,198,79,253,193,200,79,253,193,202,79,253,193,84,79,253,193,204,79,253,193,206,79,253,193,208,79,253,193,210,79,253,193,212,79,253,193,214,79,253,193,216,79,253,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,193,156,79,253,193,158,79,253,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,193,160,79,253,193,162,79,253,193,38,80,253,193,40,80,253,193,42,80,253,193,194,80,253,193,100,81,253,193,102,81,253,193,104,81,253,193,106,81,253,193,108,81,253,193,34,82,253,193,36,82,253,193,38,82,253,193,40,82,253,193,42,82,253,193,44,82,253,193,46,82,253,193,48,82,253,193,48,83,253,193,50,83,253,193,52,83,253,193,54,83,253,193,56,83,253,193,58,83,253,193,60,83,253,193,230,83,253,193,232,83,253,193,234,83,253,193,236,83,253,193,146,84,253,193,148,84,253,193,170,79,253,193,44,80,253,193,46,80,253,193,48,80,253,193,196,80,253,193,198,80,253,193,110,81,253,193,112,81,253,193,114,81,253,193,116,81,253,193,118,81,253,193,120,81,253,193,122,81,253,193,50,82,253,193,52,82,253,193,54,82,253,193,56,82,253,193,58,82,253,193,60,82,253,193,66,83,253,193,68,83,253,193,70,83,253,193,72,83,253,193,74,83,253,193,76,83,253,193,78,83,253,193,238,83,253,193,240,83,253,193,242,83,253,193,244,83,253,193,246,83,253,193,248,83,253,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,193,138,81,253,193,140,81,253,193,142,81,253,193,144,81,253,193,146,81,253,193,148,81,253,193,150,81,253,193,152,81,253,193,154,81,253,193,156,81,253,193,158,81,253,193,160,81,253,193,162,81,253,193,164,81,253,193,166,81,253,193,168,81,253,193,170,81,253,193,172,81,253,193,174,81,253,193,176,81,253,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,193,186,81,253,193,172,82,253,193,140,83,253,193,142,83,253,193,144,83,253,193,146,83,253,193,46,84,253,193,48,84,253,193,50,84,253,193,52,84,253,193,230,84,253,193,232,84,253,193,234,84,253,193,236,84,253,193,152,85,253,193,24,86,253,193,26,86,253,193,122,86,253,193,70,87,253,193,106,87,253,193,136,87,253,193,200,87,253,193,202,87,253,193,204,87,253,193,66,88,253,193,68,88,253,193,70,88,253,193,206,88,253,193,208,88,253,193,210,88,253,193,212,88,253,193,214,88,253,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,193,174,82,253,193,4,82,253,193,6,82,253,193,8,82,253,193,10,82,253,193,12,82,253,193,14,82,253,193,16,82,253,193,18,82,253,193,20,82,253,193,22,82,253,193,24,82,253,193,26,82,253,193,28,82,253,193,30,82,253,193,176,82,253,193,178,82,253,193,180,82,253,193,32,82,253,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,193,80,83,253,193,82,83,253,193,84,83,253,193,86,83,253,193,88,83,253,193,90,83,253,193,92,83,253,193,94,83,253,193,96,83,253,193,98,83,253,193,100,83,253,193,102,83,253,193,104,83,253,193,250,83,253,193,252,83,253,193,254,83,253,193,2,84,253,193,4,84,253,193,6,84,253,193,8,84,253,193,176,84,253,193,178,84,253,193,180,84,253,193,104,82,253,193,106,82,253,193,108,82,253,193,110,82,253,193,112,82,253,193,114,82,253,193,106,83,253,193,108,83,253,193,110,83,253,193,10,84,253,193,12,84,253,193,14,84,253,193,16,84,253,193,18,84,253,193,200,84,253,193,202,84,253,193,204,84,253,193,206,84,253,193,124,85,253,193,126,85,253,193,128,85,253,193,130,85,253,193,10,86,253,193,12,86,253,193,14,86,253,193,16,86,253,193,18,86,253,193,230,86,253,193,52,87,253,193,94,87,253,193,96,87,253,193,166,87,253,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,193,148,83,253,193,150,83,253,193,152,83,253,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,193,20,84,253,193,22,84,253,193,24,84,253,193,26,84,253,193,28,84,253,193,30,84,253,193,32,84,253,193,34,84,253,193,36,84,253,193,38,84,253,193,40,84,253,193,42,84,253,193,208,84,253,193,44,84,253,193,210,84,253,193,212,84,253,193,214,84,253,193,216,84,253,193,218,84,253,193,220,84,253,193,222,84,253,193,224,84,253,193,226,84,253,193,132,85,253,193,134,85,253,193,136,85,253,193,154,83,253,193,156,83,253,193,158,83,253,193,160,83,253,193,162,83,253,193,164,83,253,193,166,83,253,193,168,83,253,193,170,83,253,193,172,83,253,193,174,83,253,193,176,83,253,193,178,83,253,193,180,83,253,193,182,83,253,193,184,83,253,193,186,83,253,193,188,83,253,193,190,83,253,193,192,83,253,193,194,83,253,193,196,83,253,193,198,83,253,193,200,83,253,193,202,83,253,193,204,83,253,193,206,83,253,193,208,83,253,193,210,83,253,193,212,83,253,193,214,83,253,193,216,83,253,193,218,83,253,193,220,83,253,193,222,83,253,193,224,83,253,193,226,83,253,193,228,83,253,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,193,150,84,253,193,152,84,253,193,154,84,253,193,156,84,253,193,80,85,253,193,82,85,253,193,84,85,253,193,86,85,253,193,88,85,253,193,90,85,253,193,92,85,253,193,222,85,253,193,82,86,253,193,84,86,253,193,86,86,253,193,88,86,253,193,168,86,253,193,170,86,253,193,12,87,253,193,14,87,253,193,16,87,253,193,18,87,253,193,40,87,253,193,160,87,253,193,10,88,253,193,12,88,253,193,128,88,253,193,130,88,253,193,24,89,253,193,164,89,253,193,166,89,253,193,168,89,253,193,158,84,253,193,160,84,253,193,162,84,253,193,164,84,253,193,166,84,253,193,168,84,253,193,170,84,253,193,172,84,253,193,174,84,253,193,94,85,253,193,96,85,253,193,98,85,253,193,100,85,253,193,102,85,253,193,104,85,253,193,106,85,253,193,108,85,253,193,226,85,253,193,228,85,253,193,230,85,253,193,232,85,253,193,234,85,253,193,236,85,253,193,238,85,253,193,240,85,253,193,242,85,253,193,244,85,253,193,246,85,253,206,64,98,0,206,64,98,0,206,64,98,0,206,64,98,0,193,182,84,253,193,184,84,253,193,186,84,253,193,188,84,253,193,190,84,253,193,192,84,253,193,194,84,253,193,196,84,253,193,198,84,253,193,110,85,253,193,112,85,253,193,114,85,253,193,116,85,253,193,118,85,253,193,120,85,253,193,122,85,253,193,248,85,253,193,250,85,253,193,252,85,253,193,254,85,253,193,2,86,253,193,4,86,253,193,6,86,253,193,8,86,253,193,106,86,253,193,108,86,253,193,110,86,253,193,112,86,253,193,114,86,253,193,186,86,253,193,188,86,253,193,190,86,253,193,138,85,253,193,140,85,253,193,142,85,253,193,144,85,253,193,146,85,253,193,148,85,253,193,228,84,253,193,20,86,253,193,22,86,253,193,150,85,253,193,116,86,253,193,118,86,253,193,120,86,253,193,196,86,253,193,232,86,253,193,54,87,253,193,56,87,253,193,98,87,253,193,102,87,253,193,104,87,253,193,116,87,253,193,118,87,253,193,120,87,253,193,122,87,253,193,124,87,253,193,126,87,253,193,128,87,253,193,130,87,253,193,132,87,253,193,134,87,253,193,170,87,253,193,172,87,253,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,193,28,86,253,193,30,86,253,193,32,86,253,193,34,86,253,193,36,86,253,193,38,86,253,193,40,86,253,193,42,86,253,193,44,86,253,193,46,86,253,193,48,86,253,193,50,86,253,193,52,86,253,193,54,86,253,193,56,86,253,193,58,86,253,193,60,86,253,193,62,86,253,193,64,86,253,193,66,86,253,193,68,86,253,193,70,86,253,193,72,86,253,193,74,86,253,193,76,86,253,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,193,80,86,253,193,132,137,253,193,134,137,253,193,136,137,253,193,138,137,253,193,140,137,253,193,142,137,253,193,144,137,253,193,146,137,253,193,148,137,253,193,150,137,253,193,152,137,253,193,154,137,253,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,64,98,0,206,64,98,0,206,64,98,0,206,64,98,0,193,172,86,253,193,174,86,253,193,176,86,253,193,178,86,253,193,180,86,253,193,182,86,253,193,184,86,253,193,218,86,253,193,220,86,253,193,222,86,253,193,224,86,253,193,42,87,253,193,44,87,253,193,46,87,253,193,48,87,253,193,112,87,253,193,114,87,253,193,14,88,253,193,16,88,253,193,134,88,253,193,136,88,253,193,138,88,253,193,26,89,253,193,28,89,253,193,30,89,253,193,32,89,253,193,170,89,253,193,172,89,253,193,192,86,253,193,194,86,253,193,226,86,253,193,228,86,253,193,20,87,253,193,22,87,253,193,24,87,253,193,50,87,253,193,86,87,253,193,90,87,253,193,162,87,253,193,164,87,253,193,18,88,253,193,20,88,253,193,22,88,253,193,140,88,253,193,142,88,253,193,144,88,253,193,146,88,253,193,148,88,253,193,150,88,253,193,152,88,253,193,154,88,253,193,34,89,253,193,36,89,253,193,38,89,253,193,40,89,253,193,184,89,253,193,186,89,253,193,78,90,253,193,80,90,253,193,82,90,253,193,214,86,253,193,216,86,253,193,234,86,253,193,236,86,253,193,238,86,253,193,240,86,253,193,242,86,253,193,244,86,253,193,246,86,253,193,248,86,253,193,250,86,253,193,252,86,253,193,254,86,253,193,2,87,253,193,4,87,253,193,6,87,253,193,8,87,253,193,10,87,253,193,26,87,253,193,28,87,253,193,30,87,253,193,32,87,253,193,34,87,253,193,36,87,253,193,38,87,253,193,58,87,253,193,60,87,253,193,62,87,253,193,64,87,253,193,66,87,253,193,68,87,253,193,72,87,253,193,74,87,253,193,76,87,253,193,78,87,253,193,80,87,253,193,82,87,253,193,84,87,253,193,88,87,253,193,92,87,253,193,100,87,253,193,108,87,253,193,110,87,253,193,138,87,253,193,140,87,253,193,142,87,253,193,144,87,253,193,146,87,253,193,148,87,253,193,150,87,253,193,152,87,253,193,154,87,253,193,156,87,253,193,158,87,253,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,193,168,87,253,193,24,88,253,193,26,88,253,193,28,88,253,193,30,88,253,193,32,88,253,193,34,88,253,193,156,88,253,193,158,88,253,193,42,89,253,193,188,89,253,193,190,89,253,193,192,89,253,193,84,90,253,193,86,90,253,193,88,90,253,193,90,90,253,193,92,90,253,193,228,90,253,193,230,90,253,193,76,91,253,193,78,91,253,193,80,91,253,193,82,91,253,193,84,91,253,193,206,91,253,193,208,91,253,193,210,91,253,193,76,92,253,193,158,92,253,193,212,92,253,193,20,93,253,193,174,87,253,193,176,87,253,193,178,87,253,193,180,87,253,193,182,87,253,193,184,87,253,193,186,87,253,193,188,87,253,193,190,87,253,193,192,87,253,193,194,87,253,193,196,87,253,193,198,87,253,193,36,88,253,193,38,88,253,193,40,88,253,193,42,88,253,193,44,88,253,193,46,88,253,193,48,88,253,193,50,88,253,193,52,88,253,193,54,88,253,193,56,88,253,193,58,88,253,193,60,88,253,193,62,88,253,193,64,88,253,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,193,44,89,253,193,204,88,253,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,193,216,88,253,193,218,88,253,193,220,88,253,193,86,89,253,193,88,89,253,193,90,89,253,193,92,89,253,193,94,89,253,193,96,89,253,193,98,89,253,193,228,89,253,193,230,89,253,193,232,89,253,193,234,89,253,193,236,89,253,193,238,89,253,193,130,90,253,193,132,90,253,193,134,90,253,193,4,91,253,193,6,91,253,193,8,91,253,193,10,91,253,193,12,91,253,193,114,91,253,193,116,91,253,193,118,91,253,193,120,91,253,193,122,91,253,193,238,91,253,193,240,91,253,193,242,91,253,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,193,194,89,253,193,196,89,253,193,198,89,253,193,200,89,253,193,202,89,253,193,204,89,253,193,206,89,253,193,208,89,253,193,210,89,253,193,212,89,253,193,214,89,253,193,216,89,253,193,218,89,253,193,220,89,253,193,222,89,253,193,224,89,253,193,226,89,253,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,193,174,89,253,193,176,89,253,193,178,89,253,193,180,89,253,193,182,89,253,193,66,90,253,193,68,90,253,193,70,90,253,193,72,90,253,193,74,90,253,193,76,90,253,193,210,90,253,193,212,90,253,193,214,90,253,193,216,90,253,193,218,90,253,193,220,90,253,193,196,91,253,193,198,91,253,193,200,91,253,193,202,91,253,193,66,92,253,193,68,92,253,193,138,92,253,193,140,92,253,193,142,92,253,193,144,92,253,193,146,92,253,193,206,92,253,193,10,93,253,193,12,93,253,193,14,93,253,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,193,136,90,253,193,138,90,253,193,140,90,253,193,142,90,253,193,144,90,253,193,146,90,253,193,148,90,253,193,150,90,253,193,14,91,253,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,193,58,90,253,193,60,90,253,193,62,90,253,193,204,90,253,193,206,90,253,193,66,91,253,193,68,91,253,193,190,91,253,193,192,91,253,193,194,91,253,193,134,92,253,193,136,92,253,193,204,92,253,193,8,93,253,193,52,93,253,193,54,93,253,193,56,93,253,193,106,93,253,193,144,93,253,193,190,93,253,193,208,94,253,193,210,94,253,193,48,95,253,193,50,95,253,193,52,95,253,193,164,95,253,193,146,96,253,193,234,96,253,193,68,97,253,193,70,97,253,193,166,97,253,193,222,97,253,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,193,232,90,253,193,234,90,253,193,236,90,253,193,238,90,253,193,240,90,253,193,242,90,253,193,244,90,253,193,246,90,253,193,248,90,253,193,250,90,253,193,252,90,253,193,254,90,253,193,2,91,253,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,193,222,90,253,193,224,90,253,193,226,90,253,193,70,91,253,193,72,91,253,193,74,91,253,193,204,91,253,193,70,92,253,193,72,92,253,193,74,92,253,193,148,92,253,193,150,92,253,193,152,92,253,193,154,92,253,193,156,92,253,193,208,92,253,193,210,92,253,193,16,93,253,193,18,93,253,193,90,93,253,193,108,93,253,193,150,93,253,193,160,93,253,193,162,93,253,193,192,93,253,193,194,93,253,193,196,93,253,193,30,94,253,193,32,94,253,193,34,94,253,193,36,94,253,193,38,94,253,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,193,212,91,253,193,214,91,253,193,216,91,253,193,218,91,253,193,220,91,253,193,222,91,253,193,224,91,253,193,226,91,253,193,228,91,253,193,230,91,253,193,232,91,253,193,234,91,253,193,236,91,253,193,78,92,253,193,80,92,253,193,82,92,253,193,84,92,253,193,86,92,253,193,160,92,253,193,162,92,253,193,214,92,253,193,216,92,253,193,218,92,253,193,220,92,253,193,222,92,253,193,22,93,253,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,193,246,91,253,193,248,91,253,193,250,91,253,193,252,91,253,193,254,91,253,193,2,92,253,193,4,92,253,193,6,92,253,193,8,92,253,193,10,92,253,193,12,92,253,193,14,92,253,193,16,92,253,193,18,92,253,193,188,91,253,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,193,244,91,253,193,88,92,253,193,164,92,253,193,122,93,253,193,124,93,253,193,156,93,253,193,158,93,253,193,178,93,253,193,180,93,253,193,224,93,253,193,226,93,253,193,228,93,253,193,230,93,253,193,232,93,253,193,58,94,253,193,60,94,253,193,62,94,253,193,64,94,253,193,66,94,253,193,68,94,253,193,158,94,253,193,160,94,253,193,162,94,253,193,164,94,253,193,166,94,253,193,168,94,253,193,2,95,253,193,4,95,253,193,98,95,253,193,100,95,253,193,102,95,253,193,104,95,253,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,193,166,92,253,193,168,92,253,193,170,92,253,193,172,92,253,193,174,92,253,193,176,92,253,193,178,92,253,193,180,92,253,193,182,92,253,193,184,92,253,193,186,92,253,193,188,92,253,193,190,92,253,193,192,92,253,193,194,92,253,193,196,92,253,193,198,92,253,193,200,92,253,193,202,92,253,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,193,28,93,253,193,30,93,253,193,32,93,253,193,34,93,253,193,36,93,253,193,38,93,253,193,40,93,253,193,42,93,253,193,44,93,253,193,46,93,253,193,48,93,253,193,50,93,253,193,72,93,253,193,74,93,253,193,76,93,253,193,78,93,253,193,80,93,253,193,82,93,253,193,84,93,253,193,24,93,253,193,68,93,253,193,26,93,253,193,70,93,253,193,92,93,253,193,94,93,253,193,96,93,253,193,110,93,253,193,112,93,253,193,148,93,253,193,152,93,253,193,154,93,253,193,164,93,253,193,166,93,253,193,168,93,253,193,170,93,253,193,172,93,253,193,174,93,253,193,176,93,253,193,200,93,253,193,202,93,253,193,204,93,253,193,206,93,253,193,208,93,253,193,210,93,253,193,212,93,253,193,214,93,253,193,216,93,253,193,218,93,253,193,220,93,253,193,222,93,253,193,44,94,253,193,58,93,253,193,60,93,253,193,62,93,253,193,86,93,253,193,88,93,253,193,140,93,253,193,26,94,253,193,28,94,253,193,120,94,253,193,214,94,253,193,54,95,253,193,56,95,253,193,58,95,253,193,28,96,253,193,30,96,253,193,32,96,253,193,34,96,253,193,36,96,253,193,148,96,253,193,150,96,253,193,152,96,253,193,154,96,253,193,236,96,253,193,130,97,253,193,132,97,253,193,134,97,253,193,36,98,253,193,56,98,253,193,136,98,253,193,138,98,253,193,146,98,253,193,192,98,253,193,64,93,253,193,66,93,253,193,146,93,253,193,198,93,253,193,42,94,253,193,130,94,253,193,132,94,253,193,66,95,253,193,68,95,253,193,70,95,253,193,180,95,253,193,182,95,253,193,184,95,253,193,52,96,253,193,54,96,253,193,158,96,253,193,246,96,253,193,248,96,253,193,250,96,253,193,80,97,253,193,82,97,253,193,176,97,253,193,202,97,253,193,48,98,253,193,100,98,253,193,122,98,253,193,176,98,253,193,178,98,253,193,180,98,253,193,182,98,253,193,196,98,253,193,120,99,253,193,98,93,253,193,100,93,253,193,102,93,253,193,104,93,253,193,114,93,253,193,116,93,253,193,118,93,253,193,120,93,253,193,126,93,253,193,128,93,253,193,130,93,253,193,132,93,253,193,134,93,253,193,136,93,253,193,138,93,253,193,142,93,253,193,182,93,253,193,184,93,253,193,186,93,253,193,188,93,253,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,193,40,94,253,193,122,94,253,193,124,94,253,193,126,94,253,193,128,94,253,193,216,94,253,193,218,94,253,193,220,94,253,193,222,94,253,193,224,94,253,193,226,94,253,193,60,95,253,193,62,95,253,193,64,95,253,193,166,95,253,193,168,95,253,193,170,95,253,193,172,95,253,193,174,95,253,193,176,95,253,193,178,95,253,193,38,96,253,193,40,96,253,193,42,96,253,193,44,96,253,193,46,96,253,193,48,96,253,193,50,96,253,193,156,96,253,193,238,96,253,193,240,96,253,193,242,96,253,193,46,94,253,193,48,94,253,193,50,94,253,193,52,94,253,193,54,94,253,193,56,94,253,193,134,94,253,193,136,94,253,193,138,94,253,193,140,94,253,193,142,94,253,193,144,94,253,193,146,94,253,193,148,94,253,193,150,94,253,193,152,94,253,193,154,94,253,193,156,94,253,193,228,94,253,193,230,94,253,193,232,94,253,193,234,94,253,193,236,94,253,193,238,94,253,193,240,94,253,193,242,94,253,193,244,94,253,193,246,94,253,193,248,94,253,193,250,94,253,193,252,94,253,193,254,94,253,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,193,170,94,253,193,172,94,253,193,174,94,253,193,176,94,253,193,178,94,253,193,180,94,253,193,182,94,253,193,184,94,253,193,186,94,253,193,188,94,253,193,190,94,253,193,192,94,253,193,194,94,253,193,196,94,253,193,198,94,253,193,200,94,253,193,202,94,253,193,204,94,253,193,206,94,253,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,193,72,95,253,193,74,95,253,193,76,95,253,193,78,95,253,193,80,95,253,193,82,95,253,193,84,95,253,193,86,95,253,193,88,95,253,193,90,95,253,193,92,95,253,193,94,95,253,193,96,95,253,193,186,95,253,193,188,95,253,193,190,95,253,193,192,95,253,193,194,95,253,193,196,95,253,193,198,95,253,193,200,95,253,193,202,95,253,193,204,95,253,193,206,95,253,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,193,208,95,253,193,210,95,253,193,212,95,253,193,214,95,253,193,216,95,253,193,218,95,253,193,220,95,253,193,222,95,253,193,224,95,253,193,82,96,253,193,84,96,253,193,86,96,253,193,88,96,253,193,176,96,253,193,8,97,253,193,10,97,253,193,12,97,253,193,14,97,253,193,16,97,253,193,146,97,253,193,148,97,253,193,178,97,253,193,180,97,253,193,232,97,253,193,234,97,253,193,18,98,253,193,112,98,253,193,24,99,253,193,88,99,253,193,220,99,253,193,222,99,253,193,224,99,253,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,193,90,96,253,193,92,96,253,193,94,96,253,193,96,96,253,193,98,96,253,193,100,96,253,193,102,96,253,193,104,96,253,193,106,96,253,193,108,96,253,193,110,96,253,193,112,96,253,193,114,96,253,193,116,96,253,193,118,96,253,193,120,96,253,193,122,96,253,193,124,96,253,193,126,96,253,193,128,96,253,193,130,96,253,193,132,96,253,193,134,96,253,193,136,96,253,193,138,96,253,193,140,96,253,193,142,96,253,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,193,160,96,253,193,162,96,253,193,164,96,253,193,166,96,253,193,168,96,253,193,170,96,253,193,172,96,253,193,174,96,253,193,252,96,253,193,254,96,253,193,2,97,253,193,4,97,253,193,6,97,253,193,84,97,253,193,86,97,253,193,88,97,253,193,90,97,253,193,92,97,253,193,94,97,253,193,96,97,253,193,140,97,253,193,142,97,253,193,144,97,253,193,204,97,253,193,224,97,253,193,226,97,253,193,228,97,253,193,144,96,253,193,178,96,253,193,180,96,253,193,182,96,253,193,184,96,253,193,186,96,253,193,188,96,253,193,190,96,253,193,192,96,253,193,194,96,253,193,196,96,253,193,198,96,253,193,200,96,253,193,202,96,253,193,204,96,253,193,206,96,253,193,208,96,253,193,210,96,253,193,212,96,253,193,214,96,253,193,216,96,253,193,218,96,253,193,220,96,253,193,222,96,253,193,224,96,253,193,226,96,253,193,228,96,253,193,230,96,253,193,232,96,253,193,18,97,253,193,20,97,253,193,22,97,253,193,244,96,253,193,72,97,253,193,74,97,253,193,76,97,253,193,78,97,253,193,136,97,253,193,138,97,253,193,168,97,253,193,170,97,253,193,172,97,253,193,174,97,253,193,198,97,253,193,200,97,253,193,246,97,253,193,38,98,253,193,46,98,253,193,74,98,253,193,86,98,253,193,120,98,253,193,140,98,253,193,148,98,253,193,150,98,253,193,152,98,253,193,158,98,253,193,160,98,253,193,168,98,253,193,174,98,253,193,208,98,253,193,212,98,253,193,214,98,253,193,222,98,253,193,224,98,253,193,24,97,253,193,26,97,253,193,28,97,253,193,30,97,253,193,32,97,253,193,34,97,253,193,36,97,253,193,38,97,253,193,40,97,253,193,42,97,253,193,44,97,253,193,46,97,253,193,48,97,253,193,50,97,253,193,52,97,253,193,54,97,253,193,56,97,253,193,58,97,253,193,60,97,253,193,62,97,253,193,64,97,253,193,66,97,253,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,193,150,97,253,193,152,97,253,193,154,97,253,193,156,97,253,193,158,97,253,193,160,97,253,193,162,97,253,193,164,97,253,193,182,97,253,193,184,97,253,193,186,97,253,193,188,97,253,193,190,97,253,193,192,97,253,193,194,97,253,193,196,97,253,193,206,97,253,193,208,97,253,193,210,97,253,193,212,97,253,193,214,97,253,193,216,97,253,193,218,97,253,193,220,97,253,193,236,97,253,193,238,97,253,193,230,97,253,193,248,97,253,193,250,97,253,193,2,98,253,193,4,98,253,193,10,98,253,193,30,98,253,193,32,98,253,193,40,98,253,193,50,98,253,193,52,98,253,193,88,98,253,193,98,98,253,193,102,98,253,193,110,98,253,193,124,98,253,193,198,98,253,193,242,98,253,193,244,98,253,193,246,98,253,193,248,98,253,193,250,98,253,193,252,98,253,193,254,98,253,193,2,99,253,193,4,99,253,193,6,99,253,193,8,99,253,193,10,99,253,193,12,99,253,193,14,99,253,193,16,99,253,193,240,97,253,193,242,97,253,193,244,97,253,193,252,97,253,193,254,97,253,193,6,98,253,193,8,98,253,193,12,98,253,193,14,98,253,193,16,98,253,193,20,98,253,193,22,98,253,193,24,98,253,193,26,98,253,193,28,98,253,193,34,98,253,193,42,98,253,193,44,98,253,193,58,98,253,193,60,98,253,193,62,98,253,193,64,98,253,193,66,98,253,193,68,98,253,193,70,98,253,193,72,98,253,193,78,98,253,193,80,98,253,193,82,98,253,193,84,98,253,193,90,98,253,193,92,98,253,193,54,98,253,193,118,98,253,193,134,98,253,193,156,98,253,193,190,98,253,193,210,98,253,193,106,99,253,193,108,99,253,193,110,99,253,193,112,99,253,193,28,100,253,193,30,100,253,193,32,100,253,193,34,100,253,193,36,100,253,193,24,101,253,193,26,101,253,193,28,101,253,193,30,101,253,193,32,101,253,193,34,101,253,193,22,102,253,193,24,102,253,193,26,102,253,193,28,102,253,193,30,102,253,193,32,102,253,193,34,102,253,193,36,102,253,193,98,103,253,193,100,103,253,193,102,103,253,193,94,98,253,193,96,98,253,193,114,98,253,193,106,98,253,193,108,98,253,193,116,98,253,193,126,98,253,193,128,98,253,193,130,98,253,193,132,98,253,193,142,98,253,193,144,98,253,193,154,98,253,193,162,98,253,193,164,98,253,193,166,98,253,193,170,98,253,193,172,98,253,193,186,98,253,193,188,98,253,193,200,98,253,193,202,98,253,193,204,98,253,193,206,98,253,193,218,98,253,193,232,98,253,193,234,98,253,193,238,98,253,193,240,98,253,193,26,99,253,193,28,99,253,193,30,99,253,193,194,98,253,193,220,98,253,193,38,100,253,193,40,100,253,193,42,100,253,193,44,100,253,193,36,101,253,193,38,101,253,193,40,101,253,193,42,101,253,193,44,101,253,193,46,101,253,193,48,101,253,193,40,102,253,193,42,102,253,193,44,102,253,193,46,102,253,193,48,102,253,193,50,102,253,193,52,102,253,193,116,103,253,193,118,103,253,193,120,103,253,193,122,103,253,193,124,103,253,193,126,103,253,193,128,103,253,193,130,103,253,193,132,103,253,193,134,103,253,193,136,103,253,193,138,103,253,193,226,98,253,193,228,98,253,193,230,98,253,193,236,98,253,193,114,99,253,193,116,99,253,193,118,99,253,193,46,100,253,193,48,100,253,193,50,100,253,193,52,100,253,193,54,100,253,193,56,100,253,193,58,100,253,193,50,101,253,193,52,101,253,193,54,101,253,193,54,102,253,193,56,102,253,193,58,102,253,193,60,102,253,193,62,102,253,193,64,102,253,193,66,102,253,193,142,103,253,193,144,103,253,193,146,103,253,193,148,103,253,193,150,103,253,193,152,103,253,193,154,103,253,193,156,103,253,193,18,99,253,193,20,99,253,193,22,99,253,193,36,99,253,193,38,99,253,193,40,99,253,193,42,99,253,193,44,99,253,193,46,99,253,193,48,99,253,193,50,99,253,193,52,99,253,193,54,99,253,193,56,99,253,193,58,99,253,193,60,99,253,193,62,99,253,193,64,99,253,193,66,99,253,193,68,99,253,193,70,99,253,193,72,99,253,193,74,99,253,193,76,99,253,193,78,99,253,193,80,99,253,193,82,99,253,193,84,99,253,193,86,99,253,193,124,99,253,193,126,99,253,193,128,99,253,193,32,99,253,193,34,99,253,193,90,99,253,193,92,99,253,193,94,99,253,193,96,99,253,193,98,99,253,193,100,99,253,193,102,99,253,193,104,99,253,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,193,122,99,253,193,60,100,253,193,62,100,253,193,64,100,253,193,56,101,253,193,58,101,253,193,60,101,253,193,68,102,253,193,70,102,253,193,72,102,253,193,74,102,253,193,76,102,253,193,78,102,253,193,162,103,253,193,164,103,253,193,166,103,253,193,168,103,253,193,170,103,253,193,172,103,253,193,174,103,253,193,176,103,253,193,80,105,253,193,82,105,253,193,84,105,253,193,86,105,253,193,88,105,253,193,90,105,253,193,214,106,253,193,216,106,253,193,218,106,253,193,220,106,253,193,222,106,253,193,130,99,253,193,132,99,253,193,134,99,253,193,136,99,253,193,138,99,253,193,140,99,253,193,142,99,253,193,144,99,253,193,146,99,253,193,148,99,253,193,150,99,253,193,152,99,253,193,154,99,253,193,156,99,253,193,158,99,253,193,160,99,253,193,162,99,253,193,164,99,253,193,166,99,253,193,168,99,253,193,170,99,253,193,172,99,253,193,174,99,253,193,176,99,253,193,178,99,253,193,180,99,253,193,182,99,253,193,184,99,253,193,186,99,253,193,188,99,253,193,190,99,253,193,192,99,253,193,194,99,253,193,196,99,253,193,198,99,253,193,200,99,253,193,202,99,253,193,204,99,253,193,206,99,253,193,208,99,253,193,210,99,253,193,212,99,253,193,214,99,253,193,216,99,253,193,218,99,253,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,193,226,99,253,193,214,100,253,193,216,100,253,193,218,100,253,193,180,101,253,193,182,101,253,193,184,101,253,193,186,101,253,193,188,101,253,193,190,101,253,193,192,101,253,193,220,102,253,193,222,102,253,193,224,102,253,193,226,102,253,193,228,102,253,193,230,102,253,193,232,102,253,193,234,102,253,193,90,104,253,193,92,104,253,193,94,104,253,193,96,104,253,193,222,105,253,193,224,105,253,193,226,105,253,193,228,105,253,193,230,105,253,193,232,105,253,193,86,107,253,193,88,107,253,193,90,107,253,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,193,220,100,253,193,222,100,253,193,224,100,253,193,226,100,253,193,228,100,253,193,230,100,253,193,232,100,253,193,234,100,253,193,236,100,253,193,238,100,253,193,240,100,253,193,242,100,253,193,244,100,253,193,246,100,253,193,248,100,253,193,250,100,253,193,252,100,253,193,254,100,253,193,2,101,253,193,4,101,253,193,6,101,253,193,8,101,253,193,10,101,253,193,12,101,253,193,14,101,253,193,16,101,253,193,18,101,253,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,193,62,101,253,193,64,101,253,193,66,101,253,193,68,101,253,193,70,101,253,193,72,101,253,193,74,101,253,193,178,103,253,193,76,101,253,193,78,101,253,193,80,101,253,193,82,101,253,193,84,101,253,193,86,101,253,193,88,101,253,193,90,101,253,193,92,101,253,193,94,101,253,193,96,101,253,193,98,101,253,193,100,101,253,193,102,101,253,193,104,101,253,193,106,101,253,193,108,101,253,193,110,101,253,193,210,100,253,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,193,252,101,253,193,254,101,253,193,2,102,253,193,4,102,253,193,6,102,253,193,8,102,253,193,10,102,253,193,12,102,253,193,14,102,253,193,16,102,253,193,18,102,253,193,20,102,253,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,193,104,103,253,193,106,103,253,193,108,103,253,193,110,103,253,193,112,103,253,193,114,103,253,193,244,104,253,193,246,104,253,193,248,104,253,193,250,104,253,193,252,104,253,193,254,104,253,193,2,105,253,193,4,105,253,193,6,105,253,193,8,105,253,193,156,106,253,193,158,106,253,193,160,106,253,193,162,106,253,193,164,106,253,193,166,106,253,193,168,106,253,193,170,106,253,193,252,107,253,193,254,107,253,193,2,108,253,193,4,108,253,193,6,108,253,193,8,108,253,193,10,108,253,193,66,109,253,193,140,103,253,193,10,105,253,193,12,105,253,193,14,105,253,193,16,105,253,193,18,105,253,193,20,105,253,193,22,105,253,193,24,105,253,193,26,105,253,193,28,105,253,193,30,105,253,193,32,105,253,193,172,106,253,193,174,106,253,193,176,106,253,193,178,106,253,193,180,106,253,193,182,106,253,193,14,108,253,193,16,108,253,193,18,108,253,193,20,108,253,193,22,108,253,193,24,108,253,193,26,108,253,193,28,108,253,193,30,108,253,193,32,108,253,193,34,108,253,193,36,108,253,193,76,109,253,193,158,103,253,193,160,103,253,193,34,105,253,193,36,105,253,193,38,105,253,193,40,105,253,193,42,105,253,193,44,105,253,193,46,105,253,193,48,105,253,193,50,105,253,193,52,105,253,193,54,105,253,193,56,105,253,193,58,105,253,193,60,105,253,193,62,105,253,193,64,105,253,193,66,105,253,193,68,105,253,193,70,105,253,193,72,105,253,193,74,105,253,193,76,105,253,193,78,105,253,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,193,92,105,253,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,193,94,105,253,193,84,104,253,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,193,38,108,253,193,40,108,253,193,42,108,253,193,44,108,253,193,46,108,253,193,48,108,253,193,50,108,253,193,52,108,253,193,54,108,253,193,56,108,253,193,58,108,253,193,60,108,253,193,88,109,253,193,90,109,253,193,92,109,253,193,94,109,253,193,96,109,253,193,98,109,253,193,100,109,253,193,102,109,253,193,104,109,253,193,106,109,253,193,156,110,253,193,158,110,253,193,224,106,253,193,226,106,253,193,62,108,253,193,64,108,253,193,108,109,253,193,110,109,253,193,190,110,253,193,192,110,253,193,194,110,253,193,196,110,253,193,198,110,253,193,200,110,253,193,202,110,253,193,194,111,253,193,106,112,253,193,108,112,253,193,110,112,253,193,112,112,253,193,8,113,253,193,68,114,253,193,84,114,253,193,106,114,253,193,108,114,253,193,150,114,253,193,152,114,253,193,154,114,253,193,156,114,253,193,158,114,253,206,0,104,0,206,0,104,0,206,0,104,0,206,0,104,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,193,66,108,253,193,40,107,253,193,42,107,253,193,44,107,253,193,46,107,253,193,48,107,253,193,50,107,253,193,52,107,253,193,54,107,253,193,56,107,253,193,58,107,253,193,60,107,253,193,62,107,253,193,64,107,253,193,66,107,253,193,68,107,253,193,70,107,253,193,72,107,253,193,74,107,253,193,76,107,253,193,78,107,253,193,80,107,253,193,82,107,253,193,92,107,253,193,94,107,253,193,96,107,253,193,98,107,253,193,100,107,253,193,102,107,253,193,104,107,253,193,106,107,253,193,172,108,253,193,174,108,253,193,176,108,253,193,178,108,253,193,180,108,253,193,182,108,253,193,184,108,253,193,186,108,253,193,188,108,253,193,190,108,253,193,192,108,253,193,194,108,253,193,216,109,253,193,218,109,253,193,220,109,253,193,222,109,253,193,224,109,253,193,226,109,253,193,228,109,253,193,230,109,253,193,232,109,253,193,2,111,253,193,4,111,253,193,6,111,253,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,193,112,109,253,193,204,110,253,193,114,109,253,193,116,109,253,193,118,109,253,193,120,109,253,193,170,108,253,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,193,234,109,253,193,236,109,253,193,238,109,253,193,240,109,253,193,242,109,253,193,244,109,253,193,246,109,253,193,248,109,253,193,22,111,253,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,193,68,109,253,193,70,109,253,193,72,109,253,193,74,109,253,193,122,110,253,193,124,110,253,193,126,110,253,193,128,110,253,193,130,110,253,193,132,110,253,193,134,110,253,193,136,110,253,193,138,110,253,193,140,110,253,193,142,110,253,193,146,111,253,193,148,111,253,193,150,111,253,193,152,111,253,193,154,111,253,193,156,111,253,193,158,111,253,193,74,112,253,193,76,112,253,193,78,112,253,193,80,112,253,193,82,112,253,193,236,112,253,193,238,112,253,193,84,113,253,193,86,113,253,193,88,113,253,193,78,109,253,193,80,109,253,193,82,109,253,193,84,109,253,193,86,109,253,193,144,110,253,193,146,110,253,193,148,110,253,193,150,110,253,193,152,110,253,193,154,110,253,193,160,111,253,193,162,111,253,193,164,111,253,193,166,111,253,193,168,111,253,193,170,111,253,193,172,111,253,193,84,112,253,193,86,112,253,193,88,112,253,193,90,112,253,193,92,112,253,193,94,112,253,193,240,112,253,193,242,112,253,193,244,112,253,193,246,112,253,193,90,113,253,193,92,113,253,193,94,113,253,193,160,113,253,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,193,206,110,253,193,208,110,253,193,210,110,253,193,212,110,253,193,214,110,253,193,216,110,253,193,218,110,253,193,220,110,253,193,222,110,253,193,224,110,253,193,226,110,253,193,228,110,253,193,230,110,253,193,232,110,253,193,234,110,253,193,236,110,253,193,238,110,253,193,240,110,253,193,242,110,253,193,244,110,253,193,246,110,253,193,248,110,253,193,250,110,253,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,193,160,110,253,193,162,110,253,193,164,110,253,193,166,110,253,193,168,110,253,193,170,110,253,193,172,110,253,193,174,110,253,193,176,110,253,193,178,110,253,193,180,110,253,193,182,110,253,193,184,110,253,193,186,110,253,193,188,110,253,193,174,111,253,193,176,111,253,193,178,111,253,193,180,111,253,193,182,111,253,193,184,111,253,193,186,111,253,193,188,111,253,193,190,111,253,193,192,111,253,193,96,112,253,193,98,112,253,193,100,112,253,193,102,112,253,193,104,112,253,193,248,112,253,193,250,112,253,193,252,110,253,193,254,110,253,193,196,111,253,193,198,111,253,193,200,111,253,193,202,111,253,193,204,111,253,193,206,111,253,193,208,111,253,193,210,111,253,193,212,111,253,193,214,111,253,193,216,111,253,193,218,111,253,193,220,111,253,193,222,111,253,193,224,111,253,193,226,111,253,193,228,111,253,193,230,111,253,193,232,111,253,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,193,8,111,253,193,10,111,253,193,12,111,253,193,14,111,253,193,16,111,253,193,18,111,253,193,20,111,253,193,236,111,253,193,238,111,253,193,240,111,253,193,242,111,253,193,244,111,253,193,246,111,253,193,248,111,253,193,250,111,253,193,150,112,253,193,152,112,253,193,154,112,253,193,156,112,253,193,158,112,253,193,160,112,253,193,20,113,253,193,22,113,253,193,24,113,253,193,120,113,253,193,46,114,253,193,208,114,253,193,210,114,253,193,212,114,253,193,88,115,253,193,90,115,253,193,92,115,253,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,193,234,111,253,193,10,113,253,193,12,113,253,193,14,113,253,193,16,113,253,193,18,113,253,193,106,113,253,193,108,113,253,193,110,113,253,193,112,113,253,193,114,113,253,193,116,113,253,193,118,113,253,193,168,113,253,193,170,113,253,193,172,113,253,193,174,113,253,193,176,113,253,193,178,113,253,193,180,113,253,193,234,113,253,193,236,113,253,193,238,113,253,193,240,113,253,193,242,113,253,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,193,26,113,253,193,28,113,253,193,30,113,253,193,252,112,253,193,254,112,253,193,2,113,253,193,4,113,253,193,6,113,253,193,96,113,253,193,98,113,253,193,100,113,253,193,102,113,253,193,104,113,253,193,164,113,253,193,166,113,253,193,230,113,253,193,232,113,253,193,14,114,253,193,40,114,253,193,76,114,253,193,82,114,253,193,148,114,253,193,4,115,253,193,140,116,253,193,24,117,253,193,214,117,253,193,138,118,253,193,214,118,253,193,244,118,253,193,246,118,253,193,26,119,253,193,62,119,253,193,64,119,253,193,82,119,253,193,84,119,253,193,32,113,253,193,34,113,253,193,36,113,253,193,38,113,253,193,40,113,253,193,42,113,253,193,44,113,253,193,46,113,253,193,48,113,253,193,50,113,253,193,52,113,253,193,54,113,253,193,56,113,253,193,58,113,253,193,60,113,253,193,62,113,253,193,64,113,253,193,66,113,253,193,68,113,253,193,70,113,253,193,72,113,253,193,74,113,253,193,76,113,253,193,78,113,253,193,80,113,253,193,82,113,253,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,193,182,113,253,193,184,113,253,193,186,113,253,193,188,113,253,193,190,113,253,193,192,113,253,193,194,113,253,193,196,113,253,193,198,113,253,193,200,113,253,193,202,113,253,193,204,113,253,193,206,113,253,193,208,113,253,193,210,113,253,193,212,113,253,193,214,113,253,193,216,113,253,193,218,113,253,193,220,113,253,193,222,113,253,193,244,113,253,193,246,113,253,193,248,113,253,193,250,113,253,193,252,113,253,193,254,113,253,193,2,114,253,193,4,114,253,193,6,114,253,193,8,114,253,193,10,114,253,193,22,114,253,193,24,114,253,193,26,114,253,193,28,114,253,193,30,114,253,193,32,114,253,193,34,114,253,193,36,114,253,193,152,113,253,193,48,114,253,193,50,114,253,193,52,114,253,193,54,114,253,193,56,114,253,193,60,114,253,193,62,114,253,193,64,114,253,193,70,114,253,193,74,114,253,193,78,114,253,193,80,114,253,193,132,114,253,193,134,114,253,193,154,113,253,193,156,113,253,193,158,113,253,193,224,113,253,193,12,114,253,193,102,114,253,193,136,114,253,193,220,114,253,193,222,114,253,193,224,114,253,193,226,114,253,193,228,114,253,193,102,115,253,193,104,115,253,193,106,115,253,193,246,115,253,193,248,115,253,193,250,115,253,193,252,115,253,193,254,115,253,193,2,116,253,193,118,116,253,193,120,116,253,193,122,116,253,193,234,116,253,193,236,116,253,193,238,116,253,193,240,116,253,193,242,116,253,193,244,116,253,193,246,116,253,193,248,116,253,193,162,113,253,193,226,113,253,193,228,113,253,193,38,114,253,193,58,114,253,193,66,114,253,193,72,114,253,193,140,114,253,193,142,114,253,193,144,114,253,193,146,114,253,193,234,114,253,193,236,114,253,193,238,114,253,193,240,114,253,193,242,114,253,193,244,114,253,193,246,114,253,193,248,114,253,193,250,114,253,193,252,114,253,193,254,114,253,193,2,115,253,193,112,115,253,193,114,115,253,193,116,115,253,193,118,115,253,193,120,115,253,193,122,115,253,193,124,115,253,193,126,115,253,193,128,115,253,193,16,114,253,193,18,114,253,193,20,114,253,193,42,114,253,193,44,114,253,193,86,114,253,193,88,114,253,193,90,114,253,193,92,114,253,193,94,114,253,193,96,114,253,193,98,114,253,193,100,114,253,193,110,114,253,193,112,114,253,193,114,114,253,193,116,114,253,193,118,114,253,193,120,114,253,193,122,114,253,193,124,114,253,193,126,114,253,193,128,114,253,193,130,114,253,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,193,214,114,253,193,216,114,253,193,218,114,253,193,94,115,253,193,96,115,253,193,98,115,253,193,100,115,253,193,114,116,253,193,116,116,253,193,226,116,253,193,228,116,253,193,230,116,253,193,232,116,253,193,188,117,253,193,82,117,253,193,190,117,253,193,2,118,253,193,58,118,253,193,4,118,253,193,60,118,253,193,62,118,253,193,122,118,253,193,124,118,253,193,204,118,253,193,206,118,253,193,208,118,253,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,0,104,0,206,0,104,0,206,0,104,0,206,0,104,0,206,0,104,0,193,136,115,253,193,138,115,253,193,140,115,253,193,142,115,253,193,144,115,253,193,146,115,253,193,148,115,253,193,150,115,253,193,152,115,253,193,154,115,253,193,156,115,253,193,158,115,253,193,160,115,253,193,26,116,253,193,28,116,253,193,30,116,253,193,32,116,253,193,34,116,253,193,36,116,253,193,38,116,253,193,40,116,253,193,42,116,253,193,44,116,253,193,46,116,253,193,48,116,253,193,142,116,253,193,144,116,253,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,193,130,115,253,193,132,115,253,193,134,115,253,193,12,116,253,193,14,116,253,193,16,116,253,193,18,116,253,193,20,116,253,193,22,116,253,193,24,116,253,193,126,116,253,193,128,116,253,193,130,116,253,193,132,116,253,193,134,116,253,193,136,116,253,193,138,116,253,193,252,116,253,193,254,116,253,193,2,117,253,193,4,117,253,193,6,117,253,193,8,117,253,193,10,117,253,193,12,117,253,193,14,117,253,193,16,117,253,193,18,117,253,193,20,117,253,193,22,117,253,193,98,117,253,193,100,117,253,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,193,244,115,253,193,112,116,253,193,186,117,253,193,52,118,253,193,54,118,253,193,56,118,253,193,196,118,253,193,212,118,253,193,252,118,253,193,254,118,253,193,28,119,253,193,170,119,253,193,52,120,253,193,54,120,253,193,110,120,253,193,112,120,253,193,114,120,253,193,116,120,253,193,208,120,253,193,210,120,253,193,212,120,253,193,54,121,253,193,56,121,253,193,58,121,253,193,60,121,253,193,62,121,253,193,64,121,253,193,66,121,253,193,146,121,253,193,148,121,253,193,150,121,253,193,152,121,253,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,193,146,116,253,193,148,116,253,193,150,116,253,193,152,116,253,193,154,116,253,193,156,116,253,193,158,116,253,193,160,116,253,193,162,116,253,193,164,116,253,193,166,116,253,193,168,116,253,193,26,117,253,193,28,117,253,193,30,117,253,193,32,117,253,193,34,117,253,193,36,117,253,193,38,117,253,193,40,117,253,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,193,152,117,253,193,154,117,253,193,156,117,253,193,158,117,253,193,160,117,253,193,162,117,253,193,164,117,253,193,166,117,253,193,168,117,253,193,170,117,253,193,172,117,253,193,174,117,253,193,176,117,253,193,178,117,253,193,180,117,253,193,182,117,253,193,234,117,253,193,236,117,253,193,238,117,253,193,240,117,253,193,242,117,253,193,244,117,253,193,246,117,253,193,248,117,253,193,250,117,253,193,252,117,253,193,84,117,253,193,86,117,253,193,88,117,253,193,90,117,253,193,92,117,253,193,192,117,253,193,194,117,253,193,196,117,253,193,198,117,253,193,6,118,253,193,8,118,253,193,64,118,253,193,66,118,253,193,68,118,253,193,70,118,253,193,72,118,253,193,126,118,253,193,128,118,253,193,150,118,253,193,170,118,253,193,186,118,253,193,190,118,253,193,58,119,253,193,118,119,253,193,18,120,253,193,70,120,253,193,174,120,253,193,176,120,253,193,12,121,253,193,14,121,253,193,16,121,253,193,18,121,253,193,102,117,253,193,104,117,253,193,106,117,253,193,108,117,253,193,110,117,253,193,112,117,253,193,202,117,253,193,204,117,253,193,206,117,253,193,208,117,253,193,210,117,253,193,212,117,253,193,10,118,253,193,12,118,253,193,14,118,253,193,16,118,253,193,18,118,253,193,20,118,253,193,22,118,253,193,74,118,253,193,76,118,253,193,78,118,253,193,80,118,253,193,82,118,253,193,84,118,253,193,86,118,253,193,130,118,253,193,132,118,253,193,134,118,253,193,136,118,253,193,154,118,253,193,162,118,253,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,193,216,117,253,193,218,117,253,193,220,117,253,193,222,117,253,193,224,117,253,193,226,117,253,193,228,117,253,193,230,117,253,193,232,117,253,193,24,118,253,193,26,118,253,193,28,118,253,193,88,118,253,193,90,118,253,193,92,118,253,193,94,118,253,193,96,118,253,193,98,118,253,193,100,118,253,193,102,118,253,193,104,118,253,193,106,118,253,193,108,118,253,193,140,118,253,193,142,118,253,193,200,117,253,193,152,118,253,193,182,124,253,193,234,128,253,193,42,146,253,193,84,147,253,193,110,153,253,193,250,156,253,193,16,157,253,193,212,165,253,193,76,172,253,193,104,173,253,193,140,173,253,193,2,190,253,193,12,192,253,193,118,193,253,193,194,193,253,193,8,195,253,193,120,195,253,193,220,195,253,193,6,198,253,193,138,203,253,193,132,206,253,193,160,209,253,193,60,219,253,193,56,221,253,193,140,223,253,193,136,222,253,193,208,223,253,193,212,224,253,255,255,255,255,255,255,255,255,193,254,117,253,193,30,118,253,193,32,118,253,193,34,118,253,193,36,118,253,193,38,118,253,193,40,118,253,193,42,118,253,193,44,118,253,193,46,118,253,193,48,118,253,193,50,118,253,193,110,118,253,193,112,118,253,193,114,118,253,193,116,118,253,193,118,118,253,193,120,118,253,193,148,118,253,193,158,118,253,193,160,118,253,193,178,118,253,193,180,118,253,193,200,118,253,193,202,118,253,193,210,118,253,193,218,118,253,193,250,118,253,193,92,119,253,193,196,119,253,193,224,119,253,193,2,120,253,193,144,118,253,193,146,118,253,193,156,118,253,193,164,118,253,193,166,118,253,193,168,118,253,193,174,118,253,193,176,118,253,193,184,118,253,193,188,118,253,193,194,118,253,193,216,118,253,193,248,118,253,193,66,119,253,193,86,119,253,193,88,119,253,193,90,119,253,193,124,119,253,193,148,119,253,193,168,119,253,193,192,119,253,193,194,119,253,193,4,120,253,193,40,120,253,193,76,120,253,193,78,120,253,193,80,120,253,193,82,120,253,193,186,120,253,193,188,120,253,193,32,121,253,193,124,121,253,193,172,118,253,193,182,118,253,193,192,118,253,193,198,118,253,193,60,119,253,193,38,120,253,193,72,120,253,193,178,120,253,193,180,120,253,193,22,121,253,193,228,121,253,193,230,121,253,193,232,121,253,193,206,122,253,193,208,122,253,193,42,123,253,193,44,123,253,193,46,123,253,193,100,123,253,193,164,123,253,193,232,123,253,193,234,123,253,193,6,124,253,193,26,124,253,193,92,124,253,193,116,124,253,193,118,124,253,193,120,124,253,193,154,124,253,193,156,124,253,193,158,124,253,193,160,124,253,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,193,2,119,253,193,4,119,253,193,6,119,253,193,8,119,253,193,10,119,253,193,12,119,253,193,14,119,253,193,16,119,253,193,18,119,253,193,20,119,253,193,22,119,253,193,24,119,253,193,30,119,253,193,32,119,253,193,34,119,253,193,36,119,253,193,38,119,253,193,40,119,253,193,42,119,253,193,44,119,253,193,46,119,253,193,48,119,253,193,50,119,253,193,52,119,253,193,54,119,253,193,56,119,253,193,68,119,253,193,70,119,253,193,72,119,253,193,74,119,253,193,76,119,253,193,78,119,253,193,80,119,253,193,94,119,253,193,96,119,253,193,98,119,253,193,100,119,253,193,102,119,253,193,104,119,253,193,106,119,253,193,108,119,253,193,110,119,253,193,112,119,253,193,114,119,253,193,116,119,253,193,128,119,253,193,130,119,253,193,132,119,253,193,150,119,253,193,134,119,253,193,136,119,253,193,138,119,253,193,140,119,253,193,142,119,253,193,144,119,253,193,146,119,253,193,152,119,253,193,154,119,253,193,120,119,253,193,122,119,253,193,166,119,253,193,188,119,253,193,190,119,253,193,220,119,253,193,222,119,253,193,74,120,253,193,182,120,253,193,184,120,253,193,24,121,253,193,26,121,253,193,28,121,253,193,30,121,253,193,120,121,253,193,122,121,253,193,88,122,253,193,90,122,253,193,92,122,253,193,94,122,253,193,96,122,253,193,98,122,253,193,100,122,253,193,210,122,253,193,212,122,253,193,214,122,253,193,216,122,253,193,218,122,253,193,48,123,253,193,50,123,253,193,52,123,253,193,102,123,253,193,156,119,253,193,158,119,253,193,160,119,253,193,162,119,253,193,164,119,253,193,172,119,253,193,174,119,253,193,176,119,253,193,178,119,253,193,180,119,253,193,182,119,253,193,184,119,253,193,186,119,253,193,198,119,253,193,200,119,253,193,202,119,253,193,204,119,253,193,206,119,253,193,208,119,253,193,210,119,253,193,212,119,253,193,214,119,253,193,216,119,253,193,218,119,253,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,193,8,120,253,193,10,120,253,193,16,120,253,193,26,120,253,193,28,120,253,193,30,120,253,193,32,120,253,193,34,120,253,193,36,120,253,193,56,120,253,193,58,120,253,193,60,120,253,193,62,120,253,193,64,120,253,193,66,120,253,193,68,120,253,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,193,6,120,253,193,12,120,253,193,14,120,253,193,20,120,253,193,22,120,253,193,24,120,253,193,42,120,253,193,44,120,253,193,46,120,253,193,48,120,253,193,50,120,253,193,84,120,253,193,86,120,253,193,88,120,253,193,90,120,253,193,92,120,253,193,94,120,253,193,96,120,253,193,98,120,253,193,100,120,253,193,102,120,253,193,104,120,253,193,106,120,253,193,108,120,253,193,190,120,253,193,192,120,253,193,194,120,253,193,196,120,253,193,198,120,253,193,200,120,253,193,202,120,253,193,204,120,253,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,193,206,120,253,193,34,121,253,193,36,121,253,193,38,121,253,193,40,121,253,193,42,121,253,193,44,121,253,193,46,121,253,193,48,121,253,193,50,121,253,193,52,121,253,193,126,121,253,193,128,121,253,193,130,121,253,193,132,121,253,193,134,121,253,193,136,121,253,193,138,121,253,193,140,121,253,193,142,121,253,193,144,121,253,193,234,121,253,193,236,121,253,193,108,122,253,193,238,121,253,193,240,121,253,193,242,121,253,193,244,121,253,193,246,121,253,193,248,121,253,193,250,121,253,193,252,121,253,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,193,20,121,253,193,220,121,253,193,222,121,253,193,224,121,253,193,226,121,253,193,82,122,253,193,84,122,253,193,86,122,253,193,204,122,253,193,98,123,253,193,230,123,253,193,66,124,253,193,114,124,253,193,148,124,253,193,150,124,253,193,152,124,253,193,180,124,253,193,220,124,253,193,248,124,253,193,250,124,253,193,28,125,253,193,102,125,253,193,104,125,253,193,112,125,253,193,114,125,253,193,146,125,253,193,200,125,253,193,36,126,253,193,144,126,253,193,146,126,253,193,248,126,253,193,250,126,253,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,193,254,121,253,193,2,122,253,193,4,122,253,193,110,122,253,193,112,122,253,193,114,122,253,193,116,122,253,193,118,122,253,193,120,122,253,193,122,122,253,193,124,122,253,193,126,122,253,193,128,122,253,193,130,122,253,193,132,122,253,193,134,122,253,193,222,122,253,193,224,122,253,193,226,122,253,193,228,122,253,193,230,122,253,193,232,122,253,193,234,122,253,193,236,122,253,193,238,122,253,193,54,123,253,193,56,123,253,193,58,123,253,193,60,123,253,193,62,123,253,193,108,123,253,193,110,123,253,193,6,122,253,193,8,122,253,193,10,122,253,193,12,122,253,193,14,122,253,193,16,122,253,193,18,122,253,193,20,122,253,193,22,122,253,193,136,122,253,193,138,122,253,193,140,122,253,193,142,122,253,193,144,122,253,193,146,122,253,193,148,122,253,193,64,123,253,193,116,123,253,193,184,123,253,193,186,123,253,193,188,123,253,193,242,123,253,193,214,124,253,193,246,124,253,193,64,125,253,193,164,125,253,193,166,125,253,193,190,125,253,193,246,125,253,193,248,125,253,193,250,125,253,193,252,125,253,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,193,150,122,253,193,152,122,253,193,154,122,253,193,156,122,253,193,158,122,253,193,160,122,253,193,162,122,253,193,164,122,253,193,166,122,253,193,168,122,253,193,170,122,253,193,172,122,253,193,174,122,253,193,176,122,253,193,178,122,253,193,180,122,253,193,182,122,253,193,184,122,253,193,186,122,253,193,188,122,253,193,190,122,253,193,192,122,253,193,194,122,253,193,196,122,253,193,198,122,253,193,200,122,253,193,202,122,253,193,102,122,253,193,104,122,253,193,106,122,253,193,220,122,253,193,10,124,253,193,88,124,253,193,96,124,253,193,126,124,253,193,168,124,253,193,170,124,253,193,172,124,253,193,174,124,253,193,192,124,253,193,194,124,253,193,236,124,253,193,4,125,253,193,6,125,253,193,48,125,253,193,50,125,253,193,52,125,253,193,84,125,253,193,86,125,253,193,88,125,253,193,106,125,253,193,108,125,253,193,120,125,253,193,122,125,253,193,134,125,253,193,136,125,253,193,140,125,253,193,142,125,253,193,148,125,253,193,240,122,253,193,242,122,253,193,244,122,253,193,246,122,253,193,248,122,253,193,250,122,253,193,252,122,253,193,254,122,253,193,2,123,253,193,4,123,253,193,6,123,253,193,8,123,253,193,10,123,253,193,12,123,253,193,14,123,253,193,16,123,253,193,18,123,253,193,20,123,253,193,22,123,253,193,24,123,253,193,26,123,253,193,28,123,253,193,30,123,253,193,32,123,253,193,34,123,253,193,36,123,253,193,38,123,253,193,40,123,253,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,193,118,123,253,193,120,123,253,193,122,123,253,193,124,123,253,193,126,123,253,193,128,123,253,193,130,123,253,193,132,123,253,193,134,123,253,193,136,123,253,193,138,123,253,193,140,123,253,193,142,123,253,193,144,123,253,193,146,123,253,193,148,123,253,193,150,123,253,193,152,123,253,193,154,123,253,193,156,123,253,193,104,123,253,193,106,123,253,193,166,123,253,193,168,123,253,193,170,123,253,193,172,123,253,193,236,123,253,193,238,123,253,193,8,124,253,193,48,124,253,193,68,124,253,193,94,124,253,193,122,124,253,193,124,124,253,193,162,124,253,193,164,124,253,193,166,124,253,193,188,124,253,193,190,124,253,193,234,124,253,193,42,125,253,193,44,125,253,193,46,125,253,193,82,125,253,193,132,125,253,193,204,125,253,193,44,126,253,193,46,126,253,193,150,126,253,193,152,126,253,193,154,126,253,193,156,126,253,193,112,123,253,193,114,123,253,193,174,123,253,193,176,123,253,193,178,123,253,193,180,123,253,193,182,123,253,193,240,123,253,193,84,124,253,193,86,124,253,193,90,124,253,193,98,124,253,193,100,124,253,193,102,124,253,193,104,124,253,193,106,124,253,193,128,124,253,193,130,124,253,193,132,124,253,193,134,124,253,193,136,124,253,193,138,124,253,193,140,124,253,193,142,124,253,193,176,124,253,193,178,124,253,193,196,124,253,193,198,124,253,193,200,124,253,193,202,124,253,193,204,124,253,193,206,124,253,193,158,123,253,193,160,123,253,193,162,123,253,193,190,123,253,193,192,123,253,193,194,123,253,193,196,123,253,193,198,123,253,193,200,123,253,193,202,123,253,193,204,123,253,193,206,123,253,193,208,123,253,193,210,123,253,193,212,123,253,193,214,123,253,193,216,123,253,193,218,123,253,193,220,123,253,193,222,123,253,193,244,123,253,193,224,123,253,193,226,123,253,193,228,123,253,193,246,123,253,193,248,123,253,193,250,123,253,193,252,123,253,193,254,123,253,193,2,124,253,193,4,124,253,193,12,124,253,193,14,124,253,193,16,124,253,193,18,124,253,193,20,124,253,193,22,124,253,193,24,124,253,193,28,124,253,193,30,124,253,193,32,124,253,193,34,124,253,193,36,124,253,193,38,124,253,193,40,124,253,193,42,124,253,193,44,124,253,193,50,124,253,193,52,124,253,193,54,124,253,193,56,124,253,193,58,124,253,193,60,124,253,193,62,124,253,193,46,124,253,193,70,124,253,193,64,124,253,193,72,124,253,193,74,124,253,193,76,124,253,193,78,124,253,193,80,124,253,193,82,124,253,193,108,124,253,193,110,124,253,193,112,124,253,193,144,124,253,193,146,124,253,193,216,124,253,193,218,124,253,193,66,125,253,193,68,125,253,193,70,125,253,193,98,125,253,193,100,125,253,193,124,125,253,193,126,125,253,193,144,125,253,193,152,125,253,193,158,125,253,193,168,125,253,193,170,125,253,193,172,125,253,193,174,125,253,193,176,125,253,193,178,125,253,193,192,125,253,193,194,125,253,193,196,125,253,193,198,125,253,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,193,184,124,253,193,186,124,253,193,222,124,253,193,224,124,253,193,226,124,253,193,228,124,253,193,230,124,253,193,232,124,253,193,252,124,253,193,254,124,253,193,2,125,253,193,30,125,253,193,32,125,253,193,34,125,253,193,36,125,253,193,38,125,253,193,40,125,253,193,72,125,253,193,74,125,253,193,76,125,253,193,78,125,253,193,80,125,253,193,116,125,253,193,118,125,253,193,128,125,253,193,130,125,253,193,202,125,253,193,38,126,253,193,40,126,253,193,42,126,253,193,148,126,253,193,254,126,253,193,208,124,253,193,210,124,253,193,212,124,253,193,238,124,253,193,240,124,253,193,242,124,253,193,244,124,253,193,8,125,253,193,10,125,253,193,12,125,253,193,14,125,253,193,16,125,253,193,18,125,253,193,20,125,253,193,22,125,253,193,24,125,253,193,26,125,253,193,54,125,253,193,56,125,253,193,58,125,253,193,60,125,253,193,62,125,253,193,90,125,253,193,92,125,253,193,94,125,253,193,96,125,253,193,110,125,253,193,138,125,253,193,154,125,253,193,156,125,253,193,160,125,253,193,162,125,253,193,150,125,253,193,206,125,253,193,208,125,253,193,48,126,253,193,50,126,253,193,52,126,253,193,158,126,253,193,160,126,253,193,162,126,253,193,164,126,253,193,166,126,253,193,16,127,253,193,18,127,253,193,20,127,253,193,22,127,253,193,24,127,253,193,26,127,253,193,160,127,253,193,162,127,253,193,164,127,253,193,166,127,253,193,168,127,253,193,170,127,253,193,80,128,253,193,82,128,253,193,84,128,253,193,86,128,253,193,88,128,253,193,90,128,253,193,92,128,253,193,94,128,253,193,96,128,253,193,180,125,253,193,182,125,253,193,184,125,253,193,186,125,253,193,188,125,253,193,210,125,253,193,212,125,253,193,214,125,253,193,216,125,253,193,218,125,253,193,220,125,253,193,222,125,253,193,224,125,253,193,226,125,253,193,228,125,253,193,230,125,253,193,232,125,253,193,234,125,253,193,236,125,253,193,238,125,253,193,240,125,253,193,242,125,253,193,244,125,253,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,193,254,125,253,193,92,126,253,193,94,126,253,193,96,126,253,193,192,126,253,193,194,126,253,193,196,126,253,193,198,126,253,193,200,126,253,193,66,127,253,193,68,127,253,193,70,127,253,193,72,127,253,193,74,127,253,193,76,127,253,193,78,127,253,193,208,127,253,193,210,127,253,193,212,127,253,193,214,127,253,193,216,127,253,193,218,127,253,193,220,127,253,193,144,128,253,193,146,128,253,193,148,128,253,193,32,129,253,193,34,129,253,193,36,129,253,193,38,129,253,193,40,129,253,193,42,129,253,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,193,98,126,253,193,100,126,253,193,102,126,253,193,104,126,253,193,106,126,253,193,108,126,253,193,110,126,253,193,112,126,253,193,114,126,253,193,116,126,253,193,118,126,253,193,120,126,253,193,122,126,253,193,124,126,253,193,126,126,253,193,128,126,253,193,130,126,253,193,132,126,253,193,134,126,253,193,136,126,253,193,138,126,253,193,140,126,253,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,193,168,126,253,193,170,126,253,193,172,126,253,193,174,126,253,193,176,126,253,193,178,126,253,193,180,126,253,193,182,126,253,193,184,126,253,193,186,126,253,193,188,126,253,193,190,126,253,193,28,127,253,193,30,127,253,193,32,127,253,193,34,127,253,193,172,127,253,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,193,142,126,253,193,202,126,253,193,204,126,253,193,206,126,253,193,208,126,253,193,210,126,253,193,212,126,253,193,214,126,253,193,216,126,253,193,218,126,253,193,220,126,253,193,222,126,253,193,224,126,253,193,226,126,253,193,228,126,253,193,230,126,253,193,232,126,253,193,234,126,253,193,236,126,253,193,238,126,253,193,240,126,253,193,242,126,253,193,244,126,253,193,246,126,253,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,193,252,126,253,193,136,127,253,193,138,127,253,193,140,127,253,193,50,128,253,193,52,128,253,193,218,128,253,193,220,128,253,193,222,128,253,193,224,128,253,193,226,128,253,193,228,128,253,193,230,128,253,193,232,128,253,193,136,129,253,193,138,129,253,193,248,129,253,193,250,129,253,193,252,129,253,193,254,129,253,193,112,130,253,193,114,130,253,193,116,130,253,193,118,130,253,193,102,131,253,193,202,131,253,193,82,132,253,193,216,132,253,193,208,133,253,193,188,134,253,193,218,134,253,193,22,135,253,193,2,127,253,193,142,127,253,193,144,127,253,193,146,127,253,193,54,128,253,193,56,128,253,193,58,128,253,193,60,128,253,193,62,128,253,193,64,128,253,193,66,128,253,193,236,128,253,193,238,128,253,193,240,128,253,193,242,128,253,193,244,128,253,193,140,129,253,193,142,129,253,193,144,129,253,193,146,129,253,193,2,130,253,193,4,130,253,193,6,130,253,193,8,130,253,193,10,130,253,193,120,130,253,193,122,130,253,193,124,130,253,193,208,130,253,193,210,130,253,193,212,130,253,193,214,130,253,193,4,127,253,193,6,127,253,193,8,127,253,193,10,127,253,193,12,127,253,193,14,127,253,193,148,127,253,193,150,127,253,193,152,127,253,193,154,127,253,193,156,127,253,193,158,127,253,193,68,128,253,193,70,128,253,193,72,128,253,193,74,128,253,193,76,128,253,193,78,128,253,193,246,128,253,193,148,129,253,193,150,129,253,193,152,129,253,193,154,129,253,193,156,129,253,193,158,129,253,193,160,129,253,193,162,129,253,193,12,130,253,193,14,130,253,193,16,130,253,193,18,130,253,193,20,130,253,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,193,174,127,253,193,176,127,253,193,178,127,253,193,180,127,253,193,182,127,253,193,184,127,253,193,186,127,253,193,188,127,253,193,190,127,253,193,192,127,253,193,194,127,253,193,196,127,253,193,198,127,253,193,200,127,253,193,202,127,253,193,204,127,253,193,206,127,253,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,193,150,128,253,193,152,128,253,193,98,128,253,193,248,128,253,193,250,128,253,193,252,128,253,193,254,128,253,193,2,129,253,193,4,129,253,193,6,129,253,193,8,129,253,193,10,129,253,193,164,129,253,193,166,129,253,193,22,130,253,193,24,130,253,193,26,130,253,193,28,130,253,193,30,130,253,193,136,130,253,193,138,130,253,193,140,130,253,193,142,130,253,193,144,130,253,193,146,130,253,193,226,130,253,193,228,130,253,193,230,130,253,193,232,130,253,193,40,131,253,193,66,131,253,193,68,131,253,193,70,131,253,193,72,131,253,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,193,12,129,253,193,14,129,253,193,16,129,253,193,18,129,253,193,20,129,253,193,22,129,253,193,24,129,253,193,26,129,253,193,28,129,253,193,168,129,253,193,170,129,253,193,172,129,253,193,174,129,253,193,176,129,253,193,178,129,253,193,154,128,253,193,156,128,253,193,158,128,253,193,160,128,253,193,162,128,253,193,164,128,253,193,166,128,253,193,168,128,253,193,170,128,253,193,172,128,253,193,174,128,253,193,176,128,253,193,178,128,253,193,180,128,253,193,182,128,253,193,184,128,253,193,186,128,253,193,188,128,253,193,190,128,253,193,192,128,253,193,194,128,253,193,196,128,253,193,198,128,253,193,200,128,253,193,202,128,253,193,204,128,253,193,206,128,253,193,208,128,253,193,210,128,253,193,212,128,253,193,214,128,253,193,216,128,253,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,193,180,129,253,193,182,129,253,193,32,130,253,193,34,130,253,193,36,130,253,193,38,130,253,193,148,130,253,193,150,130,253,193,152,130,253,193,154,130,253,193,156,130,253,193,158,130,253,193,234,130,253,193,236,130,253,193,238,130,253,193,240,130,253,193,242,130,253,193,244,130,253,193,246,130,253,193,42,131,253,193,74,131,253,193,112,131,253,193,186,131,253,193,204,131,253,193,212,131,253,193,228,131,253,193,230,131,253,193,232,131,253,193,234,131,253,193,236,131,253,193,238,131,253,193,250,131,253,193,184,129,253,193,186,129,253,193,188,129,253,193,190,129,253,193,40,130,253,193,42,130,253,193,44,130,253,193,160,130,253,193,162,130,253,193,46,130,253,193,164,130,253,193,248,130,253,193,250,130,253,193,252,130,253,193,76,131,253,193,114,131,253,193,132,131,253,193,240,131,253,193,254,131,253,193,2,132,253,193,48,132,253,193,50,132,253,193,52,132,253,193,110,132,253,193,112,132,253,193,114,132,253,193,116,132,253,193,164,132,253,193,224,132,253,193,226,132,253,193,24,133,253,193,26,133,253,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,193,166,130,253,193,168,130,253,193,170,130,253,193,172,130,253,193,174,130,253,193,176,130,253,193,178,130,253,193,180,130,253,193,182,130,253,193,184,130,253,193,186,130,253,193,188,130,253,193,190,130,253,193,192,130,253,193,194,130,253,193,196,130,253,193,198,130,253,193,200,130,253,193,202,130,253,193,204,130,253,193,206,130,253,193,254,130,253,193,126,130,253,193,128,130,253,193,130,130,253,193,132,130,253,193,134,130,253,193,216,130,253,193,218,130,253,193,220,130,253,193,222,130,253,193,224,130,253,193,30,131,253,193,32,131,253,193,34,131,253,193,36,131,253,193,38,131,253,193,64,131,253,193,104,131,253,193,130,131,253,193,166,131,253,193,174,131,253,193,188,131,253,193,216,131,253,193,24,132,253,193,86,132,253,193,88,132,253,193,90,132,253,193,92,132,253,193,156,132,253,193,18,133,253,193,94,133,253,193,96,133,253,193,98,133,253,193,2,131,253,193,4,131,253,193,6,131,253,193,8,131,253,193,10,131,253,193,12,131,253,193,14,131,253,193,16,131,253,193,18,131,253,193,20,131,253,193,22,131,253,193,24,131,253,193,26,131,253,193,44,131,253,193,46,131,253,193,48,131,253,193,50,131,253,193,52,131,253,193,54,131,253,193,56,131,253,193,58,131,253,193,60,131,253,193,78,131,253,193,80,131,253,193,82,131,253,193,84,131,253,193,86,131,253,193,88,131,253,193,90,131,253,193,92,131,253,193,94,131,253,193,96,131,253,193,28,131,253,193,62,131,253,193,124,131,253,193,126,131,253,193,128,131,253,193,146,131,253,193,148,131,253,193,150,131,253,193,160,131,253,193,172,131,253,193,84,132,253,193,154,132,253,193,218,132,253,193,220,132,253,193,16,133,253,193,90,133,253,193,92,133,253,193,154,133,253,193,46,134,253,193,48,134,253,193,50,134,253,193,100,134,253,193,102,134,253,193,128,134,253,193,220,134,253,193,26,135,253,193,28,135,253,193,98,135,253,193,12,136,253,193,14,136,253,193,146,136,253,193,148,136,253,193,98,131,253,193,100,131,253,193,116,131,253,193,118,131,253,193,120,131,253,193,122,131,253,193,134,131,253,193,136,131,253,193,138,131,253,193,140,131,253,193,142,131,253,193,144,131,253,193,156,131,253,193,158,131,253,193,162,131,253,193,164,131,253,193,168,131,253,193,170,131,253,193,178,131,253,193,180,131,253,193,182,131,253,193,184,131,253,193,190,131,253,193,192,131,253,193,194,131,253,193,196,131,253,193,198,131,253,193,200,131,253,193,206,131,253,193,208,131,253,193,210,131,253,193,214,131,253,193,106,131,253,193,108,131,253,193,110,131,253,193,152,131,253,193,154,131,253,193,248,131,253,193,26,132,253,193,28,132,253,193,30,132,253,193,94,132,253,193,158,133,253,193,212,133,253,193,254,133,253,193,52,134,253,193,104,134,253,193,106,134,253,193,164,134,253,193,190,134,253,193,108,135,253,193,110,135,253,193,24,136,253,193,26,136,253,193,28,136,253,193,30,136,253,193,32,136,253,193,34,136,253,193,36,136,253,193,174,136,253,193,176,136,253,193,178,136,253,193,180,136,253,193,182,136,253,193,218,131,253,193,220,131,253,193,222,131,253,193,224,131,253,193,226,131,253,193,242,131,253,193,244,131,253,193,246,131,253,193,4,132,253,193,6,132,253,193,8,132,253,193,10,132,253,193,12,132,253,193,14,132,253,193,16,132,253,193,18,132,253,193,20,132,253,193,22,132,253,193,54,132,253,193,56,132,253,193,58,132,253,193,60,132,253,193,62,132,253,193,64,132,253,193,66,132,253,193,68,132,253,193,70,132,253,193,72,132,253,193,74,132,253,193,76,132,253,193,78,132,253,193,80,132,253,193,252,131,253,193,32,132,253,193,34,132,253,193,36,132,253,193,38,132,253,193,40,132,253,193,42,132,253,193,44,132,253,193,46,132,253,193,96,132,253,193,98,132,253,193,100,132,253,193,102,132,253,193,104,132,253,193,106,132,253,193,108,132,253,193,158,132,253,193,160,132,253,193,162,132,253,193,222,132,253,193,20,133,253,193,22,133,253,193,100,133,253,193,160,133,253,193,162,133,253,193,164,133,253,193,166,133,253,193,168,133,253,193,170,133,253,193,172,133,253,193,174,133,253,193,176,133,253,193,118,132,253,193,120,132,253,193,122,132,253,193,124,132,253,193,126,132,253,193,128,132,253,193,130,132,253,193,132,132,253,193,134,132,253,193,136,132,253,193,138,132,253,193,140,132,253,193,142,132,253,193,144,132,253,193,146,132,253,193,148,132,253,193,150,132,253,193,152,132,253,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,193,228,132,253,193,230,132,253,193,232,132,253,193,234,132,253,193,236,132,253,193,238,132,253,193,240,132,253,193,242,132,253,193,244,132,253,193,246,132,253,193,248,132,253,193,250,132,253,193,252,132,253,193,254,132,253,193,2,133,253,193,4,133,253,193,6,133,253,193,8,133,253,193,10,133,253,193,12,133,253,193,14,133,253,193,28,133,253,193,30,133,253,193,32,133,253,193,34,133,253,193,36,133,253,193,38,133,253,193,40,133,253,193,42,133,253,193,44,133,253,193,46,133,253,193,48,133,253,193,50,133,253,193,52,133,253,193,54,133,253,193,56,133,253,193,58,133,253,193,60,133,253,193,62,133,253,193,64,133,253,193,66,133,253,193,68,133,253,193,70,133,253,193,72,133,253,193,74,133,253,193,76,133,253,193,78,133,253,193,80,133,253,193,82,133,253,193,84,133,253,193,86,133,253,193,88,133,253,193,106,133,253,193,108,133,253,193,110,133,253,193,112,133,253,193,114,133,253,193,116,133,253,193,118,133,253,193,120,133,253,193,122,133,253,193,124,133,253,193,126,133,253,193,128,133,253,193,130,133,253,193,132,133,253,193,134,133,253,193,136,133,253,193,138,133,253,193,140,133,253,193,142,133,253,193,144,133,253,193,146,133,253,193,148,133,253,193,150,133,253,193,152,133,253,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,193,156,133,253,193,210,133,253,193,146,134,253,193,162,134,253,193,180,134,253,193,222,134,253,193,30,135,253,193,32,135,253,193,34,135,253,193,36,135,253,193,100,135,253,193,102,135,253,193,104,135,253,193,106,135,253,193,180,135,253,193,182,135,253,193,16,136,253,193,18,136,253,193,20,136,253,193,22,136,253,193,158,136,253,193,160,136,253,193,162,136,253,193,164,136,253,193,166,136,253,193,168,136,253,193,170,136,253,193,172,136,253,206,192,107,0,206,192,107,0,206,192,107,0,206,192,107,0,193,178,133,253,193,214,133,253,193,216,133,253,193,218,133,253,193,54,134,253,193,130,134,253,193,132,134,253,193,166,134,253,193,178,134,253,193,192,134,253,193,194,134,253,193,196,134,253,193,224,134,253,193,226,134,253,193,228,134,253,193,230,134,253,193,232,134,253,193,234,134,253,193,236,134,253,193,238,134,253,193,38,135,253,193,40,135,253,193,42,135,253,193,44,135,253,193,46,135,253,193,48,135,253,193,50,135,253,193,52,135,253,193,54,135,253,193,56,135,253,193,58,135,253,193,112,135,253,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,193,222,133,253,193,224,133,253,193,226,133,253,193,228,133,253,193,230,133,253,193,232,133,253,193,234,133,253,193,236,133,253,193,238,133,253,193,240,133,253,193,242,133,253,193,244,133,253,193,246,133,253,193,248,133,253,193,250,133,253,193,252,133,253,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,193,56,134,253,193,58,134,253,193,60,134,253,193,62,134,253,193,64,134,253,193,66,134,253,193,68,134,253,193,70,134,253,193,72,134,253,193,74,134,253,193,76,134,253,193,78,134,253,193,82,134,253,193,84,134,253,193,86,134,253,193,88,134,253,193,90,134,253,193,92,134,253,193,94,134,253,193,96,134,253,193,98,134,253,206,96,107,0,206,96,107,0,206,96,107,0,206,96,107,0,206,96,107,0,206,96,107,0,193,134,134,253,193,136,134,253,193,138,134,253,193,140,134,253,193,142,134,253,193,144,134,253,193,150,134,253,193,152,134,253,193,154,134,253,193,156,134,253,193,158,134,253,193,160,134,253,193,168,134,253,193,170,134,253,193,174,134,253,193,176,134,253,193,182,134,253,193,184,134,253,193,186,134,253,193,200,134,253,193,202,134,253,193,204,134,253,193,206,134,253,193,208,134,253,193,210,134,253,193,212,134,253,193,214,134,253,193,216,134,253,193,244,134,253,193,246,134,253,193,248,134,253,193,250,134,253,193,252,134,253,193,254,134,253,193,2,135,253,193,4,135,253,193,6,135,253,193,8,135,253,193,10,135,253,193,12,135,253,193,14,135,253,193,16,135,253,193,18,135,253,193,20,135,253,193,62,135,253,193,64,135,253,193,66,135,253,193,68,135,253,193,70,135,253,193,72,135,253,193,74,135,253,193,76,135,253,193,78,135,253,193,80,135,253,193,82,135,253,193,84,135,253,193,86,135,253,193,88,135,253,193,24,135,253,193,94,135,253,193,96,135,253,193,176,135,253,193,178,135,253,193,8,136,253,193,10,136,253,193,142,136,253,193,144,136,253,193,28,137,253,193,30,137,253,193,156,137,253,193,16,138,253,193,18,138,253,193,108,138,253,193,110,138,253,193,112,138,253,193,114,138,253,193,190,138,253,193,6,139,253,193,8,139,253,193,96,139,253,193,98,139,253,193,186,139,253,193,222,139,253,193,244,139,253,193,246,139,253,193,22,140,253,193,32,140,253,193,102,140,253,193,142,140,253,193,148,140,253,193,90,135,253,193,92,135,253,193,134,135,253,193,136,135,253,193,138,135,253,193,140,135,253,193,142,135,253,193,144,135,253,193,146,135,253,193,148,135,253,193,150,135,253,193,152,135,253,193,154,135,253,193,156,135,253,193,158,135,253,193,160,135,253,193,162,135,253,193,164,135,253,193,166,135,253,193,168,135,253,193,170,135,253,193,172,135,253,193,174,135,253,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,193,114,135,253,193,116,135,253,193,184,135,253,193,186,135,253,193,188,135,253,193,190,135,253,193,192,135,253,193,194,135,253,193,196,135,253,193,198,135,253,193,200,135,253,193,38,136,253,193,40,136,253,193,42,136,253,193,44,136,253,193,46,136,253,193,48,136,253,193,50,136,253,193,52,136,253,193,54,136,253,193,56,136,253,193,58,136,253,193,60,136,253,193,62,136,253,193,184,136,253,193,186,136,253,193,188,136,253,193,190,136,253,193,192,136,253,193,194,136,253,193,196,136,253,193,198,136,253,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,193,216,136,253,193,218,136,253,193,220,136,253,193,222,136,253,193,224,136,253,193,226,136,253,193,228,136,253,193,230,136,253,193,232,136,253,193,84,137,253,193,234,136,253,193,150,136,253,193,152,136,253,193,154,136,253,193,156,136,253,193,32,137,253,193,34,137,253,193,36,137,253,193,38,137,253,193,158,137,253,193,20,138,253,193,22,138,253,193,116,138,253,193,118,138,253,193,120,138,253,193,192,138,253,193,194,138,253,193,196,138,253,193,10,139,253,193,12,139,253,193,14,139,253,193,16,139,253,193,164,139,253,193,188,139,253,193,248,139,253,193,250,139,253,193,64,140,253,193,92,140,253,193,94,140,253,193,118,140,253,193,124,140,253,193,128,140,253,193,144,140,253,193,200,136,253,193,62,137,253,193,64,137,253,193,66,137,253,193,68,137,253,193,70,137,253,193,176,137,253,193,178,137,253,193,180,137,253,193,182,137,253,193,184,137,253,193,186,137,253,193,188,137,253,193,190,137,253,193,28,138,253,193,30,138,253,193,32,138,253,193,34,138,253,193,36,138,253,193,38,138,253,193,40,138,253,193,134,138,253,193,136,138,253,193,138,138,253,193,140,138,253,193,142,138,253,193,144,138,253,193,146,138,253,193,206,138,253,193,208,138,253,193,210,138,253,193,212,138,253,193,206,136,253,193,208,136,253,193,210,136,253,193,212,136,253,193,214,136,253,193,72,137,253,193,74,137,253,193,76,137,253,193,78,137,253,193,80,137,253,193,82,137,253,193,192,137,253,193,194,137,253,193,196,137,253,193,198,137,253,193,200,137,253,193,42,138,253,193,44,138,253,193,216,138,253,193,218,138,253,193,220,138,253,193,32,139,253,193,34,139,253,193,78,139,253,193,106,139,253,193,162,139,253,193,202,139,253,193,212,139,253,193,38,140,253,193,52,140,253,193,54,140,253,193,68,140,253,193,236,136,253,193,238,136,253,193,240,136,253,193,242,136,253,193,244,136,253,193,246,136,253,193,248,136,253,193,250,136,253,193,252,136,253,193,254,136,253,193,2,137,253,193,4,137,253,193,6,137,253,193,8,137,253,193,10,137,253,193,12,137,253,193,14,137,253,193,16,137,253,193,18,137,253,193,20,137,253,193,22,137,253,193,24,137,253,193,26,137,253,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,192,107,0,206,192,107,0,206,192,107,0,206,192,107,0,193,160,137,253,193,162,137,253,193,164,137,253,193,166,137,253,193,168,137,253,193,170,137,253,193,172,137,253,193,174,137,253,193,24,138,253,193,122,138,253,193,124,138,253,193,126,138,253,193,128,138,253,193,130,138,253,193,132,138,253,193,198,138,253,193,200,138,253,193,202,138,253,193,204,138,253,193,18,139,253,193,20,139,253,193,22,139,253,193,24,139,253,193,26,139,253,193,54,139,253,193,100,139,253,193,128,139,253,193,150,139,253,193,56,137,253,193,58,137,253,193,60,137,253,193,26,138,253,193,28,139,253,193,56,139,253,193,58,139,253,193,60,139,253,193,62,139,253,193,102,139,253,193,194,139,253,193,200,139,253,193,214,139,253,193,10,140,253,193,12,140,253,193,140,140,253,193,68,141,253,193,198,141,253,193,22,142,253,193,120,142,253,193,208,142,253,193,210,142,253,193,42,143,253,193,142,143,253,193,16,144,253,193,18,144,253,193,20,144,253,193,126,144,253,193,128,144,253,193,20,145,253,193,146,145,253,193,210,145,253,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,193,46,138,253,193,48,138,253,193,50,138,253,193,52,138,253,193,54,138,253,193,56,138,253,193,58,138,253,193,60,138,253,193,62,138,253,193,64,138,253,193,66,138,253,193,68,138,253,193,70,138,253,193,72,138,253,193,74,138,253,193,76,138,253,193,78,138,253,193,80,138,253,193,82,138,253,193,84,138,253,193,86,138,253,193,88,138,253,193,90,138,253,193,92,138,253,193,94,138,253,193,96,138,253,193,98,138,253,193,100,138,253,193,102,138,253,193,104,138,253,193,106,138,253,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,193,214,138,253,193,30,139,253,193,64,139,253,193,66,139,253,193,68,139,253,193,70,139,253,193,72,139,253,193,74,139,253,193,76,139,253,193,104,139,253,193,130,139,253,193,152,139,253,193,154,139,253,193,156,139,253,193,158,139,253,193,174,139,253,193,206,139,253,193,216,139,253,193,218,139,253,193,224,139,253,193,226,139,253,193,232,139,253,193,234,139,253,193,254,139,253,193,2,140,253,193,4,140,253,193,8,140,253,193,14,140,253,193,16,140,253,193,26,140,253,193,44,140,253,193,66,140,253,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,193,36,139,253,193,38,139,253,193,40,139,253,193,42,139,253,193,44,139,253,193,46,139,253,193,48,139,253,193,50,139,253,193,52,139,253,193,80,139,253,193,82,139,253,193,84,139,253,193,86,139,253,193,88,139,253,193,90,139,253,193,92,139,253,193,94,139,253,193,108,139,253,193,110,139,253,193,112,139,253,193,114,139,253,193,116,139,253,193,118,139,253,193,120,139,253,193,122,139,253,193,124,139,253,193,126,139,253,193,132,139,253,193,134,139,253,193,136,139,253,193,138,139,253,193,140,139,253,193,142,139,253,193,144,139,253,193,146,139,253,193,148,139,253,193,170,139,253,193,172,139,253,193,176,139,253,193,178,139,253,193,180,139,253,193,182,139,253,193,184,139,253,193,192,139,253,193,196,139,253,193,198,139,253,193,204,139,253,193,208,139,253,193,210,139,253,193,220,139,253,193,228,139,253,193,230,139,253,193,236,139,253,193,238,139,253,193,240,139,253,193,242,139,253,193,6,140,253,193,18,140,253,193,20,140,253,193,24,140,253,193,166,139,253,193,168,139,253,193,190,139,253,193,252,139,253,193,86,140,253,193,96,140,253,193,98,140,253,193,104,140,253,193,146,140,253,193,164,140,253,193,222,140,253,193,224,140,253,193,248,140,253,193,24,141,253,193,44,141,253,193,60,141,253,193,88,141,253,193,116,141,253,193,118,141,253,193,162,141,253,193,20,142,253,193,114,142,253,193,116,142,253,193,118,142,253,193,204,142,253,193,206,142,253,193,34,143,253,193,36,143,253,193,38,143,253,193,40,143,253,193,140,143,253,193,8,144,253,193,28,140,253,193,30,140,253,193,34,140,253,193,36,140,253,193,40,140,253,193,42,140,253,193,46,140,253,193,48,140,253,193,50,140,253,193,56,140,253,193,58,140,253,193,60,140,253,193,62,140,253,193,70,140,253,193,72,140,253,193,74,140,253,193,76,140,253,193,78,140,253,193,80,140,253,193,82,140,253,193,84,140,253,193,88,140,253,193,90,140,253,193,100,140,253,193,110,140,253,193,112,140,253,193,114,140,253,193,116,140,253,193,120,140,253,193,122,140,253,193,132,140,253,193,134,140,253,193,106,140,253,193,126,140,253,193,152,140,253,193,154,140,253,193,186,140,253,193,226,140,253,193,250,140,253,193,90,141,253,193,126,141,253,193,160,141,253,193,164,141,253,193,170,141,253,193,172,141,253,193,174,141,253,193,176,141,253,193,178,141,253,193,180,141,253,193,182,141,253,193,200,141,253,193,202,141,253,193,204,141,253,193,206,141,253,193,208,141,253,193,210,141,253,193,212,141,253,193,214,141,253,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,193,108,140,253,193,130,140,253,193,166,140,253,193,168,140,253,193,170,140,253,193,188,140,253,193,190,140,253,193,192,140,253,193,252,140,253,193,254,140,253,193,26,141,253,193,70,141,253,193,92,141,253,193,94,141,253,193,120,141,253,193,138,141,253,193,184,141,253,193,186,141,253,193,188,141,253,193,216,141,253,193,218,141,253,193,220,141,253,193,222,141,253,193,224,141,253,193,226,141,253,193,50,142,253,193,52,142,253,193,54,142,253,193,56,142,253,193,58,142,253,193,60,142,253,193,146,142,253,193,136,140,253,193,138,140,253,193,150,140,253,193,158,140,253,193,160,140,253,193,162,140,253,193,172,140,253,193,174,140,253,193,176,140,253,193,178,140,253,193,180,140,253,193,182,140,253,193,184,140,253,193,194,140,253,193,196,140,253,193,198,140,253,193,200,140,253,193,202,140,253,193,204,140,253,193,206,140,253,193,208,140,253,193,210,140,253,193,212,140,253,193,214,140,253,193,216,140,253,193,230,140,253,193,232,140,253,193,234,140,253,193,236,140,253,193,238,140,253,193,240,140,253,193,242,140,253,193,218,140,253,193,246,140,253,193,22,141,253,193,58,141,253,193,114,141,253,193,110,142,253,193,112,142,253,193,198,142,253,193,200,142,253,193,202,144,253,193,10,145,253,193,70,145,253,193,204,145,253,193,224,145,253,193,110,146,253,193,202,146,253,193,10,147,253,193,38,147,253,193,60,147,253,193,74,147,253,193,92,147,253,193,94,147,253,193,96,147,253,193,214,147,253,193,230,147,253,193,58,148,253,193,102,148,253,193,110,148,253,193,134,148,253,193,16,149,253,193,120,149,253,193,144,150,253,193,220,140,253,193,42,141,253,193,84,141,253,193,86,141,253,193,202,142,253,193,32,143,253,193,138,143,253,193,6,144,253,193,12,145,253,193,14,145,253,193,226,145,253,193,44,146,253,193,46,146,253,193,48,146,253,193,148,146,253,193,254,146,253,193,16,147,253,193,34,147,253,193,40,147,253,193,52,147,253,193,54,147,253,193,86,147,253,193,98,147,253,193,100,147,253,193,106,147,253,193,232,147,253,193,234,147,253,193,236,147,253,193,4,148,253,193,28,148,253,193,136,148,253,193,160,148,253,193,244,140,253,193,2,141,253,193,4,141,253,193,6,141,253,193,8,141,253,193,10,141,253,193,12,141,253,193,14,141,253,193,16,141,253,193,18,141,253,193,20,141,253,193,28,141,253,193,30,141,253,193,32,141,253,193,34,141,253,193,36,141,253,193,38,141,253,193,40,141,253,193,46,141,253,193,48,141,253,193,50,141,253,193,52,141,253,193,54,141,253,193,56,141,253,193,62,141,253,193,64,141,253,193,66,141,253,193,72,141,253,193,74,141,253,193,76,141,253,193,78,141,253,193,80,141,253,193,82,141,253,193,96,141,253,193,98,141,253,193,100,141,253,193,102,141,253,193,104,141,253,193,106,141,253,193,108,141,253,193,110,141,253,193,112,141,253,193,122,141,253,193,124,141,253,193,128,141,253,193,130,141,253,193,132,141,253,193,134,141,253,193,136,141,253,193,140,141,253,193,142,141,253,193,144,141,253,193,146,141,253,193,148,141,253,193,150,141,253,193,152,141,253,193,154,141,253,193,156,141,253,193,158,141,253,193,166,141,253,193,168,141,253,193,190,141,253,193,192,141,253,193,194,141,253,193,196,141,253,193,228,141,253,193,230,141,253,193,232,141,253,193,234,141,253,193,236,141,253,193,238,141,253,193,240,141,253,193,242,141,253,193,244,141,253,193,246,141,253,193,248,141,253,193,250,141,253,193,252,141,253,193,254,141,253,193,2,142,253,193,4,142,253,193,6,142,253,193,8,142,253,193,10,142,253,193,12,142,253,193,14,142,253,193,16,142,253,193,18,142,253,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,193,122,142,253,193,124,142,253,193,126,142,253,193,128,142,253,193,130,142,253,193,132,142,253,193,134,142,253,193,136,142,253,193,138,142,253,193,140,142,253,193,142,142,253,193,144,142,253,193,212,142,253,193,214,142,253,193,216,142,253,193,218,142,253,193,220,142,253,193,222,142,253,193,224,142,253,193,44,143,253,193,46,143,253,193,48,143,253,193,50,143,253,193,52,143,253,193,54,143,253,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,193,242,142,253,193,244,142,253,193,246,142,253,193,248,142,253,193,250,142,253,193,252,142,253,193,254,142,253,193,2,143,253,193,4,143,253,193,6,143,253,193,8,143,253,193,10,143,253,193,12,143,253,193,14,143,253,193,16,143,253,193,18,143,253,193,20,143,253,193,22,143,253,193,24,143,253,193,26,143,253,193,28,143,253,193,30,143,253,193,74,143,253,193,226,142,253,193,228,142,253,193,230,142,253,193,232,142,253,193,234,142,253,193,236,142,253,193,238,142,253,193,240,142,253,193,60,143,253,193,62,143,253,193,64,143,253,193,66,143,253,193,68,143,253,193,70,143,253,193,72,143,253,193,174,143,253,193,176,143,253,193,178,143,253,193,180,143,253,193,182,143,253,193,184,143,253,193,186,143,253,193,36,144,253,193,38,144,253,193,40,144,253,193,42,144,253,193,44,144,253,193,46,144,253,193,138,144,253,193,140,144,253,193,142,144,253,193,220,144,253,193,56,143,253,193,58,143,253,193,144,143,253,193,146,143,253,193,148,143,253,193,150,143,253,193,152,143,253,193,154,143,253,193,156,143,253,193,158,143,253,193,160,143,253,193,162,143,253,193,164,143,253,193,166,143,253,193,168,143,253,193,170,143,253,193,172,143,253,193,22,144,253,193,24,144,253,193,26,144,253,193,28,144,253,193,30,144,253,193,32,144,253,193,34,144,253,193,130,144,253,193,132,144,253,193,134,144,253,193,136,144,253,193,212,144,253,193,214,144,253,193,216,144,253,193,218,144,253,193,76,143,253,193,78,143,253,193,80,143,253,193,82,143,253,193,84,143,253,193,86,143,253,193,88,143,253,193,90,143,253,193,92,143,253,193,94,143,253,193,96,143,253,193,98,143,253,193,100,143,253,193,102,143,253,193,104,143,253,193,106,143,253,193,108,143,253,193,110,143,253,193,112,143,253,193,114,143,253,193,116,143,253,193,118,143,253,193,120,143,253,193,122,143,253,193,124,143,253,193,126,143,253,193,128,143,253,193,130,143,253,193,132,143,253,193,134,143,253,193,136,143,253,193,188,143,253,193,190,143,253,193,192,143,253,193,194,143,253,193,196,143,253,193,198,143,253,193,200,143,253,193,202,143,253,193,204,143,253,193,206,143,253,193,208,143,253,193,210,143,253,193,212,143,253,193,214,143,253,193,216,143,253,193,218,143,253,193,220,143,253,193,222,143,253,193,224,143,253,193,226,143,253,193,228,143,253,193,230,143,253,193,232,143,253,193,234,143,253,193,236,143,253,193,238,143,253,193,240,143,253,193,242,143,253,193,244,143,253,193,246,143,253,193,248,143,253,193,250,143,253,193,252,143,253,193,254,143,253,193,2,144,253,193,4,144,253,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,193,10,144,253,193,12,144,253,193,14,144,253,193,120,144,253,193,122,144,253,193,124,144,253,193,204,144,253,193,206,144,253,193,208,144,253,193,210,144,253,193,16,145,253,193,18,145,253,193,72,145,253,193,74,145,253,193,198,145,253,193,200,145,253,193,202,145,253,193,50,146,253,193,150,146,253,193,226,146,253,193,42,147,253,193,62,147,253,193,198,147,253,193,200,147,253,193,238,147,253,193,6,148,253,193,8,148,253,193,30,148,253,193,60,148,253,193,82,148,253,193,112,148,253,193,126,148,253,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,193,144,144,253,193,146,144,253,193,148,144,253,193,150,144,253,193,152,144,253,193,154,144,253,193,156,144,253,193,158,144,253,193,160,144,253,193,162,144,253,193,164,144,253,193,166,144,253,193,168,144,253,193,170,144,253,193,172,144,253,193,174,144,253,193,176,144,253,193,178,144,253,193,180,144,253,193,182,144,253,193,184,144,253,193,186,144,253,193,188,144,253,193,190,144,253,193,192,144,253,193,194,144,253,193,196,144,253,193,198,144,253,193,200,144,253,193,232,144,253,193,234,144,253,193,236,144,253,193,238,144,253,193,240,144,253,193,242,144,253,193,244,144,253,193,246,144,253,193,248,144,253,193,250,144,253,193,252,144,253,193,254,144,253,193,2,145,253,193,4,145,253,193,6,145,253,193,8,145,253,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,193,222,144,253,193,224,144,253,193,226,144,253,193,228,144,253,193,230,144,253,193,30,145,253,193,32,145,253,193,80,145,253,193,82,145,253,193,116,145,253,193,130,145,253,193,132,145,253,193,150,145,253,193,152,145,253,193,170,145,253,193,212,145,253,193,234,145,253,193,236,145,253,193,238,145,253,193,240,145,253,193,54,146,253,193,82,146,253,193,122,146,253,193,124,146,253,193,126,146,253,193,160,146,253,193,162,146,253,193,208,146,253,193,230,146,253,193,244,146,253,193,112,147,253,193,122,147,253,193,22,145,253,193,24,145,253,193,26,145,253,193,28,145,253,193,76,145,253,193,78,145,253,193,110,145,253,193,112,145,253,193,114,145,253,193,148,145,253,193,180,145,253,193,196,145,253,193,206,145,253,193,230,145,253,193,232,145,253,193,14,146,253,193,16,146,253,193,18,146,253,193,52,146,253,193,76,146,253,193,78,146,253,193,80,146,253,193,112,146,253,193,114,146,253,193,116,146,253,193,118,146,253,193,120,146,253,193,182,146,253,193,152,146,253,193,154,146,253,193,156,146,253,193,158,146,253,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,193,84,145,253,193,86,145,253,193,88,145,253,193,90,145,253,193,92,145,253,193,94,145,253,193,96,145,253,193,98,145,253,193,100,145,253,193,102,145,253,193,104,145,253,193,106,145,253,193,108,145,253,193,118,145,253,193,120,145,253,193,122,145,253,193,124,145,253,193,126,145,253,193,128,145,253,193,134,145,253,193,136,145,253,193,138,145,253,193,102,181,253,193,140,145,253,193,142,145,253,193,144,145,253,193,154,145,253,193,156,145,253,193,158,145,253,193,160,145,253,193,162,145,253,193,164,145,253,193,166,145,253,193,168,145,253,193,172,145,253,193,174,145,253,193,176,145,253,193,178,145,253,193,182,145,253,193,184,145,253,193,186,145,253,193,188,145,253,193,190,145,253,193,192,145,253,193,194,145,253,193,208,145,253,193,214,145,253,193,216,145,253,193,218,145,253,193,220,145,253,193,222,145,253,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,193,228,145,253,193,12,146,253,193,74,146,253,193,44,147,253,193,56,147,253,193,58,147,253,193,64,147,253,193,66,147,253,193,68,147,253,193,70,147,253,193,88,147,253,193,102,147,253,193,104,147,253,193,118,147,253,193,160,147,253,193,202,147,253,193,32,148,253,193,34,148,253,193,62,148,253,193,64,148,253,193,24,149,253,193,26,149,253,193,246,149,253,193,248,149,253,193,160,150,253,193,162,150,253,193,252,151,253,193,254,151,253,193,2,152,253,193,152,152,253,193,244,152,253,193,52,153,253,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,193,20,146,253,193,22,146,253,193,24,146,253,193,26,146,253,193,28,146,253,193,30,146,253,193,32,146,253,193,34,146,253,193,36,146,253,193,38,146,253,193,40,146,253,193,56,146,253,193,58,146,253,193,60,146,253,193,62,146,253,193,64,146,253,193,66,146,253,193,68,146,253,193,70,146,253,193,72,146,253,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,193,128,146,253,193,130,146,253,193,132,146,253,193,134,146,253,193,136,146,253,193,138,146,253,193,140,146,253,193,142,146,253,193,144,146,253,193,146,146,253,193,164,146,253,193,166,146,253,193,168,146,253,193,170,146,253,193,172,146,253,193,174,146,253,193,176,146,253,193,178,146,253,193,180,146,253,193,186,146,253,193,188,146,253,193,190,146,253,193,192,146,253,193,194,146,253,193,196,146,253,193,198,146,253,193,200,146,253,193,184,146,253,193,204,146,253,193,206,146,253,193,228,146,253,193,2,147,253,193,4,147,253,193,30,147,253,193,32,147,253,193,46,147,253,193,72,147,253,193,76,147,253,193,78,147,253,193,90,147,253,193,108,147,253,193,110,147,253,193,120,147,253,193,126,147,253,193,130,147,253,193,142,147,253,193,184,147,253,193,204,147,253,193,206,147,253,193,216,147,253,193,218,147,253,193,10,148,253,193,44,148,253,193,46,148,253,193,66,148,253,193,68,148,253,193,84,148,253,193,86,148,253,193,88,148,253,193,210,146,253,193,212,146,253,193,214,146,253,193,216,146,253,193,218,146,253,193,220,146,253,193,222,146,253,193,224,146,253,193,232,146,253,193,234,146,253,193,236,146,253,193,238,146,253,193,240,146,253,193,242,146,253,193,246,146,253,193,248,146,253,193,250,146,253,193,252,146,253,193,6,147,253,193,8,147,253,193,12,147,253,193,14,147,253,193,18,147,253,193,20,147,253,193,22,147,253,193,24,147,253,193,26,147,253,193,28,147,253,193,36,147,253,193,48,147,253,193,50,147,253,193,80,147,253,193,82,147,253,193,114,147,253,193,116,147,253,193,124,147,253,193,128,147,253,193,134,147,253,193,136,147,253,193,138,147,253,193,140,147,253,193,148,147,253,193,150,147,253,193,154,147,253,193,164,147,253,193,156,147,253,193,158,147,253,193,166,147,253,193,168,147,253,193,170,147,253,193,172,147,253,193,174,147,253,193,178,147,253,193,180,147,253,193,182,147,253,193,196,147,253,193,210,147,253,193,212,147,253,193,222,147,253,193,224,147,253,193,226,147,253,193,228,147,253,193,240,147,253,193,242,147,253,193,132,147,253,193,144,147,253,193,146,147,253,193,152,147,253,193,162,147,253,193,176,147,253,193,190,147,253,193,192,147,253,193,194,147,253,193,208,147,253,193,220,147,253,193,12,148,253,193,14,148,253,193,48,148,253,193,70,148,253,193,72,148,253,193,114,148,253,193,172,148,253,193,174,148,253,193,218,148,253,193,220,148,253,193,222,148,253,193,40,149,253,193,42,149,253,193,44,149,253,193,46,149,253,193,48,149,253,193,50,149,253,193,52,149,253,193,54,149,253,193,56,149,253,193,166,149,253,193,244,147,253,193,246,147,253,193,248,147,253,193,250,147,253,193,252,147,253,193,254,147,253,193,2,148,253,193,16,148,253,193,18,148,253,193,20,148,253,193,22,148,253,193,24,148,253,193,26,148,253,193,36,148,253,193,38,148,253,193,40,148,253,193,42,148,253,193,50,148,253,193,52,148,253,193,54,148,253,193,56,148,253,193,74,148,253,193,76,148,253,193,78,148,253,193,80,148,253,193,90,148,253,193,92,148,253,193,94,148,253,193,96,148,253,193,98,148,253,193,100,148,253,193,104,148,253,193,106,148,253,193,108,148,253,193,116,148,253,193,118,148,253,193,120,148,253,193,122,148,253,193,124,148,253,193,130,148,253,193,132,148,253,193,138,148,253,193,140,148,253,193,144,148,253,193,152,148,253,193,154,148,253,193,156,148,253,193,158,148,253,193,176,148,253,193,178,148,253,193,180,148,253,193,182,148,253,193,184,148,253,193,186,148,253,193,188,148,253,193,190,148,253,193,192,148,253,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,193,128,148,253,193,142,148,253,193,146,148,253,193,148,148,253,193,150,148,253,193,162,148,253,193,164,148,253,193,166,148,253,193,168,148,253,193,170,148,253,193,196,148,253,193,198,148,253,193,200,148,253,193,202,148,253,193,204,148,253,193,206,148,253,193,208,148,253,193,210,148,253,193,212,148,253,193,214,148,253,193,28,149,253,193,30,149,253,193,32,149,253,193,34,149,253,193,36,149,253,193,216,148,253,193,38,149,253,206,128,109,0,206,128,109,0,206,128,109,0,206,128,109,0,206,128,109,0,193,194,148,253,193,122,149,253,193,124,149,253,193,236,149,253,193,148,150,253,193,150,150,253,193,152,150,253,193,154,150,253,193,24,151,253,193,26,151,253,193,142,151,253,193,144,151,253,193,70,152,253,193,72,152,253,193,146,152,253,193,194,152,253,193,16,153,253,193,50,153,253,193,68,153,253,193,76,153,253,193,112,153,253,193,114,153,253,193,130,153,253,193,132,153,253,193,134,153,253,193,136,153,253,193,138,153,253,193,164,153,253,193,166,153,253,193,168,153,253,193,170,153,253,193,172,153,253,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,193,18,149,253,193,20,149,253,193,22,149,253,193,126,149,253,193,128,149,253,193,130,149,253,193,132,149,253,193,238,149,253,193,240,149,253,193,242,149,253,193,244,149,253,193,156,150,253,193,158,150,253,193,28,151,253,193,30,151,253,193,32,151,253,193,34,151,253,193,36,151,253,193,38,151,253,193,40,151,253,193,42,151,253,193,146,151,253,193,148,151,253,193,242,151,253,193,244,151,253,193,246,151,253,193,248,151,253,193,250,151,253,193,74,152,253,193,76,152,253,193,148,152,253,193,150,152,253,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,128,109,0,206,128,109,0,206,128,109,0,206,128,109,0,193,250,149,253,193,252,149,253,193,152,149,253,193,154,149,253,193,156,149,253,193,158,149,253,193,160,149,253,193,162,149,253,193,164,149,253,193,254,149,253,193,2,150,253,193,4,150,253,193,6,150,253,193,8,150,253,193,10,150,253,193,12,150,253,193,14,150,253,193,16,150,253,193,18,150,253,193,20,150,253,193,22,150,253,193,24,150,253,193,26,150,253,193,28,150,253,193,30,150,253,193,32,150,253,193,44,151,253,193,164,150,253,193,168,149,253,193,170,149,253,193,172,149,253,193,34,150,253,193,36,150,253,193,38,150,253,193,40,150,253,193,42,150,253,193,44,150,253,193,46,150,253,193,48,150,253,193,188,150,253,193,190,150,253,193,192,150,253,193,194,150,253,193,196,150,253,193,198,150,253,193,200,150,253,193,202,150,253,193,204,150,253,193,68,151,253,193,70,151,253,193,72,151,253,193,74,151,253,193,76,151,253,193,78,151,253,193,80,151,253,193,82,151,253,193,84,151,253,193,86,151,253,193,168,151,253,193,170,151,253,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,193,206,150,253,193,208,150,253,193,210,150,253,193,146,150,253,193,22,151,253,193,138,151,253,193,140,151,253,193,240,151,253,193,66,152,253,193,68,152,253,193,144,152,253,193,192,152,253,193,14,153,253,193,86,153,253,193,108,153,253,193,126,153,253,193,128,153,253,193,156,153,253,193,158,153,253,193,160,153,253,193,162,153,253,193,206,153,253,193,208,153,253,193,230,153,253,193,232,153,253,193,234,153,253,193,16,154,253,193,38,154,253,193,54,154,253,193,76,154,253,193,160,154,253,193,220,154,253,193,160,155,253,193,240,155,253,193,242,155,253,193,166,150,253,193,168,150,253,193,170,150,253,193,172,150,253,193,174,150,253,193,176,150,253,193,178,150,253,193,180,150,253,193,182,150,253,193,184,150,253,193,186,150,253,193,46,151,253,193,48,151,253,193,50,151,253,193,52,151,253,193,54,151,253,193,56,151,253,193,58,151,253,193,60,151,253,193,62,151,253,193,64,151,253,193,66,151,253,193,150,151,253,193,152,151,253,193,154,151,253,193,156,151,253,193,158,151,253,193,160,151,253,193,162,151,253,193,164,151,253,193,166,151,253,193,4,152,253,193,212,150,253,193,214,150,253,193,216,150,253,193,218,150,253,193,220,150,253,193,222,150,253,193,224,150,253,193,226,150,253,193,228,150,253,193,230,150,253,193,232,150,253,193,234,150,253,193,236,150,253,193,238,150,253,193,240,150,253,193,242,150,253,193,244,150,253,193,246,150,253,193,248,150,253,193,250,150,253,193,252,150,253,193,254,150,253,193,2,151,253,193,4,151,253,193,6,151,253,193,8,151,253,193,10,151,253,193,12,151,253,193,14,151,253,193,16,151,253,193,18,151,253,193,20,151,253,193,88,151,253,193,90,151,253,193,92,151,253,193,94,151,253,193,96,151,253,193,98,151,253,193,100,151,253,193,102,151,253,193,104,151,253,193,106,151,253,193,108,151,253,193,110,151,253,193,112,151,253,193,114,151,253,193,116,151,253,193,118,151,253,193,120,151,253,193,122,151,253,193,124,151,253,193,126,151,253,193,128,151,253,193,130,151,253,193,132,151,253,193,134,151,253,193,136,151,253,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,193,172,151,253,193,174,151,253,193,176,151,253,193,178,151,253,193,180,151,253,193,182,151,253,193,184,151,253,193,186,151,253,193,14,152,253,193,16,152,253,193,18,152,253,193,20,152,253,193,88,152,253,193,90,152,253,193,92,152,253,193,94,152,253,193,96,152,253,193,98,152,253,193,160,152,253,193,162,152,253,193,164,152,253,193,248,152,253,193,250,152,253,193,26,153,253,193,84,154,253,193,96,154,253,193,118,154,253,193,120,154,253,193,122,154,253,193,124,154,253,193,176,154,253,193,178,154,253,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,193,6,152,253,193,8,152,253,193,10,152,253,193,12,152,253,193,78,152,253,193,80,152,253,193,82,152,253,193,84,152,253,193,86,152,253,193,154,152,253,193,156,152,253,193,158,152,253,193,200,152,253,193,202,152,253,193,204,152,253,193,206,152,253,193,246,152,253,193,22,153,253,193,24,153,253,193,54,153,253,193,56,153,253,193,70,153,253,193,72,153,253,193,74,153,253,193,78,153,253,193,80,153,253,193,82,153,253,193,84,153,253,206,32,110,0,206,32,110,0,206,32,110,0,206,32,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,193,100,152,253,193,102,152,253,193,104,152,253,193,106,152,253,193,108,152,253,193,110,152,253,193,112,152,253,193,114,152,253,193,116,152,253,193,118,152,253,193,120,152,253,193,122,152,253,193,124,152,253,193,126,152,253,193,128,152,253,193,130,152,253,193,132,152,253,193,134,152,253,193,136,152,253,193,138,152,253,193,140,152,253,193,142,152,253,193,166,152,253,193,168,152,253,193,170,152,253,193,172,152,253,193,174,152,253,193,176,152,253,193,178,152,253,193,180,152,253,193,182,152,253,193,184,152,253,193,186,152,253,193,188,152,253,193,190,152,253,193,208,152,253,193,210,152,253,193,212,152,253,193,214,152,253,193,216,152,253,193,218,152,253,193,220,152,253,193,222,152,253,193,224,152,253,193,226,152,253,193,228,152,253,193,230,152,253,193,232,152,253,193,234,152,253,193,236,152,253,193,238,152,253,193,240,152,253,193,242,152,253,193,252,152,253,193,254,152,253,193,196,152,253,193,198,152,253,193,18,153,253,193,20,153,253,193,34,153,253,193,36,153,253,193,90,154,253,193,162,154,253,193,222,154,253,193,16,155,253,193,18,155,253,193,20,155,253,193,78,155,253,193,162,155,253,193,164,155,253,193,166,155,253,193,58,156,253,193,96,156,253,193,168,156,253,193,230,156,253,193,62,157,253,193,98,157,253,193,166,157,253,193,246,157,253,193,248,157,253,193,194,158,253,193,196,158,253,193,198,158,253,193,48,159,253,193,52,160,253,193,54,160,253,193,56,160,253,193,2,153,253,193,4,153,253,193,6,153,253,193,8,153,253,193,10,153,253,193,12,153,253,193,28,153,253,193,30,153,253,193,32,153,253,193,38,153,253,193,40,153,253,193,42,153,253,193,44,153,253,193,46,153,253,193,48,153,253,193,58,153,253,193,60,153,253,193,62,153,253,193,64,153,253,193,66,153,253,193,36,206,253,193,226,153,253,193,228,153,253,193,68,154,253,193,86,154,253,193,88,154,253,193,98,154,253,193,100,154,253,193,102,154,253,193,104,154,253,193,106,154,253,193,108,154,253,193,88,153,253,193,116,153,253,193,140,153,253,193,180,153,253,193,182,153,253,193,184,153,253,193,186,153,253,193,188,153,253,193,190,153,253,193,216,153,253,193,218,153,253,193,220,153,253,193,222,153,253,193,250,153,253,193,252,153,253,193,254,153,253,193,2,154,253,193,24,154,253,193,26,154,253,193,28,154,253,193,42,154,253,193,44,154,253,193,46,154,253,193,48,154,253,193,50,154,253,193,52,154,253,193,56,154,253,193,64,154,253,193,164,154,253,193,224,154,253,193,226,154,253,193,228,154,253,206,32,110,0,206,32,110,0,206,32,110,0,206,32,110,0,206,32,110,0,193,118,153,253,193,120,153,253,193,122,153,253,193,124,153,253,193,142,153,253,193,144,153,253,193,146,153,253,193,148,153,253,193,150,153,253,193,152,153,253,193,154,153,253,193,192,153,253,193,194,153,253,193,196,153,253,193,198,153,253,193,200,153,253,193,202,153,253,193,204,153,253,193,224,153,253,193,4,154,253,193,6,154,253,193,8,154,253,193,10,154,253,193,12,154,253,193,14,154,253,193,30,154,253,193,32,154,253,193,174,153,253,193,176,153,253,193,178,153,253,193,210,153,253,193,212,153,253,193,214,153,253,193,236,153,253,193,238,153,253,193,240,153,253,193,242,153,253,193,244,153,253,193,246,153,253,193,248,153,253,193,18,154,253,193,20,154,253,193,22,154,253,193,40,154,253,193,62,154,253,193,72,154,253,193,80,154,253,193,244,155,253,193,252,156,253,193,254,156,253,193,2,157,253,193,18,157,253,193,20,157,253,193,22,157,253,193,24,157,253,193,30,157,253,193,42,157,253,193,56,157,253,193,58,157,253,193,34,154,253,193,36,154,253,193,58,154,253,193,60,154,253,193,66,154,253,193,70,154,253,193,74,154,253,193,78,154,253,193,82,154,253,193,92,154,253,193,94,154,253,193,114,154,253,193,116,154,253,193,166,154,253,193,168,154,253,193,170,154,253,193,172,154,253,193,174,154,253,193,230,154,253,193,232,154,253,193,22,155,253,193,24,155,253,193,86,155,253,193,88,155,253,193,176,155,253,193,178,155,253,193,180,155,253,193,252,155,253,193,254,155,253,193,2,156,253,193,4,156,253,193,6,156,253,193,180,154,253,193,182,154,253,193,184,154,253,193,186,154,253,193,234,154,253,193,236,154,253,193,26,155,253,193,28,155,253,193,30,155,253,193,32,155,253,193,34,155,253,193,90,155,253,193,92,155,253,193,94,155,253,193,96,155,253,193,98,155,253,193,100,155,253,193,182,155,253,193,184,155,253,193,186,155,253,193,188,155,253,193,190,155,253,193,192,155,253,193,194,155,253,193,10,156,253,193,12,156,253,193,14,156,253,193,70,156,253,193,72,156,253,193,116,156,253,193,174,156,253,193,184,156,253,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,193,240,154,253,193,242,154,253,193,244,154,253,193,246,154,253,193,248,154,253,193,250,154,253,193,252,154,253,193,254,154,253,193,2,155,253,193,4,155,253,193,6,155,253,193,8,155,253,193,10,155,253,193,12,155,253,193,14,155,253,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,193,80,155,253,193,82,155,253,193,84,155,253,193,168,155,253,193,170,155,253,193,172,155,253,193,174,155,253,193,246,155,253,193,248,155,253,193,250,155,253,193,60,156,253,193,98,156,253,193,100,156,253,193,102,156,253,193,170,156,253,193,172,156,253,193,198,156,253,193,214,156,253,193,224,156,253,193,226,156,253,193,246,156,253,193,4,157,253,193,26,157,253,193,28,157,253,193,32,157,253,193,34,157,253,193,36,157,253,193,44,157,253,193,64,157,253,193,66,157,253,193,82,157,253,193,100,157,253,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,193,196,155,253,193,198,155,253,193,200,155,253,193,202,155,253,193,204,155,253,193,206,155,253,193,208,155,253,193,210,155,253,193,212,155,253,193,16,156,253,193,214,155,253,193,216,155,253,193,218,155,253,193,220,155,253,193,222,155,253,193,224,155,253,193,226,155,253,193,228,155,253,193,230,155,253,193,232,155,253,193,234,155,253,193,236,155,253,193,238,155,253,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,193,8,156,253,193,62,156,253,193,64,156,253,193,66,156,253,193,68,156,253,193,104,156,253,193,106,156,253,193,108,156,253,193,110,156,253,193,112,156,253,193,114,156,253,193,150,156,253,193,216,156,253,193,218,156,253,193,242,156,253,193,244,156,253,193,6,157,253,193,8,157,253,193,10,157,253,193,46,157,253,193,68,157,253,193,84,157,253,193,70,157,253,193,86,157,253,193,96,157,253,193,102,157,253,193,104,157,253,193,122,157,253,193,148,157,253,193,160,157,253,193,164,157,253,193,170,157,253,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,193,74,156,253,193,76,156,253,193,78,156,253,193,80,156,253,193,82,156,253,193,84,156,253,193,86,156,253,193,88,156,253,193,90,156,253,193,92,156,253,193,94,156,253,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,193,52,156,253,193,54,156,253,193,56,156,253,193,164,156,253,193,166,156,253,193,182,156,253,193,196,156,253,193,248,156,253,193,40,157,253,193,54,157,253,193,76,157,253,193,116,157,253,193,168,157,253,193,70,158,253,193,192,158,253,193,34,159,253,193,36,159,253,193,38,159,253,193,40,159,253,193,150,159,253,193,196,160,253,193,198,160,253,193,200,160,253,193,202,160,253,193,76,161,253,193,186,161,253,193,188,161,253,193,36,162,253,193,178,162,253,193,180,162,253,193,34,163,253,193,62,163,253,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,193,152,156,253,193,154,156,253,193,156,156,253,193,158,156,253,193,160,156,253,193,162,156,253,193,176,156,253,193,178,156,253,193,180,156,253,193,186,156,253,193,188,156,253,193,190,156,253,193,192,156,253,193,194,156,253,193,200,156,253,193,202,156,253,193,204,156,253,193,206,156,253,193,208,156,253,193,210,156,253,193,212,156,253,193,220,156,253,193,222,156,253,193,228,156,253,193,232,156,253,193,234,156,253,193,236,156,253,193,238,156,253,193,240,156,253,193,12,157,253,193,14,157,253,193,38,157,253,193,48,157,253,193,50,157,253,193,52,157,253,193,72,157,253,193,74,157,253,193,88,157,253,193,90,157,253,193,106,157,253,193,114,157,253,193,124,157,253,193,126,157,253,193,128,157,253,193,132,157,253,193,138,157,253,193,140,157,253,193,142,157,253,193,144,157,253,193,146,157,253,193,150,157,253,193,152,157,253,193,154,157,253,193,156,157,253,193,162,157,253,193,176,157,253,193,60,157,253,193,78,157,253,193,80,157,253,193,92,157,253,193,94,157,253,193,108,157,253,193,110,157,253,193,118,157,253,193,120,157,253,193,130,157,253,193,158,157,253,193,72,158,253,193,74,158,253,193,76,158,253,193,78,158,253,193,42,159,253,193,44,159,253,193,46,159,253,193,152,159,253,193,154,159,253,193,156,159,253,193,48,160,253,193,50,160,253,193,204,160,253,193,206,160,253,193,208,160,253,193,190,161,253,193,38,162,253,193,40,162,253,193,42,162,253,193,44,162,253,193,114,162,253,193,112,157,253,193,250,157,253,193,252,157,253,193,254,157,253,193,80,158,253,193,50,159,253,193,52,159,253,193,54,159,253,193,158,159,253,193,160,159,253,193,60,160,253,193,62,160,253,193,86,161,253,193,88,161,253,193,90,161,253,193,200,161,253,193,48,162,253,193,40,163,253,193,70,163,253,193,72,163,253,193,74,163,253,193,116,163,253,193,118,163,253,193,120,163,253,193,156,163,253,193,158,163,253,193,160,163,253,193,162,163,253,193,228,163,253,193,230,163,253,193,232,163,253,193,234,163,253,193,134,157,253,193,136,157,253,193,194,157,253,193,212,157,253,193,214,157,253,193,216,157,253,193,22,158,253,193,24,158,253,193,26,158,253,193,28,158,253,193,30,158,253,193,106,158,253,193,108,158,253,193,110,158,253,193,112,158,253,193,114,158,253,193,116,158,253,193,118,158,253,193,120,158,253,193,122,158,253,193,124,158,253,193,234,158,253,193,236,158,253,193,238,158,253,193,240,158,253,193,242,158,253,193,244,158,253,193,246,158,253,193,78,159,253,193,80,159,253,193,82,159,253,193,84,159,253,193,172,157,253,193,186,157,253,193,188,157,253,193,190,157,253,193,192,157,253,193,204,157,253,193,206,157,253,193,208,157,253,193,210,157,253,193,2,158,253,193,4,158,253,193,6,158,253,193,8,158,253,193,10,158,253,193,12,158,253,193,14,158,253,193,16,158,253,193,18,158,253,193,20,158,253,193,82,158,253,193,84,158,253,193,86,158,253,193,88,158,253,193,90,158,253,193,92,158,253,193,94,158,253,193,200,158,253,193,96,158,253,193,98,158,253,193,100,158,253,193,102,158,253,193,104,158,253,193,178,157,253,193,180,157,253,193,184,157,253,193,182,157,253,193,198,157,253,193,200,157,253,193,202,157,253,193,218,157,253,193,220,157,253,193,222,157,253,193,224,157,253,193,226,157,253,193,228,157,253,193,230,157,253,193,232,157,253,193,234,157,253,193,236,157,253,193,238,157,253,193,240,157,253,193,242,157,253,193,244,157,253,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,193,248,158,253,193,250,158,253,193,252,158,253,193,254,158,253,193,2,159,253,193,4,159,253,193,6,159,253,193,8,159,253,193,10,159,253,193,12,159,253,193,14,159,253,193,16,159,253,193,18,159,253,193,20,159,253,193,22,159,253,193,24,159,253,193,26,159,253,193,28,159,253,193,30,159,253,193,32,159,253,193,92,159,253,193,94,159,253,193,96,159,253,193,202,158,253,193,204,158,253,193,206,158,253,193,208,158,253,193,210,158,253,193,212,158,253,193,214,158,253,193,216,158,253,193,218,158,253,193,220,158,253,193,222,158,253,193,224,158,253,193,226,158,253,193,228,158,253,193,230,158,253,193,232,158,253,193,56,159,253,193,58,159,253,193,60,159,253,193,62,159,253,193,64,159,253,193,66,159,253,193,68,159,253,193,70,159,253,193,72,159,253,193,74,159,253,193,162,159,253,193,164,159,253,193,166,159,253,193,76,159,253,193,168,159,253,193,170,159,253,193,86,159,253,193,88,159,253,193,90,159,253,193,192,159,253,193,194,159,253,193,196,159,253,193,198,159,253,193,200,159,253,193,90,160,253,193,92,160,253,193,94,160,253,193,96,160,253,193,98,160,253,193,100,160,253,193,102,160,253,193,104,160,253,193,250,160,253,193,252,160,253,193,254,160,253,193,2,161,253,193,4,161,253,193,104,161,253,193,106,161,253,193,108,161,253,193,222,161,253,193,224,161,253,193,226,161,253,193,228,161,253,193,230,161,253,193,62,162,253,193,64,162,253,193,66,162,253,193,98,159,253,193,100,159,253,193,102,159,253,193,104,159,253,193,106,159,253,193,108,159,253,193,110,159,253,193,112,159,253,193,114,159,253,193,116,159,253,193,118,159,253,193,120,159,253,193,122,159,253,193,124,159,253,193,126,159,253,193,128,159,253,193,130,159,253,193,132,159,253,193,134,159,253,193,136,159,253,193,138,159,253,193,140,159,253,193,142,159,253,193,144,159,253,193,146,159,253,193,148,159,253,193,202,159,253,193,204,159,253,193,206,159,253,193,208,159,253,193,210,159,253,193,212,159,253,193,172,159,253,193,174,159,253,193,176,159,253,193,178,159,253,193,180,159,253,193,182,159,253,193,184,159,253,193,186,159,253,193,188,159,253,193,190,159,253,193,64,160,253,193,66,160,253,193,68,160,253,193,70,160,253,193,72,160,253,193,74,160,253,193,76,160,253,193,78,160,253,193,80,160,253,193,82,160,253,193,84,160,253,193,86,160,253,193,224,160,253,193,88,160,253,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,193,214,159,253,193,216,159,253,193,218,159,253,193,220,159,253,193,222,159,253,193,224,159,253,193,226,159,253,193,228,159,253,193,230,159,253,193,232,159,253,193,234,159,253,193,236,159,253,193,238,159,253,193,240,159,253,193,242,159,253,193,244,159,253,193,246,159,253,193,248,159,253,193,250,159,253,193,252,159,253,193,254,159,253,193,2,160,253,193,4,160,253,193,6,160,253,193,8,160,253,193,10,160,253,193,12,160,253,193,14,160,253,193,16,160,253,193,18,160,253,193,20,160,253,193,22,160,253,193,24,160,253,193,26,160,253,193,28,160,253,193,106,160,253,193,30,160,253,193,32,160,253,193,34,160,253,193,36,160,253,193,38,160,253,193,40,160,253,193,42,160,253,193,44,160,253,193,46,160,253,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,193,58,160,253,193,210,160,253,193,212,160,253,193,214,160,253,193,216,160,253,193,218,160,253,193,220,160,253,193,222,160,253,193,78,161,253,193,80,161,253,193,82,161,253,193,84,161,253,193,192,161,253,193,194,161,253,193,196,161,253,193,198,161,253,193,46,162,253,193,118,162,253,193,120,162,253,193,122,162,253,193,124,162,253,193,126,162,253,193,204,162,253,193,206,162,253,193,228,162,253,193,240,162,253,193,242,162,253,193,152,163,253,193,154,163,253,193,14,164,253,193,88,164,253,193,122,164,253,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,193,92,161,253,193,94,161,253,193,96,161,253,193,98,161,253,193,100,161,253,193,102,161,253,193,202,161,253,193,204,161,253,193,206,161,253,193,208,161,253,193,210,161,253,193,212,161,253,193,214,161,253,193,216,161,253,193,218,161,253,193,220,161,253,193,50,162,253,193,52,162,253,193,54,162,253,193,56,162,253,193,58,162,253,193,60,162,253,193,128,162,253,193,130,162,253,193,132,162,253,193,208,162,253,193,230,162,253,193,232,162,253,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,193,112,161,253,193,60,161,253,193,62,161,253,193,64,161,253,193,66,161,253,193,68,161,253,193,70,161,253,193,72,161,253,193,74,161,253,193,114,161,253,193,116,161,253,193,118,161,253,193,120,161,253,193,122,161,253,193,124,161,253,193,126,161,253,193,128,161,253,193,130,161,253,193,132,161,253,193,134,161,253,193,136,161,253,193,138,161,253,193,140,161,253,193,142,161,253,193,144,161,253,193,146,161,253,193,148,161,253,193,150,161,253,193,152,161,253,193,154,161,253,193,156,161,253,193,158,161,253,193,160,161,253,193,162,161,253,193,164,161,253,193,166,161,253,193,168,161,253,193,170,161,253,193,172,161,253,193,174,161,253,193,176,161,253,193,178,161,253,193,180,161,253,193,182,161,253,193,184,161,253,193,234,161,253,193,236,161,253,193,238,161,253,193,240,161,253,193,242,161,253,193,244,161,253,193,246,161,253,193,248,161,253,193,250,161,253,193,252,161,253,193,254,161,253,193,2,162,253,193,4,162,253,193,6,162,253,193,8,162,253,193,10,162,253,193,12,162,253,193,14,162,253,193,16,162,253,193,18,162,253,193,20,162,253,193,70,162,253,193,22,162,253,193,24,162,253,193,26,162,253,193,28,162,253,193,30,162,253,193,32,162,253,193,34,162,253,193,72,162,253,193,74,162,253,193,68,162,253,193,136,162,253,193,138,162,253,193,140,162,253,193,142,162,253,193,182,162,253,193,234,162,253,193,236,162,253,193,244,162,253,193,8,163,253,193,76,164,253,193,144,164,253,193,146,164,253,193,206,164,253,193,220,164,253,193,20,165,253,193,66,165,253,193,68,165,253,193,70,165,253,193,202,165,253,193,220,165,253,193,254,165,253,193,2,166,253,193,66,166,253,193,68,166,253,193,70,166,253,193,72,166,253,193,74,166,253,193,76,166,253,193,78,166,253,193,80,166,253,193,192,166,253,193,76,162,253,193,78,162,253,193,80,162,253,193,82,162,253,193,84,162,253,193,86,162,253,193,88,162,253,193,90,162,253,193,92,162,253,193,94,162,253,193,96,162,253,193,98,162,253,193,100,162,253,193,102,162,253,193,104,162,253,193,106,162,253,193,108,162,253,193,110,162,253,193,112,162,253,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,193,116,162,253,193,202,162,253,193,254,162,253,193,2,163,253,193,10,163,253,193,26,163,253,193,28,163,253,193,36,163,253,193,38,163,253,193,66,163,253,193,68,163,253,193,98,163,253,193,100,163,253,193,102,163,253,193,104,163,253,193,106,163,253,193,108,163,253,193,110,163,253,193,112,163,253,193,114,163,253,193,144,163,253,193,146,163,253,193,148,163,253,193,150,163,253,193,188,163,253,193,190,163,253,193,192,163,253,193,194,163,253,193,214,163,253,193,216,163,253,193,218,163,253,193,220,163,253,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,193,184,162,253,193,186,162,253,193,188,162,253,193,190,162,253,193,192,162,253,193,194,162,253,193,196,162,253,193,198,162,253,193,200,162,253,193,210,162,253,193,212,162,253,193,214,162,253,193,216,162,253,193,218,162,253,193,220,162,253,193,222,162,253,193,224,162,253,193,226,162,253,193,238,162,253,193,246,162,253,193,248,162,253,193,250,162,253,193,252,162,253,193,12,163,253,193,16,163,253,193,18,163,253,193,56,163,253,193,58,163,253,193,4,163,253,193,6,163,253,193,14,163,253,193,20,163,253,193,22,163,253,193,24,163,253,193,30,163,253,193,32,163,253,193,42,163,253,193,44,163,253,193,46,163,253,193,48,163,253,193,50,163,253,193,52,163,253,193,54,163,253,193,76,163,253,193,78,163,253,193,80,163,253,193,82,163,253,193,84,163,253,193,86,163,253,193,122,163,253,193,124,163,253,193,126,163,253,193,128,163,253,193,130,163,253,193,132,163,253,193,134,163,253,193,136,163,253,193,164,163,253,193,166,163,253,193,168,163,253,193,60,163,253,193,88,163,253,193,90,163,253,193,138,163,253,193,176,163,253,193,178,163,253,193,204,163,253,193,180,163,253,193,206,163,253,193,208,163,253,193,244,163,253,193,246,163,253,193,38,164,253,193,62,164,253,193,64,164,253,193,78,164,253,193,112,164,253,193,116,164,253,193,118,164,253,193,120,164,253,193,124,164,253,193,128,164,253,193,130,164,253,193,132,164,253,193,134,164,253,193,136,164,253,193,148,164,253,193,150,164,253,193,152,164,253,193,154,164,253,193,156,164,253,193,158,164,253,193,64,163,253,193,92,163,253,193,94,163,253,193,96,163,253,193,140,163,253,193,142,163,253,193,182,163,253,193,184,163,253,193,186,163,253,193,210,163,253,193,212,163,253,193,248,163,253,193,250,163,253,193,252,163,253,193,254,163,253,193,2,164,253,193,40,164,253,193,42,164,253,193,80,164,253,193,82,164,253,193,94,164,253,193,106,164,253,193,138,164,253,193,182,164,253,193,198,164,253,193,226,164,253,193,232,164,253,193,246,164,253,193,40,165,253,193,42,165,253,193,80,165,253,193,106,165,253,193,170,163,253,193,172,163,253,193,174,163,253,193,196,163,253,193,198,163,253,193,200,163,253,193,202,163,253,193,236,163,253,193,238,163,253,193,26,164,253,193,240,163,253,193,242,163,253,193,28,164,253,193,30,164,253,193,32,164,253,193,34,164,253,193,36,164,253,193,58,164,253,193,60,164,253,193,72,164,253,193,74,164,253,193,108,164,253,193,110,164,253,193,114,164,253,193,192,164,253,193,252,164,253,193,2,165,253,193,14,165,253,193,16,165,253,193,18,165,253,193,48,165,253,193,50,165,253,193,222,163,253,193,224,163,253,193,226,163,253,193,4,164,253,193,6,164,253,193,8,164,253,193,10,164,253,193,12,164,253,193,44,164,253,193,46,164,253,193,48,164,253,193,50,164,253,193,52,164,253,193,54,164,253,193,66,164,253,193,68,164,253,193,70,164,253,193,84,164,253,193,86,164,253,193,96,164,253,193,98,164,253,193,162,164,253,193,164,164,253,193,184,164,253,193,186,164,253,193,200,164,253,193,228,164,253,193,238,164,253,193,10,165,253,193,82,165,253,193,84,165,253,193,108,165,253,193,16,164,253,193,18,164,253,193,20,164,253,193,22,164,253,193,24,164,253,193,56,164,253,193,90,164,253,193,92,164,253,193,100,164,253,193,102,164,253,193,104,164,253,193,126,164,253,193,142,164,253,193,204,164,253,193,12,165,253,193,58,165,253,193,160,165,253,193,238,165,253,193,140,166,253,193,30,167,253,193,32,167,253,193,34,167,253,193,36,167,253,193,38,167,253,193,190,167,253,193,192,167,253,193,194,167,253,193,196,167,253,193,198,167,253,193,44,168,253,193,46,168,253,193,48,168,253,193,140,164,253,193,166,164,253,193,188,164,253,193,190,164,253,193,202,164,253,193,216,164,253,193,218,164,253,193,44,165,253,193,46,165,253,193,86,165,253,193,88,165,253,193,134,165,253,193,136,165,253,193,158,165,253,193,178,165,253,193,186,165,253,193,188,165,253,193,194,165,253,193,236,165,253,193,22,166,253,193,24,166,253,193,26,166,253,193,28,166,253,193,134,166,253,193,136,166,253,193,138,166,253,193,22,167,253,193,24,167,253,193,26,167,253,193,28,167,253,193,176,167,253,193,178,167,253,193,26,165,253,193,28,165,253,193,34,165,253,193,30,165,253,193,32,165,253,193,36,165,253,193,38,165,253,193,54,165,253,193,56,165,253,193,72,165,253,193,74,165,253,193,76,165,253,193,94,165,253,193,96,165,253,193,98,165,253,193,78,165,253,193,100,165,253,193,102,165,253,193,104,165,253,193,116,165,253,193,118,165,253,193,120,165,253,193,122,165,253,193,124,165,253,193,126,165,253,193,140,165,253,193,142,165,253,193,144,165,253,193,146,165,253,193,164,165,253,193,166,165,253,193,168,165,253,193,52,165,253,193,60,165,253,193,62,165,253,193,64,165,253,193,90,165,253,193,92,165,253,193,112,165,253,193,114,165,253,193,138,165,253,193,162,165,253,193,190,165,253,193,200,165,253,193,208,165,253,193,216,165,253,193,218,165,253,193,240,165,253,193,242,165,253,193,244,165,253,193,246,165,253,193,248,165,253,193,250,165,253,193,252,165,253,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,193,110,165,253,193,128,165,253,193,130,165,253,193,132,165,253,193,152,165,253,193,154,165,253,193,156,165,253,193,176,165,253,193,20,166,253,193,130,166,253,193,132,166,253,193,174,167,253,193,36,168,253,193,202,168,253,193,204,168,253,193,206,168,253,193,126,170,253,193,240,170,253,193,238,171,253,193,24,172,253,193,78,172,253,193,80,172,253,193,82,172,253,193,84,172,253,193,86,172,253,193,140,172,253,193,142,172,253,193,144,172,253,193,146,172,253,193,148,172,253,193,150,172,253,193,200,172,253,193,148,165,253,193,150,165,253,193,174,165,253,193,184,165,253,193,206,165,253,193,18,166,253,193,122,166,253,193,124,166,253,193,126,166,253,193,128,166,253,193,172,167,253,193,194,168,253,193,196,168,253,193,198,168,253,193,200,168,253,193,94,169,253,193,96,169,253,193,98,169,253,193,10,170,253,193,12,170,253,193,14,170,253,193,16,170,253,193,18,170,253,193,238,170,253,193,62,171,253,193,106,171,253,193,194,171,253,193,254,171,253,193,20,172,253,193,22,172,253,193,72,172,253,193,74,172,253,193,170,165,253,193,172,165,253,193,180,165,253,193,182,165,253,193,192,165,253,193,198,165,253,193,204,165,253,193,210,165,253,193,214,165,253,193,222,165,253,193,224,165,253,193,226,165,253,193,228,165,253,193,230,165,253,193,232,165,253,193,234,165,253,193,4,166,253,193,6,166,253,193,8,166,253,193,10,166,253,193,12,166,253,193,14,166,253,193,16,166,253,193,82,166,253,193,84,166,253,193,86,166,253,193,88,166,253,193,90,166,253,193,92,166,253,193,94,166,253,193,96,166,253,193,206,166,253,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,193,142,166,253,193,144,166,253,193,146,166,253,193,148,166,253,193,150,166,253,193,152,166,253,193,154,166,253,193,156,166,253,193,158,166,253,193,160,166,253,193,162,166,253,193,164,166,253,193,166,166,253,193,168,166,253,193,170,166,253,193,172,166,253,193,174,166,253,193,176,166,253,193,178,166,253,193,180,166,253,193,182,166,253,193,184,166,253,193,186,166,253,193,188,166,253,193,98,166,253,193,100,166,253,193,102,166,253,193,104,166,253,193,106,166,253,193,108,166,253,193,208,166,253,193,110,166,253,193,112,166,253,193,114,166,253,193,116,166,253,193,118,166,253,193,120,166,253,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,193,190,166,253,193,40,167,253,193,42,167,253,193,44,167,253,193,46,167,253,193,48,167,253,193,50,167,253,193,52,167,253,193,54,167,253,193,56,167,253,193,58,167,253,193,60,167,253,193,62,167,253,193,64,167,253,193,66,167,253,193,68,167,253,193,70,167,253,193,72,167,253,193,74,167,253,193,56,168,253,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,193,194,166,253,193,196,166,253,193,198,166,253,193,200,166,253,193,202,166,253,193,204,166,253,193,76,167,253,193,78,167,253,193,80,167,253,193,82,167,253,193,84,167,253,193,86,167,253,193,88,167,253,193,90,167,253,193,232,167,253,193,234,167,253,193,236,167,253,193,238,167,253,193,240,167,253,193,90,168,253,193,92,168,253,193,94,168,253,193,96,168,253,193,98,168,253,193,100,168,253,193,102,168,253,193,104,168,253,193,106,168,253,193,8,169,253,193,10,169,253,193,12,169,253,193,14,169,253,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,193,180,167,253,193,182,167,253,193,184,167,253,193,186,167,253,193,188,167,253,193,38,168,253,193,40,168,253,193,42,168,253,193,208,168,253,193,210,168,253,193,212,168,253,193,214,168,253,193,216,168,253,193,100,169,253,193,102,169,253,193,104,169,253,193,106,169,253,193,108,169,253,193,110,169,253,193,112,169,253,193,114,169,253,193,20,170,253,193,128,170,253,193,130,170,253,193,132,170,253,193,134,170,253,193,64,171,253,193,108,171,253,193,142,171,253,193,170,171,253,193,172,171,253,193,196,171,253,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,193,58,168,253,193,60,168,253,193,62,168,253,193,64,168,253,193,66,168,253,193,68,168,253,193,70,168,253,193,72,168,253,193,74,168,253,193,76,168,253,193,78,168,253,193,80,168,253,193,82,168,253,193,84,168,253,193,86,168,253,193,88,168,253,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,193,38,169,253,193,40,169,253,193,42,169,253,193,44,169,253,193,46,169,253,193,48,169,253,193,50,169,253,193,52,169,253,193,54,169,253,193,56,169,253,193,58,169,253,193,60,169,253,193,62,169,253,193,64,169,253,193,66,169,253,193,68,169,253,193,70,169,253,193,72,169,253,193,74,169,253,193,76,169,253,193,78,169,253,193,80,169,253,193,82,169,253,193,34,168,253,193,84,169,253,193,86,169,253,193,88,169,253,193,90,169,253,193,92,169,253,193,172,169,253,193,174,169,253,193,176,169,253,193,50,168,253,193,52,168,253,193,54,168,253,193,218,168,253,193,116,169,253,193,118,169,253,193,120,169,253,193,122,169,253,193,124,169,253,193,22,170,253,193,24,170,253,193,26,170,253,193,28,170,253,193,30,170,253,193,136,170,253,193,138,170,253,193,140,170,253,193,142,170,253,193,242,170,253,193,244,170,253,193,246,170,253,193,66,171,253,193,68,171,253,193,110,171,253,193,112,171,253,193,144,171,253,193,146,171,253,193,148,171,253,193,2,172,253,193,4,172,253,193,6,172,253,193,8,172,253,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,193,22,169,253,193,24,169,253,193,26,169,253,193,28,169,253,193,30,169,253,193,32,169,253,193,34,169,253,193,192,168,253,193,36,169,253,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,193,126,169,253,193,128,169,253,193,130,169,253,193,132,169,253,193,134,169,253,193,136,169,253,193,138,169,253,193,140,169,253,193,142,169,253,193,144,169,253,193,146,169,253,193,148,169,253,193,150,169,253,193,152,169,253,193,154,169,253,193,156,169,253,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,193,16,169,253,193,18,169,253,193,20,169,253,193,158,169,253,193,160,169,253,193,162,169,253,193,164,169,253,193,166,169,253,193,168,169,253,193,170,169,253,193,64,170,253,193,66,170,253,193,68,170,253,193,70,170,253,193,72,170,253,193,74,170,253,193,76,170,253,193,78,170,253,193,172,170,253,193,174,170,253,193,176,170,253,193,178,170,253,193,180,170,253,193,8,171,253,193,10,171,253,193,12,171,253,193,76,171,253,193,78,171,253,193,80,171,253,193,114,171,253,193,158,171,253,193,184,171,253,193,178,169,253,193,180,169,253,193,182,169,253,193,184,169,253,193,186,169,253,193,188,169,253,193,190,169,253,193,192,169,253,193,194,169,253,193,196,169,253,193,198,169,253,193,200,169,253,193,202,169,253,193,204,169,253,193,206,169,253,193,208,169,253,193,210,169,253,193,212,169,253,193,214,169,253,193,216,169,253,193,218,169,253,193,220,169,253,193,222,169,253,193,224,169,253,193,226,169,253,193,228,169,253,193,230,169,253,193,232,169,253,193,234,169,253,193,236,169,253,193,238,169,253,193,240,169,253,193,242,169,253,193,244,169,253,193,246,169,253,193,248,169,253,193,250,169,253,193,252,169,253,193,254,169,253,193,2,170,253,193,4,170,253,193,6,170,253,193,8,170,253,193,80,170,253,193,82,170,253,193,84,170,253,193,86,170,253,193,88,170,253,193,90,170,253,193,92,170,253,193,94,170,253,193,96,170,253,193,98,170,253,193,100,170,253,193,102,170,253,193,104,170,253,193,106,170,253,193,108,170,253,193,110,170,253,193,112,170,253,193,114,170,253,193,116,170,253,193,118,170,253,193,120,170,253,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,193,144,170,253,193,146,170,253,193,148,170,253,193,150,170,253,193,152,170,253,193,154,170,253,193,156,170,253,193,158,170,253,193,160,170,253,193,162,170,253,193,164,170,253,193,166,170,253,193,168,170,253,193,170,170,253,193,248,170,253,193,250,170,253,193,252,170,253,193,254,170,253,193,2,171,253,193,4,171,253,193,6,171,253,193,70,171,253,193,72,171,253,193,74,171,253,193,122,170,253,193,124,170,253,193,182,170,253,193,184,170,253,193,186,170,253,193,188,170,253,193,190,170,253,193,192,170,253,193,194,170,253,193,196,170,253,193,198,170,253,193,200,170,253,193,202,170,253,193,204,170,253,193,206,170,253,193,208,170,253,193,210,170,253,193,212,170,253,193,214,170,253,193,216,170,253,193,218,170,253,193,220,170,253,193,222,170,253,193,224,170,253,193,226,170,253,193,228,170,253,193,230,170,253,193,232,170,253,193,234,170,253,193,236,170,253,193,14,171,253,193,16,171,253,193,18,171,253,193,20,171,253,193,22,171,253,193,24,171,253,193,26,171,253,193,28,171,253,193,30,171,253,193,32,171,253,193,34,171,253,193,36,171,253,193,38,171,253,193,40,171,253,193,42,171,253,193,44,171,253,193,46,171,253,193,48,171,253,193,50,171,253,193,52,171,253,193,54,171,253,193,56,171,253,193,58,171,253,193,60,171,253,193,82,171,253,193,84,171,253,193,86,171,253,193,88,171,253,193,90,171,253,193,92,171,253,193,94,171,253,193,96,171,253,193,98,171,253,193,100,171,253,193,102,171,253,193,104,171,253,193,116,171,253,193,118,171,253,193,120,171,253,193,122,171,253,193,124,171,253,193,126,171,253,193,128,171,253,193,130,171,253,193,132,171,253,193,134,171,253,193,136,171,253,193,138,171,253,193,140,171,253,193,160,171,253,193,162,171,253,193,164,171,253,193,166,171,253,193,168,171,253,193,186,171,253,193,188,171,253,193,190,171,253,193,192,171,253,193,204,171,253,193,206,171,253,193,208,171,253,193,210,171,253,193,212,171,253,193,214,171,253,193,216,171,253,193,224,171,253,193,150,171,253,193,152,171,253,193,154,171,253,193,156,171,253,193,174,171,253,193,176,171,253,193,178,171,253,193,180,171,253,193,198,171,253,193,200,171,253,193,220,171,253,193,228,171,253,193,244,171,253,193,246,171,253,193,248,171,253,193,250,171,253,193,252,171,253,193,10,172,253,193,12,172,253,193,14,172,253,193,16,172,253,193,32,172,253,193,34,172,253,193,36,172,253,193,38,172,253,193,40,172,253,193,42,172,253,193,44,172,253,193,46,172,253,193,48,172,253,193,50,172,253,193,52,172,253,193,202,171,253,193,222,171,253,193,240,171,253,193,118,172,253,193,184,172,253,193,62,173,253,193,170,173,253,193,174,173,253,193,216,173,253,193,218,173,253,193,10,174,253,193,12,174,253,193,14,174,253,193,16,174,253,193,18,174,253,193,68,174,253,193,70,174,253,193,72,174,253,193,74,174,253,193,76,174,253,193,78,174,253,193,118,174,253,193,120,174,253,193,122,174,253,193,124,174,253,193,126,174,253,193,128,174,253,193,174,174,253,193,176,174,253,193,242,174,253,193,244,174,253,193,246,174,253,193,218,171,253,193,204,172,253,193,206,172,253,193,44,173,253,193,80,173,253,193,132,173,253,193,182,173,253,193,54,174,253,193,56,174,253,193,106,174,253,193,162,174,253,193,164,174,253,193,166,174,253,193,222,174,253,193,224,174,253,193,226,174,253,193,38,175,253,193,40,175,253,193,76,175,253,193,114,175,253,193,116,175,253,193,176,175,253,193,208,175,253,193,222,175,253,193,26,176,253,193,40,176,253,193,98,176,253,193,118,176,253,193,120,176,253,193,40,177,253,193,42,177,253,193,44,177,253,193,226,171,253,193,230,171,253,193,232,171,253,193,234,171,253,193,236,171,253,193,242,171,253,193,18,172,253,193,56,172,253,193,58,172,253,193,60,172,253,193,62,172,253,193,64,172,253,193,66,172,253,193,68,172,253,193,120,172,253,193,70,172,253,193,122,172,253,193,124,172,253,193,126,172,253,193,128,172,253,193,130,172,253,193,132,172,253,193,134,172,253,193,186,172,253,193,188,172,253,193,190,172,253,193,192,172,253,193,236,172,253,193,238,172,253,193,240,172,253,193,12,173,253,193,14,173,253,193,26,172,253,193,28,172,253,193,30,172,253,193,88,172,253,193,90,172,253,193,92,172,253,193,94,172,253,193,96,172,253,193,98,172,253,193,152,172,253,193,154,172,253,193,156,172,253,193,158,172,253,193,160,172,253,193,162,172,253,193,164,172,253,193,166,172,253,193,168,172,253,193,170,172,253,193,208,172,253,193,210,172,253,193,212,172,253,193,214,172,253,193,216,172,253,193,218,172,253,193,220,172,253,193,252,172,253,193,254,172,253,193,46,173,253,193,48,173,253,193,50,173,253,193,52,173,253,193,54,172,253,193,100,172,253,193,102,172,253,193,104,172,253,193,106,172,253,193,108,172,253,193,110,172,253,193,112,172,253,193,114,172,253,193,116,172,253,193,172,172,253,193,174,172,253,193,176,172,253,193,178,172,253,193,180,172,253,193,182,172,253,193,222,172,253,193,224,172,253,193,226,172,253,193,228,172,253,193,230,172,253,193,232,172,253,193,234,172,253,193,2,173,253,193,4,173,253,193,6,173,253,193,8,173,253,193,10,173,253,193,54,173,253,193,56,173,253,193,58,173,253,193,60,173,253,193,136,172,253,193,138,172,253,193,194,172,253,193,196,172,253,193,198,172,253,193,242,172,253,193,244,172,253,193,246,172,253,193,36,173,253,193,38,173,253,193,72,173,253,193,74,173,253,193,76,173,253,193,100,173,253,193,102,173,253,193,126,173,253,193,138,173,253,193,164,173,253,193,104,174,253,193,34,175,253,193,36,175,253,193,238,175,253,193,38,176,253,193,62,176,253,193,188,176,253,193,222,176,253,193,224,176,253,193,36,177,253,193,132,177,253,193,208,177,253,193,34,178,253,193,36,178,253,193,202,172,253,193,248,172,253,193,250,172,253,193,40,173,253,193,42,173,253,193,78,173,253,193,106,173,253,193,108,173,253,193,110,173,253,193,128,173,253,193,130,173,253,193,142,173,253,193,146,173,253,193,150,173,253,193,154,173,253,193,162,173,253,193,166,173,253,193,158,174,253,193,160,174,253,193,220,175,253,193,240,175,253,193,24,176,253,193,64,176,253,193,66,176,253,193,82,176,253,193,94,176,253,193,96,176,253,193,116,176,253,193,126,176,253,193,134,176,253,193,136,176,253,193,138,176,253,193,16,173,253,193,18,173,253,193,20,173,253,193,22,173,253,193,64,173,253,193,24,173,253,193,26,173,253,193,28,173,253,193,30,173,253,193,32,173,253,193,34,173,253,193,66,173,253,193,68,173,253,193,70,173,253,193,122,173,253,193,124,173,253,193,148,173,253,193,176,173,253,193,178,173,253,193,180,173,253,193,194,173,253,193,196,173,253,193,198,173,253,193,200,173,253,193,202,173,253,193,204,173,253,193,206,173,253,193,208,173,253,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,193,82,173,253,193,84,173,253,193,86,173,253,193,88,173,253,193,90,173,253,193,92,173,253,193,112,173,253,193,114,173,253,193,116,173,253,193,118,173,253,193,134,173,253,193,136,173,253,193,156,173,253,193,108,174,253,193,110,174,253,193,112,174,253,193,228,174,253,193,230,174,253,193,232,174,253,193,140,175,253,193,242,175,253,193,244,175,253,193,246,175,253,193,254,175,253,193,42,176,253,193,44,176,253,193,46,176,253,193,68,176,253,193,70,176,253,193,150,176,253,193,152,176,253,193,140,177,253,193,94,173,253,193,96,173,253,193,98,173,253,193,120,173,253,193,144,173,253,193,152,173,253,193,158,173,253,193,160,173,253,193,168,173,253,193,172,173,253,193,184,173,253,193,186,173,253,193,188,173,253,193,190,173,253,193,192,173,253,193,210,173,253,193,212,173,253,193,214,173,253,193,252,173,253,193,254,173,253,193,2,174,253,193,4,174,253,193,6,174,253,193,8,174,253,193,58,174,253,193,60,174,253,193,62,174,253,193,64,174,253,193,66,174,253,193,114,174,253,193,116,174,253,193,168,174,253,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,193,20,174,253,193,22,174,253,193,24,174,253,193,26,174,253,193,28,174,253,193,30,174,253,193,32,174,253,193,34,174,253,193,36,174,253,193,38,174,253,193,40,174,253,193,42,174,253,193,44,174,253,193,46,174,253,193,48,174,253,193,50,174,253,193,52,174,253,193,80,174,253,193,82,174,253,193,84,174,253,193,86,174,253,193,88,174,253,193,90,174,253,193,92,174,253,193,94,174,253,193,96,174,253,193,98,174,253,193,100,174,253,193,102,174,253,193,130,174,253,193,132,174,253,193,134,174,253,193,136,174,253,193,138,174,253,193,140,174,253,193,142,174,253,193,144,174,253,193,146,174,253,193,148,174,253,193,150,174,253,193,152,174,253,193,154,174,253,193,156,174,253,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,193,170,174,253,193,172,174,253,193,234,174,253,193,236,174,253,193,238,174,253,193,240,174,253,193,42,175,253,193,44,175,253,193,46,175,253,193,48,175,253,193,50,175,253,193,52,175,253,193,54,175,253,193,78,175,253,193,80,175,253,193,82,175,253,193,118,175,253,193,142,175,253,193,144,175,253,193,146,175,253,193,148,175,253,193,178,175,253,193,194,175,253,193,210,175,253,193,232,175,253,193,234,175,253,193,2,176,253,193,28,176,253,193,84,176,253,193,128,176,253,193,140,176,253,193,186,176,253,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,193,250,174,253,193,252,174,253,193,254,174,253,193,2,175,253,193,4,175,253,193,6,175,253,193,8,175,253,193,10,175,253,193,12,175,253,193,14,175,253,193,16,175,253,193,18,175,253,193,20,175,253,193,22,175,253,193,24,175,253,193,26,175,253,193,28,175,253,193,30,175,253,193,32,175,253,193,248,174,253,193,56,175,253,193,84,175,253,193,120,175,253,193,150,175,253,193,180,175,253,193,196,175,253,193,236,175,253,193,248,175,253,193,4,176,253,193,100,176,253,193,130,176,253,193,160,176,253,193,192,176,253,193,194,176,253,193,242,176,253,193,244,176,253,193,246,176,253,193,248,176,253,193,250,176,253,193,252,176,253,193,66,177,253,193,68,177,253,193,158,177,253,193,160,177,253,193,234,177,253,193,236,177,253,193,238,177,253,193,240,177,253,193,60,178,253,193,62,178,253,193,64,178,253,193,58,175,253,193,60,175,253,193,62,175,253,193,64,175,253,193,66,175,253,193,68,175,253,193,70,175,253,193,72,175,253,193,74,175,253,193,86,175,253,193,88,175,253,193,90,175,253,193,92,175,253,193,94,175,253,193,96,175,253,193,98,175,253,193,100,175,253,193,102,175,253,193,104,175,253,193,106,175,253,193,108,175,253,193,110,175,253,193,112,175,253,193,122,175,253,193,124,175,253,193,126,175,253,193,128,175,253,193,130,175,253,193,132,175,253,193,134,175,253,193,136,175,253,193,138,175,253,193,152,175,253,193,154,175,253,193,156,175,253,193,158,175,253,193,160,175,253,193,162,175,253,193,164,175,253,193,166,175,253,193,168,175,253,193,170,175,253,193,172,175,253,193,174,175,253,193,182,175,253,193,184,175,253,193,186,175,253,193,188,175,253,193,190,175,253,193,192,175,253,193,198,175,253,193,200,175,253,193,202,175,253,193,204,175,253,193,206,175,253,193,212,175,253,193,214,175,253,193,216,175,253,193,218,175,253,193,224,175,253,193,226,175,253,193,228,175,253,193,230,175,253,193,250,175,253,193,252,175,253,193,6,176,253,193,8,176,253,193,10,176,253,193,12,176,253,193,14,176,253,193,16,176,253,193,18,176,253,193,20,176,253,193,22,176,253,193,30,176,253,193,32,176,253,193,34,176,253,193,36,176,253,193,48,176,253,193,50,176,253,193,52,176,253,193,54,176,253,193,56,176,253,193,58,176,253,193,60,176,253,193,72,176,253,193,74,176,253,193,76,176,253,193,78,176,253,193,80,176,253,193,86,176,253,193,88,176,253,193,90,176,253,193,92,176,253,193,102,176,253,193,104,176,253,193,106,176,253,193,108,176,253,193,110,176,253,193,112,176,253,193,114,176,253,193,122,176,253,193,124,176,253,193,132,176,253,193,142,176,253,193,144,176,253,193,146,176,253,193,154,176,253,193,156,176,253,193,162,176,253,193,166,176,253,193,168,176,253,193,172,176,253,193,174,176,253,193,176,176,253,193,184,176,253,193,196,176,253,193,198,176,253,193,200,176,253,193,202,176,253,193,204,176,253,193,210,176,253,193,212,176,253,193,214,176,253,193,216,176,253,193,218,176,253,193,220,176,253,193,254,176,253,193,148,176,253,193,158,176,253,193,164,176,253,193,170,176,253,193,178,176,253,193,180,176,253,193,182,176,253,193,38,177,253,193,210,177,253,193,212,177,253,193,38,178,253,193,134,178,253,193,136,178,253,193,226,178,253,193,228,178,253,193,208,179,253,193,90,180,253,193,130,180,253,193,176,180,253,193,182,180,253,193,202,180,253,193,230,180,253,193,244,180,253,193,18,181,253,193,66,181,253,193,96,181,253,193,108,181,253,193,150,181,253,193,152,181,253,193,178,181,253,193,210,181,253,193,132,182,253,193,190,176,253,193,206,176,253,193,208,176,253,193,226,176,253,193,228,176,253,193,230,176,253,193,232,176,253,193,234,176,253,193,236,176,253,193,238,176,253,193,240,176,253,193,46,177,253,193,48,177,253,193,50,177,253,193,52,177,253,193,54,177,253,193,56,177,253,193,58,177,253,193,60,177,253,193,62,177,253,193,64,177,253,193,142,177,253,193,144,177,253,193,146,177,253,193,148,177,253,193,150,177,253,193,152,177,253,193,154,177,253,193,220,177,253,193,222,177,253,193,224,177,253,193,226,177,253,193,2,177,253,193,4,177,253,193,6,177,253,193,8,177,253,193,10,177,253,193,12,177,253,193,14,177,253,193,16,177,253,193,18,177,253,193,20,177,253,193,22,177,253,193,24,177,253,193,26,177,253,193,28,177,253,193,30,177,253,193,32,177,253,193,34,177,253,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,193,134,177,253,193,136,177,253,193,138,177,253,193,214,177,253,193,216,177,253,193,218,177,253,193,40,178,253,193,42,178,253,193,44,178,253,193,138,178,253,193,140,178,253,193,142,178,253,193,144,178,253,193,230,178,253,193,232,178,253,193,52,179,253,193,174,179,253,193,176,179,253,193,210,179,253,193,32,180,253,193,92,180,253,193,100,180,253,193,138,180,253,193,156,180,253,193,162,180,253,193,174,180,253,193,110,181,253,193,132,181,253,193,18,182,253,193,20,182,253,193,134,182,253,193,136,182,253,193,228,177,253,193,230,177,253,193,232,177,253,193,50,178,253,193,52,178,253,193,54,178,253,193,56,178,253,193,156,177,253,193,58,178,253,193,146,178,253,193,148,178,253,193,150,178,253,193,152,178,253,193,154,178,253,193,156,178,253,193,158,178,253,193,240,178,253,193,242,178,253,193,244,178,253,193,246,178,253,193,56,179,253,193,58,179,253,193,60,179,253,193,62,179,253,193,64,179,253,193,116,179,253,193,118,179,253,193,120,179,253,193,122,179,253,193,66,179,253,193,180,179,253,193,182,179,253,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,193,242,177,253,193,244,177,253,193,246,177,253,193,248,177,253,193,250,177,253,193,252,177,253,193,254,177,253,193,2,178,253,193,4,178,253,193,6,178,253,193,8,178,253,193,10,178,253,193,12,178,253,193,14,178,253,193,16,178,253,193,18,178,253,193,20,178,253,193,22,178,253,193,24,178,253,193,26,178,253,193,28,178,253,193,30,178,253,193,32,178,253,193,74,178,253,193,76,178,253,193,46,178,253,193,48,178,253,193,234,178,253,193,236,178,253,193,238,178,253,193,54,179,253,193,114,179,253,193,178,179,253,193,34,180,253,193,128,180,253,193,140,180,253,193,204,180,253,193,206,180,253,193,208,180,253,193,246,180,253,193,50,181,253,193,52,181,253,193,98,181,253,193,112,181,253,193,124,181,253,193,126,181,253,193,160,181,253,193,180,181,253,193,22,182,253,193,24,182,253,193,138,182,253,193,140,182,253,193,196,182,253,193,12,183,253,193,14,183,253,193,56,183,253,193,58,183,253,193,66,178,253,193,68,178,253,193,70,178,253,193,72,178,253,193,160,178,253,193,162,178,253,193,164,178,253,193,166,178,253,193,248,178,253,193,250,178,253,193,252,178,253,193,254,178,253,193,68,179,253,193,70,179,253,193,124,179,253,193,216,179,253,193,218,179,253,193,220,179,253,193,222,179,253,193,246,179,253,193,248,179,253,193,16,180,253,193,52,180,253,193,96,180,253,193,102,180,253,193,184,180,253,193,186,180,253,193,194,180,253,193,212,180,253,193,56,181,253,193,100,181,253,193,222,181,253,193,78,178,253,193,80,178,253,193,82,178,253,193,84,178,253,193,86,178,253,193,88,178,253,193,90,178,253,193,92,178,253,193,94,178,253,193,96,178,253,193,98,178,253,193,100,178,253,193,102,178,253,193,104,178,253,193,106,178,253,193,108,178,253,193,110,178,253,193,112,178,253,193,114,178,253,193,116,178,253,193,118,178,253,193,120,178,253,193,122,178,253,193,124,178,253,193,126,178,253,193,128,178,253,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,193,130,178,253,193,132,178,253,193,224,178,253,193,112,179,253,193,192,180,253,193,200,180,253,193,48,181,253,193,138,181,253,193,176,181,253,193,16,182,253,193,130,182,253,193,190,182,253,193,2,183,253,193,4,183,253,193,168,183,253,193,44,184,253,193,92,184,253,193,230,184,253,193,232,184,253,193,148,185,253,193,150,185,253,193,152,185,253,193,154,185,253,193,156,185,253,193,78,186,253,193,80,186,253,193,82,186,253,193,84,186,253,193,86,186,253,193,88,186,253,193,90,186,253,193,92,186,253,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,193,72,179,253,193,74,179,253,193,76,179,253,193,78,179,253,193,80,179,253,193,82,179,253,193,84,179,253,193,86,179,253,193,88,179,253,193,90,179,253,193,92,179,253,193,94,179,253,193,96,179,253,193,98,179,253,193,100,179,253,193,102,179,253,193,104,179,253,193,106,179,253,193,108,179,253,193,110,179,253,193,126,179,253,193,128,179,253,193,130,179,253,193,132,179,253,193,134,179,253,193,136,179,253,193,138,179,253,193,140,179,253,193,142,179,253,193,144,179,253,193,146,179,253,193,148,179,253,193,150,179,253,193,152,179,253,193,154,179,253,193,156,179,253,193,158,179,253,193,160,179,253,193,162,179,253,193,164,179,253,193,166,179,253,193,168,179,253,193,170,179,253,193,172,179,253,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,193,184,179,253,193,212,179,253,193,214,179,253,193,244,179,253,193,36,180,253,193,58,180,253,193,66,180,253,193,74,180,253,193,78,180,253,193,84,180,253,193,94,180,253,193,110,180,253,193,118,180,253,193,120,180,253,193,132,180,253,193,136,180,253,193,164,180,253,193,170,180,253,193,172,180,253,193,210,180,253,193,232,180,253,193,248,180,253,193,250,180,253,193,8,181,253,193,20,181,253,193,32,181,253,193,34,181,253,193,54,181,253,193,166,181,253,193,182,181,253,193,212,181,253,193,214,181,253,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,193,224,179,253,193,226,179,253,193,228,179,253,193,230,179,253,193,232,179,253,193,234,179,253,193,236,179,253,193,238,179,253,193,240,179,253,193,242,179,253,193,250,179,253,193,252,179,253,193,254,179,253,193,2,180,253,193,4,180,253,193,6,180,253,193,8,180,253,193,10,180,253,193,12,180,253,193,14,180,253,193,18,180,253,193,20,180,253,193,22,180,253,193,24,180,253,193,26,180,253,193,28,180,253,193,30,180,253,193,38,180,253,193,40,180,253,193,42,180,253,193,44,180,253,193,46,180,253,193,48,180,253,193,50,180,253,193,54,180,253,193,56,180,253,193,60,180,253,193,62,180,253,193,64,180,253,193,68,180,253,193,70,180,253,193,72,180,253,193,76,180,253,193,80,180,253,193,82,180,253,193,86,180,253,193,88,180,253,193,98,180,253,193,104,180,253,193,106,180,253,193,108,180,253,193,112,180,253,193,114,180,253,193,116,180,253,193,122,180,253,193,124,180,253,193,126,180,253,193,134,180,253,193,142,180,253,193,144,180,253,193,146,180,253,193,148,180,253,193,150,180,253,193,152,180,253,193,154,180,253,193,158,180,253,193,160,180,253,193,166,180,253,193,168,180,253,193,178,180,253,193,180,180,253,193,188,180,253,193,190,180,253,193,196,180,253,193,198,180,253,193,214,180,253,193,216,180,253,193,218,180,253,193,220,180,253,193,222,180,253,193,224,180,253,193,226,180,253,193,228,180,253,193,234,180,253,193,236,180,253,193,238,180,253,193,240,180,253,193,242,180,253,193,252,180,253,193,254,180,253,193,2,181,253,193,4,181,253,193,6,181,253,193,10,181,253,193,12,181,253,193,14,181,253,193,16,181,253,193,22,181,253,193,24,181,253,193,26,181,253,193,28,181,253,193,30,181,253,193,36,181,253,193,38,181,253,193,40,181,253,193,42,181,253,193,44,181,253,193,46,181,253,193,58,181,253,193,60,181,253,193,62,181,253,193,64,181,253,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,193,104,181,253,193,106,181,253,193,114,181,253,193,116,181,253,193,118,181,253,193,120,181,253,193,122,181,253,193,128,181,253,193,130,181,253,193,134,181,253,193,136,181,253,193,140,181,253,193,142,181,253,193,144,181,253,193,146,181,253,193,148,181,253,193,154,181,253,193,156,181,253,193,158,181,253,193,162,181,253,193,164,181,253,193,168,181,253,193,170,181,253,193,172,181,253,193,174,181,253,193,184,181,253,193,186,181,253,193,188,181,253,193,190,181,253,193,192,181,253,193,194,181,253,193,196,181,253,193,198,181,253,193,200,181,253,193,202,181,253,193,204,181,253,193,206,181,253,193,208,181,253,193,224,181,253,193,226,181,253,193,228,181,253,193,230,181,253,193,232,181,253,193,234,181,253,193,236,181,253,193,238,181,253,193,240,181,253,193,242,181,253,193,244,181,253,193,246,181,253,193,248,181,253,193,250,181,253,193,252,181,253,193,254,181,253,193,2,182,253,193,4,182,253,193,6,182,253,193,8,182,253,193,10,182,253,193,12,182,253,193,216,181,253,193,218,181,253,193,220,181,253,193,26,182,253,193,28,182,253,193,30,182,253,193,32,182,253,193,88,182,253,193,142,182,253,193,144,182,253,193,198,182,253,193,200,182,253,193,202,182,253,193,204,182,253,193,206,182,253,193,208,182,253,193,60,183,253,193,88,183,253,193,90,183,253,193,92,183,253,193,94,183,253,193,122,183,253,193,124,183,253,193,180,183,253,193,182,183,253,193,184,183,253,193,2,184,253,193,18,184,253,193,20,184,253,193,22,184,253,193,24,184,253,193,52,184,253,193,14,182,253,193,38,182,253,193,40,182,253,193,42,182,253,193,44,182,253,193,46,182,253,193,48,182,253,193,50,182,253,193,52,182,253,193,54,182,253,193,56,182,253,193,58,182,253,193,60,182,253,193,62,182,253,193,64,182,253,193,66,182,253,193,68,182,253,193,70,182,253,193,72,182,253,193,74,182,253,193,76,182,253,193,78,182,253,193,80,182,253,193,82,182,253,193,84,182,253,193,86,182,253,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,193,34,182,253,193,36,182,253,193,90,182,253,193,92,182,253,193,210,182,253,193,212,182,253,193,214,182,253,193,216,182,253,193,16,183,253,193,18,183,253,193,62,183,253,193,126,183,253,193,128,183,253,193,130,183,253,193,170,183,253,193,186,183,253,193,188,183,253,193,252,183,253,193,16,184,253,193,26,184,253,193,60,184,253,193,62,184,253,193,64,184,253,193,148,184,253,193,150,184,253,193,152,184,253,193,154,184,253,193,156,184,253,193,158,184,253,193,160,184,253,193,162,184,253,193,60,185,253,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,193,146,182,253,193,148,182,253,193,150,182,253,193,152,182,253,193,154,182,253,193,156,182,253,193,158,182,253,193,160,182,253,193,162,182,253,193,164,182,253,193,166,182,253,193,168,182,253,193,170,182,253,193,172,182,253,193,174,182,253,193,176,182,253,193,178,182,253,193,180,182,253,193,182,182,253,193,184,182,253,193,186,182,253,193,188,182,253,193,218,182,253,193,220,182,253,193,222,182,253,193,224,182,253,193,226,182,253,193,228,182,253,193,230,182,253,193,232,182,253,193,234,182,253,193,236,182,253,193,238,182,253,193,240,182,253,193,242,182,253,193,244,182,253,193,246,182,253,193,248,182,253,193,250,182,253,193,252,182,253,193,254,182,253,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,193,192,182,253,193,46,184,253,193,48,184,253,193,94,184,253,193,96,184,253,193,234,184,253,193,236,184,253,193,158,185,253,193,160,185,253,193,162,185,253,193,164,185,253,193,166,185,253,193,168,185,253,193,94,186,253,193,96,186,253,193,98,186,253,193,100,186,253,193,102,186,253,193,36,187,253,193,38,187,253,193,40,187,253,193,42,187,253,193,44,187,253,193,70,188,253,193,72,188,253,193,74,188,253,193,76,188,253,193,78,188,253,193,36,189,253,193,38,189,253,193,40,189,253,193,42,189,253,193,194,182,253,193,6,183,253,193,8,183,253,193,10,183,253,193,54,183,253,193,84,183,253,193,86,183,253,193,120,183,253,193,178,183,253,193,224,183,253,193,234,183,253,193,246,183,253,193,8,184,253,193,10,184,253,193,12,184,253,193,14,184,253,193,98,184,253,193,238,184,253,193,240,184,253,193,170,185,253,193,172,185,253,193,104,186,253,193,106,186,253,193,108,186,253,193,110,186,253,193,46,187,253,193,48,187,253,193,50,187,253,193,52,187,253,193,54,187,253,193,80,188,253,193,82,188,253,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,193,64,183,253,193,66,183,253,193,68,183,253,193,70,183,253,193,72,183,253,193,74,183,253,193,76,183,253,193,78,183,253,193,80,183,253,193,82,183,253,193,96,183,253,193,98,183,253,193,100,183,253,193,102,183,253,193,104,183,253,193,106,183,253,193,108,183,253,193,110,183,253,193,112,183,253,193,114,183,253,193,116,183,253,193,118,183,253,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,193,172,183,253,193,174,183,253,193,176,183,253,193,190,183,253,193,192,183,253,193,194,183,253,193,196,183,253,193,198,183,253,193,200,183,253,193,202,183,253,193,204,183,253,193,206,183,253,193,212,183,253,193,214,183,253,193,216,183,253,193,218,183,253,193,220,183,253,193,222,183,253,193,208,183,253,193,210,183,253,193,254,183,253,193,50,184,253,193,100,184,253,193,242,184,253,193,244,184,253,193,246,184,253,193,248,184,253,193,174,185,253,193,176,185,253,193,178,185,253,193,112,186,253,193,56,187,253,193,58,187,253,193,60,187,253,193,62,187,253,193,64,187,253,193,66,187,253,193,84,188,253,193,86,188,253,193,56,189,253,193,58,189,253,193,60,189,253,193,62,189,253,193,64,189,253,193,22,190,253,193,24,190,253,193,26,190,253,193,220,190,253,193,222,190,253,193,136,191,253,193,226,183,253,193,228,183,253,193,230,183,253,193,232,183,253,193,236,183,253,193,238,183,253,193,240,183,253,193,242,183,253,193,244,183,253,193,248,183,253,193,250,183,253,193,6,184,253,193,28,184,253,193,30,184,253,193,32,184,253,193,34,184,253,193,36,184,253,193,38,184,253,193,40,184,253,193,42,184,253,193,66,184,253,193,68,184,253,193,70,184,253,193,72,184,253,193,74,184,253,193,76,184,253,193,78,184,253,193,80,184,253,193,82,184,253,193,84,184,253,193,86,184,253,193,88,184,253,193,54,184,253,193,56,184,253,193,58,184,253,193,102,184,253,193,104,184,253,193,106,184,253,193,108,184,253,193,110,184,253,193,112,184,253,193,114,184,253,193,116,184,253,193,118,184,253,193,120,184,253,193,122,184,253,193,124,184,253,193,126,184,253,193,128,184,253,193,130,184,253,193,132,184,253,193,134,184,253,193,136,184,253,193,138,184,253,193,140,184,253,193,142,184,253,193,144,184,253,193,146,184,253,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,193,144,185,253,193,246,185,253,193,248,185,253,193,250,185,253,193,252,185,253,193,254,185,253,193,2,186,253,193,4,186,253,193,6,186,253,193,8,186,253,193,10,186,253,193,12,186,253,193,14,186,253,193,16,186,253,193,18,186,253,193,20,186,253,193,22,186,253,193,24,186,253,193,26,186,253,193,28,186,253,193,30,186,253,193,32,186,253,193,34,186,253,193,90,184,253,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,193,164,184,253,193,166,184,253,193,168,184,253,193,170,184,253,193,172,184,253,193,174,184,253,193,176,184,253,193,178,184,253,193,180,184,253,193,182,184,253,193,184,184,253,193,186,184,253,193,188,184,253,193,190,184,253,193,192,184,253,193,194,184,253,193,196,184,253,193,198,184,253,193,200,184,253,193,202,184,253,193,204,184,253,193,206,184,253,193,208,184,253,193,210,184,253,193,212,184,253,193,214,184,253,193,216,184,253,193,218,184,253,193,220,184,253,193,222,184,253,193,224,184,253,193,226,184,253,193,228,184,253,193,82,185,253,193,84,185,253,193,86,185,253,193,88,185,253,193,90,185,253,193,92,185,253,193,94,185,253,193,96,185,253,193,98,185,253,193,100,185,253,193,102,185,253,193,104,185,253,193,106,185,253,193,108,185,253,193,110,185,253,193,112,185,253,193,114,185,253,193,116,185,253,193,118,185,253,193,120,185,253,193,122,185,253,193,124,185,253,193,126,185,253,193,128,185,253,193,130,185,253,193,132,185,253,193,134,185,253,193,136,185,253,193,138,185,253,193,140,185,253,193,142,185,253,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,193,180,185,253,193,182,185,253,193,184,185,253,193,186,185,253,193,188,185,253,193,190,185,253,193,192,185,253,193,194,185,253,193,196,185,253,193,198,185,253,193,58,185,253,193,200,185,253,193,202,185,253,193,204,185,253,193,206,185,253,193,208,185,253,193,210,185,253,193,212,185,253,193,214,185,253,193,216,185,253,193,218,185,253,193,220,185,253,193,222,185,253,193,224,185,253,193,226,185,253,193,228,185,253,193,230,185,253,193,232,185,253,193,114,186,253,193,116,186,253,193,118,186,253,193,120,186,253,193,122,186,253,193,234,185,253,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,193,62,185,253,193,64,185,253,193,66,185,253,193,68,185,253,193,70,185,253,193,72,185,253,193,74,185,253,193,76,185,253,193,78,185,253,193,80,185,253,193,236,185,253,193,238,185,253,193,240,185,253,193,242,185,253,193,244,185,253,193,176,186,253,193,178,186,253,193,180,186,253,193,182,186,253,193,184,186,253,193,186,186,253,193,188,186,253,193,190,186,253,193,192,186,253,193,194,186,253,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,193,146,185,253,193,76,194,253,193,78,194,253,193,80,194,253,193,82,194,253,193,150,194,253,193,152,194,253,193,154,194,253,193,156,194,253,193,26,187,253,193,250,194,253,193,252,194,253,193,114,195,253,193,254,191,253,193,196,195,253,193,224,195,253,193,226,195,253,193,228,195,253,193,254,195,253,193,2,196,253,193,4,196,253,193,6,196,253,193,8,196,253,193,10,196,253,193,12,196,253,193,14,196,253,193,16,196,253,193,18,196,253,193,20,196,253,193,52,196,253,193,54,196,253,193,56,196,253,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,193,88,188,253,193,90,188,253,193,92,188,253,193,94,188,253,193,96,188,253,193,136,187,253,193,98,188,253,193,174,186,253,193,100,188,253,193,102,188,253,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,193,28,187,253,193,30,187,253,193,32,187,253,193,34,187,253,193,62,188,253,193,64,188,253,193,66,188,253,193,68,188,253,193,30,189,253,193,32,189,253,193,34,189,253,193,246,189,253,193,248,189,253,193,250,189,253,193,252,189,253,193,254,189,253,193,188,190,253,193,190,190,253,193,192,190,253,193,194,190,253,193,196,190,253,193,198,190,253,193,200,190,253,193,106,191,253,193,108,191,253,193,110,191,253,193,112,191,253,193,114,191,253,193,116,191,253,193,2,192,253,193,4,192,253,193,6,192,253,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,193,162,188,253,193,164,188,253,193,166,188,253,193,168,188,253,193,170,188,253,193,172,188,253,193,174,188,253,193,176,188,253,193,178,188,253,193,180,188,253,193,108,189,253,193,110,189,253,193,112,189,253,193,114,189,253,193,116,189,253,193,118,189,253,193,120,189,253,193,122,189,253,193,124,189,253,193,80,190,253,193,82,190,253,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,193,182,188,253,193,184,188,253,193,104,188,253,193,106,188,253,193,108,188,253,193,110,188,253,193,112,188,253,193,114,188,253,193,116,188,253,193,118,188,253,193,120,188,253,193,122,188,253,193,124,188,253,193,126,188,253,193,128,188,253,193,130,188,253,193,132,188,253,193,134,188,253,193,136,188,253,193,138,188,253,193,140,188,253,193,142,188,253,193,144,188,253,193,146,188,253,193,148,188,253,193,150,188,253,193,152,188,253,193,154,188,253,193,156,188,253,193,158,188,253,193,66,189,253,193,68,189,253,193,70,189,253,193,72,189,253,193,160,188,253,193,74,189,253,193,76,189,253,193,78,189,253,193,80,189,253,193,82,189,253,193,84,189,253,193,86,189,253,193,88,189,253,193,90,189,253,193,92,189,253,193,94,189,253,193,96,189,253,193,98,189,253,193,100,189,253,193,102,189,253,193,104,189,253,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,193,186,188,253,193,188,188,253,193,190,188,253,193,192,188,253,193,194,188,253,193,196,188,253,193,198,188,253,193,200,188,253,193,202,188,253,193,204,188,253,193,206,188,253,193,208,188,253,193,210,188,253,193,212,188,253,193,214,188,253,193,216,188,253,193,218,188,253,193,220,188,253,193,222,188,253,193,224,188,253,193,226,188,253,193,228,188,253,193,230,188,253,193,232,188,253,193,234,188,253,193,236,188,253,193,238,188,253,193,240,188,253,193,242,188,253,193,244,188,253,193,246,188,253,193,248,188,253,193,250,188,253,193,252,188,253,193,254,188,253,193,2,189,253,193,4,189,253,193,6,189,253,193,8,189,253,193,10,189,253,193,12,189,253,193,14,189,253,193,16,189,253,193,18,189,253,193,20,189,253,193,22,189,253,193,24,189,253,193,26,189,253,193,28,189,253,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,193,44,189,253,193,46,189,253,193,48,189,253,193,50,189,253,193,52,189,253,193,54,189,253,193,12,190,253,193,14,190,253,193,16,190,253,193,18,190,253,193,20,190,253,193,214,190,253,193,216,190,253,193,218,190,253,193,126,191,253,193,128,191,253,193,130,191,253,193,132,191,253,193,134,191,253,193,22,192,253,193,24,192,253,193,102,192,253,193,160,192,253,193,210,192,253,193,212,192,253,193,246,192,253,193,248,192,253,193,130,193,253,193,28,194,253,193,30,194,253,193,100,194,253,193,184,194,253,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,193,4,190,253,193,6,190,253,193,8,190,253,193,10,190,253,193,202,190,253,193,204,190,253,193,206,190,253,193,208,190,253,193,210,190,253,193,212,190,253,193,118,191,253,193,120,191,253,193,122,191,253,193,124,191,253,193,14,192,253,193,16,192,253,193,18,192,253,193,20,192,253,193,94,192,253,193,96,192,253,193,98,192,253,193,100,192,253,193,158,192,253,193,204,192,253,193,206,192,253,193,208,192,253,193,244,192,253,193,20,193,253,193,22,193,253,193,34,193,253,193,36,193,253,193,54,193,253,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,193,224,190,253,193,226,190,253,193,228,190,253,193,230,190,253,193,232,190,253,193,234,190,253,193,236,190,253,193,238,190,253,193,240,190,253,193,242,190,253,193,244,190,253,193,246,190,253,193,248,190,253,193,250,190,253,193,252,190,253,193,254,190,253,193,2,191,253,193,4,191,253,193,6,191,253,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,193,76,190,253,193,160,203,253,193,162,203,253,193,164,203,253,193,166,203,253,193,168,203,253,193,170,203,253,193,172,203,253,193,174,203,253,193,176,203,253,193,178,203,253,193,180,203,253,193,182,203,253,193,184,203,253,193,186,203,253,193,188,203,253,193,190,203,253,193,192,203,253,193,194,203,253,193,196,203,253,193,198,203,253,193,200,203,253,193,202,203,253,193,204,203,253,193,206,203,253,193,128,204,253,193,208,203,253,193,210,203,253,193,212,203,253,193,130,204,253,193,132,204,253,193,134,204,253,193,84,190,253,193,86,190,253,193,88,190,253,193,90,190,253,193,92,190,253,193,94,190,253,193,96,190,253,193,98,190,253,193,100,190,253,193,8,191,253,193,10,191,253,193,12,191,253,193,14,191,253,193,16,191,253,193,18,191,253,193,20,191,253,193,172,191,253,193,174,191,253,193,176,191,253,193,178,191,253,193,180,191,253,193,182,191,253,193,40,192,253,193,42,192,253,193,44,192,253,193,118,192,253,193,174,192,253,193,176,192,253,193,62,193,253,193,104,193,253,193,180,193,253,193,182,193,253,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,193,22,191,253,193,24,191,253,193,26,191,253,193,28,191,253,193,30,191,253,193,32,191,253,193,34,191,253,193,36,191,253,193,38,191,253,193,40,191,253,193,42,191,253,193,44,191,253,193,46,191,253,193,48,191,253,193,50,191,253,193,52,191,253,193,54,191,253,193,56,191,253,193,58,191,253,193,60,191,253,193,62,191,253,193,64,191,253,193,66,191,253,193,68,191,253,193,70,191,253,193,72,191,253,193,74,191,253,193,76,191,253,193,78,191,253,193,80,191,253,193,82,191,253,193,84,191,253,193,86,191,253,193,88,191,253,193,90,191,253,193,92,191,253,193,94,191,253,193,96,191,253,193,98,191,253,193,100,191,253,193,102,191,253,193,104,191,253,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,193,138,191,253,193,140,191,253,193,26,192,253,193,104,192,253,193,162,192,253,193,164,192,253,193,166,192,253,193,168,192,253,193,214,192,253,193,250,192,253,193,38,193,253,193,58,193,253,193,60,193,253,193,66,193,253,193,74,193,253,193,90,193,253,193,132,193,253,193,134,193,253,193,136,193,253,193,138,193,253,193,140,193,253,193,142,193,253,193,144,193,253,193,146,193,253,193,148,193,253,193,150,193,253,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,193,28,192,253,193,166,191,253,193,168,191,253,193,170,191,253,193,30,192,253,193,32,192,253,193,34,192,253,193,36,192,253,193,38,192,253,193,106,192,253,193,108,192,253,193,110,192,253,193,112,192,253,193,114,192,253,193,116,192,253,193,170,192,253,193,172,192,253,193,252,192,253,193,24,193,253,193,56,193,253,193,64,193,253,193,68,193,253,193,76,193,253,193,92,193,253,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,193,46,192,253,193,48,192,253,193,50,192,253,193,52,192,253,193,54,192,253,193,56,192,253,193,58,192,253,193,60,192,253,193,62,192,253,193,64,192,253,193,66,192,253,193,68,192,253,193,70,192,253,193,72,192,253,193,74,192,253,193,76,192,253,193,78,192,253,193,80,192,253,193,82,192,253,193,84,192,253,193,86,192,253,193,88,192,253,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,193,8,192,253,193,10,192,253,193,90,192,253,193,92,192,253,193,156,192,253,193,242,192,253,193,32,193,253,193,52,193,253,193,78,193,253,193,80,193,253,193,82,193,253,193,112,193,253,193,114,193,253,193,116,193,253,193,184,193,253,193,186,193,253,193,188,193,253,193,190,193,253,193,192,193,253,193,10,194,253,193,12,194,253,193,14,194,253,193,16,194,253,193,18,194,253,193,20,194,253,193,84,194,253,193,86,194,253,193,88,194,253,193,158,194,253,193,160,194,253,193,162,194,253,193,164,194,253,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,193,178,192,253,193,180,192,253,193,182,192,253,193,184,192,253,193,186,192,253,193,188,192,253,193,190,192,253,193,192,192,253,193,194,192,253,193,196,192,253,193,198,192,253,193,200,192,253,193,202,192,253,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,193,2,193,253,193,4,193,253,193,6,193,253,193,8,193,253,193,10,193,253,193,12,193,253,193,14,193,253,193,16,193,253,193,18,193,253,193,26,193,253,193,28,193,253,193,30,193,253,193,40,193,253,193,42,193,253,193,44,193,253,193,46,193,253,193,48,193,253,193,50,193,253,193,106,193,253,193,108,193,253,193,110,193,253,193,2,194,253,193,4,194,253,193,6,194,253,193,8,194,253,193,70,193,253,193,72,193,253,193,84,193,253,193,86,193,253,193,88,193,253,193,120,193,253,193,122,193,253,193,124,193,253,193,126,193,253,193,128,193,253,193,196,193,253,193,198,193,253,193,200,193,253,193,202,193,253,193,22,194,253,193,24,194,253,193,26,194,253,193,90,194,253,193,92,194,253,193,94,194,253,193,96,194,253,193,98,194,253,193,170,194,253,193,172,194,253,193,10,195,253,193,174,194,253,193,176,194,253,193,178,194,253,193,180,194,253,193,182,194,253,193,12,195,253,193,14,195,253,193,94,193,253,193,96,193,253,193,98,193,253,193,100,193,253,193,152,193,253,193,154,193,253,193,156,193,253,193,158,193,253,193,160,193,253,193,162,193,253,193,164,193,253,193,166,193,253,193,168,193,253,193,170,193,253,193,172,193,253,193,174,193,253,193,176,193,253,193,226,193,253,193,228,193,253,193,230,193,253,193,232,193,253,193,234,193,253,193,236,193,253,193,238,193,253,193,240,193,253,193,242,193,253,193,244,193,253,193,246,193,253,193,248,193,253,193,250,193,253,193,252,193,253,193,254,193,253,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,193,32,194,253,193,34,194,253,193,36,194,253,193,38,194,253,193,40,194,253,193,42,194,253,193,44,194,253,193,102,194,253,193,104,194,253,193,106,194,253,193,108,194,253,193,110,194,253,193,112,194,253,193,114,194,253,193,116,194,253,193,118,194,253,193,188,194,253,193,190,194,253,193,192,194,253,193,194,194,253,193,196,194,253,193,198,194,253,193,200,194,253,193,202,194,253,193,204,194,253,193,206,194,253,193,208,194,253,193,46,194,253,193,48,194,253,193,50,194,253,193,52,194,253,193,54,194,253,193,56,194,253,193,58,194,253,193,60,194,253,193,62,194,253,193,64,194,253,193,66,194,253,193,68,194,253,193,70,194,253,193,120,194,253,193,122,194,253,193,124,194,253,193,126,194,253,193,128,194,253,193,130,194,253,193,132,194,253,193,134,194,253,193,136,194,253,193,138,194,253,193,140,194,253,193,142,194,253,193,144,194,253,193,146,194,253,193,148,194,253,193,214,194,253,193,216,194,253,193,48,195,253,193,218,194,253,193,166,194,253,193,168,194,253,193,254,194,253,193,2,195,253,193,4,195,253,193,6,195,253,193,70,195,253,193,116,195,253,193,118,195,253,193,144,195,253,193,146,195,253,193,178,195,253,193,188,195,253,193,198,195,253,193,230,195,253,193,12,197,253,193,14,197,253,193,16,197,253,193,18,197,253,193,250,197,253,193,252,197,253,193,254,197,253,193,2,198,253,193,4,198,253,193,232,198,253,193,234,198,253,193,236,198,253,193,238,198,253,193,174,199,253,193,176,199,253,193,178,199,253,193,180,199,253,193,186,194,253,193,76,195,253,193,78,195,253,193,128,195,253,193,202,195,253,193,24,196,253,193,96,196,253,193,98,196,253,193,100,196,253,193,102,196,253,193,104,196,253,193,30,197,253,193,32,197,253,193,34,197,253,193,36,197,253,193,38,197,253,193,24,198,253,193,26,198,253,193,28,198,253,193,252,198,253,193,254,198,253,193,2,199,253,193,4,199,253,193,6,199,253,193,8,199,253,193,200,199,253,193,202,199,253,193,204,199,253,206,64,117,0,206,64,117,0,206,64,117,0,206,64,117,0,193,210,194,253,193,212,194,253,193,34,195,253,193,36,195,253,193,38,195,253,193,40,195,253,193,42,195,253,193,44,195,253,193,46,195,253,193,80,195,253,193,82,195,253,193,84,195,253,193,86,195,253,193,88,195,253,193,90,195,253,193,130,195,253,193,132,195,253,193,134,195,253,193,162,195,253,193,164,195,253,193,166,195,253,193,168,195,253,193,184,195,253,193,192,195,253,193,194,195,253,193,204,195,253,193,208,195,253,193,210,195,253,193,212,195,253,193,26,196,253,193,40,197,253,193,42,197,253,193,220,194,253,193,222,194,253,193,224,194,253,193,226,194,253,193,228,194,253,193,230,194,253,193,232,194,253,193,234,194,253,193,236,194,253,193,238,194,253,193,240,194,253,193,242,194,253,193,50,195,253,193,52,195,253,193,54,195,253,193,56,195,253,193,58,195,253,193,60,195,253,193,62,195,253,193,92,195,253,193,94,195,253,193,96,195,253,193,98,195,253,193,100,195,253,193,102,195,253,193,104,195,253,193,106,195,253,193,108,195,253,193,136,195,253,193,138,195,253,193,140,195,253,193,142,195,253,193,246,194,253,193,248,194,253,193,64,195,253,193,66,195,253,193,68,195,253,193,252,195,253,193,40,196,253,193,42,196,253,193,44,196,253,193,46,196,253,193,48,196,253,193,50,196,253,193,152,196,253,193,154,196,253,193,156,196,253,193,158,196,253,193,160,196,253,193,162,196,253,193,164,196,253,193,166,196,253,193,168,196,253,193,170,196,253,193,172,196,253,193,174,196,253,193,176,196,253,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,193,16,195,253,193,18,195,253,193,20,195,253,193,22,195,253,193,24,195,253,193,26,195,253,193,28,195,253,193,30,195,253,193,32,195,253,193,72,195,253,193,74,195,253,193,122,195,253,193,124,195,253,193,126,195,253,193,148,195,253,193,150,195,253,193,152,195,253,193,154,195,253,193,156,195,253,193,158,195,253,193,160,195,253,193,180,195,253,193,182,195,253,193,190,195,253,193,200,195,253,193,206,195,253,193,214,195,253,193,216,195,253,193,22,196,253,193,90,196,253,193,92,196,253,193,94,196,253,193,170,195,253,193,172,195,253,193,174,195,253,193,176,195,253,193,186,195,253,193,218,195,253,193,222,195,253,193,232,195,253,193,234,195,253,193,236,195,253,193,238,195,253,193,240,195,253,193,242,195,253,193,244,195,253,193,246,195,253,193,248,195,253,193,250,195,253,193,28,196,253,193,30,196,253,193,32,196,253,193,34,196,253,193,36,196,253,193,38,196,253,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,193,58,196,253,193,60,196,253,193,62,196,253,193,64,196,253,193,66,196,253,193,68,196,253,193,70,196,253,193,72,196,253,193,74,196,253,193,76,196,253,193,78,196,253,193,80,196,253,193,82,196,253,193,84,196,253,193,86,196,253,193,88,196,253,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,193,44,197,253,193,144,196,253,193,146,196,253,193,148,196,253,193,150,196,253,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,193,20,197,253,193,22,197,253,193,24,197,253,193,26,197,253,193,28,197,253,193,8,198,253,193,10,198,253,193,12,198,253,193,14,198,253,193,16,198,253,193,18,198,253,193,20,198,253,193,22,198,253,193,240,198,253,193,242,198,253,193,244,198,253,193,246,198,253,193,248,198,253,193,250,198,253,193,184,199,253,193,186,199,253,193,118,207,253,193,188,199,253,193,190,199,253,193,192,199,253,193,194,199,253,193,196,199,253,193,198,199,253,193,208,200,253,193,210,200,253,193,212,200,253,193,214,200,253,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,193,100,198,253,193,102,198,253,193,104,198,253,193,106,198,253,193,108,198,253,193,110,198,253,193,112,198,253,193,114,198,253,193,116,198,253,193,118,198,253,193,68,199,253,193,70,199,253,193,72,199,253,193,74,199,253,193,76,199,253,193,78,199,253,193,80,199,253,193,82,199,253,193,48,200,253,193,50,200,253,193,52,200,253,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,193,30,198,253,193,32,198,253,193,34,198,253,193,36,198,253,193,38,198,253,193,40,198,253,193,10,199,253,193,12,199,253,193,206,199,253,193,208,199,253,193,210,199,253,193,212,199,253,193,214,199,253,193,236,200,253,193,238,200,253,193,240,200,253,193,242,200,253,193,228,201,253,193,230,201,253,193,232,201,253,193,200,202,253,193,202,202,253,193,204,202,253,193,206,202,253,193,208,202,253,193,158,203,253,193,120,204,253,193,122,204,253,193,124,204,253,193,126,204,253,193,252,204,253,193,254,204,253,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,193,182,199,253,193,192,200,253,193,194,200,253,193,196,200,253,193,198,200,253,193,200,200,253,193,202,200,253,193,204,200,253,193,206,200,253,193,202,201,253,193,204,201,253,193,206,201,253,193,164,202,253,193,166,202,253,193,168,202,253,193,170,202,253,193,136,203,253,193,102,204,253,193,104,204,253,193,106,204,253,193,108,204,253,193,110,204,253,193,240,204,253,193,82,205,253,193,142,205,253,193,32,206,253,193,122,206,253,193,124,206,253,193,126,206,253,193,128,206,253,193,130,206,253,193,188,206,253,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,193,244,200,253,193,46,200,253,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,193,54,200,253,193,56,200,253,193,58,200,253,193,60,200,253,193,62,200,253,193,64,200,253,193,44,201,253,193,46,201,253,193,48,201,253,193,50,201,253,193,52,201,253,193,54,201,253,193,56,201,253,193,58,201,253,193,60,201,253,193,62,201,253,193,64,201,253,193,50,202,253,193,52,202,253,193,54,202,253,193,56,202,253,193,58,202,253,193,60,202,253,193,244,202,253,193,246,202,253,193,248,202,253,193,250,202,253,193,252,202,253,193,254,202,253,193,2,203,253,193,214,203,253,193,216,203,253,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,193,216,200,253,193,218,200,253,193,208,201,253,193,210,201,253,193,212,201,253,193,214,201,253,193,216,201,253,193,218,201,253,193,172,202,253,193,174,202,253,193,176,202,253,193,178,202,253,193,180,202,253,193,182,202,253,193,140,203,253,193,142,203,253,193,144,203,253,193,112,204,253,193,114,204,253,193,116,204,253,193,242,204,253,193,244,204,253,193,246,204,253,193,84,205,253,193,144,205,253,193,202,205,253,193,46,206,253,193,74,206,253,193,82,206,253,193,84,206,253,193,96,206,253,193,134,206,253,206,64,117,0,206,64,117,0,206,64,117,0,206,64,117,0,193,220,201,253,193,222,201,253,193,224,201,253,193,226,201,253,193,184,202,253,193,186,202,253,193,188,202,253,193,190,202,253,193,192,202,253,193,194,202,253,193,196,202,253,193,198,202,253,193,146,203,253,193,148,203,253,193,150,203,253,193,152,203,253,193,154,203,253,193,156,203,253,193,118,204,253,193,248,204,253,193,250,204,253,193,86,205,253,193,88,205,253,193,146,205,253,193,148,205,253,193,204,205,253,193,206,205,253,193,12,206,253,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,193,210,202,253,193,42,202,253,193,44,202,253,193,46,202,253,193,48,202,253,193,212,202,253,193,214,202,253,193,216,202,253,193,218,202,253,193,220,202,253,193,222,202,253,193,224,202,253,193,226,202,253,193,228,202,253,193,230,202,253,193,232,202,253,193,234,202,253,193,236,202,253,193,238,202,253,193,240,202,253,193,242,202,253,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,193,218,203,253,193,220,203,253,193,222,203,253,193,224,203,253,193,226,203,253,193,228,203,253,193,230,203,253,193,158,204,253,193,160,204,253,193,162,204,253,193,164,204,253,193,166,204,253,193,24,205,253,193,26,205,253,193,96,205,253,193,158,205,253,193,34,206,253,193,62,206,253,193,64,206,253,193,114,206,253,193,8,207,253,193,10,207,253,193,182,207,253,193,254,207,253,193,74,208,253,193,188,208,253,193,250,208,253,193,34,209,253,193,96,209,253,193,118,209,253,193,140,209,253,193,198,209,253,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,193,168,204,253,193,100,204,253,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,193,136,204,253,193,138,204,253,193,140,204,253,193,142,204,253,193,144,204,253,193,146,204,253,193,148,204,253,193,150,204,253,193,152,204,253,193,154,204,253,193,156,204,253,193,8,205,253,193,10,205,253,193,12,205,253,193,14,205,253,193,16,205,253,193,18,205,253,193,20,205,253,193,22,205,253,193,92,205,253,193,94,205,253,193,152,205,253,193,154,205,253,193,156,205,253,193,212,205,253,193,214,205,253,193,216,205,253,193,244,205,253,193,246,205,253,193,14,206,253,193,16,206,253,193,72,206,253,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,193,28,205,253,193,30,205,253,193,32,205,253,193,34,205,253,193,36,205,253,193,38,205,253,193,40,205,253,193,42,205,253,193,44,205,253,193,46,205,253,193,48,205,253,193,50,205,253,193,52,205,253,193,198,218,253,193,54,205,253,193,2,205,253,193,4,205,253,193,6,205,253,193,90,205,253,193,150,205,253,193,208,205,253,193,210,205,253,193,76,206,253,193,86,206,253,193,88,206,253,193,98,206,253,193,100,206,253,193,102,206,253,193,144,206,253,193,146,206,253,193,148,206,253,193,150,206,253,193,152,206,253,193,154,206,253,193,156,206,253,193,158,206,253,193,216,206,253,193,218,206,253,193,220,206,253,193,222,206,253,193,224,206,253,193,226,206,253,193,228,206,253,193,230,206,253,193,232,206,253,193,234,206,253,193,236,206,253,193,56,205,253,193,58,205,253,193,60,205,253,193,62,205,253,193,64,205,253,193,66,205,253,193,68,205,253,193,70,205,253,193,72,205,253,193,74,205,253,193,76,205,253,193,78,205,253,193,80,205,253,193,98,205,253,193,100,205,253,193,102,205,253,193,104,205,253,193,106,205,253,193,108,205,253,193,110,205,253,193,112,205,253,193,114,205,253,193,116,205,253,193,118,205,253,193,120,205,253,193,122,205,253,193,124,205,253,193,126,205,253,193,128,205,253,193,130,205,253,193,132,205,253,193,134,205,253,193,136,205,253,193,138,205,253,193,140,205,253,193,160,205,253,193,162,205,253,193,164,205,253,193,166,205,253,193,168,205,253,193,170,205,253,193,172,205,253,193,174,205,253,193,176,205,253,193,178,205,253,193,180,205,253,193,182,205,253,193,184,205,253,193,186,205,253,193,188,205,253,193,190,205,253,193,192,205,253,193,194,205,253,193,196,205,253,193,198,205,253,193,200,205,253,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,193,248,205,253,193,250,205,253,193,252,205,253,193,254,205,253,193,2,206,253,193,4,206,253,193,6,206,253,193,8,206,253,193,10,206,253,193,20,206,253,193,22,206,253,193,24,206,253,193,26,206,253,193,28,206,253,193,30,206,253,193,38,206,253,193,40,206,253,193,42,206,253,193,44,206,253,193,48,206,253,193,50,206,253,193,52,206,253,193,54,206,253,193,56,206,253,193,58,206,253,193,66,206,253,193,68,206,253,193,60,206,253,193,138,206,253,193,140,206,253,193,142,206,253,193,214,206,253,193,48,207,253,193,130,207,253,193,132,207,253,193,96,208,253,193,98,208,253,193,136,208,253,193,24,209,253,193,46,209,253,193,66,209,253,193,68,209,253,193,90,209,253,193,154,209,253,193,182,209,253,193,204,209,253,193,26,210,253,193,70,210,253,193,118,210,253,193,162,210,253,193,164,210,253,193,192,210,253,193,212,210,253,193,214,210,253,193,166,211,253,193,34,212,253,193,36,212,253,193,72,212,253,193,96,212,253,193,70,206,253,193,116,206,253,193,118,206,253,193,120,206,253,193,186,206,253,193,12,207,253,193,14,207,253,193,16,207,253,193,18,207,253,193,20,207,253,193,22,207,253,193,24,207,253,193,104,207,253,193,106,207,253,193,184,207,253,193,2,208,253,193,4,208,253,193,76,208,253,193,78,208,253,193,80,208,253,193,82,208,253,193,222,208,253,193,244,208,253,193,246,208,253,193,252,208,253,193,254,208,253,193,2,209,253,193,4,209,253,193,12,209,253,193,14,209,253,193,16,209,253,193,18,209,253,193,78,206,253,193,80,206,253,193,90,206,253,193,92,206,253,193,94,206,253,193,104,206,253,193,106,206,253,193,108,206,253,193,110,206,253,193,112,206,253,193,160,206,253,193,162,206,253,193,164,206,253,193,166,206,253,193,168,206,253,193,170,206,253,193,172,206,253,193,174,206,253,193,176,206,253,193,178,206,253,193,180,206,253,193,182,206,253,193,184,206,253,193,244,206,253,193,246,206,253,193,248,206,253,193,250,206,253,193,252,206,253,193,254,206,253,193,2,207,253,193,4,207,253,193,6,207,253,193,136,206,253,193,200,206,253,193,202,206,253,193,204,206,253,193,206,206,253,193,208,206,253,193,210,206,253,193,212,206,253,193,38,207,253,193,40,207,253,193,42,207,253,193,44,207,253,193,46,207,253,193,120,207,253,193,122,207,253,193,124,207,253,193,126,207,253,193,128,207,253,193,198,207,253,193,200,207,253,193,202,207,253,193,204,207,253,193,206,207,253,193,208,207,253,193,20,208,253,193,22,208,253,193,24,208,253,193,26,208,253,193,28,208,253,193,30,208,253,193,32,208,253,193,34,208,253,193,190,206,253,193,192,206,253,193,194,206,253,193,196,206,253,193,198,206,253,193,26,207,253,193,28,207,253,193,30,207,253,193,32,207,253,193,34,207,253,193,36,207,253,193,108,207,253,193,110,207,253,193,112,207,253,193,114,207,253,193,116,207,253,193,186,207,253,193,188,207,253,193,190,207,253,193,192,207,253,193,194,207,253,193,196,207,253,193,6,208,253,193,8,208,253,193,10,208,253,193,12,208,253,193,14,208,253,193,16,208,253,193,18,208,253,193,84,208,253,193,86,208,253,193,122,208,253,193,238,206,253,193,240,206,253,193,242,206,253,193,50,207,253,193,52,207,253,193,54,207,253,193,56,207,253,193,58,207,253,193,60,207,253,193,62,207,253,193,64,207,253,193,66,207,253,193,68,207,253,193,70,207,253,193,72,207,253,193,74,207,253,193,76,207,253,193,78,207,253,193,80,207,253,193,82,207,253,193,134,207,253,193,136,207,253,193,138,207,253,193,140,207,253,193,142,207,253,193,144,207,253,193,146,207,253,193,148,207,253,193,150,207,253,193,152,207,253,193,154,207,253,193,156,207,253,193,84,207,253,193,86,207,253,193,88,207,253,193,90,207,253,193,92,207,253,193,94,207,253,193,96,207,253,193,98,207,253,193,100,207,253,193,158,207,253,193,160,207,253,193,162,207,253,193,164,207,253,193,166,207,253,193,168,207,253,193,170,207,253,193,172,207,253,193,174,207,253,193,176,207,253,193,178,207,253,193,180,207,253,193,240,207,253,193,242,207,253,193,244,207,253,193,56,208,253,193,246,207,253,193,248,207,253,193,250,207,253,193,252,207,253,193,58,208,253,193,60,208,253,193,62,208,253,193,210,207,253,193,212,207,253,193,214,207,253,193,216,207,253,193,218,207,253,193,220,207,253,193,222,207,253,193,224,207,253,193,226,207,253,193,228,207,253,193,230,207,253,193,232,207,253,193,234,207,253,193,236,207,253,193,238,207,253,193,36,208,253,193,38,208,253,193,40,208,253,193,42,208,253,193,44,208,253,193,46,208,253,193,48,208,253,193,50,208,253,193,52,208,253,193,54,208,253,193,100,208,253,193,102,208,253,193,104,208,253,193,106,208,253,193,108,208,253,193,110,208,253,193,112,208,253,193,64,208,253,193,66,208,253,193,68,208,253,193,70,208,253,193,72,208,253,193,114,208,253,193,116,208,253,193,118,208,253,193,120,208,253,193,150,208,253,193,152,208,253,193,154,208,253,193,156,208,253,193,180,208,253,193,182,208,253,193,184,208,253,193,186,208,253,193,214,208,253,193,216,208,253,193,232,208,253,193,234,208,253,193,240,208,253,193,248,208,253,193,10,209,253,193,50,209,253,193,70,209,253,193,92,209,253,193,94,209,253,193,128,209,253,193,130,209,253,193,164,209,253,193,178,209,253,193,88,208,253,193,90,208,253,193,92,208,253,193,94,208,253,193,130,208,253,193,132,208,253,193,134,208,253,193,162,208,253,193,164,208,253,193,166,208,253,193,168,208,253,193,170,208,253,193,192,208,253,193,194,208,253,193,196,208,253,193,198,208,253,193,228,208,253,193,238,208,253,193,6,209,253,193,44,209,253,193,138,209,253,193,156,209,253,193,162,209,253,193,168,209,253,193,170,209,253,193,172,209,253,193,184,209,253,193,242,209,253,193,24,210,253,193,66,210,253,193,68,210,253,193,160,210,253,193,124,208,253,193,126,208,253,193,128,208,253,193,158,208,253,193,160,208,253,193,190,208,253,193,218,208,253,193,30,209,253,193,42,209,253,193,88,209,253,193,166,209,253,193,196,209,253,193,240,209,253,193,64,210,253,193,116,210,253,193,2,211,253,193,30,212,253,193,222,212,253,193,232,212,253,193,12,213,253,193,32,213,253,193,68,213,253,193,146,213,253,193,168,213,253,193,236,213,253,193,6,216,253,193,8,216,253,193,84,216,253,193,42,217,253,193,134,217,253,193,208,217,253,193,248,217,253,193,138,208,253,193,140,208,253,193,142,208,253,193,144,208,253,193,146,208,253,193,148,208,253,193,172,208,253,193,174,208,253,193,176,208,253,193,178,208,253,193,200,208,253,193,202,208,253,193,204,208,253,193,206,208,253,193,208,208,253,193,210,208,253,193,212,208,253,193,220,208,253,193,224,208,253,193,226,208,253,193,230,208,253,193,236,208,253,193,8,209,253,193,26,209,253,193,32,209,253,193,48,209,253,193,152,209,253,193,158,209,253,193,174,209,253,193,176,209,253,193,120,210,253,193,122,210,253,193,20,209,253,193,22,209,253,193,28,209,253,193,36,209,253,193,38,209,253,193,40,209,253,193,52,209,253,193,54,209,253,193,56,209,253,193,58,209,253,193,60,209,253,193,62,209,253,193,64,209,253,193,72,209,253,193,74,209,253,193,76,209,253,193,78,209,253,193,80,209,253,193,82,209,253,193,84,209,253,193,86,209,253,193,98,209,253,193,100,209,253,193,102,209,253,193,104,209,253,193,106,209,253,193,108,209,253,193,110,209,253,193,112,209,253,193,114,209,253,193,116,209,253,193,120,209,253,193,122,209,253,193,124,209,253,193,126,209,253,193,132,209,253,193,134,209,253,193,136,209,253,193,142,209,253,193,144,209,253,193,146,209,253,193,148,209,253,193,150,209,253,193,192,209,253,193,194,209,253,193,200,209,253,193,202,209,253,193,216,209,253,193,218,209,253,193,220,209,253,193,222,209,253,193,224,209,253,193,226,209,253,193,228,209,253,193,230,209,253,193,232,209,253,193,234,209,253,193,236,209,253,193,238,209,253,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,193,186,209,253,193,188,209,253,193,190,209,253,193,206,209,253,193,208,209,253,193,244,209,253,193,246,209,253,193,248,209,253,193,250,209,253,193,28,210,253,193,30,210,253,193,32,210,253,193,72,210,253,193,74,210,253,193,76,210,253,193,78,210,253,193,80,210,253,193,124,210,253,193,126,210,253,193,128,210,253,193,130,210,253,193,132,210,253,193,134,210,253,193,136,210,253,193,166,210,253,193,168,210,253,193,170,210,253,193,172,210,253,193,194,210,253,193,196,210,253,193,216,210,253,193,236,210,253,193,210,209,253,193,212,209,253,193,214,209,253,193,252,209,253,193,254,209,253,193,2,210,253,193,82,210,253,193,138,210,253,193,198,210,253,193,218,210,253,193,6,211,253,193,8,211,253,193,70,211,253,193,72,211,253,193,74,211,253,193,92,211,253,193,94,211,253,193,132,211,253,193,134,211,253,193,136,211,253,193,138,211,253,193,172,211,253,193,202,211,253,193,204,211,253,193,206,211,253,193,242,211,253,193,244,211,253,193,246,211,253,193,248,211,253,193,250,211,253,193,74,212,253,193,76,212,253,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,193,34,210,253,193,36,210,253,193,38,210,253,193,40,210,253,193,42,210,253,193,44,210,253,193,46,210,253,193,48,210,253,193,50,210,253,193,52,210,253,193,54,210,253,193,56,210,253,193,58,210,253,193,60,210,253,193,62,210,253,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,193,140,210,253,193,142,210,253,193,144,210,253,193,146,210,253,193,148,210,253,193,150,210,253,193,152,210,253,193,154,210,253,193,156,210,253,193,158,210,253,193,174,210,253,193,176,210,253,193,178,210,253,193,180,210,253,193,182,210,253,193,184,210,253,193,186,210,253,193,188,210,253,193,190,210,253,193,200,210,253,193,202,210,253,193,204,210,253,193,206,210,253,193,208,210,253,193,220,210,253,193,222,210,253,193,224,210,253,193,226,210,253,193,210,210,253,193,230,210,253,193,196,211,253,193,32,212,253,193,154,212,253,193,208,212,253,193,248,212,253,193,14,213,253,193,16,213,253,193,18,213,253,193,34,213,253,193,36,213,253,193,38,213,253,193,76,213,253,193,84,213,253,193,154,213,253,193,218,213,253,193,26,214,253,193,86,214,253,193,100,214,253,193,156,214,253,193,160,215,253,193,162,215,253,193,198,215,253,193,86,216,253,193,128,216,253,193,130,216,253,193,6,217,253,193,60,217,253,193,70,217,253,193,74,217,253,193,114,217,253,193,228,210,253,193,238,210,253,193,240,210,253,193,242,210,253,193,244,210,253,193,246,210,253,193,248,210,253,193,250,210,253,193,252,210,253,193,254,210,253,193,10,211,253,193,12,211,253,193,14,211,253,193,16,211,253,193,20,211,253,193,22,211,253,193,24,211,253,193,26,211,253,193,28,211,253,193,30,211,253,193,32,211,253,193,34,211,253,193,38,211,253,193,40,211,253,193,44,211,253,193,48,211,253,193,52,211,253,193,54,211,253,193,58,211,253,193,60,211,253,193,62,211,253,193,64,211,253,193,232,210,253,193,234,210,253,193,42,211,253,193,38,212,253,193,202,212,253,193,204,212,253,193,210,212,253,193,212,212,253,193,214,212,253,193,228,212,253,193,236,212,253,193,238,212,253,193,240,212,253,193,242,212,253,193,244,212,253,193,246,212,253,193,252,212,253,193,254,212,253,193,2,213,253,193,4,213,253,193,6,213,253,193,8,213,253,193,20,213,253,193,22,213,253,193,24,213,253,193,40,213,253,193,42,213,253,193,44,213,253,193,46,213,253,193,48,213,253,193,52,213,253,193,54,213,253,193,4,211,253,193,18,211,253,193,36,211,253,193,46,211,253,193,50,211,253,193,56,211,253,193,196,212,253,193,68,211,253,193,84,211,253,193,86,211,253,193,88,211,253,193,90,211,253,193,126,211,253,193,128,211,253,193,130,211,253,193,168,211,253,193,170,211,253,193,198,211,253,193,200,211,253,193,238,211,253,193,240,211,253,193,40,212,253,193,100,212,253,193,190,212,253,193,216,212,253,193,26,213,253,193,50,213,253,193,94,213,253,193,98,213,253,193,100,213,253,193,108,213,253,193,148,213,253,193,162,211,253,193,164,211,253,193,174,211,253,193,176,211,253,193,178,211,253,193,180,211,253,193,182,211,253,193,184,211,253,193,186,211,253,193,188,211,253,193,190,211,253,193,192,211,253,193,194,211,253,193,208,211,253,193,210,211,253,193,212,211,253,193,214,211,253,193,216,211,253,193,218,211,253,193,220,211,253,193,222,211,253,193,224,211,253,193,226,211,253,193,228,211,253,193,230,211,253,193,232,211,253,193,234,211,253,193,236,211,253,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,193,42,212,253,193,44,212,253,193,46,212,253,193,48,212,253,193,50,212,253,193,52,212,253,193,54,212,253,193,56,212,253,193,58,212,253,193,60,212,253,193,62,212,253,193,64,212,253,193,66,212,253,193,68,212,253,193,70,212,253,193,80,212,253,193,82,212,253,193,84,212,253,193,86,212,253,193,88,212,253,193,78,212,253,193,102,212,253,193,104,212,253,193,140,212,253,193,156,212,253,193,106,212,253,193,172,212,253,193,110,213,253,193,174,213,253,193,176,213,253,193,224,213,253,193,254,213,253,193,16,214,253,193,30,214,253,193,60,214,253,193,88,214,253,193,102,214,253,193,134,214,253,193,140,214,253,193,142,214,253,193,186,214,253,193,188,214,253,193,190,214,253,193,204,214,253,193,206,214,253,193,208,214,253,193,220,214,253,193,224,214,253,193,236,214,253,193,4,215,253,193,8,215,253,193,20,215,253,193,90,212,253,193,92,212,253,193,94,212,253,193,108,212,253,193,110,212,253,193,112,212,253,193,114,212,253,193,116,212,253,193,118,212,253,193,120,212,253,193,122,212,253,193,124,212,253,193,126,212,253,193,128,212,253,193,130,212,253,193,132,212,253,193,134,212,253,193,136,212,253,193,142,212,253,193,144,212,253,193,146,212,253,193,148,212,253,193,150,212,253,193,152,212,253,193,158,212,253,193,160,212,253,193,162,212,253,193,164,212,253,193,166,212,253,193,168,212,253,193,170,212,253,193,174,212,253,193,98,212,253,193,138,212,253,193,188,212,253,193,200,212,253,193,224,212,253,193,226,212,253,193,234,212,253,193,250,212,253,193,124,213,253,193,126,213,253,193,128,213,253,193,156,213,253,193,196,213,253,193,204,213,253,193,208,213,253,193,246,213,253,193,126,214,253,193,128,214,253,193,182,214,253,193,240,214,253,193,80,215,253,193,82,215,253,193,124,215,253,193,164,215,253,193,166,215,253,193,10,216,253,193,12,216,253,193,14,216,253,193,88,216,253,193,158,216,253,193,244,216,253,193,8,217,253,193,176,212,253,193,178,212,253,193,180,212,253,193,182,212,253,193,184,212,253,193,186,212,253,193,192,212,253,193,194,212,253,193,206,212,253,193,218,212,253,193,220,212,253,193,230,212,253,193,10,213,253,193,198,212,253,193,28,213,253,193,30,213,253,193,74,213,253,193,96,213,253,193,102,213,253,193,104,213,253,193,106,213,253,193,112,213,253,193,114,213,253,193,116,213,253,193,118,213,253,193,120,213,253,193,122,213,253,193,130,213,253,193,132,213,253,193,134,213,253,193,136,213,253,193,138,213,253,193,56,213,253,193,58,213,253,193,60,213,253,193,62,213,253,193,64,213,253,193,66,213,253,193,70,213,253,193,72,213,253,193,78,213,253,193,80,213,253,193,82,213,253,193,86,213,253,193,88,213,253,193,90,213,253,193,92,213,253,193,158,213,253,193,170,213,253,193,182,213,253,193,248,213,253,193,28,214,253,193,58,214,253,193,202,214,253,193,126,215,253,193,200,215,253,193,202,215,253,193,160,216,253,193,198,216,253,193,154,217,253,193,156,217,253,193,186,217,253,193,228,217,253,193,230,217,253,193,140,213,253,193,142,213,253,193,144,213,253,193,150,213,253,193,152,213,253,193,162,213,253,193,164,213,253,193,166,213,253,193,178,213,253,193,180,213,253,193,184,213,253,193,186,213,253,193,188,213,253,193,190,213,253,193,192,213,253,193,194,213,253,193,200,213,253,193,202,213,253,193,206,213,253,193,214,213,253,193,216,213,253,193,226,213,253,193,228,213,253,193,230,213,253,193,232,213,253,193,234,213,253,193,244,213,253,193,2,214,253,193,4,214,253,193,6,214,253,193,8,214,253,193,10,214,253,193,12,214,253,193,14,214,253,193,18,214,253,193,20,214,253,193,22,214,253,193,24,214,253,193,32,214,253,193,34,214,253,193,36,214,253,193,38,214,253,193,40,214,253,193,42,214,253,193,44,214,253,193,46,214,253,193,48,214,253,193,50,214,253,193,52,214,253,193,54,214,253,193,56,214,253,193,62,214,253,193,64,214,253,193,66,214,253,193,68,214,253,193,70,214,253,193,72,214,253,193,74,214,253,193,76,214,253,193,78,214,253,193,80,214,253,193,82,214,253,193,84,214,253,193,90,214,253,193,92,214,253,193,94,214,253,193,96,214,253,193,98,214,253,193,104,214,253,193,106,214,253,193,108,214,253,193,112,214,253,193,114,214,253,193,116,214,253,193,118,214,253,193,120,214,253,193,122,214,253,193,130,214,253,193,136,214,253,193,138,214,253,193,144,214,253,193,146,214,253,193,148,214,253,193,150,214,253,193,152,214,253,193,154,214,253,193,160,214,253,193,162,214,253,193,164,214,253,193,166,214,253,193,168,214,253,193,170,214,253,193,172,214,253,193,174,214,253,193,176,214,253,193,178,214,253,193,180,214,253,193,184,214,253,193,192,214,253,193,194,214,253,193,196,214,253,193,198,214,253,193,200,214,253,193,210,214,253,193,212,214,253,193,214,214,253,193,216,214,253,193,222,214,253,193,226,214,253,193,228,214,253,193,230,214,253,193,232,214,253,193,234,214,253,193,242,214,253,193,238,214,253,193,244,214,253,193,246,214,253,193,248,214,253,193,250,214,253,193,2,215,253,193,6,215,253,193,10,215,253,193,12,215,253,193,14,215,253,206,192,118,0,206,192,118,0,206,192,118,0,206,192,118,0,193,22,215,253,193,50,215,253,193,94,215,253,193,96,215,253,193,134,215,253,193,136,215,253,193,138,215,253,193,140,215,253,193,172,215,253,193,174,215,253,193,218,215,253,193,220,215,253,193,222,215,253,193,26,216,253,193,28,216,253,193,30,216,253,193,138,216,253,193,162,216,253,193,202,216,253,193,204,216,253,193,206,216,253,193,232,216,253,193,98,217,253,193,120,217,253,193,166,217,253,193,196,217,253,193,20,218,253,193,52,218,253,193,54,218,253,193,88,218,253,193,90,218,253,193,92,218,253,206,192,118,0,206,192,118,0,206,192,118,0,206,192,118,0,193,52,215,253,193,54,215,253,193,56,215,253,193,58,215,253,193,60,215,253,193,62,215,253,193,64,215,253,193,66,215,253,193,68,215,253,193,70,215,253,193,72,215,253,193,74,215,253,193,76,215,253,193,78,215,253,193,98,215,253,193,100,215,253,193,102,215,253,193,104,215,253,193,106,215,253,193,108,215,253,193,110,215,253,193,112,215,253,193,114,215,253,193,116,215,253,193,118,215,253,193,120,215,253,193,122,215,253,193,142,215,253,193,130,215,253,193,132,215,253,193,168,215,253,193,170,215,253,193,204,215,253,193,206,215,253,193,208,215,253,193,210,215,253,193,212,215,253,193,214,215,253,193,216,215,253,193,16,216,253,193,18,216,253,193,20,216,253,193,22,216,253,193,24,216,253,193,90,216,253,193,92,216,253,193,132,216,253,193,134,216,253,193,136,216,253,193,200,216,253,193,230,216,253,193,246,216,253,193,10,217,253,193,36,217,253,193,40,217,253,193,44,217,253,193,48,217,253,193,62,217,253,193,222,217,253,193,76,217,253,193,144,215,253,193,146,215,253,193,148,215,253,193,150,215,253,193,152,215,253,193,154,215,253,193,156,215,253,193,158,215,253,193,178,215,253,193,180,215,253,193,182,215,253,193,184,215,253,193,186,215,253,193,188,215,253,193,190,215,253,193,192,215,253,193,194,215,253,193,196,215,253,193,224,215,253,193,226,215,253,193,228,215,253,193,230,215,253,193,232,215,253,193,234,215,253,193,236,215,253,193,238,215,253,193,240,215,253,193,242,215,253,193,244,215,253,193,246,215,253,193,248,215,253,193,250,215,253,193,252,215,253,193,254,215,253,193,2,216,253,193,32,216,253,193,4,216,253,193,34,216,253,193,36,216,253,193,38,216,253,193,40,216,253,193,42,216,253,193,44,216,253,193,46,216,253,193,48,216,253,193,50,216,253,193,52,216,253,193,54,216,253,193,56,216,253,193,58,216,253,193,60,216,253,193,62,216,253,193,64,216,253,193,66,216,253,193,68,216,253,193,70,216,253,193,72,216,253,193,74,216,253,193,76,216,253,193,78,216,253,193,80,216,253,193,82,216,253,193,94,216,253,193,96,216,253,193,98,216,253,193,100,216,253,193,102,216,253,193,104,216,253,193,106,216,253,193,108,216,253,193,110,216,253,193,112,216,253,193,114,216,253,193,116,216,253,193,118,216,253,193,120,216,253,193,122,216,253,193,124,216,253,193,126,216,253,193,140,216,253,193,142,216,253,193,144,216,253,193,146,216,253,193,148,216,253,193,150,216,253,193,152,216,253,193,154,216,253,193,156,216,253,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,193,208,216,253,193,210,216,253,193,212,216,253,193,214,216,253,193,216,216,253,193,218,216,253,193,220,216,253,193,222,216,253,193,224,216,253,193,226,216,253,193,228,216,253,193,234,216,253,193,236,216,253,193,238,216,253,193,240,216,253,193,242,216,253,193,248,216,253,193,250,216,253,193,252,216,253,193,254,216,253,193,2,217,253,193,4,217,253,193,12,217,253,193,14,217,253,193,16,217,253,193,18,217,253,193,20,217,253,193,22,217,253,193,24,217,253,193,26,217,253,193,28,217,253,193,30,217,253,193,32,217,253,193,34,217,253,193,46,217,253,193,50,217,253,193,52,217,253,193,54,217,253,193,56,217,253,193,58,217,253,193,64,217,253,193,66,217,253,193,68,217,253,193,78,217,253,193,80,217,253,193,82,217,253,193,84,217,253,193,86,217,253,193,88,217,253,193,100,217,253,193,102,217,253,193,104,217,253,193,106,217,253,193,108,217,253,193,110,217,253,193,38,217,253,193,72,217,253,193,90,217,253,193,136,217,253,193,152,217,253,193,32,218,253,193,68,218,253,193,102,218,253,193,126,218,253,193,140,218,253,193,204,218,253,193,206,218,253,193,18,219,253,193,64,219,253,193,136,219,253,193,222,219,253,193,242,219,253,193,244,219,253,193,246,219,253,193,248,219,253,193,250,219,253,193,252,219,253,193,22,220,253,193,78,220,253,193,152,220,253,193,170,220,253,193,182,220,253,193,184,220,253,193,186,220,253,193,252,220,253,193,12,221,253,193,24,221,253,193,92,217,253,193,94,217,253,193,96,217,253,193,116,217,253,193,118,217,253,193,158,217,253,193,188,217,253,193,190,217,253,193,200,217,253,193,202,217,253,193,210,217,253,193,224,217,253,193,226,217,253,193,2,218,253,193,6,218,253,193,10,218,253,193,12,218,253,193,14,218,253,193,18,218,253,193,62,218,253,193,64,218,253,193,84,218,253,193,86,218,253,193,106,218,253,193,142,218,253,193,144,218,253,193,146,218,253,193,148,218,253,193,176,218,253,193,180,218,253,193,182,218,253,193,194,218,253,193,112,217,253,193,122,217,253,193,124,217,253,193,126,217,253,193,128,217,253,193,130,217,253,193,132,217,253,193,138,217,253,193,140,217,253,193,142,217,253,193,144,217,253,193,146,217,253,193,160,217,253,193,162,217,253,193,168,217,253,193,170,217,253,193,172,217,253,193,174,217,253,193,176,217,253,193,178,217,253,193,180,217,253,193,182,217,253,193,184,217,253,193,192,217,253,193,194,217,253,193,198,217,253,193,204,217,253,193,196,224,253,193,212,217,253,193,206,217,253,193,214,217,253,193,216,217,253,193,148,217,253,193,150,217,253,193,164,217,253,193,238,217,253,193,242,217,253,193,30,218,253,193,36,218,253,193,38,218,253,193,40,218,253,193,44,218,253,193,50,218,253,193,56,218,253,193,60,218,253,193,62,219,253,193,134,219,253,193,76,220,253,193,108,220,253,193,180,220,253,193,212,220,253,193,238,220,253,193,134,221,253,193,206,221,253,193,208,221,253,193,210,221,253,193,12,223,253,193,72,223,253,193,122,223,253,193,124,223,253,193,126,223,253,193,128,223,253,193,142,223,253,193,144,223,253,193,218,217,253,193,220,217,253,193,8,218,253,193,16,218,253,193,22,218,253,193,24,218,253,193,26,218,253,193,34,218,253,193,42,218,253,193,46,218,253,193,58,218,253,193,70,218,253,193,72,218,253,193,76,218,253,193,78,218,253,193,80,218,253,193,94,218,253,193,96,218,253,193,98,218,253,193,100,218,253,193,110,218,253,193,112,218,253,193,114,218,253,193,116,218,253,193,118,218,253,193,120,218,253,193,122,218,253,193,124,218,253,193,128,218,253,193,130,218,253,193,132,218,253,193,134,218,253,193,232,217,253,193,234,217,253,193,236,217,253,193,240,217,253,193,244,217,253,193,246,217,253,193,250,217,253,193,252,217,253,193,254,217,253,193,4,218,253,193,82,218,253,193,104,218,253,193,192,218,253,193,238,218,253,193,88,219,253,193,90,219,253,193,224,219,253,193,10,220,253,193,12,220,253,193,40,220,253,193,62,220,253,193,80,220,253,193,82,220,253,193,240,220,253,193,242,220,253,193,244,220,253,193,62,221,253,193,64,221,253,193,66,221,253,193,140,221,253,193,24,222,253,193,146,222,253,193,28,218,253,193,48,218,253,193,224,218,253,193,220,219,253,193,38,220,253,193,204,221,253,193,20,222,253,193,10,223,253,193,120,223,253,193,166,223,253,193,168,223,253,193,192,223,253,193,204,223,253,193,206,223,253,193,230,223,253,193,238,223,253,193,2,224,253,193,74,224,253,193,114,224,253,193,230,224,253,193,30,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,108,218,253,193,150,218,253,193,230,218,253,193,246,218,253,193,40,219,253,193,68,219,253,193,126,219,253,193,146,219,253,193,176,219,253,193,178,219,253,193,24,220,253,193,26,220,253,193,46,220,253,193,64,220,253,193,66,220,253,193,84,220,253,193,156,220,253,193,164,220,253,193,192,220,253,193,194,220,253,193,16,221,253,193,32,221,253,193,34,221,253,193,90,221,253,193,92,221,253,193,94,221,253,193,154,221,253,193,156,221,253,193,224,221,253,193,226,221,253,193,36,222,253,193,38,222,253,193,136,218,253,193,138,218,253,193,152,218,253,193,154,218,253,193,156,218,253,193,158,218,253,193,160,218,253,193,162,218,253,193,164,218,253,193,166,218,253,193,168,218,253,193,170,218,253,193,172,218,253,193,174,218,253,193,178,218,253,193,184,218,253,193,186,218,253,193,188,218,253,193,190,218,253,193,200,218,253,193,202,218,253,193,210,218,253,193,212,218,253,193,216,218,253,193,226,218,253,193,228,218,253,193,232,218,253,193,234,218,253,193,236,218,253,193,248,218,253,193,250,218,253,193,252,218,253,193,220,218,253,193,222,218,253,193,240,218,253,193,242,218,253,193,244,218,253,193,20,219,253,193,22,219,253,193,24,219,253,193,26,219,253,193,28,219,253,193,30,219,253,193,32,219,253,193,34,219,253,193,66,219,253,193,92,219,253,193,94,219,253,193,96,219,253,193,124,219,253,193,138,219,253,193,140,219,253,193,142,219,253,193,144,219,253,193,168,219,253,193,170,219,253,193,172,219,253,193,174,219,253,193,230,219,253,193,240,219,253,193,2,220,253,193,4,220,253,193,14,220,253,193,16,220,253,193,254,218,253,193,2,219,253,193,4,219,253,193,6,219,253,193,8,219,253,193,10,219,253,193,12,219,253,193,14,219,253,193,16,219,253,193,42,219,253,193,44,219,253,193,46,219,253,193,48,219,253,193,50,219,253,193,52,219,253,193,54,219,253,193,56,219,253,193,58,219,253,193,70,219,253,193,72,219,253,193,74,219,253,193,76,219,253,193,78,219,253,193,80,219,253,193,82,219,253,193,84,219,253,193,98,219,253,193,100,219,253,193,102,219,253,193,104,219,253,193,106,219,253,193,86,219,253,193,108,219,253,193,110,219,253,193,112,219,253,193,114,219,253,193,116,219,253,193,118,219,253,193,120,219,253,193,122,219,253,193,128,219,253,193,130,219,253,193,132,219,253,193,148,219,253,193,150,219,253,193,152,219,253,193,154,219,253,193,156,219,253,193,158,219,253,193,160,219,253,193,162,219,253,193,164,219,253,193,166,219,253,193,180,219,253,193,182,219,253,193,184,219,253,193,186,219,253,193,188,219,253,193,190,219,253,193,192,219,253,193,194,219,253,193,196,219,253,193,198,219,253,193,126,220,253,193,200,219,253,193,202,219,253,193,204,219,253,193,206,219,253,193,208,219,253,193,210,219,253,193,212,219,253,193,214,219,253,193,216,219,253,193,218,219,253,193,226,219,253,193,228,219,253,193,232,219,253,193,234,219,253,193,236,219,253,193,238,219,253,193,254,219,253,193,6,220,253,193,8,220,253,193,18,220,253,193,20,220,253,193,28,220,253,193,30,220,253,193,32,220,253,193,34,220,253,193,36,220,253,193,48,220,253,193,50,220,253,193,52,220,253,193,54,220,253,193,56,220,253,193,58,220,253,193,42,220,253,193,44,220,253,193,102,220,253,193,110,220,253,193,112,220,253,193,122,220,253,193,124,220,253,193,134,220,253,193,154,220,253,193,174,220,253,193,176,220,253,193,190,220,253,193,198,220,253,193,206,220,253,193,218,220,253,193,224,220,253,193,236,220,253,193,246,220,253,193,248,220,253,193,254,220,253,193,2,221,253,193,14,221,253,193,26,221,253,193,28,221,253,193,30,221,253,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,193,60,220,253,193,68,220,253,193,70,220,253,193,72,220,253,193,74,220,253,193,86,220,253,193,88,220,253,193,90,220,253,193,92,220,253,193,94,220,253,193,96,220,253,193,98,220,253,193,100,220,253,193,104,220,253,193,106,220,253,193,114,220,253,193,116,220,253,193,118,220,253,193,120,220,253,193,128,220,253,193,130,220,253,193,132,220,253,193,136,220,253,193,138,220,253,193,140,220,253,193,142,220,253,193,144,220,253,193,146,220,253,193,148,220,253,193,150,220,253,193,158,220,253,193,160,220,253,193,162,220,253,193,166,220,253,193,168,220,253,193,172,220,253,193,178,220,253,193,188,220,253,193,196,220,253,193,202,220,253,193,204,220,253,193,208,220,253,193,210,220,253,193,214,220,253,193,216,220,253,193,222,220,253,193,220,220,253,193,226,220,253,193,228,220,253,193,230,220,253,193,232,220,253,193,234,220,253,193,4,221,253,193,6,221,253,193,8,221,253,193,10,221,253,193,18,221,253,193,20,221,253,193,22,221,253,206,0,119,0,206,0,119,0,206,0,119,0,206,0,119,0,206,0,119,0,206,0,119,0,193,98,221,253,193,100,221,253,193,102,221,253,193,104,221,253,193,106,221,253,193,108,221,253,193,110,221,253,193,112,221,253,193,114,221,253,193,116,221,253,193,118,221,253,193,120,221,253,193,122,221,253,193,124,221,253,193,126,221,253,193,128,221,253,193,130,221,253,193,132,221,253,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,193,58,221,253,193,60,221,253,193,136,221,253,193,138,221,253,193,212,221,253,193,214,221,253,193,216,221,253,193,22,222,253,193,80,222,253,193,82,222,253,193,84,222,253,193,138,222,253,193,140,222,253,193,142,222,253,193,144,222,253,193,198,222,253,193,200,222,253,193,228,222,253,193,230,222,253,193,232,222,253,193,14,223,253,193,16,223,253,193,18,223,253,193,40,223,253,193,84,223,253,193,148,223,253,193,66,224,253,193,124,224,253,193,126,224,253,193,128,224,253,193,130,224,253,193,132,224,253,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,193,142,221,253,193,144,221,253,193,146,221,253,193,148,221,253,193,150,221,253,193,152,221,253,193,218,221,253,193,220,221,253,193,222,221,253,193,26,222,253,193,28,222,253,193,30,222,253,193,32,222,253,193,34,222,253,193,86,222,253,193,88,222,253,193,90,222,253,193,92,222,253,193,94,222,253,193,96,222,253,193,152,222,253,193,154,222,253,193,156,222,253,193,158,222,253,193,22,223,253,193,24,223,253,193,96,223,253,193,110,223,253,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,193,40,222,253,193,42,222,253,193,44,222,253,193,46,222,253,193,48,222,253,193,50,222,253,193,52,222,253,193,54,222,253,193,56,222,253,193,58,222,253,193,60,222,253,193,62,222,253,193,64,222,253,193,66,222,253,193,68,222,253,193,70,222,253,193,72,222,253,193,74,222,253,193,76,222,253,193,78,222,253,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,193,164,222,253,193,166,222,253,193,168,222,253,193,170,222,253,193,172,222,253,193,174,222,253,193,176,222,253,193,178,222,253,193,180,222,253,193,182,222,253,193,184,222,253,193,186,222,253,193,188,222,253,193,190,222,253,193,192,222,253,193,194,222,253,193,196,222,253,193,210,222,253,193,212,222,253,193,214,222,253,193,216,222,253,193,218,222,253,193,220,222,253,193,148,222,253,193,150,222,253,193,202,222,253,193,204,222,253,193,234,222,253,193,20,223,253,193,42,223,253,193,50,223,253,193,74,223,253,193,116,223,253,193,130,223,253,193,150,223,253,193,152,223,253,193,154,223,253,193,156,223,253,193,158,223,253,193,180,223,253,193,182,223,253,193,184,223,253,193,186,223,253,193,198,223,253,193,200,223,253,193,220,223,253,193,222,223,253,193,224,223,253,193,236,223,253,193,246,223,253,193,248,223,253,193,250,223,253,193,252,223,253,193,48,224,253,193,68,224,253,193,222,222,253,193,224,222,253,193,226,222,253,193,238,222,253,193,240,222,253,193,242,222,253,193,244,222,253,193,246,222,253,193,248,222,253,193,250,222,253,193,252,222,253,193,254,222,253,193,2,223,253,193,4,223,253,193,6,223,253,193,8,223,253,193,28,223,253,193,30,223,253,193,32,223,253,193,34,223,253,193,36,223,253,193,38,223,253,193,48,223,253,193,52,223,253,193,54,223,253,193,56,223,253,193,58,223,253,193,60,223,253,193,62,223,253,193,64,223,253,193,66,223,253,193,68,223,253,193,70,223,253,193,76,223,253,193,78,223,253,193,80,223,253,193,82,223,253,193,86,223,253,193,88,223,253,193,90,223,253,193,92,223,253,193,94,223,253,193,100,223,253,193,102,223,253,193,104,223,253,193,106,223,253,193,108,223,253,193,164,223,253,193,202,223,253,193,18,224,253,193,20,224,253,193,22,224,253,193,24,224,253,193,32,224,253,193,34,224,253,193,36,224,253,193,38,224,253,193,46,224,253,193,40,224,253,193,42,224,253,193,58,224,253,193,60,224,253,193,62,224,253,193,64,224,253,193,146,223,253,193,170,223,253,193,172,223,253,193,174,223,253,193,176,223,253,193,178,223,253,193,194,223,253,193,196,223,253,193,210,223,253,193,212,223,253,193,214,223,253,193,216,223,253,193,218,223,253,193,232,223,253,193,234,223,253,193,240,223,253,193,242,223,253,193,244,223,253,193,254,223,253,193,4,224,253,193,6,224,253,193,8,224,253,193,10,224,253,193,26,224,253,193,28,224,253,193,76,224,253,193,78,224,253,193,98,224,253,193,106,224,253,193,116,224,253,193,220,224,253,193,244,224,253,193,70,224,253,193,72,224,253,193,80,224,253,193,84,224,253,193,86,224,253,193,94,224,253,193,120,224,253,193,172,224,253,193,134,224,253,193,138,224,253,193,140,224,253,193,144,224,253,193,146,224,253,193,148,224,253,193,150,224,253,193,152,224,253,193,154,224,253,193,156,224,253,193,158,224,253,193,160,224,253,193,162,224,253,193,164,224,253,193,174,224,253,193,176,224,253,193,178,224,253,193,180,224,253,193,182,224,253,193,184,224,253,193,186,224,253,193,188,224,253,193,190,224,253,193,192,224,253,193,82,224,253,193,100,224,253,193,108,224,253,193,222,224,253,193,224,224,253,193,226,224,253,193,228,224,253,193,232,224,253,193,234,224,253,193,248,224,253,193,10,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,8,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,16,56,102,193,9,70,102,193,79,194,102,193,2,172,102,193,23,180,102,193,16,70,102,193,23,70,102,193,44,198,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,5,49,234,194,5,240,230,194,5,118,231,194,5,217,231,194,5,230,229,194,5,75,230,194,5,174,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,5,197,229,194,5,42,230,194,5,141,230,0,0,0,0,194,5,19,231,194,5,52,231,194,5,250,231,194,5,82,234,194,5,115,234,194,5,247,234,194,5,26,235,194,5,181,234,194,5,214,234,194,5,148,234,194,5,151,231,194,5,72,233,5,5,172,104,5,5,174,104,5,5,176,104,5,5,178,104,5,5,180,104,5,5,186,104,5,5,190,104,5,5,192,104,5,5,196,104,5,5,200,104,5,5,202,104,5,5,204,104,5,5,206,104,5,5,208,104,5,5,194,104,5,5,164,104,5,5,6,104,0,0,0,0,0,0,0,0,5,138,0,0,5,136,0,0,5,5,188,104,5,5,166,104,5,5,168,104,197,130,191,1,197,194,191,1,197,2,192,1,197,66,192,1,197,130,192,1,197,194,192,1,197,66,193,1,197,130,193,1,197,67,124,2,193,252,86,12,193,5,87,12,193,12,87,12,5,5,58,11,5,5,60,11,5,5,62,11,5,5,64,11,5,5,66,11,5,5,68,11,5,5,70,11,5,5,76,11,32,5,76,11,5,5,78,11,5,5,80,11,5,5,82,11,5,5,84,11,5,5,86,11,5,5,88,11,193,19,87,12,5,5,76,7,193,26,87,12,193,33,87,12,193,40,87,12,0,0,0,0,0,0,0,0,193,47,87,12,193,54,87,12,193,61,87,12,193,68,87,12,193,75,87,12,193,82,87,12,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,21,5,0,21,21,5,0,23,21,5,0,25,21,5,0,27,21,5,0,29,21,5,0,31,21,5,0,33,21,5,0,35,22,5,0,37,21,5,0,19,193,89,87,12,0,0,0,0,193,96,87,12,0,0,0,0,193,103,87,12,194,5,248,244,5,5,154,9,5,5,156,9,5,5,158,9,5,5,160,9,0,0,0,0,0,0,0,0,5,5,172,116,5,5,174,116,0,0,0,0,0,0,0,0,5,5,196,116,5,5,90,11,0,0,0,0,0,0,0,0,5,5,150,116,5,5,154,116,5,5,162,116,5,5,164,116,5,5,158,116,5,5,152,116,5,5,156,116,5,5,160,116,5,5,8,116,5,5,14,116,5,5,18,116,197,130,120,2,5,5,22,116,5,5,26,116,5,5,30,116,5,5,34,116,255,255,255,255,5,5,38,116,5,5,42,116,5,5,46,116,5,5,50,116,197,2,121,2,5,5,54,116,5,5,58,116,193,124,87,12,193,131,87,12,193,138,87,12,193,145,87,12,193,152,87,12,193,159,87,12,0,0,0,0,193,166,87,12,193,173,87,12,193,180,87,12,193,187,87,12,193,194,87,12,193,201,87,12,255,255,255,255,193,208,87,12,193,215,87,12,5,5,72,11,5,5,74,11,5,5,92,11,5,5,94,11,5,5,96,11,193,222,87,12,193,229,87,12,193,236,87,12,193,243,87,12,5,5,98,11,5,5,100,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,164,117,5,5,166,117,5,5,168,117,5,5,172,117,5,5,174,117,5,5,176,117,5,5,178,117,5,5,180,117,5,5,182,117,5,5,184,117,5,5,186,117,5,5,188,117,5,5,190,117,5,5,192,117,5,5,194,117,5,5,196,117,5,5,198,117,5,5,200,117,5,5,202,117,5,5,204,117,0,0,0,0,0,0,0,0,5,5,206,117,5,5,208,117,5,5,210,117,5,5,212,117,5,5,214,117,5,5,216,117,5,5,218,117,5,5,220,117,5,5,222,117,5,5,224,117,5,5,226,117,5,5,228,117,5,5,230,117,5,5,232,117,5,5,234,117,5,5,236,117,194,5,241,240,194,5,20,241,194,5,159,245,194,5,192,245,194,5,225,245,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,5,238,117,0,0,0,0,5,5,48,9,5,5,50,9,5,5,78,7,5,5,90,13,5,5,112,11,5,5,114,11,5,5,116,11,5,5,172,13,5,5,170,117,5,166,0,0,255,255,255,255,255,255,255,255,193,37,26,11,5,5,6,9,5,5,30,7,5,5,14,9,5,5,72,7,5,5,74,7,193,16,18,5,193,23,18,5,193,2,32,7,193,2,16,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,36,118,193,142,30,118,193,156,30,118,5,5,32,118,32,5,32,118,193,2,34,118,193,9,34,118,193,16,34,118,193,23,34,118,193,30,34,118,193,37,34,118,193,51,30,118,193,149,30,118,193,86,34,118,193,44,34,118,193,51,34,118,193,65,34,118,193,72,34,118,193,79,34,118,193,58,34,118,194,5,241,240,194,5,4,246,194,5,37,246,194,5,70,246,194,5,103,246,194,5,136,246,194,5,169,246,194,5,202,246,194,5,235,246,255,255,255,255,255,255,255,255,0,0,0,0,193,9,18,5,193,22,89,12,193,29,89,12,193,36,89,12,193,43,89,12,193,50,89,12,193,57,89,12,193,64,89,12,193,71,89,12,193,78,89,12,193,85,89,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,92,89,12,193,99,89,12,193,106,89,12,193,113,89,12,193,120,89,12,193,127,89,12,193,134,89,12,193,141,89,12,193,148,89,12,255,255,255,255,255,255,255,255,255,255,255,255,193,65,118,11,193,72,118,11,193,79,118,11,193,86,118,11,193,93,118,11,193,100,118,11,193,107,118,11,193,114,118,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,148,104,32,5,148,104,32,5,148,104,32,5,148,104,194,5,241,240,32,5,148,104,32,5,148,104,32,5,148,104,32,5,148,104,194,5,20,241,194,5,20,241,0,0,0,0,5,5,150,104,5,5,152,104,0,0,0,0,0,0,0,0,0,0,0,0,32,5,148,104,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,40,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,20,5,32,5,20,5,5,5,22,5,5,5,24,5,5,5,26,5,5,5,28,5,5,5,102,10,5,5,12,5,5,5,108,9,5,5,110,9,5,5,112,9,5,5,114,9,5,5,122,9,5,5,124,9,5,5,126,9,5,5,128,9,5,5,164,10,5,5,166,10,5,5,176,10,5,5,178,10,24,5,0,8,197,194,3,0,197,67,4,0,5,5,180,10,5,5,16,3,5,5,18,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,5,0,4,5,5,156,10,5,5,160,10,5,5,188,10,197,34,48,0,197,99,48,0,5,5,190,10,197,194,48,0,197,3,49,0,5,5,196,10,5,5,116,9,5,5,118,9,5,5,198,10,197,2,3,0,5,5,114,7,5,5,8,5,5,5,200,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,5,0,19,43,5,0,58,255,255,255,255,255,255,255,255,36,5,0,27,36,5,0,29,36,5,0,31,36,5,0,33,36,5,0,35,40,5,0,37,40,5,121,12,32,5,143,12,40,5,131,12,37,5,142,9,37,5,144,9,43,5,0,68,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,193,93,141,103,193,14,142,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,147,142,103,193,121,118,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,198,129,156,0,193,2,194,97,160,5,34,97,5,5,34,97,160,5,108,97,5,5,108,97,160,5,118,97,5,5,118,97,172,5,138,97,16,5,138,97,172,5,138,97,16,5,138,97,172,5,138,97,16,5,138,97,16,5,138,97,194,5,2,226,0,0,0,0,0,0,0,0,0,0,0,0,5,5,136,10,32,5,42,97,32,5,70,97,197,2,44,1,32,5,172,97,16,5,226,97,32,5,230,97,16,5,232,97,198,193,155,0,5,166,0,0,5,166,0,0,5,5,6,11,193,16,224,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,154,104,32,5,154,104,32,5,154,104,32,5,154,104,32,5,154,104,32,5,154,104,5,5,30,11,5,5,32,11,5,5,34,11,5,5,156,104,5,5,36,11,5,5,8,104,5,5,52,104,5,5,198,104,0,0,0,0,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,110,17,5,5,112,17,5,5,114,17,5,5,116,17,5,5,118,17,5,5,120,17,5,5,122,17,5,5,124,17,5,5,126,17,5,5,128,17,5,5,130,17,5,5,132,17,5,5,134,17,5,5,136,17,5,5,138,17,5,5,140,17,5,5,142,17,5,5,144,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,198,166,113,193,205,166,113,193,212,166,113,193,219,166,113,193,226,166,113,193,233,166,113,193,240,166,113,193,247,166,113,193,254,166,113,193,7,167,113,193,14,167,113,197,2,200,1,193,21,167,113,193,28,167,113,193,35,167,113,193,42,167,113,193,49,167,113,193,56,167,113,193,63,167,113,193,70,167,113,193,77,167,113,193,84,167,113,193,91,167,113,193,98,167,113,193,105,167,113,193,112,167,113,194,5,175,240,193,219,122,11,193,226,122,11,0,0,0,0,193,198,61,9,193,205,61,9,193,121,52,9,193,128,52,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,193,65,178,113,193,79,178,113,193,168,179,113,193,175,179,113,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,106,13,193,9,106,13,5,5,40,7,5,5,108,13,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,166,249,194,5,199,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,54,252,12,193,54,252,12,193,54,252,12,193,54,252,12,193,54,252,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,96,252,12,193,103,252,12,193,110,252,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,117,252,12,193,124,252,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,87,253,12,193,94,253,12,193,101,253,12,193,108,253,12,193,115,253,12,193,122,253,12,193,129,253,12,193,136,253,12,193,143,253,12,193,150,253,12,193,157,253,12,193,164,253,12,193,171,253,12,193,164,253,12,193,171,253,12,193,164,253,12,193,171,253,12,193,164,253,12,193,144,2,13,193,151,2,13,0,0,0,0,0,0,0,0,0,0,0,0,193,158,2,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,158,72,13,193,165,72,13,193,172,72,13,193,179,72,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,186,72,13,193,193,72,13,193,200,72,13,193,207,72,13,193,214,72,13,193,221,72,13,193,228,72,13,193,235,72,13,0,0,0,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,0,0,0,0,193,86,73,13,193,93,73,13,193,58,128,11,193,65,128,11,193,72,128,11,193,79,128,11,193,86,128,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,5,0,6,44,5,34,7,46,5,24,9,49,5,54,7,44,5,42,7,40,5,90,7,49,5,98,7,32,5,86,10,32,5,88,10,197,163,4,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,222,0,0,0,0,0,0,5,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,168,0,0,0,0,0,0,5,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,224,0,0,0,0,0,0,197,2,4,0,46,5,26,5,32,5,24,5,44,5,10,5,44,5,10,5,51,5,142,9,51,5,144,9,44,5,150,9,44,5,152,9,44,5,82,10,44,5,84,10,32,5,78,10,32,5,80,10,32,5,66,10,32,5,68,10,32,5,62,10,46,5,144,10,46,5,128,10,32,5,121,12,46,5,14,5,46,5,129,12,46,5,133,12,32,5,131,12,255,255,255,255,46,5,140,10,46,5,138,13,46,5,152,10,46,5,126,10,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,44,164,229,194,16,164,229,194,32,9,230,0,0,0,0,194,32,108,230,255,255,255,255,194,46,207,230,194,32,207,230,194,46,85,231,194,32,85,231,194,46,184,231,194,32,184,231,194,46,29,232,194,32,29,232,194,46,62,232,194,32,62,232,32,5,196,102,48,5,200,102,40,5,200,102,24,5,200,102,32,5,200,102,48,5,204,102,40,5,204,102,24,5,204,102,32,5,204,102,48,5,214,102,40,5,214,102,24,5,214,102,32,5,214,102,49,5,222,102,38,5,222,102,49,5,236,102,38,5,236,102,51,5,238,102,44,5,238,102,30,5,238,102,37,5,238,102,197,226,155,1,197,162,155,1,197,98,156,1,197,34,156,1,197,226,156,1,197,162,156,1,197,162,91,1,197,34,157,1,255,255,255,255,255,255,255,255,0,0,0,0,160,5,214,96,5,5,214,96,160,5,216,96,5,5,216,96,197,227,36,1,193,13,227,12,193,20,227,12,193,27,227,12,193,34,227,12,193,41,227,12,193,48,227,12,160,5,162,96,5,5,162,96,160,5,194,96,5,5,194,96,5,166,0,0,5,134,0,0,5,132,0,0,160,5,174,96,5,5,174,96,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,23,16,9,193,9,112,7,193,16,112,7,193,2,92,9,193,2,200,16,193,30,16,9,193,9,92,9,5,5,112,108,5,5,114,108,5,5,116,108,5,5,118,108,5,5,120,108,255,255,255,255,255,255,255,255,201,32,8,0,5,5,128,108,255,255,255,255,255,255,255,255,5,5,130,108,5,5,132,108,5,5,134,108,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,166,0,0,5,5,136,108,5,5,138,108,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,194,196,1,197,2,197,1,255,255,255,255,5,5,86,108,193,2,118,11,193,9,118,11,193,16,118,11,193,23,118,11,193,30,118,11,193,37,118,11,193,44,118,11,5,5,92,13,193,2,52,9,193,9,52,9,193,16,52,9,193,23,52,9,193,51,118,11,193,58,118,11,255,255,255,255,255,255,255,255,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,172,0,0,20,5,0,86,5,166,0,0,5,166,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,19,5,0,76,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,166,0,0,16,5,58,93,5,112,0,42,197,34,108,0,197,98,110,0,197,162,111,0,197,2,114,0,5,120,0,48,5,112,0,48,19,5,0,54,32,5,10,55,19,5,0,62,19,5,0,64,32,5,6,65,32,5,6,67,19,5,0,68,32,5,6,69,32,5,8,77,32,5,12,77,19,5,0,78,5,120,0,78,19,5,0,92,16,5,22,43,19,5,0,44,32,5,24,45,16,5,24,51,19,5,0,52,32,5,20,65,197,2,174,0,19,5,0,72,16,5,22,79,197,98,201,0,20,5,0,86,197,226,101,0,197,194,166,0,197,98,196,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,255,255,255,255,5,166,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,168,0,0,5,172,0,0,194,5,21,251,5,172,0,0,5,172,0,0,5,172,0,0,5,170,0,0,194,5,54,251,194,5,87,251,194,5,120,251,194,5,153,251,5,170,0,0,5,170,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,5,166,0,0,5,168,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,29,193,156,146,17,193,163,146,17,193,170,146,17,193,142,122,11,193,149,122,11,193,156,122,11,193,163,122,11,193,170,122,11,193,177,122,11,193,184,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,37,94,117,193,44,94,117,193,247,94,117,193,254,94,117,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,121,196,124,5,5,198,124,193,2,200,124,193,9,200,124,193,16,200,124,5,112,198,124,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,5,0,21,193,35,147,17,193,42,147,17,193,49,147,17,193,163,61,9,193,170,61,9,193,177,61,9,193,184,61,9,193,191,61,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,87,91,124,193,94,91,124,193,101,91,124,193,108,91,124,193,115,91,124,193,122,91,124,193,129,91,124,193,136,91,124,193,143,91,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,150,91,124,193,157,91,124,193,164,91,124,193,171,91,124,193,178,91,124,193,185,91,124,193,192,91,124,193,199,91,124,193,206,91,124,193,213,91,124,255,255,255,255,255,255,255,255,193,165,2,13,5,166,0,0,5,170,0,0,193,37,22,9,193,9,27,103,193,16,27,103,193,23,27,103,193,30,27,103,193,37,27,103,193,44,27,103,193,51,27,103,193,58,27,103,193,65,27,103,193,72,27,103,193,79,27,103,193,86,27,103,193,93,27,103,193,100,27,103,193,107,27,103,193,114,27,103,193,121,27,103,193,128,27,103,193,135,27,103,193,142,27,103,193,149,27,103,193,156,27,103,193,163,27,103,193,170,27,103,193,177,27,103,5,168,0,0,5,168,0,0,5,168,0,0,255,255,255,255,255,255,255,255,193,30,26,11,255,255,255,255,193,9,246,113,193,16,246,113,193,23,246,113,193,30,246,113,255,255,255,255,193,37,246,113,193,44,246,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,51,246,113,5,168,0,0,194,5,241,240,194,5,20,241,193,58,246,113,193,72,246,113,193,79,246,113,193,86,246,113,255,255,255,255,193,93,246,113,193,100,246,113,193,107,246,113,255,255,255,255,193,114,246,113,193,121,246,113,193,135,246,113,193,149,246,113,193,156,246,113,193,163,246,113,193,170,246,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,232,249,194,5,11,250,194,5,44,250,194,5,44,250,194,5,77,250,194,5,110,250,194,5,143,250,194,5,176,250,5,170,0,0,5,170,0,0,5,170,0,0,194,5,209,250,194,5,242,250,5,172,0,0,5,172,0,0,5,172,0,0,133,5,72,122,133,5,74,122,133,5,76,122,3,5,78,122,133,5,78,122,3,5,80,122,133,5,80,122,3,5,82,122,133,5,82,122,133,5,84,122,133,5,86,122,133,5,88,122,133,5,90,122,133,5,92,122,3,5,94,122,133,5,94,122,133,5,96,122,133,5,98,122,133,5,100,122,133,5,102,122,197,130,182,2,3,5,18,122,3,5,24,122,255,255,255,255,255,255,255,255,5,174,0,0,5,176,0,0,193,30,22,12,193,37,22,12,5,5,116,13,197,194,65,0,197,226,232,2,155,5,38,122,155,5,40,122,165,5,42,122,155,5,44,122,158,5,46,122,155,5,48,122,155,5,50,122,166,5,52,122,155,5,54,122,155,5,56,122,160,5,58,122,160,5,60,122,160,5,62,122,160,5,64,122,160,5,66,122,155,5,68,122,155,5,70,122,160,5,72,122,155,5,74,122,158,5,76,122,165,5,78,122,165,5,80,122,162,5,82,122,160,5,84,122,158,5,86,122,160,5,88,122,160,5,90,122,160,5,92,122,160,5,94,122,166,5,102,122,160,174,0,0,160,176,0,0,197,98,131,0,197,194,131,0,197,34,132,0,197,163,131,0,197,3,132,0,197,34,193,0,197,226,192,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,2,51,1,197,66,50,1,197,130,50,1,197,66,51,1,197,194,50,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,66,55,1,194,5,22,228,197,131,56,1,193,9,51,101,193,16,51,101,193,23,51,101,193,30,51,101,193,37,51,101,193,44,51,101,193,51,51,101,193,58,51,101,193,65,51,101,193,72,51,101,193,79,51,101,193,86,51,101,193,93,51,101,193,100,51,101,193,107,51,101,193,114,51,101,193,121,51,101,193,128,51,101,193,135,51,101,193,142,51,101,193,149,51,101,193,156,51,101,193,163,51,101,193,170,51,101,194,5,65,229,194,5,98,229,193,177,51,101,193,184,51,101,194,5,55,228,194,5,55,228,194,5,88,228,194,5,88,228,194,5,88,228,194,5,121,228,194,5,121,228,194,5,121,228,194,5,154,228,194,5,154,228,194,5,187,228,194,5,187,228,194,5,220,228,194,5,220,228,194,5,220,228,194,5,253,228,194,5,32,229,194,5,131,229,255,255,255,255,255,255,255,255,193,44,60,7,193,51,60,7,193,58,60,7,193,65,60,7,193,72,60,7,193,79,60,7,193,86,60,7,193,93,60,7,193,100,60,7,193,107,60,7,193,114,60,7,193,121,60,7,193,128,60,7,193,135,60,7,193,142,60,7,255,255,255,255,197,2,160,1,197,2,162,1,197,2,122,1,197,194,119,1,197,66,121,1,197,226,165,1,197,162,167,1,197,98,97,1,197,162,170,1,197,66,171,1,197,130,171,1,197,2,172,1,197,194,174,1,197,98,176,1,197,226,177,1,197,226,179,1,197,98,180,1,197,2,92,1,197,98,181,1,197,98,182,1,197,162,182,1,197,34,185,1,197,66,94,1,197,162,186,1,197,226,187,1,197,2,190,1,197,130,190,1,197,2,98,1,197,66,98,1,197,98,184,1,197,98,0,0,197,162,0,0,197,162,65,1,197,34,74,1,197,98,75,1,197,66,82,1,197,98,85,1,197,162,87,1,197,162,88,1,197,226,103,1,197,130,106,1,197,2,113,1,197,130,115,1,197,194,151,1,197,194,152,1,197,66,163,1,197,98,177,1,197,98,179,1,197,162,187,1,197,130,189,1,197,226,0,0,197,98,1,0,197,226,1,0,197,226,132,1,197,98,133,1,197,162,137,1,197,34,138,1,197,194,140,1,197,66,141,1,197,2,107,1,197,130,107,1,197,2,116,1,197,130,116,1,197,2,96,1,197,34,1,0,197,162,1,0,197,34,2,0,197,98,2,0,197,162,63,1,197,226,63,1,197,162,64,1,197,34,65,1,197,162,67,1,197,34,68,1,197,98,73,1,197,162,73,1,197,98,74,1,197,226,74,1,197,162,75,1,197,34,76,1,197,130,81,1,197,194,81,1,197,130,82,1,197,226,84,1,197,162,85,1,197,34,86,1,197,226,86,1,197,34,87,1,197,226,87,1,197,98,88,1,197,226,88,1,197,98,89,1,197,162,144,1,197,34,145,1,197,130,148,1,197,2,149,1,5,5,22,107,5,5,26,107,5,5,126,107,5,5,128,107,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,42,11,5,5,156,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,56,107,194,5,62,232,194,5,29,232,194,5,95,232,194,5,175,240,194,5,175,240,194,5,175,240,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,194,5,241,240,193,112,173,113,194,5,175,240,194,5,29,232,193,163,52,9,193,170,52,9,193,21,123,11,193,28,123,11,193,35,123,11,193,42,123,11,194,5,62,232,255,255,255,255,193,233,201,124,193,247,201,124,193,254,201,124,193,7,202,124,193,14,202,124,193,21,202,124,193,28,202,124,193,35,202,124,193,42,202,124,193,56,202,124,255,255,255,255,194,5,128,232,194,5,95,232,5,5,50,5,255,255,255,255,255,255,255,255,193,240,201,124,193,49,202,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,250,152,103,193,3,153,103,193,10,153,103,193,17,153,103,193,24,153,103,193,31,153,103,193,38,153,103,193,45,153,103,193,52,153,103,193,59,153,103,193,66,153,103,193,73,153,103,193,80,153,103,193,87,153,103,193,94,153,103,193,101,153,103,193,136,153,103,193,143,153,103,193,150,153,103,193,157,153,103,193,164,153,103,193,171,153,103,193,178,153,103,193,185,153,103,193,227,153,103,193,234,153,103,193,241,153,103,255,255,255,255,255,255,255,255,194,5,254,238,194,5,221,238,194,5,188,238,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,194,5,33,239,194,5,66,239,193,100,61,9,193,16,22,9,5,5,88,7,193,23,32,7,5,5,50,7,193,30,112,7,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,255,255,255,255,255,255,255,255,194,5,99,239,194,5,132,239,194,5,165,239,194,5,198,239,194,5,231,239,193,23,22,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,229,120,5,5,231,120,5,5,233,120,5,5,235,120,194,5,10,240,194,5,10,240,194,5,10,240,194,5,76,240,194,5,109,240,194,5,142,240,194,5,43,240,193,2,237,120,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,16,96,7,193,51,112,7,5,5,90,104,5,5,94,104,5,5,98,104,5,5,100,104,5,5,102,104,5,5,104,104,5,5,106,104,5,5,108,104,5,5,110,104,197,2,193,1,5,5,112,104,5,5,114,104,5,5,116,104,5,5,120,104,5,5,122,104,5,5,124,104,5,5,128,104,197,194,193,1,5,5,130,104,5,5,132,104,197,2,194,1,5,5,134,104,5,5,136,104,5,5,138,104,5,5,140,104,5,5,142,104,5,5,160,104,5,5,162,104,194,5,175,240,5,5,144,104,5,5,158,104,5,5,170,104,5,5,58,105,5,5,60,105,5,5,62,105,5,5,64,105,5,5,66,105,5,5,68,105,5,5,70,105,5,5,72,105,5,5,74,105,255,255,255,255,5,5,76,105,5,5,78,105,5,5,80,105,5,5,82,105,5,5,84,105,5,5,86,105,5,5,88,105,255,255,255,255,5,5,92,105,255,255,255,255,255,255,255,255,255,255,255,255,5,5,96,105,5,5,98,105,5,5,100,105,5,5,102,105,255,255,255,255,255,255,255,255,194,5,175,240,5,5,104,105,5,5,106,105,5,5,108,105,5,5,60,106,5,5,62,106,5,5,64,106,5,5,66,106,5,5,68,106,5,5,70,106,5,5,72,106,5,5,74,106,5,5,76,106,255,255,255,255,5,5,78,106,5,5,80,106,5,5,82,106,5,5,84,106,5,5,86,106,5,5,88,106,5,5,92,106,255,255,255,255,5,5,94,106,197,130,196,1,255,255,255,255,5,5,96,106,197,66,195,1,255,255,255,255,5,5,32,106,5,5,34,106,255,255,255,255,255,255,255,255,194,5,175,240,255,255,255,255,5,5,100,106,5,5,102,106,5,5,64,107,5,5,66,107,5,5,68,107,5,5,70,107,5,5,72,107,5,5,74,107,5,5,76,107,5,5,78,107,5,5,80,107,255,255,255,255,5,5,82,107,5,5,84,107,5,5,86,107,5,5,88,107,5,5,90,107,5,5,92,107,5,5,94,107,255,255,255,255,5,5,96,107,5,5,108,107,255,255,255,255,5,5,98,107,5,5,100,107,5,5,102,107,5,5,104,107,5,5,106,107,255,255,255,255,255,255,255,255,194,5,175,240,5,5,110,107,5,5,112,107,5,5,114,107,5,5,56,108,5,5,58,108,5,5,60,108,5,5,62,108,5,5,64,108,5,5,66,108,5,5,68,108,5,5,70,108,5,5,72,108,255,255,255,255,5,5,74,108,5,5,76,108,5,5,78,108,5,5,80,108,5,5,82,108,5,5,84,108,5,5,88,108,255,255,255,255,5,5,90,108,5,5,92,108,255,255,255,255,5,5,94,108,5,5,98,108,5,5,100,108,5,5,102,108,5,5,104,108,255,255,255,255,255,255,255,255,194,5,175,240,5,5,106,108,5,5,108,108,5,5,110,108,5,5,60,111,5,5,62,111,5,5,64,111,5,5,66,111,5,5,68,111,5,5,70,111,5,5,72,111,5,5,74,111,5,5,76,111,255,255,255,255,5,5,78,111,5,5,80,111,5,5,82,111,5,5,84,111,5,5,86,111,5,5,88,111,5,5,90,111,5,5,92,111,5,5,94,111,5,5,106,111,255,255,255,255,5,5,96,111,5,5,98,111,5,5,100,111,5,5,102,111,5,5,104,111,255,255,255,255,255,255,255,255,194,5,175,240,5,5,110,111,5,5,118,111,201,0,14,0,193,212,40,118,193,219,40,118,193,226,40,118,193,240,40,118,193,247,40,118,193,254,40,118,193,7,41,118,193,14,41,118,193,28,41,118,193,35,41,118,193,42,41,118,193,49,41,118,193,56,41,118,193,63,41,118,193,70,41,118,193,77,41,118,193,91,41,118,193,98,41,118,193,105,41,118,193,126,41,118,194,5,175,240,193,133,41,118,193,140,41,118,193,147,41,118,193,154,41,118,193,161,41,118,201,192,69,1,193,175,41,118,201,160,70,1,193,189,41,118,201,128,71,1,201,96,72,1,193,2,63,117,193,9,63,117,193,16,63,117,193,23,63,117,193,30,63,117,193,37,63,117,194,5,175,240,5,5,65,117,32,5,65,117,5,5,67,117,5,5,69,117,32,5,69,117,5,5,71,117,32,5,71,117,5,5,73,117,32,5,73,117,193,2,75,117,193,9,75,117,193,16,75,117,193,23,75,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,142,118,11,193,149,118,11,193,156,118,11,193,163,118,11,193,14,7,117,193,21,7,117,193,28,7,117,193,35,7,117,193,219,6,117,193,233,6,117,193,49,7,117,193,56,7,117,193,63,7,117,193,70,7,117,193,77,7,117,193,84,7,117,193,91,7,117,193,98,7,117,193,105,7,117,193,112,7,117,193,119,7,117,193,126,7,117,193,133,7,117,193,140,7,117,193,147,7,117,193,154,7,117,193,42,7,117,194,5,175,240,255,255,255,255,255,255,255,255,255,255,255,255,193,16,36,9,193,23,36,9,193,128,102,11,193,135,102,11,193,142,102,11,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,5,5,45,118,32,5,45,118,193,9,47,118,193,16,47,118,193,23,47,118,193,30,47,118,193,37,47,118,193,44,47,118,194,5,175,240,5,5,49,118,32,5,49,118,193,9,51,118,193,16,51,118,193,23,51,118,193,30,51,118,193,44,51,118,193,51,51,118,193,2,51,118,193,37,51,118,193,28,43,118,193,2,47,118,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,193,240,168,113,193,247,168,113,193,254,168,113,194,5,175,240,193,233,122,11,193,240,122,11,193,233,168,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,231,171,113,193,105,171,113,193,112,171,113,193,119,171,113,193,9,170,113,193,149,52,9,193,156,52,9,193,254,122,11,193,219,61,9,194,5,53,241,194,5,175,240,194,5,129,242,194,5,162,242,193,247,122,11,193,203,171,113,194,5,208,240,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,16,170,113,193,7,123,11,193,126,171,113,193,14,123,11,193,226,61,9,193,233,61,9,193,84,175,113,193,91,175,113,193,98,175,113,193,105,175,113,193,112,175,113,193,119,175,113,193,126,175,113,193,133,175,113,193,140,175,113,194,5,175,240,193,147,175,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,255,255,255,255,193,254,178,113,193,7,179,113,193,14,179,113,193,21,179,113,193,28,179,113,193,35,179,113,193,42,179,113,255,255,255,255,193,49,179,113,193,56,179,113,255,255,255,255,193,63,179,113,193,70,179,113,193,77,179,113,193,84,179,113,193,91,179,113,255,255,255,255,194,5,175,240,194,5,175,240,193,98,179,113,193,119,179,113,193,126,179,113,193,252,181,113,193,5,182,113,193,12,182,113,194,5,208,240,194,5,241,240,194,5,20,241,194,5,175,240,193,140,181,113,193,161,181,113,193,9,180,113,193,16,180,113,193,177,52,9,193,184,52,9,193,49,123,11,193,63,123,11,193,70,123,11,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,56,123,11,193,77,123,11,255,255,255,255,193,84,123,11,194,5,53,241,193,168,181,113,194,5,241,240,194,5,20,241,193,217,184,113,194,5,175,240,193,98,184,113,193,105,184,113,193,91,123,11,193,9,183,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,175,240,193,98,123,11,193,191,52,9,193,198,52,9,193,105,123,11,193,112,123,11,193,119,123,11,193,126,123,11,193,133,123,11,193,140,123,11,193,147,123,11,193,154,123,11,193,161,123,11,193,168,123,11,193,175,123,11,193,182,123,11,193,189,123,11,193,196,123,11,193,203,123,11,193,210,123,11,193,217,123,11,193,224,123,11,193,231,123,11,193,238,123,11,5,112,187,113,5,120,187,113,5,112,189,113,5,112,191,113,5,112,196,113,5,112,198,113,255,255,255,255,255,255,255,255,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,193,86,203,113,193,79,203,113,193,93,203,113,193,56,204,113,194,5,241,240,194,5,20,241,193,63,204,113,193,70,204,113,193,77,204,113,193,84,204,113,193,91,204,113,193,98,204,113,193,105,204,113,193,112,204,113,193,119,204,113,193,126,204,113,194,5,175,240,193,114,203,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,194,5,241,240,194,5,20,241,193,140,210,113,194,5,175,240,193,252,123,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,240,205,113,193,254,205,113,193,14,206,113,194,5,175,240,193,233,52,9,193,5,124,11,193,254,61,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,5,5,200,116,5,5,202,116,5,5,204,116,5,5,206,116,193,2,208,116,193,9,208,116,193,16,208,116,193,23,208,116,193,16,198,116,194,5,175,240,193,107,208,116,194,5,208,240,194,5,208,240,194,5,208,240,194,5,241,240,194,5,20,241,32,5,202,116,32,5,200,116,46,5,202,116,32,5,204,116,32,5,206,116,193,2,102,11,194,5,241,240,194,5,20,241,194,5,175,240,194,5,208,240,193,142,228,113,193,149,228,113,32,5,226,113,46,5,226,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,208,240,194,5,208,240,194,5,241,240,194,5,20,241,5,5,12,104,5,5,14,104,5,5,16,104,5,5,28,104,5,5,30,104,5,5,32,104,5,5,34,104,5,5,36,104,5,5,40,104,5,5,44,104,5,5,46,104,5,5,48,104,5,5,50,104,5,5,54,104,5,5,56,104,5,5,58,104,5,5,60,104,5,5,62,104,5,5,64,104,5,5,66,104,5,5,70,104,5,5,72,104,5,5,74,104,5,5,76,104,5,5,78,104,5,5,84,104,5,5,86,104,5,5,88,104,5,5,6,105,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,8,105,5,5,10,105,5,5,12,105,5,5,14,105,5,5,16,105,5,5,18,105,5,5,20,105,5,5,24,105,255,255,255,255,255,255,255,255,5,5,28,105,5,5,30,105,255,255,255,255,255,255,255,255,5,5,32,105,5,5,34,105,5,5,36,105,5,5,38,105,5,5,40,105,5,5,42,105,5,5,44,105,5,5,46,105,5,5,48,105,5,5,50,105,5,5,52,105,5,5,54,105,5,5,56,105,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,16,106,5,5,18,106,5,5,26,106,5,5,28,106,5,5,10,106,5,5,12,106,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,30,106,5,5,20,106,255,255,255,255,255,255,255,255,5,5,14,106,5,5,22,106,5,5,38,106,5,5,40,106,5,5,42,106,5,5,44,106,5,5,46,106,5,5,48,106,5,5,50,106,5,5,52,106,5,5,54,106,5,5,56,106,5,5,58,106,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,8,107,5,5,10,107,5,5,12,107,5,5,14,107,5,5,16,107,5,5,18,107,5,5,20,107,5,5,24,107,5,5,28,107,255,255,255,255,5,5,30,107,5,5,32,107,5,5,34,107,255,255,255,255,5,5,36,107,5,5,38,107,5,5,40,107,5,5,42,107,5,5,44,107,5,5,46,107,5,5,48,107,5,5,50,107,5,5,52,107,5,5,54,107,5,5,58,107,5,5,60,107,5,5,62,107,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,6,108,5,5,8,108,5,5,10,108,5,5,12,108,5,5,14,108,5,5,16,108,5,5,18,108,5,5,22,108,255,255,255,255,255,255,255,255,5,5,26,108,5,5,28,108,255,255,255,255,255,255,255,255,5,5,30,108,5,5,32,108,5,5,34,108,5,5,36,108,5,5,38,108,5,5,40,108,5,5,42,108,5,5,44,108,5,5,46,108,5,5,48,108,5,5,50,108,5,5,52,108,5,5,54,108,194,5,208,240,194,5,208,240,194,5,241,240,194,5,20,241,194,5,241,240,5,5,6,110,5,5,8,110,5,5,10,110,5,5,12,110,5,5,14,110,5,5,16,110,5,5,18,110,5,5,22,110,255,255,255,255,5,5,26,110,5,5,28,110,5,5,30,110,255,255,255,255,5,5,32,110,5,5,34,110,5,5,36,110,5,5,38,110,5,5,40,110,5,5,42,110,5,5,44,110,5,5,46,110,5,5,48,110,5,5,52,110,5,5,54,110,5,5,58,110,5,5,60,110,5,5,62,110,5,5,116,111,194,5,208,240,194,5,241,240,194,5,20,241,5,5,46,11,5,5,6,111,5,5,8,111,5,5,10,111,5,5,12,111,5,5,14,111,5,5,16,111,5,5,18,111,5,5,22,111,255,255,255,255,5,5,26,111,5,5,28,111,5,5,30,111,255,255,255,255,5,5,32,111,5,5,34,111,5,5,36,111,5,5,38,111,5,5,40,111,5,5,42,111,5,5,44,111,5,5,46,111,5,5,48,111,5,5,50,111,5,5,52,111,5,5,54,111,5,5,56,111,5,5,58,111,194,5,241,240,194,5,208,240,194,5,241,240,194,5,20,241,5,5,118,112,5,5,6,112,5,5,8,112,5,5,10,112,5,5,12,112,5,5,16,112,5,5,18,112,5,5,20,112,5,5,24,112,255,255,255,255,5,5,28,112,5,5,30,112,5,5,32,112,255,255,255,255,5,5,34,112,5,5,36,112,5,5,38,112,5,5,40,112,5,5,42,112,5,5,44,112,5,5,46,112,5,5,48,112,5,5,50,112,5,5,52,112,5,5,54,112,5,5,56,112,5,5,58,112,5,5,60,112,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,6,113,5,5,8,113,5,5,10,113,5,5,12,113,5,5,14,113,5,5,16,113,5,5,18,113,5,5,20,113,5,5,22,113,5,5,24,113,5,5,26,113,5,5,28,113,5,5,30,113,5,5,32,113,5,5,34,113,5,5,36,113,5,5,38,113,5,5,40,113,255,255,255,255,255,255,255,255,255,255,255,255,5,5,42,113,5,5,44,113,5,5,46,113,5,5,48,113,5,5,50,113,5,5,52,113,194,5,208,240,194,5,208,240,194,5,241,240,194,5,152,241,194,5,20,241,201,128,64,1,193,16,40,118,201,96,65,1,193,30,40,118,201,64,66,1,193,44,40,118,201,32,67,1,193,58,40,118,201,0,68,1,193,72,40,118,193,79,40,118,193,86,40,118,201,224,68,1,193,100,40,118,193,107,40,118,193,128,40,118,193,135,40,118,193,142,40,118,193,149,40,118,193,156,40,118,193,163,40,118,193,170,40,118,193,177,40,118,193,184,40,118,193,191,40,118,193,198,40,118,193,205,40,118,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,194,5,208,240,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,36,9,193,9,36,9,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,208,240,194,5,241,240,194,5,185,241,194,5,20,241,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,194,5,208,240,194,5,241,240,194,5,20,241,193,84,245,113,193,91,245,113,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,194,5,208,240,194,5,241,240,194,5,20,241,193,9,166,113,193,16,166,113,193,23,166,113,193,30,166,113,193,37,166,113,193,44,166,113,193,51,166,113,193,58,166,113,193,65,166,113,193,72,166,113,193,79,166,113,193,86,166,113,193,93,166,113,193,100,166,113,193,107,166,113,193,114,166,113,193,121,166,113,193,128,166,113,193,135,166,113,193,142,166,113,193,149,166,113,193,156,166,113,193,163,166,113,197,130,199,1,193,170,166,113,197,194,199,1,193,177,166,113,193,184,166,113,193,191,166,113,194,5,208,240,194,5,241,240,194,5,20,241,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,194,5,208,240,194,5,241,240,194,5,20,241,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,194,5,241,240,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,193,16,178,113,193,23,178,113,193,30,178,113,193,37,178,113,193,44,178,113,193,51,178,113,193,58,178,113,193,72,178,113,255,255,255,255,255,255,255,255,193,86,178,113,193,93,178,113,255,255,255,255,255,255,255,255,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,193,112,184,113,193,119,184,113,193,126,184,113,193,133,184,113,193,140,184,113,193,147,184,113,193,154,184,113,193,161,184,113,193,168,184,113,201,192,26,2,193,182,184,113,193,189,184,113,193,196,184,113,193,203,184,113,193,210,184,113,194,5,208,240,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,5,5,196,113,5,5,198,113,193,2,200,113,193,9,200,113,255,255,255,255,255,255,255,255,201,224,28,2,201,224,29,2,193,30,200,113,193,37,200,113,194,5,208,240,194,5,241,240,194,5,20,241,193,44,200,113,194,5,208,240,193,205,52,9,193,212,52,9,193,245,123,11,193,189,202,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,193,247,205,113,193,7,206,113,193,21,206,113,193,28,206,113,193,35,206,113,193,42,206,113,193,49,206,113,193,56,206,113,193,63,206,113,193,70,206,113,193,77,206,113,193,84,206,113,193,91,206,113,193,98,206,113,193,105,206,113,201,224,30,2,255,255,255,255,193,119,206,113,193,126,206,113,255,255,255,255,255,255,255,255,194,5,241,240,194,5,208,240,193,133,206,113,193,140,206,113,193,100,205,113,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,193,84,249,113,193,91,249,113,193,98,249,113,193,105,249,113,193,112,249,113,193,119,249,113,193,126,249,113,193,133,249,113,255,255,255,255,193,140,249,113,193,147,249,113,193,154,249,113,193,161,249,113,194,5,208,240,194,5,241,240,194,5,20,241,193,168,249,113,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,255,255,255,255,193,77,5,117,193,91,5,117,193,105,5,117,193,119,5,117,193,133,5,117,193,147,5,117,193,161,5,117,193,168,5,117,193,175,5,117,193,182,5,117,193,189,5,117,193,196,5,117,194,5,241,240,194,5,208,240,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,241,240,5,5,32,109,255,255,255,255,5,5,8,109,5,5,10,109,5,5,12,109,5,5,14,109,5,5,16,109,5,5,18,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,20,109,5,5,22,109,5,5,24,109,255,255,255,255,201,0,10,0,5,5,28,109,5,5,30,109,5,5,34,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,36,109,5,5,38,109,255,255,255,255,5,5,70,109,255,255,255,255,5,5,40,109,5,5,42,109,5,5,112,116,5,5,116,116,5,5,120,116,5,5,126,116,5,5,130,116,5,5,134,116,5,5,138,116,5,5,142,116,5,5,146,116,197,194,119,2,5,112,120,116,5,5,10,116,5,5,124,116,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,201,70,231,0,5,5,168,116,5,5,170,116,5,5,176,116,5,5,178,116,5,5,180,116,5,5,182,116,5,5,184,116,5,5,186,116,5,5,188,116,5,5,190,116,5,5,192,116,5,5,194,116,194,5,241,240,194,5,20,241,193,51,85,117,193,100,85,117,193,107,85,117,193,114,85,117,193,121,85,117,201,32,241,0,193,135,85,117,193,170,85,117,193,177,85,117,193,184,85,117,193,191,85,117,32,5,87,117,5,5,87,117,193,23,89,117,193,37,89,117,193,51,89,117,193,72,89,117,193,107,89,117,193,135,89,117,193,44,89,117,193,149,89,117,193,121,89,117,194,5,241,240,194,5,126,245,194,5,20,241,5,5,91,117,193,2,93,117,193,54,81,117,193,82,81,117,193,110,81,117,193,30,85,117,197,35,125,2,194,5,241,240,194,5,218,241,194,5,20,241,5,5,233,113,193,2,235,113,193,9,235,113,193,16,235,113,193,23,235,113,193,30,235,113,193,37,235,113,5,5,237,113,193,9,239,113,193,16,239,113,193,23,239,113,193,30,239,113,193,37,239,113,193,44,239,113,193,51,239,113,193,58,239,113,193,65,239,113,193,72,239,113,193,79,239,113,193,86,239,113,193,93,239,113,193,100,239,113,5,5,241,113,193,9,243,113,193,23,243,113,193,44,243,113,193,65,243,113,193,79,243,113,193,86,243,113,193,9,162,113,193,16,162,113,193,23,162,113,193,30,162,113,193,37,162,113,193,44,162,113,193,51,162,113,193,65,162,113,193,72,162,113,193,79,162,113,193,86,162,113,194,5,241,240,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,194,5,241,240,194,5,20,241,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,194,5,241,240,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,194,5,241,240,194,5,20,241,193,182,202,113,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,193,98,208,113,193,105,208,113,193,112,208,113,193,119,208,113,193,126,208,113,193,133,208,113,193,140,208,113,255,255,255,255,255,255,255,255,193,147,208,113,193,161,208,113,193,168,208,113,193,175,208,113,194,5,241,240,194,5,20,241,5,5,249,116,5,5,251,116,193,2,253,116,5,5,213,116,193,9,253,116,193,16,253,116,32,5,241,116,32,5,243,116,32,5,247,116,32,5,251,116,32,5,211,116,32,5,215,116,32,5,219,116,32,5,223,116,32,5,227,116,32,5,229,116,32,5,233,116,46,5,241,116,46,5,243,116,46,5,247,116,46,5,251,116,32,5,237,116,194,5,241,240,194,5,20,241,194,5,195,242,193,23,253,116,193,58,102,11,193,65,102,11,193,72,102,11,193,30,253,116,193,79,102,11,193,86,102,11,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,255,255,255,255,193,77,230,113,193,84,230,113,255,255,255,255,193,91,230,113,193,98,230,113,194,5,241,240,194,5,20,241,193,105,230,113,193,9,229,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,22,105,5,5,26,105,5,5,120,105,5,5,122,105,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,90,105,5,5,94,105,5,5,150,13,5,5,152,13,5,5,6,16,5,5,8,16,5,5,10,16,5,5,12,16,5,5,14,16,5,5,16,16,193,198,85,12,5,5,154,13,5,5,136,105,5,5,38,11,194,5,53,241,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,194,5,86,241,194,5,119,241,5,5,24,106,5,5,8,106,5,5,6,106,5,5,90,106,5,5,40,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,161,161,113,193,168,161,113,193,175,161,113,193,28,161,113,193,35,161,113,193,42,161,113,193,49,161,113,193,56,161,113,193,63,161,113,193,70,161,113,193,77,161,113,193,86,52,9,194,5,251,241,193,182,161,113,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,177,246,113,193,184,246,113,193,191,246,113,193,198,246,113,193,205,246,113,193,212,246,113,193,219,246,113,193,226,246,113,193,233,246,113,193,240,246,113,193,247,246,113,193,254,246,113,193,7,247,113,193,21,247,113,193,28,247,113,193,35,247,113,193,42,247,113,193,49,247,113,193,65,246,113,193,142,246,113,193,128,246,113,193,14,247,113,255,255,255,255,255,255,255,255,194,5,30,242,194,5,63,242,194,5,96,242,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,56,247,113,201,224,23,0,201,192,44,0,201,160,65,0,201,128,86,0,201,96,107,0,5,5,132,114,5,5,86,13,194,5,7,243,194,5,40,243,194,5,73,243,194,5,106,243,194,5,139,243,194,5,172,243,201,64,128,0,194,5,228,242,5,5,50,11,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,52,11,5,5,54,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,201,32,129,0,201,96,149,0,201,160,169,0,201,224,189,0,201,32,210,0,255,255,255,255,5,5,88,13,255,255,255,255,194,5,238,243,194,5,17,244,194,5,50,244,194,5,83,244,194,5,116,244,201,96,230,0,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,197,130,50,2,197,162,52,2,5,5,6,115,5,5,30,115,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,201,32,74,1,201,64,96,1,193,140,133,115,193,147,133,115,201,96,118,1,193,161,133,115,201,128,140,1,201,160,162,1,193,182,133,115,193,189,133,115,194,5,182,244,193,196,133,115,194,5,215,244,193,203,133,115,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,210,133,115,193,217,133,115,193,2,100,13,193,2,56,11,193,9,56,11,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,194,5,27,245,194,5,60,245,194,5,93,245,5,5,120,11,5,5,42,9,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,193,121,18,117,193,128,18,117,193,135,18,117,193,142,18,117,193,149,18,117,193,156,18,117,193,163,18,117,193,170,18,117,193,177,18,117,5,5,20,117,5,5,22,117,193,2,24,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,24,117,193,16,24,117,193,23,24,117,193,30,24,117,193,37,24,117,193,44,24,117,193,51,24,117,193,58,24,117,193,65,24,117,194,5,14,247,194,5,47,247,194,5,80,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,194,5,113,247,194,5,146,247,194,5,179,247,194,5,212,247,194,5,245,247,194,5,24,248,194,5,57,248,193,2,128,11,193,9,128,11,193,16,128,11,193,23,128,11,193,30,128,11,193,207,242,12,193,214,242,12,193,221,242,12,193,228,242,12,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,255,255,255,255,255,255,255,255,255,255,255,255,194,5,245,247,194,5,113,247,194,5,179,247,194,5,212,247,194,5,24,248,194,5,57,248,194,5,146,247,193,70,244,123,193,77,244,123,193,84,244,123,193,91,244,123,193,98,244,123,193,37,100,13,193,44,100,13,255,255,255,255,255,255,255,255,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,194,5,90,248,194,5,123,248,194,5,156,248,194,5,189,248,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,174,13,193,9,78,13,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,194,5,222,248,194,5,255,248,194,5,34,249,194,5,67,249,194,5,100,249,194,5,133,249,5,5,44,5,5,5,110,13,197,66,65,0,5,5,112,13,197,130,65,0,5,5,114,13,32,5,76,13,193,16,78,13,198,65,124,0,198,225,180,0,198,1,181,0,5,5,104,13,197,130,227,2,5,5,194,10,193,23,78,13,193,30,78,13,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,194,5,186,251,255,255,255,255,255,255,255,255,16,5,0,4,5,5,34,7,5,5,24,9,5,5,192,10,193,182,74,13,5,5,102,13,197,194,200,2,5,5,0,19,5,5,62,10,5,5,64,10,5,5,66,10,5,5,68,10,5,5,70,10,5,5,72,10,5,5,74,10,5,5,76,10,5,5,78,10,5,5,80,10,5,5,76,13,193,2,78,13,5,5,82,10,5,5,84,10,5,5,86,10,5,5,88,10,5,5,90,10,5,5,92,10,5,5,94,10,5,5,96,10,5,5,42,5,5,5,132,9,5,5,134,9,5,5,136,9,24,5,0,4,193,9,254,118,193,16,254,118,193,23,254,118,193,30,254,118,193,37,254,118,193,44,254,118,193,51,254,118,193,58,254,118,193,65,254,118,193,72,254,118,193,79,254,118,193,86,254,118,193,93,254,118,193,100,254,118,193,107,254,118,193,114,254,118,193,121,254,118,193,128,254,118,193,135,254,118,193,142,254,118,193,149,254,118,193,156,254,118,193,163,254,118,193,170,254,118,193,177,254,118,193,184,254,118,193,2,162,9,193,9,162,9,255,255,255,255,255,255,255,255,255,255,255,255,5,5,204,10,5,5,208,10,5,5,210,10,5,5,182,10,5,5,149,12,5,5,164,9,5,5,166,9,197,98,3,0,197,130,3,0,197,66,3,0,5,5,146,10,5,5,120,10,5,5,184,10,5,5,186,10,5,5,130,10,5,5,46,7,5,5,206,10,5,5,132,10,193,2,145,12,5,5,34,5,5,5,202,10,5,5,64,9,5,5,66,9,197,36,48,0,5,5,68,9,5,5,70,9,5,5,72,9,5,5,74,9,5,5,76,9,5,5,78,9,5,5,80,9,24,5,0,4,32,5,64,10,46,5,70,10,46,5,72,10,32,5,74,10,32,5,76,10,5,5,36,7,5,5,38,7,46,5,146,9,46,5,148,9,32,5,8,5,32,5,8,5,32,5,8,5,32,5,8,5,30,5,10,5,30,5,10,5,30,5,10,5,38,5,0,6,16,5,34,7,32,5,0,8,255,255,255,255,30,5,42,7,38,5,54,7,38,5,98,7,32,5,90,7,32,5,26,5,30,5,142,9,30,5,144,9,30,5,150,9,30,5,152,9,30,5,82,10,30,5,84,10,46,5,150,10,32,5,126,10,159,5,0,42,159,5,0,44,159,5,0,46,159,5,0,48,159,5,0,50,159,5,0,52,159,5,0,54,159,5,0,56,159,5,0,58,159,5,0,60,159,5,0,62,159,5,0,64,159,5,0,66,159,5,0,68,159,5,0,70,159,5,0,72,164,5,0,74,159,5,0,76,159,5,0,78,159,5,0,80,159,5,0,82,159,5,0,84,164,5,0,86,159,5,0,88,159,5,0,90,159,5,0,92,32,5,146,9,32,5,140,10,32,5,148,9,32,5,10,12,16,5,10,5,255,255,255,255,16,5,90,7,32,5,120,9,32,5,150,10,32,5,138,13,32,5,152,10,32,5,144,10,32,5,106,9,16,5,142,9,16,5,144,9,32,5,128,10,16,5,121,12,16,5,0,6,32,5,14,5,16,5,0,8,32,5,138,10,202,224,246,2,202,1,247,2,202,34,247,2,202,67,247,2,202,100,247,2,202,133,247,2,202,166,247,2,202,199,247,2,202,232,247,2,202,9,248,2,16,5,54,7,16,5,42,7,32,5,129,12,16,5,131,12,32,5,133,12,16,5,98,7,193,2,18,5,193,9,234,118,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,5,5,42,10,5,5,44,10,5,5,46,10,5,5,48,10,5,5,50,10,5,5,52,10,5,5,54,10,5,5,56,10,5,5,58,10,5,5,60,10,5,5,82,9,5,5,84,9,5,5,86,9,5,5,88,9,5,5,102,7,193,9,224,97,5,5,18,9,5,5,28,9,5,5,8,7,5,5,30,9,5,5,6,7,5,5,48,7,5,5,168,10,5,5,170,10,5,5,172,10,5,5,116,10,5,5,30,5,5,5,32,5,5,5,20,9,5,5,90,9,5,5,104,10,5,5,124,10,5,5,40,5,5,5,10,7,5,5,130,9,5,5,36,5,5,5,250,10,5,5,252,10,5,5,254,10,5,5,2,11,5,5,4,11,5,5,52,7,5,5,142,10,5,5,174,10,5,5,12,7,5,5,122,10,5,5,14,7,5,5,16,7,193,56,202,12,193,63,202,12,5,5,148,10,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,212,10,5,5,214,10,5,5,22,10,5,5,24,10,5,5,26,10,5,5,28,10,5,5,216,10,5,5,218,10,5,5,220,10,5,5,30,10,5,5,32,10,5,5,222,10,5,5,34,10,5,5,36,10,5,5,224,10,5,5,226,10,5,5,228,10,5,5,230,10,5,5,232,10,5,5,234,10,5,5,236,10,5,5,238,10,5,5,240,10,5,5,38,5,5,5,116,7,5,5,94,9,5,5,242,10,5,5,244,10,5,5,38,10,5,5,40,10,5,5,246,10,5,5,248,10,5,5,46,5,16,5,6,122,158,5,6,122,16,5,8,122,158,5,8,122,16,5,10,122,158,5,10,122,16,5,14,122,158,5,14,122,16,5,16,122,158,5,16,122,152,5,18,122,197,162,185,2,144,5,20,122,197,130,188,2,152,5,22,122,197,162,193,2,152,5,24,122,197,34,196,2,144,5,26,122,197,2,197,2,144,5,28,122,197,226,198,2,152,5,30,122,197,130,200,2,152,5,32,122,197,226,201,2,144,5,34,122,197,98,202,2,144,5,36,122,197,162,203,2,144,5,38,122,152,5,72,122,144,5,74,122,144,5,76,122,16,5,78,122,158,5,78,122,16,5,80,122,158,5,80,122,16,5,82,122,156,5,82,122,152,5,84,122,151,5,86,122,152,5,88,122,152,5,90,122,152,5,92,122,16,5,94,122,152,5,94,122,158,5,96,122,158,5,98,122,155,5,100,122,155,5,102,122,197,194,182,2,16,5,18,122,16,5,24,122,197,2,236,2,197,66,236,2,197,130,236,2,197,194,236,2,5,5,48,5,5,5,118,13,5,5,120,13,197,2,66,0,197,2,198,2,32,5,186,9,160,5,24,9,160,5,70,10,160,5,72,10,158,5,34,7,160,5,48,5,166,5,100,122,23,5,6,122,23,5,8,122,23,5,10,122,23,5,14,122,23,5,16,122,23,5,78,122,23,5,80,122,22,5,82,122,23,5,42,122,160,5,118,13,165,5,6,122,165,5,8,122,165,5,10,122,165,5,14,122,165,5,16,122,160,5,18,122,155,5,20,122,160,5,22,122,160,5,24,122,152,5,26,122,155,5,28,122,160,5,30,122,160,5,32,122,155,5,34,122,155,5,36,122,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,193,247,151,123,193,233,151,123,193,254,151,123,193,240,151,123,193,14,152,123,193,21,152,123,193,28,152,123,193,35,152,123,193,42,152,123,193,49,152,123,193,56,152,123,193,63,152,123,193,70,152,123,193,77,152,123,193,9,151,123,193,16,151,123,193,23,151,123,193,30,151,123,193,44,151,123,193,37,151,123,193,9,32,7,193,2,22,9,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,5,5,72,120,5,5,74,120,193,16,32,7,193,9,22,9,193,23,112,7,32,5,26,120,32,5,38,120,32,5,50,120,197,66,171,2,197,130,171,2,197,194,171,2,197,2,172,2,197,66,172,2,197,130,172,2,197,194,172,2,197,2,173,2,197,66,173,2,197,130,173,2,197,194,173,2,197,2,174,2,197,66,174,2,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,193,114,172,17,193,121,172,17,193,128,172,17,193,135,172,17,193,142,172,17,193,149,172,17,193,156,172,17,193,163,172,17,193,170,172,17,193,177,172,17,5,112,0,21,5,112,0,23,5,112,0,25,193,30,32,7,193,30,22,9,193,44,128,11,193,51,128,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,197,163,2,0,197,226,54,0,197,35,55,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,5,5,57,9,5,5,62,7,5,5,12,9,5,5,64,7,5,5,66,7,5,5,68,7,5,5,70,7,5,5,110,7,5,5,59,9,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,122,16,5,5,124,16,5,5,126,16,5,5,128,16,5,5,130,16,5,5,132,16,5,5,134,16,5,5,136,16,5,5,138,16,5,5,140,16,5,5,142,16,255,255,255,255,255,255,255,255,255,255,255,255,193,210,41,118,193,217,41,118,201,64,73,1,193,231,41,118,193,238,41,118,193,114,40,118,193,121,40,118,193,233,40,118,193,21,41,118,193,84,41,118,193,112,41,118,193,119,41,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,16,61,9,193,23,61,9,193,16,16,9,193,2,80,7,193,30,52,9,193,37,52,9,193,58,51,118,193,30,61,9,193,37,61,9,193,44,61,9,193,51,61,9,193,58,61,9,193,65,61,9,193,9,80,7,193,44,52,9,193,51,52,9,193,72,61,9,193,79,61,9,193,86,61,9,193,93,61,9,255,255,255,255,5,5,94,13,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,122,11,193,9,122,11,193,58,56,119,193,86,56,119,193,93,56,119,193,65,56,119,193,79,56,119,193,100,56,119,5,5,58,119,5,112,58,119,5,120,58,119,5,112,20,119,5,115,40,119,5,5,82,7,5,5,84,7,5,5,86,7,197,194,170,2,197,2,171,2,197,130,170,2,193,2,18,119,5,5,42,119,193,16,56,119,193,2,14,119,5,5,28,119,193,9,48,119,193,30,56,119,193,44,56,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,3,88,12,255,255,255,255,255,255,255,255,255,255,255,255,193,9,96,7,193,2,112,7,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,193,205,160,113,193,212,160,113,193,219,160,113,193,226,160,113,193,233,160,113,193,240,160,113,193,247,160,113,193,254,160,113,193,7,161,113,193,14,161,113,193,21,161,113,193,84,161,113,193,91,161,113,193,98,161,113,193,105,161,113,193,112,161,113,193,79,52,9,193,37,112,7,193,9,160,113,193,9,100,13,193,16,100,13,193,119,161,113,193,189,161,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,212,61,9,193,135,52,9,193,142,52,9,193,44,112,7,193,14,97,117,193,105,97,117,193,112,97,117,193,240,96,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,193,250,87,12,193,9,16,9,193,129,244,118,193,248,244,118,193,57,245,118,193,64,245,118,193,71,245,118,193,78,245,118,193,85,245,118,193,92,245,118,193,87,251,118,193,94,251,118,193,101,251,118,193,108,251,118,193,115,251,118,193,122,251,118,193,129,251,118,193,136,251,118,193,143,251,118,5,5,38,104,5,5,42,104,5,5,182,104,5,5,184,104,5,5,32,9,5,5,34,9,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,28,11,5,5,84,13,5,5,10,104,5,5,18,104,5,5,20,104,5,5,22,104,5,5,24,104,5,5,26,104,5,5,92,104,5,5,80,104,5,5,126,104,5,5,68,104,5,5,82,104,5,5,146,104,5,5,96,104,5,5,118,104,193,91,9,117,193,98,9,117,193,49,9,117,193,56,9,117,193,63,9,117,193,70,9,117,193,105,9,117,193,177,8,117,193,212,8,117,193,65,8,117,193,72,8,117,193,79,8,117,193,86,8,117,193,219,8,117,193,7,9,117,193,28,9,117,193,35,9,117,193,233,8,117,193,240,8,117,193,112,9,117,193,128,118,11,193,135,118,11,193,30,36,9,193,37,36,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,26,117,193,16,26,117,193,23,26,117,193,30,26,117,193,37,26,117,193,44,26,117,193,51,26,117,193,58,26,117,193,65,26,117,193,72,26,117,193,79,26,117,193,86,26,117,193,93,26,117,193,100,26,117,193,107,26,117,193,114,26,117,193,121,26,117,193,128,26,117,193,135,26,117,193,142,26,117,193,149,26,117,5,5,38,9,5,5,40,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,44,9,5,5,46,9,5,5,104,11,5,5,106,11,5,5,108,11,5,5,110,11,193,131,81,117,193,138,81,117,193,142,85,117,193,149,85,117,193,156,85,117,193,163,85,117,193,79,89,117,193,86,89,117,193,93,89,117,193,100,89,117,193,93,79,117,193,191,79,117,193,65,85,117,193,72,85,117,193,189,80,117,193,40,81,117,193,140,39,118,193,147,39,118,193,154,39,118,193,161,39,118,193,168,39,118,193,175,39,118,193,182,39,118,193,189,39,118,193,196,39,118,193,203,39,118,193,210,39,118,193,217,39,118,193,224,39,118,193,231,39,118,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,193,16,122,11,193,58,52,9,193,65,52,9,193,72,52,9,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,168,147,17,193,175,147,17,193,182,147,17,193,189,147,17,193,196,147,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,65,122,11,193,72,122,11,193,79,122,11,193,86,122,11,193,93,122,11,193,100,122,11,193,93,52,9,193,100,52,9,193,107,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,193,107,52,9,193,114,52,9,193,30,122,11,193,37,122,11,193,44,122,11,193,51,122,11,193,58,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,193,23,223,113,193,30,223,113,193,37,223,113,193,44,223,113,193,51,223,113,193,58,223,113,193,65,223,113,193,72,223,113,193,79,223,113,193,86,223,113,193,93,223,113,193,100,223,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,77,147,17,193,84,147,17,193,219,52,9,193,226,52,9,193,247,61,9,193,45,88,12,193,77,249,113,193,240,52,9,193,247,52,9,193,114,122,11,193,121,122,11,193,128,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,254,52,9,193,7,53,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,193,14,53,9,193,21,53,9,5,5,78,99,5,5,82,99,5,5,86,99,5,5,94,99,5,5,98,99,5,5,102,99,5,5,106,99,5,5,110,99,5,5,114,99,5,5,118,99,5,5,122,99,5,5,126,99,5,5,130,99,5,5,134,99,5,5,138,99,5,5,146,99,5,5,150,99,5,5,34,99,5,5,62,99,5,5,90,99,5,5,142,99,5,5,154,99,5,5,158,99,5,5,160,99,5,5,164,99,5,5,166,99,5,5,168,99,5,5,55,9,46,5,58,99,5,5,170,99,5,5,174,99,5,5,176,99,193,9,29,117,193,16,29,117,193,23,29,117,193,30,29,117,193,37,29,117,193,44,29,117,193,51,29,117,193,58,29,117,193,65,29,117,193,72,29,117,193,79,29,117,193,86,29,117,193,93,29,117,193,100,29,117,193,107,29,117,193,114,29,117,193,121,29,117,193,128,29,117,193,135,29,117,193,142,29,117,193,149,29,117,193,156,29,117,193,163,29,117,193,170,29,117,193,177,29,117,193,184,29,117,193,191,29,117,193,198,29,117,255,255,255,255,255,255,255,255,193,2,61,9,193,9,61,9,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,107,61,9,193,9,158,124,193,16,158,124,193,23,158,124,193,30,158,124,193,37,158,124,193,44,158,124,193,51,158,124,193,58,158,124,193,65,158,124,193,72,158,124,193,79,158,124,193,86,158,124,193,93,158,124,193,100,158,124,193,107,158,124,193,114,158,124,193,121,158,124,193,128,158,124,193,135,158,124,193,142,158,124,193,149,158,124,193,156,158,124,255,255,255,255,193,114,61,9,5,5,0,21,5,5,0,23,5,5,0,25,193,121,146,17,193,128,146,17,193,135,146,17,193,142,146,17,193,149,146,17,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,5,5,122,124,5,112,122,124,193,2,124,124,193,9,124,124,193,16,124,124,193,23,124,124,193,30,124,124,193,37,124,124,193,44,124,124,255,255,255,255,255,255,255,255,255,255,255,255,193,135,122,11,193,121,61,9,193,128,61,9,193,135,61,9,193,142,61,9,193,149,61,9,193,156,61,9,193,219,176,113,193,226,176,113,193,233,176,113,193,240,176,113,193,247,176,113,193,37,176,113,193,44,176,113,193,254,176,113,193,7,177,113,193,240,61,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,193,9,30,117,193,16,30,117,193,23,30,117,193,30,30,117,193,37,30,117,193,44,30,117,193,51,30,117,193,58,30,117,193,65,30,117,193,72,30,117,193,79,30,117,193,86,30,117,193,93,30,117,193,100,30,117,193,107,30,117,193,114,30,117,193,121,30,117,193,128,30,117,193,135,30,117,193,142,30,117,193,149,30,117,193,156,30,117,193,163,30,117,193,7,62,9,193,14,62,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,250,123,193,16,250,123,193,23,250,123,193,30,250,123,193,37,250,123,193,44,250,123,193,51,250,123,193,58,250,123,193,65,250,123,193,72,250,123,193,79,250,123,193,86,250,123,193,93,250,123,193,100,250,123,193,107,250,123,193,114,250,123,193,121,250,123,193,128,250,123,193,135,250,123,193,142,250,123,193,149,250,123,193,156,250,123,193,163,250,123,193,170,250,123,193,177,250,123,193,184,250,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,96,9,5,5,98,9,5,5,100,9,5,5,102,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,202,16,5,5,204,16,5,5,206,16,5,5,208,16,5,5,210,16,5,5,212,16,5,5,214,16,5,5,216,16,5,5,218,16,5,5,220,16,5,5,222,16,5,5,224,16,5,5,226,16,5,5,228,16,5,5,230,16,5,5,232,16,193,9,204,124,193,16,204,124,193,23,204,124,193,30,204,124,193,37,204,124,193,44,204,124,193,51,204,124,193,58,204,124,193,65,204,124,193,72,204,124,193,79,204,124,193,86,204,124,193,93,204,124,193,100,204,124,193,107,204,124,193,114,204,124,193,121,204,124,193,128,204,124,193,135,204,124,193,142,204,124,193,149,204,124,193,156,204,124,193,163,204,124,193,170,204,124,193,177,204,124,193,184,204,124,193,191,204,124,193,198,204,124,193,205,204,124,193,212,204,124,255,255,255,255,193,2,104,9,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,7,206,124,193,14,206,124,193,21,206,124,193,28,206,124,193,35,206,124,193,42,206,124,193,49,206,124,193,56,206,124,193,9,104,9,5,5,0,21,5,5,0,23,193,2,146,17,193,9,146,17,193,16,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,50,101,193,16,50,101,193,23,50,101,193,30,50,101,193,37,50,101,193,44,50,101,193,51,50,101,193,58,50,101,193,65,50,101,193,72,50,101,193,79,50,101,193,86,50,101,193,93,50,101,193,100,50,101,193,107,50,101,193,114,50,101,193,121,50,101,193,128,50,101,193,135,50,101,193,142,50,101,193,149,50,101,193,156,50,101,5,5,0,21,193,100,146,17,193,107,146,17,193,114,146,17,5,5,0,23,5,5,0,25,255,255,255,255,255,255,255,255,255,255,255,255,193,16,104,9,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,255,255,255,255,193,23,104,9,193,30,104,9,193,37,104,9,193,44,104,9,193,51,104,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,41,5,0,19,41,5,0,21,41,5,0,23,41,5,0,25,41,5,0,27,41,5,0,29,41,5,0,31,41,5,0,33,41,5,0,35,46,5,0,37,48,5,121,12,46,5,143,12,48,5,131,12,44,5,142,9,44,5,144,9,255,255,255,255,46,5,0,42,46,5,0,50,46,5,0,70,46,5,0,88,49,5,24,51,46,5,0,56,46,5,0,62,46,5,0,64,46,5,0,66,46,5,0,68,46,5,0,72,46,5,0,78,46,5,0,80,255,255,255,255,255,255,255,255,255,255,255,255,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,197,2,72,0,197,162,72,0,197,194,73,0,197,98,74,0,197,2,75,0,197,162,75,0,197,66,76,0,197,226,76,0,197,130,77,0,197,34,79,0,197,3,5,0,197,99,10,0,197,67,11,0,197,163,11,0,197,3,12,0,197,99,12,0,197,195,12,0,197,35,13,0,197,131,13,0,197,100,5,0,197,228,5,0,197,100,6,0,197,228,6,0,197,100,7,0,197,228,7,0,197,100,8,0,197,228,8,0,197,100,9,0,197,228,9,0,197,196,10,0,197,98,67,0,197,2,73,0,197,34,74,0,197,194,74,0,197,98,75,0,197,2,76,0,197,162,76,0,197,66,77,0,197,226,77,0,197,163,71,0,197,67,72,0,197,227,72,0,197,3,74,0,197,163,74,0,197,67,75,0,197,227,75,0,197,131,76,0,197,35,77,0,197,195,77,0,197,99,79,0,197,227,13,0,197,163,14,0,197,99,15,0,197,35,16,0,197,130,66,0,197,66,66,0,197,34,67,0,197,34,78,0,197,162,83,0,197,130,87,0,197,98,90,0,197,2,92,0,197,226,92,0,197,34,94,0,197,226,94,0,31,5,0,19,31,5,0,19,193,168,11,13,193,175,11,13,193,182,11,13,197,67,14,0,197,3,15,0,197,195,15,0,197,131,16,0,197,67,17,0,197,3,18,0,197,195,18,0,197,131,19,0,197,67,20,0,197,3,21,0,197,195,21,0,197,131,22,0,197,67,23,0,197,3,24,0,197,195,24,0,197,131,25,0,197,227,16,0,197,163,17,0,197,99,18,0,197,35,19,0,197,227,19,0,197,163,20,0,197,99,21,0,197,35,22,0,197,227,22,0,197,163,23,0,197,99,24,0,197,35,25,0,197,227,25,0,197,163,26,0,197,99,27,0,197,35,28,0,197,227,28,0,197,163,29,0,197,99,30,0,197,35,31,0,197,227,31,0,197,163,32,0,168,5,0,42,168,5,0,44,168,5,0,46,168,5,0,48,168,5,0,50,168,5,0,52,168,5,0,54,168,5,0,56,168,5,0,58,168,5,0,60,197,67,26,0,197,3,27,0,197,195,27,0,197,131,28,0,197,67,29,0,197,3,30,0,197,195,30,0,197,131,31,0,197,67,32,0,197,3,33,0,197,195,47,0,168,5,0,46,168,5,0,76,197,226,116,0,197,98,210,0,5,5,93,12,180,5,0,42,177,5,0,44,177,5,0,46,177,5,0,48,180,5,0,50,177,5,0,52,177,5,0,54,180,5,0,56,180,5,0,58,177,5,0,60,180,5,0,62,180,5,0,64,180,5,0,66,180,5,0,68,180,5,0,70,180,5,0,72,197,99,33,0,197,67,34,0,197,35,35,0,197,3,36,0,197,227,36,0,197,195,37,0,197,163,38,0,197,131,39,0,197,3,42,0,197,99,43,0,197,67,44,0,197,35,45,0,197,3,46,0,197,227,46,0,197,196,33,0,197,164,34,0,197,132,35,0,197,100,36,0,197,68,37,0,197,36,38,0,197,4,39,0,197,228,39,0,197,100,42,0,197,196,43,0,197,164,44,0,197,132,45,0,197,100,46,0,197,68,47,0,197,228,42,0,197,103,40,0,197,70,41,0,255,255,255,255,198,163,119,0,198,35,121,0,198,99,120,0,198,163,125,0,198,131,121,0,198,99,123,0,198,3,120,0,198,3,123,0,198,195,120,0,198,35,124,0,198,35,127,0,198,3,129,0,198,163,128,0,198,227,127,0,198,195,132,0,198,3,126,0,198,195,126,0,198,67,128,0,198,131,127,0,198,35,130,0,198,227,124,0,198,99,129,0,198,3,132,0,198,131,130,0,198,195,123,0,198,227,121,0,198,67,125,0,198,99,126,0,198,195,129,0,198,67,122,0,198,99,132,0,198,131,124,0,198,227,130,0,198,163,122,0,198,67,131,0,198,163,131,0,198,97,183,0,198,97,189,0,198,1,193,0,198,193,205,0,197,98,71,0,197,34,79,0,197,2,85,0,197,34,88,0,197,194,91,0,197,66,92,0,197,226,93,0,197,98,94,0,197,131,183,0,197,194,79,0,197,2,80,0,197,194,80,0,197,2,81,0,197,66,81,0,197,130,81,0,197,194,81,0,197,2,82,0,197,66,82,0,197,2,85,0,197,66,85,0,197,226,80,0,197,130,85,0,197,194,85,0,197,2,86,0,32,5,4,12,16,5,0,42,16,5,0,44,16,5,0,46,16,5,0,48,16,5,0,50,16,5,0,52,16,5,0,54,16,5,0,56,16,5,0,58,16,5,0,60,16,5,0,62,16,5,0,64,16,5,0,66,16,5,0,68,16,5,0,70,16,5,0,72,16,5,0,74,16,5,0,76,16,5,0,78,16,5,0,80,16,5,0,82,16,5,0,84,16,5,0,86,16,5,0,88,16,5,0,90,16,5,0,92,16,5,150,9,32,5,137,12,16,5,152,9,32,5,141,12,32,5,184,9,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,5,5,168,9,5,5,170,9,5,5,172,9,5,5,174,9,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,5,5,176,9,5,5,178,9,193,27,213,12,193,34,213,12,206,160,230,0,206,160,230,0,206,160,230,0,5,5,180,9,5,5,182,9,5,5,184,9,5,5,186,9,5,5,188,9,5,5,190,9,5,5,192,9,5,5,194,9,5,5,196,9,5,5,198,9,5,5,200,9,5,5,202,9,5,5,204,9,5,5,206,9,5,5,208,9,5,5,210,9,5,5,212,9,5,5,214,9,5,5,216,9,5,5,218,9,5,5,220,9,5,5,222,9,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,5,5,224,9,5,5,226,9,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,5,5,228,9,5,5,230,9,5,5,232,9,5,5,234,9,5,5,236,9,5,5,238,9,5,5,240,9,5,5,242,9,5,5,244,9,5,5,246,9,193,111,206,12,193,118,206,12,193,125,206,12,193,132,206,12,193,139,206,12,193,146,206,12,193,153,206,12,193,160,206,12,193,167,206,12,193,174,206,12,193,181,206,12,193,188,206,12,193,195,206,12,193,202,206,12,193,209,206,12,193,216,206,12,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,5,5,248,9,5,5,250,9,5,5,252,9,5,5,254,9,5,5,2,10,5,5,4,10,5,5,6,10,5,5,8,10,5,5,10,10,5,5,12,10,5,5,14,10,5,5,16,10,5,5,18,10,5,5,20,10,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,5,5,62,10,5,5,64,10,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,198,99,135,0,198,35,133,0,198,131,133,0,198,67,134,0,198,195,135,0,198,163,134,0,198,35,136,0,198,227,133,0,198,3,135,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,225,190,0,198,161,182,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,34,73,1,197,226,123,1,197,98,124,1,197,226,128,1,197,98,129,1,197,66,108,1,197,162,109,1,197,194,111,1,197,66,113,1,197,66,112,1,197,34,103,1,197,162,118,1,197,226,127,1,197,194,107,1,197,34,109,1,197,66,111,1,197,194,112,1,197,66,106,1,197,66,115,1,197,98,130,1,197,66,99,1,197,194,100,1,197,226,101,1,197,2,108,1,197,98,109,1,197,130,111,1,197,162,130,1,197,226,133,1,197,98,69,1,197,162,69,1,5,5,98,10,5,5,100,10,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,5,5,106,10,5,5,108,10,5,5,110,10,5,5,112,10,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,193,44,26,11,193,51,26,11,193,58,26,11,193,65,26,11,193,72,26,11,193,79,26,11,193,86,26,11,193,93,26,11,193,100,26,11,193,107,26,11,193,114,26,11,193,121,26,11,193,128,26,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,20,110,5,5,24,110,5,5,132,110,5,5,134,110,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,44,11,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,21,5,5,0,23,5,5,0,25,193,182,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,5,5,140,113,5,5,144,113,5,5,48,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,102,11,193,16,102,11,193,23,102,11,193,30,102,11,193,37,102,11,193,44,102,11,193,51,102,11,193,114,208,116,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,209,116,193,16,209,116,193,23,209,116,193,30,209,116,193,51,209,116,193,65,209,116,193,58,209,116,193,72,209,116,193,79,209,116,193,37,209,116,193,44,209,116,193,86,209,116,5,5,211,116,5,5,215,116,193,2,217,116,193,9,217,116,193,93,102,11,193,100,102,11,193,107,102,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,33,5,5,0,35,5,5,0,37,193,203,147,17,193,210,147,17,193,217,147,17,193,224,147,17,193,231,147,17,193,238,147,17,193,245,147,17,193,252,147,17,193,5,148,17,193,12,148,17,255,255,255,255,255,255,255,255,255,255,255,255,193,114,102,11,193,121,102,11,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,23,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,161,124,193,16,161,124,193,23,161,124,193,30,161,124,193,37,161,124,193,44,161,124,193,51,161,124,193,58,161,124,193,65,161,124,193,72,161,124,193,79,161,124,193,86,161,124,193,93,161,124,193,100,161,124,193,107,161,124,193,114,161,124,193,121,161,124,193,128,161,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,191,122,11,193,198,122,11,193,205,122,11,193,212,122,11,255,255,255,255,255,255,255,255,255,255,255,255,193,182,208,113,193,84,208,113,193,12,124,11,193,91,208,113,193,154,208,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,168,13,193,63,86,12,193,70,86,12,193,77,86,12,193,84,86,12,193,91,86,12,193,98,86,12,193,105,86,12,193,112,86,12,193,119,86,12,193,126,86,12,193,133,86,12,193,140,86,12,193,147,86,12,193,154,86,12,193,161,86,12,193,168,86,12,193,175,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,126,11,193,91,241,123,193,98,241,123,193,23,100,13,193,30,100,13,193,37,128,11,193,235,242,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,193,65,172,17,193,72,172,17,193,79,172,17,193,86,172,17,193,93,172,17,193,9,117,124,193,16,117,124,193,23,117,124,193,30,117,124,193,37,117,124,193,44,117,124,193,51,117,124,193,58,117,124,193,65,117,124,193,72,117,124,193,79,117,124,193,86,117,124,193,93,117,124,193,100,117,124,193,107,117,124,193,114,117,124,193,121,117,124,193,128,117,124,193,135,117,124,193,142,117,124,193,149,117,124,193,156,117,124,193,163,117,124,193,170,117,124,193,177,117,124,193,184,117,124,193,191,117,124,193,198,117,124,193,205,117,124,5,5,0,21,193,79,146,17,193,93,128,11,197,226,17,1,197,130,20,1,197,195,19,1,197,99,19,1,197,194,11,1,197,2,12,1,197,98,18,1,197,35,20,1,197,34,18,1,197,194,20,1,197,162,17,1,197,226,16,1,197,66,12,1,197,162,49,0,197,98,49,0,5,5,4,12,255,255,255,255,255,255,255,255,197,99,35,1,197,98,36,1,197,131,34,1,255,255,255,255,197,194,35,1,197,3,36,1,197,130,11,1,197,2,11,1,197,34,35,1,197,66,34,1,197,162,36,1,5,5,6,12,193,16,22,12,255,255,255,255,193,23,22,12,197,226,49,0,197,35,249,0,197,34,250,0,197,67,248,0,255,255,255,255,197,130,249,0,197,195,249,0,197,130,234,0,197,2,234,0,197,226,248,0,197,2,248,0,197,98,250,0,197,98,50,0,197,34,50,0,197,162,50,0,197,34,1,1,197,130,3,1,197,195,2,1,197,99,2,1,255,255,255,255,255,255,255,255,197,162,1,1,197,35,3,1,197,98,1,1,197,194,3,1,197,226,0,1,197,98,0,1,255,255,255,255,197,34,51,0,197,226,50,0,197,98,51,0,197,195,26,1,197,67,33,1,197,4,24,1,197,132,30,1,197,68,22,1,197,196,28,1,197,196,25,1,197,68,32,1,197,35,27,1,197,163,33,1,197,132,24,1,197,4,31,1,197,196,22,1,197,68,29,1,197,68,26,1,197,196,32,1,197,162,227,0,197,194,228,0,197,67,227,0,197,66,229,0,197,99,226,0,255,255,255,255,197,34,228,0,197,99,228,0,197,226,227,0,197,2,229,0,197,2,227,0,197,34,226,0,197,130,229,0,193,9,22,12,5,5,32,96,193,9,22,12,5,5,48,93,5,5,50,93,5,5,40,71,5,5,52,93,5,5,30,43,5,5,88,96,197,162,123,0,197,98,195,0,5,5,56,77,46,5,12,87,193,30,52,12,193,37,52,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,60,118,5,5,62,118,5,5,64,118,5,5,66,118,5,5,68,118,5,5,70,118,5,5,72,118,5,5,74,118,5,5,76,118,5,5,78,118,5,5,80,118,5,5,82,118,5,5,84,118,5,5,86,118,5,5,88,118,5,5,90,118,193,240,143,103,193,247,143,103,193,254,143,103,193,7,144,103,193,31,146,103,193,38,146,103,193,45,146,103,193,52,146,103,193,108,153,103,193,115,153,103,193,122,153,103,193,129,153,103,193,192,153,103,193,199,153,103,193,206,153,103,193,213,153,103,193,128,56,12,193,135,56,12,193,142,56,12,193,149,56,12,193,156,56,12,193,163,56,12,193,170,56,12,193,177,56,12,193,184,56,12,193,191,56,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,198,56,12,193,205,56,12,193,212,56,12,193,219,56,12,193,226,56,12,193,233,56,12,193,240,56,12,193,247,56,12,193,254,56,12,193,7,57,12,193,14,57,12,193,21,57,12,193,28,57,12,193,35,57,12,193,42,57,12,193,49,57,12,193,56,57,12,193,63,57,12,193,70,57,12,193,77,57,12,193,84,57,12,193,91,57,12,193,98,57,12,5,5,59,12,5,5,61,12,5,5,63,12,5,5,65,12,5,5,67,12,5,5,69,12,5,5,71,12,5,5,73,12,5,5,75,12,193,2,77,12,193,9,77,12,160,5,88,93,5,5,88,93,160,5,104,93,5,5,104,93,160,5,20,57,5,5,20,57,197,34,196,0,197,226,195,0,160,5,64,93,5,5,64,93,160,5,66,93,5,5,66,93,160,5,68,93,5,5,68,93,5,5,6,53,5,5,6,79,197,162,107,0,197,98,107,0,197,162,110,0,197,98,110,0,197,34,111,0,197,226,110,0,197,226,111,0,197,162,111,0,197,98,112,0,197,34,112,0,197,226,112,0,197,162,112,0,160,5,20,47,5,5,20,47,160,5,40,65,5,5,40,65,160,112,0,76,5,112,0,76,160,120,0,78,5,120,0,78,160,120,0,80,5,120,0,80,5,5,79,12,193,2,81,12,193,9,81,12,160,5,90,93,5,5,90,93,160,5,34,83,5,5,32,65,5,5,92,93,160,5,18,69,5,5,18,69,160,5,10,47,5,5,10,47,5,5,12,47,5,5,10,57,160,5,16,45,5,5,16,45,160,5,10,53,5,5,10,53,197,34,102,0,197,226,101,0,197,2,167,0,197,194,166,0,197,162,196,0,197,98,196,0,5,5,20,71,5,5,16,71,5,5,18,71,5,5,22,71,5,5,24,71,5,5,6,77,5,5,10,77,5,5,44,77,5,5,46,77,5,5,36,77,5,5,48,77,5,5,50,77,5,5,52,77,5,5,24,79,5,5,8,83,5,5,22,83,5,5,16,83,5,5,18,83,5,5,30,83,5,5,16,89,5,5,18,89,5,5,20,89,5,5,8,89,5,5,10,89,5,5,12,89,5,5,14,89,5,5,14,91,193,16,81,12,46,5,20,57,32,5,26,65,46,5,18,65,32,5,30,83,197,227,105,0,197,67,106,0,165,5,0,46,197,162,51,0,193,9,97,12,197,3,115,0,197,99,115,0,158,5,28,51,193,16,97,12,197,226,51,0,22,5,0,54,165,5,0,56,165,5,0,56,165,5,0,56,22,5,0,56,196,178,5,56,165,5,0,58,165,5,0,58,165,5,0,64,22,5,0,64,193,23,97,12,165,5,0,68,197,194,162,0,193,30,97,12,193,37,97,12,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,76,165,5,0,76,193,44,97,12,193,51,97,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,30,85,12,193,37,85,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,67,122,1,197,35,146,1,197,164,70,1,197,36,70,1,197,164,168,1,197,36,119,1,197,132,98,1,197,36,121,1,197,196,121,1,197,163,119,1,197,18,120,1,197,40,91,1,5,5,242,13,193,72,85,12,255,255,255,255,255,255,255,255,198,161,164,0,198,129,164,0,198,65,164,0,198,97,164,0,198,2,165,0,198,194,164,0,49,5,218,102,38,5,218,102,16,5,218,102,27,5,218,102,49,5,216,102,38,5,216,102,16,5,216,102,27,5,216,102,46,5,250,102,32,5,250,102,197,66,191,1,197,2,191,1,193,79,85,12,193,86,85,12,193,93,85,12,193,100,85,12,193,107,85,12,193,114,85,12,193,121,85,12,193,128,85,12,193,135,85,12,193,142,85,12,193,149,85,12,193,156,85,12,193,163,85,12,193,170,85,12,193,177,85,12,193,184,85,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,33,163,0,198,1,163,0,198,193,162,0,198,225,162,0,44,5,228,102,30,5,228,102,198,97,161,0,198,33,161,0,46,5,230,102,32,5,230,102,197,226,183,1,198,161,165,0,198,129,165,0,5,5,20,108,5,5,24,108,5,5,122,108,5,5,124,108,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,205,85,12,5,5,96,108,5,5,18,16,5,5,20,16,5,5,22,16,5,5,24,16,5,5,26,16,5,5,28,16,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,42,16,5,5,44,16,5,5,46,16,193,212,85,12,193,219,85,12,193,226,85,12,193,233,85,12,193,240,85,12,193,247,85,12,5,5,160,13,193,254,85,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,48,16,5,5,50,16,5,5,52,16,5,5,54,16,5,5,56,16,5,5,58,16,5,5,60,16,5,5,62,16,5,5,64,16,5,5,66,16,5,5,68,16,5,5,70,16,5,5,72,16,5,5,74,16,5,5,76,16,5,5,78,16,5,5,80,16,5,5,82,16,5,5,84,16,5,5,86,16,5,5,88,16,193,7,86,12,193,14,86,12,193,21,86,12,193,28,86,12,193,35,86,12,193,42,86,12,193,49,86,12,193,56,86,12,5,5,162,13,5,5,164,13,5,5,166,13,5,5,124,112,5,5,126,112,5,5,128,112,5,5,130,112,5,5,132,112,255,255,255,255,201,64,18,0,201,160,19,0,5,5,142,112,255,255,255,255,5,5,144,112,5,5,146,112,5,5,148,112,5,5,152,112,197,130,198,1,193,189,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,2,198,1,197,66,198,1,197,66,199,1,5,5,150,112,5,5,90,16,5,5,92,16,5,5,94,16,5,5,96,16,5,5,98,16,5,5,100,16,5,5,102,16,5,5,14,112,5,5,22,112,5,5,26,112,5,5,134,112,5,5,136,112,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,104,16,5,5,106,16,5,5,108,16,5,5,110,16,5,5,112,16,5,5,114,16,5,5,116,16,5,5,118,16,5,5,120,16,193,196,86,12,197,130,197,1,197,194,197,1,197,130,198,1,197,194,198,1,197,2,199,1,197,66,197,1,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,193,203,86,12,193,210,86,12,193,217,86,12,193,224,86,12,193,58,162,113,255,255,255,255,255,255,255,255,255,255,255,255,5,5,30,16,5,5,32,16,5,5,34,16,5,5,36,16,5,5,38,16,5,5,40,16,193,231,86,12,193,238,86,12,5,5,158,13,193,245,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,62,116,5,5,66,116,197,130,121,2,5,5,70,116,5,5,74,116,5,5,78,116,5,5,82,116,197,2,122,2,5,5,86,116,5,5,90,116,5,5,94,116,5,5,98,116,197,130,122,2,5,5,102,116,5,5,106,116,5,5,110,116,5,5,114,116,5,5,118,116,201,38,233,0,201,38,237,0,5,5,132,116,5,5,136,116,5,5,140,116,5,5,144,116,5,5,148,116,197,2,120,2,5,112,102,116,5,112,118,116,5,112,122,116,255,255,255,255,193,110,87,12,193,117,87,12,193,124,81,117,193,16,85,117,193,117,81,117,193,2,89,117,193,114,89,117,193,128,89,117,193,184,89,117,193,58,93,117,193,72,93,117,193,93,93,117,193,100,93,117,193,65,93,117,193,79,93,117,193,86,93,117,193,231,80,117,193,107,93,117,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,114,93,117,193,121,93,117,193,16,89,117,193,142,89,117,193,10,88,12,193,17,88,12,193,51,79,117,193,114,79,117,193,135,79,117,193,156,79,117,193,205,79,117,193,247,79,117,193,21,80,117,193,35,80,117,193,49,80,117,193,70,80,117,193,154,80,117,193,182,80,117,193,2,85,117,193,23,85,117,193,37,85,117,193,224,80,117,5,5,98,13,193,44,85,117,193,177,79,117,193,68,81,117,193,149,93,117,193,156,93,117,193,163,93,117,193,24,88,12,193,31,88,12,193,38,88,12,193,75,81,117,193,128,93,117,193,135,93,117,193,142,93,117,193,142,79,117,193,226,79,117,193,52,88,12,193,59,88,12,193,66,88,12,193,73,88,12,193,80,88,12,193,87,88,12,193,94,88,12,193,101,88,12,193,108,88,12,193,115,88,12,193,122,88,12,193,129,88,12,193,136,88,12,193,143,88,12,193,150,88,12,193,157,88,12,193,164,88,12,193,171,88,12,193,178,88,12,193,185,88,12,193,192,88,12,193,199,88,12,193,206,88,12,193,213,88,12,193,220,88,12,193,227,88,12,193,234,88,12,193,241,88,12,193,248,88,12,193,255,88,12,193,8,89,12,193,15,89,12,197,163,90,0,197,35,93,0,197,68,80,0,197,131,92,0,197,68,73,0,46,5,0,48,197,2,136,0,197,67,136,0,197,230,136,0,197,104,151,0,197,35,191,0,197,99,205,0,197,195,208,0,193,2,97,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,130,191,0,197,227,193,0,197,226,194,0,193,58,97,12,165,5,0,92,193,65,97,12,155,5,86,96,193,72,97,12,165,5,0,92,193,79,97,12,156,5,0,62,196,146,156,42,165,5,0,44,165,5,0,46,193,86,97,12,22,5,0,50,165,5,0,50,165,5,0,52,160,5,18,53,165,5,0,66,22,5,0,70,32,5,6,101,32,5,8,101,32,5,10,101,32,5,12,101,22,5,0,58,193,93,97,12,197,3,131,0,27,5,50,96,16,5,10,96,160,5,10,96,177,5,50,96,32,5,119,12,193,100,97,12,193,107,97,12,193,114,97,12,193,121,97,12,165,5,0,48,22,5,0,48,22,5,0,50,22,5,0,58,22,5,0,60,193,128,97,12,193,45,160,12,193,135,97,12,197,163,106,0,5,5,18,53,193,142,97,12,197,67,70,0,197,3,71,0,197,228,67,0,197,195,68,0,197,99,78,0,197,131,69,0,197,195,78,0,197,67,84,0,197,195,87,0,197,227,69,0,197,3,91,0,197,163,70,0,197,163,84,0,197,99,91,0,197,131,93,0,197,162,67,0,5,5,144,16,5,5,146,16,5,5,148,16,160,5,18,47,5,5,18,47,5,5,0,31,5,5,150,16,5,5,152,16,5,5,154,16,197,195,66,0,193,149,97,12,193,156,97,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,99,12,5,5,103,12,5,5,101,12,5,5,105,12,193,2,107,12,193,9,107,12,193,16,107,12,193,23,107,12,193,30,107,12,193,37,107,12,197,34,52,0,197,98,52,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,197,162,52,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,197,226,52,0,197,98,53,0,197,34,53,0,193,126,108,12,193,133,108,12,193,140,108,12,193,147,108,12,193,154,108,12,193,161,108,12,193,168,108,12,193,175,108,12,193,182,108,12,193,189,108,12,193,196,108,12,193,203,108,12,193,210,108,12,193,217,108,12,193,224,108,12,193,231,108,12,193,238,108,12,193,245,108,12,193,252,108,12,193,5,109,12,193,12,109,12,193,19,109,12,193,26,109,12,193,33,109,12,193,40,109,12,193,47,109,12,193,54,109,12,193,61,109,12,193,68,109,12,193,75,109,12,193,82,109,12,193,89,109,12,193,96,109,12,193,103,109,12,193,110,109,12,193,117,109,12,193,124,109,12,193,131,109,12,193,138,109,12,193,145,109,12,193,152,109,12,193,159,109,12,193,166,109,12,193,173,109,12,193,180,109,12,193,187,109,12,193,194,109,12,193,201,109,12,193,208,109,12,193,215,109,12,5,5,111,12,193,2,113,12,197,162,53,0,193,9,113,12,193,16,113,12,5,5,115,12,193,2,117,12,197,226,53,0,193,9,117,12,193,16,117,12,197,34,54,0,193,23,117,12,193,37,117,12,193,44,117,12,193,51,117,12,5,5,119,12,5,5,143,12,193,9,145,12,193,16,145,12,5,5,147,12,193,2,151,12,193,9,151,12,193,16,151,12,193,23,151,12,193,30,151,12,193,37,151,12,193,51,151,12,193,65,151,12,193,72,151,12,193,79,151,12,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,172,5,18,96,16,5,18,96,255,255,255,255,255,255,255,255,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,32,5,36,101,46,5,6,101,46,5,12,101,46,5,14,101,32,5,26,101,46,5,28,101,32,5,30,101,32,5,44,101,32,5,48,101,24,5,121,12,197,98,60,1,197,34,60,1,197,67,61,1,197,227,60,1,197,130,51,1,197,194,51,1,197,2,52,1,197,130,52,1,197,2,53,1,197,66,53,1,197,130,53,1,197,2,54,1,197,194,54,1,255,255,255,255,197,2,55,1,197,130,55,1,197,34,57,1,197,226,56,1,197,162,57,1,255,255,255,255,197,226,57,1,255,255,255,255,197,162,54,0,193,49,158,12,197,194,58,0,193,56,158,12,193,63,158,12,193,70,158,12,193,77,158,12,193,84,158,12,193,91,158,12,193,98,158,12,193,105,158,12,193,112,158,12,193,119,158,12,197,130,58,0,197,98,54,0,197,130,55,0,197,2,59,0,197,66,59,0,193,126,158,12,193,133,158,12,197,130,59,0,197,194,59,0,193,140,158,12,193,147,158,12,197,2,60,0,197,66,60,0,193,154,158,12,193,161,158,12,193,168,158,12,193,175,158,12,193,182,158,12,193,189,158,12,193,86,151,12,193,93,151,12,193,100,151,12,193,107,151,12,197,194,55,0,193,114,151,12,197,2,56,0,193,121,151,12,193,128,151,12,193,135,151,12,193,142,151,12,5,5,153,12,197,66,56,0,197,131,56,0,5,5,155,12,197,226,56,0,197,35,57,0,193,2,157,12,193,9,157,12,193,16,157,12,193,23,157,12,193,30,157,12,193,37,157,12,193,44,157,12,193,51,157,12,193,58,157,12,193,65,157,12,193,72,157,12,193,79,157,12,193,86,157,12,193,93,157,12,193,100,157,12,193,41,213,12,193,48,213,12,193,55,213,12,193,62,213,12,193,69,213,12,193,76,213,12,193,83,213,12,193,90,213,12,193,97,213,12,193,104,213,12,193,111,213,12,193,118,213,12,197,68,56,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,193,107,157,12,197,130,57,0,193,114,157,12,193,121,157,12,197,194,57,0,193,128,157,12,193,135,157,12,197,2,58,0,193,142,157,12,197,66,58,0,193,149,157,12,193,156,157,12,193,163,157,12,193,170,157,12,193,177,157,12,193,184,157,12,193,191,157,12,193,198,157,12,193,205,157,12,193,212,157,12,193,219,157,12,193,226,157,12,193,233,157,12,193,240,157,12,193,247,157,12,193,254,157,12,193,7,158,12,193,14,158,12,193,21,158,12,193,28,158,12,193,35,158,12,193,42,158,12,197,130,60,0,197,194,60,0,193,196,158,12,193,203,158,12,197,130,61,0,197,194,61,0,193,210,158,12,193,217,158,12,197,2,62,0,197,66,62,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,197,2,61,0,197,66,61,0,197,130,62,0,197,194,62,0,193,43,161,12,193,50,161,12,193,57,161,12,193,64,161,12,193,71,161,12,193,78,161,12,197,2,64,0,197,66,64,0,197,130,64,0,197,194,64,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,197,2,63,0,197,66,63,0,197,130,63,0,197,194,63,0,193,208,159,12,193,215,159,12,193,222,159,12,193,229,159,12,193,236,159,12,193,243,159,12,193,250,159,12,193,3,160,12,193,10,160,12,193,17,160,12,193,24,160,12,193,31,160,12,193,38,160,12,193,52,160,12,193,59,160,12,193,66,160,12,193,73,160,12,193,80,160,12,193,87,160,12,193,94,160,12,193,101,160,12,193,108,160,12,193,115,160,12,193,122,160,12,193,129,160,12,193,136,160,12,193,143,160,12,193,150,160,12,193,157,160,12,193,164,160,12,193,171,160,12,193,178,160,12,193,185,160,12,193,192,160,12,193,199,160,12,193,206,160,12,193,213,160,12,193,220,160,12,193,227,160,12,193,234,160,12,193,241,160,12,193,248,160,12,193,255,160,12,193,8,161,12,193,15,161,12,193,22,161,12,193,29,161,12,193,36,161,12,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,202,169,12,193,209,169,12,193,216,169,12,193,223,169,12,193,230,169,12,193,237,169,12,193,244,169,12,193,251,169,12,193,4,170,12,193,11,170,12,193,18,170,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,25,170,12,193,32,170,12,5,5,172,12,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,5,5,180,12,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,5,5,185,12,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,255,255,255,255,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,193,111,234,12,193,118,234,12,193,125,234,12,193,132,234,12,193,139,234,12,193,146,234,12,193,153,234,12,193,160,234,12,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,193,212,250,12,193,219,250,12,193,226,250,12,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,193,69,234,12,193,76,234,12,193,83,234,12,193,90,234,12,193,97,234,12,193,104,234,12,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,151,200,12,193,158,200,12,193,165,200,12,193,172,200,12,193,179,200,12,193,186,200,12,193,193,200,12,193,200,200,12,193,207,200,12,193,214,200,12,193,221,200,12,193,228,200,12,193,235,200,12,193,242,200,12,193,249,200,12,193,2,201,12,193,9,201,12,193,16,201,12,193,23,201,12,193,30,201,12,193,37,201,12,193,44,201,12,193,51,201,12,193,58,201,12,193,65,201,12,193,72,201,12,193,79,201,12,193,86,201,12,193,93,201,12,193,100,201,12,193,107,201,12,193,114,201,12,193,121,201,12,193,128,201,12,193,135,201,12,193,142,201,12,193,149,201,12,193,156,201,12,193,163,201,12,193,170,201,12,193,177,201,12,193,184,201,12,193,191,201,12,193,198,201,12,193,205,201,12,193,212,201,12,193,219,201,12,193,226,201,12,193,233,201,12,193,240,201,12,193,247,201,12,193,254,201,12,193,7,202,12,193,14,202,12,193,21,202,12,193,28,202,12,193,35,202,12,193,42,202,12,193,49,202,12,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,197,2,65,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,255,255,255,255,255,255,255,255,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,255,255,255,255,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,255,255,255,255,255,255,255,255,255,255,255,255,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,5,5,234,16,5,5,236,16,5,5,238,16,5,5,240,16,5,5,242,16,5,5,244,16,5,5,246,16,5,5,248,16,5,5,250,16,5,5,252,16,5,5,254,16,5,5,2,17,5,5,4,17,5,5,6,17,5,5,8,17,5,5,10,17,5,5,12,17,5,5,14,17,5,5,16,17,5,5,18,17,255,255,255,255,255,255,255,255,255,255,255,255,193,85,240,12,193,92,240,12,193,99,240,12,193,106,240,12,193,113,240,12,193,120,240,12,193,127,240,12,193,134,240,12,193,141,240,12,5,5,60,17,5,5,62,17,5,5,64,17,5,5,66,17,5,5,68,17,5,5,70,17,5,5,72,17,5,5,74,17,5,5,76,17,5,5,78,17,5,5,80,17,5,5,82,17,5,5,84,17,5,5,86,17,5,5,88,17,5,5,90,17,5,5,92,17,5,5,94,17,5,5,96,17,5,5,0,29,5,5,98,17,5,5,100,17,5,5,102,17,5,5,104,17,5,5,106,17,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,5,5,0,19,5,5,108,17,193,13,241,12,193,20,241,12,193,27,241,12,255,255,255,255,193,34,241,12,193,41,241,12,193,48,241,12,193,55,241,12,193,62,241,12,193,69,241,12,193,76,241,12,193,83,241,12,193,90,241,12,193,97,241,12,193,104,241,12,193,111,241,12,193,118,241,12,255,255,255,255,255,255,255,255,255,255,255,255,193,125,241,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,193,9,125,124,193,16,125,124,193,23,125,124,193,30,125,124,193,37,125,124,193,44,125,124,193,51,125,124,193,58,125,124,193,65,125,124,193,72,125,124,193,79,125,124,193,86,125,124,193,93,125,124,32,5,127,124,5,5,127,124,193,2,129,124,193,9,129,124,193,16,129,124,193,23,129,124,193,30,129,124,193,37,129,124,193,44,129,124,193,51,129,124,193,193,242,12,193,200,242,12,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,193,23,146,17,193,30,146,17,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,105,244,123,193,242,242,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,255,255,255,255,255,255,255,255,193,91,251,12,193,233,250,12,193,240,250,12,193,247,250,12,193,254,250,12,193,7,251,12,193,14,251,12,193,21,251,12,193,28,251,12,193,35,251,12,193,42,251,12,193,49,251,12,193,56,251,12,193,63,251,12,193,70,251,12,193,77,251,12,193,84,251,12,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,193,47,252,12,193,54,252,12,193,171,253,12,193,178,253,12,193,185,253,12,193,192,253,12,193,199,253,12,193,206,253,12,193,213,253,12,193,220,253,12,193,227,253,12,193,234,253,12,193,241,253,12,193,248,253,12,193,255,253,12,193,8,254,12,193,15,254,12,193,22,254,12,193,29,254,12,193,36,254,12,193,43,254,12,193,50,254,12,193,57,254,12,193,64,254,12,193,71,254,12,193,78,254,12,193,85,254,12,193,92,254,12,193,99,254,12,193,106,254,12,193,113,254,12,193,120,254,12,193,127,254,12,193,134,254,12,193,141,254,12,193,148,254,12,193,155,254,12,193,162,254,12,193,169,254,12,193,176,254,12,193,183,254,12,193,190,254,12,193,197,254,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,204,254,12,193,211,254,12,193,218,254,12,193,225,254,12,193,232,254,12,193,239,254,12,193,246,254,12,193,253,254,12,193,6,255,12,193,13,255,12,193,20,255,12,193,27,255,12,193,34,255,12,193,41,255,12,193,48,255,12,193,55,255,12,193,62,255,12,193,69,255,12,193,76,255,12,193,83,255,12,193,90,255,12,193,97,255,12,193,104,255,12,193,111,255,12,193,118,255,12,193,125,255,12,193,132,255,12,193,139,255,12,193,146,255,12,193,153,255,12,193,160,255,12,193,167,255,12,193,174,255,12,193,181,255,12,193,188,255,12,193,195,255,12,193,202,255,12,193,209,255,12,193,216,255,12,193,223,255,12,193,230,255,12,193,237,255,12,193,244,255,12,193,251,255,12,193,4,2,13,193,11,2,13,193,18,2,13,193,25,2,13,193,32,2,13,193,39,2,13,193,46,2,13,193,53,2,13,193,60,2,13,193,67,2,13,193,74,2,13,193,81,2,13,193,88,2,13,193,95,2,13,193,102,2,13,193,109,2,13,193,116,2,13,193,123,2,13,193,130,2,13,193,137,2,13,5,5,16,18,5,5,18,18,5,5,20,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,193,172,2,13,5,5,22,18,5,5,24,18,5,5,26,18,5,5,226,13,5,112,0,21,5,112,0,23,5,5,28,18,5,5,30,18,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,76,18,5,5,78,18,5,5,80,18,5,5,82,18,5,5,84,18,5,5,86,18,5,5,88,18,5,5,90,18,5,5,92,18,5,5,94,18,5,5,96,18,5,5,98,18,5,5,100,18,5,5,102,18,193,179,2,13,5,112,0,23,32,112,0,25,5,112,0,27,5,112,0,29,5,112,0,31,5,112,0,33,5,112,0,35,5,112,0,37,5,5,104,18,5,5,106,18,5,5,108,18,5,5,110,18,5,5,112,18,5,5,114,18,5,5,116,18,255,255,255,255,255,255,255,255,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,178,6,13,193,185,6,13,193,192,6,13,193,199,6,13,193,206,6,13,193,213,6,13,193,220,6,13,193,227,6,13,193,234,6,13,193,241,6,13,193,248,6,13,193,255,6,13,193,8,7,13,193,15,7,13,193,22,7,13,255,255,255,255,255,255,255,255,193,29,7,13,193,36,7,13,193,43,7,13,193,50,7,13,193,57,7,13,193,64,7,13,193,71,7,13,193,78,7,13,193,85,7,13,193,92,7,13,193,99,7,13,193,106,7,13,193,113,7,13,193,120,7,13,193,127,7,13,255,255,255,255,193,134,7,13,193,141,7,13,193,148,7,13,193,155,7,13,193,162,7,13,193,169,7,13,193,176,7,13,193,183,7,13,193,190,7,13,193,197,7,13,193,204,7,13,193,211,7,13,193,218,7,13,193,225,7,13,193,232,7,13,255,255,255,255,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,70,11,13,193,77,11,13,193,84,11,13,193,91,11,13,193,98,11,13,193,105,11,13,193,112,11,13,193,119,11,13,193,126,11,13,193,133,11,13,193,140,11,13,193,147,11,13,193,154,11,13,193,161,11,13,255,255,255,255,255,255,255,255,193,40,40,13,193,47,40,13,193,54,40,13,193,61,40,13,193,68,40,13,255,255,255,255,255,255,255,255,255,255,255,255,193,75,40,13,193,82,40,13,193,89,40,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,176,5,0,74,168,5,0,76,168,5,0,78,168,5,0,80,168,5,0,82,168,5,0,84,176,5,0,86,168,5,0,88,168,5,0,90,168,5,0,92,197,34,155,0,197,98,155,0,197,98,158,0,193,189,11,13,193,196,11,13,193,203,11,13,180,5,0,42,177,5,0,44,177,5,0,46,177,5,0,48,180,5,0,50,177,5,0,52,177,5,0,54,180,5,0,56,180,5,0,58,177,5,0,60,180,5,0,62,180,5,0,64,180,5,0,66,180,5,0,68,180,5,0,70,180,5,0,72,193,210,11,13,193,217,11,13,193,224,11,13,193,231,11,13,193,238,11,13,193,245,11,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,255,255,255,255,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,255,255,255,255,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,193,96,40,13,193,103,40,13,193,110,40,13,193,117,40,13,193,124,40,13,193,131,40,13,193,138,40,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,66,41,13,193,73,41,13,193,80,41,13,193,87,41,13,193,94,41,13,193,101,41,13,193,108,41,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,115,41,13,193,122,41,13,193,129,41,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,136,41,13,193,143,41,13,193,150,41,13,193,157,41,13,193,164,41,13,193,171,41,13,193,178,41,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,173,47,13,193,180,47,13,193,187,47,13,193,194,47,13,193,201,47,13,193,208,47,13,193,215,47,13,193,222,47,13,193,229,47,13,193,236,47,13,193,243,47,13,193,250,47,13,193,3,48,13,255,255,255,255,255,255,255,255,255,255,255,255,193,10,48,13,193,17,48,13,193,24,48,13,193,31,48,13,193,38,48,13,193,45,48,13,193,52,48,13,193,59,48,13,193,66,48,13,193,73,48,13,193,80,48,13,193,87,48,13,193,94,48,13,255,255,255,255,255,255,255,255,255,255,255,255,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,12,54,13,193,19,54,13,193,26,54,13,193,33,54,13,193,40,54,13,193,47,54,13,193,54,54,13,193,61,54,13,193,68,54,13,193,75,54,13,193,82,54,13,193,89,54,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,96,54,13,193,103,54,13,193,110,54,13,193,117,54,13,193,124,54,13,193,131,54,13,193,138,54,13,193,145,54,13,193,152,54,13,193,159,54,13,193,166,54,13,193,173,54,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,64,56,13,193,71,56,13,193,78,56,13,193,85,56,13,193,92,56,13,193,99,56,13,193,106,56,13,193,113,56,13,193,120,56,13,193,127,56,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,255,255,255,255,255,255,255,255,193,116,58,13,193,123,58,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,100,73,13,193,107,73,13,193,114,73,13,193,121,73,13,193,128,73,13,193,135,73,13,193,142,73,13,193,149,73,13,193,156,73,13,193,163,73,13,193,170,73,13,193,177,73,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,22,122,16,5,30,122,16,5,32,122,16,5,46,122,16,5,52,122,16,5,58,122,16,5,60,122,16,5,62,122,16,5,64,122,16,5,66,122,16,5,72,122,16,5,84,122,16,5,86,122,16,5,88,122,16,5,90,122,16,5,92,122,198,161,170,0,198,193,170,0,198,193,171,0,198,225,171,0,32,5,95,121,32,5,97,121,32,5,99,121,32,5,147,121,32,5,149,121,32,5,155,121,32,5,159,121,32,5,161,121,32,5,165,121,32,5,169,121,32,5,175,121,255,255,255,255,193,37,78,13,193,44,78,13,198,97,172,0,198,225,175,0,198,1,173,0,198,225,183,0,198,97,173,0,198,65,174,0,198,161,173,0,198,1,202,0,198,1,175,0,198,193,173,0,198,161,172,0,198,129,185,0,198,33,184,0,198,161,176,0,30,5,6,121,30,5,10,121,30,5,12,121,30,5,16,121,30,5,18,121,30,5,20,121,30,5,24,121,30,5,28,121,30,5,30,121,30,5,34,121,30,5,36,121,30,5,38,121,30,5,40,121,30,5,42,121,197,130,174,2,197,194,174,2,197,2,175,2,197,66,175,2,197,130,175,2,197,194,175,2,197,2,176,2,197,66,176,2,197,194,176,2,197,130,177,2,197,98,178,2,197,162,178,2,197,226,178,2,197,34,179,2,197,197,177,2,197,4,177,2,197,130,176,2,193,51,78,13,193,72,79,117,193,128,79,117,193,198,79,117,193,98,80,117,193,19,81,117,193,177,89,117,5,5,96,13,193,254,79,117,193,238,80,117,193,58,79,117,193,79,79,117,193,163,79,117,193,212,79,117,193,56,80,117,193,77,80,117,193,105,80,117,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,58,85,117,193,140,80,117,193,161,80,117,193,5,81,117,193,26,81,117,255,255,255,255,5,5,68,114,5,5,70,114,5,5,72,114,5,5,74,114,5,5,76,114,5,5,78,114,5,5,80,114,5,5,82,114,5,5,84,114,5,5,86,114,5,5,88,114,5,5,90,114,5,5,92,114,5,5,94,114,5,5,96,114,5,5,98,114,5,5,100,114,5,5,102,114,5,5,104,114,5,5,106,114,5,5,108,114,5,5,110,114,5,5,112,114,5,5,114,114,5,5,116,114,5,5,118,114,5,5,120,114,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,170,13,5,5,176,13,5,5,178,13,5,5,180,13,5,5,182,13,5,5,184,13,5,5,186,13,5,5,188,13,5,5,190,13,5,5,240,13,5,5,192,13,5,5,194,13,5,5,196,13,5,5,198,13,5,5,200,13,5,5,202,13,5,5,204,13,5,5,206,13,5,5,208,13,5,5,210,13,5,5,212,13,5,5,214,13,5,5,216,13,5,5,218,13,5,5,220,13,5,5,222,13,5,5,224,13,5,5,228,13,5,5,230,13,5,5,232,13,5,5,234,13,5,5,236,13,5,5,238,13,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,156,16,5,5,158,16,5,5,160,16,5,5,162,16,5,5,164,16,5,5,166,16,5,5,168,16,5,5,170,16,5,5,172,16,5,5,174,16,5,5,176,16,5,5,178,16,5,5,180,16,5,5,182,16,5,5,184,16,5,5,186,16,5,5,188,16,5,5,190,16,5,5,192,16,5,5,194,16,5,5,196,16,5,5,198,16,255,255,255,255,5,5,0,21,5,5,0,29,193,9,200,16,193,16,200,16,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,233,251,123,193,240,251,123,193,247,251,123,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,5,5,112,119,5,5,114,119,5,5,116,119,5,112,116,119,5,5,118,119,5,5,120,119,5,5,122,119,5,5,124,119,5,5,126,119,5,5,128,119,5,5,130,119,5,112,130,119,5,5,132,119,5,112,132,119,5,5,134,119,5,5,136,119,5,5,138,119,5,5,140,119,5,5,142,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,29,193,23,200,16,193,30,200,16,193,37,200,16,193,44,200,16,5,5,20,17,5,5,22,17,5,5,0,21,5,5,0,29,5,5,24,17,5,5,26,17,5,5,28,17,5,5,30,17,5,5,0,29,5,5,32,17,5,5,34,17,5,5,36,17,5,5,38,17,5,5,40,17,5,5,42,17,5,5,0,29,5,5,44,17,5,5,46,17,5,5,48,17,5,5,50,17,5,5,52,17,5,5,54,17,5,5,56,17,5,5,58,17,5,5,0,21,5,5,0,21,5,5,0,21,5,5,0,23,5,5,0,23,5,5,0,23,5,5,0,23,5,5,0,29,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,27,5,5,0,29,193,37,146,17,193,44,146,17,193,51,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,157,124,193,16,157,124,193,23,157,124,193,30,157,124,193,37,157,124,193,44,157,124,193,51,157,124,193,58,157,124,193,65,157,124,193,72,157,124,193,79,157,124,193,86,157,124,193,93,157,124,193,100,157,124,193,107,157,124,193,114,157,124,193,121,157,124,193,128,157,124,193,135,157,124,255,255,255,255,193,142,157,124,193,149,157,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,29,193,58,146,17,193,65,146,17,193,72,146,17,193,9,118,124,193,16,118,124,193,23,118,124,193,30,118,124,193,37,118,124,193,44,118,124,193,51,118,124,193,58,118,124,193,65,118,124,193,72,118,124,193,79,118,124,193,86,118,124,193,93,118,124,193,100,118,124,193,107,118,124,193,114,118,124,193,121,118,124,193,128,118,124,193,135,118,124,193,142,118,124,193,149,118,124,193,156,118,124,193,163,118,124,193,170,118,124,193,177,118,124,193,184,118,124,193,191,118,124,193,198,118,124,193,205,118,124,5,5,0,21,193,86,146,17,193,93,146,17,193,9,159,124,193,16,159,124,193,23,159,124,193,30,159,124,193,37,159,124,193,44,159,124,193,51,159,124,193,58,159,124,193,65,159,124,193,72,159,124,193,79,159,124,193,86,159,124,193,93,159,124,193,100,159,124,193,107,159,124,193,114,159,124,193,121,159,124,193,128,159,124,193,135,159,124,193,142,159,124,193,149,159,124,193,156,159,124,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,177,146,17,193,184,146,17,193,191,146,17,193,198,146,17,193,9,160,124,193,16,160,124,193,23,160,124,193,30,160,124,193,37,160,124,193,44,160,124,193,51,160,124,193,58,160,124,193,65,160,124,193,72,160,124,193,79,160,124,193,86,160,124,193,93,160,124,193,100,160,124,193,107,160,124,193,114,160,124,193,121,160,124,193,128,160,124,193,135,160,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,205,146,17,193,212,146,17,193,219,146,17,193,226,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,233,146,17,193,240,146,17,193,247,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,27,5,5,0,29,193,254,146,17,193,7,147,17,193,14,147,17,193,21,147,17,193,28,147,17,197,2,237,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,196,124,193,16,196,124,193,23,196,124,193,30,196,124,193,37,196,124,193,44,196,124,193,51,196,124,193,58,196,124,193,65,196,124,193,72,196,124,193,79,196,124,193,86,196,124,193,93,196,124,193,100,196,124,193,107,196,124,193,114,196,124,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,56,147,17,193,63,147,17,193,70,147,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,231,245,113,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,150,17,5,5,152,17,5,5,154,17,5,5,156,17,5,5,158,17,5,5,160,17,5,5,162,17,5,5,164,17,5,5,166,17,5,5,168,17,5,5,170,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,2,172,17,193,9,172,17,193,16,172,17,193,23,172,17,193,30,172,17,193,37,172,17,193,44,172,17,193,51,172,17,193,58,172,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,172,123,193,100,172,17,193,107,172,17,255,255,255,255,193,105,241,123,193,112,241,123,193,119,241,123,193,126,241,123,193,133,241,123,193,140,241,123,193,147,241,123,193,154,241,123,193,161,241,123,193,168,241,123,193,175,241,123,193,182,241,123,193,189,241,123,193,196,241,123,193,203,241,123,193,210,241,123,193,217,241,123,193,224,241,123,193,231,241,123,193,238,241,123,193,245,241,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,252,241,123,193,5,242,123,193,12,242,123,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,174,17,5,5,176,17,5,5,178,17,5,5,180,17,5,5,182,17,5,5,184,17,5,5,186,17,5,5,188,17,5,5,190,17,5,5,192,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,194,17,5,5,196,17,5,5,198,17,5,5,200,17,5,5,202,17,5,5,204,17,5,5,206,17,5,5,208,17,5,5,210,17,5,5,212,17,5,5,214,17,5,5,216,17,5,5,218,17,5,5,220,17,5,5,222,17,5,5,224,17,5,5,226,17,5,5,228,17,5,5,230,17,5,5,232,17,5,5,234,17,5,5,236,17,5,5,238,17,5,5,240,17,5,5,242,17,5,5,244,17,5,5,246,17,5,5,248,17,5,5,250,17,5,5,252,17,5,5,254,17,5,5,2,18,5,5,4,18,5,5,6,18,5,5,8,18,5,5,10,18,5,5,12,18,5,5,14,18,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,32,18,5,5,34,18,5,5,36,18,5,5,38,18,5,5,40,18,5,5,42,18,5,5,44,18,5,5,46,18,5,5,48,18,5,5,50,18,5,5,52,18,5,5,54,18,5,5,56,18,5,5,58,18,5,5,60,18,5,5,62,18,5,5,64,18,5,5,66,18,5,5,68,18,5,5,70,18,5,5,72,18,5,5,74,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,193,2,118,18,193,9,118,18,193,16,118,18,193,23,118,18,193,30,118,18,193,37,118,18,193,44,118,18,255,255,255,255,255,255,255,255,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,193,56,119,18,193,63,119,18,193,70,119,18,193,77,119,18,193,84,119,18,193,91,119,18,193,98,119,18,193,105,119,18,193,112,119,18,193,119,119,18,5,5,36,125,5,5,38,125,5,5,40,125,5,5,42,125,5,5,44,125,5,5,46,125,5,5,48,125,5,5,50,125,5,5,52,125,5,5,54,125,5,5,56,125,5,5,58,125,5,5,60,125,5,5,62,125,5,5,64,125,5,5,66,125,5,112,66,125,5,5,68,125,5,5,70,125,5,5,72,125,5,5,74,125,5,5,76,125,5,5,78,125,5,5,80,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,126,119,18,193,49,119,18,193,2,82,125,193,9,82,125,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,23,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,29,193,133,119,18,193,140,119,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,27,5,5,0,27,5,5,0,27,5,5,0,31,5,5,0,33,5,5,0,33,5,5,0,33,5,5,0,35,5,5,0,35,5,5,0,37,5,5,0,37,5,5,0,37,5,5,0,37,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,27,5,5,0,29,5,5,0,29,5,5,0,23,5,5,0,25,5,5,0,21,5,5,0,23,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,121,18,5,5,123,18,5,5,125,18,5,5,127,18,5,5,129,18,5,5,131,18,5,5,133,18,5,5,135,18,5,5,137,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,21,5,5,0,29,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,20,111,5,5,24,111,5,5,132,111,5,5,134,111,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,5,5,112,111,5,5,114,111,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,65,13,118,5,5,15,118,193,2,17,118,193,9,17,118,193,16,17,118,193,23,17,118,193,30,17,118,193,37,17,118,193,44,17,118,193,51,17,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,0,21,255,255,255,255,255,255,255,255,255,255,255,255,197,2,154,2,197,67,154,2,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,100,243,113,193,16,243,113,193,30,243,113,193,51,243,113,193,107,243,113,193,114,243,113,193,121,243,113,193,128,243,113,193,135,243,113,193,142,243,113,193,149,243,113,193,156,243,113,193,2,243,113,193,72,243,113,193,2,239,113,193,93,243,113,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,32,5,233,113,193,37,243,113,193,58,243,113,193,107,239,113,32,5,237,113,32,5,241,113,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,193,79,6,117,193,86,6,117,193,93,6,117,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,32,5,42,120,32,5,63,120,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,193,165,0,198,225,165,0,198,1,166,0,198,33,166,0,198,65,166,0,198,97,166,0,198,129,166,0,198,161,166,0,198,193,166,0,198,225,166,0,198,1,167,0,198,33,167,0,198,65,167,0,198,97,167,0,198,129,167,0,198,161,167,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,193,247,96,117,193,254,96,117,193,7,97,117,193,21,97,117,193,28,97,117,193,35,97,117,193,42,97,117,193,49,97,117,193,56,97,117,193,63,97,117,193,70,97,117,193,77,97,117,193,84,97,117,201,32,23,2,201,32,24,2,193,119,97,117,193,126,97,117,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,28,5,0,74,25,5,0,76,25,5,0,78,25,5,0,80,25,5,0,82,25,5,0,84,28,5,0,86,25,5,0,88,25,5,0,90,25,5,0,92,31,5,0,19,197,2,72,0,197,162,72,0,197,194,73,0,197,98,74,0,197,2,75,0,197,162,75,0,197,66,76,0,197,226,76,0,197,130,77,0,197,34,79,0,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,31,5,0,19,197,5,226,2,197,163,223,2,197,3,224,2,197,164,226,2,197,35,227,2,197,195,227,2,197,35,228,2,197,133,228,2,197,36,229,2,197,162,229,2,197,230,229,2,197,163,230,2,197,5,231,2,197,68,192,2,197,164,231,2,197,35,232,2,197,131,232,2,197,36,233,2,197,162,233,2,197,132,234,2,197,229,233,2,197,2,235,2,197,70,235,2,197,3,193,2,198,130,136,0,198,194,138,0,198,226,139,0,198,162,140,0,198,98,141,0,198,34,142,0,198,226,142,0,198,162,143,0,5,5,170,124,32,5,170,124,5,5,172,124,32,5,172,124,5,5,174,124,5,5,176,124,32,5,176,124,193,2,178,124,193,9,178,124,193,16,178,124,193,23,178,124,193,30,178,124,193,37,178,124,193,44,178,124,5,5,180,124,32,5,180,124,5,112,180,124,5,5,182,124,5,5,184,124,5,112,184,124,5,5,186,124,5,5,188,124,32,5,188,124,5,112,188,124,5,5,190,124,5,5,192,124,5,5,194,124,32,5,194,124,5,112,194,124,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,21,5,5,0,23,198,2,138,0,198,34,139,0,198,66,140,0,198,2,141,0,198,194,141,0,198,130,142,0,198,66,143,0,198,2,144,0,198,194,144,0,198,195,136,0,198,227,137,0,198,3,139,0,198,35,140,0,198,227,140,0,198,163,141,0,198,99,142,0,198,35,143,0,198,227,143,0,198,163,144,0,198,99,145,0,198,35,146,0,198,227,146,0,198,163,147,0,198,99,148,0,198,35,149,0,198,131,149,0,198,227,149,0,198,67,150,0,198,163,150,0,198,3,151,0,198,99,151,0,197,227,133,0,198,98,138,0,198,130,139,0,198,194,151,0,198,2,152,0,198,66,152,0,198,130,152,0,198,194,152,0,198,2,153,0,198,66,153,0,198,35,137,0,198,67,138,0,198,99,139,0,197,162,136,0,197,99,130,0,197,194,130,0,197,163,152,0,44,5,6,122,44,5,8,122,44,5,10,122,44,5,14,122,44,5,16,122,40,5,18,122,38,5,20,122,40,5,22,122,40,5,24,122,32,5,26,122,38,5,28,122,40,5,30,122,40,5,32,122,38,5,34,122,38,5,36,122,38,5,38,122,198,98,144,0,198,34,145,0,198,131,137,0,198,163,138,0,198,195,139,0,198,131,140,0,198,67,141,0,198,3,142,0,198,195,142,0,198,131,143,0,198,67,144,0,198,3,145,0,198,195,145,0,198,131,146,0,198,67,147,0,198,3,148,0,198,195,148,0,197,227,137,0,197,130,119,0,197,98,111,0,197,99,113,0,197,66,180,0,197,130,181,0,197,194,120,0,197,3,121,0,197,99,121,0,197,194,141,0,198,2,189,0,198,162,194,0,198,66,185,0,198,66,194,0,198,228,195,0,184,5,0,74,180,5,0,76,180,5,0,78,180,5,0,80,177,5,0,82,180,5,0,84,184,5,0,86,180,5,0,88,177,5,0,90,177,5,0,92,180,5,0,72,197,66,139,0,197,66,181,0,197,162,190,0,197,226,107,0,197,34,210,0,197,66,120,0,197,98,117,0,197,4,119,0,197,228,132,0,197,130,139,0,197,227,160,0,197,130,161,0,197,130,179,0,197,195,191,0,197,195,205,0,197,34,209,0,197,66,87,0,197,199,82,0,197,130,82,0,197,34,90,0,197,162,94,0,198,193,219,0,198,65,177,0,198,129,178,0,198,161,196,0,198,65,173,0,198,33,174,0,198,129,173,0,198,65,188,0,198,193,182,0,198,161,180,0,198,129,186,0,198,65,186,0,198,65,203,0,198,33,177,0,198,193,213,0,198,33,181,0,198,1,185,0,197,66,86,0,197,130,86,0,197,194,86,0,197,2,87,0,197,34,88,0,197,98,88,0,197,34,81,0,197,226,85,0,197,162,88,0,197,226,88,0,197,34,89,0,197,98,89,0,197,162,89,0,197,226,89,0,197,194,91,0,165,5,0,42,165,5,0,44,165,5,0,46,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,165,5,0,56,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,255,255,255,255,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,255,255,255,255,165,5,0,46,165,5,0,48,255,255,255,255,255,255,255,255,165,5,0,54,255,255,255,255,255,255,255,255,165,5,0,60,165,5,0,62,255,255,255,255,255,255,255,255,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,255,255,255,255,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,255,255,255,255,22,5,0,52,255,255,255,255,22,5,0,56,22,5,0,58,22,5,0,60,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,165,5,0,44,255,255,255,255,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,255,255,255,255,255,255,255,255,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,255,255,255,255,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,255,255,255,255,22,5,0,42,22,5,0,44,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,255,255,255,255,165,5,0,70,255,255,255,255,255,255,255,255,255,255,255,255,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,255,255,255,255,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,165,5,0,44,165,5,0,46,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,165,5,0,56,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,168,5,0,62,168,5,0,64,168,5,0,66,168,5,0,68,168,5,0,70,168,5,0,72,176,5,0,74,168,5,0,76,168,5,0,78,168,5,0,80,168,5,0,82,168,5,0,84,176,5,0,86,168,5,0,88,168,5,0,90,168,5,0,92,25,5,0,42,25,5,0,44,25,5,0,46,25,5,0,48,25,5,0,50,25,5,0,52,25,5,0,54,25,5,0,56,25,5,0,58,25,5,0,60,25,5,0,62,25,5,0,64,25,5,0,66,25,5,0,68,25,5,0,70,25,5,0,72,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,255,255,255,255,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,165,5,0,44,165,5,0,46,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,165,5,0,56,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,184,5,0,74,180,5,0,76,180,5,0,78,180,5,0,80,177,5,0,82,180,5,0,84,184,5,0,86,180,5,0,88,177,5,0,90,177,5,0,92,197,66,138,0,197,34,159,0,197,226,190,0,197,34,192,0,197,163,182,0,197,34,210,0,168,5,0,42,168,5,0,44,168,5,0,46,168,5,0,48,168,5,0,50,168,5,0,52,168,5,0,54,168,5,0,56,168,5,0,58,168,5,0,60,168,5,0,62,168,5,0,64,168,5,0,66,168,5,0,68,168,5,0,70,168,5,0,72,180,5,0,80,177,5,0,82,184,5,0,86,43,5,0,42,46,5,20,43,44,5,22,43,32,5,16,43,43,5,0,44,43,5,0,48,43,5,0,50,38,5,24,51,44,5,28,51,32,5,40,51,43,5,0,54,32,5,14,59,43,5,0,62,43,5,0,66,44,5,30,69,43,5,0,70,46,5,30,71,32,5,44,71,32,5,46,71,43,5,0,72,43,5,0,80,43,5,0,82,32,5,10,83,46,5,40,83,43,5,0,84,32,5,102,93,44,5,8,96,40,5,10,96,49,5,14,96,5,5,6,85,5,5,6,87,5,5,6,93,5,5,28,93,5,5,100,93,5,5,102,93,5,5,12,96,5,5,40,96,5,5,52,96,5,5,62,96,5,5,84,96,5,5,100,97,180,5,0,42,197,162,108,0,177,5,0,44,5,5,10,45,177,5,0,48,180,5,0,50,174,5,20,51,177,5,0,54,180,5,0,56,180,5,0,58,177,5,0,60,180,5,0,62,180,5,0,64,180,5,0,66,180,5,0,68,5,5,8,69,180,5,0,70,174,5,58,71,180,5,0,72,180,5,0,76,196,196,156,42,196,196,5,42,196,182,156,42,196,182,5,42,197,131,98,0,197,35,98,0,197,67,99,0,197,227,98,0,197,195,100,0,197,99,100,0,197,3,100,0,197,163,99,0,197,3,105,0,197,163,104,0,197,131,95,0,197,35,95,0,197,67,96,0,197,227,95,0,197,195,97,0,197,99,97,0,197,3,97,0,197,163,96,0,197,67,104,0,197,227,103,0,196,196,156,50,196,196,5,50,196,182,156,50,196,182,5,50,196,154,156,50,196,154,5,50,197,195,124,0,197,99,124,0,196,200,156,42,196,200,5,42,196,156,156,44,196,156,5,44,196,196,156,44,196,196,5,44,196,210,156,44,196,210,5,44,197,163,114,0,197,67,114,0,196,156,156,48,196,156,5,48,196,196,156,48,196,196,5,48,196,210,156,48,196,210,5,48,196,160,156,48,196,160,5,48,196,204,156,48,196,204,5,48,197,67,129,0,197,227,128,0,197,131,128,0,197,35,128,0,196,204,156,50,196,204,5,50,196,208,156,50,196,208,5,50,197,195,127,0,197,99,127,0,196,156,156,52,196,156,5,52,197,194,147,0,197,226,159,0,197,100,105,0,197,194,113,0,197,162,116,0,197,34,117,0,197,196,115,0,197,163,118,0,197,2,120,0,197,66,135,0,197,194,135,0,197,162,137,0,197,130,141,0,197,226,144,0,197,162,145,0,197,2,147,0,197,130,150,0,197,194,150,0,197,3,151,0,197,2,153,0,197,162,154,0,197,67,156,0,197,163,157,0,197,2,182,0,197,132,180,0,197,67,182,0,197,2,183,0,197,194,186,0,197,98,193,0,197,226,209,0,197,35,206,0,197,3,107,0,196,138,160,86,196,138,5,86,196,136,160,86,196,136,5,86,196,150,160,86,196,150,5,86,196,156,160,86,196,156,5,86,196,196,160,86,196,196,5,86,196,156,156,88,196,156,5,88,196,150,156,88,196,150,5,88,196,156,156,90,196,156,5,90,196,142,156,92,196,142,5,92,196,196,156,92,196,196,5,92,196,210,156,92,196,210,5,92,196,210,5,56,196,150,5,80,196,146,5,86,196,146,5,90,197,34,113,0,197,98,190,0,5,5,18,79,5,5,20,79,197,162,192,0,5,5,28,49,5,5,6,43,5,5,14,43,5,5,16,43,5,5,12,45,5,5,6,47,5,5,6,49,5,5,8,49,5,5,6,51,5,5,40,51,5,5,14,59,5,5,8,61,5,5,6,63,5,5,10,65,5,5,6,67,5,5,10,69,5,5,6,71,5,5,32,71,5,5,8,71,5,5,34,71,5,5,26,71,5,5,14,71,5,5,60,71,5,5,44,71,5,5,46,71,5,5,6,73,5,5,14,77,5,5,22,77,5,5,6,81,5,5,6,83,5,5,10,83,5,5,12,83,5,5,44,83,160,5,16,65,5,5,16,65,160,5,18,65,160,5,8,73,160,5,34,77,5,5,8,43,5,5,10,81,160,5,14,57,5,5,14,57,160,5,12,63,5,5,12,63,160,5,22,93,5,5,22,93,158,5,22,43,160,5,12,67,160,5,20,43,160,5,28,43,5,5,14,85,160,5,10,87,5,5,10,87,5,5,16,85,160,5,16,57,5,5,16,57,5,5,26,73,5,5,18,51,5,5,30,77,5,5,48,71,5,5,22,51,46,5,0,60,180,5,0,84,160,5,16,79,160,5,20,93,5,5,18,45,5,5,14,49,5,5,14,53,5,5,14,55,5,5,8,63,5,5,28,65,5,5,10,67,5,5,20,69,5,5,14,73,5,5,26,77,5,5,12,79,5,5,26,79,5,5,10,85,5,5,6,89,5,5,12,93,5,5,10,43,5,5,26,43,5,5,20,49,5,5,14,51,5,5,30,51,5,5,38,51,5,5,26,51,5,5,20,59,5,5,38,71,5,5,32,79,5,5,28,83,5,5,32,93,46,5,28,43,43,5,0,46,46,5,16,47,46,112,0,48,46,5,36,51,197,162,133,0,197,98,133,0,197,66,143,0,197,2,143,0,197,98,160,0,197,34,160,0,197,226,184,0,197,162,184,0,197,98,189,0,197,34,189,0,160,5,12,57,160,5,36,51,160,5,6,55,160,5,24,65,160,5,8,59,5,5,6,75,160,5,20,63,160,5,24,81,160,5,12,61,160,5,16,89,174,5,24,45,5,5,24,45,160,5,56,71,5,5,56,71,160,5,24,83,5,5,24,83,160,5,12,43,5,5,12,43,160,5,22,59,5,5,22,59,160,5,32,83,5,5,32,83,193,33,152,103,193,40,152,103,193,47,152,103,193,54,152,103,193,61,152,103,193,68,152,103,193,75,152,103,255,255,255,255,193,201,152,103,193,208,152,103,193,215,152,103,193,222,152,103,193,229,152,103,193,236,152,103,193,243,152,103,255,255,255,255,5,5,24,43,5,5,18,43,5,5,8,51,5,5,10,51,5,5,16,51,5,5,8,53,5,5,8,55,5,5,26,65,5,5,20,65,5,5,22,65,5,5,14,67,5,5,26,69,5,5,32,69,5,5,10,71,5,5,28,71,5,5,36,71,44,5,78,96,40,5,80,96,46,5,0,58,46,5,0,76,46,5,0,82,46,5,0,84,51,5,8,96,48,5,10,96,48,5,60,96,51,5,78,96,48,5,80,96,5,5,14,83,5,5,14,45,5,5,12,49,5,5,12,53,5,5,8,67,5,5,12,69,5,5,12,73,5,5,18,77,5,5,40,77,5,5,10,79,5,5,12,81,5,5,10,93,5,5,20,55,44,5,120,97,5,112,0,54,197,66,194,0,5,5,18,59,5,5,26,59,5,5,8,73,5,5,26,83,5,5,50,83,162,5,0,58,197,2,140,0,197,163,140,0,197,66,142,0,162,5,0,84,197,194,206,0,197,99,207,0,197,68,208,0,197,194,142,0,162,5,0,88,197,226,210,0,197,131,211,0,162,5,0,64,162,5,0,46,162,5,0,48,162,5,0,66,19,5,0,58,197,194,139,0,197,67,140,0,197,2,142,0,19,5,0,84,197,130,206,0,197,3,207,0,197,196,207,0,197,130,142,0,19,5,0,88,197,162,210,0,197,35,211,0,19,5,0,64,19,5,0,46,19,5,0,48,19,5,0,66,197,2,181,0,197,162,160,0,197,194,4,1,197,98,154,0,197,130,143,0,197,194,143,0,197,226,154,0,197,66,134,0,197,67,116,0,197,4,144,0,197,194,181,0,197,66,161,0,197,2,5,1,197,66,5,1,197,162,155,0,197,2,116,0,197,162,134,0,197,131,144,0,197,227,155,0,197,131,134,0,197,131,194,0,197,130,5,1,197,162,150,0,197,130,120,0,197,34,145,0,197,98,132,0,197,130,162,0,197,194,5,1,197,162,156,0,197,162,117,0,197,98,145,0,197,227,156,0,197,227,117,0,197,2,118,0,197,227,145,0,197,67,157,0,197,67,118,0,197,98,118,0,197,67,146,0,197,131,153,0,197,228,153,0,197,2,135,0,197,163,146,0,197,3,158,0,197,227,134,0,197,227,185,0,197,69,186,0,197,230,186,0,197,66,183,0,197,2,163,0,197,2,6,1,197,162,158,0,197,226,183,0,197,66,163,0,197,66,6,1,197,226,158,0,197,66,147,0,197,34,159,0,197,34,184,0,197,130,163,0,197,130,6,1,197,98,159,0,197,130,147,0,197,162,159,0,255,255,255,255,255,255,255,255,160,5,8,87,5,5,8,87,160,5,12,47,158,5,14,79,160,5,12,93,160,5,10,49,5,5,10,49,160,5,8,79,5,5,8,79,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,162,209,0,197,98,209,0,160,5,24,93,5,5,24,93,160,5,40,93,5,5,40,93,160,5,42,93,5,5,42,93,160,5,46,93,5,5,46,93,160,5,54,93,5,5,54,93,160,5,56,93,5,5,56,93,158,5,58,93,5,5,58,93,44,5,58,93,5,5,26,49,5,5,36,65,5,5,20,67,5,5,28,69,5,5,58,77,5,5,60,77,5,5,22,81,5,5,60,93,160,120,0,48,5,120,0,48,160,112,0,52,5,112,0,52,160,112,0,54,160,5,22,55,5,5,22,55,197,131,125,0,197,35,125,0,197,3,127,0,197,163,126,0,197,67,126,0,197,227,125,0,197,3,130,0,197,163,129,0,196,182,156,58,196,182,5,58,196,196,156,58,196,196,5,58,196,196,156,70,196,196,5,70,196,182,156,70,196,182,5,70,197,35,164,0,197,195,163,0,197,227,164,0,197,131,164,0,197,99,166,0,197,3,166,0,197,163,165,0,197,67,165,0,197,99,178,0,197,3,178,0,197,163,174,0,197,67,174,0,197,99,175,0,197,3,175,0,197,227,176,0,197,131,176,0,43,5,0,52,32,5,14,61,46,5,6,55,46,5,34,83,46,5,16,59,46,5,24,59,46,5,8,59,32,5,18,59,46,5,12,61,32,5,30,65,32,5,28,65,46,5,6,65,46,5,12,67,32,5,46,83,46,5,14,69,32,5,22,69,46,5,6,69,46,5,50,71,32,5,24,73,44,5,14,79,44,5,22,79,32,5,14,81,46,5,20,83,46,5,48,83,32,5,6,83,46,5,12,85,46,5,20,85,43,5,0,92,46,5,16,93,46,5,18,93,44,5,26,93,51,5,30,96,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,18,57,5,5,18,57,5,5,12,59,197,130,135,0,197,66,179,0,5,5,42,83,5,5,20,53,5,5,22,73,5,5,16,67,5,5,10,59,5,5,18,67,196,164,156,54,196,164,5,54,196,156,156,56,196,156,5,56,196,196,156,56,196,196,5,56,196,150,156,56,196,150,5,56,196,160,156,56,196,160,5,56,196,206,156,56,196,206,5,56,196,208,156,58,196,208,5,58,197,227,138,0,197,131,138,0,196,136,156,62,196,136,5,62,196,196,156,62,196,196,5,62,196,210,156,62,196,210,5,62,196,196,156,64,196,196,5,64,197,99,148,0,197,3,148,0,196,210,156,64,196,210,5,64,196,204,156,64,196,204,5,64,196,136,156,66,196,136,5,66,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,32,5,6,59,32,5,6,61,255,255,255,255,255,255,255,255,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,160,5,14,63,5,5,14,63,160,5,16,63,5,5,16,63,160,5,18,63,5,5,18,63,160,5,8,65,5,5,8,65,160,5,12,65,5,5,12,65,160,5,52,71,5,5,52,71,160,5,42,71,5,5,42,71,197,2,180,0,197,194,179,0,160,5,10,73,5,5,10,73,160,5,18,73,5,5,18,73,160,5,20,73,5,5,20,73,160,5,8,75,5,5,8,75,160,5,10,75,5,5,10,75,174,5,12,77,5,5,12,77,160,5,62,77,5,5,62,77,160,5,8,85,5,5,8,85,197,35,176,0,197,195,175,0,197,163,177,0,197,67,177,0,196,196,156,82,196,196,5,82,196,182,156,82,196,182,5,82,197,3,202,0,197,163,201,0,197,195,202,0,197,99,202,0,197,67,204,0,197,227,203,0,197,131,203,0,197,35,203,0,197,3,205,0,197,163,204,0,196,138,156,90,196,138,5,90,196,196,156,90,196,196,5,90,196,182,156,90,196,182,5,90,196,154,156,90,196,154,5,90,197,66,150,0,197,2,150,0,160,5,18,85,5,5,18,85,160,5,12,91,5,5,12,91,196,156,156,66,196,156,5,66,196,196,156,66,196,196,5,66,196,156,156,68,196,156,5,68,196,196,156,68,196,196,5,68,196,210,156,68,196,210,5,68,196,204,156,68,196,204,5,68,197,99,168,0,197,3,168,0,197,35,169,0,197,195,168,0,197,163,173,0,197,67,173,0,197,227,172,0,197,131,172,0,196,136,156,72,196,136,5,72,196,156,156,72,196,156,5,72,196,156,156,76,196,156,5,76,196,196,156,76,196,196,5,76,197,131,185,0,197,35,185,0,196,210,156,76,196,210,5,76,196,156,156,78,196,156,5,78,196,196,156,78,196,196,5,78,197,3,188,0,197,163,187,0,197,195,188,0,197,99,188,0,197,3,190,0,197,163,189,0,196,156,156,80,196,156,5,80,196,196,156,80,196,196,5,80,196,210,156,80,196,210,5,80,196,204,156,80,196,204,5,80,196,198,156,82,196,198,5,82,196,208,156,82,196,208,5,82,196,204,156,82,196,204,5,82,197,67,200,0,197,227,199,0,197,3,201,0,197,163,200,0,196,154,156,84,196,154,5,84,196,196,156,84,196,196,5,84,32,5,12,87,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,226,212,0,197,98,219,0,197,35,215,0,197,163,221,0,197,99,213,0,197,227,219,0,197,227,216,0,197,99,223,0,197,34,213,0,197,162,219,0,197,131,215,0,197,3,222,0,197,195,213,0,197,67,220,0,197,67,217,0,197,195,223,0,197,194,229,0,197,194,231,0,197,3,231,0,197,3,233,0,197,67,230,0,197,67,232,0,255,255,255,255,255,255,255,255,197,2,230,0,197,2,232,0,197,99,231,0,197,99,233,0,197,163,230,0,197,163,232,0,255,255,255,255,255,255,255,255,197,163,218,0,197,35,225,0,197,228,215,0,197,100,222,0,197,36,214,0,197,164,220,0,197,164,217,0,197,36,224,0,197,3,219,0,197,131,225,0,197,100,216,0,197,228,222,0,197,164,214,0,197,36,221,0,197,36,218,0,197,164,224,0,197,131,240,0,197,3,247,0,197,196,237,0,197,68,244,0,197,4,236,0,197,132,242,0,197,132,239,0,197,4,246,0,197,227,240,0,197,99,247,0,197,68,238,0,197,196,244,0,197,132,236,0,197,4,243,0,197,4,240,0,197,132,246,0,197,2,21,1,197,130,27,1,197,67,23,1,197,195,29,1,197,131,21,1,197,3,28,1,197,3,25,1,197,131,31,1,197,66,21,1,197,194,27,1,197,163,23,1,197,35,30,1,197,227,21,1,197,99,28,1,197,99,25,1,197,227,31,1,197,194,226,0,197,226,225,0,197,66,234,0,197,194,233,0,197,162,248,0,197,194,247,0,197,162,0,1,197,34,0,1,197,66,11,1,197,194,10,1,197,98,17,1,197,162,16,1,197,226,34,1,197,2,34,1,255,255,255,255,255,255,255,255,197,194,234,0,197,66,241,0,197,3,237,0,197,131,243,0,197,67,235,0,197,195,241,0,197,195,238,0,197,67,245,0,197,2,235,0,197,130,241,0,197,99,237,0,197,227,243,0,197,163,235,0,197,35,242,0,197,35,239,0,197,163,245,0,197,162,250,0,197,98,253,0,197,227,251,0,197,163,254,0,197,35,251,0,197,227,253,0,197,163,252,0,197,99,255,0,197,226,250,0,197,162,253,0,197,67,252,0,197,3,255,0,197,131,251,0,197,67,254,0,197,3,253,0,197,195,255,0,197,194,6,1,197,194,8,1,197,3,8,1,197,3,10,1,197,67,7,1,197,67,9,1,255,255,255,255,255,255,255,255,197,2,7,1,197,2,9,1,197,99,8,1,197,99,10,1,197,163,7,1,197,163,9,1,255,255,255,255,255,255,255,255,197,130,12,1,197,226,13,1,197,35,13,1,197,35,15,1,197,195,12,1,197,99,14,1,197,131,13,1,197,227,15,1,255,255,255,255,197,34,14,1,255,255,255,255,197,131,15,1,255,255,255,255,197,195,14,1,255,255,255,255,197,67,16,1,174,5,98,96,5,5,98,96,160,5,100,96,5,5,100,96,160,5,102,96,5,5,102,96,160,5,104,96,5,5,104,96,160,5,106,96,5,5,106,96,160,5,110,96,5,5,110,96,160,5,112,96,5,5,112,96,160,5,114,96,5,5,114,96,160,5,116,96,5,5,116,96,174,5,118,96,5,5,118,96,174,5,120,96,5,5,120,96,160,5,124,96,5,5,124,96,160,5,126,96,5,5,126,96,160,5,128,96,5,5,128,96,160,5,134,96,5,5,134,96,160,5,136,96,5,5,136,96,160,5,138,96,5,5,138,96,160,5,140,96,5,5,140,96,160,5,142,96,5,5,142,96,160,5,144,96,5,5,144,96,160,5,146,96,5,5,146,96,160,5,148,96,5,5,148,96,160,5,150,96,5,5,150,96,160,5,152,96,5,5,152,96,160,5,154,96,5,5,154,96,160,5,208,96,5,5,208,96,160,5,210,96,5,5,210,96,160,5,108,96,5,5,108,96,160,5,122,96,5,5,122,96,160,5,130,96,5,5,130,96,160,5,132,96,5,5,132,96,160,5,156,96,5,5,156,96,160,5,158,96,5,5,158,96,160,5,164,96,5,5,164,96,160,5,166,96,5,5,166,96,160,5,168,96,5,5,168,96,160,5,176,96,5,5,176,96,160,5,180,96,5,5,180,96,160,5,182,96,5,5,182,96,160,5,184,96,5,5,184,96,160,5,186,96,5,5,186,96,160,5,188,96,5,5,188,96,160,5,190,96,5,5,190,96,160,5,196,96,5,5,196,96,160,5,200,96,5,5,200,96,160,5,202,96,5,5,202,96,160,5,204,96,5,5,204,96,160,5,212,96,5,5,212,96,32,5,12,97,32,5,14,97,32,5,16,97,32,5,26,97,32,5,44,97,32,5,50,97,32,5,84,97,32,5,98,97,32,5,114,97,16,5,120,97,16,5,138,97,32,5,142,97,32,5,150,97,32,5,156,97,32,5,162,97,32,5,182,97,32,5,192,97,32,5,200,97,32,5,218,97,32,5,222,97,198,193,159,0,197,2,46,1,32,5,6,97,32,5,40,97,32,5,82,97,198,225,154,0,198,33,157,0,32,5,240,97,198,161,157,0,198,65,158,0,198,161,158,0,198,65,159,0,32,5,14,97,32,5,26,97,16,5,138,97,32,5,156,97,32,5,162,97,32,5,162,97,16,5,226,97,198,33,157,0,198,225,154,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,6,99,160,5,10,99,160,5,14,99,160,5,18,99,160,5,22,99,160,5,26,99,160,5,30,99,160,5,38,99,160,5,42,99,160,5,46,99,160,5,50,99,160,5,54,99,160,5,58,99,160,5,66,99,160,5,70,99,160,5,74,99,160,5,30,97,5,5,30,97,160,5,68,97,5,5,68,97,198,161,153,0,193,9,46,97,160,5,210,97,5,5,210,97,160,5,64,97,5,5,64,97,160,5,168,97,5,5,168,97,198,161,154,0,193,2,164,97,198,161,156,0,193,9,194,97,160,5,198,97,5,5,198,97,198,225,156,0,193,9,202,97,198,161,155,0,193,9,190,97,160,5,220,97,5,5,220,97,172,5,138,97,16,5,138,97,172,5,138,97,16,5,138,97,44,5,226,97,44,5,232,97,32,5,180,97,198,1,158,0,160,5,52,97,5,5,52,97,198,225,153,0,193,9,56,97,160,5,60,97,5,5,60,97,160,5,76,97,5,5,76,97,174,5,82,97,5,5,82,97,198,1,155,0,193,2,178,97,198,33,156,0,193,30,190,97,198,1,157,0,193,2,224,97,160,5,228,97,5,5,228,97,198,97,157,0,193,9,236,97,198,129,157,0,193,2,242,97,198,193,157,0,193,9,242,97,198,129,158,0,193,23,246,97,198,225,158,0,193,37,246,97,198,33,159,0,193,51,246,97,198,97,160,0,193,93,246,97,174,5,70,98,174,5,72,98,160,5,74,98,174,5,76,98,174,5,78,98,160,5,80,98,174,5,82,98,174,5,84,98,174,5,86,98,174,5,88,98,174,5,90,98,160,5,92,98,160,5,94,98,160,5,96,98,160,5,98,98,255,255,255,255,5,5,6,98,5,5,8,98,5,5,10,98,5,5,12,98,5,5,14,98,5,5,16,98,5,5,18,98,5,5,20,98,5,5,22,98,5,5,24,98,5,5,26,98,5,5,28,98,5,5,30,98,5,5,32,98,5,5,34,98,5,5,36,98,32,5,6,98,32,5,8,98,32,5,10,98,32,5,12,98,32,5,14,98,32,5,16,98,32,5,18,98,255,255,255,255,32,5,22,98,32,5,24,98,32,5,26,98,32,5,28,98,32,5,30,98,32,5,32,98,32,5,34,98,32,5,36,98,32,5,38,98,32,5,40,98,32,5,42,98,32,5,44,98,32,5,46,98,32,5,48,98,32,5,50,98,32,5,52,98,32,5,54,98,255,255,255,255,255,255,255,255,32,5,60,98,32,5,62,98,32,5,64,98,32,5,66,98,32,5,68,98,174,5,6,98,174,5,8,98,174,5,10,98,174,5,12,98,174,5,14,98,174,5,16,98,174,5,18,98,160,5,20,98,174,5,22,98,174,5,24,98,174,5,26,98,174,5,28,98,174,5,30,98,174,5,32,98,174,5,34,98,174,5,36,98,174,5,38,98,174,5,40,98,174,5,42,98,174,5,44,98,174,5,46,98,174,5,48,98,174,5,50,98,174,5,52,98,174,5,54,98,160,5,56,98,160,5,58,98,174,5,60,98,174,5,62,98,174,5,64,98,174,5,66,98,174,5,68,98,5,5,38,98,5,5,40,98,5,5,42,98,5,5,44,98,5,5,46,98,5,5,48,98,5,5,50,98,5,5,52,98,5,5,54,98,5,5,56,98,5,5,58,98,5,5,60,98,5,5,62,98,5,5,64,98,5,5,66,98,5,5,68,98,5,5,70,98,5,5,72,98,5,5,74,98,5,5,76,98,5,5,78,98,5,5,80,98,5,5,82,98,5,5,84,98,5,5,86,98,5,5,88,98,5,5,90,98,5,5,92,98,5,5,94,98,5,5,96,98,5,5,98,98,255,255,255,255,32,5,70,98,32,5,72,98,255,255,255,255,32,5,76,98,32,5,78,98,255,255,255,255,32,5,82,98,32,5,84,98,32,5,86,98,32,5,88,98,32,5,90,98,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,102,98,193,2,104,98,193,9,104,98,5,5,106,98,193,2,108,98,193,9,108,98,193,16,108,98,5,5,110,98,193,2,112,98,193,9,112,98,193,16,112,98,193,23,112,98,193,30,112,98,5,5,114,98,193,2,116,98,193,9,116,98,193,16,116,98,5,5,118,98,193,2,120,98,193,9,120,98,193,16,120,98,193,23,120,98,193,30,120,98,193,37,120,98,193,44,120,98,193,51,120,98,193,58,120,98,193,65,120,98,193,72,120,98,193,79,120,98,193,86,120,98,193,93,120,98,193,100,120,98,193,107,120,98,193,114,120,98,193,121,120,98,193,128,120,98,193,135,120,98,32,5,102,98,32,5,106,98,32,5,110,98,32,5,114,98,32,5,118,98,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,152,99,160,5,36,99,160,5,64,99,160,5,92,99,160,5,144,99,160,5,156,99,255,255,255,255,160,5,162,99,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,172,99,255,255,255,255,255,255,255,255,5,5,6,99,5,5,10,99,5,5,14,99,5,5,18,99,5,5,22,99,5,5,26,99,5,5,30,99,5,5,38,99,5,5,42,99,5,5,46,99,5,5,50,99,5,5,54,99,5,5,58,99,5,5,66,99,5,5,70,99,5,5,74,99,5,5,8,99,5,5,12,99,5,5,16,99,5,5,20,99,5,5,24,99,5,5,28,99,5,5,32,99,5,5,40,99,5,5,44,99,5,5,48,99,5,5,52,99,5,5,56,99,5,5,60,99,5,5,68,99,5,5,72,99,5,5,76,99,5,5,80,99,5,5,84,99,5,5,88,99,5,5,96,99,5,5,100,99,5,5,104,99,5,5,108,99,5,5,112,99,5,5,116,99,5,5,120,99,5,5,124,99,5,5,128,99,5,5,132,99,5,5,136,99,5,5,140,99,5,5,148,99,160,5,8,99,160,5,12,99,160,5,16,99,160,5,20,99,160,5,24,99,160,5,28,99,160,5,32,99,160,5,40,99,160,5,44,99,160,5,48,99,160,5,52,99,160,5,56,99,160,5,60,99,160,5,68,99,160,5,72,99,160,5,76,99,160,5,80,99,160,5,84,99,160,5,88,99,160,5,96,99,160,5,100,99,160,5,104,99,160,5,108,99,160,5,112,99,160,5,116,99,160,5,120,99,160,5,124,99,160,5,128,99,160,5,132,99,160,5,136,99,160,5,140,99,160,5,148,99,160,5,78,99,160,5,82,99,160,5,86,99,160,5,94,99,160,5,98,99,160,5,102,99,160,5,106,99,160,5,110,99,160,5,114,99,160,5,118,99,160,5,122,99,160,5,126,99,160,5,130,99,160,5,134,99,160,5,138,99,160,5,146,99,160,5,150,99,160,5,34,99,160,5,62,99,160,5,90,99,160,5,142,99,160,5,154,99,160,5,158,99,160,5,160,99,160,5,164,99,160,5,166,99,160,5,168,99,255,255,255,255,255,255,255,255,160,5,170,99,160,5,174,99,160,5,176,99,5,5,152,99,5,5,36,99,5,5,64,99,5,5,92,99,5,5,144,99,5,5,156,99,255,255,255,255,5,5,162,99,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,172,99,255,255,255,255,255,255,255,255,193,9,141,103,193,16,141,103,193,23,141,103,193,30,141,103,193,37,141,103,193,44,141,103,193,51,141,103,193,58,141,103,193,65,141,103,193,72,141,103,193,79,141,103,193,86,141,103,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,197,34,58,1,197,98,58,1,255,255,255,255,197,226,58,1,197,162,58,1,255,255,255,255,197,98,59,1,197,162,59,1,197,226,59,1,197,162,60,1,197,162,61,1,197,194,53,1,197,194,52,1,197,98,57,1,197,34,59,1,197,66,52,1,46,5,14,102,32,5,14,102,49,5,32,102,38,5,32,102,16,5,32,102,27,5,32,102,49,5,34,102,38,5,34,102,16,5,34,102,27,5,34,102,49,5,36,102,38,5,36,102,16,5,36,102,27,5,36,102,49,5,48,102,38,5,48,102,46,5,6,102,46,5,8,102,32,5,8,102,46,5,10,102,32,5,10,102,46,5,16,102,32,5,16,102,46,5,18,102,32,5,18,102,49,5,22,102,38,5,22,102,16,5,22,102,27,5,22,102,49,5,26,102,38,5,26,102,48,5,30,102,40,5,30,102,24,5,30,102,32,5,30,102,46,5,40,102,32,5,40,102,48,5,42,102,40,5,42,102,24,5,42,102,32,5,42,102,48,5,44,102,40,5,44,102,24,5,44,102,32,5,44,102,48,5,58,102,40,5,58,102,24,5,58,102,198,97,165,0,198,65,165,0,46,5,232,102,32,5,232,102,49,5,246,102,38,5,246,102,16,5,246,102,27,5,246,102,16,5,236,102,27,5,236,102,197,34,62,1,197,226,61,1,198,194,160,0,198,130,160,0,197,34,66,1,197,226,65,1,197,162,66,1,197,98,66,1,198,66,161,0,198,2,161,0,197,34,67,1,197,226,66,1,197,34,69,1,197,226,68,1,197,162,68,1,197,226,67,1,197,162,67,1,197,98,67,1,49,5,240,102,38,5,240,102,16,5,240,102,27,5,240,102,197,130,149,1,197,2,152,1,197,2,153,1,197,162,154,1,197,34,155,1,197,130,163,1,197,34,165,1,197,98,165,1,197,162,165,1,197,2,106,1,197,162,176,1,197,226,176,1,197,162,177,1,197,226,178,1,197,162,179,1,197,34,180,1,197,34,184,1,197,226,186,1,197,34,187,1,197,130,165,1,197,194,178,1,197,194,189,1,197,66,190,1,197,98,62,1,197,226,62,1,197,98,63,1,197,34,64,1,197,98,65,1,197,34,71,1,197,162,71,1,197,130,72,1,197,226,73,1,197,162,62,1,197,34,63,1,197,226,64,1,197,226,67,1,197,98,68,1,197,98,71,1,197,226,71,1,197,194,72,1,197,162,74,1,197,226,75,1,197,98,76,1,197,226,76,1,197,130,78,1,197,34,80,1,197,194,82,1,197,226,85,1,197,98,86,1,197,162,86,1,197,34,88,1,197,34,89,1,197,162,89,1,197,34,90,1,197,34,92,1,197,98,94,1,197,2,95,1,197,194,96,1,197,2,97,1,197,66,97,1,197,130,99,1,197,2,101,1,197,34,102,1,197,34,104,1,197,130,142,1,197,194,143,1,197,162,145,1,197,130,146,1,197,2,150,1,197,130,150,1,197,2,151,1,197,130,151,1,197,130,152,1,197,98,157,1,197,194,159,1,197,194,161,1,197,2,163,1,197,226,164,1,197,34,83,1,197,130,83,1,197,226,83,1,197,162,105,1,197,194,171,1,197,130,174,1,197,34,176,1,197,34,177,1,197,34,179,1,197,226,180,1,197,34,181,1,197,162,180,1,197,226,184,1,197,194,185,1,197,98,186,1,197,98,187,1,197,66,189,1,197,98,64,1,193,44,38,102,193,65,38,102,193,2,70,102,5,5,164,102,193,37,176,102,193,30,180,102,193,37,198,102,193,16,202,102,193,2,24,102,193,9,24,102,193,37,132,102,193,44,234,102,193,16,24,102,16,5,26,102,5,5,100,102,5,5,152,102,193,2,194,102,193,16,234,102,193,44,132,102,193,37,172,102,193,30,190,102,255,255,255,255,193,72,38,102,193,79,38,102,193,2,56,102,193,51,132,102,193,58,248,102,193,16,176,102,193,9,180,102,193,2,208,102,193,58,38,102,193,9,56,102,27,5,26,102,16,5,30,102,16,5,58,102,16,5,84,102,255,255,255,255,27,5,222,102,16,5,112,102,16,5,72,102,16,5,158,102,23,5,238,102,16,5,182,102,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,16,5,110,102,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,16,5,86,102,16,5,148,102,16,5,160,102,16,5,168,102,32,5,28,102,16,5,206,102,198,129,161,0,198,161,162,0,27,5,26,102,16,5,30,102,16,5,58,102,16,5,84,102,16,5,214,102,27,5,222,102,16,5,112,102,16,5,72,102,16,5,158,102,23,5,238,102,255,255,255,255,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,16,5,110,102,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,16,5,86,102,16,5,148,102,16,5,160,102,16,5,168,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,30,102,16,5,58,102,255,255,255,255,16,5,214,102,255,255,255,255,255,255,255,255,16,5,72,102,16,5,158,102,23,5,238,102,16,5,182,102,255,255,255,255,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,255,255,255,255,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,255,255,255,255,16,5,148,102,16,5,160,102,16,5,168,102,32,5,28,102,255,255,255,255,198,129,161,0,255,255,255,255,255,255,255,255,16,5,30,102,16,5,58,102,255,255,255,255,16,5,214,102,255,255,255,255,255,255,255,255,16,5,72,102,255,255,255,255,23,5,238,102,16,5,182,102,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,255,255,255,255,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,255,255,255,255,16,5,148,102,255,255,255,255,16,5,168,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,30,102,16,5,58,102,16,5,84,102,255,255,255,255,27,5,222,102,16,5,112,102,16,5,72,102,16,5,158,102,23,5,238,102,255,255,255,255,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,16,5,110,102,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,16,5,86,102,16,5,148,102,16,5,160,102,16,5,168,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,163,160,1,197,99,161,1,197,3,161,1,197,227,157,1,197,67,158,1,197,163,162,1,197,67,162,1,197,35,164,1,197,195,163,1,197,227,167,1,197,67,168,1,197,35,169,1,197,35,166,1,197,227,166,1,197,131,169,1,197,227,169,1,255,255,255,255,255,255,255,255,197,131,166,1,197,163,181,1,197,3,182,1,197,3,175,1,197,99,175,1,197,99,173,1,197,3,173,1,197,195,173,1,197,131,178,1,197,35,178,1,197,131,188,1,197,35,188,1,197,3,73,1,197,227,77,1,197,34,75,1,197,162,76,1,197,66,78,1,197,226,79,1,197,2,82,1,197,34,85,1,197,98,87,1,197,226,89,1,197,66,77,1,197,226,78,1,197,162,79,1,197,130,96,1,197,130,80,1,197,2,99,1,197,130,100,1,197,162,101,1,197,162,103,1,197,194,116,1,197,98,118,1,197,162,122,1,197,226,124,1,197,98,125,1,197,162,126,1,197,98,128,1,197,226,129,1,197,162,133,1,197,98,134,1,197,162,135,1,197,98,138,1,197,226,138,1,197,130,141,1,197,2,142,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,35,77,1,197,35,79,1,197,195,78,1,197,131,79,1,197,99,80,1,197,3,83,1,197,99,83,1,197,195,83,1,197,195,92,1,197,99,92,1,197,163,95,1,197,67,95,1,197,67,101,1,197,195,99,1,197,35,100,1,197,35,105,1,197,131,77,1,197,35,81,1,197,195,80,1,197,131,84,1,197,35,84,1,197,131,93,1,197,99,90,1,197,35,93,1,197,99,102,1,197,3,118,1,197,227,110,1,197,67,126,1,197,99,159,1,197,131,164,1,197,3,186,1,197,99,185,1,197,227,188,1,197,227,170,1,197,35,148,1,197,195,175,1,197,3,147,1,197,67,160,1,197,3,137,1,197,67,154,1,197,67,172,1,197,67,170,1,197,163,158,1,197,227,153,1,197,3,159,1,197,163,172,1,197,195,90,1,197,163,94,1,16,5,48,102,27,5,48,102,49,5,54,102,38,5,54,102,16,5,54,102,27,5,54,102,49,5,46,102,38,5,46,102,16,5,46,102,27,5,46,102,198,1,162,0,198,225,161,0,198,161,161,0,198,193,161,0,198,129,162,0,198,97,162,0,198,33,162,0,198,65,162,0,49,5,62,102,38,5,62,102,16,5,62,102,27,5,62,102,49,5,60,102,38,5,60,102,16,5,60,102,27,5,60,102,49,5,64,102,38,5,64,102,16,5,64,102,27,5,64,102,49,5,68,102,38,5,68,102,255,255,255,255,255,255,255,255,16,5,58,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,72,102,255,255,255,255,23,5,238,102,255,255,255,255,16,5,196,102,255,255,255,255,16,5,204,102,16,5,134,102,16,5,166,102,255,255,255,255,16,5,146,102,16,5,178,102,255,255,255,255,16,5,136,102,255,255,255,255,255,255,255,255,16,5,74,102,255,255,255,255,16,5,148,102,255,255,255,255,16,5,168,102,255,255,255,255,16,5,206,102,255,255,255,255,198,161,162,0,32,5,58,102,48,5,72,102,40,5,72,102,24,5,72,102,32,5,72,102,48,5,74,102,40,5,74,102,24,5,74,102,32,5,74,102,44,5,84,102,30,5,84,102,44,5,86,102,30,5,86,102,44,5,110,102,30,5,110,102,44,5,112,102,30,5,112,102,48,5,134,102,40,5,134,102,24,5,134,102,32,5,134,102,48,5,136,102,40,5,136,102,24,5,136,102,32,5,136,102,48,5,146,102,40,5,146,102,24,5,146,102,32,5,146,102,48,5,148,102,40,5,148,102,24,5,148,102,197,66,96,1,197,226,93,1,197,34,94,1,197,130,97,1,197,194,97,1,197,34,124,1,197,162,124,1,197,34,129,1,197,162,129,1,197,130,108,1,197,226,109,1,197,2,112,1,197,130,113,1,197,130,112,1,197,98,103,1,197,226,118,1,197,34,128,1,197,162,132,1,197,34,133,1,197,98,137,1,197,226,137,1,197,130,140,1,197,2,141,1,197,194,106,1,197,66,107,1,197,194,115,1,197,66,116,1,197,130,90,1,197,66,72,1,197,162,77,1,197,2,78,1,197,226,80,1,16,5,68,102,27,5,68,102,46,5,98,102,32,5,98,102,46,5,96,102,32,5,96,102,46,5,102,102,32,5,102,102,46,5,88,102,32,5,88,102,46,5,128,102,32,5,128,102,46,5,114,102,32,5,114,102,49,5,184,102,38,5,184,102,16,5,184,102,27,5,184,102,49,5,192,102,38,5,192,102,16,5,192,102,27,5,192,102,198,33,164,0,198,1,164,0,198,193,163,0,198,225,163,0,198,161,163,0,198,129,163,0,198,65,163,0,198,97,163,0,44,5,206,102,30,5,206,102,197,195,104,1,197,99,104,1,197,227,105,1,197,131,105,1,197,163,117,1,197,67,117,1,197,131,123,1,197,131,110,1,197,35,110,1,197,195,108,1,197,35,114,1,197,195,113,1,197,227,114,1,197,131,114,1,197,227,125,1,197,131,127,1,197,35,127,1,197,131,131,1,197,35,131,1,197,227,131,1,197,67,132,1,197,67,135,1,197,67,136,1,197,227,135,1,197,163,136,1,197,99,139,1,197,35,140,1,197,195,139,1,197,99,143,1,197,3,143,1,197,99,147,1,197,195,147,1,197,2,117,1,197,226,122,1,197,34,125,1,197,162,125,1,197,226,126,1,197,162,128,1,197,34,130,1,197,226,130,1,197,34,134,1,197,162,134,1,197,98,119,1,197,162,138,1,197,34,139,1,197,194,141,1,197,66,142,1,197,194,142,1,197,2,144,1,197,226,144,1,197,98,145,1,197,226,145,1,197,194,146,1,197,194,148,1,197,66,149,1,197,194,149,1,197,66,150,1,197,194,150,1,197,66,151,1,197,66,152,1,197,66,153,1,197,226,154,1,197,98,155,1,197,162,157,1,32,5,148,102,48,5,158,102,40,5,158,102,24,5,158,102,32,5,158,102,48,5,160,102,40,5,160,102,24,5,160,102,32,5,160,102,48,5,166,102,40,5,166,102,24,5,166,102,32,5,166,102,48,5,168,102,40,5,168,102,24,5,168,102,32,5,168,102,48,5,174,102,40,5,174,102,24,5,174,102,32,5,174,102,48,5,178,102,40,5,178,102,24,5,178,102,32,5,178,102,48,5,182,102,40,5,182,102,24,5,182,102,32,5,182,102,48,5,196,102,40,5,196,102,24,5,196,102,193,44,26,103,193,51,26,103,193,58,26,103,193,65,26,103,193,72,26,103,193,79,26,103,193,86,26,103,193,93,26,103,193,100,26,103,193,107,26,103,193,114,26,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,193,9,143,103,193,16,143,103,193,23,143,103,193,30,143,103,193,37,143,103,193,44,143,103,193,51,143,103,193,58,143,103,193,65,143,103,193,72,143,103,193,79,143,103,193,86,143,103,193,93,143,103,193,100,143,103,193,107,143,103,193,114,143,103,193,128,143,103,193,135,143,103,193,142,143,103,193,149,143,103,193,156,143,103,193,163,143,103,193,170,143,103,193,177,143,103,193,184,143,103,193,191,143,103,193,198,143,103,193,205,143,103,193,212,143,103,193,219,143,103,193,226,143,103,193,233,143,103,193,121,143,103,193,14,144,103,193,133,144,103,193,196,144,103,193,47,145,103,193,59,146,103,193,178,146,103,193,241,146,103,193,141,147,103,193,204,147,103,193,13,148,103,193,102,149,103,193,65,150,103,193,170,150,103,193,233,150,103,193,217,151,103,193,26,152,103,193,138,152,103,193,220,153,103,193,133,151,103,193,140,151,103,193,147,151,103,193,154,151,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,21,144,103,193,28,144,103,193,35,144,103,193,42,144,103,193,49,144,103,193,56,144,103,193,63,144,103,193,70,144,103,193,77,144,103,193,84,144,103,193,91,144,103,193,98,144,103,193,105,144,103,193,112,144,103,193,119,144,103,193,126,144,103,193,140,144,103,193,147,144,103,193,154,144,103,193,161,144,103,193,168,144,103,193,175,144,103,193,182,144,103,193,189,144,103,193,245,144,103,193,252,144,103,193,5,145,103,193,12,145,103,193,19,145,103,193,26,145,103,193,33,145,103,193,40,145,103,255,255,255,255,193,203,144,103,193,210,144,103,193,217,144,103,193,224,144,103,193,231,144,103,193,238,144,103,255,255,255,255,255,255,255,255,193,72,150,103,193,79,150,103,193,86,150,103,193,93,150,103,193,100,150,103,193,107,150,103,255,255,255,255,255,255,255,255,193,109,149,103,193,116,149,103,193,123,149,103,193,130,149,103,193,137,149,103,193,144,149,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,54,145,103,193,61,145,103,193,68,145,103,193,75,145,103,193,82,145,103,193,89,145,103,193,96,145,103,193,103,145,103,193,110,145,103,255,255,255,255,193,117,145,103,193,124,145,103,193,131,145,103,193,138,145,103,255,255,255,255,255,255,255,255,193,145,145,103,193,152,145,103,193,159,145,103,193,166,145,103,193,173,145,103,193,180,145,103,193,187,145,103,255,255,255,255,193,194,145,103,255,255,255,255,193,201,145,103,193,208,145,103,193,215,145,103,193,222,145,103,255,255,255,255,255,255,255,255,193,229,145,103,193,236,145,103,193,243,145,103,193,250,145,103,193,3,146,103,193,10,146,103,193,17,146,103,193,24,146,103,193,66,146,103,193,73,146,103,193,80,146,103,193,87,146,103,193,94,146,103,193,101,146,103,193,108,146,103,193,115,146,103,193,122,146,103,193,129,146,103,193,136,146,103,193,143,146,103,193,150,146,103,193,157,146,103,193,164,146,103,193,171,146,103,193,185,146,103,193,192,146,103,193,199,146,103,193,206,146,103,193,213,146,103,193,220,146,103,193,227,146,103,193,234,146,103,193,248,146,103,193,255,146,103,193,8,147,103,193,15,147,103,193,22,147,103,193,29,147,103,193,36,147,103,193,43,147,103,193,50,147,103,255,255,255,255,193,57,147,103,193,64,147,103,193,71,147,103,193,78,147,103,255,255,255,255,255,255,255,255,193,85,147,103,193,92,147,103,193,99,147,103,193,106,147,103,193,113,147,103,193,120,147,103,193,127,147,103,193,134,147,103,193,148,147,103,193,155,147,103,193,162,147,103,193,169,147,103,193,176,147,103,193,183,147,103,193,190,147,103,193,197,147,103,193,211,147,103,193,218,147,103,193,225,147,103,193,232,147,103,193,239,147,103,193,246,147,103,193,253,147,103,193,6,148,103,193,20,148,103,193,27,148,103,193,34,148,103,193,41,148,103,193,48,148,103,193,55,148,103,193,62,148,103,193,69,148,103,193,76,148,103,255,255,255,255,193,83,148,103,193,90,148,103,193,97,148,103,193,104,148,103,255,255,255,255,255,255,255,255,193,111,148,103,193,118,148,103,193,125,148,103,193,132,148,103,193,139,148,103,193,146,148,103,193,153,148,103,255,255,255,255,193,160,148,103,255,255,255,255,193,167,148,103,193,174,148,103,193,181,148,103,193,188,148,103,255,255,255,255,255,255,255,255,193,195,148,103,193,202,148,103,193,209,148,103,193,216,148,103,193,223,148,103,193,230,148,103,193,237,148,103,193,244,148,103,193,251,148,103,193,4,149,103,193,11,149,103,193,18,149,103,193,25,149,103,193,32,149,103,193,39,149,103,255,255,255,255,193,46,149,103,193,53,149,103,193,60,149,103,193,67,149,103,193,74,149,103,193,81,149,103,193,88,149,103,193,95,149,103,193,151,149,103,193,158,149,103,193,165,149,103,193,172,149,103,193,179,149,103,193,186,149,103,193,193,149,103,193,200,149,103,193,207,149,103,193,214,149,103,193,221,149,103,193,228,149,103,193,235,149,103,193,242,149,103,193,249,149,103,193,2,150,103,193,9,150,103,193,16,150,103,193,23,150,103,193,30,150,103,193,37,150,103,193,44,150,103,193,51,150,103,193,58,150,103,193,114,150,103,193,121,150,103,193,128,150,103,193,135,150,103,193,142,150,103,193,149,150,103,193,156,150,103,193,163,150,103,193,177,150,103,193,184,150,103,193,191,150,103,193,198,150,103,193,205,150,103,193,212,150,103,193,219,150,103,193,226,150,103,193,240,150,103,193,247,150,103,193,254,150,103,193,7,151,103,193,14,151,103,193,21,151,103,193,28,151,103,193,35,151,103,193,42,151,103,255,255,255,255,193,49,151,103,193,56,151,103,193,63,151,103,193,70,151,103,255,255,255,255,255,255,255,255,193,77,151,103,193,84,151,103,193,91,151,103,193,98,151,103,193,105,151,103,193,112,151,103,193,119,151,103,193,126,151,103,193,161,151,103,193,168,151,103,193,175,151,103,193,182,151,103,193,189,151,103,193,196,151,103,193,203,151,103,193,210,151,103,193,224,151,103,193,231,151,103,193,238,151,103,193,245,151,103,193,252,151,103,193,5,152,103,193,12,152,103,193,19,152,103,193,82,152,103,193,89,152,103,193,96,152,103,193,103,152,103,193,110,152,103,193,117,152,103,193,124,152,103,193,131,152,103,193,145,152,103,193,152,152,103,193,159,152,103,193,166,152,103,193,173,152,103,193,180,152,103,193,187,152,103,193,194,152,103,193,248,153,103,193,255,153,103,193,8,154,103,193,15,154,103,193,22,154,103,193,29,154,103,193,36,154,103,255,255,255,255,193,43,154,103,193,50,154,103,193,57,154,103,193,64,154,103,193,71,154,103,193,78,154,103,193,85,154,103,255,255,255,255,193,92,154,103,193,99,154,103,193,106,154,103,193,113,154,103,193,120,154,103,193,127,154,103,193,134,154,103,255,255,255,255,193,141,154,103,193,148,154,103,193,155,154,103,193,162,154,103,193,169,154,103,193,176,154,103,193,183,154,103,255,255,255,255,193,190,154,103,193,197,154,103,193,204,154,103,193,211,154,103,193,218,154,103,193,225,154,103,193,232,154,103,255,255,255,255,193,239,154,103,193,246,154,103,193,253,154,103,193,6,155,103,193,13,155,103,193,20,155,103,193,27,155,103,255,255,255,255,193,34,155,103,193,41,155,103,193,48,155,103,193,55,155,103,193,62,155,103,193,69,155,103,193,76,155,103,255,255,255,255,193,83,155,103,193,90,155,103,193,97,155,103,193,104,155,103,193,111,155,103,193,118,155,103,193,125,155,103,255,255,255,255,5,5,110,105,5,5,112,105,5,5,114,105,5,5,116,105,5,5,118,105,255,255,255,255,255,255,255,255,201,192,6,0,5,5,126,105,255,255,255,255,255,255,255,255,5,5,128,105,5,5,130,105,5,5,132,105,197,194,194,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,134,105,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,66,194,1,197,130,194,1,255,255,255,255,197,2,195,1,5,5,104,106,5,5,106,106,5,5,108,106,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,110,106,5,5,112,106,255,255,255,255,255,255,255,255,5,5,114,106,5,5,116,106,5,5,118,106,255,255,255,255,255,255,255,255,255,255,255,255,5,5,36,106,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,130,195,1,197,194,195,1,197,2,196,1,5,5,98,106,255,255,255,255,197,66,196,1,255,255,255,255,5,5,116,107,5,5,118,107,5,5,120,107,5,5,122,107,5,5,124,107,5,5,130,107,255,255,255,255,5,5,132,107,5,5,134,107,5,5,136,107,255,255,255,255,5,5,138,107,5,5,140,107,5,5,142,107,255,255,255,255,255,255,255,255,5,5,6,107,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,84,109,5,5,86,109,5,5,88,109,255,255,255,255,255,255,255,255,255,255,255,255,201,224,10,0,201,64,12,0,5,5,94,109,255,255,255,255,5,5,96,109,5,5,98,109,5,5,100,109,5,5,102,109,255,255,255,255,255,255,255,255,5,5,6,109,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,104,109,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,44,109,5,5,46,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,48,109,5,5,68,109,5,5,50,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,52,109,5,5,54,109,5,5,56,109,5,5,66,109,5,5,58,109,5,5,64,109,5,5,62,109,5,5,60,109,5,5,72,109,5,5,74,109,5,5,76,109,5,5,78,109,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,80,109,5,5,82,109,5,5,122,110,5,5,124,110,5,5,126,110,5,5,128,110,5,5,130,110,255,255,255,255,201,38,13,0,5,5,138,110,5,5,140,110,255,255,255,255,5,5,142,110,5,5,144,110,5,5,146,110,5,5,148,110,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,150,110,5,5,152,110,255,255,255,255,5,5,50,110,5,5,56,110,5,5,114,110,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,64,110,5,5,66,110,5,5,68,110,5,5,70,110,5,5,72,110,5,5,74,110,5,5,76,110,5,5,78,110,5,5,80,110,255,255,255,255,5,5,82,110,5,5,84,110,5,5,86,110,5,5,88,110,5,5,90,110,5,5,92,110,5,5,94,110,5,5,96,110,5,5,98,110,5,5,110,110,5,5,112,110,5,5,100,110,5,5,102,110,5,5,104,110,5,5,106,110,5,5,108,110,255,255,255,255,255,255,255,255,255,255,255,255,5,5,116,110,5,5,118,110,5,5,120,110,5,5,122,111,5,5,124,111,5,5,126,111,5,5,128,111,5,5,130,111,255,255,255,255,201,224,14,0,5,5,138,111,5,5,140,111,255,255,255,255,201,96,17,0,5,5,144,111,5,5,146,111,5,5,148,111,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,150,111,5,5,152,111,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,108,111,255,255,255,255,5,5,62,112,5,5,64,112,5,5,66,112,5,5,68,112,5,5,70,112,5,5,72,112,5,5,74,112,5,5,76,112,5,5,78,112,5,5,80,112,5,5,82,112,5,5,84,112,5,5,86,112,5,5,88,112,5,5,90,112,5,5,92,112,5,5,94,112,5,5,112,112,5,5,96,112,5,5,108,112,5,5,110,112,5,5,98,112,5,5,100,112,5,5,102,112,5,5,104,112,5,5,106,112,5,5,114,112,32,5,152,112,32,5,152,112,5,5,116,112,5,5,120,112,5,5,122,112,5,5,54,113,5,5,56,113,5,5,58,113,5,5,60,113,5,5,62,113,5,5,64,113,5,5,66,113,5,5,68,113,5,5,70,113,5,5,72,113,5,5,74,113,5,5,76,113,5,5,78,113,5,5,80,113,5,5,82,113,5,5,84,113,5,5,86,113,5,5,88,113,255,255,255,255,5,5,90,113,5,5,92,113,5,5,94,113,5,5,96,113,5,5,98,113,5,5,100,113,5,5,102,113,5,5,104,113,5,5,106,113,255,255,255,255,5,5,108,113,255,255,255,255,255,255,255,255,5,5,110,113,5,5,112,113,5,5,114,113,5,5,116,113,5,5,118,113,5,5,120,113,5,5,122,113,255,255,255,255,255,255,255,255,255,255,255,255,5,5,158,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,124,113,5,5,126,113,5,5,128,113,5,5,130,113,5,5,132,113,5,5,134,113,255,255,255,255,5,5,136,113,255,255,255,255,5,5,138,113,201,132,20,0,5,5,148,113,5,5,150,113,201,6,23,0,5,5,154,113,5,5,156,113,5,5,142,113,193,16,160,113,193,23,160,113,193,30,160,113,193,37,160,113,193,44,160,113,193,51,160,113,193,58,160,113,193,65,160,113,193,72,160,113,193,79,160,113,193,86,160,113,193,93,160,113,193,100,160,113,193,107,160,113,193,114,160,113,193,121,160,113,193,128,160,113,193,135,160,113,193,142,160,113,193,149,160,113,193,156,160,113,193,163,160,113,193,170,160,113,193,177,160,113,193,184,160,113,193,191,160,113,193,198,160,113,193,126,161,113,193,133,161,113,193,140,161,113,193,147,161,113,193,154,161,113,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,193,133,171,113,193,140,171,113,193,147,171,113,193,154,171,113,193,161,171,113,193,168,171,113,193,175,171,113,193,182,171,113,193,189,171,113,193,196,171,113,193,210,171,113,193,217,171,113,193,224,171,113,193,9,172,113,193,16,172,113,193,23,172,113,193,30,172,113,193,37,172,113,193,44,172,113,193,51,172,113,193,58,172,113,193,65,172,113,193,72,172,113,193,79,172,113,193,86,172,113,193,93,172,113,193,100,172,113,193,107,172,113,193,114,172,113,193,121,172,113,193,128,172,113,255,255,255,255,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,193,9,176,113,193,16,176,113,193,23,176,113,193,30,176,113,193,51,176,113,193,58,176,113,193,65,176,113,255,255,255,255,193,72,176,113,255,255,255,255,193,79,176,113,193,86,176,113,193,93,176,113,193,100,176,113,255,255,255,255,193,107,176,113,193,114,176,113,193,121,176,113,193,128,176,113,193,135,176,113,193,142,176,113,193,149,176,113,193,156,176,113,193,163,176,113,193,170,176,113,193,177,176,113,193,184,176,113,193,191,176,113,193,198,176,113,193,205,176,113,255,255,255,255,193,212,176,113,193,133,179,113,193,140,179,113,193,147,179,113,193,154,179,113,193,161,179,113,255,255,255,255,255,255,255,255,201,32,25,2,193,189,179,113,255,255,255,255,255,255,255,255,193,196,179,113,193,203,179,113,193,210,179,113,255,255,255,255,255,255,255,255,193,9,178,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,217,179,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,224,179,113,193,105,179,113,193,112,179,113,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,193,175,181,113,193,182,181,113,193,189,181,113,193,196,181,113,193,203,181,113,193,210,181,113,193,217,181,113,193,224,181,113,193,231,181,113,193,238,181,113,193,245,181,113,193,147,181,113,193,154,181,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,193,9,185,113,193,16,185,113,5,5,187,113,5,5,189,113,5,5,191,113,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,193,9,203,113,193,16,203,113,193,23,203,113,193,30,203,113,193,37,203,113,193,44,203,113,193,51,203,113,193,58,203,113,193,65,203,113,193,72,203,113,193,100,203,113,193,107,203,113,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,193,9,205,113,193,16,205,113,193,23,205,113,193,30,205,113,193,37,205,113,193,44,205,113,193,51,205,113,255,255,255,255,255,255,255,255,193,58,205,113,255,255,255,255,255,255,255,255,193,65,205,113,193,72,205,113,193,79,205,113,193,86,205,113,193,93,205,113,193,107,205,113,193,114,205,113,193,121,205,113,255,255,255,255,193,128,205,113,193,135,205,113,255,255,255,255,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,193,9,207,113,193,16,207,113,193,23,207,113,193,30,207,113,193,37,207,113,193,44,207,113,193,51,207,113,193,58,207,113,255,255,255,255,255,255,255,255,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,193,9,211,113,193,16,211,113,193,23,211,113,193,30,211,113,5,5,213,113,5,112,213,113,193,2,215,113,193,9,215,113,5,5,217,113,193,2,219,113,193,9,219,113,193,16,219,113,193,23,219,113,193,30,219,113,193,37,219,113,193,44,219,113,193,51,219,113,193,58,219,113,193,65,219,113,193,72,219,113,193,79,219,113,5,5,221,113,5,112,221,113,193,2,223,113,193,9,223,113,193,16,223,113,5,112,217,113,255,255,255,255,255,255,255,255,193,107,223,113,193,114,223,113,193,121,223,113,193,9,224,113,193,16,224,113,193,23,224,113,193,30,224,113,193,37,224,113,193,44,224,113,193,51,224,113,255,255,255,255,193,58,224,113,193,65,224,113,255,255,255,255,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,5,5,226,113,193,2,228,113,193,9,228,113,193,16,228,113,193,23,228,113,193,30,228,113,193,37,228,113,193,44,228,113,193,51,228,113,193,58,228,113,193,65,228,113,193,72,228,113,193,79,228,113,193,86,228,113,193,93,228,113,193,100,228,113,193,107,228,113,255,255,255,255,255,255,255,255,255,255,255,255,193,114,228,113,255,255,255,255,193,121,228,113,193,128,228,113,255,255,255,255,193,135,228,113,193,16,229,113,193,23,229,113,193,30,229,113,193,37,229,113,193,44,229,113,193,51,229,113,255,255,255,255,193,58,229,113,193,65,229,113,255,255,255,255,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,193,9,248,113,193,16,248,113,193,23,248,113,193,30,248,113,193,37,248,113,193,44,248,113,193,51,248,113,193,58,248,113,193,65,248,113,255,255,255,255,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,255,255,255,255,5,5,6,114,5,5,8,114,5,5,10,114,5,5,12,114,5,5,14,114,5,5,16,114,5,5,18,114,5,5,20,114,5,5,22,114,5,5,24,114,5,5,26,114,5,5,28,114,5,5,30,114,5,5,32,114,5,5,34,114,5,5,36,114,5,5,38,114,5,5,40,114,5,5,42,114,5,5,44,114,5,5,46,114,5,5,48,114,5,5,50,114,5,5,52,114,5,5,54,114,5,5,56,114,5,5,58,114,5,5,60,114,5,5,62,114,5,5,64,114,5,5,66,114,255,255,255,255,5,5,8,115,5,5,10,115,255,255,255,255,5,5,12,115,255,255,255,255,5,5,14,115,5,5,16,115,5,5,18,115,5,5,20,115,5,5,24,115,255,255,255,255,5,5,26,115,5,5,32,115,5,5,28,115,5,5,34,115,5,5,36,115,5,5,38,115,5,5,40,115,5,5,42,115,5,5,44,115,5,5,46,115,5,5,48,115,5,5,50,115,5,5,52,115,5,5,54,115,5,5,56,115,5,5,58,115,5,5,60,115,5,5,62,115,5,5,64,115,5,5,66,115,5,5,68,115,5,5,70,115,5,5,72,115,5,5,74,115,255,255,255,255,5,5,76,115,255,255,255,255,5,5,78,115,5,5,80,115,5,5,82,115,5,5,22,115,5,5,84,115,5,5,86,115,5,5,88,115,5,5,90,115,5,5,92,115,5,5,94,115,5,5,96,115,5,5,98,115,5,5,100,115,5,5,102,115,5,5,104,115,5,5,106,115,5,5,108,115,5,5,110,115,5,5,112,115,5,5,114,115,5,5,116,115,5,5,118,115,5,5,120,115,255,255,255,255,255,255,255,255,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,5,5,6,116,5,5,12,116,5,5,16,116,197,66,120,2,5,5,20,116,5,5,24,116,5,5,28,116,5,5,32,116,255,255,255,255,5,5,36,116,5,5,40,116,5,5,44,116,5,5,48,116,197,194,120,2,5,5,52,116,5,5,56,116,5,5,60,116,5,5,64,116,197,66,121,2,5,5,68,116,5,5,72,116,5,5,76,116,5,5,80,116,197,194,121,2,5,5,84,116,5,5,88,116,5,5,92,116,5,5,96,116,197,66,122,2,5,5,100,116,5,5,104,116,5,5,108,116,193,30,208,116,193,37,208,116,193,44,208,116,193,51,208,116,193,58,208,116,193,65,208,116,193,72,208,116,193,79,208,116,193,86,208,116,193,93,208,116,193,100,208,116,193,9,198,116,193,23,198,116,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,5,5,219,116,193,2,221,116,193,9,221,116,193,16,221,116,193,23,221,116,193,30,221,116,193,37,221,116,193,44,221,116,193,51,221,116,193,58,221,116,193,65,221,116,5,5,223,116,193,2,225,116,193,9,225,116,193,16,225,116,5,5,227,116,5,5,229,116,193,2,231,116,193,9,231,116,193,16,231,116,5,5,233,116,193,2,235,116,193,9,235,116,193,16,235,116,193,23,235,116,193,30,235,116,5,5,237,116,5,5,239,116,5,5,241,116,5,5,243,116,5,5,245,116,5,5,247,116,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,193,70,5,117,193,84,5,117,193,98,5,117,193,112,5,117,193,126,5,117,193,140,5,117,193,154,5,117,255,255,255,255,255,255,255,255,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,193,9,6,117,193,16,6,117,193,23,6,117,193,30,6,117,193,37,6,117,193,44,6,117,193,51,6,117,193,58,6,117,193,65,6,117,193,72,6,117,193,100,6,117,193,107,6,117,193,114,6,117,193,121,6,117,193,128,6,117,193,135,6,117,193,142,6,117,193,149,6,117,193,156,6,117,193,163,6,117,193,170,6,117,193,177,6,117,193,184,6,117,193,191,6,117,193,198,6,117,193,205,6,117,193,212,6,117,193,226,6,117,193,240,6,117,193,247,6,117,193,254,6,117,193,7,7,117,193,9,8,117,193,16,8,117,193,23,8,117,193,30,8,117,193,37,8,117,193,44,8,117,193,51,8,117,193,58,8,117,193,93,8,117,193,100,8,117,193,107,8,117,193,114,8,117,193,121,8,117,193,128,8,117,193,135,8,117,193,142,8,117,193,149,8,117,193,156,8,117,193,163,8,117,193,170,8,117,193,184,8,117,193,191,8,117,193,198,8,117,193,205,8,117,193,226,8,117,193,247,8,117,193,254,8,117,193,14,9,117,193,21,9,117,193,42,9,117,193,77,9,117,193,84,9,117,193,9,10,117,193,16,10,117,193,23,10,117,193,30,10,117,193,37,10,117,193,44,10,117,193,51,10,117,193,58,10,117,5,5,12,117,193,2,14,117,193,9,14,117,5,5,16,117,193,2,18,117,193,9,18,117,193,16,18,117,193,23,18,117,193,30,18,117,193,37,18,117,193,44,18,117,193,51,18,117,193,58,18,117,193,65,18,117,193,72,18,117,193,79,18,117,193,86,18,117,193,93,18,117,193,100,18,117,193,107,18,117,193,114,18,117,197,162,124,2,197,226,124,2,255,255,255,255,193,9,25,117,193,16,25,117,193,23,25,117,193,30,25,117,193,37,25,117,193,44,25,117,193,51,25,117,193,58,25,117,193,65,25,117,193,72,25,117,193,79,25,117,193,86,25,117,193,93,25,117,255,255,255,255,193,100,25,117,193,107,25,117,193,114,25,117,193,121,25,117,193,128,25,117,193,135,25,117,193,142,25,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,27,117,193,16,27,117,193,23,27,117,193,30,27,117,193,37,27,117,193,44,27,117,193,51,27,117,193,58,27,117,193,65,27,117,193,72,27,117,193,79,27,117,193,86,27,117,193,93,27,117,193,100,27,117,193,107,27,117,193,114,27,117,193,121,27,117,193,128,27,117,193,135,27,117,193,142,27,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,28,117,193,16,28,117,193,23,28,117,193,30,28,117,193,37,28,117,193,44,28,117,193,51,28,117,193,58,28,117,193,65,28,117,193,72,28,117,193,79,28,117,193,86,28,117,193,93,28,117,255,255,255,255,193,100,28,117,193,107,28,117,193,114,28,117,255,255,255,255,193,121,28,117,193,128,28,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,33,117,32,5,33,117,5,5,35,117,32,5,35,117,32,5,35,117,5,5,37,117,32,5,37,117,5,5,39,117,32,5,39,117,5,5,41,117,32,5,41,117,5,5,43,117,32,5,43,117,32,5,43,117,5,5,45,117,32,5,45,117,193,2,47,117,193,9,47,117,5,5,49,117,32,5,49,117,5,5,51,117,32,5,51,117,5,5,53,117,32,5,53,117,5,5,55,117,32,5,55,117,32,5,55,117,5,5,57,117,32,5,57,117,5,5,59,117,5,5,61,117,32,5,61,117,193,9,79,117,193,23,79,117,193,37,79,117,193,65,79,117,193,86,79,117,193,100,79,117,193,121,79,117,193,149,79,117,193,184,79,117,193,233,79,117,193,7,80,117,193,14,80,117,193,28,80,117,193,42,80,117,193,63,80,117,193,84,80,117,193,112,80,117,193,119,80,117,193,126,80,117,193,147,80,117,193,168,80,117,193,196,80,117,193,203,80,117,193,245,80,117,193,12,81,117,193,33,81,117,193,47,81,117,193,61,81,117,193,89,81,117,193,103,81,117,5,5,83,117,193,9,85,117,193,96,81,117,193,219,79,117,193,156,89,117,193,9,93,117,193,16,93,117,193,145,81,117,193,93,85,117,193,163,89,117,193,170,89,117,193,23,93,117,193,30,93,117,193,37,93,117,193,44,93,117,193,51,93,117,193,91,80,117,193,79,85,117,193,86,85,117,193,30,89,117,193,9,89,117,193,58,89,117,193,65,89,117,193,16,79,117,193,30,79,117,193,44,79,117,193,107,79,117,193,170,79,117,193,240,79,117,193,133,80,117,193,175,80,117,193,210,80,117,193,217,80,117,193,252,80,117,193,9,94,117,193,51,94,117,193,58,94,117,193,65,94,117,193,72,94,117,193,79,94,117,193,86,94,117,193,93,94,117,193,100,94,117,193,107,94,117,193,114,94,117,193,121,94,117,193,128,94,117,193,135,94,117,193,142,94,117,193,149,94,117,193,156,94,117,193,163,94,117,193,170,94,117,193,177,94,117,193,184,94,117,193,191,94,117,193,198,94,117,193,205,94,117,193,212,94,117,193,219,94,117,193,226,94,117,193,233,94,117,193,240,94,117,193,16,94,117,193,23,94,117,193,30,94,117,5,5,100,117,5,5,102,117,5,5,104,117,5,5,106,117,5,5,108,117,5,5,110,117,5,5,112,117,5,5,114,117,5,5,116,117,5,5,118,117,5,5,120,117,5,5,122,117,5,5,124,117,5,5,126,117,5,5,128,117,5,5,130,117,5,5,132,117,5,5,134,117,5,5,136,117,5,5,138,117,5,5,140,117,5,5,142,117,5,5,144,117,5,5,146,117,5,5,148,117,5,5,150,117,5,5,152,117,5,5,154,117,5,5,156,117,5,5,158,117,5,5,160,117,5,5,162,117,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,255,255,255,255,255,255,255,255,193,219,4,118,193,226,4,118,193,233,4,118,193,240,4,118,193,247,4,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,5,118,193,16,5,118,193,23,5,118,193,30,5,118,193,37,5,118,193,44,5,118,193,51,5,118,193,58,5,118,193,65,5,118,193,72,5,118,193,79,5,118,193,86,5,118,193,93,5,118,193,100,5,118,193,107,5,118,193,114,5,118,193,121,5,118,193,128,5,118,193,135,5,118,193,142,5,118,193,149,5,118,193,156,5,118,193,163,5,118,193,170,5,118,193,177,5,118,193,184,5,118,193,191,5,118,193,198,5,118,5,5,7,118,193,2,9,118,193,9,9,118,193,16,9,118,193,23,9,118,193,30,9,118,193,37,9,118,193,44,9,118,193,51,9,118,193,58,9,118,193,65,9,118,193,72,9,118,193,79,9,118,193,86,9,118,193,93,9,118,193,100,9,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,107,9,118,193,114,9,118,193,121,9,118,193,128,9,118,193,135,9,118,201,0,242,0,201,160,5,1,201,64,25,1,193,9,13,118,193,16,13,118,201,224,44,1,193,30,13,118,193,37,13,118,193,44,13,118,193,51,13,118,193,58,13,118,193,9,18,118,193,16,18,118,193,23,18,118,193,30,18,118,193,37,18,118,193,44,18,118,5,5,20,118,193,2,22,118,193,9,22,118,193,16,22,118,193,23,22,118,193,30,22,118,193,37,22,118,193,44,22,118,193,51,22,118,193,58,22,118,193,65,22,118,193,72,22,118,193,79,22,118,193,86,22,118,193,93,22,118,193,100,22,118,193,107,22,118,193,114,22,118,193,121,22,118,193,128,22,118,193,135,22,118,5,5,24,118,206,64,228,0,206,64,228,0,206,64,228,0,206,64,228,0,206,64,228,0,206,64,228,0,5,5,28,118,193,2,30,118,193,9,30,118,193,16,30,118,193,23,30,118,193,30,30,118,193,37,30,118,193,100,30,118,193,107,30,118,193,114,30,118,193,121,30,118,193,128,30,118,193,135,30,118,193,44,30,118,197,35,170,2,193,58,30,118,193,65,30,118,193,72,30,118,32,5,20,118,32,5,20,118,32,5,24,118,32,5,24,118,193,79,30,118,193,86,30,118,193,93,30,118,255,255,255,255,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,193,70,39,118,193,77,39,118,193,84,39,118,193,91,39,118,193,98,39,118,193,105,39,118,193,112,39,118,193,119,39,118,193,126,39,118,193,133,39,118,193,42,39,118,193,49,39,118,193,56,39,118,193,63,39,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,52,118,193,16,52,118,193,23,52,118,193,30,52,118,193,37,52,118,193,44,52,118,193,51,52,118,193,72,52,118,193,128,52,118,193,124,54,118,193,247,52,118,193,245,53,118,193,3,55,118,193,17,55,118,193,24,55,118,193,38,55,118,193,45,55,118,193,66,55,118,193,80,55,118,193,87,55,118,193,101,55,118,193,115,55,118,193,129,55,118,193,136,55,118,193,52,55,118,193,122,55,118,193,77,53,118,193,254,52,118,193,133,53,118,193,140,53,118,193,10,55,118,193,31,55,118,193,215,54,118,193,222,54,118,193,229,54,118,193,58,52,118,193,86,52,118,193,107,52,118,193,149,52,118,193,163,52,118,193,184,52,118,193,198,52,118,193,233,52,118,193,14,53,118,193,28,53,118,193,49,53,118,193,63,53,118,193,98,53,118,193,175,53,118,193,196,53,118,193,217,53,118,193,5,54,118,193,145,54,118,193,33,54,118,193,68,54,118,193,103,54,118,193,173,54,118,193,194,54,118,193,236,54,118,193,243,54,118,193,238,53,118,193,93,52,118,193,114,52,118,193,135,52,118,193,65,52,118,193,79,52,118,193,100,52,118,193,142,52,118,193,156,52,118,193,177,52,118,193,191,52,118,193,212,52,118,193,219,52,118,193,226,52,118,193,7,53,118,193,21,53,118,193,42,53,118,193,56,53,118,193,91,53,118,193,105,53,118,193,112,53,118,193,119,53,118,193,168,53,118,193,189,53,118,193,210,53,118,193,252,53,118,193,26,54,118,193,47,54,118,193,61,54,118,193,75,54,118,193,96,54,118,193,131,54,118,193,138,54,118,193,159,54,118,193,187,54,118,193,208,54,118,193,205,52,118,193,170,52,118,193,240,52,118,193,110,54,118,193,70,53,118,193,84,53,118,193,35,53,118,193,126,53,118,193,182,53,118,193,203,53,118,193,12,54,118,193,82,54,118,193,180,54,118,193,201,54,118,193,152,54,118,193,166,54,118,193,250,54,118,193,224,53,118,193,40,54,118,193,121,52,118,193,117,54,118,193,54,54,118,193,89,54,118,193,19,54,118,193,231,53,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,59,55,118,193,73,55,118,193,147,53,118,193,108,55,118,193,154,53,118,193,161,53,118,193,143,55,118,193,150,55,118,193,94,55,118,193,164,55,118,193,157,55,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,160,5,60,118,160,5,62,118,160,5,64,118,160,5,66,118,160,5,68,118,160,5,70,118,160,5,72,118,160,5,74,118,160,5,76,118,160,5,78,118,160,5,80,118,160,5,82,118,160,5,84,118,160,5,86,118,160,5,88,118,160,5,90,118,160,5,92,118,160,5,94,118,160,5,96,118,160,5,98,118,160,5,100,118,160,5,102,118,160,5,104,118,160,5,106,118,160,5,108,118,160,5,110,118,160,5,112,118,160,5,114,118,160,5,116,118,160,5,118,118,160,5,120,118,160,5,122,118,5,5,92,118,5,5,94,118,5,5,96,118,5,5,98,118,5,5,100,118,5,5,102,118,5,5,104,118,5,5,106,118,5,5,108,118,5,5,110,118,5,5,112,118,5,5,114,118,5,5,116,118,5,5,118,118,5,5,120,118,5,5,122,118,5,5,124,118,5,5,126,118,5,5,128,118,5,5,130,118,5,5,132,118,5,5,134,118,5,5,136,118,5,5,138,118,5,5,140,118,5,5,142,118,5,5,144,118,5,5,146,118,5,5,148,118,5,5,150,118,5,5,152,118,5,5,154,118,160,5,124,118,160,5,126,118,160,5,128,118,160,5,130,118,160,5,132,118,160,5,134,118,160,5,136,118,160,5,138,118,160,5,140,118,160,5,142,118,160,5,144,118,160,5,146,118,160,5,148,118,160,5,150,118,160,5,152,118,160,5,154,118,160,5,156,118,160,5,158,118,160,5,160,118,160,5,162,118,160,5,164,118,160,5,166,118,160,5,168,118,160,5,170,118,160,5,172,118,160,5,174,118,160,5,176,118,160,5,178,118,160,5,180,118,160,5,182,118,160,5,184,118,160,5,186,118,5,5,156,118,5,5,158,118,5,5,160,118,5,5,162,118,5,5,164,118,5,5,166,118,5,5,168,118,5,5,170,118,5,5,172,118,5,5,174,118,5,5,176,118,5,5,178,118,5,5,180,118,5,5,182,118,5,5,184,118,5,5,186,118,5,5,188,118,5,5,190,118,5,5,192,118,5,5,194,118,5,5,196,118,5,5,198,118,5,5,200,118,5,5,202,118,5,5,204,118,5,5,206,118,5,5,208,118,5,5,210,118,5,5,212,118,5,5,214,118,5,5,216,118,5,5,218,118,160,5,188,118,160,5,190,118,160,5,192,118,160,5,194,118,160,5,196,118,160,5,198,118,160,5,200,118,160,5,202,118,160,5,204,118,160,5,206,118,160,5,208,118,160,5,210,118,160,5,212,118,160,5,214,118,160,5,216,118,160,5,218,118,160,5,220,118,160,5,222,118,160,5,224,118,160,5,226,118,160,5,228,118,160,5,230,118,255,255,255,255,255,255,255,255,5,5,220,118,5,5,222,118,5,5,224,118,5,5,226,118,5,5,228,118,5,5,230,118,255,255,255,255,255,255,255,255,198,193,167,0,198,225,167,0,198,1,168,0,198,33,168,0,198,65,168,0,198,97,168,0,198,129,168,0,198,161,168,0,198,193,168,0,198,225,168,0,198,1,169,0,198,33,169,0,198,65,169,0,198,97,169,0,198,129,169,0,198,161,169,0,198,193,169,0,198,225,169,0,198,1,170,0,198,33,170,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,193,218,245,118,193,122,244,118,193,136,244,118,193,143,244,118,193,150,244,118,193,157,244,118,193,164,244,118,193,171,244,118,193,178,244,118,193,185,244,118,193,192,244,118,193,199,244,118,193,206,244,118,193,213,244,118,193,220,244,118,193,227,244,118,193,234,244,118,193,241,244,118,193,255,244,118,193,8,245,118,193,15,245,118,193,22,245,118,193,29,245,118,193,36,245,118,193,43,245,118,193,50,245,118,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,119,5,112,6,119,5,5,8,119,193,51,56,119,5,112,8,119,5,120,8,119,5,5,10,119,5,112,10,119,5,5,12,119,5,112,12,119,193,23,56,119,193,37,56,119,5,116,12,119,5,120,12,119,5,124,12,119,193,9,14,119,193,16,14,119,193,23,14,119,5,5,16,119,5,112,16,119,5,116,16,119,5,120,16,119,5,124,16,119,193,9,18,119,193,72,56,119,5,5,20,119,5,5,22,119,5,112,22,119,5,117,22,119,5,122,22,119,5,5,24,119,5,112,24,119,5,120,24,119,5,5,26,119,5,112,26,119,5,5,30,119,5,112,30,119,5,5,32,119,5,112,32,119,5,5,34,119,5,5,36,119,5,5,38,119,5,5,40,119,5,112,40,119,5,118,40,119,5,121,40,119,5,124,40,119,5,5,44,119,5,112,44,119,5,120,44,119,5,5,46,119,5,112,46,119,5,120,46,119,5,112,36,119,193,2,48,119,5,5,50,119,5,112,50,119,5,120,50,119,5,5,52,119,5,112,52,119,5,5,54,119,5,112,54,119,193,2,56,119,193,9,56,119,5,5,62,119,5,112,62,119,5,5,64,119,5,5,66,119,5,5,68,119,5,5,70,119,5,5,72,119,5,5,74,119,5,5,76,119,5,5,78,119,5,112,78,119,5,120,78,119,5,5,80,119,5,5,82,119,5,5,84,119,5,5,86,119,5,5,88,119,5,112,88,119,5,5,90,119,5,5,92,119,5,5,94,119,5,5,96,119,5,5,98,119,5,5,100,119,5,5,102,119,5,5,104,119,5,5,106,119,5,5,108,119,5,112,108,119,5,5,110,119,5,112,110,119,5,120,110,119,160,5,62,119,160,112,62,119,160,5,64,119,160,5,66,119,160,5,68,119,160,5,70,119,160,5,72,119,160,5,74,119,160,5,76,119,160,5,78,119,160,112,78,119,160,120,78,119,160,5,80,119,160,5,82,119,160,5,84,119,160,5,86,119,160,5,88,119,160,112,88,119,160,5,90,119,160,5,92,119,160,5,94,119,160,5,96,119,160,5,98,119,160,5,100,119,160,5,102,119,160,5,104,119,160,5,106,119,160,5,108,119,160,112,108,119,160,5,110,119,160,112,110,119,160,120,110,119,160,5,112,119,160,5,114,119,160,5,116,119,160,112,116,119,160,5,118,119,160,5,120,119,160,5,122,119,160,5,124,119,160,5,126,119,160,5,128,119,160,5,130,119,160,112,130,119,160,5,132,119,160,112,132,119,160,5,134,119,160,5,136,119,160,5,138,119,160,5,140,119,160,5,142,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,146,119,5,112,146,119,5,5,148,119,5,5,150,119,5,112,150,119,193,2,152,119,193,9,152,119,5,5,154,119,5,112,154,119,5,5,156,119,5,112,156,119,5,5,158,119,5,112,158,119,5,5,160,119,5,112,160,119,5,5,162,119,5,112,162,119,5,5,164,119,5,112,164,119,5,5,166,119,5,5,168,119,5,112,168,119,5,5,170,119,5,112,170,119,5,5,172,119,5,112,172,119,5,5,174,119,5,112,174,119,5,5,176,119,5,112,176,119,5,5,178,119,5,112,178,119,193,2,180,119,193,9,180,119,193,16,180,119,193,23,180,119,5,5,182,119,5,112,182,119,5,5,184,119,5,112,184,119,5,5,186,119,5,112,186,119,5,5,188,119,5,112,188,119,5,5,190,119,5,5,192,119,5,112,192,119,193,2,194,119,193,9,194,119,193,16,194,119,5,5,196,119,5,112,196,119,5,5,198,119,5,112,198,119,5,5,200,119,5,112,200,119,5,5,202,119,5,112,202,119,5,5,204,119,5,112,204,119,193,2,206,119,193,9,206,119,193,16,206,119,5,5,208,119,5,112,208,119,5,5,210,119,5,112,210,119,5,5,212,119,5,112,212,119,5,5,214,119,5,112,214,119,193,2,216,119,193,9,216,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,4,120,193,16,4,120,193,23,4,120,193,30,4,120,193,37,4,120,193,44,4,120,193,51,4,120,193,58,4,120,193,65,4,120,193,72,4,120,193,79,4,120,193,86,4,120,5,5,6,120,193,2,8,120,193,9,8,120,193,16,8,120,193,23,8,120,193,30,8,120,193,37,8,120,193,44,8,120,193,51,8,120,193,58,8,120,193,65,8,120,193,72,8,120,193,79,8,120,193,86,8,120,193,93,8,120,193,100,8,120,193,107,8,120,193,114,8,120,5,5,10,120,193,2,12,120,193,9,12,120,193,16,12,120,193,23,12,120,193,30,12,120,193,37,12,120,193,44,12,120,193,51,12,120,193,58,12,120,193,65,12,120,193,72,12,120,193,79,12,120,193,86,12,120,193,93,12,120,193,100,12,120,193,107,12,120,193,114,12,120,193,121,12,120,193,128,12,120,193,135,12,120,5,5,14,120,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,5,5,18,120,193,2,20,120,193,9,20,120,193,16,20,120,193,23,20,120,193,30,20,120,193,37,20,120,193,44,20,120,193,51,20,120,193,58,20,120,193,65,20,120,5,5,22,120,193,2,24,120,193,9,24,120,193,16,24,120,193,23,24,120,193,30,24,120,5,5,26,120,5,5,28,120,5,5,30,120,193,2,32,120,193,9,32,120,193,16,32,120,193,23,32,120,193,30,32,120,5,5,34,120,193,2,36,120,193,9,36,120,193,16,36,120,193,23,36,120,193,30,36,120,193,37,36,120,193,44,36,120,193,51,36,120,193,58,36,120,5,5,38,120,193,2,40,120,193,9,40,120,193,16,40,120,5,5,42,120,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,5,5,46,120,5,5,48,120,5,5,50,120,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,5,5,55,120,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,5,5,59,120,193,2,61,120,193,9,61,120,193,16,61,120,193,23,61,120,193,30,61,120,5,5,63,120,193,2,65,120,193,9,65,120,193,16,65,120,193,23,65,120,193,30,65,120,193,37,65,120,5,5,67,120,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,5,5,103,120,5,5,105,120,5,5,107,120,5,5,109,120,5,5,111,120,5,5,113,120,5,5,115,120,5,5,117,120,5,5,119,120,5,5,121,120,5,5,123,120,5,5,125,120,5,5,127,120,5,5,129,120,5,5,131,120,5,5,133,120,5,5,135,120,5,5,137,120,5,5,139,120,5,5,141,120,5,5,143,120,5,5,145,120,5,5,147,120,5,5,149,120,5,5,151,120,5,5,153,120,5,5,155,120,5,5,157,120,5,5,159,120,5,5,161,120,5,5,163,120,5,5,165,120,160,5,103,120,160,5,105,120,160,5,107,120,160,5,109,120,160,5,111,120,160,5,113,120,160,5,115,120,160,5,117,120,160,5,119,120,160,5,121,120,160,5,123,120,160,5,125,120,160,5,127,120,160,5,129,120,160,5,131,120,160,5,133,120,160,5,135,120,160,5,137,120,160,5,139,120,160,5,141,120,160,5,143,120,160,5,145,120,160,5,147,120,160,5,149,120,160,5,151,120,160,5,153,120,160,5,155,120,160,5,157,120,160,5,159,120,160,5,161,120,160,5,163,120,160,5,165,120,160,5,233,120,160,5,235,120,5,5,169,120,5,5,171,120,5,5,173,120,5,5,175,120,5,5,177,120,5,5,179,120,5,5,181,120,5,5,183,120,5,5,185,120,5,5,187,120,5,5,189,120,5,5,191,120,5,5,193,120,5,5,195,120,5,5,197,120,5,5,199,120,5,5,201,120,5,5,203,120,5,5,205,120,5,5,207,120,5,5,209,120,5,5,211,120,5,5,213,120,5,5,215,120,5,5,217,120,5,5,219,120,5,5,221,120,5,5,223,120,5,5,225,120,5,5,227,120,160,5,169,120,160,5,171,120,160,5,173,120,160,5,175,120,160,5,177,120,160,5,179,120,160,5,181,120,160,5,183,120,160,5,185,120,160,5,187,120,160,5,189,120,160,5,191,120,160,5,193,120,160,5,195,120,160,5,197,120,160,5,199,120,160,5,201,120,160,5,203,120,160,5,205,120,160,5,207,120,160,5,209,120,160,5,211,120,160,5,213,120,160,5,215,120,160,5,217,120,160,5,219,120,160,5,221,120,160,5,223,120,160,5,225,120,160,5,227,120,160,5,229,120,160,5,231,120,5,5,6,121,5,5,8,121,5,5,10,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,44,121,5,5,46,121,5,5,48,121,193,2,50,121,193,9,50,121,193,16,50,121,193,23,50,121,5,5,52,121,5,5,54,121,5,5,56,121,5,5,58,121,5,5,60,121,5,5,62,121,5,5,86,123,5,5,88,123,5,5,90,123,5,5,92,123,5,5,94,123,5,5,98,123,5,5,104,123,5,5,106,123,5,5,108,123,5,5,110,123,5,5,16,123,5,5,32,123,5,5,44,123,5,5,112,123,32,5,76,123,5,5,24,123,255,255,255,255,16,5,6,121,32,5,8,121,32,5,183,121,16,5,10,121,32,5,187,121,32,5,189,121,16,5,12,121,32,5,14,121,16,5,16,121,32,5,195,121,32,5,197,121,32,5,199,121,32,5,201,121,32,5,203,121,32,5,205,121,198,1,171,0,172,5,6,121,174,5,8,121,174,5,183,121,172,5,10,121,174,5,187,121,174,5,189,121,172,5,12,121,174,5,14,121,172,5,16,121,174,5,195,121,174,5,197,121,174,5,199,121,174,5,201,121,174,5,203,121,174,5,205,121,174,5,52,121,172,5,18,121,172,5,20,121,174,5,22,121,174,5,66,121,172,5,24,121,174,5,26,121,172,5,28,121,172,5,30,121,174,5,32,121,172,5,34,121,172,5,36,121,172,5,38,121,172,5,40,121,172,5,42,121,255,255,255,255,32,5,52,121,16,5,18,121,16,5,20,121,32,5,22,121,32,5,66,121,16,5,24,121,32,5,26,121,16,5,28,121,16,5,30,121,32,5,32,121,16,5,34,121,16,5,36,121,16,5,38,121,16,5,40,121,16,5,42,121,16,5,103,121,32,5,105,121,32,5,107,121,32,5,109,121,32,5,111,121,32,5,113,121,32,5,115,121,32,5,117,121,16,5,119,121,32,5,121,121,32,5,123,121,32,5,125,121,32,5,127,121,16,5,129,121,32,5,131,121,32,5,133,121,32,5,135,121,32,5,137,121,32,5,139,121,16,5,141,121,32,5,143,121,198,225,170,0,32,5,46,121,32,5,48,121,32,5,235,121,32,5,237,121,32,5,241,121,32,5,245,121,198,33,171,0,198,65,171,0,198,97,171,0,32,5,56,121,198,129,171,0,198,161,171,0,32,5,58,121,32,5,60,121,32,5,64,121,32,5,68,121,32,5,70,121,32,5,74,121,32,5,78,121,32,5,82,121,32,5,84,121,32,5,86,121,32,5,88,121,32,5,90,121,198,65,170,0,198,97,170,0,198,129,170,0,5,5,64,121,5,5,66,121,5,5,68,121,5,5,70,121,193,2,72,121,193,9,72,121,193,16,72,121,5,5,74,121,5,5,76,121,5,5,78,121,5,5,80,121,5,5,82,121,5,5,84,121,5,5,86,121,5,5,88,121,5,5,90,121,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,5,5,95,121,5,5,97,121,5,5,99,121,193,2,101,121,193,9,101,121,193,16,101,121,193,23,101,121,193,30,101,121,193,240,101,121,193,37,101,121,193,44,101,121,193,51,101,121,193,58,101,121,193,65,101,121,193,72,101,121,193,79,101,121,193,86,101,121,193,93,101,121,193,100,101,121,193,107,101,121,193,114,101,121,193,121,101,121,193,128,101,121,193,135,101,121,193,142,101,121,193,149,101,121,193,156,101,121,193,163,101,121,193,170,101,121,193,177,101,121,193,184,101,121,193,191,101,121,193,198,101,121,193,205,101,121,193,212,101,121,193,219,101,121,193,226,101,121,193,233,101,121,255,255,255,255,255,255,255,255,255,255,255,255,193,247,101,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,255,255,255,255,255,255,255,255,172,5,103,121,174,5,105,121,174,5,107,121,174,5,109,121,174,5,111,121,174,5,113,121,255,255,255,255,255,255,255,255,174,5,115,121,174,5,117,121,172,5,119,121,174,5,121,121,174,5,123,121,174,5,125,121,255,255,255,255,255,255,255,255,174,5,127,121,172,5,129,121,174,5,131,121,174,5,133,121,174,5,135,121,174,5,137,121,255,255,255,255,255,255,255,255,174,5,139,121,172,5,141,121,174,5,143,121,255,255,255,255,255,255,255,255,255,255,255,255,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,5,5,147,121,5,5,149,121,5,5,151,121,5,5,153,121,5,5,155,121,193,2,157,121,193,9,157,121,193,16,157,121,193,23,157,121,193,30,157,121,193,37,157,121,193,44,157,121,193,51,157,121,5,5,159,121,5,5,161,121,5,5,163,121,5,5,165,121,193,2,167,121,193,9,167,121,193,16,167,121,193,23,167,121,193,30,167,121,193,37,167,121,193,44,167,121,193,51,167,121,193,58,167,121,5,5,169,121,5,5,171,121,5,5,173,121,5,5,175,121,193,2,177,121,193,9,177,121,193,16,177,121,193,23,177,121,193,30,177,121,193,37,177,121,5,5,179,121,5,5,181,121,5,5,183,121,5,5,185,121,5,5,187,121,5,5,189,121,5,5,191,121,5,5,193,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,207,121,5,5,209,121,5,5,211,121,5,5,213,121,5,5,215,121,5,5,217,121,5,5,219,121,5,5,221,121,5,5,223,121,5,5,225,121,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,5,5,227,121,5,5,229,121,5,5,231,121,193,2,233,121,193,9,233,121,193,16,233,121,193,23,233,121,5,5,235,121,5,5,237,121,193,2,239,121,193,9,239,121,193,16,239,121,5,5,241,121,5,5,243,121,5,5,245,121,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,5,6,122,133,5,6,122,3,5,8,122,133,5,8,122,3,5,10,122,133,5,10,122,3,5,14,122,133,5,14,122,3,5,16,122,133,5,16,122,133,5,18,122,197,98,185,2,133,5,20,122,197,66,188,2,133,5,22,122,197,98,193,2,133,5,24,122,197,226,195,2,133,5,26,122,197,194,196,2,133,5,28,122,197,162,198,2,133,5,30,122,197,66,200,2,133,5,32,122,197,162,201,2,133,5,34,122,197,34,202,2,133,5,36,122,197,98,203,2,133,5,38,122,197,197,179,2,197,100,180,2,197,229,180,2,197,99,179,2,197,133,181,2,197,35,182,2,197,3,183,2,197,230,183,2,197,100,183,2,197,3,185,2,197,163,184,2,197,227,185,2,197,68,186,2,197,196,186,2,197,68,187,2,197,196,187,2,197,196,188,2,197,68,189,2,197,196,189,2,197,70,190,2,197,2,191,2,197,70,191,2,197,6,192,2,197,197,192,2,197,132,191,2,197,230,193,2,197,166,194,2,197,100,195,2,197,99,196,2,197,67,198,2,197,68,197,2,197,36,199,2,133,5,12,122,193,93,104,122,193,2,104,122,193,9,104,122,193,16,104,122,193,23,104,122,193,30,104,122,193,37,104,122,193,44,104,122,193,51,104,122,193,58,104,122,193,65,104,122,193,72,104,122,193,79,104,122,193,86,104,122,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,197,2,225,2,197,194,197,2,49,5,28,122,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,193,191,0,198,33,186,0,198,97,182,0,197,98,206,2,198,1,176,0,198,225,184,0,198,129,212,0,198,161,185,0,198,97,176,0,198,129,194,0,198,1,199,0,198,65,193,0,198,161,179,0,198,193,190,0,198,65,178,0,198,129,193,0,197,165,199,2,197,5,201,2,197,163,202,2,197,3,203,2,197,100,204,2,197,163,206,2,197,131,207,2,197,98,194,2,197,226,207,2,197,35,208,2,197,99,211,2,197,134,209,2,197,68,210,2,197,197,210,2,197,198,212,2,197,132,213,2,197,3,214,2,197,99,214,2,197,198,215,2,197,132,216,2,197,6,217,2,197,195,217,2,197,69,220,2,197,227,220,2,197,68,221,2,197,195,221,2,197,36,222,2,197,37,219,2,197,196,219,2,197,101,224,2,197,68,225,2,197,194,225,2,197,226,203,2,133,5,40,122,197,226,204,2,3,5,42,122,133,5,42,122,197,98,205,2,133,5,44,122,197,226,205,2,133,5,46,122,197,2,207,2,133,5,48,122,133,5,50,122,133,5,52,122,133,5,54,122,133,5,56,122,133,5,58,122,197,130,208,2,197,2,209,2,133,5,60,122,197,194,211,2,197,66,212,2,133,5,62,122,197,194,214,2,197,66,215,2,133,5,64,122,197,34,218,2,197,162,218,2,133,5,66,122,197,162,222,2,197,34,223,2,133,5,68,122,133,5,70,122,197,34,204,2,144,5,40,122,197,34,205,2,16,5,42,122,158,5,42,122,197,162,205,2,144,5,44,122,197,34,206,2,151,5,46,122,197,66,207,2,144,5,48,122,144,5,50,122,155,5,52,122,144,5,54,122,144,5,56,122,152,5,58,122,197,194,208,2,197,66,209,2,152,5,60,122,197,2,212,2,197,130,212,2,152,5,62,122,197,2,215,2,197,130,215,2,152,5,64,122,197,98,218,2,197,226,218,2,152,5,66,122,197,226,222,2,197,98,223,2,144,5,68,122,144,5,70,122,38,5,40,122,44,5,42,122,38,5,44,122,37,5,46,122,38,5,48,122,38,5,50,122,49,5,52,122,38,5,54,122,38,5,56,122,40,5,58,122,40,5,60,122,40,5,62,122,40,5,64,122,40,5,66,122,38,5,68,122,38,5,70,122,40,5,72,122,38,5,74,122,44,5,76,122,44,5,78,122,44,5,80,122,40,5,82,122,40,5,84,122,37,5,86,122,40,5,88,122,40,5,90,122,40,5,92,122,40,5,94,122,44,5,96,122,44,5,98,122,49,5,100,122,198,226,176,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,5,96,122,3,5,98,122,3,5,100,122,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,96,122,16,5,98,122,16,5,100,122,16,5,102,122,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,123,5,5,8,123,5,5,10,123,5,5,14,123,5,5,18,123,5,5,20,123,5,5,22,123,5,5,26,123,5,5,28,123,5,5,30,123,5,5,36,123,5,5,38,123,5,5,40,123,5,5,42,123,5,5,50,123,5,5,52,123,5,5,54,123,5,5,56,123,5,5,58,123,5,5,60,123,5,5,62,123,5,5,70,123,5,5,72,123,5,5,76,123,5,5,78,123,5,5,82,123,5,5,84,123,5,112,6,123,5,112,58,123,5,112,38,123,5,112,28,123,5,5,80,123,5,112,80,123,5,5,74,123,5,112,72,123,5,120,108,123,5,112,70,123,5,112,106,123,5,112,108,123,5,5,12,123,5,5,34,123,5,112,82,123,5,112,86,123,5,5,100,123,5,5,102,123,5,5,96,123,32,112,106,123,32,5,8,123,32,5,20,123,32,5,30,123,32,5,36,123,5,5,64,123,5,5,66,123,5,5,68,123,32,5,28,123,5,5,46,123,5,5,48,123,5,5,114,123,5,5,116,123,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,7,152,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,153,123,193,16,153,123,193,23,153,123,193,30,153,123,5,5,155,123,193,2,157,123,32,5,155,123,193,9,157,123,193,16,157,123,193,23,157,123,193,30,157,123,193,37,157,123,193,44,157,123,193,51,157,123,193,65,157,123,193,72,157,123,5,5,159,123,193,2,161,123,193,9,161,123,32,5,159,123,193,16,161,123,193,23,161,123,193,30,161,123,193,37,161,123,193,44,161,123,193,51,161,123,193,58,161,123,193,65,161,123,193,72,161,123,193,79,161,123,193,86,161,123,193,93,161,123,193,9,169,123,193,16,169,123,193,23,169,123,193,30,169,123,193,37,169,123,193,37,153,123,193,114,165,123,193,100,165,123,193,58,157,123,193,163,165,123,193,79,157,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,72,169,123,193,44,169,123,193,51,169,123,193,58,169,123,193,65,169,123,193,79,169,123,193,86,169,123,193,93,169,123,193,100,169,123,193,107,169,123,193,121,169,123,193,128,169,123,193,135,169,123,193,142,169,123,193,156,169,123,193,163,169,123,193,170,169,123,193,100,161,123,193,107,161,123,193,114,161,123,5,5,163,123,193,2,165,123,32,5,163,123,193,9,165,123,193,16,165,123,193,23,165,123,193,30,165,123,193,37,165,123,193,44,165,123,193,51,165,123,193,58,165,123,193,65,165,123,193,72,165,123,193,79,165,123,193,86,165,123,193,93,165,123,193,107,165,123,193,121,165,123,193,128,165,123,193,135,165,123,193,142,165,123,193,149,165,123,193,156,165,123,193,170,165,123,193,177,165,123,193,184,165,123,5,5,167,123,193,2,169,123,32,5,167,123,193,84,170,123,193,114,169,123,193,112,170,123,193,149,169,123,193,184,169,123,193,105,170,123,193,226,169,123,193,42,170,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,189,170,123,193,196,170,123,193,203,170,123,193,210,170,123,193,217,170,123,193,224,170,123,193,231,170,123,193,238,170,123,193,245,170,123,193,252,170,123,193,5,171,123,193,12,171,123,193,19,171,123,193,26,171,123,193,33,171,123,193,40,171,123,193,47,171,123,193,177,169,123,193,191,169,123,193,198,169,123,193,205,169,123,193,212,169,123,193,219,169,123,193,233,169,123,193,240,169,123,193,247,169,123,193,254,169,123,193,7,170,123,193,14,170,123,193,21,170,123,193,28,170,123,193,49,170,123,193,56,170,123,193,63,170,123,193,70,170,123,193,77,170,123,193,91,170,123,193,98,170,123,193,119,170,123,193,126,170,123,193,133,170,123,193,140,170,123,193,147,170,123,193,154,170,123,193,161,170,123,193,168,170,123,193,175,170,123,193,182,170,123,193,35,170,123,5,5,174,123,5,5,176,123,5,5,178,123,5,5,180,123,5,5,182,123,5,5,184,123,5,5,186,123,5,5,188,123,5,5,190,123,5,5,192,123,5,5,194,123,5,5,196,123,5,5,198,123,5,5,200,123,5,5,202,123,5,5,204,123,5,5,206,123,5,5,208,123,5,5,210,123,5,5,212,123,5,5,214,123,5,5,216,123,5,5,218,123,5,5,220,123,5,5,222,123,5,5,224,123,5,5,226,123,5,5,228,123,5,5,230,123,5,5,232,123,5,5,234,123,5,5,236,123,160,5,174,123,160,5,176,123,160,5,178,123,160,5,180,123,160,5,182,123,160,5,184,123,160,5,186,123,160,5,188,123,160,5,190,123,160,5,192,123,160,5,194,123,160,5,196,123,160,5,198,123,160,5,200,123,160,5,202,123,160,5,204,123,160,5,206,123,160,5,208,123,160,5,210,123,160,5,212,123,160,5,214,123,160,5,216,123,160,5,218,123,160,5,220,123,160,5,222,123,160,5,224,123,160,5,226,123,160,5,228,123,160,5,230,123,160,5,232,123,160,5,234,123,160,5,236,123,193,58,238,123,193,65,238,123,193,72,238,123,193,79,238,123,193,86,238,123,193,93,238,123,193,100,238,123,193,107,238,123,193,114,238,123,193,121,238,123,193,128,238,123,193,135,238,123,193,142,238,123,193,149,238,123,193,156,238,123,193,163,238,123,193,170,238,123,193,177,238,123,193,184,238,123,193,191,238,123,193,198,238,123,193,9,238,123,193,16,238,123,193,23,238,123,193,30,238,123,193,37,238,123,193,44,238,123,193,51,238,123,193,205,238,123,193,212,238,123,193,254,238,123,193,219,238,123,193,226,238,123,193,233,238,123,193,240,238,123,193,247,238,123,193,7,239,123,193,49,239,123,193,35,239,123,193,133,239,123,193,56,239,123,193,42,239,123,193,140,239,123,193,105,239,123,193,91,239,123,193,112,239,123,193,98,239,123,193,14,239,123,193,147,239,123,193,28,239,123,193,21,239,123,193,77,239,123,193,63,239,123,193,119,239,123,193,84,239,123,193,70,239,123,193,126,239,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,193,19,242,123,193,26,242,123,193,33,242,123,193,40,242,123,193,47,242,123,193,54,242,123,193,61,242,123,193,68,242,123,193,75,242,123,193,82,242,123,193,89,242,123,193,96,242,123,193,103,242,123,193,110,242,123,193,117,242,123,193,124,242,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,193,9,247,123,193,16,247,123,193,23,247,123,193,30,247,123,193,37,247,123,193,44,247,123,193,51,247,123,193,58,247,123,193,65,247,123,193,72,247,123,193,79,247,123,193,86,247,123,193,93,247,123,193,100,247,123,193,107,247,123,193,114,247,123,193,121,247,123,193,128,247,123,193,135,247,123,193,142,247,123,193,149,247,123,193,156,247,123,193,163,247,123,193,170,247,123,193,177,247,123,193,184,247,123,193,191,247,123,193,198,247,123,193,205,247,123,255,255,255,255,255,255,255,255,255,255,255,255,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,251,123,193,16,251,123,193,23,251,123,193,30,251,123,193,37,251,123,193,44,251,123,193,51,251,123,193,58,251,123,193,65,251,123,193,72,251,123,193,79,251,123,193,86,251,123,193,93,251,123,193,100,251,123,193,107,251,123,193,121,251,123,193,128,251,123,193,135,251,123,193,142,251,123,193,149,251,123,193,156,251,123,193,163,251,123,193,170,251,123,193,177,251,123,193,184,251,123,193,191,251,123,193,198,251,123,193,205,251,123,193,212,251,123,193,219,251,123,193,226,251,123,193,114,251,123,160,5,70,124,160,5,72,124,160,5,74,124,160,5,76,124,160,5,78,124,160,5,80,124,160,5,82,124,160,5,84,124,5,5,6,124,5,5,8,124,5,5,10,124,5,5,12,124,5,5,14,124,5,5,16,124,5,5,18,124,5,5,20,124,5,5,22,124,5,5,24,124,5,5,26,124,5,5,28,124,5,5,30,124,5,5,32,124,5,5,34,124,5,5,36,124,5,5,38,124,5,5,40,124,5,5,42,124,5,5,44,124,5,5,46,124,5,5,48,124,5,5,50,124,5,5,52,124,160,5,6,124,160,5,8,124,160,5,10,124,160,5,12,124,160,5,14,124,160,5,16,124,160,5,18,124,160,5,20,124,160,5,22,124,160,5,24,124,160,5,26,124,160,5,28,124,160,5,30,124,160,5,32,124,160,5,34,124,160,5,36,124,160,5,38,124,160,5,40,124,160,5,42,124,160,5,44,124,160,5,46,124,160,5,48,124,160,5,50,124,160,5,52,124,160,5,54,124,160,5,56,124,160,5,58,124,160,5,60,124,160,5,62,124,160,5,64,124,160,5,66,124,160,5,68,124,5,5,54,124,5,5,56,124,5,5,58,124,5,5,60,124,5,5,62,124,5,5,64,124,5,5,66,124,5,5,68,124,5,5,70,124,5,5,72,124,5,5,74,124,5,5,76,124,5,5,78,124,5,5,80,124,5,5,82,124,5,5,84,124,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,250,90,124,193,3,91,124,193,10,91,124,193,17,91,124,193,24,91,124,193,31,91,124,193,38,91,124,193,45,91,124,193,52,91,124,193,59,91,124,193,66,91,124,193,73,91,124,193,80,91,124,255,255,255,255,255,255,255,255,255,255,255,255,193,9,92,124,193,16,92,124,193,23,92,124,193,30,92,124,193,37,92,124,193,44,92,124,193,51,92,124,193,58,92,124,193,65,92,124,193,72,92,124,193,79,92,124,193,86,92,124,193,93,92,124,193,100,92,124,193,107,92,124,193,114,92,124,193,121,92,124,193,128,92,124,193,135,92,124,193,142,92,124,193,149,92,124,193,156,92,124,193,163,92,124,193,170,92,124,193,177,92,124,193,184,92,124,193,191,92,124,193,198,92,124,193,205,92,124,193,212,92,124,255,255,255,255,255,255,255,255,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,193,9,98,124,193,16,98,124,193,23,98,124,193,30,98,124,193,37,98,124,193,44,98,124,193,51,98,124,193,58,98,124,193,65,98,124,193,72,98,124,193,79,98,124,193,86,98,124,193,93,98,124,193,100,98,124,193,107,98,124,193,114,98,124,193,121,98,124,193,128,98,124,193,135,98,124,193,142,98,124,193,149,98,124,193,156,98,124,193,163,98,124,193,170,98,124,193,177,98,124,193,184,98,124,193,191,98,124,193,198,98,124,193,205,98,124,193,212,98,124,193,219,98,124,255,255,255,255,193,9,99,124,193,16,99,124,193,23,99,124,193,30,99,124,193,37,99,124,193,44,99,124,193,51,99,124,193,58,99,124,193,65,99,124,193,72,99,124,193,79,99,124,193,86,99,124,255,255,255,255,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,255,255,255,255,193,21,100,124,193,28,100,124,193,35,100,124,193,42,100,124,193,49,100,124,193,56,100,124,193,63,100,124,193,70,100,124,193,77,100,124,193,84,100,124,193,91,100,124,193,98,100,124,193,105,100,124,193,112,100,124,193,119,100,124,193,126,100,124,193,133,100,124,193,140,100,124,193,147,100,124,255,255,255,255,193,154,100,124,193,161,100,124,255,255,255,255,193,168,100,124,193,175,100,124,193,182,100,124,193,189,100,124,193,196,100,124,193,203,100,124,193,210,100,124,193,217,100,124,193,224,100,124,193,231,100,124,193,238,100,124,193,245,100,124,193,252,100,124,193,5,101,124,193,12,101,124,255,255,255,255,255,255,255,255,193,19,101,124,193,26,101,124,193,33,101,124,193,40,101,124,193,47,101,124,193,54,101,124,193,61,101,124,193,68,101,124,193,75,101,124,193,82,101,124,193,89,101,124,193,96,101,124,193,103,101,124,193,110,101,124,255,255,255,255,255,255,255,255,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,154,113,124,193,161,113,124,193,168,113,124,193,175,113,124,193,182,113,124,193,189,113,124,193,196,113,124,193,203,113,124,193,210,113,124,193,217,113,124,193,224,113,124,193,231,113,124,193,238,113,124,193,245,113,124,193,252,113,124,193,5,114,124,193,12,114,124,193,19,114,124,193,26,114,124,193,33,114,124,193,40,114,124,193,47,114,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,54,114,124,193,61,114,124,193,68,114,124,193,75,114,124,193,82,114,124,193,89,114,124,193,96,114,124,193,103,114,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,115,124,193,16,115,124,193,23,115,124,193,30,115,124,193,37,115,124,193,44,115,124,255,255,255,255,255,255,255,255,193,51,115,124,255,255,255,255,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,255,255,255,255,193,112,116,124,193,119,116,124,255,255,255,255,255,255,255,255,255,255,255,255,193,126,116,124,255,255,255,255,255,255,255,255,193,133,116,124,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,32,5,132,124,5,5,132,124,32,5,134,124,5,5,134,124,193,2,136,124,193,9,136,124,32,5,138,124,5,5,138,124,193,2,140,124,193,9,140,124,193,16,140,124,193,23,140,124,32,5,142,124,5,5,142,124,32,5,144,124,5,5,144,124,32,5,146,124,5,5,146,124,32,5,148,124,5,5,148,124,32,5,150,124,5,5,150,124,193,2,152,124,193,9,152,124,193,16,152,124,193,23,152,124,193,30,152,124,193,37,152,124,32,5,154,124,5,5,154,124,193,2,156,124,255,255,255,255,193,9,162,124,193,16,162,124,193,23,162,124,193,30,162,124,193,37,162,124,193,44,162,124,193,51,162,124,193,58,162,124,193,65,162,124,193,72,162,124,193,79,162,124,193,86,162,124,193,93,162,124,193,100,162,124,193,107,162,124,193,114,162,124,193,121,162,124,193,128,162,124,193,135,162,124,193,142,162,124,193,149,162,124,193,156,162,124,198,2,172,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,163,124,193,16,163,124,193,23,163,124,193,30,163,124,193,37,163,124,193,44,163,124,193,51,163,124,5,5,165,124,5,112,165,124,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,193,9,201,124,193,16,201,124,193,23,201,124,193,30,201,124,193,37,201,124,193,44,201,124,193,51,201,124,193,58,201,124,193,65,201,124,193,72,201,124,193,79,201,124,193,86,201,124,193,93,201,124,193,100,201,124,193,107,201,124,193,114,201,124,193,121,201,124,193,128,201,124,193,135,201,124,193,142,201,124,193,149,201,124,193,156,201,124,193,163,201,124,193,170,201,124,193,177,201,124,193,184,201,124,193,191,201,124,193,198,201,124,193,205,201,124,193,212,201,124,193,219,201,124,193,226,201,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,193,9,205,124,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,193,222,223,124,193,229,223,124,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,5,112,36,125,5,112,38,125,5,112,40,125,5,112,42,125,5,112,44,125,5,112,46,125,5,112,48,125,5,120,48,125,5,112,50,125,5,112,52,125,5,112,54,125,5,120,54,125,5,112,56,125,5,120,56,125,5,112,58,125,5,120,58,125,5,112,60,125,5,112,62,125,5,112,64,125,5,117,66,125,5,122,66,125,5,112,68,125,5,112,70,125,5,112,72,125,5,112,74,125,5,120,74,125,5,112,76,125,5,120,76,125,5,112,78,125,5,112,80,125,193,16,82,125,193,23,82,125,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,193,96,154,125,193,98,154,125,193,100,154,125,193,102,154,125,193,104,154,125,193,106,154,125,193,108,154,125,193,110,154,125,193,112,154,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,193,119,0,198,225,173,0,198,129,174,0,198,193,174,0,198,225,174,0,198,161,175,0,198,65,121,0,198,65,176,0,198,129,176,0,198,129,177,0,198,161,177,0,198,33,123,0,198,1,178,0,198,97,178,0,198,161,178,0,198,193,178,0,198,1,179,0,198,33,179,0,198,225,179,0,198,33,180,0,198,65,180,0,198,97,180,0,198,129,180,0,198,65,124,0,198,65,181,0,198,129,181,0,198,225,181,0,198,33,182,0,198,65,182,0,198,129,182,0,198,161,183,0,198,33,126,0,198,65,172,0,198,193,175,0,198,225,172,0,198,193,183,0,198,33,176,0,198,225,177,0,198,193,172,0,198,193,177,0,198,129,175,0,198,193,180,0,198,1,195,0,198,193,198,0,198,1,198,0,198,161,195,0,198,193,216,0,198,1,184,0,198,1,194,0,198,193,195,0,198,97,195,0,198,97,204,0,198,33,183,0,198,97,200,0,198,129,213,0,198,129,204,0,198,1,180,0,198,1,205,0,198,65,202,0,198,225,185,0,198,225,215,0,198,97,177,0,198,193,181,0,198,97,198,0,198,129,179,0,198,65,206,0,198,161,201,0,198,161,213,0,198,97,184,0,198,65,183,0,198,161,198,0,198,33,192,0,198,97,192,0,198,129,172,0,198,33,173,0,198,193,215,0,198,97,188,0,198,97,174,0,198,225,182,0,198,65,192,0,198,65,214,0,198,1,192,0,198,161,204,0,198,65,205,0,198,1,183,0,198,129,198,0,198,129,195,0,198,33,195,0,198,33,202,0,198,193,179,0,198,129,183,0,198,97,216,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,220,171,251,193,122,79,252,193,172,95,252,193,248,45,251,193,116,132,252,193,160,14,251,193,44,168,251,193,76,2,251,193,12,24,252,193,74,216,251,193,226,174,252,193,14,54,251,193,190,93,251,193,20,114,252,193,254,232,252,193,156,33,253,193,244,14,252,193,128,78,253,193,254,22,252,193,236,194,251,193,222,224,252,193,162,198,251,193,164,95,252,193,76,9,251,193,248,27,251,193,82,32,251,193,12,241,251,193,218,172,252,193,108,222,252,193,140,34,253,193,124,98,253,193,176,44,251,193,106,20,253,193,198,136,252,193,174,35,253,193,116,37,253,193,132,50,253,193,148,52,253,193,178,78,253,193,170,81,253,193,218,133,253,193,88,148,253,193,28,150,253,193,120,173,251,193,10,56,252,193,28,219,252,255,255,255,255,255,255,255,255,193,48,3,251,193,146,31,251,193,210,27,251,193,90,13,251,193,40,26,251,193,66,29,251,193,254,42,251,193,246,44,251,193,92,67,251,193,192,64,251,193,84,67,251,193,228,69,251,193,182,93,251,193,52,96,251,193,132,103,251,193,254,103,251,198,193,197,0,198,33,198,0,198,65,198,0,198,225,198,0,198,65,199,0,198,97,199,0,198,1,174,0,198,65,200,0,198,161,200,0,198,1,201,0,198,129,202,0,198,129,203,0,198,33,204,0,198,65,204,0,198,161,205,0,198,33,206,0,198,97,206,0,198,1,207,0,198,193,206,0,198,33,207,0,198,65,207,0,198,225,206,0,198,129,207,0,198,161,207,0,198,193,207,0,198,33,208,0,198,225,208,0,198,193,208,0,198,33,209,0,198,129,209,0,198,97,210,0,198,129,210,0,193,100,44,253,193,102,232,251,193,218,70,253,193,10,50,253,193,144,34,252,193,112,4,251,193,130,56,251,193,118,224,253,193,118,224,253,193,248,103,251,193,242,98,253,193,50,67,251,193,140,103,251,193,224,186,251,193,20,106,252,193,164,192,252,193,126,251,252,193,46,9,253,193,152,19,253,193,54,87,253,193,92,250,251,193,108,25,252,193,20,51,252,193,94,81,252,193,230,232,252,193,142,94,253,193,72,167,253,193,202,7,251,193,56,50,251,193,224,4,252,193,76,63,252,193,32,250,252,198,161,174,0,198,1,182,0,198,97,175,0,198,65,175,0,198,33,175,0,198,193,176,0,198,33,178,0,198,225,178,0,198,65,179,0,198,97,179,0,198,97,181,0,198,161,181,0,198,225,186,0,198,1,187,0,198,65,187,0,198,97,187,0,198,33,187,0,198,129,187,0,198,161,188,0,198,65,189,0,198,97,190,0,198,65,190,0,198,65,191,0,198,33,191,0,198,225,191,0,198,193,192,0,255,255,255,255,198,225,193,0,198,33,194,0,198,65,195,0,198,225,196,0,198,65,197,0,193,250,2,251,193,206,4,251,193,2,5,251,193,116,8,251,193,106,12,251,193,126,14,251,193,152,14,251,193,20,16,251,193,14,18,251,193,68,19,251,193,160,21,251,193,112,21,251,193,76,24,251,193,14,34,251,193,68,26,251,193,102,26,251,193,164,27,251,193,156,28,251,193,228,28,251,193,98,29,251,193,194,27,251,193,162,29,251,193,166,29,251,193,76,30,251,193,180,30,251,193,114,10,251,193,78,31,251,193,146,31,251,193,24,140,253,193,200,34,251,193,140,35,251,193,124,36,251,193,178,209,253,193,148,34,253,193,232,98,251,193,134,160,251,193,236,166,252,193,102,203,252,193,126,68,252,193,22,131,252,193,252,49,253,193,44,135,253,193,118,98,251,193,24,134,251,193,126,250,251,193,38,29,252,193,174,36,252,193,130,175,252,193,210,181,252,193,170,126,253,193,146,43,251,193,234,203,252,193,94,33,251,193,88,32,251,193,86,143,252,193,104,178,252,193,94,230,252,193,196,127,253,193,180,39,253,193,198,193,251,193,92,250,251,193,168,35,253,193,216,4,251,193,158,125,251,193,36,18,253,193,156,33,253,193,160,157,251,193,216,170,251,193,88,198,251,193,86,14,252,193,216,164,252,193,192,78,252,193,182,10,251,193,252,83,251,193,158,125,251,193,98,145,251,193,240,171,251,193,128,80,252,193,64,85,252,193,128,193,252,193,212,200,252,193,80,100,253,193,42,135,253,193,76,139,253,193,36,149,253,193,112,13,251,193,138,139,252,193,88,97,253,193,212,131,253,193,116,176,251,193,252,7,251,193,134,21,251,193,48,126,251,193,254,131,251,193,206,218,251,193,92,250,251,193,32,223,251,193,232,235,251,193,90,241,251,193,60,24,252,193,70,82,252,193,214,100,252,193,10,192,252,193,192,18,253,193,228,18,253,193,98,98,253,193,216,133,253,193,166,47,251,193,102,34,252,193,144,57,251,193,110,59,252,193,214,86,252,193,190,248,252,193,34,130,253,193,252,190,253,193,236,210,253,193,196,236,251,193,8,29,252,193,190,215,252,193,118,152,252,193,148,155,252,193,18,169,252,193,144,72,252,193,98,49,252,193,56,38,253,193,90,10,251,193,44,226,252,193,244,36,251,193,16,206,253,193,90,141,251,193,16,43,252,193,184,245,252,193,114,23,253,193,186,193,251,193,80,214,252,193,200,12,253,193,48,157,251,193,240,233,251,193,236,26,252,193,98,74,252,193,196,88,253,193,102,13,251,193,150,31,251,193,208,43,251,193,192,207,251,193,44,3,252,193,174,62,252,193,104,112,252,193,84,198,252,193,214,248,252,193,56,253,252,193,36,61,253,193,36,138,253,193,126,184,253,193,208,203,253,193,58,129,252,193,76,137,252,193,44,178,252,193,14,230,252,193,206,103,253,193,106,59,252,193,118,104,252,193,118,238,252,193,226,84,253,193,12,224,253,193,114,227,251,193,228,125,253,193,248,40,251,193,142,236,251,193,36,238,251,193,184,25,252,193,42,34,252,193,136,81,252,193,54,95,252,193,110,128,252,193,190,174,252,193,166,151,253,193,80,28,251,193,254,189,251,193,202,127,253,193,102,16,251,193,232,139,251,193,70,29,252,193,46,73,253,193,6,167,251,193,18,180,251,193,22,239,251,193,122,79,252,193,122,128,253,193,114,36,251,193,6,57,251,193,78,134,251,193,70,204,251,193,180,198,251,193,188,204,251,193,128,204,251,193,170,204,251,193,74,206,251,193,156,204,251,193,116,210,251,193,36,214,251,193,90,215,251,193,42,217,251,193,64,222,251,193,146,232,251,193,150,224,251,193,18,230,251,193,128,226,251,193,162,227,251,193,8,224,251,193,230,29,251,193,10,30,251,193,22,30,251,193,110,228,251,193,124,204,252,193,184,204,252,193,240,233,251,193,248,233,251,193,116,209,252,193,10,236,251,193,242,235,251,193,50,236,251,193,246,236,251,193,50,238,251,193,88,60,251,193,102,62,251,193,154,62,251,193,188,64,251,193,216,64,251,193,44,67,251,193,44,67,251,193,84,67,251,193,120,67,251,193,136,67,251,193,164,69,251,193,40,85,251,193,34,72,251,193,42,85,251,193,98,72,251,193,172,74,251,193,150,35,251,193,228,99,251,193,168,88,251,193,218,90,251,193,14,91,251,193,82,88,251,193,68,92,251,193,66,92,251,193,38,96,251,193,30,99,251,193,238,99,251,193,32,100,251,193,198,100,251,193,154,101,251,193,76,102,251,193,226,104,251,193,218,57,251,193,100,106,251,193,108,159,251,193,166,220,251,193,46,44,252,193,228,133,252,193,130,121,253,193,220,171,253,193,136,210,253,193,132,214,253,193,8,42,251,193,250,229,251,193,88,11,252,193,208,75,253,193,176,153,251,193,4,183,251,193,206,187,251,193,68,206,251,193,212,36,252,193,12,55,252,193,26,86,252,193,208,140,252,193,168,179,252,193,164,202,252,193,38,73,253,193,90,238,252,193,8,81,253,193,98,105,253,193,250,35,251,193,52,42,251,193,142,60,251,193,240,50,252,193,246,36,251,193,158,37,251,193,126,39,251,193,248,39,251,193,66,42,251,193,254,42,251,193,4,43,251,193,12,44,251,193,246,44,251,193,20,45,251,193,22,45,251,193,248,45,251,193,208,47,251,193,46,48,251,193,154,48,251,193,52,50,251,193,94,50,251,193,118,50,251,193,118,50,251,193,118,50,251,193,188,50,251,193,158,48,252,193,128,54,251,193,110,55,251,193,178,55,251,193,142,56,251,193,154,56,251,193,242,56,251,193,80,60,251,193,198,57,251,193,230,57,251,193,242,58,251,193,102,233,251,193,176,204,252,193,134,204,252,193,108,206,252,193,144,208,252,193,54,208,252,193,192,113,251,193,240,210,252,193,14,211,252,193,200,234,251,193,16,235,251,193,52,217,252,193,96,217,252,193,224,77,253,193,70,220,252,193,108,223,252,193,96,223,252,193,192,223,252,193,112,42,251,193,232,223,252,193,236,223,252,193,2,224,252,193,224,224,252,193,94,225,252,193,222,224,252,193,180,227,252,193,130,226,252,193,190,232,252,193,182,227,252,193,82,228,252,193,74,230,252,193,206,230,252,198,65,184,0,198,129,184,0,198,161,184,0,198,193,184,0,198,33,185,0,198,193,185,0,198,1,186,0,198,97,186,0,198,161,186,0,198,193,186,0,198,33,187,0,198,161,187,0,198,193,187,0,198,225,187,0,198,1,188,0,198,33,188,0,198,129,188,0,198,193,188,0,198,225,188,0,198,65,189,0,198,129,189,0,198,161,189,0,198,193,189,0,198,225,189,0,198,1,190,0,198,33,190,0,198,129,190,0,198,161,190,0,198,1,191,0,198,97,191,0,198,129,191,0,198,161,191,0,193,118,106,251,193,80,108,251,193,176,109,251,193,214,109,251,193,238,109,251,193,162,108,251,193,56,111,251,193,160,112,251,193,188,112,251,193,240,115,251,193,122,118,251,193,122,118,251,193,236,121,251,193,196,123,251,193,248,124,251,193,158,125,251,193,104,127,251,193,6,128,251,193,46,128,251,193,80,128,251,193,216,164,251,193,144,130,251,193,6,131,251,193,132,133,251,193,8,135,251,193,52,137,251,193,212,137,251,193,46,139,251,193,66,141,251,193,50,139,251,193,106,142,251,193,100,142,251,193,48,111,251,193,160,117,251,193,250,157,251,193,98,158,251,193,208,165,251,193,130,168,251,193,98,176,251,193,38,180,251,193,46,178,251,193,254,182,251,193,124,181,251,193,70,186,251,193,116,190,251,193,96,200,251,193,154,202,251,193,226,200,251,193,50,214,251,193,96,226,251,193,240,233,251,193,248,233,251,193,248,235,251,193,192,11,252,193,244,14,252,193,184,25,252,193,162,34,252,193,94,32,252,193,210,36,252,193,100,45,252,193,188,53,252,193,206,120,252,193,94,65,252,193,58,72,252,193,32,143,251,193,212,78,253,193,158,147,251,193,142,148,251,193,220,148,251,193,146,150,251,193,98,151,251,193,232,152,251,193,234,152,251,193,158,153,251,193,214,155,251,193,144,156,251,193,150,156,251,193,156,156,251,193,48,157,251,193,102,213,253,193,102,160,251,193,122,160,251,193,122,160,251,193,52,217,252,193,122,162,251,193,122,162,251,193,234,164,251,193,86,230,251,193,36,185,252,193,140,165,251,193,210,165,251,193,84,167,251,193,34,168,251,193,54,170,251,193,74,170,251,193,224,170,251,193,44,85,253,193,170,85,253,193,116,87,253,193,212,89,253,193,244,90,253,193,196,90,253,193,92,91,253,193,88,100,253,193,154,102,253,193,156,102,253,193,178,103,253,193,170,108,253,193,176,109,253,193,122,113,253,193,84,120,253,193,54,121,253,193,108,122,253,193,186,122,253,193,44,130,253,193,36,132,253,193,234,144,251,193,66,137,253,193,222,137,253,193,232,140,253,193,72,143,253,193,36,144,253,193,184,146,253,193,150,147,253,193,174,148,253,193,188,149,253,193,198,148,253,193,198,148,253,193,138,174,251,193,178,173,251,193,142,173,251,193,176,174,251,193,242,176,251,193,64,176,251,193,26,180,251,193,34,180,251,193,38,180,251,193,34,180,251,193,172,181,251,193,254,182,251,193,72,183,251,193,44,183,251,193,66,183,251,193,144,185,251,193,70,186,251,193,224,186,251,193,100,188,251,193,40,189,251,193,234,191,251,193,138,193,251,193,208,193,251,193,200,196,251,193,180,195,251,193,162,196,251,193,232,194,251,193,50,198,251,193,104,198,251,193,158,200,251,193,20,201,251,193,166,202,251,193,70,186,251,193,36,214,251,193,54,222,251,193,128,226,251,193,20,241,251,193,8,27,252,193,160,29,252,193,210,36,252,193,188,53,252,193,50,64,252,193,8,83,252,193,68,129,252,193,240,134,252,193,40,135,252,193,38,135,252,193,132,135,252,193,144,135,252,193,158,135,252,193,242,137,252,193,244,137,252,193,236,144,252,193,94,148,252,193,104,157,252,193,168,179,252,193,180,180,252,193,230,181,252,193,66,191,252,193,114,198,252,193,246,215,252,193,8,223,252,193,8,223,252,193,206,230,252,198,129,192,0,198,161,192,0,198,225,192,0,198,33,193,0,198,97,193,0,198,161,193,0,198,193,193,0,198,225,126,0,198,225,194,0,198,65,127,0,198,1,128,0,198,97,196,0,198,129,196,0,198,193,196,0,198,1,197,0,198,33,197,0,198,97,197,0,198,129,197,0,198,161,197,0,198,225,197,0,198,193,128,0,198,33,129,0,198,33,199,0,198,129,199,0,198,161,199,0,198,193,199,0,198,225,199,0,198,1,200,0,198,33,200,0,198,129,200,0,198,193,200,0,198,225,200,0,193,160,236,251,193,140,239,251,193,20,241,251,193,80,240,251,193,38,241,251,193,38,239,251,193,74,243,251,193,16,246,251,193,80,245,251,193,234,247,251,193,44,250,251,193,220,254,251,193,104,253,251,193,60,3,252,193,116,5,252,193,190,6,252,193,112,7,252,193,32,9,252,193,182,9,252,193,234,10,252,193,198,13,252,193,244,14,252,193,246,14,252,193,254,14,252,193,52,135,251,193,158,16,252,193,74,22,252,193,152,24,252,193,240,23,252,193,14,24,252,193,188,22,252,193,194,26,252,193,178,25,252,193,8,27,252,193,184,25,252,193,234,26,252,193,10,27,252,193,36,27,252,193,140,27,252,193,158,25,252,193,162,31,252,193,34,32,252,193,222,34,252,193,94,32,252,193,128,34,252,193,78,37,252,193,100,29,252,193,4,39,252,193,194,39,252,193,36,40,252,193,132,41,252,193,92,46,252,193,100,45,252,193,94,45,252,193,10,47,252,193,244,46,252,193,218,48,252,193,206,48,252,193,10,50,252,193,2,29,251,193,4,55,252,193,216,53,252,193,22,58,252,193,192,59,252,193,36,64,252,193,94,65,252,193,158,67,252,193,50,68,252,193,244,69,252,193,200,70,252,193,184,72,252,193,174,76,252,193,248,78,252,193,134,79,252,193,194,79,252,193,248,79,252,193,194,80,252,193,194,80,252,193,42,84,252,193,84,84,252,193,80,85,252,193,18,86,252,193,170,88,252,193,160,90,252,193,108,93,252,193,214,94,252,193,104,94,252,193,128,96,252,193,172,95,252,193,24,154,251,193,106,102,252,193,174,108,252,193,244,108,252,193,210,110,252,193,232,110,252,193,108,112,252,193,54,75,252,193,80,85,252,193,158,91,252,193,100,94,252,193,36,103,252,193,124,102,252,193,12,111,252,193,104,111,252,193,180,113,252,193,114,116,252,193,96,116,252,193,26,131,252,193,158,150,252,193,104,157,252,193,124,168,252,193,46,177,252,193,168,179,252,193,18,189,252,193,114,198,252,193,98,226,252,193,90,230,252,193,184,7,253,193,214,21,253,193,4,25,253,193,198,136,252,193,102,34,253,193,156,35,253,193,126,34,253,193,174,35,253,193,168,35,253,193,134,35,253,193,116,37,253,198,33,201,0,198,65,201,0,198,97,201,0,198,129,201,0,198,193,201,0,198,225,201,0,198,97,202,0,198,161,202,0,198,193,202,0,198,225,202,0,198,1,203,0,198,33,203,0,198,97,203,0,198,161,203,0,198,193,203,0,198,225,203,0,198,1,204,0,198,193,204,0,198,225,204,0,198,33,205,0,198,97,205,0,198,129,205,0,198,225,205,0,198,1,206,0,198,129,206,0,198,161,206,0,198,97,207,0,198,225,207,0,198,1,208,0,198,65,208,0,198,97,208,0,198,129,208,0,193,180,113,252,193,196,113,252,193,194,113,252,193,110,114,252,193,22,115,252,193,224,114,252,193,226,114,252,193,226,114,252,193,114,116,252,193,152,116,252,193,62,119,252,193,140,117,252,193,136,125,252,193,190,125,252,193,136,127,252,193,58,129,252,193,26,131,252,193,144,132,252,193,98,135,252,193,144,135,252,193,142,137,252,193,148,138,252,193,246,137,252,193,172,141,252,193,32,141,252,193,236,144,252,193,46,144,252,193,158,145,252,193,120,149,252,193,240,153,252,193,240,153,252,193,8,154,252,193,136,158,252,193,222,158,252,193,166,159,252,193,218,160,252,193,242,159,252,193,170,162,252,193,228,171,252,193,130,172,252,193,120,172,252,193,210,172,252,193,108,174,252,193,90,174,252,193,106,176,252,193,236,179,252,193,122,178,252,193,196,179,252,193,238,181,252,193,166,185,252,193,232,188,252,193,98,189,252,193,16,191,252,193,114,191,252,193,12,192,252,193,236,192,252,193,126,193,252,193,224,197,252,193,114,198,252,193,10,199,252,193,32,200,252,193,38,201,252,193,46,202,252,193,166,202,252,198,161,208,0,198,1,209,0,198,65,209,0,198,97,131,0,198,193,131,0,198,97,209,0,198,161,209,0,198,193,209,0,198,225,209,0,198,1,210,0,198,33,210,0,198,65,210,0,198,193,210,0,198,1,211,0,198,33,211,0,198,65,211,0,198,97,211,0,198,161,211,0,198,1,212,0,198,65,212,0,198,161,212,0,198,225,212,0,198,1,213,0,198,33,213,0,198,65,213,0,198,97,213,0,198,1,214,0,198,33,214,0,198,97,214,0,198,161,214,0,198,193,214,0,198,1,215,0,198,161,210,0,198,225,210,0,198,129,211,0,198,225,211,0,198,193,211,0,198,33,212,0,198,65,212,0,198,97,212,0,198,193,212,0,198,225,213,0,198,129,214,0,198,225,214,0,198,97,215,0,198,129,215,0,198,161,215,0,198,33,216,0,198,225,216,0,198,1,217,0,198,33,217,0,198,65,217,0,198,129,217,0,198,193,217,0,198,225,217,0,198,97,218,0,198,161,218,0,198,65,219,0,198,225,219,0,198,33,220,0,198,97,220,0,198,129,220,0,198,193,220,0,198,161,220,0,193,244,229,252,193,16,230,252,193,20,230,252,193,52,230,252,193,32,231,252,193,120,236,252,193,210,233,252,193,52,239,252,193,96,238,252,193,100,238,252,193,170,238,252,193,112,8,253,193,42,241,252,193,214,243,252,193,222,245,252,193,140,247,252,193,238,245,252,193,58,250,252,193,254,248,252,193,194,252,252,193,56,253,252,193,28,254,252,193,60,254,252,193,118,255,252,193,228,2,253,193,26,4,253,193,10,3,253,193,184,7,253,193,28,5,253,193,164,6,253,193,196,7,253,193,16,8,253,193,206,6,253,193,96,9,253,193,140,11,253,193,6,16,253,193,52,16,253,193,86,18,253,193,208,18,253,193,222,18,253,193,182,19,253,193,156,19,253,193,12,30,251,193,138,27,253,193,138,30,253,193,240,30,253,193,204,31,253,193,172,32,253,193,134,35,253,193,22,40,253,193,112,45,253,193,76,47,253,193,18,49,253,193,154,49,253,193,168,53,253,193,120,55,253,193,196,57,253,193,96,41,251,193,84,60,253,193,2,61,253,193,38,61,253,193,88,45,251,193,8,71,253,193,200,73,253,193,22,40,253,193,148,52,253,193,200,73,253,193,208,84,253,193,58,96,253,193,64,101,253,193,102,128,253,193,218,133,253,193,234,139,253,193,182,146,253,193,88,148,253,193,198,148,253,193,28,150,253,193,244,178,253,193,118,224,253,193,154,183,251,193,142,183,251,193,10,237,251,193,16,246,251,193,52,114,252,193,152,116,252,193,128,119,252,193,234,163,252,193,142,56,253,193,110,220,253,193,14,224,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,33,215,0,198,65,215,0,198,1,216,0,198,65,216,0,198,129,216,0,198,161,216,0,198,225,132,0,198,1,217,0,198,97,217,0,198,161,217,0,198,1,218,0,198,33,218,0,198,65,218,0,198,129,218,0,198,193,218,0,198,225,218,0,198,1,219,0,198,33,219,0,198,97,219,0,198,129,219,0,198,161,219,0,198,1,220,0,198,65,220,0,198,129,220,0,198,1,221,0,198,65,221,0,198,97,221,0,198,161,221,0,198,225,221,0,198,1,222,0,198,33,222,0,198,65,222,0,193,158,149,253,193,192,154,253,193,188,157,253,193,122,158,253,193,190,159,253,193,114,165,253,193,54,166,253,193,220,167,253,193,18,174,253,193,162,177,253,193,244,178,253,193,58,190,253,193,118,196,253,193,106,198,253,193,58,201,253,193,218,199,253,193,114,201,253,193,246,202,253,193,84,202,253,193,182,205,253,193,220,209,253,193,94,213,253,193,190,214,253,193,36,217,253,193,222,217,253,193,158,217,253,193,10,218,253,193,86,218,253,193,240,219,253,193,176,221,253,255,255,255,255,255,255,255,255,198,225,220,0,198,33,221,0,198,129,221,0,198,193,221,0,198,161,222,0,198,225,222,0,198,33,223,0,198,97,223,0,198,193,223,0,198,33,224,0,198,193,224,0,198,129,225,0,198,161,225,0,198,225,225,0,198,1,226,0,198,65,226,0,198,97,226,0,198,161,226,0,198,193,226,0,198,225,226,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,97,222,0,198,129,222,0,198,193,222,0,198,1,223,0,198,65,223,0,198,129,223,0,198,161,223,0,198,225,223,0,198,1,224,0,198,65,224,0,198,97,224,0,198,129,224,0,198,161,224,0,198,225,224,0,198,1,225,0,198,33,225,0,198,65,225,0,198,97,225,0,198,193,225,0,198,33,226,0,198,129,226,0,198,1,227,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2,212,78,0,0,150,10,251,2,238,78,0,0,2,11,251,2,180,1,2,0,148,11,251,2,45,79,0,0,4,12,251,2,105,79,0,0,44,13,251,2,3,2,2,0,212,13,251,2,123,207,2,0,66,14,251,2,113,0,3,0,86,14,251,2,174,79,0,0,126,14,251,2,238,79,0,0,234,15,251,2,99,2,2,0,164,16,251,2,154,207,2,0,104,17,251,2,64,80,0,0,152,17,251,2,167,2,2,0,38,18,251,2,128,80,0,0,18,19,251,2,237,2,2,0,120,19,251,2,170,80,0,0,82,20,251,2,206,80,0,0,110,21,251,2,109,3,2,0,220,21,251,2,248,80,0,0,188,22,251,2,183,3,2,0,252,22,251,2,212,3,2,0,50,23,251,2,232,3,2,0,200,23,251,2,249,184,2,0,238,24,251,2,216,5,2,0,100,32,251,2,250,5,2,0,16,33,251,2,60,6,2,0,32,34,251,2,188,6,2,0,20,36,251,2,28,82,0,0,88,36,251,2,206,6,2,0,128,36,251,2,231,6,2,0,20,37,251,2,16,7,2,0,192,37,251,2,82,82,0,0,42,38,251,2,49,7,2,0,96,38,251,2,250,7,2,0,76,41,251,2,123,8,2,0,164,43,251,2,87,10,2,0,126,51,251,2,153,10,2,0,192,52,251,2,85,11,2,0,150,55,251,2,171,11,2,0,32,57,251,2,24,84,0,0,134,57,251,2,203,11,2,0,48,58,251,2,8,12,2,0,114,59,251,2,80,12,2,0,246,60,251,2,58,168,2,0,176,61,251,2,212,1,3,0,26,62,251,2,224,84,0,0,58,62,251,2,172,12,2,0,234,62,251,2,236,12,2,0,104,63,251,2,245,209,2,0,30,64,251,2,40,85,0,0,102,64,251,2,39,13,2,0,54,65,251,2,146,186,2,0,114,66,251,2,12,210,2,0,176,66,251,2,122,85,0,0,24,67,251,2,142,85,0,0,62,67,251,2,182,53,0,0,162,67,251,2,227,13,2,0,50,68,251,2,92,168,2,0,224,68,251,2,47,210,2,0,34,69,251,2,115,14,2,0,156,70,251,2,90,210,2,0,156,71,251,2,246,85,0,0,2,72,251,2,212,14,2,0,134,72,251,2,120,168,2,0,162,73,251,2,211,186,2,0,190,73,251,2,40,86,0,0,72,74,251,2,97,15,2,0,206,74,251,2,168,15,2,0,92,75,251,2,251,53,0,0,90,76,251,2,199,15,2,0,110,76,251,2,21,16,2,0,10,77,251,2,246,186,2,0,106,77,251,2,61,16,2,0,10,78,251,2,220,210,2,0,206,78,251,2,148,86,0,0,6,79,251,2,143,16,2,0,54,79,251,2,240,210,2,0,252,79,251,2,241,16,2,0,122,80,251,2,28,187,2,0,190,80,251,2,17,17,2,0,44,81,251,2,187,86,0,0,170,81,251,2,49,17,2,0,198,81,251,2,121,17,2,0,186,82,251,2,180,17,2,0,192,83,251,2,88,18,2,0,180,86,251,2,91,187,2,0,36,87,251,2,97,87,0,0,84,87,251,2,132,18,2,0,178,87,251,2,139,87,0,0,82,88,251,2,183,18,2,0,190,88,251,2,182,87,0,0,118,89,251,2,237,18,2,0,210,89,251,2,212,168,2,0,72,90,251,2,156,211,2,0,128,90,251,2,220,87,0,0,172,90,251,2,235,87,0,0,200,90,251,2,38,19,2,0,46,91,251,2,124,187,2,0,198,91,251,2,22,88,0,0,12,92,251,2,100,19,2,0,132,92,251,2,182,211,2,0,76,93,251,2,73,88,0,0,148,93,251,2,174,19,2,0,244,93,251,2,114,88,0,0,226,94,251,2,237,19,2,0,70,95,251,2,153,2,3,0,236,95,251,2,156,88,0,0,8,96,251,2,186,88,0,0,40,97,251,2,123,20,2,0,150,97,251,2,220,20,2,0,14,99,251,2,247,21,2,0,162,103,251,2,52,22,2,0,158,104,251,2,91,22,2,0,72,105,251,2,119,22,2,0,184,105,251,2,119,89,0,0,144,106,251,2,142,89,0,0,246,106,251,2,188,22,2,0,68,107,251,2,172,89,0,0,176,107,251,2,216,89,0,0,162,108,251,2,237,89,0,0,202,108,251,2,2,23,2,0,24,109,251,2,28,188,2,0,126,109,251,2,9,90,0,0,178,109,251,2,46,23,2,0,58,110,251,2,123,169,2,0,232,111,251,2,119,90,0,0,46,112,251,2,145,90,0,0,96,112,251,2,238,54,0,0,160,112,251,2,156,23,2,0,206,112,251,2,176,90,0,0,182,113,251,2,232,23,2,0,32,114,251,2,213,90,0,0,186,114,251,2,51,24,2,0,70,115,251,2,243,90,0,0,198,115,251,2,79,24,2,0,20,116,251,2,145,24,2,0,250,116,251,2,120,188,2,0,110,117,251,2,91,25,2,0,42,120,251,2,214,25,2,0,110,122,251,2,218,188,2,0,196,124,251,2,123,26,2,0,170,125,251,2,252,26,2,0,174,127,251,2,122,28,2,0,58,133,251,2,148,28,2,0,140,133,251,2,172,28,2,0,202,133,251,2,27,29,2,0,86,135,251,2,120,92,0,0,196,135,251,2,185,55,0,0,64,137,251,2,131,29,2,0,86,137,251,2,198,92,0,0,214,137,251,2,171,29,2,0,34,138,251,2,232,92,0,0,178,138,251,2,213,29,2,0,16,139,251,2,6,93,0,0,194,139,251,2,215,55,0,0,26,140,251,2,17,30,2,0,56,140,251,2,49,93,0,0,30,141,251,2,106,30,2,0,140,141,251,2,170,30,2,0,142,142,251,2,119,93,0,0,22,143,251,2,249,55,0,0,70,143,251,2,216,30,2,0,94,143,251,2,143,93,0,0,250,143,251,2,10,31,2,0,66,144,251,2,188,31,2,0,188,146,251,2,85,32,2,0,66,149,251,2,123,32,2,0,224,149,251,2,144,32,2,0,66,150,251,2,177,32,2,0,170,150,251,2,205,32,2,0,20,151,251,2,235,32,2,0,138,151,251,2,92,94,0,0,144,152,251,2,51,33,2,0,168,152,251,2,242,33,2,0,146,155,251,2,25,34,2,0,54,156,251,2,51,34,2,0,180,156,251,2,91,34,2,0,58,157,251,2,149,34,2,0,18,158,251,2,217,94,0,0,98,158,251,2,124,214,2,0,2,159,251,2,251,34,2,0,162,159,251,2,183,35,2,0,80,162,251,2,212,35,2,0,220,162,251,2,124,95,0,0,184,166,251,2,220,36,2,0,30,167,251,2,155,95,0,0,162,167,251,2,50,37,2,0,140,168,251,2,79,37,2,0,226,168,251,2,121,37,2,0,114,169,251,2,178,37,2,0,96,170,251,2,201,37,2,0,20,171,251,2,7,96,0,0,198,171,251,2,25,215,2,0,218,172,251,2,64,96,0,0,14,173,251,2,26,57,0,0,138,173,251,2,52,38,2,0,180,173,251,2,113,38,2,0,8,175,251,2,54,215,2,0,206,175,251,2,92,4,3,0,250,175,251,2,176,96,0,0,18,176,251,2,192,38,2,0,202,176,251,2,240,96,0,0,252,177,251,2,90,57,0,0,110,178,251,2,40,39,2,0,146,178,251,2,39,97,0,0,214,179,251,2,141,39,2,0,78,180,251,2,119,215,2,0,34,181,251,2,124,4,3,0,78,181,251,2,82,97,0,0,96,181,251,2,110,97,0,0,148,181,251,2,124,57,0,0,202,181,251,2,224,39,2,0,230,181,251,2,141,215,2,0,180,182,251,2,137,97,0,0,244,182,251,2,49,40,2,0,104,183,251,2,188,97,0,0,142,184,251,2,146,40,2,0,198,184,251,2,186,215,2,0,96,185,251,2,213,97,0,0,126,185,251,2,206,40,2,0,180,185,251,2,251,40,2,0,80,186,251,2,38,41,2,0,240,186,251,2,87,41,2,0,160,187,251,2,154,41,2,0,160,188,251,2,242,41,2,0,12,190,251,2,24,42,2,0,134,190,251,2,54,42,2,0,246,190,251,2,121,98,0,0,100,192,251,2,131,42,2,0,208,192,251,2,166,98,0,0,116,193,251,2,180,42,2,0,28,194,251,2,234,98,0,0,196,194,251,2,228,42,2,0,100,195,251,2,215,4,3,0,80,196,251,2,40,99,0,0,120,196,251,2,47,43,2,0,2,197,251,2,51,216,2,0,224,197,251,2,101,99,0,0,44,198,251,2,249,57,0,0,220,198,251,2,129,43,2,0,252,198,251,2,250,4,3,0,60,200,251,2,198,99,0,0,98,200,251,2,233,43,2,0,4,201,251,2,87,191,2,0,8,202,251,2,6,100,0,0,110,202,251,2,50,100,0,0,196,202,251,2,25,58,0,0,248,202,251,2,95,44,2,0,34,203,251,2,114,216,2,0,2,204,251,2,87,100,0,0,92,204,251,2,179,44,2,0,230,204,251,2,136,100,0,0,32,206,251,2,32,45,2,0,168,206,251,2,187,100,0,0,174,207,251,2,127,45,2,0,6,208,251,2,203,45,2,0,16,209,251,2,242,100,0,0,150,209,251,2,35,46,2,0,120,210,251,2,243,46,2,0,36,213,251,2,27,47,2,0,186,213,251,2,57,47,2,0,72,214,251,2,92,101,0,0,174,214,251,2,166,47,2,0,230,215,251,2,252,48,2,0,44,221,251,2,249,101,0,0,234,222,251,2,90,49,2,0,52,223,251,2,26,102,0,0,168,223,251,2,219,58,0,0,244,223,251,2,119,49,2,0,10,224,251,2,146,49,2,0,198,224,251,2,25,172,2,0,8,225,251,2,110,217,2,0,46,225,251,2,87,102,0,0,108,225,251,2,106,102,0,0,76,226,251,2,226,49,2,0,154,226,251,2,153,217,2,0,58,227,251,2,36,50,2,0,172,227,251,2,154,102,0,0,106,228,251,2,123,50,2,0,80,229,251,2,184,102,0,0,222,229,251,2,119,51,2,0,50,234,251,2,49,103,0,0,148,235,251,2,68,103,0,0,212,235,251,2,130,103,0,0,154,236,251,2,212,51,2,0,8,237,251,2,174,103,0,0,152,237,251,2,8,52,2,0,112,238,251,2,18,104,0,0,12,239,251,2,88,59,0,0,192,239,251,2,53,52,2,0,224,239,251,2,220,5,3,0,200,240,251,2,107,104,0,0,222,240,251,2,127,52,2,0,174,241,251,2,195,104,0,0,166,242,251,2,120,59,0,0,130,243,251,2,193,52,2,0,168,243,251,2,152,218,2,0,218,244,251,2,47,105,0,0,42,245,251,2,49,53,2,0,28,246,251,2,101,53,2,0,130,246,251,2,176,172,2,0,14,247,251,2,212,192,2,0,62,247,251,2,182,218,2,0,116,247,251,2,250,5,3,0,166,247,251,2,153,105,0,0,214,247,251,2,170,53,2,0,166,248,251,2,239,192,2,0,172,249,251,2,234,105,0,0,44,250,251,2,21,54,2,0,232,250,251,2,83,54,2,0,100,251,251,2,22,6,3,0,54,252,251,2,50,106,0,0,84,252,251,2,123,54,2,0,24,253,251,2,25,193,2,0,38,254,251,2,251,218,2,0,76,254,251,2,171,106,0,0,238,255,251,2,90,55,2,0,110,2,252,2,203,106,0,0,28,3,252,2,144,55,2,0,112,3,252,2,210,55,2,0,106,4,252,2,248,106,0,0,200,4,252,2,25,56,2,0,120,5,252,2,55,56,2,0,216,5,252,2,151,56,2,0,44,7,252,2,186,56,2,0,186,7,252,2,242,56,2,0,172,8,252,2,121,57,2,0,178,10,252,2,242,57,2,0,152,12,252,2,22,58,2,0,68,13,252,2,49,58,2,0,148,13,252,2,187,58,2,0,212,15,252,2,56,59,2,0,134,17,252,2,92,59,2,0,250,17,252,2,113,59,2,0,70,18,252,2,136,59,2,0,158,18,252,2,168,59,2,0,14,19,252,2,248,59,2,0,14,20,252,2,26,60,2,0,114,20,252,2,74,108,0,0,66,22,252,2,101,108,0,0,184,22,252,2,142,60,2,0,92,23,252,2,171,108,0,0,200,23,252,2,219,108,0,0,40,24,252,2,178,60,2,0,132,24,252,2,23,109,0,0,100,25,252,2,214,60,0,0,226,25,252,2,228,60,2,0,254,25,252,2,86,109,0,0,196,26,252,2,154,109,0,0,76,27,252,2,30,61,2,0,140,27,252,2,23,220,2,0,124,28,252,2,170,109,0,0,196,28,252,2,244,60,0,0,164,29,252,2,119,61,2,0,218,29,252,2,219,61,2,0,162,30,252,2,245,193,2,0,254,30,252,2,27,110,0,0,122,31,252,2,117,110,0,0,46,32,252,2,15,61,0,0,100,32,252,2,252,61,2,0,144,32,252,2,11,62,2,0,172,32,252,2,151,173,2,0,82,33,252,2,12,7,3,0,216,33,252,2,141,110,0,0,12,34,252,2,93,62,2,0,240,34,252,2,22,194,2,0,6,36,252,2,235,110,0,0,104,36,252,2,20,111,0,0,182,36,252,2,60,61,0,0,42,37,252,2,205,62,2,0,70,37,252,2,245,62,2,0,148,37,252,2,118,220,2,0,98,38,252,2,78,111,0,0,194,38,252,2,67,63,2,0,140,39,252,2,50,194,2,0,180,40,252,2,146,220,2,0,224,40,252,2,197,63,2,0,198,41,252,2,215,111,0,0,230,42,252,2,35,64,2,0,72,43,252,2,188,220,2,0,232,43,252,2,249,111,0,0,36,44,252,2,97,64,2,0,108,44,252,2,21,112,0,0,82,45,252,2,179,64,2,0,154,45,252,2,220,220,2,0,32,46,252,2,232,64,2,0,122,46,252,2,14,65,2,0,18,47,252,2,54,65,2,0,150,47,252,2,188,65,2,0,72,50,252,2,196,112,0,0,232,50,252,2,239,65,2,0,76,51,252,2,27,221,2,0,214,51,252,2,239,112,0,0,28,52,252,2,98,66,2,0,214,53,252,2,51,174,2,0,120,54,252,2,151,194,2,0,154,54,252,2,56,221,2,0,190,54,252,2,65,113,0,0,250,54,252,2,178,66,2,0,144,55,252,2,244,66,2,0,20,56,252,2,186,7,3,0,156,56,252,2,123,113,0,0,184,56,252,2,7,67,2,0,20,57,252,2,51,67,2,0,106,57,252,2,154,113,0,0,18,58,252,2,80,67,2,0,96,58,252,2,182,113,0,0,58,59,252,2,245,67,2,0,234,60,252,2,248,113,0,0,140,61,252,2,82,68,2,0,78,62,252,2,123,69,2,0,92,66,252,2,28,70,2,0,178,68,252,2,56,70,2,0,30,69,252,2,91,70,2,0,192,69,252,2,111,70,2,0,18,70,252,2,185,114,0,0,130,72,252,2,47,71,2,0,172,72,252,2,79,71,2,0,66,73,252,2,111,71,2,0,214,73,252,2,243,114,0,0,80,74,252,2,220,71,2,0,230,75,252,2,246,71,2,0,26,76,252,2,13,72,2,0,160,76,252,2,86,115,0,0,162,77,252,2,99,72,2,0,204,77,252,2,140,72,2,0,76,78,252,2,180,72,2,0,202,78,252,2,156,115,0,0,230,79,252,2,249,72,2,0,36,80,252,2,178,115,0,0,128,80,252,2,15,73,2,0,208,80,252,2,60,222,2,0,48,81,252,2,210,115,0,0,70,81,252,2,53,73,2,0,160,81,252,2,248,115,0,0,42,82,252,2,86,73,2,0,112,82,252,2,123,73,2,0,86,83,252,2,175,73,2,0,112,84,252,2,234,73,2,0,104,85,252,2,123,195,2,0,216,85,252,2,121,116,0,0,248,85,252,2,20,74,2,0,58,86,252,2,66,74,2,0,2,87,252,2,107,74,2,0,196,87,252,2,139,74,2,0,76,88,252,2,91,75,2,0,108,91,252,2,121,75,2,0,228,91,252,2,41,76,2,0,188,94,252,2,123,76,2,0,28,96,252,2,145,76,2,0,126,96,252,2,183,76,2,0,6,97,252,2,220,76,2,0,148,97,252,2,55,77,2,0,50,99,252,2,187,117,0,0,168,99,252,2,87,77,2,0,224,99,252,2,119,77,2,0,106,100,252,2,215,117,0,0,192,100,252,2,236,117,0,0,130,101,252,2,194,77,2,0,200,101,252,2,251,77,2,0,152,102,252,2,42,78,2,0,86,103,252,2,186,78,2,0,72,105,252,2,213,78,2,0,152,105,252,2,88,79,2,0,124,107,252,2,121,79,2,0,18,108,252,2,147,80,2,0,110,112,252,2,246,118,0,0,252,113,252,2,3,81,2,0,66,114,252,2,14,119,0,0,192,114,252,2,49,81,2,0,18,115,252,2,90,81,2,0,208,115,252,2,138,81,2,0,168,116,252,2,201,81,2,0,156,117,252,2,110,119,0,0,72,118,252,2,2,82,2,0,148,118,252,2,60,82,2,0,102,119,252,2,148,119,0,0,4,120,252,2,116,82,2,0,54,120,252,2,136,82,2,0,92,120,252,2,170,82,2,0,4,121,252,2,216,82,2,0,158,121,252,2,26,83,2,0,106,122,252,2,185,83,2,0,108,124,252,2,216,83,2,0,194,124,252,2,41,84,2,0,38,126,252,2,70,84,2,0,230,126,252,2,115,84,2,0,180,127,252,2,92,120,0,0,80,128,252,2,170,84,2,0,150,128,252,2,188,9,3,0,254,128,252,2,183,64,0,0,94,129,252,2,202,84,2,0,128,129,252,2,250,84,2,0,98,130,252,2,45,85,2,0,72,131,252,2,76,85,2,0,222,131,252,2,59,224,2,0,58,132,252,2,239,120,0,0,92,132,252,2,112,85,2,0,156,132,252,2,151,85,2,0,74,133,252,2,187,85,2,0,242,133,252,2,21,86,2,0,64,135,252,2,43,86,2,0,176,135,252,2,78,86,2,0,62,136,252,2,107,86,2,0,210,136,252,2,121,121,0,0,64,137,252,2,136,86,2,0,106,137,252,2,166,86,2,0,26,138,252,2,154,121,0,0,122,138,252,2,216,86,2,0,232,138,252,2,216,121,0,0,134,141,252,2,58,65,0,0,58,142,252,2,152,87,2,0,92,142,252,2,178,87,2,0,230,142,252,2,15,122,0,0,60,143,252,2,205,87,2,0,130,143,252,2,52,122,0,0,212,144,252,2,49,88,2,0,12,145,252,2,92,88,2,0,180,145,252,2,138,88,2,0,84,146,252,2,180,88,2,0,220,146,252,2,124,122,0,0,84,148,252,2,52,89,2,0,108,148,252,2,118,89,2,0,108,149,252,2,155,89,2,0,238,149,252,2,184,89,2,0,86,150,252,2,59,90,2,0,44,152,252,2,152,90,2,0,186,153,252,2,252,122,0,0,176,154,252,2,239,90,2,0,32,155,252,2,22,123,0,0,128,155,252,2,12,91,2,0,228,155,252,2,80,91,2,0,130,157,252,2,129,123,0,0,48,158,252,2,141,91,2,0,162,158,252,2,14,66,0,0,192,159,252,2,209,91,2,0,248,159,252,2,212,123,0,0,220,160,252,2,24,92,2,0,54,161,252,2,240,123,0,0,40,162,252,2,56,66,0,0,116,162,252,2,117,92,2,0,148,162,252,2,118,225,2,0,80,163,252,2,24,124,0,0,120,163,252,2,198,92,2,0,214,163,252,2,33,93,2,0,246,164,252,2,92,93,2,0,188,165,252,2,133,93,2,0,66,166,252,2,181,93,2,0,248,166,252,2,212,93,2,0,106,167,252,2,252,93,2,0,210,167,252,2,90,94,2,0,194,169,252,2,114,94,2,0,68,170,252,2,193,94,2,0,114,171,252,2,23,95,2,0,234,172,252,2,54,95,2,0,84,173,252,2,10,125,0,0,178,174,252,2,186,66,0,0,238,174,252,2,40,125,0,0,116,175,252,2,195,95,2,0,216,175,252,2,92,125,0,0,92,176,252,2,230,95,2,0,168,176,252,2,120,125,0,0,48,177,252,2,18,96,2,0,138,177,252,2,156,125,0,0,36,178,252,2,70,96,2,0,172,178,252,2,214,125,0,0,108,179,252,2,243,66,0,0,208,179,252,2,128,96,2,0,244,179,252,2,8,126,0,0,178,180,252,2,41,126,0,0,182,181,252,2,9,97,2,0,20,182,252,2,57,226,2,0,146,182,252,2,78,126,0,0,174,182,252,2,60,97,2,0,238,182,252,2,117,97,2,0,192,183,252,2,123,126,0,0,46,184,252,2,156,97,2,0,74,184,252,2,212,97,2,0,24,185,252,2,25,127,0,0,12,188,252,2,142,98,2,0,136,190,252,2,188,98,2,0,20,191,252,2,87,99,2,0,88,193,252,2,121,99,2,0,212,193,252,2,183,99,2,0,200,194,252,2,56,100,2,0,168,196,252,2,88,100,2,0,44,197,252,2,60,101,2,0,154,200,252,2,117,101,2,0,106,201,252,2,188,101,2,0,110,202,252,2,88,102,2,0,242,204,252,2,194,128,0,0,64,205,252,2,106,102,2,0,172,205,252,2,237,128,0,0,64,206,252,2,21,129,0,0,56,207,252,2,212,102,2,0,154,207,252,2,57,129,0,0,44,208,252,2,252,67,0,0,114,208,252,2,6,103,2,0,148,208,252,2,52,103,2,0,238,208,252,2,91,129,0,0,118,209,252,2,90,103,2,0,220,209,252,2,28,68,0,0,182,210,252,2,153,103,2,0,212,210,252,2,146,129,0,0,144,211,252,2,3,104,2,0,144,212,252,2,183,129,0,0,62,213,252,2,88,104,2,0,158,213,252,2,112,104,2,0,252,213,252,2,138,104,2,0,88,214,252,2,123,105,2,0,150,217,252,2,145,106,2,0,198,221,252,2,152,130,0,0,182,223,252,2,154,68,0,0,40,224,252,2,19,107,2,0,64,224,252,2,208,130,0,0,180,224,252,2,55,107,2,0,84,225,252,2,84,131,0,0,100,226,252,2,109,107,2,0,194,226,252,2,112,131,0,0,184,227,252,2,182,107,2,0,126,228,252,2,242,107,2,0,244,228,252,2,23,108,2,0,62,229,252,2,185,227,2,0,164,229,252,2,190,131,0,0,246,229,252,2,215,68,0,0,212,230,252,2,42,108,2,0,8,231,252,2,59,199,2,0,90,232,252,2,45,132,0,0,198,232,252,2,88,132,0,0,28,233,252,2,193,108,2,0,170,233,252,2,55,109,2,0,150,234,252,2,144,132,0,0,144,235,252,2,185,132,0,0,224,235,252,2,252,68,0,0,60,236,252,2,97,109,2,0,100,236,252,2,54,178,2,0,162,237,252,2,90,199,2,0,200,237,252,2,231,132,0,0,76,238,252,2,14,69,0,0,248,238,252,2,62,110,2,0,180,239,252,2,117,199,2,0,112,240,252,2,45,69,0,0,78,241,252,2,134,110,2,0,128,241,252,2,200,110,2,0,4,242,252,2,57,228,2,0,240,242,252,2,118,133,0,0,66,243,252,2,41,111,2,0,208,243,252,2,110,111,2,0,90,244,252,2,154,199,2,0,246,244,252,2,90,228,2,0,30,245,252,2,175,133,0,0,124,245,252,2,170,111,2,0,224,245,252,2,249,111,2,0,118,246,252,2,117,178,2,0,196,246,252,2,124,228,2,0,10,247,252,2,212,133,0,0,68,247,252,2,32,112,2,0,156,247,252,2,151,228,2,0,130,248,252,2,246,133,0,0,182,248,252,2,123,112,2,0,16,249,252,2,207,112,2,0,52,250,252,2,184,228,2,0,196,250,252,2,13,113,2,0,246,250,252,2,54,113,2,0,138,251,252,2,86,113,2,0,234,251,252,2,122,113,2,0,80,252,252,2,220,113,2,0,230,253,252,2,115,134,0,0,200,254,252,2,137,134,0,0,54,255,252,2,59,114,2,0,130,255,252,2,173,134,0,0,250,255,252,2,215,134,0,0,242,2,253,2,143,114,2,0,66,3,253,2,175,114,2,0,126,3,253,2,245,134,0,0,230,3,253,2,24,135,0,0,250,4,253,2,44,135,0,0,34,5,253,2,49,115,2,0,212,5,253,2,76,135,0,0,102,6,253,2,82,115,2,0,232,6,253,2,129,135,0,0,186,7,253,2,161,115,2,0,32,8,253,2,200,115,2,0,108,8,253,2,170,135,0,0,14,9,253,2,248,115,2,0,132,9,253,2,49,116,2,0,244,9,253,2,68,116,2,0,148,10,253,2,142,116,2,0,146,11,253,2,201,116,2,0,76,12,253,2,26,136,0,0,190,12,253,2,241,116,2,0,220,12,253,2,91,117,2,0,20,14,253,2,109,136,0,0,150,16,253,2,136,136,0,0,48,17,253,2,177,136,0,0,2,18,253,2,202,136,0,0,182,18,253,2,128,118,2,0,246,18,253,2,231,136,0,0,118,19,253,2,188,118,2,0,2,20,253,2,207,118,2,0,158,20,253,2,248,118,2,0,76,21,253,2,53,137,0,0,190,21,253,2,66,119,2,0,144,22,253,2,113,119,2,0,40,23,253,2,152,119,2,0,152,23,253,2,28,120,2,0,140,25,253,2,59,120,2,0,244,25,253,2,187,120,2,0,36,28,253,2,244,120,2,0,8,29,253,2,58,121,2,0,196,29,253,2,27,138,0,0,168,30,253,2,179,70,0,0,218,30,253,2,110,121,2,0,252,30,253,2,97,138,0,0,88,32,253,2,195,121,2,0,194,32,253,2,244,121,2,0,190,33,253,2,175,138,0,0,70,34,253,2,219,138,0,0,100,35,253,2,234,138,0,0,128,35,253,2,99,122,2,0,190,35,253,2,152,122,2,0,168,36,253,2,186,200,2,0,36,37,253,2,210,122,2,0,144,37,253,2,92,123,2,0,200,39,253,2,120,123,2,0,38,40,253,2,211,139,0,0,144,41,253,2,247,139,0,0,54,42,253,2,88,124,2,0,58,46,253,2,217,124,2,0,234,47,253,2,51,125,2,0,30,49,253,2,99,125,2,0,32,50,253,2,217,140,0,0,226,50,253,2,155,125,2,0,32,51,253,2,177,125,2,0,146,51,253,2,252,125,2,0,160,52,253,2,22,126,2,0,250,52,253,2,60,141,0,0,36,54,253,2,182,126,2,0,38,56,253,2,208,126,2,0,136,56,253,2,239,126,2,0,244,56,253,2,155,141,0,0,72,57,253,2,40,127,2,0,182,57,253,2,118,127,2,0,166,58,253,2,210,127,2,0,228,59,253,2,242,127,2,0,156,60,253,2,21,128,2,0,72,61,253,2,252,141,0,0,200,61,253,2,64,128,2,0,2,62,253,2,15,142,0,0,144,62,253,2,117,128,2,0,242,62,253,2,59,142,0,0,156,63,253,2,160,128,2,0,202,63,253,2,188,201,2,0,60,64,253,2,26,14,3,0,110,64,253,2,84,142,0,0,64,65,253,2,5,129,2,0,120,65,253,2,129,129,2,0,20,67,253,2,214,129,2,0,48,68,253,2,24,130,2,0,8,69,253,2,56,130,2,0,112,69,253,2,214,142,0,0,46,71,253,2,179,130,2,0,92,71,253,2,206,130,2,0,224,71,253,2,22,143,0,0,6,73,253,2,32,131,2,0,60,73,253,2,71,131,2,0,220,73,253,2,105,131,2,0,86,74,253,2,138,131,2,0,202,74,253,2,178,131,2,0,100,75,253,2,124,14,3,0,212,76,253,2,124,143,0,0,228,76,253,2,130,132,2,0,222,79,253,2,244,143,0,0,70,80,253,2,165,132,2,0,130,80,253,2,11,144,0,0,214,80,253,2,197,132,2,0,24,81,253,2,235,132,2,0,188,81,253,2,150,231,2,0,62,82,253,2,60,144,0,0,116,82,253,2,33,133,2,0,182,82,253,2,88,144,0,0,112,83,253,2,134,133,2,0,54,84,253,2,180,133,2,0,238,84,253,2,212,133,2,0,46,85,253,2,229,133,2,0,154,85,253,2,92,202,2,0,90,86,253,2,118,134,2,0,206,87,253,2,147,134,2,0,72,88,253,2,188,144,0,0,160,88,253,2,175,134,2,0,222,88,253,2,212,144,0,0,46,89,253,2,203,134,2,0,100,89,253,2,235,134,2,0,240,89,253,2,249,144,0,0,94,90,253,2,24,135,2,0,152,90,253,2,50,135,2,0,16,91,253,2,24,145,0,0,86,91,253,2,75,135,2,0,124,91,253,2,122,135,2,0,20,92,253,2,145,135,2,0,90,92,253,2,186,135,2,0,224,92,253,2,244,135,2,0,234,93,253,2,11,136,2,0,70,94,253,2,55,136,2,0,6,95,253,2,76,136,2,0,106,95,253,2,105,136,2,0,226,95,253,2,152,145,0,0,56,96,253,2,214,136,2,0,98,97,253,2,74,137,2,0,228,99,253,2,45,146,0,0,66,100,253,2,144,146,0,0,112,101,253,2,178,146,0,0,80,102,253,2,172,137,2,0,236,102,253,2,247,146,0,0,180,103,253,2,41,147,0,0,24,104,253,2,230,137,2,0,98,104,253,2,73,147,0,0,96,105,253,2,47,138,2,0,234,105,253,2,153,232,2,0,184,106,253,2,136,147,0,0,228,106,253,2,135,138,2,0,108,107,253,2,192,147,0,0,68,108,253,2,207,138,2,0,196,108,253,2,250,147,0,0,122,109,253,2,22,139,2,0,250,109,253,2,85,139,2,0,24,111,253,2,146,139,2,0,252,111,253,2,85,148,0,0,114,112,253,2,184,139,2,0,162,112,253,2,250,139,2,0,122,113,253,2,152,148,0,0,160,114,253,2,92,15,3,0,6,115,253,2,176,148,0,0,24,115,253,2,207,148,0,0,162,115,253,2,248,148,0,0,50,116,253,2,22,149,0,0,170,116,253,2,50,149,0,0,42,117,253,2,148,15,3,0,114,117,253,2,90,140,2,0,220,118,253,2,184,140,2,0,226,119,253,2,215,140,2,0,118,120,253,2,243,140,2,0,214,120,253,2,13,141,2,0,68,121,253,2,39,141,2,0,154,121,253,2,72,141,2,0,24,122,253,2,156,141,2,0,66,123,253,2,26,142,2,0,4,126,253,2,55,150,0,0,54,126,253,2,91,150,0,0,36,127,253,2,88,142,2,0,80,127,253,2,117,142,2,0,222,127,253,2,123,150,0,0,100,128,253,2,192,142,2,0,44,129,253,2,238,142,2,0,192,129,253,2,10,143,2,0,48,130,253,2,178,143,2,0,166,132,253,2,23,144,2,0,182,133,253,2,52,144,2,0,8,134,253,2,92,144,2,0,108,134,253,2,183,144,2,0,208,135,253,2,210,144,2,0,72,136,253,2,156,233,2,0,40,137,253,2,23,145,2,0,86,137,253,2,59,145,2,0,202,137,253,2,124,145,2,0,148,138,253,2,145,145,2,0,222,138,253,2,122,151,0,0,24,142,253,2,120,146,2,0,62,142,253,2,144,146,2,0,148,142,253,2,3,147,2,0,50,144,253,2,83,147,2,0,34,145,253,2,152,147,2,0,242,145,253,2,184,147,2,0,84,146,253,2,89,148,2,0,224,148,253,2,112,148,2,0,58,149,253,2,27,152,0,0,134,149,253,2,143,148,2,0,174,149,253,2,174,148,2,0,50,150,253,2,25,149,2,0,188,151,253,2,51,149,2,0,22,152,253,2,124,152,0,0,90,153,253,2,180,149,2,0,188,154,253,2,211,149,2,0,36,155,253,2,232,149,2,0,102,155,253,2,28,150,2,0,18,156,253,2,56,150,2,0,118,156,253,2,149,150,2,0,32,158,253,2,168,150,2,0,126,158,253,2,45,151,2,0,108,160,253,2,56,153,0,0,226,160,253,2,89,151,2,0,6,161,253,2,211,151,2,0,144,162,253,2,182,153,0,0,30,166,253,2,141,152,2,0,210,166,253,2,174,152,2,0,92,167,253,2,244,153,0,0,200,167,253,2,214,152,2,0,242,167,253,2,237,152,2,0,108,168,253,2,20,154,0,0,220,168,253,2,57,154,0,0,32,170,253,2,28,154,2,0,220,173,253,2,87,154,2,0,178,174,253,2,17,155,2,0,70,177,253,2,48,155,2,0,162,177,253,2,122,155,2,0,168,178,253,2,150,155,2,0,2,179,253,2,219,155,2,0,186,179,253,2,86,156,2,0,68,181,253,2,186,156,2,0,94,182,253,2,245,156,2,0,20,183,253,2,28,157,2,0,132,183,253,2,122,155,0,0,250,184,253,2,184,157,2,0,36,186,253,2,187,155,0,0,124,186,253,2,205,157,2,0,196,186,253,2,212,155,0,0,68,187,253,2,89,76,0,0,138,187,253,2,247,157,2,0,174,187,253,2,113,158,2,0,126,189,253,2,49,156,0,0,28,190,253,2,173,158,2,0,102,190,253,2,92,156,0,0,142,191,253,2,2,159,2,0,184,191,253,2,59,159,2,0,120,192,253,2,90,159,2,0,216,192,253,2,218,17,3,0,204,193,253,2,247,156,0,0,106,196,253,2,176,159,2,0,178,196,253,2,15,157,0,0,46,197,253,2,185,76,0,0,106,197,253,2,220,159,2,0,142,197,253,2,45,157,0,0,42,198,253,2,18,160,2,0,120,198,253,2,74,157,0,0,14,199,253,2,74,160,2,0,84,199,253,2,102,157,0,0,216,199,253,2,119,160,2,0,66,200,253,2,60,235,2,0,220,200,253,2,146,157,0,0,246,200,253,2,182,160,2,0,66,201,253,2,172,157,0,0,234,201,253,2,250,160,2,0,62,202,253,2,45,161,2,0,4,203,253,2,111,161,2,0,232,203,253,2,174,161,2,0,170,204,253,2,24,162,2,0,218,205,253,2,155,162,2,0,4,210,253,2,180,162,2,0,84,210,253,2,60,163,2,0,252,211,253,2,28,164,2,0,24,215,253,2,152,164,2,0,164,216,253,2,219,165,2,0,36,221,253,2,89,159,0,0,68,221,253,2,247,165,2,0,158,221,253,2,14,166,2,0,228,221,253,2,57,166,2,0,104,222,253,0,23,0,5,0,0,142,9,0,16,0,5,0,2,2,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,10,2,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,32,2,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,48,6,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,74,8,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,96,8,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,180,10,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,40,11,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,72,11,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,74,28,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,80,28,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,114,42,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,180,47,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,52,48,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,2,57,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,28,59,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,90,83,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,186,85,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,232,119,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,86,222,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,86,233,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,90,233,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,114,235,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,60,239,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,230,21,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,142,48,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,116,69,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,8,112,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,240,134,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,158,135,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,50,136,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,222,215,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,152,216,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,218,48,253,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,8,50,253,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,242,98,253,0,23,0,5,0,0,144,9,0,16,0,5,0,0,82,10,0,16,0,5,0,32,2,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,74,8,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,206,43,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,208,121,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,182,191,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,52,214,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,128,235,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,34,50,252,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,100,111,252,0,16,0,5,0,0,84,10,0,21,0,5,0,0,0,19,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,19,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,19,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,19,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,21,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,21,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,21,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,23,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,23,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,23,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,25,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,25,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,27,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,27,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,29,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,29,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,31,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,31,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,33,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,33,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,35,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,35,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,22,0,5,0,0,0,37,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,22,0,5,0,0,0,37,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,19,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,19,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,21,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,21,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,23,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,23,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,25,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,25,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,27,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,27,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,29,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,31,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,33,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,35,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,22,0,5,0,0,0,37,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,25,0,21,0,5,0,0,0,19,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,25,0,21,0,5,0,0,0,21,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,25,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,27,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,29,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,31,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,33,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,35,0,16,0,5,0,86,233,251,0,22,0,5,0,0,0,37,0,16,0,5,0,86,233,251,0,160,0,5,0,2,46,97,0,160,0,5,0,9,46,97,0,160,0,5,0,2,56,97,0,160,0,5,0,9,56,97,0,160,0,5,0,2,96,97,0,160,0,5,0,9,96,97,0,160,0,5,0,2,104,97,0,160,0,5,0,9,104,97,0,160,0,5,0,16,104,97,0,160,0,5,0,2,164,97,0,160,0,5,0,9,164,97,0,32,0,5,0,2,178,97,0,174,0,5,0,2,178,97,0,160,0,5,0,9,178,97,0,160,0,5,0,2,184,97,0,160,0,5,0,9,184,97,0,160,0,5,0,2,190,97,0,160,0,5,0,9,190,97,0,32,0,5,0,16,190,97,0,174,0,5,0,16,190,97,0,160,0,5,0,23,190,97,0,160,0,5,0,30,190,97,0,160,0,5,0,37,190,97,0,160,0,5,0,44,190,97,0,160,0,5,0,2,194,97,0,160,0,5,0,9,194,97,0,160,0,5,0,2,202,97,0,160,0,5,0,9,202,97,0,160,0,5,0,2,224,97,0,32,0,5,0,2,236,97,0,174,0,5,0,2,236,97,0,160,0,5,0,9,236,97,0,160,0,5,0,2,242,97,0,32,0,5,0,9,242,97,0,174,0,5,0,9,242,97,0,160,0,5,0,2,246,97,0,32,0,5,0,9,246,97,0,174,0,5,0,9,246,97,0,32,0,5,0,16,246,97,0,174,0,5,0,16,246,97,0,160,0,5,0,23,246,97,0,32,0,5,0,30,246,97,0,174,0,5,0,30,246,97,0,160,0,5,0,37,246,97,0,160,0,5,0,44,246,97,0,160,0,5,0,51,246,97,0,32,0,5,0,58,246,97,0,174,0,5,0,58,246,97,0,160,0,5,0,65,246,97,0,160,0,5,0,72,246,97,0,32,0,5,0,79,246,97,0,174,0,5,0,79,246,97,0,160,0,5,0,86,246,97,0,160,0,5,0,86,246,97,0,5,0,184,0,0,0,0,0,160,0,5,0,93,246,97,0,38,0,5,0,0,22,102,0,32,0,5,0,16,220,102,0,49,0,5,0,0,22,102,0,46,0,5,0,16,220,102,0,38,0,5,0,0,22,102,0,32,0,5,0,9,226,102,0,49,0,5,0,0,22,102,0,46,0,5,0,9,226,102,0,32,0,5,0,2,176,102,0,16,0,5,0,30,176,102,0,27,0,5,0,30,176,102,0,38,0,5,0,30,176,102,0,49,0,5,0,30,176,102,0,16,0,5,0,51,176,102,0,27,0,5,0,51,176,102,0,38,0,5,0,51,176,102,0,49,0,5,0,51,176,102,0,32,0,5,0,72,176,102,0,16,0,5,0,16,190,102,0,27,0,5,0,16,190,102,0,38,0,5,0,16,190,102,0,49,0,5,0,16,190,102,0,16,0,5,0,16,194,102,0,27,0,5,0,16,194,102,0,38,0,5,0,16,194,102,0,49,0,5,0,16,194,102,0,16,0,5,0,30,194,102,0,27,0,5,0,30,194,102,0,38,0,5,0,30,194,102,0,49,0,5,0,30,194,102,0,16,0,5,0,9,208,102,0,27,0,5,0,9,208,102,0,38,0,5,0,9,208,102,0,49,0,5,0,9,208,102,0,32,0,5,0,16,220,102,0,32,128,232,0,0,0,0,0,46,0,5,0,16,220,102,0,46,128,232,0,0,0,0,0,32,0,5,0,2,226,102,0,46,0,5,0,2,226,102,0,32,0,5,0,9,234,102,0,46,0,5,0,9,234,102,0,160,0,5,0,9,232,118,0,160,0,5,0,16,232,118,0,160,0,5,0,23,232,118,0,160,0,5,0,30,232,118,0,160,0,5,0,37,232,118,0,160,0,5,0,44,232,118,0,160,0,5,0,51,232,118,0,160,0,5,0,58,232,118,0,160,0,5,0,65,232,118,0,160,0,5,0,72,232,118,0,160,0,5,0,79,232,118,0,160,0,5,0,86,232,118,0,160,0,5,0,93,232,118,0,160,0,5,0,100,232,118,0,160,0,5,0,107,232,118,0,160,0,5,0,114,232,118,0,160,0,5,0,121,232,118,0,160,0,5,0,128,232,118,0,160,0,5,0,135,232,118,0,160,0,5,0,142,232,118,0,160,0,5,0,149,232,118,0,160,0,5,0,156,232,118,0,160,0,5,0,163,232,118,0,160,0,5,0,170,232,118,0,160,0,5,0,177,232,118,0,160,0,5,0,184,232,118,0,160,0,5,0,191,232,118,0,160,0,5,0,198,232,118,0,160,0,5,0,205,232,118,0,160,0,5,0,212,232,118,0,160,0,5,0,219,232,118,0,160,0,5,0,226,232,118,0,160,0,5,0,233,232,118,0,160,0,5,0,240,232,118,0,160,0,5,0,247,232,118,0,160,0,5,0,254,232,118,0,32,0,5,0,16,92,121,0,32,0,5,0,44,92,121,0,32,0,5,0,114,92,121,0,32,0,5,0,163,92,121,0,32,0,5,0,198,92,121,0,32,0,5,0,247,101,121,0,174,0,5,0,247,101,121,0,32,0,5,0,30,247,121,0,32,0,5,0,58,247,121,0,32,0,5,0,72,247,121,0,32,0,5,0,100,247,121,0,32,0,5,0,114,247,121,0,32,0,5,0,240,247,121,0,32,0,5,0,247,247,121,0,32,0,5,0,51,162,124,0,32,0,5,0,72,162,124,0,27,0,5,0,2,2,251,0,38,0,5,0,2,2,251,0,49,0,5,0,2,2,251,0,38,0,5,0,6,2,251,0,27,0,5,0,10,2,251,0,27,0,5,0,32,2,251,0,38,0,5,0,32,2,251,0,49,0,5,0,32,2,251,0,27,0,5,0,34,2,251,0,38,0,5,0,34,2,251,0,27,0,5,0,36,2,251,0,38,0,5,0,36,2,251,0,38,0,5,0,132,2,251,0,16,0,5,0,60,4,251,0,16,0,5,0,14,66,252,0,27,0,5,0,82,4,251,0,38,0,5,0,82,4,251,0,49,0,5,0,82,4,251,0,16,0,5,0,200,4,251,0,5,0,112,0,200,4,251,0,16,0,5,0,252,4,251,0,16,0,5,0,26,6,251,0,38,0,5,0,26,6,251,0,5,0,112,0,26,6,251,0,16,0,5,0,28,6,251,0,16,0,5,0,30,6,251,0,27,0,5,0,48,6,251,0,16,0,5,0,248,7,251,0,27,0,5,0,74,8,251,0,38,0,5,0,74,8,251,0,49,0,5,0,74,8,251,0,27,0,5,0,96,8,251,0,16,0,5,0,232,8,251,0,49,0,5,0,250,8,251,0,16,0,5,0,68,10,251,0,38,0,5,0,68,10,251,0,16,0,5,0,70,10,251,0,49,0,5,0,182,10,251,0,49,0,5,0,60,59,251,0,27,0,5,0,40,11,251,0,27,0,5,0,72,11,251,0,27,0,5,0,70,24,251,0,16,0,5,0,4,26,251,0,16,0,5,0,188,27,251,0,27,0,5,0,74,28,251,0,27,0,5,0,80,28,251,0,16,0,5,0,104,29,251,0,5,0,112,0,104,29,251,0,49,0,5,0,162,29,251,0,16,0,5,0,74,30,251,0,27,0,5,0,88,30,251,0,16,0,5,0,62,31,251,0,16,0,5,0,196,33,251,0,5,0,112,0,196,33,251,0,16,0,5,0,200,34,251,0,16,0,5,0,132,35,251,0,5,0,112,0,132,35,251,0,16,0,5,0,136,35,251,0,49,0,5,0,90,36,251,0,49,0,5,0,172,37,251,0,49,0,5,0,126,39,251,0,16,0,5,0,8,42,251,0,27,0,5,0,114,42,251,0,16,0,5,0,244,44,251,0,16,0,5,0,234,45,251,0,16,0,5,0,82,46,251,0,16,0,5,0,118,47,251,0,27,0,5,0,134,47,251,0,27,0,5,0,180,47,251,0,16,0,5,0,42,2,251,0,16,0,5,0,186,47,251,0,27,0,5,0,52,48,251,0,16,0,5,0,44,49,251,0,5,0,112,0,44,49,251,0,16,0,5,0,240,49,251,0,5,0,112,0,240,49,251,0,27,0,5,0,26,50,251,0,16,0,5,0,178,50,251,0,5,0,112,0,178,50,251,0,16,0,5,0,120,53,251,0,16,0,5,0,122,54,251,0,49,0,5,0,132,54,251,0,16,0,5,0,112,56,251,0,27,0,5,0,150,56,251,0,27,0,5,0,158,56,251,0,49,0,5,0,158,56,251,0,49,0,5,0,246,56,251,0,27,0,5,0,2,57,251,0,49,0,5,0,200,57,251,0,27,0,5,0,180,64,251,0,49,0,5,0,142,67,251,0,16,0,5,0,76,83,251,0,27,0,5,0,90,83,251,0,38,0,5,0,90,83,251,0,27,0,5,0,186,85,251,0,38,0,5,0,12,86,251,0,16,0,5,0,220,99,251,0,49,0,5,0,234,99,251,0,16,0,5,0,178,100,251,0,16,0,5,0,232,100,251,0,16,0,5,0,136,101,251,0,49,0,5,0,154,101,251,0,27,0,5,0,182,101,251,0,16,0,5,0,204,102,251,0,49,0,5,0,204,102,251,0,49,0,5,0,196,9,252,0,38,0,5,0,208,102,251,0,49,0,5,0,208,102,251,0,16,0,5,0,100,106,251,0,27,0,5,0,100,106,251,0,16,0,5,0,108,119,251,0,49,0,5,0,146,119,251,0,27,0,5,0,232,119,251,0,16,0,5,0,174,121,251,0,27,0,5,0,86,122,251,0,16,0,5,0,22,128,251,0,16,0,5,0,34,129,251,0,5,0,112,0,34,129,251,0,5,0,120,0,34,129,251,0,16,0,5,0,144,130,251,0,5,0,112,0,144,130,251,0,16,0,5,0,146,130,251,0,5,0,112,0,146,130,251,0,16,0,5,0,192,131,251,0,16,0,5,0,8,135,251,0,16,0,5,0,128,135,251,0,16,0,5,0,66,147,251,0,16,0,5,0,210,147,251,0,27,0,5,0,228,147,251,0,49,0,5,0,228,147,251,0,16,0,5,0,132,148,251,0,16,0,5,0,136,148,251,0,16,0,5,0,20,149,251,0,16,0,5,0,170,153,251,0,49,0,5,0,172,153,251,0,49,0,5,0,100,188,251,0,16,0,5,0,92,154,251,0,27,0,5,0,106,154,251,0,16,0,5,0,218,154,251,0,16,0,5,0,254,159,251,0,16,0,5,0,102,160,251,0,16,0,5,0,108,161,251,0,16,0,5,0,216,161,251,0,16,0,5,0,210,164,251,0,5,0,112,0,210,164,251,0,16,0,5,0,212,164,251,0,16,0,5,0,122,165,251,0,16,0,5,0,88,166,251,0,49,0,5,0,8,167,251,0,27,0,5,0,156,167,251,0,16,0,5,0,252,169,251,0,5,0,112,0,252,169,251,0,16,0,5,0,254,169,251,0,16,0,5,0,76,188,251,0,16,0,5,0,162,190,251,0,16,0,5,0,156,191,251,0,49,0,5,0,156,191,251,0,16,0,5,0,158,191,251,0,49,0,5,0,182,191,251,0,49,0,5,0,156,192,251,0,49,0,5,0,254,194,251,0,49,0,5,0,210,196,251,0,16,0,5,0,60,212,251,0,16,0,5,0,230,212,251,0,16,0,5,0,232,212,251,0,16,0,5,0,254,217,251,0,27,0,5,0,254,217,251,0,16,0,5,0,178,218,251,0,49,0,5,0,206,218,251,0,16,0,5,0,74,219,251,0,49,0,5,0,188,219,251,0,16,0,5,0,68,220,251,0,16,0,5,0,42,222,251,0,16,0,5,0,44,222,251,0,27,0,5,0,86,222,251,0,5,0,112,0,86,222,251,0,49,0,5,0,22,223,251,0,49,0,5,0,232,23,252,0,49,0,5,0,180,223,251,0,49,0,5,0,206,223,251,0,49,0,5,0,60,59,251,0,16,0,5,0,90,232,251,0,27,0,5,0,86,233,251,0,49,0,5,0,86,233,251,0,5,0,112,0,86,233,251,0,27,0,5,0,90,233,251,0,49,0,5,0,90,233,251,0,27,0,5,0,114,235,251,0,27,0,5,0,60,239,251,0,49,0,5,0,60,239,251,0,49,0,5,0,130,161,251,0,49,0,5,0,90,11,251,0,49,0,5,0,240,134,252,0,16,0,5,0,188,6,252,0,16,0,5,0,190,9,252,0,27,0,5,0,196,9,252,0,16,0,5,0,192,11,252,0,5,0,112,0,198,11,252,0,16,0,5,0,174,14,252,0,16,0,5,0,104,16,252,0,16,0,5,0,110,16,252,0,16,0,5,0,180,16,252,0,16,0,5,0,22,17,252,0,16,0,5,0,236,20,252,0,16,0,5,0,240,20,252,0,16,0,5,0,54,21,252,0,27,0,5,0,230,21,252,0,16,0,5,0,232,21,252,0,16,0,5,0,234,21,252,0,27,0,5,0,66,24,252,0,49,0,5,0,68,32,252,0,49,0,5,0,182,36,252,0,27,0,5,0,142,48,252,0,16,0,5,0,144,48,252,0,49,0,5,0,124,53,252,0,16,0,5,0,48,64,252,0,16,0,5,0,50,64,252,0,5,0,112,0,50,64,252,0,16,0,5,0,150,65,252,0,16,0,5,0,218,65,252,0,16,0,5,0,16,66,252,0,16,0,5,0,252,66,252,0,16,0,5,0,28,68,252,0,16,0,5,0,94,68,252,0,5,0,112,0,94,68,252,0,27,0,5,0,116,69,252,0,16,0,5,0,46,72,252,0,16,0,5,0,48,72,252,0,16,0,5,0,112,79,252,0,16,0,5,0,132,79,252,0,5,0,112,0,134,79,252,0,16,0,5,0,158,89,252,0,16,0,5,0,104,90,252,0,16,0,5,0,188,92,252,0,16,0,5,0,36,93,252,0,49,0,5,0,36,93,252,0,16,0,5,0,208,93,252,0,16,0,5,0,32,94,252,0,38,0,5,0,36,94,252,0,49,0,5,0,38,94,252,0,27,0,5,0,56,94,252,0,16,0,5,0,100,98,252,0,5,0,112,0,100,98,252,0,16,0,5,0,176,98,252,0,16,0,5,0,156,106,252,0,16,0,5,0,250,106,252,0,16,0,5,0,26,109,252,0,16,0,5,0,184,110,252,0,27,0,5,0,8,112,252,0,16,0,5,0,128,113,252,0,5,0,112,0,128,113,252,0,16,0,5,0,54,123,252,0,16,0,5,0,16,124,252,0,16,0,5,0,134,125,252,0,16,0,5,0,210,134,252,0,5,0,112,0,210,134,252,0,16,0,5,0,212,134,252,0,27,0,5,0,240,134,252,0,27,0,5,0,158,135,252,0,49,0,5,0,80,137,252,0,16,0,5,0,88,140,252,0,16,0,5,0,156,140,252,0,27,0,5,0,134,141,252,0,16,0,5,0,22,148,252,0,49,0,5,0,50,148,252,0,16,0,5,0,118,152,252,0,16,0,5,0,154,154,252,0,5,0,112,0,154,154,252,0,27,0,5,0,76,158,252,0,16,0,5,0,76,168,252,0,16,0,5,0,70,174,252,0,16,0,5,0,72,174,252,0,49,0,5,0,168,175,252,0,16,0,5,0,220,185,252,0,16,0,5,0,198,188,252,0,16,0,5,0,238,189,252,0,16,0,5,0,240,189,252,0,5,0,112,0,240,189,252,0,16,0,5,0,242,189,252,0,5,0,112,0,242,189,252,0,5,0,120,0,242,189,252,0,16,0,5,0,14,193,252,0,5,0,112,0,14,193,252,0,5,0,120,0,14,193,252,0,16,0,5,0,22,193,252,0,16,0,5,0,136,195,252,0,16,0,5,0,84,198,252,0,16,0,5,0,86,198,252,0,16,0,5,0,214,198,252,0,16,0,5,0,40,199,252,0,16,0,5,0,74,200,252,0,16,0,5,0,128,203,252,0,5,0,112,0,128,203,252,0,16,0,5,0,130,203,252,0,16,0,5,0,226,203,252,0,5,0,112,0,226,203,252,0,16,0,5,0,90,215,252,0,16,0,5,0,10,217,252,0,5,0,112,0,10,217,252,0,16,0,5,0,106,218,252,0,16,0,5,0,90,219,252,0,16,0,5,0,128,219,252,0,16,0,5,0,106,222,252,0,16,0,5,0,140,222,252,0,16,0,5,0,6,223,252,0,16,0,5,0,8,223,252,0,5,0,112,0,8,223,252,0,5,0,120,0,8,223,252,0,16,0,5,0,174,252,252,0,16,0,5,0,178,252,252,0,16,0,5,0,150,254,252,0,16,0,5,0,202,14,253,0,16,0,5,0,118,15,253,0,16,0,5,0,52,16,253,0,16,0,5,0,54,16,253,0,16,0,5,0,136,24,253,0,16,0,5,0,138,24,253,0,16,0,5,0,140,24,253,0,16,0,5,0,42,25,253,0,16,0,5,0,148,27,253,0,16,0,5,0,240,27,253,0,5,0,112,0,240,27,253,0,49,0,5,0,152,28,253,0,16,0,5,0,38,30,253,0,16,0,5,0,192,40,253,0,16,0,5,0,160,43,253,0,16,0,5,0,90,44,253,0,16,0,5,0,112,45,253,0,16,0,5,0,36,47,253,0,16,0,5,0,190,48,253,0,27,0,5,0,218,48,253,0,49,0,5,0,14,49,253,0,27,0,5,0,8,50,253,0,16,0,5,0,202,53,253,0,16,0,5,0,190,54,253,0,16,0,5,0,84,55,253,0,49,0,5,0,84,55,253,0,16,0,5,0,84,59,253,0,5,0,112,0,84,59,253,0,16,0,5,0,230,68,253,0,16,0,5,0,218,70,253,0,16,0,5,0,100,76,253,0,16,0,5,0,186,77,253,0,16,0,5,0,128,78,253,0,16,0,5,0,176,78,253,0,16,0,5,0,178,78,253,0,5,0,112,0,178,78,253,0,5,0,120,0,178,78,253,0,49,0,5,0,144,82,253,0,27,0,5,0,26,84,253,0,16,0,5,0,98,87,253,0,5,0,112,0,98,87,253,0,16,0,5,0,148,93,253,0,49,0,5,0,166,93,253,0,16,0,5,0,30,98,253,0,16,0,5,0,98,98,253,0,27,0,5,0,242,98,253,0,16,0,5,0,86,114,253,0,16,0,5,0,200,118,253,0,16,0,5,0,202,118,253,0,16,0,5,0,2,120,253,0,16,0,5,0,6,120,253,0,16,0,5,0,84,124,253,0,16,0,5,0,154,125,253,0,5,0,112,0,154,125,253,0,16,0,5,0,156,125,253,0,16,0,5,0,186,131,253,0,16,0,5,0,228,131,253,0,16,0,5,0,178,134,253,0,5,0,112,0,178,134,253,0,16,0,5,0,216,139,253,0,16,0,5,0,218,139,253,0,16,0,5,0,44,140,253,0,16,0,5,0,152,140,253,0,16,0,5,0,160,141,253,0,16,0,5,0,196,145,253,0,16,0,5,0,30,147,253,0,16,0,5,0,108,147,253,0,16,0,5,0,184,147,253,0,16,0,5,0,142,148,253,0,27,0,5,0,162,148,253,0,16,0,5,0,70,153,253,0,16,0,5,0,82,154,253,0,16,0,5,0,242,156,253,0,16,0,5,0,122,157,253,0,16,0,5,0,164,157,253,0,16,0,5,0,170,157,253,0,16,0,5,0,172,157,253,0,5,0,112,0,172,157,253,0,16,0,5,0,20,163,253,0,16,0,5,0,110,164,253,0,5,0,112,0,110,164,253,0,16,0,5,0,252,164,253,0,16,0,5,0,208,165,253,0,16,0,5,0,244,171,253,0,16,0,5,0,168,173,253,0,5,0,112,0,168,173,253,0,16,0,5,0,232,175,253,0,16,0,5,0,186,176,253,0,16,0,5,0,58,180,253,0,16,0,5,0,136,180,253,0,16,0,5,0,172,180,253,0,16,0,5,0,166,181,253,0,5,0,112,0,166,181,253,0,16,0,5,0,2,184,253,0,16,0,5,0,64,193,253,0,16,0,5,0,218,195,253,0,16,0,5,0,72,206,253,0,16,0,5,0,240,208,253,0,5,0,112,0,240,208,253,0,16,0,5,0,178,209,253,0,16,0,5,0,56,211,253,0,16,0,5,0,196,212,253,0,16,0,5,0,94,213,253,0,16,0,5,0,210,213,253,0,16,0,5,0,212,213,253,0,16,0,5,0,124,214,253,0,16,0,5,0,252,214,253,0,16,0,5,0,36,217,253,0,16,0,5,0,62,217,253,0,16,0,5,0,222,217,253,0,16,0,5,0,6,218,253,0,16,0,5,0,62,218,253,0,16,0,5,0,220,218,253,0,16,0,5,0,240,219,253,0,16,0,5,0,176,220,253,0,5,0,112,0,176,220,253,0,16,0,5,0,236,220,253,0,16,0,5,0,248,220,253,0,5,0,112,0,248,220,253,0,16,0,5,0,110,223,253,0,16,0,5,0,12,224,253,0,5,0,112,0,12,224,253,0,16,0,5,0,96,224,253,0,16,0,5,0,118,224,253,0,5,0,112,0,118,224,253,0,5,0,120,0,118,224,253,0,16,0,5,0,218,224,253,0,16,0,5,0,236,224,253,135,218,7,0,0,2,140,103,135,48,17,0,0,2,92,121,135,118,17,0,0,2,145,121,135,207,17,0,0,2,247,121,135,2,20,0,0,16,234,118,135,150,21,0,0,99,245,118,135,167,21,0,0,225,245,118,135,176,24,0,0,150,251,118,135,80,25,0,0,9,4,118,135,60,26,0,0,2,26,118,135,90,28,0,0,9,56,118,7,156,33,0,0,44,107,12,7,175,33,0,0,170,107,12,7,138,34,0,0,224,158,12,7,238,34,0,0,85,161,12,7,12,35,0,0,13,162,12,7,43,35,0,0,216,162,12,7,3,37,0,0,2,174,12,7,161,37,0,0,2,182,12,7,204,37,0,0,2,187,12,7,0,38,0,0,2,194,12,7,56,38,0,0,84,195,12,7,112,38,0,0,201,196,12,7,144,38,0,0,129,197,12,7,33,39,0,0,70,202,12,7,148,39,0,0,59,204,12,7,199,39,0,0,148,205,12,7,0,40,0,0,55,227,12,7,0,41,0,0,223,206,12,7,153,41,0,0,124,210,12,7,220,41,0,0,57,212,12,7,13,42,0,0,125,213,12,7,119,42,0,0,84,216,12,7,221,42,0,0,29,219,12,7,118,43,0,0,70,223,12,7,151,43,0,0,40,224,12,135,60,45,0,0,100,141,103,135,84,45,0,0,21,142,103,7,192,49,0,0,184,73,13,7,192,77,0,0,167,234,12,135,0,160,0,0,9,118,123,7,144,164,0,0,208,238,12,135,208,164,0,0,51,151,123,135,52,165,0,0,2,16,120,135,111,165,0,0,2,44,120,135,136,165,0,0,2,52,120,135,181,165,0,0,2,57,120,135,217,165,0,0,2,69,120,135,160,166,0,0,9,76,120,135,12,168,0,0,93,162,113,135,130,168,0,0,9,164,113,135,10,169,0,0,9,78,117,135,48,169,0,0,9,76,117,135,132,169,0,0,9,42,118,135,0,170,0,0,9,38,118,135,128,170,0,0,9,132,115,135,176,215,0,0,44,177,121,135,203,215,0,0,91,248,121,135,13,0,1,0,93,99,124,135,128,0,1,0,117,101,124,7,121,1,1,0,148,240,12,7,208,1,1,0,132,241,12,135,160,2,1,0,9,248,123,135,48,3,1,0,9,252,123,135,161,3,1,0,16,205,124,135,80,4,1,0,9,86,124,135,216,4,1,0,9,232,118,135,0,5,1,0,9,93,124,135,48,5,1,0,9,95,124,135,0,6,1,0,9,105,124,135,10,8,1,0,58,115,124,7,210,9,1,0,51,118,18,135,201,10,1,0,2,167,124,135,0,11,1,0,9,119,124,135,176,15,1,0,9,203,124,135,5,16,1,0,9,244,113,135,52,16,1,0,98,245,113,7,91,16,1,0,91,147,17,135,208,16,1,0,9,97,124,135,3,17,1,0,9,96,117,135,80,17,1,0,9,168,113,135,131,17,1,0,23,170,113,135,19,18,1,0,135,172,113,135,176,18,1,0,9,174,113,135,19,19,1,0,100,178,113,135,0,20,1,0,23,180,113,135,128,20,1,0,16,183,113,135,133,21,1,0,2,193,113,135,0,22,1,0,9,201,113,135,140,22,1,0,121,203,113,135,0,24,1,0,9,209,113,135,24,25,1,0,142,205,113,135,170,25,1,0,65,207,113,135,13,26,1,0,30,198,116,135,10,28,1,0,72,248,113,142,114,28,1,0,9,4,117,142,146,28,1,0,16,4,117,135,11,29,1,0,72,224,113,135,106,29,1,0,72,229,113,135,0,32,1,0,9,207,124,135,99,34,1,0,236,223,124,135,214,34,1,0,11,227,124,7,90,36,1,0,147,119,18,135,128,36,1,0,113,232,124,135,0,48,1,0,9,4,125,135,0,68,1,0,9,83,125,135,0,104,1,0,61,78,120,135,208,106,1,0,9,94,120,135,0,107,1,0,9,240,123,130,0,112,1,0,4,100,125,130,0,136,1,0,84,148,125,135,0,139,1,0,9,166,125,135,15,176,1,0,100,104,122,135,112,177,1,0,9,155,125,135,0,188,1,0,9,88,124,7,0,208,1,0,249,242,12,7,0,209,1,0,193,249,12,7,58,209,1,0,98,251,12,7,140,209,1,0,131,252,12,7,0,211,1,0,107,236,12,7,0,216,1,0,130,58,13,7,118,218,1,0,242,72,13,135,0,225,1,0,9,243,123,135,192,226,1,0,9,245,123,135,0,232,1,0,9,95,120,7,0,240,1,0,186,2,13,7,48,240,1,0,240,3,13,7,209,240,1,0,239,7,13,7,0,243,1,0,252,11,13,7,0,246,1,0,185,41,13,7,0,247,1,0,101,48,13,7,128,247,1,0,151,51,13,7,16,248,1,0,180,54,13,7,96,248,1,0,134,56,13,7,144,248,1,0,160,57,13,7,0,249,1,0,40,33,13,7,122,249,1,0,125,36,13,7,205,249,1,0,191,38,13,7,0,250,1,0,244,8,13,7,144,250,1,0,145,40,13,7,0,251,1,0,112,188,12,7,148,251,1,0,125,192,12,0,0,0,0,5,150,0,0,5,136,0,0,194,32,9,230,194,46,29,232,194,32,108,230,194,46,29,232,194,32,207,230,194,32,29,232,194,46,207,230,194,46,29,232,194,32,85,231,194,32,29,232,194,46,85,231,194,46,29,232,194,32,184,231,194,32,29,232,194,46,184,231,194,46,29,232,194,46,29,232,194,44,59,235,27,5,54,7,27,5,54,7,24,5,131,12,24,5,90,7,24,5,90,7,24,5,90,7,27,5,98,7,27,5,98,7,24,5,90,7,24,5,0,8,24,5,0,8,40,5,0,8,40,5,0,8,24,5,0,8,24,5,0,8,24,5,0,8,40,5,0,8,40,5,0,8,40,5,0,8,23,5,142,9,21,5,0,21,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,19,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,21,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,23,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,25,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,27,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,29,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,31,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,33,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,35,23,5,144,9,23,5,142,9,21,5,0,21,22,5,0,37,23,5,144,9,23,5,142,9,21,5,0,23,23,5,144,9,23,5,142,9,21,5,0,23,21,5,0,19,23,5,144,9,23,5,142,9,21,5,0,25,23,5,144,9,23,5,142,9,21,5,0,27,23,5,144,9,23,5,142,9,21,5,0,29,23,5,144,9,23,5,142,9,21,5,0,31,23,5,144,9,23,5,142,9,21,5,0,33,23,5,144,9,23,5,142,9,21,5,0,35,23,5,144,9,23,5,142,9,22,5,0,37,23,5,144,9,23,5,142,9,19,5,0,42,23,5,144,9,23,5,142,9,162,5,0,42,23,5,144,9,23,5,142,9,19,5,0,44,23,5,144,9,23,5,142,9,162,5,0,44,23,5,144,9,23,5,142,9,19,5,0,46,23,5,144,9,23,5,142,9,162,5,0,46,23,5,144,9,23,5,142,9,19,5,0,48,23,5,144,9,23,5,142,9,162,5,0,48,23,5,144,9,23,5,142,9,19,5,0,50,23,5,144,9,23,5,142,9,162,5,0,50,23,5,144,9,23,5,142,9,19,5,0,52,23,5,144,9,23,5,142,9,162,5,0,52,23,5,144,9,23,5,142,9,19,5,0,54,23,5,144,9,23,5,142,9,162,5,0,54,23,5,144,9,23,5,142,9,19,5,0,56,23,5,144,9,23,5,142,9,162,5,0,56,23,5,144,9,23,5,142,9,19,5,0,58,23,5,144,9,23,5,142,9,162,5,0,58,23,5,144,9,23,5,142,9,19,5,0,60,23,5,144,9,23,5,142,9,162,5,0,60,23,5,144,9,23,5,142,9,19,5,0,62,23,5,144,9,23,5,142,9,162,5,0,62,23,5,144,9,23,5,142,9,19,5,0,64,23,5,144,9,23,5,142,9,162,5,0,64,23,5,144,9,23,5,142,9,19,5,0,66,23,5,144,9,23,5,142,9,162,5,0,66,23,5,144,9,23,5,142,9,19,5,0,68,23,5,144,9,23,5,142,9,162,5,0,68,23,5,144,9,23,5,142,9,19,5,0,70,23,5,144,9,23,5,142,9,162,5,0,70,23,5,144,9,23,5,142,9,19,5,0,72,23,5,144,9,23,5,142,9,162,5,0,72,23,5,144,9,23,5,142,9,20,5,0,74,23,5,144,9,23,5,142,9,168,5,0,74,23,5,144,9,23,5,142,9,19,5,0,76,23,5,144,9,23,5,142,9,162,5,0,76,23,5,144,9,23,5,142,9,19,5,0,78,23,5,144,9,23,5,142,9,162,5,0,78,23,5,144,9,23,5,142,9,19,5,0,80,23,5,144,9,23,5,142,9,162,5,0,80,23,5,144,9,23,5,142,9,19,5,0,82,23,5,144,9,23,5,142,9,162,5,0,82,23,5,144,9,23,5,142,9,19,5,0,84,23,5,144,9,23,5,142,9,162,5,0,84,23,5,144,9,23,5,142,9,20,5,0,86,23,5,144,9,23,5,142,9,168,5,0,86,23,5,144,9,23,5,142,9,19,5,0,88,23,5,144,9,23,5,142,9,162,5,0,88,23,5,144,9,23,5,142,9,19,5,0,90,23,5,144,9,23,5,142,9,162,5,0,90,23,5,144,9,23,5,142,9,19,5,0,92,23,5,144,9,23,5,142,9,162,5,0,92,23,5,144,9,23,5,142,9,16,5,6,121,23,5,144,9,23,5,142,9,16,5,6,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,10,121,23,5,144,9,23,5,142,9,16,5,10,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,12,121,23,5,144,9,23,5,142,9,16,5,12,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,16,121,23,5,144,9,23,5,142,9,16,5,16,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,18,121,23,5,144,9,23,5,142,9,16,5,18,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,20,121,23,5,144,9,23,5,142,9,16,5,20,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,24,121,23,5,144,9,23,5,142,9,16,5,24,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,28,121,23,5,144,9,23,5,142,9,16,5,28,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,28,121,16,5,119,121,16,5,30,121,32,5,111,121,32,5,185,121,23,5,144,9,23,5,142,9,16,5,28,121,16,5,119,121,16,5,42,121,16,5,129,121,23,5,144,9,23,5,142,9,16,5,30,121,23,5,144,9,23,5,142,9,16,5,30,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,30,121,16,5,129,121,23,5,144,9,23,5,142,9,16,5,34,121,23,5,144,9,23,5,142,9,16,5,34,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,36,121,23,5,144,9,23,5,142,9,16,5,36,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,38,121,23,5,144,9,23,5,142,9,16,5,38,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,40,121,23,5,144,9,23,5,142,9,16,5,40,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,42,121,23,5,144,9,23,5,142,9,16,5,42,121,16,5,103,121,23,5,144,9,16,5,82,10,162,5,0,78,16,5,84,10,32,5,188,10,32,5,188,10,32,5,188,10,32,5,188,10,32,5,188,10,32,5,190,10,32,5,190,10,32,5,190,10,32,5,190,10,32,5,190,10,5,5,16,12,5,136,0,0,5,5,16,12,5,138,0,0,5,5,16,12,5,148,0,0,193,9,22,12,5,136,0,0,193,9,22,12,5,138,0,0,193,9,22,12,5,148,0,0,193,16,22,12,5,136,0,0,193,16,22,12,5,138,0,0,193,16,22,12,5,148,0,0,32,5,83,12,162,5,0,46,32,5,83,12,162,5,0,52,5,5,99,12,5,158,0,0,5,5,101,12,5,158,0,0,193,2,107,12,5,158,0,0,193,126,108,12,5,158,0,0,193,140,108,12,5,158,0,0,193,154,108,12,5,158,0,0,193,2,113,12,5,158,0,0,193,2,117,12,5,158,0,0,193,16,117,12,5,158,0,0,5,5,129,12,5,158,0,0,5,5,131,12,5,158,0,0,24,5,131,12,24,5,131,12,24,5,131,12,24,5,131,12,24,5,131,12,5,5,133,12,5,158,0,0,193,107,151,12,5,158,0,0,193,114,151,12,5,158,0,0,32,5,153,12,32,5,153,12,32,5,153,12,32,5,153,12,32,5,153,12,32,5,155,12,32,5,155,12,32,5,155,12,32,5,155,12,32,5,155,12,193,79,157,12,5,158,0,0,193,121,157,12,5,158,0,0,193,128,157,12,5,158,0,0,193,142,157,12,5,158,0,0,193,170,157,12,5,158,0,0,193,49,158,12,5,158,0,0,193,63,158,12,5,158,0,0,193,70,158,12,5,158,0,0,193,126,158,12,5,158,0,0,193,133,158,12,5,158,0,0,193,140,158,12,5,158,0,0,193,147,158,12,5,158,0,0,193,154,158,12,5,158,0,0,193,161,158,12,5,158,0,0,193,168,158,12,5,158,0,0,193,175,158,12,5,158,0,0,193,196,158,12,5,158,0,0,193,203,158,12,5,158,0,0,193,210,158,12,5,158,0,0,193,217,158,12,5,158,0,0,193,19,159,12,5,158,0,0,193,26,159,12,5,158,0,0,193,138,159,12,5,158,0,0,193,180,159,12,5,158,0,0,193,187,159,12,5,158,0,0,193,201,159,12,5,158,0,0,193,222,159,12,5,158,0,0,193,229,159,12,5,158,0,0,193,236,159,12,5,158,0,0,193,243,159,12,5,158,0,0,193,29,219,12,5,158,0,0,5,5,110,13,5,174,0,0,5,5,112,13,5,174,0,0,5,5,116,13,5,174,0,0,5,5,120,13,5,174,0,0,21,5,0,19,27,5,0,6,21,5,0,19,24,5,0,8,51,5,0,19,32,5,149,12,51,5,0,25,21,5,0,21,27,5,0,6,21,5,0,21,24,5,0,8,51,5,0,21,32,5,149,12,51,5,0,21,32,5,149,12,51,5,0,21,51,5,0,19,51,5,0,21,32,5,149,12,51,5,0,23,51,5,0,21,32,5,149,12,51,5,0,25,51,5,0,21,32,5,149,12,51,5,0,27,51,5,0,21,32,5,149,12,51,5,0,29,51,5,0,21,32,5,149,12,51,5,0,31,51,5,0,21,32,5,149,12,51,5,0,33,51,5,0,21,32,5,149,12,51,5,0,35,51,5,0,21,32,5,149,12,52,5,0,37,31,5,0,21,31,5,0,19,21,5,0,21,21,5,0,19,24,5,0,8,31,5,0,21,31,5,0,21,21,5,0,21,21,5,0,21,24,5,0,8,31,5,0,21,31,5,0,23,21,5,0,21,21,5,0,23,24,5,0,8,46,5,0,21,46,5,0,23,46,5,0,19,180,5,0,72,31,5,0,21,31,5,0,25,21,5,0,21,21,5,0,25,24,5,0,8,31,5,0,21,31,5,0,27,21,5,0,21,21,5,0,27,24,5,0,8,31,5,0,21,31,5,0,29,21,5,0,21,21,5,0,29,24,5,0,8,31,5,0,21,31,5,0,31,21,5,0,21,21,5,0,31,24,5,0,8,31,5,0,21,31,5,0,33,21,5,0,21,21,5,0,33,24,5,0,8,31,5,0,21,31,5,0,35,21,5,0,21,21,5,0,35,24,5,0,8,31,5,0,21,34,5,0,37,21,5,0,21,22,5,0,37,24,5,0,8,21,5,0,23,27,5,0,6,51,5,0,23,32,5,149,12,51,5,0,25,51,5,0,23,32,5,149,12,51,5,0,29,31,5,0,23,31,5,0,19,21,5,0,23,21,5,0,19,24,5,0,8,31,5,0,23,31,5,0,21,31,5,0,23,31,5,0,23,46,5,0,23,46,5,0,23,48,5,0,8,46,5,0,23,31,5,0,23,31,5,0,25,31,5,0,23,31,5,0,27,31,5,0,23,31,5,0,29,31,5,0,23,31,5,0,31,31,5,0,23,31,5,0,33,31,5,0,23,31,5,0,35,31,5,0,23,34,5,0,37,46,5,0,23,180,5,0,62,46,5,0,23,49,5,0,68,46,5,0,48,48,5,0,4,180,5,0,78,46,5,0,46,49,5,0,76,21,5,0,25,27,5,0,6,51,5,0,25,32,5,149,12,51,5,0,27,51,5,0,25,32,5,149,12,51,5,0,29,51,5,0,25,32,5,149,12,51,5,0,35,31,5,0,25,31,5,0,19,31,5,0,25,31,5,0,21,31,5,0,25,31,5,0,25,31,5,0,25,31,5,0,27,31,5,0,25,31,5,0,29,31,5,0,25,31,5,0,31,31,5,0,25,31,5,0,33,31,5,0,25,31,5,0,35,31,5,0,25,34,5,0,37,46,5,0,25,177,5,0,48,21,5,0,27,27,5,0,6,51,5,0,27,32,5,149,12,51,5,0,29,31,5,0,27,31,5,0,19,31,5,0,27,31,5,0,21,31,5,0,27,31,5,0,27,31,5,0,27,31,5,0,29,31,5,0,27,31,5,0,31,31,5,0,27,31,5,0,33,31,5,0,27,31,5,0,35,31,5,0,27,34,5,0,37,46,5,0,27,180,5,0,62,21,5,0,29,27,5,0,6,46,5,0,29,48,5,0,8,46,5,0,21,51,5,0,29,32,5,149,12,51,5,0,31,51,5,0,29,32,5,149,12,51,5,0,35,31,5,0,29,31,5,0,19,21,5,0,31,27,5,0,6,31,5,0,31,31,5,0,19,46,5,0,31,46,5,0,19,180,5,0,72,21,5,0,33,27,5,0,6,46,5,0,33,48,5,0,8,46,5,0,21,51,5,0,33,32,5,149,12,51,5,0,35,31,5,0,33,31,5,0,19,21,5,0,35,27,5,0,6,31,5,0,35,31,5,0,19,46,5,0,35,180,5,0,62,22,5,0,37,27,5,0,6,5,5,0,42,5,140,0,0,5,136,0,0,156,5,0,42,5,140,0,0,5,136,0,0,5,5,0,42,5,140,0,0,5,138,0,0,156,5,0,42,5,140,0,0,5,138,0,0,5,5,0,42,5,140,0,0,5,154,0,0,156,5,0,42,5,140,0,0,5,154,0,0,5,5,0,42,5,140,0,0,5,182,0,0,156,5,0,42,5,140,0,0,5,182,0,0,5,5,0,42,5,142,0,0,5,136,0,0,156,5,0,42,5,142,0,0,5,136,0,0,5,5,0,42,5,142,0,0,5,138,0,0,156,5,0,42,5,142,0,0,5,138,0,0,5,5,0,42,5,142,0,0,5,154,0,0,156,5,0,42,5,142,0,0,5,154,0,0,5,5,0,42,5,142,0,0,5,182,0,0,156,5,0,42,5,142,0,0,5,182,0,0,5,5,0,42,5,146,0,0,5,136,0,0,156,5,0,42,5,146,0,0,5,136,0,0,19,5,0,42,32,150,0,0,162,5,0,42,32,150,0,0,5,5,0,42,5,150,0,0,5,164,0,0,156,5,0,42,5,150,0,0,5,164,0,0,5,5,0,42,5,156,0,0,5,164,0,0,156,5,0,42,5,156,0,0,5,164,0,0,5,5,0,42,5,196,0,0,5,140,0,0,156,5,0,42,5,196,0,0,5,140,0,0,5,5,0,42,5,196,0,0,5,142,0,0,156,5,0,42,5,196,0,0,5,142,0,0,49,5,0,42,48,5,0,8,49,5,0,66,48,5,0,8,19,5,0,42,46,5,138,10,19,5,0,46,19,5,0,42,46,5,138,10,19,5,0,78,162,5,0,42,46,5,138,10,162,5,0,78,180,5,0,42,32,5,147,12,49,5,0,66,19,5,0,42,19,5,0,42,162,5,0,42,162,5,0,42,180,5,0,42,177,5,0,44,5,112,0,42,19,5,0,50,160,112,0,42,162,5,0,50,46,112,0,42,43,5,0,50,5,112,0,42,19,5,0,50,5,136,0,0,160,112,0,42,162,5,0,50,5,136,0,0,5,112,0,42,19,5,0,50,5,164,0,0,160,112,0,42,162,5,0,50,5,164,0,0,19,5,0,42,19,5,0,70,162,5,0,42,162,5,0,70,19,5,0,42,19,5,0,82,162,5,0,42,162,5,0,82,180,5,0,42,177,5,0,82,19,5,0,42,19,5,0,84,162,5,0,42,162,5,0,84,5,112,0,42,19,5,0,84,160,112,0,42,162,5,0,84,19,5,0,42,19,5,0,90,162,5,0,42,162,5,0,90,19,5,0,42,32,5,86,93,46,5,0,44,49,5,0,42,49,5,0,76,177,5,0,44,52,5,0,74,19,5,0,46,32,160,0,0,5,5,0,46,5,160,0,0,5,136,0,0,156,5,0,46,5,160,0,0,5,136,0,0,19,5,0,46,46,5,138,10,19,5,0,70,19,5,0,46,46,5,138,10,19,5,0,82,177,5,0,46,32,5,147,12,49,5,0,62,46,5,0,54,46,5,0,46,49,5,0,42,49,5,0,64,46,5,0,46,46,5,0,46,168,5,0,46,168,5,0,48,46,5,0,46,46,5,0,48,177,5,0,46,180,5,0,64,46,5,0,46,49,5,0,66,46,5,0,46,49,5,0,66,46,5,0,23,46,5,0,46,49,5,0,66,46,5,0,25,177,5,0,46,49,5,0,70,48,5,0,8,177,5,0,46,180,5,0,70,180,5,0,70,180,5,0,64,46,5,0,48,49,5,0,42,19,5,0,48,19,5,0,44,46,5,0,48,177,5,0,44,177,5,0,48,177,5,0,60,46,5,0,48,49,5,0,64,46,5,0,48,49,5,0,66,46,5,0,48,49,5,0,66,46,5,0,23,46,5,0,48,49,5,0,66,46,5,0,25,19,5,0,48,19,5,0,92,162,5,0,48,19,5,0,92,162,5,0,48,162,5,0,92,19,5,0,48,19,5,0,92,32,144,0,0,162,5,0,48,19,5,0,92,32,144,0,0,162,5,0,48,162,5,0,92,32,144,0,0,19,5,0,48,32,5,16,93,19,5,0,48,32,5,18,93,19,5,0,48,16,5,26,93,5,5,0,50,5,142,0,0,5,136,0,0,156,5,0,50,5,142,0,0,5,136,0,0,5,5,0,50,5,142,0,0,5,138,0,0,156,5,0,50,5,142,0,0,5,138,0,0,5,5,0,50,5,142,0,0,5,154,0,0,156,5,0,50,5,142,0,0,5,154,0,0,5,5,0,50,5,142,0,0,5,182,0,0,156,5,0,50,5,142,0,0,5,182,0,0,5,5,0,50,5,160,0,0,5,140,0,0,156,5,0,50,5,160,0,0,5,140,0,0,5,5,0,50,5,164,0,0,5,136,0,0,156,5,0,50,5,164,0,0,5,136,0,0,5,5,0,50,5,164,0,0,5,138,0,0,156,5,0,50,5,164,0,0,5,138,0,0,5,5,0,50,5,196,0,0,5,142,0,0,156,5,0,50,5,196,0,0,5,142,0,0,49,5,0,50,49,5,0,76,46,5,0,54,49,5,0,50,180,5,0,84,162,5,0,52,162,5,0,42,162,5,0,88,19,5,0,52,19,5,0,52,19,5,0,52,19,5,0,52,19,5,0,58,19,5,0,52,19,5,0,52,19,5,0,64,46,5,0,52,49,5,0,66,19,5,0,52,16,5,30,69,177,5,0,52,180,5,0,76,180,5,0,50,180,5,0,50,19,5,0,54,32,170,0,0,162,5,0,54,32,170,0,0,46,5,0,54,49,5,0,42,49,5,0,64,177,5,0,54,177,5,0,44,177,5,0,54,180,5,0,56,46,5,0,92,177,5,0,54,180,5,0,72,49,5,0,42,177,5,0,54,46,5,0,90,43,5,0,56,32,178,0,0,49,5,0,56,49,5,0,42,180,5,0,56,46,5,0,46,180,5,0,56,46,5,0,48,180,5,0,76,180,5,0,56,46,5,0,54,180,5,0,56,49,5,0,58,48,5,0,4,180,5,0,76,49,5,0,50,49,5,0,78,180,5,0,56,180,5,0,72,49,5,0,56,180,5,0,72,49,5,0,42,180,5,0,56,180,5,0,84,5,5,0,58,5,150,0,0,5,136,0,0,156,5,0,58,5,150,0,0,5,136,0,0,180,5,0,58,177,5,0,46,180,5,0,58,177,5,0,48,19,5,0,58,19,5,0,58,162,5,0,58,162,5,0,58,19,5,0,58,19,5,0,58,19,5,0,58,162,5,0,58,162,5,0,58,162,5,0,58,19,5,0,58,19,5,0,60,162,5,0,58,162,5,0,60,49,5,0,58,49,5,0,68,180,5,0,58,177,5,0,82,19,5,0,58,19,5,0,84,162,5,0,58,162,5,0,84,19,5,0,58,19,5,0,88,162,5,0,58,162,5,0,88,19,5,0,62,32,170,0,0,162,5,0,62,32,170,0,0,49,5,0,62,180,5,0,42,180,5,0,62,177,5,0,44,49,5,0,62,46,5,0,46,49,5,0,42,49,5,0,64,49,5,0,62,180,5,0,56,46,5,0,92,180,5,0,62,180,5,0,62,49,5,0,62,49,5,0,64,49,5,0,62,49,5,0,66,180,5,0,62,180,5,0,66,49,5,0,62,49,5,0,66,46,5,0,23,49,5,0,62,49,5,0,66,46,5,0,25,49,5,0,62,180,5,0,72,49,5,0,42,49,5,0,62,49,5,0,80,49,5,0,62,180,5,0,84,49,5,0,62,184,5,0,86,49,5,0,62,177,5,86,96,5,5,0,64,5,196,0,0,5,164,0,0,156,5,0,64,5,196,0,0,5,164,0,0,5,5,0,64,194,5,219,251,156,5,0,64,194,5,219,251,19,5,0,64,19,5,0,60,162,5,0,64,19,5,0,60,162,5,0,64,162,5,0,60,19,5,0,64,19,5,0,64,162,5,0,64,162,5,0,64,49,5,0,64,49,5,0,66,49,5,0,64,49,5,0,68,49,5,0,64,49,5,0,70,46,5,0,54,180,5,0,64,49,5,0,70,49,5,0,78,49,5,0,78,49,5,0,64,49,5,0,50,49,5,0,78,49,5,0,78,19,5,0,64,19,5,0,78,180,5,0,64,180,5,0,80,177,5,0,48,49,5,0,64,49,5,0,88,19,5,0,64,19,5,0,92,49,5,0,66,32,5,147,12,49,5,0,78,49,5,0,66,32,5,147,12,49,5,0,78,46,5,0,23,49,5,0,66,180,5,0,42,49,5,0,66,46,5,0,44,180,5,0,66,177,5,0,44,43,5,0,66,43,5,0,46,43,5,0,66,43,5,0,48,49,5,0,66,46,5,0,54,180,5,0,66,180,5,0,56,46,5,0,92,49,5,0,66,49,5,0,58,49,5,0,64,49,5,0,66,49,5,0,66,49,5,0,66,49,5,0,66,46,5,0,23,49,5,0,66,49,5,0,66,46,5,0,25,49,5,0,66,49,5,0,70,49,5,0,64,180,5,0,66,180,5,0,72,49,5,0,42,43,5,0,66,43,5,0,76,49,5,0,66,49,5,0,78,49,5,0,66,180,5,0,84,180,5,0,66,180,5,0,84,49,5,0,66,184,5,0,86,180,5,0,66,184,5,0,86,180,5,0,66,177,5,86,96,19,5,0,68,32,170,0,0,162,5,0,68,32,170,0,0,49,5,0,68,180,5,0,42,180,5,0,68,180,5,0,50,184,5,0,86,49,5,0,68,177,5,0,52,180,5,0,68,177,5,0,54,19,5,0,68,19,5,0,60,162,5,0,68,19,5,0,60,162,5,0,68,162,5,0,60,49,5,0,68,49,5,0,66,162,5,0,68,19,5,0,70,49,5,0,68,49,5,0,78,49,5,0,68,180,5,0,84,49,5,0,68,184,5,0,86,5,5,0,70,5,142,0,0,5,136,0,0,156,5,0,70,5,142,0,0,5,136,0,0,5,5,0,70,5,142,0,0,5,138,0,0,156,5,0,70,5,142,0,0,5,138,0,0,5,5,0,70,5,142,0,0,5,154,0,0,156,5,0,70,5,142,0,0,5,154,0,0,5,5,0,70,5,142,0,0,5,182,0,0,156,5,0,70,5,142,0,0,5,182,0,0,19,5,0,70,32,150,0,0,162,5,0,70,32,150,0,0,5,5,0,70,5,150,0,0,5,164,0,0,156,5,0,70,5,150,0,0,5,164,0,0,5,5,0,70,5,154,0,0,5,136,0,0,156,5,0,70,5,154,0,0,5,136,0,0,5,5,0,70,5,154,0,0,5,150,0,0,156,5,0,70,5,154,0,0,5,150,0,0,5,5,0,70,5,154,0,0,5,164,0,0,156,5,0,70,5,154,0,0,5,164,0,0,5,5,0,70,5,156,0,0,5,164,0,0,156,5,0,70,5,156,0,0,5,164,0,0,5,5,0,70,5,158,0,0,5,136,0,0,156,5,0,70,5,158,0,0,5,136,0,0,5,5,0,70,5,162,0,0,5,164,0,0,156,5,0,70,5,162,0,0,5,164,0,0,5,5,0,70,5,164,0,0,5,136,0,0,156,5,0,70,5,164,0,0,5,136,0,0,5,5,0,70,5,164,0,0,5,138,0,0,156,5,0,70,5,164,0,0,5,138,0,0,19,5,0,70,32,168,0,0,5,5,0,70,5,190,0,0,5,136,0,0,156,5,0,70,5,190,0,0,5,136,0,0,5,5,0,70,5,190,0,0,5,138,0,0,156,5,0,70,5,190,0,0,5,138,0,0,5,5,0,70,5,190,0,0,5,154,0,0,156,5,0,70,5,190,0,0,5,154,0,0,5,5,0,70,5,190,0,0,5,182,0,0,156,5,0,70,5,190,0,0,5,182,0,0,5,5,0,70,5,190,0,0,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,196,0,0,5,142,0,0,156,5,0,70,5,196,0,0,5,142,0,0,5,112,0,70,19,5,0,50,160,112,0,70,162,5,0,50,46,112,0,70,43,5,0,50,180,5,0,70,180,5,0,62,19,5,0,70,19,5,0,70,162,5,0,70,162,5,0,70,49,5,0,70,180,5,0,84,49,5,0,72,48,5,0,8,49,5,0,66,48,5,0,8,49,5,0,72,180,5,0,42,180,5,0,72,180,5,0,42,49,5,0,72,46,5,0,46,49,5,0,72,177,5,0,52,180,5,0,72,180,5,0,56,180,5,0,72,180,5,0,72,180,5,0,66,180,5,0,72,180,5,0,72,180,5,0,84,180,5,0,72,180,5,0,76,49,5,0,72,49,5,0,78,180,5,0,72,180,5,0,80,180,5,0,50,49,5,0,72,180,5,0,84,49,5,0,72,184,5,0,86,20,5,0,74,19,5,0,72,19,5,0,76,32,170,0,0,162,5,0,76,32,170,0,0,5,5,0,76,5,196,0,0,5,164,0,0,156,5,0,76,5,196,0,0,5,164,0,0,49,5,0,76,49,5,0,42,46,5,0,48,49,5,0,76,49,5,0,42,46,5,0,48,32,5,147,12,49,5,0,78,49,5,0,76,49,5,0,42,46,5,0,48,32,5,147,12,49,5,0,78,46,5,0,23,5,5,0,78,5,136,0,0,5,156,0,0,156,5,0,78,5,136,0,0,5,156,0,0,5,5,0,78,5,144,0,0,5,156,0,0,156,5,0,78,5,144,0,0,5,156,0,0,19,5,0,78,32,170,0,0,162,5,0,78,32,170,0,0,5,5,0,78,5,196,0,0,5,156,0,0,156,5,0,78,5,196,0,0,5,156,0,0,5,120,0,78,5,156,0,0,180,5,0,78,180,5,0,42,180,5,0,78,177,5,0,48,180,5,0,78,180,5,0,56,180,5,0,84,43,5,0,78,43,5,0,66,180,5,0,78,180,5,0,70,180,5,0,78,180,5,0,78,180,5,0,78,5,112,0,78,19,5,0,78,160,112,0,78,162,5,0,78,19,5,0,78,19,5,0,80,5,120,0,78,19,5,0,80,180,5,0,78,49,5,0,84,19,5,0,80,32,5,16,47,162,5,0,80,162,5,0,50,162,5,0,64,5,112,0,80,19,5,0,56,180,5,0,80,180,5,0,56,46,5,0,92,43,5,0,80,43,5,0,66,19,5,0,80,19,5,0,78,19,5,0,80,16,5,14,79,19,5,0,80,16,5,22,79,19,5,0,80,19,5,0,92,162,5,0,80,19,5,0,92,19,5,0,82,32,150,0,0,162,5,0,82,32,150,0,0,5,5,0,82,5,150,0,0,5,136,0,0,156,5,0,82,5,150,0,0,5,136,0,0,5,5,0,82,5,150,0,0,5,138,0,0,156,5,0,82,5,150,0,0,5,138,0,0,5,5,0,82,5,150,0,0,5,144,0,0,156,5,0,82,5,150,0,0,5,144,0,0,5,5,0,82,5,150,0,0,5,164,0,0,156,5,0,82,5,150,0,0,5,164,0,0,5,5,0,82,5,154,0,0,5,136,0,0,156,5,0,82,5,154,0,0,5,136,0,0,5,5,0,82,5,164,0,0,5,150,0,0,156,5,0,82,5,164,0,0,5,150,0,0,19,5,0,82,32,168,0,0,5,5,0,82,5,190,0,0,5,136,0,0,156,5,0,82,5,190,0,0,5,136,0,0,5,5,0,82,5,190,0,0,5,138,0,0,156,5,0,82,5,190,0,0,5,138,0,0,5,5,0,82,5,190,0,0,5,154,0,0,156,5,0,82,5,190,0,0,5,154,0,0,5,5,0,82,5,190,0,0,5,182,0,0,156,5,0,82,5,190,0,0,5,182,0,0,5,5,0,82,5,190,0,0,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,177,5,0,82,180,5,0,56,177,5,0,48,177,5,0,82,180,5,0,72,48,5,90,7,180,5,0,84,32,5,147,12,49,5,0,66,19,5,0,84,19,5,0,58,162,5,0,84,162,5,0,58,19,5,0,84,19,5,0,58,19,5,0,58,162,5,0,84,162,5,0,58,162,5,0,58,19,5,0,84,19,5,0,58,19,5,0,58,19,5,0,58,162,5,0,84,162,5,0,58,162,5,0,58,162,5,0,58,180,5,0,84,180,5,0,70,177,5,0,48,180,5,0,84,180,5,0,78,19,5,0,84,19,5,0,90,162,5,0,84,162,5,0,90,184,5,0,86,46,5,0,44,184,5,0,86,177,5,0,46,176,5,0,86,168,5,0,92,19,5,0,88,19,5,0,58,162,5,0,88,162,5,0,58,19,5,0,88,19,5,0,58,19,5,0,58,162,5,0,88,162,5,0,58,162,5,0,58,19,5,0,92,20,5,0,86,5,5,26,93,5,144,0,0,158,5,26,93,5,144,0,0,32,5,82,93,19,5,0,68,5,5,6,96,5,132,0,0,166,5,6,96,5,132,0,0,5,5,6,96,5,132,0,0,5,136,0,0,166,5,6,96,5,132,0,0,5,136,0,0,5,5,6,96,5,132,0,0,5,136,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,136,0,0,5,216,0,0,5,5,6,96,5,132,0,0,5,138,0,0,166,5,6,96,5,132,0,0,5,138,0,0,5,5,6,96,5,132,0,0,5,138,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,138,0,0,5,216,0,0,5,5,6,96,5,132,0,0,5,148,0,0,166,5,6,96,5,132,0,0,5,148,0,0,5,5,6,96,5,132,0,0,5,148,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,148,0,0,5,216,0,0,5,5,6,96,5,132,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,216,0,0,5,5,6,96,5,134,0,0,166,5,6,96,5,134,0,0,5,5,6,96,5,134,0,0,5,136,0,0,166,5,6,96,5,134,0,0,5,136,0,0,5,5,6,96,5,134,0,0,5,136,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,136,0,0,5,216,0,0,5,5,6,96,5,134,0,0,5,138,0,0,166,5,6,96,5,134,0,0,5,138,0,0,5,5,6,96,5,134,0,0,5,138,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,138,0,0,5,216,0,0,5,5,6,96,5,134,0,0,5,148,0,0,166,5,6,96,5,134,0,0,5,148,0,0,5,5,6,96,5,134,0,0,5,148,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,148,0,0,5,216,0,0,5,5,6,96,5,134,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,216,0,0,5,5,6,96,5,136,0,0,166,5,6,96,5,136,0,0,5,5,6,96,5,136,0,0,5,216,0,0,5,5,6,96,5,138,0,0,166,5,6,96,5,138,0,0,5,5,6,96,5,138,0,0,5,216,0,0,5,5,6,96,5,140,0,0,166,5,6,96,5,140,0,0,5,5,6,96,5,148,0,0,5,5,6,96,5,148,0,0,5,216,0,0,5,5,6,96,5,164,0,0,166,5,6,96,5,164,0,0,5,5,6,96,5,216,0,0,166,5,6,96,5,216,0,0,5,5,16,96,5,132,0,0,166,5,16,96,5,132,0,0,5,5,16,96,5,132,0,0,5,136,0,0,166,5,16,96,5,132,0,0,5,136,0,0,5,5,16,96,5,132,0,0,5,138,0,0,166,5,16,96,5,132,0,0,5,138,0,0,5,5,16,96,5,134,0,0,166,5,16,96,5,134,0,0,5,5,16,96,5,134,0,0,5,136,0,0,166,5,16,96,5,134,0,0,5,136,0,0,5,5,16,96,5,134,0,0,5,138,0,0,166,5,16,96,5,134,0,0,5,138,0,0,5,5,16,96,5,136,0,0,166,5,16,96,5,136,0,0,5,5,16,96,5,138,0,0,166,5,16,96,5,138,0,0,5,5,28,96,5,132,0,0,158,5,28,96,5,132,0,0,5,5,28,96,5,132,0,0,5,136,0,0,158,5,28,96,5,132,0,0,5,136,0,0,5,5,28,96,5,132,0,0,5,136,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,136,0,0,5,216,0,0,5,5,28,96,5,132,0,0,5,138,0,0,158,5,28,96,5,132,0,0,5,138,0,0,5,5,28,96,5,132,0,0,5,138,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,138,0,0,5,216,0,0,5,5,28,96,5,132,0,0,5,148,0,0,158,5,28,96,5,132,0,0,5,148,0,0,5,5,28,96,5,132,0,0,5,148,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,148,0,0,5,216,0,0,5,5,28,96,5,132,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,216,0,0,5,5,28,96,5,134,0,0,158,5,28,96,5,134,0,0,5,5,28,96,5,134,0,0,5,136,0,0,158,5,28,96,5,134,0,0,5,136,0,0,5,5,28,96,5,134,0,0,5,136,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,136,0,0,5,216,0,0,5,5,28,96,5,134,0,0,5,138,0,0,158,5,28,96,5,134,0,0,5,138,0,0,5,5,28,96,5,134,0,0,5,138,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,138,0,0,5,216,0,0,5,5,28,96,5,134,0,0,5,148,0,0,158,5,28,96,5,134,0,0,5,148,0,0,5,5,28,96,5,134,0,0,5,148,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,148,0,0,5,216,0,0,5,5,28,96,5,134,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,216,0,0,5,5,28,96,5,136,0,0,158,5,28,96,5,136,0,0,5,5,28,96,5,136,0,0,5,216,0,0,5,5,28,96,5,138,0,0,158,5,28,96,5,138,0,0,5,5,28,96,5,138,0,0,5,216,0,0,5,5,28,96,5,148,0,0,5,5,28,96,5,148,0,0,5,216,0,0,5,5,28,96,5,216,0,0,158,5,28,96,5,216,0,0,5,5,32,96,5,132,0,0,166,5,32,96,5,132,0,0,5,5,32,96,5,132,0,0,5,136,0,0,166,5,32,96,5,132,0,0,5,136,0,0,5,5,32,96,5,132,0,0,5,138,0,0,166,5,32,96,5,132,0,0,5,138,0,0,5,5,32,96,5,132,0,0,5,148,0,0,166,5,32,96,5,132,0,0,5,148,0,0,5,5,32,96,5,134,0,0,166,5,32,96,5,134,0,0,5,5,32,96,5,134,0,0,5,136,0,0,166,5,32,96,5,134,0,0,5,136,0,0,5,5,32,96,5,134,0,0,5,138,0,0,166,5,32,96,5,134,0,0,5,138,0,0,5,5,32,96,5,134,0,0,5,148,0,0,166,5,32,96,5,134,0,0,5,148,0,0,5,5,32,96,5,136,0,0,166,5,32,96,5,136,0,0,5,5,32,96,5,138,0,0,166,5,32,96,5,138,0,0,5,5,32,96,5,140,0,0,166,5,32,96,5,140,0,0,5,5,32,96,5,148,0,0,5,5,32,96,5,150,0,0,166,5,32,96,5,150,0,0,5,5,32,96,5,150,0,0,5,136,0,0,5,5,32,96,5,150,0,0,5,138,0,0,5,5,32,96,5,150,0,0,5,148,0,0,5,5,32,96,5,164,0,0,166,5,32,96,5,164,0,0,16,5,36,96,16,5,6,96,16,5,32,96,168,5,36,96,16,5,6,96,16,5,32,96,48,5,42,96,180,5,0,42,48,5,42,96,177,5,0,52,48,5,42,96,46,5,0,54,48,5,42,96,49,5,0,64,48,5,42,96,49,5,0,66,48,5,42,96,49,5,0,78,48,5,42,96,180,5,0,84,48,5,42,96,184,5,0,86,5,5,48,96,5,132,0,0,158,5,48,96,5,132,0,0,5,5,48,96,5,132,0,0,5,136,0,0,158,5,48,96,5,132,0,0,5,136,0,0,5,5,48,96,5,132,0,0,5,138,0,0,158,5,48,96,5,132,0,0,5,138,0,0,5,5,48,96,5,134,0,0,158,5,48,96,5,134,0,0,5,5,48,96,5,134,0,0,5,136,0,0,158,5,48,96,5,134,0,0,5,136,0,0,5,5,48,96,5,134,0,0,5,138,0,0,158,5,48,96,5,134,0,0,5,138,0,0,5,5,48,96,5,136,0,0,158,5,48,96,5,136,0,0,5,5,48,96,5,138,0,0,158,5,48,96,5,138,0,0,5,5,60,96,5,132,0,0,5,5,60,96,5,134,0,0,160,5,60,96,5,134,0,0,5,5,76,96,5,132,0,0,5,5,76,96,5,132,0,0,5,136,0,0,5,5,76,96,5,132,0,0,5,138,0,0,5,5,76,96,5,132,0,0,5,148,0,0,5,5,76,96,5,134,0,0,155,5,76,96,5,134,0,0,5,5,76,96,5,134,0,0,5,136,0,0,155,5,76,96,5,134,0,0,5,136,0,0,5,5,76,96,5,134,0,0,5,138,0,0,155,5,76,96,5,134,0,0,5,138,0,0,5,5,76,96,5,134,0,0,5,148,0,0,155,5,76,96,5,134,0,0,5,148,0,0,5,5,76,96,5,136,0,0,155,5,76,96,5,136,0,0,166,5,76,96,5,136,0,0,5,5,76,96,5,138,0,0,155,5,76,96,5,138,0,0,5,5,76,96,5,140,0,0,155,5,76,96,5,140,0,0,5,5,76,96,5,148,0,0,5,5,76,96,5,150,0,0,155,5,76,96,5,150,0,0,166,5,76,96,5,150,0,0,5,5,76,96,5,150,0,0,5,136,0,0,5,5,76,96,5,150,0,0,5,138,0,0,5,5,76,96,5,150,0,0,5,148,0,0,5,5,76,96,5,164,0,0,155,5,76,96,5,164,0,0,5,5,86,96,5,132,0,0,155,5,86,96,5,132,0,0,5,5,86,96,5,132,0,0,5,136,0,0,155,5,86,96,5,132,0,0,5,136,0,0,5,5,86,96,5,132,0,0,5,136,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,136,0,0,5,216,0,0,5,5,86,96,5,132,0,0,5,138,0,0,155,5,86,96,5,132,0,0,5,138,0,0,5,5,86,96,5,132,0,0,5,138,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,138,0,0,5,216,0,0,5,5,86,96,5,132,0,0,5,148,0,0,155,5,86,96,5,132,0,0,5,148,0,0,5,5,86,96,5,132,0,0,5,148,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,148,0,0,5,216,0,0,5,5,86,96,5,132,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,216,0,0,5,5,86,96,5,134,0,0,155,5,86,96,5,134,0,0,5,5,86,96,5,134,0,0,5,136,0,0,155,5,86,96,5,134,0,0,5,136,0,0,5,5,86,96,5,134,0,0,5,136,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,136,0,0,5,216,0,0,5,5,86,96,5,134,0,0,5,138,0,0,155,5,86,96,5,134,0,0,5,138,0,0,5,5,86,96,5,134,0,0,5,138,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,138,0,0,5,216,0,0,5,5,86,96,5,134,0,0,5,148,0,0,155,5,86,96,5,134,0,0,5,148,0,0,5,5,86,96,5,134,0,0,5,148,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,148,0,0,5,216,0,0,5,5,86,96,5,134,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,216,0,0,5,5,86,96,5,136,0,0,155,5,86,96,5,136,0,0,5,5,86,96,5,136,0,0,5,216,0,0,5,5,86,96,5,138,0,0,155,5,86,96,5,138,0,0,5,5,86,96,5,138,0,0,5,216,0,0,5,5,86,96,5,148,0,0,5,5,86,96,5,148,0,0,5,216,0,0,5,5,86,96,5,216,0,0,155,5,86,96,5,216,0,0,32,5,120,96,32,5,98,96,32,5,118,96,5,5,6,97,5,140,0,0,174,5,6,97,5,140,0,0,5,5,6,97,5,150,0,0,174,5,6,97,5,150,0,0,5,5,8,97,5,150,0,0,160,5,8,97,5,150,0,0,5,5,16,97,5,136,0,0,174,5,16,97,5,136,0,0,5,5,40,97,5,138,0,0,174,5,40,97,5,138,0,0,5,5,40,97,5,140,0,0,174,5,40,97,5,140,0,0,5,5,40,97,5,150,0,0,174,5,40,97,5,150,0,0,5,5,44,97,5,140,0,0,174,5,44,97,5,140,0,0,5,5,44,97,5,150,0,0,174,5,44,97,5,150,0,0,5,5,50,97,5,150,0,0,174,5,50,97,5,150,0,0,5,5,70,97,5,138,0,0,174,5,70,97,5,138,0,0,5,5,70,97,5,150,0,0,174,5,70,97,5,150,0,0,5,5,70,97,5,164,0,0,174,5,70,97,5,164,0,0,5,5,74,97,5,150,0,0,32,5,74,97,32,150,0,0,174,5,74,97,5,150,0,0,5,5,84,97,5,136,0,0,174,5,84,97,5,136,0,0,5,5,138,97,5,150,0,0,158,5,138,97,5,150,0,0,5,5,140,97,5,150,0,0,160,5,140,97,5,150,0,0,32,5,156,97,32,5,162,97,5,5,172,97,5,140,0,0,174,5,172,97,5,140,0,0,5,5,172,97,5,150,0,0,174,5,172,97,5,150,0,0,5,5,172,97,5,152,0,0,174,5,172,97,5,152,0,0,5,5,172,97,5,164,0,0,174,5,172,97,5,164,0,0,5,5,200,97,5,150,0,0,174,5,200,97,5,150,0,0,5,5,230,97,5,150,0,0,174,5,230,97,5,150,0,0,5,5,238,97,5,150,0,0,160,5,238,97,5,150,0,0,193,86,246,97,5,184,0,0,32,5,16,100,32,5,76,100,32,5,46,100,32,5,16,100,32,5,46,100,32,5,28,100,32,5,46,100,32,5,32,100,32,5,46,100,32,5,52,100,32,5,68,100,32,5,52,100,5,5,6,101,194,5,12,227,5,5,6,101,194,5,45,227,5,5,6,101,194,5,210,227,32,5,6,101,32,5,28,101,5,5,8,101,194,5,210,227,5,5,8,101,194,5,243,227,5,5,10,101,194,5,210,227,5,5,12,101,194,5,210,227,5,5,14,101,194,5,210,227,5,5,16,101,194,5,78,227,5,5,16,101,194,5,210,227,32,5,16,101,32,5,16,101,32,5,16,101,32,5,24,101,5,5,18,101,194,5,210,227,5,5,22,101,194,5,210,227,5,5,24,101,194,5,167,226,5,5,24,101,194,5,210,227,32,5,24,101,32,5,14,101,32,5,16,101,32,5,14,101,32,5,24,101,32,5,24,101,32,5,24,101,32,5,24,101,194,5,12,227,5,5,26,101,194,5,210,227,46,5,26,101,194,5,210,227,5,5,26,101,194,5,243,227,5,5,28,101,194,5,210,227,5,5,30,101,194,5,210,227,5,5,32,101,194,5,210,227,5,5,34,101,194,5,210,227,5,5,38,101,194,5,210,227,32,5,38,101,194,5,210,227,5,5,38,101,194,5,243,227,5,5,40,101,194,5,210,227,5,5,42,101,194,5,210,227,5,5,44,101,194,5,210,227,5,5,46,101,194,5,144,227,5,5,46,101,194,5,177,227,5,5,46,101,194,5,210,227,5,5,46,101,194,5,210,227,194,5,144,227,5,5,46,101,194,5,210,227,194,5,177,227,5,5,48,101,194,5,210,227,38,5,22,102,38,5,26,102,49,5,22,102,49,5,26,102,16,5,22,102,24,5,58,102,49,5,22,102,48,5,58,102,16,5,22,102,24,5,72,102,49,5,22,102,48,5,72,102,16,5,22,102,24,5,74,102,38,5,22,102,30,5,110,102,38,5,22,102,30,5,112,102,16,5,22,102,24,5,200,102,27,5,22,102,32,5,200,102,38,5,22,102,40,5,200,102,49,5,22,102,48,5,200,102,38,5,22,102,40,5,204,102,16,5,22,102,24,5,214,102,27,5,22,102,32,5,214,102,38,5,22,102,38,5,222,102,49,5,22,102,49,5,222,102,38,5,22,102,30,5,228,102,49,5,22,102,44,5,228,102,38,5,22,102,32,5,230,102,49,5,22,102,46,5,230,102,16,5,22,102,16,5,236,102,38,5,22,102,38,5,236,102,49,5,22,102,49,5,236,102,38,5,22,102,44,5,238,102,49,5,22,102,51,5,238,102,16,5,22,102,16,5,246,102,38,5,22,102,38,5,246,102,49,5,22,102,49,5,246,102,38,5,26,102,194,30,164,229,49,5,26,102,194,44,164,229,16,5,26,102,32,5,6,102,49,5,26,102,48,5,182,102,48,5,30,102,44,5,110,102,49,5,26,102,48,5,196,102,48,5,196,102,48,5,214,102,24,5,30,102,24,5,58,102,48,5,30,102,48,5,58,102,24,5,30,102,24,5,72,102,48,5,30,102,48,5,72,102,40,5,30,102,40,5,72,102,44,5,238,102,24,5,30,102,24,5,74,102,48,5,30,102,48,5,74,102,40,5,30,102,40,5,74,102,44,5,238,102,40,5,30,102,30,5,110,102,40,5,30,102,30,5,112,102,24,5,30,102,24,5,200,102,32,5,30,102,32,5,200,102,40,5,30,102,40,5,200,102,48,5,30,102,48,5,200,102,40,5,30,102,40,5,204,102,24,5,30,102,24,5,214,102,32,5,30,102,32,5,214,102,40,5,30,102,38,5,236,102,48,5,30,102,49,5,236,102,40,5,30,102,44,5,238,102,48,5,30,102,51,5,238,102,24,5,42,102,24,5,58,102,48,5,42,102,48,5,58,102,24,5,42,102,24,5,58,102,24,5,200,102,40,5,42,102,40,5,58,102,38,5,236,102,40,5,42,102,40,5,58,102,44,5,238,102,24,5,42,102,24,5,72,102,48,5,42,102,48,5,72,102,24,5,42,102,24,5,72,102,24,5,58,102,40,5,42,102,40,5,72,102,40,5,58,102,24,5,42,102,24,5,72,102,24,5,200,102,24,5,42,102,24,5,74,102,48,5,42,102,48,5,74,102,24,5,42,102,24,5,74,102,24,5,200,102,40,5,42,102,40,5,74,102,38,5,236,102,40,5,42,102,40,5,74,102,44,5,238,102,40,5,42,102,30,5,110,102,40,5,42,102,30,5,112,102,24,5,42,102,24,5,200,102,32,5,42,102,32,5,200,102,40,5,42,102,40,5,200,102,48,5,42,102,48,5,200,102,24,5,42,102,24,5,200,102,24,5,58,102,24,5,42,102,24,5,200,102,24,5,72,102,24,5,42,102,24,5,200,102,24,5,74,102,40,5,42,102,40,5,200,102,38,5,236,102,40,5,42,102,40,5,200,102,44,5,238,102,40,5,42,102,40,5,204,102,24,5,42,102,24,5,214,102,32,5,42,102,32,5,214,102,40,5,42,102,38,5,236,102,48,5,42,102,49,5,236,102,40,5,42,102,44,5,238,102,48,5,42,102,51,5,238,102,48,5,44,102,48,5,58,102,40,5,44,102,30,5,110,102,40,5,44,102,30,5,112,102,24,5,44,102,24,5,200,102,32,5,44,102,32,5,200,102,40,5,44,102,40,5,200,102,48,5,44,102,48,5,200,102,40,5,44,102,40,5,204,102,32,5,44,102,32,5,214,102,40,5,44,102,38,5,236,102,48,5,44,102,49,5,236,102,40,5,44,102,44,5,238,102,48,5,44,102,51,5,238,102,24,5,58,102,24,5,72,102,48,5,58,102,48,5,72,102,40,5,58,102,40,5,72,102,38,5,236,102,40,5,58,102,40,5,72,102,44,5,238,102,48,5,58,102,48,5,196,102,32,5,0,4,48,5,58,102,48,5,196,102,49,5,26,102,48,5,196,102,48,5,214,102,48,5,58,102,48,5,200,102,24,5,58,102,24,5,200,102,24,5,72,102,40,5,58,102,40,5,200,102,40,5,72,102,40,5,58,102,40,5,200,102,38,5,236,102,40,5,58,102,40,5,200,102,44,5,238,102,48,5,58,102,49,5,236,102,48,5,58,102,51,5,238,102,48,5,72,102,48,5,58,102,40,5,72,102,40,5,58,102,44,5,238,102,48,5,72,102,48,5,200,102,40,5,72,102,40,5,200,102,38,5,236,102,40,5,72,102,40,5,200,102,44,5,238,102,48,5,72,102,49,5,236,102,48,5,72,102,51,5,238,102,24,5,74,102,24,5,58,102,48,5,74,102,48,5,58,102,48,5,74,102,48,5,72,102,48,5,74,102,48,5,200,102,48,5,74,102,49,5,236,102,48,5,74,102,51,5,238,102,44,5,86,102,194,44,59,235,44,5,110,102,194,44,59,235,44,5,110,102,48,5,134,102,49,5,222,102,48,5,196,102,24,5,134,102,24,5,58,102,32,5,134,102,32,5,58,102,48,5,134,102,48,5,58,102,24,5,134,102,24,5,58,102,24,5,72,102,40,5,134,102,40,5,58,102,38,5,236,102,24,5,134,102,24,5,72,102,32,5,134,102,32,5,72,102,48,5,134,102,48,5,72,102,24,5,134,102,24,5,72,102,24,5,58,102,24,5,134,102,24,5,74,102,32,5,134,102,32,5,74,102,48,5,134,102,48,5,74,102,40,5,134,102,40,5,74,102,38,5,236,102,40,5,134,102,40,5,74,102,44,5,238,102,40,5,134,102,30,5,110,102,48,5,134,102,44,5,110,102,24,5,134,102,24,5,200,102,32,5,134,102,32,5,200,102,48,5,134,102,48,5,200,102,24,5,134,102,24,5,200,102,24,5,58,102,24,5,134,102,24,5,200,102,24,5,72,102,40,5,134,102,40,5,200,102,40,5,72,102,24,5,134,102,24,5,200,102,24,5,200,102,40,5,134,102,40,5,200,102,40,5,200,102,24,5,134,102,24,5,214,102,32,5,134,102,32,5,214,102,40,5,134,102,38,5,236,102,48,5,134,102,49,5,236,102,40,5,134,102,44,5,238,102,48,5,134,102,51,5,238,102,24,5,136,102,24,5,58,102,32,5,136,102,32,5,58,102,40,5,136,102,40,5,58,102,48,5,136,102,48,5,58,102,40,5,136,102,40,5,58,102,44,5,238,102,24,5,136,102,24,5,72,102,32,5,136,102,32,5,72,102,40,5,136,102,40,5,72,102,48,5,136,102,48,5,72,102,24,5,136,102,24,5,72,102,24,5,200,102,40,5,136,102,40,5,72,102,40,5,200,102,40,5,136,102,40,5,72,102,44,5,238,102,24,5,136,102,24,5,74,102,32,5,136,102,32,5,74,102,40,5,136,102,40,5,74,102,48,5,136,102,48,5,74,102,40,5,136,102,30,5,110,102,48,5,136,102,44,5,110,102,24,5,136,102,24,5,200,102,32,5,136,102,32,5,200,102,40,5,136,102,40,5,200,102,48,5,136,102,48,5,200,102,24,5,136,102,24,5,200,102,24,5,74,102,40,5,136,102,40,5,200,102,40,5,74,102,24,5,136,102,24,5,200,102,24,5,200,102,40,5,136,102,40,5,200,102,40,5,200,102,24,5,136,102,24,5,214,102,32,5,136,102,32,5,214,102,40,5,136,102,38,5,236,102,48,5,136,102,49,5,236,102,40,5,136,102,44,5,238,102,48,5,136,102,51,5,238,102,24,5,146,102,24,5,72,102,48,5,146,102,48,5,72,102,24,5,146,102,24,5,72,102,24,5,72,102,40,5,146,102,40,5,72,102,40,5,72,102,40,5,146,102,40,5,72,102,44,5,238,102,24,5,146,102,24,5,74,102,40,5,146,102,30,5,110,102,48,5,146,102,44,5,110,102,48,5,146,102,48,5,196,102,48,5,166,102,48,5,200,102,48,5,146,102,48,5,196,102,49,5,236,102,48,5,146,102,48,5,196,102,49,5,236,102,32,5,0,4,49,5,26,102,48,5,196,102,48,5,196,102,48,5,214,102,32,5,0,4,48,5,166,102,48,5,196,102,51,5,238,102,48,5,214,102,32,5,0,4,49,5,222,102,48,5,134,102,48,5,196,102,48,5,200,102,48,5,146,102,48,5,196,102,46,5,250,102,24,5,146,102,24,5,200,102,48,5,146,102,48,5,200,102,24,5,146,102,24,5,200,102,24,5,200,102,40,5,146,102,40,5,200,102,40,5,200,102,40,5,146,102,38,5,236,102,48,5,146,102,49,5,236,102,40,5,146,102,44,5,238,102,48,5,146,102,51,5,238,102,24,5,148,102,24,5,58,102,48,5,148,102,48,5,58,102,24,5,148,102,24,5,72,102,48,5,148,102,48,5,72,102,40,5,148,102,40,5,72,102,38,5,236,102,40,5,148,102,40,5,72,102,44,5,238,102,24,5,148,102,24,5,74,102,48,5,148,102,48,5,74,102,24,5,148,102,24,5,74,102,24,5,200,102,40,5,148,102,40,5,74,102,40,5,200,102,40,5,148,102,30,5,110,102,48,5,148,102,44,5,110,102,24,5,148,102,24,5,200,102,48,5,148,102,48,5,200,102,40,5,148,102,38,5,236,102,48,5,148,102,49,5,236,102,40,5,148,102,44,5,238,102,48,5,148,102,51,5,238,102,24,5,158,102,24,5,72,102,48,5,158,102,48,5,72,102,24,5,158,102,24,5,200,102,32,5,158,102,32,5,200,102,48,5,158,102,48,5,200,102,24,5,158,102,24,5,200,102,24,5,72,102,40,5,158,102,40,5,200,102,40,5,72,102,24,5,158,102,24,5,200,102,24,5,200,102,40,5,158,102,40,5,200,102,44,5,238,102,40,5,158,102,38,5,236,102,48,5,158,102,49,5,236,102,40,5,158,102,44,5,238,102,48,5,158,102,51,5,238,102,24,5,160,102,24,5,200,102,32,5,160,102,32,5,200,102,48,5,160,102,48,5,200,102,24,5,166,102,24,5,58,102,48,5,166,102,48,5,58,102,24,5,166,102,24,5,58,102,24,5,200,102,40,5,166,102,40,5,58,102,40,5,200,102,24,5,166,102,24,5,200,102,24,5,166,102,24,5,200,102,24,5,200,102,40,5,166,102,40,5,200,102,40,5,200,102,40,5,166,102,40,5,200,102,38,5,236,102,40,5,166,102,40,5,200,102,44,5,238,102,40,5,166,102,38,5,236,102,48,5,166,102,49,5,236,102,40,5,166,102,44,5,238,102,48,5,166,102,51,5,238,102,24,5,168,102,24,5,58,102,48,5,168,102,48,5,58,102,24,5,168,102,24,5,200,102,48,5,168,102,48,5,200,102,40,5,168,102,40,5,200,102,40,5,200,102,40,5,168,102,40,5,200,102,38,5,236,102,40,5,168,102,40,5,200,102,44,5,238,102,40,5,168,102,38,5,236,102,48,5,168,102,49,5,236,102,40,5,168,102,44,5,238,102,48,5,168,102,51,5,238,102,24,5,174,102,24,5,58,102,48,5,174,102,48,5,58,102,24,5,174,102,24,5,72,102,48,5,174,102,48,5,72,102,24,5,174,102,24,5,74,102,48,5,174,102,48,5,74,102,24,5,174,102,24,5,74,102,24,5,200,102,40,5,174,102,40,5,74,102,40,5,200,102,24,5,174,102,24,5,200,102,48,5,174,102,48,5,200,102,40,5,174,102,40,5,200,102,44,5,238,102,40,5,174,102,38,5,236,102,48,5,174,102,49,5,236,102,40,5,174,102,44,5,238,102,48,5,174,102,51,5,238,102,24,5,178,102,24,5,72,102,48,5,178,102,48,5,72,102,48,5,178,102,48,5,196,102,46,5,250,102,24,5,178,102,24,5,200,102,48,5,178,102,48,5,200,102,24,5,178,102,24,5,200,102,24,5,72,102,40,5,178,102,40,5,200,102,40,5,72,102,40,5,178,102,40,5,200,102,40,5,200,102,40,5,178,102,40,5,200,102,44,5,238,102,40,5,178,102,38,5,236,102,48,5,178,102,49,5,236,102,40,5,178,102,44,5,238,102,48,5,178,102,51,5,238,102,40,5,182,102,38,5,26,102,48,5,182,102,49,5,26,102,24,5,182,102,24,5,58,102,48,5,182,102,48,5,58,102,24,5,182,102,24,5,72,102,48,5,182,102,48,5,72,102,24,5,182,102,24,5,74,102,48,5,182,102,48,5,74,102,24,5,182,102,24,5,196,102,32,5,182,102,32,5,196,102,40,5,182,102,40,5,196,102,48,5,182,102,48,5,196,102,24,5,182,102,24,5,200,102,32,5,182,102,32,5,200,102,40,5,182,102,40,5,200,102,48,5,182,102,48,5,200,102,24,5,182,102,24,5,200,102,24,5,200,102,40,5,182,102,40,5,200,102,40,5,200,102,40,5,182,102,40,5,200,102,44,5,238,102,40,5,182,102,38,5,236,102,48,5,182,102,49,5,236,102,40,5,182,102,44,5,238,102,48,5,182,102,51,5,238,102,40,5,196,102,32,5,8,102,48,5,196,102,46,5,8,102,40,5,196,102,32,5,10,102,48,5,196,102,46,5,10,102,40,5,196,102,32,5,18,102,48,5,196,102,46,5,18,102,40,5,196,102,38,5,26,102,24,5,196,102,24,5,58,102,48,5,196,102,48,5,58,102,24,5,196,102,24,5,58,102,24,5,58,102,40,5,196,102,40,5,58,102,40,5,58,102,24,5,196,102,24,5,58,102,24,5,200,102,40,5,196,102,40,5,58,102,40,5,200,102,40,5,196,102,40,5,58,102,44,5,238,102,24,5,196,102,24,5,72,102,48,5,196,102,48,5,72,102,24,5,196,102,24,5,72,102,24,5,200,102,40,5,196,102,40,5,72,102,40,5,200,102,40,5,196,102,40,5,72,102,38,5,236,102,40,5,196,102,40,5,72,102,44,5,238,102,24,5,196,102,24,5,74,102,48,5,196,102,48,5,74,102,24,5,196,102,24,5,74,102,24,5,200,102,40,5,196,102,40,5,74,102,40,5,200,102,24,5,196,102,24,5,200,102,32,5,196,102,32,5,200,102,40,5,196,102,40,5,200,102,24,5,196,102,24,5,200,102,24,5,72,102,40,5,196,102,40,5,200,102,40,5,72,102,40,5,196,102,40,5,200,102,44,5,238,102,24,5,196,102,24,5,214,102,40,5,196,102,38,5,236,102,40,5,196,102,44,5,238,102,40,5,200,102,38,5,26,102,48,5,200,102,48,5,58,102,24,5,200,102,24,5,58,102,24,5,72,102,24,5,200,102,24,5,58,102,24,5,74,102,24,5,200,102,24,5,58,102,24,5,200,102,40,5,200,102,40,5,58,102,44,5,238,102,48,5,200,102,48,5,72,102,24,5,200,102,24,5,72,102,24,5,58,102,24,5,200,102,24,5,72,102,24,5,200,102,48,5,200,102,48,5,72,102,48,5,200,102,44,5,84,102,40,5,200,102,40,5,72,102,44,5,238,102,24,5,200,102,24,5,74,102,24,5,58,102,24,5,200,102,24,5,74,102,24,5,200,102,40,5,200,102,40,5,74,102,44,5,238,102,48,5,200,102,48,5,200,102,40,5,200,102,40,5,200,102,44,5,238,102,48,5,200,102,49,5,236,102,48,5,200,102,51,5,238,102,24,5,204,102,24,5,58,102,48,5,204,102,48,5,58,102,24,5,204,102,24,5,58,102,24,5,72,102,40,5,204,102,40,5,58,102,40,5,72,102,24,5,204,102,24,5,58,102,24,5,200,102,40,5,204,102,40,5,58,102,40,5,200,102,40,5,204,102,40,5,58,102,38,5,236,102,40,5,204,102,40,5,58,102,44,5,238,102,24,5,204,102,24,5,72,102,48,5,204,102,48,5,72,102,24,5,204,102,24,5,72,102,24,5,200,102,40,5,204,102,40,5,72,102,38,5,236,102,40,5,204,102,40,5,72,102,44,5,238,102,24,5,204,102,24,5,74,102,48,5,204,102,48,5,74,102,40,5,204,102,30,5,110,102,40,5,204,102,30,5,112,102,24,5,204,102,24,5,200,102,32,5,204,102,32,5,200,102,40,5,204,102,40,5,200,102,48,5,204,102,48,5,200,102,40,5,204,102,40,5,200,102,38,5,236,102,40,5,204,102,40,5,200,102,44,5,238,102,40,5,204,102,40,5,204,102,24,5,204,102,24,5,214,102,32,5,204,102,32,5,214,102,40,5,204,102,38,5,236,102,48,5,204,102,49,5,236,102,40,5,204,102,44,5,238,102,48,5,204,102,51,5,238,102,24,5,214,102,194,16,59,235,24,5,214,102,24,5,58,102,24,5,214,102,24,5,200,102,48,5,214,102,48,5,200,102,24,5,214,102,24,5,200,102,24,5,58,102,24,5,214,102,24,5,200,102,24,5,200,102,48,5,214,102,49,5,236,102,48,5,214,102,51,5,238,102,5,5,218,102,194,5,128,232,193,16,220,102,194,5,128,232,16,5,222,102,32,5,6,102,16,5,228,102,32,5,6,102,44,5,228,102,46,5,6,102,38,5,236,102,194,30,59,235,49,5,236,102,194,44,59,235,16,5,238,102,32,5,6,102,30,5,238,102,24,5,58,102,51,5,238,102,48,5,58,102,44,5,238,102,40,5,58,102,44,5,238,102,30,5,238,102,24,5,72,102,44,5,238,102,40,5,72,102,44,5,238,102,30,5,238,102,24,5,74,102,51,5,238,102,48,5,74,102,44,5,238,102,30,5,110,102,44,5,238,102,30,5,112,102,30,5,238,102,24,5,200,102,37,5,238,102,32,5,200,102,51,5,238,102,48,5,200,102,30,5,238,102,24,5,200,102,24,5,200,102,44,5,238,102,40,5,200,102,40,5,200,102,44,5,238,102,40,5,200,102,44,5,238,102,30,5,238,102,24,5,214,102,37,5,238,102,32,5,214,102,44,5,238,102,38,5,236,102,51,5,238,102,49,5,236,102,44,5,238,102,44,5,238,102,51,5,238,102,51,5,238,102,5,5,250,102,194,5,128,232,32,5,250,102,194,32,128,232,46,5,250,102,194,46,128,232,5,5,62,104,194,5,175,240,5,5,64,104,194,5,175,240,5,5,66,104,194,5,175,240,5,5,78,104,194,5,175,240,5,5,94,104,194,5,175,240,5,5,98,104,194,5,175,240,5,5,110,104,194,5,175,240,5,5,114,104,194,5,175,240,5,5,124,104,194,5,175,240,5,5,128,104,194,5,175,240,5,5,132,104,194,5,175,240,5,5,60,105,194,5,175,240,5,5,62,105,194,5,175,240,32,5,66,105,32,5,132,105,5,5,86,105,194,5,175,240,5,5,32,106,194,5,175,240,5,5,40,106,194,5,175,240,5,5,42,106,194,5,175,240,5,5,52,106,194,5,175,240,5,5,80,106,194,5,175,240,5,5,94,106,194,5,175,240,5,5,58,108,194,5,175,240,5,5,60,108,194,5,175,240,32,5,40,112,32,5,152,112,32,5,68,112,32,5,152,112,32,5,78,112,32,5,152,112,32,5,90,112,32,5,152,112,32,5,92,112,32,5,152,112,32,5,94,112,32,5,152,112,32,5,96,112,32,5,152,112,32,5,108,112,32,5,152,112,32,5,110,112,32,5,152,112,193,163,166,113,194,5,175,240,193,170,166,113,194,5,175,240,193,233,166,113,194,5,175,240,5,5,6,114,5,5,122,114,5,5,6,114,5,5,124,114,5,5,6,114,5,5,126,114,5,5,6,114,5,5,128,114,5,5,6,114,5,5,130,114,5,5,8,114,5,5,122,114,5,5,8,114,5,5,124,114,5,5,8,114,5,5,126,114,5,5,8,114,5,5,128,114,5,5,8,114,5,5,130,114,5,5,10,114,5,5,122,114,5,5,10,114,5,5,124,114,5,5,10,114,5,5,126,114,5,5,10,114,5,5,128,114,5,5,10,114,5,5,130,114,5,5,12,114,5,5,122,114,5,5,12,114,5,5,124,114,5,5,12,114,5,5,126,114,5,5,12,114,5,5,128,114,5,5,12,114,5,5,130,114,5,5,14,114,5,5,122,114,5,5,14,114,5,5,124,114,5,5,14,114,5,5,126,114,5,5,14,114,5,5,128,114,5,5,14,114,5,5,130,114,5,5,16,114,5,5,122,114,5,5,16,114,5,5,124,114,5,5,16,114,5,5,126,114,5,5,16,114,5,5,128,114,5,5,16,114,5,5,130,114,5,5,18,114,5,5,122,114,5,5,18,114,5,5,124,114,5,5,18,114,5,5,126,114,5,5,18,114,5,5,128,114,5,5,18,114,5,5,130,114,5,5,20,114,5,5,122,114,5,5,20,114,5,5,124,114,5,5,20,114,5,5,126,114,5,5,20,114,5,5,128,114,5,5,20,114,5,5,130,114,5,5,22,114,5,5,122,114,5,5,22,114,5,5,124,114,5,5,22,114,5,5,126,114,5,5,22,114,5,5,128,114,5,5,22,114,5,5,130,114,5,5,24,114,5,5,122,114,5,5,24,114,5,5,124,114,5,5,24,114,5,5,126,114,5,5,24,114,5,5,128,114,5,5,24,114,5,5,130,114,5,5,26,114,5,5,122,114,5,5,26,114,5,5,124,114,5,5,26,114,5,5,126,114,5,5,26,114,5,5,128,114,5,5,26,114,5,5,130,114,5,5,28,114,5,5,122,114,5,5,28,114,5,5,124,114,5,5,28,114,5,5,126,114,5,5,28,114,5,5,128,114,5,5,28,114,5,5,130,114,5,5,30,114,5,5,122,114,5,5,30,114,5,5,124,114,5,5,30,114,5,5,126,114,5,5,30,114,5,5,128,114,5,5,30,114,5,5,130,114,5,5,32,114,5,5,122,114,5,5,32,114,5,5,124,114,5,5,32,114,5,5,126,114,5,5,32,114,5,5,128,114,5,5,32,114,5,5,130,114,5,5,34,114,5,5,122,114,5,5,34,114,5,5,124,114,5,5,34,114,5,5,126,114,5,5,34,114,5,5,128,114,5,5,34,114,5,5,130,114,5,5,36,114,5,5,122,114,5,5,36,114,5,5,124,114,5,5,36,114,5,5,126,114,5,5,36,114,5,5,128,114,5,5,36,114,5,5,130,114,5,5,38,114,5,5,122,114,5,5,38,114,5,5,124,114,5,5,38,114,5,5,126,114,5,5,38,114,5,5,128,114,5,5,38,114,5,5,130,114,5,5,40,114,5,5,122,114,5,5,40,114,5,5,124,114,5,5,40,114,5,5,126,114,5,5,40,114,5,5,128,114,5,5,40,114,5,5,130,114,5,5,42,114,5,5,122,114,5,5,42,114,5,5,124,114,5,5,42,114,5,5,126,114,5,5,42,114,5,5,128,114,5,5,42,114,5,5,130,114,5,5,44,114,5,5,122,114,5,5,44,114,5,5,124,114,5,5,44,114,5,5,126,114,5,5,44,114,5,5,128,114,5,5,44,114,5,5,130,114,5,5,46,114,5,5,122,114,5,5,46,114,5,5,124,114,5,5,46,114,5,5,126,114,5,5,46,114,5,5,128,114,5,5,46,114,5,5,130,114,5,5,48,114,5,5,122,114,5,5,48,114,5,5,124,114,5,5,48,114,5,5,126,114,5,5,48,114,5,5,128,114,5,5,48,114,5,5,130,114,5,5,50,114,5,5,122,114,5,5,50,114,5,5,124,114,5,5,50,114,5,5,126,114,5,5,50,114,5,5,128,114,5,5,50,114,5,5,130,114,5,5,52,114,5,5,122,114,5,5,52,114,5,5,124,114,5,5,52,114,5,5,126,114,5,5,52,114,5,5,128,114,5,5,52,114,5,5,130,114,5,5,54,114,5,5,122,114,5,5,54,114,5,5,124,114,5,5,54,114,5,5,126,114,5,5,54,114,5,5,128,114,5,5,54,114,5,5,130,114,5,5,56,114,5,5,122,114,5,5,56,114,5,5,124,114,5,5,56,114,5,5,126,114,5,5,56,114,5,5,128,114,5,5,56,114,5,5,130,114,5,5,58,114,5,5,122,114,5,5,58,114,5,5,124,114,5,5,58,114,5,5,126,114,5,5,58,114,5,5,128,114,5,5,58,114,5,5,130,114,5,5,60,114,5,5,122,114,5,5,60,114,5,5,124,114,5,5,60,114,5,5,126,114,5,5,60,114,5,5,128,114,5,5,60,114,5,5,130,114,5,5,62,114,5,5,122,114,5,5,62,114,5,5,124,114,5,5,62,114,5,5,126,114,5,5,62,114,5,5,128,114,5,5,62,114,5,5,130,114,5,5,64,114,5,5,122,114,5,5,64,114,5,5,124,114,5,5,64,114,5,5,126,114,5,5,64,114,5,5,128,114,5,5,64,114,5,5,130,114,5,5,66,114,5,5,122,114,5,5,66,114,5,5,124,114,5,5,66,114,5,5,126,114,5,5,66,114,5,5,128,114,5,5,66,114,5,5,130,114,5,5,68,114,5,5,122,114,5,5,68,114,5,5,124,114,5,5,68,114,5,5,126,114,5,5,68,114,5,5,128,114,5,5,68,114,5,5,130,114,5,5,70,114,5,5,122,114,5,5,70,114,5,5,124,114,5,5,70,114,5,5,126,114,5,5,70,114,5,5,128,114,5,5,70,114,5,5,130,114,5,5,72,114,5,5,122,114,5,5,72,114,5,5,124,114,5,5,72,114,5,5,126,114,5,5,72,114,5,5,128,114,5,5,72,114,5,5,130,114,5,5,74,114,5,5,122,114,5,5,74,114,5,5,124,114,5,5,74,114,5,5,126,114,5,5,74,114,5,5,128,114,5,5,74,114,5,5,130,114,5,5,76,114,5,5,122,114,5,5,76,114,5,5,124,114,5,5,76,114,5,5,126,114,5,5,76,114,5,5,128,114,5,5,76,114,5,5,130,114,5,5,78,114,5,5,122,114,5,5,78,114,5,5,124,114,5,5,78,114,5,5,126,114,5,5,78,114,5,5,128,114,5,5,78,114,5,5,130,114,5,5,80,114,5,5,122,114,5,5,80,114,5,5,124,114,5,5,80,114,5,5,126,114,5,5,80,114,5,5,128,114,5,5,80,114,5,5,130,114,5,5,82,114,5,5,122,114,5,5,82,114,5,5,124,114,5,5,82,114,5,5,126,114,5,5,82,114,5,5,128,114,5,5,82,114,5,5,130,114,5,5,84,114,5,5,122,114,5,5,84,114,5,5,124,114,5,5,84,114,5,5,126,114,5,5,84,114,5,5,128,114,5,5,84,114,5,5,130,114,5,5,86,114,5,5,122,114,5,5,86,114,5,5,124,114,5,5,86,114,5,5,126,114,5,5,86,114,5,5,128,114,5,5,86,114,5,5,130,114,5,5,88,114,5,5,122,114,5,5,88,114,5,5,124,114,5,5,88,114,5,5,126,114,5,5,88,114,5,5,128,114,5,5,88,114,5,5,130,114,5,5,90,114,5,5,122,114,5,5,90,114,5,5,124,114,5,5,90,114,5,5,126,114,5,5,90,114,5,5,128,114,5,5,90,114,5,5,130,114,5,5,92,114,5,5,122,114,5,5,92,114,5,5,124,114,5,5,92,114,5,5,126,114,5,5,92,114,5,5,128,114,5,5,92,114,5,5,130,114,5,5,94,114,5,5,122,114,5,5,94,114,5,5,124,114,5,5,94,114,5,5,126,114,5,5,94,114,5,5,128,114,5,5,94,114,5,5,130,114,5,5,96,114,5,5,122,114,5,5,96,114,5,5,124,114,5,5,96,114,5,5,126,114,5,5,96,114,5,5,128,114,5,5,96,114,5,5,130,114,5,5,6,115,5,5,122,115,5,5,6,115,5,5,124,115,5,5,6,115,5,5,126,115,5,5,6,115,5,5,128,115,5,5,6,115,5,5,130,115,5,5,8,115,5,5,122,115,5,5,8,115,5,5,124,115,5,5,8,115,5,5,126,115,5,5,8,115,5,5,128,115,5,5,8,115,5,5,130,115,5,5,10,115,5,5,122,115,5,5,10,115,5,5,124,115,5,5,10,115,5,5,126,115,5,5,10,115,5,5,128,115,5,5,10,115,5,5,130,115,5,5,12,115,5,5,122,115,5,5,12,115,5,5,124,115,5,5,12,115,5,5,126,115,5,5,12,115,5,5,128,115,5,5,12,115,5,5,130,115,5,5,14,115,5,5,122,115,5,5,14,115,5,5,124,115,5,5,14,115,5,5,126,115,5,5,14,115,5,5,128,115,5,5,14,115,5,5,130,115,5,5,16,115,5,5,122,115,5,5,16,115,5,5,124,115,5,5,16,115,5,5,126,115,5,5,16,115,5,5,128,115,5,5,16,115,5,5,130,115,5,5,18,115,5,5,122,115,5,5,18,115,5,5,124,115,5,5,18,115,5,5,126,115,5,5,18,115,5,5,128,115,5,5,18,115,5,5,130,115,5,5,20,115,5,5,122,115,5,5,20,115,5,5,124,115,5,5,20,115,5,5,126,115,5,5,20,115,5,5,128,115,5,5,20,115,5,5,130,115,5,5,22,115,5,5,122,115,5,5,22,115,5,5,124,115,5,5,22,115,5,5,126,115,5,5,22,115,5,5,128,115,5,5,22,115,5,5,130,115,5,5,24,115,5,5,122,115,5,5,24,115,5,5,124,115,5,5,24,115,5,5,126,115,5,5,24,115,5,5,128,115,5,5,24,115,5,5,130,115,5,5,26,115,5,5,122,115,5,5,26,115,5,5,124,115,5,5,26,115,5,5,126,115,5,5,26,115,5,5,128,115,5,5,26,115,5,5,130,115,5,5,28,115,5,5,122,115,5,5,28,115,5,5,124,115,5,5,28,115,5,5,126,115,5,5,28,115,5,5,128,115,5,5,28,115,5,5,130,115,5,5,30,115,5,5,122,115,5,5,30,115,5,5,124,115,5,5,30,115,5,5,126,115,5,5,30,115,5,5,128,115,5,5,30,115,5,5,130,115,5,5,32,115,5,5,122,115,5,5,32,115,5,5,124,115,5,5,32,115,5,5,126,115,5,5,32,115,5,5,128,115,5,5,32,115,5,5,130,115,5,5,34,115,5,5,122,115,5,5,34,115,5,5,124,115,5,5,34,115,5,5,126,115,5,5,34,115,5,5,128,115,5,5,34,115,5,5,130,115,5,5,36,115,5,5,122,115,5,5,36,115,5,5,124,115,5,5,36,115,5,5,126,115,5,5,36,115,5,5,128,115,5,5,36,115,5,5,130,115,5,5,38,115,5,5,122,115,5,5,38,115,5,5,124,115,5,5,38,115,5,5,126,115,5,5,38,115,5,5,128,115,5,5,38,115,5,5,130,115,5,5,40,115,5,5,122,115,5,5,40,115,5,5,124,115,5,5,40,115,5,5,126,115,5,5,40,115,5,5,128,115,5,5,40,115,5,5,130,115,5,5,42,115,5,5,122,115,5,5,42,115,5,5,124,115,5,5,42,115,5,5,126,115,5,5,42,115,5,5,128,115,5,5,42,115,5,5,130,115,5,5,44,115,5,5,122,115,5,5,44,115,5,5,124,115,5,5,44,115,5,5,126,115,5,5,44,115,5,5,128,115,5,5,44,115,5,5,130,115,5,5,46,115,5,5,122,115,5,5,46,115,5,5,124,115,5,5,46,115,5,5,126,115,5,5,46,115,5,5,128,115,5,5,46,115,5,5,130,115,5,5,48,115,5,5,122,115,5,5,48,115,5,5,124,115,5,5,48,115,5,5,126,115,5,5,48,115,5,5,128,115,5,5,48,115,5,5,130,115,5,5,50,115,5,5,122,115,5,5,50,115,5,5,124,115,5,5,50,115,5,5,126,115,5,5,50,115,5,5,128,115,5,5,50,115,5,5,130,115,5,5,52,115,5,5,122,115,5,5,52,115,5,5,124,115,5,5,52,115,5,5,126,115,5,5,52,115,5,5,128,115,5,5,52,115,5,5,130,115,5,5,54,115,5,5,122,115,5,5,54,115,5,5,124,115,5,5,54,115,5,5,126,115,5,5,54,115,5,5,128,115,5,5,54,115,5,5,130,115,5,5,56,115,5,5,122,115,5,5,56,115,5,5,124,115,5,5,56,115,5,5,126,115,5,5,56,115,5,5,128,115,5,5,56,115,5,5,130,115,5,5,58,115,5,5,122,115,5,5,58,115,5,5,124,115,5,5,58,115,5,5,126,115,5,5,58,115,5,5,128,115,5,5,58,115,5,5,130,115,5,5,60,115,5,5,122,115,5,5,60,115,5,5,124,115,5,5,60,115,5,5,126,115,5,5,60,115,5,5,128,115,5,5,60,115,5,5,130,115,5,5,62,115,5,5,122,115,5,5,62,115,5,5,124,115,5,5,62,115,5,5,126,115,5,5,62,115,5,5,128,115,5,5,62,115,5,5,130,115,5,5,64,115,5,5,122,115,5,5,64,115,5,5,124,115,5,5,64,115,5,5,126,115,5,5,64,115,5,5,128,115,5,5,64,115,5,5,130,115,5,5,66,115,5,5,122,115,5,5,66,115,5,5,124,115,5,5,66,115,5,5,126,115,5,5,66,115,5,5,128,115,5,5,66,115,5,5,130,115,5,5,68,115,5,5,122,115,5,5,68,115,5,5,124,115,5,5,68,115,5,5,126,115,5,5,68,115,5,5,128,115,5,5,68,115,5,5,130,115,5,5,70,115,5,5,122,115,5,5,70,115,5,5,124,115,5,5,70,115,5,5,126,115,5,5,70,115,5,5,128,115,5,5,70,115,5,5,130,115,5,5,72,115,5,5,122,115,5,5,72,115,5,5,124,115,5,5,72,115,5,5,126,115,5,5,72,115,5,5,128,115,5,5,72,115,5,5,130,115,5,5,74,115,5,5,122,115,5,5,74,115,5,5,124,115,5,5,74,115,5,5,126,115,5,5,74,115,5,5,128,115,5,5,74,115,5,5,130,115,5,5,76,115,5,5,122,115,5,5,76,115,5,5,124,115,5,5,76,115,5,5,126,115,5,5,76,115,5,5,128,115,5,5,76,115,5,5,130,115,5,5,78,115,5,5,122,115,5,5,78,115,5,5,124,115,5,5,78,115,5,5,126,115,5,5,78,115,5,5,128,115,5,5,78,115,5,5,130,115,5,5,80,115,5,5,122,115,5,5,80,115,5,5,124,115,5,5,80,115,5,5,126,115,5,5,80,115,5,5,128,115,5,5,80,115,5,5,130,115,5,5,82,115,5,5,122,115,5,5,82,115,5,5,124,115,5,5,82,115,5,5,126,115,5,5,82,115,5,5,128,115,5,5,82,115,5,5,130,115,32,5,84,115,32,5,54,115,32,5,84,115,32,5,54,115,5,5,122,115,32,5,84,115,32,5,54,115,5,5,124,115,32,5,84,115,32,5,54,115,5,5,126,115,32,5,84,115,32,5,54,115,5,5,128,115,32,5,84,115,32,5,54,115,5,5,130,115,32,5,84,115,32,5,70,115,32,5,84,115,32,5,70,115,5,5,122,115,32,5,84,115,32,5,70,115,5,5,124,115,32,5,84,115,32,5,70,115,5,5,126,115,32,5,84,115,32,5,70,115,5,5,128,115,32,5,84,115,32,5,70,115,5,5,130,115,5,5,84,115,5,5,122,115,5,5,84,115,5,5,124,115,5,5,84,115,5,5,126,115,5,5,84,115,5,5,128,115,5,5,84,115,5,5,130,115,5,5,86,115,5,5,122,115,5,5,86,115,5,5,124,115,5,5,86,115,5,5,126,115,5,5,86,115,5,5,128,115,5,5,86,115,5,5,130,115,5,5,88,115,5,5,122,115,5,5,88,115,5,5,124,115,5,5,88,115,5,5,126,115,5,5,88,115,5,5,128,115,5,5,88,115,5,5,130,115,5,5,90,115,5,5,122,115,5,5,90,115,5,5,124,115,5,5,90,115,5,5,126,115,5,5,90,115,5,5,128,115,5,5,90,115,5,5,130,115,193,9,132,115,193,126,133,115,193,9,132,115,193,133,133,115,193,9,132,115,193,154,133,115,193,9,132,115,193,168,133,115,193,9,132,115,193,175,133,115,193,16,132,115,193,126,133,115,193,16,132,115,193,133,133,115,193,16,132,115,193,154,133,115,193,16,132,115,193,168,133,115,193,16,132,115,193,175,133,115,193,23,132,115,193,126,133,115,193,23,132,115,193,133,133,115,193,23,132,115,193,154,133,115,193,23,132,115,193,168,133,115,193,23,132,115,193,175,133,115,193,30,132,115,193,126,133,115,193,30,132,115,193,133,133,115,193,30,132,115,193,154,133,115,193,30,132,115,193,168,133,115,193,30,132,115,193,175,133,115,193,37,132,115,193,126,133,115,193,37,132,115,193,133,133,115,193,37,132,115,193,154,133,115,193,37,132,115,193,168,133,115,193,37,132,115,193,175,133,115,193,44,132,115,193,126,133,115,193,44,132,115,193,133,133,115,193,44,132,115,193,154,133,115,193,44,132,115,193,168,133,115,193,44,132,115,193,175,133,115,193,51,132,115,193,126,133,115,193,51,132,115,193,133,133,115,193,51,132,115,193,154,133,115,193,51,132,115,193,168,133,115,193,51,132,115,193,175,133,115,193,58,132,115,193,126,133,115,193,58,132,115,193,133,133,115,193,58,132,115,193,154,133,115,193,58,132,115,193,168,133,115,193,58,132,115,193,175,133,115,193,65,132,115,193,126,133,115,193,65,132,115,193,133,133,115,193,65,132,115,193,154,133,115,193,65,132,115,193,168,133,115,193,65,132,115,193,175,133,115,193,72,132,115,193,126,133,115,193,72,132,115,193,133,133,115,193,72,132,115,193,154,133,115,193,72,132,115,193,168,133,115,193,72,132,115,193,175,133,115,193,79,132,115,193,126,133,115,193,79,132,115,193,133,133,115,193,79,132,115,193,154,133,115,193,79,132,115,193,168,133,115,193,79,132,115,193,175,133,115,193,86,132,115,193,126,133,115,193,86,132,115,193,133,133,115,193,86,132,115,193,154,133,115,193,86,132,115,193,168,133,115,193,86,132,115,193,175,133,115,193,93,132,115,193,126,133,115,193,93,132,115,193,133,133,115,193,93,132,115,193,154,133,115,193,93,132,115,193,168,133,115,193,93,132,115,193,175,133,115,193,100,132,115,193,126,133,115,193,100,132,115,193,133,133,115,193,100,132,115,193,154,133,115,193,100,132,115,193,168,133,115,193,100,132,115,193,175,133,115,193,107,132,115,193,126,133,115,193,107,132,115,193,133,133,115,193,107,132,115,193,154,133,115,193,107,132,115,193,168,133,115,193,107,132,115,193,175,133,115,193,114,132,115,193,126,133,115,193,114,132,115,193,133,133,115,193,114,132,115,193,154,133,115,193,114,132,115,193,168,133,115,193,114,132,115,193,175,133,115,193,121,132,115,193,126,133,115,193,121,132,115,193,133,133,115,193,121,132,115,193,154,133,115,193,121,132,115,193,168,133,115,193,121,132,115,193,175,133,115,193,128,132,115,193,126,133,115,193,128,132,115,193,133,133,115,193,128,132,115,193,154,133,115,193,128,132,115,193,168,133,115,193,128,132,115,193,175,133,115,193,135,132,115,193,126,133,115,193,135,132,115,193,133,133,115,193,135,132,115,193,154,133,115,193,135,132,115,193,168,133,115,193,135,132,115,193,175,133,115,193,142,132,115,193,126,133,115,193,142,132,115,193,133,133,115,193,142,132,115,193,154,133,115,193,142,132,115,193,168,133,115,193,142,132,115,193,175,133,115,193,149,132,115,193,126,133,115,193,149,132,115,193,133,133,115,193,149,132,115,193,154,133,115,193,149,132,115,193,168,133,115,193,149,132,115,193,175,133,115,193,156,132,115,193,126,133,115,193,156,132,115,193,133,133,115,193,156,132,115,193,154,133,115,193,156,132,115,193,168,133,115,193,156,132,115,193,175,133,115,193,163,132,115,193,126,133,115,193,163,132,115,193,133,133,115,193,163,132,115,193,154,133,115,193,163,132,115,193,168,133,115,193,163,132,115,193,175,133,115,193,170,132,115,193,126,133,115,193,170,132,115,193,133,133,115,193,170,132,115,193,154,133,115,193,170,132,115,193,168,133,115,193,170,132,115,193,175,133,115,193,177,132,115,193,126,133,115,193,177,132,115,193,133,133,115,193,177,132,115,193,154,133,115,193,177,132,115,193,168,133,115,193,177,132,115,193,175,133,115,193,184,132,115,193,126,133,115,193,184,132,115,193,133,133,115,193,184,132,115,193,154,133,115,193,184,132,115,193,168,133,115,193,184,132,115,193,175,133,115,193,191,132,115,193,126,133,115,193,191,132,115,193,133,133,115,193,191,132,115,193,154,133,115,193,191,132,115,193,168,133,115,193,191,132,115,193,175,133,115,193,198,132,115,193,126,133,115,193,198,132,115,193,133,133,115,193,198,132,115,193,154,133,115,193,198,132,115,193,168,133,115,193,198,132,115,193,175,133,115,193,205,132,115,193,126,133,115,193,205,132,115,193,133,133,115,193,205,132,115,193,154,133,115,193,205,132,115,193,168,133,115,193,205,132,115,193,175,133,115,193,212,132,115,193,126,133,115,193,212,132,115,193,133,133,115,193,212,132,115,193,154,133,115,193,212,132,115,193,168,133,115,193,212,132,115,193,175,133,115,193,219,132,115,193,126,133,115,193,219,132,115,193,133,133,115,193,219,132,115,193,154,133,115,193,219,132,115,193,168,133,115,193,219,132,115,193,175,133,115,193,226,132,115,193,126,133,115,193,226,132,115,193,133,133,115,193,226,132,115,193,154,133,115,193,226,132,115,193,168,133,115,193,226,132,115,193,175,133,115,193,233,132,115,193,126,133,115,193,233,132,115,193,133,133,115,193,233,132,115,193,154,133,115,193,233,132,115,193,168,133,115,193,233,132,115,193,175,133,115,193,240,132,115,193,126,133,115,193,240,132,115,193,133,133,115,193,240,132,115,193,154,133,115,193,240,132,115,193,168,133,115,193,240,132,115,193,175,133,115,193,247,132,115,193,126,133,115,193,247,132,115,193,133,133,115,193,247,132,115,193,154,133,115,193,247,132,115,193,168,133,115,193,247,132,115,193,175,133,115,193,254,132,115,193,126,133,115,193,254,132,115,193,133,133,115,193,254,132,115,193,154,133,115,193,254,132,115,193,168,133,115,193,254,132,115,193,175,133,115,193,7,133,115,193,126,133,115,193,7,133,115,193,133,133,115,193,7,133,115,193,154,133,115,193,7,133,115,193,168,133,115,193,7,133,115,193,175,133,115,193,14,133,115,193,126,133,115,193,14,133,115,193,133,133,115,193,14,133,115,193,154,133,115,193,14,133,115,193,168,133,115,193,14,133,115,193,175,133,115,193,21,133,115,193,126,133,115,193,21,133,115,193,133,133,115,193,21,133,115,193,154,133,115,193,21,133,115,193,168,133,115,193,21,133,115,193,175,133,115,193,28,133,115,193,126,133,115,193,28,133,115,193,133,133,115,193,28,133,115,193,154,133,115,193,28,133,115,193,168,133,115,193,28,133,115,193,175,133,115,193,35,133,115,193,126,133,115,193,35,133,115,193,133,133,115,193,35,133,115,193,154,133,115,193,35,133,115,193,168,133,115,193,35,133,115,193,175,133,115,193,42,133,115,193,126,133,115,193,42,133,115,193,133,133,115,193,42,133,115,193,154,133,115,193,42,133,115,193,168,133,115,193,42,133,115,193,175,133,115,193,49,133,115,193,126,133,115,193,49,133,115,193,133,133,115,193,49,133,115,193,154,133,115,193,49,133,115,193,168,133,115,193,49,133,115,193,175,133,115,193,56,133,115,193,126,133,115,193,56,133,115,193,133,133,115,193,56,133,115,193,154,133,115,193,56,133,115,193,168,133,115,193,56,133,115,193,175,133,115,193,63,133,115,193,126,133,115,193,63,133,115,193,133,133,115,193,63,133,115,193,154,133,115,193,63,133,115,193,168,133,115,193,63,133,115,193,175,133,115,193,70,133,115,193,126,133,115,193,70,133,115,193,133,133,115,193,70,133,115,193,154,133,115,193,70,133,115,193,168,133,115,193,70,133,115,193,175,133,115,193,77,133,115,193,126,133,115,193,77,133,115,193,133,133,115,193,77,133,115,193,154,133,115,193,77,133,115,193,168,133,115,193,77,133,115,193,175,133,115,193,84,133,115,193,126,133,115,193,84,133,115,193,133,133,115,193,84,133,115,193,154,133,115,193,84,133,115,193,168,133,115,193,84,133,115,193,175,133,115,5,5,6,116,5,5,136,116,5,5,8,116,5,5,136,116,5,5,16,116,5,5,144,116,5,5,18,116,5,5,144,116,5,5,48,116,5,5,144,116,5,5,50,116,5,5,144,116,5,5,64,116,5,5,144,116,5,5,66,116,5,5,144,116,5,5,80,116,5,5,144,116,5,5,82,116,5,5,144,116,5,5,96,116,5,5,144,116,5,5,98,116,5,5,144,116,5,5,122,116,5,5,166,116,5,5,122,116,5,5,170,116,5,5,122,116,5,5,178,116,5,5,128,116,5,5,166,116,5,5,128,116,5,5,170,116,5,5,128,116,5,5,178,116,32,5,146,116,32,5,192,116,194,32,241,240,32,5,12,117,32,5,20,117,32,5,16,117,32,5,22,117,32,5,83,117,32,5,91,117,32,5,83,117,193,9,5,118,193,142,9,118,193,9,5,118,5,5,11,118,193,9,5,118,193,2,13,118,193,9,5,118,193,23,13,118,193,16,5,118,193,142,9,118,193,16,5,118,5,5,11,118,193,16,5,118,193,2,13,118,193,16,5,118,193,23,13,118,193,23,5,118,193,142,9,118,193,23,5,118,5,5,11,118,193,23,5,118,193,2,13,118,193,23,5,118,193,23,13,118,193,30,5,118,193,142,9,118,193,30,5,118,5,5,11,118,193,30,5,118,193,2,13,118,193,30,5,118,193,23,13,118,193,37,5,118,193,142,9,118,193,37,5,118,5,5,11,118,193,37,5,118,193,2,13,118,193,37,5,118,193,23,13,118,193,44,5,118,193,142,9,118,193,44,5,118,5,5,11,118,193,44,5,118,193,2,13,118,193,44,5,118,193,23,13,118,193,51,5,118,193,142,9,118,193,51,5,118,5,5,11,118,193,51,5,118,193,2,13,118,193,51,5,118,193,23,13,118,193,58,5,118,193,142,9,118,193,58,5,118,5,5,11,118,193,58,5,118,193,2,13,118,193,58,5,118,193,23,13,118,193,65,5,118,193,142,9,118,193,65,5,118,5,5,11,118,193,65,5,118,193,2,13,118,193,65,5,118,193,23,13,118,193,72,5,118,193,142,9,118,193,72,5,118,5,5,11,118,193,72,5,118,193,2,13,118,193,72,5,118,193,23,13,118,193,79,5,118,193,142,9,118,193,79,5,118,5,5,11,118,193,79,5,118,193,2,13,118,193,79,5,118,193,23,13,118,193,86,5,118,193,142,9,118,193,86,5,118,5,5,11,118,193,86,5,118,193,2,13,118,193,86,5,118,193,23,13,118,193,93,5,118,193,142,9,118,193,93,5,118,5,5,11,118,193,93,5,118,193,2,13,118,193,93,5,118,193,23,13,118,193,100,5,118,193,142,9,118,193,100,5,118,5,5,11,118,193,100,5,118,193,2,13,118,193,100,5,118,193,23,13,118,193,107,5,118,193,142,9,118,193,107,5,118,5,5,11,118,193,107,5,118,193,2,13,118,193,107,5,118,193,23,13,118,193,114,5,118,193,142,9,118,193,114,5,118,5,5,11,118,193,114,5,118,193,2,13,118,193,114,5,118,193,23,13,118,193,121,5,118,193,142,9,118,193,121,5,118,5,5,11,118,193,121,5,118,193,2,13,118,193,121,5,118,193,23,13,118,193,128,5,118,193,142,9,118,193,128,5,118,5,5,11,118,193,128,5,118,193,2,13,118,193,128,5,118,193,23,13,118,193,135,5,118,193,142,9,118,193,135,5,118,5,5,11,118,193,135,5,118,193,2,13,118,193,135,5,118,193,23,13,118,193,142,5,118,193,142,9,118,193,142,5,118,5,5,11,118,193,142,5,118,193,2,13,118,193,142,5,118,193,23,13,118,193,149,5,118,193,142,9,118,193,149,5,118,5,5,11,118,193,149,5,118,193,2,13,118,193,149,5,118,193,23,13,118,193,156,5,118,193,142,9,118,193,156,5,118,5,5,11,118,193,156,5,118,193,2,13,118,193,156,5,118,193,23,13,118,193,163,5,118,193,142,9,118,193,163,5,118,5,5,11,118,193,163,5,118,193,2,13,118,193,163,5,118,193,23,13,118,193,170,5,118,193,142,9,118,193,170,5,118,5,5,11,118,193,170,5,118,193,2,13,118,193,170,5,118,193,23,13,118,193,177,5,118,193,142,9,118,193,177,5,118,5,5,11,118,193,177,5,118,193,2,13,118,193,177,5,118,193,23,13,118,193,184,5,118,193,142,9,118,193,184,5,118,5,5,11,118,193,184,5,118,193,2,13,118,193,184,5,118,193,23,13,118,193,191,5,118,193,142,9,118,193,191,5,118,5,5,11,118,193,191,5,118,193,2,13,118,193,191,5,118,193,23,13,118,193,198,5,118,193,142,9,118,193,198,5,118,5,5,11,118,193,198,5,118,193,2,13,118,193,198,5,118,193,23,13,118,5,5,7,118,193,142,9,118,5,5,7,118,5,5,11,118,32,5,7,118,32,5,11,118,32,5,7,118,32,5,11,118,32,5,15,118,5,5,7,118,193,2,13,118,5,5,7,118,193,23,13,118,193,2,9,118,193,142,9,118,193,2,9,118,5,5,11,118,193,2,9,118,193,2,13,118,193,2,9,118,193,23,13,118,193,9,9,118,193,142,9,118,193,9,9,118,5,5,11,118,193,9,9,118,193,2,13,118,193,9,9,118,193,23,13,118,193,16,9,118,193,142,9,118,193,16,9,118,5,5,11,118,193,16,9,118,193,2,13,118,193,16,9,118,193,23,13,118,193,23,9,118,193,142,9,118,193,23,9,118,5,5,11,118,193,23,9,118,193,2,13,118,193,23,9,118,193,23,13,118,193,30,9,118,193,142,9,118,193,30,9,118,5,5,11,118,193,30,9,118,193,2,13,118,193,30,9,118,193,23,13,118,193,37,9,118,193,142,9,118,193,37,9,118,5,5,11,118,193,37,9,118,193,2,13,118,193,37,9,118,193,23,13,118,193,44,9,118,193,142,9,118,193,44,9,118,5,5,11,118,193,44,9,118,193,2,13,118,193,44,9,118,193,23,13,118,193,51,9,118,193,142,9,118,193,51,9,118,5,5,11,118,193,51,9,118,193,2,13,118,193,51,9,118,193,23,13,118,193,58,9,118,193,142,9,118,193,58,9,118,5,5,11,118,193,58,9,118,193,2,13,118,193,58,9,118,193,23,13,118,193,65,9,118,193,142,9,118,193,65,9,118,5,5,11,118,193,65,9,118,193,2,13,118,193,65,9,118,193,23,13,118,193,72,9,118,193,142,9,118,193,72,9,118,5,5,11,118,193,72,9,118,193,2,13,118,193,72,9,118,193,23,13,118,193,79,9,118,193,142,9,118,193,79,9,118,5,5,11,118,193,79,9,118,193,2,13,118,193,79,9,118,193,23,13,118,193,86,9,118,193,142,9,118,193,86,9,118,5,5,11,118,193,86,9,118,193,2,13,118,193,86,9,118,193,23,13,118,193,93,9,118,193,142,9,118,193,93,9,118,5,5,11,118,193,93,9,118,193,2,13,118,193,93,9,118,193,23,13,118,193,100,9,118,193,142,9,118,193,100,9,118,5,5,11,118,193,100,9,118,193,2,13,118,193,100,9,118,193,23,13,118,32,5,28,118,32,5,36,118,32,5,28,118,32,5,10,119,32,5,10,119,32,5,32,119,32,5,52,119,5,112,50,119,5,112,50,119,32,5,6,120,32,5,72,120,32,5,10,120,32,5,72,120,32,5,14,120,32,5,72,120,32,5,18,120,32,5,74,120,32,5,22,120,32,5,72,120,32,5,26,120,32,5,74,120,32,5,30,120,32,5,74,120,32,5,34,120,32,5,72,120,32,5,46,120,32,5,72,120,32,5,55,120,32,5,72,120,32,5,59,120,32,5,72,120,32,5,63,120,32,5,74,120,32,5,67,120,32,5,72,120,30,5,6,121,30,5,103,121,30,5,10,121,30,5,103,121,30,5,12,121,30,5,103,121,30,5,16,121,30,5,103,121,30,5,18,121,30,5,103,121,30,5,20,121,30,5,103,121,30,5,24,121,30,5,103,121,30,5,28,121,30,5,103,121,30,5,28,121,30,5,129,121,30,5,30,121,30,5,103,121,30,5,30,121,30,5,129,121,30,5,28,121,30,5,141,121,30,5,34,121,30,5,103,121,30,5,34,121,30,5,103,121,32,5,209,121,30,5,6,121,30,5,119,121,30,5,36,121,30,5,103,121,30,5,38,121,30,5,103,121,30,5,40,121,30,5,103,121,30,5,42,121,30,5,103,121,51,5,6,122,46,5,118,13,48,5,88,122,51,5,6,122,48,5,58,122,46,176,0,0,46,5,118,13,51,5,46,122,51,5,6,122,48,5,88,122,48,5,62,122,51,5,6,122,51,5,6,122,49,5,102,122,48,5,64,122,46,176,0,0,51,5,6,122,51,5,8,122,49,5,50,122,49,5,102,122,48,5,22,122,46,174,0,0,51,5,8,122,49,5,102,122,49,5,40,122,133,5,10,122,5,174,0,0,158,5,10,122,5,174,0,0,51,5,10,122,51,5,16,122,49,5,102,122,51,5,14,122,46,5,118,13,48,5,18,122,46,5,118,13,51,5,14,122,48,5,32,122,48,5,22,122,46,5,118,13,51,5,46,122,46,174,0,0,51,5,16,122,46,5,118,13,48,5,72,122,51,5,16,122,49,5,102,122,48,5,32,122,133,5,18,122,5,174,0,0,152,5,18,122,5,174,0,0,48,5,18,122,51,5,8,122,51,5,86,122,48,5,18,122,48,5,84,122,51,5,42,122,51,5,46,122,48,5,18,122,48,5,92,122,51,5,86,122,46,5,118,13,48,5,18,122,46,174,0,0,48,5,92,122,49,5,102,122,48,5,18,122,46,174,0,0,49,5,102,122,49,5,68,122,133,5,20,122,5,174,0,0,144,5,20,122,5,174,0,0,49,5,20,122,46,174,0,0,48,5,18,122,46,174,0,0,49,5,20,122,46,174,0,0,49,5,50,122,46,5,118,13,49,5,20,122,51,5,80,122,51,5,86,122,46,5,118,13,49,5,20,122,46,174,0,0,48,5,88,122,49,5,38,122,46,174,0,0,46,5,118,13,49,5,20,122,48,5,92,122,49,5,20,122,48,5,92,122,48,5,22,122,46,174,0,0,48,5,84,122,48,5,72,122,49,5,20,122,48,5,92,122,49,5,74,122,46,5,118,13,51,5,46,122,48,5,88,122,49,5,20,122,48,5,92,122,48,5,94,122,51,5,42,122,51,5,46,122,133,5,22,122,5,174,0,0,152,5,22,122,5,174,0,0,48,5,22,122,46,174,0,0,48,5,84,122,48,5,72,122,51,5,46,122,49,5,102,122,48,5,22,122,48,5,88,122,49,5,34,122,46,174,0,0,51,5,8,122,48,5,92,122,48,5,22,122,48,5,92,122,46,5,118,13,49,5,54,122,133,5,24,122,5,174,0,0,152,5,24,122,5,174,0,0,48,5,24,122,46,5,118,13,48,5,32,122,133,5,26,122,5,174,0,0,144,5,26,122,5,174,0,0,48,5,26,122,46,5,118,13,48,5,66,122,46,176,0,0,48,5,26,122,48,5,26,122,40,5,26,122,44,5,46,122,48,5,26,122,48,5,88,122,49,5,48,122,133,5,28,122,5,174,0,0,144,5,28,122,5,174,0,0,49,5,28,122,51,5,8,122,48,5,22,122,48,5,88,122,49,5,28,122,49,5,102,122,49,5,40,122,46,5,118,13,48,5,72,122,133,5,30,122,5,174,0,0,152,5,30,122,5,174,0,0,3,5,30,122,3,5,74,122,48,5,30,122,51,5,86,122,49,5,102,122,48,5,22,122,46,174,0,0,133,5,32,122,5,174,0,0,152,5,32,122,5,174,0,0,133,5,34,122,5,174,0,0,144,5,34,122,5,174,0,0,49,5,34,122,49,5,102,122,49,5,40,122,49,5,34,122,49,5,102,122,51,5,46,122,133,5,36,122,5,174,0,0,144,5,36,122,5,174,0,0,133,5,38,122,5,174,0,0,144,5,38,122,5,174,0,0,49,5,38,122,46,174,0,0,46,5,118,13,48,5,32,122,133,5,40,122,5,174,0,0,144,5,40,122,5,174,0,0,133,5,42,122,5,174,0,0,158,5,42,122,5,174,0,0,133,5,44,122,5,174,0,0,144,5,44,122,5,174,0,0,49,5,44,122,46,174,0,0,49,5,44,122,46,174,0,0,48,5,30,122,133,5,46,122,5,174,0,0,151,5,46,122,5,174,0,0,51,5,46,122,46,174,0,0,48,5,88,122,49,5,48,122,49,5,56,122,49,5,56,122,51,5,42,122,51,5,46,122,133,5,58,122,5,174,0,0,152,5,58,122,5,174,0,0,133,5,58,122,5,176,0,0,152,5,58,122,5,176,0,0,48,5,58,122,46,176,0,0,46,5,118,13,49,5,34,122,49,5,102,122,51,5,46,122,48,5,58,122,46,176,0,0,46,5,118,13,51,5,42,122,48,5,58,122,46,174,0,0,46,5,118,13,48,5,90,122,48,5,88,122,48,5,58,122,51,5,8,122,51,5,42,122,133,5,60,122,5,174,0,0,152,5,60,122,5,174,0,0,133,5,60,122,5,176,0,0,152,5,60,122,5,176,0,0,48,5,60,122,46,176,0,0,51,5,6,122,48,5,32,122,51,5,46,122,48,5,88,122,48,5,60,122,46,176,0,0,48,5,22,122,48,5,88,122,48,5,60,122,46,176,0,0,48,5,26,122,48,5,60,122,46,174,0,0,48,5,88,122,133,5,62,122,5,174,0,0,152,5,62,122,5,174,0,0,133,5,62,122,5,176,0,0,152,5,62,122,5,176,0,0,48,5,62,122,51,5,6,122,48,5,84,122,51,5,42,122,51,5,46,122,46,174,0,0,48,5,62,122,51,5,8,122,46,5,118,13,51,5,46,122,48,5,62,122,46,174,0,0,51,5,42,122,48,5,30,122,51,5,14,122,48,5,88,122,48,5,62,122,48,5,84,122,49,5,102,122,133,5,64,122,5,174,0,0,152,5,64,122,5,174,0,0,133,5,64,122,5,176,0,0,152,5,64,122,5,176,0,0,48,5,64,122,46,176,0,0,46,5,118,13,48,5,30,122,46,174,0,0,48,5,64,122,46,174,0,0,46,5,118,13,49,5,38,122,48,5,64,122,48,5,22,122,49,5,38,122,46,5,118,13,48,5,88,122,48,5,64,122,46,176,0,0,49,5,36,122,48,5,64,122,46,176,0,0,49,5,50,122,48,5,60,122,48,5,64,122,48,5,88,122,51,5,42,122,48,5,64,122,46,176,0,0,49,5,102,122,48,5,32,122,133,5,66,122,5,174,0,0,152,5,66,122,5,174,0,0,133,5,66,122,5,176,0,0,152,5,66,122,5,176,0,0,48,5,66,122,46,5,118,13,48,5,88,122,48,5,66,122,46,5,118,13,49,5,102,122,48,5,66,122,46,176,0,0,51,5,8,122,49,5,102,122,51,5,46,122,48,5,66,122,48,5,18,122,48,5,66,122,46,174,0,0,48,5,88,122,51,5,46,122,48,5,66,122,49,5,102,122,48,5,66,122,46,176,0,0,49,5,102,122,51,5,46,122,46,174,0,0,49,5,68,122,51,5,8,122,48,5,22,122,48,5,92,122,49,5,68,122,51,5,8,122,48,5,88,122,3,5,68,122,3,5,32,122,49,5,68,122,51,5,42,122,48,5,58,122,49,5,68,122,48,5,88,122,48,5,22,122,49,5,68,122,49,5,102,122,48,5,30,122,52,5,82,122,49,5,102,122,49,5,70,122,48,5,22,122,48,5,92,122,49,5,102,122,49,5,70,122,51,5,86,122,49,5,70,122,51,5,86,122,48,5,58,122,46,174,0,0,46,5,118,13,48,5,88,122,49,5,74,122,48,5,18,122,46,174,0,0,49,5,74,122,48,5,18,122,46,174,0,0,51,5,46,122,49,5,102,122,51,5,78,122,46,5,118,13,51,5,46,122,46,174,0,0,51,5,78,122,46,5,118,13,48,5,88,122,51,5,80,122,51,5,6,122,49,5,102,122,46,5,82,122,44,5,86,122,51,5,86,122,51,5,42,122,51,5,46,122,48,5,88,122,51,5,86,122,48,5,84,122,48,5,88,122,46,5,118,13,48,5,62,122,46,174,0,0,48,5,88,122,48,5,88,122,48,5,60,122,46,176,0,0,46,5,118,13,48,5,90,122,48,5,72,122,48,5,90,122,49,5,102,122,51,5,46,122,48,5,24,122,46,174,0,0,49,5,102,122,152,5,94,122,5,174,0,0,158,5,96,122,5,174,0,0,158,5,98,122,5,174,0,0,155,5,100,122,5,174,0,0,32,5,184,124,32,5,190,124,5,5,6,121,5,5,8,121,5,5,10,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,5,5,179,121,5,5,181,121,5,5,183,121,5,5,185,121,5,5,187,121,5,5,189,121,5,5,191,121,5,5,193,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,207,121,5,5,209,121,5,5,211,121,5,5,213,121,5,5,215,121,5,5,217,121,5,5,219,121,5,5,221,121,5,5,223,121,5,5,225,121,5,5,227,121,5,5,229,121,5,5,231,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,16,5,0,19,16,5,0,21,16,5,0,23,16,5,0,25,16,5,0,27,16,5,0,29,16,5,0,31,16,5,0,33,16,5,0,35,16,5,0,37,26,5,0,19,26,5,0,21,26,5,0,23,26,5,0,25,26,5,0,27,26,5,0,29,26,5,0,31,26,5,0,33,26,5,0,35,28,5,0,37,5,0,0,0,6,0,0,0,29,1,0,0,0,5,0,5,60,0,128,69,130,61,0,0,128,5,0,130,128,5,0,132,128,5,0,134,128,5,0,136,128,5,0,138,128,5,0,140,128,5,0,142,128,5,0,144,128,32,0,144,128,5,0,146,128,5,0,148,128,5,0,150,128,32,0,150,128,5,0,152,128,5,0,154,128,5,0,156,128,5,0,158,128,5,0,160,128,32,0,160,128,5,0,162,128,5,0,164,128,5,0,166,128,5,0,168,128,32,0,168,128,5,0,170,128,32,0,170,128,5,0,172,128,5,0,174,128,32,0,174,128,46,0,174,128,5,0,176,128,32,0,176,128,46,0,176,128,5,0,178,128,32,0,178,128,5,0,180,128,5,0,182,128,5,0,184,128,5,0,186,128,5,0,188,128,5,0,190,128,5,0,192,128,5,0,194,128,5,0,196,128,5,0,198,128,5,0,200,128,5,0,202,128,5,0,204,128,5,0,206,128,5,0,208,128,5,0,210,128,5,0,212,128,5,0,214,128,5,0,216,128,5,0,218,128,5,0,220,128,5,0,222,128,5,0,224,128,5,2,226,128,5,35,226,128,5,68,226,128,5,101,226,128,5,134,226,128,5,167,226,128,5,200,226,128,5,233,226,128,5,12,227,128,5,45,227,128,5,78,227,128,5,111,227,128,5,144,227,128,5,177,227,128,5,210,227,128,5,243,227,128,5,22,228,128,5,55,228,128,5,88,228,128,5,121,228,128,5,154,228,128,5,187,228,128,5,220,228,128,5,253,228,128,5,32,229,128,5,65,229,128,5,98,229,128,5,131,229,128,5,164,229,128,16,164,229,128,30,164,229,128,44,164,229,128,5,197,229,128,5,230,229,128,5,9,230,128,32,9,230,128,5,42,230,128,5,75,230,128,5,108,230,128,32,108,230,128,5,141,230,128,5,174,230,128,5,207,230,128,32,207,230,128,46,207,230,128,5,240,230,128,5,19,231,128,5,52,231,128,5,85,231,128,32,85,231,128,46,85,231,128,5,118,231,128,5,151,231,128,5,184,231,128,32,184,231,128,46,184,231,128,5,217,231,128,5,250,231,128,5,29,232,128,32,29,232,128,46,29,232,128,5,62,232,128,32,62,232,128,46,62,232,128,5,95,232,128,5,128,232,128,32,128,232,128,46,128,232,128,5,161,232,128,5,194,232,128,5,227,232,128,5,6,233,128,5,39,233,128,5,72,233,128,5,105,233,128,5,138,233,128,5,171,233,128,5,204,233,128,5,237,233,128,5,16,234,128,5,49,234,128,5,82,234,128,5,115,234,128,5,148,234,128,5,181,234,128,5,214,234,128,5,247,234,128,5,26,235,128,5,59,235,128,16,59,235,128,30,59,235,128,44,59,235,128,5,92,235,128,5,125,235,128,5,158,235,128,5,191,235,128,5,224,235,128,5,3,236,128,5,36,236,128,5,69,236,128,5,102,236,128,5,135,236,128,5,168,236,128,5,201,236,128,5,234,236,128,5,13,237,128,5,46,237,128,5,79,237,128,5,112,237,128,5,145,237,128,5,178,237,128,5,211,237,128,5,244,237,128,5,23,238,128,5,56,238,128,5,89,238,128,5,122,238,128,5,155,238,128,5,188,238,128,5,221,238,128,5,254,238,128,5,33,239,128,5,66,239,128,5,99,239,128,5,132,239,128,5,165,239,128,5,198,239,128,5,231,239,128,5,10,240,128,5,43,240,128,5,76,240,128,5,109,240,128,5,142,240,128,5,175,240,128,5,208,240,128,5,241,240,128,32,241,240,128,5,20,241,128,5,53,241,128,5,86,241,128,5,119,241,128,5,152,241,128,5,185,241,128,5,218,241,128,5,251,241,128,5,30,242,128,5,63,242,128,5,96,242,128,5,129,242,128,5,162,242,128,5,195,242,128,5,228,242,128,5,7,243,128,5,40,243,128,5,73,243,128,5,106,243,128,5,139,243,128,5,172,243,128,5,205,243,128,5,238,243,128,5,17,244,128,5,50,244,128,5,83,244,128,5,116,244,128,5,149,244,128,5,182,244,128,5,215,244,128,5,248,244,128,5,27,245,128,5,60,245,128,5,93,245,128,5,126,245,128,5,159,245,128,5,192,245,128,5,225,245,128,5,4,246,128,5,37,246,128,5,70,246,128,5,103,246,128,5,136,246,128,5,169,246,128,5,202,246,128,5,235,246,128,5,14,247,128,5,47,247,128,5,80,247,128,5,113,247,128,5,146,247,128,5,179,247,128,5,212,247,128,5,245,247,128,5,24,248,128,5,57,248,128,5,90,248,128,5,123,248,128,5,156,248,128,5,189,248,128,5,222,248,128,5,255,248,128,5,34,249,128,5,67,249,128,5,100,249,128,5,133,249,128,5,166,249,128,5,199,249,128,5,232,249,128,5,11,250,128,5,44,250,128,5,77,250,128,5,110,250,128,5,143,250,128,5,176,250,128,5,209,250,128,5,242,250,128,5,21,251,128,5,54,251,128,5,87,251,128,5,120,251,128,5,153,251,128,5,186,251,128,5,219,251,0,2,2,3,0,0,4,3,2,0,18,3,0,0,0,4,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,6,5,0,0,8,5,128,32,0,5,0,0,10,5,128,16,0,5,128,30,0,5,128,44,0,5,0,0,12,5,0,0,14,5,128,32,0,5,128,46,0,5,0,0,16,5,0,2,18,5,7,23,18,5,0,0,20,5,128,32,0,5,0,0,22,5,0,0,24,5,128,32,0,5,0,0,26,5,128,32,0,5,128,46,0,5,0,0,28,5,2,0,48,5,128,32,0,5,0,0,50,5,0,0,0,6,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,6,7,0,0,8,7,2,0,30,7,0,2,32,7,7,30,32,7,0,0,34,7,128,16,0,5,128,30,0,5,128,44,0,5,0,0,36,7,2,0,42,7,128,16,0,5,128,30,0,5,128,44,0,5,0,0,44,7,2,0,54,7,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,56,7,0,0,58,7,0,2,60,7,7,142,60,7,0,0,62,7,0,0,64,7,2,0,78,7,0,2,80,7,0,9,80,7,0,0,82,7,2,0,90,7,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,92,7,0,0,94,7,0,2,96,7,7,16,96,7,0,0,98,7,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,100,7,2,0,110,7,0,2,112,7,7,51,112,7,0,0,114,7,0,0,116,7,0,0,0,8,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,6,9,0,0,8,9,0,2,10,9,0,9,10,9,0,0,12,9,0,0,14,9,0,2,16,9,7,30,16,9,0,0,18,9,0,0,20,9,0,2,22,9,7,37,22,9,0,0,24,9,128,32,0,5,128,46,0,5,0,0,26,9,2,0,34,9,0,2,36,9,7,37,36,9,0,0,38,9,2,0,50,9,0,2,52,9,7,35,53,9,0,0,55,9,2,0,59,9,0,2,61,9,7,14,62,9,0,0,64,9,2,0,90,9,0,2,92,9,0,9,92,9,0,0,94,9,2,0,102,9,0,2,104,9,7,51,104,9,0,0,106,9,128,32,0,5,0,0,108,9,2,0,120,9,128,32,0,5,0,0,122,9,2,0,142,9,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,144,9,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,146,9,128,32,0,5,128,46,0,5,0,0,148,9,128,32,0,5,128,46,0,5,0,0,150,9,128,16,0,5,128,30,0,5,128,44,0,5,0,0,152,9,128,16,0,5,128,30,0,5,128,44,0,5,0,0,154,9,2,0,160,9,0,2,162,9,0,9,162,9,0,0,164,9,2,0,184,9,128,32,0,5,0,0,186,9,128,32,0,5,0,0,188,9,2,0,62,10,128,32,0,5,0,0,64,10,128,32,0,5,0,0,66,10,128,32,0,5,0,0,68,10,128,32,0,5,0,0,70,10,128,32,0,5,128,46,0,5,0,0,72,10,128,32,0,5,128,46,0,5,0,0,74,10,128,32,0,5,0,0,76,10,128,32,0,5,0,0,78,10,128,32,0,5,0,0,80,10,128,32,0,5,0,0,82,10,128,16,0,5,128,30,0,5,128,44,0,5,0,0,84,10,128,16,0,5,128,30,0,5,128,44,0,5,0,0,86,10,128,32,0,5,0,0,88,10,128,32,0,5,0,0,90,10,2,0,126,10,128,32,0,5,128,46,0,5,0,0,128,10,128,32,0,5,128,46,0,5,0,0,130,10,2,0,138,10,128,32,0,5,128,46,0,5,0,0,140,10,128,32,0,5,128,46,0,5,0,0,142,10,0,0,144,10,128,32,0,5,128,46,0,5,0,0,146,10,2,0,150,10,128,32,0,5,128,46,0,5,0,0,152,10,128,32,0,5,128,46,0,5,0,0,154,10,2,0,188,10,128,32,0,5,0,0,190,10,128,32,0,5,0,0,192,10,2,0,24,11,0,2,26,11,7,128,26,11,0,0,28,11,2,0,54,11,0,2,56,11,0,9,56,11,0,0,58,11,2,0,76,11,128,32,0,5,0,0,78,11,2,0,100,11,0,2,102,11,7,142,102,11,0,0,104,11,2,0,116,11,0,2,118,11,7,163,118,11,0,0,120,11,0,2,122,11,7,12,124,11,0,0,126,11,0,2,128,11,7,93,128,11,0,2,2,12,0,0,4,12,128,32,0,5,0,0,6,12,0,0,8,12,0,0,10,12,128,32,0,5,0,0,12,12,128,32,0,5,0,2,14,12,0,9,14,12,0,0,16,12,0,2,18,12,0,9,18,12,0,0,20,12,0,2,22,12,7,37,22,12,0,0,24,12,2,0,28,12,0,2,30,12,7,23,30,12,0,0,32,12,2,0,50,12,0,2,52,12,7,114,52,12,0,0,54,12,0,2,56,12,7,98,57,12,0,0,59,12,2,0,75,12,0,2,77,12,0,9,77,12,0,0,79,12,0,2,81,12,7,16,81,12,0,0,83,12,128,32,0,5,0,2,85,12,7,148,89,12,0,0,91,12,2,0,95,12,0,2,97,12,7,156,97,12,0,0,99,12,128,32,0,5,0,0,101,12,128,32,0,5,0,0,103,12,128,32,0,5,0,0,105,12,128,32,0,5,0,2,107,12,7,215,109,12,0,0,111,12,128,32,0,5,0,2,113,12,7,16,113,12,0,0,115,12,128,32,0,5,0,2,117,12,7,51,117,12,0,0,119,12,128,32,0,5,0,0,121,12,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,123,12,2,0,129,12,128,32,0,5,128,46,0,5,0,0,131,12,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,133,12,128,32,0,5,128,46,0,5,0,0,135,12,128,32,0,5,0,0,137,12,128,32,0,5,0,0,139,12,128,32,0,5,0,0,141,12,128,32,0,5,0,0,143,12,128,32,0,5,128,46,0,5,0,2,145,12,7,16,145,12,0,0,147,12,128,32,0,5,0,0,149,12,128,32,0,5,0,2,151,12,7,142,151,12,0,0,153,12,128,32,0,5,0,0,155,12,128,32,0,5,0,2,157,12,7,32,170,12,0,0,172,12,128,32,0,5,0,2,174,12,7,78,178,12,0,0,180,12,128,32,0,5,0,2,182,12,7,35,183,12,0,0,185,12,128,32,0,5,0,2,187,12,7,182,74,13,0,0,76,13,128,32,0,5,0,2,78,13,7,58,78,13,0,0,80,13,2,0,98,13,0,2,100,13,7,44,100,13,0,0,102,13,0,0,104,13,0,2,106,13,0,9,106,13,0,0,108,13,2,0,118,13,128,32,0,5,128,46,0,5,0,0,120,13,0,2,132,13,0,0,134,13,0,0,136,13,128,32,0,5,0,0,138,13,128,32,0,5,128,46,0,5,0,0,140,13,128,32,0,5,0,0,142,13,128,32,0,5,0,0,144,13,0,0,146,13,0,2,148,13,0,9,148,13,0,0,150,13,2,0,192,13,128,32,0,5,0,0,194,13,2,0,242,13,0,2,2,14,0,0,0,15,0,0,6,16,0,0,8,16,2,0,198,16,0,2,200,16,7,44,200,16,0,0,202,16,2,0,144,17,0,2,146,17,7,12,148,17,0,0,150,17,2,0,170,17,0,2,172,17,7,177,172,17,0,0,174,17,2,0,116,18,0,2,118,18,7,245,119,18,0,0,121,18,2,0,137,18,0,0,0,19,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,0,0,0,21,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,23,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,25,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,128,32,0,112,0,0,0,27,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,29,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,31,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,33,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,35,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,37,128,16,0,5,128,22,0,5,128,28,0,5,128,34,0,5,128,40,0,5,128,46,0,5,128,52,0,5,128,5,0,112,0,2,2,39,0,2,2,41,0,0,0,42,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,128,46,0,112,0,0,6,43,0,0,8,43,128,32,0,5,0,0,10,43,0,0,12,43,128,32,0,5,0,0,14,43,0,0,16,43,128,32,0,5,0,0,18,43,0,0,20,43,128,32,0,5,128,46,0,5,0,0,22,43,128,16,0,5,128,30,0,5,128,44,0,5,0,0,24,43,2,0,28,43,128,32,0,5,128,46,0,5,0,0,30,43,0,0,0,44,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,45,0,0,8,45,128,32,0,5,0,0,10,45,2,0,16,45,128,32,0,5,0,0,18,45,0,0,20,45,128,32,0,5,0,0,22,45,128,32,0,5,0,0,24,45,128,32,0,5,128,46,0,5,0,0,0,46,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,47,0,0,8,47,128,32,0,5,0,0,10,47,128,32,0,5,0,0,12,47,128,32,0,5,0,0,14,47,128,32,0,5,0,0,16,47,128,32,0,5,128,46,0,5,0,0,18,47,128,32,0,5,0,0,20,47,128,32,0,5,0,0,0,48,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,5,0,112,128,32,0,112,128,46,0,112,128,5,0,120,128,32,0,120,0,0,6,49,0,0,8,49,0,0,10,49,128,32,0,5,0,0,12,49,2,0,16,49,128,32,0,5,0,0,18,49,128,32,0,5,0,0,20,49,0,0,22,49,128,32,0,5,0,0,24,49,2,0,28,49,0,0,0,50,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,51,0,0,8,51,2,0,12,51,128,32,0,5,0,0,14,51,0,0,16,51,2,0,20,51,128,32,0,5,128,46,0,5,0,0,22,51,0,0,24,51,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,26,51,0,0,28,51,128,16,0,5,128,30,0,5,128,44,0,5,0,0,30,51,0,0,32,51,2,0,36,51,128,32,0,5,128,46,0,5,0,0,38,51,0,0,40,51,128,32,0,5,0,0,42,51,2,0,48,51,0,0,0,52,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,5,0,112,128,32,0,112,0,0,6,53,0,0,8,53,0,0,10,53,128,32,0,5,0,0,12,53,2,0,16,53,128,32,0,5,0,0,18,53,128,32,0,5,0,0,20,53,0,0,0,54,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,5,0,112,128,32,0,112,0,0,6,55,128,32,0,5,128,46,0,5,0,0,8,55,0,0,10,55,128,32,0,5,0,0,12,55,128,32,0,5,0,0,14,55,0,0,16,55,128,32,0,5,0,0,18,55,2,0,22,55,128,32,0,5,0,0,24,55,128,32,0,5,128,46,0,5,0,0,26,55,128,32,0,5,0,0,0,56,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,57,0,0,8,57,128,32,0,5,0,0,10,57,0,0,12,57,128,32,0,5,128,46,0,5,0,0,14,57,128,32,0,5,0,0,16,57,128,32,0,5,0,0,18,57,128,32,0,5,0,0,20,57,128,32,0,5,128,46,0,5,0,0,22,57,2,0,26,57,0,0,0,58,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,59,128,32,0,5,0,0,8,59,128,32,0,5,128,46,0,5,0,0,10,59,2,0,14,59,128,32,0,5,0,0,16,59,128,32,0,5,128,46,0,5,0,0,18,59,128,32,0,5,0,0,20,59,0,0,22,59,128,32,0,5,0,0,24,59,128,32,0,5,128,46,0,5,0,0,26,59,0,0,0,60,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,61,128,32,0,5,0,0,8,61,0,0,10,61,128,32,0,5,0,0,12,61,128,32,0,5,128,46,0,5,0,0,14,61,128,32,0,5,0,0,16,61,0,0,0,62,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,63,0,0,8,63,0,0,10,63,128,32,0,5,0,0,12,63,128,32,0,5,0,0,14,63,128,32,0,5,0,0,16,63,128,32,0,5,0,0,18,63,128,32,0,5,0,0,20,63,128,32,0,5,0,0,0,64,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,65,128,32,0,5,128,46,0,5,0,0,8,65,128,32,0,5,0,0,10,65,0,0,12,65,128,32,0,5,0,0,14,65,128,32,0,5,0,0,16,65,128,32,0,5,0,0,18,65,128,32,0,5,128,46,0,5,0,0,20,65,128,32,0,5,0,0,22,65,0,0,24,65,128,32,0,5,0,0,26,65,128,32,0,5,0,0,28,65,128,32,0,5,0,0,30,65,128,32,0,5,0,0,32,65,2,0,40,65,128,32,0,5,0,0,42,65,0,0,44,65,0,0,0,66,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,67,128,32,0,5,0,0,8,67,2,0,12,67,128,32,0,5,128,46,0,5,0,0,14,67,0,0,16,67,2,0,20,67,0,0,0,68,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,69,128,32,0,5,128,46,0,5,0,0,8,69,2,0,14,69,128,32,0,5,128,46,0,5,0,0,16,69,128,32,0,5,0,0,18,69,128,32,0,5,0,0,20,69,0,0,22,69,128,32,0,5,0,0,24,69,2,0,30,69,128,16,0,5,128,30,0,5,128,44,0,5,0,0,32,69,0,0,0,70,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,128,46,0,112,0,0,6,71,0,0,8,71,2,0,30,71,128,32,0,5,128,46,0,5,0,0,32,71,2,0,42,71,128,32,0,5,0,0,44,71,128,32,0,5,0,0,46,71,128,32,0,5,0,0,48,71,0,0,50,71,128,32,0,5,128,46,0,5,0,0,52,71,128,32,0,5,0,0,54,71,0,0,56,71,128,32,0,5,0,0,58,71,128,32,0,5,128,46,0,5,0,0,60,71,0,0,0,72,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,73,0,0,8,73,128,32,0,5,0,0,10,73,128,32,0,5,0,0,12,73,2,0,16,73,128,32,0,5,0,0,18,73,128,32,0,5,0,0,20,73,128,32,0,5,0,0,22,73,0,0,24,73,128,32,0,5,0,0,26,73,0,0,0,74,128,16,0,5,128,20,0,5,128,24,0,5,128,28,0,5,128,32,0,5,128,36,0,5,128,40,0,5,128,44,0,5,128,48,0,5,128,52,0,5,128,56,0,5,0,0,6,75,0,0,8,75,128,32,0,5,0,0,10,75,128,32,0,5,0,0,12,75,0,0,14,75,128,32,0,5,0,0,16,75,0,0,0,76,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,0,0,6,77,0,0,8,77,128,32,0,5,128,46,0,5,0,0,10,77,0,0,12,77,128,32,0,5,128,46,0,5,0,0,14,77,0,0,16,77,128,32,0,5,0,0,18,77,0,0,20,77,128,32,0,5,0,0,22,77,2,0,28,77,128,32,0,5,0,0,30,77,0,0,32,77,0,0,34,77,128,32,0,5,0,0,36,77,2,0,54,77,128,32,0,5,0,0,56,77,2,0,62,77,128,32,0,5,0,0,0,78,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,128,5,0,120,128,32,0,120,0,0,6,79,0,0,8,79,128,32,0,5,0,0,10,79,2,0,14,79,128,16,0,5,128,30,0,5,128,44,0,5,0,0,16,79,128,32,0,5,0,0,18,79,2,0,22,79,128,16,0,5,128,30,0,5,128,44,0,5,0,0,24,79,2,0,34,79,0,0,0,80,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,5,0,120,128,32,0,120,0,0,6,81,0,0,8,81,128,32,0,5,0,0,10,81,128,32,0,5,0,0,12,81,0,0,14,81,128,32,0,5,0,0,16,81,128,32,0,5,0,0,18,81,128,32,0,5,0,0,20,81,2,0,24,81,128,32,0,5,0,0,0,82,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,83,128,32,0,5,0,0,8,83,0,0,10,83,128,32,0,5,0,0,12,83,2,0,20,83,128,32,0,5,128,46,0,5,0,0,22,83,0,0,24,83,128,32,0,5,0,0,26,83,2,0,30,83,128,32,0,5,0,0,32,83,128,32,0,5,0,0,34,83,128,32,0,5,128,46,0,5,0,0,36,83,2,0,40,83,128,32,0,5,128,46,0,5,0,0,42,83,2,0,46,83,128,32,0,5,0,0,48,83,128,32,0,5,128,46,0,5,0,0,50,83,0,0,0,84,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,85,0,0,8,85,128,32,0,5,0,0,10,85,0,0,12,85,128,32,0,5,128,46,0,5,0,0,14,85,0,0,16,85,0,0,18,85,128,32,0,5,0,0,20,85,128,32,0,5,128,46,0,5,0,0,0,86,128,16,0,5,128,20,0,5,128,24,0,5,128,28,0,5,128,32,0,5,128,36,0,5,128,40,0,5,128,44,0,5,128,48,0,5,128,52,0,5,128,56,0,5,0,0,6,87,0,0,8,87,128,32,0,5,0,0,10,87,128,32,0,5,0,0,12,87,128,32,0,5,128,46,0,5,0,0,0,88,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,89,0,0,8,89,2,0,16,89,128,32,0,5,0,0,18,89,0,0,20,89,0,0,0,90,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,91,0,0,8,91,128,32,0,5,0,0,10,91,128,32,0,5,0,0,12,91,128,32,0,5,0,0,14,91,0,0,16,91,128,32,0,5,0,0,0,92,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,93,0,0,8,93,128,32,0,5,0,0,10,93,0,0,12,93,128,32,0,5,0,0,14,93,128,32,0,5,0,0,16,93,128,32,0,5,128,46,0,5,0,0,18,93,128,32,0,5,128,46,0,5,0,0,20,93,128,32,0,5,0,0,22,93,128,32,0,5,0,0,24,93,128,32,0,5,0,0,26,93,128,16,0,5,128,30,0,5,128,44,0,5,0,0,28,93,0,0,30,93,128,32,0,5,0,0,32,93,2,0,38,93,128,32,0,5,0,0,40,93,128,32,0,5,0,0,42,93,128,32,0,5,0,0,44,93,128,32,0,5,0,0,46,93,128,32,0,5,0,0,48,93,2,0,54,93,128,32,0,5,0,0,56,93,128,32,0,5,0,0,58,93,128,16,0,5,128,30,0,5,128,44,0,5,0,0,60,93,2,0,64,93,128,32,0,5,0,0,66,93,128,32,0,5,0,0,68,93,128,32,0,5,0,0,70,93,128,32,0,5,0,0,72,93,128,32,0,5,0,0,74,93,128,32,0,5,0,0,76,93,0,0,78,93,128,32,0,5,0,0,80,93,0,0,82,93,128,32,0,5,0,0,84,93,0,0,86,93,128,32,0,5,0,0,88,93,128,32,0,5,0,0,90,93,128,32,0,5,0,0,92,93,0,0,94,93,128,32,0,5,0,0,96,93,2,0,102,93,128,32,0,5,0,0,104,93,128,32,0,5,0,0,106,93,2,0,126,93,0,2,2,94,0,2,4,96,0,0,6,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,8,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,10,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,12,96,0,0,14,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,16,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,18,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,20,96,128,32,0,5,0,0,22,96,128,32,0,5,0,0,24,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,26,96,128,32,0,5,0,0,28,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,30,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,32,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,34,96,128,32,0,5,0,0,36,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,38,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,40,96,0,0,42,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,44,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,46,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,48,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,50,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,52,96,0,0,54,96,128,32,0,5,0,0,56,96,128,32,0,5,0,0,58,96,128,32,0,5,0,0,60,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,62,96,0,0,64,96,0,0,66,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,68,96,128,32,0,5,0,0,70,96,128,32,0,5,0,0,72,96,128,32,0,5,0,0,74,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,76,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,78,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,80,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,82,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,84,96,0,0,86,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,88,96,0,0,90,96,128,32,0,5,0,0,92,96,128,32,0,5,0,0,94,96,128,32,0,5,0,2,96,96,0,0,98,96,128,32,0,5,128,46,0,5,0,0,100,96,128,32,0,5,0,0,102,96,128,32,0,5,0,0,104,96,128,32,0,5,0,0,106,96,128,32,0,5,0,0,108,96,128,32,0,5,0,0,110,96,128,32,0,5,0,0,112,96,128,32,0,5,0,0,114,96,128,32,0,5,0,0,116,96,128,32,0,5,0,0,118,96,128,32,0,5,128,46,0,5,0,0,120,96,128,32,0,5,128,46,0,5,0,0,122,96,128,32,0,5,0,0,124,96,128,32,0,5,0,0,126,96,128,32,0,5,0,0,128,96,128,32,0,5,0,0,130,96,128,32,0,5,0,0,132,96,128,32,0,5,0,0,134,96,128,32,0,5,0,0,136,96,128,32,0,5,0,0,138,96,128,32,0,5,0,0,140,96,128,32,0,5,0,0,142,96,128,32,0,5,0,0,144,96,128,32,0,5,0,0,146,96,128,32,0,5,0,0,148,96,128,32,0,5,0,0,150,96,128,32,0,5,0,0,152,96,128,32,0,5,0,0,154,96,128,32,0,5,0,0,156,96,128,32,0,5,0,0,158,96,128,32,0,5,0,0,160,96,128,32,0,5,0,0,162,96,128,32,0,5,0,0,164,96,128,32,0,5,0,0,166,96,128,32,0,5,0,0,168,96,128,32,0,5,0,0,170,96,128,32,0,5,0,0,172,96,128,32,0,5,0,0,174,96,128,32,0,5,0,0,176,96,128,32,0,5,0,0,178,96,128,32,0,5,0,0,180,96,128,32,0,5,0,0,182,96,128,32,0,5,0,0,184,96,128,32,0,5,0,0,186,96,128,32,0,5,0,0,188,96,128,32,0,5,0,0,190,96,128,32,0,5,0,0,192,96,128,32,0,5,0,0,194,96,128,32,0,5,0,0,196,96,128,32,0,5,0,0,198,96,128,32,0,5,0,0,200,96,128,32,0,5,0,0,202,96,128,32,0,5,0,0,204,96,128,32,0,5,0,0,206,96,128,32,0,5,0,0,208,96,128,32,0,5,0,0,210,96,128,32,0,5,0,0,212,96,128,32,0,5,0,0,214,96,128,32,0,5,0,0,216,96,128,32,0,5,0,2,4,97,0,0,6,97,128,32,0,5,128,46,0,5,0,0,8,97,128,32,0,5,0,0,10,97,128,32,0,5,0,0,12,97,128,32,0,5,128,46,0,5,0,0,14,97,128,32,0,5,128,46,0,5,0,0,16,97,128,32,0,5,128,46,0,5,128,5,0,112,128,32,0,112,0,0,18,97,128,32,0,5,0,0,20,97,128,32,0,5,0,0,22,97,128,32,0,5,0,0,24,97,128,32,0,5,0,0,26,97,128,32,0,5,128,46,0,5,0,0,28,97,128,32,0,5,0,0,30,97,128,32,0,5,0,0,32,97,128,32,0,5,0,0,34,97,128,32,0,5,0,0,36,97,128,32,0,5,0,0,38,97,128,32,0,5,0,0,40,97,128,32,0,5,128,46,0,5,0,0,42,97,128,32,0,5,128,46,0,5,0,0,44,97,128,32,0,5,128,46,0,5,0,2,46,97,128,32,0,5,0,9,46,97,128,32,0,5,0,0,48,97,128,32,0,5,0,0,50,97,128,32,0,5,128,46,0,5,0,0,52,97,128,32,0,5,0,0,54,97,128,32,0,5,0,2,56,97,128,32,0,5,0,9,56,97,128,32,0,5,0,0,58,97,128,32,0,5,0,0,60,97,128,32,0,5,0,0,62,97,128,32,0,5,0,0,64,97,128,32,0,5,0,0,66,97,128,32,0,5,0,0,68,97,128,32,0,5,0,0,70,97,128,32,0,5,128,46,0,5,0,0,72,97,128,32,0,5,0,0,74,97,128,32,0,5,128,46,0,5,0,0,76,97,128,32,0,5,0,0,78,97,128,32,0,5,0,0,80,97,128,32,0,5,0,0,82,97,128,32,0,5,128,46,0,5,0,0,84,97,128,32,0,5,128,46,0,5,0,0,86,97,128,32,0,5,0,0,88,97,128,32,0,5,0,0,90,97,128,32,0,5,0,0,92,97,128,32,0,5,0,0,94,97,128,32,0,5,0,2,96,97,128,32,0,5,0,9,96,97,128,32,0,5,0,0,98,97,128,32,0,5,128,46,0,5,0,0,100,97,0,0,102,97,128,32,0,5,0,2,104,97,128,32,0,5,0,9,104,97,128,32,0,5,0,16,104,97,128,32,0,5,0,0,106,97,128,32,0,5,0,0,108,97,128,32,0,5,0,0,110,97,128,32,0,5,0,0,112,97,128,32,0,5,0,0,114,97,128,32,0,5,128,46,0,5,0,0,116,97,128,32,0,5,0,0,118,97,128,32,0,5,0,0,120,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,122,97,128,32,0,5,0,0,124,97,128,32,0,5,0,0,126,97,128,32,0,5,0,0,128,97,128,32,0,5,0,0,130,97,128,32,0,5,0,0,132,97,128,32,0,5,0,0,134,97,128,32,0,5,0,0,136,97,128,32,0,5,0,0,138,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,140,97,128,32,0,5,0,0,142,97,128,32,0,5,128,46,0,5,0,0,144,97,128,32,0,5,0,0,146,97,128,32,0,5,0,0,148,97,128,32,0,5,0,0,150,97,128,32,0,5,128,46,0,5,0,0,152,97,128,32,0,5,0,0,154,97,128,32,0,5,0,0,156,97,128,32,0,5,128,46,0,5,0,0,158,97,128,32,0,5,0,0,160,97,128,32,0,5,0,0,162,97,128,32,0,5,128,46,0,5,0,2,164,97,128,32,0,5,0,9,164,97,128,32,0,5,0,0,166,97,128,32,0,5,0,0,168,97,128,32,0,5,0,0,170,97,128,32,0,5,0,0,172,97,128,32,0,5,128,46,0,5,0,0,174,97,128,32,0,5,0,0,176,97,128,32,0,5,0,2,178,97,128,32,0,5,128,46,0,5,0,9,178,97,128,32,0,5,0,0,180,97,128,32,0,5,128,46,0,5,0,0,182,97,128,32,0,5,128,46,0,5,0,2,184,97,128,32,0,5,0,9,184,97,128,32,0,5,0,0,186,97,128,32,0,5,0,0,188,97,128,32,0,5,0,2,190,97,128,32,0,5,0,9,190,97,128,32,0,5,0,16,190,97,128,32,0,5,128,46,0,5,0,23,190,97,128,32,0,5,0,30,190,97,128,32,0,5,0,37,190,97,128,32,0,5,0,44,190,97,128,32,0,5,0,0,192,97,128,32,0,5,128,46,0,5,0,2,194,97,128,32,0,5,0,9,194,97,128,32,0,5,0,0,196,97,128,32,0,5,0,0,198,97,128,32,0,5,0,0,200,97,128,32,0,5,128,46,0,5,0,2,202,97,128,32,0,5,0,9,202,97,128,32,0,5,0,0,204,97,128,32,0,5,0,0,206,97,128,32,0,5,0,0,208,97,128,32,0,5,0,0,210,97,128,32,0,5,0,0,212,97,128,32,0,5,0,0,214,97,128,32,0,5,0,0,216,97,128,32,0,5,0,0,218,97,128,32,0,5,128,46,0,5,0,0,220,97,128,32,0,5,0,0,222,97,128,32,0,5,128,46,0,5,0,2,224,97,128,32,0,5,0,9,224,97,0,16,224,97,0,0,226,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,228,97,128,32,0,5,0,0,230,97,128,32,0,5,128,46,0,5,0,0,232,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,234,97,128,32,0,5,0,2,236,97,128,32,0,5,128,46,0,5,0,9,236,97,128,32,0,5,0,0,238,97,128,32,0,5,0,0,240,97,128,32,0,5,128,46,0,5,0,2,242,97,128,32,0,5,0,9,242,97,128,32,0,5,128,46,0,5,0,0,244,97,128,32,0,5,0,2,246,97,128,32,0,5,0,9,246,97,128,32,0,5,128,46,0,5,0,16,246,97,128,32,0,5,128,46,0,5,0,23,246,97,128,32,0,5,0,30,246,97,128,32,0,5,128,46,0,5,0,37,246,97,128,32,0,5,0,44,246,97,128,32,0,5,0,51,246,97,128,32,0,5,0,58,246,97,128,32,0,5,128,46,0,5,0,65,246,97,128,32,0,5,0,72,246,97,128,32,0,5,0,79,246,97,128,32,0,5,128,46,0,5,0,86,246,97,128,32,0,5,0,93,246,97,128,32,0,5,0,0,248,97,128,32,0,5,0,0,250,97,128,32,0,5,0,0,252,97,128,32,0,5,0,2,4,98,0,0,6,98,128,32,0,5,128,46,0,5,0,0,8,98,128,32,0,5,128,46,0,5,0,0,10,98,128,32,0,5,128,46,0,5,0,0,12,98,128,32,0,5,128,46,0,5,0,0,14,98,128,32,0,5,128,46,0,5,0,0,16,98,128,32,0,5,128,46,0,5,0,0,18,98,128,32,0,5,128,46,0,5,0,0,20,98,128,32,0,5,0,0,22,98,128,32,0,5,128,46,0,5,0,0,24,98,128,32,0,5,128,46,0,5,0,0,26,98,128,32,0,5,128,46,0,5,0,0,28,98,128,32,0,5,128,46,0,5,0,0,30,98,128,32,0,5,128,46,0,5,0,0,32,98,128,32,0,5,128,46,0,5,0,0,34,98,128,32,0,5,128,46,0,5,0,0,36,98,128,32,0,5,128,46,0,5,0,0,38,98,128,32,0,5,128,46,0,5,0,0,40,98,128,32,0,5,128,46,0,5,0,0,42,98,128,32,0,5,128,46,0,5,0,0,44,98,128,32,0,5,128,46,0,5,0,0,46,98,128,32,0,5,128,46,0,5,0,0,48,98,128,32,0,5,128,46,0,5,0,0,50,98,128,32,0,5,128,46,0,5,0,0,52,98,128,32,0,5,128,46,0,5,0,0,54,98,128,32,0,5,128,46,0,5,0,0,56,98,128,32,0,5,0,0,58,98,128,32,0,5,0,0,60,98,128,32,0,5,128,46,0,5,0,0,62,98,128,32,0,5,128,46,0,5,0,0,64,98,128,32,0,5,128,46,0,5,0,0,66,98,128,32,0,5,128,46,0,5,0,0,68,98,128,32,0,5,128,46,0,5,0,0,70,98,128,32,0,5,128,46,0,5,0,0,72,98,128,32,0,5,128,46,0,5,0,0,74,98,128,32,0,5,0,0,76,98,128,32,0,5,128,46,0,5,0,0,78,98,128,32,0,5,128,46,0,5,0,0,80,98,128,32,0,5,0,0,82,98,128,32,0,5,128,46,0,5,0,0,84,98,128,32,0,5,128,46,0,5,0,0,86,98,128,32,0,5,128,46,0,5,0,0,88,98,128,32,0,5,128,46,0,5,0,0,90,98,128,32,0,5,128,46,0,5,0,0,92,98,128,32,0,5,0,0,94,98,128,32,0,5,0,0,96,98,128,32,0,5,0,0,98,98,128,32,0,5,0,2,100,98,0,0,102,98,128,32,0,5,0,2,104,98,0,9,104,98,0,0,106,98,128,32,0,5,0,2,108,98,7,16,108,98,0,0,110,98,128,32,0,5,0,2,112,98,7,30,112,98,0,0,114,98,128,32,0,5,0,2,116,98,7,16,116,98,0,0,118,98,128,32,0,5,0,2,120,98,7,135,120,98,0,2,4,99,0,0,6,99,128,32,0,5,0,0,8,99,128,32,0,5,0,0,10,99,128,32,0,5,0,0,12,99,128,32,0,5,0,0,14,99,128,32,0,5,0,0,16,99,128,32,0,5,0,0,18,99,128,32,0,5,0,0,20,99,128,32,0,5,0,0,22,99,128,32,0,5,0,0,24,99,128,32,0,5,0,0,26,99,128,32,0,5,0,0,28,99,128,32,0,5,0,0,30,99,128,32,0,5,0,0,32,99,128,32,0,5,0,0,34,99,128,32,0,5,0,0,36,99,128,32,0,5,0,0,38,99,128,32,0,5,0,0,40,99,128,32,0,5,0,0,42,99,128,32,0,5,0,0,44,99,128,32,0,5,0,0,46,99,128,32,0,5,0,0,48,99,128,32,0,5,0,0,50,99,128,32,0,5,0,0,52,99,128,32,0,5,0,0,54,99,128,32,0,5,0,0,56,99,128,32,0,5,0,0,58,99,128,32,0,5,128,46,0,5,0,0,60,99,128,32,0,5,0,0,62,99,128,32,0,5,0,0,64,99,128,32,0,5,0,0,66,99,128,32,0,5,0,0,68,99,128,32,0,5,0,0,70,99,128,32,0,5,0,0,72,99,128,32,0,5,0,0,74,99,128,32,0,5,0,0,76,99,128,32,0,5,0,0,78,99,128,32,0,5,0,0,80,99,128,32,0,5,0,0,82,99,128,32,0,5,0,0,84,99,128,32,0,5,0,0,86,99,128,32,0,5,0,0,88,99,128,32,0,5,0,0,90,99,128,32,0,5,0,0,92,99,128,32,0,5,0,0,94,99,128,32,0,5,0,0,96,99,128,32,0,5,0,0,98,99,128,32,0,5,0,0,100,99,128,32,0,5,0,0,102,99,128,32,0,5,0,0,104,99,128,32,0,5,0,0,106,99,128,32,0,5,0,0,108,99,128,32,0,5,0,0,110,99,128,32,0,5,0,0,112,99,128,32,0,5,0,0,114,99,128,32,0,5,0,0,116,99,128,32,0,5,0,0,118,99,128,32,0,5,0,0,120,99,128,32,0,5,0,0,122,99,128,32,0,5,0,0,124,99,128,32,0,5,0,0,126,99,128,32,0,5,0,0,128,99,128,32,0,5,0,0,130,99,128,32,0,5,0,0,132,99,128,32,0,5,0,0,134,99,128,32,0,5,0,0,136,99,128,32,0,5,0,0,138,99,128,32,0,5,0,0,140,99,128,32,0,5,0,0,142,99,128,32,0,5,0,0,144,99,128,32,0,5,0,0,146,99,128,32,0,5,0,0,148,99,128,32,0,5,0,0,150,99,128,32,0,5,0,0,152,99,128,32,0,5,0,0,154,99,128,32,0,5,0,0,156,99,128,32,0,5,0,0,158,99,128,32,0,5,0,0,160,99,128,32,0,5,0,0,162,99,128,32,0,5,0,0,164,99,128,32,0,5,0,0,166,99,128,32,0,5,0,0,168,99,128,32,0,5,0,0,170,99,128,32,0,5,0,0,172,99,128,32,0,5,0,0,174,99,128,32,0,5,0,0,176,99,128,32,0,5,0,2,4,100,0,0,6,100,128,32,0,5,0,0,8,100,0,0,10,100,128,32,0,5,0,0,12,100,128,32,0,5,0,0,14,100,128,32,0,5,0,0,16,100,128,32,0,5,128,46,0,5,0,0,18,100,128,32,0,5,0,0,20,100,128,32,0,5,0,0,22,100,128,32,0,5,0,0,24,100,128,32,0,5,0,0,26,100,128,32,0,5,0,0,28,100,128,32,0,5,128,46,0,5,0,0,30,100,128,32,0,5,0,0,32,100,128,32,0,5,128,46,0,5,0,0,34,100,128,32,0,5,0,0,36,100,128,32,0,5,0,0,38,100,128,32,0,5,0,0,40,100,128,32,0,5,0,0,42,100,128,32,0,5,0,0,44,100,128,32,0,5,0,0,46,100,128,32,0,5,128,46,0,5,0,0,48,100,128,32,0,5,0,0,50,100,0,0,52,100,128,32,0,5,128,46,0,5,0,0,54,100,128,32,0,5,0,0,56,100,128,32,0,5,0,0,58,100,128,32,0,5,0,0,60,100,128,32,0,5,0,0,62,100,128,32,0,5,0,0,64,100,128,32,0,5,0,0,66,100,128,32,0,5,0,0,68,100,128,32,0,5,128,46,0,5,0,0,70,100,128,32,0,5,0,0,72,100,128,32,0,5,0,0,74,100,128,32,0,5,0,0,76,100,128,32,0,5,128,46,0,5,0,0,78,100,128,32,0,5,0,0,80,100,128,32,0,5,0,0,82,100,128,32,0,5,0,0,84,100,128,32,0,5,0,0,86,100,0,2,4,101,0,0,6,101,128,32,0,5,128,46,0,5,0,0,8,101,128,32,0,5,0,0,10,101,128,32,0,5,0,0,12,101,128,32,0,5,128,46,0,5,0,0,14,101,128,32,0,5,128,46,0,5,0,0,16,101,128,32,0,5,0,0,18,101,2,0,24,101,128,32,0,5,0,0,26,101,128,32,0,5,128,46,0,5,0,0,28,101,128,32,0,5,128,46,0,5,0,0,30,101,128,32,0,5,128,46,0,5,0,0,32,101,128,32,0,5,0,0,34,101,0,0,36,101,128,32,0,5,0,0,38,101,128,32,0,5,0,0,40,101,128,32,0,5,0,0,42,101,0,0,44,101,128,32,0,5,0,0,46,101,0,0,48,101,128,32,0,5,0,2,50,101,7,156,50,101,0,2,51,101,7,184,51,101,0,2,4,102,0,0,6,102,128,32,0,5,128,46,0,5,128,5,0,112,0,0,8,102,128,32,0,5,128,46,0,5,0,0,10,102,128,32,0,5,128,46,0,5,0,0,12,102,0,0,14,102,128,32,0,5,128,46,0,5,0,0,16,102,128,32,0,5,128,46,0,5,0,0,18,102,128,32,0,5,128,46,0,5,0,2,20,102,7,16,20,102,0,0,22,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,24,102,7,16,24,102,0,0,26,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,28,102,128,32,0,5,0,0,30,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,32,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,34,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,36,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,38,102,7,79,38,102,0,0,40,102,128,32,0,5,128,46,0,5,0,0,42,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,44,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,46,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,48,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,50,102,2,0,54,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,56,102,7,16,56,102,0,0,58,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,60,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,62,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,64,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,66,102,0,0,68,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,70,102,7,23,70,102,0,0,72,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,74,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,76,102,2,0,80,102,0,2,82,102,7,37,82,102,0,0,84,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,86,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,88,102,128,32,0,5,128,46,0,5,0,0,90,102,2,0,96,102,128,32,0,5,128,46,0,5,0,0,98,102,128,32,0,5,128,46,0,5,0,0,100,102,0,0,102,102,128,32,0,5,128,46,0,5,0,0,104,102,0,0,106,102,0,2,108,102,7,16,108,102,0,0,110,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,112,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,114,102,128,32,0,5,128,46,0,5,0,0,116,102,2,0,128,102,128,32,0,5,128,46,0,5,0,0,130,102,0,2,132,102,7,51,132,102,0,0,134,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,136,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,138,102,2,0,142,102,0,2,144,102,7,37,144,102,0,0,146,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,148,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,150,102,2,0,158,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,160,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,162,102,2,0,166,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,168,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,170,102,0,2,172,102,7,37,172,102,0,0,174,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,176,102,128,32,0,5,0,9,176,102,7,30,176,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,37,176,102,7,51,176,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,58,176,102,7,72,176,102,128,32,0,5,0,0,178,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,180,102,7,30,180,102,0,0,182,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,184,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,186,102,0,0,188,102,0,2,190,102,7,16,190,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,23,190,102,0,30,190,102,0,0,192,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,194,102,7,16,194,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,23,194,102,0,30,194,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,37,194,102,7,79,194,102,0,0,196,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,198,102,7,44,198,102,0,0,200,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,128,5,0,112,0,2,202,102,7,16,202,102,0,0,204,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,206,102,128,16,0,5,128,30,0,5,128,44,0,5,0,2,208,102,0,9,208,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,210,102,0,2,212,102,7,30,212,102,0,0,214,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,216,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,218,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,220,102,7,16,220,102,128,32,0,5,128,46,0,5,0,0,222,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,224,102,0,2,226,102,128,32,0,5,128,46,0,5,0,9,226,102,128,32,0,5,128,46,0,5,0,0,228,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,230,102,128,32,0,5,128,46,0,5,0,0,232,102,128,32,0,5,128,46,0,5,0,2,234,102,0,9,234,102,128,32,0,5,128,46,0,5,0,16,234,102,7,44,234,102,0,0,236,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,238,102,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,240,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,242,102,2,0,246,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,248,102,7,58,248,102,0,0,250,102,128,32,0,5,128,46,0,5,0,2,252,102,0,9,252,102,0,2,4,103,0,9,4,103,0,0,6,103,128,5,0,112,0,0,8,103,128,5,0,112,128,5,0,120,0,0,10,103,0,0,12,103,128,5,0,112,0,2,14,103,7,30,14,103,0,0,16,103,128,5,0,112,0,2,18,103,7,44,18,103,0,0,20,103,128,32,0,5,0,0,22,103,0,0,24,103,128,5,0,112,0,2,26,103,7,114,26,103,0,2,27,103,7,177,27,103,0,2,28,103,0,0,30,103,0,0,32,103,2,0,128,103,0,2,130,103,7,86,130,103,0,0,132,103,128,5,0,112,0,0,134,103,128,5,0,112,0,0,136,103,0,0,138,103,128,5,0,112,0,2,140,103,7,107,140,103,0,2,141,103,7,147,142,103,0,2,143,103,7,125,155,103,0,2,4,104,0,0,6,104,0,0,8,104,2,0,148,104,128,32,0,5,0,0,150,104,2,0,154,104,128,32,0,5,0,0,156,104,2,0,208,104,0,2,4,105,0,0,6,105,0,0,8,105,2,0,66,105,128,32,0,5,0,0,68,105,2,0,132,105,128,32,0,5,0,0,134,105,0,0,136,105,0,2,4,106,0,0,6,106,0,0,8,106,2,0,118,106,0,2,4,107,0,0,6,107,0,0,8,107,2,0,142,107,0,2,4,108,0,0,6,108,0,0,8,108,2,0,138,108,0,2,4,109,0,0,6,109,0,0,8,109,2,0,104,109,0,2,4,110,0,0,6,110,0,0,8,110,2,0,152,110,0,2,4,111,0,0,6,111,0,0,8,111,2,0,152,111,0,2,4,112,0,0,6,112,0,0,8,112,2,0,40,112,128,32,0,5,0,0,42,112,2,0,68,112,128,32,0,5,0,0,70,112,2,0,78,112,128,32,0,5,0,0,80,112,2,0,90,112,128,32,0,5,0,0,92,112,128,32,0,5,0,0,94,112,128,32,0,5,0,0,96,112,128,32,0,5,0,0,98,112,2,0,108,112,128,32,0,5,0,0,110,112,128,32,0,5,0,0,112,112,2,0,152,112,128,32,0,5,0,2,4,113,0,0,6,113,0,0,8,113,2,0,158,113,0,2,160,113,7,189,161,113,0,2,162,113,7,28,163,113,0,2,164,113,7,217,165,113,0,2,166,113,7,112,167,113,0,2,168,113,7,254,168,113,0,2,170,113,7,231,171,113,0,2,172,113,7,112,173,113,0,2,174,113,7,147,175,113,0,2,176,113,7,7,177,113,0,2,178,113,7,224,179,113,0,2,180,113,7,12,182,113,0,2,183,113,7,217,184,113,0,2,185,113,7,16,185,113,0,0,187,113,128,5,0,112,128,5,0,120,0,0,189,113,128,5,0,112,0,0,191,113,128,5,0,112,0,2,193,113,7,56,194,113,0,0,196,113,128,5,0,112,0,0,198,113,128,5,0,112,0,2,200,113,7,44,200,113,0,2,201,113,7,189,202,113,0,2,203,113,7,126,204,113,0,2,205,113,7,140,206,113,0,2,207,113,7,182,208,113,0,2,209,113,7,140,210,113,0,2,211,113,7,30,211,113,0,0,213,113,128,5,0,112,0,2,215,113,0,9,215,113,0,0,217,113,128,5,0,112,0,2,219,113,7,79,219,113,0,0,221,113,128,5,0,112,0,2,223,113,7,121,223,113,0,2,224,113,7,254,224,113,0,0,226,113,128,32,0,5,128,46,0,5,0,2,228,113,7,149,228,113,0,2,229,113,7,105,230,113,0,2,231,113,0,0,233,113,128,32,0,5,0,2,235,113,7,37,235,113,0,0,237,113,128,32,0,5,0,2,239,113,7,107,239,113,0,0,241,113,128,32,0,5,0,2,243,113,7,156,243,113,0,2,244,113,7,231,245,113,0,2,246,113,7,56,247,113,0,2,248,113,7,168,249,113,0,2,4,114,0,0,6,114,0,0,8,114,2,0,132,114,0,2,4,115,0,0,6,115,0,0,8,115,2,0,54,115,128,32,0,5,0,0,56,115,2,0,70,115,128,32,0,5,0,0,72,115,2,0,84,115,128,32,0,5,0,0,86,115,2,0,130,115,0,2,132,115,7,217,133,115,0,2,4,116,0,0,6,116,0,0,8,116,2,0,102,116,128,5,0,112,0,0,104,116,2,0,118,116,128,5,0,112,0,0,120,116,128,5,0,112,0,0,122,116,128,5,0,112,0,0,124,116,2,0,146,116,128,32,0,5,0,0,148,116,2,0,192,116,128,32,0,5,0,0,194,116,0,0,196,116,0,2,198,116,7,226,198,116,0,0,200,116,128,32,0,5,0,0,202,116,128,32,0,5,128,46,0,5,0,0,204,116,128,32,0,5,0,0,206,116,128,32,0,5,0,2,208,116,7,114,208,116,0,2,209,116,7,86,209,116,0,0,211,116,128,32,0,5,0,0,213,116,0,0,215,116,128,32,0,5,0,2,217,116,0,9,217,116,0,0,219,116,128,32,0,5,0,2,221,116,7,65,221,116,0,0,223,116,128,32,0,5,0,2,225,116,7,16,225,116,0,0,227,116,128,32,0,5,0,0,229,116,128,32,0,5,0,2,231,116,7,16,231,116,0,0,233,116,128,32,0,5,0,2,235,116,7,30,235,116,0,0,237,116,128,32,0,5,0,0,239,116,0,0,241,116,128,32,0,5,128,46,0,5,0,0,243,116,128,32,0,5,128,46,0,5,0,0,245,116,0,0,247,116,128,32,0,5,128,46,0,5,0,0,249,116,0,0,251,116,128,32,0,5,128,46,0,5,0,2,253,116,7,30,253,116,0,2,4,117,7,196,5,117,0,2,6,117,7,154,7,117,0,2,8,117,7,112,9,117,0,2,10,117,7,58,10,117,0,0,12,117,128,32,0,5,0,2,14,117,0,9,14,117,0,0,16,117,128,32,0,5,0,2,18,117,7,177,18,117,0,0,20,117,128,32,0,5,0,0,22,117,128,32,0,5,0,2,24,117,7,65,24,117,0,2,25,117,7,142,25,117,0,2,26,117,7,149,26,117,0,2,27,117,7,142,27,117,0,2,28,117,7,128,28,117,0,2,29,117,7,198,29,117,0,2,30,117,7,163,30,117,0,2,31,117,0,0,33,117,128,32,0,5,0,0,35,117,128,32,0,5,0,0,37,117,128,32,0,5,0,0,39,117,128,32,0,5,0,0,41,117,128,32,0,5,0,0,43,117,128,32,0,5,0,0,45,117,128,32,0,5,0,2,47,117,0,9,47,117,0,0,49,117,128,32,0,5,0,0,51,117,128,32,0,5,0,0,53,117,128,32,0,5,0,0,55,117,128,32,0,5,0,0,57,117,128,32,0,5,0,0,59,117,0,0,61,117,128,32,0,5,0,2,63,117,7,37,63,117,0,0,65,117,128,32,0,5,0,0,67,117,0,0,69,117,128,32,0,5,0,0,71,117,128,32,0,5,0,0,73,117,128,32,0,5,0,2,75,117,7,23,75,117,0,2,76,117,7,254,76,117,0,2,78,117,7,233,78,117,0,2,79,117,7,145,81,117,0,0,83,117,128,32,0,5,0,2,85,117,7,191,85,117,0,0,87,117,128,32,0,5,0,2,89,117,7,184,89,117,0,0,91,117,128,32,0,5,0,2,93,117,7,163,93,117,0,2,94,117,7,254,94,117,0,2,96,117,7,126,97,117,0,2,98,117,0,0,100,117,2,0,238,117,0,2,4,118,7,247,4,118,0,2,5,118,7,198,5,118,0,0,7,118,128,32,0,5,0,2,9,118,7,142,9,118,0,0,11,118,128,32,0,5,0,2,13,118,7,65,13,118,0,0,15,118,128,32,0,5,0,2,17,118,7,51,17,118,0,2,18,118,7,44,18,118,0,0,20,118,128,32,0,5,0,2,22,118,7,135,22,118,0,0,24,118,128,32,0,5,0,2,26,118,7,65,26,118,0,0,28,118,128,32,0,5,0,2,30,118,7,156,30,118,0,0,32,118,128,32,0,5,0,2,34,118,7,86,34,118,0,0,36,118,128,32,0,5,0,2,38,118,7,231,39,118,0,2,40,118,7,238,41,118,0,2,42,118,7,28,43,118,0,0,45,118,128,32,0,5,0,2,47,118,7,44,47,118,0,0,49,118,128,32,0,5,0,2,51,118,7,58,51,118,0,2,52,118,7,164,55,118,0,2,56,118,7,254,56,118,0,2,58,118,0,0,60,118,128,32,0,5,0,0,62,118,128,32,0,5,0,0,64,118,128,32,0,5,0,0,66,118,128,32,0,5,0,0,68,118,128,32,0,5,0,0,70,118,128,32,0,5,0,0,72,118,128,32,0,5,0,0,74,118,128,32,0,5,0,0,76,118,128,32,0,5,0,0,78,118,128,32,0,5,0,0,80,118,128,32,0,5,0,0,82,118,128,32,0,5,0,0,84,118,128,32,0,5,0,0,86,118,128,32,0,5,0,0,88,118,128,32,0,5,0,0,90,118,128,32,0,5,0,0,92,118,128,32,0,5,0,0,94,118,128,32,0,5,0,0,96,118,128,32,0,5,0,0,98,118,128,32,0,5,0,0,100,118,128,32,0,5,0,0,102,118,128,32,0,5,0,0,104,118,128,32,0,5,0,0,106,118,128,32,0,5,0,0,108,118,128,32,0,5,0,0,110,118,128,32,0,5,0,0,112,118,128,32,0,5,0,0,114,118,128,32,0,5,0,0,116,118,128,32,0,5,0,0,118,118,128,32,0,5,0,0,120,118,128,32,0,5,0,0,122,118,128,32,0,5,0,0,124,118,128,32,0,5,0,0,126,118,128,32,0,5,0,0,128,118,128,32,0,5,0,0,130,118,128,32,0,5,0,0,132,118,128,32,0,5,0,0,134,118,128,32,0,5,0,0,136,118,128,32,0,5,0,0,138,118,128,32,0,5,0,0,140,118,128,32,0,5,0,0,142,118,128,32,0,5,0,0,144,118,128,32,0,5,0,0,146,118,128,32,0,5,0,0,148,118,128,32,0,5,0,0,150,118,128,32,0,5,0,0,152,118,128,32,0,5,0,0,154,118,128,32,0,5,0,0,156,118,128,32,0,5,0,0,158,118,128,32,0,5,0,0,160,118,128,32,0,5,0,0,162,118,128,32,0,5,0,0,164,118,128,32,0,5,0,0,166,118,128,32,0,5,0,0,168,118,128,32,0,5,0,0,170,118,128,32,0,5,0,0,172,118,128,32,0,5,0,0,174,118,128,32,0,5,0,0,176,118,128,32,0,5,0,0,178,118,128,32,0,5,0,0,180,118,128,32,0,5,0,0,182,118,128,32,0,5,0,0,184,118,128,32,0,5,0,0,186,118,128,32,0,5,0,0,188,118,128,32,0,5,0,0,190,118,128,32,0,5,0,0,192,118,128,32,0,5,0,0,194,118,128,32,0,5,0,0,196,118,128,32,0,5,0,0,198,118,128,32,0,5,0,0,200,118,128,32,0,5,0,0,202,118,128,32,0,5,0,0,204,118,128,32,0,5,0,0,206,118,128,32,0,5,0,0,208,118,128,32,0,5,0,0,210,118,128,32,0,5,0,0,212,118,128,32,0,5,0,0,214,118,128,32,0,5,0,0,216,118,128,32,0,5,0,0,218,118,128,32,0,5,0,0,220,118,128,32,0,5,0,0,222,118,128,32,0,5,0,0,224,118,128,32,0,5,0,0,226,118,128,32,0,5,0,0,228,118,128,32,0,5,0,0,230,118,128,32,0,5,0,2,232,118,0,9,232,118,128,32,0,5,0,16,232,118,128,32,0,5,0,23,232,118,128,32,0,5,0,30,232,118,128,32,0,5,0,37,232,118,128,32,0,5,0,44,232,118,128,32,0,5,0,51,232,118,128,32,0,5,0,58,232,118,128,32,0,5,0,65,232,118,128,32,0,5,0,72,232,118,128,32,0,5,0,79,232,118,128,32,0,5,0,86,232,118,128,32,0,5,0,93,232,118,128,32,0,5,0,100,232,118,128,32,0,5,0,107,232,118,128,32,0,5,0,114,232,118,128,32,0,5,0,121,232,118,128,32,0,5,0,128,232,118,128,32,0,5,0,135,232,118,128,32,0,5,0,142,232,118,128,32,0,5,0,149,232,118,128,32,0,5,0,156,232,118,128,32,0,5,0,163,232,118,128,32,0,5,0,170,232,118,128,32,0,5,0,177,232,118,128,32,0,5,0,184,232,118,128,32,0,5,0,191,232,118,128,32,0,5,0,198,232,118,128,32,0,5,0,205,232,118,128,32,0,5,0,212,232,118,128,32,0,5,0,219,232,118,128,32,0,5,0,226,232,118,128,32,0,5,0,233,232,118,128,32,0,5,0,240,232,118,128,32,0,5,0,247,232,118,128,32,0,5,0,254,232,118,128,32,0,5,0,2,234,118,7,125,253,118,0,2,254,118,7,184,254,118,0,2,4,119,0,0,6,119,128,5,0,112,0,0,8,119,128,5,0,112,128,5,0,120,0,0,10,119,128,32,0,5,128,5,0,112,0,0,12,119,128,5,0,112,128,5,0,116,128,5,0,120,128,5,0,124,0,2,14,119,7,23,14,119,0,0,16,119,128,5,0,112,128,5,0,116,128,5,0,120,128,5,0,124,0,2,18,119,0,9,18,119,0,0,20,119,128,5,0,112,0,0,22,119,128,5,0,112,128,5,0,117,128,5,0,122,0,0,24,119,128,5,0,112,128,5,0,120,0,0,26,119,128,5,0,112,0,0,28,119,0,0,30,119,128,5,0,112,0,0,32,119,128,32,0,5,128,5,0,112,0,0,34,119,0,0,36,119,128,5,0,112,0,0,38,119,0,0,40,119,128,5,0,112,128,5,0,115,128,5,0,118,128,5,0,121,128,5,0,124,0,0,42,119,0,0,44,119,128,5,0,112,128,5,0,120,0,0,46,119,128,5,0,112,128,5,0,120,0,2,48,119,0,9,48,119,0,0,50,119,128,5,0,112,128,5,0,120,0,0,52,119,128,32,0,5,128,5,0,112,0,0,54,119,128,5,0,112,0,2,56,119,7,100,56,119,0,0,58,119,128,5,0,112,128,5,0,120,0,2,60,119,0,0,62,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,64,119,128,32,0,5,0,0,66,119,128,32,0,5,0,0,68,119,128,32,0,5,0,0,70,119,128,32,0,5,0,0,72,119,128,32,0,5,0,0,74,119,128,32,0,5,0,0,76,119,128,32,0,5,0,0,78,119,128,32,0,5,128,5,0,112,128,32,0,112,128,5,0,120,128,32,0,120,0,0,80,119,128,32,0,5,0,0,82,119,128,32,0,5,0,0,84,119,128,32,0,5,0,0,86,119,128,32,0,5,0,0,88,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,90,119,128,32,0,5,0,0,92,119,128,32,0,5,0,0,94,119,128,32,0,5,0,0,96,119,128,32,0,5,0,0,98,119,128,32,0,5,0,0,100,119,128,32,0,5,0,0,102,119,128,32,0,5,0,0,104,119,128,32,0,5,0,0,106,119,128,32,0,5,0,0,108,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,110,119,128,32,0,5,128,5,0,112,128,32,0,112,128,5,0,120,128,32,0,120,0,0,112,119,128,32,0,5,0,0,114,119,128,32,0,5,0,0,116,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,118,119,128,32,0,5,0,0,120,119,128,32,0,5,0,0,122,119,128,32,0,5,0,0,124,119,128,32,0,5,0,0,126,119,128,32,0,5,0,0,128,119,128,32,0,5,0,0,130,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,132,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,134,119,128,32,0,5,0,0,136,119,128,32,0,5,0,0,138,119,128,32,0,5,0,0,140,119,128,32,0,5,0,0,142,119,128,32,0,5,0,2,144,119,0,0,146,119,128,5,0,112,0,0,148,119,0,0,150,119,128,5,0,112,0,2,152,119,0,9,152,119,0,0,154,119,128,5,0,112,0,0,156,119,128,5,0,112,0,0,158,119,128,5,0,112,0,0,160,119,128,5,0,112,0,0,162,119,128,5,0,112,0,0,164,119,128,5,0,112,0,0,166,119,0,0,168,119,128,5,0,112,0,0,170,119,128,5,0,112,0,0,172,119,128,5,0,112,0,0,174,119,128,5,0,112,0,0,176,119,128,5,0,112,0,0,178,119,128,5,0,112,0,2,180,119,7,23,180,119,0,0,182,119,128,5,0,112,0,0,184,119,128,5,0,112,0,0,186,119,128,5,0,112,0,0,188,119,128,5,0,112,0,0,190,119,0,0,192,119,128,5,0,112,0,2,194,119,7,16,194,119,0,0,196,119,128,5,0,112,0,0,198,119,128,5,0,112,0,0,200,119,128,5,0,112,0,0,202,119,128,5,0,112,0,0,204,119,128,5,0,112,0,2,206,119,7,16,206,119,0,0,208,119,128,5,0,112,0,0,210,119,128,5,0,112,0,0,212,119,128,5,0,112,0,0,214,119,128,5,0,112,0,2,216,119,0,9,216,119,0,2,4,120,7,86,4,120,0,0,6,120,128,32,0,5,0,2,8,120,7,114,8,120,0,0,10,120,128,32,0,5,0,2,12,120,7,135,12,120,0,0,14,120,128,32,0,5,0,2,16,120,7,128,16,120,0,0,18,120,128,32,0,5,0,2,20,120,7,65,20,120,0,0,22,120,128,32,0,5,0,2,24,120,7,30,24,120,0,0,26,120,128,32,0,5,0,0,28,120,0,0,30,120,128,32,0,5,0,2,32,120,7,30,32,120,0,0,34,120,128,32,0,5,0,2,36,120,7,58,36,120,0,0,38,120,128,32,0,5,0,2,40,120,7,16,40,120,0,0,42,120,128,32,0,5,0,2,44,120,7,149,44,120,0,0,46,120,128,32,0,5,0,0,48,120,0,0,50,120,128,32,0,5,0,2,52,120,7,49,53,120,0,0,55,120,128,32,0,5,0,2,57,120,7,149,57,120,0,0,59,120,128,32,0,5,0,2,61,120,7,30,61,120,0,0,63,120,128,32,0,5,0,2,65,120,7,37,65,120,0,0,67,120,128,32,0,5,0,2,69,120,7,91,70,120,0,0,72,120,128,32,0,5,0,0,74,120,128,32,0,5,0,2,76,120,7,227,93,120,0,2,94,120,7,212,94,120,0,2,95,120,7,111,100,120,0,2,101,120,0,0,103,120,128,32,0,5,0,0,105,120,128,32,0,5,0,0,107,120,128,32,0,5,0,0,109,120,128,32,0,5,0,0,111,120,128,32,0,5,0,0,113,120,128,32,0,5,0,0,115,120,128,32,0,5,0,0,117,120,128,32,0,5,0,0,119,120,128,32,0,5,0,0,121,120,128,32,0,5,0,0,123,120,128,32,0,5,0,0,125,120,128,32,0,5,0,0,127,120,128,32,0,5,0,0,129,120,128,32,0,5,0,0,131,120,128,32,0,5,0,0,133,120,128,32,0,5,0,0,135,120,128,32,0,5,0,0,137,120,128,32,0,5,0,0,139,120,128,32,0,5,0,0,141,120,128,32,0,5,0,0,143,120,128,32,0,5,0,0,145,120,128,32,0,5,0,0,147,120,128,32,0,5,0,0,149,120,128,32,0,5,0,0,151,120,128,32,0,5,0,0,153,120,128,32,0,5,0,0,155,120,128,32,0,5,0,0,157,120,128,32,0,5,0,0,159,120,128,32,0,5,0,0,161,120,128,32,0,5,0,0,163,120,128,32,0,5,0,0,165,120,128,32,0,5,0,2,167,120,0,0,169,120,128,32,0,5,0,0,171,120,128,32,0,5,0,0,173,120,128,32,0,5,0,0,175,120,128,32,0,5,0,0,177,120,128,32,0,5,0,0,179,120,128,32,0,5,0,0,181,120,128,32,0,5,0,0,183,120,128,32,0,5,0,0,185,120,128,32,0,5,0,0,187,120,128,32,0,5,0,0,189,120,128,32,0,5,0,0,191,120,128,32,0,5,0,0,193,120,128,32,0,5,0,0,195,120,128,32,0,5,0,0,197,120,128,32,0,5,0,0,199,120,128,32,0,5,0,0,201,120,128,32,0,5,0,0,203,120,128,32,0,5,0,0,205,120,128,32,0,5,0,0,207,120,128,32,0,5,0,0,209,120,128,32,0,5,0,0,211,120,128,32,0,5,0,0,213,120,128,32,0,5,0,0,215,120,128,32,0,5,0,0,217,120,128,32,0,5,0,0,219,120,128,32,0,5,0,0,221,120,128,32,0,5,0,0,223,120,128,32,0,5,0,0,225,120,128,32,0,5,0,0,227,120,128,32,0,5,0,0,229,120,128,32,0,5,0,0,231,120,128,32,0,5,0,0,233,120,128,32,0,5,0,0,235,120,128,32,0,5,0,2,237,120,0,2,4,121,0,0,6,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,8,121,128,32,0,5,128,46,0,5,0,0,10,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,12,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,14,121,128,32,0,5,128,46,0,5,0,0,16,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,18,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,20,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,22,121,128,32,0,5,128,46,0,5,0,0,24,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,26,121,128,32,0,5,128,46,0,5,0,0,28,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,30,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,32,121,128,32,0,5,128,46,0,5,0,0,34,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,36,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,38,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,40,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,42,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,44,121,0,0,46,121,128,32,0,5,0,0,48,121,128,32,0,5,0,2,50,121,7,23,50,121,0,0,52,121,128,32,0,5,128,46,0,5,0,0,54,121,0,0,56,121,128,32,0,5,0,0,58,121,128,32,0,5,0,0,60,121,128,32,0,5,0,0,62,121,0,0,64,121,128,32,0,5,0,0,66,121,128,32,0,5,128,46,0,5,0,0,68,121,128,32,0,5,0,0,70,121,128,32,0,5,0,2,72,121,7,16,72,121,0,0,74,121,128,32,0,5,0,0,76,121,0,0,78,121,128,32,0,5,0,0,80,121,0,0,82,121,128,32,0,5,0,0,84,121,128,32,0,5,0,0,86,121,128,32,0,5,0,0,88,121,128,32,0,5,0,0,90,121,128,32,0,5,0,2,92,121,7,16,92,121,128,32,0,5,0,23,92,121,7,44,92,121,128,32,0,5,0,51,92,121,7,114,92,121,128,32,0,5,0,121,92,121,7,163,92,121,128,32,0,5,0,170,92,121,7,198,92,121,128,32,0,5,0,205,92,121,7,14,93,121,0,0,95,121,128,32,0,5,0,0,97,121,128,32,0,5,0,0,99,121,128,32,0,5,0,2,101,121,7,247,101,121,128,32,0,5,128,46,0,5,0,0,103,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,105,121,128,32,0,5,128,46,0,5,0,0,107,121,128,32,0,5,128,46,0,5,0,0,109,121,128,32,0,5,128,46,0,5,0,0,111,121,128,32,0,5,128,46,0,5,0,0,113,121,128,32,0,5,128,46,0,5,0,0,115,121,128,32,0,5,128,46,0,5,0,0,117,121,128,32,0,5,128,46,0,5,0,0,119,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,121,121,128,32,0,5,128,46,0,5,0,0,123,121,128,32,0,5,128,46,0,5,0,0,125,121,128,32,0,5,128,46,0,5,0,0,127,121,128,32,0,5,128,46,0,5,0,0,129,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,131,121,128,32,0,5,128,46,0,5,0,0,133,121,128,32,0,5,128,46,0,5,0,0,135,121,128,32,0,5,128,46,0,5,0,0,137,121,128,32,0,5,128,46,0,5,0,0,139,121,128,32,0,5,128,46,0,5,0,0,141,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,143,121,128,32,0,5,128,46,0,5,0,2,145,121,7,93,145,121,0,0,147,121,128,32,0,5,0,0,149,121,128,32,0,5,0,0,151,121,2,0,155,121,128,32,0,5,0,2,157,121,7,51,157,121,0,0,159,121,128,32,0,5,0,0,161,121,128,32,0,5,0,0,163,121,0,0,165,121,128,32,0,5,0,2,167,121,7,58,167,121,0,0,169,121,128,32,0,5,0,0,171,121,2,0,175,121,128,32,0,5,0,2,177,121,7,198,177,121,0,0,179,121,2,0,183,121,128,32,0,5,128,46,0,5,0,0,185,121,128,32,0,5,0,0,187,121,128,32,0,5,128,46,0,5,0,0,189,121,128,32,0,5,128,46,0,5,0,0,191,121,2,0,195,121,128,32,0,5,128,46,0,5,0,0,197,121,128,32,0,5,128,46,0,5,0,0,199,121,128,32,0,5,128,46,0,5,0,0,201,121,128,32,0,5,128,46,0,5,0,0,203,121,128,32,0,5,128,46,0,5,0,0,205,121,128,32,0,5,128,46,0,5,0,0,207,121,0,0,209,121,128,32,0,5,0,0,211,121,2,0,231,121,0,2,233,121,7,23,233,121,0,0,235,121,128,32,0,5,0,0,237,121,128,32,0,5,0,2,239,121,7,16,239,121,0,0,241,121,128,32,0,5,0,0,243,121,0,0,245,121,128,32,0,5,0,2,247,121,7,30,247,121,128,32,0,5,0,37,247,121,7,58,247,121,128,32,0,5,0,65,247,121,0,72,247,121,128,32,0,5,0,79,247,121,7,100,247,121,128,32,0,5,0,107,247,121,0,114,247,121,128,32,0,5,0,121,247,121,7,240,247,121,128,32,0,5,0,247,247,121,128,32,0,5,0,254,247,121,7,173,249,121,0,2,4,122,0,0,6,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,8,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,10,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,12,122,0,0,14,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,16,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,18,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,20,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,22,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,24,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,26,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,28,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,30,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,32,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,34,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,36,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,38,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,40,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,42,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,44,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,46,122,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,48,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,50,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,52,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,54,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,56,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,58,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,60,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,62,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,64,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,66,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,68,122,128,3,0,5,128,5,0,5,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,70,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,72,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,74,122,128,3,0,5,128,5,0,5,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,76,122,128,16,0,5,128,30,0,5,128,44,0,5,0,0,78,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,80,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,82,122,128,3,0,5,128,5,0,5,128,16,0,5,128,22,0,5,128,28,0,5,128,34,0,5,128,40,0,5,128,46,0,5,128,52,0,5,0,0,84,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,86,122,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,88,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,90,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,92,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,94,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,96,122,128,3,0,5,128,5,0,5,128,16,0,5,128,30,0,5,128,44,0,5,0,0,98,122,128,3,0,5,128,5,0,5,128,16,0,5,128,30,0,5,128,44,0,5,0,0,100,122,128,3,0,5,128,5,0,5,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,102,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,104,122,7,219,111,122,0,2,4,123,0,0,6,123,128,5,0,112,0,0,8,123,128,32,0,5,0,0,10,123,2,0,20,123,128,32,0,5,0,0,22,123,2,0,28,123,128,32,0,5,128,5,0,112,0,0,30,123,128,32,0,5,0,0,32,123,2,0,36,123,128,32,0,5,0,0,38,123,128,5,0,112,0,0,40,123,2,0,58,123,128,5,0,112,0,0,60,123,2,0,70,123,128,5,0,112,0,0,72,123,128,5,0,112,0,0,74,123,0,0,76,123,128,32,0,5,0,0,78,123,0,0,80,123,128,5,0,112,0,0,82,123,128,5,0,112,0,0,84,123,0,0,86,123,128,5,0,112,0,0,88,123,2,0,106,123,128,5,0,112,128,32,0,112,0,0,108,123,128,5,0,112,128,5,0,120,0,0,110,123,2,0,116,123,0,2,118,123,7,29,150,123,0,2,151,123,7,77,152,123,0,2,153,123,7,37,153,123,0,0,155,123,128,32,0,5,0,2,157,123,7,79,157,123,0,0,159,123,128,32,0,5,0,2,161,123,7,114,161,123,0,0,163,123,128,32,0,5,0,2,165,123,7,184,165,123,0,0,167,123,128,32,0,5,0,2,169,123,7,47,171,123,0,2,172,123,0,9,172,123,0,0,174,123,128,32,0,5,0,0,176,123,128,32,0,5,0,0,178,123,128,32,0,5,0,0,180,123,128,32,0,5,0,0,182,123,128,32,0,5,0,0,184,123,128,32,0,5,0,0,186,123,128,32,0,5,0,0,188,123,128,32,0,5,0,0,190,123,128,32,0,5,0,0,192,123,128,32,0,5,0,0,194,123,128,32,0,5,0,0,196,123,128,32,0,5,0,0,198,123,128,32,0,5,0,0,200,123,128,32,0,5,0,0,202,123,128,32,0,5,0,0,204,123,128,32,0,5,0,0,206,123,128,32,0,5,0,0,208,123,128,32,0,5,0,0,210,123,128,32,0,5,0,0,212,123,128,32,0,5,0,0,214,123,128,32,0,5,0,0,216,123,128,32,0,5,0,0,218,123,128,32,0,5,0,0,220,123,128,32,0,5,0,0,222,123,128,32,0,5,0,0,224,123,128,32,0,5,0,0,226,123,128,32,0,5,0,0,228,123,128,32,0,5,0,0,230,123,128,32,0,5,0,0,232,123,128,32,0,5,0,0,234,123,128,32,0,5,0,0,236,123,128,32,0,5,0,2,238,123,7,147,239,123,0,2,240,123,7,124,242,123,0,2,243,123,7,105,244,123,0,2,245,123,7,56,246,123,0,2,247,123,7,205,247,123,0,2,248,123,7,91,249,123,0,2,250,123,7,184,250,123,0,2,251,123,7,247,251,123,0,2,252,123,7,191,252,123,0,2,4,124,0,0,6,124,128,32,0,5,0,0,8,124,128,32,0,5,0,0,10,124,128,32,0,5,0,0,12,124,128,32,0,5,0,0,14,124,128,32,0,5,0,0,16,124,128,32,0,5,0,0,18,124,128,32,0,5,0,0,20,124,128,32,0,5,0,0,22,124,128,32,0,5,0,0,24,124,128,32,0,5,0,0,26,124,128,32,0,5,0,0,28,124,128,32,0,5,0,0,30,124,128,32,0,5,0,0,32,124,128,32,0,5,0,0,34,124,128,32,0,5,0,0,36,124,128,32,0,5,0,0,38,124,128,32,0,5,0,0,40,124,128,32,0,5,0,0,42,124,128,32,0,5,0,0,44,124,128,32,0,5,0,0,46,124,128,32,0,5,0,0,48,124,128,32,0,5,0,0,50,124,128,32,0,5,0,0,52,124,128,32,0,5,0,0,54,124,128,32,0,5,0,0,56,124,128,32,0,5,0,0,58,124,128,32,0,5,0,0,60,124,128,32,0,5,0,0,62,124,128,32,0,5,0,0,64,124,128,32,0,5,0,0,66,124,128,32,0,5,0,0,68,124,128,32,0,5,0,0,70,124,128,32,0,5,0,0,72,124,128,32,0,5,0,0,74,124,128,32,0,5,0,0,76,124,128,32,0,5,0,0,78,124,128,32,0,5,0,0,80,124,128,32,0,5,0,0,82,124,128,32,0,5,0,0,84,124,128,32,0,5,0,2,86,124,7,84,87,124,0,2,88,124,7,213,91,124,0,2,92,124,7,212,92,124,0,2,93,124,7,28,94,124,0,2,95,124,7,112,96,124,0,2,97,124,7,177,97,124,0,2,98,124,7,219,98,124,0,2,99,124,7,209,104,124,0,2,105,124,7,103,114,124,0,2,115,124,7,133,116,124,0,2,117,124,7,205,117,124,0,2,118,124,7,205,118,124,0,2,119,124,7,63,120,124,0,0,122,124,128,5,0,112,0,2,124,124,7,44,124,124,0,2,125,124,7,93,125,124,0,0,127,124,128,32,0,5,0,2,129,124,7,51,129,124,0,2,130,124,0,0,132,124,128,32,0,5,0,0,134,124,128,32,0,5,0,2,136,124,0,9,136,124,0,0,138,124,128,32,0,5,0,2,140,124,7,23,140,124,0,0,142,124,128,32,0,5,0,0,144,124,128,32,0,5,0,0,146,124,128,32,0,5,0,0,148,124,128,32,0,5,0,0,150,124,128,32,0,5,0,2,152,124,7,37,152,124,0,0,154,124,128,32,0,5,0,2,156,124,0,2,157,124,7,149,157,124,0,2,158,124,7,156,158,124,0,2,159,124,7,156,159,124,0,2,160,124,7,135,160,124,0,2,161,124,7,128,161,124,0,2,162,124,7,51,162,124,128,32,0,5,0,58,162,124,7,72,162,124,128,32,0,5,0,79,162,124,7,156,162,124,0,2,163,124,7,51,163,124,0,0,165,124,128,5,0,112,0,2,167,124,7,191,167,124,0,2,168,124,0,0,170,124,128,32,0,5,0,0,172,124,128,32,0,5,0,0,174,124,0,0,176,124,128,32,0,5,0,2,178,124,7,44,178,124,0,0,180,124,128,32,0,5,128,5,0,112,0,0,182,124,0,0,184,124,128,32,0,5,128,5,0,112,0,0,186,124,0,0,188,124,128,32,0,5,128,5,0,112,0,0,190,124,128,32,0,5,0,0,192,124,0,0,194,124,128,32,0,5,128,5,0,112,0,2,196,124,7,121,196,124,0,0,198,124,128,5,0,112,0,2,200,124,7,16,200,124,0,2,201,124,7,56,202,124,0,2,203,124,7,149,203,124,0,2,204,124,7,212,204,124,0,2,205,124,7,56,206,124,0,2,207,124,7,208,237,124,0,2,4,125,7,133,33,125,0,2,34,125,0,0,36,125,128,5,0,112,0,0,38,125,128,5,0,112,0,0,40,125,128,5,0,112,0,0,42,125,128,5,0,112,0,0,44,125,128,5,0,112,0,0,46,125,128,5,0,112,0,0,48,125,128,5,0,112,128,5,0,120,0,0,50,125,128,5,0,112,0,0,52,125,128,5,0,112,0,0,54,125,128,5,0,112,128,5,0,120,0,0,56,125,128,5,0,112,128,5,0,120,0,0,58,125,128,5,0,112,128,5,0,120,0,0,60,125,128,5,0,112,0,0,62,125,128,5,0,112,0,0,64,125,128,5,0,112,0,0,66,125,128,5,0,112,128,5,0,117,128,5,0,122,0,0,68,125,128,5,0,112,0,0,70,125,128,5,0,112,0,0,72,125,128,5,0,112,0,0,74,125,128,5,0,112,128,5,0,120,0,0,76,125,128,5,0,112,128,5,0,120,0,0,78,125,128,5,0,112,0,0,80,125,128,5,0,112,0,2,82,125,7,23,82,125,0,2,83,125,7,19,99,125,0,2,100,125,2,112,154,125,0,2,155,125,7,234,165,125,0,2,166,125,7,244,178,125,0,2,2,126,0,2,2,251,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,4,2,251,2,6,2,251,128,38,0,5,0,8,2,251,2,10,2,251,128,16,0,5,128,27,0,5,0,12,2,251,2,32,2,251,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,34,2,251,128,27,0,5,128,38,0,5,0,36,2,251,128,27,0,5,128,38,0,5,0,38,2,251,2,42,2,251,128,16,0,5,0,44,2,251,2,132,2,251,128,38,0,5,0,134,2,251,2,60,4,251,128,16,0,5,0,62,4,251,2,82,4,251,128,27,0,5,128,38,0,5,128,49,0,5,0,84,4,251,2,200,4,251,128,16,0,5,128,5,0,112,0,202,4,251,2,252,4,251,128,16,0,5,0,254,4,251,2,26,6,251,128,16,0,5,128,38,0,5,128,5,0,112,0,28,6,251,128,16,0,5,0,30,6,251,128,16,0,5,0,32,6,251,2,48,6,251,128,16,0,5,128,27,0,5,0,50,6,251,2,248,7,251,128,16,0,5,0,250,7,251,2,74,8,251,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,76,8,251,2,96,8,251,128,16,0,5,128,27,0,5,0,98,8,251,2,232,8,251,128,16,0,5,0,234,8,251,2,250,8,251,128,49,0,5,0,252,8,251,2,68,10,251,128,16,0,5,128,38,0,5,0,70,10,251,128,16,0,5,0,72,10,251,2,180,10,251,128,16,0,5,0,182,10,251,128,49,0,5,0,184,10,251,2,40,11,251,128,16,0,5,128,27,0,5,0,42,11,251,2,72,11,251,128,16,0,5,128,27,0,5,0,74,11,251,2,90,11,251,128,49,0,5,0,92,11,251,2,70,24,251,128,27,0,5,0,72,24,251,2,4,26,251,128,16,0,5,0,6,26,251,2,188,27,251,128,16,0,5,0,190,27,251,2,74,28,251,128,16,0,5,128,27,0,5,0,76,28,251,2,80,28,251,128,16,0,5,128,27,0,5,0,82,28,251,2,104,29,251,128,16,0,5,128,5,0,112,0,106,29,251,2,162,29,251,128,49,0,5,0,164,29,251,2,74,30,251,128,16,0,5,0,76,30,251,2,88,30,251,128,27,0,5,0,90,30,251,2,62,31,251,128,16,0,5,0,64,31,251,2,196,33,251,128,16,0,5,128,5,0,112,0,198,33,251,2,200,34,251,128,16,0,5,0,202,34,251,2,132,35,251,128,16,0,5,128,5,0,112,0,134,35,251,2,136,35,251,128,16,0,5,0,138,35,251,2,90,36,251,128,49,0,5,0,92,36,251,2,172,37,251,128,49,0,5,0,174,37,251,2,126,39,251,128,49,0,5,0,128,39,251,2,8,42,251,128,16,0,5,0,10,42,251,2,114,42,251,128,16,0,5,128,27,0,5,0,116,42,251,2,206,43,251,128,16,0,5,0,208,43,251,2,244,44,251,128,16,0,5,0,246,44,251,2,234,45,251,128,16,0,5,0,236,45,251,2,82,46,251,128,16,0,5,0,84,46,251,2,118,47,251,128,16,0,5,0,120,47,251,2,134,47,251,128,27,0,5,0,136,47,251,2,180,47,251,128,16,0,5,128,27,0,5,0,182,47,251,2,186,47,251,128,16,0,5,0,188,47,251,2,52,48,251,128,16,0,5,128,27,0,5,0,54,48,251,2,44,49,251,128,16,0,5,128,5,0,112,0,46,49,251,2,240,49,251,128,16,0,5,128,5,0,112,0,242,49,251,2,26,50,251,128,27,0,5,0,28,50,251,2,178,50,251,128,16,0,5,128,5,0,112,0,180,50,251,2,120,53,251,128,16,0,5,0,122,53,251,2,122,54,251,128,16,0,5,0,124,54,251,2,132,54,251,128,49,0,5,0,134,54,251,2,112,56,251,128,16,0,5,0,114,56,251,2,150,56,251,128,27,0,5,0,152,56,251,2,158,56,251,128,27,0,5,128,49,0,5,0,160,56,251,2,246,56,251,128,49,0,5,0,248,56,251,2,2,57,251,128,16,0,5,128,27,0,5,0,4,57,251,2,200,57,251,128,49,0,5,0,202,57,251,2,28,59,251,128,16,0,5,0,30,59,251,2,60,59,251,128,49,0,5,0,62,59,251,2,180,64,251,128,27,0,5,0,182,64,251,2,142,67,251,128,49,0,5,0,144,67,251,2,76,83,251,128,16,0,5,0,78,83,251,2,90,83,251,128,16,0,5,128,27,0,5,128,38,0,5,0,92,83,251,2,186,85,251,128,16,0,5,128,27,0,5,0,188,85,251,2,12,86,251,128,38,0,5,0,14,86,251,2,220,99,251,128,16,0,5,0,222,99,251,2,234,99,251,128,49,0,5,0,236,99,251,2,178,100,251,128,16,0,5,0,180,100,251,2,232,100,251,128,16,0,5,0,234,100,251,2,136,101,251,128,16,0,5,0,138,101,251,2,154,101,251,128,49,0,5,0,156,101,251,2,182,101,251,128,27,0,5,0,184,101,251,2,204,102,251,128,16,0,5,128,49,0,5,0,206,102,251,2,208,102,251,128,38,0,5,128,49,0,5,0,210,102,251,2,100,106,251,128,16,0,5,128,27,0,5,0,102,106,251,2,108,119,251,128,16,0,5,0,110,119,251,2,146,119,251,128,49,0,5,0,148,119,251,2,232,119,251,128,16,0,5,128,27,0,5,0,234,119,251,2,174,121,251,128,16,0,5,0,176,121,251,2,208,121,251,128,16,0,5,0,210,121,251,2,86,122,251,128,27,0,5,0,88,122,251,2,22,128,251,128,16,0,5,0,24,128,251,2,34,129,251,128,16,0,5,128,5,0,112,128,5,0,120,0,36,129,251,2,144,130,251,128,16,0,5,128,5,0,112,0,146,130,251,128,16,0,5,128,5,0,112,0,148,130,251,2,192,131,251,128,16,0,5,0,194,131,251,2,8,135,251,128,16,0,5,0,10,135,251,2,128,135,251,128,16,0,5,0,130,135,251,2,66,147,251,128,16,0,5,0,68,147,251,2,210,147,251,128,16,0,5,0,212,147,251,2,228,147,251,128,27,0,5,128,49,0,5,0,230,147,251,2,132,148,251,128,16,0,5,0,134,148,251,2,136,148,251,128,16,0,5,0,138,148,251,2,20,149,251,128,16,0,5,0,22,149,251,2,170,153,251,128,16,0,5,0,172,153,251,128,49,0,5,0,174,153,251,2,92,154,251,128,16,0,5,0,94,154,251,2,106,154,251,128,27,0,5,0,108,154,251,2,218,154,251,128,16,0,5,0,220,154,251,2,254,159,251,128,16,0,5,0,2,160,251,2,102,160,251,128,16,0,5,0,104,160,251,2,108,161,251,128,16,0,5,0,110,161,251,2,130,161,251,128,49,0,5,0,132,161,251,2,216,161,251,128,16,0,5,0,218,161,251,2,210,164,251,128,16,0,5,128,5,0,112,0,212,164,251,128,16,0,5,0,214,164,251,2,122,165,251,128,16,0,5,0,124,165,251,2,88,166,251,128,16,0,5,0,90,166,251,2,8,167,251,128,49,0,5,0,10,167,251,2,156,167,251,128,27,0,5,0,158,167,251,2,252,169,251,128,16,0,5,128,5,0,112,0,254,169,251,128,16,0,5,0,2,170,251,2,76,188,251,128,16,0,5,0,78,188,251,2,100,188,251,128,49,0,5,0,102,188,251,2,162,190,251,128,16,0,5,0,164,190,251,2,156,191,251,128,16,0,5,128,49,0,5,0,158,191,251,128,16,0,5,0,160,191,251,2,182,191,251,128,16,0,5,128,49,0,5,0,184,191,251,2,156,192,251,128,49,0,5,0,158,192,251,2,254,194,251,128,49,0,5,0,2,195,251,2,210,196,251,128,49,0,5,0,212,196,251,2,60,212,251,128,16,0,5,0,62,212,251,2,230,212,251,128,16,0,5,0,232,212,251,128,16,0,5,0,234,212,251,2,52,214,251,128,16,0,5,0,54,214,251,2,254,217,251,128,16,0,5,128,27,0,5,0,2,218,251,2,178,218,251,128,16,0,5,0,180,218,251,2,206,218,251,128,49,0,5,0,208,218,251,2,74,219,251,128,16,0,5,0,76,219,251,2,188,219,251,128,49,0,5,0,190,219,251,2,68,220,251,128,16,0,5,0,70,220,251,2,42,222,251,128,16,0,5,0,44,222,251,128,16,0,5,0,46,222,251,2,86,222,251,128,16,0,5,128,27,0,5,128,5,0,112,0,88,222,251,2,22,223,251,128,49,0,5,0,24,223,251,2,180,223,251,128,49,0,5,0,182,223,251,2,206,223,251,128,49,0,5,0,208,223,251,2,90,232,251,128,16,0,5,0,92,232,251,2,86,233,251,128,16,0,5,128,27,0,5,128,49,0,5,128,5,0,112,0,88,233,251,2,90,233,251,128,16,0,5,128,27,0,5,128,49,0,5,0,92,233,251,2,114,235,251,128,16,0,5,128,27,0,5,0,116,235,251,2,128,235,251,128,16,0,5,0,130,235,251,2,60,239,251,128,16,0,5,128,27,0,5,128,49,0,5,0,62,239,251,2,188,6,252,128,16,0,5,0,190,6,252,2,190,9,252,128,16,0,5,0,192,9,252,2,196,9,252,128,27,0,5,128,49,0,5,0,198,9,252,2,192,11,252,128,16,0,5,0,194,11,252,2,198,11,252,128,5,0,112,0,200,11,252,2,174,14,252,128,16,0,5,0,176,14,252,2,104,16,252,128,16,0,5,0,106,16,252,2,110,16,252,128,16,0,5,0,112,16,252,2,180,16,252,128,16,0,5,0,182,16,252,2,22,17,252,128,16,0,5,0,24,17,252,2,236,20,252,128,16,0,5,0,238,20,252,2,240,20,252,128,16,0,5,0,242,20,252,2,54,21,252,128,16,0,5,0,56,21,252,2,230,21,252,128,16,0,5,128,27,0,5,0,232,21,252,128,16,0,5,0,234,21,252,128,16,0,5,0,236,21,252,2,232,23,252,128,49,0,5,0,234,23,252,2,66,24,252,128,27,0,5,0,68,24,252,2,68,32,252,128,49,0,5,0,70,32,252,2,182,36,252,128,49,0,5,0,184,36,252,2,142,48,252,128,16,0,5,128,27,0,5,0,144,48,252,128,16,0,5,0,146,48,252,2,34,50,252,128,16,0,5,0,36,50,252,2,124,53,252,128,49,0,5,0,126,53,252,2,48,64,252,128,16,0,5,0,50,64,252,128,16,0,5,128,5,0,112,0,52,64,252,2,150,65,252,128,16,0,5,0,152,65,252,2,218,65,252,128,16,0,5,0,220,65,252,2,14,66,252,128,16,0,5,0,16,66,252,128,16,0,5,0,18,66,252,2,252,66,252,128,16,0,5,0,254,66,252,2,28,68,252,128,16,0,5,0,30,68,252,2,94,68,252,128,16,0,5,128,5,0,112,0,96,68,252,2,116,69,252,128,16,0,5,128,27,0,5,0,118,69,252,2,46,72,252,128,16,0,5,0,48,72,252,128,16,0,5,0,50,72,252,2,112,79,252,128,16,0,5,0,114,79,252,2,132,79,252,128,16,0,5,0,134,79,252,128,5,0,112,0,136,79,252,2,158,89,252,128,16,0,5,0,160,89,252,2,104,90,252,128,16,0,5,0,106,90,252,2,188,92,252,128,16,0,5,0,190,92,252,2,36,93,252,128,16,0,5,128,49,0,5,0,38,93,252,2,208,93,252,128,16,0,5,0,210,93,252,2,32,94,252,128,16,0,5,0,34,94,252,2,36,94,252,128,38,0,5,0,38,94,252,128,49,0,5,0,40,94,252,2,56,94,252,128,27,0,5,0,58,94,252,2,100,98,252,128,16,0,5,128,5,0,112,0,102,98,252,2,176,98,252,128,16,0,5,0,178,98,252,2,156,106,252,128,16,0,5,0,158,106,252,2,250,106,252,128,16,0,5,0,252,106,252,2,26,109,252,128,16,0,5,0,28,109,252,2,184,110,252,128,16,0,5,0,186,110,252,2,100,111,252,128,16,0,5,0,102,111,252,2,8,112,252,128,16,0,5,128,27,0,5,0,10,112,252,2,128,113,252,128,16,0,5,128,5,0,112,0,130,113,252,2,54,123,252,128,16,0,5,0,56,123,252,2,16,124,252,128,16,0,5,0,18,124,252,2,134,125,252,128,16,0,5,0,136,125,252,2,210,134,252,128,16,0,5,128,5,0,112,0,212,134,252,128,16,0,5,0,214,134,252,2,240,134,252,128,16,0,5,128,27,0,5,128,49,0,5,0,242,134,252,2,158,135,252,128,16,0,5,128,27,0,5,0,160,135,252,2,50,136,252,128,16,0,5,0,52,136,252,2,80,137,252,128,49,0,5,0,82,137,252,2,88,140,252,128,16,0,5,0,90,140,252,2,156,140,252,128,16,0,5,0,158,140,252,2,134,141,252,128,27,0,5,0,136,141,252,2,22,148,252,128,16,0,5,0,24,148,252,2,50,148,252,128,49,0,5,0,52,148,252,2,118,152,252,128,16,0,5,0,120,152,252,2,154,154,252,128,16,0,5,128,5,0,112,0,156,154,252,2,76,158,252,128,27,0,5,0,78,158,252,2,76,168,252,128,16,0,5,0,78,168,252,2,70,174,252,128,16,0,5,0,72,174,252,128,16,0,5,0,74,174,252,2,168,175,252,128,49,0,5,0,170,175,252,2,220,185,252,128,16,0,5,0,222,185,252,2,198,188,252,128,16,0,5,0,200,188,252,2,238,189,252,128,16,0,5,0,240,189,252,128,16,0,5,128,5,0,112,0,242,189,252,128,16,0,5,128,5,0,112,128,5,0,120,0,244,189,252,2,14,193,252,128,16,0,5,128,5,0,112,128,5,0,120,0,16,193,252,2,22,193,252,128,16,0,5,0,24,193,252,2,136,195,252,128,16,0,5,0,138,195,252,2,84,198,252,128,16,0,5,0,86,198,252,128,16,0,5,0,88,198,252,2,214,198,252,128,16,0,5,0,216,198,252,2,40,199,252,128,16,0,5,0,42,199,252,2,74,200,252,128,16,0,5,0,76,200,252,2,128,203,252,128,16,0,5,128,5,0,112,0,130,203,252,128,16,0,5,0,132,203,252,2,226,203,252,128,16,0,5,128,5,0,112,0,228,203,252,2,90,215,252,128,16,0,5,0,92,215,252,2,222,215,252,128,16,0,5,0,224,215,252,2,152,216,252,128,16,0,5,0,154,216,252,2,10,217,252,128,16,0,5,128,5,0,112,0,12,217,252,2,106,218,252,128,16,0,5,0,108,218,252,2,90,219,252,128,16,0,5,0,92,219,252,2,128,219,252,128,16,0,5,0,130,219,252,2,106,222,252,128,16,0,5,0,108,222,252,2,140,222,252,128,16,0,5,0,142,222,252,2,6,223,252,128,16,0,5,0,8,223,252,128,16,0,5,128,5,0,112,128,5,0,120,0,10,223,252,2,174,252,252,128,16,0,5,0,176,252,252,2,178,252,252,128,16,0,5,0,180,252,252,2,150,254,252,128,16,0,5,0,152,254,252,2,202,14,253,128,16,0,5,0,204,14,253,2,118,15,253,128,16,0,5,0,120,15,253,2,52,16,253,128,16,0,5,0,54,16,253,128,16,0,5,0,56,16,253,2,136,24,253,128,16,0,5,0,138,24,253,128,16,0,5,0,140,24,253,128,16,0,5,0,142,24,253,2,42,25,253,128,16,0,5,0,44,25,253,2,148,27,253,128,16,0,5,0,150,27,253,2,240,27,253,128,16,0,5,128,5,0,112,0,242,27,253,2,152,28,253,128,49,0,5,0,154,28,253,2,38,30,253,128,16,0,5,0,40,30,253,2,192,40,253,128,16,0,5,0,194,40,253,2,160,43,253,128,16,0,5,0,162,43,253,2,90,44,253,128,16,0,5,0,92,44,253,2,112,45,253,128,16,0,5,0,114,45,253,2,36,47,253,128,16,0,5,0,38,47,253,2,190,48,253,128,16,0,5,0,192,48,253,2,218,48,253,128,16,0,5,128,27,0,5,0,220,48,253,2,14,49,253,128,49,0,5,0,16,49,253,2,8,50,253,128,16,0,5,128,27,0,5,0,10,50,253,2,202,53,253,128,16,0,5,0,204,53,253,2,190,54,253,128,16,0,5,0,192,54,253,2,84,55,253,128,16,0,5,128,49,0,5,0,86,55,253,2,84,59,253,128,16,0,5,128,5,0,112,0,86,59,253,2,230,68,253,128,16,0,5,0,232,68,253,2,218,70,253,128,16,0,5,0,220,70,253,2,100,76,253,128,16,0,5,0,102,76,253,2,186,77,253,128,16,0,5,0,188,77,253,2,128,78,253,128,16,0,5,0,130,78,253,2,176,78,253,128,16,0,5,0,178,78,253,128,16,0,5,128,5,0,112,128,5,0,120,0,180,78,253,2,144,82,253,128,49,0,5,0,146,82,253,2,26,84,253,128,27,0,5,0,28,84,253,2,98,87,253,128,16,0,5,128,5,0,112,0,100,87,253,2,148,93,253,128,16,0,5,0,150,93,253,2,166,93,253,128,49,0,5,0,168,93,253,2,30,98,253,128,16,0,5,0,32,98,253,2,98,98,253,128,16,0,5,0,100,98,253,2,242,98,253,128,16,0,5,128,27,0,5,0,244,98,253,2,86,114,253,128,16,0,5,0,88,114,253,2,200,118,253,128,16,0,5,0,202,118,253,128,16,0,5,0,204,118,253,2,2,120,253,128,16,0,5,0,4,120,253,2,6,120,253,128,16,0,5,0,8,120,253,2,84,124,253,128,16,0,5,0,86,124,253,2,154,125,253,128,16,0,5,128,5,0,112,0,156,125,253,128,16,0,5,0,158,125,253,2,186,131,253,128,16,0,5,0,188,131,253,2,228,131,253,128,16,0,5,0,230,131,253,2,178,134,253,128,16,0,5,128,5,0,112,0,180,134,253,2,216,139,253,128,16,0,5,0,218,139,253,128,16,0,5,0,220,139,253,2,44,140,253,128,16,0,5,0,46,140,253,2,152,140,253,128,16,0,5,0,154,140,253,2,160,141,253,128,16,0,5,0,162,141,253,2,196,145,253,128,16,0,5,0,198,145,253,2,30,147,253,128,16,0,5,0,32,147,253,2,108,147,253,128,16,0,5,0,110,147,253,2,184,147,253,128,16,0,5,0,186,147,253,2,142,148,253,128,16,0,5,0,144,148,253,2,162,148,253,128,27,0,5,0,164,148,253,2,70,153,253,128,16,0,5,0,72,153,253,2,82,154,253,128,16,0,5,0,84,154,253,2,242,156,253,128,16,0,5,0,244,156,253,2,122,157,253,128,16,0,5,0,124,157,253,2,164,157,253,128,16,0,5,0,166,157,253,2,170,157,253,128,16,0,5,0,172,157,253,128,16,0,5,128,5,0,112,0,174,157,253,2,20,163,253,128,16,0,5,0,22,163,253,2,110,164,253,128,16,0,5,128,5,0,112,0,112,164,253,2,252,164,253,128,16,0,5,0,254,164,253,2,208,165,253,128,16,0,5,0,210,165,253,2,244,171,253,128,16,0,5,0,246,171,253,2,168,173,253,128,16,0,5,128,5,0,112,0,170,173,253,2,232,175,253,128,16,0,5,0,234,175,253,2,186,176,253,128,16,0,5,0,188,176,253,2,58,180,253,128,16,0,5,0,60,180,253,2,136,180,253,128,16,0,5,0,138,180,253,2,172,180,253,128,16,0,5,0,174,180,253,2,166,181,253,128,16,0,5,128,5,0,112,0,168,181,253,2,2,184,253,128,16,0,5,0,4,184,253,2,64,193,253,128,16,0,5,0,66,193,253,2,218,195,253,128,16,0,5,0,220,195,253,2,72,206,253,128,16,0,5,0,74,206,253,2,240,208,253,128,16,0,5,128,5,0,112,0,242,208,253,2,178,209,253,128,16,0,5,0,180,209,253,2,56,211,253,128,16,0,5,0,58,211,253,2,196,212,253,128,16,0,5,0,198,212,253,2,94,213,253,128,16,0,5,0,96,213,253,2,210,213,253,128,16,0,5,0,212,213,253,128,16,0,5,0,214,213,253,2,124,214,253,128,16,0,5,0,126,214,253,2,252,214,253,128,16,0,5,0,254,214,253,2,36,217,253,128,16,0,5,0,38,217,253,2,62,217,253,128,16,0,5,0,64,217,253,2,222,217,253,128,16,0,5,0,224,217,253,2,6,218,253,128,16,0,5,0,8,218,253,2,62,218,253,128,16,0,5,0,64,218,253,2,220,218,253,128,16,0,5,0,222,218,253,2,240,219,253,128,16,0,5,0,242,219,253,2,176,220,253,128,16,0,5,128,5,0,112,0,178,220,253,2,236,220,253,128,16,0,5,0,238,220,253,2,248,220,253,128,16,0,5,128,5,0,112,0,250,220,253,2,110,223,253,128,16,0,5,0,112,223,253,2,12,224,253,128,16,0,5,128,5,0,112,0,14,224,253,2,96,224,253,128,16,0,5,0,98,224,253,2,118,224,253,128,16,0,5,128,5,0,112,128,5,0,120,0,120,224,253,2,218,224,253,128,16,0,5,0,220,224,253,2,236,224,253,128,16,0,5,0,238,224,253,2,40,225,253,0,2,4,254,0,2,2,255,0,0,253,255,0,0,255,255,0,255,255,255,26,9,5,5,1,0,76,0,255,255,219,251,194,5,108,0,255,255,219,251,194,5,70,97,174,5,48,0,6,3,255,255,78,97,160,5,70,97,5,5,48,0,6,3,255,255,78,97,5,5,26,102,5,5,2,0,83,6,255,255,8,102,5,5,84,6,255,255,10,102,5,5,85,6,255,255,18,102,5,5,222,102,5,5,48,0,84,6,255,255,16,102,5,5,238,102,5,5,48,0,84,6,255,255,22,102,5,5,124,105,5,5,1,0,190,9,255,255,128,105,5,5,215,9,255,255,130,105,5,5,126,108,5,5,2,0,62,11,255,255,130,108,5,5,86,11,255,255,128,108,5,5,87,11,255,255,132,108,5,5,26,109,5,5,48,0,215,11,255,255,30,109,5,5,90,109,5,5,1,0,190,11,255,255,96,109,5,5,215,11,255,255,100,109,5,5,92,109,5,5,48,0,190,11,255,255,98,109,5,5,136,110,5,5,48,0,86,12,255,255,140,110,5,5,120,111,5,5,48,0,213,12,255,255,122,111,5,5,136,111,5,5,2,0,194,12,8,0,213,12,255,255,138,111,5,5,214,12,255,255,140,111,5,5,240,127,142,111,5,5,213,12,255,255,144,111,5,5,142,111,5,5,48,0,213,12,255,255,144,111,5,5,138,112,5,5,1,0,62,13,255,255,144,112,5,5,87,13,255,255,148,112,5,5,140,112,5,5,48,0,62,13,255,255,146,112,5,5,146,113,5,5,2,0,202,13,255,255,148,113,5,5,207,13,4,0,223,13,255,255,156,113,5,5,240,127,152,113,5,5,202,13,255,255,154,113,5,5,152,113,5,5,48,0,202,13,255,255,154,113,5,5,122,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,2,45,14,255,193,197,66,46,14,0,194,197,130,41,14,250,193,197,66,42,14,251,193,197,130,43,14,252,193,197,194,38,14,9,0,38,14,246,193,197,130,39,14,247,193,197,194,40,14,249,193,197,2,35,14,242,193,197,194,36,14,244,193,197,2,37,14,245,193,197,66,29,14,20,0,32,14,9,0,32,14,239,193,197,2,33,14,240,193,197,66,34,14,241,193,197,130,29,14,235,193,197,66,30,14,236,193,197,130,31,14,237,193,197,194,24,14,229,193,197,2,25,14,230,193,197,66,26,14,231,193,197,130,27,14,232,193,197,194,28,14,234,193,197,2,12,14,42,0,18,14,20,0,21,14,9,0,21,14,225,193,197,66,22,14,226,193,197,130,23,14,227,193,197,194,18,14,221,193,197,130,19,14,222,193,197,194,20,14,224,193,197,2,15,14,9,0,15,14,217,193,197,194,16,14,219,193,197,2,17,14,220,193,197,66,12,14,214,193,197,2,13,14,215,193,197,66,14,14,216,193,197,130,6,14,20,0,9,14,9,0,9,14,210,193,197,66,10,14,211,193,197,130,11,14,212,193,197,194,6,14,206,193,197,130,7,14,207,193,197,194,8,14,209,193,197,2,1,14,200,193,197,66,2,14,201,193,197,130,3,14,202,193,197,194,4,14,204,193,197,2,5,14,205,193,197,66,124,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,66,45,14,255,193,197,130,46,14,0,194,197,194,41,14,250,193,197,130,42,14,251,193,197,194,43,14,253,193,197,2,38,14,9,0,38,14,246,193,197,194,39,14,248,193,197,2,40,14,249,193,197,66,35,14,243,193,197,2,36,14,244,193,197,66,37,14,245,193,197,130,29,14,20,0,32,14,9,0,32,14,239,193,197,66,33,14,240,193,197,130,34,14,241,193,197,194,29,14,235,193,197,130,30,14,236,193,197,194,31,14,238,193,197,2,24,14,229,193,197,66,25,14,230,193,197,130,26,14,231,193,197,194,27,14,233,193,197,2,28,14,234,193,197,66,12,14,42,0,18,14,20,0,21,14,9,0,21,14,225,193,197,130,22,14,226,193,197,194,23,14,228,193,197,2,18,14,221,193,197,194,19,14,223,193,197,2,20,14,224,193,197,66,15,14,9,0,15,14,218,193,197,2,16,14,219,193,197,66,17,14,220,193,197,130,12,14,214,193,197,66,13,14,215,193,197,130,14,14,216,193,197,194,6,14,20,0,9,14,9,0,9,14,210,193,197,130,10,14,211,193,197,194,11,14,213,193,197,2,6,14,206,193,197,194,7,14,208,193,197,2,8,14,209,193,197,66,1,14,200,193,197,130,2,14,201,193,197,194,3,14,203,193,197,2,4,14,204,193,197,66,5,14,205,193,197,130,126,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,130,45,14,255,193,197,194,46,14,1,194,197,2,41,14,250,193,197,194,42,14,252,193,197,2,43,14,253,193,197,66,38,14,9,0,38,14,247,193,197,2,39,14,248,193,197,66,40,14,249,193,197,130,35,14,243,193,197,66,36,14,244,193,197,130,37,14,245,193,197,194,29,14,20,0,32,14,9,0,32,14,239,193,197,130,33,14,240,193,197,194,34,14,242,193,197,2,29,14,235,193,197,194,30,14,237,193,197,2,31,14,238,193,197,66,24,14,229,193,197,130,25,14,230,193,197,194,26,14,232,193,197,2,27,14,233,193,197,66,28,14,234,193,197,130,12,14,42,0,18,14,20,0,21,14,9,0,21,14,225,193,197,194,22,14,227,193,197,2,23,14,228,193,197,66,18,14,222,193,197,2,19,14,223,193,197,66,20,14,224,193,197,130,15,14,9,0,15,14,218,193,197,66,16,14,219,193,197,130,17,14,220,193,197,194,12,14,214,193,197,130,13,14,215,193,197,194,14,14,217,193,197,2,6,14,20,0,9,14,9,0,9,14,210,193,197,194,10,14,212,193,197,2,11,14,213,193,197,66,6,14,207,193,197,2,7,14,208,193,197,66,8,14,209,193,197,130,1,14,200,193,197,194,2,14,202,193,197,2,3,14,203,193,197,66,4,14,204,193,197,130,5,14,205,193,197,194,128,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,194,45,14,0,194,197,2,46,14,1,194,197,66,41,14,251,193,197,2,42,14,252,193,197,66,43,14,253,193,197,130,38,14,9,0,38,14,247,193,197,66,39,14,248,193,197,130,40,14,249,193,197,194,35,14,243,193,197,130,36,14,244,193,197,194,37,14,246,193,197,2,29,14,20,0,32,14,9,0,32,14,239,193,197,194,33,14,241,193,197,2,34,14,242,193,197,66,29,14,236,193,197,2,30,14,237,193,197,66,31,14,238,193,197,130,24,14,229,193,197,194,25,14,231,193,197,2,26,14,232,193,197,66,27,14,233,193,197,130,28,14,234,193,197,194,12,14,42,0,18,14,20,0,21,14,9,0,21,14,226,193,197,2,22,14,227,193,197,66,23,14,228,193,197,130,18,14,222,193,197,66,19,14,223,193,197,130,20,14,224,193,197,194,15,14,9,0,15,14,218,193,197,130,16,14,219,193,197,194,17,14,221,193,197,2,12,14,214,193,197,194,13,14,216,193,197,2,14,14,217,193,197,66,6,14,20,0,9,14,9,0,9,14,211,193,197,2,10,14,212,193,197,66,11,14,213,193,197,130,6,14,207,193,197,66,7,14,208,193,197,130,8,14,209,193,197,194,1,14,201,193,197,2,2,14,202,193,197,66,3,14,203,193,197,130,4,14,204,193,197,194,5,14,206,193,197,2,130,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,255,193,197,2,45,14,0,194,197,66,46,14,1,194,197,130,41,14,251,193,197,66,42,14,252,193,197,130,43,14,253,193,197,194,38,14,9,0,38,14,247,193,197,130,39,14,248,193,197,194,40,14,250,193,197,2,35,14,243,193,197,194,36,14,245,193,197,2,37,14,246,193,197,66,29,14,20,0,32,14,9,0,32,14,240,193,197,2,33,14,241,193,197,66,34,14,242,193,197,130,29,14,236,193,197,66,30,14,237,193,197,130,31,14,238,193,197,194,24,14,230,193,197,2,25,14,231,193,197,66,26,14,232,193,197,130,27,14,233,193,197,194,28,14,235,193,197,2,12,14,42,0,18,14,20,0,21,14,9,0,21,14,226,193,197,66,22,14,227,193,197,130,23,14,228,193,197,194,18,14,222,193,197,130,19,14,223,193,197,194,20,14,225,193,197,2,15,14,9,0,15,14,218,193,197,194,16,14,220,193,197,2,17,14,221,193,197,66,12,14,215,193,197,2,13,14,216,193,197,66,14,14,217,193,197,130,6,14,20,0,9,14,9,0,9,14,211,193,197,66,10,14,212,193,197,130,11,14,213,193,197,194,6,14,207,193,197,130,7,14,208,193,197,194,8,14,210,193,197,2,1,14,201,193,197,66,2,14,202,193,197,130,3,14,203,193,197,194,4,14,205,193,197,2,5,14,206,193,197,66,205,243,194,5,48,0,50,14,255,255,106,114,5,5,122,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,52,194,197,227,222,14,1,194,197,194,223,14,16,194,197,194,173,14,57,194,197,66,174,14,58,194,197,130,220,14,50,194,197,195,170,14,9,0,170,14,11,194,197,194,171,14,54,194,197,194,172,14,56,194,197,2,167,14,46,194,197,194,168,14,48,194,197,2,169,14,49,194,197,66,159,14,20,0,162,14,9,0,162,14,43,194,197,2,163,14,44,194,197,66,165,14,45,194,197,130,159,14,39,194,197,66,160,14,40,194,197,130,161,14,41,194,197,194,154,14,33,194,197,2,155,14,34,194,197,66,156,14,35,194,197,130,157,14,36,194,197,194,158,14,38,194,197,2,143,14,37,0,148,14,20,0,151,14,9,0,151,14,29,194,197,66,152,14,30,194,197,130,153,14,31,194,197,194,148,14,25,194,197,130,149,14,26,194,197,194,150,14,28,194,197,2,143,14,19,194,197,66,144,14,20,194,197,130,145,14,21,194,197,194,146,14,23,194,197,2,147,14,24,194,197,66,136,14,20,0,140,14,9,0,140,14,14,194,197,66,141,14,18,194,197,2,142,14,15,194,197,130,136,14,9,194,197,66,137,14,10,194,197,130,138,14,13,194,197,2,129,14,3,194,197,2,130,14,4,194,197,66,132,14,5,194,197,130,134,14,6,194,197,194,135,14,8,194,197,2,124,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,53,194,197,67,222,14,2,194,197,2,223,14,17,194,197,2,173,14,57,194,197,130,174,14,58,194,197,194,220,14,51,194,197,35,170,14,9,0,170,14,12,194,197,2,171,14,55,194,197,2,172,14,56,194,197,66,167,14,47,194,197,2,168,14,48,194,197,66,169,14,49,194,197,130,159,14,20,0,162,14,9,0,162,14,43,194,197,66,163,14,44,194,197,130,165,14,45,194,197,194,159,14,39,194,197,130,160,14,40,194,197,194,161,14,42,194,197,2,154,14,33,194,197,66,155,14,34,194,197,130,156,14,35,194,197,194,157,14,37,194,197,2,158,14,38,194,197,66,143,14,37,0,148,14,20,0,151,14,9,0,151,14,29,194,197,130,152,14,30,194,197,194,153,14,32,194,197,2,148,14,25,194,197,194,149,14,27,194,197,2,150,14,28,194,197,66,143,14,19,194,197,130,144,14,20,194,197,194,145,14,22,194,197,2,146,14,23,194,197,66,147,14,24,194,197,130,136,14,20,0,140,14,9,0,140,14,14,194,197,130,141,14,18,194,197,66,142,14,15,194,197,194,136,14,9,194,197,130,137,14,10,194,197,194,138,14,13,194,197,66,129,14,3,194,197,66,130,14,4,194,197,130,132,14,5,194,197,194,134,14,7,194,197,2,135,14,8,194,197,66,126,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,53,194,197,163,222,14,2,194,197,66,223,14,17,194,197,66,173,14,57,194,197,194,174,14,59,194,197,2,220,14,51,194,197,131,170,14,9,0,170,14,12,194,197,66,171,14,55,194,197,66,172,14,56,194,197,130,167,14,47,194,197,66,168,14,48,194,197,130,169,14,49,194,197,194,159,14,20,0,162,14,9,0,162,14,43,194,197,130,163,14,44,194,197,194,165,14,46,194,197,2,159,14,39,194,197,194,160,14,41,194,197,2,161,14,42,194,197,66,154,14,33,194,197,130,155,14,34,194,197,194,156,14,36,194,197,2,157,14,37,194,197,66,158,14,38,194,197,130,143,14,37,0,148,14,20,0,151,14,9,0,151,14,29,194,197,194,152,14,31,194,197,2,153,14,32,194,197,66,148,14,26,194,197,2,149,14,27,194,197,66,150,14,28,194,197,130,143,14,19,194,197,194,144,14,21,194,197,2,145,14,22,194,197,66,146,14,23,194,197,130,147,14,24,194,197,194,136,14,20,0,140,14,9,0,140,14,14,194,197,194,141,14,18,194,197,130,142,14,16,194,197,2,136,14,9,194,197,194,137,14,11,194,197,2,138,14,13,194,197,130,129,14,3,194,197,130,130,14,4,194,197,194,132,14,6,194,197,2,134,14,7,194,197,66,135,14,8,194,197,130,128,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,54,194,197,3,222,14,2,194,197,130,223,14,17,194,197,130,173,14,58,194,197,2,174,14,59,194,197,66,220,14,51,194,197,227,170,14,9,0,170,14,12,194,197,130,171,14,55,194,197,130,172,14,56,194,197,194,167,14,47,194,197,130,168,14,48,194,197,194,169,14,50,194,197,2,159,14,20,0,162,14,9,0,162,14,43,194,197,194,163,14,45,194,197,2,165,14,46,194,197,66,159,14,40,194,197,2,160,14,41,194,197,66,161,14,42,194,197,130,154,14,33,194,197,194,155,14,35,194,197,2,156,14,36,194,197,66,157,14,37,194,197,130,158,14,38,194,197,194,143,14,37,0,148,14,20,0,151,14,9,0,151,14,30,194,197,2,152,14,31,194,197,66,153,14,32,194,197,130,148,14,26,194,197,66,149,14,27,194,197,130,150,14,28,194,197,194,143,14,20,194,197,2,144,14,21,194,197,66,145,14,22,194,197,130,146,14,23,194,197,194,147,14,25,194,197,2,136,14,20,0,140,14,9,0,140,14,15,194,197,2,141,14,18,194,197,194,142,14,16,194,197,66,136,14,10,194,197,2,137,14,11,194,197,66,138,14,13,194,197,194,129,14,3,194,197,194,130,14,5,194,197,2,132,14,6,194,197,66,134,14,7,194,197,130,135,14,8,194,197,194,130,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,54,194,197,99,222,14,2,194,197,194,223,14,17,194,197,194,173,14,58,194,197,66,174,14,59,194,197,130,220,14,52,194,197,67,170,14,9,0,170,14,12,194,197,194,171,14,55,194,197,194,172,14,57,194,197,2,167,14,47,194,197,194,168,14,49,194,197,2,169,14,50,194,197,66,159,14,20,0,162,14,9,0,162,14,44,194,197,2,163,14,45,194,197,66,165,14,46,194,197,130,159,14,40,194,197,66,160,14,41,194,197,130,161,14,42,194,197,194,154,14,34,194,197,2,155,14,35,194,197,66,156,14,36,194,197,130,157,14,37,194,197,194,158,14,39,194,197,2,143,14,37,0,148,14,20,0,151,14,9,0,151,14,30,194,197,66,152,14,31,194,197,130,153,14,32,194,197,194,148,14,26,194,197,130,149,14,27,194,197,194,150,14,29,194,197,2,143,14,20,194,197,66,144,14,21,194,197,130,145,14,22,194,197,194,146,14,24,194,197,2,147,14,25,194,197,66,136,14,20,0,140,14,9,0,140,14,15,194,197,66,141,14,19,194,197,2,142,14,16,194,197,130,136,14,10,194,197,66,137,14,11,194,197,130,138,14,14,194,197,2,129,14,4,194,197,2,130,14,5,194,197,66,132,14,6,194,197,130,134,14,7,194,197,194,135,14,9,194,197,2,149,244,194,5,48,0,178,14,255,255,100,115,5,5,166,116,5,5,2,0,114,15,255,255,170,116,5,5,116,15,255,255,178,116,5,5,128,15,255,255,174,116,5,5,122,116,5,5,4,0,113,15,14,0,115,15,123,194,197,2,117,15,123,194,197,66,128,15,255,255,180,116,5,5,129,15,255,255,182,116,5,5,194,127,122,2,197,194,114,15,123,194,197,2,116,15,123,194,197,66,128,15,255,255,182,116,5,5,128,116,5,5,4,0,113,15,14,0,115,15,123,194,197,194,117,15,124,194,197,2,128,15,255,255,184,116,5,5,129,15,255,255,186,116,5,5,194,127,123,2,197,130,114,15,123,194,197,194,116,15,124,194,197,2,128,15,255,255,186,116,5,5,85,117,193,128,48,0,46,16,255,255,85,117,193,135,9,118,193,142,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,34,170,25,168,194,197,34,171,25,169,194,197,34,166,25,164,194,197,34,167,25,165,194,197,34,168,25,166,194,197,34,161,25,159,194,197,34,162,25,160,194,197,34,163,25,161,194,197,34,164,25,162,194,197,34,165,25,163,194,197,34,155,25,20,0,158,25,9,0,158,25,156,194,197,34,159,25,157,194,197,34,160,25,158,194,197,34,155,25,152,194,197,130,156,25,153,194,197,130,157,25,155,194,197,34,150,25,147,194,197,130,151,25,148,194,197,130,152,25,149,194,197,130,153,25,150,194,197,130,154,25,151,194,197,130,139,25,37,0,144,25,20,0,147,25,9,0,147,25,144,194,197,130,148,25,145,194,197,130,149,25,146,194,197,130,144,25,141,194,197,130,145,25,142,194,197,130,146,25,143,194,197,130,139,25,136,194,197,130,140,25,137,194,197,130,141,25,138,194,197,130,142,25,139,194,197,130,143,25,140,194,197,130,133,25,20,0,136,25,9,0,136,25,133,194,197,130,137,25,134,194,197,130,138,25,135,194,197,130,133,25,130,194,197,130,134,25,131,194,197,130,135,25,132,194,197,130,128,25,125,194,197,130,129,25,126,194,197,130,130,25,127,194,197,130,131,25,128,194,197,130,132,25,129,194,197,130,11,118,5,5,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,98,170,25,168,194,197,98,171,25,169,194,197,98,166,25,164,194,197,98,167,25,165,194,197,98,168,25,166,194,197,98,161,25,159,194,197,98,162,25,160,194,197,98,163,25,161,194,197,98,164,25,162,194,197,98,165,25,163,194,197,98,155,25,20,0,158,25,9,0,158,25,156,194,197,98,159,25,157,194,197,98,160,25,158,194,197,98,155,25,152,194,197,194,156,25,153,194,197,194,157,25,155,194,197,98,150,25,147,194,197,194,151,25,148,194,197,194,152,25,149,194,197,194,153,25,150,194,197,194,154,25,151,194,197,194,139,25,37,0,144,25,20,0,147,25,9,0,147,25,144,194,197,194,148,25,145,194,197,194,149,25,146,194,197,194,144,25,141,194,197,194,145,25,142,194,197,194,146,25,143,194,197,194,139,25,136,194,197,194,140,25,137,194,197,194,141,25,138,194,197,194,142,25,139,194,197,194,143,25,140,194,197,194,133,25,20,0,136,25,9,0,136,25,133,194,197,194,137,25,134,194,197,194,138,25,135,194,197,194,133,25,130,194,197,194,134,25,131,194,197,194,135,25,132,194,197,194,128,25,125,194,197,194,129,25,126,194,197,194,130,25,127,194,197,194,131,25,128,194,197,194,132,25,129,194,197,194,13,118,193,2,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,162,170,25,168,194,197,162,171,25,169,194,197,162,166,25,164,194,197,162,167,25,165,194,197,162,168,25,166,194,197,162,161,25,159,194,197,162,162,25,160,194,197,162,163,25,161,194,197,162,164,25,162,194,197,162,165,25,163,194,197,162,155,25,20,0,158,25,9,0,158,25,156,194,197,162,159,25,157,194,197,162,160,25,158,194,197,162,155,25,153,194,197,2,156,25,154,194,197,162,157,25,155,194,197,162,150,25,148,194,197,2,151,25,149,194,197,2,152,25,150,194,197,2,153,25,151,194,197,2,154,25,152,194,197,2,139,25,37,0,144,25,20,0,147,25,9,0,147,25,145,194,197,2,148,25,146,194,197,2,149,25,147,194,197,2,144,25,142,194,197,2,145,25,143,194,197,2,146,25,144,194,197,2,139,25,137,194,197,2,140,25,138,194,197,2,141,25,139,194,197,2,142,25,140,194,197,2,143,25,141,194,197,2,133,25,20,0,136,25,9,0,136,25,134,194,197,2,137,25,135,194,197,2,138,25,136,194,197,2,133,25,131,194,197,2,134,25,132,194,197,2,135,25,133,194,197,2,128,25,126,194,197,2,129,25,127,194,197,2,130,25,128,194,197,2,131,25,129,194,197,2,132,25,130,194,197,2,13,118,193,23,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,226,170,25,168,194,197,226,171,25,169,194,197,226,166,25,164,194,197,226,167,25,165,194,197,226,168,25,166,194,197,226,161,25,159,194,197,226,162,25,160,194,197,226,163,25,161,194,197,226,164,25,162,194,197,226,165,25,163,194,197,226,155,25,20,0,158,25,9,0,158,25,156,194,197,226,159,25,157,194,197,226,160,25,158,194,197,226,155,25,153,194,197,66,156,25,154,194,197,226,157,25,155,194,197,226,150,25,148,194,197,66,151,25,149,194,197,66,152,25,150,194,197,66,153,25,151,194,197,66,154,25,152,194,197,66,139,25,37,0,144,25,20,0,147,25,9,0,147,25,145,194,197,66,148,25,146,194,197,66,149,25,147,194,197,66,144,25,142,194,197,66,145,25,143,194,197,66,146,25,144,194,197,66,139,25,137,194,197,66,140,25,138,194,197,66,141,25,139,194,197,66,142,25,140,194,197,66,143,25,141,194,197,66,133,25,20,0,136,25,9,0,136,25,134,194,197,66,137,25,135,194,197,66,138,25,136,194,197,66,133,25,131,194,197,66,134,25,132,194,197,66,135,25,133,194,197,66,128,25,126,194,197,66,129,25,127,194,197,66,130,25,128,194,197,66,131,25,129,194,197,66,132,25,130,194,197,66,40,118,193,9,48,0,53,27,255,255,40,118,193,16,40,118,193,23,48,0,53,27,255,255,40,118,193,30,40,118,193,37,48,0,53,27,255,255,40,118,193,44,40,118,193,51,48,0,53,27,255,255,40,118,193,58,40,118,193,65,48,0,53,27,255,255,40,118,193,72,40,118,193,93,48,0,53,27,255,255,40,118,193,100,41,118,193,168,48,0,53,27,255,255,41,118,193,175,41,118,193,182,48,0,53,27,255,255,41,118,193,189,41,118,193,196,48,0,53,27,255,255,41,118,193,210,41,118,193,203,48,0,53,27,255,255,41,118,193,217,41,118,193,224,48,0,53,27,255,255,41,118,193,231,133,115,193,126,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,2,174,170,117,194,197,66,175,170,118,194,197,130,170,170,112,194,197,66,171,170,113,194,197,130,172,170,114,194,197,194,167,170,9,0,167,170,108,194,197,130,168,170,109,194,197,194,169,170,111,194,197,2,164,170,104,194,197,194,165,170,106,194,197,2,166,170,107,194,197,66,158,170,20,0,161,170,9,0,161,170,101,194,197,2,162,170,102,194,197,66,163,170,103,194,197,130,158,170,97,194,197,66,159,170,98,194,197,130,160,170,99,194,197,194,155,170,9,0,155,170,93,194,197,130,156,170,94,194,197,194,157,170,96,194,197,2,152,170,89,194,197,194,153,170,91,194,197,2,154,170,92,194,197,66,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,2,150,170,87,194,197,66,151,170,88,194,197,130,146,170,82,194,197,66,147,170,83,194,197,130,148,170,84,194,197,194,143,170,9,0,143,170,78,194,197,130,144,170,79,194,197,194,145,170,81,194,197,2,140,170,74,194,197,194,141,170,76,194,197,2,142,170,77,194,197,66,134,170,20,0,137,170,9,0,137,170,71,194,197,2,138,170,72,194,197,66,139,170,73,194,197,130,134,170,67,194,197,66,135,170,68,194,197,130,136,170,69,194,197,194,131,170,9,0,131,170,63,194,197,130,132,170,64,194,197,194,133,170,66,194,197,2,128,170,59,194,197,194,129,170,61,194,197,2,130,170,62,194,197,66,133,115,193,133,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,66,174,170,117,194,197,130,175,170,118,194,197,194,170,170,112,194,197,130,171,170,113,194,197,194,172,170,115,194,197,2,167,170,9,0,167,170,108,194,197,194,168,170,110,194,197,2,169,170,111,194,197,66,164,170,105,194,197,2,165,170,106,194,197,66,166,170,107,194,197,130,158,170,20,0,161,170,9,0,161,170,101,194,197,66,162,170,102,194,197,130,163,170,103,194,197,194,158,170,97,194,197,130,159,170,98,194,197,194,160,170,100,194,197,2,155,170,9,0,155,170,93,194,197,194,156,170,95,194,197,2,157,170,96,194,197,66,152,170,90,194,197,2,153,170,91,194,197,66,154,170,92,194,197,130,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,66,150,170,87,194,197,130,151,170,88,194,197,194,146,170,82,194,197,130,147,170,83,194,197,194,148,170,85,194,197,2,143,170,9,0,143,170,78,194,197,194,144,170,80,194,197,2,145,170,81,194,197,66,140,170,75,194,197,2,141,170,76,194,197,66,142,170,77,194,197,130,134,170,20,0,137,170,9,0,137,170,71,194,197,66,138,170,72,194,197,130,139,170,73,194,197,194,134,170,67,194,197,130,135,170,68,194,197,194,136,170,70,194,197,2,131,170,9,0,131,170,63,194,197,194,132,170,65,194,197,2,133,170,66,194,197,66,128,170,60,194,197,2,129,170,61,194,197,66,130,170,62,194,197,130,133,115,193,154,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,130,174,170,117,194,197,194,175,170,119,194,197,2,170,170,112,194,197,194,171,170,114,194,197,2,172,170,115,194,197,66,167,170,9,0,167,170,109,194,197,2,168,170,110,194,197,66,169,170,111,194,197,130,164,170,105,194,197,66,165,170,106,194,197,130,166,170,107,194,197,194,158,170,20,0,161,170,9,0,161,170,101,194,197,130,162,170,102,194,197,194,163,170,104,194,197,2,158,170,97,194,197,194,159,170,99,194,197,2,160,170,100,194,197,66,155,170,9,0,155,170,94,194,197,2,156,170,95,194,197,66,157,170,96,194,197,130,152,170,90,194,197,66,153,170,91,194,197,130,154,170,92,194,197,194,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,130,150,170,87,194,197,194,151,170,89,194,197,2,146,170,82,194,197,194,147,170,84,194,197,2,148,170,85,194,197,66,143,170,9,0,143,170,79,194,197,2,144,170,80,194,197,66,145,170,81,194,197,130,140,170,75,194,197,66,141,170,76,194,197,130,142,170,77,194,197,194,134,170,20,0,137,170,9,0,137,170,71,194,197,130,138,170,72,194,197,194,139,170,74,194,197,2,134,170,67,194,197,194,135,170,69,194,197,2,136,170,70,194,197,66,131,170,9,0,131,170,64,194,197,2,132,170,65,194,197,66,133,170,66,194,197,130,128,170,60,194,197,66,129,170,61,194,197,130,130,170,62,194,197,194,133,115,193,168,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,194,174,170,118,194,197,2,175,170,119,194,197,66,170,170,113,194,197,2,171,170,114,194,197,66,172,170,115,194,197,130,167,170,9,0,167,170,109,194,197,66,168,170,110,194,197,130,169,170,111,194,197,194,164,170,105,194,197,130,165,170,106,194,197,194,166,170,108,194,197,2,158,170,20,0,161,170,9,0,161,170,101,194,197,194,162,170,103,194,197,2,163,170,104,194,197,66,158,170,98,194,197,2,159,170,99,194,197,66,160,170,100,194,197,130,155,170,9,0,155,170,94,194,197,66,156,170,95,194,197,130,157,170,96,194,197,194,152,170,90,194,197,130,153,170,91,194,197,194,154,170,93,194,197,2,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,194,150,170,88,194,197,2,151,170,89,194,197,66,146,170,83,194,197,2,147,170,84,194,197,66,148,170,85,194,197,130,143,170,9,0,143,170,79,194,197,66,144,170,80,194,197,130,145,170,81,194,197,194,140,170,75,194,197,130,141,170,76,194,197,194,142,170,78,194,197,2,134,170,20,0,137,170,9,0,137,170,71,194,197,194,138,170,73,194,197,2,139,170,74,194,197,66,134,170,68,194,197,2,135,170,69,194,197,66,136,170,70,194,197,130,131,170,9,0,131,170,64,194,197,66,132,170,65,194,197,130,133,170,66,194,197,194,128,170,60,194,197,130,129,170,61,194,197,194,130,170,63,194,197,2,133,115,193,175,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,117,194,197,2,174,170,118,194,197,66,175,170,119,194,197,130,170,170,113,194,197,66,171,170,114,194,197,130,172,170,115,194,197,194,167,170,9,0,167,170,109,194,197,130,168,170,110,194,197,194,169,170,112,194,197,2,164,170,105,194,197,194,165,170,107,194,197,2,166,170,108,194,197,66,158,170,20,0,161,170,9,0,161,170,102,194,197,2,162,170,103,194,197,66,163,170,104,194,197,130,158,170,98,194,197,66,159,170,99,194,197,130,160,170,100,194,197,194,155,170,9,0,155,170,94,194,197,130,156,170,95,194,197,194,157,170,97,194,197,2,152,170,90,194,197,194,153,170,92,194,197,2,154,170,93,194,197,66,140,170,42,0,146,170,20,0,149,170,9,0,149,170,87,194,197,2,150,170,88,194,197,66,151,170,89,194,197,130,146,170,83,194,197,66,147,170,84,194,197,130,148,170,85,194,197,194,143,170,9,0,143,170,79,194,197,130,144,170,80,194,197,194,145,170,82,194,197,2,140,170,75,194,197,194,141,170,77,194,197,2,142,170,78,194,197,66,134,170,20,0,137,170,9,0,137,170,72,194,197,2,138,170,73,194,197,66,139,170,74,194,197,130,134,170,68,194,197,66,135,170,69,194,197,130,136,170,70,194,197,194,131,170,9,0,131,170,64,194,197,130,132,170,65,194,197,194,133,170,67,194,197,2,128,170,60,194,197,194,129,170,62,194,197,2,130,170,63,194,197,66,255,255,255,255,0,0,92,0,131,27,30,2,0,170,183,1,8,216,104,0,35,216,48,0,56,216,26,0,56,216,6,0,58,216,13,0,208,253,255,255,4,254,193,2,1,0,8,221,255,255,243,123,193,2,225,222,255,255,245,123,193,2,1,0,2,220,255,255,95,120,193,2,9,221,255,255,167,120,193,2,35,216,8,0,44,216,11,0,47,216,48,0,32,220,255,255,88,124,193,2,48,0,101,220,255,255,166,125,193,2,48,0,196,221,255,255,155,125,193,2,26,216,32,0,26,216,8,0,27,216,19,0,32,216,48,0,41,222,255,255,100,125,193,2,2,0,79,222,255,255,98,124,193,2,230,222,255,255,94,120,193,2,28,223,255,255,240,123,193,2,1,0,64,222,255,255,101,120,193,2,0,223,255,255,153,123,193,2,8,216,8,0,12,216,11,0,17,216,48,0,0,220,255,255,83,125,193,2,48,0,0,220,255,255,207,124,193,2,48,0,83,221,255,255,4,125,193,2,2,216,244,0,5,216,84,0,5,216,24,0,6,216,49,0,7,216,4,0,14,220,255,255,248,113,193,2,114,220,255,255,4,117,193,2,16,221,255,255,224,113,193,2,113,221,255,255,229,113,193,2,229,222,255,255,30,117,193,2,5,0,14,222,12,0,14,222,255,255,201,113,193,2,128,222,255,255,203,113,193,2,23,223,255,255,211,113,193,2,18,220,255,255,180,113,193,2,132,220,255,255,183,113,193,2,142,221,255,255,185,113,193,2,6,0,206,221,16,0,206,221,255,255,207,113,193,2,11,222,255,255,198,116,193,2,92,222,255,255,209,116,193,2,192,222,255,255,238,123,193,2,11,220,255,255,209,113,193,2,180,220,255,255,172,123,193,2,12,221,255,255,205,113,193,2,2,216,46,0,3,216,119,0,4,216,9,0,131,221,20,0,131,221,255,255,170,113,193,2,8,222,255,255,172,113,193,2,143,222,255,255,176,113,193,2,190,222,255,255,174,113,193,2,21,223,255,255,178,113,193,2,5,220,255,255,244,113,193,2,131,220,255,255,166,113,193,2,208,220,255,255,97,124,193,2,3,221,255,255,96,117,193,2,82,221,255,255,168,113,193,2,16,0,160,221,38,0,216,222,20,0,216,222,255,255,163,124,193,2,0,223,255,255,119,124,193,2,64,223,255,255,159,124,193,2,96,223,255,255,160,124,193,2,143,223,255,255,161,124,193,2,160,221,255,255,34,125,193,2,0,222,255,255,246,113,193,2,96,222,255,255,117,124,193,2,149,222,255,255,118,124,193,2,244,220,16,0,244,220,255,255,157,124,193,2,0,221,255,255,50,101,193,2,32,221,255,255,250,123,193,2,128,221,255,255,34,125,193,2,0,220,255,255,115,124,193,2,64,220,255,255,158,124,193,2,115,220,255,255,125,124,193,2,150,220,255,255,130,124,193,2,7,0,25,223,16,0,25,223,255,255,168,124,193,2,66,223,255,255,196,124,193,2,191,223,255,255,203,124,193,2,241,223,255,255,162,124,193,2,0,220,255,255,144,119,193,2,161,220,255,255,60,119,193,2,18,221,255,255,94,117,193,2,136,222,255,255,201,124,193,2,0,172,73,0,0,172,255,255,4,121,193,2,0,216,32,0,1,216,6,0,181,220,16,0,181,220,255,255,232,118,193,2,0,221,255,255,93,124,193,2,55,221,255,255,95,124,193,2,71,222,255,255,105,124,193,2,20,220,255,255,4,124,193,2,80,220,255,255,86,124,193,2,128,220,255,255,92,124,193,2,7,0,48,223,16,0,48,223,255,255,252,123,193,2,107,223,255,255,100,98,193,2,128,223,255,255,204,124,193,2,160,223,255,255,205,124,193,2,0,220,255,255,99,124,193,2,128,222,255,255,247,123,193,2,160,222,255,255,248,123,193,2,0,223,255,255,251,123,193,2,0,170,255,255,38,118,193,2,128,170,255,255,132,115,193,2,192,171,255,255,160,113,193,2,5,49,54,0,0,168,26,0,10,169,12,0,10,169,255,255,78,117,193,2,48,169,255,255,76,117,193,2,132,169,255,255,42,118,193,2,0,168,255,255,162,113,193,2,64,168,255,255,8,117,193,2,130,168,255,255,164,113,193,2,208,164,12,0,208,164,255,255,151,123,193,2,73,165,255,255,4,120,193,2,160,166,255,255,76,120,193,2,5,49,255,255,4,123,193,2,87,91,255,255,2,126,193,2,136,162,255,255,118,123,193,2,172,32,24,0,48,45,12,0,48,45,255,255,141,103,193,2,75,48,255,255,4,122,193,2,171,48,255,255,4,122,193,2,172,32,132,205,193,2,58,38,2,204,193,2,0,44,255,255,4,98,193,2,131,27,255,255,231,113,193,2,192,27,255,255,31,117,193,2,0,28,255,255,6,117,193,2,90,28,255,255,56,118,193,2,28,32,6,197,193,2,133,13,104,0,3,23,54,0,0,25,26,0,0,26,12,0,0,26,255,255,29,117,193,2,32,26,255,255,18,118,193,2,5,27,255,255,40,118,193,2,0,25,255,255,10,117,193,2,80,25,255,255,4,118,193,2,128,25,255,255,5,118,193,2,99,23,12,0,99,23,255,255,28,117,193,2,128,23,255,255,98,117,193,2,38,24,255,255,52,118,193,2,3,23,255,255,25,117,193,2,35,23,255,255,26,117,193,2,67,23,255,255,27,117,193,2,211,16,26,0,192,20,12,0,192,20,255,255,234,118,193,2,143,22,255,255,254,118,193,2,160,22,255,255,4,119,193,2,211,16,255,255,4,99,193,2,160,18,255,255,143,103,193,2,196,19,255,255,58,118,193,2,133,13,255,255,4,113,193,2,23,14,255,255,4,114,193,2,165,14,255,255,4,115,193,2,64,15,255,255,4,116,193,2,0,16,255,255,79,117,193,2,202,7,54,0,149,10,26,0,21,12,12,0,21,12,255,255,4,110,193,2,149,12,255,255,4,111,193,2,21,13,255,255,4,112,193,2,149,10,255,255,4,107,193,2,21,11,255,255,4,108,193,2,149,11,255,255,4,109,193,2,5,9,12,0,5,9,255,255,4,104,193,2,149,9,255,255,4,105,193,2,21,10,255,255,4,106,193,2,202,7,255,255,130,103,193,2,0,8,255,255,51,101,193,2,64,8,255,255,27,103,193,2,47,4,26,0,40,6,12,0,40,6,255,255,4,102,193,2,16,7,255,255,4,103,193,2,140,7,255,255,28,103,193,2,47,4,255,255,4,97,193,2,49,5,255,255,4,100,193,2,208,5,255,255,4,101,193,2,52,0,2,206,193,2,76,0,2,233,193,2,160,0,2,195,193,2,169,3,255,255,4,96,193,2,226,3,255,255,96,96,193,2,97,117,193,91,49,0,4,216,39,221,255,255,97,117,193,70,97,117,193,98,49,0,4,216,39,221,255,255,97,117,193,77,179,113,193,182,48,0,4,216,1,0,62,223,255,255,179,113,193,196,87,223,255,255,179,113,193,203,184,113,193,175,48,0,5,216,2,0,176,220,255,255,184,113,193,196,186,220,255,255,184,113,193,189,189,220,255,255,184,113,193,210,200,113,193,16,49,0,5,216,175,221,255,255,200,113,193,30,200,113,193,23,49,0,5,216,175,221,255,255,200,113,193,37,206,113,193,112,49,0,6,216,48,221,255,255,206,113,193,126,80,130,224,0,52,0,53,0,76,0,77,0,160,0,161,0,6,3,7,3,169,3,170,3,226,3,227,3,47,4,48,4,49,5,50,5,208,5,209,5,40,6,41,6,83,6,86,6,16,7,17,7,140,7,141,7,202,7,203,7,0,8,1,8,64,8,65,8,5,9,6,9,149,9,150,9,190,9,191,9,215,9,216,9,21,10,22,10,149,10,150,10,21,11,22,11,62,11,63,11,86,11,88,11,149,11,150,11,190,11,191,11,215,11,216,11,21,12,22,12,86,12,87,12,149,12,150,12,194,12,195,12,213,12,215,12,21,13,22,13,62,13,63,13,87,13,88,13,133,13,134,13,202,13,203,13,207,13,208,13,223,13,224,13,1,14,47,14,50,14,51,14,129,14,131,14,132,14,133,14,134,14,139,14,140,14,164,14,165,14,166,14,167,14,175,14,178,14,179,14,220,14,224,14,64,15,65,15,113,15,118,15,128,15,130,15,0,16,1,16,46,16,47,16,211,16,212,16,160,18,161,18,196,19,197,19,192,20,193,20,143,22,144,22,160,22,161,22,3,23,4,23,35,23,36,23,67,23,68,23,99,23,100,23,128,23,129,23,38,24,39,24,0,25,1,25,80,25,81,25,128,25,172,25,0,26,1,26,32,26,33,26,5,27,6,27,53,27,54,27,131,27,132,27,192,27,193,27,0,28,1,28,90,28,91,28,28,32,29,32,172,32,173,32,58,38,59,38,0,44,1,44,48,45,49,45,75,48,76,48,171,48,172,48,5,49,6,49,87,91,88,91,136,162,137,162,208,164,209,164,73,165,74,165,160,166,161,166,0,168,1,168,64,168,65,168,130,168,131,168,10,169,11,169,48,169,49,169,132,169,133,169,0,170,1,170,128,170,176,170,192,171,193,171,0,172,1,172,0,216,9,216,12,216,13,216,17,216,18,216,26,216,28,216,32,216,33,216,35,216,36,216,44,216,45,216,47,216,48,216,56,216,57,216,58,216,59,216,208,253,209,253,1,0,0,0,1,0,1,0,1,0,128,2,1,0,129,2,1,0,160,2,1,0,161,2,1,0,0,3,1,0,1,3,1,0,48,3,1,0,49,3,1,0,107,3,1,0,108,3,1,0,128,3,1,0,129,3,1,0,160,3,1,0,161,3,1,0,20,4,1,0,21,4,1,0,80,4,1,0,81,4,1,0,128,4,1,0,129,4,1,0,181,4,1,0,182,4,1,0,0,5,1,0,1,5,1,0,55,5,1,0,56,5,1,0,71,6,1,0,72,6,1,0,0,8,1,0,1,8,1,0,64,8,1,0,65,8,1,0,115,8,1,0,116,8,1,0,150,8,1,0,151,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,1,9,1,0,32,9,1,0,33,9,1,0,128,9,1,0,129,9,1,0,160,9,1,0,161,9,1,0,0,10,1,0,1,10,1,0,96,10,1,0,97,10,1,0,149,10,1,0,150,10,1,0,216,10,1,0,217,10,1,0,0,11,1,0,1,11,1,0,64,11,1,0,65,11,1,0,96,11,1,0,97,11,1,0,143,11,1,0,144,11,1,0,0,12,1,0,1,12,1,0,161,12,1,0,162,12,1,0,18,13,1,0,19,13,1,0,136,14,1,0,137,14,1,0,25,15,1,0,26,15,1,0,66,15,1,0,67,15,1,0,191,15,1,0,192,15,1,0,241,15,1,0,242,15,1,0,5,16,1,0,6,16,1,0,131,16,1,0,132,16,1,0,208,16,1,0,209,16,1,0,3,17,1,0,4,17,1,0,39,17,1,0,40,17,1,0,82,17,1,0,83,17,1,0,131,17,1,0,132,17,1,0,8,18,1,0,9,18,1,0,143,18,1,0,144,18,1,0,190,18,1,0,191,18,1,0,21,19,1,0,22,19,1,0,62,19,1,0,63,19,1,0,87,19,1,0,88,19,1,0,18,20,1,0,19,20,1,0,132,20,1,0,133,20,1,0,176,20,1,0,177,20,1,0,186,20,1,0,187,20,1,0,189,20,1,0,190,20,1,0,142,21,1,0,143,21,1,0,175,21,1,0,176,21,1,0,14,22,1,0,15,22,1,0,128,22,1,0,129,22,1,0,23,23,1,0,24,23,1,0,11,24,1,0,12,24,1,0,180,24,1,0,181,24,1,0,12,25,1,0,13,25,1,0,48,25,1,0,49,25,1,0,206,25,1,0,207,25,1,0,11,26,1,0,12,26,1,0,92,26,1,0,93,26,1,0,192,26,1,0,193,26,1,0,14,28,1,0,15,28,1,0,114,28,1,0,115,28,1,0,16,29,1,0,17,29,1,0,113,29,1,0,114,29,1,0,229,30,1,0,230,30,1,0,0,32,1,0,1,32,1,0,83,49,1,0,84,49,1,0,0,68,1,0,1,68,1,0,79,106,1,0,80,106,1,0,230,106,1,0,231,106,1,0,28,107,1,0,29,107,1,0,64,110,1,0,65,110,1,0,0,111,1,0,1,111,1,0,41,130,1,0,42,130,1,0,101,140,1,0,102,140,1,0,196,177,1,0,197,177,1,0,32,188,1,0,33,188,1,0,8,225,1,0,9,225,1,0,225,226,1,0,226,226,1,0,2,232,1,0,3,232,1,0,9,233,1,0,10,233,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,193,0,0,0,0,0,19,0,15,0,27,0,107,0,92,0,10,0,11,0,121,0,26,0,25,0,14,0,120,0,9,0,29,0,28,0,157,0,105,0,16,0,106,0,33,0,106,0,83,0,62,0,7,0,34,0,90,0,80,0,95,0,119,0,30,0,96,0,35,0,20,0,31,0,32,0,22,0,61,0,64,0,94,0,108,0,71,0,72,0,73,0,74,0,0,0,131,0,70,0,129,0,124,0,122,0,84,0,148,0,106,0,75,0,12,0,59,0,37,0,85,0,24,0,149,0,88,0,77,0,0,0,58,0,87,0,0,0,0,0,0,0,0,0,151,0,0,0,157,0,157,0,113,0,97,0,0,0,89,0,79,0,0,0,0,0,68,0,130,0,21,0,0,0,152,0,23,0,98,0,13,0,69,0,17,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,150,0,0,0,158,0,117,0,0,0,86,0,116,0,118,0,91,0,78,0,38,0,0,0,57,0,0,0,36,0,138,0,134,0,82,0,0,0,39,0,143,0,140,0,141,0,0,0,139,0,18,0,63,0,0,0,0,0,100,0,109,0,0,0,132,0,101,0,123,0,125,0,45,0,0,0,0,0,102,0,152,0,133,0,136,0,135,0,43,0,111,0,0,0,0,0,128,0,155,0,41,0,127,0,50,0,154,0,0,0,153,0,42,0,47,0,126,0,40,0,54,0,137,0,49,0,44,0,112,0,48,0,104,0,60,0,67,0,46,0,93,0,0,0,0,0,0,0,55,0,66,0,65,0,53,0,56,0,76,0,103,0,81,0,145,0,144,0,142,0,114,0,52,0,115,0,147,0,51,0,156,0,146,0,1,0,2,0,3,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,8,0,0,0,0,3,6,5,0,12,132,13,0,14,0,39,0,41,0,94,0,96,96,96,0,97,0,98,100,98,0,99,0,100,0,101,50,101,51,101,0,102,0,103,27,103,28,103,130,103,141,103,143,103,0,104,0,105,0,106,0,107,0,108,0,109,0,110,0,111,0,112,0,113,160,113,162,113,164,113,166,113,168,113,170,113,172,113,174,113,176,113,178,113,180,113,183,113,185,113,201,113,203,113,205,113,207,113,209,113,211,113,224,113,229,113,231,113,244,113,246,113,248,113,0,114,0,115,132,115,0,116,198,116,209,116,0,117,6,117,8,117,10,117,25,117,26,117,27,117,28,117,29,117,30,117,31,117,76,117,78,117,79,117,94,117,96,117,98,117,0,118,5,118,18,118,38,118,40,118,42,118,52,118,56,118,58,118,232,118,234,118,254,118,0,119,60,119,144,119,0,120,76,120,94,120,95,120,101,120,167,120,0,121,0,122,0,123,118,123,151,123,153,123,172,123,238,123,240,123,243,123,245,123,247,123,248,123,250,123,251,123,252,123,0,124,86,124,88,124,92,124,93,124,95,124,97,124,98,124,99,124,105,124,115,124,117,124,118,124,119,124,125,124,130,124,157,124,158,124,159,124,160,124,161,124,162,124,163,124,168,124,196,124,201,124,203,124,204,124,205,124,207,124,0,125,34,125,83,125,100,125,155,125,166,125,0,126,0,254,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,63,7,0,32,7,0,0,0,21,0,0,0,65,7,0,0,65,7,0,0,3,0,0,0,0,0,0,0,47,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,46,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,39,6,60,0,213,6,60,0,40,6,38,0,67,6,60,0,175,6,60,0,173,6,60,0,68,6,38,0,190,6,60,0,72,6,60,0,199,6,60,0,198,6,60,0,200,6,60,0,203,6,60,0,208,6,60,0,73,6,60,0,74,6,0,0,32,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,160,27,0,0,160,27,0,0,160,27,0,0,160,27,0,0,236,27,0,0,236,27,0,0,8,28,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,157,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,95,0,103,0,100,0,108,0,116,0,124,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,140,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,124,1,144,1,208,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,3,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,183,102,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,193,8,217,102,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,3,183,102,192,0,0,0,193,2,183,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,217,102,193,3,217,102,193,5,217,102,192,0,0,0,192,0,0,0,193,6,217,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,7,217,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,193,2,27,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,217,102,193,2,48,0,84,6,255,255,16,102,5,5,217,102,193,9,48,0,84,6,255,255,22,102,5,5,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,56,7,0,32,1,0,32,0,61,7,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,17,7,0,32,7,0,0,0,21,0,0,0,19,7,0,0,19,7,0,0,3,0,0,0,0,0,0,0,41,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,19,4,60,0,145,4,60,0,60,0,60,0,144,4,38,0,71,166,60,0,87,4,60,0,60,0,60,0,118,166,60,0,60,0,60,0,7,4,0,0,170,170,170,170,170,170,170,170,170,170,120,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,0,27,0,0,0,27,0,0,0,27,0,0,0,27,0,0,68,27,0,0,68,27,0,0,96,27,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,147,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,91,0,99,0,103,0,111,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,127,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,108,1,156,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,135,5,77,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,5,5,77,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,17,97,5,5,17,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,77,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,74,97,174,5,48,0,8,3,255,255,77,97,135,5,74,97,5,5,48,0,8,3,255,255,77,97,5,5,3,0,69,0,52,0,61,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,10,7,0,32,1,0,32,0,15,7,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,55,8,0,32,7,0,0,0,21,0,0,0,57,8,0,0,57,8,0,0,3,0,0,0,0,0,0,0,150,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,252,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,39,6,60,0,60,0,35,6,60,0,34,6,60,0,40,6,60,0,40,6,190,6,60,0,126,6,60,0,126,6,190,6,60,0,42,6,60,0,42,6,190,6,60,0,121,6,60,0,121,6,190,6,60,0,43,6,60,0,44,6,60,0,44,6,190,6,60,0,134,6,60,0,134,6,190,6,60,0,45,6,60,0,46,6,60,0,47,6,60,0,47,6,190,6,60,0,136,6,60,0,136,6,190,6,60,0,48,6,60,0,49,6,60,0,49,6,190,6,60,0,145,6,60,0,145,6,190,6,60,0,50,6,60,0,152,6,60,0,51,6,60,0,52,6,60,0,53,6,60,0,54,6,60,0,55,6,60,0,56,6,60,0,57,6,60,0,58,6,60,0,65,6,60,0,66,6,60,0,169,6,60,0,169,6,190,6,60,0,175,6,60,0,175,6,190,6,60,0,68,6,60,0,68,6,190,6,60,0,69,6,60,0,69,6,190,6,60,0,70,6,60,0,70,6,190,6,60,0,186,6,60,0,186,6,190,6,60,0,72,6,60,0,60,0,36,6,60,0,72,6,190,6,60,0,193,6,60,0,60,0,194,6,60,0,190,6,60,0,195,6,60,0,33,6,60,0,204,6,60,0,60,0,38,6,60,0,204,6,190,6,60,0,210,6,60,0,60,0,211,6,38,0,82,6,60,0,60,0,78,6,60,0,60,0,80,6,60,0,60,0,79,6,60,0,60,0,112,6,60,0,60,0,86,6,60,0,60,0,87,6,60,0,60,0,75,6,60,0,60,0,77,6,60,0,60,0,76,6,60,0,60,0,84,6,60,0,60,0,81,6,60,0,60,0,88,6,60,0,60,0,83,6,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,60,0,16,6,60,0,60,0,60,0,17,6,60,0,60,0,60,0,19,6,60,0,60,0,60,0,18,6,60,0,60,0,60,0,20,6,0,0,170,170,170,170,94,30,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,68,0,0,0,68,1,0,0,100,28,0,0,100,28,0,0,172,28,0,0,172,28,0,0,248,28,0,0,248,28,0,0,60,30,0,0,66,30,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,169,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,152,0,48,0,48,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,1,0,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,56,27,102,193,2,27,102,5,70,26,102,198,161,0,0,192,0,0,0,198,193,0,0,201,6,0,0,201,224,1,0,192,0,0,0,201,192,2,0,193,11,27,102,201,160,3,0,193,16,27,102,193,17,27,102,201,128,4,0,193,22,27,102,201,96,5,0,193,27,27,102,193,29,27,102,193,30,27,102,193,31,27,102,193,32,27,102,193,33,27,102,193,34,27,102,193,35,27,102,193,36,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,37,27,102,193,38,27,102,192,0,0,0,201,64,6,0,201,32,7,0,201,0,8,0,192,0,0,0,201,228,8,0,192,0,0,0,201,38,10,0,194,5,69,232,194,5,71,232,194,5,70,232,194,5,63,232,194,5,65,232,194,5,64,232,194,5,73,232,192,0,0,0,194,5,75,232,194,5,72,232,192,0,0,0,194,5,67,232,194,5,68,232,194,5,74,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,66,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,224,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,192,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,160,12,0,192,0,0,0,201,128,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,96,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,28,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,64,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,17,0,192,0,0,0,192,0,0,0,192,0,0,0,193,54,27,102,192,0,0,0,197,34,0,0,201,230,17,0,198,225,0,0,193,55,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,160,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,19,0,198,1,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,2,188,0,0,0,0,0,0,3,188,0,0,0,0,0,0,5,188,0,0,0,0,0,0,4,188,0,0,0,0,0,0,6,188,0,0,0,0,0,0,0,5,0,70,0,51,27,102,0,5,0,70,0,57,27,102,0,5,0,70,0,53,27,102,0,5,0,70,0,59,27,102,0,0,0,0,193,16,220,102,194,5,72,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,27,102,193,2,84,6,255,255,26,102,5,70,85,6,255,255,18,102,5,5,27,102,193,3,48,0,190,6,255,255,27,102,193,4,27,102,193,7,48,0,190,6,255,255,27,102,193,8,27,102,193,12,48,0,190,6,255,255,27,102,193,13,27,102,193,18,48,0,190,6,255,255,27,102,193,19,27,102,193,23,48,0,190,6,255,255,27,102,193,24,27,102,193,43,48,0,190,6,255,255,27,102,193,44,27,102,193,45,48,0,190,6,255,255,27,102,193,46,27,102,193,47,48,0,190,6,255,255,27,102,193,48,27,102,193,51,1,0,84,6,0,192,198,161,190,6,255,255,27,102,193,52,238,102,5,5,48,0,84,6,0,192,198,193,27,102,193,9,48,0,190,6,255,255,27,102,193,10,27,102,193,5,48,0,190,6,255,255,27,102,193,6,27,102,193,14,48,0,190,6,255,255,27,102,193,15,27,102,193,20,48,0,190,6,255,255,27,102,193,21,27,102,193,25,48,0,190,6,255,255,27,102,193,26,27,102,193,39,48,0,190,6,255,255,27,102,193,40,27,102,193,41,48,0,190,6,255,255,27,102,193,42,27,102,193,49,48,0,190,6,255,255,27,102,193,50,27,102,193,53,48,0,84,6,0,192,198,225,27,102,193,57,48,0,190,6,255,255,27,102,193,58,27,102,193,59,48,0,84,6,1,192,198,1,2,0,190,6,191,6,170,170,3,0,69,0,52,0,61,0,151,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,48,8,0,32,1,0,32,0,53,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,108,8,0,32,7,0,0,0,21,0,0,0,110,8,0,0,110,8,0,0,3,0,0,0,0,0,0,0,65,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,82,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,146,2,60,0,111,0,187,2,61,0,111,0,24,32,61,0,111,0,39,0,39,0,60,0,60,0,60,0,79,0,187,2,61,0,79,0,24,32,61,0,79,0,39,0,39,0,60,0,103,0,187,2,61,0,103,0,24,32,61,0,103,0,39,0,39,0,60,0,60,0,60,0,71,0,187,2,61,0,71,0,24,32,61,0,71,0,39,0,39,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,0,0,170,170,170,170,170,170,170,170,132,32,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,23,0,0,100,23,0,0,116,25,0,0,116,25,0,0,56,26,0,0,56,26,0,0,18,28,0,0,56,28,0,0,104,32,0,0,50,105,114,84,1,0,64,8,105,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,4,0,202,1,5,0,202,34,5,0,202,67,5,0,202,100,5,0,202,133,5,0,202,166,5,0,202,199,5,0,202,232,5,0,202,9,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,64,7,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,192,8,0,156,5,0,72,160,5,0,74,156,5,0,76,201,64,10,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,192,17,0,5,5,0,48,5,5,0,50,5,5,0,52,201,192,21,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,160,23,0,5,5,0,72,5,5,0,74,5,5,0,76,201,128,25,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,4,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,4,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,4,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,5,0,5,25,93,0,70,0,5,0,5,25,93,0,135,0,5,0,5,25,93,0,5,0,142,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,142,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,144,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,144,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,156,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,156,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,196,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,196,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,150,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,150,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,160,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,160,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,210,0,0,0,0,0,70,0,5,0,3,25,93,0,70,0,5,0,2,25,93,0,135,0,5,0,4,25,93,0,70,0,5,0,4,25,93,0,135,0,5,0,4,25,93,0,5,0,142,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,142,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,144,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,144,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,156,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,156,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,196,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,196,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,150,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,150,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,160,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,160,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,210,0,0,0,0,0,0,0,0,193,5,25,93,5,142,0,0,193,5,25,93,5,144,0,0,193,5,25,93,5,156,0,0,193,5,25,93,5,196,0,0,193,5,25,93,5,150,0,0,193,5,25,93,5,160,0,0,193,5,25,93,5,206,0,0,193,5,25,93,5,210,0,0,193,4,25,93,5,142,0,0,193,4,25,93,5,144,0,0,193,4,25,93,5,156,0,0,193,4,25,93,5,196,0,0,193,4,25,93,5,150,0,0,193,4,25,93,5,160,0,0,193,4,25,93,5,206,0,0,193,4,25,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,198,194,41,30,3,192,198,2,42,30,3,192,198,66,43,30,3,192,198,130,150,30,3,192,198,194,36,30,1,192,198,194,37,30,2,192,198,2,38,30,2,192,198,66,39,30,2,192,198,130,30,2,12,0,30,2,0,192,198,194,31,2,1,192,198,2,34,30,1,192,198,66,35,30,1,192,198,130,72,0,198,129,104,0,198,161,36,1,0,192,198,66,37,1,0,192,198,130,0,54,156,5,2,0,39,0,4,192,198,1,187,2,4,192,198,1,24,32,4,192,198,1,0,70,156,5,2,0,39,0,4,192,198,33,187,2,4,192,198,33,24,32,4,192,198,33,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,7,192,198,2,41,30,7,192,198,66,42,30,7,192,198,130,43,30,7,192,198,194,150,30,8,192,198,2,36,30,6,192,198,2,37,30,6,192,198,66,38,30,6,192,198,130,39,30,6,192,198,194,30,2,12,0,30,2,5,192,198,2,31,2,5,192,198,66,34,30,5,192,198,130,35,30,5,192,198,194,72,0,4,192,198,65,104,0,4,192,198,97,36,1,4,192,198,130,37,1,4,192,198,194,0,46,5,5,8,0,37,30,15,0,37,30,0,192,197,226,39,30,1,192,197,34,41,30,1,192,197,98,43,30,1,192,197,162,150,30,1,192,197,226,104,0,255,255,25,93,193,5,37,1,197,162,31,2,0,192,197,98,35,30,0,192,197,162,0,54,5,5,2,0,39,0,255,255,25,93,193,3,187,2,255,255,25,93,193,3,24,32,255,255,25,93,193,3,0,70,5,5,2,0,39,0,255,255,25,93,193,2,187,2,255,255,25,93,193,2,24,32,255,255,25,93,193,2,0,78,5,5,8,0,37,30,15,0,37,30,2,192,197,226,39,30,3,192,197,34,41,30,3,192,197,98,43,30,3,192,197,162,150,30,3,192,197,226,104,0,255,255,25,93,193,4,37,1,2,192,197,34,31,2,2,192,197,98,35,30,2,192,197,162,18,0,39,0,40,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,187,2,188,2,34,30,44,30,150,30,151,30,24,32,25,32,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,68,186,72,185,76,36,4,185,84,186,88,186,96,185,100,185,104,185,108,186,112,42,4,185,124,185,128,185,136,48,4,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,58,4,168,68,168,72,168,76,64,4,168,84,168,88,168,96,168,100,168,104,168,108,168,112,70,4,168,124,168,128,168,136,76,4,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,192,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,192,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,196,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,188,104,4,177,188,36,5,250,189,37,5,241,189,255,5,185,80,39,4,177,180,152,5,177,180,255,5,185,120,39,4,177,176,152,5,177,176,255,5,186,140,72,4,186,184,104,4,177,184,36,5,250,185,37,5,241,185,255,5,168,64,104,4,168,188,37,5,232,189,255,5,168,80,39,4,168,180,152,5,168,180,255,5,168,120,39,4,168,176,152,5,168,176,255,5,168,140,104,4,168,184,37,5,232,185,255,1,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,101,8,0,32,1,0,32,0,106,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,44,36,0,32,7,0,0,0,24,0,0,0,46,36,0,0,46,36,0,0,3,0,0,0,0,0,0,0,195,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,116,114,97,100,105,116,105,111,110,97,108,0,0,0,52,0,50,0,0,0,84,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,0,3,60,0,60,0,9,3,60,0,60,0,3,3,60,0,60,0,1,3,60,0,60,0,35,3,38,0,97,0,60,0,3,1,60,0,60,0,60,0,2,1,60,0,226,0,60,0,60,0,60,0,194,0,38,0,100,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,101,0,60,0,234,0,60,0,60,0,60,0,202,0,38,0,111,0,60,0,244,0,60,0,60,0,60,0,212,0,60,0,161,1,60,0,60,0,60,0,160,1,38,0,117,0,60,0,176,1,60,0,60,0,60,0,175,1,0,0,250,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,0,3,60,0,60,0,9,3,60,0,60,0,3,3,60,0,60,0,1,3,60,0,60,0,35,3,38,0,97,0,60,0,3,1,60,0,60,0,60,0,2,1,60,0,226,0,60,0,60,0,60,0,194,0,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,100,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,101,0,60,0,234,0,60,0,60,0,60,0,202,0,38,0,71,0,60,0,103,0,104,0,60,0,60,0,60,0,71,0,104,0,60,0,60,0,60,0,71,0,72,0,60,0,103,0,105,0,60,0,60,0,60,0,71,0,105,0,60,0,60,0,60,0,71,0,73,0,38,0,75,0,60,0,107,0,104,0,60,0,60,0,60,0,75,0,104,0,60,0,60,0,60,0,75,0,72,0,38,0,78,0,60,0,110,0,104,0,60,0,60,0,60,0,78,0,104,0,60,0,60,0,60,0,78,0,72,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,60,0,110,0,103,0,104,0,60,0,60,0,60,0,78,0,103,0,104,0,60,0,60,0,60,0,78,0,71,0,104,0,60,0,60,0,60,0,78,0,71,0,72,0,38,0,111,0,60,0,244,0,60,0,60,0,60,0,212,0,60,0,161,1,60,0,60,0,60,0,160,1,38,0,80,0,60,0,112,0,104,0,60,0,60,0,60,0,80,0,104,0,60,0,60,0,60,0,80,0,72,0,38,0,81,0,60,0,113,0,117,0,60,0,60,0,60,0,81,0,117,0,60,0,60,0,60,0,81,0,85,0,38,0,84,0,60,0,116,0,104,0,60,0,60,0,60,0,84,0,104,0,60,0,60,0,60,0,84,0,72,0,60,0,116,0,114,0,60,0,60,0,60,0,84,0,114,0,60,0,60,0,60,0,84,0,82,0,38,0,117,0,60,0,176,1,60,0,60,0,60,0,175,1,0,0,236,57,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,41,0,0,116,41,0,0,116,41,0,0,116,41,0,0,240,51,0,0,240,51,0,0,220,53,0,0,220,53,0,0,212,57,0,0,50,105,114,84,1,0,64,8,138,1,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,111,0,119,0,124,0,132,0,140,0,148,0,48,0,56,0,48,0,56,0,48,0,56,0,156,0,164,0,172,0,180,0,187,0,195,0,200,0,208,0,216,0,224,0,228,0,236,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,11,1,19,1,27,1,35,1,43,1,51,1,59,1,66,1,74,1,82,1,90,1,98,1,106,1,113,1,121,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,252,0,48,0,48,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,188,1,240,1,48,2,192,0,192,0,192,0,112,2,176,2,236,2,32,3,96,3,144,3,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,82,0,202,193,82,0,202,226,82,0,202,3,83,0,202,36,83,0,202,69,83,0,202,102,83,0,202,135,83,0,202,168,83,0,202,201,83,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,38,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,70,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,70,5,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,7,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,197,34,0,0,134,5,3,43,197,98,0,0,196,150,156,42,196,146,156,42,197,34,14,0,196,160,156,46,196,138,156,50,197,162,0,0,134,5,2,51,196,150,156,50,196,138,156,58,197,226,0,0,196,142,156,58,196,150,156,58,160,112,0,48,197,34,1,0,196,138,156,70,197,98,1,0,134,5,2,71,197,162,1,0,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,197,226,1,0,196,142,156,82,196,150,156,82,197,34,2,0,160,5,38,93,197,98,82,0,196,138,5,42,197,98,2,0,5,5,3,43,197,162,2,0,196,150,5,42,196,146,5,42,197,130,14,0,196,160,5,46,196,138,5,50,197,226,2,0,5,5,2,51,196,150,5,50,196,138,5,58,197,34,3,0,196,142,5,58,196,150,5,58,5,112,0,48,197,98,3,0,196,138,5,70,197,162,3,0,5,5,2,71,197,226,3,0,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,197,34,4,0,196,142,5,82,196,150,5,82,197,98,4,0,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,201,70,8,0,201,102,9,0,197,162,5,0,197,226,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,6,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,197,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,197,226,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,8,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,9,0,197,98,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,12,0,201,198,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,13,0,201,70,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,11,0,197,131,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,15,0,201,38,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,12,0,197,34,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,13,0,197,195,13,0,197,35,14,0,197,131,14,0,197,227,14,0,197,67,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,17,0,201,6,18,0,192,0,0,0,192,0,0,0,197,35,16,0,197,131,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,194,5,3,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,2,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,5,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,192,0,0,0,197,66,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,16,0,197,34,17,0,192,0,0,0,197,98,17,0,197,162,17,0,197,226,17,0,192,0,0,0,197,34,18,0,192,0,0,0,197,98,18,0,197,162,18,0,197,227,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,19,0,197,130,19,0,197,194,19,0,197,2,20,0,197,67,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,20,0,197,226,20,0,197,34,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,18,0,201,230,19,0,192,0,0,0,192,0,0,0,197,162,23,0,197,226,23,0,192,0,0,0,192,0,0,0,197,35,24,0,197,131,24,0,192,0,0,0,192,0,0,0,197,226,24,0,197,34,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,25,0,197,195,25,0,201,6,21,0,201,198,21,0,201,134,22,0,201,70,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,27,0,197,98,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,27,0,197,3,28,0,197,98,28,0,197,162,28,0,197,226,28,0,197,34,29,0,192,0,0,0,192,0,0,0,197,98,29,0,197,162,29,0,197,227,29,0,197,67,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,30,0,197,226,30,0,192,0,0,0,192,0,0,0,197,34,31,0,197,98,31,0,192,0,0,0,192,0,0,0,197,162,31,0,197,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,32,0,197,131,32,0,197,227,32,0,197,67,33,0,192,0,0,0,192,0,0,0,197,163,33,0,197,3,34,0,197,98,34,0,197,162,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,34,0,197,34,35,0,197,99,35,0,197,195,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,36,0,197,98,36,0,197,163,36,0,197,3,37,0,192,0,0,0,192,0,0,0,197,99,37,0,197,195,37,0,192,0,0,0,192,0,0,0,197,34,38,0,197,98,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,38,0,197,3,39,0,192,0,0,0,192,0,0,0,197,98,39,0,197,162,39,0,197,226,39,0,197,34,40,0,192,0,0,0,192,0,0,0,197,98,40,0,197,162,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,40,0,197,34,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,41,0,197,162,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,38,25,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,34,45,0,197,98,45,0,197,162,45,0,197,34,42,0,197,226,42,0,197,226,45,0,197,34,46,0,197,98,46,0,197,162,46,0,197,226,46,0,197,34,47,0,197,98,47,0,197,162,47,0,197,98,42,0,197,34,43,0,201,70,26,0,201,6,27,0,197,226,48,0,197,34,49,0,197,98,49,0,197,162,49,0,197,226,49,0,197,34,50,0,197,98,50,0,197,162,50,0,197,226,50,0,197,34,51,0,197,98,51,0,197,162,51,0,197,34,48,0,197,162,48,0,197,226,51,0,197,34,52,0,197,98,52,0,197,162,52,0,201,198,27,0,201,134,28,0,197,226,53,0,197,34,54,0,197,98,54,0,197,162,54,0,197,226,54,0,197,34,55,0,197,98,55,0,197,162,55,0,197,226,55,0,197,34,56,0,197,34,53,0,197,162,53,0,197,98,56,0,197,162,56,0,197,226,56,0,197,34,57,0,197,98,57,0,197,162,57,0,197,226,57,0,197,34,58,0,201,70,29,0,201,6,30,0,197,162,59,0,197,226,59,0,197,34,60,0,197,98,60,0,197,162,60,0,197,226,60,0,197,34,61,0,197,98,61,0,197,162,61,0,197,226,61,0,197,34,62,0,197,98,62,0,197,162,62,0,197,226,62,0,192,0,0,0,192,0,0,0,197,34,63,0,197,98,63,0,197,162,63,0,197,226,63,0,197,34,64,0,197,98,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,64,0,197,3,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,65,0,197,195,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,66,0,197,131,66,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,66,0,197,67,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,67,0,197,3,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,68,0,197,195,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,69,0,197,131,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,69,0,197,67,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,70,0,197,3,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,71,0,197,195,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,72,0,197,131,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,73,0,197,163,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,74,0,197,99,74,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,19,0,192,0,0,0,197,130,19,0,192,0,0,0,197,194,19,0,192,0,0,0,197,2,20,0,192,0,0,0,197,162,20,0,192,0,0,0,197,226,20,0,192,0,0,0,197,34,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,74,0,197,68,75,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,75,0,197,68,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,76,0,197,68,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,77,0,197,68,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,78,0,197,68,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,79,0,197,68,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,17,0,192,0,0,0,197,162,17,0,192,0,0,0,192,0,0,0,197,130,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,17,0,192,0,0,0,192,0,0,0,197,194,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,0,192,0,0,0,192,0,0,0,197,226,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,82,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,18,0,192,0,0,0,197,162,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,156,5,0,42,194,5,4,139,156,5,0,42,194,5,3,139,156,5,0,50,194,5,4,139,156,5,0,58,194,5,4,139,156,5,0,68,194,5,3,139,156,5,0,70,194,5,4,139,156,5,0,70,194,5,3,139,156,5,0,82,194,5,4,139,156,5,0,90,194,5,4,139,5,5,0,42,194,5,4,139,5,5,0,42,194,5,3,139,5,5,0,50,194,5,4,139,5,5,0,58,194,5,4,139,5,5,0,68,194,5,3,139,5,5,0,70,194,5,4,139,5,5,0,70,194,5,3,139,5,5,0,82,194,5,4,139,5,5,0,90,194,5,4,139,134,5,3,43,5,162,0,0,134,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,156,5,0,46,194,5,4,139,5,5,0,46,194,5,4,139,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,156,5,0,58,194,5,3,139,5,5,0,58,194,5,3,139,156,5,0,64,194,5,4,139,5,5,0,64,194,5,4,139,156,5,0,68,194,5,4,139,5,5,0,68,194,5,4,139,156,5,0,76,194,5,4,139,5,5,0,76,194,5,4,139,156,5,0,78,194,5,4,139,5,5,0,78,194,5,4,139,156,5,0,82,194,5,3,139,5,5,0,82,194,5,3,139,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,156,5,0,92,194,5,4,139,5,5,0,92,194,5,4,139,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,156,5,0,82,5,150,0,0,194,5,4,139,5,5,0,82,5,150,0,0,194,5,4,139,134,5,2,71,5,162,0,0,134,5,3,71,5,162,0,0,5,5,2,71,5,162,0,0,5,5,3,71,5,162,0,0,156,5,0,54,194,5,4,139,5,5,0,54,194,5,4,139,156,5,0,42,5,146,0,0,194,5,4,139,5,5,0,42,5,146,0,0,194,5,4,139,160,112,0,42,162,5,0,50,194,5,4,139,5,112,0,42,19,5,0,50,194,5,4,139,156,5,0,70,5,158,0,0,194,5,4,139,5,5,0,70,5,158,0,0,194,5,4,139,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,156,5,0,70,194,5,3,139,5,164,0,0,5,5,0,70,194,5,3,139,5,164,0,0,5,5,16,12,194,5,4,139,166,5,6,96,194,5,4,139,166,5,16,96,194,5,4,139,158,5,28,96,194,5,4,139,166,5,32,96,194,5,4,139,158,5,48,96,194,5,4,139,155,5,76,96,194,5,4,139,155,5,86,96,194,5,4,139,5,5,32,96,5,150,0,0,194,5,4,139,5,5,6,96,194,5,4,139,5,5,16,96,194,5,4,139,5,5,28,96,194,5,4,139,5,5,32,96,194,5,4,139,5,5,76,96,5,150,0,0,194,5,4,139,5,5,48,96,194,5,4,139,5,5,76,96,194,5,4,139,5,5,86,96,194,5,4,139,166,5,76,96,194,5,4,139,174,5,16,97,194,5,4,139,174,5,84,97,194,5,4,139,5,5,16,97,194,5,4,139,5,5,84,97,194,5,4,139,134,5,3,43,5,200,0,0,134,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,156,5,0,44,194,5,5,139,5,5,0,44,194,5,5,139,156,5,0,46,5,160,0,0,194,5,4,139,5,5,0,46,5,160,0,0,194,5,4,139,156,5,0,48,194,5,5,139,5,5,0,48,194,5,5,139,156,5,0,50,5,164,0,0,194,5,4,139,5,5,0,50,5,164,0,0,194,5,4,139,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,156,5,0,56,194,5,5,139,5,5,0,56,194,5,5,139,156,5,0,58,5,150,0,0,194,5,4,139,5,5,0,58,5,150,0,0,194,5,4,139,156,5,0,62,194,5,4,139,5,5,0,62,194,5,4,139,156,5,0,62,194,5,5,139,5,5,0,62,194,5,5,139,156,5,0,64,194,5,5,139,5,5,0,64,194,5,5,139,156,5,0,64,194,5,5,139,5,164,0,0,5,5,0,64,194,5,5,139,5,164,0,0,156,5,0,66,194,5,4,139,5,5,0,66,194,5,4,139,156,5,0,66,194,5,5,139,5,5,0,66,194,5,5,139,156,5,0,68,194,5,5,139,5,5,0,68,194,5,5,139,156,5,0,70,194,5,3,139,194,5,4,139,5,5,0,70,194,5,3,139,194,5,4,139,156,5,0,70,194,5,3,139,5,150,0,0,5,5,0,70,194,5,3,139,5,150,0,0,156,5,0,70,5,164,0,0,194,5,4,139,5,5,0,70,5,164,0,0,194,5,4,139,156,5,0,72,194,5,4,139,5,5,0,72,194,5,4,139,156,5,0,76,194,5,5,139,5,5,0,76,194,5,5,139,156,5,0,76,194,5,5,139,5,164,0,0,5,5,0,76,194,5,5,139,5,164,0,0,156,5,0,78,194,5,5,139,5,5,0,78,194,5,5,139,156,5,0,78,194,5,4,139,5,156,0,0,5,5,0,78,194,5,4,139,5,156,0,0,156,5,0,78,194,5,5,139,5,156,0,0,5,5,0,78,194,5,5,139,5,156,0,0,156,5,0,80,194,5,5,139,5,5,0,80,194,5,5,139,156,5,0,82,194,5,3,139,194,5,4,139,5,5,0,82,194,5,3,139,194,5,4,139,156,5,0,84,194,5,3,139,5,5,0,84,194,5,3,139,156,5,0,84,194,5,5,139,5,5,0,84,194,5,5,139,160,5,0,86,194,5,4,139,5,5,0,86,194,5,4,139,160,5,0,86,194,5,5,139,5,5,0,86,194,5,5,139,156,5,0,92,194,5,5,139,5,5,0,92,194,5,5,139,156,5,0,42,194,5,5,139,134,5,3,43,194,5,5,139,134,5,2,43,194,5,5,139,5,5,0,42,194,5,5,139,5,5,3,43,194,5,5,139,5,5,2,43,194,5,5,139,156,5,0,42,194,5,2,139,5,5,0,42,194,5,2,139,134,5,3,43,194,5,4,139,5,5,3,43,194,5,4,139,134,5,3,43,5,138,0,0,5,5,3,43,5,138,0,0,134,5,3,43,194,5,2,139,5,5,3,43,194,5,2,139,134,5,3,43,194,5,3,139,5,5,3,43,194,5,3,139,134,5,2,43,194,5,4,139,5,5,2,43,194,5,4,139,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,194,5,2,139,5,5,2,43,194,5,2,139,134,5,2,43,194,5,3,139,5,5,2,43,194,5,3,139,156,5,0,50,194,5,5,139,134,5,2,51,194,5,5,139,5,5,0,50,194,5,5,139,5,5,2,51,194,5,5,139,156,5,0,50,194,5,2,139,5,5,0,50,194,5,2,139,156,5,0,50,194,5,3,139,5,5,0,50,194,5,3,139,134,5,2,51,194,5,4,139,5,5,2,51,194,5,4,139,134,5,2,51,5,138,0,0,5,5,2,51,5,138,0,0,134,5,2,51,194,5,2,139,5,5,2,51,194,5,2,139,134,5,2,51,194,5,3,139,5,5,2,51,194,5,3,139,156,5,0,58,194,5,2,139,5,5,0,58,194,5,2,139,156,5,0,58,194,5,5,139,5,5,0,58,194,5,5,139,156,5,0,70,194,5,5,139,134,5,2,71,194,5,5,139,5,5,0,70,194,5,5,139,5,5,2,71,194,5,5,139,156,5,0,70,194,5,2,139,5,5,0,70,194,5,2,139,134,5,2,71,194,5,4,139,5,5,2,71,194,5,4,139,134,5,2,71,5,138,0,0,5,5,2,71,5,138,0,0,134,5,2,71,194,5,2,139,5,5,2,71,194,5,2,139,134,5,2,71,194,5,3,139,5,5,2,71,194,5,3,139,134,5,3,71,194,5,4,139,5,5,3,71,194,5,4,139,134,5,3,71,5,138,0,0,5,5,3,71,5,138,0,0,134,5,3,71,194,5,2,139,5,5,3,71,194,5,2,139,134,5,3,71,194,5,3,139,5,5,3,71,194,5,3,139,134,5,3,71,194,5,5,139,134,5,2,71,5,190,0,0,194,5,5,139,5,5,3,71,194,5,5,139,5,5,2,71,5,190,0,0,194,5,5,139,156,5,0,82,194,5,5,139,5,5,0,82,194,5,5,139,156,5,0,82,194,5,2,139,5,5,0,82,194,5,2,139,134,5,2,83,194,5,4,139,5,5,2,83,194,5,4,139,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,83,194,5,2,139,5,5,2,83,194,5,2,139,134,5,2,83,194,5,3,139,5,5,2,83,194,5,3,139,134,5,2,83,194,5,5,139,5,5,2,83,194,5,5,139,156,5,0,90,194,5,5,139,5,5,0,90,194,5,5,139,156,5,0,90,194,5,2,139,5,5,0,90,194,5,2,139,156,5,0,90,194,5,3,139,5,5,0,90,194,5,3,139,5,5,6,96,5,132,0,0,194,5,4,139,5,5,6,96,5,134,0,0,194,5,4,139,166,5,6,96,5,132,0,0,194,5,4,139,166,5,6,96,5,134,0,0,194,5,4,139,5,5,16,96,5,132,0,0,194,5,4,139,5,5,16,96,5,134,0,0,194,5,4,139,166,5,16,96,5,132,0,0,194,5,4,139,166,5,16,96,5,134,0,0,194,5,4,139,5,5,28,96,5,132,0,0,194,5,4,139,5,5,28,96,5,134,0,0,194,5,4,139,158,5,28,96,5,132,0,0,194,5,4,139,158,5,28,96,5,134,0,0,194,5,4,139,5,5,32,96,5,132,0,0,194,5,4,139,5,5,32,96,5,134,0,0,194,5,4,139,166,5,32,96,5,132,0,0,194,5,4,139,166,5,32,96,5,134,0,0,194,5,4,139,5,5,48,96,5,132,0,0,194,5,4,139,5,5,48,96,5,134,0,0,194,5,4,139,158,5,48,96,5,132,0,0,194,5,4,139,158,5,48,96,5,134,0,0,194,5,4,139,5,5,76,96,5,132,0,0,194,5,4,139,5,5,76,96,5,134,0,0,194,5,4,139,155,5,76,96,5,134,0,0,194,5,4,139,5,5,86,96,5,132,0,0,194,5,4,139,5,5,86,96,5,134,0,0,194,5,4,139,155,5,86,96,5,132,0,0,194,5,4,139,155,5,86,96,5,134,0,0,194,5,4,139,5,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,6,96,194,5,4,139,5,216,0,0,5,5,28,96,194,5,4,139,5,216,0,0,193,9,22,12,194,5,4,139,193,16,22,12,194,5,4,139,5,5,86,96,194,5,4,139,5,216,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,2,3,3,235,134,5,6,3,2,235,134,5,0,50,156,5,48,0,2,3,2,243,134,5,0,70,156,5,1,0,2,3,255,255,2,71,134,5,27,3,255,255,3,71,134,5,0,82,156,5,48,0,27,3,255,255,2,83,134,5,0,42,5,5,1,0,2,3,3,235,5,5,6,3,2,235,5,5,0,50,5,5,48,0,2,3,2,243,5,5,0,70,5,5,1,0,2,3,255,255,2,71,5,5,27,3,255,255,3,71,5,5,0,82,5,5,48,0,27,3,255,255,2,83,5,5,156,42,196,162,1,0,2,3,4,192,197,162,6,3,4,192,197,226,5,42,196,162,1,0,2,3,5,192,197,34,6,3,5,192,197,98,156,50,196,162,48,0,2,3,6,192,197,34,5,50,196,162,48,0,2,3,6,192,197,98,156,82,196,162,48,0,27,3,9,192,197,162,5,82,196,162,48,0,27,3,9,192,197,226,3,71,134,5,48,0,2,3,10,192,197,162,3,71,5,5,48,0,2,3,10,192,197,226,156,70,196,162,1,0,2,3,11,192,197,226,27,3,12,192,197,34,5,70,196,162,1,0,2,3,12,192,197,98,27,3,12,192,197,162,156,50,196,160,48,0,2,3,15,192,197,162,5,50,196,160,48,0,2,3,15,192,197,226,156,42,196,200,1,0,2,3,22,192,197,162,6,3,22,192,197,226,5,42,196,200,1,0,2,3,23,192,197,34,6,3,23,192,197,98,156,50,196,204,48,0,2,3,26,192,197,34,5,50,196,204,48,0,2,3,26,192,197,98,156,50,196,208,48,0,2,3,26,192,197,162,5,50,196,208,48,0,2,3,26,192,197,226,41,0,197,226,1,0,2,3,42,192,197,34,6,3,42,192,197,98,42,0,197,162,1,0,2,3,42,192,197,226,6,3,43,192,197,34,47,0,197,226,48,0,2,3,48,192,197,34,48,0,197,98,48,0,2,3,48,192,197,162,52,0,197,226,48,0,2,3,53,192,197,34,53,0,197,98,48,0,2,3,53,192,197,162,58,0,197,98,48,0,2,3,58,192,197,163,59,0,197,2,48,0,2,3,59,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,68,185,72,185,76,28,4,185,92,185,96,185,100,186,104,186,112,185,116,185,120,185,124,186,128,30,4,185,144,185,148,185,156,186,160,185,164,32,4,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,68,168,72,168,76,36,4,168,92,168,96,168,100,168,104,168,112,168,116,168,120,168,124,168,128,38,4,168,144,168,148,168,156,168,160,168,164,40,4,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,153,57,217,57,185,64,185,57,121,58,89,58,0,8,249,74,154,85,218,85,185,88,122,86,154,105,218,105,26,106,122,106,217,76,186,129,153,137,217,137,185,140,185,137,121,138,136,14,217,138,153,173,217,173,25,174,121,174,217,189,185,196,2,8,136,57,200,57,168,64,168,57,104,58,72,58,4,8,232,74,136,85,200,85,168,88,104,86,136,105,200,105,8,106,104,106,200,76,168,129,136,137,200,137,168,140,168,137,104,138,128,14,200,138,136,173,200,173,8,174,104,174,200,189,168,196,104,190,57,59,40,59,185,60,168,60,42,4,44,4,217,73,200,73,25,74,8,74,185,74,168,74,57,74,40,74,57,78,40,78,185,80,168,80,58,87,40,87,250,85,232,85,186,86,168,86,46,4,48,4,58,86,40,86,25,98,8,98,249,97,232,97,185,98,168,98,249,98,232,98,25,102,8,102,89,103,72,103,186,105,168,105,58,107,40,107,250,105,232,105,26,107,8,107,186,106,168,108,6,8,8,8,26,114,8,114,249,118,232,118,168,152,217,121,200,121,249,122,232,122,57,122,40,122,121,123,104,123,89,123,72,123,218,129,200,129,250,130,232,130,58,130,40,130,10,8,185,132,168,132,57,139,40,139,249,137,232,137,153,138,136,138,12,8,14,8,217,157,200,157,249,158,232,158,57,158,40,158,218,161,200,161,26,162,8,162,250,162,232,162,58,162,40,162,249,166,232,166,57,166,40,166,185,168,168,168,185,173,168,173,57,175,40,175,249,173,232,173,89,174,72,174,153,174,136,174,50,4,52,4,25,182,8,182,25,190,8,190,121,190,217,193,200,193,185,194,168,194,57,194,40,194,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,84,200,160,169,160,200,56,169,84,187,104,187,112,169,104,169,112,169,200,169,128,217,136,187,84,200,136,169,84,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,84,255,5,185,136,255,5,185,172,255,5,168,56,255,5,168,84,255,5,168,136,255,5,168,172,255,5,25,59,255,5,8,59,255,5,26,87,255,5,8,87,255,5,25,175,255,5,8,175,255,1,3,0,69,0,52,0,61,0,195,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,108,83,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,228,41,0,0,228,41,0,0,228,41,0,0,228,41,0,0,212,63,0,0,212,63,0,0,212,76,0,0,70,77,0,0,84,83,0,0,50,105,114,84,1,0,64,8,145,1,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,111,0,119,0,124,0,132,0,140,0,148,0,48,0,56,0,48,0,56,0,48,0,56,0,156,0,164,0,172,0,180,0,187,0,195,0,200,0,208,0,216,0,224,0,228,0,236,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,11,1,19,1,27,1,35,1,43,1,51,1,59,1,66,1,74,1,82,1,90,1,98,1,106,1,113,1,121,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,252,0,48,0,48,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,188,1,240,1,48,2,192,0,192,0,192,0,112,2,176,2,236,2,32,3,96,3,144,3,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,174,0,202,97,174,0,202,130,174,0,202,163,174,0,202,196,174,0,202,229,174,0,202,6,175,0,202,39,175,0,202,72,175,0,202,105,175,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,32,1,0,156,5,0,48,201,134,8,0,156,5,0,52,201,68,9,0,156,5,0,56,156,5,0,58,156,5,0,60,201,128,33,0,156,5,0,64,156,5,0,66,201,0,41,0,201,102,67,0,201,192,68,0,201,132,76,0,156,5,0,76,156,5,0,78,201,64,105,0,201,198,121,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,166,122,0,5,5,0,44,201,192,123,0,5,5,0,48,201,198,127,0,5,5,0,52,201,132,128,0,5,5,0,56,5,5,0,58,5,5,0,60,201,160,140,0,5,5,0,64,5,5,0,66,201,160,144,0,201,70,156,0,201,160,157,0,201,196,161,0,5,5,0,76,5,5,0,78,201,32,176,0,201,166,184,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,197,194,91,0,134,5,3,43,197,2,92,0,196,150,156,42,196,146,156,42,197,194,105,0,196,160,156,46,196,138,156,50,197,66,92,0,134,5,2,51,196,150,156,50,196,138,156,58,197,130,92,0,196,142,156,58,196,150,156,58,160,112,0,48,197,194,92,0,196,138,156,70,197,2,93,0,134,5,2,71,197,66,93,0,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,197,130,93,0,196,142,156,82,196,150,156,82,197,194,93,0,160,5,38,93,197,2,174,0,196,138,5,42,197,2,94,0,5,5,3,43,197,66,94,0,196,150,5,42,196,146,5,42,197,34,106,0,196,160,5,46,196,138,5,50,197,130,94,0,5,5,2,51,196,150,5,50,196,138,5,58,197,194,94,0,196,142,5,58,196,150,5,58,5,112,0,48,197,2,95,0,196,138,5,70,197,66,95,0,5,5,2,71,197,130,95,0,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,197,194,95,0,196,142,5,82,196,150,5,82,197,2,96,0,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,201,134,185,0,201,166,186,0,197,66,97,0,197,130,97,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,187,0,201,134,188,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,98,0,197,130,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,98,0,197,2,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,99,0,197,130,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,99,0,197,2,100,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,100,0,197,130,100,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,100,0,197,2,101,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,189,0,201,6,190,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,101,0,197,2,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,190,0,201,134,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,102,0,197,35,103,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,192,0,201,102,193,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,104,0,197,194,104,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,105,0,197,99,105,0,197,195,105,0,197,35,106,0,197,131,106,0,197,227,106,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,194,0,201,70,195,0,192,0,0,0,192,0,0,0,197,195,107,0,197,35,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,194,5,3,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,2,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,5,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,192,0,0,0,197,2,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,108,0,197,194,108,0,192,0,0,0,197,2,109,0,197,66,109,0,197,130,109,0,192,0,0,0,197,194,109,0,192,0,0,0,197,2,110,0,197,66,110,0,197,131,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,110,0,197,34,111,0,197,98,111,0,197,162,111,0,197,227,111,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,112,0,197,130,112,0,197,194,112,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,114,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,196,0,201,38,197,0,192,0,0,0,192,0,0,0,197,66,115,0,197,130,115,0,192,0,0,0,192,0,0,0,197,195,115,0,197,35,116,0,192,0,0,0,192,0,0,0,197,130,116,0,197,194,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,117,0,197,99,117,0,201,70,198,0,201,6,199,0,201,198,199,0,201,134,200,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,118,0,197,2,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,119,0,197,163,119,0,197,2,120,0,197,66,120,0,197,130,120,0,197,194,120,0,192,0,0,0,192,0,0,0,197,2,121,0,197,66,121,0,197,131,121,0,197,227,121,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,122,0,197,130,122,0,192,0,0,0,192,0,0,0,197,194,122,0,197,2,123,0,192,0,0,0,192,0,0,0,197,66,123,0,197,130,123,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,123,0,197,35,124,0,197,131,124,0,197,227,124,0,192,0,0,0,192,0,0,0,197,67,125,0,197,163,125,0,197,2,126,0,197,66,126,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,126,0,197,194,126,0,197,3,127,0,197,99,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,127,0,197,2,128,0,197,67,128,0,197,163,128,0,192,0,0,0,192,0,0,0,197,3,129,0,197,99,129,0,192,0,0,0,192,0,0,0,197,194,129,0,197,2,130,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,130,0,197,163,130,0,192,0,0,0,192,0,0,0,197,2,131,0,197,66,131,0,197,130,131,0,197,194,131,0,192,0,0,0,192,0,0,0,197,2,132,0,197,66,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,132,0,197,194,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,133,0,197,66,133,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,201,0,201,102,202,0,197,2,135,0,197,66,135,0,197,130,135,0,197,194,135,0,197,2,136,0,197,66,136,0,197,130,136,0,197,194,136,0,197,2,137,0,197,66,137,0,197,194,133,0,197,130,134,0,197,130,137,0,197,194,137,0,197,2,138,0,197,66,138,0,197,130,138,0,197,194,138,0,197,2,139,0,197,66,139,0,197,2,134,0,197,194,134,0,201,134,203,0,201,70,204,0,197,130,140,0,197,194,140,0,197,2,141,0,197,66,141,0,197,130,141,0,197,194,141,0,197,2,142,0,197,66,142,0,197,130,142,0,197,194,142,0,197,2,143,0,197,66,143,0,197,194,139,0,197,66,140,0,197,130,143,0,197,194,143,0,197,2,144,0,197,66,144,0,201,6,205,0,201,198,205,0,197,130,145,0,197,194,145,0,197,2,146,0,197,66,146,0,197,130,146,0,197,194,146,0,197,2,147,0,197,66,147,0,197,130,147,0,197,194,147,0,197,194,144,0,197,66,145,0,197,2,148,0,197,66,148,0,197,130,148,0,197,194,148,0,197,2,149,0,197,66,149,0,197,130,149,0,197,194,149,0,201,134,206,0,201,70,207,0,197,66,151,0,197,130,151,0,197,194,151,0,197,2,152,0,197,66,152,0,197,130,152,0,197,194,152,0,197,2,153,0,197,66,153,0,197,130,153,0,197,194,153,0,197,2,154,0,197,66,154,0,197,130,154,0,192,0,0,0,192,0,0,0,197,194,154,0,197,2,155,0,197,66,155,0,197,130,155,0,197,194,155,0,197,2,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,156,0,197,163,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,157,0,197,99,157,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,157,0,197,35,158,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,158,0,197,227,158,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,159,0,197,163,159,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,160,0,197,99,160,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,160,0,197,35,161,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,161,0,197,227,161,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,162,0,197,163,162,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,163,0,197,99,163,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,163,0,197,35,164,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,164,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,164,0,197,67,165,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,165,0,197,3,166,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,110,0,192,0,0,0,197,34,111,0,192,0,0,0,197,98,111,0,192,0,0,0,197,162,111,0,192,0,0,0,197,66,112,0,192,0,0,0,197,130,112,0,192,0,0,0,197,194,112,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,166,0,197,228,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,167,0,197,228,167,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,168,0,197,228,168,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,169,0,197,228,169,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,170,0,197,228,170,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,171,0,197,228,171,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,109,0,192,0,0,0,197,66,109,0,192,0,0,0,192,0,0,0,197,34,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,109,0,192,0,0,0,192,0,0,0,197,98,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,111,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,110,0,192,0,0,0,192,0,0,0,197,130,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,109,0,192,0,0,0,197,66,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,128,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,194,5,5,139,70,5,2,47,194,5,5,139,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,135,5,3,55,5,150,0,0,194,5,4,139,70,5,3,55,5,150,0,0,194,5,4,139,135,5,3,55,5,138,0,0,135,5,3,55,194,5,4,139,135,5,3,55,5,142,0,0,70,5,3,55,5,138,0,0,70,5,3,55,194,5,4,139,70,5,3,55,5,142,0,0,135,5,2,55,5,142,0,0,70,5,2,55,5,142,0,0,135,5,3,55,194,5,3,139,70,5,3,55,194,5,3,139,135,5,3,55,5,164,0,0,70,5,3,55,5,164,0,0,135,5,3,55,5,140,0,0,70,5,3,55,5,140,0,0,135,5,3,55,5,162,0,0,70,5,3,55,5,162,0,0,135,5,3,55,5,156,0,0,135,5,3,55,5,144,0,0,70,5,3,55,5,144,0,0,135,5,3,55,5,184,0,0,70,5,3,55,5,184,0,0,135,5,3,55,5,188,0,0,70,5,3,55,5,188,0,0,135,5,2,55,5,144,0,0,70,5,2,55,5,144,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,194,5,5,139,70,5,2,55,194,5,5,139,135,5,2,55,5,150,0,0,70,5,2,55,5,150,0,0,135,5,2,55,5,160,0,0,70,5,2,55,5,160,0,0,135,5,2,55,5,206,0,0,70,5,2,55,5,206,0,0,135,5,3,55,5,208,0,0,70,5,3,55,5,208,0,0,70,5,2,55,5,210,0,0,135,5,3,55,194,5,2,139,70,5,3,55,194,5,2,139,135,5,3,55,194,5,5,139,70,5,3,55,194,5,5,139,135,5,2,63,5,142,0,0,70,5,2,63,5,142,0,0,135,5,2,63,5,144,0,0,70,5,2,63,5,144,0,0,135,5,2,63,5,156,0,0,70,5,2,63,5,156,0,0,135,5,2,63,194,5,5,139,70,5,2,63,194,5,5,139,135,5,2,63,5,150,0,0,70,5,2,63,5,150,0,0,135,5,2,63,5,160,0,0,70,5,2,63,5,160,0,0,135,5,2,63,5,206,0,0,70,5,2,63,5,206,0,0,70,5,2,63,5,210,0,0,136,5,4,69,5,142,0,0,71,5,4,69,5,142,0,0,136,5,4,69,5,144,0,0,71,5,4,69,5,144,0,0,136,5,4,69,5,156,0,0,71,5,4,69,5,156,0,0,136,5,4,69,194,5,5,139,71,5,4,69,194,5,5,139,136,5,4,69,5,150,0,0,71,5,4,69,5,150,0,0,136,5,4,69,5,160,0,0,71,5,4,69,5,160,0,0,136,5,4,69,5,206,0,0,71,5,4,69,5,206,0,0,71,5,4,69,5,210,0,0,70,5,4,69,5,142,0,0,70,5,4,69,5,144,0,0,70,5,4,69,5,156,0,0,70,5,4,69,194,5,5,139,70,5,4,69,5,150,0,0,70,5,4,69,5,160,0,0,70,5,4,69,5,206,0,0,70,5,4,69,5,210,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,3,69,5,140,0,0,70,5,3,69,5,140,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,160,0,0,70,5,3,69,5,160,0,0,135,5,2,69,5,142,0,0,70,5,2,69,5,142,0,0,135,5,3,69,5,144,0,0,70,5,3,69,5,144,0,0,135,5,3,69,194,5,4,139,70,5,3,69,194,5,4,139,135,5,2,69,5,144,0,0,70,5,2,69,5,144,0,0,135,5,3,69,5,164,0,0,70,5,3,69,5,164,0,0,135,5,2,69,5,156,0,0,70,5,2,69,5,156,0,0,135,5,2,69,194,5,5,139,70,5,2,69,194,5,5,139,135,5,2,69,5,150,0,0,70,5,2,69,5,150,0,0,135,5,2,69,5,160,0,0,70,5,2,69,5,160,0,0,135,5,2,69,5,206,0,0,70,5,2,69,5,206,0,0,70,5,2,69,5,210,0,0,135,5,2,73,5,142,0,0,70,5,2,73,5,142,0,0,135,5,2,73,5,144,0,0,70,5,2,73,5,144,0,0,135,5,2,73,5,156,0,0,70,5,2,73,5,156,0,0,135,5,2,73,194,5,5,139,70,5,2,73,194,5,5,139,135,5,2,73,5,150,0,0,70,5,2,73,5,150,0,0,135,5,2,73,5,160,0,0,70,5,2,73,5,160,0,0,135,5,2,73,5,206,0,0,70,5,2,73,5,206,0,0,70,5,2,73,5,210,0,0,135,5,2,75,5,150,0,0,194,5,4,139,70,5,2,75,5,150,0,0,194,5,4,139,135,5,2,75,5,138,0,0,135,5,2,75,194,5,4,139,135,5,2,75,5,142,0,0,70,5,2,75,5,138,0,0,70,5,2,75,194,5,4,139,70,5,2,75,5,142,0,0,135,5,2,75,194,5,3,139,70,5,2,75,194,5,3,139,135,5,2,75,5,164,0,0,70,5,2,75,5,164,0,0,135,5,2,75,5,140,0,0,70,5,2,75,5,140,0,0,135,5,2,75,5,146,0,0,70,5,2,75,5,146,0,0,135,5,2,75,5,152,0,0,70,5,2,75,5,152,0,0,135,5,2,75,5,162,0,0,70,5,2,75,5,162,0,0,135,5,2,75,5,190,0,0,70,5,2,75,5,190,0,0,135,5,2,75,5,144,0,0,70,5,2,75,5,144,0,0,135,5,2,75,5,150,0,0,5,164,0,0,70,5,2,75,5,150,0,0,5,164,0,0,135,5,2,75,5,150,0,0,5,144,0,0,70,5,2,75,5,150,0,0,5,144,0,0,135,5,2,75,5,150,0,0,5,138,0,0,70,5,2,75,5,150,0,0,5,138,0,0,135,5,2,75,5,184,0,0,70,5,2,75,5,184,0,0,135,5,2,75,5,188,0,0,70,5,2,75,5,188,0,0,135,5,2,75,5,198,0,0,70,5,2,75,5,198,0,0,135,5,2,75,5,208,0,0,70,5,2,75,5,208,0,0,135,5,2,75,5,204,0,0,70,5,2,75,5,204,0,0,135,5,2,75,194,5,3,139,194,5,4,139,70,5,2,75,194,5,3,139,194,5,4,139,135,5,2,75,5,164,0,0,5,150,0,0,70,5,2,75,5,164,0,0,5,150,0,0,135,5,2,75,194,5,5,139,70,5,2,75,194,5,5,139,135,5,2,75,194,5,2,139,70,5,2,75,194,5,2,139,135,5,2,75,5,190,0,0,194,5,4,139,70,5,2,75,5,190,0,0,194,5,4,139,135,5,2,75,5,190,0,0,5,138,0,0,70,5,2,75,5,190,0,0,5,138,0,0,135,5,2,75,5,190,0,0,194,5,2,139,70,5,2,75,5,190,0,0,194,5,2,139,135,5,2,75,5,190,0,0,194,5,3,139,70,5,2,75,5,190,0,0,194,5,3,139,135,5,2,75,5,190,0,0,194,5,5,139,70,5,2,75,5,190,0,0,194,5,5,139,135,5,2,81,5,142,0,0,70,5,2,81,5,142,0,0,135,5,3,81,194,5,4,139,70,5,3,81,194,5,4,139,135,5,3,81,5,160,0,0,70,5,3,81,5,160,0,0,135,5,3,81,5,144,0,0,70,5,3,81,5,144,0,0,135,5,3,81,5,184,0,0,70,5,3,81,5,184,0,0,135,5,3,81,5,188,0,0,70,5,3,81,5,188,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,194,5,5,139,70,5,2,81,194,5,5,139,135,5,2,81,5,150,0,0,70,5,2,81,5,150,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,206,0,0,70,5,2,81,5,206,0,0,135,5,3,81,5,156,0,0,70,5,3,81,5,156,0,0,135,5,3,81,194,5,5,139,70,5,3,81,194,5,5,139,135,5,3,81,194,5,5,139,5,164,0,0,70,5,3,81,194,5,5,139,5,164,0,0,135,5,3,81,5,210,0,0,70,5,3,81,5,210,0,0,70,5,2,81,5,210,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,194,5,5,139,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,5,5,3,55,5,150,0,0,194,5,4,139,5,5,3,55,5,138,0,0,5,5,3,55,194,5,4,139,5,5,3,55,5,142,0,0,5,5,2,55,5,142,0,0,5,5,3,55,194,5,3,139,5,5,3,55,5,164,0,0,5,5,3,55,5,140,0,0,5,5,3,55,5,162,0,0,5,5,3,55,5,144,0,0,5,5,3,55,5,184,0,0,5,5,3,55,5,188,0,0,5,5,2,55,5,144,0,0,5,5,2,55,5,156,0,0,5,5,2,55,194,5,5,139,5,5,2,55,5,150,0,0,5,5,2,55,5,160,0,0,5,5,2,55,5,206,0,0,5,5,3,55,5,208,0,0,5,5,2,55,5,210,0,0,5,5,3,55,194,5,2,139,5,5,3,55,194,5,5,139,5,5,2,63,5,142,0,0,5,5,2,63,5,144,0,0,5,5,2,63,5,156,0,0,5,5,2,63,194,5,5,139,5,5,2,63,5,150,0,0,5,5,2,63,5,160,0,0,5,5,2,63,5,206,0,0,5,5,2,63,5,210,0,0,5,5,4,69,5,142,0,0,5,5,4,69,5,144,0,0,5,5,4,69,5,156,0,0,5,5,4,69,194,5,5,139,5,5,4,69,5,150,0,0,5,5,4,69,5,160,0,0,5,5,4,69,5,206,0,0,5,5,4,69,5,210,0,0,5,5,3,69,5,142,0,0,5,5,3,69,5,140,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,160,0,0,5,5,2,69,5,142,0,0,5,5,3,69,5,144,0,0,5,5,3,69,194,5,4,139,5,5,2,69,5,144,0,0,5,5,3,69,5,164,0,0,5,5,2,69,5,156,0,0,5,5,2,69,194,5,5,139,5,5,2,69,5,150,0,0,5,5,2,69,5,160,0,0,5,5,2,69,5,206,0,0,5,5,2,69,5,210,0,0,5,5,2,73,5,142,0,0,5,5,2,73,5,144,0,0,5,5,2,73,5,156,0,0,5,5,2,73,194,5,5,139,5,5,2,73,5,150,0,0,5,5,2,73,5,160,0,0,5,5,2,73,5,206,0,0,5,5,2,73,5,210,0,0,5,5,2,75,5,150,0,0,194,5,4,139,5,5,2,75,5,138,0,0,5,5,2,75,194,5,4,139,5,5,2,75,5,142,0,0,5,5,2,75,194,5,3,139,5,5,2,75,5,164,0,0,5,5,2,75,5,140,0,0,5,5,2,75,5,146,0,0,5,5,2,75,5,152,0,0,5,5,2,75,5,162,0,0,5,5,2,75,5,190,0,0,5,5,2,75,5,144,0,0,5,5,2,75,5,150,0,0,5,164,0,0,5,5,2,75,5,150,0,0,5,144,0,0,5,5,2,75,5,150,0,0,5,138,0,0,5,5,2,75,5,184,0,0,5,5,2,75,5,188,0,0,5,5,2,75,5,198,0,0,5,5,2,75,5,208,0,0,5,5,2,75,5,204,0,0,5,5,2,75,194,5,3,139,194,5,4,139,5,5,2,75,5,164,0,0,5,150,0,0,5,5,2,75,194,5,5,139,5,5,2,75,194,5,2,139,5,5,2,75,5,190,0,0,194,5,4,139,5,5,2,75,5,190,0,0,5,138,0,0,5,5,2,75,5,190,0,0,194,5,2,139,5,5,2,75,5,190,0,0,194,5,3,139,5,5,2,75,5,190,0,0,194,5,5,139,5,5,2,81,5,142,0,0,5,5,3,81,194,5,4,139,5,5,3,81,5,160,0,0,5,5,3,81,5,144,0,0,5,5,3,81,5,184,0,0,5,5,3,81,5,188,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,156,0,0,5,5,2,81,194,5,5,139,5,5,2,81,5,150,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,206,0,0,5,5,3,81,5,156,0,0,5,5,3,81,194,5,5,139,5,5,3,81,194,5,5,139,5,164,0,0,5,5,3,81,5,210,0,0,5,5,2,81,5,210,0,0,156,5,0,42,194,5,4,139,156,5,0,42,194,5,3,139,156,5,0,50,194,5,4,139,156,5,0,58,194,5,4,139,156,5,0,68,194,5,3,139,156,5,0,70,194,5,4,139,156,5,0,70,194,5,3,139,156,5,0,82,194,5,4,139,156,5,0,90,194,5,4,139,5,5,0,42,194,5,4,139,5,5,0,42,194,5,3,139,5,5,0,50,194,5,4,139,5,5,0,58,194,5,4,139,5,5,0,68,194,5,3,139,5,5,0,70,194,5,4,139,5,5,0,70,194,5,3,139,5,5,0,82,194,5,4,139,5,5,0,90,194,5,4,139,134,5,3,43,5,162,0,0,134,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,156,5,0,46,194,5,4,139,5,5,0,46,194,5,4,139,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,156,5,0,58,194,5,3,139,5,5,0,58,194,5,3,139,156,5,0,64,194,5,4,139,5,5,0,64,194,5,4,139,156,5,0,68,194,5,4,139,5,5,0,68,194,5,4,139,156,5,0,76,194,5,4,139,5,5,0,76,194,5,4,139,156,5,0,78,194,5,4,139,5,5,0,78,194,5,4,139,156,5,0,82,194,5,3,139,5,5,0,82,194,5,3,139,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,156,5,0,92,194,5,4,139,5,5,0,92,194,5,4,139,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,156,5,0,82,5,150,0,0,194,5,4,139,5,5,0,82,5,150,0,0,194,5,4,139,134,5,2,71,5,162,0,0,134,5,3,71,5,162,0,0,5,5,2,71,5,162,0,0,5,5,3,71,5,162,0,0,156,5,0,54,194,5,4,139,5,5,0,54,194,5,4,139,156,5,0,42,5,146,0,0,194,5,4,139,5,5,0,42,5,146,0,0,194,5,4,139,160,112,0,42,162,5,0,50,194,5,4,139,5,112,0,42,19,5,0,50,194,5,4,139,156,5,0,70,5,158,0,0,194,5,4,139,5,5,0,70,5,158,0,0,194,5,4,139,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,156,5,0,70,194,5,3,139,5,164,0,0,5,5,0,70,194,5,3,139,5,164,0,0,5,5,16,12,194,5,4,139,166,5,6,96,194,5,4,139,166,5,16,96,194,5,4,139,158,5,28,96,194,5,4,139,166,5,32,96,194,5,4,139,158,5,48,96,194,5,4,139,155,5,76,96,194,5,4,139,155,5,86,96,194,5,4,139,5,5,32,96,5,150,0,0,194,5,4,139,5,5,6,96,194,5,4,139,5,5,16,96,194,5,4,139,5,5,28,96,194,5,4,139,5,5,32,96,194,5,4,139,5,5,76,96,5,150,0,0,194,5,4,139,5,5,48,96,194,5,4,139,5,5,76,96,194,5,4,139,5,5,86,96,194,5,4,139,166,5,76,96,194,5,4,139,174,5,16,97,194,5,4,139,174,5,84,97,194,5,4,139,5,5,16,97,194,5,4,139,5,5,84,97,194,5,4,139,134,5,3,43,5,200,0,0,134,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,156,5,0,44,194,5,5,139,5,5,0,44,194,5,5,139,156,5,0,46,5,160,0,0,194,5,4,139,5,5,0,46,5,160,0,0,194,5,4,139,156,5,0,48,194,5,5,139,5,5,0,48,194,5,5,139,156,5,0,50,5,164,0,0,194,5,4,139,5,5,0,50,5,164,0,0,194,5,4,139,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,156,5,0,56,194,5,5,139,5,5,0,56,194,5,5,139,156,5,0,58,5,150,0,0,194,5,4,139,5,5,0,58,5,150,0,0,194,5,4,139,156,5,0,62,194,5,4,139,5,5,0,62,194,5,4,139,156,5,0,62,194,5,5,139,5,5,0,62,194,5,5,139,156,5,0,64,194,5,5,139,5,5,0,64,194,5,5,139,156,5,0,64,194,5,5,139,5,164,0,0,5,5,0,64,194,5,5,139,5,164,0,0,156,5,0,66,194,5,4,139,5,5,0,66,194,5,4,139,156,5,0,66,194,5,5,139,5,5,0,66,194,5,5,139,156,5,0,68,194,5,5,139,5,5,0,68,194,5,5,139,156,5,0,70,194,5,3,139,194,5,4,139,5,5,0,70,194,5,3,139,194,5,4,139,156,5,0,70,194,5,3,139,5,150,0,0,5,5,0,70,194,5,3,139,5,150,0,0,156,5,0,70,5,164,0,0,194,5,4,139,5,5,0,70,5,164,0,0,194,5,4,139,156,5,0,72,194,5,4,139,5,5,0,72,194,5,4,139,156,5,0,76,194,5,5,139,5,5,0,76,194,5,5,139,156,5,0,76,194,5,5,139,5,164,0,0,5,5,0,76,194,5,5,139,5,164,0,0,156,5,0,78,194,5,5,139,5,5,0,78,194,5,5,139,156,5,0,78,194,5,4,139,5,156,0,0,5,5,0,78,194,5,4,139,5,156,0,0,156,5,0,78,194,5,5,139,5,156,0,0,5,5,0,78,194,5,5,139,5,156,0,0,156,5,0,80,194,5,5,139,5,5,0,80,194,5,5,139,156,5,0,82,194,5,3,139,194,5,4,139,5,5,0,82,194,5,3,139,194,5,4,139,156,5,0,84,194,5,3,139,5,5,0,84,194,5,3,139,156,5,0,84,194,5,5,139,5,5,0,84,194,5,5,139,160,5,0,86,194,5,4,139,5,5,0,86,194,5,4,139,160,5,0,86,194,5,5,139,5,5,0,86,194,5,5,139,156,5,0,92,194,5,5,139,5,5,0,92,194,5,5,139,156,5,0,42,194,5,5,139,134,5,3,43,194,5,5,139,134,5,2,43,194,5,5,139,5,5,0,42,194,5,5,139,5,5,3,43,194,5,5,139,5,5,2,43,194,5,5,139,156,5,0,42,194,5,2,139,5,5,0,42,194,5,2,139,134,5,3,43,194,5,4,139,5,5,3,43,194,5,4,139,134,5,3,43,5,138,0,0,5,5,3,43,5,138,0,0,134,5,3,43,194,5,2,139,5,5,3,43,194,5,2,139,134,5,3,43,194,5,3,139,5,5,3,43,194,5,3,139,134,5,2,43,194,5,4,139,5,5,2,43,194,5,4,139,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,194,5,2,139,5,5,2,43,194,5,2,139,134,5,2,43,194,5,3,139,5,5,2,43,194,5,3,139,156,5,0,50,194,5,5,139,134,5,2,51,194,5,5,139,5,5,0,50,194,5,5,139,5,5,2,51,194,5,5,139,156,5,0,50,194,5,2,139,5,5,0,50,194,5,2,139,156,5,0,50,194,5,3,139,5,5,0,50,194,5,3,139,134,5,2,51,194,5,4,139,5,5,2,51,194,5,4,139,134,5,2,51,5,138,0,0,5,5,2,51,5,138,0,0,134,5,2,51,194,5,2,139,5,5,2,51,194,5,2,139,134,5,2,51,194,5,3,139,5,5,2,51,194,5,3,139,156,5,0,58,194,5,2,139,5,5,0,58,194,5,2,139,156,5,0,58,194,5,5,139,5,5,0,58,194,5,5,139,156,5,0,70,194,5,5,139,134,5,2,71,194,5,5,139,5,5,0,70,194,5,5,139,5,5,2,71,194,5,5,139,156,5,0,70,194,5,2,139,5,5,0,70,194,5,2,139,134,5,2,71,194,5,4,139,5,5,2,71,194,5,4,139,134,5,2,71,5,138,0,0,5,5,2,71,5,138,0,0,134,5,2,71,194,5,2,139,5,5,2,71,194,5,2,139,134,5,2,71,194,5,3,139,5,5,2,71,194,5,3,139,134,5,3,71,194,5,4,139,5,5,3,71,194,5,4,139,134,5,3,71,5,138,0,0,5,5,3,71,5,138,0,0,134,5,3,71,194,5,2,139,5,5,3,71,194,5,2,139,134,5,3,71,194,5,3,139,5,5,3,71,194,5,3,139,134,5,3,71,194,5,5,139,134,5,2,71,5,190,0,0,194,5,5,139,5,5,3,71,194,5,5,139,5,5,2,71,5,190,0,0,194,5,5,139,156,5,0,82,194,5,5,139,5,5,0,82,194,5,5,139,156,5,0,82,194,5,2,139,5,5,0,82,194,5,2,139,134,5,2,83,194,5,4,139,5,5,2,83,194,5,4,139,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,83,194,5,2,139,5,5,2,83,194,5,2,139,134,5,2,83,194,5,3,139,5,5,2,83,194,5,3,139,134,5,2,83,194,5,5,139,5,5,2,83,194,5,5,139,156,5,0,90,194,5,5,139,5,5,0,90,194,5,5,139,156,5,0,90,194,5,2,139,5,5,0,90,194,5,2,139,156,5,0,90,194,5,3,139,5,5,0,90,194,5,3,139,5,5,6,96,5,132,0,0,194,5,4,139,5,5,6,96,5,134,0,0,194,5,4,139,166,5,6,96,5,132,0,0,194,5,4,139,166,5,6,96,5,134,0,0,194,5,4,139,5,5,16,96,5,132,0,0,194,5,4,139,5,5,16,96,5,134,0,0,194,5,4,139,166,5,16,96,5,132,0,0,194,5,4,139,166,5,16,96,5,134,0,0,194,5,4,139,5,5,28,96,5,132,0,0,194,5,4,139,5,5,28,96,5,134,0,0,194,5,4,139,158,5,28,96,5,132,0,0,194,5,4,139,158,5,28,96,5,134,0,0,194,5,4,139,5,5,32,96,5,132,0,0,194,5,4,139,5,5,32,96,5,134,0,0,194,5,4,139,166,5,32,96,5,132,0,0,194,5,4,139,166,5,32,96,5,134,0,0,194,5,4,139,5,5,48,96,5,132,0,0,194,5,4,139,5,5,48,96,5,134,0,0,194,5,4,139,158,5,48,96,5,132,0,0,194,5,4,139,158,5,48,96,5,134,0,0,194,5,4,139,5,5,76,96,5,132,0,0,194,5,4,139,5,5,76,96,5,134,0,0,194,5,4,139,155,5,76,96,5,134,0,0,194,5,4,139,5,5,86,96,5,132,0,0,194,5,4,139,5,5,86,96,5,134,0,0,194,5,4,139,155,5,86,96,5,132,0,0,194,5,4,139,155,5,86,96,5,134,0,0,194,5,4,139,5,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,6,96,194,5,4,139,5,216,0,0,5,5,28,96,194,5,4,139,5,216,0,0,193,9,22,12,194,5,4,139,193,16,22,12,194,5,4,139,5,5,86,96,194,5,4,139,5,216,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,2,3,3,235,134,5,6,3,2,235,134,5,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,239,135,5,104,0,2,239,70,5,36,1,197,162,37,1,0,192,197,98,0,50,156,5,48,0,2,3,2,243,134,5,0,54,156,5,0,0,49,0,8,2,89,0,40,30,45,0,46,30,23,0,200,30,12,0,200,30,14,192,197,34,201,30,14,192,197,98,202,30,14,192,197,162,203,30,14,192,197,226,46,30,3,192,197,227,47,30,4,192,197,67,150,30,13,192,197,226,43,30,9,0,43,30,13,192,197,34,44,30,13,192,197,98,45,30,13,192,197,162,40,30,12,192,197,98,41,30,12,192,197,162,42,30,12,192,197,226,34,30,20,0,37,30,9,0,37,30,11,192,197,162,38,30,11,192,197,226,39,30,12,192,197,34,34,30,10,192,197,226,35,30,11,192,197,34,36,30,11,192,197,98,11,2,9,0,11,2,10,192,197,34,30,2,10,192,197,98,31,2,10,192,197,162,8,2,9,192,197,98,9,2,9,192,197,162,10,2,9,192,197,226,36,1,45,0,44,1,23,0,47,1,12,0,47,1,8,192,197,98,48,1,8,192,197,162,207,1,8,192,197,226,208,1,9,192,197,34,44,1,7,192,197,162,45,1,7,192,197,226,46,1,8,192,197,34,41,1,9,0,41,1,6,192,197,226,42,1,7,192,197,34,43,1,7,192,197,98,36,1,6,192,197,34,37,1,6,192,197,98,40,1,6,192,197,162,206,0,20,0,237,0,9,0,237,0,5,192,197,162,238,0,5,192,197,226,239,0,4,192,197,66,206,0,5,192,197,34,207,0,3,192,197,226,236,0,5,192,197,98,105,0,14,0,105,0,6,0,204,0,4,192,197,162,205,0,4,192,197,226,240,127,3,55,70,5,68,3,4,192,197,67,72,0,2,247,135,5,73,0,3,0,104,0,2,247,70,5,240,127,3,55,135,5,68,3,3,192,197,227,0,62,156,5,16,0,36,30,29,0,40,30,15,0,40,30,17,192,197,162,41,30,17,192,197,226,42,30,18,192,197,34,43,30,18,192,197,98,150,30,18,192,197,162,36,30,16,192,197,162,37,30,16,192,197,226,38,30,17,192,197,34,39,30,17,192,197,98,30,2,12,0,30,2,15,192,197,162,31,2,15,192,197,226,34,30,16,192,197,34,35,30,16,192,197,98,72,0,2,255,135,5,104,0,2,255,70,5,36,1,15,192,197,34,37,1,15,192,197,98,0,68,156,5,32,0,244,1,57,0,36,30,29,0,40,30,15,0,40,30,30,192,197,162,41,30,30,192,197,226,42,30,31,192,197,34,43,30,31,192,197,98,150,30,31,192,197,162,36,30,29,192,197,162,37,30,29,192,197,226,38,30,30,192,197,34,39,30,30,192,197,98,32,30,12,0,32,30,28,192,197,162,33,30,28,192,197,226,34,30,29,192,197,34,35,30,29,192,197,98,244,1,27,192,197,162,245,1,27,192,197,226,30,2,28,192,197,34,31,2,28,192,197,98,32,1,26,0,36,1,12,0,36,1,26,192,197,162,37,1,26,192,197,226,230,1,27,192,197,34,231,1,27,192,197,98,32,1,25,192,197,162,33,1,25,192,197,226,34,1,26,192,197,34,35,1,26,192,197,98,28,1,12,0,28,1,24,192,197,162,29,1,24,192,197,226,30,1,25,192,197,34,31,1,25,192,197,98,71,0,10,0,72,0,255,255,2,69,135,5,103,0,66,0,104,0,255,255,2,69,70,5,208,127,3,69,135,5,36,30,29,0,40,30,15,0,40,30,21,192,197,98,41,30,21,192,197,162,42,30,21,192,197,226,43,30,22,192,197,34,150,30,22,192,197,98,36,30,20,192,197,98,37,30,20,192,197,162,38,30,20,192,197,226,39,30,21,192,197,34,30,2,12,0,30,2,19,192,197,98,31,2,19,192,197,162,34,30,19,192,197,226,35,30,20,192,197,34,72,0,255,255,4,69,136,5,104,0,255,255,4,69,71,5,36,1,18,192,197,226,37,1,19,192,197,34,200,127,3,69,70,5,37,30,15,0,37,30,23,192,197,98,39,30,23,192,197,162,41,30,23,192,197,226,43,30,24,192,197,34,150,30,24,192,197,98,104,0,255,255,4,69,70,5,37,1,22,192,197,162,31,2,22,192,197,226,35,30,23,192,197,34,0,70,156,5,1,0,2,3,255,255,2,71,134,5,27,3,255,255,3,71,134,5,0,72,156,5,16,0,36,30,29,0,40,30,15,0,40,30,34,192,197,98,41,30,34,192,197,162,42,30,34,192,197,226,43,30,35,192,197,34,150,30,35,192,197,98,36,30,33,192,197,98,37,30,33,192,197,162,38,30,33,192,197,226,39,30,34,192,197,34,30,2,12,0,30,2,32,192,197,98,31,2,32,192,197,162,34,30,32,192,197,226,35,30,33,192,197,34,72,0,255,255,2,73,135,5,104,0,255,255,2,73,70,5,36,1,31,192,197,226,37,1,32,192,197,34,0,74,160,5,0,0,61,0,218,1,107,0,122,30,54,0,234,30,26,0,238,30,12,0,238,30,51,192,197,99,239,30,51,192,197,195,240,30,52,192,197,35,241,30,52,192,197,131,234,30,49,192,197,227,235,30,50,192,197,67,236,30,50,192,197,163,237,30,51,192,197,3,230,30,12,0,230,30,48,192,197,162,231,30,48,192,197,226,232,30,49,192,197,35,233,30,49,192,197,131,122,30,47,192,197,99,123,30,47,192,197,195,228,30,48,192,197,34,229,30,48,192,197,98,114,30,26,0,118,30,12,0,118,30,46,192,197,34,119,30,46,192,197,98,120,30,46,192,197,163,121,30,47,192,197,3,114,30,45,192,197,34,115,30,45,192,197,98,116,30,45,192,197,162,117,30,45,192,197,226,20,2,12,0,20,2,44,192,197,34,21,2,44,192,197,98,22,2,44,192,197,162,23,2,44,192,197,226,218,1,43,192,197,3,219,1,43,192,197,99,220,1,43,192,197,195,109,1,54,0,176,1,26,0,214,1,12,0,214,1,42,192,197,67,215,1,35,192,197,163,216,1,36,192,197,3,217,1,42,192,197,163,176,1,41,192,197,34,211,1,41,192,197,98,212,1,41,192,197,162,213,1,41,192,197,227,113,1,12,0,113,1,40,192,197,34,114,1,40,192,197,98,115,1,40,192,197,162,175,1,40,192,197,226,109,1,39,192,197,34,110,1,39,192,197,98,111,1,39,192,197,162,112,1,39,192,197,226,250,0,26,0,105,1,12,0,105,1,38,192,197,34,106,1,38,192,197,98,107,1,38,192,197,162,108,1,38,192,197,226,250,0,37,192,197,98,251,0,37,192,197,162,252,0,36,192,197,2,104,1,37,192,197,226,218,0,12,0,218,0,36,192,197,162,219,0,36,192,197,226,220,0,35,192,197,162,249,0,37,192,197,34,85,0,5,0,117,0,9,0,217,0,36,192,197,98,240,127,2,75,135,5,68,3,35,192,197,163,240,127,2,75,70,5,68,3,36,192,197,3,0,80,156,5,36,0,34,30,63,0,43,30,32,0,92,30,15,0,92,30,59,192,197,227,93,30,60,192,197,67,94,30,60,192,197,162,95,30,60,192,197,226,150,30,61,192,197,34,43,30,58,192,197,162,88,30,58,192,197,226,89,30,59,192,197,34,90,30,59,192,197,98,91,30,59,192,197,162,38,30,15,0,38,30,57,192,197,98,39,30,57,192,197,162,40,30,57,192,197,226,41,30,58,192,197,34,42,30,58,192,197,98,34,30,56,192,197,98,35,30,56,192,197,162,36,30,56,192,197,226,37,30,57,192,197,34,87,1,29,0,17,2,15,0,17,2,55,192,197,34,18,2,55,192,197,98,19,2,55,192,197,162,30,2,55,192,197,226,31,2,56,192,197,34,87,1,54,192,197,34,88,1,54,192,197,98,89,1,54,192,197,162,16,2,54,192,197,226,36,1,15,0,36,1,52,192,197,226,37,1,53,192,197,34,84,1,53,192,197,98,85,1,53,192,197,162,86,1,53,192,197,226,72,0,255,255,2,81,135,5,82,0,255,255,3,81,135,5,104,0,255,255,2,81,70,5,114,0,255,255,3,81,70,5,0,82,156,5,48,0,27,3,255,255,2,83,134,5,0,42,5,5,1,0,2,3,3,235,5,5,6,3,2,235,5,5,0,46,5,5,8,0,37,30,15,0,37,30,62,192,197,34,39,30,62,192,197,98,41,30,62,192,197,162,43,30,62,192,197,226,150,30,63,192,197,34,104,0,2,239,5,5,37,1,61,192,197,98,31,2,61,192,197,162,35,30,61,192,197,226,0,50,5,5,48,0,2,3,2,243,5,5,0,54,5,5,24,0,9,2,45,0,41,30,23,0,47,30,12,0,47,30,63,192,197,99,150,30,68,192,197,66,201,30,68,192,197,130,203,30,68,192,197,194,41,30,67,192,197,130,43,30,67,192,197,194,45,30,68,192,197,2,35,30,9,0,35,30,66,192,197,194,37,30,67,192,197,2,39,30,67,192,197,66,9,2,66,192,197,2,11,2,66,192,197,66,31,2,66,192,197,130,37,1,20,0,45,1,9,0,45,1,65,192,197,66,47,1,65,192,197,130,208,1,65,192,197,194,37,1,64,192,197,130,41,1,64,192,197,194,43,1,65,192,197,2,237,0,9,0,237,0,64,192,197,2,238,0,64,192,197,66,239,0,63,192,197,98,104,0,2,247,5,5,105,0,3,0,236,0,63,192,197,194,240,127,3,55,5,5,68,3,63,192,197,99,0,62,5,5,8,0,37,30,15,0,37,30,69,192,197,194,39,30,70,192,197,2,41,30,70,192,197,66,43,30,70,192,197,130,150,30,70,192,197,194,104,0,2,255,5,5,37,1,69,192,197,2,31,2,69,192,197,66,35,30,69,192,197,130,0,68,5,5,16,0,245,1,29,0,37,30,15,0,37,30,75,192,197,130,39,30,75,192,197,194,41,30,76,192,197,2,43,30,76,192,197,66,150,30,76,192,197,130,245,1,74,192,197,130,31,2,74,192,197,194,33,30,75,192,197,2,35,30,75,192,197,66,33,1,12,0,33,1,73,192,197,130,35,1,73,192,197,194,37,1,74,192,197,2,231,1,74,192,197,66,103,0,10,0,104,0,255,255,2,69,5,5,29,1,73,192,197,2,31,1,73,192,197,66,200,127,3,69,5,5,37,30,15,0,37,30,71,192,197,194,39,30,72,192,197,2,41,30,72,192,197,66,43,30,72,192,197,130,150,30,72,192,197,194,104,0,255,255,4,69,5,5,37,1,71,192,197,2,31,2,71,192,197,66,35,30,71,192,197,130,0,70,5,5,1,0,2,3,255,255,2,71,5,5,27,3,255,255,3,71,5,5,0,72,5,5,8,0,37,30,15,0,37,30,77,192,197,130,39,30,77,192,197,194,41,30,78,192,197,2,43,30,78,192,197,66,150,30,78,192,197,130,104,0,255,255,2,73,5,5,37,1,76,192,197,194,31,2,77,192,197,2,35,30,77,192,197,66,0,74,5,5,30,0,218,1,54,0,123,30,26,0,235,30,12,0,235,30,85,192,197,227,237,30,86,192,197,67,239,30,86,192,197,163,241,30,87,192,197,3,123,30,84,192,197,163,229,30,85,192,197,2,231,30,85,192,197,66,233,30,85,192,197,131,115,30,12,0,115,30,83,192,197,130,117,30,83,192,197,194,119,30,84,192,197,2,121,30,84,192,197,67,218,1,82,192,197,67,220,1,82,192,197,163,21,2,83,192,197,2,23,2,83,192,197,66,109,1,26,0,176,1,12,0,176,1,81,192,197,98,212,1,81,192,197,162,214,1,81,192,197,227,216,1,78,192,197,195,109,1,80,192,197,98,111,1,80,192,197,162,113,1,80,192,197,226,115,1,81,192,197,34,251,0,12,0,251,0,79,192,197,162,252,0,78,192,197,194,105,1,79,192,197,226,107,1,80,192,197,34,117,0,6,0,249,0,79,192,197,34,250,0,79,192,197,98,240,127,2,75,5,5,68,3,78,192,197,195,0,80,5,5,18,0,35,30,32,0,89,30,15,0,89,30,90,192,197,98,91,30,90,192,197,162,93,30,90,192,197,227,95,30,91,192,197,66,150,30,91,192,197,130,35,30,89,192,197,34,37,30,89,192,197,98,39,30,89,192,197,162,41,30,89,192,197,226,43,30,90,192,197,34,87,1,15,0,87,1,87,192,197,226,89,1,88,192,197,34,17,2,88,192,197,98,19,2,88,192,197,162,31,2,88,192,197,226,104,0,255,255,2,81,5,5,114,0,255,255,3,81,5,5,37,1,87,192,197,98,85,1,87,192,197,162,0,82,5,5,48,0,27,3,255,255,2,83,5,5,156,42,196,162,1,0,2,3,96,192,197,66,6,3,96,192,197,130,5,42,196,162,1,0,2,3,96,192,197,194,6,3,97,192,197,2,156,50,196,162,48,0,2,3,97,192,197,194,5,50,196,162,48,0,2,3,98,192,197,2,156,82,196,162,48,0,27,3,101,192,197,66,5,82,196,162,48,0,27,3,101,192,197,130,3,71,134,5,48,0,2,3,102,192,197,66,3,71,5,5,48,0,2,3,102,192,197,130,156,70,196,162,1,0,2,3,103,192,197,130,27,3,103,192,197,194,5,70,196,162,1,0,2,3,104,192,197,2,27,3,104,192,197,66,156,50,196,160,48,0,2,3,107,192,197,66,5,50,196,160,48,0,2,3,107,192,197,130,156,42,196,200,1,0,2,3,114,192,197,66,6,3,114,192,197,130,5,42,196,200,1,0,2,3,114,192,197,194,6,3,115,192,197,2,156,50,196,204,48,0,2,3,117,192,197,194,5,50,196,204,48,0,2,3,118,192,197,2,156,50,196,208,48,0,2,3,118,192,197,66,5,50,196,208,48,0,2,3,118,192,197,130,133,0,197,130,1,0,2,3,133,192,197,194,6,3,134,192,197,2,134,0,197,66,1,0,2,3,134,192,197,130,6,3,134,192,197,194,139,0,197,130,48,0,2,3,139,192,197,194,140,0,197,2,48,0,2,3,140,192,197,66,144,0,197,130,48,0,2,3,144,192,197,194,145,0,197,2,48,0,2,3,145,192,197,66,150,0,197,2,48,0,2,3,150,192,197,67,150,0,197,162,48,0,2,3,150,192,197,227,56,0,71,0,74,0,82,0,83,0,85,0,86,0,103,0,106,0,114,0,115,0,117,0,118,0,204,0,208,0,217,0,221,0,236,0,240,0,249,0,253,0,28,1,38,1,40,1,49,1,84,1,90,1,104,1,116,1,175,1,177,1,207,1,209,1,211,1,221,1,230,1,232,1,244,1,246,1,8,2,12,2,16,2,24,2,30,2,32,2,32,30,48,30,88,30,96,30,114,30,124,30,150,30,151,30,200,30,204,30,228,30,242,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,68,28,4,185,80,38,4,185,96,40,4,185,112,186,116,186,124,86,4,185,136,185,140,96,4,124,4,126,4,136,4,185,188,186,192,180,4,206,4,185,216,185,220,185,224,185,228,185,232,88,13,168,13,96,13,56,14,80,12,40,14,208,4,168,68,210,4,168,80,216,4,168,96,218,4,168,112,168,116,168,124,241,4,168,136,168,140,247,4,6,5,8,5,14,5,168,188,168,192,37,5,51,5,168,216,168,220,168,224,168,228,168,232,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,160,64,13,1,0,1,0,1,0,192,12,153,57,217,57,185,64,185,57,121,58,89,58,0,8,249,74,154,89,218,89,185,92,122,90,154,117,218,117,26,118,122,118,217,80,186,145,153,161,217,161,185,164,185,161,121,162,136,14,217,162,153,213,217,213,25,214,121,214,217,229,185,236,2,8,136,57,200,57,168,64,168,57,104,58,72,58,4,8,232,74,136,89,200,89,168,92,104,90,136,117,200,117,8,118,104,118,200,80,168,145,136,161,200,161,168,164,168,161,104,162,128,14,200,162,136,213,200,213,8,214,104,214,200,229,168,236,104,230,57,59,40,59,185,60,168,60,53,5,55,5,217,73,200,73,25,74,8,74,185,74,168,74,57,74,40,74,57,82,40,82,185,84,168,84,58,91,40,91,250,89,232,89,186,90,168,90,57,5,59,5,58,90,40,90,25,102,8,102,249,101,232,101,185,102,168,102,249,102,232,102,25,114,8,114,89,115,72,115,186,117,168,117,58,119,40,119,250,117,232,117,26,119,8,119,186,118,168,120,6,8,8,8,26,126,8,126,249,130,232,130,168,184,217,137,200,137,249,138,232,138,57,138,40,138,121,139,104,139,89,139,72,139,218,145,200,145,250,146,232,146,58,146,40,146,10,8,185,156,168,156,57,163,40,163,249,161,232,161,153,162,136,162,12,8,14,8,217,189,200,189,249,190,232,190,57,190,40,190,218,193,200,193,26,194,8,194,250,194,232,194,58,194,40,194,249,198,232,198,57,198,40,198,185,208,168,208,185,213,168,213,57,215,40,215,249,213,232,213,89,214,72,214,153,214,136,214,61,5,63,5,25,222,8,222,25,230,8,230,121,230,217,233,200,233,185,234,168,234,57,234,40,234,232,192,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,192,169,192,200,56,169,88,187,116,187,124,169,116,169,124,169,240,169,144,217,160,187,88,200,160,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,72,4,186,76,104,4,177,76,36,5,26,78,37,5,17,78,255,5,186,88,255,5,185,100,72,4,186,104,73,2,104,4,177,104,105,2,204,4,154,109,205,4,218,109,206,4,26,110,207,4,122,110,236,4,145,109,237,4,209,109,238,4,17,110,239,4,113,110,36,5,26,106,37,5,17,106,40,5,186,109,41,5,177,109,42,5,58,111,43,5,49,111,44,5,250,109,45,5,241,109,46,5,26,111,47,5,17,111,48,5,186,110,255,5,185,128,72,4,186,132,104,4,177,132,36,5,26,134,37,5,17,134,255,5,186,144,71,2,72,4,186,148,103,2,104,4,177,148,28,5,26,154,29,5,17,154,30,5,250,153,31,5,241,153,32,5,186,154,33,5,177,154,34,5,250,154,35,5,241,154,36,5,26,150,37,5,17,150,255,5,185,160,255,5,185,168,72,4,186,172,104,4,177,172,36,5,26,174,37,5,17,174,255,5,185,176,85,2,117,2,217,4,154,181,218,4,218,181,219,4,26,182,220,4,122,182,249,4,145,181,250,4,209,181,251,4,17,182,252,4,113,182,104,5,186,181,105,5,177,181,106,5,58,183,107,5,49,183,108,5,250,181,109,5,241,181,110,5,90,182,111,5,81,182,112,5,154,182,113,5,145,182,114,5,26,183,115,5,17,183,255,5,185,196,72,4,186,200,82,4,186,204,104,4,177,200,114,4,177,204,36,5,26,202,37,5,17,202,84,5,218,205,85,5,209,205,86,5,250,206,87,5,241,206,88,5,58,206,89,5,49,206,255,5,185,212,255,5,168,56,255,5,168,72,104,4,168,76,37,5,8,78,255,5,168,88,255,5,168,100,104,4,168,104,105,2,236,4,136,109,237,4,200,109,238,4,8,110,239,4,104,110,37,5,8,106,41,5,168,109,43,5,40,111,45,5,232,109,47,5,8,111,255,5,168,128,104,4,168,132,37,5,8,134,255,5,168,144,103,2,104,4,168,148,29,5,8,154,31,5,232,153,33,5,168,154,35,5,232,154,37,5,8,150,255,5,168,160,255,5,168,168,104,4,168,172,37,5,8,174,255,5,168,176,117,2,249,4,136,181,250,4,200,181,251,4,8,182,252,4,104,182,105,5,168,181,107,5,40,183,109,5,232,181,111,5,72,182,113,5,136,182,115,5,8,183,255,5,168,196,104,4,168,200,114,4,168,204,37,5,8,202,85,5,200,205,87,5,232,206,89,5,40,206,255,5,168,212,255,5,25,59,255,5,8,59,255,5,26,91,255,5,8,91,255,5,25,215,255,5,8,215,255,1,3,0,69,0,52,0,61,0,71,15,0,16,90,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,63,15,0,32,35,36,0,32,1,0,32,0,40,36,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,198,9,0,32,7,0,0,0,21,0,0,0,200,9,0,0,200,9,0,0,3,0,0,0,0,0,0,0,55,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,62,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,65,0,60,0,224,0,60,0,60,0,60,0,192,0,38,0,69,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,235,0,60,0,60,0,60,0,203,0,38,0,78,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,79,0,60,0,243,0,60,0,60,0,60,0,211,0,0,0,28,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,29,0,0,116,29,0,0,116,29,0,0,116,29,0,0,40,31,0,0,40,31,0,0,12,34,0,0,12,34,0,0,4,38,0,0,50,105,114,84,1,0,64,8,202,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,103,0,111,0,112,0,120,0,123,0,131,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,155,0,48,0,162,0,48,0,48,0,170,0,177,0,185,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,147,0,48,0,48,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,156,1,192,1,236,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,12,0,202,129,12,0,202,162,12,0,202,195,12,0,202,228,12,0,202,5,13,0,202,38,13,0,202,71,13,0,202,104,13,0,202,137,13,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,38,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,166,2,0,201,134,3,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,230,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,6,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,134,7,0,201,102,8,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,43,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,11,0,196,160,156,46,196,138,156,50,134,5,2,51,196,142,156,50,134,5,3,51,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,134,5,2,71,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,11,0,5,5,2,43,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,12,0,196,160,5,46,196,138,5,50,5,5,2,51,196,142,5,50,5,5,3,51,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,5,5,2,71,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,9,0,201,166,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,11,0,201,70,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,14,0,201,134,15,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,69,5,5,3,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,16,0,201,102,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,70,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,134,27,0,201,6,29,0,201,134,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,32,0,201,198,32,0,201,134,33,0,201,70,34,0,201,6,35,0,201,198,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,36,0,201,166,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,38,0,201,70,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,41,0,201,230,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,44,0,201,38,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,51,5,162,0,0,134,5,3,51,5,162,0,0,5,5,2,51,5,162,0,0,5,5,3,51,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,51,5,160,0,0,134,5,3,51,5,160,0,0,5,5,2,51,5,160,0,0,5,5,3,51,5,160,0,0,134,5,2,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,51,5,204,0,0,134,5,3,51,5,204,0,0,5,5,2,51,5,204,0,0,5,5,3,51,5,204,0,0,134,5,2,51,5,208,0,0,134,5,3,51,5,208,0,0,5,5,2,51,5,208,0,0,5,5,3,51,5,208,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,51,5,196,0,0,134,5,3,51,5,196,0,0,5,5,2,51,5,196,0,0,5,5,3,51,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,0,3,2,235,134,5,64,3,2,235,134,5,0,50,156,5,2,0,1,3,2,243,134,5,8,3,3,243,134,5,65,3,2,243,134,5,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,70,156,5,1,0,1,3,255,255,2,71,134,5,65,3,255,255,2,71,134,5,0,42,5,5,1,0,0,3,2,235,5,5,64,3,2,235,5,5,0,50,5,5,2,0,1,3,2,243,5,5,8,3,3,243,5,5,65,3,2,243,5,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,0,70,5,5,1,0,1,3,255,255,2,71,5,5,65,3,255,255,2,71,5,5,156,42,196,162,1,0,0,3,197,162,64,3,197,162,5,42,196,162,1,0,0,3,0,192,197,98,64,3,0,192,197,98,156,50,196,162,2,0,1,3,0,192,197,162,8,3,0,192,197,226,65,3,0,192,197,162,5,50,196,162,2,0,1,3,1,192,197,34,8,3,1,192,197,98,65,3,1,192,197,34,156,68,196,160,48,0,3,3,1,192,197,162,5,68,196,160,48,0,3,3,1,192,197,226,156,70,196,190,1,0,1,3,2,192,197,34,65,3,2,192,197,34,5,70,196,190,1,0,1,3,2,192,197,98,65,3,2,192,197,98,156,70,196,162,1,0,1,3,2,192,197,162,65,3,2,192,197,162,5,70,196,162,1,0,1,3,2,192,197,226,65,3,2,192,197,226,156,50,196,160,2,0,1,3,3,192,197,34,8,3,3,192,197,98,65,3,3,192,197,34,5,50,196,160,2,0,1,3,3,192,197,162,8,3,3,192,197,226,65,3,3,192,197,162,156,42,196,200,1,0,0,3,4,192,197,34,64,3,4,192,197,34,5,42,196,200,1,0,0,3,4,192,197,98,64,3,4,192,197,98,156,50,196,204,2,0,1,3,4,192,197,162,8,3,4,192,197,226,65,3,4,192,197,162,5,50,196,204,2,0,1,3,5,192,197,34,8,3,5,192,197,98,65,3,5,192,197,34,156,50,196,208,2,0,1,3,5,192,197,162,8,3,5,192,197,226,65,3,5,192,197,162,5,50,196,208,2,0,1,3,6,192,197,34,8,3,6,192,197,98,65,3,6,192,197,34,156,68,196,196,48,0,3,3,6,192,197,162,5,68,196,196,48,0,3,3,6,192,197,226,156,68,196,210,48,0,3,3,7,192,197,34,5,68,196,210,48,0,3,3,7,192,197,98,156,68,196,204,48,0,3,3,7,192,197,162,5,68,196,204,48,0,3,3,7,192,197,226,156,42,196,196,1,0,0,3,8,192,197,34,64,3,8,192,197,34,5,42,196,196,1,0,0,3,8,192,197,98,64,3,8,192,197,98,156,50,196,196,2,0,1,3,8,192,197,162,8,3,8,192,197,226,65,3,8,192,197,162,5,50,196,196,2,0,1,3,9,192,197,34,8,3,9,192,197,98,65,3,9,192,197,34,156,70,196,196,1,0,1,3,9,192,197,162,65,3,9,192,197,162,5,70,196,196,1,0,1,3,9,192,197,226,65,3,9,192,197,226,10,0,197,35,1,0,1,3,10,192,197,131,65,3,10,192,197,131,10,0,197,227,1,0,1,3,11,192,197,67,65,3,11,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,185,68,185,72,28,4,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,120,30,4,32,4,185,144,185,148,185,156,186,160,185,164,185,172,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,64,168,68,168,72,36,4,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,120,38,4,40,4,168,144,168,148,168,156,168,160,168,164,168,172,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,60,153,57,249,57,153,58,89,58,57,58,0,8,249,70,186,77,185,80,250,77,185,84,186,101,154,101,250,101,90,102,217,72,185,128,185,137,185,140,249,137,153,138,89,138,136,14,217,138,185,173,153,173,249,173,89,174,153,189,185,196,2,8,168,60,136,57,232,57,136,58,72,58,40,58,4,8,232,70,168,77,168,80,232,77,168,84,168,101,136,101,232,101,72,102,200,72,168,128,168,137,168,140,232,137,136,138,72,138,128,14,200,138,168,173,136,173,232,173,72,174,136,189,168,196,72,190,57,59,40,59,217,57,200,57,42,4,44,4,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,46,4,48,4,26,78,8,78,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,152,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,50,4,52,4,26,126,8,126,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,157,136,157,249,158,232,158,25,158,8,158,154,161,136,161,250,161,232,161,250,162,232,162,26,162,8,162,249,166,232,166,25,166,8,166,185,168,168,168,153,174,136,174,57,175,40,175,217,173,200,173,57,174,40,174,121,174,104,174,25,175,8,175,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,160,169,160,200,56,169,76,187,100,187,108,169,100,169,108,169,200,169,124,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,76,255,5,186,124,255,5,185,136,255,5,168,56,255,5,168,76,255,5,168,124,255,5,168,136,255,5,25,59,255,5,8,59,255,5,26,79,255,5,8,79,255,5,250,126,255,5,232,126,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,191,9,0,32,1,0,32,0,196,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,76,16,0,32,7,0,0,0,23,0,0,0,78,16,0,0,78,16,0,0,3,0,0,0,0,0,0,0,124,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,14,32,38,0,243,5,60,0,60,0,39,0,39,0,14,32,38,0,244,5,60,0,60,0,39,0,34,0,39,0,0,0,155,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,101,0,98,0,114,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,39,0,60,0,60,0,243,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,34,0,39,0,60,0,60,0,244,5,38,0,209,5,60,0,209,5,191,5,38,0,213,5,60,0,60,0,213,5,188,5,60,0,60,0,213,5,213,5,60,0,60,0,213,5,217,5,38,0,217,5,60,0,60,0,217,5,180,5,60,0,60,0,217,5,217,5,60,0,60,0,242,5,183,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,219,5,60,0,219,5,188,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,228,5,60,0,228,5,188,5,38,0,228,5,191,5,60,0,60,0,60,0,227,5,38,0,233,5,60,0,233,5,194,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,234,5,60,0,234,5,188,5,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,106,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,228,31,0,0,228,31,0,0,228,31,0,0,228,31,0,0,12,34,0,0,12,34,0,0,82,34,0,0,82,34,0,0,82,34,0,0,50,105,114,84,1,0,64,8,241,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,224,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,253,0,0,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,194,5,221,251,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,220,251,5,252,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,67,0,50,0,59,0,127,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,124,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,124,26,0,0,124,26,0,0,124,26,0,0,124,26,0,0,84,27,0,0,84,27,0,0,74,28,0,0,100,28,0,0,19,0,0,0,0,0,0,101,194,255,50,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,0,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,138,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,105,0,113,0,121,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,5,0,202,161,5,0,202,194,5,0,202,227,5,0,202,4,6,0,202,37,6,0,202,70,6,0,202,103,6,0,202,136,6,0,202,169,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,194,4,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,2,5,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,66,5,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,228,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,4,0,192,0,0,0,201,134,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,201,102,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,8,0,201,38,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,10,0,5,2,106,9,5,2,120,9,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,24,101,192,0,0,0,5,72,24,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,193,2,47,101,201,166,11,0,197,2,3,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,12,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,16,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,3,0,5,5,37,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,13,0,193,3,47,101,201,166,14,0,5,5,9,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,72,16,101,194,5,167,226,5,71,16,101,194,5,210,227,5,72,16,101,194,5,210,227,5,71,16,101,194,5,78,227,5,71,24,101,194,5,167,226,5,71,24,101,194,5,210,227,5,5,38,101,194,6,243,227,32,5,24,101,32,5,24,101,5,5,46,101,194,5,177,227,193,2,47,101,194,5,177,227,5,5,46,101,194,5,210,227,194,5,177,227,193,2,47,101,194,5,210,227,194,5,177,227,5,5,8,101,194,5,210,227,5,5,9,101,194,5,210,227,5,5,38,101,194,6,243,227,194,5,210,227,5,5,16,101,194,5,78,227,5,70,16,101,194,5,78,227,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,8,101,5,5,48,0,191,5,255,255,9,101,5,5,16,101,5,5,6,0,29,251,11,0,29,251,197,162,53,251,0,192,197,98,57,251,0,192,197,162,75,251,0,192,197,226,188,5,255,255,16,101,5,70,213,5,255,255,16,101,5,71,217,5,255,255,16,101,5,72,24,101,5,5,3,0,180,5,255,255,24,101,5,70,217,5,255,255,24,101,5,71,29,251,1,192,197,34,57,251,1,192,197,98,26,101,5,5,48,0,188,5,255,255,25,101,5,5,38,101,5,5,48,0,188,5,255,255,37,101,5,5,46,101,5,5,48,0,194,5,255,255,47,101,193,2,48,101,5,5,48,0,188,5,255,255,47,101,193,3,1,0,197,226,48,0,183,5,255,255,24,101,5,72,2,0,197,34,48,0,194,5,2,192,197,98,2,0,197,163,48,0,194,5,3,192,197,3,3,0,197,98,48,0,191,5,3,192,197,162,2,0,197,162,1,0,193,5,3,0,194,5,3,192,197,2,48,0,194,5,3,192,197,3,4,0,197,66,48,0,188,5,4,192,197,130,12,0,213,5,214,5,217,5,218,5,29,251,30,251,53,251,54,251,57,251,58,251,75,251,76,251,3,0,67,0,50,0,59,0,35,9,0,16,44,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,27,9,0,32,67,16,0,32,1,0,32,0,72,16,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,231,8,0,32,7,0,0,0,21,0,0,0,233,8,0,0,233,8,0,0,3,0,0,0,0,0,0,0,53,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,57,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,69,0,60,0,185,30,60,0,60,0,60,0,184,30,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,38,0,79,0,60,0,205,30,60,0,60,0,60,0,204,30,38,0,83,0,60,0,99,30,60,0,60,0,60,0,98,30,0,0,170,170,170,170,170,170,170,170,170,170,160,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,28,0,0,84,28,0,0,84,28,0,0,84,28,0,0,96,29,0,0,96,29,0,0,126,30,0,0,140,30,0,0,136,34,0,0,50,105,114,84,1,0,64,8,184,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,97,0,105,0,106,0,114,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,149,0,48,0,152,0,159,0,167,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,141,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,132,1,168,1,212,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,7,0,202,65,7,0,202,98,7,0,202,131,7,0,202,164,7,0,202,197,7,0,202,230,7,0,202,7,8,0,202,40,8,0,202,73,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,201,6,0,0,156,5,0,52,201,192,0,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,70,4,0,156,5,0,72,160,5,0,74,156,5,0,76,201,38,5,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,201,6,6,0,5,5,0,52,201,192,6,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,8,0,5,5,0,72,5,5,0,74,5,5,0,76,201,134,9,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,6,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,4,0,197,34,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,71,5,5,2,71,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,196,0,0,70,5,2,55,5,196,0,0,135,5,2,55,5,210,0,0,70,5,2,55,5,210,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,196,0,0,5,5,2,55,5,210,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,51,5,142,0,0,5,5,2,51,5,142,0,0,134,5,2,71,5,142,0,0,5,5,2,71,5,142,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,50,156,5,48,0,35,3,2,243,134,5,0,54,156,5,7,0,4,30,12,0,4,30,0,192,197,162,5,30,0,192,197,226,6,30,1,192,197,34,7,30,1,192,197,98,66,0,2,247,135,5,98,0,2,247,70,5,2,30,197,162,3,30,0,192,197,98,0,70,156,5,48,0,35,3,255,255,2,71,134,5,0,78,156,5,48,0,35,3,255,255,2,79,134,5,0,50,5,5,48,0,35,3,2,243,5,5,0,54,5,5,3,0,98,0,2,247,5,5,3,30,1,192,197,162,5,30,1,192,197,226,7,30,2,192,197,34,0,70,5,5,48,0,35,3,255,255,2,71,5,5,0,78,5,5,48,0,35,3,255,255,2,79,5,5,156,50,196,162,48,0,35,3,2,192,197,98,5,50,196,162,48,0,35,3,2,192,197,162,156,78,196,160,48,0,35,3,2,192,197,226,5,78,196,160,48,0,35,3,3,192,197,34,156,70,196,190,48,0,35,3,3,192,197,98,5,70,196,190,48,0,35,3,3,192,197,162,156,70,196,162,48,0,35,3,3,192,197,226,5,70,196,162,48,0,35,3,4,192,197,34,156,50,196,160,48,0,35,3,4,192,197,98,5,50,196,160,48,0,35,3,4,192,197,162,6,0,66,0,67,0,98,0,99,0,2,30,8,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,26,4,185,76,28,4,185,88,186,92,186,100,185,104,185,108,185,112,186,116,34,4,185,128,185,132,185,140,36,4,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,38,4,168,76,40,4,168,88,168,92,168,100,168,104,168,108,168,112,168,116,44,4,168,128,168,132,168,140,46,4,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,93,154,93,250,93,90,94,217,68,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,93,136,93,232,93,72,94,200,68,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,48,4,50,4,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,52,4,54,4,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,144,169,144,200,56,169,72,187,92,187,100,169,92,169,100,169,184,169,116,217,124,187,72,200,124,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,72,255,5,185,80,66,4,186,84,98,4,177,84,255,5,185,124,255,5,186,144,255,5,168,72,255,5,168,80,98,4,168,84,255,5,168,124,255,5,168,144,255,5,26,75,255,5,8,75,255,5,250,146,255,5,232,146,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,224,8,0,32,1,0,32,0,229,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,23,129,3,32,7,0,0,0,35,0,0,0,25,129,3,0,25,129,3,0,8,0,0,0,0,0,0,0,26,206,0,0,99,111,108,108,97,116,105,111,110,115,0,98,105,103,53,104,97,110,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,100,101,102,97,117,108,116,0,103,98,50,51,49,50,104,97,110,0,112,114,105,118,97,116,101,45,112,105,110,121,105,110,0,115,116,114,111,107,101,0,117,110,105,104,97,110,0,122,104,117,121,105,110,0,170,170,170,0,0,52,0,50,0,0,0,112,0,105,0,110,0,121,0,105,0,110,0,0,0,82,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,117,0,110,0,105,0,104,0,97,0,110,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,0,0,115,221,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,97,0,60,0,60,0,1,1,60,0,60,0,60,0,0,1,60,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,60,0,206,1,60,0,60,0,60,0,205,1,60,0,60,0,224,0,60,0,60,0,60,0,192,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,101,0,60,0,60,0,19,1,60,0,60,0,60,0,18,1,60,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,60,0,27,1,60,0,60,0,60,0,26,1,60,0,60,0,232,0,60,0,60,0,60,0,200,0,38,0,101,0,60,0,60,0,101,0,2,3,4,3,60,0,60,0,60,0,69,0,2,3,4,3,60,0,60,0,101,0,2,3,1,3,60,0,60,0,60,0,69,0,2,3,1,3,60,0,60,0,101,0,2,3,12,3,60,0,60,0,60,0,69,0,2,3,12,3,60,0,60,0,101,0,2,3,0,3,60,0,60,0,60,0,69,0,2,3,0,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,105,0,60,0,60,0,43,1,60,0,60,0,60,0,42,1,60,0,60,0,237,0,60,0,60,0,60,0,205,0,60,0,60,0,208,1,60,0,60,0,60,0,207,1,60,0,60,0,236,0,60,0,60,0,60,0,204,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,109,0,60,0,60,0,109,0,4,3,60,0,60,0,60,0,77,0,4,3,60,0,60,0,63,30,60,0,60,0,60,0,62,30,60,0,60,0,109,0,12,3,60,0,60,0,60,0,77,0,12,3,60,0,60,0,109,0,0,3,60,0,60,0,60,0,77,0,0,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,110,0,60,0,60,0,110,0,4,3,60,0,60,0,60,0,78,0,4,3,60,0,60,0,68,1,60,0,60,0,60,0,67,1,60,0,60,0,72,1,60,0,60,0,60,0,71,1,60,0,60,0,249,1,60,0,60,0,60,0,248,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,111,0,60,0,60,0,77,1,60,0,60,0,60,0,76,1,60,0,60,0,243,0,60,0,60,0,60,0,211,0,60,0,60,0,210,1,60,0,60,0,60,0,209,1,60,0,60,0,242,0,60,0,60,0,60,0,210,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,117,0,60,0,60,0,107,1,60,0,60,0,60,0,106,1,60,0,60,0,250,0,60,0,60,0,60,0,218,0,60,0,60,0,212,1,60,0,60,0,60,0,211,1,60,0,60,0,249,0,60,0,60,0,60,0,217,0,38,0,85,0,60,0,60,0,214,1,60,0,60,0,60,0,213,1,60,0,60,0,216,1,60,0,60,0,60,0,215,1,60,0,60,0,218,1,60,0,60,0,60,0,217,1,60,0,60,0,220,1,60,0,60,0,60,0,219,1,60,0,60,0,252,0,60,0,60,0,60,0,220,0,0,0,239,223,181,26,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,72,0,97,0,110,0,105,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,42,0,74,85,63,150,195,87,40,99,206,84,9,85,192,84,145,118,76,118,60,133,238,119,126,130,141,120,49,114,152,150,141,151,40,108,137,91,250,79,9,99,151,102,184,92,250,128,72,104,174,128,2,102,206,118,249,81,86,101,172,113,241,127,132,136,178,80,101,89,202,97,179,111,173,130,76,99,82,98,237,83,39,84,6,123,107,81,164,117,244,93,212,98,203,141,118,151,138,98,25,128,93,87,56,151,98,127,56,114,125,118,207,103,126,118,70,100,112,79,37,141,220,98,23,122,145,101,237,115,44,100,115,98,44,130,129,152,127,103,72,114,110,98,204,98,52,79,227,116,74,83,158,82,202,126,166,144,46,94,134,104,156,105,128,129,209,126,210,104,197,120,140,134,81,149,141,80,36,140,222,130,222,128,5,83,18,137,101,82,132,133,249,150,221,79,33,88,113,153,157,91,177,98,165,98,180,102,121,140,141,156,6,114,111,103,145,120,178,96,81,83,23,83,136,143,204,128,29,141,161,148,13,80,200,114,7,89,235,96,25,113,171,136,84,89,239,130,44,103,40,123,41,93,247,126,45,117,245,108,102,142,248,143,60,144,59,159,212,107,25,145,20,123,124,95,167,120,214,132,61,133,213,107,217,107,214,107,1,94,135,94,249,117,237,149,93,101,10,95,197,95,159,143,193,88,194,129,127,144,91,150,173,151,185,143,22,127,44,141,65,98,191,79,216,83,94,83,168,143,169,143,171,143,77,144,7,104,106,95,152,129,104,136,214,156,139,97,43,82,42,118,108,95,140,101,210,111,232,110,190,91,72,100,117,81,176,81,196,103,25,78,201,121,124,153,179,112,197,117,118,94,187,115,224,131,173,100,232,98,181,148,226,108,90,83,195,82,15,100,194,148,148,123,47,79,27,94,54,130,22,129,138,129,36,110,202,108,115,154,85,99,92,83,250,84,101,136,224,87,13,78,3,94,101,107,63,124,232,144,22,96,230,100,28,115,193,136,80,103,77,98,34,141,108,119,41,142,199,145,105,95,220,131,33,133,16,153,194,83,149,134,139,107,237,96,232,96,127,112,205,130,49,130,211,78,167,108,207,133,205,100,217,124,253,105,249,102,73,131,149,83,86,123,167,79,140,81,75,109,66,92,109,142,210,99,201,83,44,131,54,131,229,103,180,120,61,100,223,91,148,92,238,93,231,139,198,98,244,103,122,140,0,100,186,99,73,135,139,153,23,140,32,127,242,148,167,78,16,150,164,152,12,102,22,115,58,87,29,92,56,94,127,149,127,80,160,128,130,83,94,101,69,117,49,85,33,80,133,141,132,98,158,148,29,103,50,86,110,111,226,93,53,84,146,112,102,143,111,98,164,100,163,99,123,95,136,111,244,144,227,129,176,143,24,92,104,102,241,95,137,108,72,150,129,141,108,136,145,100,240,121,206,87,89,106,16,98,72,84,88,78,11,122,233,96,132,111,218,139,127,98,30,144,139,154,228,121,3,84,244,117,1,99,25,83,96,108,223,143,27,95,112,154,59,128,127,159,136,79,58,92,100,141,197,127,165,101,189,112,69,81,178,81,107,134,7,93,160,91,189,98,108,145,116,117,12,142,32,122,1,97,121,123,199,78,248,126,133,119,17,78,237,129,29,82,250,81,113,106,168,83,135,142,4,149,207,150,193,110,100,150,90,105,64,120,168,80,215,119,16,100,230,137,4,89,227,99,221,93,127,122,61,105,32,79,57,130,152,85,50,78,174,117,151,122,98,94,138,94,239,149,27,82,57,84,138,112,118,99,36,149,130,87,37,102,63,105,135,145,7,85,243,109,175,126,34,136,51,98,240,126,181,117,40,131,193,120,204,150,158,143,72,97,247,116,205,139,100,107,58,82,80,141,33,107,106,128,113,132,241,86,6,83,206,78,27,78,209,81,151,124,139,145,7,124,195,79,127,142,225,123,156,122,103,100,20,93,172,80,6,129,1,118,185,124,236,109,224,127,81,103,88,91,248,91,203,120,174,100,19,100,170,99,43,99,25,149,45,100,190,143,84,123,41,118,83,98,39,89,70,84,121,107,163,80,52,98,38,94,134,107,227,78,55,141,139,136,133,95,46,144,32,96,61,128,197,98,57,78,85,83,248,144,184,99,198,128,230,101,46,108,70,79,238,96,225,109,222,139,57,95,203,134,83,95,33,99,90,81,97,131,99,104,0,82,99,99,72,142,18,80,155,92,119,121,252,91,48,82,59,122,188,96,83,144,215,118,183,95,151,95,132,118,108,142,111,112,123,118,73,123,170,119,243,81,147,144,36,88,78,79,244,110,234,143,76,101,27,123,196,114,164,109,223,127,225,90,181,98,149,94,48,87,130,132,44,123,29,94,31,95,18,144,20,127,160,152,130,99,199,110,152,120,185,112,120,81,91,151,171,87,53,117,67,79,56,117,151,94,230,96,96,89,192,109,191,107,137,120,252,83,213,150,203,81,1,82,137,99,10,84,147,148,3,140,204,141,57,114,159,120,118,135,237,143,13,140,224,83,1,78,239,118,238,83,137,148,118,152,14,159,45,149,154,91,162,139,34,78,28,78,172,81,99,132,194,97,168,82,11,104,151,79,107,96,187,81,30,109,92,81,150,98,151,101,97,150,70,140,23,144,216,117,253,144,99,119,210,107,138,114,236,114,251,139,53,88,121,119,76,141,92,103,64,149,154,128,166,94,33,110,146,89,239,122,237,119,59,149,181,107,173,101,14,127,6,88,81,81,31,150,249,91,169,88,40,84,114,142,102,101,127,152,228,86,157,148,254,118,65,144,135,99,198,84,26,89,58,89,155,87,178,142,53,103,250,141,53,130,65,82,240,96,21,88,254,134,232,92,69,158,196,79,157,152,185,139,37,90,118,96,132,83,124,98,79,144,2,145,127,153,105,96,12,128,63,81,51,128,20,92,117,153,49,109,140,78,48,141,209,83,90,127,79,123,16,79,79,78,0,150,213,108,208,115,233,133,6,94,106,117,251,127,10,106,254,119,146,148,65,126,225,81,230,112,205,83,212,143,3,131,41,141,175,114,109,153,219,108,74,87,179,130,185,101,170,128,63,98,50,150,168,89,255,78,191,139,186,126,62,101,242,131,94,151,97,85,222,152,165,128,42,83,253,139,32,84,186,128,159,94,184,108,57,141,172,130,90,145,41,84,27,108,6,82,183,126,95,87,26,113,126,108,137,124,75,89,253,78,255,95,36,97,170,124,48,78,1,92,171,103,2,135,240,92,11,149,206,152,175,117,253,112,34,144,175,81,29,127,189,139,73,89,228,81,91,79,38,84,43,89,119,101,164,128,117,91,118,98,194,98,144,143,69,94,31,108,38,123,15,79,216,79,13,103,110,109,170,109,143,121,177,136,23,95,43,117,154,98,133,143,239,79,220,145,167,101,47,129,81,129,156,94,80,129,116,141,111,82,134,137,75,141,13,89,133,80,216,78,28,150,54,114,121,129,31,141,204,91,163,139,68,150,135,89,26,127,144,84,118,86,14,86,229,139,57,101,130,105,153,148,214,118,137,110,114,94,24,117,70,103,209,103,255,122,157,128,118,141,31,97,198,121,98,101,99,141,136,81,26,82,162,148,56,127,155,128,178,126,151,92,47,110,96,103,217,123,139,118,216,154,143,129,148,127,213,124,30,100,80,149,63,122,74,84,229,84,76,107,1,100,8,98,61,158,243,128,153,117,114,82,105,151,91,132,60,104,228,134,1,150,148,150,236,148,42,78,4,84,217,126,57,104,223,141,21,128,244,102,154,94,185,127,194,87,63,128,151,104,229,93,59,101,159,82,109,96,154,159,155,79,172,142,108,81,171,91,19,95,233,93,94,108,241,98,33,141,113,81,169,148,254,82,159,108,223,130,215,114,162,87,132,103,45,141,31,89,156,143,199,131,149,84,141,123,48,79,189,108,100,91,209,89,19,159,228,83,202,134,168,154,55,140,161,128,69,101,126,152,250,86,199,150,46,82,220,116,80,82,225,91,2,99,2,137,86,78,208,98,42,96,250,104,115,81,152,91,160,81,194,137,161,123,134,153,80,127,239,96,76,112,47,141,73,81,127,94,27,144,112,116,196,137,45,87,69,120,82,95,159,159,250,149,104,143,60,155,225,139,120,118,66,104,220,103,234,141,53,141,61,82,138,143,218,110,205,104,5,149,237,144,253,86,156,103,249,136,199,143,200,84,184,154,105,91,119,109,38,108,165,78,179,91,135,154,99,145,168,97,175,144,233,151,43,84,181,109,210,91,253,81,138,85,85,127,240,127,188,100,77,99,241,101,190,97,141,96,10,113,87,108,73,108,47,89,109,103,42,130,213,88,142,86,106,140,235,107,221,144,125,89,23,128,247,83,105,109,117,84,157,85,119,131,207,131,56,104,190,121,140,84,85,79,8,84,210,118,137,140,2,150,179,108,184,109,107,141,16,137,100,158,58,141,63,86,209,158,213,117,136,95,224,114,104,96,252,84,168,78,42,106,97,136,82,96,112,143,196,84,216,112,121,134,63,158,42,109,143,91,24,95,162,126,137,85,175,79,52,115,60,84,154,83,25,80,14,84,124,84,78,78,253,95,90,116,246,88,107,132,225,128,116,135,208,114,202,124,86,110,39,95,78,134,44,85,164,98,146,78,170,108,55,98,177,130,215,84,78,83,62,115,209,110,59,117,18,82,22,83,221,139,208,105,138,95,0,96,238,109,79,87,34,107,175,115,83,104,216,143,19,127,98,99,163,96,36,85,234,117,98,140,21,113,163,109,166,91,123,94,82,131,76,97,196,158,250,120,87,135,39,124,135,118,240,81,246,96,76,113,67,102,76,94,77,96,14,140,112,112,37,99,137,143,189,95,98,96,212,134,222,86,193,107,148,96,103,97,73,83,224,96,102,102,63,141,253,121,26,79,233,112,71,108,179,139,242,139,216,126,100,131,15,102,90,90,66,155,81,109,247,109,65,140,59,109,25,79,107,112,183,131,22,98,209,96,13,151,39,141,120,121,251,81,62,87,250,87,58,103,120,117,61,122,239,121,149,123,140,128,101,153,249,143,192,111,165,139,33,158,236,89,233,126,9,127,9,84,129,103,216,104,145,143,77,124,198,150,202,83,37,96,190,117,114,108,115,83,201,90,167,126,36,99,224,81,10,129,241,93,223,132,128,98,128,81,99,91,14,79,109,121,66,82,184,96,78,109,196,91,194,91,161,139,176,139,226,101,204,95,69,150,147,89,231,126,170,126,9,86,183,103,57,89,115,79,182,91,160,82,90,131,138,152,62,141,50,117,190,148,71,80,60,122,247,78,182,103,126,154,193,90,124,107,209,118,90,87,22,92,58,123,244,149,78,113,124,81,169,128,112,130,120,89,4,127,39,131,192,104,236,103,177,120,119,120,227,98,97,99,128,123,237,79,106,82,207,81,80,131,219,105,116,146,245,141,49,141,193,137,46,149,173,123,246,78,101,80,48,130,81,82,111,153,16,110,133,110,167,109,250,94,245,80,220,89,6,92,70,109,95,108,134,117,139,132,104,104,86,89,178,139,32,83,113,145,77,150,73,133,18,105,1,121,38,113,246,128,164,78,202,144,71,109,132,154,7,90,188,86,5,100,240,148,235,119,165,79,26,129,225,114,210,137,122,153,52,127,222,126,127,82,89,101,117,145,127,143,131,143,235,83,150,122,237,99,165,99,134,118,248,121,87,136,54,150,42,98,171,82,130,130,84,104,112,103,119,99,107,119,237,122,1,109,211,126,227,137,208,89,18,98,201,133,165,130,76,117,31,80,203,78,165,117,235,139,74,92,254,93,75,123,164,101,209,145,202,78,37,109,95,137,39,125,38,149,197,78,40,140,219,143,115,151,75,102,129,121,209,143,236,112,120,109,61,92,178,82,70,131,98,81,14,131,91,119,118,102,184,156,172,78,202,96,190,124,179,124,207,126,149,78,102,139,111,102,136,152,89,151,131,88,108,101,92,149,132,95,201,117,86,151,223,122,222,122,192,81,175,112,152,122,234,99,118,122,160,126,150,115,237,151,69,78,120,112,93,78,82,145,169,83,81,101,231,101,252,129,5,130,142,84,49,92,154,117,160,151,216,98,217,114,189,117,69,92,121,154,202,131,64,92,128,84,233,119,62,78,174,108,90,128,210,98,110,99,232,93,119,81,221,141,30,142,47,149,241,79,229,83,231,96,172,112,103,82,80,99,67,158,31,90,38,80,55,119,119,83,226,126,133,100,43,101,137,98,152,99,20,80,53,114,201,137,179,81,192,139,221,126,71,87,204,131,167,148,155,81,27,84,251,92,202,79,227,122,90,109,225,144,143,154,128,85,150,84,97,83,175,84,0,95,233,99,119,105,239,81,104,97,10,82,42,88,216,82,78,87,13,120,11,119,183,94,119,97,224,124,91,98,151,98,162,78,149,112,3,128,247,98,228,112,96,151,119,87,219,130,239,103,245,104,213,120,151,152,209,121,243,88,179,84,239,83,52,110,75,81,59,82,162,91,254,139,175,128,67,85,166,87,115,96,81,87,45,84,122,122,80,96,84,91,167,99,160,98,227,83,99,98,199,91,175,103,237,84,159,122,230,130,119,145,147,94,228,136,56,89,174,87,14,99,232,141,239,128,87,87,119,123,169,79,235,95,189,91,62,107,33,83,80,123,194,114,70,104,255,119,54,119,247,101,181,81,143,78,212,118,191,92,165,122,117,132,78,89,65,155,128,80,136,153,39,97,131,110,100,87,6,102,70,99,240,86,236,98,105,98,211,94,20,150,131,87,201,98,135,85,33,135,74,129,163,143,102,85,177,131,101,103,86,141,221,132,106,90,15,104,230,98,238,123,17,150,112,81,156,111,48,140,253,99,200,137,210,97,6,127,194,112,229,110,5,116,148,105,252,114,202,94,206,144,23,103,106,109,94,99,179,82,98,114,1,128,108,79,229,89,106,145,217,112,157,109,210,82,80,78,247,150,109,149,126,133,202,120,47,125,33,81,146,87,194,100,139,128,123,124,234,108,241,104,94,105,183,81,152,83,168,104,129,114,206,158,241,123,248,114,187,121,19,111,6,116,78,103,204,145,164,156,60,121,137,131,84,131,15,84,23,104,61,78,137,83,177,82,62,120,134,83,41,82,136,80,139,79,208,79,226,117,203,122,146,124,165,108,182,150,155,82,131,116,233,84,233,79,84,128,178,131,222,143,112,149,201,94,28,96,159,109,24,94,91,101,56,129,254,148,75,96,188,112,195,126,174,124,201,81,129,104,177,124,111,130,36,78,134,143,207,145,126,102,174,78,5,140,169,100,74,128,218,80,151,117,206,113,229,91,189,143,102,111,134,78,130,100,99,149,214,94,153,101,23,82,194,136,200,112,163,82,14,115,51,116,151,103,247,120,22,151,52,78,187,144,222,156,203,109,219,81,65,141,29,84,206,98,178,115,241,131,246,150,132,159,195,148,54,79,154,127,204,81,117,112,117,150,173,92,134,152,230,83,228,78,156,110,9,116,180,105,107,120,143,153,89,117,24,82,36,118,65,109,243,103,109,81,153,159,75,128,153,84,60,123,191,122,134,150,132,87,226,98,71,150,124,105,4,90,2,100,211,123,15,111,75,150,166,130,98,83,133,152,144,94,137,112,179,99,100,83,79,134,129,156,147,158,140,120,50,151,239,141,66,141,127,158,94,111,132,121,85,95,70,150,46,98,116,154,21,84,221,148,163,79,197,101,101,92,97,92,21,127,81,134,47,108,139,95,135,115,228,110,255,126,230,92,27,99,106,91,230,110,117,83,113,78,160,99,101,117,161,98,110,143,38,79,209,78,166,108,182,126,186,139,29,132,186,135,87,127,59,144,35,149,169,123,161,154,248,136,61,132,27,109,134,154,220,126,136,89,187,158,155,115,1,120,130,134,108,154,130,154,27,86,23,84,203,87,112,78,166,158,86,83,200,143,9,129,146,119,146,153,238,134,225,110,19,133,252,102,98,97,43,111,41,140,146,130,43,131,242,118,19,108,217,95,189,131,43,115,5,131,26,149,219,107,219,119,198,148,111,83,2,131,146,81,61,94,140,140,56,141,72,78,171,115,154,103,133,104,118,145,9,151,100,113,161,108,9,119,146,90,65,149,207,107,142,127,39,102,208,91,185,89,154,90,232,149,247,149,236,78,12,132,153,132,172,106,223,118,48,149,27,115,166,104,95,91,47,119,154,145,97,151,220,124,247,143,28,140,37,95,115,124,216,121,197,137,204,108,28,135,198,91,66,94,201,104,32,119,245,126,149,81,77,81,201,82,41,90,5,127,98,151,215,130,207,99,132,119,208,133,210,121,58,110,153,94,153,89,17,133,109,112,17,108,191,98,191,118,79,101,175,96,253,149,14,102,159,135,35,158,237,148,13,84,125,84,44,140,120,100,121,100,17,134,33,106,156,129,232,120,105,100,84,155,185,98,43,103,171,131,168,88,216,158,171,108,32,111,222,91,76,150,11,140,95,114,208,103,199,98,97,114,169,78,198,89,205,107,147,88,174,102,85,94,223,82,85,97,40,103,238,118,102,119,103,114,70,122,255,98,234,84,80,84,160,148,163,144,28,90,179,126,22,108,67,78,118,89,16,128,72,89,87,83,55,117,190,150,202,86,32,99,17,129,124,96,249,149,214,109,98,84,129,153,133,81,233,90,253,128,174,89,19,151,42,80,229,108,60,92,223,98,96,79,63,83,123,129,6,144,186,110,43,133,200,98,116,94,190,120,181,100,123,99,245,95,24,90,127,145,31,158,63,92,79,99,66,128,125,91,110,85,74,149,77,149,133,109,168,96,224,103,222,114,221,81,129,91,231,98,222,108,91,114,109,98,174,148,189,126,19,129,83,109,156,81,4,95,116,89,170,82,18,96,115,89,150,102,80,134,159,117,42,99,230,97,239,124,250,139,230,84,39,107,37,158,180,107,213,133,85,84,118,80,164,108,106,85,180,141,44,114,21,94,21,96,54,116,205,98,146,99,76,114,152,95,67,110,62,109,0,101,88,111,216,118,208,120,252,118,84,117,36,82,219,83,83,78,158,94,193,101,42,128,214,128,155,98,134,84,40,82,174,112,141,136,209,141,225,108,120,84,218,128,249,87,244,136,84,141,106,150,77,145,105,79,155,108,183,85,198,118,48,120,168,98,249,112,142,111,109,95,236,132,218,104,124,120,247,123,168,129,11,103,79,158,103,99,176,120,111,87,18,120,57,151,121,98,171,98,136,82,53,116,215,107,100,85,62,129,178,117,174,118,57,83,222,117,251,80,65,92,108,139,199,123,79,80,71,114,151,154,216,152,2,111,226,116,104,121,135,100,165,119,252,98,145,152,43,141,193,84,88,128,82,78,106,87,249,130,13,132,115,94,237,81,246,116,196,139,79,92,97,87,252,108,135,152,70,90,52,120,68,155,235,143,149,124,86,82,81,98,250,148,198,78,134,131,97,132,233,131,178,132,212,87,52,103,3,87,110,102,102,109,49,140,221,102,17,112,31,103,58,107,22,104,26,98,187,89,3,78,196,81,6,111,210,103,143,108,118,81,203,104,71,89,103,107,102,117,14,93,16,129,80,159,215,101,72,121,65,121,145,154,119,141,130,92,94,78,1,79,47,84,81,89,12,120,104,86,20,108,196,143,3,95,125,108,227,108,171,139,144,99,112,96,61,109,117,114,102,98,142,148,197,148,67,83,193,143,126,123,223,78,38,140,126,78,212,158,177,148,179,148,77,82,92,111,99,144,69,109,52,140,17,88,76,93,32,107,73,107,170,103,91,84,84,129,140,127,153,88,55,133,58,95,162,98,71,106,57,149,114,101,132,96,101,104,167,119,84,78,168,79,231,93,152,151,172,100,216,127,237,92,207,79,141,122,7,82,4,131,20,78,47,96,131,122,166,148,181,79,178,78,230,121,52,116,228,82,185,130,210,100,189,121,221,91,129,108,82,151,123,143,34,108,62,80,127,83,5,110,206,100,116,102,48,108,197,96,119,152,247,139,134,94,60,116,119,122,203,121,24,78,177,144,3,116,66,108,218,86,75,145,197,108,139,141,58,83,198,134,242,102,175,142,72,92,113,154,32,110,214,83,54,90,139,159,163,141,187,83,8,87,167,152,67,103,155,145,201,108,104,81,202,117,243,98,172,114,56,82,157,82,58,127,148,112,56,118,116,83,74,158,183,105,110,120,192,150,217,136,164,127,54,113,195,113,137,81,211,103,228,116,228,88,24,101,183,86,169,139,118,153,112,98,213,126,249,96,237,112,236,88,193,78,186,78,205,95,231,151,251,78,164,139,3,82,138,89,171,126,84,98,205,78,229,101,14,98,56,131,201,132,99,131,141,135,148,113,182,110,185,91,210,126,151,81,201,99,212,103,137,128,57,131,21,136,18,81,122,91,130,89,177,143,115,78,93,108,101,81,37,137,111,143,46,150,74,133,94,116,16,149,240,149,166,109,229,130,49,95,146,100,18,109,40,132,110,129,195,156,94,88,91,141,9,78,193,83,30,79,99,101,81,104,211,85,39,78,20,100,154,154,107,98,194,90,95,116,114,130,169,109,238,104,231,80,142,131,2,120,64,103,57,82,153,108,177,126,187,80,101,85,94,113,91,123,82,102,202,115,235,130,73,103,113,92,32,82,125,113,107,136,234,149,85,150,197,100,97,141,179,129,132,85,85,108,71,98,46,127,146,88,36,79,70,85,79,141,76,102,10,78,26,92,243,136,162,104,78,99,13,122,231,112,141,130,250,82,246,151,17,92,232,84,181,144,205,126,98,89,74,141,199,134,12,130,13,130,102,141,68,100,4,92,81,97,137,109,62,121,190,139,55,120,51,117,123,84,56,79,171,142,241,109,32,90,197,126,94,121,136,108,161,91,118,90,26,117,190,128,78,97,23,110,240,88,31,117,37,117,114,114,71,83,243,126,1,119,219,118,105,82,220,128,35,87,8,94,49,89,238,114,189,101,127,110,215,139,56,92,113,134,65,83,243,119,254,98,246,101,192,78,223,152,128,134,158,91,198,139,242,83,226,119,127,79,78,92,118,154,203,89,15,95,58,121,235,88,22,78,255,103,139,78,237,98,147,138,29,144,191,82,47,102,220,85,108,86,2,144,213,78,141,79,202,145,112,153,15,108,2,94,67,96,164,91,198,137,213,139,54,101,75,98,150,153,136,91,255,91,136,99,46,85,215,83,38,118,125,81,44,133,162,103,179,104,138,107,146,98,147,143,212,83,18,130,209,109,143,117,102,78,78,141,112,91,159,113,175,133,145,102,217,102,114,127,0,135,205,158,32,159,94,92,47,103,240,143,17,104,95,103,13,98,214,122,133,88,182,94,112,101,49,111,85,96,55,82,13,128,84,100,112,136,41,117,5,94,19,104,244,98,28,151,204,83,61,114,1,140,52,108,97,119,14,122,46,84,172,119,122,152,28,130,244,139,85,120,20,103,193,112,175,101,149,100,54,86,29,96,193,121,248,83,29,78,123,107,134,128,250,91,227,85,219,86,58,79,60,79,114,153,243,93,126,103,56,128,2,96,130,152,1,144,139,91,188,139,245,139,28,100,88,130,222,100,253,85,207,130,101,145,215,79,32,125,31,144,159,124,243,80,81,88,175,110,191,91,201,139,131,128,120,145,156,132,151,123,125,134,139,150,143,150,229,126,211,154,142,120,129,92,87,122,66,144,167,150,95,121,89,91,95,99,11,123,209,132,173,104,6,85,41,127,16,116,34,125,1,149,64,98,76,88,214,78,131,91,121,89,84,88,109,115,30,99,75,142,15,142,206,128,212,130,172,98,240,83,240,108,94,145,42,89,1,96,112,108,77,87,74,100,42,141,43,118,233,110,91,87,128,106,240,117,109,111,45,140,8,140,102,87,239,107,146,136,179,120,162,99,249,83,173,112,100,108,88,88,42,100,2,88,224,104,155,129,16,85,214,124,24,80,186,142,204,109,159,141,235,112,143,99,155,109,212,110,230,126,4,132,67,104,3,144,216,109,118,150,168,139,87,89,121,114,228,133,126,129,188,117,138,138,175,104,84,82,34,142,17,149,208,99,152,152,68,142,124,85,83,79,255,102,143,86,213,96,149,109,67,82,73,92,41,89,251,109,107,88,48,117,28,117,108,96,20,130,70,129,17,99,97,103,226,143,58,119,243,141,52,141,193,148,22,94,133,83,44,84,195,112,64,108,247,94,92,80,173,78,173,94,58,99,71,130,26,144,80,104,110,145,179,119,12,84,220,148,100,95,229,122,118,104,69,99,82,123,223,126,219,117,119,80,149,98,52,89,15,144,248,81,195,121,129,122,254,86,146,95,20,144,130,109,96,92,31,87,16,84,84,81,77,110,226,86,168,99,147,152,127,129,21,135,42,137,0,144,30,84,111,92,192,129,214,98,88,98,49,129,53,158,64,150,110,154,124,154,45,105,165,89,211,98,62,85,22,99,199,84,217,134,60,109,3,90,230,116,156,136,106,107,22,89,76,140,47,95,126,110,169,115,125,152,56,78,247,112,140,91,151,120,61,99,90,102,150,118,203,96,155,91,73,90,7,78,85,129,106,108,139,115,161,78,137,103,81,127,128,95,250,101,27,103,216,95,132,89,1,90,205,93,174,95,113,83,230,151,221,143,69,104,244,86,47,85,223,96,58,78,77,111,244,126,199,130,14,132,212,89,31,79,42,79,62,92,172,126,42,103,26,133,115,84,79,117,195,128,130,85,79,155,77,79,45,110,19,140,9,92,112,97,107,83,31,118,41,110,138,134,135,101,251,149,185,126,59,84,51,122,10,125,238,149,225,85,193,127,238,116,29,99,23,135,161,109,157,122,17,98,161,101,103,83,225,99,131,108,235,93,92,84,168,148,76,78,97,108,236,139,75,92,224,101,156,130,167,104,62,84,52,84,203,107,102,107,148,78,66,99,72,83,30,130,13,79,174,79,94,87,10,98,254,150,100,102,105,114,255,82,161,82,159,96,239,139,20,102,153,113,144,103,127,137,82,120,253,119,112,102,59,86,56,84,33,149,122,114,0,122,111,96,12,94,137,96,157,129,21,89,220,96,132,113,239,112,170,110,80,108,128,114,132,106,173,136,45,94,96,78,179,90,156,85,227,148,23,109,251,124,153,150,15,98,198,126,142,119,126,134,35,83,30,151,150,143,135,102,225,92,160,79,237,114,11,78,166,83,15,89,19,84,128,99,40,149,72,81,217,78,156,156,164,126,184,84,36,141,84,136,55,130,242,149,142,109,38,95,204,90,62,102,105,150,176,115,46,115,191,83,122,129,133,153,161,127,170,91,119,150,80,150,191,126,248,118,162,83,118,149,153,153,177,123,68,137,88,110,97,78,212,127,101,121,230,139,243,96,205,84,171,78,121,152,247,93,97,106,207,80,17,84,97,140,39,132,93,120,4,151,74,82,238,84,163,86,0,149,136,109,181,91,198,109,83,102,15,92,93,91,33,104,150,128,120,85,17,123,72,101,84,105,155,78,71,107,78,135,139,151,79,83,31,99,58,100,170,144,156,101,193,128,16,140,153,81,176,104,120,83,249,135,200,97,196,108,251,108,34,140,81,92,170,133,175,130,12,149,35,107,155,143,176,101,251,95,195,95,225,79,69,136,31,102,101,129,41,115,250,96,116,81,17,82,139,87,98,95,162,144,76,136,146,145,120,94,79,103,39,96,211,89,68,81,246,81,248,128,8,83,121,108,196,150,138,113,17,79,238,79,158,127,61,103,197,85,8,149,192,121,150,136,227,126,159,88,12,98,0,151,90,134,24,86,123,152,144,95,184,139,196,132,87,145,217,83,237,101,143,94,92,117,100,96,110,125,127,90,234,126,237,126,105,143,167,85,163,91,172,96,203,101,132,115,9,144,99,118,41,119,218,126,116,151,155,133,102,91,116,122,234,150,64,136,203,82,143,113,170,95,236,101,226,139,251,91,111,154,225,93,137,107,91,108,173,139,175,139,10,144,197,143,139,83,188,98,38,158,45,158,64,84,43,78,189,130,89,114,156,134,22,93,89,136,175,109,197,150,209,84,154,78,182,139,9,113,189,84,9,150,223,112,249,109,208,118,37,78,20,120,18,135,169,92,246,94,0,138,156,152,14,150,142,112,191,108,68,89,169,99,60,119,77,136,20,111,115,130,48,88,213,113,140,83,26,120,193,150,1,85,102,95,48,113,180,91,26,140,140,154,131,107,46,89,47,158,231,121,104,103,108,98,111,79,161,117,138,127,11,109,51,150,39,108,240,78,210,117,123,81,55,104,62,111,128,144,112,129,150,89,118,116,71,100,39,92,101,144,145,122,35,140,218,89,172,84,0,130,111,131,129,137,0,128,48,105,78,86,54,128,55,114,206,145,182,81,95,78,117,152,150,99,26,78,246,83,243,102,75,129,28,89,178,109,0,78,249,88,59,83,214,99,241,148,157,79,10,79,99,136,144,152,55,89,87,144,251,121,234,78,240,128,145,117,130,108,156,91,232,89,93,95,5,105,129,134,26,80,242,93,89,78,227,119,229,78,122,130,145,98,19,102,145,144,121,92,191,78,121,95,198,129,56,144,132,128,171,117,166,78,212,136,15,97,197,107,198,95,73,78,202,118,162,110,227,139,174,139,10,140,209,139,2,95,252,127,204,127,206,126,53,131,107,131,224,86,183,107,243,151,52,150,251,89,31,84,246,148,235,109,197,91,110,153,57,92,21,95,144,150,112,83,241,130,49,106,116,90,112,158,148,94,40,127,185,131,36,132,37,132,103,131,71,135,206,143,98,141,200,118,113,95,150,152,108,120,32,102,223,84,229,98,99,79,195,129,200,117,184,94,205,150,10,142,249,134,143,84,243,108,140,109,56,108,127,96,199,82,40,117,125,94,24,79,160,96,231,95,36,92,49,117,174,144,192,148,185,114,185,108,56,110,73,145,9,103,203,83,243,83,81,79,201,145,241,139,200,83,124,94,194,143,228,109,142,78,194,118,134,105,94,134,26,97,6,130,89,79,222,79,62,144,124,156,9,97,29,110,20,110,133,150,136,78,49,90,232,150,14,78,127,92,185,121,135,91,237,139,189,127,137,115,223,87,139,130,193,144,1,84,71,144,187,85,234,92,161,95,8,97,50,107,241,114,178,128,137,138,116,109,211,91,213,136,132,152,107,140,109,154,51,158,10,110,164,81,67,81,163,87,129,136,159,83,244,99,149,143,237,86,88,84,6,87,63,115,144,110,24,127,220,143,209,130,63,97,40,96,98,150,240,102,166,126,138,141,195,141,165,148,179,92,164,124,8,103,166,96,5,150,24,128,145,78,231,144,0,83,104,150,65,81,208,143,116,133,93,145,85,102,245,151,85,91,29,83,56,120,66,103,61,104,201,84,126,112,176,91,125,143,141,81,40,87,177,84,18,101,130,102,94,141,67,141,15,129,108,132,109,144,223,124,255,81,251,133,163,103,233,101,161,111,164,134,129,142,106,86,32,144,130,118,118,112,229,113,35,141,233,98,25,82,253,108,60,141,14,96,158,88,142,97,254,102,96,141,78,98,179,85,35,110,45,103,103,143,225,148,248,149,40,119,5,104,168,105,139,84,77,78,184,112,200,139,88,100,139,101,133,91,132,122,58,80,232,91,187,119,225,107,121,138,152,124,190,108,207,118,169,101,151,143,45,93,85,92,56,134,8,104,96,83,24,98,217,122,91,110,253,126,31,106,224,122,112,95,51,111,32,95,140,99,168,109,86,103,8,78,16,94,38,141,215,78,192,128,52,118,156,150,219,98,45,102,126,98,188,108,117,141,103,113,105,127,70,81,135,128,236,83,110,144,152,98,242,84,240,134,153,143,5,128,23,149,23,133,217,143,89,109,205,115,159,101,31,119,4,117,39,120,251,129,30,141,136,148,166,79,149,103,185,117,202,139,7,151,47,99,71,149,53,150,184,132,35,99,65,119,129,95,240,114,137,78,20,96,116,101,239,98,99,107,63,101,39,94,199,117,209,144,193,139,157,130,157,103,47,101,49,84,24,135,229,119,162,128,2,129,65,108,75,78,199,126,76,128,244,118,13,105,150,107,103,98,60,80,132,79,64,87,7,99,98,107,190,141,234,83,232,101,184,126,215,95,26,99,183,99,243,129,244,129,110,127,28,94,217,92,54,82,122,102,233,121,26,122,40,141,153,112,212,117,222,110,187,108,146,122,45,78,197,118,224,95,159,148,119,136,200,126,205,121,191,128,205,145,242,78,23,79,31,130,104,84,222,93,50,109,204,139,165,124,116,143,152,128,26,94,146,84,177,118,153,91,60,102,164,154,224,115,42,104,219,134,49,103,42,115,248,139,219,139,16,144,249,122,219,112,110,113,196,98,169,119,49,86,59,78,87,132,241,103,169,82,192,134,46,141,248,148,81,123,79,79,232,108,93,121,123,154,147,98,42,114,253,98,19,78,22,120,108,143,176,100,90,141,198,123,105,104,132,94,197,136,134,89,158,100,238,88,182,114,14,105,37,149,253,143,88,141,96,87,0,127,6,140,198,81,73,99,217,98,83,83,76,104,34,116,1,131,76,145,68,85,64,119,124,112,74,109,121,81,168,84,68,141,255,89,203,110,196,109,92,91,43,125,212,78,125,124,211,110,80,91,234,129,13,110,87,91,3,155,213,104,42,142,151,91,252,126,59,96,181,126,185,144,112,141,79,89,205,99,223,121,179,141,82,83,207,101,86,121,197,139,59,150,196,126,187,148,130,126,52,86,137,145,0,103,106,127,10,92,117,144,40,102,230,93,80,79,222,103,90,80,92,79,80,87,167,94,90,216,17,221,90,216,14,221,161,118,165,118,183,118,141,78,12,78,64,81,16,78,255,94,69,83,21,78,152,78,30,78,50,155,108,91,105,86,40,78,186,121,63,78,21,83,71,78,45,89,59,114,110,83,16,108,223,86,228,128,151,153,211,107,126,119,23,159,54,78,159,78,16,159,92,78,105,78,147,78,136,130,91,91,108,85,15,86,196,78,141,83,157,83,163,83,165,83,174,83,101,151,93,141,26,83,245,83,38,83,46,83,62,83,92,141,102,83,99,83,2,82,8,82,14,82,45,82,51,82,63,82,64,82,76,82,94,82,97,82,92,82,175,132,125,82,130,82,129,82,144,82,147,82,130,81,84,127,187,78,195,78,201,78,194,78,232,78,225,78,235,78,222,78,27,79,243,78,34,79,100,79,245,78,37,79,39,79,9,79,43,79,94,79,103,79,56,101,90,79,93,79,95,79,87,79,50,79,61,79,118,79,116,79,145,79,137,79,131,79,143,79,126,79,123,79,170,79,124,79,172,79,148,79,230,79,232,79,234,79,197,79,218,79,227,79,220,79,209,79,223,79,248,79,41,80,76,80,243,79,44,80,15,80,46,80,45,80,254,79,28,80,12,80,37,80,40,80,126,80,67,80,85,80,72,80,78,80,108,80,123,80,165,80,167,80,169,80,186,80,214,80,6,81,237,80,236,80,230,80,238,80,7,81,11,81,221,78,61,108,88,79,101,79,206,79,160,159,70,108,116,124,110,81,253,93,201,158,152,153,129,81,20,89,249,82,13,83,7,138,16,83,235,81,25,89,85,81,160,78,86,81,179,78,110,136,164,136,181,78,20,129,210,136,128,121,52,91,3,136,184,127,171,81,177,81,189,81,188,81,199,81,150,81,162,81,165,81,160,139,166,139,167,139,170,139,180,139,181,139,183,139,194,139,195,139,203,139,207,139,206,139,210,139,211,139,212,139,214,139,216,139,217,139,220,139,223,139,224,139,228,139,232,139,233,139,238,139,240,139,243,139,246,139,249,139,252,139,255,139,0,140,2,140,4,140,7,140,12,140,15,140,17,140,18,140,20,140,21,140,22,140,25,140,27,140,24,140,29,140,31,140,32,140,33,140,37,140,39,140,42,140,43,140,46,140,47,140,50,140,51,140,53,140,54,140,105,83,122,83,29,150,34,150,33,150,49,150,42,150,61,150,60,150,66,150,73,150,84,150,95,150,103,150,108,150,114,150,116,150,136,150,141,150,151,150,176,150,151,144,155,144,157,144,153,144,172,144,161,144,180,144,179,144,182,144,186,144,184,144,176,144,207,144,197,144,190,144,208,144,196,144,199,144,211,144,230,144,226,144,220,144,215,144,219,144,235,144,239,144,254,144,4,145,34,145,30,145,35,145,49,145,47,145,57,145,67,145,70,145,13,82,66,89,162,82,172,82,173,82,190,82,255,84,208,82,214,82,240,82,223,83,238,113,205,119,244,94,245,81,252,81,47,155,182,83,1,95,90,117,239,93,76,87,169,87,161,87,126,88,188,88,197,88,209,88,41,87,44,87,42,87,51,87,57,87,46,87,47,87,92,87,59,87,66,87,105,87,133,87,107,87,134,87,124,87,123,87,104,87,109,87,118,87,115,87,173,87,164,87,140,87,178,87,207,87,167,87,180,87,147,87,160,87,213,87,216,87,218,87,217,87,210,87,184,87,244,87,239,87,248,87,228,87,221,87,11,88,13,88,253,87,237,87,0,88,30,88,25,88,68,88,32,88,101,88,108,88,129,88,137,88,154,88,128,88,168,153,25,159,255,97,121,130,125,130,127,130,143,130,138,130,168,130,132,130,142,130,145,130,151,130,153,130,171,130,184,130,190,130,176,130,200,130,202,130,227,130,152,130,183,130,174,130,203,130,204,130,193,130,169,130,180,130,161,130,170,130,159,130,196,130,206,130,164,130,225,130,9,131,247,130,228,130,15,131,7,131,220,130,244,130,210,130,216,130,12,131,251,130,211,130,17,131,26,131,6,131,20,131,21,131,224,130,213,130,28,131,81,131,91,131,92,131,8,131,146,131,60,131,52,131,49,131,155,131,94,131,47,131,79,131,71,131,67,131,95,131,64,131,23,131,96,131,45,131,58,131,51,131,102,131,101,131,104,131,27,131,105,131,108,131,106,131,109,131,110,131,176,131,120,131,179,131,180,131,160,131,170,131,147,131,156,131,133,131,124,131,182,131,169,131,125,131,184,131,123,131,152,131,158,131,168,131,186,131,188,131,193,131,1,132,229,131,216,131,7,88,24,132,11,132,221,131,253,131,214,131,28,132,56,132,17,132,6,132,212,131,223,131,15,132,3,132,248,131,249,131,234,131,197,131,192,131,38,132,240,131,225,131,92,132,81,132,90,132,89,132,115,132,135,132,136,132,122,132,137,132,120,132,60,132,70,132,105,132,118,132,140,132,142,132,49,132,109,132,193,132,205,132,208,132,230,132,189,132,211,132,202,132,191,132,186,132,224,132,161,132,185,132,180,132,151,132,229,132,227,132,12,133,13,117,56,133,240,132,57,133,31,133,58,133,86,133,59,133,255,132,252,132,89,133,72,133,104,133,100,133,94,133,122,133,162,119,67,133,114,133,123,133,164,133,168,133,135,133,143,133,121,133,174,133,156,133,133,133,185,133,183,133,176,133,211,133,193,133,220,133,255,133,39,134,5,134,41,134,22,134,60,134,254,94,8,95,60,89,65,89,55,128,85,89,90,89,88,89,15,83,34,92,37,92,44,92,52,92,76,98,106,98,159,98,187,98,202,98,218,98,215,98,238,98,34,99,246,98,57,99,75,99,67,99,173,99,246,99,113,99,122,99,142,99,180,99,109,99,172,99,138,99,105,99,174,99,188,99,242,99,248,99,224,99,255,99,196,99,222,99,206,99,82,100,198,99,190,99,69,100,65,100,11,100,27,100,32,100,12,100,38,100,33,100,94,100,132,100,109,100,150,100,122,100,183,100,184,100,153,100,186,100,192,100,208,100,215,100,228,100,226,100,9,101,37,101,46,101,11,95,210,95,25,117,17,95,95,83,241,83,253,83,233,83,232,83,251,83,18,84,22,84,6,84,75,84,82,84,83,84,84,84,86,84,67,84,33,84,87,84,89,84,35,84,50,84,130,84,148,84,119,84,113,84,100,84,154,84,155,84,132,84,118,84,102,84,157,84,208,84,173,84,194,84,180,84,210,84,167,84,166,84,211,84,212,84,114,84,163,84,213,84,187,84,191,84,204,84,217,84,218,84,220,84,169,84,170,84,164,84,221,84,207,84,222,84,27,85,231,84,32,85,253,84,20,85,243,84,34,85,35,85,15,85,17,85,39,85,42,85,103,85,143,85,181,85,73,85,109,85,65,85,85,85,63,85,80,85,60,85,55,85,86,85,117,85,118,85,119,85,51,85,48,85,92,85,139,85,210,85,131,85,177,85,185,85,136,85,129,85,159,85,126,85,214,85,145,85,123,85,223,85,189,85,190,85,148,85,153,85,234,85,247,85,201,85,31,86,209,85,235,85,236,85,212,85,230,85,221,85,196,85,239,85,229,85,242,85,243,85,204,85,205,85,232,85,245,85,228,85,148,143,30,86,8,86,12,86,1,86,36,86,35,86,254,85,0,86,39,86,45,86,88,86,57,86,87,86,44,86,77,86,98,86,89,86,92,86,76,86,84,86,134,86,100,86,113,86,107,86,123,86,124,86,133,86,147,86,175,86,212,86,215,86,221,86,225,86,245,86,235,86,249,86,255,86,4,87,10,87,9,87,28,87,15,94,25,94,20,94,17,94,49,94,59,94,60,94,55,94,68,94,84,94,91,94,94,94,97,94,140,92,122,92,141,92,144,92,150,92,136,92,152,92,153,92,145,92,154,92,156,92,181,92,162,92,189,92,172,92,171,92,177,92,163,92,193,92,183,92,196,92,210,92,228,92,203,92,229,92,2,93,3,93,39,93,38,93,46,93,36,93,30,93,6,93,27,93,88,93,62,93,52,93,61,93,108,93,91,93,111,93,93,93,107,93,75,93,74,93,105,93,116,93,130,93,153,93,157,93,115,140,183,93,197,93,115,95,119,95,130,95,135,95,137,95,140,95,149,95,153,95,156,95,168,95,173,95,181,95,188,95,98,136,97,95,173,114,176,114,180,114,183,114,184,114,195,114,193,114,206,114,205,114,210,114,232,114,239,114,233,114,242,114,244,114,247,114,1,115,243,114,3,115,250,114,251,114,23,115,19,115,33,115,10,115,30,115,29,115,21,115,34,115,57,115,37,115,44,115,56,115,49,115,80,115,77,115,87,115,96,115,108,115,111,115,126,115,27,130,37,89,231,152,36,89,2,89,99,153,103,153,104,153,105,153,106,153,107,153,108,153,116,153,119,153,125,153,128,153,132,153,135,153,138,153,141,153,144,153,145,153,147,153,148,153,149,153,128,94,145,94,139,94,150,94,165,94,160,94,185,94,181,94,190,94,179,94,83,141,210,94,209,94,219,94,232,94,234,94,186,129,196,95,201,95,214,95,207,95,3,96,238,95,4,96,225,95,228,95,254,95,5,96,6,96,234,95,237,95,248,95,25,96,53,96,38,96,27,96,15,96,13,96,41,96,43,96,10,96,63,96,33,96,120,96,121,96,123,96,122,96,66,96,106,96,125,96,150,96,154,96,173,96,157,96,131,96,146,96,140,96,155,96,236,96,187,96,177,96,221,96,216,96,198,96,218,96,180,96,32,97,38,97,21,97,35,97,244,96,0,97,14,97,43,97,74,97,117,97,172,97,148,97,167,97,183,97,212,97,245,97,221,95,179,150,233,149,235,149,241,149,243,149,245,149,246,149,252,149,254,149,3,150,4,150,6,150,8,150,10,150,11,150,12,150,13,150,15,150,18,150,21,150,22,150,23,150,25,150,26,150,44,78,63,114,21,98,53,108,84,108,92,108,74,108,163,108,133,108,144,108,148,108,140,108,104,108,105,108,116,108,118,108,134,108,169,108,208,108,212,108,173,108,247,108,248,108,241,108,215,108,178,108,224,108,214,108,250,108,235,108,238,108,177,108,211,108,239,108,254,108,57,109,39,109,12,109,67,109,72,109,7,109,4,109,25,109,14,109,43,109,77,109,46,109,53,109,26,109,79,109,82,109,84,109,51,109,145,109,111,109,158,109,160,109,94,109,147,109,148,109,92,109,96,109,124,109,99,109,26,110,199,109,197,109,222,109,14,110,191,109,224,109,17,110,230,109,221,109,217,109,22,110,171,109,12,110,174,109,43,110,110,110,78,110,107,110,178,110,95,110,134,110,83,110,84,110,50,110,37,110,68,110,223,110,177,110,152,110,224,110,45,111,226,110,165,110,167,110,189,110,187,110,183,110,215,110,180,110,207,110,143,110,194,110,159,110,98,111,70,111,71,111,36,111,21,111,249,110,47,111,54,111,75,111,116,111,42,111,9,111,41,111,137,111,141,111,140,111,120,111,114,111,124,111,122,111,209,111,201,111,167,111,185,111,182,111,194,111,225,111,238,111,222,111,224,111,239,111,26,112,35,112,27,112,57,112,53,112,79,112,94,112,128,91,132,91,149,91,147,91,165,91,184,91,47,117,158,154,52,100,228,91,238,91,48,137,240,91,71,142,7,139,182,143,211,143,213,143,229,143,238,143,228,143,233,143,230,143,243,143,232,143,5,144,4,144,11,144,38,144,17,144,13,144,22,144,33,144,53,144,54,144,45,144,47,144,68,144,81,144,82,144,80,144,104,144,88,144,98,144,91,144,185,102,116,144,125,144,130,144,136,144,131,144,139,144,80,95,87,95,86,95,88,95,59,92,171,84,80,92,89,92,113,91,99,92,102,92,188,127,42,95,41,95,45,95,116,130,60,95,59,155,110,92,129,89,131,89,141,89,169,89,170,89,163,89,151,89,202,89,171,89,158,89,164,89,210,89,178,89,175,89,215,89,190,89,5,90,6,90,221,89,8,90,227,89,216,89,249,89,12,90,9,90,50,90,52,90,17,90,35,90,19,90,64,90,103,90,74,90,85,90,60,90,98,90,117,90,236,128,170,90,155,90,119,90,122,90,190,90,235,90,178,90,210,90,212,90,184,90,224,90,227,90,241,90,214,90,230,90,216,90,220,90,9,91,23,91,22,91,50,91,55,91,64,91,21,92,28,92,90,91,101,91,115,91,81,91,83,91,98,91,117,154,119,154,120,154,122,154,127,154,125,154,128,154,129,154,133,154,136,154,138,154,144,154,146,154,147,154,150,154,152,154,155,154,156,154,157,154,159,154,160,154,162,154,163,154,165,154,167,154,159,126,161,126,163,126,165,126,168,126,169,126,173,126,176,126,190,126,192,126,193,126,194,126,201,126,203,126,204,126,208,126,212,126,215,126,219,126,224,126,225,126,232,126,235,126,238,126,239,126,241,126,242,126,13,127,246,126,250,126,251,126,254,126,1,127,2,127,3,127,7,127,8,127,11,127,12,127,15,127,17,127,18,127,23,127,25,127,28,127,27,127,31,127,33,127,34,127,35,127,36,127,37,127,38,127,39,127,42,127,43,127,44,127,45,127,47,127,48,127,49,127,50,127,51,127,53,127,122,94,127,117,219,93,62,117,149,144,142,115,145,115,174,115,162,115,159,115,207,115,194,115,209,115,183,115,179,115,192,115,201,115,200,115,229,115,217,115,124,152,10,116,233,115,231,115,222,115,186,115,242,115,15,116,42,116,91,116,38,116,37,116,40,116,48,116,46,116,44,116,27,116,26,116,65,116,92,116,87,116,85,116,89,116,119,116,109,116,126,116,156,116,142,116,128,116,129,116,135,116,139,116,158,116,168,116,169,116,144,116,167,116,210,116,186,116,234,151,235,151,236,151,76,103,83,103,94,103,72,103,105,103,165,103,135,103,106,103,115,103,152,103,167,103,117,103,168,103,158,103,173,103,139,103,119,103,124,103,240,103,9,104,216,103,10,104,233,103,176,103,12,104,217,103,181,103,218,103,179,103,221,103,0,104,195,103,184,103,226,103,14,104,193,103,253,103,50,104,51,104,96,104,97,104,78,104,98,104,68,104,100,104,131,104,29,104,85,104,102,104,65,104,103,104,64,104,62,104,74,104,73,104,41,104,181,104,143,104,116,104,119,104,147,104,107,104,194,104,110,105,252,104,31,105,32,105,249,104,36,105,240,104,11,105,1,105,87,105,227,104,16,105,113,105,57,105,96,105,66,105,93,105,132,105,107,105,128,105,152,105,120,105,52,105,204,105,135,105,136,105,206,105,137,105,102,105,99,105,121,105,155,105,167,105,187,105,171,105,173,105,212,105,177,105,193,105,202,105,223,105,149,105,224,105,141,105,255,105,47,106,237,105,23,106,24,106,101,106,242,105,68,106,62,106,160,106,80,106,91,106,53,106,142,106,121,106,61,106,40,106,88,106,124,106,145,106,144,106,169,106,151,106,171,106,55,115,82,115,129,107,130,107,135,107,132,107,146,107,147,107,141,107,154,107,155,107,161,107,170,107,107,143,109,143,113,143,114,143,115,143,117,143,118,143,120,143,119,143,121,143,122,143,124,143,126,143,129,143,130,143,132,143,135,143,139,143,141,143,142,143,143,143,152,143,154,143,206,142,11,98,23,98,27,98,31,98,34,98,33,98,37,98,36,98,44,98,231,129,239,116,244,116,255,116,15,117,17,117,19,117,52,101,238,101,239,101,240,101,10,102,25,102,114,103,3,102,21,102,0,102,133,112,247,102,29,102,52,102,49,102,54,102,53,102,6,128,95,102,84,102,65,102,79,102,86,102,97,102,87,102,119,102,132,102,140,102,167,102,157,102,190,102,219,102,220,102,230,102,233,102,50,141,51,141,54,141,59,141,61,141,64,141,69,141,70,141,72,141,73,141,71,141,77,141,85,141,89,141,199,137,202,137,203,137,204,137,206,137,207,137,208,137,209,137,110,114,159,114,93,114,102,114,111,114,126,114,127,114,132,114,139,114,141,114,143,114,146,114,8,99,50,99,176,99,63,100,216,100,4,128,234,107,243,107,253,107,245,107,249,107,5,108,7,108,6,108,13,108,21,108,24,108,25,108,26,108,33,108,41,108,36,108,42,108,50,108,53,101,85,101,107,101,77,114,82,114,86,114,48,114,98,134,22,82,159,128,156,128,147,128,188,128,10,103,189,128,177,128,171,128,173,128,180,128,183,128,231,128,232,128,233,128,234,128,219,128,194,128,196,128,217,128,205,128,215,128,16,103,221,128,235,128,241,128,244,128,237,128,13,129,14,129,242,128,252,128,21,103,18,129,90,140,54,129,30,129,44,129,24,129,50,129,72,129,76,129,83,129,116,129,89,129,90,129,113,129,96,129,105,129,124,129,125,129,109,129,103,129,77,88,181,90,136,129,130,129,145,129,213,110,163,129,170,129,204,129,38,103,202,129,187,129,193,129,166,129,36,107,55,107,57,107,67,107,70,107,89,107,209,152,210,152,211,152,213,152,217,152,218,152,179,107,64,95,194,107,243,137,144,101,81,159,147,101,188,101,198,101,196,101,195,101,204,101,206,101,210,101,214,101,128,112,156,112,150,112,157,112,187,112,192,112,183,112,171,112,177,112,232,112,202,112,16,113,19,113,22,113,47,113,49,113,115,113,92,113,104,113,69,113,114,113,74,113,120,113,122,113,152,113,179,113,181,113,168,113,160,113,224,113,212,113,231,113,249,113,29,114,40,114,108,112,24,113,102,113,185,113,62,98,61,98,67,98,72,98,73,98,59,121,64,121,70,121,73,121,91,121,92,121,83,121,90,121,98,121,87,121,96,121,111,121,103,121,122,121,133,121,138,121,154,121,167,121,179,121,209,95,208,95,60,96,93,96,90,96,103,96,65,96,89,96,99,96,171,96,6,97,13,97,93,97,169,97,157,97,203,97,209,97,6,98,128,128,127,128,147,108,246,108,252,109,246,119,248,119,0,120,9,120,23,120,24,120,17,120,171,101,45,120,28,120,29,120,57,120,58,120,59,120,31,120,60,120,37,120,44,120,35,120,41,120,78,120,109,120,86,120,87,120,38,120,80,120,71,120,76,120,106,120,155,120,147,120,154,120,135,120,156,120,161,120,163,120,178,120,185,120,165,120,212,120,217,120,201,120,236,120,242,120,5,121,244,120,19,121,36,121,30,121,52,121,155,159,249,158,251,158,252,158,241,118,4,119,13,119,249,118,7,119,8,119,26,119,34,119,25,119,45,119,38,119,53,119,56,119,80,119,81,119,71,119,67,119,90,119,104,119,98,119,101,119,127,119,141,119,125,119,128,119,140,119,145,119,159,119,160,119,176,119,181,119,189,119,58,117,64,117,78,117,75,117,72,117,91,117,114,117,121,117,131,117,88,127,97,127,95,127,72,138,104,127,116,127,113,127,121,127,129,127,126,127,205,118,229,118,50,136,133,148,134,148,135,148,139,148,138,148,140,148,141,148,143,148,144,148,148,148,151,148,149,148,154,148,155,148,156,148,163,148,164,148,171,148,170,148,173,148,172,148,175,148,176,148,178,148,180,148,182,148,183,148,184,148,185,148,186,148,188,148,189,148,191,148,196,148,200,148,201,148,202,148,203,148,204,148,205,148,206,148,208,148,209,148,210,148,213,148,214,148,215,148,217,148,216,148,219,148,222,148,223,148,224,148,226,148,228,148,229,148,231,148,232,148,234,148,233,148,235,148,238,148,239,148,243,148,244,148,245,148,247,148,249,148,252,148,253,148,255,148,3,149,2,149,6,149,7,149,9,149,10,149,13,149,14,149,15,149,18,149,19,149,20,149,21,149,22,149,24,149,27,149,29,149,30,149,31,149,34,149,42,149,43,149,41,149,44,149,49,149,50,149,52,149,54,149,55,149,56,149,60,149,62,149,63,149,66,149,53,149,68,149,69,149,70,149,73,149,76,149,78,149,79,149,82,149,83,149,84,149,86,149,87,149,88,149,89,149,91,149,94,149,95,149,93,149,97,149,98,149,100,149,101,149,102,149,103,149,104,149,105,149,106,149,107,149,108,149,111,149,113,149,114,149,115,149,58,149,231,119,236,119,201,150,213,121,237,121,227,121,235,121,6,122,71,93,3,122,2,122,30,122,20,122,57,122,55,122,81,122,207,158,165,153,112,122,136,118,142,118,147,118,153,118,164,118,222,116,224,116,44,117,32,158,34,158,40,158,41,158,42,158,43,158,44,158,50,158,49,158,54,158,56,158,55,158,57,158,58,158,62,158,65,158,66,158,68,158,70,158,71,158,72,158,73,158,75,158,76,158,78,158,81,158,85,158,87,158,90,158,91,158,92,158,94,158,99,158,102,158,103,158,104,158,105,158,106,158,107,158,108,158,113,158,109,158,115,158,146,117,148,117,150,117,160,117,157,117,172,117,163,117,179,117,180,117,184,117,196,117,177,117,176,117,195,117,194,117,214,117,205,117,227,117,232,117,230,117,228,117,235,117,231,117,3,118,241,117,252,117,255,117,16,118,0,118,5,118,12,118,23,118,10,118,37,118,24,118,21,118,25,118,27,118,60,118,34,118,32,118,64,118,45,118,48,118,63,118,53,118,67,118,62,118,51,118,77,118,94,118,84,118,92,118,86,118,107,118,111,118,202,127,230,122,120,122,121,122,128,122,134,122,136,122,149,122,166,122,160,122,172,122,168,122,173,122,179,122,100,136,105,136,114,136,125,136,127,136,130,136,162,136,198,136,183,136,188,136,201,136,226,136,206,136,227,136,229,136,241,136,26,137,252,136,232,136,254,136,240,136,33,137,25,137,19,137,27,137,10,137,52,137,43,137,54,137,65,137,102,137,123,137,139,117,229,128,178,118,180,118,220,119,18,128,20,128,22,128,28,128,32,128,34,128,37,128,38,128,39,128,41,128,40,128,49,128,11,128,53,128,67,128,70,128,77,128,82,128,105,128,113,128,131,137,120,152,128,152,131,152,137,152,140,152,141,152,143,152,148,152,154,152,155,152,158,152,159,152,161,152,162,152,165,152,166,152,77,134,84,134,108,134,110,134,127,134,122,134,124,134,123,134,168,134,141,134,139,134,172,134,157,134,167,134,163,134,170,134,147,134,169,134,182,134,196,134,181,134,206,134,176,134,186,134,177,134,175,134,201,134,207,134,180,134,233,134,241,134,242,134,237,134,243,134,208,134,19,135,222,134,244,134,223,134,216,134,209,134,3,135,7,135,248,134,8,135,10,135,13,135,9,135,35,135,59,135,30,135,37,135,46,135,26,135,62,135,72,135,52,135,49,135,41,135,55,135,63,135,130,135,34,135,125,135,126,135,123,135,96,135,112,135,76,135,110,135,139,135,83,135,99,135,124,135,100,135,89,135,101,135,147,135,175,135,168,135,210,135,198,135,136,135,133,135,173,135,151,135,131,135,171,135,229,135,172,135,181,135,179,135,203,135,211,135,189,135,209,135,192,135,202,135,219,135,234,135,224,135,238,135,22,136,19,136,254,135,10,136,27,136,33,136,57,136,60,136,54,127,66,127,68,127,69,127,16,130,250,122,253,122,8,123,3,123,4,123,21,123,10,123,43,123,15,123,71,123,56,123,42,123,25,123,46,123,49,123,32,123,37,123,36,123,51,123,62,123,30,123,88,123,90,123,69,123,117,123,76,123,93,123,96,123,110,123,123,123,98,123,114,123,113,123,144,123,166,123,167,123,184,123,172,123,157,123,168,123,133,123,170,123,156,123,162,123,171,123,180,123,209,123,193,123,204,123,221,123,218,123,229,123,230,123,234,123,12,124,254,123,252,123,15,124,22,124,11,124,31,124,42,124,38,124,56,124,65,124,64,124,254,129,1,130,2,130,4,130,236,129,68,136,33,130,34,130,35,130,45,130,47,130,40,130,43,130,56,130,59,130,51,130,52,130,62,130,68,130,73,130,75,130,79,130,90,130,95,130,104,130,126,136,133,136,136,136,216,136,223,136,94,137,157,127,159,127,167,127,175,127,176,127,178,127,124,124,73,101,145,124,157,124,156,124,158,124,162,124,178,124,188,124,189,124,193,124,199,124,204,124,205,124,200,124,197,124,215,124,232,124,110,130,168,102,191,127,206,127,213,127,229,127,225,127,230,127,233,127,238,127,243,127,248,124,119,125,166,125,174,125,71,126,155,126,184,158,180,158,115,141,132,141,148,141,145,141,177,141,103,141,109,141,71,140,73,140,74,145,80,145,78,145,79,145,100,145,98,145,97,145,112,145,105,145,111,145,125,145,126,145,114,145,116,145,121,145,140,145,133,145,144,145,141,145,145,145,162,145,163,145,170,145,173,145,174,145,175,145,181,145,180,145,186,145,85,140,126,158,184,141,235,141,5,142,89,142,105,142,181,141,191,141,188,141,186,141,196,141,214,141,215,141,218,141,222,141,206,141,207,141,219,141,198,141,236,141,247,141,248,141,227,141,249,141,251,141,228,141,9,142,253,141,20,142,29,142,31,142,44,142,46,142,35,142,47,142,58,142,64,142,57,142,53,142,61,142,49,142,73,142,65,142,66,142,81,142,82,142,74,142,112,142,118,142,124,142,111,142,116,142,133,142,143,142,148,142,144,142,156,142,158,142,120,140,130,140,138,140,133,140,152,140,148,140,155,101,214,137,222,137,218,137,220,137,229,137,235,137,239,137,62,138,38,139,83,151,233,150,243,150,239,150,6,151,1,151,8,151,15,151,14,151,42,151,45,151,48,151,62,151,128,159,131,159,133,159,134,159,135,159,136,159,137,159,138,159,140,159,254,158,11,159,13,159,185,150,188,150,189,150,206,150,210,150,191,119,224,150,142,146,174,146,200,146,62,147,106,147,202,147,143,147,62,148,107,148,127,156,130,156,133,156,134,156,135,156,136,156,35,122,139,156,142,156,144,156,145,156,146,156,148,156,149,156,154,156,155,156,158,156,159,156,160,156,161,156,162,156,163,156,165,156,166,156,167,156,168,156,169,156,171,156,173,156,174,156,176,156,177,156,178,156,179,156,180,156,181,156,182,156,183,156,186,156,187,156,188,156,189,156,196,156,197,156,198,156,199,156,202,156,203,156,204,156,205,156,206,156,207,156,208,156,211,156,212,156,213,156,215,156,216,156,217,156,220,156,221,156,223,156,226,156,124,151,133,151,145,151,146,151,148,151,175,151,171,151,163,151,178,151,180,151,177,154,176,154,183,154,88,158,182,154,186,154,188,154,193,154,192,154,197,154,194,154,203,154,204,154,209,154,69,155,67,155,71,155,73,155,72,155,77,155,81,155,232,152,13,153,46,153,85,153,84,153,223,154,225,154,230,154,239,154,235,154,251,154,237,154,249,154,8,155,15,155,19,155,31,155,35,155,189,158,190,158,59,126,130,158,135,158,136,158,139,158,146,158,214,147,157,158,159,158,219,158,220,158,221,158,224,158,223,158,226,158,233,158,231,158,229,158,234,158,239,158,34,159,44,159,47,159,57,159,55,159,61,159,62,159,68,159,0,0,239,223,76,51,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,42,0,89,81,91,81,94,81,93,81,97,81,99,81,231,85,233,116,206,124,0,78,89,78,1,78,3,78,67,78,93,78,134,78,140,78,186,78,63,81,101,81,107,81,224,81,0,82,1,82,155,82,21,83,65,83,92,83,200,83,9,78,11,78,8,78,10,78,43,78,56,78,225,81,69,78,72,78,95,78,94,78,142,78,161,78,64,81,3,82,250,82,67,83,201,83,227,83,31,87,235,88,21,89,39,89,115,89,80,91,81,91,83,91,248,91,15,92,34,92,56,92,113,92,221,93,229,93,241,93,242,93,243,93,254,93,114,94,254,94,11,95,19,95,77,98,17,78,16,78,13,78,45,78,48,78,57,78,75,78,57,92,136,78,145,78,149,78,146,78,148,78,162,78,193,78,192,78,195,78,198,78,199,78,205,78,202,78,203,78,196,78,67,81,65,81,103,81,109,81,110,81,108,81,151,81,246,81,6,82,7,82,8,82,251,82,254,82,255,82,22,83,57,83,72,83,71,83,69,83,94,83,132,83,203,83,202,83,205,83,236,88,41,89,43,89,42,89,45,89,84,91,17,92,36,92,58,92,111,92,244,93,123,94,255,94,20,95,21,95,195,95,8,98,54,98,75,98,78,98,47,101,135,101,151,101,164,101,185,101,229,101,240,102,8,103,40,103,32,107,98,107,121,107,203,107,212,107,219,107,15,108,52,108,107,112,42,114,54,114,59,114,71,114,89,114,91,114,172,114,139,115,25,78,22,78,21,78,20,78,24,78,59,78,77,78,79,78,78,78,229,78,216,78,212,78,213,78,214,78,215,78,227,78,228,78,217,78,222,78,69,81,68,81,137,81,138,81,172,81,249,81,250,81,248,81,10,82,160,82,159,82,5,83,6,83,23,83,29,83,223,78,74,83,73,83,97,83,96,83,111,83,110,83,187,83,239,83,228,83,243,83,236,83,238,83,233,83,232,83,252,83,248,83,245,83,235,83,230,83,234,83,242,83,241,83,240,83,229,83,237,83,251,83,219,86,218,86,22,89,46,89,49,89,116,89,118,89,85,91,131,91,60,92,232,93,231,93,230,93,2,94,3,94,115,94,124,94,1,95,24,95,23,95,197,95,10,98,83,98,84,98,82,98,81,98,165,101,230,101,46,103,44,103,42,103,43,103,45,103,99,107,205,107,17,108,16,108,56,108,65,108,64,108,62,108,175,114,132,115,137,115,220,116,230,116,24,117,31,117,40,117,41,117,48,117,49,117,50,117,51,117,139,117,125,118,174,118,191,118,238,118,219,119,226,119,243,119,58,121,190,121,116,122,203,122,30,78,31,78,82,78,83,78,105,78,153,78,164,78,166,78,165,78,255,78,9,79,25,79,10,79,21,79,13,79,16,79,17,79,15,79,242,78,246,78,251,78,240,78,243,78,253,78,1,79,11,79,73,81,71,81,70,81,72,81,104,81,113,81,141,81,176,81,23,82,17,82,18,82,14,82,22,82,163,82,8,83,33,83,32,83,112,83,113,83,9,84,15,84,12,84,10,84,16,84,1,84,11,84,4,84,17,84,13,84,8,84,3,84,14,84,6,84,18,84,224,86,222,86,221,86,51,87,48,87,40,87,45,87,44,87,47,87,41,87,25,89,26,89,55,89,56,89,132,89,120,89,131,89,125,89,121,89,130,89,129,89,87,91,88,91,135,91,136,91,133,91,137,91,250,91,22,92,121,92,222,93,6,94,118,94,116,94,15,95,27,95,217,95,214,95,14,98,12,98,13,98,16,98,99,98,91,98,88,98,54,101,233,101,232,101,236,101,237,101,242,102,243,102,9,103,61,103,52,103,49,103,53,103,33,107,100,107,123,107,22,108,93,108,87,108,89,108,95,108,96,108,80,108,85,108,97,108,91,108,77,108,78,108,112,112,95,114,93,114,126,118,249,122,115,124,248,124,54,127,138,127,189,127,1,128,3,128,12,128,18,128,51,128,127,128,137,128,139,128,140,128,227,129,234,129,243,129,252,129,12,130,27,130,31,130,110,130,114,130,126,130,107,134,64,136,76,136,99,136,127,137,33,150,50,78,168,78,77,79,79,79,71,79,87,79,94,79,52,79,91,79,85,79,48,79,80,79,81,79,61,79,58,79,56,79,67,79,84,79,60,79,70,79,99,79,92,79,96,79,47,79,78,79,54,79,89,79,93,79,72,79,90,79,76,81,75,81,77,81,117,81,182,81,183,81,37,82,36,82,41,82,42,82,40,82,171,82,169,82,170,82,172,82,35,83,115,83,117,83,29,84,45,84,30,84,62,84,38,84,78,84,39,84,70,84,67,84,51,84,72,84,66,84,27,84,41,84,74,84,57,84,59,84,56,84,46,84,53,84,54,84,32,84,60,84,64,84,49,84,43,84,31,84,44,84,234,86,240,86,228,86,235,86,74,87,81,87,64,87,77,87,71,87,78,87,62,87,80,87,79,87,59,87,239,88,62,89,157,89,146,89,168,89,158,89,163,89,153,89,150,89,141,89,164,89,147,89,138,89,165,89,93,91,92,91,90,91,91,91,140,91,139,91,143,91,44,92,64,92,65,92,63,92,62,92,144,92,145,92,148,92,140,92,235,93,12,94,143,94,135,94,138,94,247,94,4,95,31,95,100,95,98,95,119,95,121,95,216,95,204,95,215,95,205,95,241,95,235,95,248,95,234,95,18,98,17,98,132,98,151,98,150,98,128,98,118,98,137,98,109,98,138,98,124,98,126,98,121,98,115,98,146,98,111,98,152,98,110,98,149,98,147,98,145,98,134,98,57,101,59,101,56,101,241,101,244,102,95,103,78,103,79,103,80,103,81,103,92,103,86,103,94,103,73,103,70,103,96,103,83,103,87,103,101,107,207,107,66,108,94,108,153,108,129,108,136,108,137,108,133,108,155,108,106,108,122,108,144,108,112,108,140,108,104,108,150,108,146,108,125,108,131,108,114,108,126,108,116,108,134,108,118,108,141,108,148,108,152,108,130,108,118,112,124,112,125,112,120,112,98,114,97,114,96,114,196,114,194,114,150,115,44,117,43,117,55,117,56,117,130,118,239,118,227,119,193,121,192,121,191,121,118,122,251,124,85,127,150,128,147,128,157,128,152,128,155,128,154,128,178,128,111,130,146,130,139,130,141,130,139,137,210,137,0,138,55,140,70,140,85,140,157,140,100,141,112,141,179,141,171,142,202,142,155,143,176,143,194,143,198,143,197,143,196,143,225,93,145,144,162,144,170,144,166,144,163,144,73,145,198,145,204,145,50,150,46,150,49,150,42,150,44,150,38,78,86,78,115,78,139,78,155,78,158,78,171,78,172,78,111,79,157,79,141,79,115,79,127,79,108,79,155,79,139,79,134,79,131,79,112,79,117,79,136,79,105,79,123,79,150,79,126,79,143,79,145,79,122,79,84,81,82,81,85,81,105,81,119,81,118,81,120,81,189,81,253,81,59,82,56,82,55,82,58,82,48,82,46,82,54,82,65,82,190,82,187,82,82,83,84,83,83,83,81,83,102,83,119,83,120,83,121,83,214,83,212,83,215,83,115,84,117,84,150,84,120,84,149,84,128,84,123,84,119,84,132,84,146,84,134,84,124,84,144,84,113,84,118,84,140,84,154,84,98,84,104,84,139,84,125,84,142,84,250,86,131,87,119,87,106,87,105,87,97,87,102,87,100,87,124,87,28,89,73,89,71,89,72,89,68,89,84,89,190,89,187,89,212,89,185,89,174,89,209,89,198,89,208,89,205,89,203,89,211,89,202,89,175,89,179,89,210,89,197,89,95,91,100,91,99,91,151,91,154,91,152,91,156,91,153,91,155,91,26,92,72,92,69,92,70,92,183,92,161,92,184,92,169,92,171,92,177,92,179,92,24,94,26,94,22,94,21,94,27,94,17,94,120,94,154,94,151,94,156,94,149,94,150,94,246,94,38,95,39,95,41,95,128,95,129,95,127,95,124,95,221,95,224,95,253,95,245,95,255,95,15,96,20,96,47,96,53,96,22,96,42,96,21,96,33,96,39,96,41,96,43,96,27,96,22,98,21,98,63,98,62,98,64,98,127,98,201,98,204,98,196,98,191,98,194,98,185,98,210,98,219,98,171,98,211,98,212,98,203,98,200,98,168,98,189,98,188,98,208,98,217,98,199,98,205,98,181,98,218,98,177,98,216,98,214,98,215,98,198,98,172,98,206,98,62,101,167,101,188,101,250,101,20,102,19,102,12,102,6,102,2,102,14,102,0,102,15,102,21,102,10,102,7,102,13,103,11,103,109,103,139,103,149,103,113,103,156,103,115,103,119,103,135,103,157,103,151,103,111,103,112,103,127,103,137,103,126,103,144,103,117,103,154,103,147,103,124,103,106,103,114,103,35,107,102,107,103,107,127,107,19,108,27,108,227,108,232,108,243,108,177,108,204,108,229,108,179,108,189,108,190,108,188,108,226,108,171,108,213,108,211,108,184,108,196,108,185,108,193,108,174,108,215,108,197,108,241,108,191,108,187,108,225,108,219,108,202,108,172,108,239,108,220,108,214,108,224,108,149,112,142,112,146,112,138,112,153,112,44,114,45,114,56,114,72,114,103,114,105,114,192,114,206,114,217,114,215,114,208,114,169,115,168,115,159,115,171,115,165,115,61,117,157,117,153,117,154,117,132,118,194,118,242,118,244,118,229,119,253,119,62,121,64,121,65,121,201,121,200,121,122,122,121,122,250,122,254,124,84,127,140,127,139,127,5,128,186,128,165,128,162,128,177,128,161,128,171,128,169,128,180,128,170,128,175,128,229,129,254,129,13,130,179,130,157,130,153,130,173,130,189,130,159,130,185,130,177,130,172,130,165,130,175,130,184,130,163,130,176,130,190,130,183,130,78,134,113,134,29,82,104,136,203,142,206,143,212,143,209,143,181,144,184,144,177,144,182,144,199,145,209,145,119,149,128,149,28,150,64,150,63,150,59,150,68,150,66,150,185,150,232,150,82,151,94,151,159,78,173,78,174,78,225,79,181,79,175,79,191,79,224,79,209,79,207,79,221,79,195,79,182,79,216,79,223,79,202,79,215,79,174,79,208,79,196,79,194,79,218,79,206,79,222,79,183,79,87,81,146,81,145,81,160,81,78,82,67,82,74,82,77,82,76,82,75,82,71,82,199,82,201,82,195,82,193,82,13,83,87,83,123,83,154,83,219,83,172,84,192,84,168,84,206,84,201,84,184,84,166,84,179,84,199,84,194,84,189,84,170,84,193,84,196,84,200,84,175,84,171,84,177,84,187,84,169,84,167,84,191,84,255,86,130,87,139,87,160,87,163,87,162,87,206,87,174,87,147,87,85,89,81,89,79,89,78,89,80,89,220,89,216,89,255,89,227,89,232,89,3,90,229,89,234,89,218,89,230,89,1,90,251,89,105,91,163,91,166,91,164,91,162,91,165,91,1,92,78,92,79,92,77,92,75,92,217,92,210,92,247,93,29,94,37,94,31,94,125,94,160,94,166,94,250,94,8,95,45,95,101,95,136,95,133,95,138,95,139,95,135,95,140,95,137,95,18,96,29,96,32,96,37,96,14,96,40,96,77,96,112,96,104,96,98,96,70,96,67,96,108,96,107,96,106,96,100,96,65,98,220,98,22,99,9,99,252,98,237,98,1,99,238,98,253,98,7,99,241,98,247,98,239,98,236,98,254,98,244,98,17,99,2,99,63,101,69,101,171,101,189,101,226,101,37,102,45,102,32,102,39,102,47,102,31,102,40,102,49,102,36,102,247,102,255,103,211,103,241,103,212,103,208,103,236,103,182,103,175,103,245,103,233,103,239,103,196,103,209,103,180,103,218,103,229,103,184,103,207,103,222,103,243,103,176,103,217,103,226,103,221,103,210,103,106,107,131,107,134,107,181,107,210,107,215,107,31,108,201,108,11,109,50,109,42,109,65,109,37,109,12,109,49,109,30,109,23,109,59,109,61,109,62,109,54,109,27,109,245,108,57,109,39,109,56,109,41,109,46,109,53,109,14,109,43,109,171,112,186,112,179,112,172,112,175,112,173,112,184,112,174,112,164,112,48,114,114,114,111,114,116,114,233,114,224,114,225,114,183,115,202,115,187,115,178,115,205,115,192,115,179,115,26,117,45,117,79,117,76,117,78,117,75,117,171,117,164,117,165,117,162,117,163,117,120,118,134,118,135,118,136,118,200,118,198,118,195,118,197,118,1,119,249,118,248,118,9,119,11,119,254,118,252,118,7,119,220,119,2,120,20,120,12,120,13,120,70,121,73,121,72,121,71,121,185,121,186,121,209,121,210,121,203,121,127,122,129,122,255,122,253,122,125,124,2,125,5,125,0,125,9,125,7,125,4,125,6,125,56,127,142,127,191,127,4,128,16,128,13,128,17,128,54,128,214,128,229,128,218,128,195,128,196,128,204,128,225,128,219,128,206,128,222,128,228,128,221,128,244,129,34,130,231,130,3,131,5,131,227,130,219,130,230,130,4,131,229,130,2,131,9,131,210,130,215,130,241,130,1,131,220,130,212,130,209,130,222,130,211,130,223,130,239,130,6,131,80,134,121,134,123,134,122,134,77,136,107,136,129,137,212,137,8,138,2,138,3,138,158,140,160,140,116,141,115,141,180,141,205,142,204,142,240,143,230,143,226,143,234,143,229,143,237,143,235,143,228,143,232,143,202,144,206,144,193,144,195,144,75,145,74,145,205,145,130,149,80,150,75,150,76,150,77,150,98,151,105,151,203,151,237,151,243,151,1,152,168,152,219,152,223,152,150,153,153,153,88,78,179,78,12,80,13,80,35,80,239,79,38,80,37,80,248,79,41,80,22,80,6,80,60,80,31,80,26,80,18,80,17,80,250,79,0,80,20,80,40,80,241,79,33,80,11,80,25,80,24,80,243,79,238,79,45,80,42,80,254,79,43,80,9,80,124,81,164,81,165,81,162,81,205,81,204,81,198,81,203,81,86,82,92,82,84,82,91,82,93,82,42,83,127,83,159,83,157,83,223,83,232,84,16,85,1,85,55,85,252,84,229,84,242,84,6,85,250,84,20,85,233,84,237,84,225,84,9,85,238,84,234,84,230,84,39,85,7,85,253,84,15,85,3,87,4,87,194,87,212,87,203,87,195,87,9,88,15,89,87,89,88,89,90,89,17,90,24,90,28,90,31,90,27,90,19,90,236,89,32,90,35,90,41,90,37,90,12,90,9,90,107,91,88,92,176,91,179,91,182,91,180,91,174,91,181,91,185,91,184,91,4,92,81,92,85,92,80,92,237,92,253,92,251,92,234,92,232,92,240,92,246,92,1,93,244,92,238,93,45,94,43,94,171,94,173,94,167,94,49,95,146,95,145,95,144,95,89,96,99,96,101,96,80,96,85,96,109,96,105,96,111,96,132,96,159,96,154,96,141,96,148,96,140,96,133,96,150,96,71,98,243,98,8,99,255,98,78,99,62,99,47,99,85,99,66,99,70,99,79,99,73,99,58,99,80,99,61,99,42,99,43,99,40,99,77,99,76,99,72,101,73,101,153,101,193,101,197,101,66,102,73,102,79,102,67,102,82,102,76,102,69,102,65,102,248,102,20,103,21,103,23,103,33,104,56,104,72,104,70,104,83,104,57,104,66,104,84,104,41,104,179,104,23,104,76,104,81,104,61,104,244,103,80,104,64,104,60,104,67,104,42,104,69,104,19,104,24,104,65,104,138,107,137,107,183,107,35,108,39,108,40,108,38,108,36,108,240,108,106,109,149,109,136,109,135,109,102,109,120,109,119,109,89,109,147,109,108,109,137,109,110,109,90,109,116,109,105,109,140,109,138,109,121,109,133,109,101,109,148,109,202,112,216,112,228,112,217,112,200,112,207,112,57,114,121,114,252,114,249,114,253,114,248,114,247,114,134,115,237,115,9,116,238,115,224,115,234,115,222,115,84,117,93,117,92,117,90,117,89,117,190,117,197,117,199,117,178,117,179,117,189,117,188,117,185,117,194,117,184,117,139,118,176,118,202,118,205,118,206,118,41,119,31,119,32,119,40,119,233,119,48,120,39,120,56,120,29,120,52,120,55,120,37,120,45,120,32,120,31,120,50,120,85,121,80,121,96,121,95,121,86,121,94,121,93,121,87,121,90,121,228,121,227,121,231,121,223,121,230,121,233,121,216,121,132,122,136,122,217,122,6,123,17,123,137,124,33,125,23,125,11,125,10,125,32,125,34,125,20,125,16,125,21,125,26,125,28,125,13,125,25,125,27,125,58,127,95,127,148,127,197,127,193,127,6,128,24,128,21,128,25,128,23,128,61,128,63,128,241,128,2,129,240,128,5,129,237,128,244,128,6,129,248,128,243,128,8,129,253,128,10,129,252,128,239,128,237,129,236,129,0,130,16,130,42,130,43,130,40,130,44,130,187,130,43,131,82,131,84,131,74,131,56,131,80,131,73,131,53,131,52,131,79,131,50,131,57,131,54,131,23,131,64,131,49,131,40,131,67,131,84,134,138,134,170,134,147,134,164,134,169,134,140,134,163,134,156,134,112,136,119,136,129,136,130,136,125,136,121,136,24,138,16,138,14,138,12,138,21,138,10,138,23,138,19,138,22,138,15,138,17,138,72,140,122,140,121,140,161,140,162,140,119,141,172,142,210,142,212,142,207,142,177,143,1,144,6,144,247,143,0,144,250,143,244,143,3,144,253,143,5,144,248,143,149,144,225,144,221,144,226,144,82,145,77,145,76,145,216,145,221,145,215,145,220,145,217,145,131,149,98,150,99,150,97,150,91,150,93,150,100,150,88,150,94,150,187,150,226,152,172,153,168,154,216,154,37,155,50,155,60,155,126,78,122,80,125,80,92,80,71,80,67,80,76,80,90,80,73,80,101,80,118,80,78,80,85,80,117,80,116,80,119,80,79,80,15,80,111,80,109,80,92,81,149,81,240,81,106,82,111,82,210,82,217,82,216,82,213,82,16,83,15,83,25,83,63,83,64,83,62,83,195,83,252,102,70,85,106,85,102,85,68,85,94,85,97,85,67,85,74,85,49,85,86,85,79,85,85,85,47,85,100,85,56,85,46,85,92,85,44,85,99,85,51,85,65,85,87,85,8,87,11,87,9,87,223,87,5,88,10,88,6,88,224,87,228,87,250,87,2,88,53,88,247,87,249,87,32,89,98,89,54,90,65,90,73,90,102,90,106,90,64,90,60,90,98,90,90,90,70,90,74,90,112,91,199,91,197,91,196,91,194,91,191,91,198,91,9,92,8,92,7,92,96,92,92,92,93,92,7,93,6,93,14,93,27,93,22,93,34,93,17,93,41,93,20,93,25,93,36,93,39,93,23,93,226,93,56,94,54,94,51,94,55,94,183,94,184,94,182,94,181,94,190,94,53,95,55,95,87,95,108,95,105,95,107,95,151,95,153,95,158,95,152,95,161,95,160,95,156,95,127,96,163,96,137,96,160,96,168,96,203,96,180,96,230,96,189,96,197,96,187,96,181,96,220,96,188,96,216,96,213,96,198,96,223,96,184,96,218,96,199,96,26,98,27,98,72,98,160,99,167,99,114,99,150,99,162,99,165,99,119,99,103,99,152,99,170,99,113,99,169,99,137,99,131,99,155,99,107,99,168,99,132,99,136,99,153,99,161,99,172,99,146,99,143,99,128,99,123,99,105,99,104,99,122,99,93,101,86,101,81,101,89,101,87,101,95,85,79,101,88,101,85,101,84,101,156,101,155,101,172,101,207,101,203,101,204,101,206,101,93,102,90,102,100,102,104,102,102,102,94,102,249,102,215,82,27,103,129,104,175,104,162,104,147,104,181,104,127,104,118,104,177,104,167,104,151,104,176,104,131,104,196,104,173,104,134,104,133,104,148,104,157,104,168,104,159,104,161,104,130,104,50,107,186,107,235,107,236,107,43,108,142,109,188,109,243,109,217,109,178,109,225,109,204,109,228,109,251,109,250,109,5,110,199,109,203,109,175,109,209,109,174,109,222,109,249,109,184,109,247,109,245,109,197,109,210,109,26,110,181,109,218,109,235,109,216,109,234,109,241,109,238,109,232,109,198,109,196,109,170,109,236,109,191,109,230,109,249,112,9,113,10,113,253,112,239,112,61,114,125,114,129,114,28,115,27,115,22,115,19,115,25,115,135,115,5,116,10,116,3,116,6,116,254,115,13,116,224,116,246,116,247,116,28,117,34,117,101,117,102,117,98,117,112,117,143,117,212,117,213,117,181,117,202,117,205,117,142,118,212,118,210,118,219,118,55,119,62,119,60,119,54,119,56,119,58,119,107,120,67,120,78,120,101,121,104,121,109,121,251,121,146,122,149,122,32,123,40,123,27,123,44,123,38,123,25,123,30,123,46,123,146,124,151,124,149,124,70,125,67,125,113,125,46,125,57,125,60,125,64,125,48,125,51,125,68,125,47,125,66,125,50,125,49,125,61,127,158,127,154,127,204,127,206,127,210,127,28,128,74,128,70,128,47,129,22,129,35,129,43,129,41,129,48,129,36,129,2,130,53,130,55,130,54,130,57,130,142,131,158,131,152,131,120,131,162,131,150,131,189,131,171,131,146,131,138,131,147,131,137,131,160,131,119,131,123,131,124,131,134,131,167,131,85,134,106,95,199,134,192,134,182,134,196,134,181,134,198,134,203,134,177,134,175,134,201,134,83,136,158,136,136,136,171,136,146,136,150,136,141,136,139,136,147,137,143,137,42,138,29,138,35,138,37,138,49,138,45,138,31,138,27,138,34,138,73,140,90,140,169,140,172,140,171,140,168,140,170,140,167,140,103,141,102,141,190,141,186,141,219,142,223,142,25,144,13,144,26,144,23,144,35,144,31,144,29,144,16,144,21,144,30,144,32,144,15,144,34,144,22,144,27,144,20,144,232,144,237,144,253,144,87,145,206,145,245,145,230,145,227,145,231,145,237,145,233,145,137,149,106,150,117,150,115,150,120,150,112,150,116,150,118,150,119,150,108,150,192,150,234,150,233,150,224,122,223,122,2,152,3,152,90,155,229,156,117,158,127,158,165,158,187,158,162,80,141,80,133,80,153,80,145,80,128,80,150,80,152,80,154,80,0,103,241,81,114,82,116,82,117,82,105,82,222,82,221,82,219,82,90,83,165,83,123,85,128,85,167,85,124,85,138,85,157,85,152,85,130,85,156,85,170,85,148,85,135,85,139,85,131,85,179,85,174,85,159,85,62,85,178,85,154,85,187,85,172,85,177,85,126,85,137,85,171,85,153,85,13,87,47,88,42,88,52,88,36,88,48,88,49,88,33,88,29,88,32,88,249,88,250,88,96,89,119,90,154,90,127,90,146,90,155,90,167,90,115,91,113,91,210,91,204,91,211,91,208,91,10,92,11,92,49,92,76,93,80,93,52,93,71,93,253,93,69,94,61,94,64,94,67,94,126,94,202,94,193,94,194,94,196,94,60,95,109,95,169,95,170,95,168,95,209,96,225,96,178,96,182,96,224,96,28,97,35,97,250,96,21,97,240,96,251,96,244,96,104,97,241,96,14,97,246,96,9,97,0,97,18,97,31,98,73,98,163,99,140,99,207,99,192,99,233,99,201,99,198,99,205,99,210,99,227,99,208,99,225,99,214,99,237,99,238,99,118,99,244,99,234,99,219,99,82,100,218,99,249,99,94,101,102,101,98,101,99,101,145,101,144,101,175,101,110,102,112,102,116,102,118,102,111,102,145,102,122,102,126,102,119,102,254,102,255,102,31,103,29,103,250,104,213,104,224,104,216,104,215,104,5,105,223,104,245,104,238,104,231,104,249,104,210,104,242,104,227,104,203,104,205,104,13,105,18,105,14,105,201,104,218,104,110,105,251,104,62,107,58,107,61,107,152,107,150,107,188,107,239,107,46,108,47,108,44,108,47,110,56,110,84,110,33,110,50,110,103,110,74,110,32,110,37,110,35,110,27,110,91,110,88,110,36,110,86,110,110,110,45,110,38,110,111,110,52,110,77,110,58,110,44,110,67,110,29,110,62,110,203,110,137,110,25,110,78,110,99,110,68,110,114,110,105,110,95,110,25,113,26,113,38,113,48,113,33,113,54,113,110,113,28,113,76,114,132,114,128,114,54,115,37,115,52,115,41,115,58,116,42,116,51,116,34,116,37,116,53,116,54,116,52,116,47,116,27,116,38,116,40,116,37,117,38,117,107,117,106,117,226,117,219,117,227,117,217,117,216,117,222,117,224,117,123,118,124,118,150,118,147,118,180,118,220,118,79,119,237,119,93,120,108,120,111,120,13,122,8,122,11,122,5,122,0,122,152,122,151,122,150,122,229,122,227,122,73,123,86,123,70,123,80,123,82,123,84,123,77,123,75,123,79,123,81,123,159,124,165,124,94,125,80,125,104,125,85,125,43,125,110,125,114,125,97,125,102,125,98,125,112,125,115,125,132,85,212,127,213,127,11,128,82,128,133,128,85,129,84,129,75,129,81,129,78,129,57,129,70,129,62,129,76,129,83,129,116,129,18,130,28,130,233,131,3,132,248,131,13,132,224,131,197,131,11,132,193,131,239,131,241,131,244,131,87,132,10,132,240,131,12,132,204,131,253,131,242,131,202,131,56,132,14,132,4,132,220,131,7,132,212,131,223,131,91,134,223,134,217,134,237,134,212,134,219,134,228,134,208,134,222,134,87,136,193,136,194,136,177,136,131,137,150,137,59,138,96,138,85,138,94,138,60,138,65,138,84,138,91,138,80,138,70,138,52,138,58,138,54,138,86,138,97,140,130,140,175,140,188,140,179,140,189,140,193,140,187,140,192,140,180,140,183,140,182,140,191,140,184,140,138,141,133,141,129,141,206,141,221,141,203,141,218,141,209,141,204,141,219,141,198,141,251,142,248,142,252,142,156,143,46,144,53,144,49,144,56,144,50,144,54,144,2,145,245,144,9,145,254,144,99,145,101,145,207,145,20,146,21,146,35,146,9,146,30,146,13,146,16,146,7,146,17,146,148,149,143,149,139,149,145,149,147,149,146,149,142,149,138,150,142,150,139,150,125,150,133,150,134,150,141,150,114,150,132,150,193,150,197,150,196,150,198,150,199,150,239,150,242,150,204,151,5,152,6,152,8,152,231,152,234,152,239,152,233,152,242,152,237,152,174,153,173,153,195,158,205,158,209,158,130,78,173,80,181,80,178,80,179,80,197,80,190,80,172,80,183,80,187,80,175,80,199,80,127,82,119,82,125,82,223,82,230,82,228,82,226,82,227,82,47,83,223,85,232,85,211,85,230,85,206,85,220,85,199,85,209,85,227,85,228,85,239,85,218,85,225,85,197,85,198,85,229,85,201,85,18,87,19,87,94,88,81,88,88,88,87,88,90,88,84,88,107,88,76,88,109,88,74,88,98,88,82,88,75,88,103,89,193,90,201,90,204,90,190,90,189,90,188,90,179,90,194,90,178,90,105,93,111,93,76,94,121,94,201,94,200,94,18,95,89,95,172,95,174,95,26,97,15,97,72,97,31,97,243,96,27,97,249,96,1,97,8,97,78,97,76,97,68,97,77,97,62,97,52,97,39,97,13,97,6,97,55,97,33,98,34,98,19,100,62,100,30,100,42,100,45,100,61,100,44,100,15,100,28,100,20,100,13,100,54,100,22,100,23,100,6,100,108,101,159,101,176,101,151,102,137,102,135,102,136,102,150,102,132,102,152,102,141,102,3,103,148,105,109,105,90,105,119,105,96,105,84,105,117,105,48,105,130,105,74,105,104,105,107,105,94,105,83,105,121,105,134,105,93,105,99,105,91,105,71,107,114,107,192,107,191,107,211,107,253,107,162,110,175,110,211,110,182,110,194,110,144,110,157,110,199,110,197,110,165,110,152,110,188,110,186,110,171,110,209,110,150,110,156,110,196,110,212,110,170,110,167,110,180,110,78,113,89,113,105,113,100,113,73,113,103,113,92,113,108,113,102,113,76,113,101,113,94,113,70,113,104,113,86,113,58,114,82,114,55,115,69,115,63,115,62,115,111,116,90,116,85,116,95,116,94,116,65,116,63,116,89,116,91,116,92,116,118,117,120,117,0,118,240,117,1,118,242,117,241,117,250,117,255,117,244,117,243,117,222,118,223,118,91,119,107,119,102,119,94,119,99,119,121,119,106,119,108,119,92,119,101,119,104,119,98,119,238,119,142,120,176,120,151,120,152,120,140,120,137,120,124,120,145,120,147,120,127,120,122,121,127,121,129,121,44,132,189,121,28,122,26,122,32,122,20,122,31,122,30,122,159,122,160,122,119,123,192,123,96,123,110,123,103,123,177,124,179,124,181,124,147,125,121,125,145,125,129,125,143,125,91,125,110,127,105,127,106,127,114,127,169,127,168,127,164,127,86,128,88,128,134,128,132,128,113,129,112,129,120,129,101,129,110,129,115,129,107,129,121,129,122,129,102,129,5,130,71,130,130,132,119,132,61,132,49,132,117,132,102,132,107,132,73,132,108,132,91,132,60,132,53,132,97,132,99,132,105,132,109,132,70,132,94,134,92,134,95,134,249,134,19,135,8,135,7,135,0,135,254,134,251,134,2,135,3,135,6,135,10,135,89,136,223,136,212,136,217,136,220,136,216,136,221,136,225,136,202,136,213,136,210,136,156,137,227,137,107,138,114,138,115,138,102,138,105,138,112,138,135,138,124,138,99,138,160,138,113,138,133,138,109,138,98,138,110,138,108,138,121,138,123,138,62,138,104,138,98,140,138,140,137,140,202,140,199,140,200,140,196,140,178,140,195,140,194,140,197,140,225,141,223,141,232,141,239,141,243,141,250,141,234,141,228,141,230,141,178,142,3,143,9,143,254,142,10,143,159,143,178,143,75,144,74,144,83,144,66,144,84,144,60,144,85,144,80,144,71,144,79,144,78,144,77,144,81,144,62,144,65,144,18,145,23,145,108,145,106,145,105,145,201,145,55,146,87,146,56,146,61,146,64,146,62,146,91,146,75,146,100,146,81,146,52,146,73,146,77,146,69,146,57,146,63,146,90,146,152,149,152,150,148,150,149,150,205,150,203,150,201,150,202,150,247,150,251,150,249,150,246,150,86,151,116,151,118,151,16,152,17,152,19,152,10,152,18,152,12,152,252,152,244,152,253,152,254,152,179,153,177,153,180,153,225,154,233,156,130,158,14,159,19,159,32,159,231,80,238,80,229,80,214,80,237,80,218,80,213,80,207,80,209,80,241,80,206,80,233,80,98,81,243,81,131,82,130,82,49,83,173,83,254,85,0,86,27,86,23,86,253,85,20,86,6,86,9,86,13,86,14,86,247,85,22,86,31,86,8,86,16,86,246,85,24,87,22,87,117,88,126,88,131,88,147,88,138,88,121,88,133,88,125,88,253,88,37,89,34,89,36,89,106,89,105,89,225,90,230,90,233,90,215,90,214,90,216,90,227,90,117,91,222,91,231,91,225,91,229,91,230,91,232,91,226,91,228,91,223,91,13,92,98,92,132,93,135,93,91,94,99,94,85,94,87,94,84,94,211,94,214,94,10,95,70,95,112,95,185,95,71,97,63,97,75,97,119,97,98,97,99,97,95,97,90,97,88,97,117,97,42,98,135,100,88,100,84,100,164,100,120,100,95,100,122,100,81,100,103,100,52,100,109,100,123,100,114,101,161,101,215,101,214,101,162,102,168,102,157,102,156,105,168,105,149,105,193,105,174,105,211,105,203,105,155,105,183,105,187,105,171,105,180,105,208,105,205,105,173,105,204,105,166,105,195,105,163,105,73,107,76,107,51,108,51,111,20,111,254,110,19,111,244,110,41,111,62,111,32,111,44,111,15,111,2,111,34,111,255,110,239,110,6,111,49,111,56,111,50,111,35,111,21,111,43,111,47,111,136,111,42,111,236,110,1,111,242,110,204,110,247,110,148,113,153,113,125,113,138,113,132,113,146,113,62,114,146,114,150,114,68,115,80,115,100,116,99,116,106,116,112,116,109,116,4,117,145,117,39,118,13,118,11,118,9,118,19,118,225,118,227,118,132,119,125,119,127,119,97,119,193,120,159,120,167,120,179,120,169,120,163,120,142,121,143,121,141,121,46,122,49,122,170,122,169,122,237,122,239,122,161,123,149,123,139,123,117,123,151,123,157,123,148,123,143,123,184,123,135,123,132,123,185,124,189,124,190,124,187,125,176,125,156,125,189,125,190,125,160,125,202,125,180,125,178,125,177,125,186,125,162,125,191,125,181,125,184,125,173,125,210,125,199,125,172,125,112,127,224,127,225,127,223,127,94,128,90,128,135,128,80,129,128,129,143,129,136,129,138,129,127,129,130,129,231,129,250,129,7,130,20,130,30,130,75,130,201,132,191,132,198,132,196,132,153,132,158,132,178,132,156,132,203,132,184,132,192,132,211,132,144,132,188,132,209,132,202,132,63,135,28,135,59,135,34,135,37,135,52,135,24,135,85,135,55,135,41,135,243,136,2,137,244,136,249,136,248,136,253,136,232,136,26,137,239,136,166,138,140,138,158,138,163,138,141,138,161,138,147,138,164,138,170,138,165,138,168,138,152,138,145,138,154,138,167,138,106,140,141,140,140,140,211,140,209,140,210,140,107,141,153,141,149,141,252,141,20,143,18,143,21,143,19,143,163,143,96,144,88,144,92,144,99,144,89,144,94,144,98,144,93,144,91,144,25,145,24,145,30,145,117,145,120,145,119,145,116,145,120,146,128,146,133,146,152,146,150,146,123,146,147,146,156,146,168,146,124,146,145,146,161,149,168,149,169,149,163,149,165,149,164,149,153,150,156,150,155,150,204,150,210,150,0,151,124,151,133,151,246,151,23,152,24,152,175,152,177,152,3,153,5,153,12,153,9,153,193,153,175,154,176,154,230,154,65,155,66,155,244,156,246,156,243,156,188,158,59,159,74,159,4,81,0,81,251,80,245,80,249,80,2,81,8,81,9,81,5,81,220,81,135,82,136,82,137,82,141,82,138,82,240,82,178,83,46,86,59,86,57,86,50,86,63,86,52,86,41,86,83,86,78,86,87,86,116,86,54,86,47,86,48,86,128,88,159,88,158,88,179,88,156,88,174,88,169,88,166,88,109,89,9,91,251,90,11,91,245,90,12,91,8,91,238,91,236,91,233,91,235,91,100,92,101,92,157,93,148,93,98,94,95,94,97,94,226,94,218,94,223,94,221,94,227,94,224,94,72,95,113,95,183,95,181,95,118,97,103,97,110,97,93,97,85,97,130,97,124,97,112,97,107,97,126,97,167,97,144,97,171,97,142,97,172,97,154,97,164,97,148,97,174,97,46,98,105,100,111,100,121,100,158,100,178,100,136,100,144,100,176,100,165,100,147,100,149,100,169,100,146,100,174,100,173,100,171,100,154,100,172,100,153,100,162,100,179,100,117,101,119,101,120,101,174,102,171,102,180,102,177,102,35,106,31,106,232,105,1,106,30,106,25,106,253,105,33,106,19,106,10,106,243,105,2,106,5,106,237,105,17,106,80,107,78,107,164,107,197,107,198,107,63,111,124,111,132,111,81,111,102,111,84,111,134,111,109,111,91,111,120,111,110,111,142,111,122,111,112,111,100,111,151,111,88,111,213,110,111,111,96,111,95,111,159,113,172,113,177,113,168,113,86,114,155,114,78,115,87,115,105,116,139,116,131,116,126,116,128,116,127,117,32,118,41,118,31,118,36,118,38,118,33,118,34,118,154,118,186,118,228,118,142,119,135,119,140,119,145,119,139,119,203,120,197,120,186,120,202,120,190,120,213,120,188,120,208,120,63,122,60,122,64,122,61,122,55,122,59,122,175,122,174,122,173,123,177,123,196,123,180,123,198,123,199,123,193,123,160,123,204,123,202,124,224,125,244,125,239,125,251,125,216,125,236,125,221,125,232,125,227,125,218,125,222,125,233,125,158,125,217,125,242,125,249,125,117,127,119,127,175,127,233,127,38,128,155,129,156,129,157,129,160,129,154,129,152,129,23,133,61,133,26,133,238,132,44,133,45,133,19,133,17,133,35,133,33,133,20,133,236,132,37,133,255,132,6,133,130,135,116,135,118,135,96,135,102,135,120,135,104,135,89,135,87,135,76,135,83,135,91,136,93,136,16,137,7,137,18,137,19,137,21,137,10,137,188,138,210,138,199,138,196,138,149,138,203,138,248,138,178,138,201,138,194,138,191,138,176,138,214,138,205,138,182,138,185,138,219,138,76,140,78,140,108,140,224,140,222,140,230,140,228,140,236,140,237,140,226,140,227,140,220,140,234,140,225,140,109,141,159,141,163,141,43,142,16,142,29,142,34,142,15,142,41,142,31,142,33,142,30,142,186,142,29,143,27,143,31,143,41,143,38,143,42,143,28,143,30,143,37,143,105,144,110,144,104,144,109,144,119,144,48,145,45,145,39,145,49,145,135,145,137,145,139,145,131,145,197,146,187,146,183,146,234,146,172,146,228,146,193,146,179,146,188,146,210,146,199,146,240,146,178,146,173,149,177,149,4,151,6,151,7,151,9,151,96,151,141,151,139,151,143,151,33,152,43,152,28,152,179,152,10,153,19,153,18,153,24,153,221,153,208,153,223,153,219,153,209,153,213,153,210,153,217,153,183,154,238,154,239,154,39,155,69,155,68,155,119,155,111,155,6,157,9,157,3,157,169,158,190,158,206,158,168,88,82,159,18,81,24,81,20,81,16,81,21,81,128,81,170,81,221,81,145,82,147,82,243,82,89,86,107,86,121,86,105,86,100,86,120,86,106,86,104,86,101,86,113,86,111,86,108,86,98,86,118,86,193,88,190,88,199,88,197,88,110,89,29,91,52,91,120,91,240,91,14,92,74,95,178,97,145,97,169,97,138,97,205,97,182,97,190,97,202,97,200,97,48,98,197,100,193,100,203,100,187,100,188,100,218,100,196,100,199,100,194,100,205,100,191,100,210,100,212,100,190,100,116,101,198,102,201,102,185,102,196,102,199,102,184,102,61,106,56,106,58,106,89,106,107,106,88,106,57,106,68,106,98,106,97,106,75,106,71,106,53,106,95,106,72,106,89,107,119,107,5,108,194,111,177,111,161,111,195,111,164,111,193,111,167,111,179,111,192,111,185,111,182,111,166,111,160,111,180,111,190,113,201,113,208,113,210,113,200,113,213,113,185,113,206,113,217,113,220,113,195,113,196,113,104,115,156,116,163,116,152,116,159,116,158,116,226,116,12,117,13,117,52,118,56,118,58,118,231,118,229,118,160,119,158,119,159,119,165,119,232,120,218,120,236,120,231,120,166,121,77,122,78,122,70,122,76,122,75,122,186,122,217,123,17,124,201,123,228,123,219,123,225,123,233,123,230,123,213,124,214,124,10,126,17,126,8,126,27,126,35,126,30,126,29,126,9,126,16,126,121,127,178,127,240,127,241,127,238,127,40,128,179,129,169,129,168,129,251,129,8,130,88,130,89,130,74,133,89,133,72,133,104,133,105,133,67,133,73,133,109,133,106,133,94,133,131,135,159,135,158,135,162,135,141,135,97,136,42,137,50,137,37,137,43,137,33,137,170,137,166,137,230,138,250,138,235,138,241,138,0,139,220,138,231,138,238,138,254,138,1,139,2,139,247,138,237,138,243,138,246,138,252,138,107,140,109,140,147,140,244,140,68,142,49,142,52,142,66,142,57,142,53,142,59,143,47,143,56,143,51,143,168,143,166,143,117,144,116,144,120,144,114,144,124,144,122,144,52,145,146,145,32,147,54,147,248,146,51,147,47,147,34,147,252,146,43,147,4,147,26,147,16,147,38,147,33,147,21,147,46,147,25,147,187,149,167,150,168,150,170,150,213,150,14,151,17,151,22,151,13,151,19,151,15,151,91,151,92,151,102,151,152,151,48,152,56,152,59,152,55,152,45,152,57,152,36,152,16,153,40,153,30,153,27,153,33,153,26,153,237,153,226,153,241,153,184,154,188,154,251,154,237,154,40,155,145,155,21,157,35,157,38,157,40,157,18,157,27,157,216,158,212,158,141,159,156,159,42,81,31,81,33,81,50,81,245,82,142,86,128,86,144,86,133,86,135,86,143,86,213,88,211,88,209,88,206,88,48,91,42,91,36,91,122,91,55,92,104,92,188,93,186,93,189,93,184,93,107,94,76,95,189,95,201,97,194,97,199,97,230,97,203,97,50,98,52,98,206,100,202,100,216,100,224,100,240,100,230,100,236,100,241,100,226,100,237,100,130,101,131,101,217,102,214,102,128,106,148,106,132,106,162,106,156,106,219,106,163,106,126,106,151,106,144,106,160,106,92,107,174,107,218,107,8,108,216,111,241,111,223,111,224,111,219,111,228,111,235,111,239,111,128,111,236,111,225,111,233,111,213,111,238,111,240,111,231,113,223,113,238,113,230,113,229,113,237,113,236,113,244,113,224,113,53,114,70,114,112,115,114,115,169,116,176,116,166,116,168,116,70,118,66,118,76,118,234,118,179,119,170,119,176,119,172,119,167,119,173,119,239,119,247,120,250,120,244,120,239,120,1,121,167,121,170,121,87,122,191,122,7,124,13,124,254,123,247,123,12,124,224,123,224,124,220,124,222,124,226,124,223,124,217,124,221,124,46,126,62,126,70,126,55,126,50,126,67,126,43,126,61,126,49,126,69,126,65,126,52,126,57,126,72,126,53,126,63,126,47,126,68,127,243,127,252,127,113,128,114,128,112,128,111,128,115,128,198,129,195,129,186,129,194,129,192,129,191,129,189,129,201,129,190,129,232,129,9,130,113,130,170,133,132,133,126,133,156,133,145,133,148,133,175,133,155,133,135,133,168,133,138,133,103,134,192,135,209,135,179,135,210,135,198,135,171,135,187,135,186,135,200,135,203,135,59,137,54,137,68,137,56,137,61,137,172,137,14,139,23,139,25,139,27,139,10,139,32,139,29,139,4,139,16,139,65,140,63,140,115,140,250,140,253,140,252,140,248,140,251,140,168,141,73,142,75,142,72,142,74,142,68,143,62,143,66,143,69,143,63,143,127,144,125,144,132,144,129,144,130,144,128,144,57,145,163,145,158,145,156,145,77,147,130,147,40,147,117,147,74,147,101,147,75,147,24,147,126,147,108,147,91,147,112,147,90,147,84,147,202,149,203,149,204,149,200,149,198,149,177,150,184,150,214,150,28,151,30,151,160,151,211,151,70,152,182,152,53,153,1,154,255,153,174,155,171,155,170,155,173,155,59,157,63,157,139,158,207,158,222,158,220,158,221,158,219,158,62,159,75,159,226,83,149,86,174,86,217,88,216,88,56,91,93,95,227,97,51,98,244,100,242,100,254,100,6,101,250,100,251,100,247,100,183,101,220,102,38,103,179,106,172,106,195,106,187,106,184,106,194,106,174,106,175,106,95,107,120,107,175,107,9,112,11,112,254,111,6,112,250,111,17,112,15,112,251,113,252,113,254,113,248,113,119,115,117,115,167,116,191,116,21,117,86,118,88,118,82,118,189,119,191,119,187,119,188,119,14,121,174,121,97,122,98,122,96,122,196,122,197,122,43,124,39,124,42,124,30,124,35,124,33,124,231,124,84,126,85,126,94,126,90,126,97,126,82,126,89,126,72,127,249,127,251,127,119,128,118,128,205,129,207,129,10,130,207,133,169,133,205,133,208,133,201,133,176,133,186,133,185,133,166,133,239,135,236,135,242,135,224,135,134,137,178,137,244,137,40,139,57,139,44,139,43,139,80,140,5,141,89,142,99,142,102,142,100,142,95,142,85,142,192,142,73,143,77,143,135,144,131,144,136,144,171,145,172,145,208,145,148,147,138,147,150,147,162,147,179,147,174,147,172,147,176,147,152,147,154,147,151,147,212,149,214,149,208,149,213,149,226,150,220,150,217,150,219,150,222,150,36,151,163,151,166,151,173,151,249,151,77,152,79,152,76,152,78,152,83,152,186,152,62,153,63,153,61,153,46,153,165,153,14,154,193,154,3,155,6,155,79,155,78,155,77,155,202,155,201,155,253,155,200,155,192,155,81,157,93,157,96,157,224,158,21,159,44,159,51,81,165,86,222,88,223,88,226,88,245,91,144,159,236,94,242,97,247,97,246,97,245,97,0,101,15,101,224,102,221,102,229,106,221,106,218,106,211,106,27,112,31,112,40,112,26,112,29,112,21,112,24,112,6,114,13,114,88,114,162,114,120,115,122,115,189,116,202,116,227,116,135,117,134,117,95,118,97,118,199,119,25,121,177,121,107,122,105,122,62,124,63,124,56,124,61,124,55,124,64,124,107,126,109,126,121,126,105,126,106,126,133,127,115,126,182,127,185,127,184,127,216,129,233,133,221,133,234,133,213,133,228,133,229,133,247,133,251,135,5,136,13,136,249,135,254,135,96,137,95,137,86,137,94,137,65,139,92,139,88,139,73,139,90,139,78,139,79,139,70,139,89,139,8,141,10,141,124,142,114,142,135,142,118,142,108,142,122,142,116,142,84,143,78,143,173,143,138,144,139,144,177,145,174,145,225,147,209,147,223,147,195,147,200,147,220,147,221,147,214,147,226,147,205,147,216,147,228,147,215,147,232,147,220,149,180,150,227,150,42,151,39,151,97,151,220,151,251,151,94,152,88,152,91,152,188,152,69,153,73,153,22,154,25,154,13,155,232,155,231,155,214,155,219,155,137,157,97,157,114,157,106,157,108,157,146,158,151,158,147,158,180,158,248,82,168,86,183,86,182,86,180,86,188,86,228,88,64,91,67,91,125,91,246,91,201,93,248,97,250,97,24,101,20,101,25,101,230,102,39,103,236,106,62,112,48,112,50,112,16,114,123,115,207,116,98,118,101,118,38,121,42,121,44,121,43,121,199,122,246,122,76,124,67,124,77,124,239,124,240,124,174,143,125,126,124,126,130,126,76,127,0,128,218,129,102,130,251,133,249,133,17,134,250,133,6,134,11,134,7,134,10,134,20,136,21,136,100,137,186,137,248,137,112,139,108,139,102,139,111,139,95,139,107,139,15,141,13,141,137,142,129,142,133,142,130,142,180,145,203,145,24,148,3,148,253,147,225,149,48,151,196,152,82,153,81,153,168,153,43,154,48,154,55,154,53,154,19,156,13,156,121,158,181,158,232,158,47,159,95,159,99,159,97,159,55,81,56,81,193,86,192,86,194,86,20,89,108,92,205,93,252,97,254,97,29,101,28,101,149,101,233,102,251,106,4,107,250,106,178,107,76,112,27,114,167,114,214,116,212,116,105,118,211,119,80,124,143,126,140,126,188,127,23,134,45,134,26,134,35,136,34,136,33,136,31,136,106,137,108,137,189,137,116,139,119,139,125,139,19,141,138,142,141,142,139,142,95,143,175,143,186,145,46,148,51,148,53,148,58,148,56,148,50,148,43,148,226,149,56,151,57,151,50,151,255,151,103,152,101,152,87,153,69,154,67,154,64,154,62,154,207,154,84,155,81,155,45,156,37,156,175,157,180,157,194,157,184,157,157,158,239,158,25,159,92,159,102,159,103,159,60,81,59,81,200,86,202,86,201,86,127,91,212,93,210,93,78,95,255,97,36,101,10,107,97,107,81,112,88,112,128,115,228,116,138,117,110,118,108,118,179,121,96,124,95,124,126,128,125,128,223,129,114,137,111,137,252,137,128,139,22,141,23,141,145,142,147,142,97,143,72,145,68,148,81,148,82,148,61,151,62,151,195,151,193,151,107,152,85,153,85,154,77,154,210,154,26,155,73,156,49,156,62,156,59,156,211,157,215,157,52,159,108,159,106,159,148,159,204,86,214,93,0,98,35,101,43,101,42,101,236,102,16,107,218,116,202,122,100,124,99,124,101,124,147,126,150,126,148,126,226,129,56,134,63,134,49,136,138,139,144,144,143,144,99,148,96,148,100,148,104,151,111,152,92,153,90,154,91,154,87,154,211,154,212,154,209,154,84,156,87,156,86,156,229,157,159,158,244,158,209,86,233,88,44,101,94,112,113,118,114,118,215,119,80,127,136,127,54,136,57,136,98,136,147,139,146,139,150,139,119,130,27,141,192,145,106,148,66,151,72,151,68,151,198,151,112,152,95,154,34,155,88,155,95,156,249,157,250,157,124,158,125,158,7,159,119,159,114,159,243,94,22,107,99,112,108,124,110,124,59,136,192,137,161,142,193,145,114,148,112,148,113,152,94,153,214,154,35,155,204,158,100,112,218,119,154,139,119,148,201,151,98,154,101,154,156,126,156,139,170,142,197,145,125,148,126,148,124,148,119,156,120,156,247,158,84,140,127,148,26,158,40,114,106,154,49,155,27,158,30,158,114,124,66,78,92,78,245,81,26,83,130,83,7,78,12,78,71,78,141,78,215,86,110,92,115,95,15,78,135,81,14,78,46,78,147,78,194,78,201,78,200,78,152,81,252,82,108,83,185,83,32,87,3,89,44,89,16,92,255,93,225,101,179,107,204,107,20,108,63,114,49,78,60,78,232,78,220,78,233,78,225,78,221,78,218,78,12,82,28,83,76,83,34,87,35,87,23,89,47,89,129,91,132,91,18,92,59,92,116,92,115,92,4,94,128,94,130,94,201,95,9,98,80,98,21,108,54,108,67,108,63,108,59,108,174,114,176,114,138,115,184,121,138,128,30,150,14,79,24,79,44,79,245,78,20,79,241,78,0,79,247,78,8,79,29,79,2,79,5,79,34,79,19,79,4,79,244,78,18,79,177,81,19,82,9,82,16,82,166,82,34,83,31,83,77,83,138,83,7,84,225,86,223,86,46,87,42,87,52,87,60,89,128,89,124,89,133,89,123,89,126,89,119,89,127,89,86,91,21,92,37,92,124,92,122,92,123,92,126,92,223,93,117,94,132,94,2,95,26,95,116,95,213,95,212,95,207,95,92,98,94,98,100,98,97,98,102,98,98,98,89,98,96,98,90,98,101,98,239,101,238,101,62,103,57,103,56,103,59,103,58,103,63,103,60,103,51,103,24,108,70,108,82,108,92,108,79,108,74,108,84,108,75,108,76,108,113,112,94,114,180,114,181,114,142,115,42,117,127,118,117,122,81,127,120,130,124,130,128,130,125,130,127,130,77,134,126,137,153,144,151,144,152,144,155,144,148,144,34,150,36,150,32,150,35,150,86,79,59,79,98,79,73,79,83,79,100,79,62,79,103,79,82,79,95,79,65,79,88,79,45,79,51,79,63,79,97,79,143,81,185,81,28,82,30,82,33,82,173,82,174,82,9,83,99,83,114,83,142,83,143,83,48,84,55,84,42,84,84,84,69,84,25,84,28,84,37,84,24,84,61,84,79,84,65,84,40,84,36,84,71,84,238,86,231,86,229,86,65,87,69,87,76,87,73,87,75,87,82,87,6,89,64,89,166,89,152,89,160,89,151,89,142,89,162,89,144,89,143,89,167,89,161,89,142,91,146,91,40,92,42,92,141,92,143,92,136,92,139,92,137,92,146,92,138,92,134,92,147,92,149,92,224,93,10,94,14,94,139,94,137,94,140,94,136,94,141,94,5,95,29,95,120,95,118,95,210,95,209,95,208,95,237,95,232,95,238,95,243,95,225,95,228,95,227,95,250,95,239,95,247,95,251,95,0,96,244,95,58,98,131,98,140,98,142,98,143,98,148,98,135,98,113,98,123,98,122,98,112,98,129,98,136,98,119,98,125,98,114,98,116,98,55,101,240,101,244,101,243,101,242,101,245,101,69,103,71,103,89,103,85,103,76,103,72,103,93,103,77,103,90,103,75,103,208,107,25,108,26,108,120,108,103,108,107,108,132,108,139,108,143,108,113,108,111,108,105,108,154,108,109,108,135,108,149,108,156,108,102,108,115,108,101,108,123,108,142,108,116,112,122,112,99,114,191,114,189,114,195,114,198,114,193,114,186,114,197,114,149,115,151,115,147,115,148,115,146,115,58,117,57,117,148,117,149,117,129,118,61,121,52,128,149,128,153,128,144,128,146,128,156,128,144,130,143,130,133,130,142,130,145,130,147,130,138,130,131,130,132,130,120,140,201,143,191,143,159,144,161,144,165,144,158,144,167,144,160,144,48,150,40,150,47,150,45,150,51,78,152,79,124,79,133,79,125,79,128,79,135,79,118,79,116,79,137,79,132,79,119,79,76,79,151,79,106,79,154,79,121,79,129,79,120,79,144,79,156,79,148,79,158,79,146,79,130,79,149,79,107,79,110,79,158,81,188,81,190,81,53,82,50,82,51,82,70,82,49,82,188,82,10,83,11,83,60,83,146,83,148,83,135,84,127,84,129,84,145,84,130,84,136,84,107,84,122,84,126,84,101,84,108,84,116,84,102,84,141,84,111,84,97,84,96,84,152,84,99,84,103,84,100,84,247,86,249,86,111,87,114,87,109,87,107,87,113,87,112,87,118,87,128,87,117,87,123,87,115,87,116,87,98,87,104,87,125,87,12,89,69,89,181,89,186,89,207,89,206,89,178,89,204,89,193,89,182,89,188,89,195,89,214,89,177,89,189,89,192,89,200,89,180,89,199,89,98,91,101,91,147,91,149,91,68,92,71,92,174,92,164,92,160,92,181,92,175,92,168,92,172,92,159,92,163,92,173,92,162,92,170,92,167,92,157,92,165,92,182,92,176,92,166,92,23,94,20,94,25,94,40,95,34,95,35,95,36,95,84,95,130,95,126,95,125,95,222,95,229,95,45,96,38,96,25,96,50,96,11,96,52,96,10,96,23,96,51,96,26,96,30,96,44,96,34,96,13,96,16,96,46,96,19,96,17,96,12,96,9,96,28,96,20,98,61,98,173,98,180,98,209,98,190,98,170,98,182,98,202,98,174,98,179,98,175,98,187,98,169,98,176,98,184,98,61,101,168,101,187,101,9,102,252,101,4,102,18,102,8,102,251,101,3,102,11,102,13,102,5,102,253,101,17,102,16,102,246,102,10,103,133,103,108,103,142,103,146,103,118,103,123,103,152,103,134,103,132,103,116,103,141,103,140,103,122,103,159,103,145,103,153,103,131,103,125,103,129,103,120,103,121,103,148,103,37,107,128,107,126,107,222,107,29,108,147,108,236,108,235,108,238,108,217,108,182,108,212,108,173,108,231,108,183,108,208,108,194,108,186,108,195,108,198,108,237,108,242,108,210,108,221,108,180,108,138,108,157,108,128,108,222,108,192,108,48,109,205,108,199,108,176,108,249,108,207,108,233,108,209,108,148,112,152,112,133,112,147,112,134,112,132,112,145,112,150,112,130,112,154,112,131,112,106,114,214,114,203,114,216,114,201,114,220,114,210,114,212,114,218,114,204,114,209,114,164,115,161,115,173,115,166,115,162,115,160,115,172,115,157,115,221,116,232,116,63,117,64,117,62,117,140,117,152,117,175,118,243,118,241,118,240,118,245,118,248,119,252,119,249,119,251,119,250,119,247,119,66,121,63,121,197,121,120,122,123,122,251,122,117,124,253,124,53,128,143,128,174,128,163,128,184,128,181,128,173,128,32,130,160,130,192,130,171,130,154,130,152,130,155,130,181,130,167,130,174,130,188,130,158,130,186,130,180,130,168,130,161,130,169,130,194,130,164,130,195,130,182,130,162,130,112,134,111,134,109,134,110,134,86,140,210,143,203,143,211,143,205,143,214,143,213,143,215,143,178,144,180,144,175,144,179,144,176,144,57,150,61,150,60,150,58,150,67,150,205,79,197,79,211,79,178,79,201,79,203,79,193,79,212,79,220,79,217,79,187,79,179,79,219,79,199,79,214,79,186,79,192,79,185,79,236,79,68,82,73,82,192,82,194,82,61,83,124,83,151,83,150,83,153,83,152,83,186,84,161,84,173,84,165,84,207,84,195,84,13,131,183,84,174,84,214,84,182,84,197,84,198,84,160,84,112,84,188,84,162,84,190,84,114,84,222,84,176,84,181,87,158,87,159,87,164,87,140,87,151,87,157,87,155,87,148,87,152,87,143,87,153,87,165,87,154,87,149,87,244,88,13,89,83,89,225,89,222,89,238,89,0,90,241,89,221,89,250,89,253,89,252,89,246,89,228,89,242,89,247,89,219,89,233,89,243,89,245,89,224,89,254,89,244,89,237,89,168,91,76,92,208,92,216,92,204,92,215,92,203,92,219,92,222,92,218,92,201,92,199,92,202,92,214,92,211,92,212,92,207,92,200,92,198,92,206,92,223,92,248,92,249,93,33,94,34,94,35,94,32,94,36,94,176,94,164,94,162,94,155,94,163,94,165,94,7,95,46,95,86,95,134,95,55,96,57,96,84,96,114,96,94,96,69,96,83,96,71,96,73,96,91,96,76,96,64,96,66,96,95,96,36,96,68,96,88,96,102,96,110,96,66,98,67,98,207,98,13,99,11,99,245,98,14,99,3,99,235,98,249,98,15,99,12,99,248,98,246,98,0,99,19,99,20,99,250,98,21,99,251,98,240,98,65,101,67,101,170,101,191,101,54,102,33,102,50,102,53,102,28,102,38,102,34,102,51,102,43,102,58,102,29,102,52,102,57,102,46,102,15,103,16,103,193,103,242,103,200,103,186,103,220,103,187,103,248,103,216,103,192,103,183,103,197,103,235,103,228,103,223,103,181,103,205,103,179,103,247,103,246,103,238,103,227,103,194,103,185,103,206,103,231,103,240,103,178,103,252,103,198,103,237,103,204,103,174,103,230,103,219,103,250,103,201,103,202,103,195,103,234,103,203,103,40,107,130,107,132,107,182,107,214,107,216,107,224,107,32,108,33,108,40,109,52,109,45,109,31,109,60,109,63,109,18,109,10,109,218,108,51,109,4,109,25,109,58,109,26,109,17,109,0,109,29,109,66,109,1,109,24,109,55,109,3,109,15,109,64,109,7,109,32,109,44,109,8,109,34,109,9,109,16,109,183,112,159,112,190,112,177,112,176,112,161,112,180,112,181,112,169,112,65,114,73,114,74,114,108,114,112,114,115,114,110,114,202,114,228,114,232,114,235,114,223,114,234,114,230,114,227,114,133,115,204,115,194,115,200,115,197,115,185,115,182,115,181,115,180,115,235,115,191,115,199,115,190,115,195,115,198,115,184,115,203,115,236,116,238,116,46,117,71,117,72,117,167,117,170,117,121,118,196,118,8,119,3,119,4,119,5,119,10,119,247,118,251,118,250,118,231,119,232,119,6,120,17,120,18,120,5,120,16,120,15,120,14,120,9,120,3,120,19,120,74,121,76,121,75,121,69,121,68,121,213,121,205,121,207,121,214,121,206,121,128,122,126,122,209,122,0,123,1,123,122,124,120,124,121,124,127,124,128,124,129,124,3,125,8,125,1,125,88,127,145,127,141,127,190,127,7,128,14,128,15,128,20,128,55,128,216,128,199,128,224,128,209,128,200,128,194,128,208,128,197,128,227,128,217,128,220,128,202,128,213,128,201,128,207,128,215,128,230,128,205,128,255,129,33,130,148,130,217,130,254,130,249,130,7,131,232,130,0,131,213,130,58,131,235,130,214,130,244,130,236,130,225,130,242,130,245,130,12,131,251,130,246,130,240,130,234,130,228,130,224,130,250,130,243,130,237,130,119,134,116,134,124,134,115,134,65,136,78,136,103,136,106,136,105,136,211,137,4,138,7,138,114,141,227,143,225,143,238,143,224,143,241,144,189,144,191,144,213,144,197,144,190,144,199,144,203,144,200,144,212,145,211,145,84,150,79,150,81,150,83,150,74,150,78,150,30,80,5,80,7,80,19,80,34,80,48,80,27,80,245,79,244,79,51,80,55,80,44,80,246,79,247,79,23,80,28,80,32,80,39,80,53,80,47,80,49,80,14,80,90,81,148,81,147,81,202,81,196,81,197,81,200,81,206,81,97,82,90,82,82,82,94,82,95,82,85,82,98,82,205,82,14,83,158,83,38,85,226,84,23,85,18,85,231,84,243,84,228,84,26,85,255,84,4,85,8,85,235,84,17,85,5,85,241,84,10,85,251,84,247,84,248,84,224,84,14,85,3,85,11,85,1,87,2,87,204,87,50,88,213,87,210,87,186,87,198,87,189,87,188,87,184,87,182,87,191,87,199,87,208,87,185,87,193,87,14,89,74,89,25,90,22,90,45,90,46,90,21,90,15,90,23,90,10,90,30,90,51,90,108,91,167,91,173,91,172,91,3,92,86,92,84,92,236,92,255,92,238,92,241,92,247,92,0,93,249,92,41,94,40,94,168,94,174,94,170,94,172,94,51,95,48,95,103,95,93,96,90,96,103,96,65,96,162,96,136,96,128,96,146,96,129,96,157,96,131,96,149,96,155,96,151,96,135,96,156,96,142,96,25,98,70,98,242,98,16,99,86,99,44,99,68,99,69,99,54,99,67,99,228,99,57,99,75,99,74,99,60,99,41,99,65,99,52,99,88,99,84,99,89,99,45,99,71,99,51,99,90,99,81,99,56,99,87,99,64,99,72,99,74,101,70,101,198,101,195,101,196,101,194,101,74,102,95,102,71,102,81,102,18,103,19,103,31,104,26,104,73,104,50,104,51,104,59,104,75,104,79,104,22,104,49,104,28,104,53,104,43,104,45,104,47,104,78,104,68,104,52,104,29,104,18,104,20,104,38,104,40,104,46,104,77,104,58,104,37,104,32,104,44,107,47,107,45,107,49,107,52,107,109,107,130,128,136,107,230,107,228,107,232,107,227,107,226,107,231,107,37,108,122,109,99,109,100,109,118,109,13,109,97,109,146,109,88,109,98,109,109,109,111,109,145,109,141,109,239,109,127,109,134,109,94,109,103,109,96,109,151,109,112,109,124,109,95,109,130,109,152,109,47,109,104,109,139,109,126,109,128,109,132,109,22,109,131,109,123,109,125,109,117,109,144,109,220,112,211,112,209,112,221,112,203,112,57,127,226,112,215,112,210,112,222,112,224,112,212,112,205,112,197,112,198,112,199,112,218,112,206,112,225,112,66,114,120,114,119,114,118,114,0,115,250,114,244,114,254,114,246,114,243,114,251,114,1,115,211,115,217,115,229,115,214,115,188,115,231,115,227,115,233,115,220,115,210,115,219,115,212,115,221,115,218,115,215,115,216,115,232,115,222,116,223,116,244,116,245,116,33,117,91,117,95,117,176,117,193,117,187,117,196,117,192,117,191,117,182,117,186,117,138,118,201,118,29,119,27,119,16,119,19,119,18,119,35,119,17,119,21,119,25,119,26,119,34,119,39,119,35,120,44,120,34,120,53,120,47,120,40,120,46,120,43,120,33,120,41,120,51,120,42,120,49,120,84,121,91,121,79,121,92,121,83,121,82,121,81,121,235,121,236,121,224,121,238,121,237,121,234,121,220,121,222,121,221,121,134,122,137,122,133,122,139,122,140,122,138,122,135,122,216,122,16,123,4,123,19,123,5,123,15,123,8,123,10,123,14,123,9,123,18,123,132,124,145,124,138,124,140,124,136,124,141,124,133,124,30,125,29,125,17,125,14,125,24,125,22,125,19,125,31,125,18,125,15,125,12,125,92,127,97,127,94,127,96,127,93,127,91,127,150,127,146,127,195,127,194,127,192,127,22,128,62,128,57,128,250,128,242,128,249,128,245,128,1,129,251,128,0,129,1,130,47,130,37,130,51,131,45,131,68,131,25,131,81,131,37,131,86,131,63,131,65,131,38,131,28,131,34,131,66,131,78,131,27,131,42,131,8,131,60,131,77,131,22,131,36,131,32,131,55,131,47,131,41,131,71,131,69,131,76,131,83,131,30,131,44,131,75,131,39,131,72,131,83,134,82,134,162,134,168,134,150,134,141,134,145,134,158,134,135,134,151,134,134,134,139,134,154,134,133,134,165,134,153,134,161,134,167,134,149,134,152,134,142,134,157,134,144,134,148,134,67,136,68,136,109,136,117,136,118,136,114,136,128,136,113,136,127,136,111,136,131,136,126,136,116,136,124,136,18,138,71,140,87,140,123,140,164,140,163,140,118,141,120,141,181,141,183,141,182,141,209,142,211,142,254,143,245,143,2,144,255,143,251,143,4,144,252,143,246,143,214,144,224,144,217,144,218,144,227,144,223,144,229,144,216,144,219,144,215,144,220,144,228,144,80,145,78,145,79,145,213,145,226,145,218,145,92,150,95,150,188,150,227,152,223,154,47,155,127,78,112,80,106,80,97,80,94,80,96,80,83,80,75,80,93,80,114,80,72,80,77,80,65,80,91,80,74,80,98,80,21,80,69,80,95,80,105,80,107,80,99,80,100,80,70,80,64,80,110,80,115,80,87,80,81,80,208,81,107,82,109,82,108,82,110,82,214,82,211,82,45,83,156,83,117,85,118,85,60,85,77,85,80,85,52,85,42,85,81,85,98,85,54,85,53,85,48,85,82,85,69,85,12,85,50,85,101,85,78,85,57,85,72,85,45,85,59,85,64,85,75,85,10,87,7,87,251,87,20,88,226,87,246,87,220,87,244,87,0,88,237,87,253,87,8,88,248,87,11,88,243,87,207,87,7,88,238,87,227,87,242,87,229,87,236,87,225,87,14,88,252,87,16,88,231,87,1,88,12,88,241,87,233,87,240,87,13,88,4,88,92,89,96,90,88,90,85,90,103,90,94,90,56,90,53,90,109,90,80,90,95,90,101,90,108,90,83,90,100,90,87,90,67,90,93,90,82,90,68,90,91,90,72,90,142,90,62,90,77,90,57,90,76,90,112,90,105,90,71,90,81,90,86,90,66,90,92,90,114,91,110,91,193,91,192,91,89,92,30,93,11,93,29,93,26,93,32,93,12,93,40,93,13,93,38,93,37,93,15,93,48,93,18,93,35,93,31,93,46,93,62,94,52,94,177,94,180,94,185,94,178,94,179,94,54,95,56,95,155,95,150,95,159,95,138,96,144,96,134,96,190,96,176,96,186,96,211,96,212,96,207,96,228,96,217,96,221,96,200,96,177,96,219,96,183,96,202,96,191,96,195,96,205,96,192,96,50,99,101,99,138,99,130,99,125,99,189,99,158,99,173,99,157,99,151,99,171,99,142,99,111,99,135,99,144,99,110,99,175,99,117,99,156,99,109,99,174,99,124,99,164,99,59,99,159,99,120,99,133,99,129,99,145,99,141,99,112,99,83,101,205,101,101,102,97,102,91,102,89,102,92,102,98,102,24,103,121,104,135,104,144,104,156,104,109,104,110,104,174,104,171,104,86,105,111,104,163,104,172,104,169,104,117,104,116,104,178,104,143,104,119,104,146,104,124,104,107,104,114,104,170,104,128,104,113,104,126,104,155,104,150,104,139,104,160,104,137,104,164,104,120,104,123,104,145,104,140,104,138,104,125,104,54,107,51,107,55,107,56,107,145,107,143,107,141,107,142,107,140,107,42,108,192,109,171,109,180,109,179,109,116,110,172,109,233,109,226,109,183,109,246,109,212,109,0,110,200,109,224,109,223,109,214,109,190,109,229,109,220,109,221,109,219,109,244,109,202,109,189,109,237,109,240,109,186,109,213,109,194,109,207,109,201,109,208,109,242,109,211,109,253,109,215,109,205,109,227,109,187,109,250,112,13,113,247,112,23,113,244,112,12,113,240,112,4,113,243,112,16,113,252,112,255,112,6,113,19,113,0,113,248,112,246,112,11,113,2,113,14,113,126,114,123,114,124,114,127,114,29,115,23,115,7,115,17,115,24,115,10,115,8,115,255,114,15,115,30,115,136,115,246,115,248,115,245,115,4,116,1,116,253,115,7,116,0,116,250,115,252,115,255,115,12,116,11,116,244,115,8,116,100,117,99,117,206,117,210,117,207,117,203,117,204,117,209,117,208,117,143,118,137,118,211,118,57,119,47,119,45,119,49,119,50,119,52,119,51,119,61,119,37,119,59,119,53,119,72,120,82,120,73,120,77,120,74,120,76,120,38,120,69,120,80,120,100,121,103,121,105,121,106,121,99,121,107,121,97,121,187,121,250,121,248,121,246,121,247,121,143,122,148,122,144,122,53,123,71,123,52,123,37,123,48,123,34,123,36,123,51,123,24,123,42,123,29,123,49,123,43,123,45,123,47,123,50,123,56,123,26,123,35,123,148,124,152,124,150,124,163,124,53,125,61,125,56,125,54,125,58,125,69,125,44,125,41,125,65,125,71,125,62,125,63,125,74,125,59,125,40,125,99,127,149,127,156,127,157,127,155,127,202,127,203,127,205,127,208,127,209,127,199,127,207,127,201,127,31,128,30,128,27,128,71,128,67,128,72,128,24,129,37,129,25,129,27,129,45,129,31,129,44,129,30,129,33,129,21,129,39,129,29,129,34,129,17,130,56,130,51,130,58,130,52,130,50,130,116,130,144,131,163,131,168,131,141,131,122,131,115,131,164,131,116,131,143,131,129,131,149,131,153,131,117,131,148,131,169,131,125,131,131,131,140,131,157,131,155,131,170,131,139,131,126,131,165,131,175,131,136,131,151,131,176,131,127,131,166,131,135,131,174,131,118,131,154,131,89,134,86,134,191,134,183,134,194,134,193,134,197,134,186,134,176,134,200,134,185,134,179,134,184,134,204,134,180,134,187,134,188,134,195,134,189,134,190,134,82,136,137,136,149,136,168,136,162,136,170,136,154,136,145,136,161,136,159,136,152,136,167,136,153,136,155,136,151,136,164,136,172,136,140,136,147,136,142,136,130,137,214,137,217,137,213,137,48,138,39,138,44,138,30,138,57,140,59,140,92,140,93,140,125,140,165,140,125,141,123,141,121,141,188,141,194,141,185,141,191,141,193,141,216,142,222,142,221,142,220,142,215,142,224,142,225,142,36,144,11,144,17,144,28,144,12,144,33,144,239,144,234,144,240,144,244,144,242,144,243,144,212,144,235,144,236,144,233,144,86,145,88,145,90,145,83,145,85,145,236,145,244,145,241,145,243,145,248,145,228,145,249,145,234,145,235,145,247,145,232,145,238,145,122,149,134,149,136,149,124,150,109,150,107,150,113,150,111,150,191,150,106,151,4,152,229,152,151,153,155,80,149,80,148,80,158,80,139,80,163,80,131,80,140,80,142,80,157,80,104,80,156,80,146,80,130,80,135,80,95,81,212,81,18,83,17,83,164,83,167,83,145,85,168,85,165,85,173,85,119,85,69,86,162,85,147,85,136,85,143,85,181,85,129,85,163,85,146,85,164,85,125,85,140,85,166,85,127,85,149,85,161,85,142,85,12,87,41,88,55,88,25,88,30,88,39,88,35,88,40,88,245,87,72,88,37,88,28,88,27,88,51,88,63,88,54,88,46,88,57,88,56,88,45,88,44,88,59,88,97,89,175,90,148,90,159,90,122,90,162,90,158,90,120,90,166,90,124,90,165,90,172,90,149,90,174,90,55,90,132,90,138,90,151,90,131,90,139,90,169,90,123,90,125,90,140,90,156,90,143,90,147,90,157,90,234,91,205,91,203,91,212,91,209,91,202,91,206,91,12,92,48,92,55,93,67,93,107,93,65,93,75,93,63,93,53,93,81,93,78,93,85,93,51,93,58,93,82,93,61,93,49,93,89,93,66,93,57,93,73,93,56,93,60,93,50,93,54,93,64,93,69,93,68,94,65,94,88,95,166,95,165,95,171,95,201,96,185,96,204,96,226,96,206,96,196,96,20,97,242,96,10,97,22,97,5,97,245,96,19,97,248,96,252,96,254,96,193,96,3,97,24,97,29,97,16,97,255,96,4,97,11,97,74,98,148,99,177,99,176,99,206,99,229,99,232,99,239,99,195,99,157,100,243,99,202,99,224,99,246,99,213,99,242,99,245,99,97,100,223,99,190,99,221,99,220,99,196,99,216,99,211,99,194,99,199,99,204,99,203,99,200,99,240,99,215,99,217,99,50,101,103,101,106,101,100,101,92,101,104,101,101,101,140,101,157,101,158,101,174,101,208,101,210,101,124,102,108,102,123,102,128,102,113,102,121,102,106,102,114,102,1,103,12,105,211,104,4,105,220,104,42,105,236,104,234,104,241,104,15,105,214,104,247,104,235,104,228,104,246,104,19,105,16,105,243,104,225,104,7,105,204,104,8,105,112,105,180,104,17,105,239,104,198,104,20,105,248,104,208,104,253,104,252,104,232,104,11,105,10,105,23,105,206,104,200,104,221,104,222,104,230,104,244,104,209,104,6,105,212,104,233,104,21,105,37,105,199,104,57,107,59,107,63,107,60,107,148,107,151,107,153,107,149,107,189,107,240,107,242,107,243,107,48,108,252,109,70,110,71,110,31,110,73,110,136,110,60,110,61,110,69,110,98,110,43,110,63,110,65,110,93,110,115,110,28,110,51,110,75,110,64,110,81,110,59,110,3,110,46,110,94,110,104,110,92,110,97,110,49,110,40,110,96,110,113,110,107,110,57,110,34,110,48,110,83,110,101,110,39,110,120,110,100,110,119,110,85,110,121,110,82,110,102,110,53,110,54,110,90,110,32,113,30,113,47,113,251,112,46,113,49,113,35,113,37,113,34,113,50,113,31,113,40,113,58,113,27,113,75,114,90,114,136,114,137,114,134,114,133,114,139,114,18,115,11,115,48,115,34,115,49,115,51,115,39,115,50,115,45,115,38,115,35,115,53,115,12,115,46,116,44,116,48,116,43,116,22,116,26,116,33,116,45,116,49,116,36,116,35,116,29,116,41,116,32,116,50,116,251,116,47,117,111,117,108,117,231,117,218,117,225,117,230,117,221,117,223,117,228,117,215,117,149,118,146,118,218,118,70,119,71,119,68,119,77,119,69,119,74,119,78,119,75,119,76,119,222,119,236,119,96,120,100,120,101,120,92,120,109,120,113,120,106,120,110,120,112,120,105,120,104,120,94,120,98,120,116,121,115,121,114,121,112,121,2,122,10,122,3,122,12,122,4,122,153,122,230,122,228,122,74,123,59,123,68,123,72,123,76,123,78,123,64,123,88,123,69,123,162,124,158,124,168,124,161,124,88,125,111,125,99,125,83,125,86,125,103,125,106,125,79,125,109,125,92,125,107,125,82,125,84,125,105,125,81,125,95,125,78,125,62,127,63,127,101,127,102,127,162,127,160,127,161,127,215,127,81,128,79,128,80,128,254,128,212,128,67,129,74,129,82,129,79,129,71,129,61,129,77,129,58,129,230,129,238,129,247,129,248,129,249,129,4,130,60,130,61,130,63,130,117,130,59,131,207,131,249,131,35,132,192,131,232,131,18,132,231,131,228,131,252,131,246,131,16,132,198,131,200,131,235,131,227,131,191,131,1,132,221,131,229,131,216,131,255,131,225,131,203,131,206,131,214,131,245,131,201,131,9,132,15,132,222,131,17,132,6,132,194,131,243,131,213,131,250,131,199,131,209,131,234,131,19,132,195,131,236,131,238,131,196,131,251,131,215,131,226,131,27,132,219,131,254,131,216,134,226,134,230,134,211,134,227,134,218,134,234,134,221,134,235,134,220,134,236,134,233,134,215,134,232,134,209,134,72,136,86,136,85,136,186,136,215,136,185,136,184,136,192,136,190,136,182,136,188,136,183,136,189,136,178,136,1,137,201,136,149,137,152,137,151,137,221,137,218,137,219,137,78,138,77,138,57,138,89,138,64,138,87,138,88,138,68,138,69,138,82,138,72,138,81,138,74,138,76,138,79,138,95,140,129,140,128,140,186,140,190,140,176,140,185,140,181,140,132,141,128,141,137,141,216,141,211,141,205,141,199,141,214,141,220,141,207,141,213,141,217,141,200,141,215,141,197,141,239,142,247,142,250,142,249,142,230,142,238,142,229,142,245,142,231,142,232,142,246,142,235,142,241,142,236,142,244,142,233,142,45,144,52,144,47,144,6,145,44,145,4,145,255,144,252,144,8,145,249,144,251,144,1,145,0,145,7,145,5,145,3,145,97,145,100,145,95,145,98,145,96,145,1,146,10,146,37,146,3,146,26,146,38,146,15,146,12,146,0,146,18,146,255,145,253,145,6,146,4,146,39,146,2,146,28,146,36,146,25,146,23,146,5,146,22,146,123,149,141,149,140,149,144,149,135,150,126,150,136,150,137,150,131,150,128,150,194,150,200,150,195,150,241,150,240,150,108,151,112,151,110,151,7,152,169,152,235,152,230,156,249,158,131,78,132,78,182,78,189,80,191,80,198,80,174,80,196,80,202,80,180,80,200,80,194,80,176,80,193,80,186,80,177,80,203,80,201,80,182,80,184,80,215,81,122,82,120,82,123,82,124,82,195,85,219,85,204,85,208,85,203,85,202,85,221,85,192,85,212,85,196,85,233,85,191,85,210,85,141,85,207,85,213,85,226,85,214,85,200,85,242,85,205,85,217,85,194,85,20,87,83,88,104,88,100,88,79,88,77,88,73,88,111,88,85,88,78,88,93,88,89,88,101,88,91,88,61,88,99,88,113,88,252,88,199,90,196,90,203,90,186,90,184,90,177,90,181,90,176,90,191,90,200,90,187,90,198,90,183,90,192,90,202,90,180,90,182,90,205,90,185,90,144,90,214,91,216,91,217,91,31,92,51,92,113,93,99,93,74,93,101,93,114,93,108,93,94,93,104,93,103,93,98,93,240,93,79,94,78,94,74,94,77,94,75,94,197,94,204,94,198,94,203,94,199,94,64,95,175,95,173,95,247,96,73,97,74,97,43,97,69,97,54,97,50,97,46,97,70,97,47,97,79,97,41,97,64,97,32,98,104,145,35,98,37,98,36,98,197,99,241,99,235,99,16,100,18,100,9,100,32,100,36,100,51,100,67,100,31,100,21,100,24,100,57,100,55,100,34,100,35,100,12,100,38,100,48,100,40,100,65,100,53,100,47,100,10,100,26,100,64,100,37,100,39,100,11,100,231,99,27,100,46,100,33,100,14,100,111,101,146,101,211,101,134,102,140,102,149,102,144,102,139,102,138,102,153,102,148,102,120,102,32,103,102,105,95,105,56,105,78,105,98,105,113,105,63,105,69,105,106,105,57,105,66,105,87,105,89,105,122,105,72,105,73,105,53,105,108,105,51,105,61,105,101,105,240,104,120,105,52,105,105,105,64,105,111,105,68,105,118,105,88,105,65,105,116,105,76,105,59,105,75,105,55,105,92,105,79,105,81,105,50,105,82,105,47,105,123,105,60,105,70,107,69,107,67,107,66,107,72,107,65,107,155,107,251,107,252,107,249,107,247,107,248,107,155,110,214,110,200,110,143,110,192,110,159,110,147,110,148,110,160,110,177,110,185,110,198,110,210,110,189,110,193,110,158,110,201,110,183,110,176,110,205,110,166,110,207,110,178,110,190,110,195,110,220,110,216,110,153,110,146,110,142,110,141,110,164,110,161,110,191,110,179,110,208,110,202,110,151,110,174,110,163,110,71,113,84,113,82,113,99,113,96,113,65,113,93,113,98,113,114,113,120,113,106,113,97,113,66,113,88,113,67,113,75,113,112,113,95,113,80,113,83,113,68,113,77,113,90,113,79,114,141,114,140,114,145,114,144,114,142,114,60,115,66,115,59,115,58,115,64,115,74,115,73,115,68,116,74,116,75,116,82,116,81,116,87,116,64,116,79,116,80,116,78,116,66,116,70,116,77,116,84,116,225,116,255,116,254,116,253,116,29,117,121,117,119,117,131,105,239,117,15,118,3,118,247,117,254,117,252,117,249,117,248,117,16,118,251,117,246,117,237,117,245,117,253,117,153,118,181,118,221,118,85,119,95,119,96,119,82,119,86,119,90,119,105,119,103,119,84,119,89,119,109,119,224,119,135,120,154,120,148,120,143,120,132,120,149,120,133,120,134,120,161,120,131,120,121,120,153,120,128,120,150,120,123,120,124,121,130,121,125,121,121,121,17,122,24,122,25,122,18,122,23,122,21,122,34,122,19,122,27,122,16,122,163,122,162,122,158,122,235,122,102,123,100,123,109,123,116,123,105,123,114,123,101,123,115,123,113,123,112,123,97,123,120,123,118,123,99,123,178,124,180,124,175,124,136,125,134,125,128,125,141,125,127,125,133,125,122,125,142,125,123,125,131,125,124,125,140,125,148,125,132,125,125,125,146,125,109,127,107,127,103,127,104,127,108,127,166,127,165,127,167,127,219,127,220,127,33,128,100,129,96,129,119,129,92,129,105,129,91,129,98,129,114,129,33,103,94,129,118,129,103,129,111,129,68,129,97,129,29,130,73,130,68,130,64,130,66,130,69,130,241,132,63,132,86,132,118,132,121,132,143,132,141,132,101,132,81,132,64,132,134,132,103,132,48,132,77,132,125,132,90,132,89,132,116,132,115,132,93,132,7,133,94,132,55,132,58,132,52,132,122,132,67,132,120,132,50,132,69,132,41,132,217,131,75,132,47,132,66,132,45,132,95,132,112,132,57,132,78,132,76,132,82,132,111,132,197,132,142,132,59,132,71,132,54,132,51,132,104,132,126,132,68,132,43,132,96,132,84,132,110,132,80,132,11,135,4,135,247,134,12,135,250,134,214,134,245,134,77,135,248,134,14,135,9,135,1,135,246,134,13,135,5,135,214,136,203,136,205,136,206,136,222,136,219,136,218,136,204,136,208,136,133,137,155,137,223,137,229,137,228,137,225,137,224,137,226,137,220,137,230,137,118,138,134,138,127,138,97,138,63,138,119,138,130,138,132,138,117,138,131,138,129,138,116,138,122,138,60,140,75,140,74,140,101,140,100,140,102,140,134,140,132,140,133,140,204,140,104,141,105,141,145,141,140,141,142,141,143,141,141,141,147,141,148,141,144,141,146,141,240,141,224,141,236,141,241,141,238,141,208,141,233,141,227,141,226,141,231,141,242,141,235,141,244,141,6,143,255,142,1,143,0,143,5,143,7,143,8,143,2,143,11,143,82,144,63,144,68,144,73,144,61,144,16,145,13,145,15,145,17,145,22,145,20,145,11,145,14,145,110,145,111,145,72,146,82,146,48,146,58,146,102,146,51,146,101,146,94,146,131,146,46,146,74,146,70,146,109,146,108,146,79,146,96,146,103,146,111,146,54,146,97,146,112,146,49,146,84,146,99,146,80,146,114,146,78,146,83,146,76,146,86,146,50,146,159,149,156,149,158,149,155,149,146,150,147,150,145,150,151,150,206,150,250,150,253,150,248,150,245,150,115,151,119,151,120,151,114,151,15,152,13,152,14,152,172,152,246,152,249,152,175,153,178,153,176,153,181,153,173,154,171,154,91,155,234,156,237,156,231,156,128,158,253,158,230,80,212,80,215,80,232,80,243,80,219,80,234,80,221,80,228,80,211,80,236,80,240,80,239,80,227,80,224,80,216,81,128,82,129,82,233,82,235,82,48,83,172,83,39,86,21,86,12,86,18,86,252,85,15,86,28,86,1,86,19,86,2,86,250,85,29,86,4,86,255,85,249,85,137,88,124,88,144,88,152,88,134,88,129,88,127,88,116,88,139,88,122,88,135,88,145,88,142,88,118,88,130,88,136,88,123,88,148,88,143,88,254,88,107,89,220,90,238,90,229,90,213,90,234,90,218,90,237,90,235,90,243,90,226,90,224,90,219,90,236,90,222,90,221,90,217,90,232,90,223,90,119,91,224,91,227,91,99,92,130,93,128,93,125,93,134,93,122,93,129,93,119,93,138,93,137,93,136,93,126,93,124,93,141,93,121,93,127,93,88,94,89,94,83,94,216,94,209,94,215,94,206,94,220,94,213,94,217,94,210,94,212,94,68,95,67,95,111,95,182,95,44,97,40,97,65,97,94,97,113,97,115,97,82,97,83,97,114,97,108,97,128,97,116,97,84,97,122,97,91,97,101,97,59,97,106,97,97,97,86,97,41,98,39,98,43,98,43,100,77,100,91,100,93,100,116,100,118,100,114,100,115,100,125,100,117,100,102,100,166,100,78,100,130,100,94,100,92,100,75,100,83,100,96,100,80,100,127,100,63,100,108,100,107,100,89,100,101,100,119,100,115,101,160,101,161,102,160,102,159,102,5,103,4,103,34,103,177,105,182,105,201,105,160,105,206,105,150,105,176,105,172,105,188,105,145,105,153,105,142,105,167,105,141,105,169,105,190,105,175,105,191,105,196,105,189,105,164,105,212,105,185,105,202,105,154,105,207,105,179,105,147,105,170,105,161,105,158,105,217,105,151,105,144,105,194,105,181,105,165,105,198,105,74,107,77,107,75,107,158,107,159,107,160,107,195,107,196,107,254,107,206,110,245,110,241,110,3,111,37,111,248,110,55,111,251,110,46,111,9,111,78,111,25,111,26,111,39,111,24,111,59,111,18,111,237,110,10,111,54,111,115,111,249,110,238,110,45,111,64,111,48,111,60,111,53,111,235,110,7,111,14,111,67,111,5,111,253,110,246,110,57,111,28,111,252,110,58,111,31,111,13,111,30,111,8,111,33,111,135,113,144,113,137,113,128,113,133,113,130,113,143,113,123,113,134,113,129,113,151,113,68,114,83,114,151,114,149,114,147,114,67,115,77,115,81,115,76,115,98,116,115,116,113,116,117,116,114,116,103,116,110,116,0,117,2,117,3,117,125,117,144,117,22,118,8,118,12,118,21,118,17,118,10,118,20,118,184,118,129,119,124,119,133,119,130,119,110,119,128,119,111,119,126,119,131,119,178,120,170,120,180,120,173,120,168,120,126,120,171,120,158,120,165,120,160,120,172,120,162,120,164,120,152,121,138,121,139,121,150,121,149,121,148,121,147,121,151,121,136,121,146,121,144,121,43,122,74,122,48,122,47,122,40,122,38,122,168,122,171,122,172,122,238,122,136,123,156,123,138,123,145,123,144,123,150,123,141,123,140,123,155,123,142,123,133,123,152,123,132,82,153,123,164,123,130,123,187,124,191,124,188,124,186,124,167,125,183,125,194,125,163,125,170,125,193,125,192,125,197,125,157,125,206,125,196,125,198,125,203,125,204,125,175,125,185,125,150,125,188,125,159,125,166,125,174,125,169,125,161,125,201,125,115,127,226,127,227,127,229,127,222,127,36,128,93,128,92,128,137,129,134,129,131,129,135,129,141,129,140,129,139,129,21,130,151,132,164,132,161,132,159,132,186,132,206,132,194,132,172,132,174,132,171,132,185,132,180,132,193,132,205,132,170,132,154,132,177,132,208,132,157,132,167,132,187,132,162,132,148,132,199,132,204,132,155,132,169,132,175,132,168,132,214,132,152,132,182,132,207,132,160,132,215,132,212,132,210,132,219,132,176,132,145,132,97,134,51,135,35,135,40,135,107,135,64,135,46,135,30,135,33,135,25,135,27,135,67,135,44,135,65,135,62,135,70,135,32,135,50,135,42,135,45,135,60,135,18,135,58,135,49,135,53,135,66,135,38,135,39,135,56,135,36,135,26,135,48,135,17,135,247,136,231,136,241,136,242,136,250,136,254,136,238,136,252,136,246,136,251,136,240,136,236,136,235,136,157,137,161,137,159,137,158,137,233,137,235,137,232,137,171,138,153,138,139,138,146,138,143,138,150,138,61,140,104,140,105,140,213,140,207,140,215,140,150,141,9,142,2,142,255,141,13,142,253,141,10,142,3,142,7,142,6,142,5,142,254,141,0,142,4,142,16,143,17,143,14,143,13,143,35,145,28,145,32,145,34,145,31,145,29,145,26,145,36,145,33,145,27,145,122,145,114,145,121,145,115,145,165,146,164,146,118,146,155,146,122,146,160,146,148,146,170,146,141,146,166,146,154,146,171,146,121,146,151,146,127,146,163,146,238,146,142,146,130,146,149,146,162,146,125,146,136,146,161,146,138,146,134,146,140,146,153,146,167,146,126,146,135,146,169,146,157,146,139,146,45,146,158,150,161,150,255,150,88,151,125,151,122,151,126,151,131,151,128,151,130,151,123,151,132,151,129,151,127,151,206,151,205,151,22,152,173,152,174,152,2,153,0,153,7,153,157,153,156,153,195,153,185,153,187,153,186,153,194,153,189,153,199,153,177,154,227,154,231,154,62,155,63,155,96,155,97,155,95,155,241,156,242,156,245,156,167,158,255,80,3,81,48,81,248,80,6,81,7,81,246,80,254,80,11,81,12,81,253,80,10,81,139,82,140,82,241,82,239,82,72,86,66,86,76,86,53,86,65,86,74,86,73,86,70,86,88,86,90,86,64,86,51,86,61,86,44,86,62,86,56,86,42,86,58,86,26,87,171,88,157,88,177,88,160,88,163,88,175,88,172,88,165,88,161,88,255,88,255,90,244,90,253,90,247,90,246,90,3,91,248,90,2,91,249,90,1,91,7,91,5,91,15,91,103,92,153,93,151,93,159,93,146,93,162,93,147,93,149,93,160,93,156,93,161,93,154,93,158,93,105,94,93,94,96,94,92,94,243,125,219,94,222,94,225,94,73,95,178,95,139,97,131,97,121,97,177,97,176,97,162,97,137,97,155,97,147,97,175,97,173,97,159,97,146,97,170,97,161,97,141,97,102,97,179,97,45,98,110,100,112,100,150,100,160,100,133,100,151,100,156,100,143,100,139,100,138,100,140,100,163,100,159,100,104,100,177,100,152,100,118,101,122,101,121,101,123,101,178,101,179,101,181,102,176,102,169,102,178,102,183,102,170,102,175,102,0,106,6,106,23,106,229,105,248,105,21,106,241,105,228,105,32,106,255,105,236,105,226,105,27,106,29,106,254,105,39,106,242,105,238,105,20,106,247,105,231,105,64,106,8,106,230,105,251,105,13,106,252,105,235,105,9,106,4,106,24,106,37,106,15,106,246,105,38,106,7,106,244,105,22,106,81,107,165,107,163,107,162,107,166,107,1,108,0,108,255,107,2,108,65,111,38,111,126,111,135,111,198,111,146,111,141,111,137,111,140,111,98,111,79,111,133,111,90,111,150,111,118,111,108,111,130,111,85,111,114,111,82,111,80,111,87,111,148,111,147,111,93,111,0,111,97,111,107,111,125,111,103,111,144,111,83,111,139,111,105,111,127,111,149,111,99,111,119,111,106,111,123,111,178,113,175,113,155,113,176,113,160,113,154,113,169,113,181,113,157,113,165,113,158,113,164,113,161,113,170,113,156,113,167,113,179,113,152,114,154,114,88,115,82,115,94,115,95,115,96,115,93,115,91,115,97,115,90,115,89,115,98,115,135,116,137,116,138,116,134,116,129,116,125,116,133,116,136,116,124,116,121,116,8,117,7,117,126,117,37,118,30,118,25,118,29,118,28,118,35,118,26,118,40,118,27,118,156,118,157,118,158,118,155,118,141,119,143,119,137,119,136,119,205,120,187,120,207,120,204,120,209,120,206,120,212,120,200,120,195,120,196,120,201,120,154,121,161,121,160,121,156,121,162,121,155,121,118,107,57,122,178,122,180,122,179,122,183,123,203,123,190,123,172,123,206,123,175,123,185,123,202,123,181,123,197,124,200,124,204,124,203,124,247,125,219,125,234,125,231,125,215,125,225,125,3,126,250,125,230,125,246,125,241,125,240,125,238,125,223,125,118,127,172,127,176,127,173,127,237,127,235,127,234,127,236,127,230,127,232,127,100,128,103,128,163,129,159,129,158,129,149,129,162,129,153,129,151,129,22,130,79,130,83,130,82,130,80,130,78,130,81,130,36,133,59,133,15,133,0,133,41,133,14,133,9,133,13,133,31,133,10,133,39,133,28,133,251,132,43,133,250,132,8,133,12,133,244,132,42,133,242,132,21,133,247,132,235,132,243,132,252,132,18,133,234,132,233,132,22,133,254,132,40,133,29,133,46,133,2,133,253,132,30,133,246,132,49,133,38,133,231,132,232,132,240,132,239,132,249,132,24,133,32,133,48,133,11,133,25,133,47,133,98,134,86,135,99,135,100,135,119,135,225,135,115,135,88,135,84,135,91,135,82,135,97,135,90,135,81,135,94,135,109,135,106,135,80,135,78,135,95,135,93,135,111,135,108,135,122,135,110,135,92,135,101,135,79,135,123,135,117,135,98,135,103,135,105,135,90,136,5,137,12,137,20,137,11,137,23,137,24,137,25,137,6,137,22,137,17,137,14,137,9,137,162,137,164,137,163,137,237,137,240,137,236,137,207,138,198,138,184,138,211,138,209,138,212,138,213,138,187,138,215,138,190,138,192,138,197,138,216,138,195,138,186,138,189,138,217,138,62,140,77,140,143,140,229,140,223,140,217,140,232,140,218,140,221,140,231,140,160,141,156,141,161,141,155,141,32,142,35,142,37,142,36,142,46,142,21,142,27,142,22,142,17,142,25,142,38,142,39,142,20,142,18,142,24,142,19,142,28,142,23,142,26,142,44,143,36,143,24,143,26,143,32,143,35,143,22,143,23,143,115,144,112,144,111,144,103,144,107,144,47,145,43,145,41,145,42,145,50,145,38,145,46,145,133,145,134,145,138,145,129,145,130,145,132,145,128,145,208,146,195,146,196,146,192,146,217,146,182,146,207,146,241,146,223,146,216,146,233,146,215,146,221,146,204,146,239,146,194,146,232,146,202,146,200,146,206,146,230,146,205,146,213,146,201,146,224,146,222,146,231,146,209,146,211,146,181,146,225,146,198,146,180,146,124,149,172,149,171,149,174,149,176,149,164,150,162,150,211,150,5,151,8,151,2,151,90,151,138,151,142,151,136,151,208,151,207,151,30,152,29,152,38,152,41,152,40,152,32,152,27,152,39,152,178,152,8,153,250,152,17,153,20,153,22,153,23,153,21,153,220,153,205,153,207,153,211,153,212,153,206,153,201,153,214,153,216,153,203,153,215,153,204,153,179,154,236,154,235,154,243,154,242,154,241,154,70,155,67,155,103,155,116,155,113,155,102,155,118,155,117,155,112,155,104,155,100,155,108,155,252,156,250,156,253,156,255,156,247,156,7,157,0,157,249,156,251,156,8,157,5,157,4,157,131,158,211,158,15,159,16,159,28,81,19,81,23,81,26,81,17,81,222,81,52,83,225,83,112,86,96,86,110,86,115,86,102,86,99,86,109,86,114,86,94,86,119,86,28,87,27,87,200,88,189,88,201,88,191,88,186,88,194,88,188,88,198,88,23,91,25,91,27,91,33,91,20,91,19,91,16,91,22,91,40,91,26,91,32,91,30,91,239,91,172,93,177,93,169,93,167,93,181,93,176,93,174,93,170,93,168,93,178,93,173,93,175,93,180,93,103,94,104,94,102,94,111,94,233,94,231,94,230,94,232,94,229,94,75,95,188,95,157,97,168,97,150,97,197,97,180,97,198,97,193,97,204,97,186,97,191,97,184,97,140,97,215,100,214,100,208,100,207,100,201,100,189,100,137,100,195,100,219,100,243,100,217,100,51,101,127,101,124,101,162,101,200,102,190,102,192,102,202,102,203,102,207,102,189,102,187,102,186,102,204,102,35,103,52,106,102,106,73,106,103,106,50,106,104,106,62,106,93,106,109,106,118,106,91,106,81,106,40,106,90,106,59,106,63,106,65,106,106,106,100,106,80,106,79,106,84,106,111,106,105,106,96,106,60,106,94,106,86,106,85,106,77,106,78,106,70,106,85,107,84,107,86,107,167,107,170,107,171,107,200,107,199,107,4,108,3,108,6,108,173,111,203,111,163,111,199,111,188,111,206,111,200,111,94,111,196,111,189,111,158,111,202,111,168,111,4,112,165,111,174,111,186,111,172,111,170,111,207,111,191,111,184,111,162,111,201,111,171,111,205,111,175,111,178,111,176,111,197,113,194,113,191,113,184,113,214,113,192,113,193,113,203,113,212,113,202,113,199,113,207,113,189,113,216,113,188,113,198,113,218,113,219,113,157,114,158,114,105,115,102,115,103,115,108,115,101,115,107,115,106,115,127,116,154,116,160,116,148,116,146,116,149,116,161,116,11,117,128,117,47,118,45,118,49,118,61,118,51,118,60,118,53,118,50,118,48,118,187,118,230,118,154,119,157,119,161,119,156,119,155,119,162,119,163,119,149,119,153,119,151,119,221,120,233,120,229,120,234,120,222,120,227,120,219,120,225,120,226,120,237,120,223,120,224,120,164,121,68,122,72,122,71,122,182,122,184,122,181,122,177,122,183,122,222,123,227,123,231,123,221,123,213,123,229,123,218,123,232,123,249,123,212,123,234,123,226,123,220,123,235,123,216,123,223,123,210,124,212,124,215,124,208,124,209,124,18,126,33,126,23,126,12,126,31,126,32,126,19,126,14,126,28,126,21,126,26,126,34,126,11,126,15,126,22,126,13,126,20,126,37,126,36,126,67,127,123,127,124,127,122,127,177,127,239,127,42,128,41,128,108,128,177,129,166,129,174,129,185,129,181,129,171,129,176,129,172,129,180,129,178,129,183,129,167,129,242,129,85,130,86,130,87,130,86,133,69,133,107,133,77,133,83,133,97,133,88,133,64,133,70,133,100,133,65,133,98,133,68,133,81,133,71,133,99,133,62,133,91,133,113,133,78,133,110,133,117,133,85,133,103,133,96,133,140,133,102,133,93,133,84,133,101,133,108,133,99,134,101,134,100,134,155,135,143,135,151,135,147,135,146,135,136,135,129,135,150,135,152,135,121,135,135,135,163,135,133,135,144,135,145,135,157,135,132,135,148,135,156,135,154,135,137,135,30,137,38,137,48,137,45,137,46,137,39,137,49,137,34,137,41,137,35,137,47,137,44,137,31,137,241,137,224,138,226,138,242,138,244,138,245,138,221,138,20,139,228,138,223,138,240,138,200,138,222,138,225,138,232,138,255,138,239,138,251,138,145,140,146,140,144,140,245,140,238,140,241,140,240,140,243,140,108,141,110,141,165,141,167,141,51,142,62,142,56,142,64,142,69,142,54,142,60,142,61,142,65,142,48,142,63,142,189,142,54,143,46,143,53,143,50,143,57,143,55,143,52,143,118,144,121,144,123,144,134,144,250,144,51,145,53,145,54,145,147,145,144,145,145,145,141,145,143,145,39,147,30,147,8,147,31,147,6,147,15,147,122,147,56,147,60,147,27,147,35,147,18,147,1,147,70,147,45,147,14,147,13,147,203,146,29,147,250,146,37,147,19,147,249,146,247,146,52,147,2,147,36,147,255,146,41,147,57,147,53,147,42,147,20,147,12,147,11,147,254,146,9,147,0,147,251,146,22,147,188,149,205,149,190,149,185,149,186,149,182,149,191,149,181,149,189,149,169,150,212,150,11,151,18,151,16,151,153,151,151,151,148,151,240,151,248,151,53,152,47,152,50,152,36,153,31,153,39,153,41,153,158,153,238,153,236,153,229,153,228,153,240,153,227,153,234,153,233,153,231,153,185,154,191,154,180,154,187,154,246,154,250,154,249,154,247,154,51,155,128,155,133,155,135,155,124,155,126,155,123,155,130,155,147,155,146,155,144,155,122,155,149,155,125,155,136,155,37,157,23,157,32,157,30,157,20,157,41,157,29,157,24,157,34,157,16,157,25,157,31,157,136,158,134,158,135,158,174,158,173,158,213,158,214,158,250,158,18,159,61,159,38,81,37,81,34,81,36,81,32,81,41,81,244,82,147,86,140,86,141,86,134,86,132,86,131,86,126,86,130,86,127,86,129,86,214,88,212,88,207,88,210,88,45,91,37,91,50,91,35,91,44,91,39,91,38,91,47,91,46,91,123,91,241,91,242,91,183,93,108,94,106,94,190,95,187,95,195,97,181,97,188,97,231,97,224,97,229,97,228,97,232,97,222,97,239,100,233,100,227,100,235,100,228,100,232,100,129,101,128,101,182,101,218,101,210,102,141,106,150,106,129,106,165,106,137,106,159,106,155,106,161,106,158,106,135,106,147,106,142,106,149,106,131,106,168,106,164,106,145,106,127,106,166,106,154,106,133,106,140,106,146,106,91,107,173,107,9,108,204,111,169,111,244,111,212,111,227,111,220,111,237,111,231,111,230,111,222,111,242,111,221,111,226,111,232,111,225,113,241,113,232,113,242,113,228,113,240,113,226,113,115,115,110,115,111,115,151,116,178,116,171,116,144,116,170,116,173,116,177,116,165,116,175,116,16,117,17,117,18,117,15,117,132,117,67,118,72,118,73,118,71,118,164,118,233,118,181,119,171,119,178,119,183,119,182,119,180,119,177,119,168,119,240,119,243,120,253,120,2,121,251,120,252,120,242,120,5,121,249,120,254,120,4,121,171,121,168,121,92,122,91,122,86,122,88,122,84,122,90,122,190,122,192,122,193,122,5,124,15,124,242,123,0,124,255,123,251,123,14,124,244,123,11,124,243,123,2,124,9,124,3,124,1,124,248,123,253,123,6,124,240,123,241,123,16,124,10,124,232,124,45,126,60,126,66,126,51,126,72,152,56,126,42,126,73,126,64,126,71,126,41,126,76,126,48,126,59,126,54,126,68,126,58,126,69,127,127,127,126,127,125,127,244,127,242,127,44,128,187,129,196,129,204,129,202,129,197,129,199,129,188,129,233,129,91,130,90,130,92,130,131,133,128,133,143,133,167,133,149,133,160,133,139,133,163,133,123,133,164,133,154,133,158,133,119,133,124,133,137,133,161,133,122,133,120,133,87,133,142,133,150,133,134,133,141,133,153,133,157,133,129,133,162,133,130,133,136,133,133,133,121,133,118,133,152,133,144,133,159,133,104,134,190,135,170,135,173,135,197,135,176,135,172,135,185,135,181,135,188,135,174,135,201,135,195,135,194,135,204,135,183,135,175,135,196,135,202,135,180,135,182,135,191,135,184,135,189,135,222,135,178,135,53,137,51,137,60,137,62,137,65,137,82,137,55,137,66,137,173,137,175,137,174,137,242,137,243,137,30,139,24,139,22,139,17,139,5,139,11,139,34,139,15,139,18,139,21,139,7,139,13,139,8,139,6,139,28,139,19,139,26,139,79,140,112,140,114,140,113,140,111,140,149,140,148,140,249,140,111,141,78,142,77,142,83,142,80,142,76,142,71,142,67,143,64,143,133,144,126,144,56,145,154,145,162,145,155,145,153,145,159,145,161,145,157,145,160,145,161,147,131,147,175,147,100,147,86,147,71,147,124,147,88,147,92,147,118,147,73,147,80,147,81,147,96,147,109,147,143,147,76,147,106,147,121,147,87,147,85,147,82,147,79,147,113,147,119,147,123,147,97,147,94,147,99,147,103,147,128,147,78,147,89,147,199,149,192,149,201,149,195,149,197,149,183,149,174,150,176,150,172,150,32,151,31,151,24,151,29,151,25,151,154,151,161,151,156,151,158,151,157,151,213,151,212,151,241,151,65,152,68,152,74,152,73,152,69,152,67,152,37,153,43,153,44,153,42,153,51,153,50,153,47,153,45,153,49,153,48,153,152,153,163,153,161,153,2,154,250,153,244,153,247,153,249,153,248,153,246,153,251,153,253,153,254,153,252,153,3,154,190,154,254,154,253,154,1,155,252,154,72,155,154,155,168,155,158,155,155,155,166,155,161,155,165,155,164,155,134,155,162,155,160,155,175,155,51,157,65,157,103,157,54,157,46,157,47,157,49,157,56,157,48,157,69,157,66,157,67,157,62,157,55,157,64,157,61,157,245,127,45,157,138,158,137,158,141,158,176,158,200,158,218,158,251,158,255,158,36,159,35,159,34,159,84,159,160,159,49,81,45,81,46,81,152,86,156,86,151,86,154,86,157,86,153,86,112,89,60,91,105,92,106,92,192,93,109,94,110,94,216,97,223,97,237,97,238,97,241,97,234,97,240,97,235,97,214,97,233,97,255,100,4,101,253,100,248,100,1,101,3,101,252,100,148,101,219,101,218,102,219,102,216,102,197,106,185,106,189,106,225,106,198,106,186,106,182,106,183,106,199,106,180,106,173,106,94,107,201,107,11,108,7,112,12,112,13,112,1,112,5,112,20,112,14,112,255,111,0,112,251,111,38,112,252,111,247,111,10,112,1,114,255,113,249,113,3,114,253,113,118,115,184,116,192,116,181,116,193,116,190,116,182,116,187,116,194,116,20,117,19,117,92,118,100,118,89,118,80,118,83,118,87,118,90,118,166,118,189,118,236,118,194,119,186,119,255,120,12,121,19,121,20,121,9,121,16,121,18,121,17,121,173,121,172,121,95,122,28,124,41,124,25,124,32,124,31,124,45,124,29,124,38,124,40,124,34,124,37,124,48,124,92,126,80,126,86,126,99,126,88,126,98,126,95,126,81,126,96,126,87,126,83,126,181,127,179,127,247,127,248,127,117,128,209,129,210,129,208,129,95,130,94,130,180,133,198,133,192,133,195,133,194,133,179,133,181,133,189,133,199,133,196,133,191,133,203,133,206,133,200,133,197,133,177,133,182,133,210,133,36,134,184,133,183,133,190,133,105,134,231,135,230,135,226,135,219,135,235,135,234,135,229,135,223,135,243,135,228,135,212,135,220,135,211,135,237,135,216,135,227,135,164,135,215,135,217,135,1,136,244,135,232,135,221,135,83,137,75,137,79,137,76,137,70,137,80,137,81,137,73,137,42,139,39,139,35,139,51,139,48,139,53,139,71,139,47,139,60,139,62,139,49,139,37,139,55,139,38,139,54,139,46,139,36,139,59,139,61,139,58,139,66,140,117,140,153,140,152,140,151,140,254,140,4,141,2,141,0,141,92,142,98,142,96,142,87,142,86,142,94,142,101,142,103,142,91,142,90,142,97,142,93,142,105,142,84,142,70,143,71,143,72,143,75,143,40,145,58,145,59,145,62,145,168,145,165,145,167,145,175,145,170,145,181,147,140,147,146,147,183,147,155,147,157,147,137,147,167,147,142,147,170,147,158,147,166,147,149,147,136,147,153,147,159,147,141,147,177,147,145,147,178,147,164,147,168,147,180,147,163,147,165,147,210,149,211,149,209,149,179,150,215,150,218,150,194,93,223,150,216,150,221,150,35,151,34,151,37,151,172,151,174,151,168,151,171,151,164,151,170,151,162,151,165,151,215,151,217,151,214,151,216,151,250,151,80,152,81,152,82,152,184,152,65,153,60,153,58,153,15,154,11,154,9,154,13,154,4,154,17,154,10,154,5,154,7,154,6,154,192,154,220,154,8,155,4,155,5,155,41,155,53,155,74,155,76,155,75,155,199,155,198,155,195,155,191,155,193,155,181,155,184,155,211,155,182,155,196,155,185,155,189,155,92,157,83,157,79,157,74,157,91,157,75,157,89,157,86,157,76,157,87,157,82,157,84,157,95,157,88,157,90,157,142,158,140,158,223,158,1,159,0,159,22,159,37,159,43,159,42,159,41,159,40,159,76,159,85,159,52,81,53,81,150,82,247,82,180,83,171,86,173,86,166,86,167,86,170,86,172,86,218,88,221,88,219,88,18,89,61,91,62,91,63,91,195,93,112,94,191,95,251,97,7,101,16,101,13,101,9,101,12,101,14,101,132,101,222,101,221,101,222,102,231,106,224,106,204,106,209,106,217,106,203,106,223,106,220,106,208,106,235,106,207,106,205,106,222,106,96,107,176,107,12,108,25,112,39,112,32,112,22,112,43,112,33,112,34,112,35,112,41,112,23,112,36,112,28,112,42,112,12,114,10,114,7,114,2,114,5,114,165,114,166,114,164,114,163,114,161,114,203,116,197,116,183,116,195,116,22,117,96,118,201,119,202,119,196,119,241,119,29,121,27,121,33,121,28,121,23,121,30,121,176,121,103,122,104,122,51,124,60,124,57,124,44,124,59,124,236,124,234,124,118,126,117,126,120,126,112,126,119,126,111,126,122,126,114,126,116,126,104,126,75,127,74,127,131,127,134,127,183,127,253,127,254,127,120,128,215,129,213,129,100,130,97,130,99,130,235,133,241,133,237,133,217,133,225,133,232,133,218,133,215,133,236,133,242,133,248,133,216,133,223,133,227,133,220,133,209,133,240,133,230,133,239,133,222,133,226,133,0,136,250,135,3,136,246,135,247,135,9,136,12,136,11,136,6,136,252,135,8,136,255,135,10,136,2,136,98,137,90,137,91,137,87,137,97,137,92,137,88,137,93,137,89,137,136,137,183,137,182,137,246,137,80,139,72,139,74,139,64,139,83,139,86,139,84,139,75,139,85,139,81,139,66,139,82,139,87,139,67,140,119,140,118,140,154,140,6,141,7,141,9,141,172,141,170,141,173,141,171,141,109,142,120,142,115,142,106,142,111,142,123,142,194,142,82,143,81,143,79,143,80,143,83,143,180,143,64,145,63,145,176,145,173,145,222,147,199,147,207,147,194,147,218,147,208,147,249,147,236,147,204,147,217,147,169,147,230,147,202,147,212,147,238,147,227,147,213,147,196,147,206,147,192,147,210,147,231,147,125,149,218,149,219,149,225,150,41,151,43,151,44,151,40,151,38,151,179,151,183,151,182,151,221,151,222,151,223,151,92,152,89,152,93,152,87,152,191,152,189,152,187,152,190,152,72,153,71,153,67,153,166,153,167,153,26,154,21,154,37,154,29,154,36,154,27,154,34,154,32,154,39,154,35,154,30,154,28,154,20,154,194,154,11,155,10,155,14,155,12,155,55,155,234,155,235,155,224,155,222,155,228,155,230,155,226,155,240,155,212,155,215,155,236,155,220,155,217,155,229,155,213,155,225,155,218,155,119,157,129,157,138,157,132,157,136,157,113,157,128,157,120,157,134,157,139,157,140,157,125,157,107,157,116,157,117,157,112,157,105,157,133,157,115,157,123,157,130,157,111,157,121,157,127,157,135,157,104,157,148,158,145,158,192,158,252,158,45,159,64,159,65,159,77,159,86,159,87,159,88,159,55,83,178,86,181,86,179,86,227,88,69,91,198,93,199,93,238,94,239,94,192,95,193,95,249,97,23,101,22,101,21,101,19,101,223,101,232,102,227,102,228,102,243,106,240,106,234,106,232,106,249,106,241,106,238,106,239,106,60,112,53,112,47,112,55,112,52,112,49,112,66,112,56,112,63,112,58,112,57,112,64,112,59,112,51,112,65,112,19,114,20,114,168,114,125,115,124,115,186,116,171,118,170,118,190,118,237,118,204,119,206,119,207,119,205,119,242,119,37,121,35,121,39,121,40,121,36,121,41,121,178,121,110,122,108,122,109,122,247,122,73,124,72,124,74,124,71,124,69,124,238,124,123,126,126,126,129,126,128,126,186,127,255,127,121,128,219,129,217,129,11,130,104,130,105,130,34,134,255,133,1,134,254,133,27,134,0,134,246,133,4,134,9,134,5,134,12,134,253,133,25,136,16,136,17,136,23,136,19,136,22,136,99,137,102,137,185,137,247,137,96,139,106,139,93,139,104,139,99,139,101,139,103,139,109,139,174,141,134,142,136,142,132,142,89,143,86,143,87,143,85,143,88,143,90,143,141,144,67,145,65,145,183,145,181,145,178,145,179,145,11,148,19,148,251,147,32,148,15,148,20,148,254,147,21,148,16,148,40,148,25,148,13,148,245,147,0,148,247,147,7,148,14,148,22,148,18,148,250,147,9,148,248,147,10,148,255,147,252,147,12,148,246,147,17,148,6,148,222,149,224,149,223,149,46,151,47,151,185,151,187,151,253,151,254,151,96,152,98,152,99,152,95,152,193,152,194,152,80,153,78,153,89,153,76,153,75,153,83,153,50,154,52,154,49,154,44,154,42,154,54,154,41,154,46,154,56,154,45,154,199,154,202,154,198,154,16,155,18,155,17,155,11,156,8,156,247,155,5,156,18,156,248,155,64,156,7,156,14,156,6,156,23,156,20,156,9,156,159,157,153,157,164,157,157,157,146,157,152,157,144,157,155,157,160,157,148,157,156,157,170,157,151,157,161,157,154,157,162,157,168,157,158,157,163,157,191,157,169,157,150,157,166,157,167,157,153,158,155,158,154,158,229,158,228,158,231,158,230,158,48,159,46,159,91,159,96,159,94,159,93,159,89,159,145,159,58,81,57,81,152,82,151,82,195,86,189,86,190,86,72,91,71,91,203,93,207,93,241,94,253,97,27,101,2,107,252,106,3,107,248,106,0,107,67,112,68,112,74,112,72,112,73,112,69,112,70,112,29,114,26,114,25,114,126,115,23,117,106,118,208,119,45,121,49,121,47,121,84,124,83,124,242,124,138,126,135,126,136,126,139,126,134,126,141,126,77,127,187,127,48,128,221,129,24,134,42,134,38,134,31,134,35,134,28,134,25,134,39,134,46,134,33,134,32,134,41,134,30,134,37,134,41,136,29,136,27,136,32,136,36,136,28,136,43,136,74,136,109,137,105,137,110,137,107,137,250,137,121,139,120,139,69,139,122,139,123,139,16,141,20,141,175,141,142,142,140,142,94,143,91,143,93,143,70,145,68,145,69,145,185,145,63,148,59,148,54,148,41,148,61,148,60,148,48,148,57,148,42,148,55,148,44,148,64,148,49,148,229,149,228,149,227,149,53,151,58,151,191,151,225,151,100,152,201,152,198,152,192,152,88,153,86,153,57,154,61,154,70,154,68,154,66,154,65,154,58,154,63,154,205,154,21,155,23,155,24,155,22,155,58,155,82,155,43,156,29,156,28,156,44,156,35,156,40,156,41,156,36,156,33,156,183,157,182,157,188,157,193,157,199,157,202,157,207,157,190,157,197,157,195,157,187,157,181,157,206,157,185,157,186,157,172,157,200,157,177,157,173,157,204,157,179,157,205,157,178,157,122,158,156,158,235,158,238,158,237,158,27,159,24,159,26,159,49,159,78,159,101,159,100,159,146,159,185,78,198,86,197,86,203,86,113,89,75,91,76,91,213,93,209,93,242,94,33,101,32,101,38,101,34,101,11,107,8,107,9,107,13,108,85,112,86,112,87,112,82,112,30,114,31,114,169,114,127,115,216,116,213,116,217,116,215,116,109,118,173,118,53,121,180,121,112,122,113,122,87,124,92,124,89,124,91,124,90,124,244,124,241,124,145,126,79,127,135,127,222,129,107,130,52,134,53,134,51,134,44,134,50,134,54,134,44,136,40,136,38,136,42,136,37,136,113,137,191,137,190,137,251,137,126,139,132,139,130,139,134,139,133,139,127,139,21,141,149,142,148,142,154,142,146,142,144,142,150,142,151,142,96,143,98,143,71,145,76,148,80,148,74,148,75,148,79,148,71,148,69,148,72,148,73,148,70,148,63,151,227,151,106,152,105,152,203,152,84,153,91,153,78,154,83,154,84,154,76,154,79,154,72,154,74,154,73,154,82,154,80,154,208,154,25,155,43,155,59,155,86,155,85,155,70,156,72,156,63,156,68,156,57,156,51,156,65,156,60,156,55,156,52,156,50,156,61,156,54,156,219,157,210,157,222,157,218,157,203,157,208,157,220,157,209,157,223,157,233,157,217,157,216,157,214,157,245,157,213,157,221,157,182,158,240,158,53,159,51,159,50,159,66,159,107,159,149,159,162,159,61,81,153,82,232,88,231,88,114,89,77,91,216,93,47,136,79,95,1,98,3,98,4,98,41,101,37,101,150,101,235,102,17,107,18,107,15,107,202,107,91,112,90,112,34,114,130,115,129,115,131,115,112,118,212,119,103,124,102,124,149,126,108,130,58,134,64,134,57,134,60,134,49,134,59,134,62,134,48,136,50,136,46,136,51,136,118,137,116,137,115,137,254,137,140,139,142,139,139,139,136,139,69,140,25,141,152,142,100,143,99,143,188,145,98,148,85,148,93,148,87,148,94,148,196,151,197,151,0,152,86,154,89,154,30,155,31,155,32,155,82,156,88,156,80,156,74,156,77,156,75,156,85,156,89,156,76,156,78,156,251,157,247,157,239,157,227,157,235,157,248,157,228,157,246,157,225,157,238,157,230,157,242,157,240,157,226,157,236,157,244,157,243,157,232,157,237,157,194,158,208,158,242,158,243,158,6,159,28,159,56,159,55,159,54,159,67,159,79,159,113,159,112,159,110,159,111,159,211,86,205,86,78,91,109,92,45,101,237,102,238,102,19,107,95,112,97,112,93,112,96,112,35,114,219,116,229,116,213,119,56,121,183,121,182,121,106,124,151,126,137,127,109,130,67,134,56,136,55,136,53,136,75,136,148,139,149,139,158,142,159,142,160,142,157,142,190,145,189,145,194,145,107,148,104,148,105,148,229,150,70,151,67,151,71,151,199,151,229,151,94,154,213,154,89,155,99,156,103,156,102,156,98,156,94,156,96,156,2,158,254,157,7,158,3,158,6,158,5,158,0,158,1,158,9,158,255,157,253,157,4,158,160,158,30,159,70,159,116,159,117,159,118,159,212,86,46,101,184,101,24,107,25,107,23,107,26,107,98,112,38,114,170,114,216,119,217,119,57,121,105,124,107,124,246,124,154,126,152,126,155,126,153,126,224,129,225,129,70,134,71,134,72,134,121,137,122,137,124,137,123,137,255,137,152,139,153,139,165,142,164,142,163,142,110,148,109,148,111,148,113,148,115,148,73,151,114,152,95,153,104,156,110,156,109,156,11,158,13,158,16,158,15,158,18,158,17,158,161,158,245,158,9,159,71,159,120,159,123,159,122,159,121,159,30,87,102,112,111,124,60,136,178,141,166,142,195,145,116,148,120,148,118,148,117,148,96,154,116,156,115,156,113,156,117,156,20,158,19,158,246,158,10,159,164,159,104,112,101,112,247,124,106,134,62,136,61,136,63,136,158,139,156,140,169,142,201,142,75,151,115,152,116,152,204,152,97,153,171,153,100,154,102,154,103,154,36,155,21,158,23,158,72,159,7,98,30,107,39,114,76,134,168,142,130,148,128,148,129,148,105,154,104,154,46,155,25,158,41,114,75,134,159,139,131,148,121,156,183,158,117,118,107,154,122,156,29,158,105,112,106,112,164,158,126,159,73,159,152,159,0,0,239,223,29,105,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,39,0,208,253,65,0,39,0,60,0,42,0,63,150,21,149,60,0,42,0,196,85,60,0,42,0,74,85,60,0,42,0,206,84,192,84,9,85,195,87,45,90,40,99,56,107,190,110,243,85,176,146,63,149,111,86,132,147,60,0,42,0,64,85,113,99,145,118,210,81,176,110,10,86,113,101,115,101,154,118,76,118,3,154,60,0,42,0,208,107,57,102,62,90,238,119,60,133,183,142,237,111,249,133,106,139,45,151,68,151,60,0,42,0,126,130,12,79,49,114,57,120,75,120,152,150,204,85,103,88,210,90,27,97,141,120,198,83,167,102,119,116,161,149,254,80,210,88,33,91,211,97,134,133,49,157,221,97,214,102,166,116,50,153,167,118,185,119,164,153,25,121,122,139,64,148,107,156,73,151,60,0,42,0,137,91,146,79,214,92,73,104,40,108,181,94,244,131,25,140,149,90,59,132,74,132,247,117,100,129,76,158,237,132,157,138,140,151,141,151,230,118,243,138,163,153,235,118,106,157,253,151,149,157,60,0,42,0,181,115,125,85,248,150,17,81,60,0,42,0,181,87,250,79,53,85,239,87,245,148,140,150,222,99,111,127,168,146,60,0,42,0,180,114,184,92,9,99,29,109,76,131,72,104,250,128,123,140,19,88,105,90,123,102,151,102,139,140,12,147,199,149,159,155,239,158,60,0,42,0,174,128,175,154,60,0,42,0,108,83,135,92,2,102,59,102,60,0,42,0,138,103,206,118,160,145,60,0,42,0,249,81,234,103,142,104,234,142,10,114,60,0,42,0,86,101,171,83,158,150,247,85,248,85,133,93,210,94,246,110,83,115,28,133,104,144,110,100,172,113,82,115,136,116,221,120,241,127,113,128,175,135,246,127,55,139,56,139,250,127,204,156,214,147,50,156,212,157,7,159,60,0,42,0,157,98,186,130,215,98,132,136,122,149,170,90,188,90,86,137,60,0,42,0,153,92,119,98,115,87,135,87,176,92,178,80,97,89,101,89,103,89,239,90,96,97,156,154,169,150,186,88,180,93,202,97,179,111,217,100,202,147,65,154,60,0,39,0,208,253,66,0,39,0,60,0,42,0,55,78,107,81,200,78,244,93,237,83,82,98,51,103,144,115,63,89,156,92,173,130,199,92,237,103,164,117,245,84,252,93,76,99,6,123,145,124,147,127,134,134,219,145,223,145,93,140,131,156,94,155,60,0,42,0,208,83,174,114,156,98,122,87,173,89,212,98,7,131,166,112,121,118,200,128,221,131,89,138,203,141,247,142,176,152,67,155,162,88,37,159,60,0,42,0,138,98,175,148,0,146,118,151,60,0,42,0,93,87,29,95,56,114,187,87,98,127,25,128,193,141,133,156,140,156,119,127,138,155,135,137,242,119,56,151,233,88,94,112,27,107,60,0,42,0,39,84,38,125,60,0,42,0,0,99,176,99,216,100,60,0,42,0,125,118,60,0,42,0,126,118,112,79,207,103,34,104,109,99,248,116,225,122,168,124,84,125,70,100,250,100,108,137,60,0,42,0,141,94,221,98,37,141,220,98,87,101,8,115,23,122,186,124,173,133,1,141,219,151,60,0,42,0,115,98,61,101,237,115,44,130,129,152,145,101,44,100,146,101,18,152,34,118,251,156,140,135,41,137,77,118,172,143,60,0,42,0,42,150,66,87,133,92,4,102,127,103,72,114,234,116,163,148,132,124,40,130,17,146,66,135,108,155,198,149,60,0,42,0,158,82,74,83,52,79,110,98,98,87,197,89,17,96,204,98,202,126,200,103,218,121,116,110,70,125,97,146,125,151,166,143,227,116,60,0,42,0,129,135,60,0,42,0,166,144,185,87,46,94,96,99,134,104,92,109,171,144,71,94,90,94,13,126,107,94,164,151,60,0,42,0,209,126,129,125,156,105,83,114,128,129,200,154,60,0,42,0,164,115,140,134,141,80,210,104,211,104,36,140,93,88,18,100,22,122,161,132,47,135,197,120,81,149,85,130,23,139,138,147,60,0,42,0,249,82,5,83,104,79,98,91,222,130,185,103,222,128,35,123,114,113,133,159,84,133,18,137,67,137,193,149,89,159,60,0,42,0,135,122,209,90,249,150,132,133,60,0,42,0,157,91,9,96,113,153,221,79,40,158,178,91,228,115,33,88,34,88,172,90,70,132,218,91,249,152,253,152,19,137,194,153,245,156,229,125,7,157,242,140,245,133,243,91,246,91,76,151,60,0,42,0,253,82,165,98,177,98,121,140,181,141,199,148,226,131,171,134,140,136,49,88,75,146,141,156,100,151,178,154,180,102,241,154,99,134,145,155,36,81,211,102,6,114,193,95,100,148,60,0,42,0,66,150,81,83,111,103,195,118,110,104,178,96,249,99,17,105,145,120,78,158,227,133,111,157,60,0,42,0,23,83,115,146,60,0,42,0,29,141,91,91,200,114,157,140,182,144,7,89,1,102,108,114,221,130,204,128,229,144,161,148,251,79,13,80,150,96,253,114,171,136,93,80,121,80,150,104,252,115,1,145,153,80,195,80,235,96,25,113,50,116,240,142,136,143,2,97,154,120,153,121,211,132,253,134,149,114,25,137,150,138,129,151,179,154,41,143,199,146,138,97,210,124,180,151,62,148,60,0,42,0,87,84,4,85,60,0,42,0,84,89,205,108,50,141,31,104,135,114,27,149,27,147,60,0,42,0,44,103,239,130,89,89,90,117,201,127,77,105,60,0,42,0,75,87,76,87,52,80,121,99,115,104,0,110,40,123,41,144,170,100,86,115,61,143,60,0,42,0,59,79,74,121,95,89,41,93,247,126,99,125,141,149,176,80,109,93,237,117,35,86,179,125,60,0,42,0,45,117,60,0,42,0,196,87,242,87,246,131,35,116,43,116,67,126,155,151,60,0,42,0,245,108,248,143,44,144,116,88,15,117,90,149,102,142,240,147,60,0,42,0,252,99,60,0,42,0,68,92,106,80,244,107,60,144,69,105,140,105,77,140,149,135,86,157,190,156,158,147,15,156,60,0,42,0,120,131,59,159,54,91,60,0,42,0,21,83,212,107,54,89,60,103,74,79,33,84,163,89,152,108,149,117,124,95,192,103,213,121,254,79,20,123,131,124,45,130,90,85,70,123,25,145,132,123,91,128,143,140,60,0,42,0,1,94,197,95,213,107,237,149,86,79,82,87,135,94,208,139,178,144,188,89,45,96,54,96,136,103,64,117,65,117,254,130,212,84,242,103,214,107,204,115,170,117,92,131,91,150,217,107,244,114,98,117,19,123,138,124,144,136,203,148,98,90,179,94,93,101,144,104,6,132,30,132,135,149,137,149,27,88,59,95,60,95,10,97,14,97,98,110,149,118,134,121,90,123,86,138,177,140,193,140,81,141,246,85,67,95,215,110,237,110,79,113,249,117,250,117,100,119,119,129,214,132,253,132,12,135,232,136,248,141,77,146,159,149,246,152,99,94,10,95,154,113,89,115,167,120,133,123,134,123,188,125,61,133,42,145,157,153,100,94,119,111,88,115,124,127,69,137,220,153,242,154,193,88,22,91,230,94,230,123,243,123,42,126,156,133,241,137,127,144,133,155,131,101,222,111,194,129,85,142,192,154,112,89,167,116,40,145,206,147,70,153,116,126,94,137,99,137,184,151,224,151,83,155,131,142,132,142,70,154,20,141,52,148,221,157,233,157,10,159,60,0,42,0,185,143,186,143,45,120,62,123,217,99,53,115,22,127,120,113,81,114,2,117,175,123,232,125,89,135,113,115,137,144,125,147,202,156,138,144,173,151,254,155,255,155,105,124,60,0,42,0,44,141,65,98,134,122,62,83,182,140,252,96,57,132,165,120,40,122,10,137,196,124,24,157,202,133,60,0,42,0,94,83,1,95,237,95,131,98,115,108,116,108,196,130,198,145,216,83,197,92,163,115,191,79,9,89,42,102,141,137,167,95,15,127,77,144,158,149,161,143,246,125,81,130,167,143,168,143,169,143,171,143,174,143,175,143,138,139,60,0,42,0,158,112,60,0,42,0,108,112,83,103,7,104,209,152,137,154,223,154,242,109,106,95,11,115,63,129,169,152,130,88,86,94,125,100,238,110,8,133,174,152,160,154,25,106,155,113,152,129,45,118,230,120,86,149,217,152,218,152,38,81,183,152,12,112,232,133,36,139,2,114,213,129,6,141,226,147,110,122,115,149,198,152,199,152,200,152,202,152,67,154,99,148,107,154,60,0,42,0,104,136,74,90,241,136,216,138,62,137,54,147,166,106,60,0,42,0,245,79,212,156,62,156,60,0,42,0,139,97,222,135,214,156,73,156,8,159,76,134,158,159,60,0,42,0,37,82,43,82,135,84,130,131,194,134,182,95,82,137,105,142,60,0,42,0,42,118,95,118,60,0,42,0,70,95,60,0,42,0,67,108,160,144,162,115,15,120,190,91,108,95,185,104,167,80,140,101,21,105,232,110,36,127,223,105,120,116,105,140,211,140,212,140,84,149,16,81,210,111,241,111,245,111,104,134,115,140,179,106,184,116,21,112,38,151,125,126,76,148,110,152,60,0,42,0,72,100,161,107,145,129,233,154,239,100,2,155,175,107,207,129,204,154,19,155,213,154,34,155,60,0,42,0,30,108,60,0,42,0,171,81,204,78,210,78,55,108,176,81,117,81,164,99,242,146,60,0,42,0,25,78,180,144,67,150,50,96,166,98,201,121,234,130,30,102,58,102,196,103,179,112,124,153,42,119,137,122,195,134,82,100,197,104,128,121,31,122,53,146,124,146,134,151,5,153,32,153,158,151,60,0,42,0,118,94,38,78,117,79,119,94,170,87,176,94,2,80,36,104,197,117,221,122,75,80,161,80,206,91,129,138,169,155,80,151,60,0,42,0,118,118,23,94,232,98,226,108,119,118,187,115,93,82,101,82,241,84,203,118,53,120,154,136,181,148,125,153,117,85,52,125,61,127,224,131,176,136,138,110,134,120,98,146,224,80,147,93,165,100,173,100,17,153,129,155,115,142,75,154,77,156,60,0,42,0,226,78,47,79,187,114,145,128,115,154,27,94,219,114,221,116,233,130,188,79,195,82,201,128,227,144,179,78,44,99,97,109,223,116,225,121,175,136,185,148,194,148,255,109,22,129,54,130,185,136,90,83,36,110,103,132,65,158,61,97,15,100,60,115,56,146,81,146,142,153,240,80,127,113,84,114,148,123,138,129,74,130,20,133,155,153,193,153,35,142,205,146,72,149,158,153,238,153,79,137,112,140,151,86,234,97,33,121,25,124,155,147,58,153,83,157,166,114,198,154,201,154,2,107,110,137,52,121,110,148,60,0,42,0,219,141,165,123,56,124,60,0,42,0,121,91,151,106,234,124,82,139,23,134,60,0,42,0,92,83,33,132,60,0,42,0,236,92,175,94,11,144,184,148,97,102,61,146,167,138,60,0,42,0,234,156,80,143,173,145,60,0,42,0,95,83,101,136,250,84,85,99,184,85,220,136,79,157,20,158,60,0,42,0,13,78,3,94,72,79,37,84,101,107,152,84,22,96,170,98,104,107,105,107,232,103,154,148,207,82,212,87,215,87,145,96,87,99,121,131,232,144,224,87,255,116,205,94,0,133,4,142,246,144,20,153,240,123,34,153,63,124,60,0,39,0,208,253,67,0,39,0,60,0,42,0,147,86,230,100,3,101,60,0,42,0,36,121,56,121,60,0,42,0,106,144,195,86,60,0,42,0,114,80,28,115,60,0,42,0,77,98,80,103,34,141,161,140,193,136,148,126,60,0,42,0,221,107,199,145,56,80,75,85,71,90,192,91,105,95,161,99,108,119,244,141,181,125,41,142,60,0,42,0,240,87,220,131,204,104,33,133,41,126,60,0,42,0,194,83,195,83,196,83,225,152,150,154,197,83,176,85,76,110,170,80,32,91,16,153,24,114,66,154,60,0,42,0,139,107,149,134,237,96,152,107,90,97,69,135,89,97,54,136,58,136,60,0,42,0,232,96,1,103,88,97,175,97,71,122,248,123,234,158,242,158,60,0,42,0,127,112,186,99,113,91,178,124,123,100,15,81,175,111,146,133,230,113,168,116,50,139,60,0,42,0,211,78,250,78,39,79,167,108,205,130,39,158,9,80,49,130,150,80,98,93,196,110,74,115,188,132,248,111,89,130,165,135,172,157,60,0,42,0,207,133,12,107,118,148,60,0,42,0,246,140,60,0,42,0,161,100,205,100,217,124,60,0,42,0,250,102,249,102,8,86,134,93,21,111,248,132,253,105,63,137,90,130,172,135,234,147,60,0,42,0,120,130,73,131,58,97,198,97,50,154,60,0,42,0,143,128,53,145,89,137,60,0,42,0,121,130,60,0,42,0,138,81,140,81,167,79,149,83,123,96,250,98,75,109,93,131,71,101,95,117,116,80,160,83,39,123,163,124,23,132,193,94,251,96,44,110,86,123,52,132,94,123,116,123,219,132,132,88,163,123,161,97,14,124,60,0,42,0,126,93,60,0,42,0,145,92,148,109,18,123,163,104,60,0,42,0,253,102,76,86,60,0,42,0,66,92,254,102,100,92,146,93,242,122,83,154,60,0,42,0,109,142,60,0,42,0,201,83,96,98,72,103,158,128,255,129,63,99,91,80,207,85,210,99,247,99,135,153,159,146,56,149,86,130,128,117,100,147,55,153,60,0,42,0,197,121,158,87,229,103,44,131,54,131,86,93,61,100,57,115,107,151,206,105,103,138,223,91,180,120,171,106,60,0,42,0,105,136,69,142,114,149,84,148,60,0,42,0,124,89,74,108,148,92,152,79,231,139,249,89,238,93,1,125,107,138,60,0,42,0,134,130,198,98,151,148,245,145,60,0,42,0,178,114,170,79,244,103,122,140,97,121,141,85,21,81,92,159,60,0,42,0,29,131,60,0,42,0,127,134,131,136,13,138,37,118,6,136,198,86,60,0,42,0,191,143,199,137,180,104,0,100,152,137,231,136,70,146,211,146,104,94,92,137,25,101,60,0,42,0,117,90,23,140,206,104,121,110,133,121,139,153,88,113,32,127,221,80,81,115,73,135,151,138,203,146,3,81,11,91,219,94,121,111,122,111,254,125,182,111,219,120,170,121,218,107,61,145,97,149,13,112,236,135,51,81,150,82,254,135,65,145,181,86,229,88,201,93,58,112,3,107,143,126,146,126,148,142,117,149,108,130,146,139,113,148,94,153,60,0,42,0,167,78,44,82,245,101,51,78,186,101,80,109,87,82,4,140,116,85,34,117,35,117,242,148,16,150,135,132,119,82,124,93,76,100,251,110,61,86,93,94,70,133,194,138,179,149,163,154,192,113,5,124,129,81,95,126,66,139,180,143,223,147,225,149,197,86,91,112,135,139,60,0,42,0,207,95,95,120,114,100,244,97,164,152,250,97,188,127,194,151,107,152,60,0,42,0,37,79,12,102,0,80,60,90,208,109,22,115,214,131,10,150,127,102,25,105,41,116,238,136,32,149,41,147,182,149,179,156,231,155,26,159,60,0,42,0,231,78,233,78,79,81,160,128,204,130,120,149,29,92,127,80,56,94,156,95,250,116,7,132,30,117,120,129,23,86,114,88,230,90,122,116,147,129,255,146,31,81,144,86,191,156,219,147,104,156,60,0,42,0,130,83,58,87,54,102,221,96,52,88,94,101,216,80,176,83,224,94,5,108,249,146,60,0,42,0,5,96,154,115,69,117,33,80,47,155,49,85,181,96,59,113,82,116,162,102,124,117,175,138,212,151,60,0,42,0,208,135,60,0,42,0,132,98,40,95,10,96,41,107,158,148,44,138,47,113,133,141,20,146,230,82,60,0,42,0,74,114,65,102,226,93,227,93,29,103,27,145,12,159,5,111,50,86,20,106,110,111,178,122,122,127,72,143,2,159,63,139,60,0,42,0,53,84,146,112,39,119,35,113,124,113,168,158,208,93,60,0,42,0,230,78,239,78,22,128,216,137,60,0,42,0,102,143,33,79,202,142,229,79,23,120,19,85,151,131,104,120,252,134,60,0,42,0,111,98,86,80,166,100,60,0,42,0,110,92,123,95,124,87,224,143,226,112,69,128,163,99,105,120,25,152,185,95,164,100,136,111,246,82,174,119,33,114,60,0,42,0,187,98,244,144,117,99,27,116,212,85,157,125,139,119,195,138,221,140,29,126,19,139,60,0,42,0,24,92,227,129,241,95,137,108,176,143,72,150,231,143,30,131,184,91,128,131,144,131,115,150,80,101,104,102,38,138,12,140,217,142,22,97,232,99,2,146,65,113,47,133,117,88,4,106,14,118,3,151,180,135,246,138,188,133,142,158,223,102,208,157,60,0,42,0,187,141,118,120,156,120,139,88,38,89,227,120,56,142,86,147,2,141,166,145,60,0,42,0,108,136,162,117,128,159,129,141,130,141,135,105,83,159,84,159,45,81,171,86,54,140,236,106,111,137,150,139,60,0,42,0,55,150,223,108,253,103,47,114,230,104,126,109,36,116,240,121,65,80,207,134,94,110,90,114,106,141,220,80,134,97,90,100,49,122,87,151,144,100,145,100,253,125,85,106,160,119,108,141,51,152,137,106,192,122,73,127,106,122,246,135,243,147,255,147,35,148,83,153,60,0,42,0,30,78,16,98,62,103,72,84,127,98,168,103,218,139,213,144,87,78,206,87,13,90,172,91,248,92,6,109,127,131,88,78,213,87,48,99,95,102,249,115,0,129,129,99,245,115,128,120,154,122,45,129,214,148,24,88,233,96,214,104,9,105,11,122,108,123,126,125,206,136,77,88,86,88,151,110,160,138,123,117,114,145,238,146,149,97,130,111,132,111,89,106,153,106,206,155,19,112,242,97,44,154,60,0,42,0,177,79,142,95,156,96,30,144,139,154,177,94,72,119,1,154,60,0,42,0,228,121,60,0,42,0,3,84,155,89,153,79,231,84,104,95,245,128,169,134,49,158,251,116,53,119,30,123,154,124,171,85,53,138,228,85,184,90,91,100,244,117,122,125,68,86,157,119,186,138,173,135,31,157,68,157,97,118,81,155,93,159,33,101,114,95,208,158,60,0,42,0,27,95,96,108,112,154,223,143,123,87,187,92,12,131,1,99,254,122,78,131,109,107,179,134,127,141,66,123,190,140,69,144,141,141,95,144,179,153,142,123,128,88,38,111,31,142,114,144,234,123,24,139,60,0,42,0,58,92,250,83,78,84,148,128,136,79,118,83,127,159,145,87,227,128,101,96,59,128,135,134,179,136,60,107,111,107,178,136,237,136,121,146,43,137,82,159,60,0,42,0,115,95,241,83,165,101,88,103,123,112,100,141,108,153,182,98,197,82,92,96,189,112,209,82,196,127,197,127,85,101,254,112,211,117,123,85,65,110,115,120,237,152,186,80,248,117,95,129,238,141,83,146,244,150,143,97,8,118,228,127,107,144,144,146,87,97,27,118,232,127,190,113,216,97,169,141,78,153,146,157,216,157,60,0,42,0,182,158,60,0,42,0,69,81,178,81,225,95,150,108,58,131,122,109,235,115,192,127,2,130,3,86,79,100,184,95,131,97,167,97,93,136,127,127,95,130,86,142,60,0,42,0,107,134,7,93,8,93,128,150,8,137,223,125,105,135,242,135,30,114,60,0,42,0,160,91,235,87,245,91,60,0,42,0,243,148,240,99,131,146,60,0,42,0,189,98,100,90,10,100,51,118,216,123,168,114,171,114,60,0,42,0,199,78,30,96,230,79,49,94,38,104,198,96,44,125,248,126,215,131,6,105,116,117,82,125,1,97,151,118,32,122,121,123,239,136,103,145,108,145,162,125,12,142,20,81,212,150,139,86,38,91,108,94,228,97,181,133,253,113,224,150,135,117,76,124,138,142,187,145,142,139,144,139,60,0,42,0,17,78,18,78,28,84,123,103,125,103,180,79,98,80,133,119,156,145,193,119,87,155,60,0,42,0,237,129,240,129,90,144,160,107,60,0,42,0,250,81,128,92,29,82,116,100,23,106,153,140,99,159,60,0,42,0,13,82,100,150,187,130,168,83,193,110,162,132,96,140,4,149,176,90,33,128,173,132,13,135,142,141,79,146,207,150,147,114,79,133,218,94,232,123,228,146,113,106,110,94,201,106,248,133,245,135,135,142,219,150,229,106,112,142,181,157,149,142,60,0,42,0,230,81,117,103,64,120,24,105,168,80,110,105,90,105,26,137,203,111,50,81,154,106,180,116,14,121,109,159,124,159,60,0,42,0,141,78,4,89,204,122,53,96,192,98,204,126,86,140,247,103,42,107,208,122,246,79,74,101,92,117,241,87,255,115,64,125,85,134,151,80,33,116,16,145,16,100,192,110,235,132,230,137,0,142,166,149,10,81,60,86,212,138,183,97,182,101,92,107,197,129,220,158,248,137,215,119,60,0,42,0,139,105,123,106,60,0,42,0,59,107,88,107,60,0,42,0,227,99,11,100,60,0,42,0,151,129,60,0,42,0,92,85,44,86,170,129,57,142,60,0,42,0,219,93,221,93,26,108,127,122,118,82,45,115,79,116,60,0,42,0,32,79,33,130,41,130,57,130,12,87,68,144,179,80,61,105,183,102,197,123,50,143,60,0,42,0,27,130,72,131,152,85,66,107,226,80,51,142,60,0,42,0,76,108,50,78,148,115,143,148,231,145,215,140,168,157,60,0,42,0,5,82,174,117,147,122,151,122,78,114,80,100,85,114,33,118,187,122,60,0,42,0,138,94,64,114,71,86,98,94,60,0,42,0,239,149,184,80,100,100,226,120,214,149,60,0,42,0,27,82,6,96,49,82,79,82,89,82,212,81,117,82,52,97,60,0,42,0,57,84,138,112,161,159,60,0,42,0,130,87,21,80,192,87,114,150,118,99,217,131,37,100,240,104,14,105,68,129,204,105,36,149,160,123,24,147,154,147,64,152,60,0,42,0,254,101,118,103,37,102,5,132,62,88,139,90,153,102,63,105,198,105,67,116,186,123,125,135,65,106,52,143,196,106,6,156,158,157,60,0,42,0,175,126,89,150,7,85,113,109,20,125,188,131,243,109,35,129,123,110,137,114,227,110,147,132,81,158,24,111,244,132,135,145,149,145,30,147,217,155,137,157,60,0,42,0,70,80,54,132,247,96,118,119,240,140,34,136,60,0,42,0,52,144,20,142,51,98,60,0,42,0,182,143,181,143,21,90,22,90,124,90,217,96,176,109,240,126,79,129,141,143,107,145,189,125,160,141,31,143,138,159,201,100,237,120,91,126,96,107,189,86,106,159,97,148,60,0,42,0,114,84,181,117,128,141,104,80,208,141,18,126,180,154,202,154,0,136,121,159,60,0,42,0,205,139,193,115,144,87,204,103,96,121,8,131,40,131,50,88,247,116,94,138,157,143,72,97,6,117,158,143,193,120,204,150,90,158,205,124,164,143,250,152,8,153,40,91,232,111,139,133,28,157,32,121,173,143,191,157,192,157,60,0,42,0,100,107,76,79,218,108,188,115,137,118,134,155,60,0,42,0,63,103,33,107,58,79,125,79,58,82,62,82,155,94,38,131,40,104,191,131,88,125,211,134,80,141,134,135,220,140,60,0,42,0,6,83,234,86,241,86,193,130,233,95,158,103,16,131,49,96,164,96,199,104,39,113,113,132,23,111,97,128,239,132,37,133,162,154,176,102,5,106,44,106,156,113,125,116,129,116,235,125,102,128,106,128,155,119,245,123,112,128,204,135,111,147,113,126,230,147,24,154,68,154,60,0,42,0,206,78,27,78,147,95,67,90,110,91,150,95,158,95,176,96,217,109,46,116,82,97,14,111,64,111,104,111,180,138,232,140,233,140,55,106,194,133,226,83,71,112,9,107,28,114,60,0,42,0,129,97,37,139,60,0,42,0,209,81,74,110,96,129,143,143,51,143,60,0,42,0,151,124,213,137,129,158,132,158,164,158,60,0,42,0,130,95,130,107,60,0,42,0,195,79,29,115,40,129,168,90,98,145,4,118,31,133,142,138,151,141,72,86,177,97,39,142,139,145,47,118,7,124,44,126,89,142,0,159,116,142,117,142,99,152,60,0,42,0,70,108,186,100,209,146,105,149,127,142,27,101,165,142,121,148,60,0,42,0,213,106,209,93,17,107,115,122,60,0,42,0,156,122,169,107,182,113,225,123,18,124,196,122,40,114,60,0,42,0,20,93,172,80,215,81,30,127,148,88,137,93,91,97,103,100,177,105,85,115,239,105,234,120,23,126,217,147,60,0,42,0,60,111,128,116,161,141,160,118,60,0,42,0,28,79,240,95,169,117,5,80,139,124,35,125,198,127,3,129,6,129,80,85,91,85,180,96,236,109,3,132,243,107,32,113,58,129,1,118,185,124,183,125,224,127,181,129,172,129,226,111,193,122,74,137,71,152,206,129,60,0,42,0,124,78,60,0,42,0,168,144,81,103,180,118,6,142,138,111,244,122,165,129,60,0,42,0,88,91,159,79,245,98,60,0,42,0,12,82,214,95,60,0,42,0,248,91,11,84,127,124,60,0,42,0,19,100,115,116,115,144,203,120,174,100,73,142,157,145,60,0,42,0,88,134,111,93,115,93,228,117,73,119,236,119,171,132,22,133,126,158,66,145,122,158,166,142,60,0,42,0,30,129,60,0,42,0,73,82,82,82,157,83,14,89,43,99,157,131,161,131,170,99,42,144,174,101,228,104,9,149,204,132,25,149,188,146,47,147,60,0,39,0,208,253,68,0,39,0,60,0,42,0,145,84,55,128,69,131,26,123,210,85,45,100,33,137,96,86,152,100,157,147,60,0,42,0,190,143,207,143,214,143,218,143,126,84,178,89,27,96,147,108,210,84,159,112,141,127,89,131,87,117,115,82,18,83,99,117,42,123,57,144,84,123,90,138,84,144,246,141,24,150,124,151,152,133,145,151,245,113,253,135,137,147,130,142,61,148,195,151,150,159,152,159,60,0,42,0,83,98,60,0,42,0,39,89,163,78,79,108,20,119,60,0,42,0,175,87,41,118,182,88,104,126,60,0,42,0,70,84,84,84,67,115,219,97,60,0,42,0,121,107,46,144,163,80,60,0,42,0,227,78,106,143,162,79,136,87,177,92,18,94,25,117,208,126,232,143,128,154,38,94,133,95,32,96,203,103,134,107,179,115,55,141,47,94,209,142,237,87,54,94,63,125,174,134,139,136,218,142,184,140,233,142,71,116,215,94,199,83,195,102,255,125,15,157,52,98,92,130,219,158,36,124,91,142,59,112,52,151,118,137,241,158,70,151,60,0,42,0,152,155,60,0,42,0,57,78,137,89,85,83,197,98,88,83,8,119,3,120,60,128,61,128,248,144,67,128,173,142,174,85,133,90,154,107,5,118,48,83,170,123,29,137,50,145,21,152,11,81,239,82,212,100,171,107,20,117,73,118,76,137,30,124,120,128,60,0,42,0,20,79,16,82,140,98,172,115,237,116,198,128,116,136,184,117,30,125,184,99,85,141,182,78,162,100,163,100,184,111,213,158,189,129,238,158,60,0,42,0,230,101,70,79,14,94,138,108,249,108,218,114,222,139,230,103,141,117,86,85,87,85,57,95,238,96,225,109,15,132,203,134,127,85,62,95,46,108,69,129,17,135,219,137,158,122,149,138,228,80,73,86,190,153,231,154,62,86,72,95,154,97,186,97,185,111,171,121,222,132,243,153,32,157,90,118,170,86,117,126,9,141,46,151,79,153,60,0,42,0,83,95,240,115,198,136,219,148,92,123,118,117,121,86,162,111,171,116,96,137,57,124,97,130,247,135,58,148,60,0,42,0,33,99,90,81,32,140,203,100,97,139,232,158,41,101,89,112,19,107,156,139,60,0,42,0,57,108,252,81,53,87,149,91,0,120,177,87,97,131,99,104,234,131,120,90,19,97,253,116,63,144,99,93,252,150,82,111,173,120,5,81,138,119,105,133,164,141,203,88,148,106,151,116,234,118,17,121,28,124,47,134,227,149,60,0,42,0,0,82,2,82,232,83,201,95,55,103,24,108,32,130,214,145,125,156,91,155,60,0,42,0,111,99,60,0,42,0,252,91,155,92,102,150,246,92,99,99,119,121,130,121,23,100,157,150,139,93,140,93,221,105,14,92,175,150,212,88,185,93,227,100,72,142,177,121,60,0,42,0,48,82,18,80,188,96,24,113,215,118,255,131,33,105,220,118,83,144,50,122,140,123,226,127,117,86,59,122,84,130,92,136,164,106,95,136,254,113,255,127,199,142,217,116,155,126,60,0,42,0,26,86,60,0,42,0,116,96,151,95,194,109,179,96,234,96,207,104,29,149,179,95,183,95,64,147,60,0,42,0,48,87,132,118,38,129,60,0,42,0,101,98,125,98,60,0,42,0,111,112,123,118,75,140,84,86,1,91,200,113,146,116,243,122,38,124,96,130,180,137,108,142,60,0,42,0,41,103,73,123,37,98,60,0,42,0,147,144,243,81,39,145,165,150,177,88,157,93,170,119,244,120,107,149,200,106,25,148,60,0,42,0,16,108,254,78,78,79,67,89,125,95,155,136,114,85,222,87,157,127,132,150,36,88,134,141,244,110,93,149,254,120,73,147,174,151,60,0,42,0,248,94,196,114,116,124,214,130,234,143,25,85,76,101,164,109,123,131,145,104,27,123,204,137,110,151,204,110,176,153,226,154,0,86,225,90,223,127,11,133,16,133,20,152,117,101,0,106,244,123,129,86,225,133,116,140,98,142,4,155,209,147,244,124,191,137,16,158,60,0,42,0,142,83,88,87,203,139,184,144,58,150,103,84,149,94,36,95,181,98,222,98,226,103,116,114,37,120,139,99,231,131,221,137,70,138,231,142,92,128,182,154,243,155,60,0,42,0,84,87,31,95,243,101,85,103,147,115,31,96,164,103,228,79,29,94,202,87,35,90,18,144,19,144,89,80,71,85,138,104,13,113,246,115,49,119,118,121,44,123,194,131,27,140,241,145,130,90,227,104,39,110,71,119,20,127,130,132,192,80,152,121,99,129,94,144,106,146,145,88,172,88,85,100,178,120,21,133,67,135,112,144,120,97,11,117,224,125,179,93,230,138,54,142,174,135,60,0,42,0,56,117,65,101,130,99,142,80,167,83,110,93,199,110,199,105,217,105,40,118,160,152,78,142,197,93,90,152,91,152,107,118,211,93,212,93,39,101,114,118,123,159,60,0,42,0,120,81,76,89,185,112,112,90,32,115,95,101,35,105,213,141,152,120,167,132,71,133,46,142,222,158,184,86,60,0,42,0,53,117,67,79,61,150,107,87,151,94,171,87,66,98,183,115,191,148,93,90,230,96,192,109,96,89,20,116,191,107,20,135,251,150,138,88,194,88,66,106,93,106,177,111,91,151,92,118,31,124,84,154,60,0,42,0,1,82,252,83,72,108,31,82,109,134,203,81,93,89,52,95,107,95,193,134,49,116,130,140,137,120,237,156,166,107,151,119,213,150,137,155,183,156,19,124,38,159,219,155,112,157,60,0,42,0,90,98,76,92,60,0,42,0,20,95,4,79,10,84,147,148,142,122,11,138,3,140,137,99,227,145,222,148,235,148,31,146,232,122,231,132,177,146,255,150,97,155,191,138,57,118,181,122,253,146,203,133,67,148,60,0,42,0,57,114,204,141,242,85,58,137,60,0,42,0,245,130,237,143,164,87,204,92,78,96,21,99,51,102,214,126,197,128,222,116,35,119,10,128,28,98,13,140,139,85,30,88,73,94,245,96,242,99,115,117,112,125,11,128,247,129,68,138,131,141,123,149,224,83,156,107,67,114,82,114,125,93,159,120,40,135,11,137,83,130,118,135,130,117,220,138,64,142,189,156,225,102,137,117,8,156,138,117,14,108,60,0,42,0,203,84,48,119,60,0,42,0,1,78,195,78,238,83,4,94,142,115,148,117,239,118,137,148,53,128,112,134,74,145,216,145,106,151,60,0,42,0,117,89,118,152,2,152,14,159,127,93,17,159,206,111,161,133,36,148,60,0,42,0,162,139,202,95,100,153,244,119,154,91,2,138,227,152,118,85,35,132,228,148,23,105,90,129,135,120,45,149,160,120,98,128,74,135,204,146,32,147,248,120,65,152,60,0,42,0,31,78,34,78,229,148,169,146,60,0,42,0,28,78,172,81,154,84,189,92,113,103,243,130,56,102,33,108,50,80,43,158,236,87,59,90,32,93,44,93,183,109,23,123,196,131,154,95,45,108,64,135,151,155,21,159,223,155,135,157,171,157,60,0,42,0,99,132,165,88,30,91,194,97,189,123,107,133,204,138,60,0,42,0,168,82,187,81,151,79,140,87,219,89,210,92,107,96,15,99,11,104,30,109,232,128,245,143,205,81,25,98,244,128,213,82,80,120,223,104,105,110,103,125,86,129,205,80,231,153,24,151,60,0,42,0,58,84,23,85,253,144,92,81,96,81,56,133,119,106,252,123,60,0,42,0,103,78,39,150,150,98,147,103,97,150,30,85,170,134,4,146,60,0,42,0,151,101,70,140,214,144,98,109,115,131,23,144,126,153,37,155,170,104,237,107,48,129,88,145,216,117,151,149,166,122,38,155,22,153,163,101,216,149,199,122,42,155,45,155,44,155,60,0,42,0,190,83,98,82,7,150,31,86,99,119,143,145,205,149,60,0,42,0,210,107,236,114,156,109,251,139,14,110,31,105,77,114,138,114,161,120,251,136,173,138,115,135,104,115,22,147,223,81,53,83,59,91,6,112,221,106,176,107,88,114,162,114,196,116,190,118,51,154,233,158,128,139,68,140,21,141,227,151,209,154,95,148,199,151,229,151,247,158,159,139,60,0,42,0,3,123,53,88,62,94,61,116,76,141,121,119,169,137,237,140,228,123,60,0,42,0,143,130,146,89,92,103,154,128,172,89,166,94,112,131,250,121,33,110,111,151,64,149,153,135,172,107,77,147,39,136,57,136,60,0,42,0,17,128,115,80,108,82,143,90,239,122,13,137,116,147,60,0,42,0,237,119,60,0,42,0,181,107,173,101,69,88,14,127,110,132,52,105,69,113,86,116,118,129,171,120,59,149,222,125,200,107,22,124,91,147,183,101,150,142,106,124,60,0,42,0,150,87,6,88,96,88,95,93,253,117,211,120,45,157,28,148,60,0,42,0,39,152,60,0,42,0,31,150,249,91,74,81,76,81,81,81,254,91,75,121,60,96,110,150,138,150,147,120,144,125,13,92,158,97,157,97,231,111,177,133,102,149,223,97,41,112,72,139,104,137,19,148,117,139,60,0,42,0,40,84,199,96,102,101,51,135,169,88,170,88,180,100,100,115,120,86,137,100,84,106,156,114,5,121,114,142,126,142,80,154,60,0,42,0,249,118,184,141,137,142,60,0,42,0,5,79,228,86,137,94,140,108,150,112,254,118,24,120,7,144,157,148,127,152,65,144,13,146,111,105,19,152,183,120,111,144,97,111,201,113,50,142,60,0,42,0,26,89,27,89,132,84,198,84,83,117,95,82,28,93,135,99,96,101,106,101,242,107,240,136,137,86,60,0,42,0,58,89,206,148,107,82,83,101,90,101,165,85,229,117,44,146,106,89,217,81,49,142,181,155,56,148,60,0,42,0,53,103,54,103,218,84,155,87,156,87,5,99,6,99,245,87,13,127,47,105,147,141,177,142,178,142,158,125,184,78,122,147,195,142,178,86,114,89,60,0,42,0,52,82,65,82,74,150,79,150,115,153,46,92,193,103,238,103,87,104,21,88,53,130,240,96,226,141,229,141,250,141,255,152,174,88,158,93,156,97,175,88,125,157,60,0,39,0,208,253,69,0,39,0,60,0,42,0,184,89,191,89,63,90,64,90,89,92,254,117,60,0,42,0,185,139,42,84,238,86,215,143,196,79,37,90,232,92,233,92,144,109,170,131,244,115,27,138,146,118,75,119,11,146,7,149,69,158,254,134,192,120,144,138,31,152,157,152,100,155,77,152,93,157,94,157,76,139,42,156,60,0,42,0,153,103,8,120,11,152,65,86,0,154,72,157,60,0,42,0,132,83,117,92,57,98,122,107,139,92,40,150,67,84,124,98,202,130,56,150,93,84,16,120,109,143,162,84,185,84,169,87,246,89,201,92,14,83,118,96,40,120,133,134,127,153,84,80,126,83,10,88,170,96,70,120,20,140,219,142,2,145,15,150,46,88,63,93,225,96,21,97,66,110,60,132,95,140,246,142,76,144,79,144,42,146,197,94,36,100,57,100,39,116,109,129,123,138,235,80,65,135,55,149,101,155,87,158,90,133,123,144,30,152,154,152,19,153,105,86,220,100,168,137,228,138,188,149,41,153,84,147,196,156,94,107,78,152,24,121,238,106,16,156,154,157,141,139,67,159,105,148,118,159,119,156,60,0,42,0,246,139,146,138,60,0,42,0,64,89,105,96,189,132,126,113,60,0,42,0,206,92,60,0,42,0,65,100,60,0,42,0,165,151,60,0,42,0,63,81,12,128,80,81,149,79,82,81,81,150,207,92,15,109,75,131,45,104,249,128,50,85,187,136,56,158,171,124,79,128,0,143,149,156,173,150,245,154,158,155,47,157,92,143,60,0,42,0,188,83,18,92,19,92,20,92,51,128,233,143,49,109,117,153,46,104,230,107,229,115,210,148,62,114,12,153,236,153,190,133,135,144,176,141,60,0,42,0,140,78,13,95,16,95,116,79,53,82,161,84,48,141,174,140,72,136,179,140,128,138,122,146,50,106,60,0,39,0,208,253,70,0,39,0,60,0,42,0,209,83,183,108,122,118,124,118,66,95,177,145,60,0,42,0,79,78,16,79,194,89,161,87,76,109,186,117,90,127,55,131,0,150,48,104,29,120,41,123,160,80,79,123,130,119,112,127,165,149,120,127,67,106,197,133,60,0,42,0,113,79,213,108,69,147,75,112,60,0,42,0,208,115,58,116,234,154,95,133,238,154,60,0,42,0,6,94,219,95,106,117,235,82,67,86,15,91,97,94,163,97,67,133,217,101,219,101,89,126,251,127,233,133,83,143,191,152,83,124,220,152,85,156,60,0,42,0,225,81,226,81,227,81,62,108,37,83,75,103,201,103,254,119,117,124,146,148,36,130,230,112,39,130,50,123,229,104,34,110,105,113,208,125,166,88,10,106,78,106,212,113,160,116,176,129,160,133,65,126,78,137,179,127,111,142,42,112,63,112,44,121,41,134,7,148,34,148,28,136,237,157,60,0,42,0,205,83,85,98,238,78,212,143,233,145,60,0,42,0,175,114,127,89,78,108,219,108,109,153,3,131,41,141,72,117,9,138,211,142,79,90,181,104,213,118,53,123,169,140,236,142,239,152,240,152,252,110,14,91,196,123,60,0,42,0,26,83,185,101,161,144,74,87,120,108,179,130,139,103,101,114,171,148,211,109,132,134,1,146,58,147,11,157,60,0,42,0,50,150,168,89,63,98,170,128,197,87,130,156,116,155,31,156,60,0,42,0,255,78,191,139,119,95,186,126,9,102,24,102,236,116,6,119,35,80,202,101,33,125,43,130,42,138,227,154,173,157,60,0,42,0,62,101,189,141,60,0,42,0,15,88,60,0,42,0,222,152,131,89,94,151,219,152,97,85,83,90,84,90,4,110,239,126,242,131,73,98,131,102,6,115,95,151,246,136,203,125,26,135,15,151,177,156,37,153,161,153,17,154,27,154,221,152,60,0,42,0,165,128,221,109,83,129,48,135,230,135,60,0,42,0,15,103,208,128,42,83,253,139,92,89,177,96,144,101,208,104,167,105,225,127,92,133,185,138,218,123,60,0,42,0,32,84,190,130,159,94,110,103,184,108,210,114,186,128,50,102,199,128,57,141,247,79,85,82,158,83,191,117,107,150,93,92,9,132,195,94,187,140,241,117,68,149,226,94,202,102,72,118,35,159,247,111,224,106,225,155,40,148,69,151,60,0,42,0,6,82,41,84,9,94,183,126,172,130,16,102,27,108,219,84,213,122,111,136,122,81,27,125,194,127,93,81,251,104,28,138,174,142,90,145,22,146,240,150,6,103,52,153,89,153,60,0,42,0,95,87,162,89,142,92,126,108,12,103,140,103,131,112,166,128,146,127,160,134,161,134,164,104,252,104,26,113,182,132,154,153,171,150,179,88,105,94,198,111,97,133,117,155,104,106,204,113,211,113,110,140,34,159,181,127,22,159,118,140,82,143,60,148,169,153,194,158,60,0,42,0,137,124,250,158,60,0,42,0,253,78,5,95,75,89,255,95,206,121,126,80,36,97,170,124,232,80,164,97,110,89,185,129,222,124,188,156,53,112,93,156,60,0,42,0,48,78,206,152,249,78,232,81,236,81,166,89,163,108,168,108,238,81,171,103,1,92,175,117,253,118,28,120,168,152,239,92,240,92,81,80,123,104,253,112,18,116,54,93,38,115,81,132,11,149,83,105,142,114,2,135,11,118,184,120,252,80,200,123,55,145,210,146,146,106,207,149,80,140,189,147,224,147,70,145,247,91,67,112,52,134,59,151,45,136,74,151,204,152,183,158,60,0,42,0,175,81,6,89,64,99,114,109,34,144,56,88,132,110,174,153,83,100,40,111,152,125,66,130,60,0,42,0,189,139,130,137,42,85,247,138,60,0,42,0,228,81,73,89,46,117,248,79,87,110,40,113,72,113,29,127,87,141,239,156,243,156,12,157,43,126,245,140,60,0,42,0,133,137,60,0,42,0,207,78,114,87,187,104,60,0,42,0,17,125,230,136,60,0,42,0,54,127,38,84,154,89,57,127,59,127,149,107,236,150,0,157,60,0,42,0,43,89,21,79,158,144,75,84,139,89,199,89,158,115,164,128,36,96,206,103,6,120,66,131,109,136,186,87,16,90,3,92,116,131,201,101,40,125,186,141,184,158,225,117,3,122,215,141,7,146,95,123,146,125,28,145,117,91,103,140,119,101,154,129,250,156,169,158,208,124,172,158,177,158,239,97,60,0,42,0,64,78,255,93,23,95,15,79,235,81,54,117,91,79,185,81,28,82,90,91,118,98,153,130,163,130,136,84,170,92,127,95,43,96,194,98,13,103,142,103,237,108,194,126,203,126,251,130,0,131,216,79,152,87,235,103,31,108,17,109,165,112,184,115,73,117,80,117,83,121,88,127,47,131,219,144,232,151,249,84,63,104,110,109,41,120,169,131,168,134,16,83,116,104,170,109,240,112,8,116,38,123,48,123,49,125,60,125,199,127,116,130,212,131,89,134,177,136,69,94,244,104,101,125,102,127,77,132,143,121,176,124,141,125,64,130,9,135,144,143,88,146,92,146,171,152,231,156,145,105,42,122,153,123,205,151,94,94,147,111,96,135,244,154,20,157,232,138,62,142,59,143,132,155,65,118,70,137,178,155,251,158,101,137,105,157,157,157,60,0,42,0,82,84,154,98,43,117,118,78,156,94,35,95,202,98,167,101,204,79,219,79,213,128,217,144,236,156,239,79,220,145,225,145,108,99,133,143,40,105,36,113,217,118,81,129,207,110,5,135,80,129,20,143,56,86,168,100,171,100,43,152,52,155,32,124,252,158,60,0,42,0,29,150,54,114,163,139,216,78,135,89,31,141,68,150,144,84,127,87,206,122,28,150,120,154,13,89,202,92,84,121,3,138,160,140,116,141,165,134,157,136,90,150,105,80,168,81,111,82,102,90,185,134,133,80,141,90,204,91,169,95,255,121,47,132,215,134,132,137,66,138,75,141,49,105,26,127,121,129,139,156,163,121,7,137,20,137,89,141,238,125,103,133,92,135,110,135,230,140,217,153,20,91,27,126,57,143,146,155,251,140,81,147,98,147,198,156,134,137,165,153,18,156,60,0,42,0,92,145,60,0,39,0,208,253,71,0,39,0,60,0,42,0,238,101,119,84,14,86,32,86,60,0,42,0,134,148,28,92,118,86,55,147,60,0,42,0,21,92,141,115,60,0,42,0,44,92,64,155,60,0,42,0,133,79,229,139,194,144,84,150,147,87,223,89,208,92,68,131,80,102,69,141,97,117,116,121,111,125,114,138,101,140,197,140,204,140,60,0,42,0,203,95,57,101,96,125,60,0,42,0,16,78,98,78,3,83,4,83,35,150,90,103,153,148,214,118,97,100,137,110,98,132,35,146,145,150,36,98,130,105,233,105,203,132,17,111,234,105,194,116,60,0,42,0,24,117,211,95,137,130,192,143,60,101,70,103,149,115,157,128,105,87,212,108,248,119,247,130,121,78,209,103,255,122,179,117,80,145,147,124,129,78,242,81,50,92,52,92,120,123,39,111,241,156,54,92,55,92,80,155,60,0,42,0,224,78,94,98,175,118,198,121,102,136,118,141,98,101,127,104,52,123,8,122,31,97,137,111,149,141,68,106,192,100,51,124,20,156,225,156,100,156,60,0,42,0,114,94,240,101,117,108,240,118,192,126,29,80,206,81,230,109,58,125,76,138,173,154,121,94,166,105,138,106,17,141,99,141,27,141,104,112,60,0,42,0,136,81,83,127,174,81,26,82,96,103,178,126,155,128,161,92,104,114,152,117,252,119,56,127,162,148,91,82,97,127,8,88,134,99,237,145,225,104,133,114,61,88,177,125,65,127,252,146,160,147,60,0,42,0,151,92,23,93,47,110,60,0,42,0,53,113,57,113,123,123,211,105,5,98,6,98,60,0,42,0,139,118,148,127,153,127,216,154,144,118,217,154,239,129,220,110,212,105,126,119,143,129,249,105,112,106,217,123,213,124,59,153,220,106,223,151,206,157,27,159,241,157,60,0,42,0,48,89,114,103,210,131,1,122,30,100,31,127,160,102,192,105,193,105,62,122,63,122,80,149,30,126,193,133,186,106,243,133,60,0,42,0,63,84,74,84,194,82,240,139,220,144,252,92,110,121,112,121,6,149,118,123,158,121,165,138,239,146,60,0,42,0,8,98,225,78,42,87,181,114,165,126,19,98,144,128,107,114,153,117,175,84,113,114,229,84,243,128,188,136,61,158,114,82,1,100,65,95,210,110,40,98,76,107,16,157,26,157,241,100,12,139,63,157,182,147,60,0,42,0,68,84,110,79,12,83,12,99,22,131,1,150,105,151,75,101,60,104,50,155,5,97,245,129,91,132,210,134,211,136,148,150,221,85,101,88,198,110,225,137,63,100,197,105,136,129,163,149,164,149,102,115,73,149,136,151,208,151,188,154,253,138,53,143,175,155,202,106,218,151,85,143,183,151,20,154,60,0,42,0,255,84,56,130,240,85,60,0,42,0,42,78,4,84,124,134,11,80,76,120,236,148,135,123,60,0,42,0,217,126,102,125,60,0,42,0,57,104,223,141,60,0,42,0,207,84,60,0,42,0,110,130,60,0,42,0,152,78,153,78,27,131,239,99,4,100,60,0,42,0,47,82,154,94,74,117,109,109,21,128,238,131,41,105,63,113,90,125,83,141,82,158,234,125,6,126,174,127,225,140,185,127,138,157,60,0,42,0,224,144,253,84,194,87,250,92,45,99,224,126,63,128,132,131,151,104,134,125,160,156,190,154,193,155,60,0,42,0,244,102,41,88,133,102,60,0,42,0,229,93,19,95,108,81,183,83,159,82,59,101,91,103,155,79,252,124,177,128,171,91,174,91,109,96,163,134,172,142,154,159,17,83,104,88,74,94,41,97,229,137,179,142,149,113,20,83,189,120,248,154,245,137,143,159,148,159,60,0,42,0,254,94,233,93,94,108,241,98,242,98,49,104,217,115,1,143,143,151,60,0,42,0,113,81,33,141,190,127,29,85,162,140,187,131,60,0,42,0,80,97,60,0,42,0,254,82,93,79,159,108,169,148,167,136,17,127,14,146,157,110,100,146,241,125,32,137,221,123,60,124,178,151,221,151,60,0,42,0,182,130,163,92,215,114,223,130,184,103,189,115,7,128,9,128,49,123,8,128,188,134,127,140,60,0,42,0,120,87,132,103,223,139,45,141,162,87,228,89,41,131,147,81,31,89,32,89,61,138,190,90,64,95,6,100,108,138,88,144,202,150,203,105,121,113,207,137,128,100,175,137,252,140,60,0,42,0,48,79,113,84,149,84,209,89,100,91,189,108,210,108,253,130,231,103,113,143,2,85,91,127,42,158,31,123,199,131,240,131,196,134,218,137,241,142,242,142,156,143,100,145,50,146,141,123,155,123,244,90,208,123,109,106,149,155,35,157,60,0,42,0,187,157,60,0,42,0,3,89,228,83,98,98,105,108,194,139,55,140,161,128,111,114,168,154,3,85,95,127,150,127,39,144,180,148,166,80,82,85,200,109,53,129,202,134,204,134,51,92,50,97,199,132,65,138,137,153,68,158,190,105,194,107,55,146,19,159,20,159,15,86,150,105,183,118,88,158,64,122,14,126,211,124,163,133,242,111,188,118,204,129,66,143,54,153,20,112,236,118,189,119,49,136,60,0,42,0,250,86,69,101,197,81,126,152,12,88,19,93,46,93,143,104,127,114,221,104,123,121,199,150,252,117,18,122,34,149,241,80,46,147,180,156,221,155,103,152,60,0,42,0,220,116,46,82,205,128,29,104,57,158,68,107,113,113,82,128,170,152,143,141,128,82,250,125,59,142,189,146,179,152,48,157,39,154,60,0,42,0,142,81,231,83,80,82,110,82,225,91,60,0,42,0,102,83,108,87,214,139,2,99,105,85,155,99,99,127,83,125,107,127,2,137,127,138,60,0,42,0,86,78,180,99,81,100,60,0,42,0,208,98,180,103,250,103,137,123,60,0,42,0,44,89,207,83,42,96,96,96,60,0,42,0,115,81,194,137,152,91,160,81,140,137,12,80,250,104,132,132,164,122,162,149,29,118,79,118,179,137,215,149,207,156,220,149,37,156,192,137,94,156,60,0,42,0,158,131,134,153,47,116,239,117,102,123,161,123,40,143,24,130,39,147,40,153,228,156,60,0,42,0,204,107,49,78,47,141,244,108,186,96,239,96,188,99,171,109,171,140,185,96,124,121,99,97,92,100,69,111,102,144,12,106,229,118,70,127,218,150,128,142,198,147,76,112,31,114,216,116,212,119,54,121,115,158,80,127,117,148,121,156,27,158,60,0,42,0,73,81,110,112,138,79,151,112,154,112,155,112,163,84,153,87,239,89,56,109,42,131,68,104,225,112,214,115,241,128,217,80,4,143,167,146,198,158,60,0,42,0,127,94,131,94,183,114,227,94,119,115,233,129,60,0,42,0,199,79,27,144,230,129,151,100,60,0,42,0,31,107,60,0,42,0,82,95,45,87,171,89,159,159,196,137,189,144,136,118,37,131,250,149,48,94,234,115,255,128,128,78,128,80,69,120,144,122,191,136,143,137,175,90,198,94,29,105,112,116,204,144,226,90,107,100,168,149,145,156,0,91,251,105,252,105,157,135,157,116,161,119,173,129,173,155,156,159,194,93,120,107,54,155,41,154,204,116,57,155,247,106,60,0,42,0,132,91,63,108,57,103,104,143,139,94,121,79,38,83,225,139,82,150,157,87,253,89,81,96,49,101,120,118,204,142,60,155,170,94,106,121,45,83,119,102,64,110,235,134,228,137,109,138,172,83,11,124,225,135,60,0,42,0,48,101,61,82,63,82,11,102,220,103,148,112,53,141,66,104,103,104,34,105,36,115,64,123,180,140,213,132,234,141,49,83,138,82,140,82,161,93,140,100,246,105,156,106,182,119,172,121,2,124,195,106,80,118,88,137,220,156,188,151,86,156,101,156,60,0,42,0,40,78,110,136,195,96,242,126,158,136,138,143,218,110,216,132,254,110,196,125,9,133,217,120,37,143,167,156,140,155,192,155,60,0,42,0,205,104,84,119,116,119,173,116,52,139,60,0,42,0,89,84,188,84,218,87,237,144,111,85,29,88,30,93,27,146,5,149,142,88,17,118,19,86,73,95,196,111,72,135,75,147,77,95,200,135,60,0,42,0,239,86,246,86,251,86,253,86,0,87,11,87,60,94,88,129,87,94,86,97,13,111,93,128,46,133,149,129,98,134,152,153,60,0,42,0,156,103,200,96,201,109,19,115,211,131,131,153,1,105,1,137,232,105,191,124,182,125,62,135,249,136,32,143,1,147,28,153,57,148,60,0,42,0,199,143,78,144,60,0,39,0,208,253,72,0,39,0,60,0,42,0,200,84,234,148,60,0,42,0,228,134,60,0,42,0,100,89,60,0,42,0,141,84,179,84,232,85,60,0,42,0,216,143,105,91,38,152,184,154,132,144,60,0,42,0,119,109,242,128,248,112,112,88,124,145,162,145,60,0,42,0,165,78,142,89,135,154,179,91,38,108,208,85,0,153,237,153,244,153,90,153,60,0,42,0,161,86,60,0,42,0,68,79,120,152,251,84,182,134,99,145,7,152,232,90,61,140,168,97,160,153,91,107,62,159,60,0,42,0,151,144,43,84,175,144,253,81,129,84,163,128,254,81,119,134,5,85,5,87,34,90,91,109,33,93,87,102,146,104,181,109,19,113,0,116,210,91,69,93,233,151,29,117,104,123,44,135,143,111,225,146,125,155,211,151,60,0,42,0,6,78,136,83,85,127,107,109,138,85,10,133,26,150,67,140,43,155,60,0,42,0,73,108,125,92,87,108,236,149,241,101,190,92,190,87,141,96,77,99,134,109,2,115,159,131,88,102,10,113,225,131,236,145,136,149,148,118,69,119,188,80,255,134,148,152,175,153,150,100,34,111,45,135,181,102,175,113,178,146,206,146,190,97,188,100,240,127,146,135,55,152,68,152,251,153,64,139,215,150,26,112,43,134,190,157,60,0,42,0,111,81,51,114,60,0,42,0,47,89,60,0,42,0,192,130,210,143,187,101,109,103,179,87,215,126,233,115,16,123,42,130,162,134,131,152,165,140,85,123,78,125,15,152,103,155,60,0,42,0,134,108,60,0,42,0,32,131,191,132,134,86,133,133,167,133,60,0,42,0,220,107,211,122,157,134,235,107,3,105,229,85,70,115,137,140,81,86,84,115,106,140,55,86,75,115,213,138,43,81,142,86,213,88,224,111,71,124,20,136,121,139,60,0,42,0,125,89,221,144,60,0,42,0,247,83,10,102,38,102,207,121,224,84,79,96,142,96,105,109,23,128,103,102,207,109,144,80,147,118,23,145,200,110,85,128,95,134,164,102,173,102,148,111,156,118,158,118,205,102,161,118,131,133,165,118,172,147,162,152,79,112,101,152,29,156,93,112,60,0,42,0,195,139,117,84,178,98,49,107,157,85,54,138,236,85,26,136,60,0,42,0,190,121,8,84,85,79,190,82,138,84,140,84,192,89,179,108,195,144,198,92,247,102,199,103,226,114,199,118,122,124,7,125,2,150,120,153,236,84,70,101,56,104,201,118,205,118,119,131,93,85,184,109,46,110,210,118,244,121,207,131,2,132,181,134,129,159,210,96,173,124,56,138,140,152,65,105,252,107,149,111,101,138,136,140,5,143,76,146,22,150,132,156,134,113,86,158,167,158,28,152,213,123,238,127,155,135,122,155,9,121,212,149,168,151,85,159,136,137,161,157,172,118,73,148,162,159,60,0,42,0,107,79,142,87,58,141,148,136,201,91,3,113,192,140,195,85,66,113,139,120,135,113,16,137,107,141,100,158,82,122,239,127,209,88,75,118,30,139,250,113,0,114,174,157,180,157,77,151,78,151,22,158,79,151,60,0,42,0,210,158,209,158,63,86,118,111,60,0,42,0,235,98,213,117,142,151,60,0,42,0,119,79,136,95,224,114,106,138,60,0,42,0,104,96,60,0,42,0,168,78,252,84,153,96,165,109,72,85,29,129,60,0,42,0,238,89,70,96,82,96,65,104,198,112,251,128,59,158,42,106,107,106,97,136,52,157,70,157,5,134,69,148,60,0,42,0,60,88,60,0,42,0,119,86,60,0,42,0,255,83,61,84,77,84,116,112,112,143,196,84,7,138,216,112,227,142,200,99,57,110,34,113,97,120,62,140,168,133,55,143,157,86,103,147,95,143,60,0,42,0,220,78,24,95,133,89,162,126,48,84,143,91,111,108,146,115,174,126,243,149,150,91,211,108,156,115,240,130,172,87,2,90,42,109,209,122,5,125,109,131,121,134,100,109,24,125,195,127,62,128,84,120,45,125,57,140,63,158,49,110,228,122,160,124,82,132,83,132,28,146,142,149,139,125,221,127,60,140,66,111,119,146,131,151,95,155,208,146,75,95,123,133,16,151,201,158,31,151,59,157,204,158,60,0,42,0,78,102,202,85,60,0,42,0,167,139,12,138,167,149,148,100,139,111,146,111,190,146,194,149,40,155,192,149,60,0,42,0,65,159,60,0,42,0,175,79,230,119,7,145,137,85,63,94,52,115,84,132,10,118,122,119,204,123,199,124,237,127,186,154,245,127,109,147,49,153,248,155,60,0,42,0,60,84,188,114,60,0,42,0,14,84,200,144,154,83,149,87,140,95,9,109,5,144,25,80,32,88,94,140,142,156,152,156,156,155,95,156,60,0,42,0,78,78,111,78,34,83,77,134,124,84,128,87,253,95,18,102,246,102,216,108,248,130,87,96,192,112,119,143,43,83,63,85,218,96,244,109,86,134,228,142,17,86,227,91,249,110,208,150,96,94,47,98,81,107,180,129,60,139,60,0,42,0,235,86,135,98,39,95,208,114,243,116,225,128,246,88,186,150,247,88,155,101,0,113,150,85,250,88,169,90,48,100,86,110,34,115,87,125,107,132,92,105,115,113,90,116,29,86,27,133,85,158,242,105,182,123,202,124,116,135,90,136,113,155,32,126,156,135,144,145,54,152,243,137,120,147,44,153,96,157,43,112,13,155,23,156,152,157,166,157,60,0,42,0,85,78,123,108,78,134,82,109,255,79,44,85,0,132,37,116,93,134,248,110,63,147,241,155,60,0,42,0,101,78,146,78,22,95,54,98,55,98,56,98,177,81,180,81,144,130,13,94,164,98,141,108,170,108,181,92,25,96,61,98,8,102,145,103,24,96,92,121,15,123,144,124,95,90,72,98,224,116,91,105,192,85,148,125,32,145,253,150,237,90,238,90,98,100,236,110,48,133,244,105,169,113,248,156,4,124,89,147,155,86,113,158,119,139,224,156,196,151,0,152,111,156,12,158,60,0,42,0,177,130,178,130,215,84,214,87,114,90,27,105,116,120,41,86,192,124,174,138,138,132,53,147,36,134,60,0,42,0,78,83,225,89,133,154,239,131,234,145,235,145,231,148,209,110,62,115,51,100,182,100,198,120,80,133,150,135,216,146,65,139,245,147,74,154,232,157,60,0,42,0,22,83,18,82,59,89,121,103,59,117,221,139,11,93,102,104,115,90,107,117,5,91,117,117,223,137,113,138,131,82,102,100,58,106,255,90,236,105,133,111,217,138,227,138,202,158,99,126,25,130,110,139,60,0,42,0,0,96,138,95,238,109,208,105,34,137,29,142,208,97,49,137,247,97,36,112,240,106,50,128,57,134,60,0,42,0,79,87,182,84,202,88,222,88,62,134,60,0,42,0,34,107,191,114,83,107,5,157,77,157,68,145,190,86,253,97,126,115,97,107,153,139,155,140,105,154,60,0,42,0,175,115,199,144,216,92,57,109,223,114,65,131,83,104,8,132,17,132,207,91,89,125,200,150,132,125,166,127,134,140,110,146,62,149,28,87,27,91,240,91,180,111,51,127,27,150,176,116,114,140,112,147,110,149,110,158,235,124,111,126,88,143,54,148,228,149,31,155,219,116,60,0,42,0,19,127,233,125,12,101,60,0,42,0,123,94,66,89,146,128,80,89,166,91,36,85,98,99,99,109,163,109,201,112,163,96,153,104,21,113,45,144,154,85,155,85,72,93,12,97,219,99,25,110,234,117,70,119,101,113,77,116,98,140,54,111,19,118,245,105,169,156,208,100,163,111,231,133,199,155,246,155,0,156,60,0,42,0,223,93,147,128,82,131,65,136,26,103,67,88,76,97,60,0,42,0,135,118,95,80,240,81,141,150,196,158,164,85,45,88,147,90,50,93,168,95,246,96,95,110,95,132,81,144,195,158,123,105,76,113,93,116,180,88,98,111,90,115,61,149,191,113,156,116,193,123,202,123,78,130,87,135,64,118,250,120,84,122,251,138,39,124,229,135,96,147,45,153,199,156,170,141,249,151,4,148,28,154,9,156,81,156,236,157,60,0,42,0,51,96,77,96,190,112,186,91,67,102,68,102,91,89,14,140,76,94,100,138,128,113,40,126,10,139,206,106,100,81,60,0,42,0,48,97,201,110,165,105,194,102,157,118,164,147,169,118,60,0,42,0,112,112,115,112,217,139,180,84,98,96,251,98,37,99,3,109,122,134,134,136,86,102,227,112,242,115,87,140,78,90,136,90,238,99,218,127,137,143,147,150,137,102,78,105,71,113,136,121,124,138,81,94,115,119,24,137,69,86,157,100,85,86,236,127,29,143,190,158,189,95,179,150,8,112,51,134,52,156,60,0,42,0,216,86,222,86,236,86,106,79,251,94,253,94,91,96,4,109,52,131,244,143,224,112,152,134,37,144,208,117,212,134,213,134,22,135,176,155,60,0,42,0,148,96,192,107,193,107,199,107,147,106,236,113,109,139,60,0,42,0,73,83,118,92,119,92,71,108,26,79,179,139,203,108,213,84,77,109,216,126,148,130,95,131,242,139,90,96,117,96,233,112,63,141,87,95,102,102,253,121,153,85,224,96,79,110,117,125,11,127,217,127,19,150,47,83,89,95,90,95,3,103,217,110,111,138,196,140,146,152,225,80,18,86,35,118,39,133,168,138,26,87,237,91,103,97,147,97,179,102,229,105,83,111,89,133,102,86,18,91,187,95,94,106,168,107,174,111,202,111,105,115,164,116,136,133,137,133,241,138,46,152,133,106,244,113,175,116,242,123,241,133,47,153,150,86,186,119,98,122,98,126,234,135,216,106,106,126,253,127,83,139,54,81,248,147,224,149,72,91,44,148,103,151,127,139,106,152,60,0,42,0,243,97,60,0,42,0,15,102,44,102,100,131,90,90,219,96,189,109,13,150,212,104,153,107,119,132,103,119,111,119,189,149,60,0,42,0,246,95,81,109,161,104,132,153,26,88,62,110,63,116,66,155,27,153,73,126,75,143,50,159,60,0,42,0,232,139,210,79,49,80,2,87,141,99,247,109,29,113,183,110,65,97,232,137,226,138,60,0,42,0,25,84,104,82,32,128,42,149,144,82,132,86,67,147,65,140,9,101,30,154,60,0,42,0,120,79,59,109,238,121,243,121,60,0,42,0,107,112,25,79,169,144,172,148,37,146,55,111,37,89,60,0,42,0,142,108,22,98,39,141,159,84,9,120,240,79,71,99,19,119,183,131,132,149,157,99,120,121,168,140,209,96,228,101,71,105,113,110,141,121,166,132,111,89,233,111,114,115,13,151,180,106,11,139,198,119,107,122,108,149,175,86,22,112,47,128,103,130,255,133,22,136,191,86,228,102,219,129,104,118,208,119,74,148,67,151,60,0,39,0,208,253,74,0,39,0,60,0,42,0,12,78,165,139,251,81,9,82,253,83,101,153,105,78,15,82,62,87,58,103,145,115,140,128,168,130,246,119,33,158,133,103,173,84,235,89,249,143,94,82,39,85,236,89,80,92,239,121,4,123,226,152,250,87,233,126,158,85,70,93,71,93,103,101,30,103,132,114,83,123,9,127,77,141,227,82,216,85,120,117,24,122,225,141,251,141,238,156,223,80,196,107,149,123,136,146,48,86,131,100,227,105,45,106,127,117,61,122,221,125,237,137,235,140,184,142,81,159,188,88,95,106,192,111,163,116,168,121,77,122,64,137,36,147,174,150,202,100,239,120,10,124,62,126,129,127,247,140,63,145,197,106,45,128,95,142,222,150,79,139,242,151,143,157,100,139,22,148,81,153,106,118,139,142,191,151,196,157,78,159,135,127,64,134,71,148,137,137,89,148,79,159,136,127,4,158,138,137,60,0,42,0,188,78,189,78,202,83,11,79,9,84,140,92,118,95,227,95,114,108,167,126,115,83,129,103,128,118,159,78,118,79,216,139,198,144,125,83,221,83,222,89,37,96,228,114,141,118,8,123,26,125,228,99,190,117,10,129,217,137,110,80,89,83,180,94,15,113,59,140,34,98,216,104,117,105,155,107,82,110,198,150,73,88,201,90,49,97,107,105,186,132,140,141,145,143,201,105,36,128,140,129,161,146,175,93,87,111,200,111,32,118,191,123,64,133,122,133,22,142,97,158,118,106,157,106,143,135,47,143,201,133,75,137,80,142,83,147,101,130,77,124,90,143,246,147,53,151,186,157,209,157,164,142,230,150,231,150,60,0,42,0,224,81,241,93,46,78,128,89,177,114,242,108,110,134,36,99,142,99,126,156,126,94,31,98,116,93,130,158,98,155,160,100,224,100,86,122,227,135,85,155,60,0,42,0,80,95,81,95,225,101,161,139,176,139,14,79,170,126,86,87,147,89,204,95,128,98,176,130,69,150,66,82,99,91,220,84,141,87,220,92,226,101,14,109,78,109,0,125,13,131,36,131,96,131,8,138,100,82,18,125,231,126,202,137,24,138,72,80,194,91,196,91,155,95,184,96,227,101,158,104,8,110,109,121,72,88,206,96,238,129,106,132,7,133,126,81,245,117,153,125,223,132,218,136,155,150,62,155,168,102,3,111,8,111,157,121,41,122,74,122,139,138,253,141,1,151,154,156,169,102,55,122,197,138,171,156,128,81,145,82,193,102,68,122,138,133,251,154,140,86,149,106,223,111,75,126,125,127,186,133,172,137,181,106,75,157,76,159,237,94,251,97,96,118,103,122,14,134,165,154,218,155,49,112,124,126,46,134,64,156,59,134,61,151,54,156,63,156,109,156,101,154,60,0,42,0,160,82,107,78,57,89,61,79,62,89,184,98,115,79,193,98,199,108,4,131,230,143,183,103,224,107,67,109,200,115,201,87,182,91,121,109,194,117,156,104,51,123,30,128,136,136,162,80,51,115,109,132,207,141,140,114,117,129,107,146,9,86,127,146,83,149,216,124,109,140,145,140,181,147,154,158,60,0,42,0,63,87,230,95,116,98,207,144,90,131,223,144,10,85,93,96,162,131,27,98,215,148,30,98,241,134,204,136,138,152,250,134,242,141,4,153,207,146,44,152,48,152,54,157,74,157,60,0,42,0,50,117,172,92,190,115,219,128,154,101,62,141,190,148,71,80,125,90,166,95,157,101,53,105,200,140,64,146,142,105,218,105,21,118,159,106,60,0,42,0,247,78,126,154,182,103,193,90,79,94,162,105,249,80,60,122,213,153,60,0,42,0,11,98,120,89,22,92,117,94,90,87,124,107,244,149,191,81,20,98,170,115,169,128,112,130,230,89,231,89,124,81,209,118,5,88,228,96,15,115,58,123,197,131,250,131,92,140,84,110,75,114,141,114,4,127,76,132,147,149,27,100,55,105,62,105,78,113,74,116,119,119,138,120,35,127,185,132,99,140,227,118,139,123,43,106,158,113,216,125,81,133,115,133,163,156,253,156,99,158,184,113,239,123,17,126,113,130,172,151,48,153,162,153,137,158,16,112,175,151,210,156,177,107,27,121,184,137,115,157,56,112,39,148,252,106,178,107,188,157,192,151,57,156,207,86,67,134,111,148,201,151,60,0,42,0,221,86,227,98,167,103,237,79,236,103,39,131,57,80,56,99,97,99,21,123,207,81,106,82,152,104,192,104,85,110,188,141,63,88,192,99,195,99,28,105,27,110,81,119,119,120,229,136,67,138,15,149,63,95,149,102,80,116,103,123,128,123,120,125,43,140,69,95,41,98,44,98,177,120,9,81,230,127,191,100,162,106,198,133,71,137,73,137,7,139,71,142,188,119,6,121,33,124,109,126,45,139,11,155,14,156,120,158,61,112,18,136,23,148,151,82,123,158,91,124,126,139,122,137,124,158,60,0,42,0,193,137,246,78,139,137,250,94,111,153,81,82,10,109,110,114,80,131,49,141,244,79,101,80,99,82,43,104,167,109,212,115,48,130,113,82,164,95,16,110,184,136,15,140,252,145,203,91,212,101,87,105,253,107,133,110,113,129,246,129,101,132,245,141,206,140,116,146,46,149,237,80,151,105,56,111,42,133,141,82,142,82,185,88,151,111,173,123,203,124,211,138,228,140,157,141,16,142,58,142,146,82,148,82,166,133,235,138,251,146,117,147,30,153,183,119,245,120,0,121,185,135,115,147,246,100,250,111,93,126,51,112,181,137,233,147,102,130,124,139,94,143,49,148,81,148,82,148,108,148,115,148,60,0,42,0,122,106,60,0,42,0,95,108,220,89,6,92,51,131,70,109,85,117,71,140,7,92,65,132,122,117,106,100,222,127,245,80,63,111,128,135,195,88,48,127,145,133,127,106,173,107,191,135,201,156,133,117,19,121,134,117,110,126,193,151,66,156,60,0,42,0,178,139,86,89,104,104,139,80,139,132,104,89,108,89,35,133,243,105,78,115,41,128,153,129,27,139,92,152,60,0,42,0,30,83,32,83,5,89,28,95,77,150,26,109,219,126,54,95,182,136,115,125,113,145,229,82,240,110,121,93,126,100,74,95,159,114,225,124,164,145,232,124,172,145,228,106,61,139,60,0,42,0,98,103,60,0,42,0,125,130,129,130,164,78,202,144,227,89,7,90,231,92,71,109,45,131,46,131,132,154,246,128,18,105,38,113,223,134,228,141,236,80,4,86,96,134,155,156,12,91,149,93,163,93,141,97,134,111,160,129,73,133,203,113,178,129,1,121,90,122,171,155,65,157,106,158,37,124,237,135,71,143,14,148,85,154,230,157,238,157,60,0,42,0,235,129,210,137,124,79,165,79,84,96,34,99,225,114,222,126,122,153,65,99,72,102,196,112,5,123,142,118,235,119,26,129,240,148,5,100,107,110,94,125,127,82,107,101,108,110,77,113,115,129,203,140,229,80,119,100,158,102,11,142,120,146,3,153,12,81,139,82,186,95,159,100,185,100,166,150,188,95,191,97,125,101,127,101,222,113,52,127,210,102,172,116,239,119,166,118,220,135,115,126,81,139,66,91,144,126,42,101,90,112,78,156,60,0,42,0,235,83,76,84,228,92,13,99,6,138,211,115,140,122,127,143,131,143,78,101,89,101,150,122,216,110,3,143,2,86,38,86,160,101,22,111,117,145,77,86,160,93,80,111,109,86,19,91,101,115,224,133,173,141,78,143,174,145,101,139,173,118,194,145,60,0,42,0,100,157,245,106,60,0,42,0,54,150,150,117,134,118,165,99,178,99,206,117,248,121,232,131,142,150,136,85,188,85,223,85,38,88,152,90,197,90,237,99,4,105,93,110,59,129,87,136,111,113,45,122,130,151,209,100,84,135,100,118,47,139,155,157,60,0,42,0,105,83,106,83,81,91,16,92,130,130,166,139,38,82,39,82,171,82,138,92,5,102,60,82,188,82,112,103,140,117,113,136,238,98,1,109,211,126,252,143,34,80,64,104,93,104,173,131,16,138,124,80,85,90,40,93,119,99,182,99,186,136,145,80,171,90,80,125,92,125,137,152,101,93,108,105,118,105,208,110,107,119,192,123,16,135,77,135,112,138,99,146,93,155,42,98,164,105,163,120,237,122,245,132,146,156,84,111,175,127,177,138,21,142,138,151,111,94,187,93,238,100,13,121,123,147,154,155,192,93,237,106,30,136,24,136,61,136,60,0,42,0,208,89,209,107,142,90,227,137,231,137,247,152,158,106,60,0,42,0,47,78,203,78,36,84,149,92,142,94,18,98,165,130,70,92,74,92,160,115,76,117,77,117,165,117,14,120,120,136,235,139,31,80,136,96,167,134,163,95,58,88,80,105,62,116,246,134,177,154,151,114,161,138,47,137,106,155,133,147,60,0,42,0,254,93,202,78,164,101,133,148,83,81,209,145,210,145,37,109,220,119,27,120,85,131,127,136,212,137,208,87,210,115,221,119,31,125,205,96,59,88,59,116,75,123,255,145,156,93,118,158,197,158,95,137,60,0,42,0,197,78,61,92,173,79,122,83,249,93,39,125,7,88,235,131,197,80,170,83,40,140,38,149,228,90,209,94,12,111,225,118,202,125,243,132,145,153,255,105,126,116,24,81,38,147,57,139,73,153,60,0,42,0,18,79,164,82,178,82,151,89,209,143,219,143,131,103,193,82,85,109,105,131,73,102,75,102,120,109,236,112,70,141,43,85,14,116,114,121,50,144,97,113,214,91,34,100,141,110,129,121,25,127,115,151,144,88,104,116,248,80,218,81,79,107,163,107,161,116,208,137,100,86,197,111,9,126,238,140,141,86,215,88,39,91,220,111,206,133,252,113,182,116,178,137,16,141,125,159,60,0,42,0,85,87,89,87,224,93,172,78,254,108,207,126,14,131,176,78,212,121,70,131,74,131,135,109,150,131,91,90,202,96,204,101,205,101,4,115,76,125,193,131,118,102,9,122,72,129,79,132,91,119,179,124,147,125,98,81,190,124,89,128,120,106,184,156,91,157,232,155,129,157,132,157,150,158,49,159,90,154,160,158,60,0,42,0,149,78,60,78,49,150,45,82,83,87,145,91,107,108,108,108,188,128,68,82,125,122,136,152,111,102,6,81,26,152,92,94,172,97,132,116,188,97,187,102,159,116,165,116,56,152,252,135,102,139,60,0,42,0,140,89,192,81,42,95,132,95,243,143,211,79,89,90,68,109,235,128,30,80,200,81,51,95,145,95,201,117,222,122,21,144,103,90,113,104,183,104,232,109,235,122,27,129,223,122,108,101,217,117,231,122,83,151,185,80,86,151,131,88,77,115,169,138,1,142,89,151,90,151,212,102,92,149,92,151,30,112,225,147,246,122,248,122,60,0,42,0,221,113,60,0,42,0,130,81,139,81,112,87,67,98,219,87,69,125,201,153,235,153,15,134,20,134,60,0,42,0,143,81,231,86,194,108,133,112,229,143,176,79,175,112,8,144,123,109,241,112,90,113,152,122,142,152,151,125,210,80,91,113,178,113,131,111,219,113,39,137,60,0,42,0,41,78,252,82,160,126,59,103,94,114,118,122,250,124,32,158,254,124,115,141,4,150,27,132,126,85,194,99,234,99,235,99,233,156,78,100,27,106,15,155,46,155,60,0,42,0,93,78,69,78,70,78,99,78,122,89,99,108,102,103,120,112,150,115,15,130,237,151,36,125,82,145,121,149,238,151,60,0,42,0,27,83,231,101,252,129,142,84,154,117,233,103,254,103,3,80,68,99,85,104,19,83,169,83,81,101,49,92,196,94,208,94,5,130,230,80,207,94,102,97,167,107,10,130,107,158,54,83,230,155,148,158,13,107,104,159,242,157,60,0,42,0,229,81,133,98,10,83,69,92,216,98,195,108,217,114,244,130,121,154,54,99,189,117,192,117,23,119,32,120,93,127,113,150,53,90,110,90,12,93,172,99,174,104,186,109,249,131,16,105,26,116,82,129,132,141,212,141,20,149,254,136,206,150,77,130,27,135,202,138,24,142,230,146,210,153,136,155,33,157,160,151,171,151,139,157,60,0,42,0,64,92,230,108,183,79,202,114,84,104,233,107,121,85,69,90,215,109,23,113,202,131,249,144,8,105,241,107,104,110,145,114,2,143,234,80,183,124,252,141,176,149,156,141,185,142,88,106,139,106,246,153,89,157,107,142,116,157,200,93,28,134,170,157,48,159,51,159,103,154,60,0,42,0,128,84,6,95,174,108,62,78,233,119,146,131,25,99,7,105,101,123,137,105,152,105,159,132,131,159,101,128,9,130,61,142,231,100,248,106,95,159,5,107,119,137,60,0,42,0,232,93,229,83,108,78,234,93,181,139,214,89,160,92,7,96,210,98,48,109,227,130,173,144,119,81,16,96,26,96,224,98,27,102,107,107,172,112,236,121,156,148,241,79,40,80,54,80,163,81,103,82,229,112,148,124,31,128,183,134,147,136,231,87,254,87,231,96,110,99,78,138,221,141,139,114,217,141,69,146,211,152,97,134,102,140,47,149,224,91,51,97,173,122,90,128,207,153,135,82,238,82,102,92,30,142,148,155,201,88,197,97,218,100,189,111,182,122,125,144,248,146,104,92,182,152,151,140,52,124,134,142,181,145,252,97,59,148,60,0,42,0,32,114,60,0,42,0,226,89,31,90,80,99,147,109,6,113,249,116,39,129,208,136,67,158,236,82,76,149,184,147,81,157,43,148,50,136,60,0,42,0,119,83,95,84,35,94,205,87,114,99,228,131,41,149,199,129,8,147,60,0,42,0,70,89,181,82,251,93,38,80,204,82,74,104,247,114,226,126,189,150,195,109,55,119,4,145,74,119,109,125,101,127,203,150,96,119,121,125,236,152,123,97,40,133,11,153,103,115,51,126,130,127,60,0,42,0,88,86,133,100,167,100,105,92,123,142,60,0,42,0,133,78,82,91,83,91,179,81,20,82,18,108,192,139,33,95,137,98,122,108,181,130,236,108,166,115,168,115,23,99,207,115,166,117,4,120,221,126,115,134,201,137,20,80,84,99,46,107,151,134,27,93,152,99,141,101,119,104,140,107,144,137,214,137,35,138,125,141,185,141,43,144,149,80,165,83,51,113,85,125,118,125,154,137,137,141,12,146,130,82,234,82,116,116,50,140,195,153,165,93,176,97,166,113,52,114,87,115,26,118,93,133,104,133,2,157,3,157,113,86,160,97,91,106,92,106,53,114,196,129,98,149,232,135,233,135,107,92,17,114,78,139,118,142,119,142,140,157,55,83,188,86,205,119,186,137,13,148,29,148,77,112,29,114,252,137,79,95,4,98,43,101,131,115,226,157,20,107,225,119,163,159,156,140,169,142,129,148,60,0,42,0,155,81,27,84,71,87,110,108,240,89,128,136,205,142,167,148,153,131,144,134,126,104,178,118,204,131,30,146,133,120,184,118,185,118,160,137,129,146,158,146,170,156,135,158,85,147,182,155,143,158,149,158,60,0,42,0,65,84,202,79,225,144,86,150,200,87,251,92,67,99,90,109,130,153,143,154,89,102,12,113,250,115,222,104,111,117,227,122,1,81,152,123,159,123,32,135,239,91,207,97,21,153,199,113,236,111,255,153,84,157,85,157,88,157,8,101,31,101,60,0,39,0,208,253,75,0,39,0,60,0,42,0,148,84,150,84,128,85,73,136,214,100,60,0,42,0,97,83,103,79,176,87,233,128,195,136,114,146,60,0,42,0,0,95,82,89,233,99,14,149,139,149,38,148,60,0,42,0,239,81,64,82,178,87,122,96,255,149,224,148,241,81,116,82,5,86,104,97,136,132,79,88,102,93,55,97,119,105,6,143,159,102,52,149,71,147,167,147,211,149,189,152,60,0,42,0,254,95,140,112,143,112,44,107,215,112,211,82,18,97,62,97,142,147,60,0,42,0,10,82,30,104,216,82,155,159,42,88,65,93,33,98,149,159,60,0,42,0,154,81,78,87,131,79,13,120,176,131,88,80,243,87,194,96,63,107,106,88,65,107,219,105,33,143,187,106,81,152,247,122,87,143,60,0,42,0,11,119,78,136,1,93,136,88,176,119,225,120,222,149,217,119,60,0,42,0,252,95,246,149,10,120,135,124,183,94,221,90,123,93,119,97,46,111,250,105,69,122,224,124,191,142,238,147,71,156,60,0,42,0,91,98,67,100,60,0,42,0,162,78,9,79,31,83,159,144,229,86,151,98,186,114,149,112,170,148,39,146,140,149,60,0,42,0,59,92,219,154,60,0,42,0,2,78,55,101,3,128,247,98,24,109,50,104,228,112,60,0,42,0,208,148,146,114,172,146,147,156,96,151,179,155,204,155,60,0,42,0,60,83,219,130,239,103,65,114,194,115,209,121,226,128,114,143,180,117,34,120,183,141,182,148,89,93,245,104,42,132,251,142,143,152,209,85,21,100,144,114,30,122,160,122,51,146,188,105,150,133,151,152,22,106,140,119,213,120,76,135,18,147,152,145,70,152,193,154,26,121,60,0,42,0,243,88,226,99,188,107,215,127,60,0,42,0,239,83,119,87,162,92,163,112,7,110,81,93,100,101,52,110,177,93,60,0,42,0,75,81,59,82,192,82,202,82,162,91,106,96,20,90,5,92,254,139,1,88,42,108,146,154,2,127,25,97,152,110,30,149,166,120,217,125,80,130,178,138,10,121,13,154,60,0,42,0,75,82,60,0,42,0,142,128,175,128,187,128,166,87,115,96,67,85,100,140,136,159,190,88,57,147,199,97,102,159,60,0,42,0,175,99,201,136,3,137,60,0,42,0,165,82,44,150,45,84,81,87,148,89,51,99,65,120,124,114,92,120,255,148,123,120,124,100,153,138,181,146,94,147,215,147,60,0,42,0,122,122,37,80,234,87,6,93,190,96,179,109,127,120,156,123,187,142,19,147,124,157,60,0,42,0,84,91,80,96,60,0,42,0,167,99,154,151,60,0,42,0,160,98,164,130,13,119,126,82,68,95,115,100,152,119,60,0,42,0,227,83,182,82,60,0,42,0,233,83,99,98,66,101,166,81,188,91,199,91,230,145,155,122,88,123,241,110,50,133,59,133,137,119,6,124,199,157,60,0,42,0,93,98,51,82,251,119,192,144,175,103,237,84,77,104,0,88,43,93,16,87,205,141,159,122,183,154,172,155,60,0,42,0,220,114,230,130,60,0,42,0,147,94,200,79,212,126,171,94,217,121,182,141,5,113,180,136,190,85,93,125,228,136,20,118,119,145,228,94,50,137,179,86,60,0,42,0,56,89,241,89,63,130,135,138,60,0,42,0,137,79,181,84,174,87,153,146,60,0,42,0,14,99,239,128,232,141,187,154,60,0,42,0,175,132,211,100,60,0,42,0,220,93,247,81,38,87,87,87,235,95,169,79,208,144,217,84,239,114,13,129,74,88,119,123,153,156,8,81,164,88,54,145,114,86,229,94,106,115,190,129,221,101,233,124,96,156,60,0,42,0,189,91,219,91,236,91,215,129,203,154,103,148,214,154,60,0,42,0,53,107,62,107,64,107,189,122,190,122,60,0,42,0,33,83,187,82,211,139,188,144,41,83,208,84,71,96,45,109,70,104,68,120,80,123,122,123,134,138,237,142,60,0,42,0,249,95,130,98,194,114,197,114,243,139,214,142,224,142,145,138,95,157,60,0,42,0,60,89,35,81,237,97,60,0,42,0,93,83,157,144,57,87,169,126,181,81,247,101,178,92,193,108,255,119,63,102,54,141,22,119,63,120,54,119,75,125,86,125,186,140,230,142,113,146,219,146,58,145,217,88,203,158,236,97,224,102,12,114,204,119,38,121,108,122,138,126,91,148,60,0,42,0,143,78,50,82,191,92,157,96,212,118,165,122,103,128,186,122,103,134,93,152,218,149,203,93,44,134,60,0,42,0,78,89,70,102,53,144,8,145,151,150,4,152,151,153,185,85,198,99,117,132,153,154,35,98,140,102,79,105,81,105,65,155,125,119,112,135,47,152,198,106,200,133,104,147,119,147,36,154,20,89,55,134,217,93,65,134,170,114,168,142,60,0,42,0,67,113,236,141,13,152,94,142,60,0,42,0,47,92,46,83,51,107,159,85,191,90,38,97,39,97,131,110,67,129,137,132,136,153,134,119,51,86,7,91,146,97,112,111,209,123,105,128,109,128,98,133,59,106,9,139,61,153,35,124,117,128,68,124,0,148,75,153,78,148,60,0,42,0,100,87,6,102,3,88,18,88,107,90,16,93,17,93,92,102,17,115,206,131,200,136,28,113,40,116,224,154,233,136,135,140,31,149,225,154,77,158,73,111,43,135,12,137,232,154,180,113,123,116,140,145,21,147,178,156,9,154,228,155,126,157,164,157,60,0,42,0,131,96,70,99,3,150,248,88,177,104,117,121,113,120,7,122,205,136,252,88,27,122,145,125,171,149,184,149,60,0,42,0,240,86,131,109,79,119,60,0,42,0,33,92,60,0,42,0,105,98,225,98,236,98,4,99,112,104,72,123,63,132,64,132,222,134,20,150,211,94,34,152,250,154,244,100,246,111,202,149,159,151,213,151,214,97,41,151,185,151,32,155,60,0,39,0,208,253,76,0,39,0,60,0,42,0,131,87,201,98,198,103,203,127,200,131,26,100,139,144,60,0,42,0,239,101,76,82,44,120,230,99,214,120,185,86,60,0,42,0,135,85,222,133,60,0,42,0,130,110,74,129,231,99,75,105,12,118,33,135,75,135,162,143,163,143,114,135,200,129,11,101,9,114,216,129,14,155,206,116,116,149,251,155,31,136,94,148,60,0,42,0,102,85,161,151,60,0,42,0,101,103,134,79,235,79,8,80,3,93,149,95,158,109,177,131,242,144,97,90,13,93,178,94,160,95,190,104,246,109,13,115,10,132,40,144,246,104,28,116,89,123,252,148,130,123,56,147,11,154,224,155,134,157,179,158,60,0,42,0,59,85,73,141,80,119,94,119,86,141,218,140,209,111,244,140,60,152,66,152,94,118,99,157,40,112,44,112,65,124,254,133,244,106,105,118,112,137,95,124,60,0,42,0,112,81,154,92,230,98,15,104,106,90,207,96,80,93,123,132,17,150,221,132,48,140,177,83,156,111,52,137,22,81,147,101,238,123,226,97,227,113,247,113,205,133,85,137,103,149,204,149,188,116,100,137,75,139,113,94,20,101,62,112,70,112,67,124,127,126,45,134,149,101,4,107,55,121,116,137,210,86,97,112,99,124,23,107,149,139,157,142,125,137,132,148,202,151,60,0,42,0,200,137,104,109,253,99,6,127,132,105,36,111,113,127,130,145,200,88,210,97,167,137,229,100,62,91,246,97,68,91,189,137,79,91,44,101,96,112,213,86,22,107,38,114,114,152,156,126,60,0,42,0,194,112,229,110,215,113,130,86,235,111,1,114,27,114,211,116,36,114,109,148,247,124,60,0,42,0,119,85,60,0,42,0,198,82,206,144,222,144,52,107,252,114,6,150,207,90,202,94,143,101,121,104,5,116,200,132,148,105,111,116,96,120,2,122,18,149,100,123,70,130,11,135,210,144,130,135,180,142,195,146,175,147,250,153,60,0,42,0,23,103,22,103,250,112,113,88,226,132,3,106,143,138,36,103,60,0,42,0,204,87,0,93,106,109,168,131,151,132,172,149,60,0,42,0,37,85,60,0,42,0,94,99,169,124,136,100,60,0,42,0,179,82,180,82,98,114,130,122,240,84,32,85,2,93,118,109,222,82,232,117,249,148,215,80,46,86,151,93,165,97,37,103,70,118,241,120,41,124,231,135,170,145,18,148,95,152,221,154,60,0,42,0,2,128,1,128,108,79,190,84,229,89,69,96,235,114,86,131,51,104,239,115,83,120,209,148,239,134,160,146,102,111,81,106,177,155,81,143,60,0,42,0,157,109,217,112,224,85,34,128,106,145,234,90,166,97,135,111,188,142,111,106,46,128,194,142,60,0,42,0,139,128,60,0,42,0,194,78,30,150,80,78,251,83,199,95,80,98,59,108,123,130,143,115,208,108,251,122,51,120,125,105,247,151,2,106,21,124,211,156,51,156,60,0,42,0,134,78,121,153,14,153,60,0,42,0,210,82,60,0,42,0,247,150,216,90,39,127,2,133,126,117,194,100,145,106,50,126,12,121,109,149,209,106,195,116,184,127,39,121,141,126,77,127,50,134,51,148,96,143,61,81,232,88,88,148,65,151,70,134,105,156,25,107,157,126,58,159,60,0,42,0,189,83,18,128,212,139,146,87,65,88,107,125,66,129,171,80,132,138,15,106,202,120,76,133,229,120,126,133,33,81,216,88,87,118,223,133,208,106,203,119,40,121,69,112,29,136,61,134,132,139,120,148,19,158,60,0,42,0,234,108,33,109,123,124,153,109,218,109,47,125,121,145,135,146,27,152,42,152,17,147,2,101,163,152,94,152,135,126,49,134,183,121,60,0,42,0,30,86,60,0,42,0,26,93,68,88,241,104,94,105,144,120,28,122,24,143,144,133,60,0,42,0,183,81,60,0,42,0,48,80,14,88,35,97,86,119,28,142,60,0,42,0,233,84,60,0,42,0,21,82,93,103,152,83,83,82,248,114,187,121,114,131,138,154,161,96,168,104,169,104,184,104,129,114,13,116,222,131,177,85,195,104,130,114,66,158,122,82,19,111,93,119,99,123,33,127,67,130,224,132,10,135,224,90,119,91,6,106,131,116,224,118,240,122,141,140,206,124,62,133,53,137,235,146,161,156,206,158,241,123,45,126,121,127,5,147,205,135,39,139,168,145,159,86,220,133,140,144,226,150,207,155,132,101,200,116,235,147,236,155,121,157,231,158,196,86,85,112,58,134,33,136,43,136,75,91,242,94,153,82,87,148,114,122,108,124,154,126,106,154,122,156,29,158,60,0,42,0,60,121,78,103,204,145,218,79,219,92,226,92,12,90,242,92,108,109,38,144,6,116,225,136,2,149,180,124,207,136,74,140,240,146,164,156,99,81,167,111,174,121,201,155,248,135,180,145,226,156,144,144,103,156,26,107,60,0,42,0,155,82,134,83,137,83,116,92,203,122,15,84,56,103,61,78,41,82,177,82,86,84,92,87,165,108,200,130,139,79,166,92,62,98,165,103,180,108,160,117,217,130,182,150,208,79,234,79,3,104,14,104,172,117,5,120,24,131,84,131,114,141,121,143,230,144,14,85,51,90,167,96,23,104,27,104,150,109,1,115,213,115,58,120,62,120,221,121,133,131,137,131,51,85,111,90,183,96,32,123,146,124,157,124,55,129,184,134,206,134,136,80,211,81,164,83,217,104,226,117,224,134,72,138,222,141,243,150,175,83,91,88,68,97,46,100,167,110,154,132,158,132,93,146,232,156,178,83,166,102,116,107,110,116,159,125,39,135,119,135,245,82,198,102,119,107,229,123,183,150,23,157,193,93,170,106,255,111,88,118,255,120,184,150,1,155,46,81,222,102,212,106,4,114,161,114,178,121,7,136,152,147,166,86,226,88,10,101,223,106,29,112,197,116,42,121,246,133,151,158,234,106,15,114,209,116,170,118,237,118,43,121,242,124,35,136,55,81,103,118,48,121,72,145,197,157,156,158,199,86,38,101,251,137,146,142,60,0,42,0,98,143,16,107,136,139,99,143,45,101,229,116,66,151,113,156,115,156,75,151,60,0,42,0,233,79,6,80,60,0,42,0,65,89,222,143,24,94,28,96,159,109,178,131,35,144,191,104,84,128,226,136,183,78,249,85,201,94,105,97,147,110,35,111,238,132,50,83,105,89,228,105,145,113,157,137,134,82,51,83,82,86,254,90,144,97,207,120,104,128,107,128,51,137,162,156,194,111,211,111,58,126,244,127,110,128,149,133,138,135,227,106,235,113,111,128,193,129,48,139,101,142,140,147,112,149,62,124,10,136,17,155,46,148,49,156,98,124,104,124,60,0,42,0,91,101,15,116,56,129,227,136,89,100,137,116,57,133,26,91,130,101,201,129,59,145,93,137,183,127,29,134,30,134,60,0,42,0,195,126,188,112,75,96,112,109,147,107,198,80,28,88,161,90,69,110,48,132,254,148,93,105,73,113,83,116,75,111,244,125,176,111,44,147,174,107,74,147,200,147,50,112,10,156,0,98,158,126,60,0,42,0,111,130,205,79,201,81,129,104,188,109,11,105,140,143,174,124,177,124,154,88,161,125,9,142,17,106,44,143,231,124,60,0,42,0,33,78,36,78,105,81,33,85,98,85,154,99,60,129,242,136,201,125,61,135,73,155,78,155,60,0,42,0,174,78,244,84,162,96,5,140,134,143,168,85,126,102,120,110,207,145,12,143,210,138,27,143,68,147,60,0,42,0,119,113,23,124,60,0,42,0,169,100,125,142,60,0,42,0,189,143,151,117,74,128,218,80,229,91,122,93,128,97,59,111,139,129,57,86,253,90,238,91,154,93,155,93,121,101,96,115,45,127,124,144,184,102,206,113,153,116,171,129,66,118,194,122,105,158,106,92,235,94,29,124,90,126,223,135,66,140,255,140,88,142,14,114,16,148,206,154,212,133,201,152,239,157,60,0,42,0,254,83,140,148,213,145,29,145,252,132,173,97,226,102,125,149,18,114,60,0,42,0,37,92,38,92,147,112,153,101,30,92,214,94,130,100,183,122,173,119,99,149,60,0,42,0,223,107,167,84,24,99,60,0,42,0,23,82,163,82,189,81,189,82,244,89,18,99,12,109,34,131,254,143,247,84,210,87,211,87,53,104,86,109,200,112,238,112,105,99,14,115,31,115,31,129,218,134,194,136,109,113,89,119,87,128,148,141,228,93,178,152,32,81,164,155,55,157,248,100,117,115,163,114,144,142,27,155,35,155,114,156,60,0,42,0,206,98,60,0,42,0,184,83,187,144,151,103,52,78,167,81,73,85,10,93,203,109,125,102,51,116,166,124,243,117,132,120,150,123,188,124,48,145,163,150,153,93,126,111,92,115,116,144,180,101,189,102,208,113,152,116,154,143,22,151,181,119,247,120,232,129,87,126,247,127,144,158,84,143,227,88,54,112,251,147,222,156,78,154,87,156,159,158,60,0,42,0,251,131,131,78,219,81,220,81,155,100,233,94,234,94,205,97,212,97,159,111,129,106,169,106,91,118,93,118,60,0,42,0,29,84,97,96,139,96,65,141,27,113,195,140,239,80,58,133,73,106,16,117,166,129,181,149,132,117,250,133,120,142,143,142,153,142,170,142,101,143,60,0,42,0,7,48,54,79,34,82,117,112,249,86,125,87,12,89,200,89,186,92,126,95,224,108,209,114,211,130,36,102,14,103,195,103,178,115,244,116,204,81,138,118,49,120,226,121,219,122,195,148,117,150,48,158,72,90,149,99,194,104,233,109,12,116,45,123,55,125,235,126,154,127,206,127,70,128,50,130,241,131,201,134,81,136,126,121,69,138,201,141,232,142,228,132,236,136,52,146,157,149,246,150,132,159,190,125,6,133,10,151,214,153,170,111,118,133,2,147,23,151,127,155,174,156,18,157,119,158,239,113,27,151,29,151,98,159,67,145,234,155,65,91,38,134,97,159,250,106,189,145,72,151,30,107,39,114,162,158,151,159,60,0,42,0,62,150,173,92,138,136,134,152,24,152,186,93,60,0,42,0,228,78,230,83,100,84,169,112,60,0,42,0,46,112,60,0,42,0,156,110,152,113,83,142,60,0,42,0,24,82,160,108,68,117,79,109,65,109,89,117,200,101,9,116,113,117,107,120,215,136,185,90,103,93,210,101,165,132,197,132,91,144,143,153,157,154,180,105,96,116,215,152,137,82,108,116,36,118,194,120,79,149,224,153,96,158,74,106,162,116,129,117,96,149,69,118,201,135,245,153,160,86,240,97,15,112,240,133,143,147,166,147,141,158,208,147,192,152,2,148,46,154,197,152,33,156,185,157,81,154,60,0,42,0,243,103,1,104,94,104,203,115,122,104,250,126,13,149,90,146,185,125,174,113,118,127,246,146,110,106,60,91,128,127,60,0,42,0,109,81,66,117,207,127,111,88,199,94,145,111,223,120,104,158,36,151,62,153,225,150,194,152,56,155,218,157,60,0,42,0,214,86,60,0,42,0,153,159,120,92,153,84,247,108,15,131,61,102,10,104,209,115,231,128,44,119,59,120,220,122,60,123,75,128,134,150,112,110,221,110,144,93,222,105,11,111,111,133,67,118,191,122,237,123,141,159,168,86,195,93,196,93,39,112,34,134,231,147,51,151,232,102,39,103,243,106,22,114,207,116,211,119,49,121,50,121,113,137,146,159,96,124,126,128,42,136,44,136,69,140,152,142,104,148,71,151,97,154,23,158,60,0,42,0,71,150,132,87,133,87,226,98,226,123,49,81,180,150,223,88,224,88,15,101,201,122,147,159,60,0,42,0,226,84,135,104,191,95,26,141,60,0,42,0,156,119,60,0,42,0,69,82,4,90,123,80,65,90,189,85,135,110,140,132,194,80,124,105,13,86,212,94,122,97,10,111,30,133,113,144,19,106,161,113,39,128,124,135,44,128,91,130,187,135,49,139,193,142,197,154,187,151,207,154,60,0,42,0,93,93,2,100,127,88,129,93,95,100,10,117,211,123,13,124,60,0,42,0,75,150,90,92,15,111,24,118,66,149,58,118,59,118,228,147,60,0,42,0,92,86,184,100,34,139,60,0,42,0,98,83,144,94,166,130,134,87,166,103,248,108,137,112,12,104,234,128,115,143,46,130,44,158,136,115,59,130,133,152,41,146,136,156,114,155,231,118,167,86,218,88,236,94,14,101,24,112,121,115,183,116,6,134,229,102,232,106,16,114,208,116,218,129,209,119,90,124,145,126,79,127,107,130,38,136,100,143,106,148,113,152,215,154,120,156,21,158,248,158,60,0,42,0,100,83,79,134,179,99,117,158,117,120,129,156,92,134,119,88,247,110,254,132,16,106,155,111,111,155,196,100,121,106,224,120,101,149,149,86,252,100,2,112,211,106,12,108,99,130,192,147,106,130,42,148,101,148,60,0,42,0,37,87,42,117,70,150,147,79,116,87,84,95,85,95,205,92,206,82,66,141,130,143,120,150,61,90,213,109,229,109,12,110,73,120,201,131,47,144,127,158,2,105,45,116,132,121,127,121,199,80,121,82,224,82,221,118,105,119,140,120,17,122,194,140,239,141,118,88,216,94,93,100,9,111,147,123,182,124,13,133,46,98,26,106,157,113,148,129,238,137,162,141,27,142,152,143,129,145,94,111,75,122,87,133,4,147,50,147,52,147,144,116,15,124,176,135,54,124,87,142,70,143,4,154,109,158,44,124,53,124,213,147,229,155,102,157,113,157,147,158,244,147,50,151,60,154,89,124,66,134,250,157,60,0,42,0,7,108,60,0,42,0,116,154,254,149,136,105,173,149,191,153,0,108,162,129,218,106,216,133,220,157,98,154,60,0,42,0,21,84,66,84,163,79,216,144,182,79,20,99,91,99,75,99,197,101,160,104,18,113,99,121,6,122,221,148,97,92,125,125,21,127,98,92,130,129,27,137,193,146,101,92,144,129,56,137,34,81,94,122,55,126,109,122,60,0,42,0,253,91,143,87,139,95,81,134,135,115,255,126,66,93,47,108,78,132,228,110,160,125,209,125,110,97,187,123,159,129,244,82,66,126,254,111,214,106,8,114,98,148,60,0,42,0,8,90,106,91,230,92,27,99,62,104,62,158,20,129,230,110,174,146,73,157,29,87,113,89,76,91,127,91,210,93,35,101,235,102,18,107,83,112,137,127,224,129,30,87,100,112,74,134,126,148,116,118,117,118,30,158,60,0,42,0,117,83,60,0,42,0,113,78,224,145,130,78,60,0,42,0,160,99,101,117,103,117,10,149,36,122,25,87,221,146,226,146,253,100,60,0,42,0,161,98,132,99,60,0,42,0,209,78,38,79,245,86,166,108,182,126,150,79,110,143,43,80,111,150,7,87,104,90,24,93,25,93,192,96,234,109,213,131,198,104,64,129,184,125,38,135,26,142,42,143,238,120,0,147,233,155,60,0,42,0,232,87,150,120,16,122,35,128,60,0,42,0,186,139,163,110,214,138,60,0,42,0,87,127,112,85,49,152,201,86,60,0,42,0,86,127,33,115,54,129,29,132,59,144,36,105,97,129,153,137,35,149,169,123,161,154,89,149,186,135,133,127,182,137,205,147,56,81,188,137,62,154,30,101,128,115,63,134,143,144,15,107,88,154,1,158,110,124,124,148,96,153,60,0,42,0,70,82,46,80,207,132,248,136,182,142,48,118,3,136,221,129,234,102,115,118,60,0,42,0,250,108,200,92,27,109,220,126,102,131,134,154,28,109,222,115,102,120,63,123,97,125,61,132,94,100,47,111,150,114,123,146,210,150,241,153,165,155,60,157,69,157,252,111,153,126,60,0,39,0,208,253,77,0,39,0,60,0,42,0,99,84,60,0,42,0,136,89,86,91,189,90,36,91,55,91,60,0,42,0,187,158,242,117,52,133,152,114,198,135,199,135,60,0,42,0,108,154,155,115,1,120,130,134,172,153,164,110,100,144,106,116,188,120,158,135,183,147,34,156,204,157,60,0,42,0,184,114,105,103,67,121,129,149,130,154,27,85,140,80,65,115,112,119,28,86,170,105,161,121,117,127,225,153,35,121,21,155,60,0,42,0,135,78,23,84,206,85,27,86,242,90,60,0,42,0,203,87,182,133,62,151,60,0,42,0,112,78,108,131,183,140,42,86,82,133,246,157,60,0,42,0,162,82,200,143,69,79,242,88,166,158,86,83,9,129,8,129,165,158,71,136,241,82,227,140,129,144,33,151,34,151,60,0,42,0,218,90,159,152,60,0,42,0,207,89,151,96,238,134,200,80,41,140,114,97,146,153,32,106,146,119,158,119,148,151,82,142,62,139,69,153,215,156,98,152,23,155,24,155,59,156,59,136,60,0,42,0,88,92,128,110,76,119,225,110,255,110,168,135,84,137,206,135,203,147,213,119,60,0,42,0,252,102,36,145,129,88,84,94,98,97,113,100,43,111,76,115,38,127,4,133,19,133,254,105,179,113,183,111,88,149,53,126,221,147,48,134,60,0,42,0,100,114,60,0,42,0,153,144,2,84,217,95,82,108,146,130,40,92,87,103,103,103,19,108,242,118,126,96,0,123,43,131,228,84,15,90,172,94,93,109,245,114,123,114,109,120,239,145,211,148,221,117,214,134,233,146,249,153,60,0,42,0,189,131,190,131,101,120,59,131,254,88,45,111,210,135,14,136,60,0,42,0,43,115,147,140,60,0,42,0,219,107,219,119,134,103,102,114,5,131,6,131,196,101,94,127,94,81,53,110,222,142,85,145,37,88,26,149,230,154,2,108,155,114,101,135,243,154,40,147,202,135,156,157,60,0,42,0,135,81,111,83,24,89,110,78,60,98,193,92,214,108,52,102,198,148,55,123,233,132,60,0,42,0,131,81,131,118,188,130,144,81,2,131,146,81,213,103,10,119,56,141,4,128,164,136,146,137,162,90,61,94,58,132,191,140,26,145,23,97,147,102,89,105,247,107,65,116,128,119,140,140,46,145,80,135,203,97,60,0,42,0,146,86,60,0,42,0,72,78,188,158,249,111,156,86,102,118,60,0,42,0,69,84,70,87,146,108,161,108,154,103,171,115,250,130,2,104,9,119,18,90,4,129,147,131,133,104,251,115,34,129,255,144,51,88,146,90,75,93,68,110,72,110,56,115,66,119,127,132,99,105,115,105,100,113,66,116,150,121,92,129,122,88,209,105,118,145,69,149,91,158,194,146,9,151,72,122,190,95,135,147,192,119,23,101,42,134,165,157,244,158,60,0,42,0,206,107,207,107,194,81,142,127,52,99,124,109,132,90,68,93,60,110,186,90,65,149,13,91,216,113,190,142,130,147,227,158,60,0,42,0,185,89,186,98,172,108,192,101,39,102,89,121,130,136,27,119,154,90,208,91,215,117,202,141,61,155,93,113,120,119,206,151,69,155,195,123,94,135,60,0,42,0,26,105,60,0,42,0,232,149,106,98,167,115,148,148,128,149,133,149,107,99,219,131,138,116,70,147,185,78,75,134,60,0,42,0,247,149,22,113,182,96,170,102,220,113,209,97,227,97,60,0,42,0,236,78,17,80,60,0,42,0,221,100,60,0,42,0,63,117,123,134,161,81,148,131,12,132,149,110,223,118,153,132,13,117,26,81,87,106,162,119,68,133,113,135,51,145,56,145,106,94,222,97,219,111,218,102,38,103,172,106,11,108,199,119,30,121,205,155,114,158,104,130,9,134,210,119,63,151,64,151,91,153,109,152,6,159,15,158,60,0,42,0,208,82,27,115,254,116,48,149,75,130,34,135,220,97,116,115,51,147,245,97,19,136,237,155,60,0,42,0,95,91,166,104,34,89,35,89,37,151,60,0,42,0,185,99,60,0,42,0,170,84,47,119,135,119,60,0,42,0,158,81,37,95,98,121,247,143,174,136,21,115,28,140,190,132,120,138,14,139,154,145,76,95,223,100,220,124,59,126,138,158,139,158,176,121,97,151,48,112,124,115,155,158,126,149,2,98,32,101,213,116,60,134,34,114,190,145,191,145,13,158,196,145,60,0,42,0,115,124,136,130,142,79,181,108,139,127,45,95,35,109,73,101,43,119,142,124,18,129,51,110,94,132,29,133,164,146,212,111,74,91,86,112,60,0,42,0,150,81,248,124,104,108,149,108,147,91,204,108,197,137,218,92,85,121,187,91,216,121,198,91,231,109,147,137,148,137,66,94,39,140,83,88,78,94,155,137,39,86,147,105,245,110,30,111,144,113,36,133,28,135,15,159,170,81,18,106,102,94,215,111,204,133,16,139,193,106,26,124,131,127,60,0,42,0,128,91,135,130,99,103,32,119,66,90,245,126,148,90,201,104,191,125,220,125,241,129,82,135,53,91,176,106,203,106,200,119,202,119,207,119,60,0,42,0,15,78,69,108,77,81,148,108,254,158,201,82,4,119,41,90,109,80,149,81,212,82,17,110,149,85,16,97,78,110,5,127,66,132,123,125,124,129,253,158,236,125,160,111,184,155,60,0,42,0,99,151,98,151,198,124,170,158,171,158,186,158,181,158,60,0,42,0,181,85,60,0,42,0,215,130,140,90,207,99,132,119,75,158,249,90,226,125,147,157,89,156,60,0,42,0,106,103,7,119,210,121,252,109,58,110,8,127,206,123,242,125,208,133,136,144,60,0,42,0,153,89,153,94,133,115,215,122,191,94,223,94,60,0,42,0,92,78,0,84,169,84,246,84,109,91,60,0,42,0,109,112,213,112,149,137,35,100,197,110,17,133,142,133,19,157,109,94,241,97,254,123,215,106,27,136,74,136,86,148,116,156,60,0,42,0,17,108,196,89,183,92,222,95,11,96,251,101,252,101,224,130,201,115,255,118,7,120,96,127,15,93,106,99,24,116,29,116,23,127,73,116,251,117,136,120,49,146,205,125,225,125,9,147,22,157,114,147,60,0,42,0,191,118,186,81,33,82,245,149,191,98,239,108,196,82,67,101,253,149,175,96,79,101,34,123,61,123,253,96,99,110,148,149,13,97,111,101,139,102,169,149,246,80,92,97,171,97,99,111,34,124,216,156,32,136,53,156,60,0,42,0,138,87,60,0,42,0,13,84,14,102,35,158,58,109,0,119,23,131,165,81,25,103,51,119,237,148,13,145,199,90,159,110,61,115,194,132,157,102,160,105,152,146,244,156,145,119,159,135,173,137,60,0,42,0,114,79,243,89,213,81,79,97,105,145,60,0,42,0,125,84,39,105,122,138,60,0,42,0,181,99,60,0,42,0,44,140,44,139,60,0,42,0,120,100,60,0,42,0,133,94,27,92,31,140,235,90,141,153,121,100,33,106,156,129,189,158,105,100,121,155,69,106,232,120,226,124,40,139,41,139,164,86,245,100,67,153,169,86,176,86,17,134,205,154,84,155,152,82,93,153,60,0,42,0,185,98,225,97,60,0,42,0,43,103,176,82,61,87,186,89,19,94,126,107,127,107,129,107,171,108,9,131,76,150,30,94,41,102,186,103,28,85,140,118,28,119,63,119,30,120,227,121,136,131,171,131,61,119,150,124,72,125,80,110,232,134,131,140,252,85,123,88,222,91,32,111,79,115,230,132,138,140,175,102,134,146,122,151,252,90,217,158,60,118,144,119,153,119,70,149,105,155,168,88,216,158,14,112,152,140,230,133,212,135,204,147,5,114,64,154,51,121,134,126,49,128,60,0,42,0,61,96,191,158,60,0,42,0,222,84,60,0,42,0,95,114,148,79,186,82,72,96,32,109,56,119,11,140,209,134,42,127,14,142,126,146,0,139,180,119,70,126,106,147,62,157,176,158,60,0,42,0,208,103,60,0,42,0,234,107,1,108,178,88,60,0,42,0,205,107,169,78,97,114,118,87,198,89,199,98,212,92,115,114,70,117,82,117,223,128,93,117,94,117,42,120,110,117,103,146,7,142,60,0,42,0,40,103,235,78,48,103,238,118,233,81,144,108,199,114,145,112,103,114,220,130,227,107,175,131,158,134,188,148,223,82,238,150,147,88,85,94,89,94,84,97,88,105,102,119,108,146,85,97,174,102,82,130,2,151,70,122,56,126,170,151,60,0,39,0,208,253,78,0,39,0,60,0,42,0,239,85,60,0,42,0,207,98,255,98,16,99,241,85,78,149,191,147,60,0,42,0,120,78,234,84,235,150,60,0,42,0,163,144,54,84,80,84,160,89,179,126,173,128,28,90,114,136,160,148,13,125,166,136,122,99,29,123,125,140,220,142,128,140,9,146,179,132,121,151,118,155,60,0,42,0,73,129,139,113,104,100,123,91,60,0,42,0,67,78,118,89,127,130,22,108,147,117,179,89,252,94,250,143,55,80,226,145,45,91,60,0,42,0,72,89,240,103,15,128,16,128,24,132,63,110,16,159,38,137,154,135,60,147,60,0,42,0,225,86,60,0,42,0,55,117,169,98,143,103,189,79,87,83,223,103,26,90,88,117,174,131,190,150,131,85,86,144,148,102,96,105,245,138,227,150,60,0,42,0,103,141,199,99,115,110,51,132,117,113,105,129,123,135,1,98,60,0,42,0,123,90,60,0,42,0,212,86,60,0,42,0,106,78,162,86,104,139,202,86,48,136,30,155,149,153,28,107,98,153,60,0,42,0,195,100,233,102,46,101,98,112,60,0,42,0,62,81,73,159,60,0,42,0,108,91,60,0,42,0,118,84,19,96,32,99,241,92,71,120,217,148,49,115,242,134,73,138,153,120,147,100,169,93,185,97,239,135,18,89,74,139,3,148,206,93,60,0,42,0,180,87,124,96,169,96,17,129,24,83,51,129,22,88,241,96,208,90,89,116,102,129,175,120,118,115,127,115,60,0,42,0,249,149,101,90,214,109,153,149,39,155,209,129,60,0,42,0,146,117,183,139,144,98,50,119,37,138,60,0,42,0,98,84,60,0,42,0,30,90,129,153,46,129,71,129,18,153,190,155,216,155,60,0,42,0,103,81,133,81,29,108,23,147,60,0,42,0,65,96,233,90,240,90,60,0,42,0,253,128,60,0,42,0,174,89,60,0,42,0,60,92,109,87,41,96,229,108,126,124,42,80,84,92,220,121,243,144,204,148,255,87,87,90,227,109,10,115,173,134,255,104,220,141,93,129,99,128,58,135,236,137,142,140,23,143,19,151,181,156,226,155,145,158,111,159,225,129,60,0,42,0,49,79,96,79,223,98,179,98,212,114,232,130,197,103,206,101,114,102,116,91,46,146,156,153,23,81,30,81,172,150,236,100,191,133,183,106,123,128,60,0,42,0,112,92,60,108,50,79,225,143,53,102,210,128,6,144,63,83,36,119,4,88,196,96,223,90,53,97,186,110,104,119,123,129,177,102,12,126,189,138,169,129,58,91,60,0,42,0,200,98,43,133,60,0,42,0,116,94,202,121,214,84,229,121,135,156,142,155,182,156,71,157,207,158,240,155,60,0,42,0,138,109,123,99,240,109,62,113,200,141,135,143,151,143,154,100,181,100,190,120,38,143,16,124,77,142,6,101,104,142,142,142,60,0,42,0,68,83,255,94,245,95,233,89,56,85,221,87,76,130,60,0,42,0,24,90,34,91,67,91,60,0,42,0,127,145,184,145,192,145,60,0,42,0,31,158,17,131,133,136,229,156,203,90,202,136,38,133,34,106,29,91,45,137,50,91,60,0,42,0,63,92,50,129,60,0,42,0,79,99,209,99,60,0,42,0,246,130,60,0,42,0,7,94,60,87,191,103,103,150,133,109,198,117,66,128,236,129,110,85,215,96,205,131,137,150,166,85,92,101,124,110,235,85,114,93,2,142,91,86,112,100,247,105,23,142,25,142,74,149,77,149,173,93,222,123,242,129,28,147,158,152,81,142,153,86,118,128,179,147,209,149,124,91,125,91,241,106,75,124,22,134,193,86,103,159,213,93,241,124,245,124,37,136,72,148,211,86,152,139,161,142,119,148,115,152,128,148,60,0,42,0,220,86,168,96,60,0,42,0,240,98,60,0,42,0,12,129,60,0,42,0,129,91,155,84,231,98,222,114,231,130,224,103,77,128,205,91,213,91,47,117,215,91,220,91,231,91,28,81,221,81,128,86,35,91,240,100,112,115,180,133,184,106,121,128,79,148,33,155,11,158,60,0,42,0,99,106,195,119,60,0,42,0,94,79,171,79,222,108,63,80,157,111,216,111,60,0,42,0,158,89,60,0,42,0,91,114,92,114,124,108,60,0,42,0,248,95,109,98,195,114,189,126,132,112,174,148,16,125,165,131,21,146,117,151,60,0,42,0,156,81,172,79,221,84,83,109,19,129,254,121,178,143,2,81,179,143,101,86,195,111,125,133,130,106,246,113,175,121,191,129,96,122,91,137,178,145,1,107,60,0,42,0,119,126,60,0,42,0,4,95,10,99,53,99,81,118,72,159,60,0,42,0,186,127,60,0,42,0,66,85,60,0,42,0,200,105,40,128,115,115,189,106,146,147,30,148,115,139,60,0,42,0,116,89,101,91,125,154,47,123,209,153,60,0,42,0,46,79,170,82,41,95,46,120,236,128,60,0,42,0,18,96,137,80,25,100,60,0,42,0,115,89,149,148,121,124,249,145,60,0,42,0,145,108,66,136,103,96,18,103,68,136,60,0,42,0,123,89,60,0,42,0,28,110,150,102,86,113,87,113,42,153,60,0,42,0,159,117,80,134,120,120,39,118,60,0,42,0,193,158,60,0,42,0,205,144,42,99,155,104,169,80,58,81,60,0,42,0,96,106,60,0,42,0,250,139,143,85,191,99,61,144,30,97,38,100,24,149,59,100,146,105,44,122,254,138,67,142,209,124,230,97,231,97,229,124,100,122,239,124,60,0,39,0,208,253,79,0,39,0,60,0,42,0,148,85,98,86,60,0,42,0,230,84,60,0,42,0,180,139,164,108,39,107,180,107,239,116,37,158,125,123,120,88,26,111,80,107,198,107,176,113,12,117,146,129,14,157,217,106,242,133,51,139,194,147,215,157,60,0,42,0,117,159,60,0,42,0,24,84,85,84,118,80,98,129,20,86,38,128,69,133,213,133,60,0,42,0,4,96,106,97,60,0,39,0,208,253,80,0,39,0,60,0,42,0,145,89,133,118,180,141,37,130,106,85,105,132,60,0,42,0,119,103,44,114,177,99,54,116,98,123,86,111,60,0,42,0,10,94,21,94,21,96,153,136,60,0,42,0,205,98,60,0,42,0,243,79,152,95,146,99,5,115,209,104,76,114,43,143,48,124,50,124,164,114,60,0,42,0,249,94,60,0,42,0,204,84,62,109,18,110,67,110,142,132,131,147,60,0,42,0,5,119,104,117,32,132,88,111,0,101,60,0,42,0,63,114,0,109,216,118,216,141,187,90,75,94,176,132,43,100,195,105,228,118,208,120,15,126,251,120,10,112,224,135,99,142,156,147,182,151,60,0,42,0,184,81,36,82,156,108,218,98,238,108,141,112,219,83,73,114,252,118,84,117,65,128,162,136,74,138,191,110,22,152,236,146,101,157,123,137,123,148,60,0,42,0,83,78,151,108,238,128,241,150,194,110,150,129,54,151,60,0,42,0,144,83,158,94,150,83,4,144,193,101,61,130,206,90,172,95,131,135,209,156,142,159,144,159,60,0,42,0,217,85,42,128,171,137,60,0,42,0,144,112,168,128,214,128,60,0,42,0,155,98,203,98,44,129,34,132,60,0,42,0,40,82,134,84,137,87,150,94,205,114,176,112,46,114,141,136,15,83,243,142,132,151,28,137,131,158,133,158,60,0,42,0,209,141,60,0,42,0,69,89,225,108,174,112,177,117,176,118,50,120,173,158,31,121,46,121,60,0,42,0,120,84,12,96,167,128,248,103,218,128,67,136,133,145,60,0,42,0,43,150,106,150,249,87,240,107,84,141,43,149,244,136,245,136,224,140,205,153,60,0,42,0,214,79,60,0,42,0,2,79,155,108,105,79,20,94,245,89,190,101,198,101,127,109,238,115,77,145,220,132,148,143,183,153,143,93,8,151,97,143,60,0,42,0,183,85,116,86,85,107,60,0,42,0,235,116,198,118,83,110,80,132,60,0,42,0,96,84,248,127,60,0,42,0,175,85,60,0,42,0,9,83,38,96,168,98,114,96,48,120,136,104,249,112,81,120,239,142,155,149,48,111,45,86,142,111,222,120,60,0,42,0,131,130,11,103,55,99,252,122,23,80,145,131,11,88,56,95,109,95,218,104,22,105,115,88,124,120,29,122,236,132,79,158,240,105,37,106,162,113,137,97,35,143,227,123,247,123,168,129,11,147,248,151,252,154,218,135,219,135,5,155,132,126,21,134,252,151,108,157,47,154,20,155,93,148,60,0,42,0,103,99,206,109,143,118,123,82,60,0,42,0,189,99,42,105,176,120,43,142,60,0,42,0,21,78,19,79,62,79,121,98,176,126,179,144,111,87,171,98,183,98,139,112,201,114,18,120,130,96,219,121,224,121,21,125,205,148,199,101,205,127,26,128,126,140,8,146,26,146,57,146,95,146,148,146,136,82,199,120,211,153,236,154,124,86,3,147,13,147,126,155,141,155,181,97,20,121,21,121,57,151,60,0,42,0,174,118,48,150,152,130,175,92,135,103,222,107,211,114,182,128,215,107,216,107,178,117,141,134,235,144,116,150,100,85,228,87,37,93,189,134,190,134,124,140,55,113,53,116,62,129,87,129,143,156,116,127,141,129,49,135,110,155,192,88,250,123,183,135,148,140,103,157,134,127,7,103,25,159,47,136,60,0,42,0,57,83,128,94,139,117,243,78,46,87,201,130,52,129,222,117,162,146,192,138,4,157,215,100,125,86,86,118,173,86,60,0,42,0,65,92,224,109,202,99,253,145,178,90,211,90,101,119,159,143,78,111,43,122,251,80,188,111,138,86,19,117,136,117,108,139,226,149,255,157,10,158,60,0,42,0,232,86,79,80,165,90,143,114,199,123,233,127,66,147,163,157,60,0,42,0,136,154,252,128,29,140,65,129,68,105,105,105,198,140,240,141,218,138,191,154,65,142,226,153,8,154,60,0,42,0,145,137,181,140,222,138,60,0,42,0,71,114,151,154,120,155,23,154,25,154,60,0,42,0,125,82,111,95,83,97,37,127,216,152,218,101,242,127,181,135,165,114,195,152,196,152,82,155,60,0,42,0,214,90,226,116,184,133,221,149,60,0,42,0,141,107,159,119,251,123,57,126,165,145,171,118,96,152,60,0,42,0,104,121,196,80,225,82,12,86,177,95,2,111,60,0,42,0,21,108,135,100,134,100,188,102,165,119,60,0,42,0,63,78,228,130,5,148,60,0,42,0,243,90,60,0,42,0,216,89,252,98,23,121,102,122,170,153,94,154,60,0,42,0,173,115,43,141,38,90,167,140,21,116,212,90,145,152,59,152,42,91,178,133,172,86,201,119,25,136,166,152,112,152,60,0,42,0,193,84,128,105,60,0,42,0,93,114,86,108,88,128,60,0,42,0,82,78,57,117,220,79,9,90,132,109,47,120,96,128,117,130,238,122,41,152,60,0,42,0,115,94,196,139,237,81,111,84,106,87,188,92,217,108,249,130,241,144,79,92,33,94,176,103,52,109,182,115,211,128,83,131,246,116,91,92,50,94,220,109,13,132,178,134,64,88,72,94,41,113,1,117,62,127,241,132,226,134,85,138,255,142,134,156,244,81,127,97,179,123,39,143,145,97,131,155,152,106,8,124,11,134,60,0,42,0,139,148,97,87,165,92,202,108,252,108,140,110,85,146,23,152,81,111,250,147,60,0,42,0,70,90,25,86,34,133,49,145,164,118,8,139,199,106,60,0,42,0,245,83,0,92,183,148,56,123,135,152,202,153,60,0,42,0,182,92,235,143,64,101,34,102,38,109,192,115,222,112,52,120,54,120,217,145,149,124,102,145,170,132,68,155,151,145,60,0,42,0,114,104,60,0,42,0,86,82,29,90,60,0,42,0,148,98,153,98,74,99,138,99,210,136,129,123,7,147,60,0,42,0,133,84,227,84,68,90,131,114,60,0,42,0,198,78,52,101,53,101,81,98,135,112,96,150,87,86,178,100,125,111,200,100,198,155,60,0,42,0,36,87,13,83,134,131,47,129,233,131,208,131,97,132,177,132,178,132,213,80,122,145,163,88,91,115,158,116,238,111,168,119,89,122,100,149,12,141,128,126,247,147,60,0,42,0,52,103,3,87,102,109,243,112,110,102,17,87,165,110,156,102,49,140,233,138,56,106,6,108,143,106,104,149,92,139,124,142,32,148,60,0,42,0,250,148,22,130,23,130,234,146,17,112,221,102,60,0,42,0,236,93,237,93,60,0,39,0,208,253,81,0,39,0,60,0,42,0,3,78,201,143,143,108,187,89,210,103,27,80,196,81,22,104,100,104,234,144,56,90,189,96,26,98,127,99,124,104,210,109,11,132,50,101,31,103,242,104,58,107,42,125,227,134,4,137,219,80,1,86,125,97,191,105,6,111,192,125,124,97,237,105,198,138,255,138,11,151,74,142,76,155,218,147,136,157,60,0,42,0,147,78,65,121,80,159,59,87,144,92,147,92,239,95,170,130,157,78,118,81,71,89,137,101,103,107,71,121,72,121,181,128,223,79,167,117,210,122,88,82,138,101,194,101,6,128,16,129,145,134,148,134,154,134,128,152,252,87,14,93,58,94,145,99,199,109,9,115,102,117,1,132,21,132,194,141,221,142,238,145,144,154,145,154,92,93,202,104,203,104,38,116,42,116,122,121,244,134,45,97,129,120,149,120,0,137,28,149,14,152,63,155,215,101,184,124,165,125,166,125,168,125,29,135,30,135,74,159,130,116,165,121,114,133,17,142,167,135,33,147,175,156,224,97,221,111,196,133,177,106,192,106,49,124,205,129,14,154,15,154,205,156,4,134,213,155,120,157,128,157,146,158,79,124,131,126,105,130,16,136,16,155,57,154,45,156,130,115,161,158,60,0,42,0,94,78,148,144,1,79,122,92,130,92,145,130,47,84,71,84,94,103,152,115,192,118,24,85,72,140,119,141,83,85,84,85,77,90,95,85,238,126,117,102,232,104,174,125,186,125,236,138,217,149,60,0,42,0,20,108,171,139,212,95,23,108,84,108,196,143,3,95,125,108,245,119,158,130,110,84,227,108,129,112,245,118,160,84,81,89,12,120,20,104,35,108,22,138,45,85,43,107,33,89,196,104,70,110,71,110,122,132,155,120,86,100,163,102,8,117,182,120,80,86,135,97,104,86,169,97,220,120,231,120,233,120,74,127,255,135,28,159,60,0,42,0,60,127,213,125,47,124,60,0,42,0,144,99,183,136,92,132,60,0,42,0,228,98,60,0,42,0,224,92,210,141,96,145,144,151,60,0,42,0,54,87,190,81,34,94,112,96,61,109,142,107,72,120,24,97,194,154,60,0,42,0,67,83,223,78,33,150,49,87,50,87,119,89,102,98,88,108,138,130,193,143,101,79,141,92,68,103,103,108,233,116,62,131,38,107,207,122,228,129,142,148,234,98,117,114,129,124,91,81,173,96,136,134,56,140,197,148,92,90,111,91,125,114,250,145,148,99,38,140,6,146,195,150,201,80,6,97,126,123,91,146,158,154,80,158,115,97,52,100,129,100,158,123,208,138,119,144,48,137,25,139,69,152,182,106,16,101,17,101,207,106,61,124,110,157,69,91,19,101,43,154,29,155,28,155,100,124,198,151,60,0,42,0,241,78,146,92,244,95,114,98,209,98,77,82,164,148,108,107,84,134,177,148,179,148,126,78,66,80,174,99,245,99,225,142,138,90,16,146,108,151,87,146,152,88,169,105,157,123,173,146,91,111,92,111,172,127,65,133,108,106,34,147,212,158,218,158,29,154,243,111,26,154,74,112,44,156,60,0,42,0,245,81,69,109,183,128,250,109,37,129,219,85,112,93,99,144,207,105,129,129,56,135,52,140,49,127,126,126,116,139,83,148,60,0,42,0,32,107,11,82,161,130,212,79,28,131,41,80,147,96,17,88,148,80,76,93,200,104,32,105,74,97,152,118,168,132,121,88,73,107,170,125,51,133,25,81,231,105,207,123,36,143,223,123,205,88,49,91,52,126,28,156,60,0,42,0,134,147,242,147,86,124,60,0,42,0,91,84,140,127,21,98,23,98,168,101,170,103,177,115,151,127,16,115,196,141,244,85,12,105,172,110,71,115,84,129,198,85,35,135,22,149,136,93,39,98,205,105,68,114,114,116,171,127,53,149,236,123,6,147,18,139,76,142,106,149,97,142,151,147,216,147,60,0,42,0,44,78,55,95,58,95,153,88,241,90,55,133,47,106,18,111,3,133,187,88,25,91,231,94,148,133,163,106,70,114,98,130,32,134,60,0,42,0,162,98,159,127,54,100,165,127,143,88,72,126,65,137,102,126,249,147,60,0,42,0,157,112,52,85,151,113,187,127,60,0,42,0,132,96,87,120,251,144,106,93,247,141,33,145,37,145,129,82,114,101,195,107,13,142,57,149,157,88,29,152,185,154,189,88,103,94,71,106,198,113,50,127,253,120,107,147,108,147,81,126,172,141,122,142,48,148,60,0,42,0,84,78,168,79,77,131,94,131,101,104,90,120,236,131,172,85,209,80,215,105,47,140,58,86,246,90,148,97,78,133,146,151,53,106,75,106,158,114,68,118,167,119,4,121,238,133,171,141,8,148,189,151,102,152,60,0,42,0,231,93,229,145,0,97,220,154,60,0,42,0,207,79,238,139,87,150,237,92,41,94,141,122,187,107,216,127,154,138,218,154,250,80,172,100,189,100,152,151,210,151,197,122,249,127,169,151,89,139,136,142,60,0,42,0,198,130,60,0,42,0,127,118,122,128,60,0,42,0,20,78,60,0,42,0,7,82,146,83,190,89,47,96,196,144,39,83,131,122,143,96,8,99,47,109,236,96,193,109,33,123,28,97,234,134,5,103,167,123,193,125,50,149,203,123,37,142,85,122,210,133,101,147,220,155,17,148,202,122,97,124,60,0,42,0,178,78,181,79,166,148,126,136,142,154,135,90,90,93,61,107,133,125,155,138,148,93,170,137,73,152,248,153,188,155,244,91,60,0,42,0,136,94,169,130,185,130,193,87,225,115,230,121,57,128,230,131,153,134,102,99,243,131,52,116,57,116,189,121,25,146,43,146,194,150,228,82,234,85,192,90,177,110,114,151,108,97,89,86,210,100,179,101,249,156,196,97,142,106,191,111,61,118,147,135,195,97,4,136,53,155,109,157,60,0,42,0,69,87,17,102,9,123,171,104,126,141,209,91,19,149,221,91,226,91,223,146,188,135,60,0,42,0,34,84,35,84,139,98,129,108,26,85,227,131,255,99,7,100,179,100,25,112,253,133,60,0,42,0,81,151,82,151,34,108,123,143,62,80,127,83,236,144,10,87,229,87,200,91,43,108,248,109,5,110,190,80,59,135,21,143,173,156,75,148,60,0,42,0,29,89,32,117,96,82,205,82,197,96,145,107,116,102,254,104,48,108,93,132,146,102,207,100,8,106,206,100,160,106,229,158,60,0,42,0,216,130,119,152,247,139,188,94,3,152,206,94,0,111,203,138,190,106,60,0,42,0,134,94,202,81,133,99,184,107,131,120,144,123,88,151,118,97,236,120,44,81,234,111,68,127,38,139,230,106,60,0,42,0,88,120,60,0,42,0,142,130,60,0,42,0,109,83,155,144,134,91,119,122,121,122,21,131,79,104,59,123,71,123,121,141,248,96,42,113,45,113,60,116,60,130,233,134,236,134,98,113,141,113,88,119,235,141,142,146,143,119,174,122,29,81,140,97,105,106,154,116,209,133,202,116,198,122,237,133,215,116,60,0,42,0,24,78,32,78,177,144,117,87,88,96,203,121,204,121,175,134,157,90,41,132,120,105,242,132,89,158,205,123,231,125,117,135,80,122,165,141,197,156,215,135,166,151,167,151,18,134,12,156,13,156,150,157,36,136,157,159,60,0,42,0,244,83,218,86,79,98,176,114,140,115,83,108,141,128,66,108,108,134,197,108,111,134,197,79,211,137,4,138,5,138,75,145,211,145,18,85,87,109,12,125,141,131,14,144,17,144,218,145,130,104,143,107,236,107,3,116,71,141,251,145,55,93,239,93,30,110,109,110,179,118,218,118,82,144,106,113,127,125,247,134,216,136,240,93,233,137,213,140,134,116,100,135,182,146,148,145,130,155,61,159,196,155,61,156,60,0,42,0,29,100,215,124,60,0,42,0,58,83,242,102,57,79,73,79,36,83,150,92,206,139,57,150,113,154,101,87,72,92,168,92,180,92,190,98,64,109,91,121,224,128,170,136,64,83,54,125,198,134,175,142,65,123,172,124,208,134,88,138,139,141,135,93,136,97,198,153,122,101,179,138,124,149,200,153,185,158,247,154,124,155,168,141,175,158,176,137,192,142,180,158,226,158,187,137,69,154,56,156,75,156,60,0,42,0,98,79,172,82,170,101,16,103,202,128,195,131,80,136,50,158,237,109,32,110,71,125,209,127,75,132,229,142,86,133,150,116,242,120,182,135,29,157,169,116,221,135,191,119,41,159,39,134,194,95,72,112,53,98,11,107,13,108,103,124,222,129,111,118,55,136,98,136,163,142,60,136,122,148,28,158,60,0,42,0,214,83,216,122,54,90,83,138,236,122,122,135,139,159,114,159,60,0,42,0,186,83,187,83,30,82,127,84,31,85,29,128,18,150,209,137,163,141,180,149,174,158,195,149,183,137,1,159,60,0,42,0,242,143,60,0,42,0,77,89,209,92,46,95,110,96,155,96,8,87,15,87,236,104,233,153,9,148,60,0,42,0,104,81,67,103,122,79,224,139,254,89,201,108,36,109,67,131,243,98,119,114,129,143,115,85,226,87,88,90,211,96,202,117,66,120,232,148,118,110,136,114,76,123,95,125,114,132,60,100,126,105,84,116,224,137,110,138,231,141,7,143,55,135,147,146,41,106,33,142,19,126,155,145,206,149,200,156,8,155,33,154,73,91,207,93,1,156,10,107,100,159,56,136,167,152,116,152,60,0,42,0,173,114,172,114,113,108,78,117,199,112,251,126,163,125,71,134,60,0,42,0,157,82,56,82,118,114,231,82,207,151,248,82,60,0,42,0,38,105,60,0,42,0,58,127,155,132,25,150,60,0,42,0,56,118,60,0,42,0,116,83,123,83,198,87,5,93,171,96,55,116,192,150,94,120,110,120,21,150,89,88,9,100,181,118,143,120,74,158,40,97,183,105,167,88,100,97,186,120,187,120,158,141,233,113,203,149,16,121,213,149,114,157,45,121,60,0,42,0,11,89,247,86,238,92,33,144,60,0,42,0,173,91,44,94,217,136,163,127,164,127,224,136,60,0,39,0,208,253,82,0,39,0,60,0,42,0,101,84,176,128,123,136,135,136,166,134,161,136,186,134,54,113,229,154,43,86,239,154,195,113,78,126,60,0,42,0,132,81,137,81,204,89,210,130,211,103,195,115,163,90,133,132,106,106,60,0,42,0,99,122,52,81,247,82,60,112,125,115,24,134,179,121,228,116,112,122,159,142,36,155,60,0,42,0,204,88,183,86,228,88,24,101,25,114,149,126,60,0,42,0,169,139,249,97,114,139,147,139,60,0,42,0,6,90,91,131,118,153,97,104,8,91,88,133,72,106,83,137,82,153,60,0,42,0,112,98,162,150,254,100,60,0,42,0,213,126,118,144,94,126,60,0,42,0,249,96,60,0,42,0,237,112,177,113,60,0,42,0,186,78,187,78,193,78,236,88,200,95,50,103,206,95,194,121,162,130,19,146,92,155,139,146,64,157,60,0,42,0,205,95,79,131,32,104,35,104,117,131,249,121,239,104,20,122,155,125,181,142,60,0,42,0,3,82,4,82,164,139,222,78,237,78,177,139,251,78,123,92,131,92,104,98,171,126,138,89,82,103,99,114,180,126,149,128,107,143,231,151,106,153,217,89,77,121,9,125,125,136,29,125,18,138,212,142,149,104,181,136,77,125,77,129,90,132,109,151,113,151,204,151,234,152,141,138,1,153,60,0,42,0,84,98,60,0,42,0,205,78,184,143,61,121,126,150,60,0,42,0,191,130,60,0,42,0,229,101,114,154,248,86,240,145,36,146,185,153,60,0,42,0,56,131,60,0,42,0,14,98,156,128,4,104,232,114,210,126,25,131,99,131,185,91,245,92,231,107,255,112,182,90,88,93,17,100,104,125,162,127,198,90,100,93,8,100,181,105,182,110,201,132,149,105,174,105,148,113,98,116,65,122,25,126,126,135,35,137,85,149,141,135,142,135,229,153,246,154,43,91,184,93,3,114,148,147,198,93,28,112,231,102,17,136,60,0,42,0,151,81,130,91,72,87,135,80,245,142,4,108,60,0,42,0,67,122,60,0,42,0,185,83,184,121,212,103,136,124,131,90,201,99,24,110,71,132,99,113,72,116,108,129,197,124,90,135,66,142,46,143,82,147,163,151,199,116,37,154,7,156,148,157,60,0,42,0,122,105,214,151,60,0,42,0,137,128,141,91,60,0,42,0,154,144,130,89,158,79,36,94,57,131,71,104,189,136,247,148,42,110,78,123,152,132,163,146,96,133,97,135,18,81,17,157,133,86,44,91,122,91,225,111,183,133,61,157,216,102,248,113,102,137,21,136,165,152,185,145,108,152,108,156,60,0,42,0,93,108,151,128,115,78,177,143,15,145,233,100,60,0,42,0,101,81,86,98,65,103,51,109,213,85,183,90,189,110,27,127,208,132,240,156,37,137,31,126,60,0,42,0,191,93,60,0,42,0,60,99,60,0,42,0,39,88,139,100,214,88,60,0,42,0,46,150,10,103,111,143,14,128,68,80,223,142,134,90,76,116,157,120,219,125,45,143,192,116,29,121,60,0,42,0,81,90,117,104,36,117,204,125,100,133,60,0,42,0,74,133,75,133,100,106,96,126,2,134,3,134,60,0,42,0,109,108,174,130,152,103,139,134,16,149,94,116,57,135,127,119,179,146,237,146,225,83,225,88,60,0,42,0,164,119,60,0,42,0,240,149,166,109,143,149,160,149,100,111,77,106,182,129,60,0,42,0,124,99,60,0,42,0,210,83,229,130,76,80,49,95,0,145,3,110,43,113,73,105,118,93,187,132,172,123,219,123,7,114,25,156,47,156,184,157,60,0,39,0,208,253,83,0,39,0,60,0,42,0,232,78,49,99,50,99,146,100,60,0,42,0,18,109,47,138,120,151,117,111,81,112,160,142,60,0,42,0,69,83,231,108,145,148,210,152,14,129,40,132,18,146,75,100,161,150,186,153,175,152,169,133,210,106,68,134,60,0,42,0,226,107,34,97,204,99,94,88,248,107,110,129,37,86,123,86,195,156,75,152,19,156,60,0,42,0,238,85,91,141,255,80,253,140,58,124,60,0,42,0,9,78,14,95,193,83,245,107,246,107,129,83,255,107,153,114,22,155,60,0,42,0,208,78,30,79,152,80,193,124,194,124,147,153,221,124,227,124,228,124,86,126,210,147,254,147,74,153,60,0,42,0,213,79,52,94,99,101,144,149,60,0,42,0,237,88,117,106,60,0,42,0,82,104,81,104,225,105,60,0,42,0,211,85,33,100,201,120,44,137,161,152,159,147,89,152,60,0,42,0,39,78,170,85,60,0,42,0,187,99,69,97,20,100,158,110,154,154,43,127,166,135,69,126,202,129,203,156,18,154,55,154,32,156,98,156,60,0,42,0,107,98,131,99,194,90,60,0,42,0,253,87,25,118,9,108,194,119,222,154,60,0,42,0,170,149,60,0,42,0,114,130,19,109,28,104,169,109,108,85,11,110,239,148,237,150,110,107,23,116,199,85,95,116,112,107,171,146,129,111,206,97,204,100,199,111,207,111,55,118,81,122,128,111,177,116,18,112,97,122,108,126,111,122,86,143,252,147,69,139,203,152,60,0,42,0,238,104,46,105,238,105,66,137,60,0,42,0,231,80,25,155,60,0,42,0,64,103,153,108,177,126,119,78,57,82,78,82,2,120,38,85,186,107,0,115,134,124,23,125,142,131,108,104,238,107,233,148,231,117,112,120,94,113,49,133,223,136,157,105,39,106,102,155,168,156,169,147,202,155,203,155,60,0,42,0,187,80,13,81,60,0,42,0,61,80,60,85,81,85,101,85,57,94,16,132,166,83,162,85,200,94,67,107,220,127,145,123,227,127,175,149,14,151,60,0,42,0,76,126,60,0,42,0,91,123,126,145,233,123,1,124,27,124,195,145,60,0,42,0,122,126,60,0,42,0,82,102,183,149,236,102,60,0,42,0,113,92,97,95,150,144,56,87,32,82,42,82,73,103,159,130,205,89,215,89,235,130,107,136,144,148,207,87,59,99,245,103,230,114,202,115,34,130,193,117,32,129,213,142,24,123,138,149,218,141,124,82,39,100,7,86,83,94,125,113,120,111,152,111,134,106,63,126,187,129,197,155,180,127,182,127,60,0,42,0,234,149,85,150,182,112,93,150,131,149,113,102,84,113,82,119,140,113,162,137,60,0,42,0,170,139,85,108,157,117,97,82,71,98,21,138,120,141,158,99,228,145,147,80,132,85,43,105,143,146,159,154,208,80,47,145,160,88,161,88,108,111,46,127,23,91,197,100,126,101,63,106,90,107,179,129,240,120,6,139,97,141,85,126,238,135,250,135,113,139,13,141,37,148,77,153,56,154,221,156,87,112,83,156,84,156,60,0,42,0,36,79,135,107,70,85,222,137,183,80,146,88,111,97,243,110,33,111,15,133,164,107,181,113,170,135,244,137,42,139,58,155,60,0,42,0,167,87,68,98,76,102,79,141,222,140,24,141,92,148,60,0,42,0,4,78,10,78,25,92,26,92,102,96,241,126,212,125,157,151,60,0,42,0,243,136,60,0,42,0,48,95,78,99,231,112,166,131,162,104,60,113,13,122,211,101,114,123,68,130,248,134,14,143,113,133,210,113,181,152,254,154,185,155,60,0,42,0,250,82,141,130,213,130,214,103,191,115,246,151,60,0,42,0,17,92,60,0,42,0,173,82,114,83,181,144,205,126,232,84,11,90,145,136,57,125,68,119,164,125,114,111,60,0,42,0,98,89,30,115,74,141,108,117,114,117,11,143,210,140,214,140,168,106,60,0,42,0,12,130,88,79,117,134,199,134,229,134,60,0,42,0,13,130,104,99,60,0,42,0,141,83,190,139,62,121,14,130,153,83,4,92,137,109,187,109,9,110,45,138,102,141,61,95,81,97,66,100,68,100,224,110,116,97,117,100,14,133,89,107,2,136,216,151,7,154,254,97,29,101,68,112,157,158,7,107,60,0,42,0,1,140,60,0,42,0,51,117,126,92,95,98,56,79,171,142,129,79,123,84,189,89,118,124,197,126,89,127,220,139,250,89,219,103,32,108,197,115,124,122,120,124,32,90,247,92,33,117,18,119,55,120,152,131,20,88,82,101,241,109,51,125,95,81,253,104,96,132,209,136,55,138,225,132,117,138,39,117,24,133,202,113,147,133,234,153,185,156,209,102,211,155,98,157,245,155,58,156,60,0,42,0,192,78,26,117,94,121,138,105,48,156,60,0,42,0,165,144,30,95,136,108,161,91,228,119,194,84,231,119,183,91,2,140,9,140,118,90,22,110,32,138,233,91,215,138,35,152,107,155,203,102,171,119,56,91,11,112,190,137,133,139,60,0,42,0,190,128,186,79,26,102,194,128,129,109,24,119,23,110,115,121,36,129,78,129,60,97,78,97,57,105,6,118,103,127,3,135,4,135,242,110,224,146,46,118,60,0,42,0,71,83,31,117,41,150,79,84,240,88,152,101,7,102,161,103,233,108,204,114,252,130,13,104,133,107,114,114,196,115,212,122,94,150,251,102,121,150,25,123,102,110,58,113,37,117,78,146,114,128,95,147,42,159,127,157,60,0,42,0,243,126,4,126,180,97,105,126,93,139,60,0,42,0,1,119,26,119,87,80,59,110,60,0,42,0,35,87,220,128,96,102,112,82,219,118,105,82,221,82,185,140,74,93,30,116,86,128,173,88,186,105,66,133,115,106,248,140,60,0,42,0,56,92,49,89,8,94,94,84,113,134,215,139,191,144,36,158,77,92,189,101,73,109,238,114,43,94,65,125,246,145,100,110,127,110,121,132,174,110,188,110,69,115,146,132,205,132,105,138,71,146,72,146,97,116,242,156,104,135,254,156,55,137,186,156,213,111,102,147,244,155,36,156,179,157,121,137,60,0,42,0,65,83,99,153,243,119,187,143,109,78,246,101,205,122,198,139,158,91,159,91,249,101,224,152,252,89,213,92,254,98,187,112,79,121,128,134,223,152,216,87,66,102,179,131,212,91,92,110,72,144,82,88,117,93,161,110,148,132,80,146,230,91,175,105,85,135,165,156,150,155,43,159,88,139,45,159,35,156,60,0,42,0,242,83,226,119,104,78,85,140,127,79,203,89,118,154,88,81,169,91,78,92,54,123,129,105,66,146,219,153,60,0,42,0,235,88,15,108,59,121,23,78,22,78,213,78,2,94,58,121,60,79,75,83,15,95,213,95,138,78,211,83,58,98,139,78,141,79,191,82,105,84,249,103,198,137,213,139,112,153,159,81,164,91,64,96,67,96,237,98,47,102,48,102,190,103,255,103,2,119,51,141,2,144,59,104,210,112,14,119,33,119,16,130,124,143,29,144,200,148,150,137,73,140,200,145,158,90,60,93,17,95,165,95,211,99,37,140,176,140,202,145,226,82,220,85,18,95,118,113,87,119,110,123,226,137,102,138,254,142,48,146,67,146,254,152,19,130,147,138,105,144,125,146,109,89,180,146,25,153,29,153,108,86,21,91,168,111,223,138,225,138,126,144,171,135,26,139,45,124,107,137,203,145,24,156,60,0,42,0,102,79,25,83,210,123,66,124,60,0,42,0,206,83,54,101,60,0,42,0,75,98,136,91,168,87,150,153,79,130,60,0,42,0,255,91,215,83,233,114,125,81,46,85,136,99,173,109,246,126,233,117,132,129,253,88,0,89,38,118,172,125,99,115,120,115,201,147,60,0,42,0,76,98,60,0,42,0,102,78,179,107,23,92,146,98,190,126,212,83,120,103,162,103,78,150,221,89,15,80,16,80,248,102,138,107,19,125,147,99,179,104,209,109,2,113,253,131,215,142,3,145,142,117,143,117,18,130,69,100,249,107,250,107,128,125,147,143,121,116,254,141,8,142,30,106,44,133,56,143,126,106,155,155,53,81,4,101,45,112,104,157,60,0,42,0,235,121,76,90,112,91,78,141,126,88,159,113,185,116,22,141,60,0,42,0,33,159,94,92,145,102,143,102,205,158,114,127,0,135,32,159,123,111,165,133,175,133,217,102,89,118,247,133,97,137,236,124,105,137,108,92,52,136,106,156,112,156,0,158,60,0,42,0,46,103,47,103,13,98,95,103,173,108,240,143,184,79,176,84,55,96,17,104,214,122,87,131,85,96,82,99,182,94,187,94,73,125,129,132,83,136,131,150,12,92,203,136,112,101,234,122,103,129,101,146,133,88,49,111,68,111,120,101,141,111,78,140,57,106,214,111,48,147,227,147,144,157,106,134,60,0,42,0,55,82,48,85,60,0,42,0,13,128,60,0,42,0,156,138,60,0,42,0,112,136,84,100,60,0,42,0,41,117,60,0,42,0,5,94,37,94,192,135,91,83,60,0,42,0,233,149,244,98,130,149,19,104,60,0,42,0,174,109,104,129,60,0,42,0,204,83,28,151,217,150,64,91,166,154,71,91,59,154,6,107,53,121,222,157,116,158,109,130,102,154,24,158,60,0,42,0,61,114,125,88,97,97,58,111,9,106,20,126,239,147,60,0,42,0,64,112,60,0,42,0,61,129,176,138,60,0,42,0,52,108,58,108,60,0,42,0,40,94,151,109,154,109,113,121,5,122,14,122,222,136,97,119,147,119,60,0,42,0,53,108,150,149,60,0,42,0,46,84,60,0,42,0,122,152,28,130,6,152,99,133,83,106,154,119,172,119,10,155,60,0,42,0,244,139,254,84,170,138,172,138,60,0,42,0,129,89,193,112,20,103,196,148,54,107,85,120,223,119,32,100,180,132,202,105,97,115,169,120,190,123,153,147,13,114,96,148,60,0,42,0,182,83,159,126,29,78,248,83,249,124,193,121,157,84,192,108,236,79,29,96,82,134,86,96,54,158,164,90,175,101,114,125,12,127,243,134,82,105,151,121,112,146,212,152,216,81,174,83,185,105,160,121,115,127,36,135,175,146,54,149,54,86,93,86,221,94,149,100,140,111,195,120,230,125,108,133,214,146,205,113,132,135,214,135,244,135,184,152,38,154,1,148,229,157,54,159,109,124,60,0,42,0,123,107,60,0,42,0,243,93,150,78,219,86,250,91,92,108,64,79,85,81,210,89,228,108,64,121,161,79,96,91,107,103,215,108,114,153,119,154,48,90,246,103,109,114,13,109,152,109,130,128,228,152,37,123,28,128,242,145,226,122,151,137,227,85,134,128,132,140,54,146,59,146,252,152,169,121,223,153,124,133,41,81,3,112,60,0,42,0,234,95,126,103,128,103,169,103,0,90,215,103,47,80,199,81,39,93,186,94,165,104,222,109,216,131,105,93,121,120,25,135,189,97,205,111,167,106,118,147,6,155,60,0,42,0,2,96,154,96,56,128,230,122,177,80,47,97,100,105,119,93,107,97,115,128,247,153,60,0,42,0,188,139,139,91,245,139,1,144,130,152,31,138,12,152,166,138,185,147,56,153,60,0,42,0,193,81,92,99,11,145,214,85,192,94,203,94,28,100,178,110,64,115,144,132,195,132,138,153,73,100,213,152,87,100,60,149,88,130,139,135,153,145,170,147,63,153,188,152,190,152,42,154,60,0,42,0,220,83,223,83,129,80,254,85,141,119,222,100,174,133,251,100,234,133,226,106,84,124,60,0,42,0,253,85,54,118,60,0,42,0,207,130,38,117,101,145,35,122,163,122,76,122,194,155,7,134,19,134,239,106,204,86,60,0,42,0,215,79,60,0,42,0,138,115,25,89,201,139,221,108,131,128,44,109,145,109,223,115,32,125,164,131,31,144,191,91,128,104,144,107,155,124,149,154,131,80,159,124,52,138,33,140,201,85,80,88,81,88,202,90,43,97,175,110,184,110,133,128,97,144,84,158,243,80,44,97,161,105,134,129,12,133,235,137,154,141,108,144,159,97,14,106,21,106,101,111,191,120,201,146,23,153,90,111,36,126,90,106,155,116,12,124,215,133,22,139,92,142,76,154,80,156,235,157,60,0,42,0,251,114,224,117,120,145,60,0,42,0,52,83,60,0,42,0,88,121,7,123,109,123,156,132,151,123,60,0,42,0,10,89,149,130,125,134,32,80,248,84,125,109,125,131,126,131,45,119,112,132,214,110,98,119,143,125,163,113,201,111,150,151,214,150,60,0,42,0,229,126,139,150,143,150,64,144,168,150,205,116,60,0,42,0,33,112,184,129,196,154,211,154,60,0,42,0,151,78,129,92,21,120,95,121,7,140,227,87,87,93,66,144,114,107,115,107,107,113,95,119,142,120,167,150,24,91,187,111,66,122,182,138,229,140,150,106,231,113,178,116,173,121,87,122,95,122,64,126,90,137,131,144,222,101,80,126,120,126,98,139,6,148,41,148,226,151,60,0,42,0,89,91,242,114,106,131,107,91,231,152,14,100,59,115,192,132,241,152,194,105,117,133,158,133,60,0,42,0,95,99,11,123,188,150,77,123,13,100,171,105,176,123,40,124,168,147,189,157,60,0,42,0,6,85,17,90,143,131,158,80,107,104,173,104,67,119,205,85,167,127,209,132,77,100,41,127,150,141,17,124,20,124,46,126,255,154,187,155,60,0,42,0,64,98,122,78,34,85,34,125,16,116,17,116,226,96,1,149,233,85,155,102,145,110,99,116,40,137,133,116,136,147,141,147,150,147,187,147,193,147,60,0,42,0,36,144,185,110,54,135,60,0,42,0,230,85,60,0,39,0,208,253,84,0,39,0,60,0,42,0,214,78,131,91,121,89,96,114,66,121,191,141,202,148,76,88,153,105,187,110,31,137,131,86,231,149,60,0,42,0,121,142,60,0,42,0,84,88,154,110,150,88,109,115,206,156,122,115,40,156,60,0,42,0,211,98,30,99,231,114,252,149,9,93,190,109,40,100,93,144,98,144,187,105,254,107,162,121,187,100,190,111,187,138,15,142,125,106,20,147,204,111,75,142,156,151,153,155,210,149,179,151,186,86,229,149,118,139,162,142,60,0,42,0,164,79,156,84,60,0,42,0,252,86,97,91,206,128,60,0,42,0,240,83,242,101,176,144,110,87,172,98,212,130,177,103,177,112,178,112,237,131,198,141,144,156,136,123,250,129,177,152,216,153,19,81,144,155,47,91,225,100,185,133,175,106,73,124,60,0,42,0,42,89,173,81,51,89,242,95,112,108,1,96,189,128,155,148,240,108,38,130,94,145,38,146,153,110,75,97,228,113,60,0,42,0,143,124,60,0,42,0,77,87,42,141,57,96,209,117,17,130,170,140,74,100,233,110,43,118,249,100,36,101,88,112,113,118,60,0,42,0,91,87,25,102,19,80,8,140,239,144,82,90,212,96,131,137,131,105,240,117,44,149,45,140,176,88,181,88,155,97,109,111,199,138,136,145,199,88,199,102,194,113,31,147,36,153,128,106,249,120,67,152,72,127,235,133,220,88,90,139,154,140,176,145,96,139,78,127,60,0,42,0,208,95,102,87,146,136,189,148,252,131,239,107,109,146,255,85,179,97,187,97,186,102,147,145,174,116,98,137,60,0,42,0,249,83,173,112,238,87,162,99,157,80,96,110,203,80,6,86,179,120,21,130,78,107,231,140,60,0,42,0,100,108,244,148,111,110,33,86,37,128,143,82,176,127,106,135,154,133,87,149,90,142,220,147,11,148,186,151,30,159,60,0,42,0,103,153,99,87,16,85,2,88,143,80,122,85,224,104,12,145,88,88,42,100,143,110,206,132,154,150,182,105,31,111,123,113,109,116,159,121,133,129,24,106,196,120,195,124,155,129,86,106,214,123,214,124,151,135,60,142,219,124,179,135,111,141,163,145,51,153,149,147,57,153,219,149,68,153,182,157,60,0,42,0,22,79,17,94,24,80,82,80,204,109,165,80,186,142,75,149,178,147,59,81,3,98,237,102,35,114,216,119,130,148,60,0,42,0,235,112,101,100,159,141,217,113,60,0,42,0,50,89,34,95,155,109,230,126,143,99,91,125,92,138,205,90,77,94,70,97,47,100,212,110,196,105,107,116,236,151,248,152,26,126,39,126,228,111,31,139,65,143,177,151,220,151,85,153,60,0,42,0,11,83,239,143,183,84,46,109,3,144,67,104,118,150,85,85,188,104,216,109,249,126,4,132,121,121,234,136,175,125,42,135,128,151,132,145,137,151,254,146,45,147,227,153,174,106,64,153,10,154,23,159,60,0,42,0,168,139,14,138,60,0,42,0,87,89,60,0,42,0,209,95,210,95,121,114,163,140,253,148,93,97,241,146,163,135,216,135,60,0,42,0,165,113,175,129,31,159,60,0,42,0,188,117,203,117,80,94,126,129,138,138,27,111,213,110,134,144,34,126,230,153,4,139,47,81,228,133,48,154,80,124,39,156,88,124,69,134,99,154,60,0,42,0,47,151,60,0,42,0,84,82,175,104,17,149,34,142,255,100,200,157,201,157,60,0,42,0,208,130,151,83,81,131,232,126,77,80,124,85,57,93,255,96,208,99,10,122,7,127,100,127,70,144,72,158,193,85,69,116,136,125,174,120,6,137,178,95,61,111,249,125,91,133,109,135,187,146,152,152,167,141,68,142,141,145,21,139,79,142,87,147,192,156,58,157,76,152,183,155,92,157,32,154,247,155,151,157,153,157,181,121,228,157,60,0,42,0,83,79,46,99,176,142,181,154,167,155,198,142,212,154,60,0,42,0,59,98,73,92,67,82,31,109,17,103,28,80,140,96,149,109,22,144,92,92,144,96,213,96,166,99,55,144,214,96,229,99,255,102,116,105,252,136,5,137,82,107,162,107,240,154,153,133,143,86,0,155,148,86,203,116,74,124,175,141,60,0,42,0,57,123,60,0,42,0,41,89,114,81,86,90,251,109,95,145,84,151,199,158,93,151,60,0,42,0,48,117,71,92,186,108,108,96,75,117,81,117,247,118,203,128,96,117,27,117,28,117,254,131,73,110,97,88,107,88,55,100,63,146,23,150,181,120,194,125,204,120,180,122,43,157,179,116,208,149,198,157,207,157,60,0,42,0,221,95,132,107,14,80,58,85,191,96,223,109,106,102,32,116,70,129,205,137,246,117,83,119,20,130,2,153,165,137,223,140,42,147,105,147,102,151,60,0,42,0,173,99,124,119,26,130,60,0,42,0,235,101,123,79,163,94,76,96,17,99,103,121,78,128,60,0,42,0,128,130,97,103,167,92,185,92,226,143,82,121,157,104,36,123,20,132,218,132,232,132,146,141,134,159,36,106,41,135,218,146,151,151,235,154,166,156,200,155,165,147,96,159,55,156,60,0,42,0,168,91,64,102,19,103,1,129,149,122,130,138,162,101,177,122,37,91,60,0,42,0,58,119,156,124,105,125,156,137,243,141,246,124,60,0,42,0,169,135,60,0,42,0,22,94,23,96,52,141,28,132,81,128,188,140,60,0,42,0,193,148,200,134,227,80,149,146,232,146,41,157,33,148,53,148,86,154,60,0,42,0,107,84,251,152,46,153,60,0,42,0,133,83,129,94,64,108,124,130,44,84,58,117,19,128,155,83,195,112,111,104,244,112,142,125,147,151,116,128,124,128,240,94,125,128,243,94,60,0,42,0,146,144,247,94,173,78,173,94,155,131,92,80,119,90,73,93,31,110,115,123,118,132,19,135,95,105,179,105,174,149,6,151,100,128,79,135,234,138,46,159,60,0,42,0,34,87,60,117,185,79,23,90,58,99,143,109,131,104,246,112,253,115,33,129,71,130,139,152,148,138,50,152,60,0,42,0,242,86,181,112,26,144,204,117,245,85,234,132,11,106,60,0,42,0,221,78,12,84,95,79,100,95,194,92,157,94,195,84,221,92,234,114,60,131,77,102,80,104,117,109,212,112,60,120,146,134,46,119,241,121,220,148,229,122,161,124,105,123,119,138,104,141,110,145,86,146,238,80,237,82,117,146,133,146,7,153,150,156,124,111,94,115,200,102,35,103,102,106,3,108,209,113,157,114,167,129,179,119,166,155,60,0,42,0,223,126,69,99,118,104,82,123,113,125,130,125,60,0,42,0,120,96,219,117,85,136,95,97,133,97,60,0,42,0,119,80,120,80,126,90,174,90,192,146,110,147,60,0,42,0,160,78,52,89,149,98,176,154,240,125,45,152,60,0,42,0,181,89,173,148,15,125,104,101,243,152,200,158,35,134,60,0,42,0,15,144,137,125,60,0,42,0,248,81,138,91,191,121,195,121,34,96,129,122,11,85,139,109,120,99,23,88,101,110,220,117,86,132,128,93,245,146,90,157,53,159,60,0,42,0,243,86,254,86,195,81,249,92,169,94,146,95,135,96,72,99,130,109,124,131,20,144,96,92,140,104,223,131,236,99,12,122,21,87,87,88,94,93,15,118,97,123,111,129,164,132,47,146,22,87,23,87,220,94,115,111,255,141,116,145,159,153,78,147,252,153,76,157,159,157,203,157,245,157,60,0,42,0,31,87,33,87,16,84,141,148,247,145,60,0,42,0,78,81,204,143,84,81,181,131,13,88,117,157,60,0,42,0,98,108,60,0,42,0,77,110,47,115,83,113,146,140,60,0,42,0,226,86,227,86,159,98,120,82,24,87,113,97,118,100,25,111,235,105,255,123,178,106,196,147,240,124,210,157,251,157,60,0,42,0,131,117,60,0,42,0,86,95,106,110,22,137,60,0,42,0,168,99,247,132,236,133,60,0,42,0,26,95,147,152,164,150,53,92,57,152,58,152,61,152,75,155,104,122,8,134,106,142,60,0,42,0,192,79,127,129,211,80,70,142,189,154,60,0,42,0,187,79,0,144,39,90,122,113,251,134,21,135,42,137,254,153,60,0,42,0,30,84,81,84,253,101,146,109,77,85,28,103,30,113,75,86,190,102,215,158,60,0,42,0,111,92,73,87,243,95,154,130,104,153,88,140,90,140,216,142,233,152,128,156,104,155,21,151,192,129,203,129,60,0,42,0,61,108,125,117,60,0,42,0,71,78,219,78,172,139,88,98,97,98,81,108,102,153,84,103,130,79,131,84,213,98,214,98,176,108,41,99,93,99,140,131,165,136,23,138,182,109,43,129,49,129,229,152,96,155,93,154,60,0,42,0,110,154,87,79,64,150,65,150,104,87,174,92,177,108,178,108,207,114,241,143,124,154,35,120,36,120,137,136,53,158,61,125,54,88,206,141,97,145,162,120,177,153,214,105,196,153,221,153,222,153,80,106,128,155,21,157,39,159,40,154,13,159,82,154,9,159,60,0,42,0,117,95,165,89,185,94,160,90,45,105,85,105,247,90,98,106,78,157,12,155,22,156,60,0,42,0,221,103,228,107,62,85,26,132,197,141,251,107,168,123,0,134,92,124,60,0,39,0,208,253,87,0,39,0,60,0,42,0,114,92,117,122,184,82,22,99,60,109,50,90,86,117,138,122,167,90,215,85,217,134,50,100,155,110,37,111,170,122,3,159,40,101,60,0,42,0,3,90,60,0,42,0,230,116,100,79,183,144,147,84,25,120,60,0,42,0,156,136,73,128,226,85,125,129,131,129,106,137,200,151,228,151,60,0,42,0,242,116,199,84,60,0,42,0,106,107,142,85,245,122,60,0,42,0,52,93,60,0,42,0,22,89,30,89,97,152,60,0,42,0,47,95,92,82,96,90,53,94,70,88,126,110,63,135,107,111,76,140,78,95,234,88,99,112,60,0,42,0,56,78,19,82,77,108,168,126,132,130,140,91,143,92,143,98,169,115,2,123,8,125,86,99,125,152,247,112,19,116,166,140,17,152,235,127,60,0,42,0,155,91,7,80,13,85,61,99,204,118,230,87,73,90,203,96,90,102,101,102,154,104,254,126,24,129,192,131,22,132,105,102,124,102,0,105,44,116,150,118,121,117,85,119,151,120,169,125,176,125,19,143,32,142,212,146,60,0,42,0,7,78,77,83,80,83,167,89,232,95,100,103,101,99,21,129,44,132,85,129,16,143,171,111,196,146,163,119,141,133,61,147,195,135,3,141,171,147,14,141,60,0,42,0,35,92,42,92,43,92,106,108,41,92,60,0,42,0,161,78,190,78,102,81,139,115,252,78,122,95,163,131,159,134,60,0,42,0,82,127,81,127,128,95,131,95,137,103,84,127,141,95,216,96,245,131,128,102,226,104,231,134,139,143,178,125,68,135,183,138,30,143,7,112,77,155,60,0,42,0,132,89,216,95,203,143,250,101,243,118,27,103,34,103,60,0,42,0,113,83,1,90,211,112,78,80,14,132,54,144,135,150,136,150,180,85,153,90,4,97,203,99,251,99,40,110,104,132,115,132,174,95,51,105,114,105,166,110,104,113,116,138,50,135,5,126,91,135,163,137,182,93,135,133,240,113,194,156,205,93,3,156,4,156,60,0,42,0,215,86,230,151,41,87,244,86,15,94,169,108,221,143,241,149,215,92,222,92,8,109,203,151,69,104,160,109,47,85,55,94,223,96,89,120,244,126,161,85,13,87,129,90,108,93,67,94,75,110,136,110,31,116,85,144,77,111,173,125,246,132,44,145,89,111,127,111,209,120,128,145,240,111,79,147,200,149,160,155,83,118,185,137,169,114,58,151,8,107,60,0,42,0,131,83,31,79,42,79,62,92,172,126,155,130,199,130,212,89,156,112,174,115,39,109,19,90,87,92,100,99,88,109,113,131,255,139,73,80,125,80,35,93,182,104,207,117,74,120,169,154,84,93,171,95,7,97,37,115,102,132,141,132,170,154,171,154,144,102,50,105,82,113,75,116,255,117,114,129,73,130,234,151,222,80,177,100,200,120,148,156,234,91,239,125,63,133,201,138,19,142,209,151,32,152,179,133,48,81,251,111,97,147,170,155,221,88,34,112,217,151,185,152,225,151,150,101,60,0,42,0,107,83,58,78,42,103,77,79,115,84,255,130,186,112,79,117,195,128,222,83,206,142,9,92,203,131,19,140,130,85,166,90,45,110,50,114,44,115,95,113,155,88,168,120,26,133,60,135,112,97,173,113,154,114,237,125,95,135,91,136,192,97,143,116,123,127,94,136,2,139,39,153,135,155,177,135,61,137,53,153,79,155,239,133,74,143,207,147,40,151,218,156,54,134,86,153,134,139,151,142,143,139,155,142,60,0,42,0,64,113,60,0,42,0,55,102,109,88,41,110,133,105,159,107,171,110,101,116,146,143,178,105,31,118,112,133,113,140,60,143,64,143,190,147,66,153,193,156,176,151,27,156,46,156,60,0,42,0,1,83,135,101,99,95,185,126,160,130,134,112,159,115,251,149,11,125,137,134,138,134,243,115,12,150,239,150,18,118,94,128,188,153,199,153,112,155,252,156,13,157,161,135,186,149,191,149,193,135,197,149,36,159,230,149,60,0,42,0,14,82,59,84,223,95,134,98,97,84,179,128,10,125,125,104,23,129,51,122,79,122,105,122,60,0,42,0,238,149,143,89,118,108,172,131,79,85,2,110,254,99,53,100,80,152,186,116,60,0,42,0,90,84,60,0,42,0,193,127,225,85,195,110,95,158,137,135,147,147,178,157,60,0,42,0,220,82,99,89,85,88,97,93,202,132,161,102,136,119,108,128,26,101,60,0,42,0,238,116,121,133,21,117,75,127,70,159,60,0,42,0,29,99,45,80,161,109,180,131,41,85,185,109,38,110,39,115,53,132,157,122,169,122,23,135,190,100,120,135,18,142,60,0,42,0,17,98,80,90,112,99,60,0,42,0,244,78,131,108,159,128,103,83,130,103,229,129,83,80,126,99,180,109,137,90,68,94,225,99,37,110,37,113,106,120,67,105,91,129,161,101,131,119,237,100,227,111,193,116,210,129,216,150,140,159,119,159,60,0,42,0,76,78,44,87,25,95,89,108,90,108,97,108,172,144,92,84,235,93,71,103,75,92,63,109,236,139,168,148,207,112,109,82,143,122,20,145,218,85,136,138,77,107,163,138,188,123,144,135,46,157,162,147,30,156,60,0,42,0,224,101,203,107,51,84,52,84,62,84,73,84,156,130,218,144,20,85,42,90,22,109,111,109,35,131,129,131,167,104,248,115,102,121,33,113,251,148,64,158,145,121,8,135,106,133,145,116,241,135,195,155,80,157,85,139,47,159,225,157,60,0,42,0,68,78,148,78,72,83,245,78,13,79,169,89,145,94,228,95,3,96,255,101,102,107,157,115,174,79,201,79,53,80,66,99,78,85,44,90,126,114,247,115,64,100,148,120,73,158,147,113,102,116,30,130,245,90,225,94,174,97,85,111,27,81,70,106,18,117,97,157,140,142,60,0,42,0,64,81,255,82,161,82,10,98,34,150,6,79,124,92,100,98,94,87,137,92,76,103,180,130,213,143,226,95,105,114,249,119,124,83,68,101,239,139,217,82,158,96,159,96,174,96,133,124,28,144,100,102,16,113,122,90,77,93,230,117,150,150,112,151,155,154,98,88,102,89,104,93,169,110,250,150,254,150,228,91,131,113,164,138,92,158,200,146,185,122,26,151,63,159,39,151,64,159,1,134,22,154,169,157,60,0,42,0,59,147,60,0,39,0,208,253,88,0,39,0,60,0,42,0,21,89,110,81,156,144,56,84,218,95,113,98,80,108,127,137,128,137,12,94,120,98,101,83,20,102,144,103,120,122,184,128,185,128,217,79,134,95,56,96,83,96,215,144,123,153,15,85,90,89,86,92,111,96,149,96,37,108,96,109,122,114,246,114,131,131,61,85,137,96,220,96,94,102,120,104,55,107,197,109,19,110,239,112,1,113,8,113,11,116,82,120,229,131,101,141,248,145,146,80,193,96,112,102,115,102,31,113,44,113,128,114,78,119,0,122,158,124,213,127,214,127,62,130,14,145,128,83,96,93,175,95,170,110,153,118,160,132,33,149,214,80,189,105,85,113,132,113,136,113,153,113,198,125,37,135,104,140,15,153,59,86,79,86,6,91,9,91,178,93,93,111,28,118,206,120,157,129,222,81,153,97,40,106,64,106,185,113,186,113,187,113,184,122,24,126,178,127,133,135,135,135,43,147,232,113,160,114,166,119,2,121,203,135,63,140,64,140,111,140,149,140,230,124,101,126,208,145,223,150,209,155,87,157,249,137,70,139,175,145,237,147,181,150,199,93,230,102,20,114,167,114,69,145,253,137,60,0,42,0,55,159,53,136,2,158,255,137,116,148,60,0,42,0,96,78,203,144,45,94,210,127,173,136,203,137,186,85,179,90,58,105,181,132,198,132,141,93,29,111,161,137,152,141,226,105,130,133,176,150,132,106,53,139,180,147,43,151,219,156,193,152,49,154,61,154,114,137,60,156,104,154,60,0,42,0,178,103,23,109,186,115,153,95,227,148,156,85,72,132,120,132,34,146,104,146,105,146,99,92,7,111,240,132,152,97,191,102,114,106,86,107,167,121,240,138,208,88,48,126,17,139,226,135,93,142,189,116,205,86,90,156,214,119,167,142,60,0,42,0,56,83,76,83,15,98,67,92,251,124,105,153,108,84,229,95,44,96,253,119,198,126,194,79,165,84,68,96,251,118,228,144,47,107,228,126,48,125,243,145,11,150,30,105,3,130,4,130,135,141,153,150,64,97,202,110,138,121,140,125,105,141,159,150,141,88,130,113,148,114,39,122,95,111,153,111,110,133,164,137,49,98,214,158,50,98,246,120,105,134,60,153,41,155,107,126,177,86,223,149,60,151,109,92,75,136,60,0,42,0,114,134,168,117,126,134,58,140,132,80,149,149,70,113,172,152,142,119,102,135,21,156,60,0,42,0,35,83,160,79,206,114,224,79,218,83,225,92,217,103,160,112,237,114,92,150,253,92,218,112,249,114,232,115,107,121,86,120,200,127,58,130,127,150,100,120,80,144,110,101,135,102,85,116,106,123,29,130,172,120,150,143,205,120,0,126,120,133,22,126,110,141,123,155,68,143,92,147,30,151,139,147,224,158,34,154,183,157,60,0,42,0,156,149,60,0,42,0,5,78,11,78,100,78,19,84,55,87,156,117,15,89,186,104,113,119,135,86,215,97,69,127,188,147,19,89,236,147,60,0,42,0,217,78,218,78,115,92,72,81,126,89,164,126,97,79,250,95,25,108,116,103,70,121,200,121,238,130,174,103,124,124,215,115,182,131,128,99,230,148,249,141,112,145,40,149,202,80,242,80,21,86,155,146,156,156,185,102,239,151,16,91,184,97,159,133,65,147,74,126,60,137,241,151,174,155,110,142,166,153,239,94,21,101,142,126,177,157,115,137,154,142,150,126,123,156,60,0,42,0,45,79,242,149,182,89,38,95,36,141,184,84,12,85,38,99,142,109,216,128,52,90,57,90,113,90,67,125,55,130,191,134,84,136,99,85,122,110,235,117,221,134,145,149,146,149,71,158,204,90,88,136,9,117,156,146,250,90,251,90,170,97,143,100,150,111,52,122,184,138,226,140,244,138,49,143,142,145,71,118,78,118,175,119,214,133,37,121,121,158,153,158,18,141,243,157,244,157,252,157,60,0,42,0,188,81,221,114,62,102,105,150,4,93,232,107,205,112,3,115,172,134,122,150,123,141,69,123,31,92,32,92,31,100,146,121,227,141,145,146,178,123,170,150,174,93,107,115,110,115,211,133,76,147,249,113,85,152,112,94,7,101,246,106,26,134,99,139,129,115,197,151,111,152,102,112,60,0,42,0,35,79,191,83,158,84,152,92,203,130,176,115,191,126,253,129,80,150,237,89,170,91,12,119,101,150,239,84,183,87,10,90,40,90,244,92,128,109,167,131,119,150,91,102,254,115,77,120,133,153,77,119,100,125,16,127,161,127,46,115,175,124,168,127,122,129,6,135,233,80,244,80,171,125,162,138,138,100,218,125,231,146,178,97,76,106,35,126,14,147,33,153,207,88,79,140,178,158,23,112,212,129,123,115,238,124,48,151,56,159,60,0,42,0,102,148,60,0,42,0,97,78,151,130,248,118,153,153,247,144,162,83,76,85,9,145,10,145,194,94,88,110,3,127,89,132,21,145,127,105,37,122,140,133,177,123,215,125,183,129,68,137,192,95,167,154,152,158,0,107,214,116,118,149,92,156,114,148,100,154,60,0,42,0,232,116,109,79,230,139,160,94,25,104,101,121,116,125,212,127,115,138,237,141,60,0,42,0,171,78,175,78,205,84,131,134,119,153,81,102,232,152,243,96,132,146,9,153,158,156,207,102,1,136,157,155,215,155,255,151,87,153,95,153,118,156,60,0,42,0,17,84,224,89,247,93,121,152,230,115,97,140,66,88,63,127,43,132,86,136,5,152,207,80,232,82,145,93,151,146,97,106,80,137,174,86,211,135,12,148,76,156,60,0,42,0,113,112,114,112,122,84,173,103,190,79,211,84,181,103,129,154,238,84,175,91,181,91,168,94,136,109,225,126,83,134,13,144,46,158,75,90,159,104,7,113,7,115,39,132,218,117,223,117,93,120,99,120,153,122,219,127,55,132,0,149,241,99,131,125,16,86,74,107,71,111,171,123,3,142,53,86,162,97,98,115,183,146,4,151,71,95,174,129,109,133,72,155,30,157,88,122,24,124,195,133,194,135,207,135,53,157,163,86,31,112,43,124,240,135,199,154,249,106,187,86,194,86,208,154,205,157,40,136,77,154,202,107,72,134,60,0,42,0,40,109,233,144,36,93,198,109,36,138,189,107,74,123,181,138,60,0,42,0,15,92,83,102,129,102,113,123,127,123,155,118,201,102,224,123,15,139,162,118,60,0,42,0,93,91,150,128,185,82,178,84,242,79,72,101,33,104,141,109,17,123,120,85,154,80,105,101,104,138,11,86,40,86,159,138,47,86,87,107,189,113,133,101,134,101,60,0,42,0,119,96,60,0,42,0,155,78,243,99,50,115,84,105,71,107,78,135,13,136,60,0,42,0,166,82,79,83,234,101,170,144,84,83,193,128,165,87,74,89,235,92,74,96,249,98,31,99,62,99,5,129,7,129,11,129,122,136,85,80,156,101,16,140,211,127,203,85,54,97,58,100,78,116,138,125,129,113,142,129,240,82,183,100,213,100,243,125,44,127,98,135,139,151,33,152,231,138,242,113,247,100,181,151,109,137,28,101,136,126,151,139,164,159,60,0,42,0,153,81,169,81,235,91,219,133,60,0,42,0,51,79,122,112,196,108,251,108,68,121,193,126,55,127,120,83,41,109,167,112,168,112,104,83,14,90,81,92,83,92,94,80,112,80,162,95,176,104,242,112,14,113,188,121,50,125,181,78,159,90,95,92,43,110,79,125,108,125,34,140,193,80,110,88,141,105,173,105,9,137,103,86,103,92,172,102,228,125,176,93,232,94,200,97,165,111,108,115,207,124,162,133,164,133,130,144,240,151,238,113,59,137,29,139,17,89,9,112,162,151,35,112,21,114,114,126,249,135,15,136,88,159,91,159,101,159,66,159,158,142,60,0,42,0,195,95,164,144,161,89,251,95,175,130,155,143,21,102,122,103,35,107,152,112,250,118,253,79,222,96,34,138,10,146,12,149,176,101,70,107,222,94,197,146,122,86,28,91,170,133,168,153,107,148,171,153,60,0,42,0,148,103,81,137,20,148,60,0,42,0,8,79,60,0,42,0,32,150,41,79,223,86,94,91,225,79,208,142,42,129,69,136,43,138,46,113,184,153,86,152,11,130,193,145,60,0,42,0,196,95,60,0,42,0,31,102,182,87,141,154,250,96,41,115,75,113,70,116,101,129,245,134,234,137,181,123,194,123,3,139,143,155,208,102,242,137,2,154,168,118,249,155,60,0,42,0,17,82,76,136,162,144,98,95,73,150,128,79,201,144,139,87,16,109,101,131,152,148,88,150,25,90,78,120,207,148,3,146,206,110,118,146,146,146,222,146,60,0,42,0,114,119,146,145,228,100,60,0,42,0,116,81,79,103,211,89,120,94,39,96,71,131,22,80,149,131,94,90,187,96,172,109,200,125,8,130,57,91,214,129,60,0,42,0,216,84,196,136,60,0,42,0,246,81,2,83,68,81,71,81,8,83,187,139,247,95,121,108,197,84,95,96,54,109,247,128,248,128,41,138,126,138,239,140,60,0,42,0,196,150,138,113,60,0,42,0,61,113,60,0,42,0,199,139,56,113,87,138,16,89,123,101,60,0,42,0,17,79,226,79,238,79,187,84,165,94,203,112,204,112,158,127,41,129,25,129,58,158,249,129,133,140,144,153,7,106,157,146,228,154,249,154,128,147,180,155,66,157,197,147,72,153,67,156,205,152,60,0,42,0,236,130,60,0,42,0,61,103,235,110,67,111,135,125,212,124,60,0,42,0,192,121,171,92,192,92,219,115,227,126,150,136,7,116,8,149,197,85,180,110,147,116,14,137,15,137,185,146,145,135,77,126,97,126,229,147,253,147,69,159,60,0,42,0,1,84,12,98,244,101,158,117,241,118,40,107,229,128,123,152,71,102,15,138,124,152,87,134,90,134,30,140,173,90,65,94,223,99,81,110,91,134,199,136,8,152,72,105,162,122,10,152,24,86,159,88,0,151,70,155,83,86,3,91,84,107,3,126,102,133,81,135,221,138,67,139,123,126,86,155,73,154,80,148,26,155,60,0,42,0,198,79,144,95,163,132,60,0,42,0,184,139,116,84,193,89,233,139,148,81,41,104,221,115,102,80,49,138,138,102,97,138,48,122,38,145,200,124,145,145,232,118,60,0,42,0,237,101,53,79,143,94,127,108,167,130,144,79,121,83,52,96,128,108,217,83,100,96,43,102,43,109,191,87,48,107,136,107,197,112,236,115,214,82,77,101,88,101,215,82,252,112,234,126,237,126,87,145,163,85,251,88,127,90,2,103,134,110,110,125,83,128,57,138,73,97,102,113,154,125,196,132,201,140,210,105,53,111,74,111,226,118,129,119,210,125,95,128,138,146,93,115,56,122,214,125,99,155,199,133,178,119,218,133,140,126,110,156,60,0,42,0,255,132,60,0,42,0,5,84,105,143,13,102,163,91,50,95,210,142,139,104,22,140,167,85,71,88,151,90,3,97,11,97,206,99,49,132,50,132,132,102,74,113,68,116,210,132,123,119,7,81,164,121,174,123,7,126,231,127,86,135,215,146,193,97,127,133,224,138,252,138,121,147,253,153,206,119,254,127,252,133,16,134,9,136,94,139,26,156,60,0,42,0,132,115,185,115,195,117,172,96,203,101,1,116,1,135,217,90,41,111,182,102,135,116,136,106,191,116,248,97,60,0,42,0,186,84,9,144,69,102,220,112,120,144,72,152,99,118,108,118,60,0,42,0,48,96,235,108,33,102,171,112,218,126,41,119,168,136,201,148,4,116,52,119,82,136,50,110,98,125,101,105,102,105,73,146,185,120,25,133,95,149,153,151,180,152,60,126,79,126,199,147,130,139,25,141,60,0,42,0,74,82,182,117,134,132,116,151,155,133,165,143,170,143,190,151,60,0,42,0,116,122,136,101,116,78,102,91,164,92,195,92,19,131,246,108,149,136,52,158,5,142,198,88,120,91,168,93,169,111,226,113,247,137,228,150,253,157,60,0,42,0,234,150,164,129,48,106,93,130,76,143,213,156,72,156,60,0,42,0,64,136,55,84,121,87,216,114,86,104,17,140,144,141,20,139,37,112,60,0,42,0,67,87,203,82,217,87,4,113,219,82,100,88,143,113,168,122,18,133,242,82,243,82,171,133,232,153,145,86,206,88,111,115,176,133,219,102,251,113,208,129,196,119,13,134,230,88,11,114,129,126,186,145,60,0,42,0,245,94,251,91,236,101,225,93,111,154,74,103,67,117,226,139,203,92,66,96,53,109,84,109,3,125,64,131,104,131,18,104,106,104,229,107,227,115,113,80,11,92,170,95,215,99,98,138,180,153,41,145,159,156,90,86,111,111,51,101,51,106,197,113,214,113,149,116,243,135,79,156,88,156,101,112,60,0,42,0,66,83,173,139,175,139,40,79,91,108,197,143,154,79,250,93,135,95,229,114,255,143,10,144,137,107,10,138,19,138,25,138,94,89,253,93,190,107,4,122,92,144,59,97,208,140,64,86,96,111,72,133,104,152,66,148,60,0,39,0,208,253,89,0,39,0,60,0,42,0,43,78,39,87,139,83,22,84,152,94,188,98,146,103,173,87,38,158,96,104,45,158,225,87,114,91,212,148,15,105,9,157,15,147,40,157,211,88,118,157,26,148,60,0,42,0,89,114,34,79,145,83,136,92,189,130,147,83,161,115,10,116,12,123,156,134,16,88,21,93,22,93,175,109,26,115,88,116,90,119,89,136,4,111,86,159,60,0,42,0,138,83,140,94,209,84,22,85,94,85,214,117,197,150,2,118,101,133,60,0,42,0,156,82,32,87,103,143,154,78,126,137,182,139,156,78,189,114,211,143,158,78,203,142,5,90,28,99,17,120,249,79,41,108,109,90,151,99,29,138,224,99,44,108,48,115,80,128,20,87,15,122,171,122,126,159,60,0,42,0,91,78,64,84,60,0,42,0,121,96,102,82,223,112,218,115,237,128,99,80,38,93,202,109,249,109,9,113,17,113,248,131,9,150,110,110,76,129,89,113,125,120,34,145,227,90,57,111,150,93,46,106,131,145,185,149,46,91,232,97,246,123,213,97,217,129,235,158,60,0,42,0,160,139,246,94,235,149,37,78,141,89,171,130,0,138,1,138,169,92,22,102,191,108,142,112,212,144,248,89,43,90,255,114,20,120,154,131,46,90,208,118,113,85,2,116,79,120,46,138,134,149,14,150,82,93,83,93,117,123,150,125,18,135,105,88,197,99,76,105,125,138,158,120,5,133,156,152,179,83,100,134,187,149,144,106,79,152,84,152,180,86,219,88,204,93,55,124,233,106,236,158,231,88,77,91,215,93,214,93,21,107,57,121,125,158,163,158,60,0,42,0,53,89,129,98,135,108,117,78,86,81,68,89,232,79,87,81,61,83,7,95,77,136,67,80,163,83,169,99,60,119,18,132,254,144,83,145,67,93,29,97,74,98,220,99,234,104,48,110,55,110,48,116,67,144,146,150,60,105,104,127,250,136,20,111,23,137,45,98,88,135,71,155,94,86,189,142,47,126,191,106,225,158,180,83,23,117,11,156,160,157,228,158,94,159,145,159,60,81,237,158,105,152,52,159,216,93,218,93,238,102,88,155,57,159,116,159,246,158,60,0,42,0,140,83,159,89,195,137,106,114,189,84,242,89,101,95,102,95,26,120,1,85,180,91,79,102,251,112,115,130,142,137,140,154,80,80,20,113,26,140,129,150,173,85,48,88,101,101,48,113,49,113,18,115,111,120,85,132,193,150,191,80,59,105,142,110,223,110,235,156,173,83,149,88,165,102,150,113,125,145,10,91,51,140,13,153,8,157,196,113,213,113,250,138,93,141,51,155,213,102,51,157,64,145,16,154,19,154,165,86,63,91,118,130,11,141,197,142,227,102,19,114,182,145,52,154,195,157,84,112,23,141,254,137,140,139,188,145,92,153,87,154,240,157,119,130,78,112,197,145,96,154,103,112,158,139,83,140,84,140,105,112,60,0,42,0,46,89,137,84,206,89,176,98,241,108,131,107,230,128,15,119,231,121,47,158,96,146,245,150,133,151,38,157,60,0,42,0,108,98,138,127,38,150,51,150,248,101,104,103,128,112,207,152,111,79,183,82,28,108,161,117,150,148,159,87,137,95,28,102,11,109,143,127,202,112,220,115,59,119,125,150,53,93,56,93,218,99,216,134,109,101,152,102,74,105,108,113,147,121,13,118,249,138,48,143,90,147,57,157,186,152,10,148,17,156,55,151,9,158,60,0,42,0,240,78,82,79,113,87,159,92,123,81,205,103,180,112,39,108,210,117,59,125,159,80,103,105,238,142,67,97,49,108,70,135,10,153,218,153,233,97,1,101,98,118,34,121,60,0,42,0,15,96,89,96,55,104,149,127,71,138,216,105,62,111,35,106,1,112,60,0,42,0,170,127,60,0,42,0,122,94,45,89,6,84,150,89,150,103,128,107,69,121,30,138,147,85,125,132,70,105,112,129,1,157,128,144,60,0,42,0,59,114,39,92,45,92,180,128,154,87,218,89,227,92,122,143,4,80,209,112,231,115,145,122,156,80,47,88,250,99,35,140,250,142,194,85,177,90,173,95,46,97,22,100,71,100,231,110,58,115,89,144,101,144,127,100,154,102,163,105,100,116,118,116,154,146,214,152,6,153,162,93,164,93,216,120,175,122,176,122,26,153,71,126,32,139,33,139,144,147,208,156,187,152,40,134,142,144,100,152,41,156,60,0,42,0,248,78,142,91,134,92,173,98,115,103,213,114,237,130,172,84,252,103,17,119,133,122,136,122,0,130,96,80,121,90,62,93,148,110,212,132,154,105,34,157,196,149,21,154,105,159,213,157,60,0,42,0,126,122,111,131,129,137,165,148,142,136,148,122,68,123,111,132,79,138,142,113,158,137,127,151,95,115,94,158,172,133,60,159,220,102,255,113,94,130,229,133,197,119,0,128,133,126,194,157,145,139,112,148,60,0,42,0,59,80,150,99,48,105,141,102,78,86,113,111,46,136,60,0,42,0,55,114,54,128,83,99,246,99,216,148,58,114,254,145,227,146,129,147,232,100,60,0,42,0,95,78,20,84,182,81,220,87,206,145,34,86,28,111,196,88,60,0,42,0,26,78,246,83,243,102,117,152,245,102,186,144,28,89,180,98,177,78,188,103,2,109,1,152,89,99,84,102,189,103,232,112,88,85,178,109,18,140,40,88,151,107,75,129,73,132,19,145,183,88,106,105,109,105,140,153,247,80,196,102,197,102,75,107,193,113,141,116,219,100,163,118,177,119,52,145,101,151,170,93,171,93,178,111,1,139,35,153,136,86,235,100,215,102,184,119,113,147,234,100,23,114,15,121,145,147,65,153,122,157,55,148,104,151,92,154,8,158,60,0,42,0,170,78,60,0,42,0,0,78,74,78,12,95,183,143,100,136,10,79,99,136,59,83,26,84,241,88,157,79,78,121,191,84,34,109,152,96,15,110,23,115,105,117,252,144,241,148,249,88,214,99,57,107,220,134,149,121,219,90,42,111,38,122,165,146,4,91,107,86,1,89,127,116,101,158,68,126,185,106,201,107,171,145,223,158,105,139,214,157,243,158,60,0,42,0,65,78,234,78,28,83,47,87,55,89,198,143,157,81,144,91,130,108,210,139,135,79,156,91,33,96,182,108,203,114,106,136,228,143,116,153,166,84,232,89,211,92,94,96,248,98,194,103,198,115,245,116,59,141,251,143,167,91,248,93,44,95,69,98,24,104,75,104,25,119,240,128,152,136,17,138,164,140,205,117,251,121,27,128,19,132,44,105,160,127,230,134,81,138,82,138,189,140,87,144,144,90,134,102,56,105,131,138,224,141,9,152,144,152,244,152,145,117,0,81,170,113,183,123,122,144,172,93,91,95,92,95,148,135,36,152,37,152,242,91,183,93,3,124,74,152,93,95,94,95,59,139,212,147,78,124,250,137,137,139,3,158,60,0,42,0,89,78,242,93,229,78,135,148,65,79,58,101,227,119,225,130,226,130,161,94,35,130,129,134,212,145,26,80,70,98,22,123,24,144,79,145,111,80,58,93,209,101,5,105,24,146,111,146,230,156,255,136,214,101,38,142,34,143,124,101,152,135,165,106,18,121,100,130,251,135,87,152,89,143,110,159,60,0,42,0,66,78,73,78,191,78,11,95,8,82,198,95,122,130,7,83,138,128,174,139,166,78,7,79,121,92,2,95,133,130,63,79,90,79,174,82,83,84,68,87,121,95,145,98,89,103,52,128,197,130,209,139,145,144,126,79,109,84,121,84,196,92,8,96,63,96,19,102,141,103,37,107,198,108,136,112,199,121,206,126,227,139,127,154,203,79,85,89,31,94,32,94,8,95,187,103,66,109,180,115,171,117,191,127,117,136,118,143,8,85,188,87,146,96,57,99,39,104,58,104,45,107,101,109,115,109,202,118,163,136,10,140,109,150,218,82,246,87,248,87,165,96,156,99,185,107,112,117,91,120,155,127,202,127,204,127,31,132,50,138,51,138,89,140,91,140,56,144,244,145,191,150,70,94,97,101,121,102,237,104,148,107,89,110,50,113,225,134,77,138,199,141,252,142,32,146,174,154,132,78,127,81,15,97,162,110,72,115,236,117,106,119,233,122,34,127,169,127,132,128,212,136,219,136,99,138,233,82,213,90,217,94,143,105,105,111,23,118,137,129,250,132,52,135,126,151,197,153,4,81,142,100,248,105,197,107,60,0,42,0,160,113,164,113,188,113,30,118,188,138,82,149,93,158,98,158,211,158,147,82,27,87,191,88,17,91,31,91,167,93,182,97,204,97,192,102,170,107,186,111,218,113,49,118,150,119,83,122,10,126,87,130,143,133,160,135,57,137,241,91,129,101,206,102,141,106,93,107,225,113,241,113,243,127,252,127,198,129,150,140,249,140,168,155,84,118,217,133,221,133,0,141,176,147,113,149,118,126,121,126,119,140,44,151,227,155,130,157,131,157,141,157,55,112,25,134,111,139,112,139,179,145,183,145,80,153,200,86,63,148,193,157,202,157,255,97,124,137,91,154,231,157,73,134,254,157,155,139,120,159,60,0,42,0,217,86,224,86,37,150,52,150,140,79,148,87,251,89,7,109,53,131,107,131,243,151,131,154,54,104,183,107,36,108,112,150,208,81,245,121,192,136,223,148,123,150,130,150,145,85,25,88,99,90,20,97,67,123,106,125,69,107,181,110,139,121,145,132,45,133,71,97,22,118,166,146,248,125,135,151,242,138,18,151,240,153,126,86,201,149,32,151,254,151,60,0,42,0,152,81,81,78,31,84,190,114,194,130,166,101,206,112,160,87,255,108,1,87,254,92,250,114,226,115,118,131,20,138,26,138,108,90,197,91,31,93,47,93,235,109,33,138,246,148,29,146,130,159,219,110,146,120,30,145,36,89,41,133,128,146,86,86,165,107,140,116,190,138,154,86,173,106,235,135,42,151,87,159,227,157,60,0,42,0,90,78,244,94,57,92,21,95,50,84,110,153,147,134,122,141,144,150,254,109,15,146,242,152,160,150,119,151,238,152,4,103,17,143,228,120,155,141,131,106,62,118,177,150,190,93,229,111,230,111,190,135,31,134,253,106,110,118,148,139,60,0,42,0,112,83,26,131,21,109,228,128,189,87,55,88,90,110,12,115,213,94,115,145,109,97,74,118,150,97,151,97,163,155,218,97,188,106,60,0,42,0,140,124,60,0,42,0,148,94,220,95,241,130,64,80,92,104,241,115,186,131,104,85,116,90,150,90,37,97,54,110,236,126,32,103,80,113,91,116,200,90,164,120,51,149,36,86,132,100,7,117,211,125,40,127,66,127,103,135,207,140,49,106,142,116,67,127,46,137,72,147,25,151,44,157,102,158,48,91,201,97,186,129,250,151,22,117,112,158,145,157,167,157,182,86,70,91,126,91,22,101,76,127,33,134,77,139,251,106,212,116,47,121,123,139,175,157,77,148,147,126,51,136,234,157,200,142,249,157,14,158,26,158,60,0,42,0,193,118,206,143,20,131,200,118,103,131,185,131,182,85,36,132,37,132,38,132,205,134,129,110,139,110,62,132,204,80,75,88,121,105,226,110,229,132,70,111,146,113,71,135,105,116,127,135,52,91,223,113,8,126,162,135,217,111,218,111,244,111,192,133,174,137,13,139,98,141,5,112,163,147,13,101,27,112,32,112,47,112,5,136,255,106,52,112,15,141,80,112,93,124,92,112,111,124,60,0,42,0,232,119,226,144,103,109,172,104,141,152,149,152,150,152,108,100,113,95,65,111,63,118,78,122,52,152,202,93,238,94,27,148,109,118,60,0,42,0,32,102,142,102,108,120,181,90,161,129,95,86,149,151,102,156,60,0,42,0,223,84,55,85,178,85,60,0,42,0,99,79,229,98,200,117,149,144,184,94,173,80,200,85,24,145,205,150,137,88,222,90,117,97,253,110,230,105,69,114,112,86,197,88,193,100,173,111,250,144,91,149,195,129,85,118,221,150,222,147,217,156,241,94,73,112,84,153,69,156,219,157,112,118,60,0,42,0,129,85,216,99,153,152,82,152,43,156,60,0,42,0,56,108,44,117,143,84,58,96,243,108,209,79,199,82,200,82,16,104,199,87,128,96,225,103,140,109,127,96,155,80,229,96,17,97,103,110,103,120,96,138,78,88,113,93,110,95,57,97,249,134,66,97,10,142,156,121,172,156,52,142,210,155,60,0,42,0,40,117,218,130,61,120,159,145,60,0,42,0,24,79,231,95,56,101,102,84,46,96,209,108,125,94,12,144,160,96,128,158,250,110,130,97,42,81,62,145,152,86,0,112,204,106,139,126,48,128,60,0,42,0,34,92,36,92,49,117,139,108,185,114,174,144,185,108,172,128,35,96,191,101,163,117,243,92,95,109,222,121,156,131,184,131,245,144,192,148,100,80,176,134,39,138,48,144,56,110,54,115,74,144,127,156,98,105,55,115,62,146,137,156,15,143,192,153,85,133,99,135,119,155,54,143,139,155,254,106,60,0,42,0,203,83,9,103,35,78,99,83,195,130,73,145,145,127,174,94,47,104,144,127,160,131,132,104,72,128,28,129,213,148,117,110,137,121,15,135,170,146,241,105,86,114,87,114,221,158,238,97,60,0,42,0,200,83,243,83,124,94,81,79,145,79,103,91,214,114,255,124,202,84,255,86,247,89,165,91,223,92,218,103,112,114,80,121,241,139,246,143,0,85,180,134,180,78,129,140,201,145,109,145,152,138,44,159,60,0,42,0,143,132,60,0,42,0,188,143,92,98,161,126,194,143,195,143,123,122,83,150,6,125,118,134,57,85,228,109,211,118,0,118,138,123,60,0,42,0,144,78,142,78,152,144,3,79,89,79,164,89,117,98,69,103,36,107,151,115,153,115,188,101,194,118,254,129,103,136,124,156,123,78,222,79,106,81,186,121,253,122,1,130,48,131,27,90,47,90,49,90,89,104,243,114,0,140,81,145,128,153,20,110,56,132,133,150,233,150,90,155,35,88,44,88,51,93,78,93,91,93,9,97,196,99,112,105,29,110,97,110,109,117,98,120,116,129,46,132,62,144,172,154,26,97,213,101,97,105,134,105,72,107,79,114,92,116,69,130,94,134,206,137,1,111,110,119,172,122,6,130,21,137,118,107,173,127,77,133,83,135,219,138,211,150,24,153,41,91,158,111,166,137,48,142,95,107,181,116,184,135,63,143,93,147,35,139,195,154,189,155,223,101,69,124,31,154,242,155,27,134,5,156,224,157,6,158,60,0,42,0,14,78,136,78,27,79,135,91,127,92,189,127,232,150,193,79,227,79,39,99,185,121,237,139,4,87,255,92,100,121,74,80,44,83,9,87,190,94,84,101,5,145,158,101,45,132,180,80,217,91,64,105,64,116,16,118,7,130,158,138,179,122,217,146,40,152,137,159,115,86,188,93,217,97,144,140,148,101,140,158,12,134,108,159,60,0,42,0,128,128,137,115,109,154,43,87,127,128,139,130,140,130,170,89,236,95,107,153,178,128,193,144,49,102,241,114,215,121,31,131,252,79,234,92,103,95,116,109,33,120,176,148,132,152,144,85,223,87,9,88,134,96,208,96,50,107,226,109,239,109,172,136,21,140,51,144,8,150,133,85,169,85,187,85,128,90,211,91,189,94,161,95,219,104,220,104,235,104,52,113,25,116,222,119,114,120,213,136,71,144,235,152,173,153,70,158,8,97,234,110,92,113,34,122,109,127,72,130,174,132,227,132,137,138,58,146,16,152,215,90,142,93,43,98,211,107,68,115,9,118,206,125,31,135,46,135,13,143,137,146,74,86,126,97,79,111,54,122,249,132,129,133,107,140,121,144,202,146,255,156,166,111,207,113,224,113,119,133,237,138,37,147,190,149,37,157,39,157,42,157,37,81,7,121,166,121,74,155,108,158,82,118,22,121,28,121,101,122,253,123,88,126,167,145,82,157,242,106,71,153,125,139,93,143,45,148,49,151,14,107,72,154,59,155,94,124,74,156,248,157,18,158,29,107,165,159,201,142,48,155,49,155,106,112,60,0,42,0,114,124,41,114,60,0,42,0,154,111,60,0,42,0,230,86,34,158,72,82,164,81,129,96,34,119,51,158,195,91,1,110,6,110,10,110,21,110,204,96,245,109,126,132,233,104,172,132,14,135,247,136,83,158,162,123,246,156,53,135,204,153,27,157,61,91,119,157,65,112,24,159,29,159,60,0,42,0,67,81,134,81,32,141,167,144,88,84,237,86,133,108,108,103,163,87,48,114,159,140,159,83,225,84,6,87,14,123,150,134,129,136,161,83,91,145,14,87,244,99,114,110,40,115,24,127,18,131,40,146,11,159,18,87,19,87,108,88,180,90,196,90,144,110,146,110,63,115,66,115,157,132,158,105,172,105,149,143,227,125,1,126,93,135,111,135,109,155,124,106,177,127,151,133,136,135,28,139,69,143,255,158,177,147,222,106,141,144,53,154,162,157,176,157,181,83,60,0,42,0,220,143,246,118,58,144,96,144,250,146,60,0,42,0,23,89,153,128,180,89,209,130,40,96,98,150,184,87,79,136,134,80,155,90,190,99,87,116,144,121,63,97,235,136,17,137,36,137,110,86,88,152,60,0,42,0,240,102,241,102,166,126,4,125,185,123,241,119,95,95,96,95,60,0,42,0,8,103,9,98,22,82,156,89,132,92,136,98,63,121,179,92,165,115,113,96,133,96,166,96,142,134,143,134,207,142,186,148,5,150,115,99,192,141,195,141,164,124,138,141,5,146,181,124,94,146,177,149,178,149,51,91,62,106,215,123,189,93,160,159,70,124,57,112,37,134,230,158,26,114,180,121,141,142,101,124,17,158,112,124,25,158,60,0,42,0,85,102,10,127,128,132,136,102,50,108,116,113,149,132,51,108,107,89,121,135,95,141,53,152,167,153,7,141,60,0,42,0,145,78,251,82,0,83,29,79,233,86,152,89,132,108,173,126,184,130,0,102,71,117,3,119,208,121,231,144,162,109,28,125,24,128,58,128,22,145,242,150,42,97,179,110,96,123,124,123,183,132,137,113,144,111,83,133,198,146,82,106,212,123,28,126,60,0,42,0,65,81,45,150,61,89,142,98,193,114,104,150,122,131,146,107,151,85,23,146,149,150,158,107,30,137,187,153,210,120,241,140,35,151,107,159,115,159,60,0,42,0,85,91,208,143,159,103,211,144,125,96,6,145,93,145,138,80,242,96,32,97,75,144,77,97,106,129,235,151,245,151,133,113,168,113,247,125,252,125,116,133,21,126,128,133,150,145,158,145,43,153,244,133,215,151,222,151,10,134,251,151,60,0,42,0,163,98,103,126,60,0,39,0,208,253,90,0,39,0,60,0,42,0,0,94,29,83,158,108,202,143,130,84,246,98,37,125,46,125,84,146,115,155,220,129,226,129,60,0,42,0,66,103,175,108,56,120,122,80,146,85,244,151,209,150,252,120,77,137,220,150,203,86,208,86,229,150,60,0,42,0,139,84,60,0,42,0,125,112,126,112,62,117,201,84,61,104,214,112,209,131,61,110,168,110,117,119,243,140,60,0,42,0,176,91,61,93,60,0,42,0,141,81,40,87,87,98,5,109,125,143,164,80,9,143,104,145,14,81,33,126,60,0,42,0,66,81,204,124,42,124,46,124,21,148,31,148,60,0,42,0,177,84,60,0,42,0,29,102,90,104,193,91,221,99,70,86,141,100,39,81,5,101,18,101,57,81,34,101,177,141,178,141,60,0,42,0,130,102,171,102,219,140,94,141,62,147,60,145,253,111,84,142,201,116,10,141,232,147,210,116,71,145,82,112,131,139,218,116,182,121,120,137,154,139,97,153,60,0,42,0,40,83,66,114,152,127,67,141,205,140,231,129,53,133,216,140,19,141,210,154,28,141,60,0,42,0,117,154,212,153,60,0,42,0,88,89,9,95,15,129,95,88,108,132,186,146,211,129,223,129,60,0,42,0,174,80,109,144,223,124,103,142,169,145,60,0,42,0,255,81,127,148,60,0,42,0,233,101,163,103,6,104,164,134,215,104,161,111,170,116,187,133,112,126,251,133,60,0,42,0,118,112,129,118,130,118,21,85,35,85,32,144,141,104,191,85,101,97,112,113,65,130,106,86,9,124,229,113,195,122,95,139,174,141,129,142,200,122,60,0,42,0,25,82,158,98,162,108,233,98,206,108,253,108,35,141,238,143,71,82,54,85,103,85,59,94,46,123,52,130,172,140,173,110,224,119,22,86,231,90,88,94,166,123,54,133,13,106,117,107,206,138,92,141,199,100,164,111,159,118,148,119,0,124,11,121,87,137,46,139,254,140,12,136,90,159,112,159,5,158,60,0,42,0,40,89,196,78,130,94,68,108,3,102,23,102,81,99,49,93,60,0,42,0,44,79,60,0,42,0,60,141,29,98,202,140,151,156,253,155,8,136,2,156,97,156,60,0,42,0,14,96,60,0,42,0,46,140,86,139,91,139,60,0,42,0,206,86,60,0,42,0,151,88,43,145,158,88,142,97,47,127,103,106,183,113,148,116,240,119,243,120,126,127,82,126,68,139,91,156,60,0,42,0,3,149,229,146,17,117,96,141,8,141,60,0,42,0,78,98,18,84,175,98,83,89,19,99,228,103,251,103,243,84,103,80,179,85,248,99,35,110,66,105,132,82,99,100,182,118,29,106,240,137,187,118,71,139,68,159,71,159,60,0,42,0,45,103,52,117,248,149,187,134,225,148,96,113,80,114,152,149,154,123,43,128,88,147,87,139,60,0,42,0,143,83,195,98,242,130,40,119,31,120,41,100,138,156,157,156,55,142,147,155,186,155,60,0,42,0,77,78,121,112,200,139,164,84,222,103,5,104,184,112,177,91,196,117,177,134,160,110,80,138,62,100,168,105,5,151,161,145,60,0,42,0,8,89,130,124,90,99,139,101,142,101,88,100,184,105,75,159,60,0,42,0,133,91,161,106,60,0,42,0,132,122,89,146,60,0,42,0,58,80,38,120,181,80,232,91,53,118,60,0,42,0,172,103,190,108,225,107,195,101,52,104,152,124,197,134,230,152,201,96,64,138,136,141,121,138,154,149,53,140,97,86,166,93,157,133,133,144,17,151,8,108,10,108,187,119,111,158,220,101,107,139,88,153,227,156,89,154,89,155,99,156,7,158,157,139,60,0,42,0,169,101,208,152,85,92,207,118,45,93,172,101,22,116,12,100,222,118,131,93,132,93,144,105,173,152,248,90,134,145,79,106,62,143,245,158,60,0,42,0,96,83,84,79,24,98,8,104,95,104,217,122,97,80,253,126,218,131,231,104,91,110,38,98,187,125,152,93,26,143,48,98,101,134,102,134,177,137,79,143,103,139,56,134,79,154,60,0,42,0,32,95,53,95,224,122,189,80,35,145,220,90,112,95,94,97,51,111,80,115,187,124,1,133,103,144,178,102,31,106,139,116,38,153,209,135,63,154,70,156,158,158,60,0,42,0,201,78,127,149,119,149,168,109,140,99,50,111,101,94,3,121,60,0,42,0,8,78,215,78,89,98,16,94,86,103,192,128,38,141,128,124,51,94,177,109,57,129,238,117,156,150,135,88,130,93,91,94,236,140,44,118,52,118,149,119,60,0,42,0,241,147,60,0,42,0,75,79,138,148,177,89,246,93,219,98,45,102,196,118,215,145,65,85,74,146,203,153,188,122,99,147,189,118,60,0,42,0,42,114,43,114,126,98,188,108,117,116,60,0,42,0,236,83,70,81,207,139,155,103,151,87,164,112,227,114,117,141,10,123,129,128,208,101,249,104,84,138,103,113,105,127,135,128,136,128,153,141,204,102,243,113,161,155,194,106,190,119,132,127,60,0,42,0,64,127,60,0,42,0,7,135,251,85,236,90,110,144,60,0,42,0,135,83,152,98,125,107,250,119,19,120,119,124,116,134,242,84,209,87,141,124,169,136,96,85,138,96,98,102,99,102,132,143,134,85,240,134,95,138,42,140,178,153,122,100,18,143,212,120,25,143,184,146,153,143,196,135,158,86,43,139,58,139,191,155,77,143,129,139,139,139,60,0,42,0,5,128,125,78,107,85,135,121,23,149,109,141,54,137,117,137,60,0,42,0,217,143,216,103,89,109,25,144,219,109,23,133,28,106,106,111,103,158,197,135,211,157,60,0,42,0,64,119,87,132,60,0,42,0,30,141,136,148,166,79,72,109,205,115,206,115,215,128,158,140,42,94,21,104,98,104,30,119,31,119,39,120,111,121,221,145,117,80,109,104,89,145,202,91,116,132,73,144,195,90,56,100,159,101,104,105,73,115,4,117,142,121,150,132,193,132,65,146,85,151,155,105,157,107,103,116,170,120,155,121,103,111,180,123,60,106,181,111,251,129,189,133,49,147,67,143,124,147,72,124,117,156,60,0,42,0,202,139,174,98,149,103,43,95,35,102,120,143,82,92,91,117,185,117,21,119,151,136,62,125,68,128,25,132,214,136,58,138,235,142,28,127,57,122,215,153,37,126,18,155,240,158,60,0,42,0,51,87,53,150,188,126,61,117,178,79,11,99,99,150,41,158,47,99,21,103,26,104,22,125,57,119,72,141,86,145,102,88,213,99,124,125,118,101,113,116,171,138,209,140,244,146,71,149,7,151,6,157,173,147,174,147,60,0,42,0,231,81,137,78,66,79,195,89,129,95,20,96,45,114,228,139,233,87,229,92,35,99,161,112,240,114,221,112,16,119,178,148,29,93,34,93,153,99,25,115,65,119,71,128,238,148,156,90,193,99,93,123,176,95,184,132,92,119,45,142,102,146,180,95,143,123,26,147,220,123,7,155,214,155,101,118,60,0,42,0,54,108,141,98,253,124,239,98,159,99,120,102,56,97,156,100,116,101,60,0,42,0,99,107,193,139,209,144,39,94,63,101,199,117,64,94,60,138,99,88,205,138,45,145,10,157,73,139,60,0,42,0,75,78,47,101,110,83,65,108,157,130,49,84,245,93,101,108,103,87,157,103,220,108,229,119,199,126,162,128,0,104,87,121,211,121,214,121,209,128,221,128,124,136,1,80,183,117,108,121,234,121,2,129,187,150,148,104,32,98,37,105,248,129,24,100,148,121,25,122,149,125,176,105,24,135,182,153,247,156,50,157,84,126,53,134,5,159,60,0,42,0,103,98,132,79,183,89,244,118,234,89,36,80,60,80,64,128,222,145,244,87,247,87,212,109,76,128,13,105,150,107,134,114,131,121,119,125,214,141,237,85,225,116,68,146,140,88,109,100,189,153,2,91,121,97,16,111,47,142,52,106,177,129,54,126,119,128,217,135,96,142,196,142,145,142,60,0,42,0,2,89,98,107,234,83,234,81,167,82,232,101,47,150,64,87,65,87,11,94,122,98,102,108,154,108,184,126,183,130,62,96,167,98,73,121,11,131,171,84,73,96,7,99,179,103,20,109,11,120,121,136,117,143,253,109,187,117,25,125,40,138,190,141,249,142,249,158,111,145,181,95,226,133,103,137,60,0,42,0,36,150,243,129,150,130,215,95,238,95,123,98,120,140,54,82,148,83,129,87,25,94,28,94,187,108,153,112,40,141,227,143,197,144,231,79,217,92,162,94,164,94,3,99,227,103,9,104,55,109,81,121,95,150,33,90,143,95,26,99,74,102,78,104,254,114,233,121,244,129,159,136,61,141,126,143,127,78,107,80,157,95,183,99,189,104,86,105,24,115,100,117,212,117,242,121,247,121,146,122,41,125,208,127,160,136,215,137,173,140,218,148,55,158,130,80,59,93,88,95,122,102,222,110,227,117,237,134,253,142,152,154,216,91,204,94,49,100,205,110,26,122,107,123,110,127,241,141,10,143,39,149,201,150,134,88,239,110,76,111,144,117,253,136,159,137,140,138,141,146,95,94,132,97,111,100,171,113,58,122,163,129,239,137,234,140,44,142,213,146,243,100,216,101,4,112,251,125,178,150,228,153,25,157,40,81,149,82,229,97,242,100,219,106,73,122,178,135,235,97,4,141,205,106,198,116,246,137,45,154,239,155,41,121,81,140,58,154,71,154,147,142,217,157,85,148,82,140,60,0,42,0,148,95,60,0,42,0,45,78,0,79,119,108,35,82,144,89,120,95,224,95,200,108,130,112,200,126,202,103,197,118,115,136,159,148,47,130,119,136,66,125,33,146,82,94,32,133,58,149,191,146,164,135,36,157,189,135,126,147,40,159,113,142,24,148,102,124,60,0,42,0,191,128,205,121,162,81,160,85,48,92,90,88,92,88,113,107,68,113,107,129,7,118,46,122,53,142,92,122,60,0,42,0,242,78,23,79,149,89,198,114,76,121,61,131,118,136,205,145,155,134,69,80,62,119,57,88,145,90,87,123,70,136,229,138,60,0,42,0,222,93,31,130,204,139,156,79,104,84,50,109,191,112,234,139,208,112,216,115,128,143,238,144,159,95,171,99,205,109,234,119,49,144,60,158,140,85,165,124,82,141,8,143,130,146,217,140,22,143,12,151,242,153,233,118,5,139,67,157,6,154,120,139,60,0,42,0,175,89,116,143,248,142,60,0,42,0,152,128,26,94,155,117,247,131,109,102,109,119,146,123,222,155,60,0,42,0,163,126,55,79,106,84,146,84,153,91,201,126,145,81,174,84,60,102,2,125,196,128,110,131,177,118,78,145,93,102,153,124,100,132,75,138,3,117,118,138,253,80,186,118,206,153,99,86,16,126,164,154,64,124,85,124,82,124,95,154,60,0,42,0,49,103,175,82,143,79,219,139,190,144,25,109,49,131,42,104,224,115,248,139,42,115,67,120,252,121,190,136,226,148,81,125,219,134,133,138,230,141,224,105,116,111,107,135,150,146,101,106,248,138,108,140,239,153,162,155,56,157,38,112,235,106,231,106,250,155,4,159,41,136,60,0,42,0,249,122,207,108,250,122,162,112,1,123,63,131,219,112,139,122,16,144,28,123,51,130,3,118,201,123,237,113,11,136,133,142,65,156,78,91,95,112,239,102,24,107,37,114,62,136,131,148,60,0,42,0,54,78,59,78,148,91,196,98,92,127,124,150,26,110,110,113,81,113,93,138,49,86,208,111,136,158,169,119,154,82,209,86,184,101,218,119,60,0,42,0,43,79,71,79,79,79,169,82,187,126,206,130,126,87,124,103,232,108,46,141,236,143,123,154,244,88,241,103,182,107,183,112,93,121,176,117,29,119,43,120,105,121,218,122,135,131,53,125,56,125,156,127,192,134,64,93,81,123,59,138,175,140,211,141,244,142,248,148,111,123,82,146,181,153,184,88,184,123,229,127,38,106,243,146,208,153,235,123,20,151,134,158,68,148,60,0,42,0,147,98,155,106,188,129,59,124,253,154,60,0,42,0,253,98,60,0,42,0,233,141,60,0,42,0,19,78,192,83,2,92,22,120,8,92,31,145,124,88,229,90,124,116,14,117,215,120,158,129,155,152,218,120,239,138,228,135,83,152,68,156,60,0,42,0,108,143,104,91,226,142,241,122,73,143,60,0,42,0,119,112,109,85,31,88,131,132,81,116,94,129,206,80,90,141,176,100,198,123,148,153,249,123,72,137,250,140,84,139,76,153,192,86,81,124,60,0,42,0,134,89,132,94,157,89,146,94,88,131,36,90,105,104,138,131,137,104,119,110,167,124,197,136,221,136,1,106,218,124,60,0,42,0,238,88,239,88,182,114,192,114,245,88,11,113,52,111,158,100,7,98,60,0,42,0,185,150,253,143,147,154,37,149,16,147,5,154,123,157,60,0,42,0,157,108,60,0,42,0,96,87,88,104,13,123,55,90,0,127,244,96,0,117,18,127,119,117,126,120,135,129,156,88,180,125,88,141,11,126,200,138,138,145,35,147,31,153,8,121,5,141,91,143,70,148,60,0,42,0,146,91,205,143,171,128,128,122,6,140,196,138,96,136,60,0,42,0,198,81,251,87,214,81,150,110,167,125,60,0,42,0,48,138,21,122,60,0,42,0,83,83,217,98,170,112,44,80,73,99,76,104,193,104,191,109,243,104,213,105,91,122,113,122,63,136,60,0,42,0,52,87,116,95,75,108,179,114,124,112,213,83,176,89,1,131,171,101,74,109,53,78,94,109,245,112,252,139,76,145,68,85,69,85,58,90,178,104,177,101,107,102,19,105,56,116,122,120,161,122,108,127,175,100,198,100,178,101,154,121,133,82,193,138,209,138,220,146,193,111,231,123,226,100,128,101,181,101,239,111,225,106,54,139,111,149,47,148,107,157,66,112,23,136,50,148,87,124,223,157,113,124,60,0,42,0,167,122,60,0,42,0,114,78,92,91,10,131,121,81,168,84,213,89,255,89,50,131,37,104,134,115,14,125,64,141,68,141,48,93,196,109,246,121,1,127,24,140,124,141,222,85,115,91,107,93,20,105,125,110,203,110,162,124,88,132,142,143,17,145,118,91,140,121,220,137,62,138,178,140,199,140,145,141,49,149,53,122,199,125,45,146,67,149,135,159,28,143,18,159,172,111,238,138,166,141,58,143,25,147,237,154,187,156,127,147,161,147,190,116,63,152,62,152,212,155,133,157,77,159,38,156,60,0,42,0,251,132,60,0,42,0,212,78,7,84,201,89,202,89,77,103,247,119,196,121,207,128,112,84,237,121,125,124,20,128,120,134,43,123,147,104,232,145,89,85,43,125,211,110,63,138,159,105,116,106,60,0,42,0,87,91,234,129,147,130,33,131,98,131,51,80,90,82,99,96,120,114,13,110,37,119,38,119,212,128,254,128,44,111,60,0,42,0,80,91,60,0,42,0,151,91,39,80,252,126,148,154,43,88,79,93,85,93,254,96,213,104,35,115,89,129,124,132,54,105,33,103,120,93,47,122,156,125,195,125,167,113,245,125,234,127,108,135,40,142,42,142,235,120,80,147,117,140,100,142,12,154,3,155,35,154,9,155,55,155,238,155,252,155,65,148,60,0,42,0,59,96,108,80,116,99,227,96,33,97,212,99,3,100,175,80,215,132,96,100,207,125,2,126,234,113,61,126,211,147,60,0,42,0,181,126,46,102,173,117,10,80,20,115,130,120,189,124,201,124,50,118,38,126,29,147,49,126,237,124,60,0,42,0,72,111,60,0,42,0,185,144,122,154,249,139,240,144,108,150,198,131,247,104,248,104,18,145,131,123,197,125,207,138,57,145,176,156,235,155,192,158,54,154,113,159,122,159,60,0,42,0,113,141,112,141,208,155,60,0,42,0,79,89,205,99,113,105,60,0,42,0,223,121,69,132,169,132,60,0,42,0,70,83,179,141,82,83,235,84,18,93,42,93,207,101,182,80,164,123,36,142,63,142,94,149,195,147,60,0,42,0,197,139,59,150,196,126,206,79,60,114,199,115,86,121,40,85,68,125,91,138,123,151,186,147,60,0,42,0,187,148,156,142,125,148,60,0,42,0,100,126,53,127,130,126,137,126,107,124,152,126,60,0,42,0,37,101,90,148,60,0,42,0,156,83,24,103,250,85,54,106,213,135,151,126,60,0,42,0,138,93,52,86,181,93,127,86,187,116,60,0,42,0,44,104,74,125,84,145,0,103,108,102,125,121,33,122,106,127,160,143,220,105,123,145,94,133,137,145,135,106,247,146,10,147,140,106,60,0,42,0,160,103,93,122,60,0,42,0,10,92,171,88,255,88,159,93,117,144,61,106,92,126,71,127,142,157,15,148,223,156,82,156,247,157,60,0,42,0,212,80,66,86,153,100,80,139,60,0,42,0,88,99,140,146,60,0,42,0,40,102,232,121,139,131,125,99,10,105,34,116,19,122,112,123,60,146,60,0,42,0,230,93,80,79,83,126,60,0,42,0,92,79,80,87,60,150,157,92,158,92,13,96,179,79,90,121,217,128,17,85,167,94,143,136,90,80,67,132,68,132,217,132,245,152,243,124,60,0,42,0,151,84,38,0,39,0,40,0,0,78,41,0,39,0,60,0,60,0,60,0,32,50,38,0,39,0,40,0,3,78,41,0,39,0,60,0,60,0,60,0,38,50,38,0,39,0,40,0,9,78,41,0,39,0,60,0,60,0,60,0,34,50,38,0,39,0,40,0,93,78,41,0,39,0,60,0,60,0,60,0,40,50,38,0,39,0,40,0,140,78,41,0,39,0,60,0,60,0,60,0,33,50,38,0,39,0,40,0,148,78,41,0,39,0,60,0,60,0,60,0,36,50,38,0,39,0,40,0,227,78,41,0,39,0,60,0,60,0,60,0,57,50,38,0,39,0,40,0,1,79,41,0,39,0,60,0,60,0,60,0,61,50,38,0,39,0,40,0,17,79,41,0,39,0,60,0,60,0,60,0,65,50,38,0,39,0,40,0,107,81,41,0,39,0,60,0,60,0,60,0,39,50,38,0,39,0,40,0,109,81,41,0,39,0,60,0,60,0,60,0,37,50,38,0,39,0,40,0,180,82,41,0,39,0,60,0,60,0,60,0,56,50,38,0,39,0,40,0,65,83,41,0,39,0,60,0,60,0,60,0,41,50,38,0,39,0,40,0,84,83,41,0,39,0,60,0,60,0,60,0,63,50,38,0,39,0,40,0,13,84,41,0,39,0,60,0,60,0,60,0,52,50,38,0,39,0,40,0,124,84,41,0,39,0,60,0,60,0,60,0,58,50,38,0,39,0,40,0,219,86,41,0,39,0,60,0,60,0,60,0,35,50,38,0,39,0,40,0,31,87,41,0,39,0,60,0,60,0,60,0,47,50,38,0,39,0,40,0,102,91,41,0,39,0,60,0,60,0,60,0,59,50,38,0,39,0,40,0,229,101,41,0,39,0,60,0,60,0,60,0,48,50,38,0,39,0,40,0,8,103,41,0,39,0,60,0,60,0,60,0,42,50,38,0,39,0,40,0,9,103,41,0,39,0,60,0,60,0,60,0,50,50,38,0,39,0,40,0,40,103,41,0,39,0,60,0,60,0,60,0,45,50,38,0,39,0,40,0,42,104,41,0,39,0,60,0,60,0,60,0,49,50,38,0,39,0,40,0,52,108,41,0,39,0,60,0,60,0,60,0,44,50,38,0,39,0,40,0,107,112,41,0,39,0,60,0,60,0,60,0,43,50,38,0,39,0,40,0,121,114,41,0,39,0,60,0,60,0,60,0,53,50,38,0,39,0,40,0,227,118,41,0,39,0,60,0,60,0,60,0,60,50,38,0,39,0,40,0,62,121,41,0,39,0,60,0,60,0,60,0,51,50,38,0,39,0,40,0,93,121,41,0,39,0,60,0,60,0,60,0,55,50,38,0,39,0,40,0,109,121,41,0,39,0,60,0,60,0,60,0,64,50,38,0,39,0,40,0,234,129,41,0,39,0,60,0,60,0,60,0,66,50,38,0,39,0,40,0,243,129,41,0,39,0,60,0,60,0,60,0,67,50,38,0,39,0,40,0,161,140,41,0,39,0,60,0,60,0,60,0,54,50,38,0,39,0,40,0,199,140,41,0,39,0,60,0,60,0,60,0,62,50,38,0,39,0,40,0,209,145,41,0,39,0,60,0,60,0,60,0,46,50,38,0,48,0,185,112,60,0,60,0,60,0,88,51,38,0,49,0,48,0,229,101,60,0,60,0,60,0,233,51,38,0,49,0,48,0,8,103,60,0,60,0,60,0,201,50,38,0,49,0,48,0,185,112,60,0,60,0,60,0,98,51,38,0,49,0,49,0,229,101,60,0,60,0,60,0,234,51,38,0,49,0,49,0,8,103,60,0,60,0,60,0,202,50,38,0,49,0,49,0,185,112,60,0,60,0,60,0,99,51,38,0,49,0,50,0,229,101,60,0,60,0,60,0,235,51,38,0,49,0,50,0,8,103,60,0,60,0,60,0,203,50,38,0,49,0,50,0,185,112,60,0,60,0,60,0,100,51,38,0,49,0,51,0,229,101,60,0,60,0,60,0,236,51,38,0,49,0,51,0,185,112,60,0,60,0,60,0,101,51,38,0,49,0,52,0,229,101,60,0,60,0,60,0,237,51,38,0,49,0,52,0,185,112,60,0,60,0,60,0,102,51,38,0,49,0,53,0,229,101,60,0,60,0,60,0,238,51,38,0,49,0,53,0,185,112,60,0,60,0,60,0,103,51,38,0,49,0,54,0,229,101,60,0,60,0,60,0,239,51,38,0,49,0,54,0,185,112,60,0,60,0,60,0,104,51,38,0,49,0,55,0,229,101,60,0,60,0,60,0,240,51,38,0,49,0,55,0,185,112,60,0,60,0,60,0,105,51,38,0,49,0,56,0,229,101,60,0,60,0,60,0,241,51,38,0,49,0,56,0,185,112,60,0,60,0,60,0,106,51,38,0,49,0,57,0,229,101,60,0,60,0,60,0,242,51,38,0,49,0,57,0,185,112,60,0,60,0,60,0,107,51,38,0,49,0,229,101,60,0,60,0,60,0,224,51,38,0,49,0,8,103,60,0,60,0,60,0,192,50,38,0,49,0,185,112,60,0,60,0,60,0,89,51,38,0,50,0,48,0,229,101,60,0,60,0,60,0,243,51,38,0,50,0,48,0,185,112,60,0,60,0,60,0,108,51,38,0,50,0,49,0,229,101,60,0,60,0,60,0,244,51,38,0,50,0,49,0,185,112,60,0,60,0,60,0,109,51,38,0,50,0,50,0,229,101,60,0,60,0,60,0,245,51,38,0,50,0,50,0,185,112,60,0,60,0,60,0,110,51,38,0,50,0,51,0,229,101,60,0,60,0,60,0,246,51,38,0,50,0,51,0,185,112,60,0,60,0,60,0,111,51,38,0,50,0,52,0,229,101,60,0,60,0,60,0,247,51,38,0,50,0,52,0,185,112,60,0,60,0,60,0,112,51,38,0,50,0,53,0,229,101,60,0,60,0,60,0,248,51,38,0,50,0,54,0,229,101,60,0,60,0,60,0,249,51,38,0,50,0,55,0,229,101,60,0,60,0,60,0,250,51,38,0,50,0,56,0,229,101,60,0,60,0,60,0,251,51,38,0,50,0,57,0,229,101,60,0,60,0,60,0,252,51,38,0,50,0,229,101,60,0,60,0,60,0,225,51,38,0,50,0,8,103,60,0,60,0,60,0,193,50,38,0,50,0,185,112,60,0,60,0,60,0,90,51,38,0,51,0,48,0,229,101,60,0,60,0,60,0,253,51,38,0,51,0,49,0,229,101,60,0,60,0,60,0,254,51,38,0,51,0,229,101,60,0,60,0,60,0,226,51,38,0,51,0,8,103,60,0,60,0,60,0,194,50,38,0,51,0,185,112,60,0,60,0,60,0,91,51,38,0,52,0,229,101,60,0,60,0,60,0,227,51,38,0,52,0,8,103,60,0,60,0,60,0,195,50,38,0,52,0,185,112,60,0,60,0,60,0,92,51,38,0,53,0,229,101,60,0,60,0,60,0,228,51,38,0,53,0,8,103,60,0,60,0,60,0,196,50,38,0,53,0,185,112,60,0,60,0,60,0,93,51,38,0,54,0,229,101,60,0,60,0,60,0,229,51,38,0,54,0,8,103,60,0,60,0,60,0,197,50,38,0,54,0,185,112,60,0,60,0,60,0,94,51,38,0,55,0,229,101,60,0,60,0,60,0,230,51,38,0,55,0,8,103,60,0,60,0,60,0,198,50,38,0,55,0,185,112,60,0,60,0,60,0,95,51,38,0,56,0,229,101,60,0,60,0,60,0,231,51,38,0,56,0,8,103,60,0,60,0,60,0,199,50,38,0,56,0,185,112,60,0,60,0,60,0,96,51,38,0,57,0,229,101,60,0,60,0,60,0,232,51,38,0,57,0,8,103,60,0,60,0,60,0,200,50,38,0,57,0,185,112,60,0,60,0,60,0,97,51,38,0,39,0,20,48,9,78,21,48,39,0,60,0,60,0,60,0,60,216,65,222,38,0,39,0,20,48,140,78,21,48,39,0,60,0,60,0,60,0,60,216,66,222,38,0,39,0,20,48,221,82,21,48,39,0,60,0,60,0,60,0,60,216,71,222,38,0,39,0,20,48,137,91,21,48,39,0,60,0,60,0,60,0,60,216,67,222,38,0,39,0,20,48,83,98,21,48,39,0,60,0,60,0,60,0,60,216,69,222,38,0,39,0,20,48,87,101,21,48,39,0,60,0,60,0,60,0,60,216,72,222,38,0,39,0,20,48,44,103,21,48,39,0,60,0,60,0,60,0,60,216,64,222,38,0,39,0,20,48,185,112,21,48,39,0,60,0,60,0,60,0,60,216,68,222,38,0,39,0,20,48,215,118,21,48,39,0,60,0,60,0,60,0,60,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,38,0,0,78,60,0,60,0,60,0,146,49,38,0,0,78,60,0,60,0,60,0,128,50,38,0,0,78,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,148,49,38,0,9,78,60,0,60,0,60,0,130,50,38,0,9,78,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,150,49,38,0,10,78,60,0,60,0,60,0,164,50,38,0,11,78,60,0,60,0,60,0,152,49,38,0,11,78,60,0,60,0,60,0,166,50,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,45,78,60,0,60,0,60,0,151,49,38,0,45,78,60,0,60,0,60,0,165,50,38,0,45,78,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,38,0,89,78,60,0,60,0,60,0,154,49,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,38,0,140,78,60,0,60,0,60,0,147,49,38,0,140,78,60,0,60,0,60,0,129,50,38,0,140,78,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,38,0,186,78,60,0,60,0,60,0,159,49,38,0,228,78,140,84,60,0,60,0,60,0,255,50,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,38,0,107,81,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,38,0,65,83,60,0,60,0,60,0,56,48,38,0,65,83,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,38,0,105,83,60,0,60,0,60,0,25,47,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,38,0,243,83,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,149,49,38,0,219,86,60,0,60,0,60,0,131,50,38,0,31,87,60,0,60,0,60,0,31,47,38,0,31,87,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,38,0,39,89,99,107,60,0,60,0,60,0,125,51,38,0,41,89,60,0,60,0,60,0,157,49,38,0,41,89,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,38,0,115,89,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,38,0,34,92,60,0,60,0,60,0,42,47,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,38,0,230,93,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,16,98,60,0,60,0,60,0,123,51,38,0,122,94,60,0,60,0,60,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,38,0,75,98,60,0,60,0,60,0,60,216,16,222,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,135,101,60,0,60,0,60,0,66,47,38,0,135,101,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,229,101,60,0,60,0,60,0,71,47,38,0,229,101,60,0,60,0,60,0,144,50,38,0,14,102,187,108,60,0,60,0,60,0,126,51,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,140,84,60,0,60,0,60,0,124,51,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,38,0,8,103,60,0,60,0,60,0,138,50,38,0,8,103,60,0,60,0,60,0,60,216,55,222,38,0,9,103,60,0,60,0,60,0,146,50,38,0,9,103,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,38,0,40,103,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,38,0,42,104,15,95,26,79,62,121,60,0,60,0,60,0,127,51,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,38,0,52,108,60,0,60,0,60,0,140,50,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,38,0,107,112,60,0,60,0,60,0,139,50,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,38,0,31,117,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,138,127,60,0,60,0,60,0,122,47,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,38,0,137,128,60,0,60,0,60,0,129,47,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,77,134,60,0,60,0,60,0,140,47,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,126,137,60,0,60,0,60,0,145,47,38,0,139,137,60,0,60,0,60,0,146,47,38,0,210,137,60,0,60,0,60,0,147,47,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,38,0,112,141,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,38,0,73,145,60,0,60,0,60,0,163,47,38,0,77,145,60,0,60,0,60,0,60,216,59,222,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,38,0,209,145,60,0,60,0,60,0,142,50,38,0,119,149,60,0,60,0,60,0,167,47,38,0,128,149,60,0,60,0,60,0,168,47,38,0,28,150,60,0,60,0,60,0,169,47,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,38,0,81,151,60,0,60,0,60,0,173,47,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,168,152,60,0,60,0,60,0,181,47,38,0,219,152,60,0,60,0,60,0,182,47,38,0,223,152,60,0,60,0,60,0,183,47,38,0,150,153,60,0,60,0,60,0,184,47,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,168,154,60,0,60,0,60,0,187,47,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,38,0,90,155,60,0,60,0,60,0,194,47,38,0,229,156,60,0,60,0,60,0,195,47,38,0,117,158,60,0,60,0,60,0,196,47,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,38,0,82,159,60,0,60,0,60,0,210,47,38,0,141,159,60,0,60,0,60,0,211,47,38,0,156,159,60,0,60,0,60,0,212,47,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,38,0,107,134,60,0,205,145,134,94,47,0,134,94,38,0,30,95,60,0,136,108,51,150,47,0,51,150,38,0,186,146,60,0,207,133,135,101,47,0,135,101,0,0,239,223,208,112,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,201,2,60,0,60,0,202,2,60,0,60,0,199,2,60,0,60,0,203,2,60,0,60,0,217,2,60,0,60,0,234,2,60,0,60,0,235,2,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,39,0,208,253,39,0,5,49,60,0,42,0,107,81,200,78,244,93,237,83,82,98,51,103,144,115,63,89,156,92,173,130,199,92,237,103,164,117,245,84,252,93,76,99,6,123,145,124,147,127,134,134,219,145,223,145,109,59,93,140,131,156,62,76,60,0,42,0,208,83,174,114,156,98,122,87,173,89,212,98,166,112,121,118,200,128,7,131,221,131,89,138,203,141,247,142,176,152,162,88,67,155,37,159,60,0,42,0,138,98,175,148,0,146,118,151,60,0,42,0,93,87,29,95,56,114,187,87,98,127,25,128,193,141,133,156,140,156,119,127,172,67,138,155,135,137,242,119,56,151,233,88,94,112,27,107,60,0,42,0,39,84,38,125,94,155,60,0,42,0,118,118,23,94,232,98,226,108,119,118,187,115,93,82,101,82,241,84,203,118,53,120,181,148,125,153,52,125,61,127,154,136,176,136,224,131,134,120,98,146,224,80,147,93,165,100,173,100,17,153,129,155,115,142,75,154,77,156,60,0,42,0,226,78,47,79,187,114,145,128,115,154,27,94,219,114,221,116,188,79,195,82,201,128,233,130,179,78,44,99,97,109,223,116,225,121,227,144,185,148,194,148,141,58,191,61,64,62,14,63,22,129,54,130,175,136,90,83,36,110,185,136,65,158,61,97,15,100,60,115,103,132,56,146,81,146,142,153,240,80,13,59,127,113,84,114,148,123,138,129,74,130,111,75,155,153,193,153,20,133,35,142,205,146,72,149,79,70,101,216,208,220,158,153,238,153,112,140,96,216,109,223,151,86,234,97,103,58,39,59,25,124,79,137,155,147,58,153,83,157,166,114,33,121,198,154,201,154,2,107,52,121,110,137,110,148,60,0,42,0,219,141,165,123,56,124,60,0,42,0,121,91,151,106,234,124,82,139,23,134,60,0,42,0,138,46,92,83,117,85,33,132,60,0,42,0,0,99,176,99,216,100,60,0,42,0,125,118,60,0,42,0,126,118,112,79,207,103,34,104,109,99,248,116,168,124,84,125,70,100,250,100,108,137,60,0,42,0,141,94,221,98,37,141,220,98,87,101,8,115,23,122,253,134,186,124,37,53,1,141,219,151,60,0,42,0,225,122,173,133,60,0,42,0,81,83,111,103,66,150,195,118,110,104,178,96,249,99,17,105,145,120,134,121,78,158,3,147,227,133,111,157,60,0,42,0,23,83,51,57,115,146,60,0,42,0,29,141,91,91,200,114,157,140,7,89,1,102,108,114,182,144,204,128,221,130,161,148,251,79,13,80,221,54,150,96,253,114,229,144,93,80,121,80,242,58,150,104,252,115,171,136,153,80,235,96,25,113,50,116,240,142,136,143,1,145,195,80,2,97,215,62,154,120,34,62,149,114,211,132,150,138,129,151,25,137,41,143,199,146,179,154,138,97,210,124,180,151,62,148,60,0,42,0,87,84,4,85,153,121,60,0,42,0,249,82,5,83,98,91,185,103,222,128,222,130,35,123,114,113,133,159,18,137,84,133,193,149,67,137,89,159,60,0,42,0,135,122,209,90,249,150,15,66,132,133,90,216,138,220,250,63,60,0,42,0,157,91,9,96,113,153,221,79,40,158,178,91,228,115,33,88,34,88,172,90,218,91,70,132,253,152,194,153,245,156,229,125,19,137,7,157,242,140,75,75,243,91,246,91,99,216,38,220,76,151,16,77,99,216,59,220,60,0,42,0,253,82,165,98,177,98,121,140,181,141,199,148,171,134,140,136,49,88,226,131,75,146,141,156,100,151,180,102,178,154,241,154,99,134,145,155,36,81,211,102,6,114,193,95,100,148,20,158,60,0,42,0,104,79,245,133,60,0,42,0,115,98,61,101,237,115,44,130,129,152,145,101,44,100,146,101,18,152,34,118,251,156,50,66,140,135,41,137,77,118,172,143,60,0,42,0,66,87,133,92,42,150,4,102,127,103,72,114,234,116,163,148,132,124,40,130,17,146,66,135,108,155,198,149,60,0,42,0,158,82,74,83,52,79,110,98,98,87,197,89,17,96,204,98,202,126,200,103,218,121,116,110,70,125,97,146,125,151,166,143,227,116,60,0,42,0,129,135,60,0,42,0,84,89,205,108,50,141,31,104,135,114,27,149,27,147,60,0,42,0,44,103,239,130,89,89,90,117,201,127,77,105,60,0,42,0,75,87,76,87,52,80,121,99,115,104,0,110,40,123,90,216,192,223,41,144,170,100,86,115,61,143,60,0,42,0,166,144,185,87,46,94,96,99,92,109,134,104,171,144,71,94,90,94,13,126,107,94,164,151,60,0,42,0,209,126,129,125,156,105,83,114,128,129,200,154,60,0,42,0,75,59,164,115,140,134,141,80,210,104,211,104,36,140,93,88,18,100,22,122,161,132,47,135,197,120,81,149,85,130,23,139,138,147,60,0,42,0,59,79,74,121,95,89,41,93,99,125,141,149,176,80,109,93,237,117,35,86,179,125,60,0,42,0,45,117,60,0,42,0,196,87,242,87,247,126,35,116,43,116,246,131,67,126,155,151,60,0,42,0,245,108,248,143,44,144,116,88,90,149,15,117,101,216,244,221,112,75,102,142,240,147,47,136,60,0,42,0,252,99,60,0,42,0,68,92,106,80,244,107,69,105,60,144,77,140,149,135,190,156,158,147,86,157,15,156,60,0,42,0,120,131,59,159,60,0,42,0,21,83,212,107,50,56,54,89,60,103,74,79,33,84,163,89,152,108,149,117,124,95,192,103,213,121,254,79,20,123,131,124,45,130,90,85,143,58,70,123,132,123,91,128,25,145,143,140,60,0,42,0,1,94,197,95,213,107,237,149,86,79,41,54,82,87,135,94,208,139,32,54,188,89,45,96,54,96,217,57,136,103,64,117,178,144,212,84,242,103,214,107,204,115,170,117,254,130,217,107,244,114,19,123,138,124,92,131,203,148,91,150,98,90,179,94,93,101,144,104,98,117,144,136,135,149,137,149,27,88,59,95,60,95,10,97,14,97,98,110,149,118,90,123,6,132,86,138,177,140,193,140,81,141,215,110,79,113,249,117,250,117,100,119,119,129,12,135,248,141,77,146,159,149,246,152,246,85,99,94,10,95,67,95,237,110,167,120,133,123,134,123,188,125,214,132,232,136,157,153,119,111,154,113,88,115,89,115,235,62,253,132,61,133,11,72,42,145,220,153,242,154,193,88,22,91,230,94,101,61,230,123,124,127,241,137,133,155,131,101,222,111,243,123,42,126,194,129,156,133,127,144,70,153,112,89,167,116,85,142,40,145,192,154,116,126,94,137,206,147,87,69,99,137,131,142,132,142,184,151,224,151,20,141,52,148,70,154,83,155,221,157,233,157,10,159,60,0,42,0,2,83,30,132,100,94,54,91,69,137,60,0,42,0,139,97,222,135,214,156,73,156,8,159,76,134,158,159,60,0,42,0,37,82,43,82,135,84,223,67,130,131,194,134,182,95,82,137,105,142,60,0,42,0,42,118,95,118,220,63,60,0,42,0,70,95,24,67,60,0,42,0,108,112,83,103,7,104,209,152,137,154,223,154,242,109,106,95,11,115,63,129,169,152,130,88,86,94,125,100,238,110,174,152,160,154,25,106,155,113,152,129,8,133,45,118,230,120,86,149,217,152,218,152,38,81,183,152,12,112,36,139,2,114,213,129,232,133,6,141,226,147,110,122,115,149,198,152,199,152,200,152,67,154,99,148,189,75,107,154,60,0,42,0,104,136,74,90,241,136,216,138,54,147,166,106,62,137,60,0,42,0,245,79,212,156,62,156,60,0,42,0,202,152,60,0,42,0,185,143,186,143,45,120,62,123,217,99,53,115,22,127,120,113,81,114,2,117,175,123,232,125,89,135,137,144,125,147,202,156,173,151,138,144,254,155,255,155,105,124,60,0,42,0,44,141,65,98,134,122,62,83,252,96,182,140,57,132,165,120,40,122,196,124,10,137,24,157,202,133,60,0,42,0,94,83,1,95,37,83,237,95,131,98,115,108,116,108,198,145,216,83,163,115,196,130,191,79,9,89,42,102,83,59,141,137,167,95,15,127,77,144,158,149,161,143,246,125,81,130,167,143,168,143,169,143,171,143,174,143,175,143,138,139,60,0,42,0,197,92,158,112,60,0,42,0,67,108,160,144,162,115,15,120,190,91,108,95,185,104,167,80,140,101,21,105,232,110,222,62,36,127,223,105,120,116,105,140,211,140,212,140,84,149,16,81,210,111,241,111,104,134,115,140,179,106,184,116,21,112,38,151,125,126,76,148,110,152,60,0,42,0,72,100,161,107,145,129,233,154,239,100,2,155,175,107,207,129,204,154,19,155,213,154,34,155,60,0,42,0,30,108,245,111,60,0,42,0,171,81,204,78,210,78,55,108,176,81,117,81,164,99,60,0,42,0,25,78,50,96,166,98,201,121,180,144,67,150,30,102,58,102,196,103,179,112,234,130,124,153,42,119,137,122,0,58,195,134,82,100,128,121,31,122,53,146,124,146,5,153,32,153,158,151,60,0,42,0,118,94,200,52,38,78,117,79,119,94,176,94,2,80,36,104,197,117,221,122,75,80,161,80,206,91,197,104,129,138,169,155,80,151,60,0,42,0,170,87,134,151,242,146,60,0,42,0,236,92,175,94,97,102,11,144,61,146,167,138,60,0,42,0,234,156,80,143,173,145,60,0,42,0,95,83,82,216,240,220,101,136,250,84,85,99,184,85,220,136,79,157,60,0,42,0,13,78,3,94,72,79,37,84,101,107,152,84,53,54,22,96,170,98,104,107,105,107,205,60,232,103,154,148,207,82,212,87,215,87,145,96,87,99,184,148,224,87,121,131,232,144,255,116,4,142,0,133,246,144,20,153,34,153,240,123,63,124,60,0,39,0,208,253,39,0,6,49,60,0,42,0,145,89,85,216,25,220,80,216,181,221,133,118,180,141,37,130,106,85,105,132,60,0,42,0,119,103,44,114,177,99,54,116,98,123,86,111,60,0,42,0,10,94,21,94,21,96,153,136,60,0,42,0,139,148,97,87,165,92,202,108,252,108,135,152,140,110,85,146,23,152,81,111,250,147,60,0,42,0,70,90,25,86,34,133,49,145,164,118,8,139,199,106,60,0,42,0,245,83,0,92,183,148,56,123,202,153,60,0,42,0,182,92,135,112,64,101,34,102,38,109,192,115,235,143,222,112,52,120,54,120,217,145,149,124,170,132,68,155,151,145,150,74,60,0,42,0,114,104,60,0,42,0,205,98,60,0,42,0,243,79,152,95,146,99,5,115,209,104,76,114,43,143,48,124,50,124,164,114,60,0,42,0,249,94,60,0,42,0,204,84,62,109,91,59,67,110,142,132,131,147,60,0,42,0,120,84,176,54,12,96,167,128,248,103,218,128,67,136,133,145,60,0,42,0,43,150,249,87,106,150,240,107,84,141,43,149,244,136,245,136,224,140,205,153,60,0,42,0,214,79,60,0,42,0,2,79,155,108,105,79,20,94,245,89,190,101,198,101,127,109,238,115,77,145,41,123,131,66,148,143,183,153,143,93,8,151,97,143,60,0,42,0,220,132,60,0,42,0,155,98,203,98,44,129,60,0,42,0,40,82,134,84,137,87,150,94,205,114,176,112,46,114,15,83,141,136,243,142,132,151,131,158,133,158,60,0,42,0,209,141,60,0,42,0,69,89,225,108,174,112,177,117,176,118,50,120,173,158,31,121,46,121,60,0,42,0,34,132,28,137,60,0,42,0,86,82,29,90,60,0,42,0,148,98,153,98,74,99,138,99,210,136,129,123,7,147,60,0,42,0,133,84,227,84,68,90,131,114,205,94,60,0,42,0,52,52,5,119,25,120,104,117,88,111,0,101,60,0,42,0,63,114,0,109,216,118,216,141,187,90,75,94,43,100,195,105,176,132,228,118,208,120,15,126,251,120,82,142,76,216,102,220,10,112,224,135,99,142,156,147,182,151,60,0,42,0,184,81,36,82,156,108,218,98,238,108,141,112,219,83,73,114,252,118,84,117,65,128,162,136,74,138,191,110,22,152,236,146,123,137,123,148,60,0,42,0,101,157,60,0,42,0,183,85,116,86,85,107,60,0,42,0,235,116,198,118,83,110,80,132,60,0,42,0,96,84,248,127,60,0,42,0,175,85,60,0,42,0,83,78,151,108,238,128,241,150,194,110,150,129,38,74,54,151,60,0,42,0,144,83,158,94,150,83,193,101,4,144,61,130,206,90,172,95,82,216,237,221,131,135,209,156,142,159,144,159,60,0,42,0,217,85,42,128,171,137,60,0,42,0,144,112,168,128,214,128,60,0,42,0,9,83,193,54,38,96,168,98,114,96,248,57,48,120,136,104,249,112,81,120,239,142,155,149,48,111,45,86,142,111,222,120,60,0,42,0,131,130,11,103,252,122,23,80,55,99,11,88,56,95,145,131,109,95,218,104,22,105,124,120,29,122,79,158,115,88,137,97,240,105,37,106,162,113,236,132,96,216,131,220,35,143,227,123,168,129,11,147,248,151,247,123,252,154,218,135,219,135,5,155,54,77,252,151,108,157,47,154,132,126,20,155,93,148,60,0,42,0,103,99,206,109,143,118,123,82,60,0,42,0,189,99,42,105,176,120,43,142,60,0,42,0,21,78,19,79,62,79,121,98,176,126,111,87,171,98,183,98,139,112,201,114,179,144,18,120,65,216,49,223,130,96,219,121,224,121,21,125,205,148,199,101,205,127,26,128,126,140,8,146,26,146,57,146,95,146,148,146,136,82,199,120,211,153,236,154,124,86,13,147,126,155,141,155,181,97,20,121,21,121,57,151,60,0,42,0,174,118,223,52,48,150,175,92,135,103,222,107,211,114,182,128,152,130,215,107,216,107,178,117,141,134,100,85,228,87,37,93,90,216,45,222,189,134,190,134,124,140,96,216,26,222,235,144,116,150,55,113,53,116,62,129,87,129,143,156,116,127,141,129,49,135,110,155,192,88,250,123,183,135,148,140,103,157,134,127,7,103,25,159,60,0,42,0,57,83,128,94,139,117,243,78,46,87,201,130,52,129,222,117,162,146,192,138,4,157,215,100,125,86,86,118,38,76,173,86,60,0,42,0,65,92,224,109,18,110,202,99,253,145,178,90,211,90,101,119,159,143,78,111,43,122,251,80,188,111,138,86,19,117,68,68,136,117,108,139,226,149,255,157,10,158,60,0,42,0,140,105,60,0,42,0,21,108,135,100,75,216,194,220,134,100,188,102,165,119,60,0,42,0,63,78,228,130,5,148,60,0,42,0,243,90,60,0,42,0,125,82,83,97,37,127,216,152,218,101,242,127,181,135,165,114,195,152,196,152,82,155,60,0,42,0,214,90,226,116,194,122,184,133,221,149,60,0,42,0,141,107,111,95,159,119,251,123,57,126,165,145,171,118,96,152,60,0,42,0,104,121,196,80,225,82,12,86,177,95,2,111,19,59,60,0,42,0,232,86,79,80,165,90,143,114,199,123,233,127,66,147,163,157,60,0,42,0,136,154,252,128,65,129,68,105,105,105,198,140,240,141,218,138,65,142,226,153,191,154,8,154,60,0,42,0,145,137,29,140,181,140,222,138,60,0,42,0,71,114,151,154,23,154,25,154,60,0,42,0,120,155,60,0,42,0,216,89,252,98,102,56,23,121,102,122,170,153,94,154,60,0,42,0,173,115,43,141,38,90,167,140,21,116,212,90,145,152,59,152,42,91,113,115,178,133,172,86,201,119,25,136,166,152,112,152,60,0,42,0,193,84,128,105,60,0,42,0,93,114,86,108,88,128,60,0,42,0,82,78,57,117,220,79,9,90,132,109,47,120,96,128,117,130,238,122,41,152,102,216,77,222,60,0,42,0,115,94,196,139,237,81,111,84,106,87,217,108,79,92,33,94,176,103,52,109,182,115,211,128,249,130,241,144,184,62,194,62,83,131,91,92,50,94,220,109,246,116,178,134,72,94,41,113,62,127,13,132,226,134,85,138,1,117,241,132,255,142,134,156,244,81,2,66,127,97,179,123,39,143,145,97,131,155,152,106,8,124,11,134,60,0,42,0,188,92,64,88,60,0,42,0,198,78,52,101,53,101,81,98,96,150,87,86,178,100,125,111,200,100,198,155,60,0,42,0,170,62,13,83,47,129,134,131,208,131,233,131,97,132,213,80,177,132,178,132,122,145,163,88,91,115,158,116,238,111,168,119,89,122,59,66,100,149,86,216,200,220,128,126,101,137,247,147,60,0,42,0,36,87,52,103,3,87,102,109,243,112,110,102,165,110,49,140,233,138,56,106,6,108,143,106,104,149,92,139,124,142,32,148,60,0,42,0,250,148,22,130,23,130,234,146,37,59,17,112,221,102,60,0,42,0,236,93,237,93,12,141,60,0,39,0,208,253,39,0,7,49,60,0,42,0,99,84,60,0,42,0,136,89,86,91,189,90,36,91,55,91,60,0,42,0,187,158,242,117,152,114,52,133,198,135,199,135,60,0,42,0,108,154,55,52,155,115,1,120,130,134,172,153,164,110,106,116,188,120,158,135,183,147,34,156,204,157,60,0,42,0,184,114,105,103,67,121,129,149,130,154,27,85,140,80,65,115,28,86,56,58,170,105,112,119,161,121,117,127,43,55,225,153,35,121,21,155,60,0,42,0,135,78,23,84,206,85,27,86,242,90,100,144,60,0,42,0,120,100,60,0,42,0,133,94,31,140,141,153,235,90,189,158,105,100,121,100,33,106,156,129,69,106,232,120,226,124,164,86,245,100,40,139,169,86,176,86,67,153,17,134,152,82,205,154,84,155,250,64,93,153,60,0,42,0,185,98,225,97,75,74,60,0,42,0,43,103,176,82,61,87,186,89,19,94,126,107,127,107,129,107,171,108,82,216,251,220,30,94,41,102,186,103,9,131,76,150,28,85,140,118,28,119,63,119,30,120,227,121,61,119,150,124,72,125,136,131,171,131,80,110,232,134,131,140,138,140,252,85,123,88,222,91,32,111,79,115,230,132,134,146,122,151,252,90,175,102,115,60,217,158,144,119,70,149,105,155,168,88,60,118,153,119,216,158,14,112,212,135,41,139,152,140,5,114,230,133,204,147,51,121,134,126,64,154,49,128,60,0,42,0,61,96,27,92,121,155,191,158,60,0,42,0,72,78,188,158,146,86,156,86,249,111,102,118,60,0,42,0,203,87,37,55,182,133,62,151,60,0,42,0,112,78,108,131,183,140,42,86,82,133,246,157,60,0,42,0,162,82,69,79,242,88,200,143,166,158,86,83,9,129,8,129,165,158,71,136,241,82,227,140,129,144,33,151,34,151,104,216,51,221,60,0,42,0,69,84,70,87,146,108,161,108,154,103,171,115,2,104,9,119,250,130,18,90,4,129,133,104,251,115,34,129,147,131,51,88,146,90,75,93,68,110,72,110,56,115,66,119,255,144,99,105,115,105,100,113,66,116,127,132,122,88,209,105,150,121,118,145,69,149,91,158,194,146,9,151,72,122,190,95,135,147,192,119,23,101,165,157,42,134,244,158,60,0,42,0,206,107,207,107,194,81,142,127,52,99,124,109,132,90,68,93,60,110,186,90,92,129,65,149,13,91,216,113,130,147,227,158,60,0,42,0,185,89,186,98,172,108,192,101,39,102,81,59,27,119,89,121,130,136,154,90,208,91,215,117,202,141,93,113,61,155,120,119,206,151,195,123,94,135,69,155,60,0,42,0,190,142,60,0,42,0,43,115,147,140,60,0,42,0,219,107,219,119,134,103,102,114,5,131,6,131,196,101,94,127,94,81,222,142,85,145,37,88,53,110,98,216,104,221,26,149,230,154,249,90,2,108,155,114,101,135,243,154,202,135,40,147,156,157,60,0,42,0,135,81,111,83,24,89,110,78,60,98,185,54,193,92,214,108,52,102,198,148,55,123,233,132,60,0,42,0,131,81,131,118,144,81,188,130,146,81,213,103,10,119,2,131,56,141,4,128,164,136,146,137,162,90,61,94,191,140,23,97,147,102,89,105,247,107,65,116,58,132,128,119,140,140,26,145,80,135,46,145,203,97,60,0,42,0,222,84,60,0,42,0,95,114,148,79,186,82,76,59,72,96,32,109,56,119,11,140,209,134,42,127,14,142,126,146,0,139,180,119,70,126,106,147,62,157,176,158,60,0,42,0,208,103,91,216,209,220,60,0,42,0,218,90,159,152,60,0,42,0,207,89,151,96,188,52,238,134,200,80,41,140,114,97,146,153,32,106,146,119,158,119,148,151,87,216,145,220,62,139,69,153,215,156,98,152,23,155,24,155,59,156,59,136,60,0,42,0,88,92,128,110,76,119,225,110,255,110,168,135,206,135,84,137,203,147,213,119,60,0,42,0,252,102,5,59,129,88,84,94,98,97,113,100,43,111,76,115,38,127,36,145,254,105,179,113,4,133,19,133,98,56,183,111,88,149,53,126,221,147,100,216,77,221,85,69,80,216,78,221,60,0,42,0,48,134,60,0,42,0,232,149,106,98,167,115,148,148,128,149,133,149,107,99,219,131,138,116,70,147,185,78,75,134,60,0,42,0,247,149,22,113,182,96,170,102,220,113,209,97,227,97,60,0,42,0,236,78,17,80,26,105,60,0,42,0,100,114,60,0,42,0,2,84,217,95,82,108,153,144,40,92,87,103,103,103,146,130,19,108,242,118,0,123,228,84,15,90,172,94,54,57,126,96,93,109,245,114,43,131,123,114,202,62,239,145,211,148,221,117,109,120,214,134,13,66,77,216,119,222,233,146,249,153,103,216,246,221,60,0,42,0,189,131,101,120,59,131,190,131,254,88,45,111,18,59,210,135,14,136,60,0,42,0,63,117,123,134,161,81,148,131,12,132,32,132,4,64,223,118,153,132,113,135,26,81,87,106,13,117,162,119,68,133,51,145,106,94,222,97,218,102,219,111,56,145,38,103,172,106,11,108,67,68,69,68,205,155,199,119,30,121,114,158,104,130,9,134,210,119,63,151,64,151,91,153,109,152,6,159,15,158,60,0,42,0,208,82,27,115,254,116,69,64,48,149,75,130,34,135,51,147,220,97,116,115,245,97,237,155,19,136,60,0,42,0,95,91,67,216,124,221,166,104,149,110,34,89,35,89,221,68,37,151,52,55,60,0,42,0,185,99,221,100,60,0,42,0,170,84,47,119,135,119,60,0,42,0,158,81,37,95,89,127,98,121,247,143,21,115,28,140,120,138,190,132,76,95,223,100,220,124,59,126,14,139,154,145,138,158,139,158,176,121,97,151,55,55,48,112,124,115,155,158,2,98,32,101,213,116,126,149,34,114,119,69,60,134,190,145,191,145,13,158,196,145,60,0,42,0,115,124,136,130,142,79,181,108,139,127,45,95,35,109,73,101,43,119,18,129,51,110,94,132,164,146,29,133,212,111,74,91,86,112,60,0,42,0,150,81,248,124,104,108,149,108,147,91,204,108,197,137,218,92,187,91,85,121,216,121,198,91,231,109,255,109,147,137,148,137,66,94,39,140,83,88,78,94,32,58,155,137,39,86,147,105,245,110,30,111,144,113,28,135,18,106,36,133,15,159,170,81,102,94,215,111,16,139,193,106,26,124,204,133,131,127,60,0,42,0,92,78,0,84,169,84,246,84,109,91,60,0,42,0,109,112,213,112,149,137,35,100,197,110,17,133,19,157,254,123,142,133,109,94,241,97,215,106,27,136,74,136,86,148,116,156,60,0,42,0,181,85,60,0,42,0,215,130,100,52,140,90,207,99,75,158,132,119,226,125,147,157,89,156,60,0,42,0,106,103,7,119,210,121,252,109,58,110,8,127,206,123,242,125,208,133,136,144,60,0,42,0,153,89,153,94,133,115,215,122,191,94,223,94,60,0,42,0,44,140,44,139,60,0,42,0,128,91,135,130,32,119,66,90,245,126,148,90,201,104,191,125,220,125,241,129,82,135,53,91,176,106,203,106,200,119,202,119,207,119,60,0,42,0,15,78,69,108,77,81,148,108,254,158,201,82,4,119,41,90,67,55,109,80,149,81,212,82,17,110,149,85,16,97,78,110,5,127,123,125,124,129,66,132,253,158,240,62,236,125,171,158,160,111,184,155,60,0,42,0,99,151,98,151,198,124,170,158,186,158,181,158,60,0,42,0,17,108,196,89,183,92,222,95,11,96,251,101,252,101,201,115,255,118,7,120,224,130,96,127,15,93,106,99,24,116,23,127,111,101,73,116,251,117,136,120,49,146,205,125,184,74,225,125,9,147,22,157,114,147,60,0,42,0,191,118,186,81,33,82,245,149,191,98,239,108,196,82,67,101,253,149,175,96,79,101,34,123,253,96,99,110,148,149,13,97,6,59,139,102,169,149,246,80,92,97,171,97,99,111,34,124,92,216,75,220,216,156,32,136,53,156,104,216,52,221,60,0,42,0,138,87,61,123,60,0,42,0,13,84,14,102,35,158,58,109,0,119,165,81,23,131,25,103,51,119,237,148,199,90,159,110,61,115,13,145,157,102,160,105,194,132,152,146,244,156,145,119,159,135,173,137,228,74,60,0,42,0,114,79,243,89,213,81,79,97,105,145,60,0,42,0,125,84,39,105,122,138,60,0,42,0,181,99,60,0,42,0,234,107,178,88,1,108,60,0,42,0,205,107,169,78,97,114,118,87,198,89,199,98,212,92,115,114,70,117,82,117,223,128,93,117,94,117,42,120,110,117,95,216,249,223,67,216,150,222,103,146,7,142,60,0,42,0,40,103,235,78,48,103,238,118,144,108,199,114,145,112,103,114,220,130,227,107,158,134,188,148,175,131,238,150,223,82,8,55,88,105,102,119,108,146,147,88,85,94,89,94,84,97,85,97,174,102,82,130,2,151,70,122,56,126,170,151,60,0,42,0,233,81,60,0,39,0,208,253,39,0,8,49,60,0,42,0,209,83,183,108,122,118,160,80,124,118,66,95,102,145,177,145,60,0,42,0,79,78,16,79,194,89,161,87,76,109,186,117,90,127,0,150,48,104,29,120,55,131,79,123,130,119,112,127,165,149,120,127,67,106,197,133,60,0,42,0,113,79,213,108,75,112,60,0,42,0,208,115,58,116,234,154,238,154,95,133,94,216,11,223,60,0,42,0,69,147,60,0,42,0,207,78,114,87,60,0,42,0,187,104,60,0,42,0,222,152,131,89,94,151,219,152,97,85,83,90,4,110,239,126,100,216,235,221,73,98,6,115,242,131,95,151,203,125,26,135,246,136,15,151,177,156,37,153,161,153,17,154,27,154,221,152,60,0,42,0,165,128,221,109,83,129,8,66,48,135,230,135,60,0,42,0,15,103,42,83,253,139,92,89,177,96,144,101,208,104,167,105,225,127,185,138,218,123,92,133,100,216,60,221,60,0,42,0,32,84,159,94,110,103,184,108,210,114,186,128,190,130,50,102,199,128,57,141,247,79,85,82,158,83,191,117,93,92,107,150,195,94,67,62,9,132,187,140,241,117,68,149,226,94,202,102,53,73,72,118,35,159,247,111,1,76,224,106,225,155,40,148,69,151,60,0,42,0,84,90,131,102,60,0,42,0,17,125,230,136,60,0,42,0,54,127,38,84,154,89,57,127,59,127,149,107,236,150,0,157,60,0,42,0,6,94,9,138,106,117,235,82,67,86,15,91,97,94,163,97,217,101,67,133,219,101,89,126,251,127,233,133,83,143,191,152,83,124,220,152,85,156,60,0,42,0,225,81,226,81,227,81,54,56,219,95,75,103,254,119,117,124,146,148,201,103,230,112,39,130,50,123,229,104,34,110,105,113,208,125,166,88,10,106,78,106,212,113,160,116,176,129,65,126,160,133,179,127,78,137,111,142,42,112,63,112,44,121,7,148,34,148,41,134,28,136,237,157,60,0,42,0,205,83,85,98,212,143,74,72,233,145,60,0,42,0,64,216,169,221,62,108,175,114,127,89,78,108,109,153,219,108,41,141,72,117,3,131,0,64,211,142,79,90,181,104,0,61,213,118,53,123,169,140,236,142,239,152,240,152,252,110,14,91,196,123,60,0,42,0,36,130,60,0,42,0,6,82,41,84,9,94,183,126,16,102,27,108,172,130,219,84,122,81,27,125,194,127,111,136,93,81,28,138,90,145,251,104,22,146,240,150,31,59,6,103,211,113,52,153,89,153,60,0,42,0,95,87,162,89,142,92,126,108,12,103,140,103,131,112,166,128,146,127,160,134,161,134,164,104,252,104,26,113,154,153,182,132,179,88,105,94,198,111,117,155,104,106,204,113,97,133,110,140,171,150,34,159,181,127,22,159,118,140,82,143,60,148,169,153,194,158,60,0,42,0,137,124,250,158,60,0,42,0,253,78,5,95,75,89,255,95,206,121,126,80,36,97,170,124,232,80,164,97,110,89,185,129,222,124,188,156,53,112,93,156,60,0,42,0,213,122,174,142,60,0,42,0,26,83,185,101,74,87,120,108,161,144,139,103,101,114,179,130,171,148,132,134,211,109,1,146,11,157,60,0,42,0,168,89,50,150,63,98,170,128,197,87,130,156,116,155,31,156,60,0,42,0,255,78,191,139,119,95,186,126,9,102,24,102,236,116,6,119,35,80,202,101,33,125,43,130,42,138,227,154,173,157,60,0,42,0,62,101,189,141,60,0,42,0,15,88,58,147,60,0,42,0,48,78,206,152,249,78,232,81,236,81,166,89,163,108,168,108,238,81,171,103,1,92,175,117,253,118,28,120,168,152,212,54,239,92,240,92,160,68,81,80,123,104,253,112,54,93,38,115,11,149,83,105,142,114,81,132,2,135,11,118,184,120,252,80,200,123,210,146,55,145,146,106,207,149,80,140,224,147,165,52,247,91,38,56,67,112,70,145,59,151,52,134,45,136,74,151,204,152,183,158,60,0,42,0,175,81,6,89,64,99,114,109,34,144,56,88,174,153,152,125,66,130,128,57,83,100,40,111,111,61,60,0,42,0,189,139,42,85,130,137,247,138,60,0,42,0,228,81,73,89,46,117,248,79,87,110,40,113,72,113,29,127,87,141,239,156,243,156,12,157,245,140,43,126,60,0,42,0,18,116,132,110,189,147,21,134,60,0,42,0,133,137,60,0,42,0,43,89,21,79,75,84,139,89,158,144,199,89,158,115,164,128,36,96,206,103,6,120,186,87,16,90,3,92,66,131,109,136,201,101,106,59,40,125,116,131,186,141,184,158,225,117,3,122,215,141,7,146,95,123,146,125,117,91,103,140,28,145,119,101,154,129,250,156,169,158,208,124,172,158,177,158,239,97,60,0,42,0,64,78,255,93,23,95,15,79,235,81,54,117,91,79,185,81,28,82,90,91,118,98,136,84,170,92,127,95,43,96,194,98,13,103,142,103,237,108,194,126,203,126,153,130,163,130,216,79,152,87,132,58,235,103,31,108,17,109,165,112,184,115,73,117,80,117,88,127,251,130,0,131,232,151,249,84,63,104,110,109,41,120,83,121,47,131,168,134,219,144,16,83,116,104,170,109,240,112,8,116,38,123,48,123,49,125,60,125,199,127,116,130,169,131,89,134,69,94,244,104,101,125,102,127,212,131,177,136,176,124,141,125,64,130,77,132,9,135,144,143,88,146,92,146,171,152,231,156,145,105,143,121,42,122,153,123,205,151,94,94,147,111,96,135,244,154,232,138,62,142,59,143,132,155,20,157,65,118,101,216,50,223,251,158,70,137,105,157,157,157,60,0,42,0,82,84,154,98,43,117,118,78,156,94,35,95,202,98,167,101,204,79,219,79,213,128,236,156,239,79,217,144,220,145,225,145,108,99,133,143,36,113,217,118,81,129,207,110,5,135,232,66,80,129,20,143,56,86,168,100,171,100,43,152,52,155,32,124,252,158,60,0,42,0,207,46,214,46,29,150,54,114,163,139,216,78,135,89,31,141,144,84,127,87,20,57,206,122,28,150,68,150,120,154,13,89,202,92,3,138,160,140,116,141,49,57,84,121,165,134,90,150,105,80,168,81,111,82,102,90,185,134,157,136,133,80,141,90,204,91,169,95,198,61,255,121,215,134,66,138,75,141,17,87,49,105,26,127,121,129,47,132,139,156,89,141,123,75,60,59,238,125,92,135,110,135,7,137,20,137,230,140,217,153,20,91,27,126,103,133,57,143,146,155,251,140,81,147,98,147,198,156,134,137,165,153,0,70,18,156,65,216,215,220,60,0,42,0,92,145,40,105,132,137,163,121,178,155,60,0,39,0,208,253,39,0,9,49,60,0,42,0,145,84,210,84,55,128,69,131,26,123,210,85,45,100,69,216,63,220,152,100,96,86,89,216,191,221,33,137,157,147,60,0,42,0,190,143,126,84,178,89,27,96,147,108,214,143,159,112,141,127,87,117,99,117,42,123,89,131,115,82,18,83,84,123,90,138,57,144,84,144,24,150,124,151,145,151,152,133,137,147,253,135,130,142,61,148,195,151,150,159,152,159,60,0,42,0,83,98,60,0,42,0,39,89,79,108,20,119,60,0,42,0,175,87,182,88,41,118,245,113,104,126,60,0,42,0,26,86,60,0,42,0,43,57,116,96,151,95,194,109,234,96,207,104,29,149,179,95,183,95,64,147,60,0,42,0,48,87,132,118,38,129,60,0,42,0,70,84,84,84,67,115,219,97,60,0,42,0,121,107,163,80,46,144,60,0,42,0,50,52,227,78,106,143,67,216,58,220,136,87,177,92,18,94,25,117,208,126,128,154,38,94,133,95,32,96,203,103,134,107,179,115,55,141,232,143,47,94,209,142,237,87,54,94,63,125,139,136,218,142,214,62,184,140,233,142,71,116,215,94,6,66,199,83,194,59,255,125,195,102,15,157,52,98,88,216,2,221,92,130,219,158,36,124,91,142,59,112,52,151,241,158,118,137,70,151,60,0,42,0,152,155,60,0,42,0,136,46,0,82,2,82,232,83,201,95,55,103,24,108,32,130,214,145,125,156,91,155,60,0,42,0,111,99,60,0,42,0,252,91,155,92,246,92,99,99,119,121,23,100,130,121,0,56,139,93,140,93,54,58,157,150,14,92,212,88,185,93,227,100,72,142,175,150,177,121,60,0,42,0,48,82,18,80,188,96,24,113,215,118,220,118,255,131,83,144,50,122,140,123,226,127,59,122,92,136,117,86,95,136,164,106,254,113,38,67,255,127,199,142,217,116,155,126,60,0,42,0,118,92,102,150,33,105,221,105,60,0,42,0,58,84,23,85,92,81,253,144,96,81,56,133,119,106,252,123,60,0,42,0,150,98,39,150,147,103,161,103,30,85,170,134,97,150,4,146,60,0,42,0,151,101,70,140,98,109,214,144,126,153,37,155,170,104,237,107,48,129,115,131,23,144,88,145,216,117,151,149,166,122,38,75,38,155,22,153,163,101,68,216,157,220,216,149,70,69,199,122,42,155,44,155,45,155,60,0,42,0,103,78,84,130,60,0,42,0,57,78,137,89,85,83,197,98,88,83,8,119,3,120,60,128,61,128,159,68,67,128,173,142,248,144,174,85,133,90,154,107,5,118,48,83,170,123,21,152,11,81,239,82,29,137,50,145,212,100,171,107,73,118,20,117,30,124,76,137,120,128,60,0,42,0,20,79,16,82,140,98,172,115,237,116,198,128,184,117,30,125,116,136,184,99,85,141,182,78,162,100,163,100,184,111,213,158,189,129,238,158,60,0,42,0,230,101,70,79,14,94,138,108,249,108,218,114,222,139,230,103,141,117,86,85,87,85,57,95,238,96,225,109,203,134,127,85,62,95,46,108,69,129,15,132,219,137,214,53,158,122,228,80,17,135,190,153,231,154,62,86,73,86,72,95,154,97,149,138,186,97,186,102,185,111,222,132,32,157,171,121,243,153,90,118,170,86,117,126,9,141,46,151,79,153,53,74,60,0,42,0,101,98,125,98,60,0,42,0,83,95,240,115,219,148,92,123,198,136,118,117,121,86,162,111,171,116,57,124,97,130,247,135,96,137,58,148,60,0,42,0,33,99,90,81,32,140,203,100,97,139,232,158,41,101,89,112,19,107,156,139,60,0,42,0,57,108,252,81,53,87,149,91,0,120,177,87,99,104,97,131,120,90,19,97,234,131,99,93,253,116,63,144,252,150,173,120,5,81,82,111,138,119,164,141,203,88,105,133,148,106,151,116,234,118,17,121,28,124,47,134,227,149,60,0,42,0,111,112,123,118,75,140,84,86,1,91,200,113,146,116,243,122,38,124,180,137,108,142,60,0,42,0,41,103,73,123,37,98,60,0,42,0,147,144,243,81,177,88,157,93,39,145,165,150,170,119,244,120,107,149,200,106,25,148,60,0,42,0,96,130,60,0,42,0,16,108,254,78,78,79,67,89,125,95,157,127,155,136,36,88,134,141,132,150,244,110,0,106,93,149,254,120,73,147,174,151,60,0,42,0,196,114,248,94,116,124,214,130,234,143,25,85,76,101,164,109,145,104,27,123,123,131,204,137,110,151,176,153,226,154,0,86,225,90,204,110,223,127,20,152,117,101,11,133,16,133,0,74,129,86,244,123,36,74,116,140,98,142,4,155,225,133,209,147,174,66,244,124,191,137,16,158,60,0,42,0,142,83,88,87,203,139,103,84,149,94,36,95,181,98,222,98,184,144,58,150,226,103,116,114,11,131,37,120,222,87,139,99,125,59,231,131,221,137,70,138,231,142,92,128,182,154,60,0,42,0,84,87,31,95,243,101,85,103,147,115,31,96,228,79,29,94,202,87,35,90,89,80,71,85,114,85,138,104,13,113,246,115,49,119,44,123,27,140,18,144,19,144,241,145,130,90,227,104,39,110,71,119,118,121,20,127,194,131,192,80,99,129,130,132,106,146,145,88,85,100,178,120,152,121,67,135,94,144,172,88,120,97,224,125,21,133,112,144,179,93,11,117,230,138,54,142,174,135,60,0,42,0,243,155,60,0,42,0,242,85,60,0,42,0,57,114,204,141,58,137,60,0,42,0,164,87,204,92,78,96,21,99,51,102,214,126,197,128,245,130,237,143,222,116,35,119,28,98,242,67,13,140,139,85,30,88,245,96,242,99,115,117,112,125,11,128,247,129,68,138,131,141,123,149,224,83,156,107,67,114,82,114,125,93,159,120,40,135,83,130,118,135,11,137,75,216,163,221,220,138,64,142,189,156,42,59,225,102,137,117,8,156,138,117,14,108,60,0,42,0,203,84,10,128,48,119,60,0,42,0,73,94,130,117,60,0,42,0,1,82,252,83,72,108,109,134,203,81,93,89,52,95,107,95,193,134,49,116,130,140,137,120,237,156,166,107,151,119,213,150,137,155,183,156,38,159,219,155,112,157,60,0,42,0,90,98,76,92,60,0,42,0,20,95,4,79,10,84,147,148,142,122,11,138,3,140,137,99,227,145,222,148,235,148,232,122,177,146,255,150,97,155,231,132,191,138,57,118,181,122,253,146,203,133,67,148,60,0,42,0,19,124,60,0,42,0,31,78,34,78,67,216,141,220,229,148,169,146,60,0,42,0,56,117,65,101,67,216,167,221,130,99,142,80,167,83,110,93,199,110,199,105,217,105,40,118,160,152,78,142,197,93,90,152,91,152,107,118,211,93,212,93,39,101,114,118,123,159,60,0,42,0,120,81,76,89,185,112,112,90,32,115,68,67,95,101,213,141,152,120,167,132,46,142,71,133,222,158,184,86,60,0,42,0,53,117,67,79,107,87,151,94,61,150,171,87,66,98,183,115,191,148,93,90,230,96,192,109,96,89,20,116,191,107,20,135,251,150,138,88,194,88,66,106,93,106,177,111,91,151,82,216,113,222,92,118,31,124,84,154,60,0,42,0,35,105,60,0,42,0,1,78,195,78,238,83,4,94,142,115,148,117,239,118,137,148,53,128,112,134,74,145,216,145,106,151,60,0,42,0,117,89,118,152,2,152,192,58,14,159,127,93,17,159,206,111,161,133,36,148,60,0,42,0,162,139,202,95,100,153,244,119,154,91,2,138,227,152,118,85,228,148,23,105,90,129,35,132,135,120,45,149,160,120,74,135,204,146,32,147,248,120,65,152,60,0,42,0,98,128,60,0,42,0,190,83,71,216,42,220,98,82,7,150,99,119,31,86,143,145,205,149,60,0,42,0,210,107,236,114,156,109,251,139,14,110,31,105,105,60,77,114,138,114,161,120,251,136,173,138,115,135,104,115,22,147,223,81,53,83,59,91,6,112,221,106,176,107,88,114,162,114,196,116,190,118,51,154,233,158,128,139,68,140,21,141,227,151,95,148,209,154,199,151,229,151,247,158,159,139,60,0,42,0,3,123,53,88,62,94,76,141,61,116,121,119,169,137,237,140,228,123,60,0,42,0,146,89,92,103,154,128,143,130,172,89,166,94,250,121,112,131,33,110,111,151,64,149,103,216,90,221,153,135,172,107,77,147,53,124,39,136,57,136,60,0,42,0,26,89,27,89,132,84,198,84,83,117,95,82,28,93,135,99,96,101,242,107,240,136,137,86,60,0,42,0,58,89,206,148,107,82,83,101,90,101,165,85,179,96,106,101,229,117,44,146,106,89,217,81,49,142,181,155,56,148,60,0,42,0,53,103,54,103,218,84,155,87,156,87,5,99,6,99,245,87,13,127,47,105,147,141,177,142,178,142,158,125,42,73,156,97,184,78,122,147,195,142,178,86,114,89,60,0,42,0,52,82,65,82,115,153,46,92,193,103,238,103,168,112,74,150,79,150,87,104,21,88,53,130,240,96,226,141,229,141,250,141,255,152,231,62,174,88,175,88,158,93,125,157,60,0,42,0,164,103,60,0,42,0,150,87,6,88,96,88,95,93,253,117,211,120,45,157,28,148,60,0,42,0,3,58,39,152,60,0,42,0,249,91,31,150,74,81,76,81,81,81,254,91,60,96,75,121,110,150,138,150,147,120,207,65,144,125,13,92,158,97,157,97,231,111,102,149,223,97,104,137,35,59,177,133,41,112,72,139,19,148,60,0,42,0,17,128,115,80,108,82,143,90,239,122,13,137,116,147,60,0,42,0,74,216,67,223,237,119,60,0,42,0,181,107,173,101,69,88,14,127,52,105,69,113,86,116,118,129,110,132,171,120,59,149,222,125,200,107,22,124,91,147,183,101,150,142,106,124,60,0,42,0,40,84,199,96,102,101,51,135,169,88,170,88,180,100,100,115,120,86,137,100,84,106,156,114,5,121,59,69,114,142,126,142,80,154,60,0,42,0,76,216,180,223,249,118,184,141,137,142,60,0,42,0,5,79,228,86,137,94,140,108,150,112,254,118,24,120,157,148,7,144,127,152,13,146,111,105,65,144,19,152,97,111,111,144,201,113,50,142,60,0,42,0,183,120,60,0,42,0,28,78,172,81,154,84,181,54,189,92,113,103,56,102,33,108,243,130,50,80,43,158,236,87,59,90,32,93,44,93,183,109,23,123,154,95,45,108,196,131,100,216,147,220,64,135,36,157,21,159,223,155,135,157,60,0,42,0,2,58,99,132,165,88,189,123,204,138,30,91,79,216,197,223,107,133,194,97,60,0,42,0,168,82,187,81,151,79,140,87,219,89,210,92,107,96,15,99,11,104,30,109,232,128,205,81,25,98,244,128,245,143,213,82,80,120,223,104,105,110,103,125,86,129,205,80,231,153,24,151,60,0,42,0,151,155,171,157,60,0,39,0,208,253,39,0,10,49,60,0,42,0,214,78,131,91,121,89,96,114,66,121,202,148,191,141,76,88,187,110,153,105,31,137,131,86,231,149,60,0,42,0,121,142,60,0,42,0,84,88,154,110,150,88,243,53,109,115,206,156,122,115,40,156,60,0,42,0,163,78,211,98,30,99,231,114,252,149,67,216,50,221,229,54,9,93,190,109,124,59,40,100,191,64,246,141,187,105,254,107,11,66,93,144,98,144,147,52,162,121,187,138,15,142,187,100,190,111,20,147,125,106,204,111,75,142,156,151,153,155,249,63,210,149,179,151,186,86,118,139,229,149,105,216,1,222,162,142,60,0,42,0,164,79,156,84,60,0,42,0,209,95,210,95,121,114,163,140,174,134,253,148,93,97,241,146,163,135,216,135,60,0,42,0,252,86,97,91,206,128,60,0,42,0,173,81,240,83,242,101,110,87,172,98,176,144,177,103,177,112,178,112,212,130,237,131,198,141,3,59,144,156,136,123,250,129,177,152,26,66,216,153,19,81,144,155,47,91,225,100,0,62,175,106,185,133,73,124,60,0,42,0,42,89,51,89,242,95,112,108,1,96,189,128,155,148,240,108,38,130,237,72,94,145,38,146,153,110,75,97,228,113,60,0,42,0,143,124,60,0,42,0,50,89,34,95,155,109,230,126,143,99,92,138,205,90,77,94,70,97,47,100,212,110,91,125,196,105,107,116,236,151,248,152,49,66,26,126,39,126,228,111,31,139,65,143,62,73,177,151,220,151,85,153,60,0,42,0,11,83,183,84,46,109,239,143,67,104,3,144,85,85,188,104,216,109,59,65,249,126,118,150,4,132,121,121,175,125,42,135,234,136,128,151,132,145,137,151,254,146,45,147,227,153,174,106,64,153,10,154,23,159,60,0,42,0,168,139,14,138,60,0,42,0,87,89,60,0,42,0,119,80,120,80,126,90,174,90,192,146,110,147,60,0,42,0,160,78,52,89,149,98,176,154,240,125,45,152,60,0,42,0,181,89,173,148,15,125,151,58,104,101,243,152,200,158,35,134,60,0,42,0,15,144,137,125,60,0,42,0,77,87,49,54,169,98,42,141,57,96,209,117,17,130,170,140,74,100,233,110,43,118,249,100,36,101,88,112,113,118,60,0,42,0,91,87,68,216,168,222,25,102,19,80,8,140,82,90,212,96,239,144,131,137,131,105,240,117,44,149,45,140,176,88,181,88,155,97,109,111,199,138,136,145,199,88,199,102,194,113,31,147,36,153,128,106,249,120,67,152,72,127,220,88,235,133,90,139,154,140,176,145,96,139,78,127,60,0,42,0,208,95,102,87,217,67,189,148,146,136,239,107,252,131,161,71,109,146,255,85,179,97,187,97,147,145,174,116,98,137,60,0,42,0,249,83,173,112,238,87,162,99,157,80,96,110,203,80,6,86,179,120,21,130,78,107,231,140,60,0,42,0,100,108,99,87,244,148,111,110,33,86,37,128,143,82,176,127,106,135,182,71,0,72,87,149,154,133,90,142,220,147,11,148,186,151,30,159,60,0,42,0,103,153,16,85,2,88,143,80,122,85,123,59,224,104,125,52,88,88,13,55,42,100,143,110,12,145,182,105,31,111,123,113,109,116,133,129,206,132,154,150,24,106,77,216,95,222,196,120,159,121,195,124,155,129,86,106,214,123,214,124,151,135,60,142,219,124,179,135,111,141,163,145,51,153,78,66,149,147,57,153,219,149,68,153,96,216,137,221,182,157,60,0,42,0,22,79,17,94,24,80,82,80,204,109,165,80,186,142,75,149,178,147,59,81,3,98,237,102,35,114,216,119,130,148,60,0,42,0,235,112,101,100,159,141,217,113,60,0,42,0,165,113,175,129,31,159,60,0,42,0,188,117,203,117,80,94,126,129,138,138,27,111,213,110,34,126,134,144,230,153,4,139,47,81,228,133,48,154,80,124,39,156,88,124,99,154,60,0,42,0,47,151,60,0,42,0,69,134,60,0,42,0,84,82,175,104,56,53,17,149,34,142,255,100,200,157,201,157,60,0,42,0,151,83,208,130,232,126,81,131,77,80,124,85,57,93,255,96,208,99,10,122,7,127,100,127,72,158,193,85,69,116,136,125,70,144,174,120,178,95,61,111,249,125,109,135,6,137,187,146,152,152,91,133,167,141,68,142,141,145,21,139,79,142,87,147,192,156,58,157,76,152,183,155,92,157,32,154,247,155,151,157,153,157,181,121,228,157,60,0,42,0,83,79,46,99,176,142,181,154,167,155,198,142,212,154,60,0,42,0,59,98,78,216,194,221,73,92,207,143,67,82,17,103,31,109,28,80,140,96,149,109,92,92,144,96,213,96,166,99,22,144,214,96,229,99,255,102,55,144,116,105,252,136,82,107,162,107,5,137,240,154,49,59,143,86,153,133,0,155,148,86,203,116,74,124,175,141,145,77,60,0,42,0,57,123,92,93,60,0,42,0,22,94,23,96,52,141,81,128,28,132,188,140,60,0,42,0,193,148,200,134,227,80,149,146,232,146,41,157,33,148,53,148,86,154,60,0,42,0,107,84,251,152,52,77,46,153,60,0,42,0,235,101,123,79,163,94,76,96,17,99,103,121,56,59,78,128,60,0,42,0,128,130,97,103,167,92,185,92,226,143,82,121,157,104,36,123,20,132,237,71,146,141,134,159,218,132,41,135,36,106,232,132,218,146,235,154,166,156,151,151,165,147,200,155,96,159,55,156,60,0,42,0,168,91,64,102,19,103,32,62,1,129,149,122,130,138,55,72,177,122,162,101,37,91,60,0,42,0,58,119,156,124,105,125,156,137,243,141,246,124,60,0,42,0,169,135,60,0,42,0,41,89,114,81,86,90,251,109,95,145,84,151,236,66,50,59,199,158,93,151,60,0,42,0,48,117,71,92,186,108,108,96,75,117,81,117,247,118,203,128,96,117,27,117,28,117,73,110,254,131,82,72,97,88,107,88,55,100,63,146,23,150,194,125,204,120,180,122,179,116,208,149,198,157,207,157,60,0,42,0,221,95,132,107,14,80,173,53,58,85,73,54,191,96,223,109,106,102,32,116,70,129,205,137,246,117,83,119,20,130,2,153,165,137,223,140,42,147,102,151,105,147,60,0,42,0,1,52,173,99,124,119,26,130,60,0,42,0,181,120,43,157,60,0,42,0,133,83,129,94,64,108,124,130,44,84,58,117,19,128,155,83,195,112,111,104,244,112,142,125,252,66,147,151,116,128,240,94,124,128,125,128,243,94,60,0,42,0,146,144,247,94,173,78,173,94,92,80,155,131,119,90,73,93,31,110,95,105,115,123,118,132,19,135,179,105,100,128,79,135,174,149,6,151,234,138,46,159,60,0,42,0,68,216,60,222,34,87,60,117,185,79,23,90,58,99,143,109,131,104,246,112,253,115,33,129,139,152,71,130,148,138,50,152,104,216,182,222,60,0,42,0,248,81,138,91,191,121,195,121,34,96,129,122,11,85,139,109,120,99,23,88,101,110,220,117,86,132,128,93,245,146,90,157,53,159,60,0,42,0,243,86,254,86,195,81,249,92,169,94,146,95,135,96,72,99,130,109,96,92,140,104,204,62,124,131,20,144,236,99,120,59,12,122,223,131,21,87,87,88,94,93,76,216,37,222,15,118,97,123,111,129,47,146,22,87,23,87,220,94,115,111,164,132,255,141,116,145,221,72,159,153,78,147,252,153,76,157,159,157,203,157,245,157,60,0,42,0,31,87,33,87,16,84,141,148,247,145,60,0,42,0,78,81,84,81,204,143,13,88,117,157,60,0,42,0,98,108,181,131,60,0,42,0,71,78,219,78,172,139,88,98,97,98,81,108,102,153,84,103,130,79,131,84,213,98,214,98,176,108,41,99,93,99,23,138,182,109,43,129,49,129,140,131,165,136,229,152,96,155,93,154,60,0,42,0,110,154,87,79,104,87,174,92,177,108,178,108,207,114,64,150,65,150,124,154,241,143,35,120,36,120,53,158,61,125,137,136,54,88,206,141,97,145,177,153,214,105,162,120,126,75,196,153,221,153,222,153,80,106,128,155,21,157,39,159,40,154,13,159,82,154,9,159,60,0,42,0,117,95,165,89,185,94,160,90,45,105,85,105,247,90,98,106,78,157,12,155,22,156,60,0,42,0,221,103,228,107,62,85,26,132,197,141,251,107,168,123,0,134,92,124,60,0,42,0,168,99,247,132,236,133,60,0,42,0,26,95,3,64,147,152,53,92,164,150,57,152,58,152,61,152,75,155,104,122,106,142,8,134,215,63,60,0,42,0,192,79,211,80,127,129,70,142,189,154,60,0,42,0,187,79,39,90,0,144,122,113,251,134,21,135,42,137,254,153,60,0,42,0,77,110,47,115,83,113,78,71,146,140,78,77,60,0,42,0,226,86,227,86,159,98,120,82,24,87,113,97,118,100,25,111,235,105,255,123,178,106,196,147,240,124,210,157,251,157,60,0,42,0,131,117,60,0,42,0,86,95,106,110,22,137,60,0,42,0,30,84,81,84,146,109,77,85,28,103,30,113,75,86,190,102,63,59,215,158,60,0,42,0,111,92,73,87,243,95,104,153,154,130,88,140,90,140,216,142,233,152,128,156,104,155,84,58,21,151,192,129,203,129,60,0,42,0,61,108,125,117,60,0,42,0,253,101,60,0,42,0,242,86,181,112,204,117,26,144,245,85,234,132,60,0,42,0,221,78,12,84,95,79,100,95,194,92,157,94,195,84,221,92,234,114,77,102,80,104,117,109,212,112,60,120,60,131,146,134,46,119,241,121,220,148,229,122,161,124,90,216,52,222,105,123,119,138,104,141,110,145,86,146,238,80,237,82,117,146,133,146,7,153,150,156,124,111,94,115,200,102,35,103,102,106,3,108,209,113,157,114,167,129,63,63,179,119,166,155,89,216,141,220,0,77,60,0,42,0,223,126,69,99,140,58,118,104,82,123,113,125,130,125,11,106,60,0,42,0,120,96,219,117,85,136,95,97,133,97,60,0,39,0,208,253,39,0,11,49,60,0,42,0,239,85,60,0,42,0,207,98,255,98,16,99,241,85,78,149,191,147,60,0,42,0,120,78,234,84,235,150,60,0,42,0,54,84,80,84,160,89,179,126,163,144,173,128,160,148,28,90,13,125,114,136,122,99,29,123,87,216,73,222,166,136,125,140,220,142,128,140,9,146,121,151,179,132,83,216,59,222,118,155,43,66,60,0,42,0,146,117,183,139,144,98,50,119,37,138,60,0,42,0,98,84,60,0,42,0,73,129,139,113,104,100,123,91,60,0,42,0,67,78,118,89,22,108,127,130,147,117,179,89,252,94,55,80,250,143,226,145,45,91,60,0,42,0,72,89,240,103,15,128,16,128,69,216,171,223,63,110,24,132,16,159,154,135,38,137,60,147,60,0,42,0,30,90,129,153,46,129,71,129,18,153,190,155,216,155,60,0,42,0,103,81,133,81,59,52,29,108,23,147,60,0,42,0,108,91,60,0,42,0,118,84,19,96,32,99,241,92,71,120,217,148,49,115,242,134,73,138,153,120,147,100,169,93,185,97,239,135,18,89,74,139,3,148,206,93,60,0,42,0,180,87,124,96,169,96,17,129,24,83,22,88,241,96,208,90,89,116,102,129,175,120,0,71,118,115,127,115,60,0,42,0,249,149,101,90,214,109,153,149,39,155,209,129,60,0,42,0,51,129,60,0,42,0,186,127,60,0,42,0,66,85,60,0,42,0,200,105,40,128,115,115,189,106,146,147,30,148,115,139,60,0,42,0,225,86,60,0,42,0,55,117,143,103,172,103,189,79,87,83,223,103,26,90,88,117,190,150,174,131,131,85,148,102,96,105,245,138,227,150,93,216,116,221,60,0,42,0,103,141,199,99,115,110,105,129,51,132,18,66,123,135,1,98,60,0,42,0,89,216,218,222,123,90,46,59,60,0,42,0,86,144,60,0,42,0,65,96,233,90,240,90,60,0,42,0,212,86,60,0,42,0,106,78,162,86,104,139,202,86,48,136,30,155,149,153,28,107,98,153,60,0,42,0,195,100,233,102,46,101,98,112,60,0,42,0,62,81,73,159,60,0,42,0,253,128,60,0,42,0,67,216,76,222,99,216,153,221,60,0,42,0,174,89,60,0,42,0,60,92,109,87,190,55,41,96,229,108,126,124,42,80,84,92,220,121,204,148,255,87,87,90,227,109,10,115,173,134,38,70,243,144,255,104,82,216,164,221,207,70,220,141,93,129,99,128,58,135,236,137,142,140,23,143,19,151,181,156,211,155,226,155,145,158,111,159,225,129,60,0,42,0,49,79,96,79,179,98,223,98,212,114,197,103,232,130,206,101,114,102,116,91,46,146,156,153,23,81,30,81,236,100,172,150,183,106,191,133,123,128,60,0,42,0,112,92,60,108,50,79,79,216,183,220,53,102,210,128,225,143,36,119,6,144,63,83,4,88,196,96,53,97,186,110,104,119,123,129,223,90,177,102,189,138,101,64,12,126,169,129,58,91,105,216,91,222,60,0,42,0,174,136,60,0,42,0,79,99,209,99,60,0,42,0,246,130,60,0,42,0,7,94,89,216,18,222,60,87,191,103,133,109,198,117,66,128,236,129,103,150,110,85,215,96,166,85,92,101,124,110,205,131,137,150,235,85,114,93,2,142,91,86,112,100,247,105,23,142,74,149,77,149,173,93,222,123,242,129,28,147,158,152,81,142,153,86,118,128,179,147,209,149,124,91,56,55,125,91,241,106,75,124,193,86,22,134,103,159,76,216,51,220,241,124,37,136,72,148,245,124,211,86,152,139,161,142,119,148,115,152,128,148,192,75,60,0,42,0,213,93,60,0,42,0,31,158,17,131,100,59,133,136,229,156,203,90,202,136,34,106,38,133,29,91,45,137,50,91,53,55,60,0,42,0,63,92,50,129,60,0,42,0,158,89,60,0,42,0,167,46,91,114,124,108,60,0,42,0,248,95,109,98,195,114,189,126,132,112,174,148,16,125,165,131,21,146,117,151,60,0,42,0,66,136,244,66,60,0,42,0,92,114,60,0,42,0,200,98,43,133,60,0,42,0,116,94,202,121,214,84,229,121,135,156,142,155,182,156,207,158,240,155,60,0,42,0,138,109,123,99,240,109,62,113,200,141,135,143,151,143,154,100,181,100,190,120,38,143,16,124,77,142,6,101,104,142,142,142,60,0,42,0,68,83,255,94,245,95,233,89,56,85,221,87,76,130,48,159,60,0,42,0,71,157,60,0,42,0,220,86,168,96,251,66,60,0,42,0,240,98,60,0,42,0,12,129,60,0,42,0,24,90,34,91,67,91,60,0,42,0,127,145,184,145,192,145,60,0,42,0,129,91,155,84,231,98,222,114,224,103,231,130,77,128,205,91,213,91,47,117,215,91,220,91,231,91,28,81,221,81,128,86,35,91,240,100,112,115,184,106,180,133,121,128,94,216,72,223,79,148,33,155,11,158,60,0,42,0,99,106,195,119,60,0,42,0,94,79,171,79,222,108,216,111,60,0,42,0,157,111,60,0,42,0,116,89,101,91,125,154,47,123,209,153,60,0,42,0,46,79,170,82,41,95,46,120,236,128,60,0,42,0,18,96,137,80,25,100,60,0,42,0,205,144,42,99,155,104,169,80,58,81,60,0,42,0,96,106,60,0,42,0,250,139,143,85,30,97,73,216,42,223,191,99,38,100,61,144,24,149,59,100,146,105,44,122,209,124,254,138,67,142,230,97,231,97,229,124,100,122,239,124,60,0,42,0,123,89,60,0,42,0,28,110,9,59,150,102,86,113,87,113,42,153,60,0,42,0,193,158,60,0,42,0,156,81,172,79,221,84,83,109,19,129,254,121,178,143,2,81,179,143,101,86,195,111,130,106,246,113,191,129,125,133,175,121,96,122,91,137,178,145,1,107,60,0,42,0,119,126,60,0,42,0,4,95,10,99,81,118,72,159,60,0,42,0,115,89,149,148,121,124,249,145,60,0,42,0,145,108,103,96,18,103,68,136,188,70,60,0,42,0,159,117,80,134,120,120,39,118,60,0,39,0,208,253,39,0,12,49,60,0,42,0,131,87,201,98,198,103,203,127,200,131,26,100,139,144,60,0,42,0,239,101,76,82,44,120,230,99,214,120,185,86,60,0,42,0,135,85,222,133,60,0,42,0,74,129,231,99,75,105,12,118,33,135,75,135,162,143,163,143,114,135,200,129,11,101,9,114,216,129,14,155,206,116,116,149,251,155,31,136,94,148,60,0,42,0,102,85,130,110,161,151,60,0,42,0,214,86,60,0,42,0,139,128,60,0,42,0,194,78,57,53,80,78,251,83,199,95,80,98,59,108,30,150,143,115,123,130,208,108,251,122,51,120,125,105,247,151,2,106,21,124,161,57,211,156,51,156,60,0,42,0,134,78,121,153,14,153,60,0,42,0,101,103,134,79,235,79,8,80,3,93,149,95,158,109,97,90,13,93,178,94,160,95,190,104,246,109,13,115,177,131,242,144,246,104,28,116,89,123,10,132,40,144,252,148,130,123,241,66,96,216,144,220,56,147,11,154,224,155,134,157,179,158,60,0,42,0,59,85,73,141,80,119,94,119,86,141,218,140,209,111,244,140,60,152,66,152,68,216,150,220,94,118,99,157,40,112,44,112,65,124,244,106,10,62,254,133,105,118,95,124,112,137,60,0,42,0,210,82,60,0,42,0,247,150,216,90,39,127,126,117,2,133,194,100,98,61,145,106,50,126,12,121,109,149,209,106,195,116,184,127,39,121,141,126,77,127,29,136,51,148,50,134,96,143,61,81,232,88,88,148,65,151,25,107,70,134,157,126,58,159,60,0,42,0,189,83,18,128,212,139,146,87,107,125,66,129,171,80,132,138,15,106,202,120,229,120,76,133,33,81,66,66,126,133,216,88,125,61,87,118,208,106,223,133,40,121,69,112,132,139,61,134,120,148,19,158,60,0,42,0,234,108,33,109,123,124,153,109,218,109,47,125,96,216,36,220,121,145,135,146,27,152,42,152,17,147,174,72,2,101,163,152,94,152,106,66,135,126,49,134,183,121,60,0,42,0,65,88,30,86,105,156,60,0,42,0,94,99,136,100,60,0,42,0,179,82,180,82,98,114,130,122,240,84,32,85,2,93,118,109,222,82,232,117,249,148,215,80,46,86,160,55,151,93,165,97,82,216,66,222,70,118,241,120,41,124,231,135,170,145,18,148,95,152,221,154,60,0,42,0,2,128,1,128,108,79,190,84,229,89,69,96,235,114,51,104,86,131,209,148,237,65,160,146,102,111,81,106,81,143,60,0,42,0,157,109,217,112,34,128,106,145,234,90,166,97,135,111,188,142,111,106,46,128,194,142,60,0,42,0,239,115,83,120,89,216,232,222,169,124,239,134,37,103,177,155,60,0,42,0,156,119,60,0,42,0,69,82,4,90,123,80,65,90,189,85,135,110,194,80,124,105,140,132,13,86,212,94,122,97,10,111,19,106,161,113,39,128,30,133,124,135,113,144,44,128,91,130,187,135,49,139,193,142,197,154,187,151,207,154,60,0,42,0,93,93,2,100,127,88,129,93,95,100,211,123,10,117,13,124,60,0,42,0,55,53,75,150,90,92,15,111,24,118,66,149,58,118,59,118,228,147,60,0,42,0,112,81,154,92,230,98,15,104,106,90,207,96,80,93,17,150,123,132,221,132,48,140,177,83,156,111,22,81,147,101,238,123,52,137,226,97,227,113,247,113,103,149,204,149,188,116,205,133,85,137,75,139,96,216,79,221,113,94,20,101,62,112,67,124,127,126,100,137,149,101,4,107,70,112,45,134,55,121,99,124,116,137,210,86,97,112,149,139,157,142,23,107,132,148,202,151,60,0,42,0,200,137,104,109,230,54,253,99,6,127,132,105,36,111,113,127,130,145,200,88,210,97,167,137,92,58,229,100,62,91,246,97,68,91,189,137,43,67,79,91,44,101,96,112,213,86,22,107,38,114,114,152,156,126,60,0,42,0,194,112,229,110,215,113,130,86,235,111,1,114,27,114,211,116,36,114,109,148,247,124,60,0,42,0,125,137,60,0,42,0,119,85,60,0,42,0,198,82,206,144,52,107,252,114,222,144,6,150,143,101,121,104,98,60,5,116,207,90,202,94,96,120,2,122,18,149,148,105,111,116,100,123,70,130,200,132,11,135,180,142,130,135,195,146,175,147,250,153,60,0,42,0,23,103,22,103,250,112,95,54,113,88,3,106,226,132,143,138,190,59,36,103,60,0,42,0,204,87,0,93,106,109,240,58,168,131,67,216,152,222,151,132,172,149,60,0,42,0,37,85,210,144,60,0,42,0,4,54,60,0,42,0,26,93,68,88,241,104,94,105,144,120,28,122,24,143,68,66,144,133,60,0,42,0,183,81,60,0,42,0,48,80,14,88,35,97,86,119,28,142,60,0,42,0,233,84,60,0,42,0,21,82,93,103,152,83,83,82,248,114,138,154,161,96,168,104,169,104,184,104,129,114,13,116,187,121,154,124,114,131,177,85,195,104,29,61,130,114,222,131,66,158,122,82,19,111,72,62,93,119,99,123,33,127,67,130,10,135,67,216,215,222,67,216,29,223,224,90,119,91,224,118,141,140,146,57,6,106,131,116,206,124,224,132,235,146,161,156,206,158,121,127,62,133,91,216,153,222,5,147,241,123,45,126,39,69,205,135,53,137,159,86,39,139,168,145,208,145,226,150,132,101,0,60,200,116,220,133,140,144,235,147,236,155,121,157,231,158,196,86,33,136,57,154,75,91,242,94,33,101,85,112,153,82,58,134,87,148,114,122,108,124,154,126,106,154,122,156,29,158,60,0,42,0,60,121,78,103,204,145,218,79,219,92,226,92,12,90,242,92,108,109,6,116,38,144,2,149,180,124,207,136,225,136,74,140,240,146,164,156,99,81,167,111,174,121,201,155,248,135,180,145,226,156,144,144,103,156,26,107,60,0,42,0,155,82,134,83,137,83,116,92,203,122,15,84,56,103,61,78,41,82,177,82,86,84,92,87,165,108,139,79,120,53,166,92,62,98,165,103,180,108,160,117,200,130,182,150,208,79,234,79,38,57,14,104,172,117,5,120,217,130,114,141,121,143,102,52,14,85,51,90,167,96,23,104,27,104,150,109,1,115,213,115,58,120,62,120,221,121,24,131,84,131,230,144,51,85,111,90,32,123,146,124,157,124,55,129,133,131,137,131,184,134,206,134,136,80,211,81,164,83,217,104,226,117,224,134,72,138,222,141,243,150,175,83,91,88,68,97,46,100,167,110,93,146,232,156,15,59,166,102,116,107,110,116,159,125,154,132,158,132,39,135,178,83,119,135,198,102,119,107,229,123,9,69,183,150,103,216,152,221,23,157,245,82,250,62,255,120,184,150,1,155,46,81,193,93,255,111,88,118,152,147,166,86,226,88,10,101,222,102,212,106,223,106,29,112,4,114,161,114,197,116,7,136,151,158,234,106,15,114,209,116,170,118,237,118,203,119,42,121,43,121,178,121,246,133,167,52,55,81,103,118,48,121,242,124,35,136,43,136,197,157,156,158,199,86,38,101,94,216,157,220,251,137,146,142,98,143,72,145,16,107,136,139,96,216,155,222,99,143,45,101,229,116,66,151,102,216,195,221,113,156,115,156,75,151,60,0,42,0,3,104,170,106,207,155,60,0,42,0,233,79,6,80,60,0,42,0,167,84,60,0,42,0,23,82,163,82,189,81,189,82,220,57,244,89,18,99,12,109,247,84,210,87,211,87,32,57,94,59,53,104,86,109,200,112,34,131,254,143,105,99,105,59,14,115,31,129,218,134,194,136,109,113,89,119,87,128,148,141,228,93,178,152,32,81,164,155,55,157,248,100,117,115,163,114,144,142,27,155,47,59,35,155,114,156,60,0,42,0,223,107,24,99,238,112,31,115,60,0,42,0,169,100,125,142,60,0,42,0,189,143,151,117,74,128,218,80,229,91,122,93,128,97,59,111,139,129,57,86,253,90,238,91,154,93,155,93,121,101,96,115,45,127,184,102,206,113,153,116,171,129,124,144,115,61,66,118,105,158,106,92,235,94,29,124,90,126,223,135,66,140,255,140,88,142,16,148,212,133,201,152,206,154,239,157,60,0,42,0,254,83,38,65,140,148,213,145,29,145,173,97,252,132,173,119,226,102,125,149,18,114,60,0,42,0,37,92,38,92,147,112,153,101,30,92,214,94,130,100,183,122,99,149,60,0,42,0,14,114,60,0,42,0,156,110,152,113,83,142,60,0,42,0,24,82,160,108,68,117,65,109,79,109,9,116,89,117,200,101,113,117,107,120,215,136,99,216,231,222,185,90,103,93,210,101,197,132,143,153,157,154,180,105,96,116,165,132,91,144,215,152,137,82,108,116,36,118,194,120,79,149,224,153,96,158,74,106,162,116,129,117,96,149,69,118,201,135,101,216,233,221,245,153,160,86,240,97,15,112,143,147,166,147,141,158,240,133,208,147,192,152,46,154,197,152,33,156,185,157,81,154,60,0,42,0,213,57,243,103,1,104,203,115,122,104,250,126,13,149,90,146,249,152,185,125,174,113,118,127,246,146,110,106,60,91,128,127,60,0,42,0,109,81,66,117,207,127,111,88,199,94,145,111,223,120,104,158,36,151,62,153,225,150,2,148,194,152,56,155,218,157,60,0,42,0,94,104,60,0,42,0,65,89,24,94,28,96,222,143,159,109,191,104,178,131,122,70,35,144,84,128,183,78,201,94,147,110,50,83,249,85,105,89,105,97,35,111,145,113,226,136,157,137,134,82,51,83,82,86,254,90,144,97,228,105,207,120,107,128,238,132,162,156,194,111,211,111,110,128,138,135,235,113,58,126,244,127,111,128,193,129,149,133,51,137,48,139,101,142,140,147,112,149,227,106,62,124,10,136,17,155,101,73,46,148,49,156,98,124,104,124,60,0,42,0,91,101,15,116,56,129,227,136,89,100,137,116,57,133,26,91,130,101,236,59,201,129,59,145,183,127,93,137,30,134,60,0,42,0,195,126,188,112,75,96,112,109,147,107,28,88,3,55,161,90,104,60,69,110,254,148,198,80,93,105,73,113,83,116,48,132,75,111,244,125,176,111,44,147,174,107,74,147,200,147,145,61,50,112,10,156,29,134,0,98,59,55,158,126,60,0,42,0,104,128,60,0,42,0,206,98,60,0,42,0,184,83,151,103,187,144,52,78,167,81,221,119,73,85,10,93,203,109,125,102,51,116,166,124,243,117,132,120,150,123,188,124,153,93,126,111,92,115,48,145,163,150,180,101,189,102,208,113,152,116,154,143,116,144,22,151,181,119,247,120,232,129,87,126,247,127,144,158,84,143,227,88,54,112,251,147,222,156,78,154,87,156,159,158,60,0,42,0,45,52,6,58,251,131,131,78,219,81,220,81,155,100,233,94,234,94,205,97,212,97,159,111,129,106,169,106,91,118,93,118,60,0,42,0,29,84,97,96,139,96,65,141,27,113,195,140,239,80,58,133,73,106,166,129,181,149,16,117,132,117,120,142,250,133,143,142,153,142,170,142,101,143,60,0,42,0,111,130,205,79,201,81,129,104,188,109,11,105,140,143,174,124,177,124,154,88,161,125,9,142,17,106,44,143,231,124,60,0,42,0,33,78,36,78,179,52,105,81,33,85,98,85,154,99,60,129,201,125,61,135,242,136,73,155,78,155,60,0,42,0,174,78,244,84,162,96,5,140,134,143,168,85,126,102,120,110,207,145,12,143,210,138,27,143,68,147,60,0,42,0,119,113,23,124,60,0,42,0,7,48,54,79,34,82,117,112,249,86,125,87,12,89,200,89,186,92,126,95,224,108,209,114,36,102,14,103,195,103,178,115,211,130,204,81,244,116,138,118,49,120,226,121,219,122,195,148,48,158,72,90,149,99,194,104,233,109,12,116,45,123,55,125,235,126,69,67,154,127,206,127,70,128,50,130,201,134,81,136,117,150,241,131,69,138,201,141,232,142,126,121,52,146,157,149,246,150,132,159,10,66,190,125,236,136,6,133,10,151,214,153,170,111,2,147,127,155,174,156,18,157,119,158,33,59,239,113,65,66,22,69,118,133,27,151,29,151,98,159,234,155,65,91,67,145,97,159,250,106,38,134,189,145,72,151,76,216,31,223,30,107,39,114,82,216,233,222,162,158,133,69,151,159,60,0,42,0,173,92,62,150,138,136,134,152,24,152,186,93,60,0,42,0,228,78,230,83,100,84,169,112,60,0,42,0,228,132,23,151,46,112,60,0,42,0,92,86,184,100,60,0,42,0,98,83,144,94,134,87,248,108,137,112,166,130,84,59,12,104,234,128,115,143,44,158,136,115,59,130,133,152,136,156,114,155,231,118,167,86,218,88,32,56,236,94,14,101,218,106,24,112,121,115,183,116,229,102,232,106,16,114,208,116,218,129,6,134,209,119,90,124,145,126,79,127,107,130,38,136,100,143,106,148,113,152,215,154,120,156,21,158,248,158,60,0,42,0,100,83,79,134,179,99,117,158,117,120,129,156,92,134,119,88,247,110,16,106,155,111,254,132,111,155,196,100,121,106,224,120,101,149,149,86,252,100,2,112,211,106,12,108,99,130,192,147,106,130,42,148,101,148,60,0,42,0,37,87,42,117,147,79,116,87,84,95,85,95,70,150,205,92,206,82,66,141,130,143,61,90,213,109,229,109,12,110,73,120,120,150,127,158,144,58,2,105,45,116,132,121,2,68,201,131,47,144,199,80,121,82,224,82,221,118,105,119,140,120,127,121,17,122,194,140,239,141,118,88,216,94,93,100,9,111,147,123,182,124,68,216,20,220,46,98,26,106,157,113,148,129,13,133,238,137,162,141,27,142,152,143,129,145,221,59,94,111,75,122,4,147,50,147,52,147,144,116,15,124,87,133,176,135,87,142,70,143,4,154,102,216,241,220,109,158,44,124,54,124,213,147,229,155,102,157,113,157,147,158,244,147,50,151,60,154,89,124,250,157,66,134,60,0,42,0,166,103,46,130,41,146,7,108,60,0,42,0,87,127,112,85,49,152,201,86,60,0,42,0,86,127,33,115,54,129,36,105,29,132,153,137,59,144,97,129,35,149,169,123,161,154,89,149,186,135,133,127,182,137,205,147,56,81,188,137,62,154,70,216,34,221,30,101,128,115,15,107,90,216,199,220,63,134,143,144,88,154,1,158,110,124,124,148,96,153,60,0,42,0,70,82,46,80,207,132,248,136,182,142,48,118,97,58,1,60,3,136,221,129,234,102,115,118,60,0,42,0,250,108,200,92,27,109,220,126,134,154,28,109,222,115,102,131,102,120,63,123,97,125,224,85,61,132,94,100,47,111,150,114,123,146,210,150,241,153,165,155,60,157,69,157,252,111,93,216,204,223,153,126,60,0,42,0,8,90,106,91,230,92,27,99,62,104,62,158,20,129,230,110,174,146,73,157,29,87,113,89,76,91,127,91,210,93,35,101,235,102,18,107,83,112,137,127,224,129,30,87,100,112,74,134,126,148,116,118,117,118,30,158,60,0,42,0,117,83,60,0,42,0,113,78,224,145,130,78,60,0,42,0,161,98,132,99,60,0,42,0,209,78,38,79,245,86,166,108,182,126,150,79,110,143,43,80,7,87,104,90,24,93,25,93,192,96,234,109,111,150,198,104,205,61,64,129,213,131,1,66,184,125,38,135,26,142,42,143,0,147,233,155,60,0,42,0,232,87,150,120,16,122,35,128,60,0,42,0,186,139,163,110,214,138,60,0,42,0,238,120,60,0,42,0,153,159,120,92,153,84,247,108,61,102,10,104,209,115,231,128,15,131,44,119,59,120,220,122,60,123,75,128,112,110,134,150,221,110,67,216,144,223,144,93,11,111,99,56,237,123,111,133,141,159,67,118,191,122,168,86,195,93,196,93,39,112,60,124,231,147,232,102,39,103,13,60,243,106,22,114,207,116,34,134,51,151,211,119,49,121,50,121,146,159,96,124,126,128,42,136,44,136,113,137,69,140,152,142,104,148,71,151,190,75,97,154,23,158,60,0,42,0,132,87,133,87,226,98,71,150,51,61,226,123,49,81,223,88,224,88,15,101,180,150,201,122,147,159,60,0,42,0,226,84,53,99,135,104,191,95,26,141,60,0,42,0,222,105,60,0,42,0,116,154,254,149,216,144,136,105,191,153,0,108,162,129,173,149,216,133,220,157,98,154,60,0,42,0,21,84,66,84,163,79,182,79,20,99,206,54,75,99,91,99,197,101,90,59,160,104,99,121,6,122,221,148,97,92,21,127,125,125,98,92,130,129,101,92,27,137,193,146,144,129,34,81,94,122,55,126,56,137,109,122,60,0,42,0,253,91,143,87,139,95,81,134,135,115,255,126,67,216,200,221,66,93,47,108,228,110,78,132,160,125,209,125,110,97,187,123,159,129,244,82,66,126,254,111,214,106,8,114,98,148,60,0,42,0,18,113,60,0,42,0,103,117,10,149,36,122,0,53,25,87,60,58,221,146,226,146,253,100,60,0,39,0,208,253,39,0,13,49,60,0,42,0,238,101,119,84,14,86,32,86,60,0,42,0,134,148,28,92,118,86,55,147,60,0,42,0,21,92,141,115,60,0,42,0,44,92,64,155,60,0,42,0,8,98,225,78,42,87,181,114,165,126,66,216,235,223,19,98,144,128,107,114,153,117,175,84,113,114,229,84,243,128,61,158,114,82,1,100,188,136,67,216,157,222,210,110,40,98,76,107,103,216,183,223,16,157,26,157,241,100,12,139,63,157,182,147,60,0,42,0,68,84,55,56,110,79,12,83,12,99,1,150,105,151,75,101,88,59,60,104,22,131,50,155,5,97,245,129,210,134,221,85,101,88,198,110,91,132,211,136,225,137,148,150,63,100,197,105,136,129,163,149,164,149,19,66,73,149,136,151,208,151,102,115,253,138,53,143,188,154,175,155,218,151,183,151,20,154,1,70,85,143,60,0,42,0,255,84,56,130,60,0,42,0,42,78,4,84,124,134,11,80,76,120,236,148,240,85,135,123,60,0,42,0,65,95,202,106,60,0,42,0,133,79,229,139,147,87,223,89,208,92,194,144,84,150,80,102,68,131,69,141,97,117,116,121,111,125,114,138,101,140,197,140,60,0,42,0,203,95,57,101,96,125,60,0,42,0,16,78,98,78,3,83,4,83,35,150,90,103,153,148,214,118,97,100,137,110,35,146,36,98,130,105,98,132,204,140,145,150,17,111,203,132,98,53,233,105,234,105,194,116,60,0,42,0,217,126,102,125,60,0,42,0,139,118,148,127,153,127,216,154,144,118,90,216,14,221,217,154,239,129,220,110,212,105,126,119,143,129,249,105,112,106,217,123,213,124,59,153,220,106,223,151,206,157,27,159,241,157,60,0,42,0,48,89,114,103,210,131,30,100,31,127,160,102,192,105,193,105,70,61,62,122,63,122,80,149,30,126,186,106,193,133,243,133,60,0,42,0,63,84,74,84,194,82,221,83,240,139,220,144,110,121,112,121,6,149,112,113,118,123,165,138,158,121,239,146,60,0,42,0,254,82,93,79,159,108,169,148,167,136,17,127,14,146,157,110,100,146,241,125,221,123,32,137,178,151,221,151,60,0,42,0,163,92,215,114,182,130,184,103,189,115,7,128,223,130,49,123,8,128,9,128,188,134,127,140,60,0,42,0,120,87,132,103,223,139,45,141,162,87,228,89,147,81,41,131,31,89,32,89,61,138,190,90,64,95,6,100,108,138,202,150,203,105,121,113,207,137,88,144,128,100,175,137,252,140,60,0,42,0,24,117,211,95,60,101,70,103,165,61,149,115,157,128,137,130,192,143,105,87,212,108,248,119,121,78,209,103,255,122,247,130,179,117,80,145,126,78,147,124,129,78,242,81,50,92,52,92,120,123,39,111,241,156,54,92,55,92,80,155,60,0,42,0,224,78,94,98,175,118,198,121,102,136,118,141,127,104,52,123,98,101,8,122,31,97,149,141,137,111,192,100,68,106,51,124,20,156,225,156,100,156,60,0,42,0,114,94,240,101,117,108,240,118,192,126,29,80,206,81,230,109,58,125,76,138,121,94,173,154,166,105,138,106,17,141,99,141,27,141,104,112,60,0,42,0,57,104,223,141,60,0,42,0,207,84,60,0,42,0,110,130,60,0,42,0,152,78,153,78,27,131,239,99,60,0,42,0,136,81,83,127,174,81,26,82,96,103,178,126,155,128,161,92,78,59,104,114,152,117,252,119,56,127,162,148,91,82,97,127,8,88,134,99,237,145,225,104,133,114,61,88,177,125,65,127,252,146,160,147,60,0,42,0,151,92,88,63,23,93,47,110,60,0,42,0,53,113,123,123,211,105,5,98,6,98,60,0,42,0,47,82,154,94,74,117,109,109,116,62,21,128,4,100,63,113,90,125,238,131,83,141,82,158,234,125,6,126,174,127,225,140,185,127,138,157,60,0,42,0,253,84,194,87,250,92,45,99,224,126,63,128,224,144,76,216,179,221,151,104,132,131,152,63,134,125,4,67,160,156,190,154,193,155,60,0,42,0,244,102,41,88,133,102,77,76,109,76,60,0,42,0,182,99,41,105,60,0,42,0,48,79,113,84,149,84,209,89,100,91,189,108,210,108,231,103,253,130,113,143,2,85,91,127,42,158,31,123,196,134,199,131,240,131,218,137,241,142,242,142,156,143,100,145,50,146,141,123,155,123,244,90,109,106,59,68,149,155,35,157,60,0,42,0,187,157,60,0,42,0,3,89,228,83,98,98,105,108,194,139,55,140,161,128,111,114,227,46,3,85,38,64,95,127,150,127,180,148,168,154,82,85,200,109,53,129,202,134,204,134,65,138,68,158,51,92,50,97,194,107,55,146,137,153,19,159,20,159,15,86,150,105,190,105,183,118,199,132,64,122,88,158,211,124,14,126,242,111,188,118,204,129,163,133,66,143,20,112,236,118,189,119,54,153,156,77,49,136,60,0,42,0,250,86,69,101,197,81,126,152,12,88,19,93,46,93,143,104,127,114,221,104,199,150,252,117,123,121,18,122,34,149,241,80,46,147,180,156,221,155,103,152,60,0,42,0,224,92,39,144,166,80,208,123,60,0,42,0,220,116,46,82,205,128,29,104,67,216,111,221,57,158,82,128,183,68,68,107,113,113,143,141,128,82,250,125,189,146,179,152,59,142,48,157,39,154,60,0,42,0,231,83,142,81,80,82,110,82,225,91,17,66,60,0,42,0,102,83,108,87,214,139,2,99,105,85,155,99,99,127,83,125,107,127,127,138,2,137,60,0,42,0,170,152,60,0,42,0,89,84,188,84,218,87,111,85,30,93,237,144,29,88,27,146,5,149,19,86,142,88,17,118,72,135,73,95,251,53,196,111,200,135,75,147,77,95,60,0,42,0,239,86,246,86,251,86,253,86,0,87,11,87,60,94,88,129,87,94,86,97,13,111,93,128,149,129,46,133,98,134,152,153,95,216,18,220,144,65,60,0,42,0,156,103,200,96,201,109,19,115,131,153,1,105,211,131,191,124,182,125,62,135,249,136,232,105,32,143,1,147,28,153,57,148,60,0,42,0,199,143,78,144,60,0,42,0,86,78,180,99,81,100,60,0,42,0,208,98,180,103,250,103,92,216,133,222,137,123,60,0,42,0,44,89,207,83,42,96,212,57,96,96,60,0,42,0,82,95,45,87,171,89,159,159,196,137,136,118,189,144,250,149,48,94,234,115,255,128,37,131,128,78,69,120,69,65,144,122,143,137,128,80,175,90,29,105,191,136,198,94,204,144,226,90,107,100,112,116,168,149,145,156,0,91,251,105,252,105,157,116,173,129,157,135,156,159,173,155,194,93,120,107,54,155,204,116,41,154,57,155,247,106,60,0,42,0,132,91,63,108,57,103,104,143,139,94,121,79,38,83,225,139,67,216,83,220,157,87,253,89,81,96,49,101,120,118,204,142,82,150,170,94,60,155,45,83,106,121,119,102,64,110,111,67,235,134,51,53,228,137,109,138,172,83,51,58,37,73,225,135,161,119,11,124,60,0,42,0,48,101,61,82,63,82,11,102,148,112,220,103,53,141,136,58,66,104,103,104,34,105,36,115,64,123,180,140,234,141,49,83,213,132,138,82,140,82,161,93,140,100,246,105,16,66,52,68,156,106,182,119,2,124,195,106,80,118,172,121,88,137,220,156,188,151,86,156,101,156,60,0,42,0,115,81,194,137,152,91,160,81,140,137,12,80,67,216,40,221,250,104,164,122,132,132,162,149,29,118,79,118,179,137,215,149,207,156,220,149,37,156,94,156,192,137,60,0,42,0,158,131,134,153,47,116,239,117,102,123,161,123,40,143,24,130,39,147,40,153,228,156,60,0,42,0,204,107,49,78,47,141,244,108,186,96,239,96,188,99,171,109,171,140,185,96,38,61,161,59,124,121,99,97,92,100,69,111,12,106,102,144,229,118,70,127,91,70,218,150,198,147,76,112,31,114,216,116,115,158,212,119,54,121,80,127,117,148,121,156,27,158,60,0,42,0,40,78,64,216,204,220,110,136,195,96,242,126,158,136,172,136,138,143,218,110,254,110,196,125,216,132,217,120,9,133,37,143,167,156,85,216,102,221,140,155,192,155,60,0,42,0,205,104,84,119,101,54,116,119,173,116,52,139,60,0,42,0,73,81,110,112,138,79,151,112,154,112,155,112,163,84,153,87,239,89,56,109,68,104,225,112,241,128,42,131,4,143,217,80,167,146,198,158,102,216,201,221,60,0,42,0,127,94,131,94,183,114,227,94,233,129,119,115,104,216,245,221,60,0,42,0,199,79,214,115,27,144,230,129,151,100,101,216,72,220,60,0,42,0,31,107,60,0,42,0,229,93,19,95,108,81,183,83,159,82,59,101,91,103,155,79,156,115,252,124,177,128,171,91,174,91,109,96,163,134,172,142,154,159,17,83,104,88,74,94,41,97,229,137,149,113,179,142,189,120,248,154,205,76,245,137,143,159,148,159,60,0,42,0,254,94,233,93,94,108,241,98,236,57,242,98,95,59,49,104,217,115,38,63,1,143,219,146,143,151,75,76,60,0,42,0,113,81,33,141,190,127,29,85,162,140,187,131,54,53,60,0,42,0,80,97,60,0,39,0,208,253,39,0,14,49,60,0,42,0,148,84,150,84,128,85,73,136,214,100,60,0,42,0,97,83,103,79,233,128,114,146,60,0,42,0,176,87,195,136,60,0,42,0,60,83,47,62,72,216,8,222,239,103,65,114,194,115,209,121,226,128,219,130,114,143,180,117,34,120,183,141,245,104,251,142,143,152,209,85,21,100,144,114,30,122,160,122,42,132,51,146,188,105,38,68,151,152,22,106,140,119,213,120,0,67,76,135,18,147,150,133,152,145,70,152,193,154,26,121,60,0,42,0,243,88,226,99,188,107,215,127,60,0,42,0,239,83,119,87,185,55,162,92,188,58,163,112,7,110,81,93,100,101,52,110,177,93,13,121,60,0,42,0,75,81,59,82,75,82,192,82,202,82,162,91,106,96,67,216,237,220,20,90,5,92,254,139,67,216,178,221,1,88,42,108,146,154,2,127,25,97,152,110,30,149,166,120,217,125,80,130,178,138,10,121,13,154,104,216,237,220,60,0,42,0,89,93,60,0,42,0,0,95,82,89,233,99,14,149,139,149,36,73,38,148,60,0,42,0,239,81,64,82,178,87,122,96,255,149,224,148,241,81,116,82,104,97,79,88,102,93,55,97,119,105,136,132,6,143,5,86,159,102,52,149,87,64,71,147,167,147,211,149,189,152,60,0,42,0,254,95,140,112,143,112,44,107,215,112,211,82,18,97,62,97,142,147,60,0,42,0,59,92,219,154,60,0,42,0,2,78,55,101,3,128,247,98,24,109,50,104,228,112,1,122,147,156,250,113,60,0,42,0,208,148,146,114,172,146,96,151,179,155,204,155,60,0,42,0,160,98,90,216,5,223,164,130,13,119,126,82,68,95,115,100,152,119,113,64,60,0,42,0,227,83,81,216,24,222,182,82,60,0,42,0,233,83,99,98,66,101,166,81,188,91,199,91,47,60,230,145,155,122,88,123,241,110,137,119,50,133,59,133,6,124,199,157,60,0,42,0,10,82,30,104,216,82,155,159,42,88,65,93,33,98,149,159,60,0,42,0,154,81,78,87,131,79,13,120,88,80,243,87,194,96,176,131,63,107,106,88,65,107,219,105,33,143,187,106,81,152,247,122,87,143,60,0,42,0,11,119,78,136,1,93,136,88,225,120,176,119,222,149,217,119,60,0,42,0,142,128,175,128,187,128,166,87,115,96,67,85,100,140,136,159,190,88,57,147,199,97,102,159,60,0,42,0,175,99,201,136,3,137,60,0,42,0,252,95,246,149,10,120,135,124,183,94,69,216,19,220,221,90,123,93,119,97,46,111,250,105,69,122,178,65,224,124,191,142,238,147,71,156,60,0,42,0,91,98,67,100,60,0,42,0,73,72,60,0,42,0,162,78,9,79,31,83,229,86,151,98,186,114,159,144,149,112,170,148,39,146,140,149,60,0,42,0,165,82,45,84,81,87,148,89,44,150,51,99,65,120,124,114,92,120,255,148,123,120,124,100,153,138,181,146,216,64,94,147,215,147,60,0,42,0,93,98,51,82,251,119,175,103,208,128,192,144,237,84,77,104,0,88,43,93,196,53,16,87,205,141,159,122,183,154,90,216,70,220,172,155,60,0,42,0,220,114,230,130,60,0,42,0,56,56,147,94,200,79,212,126,171,94,217,121,182,141,5,113,190,85,93,125,180,136,228,136,20,118,119,145,228,94,50,137,179,86,60,0,42,0,56,89,241,89,135,138,60,0,42,0,137,79,181,84,174,87,153,146,60,0,42,0,4,52,14,99,239,128,232,141,187,154,60,0,42,0,63,130,60,0,42,0,105,98,225,98,236,98,4,99,112,104,72,123,222,134,20,150,63,132,64,132,211,94,34,152,250,154,246,111,202,149,159,151,214,97,244,100,41,151,185,151,32,155,60,0,42,0,213,151,60,0,42,0,223,57,175,132,211,100,60,0,42,0,220,93,247,81,87,87,235,95,169,79,217,84,239,114,208,144,13,129,74,88,110,60,119,123,153,156,8,81,164,88,114,86,229,94,106,115,54,145,190,129,221,101,233,124,96,156,60,0,42,0,38,87,60,0,42,0,143,78,50,82,191,92,157,96,212,118,165,122,103,128,186,122,103,134,218,149,93,152,203,93,44,134,60,0,42,0,78,89,70,102,4,152,151,153,185,85,198,99,175,69,53,144,8,145,153,154,35,98,140,102,79,105,81,105,117,132,151,150,125,119,65,155,112,135,6,73,47,152,122,54,104,147,119,147,198,106,200,133,36,154,20,89,55,134,65,134,217,93,104,216,180,221,170,114,168,142,60,0,42,0,67,113,236,141,13,152,94,142,60,0,42,0,47,92,46,83,51,107,159,85,38,97,131,110,67,129,136,153,191,90,39,97,137,132,134,119,51,86,7,91,146,97,112,111,209,123,105,128,70,70,59,106,109,128,98,133,9,139,35,124,117,128,61,153,68,124,0,148,75,153,78,148,14,76,60,0,42,0,189,91,219,91,236,91,215,129,203,154,214,154,60,0,42,0,53,107,62,107,64,107,190,122,64,69,60,0,42,0,189,122,103,148,60,0,42,0,100,87,6,102,3,88,107,90,16,93,17,93,92,102,17,115,28,113,40,116,206,131,200,136,224,154,135,140,31,149,225,154,77,158,43,135,233,136,232,154,123,116,12,137,140,145,21,147,178,156,9,154,228,155,126,157,164,157,60,0,42,0,131,96,70,99,3,150,248,88,177,104,113,120,117,121,7,122,252,88,27,122,145,125,205,136,171,149,184,149,107,159,60,0,42,0,240,86,131,109,251,58,79,119,60,0,42,0,18,88,33,92,73,111,180,113,60,0,42,0,33,83,76,52,187,82,211,139,41,83,208,84,71,96,45,109,188,144,70,104,68,120,80,123,176,68,134,138,237,142,60,0,42,0,249,95,130,98,194,114,243,139,214,142,145,138,95,157,60,0,42,0,60,89,35,81,237,97,60,0,42,0,93,83,57,87,169,126,157,144,181,81,247,101,178,92,193,108,255,119,63,102,54,141,22,119,54,119,86,125,186,140,230,142,113,146,217,88,128,142,58,145,203,158,236,97,224,102,12,114,204,119,38,121,108,122,138,126,91,148,60,0,42,0,63,120,75,125,122,123,60,0,42,0,122,122,154,54,37,80,234,87,6,93,190,96,179,109,127,120,156,123,19,147,124,157,60,0,42,0,84,91,76,216,250,223,80,96,60,0,42,0,167,99,88,216,72,220,154,151,60,0,42,0,187,142,60,0,39,0,208,253,39,0,15,49,60,0,42,0,119,86,60,0,42,0,200,84,234,148,60,0,42,0,228,134,60,0,42,0,100,89,60,0,42,0,55,78,60,0,42,0,195,139,178,98,49,107,157,85,54,138,236,85,26,136,60,0,42,0,190,121,8,84,85,79,190,82,146,83,138,84,140,84,192,89,179,108,198,92,131,58,247,102,199,103,226,114,199,118,122,124,7,125,195,144,2,150,120,153,236,84,137,58,70,101,56,104,201,118,205,118,93,85,113,59,184,109,210,118,244,121,119,131,181,134,129,159,210,96,46,110,207,131,2,132,56,138,140,152,65,105,252,107,101,138,136,140,166,71,5,143,76,146,22,150,132,156,97,53,134,113,86,158,167,158,149,111,229,63,28,152,213,123,238,127,155,135,122,155,9,121,212,149,168,151,85,159,136,137,161,157,172,118,73,148,162,159,60,0,42,0,107,79,142,87,58,141,3,113,148,136,192,140,195,85,66,113,139,120,135,113,107,141,81,61,16,137,100,158,30,59,82,122,239,127,209,88,75,118,30,139,0,114,174,157,180,157,78,151,22,158,79,151,60,0,42,0,173,124,77,151,60,0,42,0,141,84,179,84,232,85,60,0,42,0,216,143,105,91,38,152,184,154,132,144,60,0,42,0,119,109,242,128,248,112,124,145,162,145,60,0,42,0,165,78,142,89,225,57,135,154,179,91,38,108,208,85,0,153,237,153,90,216,38,221,90,153,60,0,42,0,112,88,161,86,60,0,42,0,210,158,209,158,63,86,118,111,98,216,70,223,60,0,42,0,32,131,191,132,134,86,133,133,167,133,60,0,42,0,220,107,157,134,235,107,3,105,229,85,70,115,137,140,81,86,84,115,106,140,101,216,184,221,55,86,20,59,75,115,213,138,43,81,142,86,213,88,25,56,224,111,71,124,20,136,121,139,60,0,42,0,125,89,221,144,60,0,42,0,247,83,170,54,64,55,10,102,38,102,207,121,224,84,252,92,79,96,142,96,105,109,23,128,103,102,54,59,207,109,144,80,147,118,200,110,85,128,95,134,23,145,164,102,173,102,148,111,156,118,158,118,205,102,161,118,165,118,131,133,172,147,162,152,79,112,101,152,29,156,93,112,60,0,42,0,211,122,60,0,42,0,65,159,60,0,42,0,175,79,39,57,230,119,137,85,63,94,52,115,7,145,11,59,84,132,10,118,122,119,204,123,199,124,237,127,186,154,245,127,109,147,49,153,248,155,60,0,42,0,60,84,188,114,60,0,42,0,14,84,154,83,149,87,140,95,9,109,200,144,25,80,5,144,32,88,94,140,142,156,152,156,156,155,95,156,60,0,42,0,68,79,182,112,120,152,55,57,182,134,99,145,7,152,232,90,61,140,168,97,160,153,91,107,62,159,60,0,42,0,151,144,43,84,253,81,129,84,163,128,175,144,254,81,119,134,5,85,5,87,34,90,91,109,33,93,87,102,146,104,181,109,19,113,0,116,210,91,69,93,128,59,233,151,29,117,104,123,4,66,44,135,143,111,225,146,125,155,211,151,60,0,42,0,6,78,136,83,85,127,107,109,138,85,26,150,10,133,1,62,67,140,43,155,26,54,60,0,42,0,73,108,125,92,87,108,236,149,241,101,190,92,251,84,190,87,141,96,77,99,134,109,2,115,139,58,88,102,101,102,10,113,159,131,236,145,136,149,148,118,69,119,225,131,188,80,255,134,148,152,175,153,34,111,45,135,139,140,150,100,181,102,175,113,178,146,206,146,190,97,188,100,83,216,201,220,240,127,146,135,55,152,68,152,251,153,215,150,26,112,64,139,43,134,190,157,60,0,42,0,111,81,51,114,60,0,42,0,235,98,213,117,142,151,60,0,42,0,119,79,136,95,224,114,106,138,60,0,42,0,104,96,60,0,42,0,47,89,32,60,60,0,42,0,187,101,109,103,192,130,210,143,215,126,233,115,16,123,42,130,162,134,21,70,131,152,165,140,85,123,78,125,15,152,96,216,72,220,103,155,60,0,42,0,134,108,60,0,42,0,179,87,60,0,42,0,168,78,252,84,153,96,72,85,29,129,60,0,42,0,48,53,238,89,70,96,82,96,65,104,198,112,251,128,59,158,42,106,107,106,97,136,52,157,5,134,69,148,60,0,42,0,60,88,60,0,42,0,165,109,70,157,60,0,42,0,78,78,111,78,34,83,77,134,124,84,128,87,253,95,18,102,246,102,216,108,87,96,192,112,248,130,119,143,43,83,63,85,218,96,254,57,244,109,86,134,228,142,17,86,227,91,249,110,228,68,208,150,96,94,47,98,81,107,94,216,83,222,180,129,60,139,60,0,42,0,235,86,135,98,39,95,208,114,225,128,246,88,243,116,186,150,67,216,49,221,247,88,155,101,0,113,197,53,150,85,250,88,169,90,86,110,34,115,87,125,48,100,92,105,115,113,90,116,107,132,29,86,80,216,13,223,85,158,242,105,182,123,202,124,27,133,116,135,90,136,113,155,32,126,156,135,144,145,54,152,243,137,120,147,44,153,76,75,96,157,43,112,13,155,23,156,152,157,166,157,60,0,42,0,85,78,123,108,78,134,82,109,255,79,44,85,37,116,0,132,93,134,248,110,60,0,42,0,101,78,146,78,22,95,54,98,55,98,56,98,38,62,177,81,180,81,13,94,164,98,141,108,170,108,144,130,181,92,25,96,61,98,8,102,145,103,24,96,92,121,15,123,95,90,72,98,224,116,192,85,91,105,148,125,253,150,237,90,238,90,98,100,236,110,32,145,244,105,169,113,48,133,248,156,4,124,89,147,155,86,113,158,119,139,224,156,196,151,0,152,111,156,12,158,60,0,42,0,144,124,63,147,241,155,60,0,42,0,177,130,178,130,215,84,41,86,138,132,53,147,60,0,42,0,78,83,114,53,73,59,225,89,133,154,234,145,235,145,231,148,239,131,51,100,209,110,62,115,15,56,138,57,182,100,198,120,216,146,80,133,150,135,65,139,245,147,74,154,232,157,60,0,42,0,22,83,18,82,102,53,59,89,119,53,121,103,59,117,221,139,102,104,115,90,11,93,107,117,117,117,223,137,113,138,131,82,102,100,255,90,5,91,236,105,133,111,58,106,227,138,99,126,25,130,202,158,110,139,60,0,42,0,214,87,114,90,27,105,116,120,192,124,174,138,141,116,60,0,42,0,25,84,104,82,32,128,42,149,144,82,67,147,132,86,65,140,9,101,30,154,60,0,42,0,120,79,59,109,238,121,243,121,60,0,42,0,107,112,25,79,169,144,172,148,37,146,37,89,55,111,60,0,42,0,142,108,22,98,39,141,159,84,9,120,0,65,240,79,71,99,19,119,132,149,67,216,126,221,157,99,183,131,168,140,209,96,113,110,120,121,228,101,71,105,47,58,141,121,166,132,242,53,111,89,13,151,233,111,114,115,11,139,180,106,108,149,175,86,22,112,198,119,107,122,91,76,228,102,47,128,219,129,103,130,255,133,22,136,191,86,104,118,208,119,74,148,67,151,60,0,42,0,0,96,138,95,238,109,208,105,29,142,208,97,34,137,49,137,51,55,34,56,247,97,36,112,240,106,50,128,57,134,60,0,42,0,79,87,182,84,217,138,202,88,222,88,62,134,60,0,42,0,112,112,209,57,217,139,180,84,98,96,251,98,37,99,3,109,122,134,86,102,227,112,242,115,134,136,87,140,78,90,69,86,136,90,238,99,199,61,218,127,137,143,137,102,78,105,71,113,124,138,147,150,81,94,115,119,136,121,157,100,85,86,236,127,24,137,29,143,190,158,189,95,8,112,179,150,51,134,52,156,60,0,42,0,216,86,222,86,236,86,106,79,251,94,91,96,4,109,253,94,224,112,52,131,152,134,244,143,208,117,37,144,212,134,213,134,22,135,176,155,60,0,42,0,148,96,192,107,193,107,89,216,153,223,199,107,147,106,236,113,109,139,60,0,42,0,73,83,71,108,26,79,179,139,203,108,213,84,69,216,38,223,77,109,216,126,148,130,242,139,90,96,117,96,233,112,95,131,63,141,87,95,102,102,253,121,153,85,224,96,79,110,117,125,11,127,217,127,19,150,47,83,89,95,90,95,99,57,3,103,217,110,111,138,196,140,146,152,225,80,18,86,57,58,168,138,26,87,237,91,103,97,147,97,179,102,229,105,83,111,35,118,39,133,229,73,102,86,18,91,187,95,94,106,168,107,174,111,202,111,105,115,89,133,241,138,46,152,244,113,175,116,242,123,136,133,137,133,47,153,150,86,186,119,98,122,98,126,234,135,41,59,216,106,106,126,253,127,241,133,83,139,54,81,248,147,224,149,72,91,44,148,103,151,127,139,106,152,60,0,42,0,119,92,115,112,164,116,243,97,60,0,42,0,34,107,191,114,83,107,5,157,85,62,77,157,190,86,253,97,126,115,68,145,97,107,153,139,155,140,105,154,60,0,42,0,175,115,216,92,57,109,223,114,199,144,83,104,65,131,207,91,89,125,8,132,17,132,200,150,132,125,166,127,134,140,110,146,62,149,28,87,27,91,240,91,180,111,51,127,161,73,27,150,176,116,114,140,112,147,110,149,110,158,235,124,111,126,88,143,54,148,228,149,31,155,219,116,9,77,60,0,42,0,19,127,32,66,233,125,12,101,60,0,42,0,123,94,66,89,146,128,80,89,166,91,36,85,98,99,99,109,163,109,201,112,163,96,153,104,21,113,154,85,155,85,72,93,12,97,219,99,25,110,234,117,70,119,45,144,7,59,10,59,101,113,77,116,98,140,54,111,19,118,245,105,169,156,208,100,163,111,199,155,231,133,0,156,60,0,42,0,163,119,60,0,42,0,15,102,44,102,100,131,90,90,219,96,189,109,13,150,212,104,153,107,103,119,119,132,111,119,189,149,60,0,42,0,246,95,81,109,161,104,132,153,26,88,62,110,63,116,66,155,27,153,73,126,75,143,157,75,50,159,60,0,42,0,246,155,60,0,42,0,232,139,210,79,49,80,2,87,141,99,247,109,29,113,183,110,65,97,232,137,226,138,60,0,42,0,223,93,53,56,147,128,65,136,82,131,26,103,67,88,76,97,59,59,60,0,42,0,135,118,95,80,240,81,164,85,45,88,147,90,50,93,168,95,246,96,95,110,141,150,195,158,196,158,123,105,76,113,93,116,95,132,81,144,61,149,180,88,98,111,90,115,193,123,202,123,78,130,87,135,191,113,156,116,251,138,64,118,250,120,127,65,84,122,96,147,45,153,199,156,39,124,229,135,249,151,170,141,28,154,4,148,9,156,100,81,81,156,236,157,60,0,42,0,51,96,77,96,190,112,186,91,67,102,68,102,91,89,14,140,76,94,100,138,128,113,32,68,10,139,206,106,60,0,42,0,48,97,42,58,201,110,165,105,157,118,194,102,164,147,169,118,60,0,42,0,40,126,60,0,42,0,255,83,61,84,77,84,116,112,112,143,196,84,7,138,216,112,227,142,200,99,57,110,34,113,97,120,62,140,101,216,32,220,55,143,168,133,103,147,157,86,95,143,60,0,42,0,220,78,24,95,133,89,162,126,48,84,143,91,111,108,146,115,174,126,243,149,150,91,211,108,172,87,2,90,42,109,209,122,122,66,5,125,240,130,121,134,245,92,100,109,24,125,195,127,62,128,109,131,84,120,45,125,57,140,63,158,49,110,228,122,160,124,28,146,142,149,139,125,221,127,82,132,83,132,60,140,66,111,96,216,6,223,119,146,131,151,95,155,208,146,75,95,16,151,123,133,31,151,59,157,201,158,80,216,15,221,204,158,60,0,42,0,78,102,52,59,202,85,60,0,42,0,167,139,12,138,167,149,148,100,139,111,146,111,190,146,194,149,40,155,60,0,39,0,208,253,39,0,16,49,60,0,42,0,12,78,74,216,102,222,165,139,251,81,9,82,253,83,101,153,105,78,15,82,58,103,145,115,140,128,62,87,246,119,33,158,133,103,168,130,173,84,235,89,94,82,39,85,236,89,80,92,239,121,4,123,249,143,226,152,250,87,233,126,158,85,70,93,71,93,103,101,30,103,132,114,83,123,9,127,77,141,227,82,216,85,120,117,24,122,225,141,251,141,238,156,223,80,67,216,59,223,196,107,149,123,136,146,48,86,227,105,127,117,61,122,221,125,237,137,235,140,184,142,81,159,188,88,95,106,192,111,163,116,77,122,36,147,202,100,239,120,168,121,10,124,62,126,129,127,64,137,247,140,174,150,197,106,45,128,95,142,222,150,79,139,63,145,242,151,143,157,100,139,22,148,81,153,106,118,139,142,191,151,196,157,78,159,135,127,71,148,64,134,137,137,89,148,79,159,136,127,4,158,138,137,60,0,42,0,188,78,202,83,11,79,9,84,167,126,115,83,140,92,118,95,227,95,129,103,114,108,128,118,159,78,118,79,216,139,145,148,125,83,222,89,37,96,228,114,198,144,228,99,190,117,141,118,8,123,26,125,10,129,152,71,110,80,89,83,180,94,114,59,15,113,217,137,59,140,202,53,216,104,82,110,198,150,73,88,201,90,49,97,34,98,107,105,117,105,155,107,140,141,145,143,201,105,36,128,140,129,186,132,161,146,241,53,131,100,87,111,32,118,157,121,191,123,22,142,97,158,175,93,118,106,200,111,64,133,143,135,47,143,238,100,157,106,122,133,80,142,83,147,201,133,75,137,101,130,77,124,90,143,246,147,237,76,53,151,186,157,209,157,230,150,231,150,60,0,42,0,224,81,241,93,46,78,128,89,177,114,242,108,110,134,36,99,142,99,126,156,126,94,184,57,31,98,24,146,116,93,130,158,98,155,160,100,224,100,86,122,227,135,85,155,60,0,42,0,149,46,80,95,81,95,225,101,161,139,176,139,14,79,170,126,86,87,147,89,204,95,128,98,66,82,99,91,176,130,69,150,220,84,141,87,220,92,226,101,14,109,78,109,0,125,13,131,8,138,100,82,18,125,231,126,36,131,96,131,202,137,24,138,72,80,194,91,196,91,49,56,155,95,77,57,184,96,227,101,158,104,8,110,109,121,72,88,206,96,209,62,0,68,238,129,126,81,245,117,153,125,106,132,7,133,218,136,168,102,3,111,8,111,41,122,74,122,223,132,0,137,139,138,253,141,155,150,1,151,62,155,154,156,169,102,55,122,197,138,171,156,128,81,145,82,193,102,68,122,251,154,140,86,149,106,223,111,125,127,138,133,172,137,181,106,4,62,186,133,75,157,76,159,251,97,96,118,103,122,75,126,165,154,218,155,49,112,124,126,14,134,102,216,73,221,64,156,46,134,61,151,54,156,63,156,59,134,109,156,101,154,60,0,42,0,189,78,45,106,237,94,60,0,42,0,160,82,107,78,57,89,61,79,62,89,115,79,184,98,193,98,199,108,98,62,183,103,224,107,67,109,200,115,4,131,230,143,201,87,182,91,121,109,194,117,156,104,51,123,30,128,136,136,162,80,51,115,207,141,67,216,162,222,140,114,117,129,109,132,107,146,9,86,127,146,83,149,109,140,145,140,103,216,155,221,181,147,82,69,154,158,60,0,42,0,63,87,230,95,116,98,207,144,10,85,93,96,90,131,223,144,27,98,162,131,215,148,30,98,241,134,183,136,138,152,150,59,250,134,204,136,242,141,130,151,4,153,207,146,44,152,48,152,54,157,74,157,60,0,42,0,50,117,238,78,172,92,218,83,190,115,219,128,154,101,62,141,190,148,71,80,125,90,166,95,157,101,53,105,200,140,64,146,142,105,218,105,21,118,159,106,60,0,42,0,247,78,126,154,182,103,75,216,76,220,193,90,79,94,162,105,249,80,60,122,213,153,60,0,42,0,216,124,60,0,42,0,150,117,54,150,134,118,165,99,178,99,79,216,143,221,206,117,248,121,136,85,38,88,152,90,237,99,4,105,93,110,59,129,232,131,87,136,142,150,223,85,197,90,111,113,200,64,45,122,84,135,209,100,100,118,47,139,155,157,60,0,42,0,105,83,106,83,81,91,16,92,166,139,130,130,38,82,39,82,171,82,138,92,60,82,26,53,188,82,5,102,112,103,140,117,54,54,195,54,238,98,1,109,211,126,34,80,64,104,113,136,16,138,252,143,124,80,85,90,40,93,119,99,173,131,145,80,188,85,23,58,57,64,80,125,92,125,186,136,137,152,101,93,41,58,108,105,118,105,208,110,107,119,192,123,16,135,77,135,112,138,99,146,93,155,42,98,164,105,163,120,237,122,91,216,116,221,146,156,84,111,175,127,245,132,177,138,21,142,138,151,111,94,123,147,154,155,192,93,237,106,30,136,24,136,61,136,60,0,42,0,208,89,209,107,142,90,227,137,231,137,247,152,158,106,60,0,42,0,47,78,203,78,36,84,149,92,57,56,142,94,18,98,70,92,74,92,160,115,165,130,76,117,77,117,165,117,14,120,235,139,31,80,136,96,167,134,120,136,163,95,58,88,80,105,62,116,246,134,151,114,161,138,177,154,106,155,47,137,133,147,164,142,60,0,42,0,93,104,60,0,42,0,164,78,125,130,129,130,227,89,7,90,231,92,71,109,202,144,132,154,246,128,45,131,46,131,18,105,38,113,223,134,228,141,236,80,4,86,68,216,237,223,96,134,155,156,12,91,149,93,163,93,141,97,134,111,160,129,203,113,178,129,73,133,1,121,90,122,171,155,65,157,106,158,37,124,237,135,71,143,14,148,205,157,85,154,230,157,238,157,60,0,42,0,66,59,235,129,210,137,124,79,165,79,84,96,34,99,225,114,222,126,122,153,65,99,72,102,196,112,142,118,235,119,26,129,240,148,5,100,107,110,94,125,127,82,107,101,108,110,77,113,115,129,203,140,229,80,119,100,158,102,11,142,120,146,3,153,12,81,139,82,186,95,159,100,185,100,188,95,191,97,125,101,127,101,222,113,52,127,166,150,210,102,172,116,239,119,166,118,220,135,115,126,81,139,66,91,112,58,92,216,136,220,42,101,90,112,78,156,60,0,42,0,235,83,76,84,228,92,13,99,6,138,211,115,140,122,127,143,131,143,78,101,89,101,150,122,62,60,216,110,3,143,2,86,38,86,160,101,22,111,117,145,77,86,160,93,80,111,109,86,19,91,101,115,224,133,173,141,78,143,174,145,101,139,45,59,173,118,194,145,60,0,42,0,100,157,245,106,144,126,60,0,42,0,41,78,252,82,160,126,59,103,94,114,118,122,250,124,32,158,254,124,115,141,99,216,202,220,4,150,126,85,194,99,234,99,27,132,235,99,233,156,78,100,27,106,15,155,46,155,60,0,42,0,93,78,69,78,70,78,99,78,122,89,120,112,150,115,15,130,237,151,36,125,82,145,121,149,238,151,60,0,42,0,27,83,231,101,169,62,252,129,142,84,154,117,146,65,233,103,254,103,3,80,68,99,85,104,19,83,169,83,81,101,168,90,49,92,196,94,5,130,230,80,207,94,208,94,102,97,167,107,107,158,10,130,54,83,230,155,148,158,104,159,242,157,60,0,42,0,99,108,102,103,13,107,60,0,42,0,11,98,120,89,22,92,117,94,90,87,124,107,244,149,191,81,20,98,170,115,169,128,112,130,230,89,231,89,124,81,209,118,66,80,5,88,228,96,116,59,15,115,58,123,92,140,84,110,75,114,4,127,197,131,250,131,147,149,27,100,55,105,62,105,78,113,141,114,74,116,138,120,35,127,76,132,99,140,227,118,119,119,139,123,185,132,43,106,158,113,216,125,163,156,253,156,99,158,184,113,86,216,93,220,239,123,17,126,81,133,115,133,113,130,48,153,162,153,137,158,16,112,172,151,175,151,210,156,27,121,32,67,184,137,115,157,56,112,39,148,252,106,178,107,188,157,192,151,57,156,207,86,67,134,111,148,201,151,60,0,42,0,221,86,227,98,167,103,237,79,236,103,57,80,56,99,97,99,21,123,39,131,207,81,106,82,152,104,192,104,63,88,192,99,195,99,28,105,27,110,85,110,81,119,119,120,67,138,15,149,63,95,149,102,80,116,103,123,128,123,120,125,229,136,43,140,188,141,41,98,44,98,53,58,177,120,9,81,230,127,191,100,162,106,77,216,45,223,7,139,71,142,188,119,6,121,33,124,198,133,71,137,73,137,45,139,109,126,11,155,120,158,61,112,18,136,23,148,14,156,151,82,123,158,91,124,126,139,124,158,122,137,60,0,42,0,193,137,246,78,139,137,111,153,81,82,250,94,10,109,110,114,49,141,244,79,99,82,43,104,167,109,212,115,48,130,80,131,101,80,113,82,164,95,16,110,15,140,252,145,203,91,133,110,246,129,184,136,245,141,212,101,87,105,253,107,82,216,227,221,113,129,101,132,206,140,116,146,46,149,237,80,52,58,151,105,56,111,141,82,142,82,78,61,151,111,173,123,203,124,42,133,211,138,228,140,157,141,16,142,58,142,146,82,148,82,235,138,251,146,30,153,183,119,245,120,166,133,185,135,115,147,117,147,246,100,250,111,93,126,4,60,181,137,233,147,51,112,102,130,124,139,94,143,49,148,81,148,82,148,108,148,115,148,60,0,42,0,69,95,185,88,122,106,0,121,177,107,60,0,42,0,254,93,202,78,164,101,133,148,83,81,209,145,210,145,37,109,220,119,212,137,208,87,210,115,31,125,85,131,127,136,205,96,59,88,75,123,255,145,156,93,118,158,197,158,95,137,60,0,42,0,197,78,61,92,173,79,122,83,249,93,39,125,7,88,235,131,197,80,170,83,40,140,38,149,228,90,209,94,12,111,225,118,202,125,145,153,255,105,126,116,243,132,24,81,38,147,57,139,73,153,60,0,42,0,18,79,164,82,178,82,151,89,131,103,209,143,219,143,193,82,85,109,73,102,75,102,120,109,236,112,105,131,70,141,43,85,14,116,114,121,50,144,214,91,34,100,141,110,129,121,25,127,115,151,144,88,55,58,16,59,156,102,104,116,248,80,218,81,79,107,163,107,208,137,100,86,28,59,197,111,161,116,9,126,238,140,141,86,39,91,242,59,220,111,252,113,182,116,206,133,178,137,16,141,125,159,60,0,42,0,27,120,59,116,215,88,60,0,42,0,95,108,220,89,6,92,70,109,85,117,51,131,71,140,7,92,122,117,65,132,106,100,222,127,245,80,63,111,128,135,195,88,48,127,127,106,173,107,145,133,191,135,201,156,133,117,19,121,134,117,110,126,193,151,66,156,60,0,42,0,178,139,86,89,104,104,139,80,104,89,139,132,108,89,243,105,78,115,153,129,35,133,41,128,67,66,27,139,92,152,60,0,42,0,30,83,32,83,5,89,28,95,26,109,219,126,77,150,54,95,115,125,182,136,229,82,113,145,121,93,126,100,240,110,74,95,77,216,166,222,159,114,225,124,232,124,164,145,61,139,172,145,60,0,42,0,98,103,228,106,60,0,42,0,85,87,89,87,224,93,172,78,254,108,207,126,176,78,212,121,14,131,135,109,74,131,91,90,202,96,204,101,205,101,4,115,76,125,150,131,118,102,9,122,72,129,70,131,193,131,91,119,179,124,147,125,79,132,98,81,190,124,89,128,184,156,91,157,232,155,129,157,132,157,150,158,49,159,90,154,160,158,60,0,42,0,149,78,60,78,45,82,43,54,83,87,145,91,107,108,49,150,108,108,188,128,68,82,125,122,136,152,111,102,26,152,6,81,92,94,172,97,187,102,219,113,159,116,56,152,188,97,165,116,252,135,24,71,102,139,60,0,42,0,140,89,192,81,42,95,132,95,211,79,65,216,202,221,68,109,235,128,243,143,30,80,200,81,51,95,145,95,201,117,222,122,89,90,103,90,113,104,183,104,232,109,27,129,21,144,100,216,213,221,223,122,217,117,231,122,83,151,185,80,108,101,12,59,235,122,86,151,131,88,77,115,169,138,1,142,89,151,124,71,90,151,92,149,92,151,212,102,234,111,30,112,225,147,246,122,248,122,60,0,42,0,120,106,221,113,60,0,42,0,229,81,31,82,133,98,10,83,69,92,216,98,195,108,217,114,121,154,244,130,54,99,189,117,192,117,23,119,32,120,93,127,53,90,110,90,12,93,172,99,174,104,186,109,113,150,16,105,26,116,82,129,249,131,132,141,212,141,20,149,206,150,77,130,27,135,254,136,24,142,25,142,230,146,210,153,136,155,33,157,160,151,171,151,139,157,60,0,42,0,90,216,81,221,64,92,50,54,230,108,183,79,202,114,84,104,233,107,121,85,69,90,215,109,23,113,8,105,241,107,104,110,202,131,249,144,145,114,2,143,234,80,183,124,252,141,202,138,156,141,185,142,176,149,88,106,139,106,246,153,212,76,89,157,107,142,116,157,200,93,170,157,28,134,51,159,103,154,60,0,42,0,128,84,6,95,174,108,62,78,25,99,233,119,146,131,7,105,137,105,152,105,101,123,131,159,159,132,101,128,9,130,61,142,231,100,95,159,248,106,5,107,60,0,42,0,229,83,232,93,108,78,234,93,181,139,119,81,214,89,160,92,7,96,16,96,26,96,210,98,224,98,48,109,173,144,27,102,107,107,172,112,227,130,156,148,241,79,40,80,54,80,163,81,103,82,236,121,231,87,254,87,231,96,110,99,148,124,31,128,183,134,147,136,139,114,78,138,217,141,221,141,211,152,102,140,69,146,47,149,224,91,51,97,173,122,90,128,97,134,135,82,238,82,102,92,30,142,207,153,201,88,197,97,218,100,189,111,182,122,46,66,248,146,148,155,104,92,125,144,182,152,151,140,52,124,134,142,181,145,252,97,59,148,44,59,60,0,42,0,32,114,119,137,60,0,42,0,88,86,133,100,167,100,105,92,123,142,60,0,42,0,133,78,64,216,12,221,82,91,83,91,179,81,20,82,18,108,192,139,137,98,122,108,33,95,72,59,236,108,166,115,168,115,181,130,23,99,207,115,166,117,4,120,221,126,115,134,201,137,20,80,84,99,46,107,151,134,27,93,152,99,141,101,119,104,140,107,144,137,214,137,35,138,125,141,185,141,72,72,149,80,165,83,126,59,51,113,85,125,118,125,154,137,137,141,43,144,12,146,242,55,130,82,34,53,234,82,116,116,50,140,195,153,165,93,176,97,166,113,52,114,87,115,26,118,2,157,3,157,113,86,160,97,91,106,92,106,93,133,104,133,53,114,196,129,98,149,232,135,233,135,107,92,78,139,118,142,119,142,140,157,55,83,188,86,17,114,205,119,186,137,13,148,29,148,29,114,252,137,79,95,4,98,43,101,131,115,226,157,20,107,225,119,163,159,99,216,28,220,156,140,169,142,129,148,60,0,42,0,226,89,31,90,80,99,147,109,6,113,39,129,249,116,67,158,208,136,236,82,250,72,76,149,184,147,81,157,43,148,50,136,60,0,42,0,119,83,95,84,35,94,205,87,114,99,228,131,41,149,247,61,8,147,199,129,60,0,42,0,181,82,70,89,251,93,38,80,204,82,74,104,247,114,226,126,189,150,195,109,55,119,74,119,109,125,101,127,173,69,4,145,96,119,121,125,203,150,236,152,70,216,64,220,123,97,40,133,11,153,103,115,51,126,130,127,60,0,42,0,155,81,66,216,213,220,27,84,71,87,172,54,110,108,240,89,205,142,167,148,144,134,128,136,126,104,178,118,153,131,204,131,30,146,133,120,184,118,185,118,160,137,129,146,158,146,170,156,135,158,85,147,182,155,143,158,149,158,60,0,42,0,65,84,202,79,89,63,200,87,251,92,67,99,90,109,225,144,86,150,130,153,143,154,165,53,89,102,12,113,250,115,94,216,122,221,122,52,222,104,111,117,227,122,102,55,249,65,152,123,159,123,32,135,96,216,24,223,1,81,89,53,21,153,239,91,207,97,199,113,236,111,255,153,84,157,88,157,8,101,81,69,31,101,60,0,42,0,134,46,130,81,139,81,112,87,67,98,219,87,69,125,201,153,235,153,15,134,20,134,60,0,42,0,143,81,231,86,160,56,194,108,133,112,176,79,175,112,229,143,123,109,8,144,241,112,155,72,152,122,142,152,90,113,151,125,210,80,91,113,178,113,131,111,39,137,60,0,39,0,208,253,39,0,17,49,60,0,42,0,3,78,143,108,201,143,187,89,210,103,27,80,196,81,22,104,100,104,56,90,189,96,26,98,124,104,210,109,234,144,50,101,31,103,242,104,58,107,102,60,11,132,227,134,219,80,1,86,125,97,191,105,6,111,192,125,124,97,237,105,84,216,80,222,198,138,255,138,11,151,233,69,74,142,36,59,76,155,83,73,218,147,136,157,60,0,42,0,147,78,80,159,59,87,144,92,147,92,239,95,157,78,118,81,71,89,137,101,103,107,65,117,65,121,181,128,170,130,223,79,167,117,71,121,72,121,210,122,88,82,138,101,194,101,6,128,16,129,145,134,148,134,154,134,128,152,252,87,14,93,58,94,145,99,199,109,9,115,102,117,194,141,221,142,238,145,144,154,145,154,202,104,203,104,38,116,42,116,1,132,21,132,244,134,45,97,129,120,149,120,122,121,197,68,28,149,14,152,215,101,184,124,165,125,166,125,168,125,235,68,29,135,30,135,63,155,74,159,130,116,17,142,165,121,114,133,33,147,175,156,224,97,221,111,105,216,198,221,177,106,192,106,82,216,140,222,205,129,196,133,14,154,15,154,205,156,7,76,213,155,120,157,128,157,146,158,131,126,105,130,4,134,16,136,16,155,45,156,130,115,161,158,60,0,42,0,94,78,1,79,122,92,130,92,148,144,47,84,71,84,94,103,152,115,192,118,145,130,24,85,72,140,119,141,83,85,84,85,77,90,95,85,238,126,117,102,232,104,14,65,174,125,186,125,236,138,217,149,60,0,42,0,20,108,171,139,212,95,23,108,84,108,3,95,125,108,245,119,196,143,110,84,227,108,129,112,245,118,158,130,160,84,81,89,12,120,20,104,43,107,35,108,22,138,45,85,33,89,196,104,70,110,71,110,155,120,122,132,86,100,163,102,182,120,80,86,135,97,8,117,94,216,88,220,104,86,169,97,220,120,231,120,233,120,141,70,74,127,255,135,28,159,60,0,42,0,60,127,15,110,213,125,4,137,167,135,47,124,49,124,79,124,60,0,42,0,144,99,92,132,60,0,42,0,228,98,60,0,42,0,210,141,96,145,60,0,42,0,54,87,190,81,228,52,34,94,112,96,61,109,142,107,72,120,24,97,194,154,60,0,42,0,144,151,60,0,42,0,127,118,71,216,144,221,167,73,122,128,60,0,42,0,20,78,60,0,42,0,7,82,190,89,47,96,39,83,131,122,196,144,67,216,181,220,143,96,8,99,47,109,50,57,236,96,193,109,33,123,28,97,234,134,102,57,5,103,167,123,193,125,50,149,69,216,36,220,203,123,37,142,85,122,101,147,210,133,220,155,17,148,202,122,78,216,58,220,60,0,42,0,198,130,63,80,171,90,97,124,60,0,42,0,132,96,87,120,251,144,106,93,247,141,129,82,114,101,195,107,13,142,33,145,37,145,57,149,157,88,29,152,189,88,103,94,75,216,227,223,71,106,198,113,50,127,185,154,253,120,107,147,108,147,81,126,172,141,122,142,48,148,60,0,42,0,84,78,168,79,101,104,77,131,94,131,90,120,172,85,236,131,209,80,47,140,58,86,246,90,111,55,148,97,146,151,53,106,75,106,78,133,68,118,9,64,167,119,4,121,151,67,171,141,238,133,8,148,189,151,102,152,92,216,13,221,60,0,42,0,231,93,229,145,0,97,220,154,60,0,42,0,207,79,238,139,237,92,41,94,141,122,87,150,187,107,216,127,154,138,218,154,250,80,172,100,189,100,152,151,210,151,197,122,249,127,89,139,136,142,129,54,60,0,42,0,215,105,158,114,60,0,42,0,0,52,24,78,32,78,67,216,11,220,117,87,177,54,203,60,177,144,88,96,203,121,204,121,175,134,157,90,120,105,41,132,89,158,205,123,231,125,242,132,117,135,80,122,165,141,2,74,197,156,215,135,166,151,167,151,12,156,13,156,150,157,36,136,157,159,60,0,42,0,244,83,218,86,79,98,176,114,140,115,83,108,141,128,66,108,108,134,197,108,181,66,111,134,197,79,211,137,4,138,5,138,75,145,211,145,18,85,151,55,57,57,93,59,87,109,12,125,218,145,130,104,143,107,236,107,3,116,141,131,71,141,14,144,17,144,55,93,239,93,98,57,30,110,109,110,179,118,218,118,240,93,106,113,127,125,247,134,216,136,82,144,233,137,213,140,134,116,100,135,182,146,148,145,130,155,61,159,196,155,61,156,60,0,42,0,29,100,215,124,60,0,42,0,251,145,18,134,60,0,42,0,67,83,223,78,49,87,50,87,119,89,102,98,88,108,33,150,101,79,141,92,68,103,103,108,138,130,193,143,38,107,233,116,228,129,62,131,142,148,234,98,117,114,129,124,91,81,173,96,56,140,197,148,92,90,111,91,125,114,250,145,148,99,136,134,38,140,6,146,195,150,201,80,6,97,126,123,91,146,158,154,80,158,115,97,52,100,129,100,158,123,208,138,119,144,48,137,25,139,69,152,182,106,16,101,207,106,61,124,110,157,69,91,19,101,43,154,17,101,29,155,28,155,119,58,100,124,198,151,60,0,42,0,241,78,146,92,244,95,114,98,209,98,77,82,164,148,108,107,84,134,177,148,179,148,174,99,225,142,138,90,245,99,16,146,108,151,87,146,152,88,169,105,157,123,173,146,91,111,92,111,172,127,108,106,65,133,34,147,212,158,218,158,243,111,26,154,29,154,74,112,44,156,60,0,42,0,245,81,183,128,69,109,250,109,37,129,219,85,112,93,207,105,129,129,56,135,99,144,52,140,49,127,126,126,116,139,60,0,42,0,32,107,11,82,56,52,161,130,212,79,41,80,147,96,28,131,17,88,148,80,76,93,200,104,32,105,74,97,152,118,121,88,30,55,251,55,73,107,170,125,168,132,231,105,207,123,51,133,36,143,25,81,223,123,205,88,52,126,69,73,28,156,60,0,42,0,207,122,134,147,242,147,86,124,83,148,60,0,42,0,178,78,181,79,166,148,126,136,142,154,135,90,90,93,61,107,133,125,155,138,148,93,170,137,73,152,248,153,188,155,244,91,60,0,42,0,38,54,136,94,129,58,169,130,185,130,193,87,225,115,230,121,57,128,153,134,102,99,52,116,57,116,230,131,243,131,25,146,194,150,228,82,234,85,192,90,177,110,189,121,114,151,108,97,89,86,179,101,249,156,196,97,82,58,210,100,191,111,61,118,147,135,195,97,142,106,53,155,4,136,109,157,60,0,42,0,69,87,17,102,9,123,171,104,126,141,209,91,19,149,221,91,226,91,223,146,188,135,60,0,42,0,34,84,35,84,8,57,139,98,129,108,26,85,255,99,227,131,100,216,136,220,7,100,179,100,28,66,25,112,253,133,60,0,42,0,91,84,21,98,23,98,168,101,170,103,177,115,140,127,151,127,16,115,196,141,12,105,84,129,198,85,172,110,22,149,136,93,39,98,205,105,68,114,114,116,171,127,35,135,53,149,236,123,6,147,18,139,76,142,106,149,97,142,151,147,216,147,60,0,42,0,44,78,55,95,58,95,153,88,241,90,18,111,47,106,3,133,55,133,187,88,25,91,231,94,163,106,70,114,148,133,98,130,32,134,60,0,42,0,162,98,159,127,54,100,165,127,143,88,72,126,65,137,102,126,249,147,60,0,42,0,157,112,52,85,151,113,187,127,60,0,42,0,244,85,71,115,60,0,42,0,197,114,81,151,82,151,34,108,123,143,62,80,127,83,10,87,229,87,200,91,43,108,248,109,5,110,236,144,190,80,59,135,21,143,29,74,173,156,75,148,60,0,42,0,29,89,32,117,96,82,205,82,197,96,145,107,116,102,254,104,48,108,146,102,93,132,8,106,207,100,206,100,243,59,160,106,229,158,60,0,42,0,119,152,216,130,247,139,188,94,3,152,206,94,0,111,235,61,203,138,190,106,60,0,42,0,134,94,202,81,133,99,184,107,131,120,144,123,88,151,118,97,216,120,236,120,68,127,38,139,60,0,42,0,88,120,230,106,60,0,42,0,58,83,242,102,57,79,73,79,36,83,150,92,206,139,113,154,101,87,72,92,168,92,180,92,190,98,57,150,85,59,64,109,224,128,91,121,64,83,54,125,198,134,170,136,175,142,65,123,172,124,208,134,88,138,139,141,135,93,136,97,12,66,198,153,122,101,179,138,124,149,200,153,185,158,247,154,124,155,168,141,175,158,176,137,192,142,180,158,226,158,187,137,69,154,56,156,75,156,60,0,42,0,98,79,172,82,170,101,16,103,202,128,50,158,237,109,71,125,209,127,32,110,195,131,229,142,75,132,82,216,14,222,150,116,86,133,29,157,169,116,242,120,182,135,191,119,221,135,41,159,57,55,194,95,72,112,39,134,53,98,11,107,13,108,222,129,111,118,103,124,55,136,98,136,163,142,60,136,122,148,28,158,60,0,42,0,214,83,216,122,54,90,83,138,236,122,122,135,139,159,114,159,60,0,42,0,186,83,187,83,30,82,127,84,38,60,31,85,29,128,18,150,209,137,163,141,180,149,174,158,195,149,1,159,183,137,60,0,42,0,242,143,80,136,60,0,42,0,58,127,25,150,155,132,60,0,42,0,56,118,60,0,42,0,116,83,123,83,198,87,5,93,201,91,171,96,192,150,55,116,94,120,110,120,21,150,89,88,9,100,181,118,143,120,74,158,40,97,183,105,167,88,100,97,186,120,187,120,158,141,233,113,203,149,16,121,213,149,114,157,77,112,45,121,60,0,42,0,209,92,46,95,110,96,155,96,8,87,15,87,236,104,233,153,9,148,60,0,42,0,176,52,104,81,67,103,122,79,224,139,254,89,201,108,36,109,243,98,119,114,67,131,129,143,115,85,226,87,88,90,211,96,202,117,66,120,232,148,118,110,136,114,76,123,95,125,60,100,84,116,114,132,224,137,110,138,231,141,7,143,55,135,147,146,41,106,33,142,19,126,155,145,200,156,8,155,33,154,1,156,73,91,207,93,100,159,10,107,167,152,56,136,116,152,60,0,42,0,71,216,232,223,173,114,172,114,113,108,78,117,199,112,251,126,163,125,71,134,60,0,42,0,157,82,56,82,118,114,231,82,207,151,248,82,60,0,42,0,38,105,126,105,206,149,60,0,42,0,11,89,247,86,238,92,33,144,60,0,42,0,173,91,44,94,138,58,163,127,164,127,217,136,224,136,60,0,42,0,142,130,20,83,60,0,42,0,109,83,134,91,155,144,119,122,121,122,21,131,79,104,67,65,59,123,121,141,248,96,42,113,45,113,60,116,71,123,60,130,233,134,236,134,70,216,131,221,98,113,88,119,235,141,142,146,143,119,174,122,29,81,140,97,105,106,154,116,202,116,198,122,209,133,237,133,215,116,60,0,42,0,141,113,60,0,39,0,208,253,39,0,18,49,60,0,42,0,21,89,110,81,218,95,80,108,127,137,128,137,56,84,12,94,113,98,120,98,101,83,20,102,144,103,120,122,184,128,185,128,217,79,134,95,56,96,83,96,123,153,15,85,90,89,211,54,86,92,111,96,149,96,37,108,96,109,122,114,246,114,215,144,61,85,137,96,220,96,127,99,94,102,120,104,55,107,197,109,239,112,1,113,8,113,11,116,82,120,131,131,101,141,248,145,146,80,193,96,112,102,115,102,100,60,31,113,44,113,128,114,78,119,0,122,158,124,213,127,62,130,229,131,128,83,96,93,175,95,170,110,153,118,14,145,33,149,214,80,189,105,85,113,132,113,136,113,153,113,198,125,160,132,37,135,104,140,15,153,59,86,79,86,6,91,9,91,93,111,183,63,28,118,206,120,157,129,222,81,65,216,21,222,178,93,153,97,27,59,40,106,64,106,185,113,186,113,187,113,184,122,24,126,178,127,133,135,135,135,43,147,70,60,232,113,111,64,166,119,203,135,63,140,64,140,111,140,149,140,230,124,101,126,223,150,87,157,70,139,175,145,237,147,199,93,230,102,20,114,167,114,249,137,181,150,69,145,253,137,55,159,53,136,2,158,255,137,116,148,60,0,42,0,96,78,203,144,45,94,210,127,173,136,203,137,179,90,58,105,4,56,141,93,29,111,181,132,198,132,161,137,152,141,226,105,87,58,132,106,130,133,176,150,53,139,180,147,43,151,219,156,193,152,49,154,61,154,114,137,60,156,104,154,60,0,42,0,178,103,23,109,186,115,153,95,227,148,156,85,34,146,72,132,120,132,104,146,105,146,99,92,7,111,152,97,240,132,191,102,86,107,240,138,208,88,167,121,48,126,17,139,226,135,93,142,189,116,205,86,90,156,214,119,167,142,60,0,42,0,56,83,76,83,15,98,67,92,251,124,105,153,108,84,229,95,44,96,253,119,198,126,194,79,165,84,68,96,251,118,56,57,97,59,47,107,228,126,228,144,48,125,243,145,11,150,186,85,30,105,214,127,3,130,4,130,135,141,64,97,202,110,140,125,105,141,141,88,130,113,148,114,138,121,39,122,153,150,159,150,95,111,164,137,49,98,153,111,42,66,110,133,214,158,50,98,246,120,142,75,105,134,60,153,41,155,107,126,177,86,223,149,13,62,60,151,109,92,75,136,60,0,42,0,19,110,114,106,160,114,2,121,209,155,60,0,42,0,114,134,168,117,126,134,32,53,58,140,132,80,149,149,70,113,117,113,172,152,92,216,205,221,142,119,102,135,21,156,60,0,42,0,35,83,160,79,206,114,224,79,225,92,217,103,160,112,237,114,253,92,218,112,249,114,232,115,92,150,86,120,107,121,200,127,58,130,199,53,100,120,127,150,110,101,135,102,85,116,106,123,29,130,80,144,172,120,150,143,205,120,0,126,22,126,110,141,123,155,120,133,68,143,92,147,30,151,139,147,224,158,34,154,183,157,60,0,42,0,156,149,60,0,42,0,5,78,11,78,100,78,19,84,156,117,15,89,72,54,113,119,135,86,215,97,69,127,19,89,188,147,236,147,60,0,42,0,55,87,186,104,138,110,60,0,42,0,155,78,84,60,243,99,50,115,84,105,71,107,78,135,13,136,60,0,42,0,166,82,79,83,234,101,170,144,84,83,193,128,165,87,74,96,249,98,31,99,74,89,235,92,62,99,5,129,7,129,122,136,85,80,156,101,104,59,16,140,191,53,211,127,203,85,54,97,58,100,78,116,138,125,91,216,195,220,102,54,129,113,142,129,240,82,183,100,243,125,44,127,98,135,139,151,33,152,213,100,231,138,242,113,102,58,247,100,181,151,28,101,136,126,109,137,151,139,164,159,60,0,42,0,153,81,169,81,235,91,219,133,60,0,42,0,51,79,122,112,120,83,196,108,251,108,193,126,55,127,41,109,167,112,68,121,14,90,81,92,83,92,74,216,63,223,94,80,112,80,104,83,162,95,176,104,242,112,14,113,50,125,181,78,159,90,95,92,43,110,81,216,200,221,188,121,79,125,108,125,34,140,193,80,110,88,141,105,173,105,61,61,103,92,172,102,228,125,9,137,103,86,176,93,232,94,200,97,165,111,108,115,207,124,93,216,53,223,240,151,238,113,162,133,164,133,59,137,29,139,130,144,244,153,9,112,162,151,35,112,21,114,79,66,114,126,249,135,15,136,88,159,91,159,101,159,66,159,158,142,60,0,42,0,11,129,17,89,60,0,42,0,113,112,114,112,122,84,173,103,190,79,211,84,181,103,129,154,238,84,175,91,181,91,168,94,136,109,225,126,83,134,46,158,75,90,159,104,7,113,7,115,13,144,218,117,223,117,93,120,99,120,153,122,39,132,0,149,241,99,131,125,219,127,55,132,11,86,16,86,74,107,71,111,171,123,3,142,53,86,71,95,162,97,75,58,98,115,183,146,4,151,174,129,109,133,30,157,88,122,24,124,194,135,207,135,72,155,53,157,163,86,43,124,195,133,240,135,31,112,249,106,81,216,115,220,199,154,187,86,194,86,40,136,77,154,208,154,202,107,72,134,60,0,42,0,40,109,53,59,5,123,36,93,198,109,36,138,233,144,189,107,74,123,181,138,60,0,42,0,140,46,141,46,15,92,83,102,129,102,113,123,127,123,155,118,201,102,224,123,162,118,15,139,60,0,42,0,93,91,150,128,185,82,178,84,242,79,72,101,33,104,141,109,17,123,120,85,154,80,105,101,219,53,104,138,40,86,159,138,47,86,87,107,189,113,169,151,133,101,134,101,103,69,60,0,42,0,119,96,231,110,60,0,42,0,17,79,226,79,187,84,165,94,220,60,238,79,203,112,204,112,158,127,25,129,41,129,58,158,249,129,133,140,144,153,157,146,228,154,7,106,249,154,128,147,66,157,197,147,72,153,67,156,205,152,60,0,42,0,236,130,60,0,42,0,61,103,135,125,235,110,212,124,60,0,42,0,192,121,171,92,192,92,219,115,227,126,7,116,150,136,8,149,197,85,180,110,147,116,14,137,15,137,185,146,145,135,77,126,97,126,229,147,253,147,69,159,60,0,42,0,180,155,60,0,42,0,62,53,217,78,218,78,115,92,72,81,126,89,164,126,97,79,250,95,25,108,116,103,200,121,174,103,70,121,124,124,238,130,215,115,128,99,182,131,46,138,230,148,77,216,25,221,202,80,249,141,112,145,40,149,21,86,155,146,156,156,239,151,16,91,184,97,185,102,65,147,159,133,60,137,241,151,174,155,110,142,166,153,76,77,239,94,21,101,142,126,177,157,154,142,150,126,115,137,123,156,60,0,42,0,45,79,242,149,182,89,38,95,36,141,184,84,38,99,216,128,52,90,12,85,99,85,57,90,113,90,142,109,67,125,55,130,191,134,84,136,121,59,235,117,221,134,145,149,146,149,71,158,204,90,88,136,156,146,250,90,251,90,170,97,143,100,150,111,9,117,52,122,184,138,226,140,215,59,106,61,197,113,244,138,49,143,142,145,71,118,78,118,175,119,214,133,10,60,37,121,84,69,121,158,153,158,18,141,243,157,244,157,252,157,60,0,42,0,188,81,221,114,229,57,62,102,4,93,96,59,232,107,205,112,3,115,172,134,105,150,123,141,122,150,69,123,31,92,32,92,31,100,227,141,14,59,146,121,145,146,178,123,174,93,107,115,170,150,110,115,76,147,249,113,211,133,85,152,112,94,7,101,246,106,99,139,26,134,6,70,106,73,129,115,197,151,111,152,102,112,60,0,42,0,35,79,191,83,152,92,65,216,14,223,176,115,191,126,253,129,203,130,158,84,237,89,170,91,12,119,80,150,239,84,183,87,10,90,40,90,244,92,135,58,128,109,101,150,91,102,254,115,77,120,167,131,119,150,133,153,77,119,100,125,16,127,161,127,46,115,175,124,168,127,122,129,6,135,223,73,233,80,244,80,69,216,22,220,171,125,162,138,138,100,218,125,231,146,178,97,23,59,76,106,35,126,14,147,33,153,207,88,79,140,60,73,178,158,23,112,212,129,123,115,238,124,56,159,60,0,42,0,242,80,74,126,102,148,60,0,42,0,195,95,161,89,251,95,155,143,164,144,21,102,122,103,35,107,152,112,175,130,250,118,253,79,98,59,222,96,34,138,10,146,12,149,176,101,70,107,222,94,197,146,28,91,170,133,168,153,107,148,171,153,60,0,42,0,148,103,38,55,81,137,20,148,60,0,42,0,8,79,60,0,42,0,48,52,41,79,223,86,32,150,94,91,68,59,82,216,242,220,225,79,208,142,42,129,69,136,43,138,46,113,97,113,184,153,11,130,86,152,193,145,60,0,42,0,196,95,122,86,60,0,42,0,97,78,151,130,248,118,153,153,162,83,76,85,247,144,194,94,88,110,3,127,9,145,10,145,37,122,89,132,21,145,177,123,215,125,183,129,140,133,68,137,192,95,167,154,152,158,0,107,214,116,118,149,114,148,100,154,60,0,42,0,109,79,232,116,230,139,160,94,25,104,101,121,116,125,212,127,115,138,237,141,60,0,42,0,171,78,175,78,205,84,119,153,81,102,232,152,243,96,132,146,9,153,158,156,207,102,157,155,1,136,215,155,255,151,87,153,95,153,118,156,60,0,42,0,17,84,224,89,247,93,131,134,121,152,230,115,66,88,63,127,86,136,97,140,5,152,43,132,207,80,232,82,151,146,145,93,97,106,192,149,174,86,211,135,80,137,12,148,76,156,60,0,42,0,127,105,92,156,60,0,42,0,31,102,182,87,141,154,250,96,41,115,75,113,70,116,101,129,245,134,234,137,181,123,194,123,143,155,208,102,242,137,95,147,2,154,168,118,249,155,60,0,42,0,17,82,76,136,98,95,162,144,128,79,73,150,139,87,16,109,201,144,152,148,25,90,101,131,88,150,78,120,207,148,3,146,206,110,118,146,146,146,222,146,60,0,42,0,24,58,114,119,146,145,228,100,60,0,42,0,116,81,79,103,211,89,120,94,39,96,22,80,71,131,94,90,187,96,172,109,149,131,200,125,8,130,57,91,214,129,60,0,42,0,216,84,196,136,3,139,60,0,42,0,1,84,12,98,244,101,158,117,241,118,40,107,229,128,123,152,71,102,15,138,124,152,87,134,90,134,30,140,173,90,65,94,223,99,81,110,81,216,224,223,91,134,199,136,8,152,72,105,162,122,10,152,24,86,0,151,83,86,159,88,3,91,3,126,81,135,70,155,84,107,102,133,221,138,67,139,123,126,80,148,73,154,26,155,86,155,60,0,42,0,198,79,144,95,163,132,60,0,42,0,184,139,116,84,193,89,233,139,148,81,41,104,221,115,102,80,49,138,138,102,97,138,48,122,200,124,38,145,145,145,232,118,60,0,42,0,237,101,53,79,143,94,127,108,144,79,121,83,52,96,128,108,167,130,217,83,100,96,43,102,43,109,15,70,191,87,48,107,136,107,197,112,236,115,214,82,77,101,88,101,215,82,252,112,234,126,237,126,87,145,163,85,251,88,127,90,2,103,134,110,110,125,57,138,73,97,102,113,201,140,210,105,53,111,74,111,226,118,129,119,210,125,95,128,196,132,138,146,93,115,56,122,214,125,99,155,178,119,199,133,218,133,140,126,110,156,60,0,42,0,83,128,154,125,255,132,60,0,42,0,74,82,182,117,225,62,134,132,116,151,254,53,165,143,170,143,155,133,190,151,60,0,42,0,116,122,136,101,116,78,102,91,164,92,195,92,246,108,19,131,52,158,149,136,5,142,198,88,120,91,168,93,169,111,226,113,133,61,247,137,228,150,253,157,60,0,42,0,234,150,213,156,72,156,60,0,42,0,64,136,112,53,55,84,121,87,216,114,86,104,17,140,144,141,20,139,37,112,60,0,42,0,164,129,48,106,93,130,76,143,60,0,42,0,5,84,105,143,13,102,163,91,50,95,210,142,139,104,22,140,167,85,71,88,151,90,3,97,11,97,206,99,132,102,74,113,68,116,49,132,50,132,123,119,210,132,7,81,174,123,7,126,231,127,86,135,215,146,193,97,164,121,224,138,252,138,127,133,121,147,253,153,254,127,9,136,206,119,252,133,16,134,94,139,60,0,42,0,132,115,185,115,35,54,195,117,172,96,203,101,1,116,1,135,217,90,41,111,182,102,135,116,98,64,136,106,191,116,248,97,60,0,42,0,186,84,69,102,220,112,9,144,53,53,120,144,72,152,99,118,108,118,60,0,42,0,48,96,235,108,230,57,33,102,171,112,218,126,41,119,201,148,4,116,52,119,82,136,168,136,50,110,98,125,101,105,102,105,73,146,185,120,25,133,95,149,153,151,180,152,60,126,79,126,199,147,130,139,25,141,60,0,42,0,26,156,60,0,42,0,67,87,203,82,217,87,4,113,219,82,100,88,143,113,168,122,242,82,18,133,243,82,232,153,206,88,111,115,171,133,219,102,251,113,208,129,176,133,196,119,129,126,13,134,230,88,186,145,60,0,42,0,251,91,245,94,236,101,111,154,74,103,225,93,67,117,226,139,203,92,66,96,53,109,84,109,3,125,18,104,106,104,229,107,227,115,64,131,104,131,113,80,4,55,11,92,170,95,215,99,101,216,176,221,98,138,180,153,198,105,67,111,159,156,90,86,76,61,111,111,41,145,51,101,51,106,214,113,149,116,243,135,79,156,88,156,101,112,60,0,42,0,66,83,173,139,175,139,40,79,91,108,197,143,154,79,250,93,135,95,229,114,137,107,10,138,19,138,25,138,255,143,10,144,94,89,253,93,190,107,4,122,59,97,208,140,92,144,64,86,96,111,72,133,85,157,11,114,104,152,66,148,60,0,42,0,145,86,60,0,42,0,246,81,68,81,43,52,71,81,8,83,187,139,247,95,121,108,197,84,95,96,54,109,247,128,248,128,41,138,126,138,239,140,60,0,42,0,196,150,138,113,60,0,42,0,61,113,60,0,42,0,199,139,56,113,87,138,16,89,123,101,75,216,204,223,60,0,39,0,208,253,39,0,19,49,60,0,42,0,75,78,47,101,110,83,65,108,49,84,245,93,101,108,103,87,157,103,220,108,229,119,199,126,162,128,157,130,0,104,211,121,214,121,209,128,221,128,1,80,183,117,87,121,234,121,2,129,124,136,187,150,148,104,108,121,37,105,248,129,32,98,24,100,25,122,149,125,176,105,148,121,24,135,182,153,196,59,247,156,50,157,68,157,84,126,5,159,53,134,60,0,42,0,103,98,132,79,183,89,244,118,234,89,36,80,60,80,64,128,222,145,244,87,247,87,71,216,28,222,212,109,76,128,173,140,13,105,150,107,134,114,119,125,1,137,214,141,237,85,225,116,131,121,68,146,140,88,109,100,189,153,2,91,121,97,16,111,47,142,52,106,177,129,40,81,54,126,119,128,217,135,96,142,196,142,145,142,60,0,42,0,2,89,98,107,234,83,167,82,232,101,64,87,65,87,11,94,122,98,102,108,154,108,184,126,47,150,62,96,167,98,79,216,181,220,183,130,171,84,73,96,7,99,179,103,20,109,11,120,73,121,117,143,187,117,219,65,25,125,121,136,253,109,40,138,190,141,249,142,32,73,249,158,111,145,226,133,103,137,60,0,42,0,243,129,36,150,215,95,238,95,123,98,150,130,120,140,97,216,104,220,54,82,148,83,129,87,25,94,28,94,187,108,153,112,40,141,217,92,162,94,164,94,3,99,227,103,9,104,55,109,244,129,227,143,197,144,33,90,143,95,73,216,122,222,26,99,74,102,78,104,254,114,81,121,233,121,61,141,126,143,95,150,127,78,107,80,64,216,183,222,157,95,1,58,183,99,189,104,86,105,24,115,100,117,212,117,242,121,247,121,146,122,41,125,208,127,159,136,160,136,215,137,218,148,55,158,130,80,68,216,118,223,59,93,88,95,122,102,222,110,227,117,237,134,253,142,152,154,216,91,204,94,49,100,205,110,26,122,107,123,110,127,241,141,10,143,39,149,201,150,134,88,70,216,57,220,239,110,76,111,144,117,186,67,253,136,159,137,140,138,141,146,95,94,132,97,111,100,171,113,58,122,251,125,45,68,163,129,239,137,234,140,44,142,213,146,243,100,216,101,4,112,228,153,25,157,149,82,229,97,219,106,73,122,69,66,178,135,9,54,49,55,235,97,242,100,4,141,205,106,198,116,246,137,239,155,41,121,81,140,45,154,58,154,71,154,147,142,217,157,85,148,82,140,60,0,42,0,234,81,231,79,148,95,34,139,60,0,42,0,78,98,18,84,175,98,83,89,19,99,228,103,251,103,243,84,103,80,179,85,248,99,35,110,66,105,132,82,99,100,182,118,29,106,240,137,187,118,71,139,68,159,71,159,60,0,42,0,45,103,52,117,248,149,187,134,225,148,96,113,80,114,152,149,154,123,43,128,88,147,87,139,60,0,42,0,143,83,195,98,242,130,40,119,31,120,41,100,138,156,157,156,55,142,147,155,186,155,98,69,60,0,42,0,77,78,121,112,200,139,164,84,222,103,5,104,184,112,177,91,196,117,177,134,80,138,62,100,160,110,168,105,94,216,10,222,5,151,161,145,60,0,42,0,7,135,251,85,236,90,110,144,60,0,42,0,135,83,152,98,125,107,250,119,19,120,119,124,116,134,242,84,209,87,89,59,141,124,96,85,138,96,98,102,99,102,111,59,169,136,132,143,134,85,240,134,95,138,253,65,42,140,178,153,122,100,18,143,212,120,25,143,184,146,153,143,196,135,158,86,43,139,58,139,191,155,77,143,129,139,139,139,60,0,42,0,5,128,125,78,107,85,23,149,135,121,109,141,54,137,117,137,60,0,42,0,217,143,216,103,89,109,219,109,25,144,28,106,106,111,23,133,103,158,197,135,38,72,211,157,60,0,42,0,64,119,87,132,60,0,42,0,90,99,139,101,142,101,88,100,184,105,29,69,75,159,103,216,115,220,60,0,42,0,133,91,161,106,60,0,42,0,132,122,89,146,60,0,42,0,58,80,38,120,181,80,232,91,53,118,60,0,42,0,8,89,130,124,60,0,42,0,75,79,138,148,177,89,246,93,219,98,45,102,196,118,215,145,65,85,74,146,203,153,188,122,99,147,189,118,60,0,42,0,42,114,126,98,188,108,117,116,3,66,60,0,42,0,236,83,70,81,207,139,155,103,151,87,164,112,227,114,117,141,10,123,129,128,208,101,249,104,110,67,84,138,103,113,105,127,7,66,135,128,136,128,153,141,204,102,243,113,161,155,194,106,190,119,132,127,60,0,42,0,165,46,43,114,64,127,60,0,42,0,222,93,31,130,204,139,156,79,104,84,50,109,234,139,208,112,216,115,128,143,159,95,4,58,171,99,205,109,234,119,238,144,60,158,140,85,165,124,82,141,49,144,8,143,223,68,130,146,217,140,22,143,12,151,233,118,5,139,67,157,6,154,120,139,60,0,42,0,175,89,116,143,248,142,60,0,42,0,152,128,26,94,155,117,109,102,247,131,109,119,146,123,222,155,60,0,42,0,163,126,55,79,106,84,146,84,153,91,201,126,145,81,174,84,60,102,2,125,196,128,177,118,110,131,78,145,93,102,153,124,115,52,75,138,100,132,118,138,3,117,253,80,186,118,206,153,99,86,80,216,242,223,16,126,164,154,64,124,85,124,82,124,95,154,60,0,42,0,191,112,242,153,60,0,42,0,190,108,225,107,195,101,52,104,152,124,197,134,230,152,201,96,64,138,136,141,121,138,154,149,53,140,97,86,166,93,17,151,8,108,10,108,157,133,133,144,187,119,111,158,220,101,107,139,88,153,227,156,89,154,89,155,99,156,7,158,60,0,42,0,157,139,60,0,42,0,169,101,208,152,85,92,207,118,45,93,172,101,45,56,43,105,22,116,10,55,12,100,222,118,131,93,132,93,144,105,173,152,248,90,134,145,79,106,106,64,62,143,98,216,192,222,94,216,6,223,72,216,122,221,245,158,60,0,42,0,96,83,84,79,24,98,8,104,95,104,217,122,97,80,253,126,231,104,91,110,218,131,38,98,187,125,152,93,26,143,48,98,101,134,102,134,177,137,79,143,103,139,102,216,71,221,79,154,56,134,60,0,42,0,30,141,48,54,136,148,166,79,72,109,205,115,206,115,215,128,158,140,152,53,42,94,21,104,98,104,30,119,31,119,39,120,221,145,117,80,109,104,111,121,89,145,202,91,195,90,71,216,200,222,56,100,159,101,104,105,73,115,116,132,73,144,65,146,85,151,155,105,157,107,103,116,4,117,170,120,142,121,150,132,193,132,103,111,155,121,180,123,60,106,181,111,251,129,49,147,67,143,124,147,189,133,72,124,117,156,60,0,42,0,49,52,202,139,174,98,149,103,43,95,35,102,120,143,82,92,91,117,185,117,21,119,62,125,68,128,151,136,58,138,235,142,124,125,28,127,214,136,180,74,57,122,215,153,37,126,18,155,240,158,60,0,42,0,51,87,188,126,53,150,61,117,178,79,11,99,182,66,41,158,47,99,21,103,26,104,22,125,99,150,57,119,72,141,86,145,213,99,102,88,113,116,171,138,209,140,244,71,118,101,71,149,7,151,6,157,173,147,174,147,60,0,42,0,25,132,244,146,60,0,42,0,32,95,53,95,224,122,189,80,135,88,220,90,112,95,73,216,84,221,94,97,51,111,80,115,187,124,35,145,178,102,31,106,80,216,100,223,139,116,1,133,103,144,38,153,209,135,63,154,70,156,158,158,60,0,42,0,201,78,127,149,119,149,168,109,140,99,50,111,3,121,60,0,42,0,8,78,215,78,89,98,16,94,86,103,192,128,38,141,51,94,177,109,57,129,238,117,130,93,91,94,156,150,236,140,44,118,52,118,149,119,60,0,42,0,128,124,101,94,241,147,35,148,60,0,42,0,137,78,66,79,195,89,129,95,20,96,45,114,228,139,67,216,156,220,229,92,35,99,161,112,240,114,221,112,16,119,178,148,233,87,29,93,34,93,153,99,25,115,65,119,71,128,97,216,19,223,238,148,156,90,193,99,93,123,57,59,176,95,92,119,102,146,180,95,184,132,143,123,181,95,45,142,220,123,26,147,7,155,214,155,101,118,60,0,42,0,54,108,141,98,253,124,239,98,159,99,120,102,56,97,156,100,116,101,60,0,42,0,99,107,193,139,39,94,63,101,209,144,199,117,64,94,60,138,99,88,187,64,95,216,132,221,35,66,205,138,45,145,10,157,73,139,109,73,60,0,42,0,231,81,60,0,42,0,49,103,175,82,143,79,219,139,25,109,190,144,42,104,224,115,49,131,248,139,42,115,67,120,252,121,226,148,81,125,219,134,190,136,133,138,230,141,224,105,107,135,150,146,101,106,116,111,248,138,108,140,239,153,162,155,56,157,38,112,235,106,231,106,250,155,4,159,41,136,60,0,42,0,249,122,207,108,250,122,162,112,1,123,219,112,139,122,63,131,28,123,51,130,16,144,3,118,201,123,237,113,11,136,133,142,65,156,78,91,95,112,239,102,24,107,37,114,62,136,60,0,42,0,54,78,59,78,67,216,13,220,148,91,196,98,92,127,26,110,124,150,110,113,93,138,81,113,49,86,208,111,136,158,169,119,154,82,209,86,184,101,218,119,60,0,42,0,43,79,71,79,79,79,169,82,187,126,126,87,124,103,232,108,206,130,46,141,236,143,123,154,244,88,241,103,182,107,183,112,176,117,29,119,43,120,93,121,218,122,105,121,53,125,56,125,156,127,135,131,192,134,64,93,81,123,59,138,175,140,211,141,244,142,248,148,111,123,82,146,181,153,184,123,229,127,38,106,243,146,208,153,235,123,20,151,134,158,68,148,60,0,42,0,184,88,60,0,42,0,147,98,155,106,188,129,253,154,59,124,60,0,42,0,83,83,217,98,170,112,44,80,73,99,76,104,193,104,191,109,243,104,91,122,87,216,26,223,147,75,113,122,63,136,60,0,42,0,52,87,116,95,75,108,179,114,124,112,213,83,176,89,171,101,74,109,1,131,53,78,94,109,252,139,76,145,68,85,69,85,58,90,251,57,108,59,178,104,245,112,177,101,107,102,19,105,56,116,1,68,84,216,205,221,122,120,161,122,108,127,178,101,213,105,175,100,198,100,154,121,117,65,193,138,209,138,220,146,193,111,231,123,98,216,231,221,226,100,128,101,181,101,239,111,80,216,248,223,225,106,54,139,111,149,107,157,66,112,23,136,47,148,50,148,87,124,223,157,113,124,60,0,42,0,133,82,60,0,42,0,167,122,60,0,42,0,253,98,60,0,42,0,233,141,60,0,42,0,185,150,253,143,147,154,37,149,16,147,5,154,123,157,60,0,42,0,157,108,60,0,42,0,96,87,88,104,13,123,55,90,0,127,244,96,18,127,119,117,0,117,126,120,180,125,135,129,88,141,156,88,200,138,138,145,11,126,35,147,31,153,8,121,5,141,117,139,91,143,70,148,60,0,42,0,19,78,192,83,2,92,22,120,8,92,124,88,229,90,31,145,124,116,215,120,158,129,155,152,14,117,218,120,239,138,228,135,83,152,68,156,60,0,42,0,108,143,104,91,226,142,241,122,113,72,73,143,60,0,42,0,119,112,109,85,31,88,81,116,94,129,131,132,206,80,90,141,176,100,198,123,148,153,249,123,250,140,72,137,84,139,76,153,192,86,81,124,60,0,42,0,146,91,171,128,205,143,128,122,6,140,196,138,96,136,60,0,42,0,198,81,251,87,150,110,167,125,60,0,42,0,48,138,21,122,60,0,42,0,214,81,60,0,42,0,134,89,132,94,157,89,36,90,105,104,88,131,137,104,138,131,119,110,167,124,197,136,221,136,1,106,218,124,60,0,42,0,238,88,239,88,182,114,192,114,245,88,11,113,52,111,158,100,7,98,60,0,42,0,146,94,60,0,42,0,45,78,0,79,119,108,35,82,144,89,120,95,224,95,200,108,130,112,200,126,90,216,21,223,202,103,197,118,159,148,215,65,47,130,115,136,119,136,66,125,33,146,82,94,58,149,32,133,191,146,164,135,189,135,126,147,40,159,113,142,24,148,100,216,94,221,102,124,60,0,42,0,191,128,205,121,162,81,160,85,48,92,90,88,92,88,113,107,68,113,107,129,7,118,46,122,53,142,92,122,60,0,42,0,242,78,23,79,149,89,198,114,76,121,205,145,61,131,155,134,118,136,69,80,62,119,57,88,145,90,87,123,70,136,229,138,60,0,42,0,218,143,60,0,39,0,208,253,39,0,20,49,60,0,42,0,3,84,153,79,231,84,104,95,245,128,169,134,49,158,53,119,30,123,171,85,251,116,53,138,228,85,184,90,244,117,122,125,91,100,68,86,186,138,157,119,31,157,173,135,97,118,93,159,81,155,114,95,208,158,60,0,42,0,27,95,96,108,112,154,123,87,187,92,223,143,1,99,254,122,12,131,109,107,78,131,179,134,127,141,66,123,190,140,141,141,69,144,179,153,142,123,95,144,128,88,38,111,31,142,234,123,114,144,24,139,98,216,50,222,60,0,42,0,58,92,250,83,78,84,136,79,118,83,127,159,145,87,227,128,101,96,180,61,142,124,188,66,59,128,135,134,60,107,111,107,178,136,179,136,237,136,121,146,82,159,43,137,60,0,42,0,115,95,241,83,165,101,88,103,123,112,100,141,108,153,182,98,197,82,92,96,189,112,209,82,196,127,197,127,85,101,254,112,211,117,123,85,97,57,65,110,115,120,237,152,186,80,248,117,95,129,238,141,83,146,244,150,8,118,228,127,144,146,87,97,143,97,27,118,232,127,107,144,190,113,216,97,169,141,32,72,78,153,146,157,216,157,60,0,42,0,155,89,182,158,60,0,42,0,201,83,96,98,72,103,81,216,47,223,158,128,255,129,63,99,91,80,210,99,247,99,135,153,207,85,159,146,56,149,128,117,86,130,100,147,55,153,60,0,42,0,197,121,158,87,229,103,44,131,54,131,86,93,57,115,107,151,61,100,103,138,223,91,206,105,180,120,87,216,215,222,171,106,101,216,212,223,60,0,42,0,105,136,69,142,114,149,84,148,60,0,42,0,124,89,74,108,148,92,152,79,231,139,249,89,1,125,238,93,213,71,107,138,60,0,42,0,102,143,33,79,202,142,229,79,23,120,19,85,151,131,104,120,252,134,60,0,42,0,111,98,86,80,163,71,166,100,60,0,42,0,110,92,123,95,124,87,224,143,52,57,226,112,237,63,45,53,69,128,163,99,105,120,25,152,185,95,164,100,136,111,26,59,246,82,174,119,32,71,33,114,60,0,42,0,134,130,198,98,151,148,245,145,60,0,42,0,170,79,244,103,122,140,97,121,141,85,21,81,92,159,60,0,42,0,29,131,60,0,42,0,127,134,131,136,13,138,37,118,6,136,198,86,60,0,42,0,132,98,72,216,126,220,40,95,10,96,41,107,158,148,44,138,47,113,81,216,116,222,133,141,20,146,230,82,255,74,60,0,42,0,74,114,65,102,226,93,227,93,29,103,12,159,5,111,27,145,50,86,20,106,110,111,178,122,122,127,72,143,2,159,63,139,60,0,42,0,53,84,146,112,39,119,35,113,124,113,168,158,208,93,60,0,42,0,230,78,239,78,22,128,216,137,60,0,42,0,189,98,100,90,10,100,51,118,216,123,168,114,171,114,60,0,42,0,199,78,30,96,230,79,49,94,38,104,198,96,44,125,248,126,6,105,116,117,82,125,215,131,1,97,151,118,32,122,121,123,103,145,108,145,162,125,239,136,12,142,20,81,212,150,139,86,38,91,108,94,228,97,253,113,181,133,224,150,135,117,76,124,138,142,187,145,142,139,144,139,60,0,42,0,17,78,18,78,28,84,123,103,125,103,180,79,98,80,133,119,156,145,193,119,87,155,60,0,42,0,237,129,240,129,160,107,90,144,60,0,42,0,191,143,199,137,0,100,180,104,152,137,70,146,231,136,211,146,104,94,92,137,25,101,60,0,42,0,117,90,23,140,206,104,121,110,139,153,88,113,133,121,32,127,221,80,81,115,73,135,151,138,3,81,11,91,219,94,121,111,122,111,254,125,182,111,219,120,203,146,218,107,170,121,97,149,13,112,236,135,61,145,51,81,150,82,254,135,181,86,201,93,58,112,65,145,3,107,143,126,146,126,148,142,117,149,108,130,146,139,113,148,94,153,60,0,42,0,167,78,44,82,245,101,51,78,186,101,80,109,87,82,4,140,116,85,34,117,35,117,242,148,16,150,119,82,135,132,124,93,76,100,251,110,61,86,93,94,194,138,179,149,163,154,192,113,70,133,5,124,129,81,95,126,66,139,180,143,223,147,225,149,197,86,91,112,135,139,60,0,42,0,207,95,95,120,4,59,114,100,244,97,164,152,250,97,188,127,194,151,107,152,60,0,42,0,229,88,60,0,42,0,187,98,117,99,244,144,27,116,212,85,157,125,139,119,195,138,221,140,29,126,19,139,60,0,42,0,24,92,227,129,241,95,136,108,137,108,176,143,72,150,231,143,184,91,30,131,80,101,104,102,128,131,144,131,38,138,12,140,217,142,115,150,22,97,232,99,2,146,65,113,117,88,14,118,4,106,47,133,3,151,246,138,180,135,188,133,142,158,223,102,208,157,60,0,42,0,187,141,118,120,156,120,139,88,38,89,227,120,56,142,86,147,2,141,166,145,60,0,42,0,162,117,108,136,128,159,129,141,130,141,135,105,83,159,44,81,84,159,45,81,171,86,54,140,236,106,111,137,150,139,60,0,42,0,229,112,60,0,42,0,37,79,12,102,0,80,60,90,208,109,22,115,10,150,127,102,41,116,214,131,32,149,238,136,41,147,182,149,179,156,150,75,231,155,104,216,135,220,26,159,60,0,42,0,231,78,79,81,160,128,204,130,120,149,29,92,127,80,56,94,156,95,250,116,7,132,30,117,120,129,23,86,114,88,230,90,122,116,147,129,255,146,31,81,144,86,191,156,219,147,104,156,60,0,42,0,130,83,58,87,54,102,221,96,52,88,94,101,216,80,176,83,224,94,5,108,249,146,60,0,42,0,5,96,154,115,69,117,33,80,47,155,49,85,181,96,59,113,82,116,162,102,124,117,175,138,212,151,60,0,42,0,25,105,208,135,60,0,42,0,223,108,55,150,253,103,47,114,126,109,240,121,65,80,207,134,245,54,230,104,94,110,90,114,36,116,106,141,220,80,134,97,90,100,49,122,87,151,144,100,145,100,253,125,85,106,160,119,108,141,51,152,137,106,192,122,106,122,246,135,243,147,255,147,83,153,60,0,42,0,30,78,16,98,62,103,72,84,127,98,168,103,218,139,87,78,206,87,13,90,248,92,6,109,213,144,88,78,213,87,172,91,48,99,95,102,249,115,0,129,129,99,245,115,154,122,45,129,127,131,214,148,24,88,233,96,214,104,9,105,11,122,108,123,126,125,77,88,86,88,151,110,128,120,248,65,206,136,160,138,123,117,114,145,238,146,149,97,130,111,132,111,89,106,153,106,19,112,242,97,96,216,93,221,44,154,60,0,42,0,177,79,142,95,156,96,139,154,177,94,30,144,72,119,1,154,60,0,42,0,228,121,60,0,42,0,206,155,60,0,42,0,250,81,128,92,29,82,116,100,23,106,153,140,99,159,60,0,42,0,13,82,187,130,100,150,168,83,96,140,4,149,176,90,193,110,33,128,13,135,142,141,79,146,207,150,81,53,147,114,162,132,173,132,97,56,218,94,79,133,228,146,113,106,232,123,110,94,201,106,219,150,229,106,248,133,112,142,135,142,181,157,149,142,60,0,42,0,230,81,117,103,64,120,168,80,24,105,110,105,90,105,26,137,203,111,50,81,154,106,14,121,109,159,0,158,124,159,60,0,42,0,141,78,4,89,204,122,53,96,192,98,204,126,86,140,247,103,42,107,208,122,246,79,74,101,92,117,71,54,241,87,255,115,64,125,85,134,151,80,33,116,16,100,192,110,230,137,16,145,0,142,166,149,10,81,60,86,235,132,212,138,183,97,182,101,92,107,197,129,220,158,248,137,215,119,60,0,42,0,139,105,123,106,180,116,245,135,60,0,42,0,59,107,88,107,60,0,42,0,52,144,20,142,51,98,60,0,42,0,204,46,205,46,182,143,181,143,139,60,21,90,22,90,217,96,176,109,240,126,124,90,79,129,141,143,206,68,107,145,189,125,160,141,31,143,138,159,201,100,237,120,91,126,96,107,189,86,106,159,97,148,60,0,42,0,227,99,11,100,60,0,42,0,151,129,60,0,42,0,92,85,44,86,170,129,57,142,60,0,42,0,57,84,138,112,60,0,42,0,130,87,21,80,192,87,118,99,240,104,14,105,68,129,114,150,37,100,217,131,36,149,204,105,160,123,24,147,64,152,154,147,60,0,42,0,161,159,60,0,42,0,219,93,221,93,26,108,127,122,118,82,45,115,79,116,60,0,42,0,29,79,32,79,33,130,41,130,57,130,12,87,179,80,61,105,68,144,183,102,197,123,50,143,60,0,42,0,27,130,72,131,152,85,66,107,226,80,51,142,60,0,42,0,76,108,50,78,148,115,143,148,231,145,215,140,168,157,60,0,42,0,254,101,118,103,37,102,62,88,139,90,5,132,153,102,63,105,67,116,186,123,125,135,65,106,52,143,165,129,196,106,6,156,158,157,104,216,185,220,60,0,42,0,175,126,7,85,113,109,20,125,89,150,243,109,35,129,188,131,123,110,137,114,227,110,81,158,24,111,147,132,244,132,135,145,149,145,30,147,217,155,137,157,60,0,42,0,70,80,247,96,54,132,118,119,240,140,34,136,60,0,42,0,5,82,174,117,147,122,151,122,78,114,80,100,85,114,33,118,187,122,60,0,42,0,138,94,64,114,71,86,98,94,60,0,42,0,239,149,184,80,100,100,226,120,214,149,60,0,42,0,27,82,6,96,49,82,79,82,89,82,212,81,117,82,52,97,60,0,42,0,69,81,178,81,225,95,150,108,58,131,122,109,235,115,192,127,2,130,3,86,79,100,184,95,131,97,167,97,93,136,185,65,127,127,95,130,86,142,60,0,42,0,107,134,7,93,8,93,128,150,223,125,105,135,8,137,242,135,30,114,60,0,42,0,160,91,235,87,65,216,165,221,245,91,60,0,42,0,243,148,240,99,131,146,60,0,39,0,208,253,39,0,21,49,60,0,42,0,56,92,49,89,8,94,94,84,113,134,215,139,36,158,77,92,189,101,73,109,238,114,191,144,43,94,65,125,246,145,100,110,127,110,31,146,174,110,188,110,69,115,121,132,105,138,71,146,72,146,97,116,146,132,205,132,242,156,104,135,254,156,94,216,121,222,186,156,213,111,89,216,136,220,55,137,102,147,104,216,20,220,244,155,36,156,179,157,121,137,60,0,42,0,65,83,99,153,243,119,109,78,187,143,246,101,198,139,67,216,52,220,158,91,159,91,249,101,252,89,213,92,254,98,187,112,128,134,223,152,224,152,216,87,66,102,79,121,179,131,212,91,92,110,82,88,161,110,72,144,80,146,230,91,175,105,148,132,85,135,21,66,165,156,43,159,88,139,45,159,35,156,60,0,42,0,242,83,226,119,104,78,85,140,127,79,203,89,118,154,88,81,169,91,78,92,54,123,66,146,219,153,60,0,42,0,235,88,15,108,59,121,23,78,22,78,213,78,2,94,172,46,58,121,75,83,15,95,213,95,174,46,138,78,60,79,211,83,58,98,139,78,141,79,191,82,105,84,249,103,213,139,112,153,159,81,164,91,64,96,67,96,237,98,47,102,48,102,190,103,255,103,2,119,198,137,51,141,59,104,210,112,14,119,33,119,16,130,124,143,2,144,200,148,150,137,73,140,29,144,200,145,158,90,60,93,17,95,165,95,211,99,37,140,176,140,202,145,226,82,220,85,18,95,87,119,110,123,226,137,102,138,254,142,48,146,67,146,254,152,19,130,147,138,125,146,109,89,105,144,45,73,180,146,25,153,108,86,21,91,168,111,223,138,225,138,29,153,171,135,26,139,126,144,45,124,203,145,107,137,60,0,42,0,102,79,205,122,25,83,117,93,129,105,118,113,210,123,150,155,66,124,24,156,60,0,42,0,64,103,153,108,177,126,119,78,57,82,78,82,2,120,38,85,0,115,134,124,23,125,108,104,186,107,238,107,58,62,142,131,233,148,231,117,112,120,94,113,223,136,157,105,39,106,49,133,102,155,168,156,202,155,203,155,169,147,60,0,42,0,187,80,13,81,60,0,42,0,61,80,60,85,81,85,101,85,57,94,166,83,162,85,16,132,200,94,60,60,67,107,220,127,9,66,145,123,227,127,175,149,14,151,60,0,42,0,76,126,60,0,42,0,98,89,30,115,74,141,108,117,114,117,11,143,210,140,214,140,168,106,60,0,42,0,12,130,88,79,117,134,199,134,229,134,95,216,115,221,60,0,42,0,13,130,104,99,55,75,60,0,42,0,141,83,190,139,62,121,153,83,4,92,137,109,187,109,9,110,45,138,102,141,61,95,81,97,66,100,68,100,224,110,116,97,117,100,14,133,89,107,216,151,7,154,2,136,19,71,254,97,29,101,68,112,157,158,7,107,60,0,42,0,14,130,60,0,42,0,19,61,91,123,126,145,233,123,1,124,27,124,195,145,60,0,42,0,122,126,60,0,42,0,82,102,32,59,183,149,236,102,60,0,42,0,48,95,78,99,231,112,162,104,166,131,60,113,13,122,211,101,114,123,68,130,248,134,14,143,210,113,48,66,181,152,254,154,185,155,60,0,42,0,250,82,141,130,214,103,191,115,213,130,240,122,246,151,60,0,42,0,17,92,96,216,24,222,32,69,60,0,42,0,173,82,114,83,205,126,181,144,232,84,11,90,57,125,145,136,68,119,164,125,114,111,60,0,42,0,113,133,60,0,42,0,206,83,54,101,60,0,42,0,75,98,136,91,168,87,150,153,79,130,60,0,42,0,255,91,215,83,233,114,125,81,46,85,136,99,173,109,246,126,233,117,253,88,172,125,0,89,38,118,245,70,120,115,201,147,60,0,42,0,76,98,99,115,60,0,42,0,113,92,97,95,150,144,32,82,42,82,73,103,205,89,215,89,159,130,144,148,245,103,230,114,202,115,34,130,235,130,107,136,207,87,193,117,213,142,59,99,24,123,32,129,218,141,124,82,39,100,7,86,83,94,125,113,120,111,152,111,134,106,63,126,187,129,180,127,182,127,197,155,17,60,60,0,42,0,94,216,62,222,60,0,42,0,234,149,85,150,131,149,93,150,142,58,113,102,84,113,82,119,140,113,162,137,60,0,42,0,170,139,85,108,204,56,157,117,97,82,71,98,21,138,120,141,158,99,228,145,147,80,132,85,143,146,159,154,208,80,160,88,161,88,108,111,85,216,49,221,46,127,47,145,23,91,197,100,63,106,90,107,179,129,73,76,240,120,6,139,97,141,32,65,85,126,238,135,71,73,250,135,113,139,13,141,37,148,77,153,56,154,221,156,87,112,83,156,84,156,60,0,42,0,56,87,99,103,138,149,126,101,60,0,42,0,51,117,126,92,95,98,56,79,171,142,129,79,123,84,189,89,118,124,197,126,220,139,250,89,219,103,32,108,197,115,124,122,120,124,32,90,247,92,33,117,18,119,55,120,82,101,241,109,51,125,152,131,95,81,253,104,55,138,96,132,209,136,117,138,67,216,221,222,39,117,225,132,24,133,202,113,234,153,185,156,209,102,147,133,98,157,245,155,58,156,60,0,42,0,192,78,26,117,94,121,32,76,60,0,42,0,30,95,165,144,161,91,228,119,194,84,231,119,183,91,2,140,9,140,118,90,22,110,32,138,233,91,215,138,35,152,107,155,203,102,37,152,171,119,56,91,11,112,2,60,190,137,133,139,60,0,42,0,190,128,186,79,26,102,194,128,129,109,24,119,23,110,36,129,115,121,78,129,60,97,78,97,57,105,6,118,103,127,3,135,4,135,242,110,224,146,46,118,60,0,42,0,20,88,138,105,48,156,60,0,42,0,36,79,135,107,70,85,222,137,183,80,146,88,111,97,243,110,33,111,164,107,181,113,15,133,170,135,244,137,42,139,58,155,60,0,42,0,167,87,68,98,76,102,79,141,222,140,24,141,92,148,60,0,42,0,4,78,10,78,25,92,26,92,102,96,241,126,212,125,157,151,60,0,42,0,233,78,243,136,60,0,42,0,71,83,31,117,79,84,240,88,152,101,41,150,7,102,233,108,204,114,13,104,133,107,114,114,196,115,252,130,97,60,94,150,25,123,121,150,102,110,58,113,37,117,78,146,114,128,42,159,127,157,60,0,42,0,243,126,180,97,105,126,93,139,60,0,42,0,1,119,26,119,87,80,59,110,60,0,42,0,35,87,220,128,96,102,112,82,219,118,105,82,221,82,185,140,74,93,30,116,86,128,173,88,186,105,66,133,248,140,60,0,42,0,212,122,251,102,115,106,60,0,42,0,102,78,179,107,23,92,146,98,190,126,80,52,212,83,120,103,162,103,221,89,78,150,15,80,16,80,248,102,138,107,19,125,147,99,179,104,209,109,2,113,215,142,142,117,143,117,18,130,253,131,3,145,69,100,249,107,128,125,147,143,254,141,8,142,30,106,121,116,44,133,56,143,126,106,155,155,4,101,53,81,104,157,60,0,42,0,235,121,76,90,112,91,78,141,126,88,159,113,185,116,22,141,60,0,42,0,33,159,94,92,145,102,205,158,143,102,114,127,0,135,32,159,123,111,217,102,255,62,165,133,175,133,89,118,247,133,97,137,108,92,105,137,131,148,60,0,42,0,46,103,47,103,13,98,95,103,173,108,184,79,193,81,176,84,55,96,17,104,214,122,240,143,85,96,82,99,87,131,182,94,187,94,73,125,83,136,12,92,131,150,112,101,234,122,103,129,129,132,203,136,101,146,133,88,49,111,68,111,120,101,141,111,78,140,57,106,214,111,48,147,64,66,227,147,144,157,106,134,60,0,42,0,45,112,236,124,52,136,106,156,112,156,60,0,42,0,55,82,48,85,60,0,42,0,13,128,60,0,42,0,156,138,60,0,42,0,244,139,254,84,170,138,172,138,60,0,42,0,129,89,193,112,20,103,196,148,54,107,85,120,223,119,32,100,202,105,169,120,180,132,97,115,190,123,88,216,151,220,153,147,13,114,96,148,60,0,42,0,112,136,84,100,96,216,46,221,60,0,42,0,41,117,60,0,42,0,5,94,37,94,77,216,26,222,192,135,91,83,60,0,42,0,1,140,61,129,176,138,60,0,42,0,52,108,60,0,42,0,40,94,151,109,154,109,113,121,5,122,14,122,97,119,222,136,147,119,60,0,42,0,53,108,58,108,150,149,60,0,42,0,233,149,244,98,130,149,19,104,60,0,42,0,174,109,104,129,60,0,42,0,46,84,60,0,42,0,122,152,28,130,6,152,83,106,154,119,99,133,172,119,10,155,60,0,42,0,204,83,28,151,217,150,64,91,166,154,71,91,59,154,6,107,53,121,222,157,116,158,118,66,109,130,102,154,24,158,60,0,42,0,61,114,125,88,97,97,58,111,9,106,20,126,238,69,60,0,42,0,64,112,60,0,42,0,239,147,60,0,39,0,208,253,39,0,22,49,60,0,42,0,156,46,229,101,114,154,248,86,240,145,36,146,185,153,60,0,42,0,249,96,60,0,42,0,237,112,177,113,60,0,42,0,6,90,118,153,97,104,91,131,8,91,72,106,88,133,83,137,82,153,60,0,42,0,112,98,162,150,254,100,60,0,42,0,213,126,118,144,94,126,60,0,42,0,185,83,184,121,212,103,131,90,201,99,24,110,99,113,72,116,19,68,71,132,197,124,90,135,66,142,46,143,82,147,163,151,199,116,37,154,7,156,148,157,60,0,42,0,136,124,122,105,214,151,60,0,42,0,188,46,137,128,141,91,108,129,60,0,42,0,101,84,176,128,166,134,123,136,135,136,186,134,161,136,54,113,229,154,43,86,35,55,239,154,195,113,78,126,51,69,60,0,42,0,132,81,137,81,204,89,211,103,195,115,210,130,163,90,106,106,60,0,42,0,133,132,60,0,42,0,186,78,187,78,193,78,236,88,200,95,50,103,206,95,194,121,162,130,19,146,92,155,139,146,62,67,64,157,60,0,42,0,205,95,32,104,35,104,79,131,249,121,117,131,239,104,20,122,60,0,42,0,3,82,4,82,164,139,222,78,237,78,177,139,251,78,123,92,131,92,52,56,104,98,171,126,182,46,88,216,76,223,138,89,82,103,99,114,180,126,149,128,107,143,231,151,106,153,217,89,77,121,9,125,29,125,125,136,18,138,212,142,149,104,62,62,224,142,238,65,77,125,77,129,181,136,109,151,113,151,204,151,234,152,90,132,141,138,1,153,60,0,42,0,155,125,181,142,60,0,42,0,99,122,52,81,247,82,60,112,125,115,24,134,228,116,179,121,112,122,116,66,159,142,36,155,60,0,42,0,204,88,183,86,228,88,24,101,25,114,149,126,60,0,42,0,169,139,249,97,114,139,147,139,60,0,42,0,84,98,60,0,42,0,205,78,66,216,168,223,65,59,184,143,61,121,177,62,126,150,60,0,42,0,191,130,60,0,42,0,130,89,154,144,158,79,36,94,71,104,57,131,247,148,42,110,78,123,189,136,152,132,163,146,97,135,18,81,96,133,17,157,133,86,44,91,122,91,225,111,61,157,216,102,248,113,183,133,21,136,102,137,165,152,185,145,108,152,108,156,60,0,42,0,93,108,151,128,115,78,177,143,15,145,233,100,60,0,42,0,101,81,51,109,213,85,183,90,189,110,27,127,208,132,31,126,37,137,60,0,42,0,86,98,65,103,188,143,240,156,191,93,60,0,42,0,60,99,60,0,42,0,124,99,60,0,42,0,210,83,229,130,49,95,76,80,3,110,43,113,0,145,73,105,187,132,172,123,219,123,7,114,25,156,47,156,184,157,60,0,42,0,118,93,60,0,42,0,81,90,117,104,36,117,204,125,100,133,16,75,60,0,42,0,100,106,74,133,75,133,96,126,2,134,3,134,60,0,42,0,109,108,152,103,174,130,50,65,139,134,16,149,94,116,127,119,57,135,179,146,237,146,225,83,98,216,232,221,171,58,225,88,60,0,42,0,39,88,139,100,214,88,60,0,42,0,46,150,10,103,111,143,14,128,68,80,223,142,134,90,76,116,157,120,219,125,244,68,45,143,192,116,29,121,60,0,42,0,164,119,60,0,42,0,240,149,166,109,143,149,160,149,100,111,77,106,182,129,60,0,42,0,56,131,60,0,42,0,14,98,156,128,4,104,232,114,210,126,185,91,92,59,231,107,25,131,99,131,255,112,70,72,88,93,239,65,104,125,162,127,182,90,198,90,100,93,8,100,17,100,182,110,209,56,149,105,174,105,181,105,148,113,98,116,201,132,65,122,126,135,85,149,25,126,141,135,142,135,35,137,229,153,246,154,43,91,184,93,3,114,148,147,28,112,198,93,231,102,17,136,104,216,254,220,60,0,42,0,151,81,130,91,72,87,74,216,232,222,135,80,245,142,4,108,60,0,42,0,39,157,60,0,42,0,67,122,60,0,39,0,208,253,39,0,23,49,60,0,42,0,114,78,92,91,121,81,168,84,213,89,255,89,10,131,37,104,134,115,14,125,50,131,64,141,68,141,196,109,246,121,1,127,24,140,222,85,115,91,107,93,20,105,125,110,203,110,162,124,142,143,118,91,88,132,220,137,62,138,178,140,199,140,145,141,17,145,49,149,140,121,53,122,199,125,45,146,67,149,135,159,28,143,172,111,238,138,166,141,58,143,25,147,237,154,187,156,18,159,127,147,161,147,190,116,63,152,62,152,212,155,133,157,77,159,105,216,203,221,38,156,60,0,42,0,251,132,60,0,42,0,64,216,148,220,212,78,7,84,77,103,173,62,201,89,202,89,247,119,196,121,112,84,125,124,20,128,207,128,120,134,237,121,147,104,43,123,232,145,89,85,43,125,211,110,63,138,159,105,60,0,42,0,87,91,234,129,147,130,216,57,51,80,90,82,99,96,120,114,33,131,13,110,37,119,38,119,212,128,254,128,44,111,116,60,60,0,42,0,80,91,48,93,116,106,60,0,42,0,0,94,29,83,158,108,130,84,202,143,246,98,37,125,46,125,84,146,115,155,220,129,226,129,60,0,42,0,66,103,56,120,122,80,146,85,244,151,209,150,75,216,141,221,187,93,252,120,77,137,220,150,203,86,208,86,229,150,60,0,42,0,139,84,60,0,42,0,25,82,158,98,162,108,233,98,206,108,253,108,35,141,71,82,238,143,93,131,54,85,103,85,59,94,46,123,52,130,172,140,173,110,224,119,22,86,231,90,88,94,166,123,13,106,206,138,92,141,199,100,164,111,159,118,148,119,0,124,11,121,46,139,254,140,12,136,87,137,90,159,106,69,112,159,5,158,60,0,42,0,40,89,196,78,130,94,68,108,3,102,23,102,81,99,49,93,60,0,42,0,44,79,54,133,60,0,42,0,125,112,126,112,62,117,201,84,61,104,214,112,61,110,209,131,117,119,243,140,60,0,42,0,176,91,61,93,193,67,60,0,42,0,141,81,40,87,87,98,162,79,5,109,125,143,164,80,9,143,104,145,14,81,33,126,60,0,42,0,60,141,29,98,202,140,151,156,253,155,8,136,2,156,97,156,60,0,42,0,174,80,109,144,223,124,103,142,169,145,60,0,42,0,255,81,127,148,60,0,42,0,233,101,163,103,164,134,215,104,161,111,170,116,187,133,112,126,251,133,60,0,42,0,118,112,129,118,130,118,21,85,35,85,141,104,32,144,191,85,65,130,101,97,106,86,229,113,9,124,95,139,174,141,129,142,195,122,200,122,60,0,42,0,6,104,60,0,42,0,185,144,122,154,249,139,240,144,108,150,247,104,248,104,198,131,18,145,131,123,197,125,207,138,176,156,57,145,235,155,192,158,54,154,113,159,122,159,60,0,42,0,113,141,112,141,60,0,42,0,79,89,205,99,113,105,117,61,60,0,42,0,208,155,60,0,42,0,66,81,204,124,42,124,46,124,21,148,31,148,60,0,42,0,177,84,60,0,42,0,29,102,175,108,90,104,193,91,235,60,221,99,70,86,141,100,39,81,5,101,18,101,57,81,34,101,177,141,56,121,178,141,60,0,42,0,130,102,6,53,171,102,219,140,94,141,62,147,253,111,84,142,60,145,201,116,10,141,232,147,210,116,58,55,82,112,131,139,71,145,218,116,182,121,120,137,154,139,97,153,60,0,42,0,14,96,60,0,42,0,46,140,86,139,91,139,60,0,42,0,206,86,60,0,42,0,40,83,66,114,152,127,67,141,205,140,231,129,216,140,53,133,19,141,210,154,28,141,60,0,42,0,117,154,212,153,60,0,42,0,56,54,88,89,9,95,15,129,95,88,108,132,186,146,211,129,223,129,60,0,42,0,151,88,158,88,142,97,47,127,43,145,103,106,183,113,148,116,240,119,243,120,126,127,82,126,68,139,60,0,42,0,3,149,229,146,96,141,17,117,8,141,60,0,42,0,91,156,60,0,42,0,223,121,69,132,169,132,60,0,42,0,70,83,179,141,82,83,235,84,18,93,42,93,207,101,182,80,164,123,36,142,63,142,94,149,195,147,60,0,42,0,197,139,196,126,59,150,206,79,60,114,199,115,86,121,68,125,91,138,123,151,3,69,60,0,42,0,186,147,60,0,42,0,40,102,232,121,125,99,139,131,10,105,34,116,19,122,112,123,60,146,60,0,42,0,64,216,135,220,230,93,80,79,40,85,83,126,60,0,42,0,92,79,80,87,52,54,157,92,158,92,13,96,60,150,179,79,217,128,17,85,167,94,90,121,90,80,48,57,110,59,143,136,67,132,68,132,245,152,0,54,243,124,60,0,42,0,151,84,217,132,60,0,42,0,156,83,24,103,112,59,250,85,54,106,213,135,151,126,60,0,42,0,138,93,52,86,181,93,127,86,187,116,60,0,42,0,44,104,74,125,84,145,0,103,108,102,125,121,33,122,106,127,160,143,220,105,123,145,137,145,94,133,247,146,10,147,135,106,140,106,60,0,42,0,160,103,93,122,60,0,42,0,187,148,96,216,86,222,156,142,125,148,60,0,42,0,100,126,53,127,130,126,137,126,107,124,152,126,60,0,42,0,37,101,90,148,60,0,42,0,10,92,171,88,255,88,159,93,61,106,117,144,92,126,71,127,15,148,223,156,82,156,247,157,60,0,42,0,212,80,66,86,153,100,63,69,80,139,60,0,42,0,88,99,140,146,60,0,42,0,142,157,60,0,42,0,151,91,39,80,252,126,148,154,43,88,79,93,85,93,254,96,213,104,35,115,89,129,33,103,54,105,124,132,120,93,83,64,47,122,156,125,195,125,167,113,38,66,245,125,234,127,108,135,40,142,42,142,235,120,80,147,117,140,100,142,12,154,3,155,35,154,9,155,55,155,238,155,252,155,65,148,60,0,42,0,59,96,108,80,116,99,227,96,33,97,212,99,3,100,175,80,211,61,96,100,207,125,215,132,2,126,61,126,211,147,60,0,42,0,181,126,46,102,173,117,10,80,20,115,130,120,189,124,201,124,50,118,38,126,29,147,49,126,237,124,60,0,42,0,72,111,60,0,39,0,208,253,39,0,24,49,60,0,42,0,114,84,181,117,124,141,104,80,128,141,208,141,102,216,40,222,180,154,18,126,0,136,202,154,121,159,60,0,42,0,205,139,57,54,144,87,204,103,193,115,50,88,96,121,8,131,40,131,53,57,247,116,208,70,94,138,157,143,158,143,72,97,6,117,193,120,204,150,15,74,90,158,205,124,164,143,250,152,8,153,2,54,40,91,232,111,139,133,28,157,32,121,173,143,191,157,192,157,60,0,42,0,100,107,76,79,218,108,188,115,137,118,42,125,134,155,60,0,42,0,63,103,33,107,58,79,125,79,58,82,62,82,155,94,40,104,38,131,88,125,191,131,211,134,80,141,220,140,134,135,94,58,60,0,42,0,147,86,230,100,3,101,60,0,42,0,36,121,60,0,42,0,106,144,195,86,60,0,42,0,138,81,140,81,167,79,149,83,123,96,250,98,75,109,71,101,95,117,116,80,160,83,39,123,163,124,193,94,251,96,44,110,86,123,23,132,94,123,116,123,52,132,132,88,50,58,163,123,219,132,161,97,87,216,33,220,14,124,60,0,42,0,114,80,71,90,28,115,60,0,42,0,77,98,178,114,80,103,34,141,161,140,193,136,168,110,148,126,60,0,42,0,221,107,199,145,56,80,75,85,192,91,105,95,161,99,108,119,244,141,181,125,41,142,60,0,42,0,240,87,204,104,220,131,33,133,41,126,60,0,42,0,161,100,205,100,217,124,60,0,42,0,250,102,249,102,8,86,134,93,21,111,253,105,248,132,85,216,98,221,90,130,172,135,63,137,234,147,60,0,42,0,120,130,73,131,58,97,198,97,50,154,60,0,42,0,143,128,53,145,89,137,60,0,42,0,190,46,121,130,60,0,42,0,209,81,74,110,96,129,143,143,51,143,60,0,42,0,194,83,195,83,196,83,225,152,150,154,197,83,176,85,76,110,170,80,32,91,16,153,66,154,60,0,42,0,139,107,149,134,237,96,152,107,90,97,69,135,89,97,221,69,49,91,54,136,58,136,60,0,42,0,232,96,1,103,88,97,175,97,71,122,248,123,234,158,242,158,60,0,42,0,127,112,209,54,186,99,113,91,178,124,123,100,175,111,230,113,168,116,146,133,50,139,60,0,42,0,15,81,24,114,60,0,42,0,126,93,60,0,42,0,145,92,148,109,18,123,163,104,60,0,42,0,211,78,250,78,39,79,167,108,205,130,39,158,9,80,49,130,150,80,98,93,196,110,74,115,188,132,89,130,165,135,172,157,60,0,42,0,207,133,118,148,60,0,42,0,110,65,246,140,60,0,42,0,248,111,73,127,12,107,60,0,42,0,253,102,76,86,60,0,42,0,66,92,254,102,100,92,146,93,29,59,242,122,85,66,83,154,60,0,42,0,109,142,60,0,42,0,151,124,213,137,129,158,132,158,164,158,60,0,42,0,130,95,130,107,60,0,42,0,195,79,29,115,40,129,98,145,4,118,142,138,151,141,72,86,177,97,31,133,39,142,139,145,47,118,7,124,44,126,89,142,68,73,0,159,116,142,117,142,99,152,60,0,42,0,19,100,115,116,174,100,203,120,115,144,73,142,157,145,60,0,42,0,107,59,88,134,228,117,73,119,236,119,111,93,115,93,171,132,22,133,126,158,66,145,122,158,166,142,60,0,42,0,30,129,60,0,42,0,73,82,82,82,157,83,14,89,43,99,170,99,157,131,161,131,174,101,228,104,42,144,9,149,25,149,204,132,117,107,188,146,47,147,60,0,42,0,20,93,172,80,215,81,30,127,148,88,32,55,137,93,91,97,103,100,177,105,85,115,239,105,234,120,23,126,217,147,60,0,42,0,60,111,128,116,161,141,160,118,60,0,42,0,28,79,240,95,169,117,5,80,139,124,35,125,198,127,3,129,6,129,80,85,91,85,180,96,236,109,243,107,32,113,58,129,3,132,1,118,185,124,183,125,224,127,172,129,181,129,226,111,193,122,71,152,206,129,74,137,60,0,42,0,124,78,60,0,42,0,70,108,186,100,209,146,105,149,127,142,27,101,165,142,121,148,60,0,42,0,213,106,209,93,17,107,115,122,60,0,42,0,156,122,169,107,182,113,225,123,18,124,196,122,40,114,60,0,42,0,81,103,168,144,180,118,6,142,138,111,244,122,60,0,42,0,88,91,159,79,245,98,60,0,42,0,12,82,214,95,60,0,42,0,248,91,11,84,127,124,60,0,42,0,6,83,234,86,241,86,233,95,158,103,193,130,49,96,164,96,69,216,223,223,199,104,39,113,82,216,218,221,113,132,23,111,97,128,162,154,176,102,5,106,44,106,156,113,125,116,129,116,235,125,102,128,106,128,239,132,37,133,155,119,234,113,245,123,112,128,204,135,111,147,113,126,230,147,24,154,68,154,60,0,42,0,206,78,27,78,147,95,67,90,110,91,150,95,158,95,176,96,217,109,46,116,82,97,14,111,64,111,104,111,180,138,232,140,233,140,55,106,226,83,194,133,71,112,9,107,28,114,60,0,42,0,129,97,37,139,60,0,42,0,16,131,60,0,39,0,208,253,39,0,25,49,60,0,42,0,182,83,159,126,29,78,248,83,168,62,249,124,193,121,157,84,192,108,236,79,29,96,82,134,54,158,164,90,175,101,114,125,12,127,243,134,82,105,50,61,112,146,212,152,216,81,174,83,185,105,151,121,115,127,36,135,54,149,54,86,93,86,70,216,82,220,221,94,149,100,140,111,195,120,160,121,86,216,232,223,230,125,214,146,205,113,108,133,132,135,46,69,214,135,244,135,184,152,38,154,1,148,100,216,112,221,229,157,54,159,109,124,60,0,42,0,123,107,60,0,42,0,243,93,150,78,219,86,250,91,92,108,64,79,161,79,85,81,210,89,96,91,107,103,215,108,228,108,64,121,114,153,119,154,82,59,246,103,109,114,48,90,13,109,152,109,130,128,228,152,37,123,28,128,242,145,226,122,151,137,227,85,134,128,132,140,54,146,59,146,252,152,223,153,169,121,41,81,124,133,3,112,60,0,42,0,86,96,175,146,60,0,42,0,232,78,49,99,50,99,146,100,60,0,42,0,18,109,47,138,120,151,117,111,81,112,160,142,60,0,42,0,69,83,231,108,210,152,14,129,18,146,40,132,75,100,175,152,186,153,169,133,210,106,68,134,60,0,42,0,66,216,191,223,161,150,60,0,42,0,170,149,60,0,42,0,114,130,19,109,28,104,169,109,108,85,239,148,110,107,23,116,237,150,199,85,95,116,112,107,171,146,129,111,206,97,204,100,199,111,207,111,55,118,81,122,128,111,177,116,18,112,97,122,108,126,86,143,252,147,69,139,203,152,60,0,42,0,11,110,111,122,60,0,42,0,226,107,34,97,204,99,94,88,248,107,110,129,123,86,195,156,75,152,4,76,19,156,60,0,42,0,34,66,60,0,42,0,238,85,91,141,255,80,253,140,58,124,60,0,42,0,37,86,60,0,42,0,187,99,154,154,69,97,20,100,158,110,43,127,69,126,202,129,203,156,18,154,55,154,32,156,98,156,60,0,42,0,107,98,131,99,194,90,69,69,60,0,42,0,253,87,25,118,9,108,194,119,222,154,60,0,42,0,166,135,60,0,42,0,92,99,192,94,138,153,214,85,203,94,28,100,73,100,178,110,64,115,11,145,87,100,75,216,183,220,144,132,195,132,60,149,213,152,45,66,88,130,139,135,153,145,170,147,63,153,188,152,190,152,42,154,60,0,42,0,220,83,223,83,129,80,254,85,141,119,222,100,174,133,251,100,226,106,234,133,84,124,60,0,42,0,253,85,132,129,54,118,60,0,42,0,9,78,14,95,193,83,245,107,0,66,255,107,153,114,22,155,60,0,42,0,208,78,30,79,152,80,193,124,194,124,147,153,221,124,227,124,228,124,86,126,210,147,254,147,48,151,74,153,60,0,42,0,213,79,52,94,183,96,99,101,144,149,60,0,42,0,237,88,246,107,129,83,117,106,60,0,42,0,238,104,46,105,238,105,66,137,60,0,42,0,82,104,81,104,60,0,42,0,211,85,33,100,201,120,44,137,161,152,159,147,89,152,60,0,42,0,39,78,170,85,60,0,42,0,225,105,60,0,42,0,231,80,143,68,25,155,60,0,42,0,207,130,38,117,101,145,35,122,163,122,76,122,239,106,7,134,19,134,204,86,60,0,42,0,215,79,60,0,42,0,138,115,25,89,201,139,221,108,131,128,44,109,145,109,223,115,32,125,191,91,128,104,144,107,155,124,164,131,31,144,149,154,131,80,159,124,52,138,33,140,201,85,80,88,81,88,202,90,43,97,175,110,184,110,133,128,84,158,243,80,4,53,44,97,161,105,134,129,235,137,154,141,97,144,159,97,14,106,21,106,90,111,101,111,82,216,130,220,191,120,12,133,108,144,201,146,23,153,24,59,90,106,155,116,36,126,12,124,22,139,92,142,215,133,76,154,80,156,235,157,60,0,42,0,194,155,60,0,42,0,6,85,214,54,17,90,107,104,173,104,143,131,158,80,67,119,205,85,167,127,77,100,41,127,209,132,150,141,17,124,11,69,20,124,46,126,255,154,187,155,60,0,42,0,64,98,122,78,189,58,34,85,34,125,16,116,226,96,1,149,233,85,75,216,98,220,145,110,155,102,99,116,133,116,40,137,155,69,136,147,141,147,150,147,187,147,193,147,60,0,42,0,36,144,185,110,54,135,60,0,42,0,17,116,230,85,60,0,42,0,10,89,149,130,125,134,32,80,248,84,125,109,45,119,125,131,126,131,214,110,98,119,143,125,112,132,163,113,201,111,150,151,214,150,60,0,42,0,229,126,139,150,64,144,143,150,168,150,205,116,60,0,42,0,184,129,73,75,33,112,196,154,211,154,60,0,42,0,151,78,129,92,21,120,95,121,7,140,227,87,87,93,71,216,213,222,114,107,115,107,107,113,95,119,142,120,66,144,66,122,182,138,229,140,24,91,187,111,167,150,133,106,150,106,231,113,178,116,87,122,64,126,131,144,173,121,95,122,80,126,222,101,120,126,90,137,98,139,6,148,41,148,226,151,60,0,42,0,251,114,224,117,120,145,60,0,42,0,52,83,60,0,42,0,88,121,7,123,109,123,151,123,156,132,60,0,42,0,89,91,242,114,107,91,106,131,231,152,14,100,59,115,241,152,194,105,192,132,117,133,158,133,60,0,42,0,95,99,11,123,188,150,77,123,13,100,171,105,176,123,40,124,168,147,189,157,60,0,42,0,234,95,126,103,128,103,0,90,215,103,47,80,199,81,39,93,186,94,165,104,222,109,216,131,105,93,121,120,25,135,189,97,205,111,100,216,237,220,167,106,118,147,6,155,60,0,42,0,2,96,154,96,56,128,230,122,177,80,47,97,38,58,100,105,119,93,107,97,115,128,247,153,60,0,42,0,188,139,139,91,245,139,1,144,130,152,31,138,12,152,166,138,56,153,60,0,42,0,169,103,185,147,60,0,39,0,208,253,39,0,26,49,60,0,42,0,117,84,63,150,21,149,60,0,42,0,196,85,60,0,42,0,74,85,60,0,39,0,208,253,39,0,27,49,60,0,42,0,148,85,98,86,60,0,42,0,230,84,60,0,42,0,125,123,60,0,39,0,208,253,39,0,28,49,60,0,42,0,184,89,191,89,182,148,63,90,64,90,89,92,254,117,60,0,42,0,185,139,42,84,238,86,215,143,196,79,37,90,232,92,233,92,144,109,244,115,170,131,27,138,146,118,75,119,9,65,11,146,7,149,69,158,254,134,144,138,192,120,31,152,157,152,100,155,178,150,77,152,93,157,94,157,76,139,68,216,69,221,42,156,60,0,42,0,153,103,8,120,11,152,65,86,0,154,60,0,42,0,132,83,117,92,57,98,122,107,67,84,139,92,124,98,40,150,93,84,202,130,109,143,56,150,162,84,185,84,67,216,101,220,169,87,246,89,201,92,16,120,14,83,118,96,40,120,101,68,133,134,127,153,84,80,126,83,10,88,170,96,160,99,101,117,101,117,70,120,20,140,219,142,15,150,193,53,46,88,63,93,225,96,21,97,66,110,72,71,95,140,246,142,2,145,42,146,197,94,36,100,57,100,153,59,39,116,109,129,60,132,123,138,76,144,79,144,235,80,65,135,55,149,87,158,30,152,154,152,19,153,101,155,105,86,90,133,168,137,228,138,188,149,41,153,150,140,84,147,196,156,94,107,78,152,24,121,238,106,16,156,154,157,141,139,67,159,105,148,118,159,119,156,60,0,42,0,220,100,72,157,60,0,39,0,208,253,39,0,30,49,60,0,42,0,192,84,206,84,9,85,195,87,45,90,40,99,56,107,243,85,190,110,176,146,63,149,111,86,132,147,60,0,42,0,64,85,113,99,145,118,176,110,10,86,113,101,115,101,154,118,76,118,3,154,60,0,42,0,208,107,57,102,62,90,238,119,60,133,183,142,237,111,45,151,249,133,68,151,60,0,42,0,12,79,126,130,55,54,49,114,57,120,75,120,210,53,204,85,103,88,210,90,27,97,141,120,152,150,198,83,167,102,119,116,161,149,254,80,108,65,33,91,211,97,210,88,221,97,214,102,166,116,134,133,50,153,49,157,167,118,185,119,61,69,164,153,25,121,106,139,122,139,64,148,73,151,60,0,42,0,107,156,60,0,39,0,208,253,39,0,31,49,60,0,42,0,246,139,146,138,60,0,39,0,208,253,39,0,32,49,60,0,42,0,249,81,109,53,234,103,142,104,234,142,10,114,60,0,42,0,86,101,171,83,247,85,248,85,133,93,210,94,246,110,83,115,82,115,158,150,110,100,76,216,129,222,172,113,136,116,28,133,104,144,221,120,241,127,113,128,175,135,250,127,55,139,56,139,204,156,214,147,50,156,212,157,7,159,60,0,42,0,157,98,215,98,186,130,132,136,122,149,170,90,188,90,86,137,60,0,42,0,45,54,153,92,119,98,115,87,135,87,176,92,97,89,101,89,178,80,103,89,156,154,28,55,239,90,96,97,75,216,198,220,186,88,180,93,202,97,217,100,179,111,169,150,202,147,65,154,60,0,42,0,246,127,60,0,39,0,208,253,39,0,33,49,60,0,42,0,180,139,164,108,39,107,180,107,239,116,37,158,120,88,26,111,80,107,198,107,176,113,14,157,12,117,68,216,191,220,51,139,217,106,194,147,215,157,114,73,60,0,42,0,146,129,117,159,60,0,42,0,65,216,118,222,24,84,85,84,118,80,98,129,20,86,150,52,38,128,69,133,213,133,60,0,42,0,4,96,106,97,60,0,42,0,242,133,60,0,39,0,208,253,39,0,34,49,60,0,42,0,137,91,146,79,214,92,73,104,40,108,181,94,2,64,25,140,149,90,244,131,247,117,100,129,59,132,74,132,76,158,157,138,237,132,140,151,141,151,230,118,243,138,163,153,235,118,106,157,253,151,149,157,60,0,42,0,181,115,125,85,248,150,17,81,60,0,42,0,181,87,250,79,53,85,239,87,245,148,222,99,140,150,111,127,168,146,60,0,42,0,180,114,184,92,9,99,29,109,72,104,250,128,76,131,123,140,19,88,105,90,65,65,123,102,151,102,12,147,199,149,159,155,151,75,239,158,60,0,39,0,208,253,39,0,35,49,60,0,42,0,64,89,105,96,69,216,239,223,126,113,189,132,60,0,42,0,206,92,60,0,42,0,65,100,83,75,60,0,39,0,208,253,39,0,36,49,60,0,42,0,174,128,175,154,60,0,42,0,108,83,135,92,2,102,59,102,162,68,127,59,60,0,42,0,138,103,206,118,160,145,60,0,39,0,208,253,39,0,37,49,60,0,42,0,165,151,60,0,39,0,208,253,39,0,38,49,60,0,42,0,63,81,12,128,80,81,149,79,82,81,207,92,15,109,81,150,45,104,249,128,75,131,50,85,56,158,171,124,79,128,187,136,0,143,233,66,149,156,245,154,173,150,158,155,47,157,92,143,60,0,42,0,188,83,18,92,19,92,20,92,51,128,49,109,233,143,117,153,46,104,230,107,229,115,210,148,62,114,12,153,236,153,190,133,135,144,176,141,60,0,42,0,140,78,13,95,16,95,116,79,53,82,161,84,197,54,48,141,174,140,72,136,179,140,128,138,122,146,50,106,60,0,39,0,208,253,39,0,39,49,60,0,42,0,0,78,74,78,12,95,100,136,10,79,99,136,59,83,26,84,241,88,157,79,191,84,67,216,150,220,196,54,214,60,34,109,78,121,77,216,63,220,152,96,23,115,241,148,249,88,214,99,57,107,220,134,252,144,219,90,42,111,149,121,38,122,165,146,4,91,107,86,1,89,127,116,101,158,68,126,209,74,185,106,201,107,171,145,223,158,105,139,214,157,243,158,60,0,42,0,65,78,234,78,28,83,47,87,55,89,157,81,144,91,130,108,210,139,198,143,135,79,156,91,33,96,182,108,203,114,116,153,166,84,232,89,211,92,248,93,44,95,94,96,248,98,194,103,198,115,106,136,59,141,228,143,167,91,69,98,24,104,75,104,191,62,245,116,25,119,240,128,17,138,164,140,251,143,205,117,251,121,27,128,152,136,210,81,160,127,19,132,230,134,81,138,82,138,189,140,144,90,134,102,56,105,131,138,224,141,87,144,9,152,144,152,244,152,145,117,0,81,170,113,183,123,172,93,91,95,92,95,148,135,122,144,36,152,242,91,183,93,3,124,74,152,101,216,231,220,76,76,93,95,94,95,59,139,212,147,250,137,24,60,137,139,3,158,60,0,42,0,89,78,242,93,229,78,135,148,65,79,66,216,203,223,58,101,227,119,148,128,161,94,35,130,225,130,226,130,129,134,212,145,26,80,70,98,79,145,111,80,22,123,24,144,58,93,209,101,5,105,230,156,111,146,214,101,255,136,38,142,34,143,124,101,152,135,231,73,165,106,114,75,18,121,100,130,251,135,87,152,89,143,110,159,60,0,42,0,66,78,64,216,134,220,73,78,191,78,11,95,8,82,198,95,138,128,122,130,174,139,166,78,57,52,7,79,121,92,2,95,63,79,90,79,174,82,83,84,68,87,121,95,145,98,89,103,52,128,133,130,209,139,145,144,126,79,109,84,121,84,196,92,8,96,63,96,19,102,141,103,37,107,209,60,198,108,136,112,199,121,206,126,197,130,227,139,127,154,203,79,85,89,31,94,32,94,8,95,72,216,215,223,187,103,2,109,66,109,180,115,171,117,191,127,88,216,248,223,118,143,101,52,8,85,188,87,146,96,57,99,89,99,39,104,58,104,45,107,101,109,115,109,202,118,117,136,10,140,218,82,246,87,248,87,165,96,156,99,185,107,112,117,91,120,155,127,202,127,204,127,163,136,50,138,51,138,89,140,91,140,244,145,109,150,191,150,70,94,97,101,121,102,237,104,148,107,89,110,50,113,82,216,127,221,59,67,225,134,77,138,199,141,252,142,56,144,32,146,132,78,127,81,52,53,15,97,162,110,72,115,236,117,106,119,233,122,252,65,34,127,169,127,132,128,212,136,219,136,99,138,174,154,233,82,213,90,217,94,143,105,23,118,137,129,52,135,126,151,197,153,4,81,137,57,142,100,248,105,197,107,105,111,160,113,164,113,30,118,250,132,188,138,82,149,93,158,98,158,211,158,147,82,1,54,27,87,191,88,17,91,31,91,167,93,182,97,204,97,192,102,170,107,105,61,186,111,188,113,218,113,49,118,150,119,83,122,10,126,87,130,160,135,241,91,129,101,206,102,141,106,93,107,225,113,241,113,243,127,252,127,198,129,143,133,57,137,249,140,168,155,84,118,0,141,176,147,113,149,118,126,121,126,217,133,221,133,119,140,44,151,227,155,130,157,131,157,164,57,55,112,111,139,112,139,179,145,183,145,80,153,68,216,59,221,85,216,37,223,25,134,63,148,193,157,202,157,200,86,255,97,91,154,231,157,254,157,73,134,124,137,120,159,155,139,60,0,42,0,7,83,183,143,105,117,44,105,31,132,141,157,78,124,60,0,42,0,43,78,39,87,139,83,22,84,152,94,188,98,146,103,173,87,38,158,96,104,45,158,225,87,114,91,15,105,9,157,15,147,40,157,211,88,118,157,26,148,60,0,42,0,89,114,34,79,145,83,136,92,147,83,161,115,189,130,12,123,156,134,16,88,21,93,22,93,175,109,26,115,10,116,88,116,90,119,89,136,4,111,86,159,105,216,50,222,60,0,42,0,83,216,19,221,138,83,140,94,209,84,22,85,94,85,214,117,197,150,2,118,94,216,221,221,101,133,60,0,42,0,156,82,32,87,103,143,154,78,126,137,182,139,156,78,189,114,158,78,203,142,211,143,5,90,28,99,17,120,249,79,41,108,109,90,151,99,29,138,212,148,224,99,44,108,48,115,80,128,89,216,22,223,20,87,15,122,171,122,126,159,60,0,42,0,132,46,91,78,64,84,60,0,42,0,223,84,55,85,178,85,60,0,42,0,59,80,150,99,141,102,48,105,78,86,113,111,46,136,60,0,42,0,55,114,54,128,83,99,216,148,246,99,254,145,58,114,227,146,232,100,129,147,60,0,42,0,95,78,20,84,182,81,220,87,206,145,34,86,28,111,196,88,60,0,42,0,26,78,246,83,243,102,117,152,245,102,28,89,180,98,186,144,177,78,188,103,1,152,84,102,189,103,232,112,161,53,88,85,178,109,18,140,40,88,151,107,75,129,106,105,109,105,73,132,19,145,140,153,247,80,75,107,183,88,14,66,101,151,170,93,171,93,219,100,196,102,197,102,178,111,193,113,90,216,28,220,1,139,52,145,35,153,136,86,235,100,215,102,163,118,177,119,113,147,234,100,184,119,15,121,166,66,145,147,65,153,122,157,23,114,55,148,104,151,92,154,8,158,60,0,42,0,170,78,60,0,42,0,122,94,45,89,6,84,150,89,150,103,128,107,69,121,30,138,147,85,70,105,112,129,125,132,1,67,69,70,1,157,128,144,60,0,42,0,59,114,39,92,45,92,180,128,154,87,218,89,227,92,154,64,122,143,4,80,209,112,231,115,145,122,156,80,47,88,250,99,35,140,250,142,126,52,194,85,177,90,173,95,46,97,22,100,71,100,58,115,49,58,154,102,163,105,100,116,118,116,89,144,101,144,154,146,214,152,6,153,162,93,164,93,175,122,176,122,4,69,26,153,71,126,32,139,33,139,91,216,190,223,144,147,208,156,25,75,187,152,40,134,142,144,100,152,41,156,60,0,42,0,248,78,142,91,134,92,173,98,115,103,213,114,172,84,252,103,237,130,17,119,133,122,136,122,0,130,96,80,121,90,62,93,148,110,154,105,212,132,34,157,60,159,196,149,21,154,105,159,213,157,60,0,42,0,126,122,129,137,165,148,84,216,82,220,111,131,148,122,142,136,68,123,79,138,111,132,142,113,158,137,127,151,95,115,94,158,86,216,175,222,172,133,220,102,255,113,94,130,197,119,229,133,0,128,133,126,194,157,145,139,112,148,60,0,42,0,24,79,231,95,56,101,102,84,46,96,209,108,125,94,160,96,12,144,128,158,250,110,130,97,42,81,152,86,0,112,62,145,204,106,139,126,48,128,60,0,42,0,34,92,36,92,49,117,139,108,185,114,85,63,76,216,222,223,185,108,172,128,174,144,35,96,191,101,163,117,243,92,95,109,222,121,67,67,192,148,100,80,156,131,184,131,176,134,39,138,56,110,54,115,48,144,245,144,127,156,98,105,55,115,74,144,62,146,137,156,15,143,192,153,99,135,119,155,85,133,54,143,139,155,254,106,60,0,42,0,203,83,9,103,35,78,99,83,73,145,195,130,173,61,145,127,174,94,47,104,144,127,132,104,72,128,28,129,160,131,213,148,117,110,15,135,137,121,170,146,0,75,241,105,86,114,221,158,238,97,60,0,42,0,128,46,200,83,243,83,124,94,81,79,145,79,214,114,255,124,202,84,255,86,247,89,165,91,223,92,218,103,112,114,241,139,0,85,80,121,246,143,1,64,180,134,180,78,129,140,201,145,109,145,152,138,44,159,60,0,42,0,103,91,143,132,87,114,60,0,42,0,121,96,102,82,223,112,218,115,237,128,99,80,113,85,38,93,63,57,202,109,249,109,9,113,17,113,155,71,9,150,110,110,18,115,76,129,248,131,89,113,125,120,227,90,57,111,103,65,34,145,131,145,185,149,46,91,232,97,246,123,213,97,217,129,235,158,60,0,42,0,160,139,37,78,0,138,1,138,169,92,246,94,22,102,191,108,142,112,171,130,141,89,248,89,20,120,46,90,208,118,43,90,255,114,2,116,79,120,212,144,134,149,14,150,82,93,83,93,122,110,154,131,105,88,197,99,76,105,254,65,125,138,158,120,117,123,150,125,18,135,5,133,156,152,100,134,187,149,179,83,144,106,79,152,84,152,219,88,55,124,180,86,204,93,233,106,236,158,215,93,231,88,77,91,214,93,125,158,57,121,163,158,60,0,42,0,53,89,129,98,135,108,117,78,86,81,68,89,232,79,87,81,61,83,7,95,77,136,67,80,163,83,169,99,60,119,83,145,67,93,29,97,74,98,220,99,122,59,234,104,48,110,55,110,48,116,18,132,254,144,60,105,104,127,67,144,146,150,20,111,250,136,150,93,45,98,88,135,23,137,94,86,189,142,71,155,47,126,191,106,19,154,225,158,180,83,84,216,44,220,11,156,160,157,228,158,94,159,145,159,23,117,237,158,60,81,105,152,52,159,216,93,218,93,57,159,238,102,88,155,116,159,246,158,60,0,42,0,140,83,235,149,159,89,195,137,106,114,189,84,242,89,101,95,102,95,26,120,1,85,180,91,79,102,115,130,142,137,140,154,80,80,20,113,26,140,173,85,48,88,101,101,251,112,48,113,49,113,111,120,129,150,193,150,191,80,59,105,142,110,223,110,85,132,235,156,173,83,149,88,165,102,125,145,10,91,51,140,100,216,192,220,13,153,8,157,243,61,252,61,196,113,213,113,250,138,93,141,173,72,51,155,213,102,51,157,16,154,165,86,63,91,118,130,11,141,64,145,4,74,225,76,43,59,227,102,19,114,182,145,52,154,195,157,84,112,23,141,254,137,140,139,188,145,92,153,87,154,240,157,119,130,105,216,74,222,78,112,96,154,103,112,158,139,83,140,197,145,84,140,105,112,60,0,42,0,46,106,150,113,197,142,21,107,60,0,42,0,217,86,224,86,37,150,52,150,140,79,148,87,251,89,226,57,7,109,243,151,131,154,54,104,183,107,36,108,53,131,208,81,99,90,4,65,245,121,107,131,223,148,112,150,145,85,25,88,20,97,67,123,106,125,192,136,123,150,130,150,69,107,181,110,71,97,127,100,22,118,139,121,166,146,248,125,45,133,135,151,242,138,18,151,100,216,236,220,240,153,126,86,201,149,32,151,143,61,254,151,60,0,42,0,152,81,81,78,66,53,31,84,190,114,166,101,194,130,160,87,255,108,151,53,1,87,254,92,206,112,250,114,226,115,20,138,26,138,108,90,197,91,31,93,47,93,235,109,118,131,33,138,246,148,29,146,130,159,219,110,146,120,36,89,30,145,128,146,86,86,165,107,140,116,41,133,190,138,154,86,173,106,235,135,38,77,42,151,87,159,227,157,60,0,42,0,90,78,64,216,202,220,244,94,57,92,21,95,50,84,110,153,147,134,122,141,254,109,15,146,144,150,242,152,119,151,238,152,4,103,17,143,160,150,228,120,155,141,62,118,190,93,131,106,229,111,230,111,190,135,177,150,253,106,31,134,110,118,148,139,60,0,42,0,112,83,21,109,228,128,189,87,26,131,55,88,90,110,12,115,213,94,145,132,115,145,109,97,150,97,151,97,74,118,163,155,101,56,218,97,188,106,67,69,60,0,42,0,140,124,60,0,42,0,46,89,137,84,206,89,176,98,241,108,131,107,230,128,15,119,231,121,47,158,96,146,245,150,133,151,38,157,60,0,42,0,108,98,138,127,248,101,104,103,128,112,38,150,51,150,207,152,111,79,183,82,28,108,161,117,150,148,159,87,137,95,28,102,11,109,143,127,202,112,220,115,90,216,117,223,59,119,53,93,56,93,218,99,216,134,125,150,109,101,152,102,74,105,108,113,13,118,147,121,21,59,249,138,48,143,90,147,57,157,186,152,10,148,17,156,55,151,9,158,60,0,42,0,240,78,82,79,113,87,159,92,123,81,205,103,180,112,39,108,210,117,59,125,159,80,238,142,67,97,103,105,49,108,70,135,10,153,218,153,38,53,233,97,1,101,70,68,98,118,60,0,42,0,15,96,89,96,55,104,149,127,71,138,216,105,62,111,35,106,1,112,60,0,42,0,77,89,170,127,34,121,60,0,42,0,148,94,220,95,241,130,92,104,64,80,104,85,116,90,236,126,186,131,67,216,4,222,68,216,152,223,150,90,54,110,208,72,200,90,32,103,80,113,91,116,36,86,132,100,164,120,40,127,66,127,207,140,51,149,49,106,142,116,7,117,211,125,103,135,67,127,46,137,72,147,44,157,102,158,48,91,201,97,186,129,25,151,250,151,112,158,22,117,145,157,182,86,70,91,126,91,22,101,76,127,77,139,167,157,251,106,212,116,47,121,33,134,123,139,175,157,77,148,147,126,51,136,234,157,249,157,14,158,26,158,60,0,42,0,193,118,206,143,200,118,20,131,103,131,182,85,185,131,205,134,97,216,15,223,129,110,139,110,36,132,38,132,204,80,75,88,121,105,226,110,37,132,62,132,70,111,146,113,229,132,71,135,105,116,148,66,127,135,52,91,8,126,162,135,217,111,218,111,244,111,223,113,174,137,13,139,98,141,5,112,192,133,163,147,13,101,27,112,32,112,5,136,74,216,79,221,47,112,52,112,15,141,255,106,93,124,111,124,60,0,42,0,232,119,103,109,226,144,172,104,141,152,149,152,150,152,108,100,44,75,113,95,65,111,132,116,63,118,78,122,52,152,202,93,238,94,109,118,60,0,42,0,32,102,108,120,181,90,142,102,161,129,95,86,149,151,27,148,102,156,60,0,42,0,241,115,37,97,4,126,26,101,80,112,92,112,200,142,60,0,39,0,208,253,39,0,40,49,60,0,42,0,76,78,44,87,25,95,89,108,90,108,97,108,92,84,235,93,71,103,172,144,75,92,63,109,236,139,168,148,207,112,109,82,143,122,218,85,20,145,77,107,163,138,188,123,144,135,46,157,162,147,30,156,60,0,42,0,224,101,203,107,51,84,52,84,62,84,73,84,156,130,20,85,42,90,22,109,111,109,218,144,167,104,248,115,35,131,129,131,33,113,102,121,251,148,64,158,8,135,136,138,145,121,145,116,106,133,241,135,195,155,80,157,85,139,47,159,225,157,60,0,42,0,148,78,72,83,245,78,13,79,169,89,145,94,228,95,3,96,255,101,51,59,102,107,157,115,174,79,201,79,53,80,66,99,78,85,44,90,126,114,247,115,64,100,148,120,73,158,147,113,102,116,30,130,245,90,225,94,174,97,85,111,27,81,70,106,18,117,97,157,140,142,60,0,42,0,64,81,255,82,51,52,161,82,10,98,6,79,124,92,100,98,34,150,94,87,137,92,76,103,226,95,105,114,249,119,180,130,213,143,124,83,68,101,239,139,158,96,159,96,174,96,133,124,217,82,100,102,16,113,28,144,122,90,77,93,230,117,112,151,155,154,98,88,102,89,104,93,169,110,150,150,250,150,254,150,228,91,131,113,164,138,92,158,200,146,185,122,123,144,1,74,26,151,63,159,39,151,22,154,64,159,1,134,169,157,60,0,42,0,68,78,59,147,60,0,42,0,117,122,184,82,22,99,60,109,50,90,86,117,138,122,167,90,217,134,215,85,50,100,155,110,37,111,170,122,3,159,40,101,60,0,42,0,3,90,60,0,42,0,230,116,100,79,147,84,218,57,183,144,60,0,42,0,73,128,156,136,226,85,125,129,131,129,106,137,200,151,228,151,60,0,42,0,114,92,199,84,242,116,60,0,42,0,29,99,45,80,161,109,41,85,185,109,180,131,38,110,39,115,157,122,53,132,23,135,169,122,120,135,18,142,190,100,60,0,42,0,17,98,80,90,112,99,0,76,60,0,42,0,244,78,131,108,159,128,103,83,130,103,229,129,83,80,126,99,180,109,137,90,68,94,225,99,37,110,37,113,106,120,67,105,91,129,161,101,131,119,67,216,223,223,237,100,227,111,140,159,193,116,210,129,216,150,119,159,60,0,42,0,106,107,142,85,245,122,60,0,42,0,52,93,60,0,42,0,22,89,67,216,59,220,30,89,97,152,60,0,42,0,113,83,1,90,67,216,255,220,211,112,78,80,180,85,78,54,153,90,4,97,203,99,251,99,40,110,14,132,54,144,135,150,136,150,174,95,51,105,114,105,166,110,104,113,104,132,115,132,116,138,50,135,91,135,163,137,240,113,135,133,194,156,3,156,4,156,205,93,60,0,42,0,215,86,230,151,41,87,244,86,15,94,169,108,241,149,221,143,215,92,222,92,8,109,203,151,69,104,160,109,47,85,55,94,223,96,89,120,244,126,161,85,13,87,129,90,67,94,75,110,136,110,31,116,44,145,108,93,85,144,77,111,173,125,89,111,127,111,209,120,246,132,128,145,240,111,79,147,200,149,160,155,83,118,96,66,185,137,58,151,8,107,169,114,60,0,42,0,131,83,31,79,42,79,62,92,172,126,212,89,79,59,156,112,174,115,155,130,199,130,39,109,19,90,87,92,88,109,255,139,73,80,125,80,35,93,182,104,207,117,74,120,113,131,234,91,84,93,171,95,7,97,37,115,169,154,144,102,50,105,82,113,75,116,255,117,251,65,114,129,73,130,102,132,141,132,234,151,170,154,171,154,222,80,148,156,48,81,177,100,200,120,86,216,228,223,239,125,201,138,19,142,209,151,32,152,25,59,63,133,97,216,232,221,97,147,170,155,251,111,179,133,217,151,185,152,221,88,34,112,36,134,225,151,150,101,60,0,42,0,107,83,58,78,42,103,77,79,115,84,186,112,79,117,195,128,255,130,222,83,206,142,9,92,19,140,130,85,166,90,45,110,201,61,50,114,44,115,203,131,95,113,168,120,60,135,112,97,173,113,154,114,237,125,26,133,95,135,91,136,192,97,143,116,123,127,94,136,2,139,39,153,135,155,177,135,61,137,53,153,74,143,79,155,239,133,207,147,40,151,218,156,86,153,54,134,134,139,151,142,129,76,143,139,155,142,60,0,42,0,100,99,64,113,155,88,5,126,182,93,60,0,42,0,47,95,92,82,96,90,53,94,70,88,126,110,63,135,107,111,76,140,78,95,234,88,99,112,60,0,42,0,56,78,19,82,77,108,168,126,140,91,143,92,143,98,132,130,169,115,8,125,86,99,125,152,247,112,19,116,17,152,200,75,235,127,60,0,42,0,155,91,7,80,13,85,61,99,204,118,230,87,73,90,203,96,90,102,105,102,154,104,254,126,24,129,124,102,0,105,44,116,150,118,192,131,22,132,121,117,85,119,151,120,169,125,176,125,19,143,32,142,196,146,212,146,74,74,54,55,60,0,42,0,7,78,77,83,80,83,167,89,232,95,101,99,21,129,166,140,85,129,44,132,16,143,171,111,61,147,141,133,195,135,3,141,171,147,81,73,14,141,60,0,42,0,156,144,100,103,2,123,60,0,42,0,55,102,41,110,109,88,8,59,133,105,171,110,146,143,159,107,101,116,31,118,112,133,60,143,113,140,64,143,193,156,176,151,102,216,72,221,27,156,46,156,60,0,42,0,1,83,135,101,99,95,185,126,134,112,159,115,160,130,251,149,11,125,137,134,138,134,243,115,12,150,29,116,239,150,18,118,94,128,188,153,199,153,112,155,252,156,13,157,161,135,186,149,191,149,193,135,197,149,36,159,230,149,60,0,42,0,14,82,59,84,223,95,134,98,97,84,179,128,10,125,125,104,23,129,51,122,79,122,105,122,60,0,42,0,238,149,143,89,118,108,79,85,2,110,172,131,254,99,53,100,80,152,186,116,60,0,42,0,90,84,43,146,190,147,60,0,42,0,70,216,193,223,35,92,41,92,42,92,43,92,106,108,60,0,42,0,161,78,190,78,102,81,139,115,252,78,122,95,159,134,163,131,60,0,42,0,193,52,82,127,81,127,128,95,131,95,137,103,84,127,141,95,216,96,128,102,226,104,245,131,231,134,139,143,178,125,68,135,183,138,30,143,7,112,77,155,60,0,42,0,132,89,216,95,250,101,243,118,203,143,27,103,34,103,17,73,60,0,42,0,57,113,60,0,42,0,193,127,225,85,195,110,95,158,137,135,147,147,178,157,60,0,42,0,34,54,220,82,99,89,85,88,97,93,161,102,37,68,202,132,136,119,108,128,50,55,60,0,42,0,238,116,121,133,21,117,75,127,70,159,60,0,39,0,208,253,39,0,41,49,60,0,42,0,92,98,161,126,194,143,195,143,123,122,6,125,118,134,83,150,57,85,228,109,211,118,250,107,0,118,138,123,60,0,42,0,144,78,142,78,3,79,165,54,48,59,152,144,89,79,164,89,117,98,69,103,36,107,151,115,153,115,188,101,194,118,254,129,124,156,123,78,222,79,106,81,186,121,253,122,66,67,103,136,27,90,47,90,49,90,89,104,243,114,1,130,48,131,0,140,81,145,128,153,20,110,233,150,90,155,35,88,44,88,51,93,78,93,91,93,101,57,9,97,196,99,112,105,29,110,97,110,109,117,98,120,116,129,56,132,133,150,26,97,213,101,2,59,97,105,134,105,72,107,79,114,92,116,69,130,46,132,94,134,206,137,62,144,172,154,1,111,110,119,172,122,118,107,173,127,51,68,83,135,21,137,219,138,211,150,24,153,59,76,158,111,6,130,77,133,166,137,48,142,41,91,184,135,63,143,93,147,98,216,54,222,95,107,181,116,35,139,189,155,31,154,195,154,223,101,69,124,27,134,5,156,163,76,224,157,6,158,60,0,42,0,14,78,136,78,27,79,135,91,127,92,189,127,215,46,232,150,193,79,227,79,185,121,237,139,4,87,255,92,74,80,49,53,44,83,9,87,190,94,84,101,100,121,98,55,158,101,5,145,180,80,217,91,64,105,64,116,16,118,45,132,195,56,7,130,158,138,179,122,217,146,40,152,137,159,115,86,144,140,188,93,217,97,155,57,148,101,140,158,12,134,108,159,60,0,42,0,128,128,137,115,109,154,43,87,127,128,170,89,236,95,139,130,140,130,107,153,178,128,34,57,49,102,241,114,215,121,193,144,252,79,234,92,103,95,116,109,33,120,31,131,176,148,132,152,223,87,9,88,161,95,134,96,208,96,50,107,226,109,239,109,21,140,8,150,133,85,144,85,169,85,187,85,128,90,211,91,189,94,219,104,220,104,235,104,52,113,25,116,222,119,114,120,91,216,64,220,51,144,235,152,173,153,70,158,8,97,211,107,234,110,92,113,99,63,34,122,109,127,72,130,213,136,137,138,71,144,58,146,16,152,215,90,142,93,43,98,68,115,9,118,5,66,237,66,206,125,174,132,227,132,31,135,46,135,59,70,13,143,137,146,74,86,126,97,79,111,54,122,249,132,202,146,255,156,73,216,176,220,166,111,207,113,166,121,237,138,107,140,121,144,37,147,190,149,37,157,42,157,37,81,69,216,138,220,224,113,253,123,119,133,129,133,108,158,82,118,7,121,22,121,88,126,93,216,80,220,167,145,74,155,82,157,28,121,101,122,71,153,242,106,49,151,125,139,93,143,45,148,14,107,72,154,59,155,94,124,74,156,248,157,29,107,18,158,165,159,201,142,48,155,49,155,106,112,114,124,41,114,60,0,42,0,39,99,98,131,154,111,242,155,60,0,42,0,240,102,241,102,166,126,4,125,185,123,95,95,241,119,96,95,60,0,42,0,157,46,8,103,9,98,22,82,156,89,132,92,136,98,69,216,223,222,179,92,165,115,63,121,113,96,149,65,133,96,166,96,142,134,143,134,207,142,186,148,5,150,115,99,192,141,195,141,71,72,164,124,138,141,5,146,181,124,94,146,38,73,177,149,178,149,62,106,215,123,51,91,189,93,101,216,229,220,160,159,48,55,38,59,57,112,70,124,230,158,26,114,37,134,141,142,180,121,101,124,17,158,112,124,25,158,60,0,42,0,230,86,34,158,72,82,164,81,129,96,34,119,51,158,195,91,245,109,1,110,6,110,10,110,21,110,204,96,233,104,147,63,126,132,14,135,83,158,162,123,172,132,53,135,247,136,246,156,93,72,204,153,27,157,61,91,73,73,119,157,65,112,24,159,29,159,60,0,42,0,67,81,134,81,32,141,88,84,237,86,133,108,167,144,108,103,163,87,48,114,159,140,159,83,225,84,6,87,14,123,150,134,129,136,161,83,14,87,244,99,114,110,40,115,24,127,18,131,11,159,18,87,19,87,108,88,180,90,196,90,144,110,146,110,63,115,66,115,158,105,172,105,157,132,149,143,227,125,1,126,93,135,111,135,109,155,174,76,124,106,177,127,136,135,151,133,28,139,69,143,255,158,177,147,222,106,141,144,53,154,162,157,176,157,181,83,60,0,42,0,220,143,246,118,58,144,96,144,250,146,60,0,42,0,23,89,153,128,180,89,71,59,40,96,209,130,184,87,79,136,98,150,134,80,155,90,190,99,87,116,63,97,144,121,235,136,17,137,110,86,36,137,88,152,60,0,42,0,91,145,40,146,60,0,42,0,85,102,10,127,136,102,116,113,128,132,107,89,50,108,51,108,149,132,21,126,121,135,95,141,53,152,7,141,167,153,60,0,42,0,145,78,251,82,0,83,233,86,152,89,132,108,173,126,0,102,184,130,71,117,3,119,208,121,162,109,28,125,24,128,58,128,231,144,242,150,42,97,179,110,96,123,124,123,22,145,178,105,137,113,183,132,144,111,198,146,82,106,212,123,28,126,83,133,66,153,60,0,42,0,65,81,61,89,142,98,193,114,45,150,104,150,146,107,122,131,151,85,30,73,23,146,149,150,158,107,187,153,210,120,30,137,241,140,35,151,115,159,60,0,42,0,85,91,159,103,208,143,125,96,211,144,93,145,138,80,242,96,32,97,6,145,77,97,106,129,75,144,235,151,245,151,133,113,168,113,247,125,252,125,176,76,116,133,150,145,128,133,158,145,43,153,215,151,244,133,222,151,251,151,10,134,60,0,42,0,163,98,103,126,60,0,42,0,99,79,229,98,200,117,149,144,184,94,173,80,200,85,205,150,137,88,222,90,117,97,253,110,24,145,230,105,112,86,197,88,193,100,173,111,250,144,91,149,195,129,85,118,221,150,222,147,217,156,241,94,73,112,84,153,69,156,219,157,112,118,60,0,42,0,129,85,216,99,69,114,153,152,82,152,43,156,60,0,42,0,56,108,44,117,143,84,243,108,209,79,199,82,200,82,16,104,199,87,128,96,225,103,140,109,127,96,4,61,155,80,229,96,17,97,103,110,103,120,96,138,78,88,113,93,110,95,57,97,249,134,66,97,10,142,156,121,172,156,52,142,210,155,60,0,42,0,40,117,218,130,159,145,60,0,42,0,58,96,61,120,38,0,39,0,40,0,39,0,0,78,39,0,41,0,39,0,60,0,60,0,60,0,32,50,38,0,39,0,40,0,39,0,3,78,39,0,41,0,39,0,60,0,60,0,60,0,38,50,38,0,39,0,40,0,39,0,9,78,39,0,41,0,39,0,60,0,60,0,60,0,34,50,38,0,39,0,40,0,39,0,93,78,39,0,41,0,39,0,60,0,60,0,60,0,40,50,38,0,39,0,40,0,39,0,140,78,39,0,41,0,39,0,60,0,60,0,60,0,33,50,38,0,39,0,40,0,39,0,148,78,39,0,41,0,39,0,60,0,60,0,60,0,36,50,38,0,39,0,40,0,39,0,227,78,39,0,41,0,39,0,60,0,60,0,60,0,57,50,38,0,39,0,40,0,39,0,1,79,39,0,41,0,39,0,60,0,60,0,60,0,61,50,38,0,39,0,40,0,39,0,17,79,39,0,41,0,39,0,60,0,60,0,60,0,65,50,38,0,39,0,40,0,39,0,107,81,39,0,41,0,39,0,60,0,60,0,60,0,39,50,38,0,39,0,40,0,39,0,109,81,39,0,41,0,39,0,60,0,60,0,60,0,37,50,38,0,39,0,40,0,39,0,180,82,39,0,41,0,39,0,60,0,60,0,60,0,56,50,38,0,39,0,40,0,39,0,65,83,39,0,41,0,39,0,60,0,60,0,60,0,41,50,38,0,39,0,40,0,39,0,84,83,39,0,41,0,39,0,60,0,60,0,60,0,63,50,38,0,39,0,40,0,39,0,13,84,39,0,41,0,39,0,60,0,60,0,60,0,52,50,38,0,39,0,40,0,39,0,124,84,39,0,41,0,39,0,60,0,60,0,60,0,58,50,38,0,39,0,40,0,39,0,219,86,39,0,41,0,39,0,60,0,60,0,60,0,35,50,38,0,39,0,40,0,39,0,31,87,39,0,41,0,39,0,60,0,60,0,60,0,47,50,38,0,39,0,40,0,39,0,102,91,39,0,41,0,39,0,60,0,60,0,60,0,59,50,38,0,39,0,40,0,39,0,229,101,39,0,41,0,39,0,60,0,60,0,60,0,48,50,38,0,39,0,40,0,39,0,8,103,39,0,41,0,39,0,60,0,60,0,60,0,42,50,38,0,39,0,40,0,39,0,9,103,39,0,41,0,39,0,60,0,60,0,60,0,50,50,38,0,39,0,40,0,39,0,40,103,39,0,41,0,39,0,60,0,60,0,60,0,45,50,38,0,39,0,40,0,39,0,42,104,39,0,41,0,39,0,60,0,60,0,60,0,49,50,38,0,39,0,40,0,39,0,52,108,39,0,41,0,39,0,60,0,60,0,60,0,44,50,38,0,39,0,40,0,39,0,107,112,39,0,41,0,39,0,60,0,60,0,60,0,43,50,38,0,39,0,40,0,39,0,121,114,39,0,41,0,39,0,60,0,60,0,60,0,53,50,38,0,39,0,40,0,39,0,227,118,39,0,41,0,39,0,60,0,60,0,60,0,60,50,38,0,39,0,40,0,39,0,62,121,39,0,41,0,39,0,60,0,60,0,60,0,51,50,38,0,39,0,40,0,39,0,93,121,39,0,41,0,39,0,60,0,60,0,60,0,55,50,38,0,39,0,40,0,39,0,109,121,39,0,41,0,39,0,60,0,60,0,60,0,64,50,38,0,39,0,40,0,39,0,234,129,39,0,41,0,39,0,60,0,60,0,60,0,66,50,38,0,39,0,40,0,39,0,243,129,39,0,41,0,39,0,60,0,60,0,60,0,67,50,38,0,39,0,40,0,39,0,161,140,39,0,41,0,39,0,60,0,60,0,60,0,54,50,38,0,39,0,40,0,39,0,199,140,39,0,41,0,39,0,60,0,60,0,60,0,62,50,38,0,39,0,40,0,39,0,209,145,39,0,41,0,39,0,60,0,60,0,60,0,46,50,38,0,48,0,185,112,60,0,60,0,60,0,88,51,38,0,49,0,48,0,229,101,60,0,60,0,60,0,233,51,38,0,49,0,48,0,8,103,60,0,60,0,60,0,201,50,38,0,49,0,48,0,185,112,60,0,60,0,60,0,98,51,38,0,49,0,49,0,229,101,60,0,60,0,60,0,234,51,38,0,49,0,49,0,8,103,60,0,60,0,60,0,202,50,38,0,49,0,49,0,185,112,60,0,60,0,60,0,99,51,38,0,49,0,50,0,229,101,60,0,60,0,60,0,235,51,38,0,49,0,50,0,8,103,60,0,60,0,60,0,203,50,38,0,49,0,50,0,185,112,60,0,60,0,60,0,100,51,38,0,49,0,51,0,229,101,60,0,60,0,60,0,236,51,38,0,49,0,51,0,185,112,60,0,60,0,60,0,101,51,38,0,49,0,52,0,229,101,60,0,60,0,60,0,237,51,38,0,49,0,52,0,185,112,60,0,60,0,60,0,102,51,38,0,49,0,53,0,229,101,60,0,60,0,60,0,238,51,38,0,49,0,53,0,185,112,60,0,60,0,60,0,103,51,38,0,49,0,54,0,229,101,60,0,60,0,60,0,239,51,38,0,49,0,54,0,185,112,60,0,60,0,60,0,104,51,38,0,49,0,55,0,229,101,60,0,60,0,60,0,240,51,38,0,49,0,55,0,185,112,60,0,60,0,60,0,105,51,38,0,49,0,56,0,229,101,60,0,60,0,60,0,241,51,38,0,49,0,56,0,185,112,60,0,60,0,60,0,106,51,38,0,49,0,57,0,229,101,60,0,60,0,60,0,242,51,38,0,49,0,57,0,185,112,60,0,60,0,60,0,107,51,38,0,49,0,229,101,60,0,60,0,60,0,224,51,38,0,49,0,8,103,60,0,60,0,60,0,192,50,38,0,49,0,185,112,60,0,60,0,60,0,89,51,38,0,50,0,48,0,229,101,60,0,60,0,60,0,243,51,38,0,50,0,48,0,185,112,60,0,60,0,60,0,108,51,38,0,50,0,49,0,229,101,60,0,60,0,60,0,244,51,38,0,50,0,49,0,185,112,60,0,60,0,60,0,109,51,38,0,50,0,50,0,229,101,60,0,60,0,60,0,245,51,38,0,50,0,50,0,185,112,60,0,60,0,60,0,110,51,38,0,50,0,51,0,229,101,60,0,60,0,60,0,246,51,38,0,50,0,51,0,185,112,60,0,60,0,60,0,111,51,38,0,50,0,52,0,229,101,60,0,60,0,60,0,247,51,38,0,50,0,52,0,185,112,60,0,60,0,60,0,112,51,38,0,50,0,53,0,229,101,60,0,60,0,60,0,248,51,38,0,50,0,54,0,229,101,60,0,60,0,60,0,249,51,38,0,50,0,55,0,229,101,60,0,60,0,60,0,250,51,38,0,50,0,56,0,229,101,60,0,60,0,60,0,251,51,38,0,50,0,57,0,229,101,60,0,60,0,60,0,252,51,38,0,50,0,229,101,60,0,60,0,60,0,225,51,38,0,50,0,8,103,60,0,60,0,60,0,193,50,38,0,50,0,185,112,60,0,60,0,60,0,90,51,38,0,51,0,48,0,229,101,60,0,60,0,60,0,253,51,38,0,51,0,49,0,229,101,60,0,60,0,60,0,254,51,38,0,51,0,229,101,60,0,60,0,60,0,226,51,38,0,51,0,8,103,60,0,60,0,60,0,194,50,38,0,51,0,185,112,60,0,60,0,60,0,91,51,38,0,52,0,229,101,60,0,60,0,60,0,227,51,38,0,52,0,8,103,60,0,60,0,60,0,195,50,38,0,52,0,185,112,60,0,60,0,60,0,92,51,38,0,53,0,229,101,60,0,60,0,60,0,228,51,38,0,53,0,8,103,60,0,60,0,60,0,196,50,38,0,53,0,185,112,60,0,60,0,60,0,93,51,38,0,54,0,229,101,60,0,60,0,60,0,229,51,38,0,54,0,8,103,60,0,60,0,60,0,197,50,38,0,54,0,185,112,60,0,60,0,60,0,94,51,38,0,55,0,229,101,60,0,60,0,60,0,230,51,38,0,55,0,8,103,60,0,60,0,60,0,198,50,38,0,55,0,185,112,60,0,60,0,60,0,95,51,38,0,56,0,229,101,60,0,60,0,60,0,231,51,38,0,56,0,8,103,60,0,60,0,60,0,199,50,38,0,56,0,185,112,60,0,60,0,60,0,96,51,38,0,57,0,229,101,60,0,60,0,60,0,232,51,38,0,57,0,8,103,60,0,60,0,60,0,200,50,38,0,57,0,185,112,60,0,60,0,60,0,97,51,38,0,20,48,9,78,21,48,60,0,60,0,60,0,60,216,65,222,38,0,20,48,140,78,21,48,60,0,60,0,60,0,60,216,66,222,38,0,20,48,221,82,21,48,60,0,60,0,60,0,60,216,71,222,38,0,20,48,137,91,21,48,60,0,60,0,60,0,60,216,67,222,38,0,20,48,83,98,21,48,60,0,60,0,60,0,60,216,69,222,38,0,20,48,87,101,21,48,60,0,60,0,60,0,60,216,72,222,38,0,20,48,44,103,21,48,60,0,60,0,60,0,60,216,64,222,38,0,20,48,185,112,21,48,60,0,60,0,60,0,60,216,68,222,38,0,20,48,215,118,21,48,60,0,60,0,60,0,60,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,38,0,0,78,60,0,60,0,60,0,146,49,38,0,0,78,60,0,60,0,60,0,128,50,38,0,0,78,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,148,49,38,0,9,78,60,0,60,0,60,0,130,50,38,0,9,78,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,150,49,38,0,10,78,60,0,60,0,60,0,164,50,38,0,11,78,60,0,60,0,60,0,152,49,38,0,11,78,60,0,60,0,60,0,166,50,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,45,78,60,0,60,0,60,0,151,49,38,0,45,78,60,0,60,0,60,0,165,50,38,0,45,78,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,38,0,89,78,60,0,60,0,60,0,154,49,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,38,0,140,78,60,0,60,0,60,0,147,49,38,0,140,78,60,0,60,0,60,0,129,50,38,0,140,78,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,38,0,186,78,60,0,60,0,60,0,159,49,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,38,0,107,81,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,38,0,65,83,60,0,60,0,60,0,56,48,38,0,65,83,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,38,0,105,83,60,0,60,0,60,0,25,47,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,38,0,243,83,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,149,49,38,0,219,86,60,0,60,0,60,0,131,50,38,0,31,87,60,0,60,0,60,0,31,47,38,0,31,87,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,38,0,39,89,99,107,60,0,60,0,60,0,125,51,38,0,41,89,60,0,60,0,60,0,157,49,38,0,41,89,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,38,0,115,89,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,38,0,34,92,60,0,60,0,60,0,42,47,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,38,0,230,93,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,16,98,60,0,60,0,60,0,123,51,38,0,122,94,60,0,60,0,60,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,38,0,75,98,60,0,60,0,60,0,60,216,16,222,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,135,101,60,0,60,0,60,0,66,47,38,0,135,101,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,229,101,60,0,60,0,60,0,71,47,38,0,229,101,60,0,60,0,60,0,144,50,38,0,14,102,187,108,60,0,60,0,60,0,126,51,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,140,84,60,0,60,0,60,0,124,51,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,38,0,8,103,60,0,60,0,60,0,138,50,38,0,8,103,60,0,60,0,60,0,60,216,55,222,38,0,9,103,60,0,60,0,60,0,146,50,38,0,9,103,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,38,0,40,103,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,38,0,42,104,15,95,26,79,62,121,60,0,60,0,60,0,127,51,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,38,0,52,108,60,0,60,0,60,0,140,50,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,38,0,107,112,60,0,60,0,60,0,139,50,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,38,0,31,117,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,138,127,60,0,60,0,60,0,122,47,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,38,0,137,128,60,0,60,0,60,0,129,47,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,77,134,60,0,60,0,60,0,140,47,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,126,137,60,0,60,0,60,0,145,47,38,0,139,137,60,0,60,0,60,0,146,47,38,0,210,137,60,0,60,0,60,0,147,47,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,38,0,112,141,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,38,0,73,145,60,0,60,0,60,0,163,47,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,38,0,209,145,60,0,60,0,60,0,142,50,38,0,119,149,60,0,60,0,60,0,167,47,38,0,128,149,60,0,60,0,60,0,168,47,38,0,28,150,60,0,60,0,60,0,169,47,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,38,0,81,151,60,0,60,0,60,0,173,47,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,168,152,60,0,60,0,60,0,181,47,38,0,219,152,60,0,60,0,60,0,182,47,38,0,223,152,60,0,60,0,60,0,183,47,38,0,150,153,60,0,60,0,60,0,184,47,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,168,154,60,0,60,0,60,0,187,47,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,38,0,90,155,60,0,60,0,60,0,194,47,38,0,229,156,60,0,60,0,60,0,195,47,38,0,117,158,60,0,60,0,60,0,196,47,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,38,0,82,159,60,0,60,0,60,0,210,47,38,0,141,159,60,0,60,0,60,0,211,47,38,0,156,159,60,0,60,0,60,0,212,47,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,0,0,239,223,24,114,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,39,0,208,253,1,40,39,0,60,0,42,0,0,78,40,78,54,78,63,78,64,78,65,78,89,78,90,78,132,46,91,78,64,216,202,220,64,216,203,220,64,216,204,220,64,216,205,220,64,216,209,220,133,78,64,216,12,221,71,216,232,223,6,48,7,48,33,48,37,48,59,48,60,0,39,0,208,253,2,40,39,0,60,0,42,0,1,78,2,78,3,78,4,78,5,78,6,78,41,78,55,78,66,78,67,78,68,78,64,216,134,220,64,216,135,220,64,216,138,220,92,78,93,78,134,78,64,216,14,221,140,78,160,78,186,78,187,78,63,81,101,81,107,81,134,46,130,81,150,81,171,81,224,81,135,46,245,81,0,82,1,82,136,46,2,82,155,82,249,82,21,83,26,83,56,83,65,83,138,46,92,83,105,83,130,83,182,83,128,46,200,83,220,93,160,139,207,46,214,46,34,48,36,48,38,48,60,0,39,0,208,253,3,40,39,0,60,0,42,0,7,78,8,78,9,78,10,78,11,78,12,78,144,78,68,83,42,78,43,78,4,52,56,78,73,78,69,78,70,78,71,78,72,78,74,78,94,78,95,78,96,78,135,78,141,78,142,78,143,78,161,78,188,78,189,78,190,78,191,78,64,216,164,221,64,81,102,81,225,81,226,81,227,81,3,82,4,82,156,82,250,82,66,83,67,83,106,83,107,83,62,53,201,83,227,83,215,86,31,87,235,88,2,89,10,89,21,89,39,89,40,89,115,89,80,91,81,91,82,91,83,91,128,91,248,91,140,46,141,46,15,92,34,92,70,216,193,223,70,216,194,223,56,92,110,92,113,92,219,93,221,93,229,93,241,93,242,93,243,93,254,93,114,94,97,78,122,94,127,94,244,94,254,94,11,95,19,95,80,95,149,46,81,95,97,95,115,95,196,95,76,98,77,98,53,108,173,114,159,126,190,46,121,130,204,46,232,149,29,150,222,152,99,153,108,154,5,48,35,48,39,48,60,0,39,0,208,253,4,40,39,0,60,0,42,0,13,78,14,78,15,78,16,78,17,78,18,78,19,78,45,78,46,78,47,78,48,78,57,78,58,78,75,78,76,78,57,92,99,78,100,78,101,78,102,78,136,78,145,78,146,78,147,78,148,78,149,78,150,78,162,78,163,78,192,78,193,78,194,78,195,78,196,78,197,78,198,78,199,78,200,78,201,78,202,78,203,78,204,78,205,78,206,78,207,78,208,78,209,78,210,78,211,78,65,81,66,81,67,81,103,81,108,81,109,81,110,81,111,81,131,81,132,81,133,81,134,81,135,81,136,81,151,81,152,81,193,52,228,81,65,216,48,222,246,81,65,216,118,222,5,82,6,82,7,82,8,82,157,82,158,82,251,82,252,82,253,82,254,82,255,82,0,83,1,83,2,83,22,83,43,53,57,83,58,83,69,83,70,83,71,83,72,83,57,53,93,83,94,83,108,83,131,83,132,83,133,83,134,83,183,83,184,83,185,83,202,83,203,83,204,83,205,83,206,83,32,87,33,87,68,216,60,222,236,88,3,89,41,89,42,89,43,89,44,89,45,89,84,91,16,92,17,92,35,92,36,92,58,92,111,92,98,78,114,92,244,93,60,0,42,0,255,93,0,94,1,94,123,94,255,94,0,95,12,95,20,95,21,95,22,95,73,216,188,220,195,95,198,95,8,98,54,98,55,98,56,98,75,98,78,98,74,216,102,222,47,101,52,101,53,101,135,101,151,101,164,101,185,101,224,101,225,101,156,46,229,101,240,102,157,46,8,103,40,103,41,103,76,216,180,223,32,107,98,107,176,159,121,107,179,107,203,107,204,107,212,107,219,107,15,108,20,108,52,108,107,112,108,112,42,114,165,46,43,114,54,114,59,114,44,78,63,114,71,114,89,114,38,62,167,46,91,114,92,114,172,114,139,115,82,216,233,220,59,121,85,216,5,222,83,127,2,128,128,128,188,46,93,216,7,222,193,137,161,139,162,139,163,139,164,139,165,139,29,141,102,143,205,46,182,143,233,149,230,151,206,152,40,48,41,48,60,0,39,0,208,253,5,40,39,0,60,0,42,0,23,78,20,78,21,78,22,78,24,78,25,78,26,78,27,78,28,78,29,78,0,52,49,78,59,78,60,78,77,78,78,78,79,78,80,78,64,216,148,220,103,78,151,78,212,78,213,78,214,78,215,78,216,78,217,78,218,78,219,78,220,78,221,78,222,78,223,78,224,78,225,78,226,78,227,78,228,78,229,78,230,78,231,78,232,78,233,78,234,78,235,78,236,78,237,78,48,52,49,52,50,52,51,52,52,52,53,52,54,52,55,52,64,216,169,221,64,216,171,221,68,81,69,81,176,52,112,81,137,81,138,81,139,81,140,81,65,216,71,221,153,81,154,81,172,81,173,81,174,81,175,81,229,81,230,81,231,81,247,81,248,81,249,81,250,81,251,81,9,82,10,82,11,82,12,82,13,82,159,82,160,82,161,82,162,82,3,83,4,83,5,83,6,83,7,83,23,83,27,83,28,83,29,83,30,83,73,83,74,83,76,83,95,83,96,83,97,83,98,83,109,83,110,83,111,83,66,216,17,222,135,83,136,83,137,83,186,83,187,83,188,83,207,83,208,83,209,83,228,83,229,83,230,83,231,83,232,83,233,83,234,83,235,83,236,83,60,0,42,0,237,83,238,83,239,83,240,83,241,83,242,83,243,83,244,83,245,83,246,83,247,83,248,83,249,83,250,83,251,83,252,83,253,83,254,83,66,216,159,223,66,216,168,223,66,216,169,223,216,86,217,86,218,86,219,86,220,86,177,159,34,87,35,87,36,87,37,87,38,87,39,87,38,54,237,88,4,89,22,89,23,89,24,89,46,89,47,89,48,89,49,89,50,89,51,89,52,89,116,89,117,89,118,89,85,91,129,91,130,91,131,91,132,91,249,91,18,92,19,92,20,92,21,92,59,92,60,92,115,92,116,92,117,92,118,92,119,92,230,93,231,93,232,93,2,94,3,94,4,94,5,94,50,56,51,56,115,94,124,94,128,94,129,94,130,94,131,94,1,95,13,95,23,95,24,95,82,95,212,56,197,95,250,56,199,95,201,95,202,95,73,216,175,221,9,98,10,98,11,98,57,98,80,98,81,98,82,98,83,98,84,98,85,98,86,98,79,98,165,101,230,101,231,101,76,216,61,221,241,102,42,103,43,103,44,103,45,103,46,103,47,103,48,103,99,107,122,107,205,107,16,108,17,108,21,108,58,108,54,108,55,108,56,108,57,108,60,0,42,0,59,108,62,108,63,108,64,108,65,108,67,108,68,108,69,108,71,108,72,108,73,108,109,112,174,114,175,114,176,114,132,115,137,115,138,115,140,115,141,115,220,116,230,116,24,117,31,117,40,117,41,117,48,117,49,117,50,117,51,117,52,117,53,117,139,117,83,216,19,221,170,46,146,117,118,118,125,118,174,118,191,118,238,118,219,119,226,119,243,119,58,121,172,46,184,121,190,121,116,122,203,122,160,126,82,127,88,216,106,222,88,216,107,222,89,216,18,222,138,128,122,130,100,136,166,139,167,139,168,139,169,139,170,139,171,139,172,139,173,139,174,139,175,139,176,139,177,139,103,143,183,143,146,144,147,144,133,148,127,149,234,149,30,150,31,150,100,153,101,153,109,154,31,158,153,159,60,0,39,0,208,253,6,40,39,0,60,0,42,0,30,78,31,78,32,78,33,78,34,78,1,52,81,78,82,78,83,78,84,78,104,78,105,78,106,78,107,78,108,78,109,78,110,78,111,78,112,78,137,78,152,78,153,78,154,78,164,78,165,78,166,78,167,78,43,52,238,78,239,78,240,78,241,78,242,78,243,78,244,78,245,78,246,78,247,78,248,78,249,78,250,78,251,78,252,78,253,78,254,78,255,78,0,79,1,79,2,79,3,79,4,79,5,79,6,79,7,79,8,79,9,79,10,79,11,79,12,79,13,79,14,79,15,79,16,79,17,79,18,79,19,79,20,79,21,79,22,79,23,79,24,79,25,79,26,79,27,79,28,79,29,79,30,79,31,79,32,79,33,79,34,79,35,79,36,79,37,79,38,79,39,79,40,79,41,79,42,79,43,79,44,79,100,79,56,52,57,52,59,52,63,52,64,52,64,216,193,221,64,216,212,221,70,81,71,81,72,81,73,81,74,81,104,81,61,108,113,81,114,81,115,81,116,81,141,81,142,81,155,81,156,81,176,81,177,81,178,81,179,81,180,81,65,216,179,221,232,81,233,81,234,81,235,81,252,81,14,82,15,82,16,82,60,0,42,0,17,82,18,82,19,82,20,82,21,82,22,82,23,82,24,82,25,82,26,82,27,82,163,82,164,82,165,82,166,82,167,82,168,82,8,83,31,83,32,83,33,83,34,83,75,83,77,83,78,83,79,83,80,83,59,53,112,83,113,83,138,83,139,83,140,83,141,83,66,53,189,83,190,83,210,83,255,83,0,84,1,84,2,84,3,84,4,84,5,84,6,84,7,84,8,84,9,84,10,84,11,84,12,84,13,84,14,84,15,84,16,84,17,84,18,84,19,84,20,84,21,84,22,84,23,84,102,53,66,216,191,223,66,216,198,223,221,86,222,86,223,86,224,86,225,86,226,86,227,86,40,87,41,87,42,87,43,87,44,87,45,87,46,87,47,87,48,87,49,87,50,87,51,87,52,87,53,87,54,87,55,87,56,87,57,87,58,87,68,216,79,222,238,88,5,89,25,89,26,89,27,89,53,89,54,89,55,89,56,89,57,89,58,89,59,89,60,89,119,89,120,89,121,89,122,89,123,89,124,89,125,89,126,89,127,89,128,89,129,89,130,89,131,89,132,89,133,89,134,89,135,89,136,89,165,54,69,216,184,222,69,216,186,222,86,91,60,0,42,0,87,91,88,91,89,91,70,216,68,221,133,91,134,91,135,91,136,91,137,91,250,91,251,91,252,91,22,92,23,92,24,92,37,92,38,92,39,92,61,92,71,216,42,220,112,92,120,92,121,92,122,92,123,92,124,92,125,92,126,92,127,92,128,92,129,92,130,92,131,92,71,216,70,221,222,93,223,93,233,93,234,93,6,94,7,94,8,94,52,56,53,56,54,56,116,94,117,94,118,94,132,94,133,94,134,94,245,94,2,95,14,95,15,95,16,95,25,95,26,95,27,95,28,95,83,95,116,95,117,95,73,216,193,220,200,95,203,95,207,95,211,95,212,95,213,95,214,95,217,95,218,95,219,95,73,216,190,221,12,98,13,98,14,98,15,98,16,98,87,98,88,98,89,98,90,98,91,98,92,98,93,98,94,98,96,98,97,98,98,98,99,98,100,98,101,98,102,98,103,98,104,98,105,98,106,98,107,98,108,98,95,98,48,101,54,101,55,101,232,101,233,101,234,101,235,101,236,101,237,101,238,101,239,101,242,102,243,102,48,59,9,103,49,103,50,103,51,103,52,103,53,103,54,103,55,103,56,103,57,103,58,103,59,103,60,103,60,0,42,0,61,103,62,103,63,103,64,103,65,103,66,103,67,103,65,59,33,107,34,107,100,107,123,107,206,107,213,107,18,108,22,108,23,108,24,108,60,108,70,108,74,108,75,108,76,108,77,108,78,108,79,108,80,108,81,108,82,108,83,108,84,108,85,108,87,108,88,108,89,108,90,108,91,108,92,108,93,108,95,108,96,108,97,108,98,108,99,108,100,108,119,108,110,112,111,112,112,112,113,112,114,112,115,112,55,114,93,114,94,114,95,114,177,114,178,114,179,114,180,114,181,114,183,114,184,114,81,216,37,223,142,115,143,115,144,115,145,115,168,62,169,62,170,62,42,117,54,117,126,118,127,118,174,46,60,121,117,122,249,122,115,124,248,124,249,124,161,126,162,126,163,126,164,126,165,126,166,126,167,126,168,126,169,126,170,126,171,126,54,127,81,127,138,127,88,216,75,223,182,46,88,216,76,223,189,127,1,128,3,128,12,128,18,128,51,128,127,128,137,128,139,128,140,128,141,128,142,128,227,129,234,129,243,129,252,129,90,216,81,221,12,130,27,130,31,130,110,130,114,130,120,130,145,68,123,130,124,130,125,130,126,130,127,130,60,0,42,0,128,130,129,130,130,130,77,134,107,134,64,136,76,136,99,136,126,137,127,137,128,137,194,137,178,139,179,139,180,139,181,139,182,139,183,139,184,139,185,139,186,139,187,139,188,139,189,139,190,139,191,139,192,139,30,141,31,141,32,141,113,141,104,143,184,143,185,143,186,143,187,143,188,143,189,143,36,250,148,144,150,144,151,144,152,144,153,144,154,144,155,144,156,144,157,144,134,148,135,148,235,149,236,149,237,149,238,149,239,149,32,150,33,150,34,150,35,150,36,150,117,152,102,153,103,153,110,154,111,154,112,154,80,159,60,0,39,0,208,253,7,40,39,0,60,0,42,0,35,78,36,78,37,78,61,78,64,216,33,220,50,78,64,216,104,220,85,78,113,78,114,78,138,78,64,216,24,221,156,78,168,78,169,78,170,78,45,79,46,79,47,79,48,79,49,79,50,79,51,79,52,79,53,79,54,79,55,79,56,79,57,79,58,79,59,79,60,79,61,79,62,79,63,79,64,79,65,79,66,79,67,79,68,79,69,79,70,79,71,79,72,79,73,79,74,79,75,79,77,79,78,79,79,79,80,79,81,79,82,79,83,79,84,79,85,79,86,79,87,79,88,79,89,79,90,79,91,79,92,79,93,79,94,79,95,79,96,79,97,79,98,79,99,79,101,79,102,79,103,79,104,79,70,52,64,216,242,221,75,81,76,81,77,81,78,81,79,81,80,81,81,81,179,52,117,81,143,81,157,81,181,81,182,81,183,81,184,81,185,81,186,81,187,81,200,52,236,81,28,82,29,82,30,82,31,82,32,82,33,82,34,82,35,82,36,82,37,82,38,82,39,82,40,82,41,82,42,82,43,82,44,82,45,82,223,52,169,82,170,82,171,82,172,82,173,82,174,82,175,82,176,82,177,82,178,82,179,82,180,82,9,83,60,0,42,0,66,216,213,220,35,83,36,83,37,83,48,53,59,83,55,53,99,83,100,83,114,83,115,83,116,83,117,83,142,83,143,83,144,83,145,83,191,83,211,83,24,84,25,84,26,84,27,84,28,84,29,84,30,84,31,84,32,84,33,84,34,84,35,84,36,84,37,84,38,84,39,84,40,84,41,84,42,84,43,84,44,84,45,84,46,84,47,84,48,84,49,84,50,84,51,84,52,84,53,84,54,84,55,84,56,84,57,84,58,84,59,84,60,84,61,84,62,84,63,84,64,84,65,84,66,84,67,84,68,84,69,84,70,84,71,84,72,84,73,84,74,84,75,84,76,84,77,84,78,84,79,84,80,84,81,84,82,84,83,84,84,84,85,84,86,84,87,84,88,84,89,84,90,84,91,84,92,84,109,53,112,53,114,53,66,216,203,223,66,216,226,223,66,216,235,223,66,216,251,223,66,216,255,223,228,86,229,86,230,86,231,86,232,86,233,86,234,86,235,86,236,86,237,86,238,86,239,86,240,86,241,86,242,86,243,86,244,86,245,86,59,87,60,87,61,87,62,87,63,87,64,87,65,87,66,87,67,87,68,87,69,87,70,87,71,87,72,87,60,0,42,0,73,87,74,87,75,87,76,87,77,87,78,87,79,87,80,87,81,87,82,87,83,87,84,87,85,87,86,87,87,87,88,87,89,87,90,87,91,87,92,87,93,87,94,87,95,87,96,87,41,54,43,54,45,54,46,54,48,54,68,216,124,222,239,88,240,88,241,88,242,88,243,88,6,89,11,89,61,89,62,89,63,89,64,89,65,89,66,89,137,89,138,89,139,89,140,89,142,89,143,89,144,89,145,89,146,89,147,89,148,89,149,89,150,89,151,89,152,89,153,89,154,89,155,89,156,89,157,89,158,89,159,89,160,89,161,89,162,89,163,89,164,89,165,89,166,89,167,89,168,89,169,89,170,89,171,89,170,54,172,54,69,216,192,222,69,216,193,222,69,216,194,222,69,216,211,222,69,216,213,222,90,91,91,91,92,91,93,91,94,91,138,91,139,91,140,91,141,91,142,91,143,91,144,91,145,91,146,91,253,91,254,91,255,91,40,92,41,92,42,92,43,92,44,92,62,92,63,92,64,92,65,92,66,92,67,92,132,92,133,92,134,92,135,92,136,92,137,92,138,92,139,92,140,92,142,92,143,92,144,92,145,92,146,92,147,92,148,92,60,0,42,0,149,92,150,92,151,92,152,92,153,92,154,92,155,92,156,92,71,216,83,221,71,216,94,221,141,92,224,93,235,93,245,93,9,94,10,94,11,94,12,94,13,94,14,94,15,94,16,94,55,56,56,56,57,56,59,56,135,94,136,94,137,94,138,94,139,94,140,94,141,94,142,94,143,94,144,94,145,94,146,94,147,94,148,94,247,94,3,95,4,95,5,95,29,95,30,95,31,95,32,95,72,216,189,223,98,95,99,95,100,95,118,95,119,95,120,95,121,95,122,95,123,95,200,159,201,159,73,216,201,220,73,216,204,220,204,95,205,95,206,95,208,95,209,95,210,95,215,95,216,95,220,95,0,57,223,95,225,95,227,95,228,95,230,95,231,95,232,95,234,95,235,95,236,95,237,95,238,95,239,95,240,95,241,95,242,95,243,95,244,95,246,95,247,95,248,95,249,95,250,95,251,95,252,95,254,95,0,96,3,96,4,96,5,96,6,96,8,57,17,98,18,98,19,98,74,216,147,221,58,98,59,98,60,98,109,98,110,98,111,98,112,98,113,98,114,98,115,98,116,98,117,98,118,98,119,98,121,98,122,98,123,98,124,98,125,98,126,98,60,0,42,0,128,98,129,98,130,98,131,98,132,98,133,98,134,98,135,98,136,98,137,98,138,98,139,98,140,98,141,98,142,98,143,98,144,98,145,98,146,98,147,98,148,98,149,98,150,98,151,98,152,98,153,98,154,98,155,98,156,98,157,98,158,98,159,98,160,98,161,98,162,98,163,98,164,98,165,98,209,57,120,98,56,101,57,101,58,101,59,101,60,101,75,216,239,222,136,101,152,101,240,101,241,101,242,101,243,101,244,101,245,101,246,101,247,101,248,101,244,102,245,102,68,103,69,103,70,103,71,103,72,103,73,103,74,103,75,103,76,103,77,103,78,103,79,103,80,103,81,103,82,103,83,103,84,103,85,103,86,103,87,103,88,103,89,103,90,103,91,103,92,103,93,103,94,103,95,103,96,103,97,103,98,103,99,103,100,103,101,103,102,103,103,103,104,103,105,103,129,103,66,59,67,59,68,59,69,59,70,59,76,216,204,223,36,107,101,107,80,60,124,107,78,216,194,221,207,107,208,107,78,216,238,222,220,107,221,107,25,108,26,108,66,108,86,108,94,108,101,108,102,108,103,108,104,108,105,108,106,108,107,108,109,108,110,108,60,0,42,0,111,108,112,108,113,108,114,108,115,108,116,108,117,108,118,108,120,108,121,108,122,108,123,108,124,108,125,108,126,108,127,108,129,108,130,108,131,108,132,108,133,108,134,108,135,108,136,108,137,108,139,108,140,108,141,108,142,108,143,108,144,108,145,108,146,108,148,108,149,108,150,108,152,108,153,108,154,108,155,108,156,108,158,108,159,108,160,108,161,108,162,108,163,108,164,108,165,108,166,108,167,108,168,108,169,108,170,108,79,216,153,220,79,216,154,220,79,216,155,220,116,112,117,112,118,112,119,112,120,112,121,112,122,112,123,112,124,112,125,112,126,112,127,112,128,112,165,61,96,114,97,114,98,114,99,114,100,114,81,216,24,222,182,114,185,114,186,114,187,114,188,114,189,114,190,114,191,114,193,114,194,114,195,114,196,114,197,114,198,114,199,114,200,114,81,216,47,223,146,115,147,115,148,115,149,115,150,115,151,115,152,115,153,115,154,115,155,115,173,62,82,216,240,220,82,216,241,220,82,216,242,220,82,216,243,220,231,116,43,117,44,117,55,117,56,117,57,117,58,117,60,117,85,63,147,117,148,117,149,117,150,117,151,117,128,118,129,118,130,118,131,118,192,118,60,0,42,0,193,118,239,118,227,119,244,119,245,119,246,119,85,216,25,220,61,121,191,121,192,121,193,121,194,121,195,121,38,65,118,122,119,122,204,122,205,122,250,124,251,124,182,126,172,126,173,126,174,126,175,126,176,126,177,126,178,126,179,126,180,126,181,126,183,126,184,126,185,126,186,126,187,126,188,126,189,126,190,126,85,127,52,128,144,128,145,128,146,128,147,128,148,128,149,128,150,128,151,128,152,128,153,128,154,128,155,128,156,128,157,128,158,128,159,128,160,128,235,129,111,130,131,130,132,130,133,130,134,130,135,130,136,130,137,130,138,130,139,130,140,130,141,130,142,130,143,130,144,130,145,130,146,130,147,130,149,130,150,130,151,130,90,216,5,223,90,216,10,223,108,134,93,216,12,222,139,137,195,137,210,137,198,46,94,216,178,220,0,138,1,138,193,139,194,139,195,139,196,139,197,139,198,139,199,139,200,139,201,139,202,139,203,139,204,139,205,139,206,139,207,139,208,139,209,139,210,139,55,140,70,140,85,140,120,140,157,140,33,141,34,141,100,141,112,141,179,141,202,46,171,142,202,142,105,143,106,143,107,143,155,143,176,143,181,143,60,0,42,0,225,93,190,143,191,143,192,143,193,143,194,143,195,143,196,143,197,143,198,143,199,143,200,143,201,143,97,216,104,220,97,216,108,220,97,216,115,220,145,144,158,144,159,144,160,144,161,144,162,144,163,144,164,144,165,144,166,144,167,144,168,144,169,144,170,144,172,144,97,216,170,222,97,216,171,222,73,145,198,145,204,145,136,148,137,148,138,148,139,148,140,148,240,149,241,149,242,149,243,149,244,149,245,149,246,149,247,149,37,150,38,150,39,150,40,150,41,150,42,150,43,150,44,150,45,150,46,150,47,150,48,150,49,150,50,150,51,150,52,150,53,150,54,150,99,216,54,222,99,216,57,222,231,151,207,152,104,153,105,153,106,153,107,153,108,153,109,153,110,153,113,154,114,154,115,154,116,154,32,158,33,158,166,158,159,159,60,0,39,0,208,253,8,40,39,0,60,0,42,0,38,78,39,78,51,78,86,78,115,78,116,78,117,78,118,78,119,78,120,78,64,216,238,220,139,78,155,78,157,78,158,78,159,78,171,78,172,78,45,52,76,79,105,79,106,79,107,79,108,79,109,79,110,79,111,79,112,79,113,79,114,79,115,79,116,79,117,79,118,79,119,79,120,79,121,79,122,79,123,79,124,79,125,79,126,79,127,79,128,79,129,79,130,79,131,79,132,79,133,79,134,79,135,79,136,79,137,79,138,79,139,79,140,79,141,79,142,79,143,79,144,79,145,79,146,79,147,79,148,79,149,79,150,79,151,79,152,79,153,79,154,79,155,79,156,79,157,79,158,79,159,79,160,79,161,79,162,79,163,79,164,79,165,79,166,79,167,79,168,79,169,79,170,79,171,79,172,79,173,79,199,159,74,52,76,52,80,52,64,216,4,222,64,216,12,222,64,216,20,222,82,81,83,81,84,81,85,81,86,81,65,216,135,220,105,81,118,81,119,81,120,81,144,81,158,81,188,81,189,81,190,81,191,81,192,81,65,216,195,221,237,81,238,81,239,81,253,81,46,82,47,82,48,82,49,82,50,82,51,82,52,82,53,82,54,82,55,82,60,0,42,0,56,82,57,82,58,82,59,82,60,82,61,82,62,82,63,82,64,82,65,82,66,82,228,52,230,52,65,216,14,223,70,82,181,82,182,82,183,82,184,82,185,82,186,82,187,82,188,82,189,82,190,82,191,82,26,53,198,82,10,83,11,83,12,83,66,216,22,221,38,83,60,83,81,83,82,83,83,83,84,83,85,83,86,83,101,83,102,83,103,83,66,216,231,221,118,83,119,83,120,83,121,83,122,83,146,83,147,83,148,83,149,83,66,216,80,222,192,83,193,83,194,83,212,83,213,83,214,83,215,83,216,83,93,84,94,84,95,84,96,84,97,84,98,84,99,84,100,84,101,84,102,84,103,84,104,84,105,84,106,84,107,84,108,84,109,84,110,84,111,84,113,84,115,84,116,84,117,84,118,84,119,84,120,84,121,84,122,84,123,84,124,84,125,84,126,84,127,84,128,84,129,84,130,84,131,84,132,84,133,84,134,84,135,84,136,84,137,84,138,84,139,84,140,84,141,84,142,84,143,84,144,84,145,84,146,84,147,84,148,84,149,84,150,84,151,84,152,84,153,84,154,84,155,84,156,84,157,84,119,53,120,53,67,216,11,220,60,0,42,0,67,216,13,220,67,216,32,220,67,216,52,220,67,216,58,220,67,216,59,220,67,216,65,220,67,216,66,220,67,216,67,220,246,86,247,86,248,86,249,86,250,86,251,86,252,86,253,86,254,86,32,54,97,87,98,87,99,87,100,87,101,87,102,87,103,87,104,87,105,87,106,87,107,87,108,87,109,87,110,87,111,87,112,87,113,87,114,87,115,87,116,87,117,87,118,87,119,87,120,87,121,87,122,87,123,87,124,87,125,87,126,87,127,87,128,87,129,87,130,87,131,87,132,87,133,87,134,87,135,87,136,87,137,87,138,87,49,54,50,54,51,54,52,54,53,54,68,216,168,222,68,216,169,222,68,216,176,222,7,89,12,89,28,89,29,89,67,89,68,89,69,89,70,89,71,89,72,89,73,89,75,89,76,89,77,89,84,89,69,216,10,222,172,89,173,89,174,89,175,89,176,89,177,89,178,89,179,89,180,89,181,89,182,89,183,89,184,89,185,89,186,89,187,89,188,89,189,89,190,89,191,89,192,89,193,89,194,89,195,89,196,89,197,89,198,89,199,89,200,89,201,89,202,89,203,89,204,89,205,89,206,89,207,89,208,89,209,89,210,89,211,89,212,89,214,89,215,89,176,54,60,0,42,0,177,54,181,54,185,54,188,54,193,54,69,216,223,222,69,216,230,222,69,216,231,222,69,216,232,222,69,216,250,222,69,216,251,222,69,216,252,222,69,216,254,222,95,91,96,91,97,91,98,91,99,91,100,91,101,91,102,91,103,91,64,55,70,216,88,221,147,91,148,91,149,91,150,91,151,91,152,91,153,91,154,91,155,91,156,91,157,91,158,91,159,91,160,91,161,91,70,216,219,221,0,92,25,92,26,92,45,92,68,92,69,92,70,92,71,92,72,92,73,92,74,92,157,92,158,92,159,92,160,92,161,92,162,92,163,92,164,92,165,92,166,92,167,92,168,92,169,92,170,92,171,92,172,92,173,92,174,92,175,92,176,92,177,92,178,92,179,92,180,92,181,92,182,92,183,92,184,92,185,92,186,92,187,92,188,92,189,92,190,92,191,92,192,92,193,92,194,92,195,92,196,92,197,92,185,55,190,55,71,216,144,221,246,93,48,56,17,94,18,94,19,94,20,94,21,94,22,94,23,94,24,94,25,94,26,94,27,94,28,94,72,216,126,220,119,94,120,94,152,94,149,94,150,94,151,94,153,94,154,94,156,94,157,94,158,94,159,94,117,56,246,94,248,94,249,94,160,56,6,95,60,0,42,0,33,95,34,95,35,95,36,95,37,95,38,95,39,95,40,95,41,95,42,95,72,216,208,223,84,95,85,95,204,56,73,216,139,220,124,95,125,95,126,95,127,95,128,95,129,95,130,95,131,95,132,95,221,95,222,95,224,95,226,95,229,95,233,95,245,95,253,95,255,95,1,96,2,96,7,96,8,96,9,96,10,96,11,96,12,96,13,96,15,96,16,96,17,96,19,96,20,96,21,96,22,96,23,96,25,96,26,96,27,96,28,96,30,96,31,96,33,96,34,96,38,96,39,96,41,96,42,96,43,96,44,96,45,96,46,96,47,96,48,96,50,96,51,96,52,96,53,96,54,96,58,96,61,96,62,96,63,96,20,57,73,216,27,222,73,216,28,222,73,216,43,222,20,98,21,98,22,98,23,98,61,98,62,98,63,98,64,98,127,98,166,98,167,98,168,98,169,98,170,98,171,98,172,98,173,98,174,98,175,98,176,98,177,98,178,98,179,98,180,98,181,98,182,98,183,98,184,98,185,98,186,98,187,98,188,98,189,98,190,98,191,98,192,98,193,98,194,98,195,98,196,98,197,98,198,98,199,98,200,98,201,98,202,98,203,98,60,0,42,0,204,98,205,98,206,98,208,98,209,98,210,98,211,98,212,98,213,98,214,98,215,98,216,98,217,98,218,98,219,98,221,98,222,98,223,98,224,98,225,98,226,98,227,98,228,98,229,98,230,98,231,98,232,98,233,98,212,57,213,57,217,57,218,57,220,57,221,57,222,57,223,57,74,216,207,222,74,216,213,222,61,101,62,101,129,58,137,101,76,216,68,220,166,101,167,101,168,101,169,101,186,101,187,101,188,101,76,216,218,220,249,101,250,101,251,101,252,101,253,101,254,101,255,101,0,102,1,102,2,102,3,102,4,102,5,102,6,102,7,102,8,102,9,102,10,102,11,102,12,102,13,102,14,102,15,102,16,102,17,102,18,102,19,102,20,102,21,102,22,102,23,102,24,102,25,102,246,102,10,103,11,103,12,103,13,103,51,59,106,103,107,103,108,103,109,103,110,103,111,103,112,103,113,103,114,103,115,103,116,103,117,103,118,103,119,103,120,103,121,103,122,103,123,103,124,103,125,103,126,103,127,103,128,103,130,103,131,103,132,103,133,103,134,103,135,103,136,103,137,103,138,103,139,103,140,103,141,103,142,103,143,103,144,103,60,0,42,0,145,103,146,103,147,103,148,103,149,103,150,103,151,103,152,103,153,103,154,103,155,103,156,103,157,103,158,103,159,103,160,103,161,103,162,103,163,103,164,103,165,103,166,103,167,103,168,103,169,103,170,103,171,103,172,103,173,103,71,59,72,59,73,59,74,59,75,59,76,59,77,59,78,59,79,59,80,59,76,216,222,223,76,216,230,223,76,216,244,223,76,216,245,223,76,216,249,223,76,216,250,223,76,216,254,223,77,216,0,220,249,103,35,107,37,107,38,107,39,107,32,60,102,107,103,107,104,107,105,107,125,107,126,107,127,107,128,107,129,107,180,107,209,107,222,107,223,107,19,108,27,108,28,108,29,108,108,108,128,108,138,108,147,108,157,108,171,108,172,108,173,108,174,108,176,108,177,108,178,108,179,108,180,108,181,108,182,108,183,108,184,108,185,108,186,108,187,108,188,108,189,108,190,108,191,108,192,108,193,108,194,108,195,108,196,108,197,108,198,108,199,108,200,108,202,108,203,108,204,108,205,108,206,108,207,108,208,108,209,108,210,108,211,108,212,108,213,108,214,108,215,108,216,108,217,108,219,108,220,108,221,108,222,108,223,108,224,108,225,108,226,108,60,0,42,0,227,108,228,108,229,108,230,108,231,108,232,108,233,108,234,108,235,108,236,108,237,108,238,108,239,108,241,108,242,108,243,108,247,108,248,108,249,108,250,108,251,108,252,108,253,108,254,108,203,60,205,60,209,60,79,216,181,220,79,216,183,220,79,216,199,220,79,216,200,220,79,216,201,220,48,109,135,112,129,112,130,112,131,112,132,112,133,112,134,112,136,112,137,112,138,112,139,112,140,112,141,112,142,112,143,112,144,112,145,112,146,112,147,112,148,112,149,112,150,112,151,112,152,112,153,112,154,112,155,112,156,112,157,112,158,112,80,216,163,221,80,216,164,221,80,216,165,221,80,216,172,221,80,216,181,221,44,114,45,114,56,114,64,114,72,114,101,114,102,114,103,114,104,114,105,114,106,114,107,114,108,114,47,62,81,216,42,222,192,114,201,114,203,114,204,114,205,114,206,114,207,114,208,114,209,114,210,114,211,114,212,114,213,114,214,114,215,114,216,114,217,114,218,114,219,114,220,114,221,114,222,114,98,62,105,62,156,115,157,115,158,115,159,115,160,115,161,115,162,115,163,115,164,115,165,115,166,115,167,115,168,115,169,115,170,115,171,115,172,115,173,115,174,115,175,115,176,115,60,0,42,0,177,115,82,216,251,220,82,216,255,220,82,216,0,221,82,216,1,221,82,216,12,221,221,116,232,116,233,116,25,117,59,117,61,117,62,117,63,117,64,117,65,117,66,117,67,117,68,117,69,117,140,117,152,117,153,117,154,117,155,117,156,117,157,117,158,117,159,117,160,117,161,117,119,118,132,118,175,118,194,118,240,118,241,118,242,118,243,118,244,118,245,118,228,119,229,119,247,119,248,119,249,119,250,119,251,119,252,119,253,119,254,119,255,119,0,120,1,120,85,216,37,220,62,121,63,121,64,121,65,121,66,121,67,121,196,121,197,121,198,121,199,121,200,121,201,121,202,121,120,122,121,122,122,122,123,122,146,65,206,122,207,122,196,65,250,122,251,122,116,124,117,124,118,124,252,124,253,124,254,124,255,124,181,66,191,126,192,126,193,126,194,126,195,126,196,126,197,126,198,126,199,126,200,126,201,126,202,126,203,126,204,126,205,126,206,126,207,126,208,126,55,127,84,127,86,127,87,127,89,127,139,127,140,127,5,128,19,128,53,128,131,128,143,128,161,128,162,128,163,128,164,128,165,128,166,128,167,128,168,128,169,128,170,128,171,128,172,128,60,0,42,0,173,128,174,128,175,128,176,128,177,128,178,128,179,128,180,128,181,128,182,128,183,128,184,128,185,128,186,128,187,128,188,128,189,128,190,128,191,128,192,128,193,128,217,67,228,129,229,129,253,129,254,129,13,130,14,130,15,130,32,130,112,130,152,130,153,130,154,130,155,130,156,130,157,130,158,130,159,130,160,130,161,130,162,130,163,130,164,130,165,130,166,130,167,130,168,130,169,130,170,130,171,130,172,130,173,130,174,130,175,130,176,130,177,130,178,130,179,130,180,130,181,130,182,130,183,130,184,130,185,130,186,130,188,130,189,130,190,130,192,130,193,130,194,130,195,130,196,130,197,130,198,130,199,130,200,130,201,130,202,130,203,130,204,130,205,130,206,130,207,130,62,131,90,216,19,223,90,216,21,223,90,216,35,223,90,216,40,223,191,130,78,134,79,134,109,134,110,134,111,134,112,134,113,134,114,134,93,216,224,221,101,136,104,136,196,137,197,137,211,139,212,139,213,139,214,139,215,139,216,139,217,139,218,139,219,139,220,139,221,139,222,139,223,139,224,139,225,139,226,139,227,139,228,139,229,139,230,139,231,139,232,139,233,139,86,140,60,0,42,0,35,141,36,141,37,141,38,141,39,141,40,141,41,141,42,141,43,141,44,141,45,141,46,141,47,141,203,142,108,143,109,143,110,143,111,143,112,143,202,143,203,143,204,143,205,143,206,143,207,143,208,143,209,143,210,143,211,143,212,143,213,143,214,143,215,143,216,143,217,143,218,143,219,143,220,143,221,143,222,143,223,143,236,143,97,216,130,220,173,144,174,144,175,144,176,144,177,144,178,144,179,144,180,144,181,144,182,144,183,144,184,144,185,144,186,144,187,144,97,216,178,222,97,216,188,222,199,145,209,145,210,145,141,148,142,148,143,148,144,148,145,148,146,148,147,148,148,148,149,148,150,148,151,148,119,149,120,149,128,149,248,149,249,149,28,150,99,216,15,222,55,150,56,150,57,150,58,150,59,150,60,150,61,150,62,150,63,150,64,150,65,150,66,150,67,150,68,150,69,150,70,150,71,150,72,150,73,150,182,150,185,150,215,46,232,150,81,151,82,151,94,151,99,151,118,152,119,152,111,153,112,153,113,153,114,153,115,153,116,153,117,154,118,154,119,154,120,154,121,154,122,154,123,154,124,154,125,154,126,154,127,154,128,154,60,0,42,0,124,156,34,158,35,158,36,158,254,158,33,159,127,159,60,0,39,0,208,253,9,40,39,0,60,0,42,0,52,78,62,78,87,78,121,78,122,78,123,78,124,78,32,52,173,78,174,78,175,78,176,78,177,78,178,78,174,79,175,79,176,79,177,79,178,79,179,79,180,79,181,79,182,79,183,79,184,79,185,79,186,79,187,79,188,79,189,79,190,79,191,79,192,79,193,79,194,79,195,79,196,79,197,79,198,79,199,79,200,79,201,79,202,79,203,79,204,79,205,79,206,79,207,79,208,79,209,79,210,79,211,79,212,79,213,79,214,79,215,79,216,79,217,79,218,79,219,79,220,79,221,79,222,79,223,79,224,79,225,79,226,79,227,79,228,79,229,79,230,79,231,79,232,79,233,79,234,79,235,79,236,79,237,79,64,216,57,222,64,216,91,222,87,81,88,81,89,81,65,216,142,220,106,81,121,81,123,81,145,81,146,81,159,81,160,81,193,81,194,81,195,81,65,216,202,221,65,216,208,221,65,216,213,221,254,81,67,82,68,82,69,82,71,82,72,82,73,82,74,82,75,82,76,82,77,82,78,82,79,82,80,82,81,82,192,82,193,82,194,82,195,82,196,82,197,82,199,82,200,82,201,82,202,82,203,82,13,83,39,83,40,83,41,83,61,83,60,0,42,0,87,83,88,83,123,83,124,83,125,83,150,83,151,83,152,83,153,83,154,83,155,83,217,83,218,83,219,83,220,83,221,83,112,84,114,84,158,84,159,84,160,84,161,84,162,84,163,84,164,84,165,84,166,84,167,84,168,84,169,84,170,84,171,84,172,84,173,84,174,84,175,84,176,84,177,84,178,84,179,84,180,84,181,84,182,84,183,84,184,84,185,84,186,84,187,84,188,84,189,84,190,84,191,84,192,84,193,84,194,84,195,84,196,84,197,84,198,84,199,84,200,84,201,84,202,84,203,84,204,84,205,84,206,84,207,84,208,84,209,84,210,84,211,84,212,84,213,84,214,84,215,84,216,84,217,84,218,84,219,84,220,84,221,84,222,84,223,84,132,53,67,216,83,220,67,216,101,220,67,216,119,220,67,216,120,220,67,216,124,220,67,216,141,220,67,216,150,220,67,216,156,220,255,86,0,87,34,54,68,216,217,221,139,87,140,87,141,87,142,87,143,87,144,87,145,87,146,87,147,87,148,87,149,87,150,87,151,87,152,87,153,87,154,87,155,87,156,87,157,87,158,87,159,87,160,87,161,87,162,87,163,87,164,87,165,87,166,87,167,87,168,87,169,87,60,0,42,0,170,87,171,87,172,87,173,87,174,87,175,87,176,87,177,87,178,87,179,87,180,87,181,87,206,87,54,54,55,54,56,54,57,54,59,54,62,54,68,216,227,222,244,88,245,88,8,89,9,89,13,89,78,89,79,89,80,89,81,89,82,89,83,89,85,89,86,89,154,54,69,216,19,222,69,216,25,222,213,89,141,89,216,89,217,89,218,89,219,89,220,89,221,89,222,89,223,89,224,89,225,89,226,89,227,89,228,89,229,89,230,89,231,89,232,89,233,89,234,89,235,89,237,89,238,89,239,89,240,89,241,89,242,89,243,89,244,89,245,89,246,89,247,89,248,89,249,89,250,89,251,89,252,89,253,89,254,89,255,89,0,90,1,90,2,90,3,90,5,90,6,90,7,90,8,90,195,54,196,54,197,54,199,54,200,54,69,216,13,223,69,216,16,223,69,216,38,223,13,90,104,91,105,91,106,91,162,91,163,91,164,91,165,91,166,91,168,91,169,91,170,91,171,91,70,216,243,221,1,92,2,92,6,92,27,92,28,92,29,92,46,92,47,92,75,92,76,92,77,92,78,92,79,92,198,92,199,92,200,92,201,92,202,92,203,92,204,92,205,92,60,0,42,0,206,92,207,92,208,92,209,92,210,92,211,92,212,92,213,92,214,92,215,92,216,92,217,92,218,92,219,92,220,92,221,92,222,92,223,92,224,92,225,92,226,92,227,92,228,92,229,92,230,92,231,92,71,216,182,221,71,216,186,221,71,216,202,221,71,216,209,221,248,92,236,93,237,93,247,93,248,93,249,93,250,93,251,93,29,94,30,94,31,94,32,94,33,94,34,94,35,94,36,94,37,94,38,94,39,94,72,216,154,220,125,94,155,94,160,94,161,94,162,94,163,94,164,94,165,94,166,94,72,216,8,222,176,94,250,94,251,94,252,94,72,216,33,223,72,216,37,223,7,95,8,95,43,95,44,95,45,95,46,95,47,95,72,216,215,223,86,95,101,95,102,95,133,95,134,95,135,95,136,95,137,95,138,95,139,95,140,95,141,95,148,95,14,96,18,96,24,96,29,96,32,96,35,96,36,96,37,96,40,96,49,96,55,96,56,96,57,96,59,96,60,96,64,96,66,96,67,96,68,96,69,96,70,96,71,96,72,96,73,96,74,96,76,96,77,96,78,96,81,96,82,96,83,96,84,96,87,96,88,96,91,96,92,96,94,96,95,96,96,96,97,96,98,96,60,0,42,0,100,96,102,96,104,96,106,96,107,96,108,96,110,96,112,96,113,96,114,96,120,96,121,96,122,96,123,96,124,96,125,96,34,57,38,57,39,57,45,57,73,216,104,222,24,98,65,98,66,98,67,98,207,98,220,98,216,57,234,98,235,98,236,98,237,98,238,98,239,98,240,98,241,98,244,98,245,98,246,98,247,98,248,98,249,98,250,98,251,98,252,98,253,98,254,98,0,99,1,99,2,99,3,99,4,99,5,99,6,99,7,99,9,99,10,99,11,99,12,99,13,99,14,99,15,99,17,99,18,99,19,99,20,99,21,99,22,99,23,99,24,99,28,99,29,99,30,99,31,99,32,99,33,99,34,99,35,99,36,99,37,99,38,99,39,99,225,57,226,57,229,57,230,57,74,216,230,222,74,216,232,222,74,216,14,223,74,216,34,223,49,101,63,101,64,101,65,101,66,101,67,101,68,101,69,101,131,58,132,58,133,58,170,101,171,101,188,58,189,58,189,101,190,101,191,101,192,101,198,58,226,101,26,102,27,102,28,102,29,102,30,102,31,102,32,102,33,102,34,102,35,102,36,102,37,102,38,102,39,102,40,102,41,102,42,102,60,0,42,0,43,102,44,102,45,102,46,102,47,102,48,102,49,102,50,102,51,102,52,102,53,102,54,102,55,102,56,102,57,102,58,102,59,102,60,102,61,102,62,102,63,102,222,58,224,58,76,216,125,221,76,216,130,221,247,102,14,103,15,103,16,103,174,103,175,103,176,103,177,103,178,103,179,103,180,103,181,103,182,103,183,103,184,103,185,103,186,103,187,103,188,103,190,103,191,103,192,103,193,103,194,103,195,103,196,103,197,103,198,103,199,103,200,103,201,103,202,103,203,103,204,103,205,103,206,103,207,103,208,103,209,103,210,103,211,103,212,103,213,103,214,103,215,103,216,103,217,103,218,103,219,103,220,103,221,103,222,103,223,103,224,103,226,103,227,103,228,103,229,103,230,103,231,103,232,103,233,103,234,103,235,103,236,103,237,103,238,103,239,103,240,103,241,103,242,103,243,103,245,103,246,103,247,103,248,103,250,103,251,103,252,103,253,103,254,103,255,103,0,104,1,104,2,104,3,104,4,104,5,104,6,104,7,104,8,104,9,104,10,104,11,104,12,104,13,104,14,104,15,104,16,104,17,104,81,59,82,59,83,59,60,0,42,0,84,59,85,59,86,59,87,59,82,104,40,107,41,107,42,107,38,60,106,107,107,107,84,60,130,107,131,107,132,107,133,107,134,107,135,107,181,107,182,107,210,107,214,107,215,107,216,107,139,60,224,107,225,107,78,216,90,223,30,108,31,108,32,108,33,108,34,108,151,108,175,108,201,108,244,108,246,108,218,108,255,108,0,109,1,109,2,109,3,109,4,109,5,109,6,109,7,109,8,109,9,109,10,109,11,109,12,109,14,109,15,109,16,109,17,109,18,109,19,109,20,109,21,109,23,109,24,109,25,109,26,109,27,109,29,109,30,109,31,109,32,109,33,109,34,109,35,109,36,109,37,109,38,109,39,109,40,109,41,109,42,109,43,109,44,109,45,109,46,109,49,109,50,109,51,109,52,109,53,109,54,109,55,109,56,109,57,109,58,109,59,109,60,109,61,109,62,109,63,109,64,109,65,109,66,109,67,109,68,109,69,109,71,109,72,109,73,109,74,109,75,109,76,109,77,109,78,109,79,109,80,109,81,109,82,109,83,109,84,109,85,109,214,60,220,60,79,216,252,220,79,216,253,220,79,216,254,220,79,216,255,220,159,112,160,112,60,0,42,0,161,112,162,112,163,112,164,112,165,112,166,112,167,112,168,112,169,112,170,112,171,112,172,112,173,112,174,112,175,112,176,112,177,112,178,112,179,112,180,112,181,112,182,112,183,112,184,112,185,112,186,112,187,112,188,112,189,112,190,112,191,112,192,112,193,112,194,112,195,112,173,61,80,216,205,221,80,216,226,221,46,114,47,114,48,114,81,216,5,221,60,114,65,114,73,114,74,114,109,114,110,114,111,114,112,114,113,114,114,114,115,114,116,114,117,114,202,114,223,114,224,114,225,114,226,114,227,114,228,114,229,114,230,114,231,114,232,114,233,114,234,114,235,114,236,114,237,114,238,114,239,114,240,114,241,114,242,114,81,216,143,223,133,115,177,62,178,115,179,115,180,115,181,115,182,115,183,115,184,115,185,115,187,115,189,115,190,115,191,115,192,115,193,115,194,115,195,115,196,115,197,115,198,115,199,115,200,115,201,115,202,115,203,115,204,115,205,115,206,115,207,115,208,115,209,115,82,216,22,221,82,216,23,221,82,216,25,221,82,216,47,221,82,216,51,221,82,216,52,221,234,116,235,116,236,116,237,116,238,116,239,116,240,116,241,116,242,116,26,117,32,117,45,117,46,117,60,0,42,0,70,117,71,117,72,117,73,117,74,117,75,117,76,117,77,117,78,117,79,117,80,117,81,117,82,117,83,117,88,63,89,63,162,117,163,117,164,117,165,117,166,117,167,117,168,117,169,117,170,117,171,117,172,117,173,117,174,117,175,117,186,117,124,63,120,118,121,118,122,118,133,118,134,118,135,118,136,118,195,118,196,118,197,118,198,118,199,118,200,118,246,118,247,118,248,118,249,118,250,118,251,118,252,118,253,118,254,118,255,118,0,119,1,119,2,119,3,119,4,119,5,119,6,119,7,119,8,119,9,119,10,119,11,119,12,119,13,119,29,64,84,216,43,221,220,119,230,119,231,119,232,119,245,108,2,120,3,120,4,120,5,120,6,120,7,120,8,120,9,120,10,120,11,120,12,120,13,120,14,120,15,120,16,120,17,120,18,120,19,120,20,120,21,120,22,120,23,120,24,120,25,120,26,120,27,120,28,120,154,64,85,216,47,220,85,216,48,220,68,121,69,121,70,121,71,121,72,121,73,121,74,121,75,121,76,121,77,121,78,121,198,137,0,65,85,216,53,222,185,121,186,121,203,121,204,121,205,121,206,121,207,121,208,121,60,0,42,0,209,121,210,121,211,121,212,121,213,121,214,121,215,121,49,65,50,65,85,216,114,223,124,122,125,122,126,122,127,122,128,122,129,122,130,122,131,122,149,65,86,216,70,221,208,122,209,122,210,122,211,122,212,122,213,122,214,122,215,122,252,122,253,122,254,122,255,122,0,123,1,123,2,123,3,123,86,216,233,222,4,90,119,124,120,124,121,124,122,124,123,124,124,124,125,124,126,124,127,124,128,124,129,124,130,124,122,66,0,125,1,125,2,125,3,125,4,125,5,125,6,125,7,125,8,125,9,125,182,66,183,66,185,66,209,126,210,126,211,126,212,126,213,126,214,126,215,126,216,126,217,126,218,126,219,126,220,126,221,126,222,126,223,126,56,127,66,67,88,127,90,127,141,127,142,127,143,127,145,127,88,216,81,223,190,127,191,127,88,216,245,223,88,216,248,223,7,128,13,128,14,128,15,128,16,128,17,128,20,128,54,128,55,128,17,103,194,128,195,128,196,128,197,128,198,128,199,128,200,128,201,128,202,128,203,128,204,128,205,128,206,128,207,128,208,128,209,128,210,128,211,128,213,128,214,128,215,128,216,128,217,128,218,128,219,128,220,128,60,0,42,0,221,128,222,128,223,128,224,128,225,128,226,128,227,128,228,128,229,128,230,128,231,128,232,128,233,128,234,128,235,128,9,129,223,67,244,129,255,129,33,130,34,130,35,130,36,130,148,130,208,130,209,130,210,130,211,130,212,130,213,130,214,130,215,130,216,130,217,130,218,130,219,130,220,130,221,130,222,130,223,130,224,130,225,130,226,130,227,130,228,130,229,130,230,130,231,130,232,130,233,130,234,130,235,130,236,130,237,130,238,130,239,130,240,130,241,130,242,130,243,130,244,130,245,130,246,130,247,130,248,130,249,130,250,130,251,130,252,130,253,130,254,130,255,130,0,131,1,131,2,131,3,131,4,131,5,131,6,131,7,131,9,131,10,131,11,131,12,131,13,131,14,131,15,131,16,131,17,131,19,131,20,131,21,131,90,216,80,223,90,216,81,223,90,216,82,223,90,216,83,223,90,216,91,223,58,131,80,134,115,134,116,134,117,134,118,134,119,134,120,134,121,134,122,134,123,134,124,134,125,134,126,134,127,134,128,134,129,134,130,134,131,134,65,136,66,136,15,70,77,136,78,136,93,216,228,221,102,136,103,136,105,136,106,136,107,136,108,136,60,0,42,0,93,216,50,222,93,216,57,222,129,137,140,137,199,137,200,137,201,137,211,137,212,137,2,138,3,138,4,138,5,138,6,138,7,138,8,138,174,70,234,139,235,139,236,139,237,139,238,139,239,139,240,139,241,139,242,139,243,139,244,139,245,139,246,139,158,140,159,140,160,140,48,141,49,141,50,141,51,141,52,141,53,141,54,141,55,141,56,141,57,141,58,141,59,141,114,141,115,141,116,141,117,141,170,159,180,141,204,142,205,142,113,143,114,143,115,143,116,143,117,143,118,143,119,143,120,143,121,143,122,143,123,143,224,143,225,143,226,143,227,143,228,143,229,143,230,143,231,143,232,143,233,143,234,143,235,143,237,143,238,143,239,143,240,143,241,143,242,143,243,143,188,144,189,144,190,144,191,144,192,144,193,144,194,144,195,144,196,144,197,144,198,144,199,144,200,144,201,144,202,144,203,144,205,144,206,144,207,144,208,144,209,144,211,144,213,144,97,216,216,222,97,216,230,222,241,144,74,145,75,145,205,145,211,145,212,145,152,148,153,148,154,148,155,148,156,148,157,148,158,148,159,148,160,148,161,148,162,148,163,148,164,148,165,148,60,0,42,0,166,148,167,148,168,148,169,148,170,148,171,148,172,148,173,148,174,148,175,148,129,149,130,149,250,149,251,149,252,149,253,149,254,149,255,149,0,150,1,150,2,150,74,150,75,150,76,150,77,150,78,150,79,150,80,150,81,150,82,150,83,150,84,150,85,150,99,216,101,222,99,216,102,222,98,151,105,151,203,151,232,151,237,151,243,151,1,152,120,152,121,152,122,152,123,152,168,152,208,152,209,152,210,152,219,152,223,152,224,152,222,46,117,153,118,153,119,153,120,153,121,153,122,153,123,153,124,153,150,153,102,216,16,220,153,153,129,154,130,154,131,154,132,154,133,154,134,154,135,154,136,154,137,154,227,46,236,156,37,158,38,158,39,158,40,158,41,158,60,0,39,0,208,253,10,40,39,0,60,0,42,0,64,216,62,220,53,78,88,78,125,78,179,78,238,79,239,79,240,79,241,79,242,79,243,79,244,79,245,79,246,79,247,79,248,79,249,79,250,79,251,79,252,79,253,79,254,79,255,79,0,80,1,80,2,80,3,80,4,80,5,80,6,80,7,80,8,80,9,80,10,80,11,80,12,80,13,80,14,80,15,80,16,80,17,80,18,80,19,80,20,80,21,80,22,80,23,80,24,80,25,80,26,80,27,80,28,80,29,80,30,80,31,80,32,80,33,80,34,80,35,80,36,80,37,80,38,80,39,80,40,80,41,80,42,80,43,80,44,80,45,80,46,80,47,80,48,80,49,80,50,80,51,80,52,80,53,80,54,80,55,80,56,80,57,80,58,80,59,80,60,80,61,80,62,80,63,80,101,52,102,52,64,216,116,222,64,216,117,222,64,216,153,222,64,216,158,222,64,216,160,222,86,80,90,81,91,81,65,216,145,220,65,216,146,220,122,81,124,81,147,81,148,81,161,81,162,81,163,81,164,81,165,81,166,81,167,81,65,216,142,221,196,81,197,81,198,81,199,81,200,81,201,81,202,81,203,81,204,81,205,81,206,81,65,216,223,221,65,216,224,221,65,216,86,222,82,82,83,82,84,82,60,0,42,0,85,82,86,82,87,82,88,82,89,82,90,82,91,82,92,82,93,82,94,82,95,82,96,82,97,82,98,82,99,82,100,82,101,82,102,82,103,82,65,216,49,223,204,82,205,82,206,82,207,82,208,82,209,82,66,216,115,220,14,83,42,83,43,83,168,159,127,83,156,83,157,83,158,83,159,83,82,134,66,216,111,222,222,83,223,83,224,84,225,84,226,84,227,84,228,84,229,84,230,84,231,84,232,84,233,84,234,84,235,84,236,84,237,84,238,84,239,84,240,84,241,84,242,84,243,84,244,84,245,84,246,84,247,84,248,84,249,84,250,84,251,84,252,84,253,84,254,84,255,84,0,85,1,85,2,85,3,85,4,85,5,85,6,85,7,85,8,85,9,85,10,85,11,85,13,85,14,85,15,85,16,85,17,85,18,85,19,85,20,85,21,85,22,85,23,85,24,85,25,85,26,85,27,85,28,85,29,85,30,85,31,85,32,85,33,85,34,85,35,85,36,85,37,85,38,85,39,85,151,53,152,53,67,216,181,220,67,216,184,220,67,216,207,220,67,216,211,220,67,216,212,220,67,216,213,220,67,216,214,220,67,216,221,220,67,216,237,220,67,216,255,220,67,216,21,221,1,87,2,87,3,87,4,87,60,0,42,0,5,87,6,87,35,54,182,87,183,87,184,87,185,87,186,87,187,87,188,87,189,87,190,87,191,87,192,87,193,87,194,87,195,87,196,87,197,87,198,87,199,87,200,87,201,87,202,87,203,87,204,87,205,87,207,87,208,87,209,87,210,87,211,87,212,87,213,87,214,87,215,87,216,87,217,87,218,87,219,87,15,250,68,216,254,222,68,216,2,223,68,216,3,223,68,216,4,223,68,216,5,223,50,88,246,88,14,89,15,89,30,89,69,216,150,221,74,89,87,89,88,89,89,89,90,89,236,89,9,90,10,90,11,90,12,90,14,90,15,90,16,90,17,90,18,90,19,90,20,90,21,90,22,90,23,90,24,90,25,90,26,90,27,90,28,90,29,90,30,90,31,90,32,90,33,90,34,90,35,90,36,90,37,90,38,90,39,90,40,90,41,90,42,90,45,90,46,90,47,90,48,90,49,90,50,90,51,90,52,90,206,54,209,54,211,54,212,54,214,54,221,54,225,54,226,54,69,216,58,223,69,216,59,223,69,216,60,223,69,216,87,223,107,91,108,91,109,91,67,55,70,216,106,221,167,91,172,91,173,91,174,91,175,91,176,91,177,91,178,91,179,91,180,91,181,91,182,91,60,0,42,0,183,91,184,91,185,91,186,91,187,91,188,91,189,91,190,91,3,92,4,92,5,92,80,92,81,92,82,92,83,92,84,92,85,92,86,92,87,92,88,92,151,55,71,216,112,220,232,92,233,92,234,92,235,92,236,92,237,92,238,92,239,92,240,92,241,92,242,92,243,92,244,92,245,92,246,92,247,92,249,92,250,92,251,92,252,92,253,92,254,92,255,92,0,93,1,93,2,93,3,93,4,93,5,93,214,55,71,216,235,221,71,216,249,221,238,93,43,56,252,93,40,94,41,94,42,94,43,94,44,94,45,94,46,94,47,94,48,94,49,94,72,216,199,220,72,216,193,221,72,216,195,221,167,94,168,94,169,94,170,94,171,94,172,94,173,94,174,94,175,94,253,94,9,95,48,95,49,95,50,95,51,95,103,95,104,95,73,216,145,220,142,95,143,95,144,95,145,95,146,95,147,95,149,95,73,216,237,220,65,96,75,96,79,96,80,96,85,96,86,96,89,96,90,96,93,96,99,96,101,96,103,96,105,96,109,96,111,96,115,96,116,96,117,96,118,96,119,96,32,57,43,57,126,96,128,96,129,96,130,96,131,96,132,96,133,96,135,96,136,96,139,96,60,0,42,0,140,96,141,96,142,96,143,96,145,96,146,96,147,96,148,96,149,96,150,96,151,96,153,96,154,96,155,96,156,96,157,96,158,96,159,96,162,96,166,96,167,96,169,96,173,96,174,96,175,96,49,57,51,57,52,57,54,57,55,57,56,57,57,57,73,216,122,222,73,216,150,222,73,216,152,222,25,98,68,98,69,98,70,98,71,98,242,98,243,98,255,98,8,99,16,99,25,99,26,99,27,99,236,57,40,99,41,99,42,99,43,99,44,99,45,99,46,99,47,99,48,99,49,99,51,99,52,99,53,99,54,99,55,99,56,99,57,99,58,99,60,99,61,99,62,99,63,99,64,99,65,99,66,99,67,99,68,99,69,99,70,99,71,99,72,99,73,99,74,99,75,99,76,99,77,99,78,99,79,99,80,99,81,99,82,99,83,99,84,99,85,99,86,99,87,99,88,99,89,99,90,99,91,99,92,99,93,99,94,99,95,99,96,99,97,99,98,99,99,99,100,99,248,57,74,216,63,223,74,216,67,223,74,216,106,223,228,99,70,101,71,101,72,101,73,101,74,101,75,101,76,101,135,58,136,58,137,58,76,216,75,220,138,101,139,101,153,101,154,101,60,0,42,0,193,101,194,101,195,101,196,101,197,101,198,101,202,101,201,58,64,102,65,102,66,102,67,102,68,102,69,102,70,102,71,102,72,102,73,102,74,102,75,102,76,102,77,102,78,102,79,102,80,102,81,102,82,102,83,102,84,102,85,102,86,102,76,216,164,221,76,216,165,221,95,102,96,102,248,102,250,102,251,102,18,103,19,103,20,103,21,103,52,59,53,59,23,103,189,103,225,103,244,103,18,104,19,104,20,104,21,104,22,104,23,104,24,104,25,104,26,104,27,104,28,104,29,104,30,104,31,104,32,104,33,104,34,104,35,104,36,104,37,104,38,104,39,104,40,104,41,104,42,104,43,104,44,104,45,104,46,104,47,104,48,104,49,104,50,104,51,104,52,104,53,104,54,104,55,104,56,104,57,104,58,104,59,104,60,104,61,104,62,104,63,104,64,104,65,104,66,104,67,104,68,104,69,104,70,104,71,104,72,104,73,104,74,104,75,104,76,104,77,104,78,104,79,104,80,104,81,104,83,104,84,104,85,104,86,104,87,104,88,104,89,104,90,104,91,104,92,104,93,104,94,104,95,104,96,104,97,104,98,104,60,0,42,0,99,104,100,104,101,104,102,104,103,104,104,104,105,104,106,104,88,59,89,59,90,59,91,59,92,59,93,59,94,59,95,59,96,59,97,59,98,59,99,59,100,59,101,59,102,59,103,59,77,216,63,220,77,216,80,220,77,216,111,220,77,216,114,220,43,107,44,107,45,107,46,107,47,107,48,107,49,107,52,107,108,107,109,107,136,107,137,107,138,107,139,107,97,60,183,107,217,107,226,107,227,107,228,107,229,107,230,107,231,107,232,107,233,107,234,107,35,108,36,108,37,108,38,108,39,108,40,108,41,108,240,108,28,109,47,109,70,109,13,109,22,109,86,109,87,109,88,109,89,109,90,109,91,109,92,109,93,109,94,109,95,109,96,109,97,109,98,109,99,109,100,109,101,109,102,109,103,109,104,109,105,109,106,109,107,109,108,109,109,109,110,109,111,109,112,109,113,109,114,109,115,109,116,109,117,109,118,109,119,109,120,109,121,109,122,109,123,109,124,109,125,109,126,109,127,109,128,109,129,109,130,109,131,109,132,109,133,109,134,109,135,109,136,109,137,109,138,109,139,109,140,109,141,109,143,109,144,109,145,109,146,109,147,109,60,0,42,0,148,109,149,109,150,109,151,109,152,109,154,109,155,109,156,109,157,109,158,109,159,109,160,109,161,109,162,109,163,109,164,109,165,109,166,109,167,109,168,109,169,109,239,60,79,216,64,221,79,216,91,221,196,112,197,112,198,112,199,112,200,112,201,112,202,112,203,112,204,112,205,112,206,112,207,112,208,112,209,112,210,112,211,112,212,112,213,112,214,112,215,112,216,112,217,112,218,112,219,112,220,112,221,112,222,112,223,112,224,112,225,112,226,112,227,112,228,112,229,112,230,112,231,112,232,112,233,112,234,112,235,112,236,112,237,112,238,112,180,61,80,216,252,221,80,216,27,222,49,114,57,114,66,114,81,216,120,221,32,62,118,114,119,114,120,114,121,114,122,114,243,114,244,114,245,114,246,114,247,114,248,114,249,114,250,114,251,114,252,114,253,114,254,114,0,115,1,115,2,115,3,115,116,62,134,115,186,115,188,115,184,62,210,115,211,115,212,115,213,115,214,115,215,115,216,115,217,115,218,115,219,115,220,115,221,115,222,115,223,115,224,115,225,115,226,115,227,115,228,115,229,115,230,115,231,115,232,115,233,115,234,115,235,115,236,115,60,0,42,0,237,115,238,115,239,115,240,115,241,115,242,115,9,116,191,62,194,62,199,62,82,216,62,221,82,216,63,221,82,216,64,221,82,216,65,221,82,216,66,221,82,216,67,221,249,115,222,116,223,116,243,116,244,116,245,116,33,117,84,117,85,117,86,117,87,117,88,117,89,117,90,117,91,117,92,117,93,117,94,117,95,117,141,117,176,117,177,117,178,117,179,117,180,117,182,117,183,117,184,117,185,117,187,117,188,117,189,117,190,117,191,117,192,117,193,117,194,117,195,117,196,117,197,117,198,117,199,117,200,117,201,117,96,117,138,118,139,118,140,118,141,118,83,216,92,223,176,118,177,118,237,63,201,118,202,118,203,118,204,118,205,118,206,118,207,118,208,118,209,118,0,64,84,216,82,220,14,119,15,119,16,119,17,119,18,119,19,119,20,119,21,119,22,119,23,119,24,119,25,119,26,119,27,119,28,119,29,119,30,119,31,119,32,119,33,119,34,119,35,119,36,119,39,119,40,119,41,119,42,119,43,119,44,119,63,119,38,64,84,216,72,221,221,119,233,119,29,120,30,120,31,120,32,120,33,120,34,120,35,120,36,120,37,120,39,120,40,120,41,120,42,120,43,120,60,0,42,0,44,120,45,120,46,120,47,120,48,120,49,120,50,120,51,120,52,120,53,120,54,120,55,120,56,120,57,120,58,120,59,120,60,120,61,120,62,120,63,120,64,120,65,120,168,64,85,216,70,220,85,216,108,220,85,216,110,220,79,121,80,121,81,121,82,121,83,121,84,121,85,121,86,121,87,121,88,121,89,121,90,121,91,121,92,121,93,121,94,121,95,121,96,121,98,121,2,65,3,65,85,216,81,222,85,216,61,223,216,121,217,121,218,121,219,121,220,121,221,121,222,121,223,121,224,121,225,121,226,121,227,121,228,121,229,121,230,121,231,121,232,121,233,121,234,121,235,121,236,121,237,121,238,121,239,121,240,121,132,122,133,122,134,122,135,122,136,122,137,122,138,122,139,122,140,122,141,122,142,122,86,216,86,221,216,122,217,122,218,122,219,122,220,122,221,122,222,122,202,65,5,123,6,123,7,123,8,123,9,123,10,123,11,123,12,123,13,123,14,123,15,123,16,123,17,123,18,123,19,123,20,123,21,123,215,65,219,65,4,123,131,124,132,124,133,124,134,124,135,124,136,124,137,124,138,124,139,124,140,124,141,124,142,124,143,124,144,124,60,0,42,0,145,124,10,125,11,125,12,125,13,125,14,125,15,125,16,125,17,125,18,125,19,125,20,125,21,125,22,125,23,125,24,125,25,125,26,125,27,125,28,125,29,125,30,125,31,125,32,125,33,125,34,125,35,125,36,125,37,125,38,125,39,125,188,66,224,126,225,126,226,126,227,126,228,126,229,126,230,126,231,126,232,126,57,127,58,127,60,127,67,67,91,127,92,127,93,127,94,127,95,127,96,127,97,127,98,127,144,127,146,127,147,127,148,127,150,127,151,127,152,127,153,127,192,127,193,127,194,127,195,127,196,127,197,127,198,127,89,216,2,220,89,216,16,220,89,216,17,220,89,216,18,220,4,128,6,128,10,128,21,128,22,128,23,128,24,128,25,128,56,128,57,128,58,128,59,128,60,128,61,128,62,128,63,128,64,128,65,128,66,128,129,128,130,128,237,128,238,128,239,128,240,128,241,128,242,128,243,128,244,128,245,128,246,128,247,128,248,128,249,128,250,128,251,128,252,128,253,128,255,128,0,129,1,129,2,129,3,129,4,129,5,129,6,129,7,129,8,129,10,129,11,129,12,129,13,129,14,129,15,129,16,129,17,129,60,0,42,0,18,129,19,129,237,67,89,216,175,222,89,216,177,222,89,216,181,222,236,129,237,129,90,216,57,221,0,130,1,130,16,130,37,130,38,130,39,130,40,130,41,130,42,130,43,130,44,130,45,130,46,130,47,130,48,130,49,130,101,68,115,130,187,130,159,68,160,68,162,68,8,131,22,131,23,131,24,131,25,131,26,131,27,131,28,131,30,131,31,131,32,131,33,131,34,131,36,131,37,131,38,131,39,131,40,131,41,131,42,131,43,131,44,131,45,131,46,131,47,131,48,131,49,131,50,131,51,131,52,131,53,131,54,131,55,131,56,131,57,131,60,131,61,131,63,131,64,131,65,131,66,131,67,131,68,131,69,131,71,131,72,131,73,131,74,131,75,131,76,131,77,131,78,131,79,131,80,131,81,131,82,131,84,131,85,131,86,131,87,131,88,131,90,131,91,131,92,131,93,131,94,131,95,131,96,131,97,131,98,131,99,131,100,131,101,131,102,131,103,131,104,131,105,131,106,131,108,131,109,131,110,131,111,131,90,216,117,223,90,216,130,223,90,216,150,223,90,216,151,223,90,216,157,223,90,216,179,223,83,131,81,134,83,134,84,134,132,134,133,134,134,134,135,134,137,134,60,0,42,0,138,134,139,134,140,134,141,134,142,134,143,134,144,134,145,134,146,134,147,134,148,134,149,134,150,134,151,134,152,134,153,134,154,134,155,134,156,134,157,134,158,134,159,134,160,134,161,134,162,134,163,134,164,134,165,134,166,134,167,134,168,134,169,134,170,134,172,134,67,136,68,136,79,136,21,70,109,136,110,136,111,136,112,136,113,136,114,136,115,136,116,136,117,136,118,136,119,136,120,136,121,136,122,136,123,136,124,136,125,136,126,136,127,136,128,136,129,136,130,136,131,136,132,136,133,136,134,136,135,136,93,216,85,222,93,216,86,222,93,216,87,222,141,137,142,137,202,137,9,138,10,138,11,138,12,138,13,138,14,138,15,138,16,138,17,138,18,138,19,138,20,138,21,138,22,138,23,138,24,138,25,138,26,138,94,216,103,221,247,139,248,139,249,139,250,139,251,139,252,139,253,139,254,139,255,139,0,140,1,140,2,140,3,140,4,140,5,140,6,140,7,140,8,140,9,140,10,140,56,140,71,140,72,140,87,140,121,140,122,140,123,140,161,140,162,140,163,140,164,140,95,216,47,221,60,141,61,141,62,141,63,141,64,141,65,141,60,0,42,0,66,141,67,141,68,141,69,141,70,141,118,141,119,141,120,141,152,71,181,141,182,141,183,141,184,141,213,71,172,142,206,142,207,142,208,142,209,142,210,142,211,142,212,142,213,142,124,143,125,143,126,143,127,143,128,143,129,143,130,143,131,143,177,143,244,143,245,143,246,143,247,143,248,143,249,143,250,143,251,143,252,143,253,143,254,143,255,143,0,144,1,144,2,144,3,144,4,144,5,144,6,144,7,144,8,144,9,144,10,144,149,144,214,144,215,144,216,144,217,144,218,144,219,144,220,144,221,144,222,144,223,144,224,144,225,144,226,144,227,144,228,144,229,144,230,144,231,144,76,145,77,145,78,145,79,145,80,145,81,145,82,145,213,145,214,145,215,145,216,145,217,145,218,145,219,145,220,145,221,145,222,145,223,145,224,145,225,145,226,145,176,148,177,148,178,148,179,148,180,148,181,148,182,148,183,148,184,148,185,148,186,148,187,148,188,148,189,148,190,148,191,148,192,148,193,148,194,148,195,148,196,148,197,148,198,148,199,148,200,148,201,148,202,148,203,148,204,148,205,148,206,148,131,149,132,149,60,0,42,0,133,149,99,216,202,220,99,216,205,220,3,150,4,150,5,150,6,150,86,150,87,150,88,150,89,150,91,150,92,150,93,150,94,150,95,150,96,150,97,150,98,150,99,150,100,150,101,150,102,150,103,150,104,150,105,150,90,150,99,216,151,222,186,150,187,150,188,150,189,150,190,150,124,152,125,152,126,152,127,152,128,152,129,152,130,152,131,152,132,152,226,152,227,152,228,152,125,153,126,153,127,153,128,153,129,153,130,153,172,153,138,154,139,154,140,154,141,154,142,154,143,154,168,154,216,154,223,154,37,155,47,155,50,155,60,155,125,156,42,158,43,158,44,158,45,158,46,158,47,158,48,158,49,158,50,158,51,158,52,158,53,158,54,158,128,159,60,0,39,0,208,253,11,40,39,0,60,0,42,0,126,78,127,78,128,78,34,52,64,80,65,80,66,80,67,80,68,80,69,80,70,80,71,80,72,80,73,80,74,80,75,80,76,80,77,80,78,80,79,80,80,80,81,80,82,80,83,80,84,80,85,80,87,80,88,80,89,80,90,80,91,80,92,80,93,80,94,80,95,80,96,80,97,80,98,80,99,80,100,80,101,80,102,80,103,80,105,80,106,80,107,80,108,80,109,80,110,80,111,80,112,80,113,80,114,80,115,80,116,80,117,80,118,80,119,80,120,80,121,80,122,80,123,80,124,80,125,80,126,80,127,80,100,52,64,216,183,222,64,216,191,222,64,216,192,222,64,216,229,222,92,81,93,81,94,81,125,81,149,81,188,52,168,81,207,81,208,81,209,81,65,216,235,221,240,81,104,82,106,82,107,82,108,82,109,82,110,82,111,82,112,82,113,82,118,82,65,216,121,223,210,82,211,82,212,82,213,82,214,82,216,82,217,82,218,82,32,53,15,83,16,83,19,83,24,83,25,83,45,53,44,83,45,83,46,83,49,53,62,83,63,83,64,83,89,83,104,83,126,83,160,83,161,83,162,83,163,83,169,83,195,83,196,83,12,85,40,85,60,0,42,0,41,85,42,85,43,85,44,85,45,85,46,85,47,85,48,85,49,85,50,85,51,85,52,85,53,85,54,85,55,85,56,85,57,85,58,85,59,85,60,85,61,85,62,85,63,85,64,85,65,85,66,85,67,85,68,85,69,85,70,85,71,85,72,85,73,85,74,85,75,85,76,85,77,85,78,85,79,85,80,85,81,85,82,85,83,85,84,85,85,85,86,85,87,85,88,85,90,85,91,85,92,85,93,85,94,85,96,85,97,85,98,85,99,85,100,85,101,85,102,85,103,85,104,85,105,85,106,85,108,85,109,85,110,85,111,85,112,85,113,85,114,85,115,85,116,85,117,85,118,85,119,85,120,85,121,85,161,53,165,53,173,53,67,216,40,221,67,216,49,221,67,216,50,221,67,216,70,221,67,216,71,221,67,216,72,221,67,216,73,221,67,216,76,221,67,216,77,221,67,216,78,221,67,216,111,221,67,216,113,221,67,216,116,221,67,216,124,221,67,216,126,221,67,216,127,221,67,216,150,221,67,216,156,221,67,216,167,221,67,216,178,221,107,85,182,85,7,87,8,87,9,87,10,87,11,87,15,87,220,87,221,87,222,87,223,87,224,87,225,87,226,87,227,87,228,87,229,87,230,87,231,87,232,87,233,87,235,87,236,87,237,87,238,87,239,87,60,0,42,0,240,87,241,87,242,87,243,87,244,87,245,87,246,87,247,87,248,87,249,87,250,87,251,87,252,87,253,87,254,87,255,87,0,88,1,88,2,88,3,88,4,88,5,88,6,88,7,88,8,88,9,88,10,88,11,88,12,88,13,88,14,88,15,88,16,88,17,88,18,88,19,88,20,88,21,88,71,54,72,54,73,54,68,216,54,223,68,216,58,223,234,87,53,88,247,88,248,88,31,89,32,89,91,89,92,89,93,89,94,89,95,89,69,216,62,222,98,89,43,90,61,90,44,90,53,90,54,90,55,90,56,90,57,90,58,90,59,90,60,90,62,90,63,90,64,90,65,90,66,90,67,90,68,90,69,90,70,90,71,90,72,90,73,90,74,90,75,90,76,90,77,90,78,90,79,90,80,90,81,90,82,90,83,90,84,90,85,90,86,90,87,90,88,90,89,90,90,90,91,90,92,90,93,90,94,90,95,90,96,90,97,90,98,90,99,90,100,90,101,90,102,90,103,90,104,90,105,90,106,90,107,90,108,90,109,90,110,90,111,90,112,90,113,90,114,90,115,90,116,90,117,90,118,90,229,54,230,54,69,216,108,223,69,216,109,223,60,0,42,0,69,216,110,223,69,216,111,223,69,216,112,223,69,216,113,223,69,216,115,223,69,216,116,223,142,90,110,91,111,91,112,91,114,91,191,91,192,91,193,91,194,91,195,91,196,91,197,91,198,91,199,91,200,91,201,91,70,216,45,222,70,216,52,222,7,92,8,92,9,92,89,92,90,92,91,92,92,92,93,92,96,92,6,93,7,93,8,93,9,93,10,93,11,93,12,93,13,93,14,93,15,93,16,93,17,93,18,93,19,93,20,93,21,93,22,93,23,93,24,93,25,93,26,93,27,93,28,93,29,93,30,93,31,93,32,93,33,93,34,93,35,93,36,93,37,93,38,93,39,93,40,93,41,93,42,93,43,93,44,93,45,93,46,93,47,93,48,93,71,216,28,222,71,216,35,222,71,216,55,222,71,216,61,222,226,93,227,93,49,56,50,94,51,94,52,94,53,94,54,94,55,94,56,94,57,94,58,94,59,94,60,94,62,94,177,94,178,94,179,94,180,94,181,94,182,94,183,94,184,94,185,94,186,94,187,94,188,94,190,94,52,95,53,95,54,95,55,95,56,95,57,95,72,216,250,223,87,95,105,95,107,95,108,95,150,95,151,95,152,95,153,95,155,95,156,95,157,95,158,95,159,95,60,0,42,0,160,95,161,95,162,95,163,95,164,95,73,216,19,221,73,216,27,221,127,96,134,96,137,96,138,96,144,96,152,96,160,96,161,96,163,96,164,96,165,96,168,96,170,96,171,96,172,96,48,57,50,57,53,57,59,57,176,96,177,96,180,96,181,96,183,96,184,96,186,96,187,96,188,96,189,96,190,96,191,96,192,96,194,96,195,96,197,96,198,96,199,96,200,96,202,96,203,96,205,96,207,96,208,96,211,96,212,96,213,96,215,96,216,96,217,96,218,96,219,96,220,96,221,96,222,96,223,96,228,96,230,96,231,96,232,96,236,96,237,96,238,96,239,96,63,57,77,57,73,216,244,222,73,216,245,222,73,216,246,222,73,216,18,223,73,216,20,223,73,216,27,223,73,216,31,223,26,98,27,98,28,98,29,98,72,98,50,99,59,99,101,99,102,99,103,99,104,99,105,99,106,99,107,99,108,99,109,99,110,99,111,99,112,99,113,99,114,99,115,99,116,99,117,99,118,99,119,99,120,99,121,99,122,99,123,99,124,99,125,99,126,99,127,99,128,99,129,99,130,99,131,99,132,99,133,99,134,99,135,99,136,99,137,99,138,99,139,99,141,99,142,99,143,99,60,0,42,0,144,99,145,99,146,99,147,99,149,99,150,99,151,99,152,99,153,99,154,99,155,99,156,99,157,99,158,99,159,99,160,99,161,99,162,99,164,99,165,99,166,99,167,99,168,99,169,99,170,99,171,99,172,99,173,99,174,99,175,99,179,99,180,99,181,99,182,99,183,99,184,99,185,99,186,99,187,99,188,99,189,99,251,57,254,57,0,58,1,58,2,58,3,58,4,58,6,58,74,216,202,223,74,216,206,223,178,99,95,85,77,101,78,101,79,101,80,101,81,101,82,101,83,101,84,101,85,101,86,101,87,101,88,101,89,101,90,101,91,101,138,58,139,58,140,58,141,58,142,58,93,101,141,101,142,101,143,101,155,101,156,101,172,101,173,101,199,101,200,101,201,101,203,101,204,101,205,101,206,101,207,101,203,58,227,101,215,82,87,102,88,102,89,102,90,102,91,102,92,102,93,102,94,102,97,102,98,102,99,102,100,102,101,102,102,102,103,102,104,102,105,102,253,102,240,58,242,58,76,216,179,221,76,216,200,221,76,216,201,221,249,102,252,102,22,103,24,103,25,103,26,103,27,103,54,59,55,59,107,104,108,104,109,104,110,104,60,0,42,0,111,104,112,104,113,104,114,104,115,104,116,104,117,104,118,104,119,104,120,104,121,104,122,104,123,104,124,104,125,104,126,104,127,104,128,104,129,104,130,104,131,104,132,104,133,104,134,104,135,104,136,104,137,104,138,104,139,104,140,104,141,104,142,104,143,104,144,104,145,104,146,104,147,104,148,104,149,104,150,104,151,104,152,104,153,104,154,104,155,104,156,104,157,104,158,104,159,104,160,104,161,104,162,104,163,104,164,104,165,104,166,104,167,104,168,104,169,104,170,104,171,104,172,104,173,104,174,104,175,104,176,104,177,104,178,104,179,104,181,104,182,104,183,104,184,104,185,104,186,104,187,104,188,104,189,104,190,104,191,104,192,104,193,104,194,104,104,59,105,59,106,59,107,59,108,59,109,59,110,59,111,59,112,59,113,59,114,59,115,59,116,59,117,59,119,59,86,105,50,107,51,107,53,107,54,107,55,107,56,107,47,60,140,107,141,107,142,107,143,107,144,107,145,107,146,107,147,107,98,60,184,107,185,107,186,107,187,107,235,107,236,107,237,107,238,107,42,108,43,108,79,216,99,220,142,109,235,60,60,0,42,0,153,109,170,109,171,109,172,109,173,109,174,109,175,109,176,109,177,109,178,109,179,109,180,109,181,109,182,109,183,109,184,109,185,109,186,109,187,109,188,109,189,109,190,109,191,109,192,109,193,109,194,109,195,109,196,109,197,109,198,109,199,109,200,109,201,109,202,109,203,109,204,109,205,109,206,109,207,109,208,109,209,109,210,109,211,109,212,109,213,109,214,109,215,109,216,109,217,109,218,109,219,109,220,109,221,109,222,109,223,109,224,109,225,109,226,109,227,109,228,109,229,109,230,109,231,109,232,109,233,109,234,109,235,109,236,109,237,109,238,109,239,109,240,109,241,109,242,109,243,109,244,109,245,109,246,109,247,109,248,109,249,109,250,109,251,109,253,109,255,109,0,110,1,110,2,110,4,110,5,110,6,110,7,110,8,110,9,110,10,110,11,110,12,110,13,110,14,110,15,110,16,110,17,110,18,110,19,110,20,110,21,110,22,110,23,110,26,110,116,110,0,61,4,61,79,216,126,221,79,216,143,221,79,216,182,221,79,216,183,221,79,216,184,221,79,216,185,221,79,216,186,221,79,216,187,221,79,216,188,221,79,216,189,221,79,216,227,221,79,216,248,221,239,112,240,112,241,112,242,112,60,0,42,0,243,112,244,112,245,112,246,112,247,112,248,112,249,112,250,112,252,112,253,112,254,112,255,112,0,113,1,113,2,113,3,113,4,113,5,113,6,113,7,113,8,113,9,113,10,113,11,113,12,113,13,113,14,113,15,113,16,113,17,113,18,113,19,113,21,113,22,113,23,113,24,113,191,61,80,216,75,222,80,216,86,222,80,216,89,222,20,113,61,114,123,114,124,114,125,114,126,114,127,114,129,114,58,62,60,62,62,62,64,62,81,216,101,222,255,114,4,115,5,115,7,115,8,115,9,115,10,115,13,115,14,115,15,115,16,115,17,115,19,115,20,115,21,115,22,115,23,115,24,115,25,115,26,115,27,115,28,115,29,115,30,115,31,115,32,115,33,115,42,115,135,115,136,115,243,115,244,115,245,115,246,115,248,115,250,115,251,115,252,115,253,115,254,115,255,115,0,116,1,116,2,116,3,116,4,116,5,116,6,116,7,116,8,116,10,116,11,116,12,116,13,116,14,116,15,116,16,116,17,116,18,116,19,116,202,62,204,62,208,62,82,216,98,221,82,216,99,221,82,216,116,221,82,216,117,221,82,216,118,221,224,116,14,63,246,116,247,116,248,116,38,63,27,117,60,0,42,0,28,117,34,117,35,117,97,117,98,117,99,117,100,117,101,117,102,117,103,117,105,117,112,117,181,117,202,117,203,117,204,117,205,117,206,117,207,117,208,117,209,117,210,117,211,117,212,117,213,117,214,117,137,118,142,118,143,118,144,118,145,118,178,118,210,118,211,118,212,118,213,118,214,118,215,118,216,118,219,118,1,64,2,64,37,119,38,119,45,119,46,119,47,119,48,119,49,119,50,119,51,119,52,119,53,119,54,119,55,119,56,119,57,119,58,119,59,119,60,119,61,119,62,119,65,119,84,216,125,221,84,216,126,221,64,119,234,119,235,119,38,120,66,120,67,120,68,120,69,120,70,120,71,120,72,120,73,120,74,120,75,120,76,120,77,120,78,120,79,120,80,120,81,120,82,120,83,120,84,120,85,120,86,120,87,120,88,120,89,120,90,120,91,120,85,216,154,220,97,121,99,121,100,121,101,121,103,121,104,121,105,121,106,121,107,121,108,121,109,121,110,121,111,121,4,65,150,137,85,216,131,222,187,121,241,121,242,121,243,121,244,121,245,121,246,121,247,121,248,121,249,121,250,121,251,121,252,121,253,121,254,121,6,122,60,0,42,0,59,65,65,65,67,65,69,65,143,122,144,122,145,122,146,122,147,122,148,122,149,122,154,122,225,122,22,123,23,123,24,123,25,123,26,123,27,123,28,123,29,123,30,123,31,123,32,123,33,123,34,123,35,123,36,123,37,123,38,123,39,123,40,123,41,123,42,123,43,123,44,123,45,123,46,123,47,123,48,123,49,123,50,123,51,123,52,123,53,123,54,123,55,123,56,123,57,123,58,123,59,123,60,123,61,123,62,123,104,117,146,124,147,124,148,124,149,124,150,124,151,124,152,124,153,124,154,124,155,124,156,124,157,124,163,124,87,216,73,222,40,125,41,125,44,125,45,125,46,125,47,125,48,125,49,125,50,125,51,125,52,125,53,125,54,125,55,125,56,125,57,125,58,125,59,125,60,125,61,125,62,125,63,125,64,125,65,125,66,125,67,125,68,125,69,125,70,125,71,125,72,125,73,125,74,125,75,125,76,125,87,216,225,223,87,216,226,223,233,126,234,126,235,126,236,126,237,126,238,126,239,126,240,126,241,126,242,126,243,126,244,126,245,126,246,126,247,126,248,126,249,126,250,126,251,126,252,126,253,126,254,126,60,0,42,0,255,126,0,127,1,127,59,127,61,127,68,67,69,67,99,127,149,127,154,127,155,127,156,127,157,127,158,127,159,127,199,127,200,127,201,127,202,127,203,127,204,127,205,127,206,127,207,127,208,127,209,127,210,127,8,128,9,128,26,128,27,128,28,128,29,128,30,128,31,128,67,128,68,128,69,128,70,128,71,128,72,128,73,128,74,128,75,128,76,128,77,128,236,128,21,129,22,129,23,129,24,129,25,129,26,129,27,129,28,129,29,129,30,129,31,129,33,129,34,129,35,129,36,129,37,129,38,129,39,129,40,129,41,129,42,129,43,129,44,129,45,129,46,129,47,129,48,129,49,129,50,129,51,129,52,129,53,129,54,129,55,129,56,129,240,67,242,67,89,216,218,222,89,216,232,222,89,216,252,222,90,216,14,221,2,130,17,130,50,130,51,130,52,130,53,130,54,130,55,130,56,130,57,130,58,130,59,130,90,216,45,222,90,216,46,222,116,130,89,131,107,131,29,131,35,131,112,131,113,131,114,131,115,131,116,131,117,131,118,131,119,131,120,131,121,131,122,131,123,131,124,131,125,131,126,131,127,131,128,131,129,131,130,131,131,131,132,131,60,0,42,0,133,131,134,131,135,131,136,131,137,131,138,131,139,131,140,131,141,131,142,131,143,131,144,131,145,131,146,131,147,131,148,131,149,131,150,131,151,131,152,131,153,131,155,131,156,131,157,131,158,131,159,131,160,131,161,131,162,131,163,131,164,131,165,131,166,131,167,131,168,131,169,131,170,131,171,131,172,131,174,131,175,131,176,131,177,131,178,131,179,131,180,131,181,131,182,131,183,131,184,131,185,131,186,131,188,131,189,131,202,159,90,216,192,223,90,216,247,223,91,216,33,220,173,131,106,95,85,134,86,134,87,134,88,134,89,134,90,134,171,134,173,134,174,134,175,134,176,134,177,134,178,134,179,134,180,134,181,134,182,134,183,134,184,134,185,134,186,134,187,134,188,134,189,134,190,134,191,134,192,134,193,134,194,134,195,134,196,134,197,134,198,134,199,134,200,134,201,134,202,134,203,134,204,134,205,134,206,134,207,134,33,250,166,69,92,216,103,222,92,216,128,222,92,216,133,222,92,216,139,222,69,136,80,136,81,136,82,136,83,136,84,136,136,136,137,136,138,136,139,136,140,136,141,136,142,136,143,136,144,136,145,136,146,136,147,136,148,136,149,136,60,0,42,0,150,136,151,136,152,136,153,136,154,136,155,136,156,136,157,136,158,136,159,136,160,136,161,136,162,136,163,136,164,136,165,136,166,136,167,136,168,136,169,136,170,136,171,136,172,136,173,136,174,136,176,136,38,70,175,136,130,137,143,137,144,137,145,137,146,137,147,137,148,137,122,70,203,137,213,137,214,137,215,137,216,137,217,137,94,216,200,220,27,138,28,138,29,138,30,138,31,138,32,138,33,138,34,138,35,138,36,138,37,138,38,138,39,138,40,138,41,138,42,138,43,138,44,138,45,138,46,138,47,138,48,138,49,138,50,138,51,138,187,70,188,70,94,216,122,221,11,140,12,140,13,140,14,140,15,140,16,140,17,140,18,140,19,140,20,140,21,140,22,140,23,140,24,140,25,140,26,140,27,140,28,140,29,140,30,140,57,140,58,140,59,140,73,140,88,140,89,140,90,140,91,140,92,140,93,140,70,71,71,71,124,140,125,140,165,140,166,140,167,140,168,140,169,140,170,140,171,140,172,140,173,140,174,140,71,141,72,141,73,141,74,141,101,141,102,141,103,141,121,141,122,141,123,141,124,141,125,141,126,141,60,0,42,0,127,141,35,250,155,71,185,141,186,141,187,141,189,141,190,141,191,141,192,141,193,141,194,141,195,141,196,141,173,142,174,142,175,142,96,216,24,222,96,216,26,222,214,142,215,142,216,142,217,142,218,142,219,142,220,142,221,142,222,142,223,142,224,142,225,142,226,142,227,142,70,72,71,72,72,72,73,72,74,72,96,216,205,222,132,143,133,143,134,143,11,144,12,144,13,144,14,144,15,144,16,144,17,144,18,144,19,144,20,144,21,144,22,144,23,144,24,144,25,144,26,144,27,144,28,144,29,144,30,144,31,144,32,144,33,144,34,144,35,144,36,144,37,144,38,144,39,144,155,72,97,216,1,221,171,144,212,144,232,144,233,144,234,144,235,144,236,144,237,144,238,144,239,144,240,144,242,144,243,144,244,144,247,144,248,144,253,144,97,216,15,223,97,216,19,223,83,145,84,145,85,145,86,145,87,145,88,145,89,145,90,145,91,145,92,145,93,145,94,145,237,72,98,216,4,220,200,145,206,145,227,145,228,145,229,145,230,145,231,145,232,145,233,145,234,145,235,145,236,145,237,145,238,145,239,145,240,145,241,145,242,145,243,145,244,145,245,145,246,145,60,0,42,0,247,145,248,145,249,145,250,145,251,145,252,145,98,216,72,221,98,216,73,221,207,148,208,148,209,148,210,148,211,148,212,148,213,148,214,148,215,148,216,148,217,148,218,148,219,148,220,148,221,148,222,148,223,148,224,148,225,148,226,148,227,148,228,148,229,148,230,148,231,148,232,148,233,148,234,148,235,148,236,148,237,148,238,148,239,148,240,148,241,148,242,148,243,148,244,148,245,148,246,148,247,148,121,149,122,149,134,149,135,149,136,149,137,149,138,149,99,216,210,220,7,150,8,150,9,150,10,150,11,150,12,150,13,150,14,150,15,150,16,150,106,150,107,150,108,150,109,150,110,150,111,150,112,150,113,150,115,150,116,150,117,150,118,150,119,150,120,150,121,150,122,150,124,150,99,216,172,222,99,216,178,222,99,216,179,222,191,150,192,150,233,150,234,150,235,150,100,216,121,220,100,216,213,221,100,216,235,221,106,151,223,122,224,122,2,152,3,152,4,152,133,152,134,152,135,152,136,152,225,152,229,152,230,152,131,153,132,153,133,153,134,153,151,153,144,154,145,154,146,154,147,154,148,154,149,154,150,154,217,154,90,155,126,156,229,156,55,158,56,158,57,158,58,158,60,0,42,0,59,158,60,158,61,158,62,158,63,158,117,158,127,158,165,158,184,158,187,158,210,158,129,159,154,159,155,159,60,0,39,0,208,253,12,40,39,0,60,0,42,0,64,216,70,220,129,78,180,78,181,78,104,80,128,80,129,80,130,80,131,80,132,80,133,80,134,80,135,80,136,80,137,80,138,80,139,80,140,80,141,80,142,80,143,80,144,80,145,80,146,80,147,80,148,80,149,80,150,80,151,80,152,80,153,80,154,80,155,80,156,80,157,80,158,80,159,80,160,80,161,80,162,80,163,80,164,80,165,80,166,80,167,80,168,80,169,80,115,52,122,52,64,216,10,223,64,216,37,223,95,81,96,81,65,216,163,220,0,103,210,81,211,81,212,81,213,81,214,81,241,81,242,81,255,81,105,82,114,82,115,82,116,82,117,82,251,52,219,82,220,82,221,82,222,82,17,83,18,83,66,216,35,221,66,216,84,221,56,53,90,83,164,83,165,83,166,83,167,83,168,83,66,216,138,222,197,83,89,85,122,85,123,85,124,85,125,85,126,85,127,85,128,85,129,85,130,85,131,85,132,85,133,85,134,85,135,85,136,85,137,85,138,85,139,85,140,85,142,85,143,85,144,85,145,85,146,85,147,85,148,85,149,85,150,85,151,85,152,85,153,85,154,85,155,85,156,85,157,85,158,85,159,85,160,85,161,85,162,85,163,85,60,0,42,0,164,85,165,85,166,85,167,85,168,85,169,85,170,85,171,85,172,85,173,85,174,85,175,85,176,85,177,85,178,85,179,85,180,85,181,85,183,85,184,85,185,85,186,85,187,85,188,85,189,85,190,85,69,86,191,53,193,53,196,53,197,53,199,53,202,53,206,53,67,216,200,221,67,216,4,222,67,216,9,222,67,216,10,222,67,216,13,222,67,216,14,222,67,216,15,222,67,216,16,222,67,216,17,222,67,216,22,222,67,216,29,222,222,85,12,87,13,87,14,87,16,87,22,88,23,88,24,88,25,88,26,88,27,88,28,88,29,88,30,88,31,88,32,88,33,88,34,88,35,88,36,88,37,88,38,88,39,88,40,88,41,88,42,88,43,88,44,88,45,88,46,88,47,88,48,88,49,88,51,88,52,88,54,88,55,88,56,88,57,88,58,88,59,88,60,88,62,88,63,88,64,88,65,88,66,88,68,88,69,88,70,88,71,88,72,88,78,54,68,216,117,223,68,216,118,223,68,216,142,223,68,216,152,223,68,216,156,223,249,88,250,88,251,88,33,89,96,89,97,89,99,89,100,89,101,89,119,90,120,90,121,90,122,90,123,90,124,90,125,90,126,90,127,90,128,90,129,90,130,90,131,90,132,90,133,90,134,90,60,0,42,0,135,90,136,90,137,90,138,90,139,90,140,90,141,90,143,90,145,90,146,90,147,90,148,90,149,90,150,90,151,90,152,90,153,90,154,90,155,90,156,90,157,90,158,90,159,90,160,90,161,90,162,90,163,90,164,90,165,90,166,90,167,90,168,90,169,90,170,90,171,90,172,90,173,90,174,90,175,90,207,90,245,54,0,55,1,55,3,55,4,55,69,216,171,223,69,216,176,223,69,216,177,223,69,216,178,223,69,216,179,223,69,216,180,223,69,216,181,223,69,216,195,223,69,216,199,223,69,216,217,223,69,216,218,223,69,216,219,223,69,216,220,223,69,216,223,223,113,91,70,216,124,221,70,216,128,221,115,91,202,91,203,91,204,91,205,91,206,91,207,91,208,91,209,91,210,91,211,91,212,91,213,91,234,91,98,55,70,216,69,222,70,216,75,222,10,92,11,92,12,92,30,92,48,92,49,92,94,92,95,92,97,92,71,216,162,220,71,216,165,220,49,93,50,93,51,93,52,93,53,93,54,93,55,93,56,93,57,93,58,93,59,93,60,93,61,93,62,93,63,93,64,93,65,93,66,93,67,93,68,93,69,93,70,93,71,93,72,93,73,93,75,93,76,93,77,93,78,93,79,93,80,93,81,93,82,93,83,93,84,93,85,93,86,93,87,93,60,0,42,0,88,93,89,93,90,93,91,93,92,93,93,93,17,250,71,216,137,222,71,216,164,222,71,216,168,222,107,93,239,93,45,56,253,93,72,216,69,220,72,216,73,220,61,94,63,94,64,94,65,94,66,94,67,94,68,94,69,94,70,94,71,94,73,94,72,216,252,220,72,94,126,94,189,94,191,94,192,94,193,94,194,94,195,94,202,94,196,94,17,95,58,95,59,95,60,95,61,95,62,95,88,95,109,95,154,95,165,95,166,95,167,95,168,95,169,95,170,95,171,95,73,216,48,221,178,96,179,96,182,96,185,96,193,96,196,96,201,96,204,96,206,96,209,96,210,96,214,96,224,96,225,96,226,96,227,96,229,96,233,96,234,96,235,96,240,96,241,96,242,96,244,96,245,96,246,96,248,96,250,96,251,96,252,96,253,96,254,96,255,96,0,97,3,97,4,97,5,97,7,97,9,97,10,97,11,97,12,97,14,97,16,97,17,97,18,97,19,97,20,97,21,97,22,97,24,97,28,97,29,97,30,97,32,97,33,97,34,97,35,97,36,97,37,97,38,97,104,97,97,57,98,57,101,57,73,216,42,223,73,216,117,223,73,216,129,223,30,98,31,98,184,57,73,98,74,98,60,0,42,0,140,99,148,99,163,99,176,99,177,99,190,99,191,99,192,99,193,99,194,99,195,99,196,99,198,99,199,99,200,99,201,99,202,99,203,99,204,99,205,99,206,99,207,99,208,99,209,99,210,99,211,99,212,99,213,99,214,99,215,99,216,99,217,99,218,99,219,99,220,99,221,99,222,99,223,99,224,99,225,99,226,99,227,99,229,99,230,99,232,99,233,99,234,99,236,99,237,99,238,99,239,99,240,99,242,99,243,99,244,99,245,99,246,99,247,99,248,99,249,99,250,99,251,99,252,99,253,99,254,99,255,99,0,100,1,100,2,100,3,100,4,100,5,100,82,100,23,58,24,58,75,216,38,220,75,216,39,220,75,216,56,220,75,216,76,220,75,216,81,220,75,216,85,220,97,100,50,101,92,101,94,101,95,101,96,101,97,101,98,101,99,101,100,101,101,101,102,101,103,101,104,101,105,101,106,101,143,58,144,58,151,58,75,216,116,223,140,101,144,101,145,101,157,101,184,58,76,216,125,220,76,216,126,220,158,101,174,101,175,101,192,58,177,101,208,101,209,101,76,216,3,221,106,102,107,102,108,102,109,102,110,102,111,102,112,102,113,102,114,102,115,102,116,102,117,102,60,0,42,0,118,102,119,102,121,102,122,102,123,102,124,102,125,102,126,102,127,102,128,102,129,102,130,102,131,102,145,102,245,58,251,58,0,59,76,216,234,221,76,216,247,221,76,216,248,221,76,216,249,221,76,216,15,222,254,102,255,102,1,103,2,103,28,103,29,103,30,103,31,103,56,59,180,104,195,104,196,104,197,104,198,104,199,104,200,104,201,104,202,104,203,104,204,104,205,104,206,104,207,104,208,104,209,104,210,104,211,104,212,104,213,104,214,104,215,104,216,104,217,104,218,104,219,104,220,104,221,104,222,104,223,104,224,104,225,104,226,104,227,104,228,104,229,104,230,104,231,104,232,104,233,104,234,104,235,104,236,104,237,104,238,104,239,104,240,104,241,104,242,104,243,104,244,104,245,104,246,104,247,104,248,104,249,104,250,104,251,104,252,104,253,104,254,104,255,104,0,105,1,105,2,105,3,105,4,105,5,105,6,105,7,105,8,105,9,105,10,105,11,105,12,105,13,105,14,105,15,105,16,105,17,105,18,105,19,105,20,105,21,105,22,105,23,105,24,105,25,105,26,105,27,105,28,105,29,105,30,105,31,105,32,105,33,105,34,105,60,0,42,0,35,105,36,105,37,105,38,105,39,105,40,105,41,105,42,105,43,105,44,105,45,105,46,105,118,59,120,59,121,59,122,59,123,59,124,59,125,59,126,59,127,59,128,59,77,216,229,220,77,216,25,221,77,216,48,221,110,105,112,105,19,250,57,107,58,107,59,107,60,107,61,107,62,107,63,107,110,107,111,107,148,107,149,107,150,107,151,107,152,107,153,107,154,107,100,60,102,60,104,60,105,60,188,107,189,107,190,107,239,107,240,107,241,107,242,107,243,107,244,107,245,107,246,107,44,108,45,108,46,108,47,108,48,108,252,109,254,109,3,110,24,110,25,110,27,110,28,110,29,110,30,110,31,110,32,110,33,110,34,110,35,110,36,110,37,110,38,110,39,110,40,110,41,110,42,110,43,110,44,110,45,110,46,110,47,110,48,110,49,110,50,110,51,110,52,110,53,110,54,110,55,110,56,110,57,110,58,110,59,110,60,110,61,110,62,110,63,110,64,110,65,110,66,110,67,110,68,110,69,110,70,110,71,110,72,110,73,110,74,110,75,110,76,110,77,110,78,110,79,110,80,110,81,110,82,110,83,110,84,110,85,110,60,0,42,0,86,110,87,110,88,110,89,110,90,110,91,110,92,110,93,110,94,110,95,110,96,110,97,110,98,110,99,110,100,110,101,110,102,110,103,110,104,110,105,110,106,110,107,110,109,110,110,110,111,110,112,110,113,110,114,110,115,110,117,110,118,110,119,110,120,110,121,110,122,110,123,110,124,110,125,110,126,110,127,110,128,110,129,110,130,110,131,110,132,110,133,110,134,110,135,110,136,110,137,110,138,110,139,110,140,110,203,110,222,110,18,61,19,61,29,61,32,61,34,61,79,216,6,222,79,216,17,222,79,216,44,222,79,216,45,222,79,216,46,222,79,216,47,222,79,216,48,222,79,216,49,222,79,216,57,222,251,112,25,113,26,113,27,113,28,113,29,113,30,113,31,113,32,113,33,113,34,113,35,113,36,113,37,113,38,113,39,113,40,113,41,113,42,113,43,113,44,113,45,113,46,113,47,113,48,113,49,113,50,113,51,113,52,113,53,113,54,113,55,113,56,113,57,113,58,113,59,113,60,113,61,113,62,113,63,113,64,113,110,113,198,61,199,61,201,61,204,61,205,61,80,216,118,222,80,216,119,222,80,216,120,222,80,216,132,222,80,216,147,222,80,216,149,222,80,216,165,222,50,114,75,114,76,114,77,114,81,216,200,221,60,0,42,0,90,114,128,114,130,114,131,114,132,114,133,114,134,114,135,114,136,114,137,114,138,114,139,114,67,62,81,216,116,222,6,115,11,115,12,115,18,115,43,115,34,115,35,115,36,115,37,115,38,115,39,115,40,115,41,115,44,115,45,115,47,115,48,115,49,115,50,115,51,115,52,115,53,115,54,115,56,115,57,115,81,216,224,223,247,115,20,116,21,116,22,116,23,116,24,116,25,116,26,116,27,116,28,116,29,116,31,116,32,116,33,116,34,116,35,116,36,116,37,116,38,116,40,116,41,116,42,116,43,116,44,116,45,116,46,116,47,116,48,116,49,116,50,116,51,116,52,116,53,116,54,116,55,116,56,116,57,116,58,116,59,116,60,116,209,62,214,62,218,62,219,62,82,216,123,221,82,216,127,221,82,216,130,221,82,216,136,221,82,216,137,221,82,216,138,221,82,216,139,221,82,216,140,221,82,216,141,221,82,216,142,221,82,216,143,221,82,216,148,221,82,216,164,221,82,216,167,221,82,216,169,221,82,216,171,221,82,216,172,221,82,216,173,221,249,116,250,116,251,116,252,116,36,117,37,117,38,117,47,117,83,216,9,220,106,117,107,117,108,117,109,117,110,117,111,117,114,117,115,117,116,117,113,117,142,117,143,117,215,117,216,117,217,117,218,117,219,117,60,0,42,0,220,117,221,117,222,117,223,117,224,117,225,117,226,117,227,117,228,117,229,117,230,117,231,117,232,117,233,117,234,117,235,117,147,63,152,63,83,216,184,221,123,118,124,118,146,118,147,118,148,118,149,118,150,118,179,118,180,118,217,118,218,118,220,118,3,64,66,119,67,119,68,119,69,119,70,119,71,119,72,119,73,119,74,119,75,119,76,119,77,119,78,119,79,119,80,119,81,119,57,64,64,64,222,119,223,119,236,119,237,119,92,120,93,120,94,120,95,120,96,120,97,120,98,120,99,120,100,120,101,120,102,120,103,120,104,120,105,120,106,120,107,120,108,120,109,120,110,120,111,120,112,120,113,120,114,120,115,120,116,120,117,120,118,120,119,120,180,64,102,121,112,121,113,121,114,121,115,121,116,121,117,121,118,121,119,121,120,121,132,121,9,65,85,216,149,222,188,121,255,121,0,122,1,122,2,122,3,122,4,122,5,122,7,122,8,122,9,122,10,122,11,122,12,122,13,122,14,122,85,216,199,223,150,122,151,122,152,122,153,122,155,122,156,122,157,122,226,122,227,122,228,122,229,122,230,122,231,122,63,123,64,123,60,0,42,0,65,123,66,123,67,123,68,123,69,123,70,123,71,123,72,123,73,123,74,123,75,123,76,123,77,123,78,123,79,123,80,123,81,123,82,123,83,123,84,123,85,123,86,123,87,123,88,123,89,123,90,123,91,123,92,123,93,123,237,65,238,65,239,65,108,123,158,124,159,124,160,124,161,124,162,124,164,124,165,124,166,124,167,124,168,124,169,124,170,124,171,124,172,124,173,124,131,66,42,125,43,125,77,125,78,125,79,125,80,125,81,125,82,125,83,125,84,125,85,125,86,125,87,125,88,125,89,125,90,125,92,125,93,125,94,125,95,125,96,125,97,125,98,125,99,125,100,125,101,125,102,125,103,125,104,125,105,125,106,125,107,125,108,125,109,125,110,125,111,125,112,125,113,125,114,125,115,125,116,125,117,125,118,125,119,125,126,125,59,67,2,127,3,127,4,127,5,127,6,127,7,127,8,127,9,127,10,127,11,127,12,127,13,127,14,127,15,127,16,127,17,127,18,127,19,127,20,127,21,127,22,127,23,127,24,127,62,127,63,127,64,127,100,127,101,127,102,127,160,127,161,127,162,127,110,67,60,0,42,0,111,67,211,127,212,127,213,127,214,127,215,127,216,127,217,127,218,127,11,128,32,128,78,128,79,128,80,128,81,128,82,128,83,128,84,128,96,128,89,216,114,221,212,128,254,128,20,129,32,129,57,129,58,129,59,129,60,129,61,129,62,129,63,129,64,129,65,129,66,129,67,129,68,129,69,129,70,129,71,129,72,129,73,129,74,129,75,129,76,129,77,129,78,129,79,129,81,129,82,129,83,129,84,129,85,129,86,129,87,129,88,129,89,129,90,129,57,59,0,68,1,68,2,68,89,216,22,223,89,216,65,223,116,129,230,129,238,129,239,129,240,129,90,216,17,221,245,129,246,129,247,129,248,129,249,129,3,130,4,130,18,130,28,130,60,130,61,130,62,130,63,130,90,216,52,222,117,130,18,131,59,131,70,131,176,68,183,68,189,68,192,68,154,131,190,131,191,131,192,131,193,131,194,131,195,131,196,131,197,131,198,131,199,131,200,131,201,131,202,131,203,131,204,131,205,131,206,131,207,131,208,131,209,131,210,131,211,131,212,131,213,131,214,131,215,131,216,131,218,131,219,131,220,131,221,131,222,131,223,131,224,131,225,131,226,131,60,0,42,0,227,131,228,131,229,131,230,131,231,131,232,131,233,131,234,131,235,131,236,131,237,131,238,131,239,131,240,131,241,131,242,131,243,131,244,131,245,131,246,131,247,131,248,131,249,131,250,131,251,131,252,131,253,131,254,131,255,131,0,132,1,132,2,132,3,132,4,132,5,132,6,132,7,132,8,132,9,132,10,132,11,132,12,132,13,132,14,132,15,132,16,132,17,132,18,132,19,132,20,132,21,132,22,132,23,132,24,132,25,132,26,132,27,132,28,132,29,132,30,132,31,132,32,132,33,132,34,132,35,132,36,132,38,132,39,132,87,132,91,216,64,220,91,216,65,220,91,216,70,220,91,216,126,220,91,216,127,220,91,216,128,220,91,216,129,220,91,216,130,220,91,216,164,220,91,216,183,220,91,216,184,220,91,216,189,220,91,216,192,220,56,132,91,134,93,134,136,134,208,134,209,134,210,134,211,134,212,134,213,134,215,134,216,134,217,134,218,134,219,134,220,134,221,134,222,134,223,134,224,134,225,134,226,134,227,134,228,134,229,134,230,134,231,134,232,134,233,134,234,134,235,134,236,134,237,134,238,134,239,134,240,134,241,134,242,134,243,134,244,134,173,69,175,69,179,69,92,216,178,222,92,216,182,222,70,136,60,0,42,0,71,136,72,136,73,136,85,136,86,136,87,136,177,136,178,136,179,136,180,136,181,136,182,136,183,136,184,136,185,136,186,136,187,136,188,136,189,136,190,136,191,136,192,136,193,136,194,136,195,136,196,136,197,136,198,136,199,136,200,136,201,136,215,136,93,216,148,222,1,137,131,137,132,137,153,137,149,137,151,137,152,137,154,137,204,137,205,137,218,137,219,137,221,137,222,137,52,138,53,138,54,138,55,138,56,138,57,138,58,138,59,138,60,138,61,138,64,138,65,138,66,138,67,138,68,138,69,138,70,138,71,138,72,138,73,138,74,138,75,138,76,138,77,138,78,138,79,138,80,138,81,138,82,138,83,138,84,138,85,138,86,138,87,138,88,138,89,138,90,138,91,138,92,138,93,138,94,138,95,138,96,138,207,70,208,70,94,216,160,221,31,140,32,140,33,140,34,140,35,140,36,140,37,140,38,140,39,140,94,140,95,140,96,140,97,140,72,71,126,140,127,140,128,140,129,140,130,140,131,140,95,216,177,220,175,140,176,140,177,140,179,140,180,140,181,140,182,140,183,140,184,140,185,140,186,140,187,140,188,140,189,140,60,0,42,0,190,140,191,140,192,140,193,140,95,216,83,221,95,216,84,221,75,141,76,141,77,141,78,141,79,141,80,141,81,141,82,141,83,141,84,141,85,141,128,141,129,141,130,141,131,141,132,141,133,141,134,141,135,141,136,141,137,141,138,141,139,141,161,71,163,71,197,141,198,141,199,141,200,141,201,141,202,141,203,141,204,141,205,141,206,141,207,141,209,141,210,141,211,141,212,141,213,141,214,141,215,141,216,141,217,141,218,141,219,141,220,141,221,141,222,141,245,141,237,71,95,216,249,223,96,216,2,220,96,216,9,220,176,142,228,142,229,142,230,142,231,142,232,142,233,142,234,142,235,142,236,142,238,142,239,142,240,142,241,142,242,142,243,142,244,142,245,142,246,142,247,142,248,142,249,142,250,142,251,142,252,142,253,142,171,159,82,72,96,216,226,222,135,143,136,143,137,143,138,143,139,143,140,143,141,143,142,143,156,143,157,143,97,216,18,220,40,144,41,144,42,144,43,144,44,144,45,144,46,144,47,144,48,144,49,144,50,144,51,144,52,144,53,144,54,144,55,144,56,144,57,144,58,144,59,144,97,216,60,221,97,216,61,221,245,144,249,144,251,144,252,144,254,144,60,0,42,0,255,144,0,145,1,145,2,145,3,145,4,145,5,145,6,145,7,145,8,145,9,145,10,145,208,72,44,145,95,145,96,145,97,145,98,145,99,145,100,145,101,145,243,72,201,145,202,145,207,145,253,145,254,145,255,145,0,146,1,146,2,146,3,146,4,146,5,146,6,146,7,146,8,146,9,146,10,146,11,146,12,146,13,146,14,146,15,146,16,146,17,146,18,146,19,146,20,146,21,146,22,146,23,146,24,146,25,146,26,146,27,146,28,146,29,146,30,146,31,146,32,146,33,146,34,146,35,146,36,146,37,146,38,146,39,146,40,146,41,146,42,146,43,146,44,146,30,73,32,73,98,216,86,221,98,216,100,221,248,148,249,148,250,148,251,148,252,148,253,148,254,148,255,148,0,149,1,149,2,149,3,149,4,149,5,149,6,149,7,149,8,149,9,149,10,149,11,149,12,149,13,149,14,149,15,149,16,149,17,149,18,149,19,149,20,149,21,149,123,149,139,149,140,149,141,149,142,149,143,149,144,149,145,149,146,149,147,149,148,149,149,149,150,149,151,149,17,150,18,150,19,150,20,150,21,150,114,150,123,150,60,0,42,0,125,150,126,150,127,150,128,150,129,150,130,150,131,150,132,150,133,150,134,150,135,150,136,150,137,150,138,150,139,150,140,150,141,150,142,150,144,150,99,216,217,222,99,216,231,222,193,150,194,150,195,150,196,150,197,150,198,150,199,150,200,150,236,150,237,150,238,150,239,150,240,150,241,150,242,150,243,150,100,216,136,220,100,216,139,220,83,151,84,151,95,151,107,151,108,151,109,151,110,151,111,151,112,151,113,151,204,151,233,151,5,152,6,152,7,152,8,152,137,152,138,152,139,152,140,152,141,152,142,152,143,152,169,152,170,152,101,216,158,221,211,152,231,152,232,152,233,152,234,152,235,152,237,152,239,152,240,152,242,152,135,153,136,153,138,153,139,153,173,153,174,153,151,154,152,154,153,154,154,154,155,154,169,154,224,154,50,76,127,156,128,156,129,156,130,156,131,156,230,156,64,158,65,158,66,158,67,158,68,158,69,158,70,158,71,158,72,158,195,158,196,158,205,158,209,158,249,158,11,159,130,159,60,0,39,0,208,253,13,40,39,0,60,0,42,0,130,78,131,78,132,78,182,78,183,78,170,80,171,80,172,80,173,80,174,80,175,80,176,80,177,80,178,80,179,80,180,80,181,80,182,80,183,80,184,80,185,80,186,80,187,80,188,80,189,80,190,80,191,80,192,80,193,80,194,80,195,80,196,80,197,80,198,80,199,80,200,80,201,80,202,80,203,80,204,80,205,80,125,52,126,52,64,216,65,223,64,216,69,223,64,216,70,223,64,216,71,223,64,216,181,223,97,81,126,81,127,81,215,81,119,82,120,82,121,82,122,82,123,82,124,82,125,82,126,82,127,82,223,82,224,82,225,82,226,82,227,82,228,82,229,82,230,82,231,82,47,83,50,53,51,53,52,53,128,83,129,83,170,83,171,83,175,83,224,83,141,85,191,85,192,85,193,85,194,85,195,85,196,85,197,85,198,85,199,85,200,85,201,85,202,85,203,85,204,85,205,85,206,85,207,85,208,85,209,85,210,85,211,85,212,85,213,85,214,85,215,85,216,85,217,85,218,85,219,85,220,85,221,85,223,85,224,85,225,85,226,85,227,85,228,85,229,85,230,85,231,85,232,85,233,85,234,85,235,85,236,85,237,85,238,85,60,0,42,0,239,85,240,85,241,85,242,85,243,85,244,85,245,85,210,53,214,53,219,53,221,53,224,53,67,216,76,222,67,216,109,222,67,216,115,222,67,216,117,222,67,216,118,222,67,216,119,222,67,216,120,222,67,216,121,222,67,216,122,222,67,216,123,222,67,216,140,222,67,216,150,222,67,216,152,222,67,216,157,222,67,216,162,222,67,216,170,222,67,216,171,222,67,216,172,222,67,216,182,222,17,87,18,87,19,87,20,87,21,87,61,88,67,88,73,88,74,88,75,88,76,88,77,88,78,88,79,88,80,88,81,88,82,88,83,88,84,88,85,88,86,88,87,88,88,88,89,88,90,88,91,88,92,88,93,88,94,88,95,88,96,88,97,88,98,88,99,88,100,88,101,88,102,88,103,88,104,88,105,88,106,88,107,88,108,88,109,88,110,88,111,88,112,88,113,88,95,54,68,216,197,223,68,216,198,223,252,88,102,89,103,89,104,89,69,216,97,222,144,90,176,90,177,90,178,90,179,90,180,90,181,90,182,90,183,90,184,90,185,90,186,90,187,90,188,90,189,90,190,90,191,90,192,90,193,90,194,90,195,90,196,90,197,90,198,90,199,90,200,90,201,90,202,90,203,90,204,90,205,90,206,90,208,90,209,90,210,90,211,90,212,90,8,55,10,55,13,55,69,216,239,223,60,0,42,0,69,216,245,223,69,216,246,223,69,216,248,223,69,216,249,223,69,216,250,223,69,216,251,223,69,216,252,223,116,91,70,216,131,221,70,216,136,221,118,91,214,91,215,91,216,91,217,91,218,91,219,91,220,91,221,91,102,55,70,216,99,222,31,92,32,92,50,92,51,92,52,92,71,216,172,220,74,93,94,93,95,93,96,93,97,93,98,93,99,93,100,93,101,93,102,93,103,93,104,93,105,93,106,93,108,93,109,93,110,93,111,93,112,93,113,93,114,93,115,93,116,93,117,93,118,93,242,55,248,55,71,216,200,222,71,216,213,222,240,93,74,94,75,94,76,94,77,94,78,94,79,94,121,94,197,94,198,94,199,94,200,94,201,94,203,94,204,94,72,216,124,222,18,95,63,95,64,95,65,95,66,95,89,95,90,95,73,216,101,220,110,95,172,95,173,95,174,95,175,95,176,95,243,96,247,96,249,96,1,97,2,97,6,97,8,97,13,97,15,97,23,97,25,97,26,97,27,97,31,97,99,57,100,57,102,57,39,97,41,97,42,97,43,97,45,97,46,97,47,97,48,97,49,97,50,97,52,97,53,97,54,97,55,97,57,97,58,97,60,97,61,97,62,97,64,97,67,97,68,97,69,97,70,97,73,97,60,0,42,0,74,97,76,97,77,97,78,97,79,97,81,97,73,216,150,223,73,216,180,223,73,216,181,223,73,216,205,223,38,98,32,98,33,98,34,98,35,98,36,98,37,98,231,99,235,99,241,99,6,100,7,100,8,100,9,100,10,100,11,100,12,100,13,100,14,100,15,100,16,100,17,100,18,100,19,100,20,100,21,100,22,100,23,100,24,100,25,100,26,100,27,100,28,100,29,100,30,100,31,100,32,100,33,100,34,100,35,100,36,100,37,100,38,100,39,100,40,100,41,100,42,100,44,100,45,100,46,100,47,100,48,100,50,100,51,100,53,100,54,100,55,100,56,100,57,100,58,100,60,100,61,100,62,100,64,100,65,100,66,100,67,100,68,100,69,100,70,100,71,100,72,100,73,100,74,100,32,58,35,58,38,58,41,58,42,58,75,216,98,220,75,216,136,220,75,216,155,220,75,216,161,220,75,216,169,220,75,216,178,220,197,99,49,100,109,101,107,101,108,101,110,101,111,101,112,101,146,101,101,216,176,221,159,101,176,101,210,101,211,101,212,101,213,101,228,101,120,102,132,102,133,102,134,102,135,102,136,102,137,102,138,102,139,102,140,102,141,102,142,102,143,102,144,102,146,102,147,102,60,0,42,0,148,102,149,102,150,102,151,102,152,102,153,102,1,59,2,59,3,59,4,59,5,59,6,59,7,59,8,59,9,59,10,59,11,59,12,59,76,216,37,222,76,216,47,222,76,216,49,222,76,216,50,222,76,216,51,222,76,216,52,222,3,103,32,103,58,59,47,105,48,105,49,105,50,105,51,105,52,105,53,105,54,105,55,105,56,105,57,105,58,105,59,105,60,105,61,105,62,105,63,105,64,105,65,105,66,105,67,105,68,105,69,105,70,105,71,105,72,105,73,105,74,105,75,105,76,105,77,105,78,105,79,105,80,105,81,105,82,105,83,105,84,105,85,105,87,105,88,105,89,105,90,105,91,105,92,105,93,105,94,105,95,105,96,105,97,105,98,105,99,105,100,105,101,105,102,105,103,105,104,105,105,105,106,105,107,105,108,105,109,105,111,105,113,105,114,105,115,105,116,105,117,105,118,105,119,105,120,105,121,105,122,105,123,105,124,105,125,105,126,105,127,105,128,105,129,105,130,105,131,105,132,105,133,105,134,105,135,105,136,105,137,105,139,105,140,105,148,105,152,105,149,59,150,59,153,59,77,216,81,221,77,216,90,221,77,216,103,221,77,216,149,221,77,216,153,221,77,216,156,221,60,0,42,0,64,107,65,107,66,107,67,107,68,107,69,107,70,107,71,107,72,107,60,60,62,60,113,107,114,107,115,107,155,107,156,107,110,60,191,107,192,107,193,107,194,107,78,216,167,222,211,107,247,107,248,107,249,107,250,107,251,107,252,107,253,107,49,108,108,110,141,110,142,110,143,110,144,110,145,110,146,110,147,110,148,110,149,110,150,110,151,110,152,110,153,110,154,110,155,110,156,110,157,110,158,110,159,110,160,110,161,110,162,110,163,110,164,110,165,110,166,110,167,110,168,110,169,110,170,110,171,110,172,110,173,110,174,110,175,110,176,110,177,110,178,110,179,110,180,110,181,110,182,110,183,110,184,110,185,110,186,110,187,110,188,110,189,110,190,110,191,110,192,110,193,110,194,110,195,110,196,110,197,110,198,110,199,110,200,110,201,110,202,110,205,110,207,110,208,110,209,110,210,110,211,110,212,110,214,110,215,110,216,110,217,110,219,110,220,110,221,110,223,110,224,110,225,110,226,110,227,110,228,110,229,110,230,110,231,110,232,110,233,110,234,110,19,111,38,61,50,61,51,61,59,61,79,216,136,222,79,216,137,222,79,216,138,222,60,0,42,0,79,216,139,222,79,216,185,222,79,216,191,222,218,110,65,113,66,113,67,113,68,113,69,113,70,113,71,113,72,113,73,113,74,113,75,113,76,113,77,113,78,113,79,113,80,113,81,113,82,113,83,113,84,113,86,113,87,113,88,113,89,113,90,113,92,113,93,113,94,113,95,113,96,113,97,113,98,113,99,113,100,113,101,113,102,113,103,113,104,113,105,113,106,113,107,113,108,113,109,113,111,113,112,113,113,113,114,113,115,113,116,113,117,113,118,113,119,113,120,113,122,113,161,59,211,61,219,61,80,216,191,222,80,216,193,222,80,216,201,222,80,216,202,222,80,216,238,222,80,216,250,222,81,216,33,221,58,114,67,114,78,114,79,114,80,114,81,114,82,114,140,114,141,114,142,114,143,114,144,114,145,114,72,62,81,216,151,222,46,115,55,115,65,115,58,115,59,115,60,115,61,115,62,115,63,115,64,115,66,115,69,115,70,115,71,115,72,115,73,115,74,115,82,216,18,220,82,216,35,220,39,116,215,62,30,116,61,116,62,116,63,116,64,116,65,116,66,116,67,116,68,116,69,116,70,116,71,116,72,116,73,116,74,116,75,116,76,116,77,116,78,116,79,116,80,116,81,116,82,116,83,116,60,0,42,0,84,116,85,116,86,116,87,116,88,116,89,116,90,116,91,116,92,116,93,116,94,116,95,116,222,62,225,62,226,62,82,216,183,221,82,216,184,221,82,216,185,221,82,216,186,221,82,216,187,221,82,216,197,221,82,216,208,221,82,216,218,221,82,216,222,221,82,216,223,221,82,216,227,221,82,216,229,221,111,116,225,116,253,116,254,116,255,116,1,117,29,117,30,117,117,117,118,117,119,117,120,117,121,117,122,117,99,63,83,216,158,220,83,216,159,220,236,117,237,117,238,117,239,117,240,117,241,117,242,117,243,117,244,117,245,117,246,117,247,117,248,117,249,117,250,117,251,117,252,117,253,117,254,117,255,117,0,118,1,118,2,118,3,118,4,118,5,118,6,118,83,216,234,221,83,216,235,221,15,118,16,118,151,118,152,118,153,118,83,216,130,223,83,216,134,223,181,118,221,118,222,118,223,118,4,64,82,119,83,119,84,119,85,119,86,119,87,119,88,119,89,119,90,119,91,119,92,119,93,119,94,119,95,119,96,119,98,119,99,119,100,119,101,119,102,119,103,119,104,119,105,119,106,119,107,119,108,119,109,119,69,64,84,216,205,221,84,216,227,221,84,216,230,221,84,216,231,221,97,119,121,119,224,119,238,119,120,120,121,120,122,120,123,120,124,120,125,120,127,120,60,0,42,0,128,120,129,120,130,120,131,120,132,120,133,120,134,120,135,120,136,120,137,120,138,120,139,120,140,120,141,120,142,120,143,120,144,120,145,120,146,120,147,120,148,120,149,120,150,120,151,120,152,120,153,120,154,120,155,120,156,120,176,120,187,64,191,64,121,121,122,121,123,121,124,121,125,121,126,121,127,121,128,121,129,121,130,121,131,121,133,121,134,121,14,65,189,121,44,132,15,122,16,122,17,122,18,122,19,122,20,122,21,122,22,122,23,122,24,122,25,122,26,122,27,122,28,122,29,122,30,122,31,122,32,122,33,122,34,122,35,122,36,122,37,122,85,216,223,223,85,216,224,223,85,216,225,223,158,122,159,122,160,122,161,122,162,122,163,122,164,122,165,122,166,122,167,122,86,216,172,221,232,122,233,122,234,122,235,122,207,65,86,216,149,222,94,123,95,123,96,123,97,123,98,123,99,123,100,123,101,123,102,123,103,123,104,123,105,123,106,123,107,123,109,123,110,123,111,123,112,123,113,123,114,123,115,123,116,123,118,123,119,123,120,123,121,123,122,123,123,123,124,123,125,123,126,123,127,123,128,123,192,123,248,65,249,65,251,65,60,0,42,0,252,65,253,65,254,65,255,65,0,66,86,216,116,223,86,216,137,223,174,124,175,124,176,124,177,124,178,124,179,124,180,124,181,124,192,124,140,66,87,216,129,222,87,216,130,222,87,216,131,222,91,125,120,125,121,125,122,125,123,125,124,125,125,125,127,125,128,125,129,125,130,125,131,125,132,125,133,125,134,125,135,125,136,125,137,125,138,125,139,125,140,125,141,125,142,125,143,125,144,125,145,125,146,125,147,125,148,125,149,125,151,125,152,125,153,125,154,125,155,125,88,216,33,220,88,216,41,220,25,127,26,127,27,127,28,127,29,127,30,127,31,127,32,127,33,127,34,127,35,127,36,127,103,127,104,127,105,127,106,127,107,127,108,127,109,127,110,127,114,127,88,216,208,222,163,127,164,127,165,127,166,127,167,127,168,127,169,127,170,127,219,127,220,127,221,127,33,128,34,128,85,128,86,128,87,128,88,128,132,128,133,128,134,128,80,94,33,103,91,129,92,129,93,129,94,129,95,129,96,129,97,129,98,129,99,129,100,129,101,129,102,129,103,129,104,129,105,129,106,129,107,129,108,129,109,129,110,129,111,129,112,129,113,129,114,129,115,129,117,129,118,129,60,0,42,0,119,129,120,129,121,129,122,129,123,129,124,129,125,129,126,129,19,68,5,130,29,130,64,130,65,130,66,130,67,130,68,130,69,130,70,130,71,130,72,130,73,130,90,216,66,222,187,131,195,68,197,68,206,68,217,131,37,132,40,132,41,132,42,132,43,132,45,132,46,132,47,132,48,132,49,132,50,132,51,132,52,132,53,132,54,132,55,132,57,132,58,132,59,132,60,132,61,132,62,132,63,132,64,132,65,132,66,132,67,132,68,132,69,132,70,132,71,132,72,132,73,132,74,132,75,132,76,132,77,132,78,132,79,132,80,132,81,132,82,132,83,132,84,132,85,132,86,132,88,132,89,132,90,132,91,132,92,132,93,132,94,132,95,132,96,132,97,132,98,132,99,132,100,132,101,132,102,132,103,132,104,132,105,132,106,132,107,132,108,132,109,132,110,132,111,132,112,132,113,132,114,132,115,132,116,132,117,132,118,132,119,132,120,132,121,132,122,132,123,132,124,132,125,132,126,132,127,132,128,132,129,132,130,132,131,132,132,132,133,132,134,132,135,132,136,132,137,132,139,132,140,132,141,132,142,132,143,132,60,0,42,0,91,216,195,220,91,216,209,220,91,216,34,221,91,216,35,221,91,216,36,221,91,216,37,221,91,216,38,221,91,216,39,221,91,216,40,221,91,216,41,221,91,216,42,221,91,216,81,221,197,132,200,132,241,132,7,133,92,134,94,134,95,134,214,134,245,134,246,134,247,134,248,134,249,134,250,134,251,134,252,134,253,134,254,134,255,134,0,135,1,135,2,135,3,135,4,135,5,135,6,135,7,135,8,135,9,135,10,135,11,135,12,135,13,135,14,135,15,135,16,135,19,135,20,135,21,135,22,135,23,135,70,135,92,216,230,222,77,135,88,136,89,136,202,136,203,136,204,136,205,136,206,136,207,136,208,136,209,136,210,136,211,136,212,136,213,136,214,136,216,136,217,136,218,136,219,136,220,136,221,136,222,136,223,136,224,136,225,136,227,136,228,136,229,136,133,137,155,137,156,137,128,70,206,137,220,137,223,137,224,137,225,137,226,137,227,137,228,137,229,137,230,137,231,137,62,138,63,138,97,138,98,138,99,138,100,138,101,138,102,138,103,138,104,138,105,138,106,138,107,138,108,138,109,138,110,138,111,138,112,138,113,138,114,138,115,138,116,138,117,138,118,138,119,138,120,138,121,138,122,138,123,138,60,0,42,0,124,138,125,138,126,138,127,138,128,138,129,138,130,138,131,138,132,138,133,138,134,138,135,138,136,138,137,138,138,138,160,138,94,216,221,221,40,140,41,140,42,140,43,140,44,140,60,140,74,140,75,140,54,71,98,140,99,140,100,140,101,140,102,140,132,140,133,140,134,140,135,140,136,140,137,140,138,140,95,216,197,220,178,140,194,140,195,140,196,140,197,140,198,140,199,140,200,140,201,140,202,140,203,140,204,140,205,140,206,140,95,216,102,221,95,216,115,221,95,216,132,221,86,141,87,141,104,141,105,141,106,141,140,141,141,141,142,141,143,141,144,141,145,141,146,141,147,141,148,141,166,71,208,141,188,141,223,141,224,141,225,141,226,141,227,141,228,141,229,141,230,141,231,141,232,141,233,141,234,141,235,141,236,141,237,141,238,141,239,141,240,141,241,141,242,141,243,141,244,141,246,141,247,141,248,141,249,141,250,141,251,141,96,216,30,220,96,216,35,220,96,216,36,220,177,142,178,142,55,72,237,142,254,142,255,142,0,143,1,143,2,143,3,143,4,143,5,143,6,143,7,143,8,143,9,143,10,143,11,143,12,143,143,143,144,143,145,143,146,143,147,143,60,0,42,0,148,143,158,143,159,143,160,143,178,143,60,144,61,144,62,144,63,144,64,144,65,144,66,144,67,144,68,144,69,144,70,144,71,144,72,144,73,144,74,144,75,144,76,144,77,144,78,144,79,144,80,144,81,144,82,144,83,144,84,144,85,144,86,144,87,144,97,216,108,221,204,144,11,145,12,145,13,145,14,145,15,145,16,145,17,145,18,145,19,145,20,145,21,145,22,145,23,145,102,145,103,145,104,145,105,145,106,145,107,145,108,145,109,145,110,145,111,145,112,145,113,145,98,216,43,220,46,146,47,146,48,146,49,146,50,146,51,146,52,146,53,146,54,146,55,146,56,146,57,146,58,146,59,146,60,146,61,146,62,146,63,146,64,146,65,146,66,146,67,146,68,146,69,146,70,146,71,146,72,146,73,146,74,146,75,146,76,146,77,146,78,146,79,146,80,146,81,146,82,146,83,146,84,146,85,146,86,146,87,146,88,146,89,146,90,146,91,146,92,146,93,146,94,146,95,146,96,146,97,146,98,146,99,146,100,146,101,146,102,146,103,146,104,146,105,146,106,146,107,146,108,146,109,146,110,146,111,146,112,146,60,0,42,0,113,146,114,146,115,146,116,146,143,146,175,159,98,216,104,221,98,216,108,221,98,216,109,221,98,216,126,221,22,149,23,149,24,149,25,149,26,149,27,149,28,149,29,149,30,149,31,149,32,149,33,149,34,149,35,149,36,149,37,149,38,149,39,149,40,149,41,149,42,149,43,149,44,149,45,149,46,149,47,149,48,149,49,149,137,73,152,149,153,149,154,149,155,149,156,149,157,149,158,149,159,149,160,149,22,150,23,150,24,150,25,150,143,150,145,150,146,150,147,150,148,150,149,150,150,150,151,150,152,150,41,250,223,73,201,150,202,150,203,150,205,150,206,150,207,150,244,150,245,150,246,150,247,150,248,150,249,150,250,150,251,150,252,150,253,150,254,150,100,216,147,220,85,151,86,151,114,151,115,151,116,151,117,151,118,151,119,151,120,151,121,151,234,151,235,151,238,151,244,151,245,151,9,152,10,152,11,152,12,152,13,152,14,152,15,152,16,152,17,152,18,152,19,152,180,74,144,152,145,152,146,152,147,152,148,152,149,152,150,152,171,152,172,152,212,152,236,152,238,152,241,152,38,75,243,152,244,152,245,152,246,152,247,152,249,152,60,0,42,0,251,152,252,152,253,152,254,152,255,152,137,153,140,153,141,153,142,153,143,153,144,153,154,153,175,153,176,153,177,153,178,153,179,153,180,153,181,153,156,154,157,154,158,154,159,154,170,154,171,154,172,154,173,154,174,154,102,216,40,222,225,154,226,154,61,155,91,155,92,155,93,155,94,155,132,156,133,156,134,156,135,156,136,156,137,156,138,156,139,156,140,156,141,156,142,156,143,156,144,156,231,156,232,156,233,156,234,156,235,156,237,156,238,156,239,156,240,156,73,158,74,158,75,158,76,158,77,158,78,158,79,158,80,158,81,158,82,158,83,158,84,158,128,158,129,158,130,158,104,216,255,222,253,158,12,159,14,159,19,159,20,159,32,159,131,159,132,159,133,159,134,159,60,0,39,0,208,253,14,40,39,0,60,0,42,0,64,216,78,220,72,216,161,221,206,80,207,80,208,80,209,80,210,80,211,80,212,80,213,80,214,80,215,80,216,80,217,80,218,80,219,80,220,80,221,80,222,80,223,80,224,80,225,80,226,80,227,80,228,80,229,80,230,80,231,80,232,80,233,80,234,80,235,80,236,80,237,80,238,80,239,80,240,80,241,80,243,80,244,80,247,80,64,216,126,223,64,216,127,223,64,216,128,223,64,216,160,223,64,216,167,223,242,80,98,81,169,81,216,81,243,81,244,81,128,82,129,82,130,82,131,82,132,82,0,53,4,53,6,53,232,82,233,82,234,82,235,82,236,82,237,82,34,53,48,83,49,83,50,83,53,53,172,83,173,83,174,83,176,83,81,53,198,83,66,216,13,223,14,250,97,53,246,85,247,85,248,85,249,85,250,85,251,85,252,85,253,85,254,85,255,85,0,86,1,86,2,86,3,86,4,86,5,86,6,86,7,86,8,86,9,86,10,86,11,86,12,86,13,86,14,86,15,86,16,86,17,86,18,86,19,86,20,86,21,86,22,86,23,86,24,86,25,86,26,86,27,86,28,86,29,86,30,86,33,86,34,86,35,86,36,86,37,86,38,86,39,86,60,0,42,0,81,86,67,216,215,222,67,216,216,222,67,216,221,222,67,216,248,222,67,216,249,222,67,216,250,222,67,216,251,222,67,216,29,223,67,216,38,223,67,216,45,223,67,216,46,223,67,216,48,223,67,216,49,223,67,216,59,223,67,216,76,223,31,86,40,86,22,87,23,87,24,87,25,87,114,88,115,88,116,88,117,88,118,88,119,88,120,88,121,88,122,88,123,88,124,88,125,88,126,88,127,88,129,88,130,88,131,88,132,88,133,88,134,88,135,88,136,88,137,88,138,88,139,88,140,88,141,88,142,88,143,88,144,88,145,88,146,88,147,88,148,88,149,88,150,88,151,88,152,88,153,88,154,88,155,88,97,54,101,54,102,54,68,216,237,223,68,216,254,223,69,216,19,220,69,216,22,220,173,88,253,88,254,88,16,89,34,89,35,89,36,89,37,89,105,89,106,89,107,89,108,89,213,90,214,90,215,90,216,90,217,90,218,90,219,90,220,90,221,90,222,90,223,90,224,90,225,90,226,90,227,90,228,90,229,90,230,90,231,90,232,90,233,90,234,90,235,90,236,90,237,90,238,90,239,90,240,90,241,90,242,90,28,55,30,55,32,55,34,55,70,216,32,220,70,216,40,220,70,216,41,220,70,216,42,220,70,216,45,220,70,216,57,220,70,216,58,220,70,216,59,220,70,216,64,220,70,216,69,220,243,90,117,91,60,0,42,0,119,91,70,216,150,221,222,91,223,91,224,91,225,91,226,91,227,91,228,91,229,91,230,91,231,91,232,91,13,92,33,92,98,92,99,92,119,93,120,93,121,93,122,93,123,93,124,93,125,93,126,93,127,93,128,93,129,93,130,93,131,93,132,93,133,93,134,93,135,93,136,93,137,93,138,93,139,93,140,93,141,93,142,93,251,55,0,56,1,56,4,56,81,94,82,94,83,94,84,94,85,94,86,94,87,94,88,94,89,94,91,94,72,216,42,221,99,94,205,94,206,94,207,94,208,94,209,94,210,94,211,94,212,94,213,94,214,94,215,94,216,94,217,94,220,94,10,95,67,95,68,95,69,95,195,56,70,95,111,95,112,95,209,56,177,95,179,95,180,95,73,216,84,221,182,95,40,97,44,97,51,97,56,97,59,97,63,97,65,97,66,97,71,97,72,97,75,97,80,97,120,57,82,97,83,97,84,97,86,97,88,97,90,97,91,97,94,97,95,97,96,97,97,97,98,97,99,97,101,97,105,97,106,97,108,97,111,97,113,97,114,97,115,97,116,97,117,97,119,97,122,97,123,97,125,97,128,97,129,97,134,97,60,0,42,0,136,97,128,57,74,216,3,220,39,98,40,98,41,98,42,98,43,98,44,98,43,100,52,100,59,100,63,100,75,100,76,100,77,100,78,100,79,100,80,100,81,100,83,100,84,100,85,100,87,100,88,100,89,100,90,100,91,100,92,100,93,100,94,100,95,100,96,100,98,100,99,100,100,100,101,100,102,100,103,100,106,100,107,100,108,100,109,100,113,100,114,100,115,100,116,100,117,100,118,100,119,100,120,100,122,100,123,100,124,100,125,100,126,100,127,100,129,100,130,100,132,100,135,100,47,58,49,58,50,58,51,58,52,58,53,58,54,58,55,58,56,58,57,58,75,216,183,220,75,216,194,220,75,216,198,220,75,216,201,220,75,216,7,221,75,216,8,221,75,216,18,221,86,100,166,100,113,101,114,101,115,101,160,101,161,101,178,101,76,216,183,220,214,101,215,101,154,102,155,102,156,102,157,102,158,102,159,102,160,102,161,102,162,102,163,102,164,102,165,102,166,102,167,102,168,102,13,59,14,59,15,59,16,59,76,216,86,222,76,216,94,222,76,216,98,222,4,103,5,103,34,103,59,59,138,105,141,105,142,105,143,105,144,105,145,105,146,105,147,105,149,105,150,105,151,105,153,105,154,105,60,0,42,0,155,105,156,105,157,105,158,105,159,105,160,105,161,105,162,105,163,105,164,105,165,105,166,105,167,105,168,105,169,105,170,105,171,105,172,105,173,105,174,105,175,105,176,105,177,105,178,105,179,105,180,105,181,105,182,105,183,105,184,105,185,105,186,105,187,105,188,105,189,105,190,105,191,105,192,105,193,105,194,105,195,105,196,105,197,105,198,105,199,105,200,105,201,105,202,105,203,105,204,105,205,105,206,105,207,105,208,105,209,105,210,105,211,105,212,105,213,105,214,105,215,105,216,105,217,105,218,105,219,105,220,105,221,105,222,105,223,105,224,105,225,105,46,106,20,250,188,59,77,216,187,221,77,216,205,221,77,216,206,221,77,216,207,221,77,216,243,221,77,216,0,222,3,106,73,107,74,107,75,107,76,107,77,107,112,107,116,107,157,107,158,107,159,107,160,107,161,107,195,107,196,107,78,216,250,222,254,107,50,108,51,108,206,110,204,110,235,110,236,110,237,110,238,110,239,110,240,110,241,110,242,110,243,110,244,110,245,110,246,110,247,110,248,110,249,110,250,110,251,110,252,110,253,110,254,110,255,110,1,111,2,111,3,111,4,111,5,111,6,111,60,0,42,0,7,111,8,111,9,111,10,111,12,111,13,111,14,111,15,111,17,111,18,111,20,111,21,111,22,111,23,111,24,111,25,111,26,111,27,111,28,111,29,111,30,111,31,111,32,111,33,111,34,111,35,111,36,111,37,111,39,111,40,111,41,111,42,111,43,111,44,111,45,111,46,111,47,111,48,111,49,111,50,111,51,111,52,111,53,111,54,111,55,111,56,111,57,111,58,111,59,111,60,111,62,111,64,111,66,111,67,111,68,111,69,111,70,111,71,111,72,111,73,111,74,111,75,111,76,111,77,111,61,61,70,61,79,216,215,222,79,216,247,222,79,216,248,222,79,216,249,222,79,216,250,222,79,216,251,222,79,216,252,222,79,216,53,223,79,216,65,223,78,111,115,111,85,113,91,113,121,113,123,113,124,113,125,113,126,113,127,113,128,113,129,113,130,113,131,113,132,113,133,113,134,113,135,113,136,113,137,113,138,113,139,113,140,113,141,113,142,113,143,113,144,113,145,113,146,113,147,113,148,113,149,113,150,113,151,113,152,113,153,113,184,132,231,61,232,61,80,216,13,223,80,216,26,223,80,216,52,223,80,216,72,223,51,114,62,114,68,114,83,114,84,114,34,62,146,114,147,114,148,114,149,114,60,0,42,0,150,114,151,114,67,115,68,115,76,115,77,115,79,115,80,115,81,115,82,115,83,115,84,115,85,115,96,116,97,116,98,116,99,116,100,116,101,116,102,116,103,116,104,116,106,116,107,116,109,116,110,116,112,116,113,116,114,116,115,116,116,116,117,116,118,116,119,116,120,116,231,62,233,62,82,216,236,221,82,216,237,221,82,216,246,221,82,216,247,221,82,216,248,221,82,216,249,221,82,216,251,221,82,216,14,222,82,216,18,222,82,216,19,222,0,117,2,117,3,117,4,117,5,117,6,117,82,216,110,223,39,117,123,117,124,117,125,117,144,117,145,117,7,118,8,118,9,118,10,118,11,118,12,118,13,118,14,118,17,118,18,118,19,118,20,118,21,118,22,118,23,118,24,118,39,118,182,118,183,118,184,118,185,118,224,118,225,118,226,118,227,118,110,119,111,119,112,119,113,119,114,119,115,119,116,119,117,119,118,119,119,119,120,119,122,119,123,119,124,119,125,119,126,119,127,119,128,119,129,119,130,119,131,119,132,119,133,119,134,119,83,64,84,216,32,222,84,216,33,222,126,120,157,120,158,120,159,120,160,120,161,120,162,120,163,120,164,120,165,120,166,120,167,120,168,120,169,120,170,120,171,120,60,0,42,0,172,120,173,120,174,120,175,120,177,120,178,120,179,120,180,120,181,120,182,120,183,120,184,120,185,120,193,120,200,64,135,121,136,121,137,121,138,121,139,121,140,121,141,121,142,121,143,121,144,121,145,121,146,121,147,121,148,121,149,121,150,121,151,121,152,121,153,121,38,122,39,122,40,122,41,122,42,122,43,122,44,122,45,122,46,122,47,122,48,122,49,122,50,122,51,122,74,122,103,65,53,122,168,122,169,122,170,122,171,122,172,122,173,122,86,216,204,221,236,122,237,122,239,122,240,122,86,216,156,222,238,122,117,123,129,123,130,123,131,123,132,123,133,123,134,123,135,123,136,123,137,123,138,123,139,123,140,123,141,123,142,123,143,123,144,123,145,123,146,123,147,123,148,123,149,123,150,123,151,123,152,123,153,123,154,123,155,123,156,123,157,123,158,123,159,123,160,123,161,123,162,123,163,123,164,123,165,123,166,123,167,123,168,123,169,123,170,123,171,123,1,66,2,66,3,66,4,66,5,66,6,66,7,66,8,66,9,66,10,66,11,66,12,66,13,66,86,216,179,223,86,216,180,223,86,216,198,223,184,123,182,124,183,124,184,124,60,0,42,0,185,124,186,124,187,124,188,124,189,124,190,124,191,124,193,124,87,216,166,222,87,216,188,222,150,125,208,125,156,125,157,125,158,125,159,125,160,125,161,125,162,125,163,125,164,125,165,125,166,125,167,125,168,125,169,125,170,125,171,125,172,125,173,125,174,125,175,125,176,125,177,125,178,125,179,125,180,125,181,125,182,125,183,125,184,125,185,125,186,125,187,125,188,125,189,125,190,125,191,125,192,125,193,125,194,125,195,125,196,125,197,125,198,125,199,125,200,125,201,125,202,125,203,125,204,125,205,125,206,125,207,125,209,125,210,125,212,125,213,125,232,66,233,66,236,66,237,66,241,66,88,216,72,220,88,216,100,220,37,127,38,127,39,127,40,127,41,127,42,127,43,127,65,127,66,127,111,127,112,127,113,127,115,127,116,127,171,127,222,127,223,127,224,127,225,127,226,127,227,127,228,127,89,216,74,220,229,127,35,128,36,128,37,128,89,128,90,128,91,128,92,128,93,128,94,128,95,128,97,128,98,128,99,128,186,67,89,216,160,221,135,128,136,128,80,129,127,129,128,129,129,129,130,129,131,129,132,129,133,129,134,129,135,129,136,129,137,129,60,0,42,0,138,129,139,129,140,129,141,129,142,129,143,129,145,129,32,68,37,68,38,68,89,216,153,223,89,216,179,223,89,216,180,223,89,216,204,223,231,129,250,129,7,130,19,130,20,130,21,130,30,130,74,130,75,130,76,130,77,130,90,216,81,222,90,216,82,222,221,68,222,68,223,68,225,68,228,68,233,68,234,68,235,68,236,68,144,132,145,132,146,132,147,132,148,132,149,132,150,132,151,132,152,132,153,132,154,132,155,132,156,132,157,132,158,132,159,132,160,132,161,132,162,132,163,132,164,132,165,132,166,132,167,132,168,132,169,132,170,132,171,132,172,132,173,132,174,132,175,132,176,132,177,132,178,132,179,132,180,132,181,132,182,132,183,132,185,132,186,132,187,132,188,132,189,132,190,132,191,132,192,132,193,132,194,132,195,132,196,132,198,132,199,132,201,132,202,132,203,132,204,132,205,132,206,132,207,132,208,132,209,132,210,132,211,132,212,132,213,132,214,132,215,132,216,132,217,132,218,132,219,132,220,132,221,132,223,132,225,132,226,132,227,132,228,132,230,132,91,216,116,221,91,216,160,221,91,216,161,221,91,216,162,221,91,216,163,221,91,216,164,221,91,216,165,221,91,216,166,221,91,216,167,221,91,216,174,221,91,216,220,221,60,0,42,0,91,216,234,221,91,216,235,221,91,216,240,221,229,132,96,134,97,134,92,216,205,221,17,135,18,135,43,135,24,135,25,135,26,135,27,135,28,135,29,135,30,135,31,135,32,135,33,135,34,135,35,135,36,135,37,135,38,135,39,135,40,135,41,135,42,135,44,135,45,135,46,135,47,135,48,135,49,135,50,135,51,135,52,135,53,135,54,135,55,135,56,135,57,135,58,135,59,135,60,135,61,135,62,135,63,135,64,135,65,135,66,135,67,135,68,135,69,135,71,135,72,135,73,135,74,135,75,135,85,135,107,135,226,136,231,136,232,136,233,136,234,136,235,136,236,136,237,136,238,136,239,136,240,136,241,136,242,136,243,136,244,136,245,136,246,136,247,136,248,136,249,136,250,136,251,136,252,136,253,136,254,136,255,136,0,137,2,137,3,137,4,137,59,70,26,137,157,137,158,137,159,137,160,137,161,137,207,137,232,137,233,137,234,137,235,137,139,138,140,138,141,138,142,138,143,138,144,138,145,138,146,138,147,138,148,138,150,138,151,138,152,138,153,138,154,138,155,138,156,138,157,138,158,138,159,138,161,138,162,138,163,138,164,138,60,0,42,0,165,138,166,138,167,138,168,138,169,138,170,138,171,138,172,138,173,138,174,138,94,216,253,221,94,216,10,222,94,216,14,222,45,140,46,140,47,140,48,140,49,140,50,140,61,140,103,140,104,140,105,140,106,140,139,140,140,140,141,140,207,140,208,140,209,140,210,140,211,140,212,140,213,140,214,140,215,140,216,140,98,53,95,216,143,221,95,216,152,221,88,141,89,141,90,141,91,141,107,141,149,141,150,141,151,141,152,141,153,141,154,141,252,141,253,141,254,141,255,141,0,142,1,142,2,142,3,142,4,142,5,142,6,142,7,142,8,142,9,142,10,142,11,142,12,142,13,142,14,142,244,71,96,216,72,220,179,142,180,142,181,142,13,143,14,143,15,143,16,143,17,143,18,143,19,143,20,143,21,143,96,216,6,223,96,216,24,223,149,143,150,143,151,143,161,143,162,143,163,143,88,144,89,144,90,144,91,144,92,144,93,144,94,144,95,144,96,144,97,144,98,144,99,144,100,144,101,144,210,144,24,145,25,145,26,145,27,145,28,145,29,145,30,145,31,145,32,145,33,145,34,145,35,145,36,145,37,145,114,145,115,145,116,145,117,145,118,145,119,145,120,145,60,0,42,0,121,145,122,145,123,145,124,145,125,145,126,145,127,145,250,72,45,146,117,146,118,146,119,146,120,146,121,146,122,146,123,146,125,146,126,146,127,146,128,146,129,146,130,146,131,146,132,146,133,146,134,146,135,146,136,146,137,146,138,146,139,146,140,146,141,146,142,146,144,146,145,146,146,146,147,146,148,146,149,146,150,146,151,146,152,146,153,146,154,146,155,146,156,146,157,146,158,146,159,146,160,146,161,146,162,146,163,146,164,146,165,146,166,146,167,146,168,146,169,146,170,146,171,146,172,146,173,146,174,146,175,146,176,146,177,146,36,73,37,73,38,73,42,73,98,216,137,221,98,216,168,221,98,216,170,221,98,216,171,221,238,146,124,146,50,149,51,149,52,149,53,149,54,149,55,149,56,149,57,149,58,149,59,149,60,149,61,149,62,149,63,149,64,149,65,149,66,149,67,149,68,149,69,149,161,149,162,149,163,149,164,149,165,149,166,149,167,149,168,149,169,149,170,149,26,150,153,150,154,150,155,150,156,150,157,150,158,150,159,150,160,150,161,150,204,150,208,150,209,150,210,150,99,216,197,223,255,150,0,151,1,151,15,74,100,216,175,220,60,0,42,0,100,216,176,220,100,216,177,220,87,151,88,151,89,151,100,151,122,151,123,151,124,151,125,151,126,151,127,151,128,151,129,151,130,151,131,151,132,151,133,151,134,151,205,151,206,151,236,151,246,151,247,151,101,216,29,220,25,152,20,152,21,152,22,152,23,152,24,152,26,152,184,74,151,152,173,152,174,152,175,152,176,152,177,152,255,74,0,75,101,216,184,221,214,152,213,152,215,152,248,152,44,75,0,153,1,153,2,153,3,153,4,153,5,153,6,153,7,153,9,153,12,153,14,153,15,153,145,153,146,153,155,153,156,153,157,153,111,75,182,153,183,153,184,153,185,153,186,153,187,153,188,153,189,153,190,153,191,153,192,153,193,153,194,153,195,153,196,153,197,153,198,153,199,153,123,75,126,75,160,154,161,154,162,154,175,154,176,154,177,154,200,75,218,154,227,154,228,154,229,154,230,154,231,154,232,154,233,154,234,154,102,216,5,223,102,216,14,223,38,155,62,155,63,155,64,155,65,155,66,155,103,216,173,220,95,155,96,155,97,155,98,155,103,216,90,221,145,156,146,156,147,156,148,156,149,156,150,156,151,156,152,156,153,156,154,156,155,156,156,156,157,156,60,0,42,0,158,156,159,156,241,156,242,156,243,156,244,156,245,156,246,156,85,158,86,158,87,158,89,158,90,158,91,158,92,158,167,158,188,158,189,158,59,159,74,159,135,159,136,159,60,0,39,0,208,253,15,40,39,0,60,0,42,0,245,80,246,80,248,80,249,80,250,80,251,80,252,80,253,80,254,80,255,80,0,81,1,81,2,81,3,81,4,81,5,81,6,81,7,81,8,81,9,81,10,81,11,81,12,81,13,81,14,81,15,81,147,52,150,52,152,52,64,216,201,223,64,216,203,223,48,81,217,81,218,81,219,81,220,81,65,216,17,222,133,82,134,82,135,82,136,82,137,82,138,82,139,82,140,82,141,82,142,82,143,82,238,82,239,82,240,82,241,82,242,82,20,83,51,83,177,83,178,83,66,216,180,222,199,83,89,53,83,86,32,86,41,86,42,86,43,86,44,86,45,86,46,86,47,86,48,86,49,86,50,86,51,86,52,86,53,86,54,86,55,86,56,86,57,86,58,86,59,86,60,86,61,86,62,86,63,86,64,86,65,86,66,86,67,86,68,86,70,86,71,86,72,86,73,86,74,86,75,86,76,86,77,86,78,86,79,86,80,86,82,86,84,86,86,86,87,86,88,86,89,86,90,86,91,86,92,86,93,86,116,86,241,53,242,53,243,53,67,216,100,223,67,216,141,223,67,216,144,223,67,216,173,223,67,216,180,223,67,216,181,223,67,216,182,223,67,216,188,223,68,216,20,220,26,87,128,88,156,88,157,88,60,0,42,0,158,88,159,88,160,88,161,88,162,88,163,88,164,88,165,88,166,88,167,88,169,88,170,88,171,88,172,88,174,88,175,88,176,88,177,88,178,88,179,88,180,88,181,88,182,88,183,88,184,88,185,88,69,216,36,220,69,216,63,220,69,216,82,220,69,216,84,220,69,216,85,220,255,88,0,89,69,216,119,221,38,89,109,89,244,90,245,90,246,90,247,90,248,90,249,90,250,90,251,90,252,90,253,90,254,90,255,90,0,91,1,91,2,91,3,91,4,91,5,91,6,91,7,91,8,91,9,91,10,91,11,91,12,91,13,91,14,91,15,91,35,55,37,55,38,55,70,216,82,220,70,216,94,220,70,216,97,220,70,216,98,220,70,216,99,220,70,216,100,220,70,216,119,220,70,216,123,220,70,216,131,220,70,216,132,220,70,216,133,220,233,91,235,91,236,91,237,91,238,91,111,55,14,92,70,216,68,223,53,92,100,92,101,92,102,92,103,92,160,55,143,93,144,93,145,93,146,93,147,93,148,93,149,93,150,93,151,93,152,93,153,93,154,93,155,93,156,93,157,93,158,93,159,93,160,93,161,93,162,93,163,93,164,93,165,93,15,56,71,216,15,223,71,216,21,223,228,93,90,94,92,94,93,94,94,94,95,94,96,94,97,94,98,94,100,94,60,0,42,0,101,94,97,56,105,94,218,94,219,94,221,94,222,94,223,94,224,94,225,94,226,94,227,94,228,94,71,95,72,95,73,95,113,95,178,95,181,95,183,95,184,95,185,95,186,95,85,97,87,97,89,97,92,97,93,97,100,97,102,97,103,97,107,97,110,97,112,97,118,97,120,97,121,97,124,97,126,97,127,97,130,97,131,97,132,97,133,97,135,97,109,97,137,97,139,97,141,97,142,97,143,97,144,97,146,97,147,97,148,97,149,97,152,97,154,97,155,97,156,97,158,97,159,97,161,97,162,97,163,97,164,97,166,97,167,97,170,97,171,97,172,97,173,97,174,97,175,97,176,97,177,97,179,97,137,57,138,57,146,57,74,216,95,220,74,216,96,220,74,216,113,220,45,98,46,98,47,98,104,100,105,100,110,100,111,100,112,100,121,100,128,100,131,100,60,58,133,100,134,100,136,100,138,100,139,100,140,100,141,100,142,100,143,100,144,100,145,100,146,100,147,100,148,100,149,100,150,100,151,100,152,100,153,100,154,100,155,100,156,100,157,100,158,100,159,100,160,100,161,100,162,100,163,100,164,100,165,100,167,100,168,100,60,0,42,0,169,100,170,100,171,100,172,100,173,100,174,100,175,100,176,100,177,100,178,100,179,100,180,100,181,100,182,100,183,100,184,100,185,100,186,100,198,100,75,58,75,216,68,221,75,216,76,221,75,216,103,221,117,101,118,101,119,101,120,101,121,101,122,101,123,101,75,216,204,223,179,101,76,216,188,220,169,102,170,102,171,102,172,102,173,102,174,102,175,102,176,102,177,102,178,102,179,102,180,102,181,102,182,102,183,102,17,59,18,59,19,59,20,59,21,59,22,59,76,216,129,222,76,216,138,222,188,102,164,129,60,59,61,59,62,59,233,105,226,105,227,105,228,105,229,105,230,105,231,105,232,105,234,105,235,105,236,105,237,105,238,105,239,105,240,105,241,105,242,105,243,105,244,105,245,105,246,105,247,105,248,105,249,105,250,105,251,105,252,105,253,105,254,105,255,105,0,106,1,106,2,106,4,106,5,106,6,106,7,106,8,106,9,106,10,106,11,106,12,106,13,106,14,106,15,106,16,106,17,106,18,106,19,106,20,106,21,106,22,106,23,106,24,106,25,106,26,106,27,106,28,106,29,106,30,106,31,106,32,106,33,106,34,106,35,106,36,106,37,106,60,0,42,0,38,106,39,106,41,106,42,106,43,106,44,106,45,106,47,106,48,106,49,106,101,106,190,59,194,59,196,59,77,216,23,222,77,216,26,222,77,216,60,222,77,216,64,222,77,216,89,222,77,216,95,222,77,216,119,222,78,107,79,107,80,107,81,107,82,107,83,107,117,107,118,107,162,107,163,107,164,107,165,107,166,107,115,60,116,60,197,107,198,107,255,107,0,108,1,108,2,108,213,110,0,111,16,111,38,111,63,111,65,111,11,111,61,111,79,111,80,111,81,111,82,111,83,111,84,111,85,111,86,111,87,111,88,111,89,111,90,111,91,111,92,111,93,111,95,111,96,111,97,111,98,111,99,111,100,111,101,111,102,111,103,111,104,111,105,111,106,111,107,111,108,111,109,111,110,111,111,111,112,111,113,111,114,111,116,111,117,111,118,111,119,111,120,111,121,111,122,111,123,111,124,111,125,111,126,111,127,111,129,111,130,111,132,111,133,111,134,111,135,111,136,111,137,111,138,111,139,111,140,111,141,111,142,111,143,111,144,111,145,111,146,111,147,111,148,111,149,111,150,111,151,111,152,111,154,111,155,111,156,111,157,111,208,111,76,61,78,61,81,61,60,0,42,0,79,216,74,223,79,216,97,223,79,216,127,223,79,216,128,223,79,216,129,223,79,216,130,223,79,216,143,223,79,216,180,223,79,216,183,223,198,111,166,113,154,113,155,113,156,113,157,113,158,113,159,113,160,113,161,113,162,113,163,113,164,113,165,113,167,113,168,113,169,113,170,113,171,113,172,113,173,113,174,113,175,113,176,113,177,113,178,113,179,113,180,113,181,113,217,158,166,159,235,61,80,216,98,223,80,216,99,223,80,216,100,223,80,216,101,223,80,216,140,223,80,216,150,223,80,216,156,223,85,86,52,114,69,114,85,114,86,114,87,114,152,114,153,114,154,114,155,114,81,216,212,222,78,115,75,115,86,115,87,115,88,115,89,115,90,115,91,115,92,115,93,115,94,115,95,115,96,115,97,115,98,115,100,115,82,216,130,220,105,116,108,116,121,116,122,116,123,116,124,116,125,116,126,116,128,116,129,116,130,116,131,116,132,116,133,116,134,116,135,116,136,116,137,116,138,116,139,116,140,116,142,116,147,116,235,62,236,62,240,62,243,62,244,62,82,216,21,222,82,216,33,222,82,216,34,222,82,216,35,222,82,216,36,222,82,216,37,222,82,216,38,222,82,216,39,222,82,216,40,222,82,216,41,222,82,216,42,222,82,216,62,222,7,117,8,117,9,117,83,63,82,216,245,223,126,117,127,117,31,118,25,118,26,118,27,118,28,118,60,0,42,0,29,118,30,118,32,118,33,118,34,118,35,118,36,118,37,118,38,118,40,118,41,118,42,118,43,118,183,63,192,63,83,216,59,222,83,216,80,222,154,118,155,118,156,118,157,118,158,118,229,63,83,216,151,223,83,216,154,223,186,118,228,118,135,119,136,119,137,119,138,119,139,119,140,119,141,119,142,119,143,119,144,119,145,119,146,119,147,119,87,64,84,216,80,222,186,120,187,120,188,120,189,120,190,120,191,120,192,120,194,120,195,120,196,120,197,120,198,120,199,120,200,120,201,120,202,120,203,120,204,120,205,120,206,120,207,120,208,120,209,120,210,120,211,120,212,120,213,120,215,120,216,120,217,120,228,120,85,216,49,221,85,216,53,221,85,216,63,221,154,121,155,121,156,121,157,121,158,121,159,121,160,121,161,121,162,121,163,121,85,216,227,222,52,122,54,122,55,122,56,122,57,122,58,122,59,122,60,122,61,122,62,122,63,122,64,122,65,122,66,122,67,122,108,65,110,65,117,65,86,216,87,220,174,122,175,122,176,122,177,122,178,122,179,122,180,122,172,123,173,123,174,123,175,123,176,123,177,123,178,123,179,123,180,123,181,123,182,123,183,123,185,123,186,123,187,123,60,0,42,0,188,123,189,123,190,123,191,123,193,123,194,123,195,123,196,123,197,123,198,123,199,123,200,123,202,123,203,123,204,123,205,123,206,123,207,123,208,123,209,123,210,123,211,123,14,66,15,66,16,66,17,66,18,66,19,66,20,66,21,66,26,66,28,66,32,66,34,66,35,66,38,66,41,66,86,216,228,223,86,216,232,223,87,216,1,220,87,216,6,220,194,124,195,124,196,124,197,124,198,124,199,124,200,124,201,124,202,124,203,124,204,124,205,124,206,124,148,66,87,216,215,222,87,216,216,222,211,125,214,125,215,125,216,125,217,125,218,125,219,125,220,125,221,125,222,125,223,125,224,125,225,125,226,125,227,125,228,125,229,125,230,125,231,125,232,125,233,125,234,125,235,125,236,125,237,125,238,125,239,125,240,125,241,125,242,125,243,125,244,125,245,125,246,125,247,125,248,125,249,125,250,125,251,125,252,125,253,125,254,125,255,125,0,126,1,126,2,126,3,126,4,126,5,126,6,126,7,126,244,66,251,66,252,66,0,67,1,67,4,67,88,216,131,220,88,216,151,220,88,216,164,220,88,216,165,220,62,67,44,127,45,127,46,127,47,127,117,127,118,127,119,127,120,127,172,127,60,0,42,0,173,127,174,127,175,127,176,127,230,127,231,127,232,127,233,127,234,127,235,127,236,127,237,127,89,216,105,220,38,128,39,128,172,67,100,128,101,128,102,128,103,128,104,128,105,128,106,128,107,128,89,216,173,221,146,129,147,129,148,129,149,129,150,129,151,129,152,129,153,129,154,129,155,129,156,129,157,129,158,129,159,129,160,129,161,129,162,129,163,129,45,68,51,68,52,68,241,129,22,130,23,130,78,130,79,130,80,130,81,130,82,130,83,130,84,130,122,68,138,132,244,68,224,132,231,132,232,132,233,132,234,132,235,132,236,132,237,132,238,132,239,132,240,132,242,132,243,132,244,132,245,132,246,132,247,132,248,132,249,132,250,132,251,132,252,132,253,132,254,132,255,132,0,133,1,133,2,133,3,133,4,133,5,133,6,133,8,133,9,133,10,133,11,133,12,133,13,133,14,133,15,133,16,133,17,133,18,133,19,133,20,133,21,133,22,133,23,133,24,133,25,133,26,133,27,133,28,133,29,133,30,133,31,133,32,133,33,133,34,133,35,133,36,133,37,133,38,133,39,133,40,133,41,133,42,133,43,133,44,133,60,0,42,0,45,133,46,133,47,133,48,133,49,133,50,133,51,133,52,133,53,133,54,133,55,133,56,133,57,133,58,133,59,133,60,133,91,216,0,222,91,216,5,222,91,216,7,222,91,216,18,222,91,216,66,222,91,216,67,222,91,216,68,222,91,216,69,222,91,216,110,222,91,216,114,222,91,216,119,222,91,216,132,222,61,133,79,133,98,134,76,135,78,135,79,135,80,135,81,135,82,135,83,135,84,135,86,135,87,135,88,135,89,135,90,135,91,135,92,135,93,135,94,135,95,135,96,135,97,135,98,135,99,135,100,135,101,135,102,135,103,135,104,135,105,135,106,135,108,135,109,135,110,135,111,135,112,135,113,135,114,135,115,135,116,135,117,135,118,135,119,135,120,135,122,135,123,135,124,135,125,135,126,135,127,135,128,135,225,135,92,216,82,223,92,216,154,223,130,135,90,136,91,136,92,136,93,136,93,216,253,221,230,136,5,137,6,137,7,137,8,137,9,137,10,137,11,137,12,137,13,137,14,137,15,137,16,137,17,137,18,137,19,137,20,137,21,137,22,137,23,137,24,137,25,137,27,137,28,137,29,137,69,70,70,70,93,216,15,223,162,137,163,137,164,137,165,137,94,216,88,220,169,137,208,137,209,137,236,137,237,137,238,137,60,0,42,0,239,137,240,137,149,138,175,138,176,138,177,138,178,138,179,138,180,138,181,138,182,138,183,138,184,138,185,138,186,138,187,138,188,138,189,138,190,138,191,138,192,138,193,138,194,138,195,138,196,138,197,138,198,138,199,138,200,138,201,138,202,138,203,138,204,138,205,138,206,138,207,138,208,138,209,138,210,138,211,138,212,138,213,138,214,138,215,138,216,138,217,138,218,138,233,138,245,70,247,70,94,216,62,222,94,216,83,222,94,216,89,222,219,138,248,138,51,140,52,140,53,140,62,140,76,140,77,140,78,140,94,216,239,223,94,216,244,223,108,140,142,140,143,140,217,140,218,140,219,140,220,140,221,140,222,140,223,140,224,140,225,140,226,140,227,140,228,140,229,140,230,140,231,140,232,140,233,140,234,140,235,140,236,140,124,71,237,140,92,141,109,141,155,141,156,141,157,141,158,141,159,141,160,141,161,141,162,141,163,141,164,141,15,142,16,142,17,142,18,142,19,142,20,142,21,142,22,142,23,142,24,142,25,142,26,142,27,142,28,142,29,142,30,142,31,142,32,142,33,142,34,142,35,142,36,142,37,142,38,142,39,142,40,142,41,142,60,0,42,0,42,142,44,142,45,142,46,142,47,142,58,142,0,72,1,72,11,72,96,216,131,220,96,216,144,220,43,142,55,142,182,142,183,142,184,142,185,142,186,142,187,142,188,142,96,216,86,222,22,143,23,143,24,143,25,143,26,143,27,143,28,143,29,143,30,143,31,143,32,143,33,143,34,143,35,143,36,143,37,143,38,143,39,143,40,143,41,143,42,143,43,143,44,143,93,72,96,216,47,223,96,216,58,223,152,143,164,143,179,143,102,144,103,144,104,144,105,144,106,144,107,144,108,144,109,144,110,144,111,144,112,144,113,144,115,144,119,144,246,144,38,145,39,145,41,145,42,145,43,145,45,145,46,145,47,145,48,145,49,145,50,145,221,72,128,145,129,145,130,145,131,145,132,145,133,145,134,145,135,145,136,145,137,145,138,145,139,145,140,145,178,146,179,146,180,146,181,146,182,146,183,146,184,146,185,146,186,146,187,146,188,146,189,146,190,146,191,146,192,146,193,146,194,146,195,146,196,146,197,146,198,146,199,146,200,146,201,146,202,146,204,146,205,146,206,146,207,146,208,146,209,146,210,146,211,146,212,146,213,146,214,146,215,146,216,146,60,0,42,0,217,146,218,146,219,146,220,146,221,146,222,146,223,146,224,146,225,146,226,146,227,146,228,146,229,146,230,146,231,146,232,146,233,146,234,146,235,146,236,146,237,146,239,146,240,146,241,146,242,146,243,146,244,146,245,146,246,146,39,250,45,73,47,73,48,73,98,216,184,221,98,216,188,221,98,216,192,221,98,216,220,221,98,216,222,221,98,216,225,221,98,216,227,221,98,216,228,221,70,149,71,149,72,149,73,149,74,149,75,149,76,149,77,149,78,149,79,149,80,149,81,149,82,149,83,149,84,149,85,149,124,149,171,149,172,149,173,149,174,149,175,149,176,149,177,149,178,149,179,149,180,149,99,216,52,221,162,150,163,150,164,150,165,150,229,73,211,150,2,151,3,151,4,151,5,151,6,151,7,151,8,151,9,151,10,151,100,216,192,220,90,151,96,151,101,151,135,151,136,151,137,151,138,151,139,151,140,151,141,151,142,151,143,151,144,151,145,151,146,151,207,151,208,151,209,151,239,151,101,216,32,220,27,152,28,152,29,152,30,152,31,152,32,152,33,152,34,152,35,152,38,152,39,152,40,152,41,152,42,152,43,152,44,152,152,152,153,152,154,152,155,152,156,152,157,152,178,152,60,0,42,0,179,152,216,152,250,152,8,153,10,153,11,153,13,153,55,75,17,153,18,153,19,153,20,153,21,153,22,153,23,153,24,153,25,153,147,153,148,153,200,153,201,153,202,153,203,153,204,153,205,153,206,153,207,153,208,153,209,153,210,153,211,153,212,153,213,153,214,153,215,153,216,153,217,153,218,153,219,153,220,153,221,153,222,153,223,153,224,153,102,216,164,220,163,154,178,154,179,154,180,154,181,154,182,154,183,154,219,154,235,154,236,154,238,154,239,154,240,154,241,154,242,154,243,154,244,154,39,155,67,155,68,155,69,155,70,155,32,76,99,155,100,155,101,155,102,155,103,155,104,155,105,155,106,155,107,155,108,155,109,155,110,155,111,155,112,155,113,155,114,155,115,155,116,155,117,155,118,155,119,155,120,155,121,155,59,76,62,76,103,216,124,221,160,156,161,156,162,156,163,156,164,156,165,156,166,156,167,156,168,156,169,156,170,156,171,156,172,156,247,156,248,156,249,156,250,156,251,156,252,156,253,156,254,156,255,156,0,157,1,157,2,157,3,157,4,157,5,157,6,157,7,157,8,157,9,157,11,157,12,157,60,0,42,0,13,157,14,157,174,76,176,76,183,76,103,216,183,223,88,158,93,158,94,158,95,158,96,158,97,158,98,158,99,158,100,158,118,158,131,158,132,158,104,216,147,222,168,158,169,158,170,158,171,158,185,158,190,158,206,158,168,88,211,158,15,159,16,159,17,159,81,159,82,159,137,159,138,159,60,0,39,0,208,253,16,40,39,0,60,0,42,0,184,78,16,81,17,81,18,81,19,81,20,81,21,81,22,81,23,81,24,81,25,81,26,81,27,81,28,81,29,81,30,81,43,81,64,216,245,223,64,216,252,223,99,81,65,216,252,220,128,81,170,81,221,81,222,81,65,216,21,222,144,82,145,82,146,82,147,82,148,82,243,82,52,83,225,83,94,86,95,86,96,86,97,86,98,86,99,86,100,86,101,86,102,86,103,86,104,86,105,86,106,86,107,86,108,86,109,86,110,86,111,86,112,86,113,86,114,86,115,86,117,86,118,86,119,86,120,86,121,86,122,86,123,86,124,86,251,53,254,53,0,54,1,54,2,54,3,54,4,54,67,216,223,223,67,216,234,223,67,216,235,223,67,216,236,223,67,216,237,223,68,216,29,220,68,216,30,220,27,87,28,87,186,88,187,88,188,88,189,88,190,88,191,88,192,88,193,88,194,88,195,88,196,88,197,88,198,88,199,88,200,88,201,88,202,88,203,88,204,88,179,159,1,89,110,89,111,89,16,91,17,91,18,91,19,91,20,91,21,91,22,91,23,91,24,91,25,91,26,91,27,91,28,91,29,91,30,91,31,91,32,91,33,91,34,91,52,91,43,55,44,55,45,55,70,216,158,220,70,216,159,220,60,0,42,0,70,216,160,220,70,216,161,220,70,216,162,220,70,216,190,220,70,216,191,220,40,91,120,91,121,91,239,91,240,91,166,93,167,93,168,93,169,93,170,93,171,93,172,93,173,93,174,93,175,93,176,93,177,93,178,93,179,93,180,93,181,93,182,93,102,94,103,94,104,94,98,56,99,56,100,56,72,216,91,221,111,94,229,94,230,94,231,94,232,94,233,94,234,94,74,95,75,95,91,95,92,95,73,216,113,220,73,216,176,220,187,95,188,95,138,97,140,97,145,97,150,97,151,97,153,97,157,97,160,97,165,97,168,97,169,97,178,97,180,97,182,97,183,97,184,97,185,97,186,97,189,97,190,97,191,97,192,97,193,97,196,97,197,97,198,97,200,97,202,97,204,97,205,97,206,97,207,97,208,97,210,97,211,97,212,97,153,57,74,216,173,220,74,216,193,220,187,97,49,98,48,98,137,100,187,100,188,100,189,100,190,100,191,100,192,100,193,100,194,100,195,100,196,100,197,100,199,100,200,100,201,100,203,100,204,100,205,100,207,100,208,100,209,100,210,100,211,100,212,100,213,100,214,100,215,100,217,100,218,100,219,100,220,100,221,100,222,100,82,58,84,58,87,58,75,216,141,221,60,0,42,0,75,216,149,221,75,216,160,221,75,216,163,221,75,216,164,221,75,216,183,221,243,100,51,101,116,101,124,101,125,101,126,101,127,101,75,216,227,223,147,101,162,101,180,101,216,101,217,101,184,102,185,102,186,102,187,102,189,102,190,102,191,102,192,102,193,102,194,102,195,102,196,102,197,102,198,102,199,102,200,102,201,102,202,102,203,102,204,102,205,102,167,159,23,59,24,59,25,59,26,59,27,59,28,59,29,59,30,59,31,59,76,216,137,222,76,216,171,222,76,216,172,222,76,216,173,222,207,102,6,103,49,59,35,103,36,103,63,59,40,106,116,106,50,106,51,106,52,106,53,106,54,106,55,106,56,106,57,106,58,106,59,106,60,106,61,106,62,106,63,106,64,106,65,106,66,106,67,106,68,106,69,106,70,106,71,106,72,106,73,106,74,106,75,106,76,106,77,106,78,106,79,106,80,106,81,106,82,106,83,106,84,106,85,106,86,106,87,106,88,106,89,106,90,106,91,106,92,106,93,106,94,106,95,106,96,106,97,106,98,106,99,106,100,106,102,106,103,106,104,106,105,106,106,106,107,106,108,106,109,106,110,106,111,106,112,106,113,106,114,106,115,106,117,106,118,106,60,0,42,0,119,106,120,106,121,106,122,106,123,106,124,106,215,59,221,59,77,216,142,222,77,216,158,222,77,216,166,222,77,216,173,222,77,216,186,222,77,216,223,222,77,216,238,222,84,107,85,107,86,107,87,107,88,107,89,107,90,107,119,107,167,107,168,107,169,107,170,107,171,107,199,107,200,107,3,108,4,108,5,108,6,108,7,108,94,111,131,111,153,111,158,111,159,111,160,111,161,111,162,111,163,111,164,111,165,111,166,111,167,111,168,111,170,111,171,111,172,111,173,111,174,111,175,111,176,111,177,111,178,111,179,111,180,111,181,111,182,111,183,111,184,111,185,111,186,111,187,111,188,111,189,111,190,111,191,111,192,111,193,111,194,111,195,111,196,111,197,111,199,111,200,111,201,111,202,111,203,111,205,111,206,111,207,111,209,111,210,111,211,111,214,111,95,61,98,61,101,61,105,61,106,61,79,216,197,223,79,216,235,223,79,216,236,223,79,216,237,223,79,216,238,223,79,216,239,223,79,216,240,223,80,216,17,220,4,112,182,113,183,113,184,113,185,113,186,113,187,113,188,113,189,113,190,113,191,113,192,113,193,113,194,113,195,113,196,113,197,113,198,113,199,113,200,113,201,113,202,113,203,113,204,113,205,113,206,113,60,0,42,0,207,113,208,113,209,113,210,113,211,113,212,113,213,113,214,113,215,113,216,113,217,113,218,113,219,113,220,113,221,113,222,113,243,61,244,61,247,61,252,61,253,61,80,216,189,223,80,216,193,223,80,216,233,223,80,216,234,223,80,216,242,223,156,114,157,114,158,114,159,114,99,115,101,115,102,115,103,115,104,115,105,115,106,115,107,115,108,115,109,115,127,116,141,116,143,116,145,116,146,116,148,116,149,116,150,116,152,116,153,116,154,116,155,116,156,116,157,116,158,116,159,116,160,116,161,116,163,116,164,116,252,62,82,216,66,222,82,216,69,222,82,216,74,222,82,216,78,222,82,216,79,222,82,216,80,222,82,216,81,222,82,216,93,222,82,216,101,222,82,216,102,222,82,216,103,222,162,116,226,116,82,216,15,223,10,117,11,117,12,117,13,117,14,117,128,117,129,117,130,117,83,216,201,220,44,118,45,118,46,118,47,118,48,118,49,118,50,118,51,118,52,118,53,118,54,118,55,118,56,118,57,118,58,118,59,118,60,118,61,118,62,118,63,118,74,118,200,63,159,118,160,118,161,118,187,118,229,118,230,118,231,118,84,216,157,220,148,119,149,119,150,119,151,119,152,119,153,119,154,119,155,119,156,119,157,119,158,119,159,119,160,119,161,119,60,0,42,0,162,119,163,119,98,64,101,64,106,64,84,216,153,222,165,119,214,120,220,120,218,120,219,120,221,120,222,120,223,120,224,120,225,120,226,120,227,120,229,120,230,120,231,120,232,120,233,120,234,120,235,120,236,120,237,120,238,120,216,64,85,216,91,221,85,216,92,221,85,216,93,221,85,216,94,221,85,216,98,221,85,216,101,221,85,216,102,221,164,121,165,121,166,121,169,121,85,216,246,222,68,122,69,122,70,122,71,122,72,122,75,122,76,122,77,122,78,122,79,122,80,122,81,122,82,122,124,65,86,216,93,220,86,216,114,220,83,122,181,122,182,122,183,122,184,122,185,122,186,122,187,122,188,122,189,122,178,65,241,122,86,216,174,222,201,123,212,123,213,123,214,123,215,123,216,123,217,123,218,123,219,123,220,123,221,123,222,123,223,123,224,123,225,123,226,123,227,123,228,123,229,123,230,123,231,123,232,123,233,123,234,123,235,123,236,123,237,123,238,123,239,123,17,124,42,66,43,66,45,66,46,66,48,66,49,66,50,66,87,216,33,220,87,216,74,220,87,216,101,220,249,123,207,124,208,124,209,124,210,124,211,124,212,124,213,124,214,124,215,124,216,124,0,74,8,126,9,126,10,126,11,126,12,126,13,126,60,0,42,0,14,126,15,126,16,126,17,126,18,126,19,126,20,126,21,126,22,126,23,126,24,126,25,126,26,126,27,126,28,126,29,126,30,126,31,126,32,126,33,126,34,126,35,126,36,126,37,126,38,126,39,126,40,126,10,67,48,127,49,127,50,127,51,127,52,127,67,127,121,127,122,127,123,127,124,127,177,127,178,127,238,127,239,127,240,127,241,127,40,128,41,128,42,128,89,216,18,221,108,128,109,128,193,67,89,216,191,221,110,128,144,129,37,103,166,129,167,129,168,129,169,129,170,129,171,129,172,129,173,129,174,129,175,129,176,129,177,129,178,129,179,129,180,129,181,129,182,129,59,68,90,216,28,220,90,216,110,220,183,129,185,129,242,129,251,129,8,130,6,130,9,130,24,130,85,130,86,130,87,130,88,130,89,130,222,132,0,69,3,69,4,69,9,69,11,69,62,133,63,133,64,133,65,133,66,133,67,133,68,133,69,133,70,133,71,133,72,133,73,133,74,133,75,133,76,133,77,133,78,133,80,133,81,133,82,133,83,133,84,133,85,133,86,133,88,133,89,133,90,133,91,133,92,133,93,133,94,133,95,133,96,133,97,133,60,0,42,0,98,133,99,133,100,133,101,133,102,133,103,133,104,133,105,133,106,133,107,133,108,133,109,133,110,133,111,133,112,133,113,133,114,133,115,133,116,133,117,133,91,216,136,222,91,216,139,222,91,216,153,222,91,216,208,222,91,216,209,222,91,216,210,222,91,216,211,222,91,216,212,222,91,216,213,222,91,216,214,222,91,216,215,222,91,216,38,223,140,133,31,250,99,134,100,134,101,134,102,134,121,135,129,135,131,135,132,135,133,135,134,135,135,135,136,135,137,135,138,135,139,135,140,135,141,135,142,135,143,135,144,135,145,135,146,135,147,135,148,135,149,135,150,135,151,135,152,135,153,135,154,135,155,135,156,135,157,135,158,135,159,135,160,135,161,135,162,135,163,135,164,135,165,135,166,135,167,135,168,135,169,135,218,69,221,69,94,136,95,136,96,136,97,136,23,70,93,216,254,221,30,137,31,137,32,137,33,137,34,137,35,137,36,137,37,137,38,137,39,137,40,137,41,137,42,137,43,137,44,137,45,137,46,137,47,137,48,137,49,137,50,137,52,137,79,70,93,216,53,223,93,216,54,223,93,216,65,223,166,137,167,137,168,137,170,137,94,216,112,220,241,137,161,70,220,138,221,138,222,138,223,138,224,138,225,138,226,138,227,138,60,0,42,0,228,138,229,138,230,138,231,138,232,138,234,138,235,138,236,138,237,138,238,138,239,138,240,138,241,138,242,138,243,138,244,138,245,138,246,138,247,138,249,138,250,138,251,138,252,138,253,138,254,138,255,138,0,139,1,139,2,139,3,139,94,216,121,222,94,216,132,222,20,139,107,140,109,140,110,140,78,71,95,216,108,220,144,140,145,140,146,140,147,140,238,140,239,140,240,140,241,140,242,140,243,140,244,140,245,140,95,216,189,221,93,141,94,141,95,141,96,141,108,141,110,141,165,141,166,141,167,141,95,216,46,223,48,142,49,142,50,142,51,142,52,142,53,142,54,142,56,142,57,142,59,142,60,142,61,142,62,142,63,142,64,142,65,142,66,142,67,142,68,142,69,142,96,216,189,220,96,216,190,220,189,142,190,142,45,143,46,143,47,143,48,143,49,143,50,143,51,143,52,143,53,143,54,143,55,143,56,143,57,143,58,143,59,143,60,143,96,216,101,223,153,143,154,143,165,143,166,143,167,143,168,143,169,143,170,143,114,144,116,144,117,144,118,144,120,144,121,144,122,144,123,144,124,144,134,144,173,72,97,216,232,221,97,216,244,221,97,216,0,222,250,144,51,145,52,145,53,145,60,0,42,0,54,145,55,145,141,145,142,145,143,145,144,145,145,145,146,145,147,145,148,145,149,145,150,145,151,145,0,73,6,73,203,146,247,146,248,146,249,146,250,146,251,146,252,146,253,146,254,146,255,146,0,147,1,147,2,147,3,147,4,147,5,147,6,147,7,147,8,147,9,147,10,147,11,147,12,147,13,147,14,147,15,147,16,147,17,147,18,147,19,147,20,147,21,147,22,147,23,147,24,147,25,147,26,147,27,147,28,147,29,147,30,147,31,147,32,147,33,147,34,147,35,147,36,147,37,147,38,147,39,147,41,147,42,147,43,147,44,147,45,147,46,147,47,147,48,147,49,147,50,147,51,147,52,147,53,147,54,147,55,147,56,147,57,147,58,147,59,147,60,147,61,147,62,147,63,147,64,147,65,147,66,147,67,147,68,147,69,147,70,147,72,147,172,159,40,250,53,73,98,216,231,221,98,216,232,221,98,216,249,221,98,216,250,221,98,216,251,221,98,216,252,221,98,216,15,222,98,216,22,222,98,216,37,222,98,216,41,222,122,147,86,149,87,149,88,149,89,149,90,149,91,149,92,149,93,149,94,149,95,149,96,149,181,149,182,149,184,149,185,149,186,149,187,149,188,149,60,0,42,0,189,149,190,149,191,149,193,149,194,149,161,73,167,73,205,149,27,150,166,150,167,150,168,150,169,150,170,150,171,150,231,73,183,150,212,150,213,150,11,151,12,151,13,151,14,151,15,151,16,151,17,151,18,151,19,151,20,151,21,151,22,151,23,151,29,74,100,216,228,220,100,216,229,220,100,216,236,220,100,216,237,220,91,151,92,151,102,151,147,151,148,151,149,151,150,151,151,151,152,151,153,151,210,151,240,151,248,151,36,152,37,152,45,152,46,152,47,152,48,152,49,152,50,152,51,152,52,152,53,152,54,152,55,152,56,152,57,152,58,152,59,152,60,152,61,152,101,216,208,220,101,216,217,220,101,216,218,220,158,152,159,152,160,152,161,152,180,152,181,152,101,216,215,221,217,152,218,152,16,153,29,153,26,153,27,153,28,153,30,153,31,153,32,153,33,153,34,153,35,153,36,153,38,153,39,153,40,153,41,153,101,216,32,223,52,153,158,153,159,153,160,153,225,153,226,153,227,153,228,153,229,153,230,153,231,153,232,153,233,153,234,153,235,153,236,153,237,153,238,153,239,153,240,153,241,153,242,153,102,216,209,220,184,154,185,154,186,154,187,154,188,154,102,216,77,222,191,154,60,0,42,0,237,154,245,154,246,154,247,154,248,154,249,154,250,154,251,154,7,155,40,155,51,155,71,155,122,155,123,155,124,155,125,155,126,155,127,155,128,155,129,155,130,155,131,155,132,155,133,155,135,155,136,155,137,155,138,155,139,155,140,155,141,155,142,155,143,155,144,155,145,155,146,155,147,155,148,155,149,155,150,155,151,155,152,155,163,155,64,76,71,76,73,76,103,216,152,221,103,216,155,221,173,156,174,156,175,156,176,156,177,156,178,156,179,156,180,156,181,156,182,156,183,156,184,156,185,156,186,156,187,156,10,157,15,157,16,157,17,157,18,157,19,157,20,157,21,157,22,157,23,157,24,157,25,157,26,157,27,157,29,157,30,157,31,157,32,157,33,157,34,157,35,157,36,157,37,157,38,157,39,157,40,157,41,157,42,157,43,157,44,157,103,216,222,223,101,158,102,158,103,158,104,158,119,158,126,158,133,158,134,158,135,158,136,158,104,216,159,222,172,158,173,158,174,158,52,77,186,158,197,158,198,158,212,158,213,158,214,158,215,158,216,158,250,158,18,159,60,159,61,159,83,159,141,159,156,159,60,0,39,0,208,253,17,40,39,0,60,0,42,0,31,81,32,81,33,81,34,81,35,81,36,81,37,81,38,81,39,81,40,81,41,81,42,81,44,81,65,216,19,220,65,216,20,220,65,216,31,220,50,81,223,81,65,216,25,222,65,216,26,222,149,82,244,82,245,82,246,82,37,53,38,53,53,83,179,83,83,53,66,216,143,223,125,86,126,86,127,86,128,86,129,86,130,86,131,86,132,86,133,86,134,86,135,86,136,86,137,86,138,86,139,86,140,86,141,86,142,86,143,86,144,86,145,86,146,86,147,86,68,216,79,220,68,216,92,220,68,216,111,220,68,216,117,220,68,216,118,220,68,216,119,220,68,216,120,220,68,216,123,220,68,216,136,220,205,88,206,88,207,88,208,88,209,88,210,88,211,88,212,88,213,88,214,88,215,88,122,54,69,216,138,220,69,216,151,220,69,216,146,222,35,91,36,91,37,91,38,91,39,91,41,91,42,91,43,91,44,91,45,91,46,91,47,91,48,91,49,91,50,91,51,91,53,91,54,91,55,91,70,216,209,220,70,216,214,220,70,216,215,220,70,216,216,220,70,216,217,220,122,91,123,91,241,91,242,91,54,92,55,92,104,92,183,93,184,93,185,93,186,93,188,93,189,93,190,93,191,93,25,56,71,216,106,223,187,93,106,94,107,94,108,94,101,56,102,56,76,95,189,95,190,95,73,216,141,221,60,0,42,0,181,97,188,97,194,97,195,97,199,97,201,97,203,97,209,97,215,97,217,97,218,97,219,97,220,97,221,97,222,97,224,97,225,97,226,97,228,97,229,97,230,97,231,97,232,97,74,216,247,220,50,98,52,98,202,100,206,100,216,100,223,100,224,100,225,100,226,100,227,100,228,100,230,100,232,100,233,100,235,100,236,100,237,100,238,100,239,100,240,100,241,100,92,58,94,58,75,216,238,221,128,101,129,101,130,101,131,101,163,101,181,101,182,101,218,101,206,102,208,102,209,102,210,102,211,102,212,102,213,102,214,102,215,102,218,102,32,59,33,59,34,59,76,216,210,222,217,102,50,59,64,59,125,106,126,106,127,106,128,106,129,106,130,106,131,106,132,106,133,106,134,106,135,106,136,106,137,106,138,106,139,106,140,106,141,106,142,106,143,106,144,106,145,106,146,106,147,106,148,106,149,106,150,106,151,106,152,106,153,106,154,106,155,106,156,106,157,106,158,106,159,106,160,106,161,106,162,106,163,106,164,106,165,106,166,106,167,106,168,106,169,106,170,106,236,59,242,59,243,59,244,59,77,216,3,223,77,216,22,223,77,216,32,223,77,216,45,223,77,216,47,223,60,0,42,0,77,216,63,223,219,106,91,107,92,107,93,107,70,60,172,107,173,107,174,107,218,107,8,108,9,108,10,108,169,111,204,111,128,111,212,111,213,111,215,111,216,111,217,111,218,111,219,111,220,111,221,111,222,111,223,111,224,111,225,111,226,111,227,111,228,111,229,111,230,111,231,111,232,111,233,111,234,111,235,111,236,111,237,111,238,111,239,111,240,111,241,111,242,111,244,111,245,111,246,111,248,111,111,61,115,61,117,61,79,216,192,223,80,216,57,220,80,216,58,220,80,216,59,220,80,216,60,220,80,216,61,220,80,216,87,220,223,113,224,113,225,113,226,113,227,113,228,113,229,113,230,113,231,113,232,113,233,113,234,113,235,113,236,113,237,113,238,113,239,113,240,113,241,113,242,113,243,113,244,113,245,113,246,113,247,113,0,62,1,62,2,62,80,216,248,223,81,216,4,220,53,114,70,114,160,114,85,62,110,115,111,115,112,115,113,115,114,115,115,115,116,115,144,116,151,116,250,62,165,116,166,116,168,116,169,116,170,116,171,116,172,116,173,116,174,116,175,116,176,116,177,116,178,116,179,116,180,116,255,62,0,63,1,63,82,216,113,222,82,216,119,222,82,216,120,222,82,216,121,222,82,216,122,222,15,117,60,0,42,0,16,117,17,117,18,117,63,63,131,117,132,117,83,216,217,220,64,118,65,118,66,118,67,118,68,118,69,118,70,118,71,118,72,118,73,118,75,118,76,118,77,118,78,118,83,216,165,222,83,216,167,222,162,118,163,118,164,118,165,118,188,118,232,118,233,118,234,118,9,64,164,119,166,119,167,119,168,119,169,119,170,119,171,119,172,119,173,119,174,119,175,119,176,119,177,119,178,119,179,119,180,119,181,119,182,119,183,119,111,64,113,64,84,216,199,222,239,119,240,119,239,120,240,120,241,120,242,120,243,120,244,120,245,120,246,120,247,120,248,120,249,120,250,120,251,120,252,120,253,120,254,120,255,120,0,121,1,121,2,121,3,121,4,121,5,121,223,64,85,216,129,221,85,216,132,221,85,216,143,221,167,121,168,121,170,121,171,121,85,216,6,223,73,122,84,122,85,122,86,122,87,122,88,122,89,122,90,122,91,122,92,122,93,122,94,122,127,65,190,122,191,122,192,122,193,122,194,122,185,65,242,122,243,122,244,122,86,216,175,222,21,124,240,123,241,123,242,123,243,123,244,123,245,123,246,123,247,123,248,123,250,123,251,123,252,123,253,123,254,123,255,123,0,124,60,0,42,0,1,124,2,124,3,124,4,124,5,124,6,124,7,124,8,124,9,124,10,124,11,124,12,124,13,124,14,124,15,124,16,124,18,124,19,124,20,124,22,124,23,124,59,66,64,66,65,66,66,66,67,66,68,66,69,66,87,216,145,220,87,216,164,220,87,216,192,220,24,124,217,124,218,124,219,124,220,124,221,124,222,124,223,124,224,124,225,124,226,124,232,124,162,66,41,126,42,126,43,126,44,126,45,126,46,126,47,126,48,126,49,126,50,126,51,126,52,126,53,126,54,126,55,126,56,126,57,126,58,126,59,126,60,126,61,126,62,126,63,126,64,126,65,126,66,126,67,126,68,126,69,126,70,126,71,126,73,126,74,126,76,126,77,126,88,216,2,221,88,216,33,221,72,126,68,127,69,127,70,127,125,127,126,127,127,127,129,127,88,216,190,223,242,127,243,127,244,127,245,127,246,127,252,127,89,216,132,220,89,216,136,220,89,216,137,220,43,128,44,128,111,128,112,128,113,128,114,128,115,128,116,128,89,216,38,222,165,129,184,129,186,129,187,129,188,129,189,129,190,129,191,129,192,129,193,129,194,129,195,129,196,129,197,129,198,129,199,129,200,129,201,129,202,129,204,129,60,0,42,0,90,216,70,220,90,216,94,220,232,129,233,129,90,216,242,221,90,130,91,130,92,130,93,130,113,130,22,69,27,69,29,69,32,69,38,69,39,69,87,133,118,133,119,133,120,133,121,133,122,133,123,133,124,133,125,133,126,133,127,133,128,133,129,133,130,133,131,133,132,133,133,133,134,133,135,133,136,133,137,133,138,133,139,133,141,133,142,133,143,133,144,133,145,133,146,133,147,133,148,133,149,133,150,133,151,133,152,133,153,133,154,133,155,133,156,133,157,133,158,133,159,133,160,133,161,133,162,133,163,133,164,133,165,133,166,133,167,133,168,133,170,133,171,133,172,133,174,133,169,159,91,216,115,223,91,216,116,223,91,216,159,223,91,216,161,223,173,133,175,133,103,134,104,134,170,135,171,135,172,135,173,135,174,135,175,135,176,135,177,135,178,135,179,135,180,135,181,135,182,135,183,135,184,135,185,135,186,135,187,135,188,135,189,135,190,135,191,135,192,135,193,135,194,135,195,135,196,135,197,135,198,135,199,135,200,135,201,135,202,135,203,135,204,135,205,135,206,135,207,135,208,135,209,135,210,135,233,69,234,69,238,69,92,216,255,223,93,216,34,220,222,135,51,137,60,0,42,0,53,137,54,137,55,137,56,137,57,137,58,137,59,137,60,137,61,137,62,137,63,137,64,137,65,137,66,137,67,137,68,137,69,137,84,137,91,70,82,137,203,159,93,216,94,223,171,137,172,137,173,137,174,137,175,137,242,137,243,137,94,216,36,221,4,139,5,139,6,139,7,139,8,139,9,139,10,139,11,139,12,139,13,139,14,139,15,139,16,139,17,139,18,139,19,139,21,139,22,139,23,139,24,139,25,139,26,139,27,139,28,139,29,139,30,139,31,139,32,139,33,139,34,139,0,71,94,216,189,222,94,216,190,222,38,71,63,140,64,140,65,140,79,140,111,140,112,140,113,140,114,140,115,140,148,140,149,140,150,140,246,140,247,140,248,140,249,140,250,140,251,140,252,140,253,140,95,216,220,221,97,141,98,141,111,141,168,141,70,142,71,142,72,142,73,142,74,142,75,142,76,142,77,142,78,142,79,142,80,142,81,142,82,142,83,142,96,216,232,220,96,216,233,220,96,216,244,220,61,143,62,143,63,143,64,143,65,143,66,143,67,143,68,143,69,143,96,216,109,223,96,216,125,223,171,143,125,144,126,144,127,144,128,144,129,144,130,144,131,144,132,144,133,144,137,144,60,0,42,0,174,72,97,216,11,222,56,145,57,145,152,145,153,145,154,145,155,145,156,145,157,145,158,145,159,145,160,145,161,145,162,145,163,145,164,145,98,216,51,221,40,147,71,147,73,147,74,147,75,147,76,147,77,147,78,147,79,147,80,147,81,147,82,147,83,147,84,147,85,147,86,147,87,147,88,147,89,147,90,147,91,147,92,147,93,147,94,147,95,147,96,147,97,147,98,147,99,147,100,147,101,147,102,147,103,147,104,147,105,147,106,147,107,147,108,147,109,147,110,147,111,147,112,147,113,147,114,147,115,147,116,147,117,147,118,147,119,147,120,147,121,147,123,147,124,147,125,147,126,147,127,147,128,147,129,147,130,147,131,147,132,147,133,147,134,147,135,147,60,73,98,216,50,222,98,216,54,222,98,216,68,222,98,216,69,222,98,216,70,222,98,216,71,222,98,216,72,222,98,216,73,222,98,216,74,222,98,216,75,222,98,216,89,222,98,216,90,222,98,216,129,222,98,216,130,222,98,216,131,222,161,147,175,147,97,149,98,149,99,149,100,149,101,149,102,149,103,149,104,149,105,149,106,149,107,149,192,149,183,149,195,149,196,149,197,149,198,149,199,149,200,149,201,149,202,149,203,149,204,149,206,149,207,149,172,150,173,150,174,150,60,0,42,0,175,150,176,150,177,150,178,150,184,150,214,150,1,74,2,74,24,151,25,151,26,151,27,151,28,151,29,151,30,151,31,151,32,151,36,74,100,216,13,221,100,216,16,221,33,151,74,74,154,151,155,151,156,151,157,151,158,151,159,151,160,151,161,151,211,151,212,151,213,151,241,151,64,152,65,152,66,152,67,152,68,152,69,152,70,152,71,152,72,152,73,152,74,152,209,74,101,216,229,220,101,216,231,220,182,152,183,152,16,75,101,216,233,221,101,216,244,221,32,75,37,153,42,153,43,153,44,153,45,153,47,153,48,153,49,153,50,153,51,153,53,153,55,153,101,216,50,223,66,153,70,153,152,153,161,153,162,153,163,153,112,75,114,75,244,153,245,153,246,153,247,153,248,153,249,153,250,153,251,153,252,153,253,153,254,153,255,153,0,154,1,154,2,154,3,154,142,75,144,75,102,216,234,220,243,153,164,154,189,154,190,154,252,154,253,154,254,154,255,154,0,155,1,155,2,155,52,155,72,155,73,155,134,155,153,155,154,155,155,155,156,155,157,155,158,155,159,155,160,155,161,155,162,155,164,155,165,155,166,155,167,155,168,155,169,155,170,155,171,155,172,155,60,0,42,0,173,155,174,155,175,155,176,155,177,155,178,155,179,155,180,155,186,155,75,76,76,76,77,76,206,155,188,156,189,156,191,156,192,156,193,156,194,156,195,156,196,156,197,156,198,156,199,156,200,156,201,156,202,156,203,156,190,156,28,157,45,157,46,157,47,157,48,157,49,157,50,157,51,157,52,157,53,157,54,157,55,157,56,157,57,157,58,157,59,157,60,157,61,157,62,157,63,157,64,157,65,157,66,157,67,157,68,157,69,157,70,157,71,157,72,157,73,157,205,76,212,76,104,216,20,220,103,157,105,158,106,158,107,158,108,158,137,158,138,158,139,158,104,216,178,222,175,158,176,158,199,158,200,158,201,158,207,158,218,158,219,158,220,158,221,158,222,158,105,216,52,220,251,158,255,158,34,159,35,159,36,159,62,159,63,159,75,159,105,216,198,221,84,159,98,159,139,159,140,159,160,159,60,0,39,0,208,253,18,40,39,0,60,0,42,0,45,81,46,81,47,81,49,81,175,52,65,216,254,220,129,81,65,216,165,221,66,216,194,222,226,83,148,86,149,86,150,86,151,86,152,86,153,86,154,86,155,86,156,86,157,86,158,86,159,86,160,86,161,86,162,86,163,86,164,86,9,54,68,216,150,220,68,216,157,220,68,216,180,220,68,216,191,220,68,216,192,220,68,216,193,220,68,216,199,220,68,216,200,220,68,216,201,220,68,216,207,220,68,216,211,220,174,86,216,88,217,88,69,216,182,220,17,89,19,89,112,89,56,91,58,91,59,91,60,91,48,55,49,55,70,216,250,220,105,92,106,92,192,93,193,93,194,93,109,94,110,94,235,94,77,95,93,95,94,95,213,97,214,97,216,97,223,97,227,97,155,57,233,97,234,97,235,97,237,97,238,97,240,97,241,97,243,97,244,97,161,57,51,98,231,100,234,100,229,100,242,100,244,100,245,100,246,100,247,100,248,100,249,100,250,100,251,100,252,100,253,100,254,100,255,100,1,101,2,101,3,101,4,101,5,101,6,101,97,58,102,58,103,58,75,216,13,222,1,141,171,58,76,216,102,220,148,101,76,216,142,220,183,101,219,101,216,102,219,102,220,102,35,59,36,59,37,59,38,59,39,59,40,59,76,216,224,222,76,216,225,222,38,103,171,106,172,106,60,0,42,0,173,106,174,106,175,106,176,106,177,106,178,106,179,106,180,106,181,106,182,106,183,106,184,106,185,106,186,106,187,106,188,106,189,106,190,106,191,106,192,106,193,106,194,106,195,106,196,106,197,106,198,106,199,106,200,106,201,106,202,106,77,216,102,223,77,216,129,223,225,106,237,106,94,107,95,107,120,107,175,107,201,107,11,108,247,111,249,111,250,111,251,111,252,111,253,111,254,111,255,111,0,112,1,112,2,112,3,112,5,112,6,112,7,112,8,112,9,112,10,112,11,112,12,112,13,112,14,112,15,112,16,112,17,112,18,112,19,112,20,112,125,61,80,216,133,220,80,216,139,220,80,216,140,220,80,216,141,220,80,216,145,220,38,112,248,113,249,113,250,113,251,113,252,113,253,113,254,113,255,113,0,114,1,114,3,114,4,62,81,216,53,220,81,216,54,220,90,216,168,221,117,115,118,115,119,115,167,116,181,116,182,116,184,116,185,116,187,116,188,116,190,116,191,116,192,116,193,116,194,116,82,216,140,222,82,216,147,222,82,216,148,222,82,216,149,222,82,216,150,222,82,216,164,222,82,216,165,222,82,216,166,222,82,216,167,222,19,117,20,117,21,117,133,117,79,118,80,118,81,118,82,118,83,118,84,118,85,118,86,118,87,118,88,118,60,0,42,0,89,118,90,118,91,118,92,118,93,118,94,118,100,118,166,118,167,118,168,118,83,216,169,223,189,118,249,63,235,118,236,118,184,119,185,119,186,119,187,119,188,119,189,119,190,119,191,119,192,119,193,119,194,119,84,216,216,222,6,121,7,121,8,121,9,121,10,121,11,121,12,121,13,121,14,121,15,121,16,121,17,121,18,121,19,121,20,121,21,121,22,121,172,121,173,121,174,121,175,121,32,65,95,122,96,122,97,122,98,122,99,122,129,65,86,216,200,220,196,122,197,122,245,122,25,124,26,124,27,124,28,124,29,124,30,124,31,124,32,124,33,124,34,124,35,124,36,124,37,124,38,124,39,124,40,124,41,124,42,124,43,124,45,124,46,124,47,124,48,124,49,124,50,124,78,66,85,66,87,216,193,220,87,216,254,220,87,216,32,221,227,124,228,124,229,124,230,124,231,124,166,66,87,216,26,223,78,126,79,126,80,126,81,126,82,126,83,126,84,126,85,126,86,126,87,126,88,126,89,126,90,126,91,126,92,126,93,126,94,126,95,126,96,126,97,126,98,126,99,126,100,126,101,126,103,126,113,126,24,67,88,216,89,221,88,216,90,221,88,216,91,221,88,216,92,221,71,127,60,0,42,0,72,127,73,127,88,216,88,222,128,127,130,127,179,127,180,127,181,127,247,127,248,127,249,127,250,127,251,127,151,67,89,216,141,220,89,216,152,220,45,128,46,128,117,128,118,128,119,128,205,129,206,129,207,129,208,129,209,129,210,129,211,129,67,68,68,68,69,68,90,216,136,220,10,130,25,130,94,130,95,130,96,130,143,68,46,69,51,69,54,69,59,69,61,69,63,69,64,69,67,69,68,69,169,133,176,133,177,133,178,133,179,133,180,133,181,133,182,133,183,133,184,133,185,133,186,133,187,133,188,133,189,133,190,133,191,133,192,133,193,133,194,133,195,133,196,133,197,133,198,133,199,133,200,133,201,133,202,133,203,133,204,133,205,133,206,133,207,133,208,133,210,133,211,133,91,216,190,223,91,216,222,223,91,216,223,223,92,216,14,220,105,134,155,69,215,135,211,135,212,135,214,135,216,135,217,135,218,135,219,135,220,135,221,135,223,135,224,135,226,135,227,135,228,135,229,135,230,135,231,135,232,135,233,135,234,135,235,135,236,135,237,135,238,135,239,135,240,135,241,135,242,135,243,135,244,135,245,135,14,136,93,216,80,220,93,216,132,220,93,216,134,220,70,137,71,137,72,137,60,0,42,0,73,137,74,137,75,137,76,137,77,137,78,137,79,137,80,137,81,137,83,137,85,137,93,216,132,223,93,216,133,223,134,137,176,137,177,137,178,137,179,137,141,70,244,137,100,157,35,139,36,139,37,139,38,139,39,139,40,139,41,139,42,139,43,139,44,139,45,139,46,139,47,139,48,139,49,139,50,139,51,139,52,139,53,139,54,139,55,139,56,139,57,139,58,139,59,139,60,139,61,139,62,139,94,216,244,222,71,139,66,140,80,140,116,140,117,140,79,71,151,140,152,140,153,140,254,140,255,140,0,141,2,141,3,141,4,141,5,141,169,141,84,142,85,142,86,142,87,142,88,142,89,142,90,142,91,142,92,142,93,142,94,142,95,142,96,142,97,142,98,142,99,142,100,142,101,142,102,142,103,142,110,142,128,142,32,72,96,216,46,221,105,142,191,142,192,142,193,142,96,216,124,222,70,143,71,143,72,143,73,143,74,143,75,143,76,143,113,72,96,216,138,223,172,143,135,144,136,144,97,216,37,222,40,145,58,145,59,145,60,145,61,145,62,145,165,145,166,145,167,145,168,145,169,145,170,145,171,145,172,145,208,145,136,147,137,147,138,147,139,147,60,0,42,0,140,147,141,147,142,147,143,147,144,147,145,147,146,147,147,147,148,147,149,147,150,147,151,147,152,147,153,147,154,147,155,147,156,147,157,147,158,147,159,147,160,147,162,147,163,147,164,147,165,147,166,147,167,147,168,147,170,147,171,147,172,147,173,147,174,147,176,147,177,147,178,147,179,147,180,147,181,147,182,147,183,147,184,147,185,147,186,147,187,147,188,147,189,147,190,147,191,147,178,159,62,73,68,73,69,73,71,73,98,216,154,222,98,216,155,222,98,216,156,222,98,216,192,222,98,216,198,222,98,216,203,222,98,216,204,222,98,216,206,222,108,149,109,149,110,149,111,149,112,149,113,149,208,149,209,149,210,149,211,149,212,149,213,149,214,149,215,149,216,149,99,216,153,221,179,150,215,150,216,150,217,150,218,150,219,150,220,150,221,150,222,150,223,150,224,150,3,74,226,150,34,151,35,151,36,151,37,151,38,74,93,151,162,151,163,151,164,151,165,151,166,151,167,151,168,151,169,151,170,151,171,151,172,151,173,151,174,151,175,151,176,151,214,151,215,151,216,151,217,151,218,151,150,74,249,151,250,151,101,216,51,220,63,152,62,152,75,152,76,152,77,152,78,152,79,152,60,0,42,0,80,152,81,152,82,152,83,152,84,152,85,152,162,152,163,152,184,152,185,152,186,152,46,153,73,75,75,75,76,75,54,153,56,153,57,153,58,153,59,153,60,153,61,153,62,153,63,153,64,153,65,153,164,153,165,153,4,154,5,154,6,154,7,154,8,154,9,154,10,154,11,154,12,154,13,154,14,154,15,154,16,154,17,154,18,154,19,154,147,75,150,75,151,75,102,216,241,220,102,216,250,220,102,216,3,221,102,216,5,221,192,154,193,154,220,154,3,155,4,155,5,155,6,155,8,155,0,76,1,76,41,155,53,155,54,155,74,155,75,155,76,155,77,155,78,155,79,155,38,76,181,155,182,155,183,155,184,155,185,155,187,155,188,155,189,155,190,155,191,155,192,155,193,155,194,155,195,155,196,155,198,155,199,155,200,155,201,155,202,155,203,155,204,155,205,155,207,155,208,155,209,155,210,155,211,155,253,155,87,76,103,216,246,221,204,156,205,156,206,156,207,156,208,156,209,156,210,156,164,76,74,157,75,157,76,157,77,157,78,157,79,157,80,157,81,157,82,157,83,157,84,157,85,157,86,157,87,157,88,157,89,157,90,157,91,157,60,0,42,0,92,157,93,157,94,157,95,157,96,157,98,157,99,157,101,157,109,158,110,158,111,158,112,158,140,158,141,158,142,158,143,158,144,158,38,77,104,216,180,222,104,216,182,222,104,216,186,222,104,216,189,222,177,158,178,158,54,77,191,158,202,158,203,158,223,158,224,158,225,158,0,159,1,159,2,159,118,77,21,159,22,159,37,159,38,159,39,159,40,159,41,159,42,159,43,159,44,159,76,159,85,159,142,159,60,0,39,0,208,253,19,40,39,0,60,0,42,0,38,52,51,81,52,81,53,81,163,52,150,82,247,82,248,82,54,83,180,83,225,88,165,86,166,86,167,86,168,86,169,86,170,86,171,86,172,86,173,86,175,86,176,86,68,216,228,220,68,216,244,220,68,216,245,220,68,216,246,220,218,88,219,88,220,88,221,88,222,88,223,88,224,88,226,88,18,89,61,91,57,91,62,91,63,91,50,55,51,55,52,55,53,55,70,216,3,221,70,216,4,221,70,216,5,221,124,91,243,91,244,91,245,91,107,92,195,93,196,93,197,93,32,56,34,56,71,216,158,223,71,216,161,223,112,94,72,216,115,221,236,94,237,94,144,159,95,95,191,95,236,97,239,97,242,97,245,97,246,97,247,97,74,216,38,221,74,216,57,221,251,97,0,101,7,101,8,101,9,101,10,101,11,101,12,101,13,101,14,101,15,101,16,101,18,101,75,216,54,222,75,216,66,222,132,101,220,101,221,101,222,101,221,102,222,102,223,102,224,102,225,102,226,102,41,59,42,59,203,106,204,106,205,106,206,106,207,106,208,106,209,106,210,106,211,106,212,106,213,106,214,106,215,106,216,106,217,106,218,106,220,106,221,106,222,106,223,106,224,106,226,106,227,106,228,106,229,106,230,106,235,106,0,60,60,0,42,0,1,60,2,60,4,60,77,216,162,223,77,216,188,223,77,216,194,223,231,106,96,107,176,107,177,107,78,216,219,222,12,108,243,111,21,112,22,112,23,112,24,112,25,112,26,112,27,112,28,112,29,112,30,112,31,112,32,112,33,112,34,112,35,112,36,112,37,112,39,112,40,112,41,112,43,112,44,112,45,112,46,112,133,61,136,61,138,61,80,216,201,220,80,216,225,220,107,216,255,221,2,114,4,114,5,114,6,114,7,114,8,114,9,114,10,114,12,114,13,114,14,114,21,114,6,62,81,216,90,220,81,216,91,220,88,114,161,114,162,114,163,114,164,114,165,114,166,114,120,115,121,115,122,115,183,116,189,116,195,116,196,116,197,116,198,116,199,116,200,116,201,116,202,116,203,116,4,63,6,63,82,216,177,222,82,216,178,222,82,216,179,222,82,216,186,222,82,216,187,222,82,216,188,222,227,116,22,117,134,117,135,117,95,118,96,118,97,118,99,118,169,118,84,216,44,220,195,119,196,119,197,119,198,119,199,119,200,119,201,119,202,119,84,216,14,223,84,216,17,223,84,216,19,223,241,119,23,121,24,121,25,121,26,121,27,121,28,121,29,121,30,121,31,121,32,121,33,121,85,216,185,221,176,121,177,121,85,216,29,223,100,122,101,122,102,122,103,122,60,0,42,0,104,122,105,122,106,122,107,122,86,216,222,220,86,216,225,220,198,122,44,124,51,124,52,124,53,124,54,124,55,124,56,124,57,124,58,124,59,124,60,124,61,124,62,124,63,124,64,124,65,124,66,124,79,66,96,66,87,216,48,221,87,216,67,221,233,124,234,124,235,124,236,124,237,124,87,216,75,223,75,126,102,126,104,126,105,126,106,126,107,126,108,126,109,126,110,126,111,126,112,126,114,126,115,126,116,126,117,126,118,126,119,126,120,126,121,126,122,126,32,67,53,127,74,127,75,127,131,127,132,127,133,127,134,127,182,127,183,127,184,127,185,127,253,127,254,127,120,128,203,129,212,129,213,129,215,129,216,129,70,68,90,216,138,220,90,216,147,220,90,216,38,221,11,130,26,130,97,130,98,130,99,130,100,130,101,130,118,130,69,69,70,69,81,69,209,133,213,133,214,133,215,133,216,133,217,133,218,133,219,133,220,133,221,133,222,133,223,133,224,133,225,133,226,133,227,133,228,133,229,133,230,133,231,133,232,133,233,133,234,133,235,133,236,133,237,133,239,133,240,133,241,133,242,133,243,133,244,133,245,133,92,216,75,220,92,216,82,220,92,216,83,220,247,133,248,133,1,136,60,0,42,0,213,135,246,135,247,135,248,135,249,135,250,135,251,135,252,135,253,135,254,135,255,135,0,136,2,136,3,136,4,136,5,136,6,136,7,136,8,136,9,136,10,136,11,136,12,136,13,136,15,136,30,136,86,137,87,137,88,137,89,137,90,137,91,137,92,137,93,137,94,137,95,137,96,137,97,137,98,137,135,137,136,137,180,137,181,137,182,137,183,137,184,137,245,137,246,137,63,139,64,139,65,139,66,139,67,139,68,139,70,139,72,139,73,139,74,139,75,139,76,139,78,139,79,139,80,139,81,139,82,139,83,139,84,139,85,139,86,139,87,139,88,139,89,139,90,139,91,139,92,139,94,216,6,223,94,216,11,223,94,216,24,223,54,140,67,140,119,140,118,140,154,140,6,141,7,141,8,141,9,141,10,141,11,141,12,141,170,141,171,141,172,141,173,141,104,142,106,142,107,142,108,142,109,142,111,142,112,142,113,142,114,142,115,142,116,142,117,142,118,142,119,142,120,142,121,142,122,142,123,142,124,142,125,142,126,142,127,142,38,72,96,216,79,221,96,216,93,221,96,216,111,221,135,142,194,142,195,142,196,142,197,142,77,143,78,143,79,143,60,0,42,0,80,143,81,143,82,143,83,143,84,143,173,143,180,143,138,144,139,144,140,144,97,216,59,222,63,145,64,145,66,145,173,145,174,145,175,145,176,145,177,145,17,73,169,147,192,147,193,147,194,147,195,147,196,147,197,147,198,147,199,147,200,147,201,147,202,147,203,147,204,147,205,147,206,147,207,147,208,147,209,147,210,147,211,147,212,147,213,147,214,147,215,147,216,147,217,147,218,147,219,147,220,147,221,147,222,147,223,147,224,147,225,147,226,147,227,147,228,147,229,147,230,147,231,147,232,147,233,147,234,147,235,147,236,147,237,147,238,147,239,147,240,147,241,147,242,147,249,147,73,73,81,73,83,73,98,216,222,222,98,216,223,222,98,216,224,222,98,216,225,222,98,216,226,222,98,216,227,222,98,216,229,222,98,216,234,222,98,216,252,222,98,216,12,223,114,149,125,149,217,149,218,149,219,149,220,149,221,149,180,150,225,150,227,150,4,74,38,151,39,151,40,151,41,151,42,151,43,151,44,151,45,151,100,216,60,221,100,216,77,221,100,216,91,221,97,151,177,151,178,151,179,151,180,151,181,151,182,151,183,151,220,151,221,151,222,151,223,151,242,151,251,151,252,151,86,152,87,152,88,152,89,152,90,152,60,0,42,0,91,152,92,152,93,152,94,152,228,74,164,152,187,152,188,152,189,152,190,152,191,152,192,152,25,75,67,153,83,75,68,153,69,153,71,153,72,153,73,153,166,153,167,153,102,216,87,220,20,154,21,154,22,154,23,154,24,154,25,154,26,154,27,154,28,154,29,154,30,154,31,154,32,154,33,154,34,154,35,154,36,154,37,154,38,154,39,154,40,154,157,75,102,216,47,221,165,154,194,154,195,154,197,154,9,155,10,155,11,155,12,155,13,155,14,155,15,155,4,76,7,76,55,155,197,155,212,155,213,155,214,155,215,155,216,155,217,155,218,155,219,155,220,155,221,155,222,155,223,155,224,155,225,155,226,155,227,155,228,155,229,155,230,155,231,155,232,155,233,155,234,155,235,155,236,155,237,155,238,155,239,155,240,155,241,155,242,155,243,155,244,155,245,155,91,76,103,216,6,222,103,216,45,222,250,155,211,156,212,156,213,156,214,156,215,156,216,156,217,156,218,156,219,156,97,157,102,157,104,157,105,157,106,157,107,157,108,157,109,157,110,157,111,157,112,157,113,157,114,157,115,157,116,157,117,157,118,157,119,157,120,157,121,157,60,0,42,0,122,157,123,157,124,157,125,157,126,157,127,157,128,157,129,157,130,157,131,157,132,157,133,157,134,157,135,157,136,157,137,157,138,157,139,157,140,157,141,157,142,157,143,157,145,157,225,76,226,76,104,216,135,220,113,158,114,158,120,158,145,158,146,158,147,158,148,158,149,158,150,158,151,158,179,158,180,158,192,158,76,77,226,158,227,158,252,158,3,159,4,159,119,77,23,159,45,159,64,159,65,159,77,159,86,159,87,159,88,159,143,159,105,216,169,222,60,0,39,0,208,253,20,40,39,0,60,0,42,0,54,81,165,52,55,83,177,86,178,86,179,86,180,86,181,86,182,86,183,86,184,86,185,86,68,216,47,221,188,86,37,54,227,88,228,88,229,88,69,216,232,220,64,91,65,91,66,91,67,91,68,91,69,91,70,91,54,55,55,55,56,55,70,216,16,221,70,216,17,221,70,216,18,221,70,216,21,221,125,91,126,91,246,91,198,93,199,93,200,93,201,93,202,93,204,93,113,94,72,216,122,221,238,94,239,94,240,94,192,95,193,95,248,97,164,57,249,97,250,97,74,216,79,221,19,101,20,101,21,101,22,101,23,101,24,101,25,101,26,101,112,58,133,101,134,101,223,101,227,102,228,102,229,102,230,102,231,102,232,102,43,59,76,216,0,223,39,103,232,106,233,106,234,106,236,106,238,106,239,106,240,106,241,106,242,106,243,106,244,106,245,106,246,106,9,60,10,60,13,60,17,60,77,216,213,223,77,216,214,223,77,216,215,223,249,106,42,112,47,112,48,112,49,112,50,112,51,112,52,112,53,112,54,112,55,112,56,112,57,112,58,112,59,112,60,112,61,112,62,112,63,112,64,112,65,112,143,61,145,61,80,216,236,220,80,216,4,221,66,112,11,114,15,114,16,114,17,114,18,114,19,114,20,114,60,0,42,0,22,114,23,114,24,114,10,62,81,216,115,220,81,216,135,220,81,216,136,220,167,114,168,114,81,216,6,223,123,115,124,115,125,115,186,116,204,116,205,116,206,116,207,116,208,116,209,116,210,116,7,63,82,216,192,222,82,216,199,222,136,117,137,117,98,118,101,118,102,118,170,118,171,118,190,118,250,63,237,118,203,119,204,119,205,119,206,119,207,119,242,119,34,121,35,121,36,121,37,121,38,121,39,121,40,121,41,121,42,121,43,121,44,121,178,121,108,122,109,122,110,122,111,122,199,122,246,122,247,122,67,124,68,124,69,124,70,124,71,124,72,124,73,124,74,124,75,124,76,124,77,124,78,124,79,124,85,124,238,124,239,124,240,124,174,66,123,126,124,126,125,126,126,126,127,126,128,126,129,126,130,126,131,126,38,67,88,216,173,221,88,216,174,221,88,216,178,221,76,127,88,216,53,223,186,127,255,127,0,128,47,128,121,128,122,128,123,128,124,128,214,129,217,129,218,129,219,129,220,129,90,216,181,221,102,130,103,130,104,130,105,130,36,134,82,69,84,69,85,69,87,69,88,69,92,69,238,133,246,133,249,133,250,133,251,133,252,133,253,133,254,133,255,133,0,134,1,134,60,0,42,0,2,134,3,134,4,134,5,134,6,134,7,134,8,134,9,134,10,134,11,134,12,134,13,134,14,134,15,134,16,134,17,134,19,134,20,134,34,134,92,216,136,220,92,216,173,220,92,216,174,220,92,216,175,220,18,134,27,134,48,134,16,136,17,136,18,136,19,136,20,136,21,136,22,136,23,136,24,136,25,136,0,70,1,70,99,137,100,137,101,137,102,137,103,137,104,137,185,137,186,137,187,137,247,137,248,137,249,137,77,139,93,139,94,139,95,139,96,139,97,139,98,139,99,139,100,139,101,139,102,139,103,139,104,139,105,139,106,139,107,139,108,139,109,139,110,139,111,139,112,139,113,139,114,139,19,71,24,71,94,216,56,223,94,216,57,223,94,216,58,223,81,140,95,216,18,220,13,141,14,141,15,141,174,141,129,142,130,142,131,142,132,142,133,142,134,142,136,142,137,142,96,216,137,221,198,142,85,143,86,143,87,143,88,143,89,143,90,143,174,143,141,144,65,145,67,145,178,145,179,145,180,145,181,145,182,145,183,145,184,145,203,145,243,147,245,147,246,147,247,147,248,147,250,147,251,147,252,147,253,147,254,147,255,147,0,148,1,148,2,148,3,148,4,148,60,0,42,0,5,148,6,148,7,148,8,148,9,148,10,148,11,148,12,148,13,148,14,148,15,148,16,148,17,148,18,148,19,148,20,148,21,148,22,148,23,148,24,148,25,148,26,148,27,148,28,148,29,148,30,148,31,148,32,148,33,148,34,148,35,148,36,148,37,148,38,148,39,148,40,148,98,216,19,223,98,216,33,223,98,216,34,223,98,216,43,223,98,216,44,223,98,216,45,223,98,216,47,223,98,216,70,223,98,216,76,223,98,216,78,223,98,216,80,223,47,148,60,148,115,149,116,149,222,149,223,149,224,149,225,149,99,216,185,221,181,150,46,151,47,151,48,151,49,151,51,151,52,151,100,216,94,221,100,216,112,221,75,74,184,151,185,151,186,151,187,151,219,151,224,151,253,151,254,151,255,151,95,152,96,152,97,152,98,152,99,152,165,152,193,152,194,152,195,152,196,152,74,153,75,153,76,153,77,153,78,153,80,153,81,153,82,153,83,153,89,153,168,153,41,154,42,154,43,154,44,154,45,154,46,154,47,154,48,154,49,154,50,154,51,154,52,154,53,154,54,154,55,154,56,154,102,216,69,221,102,216,71,221,102,216,72,221,102,216,73,221,102,216,93,221,102,216,106,221,166,154,167,154,196,154,198,154,199,154,200,154,201,154,202,154,203,154,204,154,60,0,42,0,16,155,17,155,18,155,19,155,42,155,56,155,80,155,251,155,246,155,247,155,248,155,249,155,252,155,254,155,255,155,0,156,1,156,2,156,3,156,4,156,5,156,6,156,7,156,8,156,9,156,10,156,11,156,12,156,13,156,14,156,15,156,16,156,17,156,18,156,19,156,20,156,21,156,22,156,23,156,24,156,25,156,26,156,27,156,32,156,109,76,103,216,104,222,64,156,220,156,221,156,222,156,223,156,144,157,146,157,147,157,148,157,149,157,150,157,151,157,152,157,153,157,154,157,155,157,156,157,157,157,158,157,159,157,160,157,161,157,162,157,163,157,164,157,165,157,166,157,167,157,168,157,169,157,170,157,171,157,237,76,104,216,185,220,104,216,225,220,104,216,237,220,104,216,243,220,104,216,248,220,191,157,121,158,152,158,153,158,154,158,155,158,181,158,104,216,81,223,193,158,104,216,169,223,77,77,228,158,229,158,230,158,231,158,232,158,233,158,234,158,105,216,91,220,13,159,46,159,47,159,48,159,105,216,203,221,89,159,90,159,91,159,93,159,94,159,95,159,96,159,97,159,99,159,145,159,60,0,39,0,208,253,21,40,39,0,60,0,42,0,55,81,56,81,57,81,58,81,167,52,100,81,151,82,152,82,66,216,44,220,91,83,186,86,187,86,189,86,190,86,191,86,192,86,193,86,194,86,195,86,196,86,205,86,68,216,59,221,68,216,61,221,68,216,69,221,68,216,72,221,68,216,79,221,230,88,69,216,253,220,20,89,71,91,72,91,73,91,57,55,70,216,28,221,247,91,108,92,203,93,205,93,207,93,208,93,38,56,241,94,194,95,252,97,253,97,254,97,17,101,27,101,28,101,29,101,75,216,120,222,149,101,233,102,76,216,10,223,7,103,248,106,250,106,251,106,252,106,253,106,254,106,255,106,0,107,1,107,2,107,3,107,4,107,5,107,12,107,21,60,178,107,67,112,68,112,69,112,70,112,71,112,72,112,73,112,74,112,75,112,76,112,77,112,79,112,80,112,80,216,15,221,80,216,25,221,25,114,26,114,27,114,13,62,81,216,185,220,29,114,126,115,211,116,212,116,214,116,82,216,202,222,82,216,209,222,23,117,103,118,104,118,105,118,106,118,107,118,215,63,172,118,83,216,184,223,208,119,209,119,210,119,211,119,45,121,46,121,47,121,48,121,49,121,50,121,51,121,52,121,85,216,213,221,85,216,219,221,85,216,37,223,86,216,3,221,195,122,200,122,201,122,86,124,80,124,60,0,42,0,81,124,82,124,83,124,84,124,106,66,87,216,153,221,242,124,132,126,133,126,134,126,135,126,136,126,137,126,138,126,139,126,140,126,141,126,142,126,143,126,144,126,77,127,187,127,188,127,154,67,48,128,221,129,106,130,212,133,97,69,98,69,21,134,22,134,23,134,24,134,25,134,26,134,28,134,29,134,30,134,31,134,32,134,33,134,35,134,37,134,38,134,39,134,40,134,41,134,42,134,43,134,45,134,46,134,47,134,92,216,205,220,92,216,210,220,92,216,248,220,92,216,9,221,92,216,12,221,26,136,27,136,28,136,29,136,31,136,32,136,33,136,34,136,35,136,36,136,2,70,3,70,41,136,43,136,74,136,105,137,106,137,107,137,108,137,109,137,110,137,188,137,189,137,250,137,69,139,115,139,116,139,117,139,118,139,119,139,120,139,121,139,122,139,123,139,124,139,125,139,94,216,72,223,16,141,17,141,18,141,19,141,20,141,99,141,175,141,176,141,138,142,139,142,140,142,141,142,142,142,143,142,96,216,175,221,96,216,188,221,199,142,91,143,92,143,93,143,94,143,95,143,175,143,142,144,68,145,69,145,70,145,185,145,186,145,187,145,244,147,41,148,42,148,60,0,42,0,43,148,44,148,45,148,46,148,48,148,49,148,50,148,51,148,52,148,53,148,54,148,55,148,56,148,57,148,58,148,59,148,61,148,62,148,63,148,64,148,65,148,101,73,98,216,99,223,98,216,100,223,98,216,101,223,98,216,102,223,98,216,108,223,98,216,143,223,226,149,227,149,228,149,229,149,230,149,228,150,50,151,53,151,54,151,55,151,56,151,57,151,58,151,59,151,103,151,188,151,189,151,190,151,191,151,225,151,226,151,164,74,101,216,63,220,100,152,101,152,102,152,103,152,104,152,166,152,197,152,198,152,199,152,200,152,201,152,202,152,220,152,79,153,86,153,87,153,88,153,169,153,57,154,58,154,59,154,60,154,61,154,62,154,63,154,64,154,65,154,66,154,67,154,68,154,69,154,70,154,71,154,173,159,205,154,206,154,207,154,20,155,21,155,22,155,23,155,24,155,57,155,58,155,81,155,82,155,83,155,84,155,28,156,29,156,30,156,31,156,33,156,34,156,35,156,36,156,37,156,38,156,39,156,40,156,41,156,42,156,43,156,44,156,45,156,46,156,47,156,48,156,119,76,123,76,125,76,103,216,172,222,163,76,224,156,225,156,226,156,227,156,60,0,42,0,172,157,173,157,174,157,175,157,176,157,177,157,178,157,179,157,180,157,181,157,182,157,183,157,184,157,185,157,186,157,187,157,188,157,189,157,190,157,192,157,193,157,194,157,195,157,196,157,197,157,198,157,199,157,200,157,201,157,202,157,204,157,205,157,206,157,207,157,104,216,254,220,104,216,7,221,104,216,35,221,122,158,123,158,156,158,157,158,78,77,235,158,236,158,237,158,238,158,239,158,5,159,24,159,25,159,26,159,27,159,49,159,78,159,92,159,100,159,101,159,102,159,103,159,104,159,105,159,105,216,1,222,146,159,157,159,161,159,60,0,39,0,208,253,22,40,39,0,60,0,42,0,185,78,59,81,60,81,65,216,101,220,66,216,121,221,197,86,198,86,199,86,200,86,201,86,202,86,203,86,206,86,24,54,29,87,113,89,74,91,75,91,76,91,58,55,70,216,34,221,70,216,39,221,127,91,206,93,209,93,210,93,211,93,212,93,213,93,215,93,242,94,78,95,114,95,255,97,2,98,74,216,103,221,74,216,107,221,53,98,30,101,31,101,32,101,33,101,34,101,36,101,38,101,39,101,75,216,139,222,76,216,51,220,44,59,45,59,247,106,6,107,7,107,8,107,9,107,10,107,11,107,13,107,14,107,24,60,97,107,13,108,81,112,82,112,84,112,85,112,86,112,87,112,88,112,80,216,63,221,80,216,64,221,80,216,68,221,28,114,30,114,31,114,32,114,169,114,127,115,128,115,213,116,215,116,216,116,217,116,228,116,138,117,108,118,109,118,110,118,83,216,14,223,173,118,53,121,248,64,85,216,224,221,179,121,180,121,112,122,113,122,202,122,248,122,87,124,88,124,89,124,90,124,91,124,92,124,93,124,95,124,96,124,97,124,87,216,185,221,241,124,244,124,145,126,146,126,43,67,88,216,221,221,78,127,79,127,88,216,97,222,135,127,49,128,50,128,125,128,126,128,222,129,223,129,90,216,250,221,107,130,60,0,42,0,103,69,106,69,109,69,44,134,50,134,51,134,52,134,53,134,54,134,55,134,92,216,13,221,92,216,38,221,92,216,39,221,37,136,38,136,39,136,40,136,42,136,44,136,6,70,111,137,112,137,113,137,114,137,190,137,191,137,94,216,157,220,251,137,252,137,126,139,127,139,128,139,129,139,130,139,131,139,132,139,133,139,32,71,94,216,101,223,134,139,68,140,21,141,22,141,23,141,24,141,144,142,145,142,146,142,147,142,148,142,149,142,150,142,151,142,154,142,96,143,97,143,98,143,71,145,72,145,66,148,67,148,68,148,69,148,70,148,71,148,72,148,73,148,74,148,75,148,76,148,77,148,78,148,79,148,80,148,81,148,82,148,83,148,84,148,103,148,106,73,109,73,98,216,153,223,98,216,156,223,98,216,157,223,117,149,118,149,126,149,231,149,60,151,61,151,62,151,63,151,64,151,100,216,156,221,192,151,193,151,194,151,195,151,227,151,105,152,106,152,107,152,203,152,84,153,85,153,90,153,91,153,101,216,212,223,72,154,73,154,74,154,75,154,76,154,77,154,78,154,79,154,80,154,81,154,82,154,83,154,84,154,85,154,102,216,157,221,208,154,210,154,221,154,29,155,25,155,60,0,42,0,26,155,27,155,28,155,14,76,102,216,213,223,43,155,59,155,85,155,86,155,49,156,50,156,51,156,52,156,53,156,54,156,55,156,56,156,57,156,58,156,59,156,60,156,61,156,62,156,63,156,65,156,66,156,67,156,68,156,69,156,70,156,71,156,72,156,224,157,129,76,133,76,103,216,176,222,103,216,195,222,73,156,228,156,203,157,208,157,209,157,210,157,211,157,212,157,213,157,214,157,215,157,216,157,217,157,218,157,219,157,220,157,221,157,222,157,223,157,104,216,51,221,104,216,52,221,104,216,80,221,233,157,245,157,115,158,116,158,158,158,104,216,223,222,182,158,208,158,240,158,241,158,50,159,51,159,52,159,53,159,66,159,106,159,107,159,108,159,156,77,147,159,148,159,149,159,162,159,60,0,39,0,208,253,23,40,39,0,60,0,42,0,61,81,153,82,154,82,66,216,205,222,204,86,207,86,208,86,26,54,231,88,232,88,69,216,130,221,114,89,77,91,214,93,216,93,218,93,79,95,0,98,1,98,3,98,4,98,35,101,37,101,40,101,41,101,42,101,43,101,119,58,150,101,234,102,235,102,236,102,46,59,15,107,16,107,17,107,18,107,78,216,58,220,202,107,83,112,89,112,90,112,91,112,92,112,80,216,78,221,80,216,85,221,80,216,86,221,80,216,87,221,80,216,92,221,80,216,95,221,33,114,34,114,81,216,188,220,81,216,206,220,81,216,211,220,81,216,214,220,129,115,130,115,131,115,218,116,82,216,223,222,111,118,112,118,212,119,54,121,55,121,181,121,94,124,98,124,99,124,100,124,101,124,102,124,103,124,104,124,116,66,245,124,147,126,148,126,149,126,150,126,226,129,90,216,199,220,108,130,119,69,49,134,56,134,57,134,58,134,59,134,60,134,61,134,62,134,63,134,64,134,65,134,92,216,27,222,52,136,45,136,46,136,47,136,48,136,49,136,50,136,51,136,115,137,116,137,118,137,137,137,253,137,254,137,135,139,136,139,137,139,138,139,139,139,140,139,141,139,142,139,143,139,144,139,69,140,25,141,26,141,177,141,152,142,153,142,155,142,60,0,42,0,156,142,96,216,155,222,99,143,100,143,143,144,144,144,188,145,85,148,86,148,87,148,88,148,89,148,90,148,91,148,92,148,93,148,94,148,95,148,96,148,97,148,98,148,99,148,100,148,101,148,102,148,114,73,98,216,185,223,98,216,194,223,98,216,197,223,98,216,212,223,98,216,215,223,98,216,217,223,98,216,218,223,65,151,53,74,100,216,168,221,104,151,196,151,197,151,0,152,108,152,109,152,110,152,111,152,167,152,92,153,170,153,86,154,87,154,88,154,89,154,90,154,91,154,92,154,209,154,211,154,212,154,222,154,30,155,31,155,32,155,74,156,75,156,76,156,77,156,78,156,79,156,80,156,81,156,82,156,83,156,84,156,85,156,86,156,87,156,88,156,89,156,90,156,91,156,103,216,248,222,106,156,225,157,226,157,227,157,228,157,229,157,230,157,231,157,232,157,234,157,235,157,236,157,237,157,238,157,239,157,240,157,241,157,242,157,243,157,244,157,246,157,247,157,248,157,251,157,252,157,0,77,104,216,146,221,104,216,147,221,104,216,171,221,159,158,194,158,242,158,243,158,244,158,6,159,7,159,28,159,54,159,55,159,56,159,57,159,137,77,67,159,68,159,79,159,109,159,110,159,111,159,60,0,42,0,112,159,113,159,105,216,50,222,60,0,39,0,208,253,24,40,39,0,60,0,42,0,62,81,65,216,215,220,209,86,210,86,211,86,68,216,128,221,233,88,129,54,78,91,79,91,109,92,217,93,74,216,128,221,44,101,45,101,237,102,238,102,19,107,20,107,21,107,93,112,94,112,95,112,96,112,97,112,80,216,97,221,35,114,219,116,229,116,113,118,114,118,83,216,194,223,213,119,215,119,214,119,56,121,250,64,182,121,183,121,115,122,114,122,106,124,118,66,151,126,80,127,136,127,137,127,109,130,119,130,120,69,67,134,69,134,92,216,100,221,92,216,101,221,53,136,54,136,55,136,56,136,57,136,58,136,75,136,98,136,117,137,119,137,93,216,204,223,145,139,146,139,147,139,148,139,149,139,150,139,27,141,157,142,158,142,159,142,160,142,200,142,189,145,190,145,191,145,192,145,194,145,104,148,105,148,106,148,107,148,108,148,98,216,231,223,98,216,232,223,98,216,233,223,98,216,234,223,98,216,235,223,98,216,236,223,98,216,245,223,229,150,230,150,66,151,67,151,68,151,69,151,70,151,71,151,72,151,198,151,199,151,200,151,228,151,229,151,101,216,72,220,112,152,93,153,93,154,94,154,95,154,213,154,33,155,34,155,44,155,45,155,87,155,88,155,89,155,103,216,62,221,92,156,93,156,94,156,95,156,96,156,60,0,42,0,97,156,98,156,99,156,100,156,101,156,102,156,103,156,105,156,107,156,103,216,35,223,112,156,250,157,249,157,253,157,254,157,255,157,0,158,1,158,2,158,3,158,4,158,5,158,6,158,7,158,8,158,9,158,10,158,7,77,9,77,104,216,180,221,104,216,181,221,124,158,125,158,160,158,30,159,69,159,70,159,114,159,115,159,116,159,117,159,118,159,119,159,60,0,39,0,208,253,25,40,39,0,60,0,42,0,212,86,213,86,68,216,135,221,234,88,243,94,5,98,6,98,46,101,184,101,239,102,47,59,22,107,23,107,24,107,25,107,26,107,27,107,29,107,98,112,99,112,36,114,37,114,38,114,170,114,83,216,6,221,216,119,217,119,225,119,57,121,105,124,107,124,108,124,109,124,110,124,246,124,152,126,153,126,154,126,155,126,224,129,225,129,66,134,70,134,71,134,72,134,73,134,59,136,93,216,116,221,120,137,121,137,122,137,123,137,124,137,138,137,192,137,255,137,151,139,152,139,153,139,82,140,68,71,155,140,28,141,95,216,77,222,161,142,162,142,163,142,164,142,165,142,193,145,109,148,110,148,111,148,112,148,113,148,114,148,115,148,98,216,255,223,99,216,3,220,73,151,113,152,114,152,94,153,95,153,149,153,189,75,102,216,195,221,102,216,201,221,214,154,35,155,104,156,108,156,109,156,110,156,111,156,103,216,48,223,11,158,12,158,13,158,14,158,15,158,16,158,17,158,18,158,104,216,223,221,161,158,204,158,245,158,8,159,9,159,29,159,31,159,71,159,120,159,121,159,122,159,123,159,105,216,74,222,163,159,60,0,39,0,208,253,26,40,39,0,60,0,42,0,54,53,30,87,59,55,96,95,28,107,14,108,78,112,100,112,102,112,82,216,226,222,115,118,218,119,111,124,112,124,87,216,14,222,243,124,68,134,106,134,60,136,154,139,155,139,95,216,79,222,178,141,166,142,167,142,195,145,196,145,116,148,117,148,118,148,119,148,120,148,121,148,122,148,99,216,9,220,99,216,28,220,99,216,29,220,74,151,201,151,96,154,97,154,98,154,99,154,190,75,101,154,215,154,113,156,114,156,115,156,116,156,117,156,118,156,19,158,20,158,104,216,245,221,246,158,10,159,105,216,91,222,164,159,165,159,60,0,39,0,208,253,27,40,39,0,60,0,42,0,78,216,26,223,101,112,103,112,104,112,80,216,119,221,80,216,122,221,171,114,247,124,156,126,157,126,74,134,61,136,62,136,63,136,125,137,156,139,157,139,158,139,83,140,156,140,169,142,170,142,201,142,101,143,197,145,123,148,124,148,125,148,126,148,99,216,35,220,99,216,38,220,75,151,76,151,77,151,78,151,115,152,116,152,204,152,205,152,221,152,96,153,97,153,171,153,100,154,102,154,103,154,174,159,36,155,46,155,48,155,119,156,120,156,21,158,22,158,23,158,247,158,72,159,60,0,39,0,208,253,28,40,39,0,60,0,42,0,214,86,7,98,75,216,179,222,76,216,31,223,30,107,31,107,39,114,82,216,233,222,116,118,220,63,92,216,117,221,76,134,84,140,168,142,96,216,7,222,127,148,128,148,129,148,130,148,99,216,43,220,99,216,48,220,231,150,104,154,105,154,192,75,24,158,25,158,26,158,104,216,32,222,162,158,248,158,58,159,124,159,125,159,158,159,60,0,39,0,208,253,29,40,39,0,60,0,42,0,40,114,86,216,84,222,158,126,75,134,159,139,131,148,132,148,121,73,79,151,106,154,49,155,121,156,27,158,28,158,183,158,60,0,39,0,208,253,30,40,39,0,60,0,42,0,181,83,117,118,144,65,113,124,133,69,99,216,57,220,202,151,98,153,107,154,103,216,115,220,122,156,29,158,30,158,104,216,51,222,145,77,60,0,39,0,208,253,31,40,39,0,60,0,42,0,105,112,93,216,163,221,98,216,13,221,16,77,163,158,60,0,39,0,208,253,32,40,39,0,60,0,42,0,106,112,114,124,99,216,59,220,150,159,60,0,39,0,208,253,33,40,39,0,60,0,42,0,70,216,59,221,41,114,123,156,164,158,151,159,60,0,39,0,208,253,35,40,39,0,60,0,42,0,126,159,60,0,39,0,208,253,36,40,39,0,60,0,42,0,73,159,60,0,39,0,208,253,39,40,39,0,60,0,42,0,80,151,60,0,39,0,208,253,48,40,39,0,60,0,42,0,152,159,38,0,39,0,40,0,0,78,41,0,39,0,60,0,60,0,60,0,32,50,38,0,39,0,40,0,3,78,41,0,39,0,60,0,60,0,60,0,38,50,38,0,39,0,40,0,9,78,41,0,39,0,60,0,60,0,60,0,34,50,38,0,39,0,40,0,93,78,41,0,39,0,60,0,60,0,60,0,40,50,38,0,39,0,40,0,140,78,41,0,39,0,60,0,60,0,60,0,33,50,38,0,39,0,40,0,148,78,41,0,39,0,60,0,60,0,60,0,36,50,38,0,39,0,40,0,227,78,41,0,39,0,60,0,60,0,60,0,57,50,38,0,39,0,40,0,1,79,41,0,39,0,60,0,60,0,60,0,61,50,38,0,39,0,40,0,17,79,41,0,39,0,60,0,60,0,60,0,65,50,38,0,39,0,40,0,107,81,41,0,39,0,60,0,60,0,60,0,39,50,38,0,39,0,40,0,109,81,41,0,39,0,60,0,60,0,60,0,37,50,38,0,39,0,40,0,180,82,41,0,39,0,60,0,60,0,60,0,56,50,38,0,39,0,40,0,65,83,41,0,39,0,60,0,60,0,60,0,41,50,38,0,39,0,40,0,84,83,41,0,39,0,60,0,60,0,60,0,63,50,38,0,39,0,40,0,13,84,41,0,39,0,60,0,60,0,60,0,52,50,38,0,39,0,40,0,124,84,41,0,39,0,60,0,60,0,60,0,58,50,38,0,39,0,40,0,219,86,41,0,39,0,60,0,60,0,60,0,35,50,38,0,39,0,40,0,31,87,41,0,39,0,60,0,60,0,60,0,47,50,38,0,39,0,40,0,102,91,41,0,39,0,60,0,60,0,60,0,59,50,38,0,39,0,40,0,229,101,41,0,39,0,60,0,60,0,60,0,48,50,38,0,39,0,40,0,8,103,41,0,39,0,60,0,60,0,60,0,42,50,38,0,39,0,40,0,9,103,41,0,39,0,60,0,60,0,60,0,50,50,38,0,39,0,40,0,40,103,41,0,39,0,60,0,60,0,60,0,45,50,38,0,39,0,40,0,42,104,41,0,39,0,60,0,60,0,60,0,49,50,38,0,39,0,40,0,52,108,41,0,39,0,60,0,60,0,60,0,44,50,38,0,39,0,40,0,107,112,41,0,39,0,60,0,60,0,60,0,43,50,38,0,39,0,40,0,121,114,41,0,39,0,60,0,60,0,60,0,53,50,38,0,39,0,40,0,227,118,41,0,39,0,60,0,60,0,60,0,60,50,38,0,39,0,40,0,62,121,41,0,39,0,60,0,60,0,60,0,51,50,38,0,39,0,40,0,93,121,41,0,39,0,60,0,60,0,60,0,55,50,38,0,39,0,40,0,109,121,41,0,39,0,60,0,60,0,60,0,64,50,38,0,39,0,40,0,234,129,41,0,39,0,60,0,60,0,60,0,66,50,38,0,39,0,40,0,243,129,41,0,39,0,60,0,60,0,60,0,67,50,38,0,39,0,40,0,161,140,41,0,39,0,60,0,60,0,60,0,54,50,38,0,39,0,40,0,199,140,41,0,39,0,60,0,60,0,60,0,62,50,38,0,39,0,40,0,209,145,41,0,39,0,60,0,60,0,60,0,46,50,38,0,48,0,185,112,60,0,60,0,60,0,88,51,38,0,49,0,48,0,229,101,60,0,60,0,60,0,233,51,38,0,49,0,48,0,8,103,60,0,60,0,60,0,201,50,38,0,49,0,48,0,185,112,60,0,60,0,60,0,98,51,38,0,49,0,49,0,229,101,60,0,60,0,60,0,234,51,38,0,49,0,49,0,8,103,60,0,60,0,60,0,202,50,38,0,49,0,49,0,185,112,60,0,60,0,60,0,99,51,38,0,49,0,50,0,229,101,60,0,60,0,60,0,235,51,38,0,49,0,50,0,8,103,60,0,60,0,60,0,203,50,38,0,49,0,50,0,185,112,60,0,60,0,60,0,100,51,38,0,49,0,51,0,229,101,60,0,60,0,60,0,236,51,38,0,49,0,51,0,185,112,60,0,60,0,60,0,101,51,38,0,49,0,52,0,229,101,60,0,60,0,60,0,237,51,38,0,49,0,52,0,185,112,60,0,60,0,60,0,102,51,38,0,49,0,53,0,229,101,60,0,60,0,60,0,238,51,38,0,49,0,53,0,185,112,60,0,60,0,60,0,103,51,38,0,49,0,54,0,229,101,60,0,60,0,60,0,239,51,38,0,49,0,54,0,185,112,60,0,60,0,60,0,104,51,38,0,49,0,55,0,229,101,60,0,60,0,60,0,240,51,38,0,49,0,55,0,185,112,60,0,60,0,60,0,105,51,38,0,49,0,56,0,229,101,60,0,60,0,60,0,241,51,38,0,49,0,56,0,185,112,60,0,60,0,60,0,106,51,38,0,49,0,57,0,229,101,60,0,60,0,60,0,242,51,38,0,49,0,57,0,185,112,60,0,60,0,60,0,107,51,38,0,49,0,229,101,60,0,60,0,60,0,224,51,38,0,49,0,8,103,60,0,60,0,60,0,192,50,38,0,49,0,185,112,60,0,60,0,60,0,89,51,38,0,50,0,48,0,229,101,60,0,60,0,60,0,243,51,38,0,50,0,48,0,185,112,60,0,60,0,60,0,108,51,38,0,50,0,49,0,229,101,60,0,60,0,60,0,244,51,38,0,50,0,49,0,185,112,60,0,60,0,60,0,109,51,38,0,50,0,50,0,229,101,60,0,60,0,60,0,245,51,38,0,50,0,50,0,185,112,60,0,60,0,60,0,110,51,38,0,50,0,51,0,229,101,60,0,60,0,60,0,246,51,38,0,50,0,51,0,185,112,60,0,60,0,60,0,111,51,38,0,50,0,52,0,229,101,60,0,60,0,60,0,247,51,38,0,50,0,52,0,185,112,60,0,60,0,60,0,112,51,38,0,50,0,53,0,229,101,60,0,60,0,60,0,248,51,38,0,50,0,54,0,229,101,60,0,60,0,60,0,249,51,38,0,50,0,55,0,229,101,60,0,60,0,60,0,250,51,38,0,50,0,56,0,229,101,60,0,60,0,60,0,251,51,38,0,50,0,57,0,229,101,60,0,60,0,60,0,252,51,38,0,50,0,229,101,60,0,60,0,60,0,225,51,38,0,50,0,8,103,60,0,60,0,60,0,193,50,38,0,50,0,185,112,60,0,60,0,60,0,90,51,38,0,51,0,48,0,229,101,60,0,60,0,60,0,253,51,38,0,51,0,49,0,229,101,60,0,60,0,60,0,254,51,38,0,51,0,229,101,60,0,60,0,60,0,226,51,38,0,51,0,8,103,60,0,60,0,60,0,194,50,38,0,51,0,185,112,60,0,60,0,60,0,91,51,38,0,52,0,229,101,60,0,60,0,60,0,227,51,38,0,52,0,8,103,60,0,60,0,60,0,195,50,38,0,52,0,185,112,60,0,60,0,60,0,92,51,38,0,53,0,229,101,60,0,60,0,60,0,228,51,38,0,53,0,8,103,60,0,60,0,60,0,196,50,38,0,53,0,185,112,60,0,60,0,60,0,93,51,38,0,54,0,229,101,60,0,60,0,60,0,229,51,38,0,54,0,8,103,60,0,60,0,60,0,197,50,38,0,54,0,185,112,60,0,60,0,60,0,94,51,38,0,55,0,229,101,60,0,60,0,60,0,230,51,38,0,55,0,8,103,60,0,60,0,60,0,198,50,38,0,55,0,185,112,60,0,60,0,60,0,95,51,38,0,56,0,229,101,60,0,60,0,60,0,231,51,38,0,56,0,8,103,60,0,60,0,60,0,199,50,38,0,56,0,185,112,60,0,60,0,60,0,96,51,38,0,57,0,229,101,60,0,60,0,60,0,232,51,38,0,57,0,8,103,60,0,60,0,60,0,200,50,38,0,57,0,185,112,60,0,60,0,60,0,97,51,38,0,39,0,20,48,9,78,21,48,39,0,60,0,60,0,60,0,60,216,65,222,38,0,39,0,20,48,140,78,21,48,39,0,60,0,60,0,60,0,60,216,66,222,38,0,39,0,20,48,221,82,21,48,39,0,60,0,60,0,60,0,60,216,71,222,38,0,39,0,20,48,137,91,21,48,39,0,60,0,60,0,60,0,60,216,67,222,38,0,39,0,20,48,83,98,21,48,39,0,60,0,60,0,60,0,60,216,69,222,38,0,39,0,20,48,87,101,21,48,39,0,60,0,60,0,60,0,60,216,72,222,38,0,39,0,20,48,44,103,21,48,39,0,60,0,60,0,60,0,60,216,64,222,38,0,39,0,20,48,185,112,21,48,39,0,60,0,60,0,60,0,60,216,68,222,38,0,39,0,20,48,215,118,21,48,39,0,60,0,60,0,60,0,60,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,38,0,0,78,60,0,60,0,60,0,146,49,38,0,0,78,60,0,60,0,60,0,128,50,38,0,0,78,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,148,49,38,0,9,78,60,0,60,0,60,0,130,50,38,0,9,78,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,150,49,38,0,10,78,60,0,60,0,60,0,164,50,38,0,11,78,60,0,60,0,60,0,152,49,38,0,11,78,60,0,60,0,60,0,166,50,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,45,78,60,0,60,0,60,0,151,49,38,0,45,78,60,0,60,0,60,0,165,50,38,0,45,78,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,38,0,89,78,60,0,60,0,60,0,154,49,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,38,0,140,78,60,0,60,0,60,0,147,49,38,0,140,78,60,0,60,0,60,0,129,50,38,0,140,78,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,38,0,186,78,60,0,60,0,60,0,159,49,38,0,228,78,140,84,60,0,60,0,60,0,255,50,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,38,0,107,81,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,38,0,65,83,60,0,60,0,60,0,56,48,38,0,65,83,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,38,0,105,83,60,0,60,0,60,0,25,47,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,38,0,243,83,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,149,49,38,0,219,86,60,0,60,0,60,0,131,50,38,0,31,87,60,0,60,0,60,0,31,47,38,0,31,87,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,38,0,39,89,99,107,60,0,60,0,60,0,125,51,38,0,41,89,60,0,60,0,60,0,157,49,38,0,41,89,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,38,0,115,89,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,38,0,34,92,60,0,60,0,60,0,42,47,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,38,0,230,93,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,16,98,60,0,60,0,60,0,123,51,38,0,122,94,60,0,60,0,60,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,38,0,75,98,60,0,60,0,60,0,60,216,16,222,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,135,101,60,0,60,0,60,0,66,47,38,0,135,101,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,229,101,60,0,60,0,60,0,71,47,38,0,229,101,60,0,60,0,60,0,144,50,38,0,14,102,187,108,60,0,60,0,60,0,126,51,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,140,84,60,0,60,0,60,0,124,51,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,38,0,8,103,60,0,60,0,60,0,138,50,38,0,8,103,60,0,60,0,60,0,60,216,55,222,38,0,9,103,60,0,60,0,60,0,146,50,38,0,9,103,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,38,0,40,103,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,38,0,42,104,15,95,26,79,62,121,60,0,60,0,60,0,127,51,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,38,0,52,108,60,0,60,0,60,0,140,50,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,38,0,107,112,60,0,60,0,60,0,139,50,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,38,0,31,117,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,138,127,60,0,60,0,60,0,122,47,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,38,0,137,128,60,0,60,0,60,0,129,47,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,77,134,60,0,60,0,60,0,140,47,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,126,137,60,0,60,0,60,0,145,47,38,0,139,137,60,0,60,0,60,0,146,47,38,0,210,137,60,0,60,0,60,0,147,47,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,38,0,112,141,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,38,0,73,145,60,0,60,0,60,0,163,47,38,0,77,145,60,0,60,0,60,0,60,216,59,222,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,38,0,209,145,60,0,60,0,60,0,142,50,38,0,119,149,60,0,60,0,60,0,167,47,38,0,128,149,60,0,60,0,60,0,168,47,38,0,28,150,60,0,60,0,60,0,169,47,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,38,0,81,151,60,0,60,0,60,0,173,47,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,168,152,60,0,60,0,60,0,181,47,38,0,219,152,60,0,60,0,60,0,182,47,38,0,223,152,60,0,60,0,60,0,183,47,38,0,150,153,60,0,60,0,60,0,184,47,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,168,154,60,0,60,0,60,0,187,47,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,38,0,90,155,60,0,60,0,60,0,194,47,38,0,229,156,60,0,60,0,60,0,195,47,38,0,117,158,60,0,60,0,60,0,196,47,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,38,0,82,159,60,0,60,0,60,0,210,47,38,0,141,159,60,0,60,0,60,0,211,47,38,0,156,159,60,0,60,0,60,0,212,47,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,0,0,2,0,51,0,60,0,95,0,1,0,170,170,170,170,222,137,1,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,148,106,1,0,148,106,1,0,116,114,1,0,116,114,1,0,48,119,1,0,48,119,1,0,146,133,1,0,146,133,1,0,194,137,1,0,25,0,0,0,17,0,0,0,5,0,0,0,0,0,0,96,127,0,0,123,99,0,118,123,127,0,0,126,224,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,0,251,252,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,254,255,50,105,114,84,1,0,192,8,122,21,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,53,1,61,1,69,1,77,1,85,1,93,1,101,1,109,1,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,21,2,29,2,37,2,45,2,53,2,61,2,69,2,77,2,85,2,93,2,101,2,109,2,117,2,125,2,133,2,141,2,149,2,157,2,164,2,172,2,180,2,188,2,196,2,204,2,212,2,220,2,228,2,236,2,244,2,252,2,4,3,12,3,20,3,28,3,36,3,44,3,52,3,60,3,68,3,76,3,84,3,92,3,100,3,108,3,116,3,124,3,132,3,140,3,148,3,156,3,164,3,172,3,180,3,188,3,196,3,204,3,212,3,220,3,228,3,236,3,244,3,252,3,4,4,12,4,20,4,28,4,36,4,44,4,52,4,60,4,68,4,76,4,84,4,92,4,100,4,108,4,116,4,124,4,132,4,139,4,147,4,155,4,163,4,171,4,179,4,187,4,195,4,203,4,211,4,219,4,227,4,235,4,243,4,251,4,3,5,11,5,19,5,27,5,35,5,43,5,51,5,59,5,67,5,75,5,83,5,91,5,99,5,107,5,115,5,123,5,131,5,139,5,147,5,155,5,163,5,171,5,179,5,187,5,195,5,203,5,211,5,219,5,227,5,235,5,243,5,251,5,2,6,10,6,18,6,26,6,32,6,40,6,47,6,55,6,63,6,71,6,79,6,86,6,94,6,102,6,110,6,118,6,126,6,134,6,142,6,150,6,158,6,166,6,174,6,182,6,190,6,198,6,206,6,214,6,222,6,230,6,238,6,246,6,254,6,6,7,14,7,22,7,30,7,38,7,46,7,54,7,62,7,70,7,78,7,86,7,94,7,102,7,108,7,116,7,124,7,131,7,139,7,147,7,154,7,162,7,170,7,178,7,186,7,194,7,202,7,210,7,218,7,226,7,234,7,242,7,250,7,2,8,10,8,18,8,26,8,34,8,42,8,50,8,58,8,66,8,74,8,82,8,90,8,98,8,106,8,114,8,122,8,130,8,138,8,146,8,154,8,162,8,170,8,178,8,185,8,193,8,201,8,209,8,217,8,225,8,233,8,240,8,248,8,0,9,8,9,16,9,24,9,32,9,40,9,48,9,56,9,64,9,72,9,80,9,88,9,96,9,104,9,112,9,120,9,128,9,136,9,144,9,152,9,160,9,168,9,176,9,184,9,192,9,200,9,208,9,216,9,224,9,232,9,240,9,248,9,0,10,8,10,16,10,24,10,32,10,40,10,48,10,56,10,64,10,72,10,80,10,88,10,96,10,104,10,112,10,120,10,128,10,136,10,144,10,152,10,160,10,168,10,176,10,184,10,192,10,200,10,208,10,216,10,224,10,232,10,240,10,248,10,0,11,8,11,16,11,24,11,32,11,40,11,48,11,56,11,64,11,72,11,80,11,88,11,96,11,104,11,112,11,120,11,128,11,136,11,144,11,152,11,160,11,168,11,176,11,184,11,192,11,200,11,208,11,216,11,224,11,232,11,240,11,248,11,0,12,8,12,16,12,24,12,32,12,40,12,48,12,56,12,64,12,72,12,80,12,88,12,96,12,104,12,112,12,120,12,128,12,136,12,144,12,152,12,160,12,168,12,176,12,184,12,192,12,200,12,208,12,216,12,224,12,232,12,240,12,48,0,48,0,48,0,48,0,248,12,0,13,8,13,16,13,24,13,32,13,40,13,48,13,56,13,64,13,72,13,80,13,88,13,96,13,104,13,112,13,120,13,128,13,136,13,144,13,152,13,160,13,168,13,176,13,184,13,192,13,200,13,208,13,216,13,224,13,232,13,240,13,248,13,0,14,6,14,14,14,22,14,30,14,38,14,46,14,54,14,62,14,70,14,78,14,86,14,94,14,101,14,109,14,117,14,125,14,133,14,141,14,149,14,157,14,165,14,173,14,181,14,189,14,197,14,205,14,213,14,221,14,229,14,237,14,245,14,253,14,5,15,13,15,21,15,29,15,37,15,45,15,53,15,61,15,69,15,77,15,85,15,93,15,101,15,109,15,117,15,125,15,133,15,141,15,149,15,157,15,165,15,173,15,181,15,189,15,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,5,16,13,16,48,0,48,0,48,0,48,0,21,16,29,16,37,16,45,16,53,16,61,16,69,16,77,16,48,0,48,0,84,16,92,16,100,16,108,16,116,16,124,16,132,16,140,16,148,16,156,16,164,16,172,16,180,16,188,16,196,16,204,16,212,16,214,16,222,16,230,16,238,16,246,16,254,16,6,17,14,17,22,17,30,17,38,17,46,17,54,17,62,17,70,17,78,17,86,17,94,17,102,17,110,17,118,17,126,17,134,17,142,17,150,17,158,17,166,17,174,17,182,17,190,17,198,17,206,17,214,17,222,17,230,17,238,17,246,17,254,17,6,18,14,18,22,18,48,0,48,0,48,0,48,0,48,0,48,0,25,18,33,18,41,18,49,18,57,18,59,18,67,18,75,18,83,18,91,18,99,18,107,18,115,18,123,18,131,18,139,18,147,18,155,18,163,18,171,18,179,18,187,18,195,18,203,18,211,18,48,0,217,18,225,18,233,18,241,18,249,18,1,19,9,19,12,19,20,19,28,19,36,19,44,19,52,19,60,19,68,19,48,0,74,19,82,19,90,19,98,19,106,19,114,19,122,19,130,19,138,19,146,19,154,19,162,19,170,19,178,19,186,19,48,0,48,0,48,0,193,19,201,19,209,19,217,19,225,19,233,19,241,19,249,19,1,20,9,20,48,0,48,0,17,20,25,20,33,20,41,20,49,20,57,20,65,20,73,20,81,20,89,20,97,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,161,0,48,0,48,0,153,0,153,0,153,0,113,21,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,105,20,113,20,121,20,129,20,137,20,145,20,153,20,161,20,169,20,177,20,185,20,193,20,201,20,209,20,217,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,225,20,233,20,241,20,249,20,1,21,9,21,17,21,25,21,33,21,41,21,49,21,57,21,65,21,73,21,81,21,89,21,97,21,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,36,0,202,193,36,0,202,226,36,0,202,3,37,0,202,36,37,0,202,69,37,0,202,102,37,0,202,135,37,0,202,168,37,0,202,201,37,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,35,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,34,36,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,36,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,136,5,5,0,138,192,0,0,0,5,5,0,139,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,220,5,5,0,158,5,5,0,156,5,5,0,159,5,5,0,157,5,5,12,220,5,5,4,199,5,5,20,220,5,5,18,220,5,5,3,199,5,5,2,199,192,0,0,0,192,0,0,0,5,5,98,199,5,5,97,199,5,5,96,199,192,0,0,0,5,5,99,199,5,5,95,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,199,5,5,223,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,160,192,0,0,0,5,5,5,199,5,5,21,220,192,0,0,0,5,5,6,199,5,5,40,220,5,5,135,200,5,5,144,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,161,5,5,7,199,192,0,0,0,5,5,100,199,5,5,41,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,220,5,5,0,140,192,0,0,0,5,5,0,163,192,0,0,0,5,5,13,220,5,5,0,164,192,0,0,0,192,0,0,0,5,5,8,199,192,0,0,0,5,5,101,199,5,5,103,199,5,5,102,199,192,0,0,0,192,0,0,0,5,5,224,199,5,5,225,199,192,0,0,0,192,0,0,0,5,5,157,201,192,0,0,0,5,5,172,204,5,5,0,137,192,0,0,0,192,0,0,0,5,5,7,220,5,5,0,141,5,5,0,166,5,5,0,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,206,5,5,219,226,192,0,0,0,192,0,0,0,5,5,68,210,5,5,19,232,5,5,20,232,192,0,0,0,5,5,0,142,192,0,0,0,5,5,10,199,192,0,0,0,192,0,0,0,5,5,159,201,5,5,0,143,5,5,14,220,5,5,0,167,192,0,0,0,192,0,0,0,5,5,11,199,5,5,13,199,5,5,22,220,5,5,14,199,5,5,12,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,199,192,0,0,0,5,5,160,201,192,0,0,0,192,0,0,0,5,5,161,201,5,5,27,203,192,0,0,0,5,5,0,168,5,5,15,199,192,0,0,0,5,5,228,199,5,5,230,199,5,5,229,199,192,0,0,0,5,5,136,200,192,0,0,0,192,0,0,0,5,5,162,201,5,5,163,201,5,5,28,203,5,5,29,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,204,192,0,0,0,192,0,0,0,5,5,21,232,192,0,0,0,192,0,0,0,5,5,73,248,5,5,0,144,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,199,5,5,16,199,5,5,23,220,5,5,18,199,5,5,24,199,192,0,0,0,5,5,19,199,5,5,20,199,5,5,25,220,5,5,24,220,5,5,22,199,5,5,23,199,192,0,0,0,5,5,21,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,199,5,5,107,199,5,5,108,199,5,5,109,199,5,5,105,199,5,5,112,199,5,5,47,220,192,0,0,0,5,5,43,220,5,5,46,220,5,5,113,199,5,5,129,199,192,0,0,0,5,5,45,220,192,0,0,0,5,5,110,199,5,5,111,199,5,5,104,199,192,0,0,0,192,0,0,0,5,5,42,220,5,5,44,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,199,5,5,83,220,5,5,240,199,5,5,244,199,5,5,93,220,5,5,81,220,5,5,241,199,5,5,85,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,199,192,0,0,0,5,5,245,199,192,0,0,0,5,5,231,199,5,5,84,220,5,5,246,199,5,5,88,220,192,0,0,0,5,5,92,220,5,5,89,220,192,0,0,0,192,0,0,0,5,5,86,220,5,5,232,199,5,5,234,199,5,5,247,199,192,0,0,0,5,5,236,199,5,5,78,220,5,5,239,199,5,5,237,199,5,5,238,199,5,5,94,220,5,5,91,220,5,5,82,220,5,5,235,199,192,0,0,0,192,0,0,0,5,5,79,220,5,5,233,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,220,5,5,200,220,192,0,0,0,5,5,158,200,5,5,145,200,192,0,0,0,192,0,0,0,5,5,201,220,5,5,142,200,192,0,0,0,5,5,160,200,192,0,0,0,5,5,150,200,192,0,0,0,5,5,149,200,5,5,189,220,5,5,153,200,5,5,148,200,5,5,194,220,5,5,202,220,192,0,0,0,5,5,198,220,192,0,0,0,5,5,151,200,192,0,0,0,192,0,0,0,5,5,154,200,5,5,139,200,5,5,163,200,5,5,191,220,192,0,0,0,192,0,0,0,5,5,156,221,5,5,137,200,5,5,159,200,5,5,138,200,5,5,146,200,5,5,147,200,5,5,196,220,5,5,192,220,5,5,152,200,5,5,144,200,5,5,188,220,5,5,140,200,5,5,199,220,5,5,161,200,5,5,164,200,5,5,143,200,5,5,156,200,5,5,162,200,5,5,141,200,5,5,197,220,5,5,157,200,5,5,203,220,5,5,190,220,5,5,155,200,5,5,193,220,192,0,0,0,192,0,0,0,5,5,195,220,192,0,0,0,5,5,177,201,5,5,158,221,5,5,170,221,5,5,169,201,192,0,0,0,5,5,171,221,5,5,164,201,5,5,174,201,192,0,0,0,192,0,0,0,5,5,167,201,5,5,152,221,5,5,175,201,5,5,151,221,5,5,155,221,5,5,162,221,5,5,160,221,5,5,183,201,5,5,178,201,5,5,146,221,5,5,148,221,5,5,180,201,5,5,168,201,5,5,149,221,5,5,161,221,5,5,168,221,5,5,173,201,5,5,154,221,5,5,147,221,5,5,172,201,5,5,150,221,5,5,176,201,5,5,153,221,192,0,0,0,5,5,171,201,192,0,0,0,5,5,166,201,192,0,0,0,5,5,181,201,5,5,163,221,5,5,182,201,5,5,167,221,192,0,0,0,5,5,165,221,5,5,169,221,5,5,179,201,5,5,157,221,5,5,145,221,192,0,0,0,5,5,159,221,5,5,170,201,5,5,164,221,5,5,165,201,5,5,166,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,203,5,5,32,203,192,0,0,0,192,0,0,0,5,5,251,222,5,5,5,223,192,0,0,0,5,5,31,203,5,5,39,203,5,5,51,203,192,0,0,0,5,5,11,223,5,5,9,223,5,5,4,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,203,5,5,10,223,5,5,254,222,5,5,47,203,5,5,38,203,5,5,46,203,5,5,249,222,192,0,0,0,5,5,7,223,192,0,0,0,5,5,252,222,5,5,42,203,5,5,253,222,192,0,0,0,5,5,248,222,5,5,49,203,5,5,36,203,5,5,45,203,5,5,35,203,192,0,0,0,5,5,250,222,5,5,255,222,192,0,0,0,5,5,8,223,5,5,43,203,5,5,40,203,5,5,3,223,5,5,48,203,5,5,6,223,5,5,2,223,5,5,37,203,5,5,50,203,5,5,41,203,5,5,34,203,5,5,30,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,223,192,0,0,0,5,5,199,204,5,5,177,204,192,0,0,0,5,5,193,204,192,0,0,0,5,5,198,204,5,5,198,224,5,5,197,224,5,5,202,224,5,5,203,224,5,5,180,204,192,0,0,0,5,5,189,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,204,192,0,0,0,5,5,190,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,224,5,5,183,204,5,5,192,224,192,0,0,0,5,5,204,204,192,0,0,0,5,5,195,204,5,5,174,204,5,5,175,204,5,5,211,224,5,5,138,206,192,0,0,0,5,5,188,204,5,5,187,204,5,5,193,224,5,5,191,204,5,5,235,226,5,5,182,204,5,5,204,224,5,5,197,204,5,5,196,204,5,5,186,204,5,5,196,224,5,5,205,224,192,0,0,0,5,5,190,224,5,5,185,204,5,5,206,224,5,5,194,204,5,5,194,224,5,5,176,204,192,0,0,0,5,5,179,204,5,5,178,204,5,5,207,224,5,5,192,204,5,5,181,204,5,5,201,204,5,5,203,204,5,5,201,224,5,5,200,204,192,0,0,0,5,5,209,224,5,5,195,224,5,5,210,224,192,0,0,0,5,5,199,224,192,0,0,0,5,5,208,224,192,0,0,0,5,5,200,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,226,5,5,231,226,192,0,0,0,5,5,126,206,192,0,0,0,5,5,236,226,5,5,242,226,5,5,125,206,5,5,229,226,5,5,129,206,5,5,233,226,5,5,226,226,5,5,127,206,5,5,230,226,5,5,132,206,5,5,137,206,192,0,0,0,5,5,247,226,192,0,0,0,5,5,225,226,192,0,0,0,5,5,133,206,192,0,0,0,5,5,246,226,192,0,0,0,192,0,0,0,5,5,128,206,5,5,232,226,5,5,124,206,5,5,227,226,5,5,223,226,5,5,237,226,5,5,224,226,5,5,222,226,5,5,234,226,5,5,240,226,5,5,241,226,5,5,130,206,192,0,0,0,192,0,0,0,5,5,101,229,5,5,238,226,5,5,221,226,5,5,239,226,192,0,0,0,5,5,140,206,5,5,244,226,5,5,139,206,5,5,220,226,192,0,0,0,5,5,228,226,5,5,245,226,5,5,135,206,5,5,134,206,5,5,131,206,5,5,136,206,192,0,0,0,192,0,0,0,5,5,122,206,192,0,0,0,192,0,0,0,5,5,123,206,192,0,0,0,192,0,0,0,5,5,110,208,192,0,0,0,5,5,104,229,5,5,97,229,192,0,0,0,5,5,107,208,192,0,0,0,5,5,105,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,229,5,5,98,229,5,5,106,208,5,5,99,229,192,0,0,0,192,0,0,0,5,5,109,208,5,5,103,229,192,0,0,0,5,5,93,229,5,5,92,229,5,5,111,208,192,0,0,0,5,5,112,208,5,5,108,208,5,5,113,208,5,5,91,229,5,5,102,229,5,5,100,229,5,5,94,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,208,5,5,96,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,210,5,5,69,210,5,5,25,232,5,5,78,210,5,5,31,232,5,5,34,232,5,5,71,210,5,5,72,210,5,5,28,232,5,5,70,210,5,5,37,232,5,5,76,210,5,5,38,232,192,0,0,0,5,5,33,232,5,5,77,210,192,0,0,0,5,5,22,232,5,5,74,210,5,5,23,232,192,0,0,0,5,5,32,232,5,5,30,232,192,0,0,0,5,5,26,232,5,5,73,210,5,5,24,232,5,5,79,210,5,5,29,232,5,5,36,232,5,5,27,232,5,5,35,232,192,0,0,0,192,0,0,0,5,5,18,212,5,5,15,212,192,0,0,0,5,5,16,212,192,0,0,0,5,5,210,234,5,5,202,234,5,5,14,212,5,5,11,212,5,5,203,234,192,0,0,0,192,0,0,0,5,5,13,212,5,5,206,234,192,0,0,0,5,5,208,234,192,0,0,0,192,0,0,0,5,5,215,234,192,0,0,0,192,0,0,0,5,5,214,234,5,5,209,234,5,5,10,212,5,5,201,234,5,5,8,212,5,5,204,234,5,5,19,212,5,5,207,234,192,0,0,0,5,5,211,234,5,5,12,212,5,5,9,212,5,5,213,234,5,5,212,234,5,5,17,212,192,0,0,0,5,5,205,234,192,0,0,0,5,5,144,213,5,5,63,237,192,0,0,0,5,5,60,237,5,5,145,213,192,0,0,0,5,5,143,213,192,0,0,0,5,5,67,237,5,5,64,237,5,5,57,237,5,5,142,213,192,0,0,0,5,5,146,213,5,5,58,237,5,5,141,213,5,5,149,213,5,5,61,237,5,5,62,237,5,5,147,213,5,5,148,213,5,5,68,237,5,5,65,237,5,5,66,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,215,5,5,195,239,5,5,26,215,5,5,192,239,5,5,28,215,5,5,30,215,192,0,0,0,5,5,193,239,5,5,27,215,192,0,0,0,5,5,194,239,192,0,0,0,5,5,191,239,192,0,0,0,192,0,0,0,5,5,71,216,5,5,2,242,5,5,72,216,5,5,254,241,192,0,0,0,5,5,255,241,5,5,253,241,5,5,252,241,192,0,0,0,192,0,0,0,5,5,3,242,5,5,70,216,192,0,0,0,192,0,0,0,5,5,214,243,5,5,215,243,192,0,0,0,5,5,59,237,5,5,213,243,5,5,73,216,5,5,11,218,5,5,71,245,5,5,72,245,192,0,0,0,5,5,254,218,5,5,255,218,5,5,149,247,5,5,148,247,5,5,84,219,5,5,83,219,5,5,224,248,192,0,0,0,5,5,0,145,5,5,0,169,5,5,26,199,192,0,0,0,5,5,25,199,5,5,115,199,5,5,114,199,5,5,250,199,5,5,249,199,5,5,251,199,5,5,248,199,192,0,0,0,5,5,166,200,5,5,165,200,5,5,167,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,201,192,0,0,0,5,5,184,201,5,5,186,201,192,0,0,0,5,5,52,203,192,0,0,0,5,5,0,127,5,5,212,224,5,5,0,128,5,5,141,206,5,5,0,130,5,5,0,129,5,5,106,229,192,0,0,0,5,5,0,131,5,5,20,212,5,5,0,132,192,0,0,0,5,5,0,146,192,0,0,0,5,5,27,199,5,5,252,199,5,5,187,201,192,0,0,0,5,5,0,147,5,5,30,199,5,5,28,199,5,5,29,199,192,0,0,0,192,0,0,0,5,5,253,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,200,5,5,189,201,5,5,188,201,5,5,190,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,220,192,0,0,0,5,5,116,199,5,5,117,199,192,0,0,0,192,0,0,0,5,5,254,199,192,0,0,0,5,5,204,220,192,0,0,0,5,5,54,203,5,5,53,203,5,5,214,224,5,5,213,224,5,5,142,206,192,0,0,0,5,5,31,199,5,5,26,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,221,192,0,0,0,5,5,55,203,192,0,0,0,5,5,208,204,192,0,0,0,5,5,206,204,5,5,207,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,215,192,0,0,0,5,5,118,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,199,5,5,95,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,200,5,5,170,200,192,0,0,0,5,5,205,220,192,0,0,0,192,0,0,0,5,5,173,221,5,5,191,201,5,5,174,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,224,5,5,217,224,5,5,211,204,192,0,0,0,5,5,218,224,192,0,0,0,5,5,215,224,5,5,212,204,5,5,210,204,5,5,209,204,5,5,219,224,192,0,0,0,5,5,248,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,229,192,0,0,0,192,0,0,0,5,5,39,232,5,5,216,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,213,5,5,33,215,5,5,196,239,192,0,0,0,5,5,0,148,5,5,0,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,206,5,5,115,208,192,0,0,0,5,5,21,212,192,0,0,0,5,5,8,220,5,5,32,199,192,0,0,0,5,5,121,199,5,5,119,199,5,5,120,199,192,0,0,0,192,0,0,0,5,5,192,201,192,0,0,0,192,0,0,0,5,5,0,149,5,5,0,150,192,0,0,0,5,5,0,170,192,0,0,0,192,0,0,0,5,5,33,199,5,5,34,199,5,5,35,199,5,5,97,220,5,5,122,199,192,0,0,0,5,5,48,220,192,0,0,0,5,5,5,200,192,0,0,0,5,5,98,220,5,5,3,200,5,5,4,200,5,5,96,220,192,0,0,0,192,0,0,0,5,5,6,200,5,5,2,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,220,5,5,3,203,5,5,207,220,192,0,0,0,192,0,0,0,5,5,208,220,192,0,0,0,192,0,0,0,5,5,172,200,5,5,171,200,192,0,0,0,192,0,0,0,5,5,175,200,5,5,173,200,5,5,174,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,201,192,0,0,0,5,5,197,201,5,5,179,221,5,5,176,221,5,5,177,221,192,0,0,0,5,5,175,221,5,5,199,201,5,5,195,201,5,5,194,201,192,0,0,0,5,5,196,201,5,5,193,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,201,192,0,0,0,5,5,57,203,5,5,13,223,192,0,0,0,5,5,178,221,5,5,62,203,192,0,0,0,5,5,14,223,5,5,58,203,5,5,61,203,5,5,60,203,5,5,59,203,5,5,56,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,224,192,0,0,0,5,5,215,204,5,5,225,224,5,5,213,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,224,5,5,216,204,5,5,214,204,5,5,217,204,5,5,223,224,5,5,224,224,192,0,0,0,5,5,220,224,5,5,226,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,208,5,5,144,206,5,5,249,226,5,5,251,226,5,5,250,226,5,5,252,226,5,5,145,206,192,0,0,0,192,0,0,0,5,5,116,208,192,0,0,0,5,5,117,208,5,5,118,208,192,0,0,0,5,5,81,210,5,5,41,232,192,0,0,0,5,5,40,232,5,5,42,232,5,5,43,232,5,5,82,210,192,0,0,0,5,5,80,210,5,5,217,234,5,5,218,234,5,5,23,212,5,5,22,212,5,5,48,236,192,0,0,0,192,0,0,0,5,5,151,213,5,5,152,213,5,5,153,213,5,5,155,213,5,5,69,237,5,5,70,237,5,5,154,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,215,192,0,0,0,5,5,35,215,192,0,0,0,192,0,0,0,5,5,73,245,5,5,151,247,5,5,150,247,5,5,225,248,192,0,0,0,5,5,0,151,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,199,5,5,123,199,192,0,0,0,192,0,0,0,5,5,7,200,192,0,0,0,192,0,0,0,5,5,99,220,192,0,0,0,192,0,0,0,5,5,177,200,5,5,178,200,5,5,176,200,5,5,179,200,5,5,209,220,5,5,210,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,201,5,5,180,221,192,0,0,0,5,5,201,201,192,0,0,0,5,5,15,223,5,5,66,203,5,5,16,223,5,5,65,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,203,192,0,0,0,5,5,64,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,206,5,5,254,226,192,0,0,0,5,5,149,206,5,5,253,226,5,5,79,207,5,5,148,206,5,5,147,206,192,0,0,0,5,5,122,208,192,0,0,0,5,5,121,208,5,5,120,208,5,5,83,210,192,0,0,0,192,0,0,0,5,5,86,210,5,5,87,210,5,5,85,210,192,0,0,0,5,5,84,210,192,0,0,0,192,0,0,0,5,5,219,234,192,0,0,0,5,5,220,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,237,5,5,156,213,5,5,71,237,192,0,0,0,5,5,36,215,5,5,4,242,5,5,74,216,192,0,0,0,5,5,74,245,5,5,158,218,192,0,0,0,5,5,0,171,5,5,36,199,5,5,27,220,192,0,0,0,5,5,37,199,5,5,38,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,199,5,5,126,199,192,0,0,0,5,5,8,200,5,5,211,220,5,5,181,221,5,5,182,221,192,0,0,0,5,5,67,203,5,5,228,224,5,5,151,206,5,5,150,206,5,5,109,229,5,5,108,229,192,0,0,0,192,0,0,0,5,5,0,152,5,5,39,199,5,5,127,199,192,0,0,0,5,5,152,206,5,5,9,220,192,0,0,0,5,5,49,220,5,5,128,199,192,0,0,0,5,5,101,220,5,5,10,200,5,5,9,200,5,5,100,220,5,5,180,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,204,192,0,0,0,192,0,0,0,5,5,255,226,192,0,0,0,5,5,88,210,5,5,221,234,5,5,24,212,192,0,0,0,192,0,0,0,5,5,197,239,192,0,0,0,192,0,0,0,5,5,149,246,192,0,0,0,5,5,40,199,192,0,0,0,192,0,0,0,5,5,183,221,5,5,17,223,5,5,155,206,5,5,153,206,5,5,154,206,5,5,0,153,192,0,0,0,5,5,0,172,192,0,0,0,5,5,43,199,192,0,0,0,5,5,42,199,5,5,41,199,5,5,131,199,5,5,130,199,192,0,0,0,5,5,50,220,5,5,102,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,201,5,5,203,201,5,5,205,201,5,5,204,201,192,0,0,0,192,0,0,0,5,5,68,203,192,0,0,0,192,0,0,0,5,5,123,208,192,0,0,0,5,5,0,154,192,0,0,0,5,5,44,199,192,0,0,0,5,5,133,199,5,5,132,199,192,0,0,0,5,5,212,220,192,0,0,0,192,0,0,0,5,5,207,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,220,192,0,0,0,5,5,135,199,5,5,134,199,5,5,11,200,5,5,12,200,5,5,213,220,5,5,181,200,192,0,0,0,5,5,182,200,192,0,0,0,5,5,208,201,5,5,209,201,5,5,210,201,192,0,0,0,5,5,69,203,5,5,18,223,192,0,0,0,192,0,0,0,5,5,219,204,192,0,0,0,192,0,0,0,5,5,10,220,192,0,0,0,5,5,45,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,220,5,5,215,220,192,0,0,0,192,0,0,0,5,5,184,221,192,0,0,0,5,5,185,221,192,0,0,0,5,5,20,223,5,5,19,223,5,5,22,223,5,5,21,223,5,5,70,203,192,0,0,0,5,5,2,227,5,5,221,204,5,5,229,224,5,5,220,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,229,5,5,124,208,192,0,0,0,5,5,111,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,234,5,5,25,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,213,192,0,0,0,5,5,75,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,220,192,0,0,0,5,5,136,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,155,5,5,0,173,5,5,47,199,5,5,46,199,192,0,0,0,5,5,48,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,201,192,0,0,0,5,5,211,201,5,5,213,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,204,192,0,0,0,5,5,198,239,5,5,92,217,5,5,0,174,5,5,138,199,5,5,153,199,5,5,148,199,192,0,0,0,5,5,143,199,5,5,142,199,5,5,149,199,5,5,147,199,5,5,140,199,5,5,154,199,5,5,141,199,5,5,137,199,5,5,152,199,5,5,151,199,5,5,150,199,5,5,139,199,192,0,0,0,5,5,146,199,192,0,0,0,192,0,0,0,5,5,145,199,192,0,0,0,192,0,0,0,5,5,155,199,5,5,144,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,200,192,0,0,0,5,5,24,200,5,5,20,200,192,0,0,0,5,5,26,200,5,5,104,220,5,5,23,200,5,5,13,200,5,5,16,200,5,5,19,200,5,5,15,200,5,5,22,200,5,5,25,200,5,5,14,200,5,5,17,200,5,5,21,200,5,5,27,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,220,5,5,221,220,192,0,0,0,5,5,195,200,5,5,222,220,5,5,183,200,5,5,185,200,5,5,209,200,5,5,204,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,220,5,5,223,220,5,5,187,200,5,5,189,200,5,5,228,220,5,5,196,200,5,5,218,220,5,5,208,200,5,5,210,200,5,5,184,200,5,5,201,200,192,0,0,0,5,5,216,220,5,5,207,200,192,0,0,0,5,5,192,200,192,0,0,0,5,5,202,200,5,5,203,200,5,5,217,220,5,5,200,200,5,5,198,200,192,0,0,0,5,5,199,200,5,5,205,200,5,5,225,220,5,5,186,200,192,0,0,0,5,5,206,200,5,5,227,220,5,5,194,200,5,5,191,200,192,0,0,0,5,5,220,220,5,5,190,200,5,5,230,220,5,5,193,200,192,0,0,0,5,5,197,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,200,5,5,226,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,221,5,5,201,221,5,5,231,201,5,5,204,221,5,5,206,221,5,5,195,221,5,5,198,221,5,5,205,221,5,5,232,201,192,0,0,0,192,0,0,0,5,5,192,221,5,5,196,221,192,0,0,0,192,0,0,0,5,5,200,221,5,5,37,223,5,5,227,201,5,5,41,223,5,5,214,201,5,5,197,221,5,5,215,201,5,5,228,201,5,5,221,201,5,5,217,201,192,0,0,0,5,5,193,221,5,5,220,201,5,5,225,201,5,5,234,201,5,5,194,221,5,5,187,221,5,5,219,201,5,5,188,221,5,5,190,221,192,0,0,0,5,5,222,201,192,0,0,0,5,5,224,201,5,5,186,221,5,5,191,221,192,0,0,0,192,0,0,0,5,5,233,201,5,5,229,201,5,5,199,221,5,5,235,201,192,0,0,0,5,5,226,201,5,5,189,221,5,5,223,201,192,0,0,0,192,0,0,0,5,5,218,201,5,5,216,201,192,0,0,0,5,5,203,221,192,0,0,0,5,5,230,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,223,5,5,24,223,5,5,39,223,192,0,0,0,192,0,0,0,5,5,26,223,5,5,78,203,5,5,92,203,5,5,74,203,5,5,91,203,5,5,83,203,5,5,88,203,5,5,72,203,5,5,25,223,5,5,31,223,5,5,87,203,5,5,43,223,5,5,89,203,192,0,0,0,5,5,79,203,192,0,0,0,192,0,0,0,5,5,33,223,5,5,30,223,5,5,77,203,192,0,0,0,5,5,23,223,5,5,90,203,5,5,38,223,5,5,82,203,5,5,40,223,5,5,93,203,5,5,73,203,5,5,84,203,5,5,81,203,5,5,28,223,5,5,85,203,5,5,34,223,5,5,35,223,5,5,80,203,5,5,86,203,5,5,76,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,203,5,5,27,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,223,192,0,0,0,5,5,249,224,5,5,235,204,5,5,231,224,192,0,0,0,5,5,236,224,5,5,228,204,5,5,239,204,5,5,234,224,5,5,223,204,5,5,233,204,5,5,238,204,5,5,241,224,192,0,0,0,5,5,234,204,5,5,237,204,192,0,0,0,192,0,0,0,5,5,244,224,5,5,229,204,5,5,235,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,224,5,5,248,224,192,0,0,0,5,5,231,204,5,5,246,224,5,5,227,204,5,5,242,204,192,0,0,0,5,5,238,224,192,0,0,0,5,5,225,204,192,0,0,0,5,5,251,224,5,5,239,224,5,5,243,224,5,5,230,204,5,5,241,204,5,5,240,224,5,5,236,204,5,5,245,224,5,5,252,224,5,5,17,227,192,0,0,0,5,5,250,224,5,5,243,204,5,5,224,204,5,5,242,224,5,5,233,224,192,0,0,0,5,5,232,204,192,0,0,0,192,0,0,0,5,5,232,224,192,0,0,0,192,0,0,0,5,5,237,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,224,5,5,240,204,192,0,0,0,192,0,0,0,5,5,9,227,192,0,0,0,5,5,175,206,5,5,23,227,5,5,173,206,5,5,170,206,5,5,14,227,5,5,166,206,5,5,18,227,5,5,177,206,5,5,8,227,5,5,13,227,5,5,12,227,5,5,226,204,5,5,172,206,5,5,21,227,192,0,0,0,5,5,24,227,5,5,5,227,192,0,0,0,5,5,142,208,192,0,0,0,5,5,25,227,5,5,178,206,192,0,0,0,5,5,164,206,5,5,161,206,5,5,16,227,5,5,158,206,192,0,0,0,5,5,22,227,192,0,0,0,5,5,165,206,5,5,26,227,192,0,0,0,5,5,6,227,5,5,20,227,5,5,168,206,5,5,7,227,5,5,10,227,5,5,15,227,192,0,0,0,192,0,0,0,5,5,169,206,5,5,167,206,5,5,179,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,206,192,0,0,0,5,5,162,206,5,5,60,207,192,0,0,0,5,5,163,206,5,5,11,227,5,5,176,206,5,5,171,206,5,5,19,227,5,5,160,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,227,5,5,4,227,5,5,116,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,208,5,5,128,208,5,5,127,229,5,5,148,208,5,5,130,229,5,5,126,208,5,5,123,229,5,5,132,208,5,5,138,208,5,5,159,209,192,0,0,0,192,0,0,0,5,5,136,208,5,5,120,229,5,5,149,208,5,5,129,208,5,5,137,208,5,5,128,229,5,5,57,232,5,5,133,229,5,5,121,229,192,0,0,0,5,5,112,229,5,5,125,229,5,5,119,229,5,5,135,208,5,5,131,229,192,0,0,0,192,0,0,0,5,5,131,208,5,5,151,208,5,5,144,208,192,0,0,0,5,5,133,208,5,5,130,208,192,0,0,0,5,5,141,208,192,0,0,0,5,5,132,229,5,5,118,229,5,5,124,229,5,5,126,229,5,5,114,229,5,5,129,229,5,5,127,208,5,5,113,229,192,0,0,0,5,5,134,208,5,5,150,208,5,5,146,208,5,5,115,229,5,5,140,208,192,0,0,0,192,0,0,0,5,5,147,208,5,5,143,208,5,5,139,208,192,0,0,0,5,5,122,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,232,5,5,51,232,192,0,0,0,5,5,66,232,5,5,44,232,5,5,53,232,5,5,102,210,5,5,103,210,5,5,95,210,5,5,62,232,5,5,105,210,5,5,49,232,5,5,48,232,5,5,46,232,5,5,64,232,5,5,93,210,5,5,58,232,5,5,47,232,5,5,96,210,5,5,56,232,5,5,91,210,5,5,52,232,5,5,59,232,5,5,61,232,192,0,0,0,192,0,0,0,5,5,65,232,5,5,100,210,5,5,45,232,5,5,94,210,5,5,50,232,192,0,0,0,5,5,89,210,192,0,0,0,5,5,101,210,5,5,60,232,5,5,97,210,5,5,98,210,5,5,104,210,5,5,92,210,5,5,0,133,5,5,90,210,5,5,54,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,210,192,0,0,0,192,0,0,0,5,5,63,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,212,5,5,36,212,192,0,0,0,5,5,237,234,5,5,233,234,192,0,0,0,5,5,227,234,5,5,30,212,5,5,26,212,5,5,236,234,5,5,27,212,5,5,230,234,5,5,232,234,192,0,0,0,5,5,235,234,192,0,0,0,5,5,32,212,192,0,0,0,5,5,39,212,5,5,33,212,192,0,0,0,192,0,0,0,5,5,225,234,5,5,34,212,5,5,35,212,5,5,228,234,5,5,40,212,192,0,0,0,5,5,226,234,5,5,231,234,5,5,31,212,5,5,224,234,5,5,37,212,5,5,29,212,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,212,5,5,229,234,5,5,234,234,192,0,0,0,5,5,38,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,234,192,0,0,0,5,5,164,213,5,5,89,237,192,0,0,0,5,5,86,237,192,0,0,0,5,5,158,213,5,5,170,213,5,5,171,213,192,0,0,0,5,5,161,213,5,5,84,237,5,5,163,213,5,5,76,237,5,5,169,213,192,0,0,0,5,5,88,237,5,5,160,213,5,5,90,237,5,5,159,213,192,0,0,0,5,5,85,237,5,5,87,237,5,5,162,213,5,5,83,237,5,5,77,237,5,5,74,237,192,0,0,0,192,0,0,0,5,5,117,229,5,5,80,237,192,0,0,0,5,5,73,237,5,5,79,237,5,5,78,237,192,0,0,0,5,5,75,237,192,0,0,0,5,5,166,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,213,5,5,81,237,5,5,37,215,5,5,82,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,239,192,0,0,0,5,5,200,239,192,0,0,0,5,5,49,215,5,5,204,239,5,5,41,215,5,5,45,215,5,5,203,239,192,0,0,0,5,5,44,215,5,5,40,215,5,5,43,215,5,5,38,215,5,5,48,215,5,5,205,239,5,5,201,239,5,5,47,215,5,5,199,239,5,5,46,215,5,5,206,239,5,5,202,239,5,5,168,213,192,0,0,0,5,5,50,215,5,5,208,239,5,5,42,215,5,5,39,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,242,5,5,13,242,5,5,76,216,5,5,14,242,5,5,12,242,5,5,10,242,5,5,9,242,5,5,78,216,5,5,8,242,5,5,79,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,242,5,5,7,242,5,5,75,216,5,5,80,216,5,5,77,216,192,0,0,0,192,0,0,0,5,5,5,242,192,0,0,0,5,5,93,217,192,0,0,0,5,5,218,243,5,5,216,243,5,5,221,243,5,5,219,243,192,0,0,0,5,5,217,243,5,5,220,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,218,5,5,78,245,5,5,79,245,5,5,159,218,192,0,0,0,5,5,80,245,5,5,76,245,5,5,81,245,5,5,77,245,5,5,94,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,246,5,5,152,246,5,5,162,218,5,5,151,246,5,5,161,218,5,5,160,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,218,5,5,153,247,5,5,154,247,192,0,0,0,5,5,3,219,5,5,2,219,5,5,4,219,5,5,152,247,192,0,0,0,5,5,75,248,5,5,74,248,192,0,0,0,5,5,85,219,5,5,87,219,5,5,86,219,5,5,76,248,5,5,142,219,5,5,85,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,219,192,0,0,0,5,5,84,249,5,5,157,249,192,0,0,0,192,0,0,0,5,5,15,220,192,0,0,0,192,0,0,0,5,5,157,199,5,5,156,199,192,0,0,0,5,5,30,200,5,5,29,200,5,5,106,220,5,5,28,200,5,5,105,220,192,0,0,0,192,0,0,0,5,5,213,200,5,5,233,220,192,0,0,0,5,5,232,220,192,0,0,0,192,0,0,0,5,5,211,200,5,5,214,200,192,0,0,0,192,0,0,0,5,5,231,220,192,0,0,0,5,5,212,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,221,192,0,0,0,5,5,208,221,5,5,236,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,203,192,0,0,0,5,5,253,224,5,5,254,224,5,5,244,204,5,5,245,204,192,0,0,0,192,0,0,0,5,5,28,227,5,5,180,206,5,5,182,206,5,5,27,227,5,5,181,206,5,5,134,229,5,5,152,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,210,5,5,107,210,5,5,67,232,192,0,0,0,5,5,43,212,192,0,0,0,5,5,42,212,192,0,0,0,5,5,91,237,5,5,210,239,5,5,209,239,192,0,0,0,5,5,217,249,5,5,0,175,5,5,30,220,192,0,0,0,5,5,51,220,5,5,52,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,200,5,5,37,200,5,5,108,220,192,0,0,0,5,5,35,200,5,5,34,200,5,5,107,220,5,5,36,200,5,5,32,200,192,0,0,0,192,0,0,0,5,5,31,200,5,5,109,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,200,192,0,0,0,192,0,0,0,5,5,221,200,192,0,0,0,5,5,217,200,5,5,234,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,220,192,0,0,0,5,5,219,200,192,0,0,0,5,5,237,220,5,5,215,200,5,5,238,220,5,5,236,220,5,5,218,200,5,5,220,200,5,5,223,200,5,5,222,200,5,5,216,200,5,5,239,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,201,5,5,221,221,192,0,0,0,5,5,243,201,192,0,0,0,5,5,242,201,192,0,0,0,5,5,222,221,5,5,240,201,5,5,239,201,5,5,212,221,192,0,0,0,5,5,211,221,192,0,0,0,5,5,209,221,5,5,214,221,5,5,213,221,5,5,210,221,5,5,219,221,5,5,220,221,5,5,217,221,5,5,215,221,5,5,238,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,221,5,5,244,201,5,5,223,221,192,0,0,0,192,0,0,0,5,5,216,221,192,0,0,0,5,5,95,203,5,5,237,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,203,5,5,48,223,192,0,0,0,192,0,0,0,5,5,54,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,203,5,5,52,223,5,5,58,223,192,0,0,0,5,5,49,223,5,5,53,223,5,5,55,223,5,5,57,223,5,5,51,223,192,0,0,0,5,5,50,223,5,5,45,223,5,5,46,223,5,5,97,203,192,0,0,0,5,5,99,203,5,5,98,203,5,5,47,223,5,5,56,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,223,5,5,10,225,192,0,0,0,5,5,9,225,5,5,14,225,5,5,5,225,192,0,0,0,5,5,8,225,5,5,7,225,192,0,0,0,5,5,11,225,192,0,0,0,5,5,15,225,5,5,246,204,5,5,249,204,192,0,0,0,192,0,0,0,5,5,6,225,5,5,12,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,204,5,5,255,224,192,0,0,0,5,5,100,203,5,5,42,227,5,5,13,225,192,0,0,0,5,5,4,225,192,0,0,0,5,5,247,204,5,5,3,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,227,192,0,0,0,192,0,0,0,5,5,183,206,5,5,187,206,5,5,49,227,5,5,31,227,5,5,45,227,5,5,188,206,5,5,47,227,192,0,0,0,5,5,53,227,192,0,0,0,5,5,57,227,192,0,0,0,192,0,0,0,5,5,48,227,5,5,36,227,5,5,44,227,192,0,0,0,5,5,58,227,5,5,56,227,5,5,46,227,5,5,41,227,5,5,34,227,5,5,142,229,5,5,32,227,5,5,192,206,5,5,39,227,5,5,193,206,5,5,189,206,5,5,29,227,5,5,51,227,5,5,37,227,192,0,0,0,192,0,0,0,5,5,35,227,5,5,54,227,5,5,190,206,192,0,0,0,5,5,60,227,5,5,184,206,5,5,186,206,5,5,43,227,5,5,38,227,5,5,250,204,5,5,185,206,5,5,40,227,5,5,55,227,5,5,59,227,5,5,50,227,192,0,0,0,5,5,52,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,229,192,0,0,0,5,5,146,229,5,5,145,229,5,5,160,208,5,5,138,229,192,0,0,0,5,5,161,208,5,5,159,208,192,0,0,0,5,5,140,229,5,5,156,208,5,5,144,229,192,0,0,0,5,5,139,229,5,5,141,229,5,5,135,229,5,5,154,208,192,0,0,0,5,5,154,229,5,5,153,229,5,5,150,229,5,5,153,208,5,5,157,208,5,5,158,208,5,5,2,225,5,5,147,229,5,5,155,208,5,5,191,206,5,5,149,229,5,5,136,229,5,5,152,229,5,5,151,229,192,0,0,0,5,5,155,229,192,0,0,0,5,5,81,232,192,0,0,0,5,5,148,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,229,5,5,73,232,5,5,117,210,5,5,120,210,5,5,115,210,5,5,72,232,5,5,76,232,5,5,71,232,192,0,0,0,5,5,109,210,5,5,119,210,5,5,68,232,5,5,113,210,5,5,75,232,192,0,0,0,5,5,111,210,5,5,110,210,5,5,78,232,5,5,112,210,5,5,80,232,192,0,0,0,5,5,77,232,5,5,108,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,210,5,5,82,232,5,5,70,232,5,5,79,232,192,0,0,0,192,0,0,0,5,5,69,232,192,0,0,0,192,0,0,0,5,5,114,210,192,0,0,0,5,5,116,210,192,0,0,0,5,5,74,232,192,0,0,0,5,5,83,232,192,0,0,0,192,0,0,0,5,5,245,234,5,5,44,212,5,5,251,234,192,0,0,0,192,0,0,0,5,5,49,212,5,5,247,234,5,5,254,234,5,5,239,234,5,5,51,212,5,5,45,212,5,5,244,234,5,5,172,213,5,5,243,234,5,5,252,234,5,5,46,212,192,0,0,0,5,5,50,212,5,5,242,234,5,5,248,234,5,5,253,234,5,5,238,234,5,5,48,212,5,5,246,234,192,0,0,0,192,0,0,0,5,5,250,234,5,5,2,235,5,5,240,234,5,5,249,234,192,0,0,0,5,5,47,212,5,5,255,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,213,5,5,93,237,5,5,174,213,5,5,173,213,5,5,95,237,5,5,100,237,192,0,0,0,5,5,96,237,192,0,0,0,5,5,99,237,5,5,179,213,192,0,0,0,5,5,24,215,5,5,178,213,192,0,0,0,5,5,92,237,5,5,98,237,192,0,0,0,5,5,177,213,5,5,97,237,192,0,0,0,5,5,94,237,192,0,0,0,5,5,175,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,239,192,0,0,0,5,5,217,239,5,5,212,239,5,5,52,215,5,5,214,239,192,0,0,0,5,5,51,215,5,5,216,239,192,0,0,0,192,0,0,0,5,5,54,215,5,5,218,239,5,5,53,215,5,5,211,239,5,5,213,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,216,5,5,17,242,192,0,0,0,5,5,83,216,5,5,18,242,5,5,82,216,5,5,16,242,5,5,81,216,5,5,15,242,192,0,0,0,5,5,96,217,5,5,95,217,5,5,82,245,5,5,84,245,192,0,0,0,5,5,83,245,5,5,13,218,5,5,14,218,192,0,0,0,192,0,0,0,5,5,15,218,5,5,153,246,5,5,164,218,192,0,0,0,192,0,0,0,5,5,227,248,5,5,226,248,5,5,184,219,192,0,0,0,5,5,0,176,5,5,49,199,192,0,0,0,192,0,0,0,5,5,225,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,208,5,5,163,208,192,0,0,0,5,5,84,232,5,5,52,212,5,5,3,235,5,5,101,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,220,192,0,0,0,192,0,0,0,5,5,240,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,221,5,5,60,223,5,5,16,225,5,5,251,204,192,0,0,0,192,0,0,0,5,5,85,245,192,0,0,0,5,5,5,219,5,5,0,177,5,5,158,199,5,5,53,220,192,0,0,0,5,5,38,200,5,5,39,200,192,0,0,0,5,5,245,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,206,192,0,0,0,5,5,54,212,192,0,0,0,5,5,55,212,5,5,53,212,192,0,0,0,5,5,0,178,192,0,0,0,5,5,50,199,5,5,52,199,5,5,51,199,5,5,32,220,5,5,53,199,5,5,159,199,5,5,54,220,192,0,0,0,5,5,160,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,200,5,5,41,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,220,192,0,0,0,5,5,226,200,192,0,0,0,5,5,241,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,201,5,5,225,221,192,0,0,0,5,5,247,201,5,5,248,201,5,5,246,201,5,5,17,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,203,5,5,105,203,5,5,107,203,5,5,104,203,192,0,0,0,5,5,61,223,5,5,250,201,5,5,103,203,192,0,0,0,5,5,252,204,5,5,253,204,192,0,0,0,5,5,254,204,192,0,0,0,5,5,61,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,208,5,5,156,229,5,5,195,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,210,192,0,0,0,5,5,57,212,5,5,56,212,5,5,4,235,192,0,0,0,5,5,180,213,5,5,55,215,192,0,0,0,5,5,222,243,5,5,77,248,5,5,228,248,5,5,0,179,5,5,161,199,192,0,0,0,5,5,162,199,5,5,116,220,5,5,43,200,5,5,46,200,192,0,0,0,5,5,114,220,5,5,112,220,5,5,45,200,5,5,115,220,5,5,117,220,5,5,111,220,5,5,48,200,5,5,47,200,5,5,44,200,5,5,42,200,5,5,113,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,200,192,0,0,0,192,0,0,0,5,5,234,200,5,5,246,220,5,5,249,220,5,5,248,220,192,0,0,0,5,5,228,200,5,5,236,200,192,0,0,0,192,0,0,0,5,5,233,200,5,5,245,220,5,5,243,220,5,5,232,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,200,5,5,230,200,192,0,0,0,5,5,244,220,5,5,251,220,5,5,247,220,5,5,231,200,5,5,235,200,5,5,238,200,5,5,242,220,5,5,250,220,5,5,229,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,201,5,5,9,202,192,0,0,0,5,5,237,221,5,5,230,221,5,5,10,202,5,5,241,221,5,5,226,221,5,5,233,221,192,0,0,0,192,0,0,0,5,5,254,201,5,5,227,221,5,5,252,201,5,5,234,221,5,5,238,221,5,5,251,201,192,0,0,0,5,5,239,221,5,5,232,221,192,0,0,0,5,5,235,221,192,0,0,0,5,5,12,202,5,5,3,202,5,5,242,221,5,5,240,221,192,0,0,0,5,5,8,202,5,5,6,202,5,5,231,221,5,5,5,202,5,5,229,221,5,5,228,221,5,5,4,202,5,5,2,202,5,5,11,202,5,5,7,202,5,5,253,201,192,0,0,0,5,5,236,221,192,0,0,0,5,5,109,203,192,0,0,0,5,5,116,203,5,5,75,223,5,5,108,203,5,5,67,223,5,5,63,223,192,0,0,0,5,5,79,223,5,5,62,223,192,0,0,0,5,5,111,203,5,5,72,223,5,5,114,203,5,5,117,203,192,0,0,0,5,5,112,203,5,5,76,223,5,5,115,203,192,0,0,0,5,5,7,205,5,5,82,223,5,5,64,223,192,0,0,0,192,0,0,0,5,5,66,223,5,5,73,223,5,5,77,223,5,5,81,223,5,5,78,223,5,5,71,223,5,5,74,223,192,0,0,0,192,0,0,0,5,5,68,223,5,5,119,203,5,5,70,223,5,5,69,223,5,5,80,223,5,5,110,203,5,5,65,223,5,5,118,203,192,0,0,0,5,5,113,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,205,5,5,25,225,192,0,0,0,5,5,12,205,192,0,0,0,192,0,0,0,5,5,23,225,192,0,0,0,5,5,255,204,192,0,0,0,5,5,6,205,192,0,0,0,5,5,22,225,5,5,19,225,5,5,24,225,5,5,2,205,5,5,18,225,192,0,0,0,5,5,5,205,5,5,3,205,192,0,0,0,5,5,26,225,5,5,4,205,5,5,8,205,192,0,0,0,192,0,0,0,5,5,9,205,192,0,0,0,5,5,11,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,225,5,5,21,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,225,192,0,0,0,5,5,68,227,5,5,196,206,5,5,170,229,5,5,67,227,5,5,86,227,192,0,0,0,192,0,0,0,5,5,202,206,192,0,0,0,5,5,84,227,192,0,0,0,5,5,201,206,5,5,197,206,5,5,93,227,5,5,77,227,5,5,80,227,192,0,0,0,5,5,205,206,5,5,90,227,5,5,82,227,5,5,198,206,5,5,206,206,192,0,0,0,5,5,87,227,5,5,85,227,192,0,0,0,192,0,0,0,5,5,70,227,5,5,91,227,5,5,79,227,5,5,74,227,192,0,0,0,5,5,64,227,5,5,92,227,5,5,76,227,5,5,63,227,192,0,0,0,5,5,204,206,5,5,81,227,5,5,94,227,5,5,78,227,5,5,66,227,5,5,71,227,5,5,62,227,192,0,0,0,5,5,203,206,192,0,0,0,5,5,75,227,5,5,72,227,5,5,199,206,5,5,65,227,192,0,0,0,5,5,89,227,5,5,200,206,192,0,0,0,5,5,73,227,5,5,69,227,192,0,0,0,192,0,0,0,5,5,88,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,208,5,5,163,229,192,0,0,0,5,5,160,229,5,5,177,229,5,5,165,229,5,5,178,229,192,0,0,0,5,5,167,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,229,5,5,171,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,229,5,5,175,229,5,5,179,229,192,0,0,0,5,5,83,227,5,5,181,229,5,5,104,232,192,0,0,0,5,5,168,208,5,5,182,229,5,5,158,229,5,5,168,229,192,0,0,0,5,5,173,229,192,0,0,0,192,0,0,0,5,5,166,208,5,5,169,208,5,5,180,229,5,5,183,229,5,5,162,229,5,5,159,229,192,0,0,0,192,0,0,0,5,5,161,229,192,0,0,0,192,0,0,0,5,5,166,229,5,5,164,229,5,5,170,208,192,0,0,0,5,5,176,229,192,0,0,0,192,0,0,0,5,5,167,229,192,0,0,0,5,5,169,229,5,5,157,229,5,5,92,232,5,5,90,232,5,5,130,210,5,5,128,210,5,5,100,232,5,5,91,232,5,5,101,232,5,5,97,232,5,5,89,232,5,5,103,232,5,5,88,232,5,5,95,232,5,5,127,210,5,5,126,210,5,5,125,210,5,5,93,232,5,5,98,232,5,5,122,210,5,5,129,210,192,0,0,0,5,5,86,232,192,0,0,0,5,5,96,232,5,5,85,232,5,5,94,232,5,5,123,210,5,5,99,232,5,5,87,232,5,5,124,210,5,5,102,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,235,5,5,62,212,5,5,61,212,5,5,63,212,5,5,20,235,5,5,10,235,5,5,16,235,5,5,5,235,5,5,19,235,5,5,18,235,5,5,22,235,5,5,15,235,5,5,58,212,5,5,14,235,5,5,64,212,192,0,0,0,5,5,7,235,5,5,59,212,192,0,0,0,5,5,21,235,5,5,60,212,5,5,9,235,5,5,12,235,5,5,17,235,5,5,11,235,5,5,6,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,235,5,5,103,237,5,5,184,213,5,5,106,237,5,5,105,237,5,5,108,237,5,5,110,237,192,0,0,0,5,5,182,213,192,0,0,0,5,5,104,237,192,0,0,0,5,5,102,237,192,0,0,0,5,5,111,237,5,5,109,237,5,5,107,237,192,0,0,0,5,5,113,237,192,0,0,0,5,5,112,237,5,5,186,213,5,5,181,213,192,0,0,0,5,5,183,213,5,5,185,213,192,0,0,0,192,0,0,0,5,5,114,237,5,5,225,239,192,0,0,0,192,0,0,0,5,5,224,239,5,5,223,239,192,0,0,0,5,5,226,239,5,5,219,239,192,0,0,0,5,5,220,239,5,5,228,239,5,5,221,239,192,0,0,0,5,5,56,215,5,5,230,239,192,0,0,0,5,5,229,239,5,5,222,239,192,0,0,0,5,5,22,242,5,5,87,216,5,5,20,242,5,5,25,242,5,5,24,242,5,5,227,239,192,0,0,0,5,5,86,216,192,0,0,0,5,5,23,242,5,5,19,242,5,5,27,242,5,5,26,242,5,5,85,216,192,0,0,0,5,5,21,242,192,0,0,0,5,5,57,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,243,5,5,86,245,5,5,87,245,5,5,88,245,5,5,165,218,192,0,0,0,192,0,0,0,5,5,166,218,192,0,0,0,5,5,154,246,192,0,0,0,5,5,156,247,5,5,155,247,192,0,0,0,192,0,0,0,5,5,78,248,5,5,79,248,5,5,229,248,5,5,86,249,192,0,0,0,5,5,0,180,5,5,0,181,192,0,0,0,5,5,0,182,5,5,54,199,5,5,163,199,5,5,118,220,5,5,49,200,5,5,50,200,192,0,0,0,5,5,241,200,5,5,242,200,5,5,240,200,5,5,239,200,192,0,0,0,5,5,13,202,192,0,0,0,192,0,0,0,5,5,243,221,5,5,15,202,5,5,14,202,5,5,244,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,203,192,0,0,0,5,5,14,205,5,5,28,225,192,0,0,0,5,5,96,227,192,0,0,0,5,5,207,206,5,5,172,208,5,5,95,227,5,5,171,208,192,0,0,0,5,5,65,212,192,0,0,0,5,5,23,235,5,5,58,215,192,0,0,0,5,5,88,216,5,5,28,242,192,0,0,0,5,5,167,218,192,0,0,0,5,5,88,219,192,0,0,0,5,5,55,220,192,0,0,0,5,5,164,199,5,5,56,220,5,5,53,200,192,0,0,0,5,5,51,200,5,5,52,200,5,5,54,200,192,0,0,0,5,5,244,200,5,5,243,200,192,0,0,0,5,5,252,220,5,5,245,200,192,0,0,0,192,0,0,0,5,5,253,220,5,5,245,221,192,0,0,0,5,5,246,221,192,0,0,0,5,5,16,202,5,5,18,202,5,5,20,202,5,5,17,202,5,5,21,202,5,5,19,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,203,5,5,121,203,5,5,123,203,5,5,125,203,5,5,122,203,5,5,29,225,5,5,83,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,225,5,5,30,225,5,5,20,205,192,0,0,0,5,5,16,205,192,0,0,0,192,0,0,0,5,5,17,205,5,5,19,205,5,5,21,205,5,5,18,205,192,0,0,0,5,5,23,205,5,5,22,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,206,5,5,98,227,5,5,97,227,5,5,211,206,192,0,0,0,5,5,210,206,5,5,209,206,5,5,213,206,5,5,208,206,192,0,0,0,192,0,0,0,5,5,189,229,5,5,186,229,5,5,174,208,5,5,185,229,5,5,190,229,192,0,0,0,5,5,176,208,5,5,188,229,5,5,173,208,5,5,175,208,5,5,187,229,192,0,0,0,5,5,105,232,192,0,0,0,5,5,106,232,5,5,107,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,212,5,5,74,212,5,5,24,235,5,5,68,212,5,5,72,212,5,5,25,235,5,5,73,212,5,5,69,212,5,5,70,212,5,5,67,212,5,5,71,212,5,5,189,213,5,5,184,229,5,5,190,213,5,5,188,213,192,0,0,0,5,5,187,213,5,5,231,239,5,5,59,215,5,5,29,242,5,5,30,242,192,0,0,0,192,0,0,0,5,5,16,218,5,5,168,218,192,0,0,0,5,5,0,183,192,0,0,0,5,5,55,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,203,192,0,0,0,5,5,32,225,5,5,24,205,192,0,0,0,192,0,0,0,5,5,216,206,5,5,215,206,5,5,214,206,5,5,177,208,5,5,178,208,5,5,191,229,5,5,75,212,5,5,60,215,5,5,0,184,5,5,33,220,5,5,55,199,5,5,57,220,192,0,0,0,192,0,0,0,5,5,119,220,5,5,56,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,232,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,5,5,56,199,5,5,120,220,192,0,0,0,192,0,0,0,5,5,254,220,192,0,0,0,5,5,255,220,192,0,0,0,5,5,246,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,229,5,5,179,208,192,0,0,0,5,5,109,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,216,5,5,0,186,5,5,9,199,5,5,57,199,5,5,58,220,5,5,165,199,192,0,0,0,5,5,250,200,5,5,249,200,5,5,247,200,5,5,248,200,192,0,0,0,192,0,0,0,5,5,247,221,5,5,24,202,5,5,25,202,5,5,248,221,5,5,23,202,192,0,0,0,192,0,0,0,5,5,130,203,5,5,84,223,5,5,129,203,5,5,127,203,5,5,128,203,5,5,27,205,5,5,25,205,192,0,0,0,192,0,0,0,5,5,34,225,5,5,26,205,5,5,33,225,192,0,0,0,5,5,15,205,5,5,99,227,192,0,0,0,192,0,0,0,5,5,218,206,5,5,219,206,192,0,0,0,192,0,0,0,5,5,217,206,192,0,0,0,5,5,76,212,5,5,26,235,5,5,191,213,5,5,192,213,192,0,0,0,5,5,115,237,5,5,90,216,5,5,224,243,5,5,225,243,192,0,0,0,5,5,6,219,5,5,87,249,5,5,16,220,5,5,58,199,192,0,0,0,5,5,0,187,192,0,0,0,5,5,60,220,5,5,59,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,200,5,5,122,220,5,5,123,220,5,5,121,220,192,0,0,0,5,5,124,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,221,192,0,0,0,5,5,4,221,5,5,6,221,5,5,8,221,5,5,5,221,5,5,254,200,5,5,2,221,192,0,0,0,5,5,3,221,5,5,251,200,5,5,252,200,5,5,7,221,5,5,10,221,5,5,253,200,5,5,11,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,222,192,0,0,0,5,5,2,222,5,5,251,221,5,5,27,202,5,5,5,222,5,5,3,222,5,5,250,221,5,5,9,222,5,5,12,222,5,5,7,222,5,5,254,221,5,5,29,202,5,5,6,222,5,5,30,202,5,5,255,221,5,5,4,222,5,5,249,221,5,5,253,221,5,5,11,222,5,5,31,202,192,0,0,0,5,5,32,202,192,0,0,0,5,5,252,221,5,5,10,222,5,5,26,202,5,5,28,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,223,5,5,94,223,5,5,100,223,5,5,93,223,5,5,95,223,5,5,89,223,5,5,87,223,192,0,0,0,5,5,102,223,5,5,99,223,5,5,85,223,192,0,0,0,5,5,132,203,5,5,97,223,5,5,98,223,192,0,0,0,5,5,96,223,5,5,88,223,5,5,86,223,5,5,131,203,5,5,92,223,5,5,90,223,192,0,0,0,192,0,0,0,5,5,91,223,5,5,103,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,205,192,0,0,0,5,5,31,205,192,0,0,0,5,5,35,225,5,5,28,205,5,5,37,225,192,0,0,0,5,5,33,205,5,5,38,225,192,0,0,0,192,0,0,0,5,5,36,205,192,0,0,0,5,5,34,205,5,5,39,225,5,5,104,223,5,5,41,225,192,0,0,0,5,5,30,205,192,0,0,0,5,5,29,205,192,0,0,0,5,5,36,225,5,5,40,225,5,5,35,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,206,5,5,220,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,227,5,5,105,227,5,5,107,227,5,5,222,206,5,5,110,227,192,0,0,0,5,5,226,206,5,5,112,227,192,0,0,0,5,5,228,206,192,0,0,0,5,5,224,206,5,5,232,206,192,0,0,0,5,5,229,206,5,5,103,227,5,5,223,206,192,0,0,0,5,5,102,227,5,5,100,227,5,5,114,227,5,5,104,227,192,0,0,0,5,5,225,206,5,5,113,227,5,5,230,206,5,5,109,227,5,5,108,227,5,5,231,206,5,5,106,227,5,5,227,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,227,192,0,0,0,5,5,111,227,5,5,207,229,5,5,214,229,5,5,203,229,5,5,182,208,5,5,199,229,5,5,215,229,5,5,193,229,5,5,212,229,5,5,210,229,5,5,204,229,192,0,0,0,5,5,213,229,5,5,206,229,192,0,0,0,5,5,198,229,5,5,216,229,5,5,196,229,5,5,209,229,5,5,194,229,192,0,0,0,5,5,217,229,192,0,0,0,5,5,183,208,192,0,0,0,5,5,211,229,5,5,112,232,5,5,197,229,5,5,180,208,192,0,0,0,5,5,201,229,192,0,0,0,5,5,181,208,5,5,200,229,5,5,205,229,192,0,0,0,192,0,0,0,5,5,202,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,232,5,5,111,232,192,0,0,0,5,5,113,232,192,0,0,0,5,5,118,232,5,5,117,232,5,5,131,210,192,0,0,0,5,5,195,229,5,5,115,232,192,0,0,0,192,0,0,0,5,5,132,210,192,0,0,0,5,5,110,232,5,5,114,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,235,192,0,0,0,5,5,40,235,5,5,31,235,192,0,0,0,5,5,38,235,5,5,29,235,5,5,37,235,5,5,41,235,5,5,28,235,5,5,32,235,5,5,27,235,192,0,0,0,5,5,77,212,192,0,0,0,5,5,30,235,5,5,78,212,5,5,36,235,5,5,35,235,5,5,34,235,192,0,0,0,192,0,0,0,5,5,39,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,237,5,5,121,237,5,5,194,213,5,5,122,237,192,0,0,0,5,5,117,237,192,0,0,0,5,5,116,237,5,5,126,237,192,0,0,0,5,5,124,237,5,5,193,213,5,5,127,237,5,5,118,237,5,5,123,237,5,5,125,237,5,5,120,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,239,5,5,240,239,5,5,234,239,5,5,239,239,192,0,0,0,5,5,232,239,5,5,242,239,5,5,238,239,5,5,243,239,5,5,237,239,5,5,233,239,5,5,241,239,192,0,0,0,5,5,244,239,5,5,236,239,192,0,0,0,5,5,31,242,5,5,94,216,192,0,0,0,5,5,92,216,192,0,0,0,5,5,91,216,5,5,93,216,192,0,0,0,192,0,0,0,5,5,226,243,192,0,0,0,5,5,238,244,5,5,89,245,192,0,0,0,192,0,0,0,5,5,155,246,5,5,156,246,192,0,0,0,5,5,169,218,192,0,0,0,5,5,157,247,192,0,0,0,5,5,7,219,192,0,0,0,5,5,158,247,192,0,0,0,5,5,81,248,5,5,90,219,192,0,0,0,5,5,89,219,5,5,80,248,5,5,143,219,192,0,0,0,5,5,230,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,188,5,5,58,200,5,5,125,220,5,5,12,221,5,5,142,201,5,5,233,206,192,0,0,0,192,0,0,0,5,5,0,189,5,5,168,199,5,5,167,199,5,5,166,199,192,0,0,0,192,0,0,0,5,5,255,200,192,0,0,0,192,0,0,0,5,5,37,205,192,0,0,0,5,5,120,232,5,5,0,190,5,5,0,191,5,5,0,192,5,5,59,199,192,0,0,0,192,0,0,0,5,5,133,203,192,0,0,0,5,5,105,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,208,5,5,0,193,5,5,34,220,192,0,0,0,192,0,0,0,5,5,169,199,5,5,170,199,5,5,61,220,192,0,0,0,5,5,59,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,221,192,0,0,0,5,5,2,201,192,0,0,0,5,5,14,221,192,0,0,0,192,0,0,0,5,5,38,202,192,0,0,0,192,0,0,0,5,5,14,222,5,5,36,202,5,5,35,202,5,5,13,222,5,5,33,202,5,5,15,222,5,5,34,202,5,5,37,202,192,0,0,0,5,5,134,203,192,0,0,0,5,5,136,203,5,5,109,223,5,5,106,223,5,5,107,223,5,5,108,223,5,5,110,223,5,5,135,203,192,0,0,0,192,0,0,0,5,5,43,225,5,5,42,225,192,0,0,0,5,5,39,205,192,0,0,0,5,5,38,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,206,5,5,117,227,192,0,0,0,5,5,235,206,5,5,237,206,5,5,234,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,208,5,5,116,227,192,0,0,0,5,5,187,208,5,5,219,229,192,0,0,0,5,5,188,208,5,5,218,229,5,5,185,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,232,5,5,125,232,5,5,133,210,5,5,124,232,5,5,122,232,5,5,121,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,235,5,5,83,212,5,5,81,212,192,0,0,0,5,5,82,212,5,5,42,235,5,5,43,235,192,0,0,0,5,5,79,212,5,5,131,237,5,5,129,237,192,0,0,0,5,5,196,213,5,5,130,237,5,5,197,213,5,5,195,213,5,5,80,212,192,0,0,0,192,0,0,0,5,5,247,239,5,5,245,239,5,5,246,239,5,5,128,237,5,5,33,242,5,5,95,216,5,5,32,242,5,5,227,243,5,5,228,243,5,5,248,239,5,5,90,245,192,0,0,0,5,5,0,194,5,5,171,199,5,5,61,200,5,5,126,220,5,5,60,200,192,0,0,0,5,5,39,202,5,5,134,210,192,0,0,0,5,5,60,199,5,5,172,199,5,5,137,203,5,5,189,208,192,0,0,0,5,5,62,220,192,0,0,0,5,5,63,220,192,0,0,0,5,5,127,220,192,0,0,0,192,0,0,0,5,5,4,201,5,5,18,221,5,5,16,221,5,5,5,201,5,5,15,221,5,5,17,221,5,5,19,221,192,0,0,0,5,5,3,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,202,5,5,44,202,5,5,41,202,192,0,0,0,192,0,0,0,5,5,40,202,5,5,114,223,5,5,42,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,203,192,0,0,0,5,5,113,223,5,5,115,223,5,5,112,223,5,5,116,223,5,5,139,203,5,5,42,205,5,5,44,225,192,0,0,0,5,5,46,225,5,5,40,205,5,5,47,225,5,5,41,205,5,5,45,225,192,0,0,0,5,5,111,223,5,5,118,227,5,5,121,227,5,5,122,227,5,5,119,227,5,5,241,206,5,5,240,206,5,5,238,206,5,5,239,206,5,5,120,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,206,192,0,0,0,192,0,0,0,5,5,191,208,5,5,192,208,192,0,0,0,5,5,193,208,5,5,126,232,5,5,128,232,5,5,130,232,5,5,136,210,5,5,135,210,5,5,190,208,5,5,129,232,5,5,127,232,192,0,0,0,5,5,48,235,192,0,0,0,192,0,0,0,5,5,46,235,5,5,52,235,5,5,84,212,5,5,53,235,5,5,50,235,5,5,85,212,5,5,47,235,5,5,45,235,5,5,51,235,5,5,199,213,5,5,133,237,5,5,49,235,5,5,201,213,5,5,134,237,5,5,200,213,5,5,203,213,5,5,135,237,5,5,198,213,5,5,202,213,192,0,0,0,5,5,253,239,5,5,251,239,5,5,250,239,5,5,252,239,5,5,249,239,192,0,0,0,192,0,0,0,5,5,18,218,192,0,0,0,5,5,157,246,5,5,158,246,192,0,0,0,5,5,159,247,5,5,82,248,5,5,218,219,192,0,0,0,192,0,0,0,5,5,45,202,5,5,6,201,192,0,0,0,192,0,0,0,5,5,140,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,195,5,5,61,199,192,0,0,0,5,5,173,199,5,5,128,220,192,0,0,0,5,5,7,201,5,5,20,221,192,0,0,0,5,5,117,223,5,5,141,203,192,0,0,0,5,5,86,212,5,5,0,196,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,200,192,0,0,0,192,0,0,0,5,5,137,210,5,5,0,197,5,5,62,199,5,5,63,199,192,0,0,0,5,5,175,199,5,5,174,199,192,0,0,0,5,5,129,220,5,5,63,200,192,0,0,0,5,5,21,221,192,0,0,0,5,5,8,201,192,0,0,0,192,0,0,0,5,5,17,222,5,5,18,222,5,5,19,222,192,0,0,0,5,5,46,202,5,5,47,202,5,5,16,222,5,5,48,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,203,5,5,118,223,192,0,0,0,5,5,49,225,5,5,43,205,192,0,0,0,5,5,48,225,192,0,0,0,5,5,243,206,5,5,123,227,5,5,244,206,5,5,124,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,232,192,0,0,0,192,0,0,0,5,5,55,235,5,5,54,235,192,0,0,0,5,5,87,212,192,0,0,0,5,5,204,213,5,5,136,237,5,5,61,215,5,5,254,239,5,5,96,216,192,0,0,0,5,5,91,219,5,5,232,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,222,192,0,0,0,5,5,119,223,5,5,245,206,5,5,220,229,5,5,138,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,201,192,0,0,0,5,5,9,201,5,5,143,203,192,0,0,0,5,5,50,225,192,0,0,0,5,5,247,206,5,5,11,208,5,5,248,206,5,5,246,206,5,5,195,208,192,0,0,0,5,5,56,235,5,5,88,212,5,5,205,213,192,0,0,0,5,5,17,220,5,5,130,220,192,0,0,0,5,5,23,221,5,5,11,201,5,5,22,221,5,5,12,201,192,0,0,0,192,0,0,0,5,5,52,202,5,5,23,222,5,5,22,222,5,5,51,202,5,5,49,202,5,5,50,202,5,5,21,222,192,0,0,0,192,0,0,0,5,5,145,203,5,5,120,223,5,5,148,203,5,5,144,203,5,5,150,203,5,5,146,203,5,5,147,203,5,5,149,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,205,5,5,45,205,5,5,44,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,227,5,5,249,206,5,5,252,206,5,5,250,206,192,0,0,0,5,5,125,227,5,5,255,206,192,0,0,0,5,5,251,206,5,5,127,227,5,5,254,206,5,5,253,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,229,5,5,221,229,192,0,0,0,5,5,198,208,5,5,196,208,5,5,197,208,5,5,223,229,5,5,139,210,5,5,133,232,5,5,140,210,5,5,132,232,192,0,0,0,192,0,0,0,5,5,137,237,192,0,0,0,192,0,0,0,5,5,207,213,5,5,57,235,5,5,206,213,192,0,0,0,5,5,89,212,192,0,0,0,5,5,35,242,5,5,255,239,5,5,97,216,5,5,34,242,5,5,91,245,5,5,159,246,5,5,160,246,192,0,0,0,5,5,64,199,192,0,0,0,5,5,176,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,220,192,0,0,0,192,0,0,0,5,5,14,201,5,5,16,201,192,0,0,0,5,5,133,220,5,5,26,221,5,5,25,221,5,5,24,221,192,0,0,0,5,5,132,220,5,5,131,220,5,5,65,200,5,5,15,201,5,5,13,201,5,5,64,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,202,5,5,24,222,192,0,0,0,5,5,54,202,5,5,31,221,192,0,0,0,5,5,33,221,5,5,32,221,5,5,25,222,192,0,0,0,192,0,0,0,5,5,28,221,192,0,0,0,5,5,20,201,5,5,18,201,192,0,0,0,5,5,27,221,5,5,29,221,5,5,35,221,192,0,0,0,5,5,17,201,192,0,0,0,5,5,30,221,5,5,39,221,5,5,56,202,192,0,0,0,5,5,36,221,5,5,19,201,192,0,0,0,5,5,34,221,5,5,37,221,192,0,0,0,5,5,55,202,192,0,0,0,5,5,57,202,5,5,38,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,222,5,5,32,222,5,5,30,222,5,5,44,222,5,5,39,222,5,5,155,203,5,5,58,202,5,5,40,222,5,5,43,222,5,5,151,203,5,5,42,222,5,5,59,202,5,5,64,202,5,5,62,202,5,5,33,222,192,0,0,0,5,5,28,222,5,5,35,222,5,5,69,202,5,5,46,222,5,5,152,203,5,5,36,222,192,0,0,0,5,5,153,203,5,5,65,202,5,5,38,222,192,0,0,0,5,5,135,223,5,5,154,203,5,5,27,222,5,5,66,202,5,5,156,203,5,5,67,202,5,5,63,202,5,5,68,202,5,5,37,222,5,5,26,222,5,5,41,222,5,5,60,202,192,0,0,0,192,0,0,0,5,5,29,222,5,5,34,222,5,5,31,222,5,5,61,202,192,0,0,0,5,5,121,223,192,0,0,0,5,5,122,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,223,5,5,54,225,5,5,133,223,5,5,162,203,5,5,136,223,5,5,126,223,5,5,161,203,5,5,128,223,192,0,0,0,5,5,129,223,192,0,0,0,192,0,0,0,5,5,131,223,5,5,157,203,192,0,0,0,192,0,0,0,5,5,50,205,192,0,0,0,192,0,0,0,5,5,127,223,5,5,123,223,5,5,51,205,192,0,0,0,192,0,0,0,5,5,137,223,5,5,47,205,5,5,52,225,5,5,130,223,192,0,0,0,5,5,51,225,5,5,125,223,5,5,134,223,192,0,0,0,192,0,0,0,5,5,160,203,5,5,48,205,5,5,166,203,5,5,49,205,5,5,138,223,5,5,53,225,5,5,159,203,5,5,53,205,5,5,165,203,5,5,164,203,5,5,163,203,5,5,52,205,5,5,139,223,5,5,54,205,5,5,158,203,192,0,0,0,5,5,124,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,207,5,5,57,225,5,5,59,225,192,0,0,0,5,5,61,225,5,5,55,205,5,5,61,205,5,5,130,227,5,5,65,225,5,5,56,225,5,5,4,207,5,5,128,227,192,0,0,0,5,5,60,205,5,5,58,205,5,5,67,225,192,0,0,0,5,5,129,227,192,0,0,0,5,5,58,225,192,0,0,0,5,5,59,205,5,5,62,225,5,5,62,205,5,5,64,225,192,0,0,0,192,0,0,0,5,5,57,205,5,5,63,225,5,5,66,225,5,5,60,225,192,0,0,0,5,5,56,205,5,5,5,207,192,0,0,0,5,5,55,225,5,5,3,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,227,5,5,141,227,5,5,201,208,192,0,0,0,5,5,8,207,5,5,13,207,5,5,202,208,5,5,143,227,5,5,20,207,5,5,225,229,5,5,133,227,5,5,12,207,5,5,15,207,5,5,10,207,5,5,131,227,5,5,145,227,5,5,148,227,5,5,240,229,192,0,0,0,5,5,146,227,5,5,229,229,5,5,11,207,5,5,18,207,5,5,22,207,5,5,140,227,5,5,224,229,5,5,144,227,5,5,7,207,5,5,226,229,5,5,147,227,5,5,228,229,5,5,136,227,192,0,0,0,5,5,199,208,192,0,0,0,5,5,134,227,5,5,135,227,5,5,17,207,192,0,0,0,192,0,0,0,5,5,16,207,5,5,138,227,5,5,21,207,5,5,142,227,5,5,14,207,5,5,139,227,192,0,0,0,5,5,19,207,5,5,203,208,5,5,200,208,5,5,227,229,192,0,0,0,5,5,137,227,192,0,0,0,5,5,9,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,208,5,5,212,208,5,5,231,229,5,5,145,210,5,5,210,208,5,5,235,229,5,5,214,208,5,5,134,232,5,5,237,229,5,5,147,210,5,5,206,208,5,5,209,208,5,5,238,229,192,0,0,0,5,5,239,229,5,5,245,229,5,5,216,208,5,5,148,210,192,0,0,0,5,5,241,229,5,5,246,229,5,5,234,229,5,5,158,210,192,0,0,0,5,5,149,210,5,5,215,208,5,5,232,229,5,5,247,229,192,0,0,0,5,5,157,210,5,5,213,208,5,5,142,210,5,5,244,229,192,0,0,0,5,5,217,208,5,5,236,229,5,5,230,229,5,5,207,208,5,5,233,229,192,0,0,0,5,5,242,229,192,0,0,0,5,5,141,210,5,5,146,210,5,5,204,208,5,5,243,229,192,0,0,0,5,5,144,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,210,5,5,59,235,5,5,145,232,192,0,0,0,5,5,137,232,5,5,58,235,192,0,0,0,5,5,141,232,5,5,143,232,192,0,0,0,192,0,0,0,5,5,140,232,192,0,0,0,5,5,155,210,192,0,0,0,5,5,139,232,5,5,159,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,235,192,0,0,0,192,0,0,0,5,5,154,210,5,5,91,212,5,5,146,232,5,5,60,235,192,0,0,0,192,0,0,0,5,5,152,210,5,5,138,232,5,5,142,232,5,5,90,212,5,5,143,210,5,5,135,232,5,5,136,232,5,5,92,212,5,5,151,210,5,5,153,210,5,5,150,210,5,5,144,232,192,0,0,0,192,0,0,0,5,5,64,235,5,5,65,235,5,5,70,235,5,5,212,213,5,5,77,235,192,0,0,0,5,5,98,212,192,0,0,0,5,5,97,212,5,5,72,235,192,0,0,0,5,5,211,213,5,5,61,235,5,5,96,212,192,0,0,0,5,5,76,235,5,5,94,212,5,5,95,212,192,0,0,0,5,5,73,235,5,5,154,237,5,5,209,213,5,5,211,208,192,0,0,0,5,5,75,235,5,5,216,213,5,5,67,235,192,0,0,0,5,5,210,213,192,0,0,0,5,5,215,213,5,5,62,235,5,5,66,235,5,5,63,235,5,5,69,235,5,5,99,212,5,5,208,213,5,5,93,212,192,0,0,0,5,5,140,237,5,5,71,235,192,0,0,0,5,5,214,213,192,0,0,0,5,5,217,213,192,0,0,0,5,5,68,235,192,0,0,0,5,5,213,213,5,5,139,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,237,5,5,65,215,5,5,138,237,5,5,13,240,5,5,153,237,5,5,221,213,192,0,0,0,5,5,219,213,5,5,63,215,5,5,150,237,5,5,146,237,5,5,225,213,192,0,0,0,5,5,4,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,213,5,5,145,237,192,0,0,0,5,5,2,240,192,0,0,0,5,5,149,237,192,0,0,0,5,5,152,237,5,5,143,237,192,0,0,0,5,5,224,213,192,0,0,0,192,0,0,0,5,5,218,213,5,5,3,240,5,5,64,215,5,5,151,237,5,5,220,213,5,5,222,213,5,5,148,237,5,5,226,213,5,5,147,237,5,5,142,237,5,5,141,237,5,5,62,215,5,5,155,237,5,5,6,240,5,5,37,242,5,5,67,215,192,0,0,0,5,5,12,240,192,0,0,0,5,5,10,240,192,0,0,0,5,5,38,242,192,0,0,0,5,5,68,215,5,5,11,240,192,0,0,0,5,5,8,240,5,5,99,216,5,5,36,242,192,0,0,0,5,5,5,240,5,5,7,240,5,5,100,216,5,5,70,215,5,5,98,216,5,5,69,215,5,5,102,216,5,5,9,240,5,5,66,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,243,192,0,0,0,5,5,229,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,242,5,5,230,243,5,5,40,242,192,0,0,0,192,0,0,0,5,5,99,217,5,5,42,242,5,5,41,242,5,5,101,216,5,5,39,242,5,5,43,242,5,5,238,243,5,5,234,243,5,5,236,243,192,0,0,0,5,5,231,243,5,5,232,243,192,0,0,0,5,5,235,243,5,5,233,243,5,5,19,218,192,0,0,0,192,0,0,0,5,5,22,218,5,5,21,218,5,5,20,218,5,5,170,218,5,5,161,246,5,5,171,218,5,5,92,245,5,5,8,219,5,5,160,247,5,5,9,219,5,5,92,219,5,5,144,219,5,5,233,248,192,0,0,0,5,5,234,248,5,5,235,248,192,0,0,0,192,0,0,0,5,5,8,250,5,5,65,199,5,5,65,220,5,5,177,199,192,0,0,0,5,5,67,200,5,5,68,200,5,5,66,200,192,0,0,0,5,5,69,200,5,5,22,201,5,5,21,201,192,0,0,0,5,5,47,222,5,5,71,202,5,5,70,202,192,0,0,0,192,0,0,0,5,5,68,225,5,5,23,207,5,5,24,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,208,5,5,147,232,5,5,160,210,5,5,161,210,5,5,149,232,5,5,151,232,5,5,150,232,192,0,0,0,5,5,79,235,192,0,0,0,5,5,78,235,5,5,100,212,5,5,80,235,192,0,0,0,5,5,156,237,5,5,227,213,192,0,0,0,5,5,71,215,192,0,0,0,5,5,103,216,5,5,100,217,5,5,104,216,192,0,0,0,5,5,66,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,221,192,0,0,0,192,0,0,0,5,5,48,222,5,5,73,202,5,5,72,202,5,5,74,202,5,5,167,203,5,5,140,223,5,5,141,223,192,0,0,0,192,0,0,0,5,5,69,225,5,5,63,205,5,5,25,207,5,5,219,208,5,5,248,229,5,5,67,199,192,0,0,0,5,5,0,198,5,5,68,199,192,0,0,0,5,5,66,220,5,5,181,199,5,5,180,199,5,5,178,199,5,5,179,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,200,5,5,140,220,5,5,142,220,5,5,71,200,5,5,134,220,192,0,0,0,5,5,135,220,192,0,0,0,5,5,141,220,5,5,137,220,5,5,139,220,5,5,70,200,5,5,136,220,5,5,143,220,5,5,138,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,201,5,5,38,201,5,5,36,201,5,5,50,221,5,5,47,221,5,5,55,221,5,5,34,201,5,5,56,221,192,0,0,0,5,5,27,201,5,5,53,221,192,0,0,0,5,5,33,201,5,5,49,221,5,5,48,221,5,5,31,201,5,5,54,221,5,5,32,201,5,5,75,202,5,5,26,201,5,5,51,221,192,0,0,0,5,5,41,221,5,5,23,201,192,0,0,0,5,5,42,201,5,5,46,221,5,5,52,221,5,5,28,201,5,5,30,201,192,0,0,0,5,5,42,221,192,0,0,0,5,5,43,221,5,5,44,221,192,0,0,0,5,5,41,201,5,5,35,201,5,5,40,201,5,5,45,221,5,5,39,201,5,5,25,201,5,5,24,201,5,5,37,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,202,5,5,60,222,5,5,53,222,5,5,84,202,5,5,103,202,5,5,49,222,5,5,56,222,5,5,58,222,5,5,61,222,5,5,98,202,192,0,0,0,5,5,57,222,5,5,50,222,5,5,96,202,5,5,54,222,192,0,0,0,5,5,62,222,5,5,81,202,192,0,0,0,5,5,59,222,5,5,91,202,5,5,90,202,5,5,52,222,5,5,79,202,192,0,0,0,192,0,0,0,5,5,80,202,192,0,0,0,5,5,78,202,192,0,0,0,5,5,102,202,5,5,94,202,5,5,88,202,5,5,76,202,5,5,55,222,5,5,87,202,5,5,77,202,5,5,95,202,5,5,104,202,5,5,142,223,5,5,92,202,5,5,51,222,5,5,82,202,5,5,85,202,5,5,86,202,192,0,0,0,5,5,100,202,5,5,101,202,5,5,99,202,5,5,93,202,5,5,97,202,5,5,83,202,5,5,168,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,223,5,5,180,203,5,5,172,203,5,5,174,203,5,5,179,203,5,5,160,223,5,5,177,203,5,5,70,225,5,5,64,205,5,5,182,203,5,5,145,223,5,5,153,223,5,5,178,203,5,5,152,223,5,5,149,223,5,5,157,223,5,5,159,223,5,5,171,203,5,5,175,203,5,5,181,203,5,5,66,205,5,5,154,223,5,5,173,203,5,5,184,203,5,5,147,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,203,5,5,65,205,5,5,170,203,192,0,0,0,5,5,144,223,5,5,151,223,5,5,143,223,5,5,146,223,5,5,150,223,5,5,71,225,5,5,183,203,192,0,0,0,5,5,155,223,5,5,156,223,5,5,158,223,5,5,169,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,205,5,5,83,225,5,5,78,205,5,5,79,205,5,5,73,225,5,5,89,225,192,0,0,0,5,5,69,205,192,0,0,0,192,0,0,0,5,5,149,227,5,5,91,225,5,5,85,225,192,0,0,0,5,5,76,225,192,0,0,0,5,5,94,225,5,5,79,225,5,5,75,205,5,5,172,227,5,5,82,225,5,5,77,205,5,5,68,205,192,0,0,0,5,5,96,225,5,5,84,225,5,5,71,205,5,5,77,225,5,5,74,225,5,5,75,225,5,5,72,205,5,5,90,225,5,5,97,225,5,5,74,205,5,5,81,225,5,5,80,225,5,5,82,205,5,5,81,205,5,5,67,205,5,5,73,205,5,5,76,205,5,5,93,225,192,0,0,0,192,0,0,0,5,5,87,225,5,5,70,205,5,5,72,225,5,5,95,225,5,5,86,225,5,5,88,225,5,5,92,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,227,192,0,0,0,5,5,33,207,5,5,53,207,5,5,52,207,192,0,0,0,5,5,41,207,192,0,0,0,5,5,168,227,5,5,164,227,5,5,161,227,5,5,179,227,5,5,36,207,5,5,28,207,192,0,0,0,192,0,0,0,5,5,166,227,5,5,235,208,5,5,32,207,5,5,174,227,192,0,0,0,5,5,54,207,5,5,51,207,5,5,170,227,5,5,153,227,192,0,0,0,192,0,0,0,5,5,50,207,5,5,176,227,5,5,152,227,5,5,39,207,5,5,43,207,5,5,175,227,192,0,0,0,5,5,162,227,5,5,44,207,5,5,38,207,5,5,151,227,192,0,0,0,5,5,221,208,5,5,178,227,5,5,160,227,5,5,49,207,5,5,163,227,5,5,177,227,5,5,48,207,192,0,0,0,5,5,249,229,192,0,0,0,5,5,29,207,5,5,158,227,5,5,34,207,5,5,45,207,192,0,0,0,5,5,40,207,5,5,167,227,5,5,157,227,5,5,155,227,5,5,173,227,5,5,26,207,5,5,46,207,5,5,30,207,5,5,220,208,5,5,171,227,5,5,31,207,192,0,0,0,5,5,27,207,5,5,42,207,5,5,37,207,5,5,35,207,5,5,159,227,5,5,47,207,5,5,156,227,5,5,169,227,5,5,165,227,5,5,251,229,5,5,250,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,227,5,5,13,230,192,0,0,0,5,5,223,208,192,0,0,0,5,5,19,230,5,5,2,230,5,5,16,230,5,5,152,232,5,5,226,208,5,5,20,230,5,5,23,230,5,5,225,208,5,5,5,230,5,5,22,230,5,5,21,230,5,5,227,208,5,5,252,229,5,5,222,208,5,5,230,208,192,0,0,0,5,5,228,208,5,5,18,230,192,0,0,0,5,5,8,230,5,5,232,208,5,5,25,230,5,5,17,230,5,5,26,230,5,5,240,208,5,5,238,208,5,5,15,230,5,5,14,230,192,0,0,0,5,5,12,230,5,5,6,230,5,5,231,208,192,0,0,0,5,5,229,208,5,5,78,225,5,5,253,229,192,0,0,0,5,5,182,232,5,5,254,229,5,5,224,208,5,5,237,208,5,5,154,232,192,0,0,0,5,5,233,208,5,5,234,208,5,5,255,229,5,5,24,230,5,5,153,232,5,5,9,230,5,5,4,230,5,5,236,208,5,5,10,230,5,5,7,230,192,0,0,0,192,0,0,0,5,5,241,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,210,192,0,0,0,192,0,0,0,5,5,157,232,5,5,176,232,5,5,181,232,5,5,169,232,5,5,172,210,5,5,186,232,5,5,169,210,5,5,155,232,192,0,0,0,5,5,156,232,5,5,162,210,5,5,171,210,5,5,163,232,5,5,174,210,5,5,175,210,5,5,164,232,192,0,0,0,5,5,177,232,5,5,183,232,5,5,170,210,192,0,0,0,5,5,164,210,5,5,162,232,5,5,158,232,5,5,185,232,5,5,167,232,5,5,168,232,5,5,159,232,5,5,179,232,5,5,170,232,5,5,180,232,5,5,172,232,192,0,0,0,5,5,165,210,5,5,81,235,5,5,168,210,5,5,166,210,5,5,184,232,5,5,175,232,5,5,171,232,192,0,0,0,192,0,0,0,5,5,160,232,5,5,110,212,5,5,174,232,5,5,173,210,5,5,166,232,192,0,0,0,5,5,165,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,210,5,5,163,210,5,5,102,235,5,5,178,232,5,5,173,232,192,0,0,0,5,5,161,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,235,192,0,0,0,5,5,82,235,5,5,93,235,192,0,0,0,5,5,100,235,5,5,108,212,5,5,239,208,5,5,98,235,5,5,103,212,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,212,5,5,105,235,192,0,0,0,5,5,83,235,5,5,96,235,5,5,84,235,5,5,95,235,5,5,106,212,5,5,99,235,5,5,11,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,235,5,5,91,235,5,5,109,212,5,5,170,237,5,5,228,213,192,0,0,0,5,5,104,235,5,5,103,235,5,5,111,212,5,5,157,237,5,5,229,213,5,5,158,237,192,0,0,0,5,5,87,235,5,5,88,235,5,5,85,235,5,5,90,235,5,5,86,235,5,5,107,235,5,5,105,212,5,5,230,213,5,5,107,212,5,5,112,212,192,0,0,0,5,5,89,235,192,0,0,0,5,5,101,235,192,0,0,0,192,0,0,0,5,5,94,235,192,0,0,0,192,0,0,0,5,5,161,237,192,0,0,0,5,5,101,212,5,5,233,213,5,5,20,240,5,5,166,237,5,5,165,237,5,5,167,237,192,0,0,0,192,0,0,0,5,5,164,237,5,5,234,213,192,0,0,0,5,5,240,213,5,5,237,213,192,0,0,0,5,5,238,213,5,5,159,237,5,5,162,237,5,5,172,237,5,5,246,213,5,5,244,213,192,0,0,0,5,5,163,237,5,5,3,230,5,5,231,213,5,5,169,237,5,5,160,237,192,0,0,0,5,5,247,213,5,5,168,237,5,5,104,212,5,5,236,213,5,5,92,235,192,0,0,0,192,0,0,0,5,5,239,213,192,0,0,0,5,5,243,213,5,5,245,213,5,5,242,213,5,5,241,213,192,0,0,0,5,5,235,213,5,5,171,237,5,5,232,213,5,5,248,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,215,5,5,76,215,5,5,19,240,5,5,85,215,5,5,82,215,192,0,0,0,5,5,73,215,5,5,80,215,5,5,21,240,5,5,78,215,5,5,72,215,192,0,0,0,5,5,79,215,192,0,0,0,5,5,18,240,5,5,106,216,5,5,74,215,192,0,0,0,5,5,81,215,5,5,105,216,5,5,17,240,5,5,16,240,192,0,0,0,5,5,83,215,192,0,0,0,5,5,84,215,192,0,0,0,5,5,15,240,5,5,14,240,5,5,107,216,5,5,24,240,5,5,77,215,5,5,22,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,216,192,0,0,0,5,5,113,216,5,5,47,242,5,5,49,242,192,0,0,0,5,5,110,216,192,0,0,0,5,5,50,242,5,5,46,242,192,0,0,0,5,5,48,242,5,5,111,216,5,5,114,216,192,0,0,0,5,5,45,242,5,5,109,216,5,5,112,216,5,5,102,217,5,5,23,240,5,5,101,217,192,0,0,0,192,0,0,0,5,5,107,217,5,5,242,243,192,0,0,0,5,5,105,217,5,5,106,217,5,5,245,243,5,5,241,243,5,5,103,217,5,5,239,243,5,5,23,218,5,5,243,243,192,0,0,0,5,5,244,243,5,5,240,243,192,0,0,0,5,5,104,217,5,5,93,245,192,0,0,0,5,5,96,245,192,0,0,0,192,0,0,0,5,5,97,245,5,5,95,245,5,5,98,245,5,5,24,218,5,5,94,245,192,0,0,0,192,0,0,0,5,5,165,246,5,5,173,218,5,5,164,246,5,5,163,246,5,5,162,246,5,5,172,218,5,5,174,218,192,0,0,0,5,5,161,247,5,5,11,219,5,5,10,219,192,0,0,0,192,0,0,0,5,5,84,248,5,5,83,248,5,5,86,248,5,5,145,219,5,5,93,219,5,5,237,248,5,5,85,248,192,0,0,0,192,0,0,0,5,5,236,248,5,5,147,219,5,5,146,219,5,5,185,219,5,5,88,249,5,5,158,249,5,5,69,199,192,0,0,0,192,0,0,0,5,5,27,230,5,5,25,240,192,0,0,0,192,0,0,0,5,5,73,200,5,5,57,221,5,5,45,201,5,5,43,201,192,0,0,0,5,5,44,201,192,0,0,0,5,5,63,222,5,5,105,202,5,5,185,203,192,0,0,0,5,5,161,223,192,0,0,0,5,5,162,223,192,0,0,0,5,5,186,203,5,5,99,225,192,0,0,0,5,5,83,205,5,5,84,205,5,5,98,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,207,192,0,0,0,5,5,57,207,192,0,0,0,5,5,180,227,5,5,64,207,5,5,63,207,5,5,56,207,5,5,59,207,5,5,62,207,5,5,58,207,192,0,0,0,192,0,0,0,5,5,31,230,5,5,55,207,5,5,242,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,208,5,5,245,208,5,5,30,230,5,5,33,230,5,5,243,208,5,5,28,230,5,5,32,230,192,0,0,0,5,5,29,230,192,0,0,0,5,5,177,210,192,0,0,0,192,0,0,0,5,5,187,232,192,0,0,0,192,0,0,0,5,5,113,212,5,5,108,235,5,5,86,215,5,5,249,213,5,5,173,237,5,5,250,213,5,5,251,213,5,5,175,237,5,5,174,237,5,5,176,237,5,5,27,240,192,0,0,0,192,0,0,0,5,5,26,240,5,5,52,242,5,5,51,242,5,5,115,216,5,5,116,216,5,5,99,245,192,0,0,0,192,0,0,0,5,5,70,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,208,5,5,246,208,5,5,188,232,192,0,0,0,5,5,246,243,5,5,12,219,5,5,238,248,5,5,71,199,192,0,0,0,5,5,85,205,192,0,0,0,5,5,66,207,5,5,65,207,5,5,35,230,5,5,36,230,5,5,178,210,5,5,109,235,5,5,114,212,5,5,28,240,192,0,0,0,5,5,72,199,5,5,182,199,192,0,0,0,5,5,106,202,5,5,64,222,192,0,0,0,5,5,163,223,5,5,187,203,5,5,67,207,192,0,0,0,5,5,37,230,5,5,248,208,5,5,179,210,192,0,0,0,5,5,177,237,5,5,178,237,192,0,0,0,192,0,0,0,5,5,53,242,5,5,108,217,5,5,159,249,5,5,73,199,192,0,0,0,5,5,65,222,5,5,107,202,5,5,188,203,192,0,0,0,5,5,164,223,192,0,0,0,5,5,86,205,5,5,103,225,5,5,101,225,5,5,102,225,5,5,87,205,5,5,100,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,207,5,5,70,207,5,5,181,227,5,5,71,207,5,5,68,207,5,5,38,230,192,0,0,0,5,5,39,230,5,5,189,232,192,0,0,0,192,0,0,0,5,5,116,212,5,5,115,212,192,0,0,0,192,0,0,0,5,5,54,242,5,5,247,243,192,0,0,0,5,5,101,245,5,5,100,245,5,5,166,246,192,0,0,0,5,5,35,220,5,5,189,203,192,0,0,0,192,0,0,0,5,5,74,199,5,5,183,199,192,0,0,0,5,5,75,200,5,5,74,200,192,0,0,0,192,0,0,0,5,5,76,200,5,5,77,200,5,5,145,220,5,5,144,220,5,5,58,221,5,5,46,201,5,5,61,221,5,5,60,221,5,5,59,221,5,5,62,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,202,5,5,71,222,5,5,67,222,5,5,76,222,192,0,0,0,192,0,0,0,5,5,115,202,192,0,0,0,5,5,113,202,5,5,72,222,5,5,68,222,5,5,75,222,5,5,112,202,5,5,119,202,5,5,70,222,5,5,66,222,5,5,118,202,5,5,73,222,5,5,111,202,5,5,74,222,5,5,114,202,5,5,116,202,5,5,78,222,5,5,77,222,5,5,69,222,5,5,110,202,5,5,109,202,5,5,117,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,223,5,5,175,223,192,0,0,0,5,5,195,203,5,5,192,203,5,5,166,223,5,5,171,223,192,0,0,0,5,5,198,203,5,5,190,203,5,5,170,223,5,5,193,203,5,5,196,203,192,0,0,0,192,0,0,0,5,5,173,223,192,0,0,0,5,5,191,203,5,5,178,223,5,5,194,203,192,0,0,0,5,5,197,203,5,5,167,223,5,5,172,223,5,5,176,223,5,5,168,223,5,5,165,223,192,0,0,0,192,0,0,0,5,5,177,223,5,5,174,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,205,5,5,88,205,5,5,91,205,192,0,0,0,5,5,94,205,192,0,0,0,5,5,106,225,192,0,0,0,5,5,89,205,5,5,104,225,192,0,0,0,5,5,93,205,192,0,0,0,192,0,0,0,5,5,90,205,192,0,0,0,5,5,107,225,5,5,92,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,227,5,5,73,207,5,5,184,227,5,5,186,227,5,5,72,207,5,5,77,207,5,5,105,225,192,0,0,0,5,5,183,227,5,5,187,227,192,0,0,0,5,5,74,207,5,5,182,227,5,5,76,207,192,0,0,0,5,5,75,207,192,0,0,0,5,5,46,230,192,0,0,0,5,5,41,230,192,0,0,0,5,5,249,208,5,5,253,208,5,5,250,208,5,5,44,230,5,5,47,230,192,0,0,0,5,5,251,208,192,0,0,0,5,5,252,208,5,5,3,209,5,5,198,232,5,5,45,230,5,5,255,208,5,5,42,230,5,5,40,230,192,0,0,0,5,5,2,209,192,0,0,0,5,5,43,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,210,192,0,0,0,5,5,190,232,5,5,182,210,5,5,183,210,5,5,181,210,5,5,195,232,5,5,194,232,5,5,191,232,5,5,187,210,192,0,0,0,192,0,0,0,5,5,193,232,5,5,254,208,192,0,0,0,192,0,0,0,5,5,197,232,5,5,192,232,5,5,184,210,5,5,180,210,5,5,186,210,5,5,196,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,212,192,0,0,0,5,5,112,235,5,5,111,235,5,5,110,235,5,5,117,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,212,5,5,181,237,5,5,184,237,5,5,253,213,192,0,0,0,192,0,0,0,5,5,252,213,5,5,185,237,5,5,180,237,5,5,255,213,5,5,182,237,192,0,0,0,5,5,254,213,5,5,179,237,192,0,0,0,5,5,183,237,5,5,92,215,5,5,89,215,5,5,37,240,5,5,36,240,192,0,0,0,5,5,35,240,5,5,30,240,192,0,0,0,5,5,31,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,215,192,0,0,0,5,5,87,215,5,5,91,215,5,5,29,240,5,5,88,215,5,5,32,240,5,5,33,240,5,5,38,240,192,0,0,0,192,0,0,0,5,5,34,240,192,0,0,0,192,0,0,0,5,5,55,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,216,192,0,0,0,5,5,250,243,5,5,117,216,5,5,248,243,5,5,249,243,5,5,109,217,5,5,26,218,5,5,102,245,192,0,0,0,5,5,25,218,192,0,0,0,192,0,0,0,5,5,168,246,5,5,169,246,192,0,0,0,5,5,175,218,192,0,0,0,5,5,167,246,5,5,13,219,192,0,0,0,5,5,239,248,5,5,148,219,5,5,89,249,5,5,90,249,192,0,0,0,5,5,75,199,192,0,0,0,5,5,78,200,5,5,79,200,5,5,47,201,192,0,0,0,5,5,79,222,5,5,199,203,5,5,96,205,5,5,78,207,192,0,0,0,192,0,0,0,5,5,157,206,192,0,0,0,5,5,4,209,5,5,5,209,5,5,114,208,5,5,48,230,192,0,0,0,5,5,188,210,5,5,114,235,5,5,113,235,192,0,0,0,192,0,0,0,5,5,76,199,5,5,80,200,5,5,80,222,5,5,121,202,192,0,0,0,5,5,120,202,192,0,0,0,5,5,179,223,5,5,180,223,192,0,0,0,5,5,108,225,5,5,109,225,5,5,97,205,5,5,98,205,192,0,0,0,5,5,99,205,5,5,188,227,192,0,0,0,192,0,0,0,5,5,80,207,192,0,0,0,5,5,7,209,192,0,0,0,5,5,6,209,5,5,199,232,5,5,214,233,5,5,115,235,5,5,39,240,192,0,0,0,192,0,0,0,5,5,110,217,5,5,176,218,5,5,77,199,192,0,0,0,5,5,186,199,5,5,187,199,5,5,185,199,5,5,188,199,5,5,184,199,192,0,0,0,192,0,0,0,5,5,83,200,192,0,0,0,5,5,153,220,5,5,82,200,5,5,84,200,192,0,0,0,192,0,0,0,5,5,148,220,5,5,147,220,5,5,150,220,5,5,149,220,5,5,152,220,5,5,81,200,5,5,146,220,5,5,151,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,221,5,5,57,201,5,5,64,221,5,5,68,221,5,5,56,201,192,0,0,0,5,5,72,221,5,5,67,221,5,5,70,221,5,5,49,201,5,5,50,201,5,5,51,201,5,5,52,201,192,0,0,0,5,5,59,201,192,0,0,0,5,5,66,221,5,5,54,201,5,5,60,201,192,0,0,0,5,5,65,221,5,5,71,221,192,0,0,0,5,5,53,201,5,5,69,221,5,5,55,201,5,5,48,201,5,5,58,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,202,192,0,0,0,5,5,82,222,5,5,122,202,192,0,0,0,5,5,132,202,5,5,133,202,5,5,125,202,5,5,143,202,5,5,127,202,5,5,90,222,5,5,138,202,5,5,85,222,5,5,128,202,5,5,100,222,5,5,101,222,5,5,93,222,5,5,86,222,5,5,141,202,5,5,98,222,5,5,136,202,5,5,134,202,192,0,0,0,5,5,99,222,192,0,0,0,5,5,97,222,5,5,89,222,5,5,81,222,5,5,88,222,5,5,129,202,192,0,0,0,5,5,135,202,192,0,0,0,5,5,123,202,5,5,92,222,5,5,91,222,5,5,83,222,192,0,0,0,5,5,137,202,5,5,95,222,5,5,84,222,5,5,140,202,5,5,102,222,5,5,124,202,192,0,0,0,5,5,131,202,5,5,87,222,5,5,96,222,5,5,139,202,192,0,0,0,5,5,126,202,5,5,130,202,192,0,0,0,5,5,94,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,223,5,5,207,203,5,5,220,203,192,0,0,0,5,5,207,223,5,5,197,223,5,5,213,203,5,5,195,223,5,5,206,203,5,5,190,223,5,5,216,203,5,5,203,223,5,5,184,223,5,5,186,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,223,5,5,181,223,5,5,202,223,5,5,218,223,5,5,211,203,5,5,191,223,5,5,209,223,192,0,0,0,5,5,183,223,5,5,216,223,5,5,217,223,5,5,220,223,5,5,211,223,5,5,196,223,5,5,204,223,5,5,217,203,5,5,204,203,5,5,212,203,5,5,224,203,5,5,201,203,5,5,203,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,223,5,5,221,203,5,5,214,203,5,5,214,223,5,5,185,223,5,5,223,203,5,5,218,203,5,5,194,223,192,0,0,0,192,0,0,0,5,5,222,203,5,5,201,223,5,5,193,223,5,5,215,203,5,5,213,223,5,5,205,223,192,0,0,0,5,5,209,203,5,5,219,223,5,5,192,223,5,5,205,203,5,5,210,223,5,5,200,223,5,5,210,203,5,5,206,223,5,5,202,203,5,5,182,223,5,5,219,203,5,5,114,205,5,5,208,203,5,5,199,223,5,5,198,223,5,5,187,223,192,0,0,0,5,5,215,223,192,0,0,0,5,5,208,223,192,0,0,0,192,0,0,0,5,5,200,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,225,5,5,121,205,5,5,130,225,192,0,0,0,5,5,118,225,5,5,110,205,5,5,122,205,192,0,0,0,5,5,111,225,192,0,0,0,5,5,120,225,5,5,128,225,192,0,0,0,5,5,110,225,5,5,137,225,5,5,100,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,225,5,5,131,225,192,0,0,0,5,5,132,225,5,5,108,205,5,5,119,205,5,5,122,225,192,0,0,0,5,5,123,225,5,5,133,225,5,5,124,225,192,0,0,0,5,5,119,225,5,5,113,225,5,5,114,225,5,5,127,225,5,5,121,225,192,0,0,0,192,0,0,0,5,5,101,205,5,5,105,205,5,5,135,225,5,5,115,225,5,5,117,205,5,5,113,205,192,0,0,0,192,0,0,0,5,5,116,205,5,5,123,205,5,5,106,205,5,5,118,205,5,5,126,225,5,5,120,205,5,5,103,205,192,0,0,0,5,5,102,205,5,5,112,225,192,0,0,0,5,5,116,225,5,5,111,205,5,5,134,225,5,5,125,225,5,5,117,225,5,5,115,205,5,5,112,205,192,0,0,0,5,5,104,205,5,5,107,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,227,192,0,0,0,5,5,193,227,5,5,194,227,5,5,198,227,192,0,0,0,5,5,213,227,5,5,210,227,192,0,0,0,5,5,203,227,5,5,202,227,5,5,87,207,5,5,206,227,5,5,221,227,5,5,189,227,192,0,0,0,5,5,222,227,5,5,208,227,5,5,226,227,5,5,214,227,5,5,86,207,5,5,212,227,5,5,81,207,5,5,102,207,5,5,92,207,192,0,0,0,5,5,96,207,5,5,95,207,5,5,190,227,192,0,0,0,5,5,219,227,5,5,225,227,5,5,217,227,5,5,224,227,192,0,0,0,192,0,0,0,5,5,205,227,5,5,191,227,5,5,223,227,5,5,207,227,5,5,84,207,5,5,97,207,192,0,0,0,5,5,216,227,5,5,90,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,227,5,5,192,227,5,5,98,207,192,0,0,0,5,5,100,207,5,5,218,227,5,5,101,207,5,5,83,207,5,5,199,227,5,5,220,227,192,0,0,0,192,0,0,0,5,5,89,207,5,5,99,207,5,5,201,227,5,5,211,227,5,5,196,227,5,5,200,227,5,5,94,207,5,5,195,227,5,5,82,207,5,5,91,207,5,5,88,207,5,5,204,227,5,5,109,205,5,5,71,230,5,5,85,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,207,192,0,0,0,5,5,74,230,5,5,96,230,5,5,85,230,5,5,27,209,192,0,0,0,5,5,22,209,5,5,68,230,5,5,23,209,5,5,84,230,192,0,0,0,5,5,77,230,5,5,90,230,5,5,19,209,5,5,50,230,5,5,92,230,5,5,9,209,5,5,58,230,5,5,12,209,5,5,11,209,192,0,0,0,5,5,28,209,192,0,0,0,5,5,52,230,5,5,86,230,5,5,87,230,5,5,14,209,5,5,10,209,5,5,66,230,192,0,0,0,5,5,21,209,5,5,61,230,192,0,0,0,5,5,88,230,5,5,17,209,5,5,80,230,5,5,93,230,5,5,55,230,5,5,60,230,5,5,54,230,192,0,0,0,5,5,16,209,5,5,73,230,5,5,221,232,5,5,56,230,5,5,20,209,5,5,65,230,5,5,89,230,5,5,15,209,5,5,62,230,5,5,59,230,5,5,76,230,5,5,18,209,5,5,8,209,5,5,30,209,5,5,79,230,5,5,78,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,230,5,5,13,209,5,5,91,230,5,5,67,230,5,5,69,230,192,0,0,0,5,5,82,230,5,5,81,230,5,5,49,230,5,5,24,209,5,5,26,209,5,5,57,230,5,5,64,230,5,5,72,230,5,5,25,209,5,5,63,230,5,5,75,230,5,5,94,230,192,0,0,0,5,5,83,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,232,5,5,196,210,192,0,0,0,5,5,239,232,5,5,218,232,5,5,223,232,5,5,216,232,192,0,0,0,5,5,235,232,5,5,202,232,5,5,209,232,192,0,0,0,5,5,233,232,5,5,243,232,5,5,219,232,192,0,0,0,5,5,206,232,5,5,225,232,5,5,230,232,5,5,210,232,192,0,0,0,5,5,227,232,5,5,207,232,192,0,0,0,192,0,0,0,5,5,214,232,5,5,215,232,5,5,198,210,5,5,234,232,5,5,232,232,192,0,0,0,5,5,203,232,5,5,237,232,192,0,0,0,5,5,238,232,5,5,240,232,5,5,202,210,5,5,194,210,192,0,0,0,5,5,197,227,5,5,211,232,5,5,229,232,5,5,212,232,5,5,191,210,5,5,207,210,5,5,236,232,5,5,205,210,5,5,201,210,5,5,201,232,5,5,193,210,192,0,0,0,5,5,204,232,5,5,206,210,192,0,0,0,5,5,220,232,5,5,200,232,192,0,0,0,5,5,199,210,5,5,224,232,5,5,208,232,5,5,200,210,5,5,217,232,5,5,190,210,5,5,29,209,5,5,226,232,5,5,70,230,5,5,205,232,192,0,0,0,192,0,0,0,5,5,231,232,5,5,195,210,5,5,228,232,5,5,192,210,5,5,222,232,5,5,203,210,5,5,213,232,5,5,242,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,210,5,5,99,233,192,0,0,0,192,0,0,0,5,5,204,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,235,5,5,127,235,192,0,0,0,5,5,149,235,5,5,125,235,192,0,0,0,5,5,143,235,5,5,189,210,5,5,122,212,5,5,121,235,5,5,148,235,192,0,0,0,5,5,126,235,5,5,140,235,5,5,127,212,5,5,120,212,192,0,0,0,5,5,146,235,192,0,0,0,5,5,119,235,5,5,145,235,192,0,0,0,5,5,138,212,5,5,136,235,5,5,152,235,5,5,136,212,5,5,128,235,5,5,121,212,5,5,130,235,5,5,144,235,5,5,130,212,5,5,123,235,5,5,134,212,5,5,124,212,5,5,132,235,5,5,122,235,5,5,116,235,192,0,0,0,5,5,142,235,5,5,131,212,5,5,151,235,5,5,117,235,5,5,128,212,192,0,0,0,5,5,138,235,192,0,0,0,5,5,129,212,5,5,124,235,5,5,135,235,5,5,131,235,5,5,133,235,192,0,0,0,5,5,123,212,5,5,150,235,5,5,137,212,5,5,134,235,192,0,0,0,5,5,153,235,192,0,0,0,192,0,0,0,5,5,118,235,5,5,139,235,5,5,126,212,5,5,135,212,5,5,133,212,5,5,120,235,5,5,141,235,5,5,132,212,192,0,0,0,192,0,0,0,5,5,125,212,5,5,137,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,237,192,0,0,0,5,5,193,237,5,5,189,237,5,5,209,237,5,5,206,237,5,5,4,214,192,0,0,0,192,0,0,0,5,5,213,237,5,5,196,237,5,5,15,214,5,5,203,237,192,0,0,0,192,0,0,0,5,5,192,237,5,5,202,237,5,5,12,214,5,5,222,237,192,0,0,0,5,5,219,237,5,5,205,237,5,5,190,237,192,0,0,0,192,0,0,0,5,5,210,237,5,5,212,237,5,5,8,214,5,5,200,237,5,5,195,237,5,5,186,237,5,5,5,214,5,5,13,214,192,0,0,0,5,5,215,237,5,5,14,214,5,5,187,237,5,5,221,237,5,5,208,237,5,5,214,237,5,5,11,214,192,0,0,0,192,0,0,0,5,5,211,237,192,0,0,0,5,5,218,237,192,0,0,0,5,5,16,214,192,0,0,0,5,5,10,214,5,5,204,237,5,5,191,237,5,5,223,237,5,5,188,237,5,5,216,237,5,5,7,214,192,0,0,0,5,5,198,237,192,0,0,0,5,5,199,237,5,5,6,214,5,5,3,214,5,5,194,237,5,5,9,214,192,0,0,0,5,5,2,214,192,0,0,0,5,5,217,237,5,5,220,237,5,5,201,237,5,5,52,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,240,192,0,0,0,5,5,40,240,5,5,105,215,192,0,0,0,192,0,0,0,5,5,94,215,5,5,99,215,5,5,95,215,5,5,54,240,5,5,65,240,5,5,93,215,5,5,46,240,5,5,55,240,5,5,207,237,5,5,56,240,192,0,0,0,192,0,0,0,5,5,100,215,192,0,0,0,5,5,71,240,5,5,104,215,5,5,107,215,5,5,42,240,192,0,0,0,5,5,103,215,192,0,0,0,5,5,69,240,5,5,70,240,5,5,60,240,5,5,59,240,5,5,51,240,192,0,0,0,192,0,0,0,5,5,61,240,5,5,68,240,5,5,67,240,192,0,0,0,5,5,98,215,5,5,96,215,5,5,53,240,5,5,50,240,192,0,0,0,5,5,47,240,5,5,66,240,5,5,106,215,5,5,64,240,5,5,102,215,5,5,101,215,192,0,0,0,5,5,58,240,192,0,0,0,5,5,41,240,5,5,43,240,5,5,45,240,5,5,63,240,5,5,57,240,5,5,97,215,192,0,0,0,5,5,48,240,192,0,0,0,5,5,62,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,216,5,5,73,242,5,5,119,216,5,5,58,242,192,0,0,0,5,5,69,242,5,5,121,216,5,5,76,242,192,0,0,0,5,5,65,242,192,0,0,0,5,5,60,242,192,0,0,0,192,0,0,0,5,5,77,242,5,5,56,242,5,5,67,242,192,0,0,0,5,5,128,216,5,5,72,242,5,5,78,242,5,5,66,242,5,5,120,216,5,5,68,242,5,5,57,242,5,5,127,216,192,0,0,0,192,0,0,0,5,5,75,242,5,5,62,242,5,5,123,216,192,0,0,0,5,5,64,242,5,5,61,242,5,5,129,216,5,5,63,242,5,5,122,216,5,5,125,216,5,5,71,242,5,5,59,242,5,5,74,242,192,0,0,0,5,5,70,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,217,5,5,7,244,5,5,117,217,5,5,118,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,217,5,5,6,244,192,0,0,0,5,5,3,244,5,5,4,244,5,5,115,217,5,5,252,243,5,5,2,244,5,5,114,217,192,0,0,0,5,5,253,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,217,5,5,113,217,192,0,0,0,5,5,251,243,5,5,255,243,5,5,5,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,245,5,5,105,245,5,5,114,245,192,0,0,0,5,5,113,245,5,5,111,245,5,5,106,245,192,0,0,0,5,5,30,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,245,5,5,29,218,5,5,124,216,5,5,110,245,5,5,28,218,5,5,115,245,5,5,109,245,5,5,104,245,5,5,254,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,218,192,0,0,0,5,5,103,245,5,5,173,246,192,0,0,0,5,5,172,246,5,5,112,245,5,5,177,218,192,0,0,0,5,5,176,246,5,5,177,246,5,5,171,246,5,5,175,246,192,0,0,0,5,5,170,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,247,5,5,174,246,5,5,16,219,5,5,14,219,5,5,163,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,247,192,0,0,0,5,5,162,247,5,5,164,247,5,5,15,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,248,5,5,89,248,5,5,94,219,5,5,87,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,248,5,5,149,219,5,5,240,248,5,5,241,248,5,5,91,249,192,0,0,0,192,0,0,0,5,5,219,219,5,5,162,249,5,5,160,249,5,5,161,249,5,5,163,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,250,192,0,0,0,5,5,78,199,5,5,85,200,192,0,0,0,5,5,144,202,192,0,0,0,5,5,103,222,192,0,0,0,192,0,0,0,5,5,221,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,225,5,5,140,225,192,0,0,0,5,5,139,225,192,0,0,0,5,5,141,225,5,5,103,207,5,5,228,227,5,5,142,225,192,0,0,0,5,5,227,227,5,5,229,227,5,5,230,227,5,5,97,230,5,5,32,209,5,5,98,230,5,5,100,230,5,5,33,209,5,5,31,209,5,5,99,230,192,0,0,0,5,5,249,232,5,5,247,232,5,5,246,232,192,0,0,0,5,5,245,232,5,5,244,232,5,5,208,210,5,5,248,232,5,5,139,212,5,5,154,235,5,5,156,235,5,5,140,212,5,5,155,235,5,5,18,214,192,0,0,0,5,5,17,214,5,5,224,237,192,0,0,0,192,0,0,0,5,5,73,240,5,5,72,240,5,5,74,240,192,0,0,0,192,0,0,0,5,5,108,215,192,0,0,0,5,5,79,242,5,5,130,216,192,0,0,0,5,5,8,244,5,5,119,217,5,5,116,245,5,5,95,219,5,5,79,199,5,5,189,199,5,5,86,200,5,5,61,201,5,5,145,202,5,5,146,202,192,0,0,0,192,0,0,0,5,5,225,203,192,0,0,0,192,0,0,0,5,5,143,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,238,5,5,109,215,5,5,120,217,5,5,80,199,192,0,0,0,5,5,87,200,192,0,0,0,192,0,0,0,5,5,105,222,5,5,147,202,5,5,104,222,192,0,0,0,5,5,222,223,5,5,226,203,5,5,223,223,192,0,0,0,5,5,227,203,192,0,0,0,5,5,145,225,5,5,125,205,5,5,124,205,192,0,0,0,5,5,235,227,5,5,233,227,5,5,234,227,5,5,232,227,192,0,0,0,5,5,231,227,192,0,0,0,192,0,0,0,5,5,101,230,5,5,104,230,5,5,35,209,5,5,102,230,5,5,34,209,5,5,103,230,192,0,0,0,5,5,250,232,192,0,0,0,192,0,0,0,5,5,157,235,5,5,158,235,5,5,159,235,192,0,0,0,5,5,227,237,5,5,226,237,5,5,19,214,5,5,225,237,5,5,228,237,5,5,75,240,192,0,0,0,192,0,0,0,5,5,76,240,5,5,77,240,192,0,0,0,5,5,80,242,5,5,131,216,5,5,121,217,5,5,117,245,192,0,0,0,5,5,17,219,5,5,36,220,192,0,0,0,5,5,228,203,5,5,224,223,5,5,126,205,192,0,0,0,192,0,0,0,5,5,104,207,192,0,0,0,5,5,36,209,5,5,105,230,192,0,0,0,5,5,211,210,5,5,210,210,192,0,0,0,192,0,0,0,5,5,160,235,5,5,161,235,5,5,20,214,5,5,21,214,5,5,79,240,5,5,78,240,5,5,9,244,5,5,243,248,5,5,81,199,5,5,37,220,5,5,190,199,192,0,0,0,5,5,62,201,5,5,73,221,192,0,0,0,5,5,229,203,5,5,212,210,5,5,82,199,192,0,0,0,5,5,225,223,5,5,230,203,5,5,226,223,192,0,0,0,5,5,132,216,5,5,83,199,192,0,0,0,192,0,0,0,5,5,106,222,192,0,0,0,5,5,227,223,192,0,0,0,5,5,150,225,5,5,149,225,5,5,147,225,192,0,0,0,5,5,146,225,5,5,151,225,5,5,148,225,192,0,0,0,192,0,0,0,5,5,105,207,5,5,106,207,192,0,0,0,192,0,0,0,5,5,37,209,5,5,106,230,192,0,0,0,5,5,107,230,5,5,108,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,232,5,5,255,232,5,5,253,232,192,0,0,0,5,5,251,232,5,5,252,232,5,5,213,210,5,5,162,235,5,5,231,237,5,5,230,237,5,5,229,237,5,5,232,237,5,5,81,240,5,5,80,240,5,5,110,215,5,5,82,240,192,0,0,0,5,5,133,216,5,5,81,242,192,0,0,0,5,5,10,244,5,5,118,245,5,5,90,248,192,0,0,0,5,5,84,199,5,5,192,199,5,5,191,199,192,0,0,0,5,5,148,202,5,5,38,220,5,5,67,220,5,5,88,200,192,0,0,0,5,5,154,220,5,5,74,221,5,5,75,221,5,5,149,202,192,0,0,0,5,5,107,222,192,0,0,0,5,5,231,203,5,5,228,223,5,5,229,223,192,0,0,0,5,5,127,205,5,5,131,205,5,5,152,225,5,5,130,205,5,5,128,205,5,5,129,205,192,0,0,0,5,5,236,227,5,5,107,207,5,5,40,209,192,0,0,0,5,5,38,209,5,5,39,209,5,5,109,230,192,0,0,0,192,0,0,0,5,5,141,212,5,5,85,199,192,0,0,0,5,5,68,220,192,0,0,0,5,5,193,199,192,0,0,0,192,0,0,0,5,5,71,220,192,0,0,0,192,0,0,0,5,5,196,199,5,5,70,220,5,5,195,199,5,5,194,199,5,5,63,201,5,5,69,220,192,0,0,0,192,0,0,0,5,5,155,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,220,5,5,161,220,5,5,162,220,5,5,98,200,5,5,99,200,5,5,158,220,5,5,94,200,192,0,0,0,5,5,156,220,192,0,0,0,5,5,160,220,5,5,95,200,192,0,0,0,5,5,90,200,192,0,0,0,5,5,91,200,192,0,0,0,5,5,97,200,5,5,157,220,5,5,89,200,5,5,64,201,5,5,92,200,5,5,93,200,5,5,96,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,221,5,5,90,221,5,5,77,221,5,5,76,201,5,5,84,221,5,5,71,201,5,5,78,221,192,0,0,0,5,5,86,221,192,0,0,0,5,5,83,221,5,5,74,201,5,5,82,221,5,5,81,201,5,5,91,221,5,5,83,201,192,0,0,0,5,5,85,201,192,0,0,0,5,5,76,221,192,0,0,0,5,5,72,201,5,5,93,221,192,0,0,0,5,5,79,201,5,5,82,201,192,0,0,0,5,5,130,222,5,5,66,201,5,5,89,201,5,5,80,201,5,5,79,221,5,5,69,201,5,5,84,201,5,5,87,221,5,5,67,201,5,5,68,201,5,5,128,222,5,5,80,221,5,5,75,201,5,5,86,201,5,5,94,221,5,5,81,221,5,5,73,201,192,0,0,0,5,5,78,201,5,5,108,222,5,5,87,201,5,5,88,221,5,5,77,201,192,0,0,0,5,5,88,201,5,5,65,201,5,5,85,221,5,5,70,201,5,5,89,221,5,5,129,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,202,5,5,177,202,5,5,115,222,5,5,168,202,192,0,0,0,5,5,136,222,5,5,153,202,192,0,0,0,5,5,156,202,5,5,127,222,192,0,0,0,5,5,113,222,5,5,117,222,5,5,164,202,5,5,166,202,5,5,120,222,5,5,173,202,5,5,159,202,5,5,157,202,5,5,158,202,5,5,172,202,5,5,132,222,5,5,167,202,5,5,119,222,5,5,121,222,5,5,165,202,5,5,170,202,5,5,122,222,5,5,135,222,192,0,0,0,5,5,232,203,5,5,176,202,192,0,0,0,5,5,154,202,5,5,134,222,192,0,0,0,5,5,138,222,5,5,118,222,5,5,140,222,5,5,125,222,5,5,163,202,5,5,114,222,5,5,162,202,5,5,180,202,5,5,169,202,192,0,0,0,5,5,112,222,5,5,238,223,5,5,175,202,5,5,179,202,5,5,126,222,5,5,131,222,192,0,0,0,5,5,181,202,5,5,174,202,5,5,160,202,5,5,150,202,192,0,0,0,5,5,155,202,192,0,0,0,5,5,116,222,5,5,151,202,5,5,139,222,192,0,0,0,5,5,110,222,5,5,109,222,5,5,123,222,5,5,111,222,5,5,178,202,5,5,132,205,5,5,171,202,5,5,124,222,5,5,152,202,192,0,0,0,5,5,247,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,223,5,5,248,223,192,0,0,0,5,5,251,223,5,5,240,223,192,0,0,0,192,0,0,0,5,5,254,223,5,5,3,224,5,5,5,224,5,5,237,223,5,5,233,203,5,5,238,203,5,5,157,225,5,5,254,203,5,5,252,223,5,5,6,224,5,5,244,223,5,5,236,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,225,5,5,241,203,5,5,249,223,5,5,241,223,5,5,243,223,5,5,246,203,192,0,0,0,5,5,246,223,5,5,240,203,5,5,233,223,5,5,255,223,192,0,0,0,5,5,4,224,192,0,0,0,192,0,0,0,5,5,237,203,192,0,0,0,5,5,249,203,5,5,230,223,5,5,251,203,5,5,235,203,5,5,255,203,5,5,2,224,5,5,232,223,5,5,252,203,5,5,178,225,5,5,133,222,5,5,239,203,5,5,234,203,5,5,239,223,5,5,231,223,5,5,253,203,5,5,245,203,5,5,250,223,5,5,250,203,5,5,248,203,5,5,242,223,5,5,242,203,5,5,234,223,5,5,243,203,5,5,244,203,5,5,235,223,5,5,253,223,5,5,236,203,5,5,247,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,225,5,5,140,205,5,5,145,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,225,5,5,175,225,5,5,171,225,5,5,158,225,5,5,161,225,5,5,154,225,5,5,155,225,5,5,152,205,5,5,137,205,5,5,170,225,5,5,179,225,5,5,147,205,5,5,133,205,192,0,0,0,5,5,142,205,5,5,162,225,5,5,144,205,5,5,163,225,5,5,173,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,205,5,5,188,225,5,5,156,225,5,5,139,205,5,5,138,205,5,5,150,205,5,5,153,225,5,5,186,225,5,5,174,225,5,5,187,225,5,5,181,225,5,5,167,225,5,5,182,225,192,0,0,0,5,5,176,225,5,5,185,225,5,5,183,225,5,5,151,205,5,5,168,225,5,5,136,205,5,5,135,205,5,5,143,205,5,5,149,205,5,5,180,225,5,5,148,205,5,5,165,225,5,5,108,207,192,0,0,0,5,5,189,225,5,5,164,225,5,5,159,225,5,5,141,205,5,5,153,205,5,5,134,205,192,0,0,0,5,5,172,225,5,5,177,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,207,5,5,238,227,5,5,242,227,192,0,0,0,5,5,123,207,5,5,121,207,192,0,0,0,192,0,0,0,5,5,112,207,5,5,240,227,5,5,239,227,5,5,132,207,192,0,0,0,5,5,245,227,5,5,126,207,192,0,0,0,5,5,9,228,5,5,21,228,5,5,109,207,5,5,6,228,5,5,253,227,5,5,144,207,5,5,237,227,192,0,0,0,5,5,11,228,192,0,0,0,5,5,141,207,5,5,129,207,5,5,140,207,5,5,119,207,5,5,249,227,5,5,13,228,5,5,5,228,5,5,120,207,5,5,114,207,5,5,19,228,192,0,0,0,5,5,12,228,5,5,14,228,5,5,122,207,5,5,130,207,5,5,16,228,5,5,247,227,5,5,10,228,5,5,252,227,5,5,18,228,5,5,135,207,5,5,111,207,5,5,133,207,5,5,3,228,5,5,255,227,5,5,2,228,5,5,124,207,5,5,251,227,5,5,250,227,5,5,113,207,5,5,244,227,5,5,20,228,5,5,115,207,5,5,254,227,5,5,145,207,192,0,0,0,5,5,139,207,5,5,243,227,5,5,136,207,5,5,134,207,5,5,143,207,5,5,7,228,5,5,138,207,5,5,166,225,5,5,8,228,5,5,137,207,5,5,15,228,5,5,110,207,5,5,4,228,5,5,128,207,5,5,246,227,5,5,127,207,192,0,0,0,5,5,125,207,5,5,117,207,5,5,116,207,5,5,110,230,5,5,17,228,192,0,0,0,192,0,0,0,5,5,248,227,192,0,0,0,192,0,0,0,5,5,131,230,192,0,0,0,5,5,118,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,209,5,5,131,207,5,5,51,209,5,5,125,230,5,5,65,209,192,0,0,0,5,5,113,230,5,5,48,209,5,5,44,209,5,5,143,230,5,5,50,209,5,5,54,209,5,5,49,209,5,5,58,209,5,5,147,230,5,5,138,230,192,0,0,0,192,0,0,0,5,5,120,230,5,5,63,209,5,5,57,209,5,5,132,230,5,5,41,209,5,5,144,230,5,5,137,230,5,5,45,209,5,5,126,230,5,5,60,209,5,5,155,230,5,5,156,230,192,0,0,0,5,5,42,209,5,5,142,230,5,5,62,209,5,5,130,230,5,5,116,230,5,5,117,230,5,5,66,209,5,5,121,230,5,5,128,230,5,5,122,230,192,0,0,0,5,5,64,209,5,5,72,209,5,5,118,230,5,5,111,230,5,5,112,230,192,0,0,0,5,5,114,230,5,5,47,209,5,5,127,230,192,0,0,0,5,5,61,209,5,5,70,209,192,0,0,0,192,0,0,0,5,5,129,230,5,5,153,230,5,5,145,230,5,5,43,209,5,5,151,230,5,5,55,209,192,0,0,0,5,5,53,209,192,0,0,0,5,5,157,230,5,5,52,209,5,5,135,230,5,5,123,230,5,5,133,230,5,5,75,209,5,5,139,230,5,5,136,230,5,5,119,230,5,5,71,209,5,5,149,230,5,5,146,230,5,5,154,230,5,5,46,209,5,5,134,230,5,5,74,209,192,0,0,0,5,5,141,230,192,0,0,0,192,0,0,0,5,5,56,209,5,5,59,209,192,0,0,0,5,5,140,230,5,5,73,209,5,5,124,230,5,5,241,227,192,0,0,0,192,0,0,0,5,5,150,230,5,5,148,230,5,5,152,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,230,5,5,68,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,233,5,5,31,233,5,5,5,233,5,5,219,210,192,0,0,0,5,5,30,233,5,5,8,233,5,5,9,233,192,0,0,0,5,5,229,210,5,5,39,233,5,5,224,210,5,5,29,233,192,0,0,0,5,5,2,233,5,5,230,210,5,5,220,210,5,5,17,233,5,5,7,233,5,5,10,233,5,5,34,233,5,5,214,210,5,5,41,233,5,5,33,233,5,5,223,210,5,5,22,233,5,5,234,210,192,0,0,0,192,0,0,0,5,5,233,210,5,5,227,210,192,0,0,0,192,0,0,0,5,5,40,233,5,5,215,210,5,5,20,233,5,5,11,233,5,5,24,233,5,5,36,233,5,5,235,210,192,0,0,0,5,5,217,210,5,5,19,233,192,0,0,0,5,5,12,233,5,5,226,210,192,0,0,0,5,5,225,210,5,5,15,233,5,5,25,233,5,5,35,233,5,5,6,233,5,5,16,233,5,5,218,210,5,5,26,233,5,5,231,210,5,5,222,210,5,5,13,233,5,5,221,210,5,5,4,233,5,5,18,233,5,5,38,233,5,5,67,209,5,5,169,212,5,5,21,233,5,5,163,235,5,5,23,233,5,5,37,233,5,5,228,210,5,5,14,233,5,5,216,210,5,5,232,210,5,5,39,214,5,5,3,233,192,0,0,0,5,5,28,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,235,5,5,166,212,5,5,180,235,5,5,185,235,5,5,155,212,192,0,0,0,5,5,165,235,5,5,168,212,192,0,0,0,5,5,146,212,5,5,164,235,5,5,197,235,5,5,170,212,5,5,168,235,5,5,184,235,192,0,0,0,5,5,170,235,5,5,200,235,5,5,196,235,5,5,144,212,5,5,154,212,5,5,4,238,5,5,167,212,5,5,152,212,5,5,166,235,192,0,0,0,5,5,195,235,5,5,156,212,5,5,192,235,5,5,205,235,5,5,172,235,5,5,181,235,192,0,0,0,192,0,0,0,5,5,203,235,5,5,193,235,5,5,151,212,192,0,0,0,192,0,0,0,5,5,179,235,5,5,145,212,5,5,143,212,5,5,161,212,192,0,0,0,192,0,0,0,5,5,177,235,5,5,174,235,5,5,175,235,192,0,0,0,5,5,199,235,192,0,0,0,5,5,204,235,5,5,202,235,5,5,149,212,5,5,206,235,5,5,153,212,5,5,160,212,192,0,0,0,5,5,167,235,5,5,234,237,5,5,176,235,192,0,0,0,5,5,147,212,5,5,165,212,5,5,162,212,5,5,150,212,5,5,186,235,5,5,171,235,5,5,163,212,5,5,188,235,5,5,157,212,5,5,159,212,5,5,142,212,192,0,0,0,5,5,190,235,5,5,182,235,5,5,169,235,5,5,158,212,5,5,198,235,5,5,201,235,5,5,178,235,5,5,189,235,192,0,0,0,5,5,148,212,5,5,22,214,5,5,187,235,5,5,233,237,192,0,0,0,5,5,194,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,235,5,5,243,237,5,5,253,237,5,5,25,214,5,5,252,237,5,5,10,238,5,5,27,214,5,5,250,237,192,0,0,0,5,5,254,237,5,5,38,214,192,0,0,0,5,5,245,237,5,5,30,214,192,0,0,0,5,5,3,238,5,5,90,240,5,5,42,214,5,5,41,214,5,5,5,238,5,5,242,237,5,5,15,238,5,5,36,214,192,0,0,0,5,5,26,214,5,5,8,238,192,0,0,0,5,5,12,238,5,5,17,238,5,5,6,238,5,5,248,237,5,5,29,214,5,5,32,214,5,5,40,214,5,5,35,214,192,0,0,0,5,5,251,237,5,5,183,235,192,0,0,0,192,0,0,0,5,5,247,237,5,5,16,238,5,5,31,214,192,0,0,0,5,5,34,214,5,5,18,238,5,5,23,214,5,5,7,238,5,5,235,237,5,5,13,238,5,5,142,216,192,0,0,0,5,5,249,237,192,0,0,0,5,5,24,214,5,5,244,237,5,5,28,214,5,5,236,237,5,5,164,212,5,5,240,237,192,0,0,0,5,5,11,238,5,5,241,237,5,5,239,237,5,5,33,214,192,0,0,0,5,5,9,238,192,0,0,0,5,5,238,237,5,5,2,238,5,5,255,237,5,5,14,238,5,5,246,237,5,5,37,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,240,192,0,0,0,5,5,123,215,5,5,113,215,5,5,105,240,5,5,85,240,5,5,115,215,5,5,97,240,5,5,122,215,5,5,117,215,5,5,95,240,5,5,83,242,5,5,101,240,5,5,107,240,5,5,100,240,5,5,83,240,5,5,98,240,5,5,109,240,5,5,111,240,5,5,112,215,5,5,110,240,5,5,118,215,5,5,124,215,192,0,0,0,5,5,121,215,192,0,0,0,5,5,104,240,5,5,120,215,5,5,99,240,192,0,0,0,5,5,87,240,5,5,92,240,192,0,0,0,5,5,103,240,5,5,119,215,5,5,116,215,5,5,111,215,5,5,114,215,5,5,91,240,192,0,0,0,5,5,237,237,5,5,86,240,5,5,89,240,5,5,106,240,5,5,94,240,5,5,84,240,5,5,82,242,5,5,108,240,5,5,88,240,5,5,102,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,242,5,5,146,216,192,0,0,0,192,0,0,0,5,5,134,216,192,0,0,0,192,0,0,0,5,5,138,216,5,5,87,242,5,5,93,242,5,5,91,242,5,5,136,216,5,5,137,216,5,5,144,216,5,5,94,242,5,5,86,242,5,5,139,216,192,0,0,0,5,5,90,242,5,5,89,242,5,5,95,242,5,5,145,216,192,0,0,0,5,5,140,216,5,5,143,216,5,5,88,242,5,5,147,216,5,5,141,216,5,5,148,216,5,5,135,216,5,5,92,242,192,0,0,0,5,5,84,242,192,0,0,0,192,0,0,0,5,5,23,244,192,0,0,0,192,0,0,0,5,5,126,217,5,5,20,244,5,5,22,244,192,0,0,0,5,5,124,217,5,5,18,244,5,5,19,244,5,5,14,244,192,0,0,0,192,0,0,0,5,5,96,240,5,5,15,244,5,5,125,217,5,5,11,244,192,0,0,0,5,5,122,217,5,5,24,244,5,5,123,217,5,5,12,244,5,5,13,244,5,5,17,244,5,5,128,217,192,0,0,0,5,5,127,217,192,0,0,0,192,0,0,0,5,5,16,244,5,5,36,218,5,5,122,245,5,5,128,245,5,5,37,218,5,5,119,245,5,5,34,218,5,5,31,218,5,5,130,245,5,5,35,218,192,0,0,0,5,5,32,218,5,5,121,245,5,5,124,245,5,5,125,245,5,5,126,245,5,5,129,245,192,0,0,0,5,5,21,244,5,5,120,245,5,5,33,218,5,5,127,245,5,5,131,245,5,5,123,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,246,5,5,179,218,5,5,183,246,5,5,180,218,5,5,191,246,5,5,182,246,5,5,179,246,192,0,0,0,5,5,181,246,5,5,185,246,5,5,188,246,5,5,187,246,5,5,190,246,5,5,178,246,192,0,0,0,5,5,178,218,5,5,186,246,5,5,189,246,5,5,192,246,5,5,184,246,5,5,167,247,5,5,168,247,5,5,172,247,5,5,173,247,192,0,0,0,5,5,170,247,5,5,171,247,5,5,169,247,192,0,0,0,5,5,18,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,219,5,5,94,248,192,0,0,0,192,0,0,0,5,5,91,248,5,5,92,248,5,5,93,248,5,5,97,219,192,0,0,0,5,5,245,248,5,5,244,248,192,0,0,0,5,5,94,249,5,5,186,219,5,5,92,249,5,5,95,249,5,5,93,249,5,5,164,249,5,5,220,219,5,5,234,219,5,5,239,249,5,5,218,249,192,0,0,0,5,5,238,249,5,5,30,250,5,5,31,250,5,5,86,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,200,5,5,163,220,192,0,0,0,192,0,0,0,5,5,95,221,192,0,0,0,5,5,90,201,192,0,0,0,5,5,93,201,192,0,0,0,5,5,96,221,192,0,0,0,5,5,91,201,5,5,92,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,222,5,5,151,222,5,5,146,222,5,5,143,222,5,5,145,222,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,202,192,0,0,0,192,0,0,0,5,5,147,222,5,5,184,202,5,5,144,222,5,5,141,222,5,5,182,202,5,5,148,222,192,0,0,0,5,5,142,222,5,5,186,202,5,5,150,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,224,192,0,0,0,5,5,12,224,192,0,0,0,192,0,0,0,5,5,10,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,224,192,0,0,0,5,5,2,204,5,5,5,204,5,5,7,204,5,5,9,204,5,5,6,204,5,5,11,224,5,5,10,224,192,0,0,0,5,5,4,204,5,5,13,224,5,5,14,224,192,0,0,0,5,5,7,224,5,5,8,204,192,0,0,0,5,5,3,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,225,5,5,204,225,5,5,205,225,5,5,158,205,192,0,0,0,5,5,154,205,5,5,194,225,192,0,0,0,5,5,202,225,5,5,207,225,5,5,159,205,192,0,0,0,5,5,192,225,5,5,198,225,5,5,191,225,5,5,201,225,192,0,0,0,192,0,0,0,5,5,197,225,5,5,155,205,5,5,157,205,5,5,206,225,192,0,0,0,5,5,190,225,5,5,193,225,5,5,199,225,192,0,0,0,5,5,200,225,5,5,208,225,5,5,196,225,192,0,0,0,5,5,156,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,207,5,5,28,228,192,0,0,0,192,0,0,0,5,5,30,228,5,5,26,228,192,0,0,0,5,5,38,228,5,5,24,228,5,5,37,228,5,5,146,207,5,5,22,228,5,5,161,230,5,5,32,228,5,5,149,207,192,0,0,0,5,5,33,228,5,5,36,228,192,0,0,0,5,5,40,228,192,0,0,0,5,5,29,228,192,0,0,0,5,5,34,228,192,0,0,0,192,0,0,0,5,5,147,207,5,5,148,207,5,5,39,228,5,5,27,228,5,5,23,228,5,5,41,228,192,0,0,0,5,5,31,228,192,0,0,0,192,0,0,0,5,5,35,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,228,192,0,0,0,5,5,76,209,5,5,77,209,5,5,171,230,5,5,83,209,192,0,0,0,5,5,159,230,5,5,168,230,5,5,158,230,5,5,80,209,5,5,166,230,5,5,164,230,192,0,0,0,5,5,165,230,5,5,78,209,192,0,0,0,5,5,169,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,230,5,5,160,230,5,5,79,209,5,5,163,230,5,5,167,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,233,5,5,54,233,5,5,56,233,5,5,62,233,192,0,0,0,5,5,248,210,5,5,42,233,192,0,0,0,5,5,240,210,192,0,0,0,5,5,57,233,5,5,245,210,5,5,63,233,5,5,236,210,192,0,0,0,5,5,60,233,192,0,0,0,5,5,44,233,5,5,61,233,5,5,43,233,192,0,0,0,5,5,250,210,192,0,0,0,5,5,55,233,5,5,237,210,5,5,64,233,192,0,0,0,5,5,242,210,5,5,48,233,5,5,247,210,5,5,59,233,5,5,46,233,5,5,53,233,5,5,49,233,5,5,45,233,5,5,239,210,5,5,246,210,5,5,244,210,5,5,241,210,5,5,249,210,5,5,238,210,5,5,52,233,192,0,0,0,5,5,243,210,192,0,0,0,5,5,82,209,192,0,0,0,5,5,58,233,192,0,0,0,5,5,50,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,233,192,0,0,0,192,0,0,0,5,5,214,235,192,0,0,0,5,5,173,212,192,0,0,0,192,0,0,0,5,5,210,235,5,5,216,235,5,5,212,235,192,0,0,0,5,5,175,212,5,5,211,235,5,5,215,235,5,5,207,235,192,0,0,0,5,5,209,235,5,5,174,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,235,5,5,208,235,192,0,0,0,5,5,176,212,192,0,0,0,5,5,171,212,192,0,0,0,192,0,0,0,5,5,217,235,192,0,0,0,5,5,172,212,5,5,24,238,5,5,21,238,5,5,33,238,5,5,27,238,5,5,29,238,5,5,43,214,5,5,23,238,5,5,31,238,192,0,0,0,192,0,0,0,5,5,30,238,5,5,28,238,192,0,0,0,5,5,34,238,5,5,46,214,5,5,25,238,5,5,32,238,192,0,0,0,5,5,44,214,192,0,0,0,192,0,0,0,5,5,20,238,5,5,22,238,5,5,45,214,5,5,19,238,5,5,35,238,192,0,0,0,5,5,26,238,192,0,0,0,192,0,0,0,5,5,115,240,5,5,131,215,192,0,0,0,192,0,0,0,5,5,126,240,5,5,124,240,5,5,125,215,5,5,114,240,5,5,117,240,5,5,118,240,5,5,113,240,5,5,135,215,5,5,136,215,5,5,112,240,5,5,127,240,5,5,122,240,5,5,129,215,5,5,126,215,5,5,121,240,5,5,119,240,192,0,0,0,192,0,0,0,5,5,132,215,5,5,123,240,5,5,127,215,192,0,0,0,5,5,128,215,192,0,0,0,5,5,120,240,5,5,130,215,5,5,116,240,192,0,0,0,5,5,125,240,5,5,133,215,5,5,128,240,5,5,129,240,5,5,134,215,192,0,0,0,192,0,0,0,5,5,150,216,5,5,157,216,5,5,96,242,5,5,102,242,192,0,0,0,5,5,100,242,5,5,153,216,5,5,152,216,5,5,149,216,5,5,98,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,216,5,5,154,216,5,5,151,216,192,0,0,0,5,5,101,242,5,5,97,242,5,5,99,242,192,0,0,0,5,5,156,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,217,5,5,27,244,192,0,0,0,5,5,129,217,5,5,130,217,5,5,29,244,5,5,131,217,5,5,26,244,192,0,0,0,5,5,25,244,5,5,135,245,5,5,28,244,192,0,0,0,5,5,136,245,5,5,38,218,5,5,134,245,192,0,0,0,192,0,0,0,5,5,133,245,192,0,0,0,5,5,132,245,5,5,39,218,192,0,0,0,192,0,0,0,5,5,181,218,192,0,0,0,192,0,0,0,5,5,193,246,5,5,194,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,247,5,5,175,247,5,5,19,219,192,0,0,0,5,5,174,247,5,5,95,248,5,5,96,248,192,0,0,0,192,0,0,0,5,5,246,248,5,5,96,249,192,0,0,0,192,0,0,0,5,5,165,249,5,5,10,250,5,5,254,219,5,5,20,250,5,5,87,199,192,0,0,0,5,5,187,202,5,5,188,202,192,0,0,0,192,0,0,0,5,5,11,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,216,5,5,88,199,192,0,0,0,5,5,189,202,5,5,160,205,5,5,251,210,5,5,89,199,192,0,0,0,5,5,151,207,5,5,177,212,5,5,39,220,192,0,0,0,5,5,16,224,5,5,209,225,192,0,0,0,5,5,218,235,192,0,0,0,5,5,159,216,5,5,90,199,5,5,190,202,5,5,17,224,5,5,18,224,5,5,172,230,5,5,84,209,192,0,0,0,192,0,0,0,5,5,65,233,192,0,0,0,192,0,0,0,5,5,252,210,5,5,219,235,192,0,0,0,192,0,0,0,5,5,47,214,192,0,0,0,5,5,40,218,5,5,91,199,5,5,173,230,5,5,92,199,192,0,0,0,5,5,102,200,5,5,164,220,5,5,101,200,5,5,96,201,5,5,95,201,5,5,94,201,5,5,97,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,202,192,0,0,0,5,5,192,202,5,5,152,222,192,0,0,0,5,5,19,224,192,0,0,0,5,5,22,224,5,5,13,204,5,5,20,224,192,0,0,0,5,5,12,204,5,5,21,224,5,5,14,204,192,0,0,0,5,5,212,225,5,5,211,225,5,5,210,225,5,5,161,205,192,0,0,0,5,5,43,228,5,5,44,228,5,5,152,207,5,5,42,228,5,5,45,228,5,5,86,209,5,5,153,207,192,0,0,0,192,0,0,0,5,5,85,209,5,5,177,230,5,5,176,230,192,0,0,0,5,5,174,230,5,5,175,230,192,0,0,0,5,5,178,230,5,5,67,233,5,5,66,233,5,5,70,233,192,0,0,0,5,5,69,233,5,5,68,233,5,5,178,212,5,5,222,235,192,0,0,0,5,5,221,235,5,5,179,212,5,5,220,235,5,5,36,238,192,0,0,0,5,5,37,238,5,5,48,214,192,0,0,0,5,5,130,240,5,5,131,240,192,0,0,0,192,0,0,0,5,5,141,245,5,5,41,218,5,5,140,245,5,5,139,245,5,5,137,245,5,5,138,245,5,5,20,219,5,5,195,246,5,5,97,248,5,5,166,249,192,0,0,0,5,5,93,199,192,0,0,0,5,5,72,220,5,5,197,199,5,5,73,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,220,5,5,166,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,221,192,0,0,0,192,0,0,0,5,5,99,221,192,0,0,0,5,5,98,221,5,5,193,202,5,5,102,221,5,5,98,201,5,5,100,221,5,5,97,201,5,5,104,221,5,5,101,221,192,0,0,0,192,0,0,0,5,5,156,222,5,5,23,224,5,5,154,222,5,5,161,222,192,0,0,0,5,5,194,202,192,0,0,0,5,5,197,202,5,5,162,222,5,5,158,222,192,0,0,0,5,5,159,222,192,0,0,0,5,5,153,222,5,5,196,202,5,5,155,222,5,5,195,202,5,5,160,222,192,0,0,0,5,5,157,222,192,0,0,0,192,0,0,0,5,5,27,224,5,5,16,204,5,5,17,204,192,0,0,0,5,5,30,224,5,5,24,224,192,0,0,0,5,5,29,224,192,0,0,0,5,5,25,224,5,5,15,204,5,5,28,224,5,5,26,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,225,5,5,215,225,192,0,0,0,5,5,217,225,5,5,166,205,5,5,165,205,5,5,163,205,5,5,214,225,5,5,219,225,5,5,162,205,5,5,164,205,5,5,216,225,5,5,53,228,5,5,213,225,5,5,220,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,228,5,5,52,228,192,0,0,0,5,5,51,228,5,5,180,230,5,5,191,230,192,0,0,0,192,0,0,0,5,5,54,228,192,0,0,0,5,5,49,228,5,5,179,230,5,5,157,207,192,0,0,0,192,0,0,0,5,5,156,207,5,5,47,228,5,5,50,228,5,5,158,207,192,0,0,0,5,5,155,207,5,5,154,207,5,5,46,228,5,5,55,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,230,5,5,189,230,192,0,0,0,5,5,88,209,5,5,188,230,5,5,185,230,192,0,0,0,5,5,90,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,230,192,0,0,0,192,0,0,0,5,5,181,230,5,5,183,230,5,5,186,230,5,5,184,230,5,5,89,209,5,5,190,230,5,5,87,209,5,5,253,210,192,0,0,0,192,0,0,0,5,5,74,233,5,5,73,233,5,5,71,233,192,0,0,0,5,5,2,211,5,5,255,210,5,5,75,233,192,0,0,0,5,5,72,233,5,5,223,235,5,5,180,212,5,5,254,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,233,5,5,76,233,192,0,0,0,5,5,226,235,5,5,224,235,5,5,49,214,192,0,0,0,5,5,181,212,5,5,225,235,5,5,39,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,214,5,5,38,238,5,5,47,238,5,5,46,238,5,5,44,238,192,0,0,0,5,5,43,238,5,5,40,238,5,5,41,238,5,5,42,238,5,5,45,238,5,5,48,238,192,0,0,0,192,0,0,0,5,5,136,240,5,5,133,240,5,5,134,240,5,5,137,215,5,5,132,240,5,5,138,240,5,5,137,240,5,5,135,240,192,0,0,0,5,5,104,242,5,5,105,242,5,5,160,216,192,0,0,0,5,5,161,216,5,5,103,242,192,0,0,0,5,5,134,217,5,5,30,244,5,5,133,217,5,5,42,218,192,0,0,0,5,5,43,218,5,5,182,218,5,5,197,246,5,5,196,246,5,5,177,247,5,5,98,248,5,5,98,219,5,5,248,248,5,5,247,248,5,5,249,248,5,5,198,199,5,5,31,224,5,5,167,205,5,5,159,207,5,5,56,228,5,5,199,199,5,5,74,220,5,5,94,199,192,0,0,0,192,0,0,0,5,5,167,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,221,5,5,107,221,5,5,108,221,5,5,105,221,5,5,99,201,5,5,106,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,222,192,0,0,0,5,5,200,202,5,5,168,222,5,5,164,222,5,5,167,222,192,0,0,0,5,5,163,222,5,5,202,202,5,5,166,222,192,0,0,0,5,5,199,202,5,5,198,202,192,0,0,0,5,5,201,202,5,5,169,222,5,5,165,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,204,5,5,24,204,5,5,39,224,5,5,38,224,5,5,37,224,5,5,18,204,5,5,46,224,5,5,36,224,192,0,0,0,5,5,20,204,5,5,225,225,192,0,0,0,5,5,43,224,5,5,41,224,5,5,23,204,192,0,0,0,5,5,33,224,5,5,44,224,192,0,0,0,5,5,35,224,5,5,45,224,5,5,42,224,5,5,34,224,192,0,0,0,5,5,19,204,5,5,47,224,5,5,32,224,5,5,22,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,225,5,5,221,225,5,5,232,225,192,0,0,0,5,5,224,225,5,5,235,225,5,5,236,225,5,5,222,225,5,5,234,225,5,5,231,225,5,5,229,225,5,5,233,225,5,5,173,205,192,0,0,0,5,5,171,205,192,0,0,0,192,0,0,0,5,5,227,225,192,0,0,0,5,5,223,225,192,0,0,0,5,5,226,225,5,5,237,225,5,5,228,225,5,5,172,205,5,5,40,224,192,0,0,0,5,5,168,205,5,5,170,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,228,5,5,59,228,5,5,57,228,192,0,0,0,5,5,58,228,192,0,0,0,5,5,65,228,192,0,0,0,5,5,66,228,5,5,62,228,5,5,164,207,5,5,67,228,5,5,64,228,5,5,61,228,192,0,0,0,5,5,162,207,5,5,60,228,5,5,160,207,5,5,163,207,5,5,63,228,5,5,71,228,5,5,169,205,5,5,161,207,5,5,69,228,5,5,68,228,5,5,165,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,230,5,5,100,209,192,0,0,0,5,5,203,230,192,0,0,0,192,0,0,0,5,5,205,230,5,5,198,230,5,5,94,209,5,5,202,230,5,5,201,230,5,5,95,209,5,5,101,209,192,0,0,0,5,5,102,209,5,5,204,230,5,5,92,209,5,5,195,230,5,5,193,230,5,5,199,230,5,5,192,230,5,5,99,209,5,5,194,230,5,5,200,230,5,5,206,230,5,5,93,209,5,5,98,209,5,5,96,209,5,5,97,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,211,5,5,84,233,5,5,8,211,5,5,88,233,192,0,0,0,5,5,78,233,192,0,0,0,5,5,89,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,233,5,5,80,233,192,0,0,0,5,5,90,233,5,5,87,233,5,5,85,233,5,5,86,233,5,5,82,233,5,5,81,233,192,0,0,0,5,5,91,233,5,5,5,211,192,0,0,0,5,5,83,233,192,0,0,0,5,5,10,211,5,5,4,211,5,5,11,211,5,5,12,211,192,0,0,0,5,5,7,211,5,5,6,211,192,0,0,0,192,0,0,0,5,5,227,235,5,5,183,212,5,5,182,212,192,0,0,0,192,0,0,0,5,5,232,235,192,0,0,0,5,5,51,214,5,5,184,212,192,0,0,0,192,0,0,0,5,5,186,212,5,5,233,235,5,5,3,211,5,5,185,212,5,5,229,235,5,5,231,235,5,5,228,235,192,0,0,0,5,5,230,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,5,5,57,238,5,5,54,238,5,5,54,214,5,5,139,240,5,5,55,214,5,5,53,238,192,0,0,0,5,5,53,214,192,0,0,0,5,5,55,238,5,5,52,238,5,5,49,238,5,5,56,238,5,5,50,238,5,5,51,238,5,5,52,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,242,192,0,0,0,5,5,143,240,192,0,0,0,5,5,142,240,5,5,144,240,192,0,0,0,5,5,106,242,5,5,140,215,192,0,0,0,5,5,140,240,192,0,0,0,5,5,138,215,192,0,0,0,5,5,142,215,5,5,141,215,5,5,141,240,5,5,145,240,192,0,0,0,5,5,139,215,192,0,0,0,5,5,113,242,5,5,164,216,5,5,135,217,5,5,165,216,5,5,162,216,5,5,110,242,5,5,108,242,192,0,0,0,5,5,111,242,192,0,0,0,5,5,114,242,5,5,163,216,5,5,112,242,5,5,107,242,192,0,0,0,192,0,0,0,5,5,33,244,5,5,36,244,5,5,144,245,5,5,31,244,192,0,0,0,5,5,198,246,5,5,37,244,192,0,0,0,5,5,44,218,5,5,35,244,5,5,136,217,5,5,32,244,5,5,34,244,5,5,38,244,5,5,145,245,192,0,0,0,5,5,143,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,218,5,5,142,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,219,5,5,100,248,5,5,21,219,5,5,102,248,5,5,99,248,5,5,101,248,5,5,150,219,5,5,97,249,5,5,200,199,5,5,171,222,5,5,238,225,5,5,239,225,5,5,166,207,5,5,92,233,5,5,143,215,5,5,46,218,5,5,99,219,5,5,98,249,5,5,201,199,192,0,0,0,5,5,172,222,5,5,0,134,192,0,0,0,192,0,0,0,5,5,48,224,192,0,0,0,5,5,49,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,225,5,5,241,225,5,5,167,207,5,5,168,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,230,192,0,0,0,5,5,95,233,5,5,94,233,5,5,93,233,5,5,234,235,192,0,0,0,5,5,235,235,5,5,236,235,5,5,187,212,192,0,0,0,192,0,0,0,5,5,60,238,5,5,59,238,192,0,0,0,192,0,0,0,5,5,146,240,5,5,144,215,5,5,145,215,192,0,0,0,5,5,118,242,5,5,115,242,5,5,116,242,5,5,117,242,5,5,40,244,5,5,39,244,5,5,137,217,5,5,146,245,5,5,178,247,5,5,202,199,192,0,0,0,5,5,25,204,192,0,0,0,5,5,169,207,5,5,96,233,192,0,0,0,5,5,203,199,192,0,0,0,5,5,242,225,5,5,170,207,192,0,0,0,192,0,0,0,5,5,103,209,5,5,104,209,192,0,0,0,5,5,204,199,5,5,205,199,5,5,168,220,5,5,101,201,5,5,100,201,5,5,26,204,5,5,50,224,5,5,208,230,5,5,206,199,5,5,207,199,5,5,208,199,5,5,209,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,201,5,5,103,201,5,5,111,221,5,5,110,221,192,0,0,0,192,0,0,0,5,5,203,202,5,5,175,222,5,5,173,222,5,5,174,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,224,5,5,52,224,192,0,0,0,192,0,0,0,5,5,30,204,5,5,28,204,192,0,0,0,5,5,29,204,5,5,27,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,205,5,5,177,205,5,5,243,225,5,5,176,205,5,5,175,205,192,0,0,0,5,5,244,225,192,0,0,0,192,0,0,0,5,5,173,207,5,5,73,228,5,5,72,228,5,5,171,207,5,5,172,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,209,5,5,105,209,5,5,210,230,192,0,0,0,192,0,0,0,5,5,209,230,5,5,174,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,211,5,5,98,233,5,5,14,211,5,5,97,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,235,5,5,61,238,5,5,56,214,5,5,147,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,242,192,0,0,0,5,5,48,218,5,5,47,218,192,0,0,0,192,0,0,0,5,5,100,219,5,5,210,199,5,5,176,222,192,0,0,0,192,0,0,0,5,5,175,207,5,5,238,235,5,5,188,212,192,0,0,0,192,0,0,0,5,5,112,221,5,5,113,221,192,0,0,0,192,0,0,0,5,5,177,222,5,5,205,202,5,5,206,202,192,0,0,0,192,0,0,0,5,5,204,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,204,5,5,35,204,5,5,32,204,5,5,33,204,192,0,0,0,5,5,53,224,192,0,0,0,192,0,0,0,5,5,54,224,5,5,31,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,225,192,0,0,0,5,5,182,205,5,5,183,205,192,0,0,0,5,5,178,207,5,5,251,225,192,0,0,0,5,5,188,205,5,5,186,205,5,5,252,225,5,5,247,225,5,5,185,205,5,5,184,205,5,5,179,205,5,5,250,225,5,5,249,225,5,5,246,225,5,5,187,205,192,0,0,0,5,5,248,225,5,5,180,205,192,0,0,0,5,5,181,205,192,0,0,0,192,0,0,0,5,5,179,207,5,5,77,228,5,5,78,228,5,5,180,207,5,5,74,228,5,5,76,228,5,5,80,228,5,5,79,228,5,5,75,228,192,0,0,0,5,5,176,207,5,5,177,207,192,0,0,0,5,5,218,230,5,5,111,209,5,5,110,209,5,5,212,230,5,5,108,209,192,0,0,0,5,5,215,230,5,5,112,209,5,5,216,230,5,5,113,209,5,5,213,230,5,5,107,209,5,5,109,209,5,5,217,230,192,0,0,0,5,5,214,230,5,5,211,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,233,192,0,0,0,5,5,100,233,5,5,16,211,5,5,19,211,5,5,18,211,5,5,23,211,5,5,22,211,5,5,112,233,5,5,110,233,5,5,103,233,5,5,107,233,5,5,106,233,5,5,20,211,5,5,109,233,5,5,105,233,5,5,113,233,5,5,104,233,5,5,21,211,5,5,15,211,5,5,17,211,192,0,0,0,5,5,102,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,235,5,5,192,212,5,5,244,235,5,5,191,212,5,5,241,235,5,5,190,212,192,0,0,0,5,5,101,233,5,5,108,233,5,5,243,235,192,0,0,0,5,5,193,212,5,5,245,235,5,5,242,235,5,5,239,235,192,0,0,0,192,0,0,0,5,5,64,238,5,5,68,238,5,5,70,238,5,5,66,238,5,5,65,238,5,5,63,238,5,5,59,214,5,5,57,214,5,5,62,214,5,5,63,214,5,5,67,238,5,5,60,214,5,5,62,238,5,5,61,214,5,5,189,212,5,5,69,238,5,5,58,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,240,192,0,0,0,5,5,148,240,5,5,156,240,5,5,150,240,5,5,155,240,5,5,152,240,5,5,146,215,5,5,154,240,192,0,0,0,192,0,0,0,5,5,147,215,192,0,0,0,5,5,148,215,192,0,0,0,5,5,153,240,5,5,151,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,216,5,5,120,242,192,0,0,0,192,0,0,0,5,5,166,216,5,5,123,242,5,5,121,242,5,5,122,242,192,0,0,0,192,0,0,0,5,5,168,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,244,192,0,0,0,5,5,140,217,5,5,45,244,192,0,0,0,192,0,0,0,5,5,138,217,5,5,46,244,5,5,139,217,5,5,43,244,5,5,47,244,192,0,0,0,5,5,41,244,192,0,0,0,192,0,0,0,5,5,49,218,5,5,147,245,5,5,50,218,5,5,184,218,192,0,0,0,5,5,42,244,5,5,185,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,219,5,5,179,247,192,0,0,0,5,5,102,219,5,5,103,248,5,5,101,219,192,0,0,0,5,5,250,248,5,5,187,219,5,5,188,219,192,0,0,0,192,0,0,0,5,5,26,250,192,0,0,0,192,0,0,0,5,5,36,204,5,5,55,224,192,0,0,0,5,5,114,209,5,5,115,209,5,5,211,199,5,5,103,200,5,5,169,220,192,0,0,0,5,5,114,221,5,5,104,201,192,0,0,0,5,5,207,202,192,0,0,0,5,5,37,204,5,5,38,204,5,5,39,204,5,5,82,228,5,5,253,225,5,5,189,205,192,0,0,0,192,0,0,0,5,5,181,207,5,5,81,228,192,0,0,0,192,0,0,0,5,5,220,230,5,5,117,209,192,0,0,0,5,5,219,230,5,5,116,209,192,0,0,0,192,0,0,0,5,5,114,233,5,5,64,214,5,5,74,238,5,5,71,238,5,5,72,238,5,5,73,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,242,192,0,0,0,5,5,48,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,246,5,5,199,246,192,0,0,0,5,5,104,248,5,5,212,199,5,5,178,222,5,5,190,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,209,5,5,115,233,192,0,0,0,192,0,0,0,5,5,246,235,192,0,0,0,5,5,65,214,5,5,157,240,192,0,0,0,5,5,49,244,5,5,201,246,5,5,213,199,192,0,0,0,192,0,0,0,5,5,208,202,5,5,42,204,5,5,56,224,5,5,43,204,5,5,41,204,192,0,0,0,5,5,40,204,5,5,254,225,5,5,191,205,192,0,0,0,192,0,0,0,5,5,192,205,5,5,193,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,207,5,5,83,228,5,5,182,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,230,5,5,184,207,5,5,119,209,5,5,116,233,5,5,24,211,5,5,25,211,192,0,0,0,5,5,194,212,192,0,0,0,5,5,195,212,5,5,66,214,5,5,150,215,5,5,158,240,5,5,149,215,192,0,0,0,5,5,125,242,5,5,169,216,192,0,0,0,5,5,50,244,5,5,202,246,5,5,214,199,5,5,105,201,5,5,181,222,5,5,180,222,5,5,209,202,5,5,179,222,5,5,210,202,5,5,182,222,192,0,0,0,5,5,62,224,5,5,46,204,5,5,45,204,5,5,64,224,5,5,63,224,5,5,50,204,192,0,0,0,5,5,49,204,192,0,0,0,192,0,0,0,5,5,44,204,192,0,0,0,5,5,58,224,5,5,59,224,5,5,60,224,192,0,0,0,5,5,51,204,5,5,57,224,5,5,47,204,5,5,61,224,5,5,48,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,226,5,5,7,226,5,5,5,226,5,5,4,226,192,0,0,0,5,5,8,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,226,5,5,10,226,5,5,2,226,192,0,0,0,5,5,255,225,192,0,0,0,5,5,195,205,5,5,196,205,192,0,0,0,5,5,11,226,5,5,6,226,192,0,0,0,5,5,92,228,192,0,0,0,5,5,12,226,5,5,197,205,5,5,194,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,228,192,0,0,0,5,5,85,228,192,0,0,0,5,5,87,228,5,5,88,228,5,5,90,228,5,5,89,228,5,5,94,228,5,5,188,207,5,5,185,207,5,5,189,207,5,5,84,228,5,5,190,207,5,5,93,228,5,5,187,207,5,5,91,228,5,5,186,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,230,5,5,226,230,5,5,222,230,5,5,223,230,192,0,0,0,192,0,0,0,5,5,227,230,5,5,229,230,5,5,230,230,5,5,225,230,5,5,228,230,5,5,120,209,192,0,0,0,192,0,0,0,5,5,120,233,192,0,0,0,5,5,125,233,5,5,117,233,5,5,121,233,192,0,0,0,192,0,0,0,5,5,126,233,5,5,122,233,5,5,26,211,5,5,34,211,192,0,0,0,5,5,29,211,5,5,118,233,5,5,119,233,5,5,199,212,5,5,37,211,5,5,30,211,192,0,0,0,5,5,35,211,5,5,28,211,5,5,124,233,5,5,36,211,5,5,123,233,5,5,32,211,5,5,27,211,5,5,33,211,5,5,127,233,5,5,251,235,5,5,253,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,211,192,0,0,0,192,0,0,0,5,5,248,235,5,5,197,212,5,5,254,235,5,5,198,212,5,5,252,235,5,5,247,235,5,5,250,235,5,5,255,235,5,5,196,212,5,5,249,235,192,0,0,0,5,5,68,214,5,5,78,238,5,5,77,238,192,0,0,0,5,5,71,214,5,5,69,214,5,5,75,238,5,5,67,214,5,5,76,238,192,0,0,0,5,5,70,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,240,192,0,0,0,5,5,168,240,192,0,0,0,5,5,167,240,5,5,159,240,5,5,163,240,5,5,162,240,5,5,160,240,5,5,152,215,5,5,153,215,5,5,151,215,5,5,161,240,5,5,164,240,5,5,165,240,192,0,0,0,5,5,154,215,192,0,0,0,5,5,174,216,5,5,133,242,192,0,0,0,5,5,171,216,5,5,127,242,5,5,173,216,5,5,175,216,192,0,0,0,192,0,0,0,5,5,172,216,5,5,132,242,5,5,128,242,5,5,170,216,5,5,131,242,5,5,126,242,5,5,130,242,5,5,129,242,192,0,0,0,192,0,0,0,5,5,52,244,5,5,143,217,5,5,144,217,5,5,141,217,192,0,0,0,5,5,142,217,192,0,0,0,192,0,0,0,5,5,51,244,192,0,0,0,5,5,150,245,192,0,0,0,192,0,0,0,5,5,51,218,192,0,0,0,5,5,148,245,5,5,149,245,192,0,0,0,5,5,203,246,5,5,206,246,5,5,204,246,5,5,205,246,5,5,180,247,192,0,0,0,192,0,0,0,5,5,24,219,5,5,251,248,5,5,99,249,192,0,0,0,5,5,189,219,5,5,167,249,5,5,168,249,5,5,235,219,5,5,215,199,5,5,52,204,192,0,0,0,5,5,231,230,192,0,0,0,5,5,128,233,192,0,0,0,5,5,216,199,5,5,106,201,192,0,0,0,5,5,211,202,192,0,0,0,5,5,65,224,5,5,66,224,5,5,198,205,192,0,0,0,192,0,0,0,5,5,232,230,5,5,121,209,5,5,38,211,5,5,176,216,5,5,134,242,5,5,151,245,5,5,207,246,5,5,217,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,222,5,5,183,222,5,5,185,222,5,5,187,222,5,5,186,222,5,5,184,222,5,5,212,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,204,5,5,75,224,192,0,0,0,5,5,70,224,5,5,67,224,192,0,0,0,192,0,0,0,5,5,74,224,192,0,0,0,192,0,0,0,5,5,55,204,5,5,56,204,5,5,73,224,5,5,72,224,5,5,71,224,5,5,68,224,5,5,69,224,5,5,76,224,5,5,54,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,205,192,0,0,0,5,5,208,205,5,5,207,205,5,5,21,226,5,5,15,226,5,5,13,226,192,0,0,0,5,5,205,205,5,5,101,228,5,5,200,205,5,5,18,226,5,5,22,226,5,5,24,226,5,5,20,226,5,5,14,226,5,5,206,205,5,5,19,226,5,5,17,226,5,5,199,205,5,5,25,226,5,5,209,205,5,5,23,226,5,5,203,205,5,5,16,226,192,0,0,0,5,5,204,205,5,5,201,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,207,192,0,0,0,5,5,102,228,192,0,0,0,192,0,0,0,5,5,95,228,5,5,97,228,5,5,99,228,192,0,0,0,5,5,100,228,5,5,98,228,5,5,193,207,192,0,0,0,5,5,103,228,192,0,0,0,5,5,96,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,230,5,5,122,209,5,5,244,230,192,0,0,0,5,5,233,230,192,0,0,0,5,5,245,230,192,0,0,0,5,5,234,230,5,5,235,230,192,0,0,0,192,0,0,0,5,5,243,230,5,5,242,230,5,5,239,230,5,5,191,207,5,5,123,209,5,5,237,230,5,5,240,230,5,5,124,209,5,5,241,230,5,5,238,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,233,192,0,0,0,5,5,143,233,5,5,45,211,192,0,0,0,5,5,7,236,5,5,48,211,5,5,141,233,192,0,0,0,192,0,0,0,5,5,138,233,5,5,133,233,5,5,135,233,5,5,136,233,5,5,129,233,192,0,0,0,5,5,44,211,192,0,0,0,192,0,0,0,5,5,43,211,192,0,0,0,5,5,39,211,5,5,132,233,192,0,0,0,5,5,46,211,192,0,0,0,5,5,47,211,5,5,131,233,5,5,134,233,5,5,142,233,5,5,41,211,5,5,42,211,5,5,140,233,5,5,130,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,236,5,5,201,212,5,5,11,236,5,5,137,233,5,5,13,236,5,5,205,212,5,5,14,236,5,5,10,236,192,0,0,0,5,5,202,212,5,5,6,236,5,5,204,212,5,5,3,236,5,5,8,236,5,5,12,236,5,5,5,236,192,0,0,0,192,0,0,0,5,5,40,211,192,0,0,0,5,5,2,236,5,5,203,212,5,5,4,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,214,5,5,80,238,5,5,78,214,192,0,0,0,5,5,76,214,192,0,0,0,192,0,0,0,5,5,200,212,192,0,0,0,5,5,87,238,5,5,88,238,5,5,73,214,192,0,0,0,192,0,0,0,5,5,86,238,5,5,89,238,5,5,75,214,5,5,72,214,5,5,82,238,5,5,79,238,5,5,84,238,5,5,81,238,5,5,79,214,5,5,83,238,192,0,0,0,192,0,0,0,5,5,85,238,5,5,77,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,215,5,5,175,240,192,0,0,0,5,5,169,240,5,5,173,240,5,5,179,240,5,5,180,240,5,5,176,240,5,5,177,240,5,5,174,240,192,0,0,0,5,5,171,240,192,0,0,0,5,5,158,215,5,5,155,215,5,5,170,240,5,5,172,240,192,0,0,0,5,5,157,215,5,5,178,240,192,0,0,0,5,5,180,216,192,0,0,0,192,0,0,0,5,5,140,242,5,5,135,242,5,5,179,216,192,0,0,0,192,0,0,0,5,5,177,216,192,0,0,0,5,5,142,242,5,5,178,216,5,5,138,242,5,5,139,242,5,5,136,242,5,5,143,242,5,5,53,244,192,0,0,0,5,5,181,216,5,5,137,242,192,0,0,0,5,5,144,242,5,5,141,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,244,192,0,0,0,192,0,0,0,5,5,54,244,192,0,0,0,5,5,145,217,192,0,0,0,5,5,58,244,5,5,60,244,5,5,59,244,5,5,55,244,5,5,56,244,192,0,0,0,192,0,0,0,5,5,156,245,192,0,0,0,5,5,52,218,192,0,0,0,5,5,153,245,5,5,155,245,5,5,152,245,5,5,157,245,192,0,0,0,192,0,0,0,5,5,154,245,192,0,0,0,5,5,209,246,5,5,212,246,5,5,208,246,5,5,186,218,5,5,210,246,5,5,211,246,5,5,213,246,5,5,187,218,5,5,189,218,5,5,188,218,5,5,181,247,192,0,0,0,5,5,183,247,192,0,0,0,5,5,182,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,248,192,0,0,0,192,0,0,0,5,5,100,249,5,5,169,249,5,5,218,199,192,0,0,0,192,0,0,0,5,5,115,221,5,5,213,202,5,5,190,222,5,5,214,202,5,5,215,202,5,5,189,222,192,0,0,0,5,5,81,224,5,5,80,224,5,5,57,204,5,5,60,204,5,5,59,204,5,5,58,204,5,5,77,224,5,5,79,224,5,5,78,224,192,0,0,0,192,0,0,0,5,5,28,226,5,5,211,205,5,5,32,226,5,5,31,226,5,5,30,226,5,5,26,226,5,5,210,205,5,5,214,205,5,5,217,205,192,0,0,0,192,0,0,0,5,5,218,205,5,5,27,226,5,5,29,226,5,5,216,205,5,5,215,205,5,5,213,205,5,5,212,205,5,5,110,228,192,0,0,0,5,5,108,228,5,5,104,228,5,5,194,207,192,0,0,0,5,5,105,228,5,5,195,207,5,5,106,228,5,5,107,228,5,5,109,228,192,0,0,0,5,5,196,207,192,0,0,0,192,0,0,0,5,5,249,230,192,0,0,0,5,5,248,230,5,5,247,230,5,5,246,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,233,5,5,49,211,192,0,0,0,5,5,144,233,5,5,146,233,192,0,0,0,5,5,50,211,192,0,0,0,5,5,51,211,5,5,145,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,236,192,0,0,0,5,5,16,236,5,5,17,236,192,0,0,0,5,5,208,212,5,5,206,212,5,5,207,212,5,5,25,236,192,0,0,0,5,5,24,236,5,5,21,236,5,5,20,236,5,5,19,236,5,5,18,236,5,5,22,236,5,5,15,236,192,0,0,0,5,5,90,238,5,5,95,238,5,5,93,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,238,5,5,91,238,5,5,94,238,192,0,0,0,5,5,181,240,192,0,0,0,5,5,159,215,5,5,182,216,5,5,146,242,192,0,0,0,5,5,183,216,5,5,145,242,5,5,62,244,5,5,61,244,5,5,146,217,192,0,0,0,5,5,158,245,5,5,53,218,5,5,214,246,5,5,103,219,5,5,106,248,192,0,0,0,5,5,102,249,5,5,101,249,5,5,75,220,5,5,61,204,5,5,62,204,5,5,111,228,192,0,0,0,5,5,53,211,5,5,219,199,5,5,109,201,5,5,108,201,5,5,107,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,222,192,0,0,0,192,0,0,0,5,5,217,202,5,5,216,202,192,0,0,0,5,5,65,204,192,0,0,0,5,5,83,224,5,5,86,224,5,5,84,224,192,0,0,0,5,5,63,204,5,5,64,204,192,0,0,0,192,0,0,0,5,5,82,224,5,5,85,224,192,0,0,0,5,5,225,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,226,5,5,41,226,5,5,40,226,5,5,222,205,5,5,35,226,192,0,0,0,192,0,0,0,5,5,220,205,5,5,219,205,192,0,0,0,5,5,223,205,5,5,221,205,192,0,0,0,5,5,224,205,5,5,38,226,5,5,33,226,5,5,34,226,5,5,37,226,5,5,36,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,228,5,5,115,228,5,5,113,228,192,0,0,0,5,5,112,228,5,5,197,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,209,192,0,0,0,5,5,250,230,5,5,252,230,5,5,254,230,5,5,128,209,192,0,0,0,192,0,0,0,5,5,126,209,192,0,0,0,5,5,251,230,5,5,127,209,5,5,253,230,5,5,125,209,192,0,0,0,192,0,0,0,5,5,157,233,5,5,148,233,5,5,151,233,5,5,155,233,5,5,57,211,5,5,153,233,192,0,0,0,5,5,152,233,5,5,149,233,5,5,150,233,5,5,55,211,5,5,156,233,5,5,54,211,192,0,0,0,5,5,59,211,5,5,58,211,5,5,56,211,192,0,0,0,5,5,154,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,236,192,0,0,0,5,5,30,236,192,0,0,0,192,0,0,0,5,5,26,236,192,0,0,0,192,0,0,0,5,5,209,212,5,5,29,236,5,5,28,236,5,5,210,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,214,192,0,0,0,5,5,97,238,192,0,0,0,5,5,85,214,5,5,81,214,5,5,83,214,192,0,0,0,5,5,80,214,5,5,82,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,240,192,0,0,0,5,5,162,215,5,5,184,240,5,5,183,240,192,0,0,0,5,5,27,236,5,5,164,215,5,5,163,215,5,5,160,215,5,5,161,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,242,192,0,0,0,5,5,149,242,5,5,184,216,5,5,150,242,192,0,0,0,5,5,152,242,5,5,148,242,5,5,147,242,192,0,0,0,192,0,0,0,5,5,63,244,5,5,149,217,5,5,147,217,5,5,148,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,245,5,5,160,245,5,5,55,218,192,0,0,0,5,5,54,218,5,5,216,246,5,5,217,246,5,5,215,246,192,0,0,0,5,5,107,248,5,5,108,248,192,0,0,0,192,0,0,0,5,5,220,199,5,5,170,220,5,5,110,201,192,0,0,0,5,5,192,222,5,5,219,202,5,5,218,202,5,5,193,222,192,0,0,0,192,0,0,0,5,5,88,224,5,5,66,204,5,5,87,224,5,5,67,204,192,0,0,0,192,0,0,0,5,5,226,205,5,5,44,226,5,5,42,226,5,5,48,226,5,5,227,205,5,5,43,226,5,5,47,226,5,5,45,226,5,5,46,226,192,0,0,0,192,0,0,0,5,5,116,228,5,5,118,228,192,0,0,0,5,5,198,207,192,0,0,0,5,5,117,228,5,5,199,207,5,5,132,209,5,5,131,209,5,5,130,209,5,5,255,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,233,5,5,60,211,5,5,61,211,192,0,0,0,5,5,159,233,5,5,158,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,236,5,5,212,212,5,5,211,212,5,5,33,236,5,5,34,236,192,0,0,0,5,5,87,214,5,5,86,214,192,0,0,0,5,5,188,240,5,5,98,238,5,5,100,238,5,5,99,238,5,5,187,240,5,5,185,240,5,5,189,240,5,5,186,240,192,0,0,0,5,5,165,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,242,5,5,185,216,5,5,154,242,5,5,155,242,192,0,0,0,192,0,0,0,5,5,150,217,5,5,151,217,192,0,0,0,5,5,190,218,192,0,0,0,192,0,0,0,5,5,151,219,5,5,221,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,226,5,5,228,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,208,5,5,95,208,192,0,0,0,192,0,0,0,5,5,134,209,5,5,3,231,5,5,133,209,5,5,2,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,233,192,0,0,0,5,5,213,212,5,5,35,236,5,5,214,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,218,5,5,218,246,192,0,0,0,5,5,104,200,5,5,220,202,5,5,194,222,192,0,0,0,5,5,69,204,192,0,0,0,5,5,68,204,5,5,90,224,5,5,91,224,192,0,0,0,192,0,0,0,5,5,51,226,5,5,53,226,5,5,229,205,192,0,0,0,5,5,55,226,5,5,58,226,5,5,56,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,226,5,5,54,226,5,5,50,226,5,5,230,205,5,5,59,226,5,5,52,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,228,5,5,205,207,5,5,136,228,5,5,202,207,192,0,0,0,5,5,129,228,5,5,206,207,192,0,0,0,5,5,200,207,192,0,0,0,5,5,124,228,5,5,137,228,5,5,125,228,5,5,122,228,5,5,204,207,192,0,0,0,5,5,201,207,192,0,0,0,5,5,128,228,5,5,131,228,5,5,203,207,5,5,132,228,5,5,207,207,5,5,133,228,5,5,123,228,5,5,130,228,5,5,134,228,5,5,126,228,5,5,121,228,5,5,119,228,192,0,0,0,192,0,0,0,5,5,135,228,192,0,0,0,192,0,0,0,5,5,5,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,231,5,5,12,231,5,5,137,209,5,5,120,228,5,5,7,231,5,5,135,209,5,5,4,231,5,5,142,209,5,5,8,231,5,5,141,209,5,5,9,231,5,5,143,209,5,5,138,209,5,5,144,209,5,5,139,209,192,0,0,0,5,5,140,209,192,0,0,0,5,5,136,209,192,0,0,0,5,5,11,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,211,5,5,172,233,192,0,0,0,5,5,175,233,5,5,163,233,5,5,168,233,5,5,162,233,5,5,66,211,192,0,0,0,5,5,166,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,233,5,5,65,211,192,0,0,0,5,5,171,233,5,5,170,233,5,5,167,233,5,5,169,233,5,5,165,233,5,5,218,212,5,5,174,233,5,5,62,211,5,5,173,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,236,192,0,0,0,5,5,225,212,5,5,46,236,192,0,0,0,5,5,224,212,5,5,36,236,192,0,0,0,5,5,38,236,5,5,217,212,5,5,43,236,5,5,42,236,5,5,45,236,5,5,222,212,5,5,40,236,5,5,39,236,192,0,0,0,192,0,0,0,5,5,221,212,5,5,216,212,5,5,41,236,5,5,219,212,5,5,47,236,5,5,49,236,192,0,0,0,5,5,44,236,5,5,37,236,5,5,220,212,192,0,0,0,192,0,0,0,5,5,95,214,5,5,215,212,192,0,0,0,192,0,0,0,5,5,50,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,238,5,5,88,214,192,0,0,0,5,5,106,238,192,0,0,0,5,5,89,214,192,0,0,0,192,0,0,0,5,5,91,214,5,5,109,238,192,0,0,0,5,5,101,238,5,5,223,212,5,5,107,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,238,192,0,0,0,5,5,63,211,5,5,94,214,192,0,0,0,192,0,0,0,5,5,90,214,192,0,0,0,5,5,92,214,5,5,93,214,192,0,0,0,5,5,168,215,5,5,108,238,5,5,102,238,5,5,96,214,192,0,0,0,5,5,105,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,240,5,5,194,240,192,0,0,0,192,0,0,0,5,5,204,240,5,5,166,215,5,5,196,240,5,5,170,215,5,5,202,240,5,5,193,240,5,5,190,240,5,5,205,240,5,5,191,216,5,5,171,215,5,5,201,240,5,5,191,240,5,5,169,215,5,5,195,240,5,5,173,215,5,5,192,240,5,5,197,240,5,5,172,215,5,5,200,240,5,5,203,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,242,5,5,174,242,5,5,158,242,5,5,165,242,5,5,163,242,192,0,0,0,192,0,0,0,5,5,189,216,5,5,170,242,5,5,198,240,192,0,0,0,5,5,161,242,192,0,0,0,5,5,171,242,5,5,188,216,5,5,160,242,5,5,159,242,5,5,169,242,5,5,166,242,5,5,168,242,192,0,0,0,5,5,156,242,5,5,172,242,5,5,186,216,192,0,0,0,5,5,167,242,5,5,176,242,5,5,164,242,5,5,190,216,5,5,187,216,5,5,162,242,5,5,157,242,5,5,175,242,5,5,167,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,244,192,0,0,0,192,0,0,0,5,5,64,244,5,5,70,244,5,5,155,217,5,5,68,244,5,5,67,244,5,5,157,217,5,5,73,244,5,5,156,217,192,0,0,0,5,5,74,244,5,5,71,244,5,5,153,217,5,5,72,244,5,5,65,244,5,5,154,217,5,5,152,217,5,5,164,245,5,5,69,244,192,0,0,0,192,0,0,0,5,5,75,244,192,0,0,0,192,0,0,0,5,5,161,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,218,5,5,58,218,5,5,163,245,192,0,0,0,5,5,165,245,5,5,162,245,5,5,59,218,5,5,56,218,5,5,57,218,5,5,61,218,192,0,0,0,192,0,0,0,5,5,193,218,192,0,0,0,5,5,223,246,192,0,0,0,5,5,222,246,5,5,220,246,5,5,219,246,5,5,221,246,192,0,0,0,5,5,192,218,5,5,194,218,192,0,0,0,192,0,0,0,5,5,25,219,192,0,0,0,192,0,0,0,5,5,185,247,5,5,184,247,192,0,0,0,192,0,0,0,5,5,109,248,192,0,0,0,5,5,111,248,5,5,113,248,5,5,112,248,5,5,110,248,192,0,0,0,192,0,0,0,5,5,105,219,5,5,104,219,192,0,0,0,192,0,0,0,5,5,153,219,5,5,152,219,5,5,154,219,5,5,253,248,5,5,252,248,192,0,0,0,5,5,170,249,5,5,103,249,5,5,171,249,5,5,221,219,192,0,0,0,5,5,222,219,5,5,219,249,192,0,0,0,192,0,0,0,5,5,5,220,5,5,105,200,192,0,0,0,5,5,195,222,192,0,0,0,192,0,0,0,5,5,93,224,5,5,94,224,5,5,92,224,192,0,0,0,192,0,0,0,5,5,70,204,192,0,0,0,5,5,95,224,5,5,96,224,5,5,97,224,192,0,0,0,192,0,0,0,5,5,60,226,5,5,66,226,192,0,0,0,192,0,0,0,5,5,64,226,5,5,231,205,5,5,62,226,192,0,0,0,5,5,63,226,5,5,65,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,226,5,5,208,207,192,0,0,0,5,5,138,228,5,5,210,207,5,5,140,228,5,5,209,207,5,5,139,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,231,5,5,145,209,192,0,0,0,5,5,16,231,5,5,13,231,5,5,141,228,192,0,0,0,5,5,146,209,192,0,0,0,192,0,0,0,5,5,15,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,233,192,0,0,0,5,5,67,211,5,5,176,233,5,5,68,211,5,5,177,233,5,5,69,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,212,5,5,55,236,5,5,52,236,5,5,54,236,5,5,227,212,5,5,228,212,5,5,53,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,238,192,0,0,0,192,0,0,0,5,5,111,238,192,0,0,0,5,5,97,214,5,5,113,238,5,5,112,238,192,0,0,0,5,5,0,135,192,0,0,0,5,5,209,240,5,5,210,240,5,5,206,240,192,0,0,0,5,5,207,240,5,5,174,215,5,5,175,215,5,5,208,240,192,0,0,0,5,5,197,216,192,0,0,0,192,0,0,0,5,5,193,216,5,5,198,216,5,5,194,216,5,5,196,216,5,5,192,216,192,0,0,0,5,5,195,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,217,5,5,177,242,192,0,0,0,5,5,167,245,192,0,0,0,5,5,166,245,192,0,0,0,5,5,224,246,5,5,195,218,5,5,196,218,5,5,115,248,5,5,186,247,192,0,0,0,5,5,114,248,192,0,0,0,5,5,172,249,5,5,240,249,5,5,106,200,192,0,0,0,192,0,0,0,5,5,111,201,192,0,0,0,5,5,196,222,5,5,221,202,192,0,0,0,5,5,73,204,5,5,100,224,5,5,71,204,5,5,98,224,5,5,76,204,5,5,72,204,5,5,77,204,5,5,75,204,5,5,99,224,5,5,74,204,5,5,235,205,5,5,234,205,5,5,77,226,5,5,243,205,5,5,70,226,5,5,76,226,5,5,239,205,5,5,69,226,5,5,75,226,5,5,73,226,5,5,238,205,5,5,240,205,5,5,72,226,5,5,233,205,5,5,71,226,5,5,244,205,5,5,241,205,5,5,245,205,5,5,242,205,5,5,68,226,5,5,67,226,5,5,74,226,5,5,236,205,5,5,232,205,5,5,237,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,228,5,5,149,228,192,0,0,0,5,5,151,209,5,5,148,228,192,0,0,0,5,5,214,207,5,5,221,207,5,5,218,207,5,5,224,207,5,5,223,207,5,5,219,207,192,0,0,0,5,5,142,228,5,5,145,228,192,0,0,0,5,5,144,228,5,5,215,207,5,5,146,228,5,5,155,228,5,5,216,207,5,5,143,228,5,5,152,228,5,5,153,228,5,5,217,207,5,5,150,228,5,5,222,207,5,5,212,207,5,5,220,207,5,5,147,228,5,5,211,207,5,5,151,228,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,231,5,5,24,231,5,5,148,209,5,5,31,231,5,5,28,231,5,5,20,231,5,5,29,231,5,5,150,209,5,5,21,231,192,0,0,0,5,5,17,231,192,0,0,0,192,0,0,0,5,5,75,211,5,5,26,231,192,0,0,0,5,5,147,209,5,5,32,231,192,0,0,0,5,5,154,209,5,5,156,209,5,5,19,231,192,0,0,0,192,0,0,0,5,5,155,209,5,5,22,231,5,5,149,209,5,5,30,231,5,5,23,231,5,5,27,231,192,0,0,0,5,5,25,231,5,5,152,209,5,5,18,231,5,5,157,209,5,5,213,207,5,5,153,209,5,5,158,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,211,5,5,185,233,5,5,187,233,5,5,189,233,5,5,193,233,192,0,0,0,5,5,183,233,5,5,181,233,5,5,73,211,192,0,0,0,5,5,188,233,5,5,192,233,5,5,184,233,5,5,180,233,192,0,0,0,5,5,179,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,233,5,5,182,233,5,5,186,233,5,5,74,211,192,0,0,0,5,5,72,211,5,5,194,233,5,5,70,211,5,5,191,233,192,0,0,0,5,5,72,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,212,5,5,64,236,5,5,110,214,5,5,74,236,5,5,234,212,5,5,78,236,5,5,240,212,5,5,59,236,192,0,0,0,192,0,0,0,5,5,75,236,5,5,56,236,192,0,0,0,5,5,77,236,5,5,60,236,192,0,0,0,5,5,247,212,5,5,244,212,5,5,76,236,5,5,70,236,5,5,230,212,5,5,238,212,5,5,237,212,192,0,0,0,5,5,236,212,5,5,242,212,192,0,0,0,5,5,57,236,5,5,243,212,5,5,71,236,5,5,239,212,5,5,229,212,5,5,73,236,5,5,232,212,5,5,233,212,5,5,241,212,5,5,62,236,5,5,61,236,5,5,58,236,192,0,0,0,5,5,66,236,5,5,63,236,5,5,67,236,5,5,246,212,192,0,0,0,5,5,79,236,5,5,235,212,5,5,68,236,5,5,69,236,192,0,0,0,5,5,65,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,238,5,5,102,214,5,5,111,214,5,5,107,214,5,5,115,238,192,0,0,0,5,5,104,214,5,5,108,214,5,5,127,238,5,5,98,214,5,5,119,238,192,0,0,0,5,5,106,214,192,0,0,0,192,0,0,0,5,5,122,238,5,5,117,238,5,5,105,214,5,5,109,214,5,5,116,238,192,0,0,0,5,5,103,214,192,0,0,0,5,5,126,238,5,5,100,214,5,5,125,238,5,5,124,238,5,5,112,214,5,5,132,237,5,5,99,214,192,0,0,0,5,5,123,238,5,5,114,238,192,0,0,0,5,5,113,214,5,5,121,238,5,5,101,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,215,5,5,183,215,5,5,176,215,5,5,223,240,5,5,214,240,5,5,226,240,5,5,218,240,5,5,224,240,5,5,184,215,5,5,177,215,5,5,211,240,5,5,217,240,5,5,227,240,5,5,220,240,5,5,225,240,5,5,213,240,192,0,0,0,192,0,0,0,5,5,221,240,5,5,179,215,5,5,219,240,5,5,182,215,5,5,181,215,5,5,215,240,5,5,216,240,5,5,212,240,5,5,222,240,5,5,180,215,5,5,229,240,5,5,228,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,242,5,5,184,242,5,5,205,216,192,0,0,0,5,5,178,242,5,5,199,216,5,5,215,216,5,5,190,242,5,5,207,216,5,5,203,216,5,5,181,242,5,5,210,216,5,5,213,216,5,5,192,242,5,5,202,216,5,5,183,242,5,5,211,216,5,5,194,242,5,5,191,242,5,5,179,242,5,5,206,216,5,5,200,216,5,5,214,216,5,5,186,242,5,5,209,216,5,5,180,242,5,5,204,216,5,5,193,242,5,5,208,216,5,5,201,216,5,5,187,242,5,5,212,216,5,5,185,242,192,0,0,0,192,0,0,0,5,5,189,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,244,5,5,83,244,5,5,164,217,5,5,86,244,5,5,159,217,5,5,160,217,5,5,78,244,5,5,85,244,5,5,80,244,5,5,165,217,5,5,162,217,192,0,0,0,5,5,76,244,192,0,0,0,5,5,161,217,5,5,82,244,5,5,84,244,5,5,163,217,5,5,81,244,5,5,79,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,245,5,5,65,218,5,5,66,218,5,5,62,218,192,0,0,0,5,5,63,218,192,0,0,0,5,5,173,245,5,5,171,245,192,0,0,0,5,5,175,245,5,5,68,218,5,5,176,245,5,5,169,245,5,5,168,245,5,5,172,245,5,5,170,245,5,5,64,218,5,5,174,245,5,5,225,246,5,5,199,218,5,5,198,218,5,5,226,246,192,0,0,0,5,5,228,246,5,5,227,246,5,5,200,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,247,5,5,188,247,5,5,189,247,192,0,0,0,5,5,187,247,5,5,190,247,5,5,27,219,5,5,192,247,192,0,0,0,5,5,26,219,192,0,0,0,5,5,116,248,192,0,0,0,5,5,155,219,5,5,157,219,5,5,254,248,5,5,156,219,5,5,104,249,5,5,174,249,5,5,176,249,5,5,173,249,5,5,175,249,5,5,241,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,200,192,0,0,0,5,5,78,204,5,5,195,225,5,5,246,205,192,0,0,0,192,0,0,0,5,5,225,207,5,5,34,231,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,240,5,5,216,216,5,5,195,242,192,0,0,0,192,0,0,0,5,5,166,217,192,0,0,0,5,5,179,245,5,5,178,245,5,5,201,218,5,5,193,247,192,0,0,0,5,5,117,248,5,5,190,219,5,5,171,220,192,0,0,0,192,0,0,0,5,5,222,202,5,5,112,201,192,0,0,0,192,0,0,0,5,5,101,224,192,0,0,0,192,0,0,0,5,5,83,226,5,5,78,226,5,5,82,226,5,5,80,226,5,5,247,205,5,5,81,226,5,5,79,226,192,0,0,0,5,5,157,228,192,0,0,0,5,5,36,231,5,5,37,231,5,5,197,233,5,5,198,233,5,5,77,211,5,5,78,211,5,5,196,233,5,5,199,233,5,5,195,233,5,5,76,211,192,0,0,0,5,5,248,212,192,0,0,0,5,5,79,211,5,5,80,236,192,0,0,0,5,5,114,214,5,5,128,238,5,5,115,214,192,0,0,0,5,5,185,215,5,5,233,240,5,5,231,240,5,5,232,240,5,5,198,242,5,5,197,242,5,5,196,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,245,192,0,0,0,5,5,67,218,5,5,181,245,5,5,118,248,5,5,191,219,5,5,105,249,5,5,108,200,5,5,224,202,5,5,223,202,5,5,103,224,5,5,79,204,192,0,0,0,192,0,0,0,5,5,102,224,5,5,85,226,192,0,0,0,5,5,248,205,5,5,158,228,5,5,84,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,207,5,5,161,228,5,5,159,228,5,5,160,228,5,5,226,207,192,0,0,0,5,5,39,231,5,5,40,231,5,5,38,231,192,0,0,0,5,5,82,211,5,5,201,233,5,5,200,233,5,5,202,233,5,5,81,211,5,5,80,211,192,0,0,0,192,0,0,0,5,5,129,238,5,5,131,238,192,0,0,0,5,5,116,214,5,5,130,238,5,5,234,240,5,5,186,215,5,5,88,244,192,0,0,0,5,5,87,244,5,5,69,218,5,5,182,245,5,5,71,218,5,5,70,218,5,5,229,246,5,5,194,247,5,5,28,219,5,5,109,200,5,5,104,224,5,5,80,204,5,5,88,226,5,5,250,205,5,5,87,226,5,5,86,226,192,0,0,0,5,5,249,205,192,0,0,0,5,5,167,228,192,0,0,0,5,5,169,228,5,5,162,228,5,5,163,228,5,5,228,207,5,5,164,228,5,5,229,207,5,5,168,228,5,5,165,228,5,5,166,228,5,5,230,207,192,0,0,0,5,5,160,209,5,5,161,209,192,0,0,0,5,5,41,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,233,5,5,204,233,192,0,0,0,5,5,84,236,5,5,251,212,5,5,249,212,5,5,250,212,5,5,81,236,5,5,82,236,192,0,0,0,5,5,83,236,5,5,136,238,192,0,0,0,5,5,137,238,5,5,117,214,5,5,134,238,5,5,133,238,5,5,135,238,5,5,132,238,5,5,189,215,5,5,235,240,5,5,187,215,5,5,188,215,5,5,200,242,5,5,217,216,5,5,199,242,5,5,198,243,192,0,0,0,5,5,89,244,5,5,90,244,5,5,167,217,192,0,0,0,5,5,168,217,5,5,218,216,5,5,183,245,5,5,184,245,5,5,230,246,5,5,202,218,5,5,110,200,192,0,0,0,5,5,111,200,5,5,81,204,5,5,225,202,5,5,251,205,5,5,105,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,209,5,5,112,200,5,5,83,204,5,5,106,224,5,5,107,224,5,5,82,204,5,5,84,204,5,5,113,200,192,0,0,0,5,5,108,224,5,5,253,205,5,5,89,226,5,5,255,205,5,5,252,205,5,5,254,205,192,0,0,0,5,5,172,228,5,5,231,207,192,0,0,0,5,5,171,228,5,5,170,228,192,0,0,0,5,5,205,233,192,0,0,0,192,0,0,0,5,5,85,236,192,0,0,0,5,5,118,214,192,0,0,0,5,5,190,215,5,5,237,240,5,5,236,240,192,0,0,0,5,5,201,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,247,192,0,0,0,192,0,0,0,5,5,114,200,5,5,116,221,5,5,197,222,5,5,85,204,5,5,109,224,192,0,0,0,5,5,91,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,206,5,5,90,226,5,5,3,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,5,5,233,207,5,5,173,228,5,5,175,228,192,0,0,0,5,5,232,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,231,5,5,44,231,5,5,42,231,5,5,163,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,211,192,0,0,0,5,5,84,211,192,0,0,0,5,5,253,212,192,0,0,0,5,5,87,236,5,5,86,236,5,5,252,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,238,192,0,0,0,192,0,0,0,5,5,139,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,240,192,0,0,0,192,0,0,0,5,5,222,216,5,5,221,216,5,5,219,216,5,5,220,216,5,5,223,216,192,0,0,0,5,5,91,244,5,5,170,217,5,5,169,217,5,5,185,245,5,5,231,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,219,5,5,106,219,5,5,115,200,192,0,0,0,192,0,0,0,5,5,144,225,192,0,0,0,5,5,86,211,5,5,164,209,5,5,85,211,5,5,254,212,192,0,0,0,5,5,116,200,5,5,76,220,5,5,117,200,5,5,118,200,192,0,0,0,192,0,0,0,5,5,198,222,5,5,119,221,192,0,0,0,5,5,120,221,5,5,114,201,192,0,0,0,5,5,117,221,5,5,113,201,192,0,0,0,5,5,116,201,5,5,118,221,5,5,118,201,5,5,117,201,5,5,121,221,5,5,115,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,202,5,5,228,202,5,5,200,222,192,0,0,0,5,5,227,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,202,5,5,234,202,5,5,231,202,192,0,0,0,5,5,203,222,5,5,199,222,5,5,235,202,192,0,0,0,5,5,229,202,5,5,119,201,192,0,0,0,5,5,233,202,5,5,202,222,192,0,0,0,192,0,0,0,5,5,201,222,192,0,0,0,5,5,226,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,224,5,5,89,204,5,5,90,204,5,5,117,224,192,0,0,0,5,5,111,224,5,5,114,224,5,5,123,224,5,5,121,224,192,0,0,0,5,5,91,204,5,5,127,224,5,5,94,204,5,5,124,224,5,5,116,224,5,5,113,224,192,0,0,0,192,0,0,0,5,5,46,231,5,5,122,224,5,5,86,204,5,5,125,224,5,5,110,224,5,5,119,224,5,5,88,204,5,5,93,204,5,5,120,224,5,5,97,204,5,5,95,204,192,0,0,0,5,5,112,224,5,5,92,204,192,0,0,0,5,5,118,224,5,5,96,204,5,5,87,204,5,5,126,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,206,192,0,0,0,5,5,17,206,5,5,6,206,5,5,4,206,5,5,93,226,5,5,12,206,5,5,9,206,5,5,95,226,192,0,0,0,192,0,0,0,5,5,11,206,5,5,94,226,5,5,92,226,5,5,97,226,5,5,16,206,5,5,14,206,5,5,45,231,192,0,0,0,5,5,98,226,5,5,96,226,5,5,5,206,192,0,0,0,192,0,0,0,5,5,7,206,5,5,10,206,192,0,0,0,5,5,13,206,192,0,0,0,5,5,15,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,228,5,5,235,207,192,0,0,0,5,5,176,228,5,5,178,228,192,0,0,0,5,5,179,228,192,0,0,0,5,5,187,228,5,5,183,228,5,5,181,228,192,0,0,0,5,5,184,228,5,5,188,228,5,5,236,207,5,5,240,207,5,5,177,228,192,0,0,0,5,5,186,228,192,0,0,0,5,5,238,207,192,0,0,0,5,5,237,207,5,5,182,228,5,5,180,228,192,0,0,0,5,5,234,207,5,5,239,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,209,5,5,54,231,192,0,0,0,192,0,0,0,5,5,52,231,5,5,172,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,231,5,5,219,233,192,0,0,0,5,5,171,209,5,5,51,231,192,0,0,0,192,0,0,0,5,5,48,231,5,5,167,209,5,5,173,209,5,5,53,231,5,5,169,209,5,5,50,231,5,5,255,212,5,5,168,209,5,5,49,231,5,5,174,209,5,5,166,209,5,5,165,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,233,5,5,209,233,192,0,0,0,5,5,215,233,192,0,0,0,5,5,207,233,5,5,220,233,5,5,212,233,192,0,0,0,5,5,206,233,5,5,90,211,5,5,96,211,5,5,217,233,192,0,0,0,5,5,210,233,192,0,0,0,5,5,93,211,192,0,0,0,192,0,0,0,5,5,91,211,5,5,218,233,5,5,88,211,5,5,87,211,5,5,213,233,5,5,92,211,5,5,175,209,192,0,0,0,5,5,216,233,5,5,208,233,5,5,89,211,5,5,94,211,5,5,95,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,213,5,5,2,213,192,0,0,0,5,5,7,213,5,5,90,236,192,0,0,0,192,0,0,0,5,5,89,236,5,5,91,236,5,5,4,213,5,5,88,236,5,5,5,213,5,5,94,236,5,5,93,236,5,5,92,236,192,0,0,0,5,5,3,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,238,192,0,0,0,5,5,146,238,5,5,124,214,5,5,145,238,5,5,123,214,5,5,119,214,5,5,120,214,5,5,121,214,5,5,142,238,5,5,141,238,5,5,122,214,192,0,0,0,5,5,144,238,5,5,140,238,192,0,0,0,192,0,0,0,5,5,240,240,5,5,250,240,5,5,193,215,5,5,192,215,192,0,0,0,5,5,244,240,5,5,246,240,192,0,0,0,5,5,241,240,192,0,0,0,5,5,245,240,5,5,239,240,5,5,248,240,5,5,191,215,5,5,247,240,5,5,243,240,192,0,0,0,5,5,249,240,192,0,0,0,5,5,242,240,5,5,226,216,5,5,202,242,5,5,208,242,5,5,230,216,5,5,232,216,5,5,229,216,5,5,228,216,192,0,0,0,5,5,227,216,5,5,225,216,5,5,203,242,5,5,206,242,5,5,224,216,5,5,207,242,192,0,0,0,5,5,231,216,5,5,205,242,192,0,0,0,5,5,204,242,5,5,171,217,192,0,0,0,5,5,172,217,5,5,94,244,5,5,92,244,5,5,93,244,192,0,0,0,192,0,0,0,5,5,187,245,192,0,0,0,5,5,186,245,5,5,72,218,5,5,233,246,5,5,203,218,5,5,232,246,192,0,0,0,5,5,196,247,5,5,119,248,5,5,108,219,5,5,177,249,5,5,178,249,5,5,158,219,5,5,119,200,192,0,0,0,5,5,236,202,5,5,55,231,5,5,8,213,5,5,233,216,5,5,209,242,5,5,120,200,192,0,0,0,5,5,19,206,5,5,18,206,5,5,56,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,240,5,5,121,200,5,5,98,204,192,0,0,0,192,0,0,0,5,5,57,231,5,5,58,231,5,5,59,231,5,5,9,213,5,5,194,215,5,5,122,200,192,0,0,0,5,5,237,202,5,5,128,224,5,5,20,206,5,5,99,226,5,5,241,207,192,0,0,0,5,5,60,231,5,5,97,211,192,0,0,0,5,5,10,213,5,5,195,215,5,5,234,216,5,5,173,217,5,5,234,246,5,5,123,200,5,5,238,202,192,0,0,0,192,0,0,0,5,5,21,206,5,5,189,228,5,5,176,209,192,0,0,0,5,5,11,213,5,5,95,236,5,5,147,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,200,5,5,177,209,5,5,221,233,5,5,12,213,5,5,125,200,5,5,204,222,5,5,129,224,5,5,99,204,192,0,0,0,192,0,0,0,5,5,101,226,192,0,0,0,192,0,0,0,5,5,24,206,192,0,0,0,5,5,22,206,5,5,23,206,5,5,25,206,192,0,0,0,192,0,0,0,5,5,100,226,192,0,0,0,192,0,0,0,5,5,194,228,5,5,191,228,5,5,193,228,5,5,242,207,5,5,244,207,5,5,243,207,5,5,190,228,5,5,245,207,5,5,192,228,192,0,0,0,5,5,61,231,5,5,62,231,192,0,0,0,5,5,63,231,5,5,224,233,192,0,0,0,5,5,225,233,192,0,0,0,5,5,223,233,5,5,226,233,192,0,0,0,5,5,98,211,192,0,0,0,5,5,222,233,192,0,0,0,5,5,13,213,192,0,0,0,192,0,0,0,5,5,152,238,5,5,148,238,5,5,151,238,5,5,153,238,5,5,150,238,5,5,149,238,192,0,0,0,5,5,252,240,5,5,253,240,5,5,254,240,5,5,196,215,5,5,197,215,5,5,211,242,5,5,210,242,5,5,212,242,192,0,0,0,5,5,96,244,5,5,95,244,192,0,0,0,5,5,189,245,192,0,0,0,5,5,190,245,5,5,188,245,192,0,0,0,5,5,204,218,192,0,0,0,5,5,235,246,5,5,236,246,192,0,0,0,5,5,120,248,5,5,255,248,5,5,106,249,5,5,126,200,5,5,120,201,192,0,0,0,5,5,235,216,5,5,127,200,192,0,0,0,5,5,195,228,5,5,64,231,192,0,0,0,5,5,198,219,5,5,172,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,220,5,5,175,220,5,5,128,200,5,5,176,220,5,5,174,220,192,0,0,0,192,0,0,0,5,5,129,221,5,5,130,221,5,5,124,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,221,5,5,122,201,192,0,0,0,5,5,123,201,5,5,125,221,5,5,123,221,5,5,122,221,5,5,126,221,5,5,121,201,5,5,127,221,5,5,130,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,222,5,5,241,202,5,5,208,222,5,5,210,222,192,0,0,0,5,5,240,202,5,5,215,222,5,5,244,202,5,5,205,222,5,5,219,222,5,5,225,222,5,5,251,202,5,5,222,222,5,5,248,202,192,0,0,0,5,5,212,222,5,5,218,222,5,5,220,222,192,0,0,0,5,5,207,222,5,5,247,202,5,5,242,202,5,5,213,222,5,5,249,202,5,5,252,202,5,5,246,202,192,0,0,0,5,5,239,202,5,5,217,222,5,5,211,222,5,5,224,222,5,5,254,202,5,5,250,202,5,5,245,202,5,5,216,222,5,5,26,206,5,5,214,222,5,5,243,202,5,5,253,202,192,0,0,0,5,5,206,222,192,0,0,0,5,5,221,222,5,5,223,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,204,5,5,110,204,5,5,118,204,5,5,115,204,5,5,137,224,5,5,140,224,5,5,111,204,192,0,0,0,5,5,131,224,192,0,0,0,5,5,104,204,5,5,114,204,192,0,0,0,5,5,117,204,5,5,119,204,5,5,152,224,5,5,143,224,192,0,0,0,5,5,103,204,5,5,151,224,5,5,107,204,5,5,105,204,5,5,100,204,5,5,135,224,192,0,0,0,5,5,150,224,5,5,139,224,5,5,142,224,5,5,155,224,192,0,0,0,5,5,120,204,5,5,149,224,5,5,112,204,5,5,144,224,5,5,154,224,5,5,141,224,5,5,145,224,5,5,148,224,192,0,0,0,192,0,0,0,5,5,133,224,5,5,153,224,5,5,147,224,192,0,0,0,192,0,0,0,5,5,132,224,192,0,0,0,5,5,136,224,5,5,113,204,5,5,108,204,5,5,101,204,5,5,106,204,5,5,102,204,5,5,121,204,5,5,134,224,5,5,118,226,5,5,109,204,192,0,0,0,192,0,0,0,5,5,146,224,5,5,29,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,226,5,5,40,206,192,0,0,0,5,5,105,226,192,0,0,0,5,5,116,226,5,5,112,226,192,0,0,0,5,5,131,226,192,0,0,0,5,5,123,226,192,0,0,0,5,5,113,226,192,0,0,0,5,5,122,226,5,5,107,226,5,5,111,226,5,5,134,226,5,5,43,206,5,5,126,226,5,5,117,226,5,5,27,206,5,5,132,226,5,5,103,226,192,0,0,0,5,5,125,226,192,0,0,0,5,5,42,206,5,5,37,206,5,5,102,226,5,5,35,206,5,5,34,206,5,5,39,206,5,5,124,226,5,5,31,206,5,5,38,206,5,5,138,224,5,5,65,231,5,5,119,226,192,0,0,0,192,0,0,0,5,5,109,226,5,5,41,206,5,5,110,226,5,5,114,226,5,5,44,206,5,5,104,226,5,5,128,226,192,0,0,0,5,5,127,226,5,5,135,226,5,5,33,206,5,5,30,206,5,5,133,226,5,5,129,226,5,5,120,226,5,5,115,226,5,5,36,206,5,5,32,206,5,5,106,226,5,5,28,206,5,5,130,226,5,5,29,206,192,0,0,0,5,5,108,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,228,5,5,203,228,5,5,208,228,5,5,228,228,5,5,5,208,5,5,249,207,192,0,0,0,5,5,200,228,5,5,6,208,5,5,7,208,5,5,211,228,5,5,218,228,5,5,224,228,192,0,0,0,5,5,205,228,192,0,0,0,5,5,212,228,192,0,0,0,192,0,0,0,5,5,8,208,5,5,226,228,5,5,221,228,5,5,3,208,5,5,255,207,5,5,217,228,5,5,213,228,5,5,199,228,5,5,246,207,5,5,204,228,5,5,196,228,192,0,0,0,5,5,254,207,5,5,2,208,5,5,209,228,5,5,206,228,5,5,251,207,5,5,222,228,5,5,248,207,5,5,207,228,5,5,229,228,5,5,215,228,192,0,0,0,5,5,214,228,5,5,247,207,192,0,0,0,5,5,4,208,192,0,0,0,5,5,250,207,5,5,197,228,5,5,202,228,5,5,219,228,5,5,225,228,5,5,9,208,5,5,198,228,5,5,210,228,5,5,216,228,5,5,253,207,192,0,0,0,192,0,0,0,5,5,227,228,5,5,220,228,5,5,223,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,207,192,0,0,0,5,5,81,231,5,5,69,231,5,5,185,209,5,5,98,231,5,5,106,231,5,5,109,231,5,5,183,209,5,5,77,231,5,5,102,231,5,5,78,231,5,5,92,231,5,5,196,209,5,5,88,231,5,5,193,209,192,0,0,0,5,5,89,231,5,5,66,231,192,0,0,0,5,5,103,231,192,0,0,0,192,0,0,0,5,5,202,209,5,5,100,231,5,5,90,231,5,5,111,231,5,5,85,231,5,5,4,234,192,0,0,0,5,5,114,231,5,5,200,209,5,5,83,231,5,5,95,231,5,5,203,209,5,5,182,209,5,5,87,231,5,5,112,231,5,5,80,231,5,5,73,231,5,5,84,231,192,0,0,0,5,5,72,231,5,5,70,231,5,5,178,209,5,5,104,231,5,5,79,231,5,5,107,231,192,0,0,0,5,5,108,231,5,5,186,209,5,5,191,209,5,5,187,209,5,5,195,209,5,5,99,231,5,5,188,209,5,5,91,231,5,5,75,231,192,0,0,0,5,5,180,209,5,5,67,231,5,5,101,231,5,5,110,231,5,5,74,231,5,5,194,209,5,5,115,231,5,5,86,231,192,0,0,0,5,5,82,231,192,0,0,0,5,5,179,209,5,5,199,209,192,0,0,0,5,5,97,231,5,5,201,209,192,0,0,0,5,5,93,231,5,5,190,209,5,5,184,209,5,5,192,209,5,5,181,209,5,5,198,209,5,5,94,231,5,5,76,231,5,5,96,231,5,5,71,231,5,5,105,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,234,192,0,0,0,5,5,25,234,5,5,52,211,5,5,8,234,192,0,0,0,5,5,6,234,5,5,239,233,5,5,102,211,5,5,255,233,5,5,21,234,5,5,251,233,5,5,110,211,5,5,20,234,5,5,249,233,5,5,197,209,5,5,11,234,5,5,250,233,5,5,18,234,5,5,109,211,5,5,101,211,192,0,0,0,5,5,228,233,5,5,236,233,192,0,0,0,5,5,7,234,5,5,253,233,5,5,24,234,5,5,2,234,5,5,115,211,5,5,19,234,192,0,0,0,5,5,106,211,192,0,0,0,5,5,5,234,5,5,13,234,5,5,240,233,5,5,12,234,192,0,0,0,5,5,29,234,5,5,235,233,5,5,14,234,192,0,0,0,5,5,27,234,192,0,0,0,5,5,229,233,5,5,189,209,192,0,0,0,5,5,243,233,5,5,242,233,5,5,108,211,192,0,0,0,5,5,246,233,5,5,248,233,5,5,9,234,5,5,26,234,5,5,111,211,192,0,0,0,5,5,112,211,192,0,0,0,5,5,234,233,5,5,104,211,5,5,238,233,5,5,22,234,5,5,113,211,192,0,0,0,5,5,105,211,5,5,107,211,5,5,114,211,5,5,28,234,5,5,15,234,5,5,10,234,192,0,0,0,192,0,0,0,5,5,245,233,5,5,244,233,5,5,103,211,5,5,230,233,5,5,100,211,5,5,254,233,5,5,231,233,5,5,252,233,192,0,0,0,192,0,0,0,5,5,241,233,5,5,23,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,233,5,5,17,234,5,5,232,233,5,5,26,213,5,5,135,236,192,0,0,0,192,0,0,0,5,5,118,236,192,0,0,0,192,0,0,0,5,5,96,236,5,5,126,236,5,5,18,213,5,5,111,236,5,5,121,236,5,5,21,213,5,5,114,236,5,5,19,213,5,5,99,236,5,5,129,236,5,5,98,236,5,5,117,236,192,0,0,0,5,5,97,236,192,0,0,0,192,0,0,0,5,5,115,236,5,5,124,236,5,5,122,236,5,5,110,236,5,5,105,236,5,5,103,236,192,0,0,0,5,5,104,236,5,5,123,236,5,5,134,236,5,5,112,236,5,5,20,213,192,0,0,0,5,5,107,236,192,0,0,0,5,5,127,236,192,0,0,0,5,5,23,213,5,5,106,236,5,5,100,236,5,5,116,236,5,5,27,213,192,0,0,0,192,0,0,0,5,5,15,213,5,5,24,213,5,5,108,236,5,5,102,236,192,0,0,0,5,5,17,213,5,5,16,234,5,5,16,213,5,5,119,236,192,0,0,0,5,5,14,213,5,5,29,213,5,5,22,213,5,5,120,236,5,5,109,236,5,5,101,236,5,5,128,236,5,5,113,236,5,5,28,213,5,5,132,236,5,5,25,213,5,5,131,236,192,0,0,0,5,5,125,236,5,5,130,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,238,5,5,194,238,5,5,181,238,5,5,180,238,5,5,176,238,5,5,136,214,192,0,0,0,5,5,128,214,5,5,196,238,5,5,195,238,5,5,227,233,5,5,173,238,5,5,177,238,5,5,171,238,192,0,0,0,5,5,190,238,5,5,175,238,192,0,0,0,5,5,197,238,5,5,168,238,5,5,166,238,5,5,178,238,5,5,188,238,5,5,183,238,5,5,138,214,5,5,157,238,192,0,0,0,5,5,187,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,214,5,5,247,233,5,5,169,238,5,5,160,238,5,5,163,238,5,5,201,238,5,5,170,238,5,5,161,238,5,5,159,238,5,5,156,238,192,0,0,0,5,5,132,214,5,5,179,238,5,5,131,214,5,5,135,214,5,5,174,238,5,5,182,238,5,5,125,214,5,5,198,238,5,5,202,238,5,5,127,214,192,0,0,0,5,5,165,238,5,5,185,238,5,5,189,238,5,5,162,238,5,5,199,238,5,5,134,214,192,0,0,0,5,5,133,214,5,5,154,238,5,5,137,214,5,5,192,238,5,5,164,238,5,5,184,238,5,5,158,238,5,5,172,238,5,5,167,238,5,5,129,214,5,5,130,214,5,5,186,238,5,5,203,238,5,5,200,238,5,5,191,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,238,192,0,0,0,5,5,126,214,5,5,17,241,192,0,0,0,5,5,8,241,5,5,11,241,192,0,0,0,5,5,203,215,5,5,13,241,5,5,2,241,5,5,9,241,5,5,15,241,5,5,200,215,5,5,204,215,5,5,198,215,192,0,0,0,192,0,0,0,5,5,4,241,5,5,20,241,192,0,0,0,192,0,0,0,5,5,14,241,192,0,0,0,5,5,5,241,5,5,29,241,5,5,23,241,5,5,255,240,5,5,231,242,5,5,7,241,5,5,199,215,192,0,0,0,5,5,18,241,192,0,0,0,5,5,28,241,5,5,207,215,192,0,0,0,5,5,25,241,5,5,6,241,5,5,12,241,5,5,16,241,5,5,10,241,5,5,30,241,5,5,27,241,5,5,24,241,5,5,201,215,5,5,202,215,5,5,206,215,5,5,3,241,5,5,31,241,5,5,205,215,5,5,21,241,192,0,0,0,192,0,0,0,5,5,19,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,241,5,5,244,242,5,5,225,242,5,5,230,242,5,5,243,242,5,5,229,242,5,5,221,242,5,5,226,242,192,0,0,0,5,5,238,216,192,0,0,0,5,5,214,242,5,5,238,242,5,5,240,242,5,5,213,242,5,5,237,216,5,5,242,242,5,5,234,242,5,5,244,216,5,5,241,242,5,5,227,242,5,5,246,216,5,5,219,242,5,5,26,241,5,5,235,242,5,5,232,242,5,5,215,242,5,5,246,242,5,5,240,216,192,0,0,0,192,0,0,0,5,5,241,216,5,5,217,242,5,5,233,242,192,0,0,0,5,5,245,242,5,5,236,242,5,5,223,242,5,5,243,216,5,5,239,216,5,5,237,242,5,5,224,242,5,5,247,242,5,5,218,242,5,5,228,242,5,5,239,242,5,5,220,242,5,5,222,242,192,0,0,0,5,5,182,217,5,5,216,242,5,5,245,216,5,5,175,217,5,5,236,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,216,5,5,179,217,5,5,112,244,192,0,0,0,5,5,102,244,5,5,97,244,5,5,103,244,5,5,113,244,5,5,117,244,5,5,116,244,5,5,181,217,5,5,180,217,192,0,0,0,192,0,0,0,5,5,104,244,5,5,118,244,5,5,107,244,5,5,99,244,192,0,0,0,5,5,101,244,5,5,100,244,5,5,106,244,5,5,111,244,5,5,98,244,5,5,105,244,5,5,110,244,5,5,178,217,192,0,0,0,5,5,108,244,192,0,0,0,5,5,176,217,5,5,109,244,5,5,174,217,5,5,177,217,5,5,206,245,5,5,114,244,192,0,0,0,192,0,0,0,5,5,76,218,192,0,0,0,5,5,198,245,5,5,202,245,5,5,194,245,5,5,197,245,192,0,0,0,5,5,205,245,5,5,74,218,5,5,210,245,5,5,203,245,192,0,0,0,5,5,195,245,5,5,211,245,5,5,204,245,5,5,77,218,5,5,78,218,5,5,208,245,192,0,0,0,5,5,196,245,5,5,73,218,5,5,75,218,5,5,191,245,5,5,199,245,5,5,193,245,192,0,0,0,5,5,209,245,5,5,207,245,5,5,192,245,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,246,5,5,79,218,5,5,201,245,5,5,206,218,5,5,208,218,5,5,205,218,192,0,0,0,5,5,248,246,5,5,240,246,5,5,238,246,5,5,242,246,5,5,239,246,192,0,0,0,192,0,0,0,5,5,244,246,5,5,246,246,5,5,209,218,5,5,211,218,192,0,0,0,5,5,245,246,5,5,212,218,5,5,210,218,5,5,247,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,219,5,5,197,247,5,5,203,247,5,5,31,219,5,5,241,246,5,5,202,247,192,0,0,0,5,5,209,247,5,5,200,247,5,5,207,247,5,5,206,247,5,5,237,246,5,5,201,247,5,5,115,244,5,5,210,247,5,5,199,247,5,5,204,247,192,0,0,0,5,5,208,247,5,5,198,247,192,0,0,0,5,5,124,248,5,5,30,219,5,5,205,247,192,0,0,0,192,0,0,0,5,5,6,249,5,5,125,248,5,5,123,248,5,5,121,248,5,5,122,248,5,5,126,248,192,0,0,0,5,5,159,219,5,5,4,249,5,5,2,249,5,5,7,249,5,5,5,249,192,0,0,0,5,5,8,249,5,5,160,219,5,5,3,249,192,0,0,0,192,0,0,0,5,5,107,249,192,0,0,0,192,0,0,0,5,5,179,249,5,5,180,249,5,5,181,249,192,0,0,0,192,0,0,0,5,5,21,250,5,5,11,250,5,5,177,220,5,5,255,202,192,0,0,0,5,5,122,204,192,0,0,0,5,5,137,226,5,5,136,226,5,5,45,206,5,5,10,208,5,5,231,228,192,0,0,0,192,0,0,0,5,5,230,228,192,0,0,0,5,5,204,209,5,5,117,211,192,0,0,0,5,5,116,211,5,5,118,211,192,0,0,0,5,5,136,236,5,5,204,238,5,5,32,241,5,5,34,241,5,5,33,241,192,0,0,0,5,5,247,216,5,5,248,242,5,5,119,244,5,5,241,249,5,5,129,200,192,0,0,0,5,5,228,222,5,5,229,222,5,5,227,222,5,5,226,222,5,5,2,203,192,0,0,0,5,5,159,224,5,5,157,224,192,0,0,0,192,0,0,0,5,5,156,224,192,0,0,0,5,5,123,204,5,5,125,204,5,5,124,204,5,5,158,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,226,5,5,146,226,5,5,144,226,192,0,0,0,192,0,0,0,5,5,46,206,5,5,147,226,5,5,51,206,5,5,141,226,5,5,156,226,192,0,0,0,5,5,158,226,5,5,142,226,192,0,0,0,5,5,48,206,5,5,159,226,5,5,154,226,5,5,140,226,5,5,145,226,5,5,155,226,5,5,151,226,5,5,148,226,192,0,0,0,5,5,53,206,5,5,157,226,5,5,143,226,192,0,0,0,192,0,0,0,5,5,152,226,5,5,138,226,5,5,52,206,5,5,49,206,5,5,150,226,192,0,0,0,5,5,153,226,5,5,139,226,5,5,50,206,5,5,47,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,208,5,5,238,228,5,5,19,208,192,0,0,0,5,5,241,228,5,5,244,228,5,5,16,208,5,5,14,208,5,5,233,228,5,5,242,228,5,5,240,228,5,5,237,228,5,5,245,228,5,5,246,228,5,5,248,228,5,5,249,228,5,5,232,228,5,5,13,208,5,5,235,228,5,5,234,228,5,5,247,228,5,5,15,208,5,5,236,228,5,5,17,208,5,5,12,208,5,5,239,228,5,5,21,208,192,0,0,0,5,5,18,208,5,5,243,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,209,5,5,130,231,192,0,0,0,5,5,119,231,5,5,208,209,192,0,0,0,5,5,35,234,5,5,128,231,5,5,116,231,5,5,206,209,5,5,121,231,5,5,209,209,5,5,125,231,5,5,123,231,5,5,212,209,5,5,205,209,192,0,0,0,192,0,0,0,5,5,117,231,5,5,120,231,5,5,210,209,192,0,0,0,5,5,118,231,192,0,0,0,5,5,129,231,5,5,127,231,5,5,122,231,5,5,124,231,5,5,126,231,5,5,207,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,5,5,42,234,5,5,32,234,5,5,38,234,5,5,119,211,5,5,34,234,5,5,125,211,192,0,0,0,192,0,0,0,5,5,124,211,192,0,0,0,5,5,123,211,5,5,41,234,5,5,126,211,5,5,127,211,5,5,31,234,5,5,44,234,5,5,128,211,5,5,122,211,5,5,121,211,5,5,40,234,5,5,129,211,5,5,30,234,5,5,33,234,5,5,43,234,5,5,39,234,192,0,0,0,192,0,0,0,5,5,168,236,5,5,157,236,5,5,120,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,213,5,5,145,236,5,5,166,236,5,5,146,236,5,5,31,213,192,0,0,0,5,5,143,236,192,0,0,0,5,5,152,236,5,5,144,236,5,5,33,213,5,5,138,236,5,5,165,236,5,5,34,213,5,5,162,236,5,5,163,236,5,5,139,236,5,5,39,213,5,5,154,236,192,0,0,0,5,5,148,236,5,5,155,236,5,5,142,236,192,0,0,0,5,5,167,236,5,5,159,236,5,5,153,236,5,5,137,236,5,5,35,213,5,5,160,236,192,0,0,0,5,5,38,213,5,5,164,236,192,0,0,0,5,5,158,236,5,5,32,213,5,5,156,236,192,0,0,0,5,5,150,236,5,5,30,213,5,5,141,236,5,5,149,236,5,5,161,236,5,5,147,236,192,0,0,0,192,0,0,0,5,5,151,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,214,5,5,37,234,5,5,222,238,5,5,231,238,5,5,221,238,5,5,217,238,5,5,214,238,5,5,150,214,5,5,212,238,5,5,37,213,5,5,205,238,5,5,148,214,5,5,211,238,5,5,147,214,5,5,216,238,5,5,213,238,5,5,229,238,5,5,224,238,5,5,218,238,5,5,223,238,5,5,143,214,5,5,215,238,5,5,234,238,5,5,206,238,5,5,207,238,5,5,230,238,5,5,144,214,5,5,235,238,5,5,146,214,5,5,236,238,5,5,220,238,5,5,140,236,5,5,226,238,5,5,219,238,5,5,228,238,5,5,225,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,238,5,5,141,214,5,5,233,238,5,5,142,214,5,5,208,238,5,5,145,214,5,5,44,241,5,5,227,238,5,5,232,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,241,5,5,140,214,5,5,208,215,5,5,51,241,5,5,47,241,192,0,0,0,5,5,45,241,5,5,40,241,5,5,55,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,215,192,0,0,0,5,5,36,241,5,5,48,241,5,5,49,241,5,5,39,241,5,5,38,241,5,5,52,241,192,0,0,0,5,5,42,241,5,5,37,241,5,5,43,241,192,0,0,0,5,5,54,241,5,5,35,241,5,5,53,241,5,5,50,241,5,5,210,215,5,5,209,215,192,0,0,0,192,0,0,0,5,5,211,215,5,5,46,241,5,5,136,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,242,5,5,253,216,5,5,254,242,5,5,251,242,5,5,4,243,5,5,10,243,5,5,253,242,192,0,0,0,5,5,19,243,5,5,250,216,5,5,13,243,5,5,2,243,5,5,14,243,5,5,9,243,5,5,16,243,5,5,255,242,5,5,255,216,5,5,254,216,5,5,3,243,5,5,17,243,5,5,249,242,5,5,15,243,5,5,248,216,192,0,0,0,5,5,7,243,5,5,6,243,5,5,11,243,5,5,252,242,5,5,252,216,192,0,0,0,5,5,2,217,5,5,5,243,5,5,12,243,5,5,3,217,5,5,8,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,216,5,5,251,216,5,5,132,244,5,5,130,244,192,0,0,0,192,0,0,0,5,5,137,244,5,5,134,244,5,5,138,244,192,0,0,0,5,5,123,244,5,5,131,244,5,5,142,244,5,5,18,243,5,5,127,244,5,5,186,217,5,5,209,238,5,5,122,244,5,5,135,244,5,5,129,244,5,5,126,244,5,5,121,244,5,5,120,244,5,5,141,244,192,0,0,0,5,5,125,244,5,5,124,244,5,5,184,217,5,5,133,244,192,0,0,0,5,5,183,217,192,0,0,0,192,0,0,0,5,5,185,217,5,5,128,244,5,5,140,244,192,0,0,0,5,5,215,245,5,5,216,245,192,0,0,0,5,5,83,218,5,5,213,245,5,5,80,218,5,5,221,245,192,0,0,0,5,5,84,218,5,5,223,245,5,5,212,245,5,5,139,244,5,5,225,245,5,5,214,245,192,0,0,0,5,5,81,218,5,5,220,245,192,0,0,0,5,5,222,245,5,5,217,245,5,5,224,245,5,5,219,245,5,5,218,245,5,5,82,218,192,0,0,0,192,0,0,0,5,5,250,246,5,5,251,246,192,0,0,0,5,5,253,246,5,5,213,218,5,5,214,218,5,5,254,246,5,5,252,246,192,0,0,0,5,5,249,246,192,0,0,0,5,5,213,247,5,5,216,247,5,5,212,247,192,0,0,0,5,5,35,219,5,5,214,247,5,5,34,219,5,5,33,219,5,5,32,219,5,5,215,247,5,5,131,248,5,5,129,248,192,0,0,0,5,5,128,248,5,5,211,247,5,5,130,248,5,5,217,247,5,5,127,248,192,0,0,0,5,5,11,249,5,5,231,248,5,5,9,249,5,5,161,219,5,5,10,249,5,5,12,249,192,0,0,0,5,5,110,249,5,5,192,219,5,5,109,249,5,5,108,249,5,5,193,219,192,0,0,0,5,5,223,219,5,5,220,249,5,5,243,249,5,5,242,249,5,5,244,249,5,5,130,200,5,5,160,224,192,0,0,0,5,5,160,226,5,5,161,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,231,192,0,0,0,5,5,218,247,5,5,111,249,5,5,131,200,5,5,126,204,5,5,161,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,228,5,5,22,208,192,0,0,0,5,5,133,231,5,5,132,231,5,5,213,209,192,0,0,0,5,5,130,211,5,5,237,238,5,5,151,214,192,0,0,0,5,5,152,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,215,5,5,194,219,5,5,132,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,224,5,5,4,203,5,5,164,224,5,5,163,224,5,5,127,204,192,0,0,0,5,5,162,226,192,0,0,0,5,5,169,226,5,5,54,206,5,5,167,226,5,5,165,226,192,0,0,0,5,5,172,226,5,5,163,226,5,5,164,226,5,5,55,206,192,0,0,0,5,5,59,206,192,0,0,0,192,0,0,0,5,5,173,226,5,5,58,206,5,5,171,226,5,5,168,226,5,5,166,226,5,5,56,206,5,5,57,206,5,5,170,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,208,5,5,251,228,192,0,0,0,5,5,29,208,5,5,13,229,5,5,28,208,5,5,15,229,192,0,0,0,192,0,0,0,5,5,3,229,5,5,26,208,5,5,14,229,192,0,0,0,5,5,252,228,5,5,27,208,5,5,10,229,5,5,6,229,5,5,8,229,5,5,2,229,5,5,9,229,192,0,0,0,192,0,0,0,5,5,23,208,5,5,5,229,192,0,0,0,5,5,4,229,5,5,254,228,192,0,0,0,5,5,11,229,192,0,0,0,192,0,0,0,5,5,7,229,5,5,253,228,192,0,0,0,5,5,255,228,5,5,25,208,5,5,12,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,209,5,5,144,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,231,5,5,142,231,5,5,137,231,5,5,136,231,5,5,134,231,192,0,0,0,5,5,141,231,5,5,143,231,5,5,139,231,192,0,0,0,5,5,138,231,5,5,214,209,5,5,215,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,231,5,5,138,211,5,5,46,234,5,5,52,234,5,5,47,234,5,5,48,234,192,0,0,0,5,5,53,234,192,0,0,0,5,5,140,211,192,0,0,0,5,5,132,211,5,5,139,211,5,5,45,234,5,5,135,231,5,5,135,211,5,5,133,211,5,5,51,234,5,5,50,234,5,5,134,211,5,5,136,211,5,5,49,234,5,5,131,211,192,0,0,0,5,5,137,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,236,5,5,46,213,192,0,0,0,192,0,0,0,5,5,181,236,5,5,180,236,192,0,0,0,5,5,175,236,5,5,48,213,5,5,179,236,5,5,171,236,5,5,172,236,5,5,40,213,5,5,42,213,192,0,0,0,5,5,177,236,5,5,169,236,5,5,44,213,5,5,43,213,5,5,173,236,5,5,178,236,5,5,176,236,5,5,45,213,5,5,174,236,192,0,0,0,192,0,0,0,5,5,145,231,5,5,41,213,192,0,0,0,192,0,0,0,5,5,238,238,5,5,245,238,5,5,154,214,192,0,0,0,5,5,249,238,5,5,158,214,5,5,241,238,5,5,239,238,192,0,0,0,5,5,248,238,192,0,0,0,5,5,153,214,5,5,247,238,5,5,155,214,5,5,156,214,5,5,240,238,5,5,157,214,5,5,246,238,5,5,242,238,5,5,243,238,5,5,244,238,5,5,47,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,241,5,5,68,241,192,0,0,0,5,5,218,215,5,5,63,241,5,5,65,241,192,0,0,0,5,5,216,215,5,5,57,241,5,5,61,241,192,0,0,0,5,5,64,241,5,5,214,215,5,5,217,215,5,5,67,241,5,5,59,241,5,5,60,241,5,5,66,241,5,5,58,241,5,5,62,241,5,5,215,215,5,5,21,243,192,0,0,0,5,5,20,243,5,5,5,217,5,5,26,243,5,5,7,217,192,0,0,0,192,0,0,0,5,5,4,217,5,5,22,243,5,5,8,217,5,5,23,243,192,0,0,0,192,0,0,0,5,5,24,243,5,5,27,243,192,0,0,0,5,5,6,217,192,0,0,0,5,5,147,244,192,0,0,0,192,0,0,0,5,5,150,244,192,0,0,0,5,5,144,244,5,5,146,244,192,0,0,0,192,0,0,0,5,5,145,244,5,5,148,244,5,5,149,244,5,5,25,243,5,5,143,244,192,0,0,0,192,0,0,0,5,5,87,218,5,5,229,245,5,5,232,245,5,5,234,245,5,5,227,245,5,5,228,245,5,5,231,245,5,5,233,245,5,5,88,218,5,5,86,218,5,5,85,218,5,5,230,245,5,5,226,245,5,5,255,246,5,5,215,218,192,0,0,0,5,5,2,247,192,0,0,0,192,0,0,0,5,5,220,247,5,5,36,219,5,5,222,247,5,5,37,219,5,5,219,247,5,5,221,247,5,5,110,219,192,0,0,0,5,5,132,248,5,5,109,219,5,5,15,249,5,5,14,249,192,0,0,0,5,5,13,249,192,0,0,0,192,0,0,0,5,5,182,249,5,5,183,249,5,5,185,249,5,5,184,249,192,0,0,0,5,5,178,220,5,5,133,200,192,0,0,0,5,5,128,204,5,5,16,229,5,5,217,209,192,0,0,0,5,5,54,234,5,5,187,217,192,0,0,0,5,5,235,245,192,0,0,0,192,0,0,0,5,5,124,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,208,192,0,0,0,5,5,147,231,5,5,218,209,5,5,149,231,5,5,148,231,192,0,0,0,192,0,0,0,5,5,55,234,5,5,141,211,5,5,182,236,5,5,185,236,5,5,184,236,192,0,0,0,5,5,183,236,5,5,250,238,5,5,252,238,5,5,251,238,192,0,0,0,5,5,220,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,215,192,0,0,0,5,5,9,217,5,5,28,243,5,5,30,243,5,5,29,243,192,0,0,0,192,0,0,0,5,5,188,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,245,5,5,236,245,192,0,0,0,5,5,3,247,5,5,216,218,192,0,0,0,192,0,0,0,5,5,38,219,5,5,134,248,5,5,133,248,5,5,224,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,201,5,5,165,224,5,5,129,204,5,5,19,229,5,5,17,229,192,0,0,0,192,0,0,0,5,5,18,229,5,5,151,231,5,5,152,231,5,5,62,234,5,5,150,231,192,0,0,0,5,5,56,234,5,5,60,234,5,5,59,234,5,5,61,234,5,5,142,211,5,5,58,234,5,5,57,234,5,5,63,234,192,0,0,0,5,5,188,236,5,5,186,236,192,0,0,0,5,5,187,236,5,5,255,238,5,5,253,238,192,0,0,0,192,0,0,0,5,5,254,238,5,5,69,241,5,5,31,243,5,5,32,243,5,5,189,217,192,0,0,0,5,5,238,245,5,5,4,247,5,5,217,218,192,0,0,0,5,5,223,247,5,5,135,248,5,5,111,219,192,0,0,0,5,5,16,249,5,5,186,249,5,5,126,201,192,0,0,0,5,5,131,204,5,5,132,204,5,5,166,224,192,0,0,0,192,0,0,0,5,5,167,224,5,5,130,204,192,0,0,0,5,5,65,206,192,0,0,0,5,5,63,206,192,0,0,0,5,5,62,206,5,5,69,206,5,5,61,206,5,5,70,206,5,5,174,226,5,5,67,206,192,0,0,0,5,5,64,206,5,5,68,206,5,5,66,206,5,5,60,206,192,0,0,0,192,0,0,0,5,5,39,208,192,0,0,0,5,5,33,208,5,5,23,229,5,5,38,208,192,0,0,0,192,0,0,0,5,5,40,208,5,5,34,208,192,0,0,0,5,5,35,208,192,0,0,0,5,5,21,229,192,0,0,0,192,0,0,0,5,5,32,208,192,0,0,0,5,5,22,229,5,5,37,208,192,0,0,0,192,0,0,0,5,5,20,229,5,5,36,208,192,0,0,0,192,0,0,0,5,5,229,209,192,0,0,0,5,5,231,209,192,0,0,0,192,0,0,0,5,5,155,231,5,5,230,209,5,5,219,209,5,5,223,209,192,0,0,0,5,5,161,211,5,5,68,234,5,5,157,231,5,5,224,209,192,0,0,0,192,0,0,0,5,5,160,231,5,5,161,231,5,5,228,209,192,0,0,0,5,5,163,231,192,0,0,0,5,5,165,231,192,0,0,0,5,5,166,231,5,5,154,231,5,5,153,231,5,5,167,231,5,5,227,209,5,5,164,231,5,5,162,231,192,0,0,0,5,5,225,209,5,5,221,209,5,5,232,209,5,5,158,231,5,5,159,231,5,5,156,231,192,0,0,0,5,5,226,209,192,0,0,0,192,0,0,0,5,5,222,209,192,0,0,0,5,5,220,209,5,5,67,234,5,5,156,211,5,5,151,211,192,0,0,0,192,0,0,0,5,5,146,211,192,0,0,0,5,5,162,211,5,5,147,211,192,0,0,0,5,5,143,211,5,5,158,211,5,5,155,211,5,5,157,211,192,0,0,0,5,5,148,211,5,5,153,211,5,5,144,211,5,5,145,211,5,5,75,234,5,5,72,234,5,5,64,234,5,5,69,234,192,0,0,0,5,5,159,211,5,5,76,234,5,5,160,211,5,5,150,211,192,0,0,0,192,0,0,0,5,5,66,234,192,0,0,0,5,5,74,234,5,5,70,234,5,5,73,234,5,5,71,234,5,5,154,211,5,5,65,234,5,5,149,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,236,5,5,50,213,5,5,53,213,192,0,0,0,5,5,193,236,192,0,0,0,5,5,61,213,5,5,192,236,5,5,55,213,192,0,0,0,5,5,163,214,5,5,194,236,192,0,0,0,5,5,60,213,5,5,190,236,5,5,62,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,213,192,0,0,0,5,5,152,211,5,5,54,213,192,0,0,0,5,5,52,213,5,5,56,213,5,5,58,213,5,5,49,213,5,5,63,213,5,5,59,213,192,0,0,0,5,5,57,213,5,5,189,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,214,192,0,0,0,5,5,166,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,214,192,0,0,0,5,5,4,239,5,5,174,214,5,5,16,239,5,5,9,239,5,5,159,214,5,5,17,239,5,5,11,239,5,5,169,214,5,5,12,239,192,0,0,0,5,5,168,214,5,5,15,239,5,5,162,214,5,5,13,239,5,5,3,239,5,5,161,214,5,5,80,241,5,5,167,214,192,0,0,0,5,5,164,214,192,0,0,0,5,5,172,214,192,0,0,0,5,5,2,239,192,0,0,0,5,5,6,239,5,5,160,214,5,5,5,239,5,5,7,239,5,5,8,239,5,5,171,214,5,5,10,239,5,5,14,239,5,5,18,239,192,0,0,0,5,5,175,214,5,5,226,215,5,5,75,241,5,5,81,241,5,5,78,241,5,5,70,241,5,5,82,241,5,5,71,241,192,0,0,0,5,5,77,241,192,0,0,0,5,5,221,215,5,5,227,215,5,5,83,241,192,0,0,0,192,0,0,0,5,5,223,215,192,0,0,0,5,5,233,215,5,5,228,215,5,5,85,241,5,5,79,241,5,5,224,215,5,5,72,241,5,5,234,215,5,5,73,241,5,5,74,241,5,5,235,215,5,5,232,215,5,5,165,214,192,0,0,0,5,5,222,215,5,5,86,241,5,5,236,215,192,0,0,0,5,5,229,215,5,5,84,241,5,5,225,215,5,5,230,215,5,5,231,215,192,0,0,0,5,5,17,217,5,5,37,243,5,5,46,243,5,5,43,243,5,5,45,243,192,0,0,0,5,5,14,217,5,5,38,243,192,0,0,0,5,5,44,243,5,5,10,217,5,5,40,243,5,5,18,217,5,5,36,243,5,5,41,243,5,5,48,243,5,5,76,241,5,5,42,243,5,5,35,243,5,5,11,217,5,5,34,243,5,5,12,217,5,5,49,243,5,5,13,217,5,5,47,243,5,5,16,217,5,5,33,243,192,0,0,0,5,5,15,217,192,0,0,0,5,5,39,243,5,5,153,244,5,5,167,244,5,5,162,244,5,5,164,244,5,5,152,244,5,5,190,217,192,0,0,0,5,5,151,244,5,5,193,217,5,5,192,217,192,0,0,0,5,5,166,244,5,5,158,244,5,5,155,244,5,5,161,244,192,0,0,0,5,5,154,244,192,0,0,0,5,5,156,244,5,5,165,244,5,5,163,244,192,0,0,0,5,5,191,217,5,5,170,244,5,5,168,244,5,5,159,244,5,5,169,244,5,5,160,244,192,0,0,0,5,5,242,245,5,5,89,218,5,5,249,245,192,0,0,0,192,0,0,0,5,5,226,247,5,5,96,218,5,5,157,244,5,5,240,245,5,5,92,218,5,5,241,245,5,5,246,245,192,0,0,0,192,0,0,0,5,5,94,218,5,5,95,218,5,5,239,245,5,5,248,245,5,5,250,245,5,5,243,245,5,5,245,245,5,5,247,245,5,5,244,245,5,5,251,245,5,5,91,218,5,5,97,218,5,5,93,218,192,0,0,0,5,5,90,218,5,5,7,247,192,0,0,0,5,5,222,218,5,5,5,247,192,0,0,0,192,0,0,0,5,5,9,247,192,0,0,0,5,5,10,247,5,5,220,218,5,5,11,247,5,5,8,247,192,0,0,0,5,5,6,247,5,5,223,218,5,5,219,218,5,5,12,247,192,0,0,0,5,5,221,218,5,5,218,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,219,192,0,0,0,192,0,0,0,5,5,40,219,5,5,225,247,5,5,224,247,5,5,227,247,5,5,228,247,192,0,0,0,5,5,41,219,5,5,136,248,5,5,141,248,5,5,112,219,192,0,0,0,5,5,138,248,192,0,0,0,5,5,137,248,5,5,140,248,5,5,139,248,192,0,0,0,5,5,20,249,192,0,0,0,5,5,162,219,5,5,19,249,5,5,17,249,192,0,0,0,5,5,18,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,219,5,5,195,219,5,5,112,249,5,5,113,249,5,5,197,219,192,0,0,0,5,5,187,249,5,5,188,249,5,5,236,219,192,0,0,0,5,5,242,219,192,0,0,0,5,5,245,249,5,5,22,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,201,192,0,0,0,5,5,24,229,192,0,0,0,5,5,25,229,5,5,77,234,5,5,195,236,5,5,19,239,5,5,20,217,192,0,0,0,5,5,19,217,5,5,171,244,5,5,252,245,192,0,0,0,5,5,21,249,5,5,128,201,5,5,175,226,5,5,71,206,5,5,41,208,5,5,79,234,5,5,78,234,5,5,176,214,5,5,20,239,5,5,177,214,5,5,50,243,5,5,194,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,219,5,5,129,201,5,5,230,222,5,5,176,226,192,0,0,0,192,0,0,0,5,5,42,208,192,0,0,0,5,5,26,229,5,5,27,229,192,0,0,0,5,5,168,231,192,0,0,0,5,5,233,209,5,5,163,211,192,0,0,0,5,5,81,234,5,5,80,234,5,5,82,234,192,0,0,0,5,5,196,236,5,5,197,236,5,5,64,213,5,5,237,215,5,5,178,214,5,5,238,215,192,0,0,0,5,5,54,243,5,5,51,243,5,5,53,243,5,5,52,243,5,5,21,217,192,0,0,0,5,5,172,244,5,5,254,245,5,5,253,245,5,5,131,221,5,5,73,206,5,5,72,206,5,5,177,226,192,0,0,0,5,5,28,229,192,0,0,0,192,0,0,0,5,5,170,231,5,5,169,231,5,5,234,209,192,0,0,0,5,5,84,234,5,5,85,234,5,5,83,234,192,0,0,0,192,0,0,0,5,5,165,211,5,5,164,211,192,0,0,0,5,5,66,213,5,5,65,213,192,0,0,0,5,5,21,239,5,5,89,241,5,5,87,241,5,5,88,241,5,5,239,215,5,5,56,243,5,5,55,243,192,0,0,0,5,5,175,244,5,5,174,244,5,5,173,244,5,5,255,245,192,0,0,0,5,5,246,249,5,5,130,201,5,5,133,204,192,0,0,0,5,5,134,204,5,5,74,206,5,5,75,206,5,5,179,226,5,5,178,226,5,5,29,229,192,0,0,0,5,5,48,208,5,5,46,208,5,5,43,208,5,5,47,208,5,5,45,208,5,5,44,208,192,0,0,0,192,0,0,0,5,5,235,209,5,5,173,231,192,0,0,0,5,5,170,211,5,5,237,209,5,5,242,209,5,5,175,231,5,5,244,209,5,5,243,209,5,5,246,209,5,5,174,231,5,5,171,231,5,5,240,209,5,5,236,209,5,5,238,209,5,5,172,231,5,5,245,209,5,5,241,209,5,5,239,209,5,5,172,211,5,5,171,211,5,5,169,211,5,5,173,211,192,0,0,0,5,5,167,211,5,5,168,211,192,0,0,0,5,5,166,211,192,0,0,0,5,5,86,234,192,0,0,0,192,0,0,0,5,5,199,236,192,0,0,0,5,5,68,213,5,5,69,213,5,5,67,213,192,0,0,0,5,5,198,236,192,0,0,0,5,5,200,236,192,0,0,0,5,5,24,239,5,5,26,239,192,0,0,0,5,5,187,214,5,5,27,239,5,5,180,214,5,5,23,239,5,5,179,214,5,5,189,214,5,5,185,214,5,5,186,214,5,5,182,214,5,5,22,239,5,5,181,214,5,5,28,239,5,5,25,239,192,0,0,0,5,5,188,214,192,0,0,0,5,5,183,214,5,5,184,214,5,5,91,241,192,0,0,0,5,5,93,241,5,5,92,241,192,0,0,0,5,5,94,241,5,5,240,215,5,5,90,241,192,0,0,0,192,0,0,0,5,5,25,217,5,5,57,243,5,5,22,217,5,5,26,217,5,5,24,217,5,5,23,217,5,5,176,244,192,0,0,0,5,5,179,244,192,0,0,0,5,5,178,244,192,0,0,0,5,5,177,244,5,5,195,217,5,5,2,246,5,5,3,246,5,5,98,218,5,5,4,246,5,5,99,218,192,0,0,0,192,0,0,0,5,5,225,218,192,0,0,0,5,5,224,218,5,5,229,247,192,0,0,0,192,0,0,0,5,5,42,219,5,5,230,247,5,5,142,248,5,5,113,219,5,5,114,219,192,0,0,0,5,5,22,249,192,0,0,0,5,5,199,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,201,192,0,0,0,5,5,50,208,5,5,49,208,5,5,87,234,5,5,88,234,192,0,0,0,5,5,70,213,5,5,95,241,5,5,190,214,5,5,96,241,5,5,58,243,5,5,132,201,192,0,0,0,5,5,168,224,5,5,136,204,5,5,135,204,192,0,0,0,5,5,180,226,5,5,76,206,5,5,181,226,5,5,32,229,192,0,0,0,5,5,31,229,192,0,0,0,5,5,30,229,192,0,0,0,192,0,0,0,5,5,177,231,5,5,249,209,192,0,0,0,192,0,0,0,5,5,176,231,5,5,248,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,231,5,5,247,209,192,0,0,0,5,5,90,234,5,5,93,234,5,5,91,234,5,5,92,234,5,5,96,234,5,5,89,234,5,5,97,234,5,5,94,234,5,5,95,234,5,5,72,213,5,5,201,236,192,0,0,0,192,0,0,0,5,5,71,213,192,0,0,0,5,5,32,239,5,5,30,239,192,0,0,0,192,0,0,0,5,5,191,214,5,5,29,239,5,5,31,239,192,0,0,0,5,5,192,214,192,0,0,0,5,5,97,241,192,0,0,0,5,5,98,241,5,5,27,217,192,0,0,0,5,5,6,246,5,5,8,246,5,5,5,246,5,5,7,246,5,5,13,247,5,5,231,247,192,0,0,0,192,0,0,0,5,5,221,249,5,5,133,201,5,5,137,204,5,5,182,226,5,5,184,226,5,5,183,226,192,0,0,0,5,5,35,229,5,5,52,208,192,0,0,0,5,5,33,229,192,0,0,0,5,5,51,208,5,5,36,229,192,0,0,0,5,5,37,229,5,5,34,229,192,0,0,0,192,0,0,0,5,5,190,231,5,5,3,210,5,5,182,231,5,5,188,231,192,0,0,0,192,0,0,0,5,5,252,209,5,5,255,209,5,5,181,231,5,5,250,209,5,5,185,231,5,5,103,234,5,5,254,209,192,0,0,0,5,5,180,231,192,0,0,0,5,5,186,231,5,5,183,231,5,5,189,231,5,5,179,231,5,5,187,231,5,5,253,209,5,5,2,210,5,5,184,231,5,5,251,209,192,0,0,0,5,5,175,211,5,5,99,234,5,5,174,211,5,5,106,234,5,5,105,234,5,5,181,211,192,0,0,0,5,5,182,211,5,5,107,234,5,5,176,211,5,5,104,234,5,5,180,211,5,5,109,234,5,5,100,234,192,0,0,0,5,5,102,234,5,5,177,211,5,5,98,234,5,5,101,234,5,5,108,234,5,5,178,211,5,5,110,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,211,192,0,0,0,5,5,73,213,5,5,206,236,5,5,212,236,5,5,204,236,5,5,213,236,192,0,0,0,5,5,203,236,5,5,208,236,5,5,214,236,5,5,211,236,5,5,210,236,5,5,209,236,192,0,0,0,5,5,202,236,5,5,207,236,192,0,0,0,192,0,0,0,5,5,205,236,192,0,0,0,5,5,197,214,5,5,194,214,5,5,41,239,5,5,46,239,5,5,48,239,5,5,45,239,5,5,38,239,5,5,40,239,5,5,50,239,5,5,47,239,5,5,42,239,5,5,51,239,5,5,39,239,5,5,49,239,5,5,195,214,5,5,201,214,5,5,199,214,5,5,33,239,5,5,200,214,5,5,196,214,5,5,34,239,5,5,36,239,5,5,35,239,5,5,43,239,5,5,44,239,192,0,0,0,5,5,198,214,192,0,0,0,5,5,193,214,192,0,0,0,192,0,0,0,5,5,37,239,192,0,0,0,5,5,108,241,5,5,242,215,192,0,0,0,5,5,99,241,5,5,243,215,5,5,246,215,5,5,104,241,192,0,0,0,5,5,101,241,5,5,245,215,192,0,0,0,192,0,0,0,5,5,105,241,5,5,106,241,5,5,100,241,5,5,109,241,5,5,102,241,5,5,107,241,5,5,244,215,192,0,0,0,5,5,241,215,5,5,103,241,192,0,0,0,5,5,64,243,5,5,30,217,5,5,28,217,5,5,31,217,5,5,29,217,5,5,63,243,5,5,60,243,5,5,59,243,192,0,0,0,5,5,62,243,192,0,0,0,192,0,0,0,5,5,61,243,5,5,193,244,5,5,201,217,5,5,184,244,5,5,183,244,192,0,0,0,5,5,196,217,5,5,189,244,5,5,188,244,5,5,180,244,5,5,191,244,5,5,185,244,5,5,200,217,5,5,182,244,5,5,190,244,5,5,181,244,5,5,197,217,5,5,199,217,5,5,186,244,5,5,198,217,5,5,187,244,192,0,0,0,5,5,192,244,5,5,12,246,192,0,0,0,5,5,104,218,5,5,9,246,192,0,0,0,5,5,13,246,192,0,0,0,192,0,0,0,5,5,101,218,5,5,11,246,5,5,106,218,192,0,0,0,5,5,103,218,192,0,0,0,5,5,10,246,192,0,0,0,5,5,105,218,5,5,14,246,5,5,100,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,218,5,5,229,218,192,0,0,0,5,5,16,247,5,5,228,218,5,5,14,247,5,5,102,218,5,5,15,247,5,5,226,218,5,5,43,219,5,5,45,219,5,5,233,247,5,5,44,219,5,5,232,247,192,0,0,0,5,5,147,248,5,5,115,219,5,5,146,248,5,5,116,219,5,5,144,248,5,5,143,248,5,5,148,248,5,5,149,248,5,5,23,249,192,0,0,0,5,5,145,248,192,0,0,0,192,0,0,0,5,5,117,249,5,5,114,249,5,5,115,249,5,5,116,249,5,5,225,219,192,0,0,0,5,5,191,249,5,5,190,249,5,5,189,249,5,5,222,249,192,0,0,0,5,5,12,250,5,5,247,249,5,5,243,219,5,5,134,201,5,5,77,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,214,192,0,0,0,192,0,0,0,5,5,110,241,192,0,0,0,192,0,0,0,5,5,202,217,192,0,0,0,5,5,15,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,249,5,5,135,201,5,5,5,203,5,5,139,204,5,5,138,204,192,0,0,0,5,5,80,206,192,0,0,0,5,5,185,226,5,5,78,206,5,5,186,226,5,5,79,206,192,0,0,0,192,0,0,0,5,5,42,229,5,5,38,229,192,0,0,0,192,0,0,0,5,5,53,208,5,5,41,229,5,5,40,229,5,5,39,229,5,5,54,208,5,5,43,229,5,5,44,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,231,5,5,195,231,5,5,199,231,5,5,200,231,5,5,206,231,192,0,0,0,5,5,202,231,5,5,204,231,192,0,0,0,5,5,196,231,5,5,191,231,192,0,0,0,5,5,203,231,192,0,0,0,192,0,0,0,5,5,205,231,5,5,198,231,5,5,201,231,5,5,192,231,5,5,5,210,5,5,194,231,5,5,193,231,5,5,4,210,5,5,6,210,192,0,0,0,5,5,186,211,5,5,112,234,5,5,114,234,5,5,113,234,5,5,118,234,5,5,184,211,192,0,0,0,5,5,115,234,5,5,111,234,5,5,116,234,5,5,117,234,5,5,185,211,5,5,187,211,5,5,119,234,192,0,0,0,5,5,218,236,5,5,217,236,192,0,0,0,5,5,215,236,5,5,216,236,5,5,75,213,5,5,77,213,5,5,74,213,5,5,76,213,5,5,58,239,5,5,59,239,5,5,54,239,192,0,0,0,5,5,55,239,5,5,204,214,5,5,209,214,5,5,203,214,5,5,210,214,5,5,205,214,5,5,56,239,192,0,0,0,192,0,0,0,5,5,57,239,5,5,53,239,5,5,211,214,5,5,207,214,192,0,0,0,192,0,0,0,5,5,206,214,5,5,208,214,192,0,0,0,5,5,52,239,192,0,0,0,5,5,112,241,5,5,248,215,192,0,0,0,192,0,0,0,5,5,114,241,5,5,250,215,5,5,117,241,5,5,113,241,5,5,111,241,5,5,116,241,5,5,249,215,5,5,115,241,192,0,0,0,5,5,247,215,192,0,0,0,192,0,0,0,5,5,33,217,5,5,36,217,5,5,66,243,192,0,0,0,5,5,34,217,5,5,65,243,5,5,32,217,5,5,35,217,5,5,194,244,5,5,195,244,5,5,196,244,5,5,203,217,192,0,0,0,5,5,197,244,192,0,0,0,5,5,204,217,5,5,108,218,5,5,18,246,5,5,19,246,5,5,17,246,5,5,16,246,5,5,20,246,5,5,107,218,5,5,20,247,5,5,18,247,5,5,19,247,5,5,21,247,5,5,17,247,5,5,22,247,5,5,235,247,192,0,0,0,5,5,236,247,5,5,234,247,5,5,46,219,5,5,150,248,5,5,117,219,5,5,151,248,5,5,25,249,5,5,24,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,201,5,5,7,210,192,0,0,0,192,0,0,0,5,5,188,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,213,192,0,0,0,192,0,0,0,5,5,252,215,192,0,0,0,5,5,251,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,218,5,5,197,218,5,5,47,219,5,5,137,201,5,5,81,206,5,5,189,211,192,0,0,0,5,5,21,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,221,192,0,0,0,192,0,0,0,5,5,138,201,192,0,0,0,5,5,141,201,5,5,140,201,5,5,139,201,192,0,0,0,192,0,0,0,5,5,132,221,192,0,0,0,5,5,232,222,192,0,0,0,5,5,234,222,5,5,6,203,192,0,0,0,192,0,0,0,5,5,8,203,5,5,231,222,5,5,233,222,5,5,7,203,5,5,236,222,5,5,235,222,5,5,237,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,224,5,5,170,224,5,5,142,204,5,5,169,224,5,5,147,204,5,5,144,204,5,5,141,204,192,0,0,0,5,5,148,204,192,0,0,0,5,5,143,204,5,5,146,204,192,0,0,0,5,5,145,204,5,5,171,224,192,0,0,0,5,5,140,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,206,5,5,188,226,5,5,194,226,5,5,84,206,5,5,91,206,192,0,0,0,5,5,86,206,5,5,191,226,5,5,193,226,5,5,89,206,5,5,187,226,5,5,190,226,5,5,85,206,5,5,82,206,5,5,189,226,5,5,88,206,5,5,192,226,5,5,90,206,5,5,83,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,229,5,5,49,229,5,5,56,208,192,0,0,0,5,5,66,208,5,5,62,208,5,5,47,229,192,0,0,0,192,0,0,0,5,5,70,208,5,5,63,208,5,5,68,208,5,5,58,208,192,0,0,0,5,5,55,208,5,5,57,208,5,5,69,208,5,5,48,229,5,5,61,208,5,5,64,208,5,5,60,208,5,5,65,208,5,5,50,229,5,5,67,208,5,5,59,208,5,5,45,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,231,5,5,8,210,5,5,209,231,192,0,0,0,5,5,10,210,5,5,12,210,192,0,0,0,5,5,208,231,5,5,9,210,5,5,13,210,192,0,0,0,5,5,11,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,211,5,5,124,234,5,5,203,211,5,5,121,234,192,0,0,0,5,5,204,211,5,5,193,211,192,0,0,0,5,5,122,234,192,0,0,0,192,0,0,0,5,5,198,211,192,0,0,0,5,5,123,234,5,5,191,211,5,5,190,211,192,0,0,0,5,5,201,211,5,5,200,211,5,5,199,211,5,5,197,211,5,5,202,211,5,5,120,234,5,5,192,211,5,5,194,211,5,5,196,211,192,0,0,0,192,0,0,0,5,5,80,213,5,5,83,213,192,0,0,0,5,5,87,213,5,5,81,213,5,5,86,213,5,5,84,213,192,0,0,0,5,5,79,213,192,0,0,0,5,5,85,213,5,5,82,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,239,5,5,214,214,5,5,212,214,192,0,0,0,5,5,64,239,192,0,0,0,5,5,215,214,5,5,213,214,5,5,62,239,5,5,61,239,192,0,0,0,5,5,2,216,5,5,60,239,5,5,254,215,5,5,253,215,5,5,118,241,5,5,216,214,5,5,255,215,5,5,119,241,5,5,4,216,5,5,120,241,5,5,3,216,5,5,38,217,5,5,68,243,5,5,37,217,5,5,42,217,5,5,40,217,5,5,41,217,5,5,206,217,5,5,39,217,5,5,67,243,5,5,121,241,5,5,205,217,5,5,207,217,192,0,0,0,5,5,110,218,5,5,111,218,192,0,0,0,5,5,23,247,192,0,0,0,5,5,164,219,5,5,163,219,5,5,143,201,192,0,0,0,192,0,0,0,5,5,183,220,5,5,92,206,192,0,0,0,5,5,180,220,5,5,181,220,5,5,179,220,192,0,0,0,5,5,182,220,192,0,0,0,192,0,0,0,5,5,137,221,5,5,134,221,5,5,139,221,5,5,135,221,5,5,144,201,5,5,147,201,192,0,0,0,5,5,136,221,5,5,146,201,5,5,138,221,192,0,0,0,192,0,0,0,5,5,145,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,222,5,5,242,222,5,5,11,203,5,5,238,222,5,5,241,222,5,5,239,222,5,5,9,203,5,5,12,203,192,0,0,0,5,5,10,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,224,5,5,178,224,5,5,175,224,192,0,0,0,5,5,151,204,192,0,0,0,5,5,152,204,192,0,0,0,5,5,177,224,192,0,0,0,5,5,179,224,5,5,181,224,192,0,0,0,5,5,149,204,5,5,180,224,192,0,0,0,192,0,0,0,5,5,150,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,229,5,5,176,224,5,5,195,226,5,5,204,226,5,5,202,226,5,5,197,226,5,5,198,226,5,5,203,226,5,5,205,226,5,5,94,206,192,0,0,0,5,5,200,226,5,5,196,226,5,5,93,206,5,5,95,206,5,5,199,226,5,5,206,226,5,5,201,226,192,0,0,0,192,0,0,0,5,5,71,208,5,5,60,229,5,5,52,229,5,5,58,229,5,5,59,229,5,5,72,208,192,0,0,0,5,5,51,229,5,5,53,229,5,5,173,224,5,5,55,229,5,5,56,229,5,5,54,229,5,5,15,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,231,5,5,122,241,5,5,217,231,5,5,214,231,5,5,73,208,5,5,17,210,5,5,213,231,5,5,219,231,5,5,218,231,5,5,14,210,5,5,222,231,5,5,212,231,5,5,221,231,5,5,210,231,5,5,220,231,5,5,215,231,5,5,16,210,192,0,0,0,5,5,131,234,192,0,0,0,5,5,126,234,5,5,132,234,5,5,127,234,5,5,125,234,5,5,128,234,5,5,205,211,192,0,0,0,5,5,130,234,192,0,0,0,5,5,129,234,5,5,206,211,5,5,89,213,5,5,88,213,5,5,225,236,5,5,228,236,5,5,220,236,5,5,224,236,5,5,90,213,5,5,223,236,5,5,221,236,5,5,227,236,5,5,222,236,5,5,219,236,5,5,226,236,192,0,0,0,5,5,70,239,5,5,219,214,5,5,198,244,5,5,67,239,5,5,68,239,5,5,66,239,5,5,211,231,5,5,218,214,5,5,71,239,5,5,65,239,5,5,217,214,5,5,220,214,5,5,69,239,5,5,123,241,5,5,5,216,5,5,124,241,5,5,125,241,192,0,0,0,5,5,69,243,5,5,43,217,5,5,199,244,5,5,200,244,192,0,0,0,192,0,0,0,5,5,201,244,5,5,23,246,5,5,22,246,5,5,25,247,192,0,0,0,5,5,24,247,5,5,238,247,5,5,239,247,5,5,237,247,5,5,152,248,5,5,118,219,5,5,148,201,5,5,154,204,5,5,153,204,5,5,98,206,5,5,97,206,5,5,208,226,5,5,209,226,5,5,207,226,192,0,0,0,5,5,96,206,5,5,64,229,192,0,0,0,5,5,65,229,5,5,61,229,5,5,74,208,5,5,62,229,192,0,0,0,5,5,63,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,231,5,5,227,231,5,5,223,231,5,5,226,231,5,5,18,210,5,5,224,231,5,5,19,210,192,0,0,0,192,0,0,0,5,5,148,232,5,5,209,211,5,5,208,211,192,0,0,0,5,5,207,211,192,0,0,0,5,5,133,234,5,5,134,234,192,0,0,0,192,0,0,0,5,5,230,236,5,5,232,236,5,5,94,213,5,5,91,213,192,0,0,0,5,5,93,213,5,5,92,213,5,5,231,236,5,5,229,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,239,5,5,75,239,5,5,76,239,5,5,224,214,5,5,77,239,5,5,72,239,5,5,73,239,5,5,221,214,192,0,0,0,5,5,222,214,5,5,74,239,5,5,223,214,192,0,0,0,5,5,129,241,192,0,0,0,5,5,130,241,5,5,127,241,5,5,128,241,5,5,6,216,5,5,126,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,243,5,5,70,243,5,5,72,243,5,5,46,217,5,5,76,243,5,5,45,217,5,5,74,243,5,5,77,243,5,5,75,243,5,5,71,243,5,5,44,217,192,0,0,0,5,5,203,244,192,0,0,0,5,5,204,244,5,5,202,244,192,0,0,0,5,5,206,244,5,5,208,217,5,5,209,217,5,5,25,246,5,5,113,218,5,5,205,244,5,5,24,246,5,5,112,218,5,5,28,247,5,5,29,247,5,5,230,218,5,5,27,247,192,0,0,0,5,5,26,247,192,0,0,0,5,5,240,247,5,5,48,219,192,0,0,0,5,5,26,249,5,5,119,249,5,5,118,249,192,0,0,0,5,5,200,219,5,5,226,219,5,5,120,249,5,5,223,249,192,0,0,0,5,5,244,219,5,5,149,201,5,5,13,203,192,0,0,0,5,5,210,211,192,0,0,0,5,5,231,218,5,5,150,201,5,5,155,204,5,5,75,208,5,5,20,210,5,5,210,217,5,5,14,203,192,0,0,0,5,5,183,224,5,5,182,224,5,5,210,226,192,0,0,0,5,5,101,206,5,5,99,206,5,5,103,206,5,5,212,226,192,0,0,0,5,5,102,206,5,5,100,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,226,5,5,78,208,5,5,71,229,192,0,0,0,5,5,77,208,5,5,79,208,5,5,76,229,5,5,81,208,5,5,73,229,5,5,74,229,5,5,66,229,5,5,80,208,5,5,77,229,192,0,0,0,192,0,0,0,5,5,68,229,192,0,0,0,5,5,69,229,5,5,67,229,5,5,76,208,192,0,0,0,5,5,75,229,5,5,70,229,5,5,72,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,231,192,0,0,0,5,5,238,231,5,5,236,231,5,5,228,231,5,5,243,231,5,5,231,231,5,5,241,231,5,5,248,231,5,5,240,231,5,5,28,210,192,0,0,0,5,5,24,210,5,5,229,231,192,0,0,0,5,5,235,231,5,5,26,210,192,0,0,0,5,5,234,231,5,5,27,210,5,5,29,210,5,5,237,231,192,0,0,0,5,5,21,210,5,5,22,210,5,5,249,231,5,5,247,231,192,0,0,0,5,5,246,231,5,5,232,231,192,0,0,0,5,5,244,231,192,0,0,0,5,5,25,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,210,5,5,245,231,5,5,230,231,5,5,233,231,5,5,242,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,237,5,5,144,234,192,0,0,0,5,5,137,234,5,5,156,234,5,5,165,234,5,5,140,234,5,5,221,211,192,0,0,0,5,5,153,234,5,5,211,211,5,5,213,211,5,5,225,211,5,5,138,234,192,0,0,0,192,0,0,0,5,5,214,211,5,5,216,211,5,5,226,211,5,5,215,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,211,5,5,146,234,192,0,0,0,5,5,135,234,5,5,222,211,5,5,145,234,5,5,218,211,5,5,163,234,5,5,223,211,5,5,161,234,5,5,149,234,5,5,159,234,5,5,220,211,5,5,136,234,5,5,162,234,5,5,157,234,192,0,0,0,5,5,164,234,5,5,212,211,192,0,0,0,192,0,0,0,5,5,227,211,5,5,217,211,192,0,0,0,192,0,0,0,5,5,142,234,192,0,0,0,5,5,150,234,5,5,154,234,192,0,0,0,5,5,158,234,5,5,219,211,5,5,141,234,5,5,139,234,5,5,151,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,234,5,5,147,234,192,0,0,0,5,5,152,234,5,5,155,234,192,0,0,0,5,5,160,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,236,192,0,0,0,5,5,95,213,5,5,245,236,5,5,237,236,5,5,100,213,5,5,104,213,5,5,254,236,5,5,8,237,5,5,247,236,5,5,96,213,192,0,0,0,5,5,251,236,5,5,143,234,192,0,0,0,5,5,97,213,5,5,4,237,5,5,9,237,5,5,255,236,192,0,0,0,5,5,3,237,5,5,12,237,5,5,5,237,5,5,241,236,5,5,250,236,192,0,0,0,192,0,0,0,5,5,105,213,192,0,0,0,5,5,101,213,5,5,239,236,5,5,252,236,5,5,99,213,5,5,246,236,5,5,98,213,5,5,6,237,5,5,243,236,5,5,236,236,5,5,102,213,5,5,11,237,192,0,0,0,192,0,0,0,5,5,238,236,5,5,2,237,5,5,253,236,5,5,248,236,5,5,234,236,5,5,233,236,5,5,242,236,5,5,7,237,5,5,103,213,5,5,10,237,5,5,240,236,5,5,244,236,5,5,229,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,214,5,5,232,214,5,5,111,239,5,5,108,239,5,5,84,239,5,5,227,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,214,5,5,233,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,5,5,231,214,5,5,94,239,5,5,80,239,5,5,81,239,5,5,225,214,5,5,110,239,5,5,235,214,5,5,97,239,5,5,102,239,5,5,96,239,5,5,148,241,5,5,92,239,5,5,100,239,5,5,98,239,5,5,85,239,5,5,79,239,5,5,106,239,5,5,234,214,5,5,107,239,192,0,0,0,5,5,101,239,192,0,0,0,5,5,90,239,5,5,88,239,5,5,83,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,239,5,5,104,239,5,5,87,239,5,5,103,239,5,5,109,239,192,0,0,0,192,0,0,0,5,5,230,214,192,0,0,0,5,5,99,239,5,5,105,239,5,5,95,239,5,5,89,239,5,5,228,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,236,5,5,93,239,5,5,236,214,5,5,86,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,241,5,5,9,216,5,5,153,241,5,5,150,241,5,5,169,241,5,5,13,216,192,0,0,0,5,5,166,241,5,5,158,241,5,5,168,241,5,5,143,241,5,5,156,241,192,0,0,0,5,5,15,216,192,0,0,0,5,5,135,241,192,0,0,0,5,5,133,241,5,5,167,241,192,0,0,0,5,5,165,241,5,5,164,241,5,5,147,241,5,5,146,241,5,5,136,241,5,5,17,216,192,0,0,0,5,5,142,241,5,5,152,241,5,5,163,241,5,5,20,216,5,5,170,241,192,0,0,0,5,5,54,217,5,5,22,216,5,5,16,216,5,5,140,241,192,0,0,0,5,5,149,241,5,5,132,241,5,5,134,241,5,5,7,216,5,5,19,216,5,5,12,216,5,5,141,241,5,5,157,241,5,5,151,241,5,5,18,216,5,5,131,241,5,5,49,217,5,5,159,241,5,5,162,241,5,5,14,216,192,0,0,0,5,5,145,241,5,5,21,216,5,5,11,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,216,5,5,155,241,5,5,161,241,5,5,8,216,192,0,0,0,5,5,138,241,5,5,160,241,192,0,0,0,192,0,0,0,5,5,139,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,241,5,5,83,243,192,0,0,0,5,5,88,243,5,5,51,217,5,5,53,217,5,5,94,243,5,5,47,217,5,5,109,243,5,5,100,243,5,5,89,243,5,5,90,243,5,5,99,243,192,0,0,0,5,5,60,217,5,5,98,243,5,5,82,243,5,5,97,243,5,5,85,243,5,5,110,243,5,5,59,217,5,5,57,217,5,5,86,243,192,0,0,0,5,5,105,243,192,0,0,0,5,5,91,243,5,5,104,243,192,0,0,0,5,5,106,243,5,5,81,243,5,5,52,217,192,0,0,0,5,5,107,243,192,0,0,0,192,0,0,0,5,5,95,243,192,0,0,0,5,5,56,217,5,5,92,243,192,0,0,0,192,0,0,0,5,5,58,217,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,217,5,5,87,243,5,5,102,243,192,0,0,0,5,5,96,243,5,5,137,241,5,5,103,243,5,5,84,243,192,0,0,0,5,5,55,217,192,0,0,0,5,5,108,243,192,0,0,0,5,5,48,217,5,5,79,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,244,5,5,213,244,5,5,212,217,192,0,0,0,5,5,208,244,5,5,223,244,5,5,215,244,5,5,93,243,192,0,0,0,5,5,225,244,5,5,209,244,192,0,0,0,5,5,211,217,5,5,219,244,5,5,213,217,5,5,221,217,5,5,219,217,5,5,221,244,5,5,220,217,5,5,211,244,192,0,0,0,5,5,212,244,5,5,217,244,5,5,222,244,192,0,0,0,5,5,78,243,5,5,214,217,5,5,230,244,5,5,227,244,5,5,231,244,5,5,218,244,5,5,214,244,5,5,228,244,5,5,36,246,5,5,216,244,192,0,0,0,5,5,217,217,192,0,0,0,5,5,216,217,5,5,80,243,5,5,218,217,5,5,224,244,5,5,226,244,5,5,215,217,5,5,229,244,5,5,207,244,192,0,0,0,5,5,210,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,246,192,0,0,0,5,5,29,246,5,5,117,218,5,5,43,246,192,0,0,0,192,0,0,0,5,5,27,246,5,5,118,218,192,0,0,0,5,5,38,246,192,0,0,0,5,5,34,246,5,5,123,218,5,5,44,246,5,5,28,246,5,5,31,246,5,5,115,218,5,5,46,246,192,0,0,0,5,5,39,246,5,5,42,246,5,5,121,218,5,5,126,218,5,5,124,218,5,5,35,246,5,5,30,246,192,0,0,0,5,5,119,218,5,5,120,218,5,5,26,246,5,5,116,218,192,0,0,0,5,5,114,218,5,5,122,218,5,5,41,246,5,5,125,218,192,0,0,0,5,5,37,246,5,5,47,246,5,5,127,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,246,192,0,0,0,5,5,40,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,247,5,5,56,247,5,5,44,247,5,5,51,247,5,5,32,246,5,5,49,247,5,5,32,247,5,5,54,247,5,5,234,218,5,5,36,247,5,5,53,247,5,5,43,247,192,0,0,0,192,0,0,0,5,5,233,218,192,0,0,0,192,0,0,0,5,5,58,247,5,5,45,247,192,0,0,0,5,5,50,247,5,5,52,247,5,5,30,247,5,5,55,247,5,5,41,247,5,5,46,247,5,5,34,247,5,5,38,247,5,5,57,247,5,5,48,247,5,5,31,247,5,5,35,247,5,5,37,247,5,5,47,247,192,0,0,0,5,5,232,218,5,5,40,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,247,5,5,244,247,5,5,249,247,5,5,55,219,5,5,251,247,192,0,0,0,5,5,49,219,192,0,0,0,5,5,247,247,5,5,253,247,5,5,54,219,5,5,50,219,192,0,0,0,5,5,51,219,5,5,243,247,5,5,250,247,5,5,53,219,5,5,248,247,5,5,52,219,5,5,242,247,5,5,246,247,5,5,245,247,192,0,0,0,5,5,241,247,5,5,252,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,219,5,5,159,248,5,5,162,248,5,5,158,248,5,5,160,248,5,5,161,248,5,5,155,248,5,5,156,248,5,5,153,248,192,0,0,0,192,0,0,0,5,5,157,248,5,5,154,248,5,5,120,219,5,5,121,219,192,0,0,0,192,0,0,0,5,5,28,249,192,0,0,0,5,5,30,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,249,5,5,31,249,192,0,0,0,5,5,166,219,192,0,0,0,5,5,27,249,5,5,165,219,5,5,167,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,249,5,5,123,249,5,5,201,219,5,5,121,249,192,0,0,0,5,5,193,249,5,5,192,249,5,5,194,249,5,5,228,219,5,5,195,249,5,5,227,219,5,5,196,249,5,5,224,249,5,5,227,249,5,5,226,249,5,5,237,219,5,5,225,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,219,5,5,245,219,5,5,246,219,5,5,252,219,5,5,14,250,5,5,15,250,5,5,13,250,5,5,23,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,203,192,0,0,0,192,0,0,0,5,5,78,229,5,5,250,231,5,5,112,239,5,5,48,246,192,0,0,0,192,0,0,0,5,5,16,203,192,0,0,0,5,5,156,204,5,5,104,206,192,0,0,0,192,0,0,0,5,5,79,229,192,0,0,0,5,5,80,229,5,5,82,208,192,0,0,0,5,5,32,210,5,5,252,231,5,5,251,231,5,5,36,210,5,5,31,210,5,5,253,231,5,5,33,210,5,5,35,210,5,5,34,210,5,5,30,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,211,192,0,0,0,192,0,0,0,5,5,169,234,5,5,167,234,192,0,0,0,5,5,168,234,5,5,166,234,192,0,0,0,5,5,106,213,192,0,0,0,5,5,109,213,5,5,111,213,5,5,110,213,192,0,0,0,192,0,0,0,5,5,107,213,5,5,108,213,192,0,0,0,5,5,114,239,5,5,113,239,5,5,238,214,5,5,115,239,192,0,0,0,5,5,116,239,5,5,239,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,241,5,5,176,241,5,5,116,243,192,0,0,0,5,5,174,241,5,5,175,241,5,5,23,216,5,5,171,241,5,5,179,241,5,5,173,241,5,5,177,241,5,5,112,243,192,0,0,0,192,0,0,0,5,5,114,243,192,0,0,0,5,5,115,243,5,5,65,217,5,5,111,243,5,5,64,217,5,5,113,243,5,5,61,217,5,5,62,217,5,5,63,217,5,5,172,241,192,0,0,0,192,0,0,0,5,5,224,217,5,5,234,244,5,5,232,244,5,5,233,244,5,5,222,217,5,5,225,217,5,5,223,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,246,5,5,50,246,5,5,128,218,192,0,0,0,5,5,59,247,5,5,61,247,5,5,60,247,5,5,235,218,5,5,56,219,5,5,2,248,5,5,255,247,5,5,254,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,203,192,0,0,0,5,5,77,220,192,0,0,0,5,5,186,220,5,5,134,200,5,5,184,220,5,5,187,220,5,5,185,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,221,192,0,0,0,5,5,154,201,192,0,0,0,5,5,155,201,5,5,143,221,5,5,152,201,5,5,142,221,5,5,140,221,5,5,153,201,5,5,151,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,222,5,5,246,222,5,5,20,203,5,5,245,222,5,5,244,222,192,0,0,0,5,5,19,203,5,5,18,203,192,0,0,0,5,5,22,203,5,5,247,222,5,5,21,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,224,5,5,158,204,5,5,159,204,5,5,160,204,5,5,189,224,5,5,185,224,5,5,157,204,5,5,186,224,192,0,0,0,5,5,187,224,5,5,184,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,206,192,0,0,0,192,0,0,0,5,5,108,206,5,5,213,226,5,5,109,206,5,5,112,206,5,5,214,226,192,0,0,0,5,5,107,206,5,5,105,206,5,5,106,206,5,5,110,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,208,5,5,83,229,5,5,91,208,5,5,82,229,192,0,0,0,5,5,85,229,5,5,87,208,5,5,84,229,5,5,44,210,5,5,85,208,5,5,88,208,5,5,84,208,5,5,89,208,5,5,90,208,5,5,86,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,229,5,5,40,210,5,5,255,231,192,0,0,0,5,5,5,232,192,0,0,0,192,0,0,0,5,5,4,232,5,5,45,210,5,5,41,210,5,5,42,210,5,5,254,231,5,5,2,232,5,5,3,232,5,5,37,210,5,5,39,210,192,0,0,0,5,5,43,210,5,5,38,210,192,0,0,0,192,0,0,0,5,5,172,234,5,5,170,234,5,5,171,234,5,5,230,211,5,5,231,211,192,0,0,0,5,5,173,234,5,5,229,211,5,5,112,213,192,0,0,0,5,5,114,213,5,5,113,213,192,0,0,0,5,5,14,237,192,0,0,0,192,0,0,0,5,5,15,237,5,5,118,239,192,0,0,0,5,5,117,239,192,0,0,0,192,0,0,0,5,5,24,216,5,5,25,216,5,5,180,241,5,5,26,216,192,0,0,0,5,5,119,243,192,0,0,0,5,5,117,243,192,0,0,0,5,5,118,243,5,5,66,217,192,0,0,0,5,5,235,244,5,5,129,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,217,5,5,23,203,192,0,0,0,5,5,113,206,5,5,215,226,192,0,0,0,192,0,0,0,5,5,86,229,5,5,92,208,5,5,46,210,5,5,6,232,5,5,8,232,5,5,48,210,5,5,47,210,5,5,49,210,5,5,50,210,5,5,7,232,5,5,234,211,5,5,235,211,5,5,233,211,5,5,115,213,5,5,232,211,5,5,174,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,213,5,5,119,239,5,5,181,241,5,5,27,216,5,5,68,217,5,5,236,244,5,5,240,244,5,5,228,217,5,5,237,244,5,5,229,217,5,5,227,217,5,5,241,244,5,5,230,217,5,5,239,244,192,0,0,0,5,5,51,246,5,5,226,217,5,5,130,218,192,0,0,0,5,5,124,249,192,0,0,0,192,0,0,0,5,5,24,203,5,5,94,208,5,5,93,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,210,5,5,10,232,5,5,9,232,5,5,52,210,192,0,0,0,192,0,0,0,5,5,178,234,5,5,239,211,5,5,236,211,5,5,177,234,5,5,238,211,5,5,175,234,5,5,237,211,192,0,0,0,5,5,176,234,192,0,0,0,5,5,16,237,5,5,117,213,192,0,0,0,5,5,122,239,192,0,0,0,5,5,240,214,5,5,120,239,5,5,241,214,5,5,242,214,5,5,121,239,5,5,243,214,192,0,0,0,5,5,182,241,192,0,0,0,5,5,31,216,5,5,28,216,5,5,33,216,5,5,184,241,5,5,29,216,5,5,183,241,5,5,32,216,192,0,0,0,192,0,0,0,5,5,30,216,192,0,0,0,5,5,122,243,5,5,124,243,192,0,0,0,192,0,0,0,5,5,69,217,5,5,123,243,5,5,70,217,5,5,121,243,5,5,120,243,192,0,0,0,5,5,243,244,5,5,242,244,5,5,231,217,5,5,244,244,5,5,56,246,5,5,132,218,5,5,55,246,5,5,52,246,5,5,131,218,5,5,53,246,5,5,54,246,192,0,0,0,5,5,62,247,5,5,63,247,5,5,236,218,192,0,0,0,5,5,59,219,192,0,0,0,192,0,0,0,5,5,3,248,192,0,0,0,192,0,0,0,5,5,57,219,5,5,58,219,5,5,4,248,192,0,0,0,192,0,0,0,5,5,122,219,5,5,123,219,5,5,163,248,192,0,0,0,192,0,0,0,5,5,202,219,5,5,126,249,5,5,204,219,192,0,0,0,5,5,125,249,5,5,127,249,5,5,203,219,5,5,197,249,192,0,0,0,5,5,249,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,211,192,0,0,0,5,5,17,237,192,0,0,0,5,5,123,239,5,5,34,216,5,5,35,216,192,0,0,0,5,5,26,203,192,0,0,0,5,5,244,214,5,5,133,218,5,5,161,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,216,192,0,0,0,5,5,168,219,5,5,162,204,5,5,87,229,192,0,0,0,5,5,11,232,192,0,0,0,5,5,13,232,192,0,0,0,5,5,12,232,192,0,0,0,5,5,182,234,5,5,179,234,5,5,241,211,192,0,0,0,5,5,242,211,5,5,180,234,5,5,181,234,192,0,0,0,5,5,19,237,5,5,24,237,5,5,118,213,5,5,18,237,5,5,20,237,5,5,27,237,5,5,22,237,5,5,26,237,5,5,23,237,5,5,21,237,5,5,25,237,5,5,119,213,192,0,0,0,192,0,0,0,5,5,126,239,192,0,0,0,5,5,124,239,5,5,246,214,192,0,0,0,5,5,245,214,5,5,125,239,5,5,247,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,241,192,0,0,0,192,0,0,0,5,5,186,241,5,5,37,216,5,5,185,241,5,5,125,243,192,0,0,0,5,5,127,243,5,5,129,243,5,5,128,243,192,0,0,0,5,5,71,217,5,5,126,243,5,5,251,244,5,5,232,217,5,5,249,244,5,5,252,244,5,5,233,217,192,0,0,0,5,5,247,244,192,0,0,0,5,5,250,244,5,5,248,244,5,5,245,244,5,5,234,217,5,5,246,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,246,192,0,0,0,192,0,0,0,5,5,59,246,5,5,58,246,192,0,0,0,5,5,64,247,192,0,0,0,5,5,65,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,248,192,0,0,0,5,5,125,219,192,0,0,0,5,5,124,219,5,5,32,249,5,5,33,249,5,5,205,219,5,5,128,249,192,0,0,0,5,5,238,219,192,0,0,0,5,5,163,204,5,5,53,210,5,5,29,237,5,5,28,237,5,5,128,239,5,5,127,239,192,0,0,0,192,0,0,0,5,5,72,217,5,5,131,243,5,5,130,243,5,5,255,244,5,5,253,244,5,5,2,245,5,5,254,244,192,0,0,0,192,0,0,0,5,5,134,218,5,5,60,246,5,5,61,246,5,5,62,246,192,0,0,0,5,5,6,248,192,0,0,0,5,5,164,248,192,0,0,0,5,5,129,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,204,192,0,0,0,192,0,0,0,5,5,188,241,5,5,132,243,192,0,0,0,5,5,165,204,192,0,0,0,192,0,0,0,5,5,120,213,192,0,0,0,5,5,189,241,5,5,235,217,5,5,3,245,5,5,135,218,192,0,0,0,5,5,66,247,5,5,67,247,5,5,60,219,5,5,34,249,5,5,166,204,5,5,97,208,5,5,98,208,5,5,88,229,5,5,54,210,5,5,55,210,5,5,14,232,5,5,56,210,192,0,0,0,5,5,246,211,192,0,0,0,5,5,248,211,5,5,184,234,5,5,185,234,5,5,183,234,5,5,243,211,5,5,244,211,5,5,247,211,5,5,245,211,192,0,0,0,192,0,0,0,5,5,30,237,5,5,121,213,5,5,122,213,192,0,0,0,192,0,0,0,5,5,135,239,5,5,250,214,5,5,130,239,5,5,129,239,192,0,0,0,5,5,134,239,5,5,248,214,192,0,0,0,192,0,0,0,5,5,44,216,192,0,0,0,5,5,131,239,5,5,136,239,5,5,133,239,5,5,132,239,192,0,0,0,5,5,249,214,192,0,0,0,5,5,42,216,192,0,0,0,5,5,191,241,5,5,38,216,192,0,0,0,5,5,192,241,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,5,5,41,216,5,5,39,216,5,5,43,216,192,0,0,0,5,5,40,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,243,192,0,0,0,5,5,138,243,5,5,134,243,5,5,137,243,5,5,73,217,192,0,0,0,5,5,182,242,5,5,136,243,5,5,135,243,192,0,0,0,5,5,238,217,5,5,236,217,5,5,239,217,5,5,237,217,5,5,4,245,5,5,5,245,5,5,6,245,5,5,240,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,246,5,5,137,218,5,5,64,246,192,0,0,0,5,5,138,218,5,5,63,246,5,5,65,246,5,5,136,218,5,5,71,247,5,5,68,247,192,0,0,0,5,5,69,247,5,5,70,247,5,5,7,248,5,5,62,219,192,0,0,0,5,5,61,219,192,0,0,0,5,5,166,248,5,5,165,248,5,5,126,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,219,5,5,206,219,5,5,229,219,5,5,198,249,5,5,250,249,5,5,251,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,204,5,5,15,232,192,0,0,0,192,0,0,0,5,5,186,234,5,5,31,237,5,5,32,237,5,5,123,213,192,0,0,0,5,5,124,213,5,5,137,239,5,5,251,214,192,0,0,0,192,0,0,0,5,5,74,217,192,0,0,0,5,5,7,245,192,0,0,0,5,5,241,217,5,5,69,246,5,5,139,218,5,5,68,246,5,5,70,246,5,5,67,246,5,5,10,248,5,5,72,247,5,5,73,247,192,0,0,0,5,5,237,218,192,0,0,0,5,5,9,248,192,0,0,0,192,0,0,0,5,5,8,248,192,0,0,0,5,5,167,248,5,5,252,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,204,192,0,0,0,192,0,0,0,5,5,114,206,5,5,216,226,192,0,0,0,5,5,89,229,192,0,0,0,5,5,57,210,192,0,0,0,5,5,60,210,5,5,58,210,5,5,16,232,192,0,0,0,5,5,62,210,192,0,0,0,5,5,59,210,192,0,0,0,192,0,0,0,5,5,61,210,192,0,0,0,5,5,250,211,192,0,0,0,5,5,187,234,192,0,0,0,192,0,0,0,5,5,188,234,5,5,139,239,192,0,0,0,5,5,249,211,5,5,251,211,5,5,252,211,192,0,0,0,5,5,34,237,192,0,0,0,5,5,33,237,5,5,125,213,192,0,0,0,5,5,126,213,192,0,0,0,5,5,35,237,5,5,138,239,5,5,128,213,5,5,252,214,192,0,0,0,5,5,127,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,216,5,5,140,239,5,5,254,214,5,5,253,214,5,5,141,239,5,5,144,239,5,5,142,239,5,5,143,239,5,5,255,214,192,0,0,0,5,5,50,216,5,5,48,216,192,0,0,0,192,0,0,0,5,5,47,216,5,5,194,241,192,0,0,0,5,5,49,216,192,0,0,0,192,0,0,0,5,5,193,241,5,5,139,243,192,0,0,0,5,5,195,241,5,5,46,216,5,5,196,241,5,5,142,243,5,5,140,243,5,5,141,243,5,5,146,243,5,5,245,217,5,5,145,243,5,5,148,243,5,5,147,243,5,5,144,243,5,5,143,243,192,0,0,0,5,5,75,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,245,192,0,0,0,5,5,9,245,5,5,244,217,5,5,242,217,5,5,243,217,192,0,0,0,5,5,8,245,192,0,0,0,5,5,73,246,192,0,0,0,5,5,140,218,192,0,0,0,5,5,72,246,5,5,71,246,5,5,141,218,192,0,0,0,5,5,78,247,5,5,77,247,192,0,0,0,5,5,75,247,192,0,0,0,5,5,74,247,5,5,239,218,5,5,238,218,5,5,79,247,5,5,168,248,5,5,127,219,5,5,12,248,5,5,63,219,5,5,11,248,5,5,76,247,192,0,0,0,5,5,169,248,5,5,170,219,192,0,0,0,5,5,230,219,5,5,199,249,192,0,0,0,5,5,253,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,204,5,5,90,229,5,5,149,243,5,5,171,204,192,0,0,0,192,0,0,0,5,5,37,237,5,5,36,237,5,5,197,241,192,0,0,0,192,0,0,0,5,5,151,243,192,0,0,0,5,5,150,243,192,0,0,0,5,5,246,217,5,5,74,246,5,5,75,246,5,5,240,218,192,0,0,0,192,0,0,0,5,5,254,249,5,5,115,206,5,5,64,210,5,5,63,210,5,5,189,234,5,5,191,234,5,5,254,211,5,5,190,234,5,5,253,211,5,5,255,211,5,5,192,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,237,5,5,41,237,5,5,40,237,192,0,0,0,5,5,43,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,213,5,5,42,237,5,5,38,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,237,192,0,0,0,5,5,151,239,192,0,0,0,5,5,154,239,5,5,156,239,5,5,146,239,5,5,150,239,5,5,147,239,5,5,3,215,5,5,6,215,5,5,8,215,5,5,148,239,5,5,149,239,5,5,7,215,5,5,152,239,5,5,155,239,5,5,153,239,5,5,9,215,192,0,0,0,5,5,5,215,5,5,145,239,5,5,2,215,192,0,0,0,5,5,4,215,192,0,0,0,192,0,0,0,5,5,52,216,5,5,203,241,5,5,201,241,5,5,200,241,192,0,0,0,5,5,206,241,192,0,0,0,5,5,205,241,5,5,204,241,192,0,0,0,5,5,199,241,5,5,51,216,5,5,198,241,192,0,0,0,5,5,202,241,5,5,53,216,192,0,0,0,192,0,0,0,5,5,154,243,192,0,0,0,5,5,158,243,5,5,155,243,5,5,157,243,5,5,156,243,5,5,153,243,5,5,159,243,5,5,162,243,5,5,160,243,5,5,161,243,5,5,77,217,192,0,0,0,5,5,76,217,5,5,152,243,5,5,163,243,5,5,15,245,5,5,18,245,5,5,20,245,5,5,19,245,192,0,0,0,5,5,13,245,5,5,17,245,5,5,12,245,192,0,0,0,5,5,14,245,5,5,247,217,5,5,11,245,192,0,0,0,5,5,16,245,192,0,0,0,192,0,0,0,5,5,88,246,5,5,77,246,5,5,142,218,192,0,0,0,192,0,0,0,5,5,143,218,5,5,76,246,5,5,81,246,5,5,87,246,5,5,79,246,5,5,86,246,192,0,0,0,5,5,83,246,192,0,0,0,5,5,82,246,5,5,85,246,5,5,80,246,5,5,78,246,192,0,0,0,5,5,84,246,192,0,0,0,5,5,86,247,5,5,84,247,5,5,241,218,5,5,83,247,5,5,89,247,5,5,87,247,192,0,0,0,5,5,242,218,5,5,82,247,5,5,80,247,192,0,0,0,5,5,81,247,5,5,244,218,5,5,85,247,5,5,243,218,5,5,88,247,5,5,13,248,5,5,19,248,192,0,0,0,192,0,0,0,5,5,14,248,5,5,67,219,5,5,20,248,5,5,66,219,5,5,18,248,5,5,17,248,5,5,65,219,5,5,16,248,5,5,64,219,5,5,15,248,192,0,0,0,5,5,175,248,5,5,177,248,5,5,176,248,192,0,0,0,5,5,173,248,5,5,129,219,5,5,170,248,5,5,174,248,5,5,179,248,192,0,0,0,5,5,178,248,5,5,171,248,5,5,172,248,5,5,128,219,5,5,35,249,5,5,173,219,192,0,0,0,5,5,36,249,5,5,171,219,5,5,172,219,192,0,0,0,192,0,0,0,5,5,130,249,5,5,207,219,5,5,228,249,192,0,0,0,5,5,239,219,192,0,0,0,5,5,255,249,5,5,240,219,5,5,2,250,5,5,3,250,5,5,17,250,5,5,16,250,5,5,255,219,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,206,192,0,0,0,192,0,0,0,5,5,194,234,192,0,0,0,5,5,193,234,192,0,0,0,5,5,130,213,5,5,131,213,5,5,45,237,192,0,0,0,5,5,157,239,5,5,209,241,192,0,0,0,192,0,0,0,5,5,10,215,5,5,54,216,5,5,207,241,192,0,0,0,5,5,210,241,5,5,55,216,192,0,0,0,5,5,164,243,5,5,208,241,5,5,21,245,5,5,248,217,5,5,89,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,247,5,5,90,247,192,0,0,0,192,0,0,0,5,5,91,247,192,0,0,0,192,0,0,0,5,5,21,248,192,0,0,0,5,5,68,219,5,5,180,248,5,5,176,219,5,5,130,219,5,5,174,219,5,5,175,219,5,5,131,249,5,5,231,219,192,0,0,0,5,5,117,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,245,192,0,0,0,192,0,0,0,5,5,217,226,192,0,0,0,5,5,2,212,192,0,0,0,5,5,46,237,192,0,0,0,192,0,0,0,5,5,132,213,5,5,47,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,239,5,5,158,239,5,5,57,216,5,5,11,215,5,5,12,215,192,0,0,0,5,5,162,239,5,5,161,239,5,5,160,239,192,0,0,0,192,0,0,0,5,5,211,241,5,5,214,241,192,0,0,0,5,5,213,241,5,5,212,241,5,5,56,216,5,5,168,243,5,5,166,243,5,5,165,243,192,0,0,0,192,0,0,0,5,5,167,243,192,0,0,0,5,5,249,217,5,5,24,245,5,5,25,245,5,5,250,217,192,0,0,0,5,5,23,245,192,0,0,0,5,5,91,246,5,5,90,246,5,5,93,246,5,5,144,218,5,5,92,246,192,0,0,0,5,5,93,247,5,5,95,247,5,5,94,247,192,0,0,0,192,0,0,0,5,5,22,248,5,5,25,248,5,5,23,248,5,5,24,248,5,5,181,248,5,5,131,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,249,5,5,38,249,5,5,39,249,192,0,0,0,5,5,208,219,5,5,232,219,5,5,4,250,5,5,118,206,192,0,0,0,5,5,13,215,5,5,58,216,5,5,26,245,192,0,0,0,5,5,182,248,192,0,0,0,192,0,0,0,5,5,18,250,5,5,218,226,192,0,0,0,5,5,2,220,5,5,119,206,5,5,215,241,192,0,0,0,5,5,27,245,192,0,0,0,5,5,94,246,192,0,0,0,192,0,0,0,5,5,26,248,5,5,183,248,5,5,120,206,192,0,0,0,5,5,48,237,5,5,49,237,192,0,0,0,5,5,133,213,5,5,134,213,5,5,164,239,5,5,15,215,5,5,14,215,5,5,163,239,192,0,0,0,5,5,169,243,192,0,0,0,5,5,28,245,5,5,30,245,5,5,29,245,5,5,253,217,5,5,252,217,5,5,251,217,192,0,0,0,5,5,70,219,5,5,27,248,192,0,0,0,5,5,69,219,5,5,185,248,5,5,184,248,192,0,0,0,5,5,209,219,5,5,132,249,5,5,99,208,5,5,195,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,237,5,5,50,237,5,5,51,237,192,0,0,0,192,0,0,0,5,5,173,239,192,0,0,0,5,5,168,239,5,5,165,239,5,5,172,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,239,192,0,0,0,192,0,0,0,5,5,17,215,5,5,171,239,5,5,167,239,192,0,0,0,192,0,0,0,5,5,166,239,5,5,170,239,5,5,169,239,5,5,16,215,192,0,0,0,192,0,0,0,5,5,226,241,5,5,221,241,5,5,219,241,5,5,228,241,5,5,220,241,192,0,0,0,5,5,216,241,192,0,0,0,5,5,222,241,192,0,0,0,192,0,0,0,5,5,217,241,5,5,178,243,5,5,218,241,5,5,229,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,241,5,5,59,216,5,5,224,241,5,5,223,241,192,0,0,0,5,5,227,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,243,5,5,173,243,192,0,0,0,192,0,0,0,5,5,172,243,192,0,0,0,5,5,180,243,5,5,175,243,5,5,179,243,192,0,0,0,5,5,177,243,5,5,176,243,5,5,174,243,192,0,0,0,5,5,171,243,192,0,0,0,5,5,80,217,5,5,79,217,192,0,0,0,5,5,81,217,5,5,78,217,5,5,181,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,245,5,5,39,245,192,0,0,0,5,5,37,245,5,5,41,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,245,192,0,0,0,5,5,34,245,5,5,4,218,5,5,35,245,192,0,0,0,5,5,33,245,5,5,40,245,192,0,0,0,5,5,32,245,5,5,31,245,5,5,3,218,5,5,255,217,5,5,254,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,245,5,5,103,246,5,5,109,246,5,5,147,218,5,5,104,246,192,0,0,0,5,5,107,246,5,5,111,246,5,5,148,218,5,5,106,246,192,0,0,0,5,5,98,246,192,0,0,0,5,5,97,246,5,5,110,246,5,5,101,246,192,0,0,0,5,5,99,246,5,5,108,246,5,5,100,246,5,5,146,218,5,5,145,218,192,0,0,0,5,5,95,246,5,5,96,246,5,5,105,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,247,5,5,101,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,247,5,5,105,247,5,5,103,247,5,5,97,247,5,5,108,247,192,0,0,0,5,5,96,247,192,0,0,0,5,5,246,218,5,5,104,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,247,5,5,245,218,5,5,107,247,192,0,0,0,192,0,0,0,5,5,106,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,248,5,5,29,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,248,192,0,0,0,5,5,32,248,5,5,35,248,5,5,72,219,192,0,0,0,192,0,0,0,5,5,33,248,5,5,34,248,192,0,0,0,5,5,28,248,5,5,31,248,5,5,71,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,219,5,5,196,248,5,5,191,248,5,5,195,248,192,0,0,0,5,5,198,248,5,5,194,248,192,0,0,0,5,5,190,248,192,0,0,0,5,5,135,219,5,5,193,248,5,5,197,248,5,5,134,219,5,5,188,248,5,5,102,247,5,5,192,248,192,0,0,0,192,0,0,0,5,5,189,248,192,0,0,0,5,5,186,248,192,0,0,0,5,5,187,248,5,5,132,219,5,5,43,249,5,5,45,249,5,5,48,249,5,5,44,249,5,5,49,249,192,0,0,0,5,5,42,249,192,0,0,0,5,5,40,249,192,0,0,0,5,5,177,219,5,5,46,249,5,5,179,219,5,5,178,219,5,5,41,249,5,5,47,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,249,5,5,210,219,5,5,138,249,192,0,0,0,5,5,136,249,5,5,133,249,192,0,0,0,192,0,0,0,5,5,135,249,5,5,134,249,5,5,200,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,249,5,5,201,249,192,0,0,0,192,0,0,0,5,5,231,249,192,0,0,0,5,5,230,249,5,5,229,249,5,5,232,249,192,0,0,0,5,5,248,219,5,5,249,219,5,5,24,250,5,5,28,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,208,5,5,17,232,5,5,198,234,192,0,0,0,5,5,3,212,5,5,196,234,192,0,0,0,192,0,0,0,5,5,197,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,237,5,5,54,237,5,5,137,213,5,5,135,213,5,5,55,237,5,5,136,213,5,5,179,239,192,0,0,0,5,5,182,239,5,5,176,239,5,5,183,239,5,5,175,239,5,5,177,239,192,0,0,0,5,5,178,239,5,5,181,239,192,0,0,0,192,0,0,0,5,5,20,215,5,5,186,239,5,5,185,239,5,5,18,215,5,5,180,239,5,5,184,239,5,5,19,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,241,192,0,0,0,5,5,64,216,192,0,0,0,5,5,234,241,5,5,60,216,192,0,0,0,5,5,231,241,5,5,237,241,5,5,240,241,192,0,0,0,5,5,65,216,192,0,0,0,5,5,236,241,5,5,233,241,5,5,241,241,5,5,232,241,192,0,0,0,5,5,238,241,5,5,61,216,192,0,0,0,5,5,230,241,5,5,62,216,192,0,0,0,5,5,63,216,5,5,235,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,243,5,5,186,243,5,5,187,243,5,5,190,243,5,5,188,243,192,0,0,0,5,5,182,243,192,0,0,0,192,0,0,0,5,5,185,243,5,5,195,243,5,5,189,243,192,0,0,0,192,0,0,0,5,5,82,217,192,0,0,0,5,5,197,243,5,5,194,243,5,5,83,217,5,5,196,243,5,5,183,243,5,5,192,243,5,5,193,243,192,0,0,0,5,5,191,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,245,5,5,48,245,5,5,51,245,192,0,0,0,192,0,0,0,5,5,45,245,192,0,0,0,5,5,5,218,5,5,53,245,5,5,44,245,5,5,54,245,192,0,0,0,5,5,50,245,5,5,52,245,5,5,56,245,5,5,49,245,5,5,57,245,5,5,47,245,5,5,43,245,5,5,6,218,192,0,0,0,5,5,55,245,5,5,7,218,5,5,150,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,243,5,5,137,246,5,5,128,246,5,5,152,218,5,5,124,246,5,5,153,218,192,0,0,0,192,0,0,0,5,5,133,246,5,5,127,246,5,5,117,246,5,5,151,218,5,5,130,246,5,5,125,246,5,5,126,246,192,0,0,0,5,5,112,246,5,5,119,246,5,5,134,246,192,0,0,0,5,5,131,246,192,0,0,0,5,5,123,246,192,0,0,0,5,5,135,246,5,5,118,246,5,5,113,246,5,5,132,246,192,0,0,0,5,5,115,246,5,5,129,246,5,5,120,246,5,5,136,246,5,5,116,246,5,5,149,218,5,5,114,246,5,5,121,246,5,5,122,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,247,192,0,0,0,5,5,113,247,192,0,0,0,5,5,118,247,192,0,0,0,5,5,130,247,5,5,121,247,5,5,114,247,5,5,110,247,5,5,123,247,5,5,116,247,5,5,119,247,5,5,112,247,5,5,126,247,5,5,109,247,5,5,117,247,5,5,122,247,5,5,124,247,5,5,127,247,5,5,111,247,192,0,0,0,5,5,131,247,5,5,132,247,5,5,125,247,5,5,129,247,5,5,120,247,192,0,0,0,5,5,52,248,5,5,55,248,192,0,0,0,5,5,73,219,192,0,0,0,5,5,54,248,5,5,59,248,5,5,57,248,5,5,74,219,5,5,48,248,5,5,38,248,5,5,37,248,5,5,76,219,5,5,50,248,5,5,51,248,5,5,47,248,5,5,39,248,192,0,0,0,5,5,44,248,5,5,128,247,192,0,0,0,5,5,40,248,5,5,75,219,5,5,46,248,192,0,0,0,5,5,45,248,192,0,0,0,5,5,41,248,5,5,53,248,192,0,0,0,5,5,42,248,5,5,203,248,5,5,56,248,5,5,58,248,5,5,49,248,5,5,43,248,5,5,204,248,5,5,206,248,5,5,200,248,5,5,136,219,192,0,0,0,5,5,213,248,5,5,211,248,5,5,137,219,5,5,210,248,5,5,209,248,5,5,202,248,5,5,199,248,5,5,205,248,5,5,214,248,5,5,201,248,5,5,207,248,192,0,0,0,5,5,58,249,5,5,63,249,5,5,53,249,5,5,56,249,5,5,180,219,5,5,60,249,192,0,0,0,5,5,67,249,5,5,208,248,192,0,0,0,5,5,54,249,5,5,64,249,5,5,68,249,5,5,59,249,5,5,52,249,5,5,62,249,192,0,0,0,5,5,61,249,5,5,66,249,5,5,65,249,5,5,212,248,5,5,57,249,5,5,51,249,5,5,55,249,5,5,211,219,5,5,212,219,5,5,50,249,192,0,0,0,5,5,149,249,5,5,140,249,5,5,148,249,5,5,145,249,5,5,146,249,5,5,139,249,5,5,142,249,5,5,150,249,5,5,144,249,5,5,143,249,5,5,141,249,192,0,0,0,5,5,147,249,192,0,0,0,5,5,203,249,192,0,0,0,5,5,204,249,192,0,0,0,5,5,206,249,5,5,205,249,5,5,208,249,5,5,207,249,5,5,234,249,5,5,233,249,5,5,5,250,192,0,0,0,5,5,6,250,192,0,0,0,5,5,19,250,5,5,253,219,5,5,3,220,192,0,0,0,5,5,29,250,5,5,4,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,218,5,5,60,248,192,0,0,0,5,5,213,219,5,5,214,219,192,0,0,0,5,5,102,208,5,5,199,234,192,0,0,0,5,5,4,212,5,5,187,239,192,0,0,0,192,0,0,0,5,5,243,241,5,5,244,241,5,5,242,241,5,5,201,243,5,5,200,243,5,5,84,217,5,5,59,245,5,5,202,243,5,5,58,245,192,0,0,0,192,0,0,0,5,5,139,246,5,5,154,218,5,5,156,218,5,5,138,246,192,0,0,0,192,0,0,0,5,5,155,218,192,0,0,0,5,5,133,247,5,5,135,247,5,5,134,247,5,5,61,248,5,5,77,219,192,0,0,0,5,5,181,219,5,5,151,249,5,5,209,249,192,0,0,0,192,0,0,0,5,5,32,250,5,5,103,208,192,0,0,0,5,5,56,237,192,0,0,0,5,5,21,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,241,5,5,245,241,192,0,0,0,5,5,203,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,218,5,5,248,218,5,5,215,248,5,5,25,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,208,5,5,138,213,192,0,0,0,5,5,22,215,192,0,0,0,5,5,140,246,192,0,0,0,5,5,69,249,5,5,65,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,219,5,5,66,210,5,5,23,215,5,5,85,217,5,5,70,249,5,5,67,210,192,0,0,0,5,5,188,239,5,5,67,216,5,5,247,241,5,5,248,241,192,0,0,0,5,5,66,216,192,0,0,0,5,5,205,243,5,5,89,217,5,5,87,217,5,5,88,217,5,5,86,217,5,5,60,245,5,5,8,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,247,5,5,136,247,5,5,139,247,5,5,138,247,5,5,249,218,192,0,0,0,192,0,0,0,5,5,62,248,192,0,0,0,5,5,64,248,5,5,63,248,5,5,78,219,5,5,216,248,192,0,0,0,5,5,71,249,5,5,72,249,5,5,182,219,5,5,210,249,5,5,235,249,5,5,250,219,192,0,0,0,5,5,18,232,5,5,249,241,5,5,206,243,5,5,141,246,5,5,200,234,192,0,0,0,5,5,207,243,5,5,62,245,5,5,61,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,249,5,5,215,219,192,0,0,0,5,5,211,249,5,5,236,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,212,5,5,189,239,5,5,190,239,192,0,0,0,5,5,250,241,5,5,6,212,192,0,0,0,5,5,9,218,5,5,63,245,192,0,0,0,5,5,66,248,5,5,79,219,5,5,67,248,5,5,65,248,5,5,74,249,192,0,0,0,5,5,152,249,192,0,0,0,5,5,7,212,192,0,0,0,5,5,210,243,5,5,209,243,5,5,208,243,5,5,64,245,192,0,0,0,192,0,0,0,5,5,68,245,5,5,67,245,5,5,66,245,5,5,65,245,5,5,10,218,5,5,142,246,5,5,141,247,5,5,250,218,5,5,140,247,5,5,68,248,5,5,219,248,5,5,218,248,5,5,138,219,5,5,217,248,5,5,77,249,5,5,76,249,5,5,75,249,192,0,0,0,192,0,0,0,5,5,139,213,192,0,0,0,5,5,251,241,5,5,90,217,192,0,0,0,5,5,143,246,5,5,144,246,5,5,220,248,5,5,78,249,192,0,0,0,192,0,0,0,5,5,153,249,5,5,212,249,5,5,7,250,5,5,34,250,5,5,140,213,5,5,91,217,5,5,69,245,5,5,145,246,5,5,69,248,5,5,79,249,192,0,0,0,192,0,0,0,5,5,25,215,192,0,0,0,5,5,211,243,5,5,70,245,5,5,146,246,5,5,147,246,5,5,148,246,5,5,146,247,192,0,0,0,5,5,142,247,5,5,80,219,5,5,145,247,5,5,144,247,5,5,251,218,5,5,143,247,5,5,253,218,192,0,0,0,5,5,252,218,5,5,71,248,5,5,70,248,5,5,81,219,5,5,82,219,192,0,0,0,192,0,0,0,5,5,140,219,5,5,221,248,5,5,139,219,192,0,0,0,5,5,82,249,5,5,83,249,5,5,81,249,5,5,80,249,5,5,217,219,192,0,0,0,5,5,154,249,5,5,155,249,5,5,156,249,5,5,216,219,5,5,213,249,5,5,216,249,5,5,215,249,5,5,214,249,192,0,0,0,192,0,0,0,5,5,33,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,216,192,0,0,0,192,0,0,0,5,5,17,218,5,5,147,247,5,5,72,248,192,0,0,0,5,5,141,219,5,5,222,248,192,0,0,0,192,0,0,0,5,5,35,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,243,192,0,0,0,5,5,223,248,192,0,0,0,5,5,237,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,206,5,5,47,201,5,5,135,201,5,5,168,211,5,5,228,210,5,5,135,200,5,5,153,199,5,5,69,216,5,5,69,216,5,5,104,203,5,5,14,203,5,5,136,208,5,5,248,201,5,5,21,218,5,5,23,219,5,5,67,218,5,5,160,219,5,5,255,216,5,5,44,213,5,5,164,219,5,5,13,214,5,5,246,203,5,5,157,205,5,5,173,205,5,5,101,211,5,5,208,211,5,5,53,216,5,5,68,210,5,5,182,200,5,5,15,219,5,5,19,219,5,5,30,219,5,5,4,220,5,5,181,208,5,5,140,216,5,5,176,217,5,5,215,218,5,5,76,202,5,5,72,218,5,5,35,219,5,5,190,208,5,5,99,205,5,5,133,205,5,5,162,205,5,5,150,204,5,5,172,201,5,5,170,200,5,5,120,208,5,5,78,215,5,5,30,218,5,5,181,218,5,5,149,215,5,5,110,200,5,5,209,218,5,5,117,211,5,5,177,211,5,5,59,219,5,5,17,215,5,5,212,219,5,5,43,211,5,5,50,211,5,5,234,212,5,5,92,231,5,5,15,216,5,5,102,208,5,5,171,214,5,5,14,218,5,5,7,201,5,5,104,219,5,5,106,219,5,5,94,201,5,5,75,214,5,5,172,211,5,5,236,211,5,5,96,217,5,5,76,212,5,5,10,214,5,5,133,207,5,5,151,212,5,5,221,207,5,5,202,216,5,5,158,204,5,5,146,206,5,5,117,200,5,5,150,213,5,5,210,204,5,5,54,211,5,5,233,212,5,5,187,209,5,5,84,208,5,5,112,219,5,5,142,223,5,5,13,214,5,5,229,215,5,5,7,199,5,5,67,212,5,5,151,203,5,5,159,207,5,5,174,207,5,5,127,199,5,5,138,242,5,5,33,203,5,5,196,208,5,5,4,199,5,5,154,202,5,5,251,213,5,5,237,205,5,5,156,206,5,5,108,210,5,5,44,204,5,5,106,211,5,5,57,213,5,5,104,207,5,5,137,201,5,5,67,201,5,5,181,203,5,5,107,204,5,5,26,207,5,5,171,207,5,5,29,203,5,5,187,201,192,0,0,0,5,5,81,207,5,5,158,217,5,5,120,201,5,5,160,214,5,5,20,210,5,5,74,216,5,5,194,200,5,5,0,179,5,5,18,218,5,5,87,205,5,5,124,217,5,5,187,218,5,5,238,214,5,5,255,219,5,5,155,218,5,5,23,215,5,5,0,151,5,5,87,215,5,5,109,215,5,5,151,248,5,5,61,200,5,5,219,213,5,5,144,219,5,5,244,213,5,5,160,212,5,5,240,210,5,5,50,238,192,0,0,0,5,5,99,214,5,5,222,216,5,5,207,214,5,5,128,214,5,5,59,208,5,5,51,217,5,5,2,200,5,5,7,200,5,5,82,203,5,5,158,205,5,5,215,209,5,5,57,213,5,5,135,210,5,5,56,202,5,5,51,207,5,5,131,216,5,5,56,218,5,5,134,217,5,5,111,199,5,5,208,221,5,5,67,212,5,5,92,216,5,5,46,222,5,5,21,204,5,5,51,214,5,5,227,207,5,5,233,207,5,5,221,211,5,5,239,211,5,5,203,219,5,5,122,213,5,5,171,201,5,5,146,217,5,5,230,218,5,5,67,217,5,5,200,208,5,5,0,142,5,5,13,212,5,5,187,213,5,5,249,200,5,5,85,205,5,5,13,214,5,5,132,215,5,5,167,216,5,5,178,238,5,5,3,216,5,5,68,216,5,5,183,210,5,5,152,201,5,5,153,213,5,5,86,222,5,5,219,203,5,5,236,203,5,5,230,210,5,5,169,205,5,5,178,205,5,5,191,207,5,5,239,205,5,5,136,218,5,5,28,199,5,5,227,213,5,5,86,208,5,5,203,204,5,5,229,206,5,5,136,207,5,5,208,214,5,5,147,203,5,5,152,210,5,5,110,205,5,5,159,207,5,5,42,210,5,5,173,200,5,5,14,200,5,5,192,213,5,5,110,202,5,5,49,201,5,5,99,207,5,5,155,202,5,5,163,207,5,5,107,209,5,5,185,215,192,0,0,0,5,5,137,211,5,5,150,201,5,5,226,217,5,5,153,206,5,5,226,210,5,5,183,200,5,5,127,215,5,5,140,215,5,5,208,218,192,0,0,0,5,5,178,219,5,5,181,219,5,5,131,202,5,5,120,207,5,5,233,216,5,5,221,199,5,5,200,207,5,5,208,207,5,5,193,202,5,5,186,202,5,5,91,218,5,5,17,199,5,5,39,206,5,5,196,201,5,5,34,199,5,5,139,203,5,5,85,202,5,5,175,215,5,5,53,200,5,5,240,203,5,5,254,213,5,5,247,215,5,5,131,200,5,5,160,204,5,5,124,201,5,5,84,212,5,5,0,169,5,5,51,232,192,0,0,0,192,0,0,0,5,5,112,210,192,0,0,0,5,5,251,208,192,0,0,0,192,0,0,0,5,5,196,239,192,0,0,0,5,5,191,205,192,0,0,0,5,5,215,205,5,5,194,207,5,5,207,212,5,5,240,211,5,5,228,212,5,5,109,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,214,192,0,0,0,192,0,0,0,5,5,11,210,5,5,73,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,210,5,5,249,211,5,5,46,216,5,5,74,219,192,0,0,0,192,0,0,0,5,5,44,203,5,5,8,212,5,5,167,200,5,5,64,203,5,5,85,210,5,5,206,201,5,5,130,208,5,5,32,212,5,5,44,215,192,0,0,0,5,5,24,215,5,5,191,213,5,5,16,220,5,5,59,205,5,5,211,208,5,5,221,213,5,5,19,218,5,5,61,207,5,5,189,203,5,5,254,208,5,5,96,207,5,5,139,205,5,5,131,207,5,5,153,212,5,5,82,209,192,0,0,0,5,5,94,209,5,5,46,211,5,5,213,202,5,5,58,204,5,5,59,204,5,5,211,205,5,5,214,205,5,5,216,205,5,5,208,212,5,5,206,212,5,5,82,214,5,5,67,204,5,5,63,211,5,5,99,214,5,5,183,215,5,5,209,216,5,5,79,211,5,5,225,202,5,5,18,206,192,0,0,0,192,0,0,0,5,5,189,209,5,5,153,214,5,5,218,209,5,5,230,215,5,5,191,217,5,5,67,213,5,5,98,218,192,0,0,0,5,5,11,210,5,5,130,218,5,5,60,219,5,5,40,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,201,192,0,0,0,5,5,252,199,5,5,149,221,5,5,114,199,5,5,31,215,5,5,63,203,5,5,0,171,5,5,130,208,5,5,169,206,5,5,151,208,5,5,60,232,5,5,112,210,5,5,175,213,5,5,249,201,5,5,250,201,5,5,203,206,5,5,227,239,5,5,52,235,5,5,51,235,5,5,247,206,5,5,133,232,5,5,16,207,5,5,150,210,5,5,149,210,5,5,221,213,192,0,0,0,5,5,19,218,5,5,104,216,5,5,16,230,5,5,170,210,5,5,239,208,5,5,56,207,5,5,251,208,5,5,99,205,5,5,80,207,5,5,54,201,5,5,80,199,5,5,104,207,5,5,236,203,192,0,0,0,5,5,67,209,5,5,153,212,192,0,0,0,5,5,82,209,5,5,174,216,5,5,158,216,5,5,197,199,192,0,0,0,5,5,229,235,192,0,0,0,192,0,0,0,5,5,65,238,5,5,59,214,5,5,191,205,5,5,184,207,5,5,210,202,5,5,227,230,192,0,0,0,5,5,82,238,5,5,188,240,5,5,63,211,192,0,0,0,5,5,75,211,5,5,99,214,5,5,34,231,5,5,225,202,5,5,28,206,5,5,186,209,5,5,44,241,5,5,24,243,5,5,187,217,5,5,218,209,5,5,169,214,5,5,165,214,5,5,164,214,5,5,230,215,5,5,229,215,5,5,233,215,5,5,191,217,5,5,162,219,5,5,98,218,5,5,249,215,5,5,2,216,5,5,73,243,5,5,235,236,5,5,81,229,5,5,130,218,5,5,240,211,192,0,0,0,5,5,60,219,192,0,0,0,5,5,40,216,5,5,94,247,5,5,69,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,161,192,0,0,0,192,0,0,0,5,5,157,200,5,5,44,203,5,5,4,223,192,0,0,0,5,5,122,206,5,5,108,208,5,5,8,212,5,5,15,212,192,0,0,0,192,0,0,0,5,5,167,200,5,5,184,201,192,0,0,0,5,5,188,201,192,0,0,0,192,0,0,0,5,5,27,199,5,5,254,199,192,0,0,0,5,5,31,199,5,5,206,204,192,0,0,0,5,5,118,199,192,0,0,0,192,0,0,0,5,5,8,220,5,5,0,170,192,0,0,0,5,5,193,201,5,5,178,221,5,5,116,208,5,5,81,210,192,0,0,0,5,5,63,203,5,5,64,203,5,5,85,210,5,5,0,171,5,5,125,199,5,5,126,199,5,5,127,199,5,5,131,199,5,5,206,201,5,5,123,208,5,5,181,200,192,0,0,0,5,5,219,204,5,5,219,204,5,5,219,204,192,0,0,0,5,5,100,200,5,5,47,199,5,5,222,204,192,0,0,0,5,5,147,199,5,5,151,199,5,5,26,200,192,0,0,0,5,5,200,200,5,5,193,200,5,5,232,201,5,5,39,223,192,0,0,0,5,5,224,204,192,0,0,0,5,5,176,206,5,5,159,209,5,5,159,209,5,5,151,208,5,5,150,208,5,5,139,208,5,5,66,232,5,5,43,212,5,5,32,212,192,0,0,0,192,0,0,0,5,5,168,213,5,5,34,199,192,0,0,0,5,5,100,203,5,5,34,227,5,5,59,227,5,5,96,203,5,5,2,225,5,5,158,208,5,5,98,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,220,5,5,39,200,5,5,54,212,5,5,195,206,192,0,0,0,192,0,0,0,5,5,7,205,5,5,5,205,192,0,0,0,5,5,109,203,5,5,199,206,192,0,0,0,192,0,0,0,5,5,186,213,5,5,87,245,5,5,87,245,192,0,0,0,192,0,0,0,5,5,106,232,5,5,67,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,5,5,217,206,5,5,16,220,192,0,0,0,5,5,2,221,192,0,0,0,5,5,194,229,192,0,0,0,192,0,0,0,5,5,195,229,5,5,38,235,5,5,142,201,5,5,233,206,192,0,0,0,5,5,184,208,5,5,43,225,5,5,186,208,5,5,128,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,223,5,5,122,227,5,5,240,206,5,5,190,208,192,0,0,0,5,5,0,195,192,0,0,0,192,0,0,0,5,5,99,226,5,5,17,222,5,5,17,222,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,201,5,5,248,206,192,0,0,0,192,0,0,0,5,5,16,201,5,5,15,201,192,0,0,0,5,5,59,225,192,0,0,0,192,0,0,0,5,5,59,205,192,0,0,0,5,5,22,207,5,5,143,210,5,5,151,210,5,5,150,210,5,5,151,210,5,5,71,235,5,5,221,213,5,5,62,215,5,5,224,213,5,5,147,237,5,5,44,242,5,5,19,218,5,5,21,218,5,5,69,200,5,5,24,207,192,0,0,0,5,5,98,202,5,5,86,202,5,5,76,205,192,0,0,0,5,5,77,205,5,5,171,203,5,5,53,207,5,5,39,207,5,5,78,225,192,0,0,0,5,5,167,232,5,5,152,232,5,5,37,207,192,0,0,0,5,5,228,213,192,0,0,0,5,5,3,230,5,5,107,235,192,0,0,0,5,5,61,207,5,5,177,210,192,0,0,0,192,0,0,0,5,5,96,205,5,5,89,205,192,0,0,0,5,5,254,208,192,0,0,0,192,0,0,0,5,5,53,203,5,5,142,206,5,5,114,208,192,0,0,0,5,5,203,222,192,0,0,0,5,5,99,205,5,5,80,207,5,5,214,233,5,5,55,201,5,5,59,201,192,0,0,0,192,0,0,0,5,5,215,223,5,5,81,222,192,0,0,0,5,5,96,207,192,0,0,0,192,0,0,0,5,5,110,225,5,5,75,230,192,0,0,0,5,5,210,232,5,5,138,212,192,0,0,0,5,5,70,242,192,0,0,0,5,5,124,216,192,0,0,0,5,5,85,200,192,0,0,0,5,5,73,240,192,0,0,0,5,5,209,210,5,5,158,235,5,5,104,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,200,192,0,0,0,5,5,172,202,5,5,134,222,5,5,77,221,5,5,184,225,5,5,244,203,5,5,139,205,5,5,236,203,5,5,147,205,5,5,138,205,5,5,151,205,192,0,0,0,5,5,231,223,5,5,41,209,5,5,56,209,192,0,0,0,5,5,67,209,5,5,221,210,192,0,0,0,5,5,125,207,5,5,32,214,192,0,0,0,192,0,0,0,5,5,237,237,5,5,188,246,192,0,0,0,5,5,31,218,192,0,0,0,5,5,169,247,5,5,92,201,192,0,0,0,5,5,7,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,238,192,0,0,0,5,5,254,219,5,5,158,216,192,0,0,0,192,0,0,0,5,5,86,209,5,5,221,235,192,0,0,0,192,0,0,0,5,5,43,218,5,5,94,199,192,0,0,0,5,5,202,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,211,5,5,229,235,5,5,55,238,5,5,45,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,222,192,0,0,0,5,5,174,207,192,0,0,0,5,5,108,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,205,5,5,195,205,5,5,227,230,192,0,0,0,5,5,71,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,207,5,5,43,211,5,5,82,238,192,0,0,0,192,0,0,0,5,5,214,205,192,0,0,0,192,0,0,0,5,5,207,212,5,5,33,226,192,0,0,0,5,5,82,214,5,5,27,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,236,192,0,0,0,192,0,0,0,5,5,92,214,5,5,168,215,192,0,0,0,192,0,0,0,5,5,206,240,192,0,0,0,5,5,177,242,192,0,0,0,5,5,73,204,192,0,0,0,5,5,19,231,192,0,0,0,5,5,246,212,192,0,0,0,5,5,208,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,240,192,0,0,0,5,5,158,228,192,0,0,0,5,5,225,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,216,192,0,0,0,192,0,0,0,5,5,119,201,192,0,0,0,192,0,0,0,5,5,172,209,5,5,91,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,226,5,5,60,231,192,0,0,0,192,0,0,0,5,5,126,221,5,5,122,201,5,5,240,202,192,0,0,0,5,5,246,202,5,5,239,202,5,5,243,202,5,5,105,204,192,0,0,0,5,5,107,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,207,5,5,72,231,5,5,189,209,5,5,130,226,5,5,196,209,5,5,193,209,5,5,200,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,233,5,5,177,238,5,5,182,238,192,0,0,0,5,5,10,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,204,5,5,117,211,5,5,247,216,5,5,119,244,5,5,50,206,192,0,0,0,5,5,39,234,5,5,117,231,5,5,44,241,5,5,139,236,5,5,140,236,192,0,0,0,192,0,0,0,5,5,209,238,5,5,139,244,192,0,0,0,192,0,0,0,5,5,132,200,192,0,0,0,5,5,135,231,5,5,49,234,192,0,0,0,5,5,173,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,211,5,5,233,215,5,5,162,219,5,5,129,201,192,0,0,0,5,5,45,208,5,5,239,209,5,5,199,219,5,5,76,206,192,0,0,0,192,0,0,0,5,5,252,209,5,5,33,229,5,5,98,234,192,0,0,0,5,5,79,206,5,5,249,215,192,0,0,0,192,0,0,0,5,5,183,220,5,5,173,224,5,5,128,234,192,0,0,0,5,5,228,236,5,5,213,211,5,5,90,239,5,5,88,239,5,5,104,213,5,5,32,246,5,5,37,247,192,0,0,0,5,5,32,210,192,0,0,0,5,5,116,243,192,0,0,0,192,0,0,0,5,5,8,232,5,5,241,239,5,5,242,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,239,192,0,0,0,5,5,114,206,192,0,0,0,5,5,196,241,5,5,75,246,5,5,42,237,5,5,161,243,192,0,0,0,192,0,0,0,5,5,94,247,5,5,102,247,5,5,177,239,192,0,0,0,192,0,0,0,5,5,184,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,208,192,0,0,0,5,5,18,232,192,0,0,0,192,0,0,0,5,5,189,239,5,5,63,245,5,5,139,213,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,27,206,0,16,140,28,0,96,1,0,0,96,170,170,170,170,170,170,170,170,166,114,1,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,92,83,1,0,92,83,1,0,60,91,1,0,60,91,1,0,248,95,1,0,248,95,1,0,90,110,1,0,90,110,1,0,138,114,1,0,25,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,254,255,50,105,114,84,1,0,0,9,0,20,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,53,1,61,1,69,1,77,1,85,1,93,1,101,1,109,1,117,1,125,1,133,1,140,1,147,1,154,1,162,1,170,1,178,1,186,1,194,1,202,1,210,1,218,1,226,1,234,1,242,1,250,1,2,2,10,2,18,2,26,2,34,2,42,2,50,2,58,2,66,2,74,2,82,2,90,2,98,2,106,2,114,2,122,2,130,2,138,2,146,2,154,2,162,2,170,2,178,2,186,2,194,2,202,2,210,2,218,2,226,2,234,2,242,2,250,2,2,3,10,3,18,3,26,3,34,3,42,3,50,3,58,3,66,3,74,3,82,3,90,3,98,3,105,3,113,3,121,3,129,3,137,3,144,3,152,3,160,3,168,3,176,3,184,3,192,3,200,3,208,3,216,3,224,3,232,3,240,3,248,3,255,3,7,4,15,4,21,4,27,4,35,4,43,4,51,4,59,4,67,4,75,4,83,4,91,4,99,4,107,4,115,4,123,4,131,4,139,4,147,4,155,4,163,4,171,4,179,4,187,4,194,4,202,4,210,4,218,4,226,4,234,4,242,4,250,4,2,5,9,5,17,5,25,5,33,5,41,5,49,5,57,5,65,5,73,5,81,5,89,5,97,5,105,5,113,5,121,5,129,5,137,5,145,5,153,5,161,5,169,5,175,5,183,5,191,5,198,5,206,5,214,5,222,5,230,5,238,5,246,5,254,5,6,6,14,6,22,6,30,6,38,6,46,6,54,6,62,6,70,6,78,6,86,6,94,6,102,6,110,6,118,6,126,6,134,6,142,6,149,6,157,6,165,6,172,6,180,6,188,6,196,6,204,6,212,6,220,6,228,6,236,6,244,6,252,6,4,7,12,7,20,7,28,7,36,7,44,7,52,7,60,7,68,7,76,7,84,7,92,7,100,7,108,7,116,7,124,7,132,7,140,7,148,7,156,7,164,7,172,7,180,7,188,7,196,7,204,7,212,7,220,7,228,7,236,7,244,7,48,0,48,0,48,0,252,7,4,8,12,8,20,8,28,8,36,8,44,8,52,8,60,8,68,8,76,8,84,8,92,8,100,8,108,8,116,8,124,8,132,8,140,8,148,8,156,8,164,8,172,8,180,8,188,8,196,8,204,8,212,8,220,8,228,8,236,8,244,8,252,8,4,9,12,9,20,9,28,9,36,9,44,9,48,9,56,9,63,9,71,9,79,9,87,9,95,9,103,9,111,9,118,9,125,9,133,9,141,9,149,9,157,9,165,9,172,9,180,9,188,9,196,9,204,9,212,9,220,9,228,9,236,9,244,9,252,9,4,10,12,10,20,10,28,10,36,10,44,10,52,10,60,10,68,10,76,10,84,10,91,10,99,10,107,10,115,10,123,10,131,10,139,10,147,10,155,10,163,10,171,10,179,10,187,10,195,10,203,10,211,10,219,10,227,10,235,10,243,10,251,10,3,11,11,11,19,11,27,11,35,11,43,11,51,11,59,11,67,11,75,11,83,11,91,11,98,11,106,11,114,11,122,11,130,11,138,11,145,11,153,11,161,11,169,11,177,11,185,11,191,11,199,11,207,11,215,11,223,11,231,11,239,11,247,11,255,11,7,12,15,12,23,12,31,12,39,12,47,12,55,12,59,12,67,12,75,12,83,12,91,12,98,12,106,12,48,0,111,12,48,0,118,12,48,0,48,0,48,0,122,12,130,12,48,0,138,12,146,12,154,12,162,12,170,12,178,12,186,12,194,12,202,12,210,12,218,12,226,12,234,12,242,12,250,12,1,13,9,13,17,13,25,13,33,13,41,13,49,13,57,13,65,13,73,13,81,13,89,13,97,13,105,13,113,13,121,13,129,13,137,13,145,13,153,13,161,13,169,13,177,13,185,13,193,13,201,13,209,13,217,13,225,13,233,13,241,13,249,13,1,14,9,14,17,14,25,14,33,14,41,14,49,14,57,14,65,14,73,14,81,14,89,14,97,14,105,14,112,14,120,14,128,14,136,14,144,14,152,14,160,14,168,14,176,14,184,14,192,14,200,14,208,14,216,14,224,14,232,14,240,14,248,14,0,15,8,15,16,15,24,15,32,15,40,15,48,15,56,15,64,15,72,15,48,0,80,15,88,15,96,15,98,15,106,15,109,15,116,15,48,0,48,0,48,0,123,15,130,15,48,0,137,15,48,0,145,15,153,15,161,15,169,15,177,15,185,15,193,15,201,15,48,0,48,0,48,0,208,15,216,15,224,15,232,15,240,15,248,15,0,16,8,16,16,16,24,16,32,16,39,16,47,16,55,16,62,16,48,0,48,0,48,0,48,0,69,16,77,16,85,16,93,16,101,16,109,16,117,16,125,16,133,16,141,16,149,16,157,16,165,16,173,16,181,16,189,16,197,16,205,16,213,16,220,16,48,0,48,0,48,0,48,0,228,16,234,16,239,16,245,16,48,0,48,0,248,16,48,0,0,17,5,17,48,0,11,17,48,0,48,0,17,17,48,0,25,17,32,17,40,17,48,17,56,17,64,17,72,17,80,17,88,17,48,0,48,0,48,0,96,17,104,17,112,17,120,17,128,17,135,17,143,17,151,17,159,17,167,17,175,17,183,17,191,17,199,17,207,17,48,0,214,17,48,0,48,0,48,0,220,17,228,17,236,17,241,17,249,17,254,17,3,18,7,18,15,18,23,18,30,18,48,0,48,0,48,0,48,0,48,0,35,18,43,18,51,18,59,18,67,18,75,18,83,18,91,18,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,97,18,105,18,113,18,121,18,129,18,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,18,138,18,146,18,154,18,162,18,170,18,178,18,186,18,194,18,202,18,210,18,215,18,223,18,231,18,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,161,0,48,0,48,0,153,0,153,0,240,19,247,19,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,239,18,247,18,255,18,7,19,15,19,23,19,31,19,39,19,47,19,55,19,63,19,71,19,79,19,87,19,93,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,192,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,98,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,106,19,114,19,122,19,130,19,138,19,146,19,154,19,162,19,170,19,178,19,186,19,194,19,202,19,210,19,217,19,48,0,224,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,36,0,202,193,36,0,202,226,36,0,202,3,37,0,202,36,37,0,202,69,37,0,202,102,37,0,202,135,37,0,202,168,37,0,202,201,37,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,35,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,34,36,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,36,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,236,5,5,215,225,192,0,0,0,5,5,3,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,234,5,5,121,237,5,5,221,232,5,5,15,233,5,5,58,235,5,5,110,238,5,5,119,224,5,5,221,236,192,0,0,0,5,5,112,238,5,5,15,225,192,0,0,0,5,5,22,238,5,5,84,232,5,5,115,238,5,5,94,233,192,0,0,0,5,5,114,232,5,5,89,224,5,5,73,236,5,5,78,225,5,5,225,225,5,5,187,233,5,5,117,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,225,192,0,0,0,5,5,7,230,5,5,5,236,192,0,0,0,5,5,227,232,5,5,121,238,192,0,0,0,5,5,234,226,5,5,242,235,5,5,186,242,5,5,222,237,192,0,0,0,192,0,0,0,5,5,119,226,192,0,0,0,5,5,40,225,192,0,0,0,5,5,35,230,192,0,0,0,5,5,136,238,192,0,0,0,5,5,162,234,5,5,124,225,5,5,194,234,5,5,7,238,192,0,0,0,5,5,224,229,5,5,7,229,5,5,123,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,231,192,0,0,0,5,5,239,228,192,0,0,0,5,5,125,238,5,5,186,230,5,5,121,236,192,0,0,0,5,5,188,237,5,5,242,234,5,5,87,237,5,5,167,227,5,5,60,226,5,5,192,229,192,0,0,0,5,5,219,231,5,5,150,231,5,5,73,232,192,0,0,0,5,5,40,227,192,0,0,0,5,5,229,224,5,5,102,236,192,0,0,0,192,0,0,0,5,5,139,238,5,5,241,228,5,5,22,232,5,5,70,236,5,5,40,235,5,5,95,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,233,192,0,0,0,192,0,0,0,5,5,140,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,230,5,5,122,230,192,0,0,0,5,5,201,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,230,192,0,0,0,5,5,218,236,5,5,169,237,192,0,0,0,5,5,96,233,5,5,54,226,5,5,109,238,5,5,204,236,5,5,131,229,192,0,0,0,5,5,24,237,5,5,181,227,5,5,141,238,5,5,253,234,5,5,218,228,192,0,0,0,192,0,0,0,5,5,116,238,192,0,0,0,5,5,251,235,5,5,127,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,238,5,5,27,239,5,5,176,234,5,5,70,229,192,0,0,0,5,5,137,228,5,5,87,227,5,5,116,236,5,5,182,224,5,5,146,227,5,5,28,231,192,0,0,0,5,5,101,235,5,5,213,228,5,5,94,234,5,5,11,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,232,5,5,29,239,192,0,0,0,5,5,32,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,232,5,5,181,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,236,5,5,80,233,5,5,170,232,5,5,184,238,5,5,182,238,5,5,146,238,5,5,196,228,5,5,239,231,5,5,12,225,192,0,0,0,5,5,183,238,5,5,191,228,5,5,183,228,192,0,0,0,5,5,180,232,5,5,77,225,192,0,0,0,192,0,0,0,5,5,128,230,192,0,0,0,5,5,146,224,5,5,62,238,5,5,105,233,5,5,247,233,5,5,124,237,5,5,170,226,5,5,65,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,239,5,5,188,238,5,5,44,232,192,0,0,0,5,5,186,238,192,0,0,0,5,5,116,225,5,5,56,230,5,5,104,236,192,0,0,0,192,0,0,0,5,5,185,238,192,0,0,0,5,5,91,236,5,5,187,238,5,5,205,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,236,192,0,0,0,5,5,231,237,5,5,190,238,192,0,0,0,5,5,193,238,5,5,110,228,5,5,75,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,232,192,0,0,0,5,5,115,226,192,0,0,0,5,5,88,226,192,0,0,0,5,5,23,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,238,5,5,85,236,192,0,0,0,192,0,0,0,5,5,3,235,5,5,47,228,5,5,146,226,5,5,59,226,5,5,179,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,237,5,5,183,236,5,5,255,227,5,5,241,227,5,5,189,238,192,0,0,0,192,0,0,0,5,5,223,232,5,5,200,234,5,5,37,225,192,0,0,0,5,5,191,238,192,0,0,0,5,5,11,233,5,5,194,238,5,5,127,230,5,5,195,238,192,0,0,0,192,0,0,0,5,5,201,234,5,5,197,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,224,5,5,20,227,192,0,0,0,5,5,205,238,192,0,0,0,5,5,0,199,192,0,0,0,5,5,48,230,192,0,0,0,5,5,44,233,192,0,0,0,5,5,193,233,192,0,0,0,5,5,194,233,5,5,206,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,225,192,0,0,0,192,0,0,0,5,5,131,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,234,5,5,165,225,5,5,15,238,5,5,98,238,5,5,197,236,192,0,0,0,5,5,65,234,192,0,0,0,5,5,128,227,192,0,0,0,5,5,204,238,5,5,8,239,5,5,210,236,5,5,201,238,5,5,134,226,5,5,101,238,5,5,202,238,5,5,198,238,5,5,203,238,5,5,73,231,192,0,0,0,192,0,0,0,5,5,168,236,5,5,192,238,5,5,9,239,192,0,0,0,5,5,199,238,192,0,0,0,5,5,169,231,192,0,0,0,192,0,0,0,5,5,186,229,192,0,0,0,192,0,0,0,5,5,38,236,5,5,0,185,192,0,0,0,192,0,0,0,5,5,65,228,5,5,208,238,192,0,0,0,5,5,207,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,238,5,5,216,238,192,0,0,0,5,5,213,238,5,5,87,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,238,5,5,196,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,224,5,5,210,238,192,0,0,0,5,5,231,229,192,0,0,0,5,5,106,233,192,0,0,0,5,5,212,238,192,0,0,0,5,5,209,238,192,0,0,0,192,0,0,0,5,5,218,238,192,0,0,0,192,0,0,0,5,5,231,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,226,192,0,0,0,5,5,84,236,192,0,0,0,192,0,0,0,5,5,56,235,192,0,0,0,192,0,0,0,5,5,106,230,192,0,0,0,5,5,146,228,5,5,156,237,5,5,156,224,5,5,74,232,5,5,119,229,5,5,215,238,192,0,0,0,5,5,217,238,192,0,0,0,5,5,4,235,5,5,160,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,225,5,5,37,226,5,5,222,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,239,5,5,80,232,5,5,232,229,5,5,226,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,233,5,5,147,226,192,0,0,0,5,5,223,238,192,0,0,0,5,5,225,238,5,5,0,223,5,5,211,236,5,5,227,238,192,0,0,0,5,5,155,235,192,0,0,0,5,5,224,238,192,0,0,0,192,0,0,0,5,5,219,238,192,0,0,0,5,5,220,238,5,5,241,229,5,5,221,238,192,0,0,0,192,0,0,0,5,5,99,228,5,5,180,235,5,5,157,226,192,0,0,0,5,5,17,229,192,0,0,0,5,5,231,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,238,192,0,0,0,5,5,0,145,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,238,5,5,20,224,192,0,0,0,5,5,233,238,192,0,0,0,192,0,0,0,5,5,145,225,192,0,0,0,5,5,33,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,5,5,164,227,5,5,100,236,192,0,0,0,5,5,237,238,192,0,0,0,192,0,0,0,5,5,182,228,192,0,0,0,5,5,197,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,238,5,5,25,229,192,0,0,0,5,5,240,238,5,5,229,238,5,5,69,231,192,0,0,0,5,5,232,238,5,5,235,238,5,5,234,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,237,192,0,0,0,5,5,195,237,192,0,0,0,5,5,101,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,228,5,5,244,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,238,192,0,0,0,5,5,245,238,5,5,205,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,238,192,0,0,0,5,5,93,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,231,5,5,111,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,238,192,0,0,0,192,0,0,0,5,5,241,238,5,5,191,224,5,5,138,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,226,192,0,0,0,192,0,0,0,5,5,230,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,225,192,0,0,0,5,5,248,238,192,0,0,0,5,5,249,238,5,5,28,225,5,5,250,238,192,0,0,0,192,0,0,0,5,5,89,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,238,5,5,243,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,239,5,5,236,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,238,5,5,254,238,5,5,3,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,233,192,0,0,0,5,5,119,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,238,5,5,4,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,226,5,5,111,238,5,5,28,237,192,0,0,0,5,5,250,236,5,5,172,235,5,5,254,224,5,5,135,237,192,0,0,0,5,5,64,235,5,5,54,227,192,0,0,0,5,5,87,229,192,0,0,0,5,5,232,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,226,192,0,0,0,192,0,0,0,5,5,125,234,5,5,26,239,5,5,28,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,225,192,0,0,0,5,5,235,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,228,192,0,0,0,192,0,0,0,5,5,203,232,192,0,0,0,192,0,0,0,5,5,139,232,192,0,0,0,192,0,0,0,5,5,0,169,5,5,253,226,5,5,67,230,5,5,14,239,192,0,0,0,5,5,166,229,5,5,6,227,192,0,0,0,5,5,44,227,5,5,161,235,5,5,86,224,5,5,8,232,5,5,13,229,5,5,188,225,5,5,54,238,192,0,0,0,5,5,46,236,5,5,86,228,5,5,124,233,192,0,0,0,192,0,0,0,5,5,45,228,5,5,18,239,5,5,179,238,192,0,0,0,192,0,0,0,5,5,64,231,192,0,0,0,192,0,0,0,5,5,200,226,5,5,157,232,192,0,0,0,192,0,0,0,5,5,157,224,5,5,43,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,230,192,0,0,0,192,0,0,0,5,5,231,230,5,5,44,239,5,5,191,232,192,0,0,0,5,5,138,235,192,0,0,0,5,5,42,229,5,5,109,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,227,192,0,0,0,5,5,45,239,192,0,0,0,5,5,249,236,5,5,46,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,239,5,5,226,225,192,0,0,0,192,0,0,0,5,5,129,226,5,5,87,224,5,5,40,239,5,5,255,224,5,5,36,229,192,0,0,0,5,5,130,229,5,5,69,236,5,5,206,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,225,5,5,42,239,5,5,41,239,192,0,0,0,192,0,0,0,5,5,231,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,232,192,0,0,0,5,5,42,238,5,5,43,239,192,0,0,0,5,5,3,230,192,0,0,0,5,5,202,225,5,5,50,230,192,0,0,0,192,0,0,0,5,5,101,228,192,0,0,0,5,5,79,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,230,192,0,0,0,5,5,99,231,192,0,0,0,192,0,0,0,5,5,40,228,5,5,72,226,192,0,0,0,192,0,0,0,5,5,133,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,239,192,0,0,0,5,5,224,231,192,0,0,0,5,5,57,229,5,5,219,227,192,0,0,0,192,0,0,0,5,5,162,225,192,0,0,0,5,5,177,239,5,5,173,235,192,0,0,0,5,5,115,234,5,5,0,154,5,5,18,225,5,5,9,228,5,5,178,239,5,5,97,227,192,0,0,0,5,5,54,237,5,5,142,225,5,5,203,225,5,5,162,238,5,5,176,232,192,0,0,0,192,0,0,0,5,5,108,226,5,5,82,232,5,5,163,238,192,0,0,0,5,5,59,229,192,0,0,0,192,0,0,0,5,5,163,239,5,5,164,238,192,0,0,0,192,0,0,0,5,5,162,235,5,5,190,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,245,5,5,26,230,5,5,63,230,5,5,68,237,5,5,201,226,5,5,46,225,192,0,0,0,5,5,17,225,192,0,0,0,192,0,0,0,5,5,252,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,231,5,5,229,229,192,0,0,0,5,5,78,224,192,0,0,0,5,5,165,238,5,5,34,227,192,0,0,0,5,5,149,225,192,0,0,0,192,0,0,0,5,5,166,238,192,0,0,0,192,0,0,0,5,5,212,237,5,5,158,233,5,5,143,232,5,5,240,232,5,5,70,225,5,5,88,229,192,0,0,0,5,5,72,227,192,0,0,0,5,5,167,238,5,5,168,238,5,5,31,226,5,5,49,228,5,5,70,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,235,192,0,0,0,5,5,169,238,5,5,50,232,192,0,0,0,192,0,0,0,5,5,36,227,5,5,113,228,192,0,0,0,192,0,0,0,5,5,58,234,192,0,0,0,5,5,236,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,238,192,0,0,0,5,5,170,238,192,0,0,0,192,0,0,0,5,5,171,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,220,192,0,0,0,5,5,21,229,192,0,0,0,5,5,65,233,5,5,100,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,226,192,0,0,0,192,0,0,0,5,5,226,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,238,192,0,0,0,5,5,153,228,192,0,0,0,5,5,176,238,5,5,175,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,238,192,0,0,0,192,0,0,0,5,5,178,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,229,192,0,0,0,5,5,144,232,5,5,0,202,5,5,248,226,5,5,67,228,5,5,11,235,5,5,165,239,5,5,29,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,225,5,5,10,238,5,5,112,231,5,5,167,228,5,5,166,239,5,5,167,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,229,5,5,206,228,5,5,183,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,239,5,5,100,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,236,192,0,0,0,5,5,233,230,192,0,0,0,5,5,223,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,239,192,0,0,0,5,5,191,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,239,192,0,0,0,5,5,61,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,239,5,5,23,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,227,5,5,10,235,5,5,26,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,218,5,5,76,225,192,0,0,0,5,5,175,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,239,192,0,0,0,5,5,207,240,5,5,23,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,238,5,5,191,227,5,5,15,224,192,0,0,0,5,5,241,224,5,5,154,238,192,0,0,0,192,0,0,0,5,5,35,237,192,0,0,0,192,0,0,0,5,5,129,228,5,5,123,229,192,0,0,0,5,5,51,235,192,0,0,0,192,0,0,0,5,5,156,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,231,5,5,122,232,5,5,81,236,192,0,0,0,192,0,0,0,5,5,158,238,5,5,74,231,192,0,0,0,5,5,76,233,192,0,0,0,5,5,41,232,192,0,0,0,5,5,114,238,192,0,0,0,5,5,61,233,5,5,255,234,5,5,236,227,5,5,0,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,227,5,5,131,235,192,0,0,0,5,5,14,224,5,5,82,238,5,5,45,238,192,0,0,0,5,5,125,225,5,5,156,230,5,5,53,231,192,0,0,0,192,0,0,0,5,5,101,224,192,0,0,0,5,5,115,224,192,0,0,0,5,5,67,224,5,5,22,241,5,5,108,237,5,5,52,229,5,5,84,230,5,5,161,238,5,5,89,230,192,0,0,0,5,5,160,238,5,5,236,234,192,0,0,0,5,5,106,239,192,0,0,0,5,5,216,234,192,0,0,0,192,0,0,0,5,5,128,238,5,5,180,230,5,5,147,236,5,5,187,234,192,0,0,0,5,5,36,228,5,5,148,232,5,5,121,230,192,0,0,0,5,5,27,229,5,5,140,235,192,0,0,0,5,5,107,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,232,192,0,0,0,192,0,0,0,5,5,193,224,192,0,0,0,5,5,42,226,5,5,88,234,5,5,228,229,192,0,0,0,192,0,0,0,5,5,225,229,192,0,0,0,5,5,237,235,5,5,23,236,5,5,147,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,224,192,0,0,0,192,0,0,0,5,5,207,229,192,0,0,0,5,5,163,227,192,0,0,0,192,0,0,0,5,5,148,238,192,0,0,0,5,5,253,236,192,0,0,0,192,0,0,0,5,5,89,235,5,5,149,238,192,0,0,0,5,5,150,238,5,5,59,235,192,0,0,0,5,5,20,225,5,5,243,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,235,192,0,0,0,5,5,222,232,5,5,138,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,236,5,5,162,224,5,5,32,228,5,5,195,236,5,5,167,233,5,5,74,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,226,192,0,0,0,192,0,0,0,5,5,131,233,192,0,0,0,5,5,129,232,5,5,122,233,5,5,66,224,5,5,198,235,192,0,0,0,5,5,149,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,239,5,5,214,225,192,0,0,0,192,0,0,0,5,5,102,229,5,5,25,227,5,5,18,229,5,5,55,230,192,0,0,0,5,5,26,241,5,5,25,241,5,5,201,237,5,5,158,228,5,5,137,237,5,5,0,166,5,5,217,225,5,5,85,229,5,5,4,234,5,5,23,241,5,5,85,233,5,5,196,236,192,0,0,0,5,5,155,238,5,5,74,236,5,5,119,227,5,5,186,233,5,5,26,234,192,0,0,0,5,5,27,241,5,5,200,225,5,5,24,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,236,192,0,0,0,5,5,238,224,5,5,235,226,192,0,0,0,5,5,30,241,192,0,0,0,5,5,129,227,5,5,26,228,5,5,205,225,192,0,0,0,5,5,102,234,5,5,3,231,5,5,165,227,5,5,222,229,5,5,124,234,5,5,106,235,5,5,28,241,5,5,61,235,192,0,0,0,5,5,104,230,5,5,29,241,5,5,152,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,229,192,0,0,0,5,5,41,230,5,5,134,234,5,5,139,236,5,5,99,226,5,5,37,241,192,0,0,0,5,5,40,241,192,0,0,0,192,0,0,0,5,5,135,226,5,5,0,167,5,5,14,226,5,5,106,226,192,0,0,0,5,5,94,227,5,5,89,234,5,5,96,229,5,5,173,233,5,5,24,232,192,0,0,0,5,5,182,237,5,5,41,241,192,0,0,0,5,5,250,234,5,5,205,224,192,0,0,0,192,0,0,0,5,5,22,235,5,5,47,225,192,0,0,0,5,5,223,234,5,5,162,227,192,0,0,0,5,5,249,234,192,0,0,0,5,5,241,235,192,0,0,0,192,0,0,0,5,5,36,241,192,0,0,0,192,0,0,0,5,5,110,225,192,0,0,0,5,5,228,224,192,0,0,0,5,5,218,226,5,5,31,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,231,192,0,0,0,5,5,32,241,5,5,33,241,5,5,34,241,5,5,127,231,5,5,35,241,5,5,38,241,5,5,3,237,5,5,39,241,192,0,0,0,5,5,60,232,5,5,240,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,231,192,0,0,0,5,5,46,241,192,0,0,0,5,5,51,241,192,0,0,0,5,5,234,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,241,5,5,62,241,5,5,206,234,192,0,0,0,5,5,121,227,5,5,50,241,5,5,44,241,5,5,162,231,192,0,0,0,192,0,0,0,5,5,43,233,5,5,166,227,5,5,4,231,192,0,0,0,192,0,0,0,5,5,5,229,192,0,0,0,5,5,42,241,192,0,0,0,5,5,49,241,192,0,0,0,5,5,156,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,237,5,5,127,227,192,0,0,0,5,5,248,228,5,5,175,236,5,5,180,226,192,0,0,0,5,5,242,237,192,0,0,0,5,5,43,241,5,5,18,227,5,5,51,229,192,0,0,0,192,0,0,0,5,5,70,230,5,5,47,241,5,5,48,241,192,0,0,0,5,5,52,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,241,5,5,73,241,192,0,0,0,5,5,59,241,5,5,58,241,5,5,55,238,5,5,71,241,5,5,72,241,5,5,135,243,5,5,59,236,5,5,54,241,192,0,0,0,5,5,53,229,192,0,0,0,5,5,45,237,192,0,0,0,5,5,84,229,5,5,56,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,235,192,0,0,0,192,0,0,0,5,5,65,241,192,0,0,0,5,5,254,235,192,0,0,0,5,5,66,241,5,5,0,133,5,5,217,231,5,5,55,241,192,0,0,0,5,5,151,227,192,0,0,0,5,5,23,226,5,5,149,234,5,5,82,227,5,5,39,237,192,0,0,0,192,0,0,0,5,5,67,241,5,5,100,235,5,5,0,131,5,5,75,241,5,5,53,241,5,5,250,235,5,5,57,241,5,5,60,241,5,5,61,241,5,5,64,241,192,0,0,0,5,5,185,227,192,0,0,0,5,5,68,241,5,5,69,241,192,0,0,0,5,5,70,241,5,5,74,241,5,5,76,241,5,5,166,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,226,5,5,122,231,5,5,78,241,5,5,26,233,5,5,240,229,5,5,42,231,192,0,0,0,192,0,0,0,5,5,106,229,5,5,112,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,237,5,5,82,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,224,192,0,0,0,5,5,145,227,5,5,80,241,192,0,0,0,5,5,169,239,192,0,0,0,5,5,26,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,233,5,5,55,225,192,0,0,0,5,5,0,132,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,241,5,5,34,234,5,5,86,241,192,0,0,0,192,0,0,0,5,5,81,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,241,192,0,0,0,5,5,83,241,5,5,84,241,5,5,205,227,192,0,0,0,192,0,0,0,5,5,87,241,192,0,0,0,192,0,0,0,5,5,88,241,192,0,0,0,5,5,179,227,192,0,0,0,5,5,121,233,5,5,192,234,5,5,105,241,5,5,196,224,192,0,0,0,5,5,104,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,241,192,0,0,0,5,5,147,234,5,5,96,241,192,0,0,0,5,5,94,241,192,0,0,0,5,5,92,229,5,5,50,238,192,0,0,0,5,5,12,233,192,0,0,0,192,0,0,0,5,5,92,241,5,5,0,127,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,241,5,5,100,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,226,192,0,0,0,192,0,0,0,5,5,195,231,5,5,244,232,5,5,156,229,5,5,89,241,192,0,0,0,192,0,0,0,5,5,130,231,192,0,0,0,5,5,144,238,5,5,93,241,5,5,92,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,241,5,5,102,241,5,5,103,241,5,5,123,235,192,0,0,0,192,0,0,0,5,5,118,241,5,5,64,234,192,0,0,0,5,5,115,241,192,0,0,0,5,5,50,229,5,5,113,241,5,5,209,234,5,5,109,241,5,5,6,233,192,0,0,0,192,0,0,0,5,5,152,229,5,5,112,241,5,5,159,227,5,5,98,227,5,5,107,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,241,192,0,0,0,5,5,117,241,192,0,0,0,192,0,0,0,5,5,122,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,225,5,5,123,241,192,0,0,0,192,0,0,0,5,5,42,235,5,5,122,227,192,0,0,0,5,5,114,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,241,192,0,0,0,5,5,77,237,192,0,0,0,5,5,91,241,192,0,0,0,5,5,171,231,192,0,0,0,5,5,111,241,192,0,0,0,5,5,233,236,192,0,0,0,5,5,120,241,5,5,121,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,241,5,5,183,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,241,192,0,0,0,192,0,0,0,5,5,139,241,5,5,140,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,241,5,5,108,241,5,5,226,232,5,5,131,241,192,0,0,0,5,5,116,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,233,5,5,133,241,192,0,0,0,5,5,119,241,192,0,0,0,5,5,227,234,192,0,0,0,5,5,191,233,5,5,143,241,5,5,136,241,5,5,132,241,192,0,0,0,5,5,141,241,192,0,0,0,5,5,124,241,5,5,129,241,5,5,130,241,192,0,0,0,192,0,0,0,5,5,135,241,192,0,0,0,192,0,0,0,5,5,137,241,5,5,138,241,192,0,0,0,5,5,142,241,192,0,0,0,5,5,125,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,233,5,5,151,241,192,0,0,0,5,5,152,241,5,5,148,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,241,5,5,62,228,192,0,0,0,192,0,0,0,5,5,147,241,192,0,0,0,5,5,182,226,5,5,145,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,235,192,0,0,0,192,0,0,0,5,5,151,230,192,0,0,0,192,0,0,0,5,5,145,241,5,5,127,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,241,5,5,149,241,192,0,0,0,192,0,0,0,5,5,153,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,241,5,5,154,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,238,5,5,202,224,192,0,0,0,5,5,90,238,192,0,0,0,5,5,183,233,192,0,0,0,192,0,0,0,5,5,156,241,192,0,0,0,5,5,21,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,241,5,5,159,241,5,5,65,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,241,192,0,0,0,192,0,0,0,5,5,157,241,5,5,155,241,5,5,161,241,192,0,0,0,192,0,0,0,5,5,162,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,241,192,0,0,0,5,5,166,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,232,5,5,120,238,5,5,61,237,5,5,168,241,5,5,103,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,241,5,5,170,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,241,5,5,165,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,227,5,5,67,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,241,192,0,0,0,192,0,0,0,5,5,175,241,192,0,0,0,192,0,0,0,5,5,118,232,5,5,192,233,192,0,0,0,5,5,176,241,5,5,232,227,5,5,130,238,5,5,134,236,5,5,177,241,5,5,127,234,192,0,0,0,5,5,18,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,241,192,0,0,0,5,5,2,237,192,0,0,0,192,0,0,0,5,5,145,229,5,5,75,225,192,0,0,0,192,0,0,0,5,5,191,234,5,5,178,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,241,5,5,32,227,192,0,0,0,192,0,0,0,5,5,78,227,5,5,118,234,5,5,181,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,231,5,5,182,241,192,0,0,0,5,5,4,237,192,0,0,0,5,5,134,232,5,5,184,241,5,5,183,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,241,192,0,0,0,192,0,0,0,5,5,123,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,237,5,5,191,239,5,5,193,239,192,0,0,0,5,5,192,239,5,5,59,227,5,5,196,239,5,5,197,239,5,5,176,225,192,0,0,0,192,0,0,0,5,5,194,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,239,5,5,187,224,5,5,199,239,192,0,0,0,192,0,0,0,5,5,10,228,192,0,0,0,5,5,197,237,192,0,0,0,5,5,200,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,229,192,0,0,0,192,0,0,0,5,5,81,226,192,0,0,0,5,5,184,239,5,5,10,234,5,5,62,229,5,5,197,227,5,5,102,238,5,5,95,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,229,192,0,0,0,192,0,0,0,5,5,81,228,5,5,15,234,5,5,198,239,5,5,0,177,5,5,5,235,5,5,110,226,5,5,39,238,5,5,228,231,192,0,0,0,192,0,0,0,5,5,142,229,192,0,0,0,5,5,21,234,192,0,0,0,5,5,207,239,5,5,201,239,5,5,220,231,5,5,203,239,192,0,0,0,5,5,208,239,192,0,0,0,5,5,187,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,239,192,0,0,0,192,0,0,0,5,5,209,239,5,5,76,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,239,5,5,205,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,225,5,5,150,229,5,5,74,230,5,5,202,239,5,5,204,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,235,5,5,213,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,229,5,5,218,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,239,5,5,186,239,5,5,12,227,5,5,251,236,5,5,212,239,192,0,0,0,5,5,93,229,5,5,216,239,192,0,0,0,5,5,185,239,192,0,0,0,5,5,190,225,192,0,0,0,5,5,211,239,5,5,113,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,239,192,0,0,0,5,5,217,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,226,5,5,0,129,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,230,192,0,0,0,192,0,0,0,5,5,225,224,5,5,215,239,192,0,0,0,192,0,0,0,5,5,224,239,192,0,0,0,5,5,244,231,5,5,220,239,192,0,0,0,192,0,0,0,5,5,221,239,5,5,223,239,5,5,222,239,192,0,0,0,192,0,0,0,5,5,230,239,192,0,0,0,5,5,228,236,5,5,118,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,239,192,0,0,0,5,5,227,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,239,5,5,164,231,5,5,11,228,192,0,0,0,192,0,0,0,5,5,233,239,192,0,0,0,192,0,0,0,5,5,235,239,192,0,0,0,5,5,31,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,226,5,5,102,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,239,192,0,0,0,5,5,232,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,239,192,0,0,0,5,5,239,239,5,5,2,224,192,0,0,0,192,0,0,0,5,5,164,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,233,5,5,199,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,233,192,0,0,0,192,0,0,0,5,5,250,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,234,5,5,241,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,239,192,0,0,0,5,5,245,239,5,5,242,239,192,0,0,0,5,5,223,228,192,0,0,0,5,5,153,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,233,5,5,31,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,232,5,5,244,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,237,5,5,188,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,231,5,5,13,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,233,5,5,169,232,192,0,0,0,5,5,33,238,192,0,0,0,5,5,57,233,192,0,0,0,192,0,0,0,5,5,83,229,192,0,0,0,192,0,0,0,5,5,170,227,192,0,0,0,192,0,0,0,5,5,80,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,242,192,0,0,0,5,5,32,225,192,0,0,0,192,0,0,0,5,5,22,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,226,192,0,0,0,5,5,60,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,239,5,5,30,235,5,5,156,234,192,0,0,0,192,0,0,0,5,5,25,239,5,5,24,226,192,0,0,0,5,5,77,236,192,0,0,0,192,0,0,0,5,5,15,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,242,5,5,55,242,192,0,0,0,5,5,109,225,192,0,0,0,5,5,72,234,5,5,7,234,5,5,136,226,192,0,0,0,5,5,126,238,5,5,33,236,5,5,109,227,192,0,0,0,5,5,69,233,192,0,0,0,192,0,0,0,5,5,113,234,192,0,0,0,192,0,0,0,5,5,88,236,5,5,112,229,5,5,64,228,5,5,25,226,192,0,0,0,5,5,201,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,240,5,5,164,239,192,0,0,0,5,5,15,236,192,0,0,0,192,0,0,0,5,5,10,232,5,5,52,231,5,5,132,226,192,0,0,0,5,5,114,226,192,0,0,0,192,0,0,0,5,5,136,229,5,5,78,238,192,0,0,0,5,5,25,232,192,0,0,0,192,0,0,0,5,5,26,224,5,5,204,240,5,5,127,228,5,5,51,234,5,5,206,240,192,0,0,0,5,5,205,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,225,192,0,0,0,5,5,29,233,192,0,0,0,192,0,0,0,5,5,0,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,231,5,5,111,231,192,0,0,0,5,5,50,231,192,0,0,0,5,5,89,228,5,5,249,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,243,5,5,199,232,5,5,150,243,5,5,183,234,192,0,0,0,5,5,31,238,5,5,178,226,5,5,144,230,192,0,0,0,5,5,177,232,192,0,0,0,192,0,0,0,5,5,151,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,226,5,5,59,228,192,0,0,0,192,0,0,0,5,5,51,236,5,5,155,243,192,0,0,0,5,5,244,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,243,5,5,159,243,5,5,145,234,192,0,0,0,192,0,0,0,5,5,87,226,5,5,152,243,5,5,153,243,5,5,157,243,192,0,0,0,192,0,0,0,5,5,67,231,5,5,162,243,192,0,0,0,192,0,0,0,5,5,161,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,230,192,0,0,0,5,5,2,232,192,0,0,0,192,0,0,0,5,5,164,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,243,5,5,90,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,228,5,5,23,227,5,5,160,243,5,5,171,235,5,5,199,234,192,0,0,0,192,0,0,0,5,5,163,243,5,5,170,243,192,0,0,0,5,5,58,236,192,0,0,0,5,5,120,228,5,5,167,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,243,192,0,0,0,5,5,187,229,192,0,0,0,192,0,0,0,5,5,96,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,243,192,0,0,0,5,5,138,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,238,192,0,0,0,5,5,184,234,192,0,0,0,5,5,152,234,5,5,78,230,5,5,165,243,5,5,166,243,5,5,141,228,5,5,168,243,5,5,173,243,192,0,0,0,192,0,0,0,5,5,172,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,243,192,0,0,0,5,5,178,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,231,192,0,0,0,192,0,0,0,5,5,24,229,5,5,47,233,192,0,0,0,192,0,0,0,5,5,177,243,192,0,0,0,5,5,40,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,236,5,5,174,243,192,0,0,0,5,5,175,243,192,0,0,0,5,5,130,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,231,192,0,0,0,192,0,0,0,5,5,171,234,5,5,181,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,243,192,0,0,0,192,0,0,0,5,5,161,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,236,5,5,185,243,5,5,52,233,5,5,189,243,192,0,0,0,192,0,0,0,5,5,190,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,230,5,5,188,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,243,5,5,41,235,192,0,0,0,5,5,200,245,192,0,0,0,192,0,0,0,5,5,196,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,243,192,0,0,0,192,0,0,0,5,5,78,228,5,5,231,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,228,192,0,0,0,192,0,0,0,5,5,75,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,243,192,0,0,0,5,5,195,243,192,0,0,0,5,5,200,243,192,0,0,0,5,5,202,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,243,5,5,173,225,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,5,5,201,243,192,0,0,0,192,0,0,0,5,5,65,231,192,0,0,0,5,5,192,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,243,5,5,205,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,243,192,0,0,0,5,5,36,239,192,0,0,0,192,0,0,0,5,5,208,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,238,5,5,215,243,192,0,0,0,5,5,216,243,5,5,99,229,5,5,34,237,192,0,0,0,5,5,68,238,5,5,96,225,5,5,235,233,5,5,212,243,5,5,143,238,5,5,60,238,5,5,120,235,192,0,0,0,5,5,213,230,192,0,0,0,192,0,0,0,5,5,217,243,5,5,46,228,5,5,22,227,5,5,213,243,5,5,219,235,192,0,0,0,192,0,0,0,5,5,84,227,5,5,119,230,192,0,0,0,5,5,119,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,233,5,5,138,243,192,0,0,0,5,5,214,243,192,0,0,0,5,5,139,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,232,192,0,0,0,192,0,0,0,5,5,91,231,192,0,0,0,192,0,0,0,5,5,78,243,5,5,100,231,192,0,0,0,5,5,248,233,5,5,79,243,5,5,92,237,192,0,0,0,5,5,224,236,5,5,118,233,5,5,0,144,192,0,0,0,5,5,202,233,5,5,164,234,192,0,0,0,192,0,0,0,5,5,156,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,243,192,0,0,0,5,5,80,243,192,0,0,0,5,5,72,238,5,5,45,227,5,5,244,237,5,5,222,225,5,5,170,234,5,5,95,236,5,5,4,224,5,5,83,233,192,0,0,0,5,5,4,225,5,5,51,233,5,5,89,229,5,5,209,235,5,5,112,233,5,5,82,243,5,5,210,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,235,5,5,254,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,237,192,0,0,0,192,0,0,0,5,5,88,227,5,5,29,236,5,5,116,235,5,5,66,228,192,0,0,0,5,5,83,243,5,5,189,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,229,5,5,84,224,5,5,218,233,192,0,0,0,192,0,0,0,5,5,53,228,192,0,0,0,5,5,52,228,5,5,142,236,5,5,226,230,5,5,104,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,230,192,0,0,0,5,5,96,227,5,5,242,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,232,5,5,21,231,5,5,168,224,192,0,0,0,5,5,37,227,192,0,0,0,192,0,0,0,5,5,87,243,5,5,18,230,192,0,0,0,192,0,0,0,5,5,95,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,243,192,0,0,0,5,5,90,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,225,5,5,12,226,5,5,190,233,5,5,228,235,5,5,148,225,192,0,0,0,192,0,0,0,5,5,119,233,192,0,0,0,5,5,120,226,192,0,0,0,192,0,0,0,5,5,36,233,192,0,0,0,5,5,121,228,192,0,0,0,192,0,0,0,5,5,214,234,5,5,94,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,235,192,0,0,0,5,5,25,233,192,0,0,0,192,0,0,0,5,5,51,226,5,5,210,243,5,5,82,228,192,0,0,0,5,5,216,224,192,0,0,0,5,5,16,233,192,0,0,0,5,5,211,243,5,5,188,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,240,192,0,0,0,5,5,186,236,5,5,209,240,192,0,0,0,5,5,54,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,228,192,0,0,0,192,0,0,0,5,5,211,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,233,5,5,144,236,5,5,249,224,5,5,134,243,5,5,71,231,5,5,205,228,5,5,202,234,5,5,88,231,5,5,4,229,5,5,202,231,5,5,159,224,192,0,0,0,192,0,0,0,5,5,255,228,192,0,0,0,192,0,0,0,5,5,126,232,5,5,71,234,5,5,186,228,5,5,245,234,192,0,0,0,192,0,0,0,5,5,88,233,5,5,227,231,5,5,136,243,5,5,146,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,233,192,0,0,0,5,5,122,234,5,5,109,230,192,0,0,0,5,5,139,243,192,0,0,0,5,5,108,230,5,5,140,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,243,5,5,135,234,192,0,0,0,5,5,251,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,236,5,5,200,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,236,192,0,0,0,5,5,230,233,5,5,21,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,241,5,5,201,241,192,0,0,0,192,0,0,0,5,5,202,241,5,5,207,241,192,0,0,0,192,0,0,0,5,5,169,224,192,0,0,0,5,5,203,241,5,5,206,226,5,5,205,241,5,5,206,241,5,5,208,241,5,5,146,225,5,5,209,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,241,5,5,216,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,236,192,0,0,0,5,5,214,241,5,5,213,241,5,5,53,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,241,192,0,0,0,5,5,18,237,192,0,0,0,5,5,210,241,192,0,0,0,5,5,218,241,5,5,0,148,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,241,192,0,0,0,5,5,133,229,192,0,0,0,5,5,217,241,192,0,0,0,192,0,0,0,5,5,219,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,235,192,0,0,0,192,0,0,0,5,5,221,241,5,5,223,241,5,5,117,230,192,0,0,0,5,5,35,226,192,0,0,0,5,5,234,236,192,0,0,0,192,0,0,0,5,5,79,232,192,0,0,0,192,0,0,0,5,5,123,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,241,5,5,225,241,192,0,0,0,192,0,0,0,5,5,231,241,5,5,3,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,225,192,0,0,0,5,5,246,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,241,192,0,0,0,192,0,0,0,5,5,230,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,241,192,0,0,0,5,5,227,241,5,5,226,241,192,0,0,0,5,5,30,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,237,5,5,228,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,241,5,5,234,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,247,192,0,0,0,192,0,0,0,5,5,243,241,5,5,242,241,5,5,56,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,241,192,0,0,0,192,0,0,0,5,5,238,241,192,0,0,0,5,5,240,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,241,192,0,0,0,5,5,241,241,5,5,237,241,192,0,0,0,192,0,0,0,5,5,239,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,244,192,0,0,0,5,5,34,225,5,5,235,237,192,0,0,0,192,0,0,0,5,5,230,235,5,5,204,224,192,0,0,0,192,0,0,0,5,5,246,226,5,5,97,238,5,5,75,232,5,5,12,229,5,5,2,227,192,0,0,0,5,5,239,234,192,0,0,0,192,0,0,0,5,5,170,224,5,5,183,239,192,0,0,0,5,5,42,228,5,5,101,236,5,5,196,233,5,5,0,171,192,0,0,0,192,0,0,0,5,5,103,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,239,5,5,187,228,192,0,0,0,192,0,0,0,5,5,48,224,5,5,110,233,5,5,120,224,192,0,0,0,5,5,163,233,5,5,65,226,192,0,0,0,5,5,68,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,235,192,0,0,0,192,0,0,0,5,5,186,241,5,5,122,237,5,5,189,241,192,0,0,0,192,0,0,0,5,5,188,241,5,5,133,231,5,5,87,234,192,0,0,0,5,5,249,229,5,5,187,241,5,5,241,237,5,5,107,224,5,5,210,237,5,5,179,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,225,5,5,175,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,235,5,5,0,205,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,241,5,5,189,224,192,0,0,0,192,0,0,0,5,5,191,241,5,5,192,241,5,5,183,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,230,192,0,0,0,5,5,194,241,5,5,143,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,241,5,5,33,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,241,192,0,0,0,192,0,0,0,5,5,197,241,192,0,0,0,192,0,0,0,5,5,198,241,5,5,43,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,226,5,5,223,231,5,5,80,231,192,0,0,0,5,5,94,224,192,0,0,0,5,5,168,235,192,0,0,0,5,5,53,244,5,5,211,227,5,5,201,236,5,5,182,236,192,0,0,0,5,5,55,227,5,5,79,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,238,192,0,0,0,5,5,110,232,5,5,49,224,192,0,0,0,192,0,0,0,5,5,44,225,5,5,81,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,235,5,5,86,230,5,5,80,242,192,0,0,0,5,5,110,229,5,5,152,236,5,5,175,225,5,5,82,242,5,5,194,225,192,0,0,0,5,5,243,230,5,5,241,226,192,0,0,0,5,5,162,226,192,0,0,0,5,5,151,231,5,5,101,226,5,5,84,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,242,5,5,254,225,5,5,103,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,242,192,0,0,0,5,5,86,242,5,5,154,233,5,5,65,229,5,5,171,236,5,5,85,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,229,5,5,178,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,242,5,5,90,242,5,5,148,229,192,0,0,0,192,0,0,0,5,5,24,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,242,192,0,0,0,5,5,94,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,239,192,0,0,0,5,5,9,236,5,5,92,234,192,0,0,0,192,0,0,0,5,5,118,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,240,5,5,113,238,5,5,54,229,5,5,181,239,5,5,128,236,5,5,30,232,5,5,110,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,240,192,0,0,0,5,5,53,224,5,5,18,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,233,192,0,0,0,5,5,21,241,192,0,0,0,5,5,255,226,192,0,0,0,5,5,145,236,192,0,0,0,5,5,153,226,5,5,157,227,192,0,0,0,192,0,0,0,5,5,244,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,225,5,5,117,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,230,5,5,74,235,5,5,177,227,192,0,0,0,5,5,143,243,5,5,142,243,192,0,0,0,192,0,0,0,5,5,144,243,192,0,0,0,5,5,158,234,192,0,0,0,5,5,213,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,225,5,5,65,232,192,0,0,0,5,5,146,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,243,192,0,0,0,5,5,61,227,5,5,137,225,192,0,0,0,5,5,100,230,5,5,132,243,5,5,131,243,5,5,133,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,242,5,5,164,235,192,0,0,0,5,5,104,234,192,0,0,0,5,5,27,236,192,0,0,0,192,0,0,0,5,5,134,224,5,5,73,224,192,0,0,0,5,5,80,224,5,5,177,231,192,0,0,0,192,0,0,0,5,5,115,237,5,5,162,236,192,0,0,0,5,5,252,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,241,192,0,0,0,5,5,111,236,192,0,0,0,5,5,211,224,5,5,41,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,234,5,5,167,237,5,5,254,241,192,0,0,0,5,5,226,228,5,5,119,225,192,0,0,0,5,5,255,241,5,5,142,227,5,5,2,242,5,5,194,227,5,5,113,230,5,5,3,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,235,192,0,0,0,5,5,119,234,192,0,0,0,192,0,0,0,5,5,4,242,192,0,0,0,5,5,155,225,5,5,139,231,5,5,5,242,192,0,0,0,192,0,0,0,5,5,6,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,242,192,0,0,0,5,5,225,235,192,0,0,0,192,0,0,0,5,5,8,242,5,5,186,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,242,192,0,0,0,5,5,154,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,242,5,5,229,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,235,5,5,96,242,5,5,54,224,5,5,120,236,192,0,0,0,192,0,0,0,5,5,97,242,192,0,0,0,192,0,0,0,5,5,57,228,5,5,172,232,192,0,0,0,5,5,99,242,5,5,50,246,5,5,49,246,5,5,19,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,242,5,5,204,237,5,5,182,234,5,5,172,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,242,192,0,0,0,192,0,0,0,5,5,224,237,5,5,103,242,192,0,0,0,192,0,0,0,5,5,104,242,192,0,0,0,192,0,0,0,5,5,185,236,192,0,0,0,192,0,0,0,5,5,108,242,5,5,120,229,192,0,0,0,5,5,109,242,5,5,101,242,192,0,0,0,192,0,0,0,5,5,218,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,231,192,0,0,0,192,0,0,0,5,5,110,242,192,0,0,0,192,0,0,0,5,5,153,235,192,0,0,0,5,5,168,227,5,5,105,242,5,5,116,226,5,5,195,227,5,5,8,234,5,5,199,233,5,5,100,242,5,5,102,242,5,5,106,242,5,5,107,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,242,192,0,0,0,192,0,0,0,5,5,116,242,5,5,71,237,5,5,115,242,192,0,0,0,192,0,0,0,5,5,113,231,192,0,0,0,5,5,170,237,5,5,134,231,5,5,124,224,192,0,0,0,192,0,0,0,5,5,111,242,192,0,0,0,5,5,114,242,5,5,247,229,5,5,184,233,192,0,0,0,192,0,0,0,5,5,121,225,5,5,121,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,228,5,5,113,242,5,5,170,235,5,5,11,237,5,5,117,242,5,5,42,227,5,5,118,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,238,5,5,51,246,192,0,0,0,192,0,0,0,5,5,120,242,192,0,0,0,5,5,55,246,5,5,126,242,5,5,111,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,229,192,0,0,0,5,5,224,227,192,0,0,0,192,0,0,0,5,5,98,229,192,0,0,0,5,5,149,227,192,0,0,0,192,0,0,0,5,5,157,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,246,5,5,53,246,192,0,0,0,192,0,0,0,5,5,52,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,227,5,5,57,246,5,5,202,235,192,0,0,0,192,0,0,0,5,5,54,246,5,5,144,227,5,5,47,226,5,5,127,242,5,5,232,225,5,5,77,234,5,5,249,226,192,0,0,0,5,5,26,235,5,5,35,232,192,0,0,0,192,0,0,0,5,5,94,229,192,0,0,0,192,0,0,0,5,5,41,226,192,0,0,0,5,5,122,242,5,5,123,242,5,5,125,242,5,5,124,242,5,5,59,231,5,5,128,242,192,0,0,0,5,5,179,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,242,5,5,70,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,235,192,0,0,0,192,0,0,0,5,5,135,242,5,5,105,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,242,192,0,0,0,5,5,234,227,192,0,0,0,5,5,129,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,242,5,5,136,242,192,0,0,0,5,5,132,242,192,0,0,0,5,5,12,235,5,5,184,236,192,0,0,0,192,0,0,0,5,5,204,227,192,0,0,0,192,0,0,0,5,5,21,237,192,0,0,0,5,5,96,231,192,0,0,0,192,0,0,0,5,5,58,246,5,5,210,235,5,5,131,242,192,0,0,0,5,5,251,230,192,0,0,0,5,5,139,242,5,5,13,224,192,0,0,0,5,5,144,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,228,192,0,0,0,192,0,0,0,5,5,138,242,5,5,151,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,232,5,5,142,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,228,5,5,169,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,234,192,0,0,0,192,0,0,0,5,5,141,242,192,0,0,0,5,5,143,242,192,0,0,0,5,5,31,235,5,5,140,242,192,0,0,0,5,5,193,234,5,5,237,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,225,5,5,19,229,5,5,142,224,5,5,231,224,192,0,0,0,5,5,23,224,5,5,137,242,5,5,141,224,5,5,132,225,5,5,51,227,5,5,32,226,192,0,0,0,192,0,0,0,5,5,99,235,5,5,149,242,192,0,0,0,5,5,220,227,192,0,0,0,192,0,0,0,5,5,167,232,5,5,160,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,242,5,5,10,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,246,192,0,0,0,5,5,236,236,5,5,214,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,246,5,5,151,242,5,5,118,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,226,5,5,145,242,192,0,0,0,192,0,0,0,5,5,148,242,5,5,117,226,192,0,0,0,5,5,146,242,5,5,140,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,225,192,0,0,0,5,5,153,242,192,0,0,0,5,5,213,227,192,0,0,0,5,5,55,233,192,0,0,0,192,0,0,0,5,5,37,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,227,5,5,58,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,242,192,0,0,0,5,5,66,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,224,192,0,0,0,192,0,0,0,5,5,73,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,242,5,5,91,227,5,5,62,246,192,0,0,0,192,0,0,0,5,5,155,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,235,192,0,0,0,5,5,0,161,5,5,64,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,246,5,5,171,229,192,0,0,0,5,5,159,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,246,192,0,0,0,5,5,222,226,192,0,0,0,5,5,6,235,5,5,29,245,5,5,189,235,5,5,151,233,5,5,182,232,5,5,47,235,5,5,227,224,5,5,234,234,5,5,178,228,192,0,0,0,192,0,0,0,5,5,188,242,5,5,4,228,5,5,30,245,5,5,109,237,192,0,0,0,5,5,255,231,5,5,31,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,245,192,0,0,0,5,5,34,245,5,5,33,245,192,0,0,0,5,5,36,245,5,5,35,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,228,192,0,0,0,5,5,37,245,192,0,0,0,5,5,102,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,225,5,5,113,225,192,0,0,0,192,0,0,0,5,5,183,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,246,5,5,25,246,5,5,85,226,5,5,245,233,5,5,64,224,192,0,0,0,5,5,27,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,233,5,5,28,246,5,5,29,246,192,0,0,0,5,5,116,233,5,5,212,240,5,5,129,224,5,5,76,237,192,0,0,0,192,0,0,0,5,5,237,231,5,5,0,165,5,5,108,225,5,5,179,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,234,192,0,0,0,192,0,0,0,5,5,68,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,229,192,0,0,0,192,0,0,0,5,5,38,232,5,5,194,237,192,0,0,0,5,5,147,229,5,5,213,240,5,5,230,232,5,5,37,236,5,5,104,231,5,5,0,197,5,5,208,224,5,5,165,232,192,0,0,0,192,0,0,0,5,5,0,192,192,0,0,0,192,0,0,0,5,5,140,226,192,0,0,0,192,0,0,0,5,5,190,231,192,0,0,0,192,0,0,0,5,5,43,226,192,0,0,0,5,5,130,237,5,5,234,224,5,5,44,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,229,5,5,0,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,236,5,5,129,233,5,5,19,238,192,0,0,0,5,5,112,234,5,5,236,225,5,5,69,229,5,5,139,237,192,0,0,0,5,5,155,226,5,5,155,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,240,5,5,101,229,5,5,125,230,5,5,66,232,192,0,0,0,5,5,180,227,5,5,6,224,192,0,0,0,192,0,0,0,5,5,174,231,192,0,0,0,192,0,0,0,5,5,191,231,5,5,3,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,231,192,0,0,0,5,5,215,240,5,5,238,235,5,5,5,225,192,0,0,0,5,5,248,230,192,0,0,0,192,0,0,0,5,5,141,226,192,0,0,0,5,5,4,238,5,5,123,225,5,5,172,224,5,5,26,231,5,5,79,231,5,5,151,229,5,5,216,240,192,0,0,0,5,5,0,198,5,5,136,231,5,5,42,230,192,0,0,0,5,5,41,227,192,0,0,0,5,5,10,229,5,5,146,234,5,5,0,172,192,0,0,0,5,5,137,234,5,5,218,240,5,5,252,228,5,5,44,238,5,5,217,240,5,5,128,237,5,5,0,187,192,0,0,0,192,0,0,0,5,5,72,231,192,0,0,0,192,0,0,0,5,5,75,230,5,5,96,228,192,0,0,0,5,5,167,236,5,5,163,229,5,5,101,231,5,5,98,224,5,5,67,237,192,0,0,0,192,0,0,0,5,5,146,229,5,5,97,233,5,5,219,240,5,5,172,237,192,0,0,0,5,5,4,227,192,0,0,0,5,5,141,232,5,5,165,233,192,0,0,0,5,5,221,240,5,5,73,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,231,5,5,21,238,5,5,78,233,5,5,41,231,192,0,0,0,5,5,240,224,5,5,38,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,237,5,5,114,245,5,5,0,146,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,229,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,237,5,5,118,230,192,0,0,0,5,5,230,234,5,5,252,233,5,5,132,235,5,5,57,231,5,5,138,225,5,5,220,240,5,5,165,237,5,5,39,228,5,5,227,227,192,0,0,0,192,0,0,0,5,5,0,130,192,0,0,0,5,5,118,231,5,5,102,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,237,192,0,0,0,192,0,0,0,5,5,115,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,240,5,5,96,234,192,0,0,0,192,0,0,0,5,5,166,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,234,5,5,224,240,192,0,0,0,5,5,107,234,5,5,144,229,192,0,0,0,192,0,0,0,5,5,43,238,192,0,0,0,5,5,223,240,5,5,0,164,5,5,102,227,5,5,19,233,5,5,89,231,5,5,22,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,229,5,5,236,233,192,0,0,0,5,5,97,228,5,5,203,227,5,5,143,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,231,192,0,0,0,5,5,234,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,240,5,5,11,229,192,0,0,0,192,0,0,0,5,5,227,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,225,5,5,171,228,192,0,0,0,192,0,0,0,5,5,228,240,5,5,83,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,235,192,0,0,0,5,5,184,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,226,5,5,120,233,5,5,204,225,5,5,233,240,192,0,0,0,5,5,118,237,192,0,0,0,5,5,229,240,5,5,41,234,5,5,34,232,192,0,0,0,5,5,137,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,236,192,0,0,0,5,5,32,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,230,192,0,0,0,5,5,25,234,5,5,210,224,192,0,0,0,5,5,161,228,192,0,0,0,5,5,100,229,5,5,128,234,5,5,16,236,5,5,101,225,192,0,0,0,5,5,232,240,5,5,225,240,5,5,235,240,192,0,0,0,5,5,116,245,192,0,0,0,192,0,0,0,5,5,88,230,5,5,230,240,192,0,0,0,192,0,0,0,5,5,206,237,5,5,127,225,192,0,0,0,5,5,176,224,192,0,0,0,5,5,236,240,192,0,0,0,5,5,246,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,240,192,0,0,0,5,5,245,240,192,0,0,0,192,0,0,0,5,5,192,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,238,5,5,243,240,5,5,238,230,5,5,61,234,192,0,0,0,5,5,161,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,240,192,0,0,0,5,5,239,240,5,5,237,234,192,0,0,0,5,5,33,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,229,5,5,234,228,192,0,0,0,192,0,0,0,5,5,160,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,240,192,0,0,0,5,5,254,236,192,0,0,0,5,5,226,240,192,0,0,0,5,5,238,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,229,192,0,0,0,5,5,240,240,5,5,175,224,5,5,221,226,5,5,79,230,192,0,0,0,192,0,0,0,5,5,143,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,240,5,5,252,240,192,0,0,0,192,0,0,0,5,5,103,224,5,5,30,225,192,0,0,0,192,0,0,0,5,5,100,225,5,5,228,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,240,5,5,205,233,192,0,0,0,5,5,215,226,192,0,0,0,5,5,251,240,5,5,254,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,234,192,0,0,0,5,5,0,191,5,5,104,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,235,192,0,0,0,192,0,0,0,5,5,167,224,192,0,0,0,5,5,117,245,192,0,0,0,5,5,248,240,192,0,0,0,192,0,0,0,5,5,35,233,5,5,247,240,5,5,0,184,5,5,53,236,5,5,85,224,192,0,0,0,5,5,11,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,240,192,0,0,0,5,5,160,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,225,192,0,0,0,5,5,12,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,231,5,5,7,231,5,5,5,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,230,192,0,0,0,5,5,2,241,5,5,29,229,192,0,0,0,5,5,212,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,224,5,5,214,232,192,0,0,0,192,0,0,0,5,5,182,233,5,5,4,241,192,0,0,0,192,0,0,0,5,5,8,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,230,192,0,0,0,192,0,0,0,5,5,77,232,5,5,97,224,5,5,99,225,192,0,0,0,5,5,25,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,231,192,0,0,0,5,5,6,241,5,5,7,241,192,0,0,0,5,5,9,241,192,0,0,0,5,5,101,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,241,192,0,0,0,5,5,200,229,192,0,0,0,192,0,0,0,5,5,3,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,224,5,5,104,232,192,0,0,0,5,5,11,241,192,0,0,0,5,5,94,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,241,5,5,118,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,241,192,0,0,0,5,5,13,241,192,0,0,0,5,5,125,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,229,192,0,0,0,192,0,0,0,5,5,17,241,5,5,181,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,245,5,5,138,245,5,5,115,233,192,0,0,0,5,5,200,238,5,5,184,226,192,0,0,0,5,5,247,226,192,0,0,0,192,0,0,0,5,5,91,226,5,5,174,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,5,5,125,235,5,5,245,248,192,0,0,0,192,0,0,0,5,5,168,225,192,0,0,0,192,0,0,0,5,5,250,230,192,0,0,0,5,5,244,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,245,5,5,0,155,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,5,5,250,229,192,0,0,0,5,5,52,224,5,5,194,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,226,5,5,224,232,192,0,0,0,192,0,0,0,5,5,16,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,245,5,5,224,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,233,192,0,0,0,5,5,69,232,192,0,0,0,5,5,171,237,192,0,0,0,192,0,0,0,5,5,137,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,237,5,5,81,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,245,5,5,0,189,192,0,0,0,5,5,231,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,225,192,0,0,0,5,5,25,230,192,0,0,0,5,5,130,249,5,5,135,235,192,0,0,0,192,0,0,0,5,5,149,237,192,0,0,0,5,5,235,234,192,0,0,0,192,0,0,0,5,5,189,228,5,5,252,224,192,0,0,0,5,5,159,226,192,0,0,0,5,5,102,237,192,0,0,0,5,5,79,246,192,0,0,0,5,5,7,226,192,0,0,0,5,5,181,233,5,5,152,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,226,192,0,0,0,192,0,0,0,5,5,232,245,5,5,71,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,231,192,0,0,0,5,5,235,245,5,5,234,245,5,5,107,230,5,5,233,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,235,5,5,236,245,192,0,0,0,5,5,237,245,5,5,83,238,192,0,0,0,192,0,0,0,5,5,238,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,245,5,5,16,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,234,192,0,0,0,5,5,56,228,192,0,0,0,192,0,0,0,5,5,181,232,5,5,129,225,5,5,245,228,5,5,202,237,5,5,57,237,192,0,0,0,192,0,0,0,5,5,226,235,5,5,199,235,5,5,46,245,5,5,47,245,5,5,48,245,5,5,103,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,233,5,5,129,229,192,0,0,0,192,0,0,0,5,5,180,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,245,192,0,0,0,5,5,0,152,5,5,52,245,192,0,0,0,192,0,0,0,5,5,143,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,245,192,0,0,0,5,5,185,224,192,0,0,0,5,5,253,230,5,5,248,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,236,5,5,14,235,5,5,53,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,245,192,0,0,0,5,5,157,235,5,5,165,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,225,192,0,0,0,5,5,199,230,5,5,96,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,237,192,0,0,0,5,5,101,233,192,0,0,0,5,5,59,245,192,0,0,0,192,0,0,0,5,5,58,245,5,5,61,245,5,5,60,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,237,192,0,0,0,5,5,76,235,192,0,0,0,192,0,0,0,5,5,65,245,192,0,0,0,5,5,222,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,228,5,5,14,233,192,0,0,0,192,0,0,0,5,5,66,245,192,0,0,0,192,0,0,0,5,5,247,232,5,5,118,235,5,5,64,245,5,5,32,237,5,5,67,245,5,5,69,245,192,0,0,0,192,0,0,0,5,5,167,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,245,192,0,0,0,5,5,68,245,192,0,0,0,192,0,0,0,5,5,8,235,192,0,0,0,5,5,238,227,192,0,0,0,5,5,217,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,231,5,5,220,228,5,5,20,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,232,192,0,0,0,5,5,211,228,5,5,70,245,192,0,0,0,192,0,0,0,5,5,213,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,237,192,0,0,0,5,5,71,245,192,0,0,0,192,0,0,0,5,5,54,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,231,5,5,0,147,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,245,5,5,9,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,233,192,0,0,0,5,5,76,245,5,5,77,245,5,5,250,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,245,192,0,0,0,192,0,0,0,5,5,79,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,237,192,0,0,0,5,5,124,232,5,5,75,236,5,5,240,226,192,0,0,0,192,0,0,0,5,5,56,245,192,0,0,0,5,5,152,224,192,0,0,0,192,0,0,0,5,5,164,230,192,0,0,0,5,5,74,237,5,5,66,234,5,5,92,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,237,5,5,194,236,5,5,151,245,5,5,183,231,192,0,0,0,5,5,148,226,192,0,0,0,192,0,0,0,5,5,168,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,233,5,5,178,245,192,0,0,0,5,5,180,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,234,192,0,0,0,5,5,201,224,192,0,0,0,5,5,252,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,245,192,0,0,0,5,5,36,231,192,0,0,0,5,5,204,234,5,5,15,231,5,5,28,224,5,5,79,237,192,0,0,0,5,5,147,233,192,0,0,0,5,5,250,237,192,0,0,0,192,0,0,0,5,5,245,231,5,5,28,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,228,192,0,0,0,192,0,0,0,5,5,182,235,192,0,0,0,192,0,0,0,5,5,239,232,192,0,0,0,5,5,37,237,5,5,136,232,192,0,0,0,192,0,0,0,5,5,191,226,192,0,0,0,5,5,118,244,5,5,250,232,192,0,0,0,192,0,0,0,5,5,115,244,192,0,0,0,5,5,216,229,5,5,169,235,5,5,128,224,5,5,95,225,192,0,0,0,5,5,116,244,192,0,0,0,192,0,0,0,5,5,120,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,225,192,0,0,0,5,5,117,244,5,5,150,233,5,5,208,226,5,5,81,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,229,192,0,0,0,192,0,0,0,5,5,36,236,5,5,119,244,5,5,122,244,192,0,0,0,192,0,0,0,5,5,110,227,192,0,0,0,5,5,11,224,5,5,170,228,192,0,0,0,5,5,51,245,5,5,123,244,192,0,0,0,5,5,126,244,192,0,0,0,5,5,131,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,244,192,0,0,0,5,5,197,233,5,5,0,195,192,0,0,0,5,5,27,228,192,0,0,0,192,0,0,0,5,5,13,227,192,0,0,0,192,0,0,0,5,5,121,244,192,0,0,0,5,5,177,234,192,0,0,0,5,5,130,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,237,192,0,0,0,5,5,32,230,5,5,124,244,192,0,0,0,5,5,188,230,192,0,0,0,5,5,79,227,5,5,180,237,5,5,128,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,233,5,5,56,237,192,0,0,0,5,5,120,244,192,0,0,0,5,5,125,244,5,5,127,244,192,0,0,0,5,5,59,232,5,5,121,226,192,0,0,0,5,5,129,244,192,0,0,0,5,5,105,229,5,5,138,244,192,0,0,0,192,0,0,0,5,5,143,244,192,0,0,0,5,5,141,244,5,5,76,228,5,5,63,228,5,5,147,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,244,192,0,0,0,5,5,146,244,5,5,88,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,182,5,5,25,231,5,5,192,226,5,5,6,232,5,5,158,232,5,5,193,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,244,5,5,140,244,5,5,142,244,192,0,0,0,5,5,69,227,5,5,144,244,5,5,99,238,192,0,0,0,5,5,97,231,192,0,0,0,5,5,148,244,192,0,0,0,192,0,0,0,5,5,165,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,244,192,0,0,0,192,0,0,0,5,5,93,228,192,0,0,0,192,0,0,0,5,5,78,229,5,5,133,244,5,5,9,238,192,0,0,0,5,5,66,230,5,5,173,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,244,192,0,0,0,5,5,95,233,5,5,145,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,237,192,0,0,0,5,5,72,224,5,5,107,237,5,5,134,244,5,5,136,244,5,5,230,225,5,5,139,244,192,0,0,0,5,5,149,244,5,5,162,229,192,0,0,0,5,5,149,233,192,0,0,0,5,5,164,233,192,0,0,0,192,0,0,0,5,5,254,231,5,5,223,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,244,5,5,248,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,244,5,5,153,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,236,5,5,125,227,5,5,237,226,192,0,0,0,192,0,0,0,5,5,229,226,5,5,38,237,5,5,167,244,192,0,0,0,5,5,166,244,5,5,164,244,5,5,68,227,5,5,46,234,5,5,158,244,5,5,190,234,5,5,126,229,192,0,0,0,5,5,0,150,5,5,169,244,5,5,168,244,192,0,0,0,5,5,46,238,192,0,0,0,5,5,156,244,192,0,0,0,5,5,99,234,5,5,225,232,192,0,0,0,5,5,200,227,5,5,169,228,5,5,162,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,244,5,5,155,244,5,5,157,244,5,5,141,225,5,5,159,244,5,5,71,232,5,5,163,244,5,5,165,244,5,5,126,228,5,5,28,238,192,0,0,0,5,5,176,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,244,192,0,0,0,5,5,106,234,5,5,174,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,230,192,0,0,0,5,5,160,244,192,0,0,0,5,5,189,230,5,5,0,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,230,5,5,248,234,5,5,208,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,233,192,0,0,0,5,5,57,234,5,5,139,235,192,0,0,0,192,0,0,0,5,5,127,233,192,0,0,0,5,5,171,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,228,192,0,0,0,5,5,177,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,230,192,0,0,0,5,5,9,232,192,0,0,0,5,5,75,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,210,192,0,0,0,192,0,0,0,5,5,70,238,192,0,0,0,192,0,0,0,5,5,28,228,192,0,0,0,5,5,179,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,234,192,0,0,0,192,0,0,0,5,5,188,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,232,192,0,0,0,5,5,184,244,5,5,204,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,244,5,5,43,227,192,0,0,0,5,5,179,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,244,192,0,0,0,5,5,192,237,5,5,35,238,192,0,0,0,5,5,189,244,192,0,0,0,5,5,133,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,244,5,5,181,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,234,192,0,0,0,192,0,0,0,5,5,64,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,225,192,0,0,0,5,5,53,225,192,0,0,0,192,0,0,0,5,5,193,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,235,192,0,0,0,192,0,0,0,5,5,187,244,192,0,0,0,192,0,0,0,5,5,26,225,192,0,0,0,192,0,0,0,5,5,194,244,5,5,205,229,192,0,0,0,5,5,192,244,192,0,0,0,192,0,0,0,5,5,207,244,192,0,0,0,192,0,0,0,5,5,206,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,244,192,0,0,0,192,0,0,0,5,5,178,244,192,0,0,0,192,0,0,0,5,5,190,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,229,5,5,199,244,5,5,208,244,192,0,0,0,192,0,0,0,5,5,77,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,244,192,0,0,0,5,5,185,226,192,0,0,0,5,5,195,244,192,0,0,0,5,5,206,236,5,5,202,244,5,5,203,244,5,5,205,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,229,5,5,219,244,192,0,0,0,192,0,0,0,5,5,198,244,192,0,0,0,192,0,0,0,5,5,209,244,5,5,0,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,244,5,5,85,237,192,0,0,0,192,0,0,0,5,5,212,244,192,0,0,0,5,5,213,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,244,192,0,0,0,192,0,0,0,5,5,59,230,192,0,0,0,192,0,0,0,5,5,150,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,244,192,0,0,0,5,5,201,244,192,0,0,0,5,5,204,244,192,0,0,0,5,5,193,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,244,5,5,220,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,224,192,0,0,0,5,5,222,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,244,5,5,226,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,237,192,0,0,0,5,5,9,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,244,192,0,0,0,5,5,147,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,244,192,0,0,0,5,5,149,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,244,5,5,230,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,244,192,0,0,0,192,0,0,0,5,5,67,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,244,5,5,226,224,192,0,0,0,5,5,233,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,244,192,0,0,0,192,0,0,0,5,5,240,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,244,192,0,0,0,5,5,242,244,5,5,241,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,244,192,0,0,0,5,5,245,244,5,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,232,5,5,72,225,5,5,198,227,5,5,150,235,5,5,213,245,192,0,0,0,192,0,0,0,5,5,123,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,245,192,0,0,0,5,5,215,245,5,5,253,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,245,192,0,0,0,192,0,0,0,5,5,217,245,5,5,128,235,192,0,0,0,5,5,58,232,192,0,0,0,192,0,0,0,5,5,220,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,237,5,5,173,237,5,5,69,225,5,5,121,224,5,5,252,234,5,5,11,232,192,0,0,0,192,0,0,0,5,5,155,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,225,192,0,0,0,5,5,188,233,5,5,79,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,244,5,5,249,244,5,5,32,236,5,5,251,244,192,0,0,0,5,5,115,225,5,5,250,244,192,0,0,0,5,5,231,235,5,5,128,233,5,5,140,224,192,0,0,0,5,5,254,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,244,5,5,253,244,192,0,0,0,192,0,0,0,5,5,193,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,244,5,5,2,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,245,5,5,125,231,5,5,6,226,192,0,0,0,5,5,135,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,225,192,0,0,0,5,5,233,227,5,5,227,245,192,0,0,0,192,0,0,0,5,5,119,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,234,192,0,0,0,5,5,30,231,192,0,0,0,5,5,197,230,192,0,0,0,192,0,0,0,5,5,244,225,5,5,133,238,5,5,38,224,5,5,45,224,5,5,47,224,5,5,194,231,192,0,0,0,5,5,46,224,192,0,0,0,5,5,177,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,245,5,5,115,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,245,192,0,0,0,5,5,123,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,245,5,5,127,245,5,5,126,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,245,192,0,0,0,5,5,109,233,5,5,129,238,5,5,247,230,192,0,0,0,5,5,171,230,5,5,28,232,5,5,129,245,5,5,48,231,192,0,0,0,5,5,130,245,5,5,131,245,5,5,132,245,5,5,107,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,226,192,0,0,0,5,5,133,245,5,5,100,232,192,0,0,0,5,5,135,245,192,0,0,0,5,5,86,227,5,5,43,236,5,5,0,143,5,5,134,245,5,5,136,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,225,5,5,112,230,5,5,106,232,192,0,0,0,5,5,137,245,192,0,0,0,5,5,170,233,5,5,189,242,192,0,0,0,192,0,0,0,5,5,178,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,239,192,0,0,0,192,0,0,0,5,5,91,234,5,5,187,237,5,5,117,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,239,5,5,243,227,192,0,0,0,5,5,108,227,5,5,192,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,242,5,5,7,233,192,0,0,0,5,5,107,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,235,5,5,191,242,5,5,202,232,5,5,3,227,5,5,123,228,5,5,242,224,5,5,243,234,192,0,0,0,192,0,0,0,5,5,28,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,242,5,5,199,242,5,5,174,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,234,192,0,0,0,5,5,35,228,192,0,0,0,5,5,200,242,192,0,0,0,5,5,201,242,192,0,0,0,192,0,0,0,5,5,176,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,232,5,5,112,226,192,0,0,0,192,0,0,0,5,5,97,232,5,5,94,236,5,5,238,234,192,0,0,0,5,5,194,242,5,5,202,242,192,0,0,0,5,5,50,233,5,5,219,224,192,0,0,0,192,0,0,0,5,5,197,242,192,0,0,0,192,0,0,0,5,5,7,232,5,5,195,242,192,0,0,0,192,0,0,0,5,5,69,246,5,5,196,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,232,192,0,0,0,5,5,170,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,227,192,0,0,0,5,5,193,230,192,0,0,0,5,5,193,242,5,5,129,231,5,5,236,229,5,5,129,230,5,5,147,224,192,0,0,0,5,5,203,242,5,5,182,227,5,5,19,231,192,0,0,0,5,5,206,242,5,5,8,229,192,0,0,0,192,0,0,0,5,5,217,242,5,5,211,242,5,5,133,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,226,5,5,191,236,192,0,0,0,5,5,220,237,5,5,131,237,5,5,21,227,5,5,100,237,5,5,14,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,235,5,5,120,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,232,5,5,112,224,192,0,0,0,5,5,224,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,242,192,0,0,0,192,0,0,0,5,5,218,242,5,5,205,242,5,5,62,226,5,5,213,242,5,5,210,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,226,192,0,0,0,192,0,0,0,5,5,102,231,192,0,0,0,5,5,212,242,5,5,161,231,5,5,100,224,5,5,32,232,192,0,0,0,5,5,70,231,192,0,0,0,192,0,0,0,5,5,16,238,192,0,0,0,5,5,203,229,5,5,215,242,192,0,0,0,192,0,0,0,5,5,216,242,5,5,219,242,5,5,5,234,5,5,209,242,192,0,0,0,5,5,176,236,192,0,0,0,5,5,33,224,5,5,70,246,5,5,207,242,5,5,208,242,192,0,0,0,5,5,214,242,5,5,144,235,5,5,229,231,5,5,69,237,5,5,220,242,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,5,5,227,242,192,0,0,0,192,0,0,0,5,5,226,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,236,5,5,223,242,192,0,0,0,5,5,229,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,235,192,0,0,0,5,5,228,242,5,5,234,242,5,5,141,230,192,0,0,0,192,0,0,0,5,5,234,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,228,192,0,0,0,5,5,222,242,192,0,0,0,192,0,0,0,5,5,155,227,5,5,230,242,192,0,0,0,192,0,0,0,5,5,232,242,192,0,0,0,192,0,0,0,5,5,53,226,5,5,236,237,5,5,238,242,192,0,0,0,5,5,233,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,242,192,0,0,0,5,5,254,227,5,5,151,234,5,5,36,232,5,5,141,231,192,0,0,0,192,0,0,0,5,5,65,230,192,0,0,0,5,5,224,242,192,0,0,0,5,5,53,232,5,5,122,228,5,5,139,228,5,5,225,242,192,0,0,0,5,5,53,238,5,5,158,224,192,0,0,0,5,5,231,242,5,5,51,228,5,5,235,242,192,0,0,0,5,5,251,227,5,5,236,242,5,5,108,231,5,5,237,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,237,5,5,47,229,192,0,0,0,5,5,246,242,192,0,0,0,5,5,243,242,192,0,0,0,5,5,247,242,192,0,0,0,192,0,0,0,5,5,249,242,192,0,0,0,192,0,0,0,5,5,248,231,192,0,0,0,192,0,0,0,5,5,120,227,5,5,181,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,226,5,5,240,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,236,192,0,0,0,192,0,0,0,5,5,85,227,5,5,204,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,234,192,0,0,0,192,0,0,0,5,5,95,231,192,0,0,0,192,0,0,0,5,5,115,235,5,5,38,233,192,0,0,0,192,0,0,0,5,5,177,236,192,0,0,0,5,5,73,235,192,0,0,0,192,0,0,0,5,5,239,242,192,0,0,0,5,5,244,242,5,5,245,242,5,5,69,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,234,192,0,0,0,5,5,190,229,5,5,241,242,5,5,248,229,5,5,242,242,5,5,232,234,192,0,0,0,5,5,209,227,5,5,171,225,192,0,0,0,5,5,211,232,5,5,117,228,5,5,119,237,5,5,234,232,5,5,150,226,5,5,8,243,192,0,0,0,192,0,0,0,5,5,10,243,5,5,248,235,192,0,0,0,192,0,0,0,5,5,78,236,192,0,0,0,192,0,0,0,5,5,95,227,192,0,0,0,192,0,0,0,5,5,134,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,242,5,5,197,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,238,5,5,252,242,5,5,117,235,5,5,251,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,230,5,5,38,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,231,192,0,0,0,5,5,48,234,5,5,6,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,243,5,5,253,242,192,0,0,0,5,5,2,243,5,5,133,225,192,0,0,0,192,0,0,0,5,5,203,236,192,0,0,0,5,5,4,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,236,5,5,93,225,192,0,0,0,5,5,196,227,192,0,0,0,192,0,0,0,5,5,46,233,192,0,0,0,5,5,56,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,227,192,0,0,0,5,5,3,236,192,0,0,0,5,5,73,234,5,5,71,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,236,192,0,0,0,5,5,9,243,5,5,67,238,5,5,254,242,192,0,0,0,5,5,115,228,5,5,3,243,192,0,0,0,192,0,0,0,5,5,216,236,192,0,0,0,5,5,7,243,5,5,56,233,192,0,0,0,192,0,0,0,5,5,250,242,192,0,0,0,192,0,0,0,5,5,215,236,192,0,0,0,192,0,0,0,5,5,128,232,5,5,255,225,192,0,0,0,5,5,78,237,5,5,111,224,5,5,21,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,234,192,0,0,0,5,5,11,243,192,0,0,0,5,5,212,234,192,0,0,0,5,5,207,226,192,0,0,0,192,0,0,0,5,5,20,243,192,0,0,0,5,5,86,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,236,192,0,0,0,5,5,242,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,231,5,5,22,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,234,5,5,13,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,243,5,5,19,243,192,0,0,0,5,5,176,227,192,0,0,0,5,5,94,235,192,0,0,0,192,0,0,0,5,5,111,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,243,192,0,0,0,192,0,0,0,5,5,12,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,234,5,5,72,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,229,192,0,0,0,5,5,116,228,5,5,17,243,192,0,0,0,192,0,0,0,5,5,188,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,243,5,5,6,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,230,192,0,0,0,192,0,0,0,5,5,39,243,192,0,0,0,192,0,0,0,5,5,123,236,192,0,0,0,192,0,0,0,5,5,29,243,192,0,0,0,5,5,30,243,192,0,0,0,192,0,0,0,5,5,34,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,233,192,0,0,0,5,5,24,243,5,5,15,243,192,0,0,0,5,5,35,243,192,0,0,0,5,5,188,232,5,5,33,243,192,0,0,0,192,0,0,0,5,5,77,231,5,5,32,243,192,0,0,0,5,5,31,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,225,5,5,38,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,243,192,0,0,0,5,5,188,227,192,0,0,0,5,5,64,238,5,5,43,234,5,5,204,245,192,0,0,0,5,5,34,243,192,0,0,0,192,0,0,0,5,5,74,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,237,5,5,23,243,5,5,26,243,5,5,162,230,5,5,28,243,192,0,0,0,5,5,115,230,5,5,174,229,5,5,120,230,192,0,0,0,5,5,83,224,5,5,14,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,232,192,0,0,0,192,0,0,0,5,5,51,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,229,5,5,19,236,5,5,44,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,243,5,5,50,243,5,5,166,230,192,0,0,0,5,5,27,243,192,0,0,0,5,5,46,243,192,0,0,0,5,5,156,233,192,0,0,0,5,5,116,237,192,0,0,0,192,0,0,0,5,5,47,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,243,5,5,42,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,243,192,0,0,0,5,5,195,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,232,192,0,0,0,5,5,98,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,234,5,5,203,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,243,192,0,0,0,5,5,49,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,243,192,0,0,0,5,5,59,243,192,0,0,0,5,5,58,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,224,5,5,53,243,192,0,0,0,192,0,0,0,5,5,55,243,5,5,54,243,5,5,176,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,162,192,0,0,0,192,0,0,0,5,5,64,243,192,0,0,0,192,0,0,0,5,5,63,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,228,192,0,0,0,5,5,65,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,243,5,5,82,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,243,192,0,0,0,5,5,69,243,5,5,66,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,243,5,5,70,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,243,5,5,73,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,227,192,0,0,0,192,0,0,0,5,5,76,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,228,5,5,21,246,5,5,246,230,192,0,0,0,5,5,158,225,5,5,226,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,230,5,5,64,237,192,0,0,0,5,5,240,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,238,192,0,0,0,5,5,40,237,5,5,143,224,5,5,240,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,230,5,5,48,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,224,192,0,0,0,5,5,146,232,5,5,71,229,5,5,242,245,192,0,0,0,192,0,0,0,5,5,217,237,192,0,0,0,192,0,0,0,5,5,241,245,5,5,243,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,245,5,5,20,229,5,5,27,234,5,5,158,231,5,5,232,228,192,0,0,0,5,5,248,245,192,0,0,0,5,5,92,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,245,5,5,88,237,5,5,187,225,192,0,0,0,5,5,244,245,5,5,254,229,5,5,253,224,192,0,0,0,192,0,0,0,5,5,245,245,5,5,180,233,5,5,173,229,5,5,90,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,230,192,0,0,0,5,5,250,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,227,5,5,189,229,192,0,0,0,5,5,2,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,229,192,0,0,0,5,5,73,226,5,5,21,233,5,5,249,245,5,5,242,227,192,0,0,0,5,5,40,234,5,5,203,228,5,5,168,232,192,0,0,0,5,5,33,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,234,192,0,0,0,5,5,175,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,235,5,5,106,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,245,192,0,0,0,192,0,0,0,5,5,252,245,192,0,0,0,5,5,208,227,5,5,253,245,192,0,0,0,5,5,22,246,5,5,24,224,5,5,111,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,245,5,5,28,236,5,5,255,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,246,192,0,0,0,5,5,221,227,192,0,0,0,5,5,85,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,246,192,0,0,0,5,5,245,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,230,192,0,0,0,5,5,23,246,5,5,133,237,5,5,4,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,246,5,5,2,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,246,192,0,0,0,5,5,9,246,192,0,0,0,192,0,0,0,5,5,253,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,246,5,5,15,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,233,5,5,14,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,156,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,246,192,0,0,0,5,5,12,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,246,5,5,22,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,237,192,0,0,0,5,5,17,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,246,192,0,0,0,5,5,20,238,192,0,0,0,5,5,132,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,245,5,5,0,140,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,229,5,5,172,226,5,5,67,236,5,5,0,180,5,5,209,225,192,0,0,0,5,5,127,238,192,0,0,0,5,5,168,233,192,0,0,0,5,5,187,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,231,5,5,0,196,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,231,5,5,141,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,245,192,0,0,0,192,0,0,0,5,5,244,235,192,0,0,0,5,5,103,231,192,0,0,0,5,5,104,245,192,0,0,0,5,5,24,231,192,0,0,0,5,5,27,231,5,5,184,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,245,5,5,39,231,192,0,0,0,5,5,9,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,245,5,5,106,245,192,0,0,0,192,0,0,0,5,5,60,233,192,0,0,0,192,0,0,0,5,5,37,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,234,5,5,24,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,245,5,5,108,245,5,5,36,235,5,5,209,229,192,0,0,0,192,0,0,0,5,5,109,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,225,5,5,110,245,192,0,0,0,5,5,111,245,192,0,0,0,5,5,112,245,192,0,0,0,192,0,0,0,5,5,113,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,232,5,5,13,242,192,0,0,0,5,5,78,226,5,5,14,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,242,192,0,0,0,5,5,34,238,5,5,16,242,5,5,17,242,5,5,190,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,242,5,5,125,229,5,5,18,242,5,5,170,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,242,5,5,20,242,192,0,0,0,5,5,174,227,192,0,0,0,5,5,22,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,227,192,0,0,0,5,5,253,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,231,192,0,0,0,5,5,143,227,5,5,148,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,242,5,5,25,242,192,0,0,0,192,0,0,0,5,5,246,225,5,5,57,235,5,5,70,233,5,5,24,242,5,5,168,237,5,5,238,236,5,5,26,242,5,5,30,242,5,5,27,242,192,0,0,0,192,0,0,0,5,5,28,242,5,5,212,229,192,0,0,0,5,5,32,242,5,5,33,242,5,5,177,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,242,192,0,0,0,5,5,31,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,242,192,0,0,0,5,5,40,242,5,5,186,224,5,5,34,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,230,5,5,126,224,5,5,39,242,5,5,38,242,192,0,0,0,192,0,0,0,5,5,36,242,5,5,41,242,192,0,0,0,192,0,0,0,5,5,43,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,235,5,5,251,237,5,5,174,230,5,5,44,242,192,0,0,0,5,5,79,235,192,0,0,0,192,0,0,0,5,5,46,242,192,0,0,0,192,0,0,0,5,5,161,227,192,0,0,0,192,0,0,0,5,5,246,244,5,5,45,242,5,5,42,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,227,5,5,5,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,242,192,0,0,0,192,0,0,0,5,5,47,242,192,0,0,0,5,5,247,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,242,5,5,251,233,192,0,0,0,5,5,52,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,235,192,0,0,0,192,0,0,0,5,5,114,230,192,0,0,0,5,5,227,236,192,0,0,0,5,5,175,234,192,0,0,0,192,0,0,0,5,5,58,244,192,0,0,0,192,0,0,0,5,5,59,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,244,192,0,0,0,192,0,0,0,5,5,61,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,234,192,0,0,0,5,5,187,230,192,0,0,0,192,0,0,0,5,5,60,244,5,5,199,227,5,5,78,235,192,0,0,0,5,5,43,230,5,5,67,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,244,192,0,0,0,192,0,0,0,5,5,78,244,5,5,95,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,244,192,0,0,0,5,5,64,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,244,5,5,69,244,5,5,248,232,192,0,0,0,192,0,0,0,5,5,148,237,192,0,0,0,5,5,63,244,5,5,63,226,5,5,65,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,244,192,0,0,0,5,5,247,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,244,192,0,0,0,5,5,76,244,192,0,0,0,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,232,192,0,0,0,5,5,175,229,5,5,215,229,192,0,0,0,192,0,0,0,5,5,58,230,5,5,74,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,244,5,5,242,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,244,5,5,89,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,238,192,0,0,0,192,0,0,0,5,5,84,244,5,5,83,244,192,0,0,0,5,5,85,244,192,0,0,0,5,5,81,244,192,0,0,0,5,5,88,244,192,0,0,0,5,5,87,244,192,0,0,0,5,5,86,244,192,0,0,0,192,0,0,0,5,5,31,230,5,5,91,232,5,5,193,231,5,5,135,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,244,192,0,0,0,5,5,93,244,192,0,0,0,5,5,95,244,5,5,169,227,5,5,82,244,5,5,92,244,192,0,0,0,5,5,208,232,5,5,232,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,244,192,0,0,0,192,0,0,0,5,5,57,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,236,5,5,96,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,244,192,0,0,0,5,5,101,244,5,5,102,244,192,0,0,0,5,5,239,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,244,192,0,0,0,192,0,0,0,5,5,100,244,192,0,0,0,5,5,108,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,244,192,0,0,0,5,5,105,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,244,5,5,106,244,5,5,107,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,227,192,0,0,0,5,5,90,247,192,0,0,0,5,5,91,247,192,0,0,0,5,5,210,231,5,5,0,200,5,5,159,232,192,0,0,0,5,5,153,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,234,5,5,39,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,245,192,0,0,0,5,5,225,231,5,5,67,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,240,192,0,0,0,5,5,42,245,192,0,0,0,5,5,43,245,192,0,0,0,5,5,44,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,226,5,5,20,241,5,5,53,233,192,0,0,0,5,5,76,234,192,0,0,0,192,0,0,0,5,5,58,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,233,192,0,0,0,192,0,0,0,5,5,181,236,5,5,162,233,192,0,0,0,5,5,154,226,5,5,92,247,5,5,32,224,192,0,0,0,5,5,84,243,5,5,75,234,5,5,187,236,5,5,71,228,5,5,42,233,192,0,0,0,5,5,191,225,192,0,0,0,5,5,54,231,5,5,193,225,192,0,0,0,5,5,158,246,5,5,189,227,192,0,0,0,192,0,0,0,5,5,56,244,192,0,0,0,5,5,159,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,224,192,0,0,0,192,0,0,0,5,5,162,246,192,0,0,0,192,0,0,0,5,5,161,246,5,5,181,228,192,0,0,0,5,5,160,246,5,5,207,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,230,5,5,182,239,5,5,163,246,5,5,201,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,230,5,5,12,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,246,192,0,0,0,5,5,7,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,228,5,5,165,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,246,192,0,0,0,192,0,0,0,5,5,124,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,233,192,0,0,0,5,5,93,236,5,5,136,247,192,0,0,0,5,5,137,247,192,0,0,0,5,5,138,247,5,5,16,230,192,0,0,0,5,5,225,226,5,5,250,228,192,0,0,0,192,0,0,0,5,5,140,247,192,0,0,0,5,5,117,231,5,5,139,247,5,5,39,236,192,0,0,0,5,5,142,247,5,5,0,170,5,5,184,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,236,5,5,141,247,192,0,0,0,5,5,41,225,5,5,126,226,5,5,148,247,5,5,147,247,5,5,197,231,5,5,143,247,5,5,144,247,5,5,61,225,192,0,0,0,192,0,0,0,5,5,145,247,5,5,158,237,192,0,0,0,192,0,0,0,5,5,55,234,5,5,254,228,5,5,34,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,247,5,5,149,247,5,5,146,247,5,5,93,224,192,0,0,0,5,5,176,237,5,5,170,236,5,5,227,228,5,5,140,232,192,0,0,0,192,0,0,0,5,5,152,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,236,192,0,0,0,5,5,218,237,5,5,141,227,5,5,151,247,192,0,0,0,5,5,241,225,192,0,0,0,192,0,0,0,5,5,110,234,192,0,0,0,192,0,0,0,5,5,200,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,229,5,5,153,247,5,5,156,247,192,0,0,0,5,5,155,247,5,5,158,247,5,5,154,247,192,0,0,0,5,5,206,227,5,5,157,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,234,5,5,160,247,192,0,0,0,192,0,0,0,5,5,239,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,224,192,0,0,0,192,0,0,0,5,5,161,247,192,0,0,0,192,0,0,0,5,5,162,247,5,5,164,247,5,5,91,225,192,0,0,0,5,5,159,247,192,0,0,0,5,5,165,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,247,192,0,0,0,5,5,166,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,247,192,0,0,0,5,5,167,247,5,5,170,247,5,5,172,247,192,0,0,0,5,5,173,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,234,5,5,176,247,192,0,0,0,5,5,175,247,192,0,0,0,5,5,64,230,5,5,169,247,5,5,123,233,192,0,0,0,192,0,0,0,5,5,107,225,5,5,79,224,5,5,13,234,192,0,0,0,5,5,178,247,192,0,0,0,192,0,0,0,5,5,179,247,192,0,0,0,192,0,0,0,5,5,184,247,5,5,126,237,5,5,181,247,192,0,0,0,192,0,0,0,5,5,147,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,247,192,0,0,0,5,5,183,247,5,5,180,247,5,5,177,247,192,0,0,0,192,0,0,0,5,5,182,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,135,5,5,185,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,247,192,0,0,0,5,5,189,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,247,192,0,0,0,5,5,186,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,227,192,0,0,0,192,0,0,0,5,5,159,225,192,0,0,0,5,5,0,181,5,5,0,183,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,237,192,0,0,0,5,5,156,225,192,0,0,0,5,5,162,228,5,5,218,227,5,5,85,247,192,0,0,0,192,0,0,0,5,5,210,226,192,0,0,0,192,0,0,0,5,5,86,247,192,0,0,0,192,0,0,0,5,5,0,134,192,0,0,0,5,5,87,247,192,0,0,0,192,0,0,0,5,5,168,234,192,0,0,0,192,0,0,0,5,5,88,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,238,192,0,0,0,192,0,0,0,5,5,89,247,5,5,107,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,231,192,0,0,0,192,0,0,0,5,5,243,237,5,5,240,247,192,0,0,0,5,5,241,247,192,0,0,0,192,0,0,0,5,5,108,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,230,192,0,0,0,192,0,0,0,5,5,205,236,192,0,0,0,192,0,0,0,5,5,223,237,5,5,172,231,192,0,0,0,5,5,161,236,192,0,0,0,5,5,122,236,192,0,0,0,192,0,0,0,5,5,177,246,5,5,0,153,5,5,101,237,5,5,4,236,5,5,80,228,5,5,130,227,192,0,0,0,5,5,132,229,192,0,0,0,5,5,187,226,5,5,153,225,5,5,144,231,192,0,0,0,192,0,0,0,5,5,64,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,231,5,5,216,225,192,0,0,0,5,5,126,246,5,5,170,230,192,0,0,0,5,5,191,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,235,5,5,129,246,192,0,0,0,192,0,0,0,5,5,146,231,192,0,0,0,5,5,20,226,192,0,0,0,192,0,0,0,5,5,63,233,192,0,0,0,192,0,0,0,5,5,127,246,192,0,0,0,192,0,0,0,5,5,130,246,5,5,131,246,5,5,194,230,192,0,0,0,5,5,64,229,192,0,0,0,5,5,128,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,246,5,5,132,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,237,5,5,229,230,192,0,0,0,5,5,133,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,246,192,0,0,0,5,5,83,237,5,5,215,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,246,192,0,0,0,5,5,214,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,246,5,5,128,229,5,5,26,229,5,5,138,246,192,0,0,0,5,5,83,234,192,0,0,0,5,5,17,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,238,5,5,166,237,192,0,0,0,5,5,142,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,246,5,5,140,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,246,5,5,210,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,233,5,5,145,246,5,5,243,225,192,0,0,0,5,5,146,246,5,5,38,231,192,0,0,0,5,5,144,246,192,0,0,0,192,0,0,0,5,5,172,228,5,5,131,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,246,5,5,134,238,5,5,147,246,5,5,150,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,230,5,5,14,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,246,5,5,148,246,5,5,49,235,192,0,0,0,192,0,0,0,5,5,152,246,5,5,159,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,246,5,5,154,246,192,0,0,0,5,5,175,240,192,0,0,0,192,0,0,0,5,5,213,231,192,0,0,0,5,5,72,232,192,0,0,0,5,5,5,238,5,5,161,225,192,0,0,0,5,5,174,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,246,192,0,0,0,192,0,0,0,5,5,101,234,192,0,0,0,5,5,156,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,237,192,0,0,0,5,5,157,246,192,0,0,0,5,5,170,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,230,5,5,242,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,233,5,5,103,236,192,0,0,0,5,5,184,237,192,0,0,0,5,5,66,247,192,0,0,0,5,5,6,229,192,0,0,0,5,5,145,228,5,5,67,247,5,5,4,226,5,5,0,137,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,233,192,0,0,0,192,0,0,0,5,5,72,246,192,0,0,0,5,5,73,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,235,5,5,69,226,5,5,127,229,5,5,74,246,5,5,147,230,5,5,238,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,246,192,0,0,0,192,0,0,0,5,5,26,232,5,5,63,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,246,5,5,188,231,192,0,0,0,5,5,6,236,192,0,0,0,5,5,23,238,5,5,76,246,5,5,77,246,192,0,0,0,5,5,24,236,192,0,0,0,5,5,81,246,5,5,82,246,192,0,0,0,5,5,86,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,246,192,0,0,0,5,5,88,246,5,5,96,246,5,5,152,237,192,0,0,0,5,5,91,246,192,0,0,0,192,0,0,0,5,5,89,246,5,5,80,246,192,0,0,0,192,0,0,0,5,5,173,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,231,192,0,0,0,192,0,0,0,5,5,41,233,5,5,36,237,5,5,83,246,5,5,84,246,5,5,85,246,5,5,87,246,192,0,0,0,5,5,227,229,192,0,0,0,5,5,27,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,227,192,0,0,0,5,5,98,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,246,192,0,0,0,5,5,92,246,192,0,0,0,5,5,97,246,192,0,0,0,5,5,18,235,192,0,0,0,192,0,0,0,5,5,178,233,5,5,94,246,5,5,95,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,246,5,5,60,230,5,5,164,236,5,5,93,246,5,5,151,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,246,192,0,0,0,5,5,199,225,192,0,0,0,192,0,0,0,5,5,93,230,5,5,0,139,5,5,229,233,192,0,0,0,192,0,0,0,5,5,12,224,192,0,0,0,5,5,102,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,234,5,5,186,225,192,0,0,0,5,5,103,246,5,5,101,246,5,5,105,246,192,0,0,0,192,0,0,0,5,5,210,225,192,0,0,0,5,5,106,246,192,0,0,0,5,5,107,246,192,0,0,0,5,5,110,246,192,0,0,0,5,5,42,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,231,5,5,94,228,5,5,108,246,5,5,24,234,5,5,166,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,231,192,0,0,0,192,0,0,0,5,5,63,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,246,5,5,196,229,5,5,98,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,246,5,5,80,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,246,192,0,0,0,5,5,117,246,192,0,0,0,192,0,0,0,5,5,33,230,192,0,0,0,192,0,0,0,5,5,215,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,233,5,5,30,246,5,5,219,229,192,0,0,0,5,5,39,233,192,0,0,0,5,5,31,246,5,5,18,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,246,192,0,0,0,5,5,17,232,5,5,33,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,246,192,0,0,0,192,0,0,0,5,5,84,238,5,5,39,246,192,0,0,0,192,0,0,0,5,5,37,246,5,5,34,246,5,5,35,246,5,5,17,238,5,5,49,233,5,5,234,233,5,5,40,246,192,0,0,0,5,5,38,246,192,0,0,0,192,0,0,0,5,5,97,235,192,0,0,0,5,5,42,246,5,5,211,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,228,192,0,0,0,5,5,41,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,225,5,5,8,228,192,0,0,0,5,5,43,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,239,5,5,201,228,192,0,0,0,192,0,0,0,5,5,99,230,5,5,44,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,236,5,5,122,238,5,5,213,229,192,0,0,0,5,5,95,232,5,5,126,227,192,0,0,0,5,5,185,235,5,5,185,233,192,0,0,0,5,5,116,234,192,0,0,0,192,0,0,0,5,5,197,226,192,0,0,0,192,0,0,0,5,5,90,224,192,0,0,0,5,5,113,232,192,0,0,0,5,5,228,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,229,5,5,241,230,192,0,0,0,192,0,0,0,5,5,69,247,192,0,0,0,192,0,0,0,5,5,222,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,247,5,5,237,224,192,0,0,0,5,5,90,232,5,5,35,236,192,0,0,0,5,5,214,237,192,0,0,0,5,5,72,247,192,0,0,0,5,5,70,247,192,0,0,0,5,5,15,228,5,5,224,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,228,192,0,0,0,192,0,0,0,5,5,90,236,192,0,0,0,5,5,240,227,192,0,0,0,192,0,0,0,5,5,25,235,192,0,0,0,5,5,76,247,5,5,75,247,192,0,0,0,192,0,0,0,5,5,73,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,224,192,0,0,0,5,5,20,233,5,5,172,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,247,192,0,0,0,192,0,0,0,5,5,0,188,192,0,0,0,192,0,0,0,5,5,215,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,247,192,0,0,0,5,5,9,225,192,0,0,0,192,0,0,0,5,5,187,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,247,192,0,0,0,5,5,79,247,192,0,0,0,5,5,150,225,5,5,74,228,5,5,14,228,192,0,0,0,5,5,217,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,235,192,0,0,0,5,5,235,228,5,5,112,232,5,5,194,247,5,5,195,247,5,5,97,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,225,5,5,196,247,5,5,117,234,192,0,0,0,5,5,86,232,5,5,93,237,192,0,0,0,5,5,197,247,192,0,0,0,5,5,198,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,236,5,5,221,237,192,0,0,0,192,0,0,0,5,5,199,247,5,5,159,228,5,5,42,225,5,5,233,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,225,5,5,233,234,192,0,0,0,5,5,107,229,5,5,201,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,229,5,5,200,247,192,0,0,0,5,5,203,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,247,5,5,204,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,233,192,0,0,0,192,0,0,0,5,5,110,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,228,5,5,229,228,5,5,114,237,192,0,0,0,192,0,0,0,5,5,46,229,192,0,0,0,5,5,105,234,5,5,193,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,228,192,0,0,0,5,5,3,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,237,5,5,141,248,192,0,0,0,192,0,0,0,5,5,142,248,192,0,0,0,5,5,193,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,248,5,5,145,248,192,0,0,0,5,5,0,168,192,0,0,0,5,5,143,248,192,0,0,0,5,5,147,248,5,5,237,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,248,192,0,0,0,5,5,124,235,192,0,0,0,192,0,0,0,5,5,40,224,5,5,146,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,248,192,0,0,0,5,5,169,225,192,0,0,0,192,0,0,0,5,5,161,248,192,0,0,0,5,5,156,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,248,5,5,157,248,5,5,145,226,192,0,0,0,5,5,29,224,192,0,0,0,5,5,152,248,5,5,148,248,5,5,178,225,192,0,0,0,5,5,154,248,192,0,0,0,192,0,0,0,5,5,155,248,192,0,0,0,5,5,159,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,248,192,0,0,0,5,5,83,228,192,0,0,0,5,5,71,230,192,0,0,0,5,5,160,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,248,192,0,0,0,5,5,150,248,192,0,0,0,5,5,160,225,192,0,0,0,5,5,188,228,5,5,166,248,192,0,0,0,192,0,0,0,5,5,58,226,5,5,124,229,5,5,14,238,5,5,108,234,192,0,0,0,5,5,106,225,192,0,0,0,5,5,155,224,192,0,0,0,5,5,162,248,192,0,0,0,5,5,163,248,5,5,246,232,192,0,0,0,5,5,167,248,192,0,0,0,192,0,0,0,5,5,168,248,192,0,0,0,5,5,171,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,248,192,0,0,0,192,0,0,0,5,5,173,248,5,5,172,248,192,0,0,0,192,0,0,0,5,5,165,248,192,0,0,0,5,5,118,229,192,0,0,0,5,5,11,225,192,0,0,0,5,5,170,248,192,0,0,0,192,0,0,0,5,5,43,232,192,0,0,0,5,5,98,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,227,192,0,0,0,192,0,0,0,5,5,174,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,224,5,5,16,228,192,0,0,0,5,5,223,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,248,5,5,179,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,227,5,5,184,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,248,5,5,176,248,5,5,180,248,5,5,137,230,5,5,182,248,5,5,185,248,5,5,178,248,5,5,109,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,235,192,0,0,0,192,0,0,0,5,5,186,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,238,5,5,204,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,248,192,0,0,0,5,5,80,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,226,5,5,191,248,192,0,0,0,192,0,0,0,5,5,190,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,248,5,5,193,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,229,192,0,0,0,192,0,0,0,5,5,211,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,248,192,0,0,0,5,5,196,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,248,5,5,195,248,192,0,0,0,192,0,0,0,5,5,198,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,248,5,5,217,227,192,0,0,0,192,0,0,0,5,5,202,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,224,5,5,206,248,5,5,205,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,230,5,5,13,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,229,5,5,244,248,5,5,63,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,248,5,5,235,229,192,0,0,0,192,0,0,0,5,5,235,231,192,0,0,0,5,5,80,225,5,5,99,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,248,5,5,247,248,5,5,249,248,5,5,214,233,192,0,0,0,192,0,0,0,5,5,250,248,192,0,0,0,5,5,19,237,5,5,238,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,230,192,0,0,0,192,0,0,0,5,5,5,230,5,5,251,248,5,5,216,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,225,192,0,0,0,192,0,0,0,5,5,252,248,5,5,253,248,5,5,215,228,192,0,0,0,192,0,0,0,5,5,254,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,249,192,0,0,0,5,5,255,248,5,5,4,249,192,0,0,0,5,5,175,227,192,0,0,0,5,5,2,249,5,5,3,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,226,5,5,35,234,5,5,6,249,192,0,0,0,5,5,150,224,192,0,0,0,192,0,0,0,5,5,217,230,192,0,0,0,192,0,0,0,5,5,53,237,5,5,67,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,249,192,0,0,0,192,0,0,0,5,5,45,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,233,192,0,0,0,5,5,243,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,243,5,5,236,228,5,5,244,243,5,5,158,227,5,5,245,243,5,5,67,235,5,5,246,243,5,5,14,237,5,5,38,228,5,5,247,243,5,5,248,243,5,5,61,228,5,5,178,232,5,5,203,234,5,5,249,243,192,0,0,0,5,5,57,225,5,5,250,243,5,5,242,232,5,5,205,226,5,5,47,231,192,0,0,0,5,5,75,238,5,5,130,230,5,5,109,226,5,5,203,237,5,5,222,234,5,5,90,226,192,0,0,0,192,0,0,0,5,5,106,231,5,5,251,243,5,5,87,235,5,5,252,243,5,5,253,243,5,5,254,243,5,5,255,229,5,5,87,238,5,5,48,233,5,5,48,235,5,5,189,237,5,5,227,237,5,5,255,243,5,5,0,203,5,5,2,244,5,5,3,244,5,5,28,233,5,5,131,236,5,5,217,228,5,5,4,244,5,5,0,209,5,5,190,232,5,5,175,228,5,5,5,244,5,5,166,232,192,0,0,0,5,5,6,244,5,5,246,227,5,5,236,226,5,5,216,235,5,5,7,244,5,5,143,230,5,5,38,229,5,5,152,228,5,5,109,234,5,5,8,244,5,5,9,244,5,5,28,229,5,5,187,235,192,0,0,0,5,5,227,233,5,5,44,234,5,5,60,228,5,5,10,244,5,5,24,228,5,5,205,235,5,5,11,244,192,0,0,0,5,5,206,235,5,5,12,244,5,5,13,244,5,5,60,225,5,5,14,244,5,5,15,244,5,5,62,233,5,5,196,234,5,5,230,230,5,5,17,244,5,5,31,224,5,5,13,225,192,0,0,0,5,5,18,244,5,5,19,244,5,5,73,238,5,5,112,237,5,5,20,244,5,5,116,230,5,5,40,238,5,5,21,244,5,5,22,244,5,5,23,244,5,5,90,228,5,5,235,230,5,5,172,229,5,5,24,244,5,5,25,244,5,5,25,228,192,0,0,0,5,5,26,244,5,5,27,244,5,5,16,244,5,5,8,226,5,5,28,244,192,0,0,0,5,5,29,244,5,5,30,244,5,5,202,227,5,5,182,225,5,5,110,230,5,5,62,224,5,5,31,244,5,5,7,237,5,5,32,244,5,5,179,226,5,5,34,244,5,5,33,244,5,5,130,226,192,0,0,0,5,5,35,244,5,5,180,224,5,5,36,244,5,5,37,244,5,5,38,244,5,5,39,244,5,5,40,244,5,5,41,244,5,5,42,244,5,5,153,236,5,5,241,233,5,5,43,244,5,5,44,244,5,5,45,244,5,5,46,244,5,5,9,233,5,5,47,244,5,5,48,244,5,5,49,244,5,5,50,244,5,5,51,244,5,5,151,228,5,5,52,244,5,5,136,248,192,0,0,0,5,5,203,226,192,0,0,0,5,5,145,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,248,192,0,0,0,5,5,138,248,5,5,139,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,227,5,5,178,234,192,0,0,0,192,0,0,0,5,5,180,238,5,5,99,227,192,0,0,0,5,5,134,230,5,5,167,246,192,0,0,0,5,5,57,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,246,192,0,0,0,5,5,168,246,5,5,0,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,246,5,5,134,237,5,5,93,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,237,192,0,0,0,192,0,0,0,5,5,173,246,5,5,142,233,192,0,0,0,5,5,172,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,246,192,0,0,0,192,0,0,0,5,5,175,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,236,192,0,0,0,5,5,62,232,192,0,0,0,5,5,198,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,230,192,0,0,0,192,0,0,0,5,5,238,248,5,5,181,235,5,5,239,248,192,0,0,0,5,5,83,235,192,0,0,0,192,0,0,0,5,5,154,232,192,0,0,0,192,0,0,0,5,5,240,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,248,5,5,242,248,192,0,0,0,5,5,243,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,239,5,5,242,226,192,0,0,0,192,0,0,0,5,5,141,243,5,5,226,236,192,0,0,0,5,5,10,249,192,0,0,0,5,5,228,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,247,192,0,0,0,5,5,130,236,192,0,0,0,5,5,11,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,235,5,5,12,249,192,0,0,0,192,0,0,0,5,5,78,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,225,5,5,94,225,5,5,14,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,249,5,5,15,249,192,0,0,0,192,0,0,0,5,5,16,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,249,192,0,0,0,5,5,100,227,5,5,0,157,192,0,0,0,5,5,18,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,226,5,5,129,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,236,5,5,185,229,192,0,0,0,5,5,72,229,5,5,119,245,5,5,143,237,5,5,62,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,247,5,5,48,226,5,5,159,233,192,0,0,0,192,0,0,0,5,5,51,231,192,0,0,0,5,5,243,247,192,0,0,0,5,5,244,247,5,5,239,226,5,5,245,247,5,5,118,227,5,5,23,237,5,5,0,176,192,0,0,0,192,0,0,0,5,5,246,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,247,192,0,0,0,5,5,248,247,192,0,0,0,192,0,0,0,5,5,249,247,5,5,250,247,5,5,251,247,5,5,253,247,5,5,252,247,5,5,153,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,247,192,0,0,0,5,5,50,226,192,0,0,0,5,5,2,248,5,5,66,236,5,5,203,240,5,5,198,233,192,0,0,0,192,0,0,0,5,5,246,224,192,0,0,0,5,5,122,225,192,0,0,0,5,5,244,226,192,0,0,0,192,0,0,0,5,5,90,231,5,5,3,248,192,0,0,0,192,0,0,0,5,5,4,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,230,5,5,69,230,5,5,190,237,5,5,5,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,248,192,0,0,0,5,5,242,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,231,192,0,0,0,5,5,9,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,248,5,5,73,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,246,5,5,67,246,192,0,0,0,192,0,0,0,5,5,220,233,5,5,114,236,192,0,0,0,5,5,189,233,5,5,136,237,192,0,0,0,5,5,194,232,192,0,0,0,5,5,201,229,5,5,17,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,245,192,0,0,0,192,0,0,0,5,5,122,235,192,0,0,0,5,5,240,237,192,0,0,0,5,5,253,225,5,5,204,226,5,5,148,245,5,5,194,226,192,0,0,0,5,5,147,245,5,5,192,224,5,5,29,227,5,5,185,237,192,0,0,0,5,5,138,226,5,5,96,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,228,5,5,84,226,5,5,154,245,192,0,0,0,5,5,155,245,5,5,0,151,5,5,91,229,192,0,0,0,5,5,153,245,5,5,239,236,192,0,0,0,5,5,156,245,192,0,0,0,192,0,0,0,5,5,157,245,192,0,0,0,192,0,0,0,5,5,100,226,192,0,0,0,5,5,150,245,5,5,152,245,5,5,54,233,5,5,229,237,5,5,125,237,5,5,136,235,5,5,163,245,5,5,208,234,5,5,164,245,192,0,0,0,5,5,128,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,224,5,5,166,245,5,5,255,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,231,5,5,167,245,192,0,0,0,5,5,165,245,5,5,163,231,5,5,162,245,5,5,66,233,5,5,169,245,5,5,0,217,192,0,0,0,192,0,0,0,5,5,172,227,192,0,0,0,192,0,0,0,5,5,131,238,5,5,239,247,192,0,0,0,5,5,158,245,5,5,159,245,5,5,160,245,5,5,161,245,5,5,170,245,5,5,186,243,5,5,173,245,192,0,0,0,5,5,116,229,5,5,92,236,5,5,171,245,5,5,176,245,5,5,224,226,5,5,172,245,192,0,0,0,5,5,136,228,192,0,0,0,5,5,174,235,192,0,0,0,5,5,0,149,192,0,0,0,5,5,177,245,5,5,66,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,225,192,0,0,0,192,0,0,0,5,5,158,230,5,5,41,228,192,0,0,0,192,0,0,0,5,5,174,245,5,5,175,245,5,5,50,237,5,5,14,232,5,5,58,231,5,5,179,245,5,5,107,231,5,5,33,239,192,0,0,0,5,5,109,224,192,0,0,0,5,5,184,245,192,0,0,0,5,5,147,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,245,192,0,0,0,192,0,0,0,5,5,160,226,192,0,0,0,5,5,139,234,5,5,185,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,245,192,0,0,0,5,5,251,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,234,192,0,0,0,5,5,186,245,192,0,0,0,5,5,154,229,5,5,76,236,5,5,187,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,226,5,5,161,226,192,0,0,0,5,5,188,245,5,5,61,232,5,5,173,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,245,5,5,191,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,235,192,0,0,0,5,5,198,245,192,0,0,0,5,5,194,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,245,5,5,217,232,192,0,0,0,5,5,50,236,5,5,192,245,192,0,0,0,192,0,0,0,5,5,189,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,226,5,5,81,235,5,5,75,231,5,5,195,245,5,5,196,245,5,5,54,234,5,5,130,234,5,5,0,208,192,0,0,0,5,5,202,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,245,192,0,0,0,5,5,110,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,226,192,0,0,0,5,5,203,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,224,192,0,0,0,192,0,0,0,5,5,33,234,5,5,10,231,5,5,29,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,245,192,0,0,0,192,0,0,0,5,5,212,245,192,0,0,0,5,5,182,231,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,242,5,5,210,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,234,5,5,211,245,5,5,57,224,5,5,169,236,192,0,0,0,192,0,0,0,5,5,112,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,245,192,0,0,0,5,5,207,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,245,192,0,0,0,192,0,0,0,5,5,66,238,192,0,0,0,5,5,211,248,5,5,16,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,237,5,5,208,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,237,5,5,246,228,192,0,0,0,5,5,207,248,192,0,0,0,5,5,60,236,5,5,208,248,5,5,209,248,192,0,0,0,5,5,210,248,5,5,247,228,5,5,209,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,233,5,5,33,233,192,0,0,0,192,0,0,0,5,5,140,248,192,0,0,0,5,5,132,233,192,0,0,0,5,5,78,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,242,5,5,176,233,192,0,0,0,5,5,2,235,5,5,233,237,192,0,0,0,5,5,213,248,5,5,214,248,5,5,215,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,248,192,0,0,0,5,5,111,227,5,5,219,248,5,5,0,193,5,5,216,248,192,0,0,0,5,5,217,248,5,5,112,228,5,5,145,224,192,0,0,0,5,5,222,248,5,5,223,248,5,5,30,226,5,5,108,224,5,5,71,235,5,5,220,248,5,5,38,225,192,0,0,0,5,5,221,248,192,0,0,0,192,0,0,0,5,5,224,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,248,192,0,0,0,192,0,0,0,5,5,97,234,192,0,0,0,5,5,226,248,192,0,0,0,5,5,227,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,233,192,0,0,0,5,5,229,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,249,5,5,6,230,5,5,88,228,192,0,0,0,5,5,233,232,5,5,20,236,5,5,145,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,239,5,5,105,236,192,0,0,0,192,0,0,0,5,5,250,239,5,5,0,138,5,5,251,239,192,0,0,0,192,0,0,0,5,5,168,228,192,0,0,0,5,5,255,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,238,192,0,0,0,5,5,253,239,5,5,229,236,192,0,0,0,5,5,22,233,5,5,2,240,5,5,252,239,192,0,0,0,5,5,3,240,5,5,168,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,240,5,5,13,240,5,5,5,240,192,0,0,0,192,0,0,0,5,5,247,234,5,5,179,237,192,0,0,0,5,5,23,240,192,0,0,0,5,5,21,240,192,0,0,0,192,0,0,0,5,5,26,240,5,5,180,228,5,5,83,230,192,0,0,0,5,5,254,239,5,5,19,240,5,5,22,240,5,5,6,240,5,5,104,226,5,5,0,163,5,5,15,240,5,5,148,235,5,5,9,240,5,5,184,227,192,0,0,0,5,5,82,226,5,5,20,240,192,0,0,0,192,0,0,0,5,5,14,240,5,5,7,240,5,5,93,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,235,5,5,8,240,192,0,0,0,192,0,0,0,5,5,18,240,192,0,0,0,192,0,0,0,5,5,24,240,192,0,0,0,192,0,0,0,5,5,197,234,5,5,10,240,192,0,0,0,5,5,11,240,5,5,16,240,5,5,17,240,5,5,144,224,5,5,25,240,5,5,209,233,192,0,0,0,5,5,9,237,5,5,35,240,5,5,39,240,5,5,2,234,5,5,46,240,192,0,0,0,5,5,237,230,5,5,36,240,192,0,0,0,192,0,0,0,5,5,77,229,5,5,33,240,192,0,0,0,5,5,0,216,5,5,10,227,5,5,45,240,5,5,27,240,192,0,0,0,5,5,12,240,5,5,30,240,5,5,212,232,5,5,108,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,224,192,0,0,0,5,5,148,236,192,0,0,0,192,0,0,0,5,5,34,240,192,0,0,0,192,0,0,0,5,5,29,240,192,0,0,0,5,5,221,231,192,0,0,0,5,5,38,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,238,5,5,181,230,5,5,76,226,5,5,83,232,5,5,175,230,5,5,42,240,5,5,32,240,5,5,51,240,5,5,28,240,192,0,0,0,192,0,0,0,5,5,37,240,192,0,0,0,5,5,209,228,5,5,31,240,192,0,0,0,5,5,40,240,192,0,0,0,192,0,0,0,5,5,43,240,5,5,44,240,192,0,0,0,5,5,64,240,192,0,0,0,192,0,0,0,5,5,41,240,5,5,72,240,5,5,47,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,228,5,5,62,225,192,0,0,0,192,0,0,0,5,5,169,230,5,5,163,224,5,5,66,240,192,0,0,0,5,5,58,240,192,0,0,0,5,5,55,240,192,0,0,0,5,5,68,240,5,5,54,240,5,5,132,236,5,5,164,224,192,0,0,0,5,5,183,232,5,5,195,232,5,5,67,240,192,0,0,0,5,5,53,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,240,192,0,0,0,192,0,0,0,5,5,61,240,192,0,0,0,192,0,0,0,5,5,207,228,5,5,60,240,192,0,0,0,5,5,153,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,240,5,5,102,228,5,5,48,240,5,5,212,227,192,0,0,0,5,5,221,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,228,5,5,49,240,5,5,50,240,192,0,0,0,5,5,57,240,5,5,62,240,5,5,65,240,5,5,140,225,192,0,0,0,5,5,185,232,5,5,247,227,5,5,70,240,5,5,69,240,5,5,157,236,5,5,71,240,5,5,73,240,5,5,75,240,5,5,133,236,5,5,74,240,5,5,76,240,5,5,77,240,5,5,61,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,227,5,5,79,240,192,0,0,0,192,0,0,0,5,5,92,240,5,5,87,240,5,5,90,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,240,5,5,240,231,192,0,0,0,192,0,0,0,5,5,220,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,240,5,5,84,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,240,192,0,0,0,192,0,0,0,5,5,56,240,5,5,85,240,192,0,0,0,5,5,94,240,192,0,0,0,5,5,82,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,240,5,5,89,240,5,5,83,240,5,5,16,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,240,5,5,157,229,5,5,243,229,5,5,80,240,5,5,81,240,192,0,0,0,5,5,88,240,5,5,3,228,5,5,91,240,5,5,154,236,5,5,96,240,192,0,0,0,5,5,97,240,5,5,173,230,192,0,0,0,192,0,0,0,5,5,120,240,5,5,98,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,240,192,0,0,0,5,5,17,227,192,0,0,0,192,0,0,0,5,5,3,229,192,0,0,0,5,5,40,229,192,0,0,0,192,0,0,0,5,5,124,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,240,192,0,0,0,5,5,107,240,192,0,0,0,5,5,101,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,224,5,5,105,240,192,0,0,0,5,5,113,240,5,5,96,224,5,5,123,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,231,5,5,118,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,240,5,5,44,230,5,5,92,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,240,5,5,117,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,240,192,0,0,0,5,5,115,240,5,5,45,234,192,0,0,0,5,5,111,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,240,5,5,206,230,5,5,222,231,5,5,198,234,5,5,114,240,192,0,0,0,5,5,110,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,240,5,5,132,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,236,5,5,156,236,5,5,121,240,5,5,108,235,5,5,216,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,240,5,5,140,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,238,192,0,0,0,5,5,127,240,5,5,126,240,5,5,228,226,5,5,124,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,231,192,0,0,0,5,5,227,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,240,192,0,0,0,5,5,171,227,5,5,51,237,5,5,141,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,225,192,0,0,0,5,5,128,240,192,0,0,0,5,5,135,229,5,5,137,240,192,0,0,0,5,5,133,240,192,0,0,0,5,5,131,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,240,5,5,130,240,5,5,132,240,192,0,0,0,5,5,125,228,5,5,138,240,192,0,0,0,5,5,139,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,240,192,0,0,0,5,5,207,230,192,0,0,0,192,0,0,0,5,5,222,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,238,192,0,0,0,192,0,0,0,5,5,243,231,192,0,0,0,5,5,154,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,237,5,5,153,240,5,5,150,240,192,0,0,0,192,0,0,0,5,5,146,240,192,0,0,0,5,5,149,240,192,0,0,0,5,5,142,240,192,0,0,0,192,0,0,0,5,5,196,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,232,5,5,148,240,192,0,0,0,192,0,0,0,5,5,143,240,192,0,0,0,192,0,0,0,5,5,144,240,5,5,238,233,192,0,0,0,5,5,147,240,192,0,0,0,192,0,0,0,5,5,43,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,229,192,0,0,0,5,5,43,228,5,5,151,240,192,0,0,0,192,0,0,0,5,5,157,240,192,0,0,0,5,5,156,240,5,5,145,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,5,5,167,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,230,192,0,0,0,5,5,163,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,237,192,0,0,0,192,0,0,0,5,5,205,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,240,192,0,0,0,5,5,136,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,231,5,5,125,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,232,5,5,160,240,5,5,162,240,5,5,164,240,5,5,166,240,5,5,0,136,5,5,44,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,240,5,5,132,228,5,5,207,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,240,192,0,0,0,192,0,0,0,5,5,169,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,240,192,0,0,0,5,5,30,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,240,5,5,174,240,5,5,178,240,192,0,0,0,192,0,0,0,5,5,195,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,221,5,5,186,240,192,0,0,0,5,5,181,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,235,5,5,185,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,240,192,0,0,0,5,5,147,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,240,5,5,139,233,5,5,189,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,240,192,0,0,0,5,5,187,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,224,5,5,240,230,192,0,0,0,192,0,0,0,5,5,190,240,192,0,0,0,5,5,126,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,240,192,0,0,0,5,5,196,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,248,5,5,178,227,5,5,90,230,5,5,116,231,5,5,111,230,192,0,0,0,192,0,0,0,5,5,27,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,225,5,5,28,248,192,0,0,0,5,5,29,248,192,0,0,0,192,0,0,0,5,5,75,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,227,5,5,31,248,5,5,33,248,5,5,32,248,5,5,224,233,5,5,50,235,5,5,30,248,5,5,82,233,5,5,99,236,5,5,148,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,234,5,5,36,248,5,5,0,212,5,5,35,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,248,192,0,0,0,5,5,139,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,235,5,5,38,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,248,5,5,59,237,192,0,0,0,192,0,0,0,5,5,39,248,5,5,34,248,5,5,43,248,5,5,41,248,192,0,0,0,5,5,37,248,192,0,0,0,192,0,0,0,5,5,51,248,5,5,48,248,5,5,50,248,192,0,0,0,192,0,0,0,5,5,54,248,5,5,46,248,5,5,44,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,248,192,0,0,0,5,5,123,232,5,5,31,233,192,0,0,0,5,5,52,248,5,5,26,227,5,5,136,225,192,0,0,0,192,0,0,0,5,5,47,248,5,5,53,248,5,5,60,248,5,5,66,248,192,0,0,0,192,0,0,0,5,5,231,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,248,5,5,150,234,192,0,0,0,5,5,249,237,192,0,0,0,192,0,0,0,5,5,62,248,5,5,64,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,248,5,5,161,230,192,0,0,0,5,5,141,237,5,5,56,248,5,5,57,248,5,5,59,248,5,5,63,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,248,5,5,174,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,226,192,0,0,0,5,5,143,233,192,0,0,0,5,5,122,226,5,5,67,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,248,5,5,70,248,5,5,73,248,5,5,71,248,192,0,0,0,192,0,0,0,5,5,72,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,236,5,5,61,248,192,0,0,0,5,5,131,234,192,0,0,0,5,5,231,234,5,5,183,237,192,0,0,0,5,5,79,248,192,0,0,0,5,5,225,230,192,0,0,0,5,5,76,248,192,0,0,0,192,0,0,0,5,5,153,229,5,5,88,248,5,5,74,248,192,0,0,0,5,5,77,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,248,192,0,0,0,192,0,0,0,5,5,83,248,192,0,0,0,192,0,0,0,5,5,82,248,192,0,0,0,192,0,0,0,5,5,85,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,248,192,0,0,0,192,0,0,0,5,5,80,248,5,5,86,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,236,5,5,81,248,5,5,177,224,192,0,0,0,192,0,0,0,5,5,94,248,192,0,0,0,5,5,129,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,227,192,0,0,0,5,5,101,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,248,192,0,0,0,192,0,0,0,5,5,98,248,5,5,100,248,5,5,102,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,248,192,0,0,0,5,5,93,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,227,192,0,0,0,5,5,211,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,248,5,5,99,248,5,5,89,248,5,5,90,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,248,5,5,112,248,192,0,0,0,5,5,109,248,192,0,0,0,192,0,0,0,5,5,108,248,192,0,0,0,192,0,0,0,5,5,96,248,192,0,0,0,5,5,186,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,248,192,0,0,0,192,0,0,0,5,5,113,248,5,5,115,248,5,5,110,248,192,0,0,0,5,5,104,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,248,192,0,0,0,5,5,116,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,230,192,0,0,0,192,0,0,0,5,5,120,248,192,0,0,0,192,0,0,0,5,5,122,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,248,5,5,118,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,248,5,5,106,248,5,5,119,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,248,192,0,0,0,5,5,196,232,5,5,128,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,248,5,5,58,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,248,192,0,0,0,192,0,0,0,5,5,135,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,248,5,5,156,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,235,5,5,18,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,235,192,0,0,0,192,0,0,0,5,5,164,228,192,0,0,0,5,5,247,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,227,5,5,11,242,5,5,86,236,5,5,206,247,5,5,117,224,192,0,0,0,192,0,0,0,5,5,75,224,5,5,207,247,192,0,0,0,5,5,254,232,5,5,222,224,192,0,0,0,5,5,30,239,192,0,0,0,5,5,161,233,192,0,0,0,5,5,208,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,247,5,5,232,248,5,5,210,247,192,0,0,0,5,5,252,236,5,5,211,247,192,0,0,0,5,5,0,158,5,5,233,248,192,0,0,0,192,0,0,0,5,5,234,248,192,0,0,0,192,0,0,0,5,5,118,225,192,0,0,0,5,5,159,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,247,192,0,0,0,5,5,31,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,224,192,0,0,0,5,5,38,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,224,5,5,27,230,192,0,0,0,192,0,0,0,5,5,30,238,5,5,213,247,192,0,0,0,192,0,0,0,5,5,216,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,239,192,0,0,0,5,5,117,236,5,5,243,236,192,0,0,0,192,0,0,0,5,5,235,248,5,5,153,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,248,192,0,0,0,192,0,0,0,5,5,217,247,5,5,219,247,5,5,111,229,5,5,220,247,192,0,0,0,192,0,0,0,5,5,224,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,247,5,5,221,247,192,0,0,0,5,5,17,233,5,5,165,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,230,5,5,80,227,192,0,0,0,192,0,0,0,5,5,223,247,192,0,0,0,5,5,225,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,227,192,0,0,0,5,5,0,219,5,5,229,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,247,5,5,222,247,5,5,230,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,234,5,5,233,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,247,192,0,0,0,5,5,234,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,247,192,0,0,0,192,0,0,0,5,5,93,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,248,5,5,193,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,235,192,0,0,0,5,5,62,236,192,0,0,0,5,5,9,248,192,0,0,0,192,0,0,0,5,5,166,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,228,5,5,47,227,192,0,0,0,5,5,58,227,5,5,223,230,5,5,113,233,5,5,94,245,5,5,170,229,5,5,35,229,5,5,95,245,5,5,96,245,5,5,97,245,192,0,0,0,5,5,98,245,5,5,99,245,5,5,100,245,5,5,101,245,5,5,149,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,249,192,0,0,0,5,5,134,249,192,0,0,0,5,5,132,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,228,192,0,0,0,5,5,135,249,5,5,31,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,236,5,5,56,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,239,5,5,54,228,5,5,223,225,5,5,176,226,5,5,175,232,5,5,21,228,5,5,48,239,5,5,49,239,5,5,50,234,5,5,163,232,5,5,50,239,5,5,33,232,192,0,0,0,5,5,233,235,5,5,125,236,5,5,234,235,5,5,55,228,192,0,0,0,5,5,128,228,5,5,244,227,5,5,51,239,5,5,52,239,5,5,252,235,5,5,53,239,5,5,195,235,5,5,39,226,5,5,131,230,192,0,0,0,5,5,203,233,5,5,131,226,5,5,40,233,5,5,89,226,5,5,37,229,5,5,178,237,5,5,54,239,5,5,55,239,5,5,226,231,5,5,85,238,5,5,84,233,192,0,0,0,5,5,89,237,5,5,219,233,5,5,159,237,5,5,56,239,5,5,237,237,5,5,68,225,5,5,58,239,5,5,57,239,192,0,0,0,5,5,127,236,5,5,59,239,5,5,60,239,5,5,61,239,5,5,114,233,5,5,62,239,5,5,73,233,5,5,63,239,5,5,64,239,5,5,233,224,5,5,253,237,5,5,65,239,5,5,192,227,5,5,134,225,5,5,66,239,5,5,67,239,5,5,66,227,5,5,227,235,5,5,124,236,5,5,68,239,5,5,183,226,5,5,98,235,5,5,171,224,5,5,69,239,5,5,70,239,192,0,0,0,5,5,185,228,5,5,244,234,5,5,225,236,5,5,71,239,5,5,13,235,5,5,72,239,5,5,199,236,5,5,245,227,5,5,73,239,5,5,177,233,5,5,204,233,5,5,74,239,5,5,109,232,5,5,252,237,5,5,75,239,5,5,121,231,5,5,247,225,5,5,76,239,5,5,98,226,5,5,90,229,5,5,77,239,5,5,78,239,5,5,169,233,5,5,79,239,5,5,207,225,5,5,80,239,5,5,12,230,5,5,41,238,5,5,81,239,5,5,20,234,192,0,0,0,5,5,126,236,5,5,23,231,5,5,82,239,5,5,213,225,5,5,225,227,5,5,83,239,5,5,137,235,5,5,84,239,5,5,85,239,5,5,213,234,5,5,86,239,5,5,87,239,5,5,88,239,5,5,179,224,5,5,91,239,5,5,89,239,5,5,30,236,5,5,90,239,5,5,219,230,5,5,92,239,192,0,0,0,5,5,93,239,5,5,94,239,5,5,95,239,5,5,145,235,5,5,57,236,5,5,0,215,5,5,96,239,5,5,45,232,5,5,97,239,5,5,197,228,5,5,167,230,5,5,98,239,5,5,99,239,5,5,5,231,5,5,19,234,5,5,100,239,5,5,101,239,5,5,168,229,5,5,249,231,5,5,102,239,5,5,103,239,5,5,54,232,5,5,104,239,5,5,105,239,5,5,28,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,225,5,5,34,249,192,0,0,0,5,5,35,249,192,0,0,0,192,0,0,0,5,5,157,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,235,5,5,207,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,227,5,5,245,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,249,5,5,8,224,5,5,174,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,249,192,0,0,0,192,0,0,0,5,5,127,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,227,5,5,126,249,192,0,0,0,5,5,184,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,224,5,5,154,237,5,5,174,226,192,0,0,0,5,5,5,227,5,5,130,224,5,5,66,237,5,5,69,235,5,5,0,186,5,5,123,237,5,5,7,228,5,5,216,237,5,5,77,226,5,5,12,234,5,5,216,231,5,5,63,224,5,5,14,227,5,5,12,238,5,5,53,227,5,5,55,226,5,5,106,228,5,5,80,245,5,5,81,245,5,5,85,234,5,5,71,227,5,5,82,245,5,5,117,225,5,5,185,230,5,5,103,226,5,5,138,227,5,5,83,245,5,5,70,237,5,5,84,245,5,5,70,228,5,5,239,227,5,5,85,245,5,5,40,230,5,5,96,230,5,5,49,237,5,5,56,238,5,5,86,245,5,5,87,245,5,5,90,245,5,5,88,245,5,5,89,245,5,5,30,233,5,5,167,226,5,5,250,225,5,5,91,245,5,5,136,233,5,5,13,233,5,5,71,225,192,0,0,0,192,0,0,0,5,5,89,242,5,5,166,231,5,5,92,245,5,5,159,229,192,0,0,0,5,5,38,238,5,5,93,245,5,5,26,238,5,5,220,232,5,5,159,238,5,5,153,238,5,5,48,237,192,0,0,0,5,5,75,237,5,5,4,233,5,5,160,236,5,5,199,226,5,5,250,224,192,0,0,0,5,5,34,233,5,5,32,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,227,192,0,0,0,5,5,33,249,192,0,0,0,192,0,0,0,5,5,77,238,192,0,0,0,192,0,0,0,5,5,27,249,5,5,164,226,5,5,132,237,5,5,195,226,5,5,20,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,224,192,0,0,0,192,0,0,0,5,5,28,249,5,5,198,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,237,5,5,121,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,249,192,0,0,0,192,0,0,0,5,5,29,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,249,192,0,0,0,5,5,81,238,5,5,131,231,5,5,72,249,192,0,0,0,192,0,0,0,5,5,67,249,192,0,0,0,5,5,75,249,192,0,0,0,5,5,74,249,192,0,0,0,5,5,200,237,5,5,73,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,237,5,5,76,249,192,0,0,0,5,5,84,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,173,5,5,208,225,192,0,0,0,5,5,81,249,5,5,82,249,192,0,0,0,5,5,160,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,249,5,5,78,249,192,0,0,0,192,0,0,0,5,5,79,249,5,5,83,249,192,0,0,0,5,5,14,229,5,5,80,249,5,5,238,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,249,5,5,91,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,229,192,0,0,0,5,5,70,227,5,5,68,249,5,5,85,249,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,234,192,0,0,0,5,5,105,228,192,0,0,0,5,5,86,249,5,5,87,249,5,5,89,249,5,5,29,226,5,5,90,249,192,0,0,0,5,5,93,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,249,5,5,173,236,192,0,0,0,5,5,8,225,192,0,0,0,192,0,0,0,5,5,254,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,249,5,5,15,229,5,5,96,249,192,0,0,0,192,0,0,0,5,5,59,234,5,5,99,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,224,5,5,71,238,192,0,0,0,5,5,97,249,192,0,0,0,5,5,98,249,5,5,100,249,192,0,0,0,5,5,106,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,249,5,5,101,249,192,0,0,0,192,0,0,0,5,5,105,249,192,0,0,0,192,0,0,0,5,5,102,249,5,5,108,249,5,5,109,249,192,0,0,0,5,5,63,234,192,0,0,0,192,0,0,0,5,5,91,243,5,5,144,225,5,5,107,249,5,5,112,249,5,5,253,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,249,5,5,111,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,224,192,0,0,0,192,0,0,0,5,5,71,249,192,0,0,0,192,0,0,0,5,5,157,225,5,5,160,224,192,0,0,0,5,5,116,249,5,5,113,249,192,0,0,0,5,5,15,226,192,0,0,0,5,5,117,249,192,0,0,0,5,5,114,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,249,192,0,0,0,192,0,0,0,5,5,84,225,192,0,0,0,5,5,60,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,249,192,0,0,0,5,5,21,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,249,5,5,121,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,249,192,0,0,0,5,5,123,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,233,5,5,252,226,192,0,0,0,192,0,0,0,5,5,125,232,192,0,0,0,192,0,0,0,5,5,27,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,224,5,5,80,237,5,5,64,227,5,5,207,235,192,0,0,0,5,5,5,245,5,5,24,238,5,5,6,245,5,5,126,230,5,5,205,232,5,5,150,227,5,5,7,245,5,5,8,245,5,5,9,245,5,5,239,237,5,5,10,245,5,5,11,245,5,5,13,245,5,5,12,245,5,5,14,245,5,5,15,245,5,5,99,232,5,5,16,245,5,5,42,237,5,5,17,245,5,5,156,228,192,0,0,0,5,5,18,245,5,5,19,245,5,5,157,228,5,5,20,245,5,5,156,226,5,5,8,230,5,5,21,245,5,5,16,224,5,5,228,227,5,5,73,227,5,5,22,245,192,0,0,0,5,5,23,245,5,5,24,245,5,5,25,245,5,5,142,226,5,5,29,228,192,0,0,0,5,5,130,233,5,5,144,241,5,5,255,236,5,5,53,235,5,5,103,237,5,5,26,245,5,5,142,237,5,5,27,245,5,5,151,235,5,5,16,227,192,0,0,0,5,5,65,225,5,5,55,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,224,5,5,69,224,192,0,0,0,5,5,70,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,224,5,5,200,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,243,192,0,0,0,192,0,0,0,5,5,61,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,230,5,5,105,225,192,0,0,0,192,0,0,0,5,5,42,232,5,5,202,236,192,0,0,0,5,5,29,232,5,5,236,235,192,0,0,0,5,5,81,227,5,5,157,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,236,192,0,0,0,5,5,29,237,5,5,202,228,192,0,0,0,5,5,94,243,5,5,75,226,5,5,95,243,192,0,0,0,192,0,0,0,5,5,201,227,5,5,146,237,192,0,0,0,5,5,198,228,5,5,8,237,5,5,189,234,5,5,244,229,5,5,243,224,192,0,0,0,192,0,0,0,5,5,82,234,192,0,0,0,5,5,98,243,5,5,96,243,5,5,100,243,192,0,0,0,5,5,102,243,5,5,99,243,5,5,167,225,5,5,234,231,192,0,0,0,5,5,212,225,5,5,97,243,192,0,0,0,5,5,148,233,192,0,0,0,192,0,0,0,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,230,5,5,35,224,5,5,19,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,238,192,0,0,0,192,0,0,0,5,5,133,234,5,5,201,233,5,5,104,233,5,5,47,234,5,5,104,243,5,5,103,243,5,5,76,231,192,0,0,0,192,0,0,0,5,5,213,235,5,5,235,235,5,5,105,243,192,0,0,0,5,5,108,243,192,0,0,0,5,5,114,234,5,5,254,237,5,5,107,243,5,5,181,225,192,0,0,0,5,5,120,234,192,0,0,0,5,5,109,243,5,5,240,225,192,0,0,0,192,0,0,0,5,5,98,234,5,5,56,227,192,0,0,0,5,5,99,233,5,5,235,224,5,5,213,233,5,5,62,237,5,5,110,243,5,5,128,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,243,5,5,120,225,5,5,114,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,243,5,5,112,243,192,0,0,0,5,5,113,236,192,0,0,0,192,0,0,0,5,5,135,230,5,5,36,224,192,0,0,0,5,5,212,236,192,0,0,0,192,0,0,0,5,5,21,226,5,5,232,233,192,0,0,0,5,5,115,243,192,0,0,0,192,0,0,0,5,5,232,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,224,192,0,0,0,5,5,44,226,5,5,118,243,5,5,116,243,5,5,117,243,5,5,152,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,236,5,5,120,243,192,0,0,0,192,0,0,0,5,5,122,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,243,5,5,52,232,192,0,0,0,5,5,55,236,192,0,0,0,192,0,0,0,5,5,119,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,237,5,5,138,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,243,5,5,95,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,243,192,0,0,0,5,5,58,224,5,5,49,236,192,0,0,0,5,5,126,243,5,5,128,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,243,192,0,0,0,192,0,0,0,5,5,129,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,236,192,0,0,0,5,5,163,225,192,0,0,0,5,5,57,244,192,0,0,0,5,5,127,239,192,0,0,0,5,5,130,239,192,0,0,0,5,5,128,239,192,0,0,0,5,5,129,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,239,5,5,165,235,5,5,45,231,192,0,0,0,192,0,0,0,5,5,0,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,235,192,0,0,0,5,5,131,239,192,0,0,0,5,5,188,236,5,5,92,227,5,5,138,239,5,5,115,232,192,0,0,0,5,5,134,239,5,5,133,239,5,5,27,233,5,5,135,239,192,0,0,0,5,5,137,239,5,5,76,238,5,5,136,239,5,5,36,230,192,0,0,0,192,0,0,0,5,5,141,239,192,0,0,0,192,0,0,0,5,5,230,236,192,0,0,0,192,0,0,0,5,5,143,239,5,5,140,239,192,0,0,0,5,5,144,239,192,0,0,0,192,0,0,0,5,5,138,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,229,5,5,139,239,5,5,142,239,5,5,177,237,192,0,0,0,5,5,145,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,239,5,5,148,239,5,5,116,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,229,5,5,147,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,239,5,5,25,237,5,5,123,224,192,0,0,0,192,0,0,0,5,5,151,239,192,0,0,0,5,5,77,227,192,0,0,0,5,5,152,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,225,5,5,153,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,226,192,0,0,0,5,5,154,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,239,5,5,157,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,239,192,0,0,0,5,5,158,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,239,192,0,0,0,192,0,0,0,5,5,162,239,192,0,0,0,192,0,0,0,5,5,193,236,5,5,36,249,5,5,119,232,5,5,49,238,5,5,168,231,5,5,38,249,5,5,39,249,5,5,37,249,192,0,0,0,5,5,242,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,235,192,0,0,0,192,0,0,0,5,5,105,226,192,0,0,0,192,0,0,0,5,5,31,237,5,5,6,234,192,0,0,0,192,0,0,0,5,5,42,249,5,5,41,249,5,5,90,227,5,5,40,249,5,5,210,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,249,5,5,188,229,192,0,0,0,5,5,6,225,192,0,0,0,5,5,100,234,5,5,45,249,5,5,43,249,5,5,130,228,5,5,48,249,192,0,0,0,5,5,49,249,5,5,155,228,5,5,190,230,5,5,109,229,5,5,221,233,5,5,50,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,249,5,5,47,249,5,5,86,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,249,192,0,0,0,5,5,54,225,192,0,0,0,5,5,91,238,192,0,0,0,5,5,81,225,5,5,51,249,5,5,54,249,192,0,0,0,192,0,0,0,5,5,53,249,5,5,55,249,5,5,167,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,230,5,5,137,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,249,5,5,57,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,249,192,0,0,0,192,0,0,0,5,5,59,249,5,5,60,249,5,5,61,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,249,5,5,62,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,224,192,0,0,0,5,5,198,236,5,5,107,233,192,0,0,0,5,5,217,229,5,5,230,237,5,5,68,236,5,5,9,230,192,0,0,0,5,5,190,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,246,5,5,181,246,5,5,182,246,5,5,155,237,5,5,218,225,5,5,184,246,5,5,183,246,5,5,185,246,5,5,186,246,5,5,39,232,5,5,187,246,5,5,188,246,192,0,0,0,5,5,70,226,5,5,206,225,5,5,189,246,5,5,191,246,192,0,0,0,5,5,190,246,192,0,0,0,5,5,186,226,5,5,192,246,5,5,193,246,5,5,194,246,5,5,19,226,5,5,200,224,5,5,225,237,5,5,44,231,5,5,19,224,5,5,202,226,5,5,195,246,5,5,196,246,5,5,17,237,5,5,87,232,5,5,41,229,5,5,241,234,5,5,7,227,5,5,198,246,5,5,197,246,5,5,200,246,5,5,199,246,5,5,105,231,5,5,201,246,5,5,202,246,5,5,48,232,5,5,203,246,5,5,49,232,5,5,204,246,5,5,99,224,5,5,205,246,5,5,206,246,5,5,207,246,5,5,208,246,5,5,209,246,5,5,88,238,5,5,210,246,5,5,211,246,5,5,72,228,5,5,212,246,5,5,189,236,5,5,86,234,5,5,104,224,5,5,47,230,5,5,213,246,5,5,40,232,5,5,179,230,192,0,0,0,5,5,214,246,5,5,215,246,5,5,216,246,5,5,217,246,5,5,218,246,5,5,219,246,5,5,220,246,192,0,0,0,5,5,221,246,5,5,222,246,5,5,223,246,192,0,0,0,192,0,0,0,5,5,224,246,5,5,225,246,5,5,226,246,5,5,228,246,5,5,227,246,192,0,0,0,5,5,229,246,5,5,103,234,5,5,105,230,5,5,230,246,5,5,231,246,5,5,232,246,5,5,81,237,5,5,233,246,5,5,43,235,5,5,234,246,5,5,235,246,192,0,0,0,5,5,236,246,5,5,237,246,5,5,239,246,5,5,238,246,5,5,240,246,5,5,233,226,5,5,2,231,5,5,241,246,5,5,242,246,5,5,144,228,5,5,83,236,5,5,181,224,5,5,243,246,5,5,244,246,5,5,245,246,5,5,140,236,5,5,246,246,5,5,13,238,5,5,247,246,5,5,238,231,192,0,0,0,5,5,248,246,5,5,249,246,5,5,252,229,5,5,250,246,5,5,114,235,5,5,244,233,5,5,252,246,5,5,251,246,5,5,22,225,5,5,76,227,5,5,253,246,5,5,254,246,5,5,184,235,5,5,255,246,5,5,2,247,5,5,124,226,5,5,149,235,5,5,3,247,5,5,4,247,5,5,5,247,5,5,209,232,5,5,60,234,5,5,6,247,5,5,7,247,5,5,8,247,5,5,9,247,5,5,10,247,5,5,144,237,5,5,11,247,5,5,103,225,5,5,176,230,5,5,12,247,192,0,0,0,5,5,13,247,5,5,14,247,5,5,15,247,192,0,0,0,5,5,23,235,5,5,16,247,5,5,136,230,5,5,50,225,5,5,36,238,5,5,195,228,192,0,0,0,5,5,63,235,5,5,19,247,5,5,17,247,5,5,18,247,5,5,20,247,5,5,221,225,5,5,108,228,5,5,16,229,5,5,210,230,5,5,21,247,5,5,22,247,192,0,0,0,5,5,23,247,5,5,31,247,5,5,24,247,5,5,25,247,5,5,26,247,5,5,68,232,5,5,65,247,5,5,5,226,5,5,27,247,192,0,0,0,5,5,28,247,5,5,29,247,5,5,252,225,5,5,196,230,5,5,30,247,192,0,0,0,5,5,32,247,5,5,33,247,5,5,34,247,5,5,162,237,192,0,0,0,5,5,35,247,5,5,93,231,192,0,0,0,5,5,36,247,5,5,94,231,5,5,37,247,5,5,38,247,5,5,216,226,5,5,0,213,5,5,39,247,5,5,40,247,5,5,41,247,192,0,0,0,5,5,42,247,5,5,43,247,5,5,44,247,5,5,45,247,192,0,0,0,5,5,46,247,5,5,225,228,5,5,49,247,5,5,47,247,5,5,48,247,192,0,0,0,5,5,50,247,5,5,51,247,5,5,23,230,5,5,52,247,5,5,53,247,5,5,54,247,5,5,55,247,5,5,56,247,5,5,57,247,5,5,58,247,5,5,59,247,5,5,60,247,5,5,194,229,192,0,0,0,5,5,61,247,5,5,245,229,5,5,62,247,5,5,63,247,5,5,64,247,192,0,0,0,192,0,0,0,5,5,90,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,230,5,5,163,242,5,5,255,232,5,5,164,242,192,0,0,0,5,5,51,224,5,5,226,234,5,5,45,225,5,5,210,232,5,5,165,242,5,5,72,235,5,5,166,242,5,5,84,228,5,5,167,242,5,5,168,242,5,5,204,230,5,5,82,237,5,5,60,231,5,5,63,227,5,5,221,234,5,5,169,242,5,5,252,230,5,5,170,242,192,0,0,0,5,5,61,226,5,5,231,226,5,5,132,227,5,5,171,242,5,5,172,242,5,5,22,237,5,5,173,242,192,0,0,0,5,5,174,242,5,5,255,235,5,5,175,242,5,5,176,242,5,5,177,242,5,5,178,242,5,5,12,236,5,5,179,242,5,5,183,224,5,5,165,229,5,5,180,242,192,0,0,0,5,5,149,229,5,5,181,242,5,5,182,242,5,5,183,242,192,0,0,0,5,5,184,242,5,5,185,242,192,0,0,0,5,5,171,226,5,5,108,239,192,0,0,0,5,5,11,226,192,0,0,0,5,5,110,239,5,5,109,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,232,192,0,0,0,192,0,0,0,5,5,111,239,5,5,86,226,5,5,42,236,5,5,137,236,5,5,163,237,5,5,165,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,238,5,5,114,239,5,5,113,239,192,0,0,0,5,5,0,128,5,5,141,234,192,0,0,0,5,5,115,239,192,0,0,0,5,5,177,226,5,5,58,228,5,5,101,230,5,5,76,230,5,5,220,224,5,5,116,239,192,0,0,0,5,5,82,230,5,5,22,231,5,5,131,228,192,0,0,0,192,0,0,0,5,5,86,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,239,5,5,2,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,239,192,0,0,0,5,5,238,225,5,5,12,237,192,0,0,0,5,5,25,225,192,0,0,0,192,0,0,0,5,5,119,239,5,5,27,237,5,5,77,235,5,5,167,231,192,0,0,0,5,5,120,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,239,192,0,0,0,5,5,122,239,5,5,52,230,5,5,49,234,5,5,85,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,236,5,5,73,230,192,0,0,0,5,5,123,239,192,0,0,0,192,0,0,0,5,5,225,233,192,0,0,0,5,5,124,239,192,0,0,0,5,5,226,233,5,5,146,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,5,5,125,239,5,5,0,141,5,5,46,235,192,0,0,0,192,0,0,0,5,5,127,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,239,192,0,0,0,192,0,0,0,5,5,162,242,192,0,0,0,192,0,0,0,5,5,237,229,192,0,0,0,192,0,0,0,5,5,165,249,192,0,0,0,192,0,0,0,5,5,166,249,5,5,167,249,5,5,55,231,192,0,0,0,5,5,152,232,5,5,25,236,192,0,0,0,192,0,0,0,5,5,177,235,5,5,249,235,5,5,31,228,5,5,33,227,192,0,0,0,5,5,68,247,192,0,0,0,192,0,0,0,5,5,64,225,5,5,172,236,5,5,168,249,5,5,23,225,192,0,0,0,192,0,0,0,5,5,169,249,192,0,0,0,192,0,0,0,5,5,201,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,236,5,5,141,249,5,5,221,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,249,192,0,0,0,192,0,0,0,5,5,45,230,5,5,193,229,192,0,0,0,5,5,0,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,235,192,0,0,0,5,5,190,235,5,5,145,249,192,0,0,0,192,0,0,0,5,5,110,235,192,0,0,0,5,5,144,249,5,5,160,237,5,5,146,249,5,5,191,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,228,5,5,148,249,5,5,147,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,231,192,0,0,0,192,0,0,0,5,5,34,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,233,192,0,0,0,5,5,52,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,249,192,0,0,0,192,0,0,0,5,5,150,249,192,0,0,0,192,0,0,0,5,5,151,249,192,0,0,0,5,5,94,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,178,5,5,189,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,232,5,5,140,249,192,0,0,0,192,0,0,0,5,5,228,228,192,0,0,0,192,0,0,0,5,5,222,228,192,0,0,0,5,5,189,225,192,0,0,0,192,0,0,0,5,5,93,226,192,0,0,0,5,5,75,229,5,5,216,230,5,5,236,230,192,0,0,0,192,0,0,0,5,5,152,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,228,5,5,217,235,192,0,0,0,5,5,0,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,235,192,0,0,0,5,5,0,142,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,249,5,5,247,249,192,0,0,0,5,5,248,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,228,192,0,0,0,192,0,0,0,5,5,251,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,249,192,0,0,0,5,5,60,224,192,0,0,0,5,5,249,249,192,0,0,0,192,0,0,0,5,5,252,249,192,0,0,0,5,5,253,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,234,5,5,173,232,192,0,0,0,5,5,93,227,5,5,112,244,5,5,113,244,5,5,114,244,5,5,238,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,236,192,0,0,0,5,5,33,237,5,5,24,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,236,5,5,219,225,5,5,108,232,5,5,10,248,5,5,102,235,5,5,175,233,5,5,193,235,5,5,73,244,5,5,161,234,5,5,31,227,5,5,17,226,5,5,11,248,5,5,0,194,5,5,200,233,5,5,12,248,5,5,244,236,5,5,85,230,5,5,54,230,5,5,230,231,5,5,221,228,5,5,13,248,5,5,69,228,192,0,0,0,5,5,14,248,5,5,15,248,192,0,0,0,5,5,16,248,5,5,87,236,5,5,215,231,192,0,0,0,5,5,129,234,5,5,17,248,192,0,0,0,5,5,163,236,5,5,81,229,5,5,62,234,192,0,0,0,5,5,18,248,5,5,19,248,5,5,11,236,5,5,38,226,5,5,20,248,5,5,21,248,5,5,183,225,5,5,22,248,5,5,23,248,192,0,0,0,5,5,184,224,5,5,24,248,5,5,25,248,5,5,135,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,226,192,0,0,0,192,0,0,0,5,5,219,245,5,5,220,245,5,5,221,245,192,0,0,0,5,5,222,245,192,0,0,0,192,0,0,0,5,5,208,231,5,5,223,245,5,5,224,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,226,5,5,81,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,242,5,5,21,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,250,192,0,0,0,192,0,0,0,5,5,137,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,250,5,5,24,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,242,192,0,0,0,5,5,18,228,192,0,0,0,5,5,60,242,5,5,61,242,5,5,62,242,5,5,63,242,5,5,64,242,5,5,65,242,5,5,79,226,5,5,143,236,5,5,114,228,5,5,108,233,5,5,3,224,5,5,195,233,192,0,0,0,5,5,66,242,5,5,52,226,5,5,164,232,5,5,67,242,192,0,0,0,192,0,0,0,5,5,150,228,192,0,0,0,5,5,91,224,5,5,68,242,192,0,0,0,5,5,46,226,5,5,69,242,5,5,63,231,192,0,0,0,192,0,0,0,5,5,70,242,5,5,82,235,5,5,49,227,5,5,71,242,5,5,139,229,192,0,0,0,5,5,72,242,5,5,178,224,192,0,0,0,5,5,73,242,192,0,0,0,5,5,61,230,5,5,74,242,5,5,75,242,5,5,160,230,5,5,76,242,5,5,77,242,5,5,78,242,5,5,117,233,5,5,132,238,5,5,17,239,5,5,91,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,247,192,0,0,0,192,0,0,0,5,5,246,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,230,5,5,246,236,5,5,142,234,5,5,229,235,5,5,245,224,5,5,127,232,192,0,0,0,5,5,113,224,5,5,103,230,5,5,218,243,5,5,89,233,5,5,219,243,5,5,220,243,5,5,2,229,5,5,221,243,5,5,18,238,5,5,143,234,5,5,223,243,5,5,77,228,5,5,222,243,5,5,224,243,5,5,225,243,5,5,150,230,192,0,0,0,5,5,140,228,5,5,226,243,5,5,142,230,5,5,89,227,5,5,227,243,192,0,0,0,5,5,228,243,5,5,236,224,5,5,31,236,192,0,0,0,192,0,0,0,5,5,49,229,5,5,229,243,5,5,19,232,5,5,230,243,5,5,231,243,192,0,0,0,192,0,0,0,5,5,232,243,5,5,207,231,5,5,233,243,192,0,0,0,5,5,229,232,5,5,234,243,5,5,235,243,5,5,236,243,5,5,85,243,5,5,237,243,5,5,238,243,5,5,138,230,5,5,239,243,5,5,240,243,5,5,246,237,5,5,241,243,192,0,0,0,5,5,242,243,5,5,27,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,249,5,5,254,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,250,5,5,2,250,5,5,83,227,192,0,0,0,5,5,5,250,192,0,0,0,5,5,6,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,250,5,5,7,250,5,5,10,250,192,0,0,0,192,0,0,0,5,5,9,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,250,5,5,12,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,250,192,0,0,0,5,5,228,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,250,192,0,0,0,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,250,192,0,0,0,5,5,32,250,192,0,0,0,5,5,29,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,250,192,0,0,0,5,5,31,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,239,192,0,0,0,192,0,0,0,5,5,118,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,243,5,5,65,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,229,5,5,250,227,5,5,15,250,5,5,233,231,5,5,14,250,192,0,0,0,5,5,16,250,5,5,18,250,5,5,17,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,250,192,0,0,0,5,5,210,234,192,0,0,0,5,5,20,250,192,0,0,0,192,0,0,0,5,5,13,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,236,192,0,0,0,192,0,0,0,5,5,181,249,192,0,0,0,5,5,91,230,5,5,182,249,192,0,0,0,192,0,0,0,5,5,183,249,5,5,184,249,5,5,185,249,5,5,186,249,192,0,0,0,192,0,0,0,5,5,188,249,192,0,0,0,5,5,9,224,5,5,189,249,192,0,0,0,5,5,190,249,5,5,191,249,5,5,192,249,192,0,0,0,5,5,193,249,5,5,194,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,249,5,5,196,249,5,5,66,235,192,0,0,0,5,5,197,249,5,5,198,249,5,5,199,249,5,5,200,249,5,5,201,249,5,5,202,249,5,5,218,229,5,5,203,249,5,5,204,249,5,5,205,249,5,5,206,249,5,5,207,249,192,0,0,0,5,5,208,249,192,0,0,0,5,5,209,249,5,5,210,249,192,0,0,0,5,5,211,249,5,5,212,249,5,5,213,249,5,5,214,249,5,5,215,249,5,5,216,249,5,5,217,249,5,5,218,249,5,5,212,228,192,0,0,0,5,5,219,249,5,5,220,249,5,5,221,249,5,5,222,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,232,5,5,223,249,5,5,224,249,5,5,225,249,5,5,226,249,192,0,0,0,192,0,0,0,5,5,227,249,5,5,228,249,5,5,229,249,5,5,230,249,5,5,231,249,5,5,232,249,5,5,233,249,192,0,0,0,192,0,0,0,5,5,234,249,5,5,235,249,5,5,236,249,5,5,76,224,5,5,237,249,5,5,238,249,5,5,239,249,192,0,0,0,192,0,0,0,5,5,240,249,5,5,241,249,5,5,37,230,5,5,242,249,192,0,0,0,192,0,0,0,5,5,243,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,231,5,5,93,247,5,5,22,228,5,5,94,247,5,5,255,230,192,0,0,0,5,5,124,231,5,5,239,235,192,0,0,0,5,5,95,247,5,5,96,247,5,5,97,247,5,5,98,247,5,5,99,247,5,5,240,235,192,0,0,0,5,5,34,236,192,0,0,0,5,5,101,247,5,5,100,247,5,5,247,236,192,0,0,0,5,5,140,234,5,5,102,247,5,5,104,247,5,5,103,247,5,5,105,247,5,5,106,247,192,0,0,0,192,0,0,0,5,5,223,226,5,5,107,247,5,5,154,227,192,0,0,0,5,5,108,247,5,5,109,247,5,5,23,229,5,5,110,247,5,5,36,226,5,5,111,247,5,5,112,247,5,5,113,247,5,5,114,247,5,5,149,232,5,5,115,247,5,5,116,247,192,0,0,0,5,5,117,247,5,5,184,231,192,0,0,0,5,5,118,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,247,192,0,0,0,5,5,120,247,5,5,3,250,192,0,0,0,5,5,121,247,5,5,122,247,5,5,123,247,192,0,0,0,5,5,124,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,247,5,5,137,227,192,0,0,0,5,5,126,247,5,5,127,247,5,5,128,247,5,5,129,247,5,5,130,247,5,5,131,247,5,5,132,247,5,5,134,247,192,0,0,0,192,0,0,0,5,5,151,236,5,5,133,247,192,0,0,0,5,5,135,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,249,5,5,97,230,192,0,0,0,192,0,0,0,5,5,42,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,250,5,5,44,250,192,0,0,0,192,0,0,0,5,5,45,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,250,5,5,92,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,250,192,0,0,0,5,5,49,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,249,192,0,0,0,192,0,0,0,5,5,145,230,192,0,0,0,5,5,39,250,5,5,40,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,233,5,5,210,229,5,5,82,247,192,0,0,0,5,5,140,227,192,0,0,0,192,0,0,0,5,5,47,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,231,192,0,0,0,192,0,0,0,5,5,50,250,5,5,51,250,5,5,52,250,192,0,0,0,5,5,54,250,5,5,53,250,192,0,0,0,5,5,55,250,192,0,0,0,192,0,0,0,5,5,58,250,192,0,0,0,5,5,57,250,192,0,0,0,5,5,56,250,5,5,59,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,246,192,0,0,0,5,5,124,246,5,5,125,246,192,0,0,0,5,5,162,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,249,192,0,0,0,5,5,164,249,5,5,220,225,192,0,0,0,5,5,138,238,192,0,0,0,192,0,0,0,5,5,24,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,238,192,0,0,0,5,5,247,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,233,192,0,0,0,5,5,61,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,250,192,0,0,0,192,0,0,0,5,5,63,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,250,192,0,0,0,5,5,64,250,192,0,0,0,5,5,37,224,192,0,0,0,5,5,66,250,5,5,67,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,232,5,5,230,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,224,5,5,153,249,192,0,0,0,192,0,0,0,5,5,154,249,5,5,46,230,5,5,155,249,5,5,156,249,5,5,157,249,5,5,158,249,5,5,159,249,5,5,160,249,5,5,131,232,5,5,161,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,230,5,5,250,226,5,5,122,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,227,5,5,11,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,226,192,0,0,0,192,0,0,0,5,5,188,227,5,5,40,225,5,5,18,229,192,0,0,0,192,0,0,0,5,5,25,232,5,5,190,228,5,5,152,229,5,5,52,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,230,5,5,139,230,192,0,0,0,192,0,0,0,5,5,141,230,5,5,189,229,5,5,77,244,5,5,140,230,5,5,188,229,192,0,0,0,192,0,0,0,5,5,121,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,229,192,0,0,0,192,0,0,0,5,5,178,229,5,5,180,229,5,5,181,229,5,5,177,229,5,5,179,229,192,0,0,0,5,5,206,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,229,192,0,0,0,192,0,0,0,5,5,95,230,5,5,94,230,192,0,0,0,192,0,0,0,5,5,93,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,230,192,0,0,0,192,0,0,0,5,5,110,231,192,0,0,0,192,0,0,0,5,5,184,229,5,5,196,229,192,0,0,0,5,5,193,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,230,5,5,197,229,192,0,0,0,5,5,82,230,5,5,191,229,5,5,201,229,192,0,0,0,5,5,50,230,192,0,0,0,192,0,0,0,5,5,44,230,5,5,52,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,225,192,0,0,0,5,5,113,231,5,5,114,230,192,0,0,0,5,5,15,224,192,0,0,0,5,5,65,224,192,0,0,0,5,5,119,224,5,5,224,230,192,0,0,0,5,5,243,233,192,0,0,0,5,5,219,232,5,5,63,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,224,5,5,50,233,5,5,78,233,5,5,212,232,5,5,123,230,5,5,124,230,5,5,11,230,192,0,0,0,5,5,3,230,5,5,4,230,192,0,0,0,5,5,6,230,192,0,0,0,5,5,9,230,192,0,0,0,192,0,0,0,5,5,114,231,192,0,0,0,5,5,107,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,229,5,5,238,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,230,5,5,29,230,5,5,254,235,5,5,28,230,5,5,27,230,192,0,0,0,5,5,246,229,5,5,84,231,5,5,83,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,230,5,5,180,241,192,0,0,0,192,0,0,0,5,5,247,229,5,5,43,230,192,0,0,0,5,5,49,230,5,5,4,248,192,0,0,0,5,5,45,230,192,0,0,0,192,0,0,0,5,5,231,229,192,0,0,0,5,5,63,249,192,0,0,0,192,0,0,0,5,5,21,230,5,5,15,230,5,5,88,243,5,5,88,231,5,5,25,230,192,0,0,0,5,5,17,230,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,232,192,0,0,0,192,0,0,0,5,5,66,230,5,5,65,230,5,5,57,230,5,5,58,230,5,5,62,230,5,5,60,230,192,0,0,0,192,0,0,0,5,5,67,230,5,5,102,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,230,192,0,0,0,5,5,223,229,5,5,114,230,5,5,73,230,5,5,229,229,5,5,222,229,5,5,108,230,5,5,107,236,5,5,216,229,5,5,208,229,5,5,70,231,5,5,215,229,5,5,233,229,5,5,174,246,192,0,0,0,192,0,0,0,5,5,217,229,192,0,0,0,5,5,74,231,5,5,77,231,5,5,41,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,250,5,5,32,230,5,5,38,230,192,0,0,0,5,5,234,229,5,5,156,248,5,5,235,229,192,0,0,0,5,5,217,237,192,0,0,0,5,5,80,233,5,5,164,224,5,5,70,225,5,5,82,232,5,5,254,225,5,5,146,234,5,5,35,234,5,5,92,237,5,5,234,225,5,5,7,224,192,0,0,0,5,5,166,235,5,5,131,228,192,0,0,0,5,5,148,229,5,5,111,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,237,5,5,122,236,5,5,219,229,5,5,49,233,5,5,97,235,5,5,151,226,5,5,228,228,5,5,215,228,5,5,226,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,236,5,5,242,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,235,5,5,236,232,5,5,232,230,5,5,233,230,5,5,92,232,5,5,14,224,5,5,122,227,192,0,0,0,5,5,27,232,192,0,0,0,5,5,17,231,192,0,0,0,5,5,148,243,5,5,234,227,5,5,58,229,5,5,73,237,192,0,0,0,5,5,250,230,5,5,56,228,5,5,140,233,5,5,189,230,5,5,85,227,5,5,250,242,192,0,0,0,5,5,3,238,192,0,0,0,5,5,47,238,5,5,12,224,5,5,39,233,5,5,33,246,5,5,17,232,192,0,0,0,5,5,84,238,5,5,17,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,5,5,142,233,5,5,143,237,5,5,16,225,5,5,249,239,5,5,249,239,5,5,8,238,5,5,136,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,243,5,5,113,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,229,5,5,139,232,192,0,0,0,5,5,254,224,5,5,45,228,5,5,180,236,5,5,23,233,5,5,122,227,5,5,95,241,5,5,123,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,236,5,5,26,224,5,5,184,243,192,0,0,0,5,5,90,242,192,0,0,0,5,5,134,224,5,5,8,242,5,5,141,242,5,5,55,233,5,5,236,236,5,5,73,237,192,0,0,0,192,0,0,0,5,5,113,225,5,5,241,240,5,5,205,233,5,5,244,240,5,5,0,155,5,5,105,232,5,5,180,229,5,5,181,234,5,5,120,237,5,5,111,225,192,0,0,0,5,5,65,230,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,5,5,3,238,5,5,72,232,5,5,34,229,5,5,78,226,5,5,251,237,192,0,0,0,192,0,0,0,5,5,189,227,192,0,0,0,5,5,217,234,5,5,122,236,5,5,64,233,5,5,191,237,192,0,0,0,5,5,51,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,237,5,5,212,227,192,0,0,0,192,0,0,0,5,5,235,247,5,5,166,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,238,192,0,0,0,192,0,0,0,5,5,104,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,229,5,5,162,234,192,0,0,0,192,0,0,0,5,5,73,231,5,5,4,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,232,5,5,105,235,192,0,0,0,192,0,0,0,5,5,232,230,5,5,125,234,192,0,0,0,5,5,13,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,237,192,0,0,0,5,5,191,232,5,5,249,236,192,0,0,0,5,5,226,225,5,5,130,229,192,0,0,0,5,5,177,239,5,5,176,232,192,0,0,0,5,5,88,229,192,0,0,0,5,5,226,226,192,0,0,0,192,0,0,0,5,5,180,236,5,5,233,230,5,5,92,232,5,5,23,233,5,5,0,218,5,5,76,225,5,5,15,224,5,5,236,227,5,5,14,224,5,5,101,224,5,5,36,228,192,0,0,0,5,5,102,232,5,5,102,232,5,5,102,232,192,0,0,0,5,5,226,227,5,5,32,228,5,5,173,239,192,0,0,0,5,5,158,228,5,5,23,241,5,5,30,241,192,0,0,0,5,5,22,235,5,5,228,224,5,5,234,237,192,0,0,0,192,0,0,0,5,5,34,234,192,0,0,0,192,0,0,0,5,5,6,233,5,5,6,233,5,5,123,241,192,0,0,0,5,5,77,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,232,5,5,33,238,5,5,225,224,5,5,226,239,5,5,232,239,5,5,163,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,226,192,0,0,0,5,5,29,233,192,0,0,0,192,0,0,0,5,5,23,228,192,0,0,0,192,0,0,0,5,5,170,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,233,5,5,121,228,5,5,137,225,5,5,208,240,192,0,0,0,5,5,122,234,5,5,148,243,192,0,0,0,5,5,201,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,241,192,0,0,0,5,5,230,235,5,5,204,224,192,0,0,0,5,5,15,239,192,0,0,0,5,5,183,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,242,5,5,154,233,5,5,178,229,192,0,0,0,5,5,199,240,192,0,0,0,192,0,0,0,5,5,208,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,232,5,5,204,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,227,192,0,0,0,192,0,0,0,5,5,66,225,5,5,213,227,5,5,55,233,5,5,213,227,192,0,0,0,5,5,73,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,224,5,5,31,245,192,0,0,0,5,5,5,224,5,5,0,172,5,5,22,229,192,0,0,0,5,5,166,234,5,5,214,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,236,192,0,0,0,5,5,12,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,230,5,5,224,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,233,192,0,0,0,192,0,0,0,5,5,182,230,5,5,231,230,5,5,92,238,192,0,0,0,5,5,155,245,192,0,0,0,5,5,180,229,5,5,181,234,192,0,0,0,5,5,117,244,5,5,116,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,231,5,5,85,227,5,5,65,230,5,5,120,227,5,5,204,228,5,5,95,231,192,0,0,0,192,0,0,0,5,5,207,226,5,5,12,243,192,0,0,0,5,5,58,238,5,5,185,225,192,0,0,0,5,5,3,236,5,5,203,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,243,192,0,0,0,5,5,73,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,234,192,0,0,0,5,5,5,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,246,5,5,34,229,192,0,0,0,192,0,0,0,5,5,36,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,237,5,5,150,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,246,5,5,93,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,238,192,0,0,0,192,0,0,0,5,5,151,226,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,236,192,0,0,0,192,0,0,0,5,5,196,231,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,248,5,5,210,248,5,5,65,225,192,0,0,0,5,5,3,240,5,5,229,236,5,5,179,237,5,5,183,229,5,5,184,227,5,5,82,226,5,5,243,235,5,5,108,229,192,0,0,0,5,5,212,232,192,0,0,0,5,5,185,232,192,0,0,0,192,0,0,0,5,5,173,230,192,0,0,0,5,5,8,238,192,0,0,0,5,5,3,229,5,5,40,229,5,5,135,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,232,192,0,0,0,192,0,0,0,5,5,0,173,5,5,74,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,230,192,0,0,0,5,5,123,246,5,5,162,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,224,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,155,48,1,16,212,1,0,96,1,0,0,96,98,186,1,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,72,0,0,0,72,1,0,0,248,132,1,0,248,132,1,0,104,143,1,0,104,143,1,0,40,158,1,0,40,158,1,0,44,179,1,0,26,182,1,0,74,186,1,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,0,9,26,23,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,226,0,234,0,242,0,250,0,2,1,10,1,18,1,26,1,48,0,33,1,35,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,42,1,48,0,48,0,48,0,48,0,50,1,58,1,48,0,66,1,74,1,82,1,85,1,48,0,48,0,93,1,101,1,48,0,48,0,48,0,109,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,21,2,29,2,37,2,45,2,53,2,61,2,69,2,77,2,85,2,93,2,101,2,109,2,117,2,125,2,133,2,141,2,149,2,157,2,165,2,173,2,181,2,189,2,197,2,205,2,213,2,221,2,229,2,237,2,245,2,253,2,5,3,13,3,21,3,29,3,37,3,45,3,53,3,61,3,69,3,77,3,85,3,93,3,101,3,109,3,117,3,125,3,133,3,141,3,149,3,157,3,165,3,173,3,181,3,189,3,197,3,205,3,213,3,221,3,229,3,237,3,245,3,253,3,5,4,13,4,21,4,29,4,37,4,45,4,53,4,61,4,69,4,77,4,85,4,93,4,101,4,109,4,117,4,125,4,133,4,141,4,149,4,157,4,165,4,173,4,181,4,189,4,197,4,205,4,213,4,221,4,229,4,237,4,245,4,253,4,5,5,13,5,21,5,29,5,37,5,45,5,53,5,61,5,69,5,77,5,85,5,93,5,101,5,109,5,117,5,125,5,133,5,141,5,149,5,157,5,165,5,173,5,181,5,189,5,197,5,205,5,213,5,221,5,229,5,237,5,245,5,253,5,5,6,13,6,21,6,29,6,37,6,45,6,53,6,61,6,69,6,77,6,85,6,93,6,101,6,109,6,117,6,125,6,133,6,141,6,149,6,157,6,165,6,173,6,181,6,189,6,197,6,205,6,213,6,221,6,229,6,237,6,245,6,253,6,5,7,13,7,21,7,29,7,37,7,45,7,53,7,61,7,69,7,77,7,85,7,93,7,101,7,109,7,117,7,125,7,133,7,141,7,149,7,157,7,165,7,173,7,181,7,189,7,197,7,205,7,213,7,221,7,229,7,237,7,245,7,253,7,5,8,13,8,21,8,29,8,37,8,45,8,53,8,61,8,69,8,77,8,85,8,93,8,101,8,109,8,117,8,125,8,133,8,141,8,149,8,157,8,165,8,173,8,181,8,189,8,197,8,205,8,213,8,221,8,229,8,237,8,245,8,253,8,5,9,13,9,21,9,29,9,37,9,45,9,53,9,61,9,69,9,77,9,85,9,93,9,101,9,109,9,117,9,125,9,133,9,141,9,149,9,157,9,165,9,173,9,181,9,189,9,197,9,205,9,213,9,221,9,229,9,237,9,245,9,253,9,5,10,13,10,21,10,29,10,37,10,45,10,53,10,61,10,69,10,77,10,85,10,93,10,101,10,109,10,117,10,125,10,133,10,141,10,149,10,157,10,165,10,173,10,181,10,189,10,197,10,205,10,213,10,221,10,229,10,237,10,245,10,253,10,5,11,13,11,21,11,29,11,37,11,45,11,53,11,61,11,69,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,141,11,149,11,157,11,165,11,173,11,181,11,189,11,197,11,205,11,213,11,221,11,229,11,237,11,245,11,253,11,5,12,13,12,21,12,29,12,37,12,45,12,53,12,61,12,69,12,77,12,85,12,93,12,101,12,109,12,117,12,125,12,133,12,141,12,149,12,157,12,165,12,173,12,181,12,189,12,197,12,205,12,213,12,221,12,229,12,237,12,245,12,253,12,5,13,13,13,21,13,29,13,37,13,45,13,53,13,61,13,69,13,77,13,85,13,93,13,101,13,109,13,117,13,125,13,133,13,141,13,149,13,157,13,165,13,173,13,181,13,189,13,197,13,205,13,213,13,221,13,229,13,237,13,245,13,253,13,5,14,13,14,21,14,29,14,37,14,45,14,53,14,61,14,69,14,77,14,85,14,93,14,101,14,109,14,117,14,125,14,133,14,141,14,149,14,157,14,165,14,173,14,181,14,189,14,197,14,205,14,213,14,221,14,229,14,237,14,245,14,253,14,5,15,13,15,21,15,29,15,37,15,45,15,53,15,61,15,69,15,77,15,85,15,93,15,101,15,109,15,117,15,125,15,133,15,141,15,149,15,157,15,165,15,173,15,181,15,189,15,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,5,16,13,16,21,16,29,16,37,16,45,16,53,16,61,16,69,16,77,16,85,16,93,16,101,16,109,16,117,16,125,16,133,16,141,16,149,16,157,16,165,16,173,16,181,16,189,16,197,16,205,16,213,16,221,16,229,16,237,16,245,16,253,16,5,17,13,17,21,17,29,17,37,17,45,17,53,17,61,17,69,17,77,17,85,17,93,17,101,17,109,17,117,17,125,17,133,17,141,17,149,17,157,17,165,17,173,17,181,17,189,17,197,17,205,17,213,17,221,17,229,17,237,17,245,17,253,17,5,18,13,18,21,18,29,18,37,18,45,18,53,18,61,18,69,18,77,18,85,18,93,18,101,18,109,18,117,18,125,18,133,18,141,18,149,18,157,18,165,18,173,18,181,18,189,18,197,18,205,18,213,18,221,18,229,18,237,18,245,18,253,18,5,19,13,19,21,19,29,19,37,19,45,19,53,19,61,19,69,19,77,19,85,19,93,19,101,19,109,19,117,19,125,19,133,19,141,19,149,19,157,19,165,19,173,19,181,19,189,19,197,19,205,19,213,19,221,19,229,19,237,19,245,19,253,19,5,20,13,20,21,20,29,20,37,20,45,20,53,20,61,20,69,20,77,20,85,20,93,20,101,20,109,20,117,20,125,20,133,20,141,20,149,20,157,20,165,20,173,20,181,20,189,20,197,20,205,20,213,20,221,20,229,20,237,20,245,20,253,20,5,21,13,21,21,21,29,21,37,21,45,21,53,21,61,21,69,21,77,21,85,21,93,21,101,21,109,21,117,21,125,21,133,21,141,21,149,21,157,21,165,21,173,21,181,21,189,21,197,21,205,21,213,21,221,21,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,161,0,48,0,48,0,153,0,9,23,153,0,17,23,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,229,21,237,21,245,21,253,21,5,22,13,22,21,22,29,22,37,22,45,22,53,22,61,22,69,22,77,22,85,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,192,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,97,22,105,22,113,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,121,22,129,22,137,22,145,22,153,22,161,22,169,22,177,22,185,22,193,22,201,22,209,22,217,22,225,22,233,22,241,22,249,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,41,0,202,65,39,0,202,130,39,0,202,195,39,0,202,4,40,0,202,69,40,0,202,134,40,0,202,199,40,0,202,8,41,0,202,73,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,66,117,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,130,117,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,194,117,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,167,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,25,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,57,238,6,5,124,187,6,5,5,248,6,5,121,213,7,5,180,238,6,5,177,197,9,5,5,182,6,5,60,227,7,5,117,218,6,5,218,181,6,5,47,219,7,5,161,168,6,5,114,196,6,5,91,208,6,5,91,171,6,5,170,192,6,5,126,215,6,5,103,178,6,5,90,202,6,5,81,169,6,5,22,170,6,5,136,182,6,5,103,231,8,5,201,221,6,5,244,171,6,5,55,195,6,5,149,173,6,5,54,223,6,5,86,241,6,5,70,199,6,5,231,228,7,5,129,227,6,5,254,221,6,5,158,246,6,5,45,224,6,5,165,230,6,5,154,177,7,5,143,211,6,5,96,249,6,5,128,208,6,5,69,177,6,5,60,233,6,5,24,241,6,5,163,221,6,5,223,173,6,5,68,220,6,5,202,175,6,5,201,185,6,5,171,192,6,5,161,195,6,5,234,184,6,5,111,237,6,5,11,187,6,5,254,239,6,5,230,185,6,5,221,238,6,5,202,185,6,5,190,192,6,5,69,220,6,5,222,174,6,5,213,233,6,5,82,185,6,5,227,189,7,5,92,222,6,5,79,246,6,5,255,213,7,5,158,229,6,5,90,180,6,5,163,195,6,5,137,182,6,5,46,230,7,5,183,218,6,5,253,242,8,5,7,243,7,5,184,209,6,5,142,215,6,5,159,246,6,5,166,177,6,5,116,222,6,5,47,230,6,5,23,170,6,5,69,207,6,5,255,221,6,5,217,214,7,5,12,223,7,5,198,191,6,5,82,245,6,5,73,184,6,5,125,237,6,5,8,212,6,5,82,213,6,5,247,235,6,5,82,211,6,5,253,217,6,5,42,235,6,5,10,242,6,5,141,186,6,5,59,228,6,5,187,184,7,5,111,221,6,5,255,240,6,5,82,226,6,5,26,213,6,5,97,210,6,5,140,171,6,5,230,168,6,5,240,212,6,5,249,208,6,5,187,209,6,5,70,207,6,5,241,221,6,5,203,221,6,5,7,222,6,5,241,218,6,5,153,188,6,5,98,235,6,5,94,202,6,5,235,247,6,5,73,208,6,5,92,208,6,5,153,183,6,5,173,228,6,5,39,237,6,5,226,241,6,5,103,201,6,5,219,181,6,5,184,201,6,5,245,181,6,5,13,242,6,5,9,219,6,5,250,173,6,5,82,249,6,5,197,246,6,5,182,196,6,5,233,220,6,5,220,175,6,5,128,247,6,5,162,185,6,5,229,219,6,5,148,172,6,5,142,189,6,5,28,175,6,5,124,235,6,5,24,234,6,5,63,238,6,5,26,236,6,5,9,194,6,5,192,194,6,5,87,236,6,5,78,186,6,5,91,180,6,5,243,221,6,5,202,246,6,5,164,169,6,5,227,174,7,5,182,249,6,5,191,249,6,5,19,221,6,5,213,173,6,5,218,233,6,5,253,173,6,5,71,176,6,5,244,238,6,5,67,241,6,5,206,170,6,5,64,202,7,5,166,195,6,5,41,245,6,5,220,207,6,5,82,184,6,5,111,202,6,5,142,248,6,5,227,241,6,5,166,216,6,5,178,182,6,5,170,208,6,5,115,185,6,5,242,228,6,5,175,196,6,5,177,239,6,5,8,238,6,5,83,183,6,5,179,182,6,5,219,221,6,5,95,222,6,5,162,232,6,5,182,206,6,5,81,186,6,5,35,185,6,5,234,170,6,5,97,180,6,5,164,173,6,5,118,185,6,5,80,187,6,5,162,241,6,5,232,210,6,5,117,205,6,5,160,205,6,5,229,206,6,5,172,206,6,5,201,190,6,5,169,222,6,5,244,188,6,5,191,246,6,5,165,208,6,5,241,179,6,5,102,186,6,5,172,222,6,5,20,170,6,5,160,214,6,5,221,174,6,5,232,204,6,5,57,187,6,5,38,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,201,221,6,5,216,210,6,5,136,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,5,57,238,8,5,5,182,8,5,166,219,7,5,106,223,7,5,181,220,8,5,67,247,7,5,210,231,6,5,96,193,6,5,180,238,6,5,99,171,6,5,225,179,7,5,74,226,6,5,167,178,6,5,117,218,198,131,31,0,198,227,31,0,198,67,32,0,198,163,32,0,198,3,33,0,198,99,33,0,198,195,33,0,198,35,34,0,198,131,34,0,198,227,34,0,198,67,35,0,198,163,35,0,198,3,36,0,198,99,36,0,197,227,35,0,198,195,36,0,198,35,37,0,198,131,37,0,198,227,37,0,197,67,36,0,198,67,38,0,198,163,38,0,197,163,36,0,197,3,37,0,198,3,39,0,198,99,39,0,198,195,39,0,198,35,40,0,197,99,37,0,198,131,40,0,197,195,37,0,198,227,40,0,197,35,38,0,198,67,41,0,197,131,38,0,197,227,38,0,6,5,201,229,6,5,88,241,6,5,158,229,6,5,50,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,57,238,7,5,5,182,7,5,166,219,6,5,106,223,6,5,77,230,6,5,193,204,6,5,58,214,6,5,161,168,6,5,165,196,6,5,201,221,7,5,7,243,6,5,198,191,6,5,12,223,6,5,184,209,6,5,166,195,6,5,129,227,6,5,183,218,6,5,207,247,7,5,63,241,6,5,242,220,6,5,24,209,6,5,210,225,6,5,52,172,6,5,39,248,6,5,79,201,6,5,101,208,6,5,17,210,6,5,143,211,6,5,68,222,6,5,17,241,6,5,29,240,6,5,31,248,6,5,228,232,6,5,87,234,6,5,144,233,6,5,65,246,6,5,181,220,7,5,67,247,6,5,210,231,7,5,30,250,7,5,87,241,6,5,64,238,6,5,97,249,6,5,101,235,6,5,162,193,6,5,194,214,6,5,32,249,6,5,103,233,6,5,3,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,39,0,197,130,39,0,197,194,39,0,197,2,40,0,197,66,40,0,197,130,40,0,197,194,40,0,197,2,41,0,197,66,41,0,197,131,41,0,197,227,41,0,197,67,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,34,45,0,197,99,45,0,197,195,45,0,197,35,46,0,197,131,46,0,197,227,46,0,197,67,47,0,197,163,47,0,197,3,48,0,197,99,48,0,197,195,48,0,197,35,49,0,197,131,49,0,197,227,49,0,197,67,50,0,197,163,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,51,0,197,66,51,0,197,130,51,0,197,194,51,0,197,4,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,197,130,53,0,197,194,53,0,197,2,54,0,197,66,54,0,197,130,54,0,197,195,54,0,197,35,55,0,197,131,55,0,197,227,55,0,197,67,56,0,197,163,56,0,197,3,57,0,197,99,57,0,197,195,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,197,227,61,0,197,67,62,0,197,163,62,0,192,0,0,0,5,5,57,238,5,5,225,179,5,5,186,198,5,5,58,214,5,5,180,220,5,5,209,231,5,5,14,188,5,5,139,228,5,5,47,245,5,5,166,219,5,5,181,220,5,5,210,231,5,5,247,191,5,5,10,172,5,5,221,241,5,5,146,208,5,5,167,184,5,5,87,175,5,5,88,175,5,5,77,248,5,5,63,216,5,5,201,212,5,5,4,222,5,5,3,222,5,5,4,217,5,5,99,171,5,5,251,237,5,5,188,176,5,5,18,180,5,5,56,223,5,5,85,174,5,5,14,180,5,5,5,217,5,5,85,203,5,5,15,180,5,5,64,241,5,5,86,203,5,5,84,236,5,5,125,171,5,5,204,219,5,5,124,187,5,5,144,196,5,5,150,185,5,5,226,235,5,5,206,215,5,5,67,247,5,5,172,192,5,5,131,195,5,5,69,183,5,5,216,186,5,5,227,175,5,5,65,173,5,5,217,203,5,5,210,248,5,5,5,248,5,5,160,168,5,5,93,228,5,5,213,177,5,5,85,229,5,5,6,248,5,5,47,196,5,5,97,202,5,5,35,197,5,5,121,213,5,5,199,183,5,5,99,238,5,5,218,238,5,5,249,209,5,5,76,230,5,5,166,196,5,5,167,196,5,5,217,227,5,5,130,207,5,5,219,238,5,5,58,238,5,5,78,246,5,5,19,230,5,5,166,244,5,5,139,189,5,5,25,182,5,5,135,201,5,5,213,239,5,5,151,213,5,5,45,212,5,5,9,216,5,5,212,189,5,5,174,186,5,5,93,174,5,5,100,174,5,5,180,238,5,5,253,239,5,5,49,236,5,5,202,208,5,5,165,196,5,5,192,214,5,5,243,237,5,5,44,231,5,5,159,232,5,5,168,184,5,5,168,196,5,5,211,231,5,5,224,189,5,5,115,222,5,5,82,180,5,5,242,221,5,5,253,191,5,5,43,210,5,5,36,193,5,5,55,197,5,5,205,221,5,5,94,207,5,5,140,189,5,5,215,206,5,5,53,206,5,5,252,248,5,5,43,219,5,5,100,235,5,5,142,236,5,5,42,184,5,5,15,220,5,5,222,209,5,5,199,184,5,5,148,224,5,5,143,241,5,5,56,177,5,5,152,245,5,5,100,215,5,5,234,246,5,5,34,187,5,5,205,184,5,5,55,206,5,5,2,204,5,5,63,239,5,5,177,197,5,5,151,201,5,5,207,206,5,5,222,241,5,5,19,246,5,5,12,222,5,5,15,222,5,5,5,182,5,5,155,175,5,5,128,241,5,5,225,199,5,5,127,241,5,5,64,243,5,5,225,189,5,5,97,214,5,5,77,230,5,5,46,196,5,5,105,223,5,5,72,224,5,5,163,185,5,5,164,185,5,5,25,236,5,5,92,233,5,5,28,236,5,5,105,214,5,5,31,236,5,5,105,192,5,5,60,227,5,5,164,228,5,5,173,198,5,5,155,177,5,5,152,194,5,5,217,187,5,5,228,238,5,5,62,173,5,5,255,188,5,5,168,209,5,5,56,238,5,5,199,232,5,5,9,196,5,5,215,226,5,5,97,203,5,5,200,232,5,5,13,196,5,5,5,238,5,5,92,216,5,5,184,171,5,5,106,241,5,5,171,233,5,5,254,177,5,5,240,202,5,5,64,181,5,5,226,207,5,5,117,218,5,5,118,218,5,5,92,192,5,5,93,192,5,5,165,228,5,5,220,238,5,5,61,221,5,5,119,218,5,5,133,201,5,5,226,179,5,5,81,244,5,5,187,195,5,5,254,213,5,5,51,175,5,5,162,168,5,5,39,245,5,5,162,195,5,5,132,195,5,5,92,171,5,5,178,218,5,5,187,176,5,5,148,183,5,5,175,219,5,5,67,206,5,5,93,171,5,5,113,172,5,5,59,249,5,5,5,222,5,5,171,224,5,5,48,245,5,5,75,184,5,5,224,231,5,5,225,231,5,5,218,227,5,5,42,189,5,5,254,226,5,5,143,218,5,5,26,215,5,5,215,184,5,5,83,185,5,5,171,171,5,5,169,177,5,5,119,204,5,5,182,238,5,5,207,173,5,5,124,173,5,5,126,219,5,5,125,173,5,5,100,238,5,5,185,209,5,5,235,207,5,5,144,218,5,5,112,182,5,5,208,173,5,5,79,237,5,5,89,215,5,5,111,247,5,5,27,213,5,5,247,229,5,5,79,230,5,5,8,194,5,5,114,193,5,5,176,237,5,5,71,183,5,5,114,172,5,5,146,218,5,5,168,228,5,5,53,183,5,5,199,178,5,5,158,182,5,5,68,247,5,5,194,214,5,5,116,212,5,5,130,241,5,5,152,179,5,5,5,181,5,5,116,230,5,5,229,238,5,5,242,233,5,5,174,198,5,5,62,238,5,5,95,192,5,5,2,168,5,5,80,230,5,5,195,192,5,5,202,183,5,5,26,182,5,5,87,234,5,5,212,195,5,5,202,212,5,5,243,177,5,5,162,183,5,5,136,225,5,5,112,247,5,5,5,241,5,5,199,191,5,5,67,191,5,5,223,241,5,5,28,177,5,5,67,243,5,5,176,219,5,5,23,229,5,5,209,175,5,5,212,173,5,5,248,235,5,5,103,232,5,5,157,220,5,5,106,173,5,5,68,206,5,5,115,172,5,5,200,235,5,5,244,233,5,5,24,229,5,5,23,248,5,5,88,244,5,5,17,232,5,5,135,211,5,5,172,171,5,5,42,186,5,5,148,210,5,5,169,210,5,5,148,233,5,5,31,169,5,5,199,234,5,5,35,204,5,5,171,247,5,5,18,221,5,5,88,217,5,5,139,176,5,5,232,169,5,5,8,222,5,5,38,193,5,5,203,212,5,5,233,238,5,5,109,223,5,5,184,238,5,5,20,246,5,5,101,179,5,5,228,187,5,5,223,206,5,5,8,178,5,5,24,248,5,5,12,172,5,5,89,217,5,5,26,170,5,5,68,245,5,5,132,176,5,5,87,229,5,5,200,178,5,5,25,248,5,5,31,250,5,5,89,241,5,5,80,237,5,5,36,226,5,5,250,244,5,5,155,188,5,5,48,170,5,5,242,227,5,5,234,220,5,5,131,241,5,5,234,238,5,5,205,183,5,5,33,250,5,5,247,185,5,5,75,211,5,5,2,227,5,5,149,210,5,5,230,231,5,5,133,217,5,5,187,240,5,5,60,228,5,5,35,215,5,5,86,222,5,5,81,198,5,5,83,169,5,5,118,212,5,5,41,191,5,5,216,188,5,5,104,201,5,5,190,232,5,5,110,185,5,5,46,237,5,5,232,168,5,5,45,182,5,5,46,209,5,5,41,193,5,5,8,182,5,5,126,171,5,5,106,192,5,5,250,188,5,5,194,191,5,5,70,187,5,5,206,217,5,5,132,226,5,5,193,194,5,5,140,176,5,5,245,238,5,5,244,221,5,5,28,234,5,5,20,221,5,5,225,227,5,5,133,198,5,5,122,246,5,5,147,184,5,5,158,200,5,5,109,238,5,5,206,174,5,5,123,199,5,5,248,186,5,5,104,202,5,5,171,239,5,5,16,222,5,5,75,208,5,5,202,247,5,5,203,234,5,5,90,241,5,5,35,168,5,5,144,205,5,5,147,209,5,5,221,181,5,5,72,206,5,5,52,180,5,5,236,172,5,5,147,174,5,5,203,235,5,5,208,185,5,5,130,247,5,5,67,238,5,5,13,219,5,5,65,177,5,5,168,231,5,5,114,223,5,5,171,177,5,5,231,205,5,5,220,224,5,5,194,194,5,5,174,245,5,5,159,172,5,5,10,216,5,5,138,199,5,5,247,172,5,5,76,211,5,5,96,211,5,5,189,195,5,5,88,230,5,5,106,189,5,5,129,196,5,5,136,174,5,5,248,245,5,5,39,250,5,5,92,175,5,5,93,216,5,5,233,205,5,5,253,196,5,5,193,222,5,5,235,226,5,5,91,221,5,5,183,227,5,5,180,171,5,5,20,210,5,5,243,232,5,5,210,170,5,5,178,227,5,5,228,241,5,5,114,231,5,5,224,176,5,5,101,181,5,5,43,217,5,5,179,234,5,5,17,187,5,5,104,199,5,5,89,230,5,5,44,198,5,5,6,239,5,5,47,184,5,5,71,203,5,5,206,249,5,5,40,216,5,5,112,202,5,5,229,240,5,5,174,191,5,5,76,196,5,5,145,215,5,5,188,219,5,5,115,212,5,5,233,223,5,5,224,183,5,5,182,230,5,5,65,202,5,5,48,184,5,5,153,213,5,5,103,169,5,5,144,241,5,5,113,214,5,5,170,231,5,5,247,233,5,5,88,234,5,5,229,241,5,5,23,179,5,5,214,173,5,5,53,175,5,5,213,246,5,5,145,236,5,5,228,202,5,5,113,202,5,5,159,200,5,5,62,223,5,5,201,193,5,5,89,234,5,5,52,184,5,5,210,191,5,5,74,197,5,5,74,233,5,5,240,211,5,5,17,194,5,5,26,171,5,5,165,175,5,5,228,182,5,5,136,183,5,5,36,236,5,5,64,168,5,5,173,169,5,5,25,242,5,5,224,233,5,5,34,170,5,5,216,189,5,5,108,173,5,5,99,246,5,5,130,171,5,5,187,196,5,5,133,237,5,5,31,177,5,5,229,202,5,5,112,228,5,5,160,200,5,5,119,172,5,5,151,249,5,5,153,185,5,5,190,186,5,5,174,169,5,5,111,226,5,5,125,222,5,5,126,222,5,5,236,207,5,5,134,178,5,5,25,225,5,5,198,197,5,5,9,176,5,5,52,234,5,5,160,212,5,5,138,225,5,5,132,189,5,5,193,238,5,5,63,214,5,5,48,226,5,5,239,184,5,5,80,196,5,5,147,195,5,5,48,224,5,5,163,173,5,5,75,195,5,5,166,182,5,5,126,246,5,5,49,199,5,5,150,197,5,5,98,249,5,5,75,197,5,5,147,215,5,5,124,210,5,5,74,206,5,5,190,248,5,5,230,229,5,5,133,206,5,5,149,223,5,5,237,201,5,5,175,191,5,5,26,180,5,5,86,249,5,5,223,169,5,5,90,230,5,5,76,197,5,5,3,210,5,5,57,172,5,5,204,193,5,5,194,244,5,5,226,237,5,5,127,246,5,5,42,220,5,5,170,216,5,5,78,211,5,5,50,240,5,5,59,174,5,5,101,215,5,5,150,236,5,5,68,219,5,5,120,247,5,5,61,176,5,5,103,193,5,5,221,192,5,5,39,229,5,5,236,241,5,5,134,171,5,5,111,219,5,5,251,225,5,5,201,228,5,5,59,213,5,5,214,236,5,5,86,183,5,5,139,225,5,5,253,229,5,5,154,181,5,5,116,233,5,5,221,173,5,5,145,221,5,5,136,198,5,5,29,179,5,5,45,250,5,5,204,172,5,5,218,226,5,5,178,169,5,5,163,233,5,5,188,190,5,5,189,237,5,5,255,244,5,5,93,175,5,5,56,236,5,5,42,241,5,5,18,194,5,5,189,234,5,5,129,244,5,5,95,176,5,5,93,184,5,5,8,170,5,5,235,246,5,5,134,249,5,5,154,208,5,5,121,192,5,5,198,238,5,5,164,233,5,5,178,235,5,5,47,172,5,5,182,180,5,5,167,172,5,5,188,245,5,5,214,211,5,5,54,227,5,5,55,227,5,5,179,169,5,5,163,243,5,5,25,205,5,5,80,195,5,5,40,229,5,5,58,183,5,5,131,173,5,5,35,187,5,5,211,223,5,5,253,246,5,5,250,223,5,5,160,231,5,5,98,184,5,5,242,242,5,5,236,218,5,5,145,202,5,5,141,211,5,5,122,243,5,5,115,194,5,5,197,206,5,5,67,169,5,5,68,179,5,5,102,225,5,5,124,188,5,5,86,195,5,5,214,230,5,5,125,220,5,5,150,215,5,5,213,197,5,5,121,172,5,5,172,175,5,5,177,219,5,5,183,169,5,5,80,233,5,5,238,240,5,5,137,237,5,5,75,225,5,5,132,224,5,5,89,237,5,5,37,182,5,5,135,171,5,5,58,193,5,5,168,177,5,5,192,243,5,5,141,225,5,5,87,186,5,5,54,171,5,5,144,175,5,5,166,211,5,5,80,172,5,5,190,201,5,5,11,177,5,5,192,240,5,5,5,244,5,5,140,249,5,5,239,169,5,5,168,223,5,5,144,168,5,5,215,175,5,5,244,241,5,5,196,244,5,5,197,249,5,5,161,220,5,5,247,175,5,5,98,196,5,5,243,174,5,5,40,220,5,5,42,188,5,5,21,245,5,5,179,216,5,5,227,236,5,5,46,179,5,5,178,233,5,5,30,205,5,5,184,169,5,5,111,213,5,5,195,195,5,5,50,203,5,5,165,205,5,5,241,206,5,5,61,215,5,5,246,231,5,5,77,225,5,5,124,240,5,5,71,180,5,5,106,248,5,5,229,232,5,5,130,220,5,5,17,216,5,5,138,196,5,5,180,227,5,5,15,250,5,5,20,214,5,5,235,230,5,5,89,201,5,5,155,173,5,5,7,187,5,5,117,203,5,5,82,214,5,5,64,174,5,5,26,173,5,5,62,229,5,5,37,192,5,5,162,171,5,5,98,191,5,5,224,175,5,5,185,226,5,5,31,178,5,5,217,194,5,5,197,196,5,5,10,220,5,5,61,183,5,5,137,232,5,5,14,197,5,5,180,181,5,5,166,194,5,5,42,194,5,5,26,227,5,5,21,204,5,5,206,171,5,5,136,186,5,5,247,231,5,5,10,224,5,5,138,232,5,5,96,194,5,5,15,209,5,5,25,238,5,5,240,195,5,5,120,193,5,5,50,216,5,5,49,213,5,5,99,183,5,5,190,247,5,5,16,168,5,5,163,219,5,5,158,238,5,5,59,198,5,5,102,211,5,5,31,173,5,5,88,239,5,5,91,178,5,5,59,196,5,5,22,235,5,5,146,199,5,5,235,193,5,5,181,175,5,5,234,177,5,5,223,194,5,5,41,220,5,5,195,243,5,5,107,172,5,5,65,171,5,5,62,168,5,5,25,219,5,5,241,224,5,5,72,175,5,5,252,172,5,5,219,200,5,5,160,210,5,5,208,195,5,5,161,215,5,5,247,207,5,5,106,230,5,5,61,211,5,5,249,216,5,5,161,210,5,5,144,173,5,5,203,203,5,5,197,201,5,5,253,205,5,5,192,199,5,5,142,169,5,5,105,242,5,5,255,170,5,5,210,243,5,5,44,247,5,5,141,223,5,5,17,241,5,5,104,188,5,5,218,216,5,5,45,174,5,5,183,202,5,5,231,225,5,5,74,229,5,5,11,205,5,5,149,175,5,5,45,173,5,5,79,218,5,5,153,222,5,5,139,191,5,5,208,202,5,5,119,206,5,5,213,243,5,5,167,211,5,5,145,225,5,5,187,236,5,5,174,201,5,5,56,210,5,5,218,181,5,5,111,230,5,5,96,243,5,5,197,243,5,5,170,242,5,5,65,234,5,5,10,175,5,5,88,245,5,5,66,234,5,5,227,231,5,5,246,186,5,5,218,180,5,5,248,198,5,5,219,180,5,5,148,208,5,5,134,227,5,5,126,173,5,5,220,181,5,5,220,180,5,5,222,181,5,5,165,195,5,5,136,227,5,5,110,223,5,5,143,236,5,5,146,236,5,5,247,221,192,0,0,0,5,5,65,178,5,5,48,215,5,5,77,180,5,5,7,183,5,5,77,207,5,5,43,221,5,5,78,180,192,0,0,0,5,5,33,196,5,5,80,202,5,5,245,190,5,5,47,219,5,5,166,228,5,5,110,210,5,5,204,217,5,5,87,203,5,5,145,241,5,5,161,168,5,5,203,185,5,5,193,204,5,5,166,230,5,5,65,188,5,5,205,200,5,5,239,185,5,5,75,226,5,5,185,186,5,5,46,234,5,5,96,171,5,5,106,214,5,5,65,197,5,5,86,179,5,5,255,248,5,5,4,183,5,5,83,237,5,5,137,193,5,5,100,222,5,5,235,192,5,5,64,239,5,5,2,193,5,5,88,173,5,5,114,196,5,5,102,207,5,5,69,218,5,5,111,210,5,5,171,242,5,5,91,207,5,5,252,184,5,5,70,218,5,5,157,172,5,5,115,196,5,5,158,172,5,5,187,243,5,5,158,186,5,5,124,196,5,5,105,207,5,5,176,247,5,5,107,207,5,5,26,186,5,5,186,234,5,5,155,208,5,5,91,208,5,5,233,218,5,5,212,239,5,5,144,233,5,5,131,198,5,5,17,198,5,5,95,211,5,5,105,238,5,5,41,208,5,5,23,222,5,5,188,186,5,5,240,207,5,5,99,247,5,5,77,197,5,5,143,242,5,5,30,209,5,5,75,199,5,5,218,203,5,5,94,184,5,5,145,233,5,5,119,208,5,5,91,171,5,5,19,180,5,5,249,224,5,5,254,184,5,5,117,183,5,5,95,171,5,5,230,189,5,5,11,175,5,5,180,197,5,5,231,189,5,5,198,199,5,5,245,237,5,5,236,201,5,5,26,212,5,5,206,183,5,5,250,208,5,5,51,180,5,5,67,232,5,5,177,203,5,5,17,215,5,5,130,193,5,5,72,196,5,5,185,223,5,5,182,207,5,5,94,227,5,5,64,214,5,5,123,186,5,5,180,248,5,5,150,223,5,5,81,196,5,5,72,203,5,5,210,216,5,5,131,179,5,5,52,204,5,5,62,180,5,5,240,184,5,5,208,193,5,5,183,239,5,5,212,176,5,5,0,148,5,5,146,202,5,5,2,176,5,5,48,209,5,5,182,248,5,5,12,177,5,5,76,223,5,5,46,181,5,5,241,195,5,5,3,204,5,5,4,204,5,5,62,211,5,5,254,230,5,5,134,180,5,5,170,192,5,5,73,182,5,5,74,182,5,5,75,182,5,5,133,183,5,5,209,196,5,5,140,175,5,5,18,246,5,5,72,183,5,5,188,209,5,5,161,246,5,5,203,183,5,5,73,183,5,5,163,213,5,5,77,183,5,5,92,198,5,5,189,190,5,5,98,198,5,5,206,184,5,5,188,178,5,5,193,213,5,5,126,215,5,5,63,234,5,5,134,199,5,5,75,227,5,5,98,168,5,5,102,175,5,5,249,191,5,5,75,178,5,5,243,187,5,5,246,187,5,5,10,244,5,5,103,178,5,5,126,179,5,5,104,178,5,5,140,218,5,5,141,218,5,5,233,175,5,5,248,182,5,5,64,216,5,5,222,238,5,5,250,191,5,5,123,198,5,5,143,215,5,5,67,177,5,5,109,175,5,5,185,229,5,5,254,191,5,5,244,177,5,5,23,234,5,5,51,190,5,5,94,228,5,5,181,197,5,5,243,201,5,5,9,243,5,5,175,203,5,5,127,204,5,5,41,244,5,5,255,184,5,5,251,175,5,5,207,183,5,5,104,175,5,5,181,217,5,5,129,179,5,5,72,220,5,5,251,208,5,5,36,204,5,5,70,247,5,5,27,212,5,5,36,171,5,5,61,195,5,5,62,195,5,5,74,212,5,5,98,202,5,5,73,220,5,5,37,171,5,5,63,173,5,5,49,196,5,5,142,186,5,5,168,185,5,5,133,178,5,5,253,175,5,5,226,199,5,5,88,199,5,5,69,181,5,5,9,182,5,5,203,246,5,5,225,222,5,5,7,218,5,5,16,220,5,5,141,176,5,5,249,198,5,5,66,195,5,5,93,187,5,5,142,176,5,5,94,187,5,5,93,198,5,5,70,181,5,5,203,192,5,5,45,226,5,5,55,196,5,5,23,205,5,5,132,206,5,5,49,244,5,5,142,242,5,5,92,177,5,5,90,235,5,5,16,199,5,5,128,200,5,5,94,215,5,5,17,220,5,5,254,175,5,5,160,186,5,5,12,194,5,5,93,177,5,5,246,201,5,5,240,225,5,5,229,182,5,5,241,213,5,5,68,173,5,5,116,214,5,5,255,175,5,5,87,249,5,5,11,185,5,5,82,228,5,5,146,171,5,5,12,192,5,5,29,181,5,5,186,216,5,5,119,220,5,5,114,180,5,5,19,194,5,5,216,192,5,5,147,171,5,5,52,236,5,5,78,197,5,5,185,191,5,5,152,221,5,5,209,193,5,5,39,181,5,5,183,180,5,5,34,230,5,5,161,186,5,5,95,184,5,5,150,221,5,5,24,194,5,5,97,185,5,5,132,177,5,5,99,198,5,5,3,176,5,5,206,175,5,5,76,173,5,5,148,227,5,5,166,205,5,5,8,202,5,5,196,212,5,5,93,220,5,5,87,213,5,5,66,199,5,5,211,194,5,5,151,186,5,5,243,215,5,5,221,197,5,5,64,190,5,5,134,244,5,5,230,248,5,5,252,202,5,5,102,197,5,5,227,212,5,5,149,204,5,5,108,187,5,5,224,194,5,5,109,187,5,5,46,194,5,5,47,194,5,5,88,225,5,5,188,191,5,5,3,193,5,5,57,194,5,5,101,239,5,5,58,194,5,5,45,247,5,5,46,173,5,5,255,193,5,5,82,209,5,5,54,202,5,5,19,248,5,5,90,202,5,5,22,236,5,5,6,218,5,5,29,169,5,5,205,185,5,5,35,193,5,5,113,230,5,5,221,206,5,5,176,203,5,5,213,195,5,5,32,199,5,5,99,233,5,5,162,246,5,5,50,180,5,5,26,248,5,5,136,211,5,5,63,195,5,5,134,217,5,5,213,220,5,5,235,238,5,5,201,247,5,5,87,209,5,5,99,202,5,5,214,195,5,5,78,201,5,5,79,201,5,5,148,197,5,5,71,199,5,5,47,237,5,5,43,228,5,5,72,233,5,5,148,209,5,5,169,199,5,5,67,195,5,5,178,203,5,5,156,188,5,5,17,222,5,5,250,198,5,5,219,195,5,5,71,185,5,5,181,171,5,5,255,208,5,5,230,174,5,5,34,201,5,5,230,240,5,5,231,240,5,5,151,208,5,5,251,198,5,5,134,235,5,5,151,197,5,5,187,216,5,5,149,205,5,5,22,172,5,5,20,208,5,5,233,174,5,5,154,201,5,5,119,198,5,5,156,208,5,5,65,180,5,5,216,234,5,5,219,234,5,5,125,198,5,5,130,230,5,5,31,239,5,5,137,235,5,5,215,229,5,5,153,221,5,5,86,201,5,5,198,209,5,5,167,205,5,5,112,213,5,5,54,222,5,5,30,192,5,5,125,216,5,5,137,194,5,5,183,173,5,5,9,218,5,5,230,232,5,5,77,239,5,5,222,197,5,5,57,182,5,5,132,197,5,5,27,227,5,5,103,197,5,5,235,177,5,5,127,233,5,5,231,206,5,5,142,235,5,5,143,235,5,5,18,206,5,5,170,202,5,5,235,173,5,5,80,218,5,5,11,218,5,5,81,169,5,5,206,220,5,5,65,243,5,5,145,196,5,5,124,169,5,5,246,185,5,5,112,230,5,5,66,243,5,5,157,229,5,5,64,234,5,5,169,184,5,5,170,184,5,5,82,169,5,5,152,176,5,5,225,238,5,5,67,234,5,5,142,212,5,5,211,196,5,5,179,225,5,5,111,185,5,5,12,214,5,5,149,181,5,5,82,212,5,5,244,183,5,5,217,185,5,5,133,177,5,5,190,196,5,5,224,185,5,5,22,170,5,5,50,190,5,5,159,169,5,5,81,210,5,5,87,222,5,5,136,182,5,5,180,196,5,5,101,238,5,5,149,243,5,5,126,194,5,5,175,198,5,5,127,194,5,5,168,199,5,5,141,189,5,5,167,231,5,5,90,217,5,5,77,182,5,5,71,187,5,5,69,216,5,5,237,243,5,5,172,199,5,5,207,182,5,5,153,189,5,5,237,241,5,5,83,187,5,5,19,200,5,5,90,191,5,5,229,177,5,5,107,187,5,5,247,202,5,5,253,202,5,5,39,224,5,5,135,180,5,5,203,196,5,5,251,197,5,5,103,231,5,5,24,213,5,5,86,217,5,5,64,238,5,5,200,198,5,5,147,236,5,5,189,170,5,5,174,210,5,5,104,217,5,5,201,221,5,5,197,235,5,5,25,215,5,5,216,210,5,5,136,219,5,5,190,249,5,5,110,221,5,5,78,230,5,5,63,191,5,5,30,169,5,5,9,222,5,5,104,231,5,5,140,228,5,5,31,190,5,5,100,233,5,5,141,228,5,5,148,169,5,5,192,249,5,5,187,248,5,5,103,233,5,5,215,177,5,5,226,206,5,5,21,210,5,5,217,177,5,5,122,192,5,5,196,171,5,5,235,222,5,5,244,171,5,5,194,199,5,5,199,170,5,5,2,172,5,5,249,244,5,5,80,198,5,5,69,205,5,5,65,241,5,5,114,205,5,5,176,230,5,5,163,186,5,5,250,229,5,5,159,233,5,5,55,195,5,5,56,195,5,5,84,229,5,5,91,168,5,5,225,216,5,5,80,246,5,5,92,207,5,5,29,240,5,5,198,228,5,5,214,220,5,5,102,192,5,5,17,218,5,5,52,206,5,5,207,174,5,5,138,197,5,5,155,233,5,5,204,234,5,5,190,195,5,5,18,218,5,5,127,230,5,5,109,192,5,5,155,181,5,5,171,216,5,5,228,230,5,5,171,219,5,5,149,173,5,5,22,229,5,5,131,181,5,5,195,226,5,5,91,202,5,5,116,245,5,5,15,188,5,5,92,202,5,5,13,236,5,5,228,235,5,5,198,236,5,5,240,220,5,5,249,178,5,5,155,244,5,5,52,212,5,5,249,235,5,5,65,216,5,5,252,235,5,5,204,246,5,5,160,172,5,5,54,212,5,5,248,225,5,5,245,201,5,5,244,220,5,5,127,189,5,5,202,226,5,5,226,249,5,5,94,177,5,5,230,182,5,5,181,242,5,5,168,172,5,5,187,242,5,5,164,232,5,5,151,236,5,5,147,202,5,5,214,197,5,5,48,220,5,5,69,179,5,5,112,175,5,5,191,196,5,5,196,195,5,5,104,168,5,5,89,187,5,5,232,236,5,5,77,223,5,5,154,202,5,5,156,173,5,5,216,200,5,5,163,202,5,5,119,236,5,5,180,236,5,5,228,242,5,5,54,223,5,5,204,185,5,5,214,203,5,5,240,218,5,5,179,217,5,5,180,217,5,5,241,181,5,5,183,201,5,5,113,180,5,5,104,232,5,5,78,248,5,5,168,219,5,5,72,172,5,5,73,172,5,5,74,172,5,5,77,172,5,5,12,168,5,5,198,177,5,5,86,241,5,5,198,172,5,5,94,192,5,5,62,241,5,5,242,222,5,5,110,182,5,5,90,222,5,5,182,186,5,5,186,168,5,5,19,182,5,5,109,219,5,5,13,222,5,5,120,222,5,5,205,248,5,5,171,217,5,5,98,222,5,5,207,170,5,5,207,234,5,5,171,231,5,5,32,212,5,5,209,223,5,5,110,192,5,5,93,229,5,5,210,223,5,5,204,179,5,5,98,219,5,5,206,176,5,5,70,199,5,5,74,186,5,5,54,197,5,5,120,204,5,5,159,186,5,5,105,178,5,5,72,199,5,5,160,246,5,5,247,194,5,5,87,245,5,5,164,168,5,5,227,179,5,5,239,198,5,5,225,224,5,5,223,174,5,5,240,221,5,5,87,241,5,5,32,217,5,5,219,213,5,5,252,237,5,5,113,188,5,5,57,223,5,5,71,225,5,5,203,174,5,5,136,201,5,5,127,179,5,5,251,191,5,5,153,203,5,5,23,189,5,5,203,208,5,5,138,234,5,5,34,207,5,5,145,174,5,5,151,185,5,5,255,234,5,5,113,237,5,5,60,249,5,5,154,188,5,5,96,192,5,5,153,179,5,5,70,177,5,5,255,226,5,5,24,209,5,5,125,189,5,5,95,202,5,5,131,227,5,5,218,232,5,5,122,244,5,5,212,231,5,5,244,237,5,5,229,205,5,5,229,235,5,5,208,206,5,5,212,211,5,5,184,191,5,5,65,238,5,5,18,198,5,5,89,175,5,5,15,204,5,5,191,227,5,5,214,239,5,5,218,182,5,5,27,170,5,5,155,216,5,5,156,216,5,5,133,195,5,5,13,172,5,5,154,183,5,5,225,168,5,5,240,180,5,5,249,182,5,5,98,181,5,5,241,187,5,5,199,226,5,5,34,199,5,5,25,223,5,5,198,214,5,5,46,189,5,5,83,246,5,5,3,240,5,5,48,230,5,5,49,230,5,5,200,173,5,5,226,209,5,5,125,235,5,5,168,230,5,5,5,176,5,5,74,180,5,5,186,229,5,5,123,189,5,5,24,189,5,5,50,230,5,5,69,185,5,5,50,236,5,5,43,198,5,5,230,205,5,5,137,181,5,5,109,185,5,5,135,207,5,5,162,177,5,5,199,214,5,5,88,174,5,5,51,230,5,5,70,185,5,5,164,183,5,5,248,194,5,5,25,189,5,5,204,174,5,5,113,221,5,5,227,209,5,5,192,227,5,5,39,184,5,5,236,238,5,5,163,177,5,5,213,211,5,5,100,202,5,5,206,169,5,5,174,242,5,5,145,187,5,5,207,229,5,5,173,215,5,5,26,230,5,5,141,181,5,5,166,221,5,5,139,197,5,5,139,212,5,5,189,229,5,5,102,210,5,5,166,206,5,5,121,204,5,5,56,218,5,5,8,241,5,5,254,178,5,5,131,247,5,5,18,222,5,5,172,247,5,5,192,226,5,5,109,231,5,5,246,238,5,5,227,214,5,5,164,213,5,5,67,249,5,5,43,186,5,5,92,176,5,5,88,229,5,5,183,234,5,5,146,188,5,5,59,210,5,5,136,184,5,5,98,212,5,5,247,238,5,5,241,232,5,5,21,221,5,5,143,189,5,5,51,209,5,5,123,177,5,5,182,217,5,5,32,197,5,5,244,187,5,5,152,243,5,5,226,227,5,5,26,181,5,5,250,213,5,5,75,212,5,5,38,171,5,5,212,183,5,5,25,237,5,5,157,188,5,5,173,243,5,5,158,188,5,5,203,187,5,5,183,196,5,5,226,240,5,5,79,184,5,5,109,177,5,5,173,247,5,5,62,228,5,5,75,198,5,5,44,186,5,5,76,198,5,5,51,250,5,5,15,172,5,5,210,204,5,5,20,180,5,5,49,211,5,5,221,224,5,5,60,223,5,5,105,232,5,5,208,191,5,5,231,214,5,5,10,182,5,5,144,181,5,5,252,186,5,5,169,244,5,5,115,231,5,5,117,238,5,5,173,203,5,5,2,249,5,5,204,208,5,5,38,208,5,5,177,246,5,5,183,237,5,5,9,192,5,5,177,247,5,5,91,185,5,5,194,222,5,5,203,243,5,5,73,233,5,5,204,187,5,5,2,191,5,5,124,199,5,5,90,190,5,5,181,225,5,5,22,232,5,5,145,181,5,5,56,235,5,5,90,234,5,5,146,187,5,5,202,236,5,5,105,201,5,5,69,238,5,5,0,133,5,5,146,213,5,5,72,221,5,5,6,227,5,5,28,189,5,5,71,234,5,5,27,181,5,5,73,228,5,5,199,187,5,5,177,243,5,5,94,241,5,5,223,179,5,5,251,211,5,5,201,232,5,5,0,132,5,5,161,185,5,5,173,199,5,5,15,236,5,5,127,177,5,5,244,232,5,5,60,170,5,5,70,191,5,5,192,210,5,5,20,190,5,5,61,234,5,5,140,199,5,5,52,181,5,5,255,182,5,5,205,192,5,5,97,211,5,5,145,209,5,5,184,240,5,5,117,188,5,5,182,242,5,5,18,205,5,5,251,213,5,5,46,207,5,5,93,185,5,5,190,211,5,5,148,174,5,5,217,220,5,5,242,201,5,5,223,209,5,5,193,249,5,5,171,188,5,5,92,199,5,5,247,232,5,5,116,232,5,5,82,201,5,5,148,171,5,5,123,245,5,5,128,244,5,5,98,203,5,5,174,168,5,5,205,208,5,5,184,203,5,5,49,224,5,5,238,183,5,5,4,172,5,5,230,187,5,5,2,189,5,5,186,185,5,5,35,223,5,5,147,185,5,5,104,241,5,5,207,236,5,5,52,186,5,5,82,186,5,5,207,169,5,5,248,187,5,5,129,224,5,5,43,176,5,5,18,239,5,5,0,134,5,5,79,193,5,5,81,227,5,5,23,232,5,5,113,228,5,5,123,202,5,5,188,230,5,5,100,225,5,5,42,250,5,5,49,217,5,5,216,173,5,5,54,230,5,5,25,244,5,5,16,236,5,5,75,180,5,5,203,214,5,5,220,178,5,5,159,216,5,5,196,206,5,5,100,209,5,5,242,185,5,5,87,180,5,5,183,217,5,5,83,201,5,5,88,203,5,5,149,224,5,5,26,244,5,5,150,190,5,5,74,201,5,5,19,220,5,5,13,192,5,5,210,249,5,5,233,229,5,5,131,183,5,5,227,195,5,5,217,189,5,5,237,214,5,5,101,222,5,5,245,228,5,5,226,222,5,5,165,173,5,5,229,181,5,5,136,202,5,5,233,215,5,5,65,168,5,5,50,244,5,5,185,240,5,5,220,210,5,5,122,241,5,5,112,226,5,5,185,200,5,5,43,220,5,5,198,230,5,5,33,228,5,5,154,189,5,5,0,145,5,5,76,245,5,5,122,211,5,5,22,199,5,5,215,248,5,5,216,248,5,5,159,220,5,5,30,179,5,5,5,189,5,5,219,203,5,5,0,131,5,5,58,172,5,5,165,232,5,5,195,227,5,5,92,230,5,5,201,229,5,5,37,177,5,5,44,220,5,5,88,186,5,5,206,214,5,5,207,214,5,5,186,225,5,5,16,178,5,5,17,178,5,5,13,238,5,5,75,249,5,5,38,170,5,5,38,177,5,5,198,175,5,5,177,188,5,5,17,236,5,5,209,214,5,5,127,245,5,5,180,182,5,5,89,203,5,5,34,232,5,5,254,212,5,5,45,220,5,5,155,200,5,5,51,244,5,5,54,240,5,5,167,186,5,5,227,211,5,5,153,245,5,5,233,219,5,5,101,248,5,5,253,210,5,5,149,187,5,5,100,206,5,5,101,236,5,5,204,178,5,5,215,217,5,5,70,173,5,5,154,171,5,5,254,179,5,5,33,201,5,5,79,233,5,5,3,197,5,5,103,225,5,5,239,174,5,5,252,225,5,5,60,168,5,5,156,196,5,5,23,178,5,5,77,198,5,5,219,240,5,5,98,229,5,5,27,210,5,5,126,220,5,5,44,242,5,5,132,245,5,5,133,200,5,5,36,195,5,5,109,189,5,5,18,188,5,5,192,179,5,5,145,247,5,5,251,172,5,5,75,228,5,5,170,211,5,5,32,242,5,5,189,239,5,5,164,243,5,5,119,237,5,5,188,211,5,5,158,208,5,5,179,189,5,5,104,243,5,5,222,175,5,5,83,191,5,5,159,190,5,5,160,190,5,5,78,231,5,5,149,188,5,5,21,192,5,5,21,200,5,5,100,247,5,5,250,228,5,5,49,220,5,5,224,234,5,5,192,190,5,5,42,181,5,5,3,211,5,5,9,235,5,5,102,203,5,5,45,242,5,5,205,219,5,5,157,174,5,5,16,216,5,5,218,236,5,5,225,177,5,5,141,212,5,5,78,172,5,5,4,202,5,5,186,240,5,5,130,244,5,5,206,228,5,5,176,208,5,5,116,240,5,5,132,212,5,5,6,172,5,5,245,199,5,5,50,231,5,5,46,242,5,5,37,195,5,5,27,205,5,5,111,199,5,5,29,244,5,5,250,189,5,5,7,226,5,5,142,237,5,5,223,188,5,5,0,130,5,5,126,234,5,5,188,215,5,5,239,219,5,5,193,240,5,5,254,223,5,5,94,189,5,5,120,233,5,5,7,168,5,5,136,224,5,5,209,206,5,5,205,172,5,5,222,187,5,5,217,198,5,5,113,177,5,5,197,219,5,5,242,173,5,5,51,219,5,5,188,223,5,5,50,228,5,5,31,192,5,5,64,212,5,5,37,230,5,5,131,215,5,5,55,222,5,5,125,185,5,5,17,249,5,5,38,195,5,5,122,201,5,5,209,229,5,5,66,228,5,5,132,223,5,5,159,174,5,5,95,188,5,5,169,224,192,0,0,0,5,5,205,187,5,5,155,224,5,5,126,216,5,5,6,211,5,5,151,188,5,5,140,246,5,5,161,219,5,5,215,209,5,5,149,185,5,5,219,209,5,5,176,179,5,5,0,140,5,5,183,215,5,5,251,226,5,5,95,170,5,5,106,168,5,5,107,168,5,5,241,202,5,5,228,249,5,5,113,245,5,5,114,209,5,5,220,223,5,5,212,223,5,5,64,225,5,5,231,178,5,5,83,214,5,5,7,195,5,5,19,175,5,5,167,194,5,5,100,198,5,5,78,225,5,5,95,220,5,5,139,172,5,5,65,193,5,5,0,150,5,5,83,233,5,5,113,213,5,5,32,205,5,5,137,184,5,5,104,186,5,5,17,233,5,5,159,189,5,5,99,191,5,5,156,187,5,5,216,211,5,5,248,231,5,5,58,244,5,5,138,173,5,5,162,234,5,5,213,213,5,5,156,178,5,5,210,206,5,5,200,206,5,5,190,189,5,5,227,201,5,5,116,180,5,5,138,184,5,5,86,225,5,5,248,237,5,5,242,169,5,5,66,240,5,5,156,219,5,5,8,195,5,5,111,208,5,5,84,233,5,5,25,190,5,5,218,206,5,5,65,218,5,5,199,175,5,5,153,212,5,5,90,201,5,5,86,233,5,5,41,192,5,5,15,248,5,5,192,173,5,5,30,200,5,5,233,249,5,5,22,233,5,5,84,223,5,5,101,188,5,5,65,184,5,5,123,203,5,5,20,216,5,5,245,230,5,5,182,175,5,5,80,173,5,5,35,178,5,5,245,188,5,5,220,235,5,5,128,181,5,5,16,250,5,5,58,182,5,5,164,174,5,5,27,191,5,5,208,243,5,5,244,175,5,5,233,176,5,5,32,178,5,5,85,242,5,5,198,227,5,5,190,172,5,5,12,195,5,5,230,237,5,5,246,230,5,5,249,214,5,5,98,188,5,5,254,202,5,5,166,234,5,5,175,178,5,5,29,191,5,5,243,239,5,5,6,214,5,5,172,197,5,5,131,216,5,5,186,235,5,5,9,211,5,5,66,205,5,5,85,223,5,5,175,236,5,5,181,240,5,5,116,177,5,5,213,244,5,5,189,211,5,5,193,247,5,5,246,195,5,5,104,211,5,5,111,191,5,5,183,233,5,5,251,214,5,5,190,181,5,5,33,244,5,5,87,238,5,5,74,222,5,5,15,195,5,5,251,242,5,5,0,143,5,5,202,240,5,5,236,197,5,5,149,199,5,5,255,241,5,5,133,212,5,5,145,178,5,5,141,184,5,5,22,189,5,5,248,180,5,5,56,178,5,5,233,233,5,5,157,219,5,5,231,212,5,5,36,213,5,5,208,239,5,5,235,249,5,5,63,211,5,5,240,178,5,5,25,201,5,5,182,224,5,5,189,191,5,5,27,219,5,5,87,188,5,5,218,231,5,5,41,238,5,5,36,181,5,5,51,213,5,5,74,175,5,5,8,193,5,5,250,195,5,5,105,188,5,5,67,226,5,5,145,173,5,5,146,235,5,5,129,207,5,5,40,172,5,5,69,226,5,5,131,205,5,5,130,191,5,5,222,171,5,5,19,241,5,5,22,211,5,5,247,239,5,5,10,190,5,5,133,207,5,5,39,189,5,5,144,245,5,5,36,202,5,5,163,204,5,5,227,187,5,5,44,210,5,5,38,233,5,5,74,209,5,5,251,236,5,5,191,202,5,5,88,205,5,5,233,204,5,5,77,209,5,5,45,178,5,5,46,174,5,5,141,213,5,5,38,213,5,5,235,232,5,5,233,191,5,5,78,209,5,5,151,231,5,5,67,181,5,5,118,199,5,5,125,236,5,5,49,173,5,5,90,240,5,5,90,218,5,5,99,179,5,5,132,200,5,5,216,224,5,5,44,233,5,5,252,197,5,5,89,176,5,5,100,190,5,5,239,191,5,5,116,248,5,5,31,211,5,5,45,233,5,5,46,172,5,5,47,202,5,5,94,173,5,5,6,173,5,5,214,202,5,5,155,239,5,5,102,206,5,5,46,210,5,5,170,243,5,5,232,223,5,5,99,231,5,5,101,244,5,5,194,193,5,5,171,243,5,5,20,248,5,5,243,200,5,5,38,211,5,5,42,210,5,5,17,201,5,5,207,204,5,5,231,228,5,5,38,191,5,5,167,239,5,5,33,217,5,5,106,223,5,5,44,211,5,5,198,193,5,5,39,191,5,5,245,233,5,5,168,239,5,5,16,210,5,5,145,227,5,5,146,227,5,5,6,181,5,5,177,198,5,5,140,242,5,5,125,196,5,5,58,213,5,5,68,243,5,5,153,176,5,5,168,189,5,5,40,191,5,5,175,242,5,5,99,181,5,5,163,187,5,5,93,200,5,5,154,176,5,5,247,226,5,5,92,227,5,5,234,228,5,5,69,206,5,5,164,187,5,5,46,218,5,5,185,218,5,5,38,204,5,5,121,186,5,5,165,187,5,5,222,224,5,5,166,187,5,5,93,227,5,5,95,241,5,5,167,187,5,5,221,239,5,5,176,191,5,5,33,214,5,5,233,241,5,5,249,187,5,5,183,242,5,5,76,206,5,5,199,217,5,5,238,241,5,5,173,216,5,5,168,187,5,5,213,175,5,5,251,228,5,5,189,242,5,5,200,217,5,5,96,199,5,5,37,214,5,5,197,242,5,5,198,242,5,5,45,236,5,5,108,227,5,5,116,227,5,5,117,227,5,5,149,227,5,5,61,206,5,5,103,191,5,5,102,239,5,5,124,190,5,5,34,206,5,5,45,206,5,5,129,227,5,5,23,236,5,5,130,227,5,5,233,226,5,5,147,221,5,5,11,214,5,5,141,205,5,5,135,199,5,5,227,235,5,5,188,243,5,5,233,228,5,5,84,185,5,5,12,242,5,5,20,230,5,5,23,187,5,5,28,213,5,5,102,238,5,5,167,178,5,5,28,215,5,5,29,215,5,5,244,245,5,5,200,248,5,5,76,178,5,5,16,215,5,5,213,231,5,5,71,220,5,5,196,199,5,5,150,173,5,5,100,214,5,5,246,210,5,5,88,209,5,5,255,191,5,5,73,193,5,5,165,246,5,5,166,246,5,5,16,169,5,5,133,235,5,5,237,238,5,5,144,216,5,5,136,207,5,5,19,198,5,5,235,218,5,5,202,227,5,5,139,182,5,5,221,169,5,5,222,169,5,5,10,225,5,5,132,198,5,5,89,190,5,5,34,250,5,5,35,199,5,5,49,170,5,5,50,196,5,5,16,179,5,5,6,196,5,5,197,192,5,5,136,199,5,5,250,178,5,5,7,196,5,5,127,193,5,5,23,225,5,5,101,202,5,5,208,168,5,5,119,230,5,5,17,183,5,5,150,248,5,5,203,213,5,5,33,169,5,5,99,225,5,5,47,200,5,5,95,217,5,5,58,225,5,5,86,246,5,5,245,227,5,5,195,184,5,5,165,213,5,5,103,179,5,5,164,186,5,5,120,210,5,5,228,224,5,5,207,212,5,5,116,196,5,5,81,237,5,5,149,183,5,5,141,168,5,5,145,205,5,5,7,217,5,5,170,209,5,5,240,198,5,5,19,186,5,5,126,235,5,5,189,168,5,5,180,174,5,5,225,173,5,5,39,204,5,5,29,248,5,5,80,184,5,5,144,189,5,5,205,246,5,5,8,176,5,5,120,200,5,5,7,205,5,5,8,205,5,5,72,205,5,5,142,168,5,5,172,177,5,5,76,212,5,5,23,209,5,5,30,234,5,5,53,180,5,5,206,192,5,5,217,188,5,5,4,206,5,5,104,176,5,5,209,174,5,5,186,201,5,5,151,184,5,5,172,239,5,5,128,189,5,5,207,180,5,5,91,245,5,5,225,183,5,5,253,186,5,5,129,237,5,5,53,181,5,5,54,181,5,5,74,187,5,5,216,172,5,5,51,237,5,5,219,239,5,5,28,182,5,5,23,186,5,5,178,242,5,5,180,179,5,5,105,233,5,5,20,199,5,5,173,220,5,5,94,222,5,5,146,181,5,5,128,171,5,5,105,179,5,5,56,189,5,5,233,235,5,5,125,199,5,5,158,177,5,5,82,198,5,5,79,178,5,5,94,198,5,5,72,188,5,5,77,210,5,5,63,168,5,5,5,234,5,5,117,232,5,5,240,242,5,5,48,169,5,5,174,183,5,5,211,168,5,5,19,239,5,5,33,240,5,5,29,188,5,5,211,234,5,5,10,176,5,5,111,216,5,5,187,185,5,5,0,135,5,5,245,169,5,5,154,182,5,5,19,218,5,5,233,240,5,5,47,198,5,5,50,193,5,5,25,179,5,5,212,206,5,5,68,201,5,5,141,197,5,5,94,174,5,5,81,220,5,5,174,195,5,5,124,245,5,5,185,203,5,5,186,203,5,5,23,172,5,5,101,174,5,5,21,190,5,5,24,172,5,5,220,221,5,5,135,235,5,5,147,187,5,5,118,196,5,5,246,237,5,5,221,210,5,5,205,178,5,5,33,242,5,5,29,172,5,5,237,235,5,5,216,217,5,5,77,224,5,5,255,212,5,5,174,216,5,5,116,228,5,5,84,197,5,5,92,206,5,5,26,246,5,5,50,199,5,5,39,175,5,5,28,180,5,5,188,177,5,5,73,225,5,5,66,168,5,5,67,172,5,5,168,175,5,5,246,169,5,5,137,198,5,5,130,246,5,5,57,181,5,5,32,239,5,5,131,246,5,5,33,239,5,5,107,212,5,5,19,192,5,5,181,248,5,5,125,214,5,5,223,219,5,5,85,197,5,5,129,210,5,5,94,199,5,5,3,199,5,5,101,225,5,5,49,200,5,5,176,210,5,5,139,193,5,5,208,180,5,5,193,195,5,5,13,185,5,5,34,242,5,5,156,181,5,5,162,212,5,5,125,186,5,5,138,227,5,5,238,201,5,5,175,182,5,5,3,236,5,5,149,215,5,5,50,200,5,5,80,168,5,5,39,221,5,5,78,181,5,5,83,210,5,5,84,227,5,5,112,174,5,5,190,239,5,5,165,191,5,5,82,170,5,5,51,203,5,5,150,187,5,5,193,179,5,5,102,248,5,5,133,189,5,5,107,169,5,5,108,169,5,5,163,241,5,5,208,178,5,5,81,207,5,5,39,195,5,5,61,219,5,5,16,238,5,5,199,185,5,5,127,198,5,5,101,249,5,5,164,241,5,5,193,190,5,5,163,181,5,5,138,237,5,5,219,236,5,5,133,169,5,5,109,176,5,5,151,207,5,5,153,173,5,5,157,180,5,5,3,228,5,5,34,240,5,5,122,183,5,5,122,247,5,5,151,195,5,5,179,195,5,5,21,189,5,5,18,185,5,5,28,176,5,5,214,193,5,5,183,213,5,5,187,201,5,5,224,232,5,5,185,190,5,5,229,201,5,5,191,180,5,5,85,228,5,5,10,235,5,5,230,192,5,5,132,192,5,5,143,199,5,5,125,240,5,5,178,224,5,5,120,174,5,5,244,240,5,5,103,198,5,5,255,223,5,5,2,224,5,5,226,221,5,5,108,208,5,5,185,224,5,5,217,229,5,5,121,174,5,5,109,227,5,5,106,225,5,5,27,218,5,5,102,247,5,5,155,202,5,5,103,247,5,5,71,169,5,5,153,219,5,5,253,243,5,5,209,180,5,5,95,226,5,5,144,230,5,5,73,246,5,5,138,235,5,5,126,185,5,5,5,246,5,5,8,168,5,5,218,185,5,5,112,236,5,5,140,198,5,5,96,226,5,5,199,242,5,5,138,229,5,5,179,233,5,5,196,204,5,5,214,187,5,5,63,201,5,5,139,173,5,5,167,212,5,5,255,169,5,5,17,174,5,5,174,205,5,5,121,205,5,5,198,211,5,5,157,215,5,5,165,207,5,5,115,209,5,5,83,248,5,5,3,223,5,5,161,222,5,5,52,205,5,5,196,174,5,5,16,207,5,5,240,170,5,5,100,196,5,5,180,172,5,5,213,222,5,5,19,247,5,5,60,245,5,5,151,198,5,5,196,240,5,5,117,179,5,5,30,174,5,5,143,246,5,5,135,231,5,5,154,187,5,5,227,215,5,5,238,195,5,5,51,179,5,5,162,220,5,5,200,209,5,5,14,177,5,5,233,236,5,5,187,224,5,5,102,244,5,5,109,215,5,5,209,215,5,5,79,203,5,5,104,229,5,5,161,248,5,5,248,215,5,5,104,244,5,5,163,234,5,5,132,220,5,5,133,220,5,5,202,168,5,5,22,214,5,5,147,199,5,5,44,180,5,5,91,182,5,5,34,218,5,5,131,209,5,5,244,180,5,5,245,180,5,5,3,250,5,5,52,179,5,5,158,221,5,5,85,181,5,5,88,181,5,5,35,225,5,5,191,178,5,5,166,209,5,5,34,183,5,5,205,190,5,5,36,225,5,5,160,177,5,5,21,238,5,5,60,248,5,5,48,194,5,5,152,168,5,5,215,215,5,5,52,192,5,5,251,215,5,5,25,199,5,5,103,239,5,5,15,213,5,5,130,170,5,5,118,179,5,5,99,194,5,5,250,237,5,5,203,240,5,5,109,235,5,5,41,225,5,5,6,201,5,5,107,197,5,5,91,190,5,5,95,178,5,5,89,218,5,5,166,215,5,5,147,235,5,5,149,232,5,5,93,231,5,5,232,188,5,5,17,168,5,5,244,235,5,5,128,178,5,5,106,188,5,5,63,219,5,5,251,195,5,5,198,201,5,5,215,199,5,5,89,205,5,5,126,236,5,5,51,225,5,5,78,229,5,5,92,190,5,5,13,205,5,5,14,205,5,5,99,219,5,5,192,202,5,5,248,203,5,5,91,218,5,5,50,173,5,5,155,235,5,5,131,236,5,5,175,201,5,5,222,168,5,5,91,228,5,5,254,221,5,5,120,218,5,5,192,219,5,5,133,248,5,5,134,248,5,5,114,221,5,5,66,238,5,5,224,206,5,5,235,198,5,5,35,248,5,5,137,248,5,5,174,189,5,5,176,189,5,5,82,200,5,5,77,238,5,5,180,189,5,5,225,234,5,5,88,200,5,5,107,222,5,5,63,207,5,5,4,250,5,5,108,222,5,5,88,238,5,5,158,246,5,5,73,186,5,5,156,175,5,5,128,194,5,5,118,183,5,5,166,169,5,5,182,244,5,5,211,170,5,5,45,224,5,5,45,218,5,5,40,204,5,5,84,184,5,5,95,177,5,5,215,231,5,5,85,234,5,5,200,233,5,5,73,210,5,5,222,231,5,5,8,200,5,5,165,230,5,5,78,228,5,5,234,242,5,5,93,207,5,5,235,223,5,5,24,181,5,5,25,181,5,5,3,238,5,5,184,216,5,5,79,228,5,5,27,186,5,5,28,186,5,5,239,214,5,5,34,208,5,5,35,208,5,5,240,239,5,5,204,191,5,5,31,174,5,5,154,177,5,5,80,244,5,5,74,226,5,5,248,224,5,5,161,183,5,5,181,186,5,5,112,237,5,5,24,237,5,5,67,188,5,5,53,185,5,5,164,221,5,5,155,225,5,5,250,224,5,5,61,227,5,5,139,236,5,5,24,170,5,5,103,238,5,5,119,199,5,5,37,193,5,5,37,181,5,5,52,190,5,5,191,199,5,5,98,243,5,5,39,193,5,5,168,168,5,5,211,181,5,5,230,202,5,5,146,190,5,5,201,178,5,5,144,236,5,5,89,212,5,5,147,197,5,5,107,214,5,5,6,210,5,5,134,183,5,5,106,233,5,5,55,183,5,5,87,179,5,5,194,217,5,5,238,199,5,5,184,249,5,5,148,190,5,5,232,214,5,5,87,198,5,5,124,244,5,5,208,169,5,5,7,239,5,5,113,194,5,5,207,225,5,5,250,243,5,5,217,169,5,5,189,230,5,5,237,190,5,5,209,182,5,5,132,179,5,5,213,235,5,5,234,169,5,5,112,179,5,5,145,168,5,5,224,220,5,5,216,229,5,5,202,187,5,5,146,168,5,5,145,230,5,5,147,168,5,5,117,194,5,5,248,202,5,5,45,181,5,5,58,243,5,5,118,194,5,5,70,222,5,5,63,183,5,5,224,191,5,5,145,170,5,5,35,206,5,5,68,181,5,5,143,211,5,5,130,211,5,5,238,179,5,5,250,209,5,5,30,215,5,5,124,193,5,5,173,224,5,5,169,196,5,5,152,211,5,5,233,172,5,5,111,188,5,5,228,231,5,5,116,182,5,5,173,192,5,5,38,223,5,5,12,219,5,5,177,182,5,5,191,228,5,5,44,189,5,5,118,248,5,5,76,184,5,5,167,206,5,5,214,177,5,5,151,218,5,5,165,183,5,5,71,196,5,5,85,236,5,5,218,187,5,5,198,229,5,5,71,247,5,5,223,211,5,5,166,180,5,5,198,192,5,5,36,199,5,5,113,247,5,5,114,237,5,5,215,195,5,5,69,243,5,5,196,208,5,5,155,183,5,5,146,174,5,5,10,243,5,5,120,248,5,5,81,211,5,5,199,236,5,5,228,209,5,5,215,233,5,5,18,183,5,5,28,170,5,5,132,241,5,5,21,228,5,5,74,183,5,5,142,228,5,5,151,182,5,5,81,230,5,5,16,242,5,5,24,187,5,5,169,180,5,5,190,168,5,5,118,210,5,5,159,247,5,5,206,248,5,5,70,245,5,5,124,177,5,5,254,209,5,5,236,242,5,5,66,227,5,5,19,232,5,5,123,246,5,5,91,181,5,5,196,207,5,5,89,209,5,5,61,214,5,5,53,170,5,5,22,221,5,5,66,216,5,5,92,181,5,5,159,188,5,5,184,234,5,5,27,182,5,5,21,246,5,5,224,208,5,5,34,169,5,5,171,209,5,5,166,183,5,5,41,204,5,5,61,249,5,5,62,249,5,5,245,221,5,5,71,218,5,5,76,220,5,5,26,237,5,5,238,206,5,5,124,195,5,5,45,186,5,5,111,223,5,5,48,234,5,5,29,229,5,5,3,249,5,5,58,197,5,5,77,220,5,5,125,213,5,5,159,218,5,5,130,237,5,5,54,180,5,5,85,194,5,5,124,222,5,5,111,192,5,5,152,184,5,5,219,232,5,5,32,190,5,5,123,197,5,5,154,194,5,5,24,186,5,5,106,201,5,5,135,193,5,5,136,193,5,5,118,238,5,5,219,210,5,5,125,246,5,5,10,192,5,5,14,192,5,5,112,232,5,5,7,189,5,5,254,186,5,5,21,198,5,5,120,199,5,5,203,236,5,5,47,209,5,5,179,203,5,5,120,212,5,5,147,181,5,5,96,241,5,5,94,236,5,5,238,172,5,5,27,221,5,5,173,239,5,5,213,221,5,5,75,187,5,5,208,217,5,5,4,249,5,5,147,223,5,5,199,228,5,5,57,189,5,5,58,228,5,5,24,205,5,5,33,236,5,5,99,218,5,5,155,194,5,5,24,206,5,5,154,213,5,5,118,232,5,5,218,220,5,5,68,202,5,5,95,174,5,5,160,233,5,5,47,207,5,5,175,183,5,5,130,224,5,5,144,207,5,5,33,229,5,5,254,198,5,5,72,176,5,5,73,176,5,5,236,226,5,5,223,210,5,5,35,234,5,5,23,210,5,5,150,241,5,5,231,209,5,5,242,213,5,5,103,210,5,5,124,197,5,5,33,221,5,5,223,246,5,5,250,187,5,5,26,179,5,5,123,248,5,5,102,181,5,5,133,213,5,5,185,227,5,5,119,232,5,5,153,208,5,5,55,230,5,5,95,236,5,5,93,230,5,5,0,136,5,5,99,236,5,5,151,241,5,5,120,223,5,5,152,241,5,5,46,228,5,5,124,202,5,5,27,232,5,5,225,196,5,5,173,217,5,5,153,248,5,5,68,214,5,5,28,232,5,5,217,248,5,5,29,180,5,5,109,173,5,5,153,205,5,5,0,158,5,5,93,181,5,5,94,181,5,5,26,205,5,5,132,208,5,5,190,176,5,5,252,213,5,5,4,197,5,5,212,213,5,5,59,172,5,5,60,204,5,5,117,228,5,5,20,171,5,5,2,233,5,5,158,222,5,5,208,214,5,5,13,191,5,5,125,182,5,5,245,229,5,5,77,219,5,5,28,225,5,5,181,182,5,5,182,182,5,5,81,195,5,5,76,226,5,5,130,210,5,5,217,217,5,5,77,196,5,5,151,191,5,5,19,196,5,5,53,215,5,5,109,179,5,5,54,234,5,5,246,189,5,5,83,228,5,5,166,200,5,5,74,170,5,5,191,239,5,5,45,175,5,5,92,210,5,5,96,184,5,5,87,196,5,5,77,206,5,5,81,168,5,5,209,200,5,5,51,200,5,5,228,239,5,5,38,236,5,5,226,196,5,5,137,202,5,5,89,179,5,5,29,232,5,5,22,190,5,5,58,190,5,5,55,240,5,5,18,173,5,5,77,221,5,5,219,226,5,5,83,178,5,5,190,237,5,5,138,230,5,5,41,210,5,5,74,176,5,5,104,193,5,5,56,227,5,5,226,234,5,5,47,242,5,5,252,228,5,5,40,179,5,5,244,218,5,5,186,207,5,5,226,177,5,5,70,219,5,5,97,216,5,5,14,191,5,5,2,230,5,5,105,215,5,5,29,176,5,5,178,208,5,5,99,184,5,5,126,195,5,5,184,180,5,5,149,238,5,5,123,247,5,5,152,207,5,5,194,190,5,5,134,208,5,5,42,168,5,5,56,240,5,5,11,235,5,5,40,195,5,5,207,228,5,5,204,207,5,5,243,242,5,5,41,246,5,5,12,217,5,5,46,222,5,5,172,233,5,5,23,228,5,5,52,203,5,5,114,207,5,5,75,218,5,5,67,223,5,5,60,213,5,5,99,229,5,5,49,228,5,5,227,176,5,5,181,189,5,5,136,168,5,5,87,195,5,5,109,169,5,5,152,234,5,5,57,227,5,5,40,187,5,5,117,175,5,5,143,237,5,5,43,213,5,5,51,231,5,5,200,242,5,5,179,240,5,5,201,218,5,5,52,219,5,5,160,174,5,5,138,204,5,5,189,207,5,5,12,212,5,5,137,168,5,5,169,206,5,5,30,186,5,5,22,200,5,5,127,216,5,5,117,193,5,5,222,219,5,5,194,245,5,5,201,242,5,5,41,195,5,5,206,218,5,5,35,209,5,5,63,240,5,5,133,192,5,5,3,224,5,5,233,210,5,5,41,232,5,5,162,225,5,5,58,212,5,5,40,201,5,5,85,210,5,5,97,169,5,5,9,168,5,5,44,213,5,5,136,213,5,5,78,239,5,5,99,213,5,5,74,242,5,5,156,201,5,5,49,235,5,5,236,206,5,5,82,238,5,5,23,245,5,5,161,198,5,5,197,240,5,5,178,210,5,5,16,202,5,5,232,178,5,5,45,187,5,5,69,236,5,5,199,195,5,5,84,248,5,5,140,173,5,5,59,244,5,5,234,187,5,5,115,210,5,5,125,201,5,5,61,209,5,5,114,245,5,5,254,189,5,5,255,189,5,5,148,168,5,5,116,210,5,5,210,215,5,5,211,206,5,5,124,213,5,5,67,186,5,5,102,230,5,5,21,216,5,5,26,228,5,5,244,244,5,5,182,208,5,5,45,232,5,5,46,232,5,5,124,209,5,5,124,203,5,5,255,202,5,5,67,190,5,5,49,187,5,5,176,178,5,5,146,246,5,5,167,234,5,5,86,238,5,5,60,190,5,5,247,230,5,5,31,200,5,5,103,218,5,5,248,230,5,5,237,236,5,5,32,173,5,5,170,194,5,5,191,207,5,5,134,182,5,5,59,182,5,5,253,231,5,5,104,239,5,5,112,191,5,5,16,195,5,5,122,184,5,5,75,222,5,5,131,170,5,5,136,220,5,5,86,224,5,5,216,215,5,5,37,203,5,5,125,190,5,5,234,233,5,5,237,210,5,5,45,180,5,5,105,239,5,5,81,172,5,5,18,168,5,5,224,210,5,5,64,211,5,5,170,206,5,5,169,226,5,5,75,175,5,5,252,195,5,5,123,176,5,5,201,241,5,5,139,213,5,5,225,218,5,5,28,219,5,5,5,210,5,5,75,236,5,5,243,224,5,5,82,240,5,5,167,215,5,5,239,210,5,5,34,243,5,5,134,240,5,5,140,208,5,5,21,170,5,5,171,206,5,5,86,221,5,5,59,234,5,5,187,210,5,5,136,180,5,5,191,204,5,5,165,242,5,5,10,201,5,5,252,236,5,5,245,222,5,5,103,204,5,5,242,194,5,5,225,210,5,5,12,201,5,5,82,215,5,5,91,240,5,5,247,222,5,5,142,191,5,5,244,217,5,5,89,208,5,5,52,202,5,5,36,206,5,5,132,236,5,5,252,247,5,5,14,201,5,5,96,249,5,5,57,195,5,5,178,197,5,5,179,197,5,5,59,199,5,5,115,243,5,5,168,206,5,5,81,249,5,5,64,177,5,5,107,224,5,5,208,183,5,5,162,169,5,5,253,248,5,5,70,233,5,5,246,233,5,5,32,208,5,5,115,223,5,5,223,224,5,5,84,169,5,5,204,192,5,5,46,186,5,5,131,211,5,5,101,235,5,5,91,241,5,5,96,248,5,5,207,187,5,5,25,206,5,5,110,224,5,5,58,210,5,5,206,208,5,5,191,176,5,5,54,215,5,5,159,222,5,5,104,172,5,5,238,235,5,5,18,249,5,5,157,210,5,5,189,183,5,5,27,249,5,5,17,202,5,5,110,235,5,5,239,171,5,5,29,219,5,5,248,209,5,5,26,211,5,5,27,211,5,5,92,240,5,5,37,206,5,5,128,208,5,5,48,211,5,5,234,218,5,5,172,224,5,5,65,187,5,5,190,244,5,5,227,216,5,5,224,241,5,5,93,222,5,5,34,168,5,5,76,227,5,5,176,223,5,5,98,228,5,5,10,219,5,5,177,237,5,5,47,189,5,5,106,238,5,5,51,196,5,5,173,248,5,5,95,208,5,5,7,248,5,5,77,178,5,5,52,189,5,5,97,249,5,5,187,186,5,5,174,247,5,5,251,179,5,5,111,228,5,5,110,238,5,5,100,169,5,5,209,221,5,5,210,221,5,5,38,175,5,5,70,221,5,5,252,198,5,5,4,235,5,5,24,222,5,5,97,241,5,5,149,190,5,5,127,238,5,5,161,226,5,5,248,221,5,5,113,232,5,5,211,185,5,5,96,174,5,5,49,218,5,5,212,185,5,5,248,232,5,5,185,243,5,5,173,244,5,5,105,169,5,5,220,187,5,5,208,236,5,5,249,232,5,5,51,193,5,5,74,221,5,5,3,174,5,5,197,218,5,5,234,190,5,5,100,208,5,5,76,199,5,5,156,199,5,5,51,171,5,5,245,223,5,5,60,172,5,5,206,243,5,5,222,192,5,5,147,242,5,5,223,192,5,5,229,239,5,5,102,208,5,5,77,199,5,5,175,216,5,5,220,188,5,5,191,245,5,5,30,194,5,5,100,184,5,5,55,211,5,5,136,171,5,5,116,190,5,5,205,207,5,5,149,216,5,5,4,188,5,5,48,242,5,5,223,221,5,5,56,211,5,5,232,195,5,5,58,211,5,5,8,247,5,5,245,241,5,5,111,169,5,5,157,199,5,5,59,211,5,5,151,216,5,5,116,209,5,5,226,172,5,5,97,197,5,5,162,186,5,5,152,216,5,5,160,189,5,5,150,230,5,5,118,203,5,5,231,221,5,5,60,211,5,5,197,244,5,5,80,221,5,5,66,229,5,5,146,233,5,5,158,199,5,5,104,191,5,5,125,203,5,5,63,198,5,5,126,190,5,5,121,239,5,5,168,238,5,5,121,169,5,5,107,216,5,5,40,175,5,5,122,169,5,5,109,183,5,5,69,177,5,5,217,180,5,5,107,223,5,5,160,235,5,5,114,178,5,5,3,206,5,5,221,180,5,5,97,222,5,5,220,213,5,5,79,183,5,5,79,248,5,5,176,183,5,5,245,220,5,5,255,198,5,5,86,194,5,5,91,194,5,5,81,248,5,5,95,229,5,5,2,250,5,5,179,235,5,5,207,222,5,5,228,180,5,5,126,178,5,5,60,233,5,5,58,195,5,5,212,220,5,5,242,181,5,5,243,181,5,5,244,181,5,5,143,184,5,5,125,193,5,5,117,222,5,5,249,173,5,5,182,220,5,5,183,220,5,5,59,209,5,5,140,184,5,5,130,173,5,5,166,203,5,5,79,232,5,5,80,232,5,5,96,200,5,5,24,241,5,5,159,228,5,5,25,241,5,5,162,203,5,5,163,203,5,5,126,237,5,5,38,207,5,5,163,228,5,5,160,228,5,5,161,228,5,5,145,184,5,5,127,237,5,5,74,181,5,5,18,200,5,5,101,247,5,5,193,196,5,5,207,184,5,5,93,186,5,5,208,184,5,5,170,227,5,5,212,184,5,5,213,184,5,5,163,221,5,5,255,239,5,5,202,174,5,5,184,198,5,5,119,210,5,5,188,195,5,5,25,229,5,5,240,210,5,5,251,196,5,5,39,213,5,5,191,172,5,5,106,231,5,5,7,170,5,5,212,196,5,5,138,195,5,5,83,226,5,5,96,217,5,5,44,226,5,5,139,195,5,5,29,230,5,5,150,179,5,5,171,221,5,5,249,221,5,5,170,213,5,5,15,192,5,5,161,233,5,5,227,245,5,5,162,233,5,5,125,210,5,5,233,244,5,5,190,230,5,5,34,229,5,5,4,207,5,5,95,181,5,5,59,205,5,5,178,213,5,5,52,226,5,5,233,182,5,5,166,222,5,5,173,233,5,5,103,227,5,5,243,205,5,5,246,205,5,5,84,231,5,5,193,172,5,5,250,205,5,5,104,197,5,5,184,233,5,5,114,197,5,5,175,197,5,5,139,203,5,5,245,197,5,5,182,222,5,5,154,231,5,5,223,173,5,5,201,227,5,5,167,210,5,5,68,220,5,5,41,228,5,5,226,231,5,5,93,202,5,5,132,181,5,5,64,191,5,5,65,191,5,5,209,204,5,5,230,238,5,5,195,214,5,5,147,218,5,5,117,230,5,5,24,188,5,5,16,221,5,5,225,241,5,5,103,175,5,5,73,224,5,5,196,214,5,5,148,218,5,5,11,243,5,5,17,169,5,5,178,237,5,5,92,168,5,5,250,235,5,5,120,230,5,5,64,195,5,5,135,181,5,5,97,192,5,5,36,215,5,5,19,183,5,5,99,228,5,5,101,214,5,5,185,172,5,5,90,215,5,5,102,214,5,5,235,172,5,5,134,195,5,5,91,217,5,5,23,185,5,5,106,232,5,5,139,168,5,5,206,200,5,5,115,178,5,5,169,168,5,5,36,250,5,5,37,250,5,5,82,237,5,5,59,197,5,5,5,185,5,5,241,198,5,5,8,186,5,5,102,235,5,5,204,213,5,5,105,202,5,5,140,226,5,5,97,217,5,5,89,236,5,5,213,183,5,5,119,234,5,5,97,193,5,5,114,204,5,5,246,227,5,5,243,212,5,5,143,168,5,5,173,177,5,5,200,199,5,5,14,243,5,5,98,217,5,5,237,189,5,5,225,213,5,5,225,208,5,5,73,168,5,5,141,226,5,5,42,204,5,5,181,174,5,5,166,213,5,5,21,180,5,5,28,188,5,5,227,199,5,5,120,234,5,5,96,207,5,5,4,227,5,5,103,235,5,5,248,238,5,5,208,170,5,5,162,188,5,5,171,168,5,5,143,206,5,5,148,181,5,5,85,184,5,5,167,235,5,5,181,179,5,5,148,205,5,5,215,181,5,5,224,181,5,5,153,184,5,5,195,217,5,5,55,180,5,5,119,238,5,5,173,209,5,5,214,221,5,5,36,168,5,5,239,228,5,5,109,190,5,5,214,246,5,5,98,208,5,5,66,202,5,5,207,192,5,5,7,227,5,5,240,228,5,5,98,241,5,5,12,215,5,5,172,231,5,5,67,202,5,5,131,237,5,5,249,194,5,5,27,246,5,5,26,206,5,5,156,194,5,5,103,181,5,5,104,181,5,5,26,242,5,5,107,233,5,5,246,171,5,5,43,216,5,5,47,218,5,5,84,183,5,5,85,183,5,5,62,210,5,5,69,202,5,5,35,241,5,5,120,232,5,5,198,218,5,5,117,178,5,5,34,221,5,5,97,174,5,5,95,227,5,5,188,185,5,5,48,198,5,5,74,185,5,5,177,231,5,5,222,239,5,5,234,241,5,5,69,201,5,5,150,198,5,5,84,201,5,5,161,200,5,5,71,232,5,5,20,218,5,5,51,199,5,5,30,175,5,5,31,175,5,5,196,224,5,5,220,203,5,5,56,190,5,5,227,196,5,5,167,200,5,5,126,214,5,5,235,208,5,5,52,200,5,5,53,200,5,5,194,249,5,5,126,186,5,5,10,177,5,5,4,236,5,5,5,236,5,5,24,185,5,5,78,206,5,5,79,206,5,5,228,201,5,5,202,197,5,5,30,181,5,5,34,246,5,5,151,187,5,5,230,239,5,5,30,180,5,5,252,187,5,5,35,246,5,5,41,229,5,5,54,233,5,5,2,213,5,5,57,236,5,5,151,223,5,5,82,195,5,5,235,169,5,5,195,249,5,5,95,199,5,5,31,180,5,5,235,244,5,5,127,186,5,5,231,239,5,5,11,249,5,5,87,244,5,5,195,190,5,5,165,241,5,5,77,228,5,5,60,237,5,5,90,183,5,5,62,217,5,5,61,237,5,5,253,225,5,5,199,238,5,5,254,246,5,5,47,222,5,5,186,243,5,5,191,237,5,5,164,181,5,5,50,248,5,5,128,198,5,5,9,206,5,5,157,236,5,5,187,207,5,5,5,188,5,5,22,192,5,5,23,192,5,5,161,190,5,5,220,226,5,5,155,221,5,5,153,207,5,5,151,215,5,5,139,230,5,5,166,241,5,5,102,249,5,5,211,200,5,5,244,198,5,5,107,236,5,5,108,236,5,5,46,229,5,5,103,249,5,5,220,172,5,5,78,224,5,5,202,218,5,5,212,198,5,5,98,216,5,5,167,241,5,5,139,214,5,5,50,205,5,5,110,227,5,5,210,180,5,5,229,230,5,5,218,229,5,5,122,172,5,5,87,178,5,5,207,218,5,5,91,195,5,5,104,198,5,5,139,204,5,5,146,230,5,5,156,223,5,5,239,215,5,5,19,249,5,5,253,228,5,5,240,169,5,5,70,179,5,5,80,177,5,5,132,215,5,5,245,240,5,5,7,211,5,5,81,177,5,5,182,192,5,5,227,221,5,5,117,219,5,5,171,223,5,5,111,249,5,5,139,194,5,5,119,203,5,5,162,198,5,5,77,173,5,5,208,179,5,5,184,172,5,5,242,179,5,5,88,227,5,5,53,205,5,5,61,245,5,5,240,244,5,5,241,244,5,5,108,168,5,5,140,172,5,5,113,217,5,5,191,215,5,5,15,177,5,5,232,249,5,5,123,178,5,5,124,178,5,5,55,231,5,5,75,242,5,5,129,212,5,5,225,204,5,5,231,232,5,5,194,172,5,5,163,171,5,5,102,216,5,5,171,194,5,5,71,236,5,5,91,201,5,5,8,245,5,5,231,203,5,5,126,203,5,5,127,203,5,5,183,195,5,5,192,178,5,5,86,181,5,5,5,250,5,5,13,195,5,5,110,187,5,5,160,237,5,5,172,194,5,5,161,237,5,5,226,197,5,5,214,244,5,5,106,239,5,5,111,235,5,5,70,210,5,5,36,238,5,5,37,238,5,5,162,238,5,5,16,211,5,5,87,232,5,5,143,192,5,5,187,233,5,5,247,198,5,5,249,230,5,5,61,179,5,5,153,168,5,5,234,249,5,5,224,228,5,5,169,238,5,5,226,218,5,5,129,178,5,5,118,204,5,5,114,195,5,5,2,242,5,5,37,243,5,5,21,240,5,5,59,219,5,5,119,195,5,5,176,202,5,5,58,187,5,5,234,204,5,5,235,204,5,5,77,179,5,5,229,218,5,5,33,231,5,5,26,197,5,5,51,173,5,5,172,240,5,5,236,199,5,5,127,236,5,5,228,228,5,5,76,210,5,5,245,217,5,5,206,173,5,5,254,176,5,5,38,206,5,5,81,179,5,5,82,179,5,5,33,211,5,5,134,236,5,5,133,236,5,5,191,236,5,5,10,200,5,5,192,236,5,5,202,175,5,5,133,199,5,5,203,175,5,5,127,247,5,5,180,190,5,5,8,196,5,5,162,235,5,5,186,173,5,5,187,173,5,5,201,203,5,5,201,185,5,5,30,250,5,5,36,216,5,5,53,197,5,5,231,185,5,5,56,197,5,5,27,230,5,5,55,214,5,5,56,214,5,5,239,172,5,5,63,217,5,5,73,217,5,5,171,192,5,5,181,238,5,5,104,223,5,5,163,168,5,5,84,246,5,5,71,245,5,5,220,232,5,5,128,238,5,5,191,195,5,5,204,235,5,5,149,197,5,5,175,168,5,5,214,235,5,5,161,195,5,5,200,183,5,5,148,243,5,5,44,170,5,5,6,222,5,5,11,172,5,5,228,179,5,5,232,222,5,5,54,182,5,5,245,210,5,5,165,221,5,5,250,182,5,5,235,211,5,5,167,246,5,5,174,230,5,5,233,189,5,5,9,178,5,5,235,228,5,5,50,245,5,5,137,225,5,5,174,177,5,5,90,209,5,5,119,212,5,5,236,211,5,5,177,226,5,5,141,171,5,5,232,202,5,5,206,246,5,5,163,247,5,5,176,171,5,5,207,246,5,5,24,179,5,5,97,209,5,5,8,239,5,5,9,239,5,5,171,213,5,5,18,215,5,5,140,197,5,5,14,219,5,5,233,222,5,5,179,177,5,5,68,246,5,5,14,223,5,5,44,216,5,5,180,245,5,5,175,221,5,5,50,218,5,5,46,231,5,5,49,169,5,5,186,177,5,5,31,187,5,5,54,175,5,5,179,213,5,5,55,245,5,5,189,219,5,5,84,228,5,5,189,177,5,5,246,228,5,5,132,173,5,5,46,220,5,5,127,214,5,5,52,244,5,5,169,187,5,5,115,207,5,5,158,180,5,5,110,189,5,5,71,246,5,5,153,234,5,5,106,208,5,5,254,228,5,5,3,230,5,5,4,184,5,5,50,239,5,5,54,169,5,5,184,213,5,5,194,179,5,5,219,185,5,5,13,212,5,5,239,190,5,5,163,225,5,5,109,208,5,5,118,193,5,5,222,225,5,5,24,191,5,5,85,247,5,5,96,220,5,5,17,207,5,5,201,209,5,5,241,170,5,5,171,187,5,5,60,244,5,5,202,209,5,5,55,169,5,5,62,245,5,5,61,196,5,5,81,173,5,5,23,184,5,5,27,247,5,5,163,189,5,5,60,182,5,5,245,175,5,5,112,170,5,5,123,170,5,5,45,245,5,5,121,208,5,5,252,215,5,5,15,173,5,5,35,183,5,5,254,207,5,5,57,169,5,5,76,175,5,5,215,208,5,5,130,175,5,5,113,195,5,5,94,232,5,5,232,200,5,5,234,184,5,5,161,213,5,5,190,210,5,5,126,193,5,5,124,171,5,5,127,171,5,5,49,234,5,5,245,184,5,5,111,237,5,5,145,190,5,5,88,241,5,5,11,241,5,5,180,192,5,5,11,187,5,5,25,213,5,5,196,226,5,5,82,244,5,5,12,187,5,5,119,248,5,5,58,209,5,5,209,216,5,5,50,170,5,5,108,216,5,5,7,181,5,5,242,175,5,5,69,187,5,5,14,236,5,5,243,168,5,5,135,195,5,5,200,234,5,5,70,205,5,5,82,230,5,5,121,248,5,5,103,199,5,5,47,240,5,5,255,178,5,5,77,212,5,5,104,179,5,5,230,235,5,5,197,208,5,5,169,185,5,5,143,176,5,5,43,184,5,5,5,227,5,5,53,212,5,5,220,182,5,5,192,232,5,5,189,238,5,5,215,246,5,5,133,226,5,5,216,246,5,5,91,234,5,5,170,180,5,5,43,250,5,5,250,232,5,5,96,227,5,5,81,187,5,5,106,199,5,5,48,207,5,5,216,226,5,5,69,241,5,5,247,171,5,5,129,171,5,5,141,174,5,5,168,200,5,5,75,170,5,5,123,192,5,5,39,168,5,5,201,222,5,5,160,198,5,5,191,240,5,5,22,228,5,5,152,223,5,5,202,222,5,5,203,216,5,5,49,242,5,5,239,241,5,5,200,208,5,5,189,223,5,5,172,172,5,5,168,232,5,5,235,182,5,5,194,196,5,5,174,181,5,5,41,187,5,5,197,204,5,5,50,220,5,5,242,202,5,5,41,201,5,5,190,223,5,5,9,247,5,5,31,172,5,5,205,216,5,5,198,196,5,5,195,196,5,5,200,195,5,5,109,168,5,5,107,200,5,5,33,205,5,5,37,240,5,5,167,203,5,5,197,177,5,5,175,205,5,5,79,239,5,5,126,175,5,5,33,173,5,5,118,227,5,5,86,223,5,5,231,233,5,5,201,208,5,5,157,173,5,5,103,230,5,5,239,182,5,5,14,187,5,5,116,199,5,5,150,199,5,5,132,170,5,5,217,215,5,5,188,233,5,5,6,204,5,5,7,204,5,5,140,203,5,5,90,205,5,5,18,193,5,5,173,240,5,5,9,232,5,5,210,226,5,5,213,240,5,5,53,202,5,5,212,226,5,5,254,239,5,5,159,235,5,5,82,236,5,5,214,226,5,5,215,178,5,5,250,211,5,5,10,194,5,5,42,191,5,5,255,209,5,5,43,191,5,5,230,185,5,5,217,210,5,5,86,198,5,5,200,170,5,5,231,238,5,5,223,214,5,5,116,211,5,5,54,183,5,5,33,197,5,5,148,236,5,5,10,239,5,5,251,243,5,5,113,170,5,5,221,238,5,5,59,238,5,5,6,182,5,5,167,219,5,5,10,222,5,5,7,182,5,5,48,222,5,5,56,222,5,5,202,185,5,5,151,179,5,5,2,240,5,5,226,189,5,5,201,183,5,5,43,189,5,5,21,230,5,5,167,227,5,5,176,174,5,5,129,194,5,5,209,168,5,5,67,221,5,5,17,179,5,5,18,245,5,5,184,197,5,5,156,225,5,5,44,184,5,5,2,179,5,5,42,208,5,5,20,232,5,5,170,189,5,5,175,173,5,5,137,211,5,5,73,196,5,5,224,245,5,5,129,238,5,5,78,208,5,5,196,217,5,5,81,228,5,5,189,220,5,5,112,219,5,5,5,235,5,5,82,196,5,5,133,179,5,5,19,245,5,5,133,194,5,5,207,215,5,5,163,212,5,5,18,178,5,5,208,215,5,5,83,170,5,5,84,170,5,5,251,220,5,5,24,178,5,5,224,193,5,5,31,186,5,5,99,185,5,5,23,182,5,5,96,170,5,5,67,199,5,5,231,193,5,5,46,171,5,5,27,233,5,5,36,178,5,5,157,187,5,5,141,194,5,5,86,189,5,5,52,208,5,5,161,187,5,5,90,228,5,5,6,198,5,5,190,192,5,5,191,192,5,5,22,187,5,5,50,178,5,5,146,205,5,5,147,205,5,5,161,227,5,5,80,191,5,5,255,246,5,5,91,191,5,5,92,191,5,5,163,238,5,5,164,238,5,5,172,238,5,5,173,238,5,5,5,243,5,5,6,243,5,5,69,220,5,5,26,234,5,5,159,229,5,5,3,227,5,5,204,236,5,5,205,236,5,5,27,242,5,5,149,174,5,5,61,172,5,5,236,170,5,5,134,179,5,5,52,171,5,5,164,212,5,5,246,240,5,5,88,213,5,5,24,245,5,5,167,240,5,5,174,174,5,5,222,174,5,5,201,248,5,5,20,228,5,5,98,192,5,5,160,182,5,5,72,247,5,5,238,238,5,5,169,228,5,5,224,173,5,5,31,170,5,5,202,178,5,5,43,204,5,5,214,183,5,5,174,228,5,5,22,246,5,5,222,176,5,5,175,228,5,5,74,196,5,5,180,177,5,5,183,230,5,5,205,235,5,5,251,188,5,5,52,237,5,5,77,190,5,5,5,206,5,5,129,189,5,5,178,228,5,5,137,174,5,5,224,246,5,5,180,234,5,5,83,196,5,5,97,227,5,5,189,176,5,5,66,247,5,5,162,200,5,5,192,176,5,5,158,178,5,5,241,211,5,5,76,231,5,5,35,180,5,5,224,192,5,5,133,173,5,5,236,246,5,5,193,176,5,5,139,247,5,5,169,200,5,5,50,242,5,5,165,233,5,5,150,195,5,5,25,194,5,5,49,222,5,5,105,193,5,5,214,170,5,5,196,190,5,5,101,184,5,5,180,235,5,5,47,229,5,5,59,212,5,5,144,237,5,5,214,228,5,5,230,230,5,5,44,246,5,5,114,213,5,5,12,226,5,5,164,178,5,5,49,246,5,5,193,246,5,5,41,171,5,5,165,178,5,5,21,175,5,5,232,173,5,5,225,194,5,5,113,191,5,5,229,194,5,5,33,191,5,5,173,207,5,5,20,205,5,5,180,232,5,5,145,169,5,5,157,217,5,5,213,233,5,5,3,234,5,5,45,170,5,5,223,238,5,5,137,201,5,5,121,218,5,5,106,178,5,5,248,179,5,5,164,184,5,5,199,192,5,5,130,218,5,5,123,218,5,5,97,173,5,5,57,225,5,5,208,225,5,5,209,225,5,5,188,184,5,5,219,214,5,5,11,222,5,5,68,177,5,5,199,246,5,5,192,228,5,5,35,207,5,5,169,230,5,5,55,182,5,5,48,240,5,5,109,226,5,5,226,208,5,5,187,229,5,5,73,247,5,5,12,175,5,5,124,230,5,5,99,192,5,5,83,230,5,5,110,231,5,5,74,193,5,5,6,241,5,5,143,228,5,5,156,176,5,5,143,223,5,5,137,199,5,5,17,242,5,5,201,170,5,5,200,246,5,5,103,214,5,5,29,177,5,5,251,173,5,5,251,224,5,5,203,227,5,5,91,215,5,5,218,210,5,5,161,191,5,5,69,234,5,5,85,211,5,5,182,199,5,5,231,231,5,5,216,233,5,5,156,198,5,5,145,189,5,5,114,198,5,5,56,183,5,5,76,190,5,5,253,224,5,5,164,223,5,5,84,230,5,5,220,211,5,5,160,173,5,5,252,175,5,5,60,197,5,5,249,238,5,5,101,169,5,5,176,173,5,5,227,208,5,5,99,212,5,5,38,250,5,5,97,244,5,5,101,237,5,5,66,197,5,5,35,169,5,5,140,211,5,5,60,210,5,5,23,246,5,5,237,211,5,5,16,172,5,5,178,226,5,5,242,189,5,5,238,189,5,5,67,197,5,5,125,177,5,5,233,202,5,5,63,223,5,5,52,175,5,5,21,179,5,5,181,177,5,5,111,238,5,5,79,227,5,5,32,241,5,5,169,183,5,5,112,192,5,5,143,212,5,5,50,234,5,5,238,242,5,5,121,210,5,5,183,186,5,5,215,183,5,5,111,231,5,5,54,170,5,5,9,241,5,5,67,216,5,5,64,235,5,5,159,176,5,5,102,171,5,5,231,190,5,5,205,234,5,5,158,175,5,5,55,170,5,5,195,222,5,5,184,230,5,5,12,225,5,5,227,240,5,5,133,249,5,5,223,180,5,5,143,209,5,5,173,246,5,5,250,238,5,5,25,222,5,5,114,210,5,5,168,235,5,5,26,222,5,5,116,231,5,5,107,201,5,5,8,189,5,5,174,199,5,5,149,209,5,5,178,246,5,5,108,233,5,5,47,203,5,5,134,226,5,5,232,190,5,5,182,179,5,5,118,188,5,5,60,199,5,5,76,187,5,5,9,189,5,5,185,230,5,5,195,194,5,5,199,222,5,5,65,223,5,5,150,189,5,5,8,217,5,5,102,237,5,5,76,191,5,5,44,191,5,5,231,174,5,5,80,193,5,5,120,238,5,5,72,234,5,5,184,186,5,5,16,204,5,5,3,191,5,5,88,249,5,5,208,234,5,5,211,174,5,5,184,220,5,5,149,211,5,5,254,188,5,5,212,181,5,5,253,198,5,5,56,180,5,5,85,226,5,5,213,185,5,5,197,217,5,5,191,230,5,5,19,215,5,5,16,243,5,5,145,212,5,5,21,199,5,5,157,178,5,5,77,191,5,5,150,181,5,5,91,233,5,5,49,227,5,5,51,236,5,5,95,198,5,5,161,172,5,5,78,210,5,5,119,243,5,5,43,207,5,5,237,240,5,5,234,240,5,5,144,242,5,5,213,212,5,5,79,200,5,5,236,215,5,5,17,243,5,5,35,242,5,5,98,227,5,5,148,195,5,5,199,230,5,5,128,245,5,5,17,204,5,5,49,226,5,5,30,188,5,5,119,188,5,5,71,216,5,5,53,226,5,5,25,172,5,5,20,239,5,5,148,215,5,5,56,191,5,5,192,230,5,5,175,169,5,5,239,206,5,5,71,238,5,5,3,189,5,5,165,223,5,5,198,217,5,5,138,174,5,5,228,199,5,5,131,230,5,5,132,230,5,5,13,241,5,5,251,201,5,5,99,203,5,5,155,190,5,5,160,176,5,5,34,239,5,5,18,243,5,5,125,202,5,5,45,211,5,5,79,210,5,5,157,181,5,5,21,218,5,5,45,235,5,5,49,215,5,5,133,230,5,5,4,209,5,5,194,176,5,5,210,182,5,5,152,169,5,5,160,178,5,5,39,177,5,5,166,173,5,5,230,207,5,5,138,202,5,5,225,192,5,5,224,186,5,5,219,186,5,5,55,234,5,5,135,178,5,5,69,214,5,5,52,199,5,5,113,226,5,5,80,206,5,5,215,230,5,5,138,198,5,5,126,187,5,5,177,210,5,5,188,216,5,5,56,175,5,5,241,180,5,5,180,187,5,5,207,244,5,5,20,196,5,5,118,228,5,5,152,242,5,5,178,195,5,5,231,192,5,5,210,200,5,5,36,242,5,5,218,191,5,5,186,188,5,5,218,217,5,5,29,225,5,5,54,226,5,5,57,226,5,5,254,210,5,5,179,228,5,5,75,176,5,5,155,189,5,5,152,191,5,5,200,230,5,5,152,173,5,5,225,233,5,5,247,228,5,5,84,191,5,5,165,181,5,5,153,224,5,5,136,249,5,5,140,193,5,5,239,240,5,5,110,179,5,5,86,197,5,5,94,172,5,5,113,174,5,5,161,178,5,5,185,169,5,5,74,216,5,5,87,172,5,5,19,178,5,5,220,186,5,5,80,181,5,5,84,210,5,5,123,243,5,5,206,232,5,5,155,248,5,5,195,179,5,5,197,190,5,5,63,176,5,5,235,216,5,5,114,218,5,5,7,234,5,5,173,172,5,5,191,170,5,5,8,209,5,5,104,249,5,5,254,225,5,5,38,216,5,5,63,175,5,5,190,169,5,5,12,235,5,5,208,228,5,5,119,185,5,5,62,215,5,5,48,229,5,5,63,242,5,5,168,241,5,5,85,170,5,5,13,235,5,5,162,190,5,5,11,209,5,5,86,170,5,5,65,239,5,5,159,208,5,5,240,240,5,5,120,198,5,5,84,178,5,5,192,239,5,5,166,181,5,5,12,174,5,5,119,207,5,5,23,215,5,5,7,199,5,5,179,241,5,5,10,168,5,5,77,216,5,5,158,236,5,5,173,211,5,5,225,184,5,5,124,243,5,5,137,249,5,5,151,219,5,5,239,201,5,5,59,183,5,5,57,240,5,5,23,200,5,5,24,200,5,5,32,218,5,5,220,185,5,5,84,243,5,5,4,224,5,5,11,224,5,5,146,214,5,5,145,237,5,5,169,223,5,5,246,190,5,5,134,192,5,5,94,186,5,5,98,197,5,5,4,176,5,5,179,210,5,5,121,233,5,5,105,198,5,5,62,246,5,5,247,240,5,5,150,172,5,5,218,235,5,5,100,221,5,5,200,171,5,5,121,198,5,5,247,242,5,5,129,231,5,5,181,191,5,5,249,240,5,5,92,237,5,5,156,202,5,5,207,219,5,5,164,225,5,5,200,239,5,5,113,176,5,5,232,234,5,5,154,215,5,5,7,225,5,5,186,190,5,5,126,243,5,5,101,221,5,5,49,209,5,5,245,185,5,5,252,220,5,5,197,176,5,5,89,213,5,5,203,209,5,5,207,209,5,5,172,187,5,5,254,174,5,5,96,172,5,5,91,172,5,5,89,172,5,5,16,177,5,5,16,209,5,5,213,225,5,5,25,245,5,5,52,227,5,5,149,168,5,5,4,223,5,5,18,207,5,5,226,186,5,5,35,218,5,5,30,244,5,5,199,196,5,5,105,191,5,5,101,198,5,5,243,202,5,5,221,211,5,5,172,223,5,5,130,216,5,5,39,240,5,5,15,206,5,5,163,220,5,5,108,229,5,5,150,227,5,5,243,206,5,5,67,215,5,5,2,221,5,5,198,240,5,5,216,216,5,5,163,198,5,5,58,179,5,5,147,246,5,5,34,205,5,5,166,197,5,5,88,214,5,5,84,214,5,5,86,242,5,5,194,213,5,5,120,203,5,5,210,176,5,5,16,241,5,5,22,175,5,5,28,247,5,5,53,227,5,5,65,174,5,5,250,214,5,5,114,217,5,5,175,212,5,5,202,169,5,5,29,171,5,5,250,216,5,5,173,194,5,5,105,244,5,5,249,174,5,5,2,203,5,5,197,213,5,5,32,200,5,5,106,191,5,5,22,216,5,5,127,174,5,5,41,240,5,5,42,240,5,5,87,231,5,5,255,230,5,5,37,178,5,5,37,225,5,5,87,181,5,5,230,180,5,5,229,180,5,5,18,224,5,5,237,197,5,5,182,172,5,5,23,233,5,5,61,182,5,5,62,183,5,5,92,201,5,5,126,201,5,5,23,175,5,5,236,187,5,5,252,214,5,5,47,232,5,5,17,209,5,5,62,196,5,5,158,203,5,5,104,230,5,5,97,172,5,5,227,197,5,5,234,176,5,5,144,232,5,5,65,225,5,5,140,221,5,5,236,212,5,5,107,239,5,5,184,175,5,5,254,231,5,5,71,210,5,5,38,178,5,5,66,225,5,5,64,196,5,5,159,223,5,5,53,188,5,5,230,194,5,5,114,229,5,5,29,235,5,5,46,180,5,5,140,216,5,5,135,216,5,5,108,197,5,5,151,172,5,5,27,199,5,5,189,233,5,5,83,240,5,5,154,168,5,5,128,207,5,5,108,239,5,5,8,204,5,5,244,219,5,5,64,198,5,5,82,190,5,5,233,207,5,5,7,201,5,5,19,168,5,5,9,204,5,5,78,236,5,5,115,200,5,5,219,231,5,5,4,175,5,5,3,242,5,5,44,240,5,5,165,177,5,5,26,208,5,5,22,168,5,5,255,207,5,5,234,180,5,5,168,214,5,5,85,209,5,5,222,200,5,5,234,207,5,5,77,175,5,5,46,247,5,5,182,211,5,5,183,211,5,5,76,236,5,5,97,237,5,5,223,171,5,5,51,247,5,5,217,199,5,5,193,199,5,5,85,241,5,5,198,183,5,5,164,204,5,5,216,208,5,5,134,174,5,5,147,191,5,5,100,173,5,5,29,208,5,5,11,201,5,5,84,190,5,5,55,235,5,5,96,218,5,5,102,173,5,5,19,193,5,5,120,197,5,5,101,190,5,5,9,221,5,5,159,239,5,5,68,203,5,5,40,210,5,5,64,208,5,5,146,225,5,5,7,198,5,5,30,185,5,5,31,185,5,5,141,248,5,5,82,185,5,5,8,243,5,5,114,230,5,5,123,193,5,5,139,234,5,5,189,222,5,5,190,218,5,5,105,231,5,5,86,174,5,5,244,229,5,5,136,195,5,5,87,185,5,5,131,193,5,5,175,215,5,5,206,191,5,5,176,215,5,5,251,244,5,5,63,180,5,5,70,214,5,5,82,193,5,5,190,179,5,5,90,244,5,5,84,193,5,5,181,192,5,5,106,246,5,5,129,198,5,5,126,192,5,5,249,199,5,5,180,184,5,5,186,178,5,5,6,245,5,5,192,215,5,5,101,185,5,5,232,193,5,5,102,195,5,5,76,242,5,5,233,193,5,5,172,236,5,5,181,205,5,5,164,189,5,5,10,245,5,5,143,231,5,5,145,231,5,5,69,176,5,5,202,177,5,5,159,217,5,5,227,189,5,5,228,189,5,5,229,189,5,5,133,181,5,5,14,222,5,5,43,226,5,5,95,207,5,5,239,189,5,5,106,202,5,5,152,182,5,5,147,224,5,5,187,170,5,5,106,179,5,5,117,196,5,5,174,220,5,5,130,238,5,5,194,238,5,5,120,220,5,5,247,189,5,5,186,182,5,5,159,236,5,5,92,222,5,5,114,222,5,5,49,172,5,5,121,244,5,5,34,217,5,5,138,201,5,5,3,214,5,5,165,168,5,5,153,177,5,5,177,218,5,5,111,182,5,5,48,219,5,5,189,243,5,5,220,227,5,5,49,245,5,5,149,179,5,5,171,198,5,5,114,241,5,5,87,199,5,5,216,184,5,5,17,221,5,5,199,172,5,5,221,227,5,5,75,186,5,5,73,199,5,5,118,230,5,5,170,178,5,5,31,215,5,5,121,246,5,5,149,218,5,5,97,200,5,5,217,207,5,5,220,219,5,5,38,237,5,5,86,211,5,5,32,169,5,5,220,173,5,5,108,218,5,5,170,230,5,5,92,215,5,5,254,168,5,5,75,193,5,5,133,241,5,5,209,183,5,5,140,168,5,5,175,230,5,5,204,212,5,5,168,246,5,5,201,246,5,5,138,181,5,5,171,178,5,5,84,245,5,5,89,174,5,5,200,192,5,5,140,236,5,5,183,199,5,5,202,170,5,5,174,173,5,5,210,196,5,5,188,229,5,5,169,189,5,5,12,243,5,5,185,197,5,5,204,168,5,5,157,216,5,5,245,177,5,5,57,246,5,5,99,243,5,5,100,228,5,5,99,210,5,5,239,238,5,5,118,222,5,5,70,248,5,5,243,213,5,5,62,227,5,5,84,180,5,5,178,198,5,5,117,245,5,5,244,213,5,5,40,184,5,5,70,212,5,5,188,168,5,5,131,168,5,5,42,244,5,5,147,227,5,5,63,199,5,5,65,206,5,5,223,215,5,5,145,243,5,5,234,189,5,5,125,169,5,5,103,171,5,5,174,246,5,5,144,212,5,5,18,210,5,5,17,172,5,5,208,212,5,5,229,224,5,5,179,237,5,5,222,245,5,5,123,244,5,5,27,237,5,5,126,169,5,5,147,188,5,5,151,210,5,5,4,238,5,5,3,179,5,5,229,174,5,5,209,212,5,5,40,193,5,5,84,209,5,5,197,207,5,5,238,173,5,5,231,235,5,5,44,175,5,5,99,217,5,5,253,208,5,5,159,175,5,5,42,193,5,5,216,183,5,5,156,244,5,5,8,248,5,5,216,177,5,5,243,172,5,5,172,209,5,5,188,210,5,5,121,200,5,5,45,184,5,5,71,212,5,5,36,169,5,5,239,211,5,5,213,203,5,5,216,209,5,5,177,186,5,5,93,215,5,5,61,197,5,5,192,224,5,5,191,168,5,5,227,227,5,5,228,227,5,5,133,168,5,5,213,196,5,5,188,248,5,5,29,212,5,5,72,245,5,5,246,168,5,5,244,168,5,5,4,179,5,5,150,210,5,5,68,197,5,5,98,200,5,5,9,205,5,5,199,193,5,5,11,215,5,5,188,240,5,5,207,200,5,5,50,211,5,5,142,171,5,5,44,244,5,5,45,215,5,5,247,188,5,5,99,200,5,5,27,222,5,5,71,195,5,5,59,246,5,5,46,211,5,5,233,185,5,5,234,185,5,5,212,217,5,5,237,222,5,5,66,177,5,5,153,243,5,5,189,198,5,5,121,238,5,5,109,233,5,5,162,172,5,5,4,191,5,5,126,213,5,5,75,248,5,5,215,221,5,5,217,209,5,5,227,168,5,5,183,174,5,5,166,186,5,5,217,246,5,5,100,200,5,5,55,181,5,5,56,181,5,5,179,246,5,5,72,216,5,5,74,168,5,5,117,211,5,5,249,245,5,5,112,185,5,5,250,194,5,5,127,199,5,5,57,180,5,5,218,209,5,5,135,226,5,5,180,203,5,5,125,244,5,5,234,205,5,5,183,179,5,5,44,228,5,5,191,197,5,5,174,203,5,5,38,197,5,5,225,246,5,5,27,206,5,5,34,236,5,5,229,229,5,5,193,224,5,5,110,233,5,5,61,210,5,5,64,178,5,5,196,194,5,5,28,246,5,5,177,192,5,5,5,191,5,5,24,232,5,5,230,241,5,5,0,137,5,5,230,227,5,5,164,211,5,5,96,177,5,5,185,171,5,5,189,185,5,5,37,226,5,5,252,245,5,5,102,174,5,5,127,219,5,5,128,219,5,5,37,199,5,5,184,207,5,5,118,211,5,5,218,196,5,5,158,212,5,5,205,193,5,5,21,239,5,5,237,226,5,5,82,220,5,5,60,219,5,5,114,228,5,5,111,233,5,5,203,172,5,5,119,183,5,5,200,194,5,5,91,230,5,5,49,198,5,5,188,196,5,5,44,227,5,5,80,200,5,5,211,191,5,5,99,227,5,5,191,248,5,5,245,213,5,5,236,205,5,5,176,168,5,5,31,188,5,5,190,220,5,5,242,210,5,5,125,197,5,5,86,244,5,5,200,222,5,5,235,237,5,5,199,197,5,5,5,172,5,5,104,228,5,5,26,172,5,5,19,250,5,5,9,238,5,5,184,244,5,5,235,205,5,5,186,223,5,5,231,227,5,5,75,201,5,5,119,224,5,5,50,169,5,5,206,193,5,5,151,190,5,5,118,178,5,5,35,229,5,5,145,228,5,5,117,216,5,5,193,212,5,5,239,220,5,5,191,203,5,5,236,208,5,5,222,207,5,5,55,184,5,5,235,168,5,5,87,197,5,5,113,178,5,5,246,229,5,5,0,146,5,5,142,197,5,5,24,243,5,5,135,249,5,5,240,173,5,5,12,176,5,5,83,195,5,5,83,227,5,5,224,169,5,5,236,209,5,5,201,210,5,5,108,219,5,5,24,250,5,5,254,229,5,5,71,214,5,5,241,231,5,5,106,174,5,5,67,179,5,5,221,219,5,5,66,206,5,5,211,216,5,5,14,185,5,5,31,181,5,5,102,222,5,5,158,179,5,5,246,213,5,5,8,179,5,5,43,245,5,5,177,191,5,5,178,192,5,5,159,225,5,5,8,215,5,5,128,214,5,5,242,211,5,5,130,222,5,5,57,215,5,5,61,204,5,5,227,237,5,5,39,236,5,5,203,197,5,5,36,246,5,5,90,203,5,5,168,186,5,5,35,239,5,5,215,191,5,5,123,220,5,5,60,246,5,5,56,206,5,5,62,172,5,5,74,225,5,5,229,173,5,5,97,171,5,5,30,195,5,5,55,226,5,5,61,199,5,5,164,227,5,5,152,236,5,5,99,177,5,5,140,247,5,5,228,196,5,5,128,226,5,5,102,215,5,5,29,199,5,5,228,168,5,5,231,211,5,5,31,195,5,5,116,205,5,5,175,186,5,5,54,209,5,5,84,195,5,5,237,246,5,5,252,177,5,5,37,208,5,5,103,172,5,5,206,219,5,5,221,186,5,5,197,212,5,5,244,242,5,5,171,211,5,5,215,193,5,5,42,246,5,5,157,196,5,5,216,193,5,5,169,241,5,5,113,236,5,5,246,199,5,5,34,210,5,5,32,189,5,5,245,218,5,5,41,213,5,5,209,228,5,5,152,219,5,5,185,249,5,5,14,235,5,5,179,208,5,5,255,225,5,5,243,210,5,5,206,172,5,5,50,222,5,5,138,249,5,5,6,246,5,5,78,238,5,5,181,235,5,5,220,240,5,5,168,170,5,5,62,237,5,5,163,190,5,5,160,236,5,5,207,243,5,5,69,168,5,5,154,234,5,5,41,236,5,5,4,230,5,5,236,198,5,5,195,175,5,5,117,192,5,5,58,226,5,5,130,200,5,5,137,200,5,5,13,174,5,5,88,198,5,5,158,196,5,5,159,196,5,5,106,227,5,5,42,195,5,5,15,191,5,5,166,185,5,5,42,175,5,5,15,233,5,5,196,179,5,5,93,233,5,5,190,242,5,5,103,215,5,5,236,237,5,5,207,172,5,5,131,244,5,5,153,169,5,5,139,237,5,5,210,228,5,5,6,170,5,5,254,200,5,5,203,229,5,5,161,216,5,5,10,173,5,5,98,185,5,5,51,205,5,5,139,249,5,5,167,185,5,5,208,194,5,5,32,186,5,5,162,216,5,5,208,218,5,5,28,218,5,5,46,175,5,5,196,175,5,5,238,244,5,5,123,224,5,5,112,224,5,5,201,171,5,5,175,175,5,5,203,218,5,5,72,169,5,5,72,177,5,5,208,219,5,5,218,198,5,5,146,237,5,5,121,178,5,5,109,246,5,5,142,211,5,5,125,200,5,5,152,193,5,5,191,223,5,5,84,217,5,5,57,185,5,5,81,232,5,5,45,223,5,5,198,219,5,5,233,195,5,5,210,208,5,5,175,181,5,5,14,176,5,5,174,211,5,5,94,220,5,5,198,224,5,5,160,244,5,5,107,225,5,5,15,212,5,5,6,169,5,5,114,177,5,5,157,202,5,5,165,225,5,5,182,189,5,5,10,247,5,5,52,228,5,5,40,190,5,5,68,215,5,5,204,229,5,5,225,215,5,5,97,226,5,5,195,245,5,5,176,181,5,5,122,233,5,5,176,211,5,5,227,217,5,5,221,172,5,5,178,244,5,5,129,185,5,5,96,230,5,5,216,181,5,5,253,220,5,5,172,198,5,5,254,220,5,5,140,222,5,5,240,168,5,5,147,237,5,5,78,171,5,5,197,223,5,5,16,225,5,5,143,219,5,5,78,173,5,5,139,224,5,5,161,196,5,5,20,175,5,5,238,175,5,5,176,186,5,5,114,171,5,5,125,183,5,5,230,222,5,5,53,179,5,5,245,214,5,5,199,223,5,5,187,244,5,5,34,203,5,5,66,174,5,5,161,174,5,5,227,186,5,5,176,205,5,5,154,206,5,5,54,205,5,5,142,249,5,5,175,184,5,5,2,190,5,5,135,244,5,5,248,175,5,5,152,225,5,5,65,190,5,5,17,177,5,5,247,209,5,5,67,209,5,5,94,194,5,5,46,187,5,5,166,240,5,5,144,246,5,5,114,168,5,5,29,247,5,5,10,211,5,5,19,207,5,5,99,173,5,5,68,199,5,5,105,175,5,5,3,221,5,5,151,227,5,5,218,194,5,5,57,209,5,5,63,209,5,5,137,245,5,5,106,172,5,5,43,199,5,5,242,170,5,5,140,194,5,5,152,237,5,5,39,186,5,5,69,215,5,5,168,203,5,5,42,192,5,5,67,240,5,5,173,197,5,5,118,213,5,5,117,213,5,5,77,201,5,5,249,180,5,5,141,232,5,5,62,219,5,5,111,187,5,5,209,243,5,5,89,239,5,5,48,232,5,5,69,174,5,5,70,174,5,5,129,219,5,5,69,210,5,5,98,189,5,5,87,223,5,5,46,188,5,5,20,187,5,5,117,177,5,5,17,250,5,5,207,210,5,5,5,204,5,5,63,246,5,5,28,191,5,5,140,248,5,5,226,194,5,5,185,192,5,5,134,172,5,5,255,177,5,5,2,178,5,5,233,173,5,5,164,171,5,5,222,173,5,5,174,197,5,5,66,184,5,5,112,203,5,5,229,169,5,5,67,184,5,5,51,216,5,5,165,171,5,5,76,177,5,5,226,248,5,5,108,248,5,5,63,229,5,5,7,214,5,5,163,216,5,5,246,180,5,5,208,210,5,5,41,190,5,5,128,233,5,5,67,205,5,5,227,194,5,5,246,176,5,5,204,224,5,5,54,188,5,5,52,216,5,5,241,229,5,5,237,193,5,5,229,184,5,5,204,240,5,5,160,201,5,5,52,210,5,5,127,205,5,5,137,220,5,5,227,248,5,5,67,244,5,5,9,214,5,5,85,176,5,5,61,192,5,5,67,178,5,5,245,219,5,5,135,172,5,5,197,216,5,5,195,216,5,5,174,190,5,5,50,195,5,5,132,216,5,5,132,199,5,5,236,177,5,5,129,233,5,5,79,198,5,5,35,213,5,5,229,168,5,5,156,168,5,5,109,197,5,5,31,238,5,5,191,181,5,5,237,207,5,5,214,223,5,5,53,208,5,5,186,192,5,5,244,224,5,5,236,248,5,5,130,178,5,5,45,234,5,5,9,201,5,5,41,172,5,5,48,197,5,5,242,237,5,5,46,219,5,5,46,238,5,5,42,238,5,5,163,210,5,5,12,230,5,5,115,195,5,5,82,171,5,5,65,211,5,5,105,185,5,5,47,247,5,5,37,247,5,5,110,200,5,5,75,209,5,5,69,194,5,5,137,233,5,5,206,203,5,5,19,225,5,5,241,168,5,5,216,223,5,5,132,205,5,5,64,206,5,5,110,218,5,5,244,225,5,5,7,212,5,5,98,237,5,5,221,201,5,5,42,172,5,5,154,222,5,5,211,243,5,5,213,210,5,5,95,232,5,5,72,198,5,5,192,191,5,5,193,202,5,5,146,200,5,5,144,190,5,5,147,240,5,5,91,205,5,5,15,205,5,5,77,215,5,5,78,215,5,5,212,243,5,5,83,215,5,5,233,200,5,5,10,232,5,5,93,240,5,5,176,207,5,5,92,218,5,5,17,173,5,5,223,229,5,5,250,176,5,5,140,233,5,5,10,221,5,5,122,206,5,5,73,198,5,5,65,208,5,5,173,174,5,5,214,243,5,5,39,206,5,5,20,225,5,5,224,249,5,5,215,202,5,5,83,179,5,5,57,228,5,5,70,178,5,5,244,194,5,5,8,198,5,5,15,201,5,5,222,202,5,5,54,210,5,5,79,246,5,5,92,187,5,5,77,187,5,5,75,214,5,5,188,235,5,5,255,213,5,5,2,214,5,5,91,222,5,5,187,198,5,5,7,241,5,5,165,184,5,5,185,238,5,5,206,185,5,5,191,184,5,5,255,168,5,5,173,182,5,5,69,246,5,5,227,213,5,5,66,179,5,5,74,199,5,5,2,209,5,5,128,230,5,5,122,186,5,5,172,188,5,5,165,172,5,5,75,233,5,5,80,208,5,5,166,175,5,5,116,185,5,5,221,178,5,5,217,234,5,5,2,195,5,5,5,209,5,5,7,174,5,5,192,196,5,5,40,221,5,5,40,181,5,5,240,241,5,5,236,174,5,5,103,168,5,5,247,168,5,5,218,234,5,5,3,195,5,5,41,181,5,5,30,203,5,5,4,211,5,5,76,170,5,5,154,173,5,5,91,179,5,5,32,181,5,5,51,239,5,5,221,184,5,5,190,219,5,5,245,198,5,5,220,236,5,5,242,180,5,5,24,192,5,5,69,227,5,5,81,233,5,5,33,181,5,5,212,194,5,5,94,196,5,5,64,237,5,5,188,231,5,5,12,209,5,5,209,222,5,5,0,151,5,5,244,215,5,5,0,152,5,5,64,246,5,5,237,178,5,5,8,246,5,5,191,183,5,5,216,222,5,5,128,203,5,5,116,217,5,5,86,234,5,5,209,238,5,5,231,194,5,5,138,220,5,5,232,194,5,5,237,248,5,5,122,239,5,5,38,203,5,5,140,170,5,5,41,202,5,5,89,233,5,5,90,233,5,5,158,229,5,5,99,235,5,5,108,214,5,5,117,214,5,5,185,244,5,5,55,171,5,5,204,197,5,5,186,244,5,5,42,201,5,5,211,182,5,5,5,169,5,5,7,169,5,5,220,200,5,5,5,242,5,5,239,200,5,5,83,229,5,5,90,180,5,5,115,221,5,5,165,203,5,5,100,193,5,5,177,189,5,5,117,233,5,5,106,193,5,5,242,241,5,5,196,245,5,5,9,195,5,5,10,230,5,5,167,226,5,5,107,180,5,5,163,195,5,5,224,174,5,5,217,239,5,5,46,184,5,5,177,215,5,5,231,244,5,5,135,217,5,5,208,248,5,5,236,244,5,5,190,180,5,5,101,177,5,5,68,223,5,5,229,233,5,5,219,248,5,5,228,248,5,5,133,216,5,5,235,203,5,5,238,248,5,5,185,175,5,5,204,180,5,5,21,248,5,5,137,182,5,5,66,173,5,5,70,188,5,5,138,241,5,5,172,221,5,5,121,212,5,5,33,241,5,5,199,207,5,5,56,212,5,5,118,214,5,5,202,244,5,5,75,207,5,5,237,205,5,5,122,212,5,5,218,212,5,5,133,204,5,5,178,183,5,5,167,182,5,5,46,235,5,5,21,196,5,5,22,196,5,5,155,210,5,5,196,249,5,5,97,245,5,5,200,238,5,5,140,204,5,5,196,220,5,5,31,194,5,5,180,241,5,5,206,238,5,5,153,214,5,5,38,247,5,5,63,182,5,5,92,213,5,5,64,182,5,5,222,244,5,5,153,199,5,5,100,224,5,5,213,241,5,5,46,230,5,5,192,192,5,5,208,192,5,5,226,192,5,5,219,191,5,5,183,218,5,5,7,178,5,5,181,196,5,5,163,246,5,5,12,244,5,5,101,233,5,5,131,226,5,5,161,235,5,5,198,234,5,5,135,184,5,5,127,200,5,5,235,184,5,5,27,188,5,5,226,224,5,5,18,179,5,5,140,234,5,5,64,173,5,5,206,221,5,5,199,199,5,5,42,237,5,5,211,221,5,5,194,228,5,5,228,208,5,5,229,208,5,5,193,227,5,5,24,176,5,5,85,230,5,5,73,243,5,5,167,169,5,5,93,168,5,5,84,244,5,5,18,169,5,5,65,195,5,5,48,200,5,5,116,221,5,5,240,189,5,5,162,182,5,5,114,188,5,5,95,187,5,5,107,173,5,5,3,235,5,5,25,209,5,5,148,191,5,5,253,182,5,5,145,216,5,5,146,189,5,5,251,238,5,5,177,230,5,5,219,233,5,5,90,236,5,5,85,244,5,5,163,182,5,5,24,225,5,5,92,221,5,5,69,197,5,5,53,237,5,5,204,243,5,5,106,171,5,5,4,234,5,5,176,240,5,5,66,235,5,5,228,213,5,5,225,245,5,5,47,204,5,5,26,176,5,5,115,188,5,5,200,207,5,5,21,250,5,5,98,209,5,5,212,170,5,5,209,234,5,5,149,191,5,5,73,245,5,5,149,249,5,5,28,222,5,5,29,222,5,5,21,242,5,5,225,182,5,5,184,179,5,5,98,207,5,5,171,210,5,5,151,173,5,5,137,229,5,5,24,180,5,5,0,157,5,5,107,171,5,5,94,168,5,5,178,247,5,5,213,204,5,5,69,232,5,5,203,199,5,5,162,226,5,5,185,173,5,5,221,221,5,5,235,190,5,5,236,190,5,5,58,235,5,5,239,199,5,5,146,234,5,5,201,194,5,5,222,195,5,5,226,246,5,5,223,195,5,5,175,220,5,5,10,227,5,5,93,189,5,5,209,236,5,5,155,184,5,5,204,232,5,5,65,220,5,5,61,233,5,5,10,238,5,5,50,243,5,5,9,191,5,5,253,187,5,5,35,188,5,5,53,198,5,5,119,228,5,5,124,232,5,5,54,200,5,5,184,247,5,5,201,230,5,5,103,174,5,5,149,221,5,5,250,171,5,5,129,245,5,5,130,245,5,5,136,230,5,5,120,228,5,5,81,191,5,5,122,188,5,5,8,174,5,5,126,228,5,5,115,226,5,5,220,248,5,5,241,249,5,5,166,247,5,5,36,214,5,5,58,196,5,5,216,230,5,5,111,220,5,5,156,210,5,5,217,230,5,5,190,216,5,5,211,214,5,5,26,196,5,5,84,187,5,5,61,246,5,5,52,239,5,5,2,247,5,5,82,168,5,5,127,228,5,5,222,203,5,5,103,203,5,5,114,173,5,5,181,228,5,5,62,233,5,5,217,243,5,5,187,182,5,5,17,235,5,5,200,185,5,5,150,238,5,5,189,231,5,5,53,243,5,5,19,191,5,5,191,234,5,5,13,209,5,5,250,199,5,5,229,237,5,5,177,240,5,5,168,222,5,5,54,229,5,5,167,222,5,5,194,216,5,5,120,207,5,5,29,210,5,5,225,193,5,5,154,211,5,5,83,168,5,5,65,237,5,5,30,176,5,5,153,237,5,5,156,224,5,5,39,214,5,5,39,209,5,5,219,194,5,5,108,198,5,5,59,185,5,5,220,229,5,5,169,173,5,5,246,214,5,5,130,188,5,5,234,236,5,5,164,202,5,5,13,168,5,5,242,192,5,5,252,192,5,5,231,207,5,5,218,243,5,5,185,233,5,5,131,188,5,5,208,209,5,5,121,209,5,5,169,176,5,5,183,210,5,5,31,245,5,5,107,191,5,5,138,169,5,5,49,188,5,5,51,235,5,5,217,175,5,5,132,203,5,5,251,231,5,5,67,225,5,5,65,196,5,5,119,213,5,5,236,203,5,5,199,227,5,5,88,231,5,5,109,239,5,5,4,193,5,5,249,190,5,5,199,177,5,5,26,238,5,5,27,238,5,5,171,202,5,5,42,225,5,5,34,227,5,5,66,233,5,5,240,182,5,5,84,221,5,5,105,245,5,5,135,188,5,5,123,239,5,5,210,232,5,5,18,234,5,5,56,221,5,5,235,194,5,5,143,169,5,5,106,196,5,5,246,236,5,5,23,168,5,5,43,238,5,5,33,219,5,5,176,222,5,5,3,208,5,5,150,235,5,5,216,237,5,5,54,214,5,5,184,202,5,5,25,174,5,5,218,199,5,5,218,179,5,5,159,203,5,5,2,237,5,5,240,191,5,5,96,205,5,5,34,231,5,5,231,218,5,5,240,204,5,5,53,210,5,5,140,206,5,5,40,206,5,5,67,220,5,5,147,225,5,5,193,236,5,5,254,247,5,5,253,242,5,5,254,242,5,5,87,217,5,5,253,237,5,5,198,185,5,5,255,237,5,5,147,189,5,5,163,188,5,5,127,222,5,5,138,172,5,5,137,172,5,5,127,221,5,5,14,207,5,5,189,172,5,5,192,172,5,5,59,226,5,5,240,249,5,5,95,172,5,5,227,234,5,5,93,191,5,5,14,240,5,5,79,216,5,5,14,183,5,5,21,213,5,5,7,243,5,5,63,241,5,5,65,219,5,5,157,212,5,5,21,183,5,5,217,183,5,5,48,204,5,5,205,182,5,5,136,217,5,5,47,226,5,5,150,211,5,5,163,226,5,5,40,223,5,5,253,245,5,5,61,201,5,5,60,201,5,5,227,249,5,5,31,209,5,5,184,190,5,5,196,228,5,5,196,227,5,5,188,173,5,5,25,192,5,5,76,214,5,5,60,240,5,5,110,249,5,5,197,228,5,5,35,227,5,5,67,201,5,5,93,201,5,5,4,208,5,5,241,204,5,5,184,209,5,5,184,178,5,5,86,229,5,5,86,209,5,5,215,169,5,5,143,244,5,5,187,222,5,5,188,222,5,5,186,209,5,5,200,247,5,5,122,218,5,5,166,168,5,5,32,214,5,5,50,181,5,5,51,181,5,5,107,178,5,5,96,202,5,5,67,187,5,5,2,192,5,5,147,196,5,5,25,170,5,5,113,234,5,5,87,174,5,5,137,176,5,5,12,220,5,5,49,219,5,5,160,243,5,5,205,217,5,5,37,215,5,5,134,241,5,5,192,184,5,5,28,230,5,5,200,172,5,5,74,220,5,5,164,235,5,5,78,182,5,5,121,230,5,5,63,249,5,5,63,202,5,5,47,234,5,5,50,172,5,5,58,177,5,5,152,218,5,5,230,170,5,5,224,227,5,5,19,179,5,5,51,245,5,5,39,207,5,5,225,174,5,5,240,238,5,5,172,184,5,5,207,185,5,5,167,180,5,5,244,201,5,5,200,214,5,5,190,222,5,5,2,185,5,5,139,226,5,5,149,194,5,5,130,208,5,5,144,228,5,5,157,200,5,5,171,196,5,5,40,207,5,5,43,237,5,5,192,206,5,5,186,208,5,5,116,223,5,5,177,242,5,5,71,188,5,5,221,182,5,5,149,169,5,5,68,195,5,5,22,180,5,5,54,185,5,5,180,237,5,5,233,231,5,5,141,175,5,5,25,176,5,5,229,211,5,5,121,222,5,5,53,190,5,5,220,233,5,5,90,175,5,5,30,248,5,5,91,175,5,5,144,223,5,5,19,169,5,5,145,223,5,5,103,192,5,5,251,229,5,5,218,195,5,5,20,186,5,5,8,192,5,5,71,207,5,5,244,212,5,5,56,170,5,5,176,228,5,5,95,168,5,5,142,182,5,5,22,183,5,5,252,238,5,5,218,183,5,5,19,210,5,5,178,230,5,5,241,189,5,5,232,235,5,5,85,180,5,5,239,233,5,5,223,245,5,5,115,237,5,5,216,203,5,5,90,219,5,5,125,181,5,5,139,207,5,5,90,245,5,5,179,187,5,5,87,246,5,5,157,176,5,5,117,243,5,5,254,249,5,5,117,221,5,5,122,222,5,5,13,244,5,5,22,179,5,5,107,202,5,5,73,205,5,5,200,193,5,5,90,174,5,5,146,223,5,5,178,215,5,5,78,183,5,5,199,244,5,5,242,232,5,5,237,231,5,5,91,199,5,5,172,213,5,5,231,224,5,5,73,231,5,5,180,246,5,5,178,186,5,5,245,232,5,5,116,193,5,5,46,193,5,5,11,186,5,5,86,169,5,5,99,209,5,5,11,239,5,5,6,238,5,5,11,238,5,5,30,222,5,5,247,210,5,5,32,170,5,5,75,181,5,5,122,238,5,5,49,204,5,5,108,171,5,5,154,210,5,5,122,200,5,5,164,188,5,5,38,169,5,5,79,182,5,5,77,247,5,5,182,177,5,5,105,176,5,5,84,237,5,5,170,183,5,5,233,168,5,5,163,209,5,5,200,184,5,5,62,214,5,5,73,218,5,5,242,218,5,5,108,207,5,5,209,220,5,5,148,223,5,5,160,245,5,5,173,231,5,5,99,241,5,5,28,221,5,5,96,187,5,5,31,228,5,5,170,244,5,5,22,210,5,5,53,211,5,5,235,240,5,5,5,179,5,5,218,246,5,5,126,244,5,5,217,172,5,5,14,178,5,5,50,186,5,5,20,172,5,5,185,196,5,5,99,168,5,5,226,183,5,5,202,193,5,5,172,168,5,5,76,181,5,5,202,198,5,5,7,210,5,5,36,248,5,5,61,170,5,5,178,204,5,5,248,172,5,5,83,220,5,5,121,223,5,5,162,175,5,5,101,212,5,5,19,222,5,5,179,186,5,5,127,244,5,5,184,237,5,5,53,174,5,5,186,196,5,5,31,222,5,5,92,246,5,5,179,204,5,5,142,207,5,5,114,202,5,5,192,218,5,5,171,244,5,5,14,244,5,5,231,170,5,5,252,244,5,5,219,246,5,5,214,204,5,5,58,180,5,5,76,205,5,5,121,221,5,5,115,202,5,5,208,200,5,5,232,240,5,5,196,222,5,5,174,235,5,5,239,222,5,5,234,214,5,5,181,245,5,5,65,214,5,5,126,202,5,5,131,238,5,5,193,232,5,5,254,245,5,5,127,202,5,5,231,219,5,5,144,186,5,5,124,198,5,5,211,169,5,5,132,218,5,5,76,233,5,5,234,168,5,5,133,218,5,5,131,171,5,5,6,249,5,5,55,175,5,5,22,239,5,5,145,176,5,5,187,234,5,5,207,247,5,5,20,194,5,5,237,249,5,5,227,181,5,5,249,181,5,5,70,241,5,5,34,182,5,5,235,185,5,5,191,198,5,5,110,201,5,5,203,244,5,5,187,203,5,5,179,239,5,5,103,237,5,5,173,188,5,5,159,185,5,5,23,239,5,5,35,222,5,5,117,185,5,5,178,243,5,5,28,206,5,5,239,183,5,5,76,195,5,5,10,189,5,5,99,187,5,5,184,225,5,5,3,187,5,5,243,228,5,5,176,199,5,5,16,219,5,5,77,168,5,5,37,168,5,5,152,197,5,5,132,238,5,5,192,248,5,5,93,199,5,5,227,246,5,5,231,216,5,5,11,227,5,5,195,219,5,5,194,219,5,5,113,190,5,5,255,196,5,5,189,196,5,5,128,235,5,5,77,181,5,5,151,248,5,5,153,241,5,5,205,243,192,0,0,0,5,5,51,240,5,5,77,195,5,5,180,204,5,5,253,244,5,5,235,235,5,5,102,218,5,5,182,245,5,5,81,178,5,5,66,214,5,5,13,216,5,5,57,190,5,5,100,187,5,5,114,194,5,5,124,248,5,5,175,235,5,5,133,224,5,5,25,220,5,5,189,245,5,5,151,169,5,5,204,226,5,5,101,200,5,5,88,196,5,5,240,213,5,5,225,169,5,5,245,183,5,5,78,219,5,5,45,227,5,5,205,197,5,5,202,230,5,5,43,201,5,5,182,204,5,5,87,183,5,5,72,214,5,5,192,229,5,5,27,198,5,5,222,184,5,5,246,223,5,5,73,203,5,5,56,217,5,5,239,226,5,5,73,241,5,5,147,207,5,5,51,169,5,5,19,205,5,5,147,212,5,5,126,248,5,5,31,179,5,5,7,235,5,5,104,227,5,5,28,244,5,5,100,168,5,5,128,186,5,5,77,170,5,5,224,178,5,5,254,187,5,5,73,249,5,5,105,246,5,5,166,218,5,5,180,169,5,5,193,185,5,5,210,193,5,5,156,190,5,5,121,228,5,5,165,211,5,5,54,193,5,5,144,226,5,5,227,192,5,5,3,233,5,5,238,205,5,5,163,191,5,5,193,220,5,5,188,172,5,5,28,183,5,5,153,223,5,5,33,208,5,5,60,230,5,5,252,201,5,5,253,201,5,5,98,180,5,5,147,216,5,5,162,240,5,5,134,224,5,5,229,196,5,5,241,225,5,5,166,233,5,5,83,200,5,5,218,248,5,5,131,222,5,5,9,173,5,5,126,182,5,5,42,229,5,5,89,196,5,5,254,201,5,5,53,171,5,5,216,231,5,5,150,183,5,5,187,225,5,5,238,246,5,5,170,200,5,5,237,202,5,5,211,193,5,5,193,248,5,5,62,204,5,5,5,202,5,5,240,214,5,5,115,171,5,5,83,206,5,5,161,176,5,5,152,215,5,5,135,208,5,5,140,214,5,5,141,214,5,5,69,172,5,5,140,187,5,5,20,173,5,5,162,178,5,5,212,182,5,5,244,211,5,5,68,169,5,5,69,169,5,5,155,191,5,5,105,249,5,5,114,174,5,5,16,244,5,5,127,192,5,5,148,202,5,5,165,212,5,5,51,242,5,5,52,242,5,5,130,186,5,5,56,198,5,5,67,180,5,5,104,225,5,5,16,185,5,5,182,228,5,5,41,179,5,5,102,177,5,5,87,182,5,5,55,174,5,5,4,245,5,5,212,214,5,5,155,242,5,5,161,236,5,5,53,242,5,5,201,217,5,5,53,239,5,5,6,220,5,5,136,218,5,5,15,176,5,5,230,201,5,5,77,214,5,5,195,248,5,5,5,184,5,5,213,198,5,5,175,200,5,5,168,249,5,5,169,249,5,5,98,245,5,5,191,186,5,5,8,183,5,5,29,183,5,5,44,221,5,5,191,216,5,5,134,210,5,5,128,228,5,5,185,187,5,5,161,205,5,5,94,188,5,5,43,195,5,5,201,238,5,5,60,175,5,5,39,197,5,5,9,197,5,5,115,174,5,5,25,250,5,5,75,203,5,5,184,215,5,5,134,246,5,5,16,176,5,5,240,235,5,5,232,196,5,5,154,169,5,5,162,194,5,5,221,248,5,5,20,249,5,5,56,171,5,5,166,212,5,5,3,180,5,5,143,175,5,5,115,173,5,5,215,207,5,5,23,190,5,5,217,193,5,5,42,187,5,5,124,231,5,5,125,180,5,5,153,215,5,5,139,178,5,5,101,187,5,5,92,179,5,5,108,206,5,5,107,246,5,5,12,218,5,5,52,209,5,5,57,184,5,5,174,185,5,5,198,212,5,5,127,220,5,5,142,238,5,5,24,228,5,5,7,220,5,5,59,181,5,5,228,237,5,5,108,184,5,5,55,229,5,5,215,228,5,5,194,180,5,5,107,193,5,5,109,249,5,5,153,193,5,5,151,238,5,5,102,221,5,5,52,231,5,5,228,236,5,5,167,236,5,5,216,175,5,5,154,193,5,5,31,176,5,5,246,241,5,5,190,188,5,5,133,244,5,5,8,230,5,5,70,213,5,5,11,170,5,5,121,237,5,5,220,191,5,5,159,234,5,5,116,219,5,5,66,237,5,5,138,200,5,5,114,236,5,5,220,169,5,5,20,191,5,5,251,199,5,5,152,195,5,5,252,199,5,5,72,223,5,5,94,183,5,5,95,233,5,5,25,228,5,5,239,246,5,5,32,194,5,5,204,209,5,5,121,207,5,5,146,175,5,5,249,189,5,5,187,189,5,5,56,203,5,5,231,201,5,5,225,226,5,5,30,210,5,5,181,241,5,5,50,241,5,5,159,207,5,5,170,223,5,5,77,235,5,5,78,235,5,5,90,237,5,5,197,245,5,5,71,213,5,5,22,238,5,5,135,192,5,5,92,195,5,5,23,238,5,5,145,175,5,5,17,181,5,5,170,241,5,5,186,249,5,5,216,228,5,5,160,207,5,5,60,226,5,5,128,192,5,5,93,195,5,5,106,198,5,5,14,217,5,5,126,240,5,5,7,219,5,5,202,190,5,5,31,205,5,5,145,201,5,5,228,217,5,5,173,232,5,5,147,213,5,5,251,221,5,5,181,184,5,5,31,225,5,5,2,201,5,5,140,229,5,5,182,241,5,5,42,174,5,5,220,205,5,5,41,197,5,5,64,221,5,5,191,175,5,5,12,170,5,5,180,233,5,5,110,193,5,5,80,239,5,5,242,244,5,5,19,184,5,5,177,211,5,5,112,208,5,5,46,201,5,5,212,218,5,5,105,186,5,5,43,194,5,5,42,197,5,5,179,224,5,5,194,237,5,5,205,245,5,5,61,169,5,5,33,220,5,5,207,242,5,5,79,249,5,5,40,209,5,5,12,224,5,5,119,193,5,5,154,237,5,5,103,195,5,5,248,190,5,5,246,184,5,5,213,182,5,5,179,244,5,5,110,215,5,5,201,206,5,5,124,224,5,5,208,242,5,5,181,233,5,5,213,218,5,5,232,221,5,5,113,246,5,5,18,177,5,5,145,229,5,5,226,226,5,5,146,204,5,5,209,218,5,5,111,225,5,5,33,218,5,5,188,244,5,5,78,223,5,5,159,221,5,5,201,224,5,5,223,198,5,5,236,230,5,5,99,186,5,5,85,214,5,5,60,185,5,5,61,185,5,5,116,224,5,5,16,212,5,5,167,225,5,5,130,185,5,5,32,176,5,5,72,179,5,5,123,211,5,5,139,192,5,5,47,223,5,5,36,186,5,5,18,176,5,5,193,215,5,5,224,172,5,5,134,215,5,5,79,190,5,5,166,207,5,5,237,234,5,5,29,185,5,5,40,185,5,5,196,248,5,5,8,228,5,5,18,216,5,5,106,237,5,5,73,179,5,5,111,193,5,5,142,198,5,5,246,249,5,5,125,178,5,5,226,204,5,5,59,171,5,5,219,247,5,5,196,219,5,5,59,231,5,5,43,192,5,5,249,202,5,5,108,191,5,5,200,240,5,5,162,215,5,5,187,187,5,5,182,184,5,5,185,184,5,5,153,227,5,5,68,190,5,5,89,214,5,5,8,220,5,5,20,177,5,5,172,212,5,5,81,241,5,5,193,189,5,5,120,194,5,5,5,190,5,5,172,190,5,5,112,187,5,5,11,211,5,5,90,239,5,5,43,185,5,5,165,198,5,5,50,187,5,5,51,187,5,5,143,172,5,5,25,207,5,5,206,195,5,5,238,178,5,5,131,248,5,5,147,201,5,5,65,201,5,5,18,174,5,5,170,176,5,5,18,202,5,5,101,234,5,5,196,216,5,5,6,223,5,5,92,182,5,5,253,226,5,5,230,186,5,5,63,244,5,5,19,224,5,5,192,201,5,5,124,205,5,5,82,203,5,5,120,208,5,5,38,205,5,5,193,173,5,5,20,224,5,5,226,198,5,5,106,175,5,5,117,225,5,5,247,170,5,5,182,205,5,5,162,196,5,5,165,245,5,5,137,244,5,5,148,222,5,5,32,245,5,5,245,206,5,5,64,209,5,5,236,210,5,5,108,237,5,5,151,226,5,5,173,212,5,5,63,248,5,5,34,220,5,5,2,231,5,5,236,217,5,5,14,189,5,5,164,193,5,5,171,176,5,5,44,192,5,5,72,236,5,5,212,215,5,5,119,235,5,5,74,240,5,5,17,182,5,5,189,235,5,5,150,246,5,5,25,216,5,5,229,249,5,5,204,176,5,5,42,214,5,5,219,222,5,5,66,190,5,5,38,200,5,5,212,245,5,5,7,250,5,5,35,243,5,5,139,220,5,5,3,231,5,5,36,176,5,5,119,179,5,5,43,182,5,5,228,184,5,5,69,209,5,5,107,230,5,5,253,215,5,5,105,218,5,5,23,204,5,5,156,204,5,5,26,216,5,5,145,232,5,5,106,219,5,5,93,182,5,5,246,244,5,5,12,228,5,5,117,201,5,5,93,243,5,5,30,223,5,5,250,180,5,5,72,174,5,5,121,225,5,5,248,207,5,5,20,197,5,5,130,174,5,5,27,224,5,5,238,197,5,5,239,197,5,5,120,179,5,5,114,191,5,5,53,192,5,5,168,211,5,5,233,232,5,5,27,228,5,5,73,211,5,5,84,219,5,5,223,247,5,5,36,227,5,5,107,244,5,5,39,183,5,5,251,216,5,5,77,218,5,5,15,189,5,5,117,215,5,5,69,186,5,5,190,204,5,5,129,201,5,5,44,185,5,5,129,175,5,5,89,231,5,5,161,221,5,5,80,249,5,5,193,219,5,5,152,192,5,5,80,180,5,5,36,196,5,5,128,205,5,5,83,194,5,5,192,175,5,5,215,242,5,5,208,224,5,5,151,222,5,5,102,194,5,5,46,225,5,5,11,204,5,5,107,211,5,5,18,240,5,5,62,231,5,5,124,191,5,5,100,220,5,5,250,249,5,5,53,235,5,5,76,174,5,5,247,184,5,5,21,197,5,5,253,249,5,5,124,239,5,5,136,216,5,5,44,214,5,5,122,236,5,5,161,201,5,5,103,183,5,5,60,191,5,5,96,178,5,5,9,193,5,5,91,224,5,5,240,171,5,5,199,213,5,5,131,174,5,5,150,175,5,5,71,248,5,5,113,187,5,5,153,192,5,5,130,195,5,5,113,193,5,5,198,216,5,5,191,244,5,5,238,193,5,5,219,215,5,5,149,178,5,5,211,238,5,5,25,171,5,5,161,223,5,5,232,220,5,5,12,204,5,5,177,202,5,5,228,172,5,5,5,208,5,5,248,239,5,5,201,225,5,5,246,224,5,5,141,208,5,5,171,214,5,5,155,227,5,5,71,171,5,5,228,191,5,5,15,193,5,5,76,215,5,5,165,210,5,5,68,211,5,5,92,238,5,5,67,185,5,5,144,198,5,5,45,240,5,5,126,211,5,5,208,216,5,5,178,236,5,5,172,214,5,5,125,208,5,5,108,245,5,5,117,187,5,5,38,176,5,5,68,192,5,5,3,200,5,5,218,213,5,5,196,178,5,5,131,175,5,5,142,185,5,5,142,208,5,5,21,241,5,5,53,247,5,5,244,190,5,5,79,215,5,5,201,201,5,5,165,201,5,5,148,219,5,5,134,205,5,5,185,202,5,5,253,176,5,5,21,206,5,5,218,208,5,5,135,191,5,5,206,211,5,5,225,205,5,5,48,247,5,5,48,185,5,5,138,180,5,5,223,242,5,5,194,202,5,5,244,182,5,5,240,248,5,5,218,223,5,5,15,203,5,5,147,194,5,5,136,175,5,5,222,216,5,5,231,247,5,5,97,205,5,5,129,236,5,5,200,202,5,5,230,247,5,5,48,174,5,5,120,195,5,5,201,181,5,5,231,223,5,5,86,190,5,5,28,211,5,5,118,242,5,5,242,204,5,5,201,200,5,5,26,195,5,5,96,232,5,5,64,187,5,5,49,197,5,5,43,233,5,5,106,204,5,5,97,240,5,5,189,193,5,5,26,240,5,5,61,241,5,5,152,240,5,5,183,232,5,5,114,211,5,5,232,171,5,5,53,173,5,5,240,200,5,5,51,197,5,5,249,222,5,5,13,221,5,5,21,229,5,5,208,176,5,5,247,217,5,5,160,217,5,5,131,172,5,5,206,196,5,5,124,242,5,5,126,206,5,5,219,202,5,5,255,176,5,5,41,206,5,5,72,178,5,5,11,198,5,5,135,236,5,5,18,201,5,5,246,200,5,5,255,247,5,5,180,201,5,5,89,202,5,5,224,168,5,5,50,210,5,5,131,242,5,5,109,204,5,5,21,187,5,5,142,215,5,5,138,176,5,5,94,190,5,5,221,233,5,5,135,241,5,5,253,238,5,5,41,215,5,5,193,211,5,5,143,234,5,5,177,173,5,5,163,175,5,5,238,214,5,5,117,198,5,5,24,239,5,5,200,197,5,5,119,231,5,5,212,234,5,5,148,188,5,5,37,242,5,5,20,200,5,5,37,201,5,5,163,199,5,5,42,223,5,5,203,230,5,5,0,138,5,5,79,238,5,5,78,214,5,5,193,175,5,5,215,174,5,5,99,216,5,5,164,199,5,5,139,198,5,5,165,199,5,5,141,198,5,5,223,175,5,5,51,220,5,5,146,186,5,5,195,239,5,5,230,233,5,5,96,233,5,5,183,241,5,5,158,215,5,5,18,233,5,5,28,238,5,5,102,185,5,5,39,230,5,5,81,225,5,5,242,195,5,5,200,211,5,5,165,189,5,5,63,226,5,5,96,190,5,5,168,234,5,5,134,212,5,5,90,231,5,5,87,233,5,5,194,175,5,5,5,221,5,5,140,220,5,5,238,187,5,5,186,175,5,5,125,239,5,5,198,181,5,5,205,241,5,5,88,176,5,5,103,190,5,5,159,246,5,5,65,246,5,5,131,176,5,5,14,172,5,5,86,230,5,5,109,214,5,5,18,172,5,5,19,172,5,5,74,228,5,5,70,197,5,5,96,215,5,5,186,174,5,5,237,219,5,5,216,174,5,5,241,219,5,5,104,247,5,5,80,224,5,5,81,224,5,5,165,202,5,5,64,244,5,5,194,241,5,5,172,202,5,5,59,187,5,5,166,177,5,5,134,181,5,5,103,223,5,5,128,193,5,5,118,245,5,5,91,209,5,5,92,209,5,5,116,237,5,5,93,209,5,5,223,176,5,5,29,237,5,5,110,226,5,5,122,221,5,5,183,177,5,5,158,220,5,5,213,234,5,5,209,235,5,5,128,222,5,5,85,172,5,5,206,197,5,5,103,213,5,5,21,215,5,5,57,217,5,5,247,223,5,5,189,216,5,5,103,243,5,5,49,203,5,5,54,239,5,5,158,183,5,5,135,246,5,5,17,238,5,5,88,172,5,5,156,191,5,5,227,177,5,5,129,192,5,5,205,179,5,5,206,245,5,5,107,243,5,5,141,229,5,5,101,175,5,5,79,171,5,5,64,226,5,5,243,195,5,5,167,220,5,5,244,239,5,5,140,179,5,5,200,196,5,5,115,191,5,5,4,177,5,5,110,239,5,5,237,177,5,5,177,180,5,5,103,194,5,5,63,203,5,5,84,171,5,5,139,180,5,5,183,193,5,5,190,193,5,5,116,222,5,5,194,211,5,5,189,180,5,5,37,248,5,5,180,239,5,5,212,216,5,5,36,239,5,5,20,220,5,5,46,216,5,5,237,198,5,5,57,233,5,5,215,235,5,5,114,179,5,5,57,191,5,5,58,191,5,5,100,186,5,5,245,215,5,5,38,192,5,5,91,239,5,5,201,211,5,5,59,191,5,5,201,180,5,5,93,238,5,5,50,233,5,5,47,230,5,5,215,186,5,5,167,209,5,5,180,207,5,5,181,207,5,5,0,156,5,5,125,195,5,5,120,180,5,5,77,242,5,5,23,170,5,5,46,170,5,5,62,170,5,5,248,212,5,5,249,212,5,5,67,170,5,5,40,173,5,5,69,207,5,5,90,188,5,5,55,172,5,5,245,212,5,5,172,203,5,5,47,193,5,5,201,244,5,5,150,219,5,5,194,209,5,5,32,228,5,5,176,235,5,5,250,181,5,5,199,218,5,5,72,232,5,5,2,197,5,5,164,209,5,5,93,188,5,5,58,217,5,5,99,180,5,5,26,220,5,5,62,225,5,5,108,212,5,5,10,197,5,5,34,181,5,5,42,177,5,5,9,170,5,5,169,219,5,5,170,219,5,5,122,207,5,5,154,219,5,5,141,222,5,5,142,222,5,5,36,228,5,5,191,188,5,5,33,194,5,5,202,224,5,5,172,219,5,5,223,205,5,5,165,209,5,5,84,207,5,5,37,227,5,5,238,218,5,5,158,173,5,5,43,214,5,5,217,205,5,5,218,244,5,5,225,219,5,5,219,244,5,5,6,208,5,5,135,205,5,5,161,217,5,5,222,179,5,5,255,221,5,5,198,178,5,5,223,208,5,5,182,197,5,5,41,207,5,5,217,214,5,5,116,213,5,5,252,209,5,5,220,214,5,5,108,178,5,5,232,231,5,5,204,175,5,5,254,182,5,5,48,237,5,5,112,210,5,5,90,171,5,5,227,183,5,5,29,221,5,5,25,180,5,5,168,216,5,5,235,214,5,5,181,239,5,5,193,230,5,5,221,187,5,5,86,237,5,5,38,168,5,5,37,236,5,5,4,199,5,5,176,216,5,5,42,236,5,5,36,180,5,5,25,178,5,5,10,206,5,5,192,216,5,5,93,237,5,5,54,243,5,5,57,243,5,5,12,223,5,5,23,223,5,5,56,246,5,5,94,171,5,5,224,240,5,5,74,178,5,5,13,223,5,5,139,201,5,5,168,210,5,5,215,227,5,5,76,182,5,5,66,187,5,5,197,226,5,5,81,246,5,5,39,217,5,5,47,171,5,5,83,244,5,5,147,208,5,5,245,176,5,5,66,191,5,5,128,179,5,5,23,188,5,5,234,172,5,5,202,248,5,5,226,175,5,5,95,228,5,5,117,182,5,5,156,177,5,5,171,230,5,5,222,227,5,5,36,207,5,5,37,217,5,5,221,214,5,5,117,220,5,5,149,213,5,5,25,188,5,5,32,215,5,5,22,230,5,5,23,230,5,5,201,235,5,5,108,223,5,5,41,219,5,5,232,185,5,5,84,194,5,5,177,174,5,5,24,230,5,5,140,227,5,5,170,196,5,5,83,225,5,5,85,246,5,5,169,246,5,5,38,215,5,5,93,208,5,5,76,186,5,5,162,228,5,5,52,196,5,5,53,196,5,5,88,219,5,5,20,198,5,5,48,189,5,5,252,224,5,5,254,217,5,5,100,192,5,5,203,170,5,5,204,170,5,5,236,184,5,5,199,229,5,5,69,247,5,5,140,182,5,5,70,234,5,5,186,197,5,5,213,189,5,5,84,211,5,5,224,214,5,5,20,183,5,5,201,234,5,5,206,234,5,5,158,216,5,5,107,238,5,5,248,229,5,5,70,243,5,5,176,242,5,5,84,188,5,5,141,236,201,32,230,0,5,5,252,173,5,5,10,178,5,5,27,241,5,5,8,181,5,5,235,189,5,5,205,191,5,5,60,214,5,5,189,209,5,5,147,211,5,5,137,207,5,5,126,177,5,5,149,208,5,5,94,208,5,5,13,175,5,5,46,212,5,5,29,170,5,5,13,220,5,5,170,246,5,5,117,212,5,5,28,212,5,5,149,248,5,5,150,243,5,5,248,185,5,5,128,204,5,5,138,207,5,5,43,244,5,5,75,183,5,5,192,211,5,5,102,202,5,5,70,206,5,5,116,172,5,5,76,183,5,5,236,228,5,5,236,189,5,5,94,209,5,5,198,207,5,5,191,222,5,5,34,197,5,5,161,243,5,5,229,227,5,5,247,227,5,5,248,227,5,5,160,188,5,5,108,202,5,5,76,208,5,5,112,238,5,5,20,182,5,5,222,182,5,5,30,241,5,5,84,226,5,5,208,246,5,5,85,245,5,5,47,186,5,5,200,244,5,5,91,236,5,5,61,223,5,5,201,199,5,5,126,196,5,5,214,196,5,5,150,233,5,5,41,217,5,5,254,238,5,5,43,193,5,5,74,247,5,5,209,217,5,5,205,213,5,5,69,191,5,5,96,208,5,5,209,169,5,5,45,244,5,5,236,247,5,5,142,201,5,5,10,241,5,5,48,186,5,5,53,189,5,5,196,184,5,5,46,182,5,5,97,207,5,5,117,223,5,5,148,189,5,5,167,213,5,5,133,176,5,5,118,182,5,5,88,246,5,5,237,223,5,5,77,211,5,5,52,174,5,5,44,204,5,5,90,212,5,5,143,171,5,5,228,214,5,5,112,223,5,5,122,210,5,5,252,196,5,5,137,219,5,5,31,248,5,5,118,221,5,5,210,201,5,5,65,235,5,5,188,197,5,5,219,183,5,5,30,212,5,5,254,208,5,5,2,225,5,5,28,237,5,5,175,192,5,5,228,240,5,5,218,186,5,5,252,169,5,5,105,235,5,5,211,204,5,5,74,205,5,5,11,178,5,5,142,206,5,5,151,233,5,5,206,213,5,5,46,244,5,5,10,196,5,5,220,239,5,5,9,212,5,5,72,195,5,5,7,238,5,5,6,191,5,5,45,191,5,5,190,243,5,5,98,174,5,5,174,239,5,5,241,228,5,5,130,189,5,5,13,194,5,5,54,237,5,5,181,203,5,5,123,223,5,5,209,192,5,5,225,181,5,5,31,234,5,5,228,183,5,5,130,219,5,5,230,219,5,5,181,246,5,5,31,240,5,5,56,230,5,5,74,231,5,5,190,198,5,5,205,247,5,5,131,194,5,5,144,206,5,5,148,206,5,5,75,168,5,5,59,180,5,5,46,226,5,5,150,209,5,5,211,201,5,5,70,238,5,5,79,208,5,5,210,217,5,5,168,195,5,5,229,213,5,5,32,229,5,5,52,233,5,5,156,233,5,5,58,189,5,5,210,234,5,5,239,223,5,5,175,199,5,5,182,225,5,5,73,216,5,5,62,197,5,5,247,181,5,5,132,247,5,5,50,219,5,5,173,213,5,5,169,235,5,5,73,234,5,5,220,246,5,5,255,186,5,5,110,190,5,5,27,209,5,5,195,191,5,5,45,228,5,5,20,215,5,5,252,211,5,5,30,230,5,5,100,217,5,5,131,204,5,5,12,239,5,5,48,193,5,5,78,196,5,5,127,215,5,5,88,194,5,5,157,194,5,5,175,245,5,5,173,221,5,5,209,248,5,5,163,172,5,5,29,182,5,5,71,191,5,5,210,192,5,5,130,204,5,5,67,173,5,5,162,191,5,5,215,189,5,5,98,211,5,5,170,235,5,5,220,195,5,5,188,203,5,5,50,217,5,5,36,229,5,5,161,245,5,5,50,198,5,5,251,187,5,5,52,169,5,5,49,207,5,5,211,248,5,5,36,241,5,5,194,230,5,5,186,171,5,5,93,180,5,5,152,190,5,5,63,189,5,5,25,239,5,5,34,214,5,5,161,240,5,5,253,200,5,5,120,188,5,5,70,201,5,5,17,188,5,5,70,202,5,5,171,185,5,5,240,183,5,5,57,230,5,5,48,203,5,5,44,176,5,5,120,183,5,5,26,239,5,5,28,242,5,5,12,227,5,5,85,201,5,5,211,187,5,5,224,195,5,5,52,193,5,5,15,175,5,5,132,196,5,5,185,207,5,5,50,224,5,5,56,174,5,5,123,212,5,5,121,232,5,5,94,221,5,5,100,227,5,5,94,200,5,5,155,213,5,5,249,210,5,5,32,188,5,5,17,196,5,5,251,232,5,5,246,220,5,5,200,210,5,5,82,227,5,5,236,240,5,5,77,233,5,5,25,232,5,5,238,226,5,5,105,181,5,5,240,223,5,5,194,227,5,5,126,197,5,5,186,172,5,5,50,226,5,5,128,202,5,5,15,223,5,5,124,223,5,5,213,201,5,5,16,223,5,5,157,225,5,5,122,180,5,5,120,201,5,5,163,200,5,5,234,202,5,5,244,228,5,5,231,229,5,5,78,243,5,5,153,190,5,5,222,178,5,5,4,189,5,5,102,219,5,5,21,194,5,5,42,245,5,5,232,219,5,5,246,183,5,5,222,186,5,5,56,234,5,5,103,222,5,5,240,222,5,5,6,236,5,5,76,176,5,5,56,245,5,5,14,238,5,5,53,199,5,5,255,229,5,5,255,187,5,5,235,227,5,5,32,180,5,5,178,188,5,5,234,229,5,5,230,196,5,5,247,220,5,5,74,203,5,5,153,191,5,5,197,224,5,5,194,248,5,5,111,179,5,5,75,216,5,5,159,178,5,5,156,197,5,5,12,249,5,5,204,230,5,5,55,233,5,5,129,214,5,5,89,186,5,5,181,187,5,5,58,236,5,5,221,203,5,5,140,225,5,5,141,247,5,5,194,212,5,5,123,188,5,5,110,173,5,5,132,222,5,5,73,214,5,5,145,182,5,5,132,246,5,5,154,205,5,5,93,210,5,5,5,197,5,5,188,225,5,5,195,176,5,5,214,201,5,5,163,245,5,5,180,213,5,5,201,182,5,5,154,223,5,5,114,226,5,5,40,213,5,5,20,178,5,5,38,242,5,5,131,210,5,5,123,241,5,5,155,205,5,5,241,184,5,5,103,208,5,5,90,196,5,5,63,204,5,5,81,206,5,5,232,239,5,5,40,177,5,5,141,217,5,5,78,190,5,5,39,242,5,5,202,210,5,5,41,221,5,5,235,170,5,5,47,176,5,5,156,189,5,5,153,242,5,5,171,200,5,5,178,191,5,5,177,216,5,5,59,236,5,5,129,215,5,5,77,226,5,5,189,208,5,5,185,246,5,5,8,240,5,5,192,171,5,5,226,169,5,5,148,242,5,5,202,229,5,5,114,219,5,5,183,182,5,5,178,216,5,5,149,242,5,5,243,198,5,5,228,192,5,5,248,220,5,5,150,242,5,5,234,219,5,5,156,205,5,5,90,249,5,5,124,180,5,5,72,238,5,5,26,194,5,5,157,208,5,5,253,211,5,5,205,230,5,5,158,241,5,5,151,242,5,5,78,221,5,5,96,221,5,5,246,218,5,5,164,190,5,5,11,248,5,5,218,193,5,5,153,211,5,5,171,241,5,5,64,217,5,5,221,226,5,5,142,217,5,5,173,180,5,5,88,182,5,5,132,244,5,5,197,171,5,5,5,230,5,5,235,229,5,5,42,179,5,5,211,228,5,5,139,229,5,5,19,219,5,5,174,233,5,5,174,172,5,5,100,229,5,5,179,188,5,5,25,185,5,5,162,236,5,5,71,189,5,5,75,235,5,5,84,208,5,5,246,198,5,5,78,207,5,5,58,240,5,5,163,236,5,5,46,241,5,5,33,189,5,5,190,208,5,5,146,221,5,5,188,207,5,5,181,243,5,5,166,191,5,5,11,210,5,5,85,187,5,5,240,174,5,5,167,181,5,5,254,211,5,5,154,207,5,5,53,203,5,5,241,214,5,5,242,214,5,5,155,207,5,5,94,226,5,5,213,176,5,5,255,228,5,5,79,172,5,5,141,227,5,5,160,208,5,5,85,191,5,5,111,209,5,5,155,234,5,5,130,192,5,5,137,212,5,5,146,193,5,5,212,193,5,5,183,189,5,5,137,183,5,5,169,232,5,5,55,239,5,5,35,240,5,5,5,245,5,5,224,221,5,5,44,195,5,5,61,174,5,5,198,190,5,5,76,225,5,5,172,241,5,5,87,170,5,5,9,209,5,5,178,221,5,5,85,227,5,5,130,221,5,5,241,240,5,5,11,197,5,5,68,180,5,5,162,227,5,5,209,194,5,5,213,194,5,5,65,217,5,5,64,236,5,5,85,225,5,5,223,204,5,5,221,191,5,5,191,242,5,5,35,210,5,5,40,169,5,5,77,241,5,5,222,217,5,5,127,248,5,5,104,203,5,5,21,173,5,5,35,232,5,5,49,176,5,5,5,211,5,5,21,249,5,5,86,228,5,5,179,221,5,5,5,207,5,5,121,240,5,5,135,200,5,5,25,200,5,5,123,183,5,5,34,194,5,5,228,234,5,5,28,205,5,5,2,229,5,5,176,184,5,5,159,171,5,5,122,240,5,5,207,213,5,5,234,195,5,5,229,236,5,5,108,225,5,5,202,242,5,5,157,224,5,5,203,242,5,5,244,202,5,5,192,237,5,5,243,207,5,5,183,248,5,5,122,174,5,5,8,199,5,5,6,225,5,5,186,224,5,5,53,228,5,5,124,204,5,5,253,185,5,5,209,219,5,5,36,209,5,5,176,244,5,5,228,221,5,5,66,239,5,5,97,206,5,5,183,206,5,5,38,214,5,5,217,228,5,5,158,202,5,5,182,243,5,5,147,230,5,5,231,230,5,5,142,229,5,5,185,215,5,5,56,244,5,5,181,221,5,5,5,224,5,5,0,149,5,5,128,216,5,5,192,223,5,5,85,243,5,5,127,234,5,5,196,239,5,5,210,218,5,5,180,191,5,5,6,224,5,5,167,224,5,5,180,210,5,5,180,224,5,5,182,221,5,5,53,219,5,5,0,139,5,5,39,212,5,5,176,175,5,5,113,175,5,5,49,212,5,5,210,229,5,5,123,172,5,5,211,208,5,5,127,185,5,5,71,179,5,5,127,188,5,5,247,190,5,5,130,231,5,5,22,249,5,5,228,178,5,5,11,247,5,5,39,234,5,5,61,184,5,5,94,195,5,5,38,190,5,5,100,185,5,5,77,249,5,5,166,225,5,5,226,225,5,5,55,224,5,5,97,170,5,5,5,195,5,5,94,191,5,5,130,187,5,5,237,239,5,5,39,185,5,5,224,204,5,5,3,247,5,5,230,236,5,5,255,220,5,5,7,207,5,5,127,240,5,5,51,176,5,5,12,206,5,5,23,201,5,5,31,206,5,5,148,237,5,5,57,171,5,5,17,225,5,5,64,242,5,5,114,234,5,5,3,190,5,5,98,170,5,5,243,170,5,5,20,247,5,5,138,194,5,5,81,199,5,5,107,221,5,5,164,220,5,5,210,178,5,5,113,208,5,5,110,168,5,5,122,205,5,5,221,189,5,5,161,189,5,5,15,241,5,5,79,173,5,5,133,182,5,5,199,240,5,5,132,187,5,5,8,207,5,5,206,216,5,5,189,241,5,5,115,213,5,5,243,192,5,5,11,236,5,5,191,173,5,5,86,214,5,5,85,231,5,5,244,192,5,5,177,205,5,5,35,205,5,5,227,204,5,5,201,195,5,5,173,187,5,5,198,176,5,5,60,205,5,5,148,246,5,5,184,184,5,5,213,215,5,5,9,202,5,5,170,236,5,5,141,172,5,5,10,195,5,5,164,176,5,5,54,176,5,5,152,227,5,5,199,211,5,5,225,225,5,5,249,237,5,5,56,231,5,5,114,208,5,5,112,225,5,5,117,209,5,5,165,220,5,5,47,188,5,5,245,202,5,5,3,201,5,5,54,228,5,5,197,174,5,5,210,184,5,5,126,183,5,5,50,235,5,5,83,238,5,5,20,207,5,5,95,249,5,5,64,207,5,5,164,198,5,5,155,206,5,5,152,212,5,5,214,222,5,5,44,245,5,5,26,245,5,5,139,248,5,5,238,234,5,5,170,190,5,5,203,191,5,5,44,194,5,5,70,236,5,5,5,223,5,5,121,203,5,5,24,177,5,5,13,226,5,5,107,237,5,5,97,194,5,5,199,176,5,5,168,240,5,5,81,189,5,5,115,234,5,5,215,222,5,5,228,186,5,5,129,240,5,5,19,233,5,5,161,249,5,5,66,200,5,5,239,234,5,5,59,203,5,5,21,247,5,5,5,229,5,5,47,213,5,5,87,242,5,5,14,195,5,5,210,213,5,5,89,178,5,5,109,191,5,5,108,195,5,5,105,230,5,5,234,211,5,5,144,192,5,5,6,212,5,5,9,229,5,5,25,224,5,5,113,215,5,5,114,215,5,5,250,230,5,5,190,205,5,5,139,231,5,5,221,235,5,5,21,181,5,5,206,190,5,5,18,209,5,5,105,219,5,5,21,224,5,5,116,201,5,5,210,245,5,5,200,176,5,5,81,239,5,5,166,245,5,5,88,228,5,5,134,220,5,5,38,225,5,5,194,173,5,5,187,235,5,5,33,200,5,5,231,237,5,5,223,220,5,5,119,227,5,5,220,247,5,5,133,219,5,5,246,188,5,5,124,170,5,5,98,220,5,5,34,173,5,5,35,173,5,5,173,222,5,5,32,227,5,5,8,214,5,5,232,203,5,5,10,229,5,5,250,219,5,5,243,219,5,5,128,174,5,5,141,196,5,5,129,174,5,5,69,190,5,5,174,194,5,5,127,201,5,5,234,173,5,5,226,184,5,5,61,177,5,5,99,189,5,5,88,223,5,5,217,222,5,5,154,212,5,5,10,188,5,5,90,243,5,5,198,204,5,5,100,189,5,5,24,184,5,5,132,188,5,5,192,188,5,5,49,232,5,5,49,194,5,5,99,220,5,5,140,231,5,5,139,242,5,5,125,205,5,5,217,200,5,5,79,211,5,5,202,241,5,5,10,204,5,5,167,208,5,5,17,244,5,5,57,178,5,5,175,190,5,5,68,244,5,5,190,233,5,5,95,242,5,5,81,202,5,5,76,222,5,5,112,235,5,5,89,204,5,5,150,228,5,5,42,249,5,5,205,240,5,5,116,191,5,5,108,172,5,5,61,203,5,5,121,179,5,5,38,238,5,5,155,168,5,5,127,190,5,5,213,245,5,5,37,173,5,5,27,207,5,5,3,178,5,5,39,178,5,5,111,239,5,5,87,224,5,5,50,213,5,5,110,197,5,5,205,224,5,5,137,216,5,5,54,192,5,5,234,248,5,5,8,203,5,5,105,211,5,5,158,187,5,5,247,195,5,5,36,183,5,5,246,219,5,5,145,192,5,5,59,224,5,5,117,191,5,5,148,175,5,5,210,224,5,5,160,223,5,5,244,179,5,5,247,219,5,5,16,248,5,5,191,200,5,5,66,171,5,5,9,203,5,5,88,208,5,5,195,221,5,5,220,222,5,5,122,208,5,5,80,211,5,5,138,240,5,5,139,240,5,5,2,208,5,5,253,195,5,5,169,214,5,5,141,170,5,5,10,193,5,5,107,188,5,5,30,219,5,5,51,177,5,5,13,230,5,5,173,225,5,5,22,240,5,5,23,240,5,5,231,180,5,5,124,176,5,5,225,191,5,5,219,216,5,5,26,201,5,5,67,198,5,5,0,162,5,5,25,214,5,5,239,248,5,5,13,229,5,5,67,171,5,5,112,186,5,5,122,215,5,5,140,240,5,5,68,171,5,5,111,200,5,5,243,182,5,5,126,172,5,5,132,207,5,5,70,194,5,5,75,229,5,5,163,206,5,5,223,243,5,5,20,206,5,5,178,202,5,5,20,241,5,5,109,237,5,5,133,205,5,5,142,223,5,5,39,247,5,5,145,240,5,5,137,180,5,5,189,228,5,5,35,191,5,5,201,233,5,5,21,212,5,5,87,221,5,5,3,171,5,5,43,173,5,5,133,209,5,5,165,204,5,5,180,193,5,5,53,214,5,5,252,219,5,5,133,174,5,5,117,186,5,5,73,171,5,5,234,191,5,5,152,232,5,5,92,205,5,5,164,216,5,5,62,188,5,5,148,240,5,5,230,218,5,5,195,202,5,5,109,196,5,5,39,233,5,5,149,240,5,5,68,224,5,5,79,229,5,5,203,233,5,5,85,190,5,5,132,235,5,5,229,247,5,5,236,204,5,5,197,200,5,5,235,180,5,5,102,182,5,5,207,189,5,5,198,200,5,5,155,222,5,5,123,204,5,5,150,240,5,5,60,208,5,5,25,193,5,5,66,203,5,5,72,194,5,5,153,240,5,5,67,183,5,5,249,203,5,5,148,239,5,5,187,193,5,5,40,243,5,5,52,173,5,5,207,177,5,5,81,218,5,5,252,193,5,5,234,200,5,5,103,182,5,5,9,223,5,5,167,242,5,5,245,248,5,5,110,183,5,5,11,221,5,5,204,201,5,5,235,200,5,5,207,176,5,5,158,217,5,5,214,240,5,5,124,215,5,5,48,182,5,5,236,186,5,5,3,198,5,5,16,237,5,5,141,188,5,5,155,240,5,5,134,219,5,5,230,243,5,5,42,206,5,5,7,237,5,5,48,202,5,5,90,208,5,5,154,220,5,5,21,225,5,5,71,178,5,5,245,194,5,5,95,173,5,5,157,240,5,5,144,188,5,5,223,168,5,5,253,247,5,5,16,201,5,5,244,200,5,5,55,210,5,5,92,228,5,5,46,206,5,5,196,235,5,5,102,232,5,5,19,237,5,5,251,184,5,5,23,237,5,5,136,242,5,5,198,191,5,5,229,170,5,5,207,208,5,5,247,186,5,5,172,178,5,5,253,190,5,5,239,232,5,5,240,232,5,5,254,190,5,5,26,189,5,5,37,204,5,5,22,244,5,5,100,248,5,5,172,196,5,5,167,244,5,5,149,233,5,5,226,174,5,5,204,248,5,5,174,243,5,5,175,243,5,5,102,172,5,5,44,237,5,5,229,214,5,5,75,247,5,5,23,183,5,5,89,211,5,5,127,196,5,5,162,229,5,5,4,214,5,5,255,238,5,5,75,205,5,5,6,176,5,5,210,212,5,5,115,198,5,5,31,212,5,5,92,236,5,5,116,198,5,5,67,212,5,5,191,209,5,5,201,173,5,5,164,203,5,5,97,187,5,5,180,198,5,5,9,181,5,5,249,186,5,5,222,233,5,5,209,246,5,5,250,186,5,5,251,186,5,5,30,229,5,5,232,215,5,5,228,170,5,5,128,177,5,5,174,231,5,5,29,246,5,5,238,247,5,5,242,198,5,5,92,245,5,5,229,183,5,5,193,168,5,5,157,233,5,5,158,233,5,5,122,204,5,5,189,248,5,5,67,235,5,5,71,197,5,5,72,225,5,5,91,212,5,5,130,196,5,5,79,212,5,5,232,224,5,5,233,224,5,5,109,171,5,5,85,237,5,5,248,226,5,5,108,220,5,5,38,248,5,5,172,244,5,5,88,179,5,5,90,229,5,5,216,221,5,5,46,203,5,5,232,174,5,5,233,190,5,5,133,247,5,5,151,189,5,5,39,223,5,5,22,201,5,5,203,226,5,5,202,194,5,5,214,234,5,5,11,189,5,5,2,218,5,5,189,203,5,5,154,190,5,5,56,237,5,5,92,234,5,5,93,234,5,5,73,232,5,5,218,239,5,5,33,230,5,5,135,247,5,5,134,237,5,5,36,222,5,5,200,228,5,5,13,227,5,5,208,208,5,5,179,243,5,5,118,198,5,5,30,189,5,5,121,201,5,5,178,231,5,5,241,247,5,5,59,235,5,5,31,246,5,5,231,213,5,5,53,236,5,5,48,191,5,5,4,187,5,5,227,173,5,5,10,191,5,5,192,198,5,5,79,197,5,5,84,182,5,5,191,220,5,5,12,238,5,5,78,191,192,0,0,0,5,5,151,225,5,5,225,195,5,5,115,218,5,5,190,203,5,5,206,230,5,5,247,183,5,5,133,196,5,5,167,233,5,5,35,214,5,5,205,226,5,5,212,248,5,5,240,226,5,5,106,228,5,5,213,187,5,5,148,212,5,5,62,201,5,5,210,236,5,5,220,234,5,5,88,183,5,5,237,174,5,5,200,218,5,5,178,189,5,5,207,230,5,5,133,222,5,5,221,188,5,5,136,235,5,5,109,199,5,5,127,197,5,5,4,233,5,5,208,230,5,5,60,236,5,5,36,188,5,5,138,248,5,5,54,198,5,5,32,179,5,5,168,233,5,5,124,192,5,5,137,230,5,5,61,236,5,5,239,205,5,5,2,188,5,5,215,236,5,5,157,190,5,5,229,207,5,5,6,197,5,5,136,178,5,5,186,169,5,5,30,183,5,5,19,204,5,5,58,200,5,5,179,191,5,5,197,227,5,5,218,230,5,5,43,177,5,5,63,230,5,5,34,189,5,5,203,173,5,5,58,184,5,5,6,230,5,5,163,194,5,5,162,176,5,5,138,183,5,5,185,213,5,5,236,216,5,5,115,219,5,5,219,230,5,5,237,216,5,5,252,233,5,5,180,173,5,5,221,236,5,5,222,236,5,5,56,239,5,5,215,197,5,5,54,242,5,5,26,185,5,5,63,218,5,5,6,213,5,5,83,234,5,5,27,185,5,5,131,221,5,5,167,173,5,5,194,220,5,5,81,234,5,5,203,210,5,5,175,185,5,5,136,229,5,5,15,174,5,5,224,188,5,5,14,200,5,5,105,247,5,5,195,180,5,5,162,231,5,5,21,191,5,5,139,183,5,5,57,203,5,5,18,235,5,5,9,234,5,5,203,190,5,5,214,194,5,5,155,193,5,5,99,170,5,5,61,240,5,5,13,248,5,5,56,229,5,5,143,227,5,5,112,220,5,5,237,230,5,5,155,211,5,5,156,211,5,5,24,173,5,5,66,236,5,5,134,196,5,5,139,196,5,5,65,242,5,5,209,207,5,5,30,220,5,5,103,229,5,5,148,244,5,5,231,195,5,5,242,216,5,5,248,218,5,5,161,207,5,5,167,190,5,5,233,234,5,5,100,245,5,5,218,228,5,5,89,182,5,5,69,217,5,5,82,224,5,5,67,237,5,5,197,203,5,5,12,248,5,5,47,195,5,5,31,244,5,5,147,186,5,5,89,169,5,5,188,189,5,5,55,243,5,5,37,210,5,5,57,222,5,5,110,203,5,5,171,170,5,5,37,186,5,5,186,227,5,5,113,225,5,5,204,173,5,5,97,220,5,5,214,181,5,5,207,171,5,5,241,190,5,5,125,233,5,5,136,231,5,5,151,230,5,5,238,230,5,5,130,243,5,5,199,188,5,5,226,188,5,5,239,230,5,5,89,243,5,5,80,234,5,5,246,209,5,5,114,220,5,5,243,216,5,5,209,237,5,5,139,235,5,5,115,208,5,5,250,202,5,5,130,240,5,5,99,230,5,5,214,218,5,5,223,185,5,5,235,236,5,5,234,215,5,5,125,204,5,5,240,230,5,5,114,170,5,5,248,170,5,5,172,176,5,5,183,205,5,5,165,193,5,5,162,222,5,5,92,239,5,5,39,205,5,5,174,212,5,5,58,224,5,5,93,239,5,5,217,225,5,5,228,197,5,5,115,249,5,5,131,243,5,5,6,190,5,5,159,238,5,5,30,247,5,5,115,168,5,5,109,229,5,5,187,204,5,5,50,188,5,5,202,211,5,5,116,218,5,5,140,196,5,5,26,207,5,5,70,200,5,5,168,220,5,5,5,177,5,5,108,244,5,5,172,193,5,5,4,231,5,5,5,231,5,5,6,231,5,5,94,239,5,5,88,233,5,5,3,175,5,5,209,190,5,5,86,173,5,5,29,238,5,5,43,225,5,5,67,218,5,5,241,236,5,5,190,235,5,5,254,215,5,5,66,198,5,5,177,178,5,5,22,181,5,5,52,221,5,5,177,194,5,5,40,183,5,5,93,223,5,5,133,203,5,5,96,242,5,5,237,203,5,5,38,227,5,5,202,220,5,5,41,183,5,5,94,182,5,5,242,236,5,5,191,235,5,5,24,201,5,5,192,207,5,5,154,225,5,5,112,239,5,5,142,196,5,5,232,207,5,5,113,196,5,5,233,194,5,5,135,240,5,5,97,242,5,5,126,239,5,5,113,235,5,5,223,200,5,5,8,225,5,5,35,244,5,5,110,172,5,5,92,224,5,5,13,231,5,5,39,218,5,5,145,249,5,5,16,203,5,5,61,191,5,5,248,247,5,5,197,233,5,5,97,204,5,5,226,228,5,5,127,239,5,5,136,233,5,5,106,245,5,5,125,191,5,5,145,177,5,5,108,211,5,5,224,200,5,5,34,219,5,5,92,232,5,5,235,188,5,5,151,235,5,5,255,195,5,5,79,175,5,5,151,178,5,5,217,237,5,5,236,188,5,5,27,201,5,5,6,171,5,5,227,218,5,5,186,202,5,5,138,209,5,5,144,169,5,5,121,219,5,5,22,206,5,5,147,200,5,5,102,168,5,5,156,235,5,5,219,199,5,5,52,223,5,5,147,203,5,5,201,202,5,5,98,205,5,5,246,197,5,5,161,203,5,5,3,237,5,5,35,231,5,5,204,233,5,5,243,204,5,5,47,238,5,5,83,172,5,5,93,218,5,5,43,243,5,5,28,201,5,5,209,176,5,5,4,198,5,5,37,175,5,5,237,186,5,5,122,197,5,5,237,173,5,5,68,208,5,5,148,225,5,5,30,201,5,5,2,248,5,5,19,201,5,5,110,204,5,5,9,177,5,5,138,242,5,5,82,245,5,5,83,245,5,5,230,211,5,5,24,246,5,5,80,212,5,5,54,174,5,5,179,242,5,5,3,168,5,5,101,229,5,5,66,188,5,5,229,197,5,5,240,197,5,5,73,184,5,5,233,237,5,5,210,168,5,5,174,179,5,5,238,237,5,5,125,237,5,5,207,249,5,5,2,223,5,5,253,181,5,5,8,212,5,5,243,175,5,5,203,198,5,5,238,243,5,5,206,179,5,5,194,215,5,5,201,240,5,5,220,215,5,5,82,213,5,5,20,169,5,5,33,212,5,5,184,173,5,5,147,193,5,5,245,211,5,5,126,180,5,5,237,175,5,5,184,241,5,5,149,244,5,5,172,170,5,5,207,179,5,5,62,169,5,5,208,171,5,5,239,175,5,5,82,241,5,5,83,241,5,5,140,180,5,5,247,235,5,5,62,174,5,5,82,211,5,5,83,211,5,5,148,213,5,5,148,196,5,5,146,209,5,5,174,224,5,5,169,209,5,5,80,201,5,5,153,218,5,5,32,207,5,5,143,182,5,5,72,207,5,5,192,209,5,5,6,185,5,5,125,230,5,5,201,236,5,5,89,185,5,5,168,169,5,5,122,223,5,5,14,194,5,5,80,186,5,5,100,241,5,5,92,185,5,5,123,221,5,5,174,209,5,5,6,179,5,5,46,215,5,5,8,218,5,5,213,217,5,5,89,249,5,5,210,225,5,5,195,230,5,5,51,207,5,5,39,199,5,5,55,215,5,5,94,230,5,5,129,186,5,5,220,230,5,5,255,201,5,5,6,202,5,5,253,213,5,5,26,192,5,5,17,185,5,5,136,246,5,5,212,169,5,5,223,217,5,5,50,176,5,5,127,180,5,5,90,197,5,5,62,193,5,5,148,193,5,5,95,183,5,5,61,213,5,5,219,198,5,5,12,197,5,5,194,198,5,5,124,175,5,5,137,231,5,5,195,169,5,5,156,206,5,5,156,195,5,5,175,206,5,5,173,219,5,5,110,229,5,5,85,207,5,5,251,180,5,5,39,227,5,5,27,216,5,5,142,194,5,5,14,231,5,5,187,202,5,5,141,180,5,5,208,203,5,5,249,211,5,5,95,213,5,5,229,171,5,5,36,231,5,5,49,175,5,5,19,229,5,5,12,200,5,5,50,175,5,5,253,217,5,5,252,217,5,5,187,168,5,5,115,182,5,5,35,217,5,5,174,192,5,5,246,172,5,5,203,248,5,5,72,168,5,5,85,185,5,5,135,248,5,5,13,187,5,5,191,206,5,5,28,241,5,5,179,198,5,5,173,171,5,5,124,189,5,5,29,236,5,5,215,239,5,5,95,190,5,5,136,248,5,5,100,243,5,5,184,199,5,5,87,211,5,5,216,178,5,5,185,199,5,5,114,247,5,5,190,209,5,5,163,169,5,5,211,212,5,5,254,196,5,5,113,238,5,5,119,221,5,5,78,212,5,5,169,231,5,5,249,227,5,5,171,189,5,5,45,204,5,5,223,182,5,5,246,212,5,5,152,210,5,5,181,237,5,5,92,241,5,5,9,186,5,5,127,235,5,5,215,196,5,5,12,178,5,5,177,171,5,5,101,199,5,5,68,232,5,5,51,211,5,5,111,190,5,5,252,188,5,5,197,194,5,5,165,188,5,5,93,245,5,5,113,192,5,5,206,235,5,5,84,220,5,5,194,224,5,5,193,218,5,5,99,222,5,5,8,227,5,5,108,201,5,5,121,180,5,5,175,231,5,5,174,221,5,5,141,199,5,5,30,246,5,5,22,242,5,5,108,224,5,5,154,241,5,5,68,170,5,5,50,207,5,5,196,230,5,5,153,197,5,5,247,201,5,5,179,231,5,5,223,239,5,5,36,224,5,5,38,201,5,5,176,169,5,5,228,246,5,5,96,236,5,5,21,220,5,5,129,202,5,5,33,188,5,5,74,232,5,5,23,196,5,5,243,211,5,5,188,182,5,5,5,233,5,5,248,168,5,5,130,214,5,5,132,210,5,5,237,170,5,5,36,240,5,5,172,200,5,5,192,203,5,5,141,193,5,5,181,215,5,5,55,200,5,5,223,236,5,5,182,187,5,5,152,249,5,5,46,208,5,5,111,173,5,5,73,238,5,5,240,246,5,5,37,246,5,5,7,236,5,5,21,208,5,5,48,172,5,5,225,176,5,5,225,220,5,5,193,203,5,5,90,179,5,5,104,206,5,5,184,189,5,5,106,249,5,5,102,187,5,5,49,229,5,5,91,183,5,5,236,229,5,5,192,242,5,5,8,234,5,5,210,247,5,5,67,207,5,5,102,229,5,5,207,175,5,5,132,232,5,5,142,227,5,5,43,236,5,5,65,210,5,5,94,233,5,5,59,193,5,5,111,189,5,5,169,170,5,5,47,241,5,5,51,241,5,5,156,207,5,5,222,172,5,5,149,237,5,5,113,224,5,5,202,171,5,5,37,209,5,5,39,190,5,5,204,242,5,5,193,223,5,5,198,206,5,5,205,242,5,5,164,177,5,5,78,242,5,5,183,221,5,5,96,188,5,5,186,215,5,5,67,239,5,5,198,245,5,5,124,172,5,5,102,188,5,5,21,207,5,5,101,196,5,5,121,194,5,5,118,209,5,5,27,245,5,5,27,173,5,5,116,168,5,5,111,168,5,5,99,188,5,5,19,177,5,5,230,169,5,5,230,197,5,5,125,170,5,5,115,170,5,5,207,190,5,5,23,214,5,5,233,203,5,5,245,234,5,5,33,227,5,5,212,237,5,5,129,203,5,5,48,223,5,5,24,233,5,5,111,222,5,5,247,180,5,5,17,195,5,5,134,185,5,5,169,197,5,5,132,180,5,5,118,191,5,5,151,199,5,5,88,232,5,5,191,233,5,5,188,224,5,5,89,232,5,5,148,235,5,5,66,211,5,5,177,170,5,5,226,191,5,5,125,211,5,5,27,208,5,5,207,203,5,5,89,210,5,5,15,187,5,5,112,222,5,5,93,205,5,5,190,224,5,5,154,232,5,5,61,208,5,5,82,218,5,5,102,190,5,5,90,210,5,5,123,206,5,5,99,232,5,5,190,214,5,5,9,198,5,5,42,235,5,5,198,208,5,5,7,249,5,5,7,206,5,5,81,205,5,5,10,242,5,5,234,223,5,5,167,228,5,5,36,217,5,5,144,184,5,5,229,179,5,5,141,201,5,5,167,168,5,5,3,192,5,5,49,189,5,5,20,179,5,5,228,175,5,5,193,184,5,5,173,196,5,5,136,241,5,5,201,214,5,5,137,241,5,5,161,173,5,5,179,206,5,5,54,189,5,5,87,230,5,5,167,183,5,5,163,229,5,5,140,195,5,5,253,235,5,5,49,171,5,5,209,170,5,5,65,169,5,5,15,243,5,5,189,197,5,5,218,207,5,5,190,197,5,5,101,228,5,5,132,193,5,5,140,207,5,5,246,177,5,5,131,213,5,5,31,229,5,5,107,190,5,5,108,232,5,5,179,215,5,5,50,204,5,5,184,177,5,5,13,239,5,5,59,168,5,5,174,213,5,5,107,179,5,5,230,183,5,5,43,235,5,5,75,231,5,5,145,171,5,5,134,176,5,5,12,186,5,5,98,193,5,5,210,220,5,5,230,213,5,5,103,176,5,5,204,198,5,5,74,218,5,5,124,221,5,5,30,221,5,5,123,238,5,5,208,249,5,5,49,193,5,5,231,208,5,5,85,220,5,5,181,204,5,5,63,170,5,5,176,245,5,5,177,245,5,5,192,197,5,5,49,182,5,5,215,204,5,5,175,195,5,5,252,194,5,5,22,194,5,5,130,202,5,5,5,187,5,5,239,231,5,5,136,247,5,5,236,185,5,5,54,236,5,5,121,234,5,5,57,237,5,5,188,234,5,5,149,206,5,5,241,223,5,5,208,247,5,5,112,216,5,5,224,239,5,5,177,235,5,5,106,169,5,5,251,181,5,5,222,232,5,5,135,237,5,5,180,231,5,5,74,188,5,5,32,187,5,5,16,175,5,5,215,234,5,5,2,169,5,5,124,212,5,5,111,201,5,5,51,178,5,5,52,240,5,5,11,191,5,5,168,229,5,5,107,181,5,5,107,174,5,5,33,179,5,5,95,230,5,5,61,230,5,5,104,174,5,5,55,198,5,5,148,207,5,5,181,169,5,5,241,226,5,5,125,232,5,5,169,175,5,5,3,188,5,5,47,235,5,5,102,236,5,5,59,217,5,5,72,235,5,5,44,201,5,5,72,202,5,5,124,234,5,5,248,183,5,5,134,204,5,5,254,235,5,5,209,230,5,5,64,204,5,5,2,202,5,5,228,195,5,5,31,203,5,5,151,224,5,5,152,224,5,5,89,183,5,5,107,228,5,5,113,179,5,5,135,213,5,5,237,244,5,5,238,219,5,5,237,208,5,5,55,242,5,5,233,196,5,5,241,173,5,5,176,200,5,5,238,208,5,5,156,221,5,5,3,229,5,5,116,226,5,5,173,175,5,5,26,250,5,5,248,169,5,5,57,174,5,5,219,189,5,5,142,214,5,5,177,181,5,5,59,200,5,5,116,173,5,5,143,214,5,5,249,169,5,5,129,228,5,5,162,205,5,5,196,176,5,5,206,186,5,5,164,236,5,5,136,179,5,5,187,169,5,5,223,203,5,5,119,216,5,5,7,213,5,5,232,211,5,5,22,218,5,5,222,248,5,5,120,216,5,5,50,182,5,5,180,195,5,5,238,216,5,5,159,180,5,5,153,195,5,5,167,191,5,5,247,241,5,5,123,207,5,5,162,207,5,5,33,176,5,5,19,235,5,5,8,226,5,5,10,234,5,5,196,177,5,5,249,218,5,5,240,208,5,5,156,193,5,5,57,229,5,5,71,219,5,5,168,190,5,5,123,233,5,5,208,175,5,5,226,193,5,5,104,248,5,5,168,173,5,5,58,203,5,5,229,217,5,5,190,231,5,5,196,180,5,5,245,242,5,5,8,236,5,5,86,210,5,5,189,189,5,5,62,240,5,5,185,241,5,5,204,190,5,5,93,219,5,5,240,219,5,5,147,204,5,5,189,221,5,5,215,218,5,5,158,224,5,5,155,237,5,5,143,229,5,5,100,230,5,5,207,245,5,5,239,195,5,5,132,240,5,5,185,206,5,5,168,225,5,5,150,204,5,5,114,225,5,5,166,202,5,5,47,201,5,5,43,187,5,5,9,246,5,5,195,215,5,5,73,177,5,5,223,197,5,5,86,245,5,5,156,237,5,5,14,168,5,5,60,171,5,5,145,222,5,5,141,173,5,5,71,200,5,5,85,248,5,5,173,176,5,5,207,195,5,5,89,238,5,5,25,177,5,5,174,176,5,5,161,214,5,5,19,202,5,5,63,196,5,5,160,224,5,5,76,217,5,5,52,235,5,5,117,168,5,5,35,203,5,5,224,207,5,5,33,245,5,5,245,239,5,5,30,238,5,5,75,240,5,5,115,229,5,5,196,205,5,5,69,230,5,5,178,178,5,5,128,234,5,5,109,244,5,5,192,235,5,5,148,217,5,5,97,178,5,5,238,203,5,5,134,203,5,5,252,216,5,5,28,224,5,5,210,190,5,5,53,187,5,5,24,214,5,5,66,196,5,5,95,182,5,5,244,195,5,5,157,204,5,5,55,192,5,5,119,191,5,5,67,196,5,5,24,168,5,5,146,170,5,5,111,172,5,5,152,217,5,5,18,244,5,5,58,178,5,5,236,194,5,5,143,187,5,5,69,225,5,5,126,191,5,5,130,190,5,5,251,219,5,5,93,224,5,5,105,226,5,5,151,175,5,5,206,241,5,5,2,196,5,5,94,205,5,5,72,171,5,5,163,222,5,5,206,229,5,5,236,249,5,5,229,200,5,5,98,231,5,5,51,249,5,5,54,235,5,5,75,219,5,5,14,230,5,5,186,184,5,5,166,201,5,5,142,180,5,5,196,202,5,5,54,247,5,5,3,219,5,5,42,202,5,5,225,243,5,5,254,216,5,5,70,226,5,5,62,187,5,5,67,224,5,5,150,200,5,5,244,204,5,5,99,205,5,5,202,202,5,5,228,243,5,5,29,201,5,5,98,240,5,5,66,208,5,5,184,232,5,5,3,217,5,5,238,186,5,5,154,178,5,5,232,243,5,5,141,190,5,5,141,186,5,5,178,171,5,5,187,179,5,5,187,171,5,5,248,189,5,5,141,246,5,5,100,213,5,5,45,169,5,5,85,218,5,5,223,202,5,5,59,228,192,0,0,0,5,5,189,232,5,5,39,215,5,5,21,169,5,5,135,212,5,5,164,182,5,5,247,177,5,5,224,229,5,5,195,211,192,0,0,0,192,0,0,0,5,5,72,228,5,5,172,189,5,5,51,204,5,5,124,238,5,5,177,213,5,5,110,176,5,5,236,168,5,5,128,197,5,5,134,173,5,5,153,174,192,0,0,0,5,5,85,178,5,5,22,208,5,5,30,172,5,5,156,248,5,5,186,213,5,5,173,170,5,5,188,247,5,5,199,245,192,0,0,0,5,5,114,176,5,5,68,240,5,5,247,214,5,5,43,232,5,5,55,205,5,5,59,179,5,5,203,211,5,5,246,207,5,5,86,248,5,5,2,170,5,5,24,204,5,5,118,244,5,5,108,230,5,5,52,213,5,5,238,177,5,5,226,229,5,5,86,240,5,5,181,236,5,5,187,184,5,5,175,177,5,5,62,221,5,5,91,226,5,5,92,226,5,5,7,188,5,5,136,173,5,5,111,221,5,5,185,216,5,5,35,221,5,5,71,173,5,5,72,173,5,5,79,219,5,5,132,221,5,5,223,223,5,5,50,221,5,5,255,240,5,5,231,222,5,5,142,205,5,5,41,184,5,5,225,240,5,5,244,169,5,5,135,183,5,5,57,211,5,5,82,226,5,5,26,241,5,5,96,193,5,5,15,221,5,5,144,244,5,5,100,179,5,5,204,183,5,5,17,210,5,5,65,179,5,5,152,213,5,5,200,226,5,5,54,190,5,5,234,226,5,5,247,245,5,5,176,243,5,5,238,207,5,5,57,170,5,5,58,170,5,5,194,204,5,5,165,235,5,5,129,204,5,5,162,173,5,5,175,209,5,5,74,243,5,5,122,182,5,5,231,183,5,5,170,185,5,5,86,226,5,5,141,195,5,5,142,195,5,5,255,217,5,5,91,229,5,5,232,183,5,5,87,226,5,5,176,209,5,5,28,181,5,5,35,212,5,5,89,194,5,5,47,228,5,5,131,177,5,5,24,210,5,5,132,204,5,5,218,169,5,5,228,245,5,5,167,175,5,5,178,209,5,5,179,209,5,5,166,172,5,5,90,226,5,5,157,184,5,5,69,170,5,5,134,177,5,5,241,246,5,5,57,206,5,5,131,214,5,5,58,206,5,5,4,212,5,5,74,238,5,5,56,182,5,5,59,190,5,5,227,220,5,5,173,241,5,5,181,209,5,5,57,198,5,5,37,239,5,5,135,204,5,5,228,220,5,5,197,179,5,5,61,175,5,5,61,190,5,5,55,178,5,5,158,248,5,5,32,192,5,5,131,228,5,5,93,194,5,5,124,174,5,5,170,173,5,5,216,227,5,5,159,201,5,5,45,192,5,5,212,172,5,5,158,204,5,5,214,179,5,5,160,227,5,5,27,204,5,5,106,194,5,5,108,194,5,5,81,175,5,5,53,213,5,5,219,179,5,5,221,179,5,5,26,213,5,5,69,195,5,5,15,178,5,5,137,222,5,5,138,222,5,5,22,247,5,5,157,238,5,5,97,210,5,5,253,209,5,5,230,179,5,5,30,170,5,5,28,195,5,5,115,203,5,5,7,185,5,5,90,185,5,5,184,196,5,5,164,247,5,5,214,231,5,5,118,220,5,5,141,234,5,5,158,211,5,5,109,202,5,5,49,237,5,5,38,174,5,5,34,241,5,5,173,168,5,5,143,195,5,5,193,197,5,5,114,214,5,5,157,231,5,5,30,177,5,5,64,170,5,5,14,239,5,5,116,202,5,5,150,249,5,5,234,175,5,5,80,183,5,5,40,248,5,5,92,212,5,5,250,212,5,5,202,184,5,5,208,198,5,5,93,176,5,5,91,235,5,5,100,246,5,5,250,177,5,5,229,245,5,5,30,182,5,5,186,246,5,5,220,225,5,5,219,196,5,5,118,192,5,5,231,182,5,5,220,196,5,5,87,220,5,5,53,193,5,5,44,235,5,5,174,244,5,5,132,171,5,5,250,210,5,5,70,246,5,5,189,240,5,5,84,196,5,5,219,217,5,5,221,225,5,5,250,226,5,5,138,238,5,5,32,195,5,5,43,229,5,5,51,191,5,5,13,225,5,5,87,237,5,5,238,174,5,5,242,246,5,5,248,188,5,5,18,236,5,5,206,207,5,5,102,180,5,5,95,196,5,5,7,233,5,5,50,227,5,5,86,227,5,5,55,207,5,5,31,213,5,5,8,233,5,5,37,224,5,5,182,183,5,5,149,202,5,5,4,247,5,5,82,177,5,5,43,181,5,5,140,230,5,5,28,220,5,5,87,201,5,5,105,222,5,5,165,190,5,5,36,232,5,5,68,239,5,5,241,169,5,5,58,245,5,5,207,186,5,5,32,225,5,5,237,182,5,5,173,206,5,5,225,203,5,5,162,174,5,5,236,192,5,5,119,226,5,5,45,168,5,5,244,174,5,5,100,170,5,5,101,170,5,5,241,208,5,5,133,186,5,5,211,180,5,5,96,181,5,5,58,229,5,5,125,241,5,5,45,177,5,5,20,236,5,5,246,247,5,5,229,176,5,5,228,177,5,5,103,221,5,5,107,247,5,5,250,174,5,5,79,242,5,5,113,189,5,5,97,183,5,5,139,200,5,5,69,237,5,5,19,174,5,5,111,227,5,5,248,241,5,5,155,187,5,5,171,229,5,5,171,190,5,5,114,199,5,5,112,193,5,5,201,239,5,5,82,239,5,5,61,205,5,5,224,219,5,5,231,197,5,5,255,174,5,5,251,230,5,5,195,186,5,5,95,239,5,5,146,229,5,5,146,192,5,5,240,175,5,5,9,169,5,5,100,191,5,5,151,204,5,5,4,173,5,5,109,222,5,5,161,211,5,5,74,179,5,5,159,177,5,5,44,171,5,5,18,225,5,5,64,245,5,5,250,170,5,5,109,221,5,5,237,176,5,5,137,206,5,5,113,239,5,5,156,249,5,5,47,175,5,5,65,245,5,5,198,244,5,5,221,223,5,5,248,219,5,5,16,218,5,5,169,179,5,5,63,205,5,5,64,205,5,5,126,209,5,5,138,216,5,5,19,240,5,5,169,240,5,5,215,190,5,5,32,184,5,5,136,203,5,5,229,204,5,5,28,216,5,5,160,204,5,5,94,201,5,5,56,232,5,5,241,182,5,5,239,177,5,5,40,240,5,5,233,188,5,5,0,154,5,5,13,169,5,5,57,232,5,5,196,186,5,5,118,187,5,5,119,211,5,5,110,242,5,5,17,229,5,5,134,239,5,5,209,240,5,5,37,213,5,5,199,201,5,5,179,202,5,5,177,222,5,5,44,178,5,5,13,204,5,5,123,179,5,5,14,204,5,5,195,200,5,5,45,171,5,5,20,193,5,5,170,174,5,5,99,237,5,5,62,235,5,5,52,195,5,5,55,246,5,5,134,207,5,5,209,202,5,5,242,191,5,5,202,200,5,5,78,192,5,5,80,179,5,5,63,235,5,5,175,240,5,5,27,240,5,5,164,217,5,5,218,240,5,5,22,225,5,5,84,179,5,5,141,206,5,5,49,206,5,5,50,206,5,5,140,171,5,5,144,171,5,5,78,187,5,5,194,168,5,5,21,182,5,5,173,178,5,5,22,182,5,5,230,168,5,5,231,168,5,5,61,216,5,5,104,192,5,5,23,244,5,5,24,244,5,5,103,207,5,5,168,178,5,5,224,211,5,5,29,195,5,5,187,190,5,5,28,187,5,5,135,176,5,5,53,204,5,5,32,185,5,5,101,209,5,5,114,192,5,5,204,194,5,5,195,212,5,5,36,185,5,5,0,147,5,5,109,181,5,5,125,188,5,5,40,188,5,5,88,170,5,5,130,228,5,5,64,175,5,5,155,215,5,5,232,230,5,5,0,153,5,5,65,233,5,5,133,188,5,5,250,190,5,5,134,188,5,5,69,244,5,5,27,177,5,5,136,188,5,5,69,233,5,5,32,238,5,5,216,213,5,5,138,188,5,5,238,194,5,5,26,168,5,5,21,234,5,5,252,190,5,5,203,202,5,5,108,213,5,5,213,188,5,5,23,195,5,5,240,212,5,5,217,184,5,5,93,212,5,5,182,247,5,5,28,198,5,5,66,217,5,5,59,177,5,5,29,218,5,5,136,244,5,5,106,186,5,5,32,198,5,5,33,198,5,5,191,247,5,5,139,244,5,5,113,186,5,5,81,245,5,5,143,180,5,5,249,208,5,5,202,214,5,5,110,240,5,5,139,241,5,5,150,169,5,5,74,245,5,5,78,247,5,5,136,212,5,5,166,188,5,5,113,240,5,5,174,188,5,5,27,239,5,5,149,171,5,5,115,228,5,5,175,188,5,5,96,168,5,5,234,244,5,5,100,236,5,5,138,193,5,5,180,188,5,5,124,241,5,5,229,199,5,5,127,182,5,5,174,184,5,5,137,178,5,5,10,212,5,5,59,184,5,5,67,217,5,5,151,221,5,5,140,178,5,5,168,205,5,5,239,244,5,5,244,207,5,5,20,202,5,5,202,195,5,5,240,234,5,5,162,193,5,5,17,212,5,5,231,186,5,5,52,168,5,5,87,205,5,5,197,234,5,5,154,247,5,5,98,178,5,5,55,168,5,5,118,186,5,5,204,202,5,5,187,209,5,5,231,179,5,5,237,184,5,5,142,234,5,5,42,207,5,5,195,228,5,5,124,246,5,5,230,214,5,5,230,242,5,5,88,226,5,5,161,232,5,5,2,181,5,5,223,233,5,5,117,231,5,5,34,212,5,5,81,183,5,5,10,181,5,5,232,208,5,5,28,209,5,5,143,221,5,5,32,222,5,5,75,243,5,5,152,208,5,5,3,212,5,5,165,182,5,5,187,208,5,5,218,177,5,5,143,207,5,5,109,207,5,5,148,198,5,5,114,232,5,5,65,199,5,5,37,222,5,5,31,237,5,5,32,246,5,5,185,237,5,5,36,221,5,5,212,191,5,5,157,177,5,5,230,245,5,5,205,199,5,5,221,196,5,5,95,221,5,5,133,238,5,5,144,221,5,5,203,207,5,5,102,209,5,5,41,248,5,5,183,245,5,5,184,245,5,5,131,208,5,5,38,222,5,5,145,242,5,5,188,179,5,5,175,210,5,5,91,249,5,5,92,249,5,5,202,173,5,5,158,244,5,5,69,235,5,5,111,171,5,5,81,208,5,5,217,204,5,5,53,224,5,5,16,227,5,5,39,208,5,5,224,179,5,5,34,179,5,5,100,210,5,5,32,209,5,5,73,235,5,5,154,174,5,5,207,199,5,5,157,197,5,5,151,209,5,5,2,246,5,5,170,226,5,5,58,237,5,5,153,236,5,5,108,209,5,5,121,247,5,5,103,209,5,5,170,245,5,5,38,246,5,5,157,207,5,5,135,224,5,5,221,220,5,5,41,188,5,5,166,190,5,5,43,179,5,5,142,174,5,5,83,177,5,5,159,197,5,5,110,181,5,5,6,207,5,5,128,232,5,5,221,230,5,5,95,200,5,5,187,200,5,5,219,193,5,5,113,220,5,5,120,226,5,5,141,187,5,5,132,228,5,5,240,201,5,5,58,222,5,5,244,216,5,5,198,203,5,5,9,236,5,5,30,196,5,5,46,246,5,5,10,202,5,5,188,200,5,5,83,224,5,5,163,197,5,5,21,223,5,5,56,224,5,5,117,180,5,5,102,170,5,5,45,213,5,5,205,209,5,5,158,191,5,5,181,210,5,5,169,205,5,5,69,239,5,5,95,195,5,5,63,172,5,5,167,247,5,5,190,241,5,5,159,191,5,5,199,206,5,5,217,231,5,5,43,234,5,5,25,191,5,5,142,187,5,5,183,243,5,5,64,176,5,5,157,193,5,5,210,207,5,5,161,180,5,5,114,189,5,5,21,235,5,5,129,226,5,5,254,199,5,5,41,185,5,5,95,219,5,5,124,207,5,5,241,234,5,5,39,182,5,5,11,230,5,5,180,208,5,5,94,175,5,5,29,200,5,5,40,208,5,5,221,229,5,5,84,199,5,5,92,178,5,5,244,173,5,5,227,198,5,5,213,223,5,5,164,231,5,5,247,216,5,5,127,209,5,5,43,209,5,5,246,206,5,5,22,223,5,5,70,244,5,5,66,245,5,5,114,239,5,5,141,179,5,5,69,199,5,5,128,209,5,5,31,223,5,5,178,176,5,5,22,205,5,5,165,174,5,5,247,206,5,5,104,213,5,5,73,174,5,5,54,187,5,5,249,207,5,5,152,228,5,5,100,219,5,5,120,213,5,5,15,231,5,5,29,216,5,5,26,214,5,5,18,248,5,5,193,178,5,5,85,221,5,5,32,223,5,5,170,203,5,5,236,173,5,5,58,232,5,5,152,198,5,5,33,238,5,5,250,234,5,5,41,227,5,5,158,209,5,5,241,203,5,5,114,187,5,5,64,194,5,5,44,238,5,5,27,168,5,5,131,191,5,5,220,244,5,5,244,193,5,5,119,186,5,5,109,245,5,5,154,217,5,5,175,207,5,5,96,175,5,5,226,219,5,5,74,211,5,5,153,235,5,5,220,237,5,5,230,191,5,5,7,208,5,5,143,208,5,5,142,213,5,5,144,208,5,5,202,201,5,5,220,199,5,5,253,197,5,5,35,235,5,5,145,208,5,5,243,191,5,5,101,205,5,5,13,208,5,5,245,204,5,5,239,186,5,5,13,207,5,5,101,231,5,5,190,175,5,5,149,225,5,5,155,198,5,5,22,248,5,5,70,207,5,5,169,195,5,5,176,195,5,5,56,242,5,5,44,223,5,5,57,244,5,5,12,198,5,5,241,221,5,5,186,238,5,5,71,221,5,5,89,246,5,5,107,189,5,5,73,221,5,5,159,240,5,5,36,197,5,5,142,247,5,5,205,194,5,5,84,177,5,5,188,180,5,5,0,159,5,5,237,194,5,5,110,244,5,5,4,243,5,5,220,168,5,5,203,221,5,5,250,179,5,5,225,214,5,5,6,192,5,5,64,249,5,5,197,184,5,5,126,230,5,5,119,245,5,5,89,199,5,5,8,185,5,5,112,231,5,5,80,182,5,5,202,199,5,5,78,178,5,5,180,206,5,5,18,220,5,5,219,177,5,5,194,197,5,5,117,202,5,5,171,183,5,5,233,208,5,5,126,181,5,5,209,191,5,5,158,198,5,5,182,246,5,5,233,214,5,5,134,198,5,5,144,195,5,5,50,171,5,5,142,181,5,5,35,236,5,5,212,212,5,5,120,245,5,5,97,236,5,5,74,224,5,5,80,248,5,5,215,173,5,5,11,181,5,5,63,228,5,5,206,236,5,5,170,195,5,5,82,183,5,5,35,182,5,5,104,209,5,5,159,244,5,5,222,196,5,5,29,242,5,5,209,198,5,5,252,227,5,5,253,227,5,5,7,179,5,5,195,244,5,5,185,245,5,5,151,181,5,5,241,183,5,5,180,209,5,5,42,248,5,5,129,200,5,5,166,170,5,5,138,211,5,5,156,213,5,5,146,212,5,5,54,204,5,5,94,212,5,5,144,201,5,5,232,213,5,5,150,171,5,5,233,213,5,5,37,221,5,5,162,243,5,5,4,168,5,5,131,202,5,5,218,204,5,5,14,227,5,5,3,241,5,5,132,202,5,5,206,199,5,5,142,175,5,5,38,199,5,5,220,217,5,5,211,247,5,5,177,199,5,5,36,187,5,5,158,181,5,5,63,210,5,5,22,215,5,5,157,205,5,5,44,229,5,5,5,168,5,5,154,185,5,5,126,232,5,5,36,234,5,5,103,236,5,5,66,180,5,5,149,212,5,5,210,230,5,5,112,201,5,5,67,189,5,5,43,223,5,5,182,231,5,5,237,215,5,5,223,216,5,5,248,228,5,5,14,216,5,5,38,239,5,5,40,199,5,5,9,233,5,5,24,218,5,5,98,173,5,5,48,201,5,5,35,189,5,5,174,241,5,5,10,233,5,5,186,231,5,5,61,207,5,5,150,206,5,5,242,240,5,5,218,173,5,5,230,173,5,5,7,230,5,5,136,204,5,5,178,240,5,5,52,207,5,5,25,218,5,5,224,236,5,5,29,220,5,5,85,200,5,5,57,242,5,5,241,174,5,5,24,190,5,5,118,205,5,5,28,174,5,5,220,193,5,5,160,211,5,5,157,223,5,5,223,248,5,5,42,199,5,5,168,212,5,5,67,236,5,5,159,248,5,5,54,199,5,5,108,174,5,5,147,214,5,5,153,249,5,5,213,216,5,5,226,203,5,5,31,198,5,5,160,171,5,5,5,180,5,5,242,208,5,5,138,179,5,5,158,193,5,5,225,188,5,5,170,205,5,5,11,168,5,5,84,224,5,5,30,218,5,5,232,201,5,5,155,169,5,5,238,239,5,5,226,180,5,5,97,230,5,5,148,214,5,5,93,206,5,5,133,228,5,5,94,179,5,5,68,210,5,5,191,169,5,5,244,214,5,5,29,174,5,5,72,219,5,5,116,236,5,5,209,179,5,5,7,180,5,5,128,180,5,5,6,228,5,5,104,195,5,5,64,240,5,5,193,170,5,5,10,199,5,5,116,170,5,5,105,229,5,5,49,223,5,5,208,245,5,5,198,180,5,5,193,231,5,5,90,178,5,5,10,226,5,5,88,210,5,5,199,212,5,5,234,193,5,5,54,179,5,5,79,225,5,5,227,172,5,5,100,226,5,5,248,214,5,5,19,181,5,5,98,183,5,5,80,235,5,5,36,218,5,5,37,218,5,5,186,206,5,5,225,185,5,5,209,210,5,5,22,224,5,5,115,181,5,5,116,176,5,5,152,204,5,5,89,223,5,5,118,225,5,5,76,169,5,5,42,190,5,5,228,212,5,5,64,229,5,5,199,219,5,5,193,201,5,5,75,177,5,5,102,226,5,5,195,231,5,5,252,230,5,5,3,203,5,5,18,212,5,5,11,229,5,5,110,243,5,5,212,180,5,5,139,245,5,5,228,198,5,5,131,200,5,5,87,248,5,5,162,237,5,5,135,187,5,5,90,248,5,5,38,173,5,5,253,214,5,5,118,168,5,5,155,212,5,5,199,204,5,5,129,205,5,5,153,198,5,5,249,175,5,5,32,174,5,5,16,240,5,5,195,201,5,5,251,170,5,5,254,214,5,5,70,209,5,5,255,214,5,5,21,177,5,5,121,249,5,5,217,216,5,5,86,176,5,5,89,206,5,5,62,192,5,5,142,220,5,5,95,201,5,5,149,217,5,5,111,244,5,5,194,178,5,5,65,194,5,5,146,231,5,5,242,203,5,5,12,180,5,5,47,225,5,5,216,190,5,5,20,212,5,5,167,243,5,5,2,216,5,5,212,178,5,5,180,202,5,5,66,194,5,5,179,194,5,5,16,231,5,5,46,245,5,5,30,216,5,5,252,180,5,5,245,193,5,5,106,242,5,5,169,248,5,5,207,188,5,5,14,199,5,5,72,244,5,5,163,201,5,5,116,195,5,5,152,175,5,5,48,238,5,5,41,218,5,5,99,178,5,5,212,238,5,5,107,194,5,5,237,212,5,5,238,212,5,5,111,242,5,5,127,213,5,5,200,181,5,5,29,168,5,5,234,198,5,5,184,193,5,5,112,242,5,5,76,219,5,5,8,208,5,5,96,212,5,5,127,176,5,5,224,171,5,5,100,237,5,5,205,206,5,5,43,172,5,5,60,232,5,5,221,199,5,5,168,201,5,5,203,201,5,5,58,247,5,5,197,202,5,5,205,202,5,5,104,182,5,5,44,218,5,5,97,212,5,5,99,240,5,5,210,202,5,5,246,204,5,5,247,204,5,5,140,209,5,5,234,171,5,5,250,222,5,5,240,186,5,5,241,200,5,5,44,172,5,5,136,236,5,5,7,222,5,5,2,222,5,5,62,202,5,5,180,218,5,5,242,220,5,5,13,243,5,5,113,223,5,5,98,214,5,5,175,224,5,5,193,206,5,5,152,233,5,5,117,237,5,5,234,231,5,5,110,214,5,5,111,214,5,5,175,246,5,5,233,169,5,5,222,180,5,5,115,247,5,5,160,218,5,5,68,238,5,5,217,221,5,5,101,241,5,5,221,246,5,5,143,226,5,5,233,183,5,5,86,184,5,5,99,208,5,5,209,249,5,5,93,246,5,5,40,224,5,5,201,207,5,5,40,250,5,5,101,217,5,5,243,189,5,5,39,248,5,5,63,221,5,5,75,224,5,5,106,176,5,5,250,172,5,5,43,208,5,5,240,205,5,5,235,241,5,5,194,232,5,5,62,230,5,5,136,226,5,5,110,213,5,5,43,248,5,5,82,187,5,5,181,231,5,5,101,246,5,5,229,192,5,5,75,185,5,5,186,245,5,5,76,185,5,5,17,223,5,5,229,195,5,5,97,221,5,5,158,184,5,5,84,200,5,5,35,179,5,5,119,178,5,5,216,191,5,5,191,225,5,5,144,214,5,5,131,186,5,5,225,186,5,5,242,249,5,5,75,204,5,5,164,205,5,5,116,171,5,5,235,195,5,5,120,178,5,5,137,246,5,5,163,205,5,5,22,173,5,5,89,170,5,5,154,245,5,5,22,191,5,5,78,241,5,5,131,231,5,5,197,239,5,5,28,249,5,5,222,191,5,5,200,245,5,5,9,184,5,5,246,242,5,5,66,230,5,5,82,232,5,5,68,237,5,5,110,246,5,5,81,238,5,5,163,207,5,5,73,223,5,5,47,179,5,5,192,169,5,5,229,248,5,5,209,245,5,5,251,240,5,5,245,192,5,5,79,185,5,5,115,225,5,5,79,223,5,5,202,206,5,5,203,224,5,5,112,184,5,5,23,235,5,5,162,214,5,5,107,242,5,5,91,231,5,5,56,192,5,5,138,223,5,5,39,173,5,5,40,178,5,5,115,187,5,5,94,224,5,5,82,202,5,5,109,211,5,5,58,208,5,5,132,178,5,5,188,202,5,5,84,218,5,5,44,243,5,5,34,226,5,5,233,243,5,5,226,201,5,5,241,218,5,5,231,241,5,5,146,241,5,5,248,201,5,5,169,233,5,5,121,216,5,5,153,188,5,5,77,227,5,5,118,234,5,5,59,223,5,5,124,218,5,5,78,227,5,5,65,249,5,5,215,172,5,5,218,184,5,5,2,239,5,5,235,231,5,5,104,171,5,5,191,210,5,5,9,217,5,5,10,217,5,5,98,247,5,5,57,183,5,5,116,188,5,5,76,243,5,5,205,198,5,5,188,208,5,5,94,246,5,5,14,196,5,5,33,170,5,5,95,246,5,5,23,242,5,5,101,208,5,5,107,199,5,5,39,169,5,5,214,212,5,5,126,210,5,5,133,202,5,5,37,241,5,5,187,249,5,5,215,212,5,5,188,171,5,5,55,204,5,5,105,209,5,5,144,174,5,5,193,210,5,5,113,216,5,5,32,237,5,5,22,250,5,5,229,246,5,5,102,246,5,5,157,222,5,5,72,197,5,5,68,249,5,5,196,191,5,5,16,192,5,5,58,174,5,5,17,227,5,5,243,246,5,5,197,191,5,5,181,188,5,5,184,239,5,5,13,249,5,5,244,246,5,5,33,195,5,5,135,218,5,5,172,180,5,5,139,238,5,5,212,247,5,5,82,191,5,5,100,211,5,5,102,184,5,5,222,230,5,5,56,185,5,5,49,201,5,5,183,183,5,5,216,235,5,5,18,223,5,5,241,205,5,5,86,200,5,5,224,184,5,5,27,196,5,5,2,226,5,5,116,174,5,5,107,227,5,5,195,220,5,5,19,223,5,5,46,236,5,5,94,206,5,5,171,205,5,5,134,186,5,5,27,250,5,5,137,218,5,5,186,248,5,5,73,169,5,5,249,168,5,5,33,192,5,5,111,246,5,5,12,247,5,5,89,200,5,5,233,201,5,5,169,212,5,5,220,198,5,5,117,171,5,5,65,175,5,5,243,249,5,5,66,242,5,5,225,223,5,5,60,206,5,5,174,232,5,5,84,238,5,5,138,231,5,5,194,170,5,5,246,192,5,5,20,184,5,5,48,213,5,5,178,211,5,5,48,195,5,5,108,247,5,5,112,249,5,5,193,234,5,5,67,174,5,5,142,178,5,5,194,229,5,5,50,232,5,5,35,249,5,5,88,242,5,5,253,192,5,5,246,234,5,5,239,245,5,5,31,247,5,5,146,178,5,5,121,193,5,5,46,192,5,5,62,185,5,5,63,185,5,5,108,186,5,5,216,218,5,5,88,224,5,5,239,218,5,5,5,193,5,5,166,198,5,5,211,209,5,5,98,172,5,5,172,207,5,5,49,247,5,5,247,192,5,5,191,205,5,5,227,223,5,5,57,192,5,5,170,240,5,5,195,229,5,5,20,217,5,5,249,219,5,5,230,188,5,5,115,239,5,5,217,190,5,5,85,216,5,5,187,192,5,5,95,224,5,5,32,233,5,5,27,214,5,5,180,194,5,5,197,248,5,5,110,247,5,5,255,249,5,5,254,205,5,5,96,224,5,5,111,211,5,5,253,219,5,5,132,191,5,5,78,218,5,5,185,211,5,5,113,242,5,5,128,213,5,5,21,193,5,5,175,227,5,5,196,229,5,5,79,174,5,5,231,191,5,5,222,199,5,5,2,206,5,5,10,171,5,5,255,219,5,5,86,218,5,5,198,248,5,5,56,202,5,5,2,177,5,5,98,235,5,5,42,228,5,5,149,196,5,5,228,216,5,5,179,230,5,5,229,216,5,5,48,199,5,5,118,241,5,5,31,221,5,5,56,196,5,5,200,237,5,5,205,175,5,5,176,248,5,5,80,227,5,5,81,201,5,5,70,216,5,5,192,244,5,5,186,237,5,5,188,170,5,5,96,169,5,5,187,237,5,5,112,171,5,5,48,228,5,5,242,247,5,5,253,194,5,5,45,216,5,5,155,179,5,5,35,230,5,5,37,187,5,5,136,237,5,5,245,246,5,5,235,175,5,5,205,237,5,5,165,226,5,5,4,195,5,5,236,175,5,5,135,196,5,5,11,233,5,5,109,174,5,5,79,199,5,5,3,177,5,5,238,229,5,5,29,178,5,5,98,199,5,5,221,198,5,5,224,248,5,5,160,234,5,5,226,223,5,5,193,186,5,5,230,199,5,5,104,180,5,5,251,248,5,5,140,235,5,5,239,229,5,5,55,228,5,5,47,236,5,5,191,241,5,5,99,197,5,5,248,216,5,5,163,237,5,5,164,237,5,5,168,226,5,5,195,173,5,5,251,241,5,5,103,226,5,5,170,179,5,5,111,197,5,5,169,203,5,5,7,231,5,5,155,230,5,5,232,199,5,5,241,175,5,5,79,245,5,5,166,199,5,5,167,199,5,5,230,204,5,5,77,174,5,5,52,177,5,5,137,203,5,5,36,244,5,5,8,177,5,5,55,216,5,5,255,216,5,5,109,180,5,5,40,244,5,5,16,205,5,5,90,216,5,5,94,202,5,5,157,175,5,5,207,221,5,5,81,184,5,5,42,215,5,5,164,175,5,5,59,189,5,5,115,214,5,5,91,188,5,5,125,221,5,5,2,183,5,5,197,222,5,5,199,208,5,5,172,217,5,5,254,244,5,5,44,248,5,5,56,204,5,5,219,204,5,5,133,171,5,5,85,196,5,5,93,196,5,5,20,245,5,5,237,168,5,5,130,223,5,5,58,198,5,5,72,189,5,5,19,227,5,5,167,223,5,5,96,196,5,5,163,179,5,5,70,239,5,5,210,222,5,5,91,196,5,5,175,217,5,5,105,195,5,5,159,213,5,5,185,180,5,5,21,202,5,5,98,248,5,5,195,172,5,5,179,178,5,5,62,177,5,5,76,228,5,5,111,196,5,5,146,198,5,5,112,196,5,5,235,247,5,5,237,247,5,5,143,201,5,5,159,212,5,5,147,241,5,5,184,174,5,5,201,184,5,5,44,207,5,5,239,247,5,5,102,228,5,5,156,180,5,5,17,192,5,5,203,194,5,5,177,168,5,5,41,224,5,5,115,192,5,5,146,216,5,5,95,245,5,5,120,224,5,5,255,235,5,5,152,248,5,5,184,242,5,5,244,189,5,5,75,188,5,5,78,233,5,5,187,172,5,5,70,170,5,5,35,170,5,5,207,193,5,5,195,238,5,5,33,180,5,5,90,220,5,5,129,221,5,5,112,177,5,5,225,178,5,5,244,247,5,5,237,209,5,5,155,174,5,5,55,186,5,5,139,202,5,5,76,216,5,5,6,209,5,5,88,169,5,5,145,226,5,5,127,223,5,5,249,183,5,5,169,172,5,5,227,169,5,5,36,182,5,5,135,177,5,5,72,249,5,5,36,179,5,5,65,204,5,5,53,244,5,5,133,211,5,5,250,183,5,5,15,186,5,5,86,182,5,5,55,193,5,5,223,184,5,5,128,182,5,5,250,221,5,5,100,207,5,5,222,213,5,5,73,226,5,5,142,193,5,5,232,216,5,5,220,204,5,5,7,209,5,5,167,170,5,5,151,206,5,5,103,187,5,5,108,217,5,5,189,174,5,5,193,239,5,5,206,237,5,5,78,232,5,5,39,170,5,5,233,216,5,5,102,200,5,5,185,178,5,5,58,233,5,5,181,195,5,5,224,217,5,5,122,224,5,5,20,219,5,5,38,182,5,5,178,199,5,5,51,248,5,5,46,227,5,5,27,192,5,5,137,177,5,5,80,188,5,5,175,172,5,5,124,247,5,5,80,199,5,5,177,200,5,5,90,170,5,5,58,220,5,5,54,178,5,5,43,246,5,5,177,172,5,5,186,183,5,5,86,243,5,5,112,227,5,5,233,211,5,5,11,202,5,5,51,201,5,5,40,197,5,5,208,186,5,5,227,193,5,5,8,188,5,5,21,227,5,5,191,231,5,5,13,247,5,5,117,174,5,5,42,224,5,5,59,222,5,5,57,248,5,5,28,250,5,5,63,233,5,5,197,220,5,5,222,226,5,5,178,172,5,5,109,236,5,5,78,185,5,5,144,199,5,5,209,184,5,5,66,175,5,5,179,199,5,5,28,185,5,5,87,243,5,5,197,211,5,5,63,215,5,5,64,233,5,5,228,193,5,5,248,213,5,5,179,200,5,5,171,249,5,5,41,170,5,5,117,170,5,5,118,170,5,5,156,185,5,5,237,224,5,5,180,186,5,5,126,241,5,5,163,193,5,5,143,178,5,5,65,186,5,5,195,174,5,5,50,246,5,5,214,216,5,5,53,220,5,5,168,247,5,5,178,205,5,5,209,171,5,5,39,192,5,5,227,203,5,5,44,224,5,5,60,198,5,5,21,184,5,5,151,244,5,5,66,186,5,5,55,199,5,5,111,215,5,5,70,215,5,5,61,198,5,5,20,176,5,5,209,186,5,5,160,242,5,5,181,172,5,5,198,249,5,5,237,171,5,5,61,244,5,5,80,216,5,5,37,228,5,5,112,206,5,5,230,177,5,5,20,233,5,5,119,219,5,5,50,194,5,5,24,235,5,5,174,170,5,5,125,224,5,5,176,232,5,5,85,232,5,5,195,213,5,5,211,245,5,5,14,234,5,5,194,189,5,5,160,238,5,5,61,248,5,5,3,243,5,5,34,176,5,5,16,206,5,5,41,230,5,5,47,180,5,5,50,223,5,5,147,192,5,5,96,195,5,5,211,190,5,5,15,234,5,5,213,207,5,5,135,182,5,5,218,175,5,5,109,248,5,5,62,213,5,5,100,183,5,5,247,247,5,5,212,190,5,5,83,216,5,5,115,189,5,5,17,217,5,5,192,208,5,5,163,215,5,5,68,186,5,5,34,200,5,5,88,222,5,5,56,205,5,5,94,243,5,5,203,188,5,5,122,225,5,5,36,243,5,5,48,175,5,5,45,185,5,5,217,182,5,5,120,219,5,5,52,246,5,5,3,186,5,5,17,211,5,5,165,215,5,5,67,233,5,5,6,177,5,5,10,205,5,5,177,212,5,5,164,180,5,5,173,202,5,5,133,170,5,5,235,248,5,5,127,175,5,5,60,220,5,5,200,174,5,5,66,248,5,5,198,215,5,5,231,204,5,5,221,200,5,5,173,193,5,5,36,172,5,5,29,202,5,5,127,191,5,5,134,170,5,5,239,178,5,5,179,176,5,5,77,236,5,5,178,212,5,5,99,172,5,5,111,248,5,5,16,213,5,5,105,213,5,5,81,180,5,5,114,242,5,5,217,208,5,5,154,227,5,5,71,244,5,5,61,220,5,5,116,187,5,5,170,238,5,5,8,190,5,5,87,173,5,5,85,199,5,5,238,176,5,5,200,213,5,5,34,244,5,5,63,192,5,5,90,187,5,5,29,224,5,5,57,205,5,5,183,172,5,5,197,205,5,5,211,210,5,5,142,224,5,5,7,177,5,5,145,179,5,5,143,224,5,5,148,201,5,5,202,180,5,5,111,203,5,5,33,233,5,5,225,171,5,5,126,208,5,5,62,220,5,5,100,178,5,5,141,203,5,5,241,177,5,5,124,179,5,5,70,184,5,5,246,193,5,5,19,209,5,5,41,200,5,5,205,177,5,5,184,194,5,5,180,178,5,5,219,190,5,5,126,224,5,5,96,201,5,5,199,243,5,5,40,233,5,5,204,205,5,5,82,222,5,5,200,243,5,5,7,215,5,5,247,211,5,5,173,214,5,5,248,211,5,5,230,184,5,5,117,197,5,5,205,205,5,5,199,205,5,5,128,236,5,5,238,171,5,5,60,178,5,5,165,219,5,5,73,248,5,5,4,186,5,5,80,215,5,5,23,203,5,5,38,172,5,5,196,247,5,5,199,200,5,5,89,222,5,5,236,200,5,5,43,200,5,5,214,241,5,5,39,243,5,5,108,188,5,5,219,245,5,5,247,224,5,5,71,226,5,5,29,211,5,5,82,175,5,5,161,192,5,5,176,238,5,5,183,214,5,5,234,225,5,5,117,248,5,5,198,247,5,5,70,182,5,5,219,223,5,5,197,247,5,5,172,215,5,5,248,248,5,5,236,225,5,5,214,205,5,5,102,205,5,5,3,194,5,5,39,228,5,5,156,240,5,5,127,242,5,5,204,200,5,5,250,204,5,5,91,216,5,5,28,203,5,5,245,200,5,5,87,215,5,5,46,243,5,5,96,247,5,5,162,217,5,5,29,203,5,5,185,170,5,5,206,180,5,5,222,249,5,5,57,202,5,5,102,223,5,5,129,206,5,5,158,240,5,5,48,243,5,5,250,248,5,5,137,242,5,5,73,208,5,5,217,178,5,5,81,182,5,5,23,221,5,5,121,245,5,5,32,221,5,5,145,211,5,5,167,188,5,5,212,201,5,5,238,231,5,5,69,249,5,5,123,210,5,5,71,177,5,5,54,245,5,5,47,215,5,5,183,244,5,5,36,170,5,5,23,169,5,5,134,230,5,5,22,220,5,5,159,198,5,5,243,218,5,5,51,183,5,5,71,170,5,5,32,177,5,5,46,240,5,5,125,245,5,5,82,208,5,5,9,225,5,5,245,189,5,5,178,168,5,5,140,202,5,5,204,184,5,5,80,197,5,5,235,213,5,5,109,209,5,5,217,176,5,5,204,244,5,5,185,247,5,5,156,174,5,5,248,223,5,5,171,226,5,5,141,202,5,5,223,230,5,5,251,223,5,5,73,189,5,5,20,227,5,5,23,249,5,5,170,172,5,5,27,243,5,5,146,247,5,5,224,203,5,5,128,248,5,5,238,168,5,5,76,201,5,5,60,183,5,5,232,181,5,5,109,217,5,5,187,188,5,5,77,203,5,5,133,232,5,5,10,184,5,5,78,203,5,5,105,172,5,5,31,196,5,5,75,202,5,5,30,243,5,5,179,205,5,5,15,197,5,5,154,214,5,5,46,177,5,5,250,168,5,5,28,245,5,5,228,203,5,5,154,249,5,5,34,196,5,5,188,187,5,5,26,190,5,5,178,219,5,5,179,219,5,5,119,225,5,5,196,170,5,5,251,218,5,5,171,208,5,5,116,189,5,5,195,234,5,5,155,249,5,5,195,189,5,5,51,194,5,5,198,243,5,5,119,176,5,5,23,202,5,5,192,233,5,5,195,183,5,5,181,211,5,5,203,169,5,5,110,186,5,5,117,234,5,5,46,185,5,5,123,225,5,5,85,217,5,5,68,193,5,5,136,172,5,5,132,248,5,5,126,225,5,5,54,208,5,5,181,219,5,5,65,183,5,5,7,244,5,5,167,198,5,5,143,194,5,5,71,209,5,5,182,219,5,5,183,219,5,5,184,211,5,5,22,231,5,5,84,203,5,5,145,194,5,5,154,199,5,5,241,171,5,5,135,190,5,5,180,222,5,5,160,249,5,5,155,232,5,5,186,211,5,5,157,227,5,5,34,211,5,5,206,202,5,5,50,250,5,5,246,178,5,5,35,211,5,5,175,226,5,5,32,201,5,5,92,208,5,5,58,223,5,5,150,196,5,5,107,231,5,5,209,185,5,5,58,246,5,5,152,196,5,5,93,241,5,5,211,192,5,5,240,172,5,5,179,247,5,5,171,235,5,5,2,243,5,5,60,189,5,5,120,241,5,5,168,188,5,5,103,228,5,5,161,218,5,5,191,229,5,5,165,229,5,5,51,217,5,5,234,209,5,5,8,249,5,5,68,227,5,5,91,211,5,5,151,183,5,5,217,192,5,5,129,222,5,5,45,176,5,5,216,212,5,5,255,245,5,5,23,220,5,5,64,189,5,5,187,246,5,5,116,192,5,5,5,183,5,5,79,243,5,5,163,218,5,5,251,177,5,5,177,195,5,5,242,223,5,5,168,182,5,5,150,224,5,5,33,177,5,5,176,196,5,5,154,243,5,5,226,168,5,5,192,195,5,5,179,183,5,5,246,246,5,5,79,214,5,5,76,249,5,5,57,175,5,5,68,189,5,5,155,243,5,5,215,201,5,5,121,231,5,5,251,183,5,5,170,233,5,5,42,221,5,5,155,171,5,5,46,248,5,5,105,217,5,5,66,204,5,5,47,248,5,5,220,220,5,5,242,184,5,5,88,237,5,5,252,183,5,5,2,228,5,5,232,245,5,5,190,177,5,5,170,175,5,5,176,221,5,5,83,247,5,5,30,232,5,5,211,249,5,5,119,196,5,5,41,169,5,5,143,217,5,5,110,209,5,5,203,222,5,5,238,249,5,5,208,199,5,5,24,196,5,5,168,218,5,5,81,188,5,5,175,233,5,5,88,195,5,5,215,247,5,5,62,175,5,5,170,186,5,5,239,168,5,5,216,197,5,5,209,199,5,5,185,189,5,5,147,176,5,5,117,190,5,5,176,185,5,5,160,225,5,5,89,195,5,5,112,199,5,5,210,194,5,5,225,217,5,5,166,184,5,5,152,206,5,5,76,235,5,5,237,169,5,5,129,232,5,5,6,184,5,5,158,185,5,5,69,180,5,5,204,218,5,5,172,226,5,5,194,239,5,5,188,201,5,5,176,233,5,5,160,197,5,5,229,234,5,5,159,184,5,5,198,179,5,5,47,227,5,5,69,223,5,5,135,194,5,5,195,232,5,5,86,191,5,5,217,197,5,5,138,246,5,5,229,193,5,5,164,197,5,5,163,174,5,5,163,208,5,5,7,246,5,5,244,205,5,5,118,174,5,5,70,217,5,5,143,222,5,5,60,169,5,5,48,227,5,5,16,233,5,5,119,190,5,5,100,216,5,5,194,185,5,5,116,234,5,5,9,226,5,5,74,227,5,5,124,233,5,5,78,189,5,5,132,231,5,5,11,184,5,5,206,226,5,5,57,224,5,5,227,180,5,5,90,200,5,5,187,183,5,5,32,196,5,5,251,189,5,5,112,246,5,5,110,236,5,5,137,196,5,5,127,183,5,5,237,192,5,5,234,234,5,5,138,218,5,5,113,249,5,5,243,173,5,5,63,181,5,5,167,202,5,5,13,206,5,5,80,203,5,5,70,175,5,5,4,218,5,5,222,220,5,5,155,214,5,5,156,214,5,5,184,248,5,5,157,214,5,5,134,228,5,5,159,215,5,5,139,232,5,5,110,222,5,5,6,229,5,5,213,214,5,5,193,225,5,5,135,228,5,5,19,185,5,5,185,228,5,5,243,169,5,5,162,248,5,5,65,172,5,5,189,187,5,5,47,177,5,5,85,206,5,5,186,204,5,5,214,214,5,5,7,245,5,5,119,170,5,5,81,176,5,5,85,204,5,5,136,208,5,5,87,214,5,5,81,216,5,5,101,226,5,5,114,249,5,5,133,187,5,5,172,249,5,5,241,230,5,5,36,249,5,5,57,234,5,5,93,203,5,5,203,195,5,5,191,182,5,5,80,219,5,5,244,208,5,5,80,242,5,5,143,249,5,5,90,182,5,5,14,206,5,5,242,234,5,5,69,240,5,5,186,220,5,5,6,215,5,5,247,234,5,5,177,232,5,5,166,193,5,5,11,199,5,5,142,232,5,5,73,219,5,5,137,208,5,5,47,192,5,5,200,180,5,5,34,175,5,5,60,179,5,5,245,208,5,5,183,208,5,5,210,242,5,5,186,233,5,5,117,169,5,5,90,223,5,5,18,217,5,5,175,170,5,5,143,190,5,5,179,185,5,5,175,176,5,5,166,208,5,5,111,229,5,5,116,184,5,5,67,229,5,5,64,227,5,5,255,185,5,5,193,208,5,5,130,233,5,5,60,203,5,5,116,249,5,5,219,170,5,5,132,243,5,5,203,239,5,5,14,226,5,5,152,186,5,5,40,247,5,5,133,243,5,5,71,174,5,5,36,173,5,5,200,177,5,5,196,231,5,5,211,242,5,5,144,249,5,5,169,234,5,5,139,221,5,5,221,228,5,5,180,185,5,5,25,235,5,5,136,240,5,5,248,195,5,5,116,239,5,5,164,248,5,5,184,210,5,5,56,169,5,5,109,186,5,5,19,212,5,5,194,247,5,5,174,193,5,5,97,176,5,5,238,217,5,5,7,223,5,5,135,243,5,5,198,231,5,5,22,177,5,5,8,231,5,5,217,218,5,5,171,225,5,5,123,184,5,5,95,243,5,5,247,173,5,5,65,185,5,5,58,219,5,5,199,189,5,5,196,243,5,5,228,225,5,5,146,232,5,5,26,224,5,5,241,245,5,5,157,249,5,5,172,225,5,5,242,190,5,5,71,172,5,5,135,170,5,5,145,183,5,5,239,176,5,5,30,202,5,5,144,224,5,5,177,236,5,5,94,231,5,5,159,249,5,5,162,201,5,5,170,197,5,5,168,215,5,5,29,207,5,5,152,246,5,5,255,205,5,5,212,209,5,5,106,213,5,5,10,203,5,5,55,208,5,5,85,235,5,5,146,249,5,5,64,192,5,5,101,220,5,5,97,224,5,5,98,182,5,5,19,206,5,5,250,169,5,5,91,238,5,5,213,219,5,5,159,209,5,5,166,237,5,5,228,215,5,5,170,191,5,5,3,232,5,5,11,193,5,5,57,220,5,5,133,234,5,5,68,218,5,5,86,235,5,5,101,224,5,5,5,216,5,5,113,244,5,5,32,250,5,5,118,246,5,5,145,220,5,5,184,219,5,5,244,203,5,5,115,242,5,5,65,182,5,5,142,203,5,5,87,176,5,5,8,250,5,5,71,194,5,5,113,218,5,5,89,173,5,5,85,219,5,5,134,234,5,5,133,191,5,5,73,190,5,5,218,249,5,5,23,231,5,5,230,215,5,5,146,243,5,5,161,177,5,5,141,221,5,5,136,191,5,5,150,231,5,5,254,219,5,5,247,193,5,5,109,194,5,5,136,190,5,5,20,244,5,5,183,176,5,5,205,233,5,5,240,194,5,5,150,170,5,5,46,178,5,5,140,239,5,5,115,211,5,5,102,224,5,5,141,239,5,5,64,220,5,5,174,234,5,5,26,193,5,5,75,171,5,5,139,215,5,5,237,200,5,5,30,214,5,5,157,235,5,5,220,249,5,5,184,214,5,5,186,212,5,5,222,237,5,5,141,209,5,5,224,201,5,5,141,233,5,5,221,249,5,5,223,199,5,5,22,241,5,5,252,234,5,5,169,201,5,5,11,232,5,5,54,173,5,5,243,194,5,5,103,205,5,5,55,173,5,5,103,240,5,5,54,172,5,5,94,218,5,5,15,232,5,5,231,249,5,5,223,249,5,5,164,206,5,5,58,202,5,5,155,178,5,5,21,201,5,5,181,201,5,5,69,203,5,5,55,223,5,5,146,196,5,5,115,241,5,5,45,189,5,5,170,247,5,5,229,231,5,5,86,185,5,5,255,242,5,5,101,192,5,5,96,228,5,5,197,199,5,5,196,192,5,5,150,218,5,5,26,229,5,5,71,243,5,5,50,189,5,5,41,176,5,5,205,212,5,5,14,220,5,5,3,185,5,5,229,209,5,5,154,218,5,5,148,249,5,5,71,206,5,5,251,182,5,5,171,246,5,5,160,229,5,5,161,182,5,5,27,248,5,5,246,245,5,5,88,211,5,5,119,222,5,5,109,232,5,5,238,184,5,5,153,233,5,5,220,183,5,5,45,203,5,5,205,249,5,5,24,221,5,5,113,231,5,5,90,246,5,5,76,247,5,5,175,247,5,5,37,169,5,5,221,183,5,5,160,175,5,5,216,220,5,5,3,239,5,5,11,196,5,5,176,177,5,5,59,169,5,5,194,218,5,5,73,195,5,5,105,199,5,5,111,218,5,5,185,179,5,5,73,188,5,5,72,191,5,5,157,185,5,5,68,235,5,5,132,194,5,5,145,206,5,5,195,197,5,5,198,194,5,5,43,227,5,5,190,185,5,5,252,232,5,5,154,197,5,5,122,234,5,5,120,231,5,5,62,224,5,5,158,225,5,5,218,192,5,5,250,225,5,5,20,192,5,5,221,234,5,5,67,204,5,5,59,240,5,5,222,234,5,5,210,214,5,5,184,182,5,5,77,176,5,5,185,220,5,5,127,187,5,5,138,221,5,5,249,228,5,5,133,208,5,5,104,222,5,5,236,169,5,5,58,175,5,5,189,225,5,5,183,204,5,5,3,218,5,5,99,249,5,5,2,245,5,5,122,228,5,5,8,206,5,5,154,248,5,5,14,249,5,5,6,199,5,5,170,232,5,5,149,193,5,5,161,208,5,5,255,200,5,5,3,226,5,5,191,208,5,5,28,192,5,5,51,243,5,5,87,191,5,5,70,223,5,5,58,181,5,5,192,180,5,5,215,170,5,5,130,232,5,5,251,185,5,5,157,248,5,5,142,190,5,5,44,179,5,5,245,205,5,5,170,170,5,5,239,208,5,5,193,242,5,5,236,195,5,5,109,184,5,5,54,219,5,5,238,245,5,5,140,183,5,5,13,177,5,5,58,185,5,5,25,173,5,5,12,202,5,5,71,239,5,5,159,193,5,5,58,171,5,5,90,213,5,5,22,207,5,5,157,201,5,5,70,240,5,5,140,224,5,5,154,209,5,5,211,219,5,5,131,233,5,5,130,203,5,5,135,220,5,5,106,244,5,5,100,194,5,5,138,215,5,5,255,215,5,5,128,190,5,5,234,194,5,5,219,249,5,5,153,183,5,5,154,233,5,5,9,185,5,5,156,183,5,5,13,218,5,5,157,183,5,5,5,215,5,5,156,171,5,5,187,213,5,5,225,232,5,5,111,245,5,5,20,185,5,5,71,240,5,5,76,240,5,5,220,216,5,5,220,231,5,5,232,186,5,5,9,250,5,5,49,225,5,5,78,174,5,5,2,215,5,5,227,229,5,5,94,240,5,5,170,201,5,5,56,225,5,5,104,205,5,5,242,186,5,5,173,228,5,5,172,228,5,5,253,184,5,5,177,228,5,5,16,188,5,5,103,206,5,5,99,206,5,5,234,183,5,5,25,221,5,5,31,182,5,5,53,186,5,5,9,248,5,5,223,196,5,5,76,207,5,5,83,186,5,5,234,208,5,5,12,185,5,5,212,168,5,5,169,186,5,5,4,226,5,5,161,197,5,5,7,184,5,5,104,221,5,5,168,236,5,5,101,245,5,5,244,249,5,5,171,186,5,5,225,248,5,5,67,242,5,5,14,247,5,5,70,168,5,5,40,182,5,5,4,201,5,5,170,222,5,5,80,223,5,5,11,213,5,5,203,206,5,5,188,204,5,5,217,168,5,5,42,182,5,5,31,202,5,5,196,173,5,5,116,229,5,5,126,170,5,5,12,193,5,5,112,244,5,5,25,175,5,5,192,204,5,5,65,192,5,5,171,197,5,5,127,208,5,5,110,245,5,5,116,206,5,5,20,213,5,5,83,192,5,5,89,192,5,5,43,206,5,5,39,237,5,5,77,208,5,5,174,215,5,5,129,177,5,5,183,207,5,5,55,237,5,5,71,241,5,5,68,241,5,5,25,183,5,5,179,168,5,5,33,185,5,5,104,237,5,5,84,186,5,5,180,215,5,5,239,243,5,5,34,185,5,5,68,204,5,5,39,239,5,5,48,248,5,5,206,178,5,5,94,234,5,5,224,215,5,5,143,238,5,5,131,232,5,5,205,218,5,5,52,218,5,5,53,218,5,5,226,215,5,5,120,190,5,5,137,224,5,5,134,232,5,5,72,239,5,5,110,237,5,5,196,215,5,5,115,215,5,5,195,241,5,5,181,185,5,5,109,195,5,5,89,225,5,5,216,242,5,5,9,231,5,5,100,182,5,5,104,220,5,5,44,183,5,5,105,220,5,5,42,203,5,5,167,201,5,5,183,185,5,5,121,211,5,5,235,215,5,5,103,173,5,5,226,241,5,5,241,185,5,5,15,239,5,5,17,175,5,5,208,229,5,5,6,183,5,5,65,189,5,5,234,174,5,5,235,174,5,5,34,177,5,5,253,183,5,5,183,231,5,5,219,169,5,5,40,239,5,5,123,200,5,5,41,239,5,5,219,212,5,5,69,204,5,5,195,204,5,5,247,246,5,5,144,217,5,5,47,231,5,5,119,233,5,5,196,232,5,5,224,230,5,5,225,230,5,5,238,198,5,5,47,216,5,5,88,191,5,5,16,191,5,5,12,233,5,5,52,220,5,5,79,189,5,5,95,194,5,5,233,178,5,5,48,177,5,5,214,182,5,5,144,178,5,5,54,220,5,5,251,174,5,5,62,248,5,5,236,193,5,5,26,235,5,5,2,175,5,5,63,213,5,5,117,249,5,5,110,228,5,5,30,191,5,5,117,189,5,5,204,188,5,5,231,188,5,5,55,188,5,5,119,168,5,5,93,213,5,5,128,239,5,5,11,203,5,5,119,189,5,5,122,168,5,5,245,203,5,5,140,212,5,5,56,216,5,5,125,168,5,5,66,182,5,5,129,239,5,5,137,191,5,5,36,235,5,5,152,178,5,5,221,237,5,5,103,201,5,5,102,201,5,5,188,198,5,5,111,207,5,5,151,245,5,5,119,214,5,5,13,186,5,5,16,186,5,5,14,186,5,5,189,179,5,5,199,179,5,5,219,181,5,5,227,222,5,5,67,219,5,5,8,210,5,5,9,210,5,5,181,180,5,5,184,201,5,5,201,226,5,5,70,249,5,5,172,185,5,5,209,173,5,5,121,188,5,5,80,243,5,5,213,168,5,5,220,212,5,5,140,238,5,5,128,223,5,5,184,217,5,5,56,193,5,5,81,197,5,5,186,191,5,5,118,175,5,5,123,201,5,5,95,206,5,5,140,192,5,5,87,225,5,5,217,211,5,5,40,205,5,5,124,211,5,5,122,194,5,5,65,212,5,5,152,244,5,5,42,205,5,5,69,192,5,5,130,201,5,5,235,191,5,5,23,241,5,5,142,209,5,5,87,190,5,5,245,181,5,5,241,238,5,5,233,179,5,5,234,237,5,5,110,177,5,5,166,223,5,5,114,216,5,5,81,243,5,5,212,174,5,5,220,177,5,5,221,177,5,5,66,189,5,5,191,185,5,5,128,246,5,5,36,212,5,5,251,210,5,5,223,177,5,5,233,245,5,5,228,173,5,5,70,204,5,5,39,246,5,5,74,241,5,5,65,228,5,5,116,203,5,5,221,204,5,5,133,246,5,5,54,211,5,5,137,226,5,5,233,181,5,5,44,236,5,5,181,226,5,5,148,186,5,5,230,234,5,5,238,202,5,5,128,188,5,5,157,221,5,5,199,203,5,5,150,213,5,5,35,196,5,5,100,197,5,5,42,170,5,5,13,179,5,5,174,187,5,5,172,229,5,5,243,234,5,5,157,213,5,5,165,176,5,5,8,180,5,5,137,210,5,5,229,226,5,5,45,197,5,5,176,176,5,5,231,199,5,5,4,203,5,5,35,200,5,5,177,176,5,5,5,203,5,5,222,229,5,5,36,200,5,5,12,203,5,5,17,203,5,5,180,176,5,5,120,168,5,5,134,221,5,5,173,223,5,5,208,226,5,5,42,200,5,5,23,211,5,5,153,246,5,5,242,177,5,5,69,211,5,5,62,216,5,5,166,210,5,5,209,226,5,5,211,226,5,5,251,204,5,5,13,242,5,5,9,242,5,5,96,245,5,5,125,223,5,5,238,223,5,5,73,239,5,5,7,224,5,5,133,223,5,5,102,245,5,5,103,245,5,5,9,219,5,5,226,238,5,5,132,201,5,5,4,192,5,5,38,217,5,5,17,199,5,5,153,172,5,5,88,185,5,5,174,171,5,5,147,190,5,5,181,190,5,5,205,174,5,5,155,218,5,5,71,233,5,5,42,219,5,5,162,247,5,5,235,242,5,5,168,180,5,5,4,185,5,5,191,218,5,5,194,184,5,5,201,172,5,5,249,229,5,5,127,173,5,5,79,186,5,5,91,246,5,5,245,187,5,5,168,183,5,5,200,182,5,5,24,183,5,5,100,212,5,5,68,212,5,5,133,193,5,5,153,182,5,5,175,248,5,5,31,241,5,5,230,209,5,5,89,168,5,5,18,199,5,5,57,218,5,5,210,185,5,5,19,242,5,5,190,229,5,5,128,237,5,5,112,214,5,5,247,212,5,5,128,215,5,5,180,230,5,5,181,230,5,5,224,182,5,5,19,199,5,5,54,196,5,5,254,224,5,5,90,221,5,5,97,247,5,5,52,245,5,5,104,233,5,5,93,221,5,5,92,229,5,5,180,247,5,5,186,179,5,5,248,177,5,5,226,182,5,5,195,168,5,5,182,171,5,5,137,217,5,5,89,226,5,5,170,169,5,5,143,186,5,5,224,224,5,5,66,249,5,5,206,182,5,5,96,246,5,5,172,210,5,5,175,213,5,5,93,249,5,5,49,184,5,5,69,212,5,5,178,245,5,5,26,232,5,5,41,250,5,5,102,212,5,5,99,193,5,5,148,221,5,5,97,246,5,5,87,169,5,5,177,209,5,5,102,217,5,5,173,189,5,5,206,198,5,5,210,174,5,5,32,240,5,5,144,234,5,5,30,237,5,5,216,204,5,5,60,180,5,5,83,198,5,5,77,205,5,5,79,196,5,5,139,211,5,5,55,236,5,5,47,212,5,5,128,199,5,5,134,238,5,5,6,187,5,5,212,187,5,5,94,185,5,5,64,180,5,5,150,174,5,5,161,194,5,5,74,234,5,5,75,234,5,5,228,181,5,5,78,168,5,5,12,189,5,5,67,213,5,5,117,210,5,5,94,249,5,5,33,187,5,5,105,174,5,5,164,226,5,5,103,246,5,5,35,177,5,5,145,207,5,5,112,233,5,5,36,177,5,5,113,233,5,5,228,206,5,5,227,206,5,5,119,192,5,5,114,233,5,5,47,211,5,5,142,199,5,5,140,219,5,5,252,243,5,5,120,214,5,5,80,210,5,5,83,208,5,5,99,211,5,5,30,206,5,5,146,228,5,5,193,171,5,5,193,229,5,5,123,228,5,5,96,234,5,5,206,194,5,5,92,196,5,5,75,241,5,5,6,189,5,5,91,177,5,5,194,203,5,5,88,220,5,5,242,226,5,5,149,207,5,5,48,176,5,5,98,221,5,5,130,215,5,5,169,178,5,5,129,197,5,5,226,176,5,5,95,234,5,5,249,233,5,5,236,227,5,5,72,212,5,5,110,174,5,5,105,210,5,5,14,214,5,5,100,180,5,5,237,227,5,5,241,210,5,5,82,210,5,5,30,213,5,5,90,186,5,5,105,206,5,5,142,202,5,5,32,203,5,5,57,245,5,5,44,177,5,5,45,195,5,5,91,203,5,5,10,223,5,5,8,213,5,5,238,170,5,5,84,206,5,5,69,213,5,5,189,201,5,5,26,200,5,5,17,176,5,5,26,178,5,5,117,226,5,5,106,210,5,5,28,196,5,5,245,209,5,5,136,200,5,5,18,238,5,5,65,236,5,5,169,218,5,5,99,221,5,5,78,176,5,5,63,184,5,5,60,184,5,5,234,196,5,5,202,182,5,5,187,215,5,5,148,228,5,5,70,180,5,5,9,213,5,5,170,187,5,5,107,249,5,5,4,180,5,5,9,230,5,5,164,207,5,5,136,210,5,5,105,248,5,5,245,174,5,5,214,176,5,5,109,206,5,5,215,211,5,5,48,179,5,5,46,168,5,5,11,234,5,5,87,210,5,5,211,222,5,5,241,222,5,5,38,210,5,5,127,243,5,5,106,247,5,5,250,218,5,5,178,181,5,5,155,219,5,5,113,227,5,5,122,237,5,5,35,194,5,5,59,229,5,5,215,194,5,5,175,241,5,5,63,193,5,5,197,180,5,5,103,170,5,5,137,173,5,5,110,184,5,5,135,232,5,5,182,210,5,5,164,208,5,5,67,228,5,5,223,225,5,5,179,227,5,5,63,169,5,5,135,215,5,5,247,205,5,5,68,228,5,5,106,222,5,5,116,225,5,5,13,224,5,5,160,248,5,5,131,185,5,5,83,239,5,5,210,171,5,5,122,203,5,5,141,192,5,5,12,213,5,5,126,233,5,5,42,185,5,5,251,205,5,5,80,171,5,5,204,211,5,5,142,173,5,5,184,205,5,5,176,187,5,5,50,212,5,5,197,175,5,5,249,170,5,5,123,194,5,5,192,183,5,5,120,225,5,5,65,209,5,5,253,230,5,5,88,248,5,5,17,206,5,5,175,194,5,5,180,240,5,5,224,205,5,5,32,247,5,5,118,235,5,5,63,177,5,5,25,204,5,5,40,227,5,5,179,212,5,5,186,210,5,5,200,175,5,5,135,203,5,5,50,177,5,5,55,187,5,5,28,233,5,5,218,225,5,5,96,182,5,5,151,246,5,5,178,194,5,5,141,220,5,5,166,189,5,5,49,177,5,5,107,219,5,5,178,232,5,5,69,224,5,5,64,183,5,5,84,240,5,5,102,220,5,5,72,248,5,5,5,178,5,5,152,199,5,5,110,211,5,5,213,227,5,5,18,203,5,5,142,170,5,5,208,240,5,5,241,197,5,5,187,175,5,5,130,239,5,5,145,197,5,5,145,200,5,5,39,203,5,5,214,219,5,5,214,227,5,5,114,186,5,5,174,214,5,5,55,177,5,5,85,171,5,5,152,235,5,5,96,210,5,5,15,230,5,5,3,244,5,5,153,232,5,5,7,171,5,5,60,234,5,5,159,199,5,5,148,200,5,5,79,236,5,5,100,205,5,5,241,191,5,5,158,243,5,5,139,206,5,5,163,217,5,5,4,244,5,5,44,206,5,5,147,210,5,5,159,243,5,5,250,173,5,5,43,215,5,5,252,229,5,5,19,187,5,5,242,243,5,5,243,203,5,5,16,187,5,5,82,249,5,5,191,194,5,5,252,210,5,5,98,175,5,5,232,192,5,5,38,185,5,5,99,175,5,5,138,208,5,5,18,211,5,5,197,246,5,5,230,246,5,5,120,185,5,5,36,194,5,5,200,179,5,5,108,246,5,5,98,234,5,5,238,224,5,5,214,245,5,5,182,196,5,5,110,232,5,5,140,241,5,5,202,172,5,5,188,237,5,5,148,241,5,5,18,175,5,5,125,231,5,5,126,231,5,5,196,196,5,5,192,241,5,5,249,241,5,5,58,234,5,5,46,197,5,5,201,196,5,5,255,233,5,5,233,220,5,5,238,220,5,5,243,220,5,5,174,196,5,5,39,222,5,5,14,225,5,5,139,222,5,5,66,222,5,5,121,226,5,5,80,225,5,5,50,214,5,5,51,214,5,5,211,186,5,5,74,190,5,5,130,226,5,5,220,175,5,5,27,223,5,5,192,231,5,5,101,230,5,5,128,247,5,5,109,178,5,5,210,175,5,5,86,220,5,5,190,238,5,5,83,182,5,5,226,211,5,5,3,225,5,5,85,182,5,5,24,169,5,5,211,175,5,5,76,188,5,5,169,182,5,5,3,169,5,5,37,170,5,5,79,205,5,5,81,247,5,5,23,194,5,5,120,172,5,5,71,204,5,5,245,247,5,5,54,244,5,5,79,181,5,5,194,171,5,5,31,232,5,5,148,185,5,5,212,175,5,5,184,231,5,5,82,205,5,5,239,216,5,5,57,212,5,5,226,230,5,5,121,199,5,5,12,184,5,5,32,244,5,5,128,183,5,5,13,202,5,5,198,220,5,5,186,241,5,5,52,201,5,5,243,226,5,5,68,242,5,5,60,229,5,5,211,171,5,5,24,208,5,5,222,210,5,5,240,196,5,5,213,190,5,5,96,222,5,5,12,199,5,5,220,170,5,5,209,209,5,5,212,179,5,5,147,178,5,5,78,169,5,5,211,172,5,5,117,239,5,5,201,223,5,5,127,172,5,5,145,172,5,5,43,205,5,5,203,177,5,5,120,235,5,5,218,237,5,5,26,175,5,5,181,178,5,5,61,178,5,5,221,215,5,5,136,205,5,5,213,238,5,5,160,192,5,5,75,194,5,5,236,191,5,5,11,208,5,5,185,214,5,5,138,205,5,5,105,205,5,5,58,173,5,5,253,222,5,5,162,185,5,5,70,203,5,5,134,193,5,5,175,193,5,5,229,219,5,5,211,236,5,5,254,183,5,5,158,213,5,5,253,236,5,5,15,237,5,5,148,172,5,5,156,172,5,5,224,238,5,5,140,201,5,5,198,226,5,5,150,194,5,5,0,167,5,5,251,209,5,5,138,226,5,5,151,194,5,5,59,195,5,5,156,212,5,5,97,228,5,5,232,238,5,5,242,172,5,5,129,208,5,5,74,208,5,5,189,184,5,5,33,215,5,5,14,242,5,5,15,242,5,5,207,220,5,5,224,216,5,5,165,180,5,5,232,189,5,5,197,214,5,5,37,207,5,5,83,249,5,5,73,191,5,5,46,224,5,5,198,246,5,5,160,232,5,5,242,212,5,5,210,183,5,5,204,227,5,5,27,229,5,5,52,230,5,5,82,246,5,5,226,214,5,5,75,220,5,5,161,229,5,5,144,215,5,5,125,218,5,5,211,183,5,5,64,199,5,5,137,195,5,5,71,205,5,5,202,234,5,5,5,192,5,5,109,216,5,5,104,214,5,5,86,236,5,5,252,182,5,5,170,168,5,5,89,219,5,5,217,233,5,5,201,192,5,5,18,190,5,5,19,190,5,5,141,182,5,5,122,230,5,5,187,197,5,5,7,186,5,5,172,246,5,5,72,243,5,5,110,216,5,5,132,168,5,5,111,175,5,5,104,207,5,5,251,235,5,5,219,182,5,5,182,218,5,5,68,188,5,5,155,176,5,5,216,239,5,5,66,241,5,5,205,170,5,5,242,238,5,5,60,216,5,5,28,229,5,5,103,202,5,5,29,213,5,5,139,181,5,5,107,232,5,5,128,173,5,5,117,172,5,5,28,248,5,5,222,223,5,5,247,225,5,5,237,242,5,5,72,218,5,5,46,204,5,5,230,224,5,5,208,220,5,5,218,178,5,5,177,208,5,5,200,216,5,5,110,202,5,5,2,241,5,5,201,198,5,5,193,209,5,5,169,169,5,5,85,169,5,5,10,186,5,5,230,208,5,5,187,238,5,5,188,238,5,5,63,197,5,5,122,213,5,5,110,219,5,5,102,199,5,5,52,211,5,5,153,210,5,5,179,171,5,5,105,171,5,5,78,220,5,5,112,234,5,5,182,237,5,5,236,231,5,5,216,169,5,5,55,189,5,5,49,240,5,5,157,244,5,5,23,180,5,5,216,196,5,5,178,179,5,5,244,210,5,5,198,184,5,5,149,189,5,5,168,213,5,5,141,207,5,5,222,183,5,5,120,221,5,5,49,186,5,5,59,170,5,5,89,229,5,5,223,183,5,5,207,248,5,5,106,207,5,5,120,182,5,5,44,193,5,5,73,207,5,5,74,207,5,5,192,168,5,5,107,176,5,5,95,209,5,5,254,248,5,5,176,246,5,5,182,174,5,5,212,192,5,5,12,196,5,5,212,204,5,5,158,176,5,5,230,210,5,5,194,242,5,5,104,235,5,5,112,240,5,5,230,216,5,5,113,185,5,5,29,209,5,5,118,202,5,5,195,218,5,5,30,240,5,5,165,185,5,5,146,215,5,5,254,172,5,5,2,174,5,5,24,242,5,5,85,188,5,5,84,249,5,5,182,203,5,5,58,230,5,5,213,192,5,5,29,187,5,5,144,176,5,5,203,193,5,5,108,176,5,5,25,186,5,5,2,187,5,5,45,207,5,5,218,172,5,5,158,194,5,5,159,194,5,5,235,183,5,5,149,241,5,5,206,247,5,5,5,249,5,5,87,194,5,5,46,191,5,5,175,239,5,5,219,172,5,5,32,182,5,5,189,218,5,5,15,219,5,5,14,175,5,5,62,207,5,5,9,227,5,5,116,247,5,5,40,215,5,5,240,247,5,5,172,235,5,5,112,190,5,5,172,183,5,5,211,217,5,5,154,184,5,5,111,177,5,5,15,196,5,5,51,234,5,5,221,175,5,5,149,172,5,5,16,196,5,5,226,181,5,5,76,168,5,5,11,216,5,5,185,174,5,5,131,218,5,5,15,194,5,5,249,225,5,5,182,190,5,5,176,213,5,5,119,202,5,5,171,195,5,5,109,201,5,5,198,222,5,5,122,248,5,5,130,177,5,5,77,193,5,5,100,218,5,5,65,170,5,5,164,172,5,5,12,216,5,5,74,191,5,5,214,192,5,5,80,178,5,5,85,249,5,5,196,218,5,5,150,191,5,5,32,234,5,5,146,206,5,5,114,240,5,5,173,235,5,5,221,195,5,5,109,224,5,5,176,239,5,5,216,206,5,5,61,189,5,5,181,247,5,5,201,237,5,5,171,180,5,5,37,229,5,5,249,201,5,5,94,180,5,5,177,183,5,5,134,218,5,5,225,239,5,5,176,188,5,5,19,170,5,5,27,172,5,5,102,243,5,5,223,178,5,5,101,227,5,5,51,224,5,5,52,224,5,5,99,174,5,5,4,174,5,5,59,230,5,5,39,171,5,5,197,230,5,5,192,185,5,5,134,202,5,5,13,214,5,5,45,248,5,5,106,209,5,5,135,202,5,5,125,248,5,5,23,250,5,5,232,227,5,5,52,217,5,5,24,220,5,5,131,224,5,5,5,174,5,5,161,212,5,5,37,197,5,5,146,207,5,5,241,207,5,5,53,234,5,5,18,196,5,5,217,173,5,5,38,221,5,5,25,198,5,5,98,236,5,5,217,226,5,5,38,241,5,5,97,177,5,5,204,186,5,5,34,188,5,5,72,241,5,5,98,177,5,5,81,193,5,5,170,228,5,5,243,223,5,5,92,211,5,5,192,220,5,5,122,232,5,5,71,201,5,5,242,183,5,5,106,181,5,5,107,209,5,5,200,229,5,5,78,195,5,5,25,210,5,5,195,209,5,5,135,198,5,5,164,200,5,5,235,202,5,5,222,221,5,5,232,229,5,5,137,227,5,5,240,231,5,5,213,191,5,5,39,241,5,5,115,240,5,5,53,240,5,5,244,185,5,5,46,176,5,5,59,207,5,5,60,207,5,5,146,176,5,5,124,228,5,5,25,196,5,5,37,179,5,5,138,217,5,5,34,180,5,5,143,193,5,5,167,249,5,5,56,186,5,5,124,200,5,5,158,205,5,5,7,197,5,5,96,229,5,5,29,198,5,5,255,210,5,5,56,200,5,5,182,188,5,5,16,214,5,5,180,243,5,5,55,185,5,5,183,187,5,5,255,183,5,5,82,206,5,5,112,173,5,5,59,175,5,5,155,223,5,5,13,176,5,5,3,245,5,5,223,207,5,5,68,172,5,5,196,168,5,5,3,202,5,5,105,227,5,5,157,171,5,5,37,188,5,5,130,169,5,5,160,216,5,5,143,197,5,5,211,230,5,5,115,216,5,5,9,179,5,5,34,195,5,5,15,214,5,5,82,178,5,5,194,195,5,5,15,216,5,5,234,224,5,5,173,185,5,5,34,190,5,5,57,186,5,5,72,204,5,5,185,182,5,5,118,216,5,5,40,168,5,5,180,228,5,5,247,169,5,5,165,247,5,5,62,236,5,5,231,196,5,5,144,193,5,5,255,203,5,5,61,225,5,5,134,222,5,5,93,226,5,5,138,178,5,5,218,189,5,5,132,214,5,5,183,188,5,5,41,177,5,5,190,225,5,5,27,176,5,5,78,170,5,5,135,173,5,5,114,190,5,5,234,182,5,5,173,200,5,5,74,214,5,5,242,207,5,5,181,213,5,5,202,228,5,5,21,178,5,5,47,220,5,5,115,190,5,5,154,236,5,5,141,238,5,5,146,226,5,5,133,214,5,5,125,228,5,5,171,172,5,5,10,210,5,5,234,245,5,5,34,228,5,5,155,196,5,5,180,226,5,5,106,206,5,5,79,170,5,5,42,239,5,5,5,212,5,5,245,171,5,5,73,212,5,5,255,179,5,5,117,240,5,5,118,240,5,5,119,240,5,5,6,233,5,5,141,219,5,5,13,217,5,5,214,198,5,5,226,232,5,5,147,228,5,5,243,241,5,5,176,241,5,5,103,184,5,5,54,203,5,5,15,235,5,5,16,235,5,5,36,210,5,5,176,172,5,5,237,229,5,5,62,176,5,5,13,233,5,5,159,241,5,5,192,170,5,5,116,207,5,5,43,168,5,5,168,181,5,5,153,206,5,5,123,240,5,5,103,200,5,5,104,200,5,5,92,194,5,5,162,208,5,5,46,250,5,5,47,250,5,5,188,249,5,5,110,169,5,5,247,218,5,5,79,231,5,5,19,238,5,5,44,168,5,5,145,217,5,5,150,193,5,5,8,184,5,5,11,206,5,5,29,196,5,5,138,212,5,5,92,183,5,5,74,189,5,5,75,189,5,5,112,189,5,5,225,236,5,5,87,227,5,5,171,245,5,5,24,249,5,5,171,232,5,5,170,218,5,5,121,185,5,5,10,215,5,5,193,216,5,5,85,208,5,5,199,190,5,5,45,221,5,5,17,214,5,5,177,184,5,5,43,180,5,5,186,247,5,5,37,194,5,5,50,229,5,5,198,171,5,5,212,228,5,5,228,211,5,5,233,192,5,5,186,189,5,5,254,243,5,5,60,193,5,5,193,180,5,5,207,237,5,5,54,224,5,5,163,176,5,5,226,217,5,5,213,228,5,5,192,245,5,5,247,199,5,5,223,226,5,5,157,191,5,5,80,231,5,5,180,221,5,5,243,214,5,5,212,200,5,5,108,249,5,5,120,237,5,5,154,242,5,5,158,207,5,5,52,243,5,5,204,222,5,5,45,179,5,5,103,248,5,5,192,186,5,5,76,218,5,5,92,235,5,5,75,173,5,5,102,198,5,5,27,200,5,5,28,190,5,5,116,194,5,5,29,205,5,5,51,229,5,5,255,211,5,5,112,241,5,5,194,223,5,5,198,239,5,5,184,221,5,5,52,176,5,5,229,221,5,5,56,243,5,5,201,245,5,5,72,201,5,5,21,219,5,5,245,207,5,5,159,202,5,5,14,218,5,5,43,224,5,5,206,242,5,5,160,202,5,5,43,197,5,5,233,230,5,5,74,169,5,5,114,175,5,5,181,234,5,5,114,227,5,5,141,204,5,5,223,191,5,5,95,179,5,5,156,215,5,5,189,249,5,5,237,213,5,5,85,177,5,5,156,242,5,5,119,175,5,5,69,242,5,5,131,199,5,5,14,212,5,5,18,214,5,5,19,214,5,5,242,209,5,5,46,223,5,5,53,231,5,5,31,183,5,5,88,243,5,5,45,246,5,5,160,193,5,5,136,192,5,5,118,219,5,5,125,172,5,5,213,181,5,5,48,208,5,5,86,188,5,5,114,224,5,5,202,245,5,5,38,209,5,5,195,223,5,5,235,234,5,5,142,204,5,5,54,231,5,5,95,186,5,5,45,201,5,5,211,218,5,5,219,229,5,5,183,184,5,5,104,177,5,5,185,221,5,5,109,225,5,5,134,206,5,5,55,219,5,5,138,224,5,5,20,235,5,5,193,169,5,5,193,237,5,5,105,187,5,5,104,170,5,5,141,249,5,5,131,187,5,5,48,250,5,5,147,226,5,5,179,172,5,5,126,212,5,5,214,200,5,5,41,178,5,5,238,192,5,5,14,202,5,5,48,221,5,5,64,201,5,5,70,242,5,5,79,204,5,5,128,240,5,5,119,209,5,5,164,179,5,5,148,226,5,5,101,207,5,5,252,226,5,5,177,175,5,5,170,212,5,5,48,168,5,5,246,202,5,5,166,176,5,5,86,231,5,5,188,213,5,5,15,217,5,5,204,195,5,5,55,176,5,5,106,195,5,5,7,229,5,5,165,227,5,5,142,172,5,5,89,242,5,5,84,239,5,5,58,249,5,5,157,203,5,5,105,170,5,5,123,205,5,5,254,234,5,5,32,172,5,5,29,245,5,5,158,201,5,5,214,215,5,5,23,207,5,5,117,236,5,5,86,204,5,5,234,192,5,5,244,170,5,5,134,187,5,5,19,188,5,5,234,178,5,5,14,224,5,5,180,205,5,5,4,221,5,5,166,220,5,5,235,178,5,5,212,208,5,5,141,235,5,5,24,207,5,5,212,171,5,5,55,179,5,5,86,177,5,5,164,245,5,5,51,221,5,5,81,235,5,5,106,229,5,5,191,189,5,5,112,168,5,5,86,208,5,5,36,205,5,5,230,176,5,5,86,247,5,5,70,172,5,5,214,213,5,5,119,194,5,5,116,208,5,5,167,176,5,5,235,210,5,5,101,191,5,5,167,197,5,5,241,239,5,5,45,194,5,5,189,210,5,5,149,222,5,5,199,239,5,5,175,187,5,5,16,174,5,5,4,190,5,5,31,220,5,5,82,199,5,5,160,215,5,5,174,206,5,5,243,243,5,5,62,244,5,5,211,215,5,5,79,180,5,5,36,203,5,5,22,204,5,5,83,199,5,5,0,160,5,5,120,170,5,5,24,202,5,5,68,229,5,5,148,192,5,5,116,215,5,5,160,221,5,5,62,182,5,5,250,207,5,5,218,211,5,5,82,173,5,5,96,179,5,5,222,235,5,5,176,194,5,5,82,219,5,5,83,219,5,5,194,201,5,5,196,241,5,5,23,216,5,5,125,175,5,5,43,190,5,5,167,193,5,5,219,206,5,5,91,243,5,5,91,169,5,5,56,241,5,5,147,217,5,5,192,205,5,5,104,218,5,5,110,191,5,5,185,181,5,5,15,226,5,5,215,182,5,5,232,197,5,5,248,249,5,5,52,182,5,5,23,219,5,5,37,183,5,5,37,200,5,5,29,223,5,5,81,219,5,5,21,236,5,5,170,234,5,5,117,184,5,5,233,197,5,5,93,178,5,5,68,230,5,5,48,180,5,5,91,223,5,5,29,233,5,5,141,231,5,5,228,204,5,5,147,229,5,5,201,220,5,5,163,214,5,5,168,193,5,5,134,243,5,5,117,224,5,5,90,204,5,5,98,242,5,5,197,231,5,5,225,229,5,5,149,192,5,5,87,189,5,5,140,223,5,5,106,211,5,5,196,201,5,5,30,235,5,5,136,243,5,5,90,242,5,5,60,231,5,5,137,188,5,5,99,169,5,5,88,188,5,5,20,168,5,5,225,228,5,5,120,191,5,5,121,191,5,5,6,193,5,5,125,176,5,5,175,232,5,5,153,228,5,5,213,208,5,5,118,239,5,5,235,201,5,5,101,194,5,5,109,172,5,5,53,221,5,5,218,215,5,5,13,203,5,5,224,198,5,5,217,242,5,5,143,177,5,5,66,226,5,5,91,225,5,5,94,235,5,5,136,170,5,5,215,244,5,5,118,224,5,5,255,231,5,5,97,182,5,5,245,179,5,5,193,233,5,5,111,186,5,5,194,233,5,5,174,222,5,5,59,194,5,5,89,188,5,5,37,189,5,5,147,219,5,5,235,233,5,5,144,235,5,5,214,237,5,5,251,168,5,5,215,223,5,5,175,222,5,5,149,235,5,5,232,180,5,5,140,213,5,5,73,229,5,5,67,211,5,5,78,175,5,5,213,206,5,5,31,219,5,5,101,213,5,5,245,224,5,5,13,193,5,5,19,244,5,5,23,174,5,5,215,245,5,5,2,182,5,5,164,210,5,5,141,240,5,5,66,185,5,5,205,176,5,5,34,233,5,5,170,214,5,5,44,182,5,5,239,193,5,5,249,234,5,5,4,200,5,5,156,192,5,5,198,170,5,5,172,179,5,5,123,208,5,5,225,200,5,5,254,195,201,224,230,0,5,5,194,208,5,5,253,216,5,5,86,216,5,5,90,232,5,5,150,203,5,5,219,211,5,5,59,232,5,5,30,224,5,5,226,205,5,5,135,239,5,5,251,234,5,5,147,233,5,5,37,202,5,5,136,239,5,5,134,200,5,5,200,201,5,5,18,195,5,5,241,178,5,5,194,246,5,5,157,169,5,5,232,225,5,5,219,237,5,5,135,209,5,5,176,190,5,5,4,171,5,5,67,182,5,5,217,223,5,5,50,225,5,5,166,227,5,5,2,217,5,5,31,216,5,5,125,229,5,5,166,204,5,5,128,191,5,5,207,211,5,5,68,185,5,5,140,243,5,5,120,169,5,5,198,202,5,5,178,222,5,5,132,175,5,5,0,163,5,5,28,204,5,5,21,244,5,5,37,235,5,5,165,216,5,5,200,200,5,5,237,191,5,5,38,228,5,5,160,230,5,5,86,219,5,5,87,219,5,5,178,214,5,5,19,189,5,5,95,205,5,5,229,223,5,5,176,227,5,5,12,208,5,5,143,243,5,5,201,213,5,5,7,242,5,5,154,235,5,5,22,193,5,5,122,196,5,5,38,235,5,5,79,209,5,5,26,217,5,5,230,223,5,5,123,196,5,5,187,212,5,5,30,211,5,5,243,171,5,5,83,218,5,5,149,239,5,5,97,232,5,5,217,241,5,5,27,197,5,5,43,203,5,5,44,203,5,5,25,240,5,5,222,215,5,5,95,240,5,5,237,204,5,5,72,227,5,5,30,190,5,5,41,243,5,5,104,204,5,5,156,217,5,5,172,237,5,5,105,182,5,5,177,207,5,5,63,188,5,5,237,199,5,5,238,200,5,5,27,193,5,5,101,178,5,5,31,207,5,5,225,201,5,5,171,201,5,5,36,191,5,5,111,183,5,5,119,246,5,5,130,229,5,5,9,200,5,5,16,245,5,5,88,190,5,5,49,202,5,5,29,193,5,5,67,208,5,5,206,201,5,5,93,190,5,5,124,206,5,5,84,192,5,5,11,200,5,5,215,205,5,5,195,193,5,5,149,219,5,5,237,225,5,5,178,201,5,5,5,218,5,5,51,233,5,5,163,239,5,5,47,206,5,5,227,207,5,5,34,171,5,5,142,189,5,5,214,189,5,5,115,205,5,5,159,211,5,5,6,206,5,5,64,223,5,5,253,232,5,5,97,215,5,5,171,175,5,5,157,189,5,5,149,234,5,5,79,177,5,5,2,184,5,5,150,234,5,5,156,234,5,5,120,205,5,5,220,189,5,5,187,241,5,5,129,188,5,5,168,194,5,5,94,197,5,5,177,187,5,5,140,169,5,5,120,236,5,5,11,245,5,5,12,245,5,5,233,199,5,5,69,171,5,5,147,231,5,5,224,222,5,5,28,175,5,5,40,217,5,5,130,179,5,5,176,192,5,5,42,217,5,5,234,179,5,5,167,221,5,5,156,231,5,5,196,197,5,5,122,245,5,5,235,220,5,5,121,241,5,5,247,187,5,5,71,249,5,5,62,189,5,5,7,191,5,5,239,207,5,5,152,185,5,5,47,224,5,5,158,231,5,5,255,172,5,5,218,221,5,5,191,238,5,5,181,206,5,5,202,232,5,5,146,182,5,5,152,181,5,5,180,168,5,5,213,174,5,5,50,215,5,5,166,229,5,5,167,229,5,5,91,219,5,5,66,169,5,5,251,212,5,5,19,243,5,5,20,243,5,5,26,198,5,5,121,214,5,5,15,227,5,5,5,240,5,5,122,214,5,5,86,172,5,5,185,242,5,5,201,197,5,5,49,191,5,5,116,216,5,5,123,214,5,5,119,247,5,5,2,236,5,5,92,188,5,5,196,209,5,5,171,228,5,5,26,183,5,5,27,183,5,5,77,188,5,5,214,185,5,5,15,244,5,5,90,184,5,5,60,218,5,5,149,195,5,5,243,183,5,5,151,174,5,5,88,180,5,5,131,169,5,5,75,232,5,5,133,210,5,5,191,177,5,5,11,217,5,5,43,241,5,5,175,244,5,5,182,213,5,5,187,174,5,5,105,241,5,5,184,188,5,5,231,187,5,5,82,197,5,5,143,202,5,5,97,184,5,5,62,218,5,5,146,244,5,5,17,186,5,5,3,213,5,5,4,213,5,5,32,232,5,5,49,248,5,5,135,179,5,5,40,171,5,5,113,171,5,5,58,186,5,5,205,244,5,5,106,217,5,5,236,220,5,5,184,226,5,5,73,204,5,5,91,186,5,5,22,178,5,5,92,186,5,5,120,240,5,5,144,202,5,5,60,174,5,5,110,217,5,5,153,209,5,5,122,185,5,5,148,176,5,5,52,191,5,5,53,191,5,5,56,207,5,5,104,184,5,5,63,237,5,5,51,228,5,5,195,203,5,5,216,247,5,5,80,238,5,5,37,232,5,5,105,200,5,5,164,194,5,5,150,202,5,5,57,239,5,5,189,213,5,5,80,214,5,5,201,187,5,5,237,220,5,5,144,238,5,5,183,228,5,5,112,209,5,5,240,216,5,5,78,216,5,5,86,187,5,5,241,216,5,5,5,247,5,5,240,206,5,5,114,201,5,5,133,245,5,5,85,193,5,5,66,210,5,5,71,223,5,5,145,214,5,5,12,234,5,5,154,195,5,5,71,217,5,5,199,220,5,5,248,240,5,5,88,193,5,5,187,227,5,5,219,173,5,5,194,169,5,5,114,181,5,5,43,188,5,5,171,222,5,5,48,235,5,5,96,183,5,5,105,221,5,5,106,221,5,5,62,184,5,5,136,232,5,5,112,245,5,5,67,230,5,5,13,184,5,5,15,202,5,5,53,201,5,5,106,170,5,5,120,175,5,5,157,242,5,5,79,241,5,5,97,195,5,5,27,178,5,5,111,236,5,5,224,226,5,5,115,179,5,5,188,227,5,5,54,191,5,5,240,229,5,5,114,246,5,5,158,223,5,5,192,182,5,5,241,196,5,5,117,208,5,5,158,214,5,5,159,214,5,5,81,242,5,5,62,198,5,5,140,200,5,5,25,208,5,5,189,215,5,5,81,223,5,5,242,230,5,5,86,206,5,5,168,202,5,5,210,179,5,5,152,226,5,5,194,225,5,5,67,200,5,5,9,188,5,5,48,188,5,5,82,242,5,5,75,169,5,5,203,182,5,5,13,213,5,5,220,228,5,5,243,180,5,5,85,239,5,5,162,242,5,5,168,224,5,5,234,217,5,5,136,215,5,5,94,219,5,5,138,210,5,5,180,216,5,5,107,229,5,5,94,203,5,5,190,187,5,5,87,228,5,5,37,180,5,5,181,181,5,5,26,169,5,5,56,179,5,5,186,228,5,5,90,172,5,5,94,237,5,5,131,240,5,5,159,187,5,5,28,173,5,5,9,180,5,5,141,200,5,5,229,198,5,5,98,195,5,5,97,233,5,5,230,226,5,5,127,207,5,5,171,234,5,5,139,208,5,5,197,241,5,5,51,195,5,5,233,221,5,5,27,235,5,5,214,190,5,5,173,236,5,5,176,170,5,5,252,218,5,5,222,228,5,5,118,184,5,5,212,242,5,5,214,207,5,5,112,229,5,5,25,184,5,5,24,219,5,5,132,233,5,5,57,241,5,5,77,217,5,5,86,207,5,5,165,231,5,5,72,240,5,5,191,221,5,5,35,175,5,5,90,225,5,5,221,247,5,5,118,249,5,5,16,226,5,5,119,184,5,5,213,242,5,5,255,199,5,5,251,207,5,5,144,200,5,5,131,180,5,5,196,189,5,5,19,217,5,5,213,179,5,5,169,202,5,5,242,229,5,5,59,243,5,5,176,217,5,5,39,210,5,5,41,205,5,5,35,176,5,5,218,218,5,5,133,240,5,5,98,194,5,5,46,169,5,5,55,201,5,5,60,212,5,5,94,223,5,5,10,231,5,5,150,176,5,5,11,231,5,5,218,242,5,5,212,229,5,5,14,203,5,5,202,223,5,5,11,169,5,5,221,218,5,5,222,218,5,5,154,192,5,5,42,230,5,5,132,234,5,5,56,188,5,5,139,216,5,5,165,238,5,5,14,170,5,5,44,190,5,5,124,225,5,5,210,238,5,5,176,180,5,5,14,210,5,5,205,188,5,5,200,189,5,5,52,187,5,5,187,206,5,5,44,209,5,5,119,239,5,5,178,229,5,5,137,240,5,5,215,225,5,5,89,247,5,5,128,172,5,5,212,219,5,5,165,214,5,5,9,207,5,5,176,226,5,5,169,220,5,5,80,222,5,5,146,172,5,5,167,174,5,5,64,179,5,5,121,168,5,5,198,205,5,5,121,229,5,5,50,247,5,5,127,225,5,5,21,174,5,5,94,213,5,5,150,217,5,5,17,213,5,5,207,241,5,5,67,194,5,5,115,206,5,5,44,205,5,5,154,216,5,5,91,247,5,5,24,240,5,5,104,194,5,5,234,222,5,5,181,229,5,5,35,233,5,5,155,228,5,5,143,245,5,5,168,245,5,5,176,206,5,5,177,206,5,5,162,187,5,5,161,204,5,5,89,207,5,5,17,231,5,5,181,176,5,5,33,202,5,5,11,207,5,5,36,233,5,5,173,173,5,5,35,245,5,5,65,207,5,5,236,232,5,5,136,209,5,5,230,249,5,5,95,223,5,5,23,217,5,5,216,225,5,5,154,246,5,5,183,212,5,5,184,212,5,5,239,194,5,5,153,217,5,5,30,171,5,5,143,203,5,5,22,212,5,5,91,187,5,5,96,231,5,5,188,192,5,5,92,248,5,5,220,190,5,5,204,182,5,5,97,201,5,5,243,197,5,5,244,197,5,5,134,191,5,5,249,239,5,5,44,173,5,5,185,194,5,5,146,220,5,5,72,210,5,5,41,233,5,5,70,230,5,5,36,175,5,5,193,235,5,5,96,223,5,5,133,175,5,5,80,174,5,5,62,178,5,5,84,202,5,5,206,233,5,5,147,220,5,5,214,238,5,5,69,196,5,5,146,177,5,5,47,173,5,5,3,215,5,5,100,176,5,5,211,232,5,5,6,221,5,5,138,206,5,5,141,216,5,5,151,240,5,5,5,173,5,5,189,202,5,5,94,244,5,5,39,235,5,5,24,203,5,5,249,247,5,5,76,244,5,5,98,233,5,5,66,207,5,5,207,233,5,5,186,214,5,5,232,218,5,5,253,193,5,5,30,208,5,5,109,188,5,5,36,219,5,5,238,191,5,5,246,248,5,5,122,195,5,5,143,213,5,5,152,188,5,5,219,208,5,5,108,182,5,5,205,201,5,5,121,195,5,5,153,200,5,5,21,209,5,5,50,202,5,5,66,176,5,5,207,202,5,5,30,217,5,5,36,211,5,5,106,205,5,5,179,180,5,5,48,233,5,5,234,247,5,5,252,204,5,5,51,202,5,5,253,204,5,5,113,183,5,5,232,237,5,5,23,213,5,5,47,210,5,5,120,186,5,5,137,197,5,5,104,240,5,5,183,222,5,5,40,231,5,5,92,172,5,5,165,217,5,5,249,217,5,5,180,180,5,5,93,172,5,5,3,207,5,5,168,217,5,5,123,195,5,5,3,248,5,5,199,248,5,5,124,235,5,5,183,190,5,5,148,211,5,5,103,212,5,5,151,211,5,5,250,233,5,5,125,247,5,5,230,206,5,5,13,182,5,5,78,198,5,5,220,208,5,5,155,231,5,5,24,234,5,5,149,236,5,5,149,198,5,5,241,242,5,5,139,217,5,5,74,204,5,5,74,235,5,5,205,222,5,5,33,232,5,5,51,227,5,5,227,232,5,5,46,195,5,5,42,232,5,5,10,236,5,5,197,189,5,5,113,229,5,5,148,178,5,5,24,175,5,5,117,229,5,5,150,178,5,5,179,248,5,5,16,189,5,5,166,217,5,5,63,238,5,5,61,238,5,5,3,172,5,5,219,184,5,5,141,241,5,5,19,171,5,5,229,172,5,5,114,238,5,5,79,220,5,5,37,174,5,5,173,183,5,5,125,187,5,5,3,183,5,5,229,222,5,5,70,195,5,5,232,209,5,5,79,247,5,5,249,177,5,5,16,239,5,5,117,247,5,5,82,247,5,5,145,195,5,5,183,246,5,5,115,233,5,5,58,218,5,5,98,246,5,5,162,218,5,5,95,216,5,5,172,195,5,5,22,198,5,5,186,242,5,5,202,207,5,5,2,173,5,5,134,168,5,5,231,210,5,5,8,191,5,5,59,218,5,5,57,193,5,5,254,227,5,5,115,204,5,5,192,177,5,5,132,169,5,5,81,212,5,5,204,237,5,5,44,250,5,5,72,170,5,5,219,220,5,5,59,225,5,5,83,197,5,5,219,188,5,5,106,235,5,5,123,234,5,5,231,245,5,5,135,238,5,5,238,211,5,5,151,171,5,5,203,178,5,5,64,228,5,5,91,184,5,5,128,187,5,5,231,246,5,5,248,246,5,5,61,218,5,5,37,212,5,5,28,239,5,5,112,207,5,5,233,227,5,5,235,209,5,5,250,185,5,5,70,235,5,5,126,245,5,5,103,217,5,5,177,169,5,5,40,242,5,5,48,231,5,5,45,208,5,5,189,171,5,5,158,171,5,5,3,184,5,5,217,174,5,5,214,174,5,5,110,199,5,5,167,218,5,5,134,194,5,5,9,215,5,5,27,194,5,5,195,171,5,5,85,195,5,5,230,181,5,5,95,185,5,5,17,219,5,5,213,247,5,5,38,187,5,5,185,239,5,5,53,172,5,5,196,203,5,5,84,198,5,5,62,234,5,5,129,248,5,5,52,178,5,5,157,234,5,5,57,200,5,5,30,199,5,5,234,210,5,5,208,222,5,5,86,193,5,5,87,200,5,5,119,174,5,5,76,202,5,5,130,197,5,5,46,221,5,5,247,213,5,5,123,185,5,5,74,239,5,5,58,242,5,5,235,245,5,5,137,204,5,5,72,217,5,5,51,218,5,5,239,192,5,5,75,239,5,5,7,172,5,5,130,248,5,5,20,223,5,5,32,220,5,5,54,218,5,5,73,202,5,5,239,202,5,5,33,203,5,5,113,199,5,5,221,193,5,5,152,183,5,5,12,173,5,5,107,170,5,5,61,200,5,5,192,225,5,5,248,242,5,5,80,204,5,5,218,174,5,5,117,173,5,5,67,175,5,5,35,181,5,5,21,171,5,5,92,203,5,5,188,220,5,5,111,212,5,5,112,212,5,5,190,182,5,5,158,242,5,5,135,206,5,5,191,187,5,5,169,236,5,5,129,180,5,5,61,226,5,5,23,247,5,5,238,196,5,5,205,238,5,5,149,214,5,5,186,187,5,5,172,186,5,5,31,199,5,5,81,214,5,5,62,226,5,5,11,226,5,5,113,184,5,5,33,175,5,5,182,233,5,5,195,170,5,5,211,179,5,5,68,200,5,5,186,180,5,5,129,234,5,5,130,234,5,5,227,188,5,5,249,242,5,5,92,169,5,5,114,169,5,5,114,184,5,5,193,241,5,5,163,227,5,5,171,236,5,5,26,191,5,5,196,169,5,5,147,175,5,5,248,205,5,5,85,212,5,5,231,177,5,5,108,243,5,5,181,224,5,5,2,186,5,5,115,177,5,5,80,190,5,5,219,218,5,5,250,242,5,5,57,219,5,5,13,210,5,5,143,196,5,5,159,224,5,5,12,169,5,5,189,227,5,5,220,174,5,5,200,219,5,5,238,210,5,5,77,240,5,5,158,195,5,5,73,215,5,5,83,190,5,5,117,199,5,5,6,203,5,5,218,200,5,5,25,202,5,5,157,245,5,5,193,221,5,5,252,205,5,5,120,239,5,5,177,179,5,5,198,233,5,5,4,232,5,5,122,229,5,5,23,171,5,5,144,172,5,5,58,192,5,5,229,215,5,5,9,220,5,5,93,169,5,5,179,232,5,5,127,170,5,5,33,184,5,5,240,193,5,5,112,248,5,5,241,193,5,5,53,177,5,5,157,192,5,5,240,177,5,5,168,243,5,5,99,182,5,5,220,171,5,5,234,232,5,5,240,233,5,5,42,171,5,5,106,218,5,5,10,207,5,5,226,200,5,5,138,168,5,5,73,244,5,5,119,187,5,5,155,172,5,5,98,224,5,5,112,211,5,5,16,173,5,5,41,203,5,5,151,170,5,5,186,195,5,5,59,178,5,5,179,222,5,5,70,225,5,5,152,170,5,5,230,200,5,5,36,184,5,5,35,219,5,5,195,246,5,5,237,180,5,5,181,222,5,5,69,228,5,5,83,222,5,5,242,168,5,5,139,233,5,5,233,171,5,5,49,174,5,5,203,200,5,5,248,204,5,5,70,231,5,5,13,232,5,5,242,200,5,5,158,245,5,5,209,177,5,5,52,197,5,5,234,243,5,5,200,221,5,5,5,194,5,5,43,212,5,5,160,239,5,5,249,200,5,5,26,236,5,5,172,230,5,5,173,230,5,5,202,237,5,5,130,183,5,5,30,225,5,5,105,184,5,5,147,183,5,5,130,184,5,5,219,168,5,5,211,188,5,5,86,192,5,5,91,192,5,5,9,194,5,5,189,186,5,5,213,170,5,5,212,236,5,5,39,187,5,5,207,197,5,5,79,213,5,5,113,207,5,5,104,208,5,5,105,208,5,5,209,208,5,5,43,222,5,5,131,223,5,5,11,173,5,5,110,206,5,5,218,197,5,5,110,208,5,5,173,226,5,5,251,202,5,5,210,237,5,5,24,247,5,5,34,198,5,5,57,231,5,5,115,220,5,5,223,228,5,5,142,231,5,5,123,226,5,5,203,241,5,5,8,201,5,5,192,181,5,5,162,180,5,5,103,216,5,5,66,212,5,5,14,193,5,5,45,209,5,5,142,240,5,5,40,186,5,5,125,217,5,5,13,245,5,5,3,196,5,5,197,186,5,5,182,178,5,5,73,194,5,5,117,206,5,5,191,217,5,5,185,193,5,5,18,229,5,5,254,197,5,5,129,217,5,5,120,206,5,5,13,201,5,5,88,221,5,5,247,178,5,5,202,186,5,5,7,194,5,5,186,186,5,5,200,236,5,5,26,187,5,5,97,208,5,5,20,222,5,5,8,173,5,5,252,200,5,5,197,197,5,5,219,192,5,5,49,231,5,5,226,178,5,5,118,226,5,5,188,241,5,5,38,186,5,5,245,195,5,5,186,217,5,5,192,194,5,5,44,217,5,5,173,195,5,5,218,176,5,5,208,197,5,5,249,246,5,5,210,173,5,5,120,192,5,5,59,186,5,5,28,178,5,5,29,249,5,5,10,179,5,5,160,220,5,5,62,190,5,5,230,217,5,5,128,185,5,5,60,222,5,5,127,195,5,5,87,187,5,5,221,185,5,5,178,175,5,5,128,195,5,5,182,191,5,5,74,217,5,5,13,234,5,5,15,224,5,5,139,210,5,5,48,192,5,5,185,205,5,5,33,247,5,5,138,244,5,5,137,170,5,5,19,234,5,5,203,189,5,5,170,220,5,5,227,185,5,5,55,247,5,5,114,235,5,5,189,175,5,5,28,231,5,5,177,238,5,5,216,202,5,5,5,198,5,5,38,231,5,5,9,237,5,5,42,231,5,5,87,236,5,5,88,236,5,5,252,179,5,5,87,184,5,5,45,217,5,5,46,217,5,5,251,194,5,5,29,189,5,5,215,192,5,5,123,182,5,5,210,235,5,5,156,179,5,5,96,189,5,5,3,173,5,5,206,225,5,5,147,234,5,5,79,195,5,5,136,238,5,5,164,218,5,5,211,235,5,5,226,239,5,5,121,220,5,5,236,214,5,5,234,227,5,5,220,192,5,5,212,235,5,5,227,239,5,5,108,181,5,5,9,183,5,5,40,236,5,5,118,237,5,5,180,223,5,5,79,221,5,5,233,239,5,5,226,233,5,5,209,197,5,5,56,233,5,5,101,210,5,5,9,174,5,5,44,241,5,5,188,246,5,5,76,234,5,5,170,182,5,5,251,233,5,5,179,173,5,5,249,220,5,5,104,236,5,5,131,219,5,5,185,248,5,5,190,234,5,5,43,239,5,5,44,239,5,5,252,223,5,5,158,174,5,5,150,188,5,5,47,221,5,5,188,188,5,5,231,234,5,5,236,245,5,5,52,248,5,5,72,246,5,5,29,186,5,5,30,249,5,5,78,249,5,5,208,244,5,5,96,186,5,5,106,184,5,5,222,193,5,5,201,179,5,5,76,204,5,5,11,179,5,5,105,237,5,5,151,202,5,5,67,210,5,5,38,212,5,5,187,247,5,5,243,184,5,5,58,239,5,5,88,197,5,5,208,237,5,5,177,244,5,5,145,238,5,5,146,238,5,5,174,217,5,5,99,245,5,5,190,213,5,5,91,170,5,5,84,234,5,5,111,217,5,5,197,168,5,5,138,177,5,5,212,249,5,5,161,225,5,5,14,248,5,5,111,176,5,5,134,245,5,5,243,240,5,5,192,234,5,5,182,235,5,5,76,239,5,5,240,190,5,5,193,188,5,5,61,222,5,5,225,172,5,5,82,233,5,5,186,221,5,5,253,188,5,5,241,172,5,5,33,186,5,5,88,187,5,5,231,217,5,5,95,191,5,5,99,195,5,5,63,190,5,5,160,184,5,5,197,232,5,5,219,228,5,5,49,221,5,5,189,247,5,5,22,227,5,5,49,208,5,5,210,244,5,5,53,209,5,5,179,181,5,5,23,191,5,5,115,236,5,5,77,234,5,5,173,186,5,5,15,182,5,5,137,171,5,5,166,226,5,5,152,238,5,5,191,201,5,5,217,247,5,5,180,199,5,5,122,199,5,5,38,230,5,5,71,242,5,5,224,225,5,5,248,192,5,5,25,247,5,5,175,218,5,5,231,176,5,5,66,201,5,5,116,181,5,5,189,199,5,5,210,181,5,5,67,222,5,5,245,226,5,5,30,178,5,5,197,169,5,5,29,173,5,5,110,241,5,5,44,199,5,5,48,216,5,5,101,216,5,5,228,222,5,5,49,168,5,5,250,241,5,5,85,233,5,5,123,174,5,5,157,195,5,5,140,232,5,5,40,230,5,5,152,230,5,5,80,185,5,5,182,223,5,5,252,171,5,5,102,191,5,5,102,196,5,5,36,223,5,5,10,246,5,5,37,223,5,5,130,180,5,5,27,190,5,5,171,173,5,5,11,223,5,5,110,195,5,5,13,199,5,5,117,217,5,5,201,176,5,5,59,233,5,5,89,224,5,5,187,228,5,5,51,232,5,5,216,182,5,5,166,174,5,5,206,224,5,5,96,239,5,5,185,210,5,5,246,239,5,5,168,179,5,5,33,213,5,5,231,248,5,5,83,173,5,5,245,173,5,5,178,248,5,5,254,192,5,5,90,214,5,5,39,225,5,5,165,248,5,5,69,229,5,5,242,196,5,5,207,216,5,5,49,180,5,5,74,246,5,5,65,244,5,5,173,249,5,5,71,215,5,5,232,248,5,5,107,203,5,5,52,194,5,5,183,175,5,5,103,188,5,5,98,206,5,5,81,221,5,5,22,171,5,5,70,190,5,5,74,213,5,5,198,241,5,5,215,179,5,5,172,234,5,5,81,213,5,5,77,222,5,5,31,235,5,5,78,222,5,5,183,191,5,5,71,190,5,5,193,181,5,5,126,247,5,5,62,179,5,5,135,233,5,5,28,184,5,5,41,214,5,5,231,226,5,5,60,194,5,5,215,214,5,5,99,242,5,5,43,249,5,5,91,248,5,5,92,231,5,5,122,191,5,5,205,239,5,5,53,168,5,5,53,232,5,5,31,210,5,5,22,174,5,5,132,183,5,5,224,247,5,5,70,237,5,5,243,236,5,5,218,190,5,5,32,235,5,5,139,185,5,5,179,211,5,5,91,214,5,5,157,209,5,5,39,238,5,5,118,229,5,5,16,234,5,5,230,225,5,5,155,247,5,5,143,220,5,5,242,193,5,5,217,213,5,5,39,200,5,5,243,190,5,5,229,191,5,5,106,185,5,5,143,240,5,5,50,208,5,5,68,233,5,5,124,208,5,5,95,231,5,5,200,215,5,5,248,173,5,5,131,235,5,5,22,226,5,5,31,224,5,5,79,169,5,5,201,174,5,5,74,215,5,5,81,222,5,5,124,194,5,5,219,242,5,5,199,233,5,5,234,188,5,5,174,225,5,5,167,237,5,5,168,237,5,5,68,205,5,5,210,241,5,5,5,171,5,5,211,176,5,5,221,216,5,5,34,202,5,5,72,209,5,5,73,209,5,5,171,220,5,5,145,245,5,5,56,209,5,5,248,193,5,5,74,244,5,5,53,195,5,5,19,203,5,5,45,205,5,5,112,172,5,5,208,211,5,5,144,187,5,5,63,231,5,5,241,248,5,5,123,168,5,5,124,168,5,5,210,195,5,5,146,245,5,5,174,238,5,5,167,189,5,5,148,194,5,5,250,206,5,5,199,173,5,5,60,188,5,5,46,190,5,5,90,173,5,5,173,234,5,5,114,244,5,5,4,220,5,5,29,231,5,5,140,244,5,5,236,180,5,5,77,246,5,5,74,210,5,5,231,200,5,5,123,181,5,5,96,240,5,5,247,197,5,5,72,192,5,5,18,250,5,5,241,194,5,5,242,171,5,5,138,191,5,5,114,248,5,5,73,230,5,5,99,244,5,5,154,244,5,5,237,221,5,5,58,216,5,5,52,225,5,5,100,244,5,5,46,214,5,5,142,221,5,5,40,235,5,5,37,244,5,5,55,225,5,5,68,178,5,5,103,224,5,5,98,232,5,5,75,192,5,5,22,195,5,5,70,196,5,5,15,245,5,5,45,210,5,5,96,238,5,5,0,164,5,5,223,244,5,5,54,213,5,5,62,191,5,5,75,190,5,5,150,239,5,5,151,239,5,5,148,220,5,5,97,218,5,5,129,211,5,5,140,215,5,5,239,180,5,5,218,224,5,5,12,190,5,5,158,247,5,5,110,188,5,5,30,168,5,5,100,240,5,5,76,194,5,5,120,242,5,5,4,194,5,5,145,191,5,5,146,180,5,5,149,245,5,5,88,235,5,5,231,243,5,5,207,201,5,5,89,221,5,5,132,229,5,5,96,173,5,5,220,202,5,5,178,238,5,5,227,170,5,5,150,245,5,5,10,237,5,5,204,181,5,5,85,175,5,5,134,229,5,5,86,175,5,5,224,237,5,5,59,173,5,5,98,218,5,5,28,240,5,5,247,200,5,5,50,174,5,5,142,233,5,5,39,211,5,5,104,190,5,5,235,243,5,5,165,239,5,5,73,178,5,5,230,244,5,5,20,237,5,5,155,180,5,5,81,236,5,5,193,192,5,5,247,179,5,5,74,184,5,5,142,218,5,5,248,191,5,5,60,195,5,5,95,189,5,5,205,225,5,5,95,218,5,5,116,220,5,5,218,214,5,5,219,227,5,5,198,235,5,5,227,238,5,5,199,235,5,5,194,192,5,5,145,218,5,5,112,194,5,5,68,191,5,5,191,211,5,5,57,197,5,5,27,236,5,5,98,210,5,5,182,234,5,5,97,181,5,5,96,206,5,5,68,234,5,5,175,223,5,5,129,183,5,5,241,220,5,5,159,182,5,5,183,197,5,5,66,246,5,5,77,186,5,5,145,188,5,5,162,213,5,5,203,249,5,5,208,221,5,5,82,234,5,5,168,244,5,5,236,223,5,5,221,245,5,5,251,178,5,5,129,247,5,5,102,176,5,5,92,217,5,5,89,245,5,5,51,170,5,5,243,238,5,5,108,238,5,5,170,199,5,5,185,201,5,5,21,222,5,5,165,186,5,5,168,221,5,5,107,192,5,5,255,190,5,5,91,174,5,5,203,247,5,5,26,221,5,5,55,190,5,5,13,178,5,5,21,186,5,5,207,217,5,5,72,187,5,5,166,235,5,5,4,239,5,5,25,246,5,5,148,184,5,5,191,232,5,5,237,172,5,5,173,191,5,5,185,234,5,5,134,247,5,5,146,195,5,5,31,230,5,5,232,241,5,5,41,216,5,5,129,230,5,5,72,185,5,5,102,241,5,5,75,191,5,5,186,199,5,5,34,223,5,5,177,223,5,5,209,181,5,5,202,216,5,5,209,247,5,5,164,249,5,5,169,211,5,5,123,180,5,5,213,248,5,5,208,182,5,5,2,199,5,5,38,229,5,5,155,241,5,5,14,221,5,5,75,221,5,5,157,179,5,5,69,173,5,5,100,203,5,5,177,248,5,5,76,224,5,5,26,225,5,5,76,221,5,5,29,239,5,5,152,209,5,5,10,174,5,5,191,179,5,5,238,190,5,5,28,194,5,5,118,233,5,5,129,235,5,5,15,238,5,5,97,229,5,5,159,181,5,5,41,242,5,5,8,235,5,5,19,173,5,5,15,249,5,5,41,168,5,5,216,236,5,5,38,179,5,5,47,208,5,5,68,213,5,5,151,234,5,5,60,209,5,5,66,178,5,5,253,223,5,5,177,233,5,5,140,237,5,5,70,169,5,5,51,222,5,5,58,215,5,5,107,208,5,5,197,195,5,5,242,206,5,5,135,245,5,5,230,193,5,5,55,209,5,5,34,225,5,5,98,244,5,5,19,216,5,5,215,200,5,5,40,214,5,5,224,197,5,5,238,236,5,5,137,215,5,5,212,244,5,5,47,174,5,5,78,186,5,5,51,215,5,5,69,189,5,5,159,231,5,5,125,192,5,5,80,189,5,5,235,187,5,5,36,189,5,5,18,231,5,5,19,231,5,5,191,191,5,5,144,203,5,5,21,188,5,5,147,180,5,5,254,204,5,5,91,180,5,5,90,194,5,5,204,214,5,5,44,222,5,5,77,202,5,5,174,178,5,5,89,228,5,5,13,170,5,5,218,222,5,5,150,232,5,5,105,183,5,5,59,247,5,5,65,247,5,5,21,237,5,5,22,237,5,5,243,221,5,5,161,175,5,5,12,191,5,5,206,227,5,5,45,239,5,5,207,227,5,5,46,239,5,5,145,193,5,5,183,168,5,5,134,189,5,5,169,181,5,5,115,175,5,5,223,232,5,5,169,190,5,5,161,193,5,5,23,199,5,5,161,184,5,5,95,197,5,5,190,183,5,5,243,230,5,5,61,171,5,5,100,188,5,5,91,242,5,5,225,247,5,5,69,193,5,5,42,183,5,5,20,231,5,5,221,171,5,5,148,229,5,5,131,190,5,5,70,171,5,5,242,178,5,5,123,249,5,5,46,183,5,5,142,239,5,5,202,246,5,5,127,169,5,5,249,172,5,5,79,168,5,5,5,213,5,5,238,209,5,5,221,212,5,5,18,186,5,5,240,209,5,5,107,241,5,5,137,179,5,5,113,209,5,5,134,223,5,5,99,234,5,5,121,190,5,5,62,200,5,5,194,188,5,5,97,188,5,5,120,209,5,5,84,168,5,5,125,207,5,5,22,202,5,5,140,210,5,5,43,170,5,5,4,242,5,5,70,193,5,5,144,227,5,5,68,207,5,5,18,213,5,5,21,231,5,5,131,239,5,5,116,197,5,5,134,209,5,5,107,175,5,5,53,225,5,5,105,190,5,5,14,198,5,5,164,169,5,5,179,245,5,5,180,242,5,5,88,184,5,5,52,172,5,5,243,185,5,5,211,225,5,5,137,238,5,5,79,188,5,5,108,228,5,5,134,213,5,5,217,191,5,5,129,182,5,5,15,225,5,5,223,186,5,5,55,244,5,5,250,246,5,5,12,182,5,5,53,248,5,5,52,222,5,5,92,170,5,5,31,249,5,5,14,182,5,5,104,187,5,5,80,213,5,5,190,170,5,5,217,206,5,5,194,177,5,5,154,221,5,5,210,199,5,5,236,182,5,5,182,226,5,5,147,238,5,5,190,174,5,5,117,207,5,5,222,188,5,5,93,170,5,5,172,205,5,5,20,204,5,5,96,191,5,5,162,184,5,5,72,213,5,5,32,249,5,5,108,193,5,5,236,234,5,5,91,244,5,5,216,194,5,5,163,184,5,5,241,243,5,5,39,194,5,5,73,240,5,5,219,235,5,5,11,246,5,5,230,220,5,5,62,171,5,5,63,171,5,5,75,217,5,5,231,220,5,5,231,175,5,5,244,243,5,5,150,247,5,5,190,200,5,5,219,243,5,5,151,176,5,5,246,173,5,5,177,220,5,5,124,226,5,5,113,212,5,5,182,185,5,5,52,232,5,5,232,206,5,5,53,194,5,5,90,224,5,5,120,184,5,5,82,225,5,5,202,176,5,5,203,176,5,5,34,247,5,5,49,192,5,5,63,245,5,5,163,180,5,5,249,195,5,5,78,234,5,5,65,176,5,5,111,243,5,5,119,169,5,5,184,243,5,5,192,200,5,5,146,183,5,5,133,172,5,5,66,192,5,5,162,221,5,5,132,239,5,5,113,248,5,5,126,184,5,5,41,186,5,5,164,219,5,5,75,244,5,5,145,203,5,5,137,239,5,5,252,168,5,5,35,174,5,5,156,228,5,5,52,247,5,5,170,248,5,5,8,171,5,5,63,243,5,5,120,244,5,5,47,178,5,5,226,243,5,5,254,236,5,5,29,214,5,5,149,220,5,5,158,228,5,5,154,240,5,5,4,196,5,5,248,184,5,5,63,232,5,5,245,243,5,5,159,170,5,5,148,180,5,5,164,222,5,5,8,237,5,5,178,220,5,5,89,235,5,5,21,205,5,5,250,184,5,5,247,243,5,5,161,169,5,5,172,245,5,5,77,184,5,5,172,242,5,5,240,185,5,5,51,172,5,5,47,244,5,5,21,232,5,5,245,168,5,5,53,245,5,5,207,191,5,5,210,246,5,5,121,182,5,5,11,225,5,5,132,213,5,5,186,170,5,5,22,186,5,5,32,248,5,5,217,186,5,5,11,182,5,5,16,194,5,5,210,169,5,5,33,222,5,5,179,226,5,5,98,187,5,5,204,199,5,5,185,177,5,5,110,207,5,5,227,182,5,5,218,188,5,5,125,238,5,5,89,244,5,5,232,246,5,5,101,193,5,5,79,191,5,5,9,249,5,5,18,204,5,5,150,205,5,5,240,243,5,5,10,249,5,5,156,184,5,5,226,195,5,5,60,217,5,5,3,246,5,5,186,200,5,5,226,220,5,5,107,184,5,5,160,180,5,5,29,192,5,5,160,222,5,5,176,220,5,5,149,176,5,5,94,170,5,5,147,247,5,5,177,185,5,5,109,212,5,5,253,177,5,5,189,200,5,5,141,183,5,5,163,248,5,5,115,184,5,5,107,248,5,5,162,219,5,5,66,244,5,5,244,236,5,5,220,243,5,5,60,243,5,5,119,244,5,5,144,220,5,5,144,240,5,5,249,184,5,5,227,174,5,5,212,230,5,5,250,220,5,5,33,210,5,5,23,227,5,5,133,231,5,5,63,174,5,5,228,188,5,5,74,174,5,5,156,245,5,5,199,231,5,5,128,225,5,5,182,249,5,5,181,249,5,5,120,202,5,5,153,196,5,5,89,184,5,5,94,245,5,5,220,184,5,5,205,214,5,5,122,220,5,5,234,216,5,5,6,240,5,5,77,232,5,5,16,249,5,5,210,197,5,5,148,216,5,5,188,174,5,5,94,176,5,5,40,174,5,5,41,174,5,5,202,179,5,5,235,196,5,5,181,173,5,5,209,178,5,5,127,231,5,5,209,244,5,5,219,197,5,5,28,243,5,5,112,217,5,5,137,192,5,5,192,174,5,5,121,175,5,5,150,186,5,5,130,235,5,5,33,249,5,5,149,226,5,5,60,181,5,5,200,203,5,5,227,184,5,5,141,224,5,5,232,176,5,5,58,231,5,5,104,245,5,5,16,224,5,5,17,240,5,5,18,197,5,5,54,194,5,5,38,218,5,5,153,225,5,5,82,176,5,5,26,177,5,5,186,205,5,5,187,217,5,5,94,178,5,5,21,217,5,5,44,249,5,5,19,226,5,5,123,217,5,5,5,175,5,5,224,190,5,5,32,216,5,5,6,216,5,5,19,195,5,5,38,244,5,5,72,226,5,5,4,182,5,5,215,243,5,5,216,243,5,5,191,249,5,5,225,211,5,5,128,169,5,5,108,199,5,5,210,198,5,5,3,181,5,5,211,197,5,5,180,183,5,5,27,174,5,5,213,193,5,5,174,182,5,5,189,246,5,5,176,224,5,5,25,243,5,5,214,168,5,5,134,214,5,5,26,243,5,5,182,215,5,5,35,228,5,5,235,224,5,5,59,239,5,5,204,210,5,5,77,204,5,5,207,207,5,5,198,168,5,5,175,179,5,5,97,199,5,5,4,228,5,5,61,193,5,5,96,176,5,5,88,212,5,5,13,215,5,5,54,248,5,5,236,196,5,5,93,179,5,5,139,246,5,5,184,183,5,5,11,212,5,5,91,197,5,5,92,220,5,5,236,171,5,5,135,210,5,5,89,197,5,5,152,202,5,5,160,185,5,5,153,238,5,5,34,192,5,5,81,181,5,5,83,232,5,5,165,194,5,5,82,181,5,5,218,247,5,5,232,217,5,5,129,199,5,5,76,248,5,5,106,187,5,5,245,216,5,5,15,200,5,5,198,232,5,5,246,174,5,5,173,205,5,5,73,213,5,5,15,247,5,5,89,193,5,5,174,226,5,5,64,172,5,5,38,194,5,5,140,177,5,5,240,215,5,5,108,170,5,5,243,231,5,5,83,181,5,5,35,192,5,5,16,197,5,5,249,192,5,5,146,222,5,5,120,227,5,5,179,175,5,5,103,196,5,5,8,211,5,5,21,233,5,5,33,172,5,5,108,235,5,5,60,177,5,5,183,209,5,5,147,222,5,5,81,203,5,5,250,240,5,5,220,194,5,5,71,175,5,5,246,215,5,5,155,209,5,5,207,224,5,5,55,194,5,5,164,214,5,5,243,229,5,5,70,229,5,5,68,176,5,5,111,195,5,5,150,192,5,5,12,211,5,5,243,196,5,5,13,211,5,5,87,206,5,5,187,205,5,5,241,201,5,5,81,190,5,5,105,197,5,5,198,174,5,5,137,228,5,5,237,217,5,5,243,225,5,5,215,171,5,5,199,249,5,5,84,216,5,5,207,238,5,5,235,176,5,5,119,249,5,5,66,172,5,5,120,249,5,5,200,212,5,5,35,247,5,5,47,246,5,5,97,179,5,5,149,246,5,5,204,241,5,5,47,181,5,5,23,181,5,5,225,175,5,5,253,240,5,5,109,247,5,5,63,179,5,5,163,244,5,5,33,174,5,5,201,175,5,5,56,194,5,5,153,186,5,5,125,225,5,5,47,197,5,5,29,184,5,5,200,249,5,5,216,179,5,5,76,213,5,5,253,218,5,5,180,211,5,5,20,226,5,5,230,172,5,5,181,227,5,5,243,193,5,5,131,178,5,5,77,177,5,5,93,214,5,5,211,224,5,5,201,215,5,5,212,210,5,5,76,179,5,5,23,226,5,5,158,192,5,5,21,211,5,5,249,206,5,5,126,204,5,5,224,243,5,5,143,170,5,5,27,175,5,5,200,205,5,5,146,203,5,5,240,176,5,5,93,225,5,5,206,177,5,5,32,224,5,5,97,231,5,5,17,200,5,5,70,192,5,5,155,246,5,5,203,215,5,5,243,178,5,5,23,212,5,5,124,249,5,5,20,203,5,5,4,170,5,5,8,244,5,5,214,210,5,5,43,171,5,5,177,227,5,5,24,197,5,5,183,178,5,5,197,172,5,5,7,232,5,5,101,182,5,5,137,175,5,5,94,247,5,5,253,180,5,5,168,171,5,5,242,176,5,5,243,176,5,5,248,197,5,5,249,197,5,5,29,204,5,5,184,224,5,5,7,216,5,5,176,197,5,5,47,214,5,5,113,203,5,5,254,180,5,5,249,176,5,5,234,186,5,5,39,244,5,5,148,177,5,5,156,170,5,5,157,170,5,5,250,247,5,5,118,197,5,5,134,175,5,5,59,216,5,5,4,181,5,5,83,175,5,5,79,192,5,5,110,230,5,5,45,243,5,5,215,210,5,5,30,204,5,5,209,203,5,5,157,246,5,5,217,202,5,5,62,247,5,5,56,173,5,5,139,175,5,5,205,180,5,5,133,229,5,5,255,204,5,5,31,204,5,5,14,232,5,5,135,229,5,5,216,249,5,5,248,200,5,5,212,233,5,5,87,218,5,5,135,219,5,5,40,211,5,5,219,224,5,5,167,217,5,5,167,192,5,5,251,176,5,5,90,177,5,5,102,231,5,5,13,200,5,5,15,198,5,5,32,204,5,5,19,221,5,5,215,185,5,5,224,177,5,5,10,183,5,5,107,217,5,5,38,226,5,5,61,181,5,5,62,181,5,5,222,185,5,5,56,201,5,5,139,218,5,5,136,206,5,5,0,161,5,5,50,192,5,5,19,197,5,5,142,225,5,5,56,199,5,5,128,201,5,5,176,236,5,5,193,207,5,5,168,198,5,5,126,217,5,5,46,205,5,5,131,201,5,5,66,181,5,5,156,246,5,5,255,236,5,5,41,226,5,5,153,178,5,5,106,240,5,5,133,242,5,5,213,173,5,5,32,236,5,5,79,187,5,5,23,198,5,5,94,229,5,5,21,243,5,5,248,233,5,5,187,177,5,5,6,235,5,5,124,182,5,5,165,218,5,5,89,220,5,5,187,199,5,5,135,222,5,5,208,227,5,5,11,174,5,5,193,177,5,5,160,181,5,5,239,209,5,5,135,214,5,5,79,207,5,5,69,219,5,5,188,199,5,5,104,215,5,5,97,248,5,5,31,189,5,5,158,189,5,5,146,217,5,5,211,199,5,5,12,179,5,5,78,204,5,5,195,177,5,5,101,168,5,5,237,245,5,5,130,182,5,5,181,199,5,5,91,237,5,5,150,212,5,5,188,169,5,5,60,186,5,5,61,186,5,5,83,212,5,5,55,248,5,5,237,218,5,5,170,181,5,5,199,168,5,5,161,247,5,5,190,246,5,5,141,237,5,5,215,198,5,5,60,239,5,5,6,247,5,5,62,222,5,5,191,213,5,5,234,181,5,5,237,185,5,5,13,197,5,5,6,195,5,5,8,187,5,5,195,188,5,5,107,198,5,5,233,217,5,5,148,247,5,5,193,243,5,5,16,247,5,5,229,220,5,5,106,203,5,5,83,242,5,5,200,220,5,5,54,241,5,5,149,228,5,5,15,240,5,5,138,245,5,5,136,228,5,5,64,184,5,5,181,216,5,5,151,247,5,5,141,210,5,5,234,201,5,5,140,245,5,5,9,245,5,5,108,203,5,5,40,249,5,5,31,191,5,5,188,228,5,5,83,176,5,5,192,187,5,5,143,198,5,5,208,238,5,5,176,212,5,5,164,215,5,5,136,187,5,5,210,210,5,5,196,213,5,5,210,186,5,5,200,169,5,5,88,206,5,5,246,211,5,5,83,203,5,5,74,219,5,5,254,218,5,5,155,192,5,5,71,237,5,5,54,232,5,5,219,175,5,5,216,176,5,5,37,176,5,5,140,185,5,5,59,241,5,5,38,189,5,5,150,222,5,5,124,184,5,5,45,249,5,5,30,184,5,5,149,229,5,5,231,169,5,5,247,244,5,5,208,241,5,5,150,229,5,5,175,225,5,5,115,186,5,5,217,245,5,5,201,231,5,5,220,242,5,5,201,205,5,5,186,194,5,5,197,173,5,5,99,248,5,5,126,229,5,5,171,191,5,5,121,235,5,5,148,245,5,5,20,195,5,5,14,245,5,5,254,171,5,5,119,201,5,5,47,183,5,5,68,182,5,5,247,203,5,5,144,185,5,5,2,220,5,5,147,198,5,5,137,190,5,5,216,238,5,5,162,192,5,5,171,248,5,5,240,181,5,5,121,242,5,5,77,194,5,5,41,189,5,5,173,201,5,5,131,212,5,5,218,202,5,5,221,202,5,5,107,205,5,5,33,204,5,5,211,173,5,5,24,236,5,5,68,187,5,5,2,235,5,5,170,177,5,5,156,218,5,5,95,248,5,5,143,181,5,5,73,206,5,5,66,219,5,5,27,189,5,5,51,186,5,5,207,198,5,5,78,205,5,5,160,247,5,5,184,246,5,5,17,239,5,5,152,189,5,5,226,245,5,5,121,202,5,5,132,237,5,5,169,216,5,5,40,222,5,5,191,243,5,5,233,246,5,5,254,194,5,5,137,247,5,5,214,217,5,5,151,205,5,5,255,194,5,5,131,245,5,5,56,184,5,5,101,203,5,5,205,210,5,5,189,169,5,5,17,191,5,5,129,187,5,5,184,228,5,5,76,203,5,5,79,176,5,5,25,249,5,5,215,176,5,5,14,184,5,5,138,192,5,5,144,229,5,5,144,222,5,5,127,212,5,5,209,242,5,5,194,231,5,5,206,210,5,5,188,205,5,5,142,245,5,5,239,203,5,5,218,233,5,5,62,186,5,5,112,176,5,5,115,176,5,5,46,213,5,5,245,249,5,5,218,170,5,5,142,200,5,5,143,200,5,5,120,176,5,5,95,235,5,5,44,169,5,5,221,170,5,5,222,170,5,5,223,170,5,5,96,235,5,5,224,170,5,5,14,169,5,5,128,176,5,5,225,170,5,5,226,170,5,5,253,173,5,5,44,219,5,5,101,211,5,5,103,211,5,5,91,173,5,5,71,176,5,5,70,176,5,5,60,238,5,5,179,218,5,5,164,170,5,5,165,170,5,5,204,221,5,5,113,241,5,5,114,203,5,5,119,177,5,5,7,173,5,5,190,184,5,5,34,215,5,5,116,241,5,5,117,241,5,5,222,214,5,5,202,235,5,5,104,238,5,5,196,187,5,5,222,206,5,5,59,214,5,5,151,243,5,5,193,228,5,5,135,227,5,5,174,248,5,5,111,240,5,5,120,177,5,5,116,243,5,5,216,195,5,5,69,188,5,5,30,236,5,5,113,182,5,5,123,230,5,5,121,177,5,5,100,181,5,5,206,187,5,5,159,245,5,5,122,177,5,5,217,195,5,5,229,242,5,5,237,228,5,5,231,202,5,5,179,174,5,5,226,173,5,5,170,210,5,5,142,226,5,5,211,246,5,5,115,238,5,5,128,196,5,5,45,193,5,5,255,173,5,5,177,177,5,5,246,181,5,5,219,178,5,5,226,213,5,5,33,248,5,5,179,179,5,5,48,244,5,5,180,225,5,5,192,222,5,5,250,227,5,5,193,217,5,5,75,196,5,5,47,191,5,5,61,180,5,5,103,241,5,5,44,208,5,5,253,169,5,5,11,192,5,5,2,210,5,5,126,238,5,5,74,195,5,5,143,248,5,5,183,203,5,5,207,235,5,5,184,227,5,5,178,223,5,5,34,222,5,5,183,225,5,5,55,212,5,5,131,189,5,5,173,210,5,5,12,181,5,5,131,196,5,5,57,235,5,5,208,235,5,5,248,171,5,5,12,241,5,5,254,232,5,5,53,217,5,5,73,227,5,5,243,247,5,5,54,217,5,5,27,179,5,5,28,179,5,5,102,227,5,5,86,196,5,5,51,226,5,5,95,180,5,5,196,238,5,5,162,245,5,5,249,226,5,5,18,187,5,5,135,230,5,5,41,222,5,5,139,174,5,5,244,223,5,5,27,244,5,5,48,218,5,5,121,183,5,5,236,202,5,5,166,224,5,5,50,191,5,5,71,202,5,5,85,186,5,5,174,200,5,5,228,169,5,5,100,177,5,5,212,197,5,5,254,169,5,5,158,190,5,5,167,177,5,5,159,205,5,5,45,241,5,5,143,247,5,5,230,195,5,5,42,242,5,5,67,176,5,5,240,199,5,5,203,228,5,5,56,226,5,5,47,239,5,5,136,177,5,5,231,242,5,5,107,206,5,5,10,170,5,5,172,211,5,5,177,241,5,5,86,178,5,5,65,224,5,5,15,181,5,5,79,224,5,5,165,236,5,5,214,175,5,5,191,174,5,5,5,226,5,5,59,242,5,5,225,221,5,5,193,245,5,5,48,241,5,5,125,243,5,5,171,181,5,5,216,170,5,5,197,187,5,5,172,181,5,5,187,231,5,5,200,190,5,5,68,217,5,5,141,178,5,5,139,177,5,5,4,229,5,5,28,210,5,5,148,238,5,5,34,186,5,5,150,237,5,5,100,175,5,5,143,204,5,5,217,235,5,5,199,224,5,5,49,179,5,5,193,174,5,5,232,242,5,5,8,224,5,5,200,224,5,5,133,215,5,5,184,206,5,5,151,237,5,5,229,186,5,5,30,245,5,5,113,168,5,5,68,222,5,5,45,172,5,5,252,174,5,5,17,224,5,5,6,244,5,5,115,245,5,5,20,181,5,5,57,179,5,5,37,205,5,5,199,174,5,5,74,177,5,5,234,203,5,5,6,250,5,5,112,218,5,5,72,215,5,5,60,235,5,5,92,242,5,5,161,238,5,5,186,181,5,5,131,203,5,5,112,197,5,5,79,222,5,5,138,170,5,5,124,237,5,5,233,206,5,5,195,233,5,5,99,224,5,5,210,187,5,5,216,244,5,5,227,225,5,5,3,182,5,5,195,208,5,5,178,170,5,5,181,170,5,5,126,200,5,5,38,202,5,5,224,242,5,5,173,237,5,5,125,206,5,5,87,202,5,5,244,238,5,5,213,226,5,5,187,178,5,5,193,214,5,5,190,240,5,5,70,220,5,5,240,187,5,5,129,241,5,5,33,207,5,5,11,219,5,5,226,216,5,5,167,230,5,5,195,199,5,5,163,183,5,5,176,198,5,5,48,171,5,5,138,182,5,5,25,234,5,5,225,209,5,5,214,233,5,5,66,221,5,5,47,169,5,5,173,242,5,5,57,177,5,5,200,191,5,5,102,233,5,5,53,169,5,5,25,230,5,5,64,197,5,5,29,241,5,5,242,187,5,5,227,224,5,5,6,217,5,5,52,170,5,5,206,212,5,5,100,171,5,5,215,220,5,5,165,169,5,5,61,228,5,5,252,178,5,5,162,249,5,5,2,238,5,5,215,203,5,5,171,199,5,5,27,187,5,5,204,247,5,5,169,221,5,5,90,199,5,5,20,242,5,5,149,184,5,5,161,188,5,5,68,216,5,5,212,246,5,5,108,192,5,5,108,190,5,5,126,189,5,5,29,234,5,5,153,194,5,5,45,231,5,5,44,187,5,5,163,211,5,5,35,201,5,5,76,193,5,5,139,199,5,5,67,246,5,5,54,201,5,5,118,243,5,5,93,236,5,5,92,174,5,5,92,180,5,5,186,230,5,5,232,205,5,5,50,184,5,5,53,230,5,5,236,183,5,5,73,185,5,5,112,188,5,5,36,201,5,5,78,193,5,5,185,185,5,5,45,198,5,5,160,240,5,5,183,171,5,5,118,231,5,5,171,169,5,5,122,202,5,5,77,243,5,5,28,172,5,5,53,233,5,5,67,214,5,5,252,212,5,5,172,216,5,5,148,187,5,5,138,247,5,5,27,225,5,5,165,249,5,5,169,213,5,5,165,200,5,5,127,210,5,5,239,173,5,5,40,241,5,5,34,172,5,5,163,232,5,5,222,177,5,5,8,197,5,5,206,240,5,5,238,215,5,5,75,238,5,5,76,180,5,5,155,236,5,5,150,207,5,5,113,219,5,5,182,169,5,5,161,181,5,5,136,222,5,5,158,197,5,5,241,241,5,5,120,243,5,5,108,189,5,5,241,199,5,5,166,232,5,5,167,232,5,5,187,223,5,5,105,225,5,5,34,209,5,5,227,230,5,5,45,219,5,5,174,175,5,5,26,249,5,5,170,249,5,5,20,238,5,5,36,230,5,5,172,232,5,5,82,243,5,5,126,188,5,5,194,240,5,5,40,170,5,5,118,207,5,5,189,173,5,5,188,183,5,5,156,203,5,5,239,239,5,5,82,248,5,5,252,189,5,5,241,215,5,5,68,236,5,5,22,245,5,5,15,207,5,5,242,215,5,5,194,234,5,5,189,178,5,5,147,170,5,5,184,235,5,5,121,170,5,5,103,244,5,5,8,229,5,5,75,246,5,5,126,207,5,5,131,220,5,5,229,203,5,5,215,213,5,5,232,177,5,5,252,207,5,5,34,238,5,5,154,172,5,5,148,199,5,5,101,183,5,5,253,207,5,5,174,249,5,5,214,199,5,5,40,203,5,5,222,243,5,5,41,173,5,5,18,241,5,5,67,192,5,5,248,236,5,5,48,173,5,5,88,177,5,5,101,204,5,5,99,190,5,5,37,231,5,5,108,183,5,5,229,243,5,5,211,202,5,5,67,241,5,5,235,179,5,5,47,217,5,5,214,248,5,5,125,212,5,5,183,247,5,5,197,238,5,5,203,184,5,5,156,241,5,5,177,196,5,5,156,236,5,5,239,249,5,5,80,207,5,5,4,246,5,5,223,234,5,5,101,180,5,5,190,245,5,5,11,183,5,5,188,242,5,5,133,184,5,5,121,243,5,5,4,225,5,5,78,226,5,5,14,215,5,5,5,228,5,5,228,176,5,5,232,187,5,5,63,186,5,5,224,223,5,5,236,213,5,5,68,175,5,5,194,243,5,5,50,209,5,5,124,201,5,5,80,176,5,5,69,175,5,5,109,241,5,5,24,227,5,5,192,246,5,5,244,231,5,5,136,194,5,5,125,174,5,5,38,240,5,5,121,227,5,5,11,195,5,5,167,207,5,5,115,199,5,5,38,224,5,5,216,201,5,5,21,214,5,5,247,249,5,5,215,187,5,5,236,236,5,5,59,220,5,5,226,210,5,5,12,229,5,5,189,205,5,5,5,201,5,5,73,236,5,5,196,225,5,5,104,212,5,5,245,244,5,5,56,176,5,5,40,225,5,5,249,249,5,5,166,248,5,5,236,176,5,5,72,200,5,5,21,226,5,5,55,232,5,5,118,180,5,5,201,189,5,5,196,234,5,5,44,234,5,5,68,225,5,5,79,217,5,5,57,176,5,5,137,243,5,5,239,213,5,5,231,198,5,5,203,223,5,5,51,208,5,5,239,217,5,5,95,175,5,5,78,177,5,5,138,243,5,5,4,241,5,5,97,168,5,5,181,244,5,5,216,187,5,5,129,225,5,5,144,194,5,5,107,213,5,5,36,174,5,5,116,242,5,5,35,202,5,5,9,244,5,5,98,201,5,5,94,238,5,5,146,194,5,5,255,171,5,5,21,195,5,5,30,231,5,5,54,225,5,5,24,182,5,5,113,211,5,5,152,239,5,5,85,202,5,5,119,197,5,5,4,237,5,5,153,239,5,5,227,210,5,5,38,219,5,5,158,235,5,5,84,175,5,5,11,237,5,5,107,204,5,5,69,208,5,5,70,208,5,5,228,210,5,5,2,234,5,5,24,195,5,5,63,220,5,5,72,208,5,5,17,237,5,5,206,170,5,5,56,172,5,5,45,222,5,5,108,241,5,5,53,222,5,5,84,222,5,5,64,202,201,160,231,0,5,5,247,237,5,5,105,203,5,5,24,231,5,5,166,195,5,5,167,195,5,5,48,217,5,5,192,238,5,5,155,203,5,5,110,178,5,5,75,245,5,5,236,179,5,5,234,213,5,5,55,217,5,5,181,168,5,5,53,184,5,5,187,245,5,5,129,246,5,5,182,168,5,5,54,206,5,5,54,184,5,5,4,210,5,5,159,179,5,5,124,220,5,5,37,216,5,5,78,199,5,5,230,175,5,5,74,249,5,5,114,182,5,5,35,190,5,5,36,190,5,5,38,188,5,5,15,185,5,5,136,214,5,5,53,207,5,5,186,218,5,5,39,179,5,5,129,223,5,5,122,231,5,5,48,239,5,5,245,172,5,5,177,221,5,5,133,227,5,5,213,230,5,5,146,211,5,5,56,215,5,5,61,217,5,5,29,194,5,5,42,213,5,5,239,237,5,5,182,195,5,5,206,168,5,5,147,182,5,5,14,174,5,5,38,234,5,5,89,180,5,5,29,243,5,5,59,215,5,5,185,183,5,5,222,212,5,5,241,209,5,5,227,233,5,5,111,181,5,5,220,197,5,5,16,181,5,5,252,185,5,5,9,240,5,5,106,215,5,5,25,169,5,5,142,219,5,5,126,218,5,5,182,173,5,5,93,211,5,5,12,183,5,5,105,243,5,5,202,238,5,5,122,216,5,5,223,212,5,5,152,187,5,5,76,189,5,5,235,239,5,5,30,198,5,5,162,179,5,5,61,239,5,5,84,247,5,5,81,231,5,5,178,184,5,5,187,218,5,5,202,191,5,5,5,225,5,5,182,198,5,5,195,242,5,5,84,205,5,5,173,181,5,5,123,216,5,5,44,181,5,5,37,249,5,5,158,210,5,5,115,227,5,5,63,222,5,5,243,208,5,5,64,186,5,5,222,198,5,5,81,204,5,5,118,171,5,5,135,223,5,5,101,186,5,5,203,171,5,5,224,212,5,5,72,242,5,5,136,223,5,5,29,250,5,5,251,171,5,5,52,241,5,5,98,226,5,5,109,193,5,5,203,245,5,5,252,221,5,5,64,222,5,5,142,246,5,5,92,197,5,5,13,173,5,5,187,221,5,5,188,221,5,5,79,235,5,5,77,245,5,5,134,169,5,5,196,188,5,5,109,170,5,5,133,221,5,5,122,175,5,5,230,221,5,5,204,171,5,5,58,248,5,5,247,174,5,5,156,243,5,5,208,213,5,5,25,227,5,5,108,215,5,5,15,184,5,5,193,244,5,5,185,204,5,5,64,215,5,5,16,184,5,5,161,202,5,5,31,243,5,5,225,212,5,5,34,237,5,5,42,169,5,5,161,171,5,5,100,195,5,5,254,185,5,5,212,222,5,5,48,246,5,5,182,209,5,5,82,231,5,5,83,231,5,5,50,179,5,5,64,193,5,5,206,209,5,5,63,225,5,5,122,190,5,5,203,238,5,5,74,223,5,5,212,199,5,5,85,198,5,5,160,169,5,5,40,194,5,5,28,227,5,5,40,234,5,5,82,189,5,5,221,194,5,5,219,174,5,5,16,182,5,5,157,206,5,5,119,171,5,5,69,222,5,5,156,209,5,5,66,193,5,5,242,239,5,5,35,198,5,5,149,247,5,5,43,175,5,5,207,232,5,5,29,227,5,5,122,209,5,5,217,201,5,5,40,192,5,5,84,242,5,5,244,234,5,5,128,218,5,5,20,250,5,5,26,247,5,5,246,216,5,5,128,220,5,5,253,174,5,5,84,232,5,5,41,234,5,5,235,217,5,5,226,212,5,5,186,226,5,5,222,247,5,5,232,232,5,5,41,209,5,5,126,199,5,5,157,237,5,5,249,231,5,5,44,232,5,5,102,234,5,5,36,198,5,5,209,172,5,5,115,201,5,5,142,192,5,5,32,213,5,5,22,219,5,5,87,208,5,5,85,238,5,5,202,239,5,5,9,187,5,5,71,168,5,5,17,180,5,5,80,241,5,5,242,219,5,5,195,198,5,5,112,215,5,5,32,206,5,5,82,223,5,5,0,141,5,5,165,179,5,5,51,188,5,5,96,219,5,5,71,222,5,5,45,199,5,5,78,217,5,5,25,233,5,5,141,245,5,5,131,234,5,5,255,243,5,5,17,226,5,5,106,177,5,5,154,186,5,5,101,189,5,5,88,247,5,5,58,227,5,5,249,205,5,5,170,207,5,5,57,201,5,5,151,228,5,5,232,233,5,5,92,243,5,5,201,169,5,5,154,230,5,5,23,224,5,5,93,242,5,5,30,173,5,5,10,180,5,5,216,171,5,5,52,188,5,5,91,193,5,5,85,189,5,5,247,176,5,5,102,183,5,5,14,173,5,5,138,228,5,5,36,247,5,5,92,223,5,5,28,235,5,5,45,190,5,5,252,241,5,5,153,226,5,5,213,199,5,5,233,248,5,5,62,206,5,5,42,234,5,5,153,216,5,5,108,221,5,5,11,188,5,5,63,206,5,5,240,237,5,5,128,175,5,5,117,244,5,5,244,196,5,5,143,232,5,5,187,226,5,5,57,207,5,5,52,214,5,5,26,202,5,5,41,212,5,5,97,219,5,5,126,174,5,5,81,185,5,5,78,202,5,5,214,225,5,5,98,171,5,5,64,248,5,5,12,246,5,5,89,227,5,5,189,204,5,5,251,249,5,5,113,197,5,5,159,173,5,5,233,242,5,5,61,194,5,5,21,185,5,5,171,179,5,5,198,225,5,5,143,173,5,5,90,206,5,5,193,187,5,5,91,204,5,5,232,212,5,5,193,205,5,5,32,202,5,5,199,215,5,5,249,213,5,5,146,197,5,5,246,208,5,5,252,249,5,5,180,212,5,5,85,168,5,5,233,212,5,5,147,232,5,5,242,235,5,5,146,248,5,5,220,201,5,5,230,198,5,5,57,199,5,5,209,224,5,5,73,200,5,5,133,180,5,5,113,210,5,5,21,176,5,5,46,249,5,5,51,246,5,5,214,169,5,5,19,211,5,5,158,249,5,5,58,176,5,5,44,225,5,5,11,180,5,5,166,214,5,5,118,215,5,5,167,248,5,5,59,192,5,5,100,242,5,5,209,195,5,5,212,186,5,5,88,207,5,5,119,173,5,5,125,226,5,5,12,231,5,5,62,203,5,5,199,225,5,5,137,186,5,5,107,177,5,5,221,222,5,5,216,245,5,5,194,205,5,5,28,208,5,5,195,205,5,5,29,190,5,5,24,171,5,5,142,184,5,5,180,200,5,5,26,199,5,5,148,182,5,5,163,230,5,5,15,210,5,5,154,228,5,5,221,243,5,5,222,189,5,5,166,178,5,5,2,232,5,5,64,213,5,5,190,191,5,5,109,203,5,5,47,182,5,5,225,207,5,5,110,198,5,5,78,240,5,5,213,178,5,5,64,203,5,5,160,187,5,5,91,232,5,5,178,180,5,5,123,227,5,5,14,229,5,5,122,249,5,5,127,184,5,5,255,218,5,5,159,192,5,5,196,181,5,5,39,198,5,5,34,174,5,5,24,226,5,5,153,244,5,5,9,190,5,5,72,237,5,5,203,180,5,5,202,231,5,5,209,241,5,5,46,199,5,5,135,221,5,5,221,190,5,5,76,229,5,5,128,184,5,5,80,245,5,5,213,172,5,5,87,216,5,5,196,221,5,5,40,189,5,5,5,200,5,5,126,226,5,5,160,209,5,5,3,216,5,5,4,216,5,5,120,189,5,5,59,227,5,5,182,176,5,5,132,190,5,5,45,238,5,5,248,208,5,5,68,194,5,5,187,180,5,5,62,194,5,5,162,223,5,5,6,200,5,5,204,189,5,5,33,235,5,5,65,181,5,5,117,195,5,5,218,245,5,5,179,170,5,5,92,247,5,5,49,249,5,5,105,234,5,5,241,237,5,5,194,207,5,5,2,212,5,5,0,144,5,5,160,195,5,5,170,215,5,5,174,207,5,5,161,224,5,5,147,177,5,5,80,169,5,5,204,231,5,5,21,203,5,5,162,224,5,5,122,198,5,5,167,204,5,5,169,237,5,5,49,238,5,5,127,211,5,5,213,229,5,5,228,218,5,5,131,225,5,5,163,224,5,5,204,215,5,5,190,202,5,5,51,223,5,5,22,176,5,5,226,171,5,5,24,212,5,5,118,177,5,5,17,170,5,5,202,219,5,5,22,185,5,5,50,249,5,5,44,230,5,5,146,240,5,5,251,190,5,5,158,226,5,5,168,204,5,5,111,198,5,5,127,224,5,5,37,220,5,5,204,223,5,5,157,228,5,5,139,188,5,5,16,246,5,5,17,246,5,5,58,201,5,5,138,239,5,5,222,242,5,5,144,225,5,5,24,211,5,5,64,231,5,5,71,193,5,5,108,185,5,5,188,206,5,5,134,197,5,5,183,223,5,5,214,249,5,5,164,224,5,5,221,231,5,5,106,183,5,5,151,229,5,5,221,209,5,5,137,205,5,5,165,224,5,5,209,211,5,5,202,249,5,5,156,227,5,5,108,234,5,5,235,186,5,5,87,235,5,5,65,203,5,5,113,222,5,5,157,168,5,5,12,207,5,5,137,209,5,5,118,206,5,5,148,170,5,5,127,229,5,5,170,204,5,5,245,178,5,5,185,219,5,5,147,249,5,5,175,238,5,5,206,205,5,5,127,168,5,5,47,199,5,5,205,215,5,5,23,177,5,5,95,214,5,5,147,173,5,5,94,225,5,5,30,207,5,5,211,240,5,5,92,173,5,5,107,183,5,5,110,196,5,5,9,171,5,5,222,222,5,5,65,205,5,5,135,234,5,5,184,176,5,5,238,204,5,5,227,243,5,5,74,194,5,5,147,172,5,5,43,202,5,5,223,231,5,5,31,231,5,5,169,198,5,5,8,223,5,5,5,170,5,5,67,245,5,5,171,215,5,5,81,174,5,5,211,205,5,5,47,190,5,5,163,192,5,5,31,214,5,5,140,191,5,5,231,215,5,5,211,213,5,5,250,203,5,5,3,220,5,5,136,234,5,5,186,219,5,5,82,174,5,5,44,200,5,5,99,223,5,5,172,204,5,5,75,210,5,5,226,190,5,5,123,213,5,5,104,224,5,5,106,182,5,5,33,216,5,5,203,217,5,5,75,237,5,5,95,225,5,5,237,232,5,5,255,197,5,5,187,194,5,5,11,250,5,5,148,203,5,5,89,216,5,5,99,201,5,5,238,180,5,5,241,233,5,5,201,243,5,5,76,192,5,5,254,193,5,5,95,247,5,5,197,178,5,5,246,235,5,5,174,240,5,5,214,180,5,5,2,198,5,5,128,211,5,5,202,243,5,5,48,214,5,5,189,226,5,5,107,182,5,5,83,174,5,5,246,179,5,5,150,220,5,5,91,198,5,5,188,193,5,5,246,182,5,5,105,224,5,5,139,205,5,5,136,197,5,5,143,191,5,5,122,242,5,5,26,203,5,5,243,248,5,5,8,216,5,5,78,194,5,5,247,248,5,5,172,201,5,5,160,170,5,5,190,226,5,5,138,190,5,5,52,238,5,5,49,181,5,5,195,187,5,5,63,178,5,5,121,197,5,5,48,183,5,5,149,177,5,5,205,169,5,5,156,239,5,5,31,168,5,5,132,249,5,5,224,235,5,5,173,179,5,5,69,248,5,5,20,189,5,5,172,248,5,5,85,192,5,5,37,211,5,5,214,188,5,5,244,191,5,5,183,216,5,5,76,171,5,5,102,240,5,5,46,200,5,5,70,211,5,5,177,234,5,5,79,194,5,5,80,194,5,5,141,215,5,5,232,172,5,5,64,247,5,5,221,208,5,5,55,202,5,5,176,201,5,5,87,192,5,5,225,249,5,5,224,199,5,5,179,220,5,5,192,212,5,5,154,200,5,5,151,180,5,5,53,223,5,5,91,176,5,5,23,206,5,5,17,171,5,5,146,169,5,5,140,205,5,5,158,232,5,5,161,199,5,5,2,205,5,5,206,181,5,5,108,205,5,5,237,233,5,5,81,194,5,5,31,201,5,5,235,171,5,5,196,193,5,5,225,237,5,5,60,173,5,5,187,232,5,5,82,194,5,5,43,231,5,5,243,186,5,5,132,172,5,5,41,211,5,5,208,201,5,5,252,176,5,5,169,217,5,5,44,212,5,5,130,206,5,5,217,249,5,5,48,206,5,5,11,244,5,5,43,211,5,5,16,198,5,5,150,225,5,5,4,248,5,5,250,200,5,5,164,195,5,5,139,184,5,5,183,238,5,5,173,245,5,5,232,179,5,5,69,245,5,5,202,213,5,5,154,203,5,5,132,227,5,5,44,215,5,5,229,175,5,5,80,220,5,5,138,219,5,5,82,182,5,5,154,179,5,5,219,207,5,5,144,211,5,5,50,237,5,5,244,172,5,5,33,234,5,5,173,184,5,5,21,172,5,5,255,224,5,5,73,197,5,5,13,181,5,5,178,173,5,5,80,247,5,5,233,209,5,5,172,169,5,5,10,185,5,5,22,169,5,5,95,215,5,5,203,237,5,5,94,216,5,5,24,198,5,5,32,230,5,5,249,185,5,5,181,198,5,5,144,182,5,5,201,191,5,5,67,227,5,5,90,211,5,5,205,168,5,5,30,242,5,5,98,215,5,5,33,246,5,5,99,215,5,5,86,186,5,5,152,171,5,5,211,198,5,5,221,213,5,5,249,171,5,5,190,171,5,5,22,243,5,5,215,249,5,5,197,209,5,5,60,225,5,5,102,193,5,5,108,179,5,5,41,241,5,5,183,226,5,5,191,171,5,5,57,204,5,5,41,223,5,5,52,215,5,5,99,207,5,5,129,169,5,5,42,222,5,5,71,235,5,5,177,224,5,5,73,170,5,5,128,210,5,5,217,212,5,5,38,181,5,5,37,234,5,5,193,198,5,5,113,201,5,5,252,181,5,5,54,207,5,5,239,235,5,5,76,241,5,5,111,174,5,5,83,193,5,5,237,237,5,5,64,210,5,5,251,246,5,5,53,178,5,5,18,227,5,5,242,205,5,5,160,179,5,5,186,239,5,5,97,198,5,5,147,244,5,5,214,247,5,5,77,231,5,5,2,180,5,5,16,180,5,5,242,231,5,5,37,190,5,5,221,217,5,5,27,220,5,5,200,187,5,5,161,179,5,5,155,185,5,5,33,209,5,5,40,246,5,5,235,219,5,5,207,194,5,5,76,238,5,5,73,173,5,5,41,175,5,5,84,225,5,5,67,168,5,5,234,239,5,5,18,219,5,5,56,248,5,5,88,201,5,5,49,214,5,5,64,230,5,5,178,200,5,5,212,225,5,5,55,203,5,5,41,199,5,5,14,233,5,5,154,224,5,5,74,202,5,5,116,244,5,5,116,175,5,5,153,187,5,5,77,185,5,5,112,181,5,5,125,234,5,5,103,177,5,5,59,206,5,5,93,183,5,5,228,233,5,5,184,204,5,5,89,198,5,5,223,193,5,5,92,219,5,5,242,225,5,5,50,201,5,5,150,216,5,5,237,196,5,5,0,129,5,5,190,215,5,5,155,245,5,5,175,211,5,5,105,177,5,5,82,207,5,5,213,169,5,5,150,214,5,5,163,178,5,5,9,199,5,5,63,200,5,5,118,173,5,5,234,230,5,5,135,186,5,5,111,206,5,5,19,176,5,5,145,248,5,5,198,195,5,5,17,247,5,5,245,231,5,5,144,197,5,5,187,191,5,5,110,212,5,5,33,225,5,5,6,180,5,5,41,194,5,5,96,197,5,5,23,208,5,5,34,249,5,5,82,216,5,5,65,240,5,5,109,198,5,5,197,215,5,5,83,223,5,5,182,181,5,5,210,172,5,5,247,215,5,5,87,247,5,5,199,180,5,5,200,223,5,5,208,190,5,5,123,190,5,5,0,142,5,5,175,180,5,5,190,207,5,5,62,205,5,5,38,249,5,5,238,182,5,5,168,207,5,5,129,209,5,5,13,246,5,5,217,171,5,5,135,185,5,5,14,211,5,5,143,225,5,5,133,197,5,5,15,211,5,5,220,209,5,5,153,204,5,5,64,185,5,5,77,169,5,5,97,239,5,5,67,193,5,5,64,171,5,5,220,218,5,5,252,170,5,5,92,225,5,5,28,207,5,5,114,206,5,5,3,170,5,5,207,240,5,5,107,196,5,5,211,178,5,5,201,249,5,5,82,235,5,5,159,204,5,5,42,173,5,5,242,197,5,5,171,203,5,5,28,214,5,5,130,205,5,5,233,180,5,5,227,200,5,5,45,214,5,5,248,176,5,5,202,215,5,5,195,178,5,5,232,191,5,5,164,201,5,5,133,190,5,5,242,248,5,5,22,203,5,5,139,239,5,5,231,172,5,5,11,171,5,5,151,200,5,5,57,173,5,5,185,232,5,5,41,245,5,5,129,173,5,5,178,196,5,5,135,168,5,5,203,179,5,5,118,217,5,5,160,203,5,5,63,208,5,5,40,245,5,5,220,207,5,5,194,206,5,5,238,222,5,5,110,220,5,5,214,191,5,5,221,207,5,5,105,236,5,5,80,170,5,5,39,188,5,5,81,170,5,5,91,220,5,5,90,198,5,5,183,198,5,5,238,169,5,5,77,189,5,5,103,219,5,5,191,219,5,5,38,232,5,5,39,232,5,5,151,193,5,5,10,209,5,5,161,231,5,5,24,223,5,5,103,180,5,5,150,244,5,5,94,210,5,5,211,244,5,5,151,212,5,5,208,231,5,5,82,204,5,5,217,170,5,5,110,170,5,5,104,219,5,5,15,168,5,5,194,186,5,5,132,185,5,5,133,185,5,5,41,182,5,5,180,175,5,5,97,189,5,5,47,187,5,5,14,209,5,5,228,219,5,5,91,200,5,5,73,201,5,5,221,205,5,5,227,226,5,5,55,220,5,5,17,197,5,5,32,243,5,5,33,243,5,5,84,173,5,5,188,217,5,5,26,204,5,5,120,173,5,5,66,220,5,5,92,200,5,5,74,236,5,5,179,229,5,5,121,236,5,5,194,181,5,5,160,191,5,5,101,242,5,5,180,229,5,5,104,189,5,5,94,169,5,5,102,189,5,5,190,217,5,5,196,237,5,5,182,229,5,5,28,169,5,5,86,168,5,5,15,229,5,5,209,239,5,5,112,200,5,5,40,218,5,5,228,200,5,5,119,180,5,5,240,217,5,5,104,183,5,5,106,226,5,5,25,211,5,5,214,224,5,5,112,198,5,5,208,188,5,5,42,218,5,5,250,175,5,5,198,186,5,5,108,180,5,5,216,214,5,5,235,199,5,5,133,225,5,5,200,186,5,5,102,213,5,5,154,198,5,5,152,231,5,5,141,191,5,5,93,173,5,5,55,213,5,5,102,178,5,5,139,190,5,5,217,224,5,5,184,229,5,5,183,224,5,5,216,207,5,5,236,222,5,5,106,220,5,5,83,236,5,5,26,188,5,5,47,170,5,5,197,229,5,5,246,175,5,5,101,219,5,5,238,228,5,5,18,232,5,5,51,189,5,5,129,193,5,5,252,208,5,5,157,198,5,5,228,207,5,5,145,244,5,5,91,210,5,5,30,187,5,5,164,229,5,5,195,224,5,5,3,209,5,5,219,205,5,5,96,198,5,5,33,182,5,5,114,185,5,5,169,188,5,5,81,200,5,5,154,196,5,5,23,243,5,5,39,201,5,5,115,180,5,5,43,242,5,5,63,236,5,5,113,173,5,5,123,231,5,5,169,229,5,5,154,191,5,5,106,236,5,5,162,181,5,5,74,173,5,5,213,200,5,5,185,217,5,5,89,191,5,5,106,200,5,5,26,218,5,5,197,188,5,5,99,226,5,5,141,177,5,5,15,218,5,5,20,188,5,5,129,190,5,5,82,184,5,5,72,184,5,5,134,201,5,5,216,180,5,5,243,233,5,5,27,215,5,5,115,230,5,5,171,184,5,5,196,246,5,5,169,239,5,5,40,237,5,5,83,180,5,5,136,181,5,5,112,221,5,5,15,169,5,5,105,212,5,5,33,199,5,5,97,243,5,5,64,219,5,5,164,246,5,5,241,212,5,5,48,196,5,5,150,182,5,5,41,237,5,5,170,239,5,5,245,245,5,5,27,195,5,5,51,174,5,5,140,181,5,5,93,217,5,5,253,178,5,5,204,249,5,5,35,250,5,5,102,179,5,5,113,204,5,5,0,128,5,5,243,227,5,5,244,227,5,5,147,169,5,5,101,171,5,5,78,184,5,5,202,192,5,5,143,205,5,5,6,205,5,5,254,173,5,5,27,234,5,5,71,181,5,5,58,205,5,5,96,209,5,5,130,194,5,5,123,222,5,5,72,181,5,5,111,232,5,5,223,181,5,5,73,187,5,5,119,241,5,5,150,184,5,5,107,220,5,5,46,198,5,5,42,216,5,5,34,234,5,5,42,176,5,5,92,184,5,5,66,170,5,5,176,231,5,5,109,220,5,5,126,221,5,5,222,246,5,5,5,214,5,5,86,180,5,5,239,242,5,5,250,245,5,5,110,175,5,5,115,232,5,5,116,178,5,5,248,210,5,5,101,243,5,5,70,232,5,5,106,212,5,5,232,182,5,5,166,249,5,5,30,239,5,5,224,180,5,5,75,206,5,5,182,239,5,5,224,196,5,5,11,176,5,5,6,174,5,5,253,212,5,5,58,204,5,5,185,225,5,5,123,232,5,5,152,205,5,5,128,221,5,5,76,232,5,5,187,239,5,5,10,248,5,5,59,237,5,5,181,218,5,5,185,231,5,5,32,175,5,5,217,236,5,5,188,239,5,5,206,222,5,5,207,178,5,5,160,241,5,5,222,204,5,5,204,228,5,5,205,228,5,5,2,211,5,5,225,180,5,5,63,224,5,5,68,168,5,5,190,190,5,5,35,195,5,5,64,224,5,5,7,240,5,5,179,184,5,5,166,236,5,5,18,191,5,5,124,185,5,5,106,243,5,5,141,230,5,5,242,199,5,5,6,168,5,5,128,231,5,5,110,225,5,5,240,192,5,5,59,245,5,5,122,178,5,5,105,168,5,5,134,231,5,5,11,240,5,5,144,219,5,5,109,218,5,5,230,203,5,5,169,227,5,5,190,178,5,5,228,194,5,5,85,224,5,5,66,224,5,5,151,168,5,5,86,232,5,5,33,183,5,5,162,210,5,5,236,181,5,5,60,192,5,5,127,178,5,5,61,231,5,5,20,240,5,5,41,247,5,5,34,191,5,5,12,205,5,5,32,231,5,5,111,202,5,5,174,202,5,5,181,202,5,5,142,248,5,5,175,189,5,5,104,246,5,5,121,224,5,5,155,197,5,5,26,210,5,5,49,239,5,5,23,218,5,5,226,236,5,5,124,216,5,5,60,215,5,5,79,234,5,5,19,236,5,5,131,192,5,5,132,186,5,5,118,190,5,5,18,247,5,5,35,186,5,5,162,197,5,5,117,176,5,5,195,240,5,5,239,196,5,5,123,175,5,5,162,189,5,5,166,243,5,5,158,206,5,5,199,241,5,5,73,175,5,5,142,179,5,5,61,224,5,5,61,188,5,5,16,230,5,5,244,222,5,5,233,186,5,5,135,175,5,5,169,243,5,5,210,240,5,5,71,192,5,5,25,231,5,5,80,175,5,5,203,204,5,5,39,202,5,5,32,210,5,5,115,235,5,5,172,243,5,5,168,192,5,5,169,192,5,5,227,241,5,5,161,241,5,5,117,235,5,5,224,209,5,5,159,183,5,5,236,219,5,5,199,209,5,5,170,229,5,5,13,183,5,5,48,212,5,5,83,243,5,5,153,202,5,5,248,174,5,5,35,237,5,5,83,204,5,5,155,201,5,5,61,168,5,5,98,169,5,5,148,230,5,5,116,179,5,5,88,178,5,5,253,189,5,5,149,230,5,5,166,179,5,5,164,234,5,5,250,192,5,5,210,209,5,5,20,174,5,5,26,233,5,5,180,244,5,5,228,226,5,5,14,246,5,5,130,212,5,5,171,207,5,5,87,204,5,5,92,214,5,5,152,247,5,5,227,191,5,5,56,220,5,5,193,182,5,5,88,189,5,5,217,244,5,5,206,239,5,5,142,210,5,5,67,248,5,5,212,227,5,5,240,203,5,5,92,204,5,5,73,180,5,5,79,240,5,5,156,230,5,5,98,204,5,5,243,222,5,5,99,204,5,5,203,231,5,5,90,189,5,5,210,239,5,5,234,206,5,5,235,206,5,5,112,243,5,5,201,204,5,5,36,208,5,5,74,171,5,5,158,230,5,5,128,229,5,5,116,200,5,5,250,239,5,5,65,231,5,5,143,239,5,5,0,165,5,5,48,178,5,5,239,225,5,5,156,232,5,5,123,242,5,5,212,205,5,5,239,204,5,5,208,177,5,5,164,192,5,5,51,212,5,5,77,237,5,5,221,168,5,5,239,212,5,5,20,229,5,5,112,183,5,5,153,231,5,5,30,193,5,5,214,206,5,5,14,208,5,5,15,208,5,5,177,201,5,5,224,202,5,5,245,191,5,5,0,166,5,5,247,182,5,5,211,177,5,5,3,205,5,5,108,204,5,5,33,168,5,5,114,183,5,5,227,202,5,5,123,169,5,5,239,188,5,5,240,188,5,5,242,188,5,5,139,171,5,5,166,216,5,5,167,216,5,5,97,196,5,5,79,226,5,5,204,245,5,5,99,196,5,5,68,174,5,5,215,216,5,5,104,196,5,5,105,196,5,5,122,179,5,5,108,196,5,5,81,226,5,5,178,182,5,5,189,182,5,5,197,198,5,5,59,208,5,5,170,208,5,5,169,208,5,5,136,169,5,5,35,238,5,5,127,226,5,5,144,191,5,5,53,238,5,5,115,185,5,5,237,179,5,5,223,172,5,5,107,215,5,5,171,218,5,5,227,178,5,5,174,180,5,5,142,230,5,5,172,218,5,5,129,216,5,5,237,195,5,5,93,235,5,5,94,211,5,5,207,168,5,5,12,240,5,5,132,219,5,5,243,209,5,5,123,209,5,5,213,249,5,5,142,177,5,5,43,169,5,5,86,239,5,5,211,237,5,5,195,225,5,5,198,169,5,5,49,195,5,5,83,189,5,5,84,212,5,5,36,237,5,5,120,171,5,5,204,239,5,5,136,185,5,5,197,225,5,5,112,195,5,5,133,233,5,5,50,168,5,5,51,168,5,5,249,188,5,5,238,185,5,5,15,215,5,5,144,177,5,5,24,216,5,5,207,226,5,5,248,206,5,5,182,240,5,5,60,224,5,5,154,226,5,5,53,216,5,5,83,235,5,5,62,199,5,5,251,169,5,5,212,224,5,5,187,220,5,5,123,171,5,5,113,200,5,5,248,196,5,5,156,200,5,5,202,233,5,5,2,219,5,5,58,169,5,5,217,181,5,5,24,217,5,5,25,217,5,5,209,188,5,5,57,216,5,5,213,209,5,5,249,196,5,5,176,193,5,5,182,170,5,5,214,178,5,5,181,193,5,5,154,229,5,5,176,225,5,5,5,186,5,5,215,224,5,5,204,169,5,5,138,233,5,5,25,212,5,5,145,185,5,5,153,170,5,5,117,200,5,5,96,225,5,5,48,205,5,5,121,187,5,5,34,216,5,5,97,235,5,5,80,192,5,5,192,193,5,5,110,194,5,5,104,173,5,5,150,177,5,5,14,190,5,5,100,232,5,5,88,215,5,5,152,180,5,5,70,228,5,5,197,193,5,5,251,200,5,5,242,228,5,5,173,218,5,5,22,184,5,5,211,207,5,5,10,218,5,5,137,185,5,5,71,229,5,5,54,216,5,5,13,188,5,5,172,173,5,5,114,200,5,5,8,219,5,5,141,243,5,5,7,221,5,5,80,229,5,5,143,185,5,5,253,168,5,5,177,225,5,5,6,186,5,5,142,243,5,5,49,185,5,5,154,170,5,5,82,229,5,5,106,224,5,5,149,180,5,5,71,228,5,5,153,180,5,5,232,228,5,5,157,218,5,5,237,183,5,5,6,188,5,5,61,229,5,5,128,243,5,5,169,225,5,5,175,196,5,5,179,196,5,5,252,231,5,5,196,233,5,5,5,232,5,5,73,192,5,5,177,239,5,5,165,243,5,5,129,243,5,5,211,220,5,5,146,201,5,5,181,212,5,5,225,190,5,5,85,240,5,5,144,243,5,5,188,212,5,5,57,168,5,5,211,239,5,5,214,232,5,5,15,190,5,5,8,238,5,5,240,179,5,5,204,216,5,5,243,199,5,5,228,232,5,5,28,223,5,5,233,187,5,5,158,234,5,5,154,238,5,5,161,234,5,5,127,181,5,5,181,223,5,5,16,200,5,5,151,214,5,5,82,188,5,5,73,242,5,5,109,228,5,5,8,169,5,5,18,181,5,5,236,178,5,5,233,177,5,5,40,212,5,5,209,213,5,5,117,204,5,5,231,173,5,5,60,196,5,5,218,201,5,5,202,188,5,5,249,215,5,5,187,181,5,5,117,181,5,5,72,229,5,5,134,233,5,5,108,200,5,5,82,221,5,5,166,238,5,5,167,238,5,5,208,187,5,5,215,180,5,5,253,241,5,5,160,213,5,5,219,201,5,5,68,184,5,5,92,193,5,5,65,227,5,5,123,191,5,5,2,200,5,5,93,193,5,5,101,206,5,5,246,226,5,5,75,174,5,5,171,240,5,5,61,243,5,5,202,189,5,5,57,188,5,5,68,196,5,5,171,227,5,5,172,227,5,5,138,213,5,5,193,200,5,5,173,227,5,5,53,249,5,5,52,249,5,5,23,176,5,5,13,180,5,5,194,200,5,5,48,225,5,5,58,188,5,5,75,215,5,5,232,198,5,5,54,177,5,5,61,235,5,5,104,216,5,5,171,238,5,5,159,219,5,5,27,226,5,5,120,181,5,5,199,181,5,5,123,236,5,5,205,229,5,5,145,198,5,5,222,240,5,5,93,248,5,5,124,236,5,5,93,232,5,5,254,233,5,5,215,238,5,5,252,242,5,5,203,219,5,5,78,179,5,5,79,179,5,5,125,194,5,5,234,199,5,5,223,201,5,5,100,201,5,5,109,213,5,5,80,228,5,5,253,206,5,5,244,176,5,5,174,237,5,5,142,188,5,5,35,216,5,5,140,186,5,5,223,235,5,5,189,236,5,5,146,191,5,5,105,173,5,5,39,219,5,5,17,208,5,5,77,171,5,5,101,232,5,5,145,213,5,5,109,205,5,5,20,201,5,5,42,211,5,5,251,217,5,5,254,237,5,5,239,179,5,5,201,216,5,5,229,187,5,5,221,232,5,5,26,223,5,5,145,234,5,5,148,234,5,5,105,228,5,5,124,186,5,5,14,181,5,5,124,214,5,5,4,169,5,5,179,223,5,5,78,188,5,5,31,242,5,5,83,205,5,5,116,204,5,5,223,213,5,5,57,196,5,5,90,195,5,5,87,193,5,5,244,226,5,5,189,188,5,5,163,240,5,5,136,196,5,5,216,198,5,5,155,238,5,5,137,213,5,5,97,191,5,5,168,227,5,5,44,188,5,5,164,240,5,5,165,240,5,5,225,198,5,5,18,226,5,5,221,240,5,5,188,181,5,5,89,248,5,5,118,236,5,5,118,181,5,5,20,211,5,5,237,206,5,5,75,179,5,5,201,219,5,5,140,188,5,5,222,201,5,5,101,173,5,5,37,219,5,5,144,213,5,5,250,217,5,5,83,183,5,5,239,170,5,5,149,186,5,5,17,184,5,5,163,231,5,5,243,244,5,5,245,170,5,5,146,219,5,5,200,168,5,5,239,224,5,5,202,203,5,5,155,186,5,5,84,235,5,5,203,220,5,5,115,197,5,5,2,171,5,5,97,223,5,5,81,229,5,5,74,237,5,5,171,237,5,5,206,223,5,5,113,198,5,5,207,223,5,5,69,182,5,5,171,204,5,5,67,231,5,5,204,204,5,5,96,213,5,5,97,213,5,5,174,204,5,5,12,171,5,5,13,171,5,5,14,171,5,5,151,203,5,5,15,171,5,5,5,220,5,5,115,183,5,5,111,234,5,5,70,183,5,5,45,237,5,5,232,244,5,5,232,170,5,5,139,219,5,5,93,197,5,5,75,223,5,5,198,223,5,5,158,237,5,5,148,204,5,5,91,213,5,5,253,170,5,5,254,170,5,5,179,182,5,5,71,182,5,5,199,182,5,5,176,182,5,5,219,221,5,5,212,221,5,5,75,172,5,5,18,192,5,5,253,179,5,5,126,223,5,5,238,227,5,5,206,244,5,5,111,224,5,5,205,232,5,5,209,227,5,5,174,218,5,5,60,242,5,5,165,197,5,5,242,174,5,5,13,240,5,5,131,182,5,5,132,182,5,5,115,224,5,5,10,240,5,5,70,227,5,5,156,238,5,5,49,250,5,5,111,170,5,5,129,195,5,5,170,225,5,5,112,169,5,5,121,176,5,5,193,226,5,5,137,223,5,5,113,169,5,5,65,222,5,5,84,181,5,5,223,187,5,5,176,218,5,5,122,226,5,5,222,194,5,5,90,193,5,5,121,171,5,5,159,237,5,5,30,227,5,5,122,176,5,5,208,232,5,5,95,237,5,5,168,197,5,5,254,181,5,5,239,236,5,5,153,201,5,5,244,230,5,5,82,172,5,5,166,171,5,5,107,210,5,5,189,181,5,5,35,172,5,5,65,198,5,5,106,180,5,5,24,224,5,5,200,241,5,5,72,222,5,5,165,237,5,5,169,191,5,5,194,187,5,5,73,222,5,5,63,194,5,5,168,248,5,5,122,171,5,5,148,232,5,5,37,172,5,5,40,238,5,5,45,225,5,5,195,182,5,5,34,245,5,5,119,229,5,5,213,186,5,5,195,181,5,5,157,211,5,5,139,243,5,5,205,189,5,5,222,190,5,5,194,226,5,5,129,191,5,5,177,193,5,5,121,189,5,5,25,168,5,5,130,225,5,5,15,183,5,5,123,229,5,5,116,186,5,5,214,172,5,5,184,223,5,5,132,225,5,5,227,171,5,5,47,185,5,5,148,231,5,5,40,200,5,5,202,204,5,5,205,223,5,5,202,225,5,5,50,238,5,5,152,229,5,5,76,209,5,5,134,225,5,5,251,206,5,5,149,170,5,5,119,242,5,5,109,234,5,5,211,195,5,5,187,219,5,5,45,200,5,5,115,248,5,5,151,220,5,5,6,175,5,5,49,178,5,5,154,239,5,5,77,192,5,5,107,218,5,5,84,174,5,5,215,240,5,5,178,225,5,5,131,229,5,5,215,232,5,5,224,244,5,5,16,183,5,5,226,187,5,5,16,208,5,5,12,237,5,5,83,209,5,5,61,173,5,5,216,232,5,5,131,206,5,5,236,243,5,5,51,210,5,5,202,221,5,5,249,179,5,5,252,191,5,5,223,227,5,5,98,225,5,5,205,227,5,5,108,231,5,5,158,218,5,5,18,242,5,5,228,174,5,5,119,182,5,5,4,240,5,5,11,194,5,5,22,222,5,5,102,169,5,5,118,223,5,5,73,181,5,5,116,238,5,5,248,181,5,5,101,218,5,5,203,232,5,5,170,188,5,5,152,201,5,5,199,194,5,5,187,230,5,5,110,171,5,5,153,171,5,5,96,180,5,5,153,181,5,5,157,241,5,5,104,210,5,5,51,198,5,5,184,187,5,5,164,191,5,5,127,232,5,5,205,186,5,5,208,172,5,5,28,200,5,5,97,186,5,5,196,223,5,5,23,173,5,5,24,238,5,5,62,209,5,5,205,171,5,5,144,204,5,5,100,234,5,5,205,195,5,5,244,206,5,5,180,219,5,5,110,248,5,5,49,210,5,5,95,222,5,5,244,199,5,5,178,187,5,5,162,232,5,5,32,183,5,5,213,171,5,5,159,210,5,5,122,170,5,5,218,171,5,5,122,227,5,5,237,187,5,5,196,182,5,5,178,193,5,5,54,168,5,5,28,168,5,5,131,184,5,5,8,232,5,5,62,243,5,5,236,233,5,5,49,183,5,5,129,213,5,5,238,233,5,5,182,206,5,5,61,242,5,5,124,183,5,5,45,188,5,5,229,178,5,5,7,228,5,5,136,245,5,5,194,174,5,5,183,235,5,5,59,248,5,5,115,246,5,5,128,212,5,5,253,233,5,5,188,218,5,5,145,219,5,5,109,243,5,5,173,229,5,5,145,246,5,5,33,178,5,5,222,205,5,5,55,241,5,5,214,171,5,5,115,169,5,5,225,197,5,5,9,228,5,5,87,239,5,5,115,217,5,5,174,229,5,5,119,217,5,5,120,196,5,5,224,213,5,5,78,245,5,5,163,242,5,5,114,212,5,5,192,247,5,5,101,197,5,5,65,248,5,5,134,211,5,5,245,196,5,5,229,212,5,5,249,243,5,5,122,193,5,5,88,204,5,5,240,245,5,5,240,224,5,5,121,184,5,5,96,237,5,5,253,221,5,5,128,170,5,5,10,228,5,5,11,228,5,5,139,223,5,5,154,204,5,5,204,206,5,5,77,213,5,5,200,225,5,5,42,247,5,5,223,218,5,5,229,225,5,5,72,180,5,5,145,235,5,5,202,217,5,5,54,221,5,5,121,196,5,5,255,181,5,5,224,187,5,5,219,171,5,5,226,247,5,5,207,239,5,5,159,206,5,5,153,247,5,5,42,178,5,5,225,187,5,5,162,204,5,5,22,197,5,5,174,223,5,5,105,216,5,5,58,207,5,5,59,201,5,5,59,188,5,5,124,227,5,5,34,235,5,5,190,227,5,5,68,198,5,5,129,181,5,5,143,174,5,5,20,234,5,5,0,155,5,5,202,205,5,5,147,248,5,5,157,247,5,5,8,221,5,5,78,213,5,5,75,200,5,5,203,225,5,5,181,200,5,5,125,249,5,5,15,199,5,5,175,214,5,5,176,214,5,5,249,236,5,5,197,182,5,5,216,219,5,5,250,236,5,5,146,185,5,5,197,237,5,5,161,230,5,5,85,213,5,5,185,176,5,5,86,213,5,5,123,215,5,5,198,182,5,5,227,190,5,5,121,215,5,5,193,191,5,5,215,241,5,5,30,226,5,5,243,217,5,5,206,231,5,5,127,249,5,5,7,200,5,5,4,219,5,5,98,223,5,5,157,186,5,5,16,228,5,5,61,187,5,5,208,223,5,5,84,215,5,5,135,174,5,5,56,247,5,5,173,204,5,5,190,212,5,5,233,225,5,5,68,231,5,5,152,172,5,5,144,180,5,5,5,237,5,5,225,242,5,5,178,249,5,5,217,219,5,5,152,220,5,5,188,214,5,5,60,247,5,5,248,222,5,5,213,205,5,5,69,231,5,5,121,206,5,5,36,245,5,5,139,209,5,5,158,168,5,5,84,172,5,5,16,171,5,5,186,176,5,5,130,217,5,5,158,170,5,5,61,247,5,5,125,242,5,5,176,234,5,5,48,190,5,5,169,171,5,5,33,224,5,5,49,233,5,5,252,203,5,5,17,245,5,5,255,180,5,5,177,204,5,5,18,228,5,5,196,172,5,5,125,179,5,5,188,194,5,5,191,226,5,5,13,237,5,5,127,206,5,5,226,244,5,5,44,196,5,5,161,239,5,5,54,238,5,5,240,227,5,5,130,213,5,5,199,247,5,5,18,237,5,5,4,205,5,5,228,205,5,5,238,225,5,5,188,232,5,5,34,193,5,5,254,222,5,5,31,197,5,5,72,231,5,5,106,190,5,5,59,202,5,5,18,171,5,5,178,206,5,5,11,242,5,5,241,227,5,5,163,235,5,5,178,174,5,5,94,217,5,5,184,218,5,5,175,171,5,5,218,205,5,5,248,243,5,5,246,221,5,5,119,223,5,5,83,184,5,5,217,196,5,5,163,249,5,5,34,248,5,5,251,227,5,5,132,211,5,5,115,193,5,5,5,239,5,5,178,177,5,5,246,232,5,5,195,206,5,5,178,239,5,5,160,194,5,5,33,190,5,5,147,206,5,5,219,187,5,5,66,213,5,5,233,170,5,5,250,201,5,5,140,174,5,5,213,236,5,5,6,234,5,5,96,216,5,5,52,198,5,5,137,214,5,5,138,214,5,5,5,199,5,5,144,248,5,5,100,249,5,5,249,223,5,5,76,172,5,5,83,213,5,5,7,247,5,5,248,199,5,5,210,219,5,5,143,230,5,5,150,168,5,5,145,204,5,5,65,215,5,5,129,220,5,5,246,170,5,5,113,206,5,5,168,176,5,5,85,173,5,5,195,247,5,5,23,193,5,5,246,222,5,5,181,232,5,5,81,186,5,5,45,229,5,5,52,229,5,5,53,229,5,5,178,241,5,5,244,184,5,5,62,239,5,5,90,168,5,5,63,227,5,5,155,195,5,5,137,169,5,5,199,169,5,5,98,176,5,5,39,226,5,5,14,179,5,5,99,199,5,5,209,187,5,5,250,215,5,5,118,189,5,5,130,199,5,5,138,185,5,5,182,227,5,5,196,185,5,5,75,213,5,5,144,170,5,5,233,198,5,5,24,215,5,5,211,241,5,5,70,224,5,5,47,205,5,5,230,171,5,5,42,233,5,5,64,169,5,5,231,171,5,5,99,176,5,5,160,199,5,5,86,171,5,5,80,209,5,5,149,203,5,5,49,205,5,5,46,233,5,5,150,180,5,5,246,243,5,5,71,224,5,5,42,226,5,5,88,171,5,5,162,199,5,5,110,205,5,5,35,185,5,5,37,185,5,5,49,216,5,5,185,198,5,5,39,216,5,5,101,201,5,5,227,219,5,5,234,170,5,5,60,200,5,5,64,200,5,5,230,178,5,5,171,182,5,5,103,234,5,5,64,218,5,5,83,207,5,5,34,178,5,5,69,200,5,5,81,171,5,5,51,182,5,5,155,226,5,5,230,212,5,5,47,249,5,5,53,182,5,5,66,218,5,5,65,226,5,5,139,169,5,5,129,170,5,5,87,207,5,5,26,184,5,5,237,181,5,5,224,218,5,5,121,217,5,5,226,185,5,5,104,234,5,5,109,200,5,5,7,193,5,5,182,212,5,5,74,248,5,5,204,220,5,5,145,224,5,5,68,226,5,5,182,202,5,5,83,171,5,5,126,249,5,5,244,178,5,5,185,212,5,5,163,223,5,5,53,246,5,5,242,217,5,5,128,249,5,5,33,223,5,5,249,193,5,5,29,228,5,5,208,189,5,5,149,200,5,5,163,196,5,5,187,214,5,5,25,203,5,5,242,245,5,5,87,171,5,5,191,212,5,5,206,206,5,5,174,219,5,5,254,206,5,5,255,206,5,5,11,220,5,5,178,234,5,5,210,203,5,5,86,215,5,5,85,215,5,5,48,210,5,5,140,190,5,5,118,200,5,5,71,211,5,5,89,171,5,5,211,203,5,5,88,218,5,5,97,180,5,5,105,180,5,5,95,210,5,5,103,189,5,5,149,231,5,5,110,180,5,5,22,188,5,5,112,180,5,5,111,180,5,5,164,196,5,5,164,173,5,5,134,242,5,5,135,242,5,5,118,185,5,5,245,236,5,5,69,184,5,5,142,216,5,5,60,187,5,5,129,249,5,5,205,204,5,5,63,187,5,5,172,220,5,5,126,242,5,5,80,187,5,5,208,207,5,5,241,192,5,5,152,214,5,5,146,184,5,5,253,199,5,5,168,191,5,5,201,168,5,5,238,213,5,5,212,207,5,5,165,234,5,5,174,236,5,5,30,233,5,5,95,203,5,5,108,242,5,5,174,227,5,5,94,214,5,5,190,228,5,5,96,203,5,5,124,229,5,5,214,184,5,5,171,174,5,5,98,213,5,5,155,170,5,5,81,209,5,5,189,192,5,5,175,234,5,5,97,175,5,5,194,236,5,5,227,244,5,5,162,241,5,5,112,178,5,5,127,218,5,5,101,195,5,5,185,168,5,5,84,189,5,5,239,227,5,5,167,179,5,5,184,192,5,5,248,234,5,5,119,181,5,5,183,181,5,5,35,220,5,5,83,188,5,5,211,227,5,5,130,209,5,5,159,195,5,5,83,221,5,5,27,169,5,5,214,242,5,5,14,213,5,5,126,205,5,5,175,229,5,5,198,189,5,5,86,205,5,5,157,243,5,5,156,182,5,5,38,183,5,5,244,209,5,5,58,241,5,5,84,213,5,5,68,209,5,5,206,188,5,5,200,231,5,5,122,217,5,5,12,188,5,5,234,212,5,5,93,204,5,5,13,228,5,5,167,171,5,5,80,217,5,5,198,213,5,5,31,184,5,5,139,170,5,5,136,176,5,5,120,229,5,5,246,196,5,5,143,179,5,5,218,168,5,5,60,241,5,5,138,187,5,5,235,212,5,5,195,210,5,5,17,234,5,5,242,224,5,5,141,169,5,5,125,184,5,5,164,244,5,5,106,197,5,5,70,186,5,5,235,221,5,5,38,180,5,5,212,177,5,5,213,224,5,5,118,195,5,5,152,222,5,5,137,189,5,5,212,232,5,5,238,181,5,5,87,168,5,5,16,229,5,5,107,245,5,5,227,247,5,5,43,240,5,5,204,203,5,5,160,206,5,5,42,227,5,5,40,226,5,5,133,239,5,5,138,171,5,5,77,229,5,5,181,194,5,5,100,199,5,5,56,187,5,5,6,232,5,5,141,185,5,5,55,191,5,5,118,201,5,5,34,184,5,5,198,198,5,5,106,234,5,5,48,181,5,5,40,198,5,5,28,226,5,5,168,208,5,5,205,220,5,5,165,244,5,5,146,224,5,5,106,216,5,5,212,241,5,5,108,210,5,5,147,245,5,5,139,187,5,5,197,185,5,5,228,223,5,5,71,230,5,5,82,217,5,5,103,220,5,5,10,214,5,5,177,190,5,5,157,226,5,5,83,202,5,5,38,220,5,5,39,220,5,5,199,198,5,5,9,208,5,5,132,174,5,5,40,202,5,5,183,249,5,5,26,231,5,5,254,240,5,5,57,221,5,5,54,249,5,5,179,214,5,5,54,246,5,5,213,232,5,5,109,210,5,5,59,176,5,5,24,193,5,5,147,179,5,5,88,216,5,5,139,186,5,5,169,247,5,5,40,180,5,5,182,200,5,5,245,182,5,5,144,210,5,5,144,239,5,5,76,200,5,5,207,205,5,5,204,196,5,5,122,173,5,5,39,196,5,5,91,206,5,5,102,204,5,5,176,249,5,5,44,202,5,5,31,208,5,5,130,249,5,5,57,247,5,5,199,210,5,5,223,189,5,5,216,241,5,5,15,179,5,5,197,221,5,5,59,221,5,5,178,190,5,5,31,226,5,5,122,189,5,5,22,234,5,5,232,247,5,5,152,200,5,5,131,249,5,5,93,244,5,5,183,170,5,5,184,170,5,5,179,190,5,5,246,217,5,5,95,244,5,5,229,228,5,5,230,228,5,5,218,241,5,5,39,176,5,5,5,219,5,5,220,179,5,5,228,190,5,5,67,203,5,5,182,236,5,5,27,217,5,5,28,217,5,5,250,193,5,5,18,170,5,5,202,181,5,5,76,237,5,5,132,184,5,5,160,219,5,5,231,184,5,5,166,231,5,5,30,228,5,5,209,189,5,5,85,222,5,5,122,219,5,5,41,235,5,5,155,229,5,5,169,215,5,5,143,188,5,5,45,230,5,5,157,182,5,5,218,219,5,5,175,204,5,5,189,206,5,5,239,221,5,5,198,221,5,5,201,186,5,5,57,249,5,5,235,225,5,5,191,224,5,5,175,237,5,5,124,181,5,5,223,240,5,5,125,215,5,5,189,214,5,5,156,229,5,5,123,219,5,5,65,221,5,5,27,203,5,5,128,168,5,5,150,201,5,5,37,191,5,5,22,209,5,5,31,193,5,5,160,226,5,5,131,217,5,5,193,193,5,5,60,221,5,5,2,207,5,5,71,231,5,5,83,217,5,5,28,171,5,5,32,193,5,5,28,193,5,5,251,247,5,5,111,194,5,5,110,234,5,5,94,248,5,5,216,240,5,5,37,245,5,5,170,198,5,5,123,235,5,5,32,171,5,5,128,242,5,5,132,217,5,5,238,232,5,5,170,171,5,5,246,194,5,5,194,235,5,5,34,224,5,5,229,190,5,5,13,250,5,5,155,220,5,5,156,220,5,5,72,182,5,5,122,187,5,5,253,203,5,5,195,235,5,5,185,208,5,5,100,231,5,5,115,244,5,5,186,232,5,5,68,183,5,5,203,186,5,5,138,189,5,5,155,199,5,5,96,244,5,5,219,219,5,5,228,244,5,5,233,184,5,5,123,187,5,5,183,240,5,5,88,202,5,5,148,173,5,5,179,201,5,5,184,222,5,5,32,168,5,5,40,219,5,5,33,193,5,5,253,234,5,5,16,190,5,5,185,222,5,5,225,202,5,5,212,203,5,5,226,202,5,5,222,208,5,5,220,245,5,5,217,232,5,5,208,181,5,5,111,205,5,5,244,186,5,5,60,202,5,5,16,232,5,5,142,241,5,5,111,178,5,5,179,192,5,5,49,241,5,5,210,227,5,5,119,205,5,5,155,182,5,5,184,168,5,5,198,188,5,5,215,168,5,5,192,213,5,5,194,210,5,5,85,205,5,5,53,241,5,5,161,244,5,5,111,184,5,5,216,168,5,5,135,169,5,5,135,189,5,5,10,213,5,5,236,224,5,5,48,187,5,5,107,195,5,5,196,198,5,5,65,229,5,5,235,181,5,5,31,227,5,5,92,244,5,5,136,189,5,5,145,199,5,5,251,192,5,5,169,194,5,5,250,231,5,5,162,244,5,5,209,232,5,5,185,235,5,5,195,185,5,5,27,202,5,5,7,203,5,5,169,193,5,5,79,202,5,5,234,221,5,5,156,226,5,5,137,187,5,5,36,220,5,5,173,190,5,5,37,198,5,5,255,192,5,5,252,240,5,5,182,216,5,5,94,204,5,5,167,214,5,5,175,249,5,5,194,182,5,5,74,200,5,5,121,173,5,5,138,186,5,5,143,210,5,5,196,210,5,5,144,179,5,5,37,196,5,5,55,221,5,5,194,221,5,5,48,249,5,5,66,183,5,5,217,179,5,5,16,170,5,5,146,173,5,5,25,226,5,5,153,229,5,5,227,228,5,5,158,219,5,5,197,181,5,5,22,217,5,5,129,184,5,5,223,190,5,5,241,217,5,5,105,194,5,5,180,170,5,5,215,219,5,5,126,168,5,5,177,214,5,5,189,224,5,5,199,186,5,5,170,237,5,5,61,212,5,5,182,193,5,5,149,201,5,5,27,171,5,5,122,235,5,5,31,171,5,5,252,206,5,5,20,209,5,5,212,240,5,5,129,229,5,5,66,231,5,5,120,187,5,5,153,220,5,5,251,203,5,5,12,250,5,5,13,190,5,5,232,184,5,5,86,202,5,5,225,244,5,5,214,186,5,5,232,210,5,5,204,238,5,5,18,184,5,5,162,202,5,5,160,196,5,5,253,171,5,5,231,236,5,5,51,184,5,5,139,179,5,5,36,192,5,5,142,183,5,5,56,219,5,5,211,184,5,5,190,221,5,5,143,183,5,5,42,209,5,5,116,169,5,5,161,242,5,5,116,246,5,5,7,190,5,5,134,216,5,5,193,183,5,5,10,169,5,5,176,229,5,5,170,193,5,5,192,221,5,5,94,242,5,5,160,183,5,5,123,237,5,5,234,197,5,5,235,197,5,5,34,213,5,5,97,190,5,5,15,246,5,5,118,169,5,5,240,236,5,5,241,235,5,5,76,246,5,5,149,182,5,5,144,183,5,5,177,229,5,5,205,211,5,5,201,177,5,5,103,185,5,5,26,219,5,5,95,204,5,5,214,208,5,5,27,184,5,5,14,228,5,5,247,208,5,5,175,202,5,5,197,170,5,5,43,247,5,5,104,185,5,5,164,242,5,5,126,176,5,5,151,217,5,5,31,233,5,5,168,174,5,5,43,178,5,5,247,196,5,5,195,237,5,5,71,186,5,5,90,247,5,5,102,242,5,5,37,237,5,5,103,242,5,5,243,235,5,5,188,226,5,5,104,242,5,5,104,226,5,5,80,240,5,5,213,180,5,5,43,230,5,5,239,181,5,5,156,186,5,5,21,168,5,5,117,246,5,5,247,236,5,5,17,189,5,5,37,233,5,5,94,193,5,5,205,203,5,5,228,247,5,5,73,237,5,5,26,226,5,5,91,189,5,5,161,206,5,5,32,219,5,5,161,209,5,5,107,185,5,5,129,218,5,5,182,194,5,5,107,234,5,5,156,247,5,5,169,174,5,5,162,206,5,5,18,189,5,5,197,210,5,5,130,181,5,5,33,206,5,5,95,193,5,5,16,193,5,5,125,227,5,5,98,190,5,5,28,228,5,5,8,172,5,5,72,230,5,5,135,197,5,5,117,242,5,5,228,171,5,5,69,198,5,5,70,198,5,5,15,170,5,5,27,231,5,5,71,198,5,5,23,197,5,5,90,227,5,5,38,196,5,5,29,226,5,5,121,181,5,5,122,181,5,5,190,199,5,5,206,189,5,5,109,230,5,5,58,221,5,5,196,200,5,5,25,195,5,5,42,212,5,5,208,205,5,5,19,213,5,5,156,222,5,5,37,184,5,5,56,168,5,5,244,248,5,5,189,212,5,5,143,216,5,5,81,215,5,5,158,169,5,5,148,179,5,5,209,205,5,5,43,218,5,5,186,193,5,5,25,197,5,5,139,227,5,5,245,235,5,5,166,242,5,5,180,214,5,5,45,202,5,5,51,238,5,5,148,248,5,5,58,199,5,5,89,181,5,5,77,200,5,5,137,221,5,5,181,214,5,5,40,196,5,5,145,239,5,5,146,239,5,5,41,196,5,5,55,249,5,5,183,200,5,5,41,180,5,5,96,214,5,5,60,176,5,5,184,185,5,5,250,196,5,5,250,197,5,5,147,239,5,5,10,250,5,5,74,192,5,5,223,222,5,5,88,240,5,5,7,175,5,5,184,208,5,5,6,219,5,5,58,168,5,5,29,217,5,5,32,226,5,5,210,189,5,5,33,226,5,5,203,181,5,5,54,195,5,5,90,207,5,5,38,184,5,5,40,176,5,5,126,227,5,5,183,236,5,5,212,188,5,5,226,242,5,5,65,213,5,5,78,200,5,5,178,207,5,5,211,189,5,5,89,240,5,5,232,175,5,5,162,230,5,5,28,197,5,5,42,180,5,5,129,172,5,5,172,182,5,5,237,188,5,5,101,240,5,5,227,242,5,5,12,232,5,5,214,229,5,5,199,221,5,5,238,188,5,5,138,175,5,5,135,225,5,5,207,231,5,5,124,219,5,5,176,204,5,5,165,192,5,5,72,186,5,5,191,193,5,5,128,224,5,5,64,188,5,5,129,176,5,5,130,176,5,5,157,239,5,5,223,237,5,5,6,237,5,5,81,192,5,5,212,202,5,5,107,226,5,5,86,199,5,5,245,225,5,5,246,225,5,5,158,239,5,5,127,227,5,5,190,206,5,5,47,233,5,5,50,185,5,5,108,226,5,5,26,174,5,5,166,192,5,5,158,227,5,5,169,245,5,5,129,168,5,5,199,237,5,5,97,238,5,5,210,211,5,5,8,175,5,5,63,247,5,5,206,204,5,5,217,240,5,5,227,205,5,5,161,170,5,5,251,222,5,5,249,248,5,5,219,241,5,5,75,230,5,5,10,198,5,5,252,239,5,5,35,226,5,5,100,223,5,5,189,194,5,5,162,239,5,5,49,190,5,5,162,170,5,5,105,240,5,5,35,224,5,5,230,190,5,5,109,182,5,5,190,194,5,5,152,203,5,5,14,237,5,5,52,185,5,5,208,196,5,5,64,232,5,5,65,232,5,5,128,227,5,5,220,206,5,5,14,250,5,5,129,242,5,5,107,240,5,5,216,205,5,5,159,227,5,5,66,232,5,5,116,235,5,5,164,239,5,5,56,213,5,5,186,222,5,5,128,206,5,5,41,231,5,5,179,238,5,5,90,192,5,5,79,244,5,5,220,241,5,5,229,244,5,5,55,238,5,5,78,237,5,5,57,213,5,5,72,211,5,5,17,190,5,5,71,208,5,5,108,240,5,5,19,208,5,5,248,178,5,5,47,243,5,5,130,242,5,5,209,201,5,5,9,172,5,5,112,205,5,5,241,188,5,5,5,205,5,5,255,222,5,5,49,243,5,5,109,240,5,5,245,186,5,5,170,217,5,5,61,202,5,5,51,206,5,5,229,210,5,5,151,196,5,5,7,192,5,5,141,242,5,5,26,209,5,5,170,221,5,5,196,211,5,5,234,235,5,5,118,172,5,5,104,169,5,5,251,245,5,5,54,186,5,5,27,180,5,5,80,205,5,5,236,235,5,5,255,232,5,5,33,237,5,5,59,204,5,5,152,174,5,5,140,217,5,5,146,242,5,5,107,235,5,5,255,227,5,5,66,223,5,5,252,246,5,5,231,181,5,5,145,186,5,5,97,234,5,5,13,189,5,5,144,247,5,5,96,185,5,5,29,206,5,5,70,189,5,5,65,230,5,5,199,171,5,5,7,202,5,5,131,197,5,5,98,186,5,5,113,181,5,5,62,242,5,5,40,232,5,5,6,226,5,5,98,230,5,5,31,218,5,5,181,208,5,5,47,168,5,5,65,200,5,5,156,169,5,5,171,212,5,5,66,215,5,5,53,176,5,5,178,185,5,5,159,242,5,5,9,224,5,5,192,189,5,5,200,188,5,5,184,181,5,5,107,186,5,5,16,217,5,5,118,176,5,5,169,207,5,5,153,230,5,5,98,239,5,5,213,237,5,5,211,229,5,5,155,204,5,5,151,192,5,5,99,239,5,5,171,193,5,5,229,188,5,5,90,238,5,5,81,240,5,5,167,245,5,5,200,204,5,5,138,203,5,5,183,194,5,5,202,196,5,5,109,242,5,5,203,205,5,5,134,190,5,5,221,244,5,5,87,240,5,5,11,190,5,5,10,208,5,5,241,186,5,5,252,222,5,5,117,205,5,5,184,195,5,5,96,204,5,5,251,193,5,5,61,232,5,5,89,177,5,5,2,194,5,5,6,194,5,5,137,236,5,5,87,177,5,5,160,205,5,5,14,241,5,5,219,176,5,5,183,192,5,5,86,212,5,5,220,176,5,5,87,212,5,5,68,248,5,5,38,198,5,5,17,248,5,5,179,193,5,5,56,208,5,5,57,208,5,5,6,242,5,5,169,204,5,5,24,174,5,5,41,198,5,5,246,203,5,5,145,210,5,5,182,214,5,5,210,205,5,5,205,196,5,5,42,198,5,5,42,196,5,5,199,202,5,5,182,232,5,5,62,232,5,5,72,193,5,5,62,208,5,5,213,202,5,5,12,221,5,5,38,245,5,5,254,203,5,5,45,196,5,5,191,214,5,5,111,204,5,5,138,236,5,5,221,176,5,5,229,206,5,5,225,206,5,5,201,188,5,5,205,173,5,5,194,183,5,5,172,208,5,5,173,208,5,5,196,183,5,5,95,212,5,5,189,217,5,5,124,217,5,5,162,209,5,5,197,183,5,5,151,232,5,5,184,200,5,5,127,217,5,5,175,208,5,5,9,175,5,5,116,183,5,5,181,183,5,5,120,217,5,5,174,208,5,5,172,206,5,5,131,207,5,5,66,209,5,5,32,191,5,5,144,209,5,5,177,249,5,5,162,211,5,5,50,183,5,5,201,190,5,5,191,190,5,5,185,195,5,5,10,187,5,5,80,226,5,5,71,227,5,5,89,189,5,5,72,190,5,5,216,199,5,5,92,189,5,5,169,222,5,5,28,202,5,5,198,210,5,5,175,174,5,5,244,188,5,5,243,188,5,5,100,239,5,5,119,215,5,5,4,178,5,5,144,231,5,5,200,227,5,5,132,209,5,5,125,209,5,5,120,215,5,5,204,177,5,5,188,175,5,5,84,241,5,5,98,179,5,5,95,238,5,5,205,231,5,5,179,236,5,5,128,217,5,5,195,207,5,5,184,236,5,5,199,216,5,5,42,243,5,5,46,202,5,5,69,178,5,5,145,180,5,5,100,172,5,5,80,236,5,5,130,236,5,5,188,236,5,5,6,178,5,5,88,168,5,5,243,245,5,5,210,177,5,5,101,172,5,5,98,238,5,5,179,207,5,5,248,244,5,5,197,236,5,5,154,180,5,5,113,205,5,5,191,246,5,5,52,183,5,5,35,184,5,5,71,184,5,5,165,208,5,5,150,208,5,5,221,242,5,5,241,176,5,5,192,217,5,5,198,173,5,5,56,228,5,5,233,247,5,5,120,246,5,5,18,208,5,5,130,168,5,5,33,171,5,5,19,228,5,5,163,170,5,5,196,242,5,5,190,173,5,5,17,228,5,5,241,179,5,5,118,208,5,5,12,210,5,5,243,179,5,5,41,249,5,5,102,186,5,5,103,186,5,5,39,180,5,5,45,183,5,5,204,225,5,5,168,242,5,5,22,213,5,5,123,173,5,5,51,185,5,5,4,215,5,5,169,242,5,5,97,225,5,5,219,225,5,5,172,222,5,5,165,222,5,5,43,183,5,5,242,182,5,5,183,229,5,5,203,168,5,5,146,179,5,5,15,228,5,5,93,247,5,5,155,217,5,5,136,221,5,5,236,221,5,5,111,241,5,5,238,221,5,5,232,226,5,5,74,230,5,5,29,197,5,5,43,196,5,5,172,191,5,5,30,197,5,5,190,236,5,5,91,227,5,5,101,223,5,5,39,231,5,5,157,232,5,5,195,236,5,5,182,201,5,5,20,170,5,5,215,237,5,5,81,217,5,5,239,187,5,5,157,230,5,5,159,230,5,5,105,189,5,5,211,233,5,5,205,181,5,5,141,244,5,5,137,234,5,5,228,229,5,5,142,244,5,5,120,211,5,5,57,210,5,5,160,214,5,5,189,244,5,5,17,193,5,5,56,249,5,5,82,192,5,5,88,192,5,5,99,214,5,5,51,192,5,5,221,174,5,5,43,174,5,5,44,174,5,5,210,188,5,5,12,236,5,5,251,239,5,5,208,233,5,5,95,169,5,5,77,244,5,5,209,233,5,5,253,172,5,5,172,174,5,5,185,236,5,5,50,197,5,5,159,226,5,5,105,204,5,5,100,204,5,5,108,175,5,5,248,217,5,5,210,233,5,5,28,199,5,5,32,211,5,5,207,196,5,5,198,237,5,5,90,176,5,5,113,243,5,5,8,242,5,5,153,175,5,5,217,238,5,5,146,210,5,5,78,244,5,5,179,249,5,5,178,217,5,5,114,243,5,5,196,236,5,5,211,211,5,5,207,181,5,5,18,230,5,5,166,239,5,5,101,176,5,5,180,249,5,5,85,179,5,5,154,175,5,5,5,196,5,5,48,236,5,5,208,174,5,5,39,174,5,5,185,188,5,5,236,239,5,5,44,197,5,5,84,204,5,5,90,169,5,5,150,226,5,5,39,249,5,5,24,199,5,5,254,241,5,5,84,176,5,5,177,217,5,5,17,230,5,5,232,204,5,5,62,212,5,5,228,185,5,5,63,212,5,5,186,236,5,5,249,204,5,5,17,205,5,5,229,185,5,5,130,198,5,5,151,177,5,5,112,204,5,5,152,177,5,5,208,204,5,5,216,185,5,5,126,198,5,5,57,187,5,5,31,217,5,5,35,171,5,5,25,187,5,5,38,243,5,5,7,176,5,5,215,188,5,5,13,198,5,5,143,233,5,5,132,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,214,5,5,198,185,5,5,213,173,5,5,108,193,5,5,38,190,5,5,227,175,5,5,54,197,5,5,57,187,5,5,57,187,5,5,232,214,5,5,166,195,5,5,133,200,5,5,6,210,5,5,11,201,5,5,202,200,5,5,116,206,5,5,124,206,5,5,115,206,5,5,135,206,5,5,125,206,5,5,147,201,5,5,144,206,5,5,121,201,5,5,149,206,5,5,153,206,5,5,124,201,5,5,159,206,5,5,55,206,5,5,52,206,5,5,240,200,5,5,28,201,5,5,238,200,5,5,51,206,5,5,211,200,5,5,26,201,5,5,225,200,5,5,230,200,5,5,121,200,5,5,148,200,5,5,153,200,5,5,41,201,5,5,60,201,5,5,70,201,5,5,38,201,5,5,35,201,5,5,158,200,5,5,236,201,5,5,86,201,5,5,127,205,5,5,134,205,5,5,98,205,5,5,87,205,5,5,103,201,5,5,95,205,5,5,120,205,5,5,173,205,5,5,212,205,5,5,126,205,5,5,216,205,5,5,170,205,5,5,164,205,5,5,13,206,5,5,158,205,5,5,193,205,5,5,160,205,5,5,98,206,5,5,13,205,5,5,116,211,5,5,250,204,5,5,251,204,5,5,80,201,5,5,193,201,5,5,172,205,5,5,155,201,5,5,198,201,5,5,246,205,5,5,38,205,5,5,214,201,5,5,60,205,5,5,215,201,5,5,255,205,5,5,58,205,5,5,154,201,5,5,132,201,5,5,4,204,5,5,52,204,5,5,233,201,5,5,85,204,5,5,72,204,5,5,58,204,5,5,146,180,5,5,216,209,5,5,147,201,5,5,179,211,5,5,213,177,5,5,60,211,5,5,140,211,5,5,7,206,5,5,37,239,5,5,159,169,5,5,20,212,5,5,210,170,5,5,101,184,5,5,10,172,5,5,96,208,5,5,216,222,5,5,150,224,5,5,73,172,5,5,153,219,5,5,143,221,5,5,19,238,5,5,36,223,5,5,20,220,5,5,253,173,201,32,230,0,5,5,215,221,5,5,110,219,5,5,56,206,5,5,57,206,5,5,97,203,5,5,87,203,5,5,72,203,5,5,73,203,5,5,84,203,5,5,70,203,5,5,107,203,5,5,105,203,5,5,170,202,5,5,230,205,5,5,143,211,5,5,90,205,5,5,237,205,5,5,20,206,5,5,197,202,5,5,221,205,5,5,59,202,5,5,199,202,5,5,28,202,5,5,90,202,5,5,171,202,5,5,172,202,5,5,218,202,5,5,190,210,5,5,2,203,5,5,68,203,5,5,207,210,5,5,245,202,5,5,57,203,5,5,35,203,5,5,191,210,5,5,60,203,5,5,17,203,5,5,210,210,5,5,246,202,5,5,236,202,5,5,64,203,5,5,175,203,5,5,176,203,5,5,202,236,5,5,189,203,5,5,196,203,5,5,36,223,5,5,242,202,5,5,218,210,5,5,201,210,5,5,63,203,5,5,23,203,5,5,207,203,5,5,119,204,5,5,38,204,5,5,60,211,5,5,118,204,5,5,233,202,5,5,50,204,5,5,132,240,5,5,68,204,5,5,70,204,5,5,81,204,5,5,83,204,5,5,108,204,5,5,117,204,5,5,104,202,5,5,82,202,5,5,85,202,5,5,181,202,5,5,165,181,5,5,151,201,5,5,117,203,5,5,125,203,5,5,240,210,5,5,165,203,5,5,147,201,5,5,133,203,5,5,136,203,5,5,157,203,5,5,131,203,5,5,232,204,5,5,53,243,5,5,64,219,5,5,149,204,5,5,90,175,5,5,178,204,5,5,131,204,5,5,124,204,5,5,134,204,5,5,132,204,5,5,136,204,5,5,91,211,5,5,223,201,5,5,193,204,5,5,181,205,5,5,152,205,5,5,74,206,5,5,79,206,5,5,81,206,5,5,88,206,5,5,5,206,5,5,156,202,5,5,126,202,5,5,7,206,5,5,222,204,5,5,98,202,5,5,95,202,5,5,250,205,5,5,251,238,5,5,63,202,5,5,252,201,5,5,122,210,5,5,72,202,5,5,149,202,5,5,31,202,5,5,76,202,5,5,73,202,5,5,64,202,5,5,39,202,5,5,174,210,5,5,180,210,5,5,15,204,5,5,237,203,5,5,238,203,5,5,28,204,5,5,230,203,5,5,253,203,5,5,254,203,5,5,216,203,5,5,221,203,5,5,243,203,5,5,94,202,5,5,139,202,5,5,140,202,5,5,136,248,5,5,209,246,5,5,237,221,5,5,61,221,5,5,219,172,5,5,141,176,5,5,64,216,5,5,170,180,5,5,192,224,5,5,123,225,5,5,190,244,5,5,59,180,5,5,138,169,5,5,30,184,5,5,24,234,5,5,130,194,5,5,9,194,5,5,107,200,5,5,111,230,5,5,250,189,192,0,0,0,192,0,0,0,5,5,102,247,192,0,0,0,5,5,190,216,192,0,0,0,192,0,0,0,5,5,254,230,5,5,210,247,5,5,27,239,5,5,62,202,5,5,63,221,5,5,194,232,5,5,9,184,5,5,99,196,5,5,34,196,5,5,226,241,192,0,0,0,5,5,26,217,192,0,0,0,5,5,224,247,192,0,0,0,192,0,0,0,5,5,47,239,5,5,76,180,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,182,5,5,137,223,5,5,213,186,5,5,238,188,5,5,36,201,5,5,174,202,5,5,88,230,5,5,10,220,5,5,148,208,5,5,151,208,5,5,125,216,5,5,148,169,5,5,149,188,5,5,78,225,5,5,251,214,5,5,183,213,5,5,131,209,5,5,193,172,5,5,223,173,5,5,56,191,5,5,101,198,5,5,105,244,5,5,134,174,5,5,5,209,5,5,208,192,5,5,167,222,5,5,147,207,5,5,211,187,5,5,11,248,5,5,47,188,5,5,12,248,5,5,83,245,5,5,26,250,5,5,155,169,5,5,242,220,5,5,175,246,5,5,111,214,5,5,101,241,5,5,209,249,5,5,39,248,5,5,222,191,5,5,200,245,5,5,108,186,5,5,80,227,5,5,96,195,5,5,60,203,5,5,248,195,5,5,98,182,5,5,170,222,5,5,151,245,5,5,98,175,5,5,156,172,5,5,156,172,5,5,171,245,5,5,227,188,5,5,43,222,5,5,39,238,5,5,210,195,5,5,62,171,5,5,120,244,5,5,70,176,5,5,47,239,5,5,32,210,5,5,214,232,5,5,138,213,5,5,77,191,192,0,0,0,5,5,211,186,192,0,0,0,192,0,0,0,5,5,125,171,5,5,198,199,5,5,204,217,5,5,28,234,5,5,10,175,5,5,2,193,5,5,230,240,5,5,206,220,5,5,149,188,5,5,186,225,5,5,83,191,5,5,66,228,5,5,102,247,5,5,34,183,5,5,144,236,5,5,208,169,5,5,74,170,5,5,123,176,5,5,109,168,5,5,79,239,5,5,61,172,5,5,144,237,5,5,179,228,5,5,101,221,5,5,63,242,5,5,105,244,5,5,149,168,5,5,134,174,5,5,202,177,5,5,169,241,5,5,191,223,5,5,114,171,5,5,103,168,5,5,190,216,5,5,60,201,5,5,196,228,5,5,51,245,5,5,166,177,5,5,20,220,5,5,131,204,5,5,237,239,5,5,22,249,5,5,47,188,5,5,109,196,5,5,12,248,5,5,29,216,5,5,240,197,5,5,115,182,5,5,210,247,5,5,9,246,5,5,114,176,5,5,54,190,5,5,195,186,5,5,146,229,5,5,27,239,5,5,151,221,5,5,124,246,5,5,159,197,5,5,170,245,5,5,102,226,5,5,168,226,5,5,96,195,5,5,212,201,5,5,160,225,5,5,60,203,5,5,187,213,5,5,151,245,5,5,182,190,5,5,34,190,5,5,59,243,5,5,229,215,5,5,130,184,5,5,43,222,5,5,168,179,5,5,224,247,5,5,207,216,5,5,39,238,5,5,179,211,5,5,99,242,5,5,210,195,5,5,227,170,5,5,120,244,5,5,150,222,5,5,199,174,5,5,203,223,5,5,40,234,5,5,10,248,5,5,32,210,5,5,99,196,5,5,253,168,5,5,214,232,5,5,127,181,5,5,138,213,5,5,242,245,5,5,57,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,181,5,5,62,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,232,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,92,222,6,5,81,249,6,5,242,222,192,0,0,0,6,5,5,182,6,5,24,181,6,5,127,195,6,5,74,226,6,5,152,194,6,5,176,240,6,5,63,230,6,5,165,203,6,5,94,215,6,5,129,189,6,5,187,243,6,5,229,233,6,5,104,175,6,5,83,247,6,5,111,221,6,5,129,182,6,5,114,221,6,5,5,176,6,5,170,236,6,5,62,227,6,5,5,172,6,5,57,238,6,5,166,219,6,5,48,241,6,5,30,250,6,5,67,247,6,5,87,241,6,5,179,246,6,5,182,249,6,5,153,177,6,5,235,195,6,5,48,199,6,5,154,188,6,5,5,207,6,5,63,241,6,5,7,243,6,5,15,221,6,5,97,185,6,5,116,240,6,5,125,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,113,0,197,67,114,0,197,163,114,0,197,3,115,0,197,99,115,0,197,195,115,0,197,35,116,0,197,131,116,0,197,227,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,158,178,6,5,239,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,202,5,5,93,228,5,5,99,238,192,0,0,0,5,5,149,210,5,5,88,230,5,5,183,227,5,5,130,171,5,5,163,243,5,5,183,169,5,5,10,220,5,5,229,232,192,0,0,0,192,0,0,0,5,5,148,208,5,5,136,227,5,5,245,190,5,5,65,197,192,0,0,0,192,0,0,0,5,5,110,210,5,5,187,243,192,0,0,0,5,5,233,218,5,5,143,242,5,5,92,171,5,5,19,180,5,5,198,199,192,0,0,0,5,5,126,215,5,5,140,218,192,0,0,0,5,5,249,198,5,5,132,206,5,5,97,185,5,5,76,173,192,0,0,0,5,5,230,240,5,5,151,208,5,5,125,216,5,5,206,220,5,5,82,169,5,5,152,176,5,5,159,169,5,5,63,191,5,5,148,169,5,5,196,171,5,5,102,192,5,5,109,192,5,5,171,216,5,5,171,216,5,5,171,216,192,0,0,0,5,5,253,190,5,5,94,192,5,5,210,223,192,0,0,0,5,5,247,194,5,5,223,174,5,5,113,237,5,5,105,232,5,5,168,230,5,5,88,174,5,5,131,247,5,5,144,181,5,5,205,208,5,5,100,225,5,5,206,214,5,5,34,232,5,5,126,220,5,5,126,220,5,5,83,191,5,5,157,174,5,5,130,244,5,5,142,237,5,5,116,227,5,5,78,225,5,5,117,227,5,5,98,188,5,5,133,212,5,5,64,216,5,5,133,248,5,5,94,174,5,5,130,246,5,5,138,227,5,5,30,234,5,5,109,176,5,5,133,169,5,5,52,179,192,0,0,0,5,5,224,206,5,5,176,189,5,5,118,183,5,5,24,181,5,5,34,208,5,5,224,220,192,0,0,0,192,0,0,0,5,5,14,192,5,5,150,241,5,5,185,227,5,5,125,213,5,5,96,184,192,0,0,0,192,0,0,0,5,5,103,218,5,5,10,201,5,5,10,201,192,0,0,0,5,5,147,242,5,5,8,247,5,5,60,211,5,5,121,169,192,0,0,0,5,5,97,222,5,5,86,194,5,5,50,178,5,5,24,241,192,0,0,0,5,5,103,227,5,5,223,173,5,5,120,234,5,5,36,215,192,0,0,0,5,5,157,236,192,0,0,0,5,5,70,179,5,5,19,249,5,5,77,173,5,5,162,235,5,5,186,173,192,0,0,0,5,5,214,235,5,5,14,223,5,5,115,207,5,5,35,183,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,171,5,5,75,170,5,5,201,222,5,5,41,201,192,0,0,0,5,5,230,185,192,0,0,0,192,0,0,0,5,5,148,241,5,5,156,225,5,5,156,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,234,5,5,134,179,192,0,0,0,5,5,35,180,5,5,130,218,5,5,199,246,5,5,182,199,5,5,144,242,192,0,0,0,192,0,0,0,5,5,56,191,192,0,0,0,5,5,241,180,5,5,113,176,5,5,186,190,5,5,101,221,5,5,186,190,5,5,34,205,5,5,105,244,5,5,144,232,5,5,62,183,5,5,97,172,5,5,255,207,5,5,134,174,5,5,11,201,5,5,86,174,5,5,82,193,5,5,87,199,5,5,126,169,5,5,191,168,5,5,125,197,192,0,0,0,5,5,114,228,5,5,126,213,5,5,239,220,5,5,221,219,5,5,117,192,192,0,0,0,5,5,233,195,5,5,113,236,5,5,152,236,192,0,0,0,5,5,67,209,5,5,140,194,5,5,28,191,5,5,218,194,192,0,0,0,5,5,5,209,5,5,94,196,192,0,0,0,5,5,226,192,5,5,127,222,5,5,222,195,192,0,0,0,5,5,167,222,192,0,0,0,192,0,0,0,5,5,107,207,5,5,155,208,5,5,240,249,5,5,39,214,5,5,230,209,192,0,0,0,5,5,60,201,5,5,196,228,5,5,110,249,5,5,200,214,5,5,230,170,192,0,0,0,192,0,0,0,5,5,179,186,5,5,8,192,5,5,194,219,5,5,147,207,192,0,0,0,5,5,100,168,5,5,211,169,5,5,20,249,192,0,0,0,5,5,133,244,5,5,154,237,5,5,185,184,5,5,232,220,192,0,0,0,5,5,48,247,192,0,0,0,5,5,138,176,192,0,0,0,5,5,168,234,192,0,0,0,5,5,80,224,5,5,141,229,5,5,20,220,5,5,46,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,182,192,0,0,0,5,5,91,236,5,5,209,169,5,5,38,215,5,5,56,230,5,5,252,211,5,5,211,187,5,5,131,204,5,5,120,188,5,5,224,195,5,5,249,210,192,0,0,0,5,5,173,213,5,5,25,185,5,5,64,236,192,0,0,0,5,5,22,249,5,5,71,179,192,0,0,0,5,5,59,236,5,5,194,173,192,0,0,0,192,0,0,0,5,5,36,183,5,5,40,243,5,5,109,196,5,5,148,240,192,0,0,0,5,5,124,215,5,5,174,243,5,5,100,248,5,5,72,225,192,0,0,0,5,5,195,180,192,0,0,0,5,5,172,176,192,0,0,0,5,5,9,177,5,5,240,197,5,5,149,244,192,0,0,0,5,5,220,230,5,5,195,169,192,0,0,0,192,0,0,0,5,5,190,224,5,5,167,228,192,0,0,0,5,5,15,243,192,0,0,0,192,0,0,0,5,5,196,177,5,5,185,241,5,5,9,246,5,5,160,224,5,5,254,216,192,0,0,0,5,5,79,219,192,0,0,0,5,5,176,243,192,0,0,0,5,5,37,239,192,0,0,0,5,5,248,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,245,5,5,184,245,5,5,184,245,5,5,159,197,192,0,0,0,5,5,244,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,5,5,170,205,5,5,102,226,192,0,0,0,192,0,0,0,5,5,209,249,192,0,0,0,192,0,0,0,5,5,9,184,5,5,157,222,192,0,0,0,5,5,108,186,5,5,247,192,5,5,195,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,213,192,0,0,0,192,0,0,0,5,5,109,248,5,5,247,247,192,0,0,0,192,0,0,0,5,5,203,169,192,0,0,0,5,5,145,194,5,5,182,219,5,5,211,192,192,0,0,0,5,5,237,169,192,0,0,0,5,5,36,249,5,5,144,249,5,5,213,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,173,192,0,0,0,5,5,104,237,5,5,125,168,5,5,151,245,192,0,0,0,192,0,0,0,5,5,157,213,192,0,0,0,5,5,180,176,192,0,0,0,192,0,0,0,5,5,19,242,5,5,35,177,192,0,0,0,5,5,8,213,5,5,179,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,241,5,5,126,231,5,5,115,176,192,0,0,0,5,5,197,214,5,5,14,242,5,5,82,246,5,5,78,201,5,5,18,190,5,5,141,182,5,5,251,235,5,5,102,199,192,0,0,0,5,5,110,219,5,5,254,172,5,5,196,218,5,5,78,195,5,5,58,230,5,5,59,207,5,5,9,179,5,5,171,245,5,5,176,213,5,5,7,197,5,5,29,198,5,5,68,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,213,5,5,204,195,5,5,86,177,192,0,0,0,5,5,81,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,211,5,5,120,205,5,5,233,199,5,5,147,231,5,5,151,174,5,5,50,215,5,5,157,242,5,5,189,213,5,5,59,243,5,5,210,179,5,5,221,247,5,5,150,176,192,0,0,0,5,5,91,187,5,5,211,232,192,0,0,0,5,5,179,248,5,5,63,238,192,0,0,0,5,5,137,204,5,5,20,223,192,0,0,0,5,5,169,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,174,5,5,99,242,5,5,227,170,5,5,243,221,192,0,0,0,5,5,223,186,5,5,93,170,5,5,250,184,5,5,205,214,192,0,0,0,192,0,0,0,5,5,198,168,5,5,213,193,5,5,73,213,192,0,0,0,5,5,165,218,5,5,150,222,192,0,0,0,192,0,0,0,5,5,193,214,5,5,169,213,5,5,26,249,192,0,0,0,5,5,189,173,5,5,203,171,5,5,28,235,5,5,45,190,5,5,119,171,5,5,231,215,5,5,201,243,192,0,0,0,5,5,90,198,192,0,0,0,5,5,66,220,192,0,0,0,192,0,0,0,5,5,60,215,5,5,249,230,5,5,112,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,170,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,181,5,5,127,181,5,5,160,213,192,0,0,0,5,5,18,192,192,0,0,0,5,5,195,181,5,5,62,243,5,5,115,169,5,5,190,227,192,0,0,0,192,0,0,0,5,5,242,245,5,5,28,193,5,5,170,193,192,0,0,0,192,0,0,0,5,5,19,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,206,192,0,0,0,5,5,191,246,5,5,150,208,5,5,120,246,5,5,118,208,5,5,45,183,5,5,20,170,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,0,0,142,9,0,5,0,5,0,0,57,238,28,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,5,182,24,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,166,219,26,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,106,223,12,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,77,230,23,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,193,204,18,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,58,214,27,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,161,168,19,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,165,196,25,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,201,221,16,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,7,243,8,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,198,191,3,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,12,223,4,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,184,209,6,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,129,227,11,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,183,218,9,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,207,247,5,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,63,241,7,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,24,209,14,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,210,225,2,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,79,201,17,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,169,177,22,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,143,189,13,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,101,235,10,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,194,214,21,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,103,233,15,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,87,234,20,15,0,5,0,0,144,9,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,5,5,142,9,5,5,166,195,6,5,144,9,5,5,142,9,5,5,242,220,13,5,144,9,5,5,142,9,5,5,52,172,8,5,144,9,5,5,142,9,5,5,39,248,12,5,144,9,5,5,142,9,5,5,162,193,14,5,144,9,5,5,142,9,5,5,32,249,7,5,144,9,5,5,142,9,5,5,229,192,11,5,144,9,5,5,142,9,5,5,82,249,10,5,144,9,5,5,142,9,5,5,197,246,9,5,144,9,5,5,0,21,17,5,7,243,5,5,0,23,16,5,7,243,5,5,0,25,15,5,7,243,5,5,0,27,14,5,7,243,5,5,0,29,13,5,7,243,5,5,0,31,12,5,7,243,5,5,0,33,11,5,7,243,5,5,0,35,10,5,7,243,5,5,0,37,9,5,7,243,5,5,0,21,5,5,0,19,20,5,7,243,5,5,0,21,5,5,0,21,19,5,7,243,5,5,0,21,5,5,0,23,18,5,7,243,5,5,119,204,7,5,158,188,5,5,0,19,30,5,88,179,5,5,0,21,19,5,88,179,5,5,0,23,13,5,88,179,5,5,0,25,12,5,88,179,5,5,0,27,11,5,88,179,5,5,0,29,10,5,88,179,5,5,0,31,9,5,88,179,5,5,0,33,8,5,88,179,5,5,0,35,7,5,88,179,5,5,0,37,6,5,88,179,5,5,0,21,5,5,0,19,29,5,88,179,5,5,0,21,5,5,0,21,28,5,88,179,5,5,0,21,5,5,0,23,27,5,88,179,5,5,0,21,5,5,0,25,26,5,88,179,5,5,0,21,5,5,0,27,25,5,88,179,5,5,0,21,5,5,0,29,24,5,88,179,5,5,0,21,5,5,0,31,23,5,88,179,5,5,0,21,5,5,0,33,22,5,88,179,5,5,0,21,5,5,0,35,21,5,88,179,5,5,0,21,5,5,0,37,20,5,88,179,5,5,0,23,5,5,0,19,18,5,88,179,5,5,0,23,5,5,0,21,17,5,88,179,5,5,0,23,5,5,0,23,16,5,88,179,5,5,0,23,5,5,0,25,15,5,88,179,5,5,0,23,5,5,0,27,14,5,88,179,5,5,161,213,6,5,86,174,5,5,73,245,6,5,158,188,5,5,154,177,7,5,65,246,5,5,25,209,6,5,208,246,5,5,207,247,5,5,10,222,5,5,67,191,7,5,242,220,5,5,0,21,28,5,183,218,5,5,0,23,17,5,183,218,5,5,0,25,14,5,183,218,5,5,0,27,13,5,183,218,5,5,0,29,12,5,183,218,5,5,0,31,11,5,183,218,5,5,0,33,10,5,183,218,5,5,0,35,9,5,183,218,5,5,0,37,8,5,183,218,5,5,0,21,5,5,0,19,38,5,183,218,5,5,0,21,5,5,0,21,37,5,183,218,5,5,0,21,5,5,0,23,36,5,183,218,5,5,0,21,5,5,0,25,35,5,183,218,5,5,0,21,5,5,0,27,34,5,183,218,5,5,0,21,5,5,0,29,33,5,183,218,5,5,0,21,5,5,0,31,32,5,183,218,5,5,0,21,5,5,0,33,31,5,183,218,5,5,0,21,5,5,0,35,30,5,183,218,5,5,0,21,5,5,0,37,29,5,183,218,5,5,0,23,5,5,0,19,27,5,183,218,5,5,0,23,5,5,0,21,26,5,183,218,5,5,0,23,5,5,0,23,25,5,183,218,5,5,0,23,5,5,0,25,24,5,183,218,5,5,0,23,5,5,0,27,23,5,183,218,5,5,0,23,5,5,0,29,22,5,183,218,5,5,0,23,5,5,0,31,21,5,183,218,5,5,0,23,5,5,0,33,20,5,183,218,5,5,0,23,5,5,0,35,19,5,183,218,5,5,0,23,5,5,0,37,18,5,183,218,5,5,0,25,5,5,0,19,16,5,183,218,5,5,0,25,5,5,0,21,15,5,183,218,5,5,68,221,5,5,41,237,5,5,2,244,5,5,158,229,5,5,29,175,5,5,209,216,69,5,39,172,5,160,0,0,69,5,90,181,5,138,0,0,69,5,90,181,5,136,0,0,69,5,90,181,5,142,0,0,69,5,90,181,5,150,0,0,69,5,214,209,5,154,0,0,69,5,187,211,5,138,0,0,69,5,187,211,5,136,0,0,69,5,187,211,5,142,0,0,69,5,187,211,5,154,0,0,69,5,187,211,5,150,0,0,69,5,225,235,5,136,0,0,69,5,39,172,5,136,0,0,69,5,39,172,5,142,0,0,69,5,39,172,5,156,0,0,69,5,39,172,5,144,0,0,69,5,108,177,5,144,0,0,69,5,90,181,5,164,0,0,69,5,90,181,5,140,0,0,69,5,90,181,5,156,0,0,69,5,90,181,5,162,0,0,69,5,90,181,5,144,0,0,69,5,134,184,5,142,0,0,69,5,134,184,5,140,0,0,69,5,134,184,5,156,0,0,69,5,134,184,5,160,0,0,69,5,198,187,5,142,0,0,69,5,246,191,5,142,0,0,69,5,74,198,5,160,0,0,69,5,119,200,5,136,0,0,69,5,119,200,5,160,0,0,69,5,119,200,5,144,0,0,69,5,214,209,5,136,0,0,69,5,214,209,5,160,0,0,69,5,214,209,5,144,0,0,69,5,187,211,5,164,0,0,69,5,187,211,5,140,0,0,69,5,187,211,5,152,0,0,69,5,55,218,5,136,0,0,69,5,55,218,5,160,0,0,69,5,55,218,5,144,0,0,69,5,125,219,5,136,0,0,69,5,125,219,5,142,0,0,69,5,125,219,5,160,0,0,69,5,125,219,5,144,0,0,69,5,170,224,5,160,0,0,69,5,170,224,5,144,0,0,69,5,40,228,5,142,0,0,69,5,225,235,5,142,0,0,69,5,225,235,5,150,0,0,69,5,147,243,5,136,0,0,69,5,147,243,5,156,0,0,69,5,147,243,5,144,0,0,69,5,187,211,5,190,0,0,69,5,187,211,5,144,0,0,69,5,0,127,5,150,0,0,5,164,0,0,69,5,0,127,5,156,0,0,5,164,0,0,69,5,134,184,5,144,0,0,69,5,74,198,5,144,0,0,69,5,187,211,5,162,0,0,69,5,187,211,5,162,0,0,5,164,0,0,69,5,134,184,5,136,0,0,69,5,214,209,5,138,0,0,69,5,0,127,5,146,0,0,5,136,0,0,69,5,90,181,5,184,0,0,69,5,90,181,5,188,0,0,69,5,187,211,5,184,0,0,69,5,187,211,5,188,0,0,69,5,55,218,5,184,0,0,69,5,55,218,5,188,0,0,69,5,125,219,5,202,0,0,69,5,170,224,5,202,0,0,69,5,198,187,5,144,0,0,69,5,90,181,5,160,0,0,69,5,187,211,5,150,0,0,5,164,0,0,69,5,187,211,5,154,0,0,5,164,0,0,69,5,187,211,5,156,0,0,69,5,187,211,5,156,0,0,5,164,0,0,69,5,225,235,5,164,0,0,69,5,159,168,5,156,0,0,69,5,159,168,5,196,0,0,69,5,159,168,5,210,0,0,69,5,39,172,5,160,0,0,5,136,0,0,69,5,108,177,5,156,0,0,69,5,108,177,5,196,0,0,69,5,108,177,5,210,0,0,69,5,108,177,5,160,0,0,69,5,108,177,5,204,0,0,69,5,90,181,5,164,0,0,5,138,0,0,69,5,90,181,5,164,0,0,5,136,0,0,69,5,90,181,5,204,0,0,69,5,90,181,5,208,0,0,69,5,90,181,5,160,0,0,5,140,0,0,69,5,18,182,5,156,0,0,69,5,134,184,5,164,0,0,69,5,198,187,5,156,0,0,69,5,198,187,5,196,0,0,69,5,198,187,5,150,0,0,69,5,198,187,5,160,0,0,69,5,198,187,5,206,0,0,69,5,74,198,5,136,0,0,69,5,74,198,5,196,0,0,69,5,74,198,5,210,0,0,69,5,119,200,5,196,0,0,69,5,119,200,5,196,0,0,5,164,0,0,69,5,119,200,5,210,0,0,69,5,119,200,5,204,0,0,69,5,165,206,5,136,0,0,69,5,165,206,5,156,0,0,69,5,165,206,5,196,0,0,69,5,214,209,5,156,0,0,69,5,214,209,5,196,0,0,69,5,214,209,5,210,0,0,69,5,214,209,5,204,0,0,69,5,187,211,5,154,0,0,5,136,0,0,69,5,187,211,5,154,0,0,5,150,0,0,69,5,187,211,5,164,0,0,5,138,0,0,69,5,187,211,5,164,0,0,5,136,0,0,69,5,222,211,5,136,0,0,69,5,222,211,5,156,0,0,69,5,55,218,5,156,0,0,69,5,55,218,5,196,0,0,69,5,55,218,5,196,0,0,5,164,0,0,69,5,55,218,5,210,0,0,69,5,125,219,5,156,0,0,69,5,125,219,5,196,0,0,69,5,125,219,5,136,0,0,5,156,0,0,69,5,125,219,5,144,0,0,5,156,0,0,69,5,125,219,5,196,0,0,5,156,0,0,69,5,170,224,5,156,0,0,69,5,170,224,5,196,0,0,69,5,170,224,5,210,0,0,69,5,170,224,5,204,0,0,69,5,40,228,5,138,0,0,69,5,40,228,5,136,0,0,69,5,40,228,5,150,0,0,69,5,40,228,5,156,0,0,69,5,40,228,5,196,0,0,69,5,164,230,5,156,0,0,69,5,164,230,5,150,0,0,69,5,225,235,5,156,0,0,69,5,147,243,5,142,0,0,69,5,147,243,5,196,0,0,69,5,147,243,5,210,0,0,69,5,0,127,5,142,0,0,5,136,0,0,69,5,0,127,5,142,0,0,5,138,0,0,69,5,0,127,5,142,0,0,5,182,0,0,69,5,0,127,5,142,0,0,5,154,0,0,69,5,0,127,5,196,0,0,5,142,0,0,69,5,0,127,5,140,0,0,5,136,0,0,69,5,0,127,5,140,0,0,5,138,0,0,69,5,0,127,5,140,0,0,5,182,0,0,69,5,0,127,5,140,0,0,5,154,0,0,69,5,0,127,5,196,0,0,5,140,0,0,69,5,90,181,5,196,0,0,69,5,90,181,5,182,0,0,69,5,90,181,5,154,0,0,69,5,90,181,5,142,0,0,5,136,0,0,69,5,90,181,5,142,0,0,5,138,0,0,69,5,90,181,5,142,0,0,5,182,0,0,69,5,90,181,5,142,0,0,5,154,0,0,69,5,90,181,5,196,0,0,5,142,0,0,69,5,187,211,5,196,0,0,69,5,187,211,5,182,0,0,69,5,187,211,5,142,0,0,5,136,0,0,69,5,187,211,5,142,0,0,5,138,0,0,69,5,187,211,5,142,0,0,5,182,0,0,69,5,187,211,5,142,0,0,5,154,0,0,69,5,187,211,5,196,0,0,5,142,0,0,69,5,187,211,5,190,0,0,5,136,0,0,69,5,187,211,5,190,0,0,5,138,0,0,69,5,187,211,5,190,0,0,5,182,0,0,69,5,187,211,5,190,0,0,5,154,0,0,69,5,187,211,5,190,0,0,5,196,0,0,69,5,225,235,5,138,0,0,69,5,225,235,5,196,0,0,69,5,225,235,5,182,0,0,69,5,225,235,5,154,0,0,5,5,82,10,5,5,215,169,8,5,84,10,5,5,82,10,5,5,166,219,14,5,84,10,5,5,82,10,5,5,5,182,13,5,84,10,5,5,82,10,5,5,34,168,11,5,84,10,5,5,82,10,5,5,88,179,7,5,84,10,5,5,82,10,5,5,153,177,10,5,84,10,5,5,82,10,5,5,137,178,6,5,84,10,5,5,82,10,5,5,153,221,12,5,84,10,5,5,82,10,5,5,247,168,9,5,84,10,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,69,221,5,5,48,0,51,150,63,192,197,2,130,172,5,5,48,0,135,101,63,192,197,66,118,247,5,5,48,0,134,94,63,192,197,130,41,0,198,161,0,0,218,0,40,2,141,1,102,30,199,0,180,30,100,0,212,30,50,0,226,30,25,0,246,30,14,0,246,30,113,192,197,98,248,30,113,192,197,162,42,33,255,255,74,198,69,5,43,33,255,255,69,127,196,146,226,30,112,192,197,131,242,30,112,192,197,226,244,30,113,192,197,34,218,30,12,0,218,30,111,192,197,3,220,30,111,192,197,99,222,30,111,192,197,195,224,30,112,192,197,35,212,30,109,192,197,227,214,30,110,192,197,67,216,30,110,192,197,163,194,30,23,0,204,30,12,0,204,30,108,192,197,162,206,30,108,192,197,226,208,30,109,192,197,35,210,30,109,192,197,131,194,30,107,192,197,131,196,30,107,192,197,227,198,30,108,192,197,67,186,30,12,0,186,30,106,192,197,66,188,30,106,192,197,130,190,30,106,192,197,195,192,30,107,192,197,35,180,30,105,192,197,67,182,30,105,192,197,163,184,30,106,192,197,2,142,30,50,0,166,30,23,0,172,30,12,0,172,30,103,192,197,195,174,30,104,192,197,35,176,30,104,192,197,131,178,30,104,192,197,227,166,30,102,192,197,163,168,30,103,192,197,3,170,30,103,192,197,99,148,30,14,0,148,30,102,192,197,2,160,30,255,255,69,127,196,196,162,30,255,255,69,127,196,182,164,30,102,192,197,67,142,30,101,192,197,66,144,30,101,192,197,130,146,30,101,192,197,194,128,30,23,0,134,30,12,0,134,30,100,192,197,66,136,30,100,192,197,130,138,30,100,192,197,194,140,30,101,192,197,2,128,30,99,192,197,130,130,30,99,192,197,194,132,30,100,192,197,2,108,30,9,0,108,30,98,192,197,194,110,30,99,192,197,2,112,30,99,192,197,66,102,30,97,192,197,195,104,30,98,192,197,35,106,30,98,192,197,130,42,30,98,0,74,30,48,0,88,30,23,0,94,30,12,0,94,30,96,192,197,162,96,30,96,192,197,226,98,30,97,192,197,34,100,30,97,192,197,99,88,30,95,192,197,194,90,30,96,192,197,2,92,30,96,192,197,67,80,30,12,0,80,30,94,192,197,131,82,30,94,192,197,227,84,30,95,192,197,66,86,30,95,192,197,130,74,30,93,192,197,130,76,30,93,192,197,195,78,30,94,192,197,35,60,30,23,0,66,30,12,0,66,30,92,192,197,130,68,30,92,192,197,194,70,30,93,192,197,2,72,30,93,192,197,66,60,30,91,192,197,194,62,30,92,192,197,2,64,30,92,192,197,66,52,30,12,0,52,30,90,192,197,162,54,30,90,192,197,226,56,30,91,192,197,35,58,30,91,192,197,130,42,30,89,192,197,226,48,30,90,192,197,34,50,30,90,192,197,98,14,30,48,0,28,30,23,0,34,30,12,0,34,30,88,192,197,226,36,30,89,192,197,34,38,30,89,192,197,98,40,30,89,192,197,162,28,30,88,192,197,3,30,30,88,192,197,98,32,30,88,192,197,162,20,30,12,0,20,30,86,192,197,195,22,30,87,192,197,35,24,30,87,192,197,130,26,30,87,192,197,194,14,30,86,192,197,2,16,30,86,192,197,66,18,30,86,192,197,130,0,30,24,0,6,30,12,0,6,30,84,192,197,226,8,30,85,192,197,35,10,30,85,192,197,130,12,30,85,192,197,194,0,30,255,255,69,127,196,200,2,30,84,192,197,98,4,30,84,192,197,162,46,2,9,0,46,2,83,192,197,130,48,2,83,192,197,195,50,2,84,192,197,34,40,2,82,192,197,130,42,2,82,192,197,195,44,2,83,192,197,35,28,1,202,0,120,1,105,0,248,1,54,0,14,2,27,0,24,2,16,0,24,2,81,192,197,194,26,2,82,192,197,2,30,2,82,192,197,66,38,2,240,127,69,127,196,156,4,3,77,192,197,227,14,2,81,192,197,2,16,2,81,192,197,66,18,2,81,192,197,130,2,2,13,0,2,2,255,255,69,127,196,188,4,2,80,192,197,66,6,2,80,192,197,130,12,2,80,192,197,194,248,1,79,192,197,162,250,1,79,192,197,227,0,2,255,255,69,127,196,184,222,1,23,0,232,1,12,0,232,1,78,192,197,130,234,1,78,192,197,194,236,1,79,192,197,3,244,1,79,192,197,98,222,1,77,192,197,131,224,1,77,192,197,227,230,1,78,192,197,66,125,1,13,0,125,1,76,192,197,194,160,1,77,192,197,2,205,1,255,255,69,127,196,144,209,1,77,192,197,66,120,1,76,192,197,2,121,1,76,192,197,66,123,1,76,192,197,130,76,1,48,0,92,1,23,0,98,1,12,0,98,1,75,192,197,2,100,1,75,192,197,66,116,1,75,192,197,130,118,1,75,192,197,194,92,1,74,192,197,66,94,1,74,192,197,130,96,1,74,192,197,194,84,1,12,0,84,1,73,192,197,66,86,1,73,192,197,130,88,1,73,192,197,194,90,1,74,192,197,2,76,1,72,192,197,130,78,1,72,192,197,194,80,1,73,192,197,2,54,1,23,0,61,1,12,0,61,1,71,192,197,130,67,1,71,192,197,194,69,1,72,192,197,2,71,1,72,192,197,66,54,1,70,192,197,194,57,1,71,192,197,2,59,1,71,192,197,66,34,1,9,0,34,1,70,192,197,2,36,1,70,192,197,66,52,1,70,192,197,130,28,1,69,192,197,66,30,1,69,192,197,130,32,1,69,192,197,194,196,0,100,0,221,0,51,0,12,1,23,0,20,1,12,0,20,1,68,192,197,66,22,1,68,192,197,130,24,1,68,192,197,194,26,1,69,192,197,2,12,1,67,192,197,130,14,1,67,192,197,194,18,1,68,192,197,2,4,1,13,0,4,1,255,255,69,127,196,162,6,1,66,192,197,194,8,1,67,192,197,2,10,1,67,192,197,66,221,0,66,192,197,130,0,1,255,255,69,127,196,164,2,1,255,255,69,127,196,140,203,0,23,0,211,0,12,0,211,0,65,192,197,130,212,0,65,192,197,194,213,0,66,192,197,2,214,0,66,192,197,66,203,0,64,192,197,194,209,0,65,192,197,2,210,0,65,192,197,66,200,0,9,0,200,0,64,192,197,2,201,0,64,192,197,66,202,0,64,192,197,130,196,0,255,255,69,127,196,150,197,0,255,255,69,127,196,146,199,0,63,192,197,194,79,0,62,0,88,0,30,0,192,0,16,0,192,0,255,255,69,127,196,138,193,0,255,255,69,127,196,136,194,0,255,255,69,127,196,142,195,0,255,255,69,127,196,154,88,0,255,255,164,230,69,5,89,0,255,255,225,235,69,5,90,0,255,255,147,243,69,5,82,0,16,0,82,0,255,255,55,218,69,5,83,0,255,255,125,219,69,5,84,0,255,255,170,224,69,5,87,0,255,255,40,228,69,5,79,0,255,255,187,211,69,5,80,0,255,255,222,211,69,5,81,0,255,255,57,214,69,5,71,0,30,0,75,0,16,0,75,0,255,255,74,198,69,5,76,0,255,255,119,200,69,5,77,0,255,255,165,206,69,5,78,0,255,255,214,209,69,5,71,0,255,255,134,184,69,5,72,0,255,255,198,187,69,5,74,0,255,255,246,191,69,5,68,0,12,0,68,0,255,255,108,177,69,5,69,0,255,255,90,181,69,5,70,0,255,255,18,182,69,5,65,0,255,255,0,127,69,5,66,0,255,255,159,168,69,5,67,0,255,255,39,172,69,5,118,1,65,0,73,0,74,0,76,0,77,0,85,0,87,0,91,0,192,0,198,0,199,0,204,0,209,0,215,0,221,0,222,0,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,1,14,1,15,1,18,1,19,1,20,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,29,1,30,1,31,1,32,1,33,1,34,1,35,1,36,1,37,1,52,1,53,1,54,1,55,1,57,1,58,1,59,1,60,1,61,1,62,1,67,1,68,1,69,1,70,1,71,1,72,1,76,1,77,1,78,1,79,1,80,1,81,1,84,1,85,1,86,1,87,1,88,1,89,1,90,1,91,1,92,1,93,1,94,1,95,1,96,1,97,1,98,1,99,1,100,1,101,1,116,1,117,1,118,1,119,1,120,1,122,1,123,1,124,1,125,1,126,1,160,1,161,1,205,1,206,1,209,1,210,1,222,1,223,1,224,1,225,1,230,1,231,1,232,1,233,1,234,1,235,1,236,1,237,1,244,1,245,1,248,1,249,1,250,1,251,1,0,2,1,2,2,2,3,2,4,2,5,2,6,2,7,2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,24,2,25,2,26,2,27,2,30,2,31,2,38,2,39,2,40,2,41,2,42,2,43,2,44,2,45,2,46,2,47,2,48,2,49,2,50,2,51,2,0,30,1,30,2,30,3,30,4,30,5,30,6,30,7,30,8,30,9,30,10,30,11,30,12,30,13,30,14,30,15,30,16,30,17,30,18,30,19,30,20,30,21,30,22,30,23,30,24,30,25,30,26,30,27,30,28,30,29,30,30,30,31,30,32,30,33,30,34,30,35,30,36,30,37,30,38,30,39,30,40,30,41,30,42,30,43,30,48,30,49,30,50,30,51,30,52,30,53,30,54,30,55,30,56,30,57,30,58,30,59,30,60,30,61,30,62,30,63,30,64,30,65,30,66,30,67,30,68,30,69,30,70,30,71,30,72,30,73,30,74,30,75,30,76,30,77,30,78,30,79,30,80,30,81,30,82,30,83,30,84,30,85,30,86,30,87,30,88,30,89,30,90,30,91,30,92,30,93,30,94,30,95,30,96,30,97,30,98,30,99,30,100,30,101,30,102,30,103,30,104,30,105,30,106,30,107,30,108,30,109,30,110,30,111,30,112,30,113,30,128,30,129,30,130,30,131,30,132,30,133,30,134,30,135,30,136,30,137,30,138,30,139,30,140,30,141,30,142,30,143,30,144,30,145,30,146,30,147,30,148,30,149,30,160,30,161,30,162,30,163,30,164,30,165,30,166,30,167,30,168,30,169,30,170,30,171,30,172,30,173,30,174,30,175,30,176,30,177,30,178,30,179,30,180,30,181,30,182,30,183,30,184,30,185,30,186,30,187,30,188,30,189,30,190,30,191,30,192,30,193,30,194,30,195,30,196,30,197,30,198,30,199,30,204,30,205,30,206,30,207,30,208,30,209,30,210,30,211,30,212,30,213,30,214,30,215,30,216,30,217,30,218,30,219,30,220,30,221,30,222,30,223,30,224,30,225,30,226,30,227,30,242,30,243,30,244,30,245,30,246,30,247,30,248,30,249,30,42,33,44,33,134,94,135,94,135,101,136,101,51,150,52,150,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,75,141,1,16,219,79,0,96,1,0,0,96,170,170,170,170,34,84,3,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,68,45,3,0,68,45,3,0,180,55,3,0,180,55,3,0,24,64,3,0,24,64,3,0,196,79,3,0,214,79,3,0,6,84,3,0,17,0,0,0,5,0,0,0,0,0,0,41,127,0,0,96,125,0,0,123,44,0,118,123,125,0,0,126,169,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,0,249,250,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,112,14,239,48,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,48,0,52,1,60,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,1,48,0,48,0,48,0,48,0,75,1,83,1,48,0,91,1,99,1,107,1,110,1,48,0,48,0,118,1,126,1,48,0,48,0,48,0,134,1,142,1,150,1,158,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,236,1,244,1,252,1,4,2,12,2,20,2,28,2,36,2,44,2,51,2,59,2,67,2,75,2,83,2,91,2,99,2,103,2,111,2,119,2,125,2,133,2,141,2,48,0,149,2,48,0,157,2,165,2,171,2,179,2,187,2,195,2,203,2,211,2,219,2,226,2,234,2,242,2,250,2,2,3,10,3,18,3,24,3,32,3,40,3,48,3,56,3,64,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,128,3,136,3,142,3,48,0,148,3,156,3,164,3,172,3,180,3,188,3,196,3,203,3,211,3,218,3,226,3,234,3,242,3,250,3,48,0,0,4,8,4,16,4,24,4,31,4,39,4,47,4,55,4,62,4,70,4,78,4,86,4,94,4,102,4,110,4,115,4,122,4,130,4,138,4,146,4,154,4,162,4,169,4,177,4,183,4,190,4,197,4,205,4,213,4,221,4,229,4,237,4,245,4,48,0,253,4,5,5,13,5,21,5,26,5,30,5,37,5,45,5,53,5,61,5,69,5,77,5,84,5,91,5,99,5,107,5,115,5,123,5,131,5,139,5,147,5,154,5,161,5,166,5,174,5,182,5,189,5,196,5,203,5,211,5,219,5,227,5,232,5,240,5,248,5,255,5,3,6,11,6,19,6,22,6,28,6,36,6,44,6,51,6,59,6,64,6,71,6,75,6,83,6,91,6,99,6,107,6,114,6,121,6,129,6,131,6,139,6,147,6,155,6,161,6,48,0,164,6,171,6,178,6,185,6,193,6,201,6,207,6,212,6,220,6,228,6,236,6,48,0,244,6,252,6,4,7,11,7,19,7,27,7,33,7,41,7,49,7,56,7,62,7,66,7,72,7,48,0,48,0,48,0,80,7,88,7,96,7,104,7,112,7,120,7,128,7,136,7,144,7,152,7,160,7,168,7,176,7,184,7,192,7,200,7,208,7,216,7,224,7,232,7,240,7,248,7,0,8,8,8,16,8,24,8,32,8,40,8,48,8,56,8,64,8,72,8,80,8,88,8,96,8,104,8,112,8,120,8,128,8,136,8,144,8,152,8,160,8,168,8,176,8,184,8,192,8,200,8,208,8,216,8,224,8,232,8,240,8,248,8,0,9,8,9,16,9,24,9,32,9,40,9,48,9,56,9,64,9,72,9,80,9,88,9,96,9,104,9,112,9,120,9,128,9,136,9,144,9,152,9,160,9,168,9,176,9,184,9,192,9,200,9,208,9,216,9,224,9,232,9,240,9,248,9,0,10,8,10,16,10,24,10,32,10,40,10,48,10,56,10,64,10,72,10,80,10,88,10,96,10,104,10,112,10,120,10,128,10,136,10,144,10,152,10,160,10,168,10,176,10,184,10,192,10,200,10,208,10,216,10,224,10,232,10,240,10,248,10,0,11,8,11,16,11,24,11,32,11,40,11,48,11,56,11,64,11,72,11,80,11,88,11,96,11,104,11,112,11,120,11,128,11,136,11,144,11,152,11,160,11,168,11,176,11,184,11,192,11,200,11,208,11,216,11,224,11,232,11,240,11,248,11,0,12,8,12,16,12,24,12,32,12,40,12,48,12,56,12,64,12,72,12,80,12,88,12,96,12,104,12,112,12,120,12,128,12,136,12,144,12,152,12,160,12,168,12,176,12,184,12,192,12,200,12,208,12,216,12,224,12,232,12,240,12,248,12,0,13,8,13,16,13,24,13,32,13,40,13,48,13,56,13,64,13,72,13,80,13,88,13,96,13,104,13,112,13,120,13,128,13,136,13,144,13,152,13,160,13,168,13,176,13,184,13,192,13,200,13,208,13,216,13,224,13,232,13,240,13,248,13,0,14,8,14,16,14,24,14,32,14,40,14,48,14,56,14,64,14,72,14,80,14,88,14,96,14,104,14,112,14,120,14,128,14,136,14,144,14,152,14,160,14,168,14,176,14,184,14,192,14,200,14,208,14,216,14,224,14,232,14,240,14,248,14,0,15,8,15,16,15,24,15,32,15,40,15,48,15,56,15,64,15,72,15,80,15,88,15,96,15,104,15,112,15,120,15,128,15,136,15,144,15,152,15,160,15,168,15,176,15,184,15,192,15,200,15,208,15,216,15,224,15,232,15,240,15,248,15,0,16,8,16,16,16,24,16,32,16,40,16,48,16,56,16,64,16,72,16,80,16,88,16,96,16,104,16,112,16,120,16,128,16,136,16,144,16,152,16,160,16,168,16,176,16,184,16,192,16,200,16,208,16,216,16,224,16,232,16,240,16,248,16,0,17,8,17,16,17,24,17,32,17,40,17,48,17,56,17,64,17,72,17,80,17,88,17,96,17,104,17,112,17,120,17,128,17,136,17,144,17,152,17,160,17,168,17,176,17,184,17,192,17,200,17,208,17,216,17,224,17,232,17,240,17,248,17,0,18,8,18,16,18,24,18,32,18,40,18,48,18,56,18,64,18,72,18,80,18,88,18,96,18,104,18,112,18,120,18,128,18,136,18,144,18,152,18,160,18,168,18,176,18,184,18,192,18,200,18,208,18,216,18,224,18,232,18,240,18,248,18,0,19,8,19,16,19,24,19,32,19,40,19,48,19,56,19,64,19,72,19,80,19,88,19,96,19,104,19,112,19,120,19,128,19,136,19,144,19,152,19,160,19,168,19,176,19,184,19,192,19,200,19,208,19,216,19,224,19,232,19,240,19,248,19,0,20,8,20,16,20,24,20,32,20,40,20,48,20,56,20,64,20,72,20,80,20,88,20,96,20,104,20,112,20,120,20,128,20,136,20,144,20,152,20,160,20,168,20,176,20,184,20,192,20,200,20,208,20,216,20,224,20,232,20,240,20,248,20,0,21,8,21,16,21,24,21,32,21,40,21,48,21,56,21,64,21,72,21,80,21,88,21,96,21,104,21,112,21,120,21,128,21,136,21,144,21,152,21,160,21,168,21,176,21,184,21,192,21,200,21,208,21,216,21,224,21,232,21,240,21,248,21,0,22,8,22,16,22,24,22,32,22,40,22,48,22,56,22,64,22,72,22,80,22,88,22,96,22,104,22,112,22,120,22,128,22,136,22,144,22,152,22,160,22,168,22,176,22,184,22,192,22,200,22,208,22,216,22,224,22,232,22,240,22,248,22,0,23,8,23,16,23,24,23,32,23,40,23,48,23,56,23,64,23,72,23,80,23,88,23,96,23,104,23,112,23,120,23,128,23,136,23,144,23,152,23,160,23,168,23,176,23,184,23,192,23,200,23,208,23,216,23,224,23,232,23,240,23,248,23,0,24,8,24,16,24,24,24,32,24,40,24,48,24,56,24,64,24,72,24,80,24,88,24,96,24,104,24,112,24,120,24,128,24,136,24,144,24,152,24,160,24,168,24,176,24,184,24,192,24,200,24,208,24,216,24,224,24,232,24,240,24,248,24,0,25,8,25,16,25,24,25,32,25,40,25,48,25,56,25,64,25,72,25,80,25,88,25,96,25,104,25,112,25,120,25,128,25,136,25,144,25,152,25,160,25,168,25,176,25,184,25,192,25,200,25,208,25,216,25,224,25,232,25,240,25,248,25,0,26,8,26,16,26,24,26,32,26,40,26,48,26,56,26,64,26,72,26,80,26,88,26,96,26,104,26,112,26,120,26,128,26,136,26,144,26,152,26,160,26,168,26,176,26,184,26,192,26,200,26,208,26,216,26,224,26,232,26,240,26,248,26,0,27,8,27,16,27,24,27,32,27,40,27,48,27,56,27,64,27,72,27,80,27,88,27,96,27,104,27,112,27,120,27,128,27,136,27,144,27,152,27,160,27,168,27,176,27,184,27,191,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,161,0,48,0,48,0,153,0,216,48,224,48,230,48,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,27,207,27,215,27,223,27,231,27,239,27,247,27,255,27,7,28,15,28,23,28,31,28,39,28,47,28,55,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,62,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,191,8,254,8,62,9,126,9,190,9,254,9,62,10,125,10,189,10,253,10,60,11,124,11,188,11,252,11,60,12,123,12,187,12,251,12,58,13,122,13,186,13,240,13,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,48,14,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,28,75,28,83,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,91,28,99,28,105,28,112,28,48,0,118,28,123,28,128,28,48,0,48,0,48,0,48,0,135,28,143,28,149,28,156,28,162,28,169,28,176,28,182,28,190,28,198,28,205,28,211,28,218,28,226,28,228,28,236,28,244,28,250,28,253,28,5,29,48,0,48,0,13,29,20,29,28,29,31,29,37,29,48,0,48,0,45,29,48,0,50,29,57,29,65,29,73,29,77,29,84,29,89,29,95,29,48,0,48,0,48,0,48,0,101,29,105,29,48,0,110,29,48,0,48,0,48,0,48,0,117,29,48,0,121,29,48,0,48,0,126,29,48,0,132,29,140,29,143,29,149,29,48,0,48,0,48,0,156,29,160,29,48,0,165,29,170,29,176,29,179,29,187,29,48,0,192,29,48,0,48,0,48,0,197,29,205,29,213,29,221,29,229,29,237,29,245,29,252,29,4,30,12,30,19,30,27,30,35,30,41,30,48,30,53,30,61,30,69,30,75,30,48,0,82,30,48,0,90,30,95,30,102,30,110,30,116,30,124,30,131,30,139,30,146,30,153,30,158,30,163,30,171,30,179,30,183,30,48,0,191,30,199,30,206,30,214,30,222,30,229,30,48,0,235,30,243,30,48,0,251,30,48,0,253,30,48,0,48,0,4,31,12,31,16,31,48,0,24,31,48,0,32,31,40,31,43,31,48,0,50,31,56,31,48,0,64,31,69,31,77,31,84,31,92,31,48,0,98,31,104,31,48,0,110,31,48,0,48,0,48,0,118,31,126,31,48,0,48,0,48,0,132,31,139,31,48,0,147,31,151,31,156,31,164,31,172,31,180,31,187,31,195,31,201,31,48,0,207,31,215,31,223,31,48,0,231,31,239,31,247,31,255,31,7,32,15,32,22,32,30,32,38,32,45,32,52,32,60,32,48,0,66,32,73,32,48,0,78,32,85,32,93,32,48,0,48,0,48,0,48,0,48,0,48,0,100,32,48,0,48,0,48,0,108,32,48,0,48,0,114,32,48,0,118,32,48,0,126,32,48,0,48,0,48,0,48,0,133,32,48,0,141,32,146,32,153,32,159,32,166,32,174,32,48,0,48,0,182,32,189,32,195,32,48,0,201,32,48,0,48,0,207,32,210,32,218,32,48,0,224,32,48,0,48,0,231,32,234,32,242,32,48,0,249,32,251,32,48,0,3,33,6,33,13,33,48,0,21,33,29,33,48,0,35,33,48,0,48,0,38,33,48,0,48,0,48,0,48,0,48,0,46,33,48,0,48,0,48,0,48,33,56,33,62,33,48,0,48,0,48,0,69,33,75,33,80,33,88,33,93,33,97,33,104,33,109,33,48,0,115,33,120,33,48,0,48,0,128,33,136,33,48,0,142,33,149,33,48,0,48,0,156,33,162,33,170,33,48,0,173,33,181,33,187,33,193,33,48,0,201,33,48,0,202,33,210,33,48,0,215,33,223,33,226,33,48,0,233,33,240,33,247,33,255,33,48,0,48,0,48,0,48,0,48,0,48,0,6,34,48,0,48,0,11,34,18,34,23,34,31,34,39,34,45,34,48,0,48,0,51,34,48,0,48,0,58,34,65,34,73,34,79,34,87,34,95,34,48,0,102,34,48,0,109,34,116,34,121,34,129,34,48,0,135,34,140,34,144,34,152,34,154,34,161,34,165,34,48,0,170,34,48,0,48,0,48,0,174,34,48,0,48,0,180,34,188,34,48,0,192,34,199,34,206,34,214,34,218,34,226,34,48,0,234,34,235,34,48,0,243,34,251,34,2,35,8,35,14,35,21,35,28,35,34,35,42,35,50,35,56,35,60,35,68,35,76,35,48,0,48,0,48,0,48,0,84,35,90,35,98,35,106,35,107,35,115,35,120,35,48,0,48,0,48,0,127,35,129,35,136,35,141,35,148,35,151,35,159,35,166,35,170,35,178,35,185,35,193,35,201,35,207,35,215,35,222,35,230,35,238,35,246,35,48,0,254,35,6,36,14,36,22,36,48,0,28,36,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,36,36,48,0,48,0,48,0,48,0,48,0,48,0,43,36,45,36,52,36,59,36,48,0,66,36,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,74,36,76,36,83,36,90,36,93,36,48,0,48,0,101,36,108,36,116,36,120,36,48,0,128,36,135,36,140,36,48,0,48,0,147,36,150,36,158,36,164,36,48,0,172,36,180,36,188,36,196,36,200,36,208,36,214,36,219,36,224,36,232,36,48,0,239,36,48,0,245,36,253,36,4,37,11,37,19,37,27,37,48,0,35,37,41,37,49,37,57,37,48,0,64,37,71,37,78,37,85,37,93,37,98,37,105,37,112,37,118,37,126,37,131,37,139,37,147,37,153,37,160,37,163,37,169,37,176,37,183,37,186,37,194,37,48,0,201,37,209,37,48,0,211,37,48,0,48,0,218,37,48,0,221,37,228,37,48,0,235,37,241,37,48,0,247,37,48,0,254,37,5,38,48,0,48,0,10,38,48,0,48,0,18,38,22,38,30,38,48,0,48,0,38,38,48,0,48,0,44,38,52,38,59,38,67,38,75,38,83,38,90,38,97,38,105,38,112,38,120,38,128,38,136,38,143,38,150,38,158,38,166,38,171,38,48,0,48,0,176,38,48,0,48,0,48,0,180,38,186,38,48,0,48,0,48,0,189,38,48,0,197,38,48,0,204,38,48,0,48,0,48,0,48,0,209,38,48,0,216,38,48,0,219,38,226,38,48,0,48,0,233,38,48,0,48,0,238,38,48,0,242,38,48,0,250,38,1,39,9,39,48,0,14,39,18,39,48,0,23,39,48,0,48,0,48,0,48,0,31,39,37,39,40,39,48,0,48,0,48,39,56,39,48,0,64,39,68,39,48,0,73,39,48,0,80,39,48,0,87,39,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,39,99,39,106,39,111,39,115,39,48,0,48,0,48,0,48,0,122,39,130,39,138,39,146,39,150,39,157,39,165,39,172,39,175,39,181,39,48,0,189,39,48,0,48,0,197,39,204,39,212,39,48,0,220,39,48,0,48,0,227,39,235,39,48,0,48,0,238,39,246,39,48,0,48,0,252,39,4,40,12,40,48,0,19,40,48,0,48,0,25,40,30,40,48,0,48,0,48,0,34,40,48,0,40,40,48,40,48,0,54,40,48,0,48,0,48,0,57,40,63,40,67,40,74,40,81,40,89,40,97,40,103,40,110,40,114,40,121,40,129,40,130,40,48,0,138,40,146,40,48,0,148,40,155,40,48,0,48,0,162,40,48,0,168,40,48,0,176,40,183,40,191,40,48,0,198,40,48,0,205,40,48,0,48,0,48,0,48,0,213,40,48,0,221,40,227,40,234,40,242,40,249,40,48,0,48,0,1,41,9,41,11,41,48,0,48,0,19,41,24,41,48,0,48,0,48,0,32,41,40,41,48,0,48,0,44,41,48,0,48,0,49,41,55,41,48,0,48,0,60,41,48,0,68,41,76,41,48,0,82,41,88,41,95,41,48,0,48,0,48,0,102,41,48,0,48,0,107,41,48,0,115,41,48,0,48,0,123,41,130,41,48,0,48,0,48,0,135,41,141,41,148,41,156,41,48,0,164,41,48,0,166,41,173,41,179,41,48,0,183,41,48,0,191,41,199,41,205,41,48,0,212,41,48,0,217,41,224,41,231,41,48,0,48,0,237,41,48,0,243,41,48,0,250,41,2,42,48,0,48,0,48,0,48,0,48,0,9,42,17,42,21,42,28,42,36,42,44,42,52,42,55,42,48,0,63,42,71,42,73,42,81,42,88,42,96,42,48,0,48,0,104,42,108,42,113,42,48,0,121,42,125,42,133,42,141,42,48,0,149,42,154,42,161,42,48,0,168,42,48,0,48,0,175,42,48,0,179,42,185,42,193,42,201,42,48,0,209,42,48,0,215,42,48,0,221,42,226,42,231,42,236,42,243,42,250,42,48,0,1,43,48,0,48,0,7,43,48,0,11,43,48,0,48,0,18,43,26,43,30,43,48,0,37,43,48,0,48,0,41,43,48,0,46,43,48,0,48,0,53,43,48,0,61,43,65,43,48,0,72,43,48,0,48,0,48,0,48,0,48,0,48,0,75,43,48,0,83,43,48,0,91,43,99,43,103,43,110,43,48,0,116,43,48,0,48,0,48,0,122,43,126,43,134,43,48,0,142,43,48,0,147,43,48,0,48,0,151,43,158,43,163,43,171,43,177,43,48,0,48,0,184,43,48,0,191,43,48,0,199,43,200,43,208,43,216,43,220,43,228,43,235,43,242,43,244,43,48,0,252,43,3,44,10,44,17,44,24,44,48,0,48,0,48,0,29,44,35,44,48,0,48,0,40,44,48,0,44,44,51,44,48,0,48,0,56,44,60,44,67,44,74,44,81,44,89,44,48,0,48,0,48,0,97,44,48,0,48,0,48,0,48,0,48,0,48,0,102,44,48,0,48,0,48,0,48,0,48,0,106,44,114,44,122,44,128,44,48,0,136,44,141,44,48,0,149,44,48,0,155,44,160,44,168,44,174,44,179,44,48,0,48,0,187,44,48,0,194,44,200,44,208,44,48,0,215,44,223,44,230,44,237,44,48,0,244,44,252,44,48,0,48,0,48,0,0,45,48,0,48,0,6,45,14,45,48,0,48,0,48,0,22,45,23,45,48,0,31,45,48,0,48,0,48,0,37,45,45,45,52,45,48,0,48,0,48,0,59,45,67,45,74,45,79,45,48,0,48,0,48,0,48,0,48,0,48,0,48,0,86,45,92,45,48,0,48,0,48,0,48,0,48,0,48,0,97,45,101,45,107,45,114,45,122,45,128,45,136,45,144,45,152,45,159,45,166,45,48,0,174,45,48,0,182,45,190,45,198,45,206,45,213,45,221,45,226,45,234,45,242,45,249,45,1,46,9,46,48,0,48,0,48,0,48,0,16,46,48,0,48,0,21,46,48,0,48,0,27,46,34,46,48,0,48,0,41,46,45,46,48,0,52,46,55,46,61,46,66,46,73,46,48,0,48,0,48,0,48,0,48,0,48,0,80,46,48,0,48,0,48,0,82,46,89,46,94,46,102,46,109,46,114,46,119,46,127,46,135,46,140,46,148,46,151,46,157,46,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,160,46,168,46,176,46,48,0,48,0,48,0,180,46,187,46,48,0,48,0,48,0,48,0,189,46,197,46,204,46,210,46,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,46,48,0,48,0,48,0,48,0,223,46,48,0,229,46,48,0,234,46,48,0,48,0,241,46,245,46,251,46,3,47,8,47,15,47,23,47,26,47,48,0,34,47,48,0,48,0,40,47,45,47,48,0,48,0,48,0,48,0,48,0,52,47,48,0,48,0,48,0,48,0,48,0,56,47,48,0,48,0,48,0,48,0,62,47,48,0,67,47,48,0,48,0,48,0,71,47,79,47,86,47,94,47,48,0,48,0,101,47,108,47,113,47,48,0,119,47,48,0,124,47,132,47,134,47,48,0,142,47,48,0,48,0,48,0,147,47,153,47,48,0,161,47,48,0,48,0,48,0,168,47,170,47,48,0,178,47,186,47,194,47,200,47,48,0,205,47,211,47,217,47,225,47,48,0,233,47,48,0,48,0,238,47,246,47,254,47,6,48,48,0,48,0,14,48,48,0,48,0,20,48,48,0,48,0,48,0,23,48,29,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,36,48,48,0,44,48,48,48,54,48,48,0,48,0,61,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,64,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,72,48,80,48,88,48,96,48,104,48,112,48,120,48,128,48,136,48,144,48,152,48,160,48,168,48,176,48,184,48,192,48,200,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,41,0,202,65,39,0,202,130,39,0,202,195,39,0,202,4,40,0,202,69,40,0,202,134,40,0,202,199,40,0,202,8,41,0,202,73,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,66,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,162,66,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,66,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,157,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,136,192,0,0,0,5,5,22,157,5,5,27,157,5,5,31,157,192,0,0,0,5,5,39,157,192,0,0,0,5,5,116,157,5,5,117,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,158,5,5,69,158,192,0,0,0,6,5,120,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,158,192,0,0,0,5,5,98,158,192,0,0,0,192,0,0,0,5,5,163,159,192,0,0,0,5,5,174,159,192,0,0,0,5,5,165,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,158,192,0,0,0,5,5,151,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,165,192,0,0,0,5,5,153,157,5,5,119,158,192,0,0,0,5,5,48,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,157,5,5,111,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,251,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,0,128,6,5,0,129,6,5,0,130,6,5,0,131,7,5,0,134,6,5,0,143,9,5,15,157,6,5,16,157,7,5,17,157,6,5,19,157,6,5,20,157,7,5,21,157,6,5,23,157,6,5,24,157,6,5,25,157,6,5,26,157,6,5,28,157,6,5,29,157,6,5,33,157,6,5,34,157,6,5,35,157,6,5,36,157,6,5,37,157,8,5,38,157,6,5,40,157,6,5,41,157,6,5,42,157,6,5,43,157,6,5,45,157,6,5,100,157,6,5,101,157,7,5,102,157,6,5,103,157,6,5,104,157,6,5,105,157,6,5,106,157,6,5,107,157,7,5,109,157,6,5,110,157,6,5,114,157,6,5,115,157,6,5,118,157,6,5,119,157,6,5,122,157,6,5,123,157,6,5,124,157,6,5,125,157,6,5,127,157,6,5,128,157,6,5,131,157,6,5,132,157,6,5,134,157,6,5,135,157,6,5,136,157,6,5,137,157,6,5,138,157,6,5,139,157,6,5,140,157,6,5,143,157,6,5,144,157,6,5,48,158,6,5,50,158,6,5,51,158,7,5,54,158,6,5,57,158,6,5,58,158,7,5,60,158,6,5,61,158,6,5,62,158,6,5,63,158,6,5,64,158,7,5,67,158,6,5,68,158,8,5,70,158,7,5,71,158,6,5,74,158,6,5,75,158,6,5,77,158,6,5,78,158,6,5,79,158,6,5,81,158,6,5,82,158,6,5,83,158,6,5,84,158,7,5,85,158,7,5,86,158,6,5,88,158,6,5,91,158,6,5,92,158,6,5,94,158,6,5,95,158,6,5,96,158,6,5,99,158,6,5,101,158,6,5,144,159,6,5,145,159,6,5,149,159,6,5,150,159,6,5,151,159,7,5,152,159,6,5,153,159,6,5,155,159,6,5,161,159,6,5,164,159,6,5,165,159,6,5,166,159,6,5,167,159,6,5,168,159,6,5,169,159,6,5,170,159,6,5,171,159,6,5,172,159,6,5,173,159,6,5,175,159,6,5,176,159,6,5,177,159,6,5,178,159,6,5,168,161,6,5,169,161,6,5,170,161,6,5,183,161,6,5,184,161,6,5,185,161,6,5,189,161,6,5,190,161,6,5,192,161,6,5,193,161,6,5,194,161,6,5,195,161,6,5,196,161,6,5,201,161,6,5,202,161,6,5,203,161,6,5,204,161,6,5,206,161,6,5,207,161,6,5,208,161,6,5,209,161,6,5,210,161,6,5,211,161,6,5,221,161,6,5,222,161,6,5,223,161,6,5,224,161,6,5,225,161,6,5,226,161,6,5,122,165,6,5,124,165,6,5,127,165,6,5,147,165,6,5,148,165,6,5,149,165,6,5,150,165,6,5,151,165,6,5,154,165,7,5,155,165,6,5,156,165,6,5,158,165,6,5,159,165,6,5,163,165,6,5,164,165,6,5,165,165,6,5,182,165,6,5,199,165,6,5,200,165,6,5,201,165,7,5,70,171,6,5,83,171,6,5,85,171,6,5,88,171,6,5,109,171,6,5,110,171,6,5,112,171,6,5,113,171,6,5,115,171,6,5,192,177,6,5,193,177,6,5,194,177,6,5,196,177,6,5,197,177,6,5,198,177,6,5,203,177,6,5,207,177,6,5,208,177,6,5,219,177,6,5,221,177,6,5,50,185,6,5,57,185,6,5,58,185,6,5,59,185,6,5,60,185,6,5,61,185,6,5,62,185,6,5,63,185,6,5,89,193,6,5,91,193,6,5,101,193,6,5,102,193,6,5,103,193,6,5,105,193,6,5,231,201,6,5,233,201,6,5,234,201,6,5,235,201,6,5,201,209,6,5,203,209,6,5,204,209,6,5,206,209,6,5,244,216,6,5,245,216,6,5,41,224,6,5,51,230,6,5,52,230,6,5,32,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,157,5,5,0,146,5,5,0,147,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,148,5,5,50,157,5,5,160,157,5,5,51,157,5,5,0,149,5,5,52,157,5,5,161,157,5,5,124,158,5,5,125,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,38,157,6,5,61,157,6,5,251,157,5,5,0,150,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,5,0,128,8,5,15,157,8,5,56,157,7,5,25,159,7,5,57,157,8,5,170,157,7,5,58,157,6,5,157,159,6,5,0,134,6,5,132,158,6,5,0,152,7,5,22,158,6,5,169,160,6,5,17,157,198,131,31,0,198,227,31,0,198,67,32,0,198,163,32,0,198,3,33,0,198,99,33,0,198,195,33,0,198,35,34,0,198,131,34,0,198,227,34,0,198,67,35,0,198,163,35,0,198,3,36,0,198,99,36,0,197,227,35,0,198,195,36,0,198,35,37,0,198,131,37,0,198,227,37,0,197,67,36,0,198,67,38,0,198,163,38,0,197,163,36,0,197,3,37,0,198,3,39,0,198,99,39,0,198,195,39,0,198,35,40,0,197,99,37,0,198,131,40,0,197,195,37,0,198,227,40,0,197,35,38,0,198,67,41,0,197,131,38,0,197,227,38,0,6,5,246,185,6,5,77,159,6,5,60,158,6,5,171,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,0,128,7,5,15,157,7,5,56,157,6,5,25,159,6,5,187,157,6,5,217,157,6,5,0,154,6,5,21,157,6,5,12,157,6,5,38,157,7,5,70,158,6,5,86,158,6,5,85,158,6,5,71,158,6,5,70,171,6,5,102,157,6,5,67,158,6,5,189,180,7,5,77,161,6,5,62,170,6,5,140,160,6,5,197,181,6,5,114,184,6,5,161,182,6,5,158,162,6,5,170,182,6,5,22,165,6,5,109,157,6,5,186,222,6,5,65,230,6,5,116,160,6,5,138,169,6,5,178,201,6,5,23,160,6,5,193,158,6,5,118,159,6,5,57,157,7,5,170,157,6,5,58,157,7,5,67,159,7,5,7,159,6,5,165,162,6,5,157,167,6,5,149,167,6,5,48,213,6,5,7,160,6,5,42,208,6,5,164,166,6,5,71,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,39,0,197,130,39,0,197,194,39,0,197,2,40,0,197,66,40,0,197,130,40,0,197,194,40,0,197,2,41,0,197,66,41,0,197,131,41,0,197,227,41,0,197,67,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,34,45,0,197,99,45,0,197,195,45,0,197,35,46,0,197,131,46,0,197,227,46,0,197,67,47,0,197,163,47,0,197,3,48,0,197,99,48,0,197,195,48,0,197,35,49,0,197,131,49,0,197,227,49,0,197,67,50,0,197,163,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,51,0,197,66,51,0,197,130,51,0,197,194,51,0,197,4,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,197,130,53,0,197,194,53,0,197,2,54,0,197,66,54,0,197,130,54,0,197,195,54,0,197,35,55,0,197,131,55,0,197,227,55,0,197,67,56,0,197,163,56,0,197,3,57,0,197,99,57,0,197,195,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,197,227,61,0,197,67,62,0,197,163,62,0,192,0,0,0,5,5,137,158,5,5,219,159,192,0,0,0,192,0,0,0,5,5,64,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,171,192,0,0,0,5,5,83,185,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,159,192,0,0,0,5,5,17,166,192,0,0,0,192,0,0,0,5,5,174,158,5,5,175,158,5,5,176,158,5,5,177,158,5,5,178,158,5,5,179,158,5,5,180,158,5,5,181,158,5,5,52,160,5,5,53,160,192,0,0,0,5,5,54,160,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,160,5,5,56,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,162,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,166,192,0,0,0,5,5,90,166,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,185,5,5,72,178,5,5,73,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,193,192,0,0,0,192,0,0,0,5,5,26,202,5,5,27,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,217,192,0,0,0,192,0,0,0,5,5,22,217,192,0,0,0,5,5,23,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,238,192,0,0,0,5,5,27,242,192,0,0,0,5,5,153,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,235,5,5,186,158,192,0,0,0,192,0,0,0,5,5,115,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,166,192,0,0,0,5,5,139,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,210,192,0,0,0,5,5,17,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,185,192,0,0,0,5,5,24,210,192,0,0,0,192,0,0,0,5,5,78,230,5,5,79,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,157,192,0,0,0,5,5,188,185,192,0,0,0,192,0,0,0,5,5,164,162,5,5,192,185,5,5,56,202,5,5,57,202,5,5,58,202,5,5,28,210,5,5,220,249,5,5,166,162,5,5,188,193,5,5,255,157,192,0,0,0,5,5,115,160,192,0,0,0,192,0,0,0,5,5,98,157,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,210,192,0,0,0,5,5,82,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,210,5,5,133,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,162,192,0,0,0,192,0,0,0,5,5,249,162,192,0,0,0,5,5,250,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,166,5,5,253,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,178,5,5,225,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,186,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,194,192,0,0,0,5,5,13,194,192,0,0,0,192,0,0,0,5,5,14,194,5,5,15,194,192,0,0,0,5,5,16,194,192,0,0,0,192,0,0,0,5,5,17,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,202,192,0,0,0,5,5,123,202,192,0,0,0,192,0,0,0,5,5,124,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,217,5,5,108,217,5,5,109,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,224,192,0,0,0,192,0,0,0,5,5,110,224,192,0,0,0,5,5,111,224,5,5,112,224,5,5,113,224,5,5,114,224,5,5,115,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,246,192,0,0,0,5,5,183,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,167,192,0,0,0,5,5,114,172,5,5,243,178,192,0,0,0,5,5,40,242,5,5,34,159,192,0,0,0,192,0,0,0,5,5,58,163,192,0,0,0,5,5,59,163,192,0,0,0,5,5,60,163,5,5,61,163,192,0,0,0,5,5,62,163,5,5,61,167,5,5,62,167,5,5,63,167,5,5,64,167,5,5,65,167,5,5,160,172,5,5,161,172,5,5,162,172,5,5,163,172,192,0,0,0,5,5,164,172,192,0,0,0,192,0,0,0,5,5,165,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,186,5,5,121,186,5,5,122,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,202,192,0,0,0,5,5,149,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,210,5,5,151,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,163,192,0,0,0,5,5,112,163,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,167,5,5,129,167,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,167,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,167,192,0,0,0,192,0,0,0,5,5,132,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,167,192,0,0,0,5,5,232,172,5,5,233,172,5,5,234,172,192,0,0,0,5,5,235,172,5,5,236,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,179,192,0,0,0,192,0,0,0,5,5,87,179,192,0,0,0,5,5,88,179,5,5,89,179,192,0,0,0,5,5,90,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,179,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,179,5,5,93,179,192,0,0,0,192,0,0,0,5,5,206,186,5,5,207,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,194,5,5,155,194,192,0,0,0,5,5,156,194,5,5,157,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,202,192,0,0,0,5,5,238,202,192,0,0,0,192,0,0,0,5,5,239,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,210,192,0,0,0,5,5,199,210,192,0,0,0,5,5,200,210,192,0,0,0,5,5,201,210,5,5,187,217,192,0,0,0,5,5,188,217,5,5,189,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,224,5,5,169,224,5,5,170,224,192,0,0,0,192,0,0,0,5,5,84,235,5,5,85,235,5,5,2,239,5,5,3,239,5,5,4,239,5,5,5,239,5,5,52,242,5,5,53,242,5,5,54,242,5,5,181,244,5,5,110,246,5,5,222,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,167,192,0,0,0,192,0,0,0,5,5,101,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,203,192,0,0,0,192,0,0,0,5,5,255,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,211,5,5,3,211,192,0,0,0,192,0,0,0,5,5,4,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,239,192,0,0,0,5,5,18,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,179,192,0,0,0,5,5,253,194,192,0,0,0,192,0,0,0,5,5,225,167,5,5,38,187,5,5,74,159,5,5,75,159,5,5,3,161,5,5,4,161,5,5,5,161,5,5,184,163,5,5,185,163,5,5,186,163,192,0,0,0,5,5,187,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,217,5,5,203,224,5,5,204,224,5,5,205,224,5,5,176,230,5,5,177,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,211,192,0,0,0,192,0,0,0,5,5,87,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,179,192,0,0,0,5,5,165,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,173,5,5,167,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,179,192,0,0,0,5,5,168,173,192,0,0,0,192,0,0,0,5,5,106,187,5,5,14,180,5,5,107,187,5,5,15,180,5,5,16,180,5,5,108,187,5,5,17,180,5,5,18,180,5,5,19,180,5,5,20,180,192,0,0,0,5,5,109,187,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,195,5,5,105,195,5,5,87,203,5,5,88,203,5,5,106,195,5,5,89,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,218,5,5,75,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,225,192,0,0,0,5,5,103,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,235,192,0,0,0,192,0,0,0,5,5,76,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,164,192,0,0,0,192,0,0,0,5,5,159,168,5,5,160,168,192,0,0,0,192,0,0,0,5,5,176,173,5,5,161,168,5,5,162,168,192,0,0,0,5,5,163,168,5,5,164,168,5,5,165,168,5,5,166,168,192,0,0,0,5,5,231,173,5,5,232,173,192,0,0,0,192,0,0,0,5,5,233,173,5,5,234,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,180,192,0,0,0,192,0,0,0,5,5,253,187,192,0,0,0,192,0,0,0,5,5,254,187,192,0,0,0,5,5,255,187,5,5,2,188,5,5,3,188,5,5,4,188,5,5,5,188,192,0,0,0,5,5,6,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,195,5,5,189,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,203,192,0,0,0,192,0,0,0,5,5,200,203,192,0,0,0,192,0,0,0,5,5,201,203,192,0,0,0,192,0,0,0,5,5,202,203,5,5,203,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,211,192,0,0,0,5,5,150,211,5,5,151,211,5,5,152,211,5,5,153,211,5,5,154,211,5,5,155,211,5,5,156,211,5,5,157,211,5,5,158,211,192,0,0,0,192,0,0,0,5,5,91,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,225,192,0,0,0,5,5,44,225,192,0,0,0,192,0,0,0,5,5,45,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,230,192,0,0,0,5,5,228,230,192,0,0,0,192,0,0,0,5,5,137,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,235,5,5,139,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,168,192,0,0,0,5,5,247,173,5,5,248,173,5,5,249,173,192,0,0,0,5,5,109,180,5,5,110,180,5,5,111,180,5,5,26,188,5,5,27,188,5,5,28,188,5,5,29,188,5,5,30,188,5,5,212,195,5,5,213,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,195,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,173,5,5,253,173,192,0,0,0,192,0,0,0,5,5,226,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,174,192,0,0,0,192,0,0,0,5,5,124,180,192,0,0,0,5,5,47,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,174,192,0,0,0,5,5,45,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,188,192,0,0,0,5,5,69,188,192,0,0,0,192,0,0,0,5,5,3,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,196,5,5,249,203,5,5,250,203,5,5,251,203,5,5,252,203,5,5,253,203,5,5,254,203,5,5,255,203,5,5,2,204,5,5,3,204,5,5,4,204,5,5,5,204,5,5,6,204,5,5,192,211,5,5,193,211,5,5,194,211,5,5,195,211,5,5,173,218,5,5,174,218,5,5,175,218,5,5,176,218,5,5,177,218,5,5,178,218,5,5,87,225,5,5,88,225,5,5,89,225,5,5,90,225,5,5,91,225,5,5,92,225,5,5,93,225,5,5,94,225,5,5,95,225,5,5,248,230,5,5,249,230,5,5,250,230,5,5,151,235,5,5,152,235,5,5,153,235,5,5,154,235,5,5,155,235,5,5,156,235,5,5,61,239,5,5,62,239,5,5,98,242,5,5,139,246,5,5,140,246,5,5,208,247,5,5,110,249,5,5,76,161,5,5,102,225,5,5,253,230,5,5,220,168,5,5,159,180,5,5,160,180,5,5,80,188,5,5,81,188,5,5,19,196,5,5,52,199,5,5,15,204,5,5,202,211,5,5,183,218,5,5,184,218,5,5,185,218,5,5,105,225,5,5,254,230,5,5,97,161,5,5,134,164,5,5,135,164,5,5,136,164,5,5,137,164,5,5,138,164,5,5,34,169,5,5,35,169,5,5,36,169,5,5,37,169,5,5,38,169,5,5,39,169,5,5,40,169,5,5,41,169,5,5,42,169,5,5,43,169,5,5,148,174,5,5,149,174,5,5,150,174,5,5,151,174,5,5,152,174,5,5,153,174,5,5,154,174,5,5,253,180,5,5,254,180,5,5,255,180,5,5,2,181,5,5,3,181,5,5,4,181,5,5,5,181,5,5,6,181,5,5,7,181,5,5,8,181,5,5,9,181,5,5,10,181,5,5,11,181,5,5,12,181,5,5,13,181,5,5,14,181,5,5,169,188,5,5,170,188,5,5,171,188,5,5,172,188,5,5,173,188,5,5,174,188,5,5,175,188,5,5,176,188,5,5,177,188,5,5,178,188,5,5,179,188,5,5,180,188,5,5,181,188,5,5,182,188,5,5,129,196,5,5,183,188,5,5,130,196,5,5,131,196,5,5,132,196,5,5,133,196,5,5,134,196,5,5,135,196,5,5,136,196,5,5,137,196,5,5,138,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,204,5,5,109,204,192,0,0,0,192,0,0,0,5,5,110,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,212,192,0,0,0,5,5,10,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,219,192,0,0,0,5,5,12,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,231,5,5,49,231,5,5,50,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,239,5,5,91,239,5,5,92,239,192,0,0,0,5,5,93,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,242,5,5,115,242,192,0,0,0,192,0,0,0,5,5,116,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,244,192,0,0,0,192,0,0,0,5,5,150,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,204,192,0,0,0,5,5,127,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,164,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,181,5,5,200,188,192,0,0,0,5,5,161,196,192,0,0,0,5,5,162,196,192,0,0,0,5,5,163,196,5,5,164,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,219,5,5,34,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,169,192,0,0,0,5,5,158,169,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,188,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,189,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,197,5,5,47,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,197,192,0,0,0,192,0,0,0,5,5,49,197,192,0,0,0,5,5,50,197,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,204,5,5,240,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,204,192,0,0,0,5,5,154,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,219,192,0,0,0,5,5,125,219,192,0,0,0,192,0,0,0,5,5,126,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,226,192,0,0,0,192,0,0,0,5,5,11,226,192,0,0,0,192,0,0,0,5,5,12,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,226,5,5,14,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,231,192,0,0,0,5,5,108,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,239,192,0,0,0,192,0,0,0,5,5,129,239,192,0,0,0,5,5,130,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,242,192,0,0,0,5,5,143,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,197,5,5,103,197,192,0,0,0,5,5,104,197,192,0,0,0,192,0,0,0,5,5,105,197,5,5,106,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,212,5,5,203,212,192,0,0,0,192,0,0,0,5,5,167,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,226,5,5,66,226,192,0,0,0,192,0,0,0,5,5,67,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,226,5,5,69,226,192,0,0,0,192,0,0,0,5,5,141,231,5,5,142,231,5,5,143,231,192,0,0,0,5,5,248,235,192,0,0,0,5,5,146,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,242,192,0,0,0,192,0,0,0,5,5,238,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,181,192,0,0,0,5,5,213,212,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,189,192,0,0,0,5,5,137,189,192,0,0,0,5,5,138,189,192,0,0,0,5,5,139,189,192,0,0,0,192,0,0,0,5,5,131,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,161,5,5,159,161,5,5,160,161,192,0,0,0,192,0,0,0,5,5,14,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,181,192,0,0,0,192,0,0,0,5,5,255,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,182,192,0,0,0,192,0,0,0,5,5,201,189,192,0,0,0,5,5,202,189,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,189,5,5,199,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,197,5,5,94,205,192,0,0,0,192,0,0,0,5,5,201,197,5,5,202,197,192,0,0,0,192,0,0,0,5,5,131,205,192,0,0,0,192,0,0,0,5,5,132,205,5,5,133,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,212,192,0,0,0,5,5,254,212,192,0,0,0,5,5,226,219,5,5,227,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,219,192,0,0,0,192,0,0,0,5,5,229,219,5,5,230,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,231,192,0,0,0,5,5,109,226,192,0,0,0,192,0,0,0,5,5,175,231,5,5,176,231,5,5,177,231,192,0,0,0,192,0,0,0,5,5,170,239,192,0,0,0,5,5,171,239,5,5,175,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,219,192,0,0,0,5,5,27,165,192,0,0,0,192,0,0,0,5,5,167,175,5,5,168,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,236,5,5,186,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,182,5,5,2,190,5,5,3,190,5,5,24,198,5,5,203,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,226,192,0,0,0,192,0,0,0,5,5,180,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,231,192,0,0,0,5,5,236,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,246,192,0,0,0,5,5,218,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,176,192,0,0,0,5,5,166,182,5,5,167,182,5,5,71,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,176,5,5,35,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,190,192,0,0,0,5,5,92,190,192,0,0,0,5,5,93,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,220,192,0,0,0,5,5,104,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,226,192,0,0,0,192,0,0,0,5,5,30,232,192,0,0,0,5,5,90,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,250,192,0,0,0,5,5,79,170,192,0,0,0,192,0,0,0,5,5,45,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,182,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,198,5,5,151,198,5,5,152,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,206,5,5,119,206,192,0,0,0,5,5,120,206,5,5,121,206,5,5,122,206,5,5,123,206,5,5,124,206,5,5,125,206,5,5,200,213,5,5,201,213,5,5,202,213,5,5,203,213,5,5,204,213,5,5,205,213,5,5,206,213,5,5,207,213,5,5,208,213,5,5,209,213,5,5,210,213,5,5,211,213,5,5,212,213,5,5,151,220,5,5,152,220,5,5,153,220,5,5,154,220,5,5,155,220,5,5,156,220,5,5,157,220,5,5,158,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,220,192,0,0,0,5,5,160,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,220,192,0,0,0,5,5,162,220,5,5,163,220,192,0,0,0,192,0,0,0,5,5,164,220,192,0,0,0,192,0,0,0,5,5,165,220,5,5,23,227,5,5,24,227,192,0,0,0,5,5,25,227,5,5,26,227,192,0,0,0,5,5,27,227,5,5,28,227,5,5,29,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,232,5,5,81,232,5,5,82,232,5,5,83,232,5,5,84,232,5,5,85,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,236,5,5,243,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,247,192,0,0,0,5,5,224,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,170,5,5,88,176,5,5,89,176,192,0,0,0,5,5,90,176,192,0,0,0,192,0,0,0,5,5,26,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,214,5,5,35,214,192,0,0,0,192,0,0,0,5,5,36,214,5,5,37,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,214,192,0,0,0,192,0,0,0,5,5,237,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,220,5,5,239,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,220,5,5,241,220,192,0,0,0,192,0,0,0,5,5,242,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,198,192,0,0,0,192,0,0,0,5,5,247,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,176,5,5,39,183,5,5,223,190,5,5,224,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,198,5,5,249,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,236,192,0,0,0,192,0,0,0,5,5,46,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,183,192,0,0,0,192,0,0,0,5,5,46,191,192,0,0,0,5,5,47,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,199,5,5,54,199,5,5,55,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,214,5,5,103,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,221,5,5,48,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,236,5,5,193,236,5,5,194,236,5,5,39,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,236,192,0,0,0,5,5,212,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,183,5,5,152,183,192,0,0,0,5,5,153,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,199,192,0,0,0,192,0,0,0,5,5,85,199,192,0,0,0,192,0,0,0,5,5,18,207,192,0,0,0,5,5,19,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,214,5,5,122,214,5,5,123,214,192,0,0,0,5,5,124,214,192,0,0,0,192,0,0,0,5,5,125,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,214,5,5,127,214,5,5,128,214,5,5,129,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,227,192,0,0,0,192,0,0,0,5,5,141,227,5,5,142,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,227,192,0,0,0,5,5,144,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,232,192,0,0,0,5,5,198,232,192,0,0,0,192,0,0,0,5,5,199,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,232,5,5,201,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,236,192,0,0,0,192,0,0,0,5,5,204,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,236,192,0,0,0,5,5,206,236,192,0,0,0,5,5,207,236,5,5,208,236,192,0,0,0,192,0,0,0,5,5,209,236,5,5,210,236,5,5,51,240,5,5,52,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,240,5,5,11,243,192,0,0,0,5,5,12,243,5,5,13,243,192,0,0,0,5,5,14,243,5,5,15,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,245,5,5,52,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,246,192,0,0,0,192,0,0,0,5,5,220,246,192,0,0,0,192,0,0,0,5,5,221,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,248,5,5,231,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,199,192,0,0,0,5,5,246,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,228,192,0,0,0,192,0,0,0,5,5,5,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,233,5,5,54,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,243,5,5,65,243,5,5,91,245,5,5,92,245,192,0,0,0,192,0,0,0,5,5,238,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,184,192,0,0,0,5,5,10,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,221,5,5,246,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,192,5,5,35,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,200,5,5,88,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,222,192,0,0,0,5,5,54,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,249,192,0,0,0,5,5,67,192,5,5,68,192,5,5,103,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,228,5,5,93,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,184,192,0,0,0,192,0,0,0,5,5,96,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,200,192,0,0,0,5,5,155,200,192,0,0,0,192,0,0,0,5,5,67,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,222,5,5,140,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,192,5,5,128,192,5,5,129,192,5,5,130,192,5,5,131,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,228,5,5,188,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,201,192,0,0,0,5,5,73,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,216,5,5,39,216,5,5,40,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,216,192,0,0,0,192,0,0,0,5,5,37,223,192,0,0,0,5,5,38,223,5,5,39,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,234,192,0,0,0,5,5,216,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,237,5,5,218,237,192,0,0,0,5,5,219,237,192,0,0,0,5,5,40,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,241,192,0,0,0,5,5,42,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,247,192,0,0,0,192,0,0,0,5,5,45,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,223,192,0,0,0,5,5,70,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,227,5,5,68,234,5,5,69,234,5,5,255,237,5,5,63,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,234,192,0,0,0,5,5,7,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,234,5,5,221,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,216,5,5,138,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,238,192,0,0,0,5,5,53,238,5,5,54,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,216,5,5,135,234,192,0,0,0,5,5,136,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,216,192,0,0,0,192,0,0,0,5,5,182,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,234,192,0,0,0,5,5,154,234,192,0,0,0,192,0,0,0,5,5,84,238,192,0,0,0,192,0,0,0,5,5,85,238,5,5,86,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,249,5,5,9,250,192,0,0,0,5,5,109,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,238,5,5,100,238,192,0,0,0,192,0,0,0,5,5,152,241,192,0,0,0,192,0,0,0,5,5,153,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,223,192,0,0,0,192,0,0,0,5,5,227,223,192,0,0,0,5,5,226,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,229,192,0,0,0,5,5,228,229,192,0,0,0,5,5,199,234,5,5,200,234,5,5,201,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,246,192,0,0,0,5,5,18,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,246,5,5,149,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,224,192,0,0,0,5,5,12,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,241,5,5,247,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,249,192,0,0,0,5,5,84,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,230,192,0,0,0,5,5,192,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,242,5,5,124,244,5,5,66,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,238,5,5,14,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,128,5,5,0,152,5,5,0,153,5,5,0,154,5,5,0,155,5,5,0,156,5,5,2,157,5,5,54,157,5,5,55,157,5,5,56,157,5,5,57,157,5,5,58,157,5,5,59,157,5,5,163,157,5,5,164,157,5,5,165,157,5,5,166,157,5,5,167,157,5,5,168,157,5,5,169,157,5,5,128,158,5,5,129,158,5,5,130,158,5,5,127,158,5,5,131,158,5,5,132,158,5,5,133,158,5,5,134,158,5,5,135,158,5,5,136,158,5,5,214,159,5,5,215,159,5,5,216,159,5,5,217,159,5,5,218,159,5,5,32,162,5,5,33,162,5,5,34,162,5,5,253,165,5,5,254,165,5,5,0,129,5,5,3,157,5,5,62,157,5,5,63,157,5,5,93,158,5,5,170,157,5,5,171,157,5,5,172,157,5,5,173,157,5,5,138,158,5,5,37,162,5,5,255,165,5,5,145,171,5,5,240,177,5,5,0,130,5,5,4,157,5,5,65,157,5,5,174,157,5,5,175,157,5,5,139,158,5,5,140,158,5,5,35,162,5,5,146,171,5,5,0,131,5,5,0,132,5,5,0,133,5,5,5,157,5,5,6,157,5,5,7,157,5,5,67,157,5,5,68,157,5,5,69,157,5,5,70,157,5,5,66,157,5,5,71,157,5,5,176,157,5,5,177,157,5,5,141,158,5,5,142,158,5,5,143,158,5,5,144,158,5,5,220,159,5,5,221,159,5,5,222,159,5,5,223,159,5,5,39,162,5,5,2,166,5,5,147,171,5,5,241,177,5,5,0,134,5,5,0,135,5,5,0,137,5,5,11,157,5,5,12,157,5,5,72,157,5,5,73,157,5,5,74,157,5,5,133,157,5,5,34,158,5,5,179,157,5,5,180,157,5,5,181,157,5,5,182,157,5,5,146,158,5,5,224,159,5,5,225,159,5,5,226,159,5,5,227,159,5,5,228,159,5,5,229,159,5,5,230,159,5,5,231,159,5,5,232,159,5,5,40,162,5,5,41,162,5,5,3,166,5,5,4,166,5,5,5,166,5,5,6,166,5,5,7,166,5,5,8,166,5,5,148,171,5,5,149,171,5,5,150,171,5,5,151,171,5,5,242,177,5,5,80,185,5,5,81,185,5,5,82,185,5,5,112,193,5,5,239,201,5,5,240,201,5,5,241,201,5,5,0,143,5,5,13,157,5,5,75,157,5,5,183,157,5,5,233,159,5,5,42,162,5,5,10,166,5,5,15,157,5,5,76,157,5,5,77,157,5,5,78,157,5,5,60,157,5,5,184,157,5,5,185,157,5,5,186,157,5,5,187,157,5,5,188,157,5,5,189,157,5,5,147,158,5,5,234,159,5,5,235,159,5,5,236,159,5,5,11,166,5,5,44,162,5,5,12,166,5,5,13,166,5,5,14,166,5,5,16,157,5,5,79,157,5,5,190,157,5,5,191,157,5,5,237,159,5,5,238,159,5,5,239,159,5,5,240,159,5,5,45,162,5,5,46,162,5,5,47,162,5,5,15,166,5,5,16,166,5,5,153,171,5,5,154,171,5,5,155,171,5,5,156,171,5,5,157,171,5,5,158,171,5,5,243,177,5,5,113,193,5,5,114,193,5,5,242,201,5,5,243,201,5,5,45,224,5,5,91,246,5,5,17,157,5,5,18,157,5,5,80,157,5,5,81,157,5,5,82,157,5,5,83,157,5,5,192,157,5,5,193,157,5,5,194,157,5,5,195,157,5,5,196,157,5,5,197,157,5,5,198,157,5,5,199,157,5,5,200,157,5,5,201,157,5,5,202,157,5,5,203,157,5,5,204,157,5,5,205,157,5,5,206,157,5,5,207,157,5,5,208,157,5,5,209,157,5,5,210,157,5,5,211,157,5,5,148,158,5,5,149,158,5,5,150,158,5,5,151,158,5,5,152,158,5,5,153,158,5,5,154,158,5,5,155,158,5,5,156,158,5,5,157,158,5,5,158,158,5,5,159,158,5,5,160,158,5,5,161,158,5,5,162,158,5,5,163,158,5,5,164,158,5,5,165,158,5,5,166,158,5,5,167,158,5,5,168,158,5,5,169,158,5,5,170,158,5,5,171,158,5,5,172,158,5,5,173,158,5,5,242,159,5,5,243,159,5,5,244,159,5,5,245,159,5,5,246,159,5,5,247,159,5,5,248,159,5,5,249,159,5,5,250,159,5,5,251,159,5,5,252,159,5,5,253,159,5,5,254,159,5,5,255,159,5,5,2,160,5,5,3,160,5,5,4,160,5,5,5,160,5,5,6,160,5,5,7,160,5,5,8,160,5,5,9,160,5,5,10,160,5,5,11,160,5,5,12,160,5,5,13,160,5,5,14,160,5,5,15,160,5,5,16,160,5,5,17,160,5,5,18,160,5,5,19,160,5,5,20,160,5,5,21,160,5,5,22,160,5,5,23,160,5,5,24,160,5,5,25,160,5,5,26,160,5,5,27,160,5,5,28,160,5,5,29,160,5,5,30,160,5,5,31,160,5,5,32,160,5,5,33,160,5,5,34,160,5,5,35,160,5,5,36,160,5,5,37,160,5,5,38,160,5,5,39,160,5,5,40,160,5,5,41,160,5,5,42,160,5,5,43,160,5,5,44,160,5,5,45,160,5,5,46,160,5,5,47,160,5,5,48,160,5,5,49,160,5,5,50,160,5,5,48,162,5,5,49,162,5,5,50,162,5,5,51,162,5,5,52,162,5,5,53,162,5,5,54,162,5,5,55,162,5,5,56,162,5,5,57,162,5,5,58,162,5,5,59,162,5,5,60,162,5,5,61,162,5,5,62,162,5,5,63,162,5,5,64,162,5,5,65,162,5,5,66,162,5,5,67,162,5,5,68,162,5,5,69,162,5,5,70,162,5,5,71,162,5,5,72,162,5,5,73,162,5,5,74,162,5,5,75,162,5,5,76,162,5,5,77,162,5,5,78,162,5,5,18,166,5,5,79,162,5,5,80,162,5,5,81,162,5,5,82,162,5,5,83,162,5,5,84,162,5,5,85,162,5,5,86,162,5,5,87,162,5,5,88,162,5,5,89,162,5,5,90,162,5,5,91,162,5,5,92,162,5,5,93,162,5,5,94,162,5,5,95,162,5,5,96,162,5,5,97,162,5,5,98,162,5,5,99,162,5,5,100,162,5,5,101,162,5,5,51,160,5,5,102,162,5,5,103,162,5,5,104,162,5,5,105,162,5,5,19,166,5,5,20,166,5,5,21,166,5,5,22,166,5,5,23,166,5,5,24,166,5,5,25,166,5,5,26,166,5,5,27,166,5,5,28,166,5,5,29,166,5,5,30,166,5,5,31,166,5,5,32,166,5,5,33,166,5,5,34,166,5,5,35,166,5,5,36,166,5,5,37,166,5,5,38,166,5,5,39,166,5,5,40,166,5,5,41,166,5,5,42,166,5,5,43,166,5,5,44,166,5,5,45,166,5,5,46,166,5,5,47,166,5,5,48,166,5,5,49,166,5,5,50,166,5,5,51,166,5,5,52,166,5,5,53,166,5,5,54,166,5,5,55,166,5,5,56,166,5,5,57,166,5,5,58,166,5,5,59,166,5,5,60,166,5,5,61,166,5,5,62,166,5,5,63,166,5,5,64,166,5,5,65,166,5,5,66,166,5,5,67,166,5,5,68,166,5,5,69,166,5,5,70,166,5,5,71,166,5,5,72,166,5,5,73,166,5,5,74,166,5,5,75,166,5,5,76,166,5,5,77,166,5,5,78,166,5,5,79,166,5,5,80,166,5,5,81,166,5,5,82,166,5,5,83,166,5,5,84,166,5,5,85,166,5,5,86,166,5,5,87,166,5,5,159,171,5,5,160,171,5,5,161,171,5,5,162,171,5,5,163,171,5,5,164,171,5,5,165,171,5,5,166,171,5,5,167,171,5,5,168,171,5,5,169,171,5,5,170,171,5,5,171,171,5,5,172,171,5,5,173,171,5,5,174,171,5,5,175,171,5,5,176,171,5,5,177,171,5,5,178,171,5,5,179,171,5,5,180,171,5,5,181,171,5,5,182,171,5,5,183,171,5,5,184,171,5,5,185,171,5,5,186,171,5,5,187,171,5,5,188,171,5,5,189,171,5,5,190,171,5,5,191,171,5,5,192,171,5,5,193,171,5,5,194,171,5,5,195,171,5,5,196,171,5,5,197,171,5,5,198,171,5,5,199,171,5,5,200,171,5,5,201,171,5,5,202,171,5,5,203,171,5,5,204,171,5,5,205,171,5,5,206,171,5,5,207,171,5,5,208,171,5,5,209,171,5,5,210,171,5,5,211,171,5,5,212,171,5,5,213,171,5,5,214,171,5,5,215,171,5,5,216,171,5,5,217,171,5,5,218,171,5,5,219,171,5,5,220,171,5,5,221,171,5,5,222,171,5,5,244,177,5,5,245,177,5,5,246,177,5,5,247,177,5,5,248,177,5,5,249,177,5,5,250,177,5,5,251,177,5,5,252,177,5,5,253,177,5,5,254,177,5,5,255,177,5,5,2,178,5,5,3,178,5,5,4,178,5,5,5,178,5,5,6,178,5,5,7,178,5,5,8,178,5,5,9,178,5,5,10,178,5,5,11,178,5,5,12,178,5,5,13,178,5,5,14,178,5,5,15,178,5,5,16,178,5,5,17,178,5,5,18,178,5,5,19,178,5,5,20,178,5,5,21,178,5,5,22,178,5,5,23,178,5,5,24,178,5,5,25,178,5,5,26,178,5,5,27,178,5,5,28,178,5,5,29,178,5,5,30,178,5,5,31,178,5,5,32,178,5,5,33,178,5,5,34,178,5,5,35,178,5,5,36,178,5,5,37,178,5,5,38,178,5,5,39,178,5,5,40,178,5,5,41,178,5,5,42,178,5,5,43,178,5,5,44,178,5,5,45,178,5,5,46,178,5,5,47,178,5,5,48,178,5,5,49,178,5,5,50,178,5,5,51,178,5,5,52,178,5,5,53,178,5,5,54,178,5,5,55,178,5,5,56,178,5,5,57,178,5,5,58,178,5,5,59,178,5,5,60,178,5,5,61,178,5,5,62,178,5,5,63,178,5,5,64,178,5,5,65,178,5,5,66,178,5,5,67,178,5,5,68,178,5,5,69,178,5,5,70,178,5,5,71,178,5,5,84,185,5,5,85,185,5,5,86,185,5,5,87,185,5,5,88,185,5,5,89,185,5,5,90,185,5,5,91,185,5,5,92,185,5,5,93,185,5,5,94,185,5,5,95,185,5,5,96,185,5,5,97,185,5,5,98,185,5,5,99,185,5,5,100,185,5,5,101,185,5,5,102,185,5,5,103,185,5,5,104,185,5,5,105,185,5,5,79,178,5,5,106,185,5,5,107,185,5,5,108,185,5,5,109,185,5,5,110,185,5,5,111,185,5,5,112,185,5,5,113,185,5,5,114,185,5,5,115,185,5,5,116,185,5,5,117,185,5,5,118,185,5,5,119,185,5,5,120,185,5,5,121,185,5,5,122,185,5,5,115,193,5,5,123,185,5,5,124,185,5,5,125,185,5,5,126,185,5,5,127,185,5,5,128,185,5,5,129,185,5,5,130,185,5,5,131,185,5,5,132,185,5,5,133,185,5,5,134,185,5,5,135,185,5,5,136,185,5,5,137,185,5,5,138,185,5,5,139,185,5,5,140,185,5,5,141,185,5,5,142,185,5,5,143,185,5,5,144,185,5,5,145,185,5,5,116,193,5,5,117,193,5,5,118,193,5,5,119,193,5,5,120,193,5,5,121,193,5,5,122,193,5,5,123,193,5,5,124,193,5,5,125,193,5,5,126,193,5,5,127,193,5,5,128,193,5,5,129,193,5,5,130,193,5,5,131,193,5,5,132,193,5,5,133,193,5,5,134,193,5,5,135,193,5,5,136,193,5,5,137,193,5,5,138,193,5,5,139,193,5,5,140,193,5,5,141,193,5,5,142,193,5,5,143,193,5,5,144,193,5,5,145,193,5,5,146,193,5,5,147,193,5,5,148,193,5,5,149,193,5,5,150,193,5,5,151,193,5,5,152,193,5,5,153,193,5,5,154,193,5,5,155,193,5,5,156,193,5,5,157,193,5,5,244,201,5,5,245,201,5,5,246,201,5,5,247,201,5,5,248,201,5,5,249,201,5,5,250,201,5,5,251,201,5,5,252,201,5,5,253,201,5,5,254,201,5,5,255,201,5,5,2,202,5,5,3,202,5,5,4,202,5,5,5,202,5,5,6,202,5,5,7,202,5,5,8,202,5,5,9,202,5,5,10,202,5,5,11,202,5,5,12,202,5,5,13,202,5,5,14,202,5,5,15,202,5,5,16,202,5,5,17,202,5,5,18,202,5,5,19,202,5,5,20,202,5,5,21,202,5,5,22,202,5,5,23,202,5,5,24,202,5,5,25,202,5,5,214,209,5,5,215,209,5,5,216,209,5,5,217,209,5,5,218,209,5,5,219,209,5,5,220,209,5,5,221,209,5,5,222,209,5,5,223,209,5,5,224,209,5,5,225,209,5,5,226,209,5,5,227,209,5,5,228,209,5,5,229,209,5,5,230,209,5,5,231,209,5,5,232,209,5,5,233,209,5,5,234,209,5,5,235,209,5,5,236,209,5,5,237,209,5,5,238,209,5,5,239,209,5,5,240,209,5,5,241,209,5,5,242,209,5,5,243,209,5,5,244,209,5,5,245,209,5,5,246,209,5,5,247,209,5,5,248,209,5,5,249,209,5,5,4,210,5,5,250,209,5,5,251,209,5,5,249,216,5,5,250,216,5,5,252,209,5,5,251,216,5,5,252,216,5,5,253,216,5,5,254,216,5,5,255,216,5,5,2,217,5,5,3,217,5,5,4,217,5,5,5,217,5,5,6,217,5,5,7,217,5,5,8,217,5,5,9,217,5,5,10,217,5,5,11,217,5,5,12,217,5,5,13,217,5,5,14,217,5,5,15,217,5,5,16,217,5,5,17,217,5,5,18,217,5,5,19,217,5,5,20,217,5,5,46,224,5,5,47,224,5,5,48,224,5,5,49,224,5,5,50,224,5,5,51,224,5,5,52,224,5,5,53,224,5,5,54,224,5,5,55,224,5,5,56,224,5,5,57,224,5,5,58,224,5,5,59,224,5,5,60,224,5,5,54,230,5,5,55,230,5,5,56,230,5,5,57,230,5,5,58,230,5,5,59,230,5,5,60,230,5,5,61,230,5,5,62,230,5,5,63,230,5,5,64,230,5,5,65,230,5,5,61,224,5,5,66,230,5,5,34,235,5,5,35,235,5,5,36,235,5,5,26,217,5,5,37,235,5,5,70,230,5,5,218,238,5,5,219,238,5,5,220,238,5,5,26,242,5,5,149,244,5,5,150,244,5,5,151,244,5,5,152,244,5,5,92,246,5,5,93,246,5,5,176,247,5,5,182,248,5,5,19,157,5,5,85,157,5,5,212,157,5,5,213,157,5,5,214,157,5,5,184,158,5,5,185,158,5,5,59,160,5,5,60,160,5,5,61,160,5,5,62,160,5,5,63,160,5,5,108,162,5,5,109,162,5,5,110,162,5,5,111,162,5,5,112,162,5,5,113,162,5,5,114,162,5,5,95,166,5,5,96,166,5,5,97,166,5,5,98,166,5,5,99,166,5,5,225,171,5,5,226,171,5,5,227,171,5,5,80,178,5,5,81,178,5,5,151,185,5,5,152,185,5,5,153,185,5,5,162,193,5,5,163,193,5,5,33,202,5,5,5,210,5,5,64,224,5,5,154,244,5,5,20,157,5,5,86,157,5,5,215,157,5,5,64,160,5,5,101,166,5,5,229,171,5,5,21,157,5,5,216,157,5,5,217,157,5,5,218,157,5,5,219,157,5,5,187,158,5,5,66,160,5,5,67,160,5,5,68,160,5,5,69,160,5,5,116,162,5,5,102,166,5,5,103,166,5,5,104,166,5,5,230,171,5,5,84,178,5,5,231,171,5,5,85,178,5,5,154,185,5,5,34,202,5,5,35,202,5,5,66,224,5,5,40,235,5,5,23,157,5,5,220,157,5,5,221,157,5,5,222,157,5,5,223,157,5,5,224,157,5,5,225,157,5,5,188,158,5,5,189,158,5,5,190,158,5,5,191,158,5,5,70,160,5,5,71,160,5,5,117,162,5,5,105,166,5,5,232,171,5,5,233,171,5,5,86,178,5,5,87,178,5,5,155,185,5,5,24,157,5,5,226,157,5,5,227,157,5,5,193,158,5,5,194,158,5,5,72,160,5,5,73,160,5,5,118,162,5,5,106,166,5,5,234,171,5,5,235,171,5,5,88,178,5,5,89,178,5,5,90,178,5,5,91,178,5,5,92,178,5,5,93,178,5,5,94,178,5,5,157,185,5,5,6,210,5,5,67,224,5,5,25,157,5,5,195,158,5,5,196,158,5,5,197,158,5,5,198,158,5,5,74,160,5,5,75,160,5,5,76,160,5,5,77,160,5,5,78,160,5,5,119,162,5,5,120,162,5,5,121,162,5,5,122,162,5,5,123,162,5,5,124,162,5,5,125,162,5,5,107,166,5,5,108,166,5,5,109,166,5,5,110,166,5,5,111,166,5,5,236,171,5,5,237,171,5,5,238,171,5,5,96,178,5,5,97,178,5,5,98,178,5,5,99,178,5,5,100,178,5,5,101,178,5,5,102,178,5,5,103,178,5,5,104,178,5,5,105,178,5,5,106,178,5,5,158,185,5,5,159,185,5,5,160,185,5,5,166,193,5,5,167,193,5,5,168,193,5,5,169,193,5,5,170,193,5,5,36,202,5,5,7,210,5,5,27,217,5,5,28,217,5,5,29,217,5,5,30,217,5,5,68,224,5,5,69,224,5,5,71,230,5,5,26,157,5,5,87,157,5,5,88,157,5,5,89,157,5,5,229,157,5,5,199,158,5,5,200,158,5,5,201,158,5,5,80,160,5,5,81,160,5,5,82,160,5,5,83,160,5,5,127,162,5,5,113,166,5,5,114,166,5,5,115,166,5,5,162,185,5,5,171,193,5,5,172,193,5,5,8,210,5,5,9,210,5,5,28,157,5,5,231,157,5,5,202,158,5,5,203,158,5,5,204,158,5,5,205,158,5,5,206,158,5,5,84,160,5,5,116,166,5,5,242,171,5,5,173,193,5,5,29,157,5,5,30,157,5,5,32,157,5,5,90,157,5,5,91,157,5,5,233,157,5,5,234,157,5,5,235,157,5,5,236,157,5,5,207,158,5,5,208,158,5,5,209,158,5,5,210,158,5,5,211,158,5,5,85,160,5,5,86,160,5,5,87,160,5,5,88,160,5,5,89,160,5,5,90,160,5,5,91,160,5,5,92,160,5,5,93,160,5,5,94,160,5,5,95,160,5,5,96,160,5,5,97,160,5,5,98,160,5,5,128,162,5,5,129,162,5,5,130,162,5,5,131,162,5,5,132,162,5,5,133,162,5,5,134,162,5,5,135,162,5,5,136,162,5,5,137,162,5,5,138,162,5,5,139,162,5,5,140,162,5,5,141,162,5,5,142,162,5,5,143,162,5,5,144,162,5,5,145,162,5,5,117,166,5,5,118,166,5,5,119,166,5,5,120,166,5,5,121,166,5,5,122,166,5,5,123,166,5,5,124,166,5,5,125,166,5,5,126,166,5,5,127,166,5,5,128,166,5,5,129,166,5,5,130,166,5,5,131,166,5,5,132,166,5,5,133,166,5,5,134,166,5,5,135,166,5,5,136,166,5,5,137,166,5,5,243,171,5,5,244,171,5,5,245,171,5,5,141,166,5,5,246,171,5,5,247,171,5,5,248,171,5,5,249,171,5,5,250,171,5,5,251,171,5,5,252,171,5,5,253,171,5,5,254,171,5,5,255,171,5,5,2,172,5,5,110,178,5,5,111,178,5,5,112,178,5,5,113,178,5,5,114,178,5,5,115,178,5,5,116,178,5,5,117,178,5,5,118,178,5,5,119,178,5,5,120,178,5,5,121,178,5,5,122,178,5,5,123,178,5,5,124,178,5,5,125,178,5,5,126,178,5,5,127,178,5,5,128,178,5,5,129,178,5,5,130,178,5,5,131,178,5,5,163,185,5,5,174,193,5,5,164,185,5,5,165,185,5,5,166,185,5,5,167,185,5,5,168,185,5,5,169,185,5,5,170,185,5,5,171,185,5,5,175,193,5,5,176,193,5,5,177,193,5,5,178,193,5,5,172,185,5,5,37,202,5,5,38,202,5,5,39,202,5,5,40,202,5,5,41,202,5,5,42,202,5,5,43,202,5,5,44,202,5,5,45,202,5,5,10,210,5,5,11,210,5,5,12,210,5,5,13,210,5,5,14,210,5,5,32,217,5,5,33,217,5,5,34,217,5,5,35,217,5,5,36,217,5,5,37,217,5,5,38,217,5,5,39,217,5,5,40,217,5,5,41,217,5,5,42,217,5,5,71,224,5,5,72,224,5,5,73,224,5,5,74,224,5,5,75,224,5,5,74,230,5,5,222,238,5,5,155,244,5,5,156,244,5,5,177,247,5,5,178,247,5,5,33,157,5,5,92,157,5,5,237,157,5,5,238,157,5,5,212,158,5,5,213,158,5,5,214,158,5,5,215,158,5,5,99,160,5,5,100,160,5,5,101,160,5,5,102,160,5,5,103,160,5,5,104,160,5,5,147,162,5,5,148,162,5,5,149,162,5,5,150,162,5,5,151,162,5,5,152,162,5,5,153,162,5,5,154,162,5,5,155,162,5,5,156,162,5,5,157,162,5,5,158,162,5,5,142,166,5,5,143,166,5,5,144,166,5,5,145,166,5,5,146,166,5,5,147,166,5,5,148,166,5,5,149,166,5,5,150,166,5,5,151,166,5,5,152,166,5,5,3,172,5,5,4,172,5,5,5,172,5,5,6,172,5,5,7,172,5,5,8,172,5,5,154,166,5,5,9,172,5,5,10,172,5,5,11,172,5,5,12,172,5,5,13,172,5,5,133,178,5,5,134,178,5,5,135,178,5,5,136,178,5,5,137,178,5,5,138,178,5,5,174,185,5,5,175,185,5,5,176,185,5,5,177,185,5,5,178,185,5,5,49,188,5,5,179,185,5,5,180,185,5,5,181,185,5,5,180,193,5,5,181,193,5,5,182,193,5,5,183,193,5,5,46,202,5,5,47,202,5,5,48,202,5,5,49,202,5,5,50,202,5,5,51,202,5,5,52,202,5,5,53,202,5,5,54,202,5,5,18,210,5,5,19,210,5,5,20,210,5,5,21,210,5,5,22,210,5,5,23,210,5,5,43,217,5,5,44,217,5,5,45,217,5,5,46,217,5,5,47,217,5,5,76,224,5,5,75,230,5,5,76,230,5,5,77,230,5,5,223,238,5,5,224,238,5,5,34,157,5,5,93,157,5,5,239,157,5,5,240,157,5,5,241,157,5,5,242,157,5,5,243,157,5,5,244,157,5,5,245,157,5,5,246,157,5,5,216,158,5,5,217,158,5,5,218,158,5,5,219,158,5,5,220,158,5,5,105,160,5,5,159,162,5,5,155,166,5,5,156,166,5,5,157,166,5,5,14,172,5,5,140,178,5,5,183,185,5,5,184,185,5,5,184,193,5,5,185,193,5,5,185,185,5,5,48,217,5,5,35,157,5,5,247,157,5,5,221,158,5,5,186,185,5,5,187,185,5,5,36,157,5,5,222,158,5,5,223,158,5,5,224,158,5,5,225,158,5,5,106,160,5,5,107,160,5,5,108,160,5,5,109,160,5,5,161,162,5,5,162,162,5,5,163,162,5,5,159,166,5,5,15,172,5,5,16,172,5,5,17,172,5,5,141,178,5,5,142,178,5,5,189,185,5,5,190,185,5,5,191,185,5,5,55,202,5,5,25,210,5,5,26,210,5,5,27,210,5,5,49,217,5,5,77,224,5,5,80,230,5,5,225,238,5,5,28,242,5,5,37,157,5,5,249,157,5,5,250,157,5,5,165,162,5,5,160,166,5,5,18,172,5,5,193,185,5,5,194,185,5,5,195,185,5,5,38,157,5,5,94,157,5,5,95,157,5,5,61,157,5,5,251,157,5,5,252,157,5,5,253,157,5,5,254,157,5,5,226,158,5,5,227,158,5,5,110,160,5,5,228,158,5,5,111,160,5,5,112,160,5,5,113,160,5,5,114,160,5,5,161,166,5,5,162,166,5,5,163,166,5,5,164,166,5,5,165,166,5,5,166,166,5,5,19,172,5,5,20,172,5,5,196,185,5,5,189,193,5,5,158,244,5,5,40,157,5,5,2,158,5,5,3,158,5,5,229,158,5,5,230,158,5,5,231,158,5,5,232,158,5,5,167,162,5,5,168,162,5,5,167,166,5,5,168,166,5,5,169,166,5,5,197,185,5,5,41,157,5,5,96,157,5,5,97,157,5,5,4,158,5,5,233,158,5,5,234,158,5,5,235,158,5,5,116,160,5,5,117,160,5,5,169,162,5,5,170,162,5,5,171,162,5,5,172,162,5,5,171,166,5,5,172,166,5,5,173,166,5,5,174,166,5,5,175,166,5,5,21,172,5,5,22,172,5,5,23,172,5,5,198,185,5,5,144,178,5,5,59,202,5,5,60,202,5,5,42,157,5,5,5,158,5,5,6,158,5,5,7,158,5,5,8,158,5,5,237,158,5,5,238,158,5,5,239,158,5,5,118,160,5,5,119,160,5,5,120,160,5,5,121,160,5,5,173,162,5,5,174,162,5,5,175,162,5,5,176,162,5,5,176,166,5,5,177,166,5,5,178,166,5,5,179,166,5,5,24,172,5,5,25,172,5,5,26,172,5,5,27,172,5,5,28,172,5,5,29,172,5,5,145,178,5,5,146,178,5,5,147,178,5,5,148,178,5,5,199,185,5,5,200,185,5,5,201,185,5,5,202,185,5,5,190,193,5,5,191,193,5,5,192,193,5,5,193,193,5,5,194,193,5,5,203,185,5,5,61,202,5,5,62,202,5,5,29,210,5,5,30,210,5,5,31,210,5,5,63,202,5,5,32,210,5,5,50,217,5,5,51,217,5,5,81,230,5,5,226,238,5,5,137,250,5,5,43,157,5,5,9,158,5,5,10,158,5,5,11,158,5,5,240,158,5,5,241,158,5,5,242,158,5,5,123,160,5,5,124,160,5,5,177,162,5,5,181,166,5,5,182,166,5,5,183,166,5,5,204,185,5,5,205,185,5,5,196,193,5,5,34,210,5,5,53,217,5,5,45,157,5,5,99,157,5,5,12,158,5,5,13,158,5,5,14,158,5,5,15,158,5,5,16,158,5,5,243,158,5,5,244,158,5,5,245,158,5,5,125,160,5,5,178,162,5,5,184,166,5,5,185,166,5,5,186,166,5,5,187,166,5,5,188,166,5,5,30,172,5,5,31,172,5,5,32,172,5,5,33,172,5,5,34,172,5,5,151,178,5,5,152,178,5,5,64,202,5,5,78,224,5,5,43,235,5,5,100,157,5,5,246,158,5,5,247,158,5,5,248,158,5,5,249,158,5,5,250,158,5,5,251,158,5,5,252,158,5,5,253,158,5,5,254,158,5,5,255,158,5,5,2,159,5,5,3,159,5,5,4,159,5,5,5,159,5,5,6,159,5,5,7,159,5,5,8,159,5,5,9,159,5,5,10,159,5,5,11,159,5,5,12,159,5,5,13,159,5,5,14,159,5,5,15,159,5,5,16,159,5,5,17,159,5,5,18,159,5,5,126,160,5,5,127,160,5,5,128,160,5,5,129,160,5,5,130,160,5,5,131,160,5,5,132,160,5,5,133,160,5,5,134,160,5,5,135,160,5,5,136,160,5,5,137,160,5,5,138,160,5,5,139,160,5,5,140,160,5,5,141,160,5,5,142,160,5,5,143,160,5,5,144,160,5,5,145,160,5,5,146,160,5,5,147,160,5,5,148,160,5,5,149,160,5,5,150,160,5,5,179,162,5,5,180,162,5,5,181,162,5,5,182,162,5,5,183,162,5,5,184,162,5,5,185,162,5,5,186,162,5,5,187,162,5,5,188,162,5,5,189,162,5,5,190,162,5,5,191,162,5,5,192,162,5,5,193,162,5,5,194,162,5,5,195,162,5,5,196,162,5,5,197,162,5,5,198,162,5,5,199,162,5,5,200,162,5,5,201,162,5,5,202,162,5,5,203,162,5,5,204,162,5,5,205,162,5,5,206,162,5,5,207,162,5,5,208,162,5,5,209,162,5,5,210,162,5,5,211,162,5,5,212,162,5,5,213,162,5,5,214,162,5,5,215,162,5,5,216,162,5,5,217,162,5,5,218,162,5,5,219,162,5,5,220,162,5,5,221,162,5,5,222,162,5,5,223,162,5,5,224,162,5,5,225,162,5,5,226,162,5,5,227,162,5,5,228,162,5,5,229,162,5,5,230,162,5,5,231,162,5,5,232,162,5,5,233,162,5,5,234,162,5,5,235,162,5,5,236,162,5,5,237,162,5,5,238,162,5,5,239,162,5,5,240,162,5,5,241,162,5,5,242,162,5,5,243,162,5,5,244,162,5,5,245,162,5,5,246,162,5,5,247,162,5,5,189,166,5,5,190,166,5,5,191,166,5,5,192,166,5,5,193,166,5,5,194,166,5,5,195,166,5,5,196,166,5,5,197,166,5,5,198,166,5,5,199,166,5,5,200,166,5,5,201,166,5,5,202,166,5,5,203,166,5,5,204,166,5,5,205,166,5,5,206,166,5,5,207,166,5,5,35,172,5,5,208,166,5,5,36,172,5,5,209,166,5,5,210,166,5,5,211,166,5,5,212,166,5,5,213,166,5,5,214,166,5,5,215,166,5,5,216,166,5,5,217,166,5,5,218,166,5,5,219,166,5,5,220,166,5,5,221,166,5,5,222,166,5,5,223,166,5,5,224,166,5,5,225,166,5,5,226,166,5,5,227,166,5,5,228,166,5,5,229,166,5,5,230,166,5,5,231,166,5,5,232,166,5,5,233,166,5,5,234,166,5,5,235,166,5,5,236,166,5,5,237,166,5,5,238,166,5,5,239,166,5,5,240,166,5,5,241,166,5,5,242,166,5,5,243,166,5,5,244,166,5,5,245,166,5,5,246,166,5,5,247,166,5,5,248,166,5,5,249,166,5,5,250,166,5,5,251,166,5,5,37,172,5,5,38,172,5,5,39,172,5,5,40,172,5,5,41,172,5,5,42,172,5,5,43,172,5,5,44,172,5,5,45,172,5,5,46,172,5,5,47,172,5,5,48,172,5,5,49,172,5,5,50,172,5,5,51,172,5,5,52,172,5,5,53,172,5,5,54,172,5,5,55,172,5,5,56,172,5,5,57,172,5,5,58,172,5,5,59,172,5,5,60,172,5,5,61,172,5,5,62,172,5,5,63,172,5,5,64,172,5,5,65,172,5,5,66,172,5,5,67,172,5,5,68,172,5,5,69,172,5,5,70,172,5,5,71,172,5,5,72,172,5,5,73,172,5,5,74,172,5,5,75,172,5,5,76,172,5,5,77,172,5,5,78,172,5,5,79,172,5,5,80,172,5,5,81,172,5,5,82,172,5,5,83,172,5,5,84,172,5,5,85,172,5,5,86,172,5,5,87,172,5,5,88,172,5,5,89,172,5,5,90,172,5,5,91,172,5,5,92,172,5,5,93,172,5,5,94,172,5,5,95,172,5,5,96,172,5,5,97,172,5,5,98,172,5,5,99,172,5,5,100,172,5,5,101,172,5,5,102,172,5,5,153,178,5,5,154,178,5,5,155,178,5,5,156,178,5,5,157,178,5,5,158,178,5,5,159,178,5,5,160,178,5,5,161,178,5,5,162,178,5,5,163,178,5,5,164,178,5,5,165,178,5,5,166,178,5,5,167,178,5,5,168,178,5,5,169,178,5,5,170,178,5,5,171,178,5,5,172,178,5,5,173,178,5,5,174,178,5,5,175,178,5,5,176,178,5,5,177,178,5,5,178,178,5,5,179,178,5,5,180,178,5,5,181,178,5,5,182,178,5,5,183,178,5,5,184,178,5,5,185,178,5,5,186,178,5,5,187,178,5,5,188,178,5,5,189,178,5,5,190,178,5,5,191,178,5,5,192,178,5,5,193,178,5,5,194,178,5,5,195,178,5,5,196,178,5,5,206,185,5,5,197,178,5,5,198,178,5,5,199,178,5,5,200,178,5,5,201,178,5,5,202,178,5,5,203,178,5,5,204,178,5,5,205,178,5,5,206,178,5,5,207,178,5,5,208,178,5,5,209,178,5,5,210,178,5,5,211,178,5,5,212,178,5,5,213,178,5,5,214,178,5,5,215,178,5,5,216,178,5,5,217,178,5,5,218,178,5,5,219,178,5,5,220,178,5,5,221,178,5,5,222,178,5,5,223,178,5,5,207,185,5,5,208,185,5,5,209,185,5,5,210,185,5,5,211,185,5,5,212,185,5,5,213,185,5,5,214,185,5,5,215,185,5,5,216,185,5,5,217,185,5,5,218,185,5,5,219,185,5,5,220,185,5,5,221,185,5,5,222,185,5,5,223,185,5,5,224,185,5,5,225,185,5,5,226,185,5,5,227,185,5,5,228,185,5,5,229,185,5,5,230,185,5,5,231,185,5,5,232,185,5,5,233,185,5,5,234,185,5,5,235,185,5,5,236,185,5,5,237,185,5,5,238,185,5,5,239,185,5,5,240,185,5,5,241,185,5,5,242,185,5,5,243,185,5,5,244,185,5,5,245,185,5,5,246,185,5,5,247,185,5,5,248,185,5,5,249,185,5,5,250,185,5,5,251,185,5,5,252,185,5,5,253,185,5,5,254,185,5,5,255,185,5,5,197,193,5,5,2,186,5,5,3,186,5,5,4,186,5,5,5,186,5,5,6,186,5,5,10,188,5,5,7,186,5,5,8,186,5,5,9,186,5,5,10,186,5,5,11,186,5,5,12,186,5,5,13,186,5,5,14,186,5,5,15,186,5,5,16,186,5,5,17,186,5,5,55,186,5,5,18,186,5,5,19,186,5,5,20,186,5,5,21,186,5,5,22,186,5,5,23,186,5,5,24,186,5,5,25,186,5,5,26,186,5,5,27,186,5,5,28,186,5,5,29,186,5,5,30,186,5,5,31,186,5,5,198,193,5,5,199,193,5,5,200,193,5,5,201,193,5,5,202,193,5,5,203,193,5,5,204,193,5,5,205,193,5,5,206,193,5,5,207,193,5,5,208,193,5,5,209,193,5,5,210,193,5,5,211,193,5,5,212,193,5,5,213,193,5,5,214,193,5,5,215,193,5,5,216,193,5,5,65,202,5,5,217,193,5,5,218,193,5,5,219,193,5,5,220,193,5,5,221,193,5,5,222,193,5,5,223,193,5,5,224,193,5,5,225,193,5,5,226,193,5,5,227,193,5,5,228,193,5,5,229,193,5,5,230,193,5,5,231,193,5,5,232,193,5,5,233,193,5,5,234,193,5,5,235,193,5,5,236,193,5,5,237,193,5,5,238,193,5,5,239,193,5,5,240,193,5,5,241,193,5,5,242,193,5,5,243,193,5,5,244,193,5,5,245,193,5,5,246,193,5,5,247,193,5,5,248,193,5,5,249,193,5,5,250,193,5,5,251,193,5,5,252,193,5,5,253,193,5,5,254,193,5,5,255,193,5,5,2,194,5,5,56,186,5,5,3,194,5,5,4,194,5,5,5,194,5,5,6,194,5,5,7,194,5,5,8,194,5,5,9,194,5,5,10,194,5,5,66,202,5,5,67,202,5,5,68,202,5,5,69,202,5,5,70,202,5,5,71,202,5,5,72,202,5,5,73,202,5,5,74,202,5,5,75,202,5,5,76,202,5,5,77,202,5,5,78,202,5,5,79,202,5,5,80,202,5,5,81,202,5,5,82,202,5,5,83,202,5,5,84,202,5,5,85,202,5,5,86,202,5,5,87,202,5,5,88,202,5,5,89,202,5,5,90,202,5,5,91,202,5,5,92,202,5,5,93,202,5,5,94,202,5,5,95,202,5,5,96,202,5,5,30,194,5,5,97,202,5,5,98,202,5,5,99,202,5,5,100,202,5,5,101,202,5,5,102,202,5,5,103,202,5,5,104,202,5,5,105,202,5,5,106,202,5,5,107,202,5,5,108,202,5,5,109,202,5,5,110,202,5,5,111,202,5,5,112,202,5,5,113,202,5,5,114,202,5,5,115,202,5,5,116,202,5,5,117,202,5,5,118,202,5,5,119,202,5,5,38,210,5,5,39,210,5,5,40,210,5,5,41,210,5,5,42,210,5,5,43,210,5,5,44,210,5,5,45,210,5,5,46,210,5,5,47,210,5,5,48,210,5,5,49,210,5,5,50,210,5,5,51,210,5,5,52,210,5,5,53,210,5,5,54,210,5,5,55,210,5,5,56,210,5,5,57,210,5,5,58,210,5,5,59,210,5,5,60,210,5,5,61,210,5,5,62,210,5,5,63,210,5,5,64,210,5,5,65,210,5,5,66,210,5,5,67,210,5,5,68,210,5,5,69,210,5,5,70,210,5,5,71,210,5,5,72,210,5,5,73,210,5,5,74,210,5,5,75,210,5,5,76,210,5,5,77,210,5,5,78,210,5,5,102,210,5,5,56,217,5,5,79,210,5,5,80,210,5,5,81,210,5,5,82,210,5,5,83,210,5,5,84,210,5,5,85,210,5,5,103,210,5,5,57,217,5,5,58,217,5,5,59,217,5,5,60,217,5,5,61,217,5,5,62,217,5,5,63,217,5,5,64,217,5,5,65,217,5,5,66,217,5,5,67,217,5,5,68,217,5,5,69,217,5,5,70,217,5,5,71,217,5,5,72,217,5,5,73,217,5,5,74,217,5,5,75,217,5,5,76,217,5,5,77,217,5,5,78,217,5,5,79,217,5,5,80,217,5,5,81,217,5,5,82,217,5,5,83,217,5,5,84,217,5,5,11,194,5,5,85,217,5,5,86,217,5,5,87,217,5,5,88,217,5,5,89,217,5,5,90,217,5,5,91,217,5,5,92,217,5,5,93,217,5,5,94,217,5,5,95,217,5,5,86,210,5,5,96,217,5,5,55,217,5,5,97,217,5,5,175,219,5,5,98,217,5,5,99,217,5,5,100,217,5,5,101,217,5,5,102,217,5,5,103,217,5,5,104,217,5,5,105,217,5,5,79,224,5,5,80,224,5,5,81,224,5,5,82,224,5,5,83,224,5,5,84,224,5,5,85,224,5,5,86,224,5,5,87,224,5,5,88,224,5,5,89,224,5,5,90,224,5,5,91,224,5,5,92,224,5,5,93,224,5,5,94,224,5,5,95,224,5,5,96,224,5,5,97,224,5,5,98,224,5,5,99,224,5,5,100,224,5,5,106,217,5,5,101,224,5,5,102,224,5,5,103,224,5,5,104,224,5,5,105,224,5,5,106,224,5,5,107,224,5,5,108,224,5,5,84,230,5,5,85,230,5,5,86,230,5,5,87,230,5,5,88,230,5,5,89,230,5,5,90,230,5,5,91,230,5,5,92,230,5,5,93,230,5,5,94,230,5,5,95,230,5,5,96,230,5,5,97,230,5,5,98,230,5,5,99,230,5,5,100,230,5,5,101,230,5,5,102,230,5,5,103,230,5,5,104,230,5,5,105,230,5,5,106,230,5,5,44,235,5,5,45,235,5,5,46,235,5,5,47,235,5,5,48,235,5,5,49,235,5,5,50,235,5,5,51,235,5,5,52,235,5,5,53,235,5,5,54,235,5,5,55,235,5,5,56,235,5,5,57,235,5,5,58,235,5,5,59,235,5,5,60,235,5,5,228,238,5,5,229,238,5,5,230,238,5,5,231,238,5,5,232,238,5,5,233,238,5,5,234,238,5,5,235,238,5,5,236,238,5,5,73,235,5,5,237,238,5,5,238,238,5,5,29,242,5,5,30,242,5,5,31,242,5,5,32,242,5,5,33,242,5,5,34,242,5,5,35,242,5,5,36,242,5,5,37,242,5,5,159,244,5,5,160,244,5,5,39,242,5,5,161,244,5,5,162,244,5,5,163,244,5,5,164,244,5,5,165,244,5,5,166,244,5,5,167,244,5,5,168,244,5,5,96,246,5,5,97,246,5,5,98,246,5,5,99,246,5,5,100,246,5,5,101,246,5,5,102,246,5,5,180,247,5,5,169,244,5,5,103,246,5,5,181,247,5,5,182,247,5,5,184,248,5,5,185,248,5,5,186,248,5,5,100,249,5,5,101,249,5,5,85,250,5,5,101,157,5,5,22,159,5,5,23,159,5,5,24,159,5,5,25,159,5,5,26,159,5,5,154,160,5,5,155,160,5,5,156,160,5,5,157,160,5,5,158,160,5,5,159,160,5,5,160,160,5,5,2,163,5,5,3,163,5,5,4,163,5,5,5,163,5,5,6,163,5,5,7,163,5,5,8,163,5,5,9,163,5,5,10,163,5,5,11,163,5,5,12,163,5,5,13,163,5,5,14,163,5,5,15,163,5,5,16,163,5,5,17,163,5,5,18,163,5,5,19,163,5,5,9,167,5,5,10,167,5,5,11,167,5,5,12,167,5,5,13,167,5,5,14,167,5,5,15,167,5,5,16,167,5,5,17,167,5,5,112,172,5,5,113,172,5,5,237,178,5,5,238,178,5,5,239,178,5,5,240,178,5,5,241,178,5,5,242,178,5,5,57,186,5,5,58,186,5,5,59,186,5,5,60,186,5,5,61,186,5,5,31,194,5,5,32,194,5,5,33,194,5,5,62,186,5,5,34,194,5,5,144,202,5,5,145,202,5,5,146,202,5,5,147,202,5,5,148,202,5,5,104,210,5,5,105,210,5,5,106,210,5,5,107,210,5,5,119,217,5,5,123,224,5,5,124,224,5,5,105,246,5,5,221,249,5,5,102,157,5,5,17,158,5,5,18,158,5,5,28,159,5,5,29,159,5,5,30,159,5,5,31,159,5,5,32,159,5,5,33,159,5,5,161,160,5,5,162,160,5,5,163,160,5,5,164,160,5,5,165,160,5,5,166,160,5,5,167,160,5,5,168,160,5,5,169,160,5,5,170,160,5,5,171,160,5,5,172,160,5,5,173,160,5,5,174,160,5,5,175,160,5,5,176,160,5,5,177,160,5,5,178,160,5,5,179,160,5,5,20,163,5,5,21,163,5,5,22,163,5,5,23,163,5,5,24,163,5,5,25,163,5,5,26,163,5,5,27,163,5,5,28,163,5,5,29,163,5,5,30,163,5,5,31,163,5,5,32,163,5,5,33,163,5,5,34,163,5,5,35,163,5,5,36,163,5,5,37,163,5,5,38,163,5,5,39,163,5,5,40,163,5,5,41,163,5,5,42,163,5,5,43,163,5,5,44,163,5,5,45,163,5,5,46,163,5,5,47,163,5,5,48,163,5,5,49,163,5,5,50,163,5,5,51,163,5,5,52,163,5,5,53,163,5,5,54,163,5,5,55,163,5,5,56,163,5,5,57,163,5,5,19,167,5,5,20,167,5,5,21,167,5,5,22,167,5,5,23,167,5,5,24,167,5,5,25,167,5,5,26,167,5,5,27,167,5,5,28,167,5,5,29,167,5,5,30,167,5,5,31,167,5,5,32,167,5,5,33,167,5,5,34,167,5,5,35,167,5,5,36,167,5,5,37,167,5,5,38,167,5,5,39,167,5,5,40,167,5,5,41,167,5,5,42,167,5,5,43,167,5,5,44,167,5,5,45,167,5,5,46,167,5,5,47,167,5,5,48,167,5,5,49,167,5,5,50,167,5,5,51,167,5,5,52,167,5,5,53,167,5,5,54,167,5,5,55,167,5,5,56,167,5,5,57,167,5,5,58,167,5,5,59,167,5,5,60,167,5,5,116,172,5,5,117,172,5,5,118,172,5,5,119,172,5,5,120,172,5,5,121,172,5,5,122,172,5,5,123,172,5,5,124,172,5,5,125,172,5,5,126,172,5,5,127,172,5,5,128,172,5,5,129,172,5,5,130,172,5,5,131,172,5,5,132,172,5,5,133,172,5,5,134,172,5,5,135,172,5,5,136,172,5,5,137,172,5,5,138,172,5,5,139,172,5,5,140,172,5,5,141,172,5,5,142,172,5,5,143,172,5,5,144,172,5,5,145,172,5,5,146,172,5,5,147,172,5,5,148,172,5,5,149,172,5,5,150,172,5,5,151,172,5,5,152,172,5,5,153,172,5,5,154,172,5,5,155,172,5,5,156,172,5,5,157,172,5,5,158,172,5,5,244,178,5,5,245,178,5,5,246,178,5,5,247,178,5,5,248,178,5,5,249,178,5,5,250,178,5,5,251,178,5,5,252,178,5,5,253,178,5,5,254,178,5,5,255,178,5,5,2,179,5,5,3,179,5,5,4,179,5,5,5,179,5,5,6,179,5,5,7,179,5,5,8,179,5,5,9,179,5,5,10,179,5,5,11,179,5,5,12,179,5,5,13,179,5,5,159,172,5,5,14,179,5,5,15,179,5,5,16,179,5,5,17,179,5,5,18,179,5,5,19,179,5,5,20,179,5,5,21,179,5,5,22,179,5,5,23,179,5,5,24,179,5,5,25,179,5,5,26,179,5,5,63,186,5,5,64,186,5,5,65,186,5,5,66,186,5,5,67,186,5,5,68,186,5,5,69,186,5,5,70,186,5,5,71,186,5,5,72,186,5,5,73,186,5,5,74,186,5,5,75,186,5,5,76,186,5,5,125,186,5,5,77,186,5,5,78,186,5,5,79,186,5,5,80,186,5,5,81,186,5,5,82,186,5,5,83,186,5,5,84,186,5,5,85,186,5,5,86,186,5,5,87,186,5,5,88,186,5,5,89,186,5,5,90,186,5,5,91,186,5,5,92,186,5,5,93,186,5,5,94,186,5,5,95,186,5,5,96,186,5,5,97,186,5,5,98,186,5,5,99,186,5,5,100,186,5,5,101,186,5,5,102,186,5,5,103,186,5,5,104,186,5,5,105,186,5,5,106,186,5,5,107,186,5,5,108,186,5,5,109,186,5,5,110,186,5,5,111,186,5,5,112,186,5,5,113,186,5,5,114,186,5,5,115,186,5,5,116,186,5,5,117,186,5,5,118,186,5,5,119,186,5,5,35,194,5,5,36,194,5,5,37,194,5,5,38,194,5,5,39,194,5,5,40,194,5,5,41,194,5,5,42,194,5,5,43,194,5,5,44,194,5,5,45,194,5,5,46,194,5,5,47,194,5,5,48,194,5,5,49,194,5,5,50,194,5,5,51,194,5,5,52,194,5,5,53,194,5,5,54,194,5,5,55,194,5,5,56,194,5,5,57,194,5,5,58,194,5,5,59,194,5,5,60,194,5,5,61,194,5,5,62,194,5,5,33,179,5,5,63,194,5,5,64,194,5,5,126,186,5,5,65,194,5,5,66,194,5,5,67,194,5,5,68,194,5,5,69,194,5,5,70,194,5,5,71,194,5,5,149,202,5,5,72,194,5,5,73,194,5,5,74,194,5,5,75,194,5,5,76,194,5,5,150,202,5,5,77,194,5,5,78,194,5,5,79,194,5,5,80,194,5,5,81,194,5,5,151,202,5,5,152,202,5,5,153,202,5,5,154,202,5,5,155,202,5,5,156,202,5,5,157,202,5,5,158,202,5,5,159,202,5,5,160,202,5,5,161,202,5,5,162,202,5,5,163,202,5,5,164,202,5,5,165,202,5,5,166,202,5,5,167,202,5,5,168,202,5,5,169,202,5,5,170,202,5,5,171,202,5,5,172,202,5,5,173,202,5,5,174,202,5,5,175,202,5,5,176,202,5,5,177,202,5,5,178,202,5,5,179,202,5,5,180,202,5,5,181,202,5,5,182,202,5,5,183,202,5,5,184,202,5,5,185,202,5,5,186,202,5,5,187,202,5,5,188,202,5,5,189,202,5,5,190,202,5,5,191,202,5,5,108,210,5,5,109,210,5,5,110,210,5,5,111,210,5,5,112,210,5,5,113,210,5,5,114,210,5,5,115,210,5,5,116,210,5,5,117,210,5,5,118,210,5,5,119,210,5,5,120,210,5,5,121,210,5,5,120,217,5,5,122,210,5,5,123,210,5,5,124,210,5,5,125,210,5,5,126,210,5,5,127,210,5,5,128,210,5,5,129,210,5,5,130,210,5,5,131,210,5,5,132,210,5,5,133,210,5,5,134,210,5,5,135,210,5,5,136,210,5,5,137,210,5,5,138,210,5,5,139,210,5,5,140,210,5,5,141,210,5,5,142,210,5,5,143,210,5,5,144,210,5,5,145,210,5,5,146,210,5,5,147,210,5,5,148,210,5,5,121,217,5,5,122,217,5,5,123,217,5,5,124,217,5,5,125,217,5,5,126,217,5,5,127,217,5,5,128,217,5,5,129,217,5,5,130,217,5,5,131,217,5,5,132,217,5,5,35,224,5,5,133,217,5,5,134,217,5,5,135,217,5,5,136,217,5,5,156,210,5,5,137,217,5,5,138,217,5,5,139,217,5,5,140,217,5,5,141,217,5,5,142,217,5,5,143,217,5,5,144,217,5,5,145,217,5,5,146,217,5,5,147,217,5,5,148,217,5,5,125,224,5,5,126,224,5,5,127,224,5,5,128,224,5,5,129,224,5,5,130,224,5,5,131,224,5,5,132,224,5,5,133,224,5,5,134,224,5,5,135,224,5,5,136,224,5,5,137,224,5,5,138,224,5,5,139,224,5,5,140,224,5,5,141,224,5,5,142,224,5,5,143,224,5,5,116,230,5,5,117,230,5,5,118,230,5,5,119,230,5,5,120,230,5,5,121,230,5,5,122,230,5,5,123,230,5,5,124,230,5,5,125,230,5,5,126,230,5,5,74,235,5,5,75,235,5,5,243,238,5,5,244,238,5,5,245,238,5,5,246,238,5,5,247,238,5,5,248,238,5,5,249,238,5,5,227,238,5,5,250,238,5,5,41,242,5,5,42,242,5,5,43,242,5,5,175,244,5,5,184,247,5,5,185,247,5,5,188,248,5,5,103,249,5,5,103,157,5,5,20,158,5,5,35,159,5,5,181,160,5,5,64,163,5,5,65,163,5,5,66,163,5,5,67,163,5,5,68,163,5,5,167,172,5,5,168,172,5,5,34,179,5,5,127,186,5,5,128,186,5,5,88,194,5,5,89,194,5,5,90,194,5,5,195,202,5,5,157,210,5,5,158,210,5,5,154,217,5,5,155,217,5,5,145,224,5,5,104,157,5,5,21,158,5,5,36,159,5,5,182,160,5,5,69,163,5,5,69,167,5,5,169,172,5,5,170,172,5,5,105,157,5,5,70,163,5,5,70,167,5,5,171,172,5,5,35,179,5,5,36,179,5,5,159,210,5,5,77,235,5,5,251,238,5,5,78,235,5,5,177,244,5,5,106,157,5,5,37,159,5,5,38,159,5,5,39,159,5,5,183,160,5,5,184,160,5,5,185,160,5,5,71,167,5,5,72,167,5,5,37,179,5,5,129,186,5,5,130,186,5,5,91,194,5,5,160,210,5,5,161,210,5,5,162,210,5,5,163,210,5,5,157,217,5,5,107,157,5,5,108,157,5,5,22,158,5,5,23,158,5,5,24,158,5,5,25,158,5,5,26,158,5,5,40,159,5,5,41,159,5,5,42,159,5,5,43,159,5,5,44,159,5,5,45,159,5,5,46,159,5,5,186,160,5,5,187,160,5,5,188,160,5,5,189,160,5,5,190,160,5,5,191,160,5,5,192,160,5,5,193,160,5,5,71,163,5,5,72,163,5,5,73,163,5,5,74,163,5,5,75,163,5,5,76,163,5,5,73,167,5,5,74,167,5,5,75,167,5,5,76,167,5,5,77,167,5,5,78,167,5,5,79,167,5,5,39,179,5,5,80,167,5,5,81,167,5,5,82,167,5,5,172,172,5,5,173,172,5,5,174,172,5,5,175,172,5,5,176,172,5,5,177,172,5,5,83,167,5,5,178,172,5,5,179,172,5,5,40,179,5,5,41,179,5,5,42,179,5,5,43,179,5,5,131,186,5,5,132,186,5,5,133,186,5,5,134,186,5,5,135,186,5,5,92,194,5,5,93,194,5,5,137,186,5,5,94,194,5,5,95,194,5,5,96,194,5,5,196,202,5,5,197,202,5,5,198,202,5,5,164,210,5,5,165,210,5,5,166,210,5,5,167,210,5,5,158,217,5,5,146,224,5,5,147,224,5,5,79,235,5,5,106,246,5,5,187,247,5,5,109,157,5,5,47,159,5,5,48,159,5,5,49,159,5,5,194,160,5,5,195,160,5,5,196,160,5,5,197,160,5,5,198,160,5,5,199,160,5,5,200,160,5,5,201,160,5,5,202,160,5,5,203,160,5,5,204,160,5,5,205,160,5,5,206,160,5,5,207,160,5,5,208,160,5,5,209,160,5,5,210,160,5,5,211,160,5,5,77,163,5,5,78,163,5,5,79,163,5,5,80,163,5,5,184,172,5,5,81,163,5,5,82,163,5,5,83,163,5,5,84,163,5,5,85,163,5,5,86,163,5,5,87,163,5,5,88,163,5,5,89,163,5,5,90,163,5,5,91,163,5,5,92,163,5,5,93,163,5,5,94,163,5,5,95,163,5,5,96,163,5,5,97,163,5,5,98,163,5,5,99,163,5,5,100,163,5,5,101,163,5,5,102,163,5,5,103,163,5,5,104,163,5,5,105,163,5,5,106,163,5,5,107,163,5,5,108,163,5,5,109,163,5,5,110,163,5,5,85,167,5,5,86,167,5,5,87,167,5,5,88,167,5,5,89,167,5,5,90,167,5,5,91,167,5,5,92,167,5,5,93,167,5,5,94,167,5,5,95,167,5,5,96,167,5,5,97,167,5,5,98,167,5,5,99,167,5,5,100,167,5,5,101,167,5,5,102,167,5,5,103,167,5,5,104,167,5,5,105,167,5,5,106,167,5,5,107,167,5,5,108,167,5,5,109,167,5,5,110,167,5,5,111,167,5,5,112,167,5,5,113,167,5,5,114,167,5,5,115,167,5,5,116,167,5,5,117,167,5,5,118,167,5,5,119,167,5,5,120,167,5,5,121,167,5,5,122,167,5,5,123,167,5,5,124,167,5,5,125,167,5,5,183,172,5,5,126,167,5,5,127,167,5,5,185,172,5,5,186,172,5,5,187,172,5,5,188,172,5,5,189,172,5,5,190,172,5,5,191,172,5,5,192,172,5,5,193,172,5,5,194,172,5,5,195,172,5,5,196,172,5,5,197,172,5,5,198,172,5,5,199,172,5,5,200,172,5,5,201,172,5,5,202,172,5,5,203,172,5,5,204,172,5,5,44,179,5,5,205,172,5,5,206,172,5,5,207,172,5,5,208,172,5,5,209,172,5,5,210,172,5,5,211,172,5,5,212,172,5,5,213,172,5,5,214,172,5,5,215,172,5,5,216,172,5,5,217,172,5,5,218,172,5,5,219,172,5,5,220,172,5,5,221,172,5,5,222,172,5,5,223,172,5,5,224,172,5,5,225,172,5,5,226,172,5,5,227,172,5,5,64,176,5,5,228,172,5,5,229,172,5,5,230,172,5,5,231,172,5,5,45,179,5,5,46,179,5,5,47,179,5,5,48,179,5,5,240,172,5,5,49,179,5,5,50,179,5,5,51,179,5,5,52,179,5,5,53,179,5,5,54,179,5,5,55,179,5,5,56,179,5,5,57,179,5,5,58,179,5,5,59,179,5,5,60,179,5,5,61,179,5,5,62,179,5,5,63,179,5,5,64,179,5,5,65,179,5,5,66,179,5,5,67,179,5,5,68,179,5,5,69,179,5,5,70,179,5,5,71,179,5,5,72,179,5,5,73,179,5,5,74,179,5,5,75,179,5,5,76,179,5,5,77,179,5,5,138,186,5,5,140,186,5,5,78,179,5,5,79,179,5,5,80,179,5,5,81,179,5,5,82,179,5,5,83,179,5,5,84,179,5,5,85,179,5,5,141,186,5,5,142,186,5,5,143,186,5,5,144,186,5,5,145,186,5,5,146,186,5,5,147,186,5,5,148,186,5,5,139,186,5,5,149,186,5,5,150,186,5,5,151,186,5,5,152,186,5,5,153,186,5,5,154,186,5,5,155,186,5,5,156,186,5,5,157,186,5,5,158,186,5,5,159,186,5,5,160,186,5,5,161,186,5,5,162,186,5,5,163,186,5,5,164,186,5,5,165,186,5,5,166,186,5,5,167,186,5,5,168,186,5,5,169,186,5,5,170,186,5,5,171,186,5,5,172,186,5,5,173,186,5,5,174,186,5,5,175,186,5,5,176,186,5,5,177,186,5,5,178,186,5,5,179,186,5,5,180,186,5,5,181,186,5,5,182,186,5,5,183,186,5,5,184,186,5,5,185,186,5,5,186,186,5,5,187,186,5,5,188,186,5,5,189,186,5,5,190,186,5,5,191,186,5,5,192,186,5,5,193,186,5,5,194,186,5,5,195,186,5,5,196,186,5,5,197,186,5,5,198,186,5,5,199,186,5,5,200,186,5,5,201,186,5,5,202,186,5,5,203,186,5,5,204,186,5,5,205,186,5,5,97,194,5,5,98,194,5,5,99,194,5,5,100,194,5,5,101,194,5,5,102,194,5,5,103,194,5,5,104,194,5,5,105,194,5,5,106,194,5,5,107,194,5,5,108,194,5,5,109,194,5,5,110,194,5,5,111,194,5,5,112,194,5,5,113,194,5,5,114,194,5,5,115,194,5,5,116,194,5,5,117,194,5,5,118,194,5,5,119,194,5,5,216,186,5,5,120,194,5,5,200,202,5,5,121,194,5,5,122,194,5,5,123,194,5,5,124,194,5,5,125,194,5,5,126,194,5,5,127,194,5,5,128,194,5,5,129,194,5,5,130,194,5,5,131,194,5,5,132,194,5,5,133,194,5,5,134,194,5,5,135,194,5,5,136,194,5,5,137,194,5,5,138,194,5,5,139,194,5,5,140,194,5,5,141,194,5,5,142,194,5,5,143,194,5,5,144,194,5,5,145,194,5,5,146,194,5,5,147,194,5,5,148,194,5,5,149,194,5,5,150,194,5,5,151,194,5,5,201,202,5,5,202,202,5,5,203,202,5,5,204,202,5,5,205,202,5,5,206,202,5,5,207,202,5,5,208,202,5,5,209,202,5,5,210,202,5,5,211,202,5,5,212,202,5,5,213,202,5,5,214,202,5,5,215,202,5,5,216,202,5,5,217,202,5,5,218,202,5,5,219,202,5,5,220,202,5,5,221,202,5,5,222,202,5,5,223,202,5,5,224,202,5,5,225,202,5,5,226,202,5,5,227,202,5,5,228,202,5,5,229,202,5,5,230,202,5,5,231,202,5,5,152,194,5,5,232,202,5,5,233,202,5,5,234,202,5,5,235,202,5,5,236,202,5,5,168,210,5,5,169,210,5,5,170,210,5,5,171,210,5,5,172,210,5,5,173,210,5,5,174,210,5,5,175,210,5,5,176,210,5,5,177,210,5,5,178,210,5,5,179,210,5,5,180,210,5,5,181,210,5,5,182,210,5,5,183,210,5,5,184,210,5,5,185,210,5,5,186,210,5,5,187,210,5,5,188,210,5,5,189,210,5,5,190,210,5,5,191,210,5,5,192,210,5,5,193,210,5,5,194,210,5,5,195,210,5,5,196,210,5,5,197,210,5,5,212,210,5,5,159,217,5,5,160,217,5,5,161,217,5,5,162,217,5,5,163,217,5,5,164,217,5,5,165,217,5,5,166,217,5,5,167,217,5,5,168,217,5,5,169,217,5,5,170,217,5,5,171,217,5,5,172,217,5,5,173,217,5,5,174,217,5,5,175,217,5,5,176,217,5,5,177,217,5,5,178,217,5,5,179,217,5,5,180,217,5,5,181,217,5,5,182,217,5,5,183,217,5,5,184,217,5,5,185,217,5,5,186,217,5,5,148,224,5,5,149,224,5,5,150,224,5,5,151,224,5,5,152,224,5,5,153,224,5,5,154,224,5,5,155,224,5,5,156,224,5,5,157,224,5,5,158,224,5,5,159,224,5,5,160,224,5,5,161,224,5,5,162,224,5,5,163,224,5,5,164,224,5,5,165,224,5,5,166,224,5,5,131,230,5,5,132,230,5,5,133,230,5,5,134,230,5,5,135,230,5,5,178,224,5,5,136,230,5,5,137,230,5,5,138,230,5,5,139,230,5,5,140,230,5,5,141,230,5,5,142,230,5,5,143,230,5,5,144,230,5,5,145,230,5,5,146,230,5,5,167,224,5,5,147,230,5,5,148,230,5,5,149,230,5,5,80,235,5,5,253,238,5,5,81,235,5,5,82,235,5,5,83,235,5,5,252,238,5,5,254,238,5,5,255,238,5,5,45,242,5,5,46,242,5,5,47,242,5,5,48,242,5,5,49,242,5,5,50,242,5,5,51,242,5,5,178,244,5,5,179,244,5,5,180,244,5,5,107,246,5,5,108,246,5,5,109,246,5,5,188,247,5,5,190,248,5,5,191,248,5,5,110,157,5,5,111,157,5,5,112,157,5,5,113,157,5,5,27,158,5,5,50,159,5,5,215,160,5,5,216,160,5,5,217,160,5,5,218,160,5,5,118,163,5,5,119,163,5,5,120,163,5,5,121,163,5,5,122,163,5,5,142,167,5,5,143,167,5,5,144,167,5,5,145,167,5,5,146,167,5,5,147,167,5,5,148,167,5,5,149,167,5,5,150,167,5,5,241,172,5,5,242,172,5,5,243,172,5,5,98,179,5,5,99,179,5,5,100,179,5,5,217,186,5,5,218,186,5,5,219,186,5,5,172,194,5,5,220,186,5,5,175,194,5,5,248,202,5,5,213,210,5,5,251,202,5,5,214,210,5,5,179,224,5,5,180,224,5,5,155,230,5,5,156,230,5,5,9,239,5,5,59,242,5,5,60,242,5,5,113,246,5,5,114,157,5,5,51,159,5,5,52,159,5,5,53,159,5,5,54,159,5,5,220,160,5,5,221,160,5,5,222,160,5,5,223,160,5,5,224,160,5,5,123,163,5,5,124,163,5,5,125,163,5,5,126,163,5,5,127,163,5,5,128,163,5,5,129,163,5,5,130,163,5,5,131,163,5,5,153,167,5,5,154,167,5,5,155,167,5,5,156,167,5,5,157,167,5,5,158,167,5,5,159,167,5,5,160,167,5,5,161,167,5,5,162,167,5,5,163,167,5,5,164,167,5,5,165,167,5,5,166,167,5,5,167,167,5,5,244,172,5,5,245,172,5,5,246,172,5,5,247,172,5,5,248,172,5,5,103,179,5,5,249,172,5,5,250,172,5,5,251,172,5,5,252,172,5,5,104,179,5,5,105,179,5,5,106,179,5,5,107,179,5,5,108,179,5,5,109,179,5,5,110,179,5,5,111,179,5,5,112,179,5,5,113,179,5,5,114,179,5,5,115,179,5,5,116,179,5,5,117,179,5,5,118,179,5,5,119,179,5,5,120,179,5,5,121,179,5,5,122,179,5,5,221,186,5,5,222,186,5,5,223,186,5,5,224,186,5,5,225,186,5,5,226,186,5,5,227,186,5,5,228,186,5,5,229,186,5,5,230,186,5,5,231,186,5,5,176,194,5,5,177,194,5,5,178,194,5,5,179,194,5,5,180,194,5,5,181,194,5,5,182,194,5,5,183,194,5,5,184,194,5,5,185,194,5,5,186,194,5,5,187,194,5,5,252,202,5,5,253,202,5,5,254,202,5,5,255,202,5,5,2,203,5,5,3,203,5,5,4,203,5,5,5,203,5,5,216,210,5,5,217,210,5,5,218,210,5,5,219,210,5,5,220,210,5,5,221,210,5,5,222,210,5,5,223,210,5,5,224,210,5,5,225,210,5,5,226,210,5,5,201,217,5,5,188,194,5,5,202,217,5,5,203,217,5,5,204,217,5,5,205,217,5,5,181,224,5,5,182,224,5,5,157,230,5,5,158,230,5,5,10,239,5,5,11,239,5,5,12,239,5,5,61,242,5,5,183,244,5,5,115,157,5,5,55,159,5,5,225,160,5,5,226,160,5,5,227,160,5,5,132,163,5,5,133,163,5,5,134,163,5,5,169,167,5,5,254,172,5,5,255,172,5,5,123,179,5,5,124,179,5,5,125,179,5,5,2,173,5,5,234,186,5,5,235,186,5,5,236,186,5,5,192,194,5,5,193,194,5,5,194,194,5,5,227,210,5,5,207,217,5,5,118,157,5,5,28,158,5,5,29,158,5,5,56,159,5,5,57,159,5,5,58,159,5,5,59,159,5,5,228,160,5,5,229,160,5,5,230,160,5,5,170,167,5,5,171,167,5,5,3,173,5,5,4,173,5,5,5,173,5,5,195,194,5,5,8,203,5,5,9,203,5,5,228,210,5,5,119,157,5,5,30,158,5,5,31,158,5,5,231,160,5,5,232,160,5,5,233,160,5,5,135,163,5,5,136,163,5,5,137,163,5,5,138,163,5,5,139,163,5,5,172,167,5,5,6,173,5,5,7,173,5,5,196,194,5,5,197,194,5,5,10,203,5,5,11,203,5,5,12,203,5,5,209,217,5,5,159,230,5,5,160,230,5,5,122,157,5,5,178,157,5,5,32,158,5,5,60,159,5,5,61,159,5,5,234,160,5,5,140,163,5,5,141,163,5,5,142,163,5,5,143,163,5,5,144,163,5,5,145,163,5,5,173,167,5,5,174,167,5,5,175,167,5,5,176,167,5,5,177,167,5,5,178,167,5,5,179,167,5,5,8,173,5,5,9,173,5,5,10,173,5,5,11,173,5,5,12,173,5,5,126,179,5,5,127,179,5,5,128,179,5,5,129,179,5,5,130,179,5,5,131,179,5,5,132,179,5,5,133,179,5,5,134,179,5,5,237,186,5,5,238,186,5,5,239,186,5,5,240,186,5,5,241,186,5,5,198,194,5,5,199,194,5,5,242,186,5,5,200,194,5,5,229,210,5,5,230,210,5,5,210,217,5,5,211,217,5,5,212,217,5,5,213,217,5,5,161,230,5,5,87,235,5,5,88,235,5,5,13,239,5,5,184,244,5,5,192,248,5,5,123,157,5,5,33,158,5,5,236,160,5,5,124,157,5,5,35,158,5,5,62,159,5,5,63,159,5,5,64,159,5,5,65,159,5,5,66,159,5,5,237,160,5,5,238,160,5,5,239,160,5,5,240,160,5,5,241,160,5,5,242,160,5,5,243,160,5,5,244,160,5,5,245,160,5,5,246,160,5,5,247,160,5,5,248,160,5,5,146,163,5,5,147,163,5,5,148,163,5,5,149,163,5,5,150,163,5,5,151,163,5,5,152,163,5,5,153,163,5,5,154,163,5,5,172,163,5,5,155,163,5,5,156,163,5,5,157,163,5,5,158,163,5,5,159,163,5,5,160,163,5,5,161,163,5,5,162,163,5,5,163,163,5,5,164,163,5,5,165,163,5,5,166,163,5,5,167,163,5,5,168,163,5,5,169,163,5,5,180,167,5,5,181,167,5,5,182,167,5,5,183,167,5,5,184,167,5,5,185,167,5,5,186,167,5,5,187,167,5,5,188,167,5,5,189,167,5,5,190,167,5,5,191,167,5,5,192,167,5,5,193,167,5,5,194,167,5,5,195,167,5,5,196,167,5,5,197,167,5,5,198,167,5,5,199,167,5,5,200,167,5,5,201,167,5,5,202,167,5,5,203,167,5,5,204,167,5,5,205,167,5,5,206,167,5,5,207,167,5,5,208,167,5,5,209,167,5,5,210,167,5,5,211,167,5,5,212,167,5,5,213,167,5,5,214,167,5,5,215,167,5,5,216,167,5,5,217,167,5,5,218,167,5,5,219,167,5,5,220,167,5,5,13,173,5,5,14,173,5,5,15,173,5,5,16,173,5,5,17,173,5,5,18,173,5,5,19,173,5,5,20,173,5,5,21,173,5,5,22,173,5,5,23,173,5,5,24,173,5,5,25,173,5,5,26,173,5,5,27,173,5,5,28,173,5,5,29,173,5,5,30,173,5,5,31,173,5,5,32,173,5,5,33,173,5,5,34,173,5,5,35,173,5,5,36,173,5,5,37,173,5,5,38,173,5,5,39,173,5,5,40,173,5,5,41,173,5,5,42,173,5,5,43,173,5,5,44,173,5,5,45,173,5,5,46,173,5,5,137,179,5,5,138,179,5,5,139,179,5,5,140,179,5,5,141,179,5,5,142,179,5,5,143,179,5,5,144,179,5,5,145,179,5,5,146,179,5,5,147,179,5,5,148,179,5,5,149,179,5,5,150,179,5,5,151,179,5,5,152,179,5,5,51,173,5,5,153,179,5,5,154,179,5,5,155,179,5,5,156,179,5,5,157,179,5,5,158,179,5,5,159,179,5,5,160,179,5,5,161,179,5,5,162,179,5,5,163,179,5,5,164,179,5,5,165,179,5,5,243,186,5,5,244,186,5,5,245,186,5,5,246,186,5,5,247,186,5,5,248,186,5,5,249,186,5,5,250,186,5,5,251,186,5,5,252,186,5,5,253,186,5,5,254,186,5,5,255,186,5,5,2,187,5,5,3,187,5,5,4,187,5,5,5,187,5,5,6,187,5,5,7,187,5,5,8,187,5,5,9,187,5,5,10,187,5,5,11,187,5,5,12,187,5,5,13,187,5,5,14,187,5,5,15,187,5,5,16,187,5,5,17,187,5,5,18,187,5,5,19,187,5,5,20,187,5,5,21,187,5,5,22,187,5,5,23,187,5,5,24,187,5,5,25,187,5,5,26,187,5,5,27,187,5,5,28,187,5,5,29,187,5,5,30,187,5,5,31,187,5,5,203,194,5,5,204,194,5,5,205,194,5,5,206,194,5,5,207,194,5,5,208,194,5,5,209,194,5,5,210,194,5,5,211,194,5,5,212,194,5,5,213,194,5,5,214,194,5,5,215,194,5,5,216,194,5,5,217,194,5,5,218,194,5,5,219,194,5,5,220,194,5,5,221,194,5,5,222,194,5,5,223,194,5,5,224,194,5,5,225,194,5,5,226,194,5,5,227,194,5,5,14,203,5,5,228,194,5,5,229,194,5,5,230,194,5,5,231,194,5,5,232,194,5,5,233,194,5,5,234,194,5,5,235,194,5,5,236,194,5,5,237,194,5,5,238,194,5,5,239,194,5,5,240,194,5,5,241,194,5,5,242,194,5,5,243,194,5,5,244,194,5,5,245,194,5,5,246,194,5,5,15,203,5,5,16,203,5,5,17,203,5,5,18,203,5,5,19,203,5,5,20,203,5,5,21,203,5,5,22,203,5,5,23,203,5,5,24,203,5,5,25,203,5,5,26,203,5,5,27,203,5,5,251,194,5,5,28,203,5,5,29,203,5,5,30,203,5,5,31,203,5,5,32,203,5,5,33,203,5,5,34,203,5,5,35,203,5,5,36,203,5,5,37,203,5,5,38,203,5,5,231,210,5,5,232,210,5,5,233,210,5,5,234,210,5,5,235,210,5,5,236,210,5,5,237,210,5,5,238,210,5,5,239,210,5,5,240,210,5,5,241,210,5,5,242,210,5,5,243,210,5,5,244,210,5,5,245,210,5,5,246,210,5,5,247,210,5,5,248,210,5,5,249,210,5,5,250,210,5,5,251,210,5,5,252,210,5,5,253,210,5,5,254,210,5,5,215,217,5,5,216,217,5,5,217,217,5,5,218,217,5,5,219,217,5,5,220,217,5,5,221,217,5,5,222,217,5,5,223,217,5,5,224,217,5,5,225,217,5,5,226,217,5,5,227,217,5,5,228,217,5,5,229,217,5,5,230,217,5,5,231,217,5,5,232,217,5,5,233,217,5,5,234,217,5,5,235,217,5,5,236,217,5,5,237,217,5,5,183,224,5,5,184,224,5,5,185,224,5,5,186,224,5,5,187,224,5,5,188,224,5,5,189,224,5,5,190,224,5,5,191,224,5,5,192,224,5,5,193,224,5,5,194,224,5,5,195,224,5,5,196,224,5,5,197,224,5,5,198,224,5,5,199,224,5,5,162,230,5,5,163,230,5,5,164,230,5,5,165,230,5,5,172,230,5,5,166,230,5,5,167,230,5,5,168,230,5,5,169,230,5,5,89,235,5,5,90,235,5,5,91,235,5,5,14,239,5,5,15,239,5,5,16,239,5,5,62,242,5,5,63,242,5,5,64,242,5,5,65,242,5,5,66,242,5,5,185,244,5,5,67,242,5,5,186,244,5,5,114,246,5,5,187,244,5,5,188,244,5,5,115,246,5,5,116,246,5,5,117,246,5,5,118,246,5,5,119,246,5,5,189,247,5,5,120,246,5,5,190,247,5,5,193,248,5,5,191,247,5,5,125,157,5,5,46,157,5,5,126,157,5,5,250,160,5,5,251,160,5,5,173,163,5,5,166,165,5,5,36,187,5,5,37,187,5,5,241,217,5,5,127,157,5,5,67,159,5,5,68,159,5,5,69,159,5,5,252,160,5,5,253,160,5,5,174,163,5,5,52,173,5,5,53,173,5,5,169,179,5,5,252,194,5,5,43,203,5,5,128,157,5,5,129,157,5,5,130,157,5,5,36,158,5,5,175,163,5,5,224,167,5,5,54,173,5,5,55,173,5,5,56,173,5,5,57,173,5,5,58,173,5,5,171,179,5,5,254,194,5,5,131,157,5,5,37,158,5,5,38,158,5,5,39,158,5,5,70,159,5,5,71,159,5,5,72,159,5,5,73,159,5,5,254,160,5,5,255,160,5,5,2,161,5,5,176,163,5,5,177,163,5,5,178,163,5,5,179,163,5,5,180,163,5,5,181,163,5,5,182,163,5,5,183,163,5,5,226,167,5,5,227,167,5,5,228,167,5,5,229,167,5,5,230,167,5,5,231,167,5,5,232,167,5,5,233,167,5,5,234,167,5,5,235,167,5,5,236,167,5,5,237,167,5,5,59,173,5,5,60,173,5,5,61,173,5,5,62,173,5,5,63,173,5,5,64,173,5,5,65,173,5,5,66,173,5,5,67,173,5,5,68,173,5,5,69,173,5,5,172,179,5,5,173,179,5,5,174,179,5,5,175,179,5,5,176,179,5,5,177,179,5,5,178,179,5,5,179,179,5,5,180,179,5,5,181,179,5,5,39,187,5,5,40,187,5,5,41,187,5,5,42,187,5,5,43,187,5,5,44,187,5,5,45,187,5,5,46,187,5,5,47,187,5,5,48,187,5,5,49,187,5,5,3,195,5,5,50,187,5,5,4,195,5,5,5,195,5,5,6,195,5,5,7,195,5,5,8,195,5,5,9,195,5,5,10,195,5,5,11,195,5,5,12,195,5,5,15,195,5,5,13,195,5,5,44,203,5,5,45,203,5,5,46,203,5,5,47,203,5,5,48,203,5,5,49,203,5,5,220,206,5,5,5,211,5,5,6,211,5,5,7,211,5,5,8,211,5,5,9,211,5,5,10,211,5,5,11,211,5,5,12,211,5,5,13,211,5,5,242,217,5,5,14,211,5,5,243,217,5,5,244,217,5,5,245,217,5,5,246,217,5,5,247,217,5,5,248,217,5,5,249,217,5,5,16,211,5,5,250,217,5,5,251,217,5,5,200,224,5,5,201,224,5,5,202,224,5,5,253,217,5,5,173,230,5,5,174,230,5,5,175,230,5,5,92,235,5,5,93,235,5,5,207,224,5,5,21,239,5,5,68,242,5,5,132,157,5,5,76,159,5,5,6,161,5,5,7,161,5,5,8,161,5,5,239,167,5,5,240,167,5,5,50,203,5,5,134,157,5,5,40,158,5,5,77,159,5,5,71,173,5,5,16,195,5,5,135,157,5,5,78,159,5,5,79,159,5,5,80,159,5,5,81,159,5,5,9,161,5,5,10,161,5,5,11,161,5,5,188,163,5,5,189,163,5,5,190,163,5,5,191,163,5,5,192,163,5,5,193,163,5,5,194,163,5,5,195,163,5,5,196,163,5,5,197,163,5,5,198,163,5,5,199,163,5,5,200,163,5,5,201,163,5,5,242,167,5,5,243,167,5,5,244,167,5,5,241,167,5,5,245,167,5,5,246,167,5,5,72,173,5,5,247,167,5,5,248,167,5,5,249,167,5,5,250,167,5,5,73,173,5,5,74,173,5,5,75,173,5,5,76,173,5,5,77,173,5,5,78,173,5,5,79,173,5,5,185,179,5,5,186,179,5,5,187,179,5,5,188,179,5,5,189,179,5,5,190,179,5,5,191,179,5,5,192,179,5,5,193,179,5,5,81,173,5,5,51,187,5,5,52,187,5,5,53,187,5,5,54,187,5,5,55,187,5,5,56,187,5,5,57,187,5,5,58,187,5,5,59,187,5,5,60,187,5,5,61,187,5,5,62,187,5,5,17,195,5,5,63,187,5,5,18,195,5,5,19,195,5,5,20,195,5,5,21,195,5,5,22,195,5,5,24,195,5,5,51,203,5,5,52,203,5,5,53,203,5,5,54,203,5,5,55,203,5,5,23,195,5,5,56,203,5,5,57,203,5,5,17,211,5,5,18,211,5,5,19,211,5,5,20,211,5,5,21,211,5,5,22,211,5,5,23,211,5,5,24,211,5,5,25,211,5,5,26,211,5,5,27,211,5,5,28,211,5,5,29,211,5,5,254,217,5,5,255,217,5,5,30,211,5,5,2,218,5,5,3,218,5,5,4,218,5,5,5,218,5,5,6,218,5,5,7,218,5,5,8,218,5,5,9,218,5,5,208,224,5,5,209,224,5,5,210,224,5,5,211,224,5,5,212,224,5,5,213,224,5,5,94,235,5,5,23,239,5,5,24,239,5,5,70,242,5,5,71,242,5,5,72,242,5,5,190,244,5,5,121,246,5,5,104,249,5,5,136,157,5,5,12,161,5,5,252,167,5,5,202,163,5,5,253,167,5,5,254,167,5,5,82,173,5,5,83,173,5,5,84,173,5,5,194,179,5,5,137,157,5,5,41,158,5,5,42,158,5,5,82,159,5,5,13,161,5,5,203,163,5,5,204,163,5,5,205,163,5,5,2,168,5,5,87,173,5,5,88,173,5,5,195,179,5,5,31,211,5,5,138,157,5,5,43,158,5,5,83,159,5,5,14,161,5,5,15,161,5,5,16,161,5,5,25,195,5,5,59,203,5,5,139,157,5,5,44,158,5,5,45,158,5,5,46,158,5,5,84,159,5,5,85,159,5,5,17,161,5,5,18,161,5,5,19,161,5,5,20,161,5,5,206,163,5,5,207,163,5,5,208,163,5,5,209,163,5,5,3,168,5,5,4,168,5,5,5,168,5,5,6,168,5,5,7,168,5,5,8,168,5,5,9,168,5,5,10,168,5,5,11,168,5,5,12,168,5,5,89,173,5,5,90,173,5,5,91,173,5,5,92,173,5,5,93,173,5,5,196,179,5,5,197,179,5,5,198,179,5,5,199,179,5,5,64,187,5,5,65,187,5,5,66,187,5,5,67,187,5,5,68,187,5,5,69,187,5,5,26,195,5,5,27,195,5,5,28,195,5,5,29,195,5,5,30,195,5,5,60,203,5,5,61,203,5,5,62,203,5,5,63,203,5,5,32,211,5,5,33,211,5,5,34,211,5,5,36,211,5,5,10,218,5,5,11,218,5,5,12,218,5,5,214,224,5,5,215,224,5,5,178,230,5,5,95,235,5,5,122,246,5,5,192,247,5,5,140,157,5,5,142,157,5,5,86,159,5,5,21,161,5,5,14,168,5,5,15,168,5,5,95,173,5,5,71,187,5,5,31,195,5,5,64,203,5,5,65,203,5,5,216,224,5,5,217,224,5,5,96,235,5,5,97,235,5,5,26,239,5,5,223,249,5,5,143,157,5,5,211,163,5,5,212,163,5,5,213,163,5,5,96,173,5,5,97,173,5,5,200,179,5,5,201,179,5,5,72,187,5,5,151,191,5,5,73,187,5,5,74,187,5,5,32,195,5,5,67,203,5,5,37,211,5,5,38,211,5,5,13,218,5,5,123,246,5,5,144,157,5,5,22,161,5,5,23,161,5,5,214,163,5,5,215,163,5,5,216,163,5,5,217,163,5,5,218,163,5,5,219,163,5,5,18,168,5,5,19,168,5,5,20,168,5,5,21,168,5,5,22,168,5,5,23,168,5,5,24,168,5,5,25,168,5,5,26,168,5,5,98,173,5,5,99,173,5,5,100,173,5,5,101,173,5,5,102,173,5,5,103,173,5,5,104,173,5,5,105,173,5,5,106,173,5,5,203,179,5,5,204,179,5,5,205,179,5,5,206,179,5,5,207,179,5,5,208,179,5,5,107,173,5,5,209,179,5,5,75,187,5,5,76,187,5,5,77,187,5,5,78,187,5,5,33,195,5,5,79,187,5,5,80,187,5,5,81,187,5,5,82,187,5,5,83,187,5,5,84,187,5,5,85,187,5,5,86,187,5,5,87,187,5,5,88,187,5,5,34,195,5,5,35,195,5,5,36,195,5,5,37,195,5,5,38,195,5,5,39,195,5,5,40,195,5,5,68,203,5,5,69,203,5,5,70,203,5,5,71,203,5,5,72,203,5,5,40,211,5,5,14,218,5,5,41,211,5,5,42,211,5,5,15,218,5,5,44,211,5,5,16,218,5,5,17,218,5,5,18,218,5,5,19,218,5,5,220,224,5,5,221,224,5,5,179,230,5,5,180,230,5,5,27,239,5,5,73,242,5,5,74,242,5,5,191,244,5,5,48,158,5,5,145,157,5,5,88,159,5,5,49,158,5,5,90,159,5,5,25,161,5,5,91,159,5,5,92,159,5,5,26,161,5,5,224,163,5,5,225,163,5,5,226,163,5,5,27,161,5,5,227,163,5,5,228,163,5,5,229,163,5,5,28,161,5,5,29,161,5,5,30,161,5,5,31,161,5,5,230,163,5,5,231,163,5,5,32,161,5,5,33,161,5,5,34,161,5,5,232,163,5,5,27,168,5,5,28,168,5,5,234,163,5,5,29,168,5,5,235,163,5,5,30,168,5,5,236,163,5,5,237,163,5,5,31,168,5,5,238,163,5,5,239,163,5,5,240,163,5,5,32,168,5,5,241,163,5,5,242,163,5,5,243,163,5,5,244,163,5,5,245,163,5,5,246,163,5,5,247,163,5,5,248,163,5,5,249,163,5,5,250,163,5,5,251,163,5,5,33,168,5,5,252,163,5,5,253,163,5,5,254,163,5,5,255,163,5,5,2,164,5,5,3,164,5,5,4,164,5,5,34,168,5,5,5,164,5,5,35,168,5,5,6,164,5,5,36,168,5,5,37,168,5,5,7,164,5,5,8,164,5,5,9,164,5,5,10,164,5,5,38,168,5,5,39,168,5,5,40,168,5,5,41,168,5,5,42,168,5,5,43,168,5,5,44,168,5,5,108,173,5,5,45,168,5,5,46,168,5,5,47,168,5,5,109,173,5,5,48,168,5,5,49,168,5,5,50,168,5,5,51,168,5,5,52,168,5,5,110,173,5,5,53,168,5,5,54,168,5,5,55,168,5,5,56,168,5,5,111,173,5,5,57,168,5,5,58,168,5,5,112,173,5,5,59,168,5,5,60,168,5,5,113,173,5,5,114,173,5,5,115,173,5,5,61,168,5,5,62,168,5,5,116,173,5,5,63,168,5,5,64,168,5,5,65,168,5,5,66,168,5,5,67,168,5,5,68,168,5,5,69,168,5,5,70,168,5,5,117,173,5,5,71,168,5,5,72,168,5,5,73,168,5,5,74,168,5,5,75,168,5,5,118,173,5,5,119,173,5,5,120,173,5,5,76,168,5,5,121,173,5,5,122,173,5,5,77,168,5,5,78,168,5,5,79,168,5,5,123,173,5,5,211,179,5,5,124,173,5,5,125,173,5,5,126,173,5,5,127,173,5,5,128,173,5,5,129,173,5,5,130,173,5,5,131,173,5,5,132,173,5,5,212,179,5,5,133,173,5,5,134,173,5,5,135,173,5,5,213,179,5,5,214,179,5,5,136,173,5,5,137,173,5,5,138,173,5,5,139,173,5,5,215,179,5,5,216,179,5,5,140,173,5,5,141,173,5,5,217,179,5,5,218,179,5,5,142,173,5,5,143,173,5,5,219,179,5,5,144,173,5,5,145,173,5,5,146,173,5,5,147,173,5,5,148,173,5,5,220,179,5,5,149,173,5,5,221,179,5,5,150,173,5,5,222,179,5,5,151,173,5,5,223,179,5,5,152,173,5,5,153,173,5,5,154,173,5,5,224,179,5,5,155,173,5,5,225,179,5,5,156,173,5,5,157,173,5,5,158,173,5,5,226,179,5,5,227,179,5,5,228,179,5,5,229,179,5,5,230,179,5,5,159,173,5,5,160,173,5,5,161,173,5,5,162,173,5,5,163,173,5,5,164,173,5,5,233,179,5,5,91,187,5,5,234,179,5,5,235,179,5,5,236,179,5,5,237,179,5,5,238,179,5,5,239,179,5,5,92,187,5,5,240,179,5,5,241,179,5,5,93,187,5,5,94,187,5,5,242,179,5,5,243,179,5,5,244,179,5,5,245,179,5,5,246,179,5,5,95,187,5,5,247,179,5,5,248,179,5,5,249,179,5,5,250,179,5,5,251,179,5,5,252,179,5,5,253,179,5,5,96,187,5,5,254,179,5,5,255,179,5,5,2,180,5,5,3,180,5,5,4,180,5,5,5,180,5,5,6,180,5,5,97,187,5,5,98,187,5,5,7,180,5,5,99,187,5,5,100,187,5,5,101,187,5,5,8,180,5,5,9,180,5,5,102,187,5,5,10,180,5,5,103,187,5,5,104,187,5,5,105,187,5,5,11,180,5,5,12,180,5,5,13,180,5,5,110,187,5,5,111,187,5,5,42,195,5,5,43,195,5,5,112,187,5,5,113,187,5,5,44,195,5,5,114,187,5,5,115,187,5,5,45,195,5,5,116,187,5,5,117,187,5,5,118,187,5,5,119,187,5,5,120,187,5,5,121,187,5,5,122,187,5,5,46,195,5,5,123,187,5,5,124,187,5,5,47,195,5,5,125,187,5,5,126,187,5,5,127,187,5,5,128,187,5,5,48,195,5,5,129,187,5,5,130,187,5,5,49,195,5,5,131,187,5,5,50,195,5,5,132,187,5,5,133,187,5,5,51,195,5,5,52,195,5,5,134,187,5,5,135,187,5,5,136,187,5,5,53,195,5,5,137,187,5,5,138,187,5,5,139,187,5,5,140,187,5,5,141,187,5,5,142,187,5,5,143,187,5,5,144,187,5,5,145,187,5,5,54,195,5,5,55,195,5,5,56,195,5,5,57,195,5,5,146,187,5,5,58,195,5,5,147,187,5,5,148,187,5,5,149,187,5,5,59,195,5,5,60,195,5,5,61,195,5,5,150,187,5,5,151,187,5,5,152,187,5,5,153,187,5,5,62,195,5,5,63,195,5,5,64,195,5,5,73,203,5,5,65,195,5,5,66,195,5,5,67,195,5,5,74,203,5,5,68,195,5,5,75,203,5,5,69,195,5,5,70,195,5,5,71,195,5,5,72,195,5,5,73,195,5,5,74,195,5,5,75,195,5,5,76,203,5,5,77,203,5,5,76,195,5,5,77,195,5,5,78,195,5,5,78,203,5,5,79,195,5,5,79,203,5,5,80,195,5,5,81,195,5,5,82,195,5,5,83,195,5,5,80,203,5,5,84,195,5,5,81,203,5,5,85,195,5,5,86,195,5,5,87,195,5,5,88,195,5,5,89,195,5,5,90,195,5,5,91,195,5,5,82,203,5,5,92,195,5,5,83,203,5,5,84,203,5,5,85,203,5,5,93,195,5,5,94,195,5,5,95,195,5,5,86,203,5,5,96,195,5,5,97,195,5,5,98,195,5,5,99,195,5,5,100,195,5,5,101,195,5,5,102,195,5,5,90,203,5,5,45,211,5,5,91,203,5,5,92,203,5,5,93,203,5,5,46,211,5,5,94,203,5,5,95,203,5,5,96,203,5,5,97,203,5,5,98,203,5,5,99,203,5,5,47,211,5,5,100,203,5,5,101,203,5,5,102,203,5,5,103,203,5,5,48,211,5,5,104,203,5,5,105,203,5,5,49,211,5,5,106,203,5,5,107,203,5,5,108,203,5,5,50,211,5,5,109,203,5,5,51,211,5,5,52,211,5,5,110,203,5,5,111,203,5,5,112,203,5,5,113,203,5,5,53,211,5,5,54,211,5,5,114,203,5,5,115,203,5,5,55,211,5,5,116,203,5,5,117,203,5,5,118,203,5,5,119,203,5,5,56,211,5,5,120,203,5,5,58,211,5,5,59,211,5,5,60,211,5,5,20,218,5,5,61,211,5,5,21,218,5,5,62,211,5,5,22,218,5,5,63,211,5,5,64,211,5,5,23,218,5,5,24,218,5,5,65,211,5,5,66,211,5,5,67,211,5,5,68,211,5,5,69,211,5,5,70,211,5,5,25,218,5,5,71,211,5,5,26,218,5,5,27,218,5,5,103,195,5,5,72,211,5,5,73,211,5,5,28,218,5,5,74,211,5,5,42,218,5,5,29,218,5,5,75,211,5,5,30,218,5,5,76,211,5,5,77,211,5,5,78,211,5,5,79,211,5,5,80,211,5,5,31,218,5,5,81,211,5,5,32,218,5,5,33,218,5,5,82,211,5,5,83,211,5,5,34,218,5,5,84,211,5,5,35,218,5,5,36,218,5,5,85,211,5,5,86,211,5,5,37,218,5,5,38,218,5,5,39,218,5,5,40,218,5,5,87,211,5,5,41,218,5,5,88,211,5,5,43,218,5,5,222,224,5,5,44,218,5,5,223,224,5,5,45,218,5,5,46,218,5,5,47,218,5,5,48,218,5,5,224,224,5,5,49,218,5,5,50,218,5,5,51,218,5,5,52,218,5,5,225,224,5,5,226,224,5,5,53,218,5,5,227,224,5,5,54,218,5,5,55,218,5,5,56,218,5,5,228,224,5,5,57,218,5,5,58,218,5,5,229,224,5,5,59,218,5,5,60,218,5,5,61,218,5,5,62,218,5,5,230,224,5,5,63,218,5,5,64,218,5,5,231,224,5,5,232,224,5,5,65,218,5,5,66,218,5,5,67,218,5,5,68,218,5,5,69,218,5,5,70,218,5,5,71,218,5,5,72,218,5,5,233,224,5,5,73,218,5,5,234,224,5,5,182,230,5,5,235,224,5,5,236,224,5,5,237,224,5,5,238,224,5,5,239,224,5,5,7,225,5,5,183,230,5,5,240,224,5,5,241,224,5,5,242,224,5,5,243,224,5,5,244,224,5,5,184,230,5,5,185,230,5,5,245,224,5,5,246,224,5,5,247,224,5,5,186,230,5,5,248,224,5,5,187,230,5,5,249,224,5,5,188,230,5,5,250,224,5,5,251,224,5,5,252,224,5,5,253,224,5,5,254,224,5,5,189,230,5,5,255,224,5,5,2,225,5,5,3,225,5,5,98,235,5,5,99,235,5,5,190,230,5,5,100,235,5,5,191,230,5,5,192,230,5,5,193,230,5,5,194,230,5,5,195,230,5,5,196,230,5,5,101,235,5,5,197,230,5,5,198,230,5,5,199,230,5,5,102,235,5,5,200,230,5,5,201,230,5,5,202,230,5,5,203,230,5,5,204,230,5,5,104,235,5,5,105,235,5,5,106,235,5,5,28,239,5,5,107,235,5,5,108,235,5,5,29,239,5,5,109,235,5,5,110,235,5,5,30,239,5,5,111,235,5,5,112,235,5,5,31,239,5,5,32,239,5,5,33,239,5,5,75,242,5,5,77,242,5,5,78,242,5,5,36,239,5,5,192,244,5,5,193,244,5,5,194,244,5,5,124,246,5,5,193,247,5,5,194,247,5,5,125,246,5,5,195,247,5,5,196,247,5,5,105,249,5,5,106,249,5,5,86,250,5,5,50,158,5,5,94,159,5,5,95,159,5,5,96,159,5,5,36,161,5,5,37,161,5,5,38,161,5,5,39,161,5,5,40,161,5,5,12,164,5,5,13,164,5,5,14,164,5,5,84,168,5,5,85,168,5,5,86,168,5,5,87,168,5,5,170,173,5,5,24,180,5,5,163,187,5,5,164,187,5,5,165,187,5,5,166,187,5,5,110,195,5,5,111,195,5,5,126,203,5,5,127,203,5,5,128,203,5,5,129,203,5,5,130,203,5,5,131,203,5,5,125,203,5,5,91,211,5,5,92,211,5,5,93,211,5,5,94,211,5,5,95,211,5,5,96,211,5,5,80,218,5,5,81,218,5,5,82,218,5,5,9,225,5,5,8,225,5,5,206,230,5,5,114,235,5,5,207,230,5,5,128,246,5,5,51,158,5,5,52,158,5,5,53,158,5,5,97,159,5,5,16,164,5,5,17,164,5,5,18,164,5,5,88,168,5,5,89,168,5,5,90,168,5,5,91,168,5,5,171,173,5,5,172,173,5,5,173,173,5,5,25,180,5,5,26,180,5,5,27,180,5,5,28,180,5,5,167,187,5,5,113,195,5,5,114,195,5,5,54,158,5,5,146,157,5,5,147,157,5,5,55,158,5,5,105,159,5,5,98,159,5,5,99,159,5,5,100,159,5,5,101,159,5,5,102,159,5,5,103,159,5,5,104,159,5,5,41,161,5,5,42,161,5,5,43,161,5,5,44,161,5,5,45,161,5,5,46,161,5,5,47,161,5,5,48,161,5,5,62,161,5,5,49,161,5,5,50,161,5,5,51,161,5,5,52,161,5,5,53,161,5,5,54,161,5,5,55,161,5,5,56,161,5,5,57,161,5,5,58,161,5,5,59,161,5,5,60,161,5,5,61,161,5,5,19,164,5,5,20,164,5,5,21,164,5,5,22,164,5,5,23,164,5,5,24,164,5,5,25,164,5,5,26,164,5,5,27,164,5,5,28,164,5,5,29,164,5,5,75,164,5,5,30,164,5,5,31,164,5,5,32,164,5,5,33,164,5,5,34,164,5,5,35,164,5,5,92,168,5,5,36,164,5,5,37,164,5,5,38,164,5,5,39,164,5,5,40,164,5,5,41,164,5,5,42,164,5,5,43,164,5,5,44,164,5,5,45,164,5,5,46,164,5,5,47,164,5,5,48,164,5,5,49,164,5,5,50,164,5,5,51,164,5,5,52,164,5,5,53,164,5,5,54,164,5,5,55,164,5,5,56,164,5,5,57,164,5,5,58,164,5,5,59,164,5,5,60,164,5,5,61,164,5,5,62,164,5,5,63,164,5,5,64,164,5,5,65,164,5,5,66,164,5,5,67,164,5,5,68,164,5,5,69,164,5,5,70,164,5,5,71,164,5,5,72,164,5,5,73,164,5,5,93,168,5,5,94,168,5,5,95,168,5,5,96,168,5,5,97,168,5,5,98,168,5,5,99,168,5,5,100,168,5,5,101,168,5,5,102,168,5,5,103,168,5,5,104,168,5,5,105,168,5,5,106,168,5,5,107,168,5,5,108,168,5,5,109,168,5,5,110,168,5,5,111,168,5,5,112,168,5,5,113,168,5,5,114,168,5,5,115,168,5,5,116,168,5,5,117,168,5,5,118,168,5,5,119,168,5,5,120,168,5,5,121,168,5,5,122,168,5,5,123,168,5,5,124,168,5,5,125,168,5,5,126,168,5,5,127,168,5,5,128,168,5,5,129,168,5,5,130,168,5,5,131,168,5,5,132,168,5,5,133,168,5,5,174,173,5,5,134,168,5,5,135,168,5,5,136,168,5,5,137,168,5,5,138,168,5,5,139,168,5,5,140,168,5,5,141,168,5,5,142,168,5,5,143,168,5,5,144,168,5,5,145,168,5,5,175,173,5,5,146,168,5,5,147,168,5,5,148,168,5,5,149,168,5,5,150,168,5,5,151,168,5,5,152,168,5,5,153,168,5,5,154,168,5,5,155,168,5,5,156,168,5,5,157,168,5,5,158,168,5,5,177,173,5,5,178,173,5,5,179,173,5,5,180,173,5,5,181,173,5,5,182,173,5,5,183,173,5,5,184,173,5,5,29,180,5,5,30,180,5,5,185,173,5,5,186,173,5,5,187,173,5,5,188,173,5,5,189,173,5,5,190,173,5,5,191,173,5,5,192,173,5,5,193,173,5,5,194,173,5,5,195,173,5,5,31,180,5,5,196,173,5,5,197,173,5,5,198,173,5,5,199,173,5,5,200,173,5,5,201,173,5,5,202,173,5,5,203,173,5,5,32,180,5,5,204,173,5,5,205,173,5,5,206,173,5,5,207,173,5,5,208,173,5,5,209,173,5,5,210,173,5,5,33,180,5,5,211,173,5,5,212,173,5,5,213,173,5,5,214,173,5,5,215,173,5,5,216,173,5,5,217,173,5,5,218,173,5,5,34,180,5,5,35,180,5,5,36,180,5,5,219,173,5,5,220,173,5,5,221,173,5,5,222,173,5,5,223,173,5,5,224,173,5,5,225,173,5,5,226,173,5,5,227,173,5,5,228,173,5,5,229,173,5,5,230,173,5,5,38,180,5,5,39,180,5,5,40,180,5,5,41,180,5,5,42,180,5,5,43,180,5,5,44,180,5,5,45,180,5,5,46,180,5,5,47,180,5,5,168,187,5,5,48,180,5,5,49,180,5,5,50,180,5,5,51,180,5,5,52,180,5,5,53,180,5,5,54,180,5,5,55,180,5,5,169,187,5,5,56,180,5,5,57,180,5,5,58,180,5,5,59,180,5,5,60,180,5,5,61,180,5,5,62,180,5,5,63,180,5,5,64,180,5,5,65,180,5,5,66,180,5,5,67,180,5,5,68,180,5,5,69,180,5,5,70,180,5,5,71,180,5,5,72,180,5,5,73,180,5,5,74,180,5,5,75,180,5,5,76,180,5,5,77,180,5,5,78,180,5,5,79,180,5,5,80,180,5,5,81,180,5,5,82,180,5,5,83,180,5,5,84,180,5,5,85,180,5,5,86,180,5,5,87,180,5,5,88,180,5,5,89,180,5,5,90,180,5,5,91,180,5,5,92,180,5,5,93,180,5,5,94,180,5,5,95,180,5,5,96,180,5,5,170,187,5,5,171,187,5,5,172,187,5,5,173,187,5,5,174,187,5,5,175,187,5,5,176,187,5,5,177,187,5,5,178,187,5,5,179,187,5,5,180,187,5,5,181,187,5,5,182,187,5,5,183,187,5,5,184,187,5,5,185,187,5,5,186,187,5,5,187,187,5,5,188,187,5,5,189,187,5,5,190,187,5,5,191,187,5,5,192,187,5,5,193,187,5,5,194,187,5,5,195,187,5,5,196,187,5,5,197,187,5,5,198,187,5,5,199,187,5,5,200,187,5,5,201,187,5,5,202,187,5,5,203,187,5,5,204,187,5,5,205,187,5,5,206,187,5,5,207,187,5,5,208,187,5,5,115,195,5,5,209,187,5,5,210,187,5,5,211,187,5,5,212,187,5,5,213,187,5,5,214,187,5,5,215,187,5,5,116,195,5,5,216,187,5,5,217,187,5,5,218,187,5,5,219,187,5,5,220,187,5,5,221,187,5,5,222,187,5,5,223,187,5,5,224,187,5,5,225,187,5,5,226,187,5,5,227,187,5,5,228,187,5,5,229,187,5,5,117,195,5,5,230,187,5,5,231,187,5,5,232,187,5,5,233,187,5,5,234,187,5,5,235,187,5,5,236,187,5,5,237,187,5,5,238,187,5,5,239,187,5,5,240,187,5,5,241,187,5,5,118,195,5,5,119,195,5,5,9,188,5,5,242,187,5,5,243,187,5,5,244,187,5,5,245,187,5,5,246,187,5,5,247,187,5,5,248,187,5,5,249,187,5,5,250,187,5,5,251,187,5,5,252,187,5,5,120,195,5,5,121,195,5,5,122,195,5,5,123,195,5,5,124,195,5,5,125,195,5,5,126,195,5,5,210,203,5,5,127,195,5,5,128,195,5,5,129,195,5,5,130,195,5,5,131,195,5,5,132,195,5,5,133,195,5,5,134,195,5,5,135,195,5,5,136,195,5,5,137,195,5,5,138,195,5,5,139,195,5,5,140,195,5,5,141,195,5,5,142,195,5,5,143,195,5,5,144,195,5,5,145,195,5,5,146,195,5,5,147,195,5,5,148,195,5,5,149,195,5,5,150,195,5,5,151,195,5,5,152,195,5,5,153,195,5,5,154,195,5,5,155,195,5,5,156,195,5,5,101,180,5,5,157,195,5,5,158,195,5,5,132,203,5,5,159,195,5,5,160,195,5,5,161,195,5,5,133,203,5,5,162,195,5,5,163,195,5,5,164,195,5,5,165,195,5,5,166,195,5,5,134,203,5,5,167,195,5,5,168,195,5,5,169,195,5,5,170,195,5,5,171,195,5,5,172,195,5,5,173,195,5,5,174,195,5,5,175,195,5,5,176,195,5,5,177,195,5,5,178,195,5,5,179,195,5,5,180,195,5,5,181,195,5,5,182,195,5,5,183,195,5,5,184,195,5,5,185,195,5,5,186,195,5,5,135,203,5,5,136,203,5,5,137,203,5,5,138,203,5,5,139,203,5,5,140,203,5,5,141,203,5,5,142,203,5,5,143,203,5,5,144,203,5,5,145,203,5,5,146,203,5,5,147,203,5,5,148,203,5,5,149,203,5,5,150,203,5,5,151,203,5,5,152,203,5,5,153,203,5,5,154,203,5,5,155,203,5,5,156,203,5,5,157,203,5,5,158,203,5,5,159,203,5,5,160,203,5,5,161,203,5,5,162,203,5,5,163,203,5,5,164,203,5,5,165,203,5,5,166,203,5,5,167,203,5,5,168,203,5,5,169,203,5,5,170,203,5,5,171,203,5,5,97,211,5,5,172,203,5,5,173,203,5,5,174,203,5,5,175,203,5,5,176,203,5,5,211,203,5,5,177,203,5,5,178,203,5,5,98,211,5,5,179,203,5,5,180,203,5,5,181,203,5,5,182,203,5,5,183,203,5,5,184,203,5,5,99,211,5,5,185,203,5,5,186,203,5,5,187,203,5,5,100,211,5,5,188,203,5,5,189,203,5,5,190,203,5,5,191,203,5,5,192,203,5,5,193,203,5,5,194,203,5,5,195,203,5,5,196,203,5,5,197,203,5,5,198,203,5,5,101,211,5,5,102,211,5,5,103,211,5,5,104,211,5,5,105,211,5,5,106,211,5,5,107,211,5,5,187,195,5,5,108,211,5,5,109,211,5,5,110,211,5,5,166,211,5,5,111,211,5,5,112,211,5,5,113,211,5,5,114,211,5,5,115,211,5,5,116,211,5,5,117,211,5,5,118,211,5,5,119,211,5,5,120,211,5,5,196,195,5,5,121,211,5,5,122,211,5,5,123,211,5,5,124,211,5,5,125,211,5,5,126,211,5,5,83,218,5,5,84,218,5,5,127,211,5,5,128,211,5,5,129,211,5,5,130,211,5,5,85,218,5,5,86,218,5,5,87,218,5,5,131,211,5,5,132,211,5,5,133,211,5,5,134,211,5,5,135,211,5,5,136,211,5,5,137,211,5,5,138,211,5,5,88,218,5,5,139,211,5,5,140,211,5,5,141,211,5,5,142,211,5,5,143,211,5,5,144,211,5,5,89,218,5,5,145,211,5,5,146,211,5,5,90,218,5,5,147,211,5,5,92,218,5,5,93,218,5,5,148,211,5,5,94,218,5,5,10,225,5,5,95,218,5,5,96,218,5,5,97,218,5,5,98,218,5,5,99,218,5,5,100,218,5,5,101,218,5,5,102,218,5,5,103,218,5,5,104,218,5,5,105,218,5,5,106,218,5,5,107,218,5,5,108,218,5,5,109,218,5,5,110,218,5,5,111,218,5,5,112,218,5,5,113,218,5,5,114,218,5,5,115,218,5,5,116,218,5,5,117,218,5,5,118,218,5,5,119,218,5,5,120,218,5,5,121,218,5,5,122,218,5,5,167,211,5,5,123,218,5,5,124,218,5,5,125,218,5,5,126,218,5,5,127,218,5,5,128,218,5,5,129,218,5,5,130,218,5,5,131,218,5,5,132,218,5,5,133,218,5,5,134,218,5,5,135,218,5,5,136,218,5,5,137,218,5,5,138,218,5,5,139,218,5,5,140,218,5,5,141,218,5,5,142,218,5,5,11,225,5,5,12,225,5,5,13,225,5,5,14,225,5,5,15,225,5,5,16,225,5,5,17,225,5,5,18,225,5,5,19,225,5,5,20,225,5,5,21,225,5,5,143,218,5,5,22,225,5,5,23,225,5,5,24,225,5,5,208,230,5,5,25,225,5,5,26,225,5,5,27,225,5,5,209,230,5,5,28,225,5,5,29,225,5,5,30,225,5,5,31,225,5,5,32,225,5,5,33,225,5,5,34,225,5,5,35,225,5,5,36,225,5,5,210,230,5,5,37,225,5,5,38,225,5,5,39,225,5,5,40,225,5,5,41,225,5,5,42,225,5,5,211,230,5,5,212,230,5,5,213,230,5,5,214,230,5,5,215,230,5,5,216,230,5,5,117,235,5,5,217,230,5,5,115,235,5,5,218,230,5,5,219,230,5,5,116,235,5,5,220,230,5,5,221,230,5,5,222,230,5,5,223,230,5,5,224,230,5,5,225,230,5,5,226,230,5,5,118,235,5,5,52,225,5,5,119,235,5,5,120,235,5,5,121,235,5,5,122,235,5,5,123,235,5,5,124,235,5,5,125,235,5,5,126,235,5,5,127,235,5,5,128,235,5,5,129,235,5,5,130,235,5,5,37,239,5,5,131,235,5,5,132,235,5,5,133,235,5,5,134,235,5,5,135,235,5,5,136,235,5,5,38,239,5,5,39,239,5,5,40,239,5,5,41,239,5,5,42,239,5,5,43,239,5,5,44,239,5,5,45,239,5,5,46,239,5,5,47,239,5,5,195,244,5,5,48,239,5,5,80,242,5,5,81,242,5,5,82,242,5,5,83,242,5,5,84,242,5,5,85,242,5,5,86,242,5,5,87,242,5,5,196,244,5,5,197,244,5,5,198,244,5,5,129,246,5,5,130,246,5,5,131,246,5,5,132,246,5,5,133,246,5,5,197,247,5,5,134,246,5,5,198,247,5,5,135,246,5,5,136,246,5,5,199,247,5,5,200,247,5,5,201,247,5,5,202,247,5,5,195,248,5,5,196,248,5,5,107,249,5,5,57,158,5,5,63,161,5,5,239,173,5,5,197,195,5,5,53,225,5,5,58,158,5,5,59,158,5,5,64,161,5,5,65,161,5,5,76,164,5,5,77,164,5,5,78,164,5,5,79,164,5,5,80,164,5,5,169,168,5,5,170,168,5,5,240,173,5,5,241,173,5,5,242,173,5,5,243,173,5,5,244,173,5,5,245,173,5,5,246,173,5,5,102,180,5,5,103,180,5,5,104,180,5,5,105,180,5,5,106,180,5,5,107,180,5,5,108,180,5,5,11,188,5,5,12,188,5,5,13,188,5,5,14,188,5,5,15,188,5,5,16,188,5,5,17,188,5,5,18,188,5,5,19,188,5,5,20,188,5,5,21,188,5,5,22,188,5,5,23,188,5,5,24,188,5,5,25,188,5,5,198,195,5,5,31,188,5,5,199,195,5,5,200,195,5,5,201,195,5,5,202,195,5,5,203,195,5,5,204,195,5,5,205,195,5,5,206,195,5,5,207,195,5,5,208,195,5,5,209,195,5,5,210,195,5,5,211,195,5,5,213,203,5,5,214,203,5,5,212,203,5,5,215,203,5,5,216,203,5,5,217,203,5,5,168,211,5,5,169,211,5,5,170,211,5,5,54,225,5,5,148,218,5,5,149,218,5,5,150,218,5,5,151,218,5,5,152,218,5,5,153,218,5,5,154,218,5,5,55,225,5,5,56,225,5,5,57,225,5,5,58,225,5,5,230,230,5,5,231,230,5,5,232,230,5,5,233,230,5,5,51,239,5,5,89,242,5,5,90,242,5,5,60,158,5,5,82,164,5,5,172,168,5,5,113,180,5,5,114,180,5,5,216,195,5,5,32,188,5,5,33,188,5,5,34,188,5,5,217,195,5,5,218,195,5,5,218,203,5,5,60,225,5,5,144,235,5,5,200,244,5,5,204,247,5,5,61,158,5,5,83,164,5,5,115,180,5,5,116,180,5,5,35,188,5,5,36,188,5,5,219,195,5,5,223,195,5,5,220,203,5,5,171,211,5,5,172,211,5,5,61,225,5,5,234,230,5,5,62,158,5,5,106,159,5,5,174,168,5,5,175,168,5,5,176,168,5,5,177,168,5,5,250,173,5,5,251,173,5,5,37,188,5,5,38,188,5,5,224,195,5,5,225,195,5,5,221,203,5,5,227,195,5,5,173,211,5,5,156,218,5,5,62,225,5,5,235,230,5,5,236,230,5,5,146,235,5,5,108,249,5,5,63,158,5,5,178,168,5,5,179,168,5,5,180,168,5,5,254,173,5,5,255,173,5,5,2,174,5,5,3,174,5,5,117,180,5,5,118,180,5,5,119,180,5,5,120,180,5,5,121,180,5,5,122,180,5,5,39,188,5,5,40,188,5,5,41,188,5,5,123,180,5,5,42,188,5,5,43,188,5,5,44,188,5,5,45,188,5,5,46,188,5,5,228,195,5,5,229,195,5,5,222,203,5,5,223,203,5,5,224,203,5,5,225,203,5,5,175,211,5,5,176,211,5,5,63,225,5,5,64,225,5,5,237,230,5,5,147,235,5,5,52,239,5,5,53,239,5,5,54,239,5,5,91,242,5,5,64,158,5,5,65,158,5,5,5,174,5,5,48,188,5,5,226,203,5,5,67,158,5,5,107,159,5,5,108,159,5,5,66,161,5,5,67,161,5,5,68,161,5,5,69,161,5,5,70,161,5,5,71,161,5,5,72,161,5,5,73,161,5,5,84,164,5,5,85,164,5,5,86,164,5,5,87,164,5,5,88,164,5,5,89,164,5,5,90,164,5,5,91,164,5,5,92,164,5,5,182,168,5,5,183,168,5,5,184,168,5,5,185,168,5,5,186,168,5,5,187,168,5,5,188,168,5,5,189,168,5,5,190,168,5,5,191,168,5,5,192,168,5,5,193,168,5,5,194,168,5,5,195,168,5,5,196,168,5,5,197,168,5,5,198,168,5,5,199,168,5,5,200,168,5,5,201,168,5,5,202,168,5,5,203,168,5,5,204,168,5,5,205,168,5,5,206,168,5,5,207,168,5,5,208,168,5,5,209,168,5,5,210,168,5,5,211,168,5,5,212,168,5,5,213,168,5,5,214,168,5,5,6,174,5,5,7,174,5,5,8,174,5,5,9,174,5,5,10,174,5,5,11,174,5,5,12,174,5,5,13,174,5,5,14,174,5,5,15,174,5,5,16,174,5,5,17,174,5,5,18,174,5,5,19,174,5,5,20,174,5,5,21,174,5,5,22,174,5,5,23,174,5,5,24,174,5,5,25,174,5,5,26,174,5,5,27,174,5,5,28,174,5,5,29,174,5,5,30,174,5,5,31,174,5,5,32,174,5,5,33,174,5,5,34,174,5,5,35,174,5,5,36,174,5,5,37,174,5,5,38,174,5,5,39,174,5,5,40,174,5,5,41,174,5,5,42,174,5,5,43,174,5,5,125,180,5,5,126,180,5,5,127,180,5,5,128,180,5,5,129,180,5,5,130,180,5,5,131,180,5,5,132,180,5,5,133,180,5,5,134,180,5,5,135,180,5,5,136,180,5,5,137,180,5,5,138,180,5,5,139,180,5,5,140,180,5,5,141,180,5,5,142,180,5,5,143,180,5,5,144,180,5,5,145,180,5,5,146,180,5,5,147,180,5,5,50,188,5,5,51,188,5,5,52,188,5,5,53,188,5,5,54,188,5,5,55,188,5,5,56,188,5,5,57,188,5,5,150,180,5,5,151,180,5,5,58,188,5,5,59,188,5,5,60,188,5,5,61,188,5,5,62,188,5,5,63,188,5,5,64,188,5,5,65,188,5,5,66,188,5,5,231,195,5,5,232,195,5,5,233,195,5,5,234,195,5,5,235,195,5,5,236,195,5,5,237,195,5,5,238,195,5,5,239,195,5,5,240,195,5,5,241,195,5,5,242,195,5,5,243,195,5,5,244,195,5,5,227,203,5,5,245,195,5,5,246,195,5,5,247,195,5,5,248,195,5,5,249,195,5,5,250,195,5,5,251,195,5,5,252,195,5,5,253,195,5,5,254,195,5,5,255,195,5,5,228,203,5,5,229,203,5,5,230,203,5,5,231,203,5,5,232,203,5,5,233,203,5,5,234,203,5,5,235,203,5,5,236,203,5,5,237,203,5,5,238,203,5,5,239,203,5,5,240,203,5,5,2,196,5,5,241,203,5,5,242,203,5,5,243,203,5,5,244,203,5,5,245,203,5,5,246,203,5,5,247,203,5,5,248,203,5,5,177,211,5,5,178,211,5,5,179,211,5,5,180,211,5,5,181,211,5,5,182,211,5,5,183,211,5,5,184,211,5,5,185,211,5,5,186,211,5,5,187,211,5,5,188,211,5,5,189,211,5,5,190,211,5,5,191,211,5,5,158,218,5,5,159,218,5,5,160,218,5,5,161,218,5,5,162,218,5,5,163,218,5,5,164,218,5,5,165,218,5,5,166,218,5,5,167,218,5,5,168,218,5,5,169,218,5,5,170,218,5,5,171,218,5,5,172,218,5,5,65,225,5,5,66,225,5,5,67,225,5,5,68,225,5,5,181,218,5,5,69,225,5,5,70,225,5,5,71,225,5,5,72,225,5,5,73,225,5,5,74,225,5,5,75,225,5,5,76,225,5,5,77,225,5,5,78,225,5,5,79,225,5,5,80,225,5,5,81,225,5,5,82,225,5,5,83,225,5,5,84,225,5,5,85,225,5,5,238,230,5,5,100,225,5,5,239,230,5,5,240,230,5,5,241,230,5,5,242,230,5,5,243,230,5,5,244,230,5,5,245,230,5,5,246,230,5,5,148,235,5,5,252,230,5,5,247,230,5,5,149,235,5,5,150,235,5,5,55,239,5,5,56,239,5,5,57,239,5,5,58,239,5,5,59,239,5,5,60,239,5,5,92,242,5,5,93,242,5,5,94,242,5,5,95,242,5,5,96,242,5,5,97,242,5,5,201,244,5,5,205,247,5,5,206,247,5,5,207,247,5,5,197,248,5,5,198,248,5,5,109,249,5,5,68,158,5,5,110,159,5,5,74,161,5,5,75,161,5,5,93,164,5,5,94,164,5,5,215,168,5,5,48,174,5,5,152,180,5,5,73,188,5,5,153,180,5,5,154,180,5,5,74,188,5,5,67,188,5,5,11,196,5,5,12,196,5,5,165,193,5,5,13,196,5,5,14,196,5,5,13,204,5,5,199,211,5,5,200,211,5,5,101,225,5,5,203,244,5,5,70,158,5,5,77,161,5,5,216,168,5,5,217,168,5,5,218,168,5,5,219,168,5,5,49,174,5,5,50,174,5,5,51,174,5,5,128,176,5,5,155,180,5,5,156,180,5,5,157,180,5,5,158,180,5,5,75,188,5,5,161,180,5,5,76,188,5,5,77,188,5,5,78,188,5,5,79,188,5,5,15,196,5,5,16,196,5,5,17,196,5,5,18,196,5,5,14,204,5,5,221,206,5,5,201,211,5,5,103,225,5,5,104,225,5,5,105,227,5,5,159,235,5,5,100,242,5,5,71,158,5,5,72,158,5,5,111,159,5,5,112,159,5,5,113,159,5,5,114,159,5,5,115,159,5,5,116,159,5,5,117,159,5,5,78,161,5,5,79,161,5,5,80,161,5,5,81,161,5,5,82,161,5,5,83,161,5,5,84,161,5,5,85,161,5,5,86,161,5,5,87,161,5,5,88,161,5,5,89,161,5,5,90,161,5,5,91,161,5,5,92,161,5,5,93,161,5,5,94,161,5,5,95,161,5,5,96,161,5,5,95,164,5,5,96,164,5,5,97,164,5,5,98,164,5,5,99,164,5,5,100,164,5,5,101,164,5,5,102,164,5,5,103,164,5,5,104,164,5,5,105,164,5,5,106,164,5,5,107,164,5,5,108,164,5,5,109,164,5,5,110,164,5,5,111,164,5,5,112,164,5,5,113,164,5,5,114,164,5,5,115,164,5,5,116,164,5,5,117,164,5,5,118,164,5,5,119,164,5,5,120,164,5,5,121,164,5,5,122,164,5,5,123,164,5,5,124,164,5,5,125,164,5,5,126,164,5,5,127,164,5,5,128,164,5,5,129,164,5,5,130,164,5,5,131,164,5,5,132,164,5,5,221,168,5,5,222,168,5,5,223,168,5,5,224,168,5,5,225,168,5,5,226,168,5,5,227,168,5,5,228,168,5,5,229,168,5,5,230,168,5,5,231,168,5,5,232,168,5,5,233,168,5,5,234,168,5,5,235,168,5,5,236,168,5,5,237,168,5,5,238,168,5,5,239,168,5,5,240,168,5,5,241,168,5,5,242,168,5,5,243,168,5,5,133,164,5,5,244,168,5,5,245,168,5,5,246,168,5,5,247,168,5,5,248,168,5,5,249,168,5,5,250,168,5,5,251,168,5,5,252,168,5,5,253,168,5,5,254,168,5,5,255,168,5,5,2,169,5,5,3,169,5,5,4,169,5,5,5,169,5,5,6,169,5,5,7,169,5,5,8,169,5,5,9,169,5,5,10,169,5,5,11,169,5,5,12,169,5,5,13,169,5,5,14,169,5,5,15,169,5,5,16,169,5,5,17,169,5,5,18,169,5,5,19,169,5,5,20,169,5,5,21,169,5,5,22,169,5,5,23,169,5,5,24,169,5,5,25,169,5,5,26,169,5,5,27,169,5,5,28,169,5,5,29,169,5,5,30,169,5,5,31,169,5,5,32,169,5,5,33,169,5,5,52,174,5,5,53,174,5,5,54,174,5,5,55,174,5,5,56,174,5,5,57,174,5,5,58,174,5,5,59,174,5,5,60,174,5,5,61,174,5,5,62,174,5,5,63,174,5,5,64,174,5,5,65,174,5,5,66,174,5,5,162,180,5,5,67,174,5,5,68,174,5,5,69,174,5,5,70,174,5,5,71,174,5,5,72,174,5,5,73,174,5,5,74,174,5,5,75,174,5,5,76,174,5,5,77,174,5,5,78,174,5,5,79,174,5,5,80,174,5,5,81,174,5,5,82,174,5,5,83,174,5,5,84,174,5,5,85,174,5,5,86,174,5,5,87,174,5,5,88,174,5,5,89,174,5,5,90,174,5,5,91,174,5,5,92,174,5,5,93,174,5,5,94,174,5,5,95,174,5,5,96,174,5,5,97,174,5,5,98,174,5,5,99,174,5,5,100,174,5,5,101,174,5,5,163,180,5,5,102,174,5,5,103,174,5,5,104,174,5,5,105,174,5,5,106,174,5,5,107,174,5,5,108,174,5,5,109,174,5,5,110,174,5,5,111,174,5,5,112,174,5,5,113,174,5,5,114,174,5,5,115,174,5,5,116,174,5,5,117,174,5,5,118,174,5,5,119,174,5,5,164,180,5,5,120,174,5,5,121,174,5,5,122,174,5,5,123,174,5,5,52,169,5,5,124,174,5,5,125,174,5,5,126,174,5,5,127,174,5,5,128,174,5,5,129,174,5,5,130,174,5,5,131,174,5,5,132,174,5,5,133,174,5,5,134,174,5,5,135,174,5,5,136,174,5,5,137,174,5,5,138,174,5,5,139,174,5,5,140,174,5,5,141,174,5,5,142,174,5,5,143,174,5,5,144,174,5,5,145,174,5,5,146,174,5,5,147,174,5,5,165,180,5,5,166,180,5,5,167,180,5,5,168,180,5,5,169,180,5,5,170,180,5,5,171,180,5,5,172,180,5,5,173,180,5,5,174,180,5,5,175,180,5,5,176,180,5,5,177,180,5,5,178,180,5,5,179,180,5,5,180,180,5,5,181,180,5,5,182,180,5,5,183,180,5,5,184,180,5,5,185,180,5,5,186,180,5,5,187,180,5,5,188,180,5,5,189,180,5,5,190,180,5,5,191,180,5,5,192,180,5,5,193,180,5,5,194,180,5,5,195,180,5,5,196,180,5,5,197,180,5,5,198,180,5,5,199,180,5,5,200,180,5,5,201,180,5,5,202,180,5,5,203,180,5,5,204,180,5,5,205,180,5,5,206,180,5,5,207,180,5,5,208,180,5,5,209,180,5,5,210,180,5,5,211,180,5,5,212,180,5,5,213,180,5,5,214,180,5,5,215,180,5,5,216,180,5,5,217,180,5,5,218,180,5,5,219,180,5,5,220,180,5,5,221,180,5,5,222,180,5,5,223,180,5,5,224,180,5,5,225,180,5,5,226,180,5,5,227,180,5,5,228,180,5,5,155,174,5,5,229,180,5,5,230,180,5,5,231,180,5,5,232,180,5,5,233,180,5,5,234,180,5,5,235,180,5,5,236,180,5,5,237,180,5,5,238,180,5,5,239,180,5,5,240,180,5,5,241,180,5,5,242,180,5,5,243,180,5,5,244,180,5,5,245,180,5,5,246,180,5,5,247,180,5,5,248,180,5,5,249,180,5,5,250,180,5,5,251,180,5,5,252,180,5,5,82,188,5,5,83,188,5,5,84,188,5,5,85,188,5,5,86,188,5,5,87,188,5,5,88,188,5,5,89,188,5,5,90,188,5,5,91,188,5,5,92,188,5,5,93,188,5,5,94,188,5,5,95,188,5,5,96,188,5,5,97,188,5,5,98,188,5,5,99,188,5,5,100,188,5,5,101,188,5,5,102,188,5,5,103,188,5,5,104,188,5,5,105,188,5,5,106,188,5,5,107,188,5,5,108,188,5,5,109,188,5,5,110,188,5,5,111,188,5,5,112,188,5,5,113,188,5,5,114,188,5,5,115,188,5,5,116,188,5,5,117,188,5,5,118,188,5,5,119,188,5,5,120,188,5,5,121,188,5,5,122,188,5,5,123,188,5,5,124,188,5,5,125,188,5,5,126,188,5,5,127,188,5,5,128,188,5,5,129,188,5,5,130,188,5,5,131,188,5,5,132,188,5,5,133,188,5,5,134,188,5,5,135,188,5,5,136,188,5,5,137,188,5,5,138,188,5,5,139,188,5,5,140,188,5,5,141,188,5,5,142,188,5,5,143,188,5,5,144,188,5,5,145,188,5,5,146,188,5,5,147,188,5,5,148,188,5,5,149,188,5,5,150,188,5,5,151,188,5,5,152,188,5,5,153,188,5,5,154,188,5,5,20,196,5,5,155,188,5,5,156,188,5,5,157,188,5,5,158,188,5,5,159,188,5,5,160,188,5,5,161,188,5,5,162,188,5,5,163,188,5,5,164,188,5,5,165,188,5,5,166,188,5,5,167,188,5,5,168,188,5,5,21,196,5,5,22,196,5,5,23,196,5,5,24,196,5,5,25,196,5,5,26,196,5,5,27,196,5,5,28,196,5,5,29,196,5,5,30,196,5,5,31,196,5,5,32,196,5,5,33,196,5,5,34,196,5,5,35,196,5,5,36,196,5,5,37,196,5,5,38,196,5,5,39,196,5,5,40,196,5,5,41,196,5,5,42,196,5,5,43,196,5,5,44,196,5,5,45,196,5,5,46,196,5,5,47,196,5,5,48,196,5,5,49,196,5,5,50,196,5,5,51,196,5,5,52,196,5,5,53,196,5,5,54,196,5,5,55,196,5,5,56,196,5,5,57,196,5,5,58,196,5,5,59,196,5,5,60,196,5,5,61,196,5,5,62,196,5,5,63,196,5,5,64,196,5,5,65,196,5,5,66,196,5,5,67,196,5,5,68,196,5,5,69,196,5,5,70,196,5,5,71,196,5,5,72,196,5,5,73,196,5,5,74,196,5,5,75,196,5,5,76,196,5,5,77,196,5,5,78,196,5,5,79,196,5,5,80,196,5,5,81,196,5,5,82,196,5,5,83,196,5,5,84,196,5,5,85,196,5,5,86,196,5,5,87,196,5,5,88,196,5,5,89,196,5,5,90,196,5,5,91,196,5,5,92,196,5,5,93,196,5,5,94,196,5,5,95,196,5,5,96,196,5,5,97,196,5,5,98,196,5,5,99,196,5,5,100,196,5,5,101,196,5,5,102,196,5,5,103,196,5,5,104,196,5,5,105,196,5,5,106,196,5,5,107,196,5,5,108,196,5,5,109,196,5,5,110,196,5,5,111,196,5,5,112,196,5,5,113,196,5,5,114,196,5,5,115,196,5,5,116,196,5,5,117,196,5,5,118,196,5,5,119,196,5,5,120,196,5,5,121,196,5,5,122,196,5,5,123,196,5,5,124,196,5,5,125,196,5,5,126,196,5,5,127,196,5,5,128,196,5,5,16,204,5,5,17,204,5,5,18,204,5,5,19,204,5,5,20,204,5,5,21,204,5,5,22,204,5,5,23,204,5,5,24,204,5,5,25,204,5,5,26,204,5,5,27,204,5,5,28,204,5,5,29,204,5,5,30,204,5,5,31,204,5,5,32,204,5,5,33,204,5,5,34,204,5,5,35,204,5,5,36,204,5,5,37,204,5,5,38,204,5,5,39,204,5,5,40,204,5,5,41,204,5,5,42,204,5,5,43,204,5,5,44,204,5,5,45,204,5,5,46,204,5,5,47,204,5,5,48,204,5,5,49,204,5,5,50,204,5,5,51,204,5,5,52,204,5,5,53,204,5,5,54,204,5,5,184,188,5,5,55,204,5,5,56,204,5,5,57,204,5,5,58,204,5,5,59,204,5,5,60,204,5,5,61,204,5,5,62,204,5,5,63,204,5,5,64,204,5,5,65,204,5,5,66,204,5,5,67,204,5,5,68,204,5,5,69,204,5,5,70,204,5,5,71,204,5,5,72,204,5,5,73,204,5,5,74,204,5,5,75,204,5,5,76,204,5,5,77,204,5,5,142,196,5,5,78,204,5,5,143,196,5,5,79,204,5,5,80,204,5,5,81,204,5,5,82,204,5,5,83,204,5,5,84,204,5,5,85,204,5,5,86,204,5,5,87,204,5,5,88,204,5,5,89,204,5,5,90,204,5,5,91,204,5,5,92,204,5,5,93,204,5,5,94,204,5,5,95,204,5,5,96,204,5,5,97,204,5,5,98,204,5,5,99,204,5,5,100,204,5,5,101,204,5,5,102,204,5,5,103,204,5,5,203,211,5,5,104,204,5,5,105,204,5,5,204,211,5,5,205,211,5,5,206,211,5,5,207,211,5,5,208,211,5,5,209,211,5,5,210,211,5,5,106,204,5,5,211,211,5,5,212,211,5,5,213,211,5,5,107,204,5,5,214,211,5,5,215,211,5,5,216,211,5,5,217,211,5,5,218,211,5,5,219,211,5,5,220,211,5,5,221,211,5,5,222,211,5,5,223,211,5,5,224,211,5,5,225,211,5,5,226,211,5,5,227,211,5,5,228,211,5,5,229,211,5,5,230,211,5,5,231,211,5,5,232,211,5,5,233,211,5,5,234,211,5,5,235,211,5,5,236,211,5,5,237,211,5,5,238,211,5,5,239,211,5,5,240,211,5,5,241,211,5,5,242,211,5,5,243,211,5,5,244,211,5,5,245,211,5,5,246,211,5,5,247,211,5,5,248,211,5,5,249,211,5,5,250,211,5,5,251,211,5,5,252,211,5,5,253,211,5,5,254,211,5,5,255,211,5,5,2,212,5,5,3,212,5,5,4,212,5,5,5,212,5,5,6,212,5,5,7,212,5,5,8,212,5,5,9,212,5,5,10,212,5,5,11,212,5,5,12,212,5,5,13,212,5,5,14,212,5,5,15,212,5,5,16,212,5,5,17,212,5,5,18,212,5,5,19,212,5,5,20,212,5,5,21,212,5,5,22,212,5,5,23,212,5,5,24,212,5,5,25,212,5,5,26,212,5,5,27,212,5,5,28,212,5,5,29,212,5,5,30,212,5,5,31,212,5,5,32,212,5,5,187,218,5,5,188,218,5,5,189,218,5,5,190,218,5,5,191,218,5,5,192,218,5,5,193,218,5,5,186,218,5,5,194,218,5,5,195,218,5,5,196,218,5,5,197,218,5,5,198,218,5,5,199,218,5,5,200,218,5,5,201,218,5,5,202,218,5,5,203,218,5,5,204,218,5,5,205,218,5,5,206,218,5,5,207,218,5,5,208,218,5,5,209,218,5,5,210,218,5,5,211,218,5,5,212,218,5,5,213,218,5,5,214,218,5,5,215,218,5,5,216,218,5,5,217,218,5,5,218,218,5,5,42,212,5,5,219,218,5,5,220,218,5,5,221,218,5,5,222,218,5,5,223,218,5,5,224,218,5,5,225,218,5,5,226,218,5,5,227,218,5,5,228,218,5,5,229,218,5,5,230,218,5,5,231,218,5,5,232,218,5,5,233,218,5,5,234,218,5,5,235,218,5,5,236,218,5,5,237,218,5,5,238,218,5,5,239,218,5,5,240,218,5,5,241,218,5,5,242,218,5,5,243,218,5,5,244,218,5,5,245,218,5,5,246,218,5,5,247,218,5,5,248,218,5,5,249,218,5,5,250,218,5,5,251,218,5,5,252,218,5,5,253,218,5,5,254,218,5,5,106,225,5,5,255,218,5,5,2,219,5,5,3,219,5,5,4,219,5,5,5,219,5,5,33,212,5,5,6,219,5,5,7,219,5,5,8,219,5,5,108,225,5,5,109,225,5,5,110,225,5,5,111,225,5,5,112,225,5,5,113,225,5,5,114,225,5,5,115,225,5,5,116,225,5,5,117,225,5,5,118,225,5,5,119,225,5,5,120,225,5,5,121,225,5,5,122,225,5,5,123,225,5,5,124,225,5,5,125,225,5,5,126,225,5,5,127,225,5,5,128,225,5,5,129,225,5,5,130,225,5,5,131,225,5,5,132,225,5,5,133,225,5,5,134,225,5,5,135,225,5,5,136,225,5,5,137,225,5,5,138,225,5,5,139,225,5,5,140,225,5,5,141,225,5,5,142,225,5,5,143,225,5,5,144,225,5,5,145,225,5,5,146,225,5,5,147,225,5,5,148,225,5,5,149,225,5,5,150,225,5,5,151,225,5,5,152,225,5,5,153,225,5,5,154,225,5,5,155,225,5,5,156,225,5,5,157,225,5,5,158,225,5,5,9,219,5,5,159,225,5,5,160,225,5,5,161,225,5,5,162,225,5,5,163,225,5,5,164,225,5,5,165,225,5,5,166,225,5,5,167,225,5,5,168,225,5,5,169,225,5,5,170,225,5,5,171,225,5,5,172,225,5,5,107,225,5,5,173,225,5,5,174,225,5,5,175,225,5,5,176,225,5,5,177,225,5,5,178,225,5,5,179,225,5,5,180,225,5,5,255,230,5,5,2,231,5,5,3,231,5,5,4,231,5,5,5,231,5,5,6,231,5,5,7,231,5,5,8,231,5,5,9,231,5,5,10,231,5,5,11,231,5,5,12,231,5,5,13,231,5,5,14,231,5,5,15,231,5,5,16,231,5,5,17,231,5,5,18,231,5,5,19,231,5,5,20,231,5,5,21,231,5,5,22,231,5,5,23,231,5,5,24,231,5,5,25,231,5,5,26,231,5,5,27,231,5,5,28,231,5,5,29,231,5,5,30,231,5,5,31,231,5,5,32,231,5,5,33,231,5,5,34,231,5,5,35,231,5,5,36,231,5,5,37,231,5,5,38,231,5,5,39,231,5,5,40,231,5,5,41,231,5,5,42,231,5,5,43,231,5,5,44,231,5,5,45,231,5,5,46,231,5,5,160,235,5,5,161,235,5,5,162,235,5,5,163,235,5,5,164,235,5,5,165,235,5,5,166,235,5,5,167,235,5,5,168,235,5,5,169,235,5,5,170,235,5,5,171,235,5,5,172,235,5,5,173,235,5,5,174,235,5,5,175,235,5,5,176,235,5,5,177,235,5,5,178,235,5,5,179,235,5,5,180,235,5,5,181,235,5,5,182,235,5,5,183,235,5,5,184,235,5,5,185,235,5,5,186,235,5,5,187,235,5,5,188,235,5,5,189,235,5,5,190,235,5,5,191,235,5,5,63,239,5,5,64,239,5,5,65,239,5,5,66,239,5,5,67,239,5,5,68,239,5,5,69,239,5,5,70,239,5,5,71,239,5,5,72,239,5,5,73,239,5,5,74,239,5,5,75,239,5,5,76,239,5,5,77,239,5,5,78,239,5,5,57,231,5,5,79,239,5,5,80,239,5,5,81,239,5,5,82,239,5,5,83,239,5,5,194,235,5,5,84,239,5,5,85,239,5,5,86,239,5,5,87,239,5,5,88,239,5,5,97,239,5,5,101,242,5,5,102,242,5,5,103,242,5,5,89,239,5,5,104,242,5,5,195,235,5,5,105,242,5,5,106,242,5,5,107,242,5,5,108,242,5,5,109,242,5,5,110,242,5,5,111,242,5,5,112,242,5,5,113,242,5,5,141,246,5,5,204,244,5,5,121,242,5,5,205,244,5,5,206,244,5,5,207,244,5,5,208,244,5,5,209,244,5,5,210,244,5,5,211,244,5,5,212,244,5,5,213,244,5,5,214,244,5,5,215,244,5,5,216,244,5,5,142,246,5,5,143,246,5,5,144,246,5,5,145,246,5,5,146,246,5,5,147,246,5,5,217,244,5,5,148,246,5,5,149,246,5,5,209,247,5,5,210,247,5,5,211,247,5,5,212,247,5,5,199,248,5,5,200,248,5,5,201,248,5,5,111,249,5,5,112,249,5,5,113,249,5,5,114,249,5,5,115,249,5,5,116,249,5,5,224,249,5,5,117,249,5,5,89,250,5,5,90,250,5,5,74,158,5,5,98,161,5,5,99,161,5,5,53,169,5,5,140,164,5,5,54,169,5,5,55,169,5,5,56,169,5,5,156,174,5,5,157,174,5,5,158,174,5,5,19,181,5,5,20,181,5,5,21,181,5,5,22,181,5,5,23,181,5,5,24,181,5,5,25,181,5,5,185,188,5,5,186,188,5,5,26,181,5,5,187,188,5,5,188,188,5,5,189,188,5,5,190,188,5,5,145,196,5,5,146,196,5,5,147,196,5,5,148,196,5,5,149,196,5,5,150,196,5,5,151,196,5,5,117,204,5,5,118,204,5,5,119,204,5,5,120,204,5,5,121,204,5,5,122,204,5,5,123,204,5,5,124,204,5,5,125,204,5,5,43,212,5,5,44,212,5,5,45,212,5,5,46,212,5,5,47,212,5,5,20,219,5,5,21,219,5,5,22,219,5,5,23,219,5,5,24,219,5,5,25,219,5,5,190,225,5,5,191,225,5,5,192,225,5,5,193,225,5,5,194,225,5,5,195,225,5,5,196,225,5,5,58,231,5,5,59,231,5,5,60,231,5,5,196,235,5,5,197,235,5,5,98,239,5,5,151,246,5,5,75,158,5,5,118,159,5,5,100,161,5,5,141,164,5,5,58,169,5,5,59,169,5,5,60,169,5,5,61,169,5,5,160,174,5,5,161,174,5,5,27,181,5,5,28,181,5,5,152,196,5,5,153,196,5,5,48,212,5,5,128,204,5,5,129,204,5,5,130,204,5,5,49,212,5,5,26,219,5,5,27,219,5,5,197,225,5,5,198,235,5,5,77,158,5,5,119,159,5,5,101,161,5,5,143,164,5,5,62,169,5,5,63,169,5,5,64,169,5,5,65,169,5,5,66,169,5,5,163,174,5,5,164,174,5,5,165,174,5,5,166,174,5,5,167,174,5,5,168,174,5,5,29,181,5,5,30,181,5,5,31,181,5,5,32,181,5,5,192,188,5,5,193,188,5,5,194,188,5,5,195,188,5,5,196,188,5,5,197,188,5,5,198,188,5,5,199,188,5,5,154,196,5,5,155,196,5,5,156,196,5,5,157,196,5,5,158,196,5,5,159,196,5,5,160,196,5,5,131,204,5,5,132,204,5,5,50,212,5,5,51,212,5,5,52,212,5,5,53,212,5,5,54,212,5,5,28,219,5,5,29,219,5,5,30,219,5,5,31,219,5,5,32,219,5,5,198,225,5,5,199,225,5,5,200,225,5,5,201,225,5,5,202,225,5,5,62,231,5,5,63,231,5,5,64,231,5,5,199,235,5,5,99,239,5,5,100,239,5,5,219,244,5,5,78,158,5,5,67,169,5,5,169,174,5,5,170,174,5,5,34,181,5,5,201,188,5,5,202,188,5,5,203,188,5,5,204,188,5,5,165,196,5,5,166,196,5,5,167,196,5,5,134,204,5,5,135,204,5,5,136,204,5,5,137,204,5,5,55,212,5,5,56,212,5,5,35,219,5,5,36,219,5,5,203,225,5,5,204,225,5,5,200,235,5,5,214,247,5,5,79,158,5,5,80,158,5,5,120,159,5,5,102,161,5,5,145,164,5,5,146,164,5,5,68,169,5,5,171,174,5,5,139,204,5,5,81,158,5,5,103,161,5,5,172,174,5,5,173,174,5,5,174,174,5,5,35,181,5,5,65,231,5,5,82,158,5,5,148,164,5,5,149,164,5,5,69,169,5,5,70,169,5,5,176,174,5,5,177,174,5,5,36,181,5,5,37,181,5,5,38,181,5,5,39,181,5,5,40,181,5,5,41,181,5,5,42,181,5,5,43,181,5,5,44,181,5,5,205,188,5,5,206,188,5,5,207,188,5,5,208,188,5,5,168,196,5,5,169,196,5,5,170,196,5,5,171,196,5,5,172,196,5,5,173,196,5,5,174,196,5,5,175,196,5,5,140,204,5,5,141,204,5,5,142,204,5,5,143,204,5,5,144,204,5,5,145,204,5,5,146,204,5,5,58,212,5,5,37,219,5,5,38,219,5,5,39,219,5,5,40,219,5,5,205,225,5,5,206,225,5,5,207,225,5,5,208,225,5,5,209,225,5,5,66,231,5,5,67,231,5,5,68,231,5,5,201,235,5,5,102,239,5,5,152,246,5,5,225,249,5,5,83,158,5,5,121,159,5,5,122,159,5,5,104,161,5,5,71,169,5,5,84,158,5,5,123,159,5,5,105,161,5,5,106,161,5,5,107,161,5,5,150,164,5,5,151,164,5,5,72,169,5,5,73,169,5,5,74,169,5,5,179,174,5,5,180,174,5,5,181,174,5,5,182,174,5,5,183,174,5,5,45,181,5,5,46,181,5,5,47,181,5,5,48,181,5,5,49,181,5,5,50,181,5,5,51,181,5,5,209,188,5,5,210,188,5,5,176,196,5,5,177,196,5,5,178,196,5,5,179,196,5,5,180,196,5,5,147,204,5,5,59,212,5,5,60,212,5,5,85,158,5,5,148,157,5,5,125,159,5,5,126,159,5,5,127,159,5,5,128,159,5,5,124,159,5,5,129,159,5,5,108,161,5,5,65,160,5,5,130,159,5,5,131,159,5,5,132,159,5,5,133,159,5,5,152,164,5,5,134,159,5,5,135,159,5,5,136,159,5,5,109,161,5,5,137,159,5,5,138,159,5,5,139,159,5,5,110,161,5,5,111,161,5,5,112,161,5,5,113,161,5,5,114,161,5,5,115,161,5,5,116,161,5,5,117,161,5,5,118,161,5,5,119,161,5,5,120,161,5,5,121,161,5,5,153,164,5,5,122,161,5,5,123,161,5,5,124,161,5,5,125,161,5,5,126,161,5,5,127,161,5,5,128,161,5,5,154,164,5,5,129,161,5,5,130,161,5,5,131,161,5,5,132,161,5,5,133,161,5,5,134,161,5,5,155,164,5,5,156,164,5,5,157,164,5,5,158,164,5,5,159,164,5,5,160,164,5,5,161,164,5,5,75,169,5,5,162,164,5,5,163,164,5,5,164,164,5,5,165,164,5,5,166,164,5,5,167,164,5,5,168,164,5,5,169,164,5,5,170,164,5,5,171,164,5,5,135,161,5,5,172,164,5,5,173,164,5,5,174,164,5,5,175,164,5,5,176,164,5,5,177,164,5,5,178,164,5,5,179,164,5,5,76,169,5,5,180,164,5,5,181,164,5,5,182,164,5,5,183,164,5,5,184,164,5,5,185,164,5,5,186,164,5,5,187,164,5,5,188,164,5,5,77,169,5,5,189,164,5,5,190,164,5,5,191,164,5,5,192,164,5,5,193,164,5,5,194,164,5,5,195,164,5,5,196,164,5,5,78,169,5,5,197,164,5,5,198,164,5,5,199,164,5,5,184,174,5,5,200,164,5,5,201,164,5,5,202,164,5,5,203,164,5,5,204,164,5,5,79,169,5,5,205,164,5,5,206,164,5,5,207,164,5,5,208,164,5,5,209,164,5,5,210,164,5,5,211,164,5,5,212,164,5,5,213,164,5,5,214,164,5,5,215,164,5,5,216,164,5,5,217,164,5,5,80,169,5,5,81,169,5,5,82,169,5,5,83,169,5,5,185,174,5,5,84,169,5,5,85,169,5,5,86,169,5,5,87,169,5,5,88,169,5,5,89,169,5,5,90,169,5,5,91,169,5,5,92,169,5,5,93,169,5,5,94,169,5,5,95,169,5,5,96,169,5,5,97,169,5,5,98,169,5,5,99,169,5,5,100,169,5,5,101,169,5,5,102,169,5,5,103,169,5,5,104,169,5,5,105,169,5,5,106,169,5,5,107,169,5,5,108,169,5,5,186,174,5,5,109,169,5,5,110,169,5,5,111,169,5,5,112,169,5,5,113,169,5,5,114,169,5,5,115,169,5,5,116,169,5,5,117,169,5,5,118,169,5,5,119,169,5,5,120,169,5,5,121,169,5,5,122,169,5,5,123,169,5,5,124,169,5,5,189,174,5,5,125,169,5,5,126,169,5,5,127,169,5,5,128,169,5,5,129,169,5,5,130,169,5,5,131,169,5,5,132,169,5,5,133,169,5,5,134,169,5,5,135,169,5,5,136,169,5,5,137,169,5,5,138,169,5,5,139,169,5,5,140,169,5,5,141,169,5,5,142,169,5,5,143,169,5,5,144,169,5,5,145,169,5,5,52,181,5,5,146,169,5,5,147,169,5,5,148,169,5,5,187,174,5,5,228,175,5,5,188,174,5,5,149,169,5,5,150,169,5,5,151,169,5,5,152,169,5,5,153,169,5,5,154,169,5,5,155,169,5,5,156,169,5,5,190,174,5,5,191,174,5,5,192,174,5,5,193,174,5,5,194,174,5,5,195,174,5,5,196,174,5,5,197,174,5,5,198,174,5,5,199,174,5,5,200,174,5,5,201,174,5,5,202,174,5,5,203,174,5,5,56,181,5,5,204,174,5,5,205,174,5,5,206,174,5,5,207,174,5,5,208,174,5,5,209,174,5,5,210,174,5,5,211,174,5,5,57,181,5,5,212,174,5,5,213,174,5,5,214,174,5,5,215,174,5,5,216,174,5,5,53,181,5,5,217,174,5,5,218,174,5,5,219,174,5,5,220,174,5,5,221,174,5,5,222,174,5,5,223,174,5,5,224,174,5,5,225,174,5,5,226,174,5,5,227,174,5,5,228,174,5,5,229,174,5,5,230,174,5,5,231,174,5,5,232,174,5,5,233,174,5,5,234,174,5,5,54,181,5,5,165,169,5,5,235,174,5,5,236,174,5,5,237,174,5,5,238,174,5,5,239,174,5,5,240,174,5,5,241,174,5,5,242,174,5,5,243,174,5,5,244,174,5,5,245,174,5,5,246,174,5,5,247,174,5,5,248,174,5,5,249,174,5,5,250,174,5,5,251,174,5,5,252,174,5,5,253,174,5,5,254,174,5,5,255,174,5,5,55,181,5,5,2,175,5,5,3,175,5,5,4,175,5,5,5,175,5,5,6,175,5,5,7,175,5,5,8,175,5,5,9,175,5,5,10,175,5,5,11,175,5,5,12,175,5,5,13,175,5,5,14,175,5,5,15,175,5,5,16,175,5,5,58,181,5,5,59,181,5,5,60,181,5,5,61,181,5,5,62,181,5,5,63,181,5,5,64,181,5,5,65,181,5,5,66,181,5,5,67,181,5,5,68,181,5,5,69,181,5,5,70,181,5,5,71,181,5,5,72,181,5,5,73,181,5,5,74,181,5,5,75,181,5,5,76,181,5,5,77,181,5,5,78,181,5,5,79,181,5,5,80,181,5,5,81,181,5,5,82,181,5,5,83,181,5,5,84,181,5,5,85,181,5,5,86,181,5,5,87,181,5,5,88,181,5,5,89,181,5,5,90,181,5,5,91,181,5,5,92,181,5,5,93,181,5,5,94,181,5,5,95,181,5,5,96,181,5,5,97,181,5,5,98,181,5,5,99,181,5,5,100,181,5,5,101,181,5,5,102,181,5,5,103,181,5,5,104,181,5,5,105,181,5,5,106,181,5,5,107,181,5,5,108,181,5,5,109,181,5,5,110,181,5,5,111,181,5,5,112,181,5,5,113,181,5,5,212,188,5,5,114,181,5,5,115,181,5,5,116,181,5,5,117,181,5,5,118,181,5,5,119,181,5,5,120,181,5,5,121,181,5,5,122,181,5,5,123,181,5,5,214,188,5,5,124,181,5,5,125,181,5,5,126,181,5,5,127,181,5,5,128,181,5,5,129,181,5,5,130,181,5,5,131,181,5,5,132,181,5,5,133,181,5,5,134,181,5,5,135,181,5,5,136,181,5,5,137,181,5,5,138,181,5,5,139,181,5,5,215,188,5,5,216,188,5,5,217,188,5,5,218,188,5,5,219,188,5,5,220,188,5,5,221,188,5,5,222,188,5,5,223,188,5,5,224,188,5,5,225,188,5,5,226,188,5,5,227,188,5,5,228,188,5,5,229,188,5,5,230,188,5,5,231,188,5,5,232,188,5,5,233,188,5,5,234,188,5,5,235,188,5,5,236,188,5,5,237,188,5,5,238,188,5,5,239,188,5,5,240,188,5,5,241,188,5,5,242,188,5,5,243,188,5,5,244,188,5,5,245,188,5,5,246,188,5,5,247,188,5,5,248,188,5,5,249,188,5,5,250,188,5,5,251,188,5,5,252,188,5,5,253,188,5,5,254,188,5,5,255,188,5,5,2,189,5,5,3,189,5,5,4,189,5,5,5,189,5,5,6,189,5,5,7,189,5,5,8,189,5,5,9,189,5,5,10,189,5,5,11,189,5,5,12,189,5,5,13,189,5,5,14,189,5,5,15,189,5,5,16,189,5,5,17,189,5,5,18,189,5,5,19,189,5,5,20,189,5,5,21,189,5,5,22,189,5,5,23,189,5,5,24,189,5,5,25,189,5,5,26,189,5,5,27,189,5,5,28,189,5,5,29,189,5,5,30,189,5,5,31,189,5,5,32,189,5,5,33,189,5,5,34,189,5,5,35,189,5,5,36,189,5,5,37,189,5,5,38,189,5,5,39,189,5,5,40,189,5,5,41,189,5,5,42,189,5,5,181,196,5,5,43,189,5,5,182,196,5,5,44,189,5,5,45,189,5,5,46,189,5,5,47,189,5,5,183,196,5,5,48,189,5,5,49,189,5,5,50,189,5,5,51,189,5,5,52,189,5,5,53,189,5,5,54,189,5,5,55,189,5,5,56,189,5,5,57,189,5,5,58,189,5,5,59,189,5,5,60,189,5,5,61,189,5,5,62,189,5,5,63,189,5,5,64,189,5,5,65,189,5,5,66,189,5,5,67,189,5,5,184,196,5,5,185,196,5,5,68,189,5,5,186,196,5,5,187,196,5,5,188,196,5,5,189,196,5,5,190,196,5,5,191,196,5,5,192,196,5,5,193,196,5,5,194,196,5,5,195,196,5,5,196,196,5,5,197,196,5,5,198,196,5,5,199,196,5,5,200,196,5,5,201,196,5,5,202,196,5,5,203,196,5,5,204,196,5,5,205,196,5,5,206,196,5,5,207,196,5,5,208,196,5,5,209,196,5,5,210,196,5,5,211,196,5,5,212,196,5,5,213,196,5,5,214,196,5,5,215,196,5,5,216,196,5,5,217,196,5,5,218,196,5,5,219,196,5,5,220,196,5,5,221,196,5,5,222,196,5,5,223,196,5,5,224,196,5,5,225,196,5,5,226,196,5,5,227,196,5,5,228,196,5,5,229,196,5,5,230,196,5,5,231,196,5,5,232,196,5,5,233,196,5,5,234,196,5,5,235,196,5,5,236,196,5,5,237,196,5,5,238,196,5,5,239,196,5,5,240,196,5,5,241,196,5,5,242,196,5,5,243,196,5,5,244,196,5,5,245,196,5,5,246,196,5,5,247,196,5,5,248,196,5,5,249,196,5,5,250,196,5,5,251,196,5,5,252,196,5,5,253,196,5,5,254,196,5,5,255,196,5,5,2,197,5,5,3,197,5,5,4,197,5,5,5,197,5,5,6,197,5,5,7,197,5,5,8,197,5,5,9,197,5,5,10,197,5,5,11,197,5,5,12,197,5,5,148,204,5,5,13,197,5,5,14,197,5,5,15,197,5,5,16,197,5,5,17,197,5,5,18,197,5,5,19,197,5,5,69,189,5,5,20,197,5,5,21,197,5,5,22,197,5,5,23,197,5,5,24,197,5,5,25,197,5,5,26,197,5,5,27,197,5,5,28,197,5,5,29,197,5,5,30,197,5,5,31,197,5,5,32,197,5,5,33,197,5,5,34,197,5,5,35,197,5,5,36,197,5,5,37,197,5,5,38,197,5,5,39,197,5,5,40,197,5,5,41,197,5,5,42,197,5,5,43,197,5,5,149,204,5,5,150,204,5,5,151,204,5,5,152,204,5,5,153,204,5,5,154,204,5,5,155,204,5,5,156,204,5,5,157,204,5,5,158,204,5,5,159,204,5,5,160,204,5,5,161,204,5,5,162,204,5,5,163,204,5,5,164,204,5,5,165,204,5,5,166,204,5,5,167,204,5,5,168,204,5,5,169,204,5,5,170,204,5,5,171,204,5,5,172,204,5,5,173,204,5,5,174,204,5,5,175,204,5,5,176,204,5,5,177,204,5,5,178,204,5,5,179,204,5,5,180,204,5,5,181,204,5,5,182,204,5,5,183,204,5,5,184,204,5,5,185,204,5,5,186,204,5,5,187,204,5,5,188,204,5,5,189,204,5,5,190,204,5,5,191,204,5,5,192,204,5,5,193,204,5,5,194,204,5,5,195,204,5,5,196,204,5,5,197,204,5,5,198,204,5,5,199,204,5,5,200,204,5,5,201,204,5,5,202,204,5,5,203,204,5,5,204,204,5,5,205,204,5,5,206,204,5,5,207,204,5,5,208,204,5,5,209,204,5,5,210,204,5,5,44,197,5,5,62,212,5,5,211,204,5,5,61,212,5,5,212,204,5,5,213,204,5,5,214,204,5,5,215,204,5,5,216,204,5,5,217,204,5,5,41,219,5,5,218,204,5,5,219,204,5,5,220,204,5,5,221,204,5,5,248,204,5,5,222,204,5,5,223,204,5,5,224,204,5,5,45,197,5,5,225,204,5,5,226,204,5,5,227,204,5,5,228,204,5,5,229,204,5,5,230,204,5,5,231,204,5,5,232,204,5,5,233,204,5,5,234,204,5,5,235,204,5,5,236,204,5,5,63,212,5,5,64,212,5,5,65,212,5,5,66,212,5,5,67,212,5,5,68,212,5,5,69,212,5,5,70,212,5,5,71,212,5,5,72,212,5,5,73,212,5,5,74,212,5,5,75,212,5,5,76,212,5,5,77,212,5,5,78,212,5,5,79,212,5,5,80,212,5,5,81,212,5,5,82,212,5,5,83,212,5,5,42,219,5,5,84,212,5,5,85,212,5,5,86,212,5,5,87,212,5,5,88,212,5,5,89,212,5,5,90,212,5,5,91,212,5,5,92,212,5,5,93,212,5,5,47,219,5,5,94,212,5,5,95,212,5,5,96,212,5,5,97,212,5,5,43,219,5,5,98,212,5,5,99,212,5,5,237,204,5,5,100,212,5,5,101,212,5,5,102,212,5,5,103,212,5,5,104,212,5,5,105,212,5,5,106,212,5,5,107,212,5,5,108,212,5,5,109,212,5,5,110,212,5,5,111,212,5,5,112,212,5,5,113,212,5,5,114,212,5,5,115,212,5,5,116,212,5,5,117,212,5,5,44,219,5,5,118,212,5,5,119,212,5,5,120,212,5,5,121,212,5,5,122,212,5,5,123,212,5,5,124,212,5,5,125,212,5,5,126,212,5,5,127,212,5,5,128,212,5,5,129,212,5,5,130,212,5,5,131,212,5,5,132,212,5,5,133,212,5,5,134,212,5,5,135,212,5,5,136,212,5,5,137,212,5,5,138,212,5,5,139,212,5,5,48,219,5,5,140,212,5,5,45,219,5,5,141,212,5,5,46,219,5,5,142,212,5,5,143,212,5,5,144,212,5,5,145,212,5,5,146,212,5,5,147,212,5,5,148,212,5,5,149,212,5,5,150,212,5,5,151,212,5,5,152,212,5,5,153,212,5,5,165,212,5,5,49,219,5,5,50,219,5,5,51,219,5,5,52,219,5,5,53,219,5,5,54,219,5,5,55,219,5,5,56,219,5,5,57,219,5,5,58,219,5,5,59,219,5,5,60,219,5,5,61,219,5,5,62,219,5,5,63,219,5,5,210,225,5,5,64,219,5,5,65,219,5,5,66,219,5,5,67,219,5,5,68,219,5,5,69,219,5,5,70,219,5,5,71,219,5,5,72,219,5,5,73,219,5,5,74,219,5,5,75,219,5,5,76,219,5,5,77,219,5,5,78,219,5,5,79,219,5,5,80,219,5,5,81,219,5,5,82,219,5,5,83,219,5,5,166,212,5,5,84,219,5,5,85,219,5,5,86,219,5,5,87,219,5,5,88,219,5,5,89,219,5,5,90,219,5,5,91,219,5,5,92,219,5,5,93,219,5,5,94,219,5,5,95,219,5,5,71,231,5,5,96,219,5,5,97,219,5,5,211,225,5,5,98,219,5,5,99,219,5,5,100,219,5,5,101,219,5,5,102,219,5,5,103,219,5,5,104,219,5,5,105,219,5,5,106,219,5,5,107,219,5,5,108,219,5,5,109,219,5,5,110,219,5,5,111,219,5,5,112,219,5,5,113,219,5,5,114,219,5,5,115,219,5,5,116,219,5,5,117,219,5,5,118,219,5,5,212,225,5,5,119,219,5,5,120,219,5,5,121,219,5,5,122,219,5,5,213,225,5,5,214,225,5,5,215,225,5,5,216,225,5,5,217,225,5,5,218,225,5,5,219,225,5,5,220,225,5,5,221,225,5,5,222,225,5,5,223,225,5,5,69,231,5,5,224,225,5,5,225,225,5,5,226,225,5,5,227,225,5,5,228,225,5,5,229,225,5,5,230,225,5,5,231,225,5,5,232,225,5,5,233,225,5,5,234,225,5,5,235,225,5,5,236,225,5,5,237,225,5,5,238,225,5,5,239,225,5,5,240,225,5,5,241,225,5,5,242,225,5,5,243,225,5,5,244,225,5,5,245,225,5,5,246,225,5,5,247,225,5,5,248,225,5,5,249,225,5,5,250,225,5,5,251,225,5,5,136,219,5,5,252,225,5,5,253,225,5,5,254,225,5,5,255,225,5,5,2,226,5,5,70,231,5,5,3,226,5,5,4,226,5,5,5,226,5,5,123,219,5,5,6,226,5,5,7,226,5,5,8,226,5,5,72,231,5,5,73,231,5,5,9,226,5,5,74,231,5,5,75,231,5,5,76,231,5,5,77,231,5,5,78,231,5,5,79,231,5,5,80,231,5,5,81,231,5,5,82,231,5,5,83,231,5,5,84,231,5,5,85,231,5,5,86,231,5,5,87,231,5,5,88,231,5,5,89,231,5,5,90,231,5,5,91,231,5,5,92,231,5,5,93,231,5,5,94,231,5,5,95,231,5,5,96,231,5,5,97,231,5,5,98,231,5,5,99,231,5,5,100,231,5,5,101,231,5,5,103,239,5,5,102,231,5,5,103,231,5,5,104,231,5,5,202,235,5,5,105,231,5,5,203,235,5,5,204,235,5,5,205,235,5,5,206,235,5,5,207,235,5,5,208,235,5,5,209,235,5,5,210,235,5,5,211,235,5,5,212,235,5,5,213,235,5,5,23,226,5,5,214,235,5,5,215,235,5,5,216,235,5,5,217,235,5,5,218,235,5,5,219,235,5,5,220,235,5,5,221,235,5,5,222,235,5,5,223,235,5,5,224,235,5,5,225,235,5,5,226,235,5,5,227,235,5,5,228,235,5,5,229,235,5,5,104,239,5,5,105,239,5,5,106,239,5,5,107,239,5,5,108,239,5,5,109,239,5,5,110,239,5,5,111,239,5,5,112,239,5,5,113,239,5,5,114,239,5,5,115,239,5,5,116,239,5,5,117,239,5,5,118,239,5,5,119,239,5,5,120,239,5,5,236,235,5,5,121,239,5,5,122,239,5,5,123,239,5,5,122,242,5,5,124,239,5,5,125,239,5,5,126,239,5,5,127,239,5,5,123,242,5,5,124,242,5,5,125,242,5,5,126,242,5,5,127,242,5,5,128,242,5,5,129,242,5,5,130,242,5,5,131,242,5,5,132,242,5,5,133,242,5,5,134,242,5,5,135,242,5,5,136,242,5,5,137,242,5,5,138,242,5,5,139,242,5,5,140,242,5,5,141,242,5,5,146,242,5,5,220,244,5,5,221,244,5,5,222,244,5,5,223,244,5,5,224,244,5,5,225,244,5,5,226,244,5,5,227,244,5,5,228,244,5,5,229,244,5,5,230,244,5,5,226,249,5,5,231,244,5,5,232,244,5,5,153,246,5,5,154,246,5,5,215,247,5,5,155,246,5,5,156,246,5,5,157,246,5,5,158,246,5,5,159,246,5,5,216,247,5,5,217,247,5,5,218,247,5,5,219,247,5,5,202,248,5,5,203,248,5,5,204,248,5,5,205,248,5,5,206,248,5,5,118,249,5,5,119,249,5,5,227,249,5,5,28,250,5,5,228,249,5,5,29,250,5,5,30,250,5,5,153,250,5,5,159,250,5,5,86,158,5,5,87,158,5,5,140,159,5,5,136,161,5,5,137,161,5,5,138,161,5,5,139,161,5,5,140,161,5,5,141,161,5,5,221,164,5,5,222,164,5,5,223,164,5,5,224,164,5,5,225,164,5,5,226,164,5,5,227,164,5,5,228,164,5,5,229,164,5,5,230,164,5,5,231,164,5,5,232,164,5,5,233,164,5,5,167,169,5,5,168,169,5,5,169,169,5,5,170,169,5,5,171,169,5,5,172,169,5,5,166,169,5,5,173,169,5,5,174,169,5,5,175,169,5,5,176,169,5,5,177,169,5,5,178,169,5,5,179,169,5,5,180,169,5,5,181,169,5,5,182,169,5,5,183,169,5,5,184,169,5,5,185,169,5,5,186,169,5,5,187,169,5,5,188,169,5,5,189,169,5,5,190,169,5,5,191,169,5,5,192,169,5,5,193,169,5,5,194,169,5,5,195,169,5,5,23,175,5,5,24,175,5,5,25,175,5,5,26,175,5,5,27,175,5,5,28,175,5,5,29,175,5,5,30,175,5,5,31,175,5,5,32,175,5,5,33,175,5,5,34,175,5,5,35,175,5,5,36,175,5,5,37,175,5,5,38,175,5,5,39,175,5,5,40,175,5,5,41,175,5,5,42,175,5,5,43,175,5,5,44,175,5,5,45,175,5,5,46,175,5,5,47,175,5,5,48,175,5,5,49,175,5,5,50,175,5,5,51,175,5,5,52,175,5,5,53,175,5,5,54,175,5,5,55,175,5,5,56,175,5,5,57,175,5,5,58,175,5,5,59,175,5,5,143,181,5,5,144,181,5,5,145,181,5,5,146,181,5,5,147,181,5,5,148,181,5,5,149,181,5,5,150,181,5,5,151,181,5,5,152,181,5,5,153,181,5,5,154,181,5,5,155,181,5,5,156,181,5,5,157,181,5,5,158,181,5,5,159,181,5,5,160,181,5,5,161,181,5,5,162,181,5,5,163,181,5,5,164,181,5,5,165,181,5,5,166,181,5,5,167,181,5,5,168,181,5,5,169,181,5,5,170,181,5,5,171,181,5,5,172,181,5,5,173,181,5,5,174,181,5,5,175,181,5,5,176,181,5,5,177,181,5,5,178,181,5,5,179,181,5,5,180,181,5,5,181,181,5,5,182,181,5,5,183,181,5,5,184,181,5,5,185,181,5,5,84,189,5,5,85,189,5,5,86,189,5,5,87,189,5,5,88,189,5,5,89,189,5,5,90,189,5,5,91,189,5,5,92,189,5,5,93,189,5,5,94,189,5,5,95,189,5,5,60,197,5,5,96,189,5,5,97,189,5,5,98,189,5,5,99,189,5,5,100,189,5,5,101,189,5,5,102,189,5,5,103,189,5,5,104,189,5,5,105,189,5,5,106,189,5,5,107,189,5,5,108,189,5,5,109,189,5,5,110,189,5,5,111,189,5,5,112,189,5,5,113,189,5,5,114,189,5,5,115,189,5,5,116,189,5,5,117,189,5,5,118,189,5,5,119,189,5,5,128,189,5,5,120,189,5,5,121,189,5,5,122,189,5,5,123,189,5,5,61,197,5,5,62,197,5,5,63,197,5,5,64,197,5,5,65,197,5,5,66,197,5,5,67,197,5,5,68,197,5,5,69,197,5,5,70,197,5,5,71,197,5,5,72,197,5,5,73,197,5,5,74,197,5,5,75,197,5,5,76,197,5,5,77,197,5,5,78,197,5,5,79,197,5,5,80,197,5,5,81,197,5,5,82,197,5,5,83,197,5,5,84,197,5,5,85,197,5,5,86,197,5,5,87,197,5,5,88,197,5,5,89,197,5,5,90,197,5,5,91,197,5,5,92,197,5,5,93,197,5,5,94,197,5,5,95,197,5,5,96,197,5,5,97,197,5,5,98,197,5,5,99,197,5,5,100,197,5,5,249,204,5,5,250,204,5,5,251,204,5,5,252,204,5,5,253,204,5,5,254,204,5,5,255,204,5,5,2,205,5,5,3,205,5,5,4,205,5,5,5,205,5,5,6,205,5,5,7,205,5,5,8,205,5,5,9,205,5,5,10,205,5,5,11,205,5,5,12,205,5,5,13,205,5,5,14,205,5,5,167,212,5,5,15,205,5,5,16,205,5,5,17,205,5,5,18,205,5,5,19,205,5,5,168,212,5,5,20,205,5,5,21,205,5,5,22,205,5,5,23,205,5,5,24,205,5,5,25,205,5,5,26,205,5,5,27,205,5,5,28,205,5,5,29,205,5,5,30,205,5,5,31,205,5,5,32,205,5,5,33,205,5,5,34,205,5,5,35,205,5,5,36,205,5,5,37,205,5,5,101,197,5,5,38,205,5,5,39,205,5,5,40,205,5,5,41,205,5,5,42,205,5,5,43,205,5,5,44,205,5,5,45,205,5,5,46,205,5,5,47,205,5,5,169,212,5,5,48,205,5,5,170,212,5,5,171,212,5,5,172,212,5,5,173,212,5,5,174,212,5,5,175,212,5,5,176,212,5,5,177,212,5,5,178,212,5,5,179,212,5,5,180,212,5,5,181,212,5,5,182,212,5,5,183,212,5,5,184,212,5,5,185,212,5,5,186,212,5,5,187,212,5,5,188,212,5,5,189,212,5,5,190,212,5,5,191,212,5,5,192,212,5,5,193,212,5,5,194,212,5,5,195,212,5,5,196,212,5,5,197,212,5,5,198,212,5,5,199,212,5,5,200,212,5,5,138,219,5,5,139,219,5,5,140,219,5,5,141,219,5,5,142,219,5,5,143,219,5,5,144,219,5,5,145,219,5,5,146,219,5,5,147,219,5,5,148,219,5,5,149,219,5,5,137,219,5,5,150,219,5,5,151,219,5,5,152,219,5,5,153,219,5,5,154,219,5,5,155,219,5,5,156,219,5,5,157,219,5,5,158,219,5,5,159,219,5,5,160,219,5,5,161,219,5,5,162,219,5,5,163,219,5,5,164,219,5,5,24,226,5,5,25,226,5,5,26,226,5,5,27,226,5,5,28,226,5,5,29,226,5,5,30,226,5,5,31,226,5,5,32,226,5,5,33,226,5,5,34,226,5,5,35,226,5,5,36,226,5,5,37,226,5,5,38,226,5,5,39,226,5,5,40,226,5,5,41,226,5,5,42,226,5,5,43,226,5,5,44,226,5,5,45,226,5,5,46,226,5,5,47,226,5,5,48,226,5,5,49,226,5,5,50,226,5,5,51,226,5,5,52,226,5,5,53,226,5,5,54,226,5,5,55,226,5,5,56,226,5,5,57,226,5,5,58,226,5,5,59,226,5,5,60,226,5,5,61,226,5,5,62,226,5,5,63,226,5,5,64,226,5,5,116,231,5,5,117,231,5,5,118,231,5,5,119,231,5,5,120,231,5,5,121,231,5,5,122,231,5,5,123,231,5,5,124,231,5,5,125,231,5,5,126,231,5,5,127,231,5,5,128,231,5,5,129,231,5,5,130,231,5,5,131,231,5,5,132,231,5,5,133,231,5,5,134,231,5,5,135,231,5,5,136,231,5,5,137,231,5,5,138,231,5,5,139,231,5,5,140,231,5,5,237,235,5,5,238,235,5,5,239,235,5,5,240,235,5,5,241,235,5,5,242,235,5,5,243,235,5,5,244,235,5,5,245,235,5,5,246,235,5,5,134,239,5,5,247,235,5,5,135,239,5,5,136,239,5,5,137,239,5,5,138,239,5,5,139,239,5,5,140,239,5,5,141,239,5,5,147,242,5,5,142,239,5,5,143,239,5,5,144,239,5,5,148,242,5,5,149,242,5,5,150,242,5,5,151,242,5,5,152,242,5,5,153,242,5,5,145,239,5,5,154,242,5,5,155,242,5,5,156,242,5,5,235,244,5,5,236,244,5,5,237,244,5,5,163,246,5,5,240,244,5,5,164,246,5,5,165,246,5,5,166,246,5,5,226,247,5,5,227,247,5,5,208,248,5,5,120,249,5,5,121,249,5,5,122,249,5,5,91,250,5,5,121,250,5,5,165,250,5,5,88,158,5,5,90,158,5,5,201,169,5,5,202,169,5,5,63,175,5,5,64,175,5,5,65,175,5,5,189,181,5,5,114,197,5,5,208,212,5,5,176,219,5,5,146,231,5,5,91,158,5,5,142,161,5,5,203,169,5,5,190,181,5,5,59,205,5,5,92,158,5,5,67,175,5,5,129,189,5,5,209,212,5,5,94,158,5,5,204,169,5,5,68,175,5,5,191,181,5,5,60,205,5,5,210,212,5,5,177,219,5,5,147,231,5,5,95,158,5,5,205,169,5,5,69,175,5,5,70,175,5,5,115,197,5,5,116,197,5,5,117,197,5,5,61,205,5,5,62,205,5,5,63,205,5,5,64,205,5,5,65,205,5,5,211,212,5,5,212,212,5,5,178,219,5,5,179,219,5,5,180,219,5,5,149,239,5,5,96,158,5,5,119,197,5,5,99,158,5,5,100,158,5,5,143,161,5,5,144,161,5,5,145,161,5,5,235,164,5,5,236,164,5,5,237,164,5,5,238,164,5,5,239,164,5,5,206,169,5,5,207,169,5,5,208,169,5,5,209,169,5,5,210,169,5,5,211,169,5,5,212,169,5,5,213,169,5,5,71,175,5,5,72,175,5,5,73,175,5,5,74,175,5,5,75,175,5,5,76,175,5,5,77,175,5,5,78,175,5,5,79,175,5,5,194,181,5,5,195,181,5,5,196,181,5,5,197,181,5,5,198,181,5,5,130,189,5,5,131,189,5,5,132,189,5,5,133,189,5,5,134,189,5,5,120,197,5,5,135,189,5,5,121,197,5,5,122,197,5,5,123,197,5,5,124,197,5,5,125,197,5,5,126,197,5,5,127,197,5,5,128,197,5,5,129,197,5,5,130,197,5,5,66,205,5,5,67,205,5,5,68,205,5,5,69,205,5,5,70,205,5,5,71,205,5,5,214,212,5,5,215,212,5,5,216,212,5,5,217,212,5,5,218,212,5,5,219,212,5,5,181,219,5,5,182,219,5,5,183,219,5,5,184,219,5,5,75,226,5,5,76,226,5,5,77,226,5,5,78,226,5,5,148,231,5,5,150,239,5,5,151,239,5,5,152,239,5,5,153,239,5,5,154,239,5,5,155,239,5,5,161,242,5,5,162,242,5,5,167,246,5,5,123,249,5,5,33,250,5,5,101,158,5,5,149,157,5,5,141,159,5,5,142,159,5,5,143,159,5,5,146,161,5,5,147,161,5,5,148,161,5,5,149,161,5,5,150,161,5,5,241,164,5,5,151,161,5,5,152,161,5,5,242,164,5,5,243,164,5,5,244,164,5,5,245,164,5,5,246,164,5,5,247,164,5,5,248,164,5,5,216,169,5,5,249,164,5,5,250,164,5,5,251,164,5,5,252,164,5,5,253,164,5,5,254,164,5,5,255,164,5,5,2,165,5,5,217,169,5,5,80,175,5,5,218,169,5,5,219,169,5,5,220,169,5,5,221,169,5,5,222,169,5,5,223,169,5,5,224,169,5,5,225,169,5,5,226,169,5,5,227,169,5,5,228,169,5,5,229,169,5,5,230,169,5,5,231,169,5,5,232,169,5,5,233,169,5,5,234,169,5,5,235,169,5,5,236,169,5,5,237,169,5,5,81,175,5,5,82,175,5,5,83,175,5,5,84,175,5,5,85,175,5,5,86,175,5,5,87,175,5,5,88,175,5,5,89,175,5,5,90,175,5,5,91,175,5,5,92,175,5,5,93,175,5,5,94,175,5,5,95,175,5,5,96,175,5,5,97,175,5,5,98,175,5,5,99,175,5,5,100,175,5,5,199,181,5,5,200,181,5,5,201,181,5,5,202,181,5,5,203,181,5,5,204,181,5,5,205,181,5,5,206,181,5,5,207,181,5,5,208,181,5,5,209,181,5,5,210,181,5,5,141,189,5,5,211,181,5,5,212,181,5,5,213,181,5,5,214,181,5,5,142,189,5,5,143,189,5,5,133,197,5,5,144,189,5,5,145,189,5,5,146,189,5,5,147,189,5,5,134,197,5,5,135,197,5,5,148,189,5,5,149,189,5,5,150,189,5,5,151,189,5,5,152,189,5,5,136,197,5,5,153,189,5,5,154,189,5,5,155,189,5,5,156,189,5,5,157,189,5,5,158,189,5,5,159,189,5,5,160,189,5,5,161,189,5,5,162,189,5,5,163,189,5,5,164,189,5,5,165,189,5,5,166,189,5,5,167,189,5,5,138,197,5,5,139,197,5,5,140,197,5,5,141,197,5,5,142,197,5,5,143,197,5,5,144,197,5,5,145,197,5,5,168,189,5,5,137,197,5,5,146,197,5,5,147,197,5,5,74,205,5,5,148,197,5,5,149,197,5,5,150,197,5,5,151,197,5,5,152,197,5,5,153,197,5,5,154,197,5,5,155,197,5,5,75,205,5,5,156,197,5,5,157,197,5,5,77,205,5,5,78,205,5,5,79,205,5,5,80,205,5,5,81,205,5,5,82,205,5,5,83,205,5,5,76,205,5,5,84,205,5,5,220,212,5,5,221,212,5,5,85,205,5,5,86,205,5,5,87,205,5,5,88,205,5,5,89,205,5,5,90,205,5,5,187,219,5,5,222,212,5,5,223,212,5,5,186,219,5,5,224,212,5,5,225,212,5,5,226,212,5,5,227,212,5,5,228,212,5,5,229,212,5,5,230,212,5,5,188,219,5,5,189,219,5,5,190,219,5,5,191,219,5,5,192,219,5,5,193,219,5,5,194,219,5,5,195,219,5,5,196,219,5,5,197,219,5,5,198,219,5,5,199,219,5,5,200,219,5,5,79,226,5,5,201,219,5,5,80,226,5,5,81,226,5,5,82,226,5,5,83,226,5,5,84,226,5,5,85,226,5,5,86,226,5,5,87,226,5,5,88,226,5,5,150,231,5,5,151,231,5,5,152,231,5,5,153,231,5,5,154,231,5,5,155,231,5,5,156,231,5,5,252,235,5,5,253,235,5,5,254,235,5,5,156,239,5,5,157,239,5,5,158,239,5,5,164,242,5,5,165,242,5,5,166,242,5,5,241,244,5,5,168,246,5,5,169,246,5,5,232,247,5,5,233,247,5,5,234,247,5,5,144,159,5,5,102,175,5,5,216,181,5,5,169,189,5,5,170,189,5,5,145,159,5,5,146,159,5,5,102,158,5,5,147,159,5,5,148,159,5,5,154,161,5,5,155,161,5,5,156,161,5,5,157,161,5,5,4,165,5,5,5,165,5,5,6,165,5,5,7,165,5,5,8,165,5,5,9,165,5,5,10,165,5,5,11,165,5,5,12,165,5,5,13,165,5,5,240,169,5,5,241,169,5,5,242,169,5,5,243,169,5,5,244,169,5,5,245,169,5,5,246,169,5,5,247,169,5,5,248,169,5,5,249,169,5,5,250,169,5,5,251,169,5,5,252,169,5,5,253,169,5,5,254,169,5,5,255,169,5,5,2,170,5,5,3,170,5,5,4,170,5,5,5,170,5,5,6,170,5,5,7,170,5,5,104,175,5,5,105,175,5,5,106,175,5,5,107,175,5,5,108,175,5,5,109,175,5,5,110,175,5,5,111,175,5,5,217,181,5,5,112,175,5,5,218,181,5,5,113,175,5,5,114,175,5,5,115,175,5,5,116,175,5,5,117,175,5,5,118,175,5,5,119,175,5,5,120,175,5,5,121,175,5,5,122,175,5,5,123,175,5,5,124,175,5,5,125,175,5,5,126,175,5,5,127,175,5,5,128,175,5,5,129,175,5,5,130,175,5,5,131,175,5,5,132,175,5,5,133,175,5,5,220,181,5,5,221,181,5,5,222,181,5,5,223,181,5,5,224,181,5,5,225,181,5,5,226,181,5,5,227,181,5,5,228,181,5,5,229,181,5,5,230,181,5,5,231,181,5,5,232,181,5,5,233,181,5,5,234,181,5,5,235,181,5,5,236,181,5,5,237,181,5,5,238,181,5,5,239,181,5,5,240,181,5,5,241,181,5,5,242,181,5,5,243,181,5,5,244,181,5,5,245,181,5,5,246,181,5,5,247,181,5,5,248,181,5,5,249,181,5,5,250,181,5,5,251,181,5,5,252,181,5,5,171,189,5,5,172,189,5,5,173,189,5,5,174,189,5,5,159,197,5,5,175,189,5,5,9,182,5,5,176,189,5,5,177,189,5,5,178,189,5,5,179,189,5,5,180,189,5,5,181,189,5,5,182,189,5,5,183,189,5,5,184,189,5,5,185,189,5,5,186,189,5,5,187,189,5,5,188,189,5,5,189,189,5,5,190,189,5,5,253,181,5,5,191,189,5,5,192,189,5,5,193,189,5,5,194,189,5,5,195,189,5,5,196,189,5,5,197,189,5,5,198,189,5,5,199,189,5,5,200,189,5,5,160,197,5,5,161,197,5,5,162,197,5,5,163,197,5,5,164,197,5,5,165,197,5,5,166,197,5,5,167,197,5,5,168,197,5,5,169,197,5,5,95,205,5,5,170,197,5,5,171,197,5,5,172,197,5,5,173,197,5,5,174,197,5,5,175,197,5,5,176,197,5,5,177,197,5,5,93,205,5,5,178,197,5,5,179,197,5,5,180,197,5,5,181,197,5,5,182,197,5,5,183,197,5,5,184,197,5,5,185,197,5,5,186,197,5,5,187,197,5,5,188,197,5,5,189,197,5,5,190,197,5,5,191,197,5,5,192,197,5,5,193,197,5,5,194,197,5,5,195,197,5,5,196,197,5,5,197,197,5,5,198,197,5,5,96,205,5,5,97,205,5,5,98,205,5,5,99,205,5,5,100,205,5,5,101,205,5,5,102,205,5,5,103,205,5,5,104,205,5,5,105,205,5,5,106,205,5,5,107,205,5,5,108,205,5,5,109,205,5,5,110,205,5,5,111,205,5,5,112,205,5,5,113,205,5,5,114,205,5,5,115,205,5,5,116,205,5,5,117,205,5,5,118,205,5,5,119,205,5,5,120,205,5,5,121,205,5,5,122,205,5,5,123,205,5,5,124,205,5,5,125,205,5,5,126,205,5,5,127,205,5,5,128,205,5,5,129,205,5,5,130,205,5,5,231,212,5,5,232,212,5,5,233,212,5,5,234,212,5,5,235,212,5,5,236,212,5,5,237,212,5,5,238,212,5,5,239,212,5,5,203,219,5,5,240,212,5,5,241,212,5,5,204,219,5,5,242,212,5,5,243,212,5,5,146,205,5,5,244,212,5,5,245,212,5,5,246,212,5,5,247,212,5,5,248,212,5,5,249,212,5,5,250,212,5,5,251,212,5,5,252,212,5,5,205,219,5,5,206,219,5,5,207,219,5,5,208,219,5,5,209,219,5,5,210,219,5,5,89,226,5,5,211,219,5,5,212,219,5,5,213,219,5,5,214,219,5,5,215,219,5,5,216,219,5,5,217,219,5,5,218,219,5,5,219,219,5,5,220,219,5,5,221,219,5,5,222,219,5,5,223,219,5,5,90,226,5,5,224,219,5,5,91,226,5,5,157,231,5,5,92,226,5,5,93,226,5,5,225,219,5,5,94,226,5,5,95,226,5,5,96,226,5,5,158,231,5,5,97,226,5,5,98,226,5,5,99,226,5,5,100,226,5,5,101,226,5,5,102,226,5,5,103,226,5,5,104,226,5,5,105,226,5,5,106,226,5,5,121,226,5,5,107,226,5,5,108,226,5,5,160,231,5,5,161,231,5,5,255,235,5,5,162,231,5,5,163,231,5,5,164,231,5,5,165,231,5,5,166,231,5,5,167,231,5,5,168,231,5,5,169,231,5,5,170,231,5,5,171,231,5,5,172,231,5,5,173,231,5,5,174,231,5,5,2,236,5,5,3,236,5,5,159,239,5,5,4,236,5,5,5,236,5,5,167,242,5,5,6,236,5,5,7,236,5,5,160,239,5,5,8,236,5,5,9,236,5,5,10,236,5,5,11,236,5,5,12,236,5,5,161,239,5,5,162,239,5,5,163,239,5,5,164,239,5,5,165,239,5,5,166,239,5,5,167,239,5,5,168,239,5,5,169,239,5,5,168,242,5,5,169,242,5,5,170,242,5,5,171,242,5,5,172,242,5,5,173,242,5,5,174,242,5,5,242,244,5,5,243,244,5,5,170,246,5,5,244,244,5,5,171,246,5,5,172,246,5,5,173,246,5,5,235,247,5,5,209,248,5,5,149,159,5,5,13,170,5,5,10,182,5,5,11,182,5,5,209,189,5,5,147,205,5,5,122,226,5,5,178,239,5,5,174,246,5,5,210,248,5,5,150,159,5,5,19,165,5,5,14,170,5,5,15,170,5,5,140,175,5,5,141,175,5,5,142,175,5,5,143,175,5,5,144,175,5,5,145,175,5,5,146,175,5,5,147,175,5,5,148,175,5,5,12,182,5,5,13,182,5,5,14,182,5,5,211,189,5,5,212,189,5,5,213,189,5,5,221,197,5,5,222,197,5,5,223,197,5,5,224,197,5,5,148,205,5,5,149,205,5,5,150,205,5,5,11,213,5,5,151,205,5,5,12,213,5,5,13,213,5,5,14,213,5,5,15,213,5,5,16,213,5,5,243,219,5,5,244,219,5,5,245,219,5,5,124,226,5,5,125,226,5,5,126,226,5,5,127,226,5,5,128,226,5,5,183,231,5,5,184,231,5,5,185,231,5,5,186,231,5,5,22,236,5,5,23,236,5,5,24,236,5,5,179,239,5,5,247,244,5,5,151,159,5,5,16,170,5,5,149,175,5,5,215,189,5,5,216,189,5,5,152,205,5,5,153,205,5,5,152,159,5,5,150,175,5,5,15,182,5,5,217,189,5,5,218,189,5,5,225,197,5,5,226,197,5,5,227,197,5,5,18,213,5,5,153,159,5,5,154,159,5,5,161,161,5,5,20,165,5,5,21,165,5,5,151,175,5,5,152,175,5,5,228,197,5,5,155,159,5,5,156,159,5,5,157,159,5,5,158,159,5,5,159,159,5,5,160,159,5,5,162,161,5,5,22,165,5,5,23,165,5,5,24,165,5,5,25,165,5,5,17,170,5,5,26,165,5,5,18,170,5,5,19,170,5,5,20,170,5,5,21,170,5,5,22,170,5,5,23,170,5,5,24,170,5,5,25,170,5,5,26,170,5,5,153,175,5,5,154,175,5,5,155,175,5,5,156,175,5,5,157,175,5,5,158,175,5,5,159,175,5,5,160,175,5,5,161,175,5,5,162,175,5,5,163,175,5,5,164,175,5,5,165,175,5,5,166,175,5,5,16,182,5,5,17,182,5,5,18,182,5,5,19,182,5,5,20,182,5,5,21,182,5,5,22,182,5,5,23,182,5,5,24,182,5,5,25,182,5,5,26,182,5,5,27,182,5,5,53,182,5,5,219,189,5,5,220,189,5,5,221,189,5,5,222,189,5,5,223,189,5,5,224,189,5,5,225,189,5,5,144,190,5,5,226,189,5,5,230,197,5,5,231,197,5,5,232,197,5,5,233,197,5,5,234,197,5,5,235,197,5,5,227,189,5,5,239,197,5,5,236,197,5,5,237,197,5,5,238,197,5,5,154,205,5,5,155,205,5,5,156,205,5,5,157,205,5,5,158,205,5,5,159,205,5,5,19,213,5,5,20,213,5,5,21,213,5,5,248,219,5,5,249,219,5,5,129,226,5,5,130,226,5,5,131,226,5,5,188,231,5,5,189,231,5,5,25,236,5,5,180,239,5,5,181,239,5,5,178,242,5,5,179,242,5,5,175,246,5,5,161,159,5,5,27,170,5,5,28,182,5,5,240,197,5,5,241,197,5,5,22,213,5,5,23,213,5,5,164,159,5,5,28,165,5,5,29,165,5,5,30,165,5,5,31,165,5,5,32,165,5,5,28,170,5,5,29,170,5,5,30,170,5,5,31,170,5,5,32,170,5,5,33,170,5,5,34,170,5,5,35,170,5,5,36,170,5,5,37,170,5,5,169,175,5,5,170,175,5,5,171,175,5,5,172,175,5,5,173,175,5,5,174,175,5,5,175,175,5,5,176,175,5,5,177,175,5,5,178,175,5,5,179,175,5,5,180,175,5,5,181,175,5,5,182,175,5,5,29,182,5,5,30,182,5,5,31,182,5,5,32,182,5,5,33,182,5,5,228,189,5,5,34,182,5,5,35,182,5,5,36,182,5,5,37,182,5,5,183,175,5,5,38,182,5,5,39,182,5,5,40,182,5,5,41,182,5,5,42,182,5,5,43,182,5,5,44,182,5,5,45,182,5,5,46,182,5,5,47,182,5,5,48,182,5,5,49,182,5,5,50,182,5,5,51,182,5,5,52,182,5,5,229,189,5,5,230,189,5,5,231,189,5,5,232,189,5,5,233,189,5,5,234,189,5,5,235,189,5,5,236,189,5,5,237,189,5,5,238,189,5,5,239,189,5,5,240,189,5,5,241,189,5,5,242,197,5,5,243,197,5,5,244,197,5,5,245,197,5,5,246,197,5,5,247,197,5,5,248,197,5,5,249,197,5,5,250,197,5,5,251,197,5,5,252,197,5,5,253,197,5,5,254,197,5,5,255,197,5,5,2,198,5,5,3,198,5,5,4,198,5,5,5,198,5,5,6,198,5,5,7,198,5,5,8,198,5,5,163,205,5,5,164,205,5,5,165,205,5,5,166,205,5,5,167,205,5,5,168,205,5,5,169,205,5,5,170,205,5,5,171,205,5,5,172,205,5,5,173,205,5,5,174,205,5,5,175,205,5,5,176,205,5,5,177,205,5,5,178,205,5,5,179,205,5,5,180,205,5,5,181,205,5,5,182,205,5,5,183,205,5,5,184,205,5,5,185,205,5,5,186,205,5,5,187,205,5,5,188,205,5,5,189,205,5,5,24,213,5,5,25,213,5,5,26,213,5,5,27,213,5,5,28,213,5,5,29,213,5,5,30,213,5,5,31,213,5,5,192,205,5,5,193,205,5,5,32,213,5,5,33,213,5,5,34,213,5,5,35,213,5,5,36,213,5,5,37,213,5,5,38,213,5,5,39,213,5,5,251,219,5,5,252,219,5,5,253,219,5,5,254,219,5,5,255,219,5,5,2,220,5,5,250,219,5,5,3,220,5,5,4,220,5,5,5,220,5,5,6,220,5,5,7,220,5,5,8,220,5,5,9,220,5,5,40,213,5,5,10,220,5,5,11,220,5,5,12,220,5,5,13,220,5,5,133,226,5,5,134,226,5,5,135,226,5,5,136,226,5,5,137,226,5,5,138,226,5,5,139,226,5,5,140,226,5,5,141,226,5,5,142,226,5,5,143,226,5,5,144,226,5,5,145,226,5,5,146,226,5,5,147,226,5,5,148,226,5,5,149,226,5,5,150,226,5,5,151,226,5,5,152,226,5,5,191,231,5,5,192,231,5,5,193,231,5,5,194,231,5,5,195,231,5,5,196,231,5,5,197,231,5,5,198,231,5,5,199,231,5,5,200,231,5,5,153,226,5,5,201,231,5,5,202,231,5,5,203,231,5,5,204,231,5,5,26,236,5,5,27,236,5,5,28,236,5,5,29,236,5,5,30,236,5,5,31,236,5,5,32,236,5,5,33,236,5,5,34,236,5,5,35,236,5,5,36,236,5,5,37,236,5,5,38,236,5,5,39,236,5,5,40,236,5,5,41,236,5,5,182,239,5,5,183,239,5,5,184,239,5,5,180,242,5,5,185,239,5,5,42,236,5,5,181,242,5,5,182,242,5,5,248,244,5,5,249,244,5,5,250,244,5,5,251,244,5,5,252,244,5,5,176,246,5,5,177,246,5,5,178,246,5,5,237,247,5,5,238,247,5,5,211,248,5,5,212,248,5,5,230,249,5,5,93,250,5,5,138,250,5,5,165,159,5,5,38,170,5,5,185,175,5,5,186,175,5,5,187,175,5,5,12,198,5,5,13,198,5,5,166,159,5,5,163,161,5,5,164,161,5,5,33,165,5,5,34,165,5,5,35,165,5,5,36,165,5,5,39,170,5,5,188,175,5,5,189,175,5,5,190,175,5,5,191,175,5,5,242,189,5,5,54,182,5,5,55,182,5,5,56,182,5,5,57,182,5,5,243,189,5,5,244,189,5,5,245,189,5,5,246,189,5,5,14,198,5,5,15,198,5,5,16,198,5,5,17,198,5,5,18,198,5,5,194,205,5,5,195,205,5,5,196,205,5,5,18,220,5,5,19,220,5,5,20,220,5,5,21,220,5,5,22,220,5,5,155,226,5,5,156,226,5,5,157,226,5,5,207,231,5,5,208,231,5,5,209,231,5,5,210,231,5,5,43,236,5,5,44,236,5,5,45,236,5,5,186,239,5,5,183,242,5,5,184,242,5,5,254,244,5,5,180,246,5,5,167,159,5,5,40,170,5,5,59,182,5,5,60,182,5,5,247,189,5,5,19,198,5,5,20,198,5,5,199,205,5,5,41,213,5,5,42,213,5,5,43,213,5,5,44,213,5,5,26,220,5,5,158,226,5,5,211,231,5,5,47,236,5,5,185,242,5,5,168,159,5,5,37,165,5,5,38,165,5,5,41,170,5,5,192,175,5,5,193,175,5,5,194,175,5,5,195,175,5,5,196,175,5,5,197,175,5,5,62,182,5,5,63,182,5,5,64,182,5,5,65,182,5,5,66,182,5,5,67,182,5,5,68,182,5,5,69,182,5,5,70,182,5,5,248,189,5,5,249,189,5,5,250,189,5,5,251,189,5,5,252,189,5,5,253,189,5,5,254,189,5,5,21,198,5,5,22,198,5,5,255,189,5,5,23,198,5,5,200,205,5,5,201,205,5,5,202,205,5,5,45,213,5,5,46,213,5,5,47,213,5,5,48,213,5,5,27,220,5,5,159,226,5,5,160,226,5,5,161,226,5,5,212,231,5,5,213,231,5,5,214,231,5,5,49,236,5,5,50,236,5,5,187,242,5,5,169,159,5,5,39,165,5,5,42,170,5,5,43,170,5,5,44,170,5,5,45,170,5,5,46,170,5,5,47,170,5,5,198,175,5,5,199,175,5,5,200,175,5,5,201,175,5,5,202,175,5,5,203,175,5,5,204,175,5,5,205,175,5,5,206,175,5,5,207,175,5,5,208,175,5,5,209,175,5,5,210,175,5,5,211,175,5,5,212,175,5,5,213,175,5,5,214,175,5,5,215,175,5,5,216,175,5,5,217,175,5,5,218,175,5,5,219,175,5,5,220,175,5,5,221,175,5,5,73,182,5,5,74,182,5,5,75,182,5,5,76,182,5,5,77,182,5,5,78,182,5,5,79,182,5,5,80,182,5,5,81,182,5,5,82,182,5,5,83,182,5,5,84,182,5,5,85,182,5,5,86,182,5,5,87,182,5,5,88,182,5,5,89,182,5,5,90,182,5,5,91,182,5,5,92,182,5,5,93,182,5,5,94,182,5,5,95,182,5,5,4,190,5,5,5,190,5,5,96,182,5,5,97,182,5,5,98,182,5,5,99,182,5,5,100,182,5,5,101,182,5,5,6,190,5,5,7,190,5,5,8,190,5,5,9,190,5,5,10,190,5,5,11,190,5,5,12,190,5,5,13,190,5,5,14,190,5,5,15,190,5,5,16,190,5,5,17,190,5,5,18,190,5,5,19,190,5,5,20,190,5,5,21,190,5,5,22,190,5,5,23,190,5,5,102,182,5,5,27,190,5,5,24,190,5,5,25,198,5,5,26,198,5,5,27,198,5,5,28,198,5,5,29,198,5,5,30,198,5,5,31,198,5,5,32,198,5,5,33,198,5,5,34,198,5,5,35,198,5,5,36,198,5,5,37,198,5,5,38,198,5,5,39,198,5,5,40,198,5,5,204,205,5,5,205,205,5,5,206,205,5,5,207,205,5,5,208,205,5,5,209,205,5,5,210,205,5,5,211,205,5,5,212,205,5,5,213,205,5,5,214,205,5,5,215,205,5,5,216,205,5,5,217,205,5,5,218,205,5,5,236,205,5,5,219,205,5,5,220,205,5,5,221,205,5,5,222,205,5,5,223,205,5,5,224,205,5,5,225,205,5,5,226,205,5,5,227,205,5,5,228,205,5,5,229,205,5,5,230,205,5,5,49,213,5,5,50,213,5,5,51,213,5,5,52,213,5,5,53,213,5,5,54,213,5,5,55,213,5,5,56,213,5,5,57,213,5,5,58,213,5,5,59,213,5,5,237,205,5,5,60,213,5,5,61,213,5,5,62,213,5,5,63,213,5,5,64,213,5,5,65,213,5,5,66,213,5,5,67,213,5,5,68,213,5,5,69,213,5,5,70,213,5,5,71,213,5,5,72,213,5,5,28,220,5,5,29,220,5,5,30,220,5,5,31,220,5,5,32,220,5,5,33,220,5,5,34,220,5,5,35,220,5,5,36,220,5,5,37,220,5,5,38,220,5,5,39,220,5,5,40,220,5,5,163,226,5,5,164,226,5,5,165,226,5,5,166,226,5,5,167,226,5,5,168,226,5,5,169,226,5,5,170,226,5,5,171,226,5,5,172,226,5,5,173,226,5,5,174,226,5,5,175,226,5,5,176,226,5,5,177,226,5,5,178,226,5,5,216,231,5,5,183,226,5,5,217,231,5,5,218,231,5,5,219,231,5,5,220,231,5,5,221,231,5,5,222,231,5,5,223,231,5,5,224,231,5,5,225,231,5,5,226,231,5,5,227,231,5,5,228,231,5,5,229,231,5,5,230,231,5,5,231,231,5,5,232,231,5,5,233,231,5,5,234,231,5,5,51,236,5,5,52,236,5,5,53,236,5,5,54,236,5,5,55,236,5,5,56,236,5,5,57,236,5,5,58,236,5,5,59,236,5,5,60,236,5,5,61,236,5,5,188,239,5,5,189,239,5,5,190,239,5,5,191,239,5,5,192,239,5,5,193,239,5,5,194,239,5,5,195,239,5,5,188,242,5,5,189,242,5,5,190,242,5,5,191,242,5,5,192,242,5,5,2,245,5,5,3,245,5,5,4,245,5,5,5,245,5,5,239,247,5,5,214,248,5,5,216,248,5,5,215,248,5,5,125,249,5,5,126,249,5,5,231,249,5,5,170,159,5,5,224,175,5,5,105,182,5,5,43,198,5,5,44,198,5,5,238,205,5,5,127,249,5,5,171,159,5,5,40,165,5,5,48,170,5,5,49,170,5,5,225,175,5,5,226,175,5,5,227,175,5,5,106,182,5,5,28,190,5,5,29,190,5,5,45,198,5,5,46,198,5,5,239,205,5,5,238,231,5,5,239,231,5,5,199,239,5,5,193,242,5,5,172,159,5,5,41,165,5,5,42,165,5,5,43,165,5,5,50,170,5,5,51,170,5,5,52,170,5,5,53,170,5,5,54,170,5,5,55,170,5,5,56,170,5,5,57,170,5,5,58,170,5,5,59,170,5,5,60,170,5,5,229,175,5,5,230,175,5,5,231,175,5,5,232,175,5,5,233,175,5,5,234,175,5,5,235,175,5,5,236,175,5,5,237,175,5,5,238,175,5,5,239,175,5,5,240,175,5,5,241,175,5,5,242,175,5,5,243,175,5,5,244,175,5,5,245,175,5,5,246,175,5,5,247,175,5,5,248,175,5,5,249,175,5,5,250,175,5,5,251,175,5,5,252,175,5,5,253,175,5,5,254,175,5,5,255,175,5,5,107,182,5,5,108,182,5,5,109,182,5,5,110,182,5,5,111,182,5,5,112,182,5,5,113,182,5,5,114,182,5,5,115,182,5,5,30,190,5,5,116,182,5,5,117,182,5,5,118,182,5,5,119,182,5,5,120,182,5,5,121,182,5,5,122,182,5,5,123,182,5,5,124,182,5,5,125,182,5,5,126,182,5,5,127,182,5,5,128,182,5,5,129,182,5,5,130,182,5,5,131,182,5,5,132,182,5,5,133,182,5,5,134,182,5,5,135,182,5,5,136,182,5,5,137,182,5,5,138,182,5,5,139,182,5,5,140,182,5,5,141,182,5,5,142,182,5,5,31,190,5,5,32,190,5,5,33,190,5,5,34,190,5,5,35,190,5,5,36,190,5,5,37,190,5,5,38,190,5,5,39,190,5,5,40,190,5,5,41,190,5,5,42,190,5,5,43,190,5,5,44,190,5,5,45,190,5,5,46,190,5,5,47,190,5,5,48,190,5,5,49,190,5,5,50,190,5,5,51,190,5,5,52,190,5,5,53,190,5,5,54,190,5,5,55,190,5,5,56,190,5,5,47,198,5,5,48,198,5,5,49,198,5,5,50,198,5,5,51,198,5,5,52,198,5,5,53,198,5,5,54,198,5,5,55,198,5,5,56,198,5,5,57,198,5,5,58,198,5,5,59,198,5,5,60,198,5,5,61,198,5,5,62,198,5,5,63,198,5,5,64,198,5,5,65,198,5,5,66,198,5,5,67,198,5,5,68,198,5,5,69,198,5,5,70,198,5,5,71,198,5,5,72,198,5,5,73,198,5,5,74,198,5,5,240,205,5,5,241,205,5,5,242,205,5,5,243,205,5,5,244,205,5,5,245,205,5,5,76,213,5,5,246,205,5,5,247,205,5,5,248,205,5,5,249,205,5,5,250,205,5,5,251,205,5,5,252,205,5,5,253,205,5,5,254,205,5,5,255,205,5,5,2,206,5,5,3,206,5,5,4,206,5,5,5,206,5,5,6,206,5,5,7,206,5,5,8,206,5,5,9,206,5,5,10,206,5,5,11,206,5,5,12,206,5,5,13,206,5,5,14,206,5,5,15,206,5,5,16,206,5,5,17,206,5,5,18,206,5,5,19,206,5,5,20,206,5,5,21,206,5,5,77,213,5,5,78,213,5,5,79,213,5,5,80,213,5,5,81,213,5,5,82,213,5,5,83,213,5,5,84,213,5,5,85,213,5,5,86,213,5,5,87,213,5,5,88,213,5,5,89,213,5,5,90,213,5,5,91,213,5,5,92,213,5,5,93,213,5,5,94,213,5,5,95,213,5,5,22,206,5,5,96,213,5,5,97,213,5,5,98,213,5,5,99,213,5,5,100,213,5,5,101,213,5,5,102,213,5,5,103,213,5,5,104,213,5,5,43,220,5,5,44,220,5,5,45,220,5,5,46,220,5,5,47,220,5,5,48,220,5,5,49,220,5,5,105,213,5,5,50,220,5,5,51,220,5,5,52,220,5,5,53,220,5,5,54,220,5,5,55,220,5,5,56,220,5,5,57,220,5,5,58,220,5,5,59,220,5,5,60,220,5,5,61,220,5,5,62,220,5,5,63,220,5,5,64,220,5,5,65,220,5,5,66,220,5,5,67,220,5,5,68,220,5,5,69,220,5,5,184,226,5,5,70,220,5,5,71,220,5,5,72,220,5,5,186,226,5,5,187,226,5,5,185,226,5,5,188,226,5,5,189,226,5,5,190,226,5,5,191,226,5,5,192,226,5,5,193,226,5,5,194,226,5,5,73,220,5,5,195,226,5,5,196,226,5,5,197,226,5,5,198,226,5,5,199,226,5,5,200,226,5,5,201,226,5,5,202,226,5,5,203,226,5,5,204,226,5,5,240,231,5,5,241,231,5,5,242,231,5,5,243,231,5,5,244,231,5,5,245,231,5,5,246,231,5,5,247,231,5,5,248,231,5,5,249,231,5,5,250,231,5,5,251,231,5,5,252,231,5,5,253,231,5,5,254,231,5,5,255,231,5,5,2,232,5,5,3,232,5,5,4,232,5,5,5,232,5,5,6,232,5,5,7,232,5,5,8,232,5,5,63,236,5,5,64,236,5,5,65,236,5,5,66,236,5,5,67,236,5,5,68,236,5,5,69,236,5,5,70,236,5,5,71,236,5,5,72,236,5,5,73,236,5,5,74,236,5,5,75,236,5,5,76,236,5,5,77,236,5,5,78,236,5,5,79,236,5,5,200,239,5,5,201,239,5,5,202,239,5,5,203,239,5,5,204,239,5,5,205,239,5,5,206,239,5,5,207,239,5,5,208,239,5,5,209,239,5,5,210,239,5,5,194,242,5,5,195,242,5,5,196,242,5,5,197,242,5,5,198,242,5,5,199,242,5,5,200,242,5,5,201,242,5,5,202,242,5,5,203,242,5,5,204,242,5,5,6,245,5,5,7,245,5,5,8,245,5,5,9,245,5,5,10,245,5,5,11,245,5,5,12,245,5,5,13,245,5,5,181,246,5,5,240,247,5,5,241,247,5,5,217,248,5,5,128,249,5,5,173,159,5,5,104,158,5,5,166,161,5,5,45,165,5,5,62,170,5,5,63,170,5,5,64,170,5,5,65,170,5,5,66,170,5,5,67,170,5,5,5,176,5,5,6,176,5,5,7,176,5,5,8,176,5,5,9,176,5,5,10,176,5,5,11,176,5,5,12,176,5,5,13,176,5,5,14,176,5,5,15,176,5,5,147,182,5,5,148,182,5,5,149,182,5,5,150,182,5,5,151,182,5,5,152,182,5,5,153,182,5,5,154,182,5,5,155,182,5,5,156,182,5,5,157,182,5,5,158,182,5,5,159,182,5,5,160,182,5,5,161,182,5,5,162,182,5,5,163,182,5,5,164,182,5,5,58,190,5,5,165,182,5,5,59,190,5,5,60,190,5,5,61,190,5,5,76,198,5,5,62,190,5,5,63,190,5,5,64,190,5,5,65,190,5,5,66,190,5,5,67,190,5,5,68,190,5,5,69,190,5,5,70,190,5,5,77,198,5,5,78,198,5,5,79,198,5,5,80,198,5,5,81,198,5,5,82,198,5,5,83,198,5,5,84,198,5,5,85,198,5,5,25,206,5,5,26,206,5,5,27,206,5,5,28,206,5,5,29,206,5,5,30,206,5,5,31,206,5,5,32,206,5,5,33,206,5,5,34,206,5,5,35,206,5,5,86,198,5,5,36,206,5,5,37,206,5,5,107,213,5,5,108,213,5,5,109,213,5,5,110,213,5,5,111,213,5,5,112,213,5,5,113,213,5,5,114,213,5,5,115,213,5,5,116,213,5,5,117,213,5,5,118,213,5,5,119,213,5,5,120,213,5,5,121,213,5,5,122,213,5,5,123,213,5,5,124,213,5,5,125,213,5,5,77,220,5,5,78,220,5,5,79,220,5,5,80,220,5,5,81,220,5,5,82,220,5,5,83,220,5,5,84,220,5,5,85,220,5,5,86,220,5,5,213,226,5,5,214,226,5,5,215,226,5,5,13,232,5,5,14,232,5,5,216,226,5,5,15,232,5,5,16,232,5,5,80,236,5,5,81,236,5,5,82,236,5,5,83,236,5,5,212,239,5,5,213,239,5,5,205,242,5,5,184,246,5,5,185,246,5,5,242,247,5,5,219,248,5,5,220,248,5,5,175,159,5,5,19,176,5,5,20,176,5,5,74,190,5,5,89,198,5,5,39,206,5,5,176,159,5,5,46,165,5,5,47,165,5,5,48,165,5,5,49,165,5,5,50,165,5,5,68,170,5,5,69,170,5,5,70,170,5,5,71,170,5,5,72,170,5,5,73,170,5,5,74,170,5,5,21,176,5,5,22,176,5,5,23,176,5,5,24,176,5,5,25,176,5,5,26,176,5,5,27,176,5,5,28,176,5,5,29,176,5,5,30,176,5,5,31,176,5,5,32,176,5,5,33,176,5,5,170,182,5,5,171,182,5,5,172,182,5,5,173,182,5,5,174,182,5,5,175,182,5,5,176,182,5,5,177,182,5,5,178,182,5,5,179,182,5,5,180,182,5,5,181,182,5,5,182,182,5,5,183,182,5,5,184,182,5,5,185,182,5,5,186,182,5,5,187,182,5,5,188,182,5,5,189,182,5,5,190,182,5,5,191,182,5,5,192,182,5,5,193,182,5,5,194,182,5,5,75,190,5,5,76,190,5,5,77,190,5,5,78,190,5,5,79,190,5,5,80,190,5,5,81,190,5,5,82,190,5,5,83,190,5,5,84,190,5,5,85,190,5,5,86,190,5,5,87,190,5,5,88,190,5,5,90,198,5,5,91,198,5,5,92,198,5,5,93,198,5,5,94,198,5,5,95,198,5,5,96,198,5,5,89,190,5,5,97,198,5,5,98,198,5,5,99,198,5,5,100,198,5,5,101,198,5,5,102,198,5,5,103,198,5,5,104,198,5,5,41,206,5,5,42,206,5,5,43,206,5,5,44,206,5,5,45,206,5,5,46,206,5,5,47,206,5,5,48,206,5,5,49,206,5,5,50,206,5,5,51,206,5,5,52,206,5,5,53,206,5,5,54,206,5,5,55,206,5,5,56,206,5,5,57,206,5,5,58,206,5,5,59,206,5,5,60,206,5,5,61,206,5,5,62,206,5,5,63,206,5,5,126,213,5,5,127,213,5,5,128,213,5,5,129,213,5,5,130,213,5,5,131,213,5,5,132,213,5,5,133,213,5,5,134,213,5,5,135,213,5,5,136,213,5,5,137,213,5,5,138,213,5,5,139,213,5,5,88,220,5,5,142,213,5,5,89,220,5,5,90,220,5,5,91,220,5,5,92,220,5,5,93,220,5,5,94,220,5,5,95,220,5,5,96,220,5,5,97,220,5,5,98,220,5,5,99,220,5,5,100,220,5,5,101,220,5,5,102,220,5,5,218,226,5,5,219,226,5,5,220,226,5,5,221,226,5,5,222,226,5,5,18,232,5,5,140,213,5,5,223,226,5,5,224,226,5,5,225,226,5,5,226,226,5,5,227,226,5,5,228,226,5,5,229,226,5,5,230,226,5,5,234,226,5,5,19,232,5,5,20,232,5,5,21,232,5,5,22,232,5,5,23,232,5,5,24,232,5,5,25,232,5,5,26,232,5,5,27,232,5,5,28,232,5,5,29,232,5,5,85,236,5,5,86,236,5,5,87,236,5,5,88,236,5,5,89,236,5,5,215,239,5,5,216,239,5,5,217,239,5,5,218,239,5,5,219,239,5,5,220,239,5,5,221,239,5,5,222,239,5,5,206,242,5,5,207,242,5,5,208,242,5,5,209,242,5,5,186,246,5,5,187,246,5,5,222,248,5,5,221,248,5,5,177,159,5,5,167,161,5,5,52,165,5,5,53,165,5,5,75,170,5,5,76,170,5,5,77,170,5,5,78,170,5,5,37,176,5,5,38,176,5,5,39,176,5,5,40,176,5,5,41,176,5,5,42,176,5,5,43,176,5,5,44,176,5,5,195,182,5,5,196,182,5,5,197,182,5,5,198,182,5,5,199,182,5,5,200,182,5,5,201,182,5,5,202,182,5,5,203,182,5,5,204,182,5,5,205,182,5,5,94,190,5,5,95,190,5,5,96,190,5,5,97,190,5,5,98,190,5,5,99,190,5,5,100,190,5,5,106,198,5,5,107,198,5,5,108,198,5,5,109,198,5,5,101,190,5,5,110,198,5,5,111,198,5,5,112,198,5,5,67,206,5,5,68,206,5,5,69,206,5,5,70,206,5,5,71,206,5,5,72,206,5,5,73,206,5,5,74,206,5,5,75,206,5,5,76,206,5,5,143,213,5,5,144,213,5,5,145,213,5,5,146,213,5,5,147,213,5,5,148,213,5,5,107,220,5,5,108,220,5,5,109,220,5,5,110,220,5,5,111,220,5,5,112,220,5,5,113,220,5,5,235,226,5,5,236,226,5,5,237,226,5,5,238,226,5,5,239,226,5,5,240,226,5,5,241,226,5,5,242,226,5,5,243,226,5,5,31,232,5,5,32,232,5,5,33,232,5,5,34,232,5,5,35,232,5,5,18,245,5,5,92,236,5,5,93,236,5,5,225,239,5,5,210,242,5,5,19,245,5,5,20,245,5,5,188,246,5,5,178,159,5,5,54,165,5,5,55,165,5,5,80,170,5,5,81,170,5,5,47,176,5,5,48,176,5,5,49,176,5,5,50,176,5,5,51,176,5,5,52,176,5,5,53,176,5,5,54,176,5,5,207,182,5,5,208,182,5,5,209,182,5,5,210,182,5,5,211,182,5,5,212,182,5,5,213,182,5,5,64,193,5,5,65,193,5,5,102,190,5,5,113,198,5,5,114,198,5,5,115,198,5,5,116,198,5,5,117,198,5,5,118,198,5,5,78,206,5,5,79,206,5,5,80,206,5,5,81,206,5,5,150,213,5,5,151,213,5,5,155,213,5,5,152,213,5,5,153,213,5,5,245,226,5,5,37,232,5,5,38,232,5,5,39,232,5,5,94,236,5,5,211,242,5,5,212,242,5,5,189,246,5,5,168,161,5,5,83,170,5,5,84,170,5,5,55,176,5,5,56,176,5,5,57,176,5,5,58,176,5,5,59,176,5,5,60,176,5,5,61,176,5,5,62,176,5,5,234,182,5,5,215,182,5,5,216,182,5,5,217,182,5,5,218,182,5,5,219,182,5,5,220,182,5,5,221,182,5,5,222,182,5,5,223,182,5,5,224,182,5,5,225,182,5,5,226,182,5,5,227,182,5,5,228,182,5,5,229,182,5,5,230,182,5,5,231,182,5,5,103,190,5,5,104,190,5,5,105,190,5,5,106,190,5,5,107,190,5,5,108,190,5,5,109,190,5,5,110,190,5,5,111,190,5,5,112,190,5,5,113,190,5,5,114,190,5,5,115,190,5,5,116,190,5,5,117,190,5,5,118,190,5,5,119,190,5,5,120,190,5,5,121,190,5,5,122,190,5,5,123,190,5,5,124,190,5,5,125,190,5,5,126,190,5,5,127,190,5,5,128,190,5,5,129,190,5,5,130,190,5,5,131,190,5,5,132,190,5,5,133,190,5,5,134,190,5,5,135,190,5,5,136,190,5,5,137,190,5,5,138,190,5,5,139,190,5,5,140,190,5,5,141,190,5,5,142,190,5,5,143,190,5,5,119,198,5,5,120,198,5,5,121,198,5,5,122,198,5,5,123,198,5,5,124,198,5,5,125,198,5,5,126,198,5,5,127,198,5,5,128,198,5,5,129,198,5,5,130,198,5,5,131,198,5,5,132,198,5,5,133,198,5,5,134,198,5,5,135,198,5,5,136,198,5,5,137,198,5,5,138,198,5,5,139,198,5,5,140,198,5,5,141,198,5,5,142,198,5,5,143,198,5,5,144,198,5,5,145,198,5,5,146,198,5,5,147,198,5,5,148,198,5,5,149,198,5,5,84,206,5,5,85,206,5,5,86,206,5,5,87,206,5,5,88,206,5,5,89,206,5,5,90,206,5,5,91,206,5,5,92,206,5,5,93,206,5,5,94,206,5,5,95,206,5,5,96,206,5,5,97,206,5,5,153,198,5,5,98,206,5,5,99,206,5,5,100,206,5,5,101,206,5,5,102,206,5,5,103,206,5,5,104,206,5,5,105,206,5,5,156,213,5,5,106,206,5,5,107,206,5,5,108,206,5,5,109,206,5,5,110,206,5,5,111,206,5,5,112,206,5,5,113,206,5,5,114,206,5,5,115,206,5,5,116,206,5,5,157,213,5,5,158,213,5,5,159,213,5,5,160,213,5,5,161,213,5,5,162,213,5,5,163,213,5,5,164,213,5,5,165,213,5,5,166,213,5,5,167,213,5,5,168,213,5,5,169,213,5,5,170,213,5,5,171,213,5,5,172,213,5,5,173,213,5,5,174,213,5,5,175,213,5,5,176,213,5,5,177,213,5,5,178,213,5,5,179,213,5,5,180,213,5,5,181,213,5,5,182,213,5,5,183,213,5,5,184,213,5,5,185,213,5,5,186,213,5,5,187,213,5,5,188,213,5,5,189,213,5,5,190,213,5,5,191,213,5,5,192,213,5,5,193,213,5,5,194,213,5,5,195,213,5,5,196,213,5,5,197,213,5,5,198,213,5,5,199,213,5,5,114,220,5,5,115,220,5,5,116,220,5,5,117,220,5,5,118,220,5,5,119,220,5,5,120,220,5,5,121,220,5,5,122,220,5,5,123,220,5,5,124,220,5,5,125,220,5,5,216,213,5,5,126,220,5,5,127,220,5,5,128,220,5,5,129,220,5,5,130,220,5,5,131,220,5,5,132,220,5,5,117,206,5,5,133,220,5,5,134,220,5,5,135,220,5,5,136,220,5,5,137,220,5,5,138,220,5,5,139,220,5,5,140,220,5,5,247,226,5,5,141,220,5,5,142,220,5,5,143,220,5,5,144,220,5,5,145,220,5,5,146,220,5,5,147,220,5,5,148,220,5,5,149,220,5,5,150,220,5,5,248,226,5,5,249,226,5,5,250,226,5,5,251,226,5,5,252,226,5,5,253,226,5,5,254,226,5,5,255,226,5,5,2,227,5,5,3,227,5,5,4,227,5,5,5,227,5,5,6,227,5,5,7,227,5,5,8,227,5,5,9,227,5,5,10,227,5,5,11,227,5,5,12,227,5,5,13,227,5,5,14,227,5,5,15,227,5,5,16,227,5,5,17,227,5,5,18,227,5,5,19,227,5,5,20,227,5,5,21,227,5,5,42,232,5,5,43,232,5,5,44,232,5,5,45,232,5,5,46,232,5,5,47,232,5,5,48,232,5,5,49,232,5,5,50,232,5,5,33,227,5,5,51,232,5,5,52,232,5,5,53,232,5,5,54,232,5,5,55,232,5,5,56,232,5,5,57,232,5,5,58,232,5,5,59,232,5,5,60,232,5,5,61,232,5,5,62,232,5,5,63,232,5,5,64,232,5,5,65,232,5,5,66,232,5,5,67,232,5,5,68,232,5,5,69,232,5,5,70,232,5,5,71,232,5,5,72,232,5,5,73,232,5,5,22,227,5,5,74,232,5,5,75,232,5,5,76,232,5,5,41,232,5,5,77,232,5,5,78,232,5,5,89,232,5,5,95,236,5,5,96,236,5,5,97,236,5,5,98,236,5,5,99,236,5,5,100,236,5,5,101,236,5,5,102,236,5,5,103,236,5,5,104,236,5,5,105,236,5,5,106,236,5,5,107,236,5,5,108,236,5,5,109,236,5,5,110,236,5,5,111,236,5,5,112,236,5,5,113,236,5,5,226,239,5,5,114,236,5,5,115,236,5,5,116,236,5,5,117,236,5,5,118,236,5,5,119,236,5,5,227,239,5,5,228,239,5,5,229,239,5,5,230,239,5,5,231,239,5,5,232,239,5,5,233,239,5,5,234,239,5,5,235,239,5,5,236,239,5,5,237,239,5,5,238,239,5,5,239,239,5,5,240,239,5,5,241,239,5,5,242,239,5,5,213,242,5,5,214,242,5,5,215,242,5,5,216,242,5,5,217,242,5,5,218,242,5,5,219,242,5,5,220,242,5,5,221,242,5,5,222,242,5,5,223,242,5,5,224,242,5,5,225,242,5,5,22,245,5,5,23,245,5,5,24,245,5,5,25,245,5,5,26,245,5,5,226,242,5,5,21,245,5,5,190,246,5,5,191,246,5,5,192,246,5,5,193,246,5,5,194,246,5,5,195,246,5,5,196,246,5,5,243,247,5,5,197,246,5,5,198,246,5,5,199,246,5,5,244,247,5,5,245,247,5,5,246,247,5,5,247,247,5,5,248,247,5,5,249,247,5,5,250,247,5,5,129,249,5,5,223,248,5,5,130,249,5,5,131,249,5,5,132,249,5,5,133,249,5,5,232,249,5,5,233,249,5,5,140,250,5,5,160,250,5,5,169,161,5,5,85,170,5,5,86,170,5,5,87,170,5,5,65,176,5,5,66,176,5,5,67,176,5,5,68,176,5,5,69,176,5,5,70,176,5,5,71,176,5,5,72,176,5,5,73,176,5,5,74,176,5,5,75,176,5,5,76,176,5,5,235,182,5,5,236,182,5,5,237,182,5,5,238,182,5,5,239,182,5,5,240,182,5,5,241,182,5,5,242,182,5,5,243,182,5,5,244,182,5,5,245,182,5,5,246,182,5,5,247,182,5,5,248,182,5,5,249,182,5,5,145,190,5,5,146,190,5,5,147,190,5,5,148,190,5,5,149,190,5,5,150,190,5,5,151,190,5,5,152,190,5,5,153,190,5,5,154,190,5,5,155,190,5,5,156,190,5,5,154,198,5,5,155,198,5,5,156,198,5,5,157,198,5,5,158,198,5,5,157,190,5,5,159,198,5,5,160,198,5,5,161,198,5,5,162,198,5,5,163,198,5,5,164,198,5,5,165,198,5,5,166,198,5,5,167,198,5,5,168,198,5,5,128,206,5,5,129,206,5,5,130,206,5,5,131,206,5,5,132,206,5,5,133,206,5,5,134,206,5,5,135,206,5,5,217,213,5,5,218,213,5,5,219,213,5,5,220,213,5,5,221,213,5,5,222,213,5,5,223,213,5,5,224,213,5,5,225,213,5,5,226,213,5,5,136,206,5,5,227,213,5,5,170,220,5,5,171,220,5,5,172,220,5,5,173,220,5,5,174,220,5,5,175,220,5,5,176,220,5,5,177,220,5,5,178,220,5,5,179,220,5,5,180,220,5,5,181,220,5,5,182,220,5,5,34,227,5,5,35,227,5,5,36,227,5,5,37,227,5,5,38,227,5,5,39,227,5,5,40,227,5,5,41,227,5,5,42,227,5,5,43,227,5,5,90,232,5,5,91,232,5,5,92,232,5,5,93,232,5,5,94,232,5,5,95,232,5,5,96,232,5,5,97,232,5,5,98,232,5,5,99,232,5,5,125,236,5,5,126,236,5,5,127,236,5,5,128,236,5,5,129,236,5,5,100,232,5,5,247,239,5,5,248,239,5,5,249,239,5,5,250,239,5,5,251,239,5,5,227,242,5,5,228,242,5,5,229,242,5,5,201,246,5,5,29,245,5,5,235,249,5,5,202,246,5,5,252,247,5,5,134,249,5,5,34,250,5,5,170,161,5,5,171,161,5,5,56,165,5,5,57,165,5,5,88,170,5,5,89,170,5,5,90,170,5,5,91,170,5,5,78,176,5,5,79,176,5,5,80,176,5,5,81,176,5,5,82,176,5,5,83,176,5,5,84,176,5,5,85,176,5,5,86,176,5,5,87,176,5,5,250,182,5,5,251,182,5,5,252,182,5,5,253,182,5,5,254,182,5,5,255,182,5,5,2,183,5,5,3,183,5,5,4,183,5,5,5,183,5,5,6,183,5,5,7,183,5,5,8,183,5,5,9,183,5,5,10,183,5,5,11,183,5,5,12,183,5,5,13,183,5,5,14,183,5,5,15,183,5,5,16,183,5,5,17,183,5,5,18,183,5,5,19,183,5,5,20,183,5,5,21,183,5,5,22,183,5,5,23,183,5,5,24,183,5,5,25,183,5,5,159,190,5,5,160,190,5,5,170,198,5,5,171,198,5,5,161,190,5,5,162,190,5,5,163,190,5,5,164,190,5,5,165,190,5,5,166,190,5,5,167,190,5,5,168,190,5,5,169,190,5,5,170,190,5,5,171,190,5,5,172,190,5,5,173,190,5,5,174,190,5,5,175,190,5,5,176,190,5,5,177,190,5,5,178,190,5,5,179,190,5,5,180,190,5,5,181,190,5,5,182,190,5,5,183,190,5,5,184,190,5,5,185,190,5,5,186,190,5,5,187,190,5,5,188,190,5,5,189,190,5,5,190,190,5,5,191,190,5,5,192,190,5,5,193,190,5,5,172,198,5,5,173,198,5,5,174,198,5,5,175,198,5,5,176,198,5,5,177,198,5,5,178,198,5,5,179,198,5,5,180,198,5,5,181,198,5,5,182,198,5,5,183,198,5,5,184,198,5,5,185,198,5,5,141,206,5,5,186,198,5,5,187,198,5,5,188,198,5,5,189,198,5,5,190,198,5,5,191,198,5,5,192,198,5,5,193,198,5,5,194,198,5,5,195,198,5,5,196,198,5,5,197,198,5,5,198,198,5,5,199,198,5,5,200,198,5,5,201,198,5,5,202,198,5,5,203,198,5,5,204,198,5,5,205,198,5,5,206,198,5,5,207,198,5,5,208,198,5,5,209,198,5,5,210,198,5,5,211,198,5,5,212,198,5,5,213,198,5,5,142,206,5,5,143,206,5,5,144,206,5,5,145,206,5,5,146,206,5,5,147,206,5,5,214,198,5,5,148,206,5,5,149,206,5,5,150,206,5,5,151,206,5,5,152,206,5,5,153,206,5,5,154,206,5,5,155,206,5,5,156,206,5,5,157,206,5,5,158,206,5,5,159,206,5,5,160,206,5,5,161,206,5,5,162,206,5,5,163,206,5,5,164,206,5,5,165,206,5,5,166,206,5,5,167,206,5,5,168,206,5,5,169,206,5,5,170,206,5,5,230,213,5,5,171,206,5,5,172,206,5,5,173,206,5,5,174,206,5,5,175,206,5,5,232,213,5,5,233,213,5,5,234,213,5,5,235,213,5,5,236,213,5,5,237,213,5,5,238,213,5,5,239,213,5,5,240,213,5,5,241,213,5,5,242,213,5,5,243,213,5,5,244,213,5,5,245,213,5,5,246,213,5,5,247,213,5,5,248,213,5,5,249,213,5,5,250,213,5,5,251,213,5,5,252,213,5,5,253,213,5,5,254,213,5,5,255,213,5,5,2,214,5,5,3,214,5,5,4,214,5,5,5,214,5,5,6,214,5,5,7,214,5,5,8,214,5,5,9,214,5,5,10,214,5,5,11,214,5,5,12,214,5,5,13,214,5,5,14,214,5,5,15,214,5,5,16,214,5,5,17,214,5,5,18,214,5,5,19,214,5,5,20,214,5,5,21,214,5,5,22,214,5,5,23,214,5,5,24,214,5,5,25,214,5,5,26,214,5,5,27,214,5,5,28,214,5,5,29,214,5,5,231,213,5,5,30,214,5,5,31,214,5,5,186,220,5,5,32,214,5,5,33,214,5,5,187,220,5,5,188,220,5,5,189,220,5,5,190,220,5,5,191,220,5,5,192,220,5,5,193,220,5,5,194,220,5,5,195,220,5,5,196,220,5,5,197,220,5,5,198,220,5,5,199,220,5,5,200,220,5,5,201,220,5,5,202,220,5,5,203,220,5,5,204,220,5,5,205,220,5,5,206,220,5,5,207,220,5,5,208,220,5,5,209,220,5,5,210,220,5,5,211,220,5,5,212,220,5,5,213,220,5,5,214,220,5,5,215,220,5,5,216,220,5,5,217,220,5,5,218,220,5,5,219,220,5,5,220,220,5,5,221,220,5,5,222,220,5,5,223,220,5,5,224,220,5,5,225,220,5,5,226,220,5,5,227,220,5,5,228,220,5,5,229,220,5,5,230,220,5,5,231,220,5,5,232,220,5,5,233,220,5,5,234,220,5,5,235,220,5,5,236,220,5,5,45,227,5,5,46,227,5,5,47,227,5,5,48,227,5,5,49,227,5,5,50,227,5,5,51,227,5,5,52,227,5,5,53,227,5,5,54,227,5,5,55,227,5,5,56,227,5,5,57,227,5,5,58,227,5,5,59,227,5,5,60,227,5,5,61,227,5,5,62,227,5,5,63,227,5,5,64,227,5,5,65,227,5,5,66,227,5,5,67,227,5,5,68,227,5,5,69,227,5,5,70,227,5,5,71,227,5,5,72,227,5,5,73,227,5,5,74,227,5,5,75,227,5,5,76,227,5,5,77,227,5,5,102,232,5,5,103,232,5,5,104,232,5,5,105,232,5,5,106,232,5,5,107,232,5,5,108,232,5,5,109,232,5,5,110,232,5,5,111,232,5,5,112,232,5,5,113,232,5,5,114,232,5,5,115,232,5,5,116,232,5,5,117,232,5,5,118,232,5,5,119,232,5,5,120,232,5,5,121,232,5,5,122,232,5,5,123,232,5,5,124,232,5,5,125,232,5,5,126,232,5,5,127,232,5,5,128,232,5,5,129,232,5,5,130,232,5,5,131,232,5,5,132,232,5,5,139,232,5,5,133,232,5,5,134,232,5,5,253,239,5,5,135,232,5,5,136,232,5,5,132,236,5,5,133,236,5,5,134,236,5,5,135,236,5,5,136,236,5,5,137,236,5,5,138,236,5,5,139,236,5,5,140,236,5,5,141,236,5,5,142,236,5,5,143,236,5,5,144,236,5,5,145,236,5,5,146,236,5,5,147,236,5,5,148,236,5,5,149,236,5,5,150,236,5,5,151,236,5,5,152,236,5,5,153,236,5,5,154,236,5,5,155,236,5,5,254,239,5,5,156,236,5,5,255,239,5,5,2,240,5,5,3,240,5,5,4,240,5,5,5,240,5,5,6,240,5,5,7,240,5,5,8,240,5,5,9,240,5,5,157,236,5,5,10,240,5,5,11,240,5,5,12,240,5,5,13,240,5,5,14,240,5,5,15,240,5,5,16,240,5,5,17,240,5,5,18,240,5,5,231,242,5,5,232,242,5,5,233,242,5,5,234,242,5,5,235,242,5,5,236,242,5,5,237,242,5,5,238,242,5,5,239,242,5,5,30,245,5,5,31,245,5,5,32,245,5,5,33,245,5,5,34,245,5,5,35,245,5,5,36,245,5,5,37,245,5,5,38,245,5,5,39,245,5,5,40,245,5,5,41,245,5,5,42,245,5,5,203,246,5,5,204,246,5,5,253,247,5,5,254,247,5,5,255,247,5,5,2,248,5,5,225,248,5,5,135,249,5,5,136,249,5,5,137,249,5,5,138,249,5,5,35,250,5,5,36,250,5,5,123,250,5,5,150,157,5,5,179,159,5,5,172,161,5,5,173,161,5,5,174,161,5,5,175,161,5,5,176,161,5,5,177,161,5,5,178,161,5,5,179,161,5,5,180,161,5,5,181,161,5,5,182,161,5,5,59,165,5,5,60,165,5,5,61,165,5,5,62,165,5,5,63,165,5,5,64,165,5,5,65,165,5,5,66,165,5,5,67,165,5,5,68,165,5,5,58,165,5,5,69,165,5,5,70,165,5,5,71,165,5,5,72,165,5,5,73,165,5,5,74,165,5,5,75,165,5,5,76,165,5,5,93,170,5,5,94,170,5,5,95,170,5,5,96,170,5,5,97,170,5,5,98,170,5,5,99,170,5,5,100,170,5,5,101,170,5,5,102,170,5,5,103,170,5,5,104,170,5,5,105,170,5,5,106,170,5,5,107,170,5,5,108,170,5,5,109,170,5,5,110,170,5,5,91,176,5,5,92,176,5,5,93,176,5,5,94,176,5,5,95,176,5,5,96,176,5,5,97,176,5,5,98,176,5,5,99,176,5,5,100,176,5,5,101,176,5,5,102,176,5,5,103,176,5,5,104,176,5,5,105,176,5,5,27,183,5,5,28,183,5,5,29,183,5,5,30,183,5,5,31,183,5,5,32,183,5,5,33,183,5,5,34,183,5,5,35,183,5,5,196,190,5,5,197,190,5,5,198,190,5,5,199,190,5,5,200,190,5,5,201,190,5,5,202,190,5,5,203,190,5,5,204,190,5,5,205,190,5,5,206,190,5,5,207,190,5,5,208,190,5,5,209,190,5,5,210,190,5,5,211,190,5,5,212,190,5,5,213,190,5,5,214,190,5,5,215,190,5,5,216,190,5,5,217,190,5,5,218,190,5,5,219,190,5,5,220,190,5,5,216,198,5,5,217,198,5,5,218,198,5,5,219,198,5,5,220,198,5,5,221,198,5,5,222,198,5,5,223,198,5,5,224,198,5,5,225,198,5,5,226,198,5,5,227,198,5,5,228,198,5,5,229,198,5,5,230,198,5,5,231,198,5,5,232,198,5,5,233,198,5,5,234,198,5,5,235,198,5,5,236,198,5,5,237,198,5,5,238,198,5,5,178,206,5,5,179,206,5,5,180,206,5,5,181,206,5,5,182,206,5,5,183,206,5,5,184,206,5,5,185,206,5,5,186,206,5,5,187,206,5,5,188,206,5,5,189,206,5,5,41,214,5,5,42,214,5,5,43,214,5,5,44,214,5,5,45,214,5,5,46,214,5,5,47,214,5,5,248,220,5,5,249,220,5,5,250,220,5,5,251,220,5,5,79,227,5,5,80,227,5,5,81,227,5,5,82,227,5,5,83,227,5,5,20,240,5,5,183,161,5,5,111,170,5,5,106,176,5,5,36,183,5,5,37,183,5,5,221,190,5,5,38,183,5,5,222,190,5,5,239,198,5,5,240,198,5,5,241,198,5,5,48,214,5,5,49,214,5,5,84,227,5,5,140,232,5,5,141,232,5,5,142,232,5,5,163,236,5,5,164,236,5,5,165,236,5,5,21,240,5,5,22,240,5,5,244,242,5,5,43,245,5,5,207,246,5,5,208,246,5,5,226,248,5,5,184,161,5,5,180,159,5,5,106,158,5,5,112,170,5,5,77,165,5,5,113,170,5,5,114,170,5,5,108,176,5,5,115,170,5,5,109,176,5,5,40,183,5,5,41,183,5,5,42,183,5,5,43,183,5,5,44,183,5,5,45,183,5,5,46,183,5,5,47,183,5,5,225,190,5,5,242,198,5,5,243,198,5,5,244,198,5,5,190,206,5,5,191,206,5,5,192,206,5,5,193,206,5,5,194,206,5,5,195,206,5,5,196,206,5,5,197,206,5,5,50,214,5,5,51,214,5,5,52,214,5,5,198,206,5,5,53,214,5,5,54,214,5,5,252,220,5,5,253,220,5,5,254,220,5,5,255,220,5,5,85,227,5,5,86,227,5,5,87,227,5,5,88,227,5,5,143,232,5,5,144,232,5,5,145,232,5,5,167,236,5,5,146,232,5,5,168,236,5,5,23,240,5,5,24,240,5,5,25,240,5,5,26,240,5,5,210,246,5,5,227,248,5,5,228,248,5,5,185,161,5,5,116,170,5,5,117,170,5,5,110,176,5,5,111,176,5,5,112,176,5,5,48,183,5,5,113,176,5,5,49,183,5,5,50,183,5,5,51,183,5,5,226,190,5,5,52,183,5,5,53,183,5,5,54,183,5,5,55,183,5,5,227,190,5,5,228,190,5,5,229,190,5,5,230,190,5,5,231,190,5,5,232,190,5,5,245,198,5,5,246,198,5,5,247,198,5,5,200,206,5,5,201,206,5,5,202,206,5,5,203,206,5,5,204,206,5,5,205,206,5,5,206,206,5,5,207,206,5,5,55,214,5,5,2,221,5,5,3,221,5,5,4,221,5,5,5,221,5,5,6,221,5,5,89,227,5,5,90,227,5,5,169,236,5,5,170,236,5,5,171,236,5,5,27,240,5,5,28,240,5,5,29,240,5,5,30,240,5,5,246,242,5,5,44,245,5,5,45,245,5,5,189,161,5,5,115,176,5,5,116,176,5,5,56,183,5,5,57,183,5,5,58,183,5,5,59,183,5,5,60,183,5,5,61,183,5,5,62,183,5,5,233,190,5,5,234,190,5,5,235,190,5,5,236,190,5,5,237,190,5,5,238,190,5,5,239,190,5,5,240,190,5,5,241,190,5,5,242,190,5,5,243,190,5,5,244,190,5,5,250,198,5,5,251,198,5,5,252,198,5,5,253,198,5,5,254,198,5,5,255,198,5,5,2,199,5,5,3,199,5,5,208,206,5,5,209,206,5,5,210,206,5,5,56,214,5,5,57,214,5,5,58,214,5,5,59,214,5,5,60,214,5,5,61,214,5,5,62,214,5,5,64,214,5,5,7,221,5,5,8,221,5,5,9,221,5,5,10,221,5,5,11,221,5,5,12,221,5,5,13,221,5,5,14,221,5,5,91,227,5,5,92,227,5,5,93,227,5,5,94,227,5,5,148,232,5,5,149,232,5,5,150,232,5,5,151,232,5,5,152,232,5,5,172,236,5,5,173,236,5,5,174,236,5,5,175,236,5,5,176,236,5,5,153,232,5,5,31,240,5,5,32,240,5,5,247,242,5,5,248,242,5,5,190,161,5,5,107,158,5,5,191,161,5,5,67,183,5,5,118,170,5,5,68,183,5,5,119,176,5,5,245,190,5,5,246,190,5,5,69,183,5,5,4,199,5,5,192,161,5,5,120,176,5,5,121,176,5,5,122,176,5,5,123,176,5,5,124,176,5,5,193,161,5,5,119,170,5,5,125,176,5,5,70,183,5,5,71,183,5,5,72,183,5,5,73,183,5,5,74,183,5,5,247,190,5,5,248,190,5,5,249,190,5,5,250,190,5,5,251,190,5,5,252,190,5,5,5,199,5,5,211,206,5,5,212,206,5,5,65,214,5,5,66,214,5,5,67,214,5,5,16,221,5,5,17,221,5,5,95,227,5,5,96,227,5,5,97,227,5,5,157,232,5,5,158,232,5,5,180,236,5,5,181,236,5,5,249,242,5,5,47,245,5,5,211,246,5,5,212,246,5,5,194,161,5,5,78,165,5,5,120,170,5,5,126,176,5,5,127,176,5,5,75,183,5,5,76,183,5,5,77,183,5,5,78,183,5,5,79,183,5,5,80,183,5,5,81,183,5,5,82,183,5,5,83,183,5,5,84,183,5,5,85,183,5,5,253,190,5,5,254,190,5,5,255,190,5,5,2,191,5,5,3,191,5,5,4,191,5,5,5,191,5,5,6,191,5,5,7,191,5,5,8,191,5,5,9,191,5,5,6,199,5,5,7,199,5,5,8,199,5,5,9,199,5,5,10,199,5,5,11,199,5,5,12,199,5,5,213,206,5,5,214,206,5,5,215,206,5,5,216,206,5,5,68,214,5,5,69,214,5,5,70,214,5,5,71,214,5,5,72,214,5,5,73,214,5,5,74,214,5,5,13,199,5,5,75,214,5,5,76,214,5,5,77,214,5,5,19,221,5,5,20,221,5,5,21,221,5,5,22,221,5,5,23,221,5,5,24,221,5,5,25,221,5,5,26,221,5,5,99,227,5,5,100,227,5,5,103,227,5,5,159,232,5,5,160,232,5,5,161,232,5,5,162,232,5,5,163,232,5,5,164,232,5,5,182,236,5,5,183,236,5,5,184,236,5,5,33,240,5,5,250,242,5,5,251,242,5,5,252,242,5,5,253,242,5,5,213,246,5,5,214,246,5,5,195,161,5,5,108,158,5,5,86,183,5,5,87,183,5,5,121,170,5,5,217,206,5,5,218,206,5,5,219,206,5,5,80,214,5,5,81,214,5,5,196,161,5,5,184,159,5,5,197,161,5,5,198,161,5,5,199,161,5,5,200,161,5,5,122,170,5,5,79,165,5,5,80,165,5,5,81,165,5,5,82,165,5,5,83,165,5,5,84,165,5,5,85,165,5,5,86,165,5,5,87,165,5,5,88,165,5,5,89,165,5,5,90,165,5,5,91,165,5,5,92,165,5,5,93,165,5,5,94,165,5,5,95,165,5,5,123,170,5,5,124,170,5,5,125,170,5,5,126,170,5,5,127,170,5,5,128,170,5,5,129,170,5,5,130,170,5,5,131,170,5,5,132,170,5,5,133,170,5,5,134,170,5,5,135,170,5,5,136,170,5,5,137,170,5,5,138,170,5,5,139,170,5,5,140,170,5,5,141,170,5,5,142,170,5,5,143,170,5,5,144,170,5,5,145,170,5,5,146,170,5,5,147,170,5,5,148,170,5,5,149,170,5,5,150,170,5,5,151,170,5,5,152,170,5,5,153,170,5,5,154,170,5,5,155,170,5,5,129,176,5,5,130,176,5,5,131,176,5,5,132,176,5,5,133,176,5,5,134,176,5,5,135,176,5,5,136,176,5,5,137,176,5,5,138,176,5,5,139,176,5,5,140,176,5,5,141,176,5,5,142,176,5,5,143,176,5,5,144,176,5,5,145,176,5,5,146,176,5,5,15,199,5,5,147,176,5,5,148,176,5,5,149,176,5,5,150,176,5,5,151,176,5,5,152,176,5,5,153,176,5,5,154,176,5,5,155,176,5,5,156,176,5,5,157,176,5,5,158,176,5,5,159,176,5,5,160,176,5,5,161,176,5,5,162,176,5,5,163,176,5,5,164,176,5,5,165,176,5,5,166,176,5,5,167,176,5,5,168,176,5,5,169,176,5,5,10,191,5,5,88,183,5,5,89,183,5,5,90,183,5,5,91,183,5,5,92,183,5,5,93,183,5,5,94,183,5,5,95,183,5,5,96,183,5,5,97,183,5,5,98,183,5,5,99,183,5,5,100,183,5,5,101,183,5,5,102,183,5,5,103,183,5,5,104,183,5,5,16,199,5,5,105,183,5,5,106,183,5,5,107,183,5,5,108,183,5,5,109,183,5,5,110,183,5,5,111,183,5,5,112,183,5,5,113,183,5,5,114,183,5,5,170,176,5,5,115,183,5,5,116,183,5,5,117,183,5,5,118,183,5,5,119,183,5,5,120,183,5,5,121,183,5,5,122,183,5,5,123,183,5,5,124,183,5,5,17,199,5,5,11,191,5,5,12,191,5,5,13,191,5,5,14,191,5,5,15,191,5,5,16,191,5,5,17,191,5,5,18,191,5,5,19,191,5,5,20,191,5,5,21,191,5,5,18,199,5,5,22,191,5,5,23,191,5,5,24,191,5,5,25,191,5,5,26,191,5,5,27,191,5,5,28,191,5,5,29,191,5,5,30,191,5,5,31,191,5,5,32,191,5,5,33,191,5,5,34,191,5,5,35,191,5,5,36,191,5,5,37,191,5,5,38,191,5,5,39,191,5,5,40,191,5,5,41,191,5,5,42,191,5,5,43,191,5,5,44,191,5,5,45,191,5,5,19,199,5,5,20,199,5,5,21,199,5,5,22,199,5,5,23,199,5,5,24,199,5,5,25,199,5,5,26,199,5,5,27,199,5,5,28,199,5,5,29,199,5,5,30,199,5,5,31,199,5,5,32,199,5,5,33,199,5,5,34,199,5,5,35,199,5,5,36,199,5,5,37,199,5,5,38,199,5,5,39,199,5,5,40,199,5,5,41,199,5,5,82,214,5,5,42,199,5,5,43,199,5,5,44,199,5,5,45,199,5,5,46,199,5,5,47,199,5,5,48,199,5,5,49,199,5,5,50,199,5,5,51,199,5,5,222,206,5,5,223,206,5,5,224,206,5,5,225,206,5,5,226,206,5,5,227,206,5,5,228,206,5,5,229,206,5,5,230,206,5,5,231,206,5,5,232,206,5,5,233,206,5,5,234,206,5,5,235,206,5,5,236,206,5,5,237,206,5,5,238,206,5,5,239,206,5,5,240,206,5,5,241,206,5,5,242,206,5,5,243,206,5,5,244,206,5,5,245,206,5,5,246,206,5,5,58,199,5,5,247,206,5,5,248,206,5,5,249,206,5,5,250,206,5,5,251,206,5,5,252,206,5,5,253,206,5,5,254,206,5,5,255,206,5,5,2,207,5,5,83,214,5,5,84,214,5,5,85,214,5,5,86,214,5,5,87,214,5,5,88,214,5,5,89,214,5,5,90,214,5,5,91,214,5,5,92,214,5,5,93,214,5,5,94,214,5,5,95,214,5,5,96,214,5,5,97,214,5,5,98,214,5,5,99,214,5,5,104,227,5,5,100,214,5,5,28,221,5,5,29,221,5,5,30,221,5,5,31,221,5,5,32,221,5,5,33,221,5,5,34,221,5,5,35,221,5,5,36,221,5,5,37,221,5,5,38,221,5,5,39,221,5,5,40,221,5,5,41,221,5,5,42,221,5,5,43,221,5,5,44,221,5,5,45,221,5,5,182,218,5,5,166,232,5,5,106,227,5,5,107,227,5,5,108,227,5,5,109,227,5,5,110,227,5,5,111,227,5,5,112,227,5,5,113,227,5,5,114,227,5,5,115,227,5,5,116,227,5,5,117,227,5,5,118,227,5,5,119,227,5,5,120,227,5,5,121,227,5,5,122,227,5,5,126,227,5,5,167,232,5,5,127,227,5,5,168,232,5,5,169,232,5,5,170,232,5,5,171,232,5,5,172,232,5,5,173,232,5,5,174,232,5,5,175,232,5,5,176,232,5,5,177,232,5,5,178,232,5,5,179,232,5,5,180,232,5,5,181,232,5,5,182,232,5,5,183,232,5,5,184,232,5,5,34,240,5,5,185,232,5,5,185,236,5,5,186,236,5,5,187,236,5,5,188,236,5,5,189,236,5,5,190,236,5,5,191,236,5,5,35,240,5,5,36,240,5,5,254,242,5,5,37,240,5,5,38,240,5,5,255,242,5,5,2,243,5,5,3,243,5,5,4,243,5,5,48,245,5,5,215,246,5,5,216,246,5,5,139,249,5,5,140,249,5,5,3,248,5,5,201,161,5,5,157,170,5,5,158,170,5,5,59,199,5,5,108,214,5,5,188,232,5,5,189,232,5,5,202,161,5,5,96,165,5,5,129,183,5,5,130,183,5,5,60,199,5,5,61,199,5,5,62,199,5,5,49,221,5,5,128,227,5,5,203,161,5,5,172,176,5,5,64,199,5,5,65,199,5,5,66,199,5,5,67,199,5,5,68,199,5,5,109,214,5,5,129,227,5,5,204,161,5,5,159,170,5,5,160,170,5,5,173,176,5,5,132,183,5,5,133,183,5,5,52,191,5,5,69,199,5,5,70,199,5,5,4,207,5,5,131,227,5,5,110,214,5,5,130,227,5,5,132,227,5,5,196,236,5,5,43,240,5,5,206,161,5,5,161,170,5,5,162,170,5,5,163,170,5,5,134,183,5,5,53,191,5,5,71,199,5,5,111,214,5,5,112,214,5,5,113,214,5,5,50,221,5,5,51,221,5,5,133,227,5,5,197,236,5,5,44,240,5,5,207,161,5,5,72,199,5,5,5,207,5,5,114,214,5,5,208,161,5,5,164,170,5,5,174,176,5,5,175,176,5,5,176,176,5,5,177,176,5,5,135,183,5,5,136,183,5,5,137,183,5,5,138,183,5,5,139,183,5,5,140,183,5,5,141,183,5,5,142,183,5,5,143,183,5,5,144,183,5,5,145,183,5,5,146,183,5,5,147,183,5,5,54,191,5,5,55,191,5,5,56,191,5,5,57,191,5,5,58,191,5,5,59,191,5,5,60,191,5,5,61,191,5,5,62,191,5,5,63,191,5,5,73,199,5,5,74,199,5,5,75,199,5,5,76,199,5,5,6,207,5,5,7,207,5,5,8,207,5,5,9,207,5,5,10,207,5,5,11,207,5,5,12,207,5,5,13,207,5,5,14,207,5,5,15,207,5,5,115,214,5,5,116,214,5,5,117,214,5,5,118,214,5,5,52,221,5,5,53,221,5,5,54,221,5,5,55,221,5,5,56,221,5,5,57,221,5,5,58,221,5,5,134,227,5,5,135,227,5,5,136,227,5,5,137,227,5,5,138,227,5,5,191,232,5,5,192,232,5,5,193,232,5,5,194,232,5,5,198,236,5,5,199,236,5,5,200,236,5,5,45,240,5,5,46,240,5,5,47,240,5,5,48,240,5,5,49,240,5,5,6,243,5,5,7,243,5,5,8,243,5,5,9,243,5,5,49,245,5,5,218,246,5,5,5,248,5,5,229,248,5,5,209,161,5,5,97,165,5,5,165,170,5,5,195,232,5,5,210,161,5,5,149,183,5,5,66,191,5,5,78,199,5,5,50,240,5,5,230,248,5,5,211,161,5,5,152,157,5,5,185,159,5,5,213,161,5,5,214,161,5,5,215,161,5,5,216,161,5,5,217,161,5,5,218,161,5,5,219,161,5,5,220,161,5,5,98,165,5,5,99,165,5,5,100,165,5,5,101,165,5,5,102,165,5,5,103,165,5,5,104,165,5,5,105,165,5,5,106,165,5,5,107,165,5,5,108,165,5,5,109,165,5,5,110,165,5,5,111,165,5,5,112,165,5,5,113,165,5,5,114,165,5,5,178,176,5,5,115,165,5,5,116,165,5,5,117,165,5,5,166,170,5,5,167,170,5,5,168,170,5,5,169,170,5,5,170,170,5,5,171,170,5,5,172,170,5,5,173,170,5,5,174,170,5,5,175,170,5,5,176,170,5,5,177,170,5,5,178,170,5,5,179,170,5,5,180,170,5,5,181,170,5,5,182,170,5,5,183,170,5,5,184,170,5,5,185,170,5,5,186,170,5,5,187,170,5,5,188,170,5,5,189,170,5,5,190,170,5,5,191,170,5,5,192,170,5,5,193,170,5,5,194,170,5,5,195,170,5,5,196,170,5,5,197,170,5,5,198,170,5,5,199,170,5,5,200,170,5,5,150,183,5,5,201,170,5,5,202,170,5,5,203,170,5,5,225,170,5,5,204,170,5,5,205,170,5,5,206,170,5,5,207,170,5,5,208,170,5,5,209,170,5,5,210,170,5,5,211,170,5,5,212,170,5,5,213,170,5,5,214,170,5,5,215,170,5,5,216,170,5,5,217,170,5,5,218,170,5,5,219,170,5,5,179,176,5,5,180,176,5,5,181,176,5,5,182,176,5,5,183,176,5,5,184,176,5,5,185,176,5,5,186,176,5,5,187,176,5,5,188,176,5,5,189,176,5,5,190,176,5,5,191,176,5,5,192,176,5,5,193,176,5,5,194,176,5,5,195,176,5,5,196,176,5,5,197,176,5,5,198,176,5,5,199,176,5,5,200,176,5,5,201,176,5,5,202,176,5,5,203,176,5,5,204,176,5,5,205,176,5,5,206,176,5,5,207,176,5,5,208,176,5,5,209,176,5,5,210,176,5,5,211,176,5,5,212,176,5,5,213,176,5,5,214,176,5,5,215,176,5,5,216,176,5,5,217,176,5,5,218,176,5,5,219,176,5,5,220,176,5,5,221,176,5,5,222,176,5,5,223,176,5,5,224,176,5,5,225,176,5,5,226,176,5,5,227,176,5,5,228,176,5,5,229,176,5,5,230,176,5,5,231,176,5,5,232,176,5,5,233,176,5,5,234,176,5,5,154,183,5,5,235,176,5,5,236,176,5,5,237,176,5,5,238,176,5,5,239,176,5,5,240,176,5,5,241,176,5,5,242,176,5,5,243,176,5,5,79,199,5,5,244,176,5,5,245,176,5,5,246,176,5,5,155,183,5,5,156,183,5,5,157,183,5,5,158,183,5,5,159,183,5,5,160,183,5,5,161,183,5,5,69,191,5,5,162,183,5,5,163,183,5,5,164,183,5,5,165,183,5,5,166,183,5,5,70,191,5,5,167,183,5,5,168,183,5,5,169,183,5,5,170,183,5,5,171,183,5,5,172,183,5,5,173,183,5,5,174,183,5,5,175,183,5,5,176,183,5,5,177,183,5,5,178,183,5,5,179,183,5,5,180,183,5,5,181,183,5,5,182,183,5,5,183,183,5,5,184,183,5,5,185,183,5,5,186,183,5,5,187,183,5,5,188,183,5,5,252,176,5,5,80,199,5,5,189,183,5,5,190,183,5,5,220,170,5,5,191,183,5,5,192,183,5,5,193,183,5,5,194,183,5,5,195,183,5,5,196,183,5,5,197,183,5,5,81,199,5,5,198,183,5,5,199,183,5,5,200,183,5,5,201,183,5,5,202,183,5,5,203,183,5,5,204,183,5,5,205,183,5,5,206,183,5,5,207,183,5,5,208,183,5,5,209,183,5,5,242,183,5,5,210,183,5,5,211,183,5,5,212,183,5,5,213,183,5,5,214,183,5,5,67,191,5,5,215,183,5,5,216,183,5,5,217,183,5,5,218,183,5,5,219,183,5,5,220,183,5,5,221,183,5,5,222,183,5,5,223,183,5,5,224,183,5,5,225,183,5,5,226,183,5,5,227,183,5,5,228,183,5,5,229,183,5,5,230,183,5,5,231,183,5,5,68,191,5,5,232,183,5,5,233,183,5,5,234,183,5,5,235,183,5,5,71,191,5,5,72,191,5,5,73,191,5,5,74,191,5,5,75,191,5,5,76,191,5,5,77,191,5,5,78,191,5,5,79,191,5,5,80,191,5,5,81,191,5,5,82,191,5,5,83,191,5,5,84,191,5,5,85,191,5,5,86,191,5,5,87,191,5,5,88,191,5,5,89,191,5,5,90,191,5,5,91,191,5,5,92,191,5,5,93,191,5,5,94,191,5,5,95,191,5,5,96,191,5,5,97,191,5,5,98,191,5,5,99,191,5,5,100,191,5,5,101,191,5,5,102,191,5,5,103,191,5,5,104,191,5,5,105,191,5,5,106,191,5,5,107,191,5,5,108,191,5,5,109,191,5,5,110,191,5,5,111,191,5,5,112,191,5,5,86,199,5,5,113,191,5,5,114,191,5,5,115,191,5,5,116,191,5,5,117,191,5,5,118,191,5,5,119,191,5,5,120,191,5,5,121,191,5,5,122,191,5,5,123,191,5,5,124,191,5,5,125,191,5,5,126,191,5,5,127,191,5,5,128,191,5,5,129,191,5,5,130,191,5,5,150,191,5,5,131,191,5,5,132,191,5,5,133,191,5,5,134,191,5,5,135,191,5,5,136,191,5,5,137,191,5,5,138,191,5,5,139,191,5,5,140,191,5,5,141,191,5,5,142,191,5,5,143,191,5,5,17,207,5,5,144,191,5,5,145,191,5,5,87,199,5,5,88,199,5,5,89,199,5,5,90,199,5,5,91,199,5,5,92,199,5,5,93,199,5,5,94,199,5,5,95,199,5,5,96,199,5,5,97,199,5,5,98,199,5,5,99,199,5,5,100,199,5,5,101,199,5,5,102,199,5,5,103,199,5,5,104,199,5,5,105,199,5,5,106,199,5,5,107,199,5,5,108,199,5,5,109,199,5,5,110,199,5,5,111,199,5,5,112,199,5,5,113,199,5,5,21,207,5,5,114,199,5,5,115,199,5,5,116,199,5,5,117,199,5,5,118,199,5,5,119,199,5,5,120,199,5,5,121,199,5,5,122,199,5,5,123,199,5,5,124,199,5,5,125,199,5,5,126,199,5,5,127,199,5,5,128,199,5,5,129,199,5,5,130,199,5,5,131,199,5,5,132,199,5,5,133,199,5,5,134,199,5,5,135,199,5,5,136,199,5,5,137,199,5,5,138,199,5,5,139,199,5,5,140,199,5,5,141,199,5,5,142,199,5,5,143,199,5,5,144,199,5,5,145,199,5,5,146,199,5,5,147,199,5,5,148,199,5,5,149,199,5,5,150,199,5,5,151,199,5,5,152,199,5,5,153,199,5,5,154,199,5,5,155,199,5,5,156,199,5,5,157,199,5,5,158,199,5,5,159,199,5,5,160,199,5,5,161,199,5,5,162,199,5,5,163,199,5,5,164,199,5,5,165,199,5,5,166,199,5,5,167,199,5,5,168,199,5,5,169,199,5,5,170,199,5,5,171,199,5,5,172,199,5,5,173,199,5,5,174,199,5,5,175,199,5,5,176,199,5,5,177,199,5,5,178,199,5,5,179,199,5,5,180,199,5,5,181,199,5,5,182,199,5,5,183,199,5,5,184,199,5,5,185,199,5,5,186,199,5,5,187,199,5,5,188,199,5,5,22,207,5,5,189,199,5,5,190,199,5,5,23,207,5,5,24,207,5,5,25,207,5,5,26,207,5,5,40,206,5,5,27,207,5,5,28,207,5,5,29,207,5,5,30,207,5,5,31,207,5,5,32,207,5,5,33,207,5,5,34,207,5,5,35,207,5,5,36,207,5,5,37,207,5,5,205,199,5,5,38,207,5,5,39,207,5,5,40,207,5,5,41,207,5,5,42,207,5,5,43,207,5,5,44,207,5,5,45,207,5,5,46,207,5,5,47,207,5,5,48,207,5,5,49,207,5,5,50,207,5,5,51,207,5,5,52,207,5,5,53,207,5,5,54,207,5,5,55,207,5,5,56,207,5,5,57,207,5,5,58,207,5,5,59,207,5,5,60,207,5,5,61,207,5,5,62,207,5,5,63,207,5,5,64,207,5,5,65,207,5,5,66,207,5,5,67,207,5,5,191,199,5,5,68,207,5,5,69,207,5,5,70,207,5,5,71,207,5,5,72,207,5,5,73,207,5,5,74,207,5,5,75,207,5,5,76,207,5,5,77,207,5,5,78,207,5,5,79,207,5,5,80,207,5,5,81,207,5,5,82,207,5,5,83,207,5,5,84,207,5,5,85,207,5,5,86,207,5,5,87,207,5,5,88,207,5,5,89,207,5,5,90,207,5,5,91,207,5,5,92,207,5,5,93,207,5,5,94,207,5,5,95,207,5,5,96,207,5,5,97,207,5,5,98,207,5,5,99,207,5,5,100,207,5,5,101,207,5,5,102,207,5,5,103,207,5,5,104,207,5,5,105,207,5,5,106,207,5,5,107,207,5,5,108,207,5,5,109,207,5,5,110,207,5,5,111,207,5,5,112,207,5,5,113,207,5,5,114,207,5,5,115,207,5,5,116,207,5,5,117,207,5,5,60,221,5,5,118,207,5,5,119,207,5,5,120,207,5,5,121,207,5,5,122,207,5,5,130,214,5,5,131,214,5,5,132,214,5,5,133,214,5,5,134,214,5,5,135,214,5,5,136,214,5,5,137,214,5,5,138,214,5,5,139,214,5,5,140,214,5,5,141,214,5,5,142,214,5,5,143,214,5,5,144,214,5,5,145,214,5,5,146,214,5,5,147,214,5,5,148,214,5,5,149,214,5,5,150,214,5,5,151,214,5,5,152,214,5,5,153,214,5,5,154,214,5,5,155,214,5,5,156,214,5,5,157,214,5,5,158,214,5,5,159,214,5,5,160,214,5,5,161,214,5,5,162,214,5,5,163,214,5,5,164,214,5,5,165,214,5,5,166,214,5,5,167,214,5,5,168,214,5,5,169,214,5,5,201,212,5,5,170,214,5,5,171,214,5,5,172,214,5,5,173,214,5,5,174,214,5,5,175,214,5,5,176,214,5,5,177,214,5,5,178,214,5,5,179,214,5,5,180,214,5,5,181,214,5,5,135,207,5,5,182,214,5,5,183,214,5,5,136,207,5,5,184,214,5,5,185,214,5,5,186,214,5,5,187,214,5,5,188,214,5,5,189,214,5,5,190,214,5,5,191,214,5,5,192,214,5,5,193,214,5,5,194,214,5,5,195,214,5,5,196,214,5,5,197,214,5,5,198,214,5,5,199,214,5,5,200,214,5,5,201,214,5,5,202,214,5,5,203,214,5,5,204,214,5,5,139,227,5,5,205,214,5,5,62,221,5,5,206,214,5,5,207,214,5,5,208,214,5,5,209,214,5,5,225,214,5,5,210,214,5,5,63,221,5,5,64,221,5,5,65,221,5,5,66,221,5,5,67,221,5,5,68,221,5,5,69,221,5,5,70,221,5,5,71,221,5,5,72,221,5,5,137,207,5,5,73,221,5,5,74,221,5,5,75,221,5,5,76,221,5,5,77,221,5,5,78,221,5,5,79,221,5,5,80,221,5,5,81,221,5,5,82,221,5,5,83,221,5,5,84,221,5,5,85,221,5,5,86,221,5,5,87,221,5,5,88,221,5,5,89,221,5,5,90,221,5,5,91,221,5,5,92,221,5,5,93,221,5,5,138,207,5,5,94,221,5,5,95,221,5,5,96,221,5,5,97,221,5,5,98,221,5,5,99,221,5,5,100,221,5,5,101,221,5,5,102,221,5,5,103,221,5,5,104,221,5,5,105,221,5,5,106,221,5,5,107,221,5,5,108,221,5,5,109,221,5,5,110,221,5,5,111,221,5,5,112,221,5,5,113,221,5,5,114,221,5,5,115,221,5,5,116,221,5,5,117,221,5,5,118,221,5,5,119,221,5,5,120,221,5,5,121,221,5,5,122,221,5,5,123,221,5,5,124,221,5,5,125,221,5,5,126,221,5,5,127,221,5,5,128,221,5,5,129,221,5,5,130,221,5,5,131,221,5,5,132,221,5,5,133,221,5,5,134,221,5,5,135,221,5,5,136,221,5,5,137,221,5,5,138,221,5,5,139,221,5,5,140,221,5,5,141,221,5,5,142,221,5,5,143,221,5,5,144,221,5,5,145,221,5,5,146,221,5,5,159,221,5,5,145,227,5,5,146,227,5,5,147,227,5,5,148,227,5,5,149,227,5,5,150,227,5,5,151,227,5,5,152,227,5,5,153,227,5,5,154,227,5,5,155,227,5,5,156,227,5,5,157,227,5,5,158,227,5,5,159,227,5,5,160,227,5,5,161,227,5,5,160,221,5,5,162,227,5,5,163,227,5,5,164,227,5,5,165,227,5,5,166,227,5,5,167,227,5,5,168,227,5,5,202,232,5,5,169,227,5,5,170,227,5,5,171,227,5,5,172,227,5,5,173,227,5,5,174,227,5,5,175,227,5,5,176,227,5,5,177,227,5,5,178,227,5,5,179,227,5,5,180,227,5,5,181,227,5,5,182,227,5,5,183,227,5,5,184,227,5,5,185,227,5,5,186,227,5,5,187,227,5,5,188,227,5,5,189,227,5,5,190,227,5,5,191,227,5,5,192,227,5,5,193,227,5,5,194,227,5,5,195,227,5,5,196,227,5,5,197,227,5,5,198,227,5,5,203,232,5,5,204,232,5,5,205,232,5,5,206,232,5,5,207,232,5,5,208,232,5,5,209,232,5,5,210,232,5,5,211,232,5,5,212,232,5,5,213,232,5,5,214,232,5,5,215,232,5,5,216,232,5,5,217,232,5,5,218,232,5,5,219,232,5,5,220,232,5,5,221,232,5,5,222,232,5,5,223,232,5,5,224,232,5,5,211,227,5,5,225,232,5,5,226,232,5,5,227,232,5,5,228,232,5,5,229,232,5,5,230,232,5,5,231,232,5,5,232,232,5,5,233,232,5,5,234,232,5,5,235,232,5,5,236,232,5,5,237,232,5,5,238,232,5,5,239,232,5,5,240,232,5,5,241,232,5,5,242,232,5,5,243,232,5,5,244,232,5,5,245,232,5,5,246,232,5,5,247,232,5,5,248,232,5,5,249,232,5,5,250,232,5,5,251,232,5,5,252,232,5,5,211,236,5,5,253,232,5,5,254,232,5,5,255,232,5,5,8,233,5,5,2,233,5,5,9,233,5,5,212,236,5,5,213,236,5,5,214,236,5,5,215,236,5,5,216,236,5,5,217,236,5,5,218,236,5,5,219,236,5,5,220,236,5,5,221,236,5,5,222,236,5,5,223,236,5,5,224,236,5,5,225,236,5,5,226,236,5,5,227,236,5,5,228,236,5,5,229,236,5,5,230,236,5,5,231,236,5,5,232,236,5,5,233,236,5,5,234,236,5,5,235,236,5,5,236,236,5,5,237,236,5,5,238,236,5,5,239,236,5,5,240,236,5,5,241,236,5,5,242,236,5,5,243,236,5,5,244,236,5,5,54,240,5,5,245,236,5,5,246,236,5,5,50,245,5,5,55,240,5,5,56,240,5,5,57,240,5,5,58,240,5,5,59,240,5,5,60,240,5,5,61,240,5,5,62,240,5,5,63,240,5,5,64,240,5,5,65,240,5,5,66,240,5,5,67,240,5,5,68,240,5,5,69,240,5,5,70,240,5,5,71,240,5,5,72,240,5,5,73,240,5,5,74,240,5,5,75,240,5,5,76,240,5,5,77,240,5,5,78,240,5,5,79,240,5,5,17,243,5,5,80,240,5,5,81,240,5,5,82,240,5,5,83,240,5,5,84,240,5,5,85,240,5,5,86,240,5,5,18,243,5,5,90,240,5,5,91,240,5,5,19,243,5,5,20,243,5,5,21,243,5,5,22,243,5,5,23,243,5,5,24,243,5,5,25,243,5,5,26,243,5,5,27,243,5,5,28,243,5,5,29,243,5,5,30,243,5,5,31,243,5,5,32,243,5,5,33,243,5,5,34,243,5,5,35,243,5,5,36,243,5,5,37,243,5,5,38,243,5,5,39,243,5,5,40,243,5,5,41,243,5,5,42,243,5,5,43,243,5,5,51,243,5,5,44,243,5,5,45,243,5,5,53,245,5,5,54,245,5,5,55,245,5,5,56,245,5,5,57,245,5,5,58,245,5,5,52,243,5,5,59,245,5,5,60,245,5,5,61,245,5,5,62,245,5,5,63,245,5,5,64,245,5,5,46,243,5,5,65,245,5,5,10,243,5,5,66,245,5,5,67,245,5,5,68,245,5,5,69,245,5,5,70,245,5,5,71,245,5,5,72,245,5,5,222,246,5,5,73,245,5,5,74,245,5,5,75,245,5,5,53,243,5,5,7,248,5,5,223,246,5,5,224,246,5,5,225,246,5,5,226,246,5,5,227,246,5,5,228,246,5,5,8,248,5,5,9,248,5,5,10,248,5,5,11,248,5,5,12,248,5,5,13,248,5,5,14,248,5,5,15,248,5,5,16,248,5,5,17,248,5,5,141,249,5,5,232,248,5,5,236,249,5,5,233,248,5,5,142,249,5,5,143,249,5,5,144,249,5,5,145,249,5,5,37,250,5,5,124,250,5,5,96,250,5,5,221,161,5,5,226,170,5,5,227,170,5,5,253,176,5,5,243,183,5,5,149,178,5,5,244,183,5,5,245,183,5,5,152,191,5,5,153,191,5,5,154,191,5,5,155,191,5,5,156,191,5,5,157,191,5,5,206,199,5,5,139,207,5,5,207,199,5,5,140,207,5,5,141,207,5,5,226,214,5,5,227,214,5,5,161,221,5,5,213,227,5,5,214,227,5,5,215,227,5,5,216,227,5,5,10,233,5,5,11,233,5,5,251,236,5,5,237,249,5,5,222,161,5,5,120,165,5,5,228,170,5,5,229,170,5,5,230,170,5,5,231,170,5,5,232,170,5,5,233,170,5,5,254,176,5,5,255,176,5,5,2,177,5,5,3,177,5,5,4,177,5,5,5,177,5,5,6,177,5,5,7,177,5,5,8,177,5,5,9,177,5,5,10,177,5,5,11,177,5,5,12,177,5,5,13,177,5,5,14,177,5,5,15,177,5,5,16,177,5,5,246,183,5,5,247,183,5,5,248,183,5,5,249,183,5,5,208,199,5,5,250,183,5,5,251,183,5,5,252,183,5,5,253,183,5,5,254,183,5,5,255,183,5,5,2,184,5,5,3,184,5,5,4,184,5,5,5,184,5,5,6,184,5,5,7,184,5,5,8,184,5,5,9,184,5,5,10,184,5,5,11,184,5,5,12,184,5,5,13,184,5,5,14,184,5,5,15,184,5,5,16,184,5,5,17,184,5,5,18,184,5,5,19,184,5,5,20,184,5,5,21,184,5,5,22,184,5,5,23,184,5,5,24,184,5,5,25,184,5,5,26,184,5,5,27,184,5,5,28,184,5,5,29,184,5,5,158,191,5,5,30,184,5,5,159,191,5,5,160,191,5,5,161,191,5,5,162,191,5,5,163,191,5,5,164,191,5,5,165,191,5,5,166,191,5,5,167,191,5,5,168,191,5,5,169,191,5,5,170,191,5,5,171,191,5,5,172,191,5,5,173,191,5,5,174,191,5,5,175,191,5,5,176,191,5,5,177,191,5,5,178,191,5,5,179,191,5,5,180,191,5,5,181,191,5,5,182,191,5,5,183,191,5,5,184,191,5,5,185,191,5,5,186,191,5,5,187,191,5,5,188,191,5,5,189,191,5,5,190,191,5,5,191,191,5,5,192,191,5,5,193,191,5,5,209,199,5,5,210,199,5,5,211,199,5,5,212,199,5,5,213,199,5,5,214,199,5,5,142,207,5,5,215,199,5,5,216,199,5,5,217,199,5,5,218,199,5,5,219,199,5,5,220,199,5,5,221,199,5,5,222,199,5,5,223,199,5,5,224,199,5,5,225,199,5,5,226,199,5,5,227,199,5,5,228,199,5,5,229,199,5,5,230,199,5,5,231,199,5,5,232,199,5,5,233,199,5,5,234,199,5,5,235,199,5,5,236,199,5,5,237,199,5,5,238,199,5,5,239,199,5,5,240,199,5,5,241,199,5,5,242,199,5,5,243,199,5,5,244,199,5,5,143,207,5,5,144,207,5,5,145,207,5,5,146,207,5,5,147,207,5,5,148,207,5,5,149,207,5,5,150,207,5,5,151,207,5,5,152,207,5,5,153,207,5,5,154,207,5,5,155,207,5,5,156,207,5,5,157,207,5,5,158,207,5,5,159,207,5,5,160,207,5,5,161,207,5,5,162,207,5,5,163,207,5,5,164,207,5,5,165,207,5,5,166,207,5,5,167,207,5,5,168,207,5,5,169,207,5,5,170,207,5,5,229,214,5,5,230,214,5,5,171,207,5,5,172,207,5,5,173,207,5,5,174,207,5,5,175,207,5,5,232,214,5,5,233,214,5,5,234,214,5,5,235,214,5,5,236,214,5,5,237,214,5,5,238,214,5,5,239,214,5,5,240,214,5,5,241,214,5,5,242,214,5,5,243,214,5,5,244,214,5,5,245,214,5,5,246,214,5,5,247,214,5,5,248,214,5,5,249,214,5,5,250,214,5,5,231,214,5,5,251,214,5,5,252,214,5,5,253,214,5,5,254,214,5,5,255,214,5,5,2,215,5,5,3,215,5,5,4,215,5,5,5,215,5,5,6,215,5,5,7,215,5,5,8,215,5,5,9,215,5,5,10,215,5,5,11,215,5,5,12,215,5,5,13,215,5,5,14,215,5,5,15,215,5,5,16,215,5,5,17,215,5,5,18,215,5,5,19,215,5,5,20,215,5,5,21,215,5,5,22,215,5,5,176,207,5,5,23,215,5,5,24,215,5,5,25,215,5,5,26,215,5,5,27,215,5,5,162,221,5,5,178,207,5,5,163,221,5,5,164,221,5,5,165,221,5,5,166,221,5,5,167,221,5,5,168,221,5,5,169,221,5,5,28,215,5,5,170,221,5,5,171,221,5,5,172,221,5,5,173,221,5,5,174,221,5,5,175,221,5,5,176,221,5,5,177,221,5,5,178,221,5,5,179,221,5,5,180,221,5,5,181,221,5,5,182,221,5,5,183,221,5,5,184,221,5,5,185,221,5,5,186,221,5,5,187,221,5,5,188,221,5,5,189,221,5,5,190,221,5,5,29,215,5,5,191,221,5,5,192,221,5,5,193,221,5,5,194,221,5,5,195,221,5,5,196,221,5,5,197,221,5,5,198,221,5,5,199,221,5,5,200,221,5,5,201,221,5,5,202,221,5,5,203,221,5,5,217,227,5,5,204,221,5,5,205,221,5,5,206,221,5,5,207,221,5,5,208,221,5,5,209,221,5,5,210,221,5,5,218,227,5,5,214,221,5,5,219,227,5,5,220,227,5,5,221,227,5,5,222,227,5,5,223,227,5,5,224,227,5,5,225,227,5,5,226,227,5,5,227,227,5,5,228,227,5,5,229,227,5,5,230,227,5,5,231,227,5,5,232,227,5,5,233,227,5,5,234,227,5,5,235,227,5,5,236,227,5,5,237,227,5,5,238,227,5,5,239,227,5,5,240,227,5,5,241,227,5,5,242,227,5,5,243,227,5,5,244,227,5,5,245,227,5,5,246,227,5,5,247,227,5,5,248,227,5,5,249,227,5,5,250,227,5,5,251,227,5,5,252,227,5,5,253,227,5,5,254,227,5,5,255,227,5,5,2,228,5,5,3,228,5,5,12,233,5,5,13,233,5,5,14,233,5,5,15,233,5,5,16,233,5,5,17,233,5,5,18,233,5,5,19,233,5,5,20,233,5,5,21,233,5,5,22,233,5,5,23,233,5,5,24,233,5,5,25,233,5,5,26,233,5,5,27,233,5,5,28,233,5,5,29,233,5,5,30,233,5,5,31,233,5,5,32,233,5,5,33,233,5,5,34,233,5,5,35,233,5,5,36,233,5,5,37,233,5,5,38,233,5,5,39,233,5,5,40,233,5,5,41,233,5,5,42,233,5,5,43,233,5,5,44,233,5,5,45,233,5,5,46,233,5,5,47,233,5,5,48,233,5,5,49,233,5,5,50,233,5,5,51,233,5,5,52,233,5,5,254,236,5,5,255,236,5,5,93,240,5,5,2,237,5,5,253,236,5,5,3,237,5,5,4,237,5,5,5,237,5,5,6,237,5,5,7,237,5,5,8,237,5,5,58,233,5,5,9,237,5,5,10,237,5,5,211,221,5,5,11,237,5,5,12,237,5,5,13,237,5,5,14,237,5,5,15,237,5,5,16,237,5,5,17,237,5,5,18,237,5,5,19,237,5,5,20,237,5,5,21,237,5,5,22,237,5,5,23,237,5,5,24,237,5,5,25,237,5,5,26,237,5,5,27,237,5,5,28,237,5,5,29,237,5,5,30,237,5,5,94,240,5,5,95,240,5,5,96,240,5,5,97,240,5,5,98,240,5,5,99,240,5,5,100,240,5,5,101,240,5,5,102,240,5,5,103,240,5,5,104,240,5,5,92,240,5,5,105,240,5,5,106,240,5,5,107,240,5,5,108,240,5,5,109,240,5,5,110,240,5,5,111,240,5,5,112,240,5,5,113,240,5,5,114,240,5,5,115,240,5,5,116,240,5,5,31,237,5,5,117,240,5,5,54,243,5,5,55,243,5,5,56,243,5,5,57,243,5,5,58,243,5,5,59,243,5,5,60,243,5,5,61,243,5,5,62,243,5,5,63,243,5,5,81,245,5,5,82,245,5,5,83,245,5,5,84,245,5,5,118,240,5,5,85,245,5,5,86,245,5,5,87,245,5,5,88,245,5,5,89,245,5,5,90,245,5,5,232,246,5,5,233,246,5,5,234,246,5,5,235,246,5,5,93,245,5,5,236,246,5,5,94,245,5,5,237,246,5,5,20,248,5,5,21,248,5,5,22,248,5,5,23,248,5,5,24,248,5,5,25,248,5,5,26,248,5,5,19,248,5,5,236,248,5,5,237,248,5,5,238,248,5,5,239,248,5,5,240,248,5,5,241,248,5,5,146,249,5,5,238,249,5,5,38,250,5,5,39,250,5,5,40,250,5,5,223,161,5,5,17,177,5,5,18,177,5,5,31,184,5,5,32,184,5,5,200,191,5,5,250,199,5,5,251,199,5,5,252,199,5,5,253,199,5,5,95,245,5,5,242,248,5,5,224,161,5,5,20,177,5,5,21,177,5,5,33,184,5,5,201,191,5,5,202,191,5,5,203,191,5,5,204,191,5,5,205,191,5,5,254,199,5,5,255,199,5,5,2,200,5,5,179,207,5,5,180,207,5,5,215,221,5,5,216,221,5,5,217,221,5,5,218,221,5,5,6,228,5,5,7,228,5,5,8,228,5,5,9,228,5,5,243,248,5,5,225,161,5,5,186,159,5,5,235,170,5,5,23,177,5,5,24,177,5,5,236,170,5,5,25,177,5,5,26,177,5,5,27,177,5,5,28,177,5,5,35,184,5,5,36,184,5,5,37,184,5,5,38,184,5,5,39,184,5,5,40,184,5,5,41,184,5,5,42,184,5,5,43,184,5,5,44,184,5,5,45,184,5,5,46,184,5,5,47,184,5,5,48,184,5,5,49,184,5,5,50,184,5,5,51,184,5,5,52,184,5,5,53,184,5,5,54,184,5,5,55,184,5,5,56,184,5,5,57,184,5,5,58,184,5,5,59,184,5,5,60,184,5,5,61,184,5,5,206,191,5,5,207,191,5,5,208,191,5,5,209,191,5,5,210,191,5,5,211,191,5,5,212,191,5,5,213,191,5,5,214,191,5,5,215,191,5,5,216,191,5,5,217,191,5,5,218,191,5,5,219,191,5,5,220,191,5,5,221,191,5,5,222,191,5,5,223,191,5,5,224,191,5,5,225,191,5,5,226,191,5,5,227,191,5,5,228,191,5,5,229,191,5,5,230,191,5,5,231,191,5,5,232,191,5,5,233,191,5,5,234,191,5,5,235,191,5,5,236,191,5,5,237,191,5,5,238,191,5,5,239,191,5,5,240,191,5,5,241,191,5,5,242,191,5,5,243,191,5,5,244,191,5,5,247,191,5,5,245,191,5,5,3,200,5,5,4,200,5,5,5,200,5,5,6,200,5,5,7,200,5,5,8,200,5,5,9,200,5,5,10,200,5,5,11,200,5,5,12,200,5,5,13,200,5,5,14,200,5,5,15,200,5,5,16,200,5,5,17,200,5,5,18,200,5,5,19,200,5,5,20,200,5,5,21,200,5,5,22,200,5,5,23,200,5,5,24,200,5,5,25,200,5,5,26,200,5,5,27,200,5,5,181,207,5,5,182,207,5,5,183,207,5,5,184,207,5,5,185,207,5,5,186,207,5,5,187,207,5,5,188,207,5,5,189,207,5,5,190,207,5,5,191,207,5,5,192,207,5,5,193,207,5,5,28,200,5,5,194,207,5,5,195,207,5,5,196,207,5,5,197,207,5,5,198,207,5,5,199,207,5,5,200,207,5,5,201,207,5,5,202,207,5,5,203,207,5,5,30,215,5,5,204,207,5,5,205,207,5,5,206,207,5,5,220,221,5,5,31,215,5,5,32,215,5,5,33,215,5,5,34,215,5,5,35,215,5,5,36,215,5,5,37,215,5,5,38,215,5,5,39,215,5,5,40,215,5,5,41,215,5,5,42,215,5,5,43,215,5,5,44,215,5,5,45,215,5,5,46,215,5,5,47,215,5,5,48,215,5,5,49,215,5,5,50,215,5,5,51,215,5,5,52,215,5,5,53,215,5,5,54,215,5,5,55,215,5,5,56,215,5,5,30,200,5,5,57,215,5,5,58,215,5,5,59,215,5,5,221,221,5,5,222,221,5,5,223,221,5,5,224,221,5,5,225,221,5,5,226,221,5,5,227,221,5,5,228,221,5,5,229,221,5,5,230,221,5,5,231,221,5,5,232,221,5,5,233,221,5,5,234,221,5,5,235,221,5,5,236,221,5,5,237,221,5,5,238,221,5,5,239,221,5,5,240,221,5,5,241,221,5,5,61,215,5,5,242,221,5,5,243,221,5,5,244,221,5,5,12,228,5,5,13,228,5,5,14,228,5,5,15,228,5,5,16,228,5,5,17,228,5,5,18,228,5,5,19,228,5,5,20,228,5,5,21,228,5,5,22,228,5,5,23,228,5,5,24,228,5,5,25,228,5,5,26,228,5,5,27,228,5,5,28,228,5,5,29,228,5,5,30,228,5,5,31,228,5,5,32,228,5,5,59,233,5,5,33,228,5,5,60,233,5,5,61,233,5,5,62,233,5,5,63,233,5,5,64,233,5,5,65,233,5,5,66,233,5,5,67,233,5,5,68,233,5,5,69,233,5,5,70,233,5,5,71,233,5,5,72,233,5,5,73,233,5,5,74,233,5,5,75,233,5,5,76,233,5,5,35,237,5,5,36,237,5,5,37,237,5,5,38,237,5,5,39,237,5,5,40,237,5,5,41,237,5,5,42,237,5,5,43,237,5,5,44,237,5,5,45,237,5,5,46,237,5,5,79,233,5,5,47,237,5,5,77,233,5,5,48,237,5,5,119,240,5,5,120,240,5,5,121,240,5,5,122,240,5,5,123,240,5,5,124,240,5,5,125,240,5,5,126,240,5,5,127,240,5,5,128,240,5,5,129,240,5,5,130,240,5,5,131,240,5,5,66,243,5,5,67,243,5,5,68,243,5,5,69,243,5,5,70,243,5,5,71,243,5,5,96,245,5,5,97,245,5,5,98,245,5,5,99,245,5,5,100,245,5,5,101,245,5,5,239,246,5,5,240,246,5,5,241,246,5,5,242,246,5,5,27,248,5,5,28,248,5,5,244,248,5,5,29,248,5,5,245,248,5,5,148,249,5,5,149,249,5,5,150,249,5,5,151,249,5,5,152,249,5,5,41,250,5,5,226,161,5,5,227,161,5,5,228,161,5,5,31,177,5,5,248,191,5,5,31,200,5,5,32,200,5,5,207,207,5,5,51,237,5,5,132,240,5,5,133,240,5,5,30,248,5,5,153,249,5,5,122,165,5,5,32,177,5,5,65,184,5,5,66,184,5,5,249,191,5,5,250,191,5,5,251,191,5,5,252,191,5,5,253,191,5,5,254,191,5,5,34,200,5,5,72,190,5,5,35,200,5,5,36,200,5,5,33,200,5,5,37,200,5,5,208,207,5,5,209,207,5,5,62,215,5,5,63,215,5,5,64,215,5,5,65,215,5,5,66,215,5,5,248,221,5,5,249,221,5,5,250,221,5,5,251,221,5,5,38,228,5,5,39,228,5,5,40,228,5,5,253,221,5,5,41,228,5,5,82,233,5,5,83,233,5,5,84,233,5,5,85,233,5,5,86,233,5,5,52,237,5,5,53,237,5,5,54,237,5,5,55,237,5,5,134,240,5,5,135,240,5,5,136,240,5,5,137,240,5,5,138,240,5,5,72,243,5,5,73,243,5,5,74,243,5,5,102,245,5,5,103,245,5,5,243,246,5,5,244,246,5,5,154,249,5,5,111,158,5,5,229,161,5,5,123,165,5,5,237,170,5,5,238,170,5,5,16,176,5,5,33,177,5,5,34,177,5,5,35,177,5,5,67,184,5,5,2,192,5,5,38,200,5,5,39,200,5,5,211,207,5,5,67,215,5,5,254,221,5,5,255,221,5,5,124,165,5,5,36,177,5,5,37,177,5,5,3,192,5,5,4,192,5,5,5,192,5,5,6,192,5,5,7,192,5,5,40,200,5,5,41,200,5,5,212,207,5,5,42,200,5,5,43,200,5,5,213,207,5,5,214,207,5,5,215,207,5,5,216,207,5,5,217,207,5,5,218,207,5,5,219,207,5,5,220,207,5,5,221,207,5,5,68,215,5,5,69,215,5,5,70,215,5,5,71,215,5,5,2,222,5,5,3,222,5,5,4,222,5,5,5,222,5,5,6,222,5,5,43,228,5,5,87,233,5,5,88,233,5,5,57,237,5,5,139,240,5,5,140,240,5,5,75,243,5,5,76,243,5,5,77,243,5,5,104,245,5,5,246,246,5,5,247,246,5,5,31,248,5,5,32,248,5,5,155,249,5,5,127,165,5,5,128,165,5,5,38,177,5,5,39,177,5,5,40,177,5,5,41,177,5,5,42,177,5,5,43,177,5,5,44,177,5,5,68,184,5,5,69,184,5,5,70,184,5,5,71,184,5,5,72,184,5,5,73,184,5,5,74,184,5,5,75,184,5,5,76,184,5,5,77,184,5,5,78,184,5,5,79,184,5,5,80,184,5,5,81,184,5,5,82,184,5,5,83,184,5,5,84,184,5,5,85,184,5,5,9,192,5,5,10,192,5,5,11,192,5,5,12,192,5,5,13,192,5,5,14,192,5,5,15,192,5,5,16,192,5,5,17,192,5,5,18,192,5,5,19,192,5,5,20,192,5,5,21,192,5,5,22,192,5,5,23,192,5,5,24,192,5,5,25,192,5,5,26,192,5,5,27,192,5,5,28,192,5,5,29,192,5,5,30,192,5,5,31,192,5,5,32,192,5,5,33,192,5,5,44,200,5,5,45,200,5,5,46,200,5,5,47,200,5,5,48,200,5,5,49,200,5,5,50,200,5,5,51,200,5,5,52,200,5,5,53,200,5,5,222,207,5,5,223,207,5,5,54,200,5,5,55,200,5,5,56,200,5,5,57,200,5,5,58,200,5,5,59,200,5,5,60,200,5,5,61,200,5,5,62,200,5,5,63,200,5,5,64,200,5,5,65,200,5,5,66,200,5,5,67,200,5,5,68,200,5,5,69,200,5,5,70,200,5,5,71,200,5,5,72,200,5,5,73,200,5,5,74,200,5,5,75,200,5,5,76,200,5,5,77,200,5,5,78,200,5,5,79,200,5,5,80,200,5,5,81,200,5,5,82,200,5,5,83,200,5,5,84,200,5,5,85,200,5,5,86,200,5,5,224,207,5,5,225,207,5,5,226,207,5,5,227,207,5,5,228,207,5,5,229,207,5,5,230,207,5,5,231,207,5,5,232,207,5,5,233,207,5,5,234,207,5,5,235,207,5,5,236,207,5,5,237,207,5,5,238,207,5,5,239,207,5,5,240,207,5,5,241,207,5,5,242,207,5,5,243,207,5,5,244,207,5,5,245,207,5,5,246,207,5,5,247,207,5,5,248,207,5,5,249,207,5,5,250,207,5,5,251,207,5,5,252,207,5,5,253,207,5,5,254,207,5,5,255,207,5,5,2,208,5,5,3,208,5,5,4,208,5,5,5,208,5,5,6,208,5,5,7,208,5,5,8,208,5,5,9,208,5,5,10,208,5,5,11,208,5,5,72,215,5,5,73,215,5,5,74,215,5,5,75,215,5,5,76,215,5,5,77,215,5,5,78,215,5,5,79,215,5,5,80,215,5,5,81,215,5,5,7,222,5,5,82,215,5,5,83,215,5,5,84,215,5,5,85,215,5,5,86,215,5,5,87,215,5,5,88,215,5,5,89,215,5,5,90,215,5,5,91,215,5,5,12,208,5,5,92,215,5,5,93,215,5,5,94,215,5,5,95,215,5,5,96,215,5,5,97,215,5,5,98,215,5,5,99,215,5,5,100,215,5,5,101,215,5,5,102,215,5,5,103,215,5,5,104,215,5,5,105,215,5,5,8,222,5,5,9,222,5,5,10,222,5,5,11,222,5,5,12,222,5,5,13,222,5,5,14,222,5,5,15,222,5,5,16,222,5,5,17,222,5,5,18,222,5,5,19,222,5,5,20,222,5,5,21,222,5,5,22,222,5,5,23,222,5,5,24,222,5,5,25,222,5,5,26,222,5,5,27,222,5,5,28,222,5,5,29,222,5,5,30,222,5,5,31,222,5,5,32,222,5,5,33,222,5,5,34,222,5,5,35,222,5,5,36,222,5,5,37,222,5,5,38,222,5,5,39,222,5,5,40,222,5,5,41,222,5,5,42,222,5,5,43,222,5,5,44,222,5,5,45,222,5,5,46,222,5,5,47,222,5,5,48,222,5,5,49,222,5,5,50,222,5,5,51,222,5,5,58,222,5,5,45,228,5,5,46,228,5,5,47,228,5,5,48,228,5,5,49,228,5,5,50,228,5,5,51,228,5,5,52,228,5,5,53,228,5,5,54,228,5,5,55,228,5,5,56,228,5,5,57,228,5,5,52,222,5,5,58,228,5,5,59,228,5,5,60,228,5,5,61,228,5,5,62,228,5,5,63,228,5,5,64,228,5,5,65,228,5,5,66,228,5,5,67,228,5,5,68,228,5,5,69,228,5,5,70,228,5,5,71,228,5,5,59,222,5,5,72,228,5,5,73,228,5,5,74,228,5,5,75,228,5,5,76,228,5,5,77,228,5,5,78,228,5,5,79,228,5,5,80,228,5,5,81,228,5,5,82,228,5,5,90,233,5,5,91,233,5,5,92,233,5,5,93,233,5,5,94,233,5,5,95,233,5,5,96,233,5,5,97,233,5,5,98,233,5,5,99,233,5,5,100,233,5,5,101,233,5,5,102,233,5,5,103,233,5,5,104,233,5,5,105,233,5,5,85,228,5,5,106,233,5,5,107,233,5,5,108,233,5,5,109,233,5,5,110,233,5,5,111,233,5,5,112,233,5,5,113,233,5,5,114,233,5,5,115,233,5,5,116,233,5,5,117,233,5,5,118,233,5,5,119,233,5,5,59,237,5,5,60,237,5,5,61,237,5,5,62,237,5,5,63,237,5,5,64,237,5,5,65,237,5,5,66,237,5,5,67,237,5,5,68,237,5,5,69,237,5,5,70,237,5,5,71,237,5,5,72,237,5,5,73,237,5,5,74,237,5,5,75,237,5,5,76,237,5,5,77,237,5,5,78,237,5,5,79,237,5,5,80,237,5,5,81,237,5,5,82,237,5,5,83,237,5,5,84,237,5,5,85,237,5,5,86,237,5,5,141,240,5,5,142,240,5,5,143,240,5,5,144,240,5,5,145,240,5,5,146,240,5,5,105,245,5,5,147,240,5,5,88,237,5,5,148,240,5,5,149,240,5,5,150,240,5,5,151,240,5,5,152,240,5,5,78,243,5,5,153,240,5,5,154,240,5,5,155,240,5,5,156,240,5,5,157,240,5,5,158,240,5,5,159,240,5,5,160,240,5,5,161,240,5,5,162,240,5,5,163,240,5,5,164,240,5,5,165,240,5,5,166,240,5,5,167,240,5,5,79,243,5,5,80,243,5,5,81,243,5,5,82,243,5,5,83,243,5,5,84,243,5,5,85,243,5,5,86,243,5,5,87,243,5,5,88,243,5,5,89,243,5,5,90,243,5,5,91,243,5,5,92,243,5,5,93,243,5,5,94,243,5,5,95,243,5,5,96,243,5,5,97,243,5,5,98,243,5,5,99,243,5,5,100,243,5,5,106,245,5,5,107,245,5,5,108,245,5,5,109,245,5,5,110,245,5,5,111,245,5,5,112,245,5,5,113,245,5,5,114,245,5,5,115,245,5,5,116,245,5,5,248,246,5,5,249,246,5,5,250,246,5,5,251,246,5,5,252,246,5,5,253,246,5,5,254,246,5,5,255,246,5,5,4,247,5,5,33,248,5,5,34,248,5,5,35,248,5,5,36,248,5,5,37,248,5,5,38,248,5,5,39,248,5,5,40,248,5,5,41,248,5,5,42,248,5,5,247,248,5,5,248,248,5,5,249,248,5,5,250,248,5,5,251,248,5,5,252,248,5,5,156,249,5,5,157,249,5,5,158,249,5,5,239,249,5,5,240,249,5,5,42,250,5,5,43,250,5,5,44,250,5,5,125,250,5,5,47,157,5,5,112,158,5,5,113,158,5,5,114,158,5,5,115,158,5,5,116,158,5,5,187,159,5,5,188,159,5,5,189,159,5,5,190,159,5,5,191,159,5,5,192,159,5,5,193,159,5,5,194,159,5,5,195,159,5,5,196,159,5,5,197,159,5,5,198,159,5,5,230,161,5,5,231,161,5,5,232,161,5,5,233,161,5,5,234,161,5,5,235,161,5,5,236,161,5,5,237,161,5,5,238,161,5,5,239,161,5,5,240,161,5,5,241,161,5,5,242,161,5,5,243,161,5,5,244,161,5,5,129,165,5,5,130,165,5,5,131,165,5,5,132,165,5,5,133,165,5,5,134,165,5,5,135,165,5,5,136,165,5,5,137,165,5,5,138,165,5,5,139,165,5,5,140,165,5,5,141,165,5,5,142,165,5,5,143,165,5,5,144,165,5,5,145,165,5,5,146,165,5,5,239,170,5,5,240,170,5,5,241,170,5,5,242,170,5,5,243,170,5,5,244,170,5,5,245,170,5,5,246,170,5,5,247,170,5,5,248,170,5,5,249,170,5,5,250,170,5,5,251,170,5,5,252,170,5,5,253,170,5,5,254,170,5,5,255,170,5,5,2,171,5,5,3,171,5,5,4,171,5,5,5,171,5,5,6,171,5,5,7,171,5,5,46,177,5,5,47,177,5,5,48,177,5,5,49,177,5,5,50,177,5,5,51,177,5,5,52,177,5,5,53,177,5,5,54,177,5,5,55,177,5,5,56,177,5,5,57,177,5,5,58,177,5,5,87,184,5,5,88,184,5,5,89,184,5,5,90,184,5,5,91,184,5,5,92,184,5,5,93,184,5,5,94,184,5,5,95,184,5,5,96,184,5,5,97,184,5,5,98,184,5,5,99,184,5,5,100,184,5,5,101,184,5,5,102,184,5,5,103,184,5,5,104,184,5,5,105,184,5,5,106,184,5,5,37,192,5,5,38,192,5,5,39,192,5,5,40,192,5,5,41,192,5,5,42,192,5,5,43,192,5,5,44,192,5,5,45,192,5,5,46,192,5,5,47,192,5,5,48,192,5,5,49,192,5,5,50,192,5,5,51,192,5,5,52,192,5,5,53,192,5,5,54,192,5,5,55,192,5,5,56,192,5,5,90,200,5,5,91,200,5,5,92,200,5,5,93,200,5,5,94,200,5,5,95,200,5,5,96,200,5,5,97,200,5,5,98,200,5,5,14,208,5,5,15,208,5,5,16,208,5,5,17,208,5,5,18,208,5,5,109,215,5,5,110,215,5,5,111,215,5,5,112,215,5,5,113,215,5,5,114,215,5,5,60,222,5,5,61,222,5,5,62,222,5,5,171,240,5,5,147,165,5,5,107,184,5,5,57,192,5,5,58,192,5,5,59,192,5,5,19,208,5,5,115,215,5,5,63,222,5,5,124,233,5,5,125,233,5,5,126,233,5,5,89,237,5,5,172,240,5,5,5,247,5,5,43,248,5,5,148,165,5,5,108,184,5,5,109,184,5,5,60,192,5,5,20,208,5,5,21,208,5,5,64,222,5,5,65,222,5,5,66,222,5,5,127,233,5,5,90,237,5,5,106,243,5,5,159,249,5,5,45,250,5,5,97,250,5,5,149,165,5,5,8,171,5,5,110,184,5,5,61,192,5,5,62,192,5,5,63,192,5,5,64,192,5,5,65,192,5,5,66,192,5,5,99,200,5,5,100,200,5,5,101,200,5,5,102,200,5,5,23,208,5,5,24,208,5,5,25,208,5,5,26,208,5,5,27,208,5,5,116,215,5,5,117,215,5,5,118,215,5,5,119,215,5,5,86,228,5,5,69,222,5,5,87,228,5,5,88,228,5,5,128,233,5,5,129,233,5,5,130,233,5,5,131,233,5,5,132,233,5,5,91,237,5,5,92,237,5,5,174,240,5,5,173,240,5,5,150,165,5,5,111,184,5,5,112,184,5,5,113,184,5,5,69,192,5,5,70,192,5,5,104,200,5,5,105,200,5,5,106,200,5,5,107,200,5,5,108,200,5,5,109,200,5,5,28,208,5,5,29,208,5,5,30,208,5,5,31,208,5,5,32,208,5,5,33,208,5,5,34,208,5,5,120,215,5,5,121,215,5,5,122,215,5,5,70,222,5,5,71,222,5,5,91,228,5,5,92,228,5,5,93,228,5,5,94,228,5,5,133,233,5,5,134,233,5,5,135,233,5,5,94,237,5,5,95,237,5,5,96,237,5,5,175,240,5,5,161,249,5,5,46,250,5,5,151,165,5,5,59,177,5,5,60,177,5,5,61,177,5,5,114,184,5,5,115,184,5,5,116,184,5,5,117,184,5,5,71,192,5,5,72,192,5,5,73,192,5,5,74,192,5,5,75,192,5,5,76,192,5,5,77,192,5,5,78,192,5,5,79,192,5,5,80,192,5,5,111,200,5,5,112,200,5,5,113,200,5,5,36,208,5,5,114,200,5,5,115,200,5,5,116,200,5,5,117,200,5,5,118,200,5,5,119,200,5,5,120,200,5,5,121,200,5,5,122,200,5,5,123,200,5,5,124,200,5,5,125,200,5,5,126,200,5,5,127,200,5,5,128,200,5,5,37,208,5,5,38,208,5,5,39,208,5,5,40,208,5,5,41,208,5,5,42,208,5,5,43,208,5,5,44,208,5,5,45,208,5,5,46,208,5,5,47,208,5,5,48,208,5,5,49,208,5,5,123,215,5,5,124,215,5,5,125,215,5,5,126,215,5,5,127,215,5,5,128,215,5,5,129,215,5,5,130,215,5,5,131,215,5,5,132,215,5,5,72,222,5,5,73,222,5,5,74,222,5,5,75,222,5,5,76,222,5,5,77,222,5,5,78,222,5,5,79,222,5,5,80,222,5,5,81,222,5,5,82,222,5,5,83,222,5,5,84,222,5,5,85,222,5,5,86,222,5,5,87,222,5,5,88,222,5,5,89,222,5,5,90,222,5,5,91,222,5,5,93,222,5,5,95,228,5,5,96,228,5,5,97,228,5,5,98,228,5,5,99,228,5,5,100,228,5,5,101,228,5,5,102,228,5,5,136,233,5,5,137,233,5,5,138,233,5,5,139,233,5,5,140,233,5,5,141,233,5,5,142,233,5,5,143,233,5,5,97,237,5,5,98,237,5,5,99,237,5,5,141,235,5,5,100,237,5,5,101,237,5,5,102,237,5,5,103,237,5,5,176,240,5,5,177,240,5,5,178,240,5,5,179,240,5,5,180,240,5,5,181,240,5,5,182,240,5,5,108,243,5,5,109,243,5,5,110,243,5,5,118,245,5,5,119,245,5,5,120,245,5,5,121,245,5,5,122,245,5,5,6,247,5,5,7,247,5,5,8,247,5,5,9,247,5,5,44,248,5,5,45,248,5,5,253,248,5,5,162,249,5,5,117,158,5,5,245,161,5,5,246,161,5,5,247,161,5,5,152,165,5,5,153,165,5,5,9,171,5,5,10,171,5,5,11,171,5,5,12,171,5,5,13,171,5,5,14,171,5,5,15,171,5,5,16,171,5,5,17,171,5,5,18,171,5,5,19,171,5,5,20,171,5,5,21,171,5,5,62,177,5,5,63,177,5,5,64,177,5,5,65,177,5,5,66,177,5,5,67,177,5,5,68,177,5,5,69,177,5,5,70,177,5,5,71,177,5,5,72,177,5,5,73,177,5,5,119,184,5,5,120,184,5,5,121,184,5,5,122,184,5,5,123,184,5,5,124,184,5,5,125,184,5,5,126,184,5,5,127,184,5,5,128,184,5,5,129,184,5,5,81,192,5,5,82,192,5,5,83,192,5,5,84,192,5,5,131,200,5,5,132,200,5,5,133,200,5,5,134,200,5,5,135,200,5,5,136,200,5,5,137,200,5,5,138,200,5,5,139,200,5,5,140,200,5,5,141,200,5,5,53,208,5,5,54,208,5,5,136,215,5,5,137,215,5,5,138,215,5,5,139,215,5,5,94,222,5,5,104,228,5,5,105,228,5,5,106,228,5,5,107,228,5,5,145,233,5,5,146,233,5,5,123,245,5,5,154,165,5,5,85,192,5,5,86,192,5,5,87,192,5,5,55,208,5,5,56,208,5,5,57,208,5,5,140,215,5,5,108,228,5,5,95,222,5,5,109,228,5,5,147,233,5,5,155,165,5,5,248,161,5,5,74,177,5,5,75,177,5,5,76,177,5,5,77,177,5,5,130,184,5,5,131,184,5,5,132,184,5,5,88,192,5,5,89,192,5,5,90,192,5,5,91,192,5,5,92,192,5,5,93,192,5,5,94,192,5,5,142,200,5,5,143,200,5,5,144,200,5,5,145,200,5,5,146,200,5,5,147,200,5,5,148,200,5,5,149,200,5,5,150,200,5,5,151,200,5,5,152,200,5,5,153,200,5,5,58,208,5,5,59,208,5,5,60,208,5,5,61,208,5,5,62,208,5,5,63,208,5,5,64,208,5,5,65,208,5,5,66,208,5,5,141,215,5,5,142,215,5,5,143,215,5,5,144,215,5,5,145,215,5,5,146,215,5,5,96,222,5,5,97,222,5,5,98,222,5,5,99,222,5,5,100,222,5,5,101,222,5,5,102,222,5,5,103,222,5,5,104,222,5,5,105,222,5,5,110,228,5,5,111,228,5,5,112,228,5,5,148,233,5,5,104,237,5,5,183,240,5,5,184,240,5,5,185,240,5,5,186,240,5,5,111,243,5,5,124,245,5,5,125,245,5,5,46,248,5,5,242,249,5,5,156,165,5,5,79,177,5,5,134,184,5,5,135,184,5,5,136,184,5,5,137,184,5,5,97,192,5,5,98,192,5,5,99,192,5,5,69,208,5,5,100,192,5,5,101,192,5,5,102,192,5,5,103,192,5,5,104,192,5,5,105,192,5,5,106,192,5,5,107,192,5,5,156,200,5,5,157,200,5,5,158,200,5,5,159,200,5,5,160,200,5,5,161,200,5,5,162,200,5,5,163,200,5,5,164,200,5,5,165,200,5,5,166,200,5,5,68,208,5,5,167,200,5,5,168,200,5,5,169,200,5,5,170,200,5,5,171,200,5,5,172,200,5,5,173,200,5,5,174,200,5,5,175,200,5,5,176,200,5,5,177,200,5,5,178,200,5,5,179,200,5,5,180,200,5,5,70,208,5,5,71,208,5,5,72,208,5,5,73,208,5,5,74,208,5,5,75,208,5,5,76,208,5,5,77,208,5,5,78,208,5,5,79,208,5,5,80,208,5,5,81,208,5,5,82,208,5,5,83,208,5,5,84,208,5,5,85,208,5,5,86,208,5,5,87,208,5,5,88,208,5,5,89,208,5,5,90,208,5,5,91,208,5,5,181,200,5,5,92,208,5,5,93,208,5,5,94,208,5,5,95,208,5,5,96,208,5,5,97,208,5,5,147,215,5,5,148,215,5,5,149,215,5,5,150,215,5,5,151,215,5,5,152,215,5,5,153,215,5,5,154,215,5,5,155,215,5,5,156,215,5,5,157,215,5,5,158,215,5,5,159,215,5,5,160,215,5,5,161,215,5,5,162,215,5,5,163,215,5,5,164,215,5,5,165,215,5,5,106,222,5,5,107,222,5,5,108,222,5,5,109,222,5,5,110,222,5,5,111,222,5,5,112,222,5,5,113,222,5,5,114,222,5,5,115,222,5,5,116,222,5,5,117,222,5,5,118,222,5,5,119,222,5,5,120,222,5,5,121,222,5,5,122,222,5,5,123,222,5,5,124,222,5,5,125,222,5,5,126,222,5,5,127,222,5,5,128,222,5,5,129,222,5,5,130,222,5,5,131,222,5,5,132,222,5,5,133,222,5,5,144,222,5,5,134,222,5,5,135,222,5,5,136,222,5,5,137,222,5,5,114,228,5,5,115,228,5,5,116,228,5,5,117,228,5,5,118,228,5,5,119,228,5,5,120,228,5,5,145,222,5,5,121,228,5,5,122,228,5,5,138,222,5,5,123,228,5,5,124,228,5,5,125,228,5,5,126,228,5,5,127,228,5,5,128,228,5,5,129,228,5,5,130,228,5,5,131,228,5,5,132,228,5,5,133,228,5,5,149,233,5,5,150,233,5,5,151,233,5,5,152,233,5,5,153,233,5,5,154,233,5,5,155,233,5,5,156,233,5,5,157,233,5,5,158,233,5,5,159,233,5,5,160,233,5,5,161,233,5,5,162,233,5,5,105,237,5,5,106,237,5,5,107,237,5,5,108,237,5,5,109,237,5,5,110,237,5,5,111,237,5,5,112,237,5,5,113,237,5,5,114,237,5,5,115,237,5,5,116,237,5,5,117,237,5,5,118,237,5,5,119,237,5,5,120,237,5,5,121,237,5,5,122,237,5,5,123,237,5,5,124,237,5,5,187,240,5,5,129,237,5,5,188,240,5,5,189,240,5,5,190,240,5,5,191,240,5,5,125,237,5,5,192,240,5,5,193,240,5,5,194,240,5,5,195,240,5,5,196,240,5,5,197,240,5,5,198,240,5,5,199,240,5,5,200,240,5,5,201,240,5,5,202,240,5,5,203,240,5,5,204,240,5,5,205,240,5,5,206,240,5,5,207,240,5,5,208,240,5,5,126,237,5,5,112,243,5,5,113,243,5,5,114,243,5,5,115,243,5,5,116,243,5,5,117,243,5,5,213,240,5,5,118,243,5,5,119,243,5,5,126,245,5,5,127,245,5,5,128,245,5,5,129,245,5,5,130,245,5,5,131,245,5,5,10,247,5,5,11,247,5,5,12,247,5,5,13,247,5,5,14,247,5,5,15,247,5,5,16,247,5,5,17,247,5,5,47,248,5,5,48,248,5,5,18,247,5,5,49,248,5,5,50,248,5,5,254,248,5,5,255,248,5,5,2,249,5,5,3,249,5,5,164,249,5,5,165,249,5,5,166,249,5,5,167,249,5,5,168,249,5,5,243,249,5,5,244,249,5,5,98,250,5,5,47,250,5,5,48,250,5,5,158,165,5,5,139,184,5,5,108,192,5,5,109,192,5,5,110,192,5,5,186,200,5,5,101,208,5,5,102,208,5,5,168,215,5,5,169,215,5,5,170,215,5,5,146,222,5,5,147,222,5,5,148,222,5,5,149,222,5,5,150,222,5,5,151,222,5,5,152,222,5,5,136,228,5,5,137,228,5,5,130,237,5,5,131,237,5,5,132,237,5,5,214,240,5,5,215,240,5,5,216,240,5,5,217,240,5,5,121,243,5,5,134,245,5,5,4,249,5,5,49,250,5,5,159,165,5,5,22,171,5,5,80,177,5,5,81,177,5,5,140,184,5,5,141,184,5,5,142,184,5,5,143,184,5,5,144,184,5,5,145,184,5,5,146,184,5,5,147,184,5,5,113,192,5,5,114,192,5,5,115,192,5,5,116,192,5,5,117,192,5,5,118,192,5,5,119,192,5,5,120,192,5,5,121,192,5,5,122,192,5,5,123,192,5,5,124,192,5,5,125,192,5,5,126,192,5,5,187,200,5,5,188,200,5,5,189,200,5,5,190,200,5,5,191,200,5,5,192,200,5,5,193,200,5,5,194,200,5,5,195,200,5,5,104,208,5,5,196,200,5,5,197,200,5,5,198,200,5,5,199,200,5,5,200,200,5,5,201,200,5,5,202,200,5,5,203,200,5,5,204,200,5,5,205,200,5,5,206,200,5,5,207,200,5,5,208,200,5,5,209,200,5,5,210,200,5,5,211,200,5,5,105,208,5,5,106,208,5,5,107,208,5,5,108,208,5,5,109,208,5,5,110,208,5,5,111,208,5,5,112,208,5,5,113,208,5,5,114,208,5,5,115,208,5,5,116,208,5,5,117,208,5,5,118,208,5,5,119,208,5,5,171,215,5,5,172,215,5,5,173,215,5,5,174,215,5,5,175,215,5,5,176,215,5,5,177,215,5,5,178,215,5,5,179,215,5,5,154,222,5,5,155,222,5,5,156,222,5,5,157,222,5,5,158,222,5,5,159,222,5,5,160,222,5,5,161,222,5,5,162,222,5,5,163,222,5,5,164,222,5,5,165,222,5,5,166,222,5,5,167,222,5,5,168,222,5,5,169,222,5,5,170,222,5,5,171,222,5,5,172,222,5,5,173,222,5,5,174,222,5,5,175,222,5,5,176,222,5,5,138,228,5,5,139,228,5,5,140,228,5,5,141,228,5,5,142,228,5,5,143,228,5,5,144,228,5,5,145,228,5,5,146,228,5,5,147,228,5,5,148,228,5,5,149,228,5,5,150,228,5,5,151,228,5,5,152,228,5,5,153,228,5,5,166,233,5,5,167,233,5,5,168,233,5,5,169,233,5,5,170,233,5,5,171,233,5,5,172,233,5,5,173,233,5,5,174,233,5,5,134,237,5,5,135,237,5,5,136,237,5,5,137,237,5,5,138,237,5,5,139,237,5,5,140,237,5,5,218,240,5,5,219,240,5,5,220,240,5,5,221,240,5,5,222,240,5,5,223,240,5,5,224,240,5,5,225,240,5,5,122,243,5,5,123,243,5,5,124,243,5,5,125,243,5,5,126,243,5,5,127,243,5,5,135,245,5,5,136,245,5,5,137,245,5,5,138,245,5,5,139,245,5,5,19,247,5,5,20,247,5,5,21,247,5,5,52,248,5,5,53,248,5,5,50,250,5,5,118,158,5,5,199,159,5,5,249,161,5,5,160,165,5,5,161,165,5,5,162,165,5,5,23,171,5,5,24,171,5,5,25,171,5,5,26,171,5,5,27,171,5,5,82,177,5,5,83,177,5,5,84,177,5,5,85,177,5,5,86,177,5,5,87,177,5,5,88,177,5,5,89,177,5,5,90,177,5,5,91,177,5,5,92,177,5,5,148,184,5,5,149,184,5,5,150,184,5,5,151,184,5,5,152,184,5,5,153,184,5,5,154,184,5,5,155,184,5,5,133,192,5,5,134,192,5,5,135,192,5,5,215,200,5,5,216,200,5,5,217,200,5,5,218,200,5,5,219,200,5,5,220,200,5,5,221,200,5,5,222,200,5,5,120,208,5,5,121,208,5,5,122,208,5,5,123,208,5,5,124,208,5,5,125,208,5,5,182,215,5,5,183,215,5,5,184,215,5,5,180,222,5,5,155,228,5,5,156,228,5,5,163,165,5,5,223,200,5,5,224,200,5,5,126,208,5,5,127,208,5,5,128,208,5,5,185,215,5,5,186,215,5,5,187,215,5,5,181,222,5,5,157,228,5,5,158,228,5,5,159,228,5,5,160,228,5,5,161,228,5,5,162,228,5,5,177,233,5,5,143,237,5,5,226,240,5,5,128,243,5,5,140,245,5,5,164,165,5,5,156,184,5,5,129,208,5,5,182,222,5,5,227,240,5,5,165,165,5,5,120,158,5,5,200,159,5,5,250,161,5,5,251,161,5,5,252,161,5,5,253,161,5,5,254,161,5,5,255,161,5,5,167,165,5,5,168,165,5,5,169,165,5,5,170,165,5,5,171,165,5,5,172,165,5,5,173,165,5,5,174,165,5,5,175,165,5,5,176,165,5,5,177,165,5,5,178,165,5,5,28,171,5,5,29,171,5,5,30,171,5,5,31,171,5,5,32,171,5,5,33,171,5,5,34,171,5,5,35,171,5,5,36,171,5,5,37,171,5,5,38,171,5,5,39,171,5,5,40,171,5,5,41,171,5,5,42,171,5,5,43,171,5,5,44,171,5,5,45,171,5,5,46,171,5,5,47,171,5,5,48,171,5,5,49,171,5,5,93,177,5,5,94,177,5,5,95,177,5,5,96,177,5,5,97,177,5,5,98,177,5,5,99,177,5,5,100,177,5,5,101,177,5,5,102,177,5,5,103,177,5,5,104,177,5,5,50,171,5,5,105,177,5,5,106,177,5,5,107,177,5,5,108,177,5,5,109,177,5,5,110,177,5,5,111,177,5,5,157,184,5,5,158,184,5,5,159,184,5,5,160,184,5,5,161,184,5,5,162,184,5,5,163,184,5,5,164,184,5,5,165,184,5,5,166,184,5,5,167,184,5,5,168,184,5,5,169,184,5,5,170,184,5,5,171,184,5,5,172,184,5,5,173,184,5,5,174,184,5,5,175,184,5,5,176,184,5,5,177,184,5,5,178,184,5,5,179,184,5,5,136,192,5,5,137,192,5,5,138,192,5,5,139,192,5,5,140,192,5,5,141,192,5,5,142,192,5,5,143,192,5,5,144,192,5,5,145,192,5,5,146,192,5,5,147,192,5,5,148,192,5,5,149,192,5,5,150,192,5,5,151,192,5,5,152,192,5,5,153,192,5,5,154,192,5,5,155,192,5,5,156,192,5,5,157,192,5,5,158,192,5,5,159,192,5,5,160,192,5,5,161,192,5,5,162,192,5,5,163,192,5,5,164,192,5,5,226,200,5,5,227,200,5,5,228,200,5,5,229,200,5,5,230,200,5,5,231,200,5,5,232,200,5,5,233,200,5,5,234,200,5,5,235,200,5,5,236,200,5,5,237,200,5,5,238,200,5,5,239,200,5,5,240,200,5,5,241,200,5,5,242,200,5,5,243,200,5,5,244,200,5,5,245,200,5,5,130,208,5,5,131,208,5,5,132,208,5,5,133,208,5,5,134,208,5,5,135,208,5,5,136,208,5,5,137,208,5,5,138,208,5,5,139,208,5,5,140,208,5,5,141,208,5,5,142,208,5,5,143,208,5,5,144,208,5,5,145,208,5,5,146,208,5,5,147,208,5,5,148,208,5,5,149,208,5,5,150,208,5,5,151,208,5,5,152,208,5,5,153,208,5,5,154,208,5,5,155,208,5,5,156,208,5,5,157,208,5,5,188,215,5,5,189,215,5,5,190,215,5,5,191,215,5,5,192,215,5,5,193,215,5,5,194,215,5,5,195,215,5,5,196,215,5,5,197,215,5,5,198,215,5,5,199,215,5,5,200,215,5,5,201,215,5,5,183,222,5,5,184,222,5,5,185,222,5,5,186,222,5,5,187,222,5,5,188,222,5,5,189,222,5,5,190,222,5,5,191,222,5,5,192,222,5,5,193,222,5,5,194,222,5,5,163,228,5,5,195,222,5,5,164,228,5,5,165,228,5,5,166,228,5,5,196,222,5,5,167,228,5,5,168,228,5,5,169,228,5,5,170,228,5,5,171,228,5,5,178,233,5,5,179,233,5,5,180,233,5,5,181,233,5,5,182,233,5,5,183,233,5,5,184,233,5,5,185,233,5,5,186,233,5,5,172,228,5,5,144,237,5,5,145,237,5,5,187,233,5,5,228,240,5,5,229,240,5,5,230,240,5,5,129,243,5,5,141,245,5,5,54,248,5,5,55,248,5,5,182,165,5,5,201,159,5,5,202,159,5,5,3,162,5,5,180,184,5,5,4,162,5,5,5,162,5,5,6,162,5,5,7,162,5,5,8,162,5,5,9,162,5,5,10,162,5,5,11,162,5,5,183,165,5,5,184,165,5,5,185,165,5,5,186,165,5,5,187,165,5,5,188,165,5,5,189,165,5,5,190,165,5,5,191,165,5,5,192,165,5,5,193,165,5,5,194,165,5,5,195,165,5,5,167,192,5,5,196,165,5,5,52,171,5,5,53,171,5,5,54,171,5,5,55,171,5,5,56,171,5,5,57,171,5,5,58,171,5,5,59,171,5,5,60,171,5,5,61,171,5,5,62,171,5,5,63,171,5,5,64,171,5,5,65,171,5,5,66,171,5,5,112,177,5,5,113,177,5,5,114,177,5,5,115,177,5,5,116,177,5,5,117,177,5,5,118,177,5,5,119,177,5,5,120,177,5,5,121,177,5,5,122,177,5,5,123,177,5,5,124,177,5,5,125,177,5,5,126,177,5,5,127,177,5,5,159,208,5,5,128,177,5,5,129,177,5,5,130,177,5,5,131,177,5,5,132,177,5,5,202,215,5,5,133,177,5,5,168,192,5,5,134,177,5,5,181,184,5,5,182,184,5,5,183,184,5,5,184,184,5,5,185,184,5,5,186,184,5,5,187,184,5,5,188,184,5,5,189,184,5,5,190,184,5,5,191,184,5,5,192,184,5,5,193,184,5,5,194,184,5,5,195,184,5,5,196,184,5,5,197,184,5,5,198,184,5,5,169,192,5,5,170,192,5,5,171,192,5,5,172,192,5,5,173,192,5,5,174,192,5,5,175,192,5,5,176,192,5,5,177,192,5,5,137,177,5,5,178,192,5,5,179,192,5,5,180,192,5,5,248,200,5,5,197,222,5,5,181,192,5,5,182,192,5,5,249,200,5,5,177,228,5,5,250,200,5,5,251,200,5,5,183,192,5,5,252,200,5,5,253,200,5,5,254,200,5,5,255,200,5,5,2,201,5,5,3,201,5,5,4,201,5,5,5,201,5,5,6,201,5,5,7,201,5,5,8,201,5,5,9,201,5,5,10,201,5,5,160,208,5,5,161,208,5,5,162,208,5,5,163,208,5,5,164,208,5,5,165,208,5,5,166,208,5,5,167,208,5,5,168,208,5,5,169,208,5,5,170,208,5,5,171,208,5,5,172,208,5,5,203,215,5,5,204,215,5,5,205,215,5,5,206,215,5,5,207,215,5,5,208,215,5,5,209,215,5,5,210,215,5,5,211,215,5,5,212,215,5,5,213,215,5,5,214,215,5,5,215,215,5,5,216,215,5,5,198,222,5,5,199,222,5,5,147,237,5,5,200,222,5,5,201,222,5,5,202,222,5,5,12,201,5,5,203,222,5,5,204,222,5,5,205,222,5,5,206,222,5,5,207,222,5,5,208,222,5,5,178,228,5,5,179,228,5,5,180,228,5,5,181,228,5,5,182,228,5,5,190,233,5,5,191,233,5,5,148,237,5,5,149,237,5,5,150,237,5,5,151,237,5,5,152,237,5,5,232,240,5,5,233,240,5,5,130,243,5,5,234,240,5,5,131,243,5,5,142,245,5,5,143,245,5,5,144,245,5,5,22,247,5,5,23,247,5,5,199,165,5,5,138,177,5,5,139,177,5,5,199,184,5,5,200,184,5,5,201,184,5,5,202,184,5,5,203,184,5,5,204,184,5,5,205,184,5,5,186,192,5,5,187,192,5,5,188,192,5,5,189,192,5,5,190,192,5,5,191,192,5,5,192,192,5,5,193,192,5,5,194,192,5,5,195,192,5,5,196,192,5,5,197,192,5,5,13,201,5,5,14,201,5,5,15,201,5,5,16,201,5,5,17,201,5,5,18,201,5,5,19,201,5,5,173,208,5,5,174,208,5,5,175,208,5,5,176,208,5,5,177,208,5,5,178,208,5,5,179,208,5,5,180,208,5,5,181,208,5,5,182,208,5,5,183,208,5,5,184,208,5,5,217,215,5,5,218,215,5,5,219,215,5,5,220,215,5,5,221,215,5,5,222,215,5,5,223,215,5,5,224,215,5,5,225,215,5,5,226,215,5,5,227,215,5,5,228,215,5,5,229,215,5,5,230,215,5,5,210,222,5,5,211,222,5,5,212,222,5,5,213,222,5,5,214,222,5,5,215,222,5,5,216,222,5,5,217,222,5,5,218,222,5,5,219,222,5,5,220,222,5,5,221,222,5,5,222,222,5,5,183,228,5,5,184,228,5,5,185,228,5,5,186,228,5,5,187,228,5,5,188,228,5,5,189,228,5,5,190,228,5,5,191,228,5,5,192,228,5,5,193,228,5,5,192,233,5,5,193,233,5,5,194,233,5,5,195,233,5,5,196,233,5,5,197,233,5,5,198,233,5,5,199,233,5,5,200,233,5,5,201,233,5,5,202,233,5,5,203,233,5,5,204,233,5,5,153,237,5,5,154,237,5,5,155,237,5,5,156,237,5,5,157,237,5,5,158,237,5,5,159,237,5,5,160,237,5,5,235,240,5,5,236,240,5,5,237,240,5,5,238,240,5,5,239,240,5,5,132,243,5,5,133,243,5,5,134,243,5,5,135,243,5,5,136,243,5,5,137,243,5,5,138,243,5,5,145,245,5,5,146,245,5,5,147,245,5,5,56,248,5,5,5,249,5,5,6,249,5,5,7,249,5,5,8,249,5,5,169,249,5,5,9,249,5,5,245,249,5,5,246,249,5,5,51,250,5,5,200,165,5,5,69,171,5,5,200,192,5,5,21,201,5,5,22,201,5,5,139,243,5,5,201,165,5,5,140,177,5,5,201,192,5,5,23,201,5,5,161,237,5,5,70,171,5,5,71,171,5,5,141,177,5,5,142,177,5,5,206,184,5,5,207,184,5,5,208,184,5,5,209,184,5,5,210,184,5,5,211,184,5,5,212,184,5,5,213,184,5,5,214,184,5,5,215,184,5,5,216,184,5,5,217,184,5,5,218,184,5,5,219,184,5,5,202,192,5,5,203,192,5,5,204,192,5,5,205,192,5,5,206,192,5,5,207,192,5,5,208,192,5,5,209,192,5,5,210,192,5,5,211,192,5,5,212,192,5,5,213,192,5,5,214,192,5,5,215,192,5,5,216,192,5,5,217,192,5,5,218,192,5,5,219,192,5,5,220,192,5,5,221,192,5,5,222,192,5,5,223,192,5,5,224,192,5,5,225,192,5,5,226,192,5,5,227,192,5,5,24,201,5,5,25,201,5,5,26,201,5,5,27,201,5,5,28,201,5,5,29,201,5,5,30,201,5,5,31,201,5,5,32,201,5,5,33,201,5,5,34,201,5,5,35,201,5,5,36,201,5,5,37,201,5,5,38,201,5,5,39,201,5,5,40,201,5,5,41,201,5,5,42,201,5,5,43,201,5,5,44,201,5,5,45,201,5,5,46,201,5,5,47,201,5,5,48,201,5,5,49,201,5,5,50,201,5,5,51,201,5,5,52,201,5,5,53,201,5,5,54,201,5,5,55,201,5,5,56,201,5,5,57,201,5,5,58,201,5,5,59,201,5,5,60,201,5,5,61,201,5,5,62,201,5,5,63,201,5,5,64,201,5,5,65,201,5,5,66,201,5,5,67,201,5,5,68,201,5,5,69,201,5,5,70,201,5,5,71,201,5,5,232,215,5,5,186,208,5,5,187,208,5,5,188,208,5,5,189,208,5,5,190,208,5,5,191,208,5,5,192,208,5,5,193,208,5,5,194,208,5,5,195,208,5,5,196,208,5,5,197,208,5,5,198,208,5,5,199,208,5,5,200,208,5,5,201,208,5,5,202,208,5,5,203,208,5,5,204,208,5,5,205,208,5,5,206,208,5,5,207,208,5,5,208,208,5,5,209,208,5,5,210,208,5,5,211,208,5,5,212,208,5,5,213,208,5,5,214,208,5,5,215,208,5,5,216,208,5,5,217,208,5,5,218,208,5,5,219,208,5,5,220,208,5,5,221,208,5,5,222,208,5,5,223,208,5,5,224,208,5,5,225,208,5,5,226,208,5,5,227,208,5,5,228,208,5,5,229,208,5,5,230,208,5,5,231,208,5,5,232,208,5,5,233,208,5,5,234,208,5,5,235,208,5,5,236,208,5,5,237,208,5,5,238,208,5,5,239,208,5,5,240,208,5,5,241,208,5,5,242,208,5,5,243,208,5,5,244,208,5,5,245,208,5,5,246,208,5,5,247,208,5,5,248,208,5,5,249,208,5,5,250,208,5,5,251,208,5,5,252,208,5,5,253,208,5,5,254,208,5,5,255,208,5,5,2,209,5,5,233,215,5,5,234,215,5,5,235,215,5,5,236,215,5,5,237,215,5,5,238,215,5,5,239,215,5,5,47,216,5,5,240,215,5,5,241,215,5,5,242,215,5,5,243,215,5,5,244,215,5,5,245,215,5,5,246,215,5,5,247,215,5,5,248,215,5,5,249,215,5,5,250,215,5,5,251,215,5,5,252,215,5,5,253,215,5,5,254,215,5,5,255,215,5,5,2,216,5,5,3,216,5,5,3,209,5,5,4,216,5,5,5,216,5,5,6,216,5,5,7,216,5,5,8,216,5,5,9,216,5,5,10,216,5,5,11,216,5,5,12,216,5,5,13,216,5,5,14,216,5,5,15,216,5,5,16,216,5,5,17,216,5,5,18,216,5,5,19,216,5,5,20,216,5,5,21,216,5,5,22,216,5,5,23,216,5,5,24,216,5,5,25,216,5,5,26,216,5,5,27,216,5,5,28,216,5,5,29,216,5,5,30,216,5,5,31,216,5,5,32,216,5,5,33,216,5,5,34,216,5,5,35,216,5,5,36,216,5,5,37,216,5,5,223,222,5,5,224,222,5,5,225,222,5,5,226,222,5,5,227,222,5,5,228,222,5,5,229,222,5,5,230,222,5,5,231,222,5,5,232,222,5,5,233,222,5,5,234,222,5,5,235,222,5,5,236,222,5,5,237,222,5,5,238,222,5,5,239,222,5,5,240,222,5,5,241,222,5,5,242,222,5,5,243,222,5,5,244,222,5,5,245,222,5,5,246,222,5,5,247,222,5,5,196,228,5,5,248,222,5,5,249,222,5,5,250,222,5,5,251,222,5,5,252,222,5,5,253,222,5,5,254,222,5,5,255,222,5,5,2,223,5,5,3,223,5,5,4,223,5,5,5,223,5,5,6,223,5,5,7,223,5,5,8,223,5,5,9,223,5,5,10,223,5,5,11,223,5,5,12,223,5,5,13,223,5,5,14,223,5,5,15,223,5,5,16,223,5,5,17,223,5,5,18,223,5,5,19,223,5,5,20,223,5,5,21,223,5,5,22,223,5,5,23,223,5,5,24,223,5,5,25,223,5,5,26,223,5,5,27,223,5,5,46,216,5,5,28,223,5,5,29,223,5,5,30,223,5,5,31,223,5,5,32,223,5,5,33,223,5,5,34,223,5,5,35,223,5,5,197,228,5,5,198,228,5,5,199,228,5,5,200,228,5,5,201,228,5,5,202,228,5,5,203,228,5,5,204,228,5,5,205,228,5,5,206,228,5,5,207,228,5,5,208,228,5,5,209,228,5,5,210,228,5,5,211,228,5,5,212,228,5,5,213,228,5,5,214,228,5,5,215,228,5,5,216,228,5,5,217,228,5,5,218,228,5,5,219,228,5,5,220,228,5,5,221,228,5,5,222,228,5,5,223,228,5,5,224,228,5,5,225,228,5,5,226,228,5,5,227,228,5,5,228,228,5,5,229,228,5,5,230,228,5,5,231,228,5,5,232,228,5,5,233,228,5,5,234,228,5,5,235,228,5,5,236,228,5,5,237,228,5,5,238,228,5,5,239,228,5,5,240,228,5,5,241,228,5,5,242,228,5,5,243,228,5,5,244,228,5,5,245,228,5,5,206,233,5,5,246,228,5,5,247,228,5,5,248,228,5,5,249,228,5,5,250,228,5,5,251,228,5,5,252,228,5,5,253,228,5,5,254,228,5,5,255,228,5,5,2,229,5,5,3,229,5,5,4,229,5,5,5,229,5,5,6,229,5,5,7,229,5,5,8,229,5,5,9,229,5,5,10,229,5,5,11,229,5,5,12,229,5,5,13,229,5,5,14,229,5,5,15,229,5,5,16,229,5,5,17,229,5,5,18,229,5,5,19,229,5,5,20,229,5,5,21,229,5,5,207,233,5,5,22,229,5,5,208,233,5,5,209,233,5,5,210,233,5,5,211,233,5,5,212,233,5,5,213,233,5,5,214,233,5,5,215,233,5,5,216,233,5,5,217,233,5,5,218,233,5,5,219,233,5,5,220,233,5,5,221,233,5,5,222,233,5,5,223,233,5,5,224,233,5,5,225,233,5,5,226,233,5,5,227,233,5,5,228,233,5,5,229,233,5,5,230,233,5,5,231,233,5,5,232,233,5,5,233,233,5,5,234,233,5,5,235,233,5,5,236,233,5,5,237,233,5,5,238,233,5,5,239,233,5,5,240,233,5,5,241,233,5,5,242,233,5,5,243,233,5,5,244,233,5,5,245,233,5,5,246,233,5,5,247,233,5,5,248,233,5,5,249,233,5,5,250,233,5,5,251,233,5,5,252,233,5,5,253,233,5,5,254,233,5,5,255,233,5,5,2,234,5,5,36,229,5,5,3,234,5,5,4,234,5,5,5,234,5,5,6,234,5,5,7,234,5,5,8,234,5,5,9,234,5,5,10,234,5,5,11,234,5,5,12,234,5,5,13,234,5,5,14,234,5,5,15,234,5,5,162,237,5,5,163,237,5,5,164,237,5,5,165,237,5,5,166,237,5,5,167,237,5,5,168,237,5,5,169,237,5,5,170,237,5,5,171,237,5,5,172,237,5,5,173,237,5,5,174,237,5,5,175,237,5,5,176,237,5,5,177,237,5,5,178,237,5,5,179,237,5,5,180,237,5,5,181,237,5,5,182,237,5,5,183,237,5,5,184,237,5,5,185,237,5,5,186,237,5,5,32,234,5,5,187,237,5,5,188,237,5,5,189,237,5,5,190,237,5,5,191,237,5,5,192,237,5,5,193,237,5,5,241,240,5,5,194,237,5,5,195,237,5,5,196,237,5,5,197,237,5,5,198,237,5,5,33,234,5,5,199,237,5,5,200,237,5,5,201,237,5,5,202,237,5,5,203,237,5,5,204,237,5,5,205,237,5,5,206,237,5,5,207,237,5,5,208,237,5,5,209,237,5,5,210,237,5,5,211,237,5,5,212,237,5,5,213,237,5,5,214,237,5,5,242,240,5,5,243,240,5,5,244,240,5,5,245,240,5,5,246,240,5,5,247,240,5,5,248,240,5,5,249,240,5,5,250,240,5,5,251,240,5,5,252,240,5,5,253,240,5,5,254,240,5,5,255,240,5,5,2,241,5,5,3,241,5,5,4,241,5,5,5,241,5,5,6,241,5,5,7,241,5,5,8,241,5,5,9,241,5,5,10,241,5,5,11,241,5,5,12,241,5,5,13,241,5,5,14,241,5,5,15,241,5,5,16,241,5,5,17,241,5,5,18,241,5,5,19,241,5,5,20,241,5,5,21,241,5,5,22,241,5,5,23,241,5,5,24,241,5,5,25,241,5,5,26,241,5,5,27,241,5,5,28,241,5,5,29,241,5,5,30,241,5,5,31,241,5,5,32,241,5,5,33,241,5,5,34,241,5,5,35,241,5,5,36,241,5,5,37,241,5,5,38,241,5,5,140,243,5,5,148,245,5,5,141,243,5,5,142,243,5,5,143,243,5,5,144,243,5,5,39,241,5,5,145,243,5,5,146,243,5,5,147,243,5,5,148,243,5,5,149,243,5,5,150,243,5,5,151,243,5,5,152,243,5,5,153,243,5,5,154,243,5,5,155,243,5,5,156,243,5,5,157,243,5,5,158,243,5,5,159,243,5,5,160,243,5,5,161,243,5,5,162,243,5,5,163,243,5,5,164,243,5,5,165,243,5,5,166,243,5,5,167,243,5,5,168,243,5,5,169,243,5,5,170,243,5,5,171,243,5,5,172,243,5,5,173,243,5,5,174,243,5,5,175,243,5,5,176,243,5,5,177,243,5,5,178,243,5,5,179,243,5,5,180,243,5,5,181,243,5,5,182,243,5,5,183,243,5,5,184,243,5,5,185,243,5,5,186,243,5,5,187,243,5,5,188,243,5,5,189,243,5,5,190,243,5,5,191,243,5,5,149,245,5,5,150,245,5,5,151,245,5,5,152,245,5,5,153,245,5,5,154,245,5,5,203,243,5,5,155,245,5,5,156,245,5,5,157,245,5,5,158,245,5,5,159,245,5,5,160,245,5,5,161,245,5,5,162,245,5,5,163,245,5,5,164,245,5,5,165,245,5,5,166,245,5,5,204,243,5,5,167,245,5,5,168,245,5,5,169,245,5,5,170,245,5,5,171,245,5,5,24,247,5,5,25,247,5,5,26,247,5,5,27,247,5,5,28,247,5,5,29,247,5,5,30,247,5,5,31,247,5,5,32,247,5,5,33,247,5,5,34,247,5,5,35,247,5,5,36,247,5,5,37,247,5,5,38,247,5,5,39,247,5,5,40,247,5,5,41,247,5,5,42,247,5,5,57,248,5,5,58,248,5,5,59,248,5,5,60,248,5,5,61,248,5,5,62,248,5,5,63,248,5,5,64,248,5,5,65,248,5,5,66,248,5,5,67,248,5,5,68,248,5,5,69,248,5,5,70,248,5,5,71,248,5,5,72,248,5,5,73,248,5,5,74,248,5,5,43,247,5,5,10,249,5,5,11,249,5,5,12,249,5,5,13,249,5,5,14,249,5,5,170,249,5,5,171,249,5,5,172,249,5,5,173,249,5,5,174,249,5,5,175,249,5,5,176,249,5,5,247,249,5,5,248,249,5,5,249,249,5,5,250,249,5,5,251,249,5,5,252,249,5,5,253,249,5,5,52,250,5,5,53,250,5,5,54,250,5,5,55,250,5,5,100,250,5,5,101,250,5,5,102,250,5,5,103,250,5,5,126,250,5,5,127,250,5,5,203,159,5,5,12,162,5,5,13,162,5,5,202,165,5,5,203,165,5,5,204,165,5,5,205,165,5,5,206,165,5,5,72,171,5,5,73,171,5,5,74,171,5,5,75,171,5,5,76,171,5,5,77,171,5,5,78,171,5,5,79,171,5,5,80,171,5,5,81,171,5,5,82,171,5,5,143,177,5,5,144,177,5,5,145,177,5,5,146,177,5,5,147,177,5,5,148,177,5,5,149,177,5,5,150,177,5,5,151,177,5,5,152,177,5,5,153,177,5,5,154,177,5,5,155,177,5,5,156,177,5,5,157,177,5,5,158,177,5,5,159,177,5,5,160,177,5,5,161,177,5,5,162,177,5,5,163,177,5,5,164,177,5,5,165,177,5,5,166,177,5,5,220,184,5,5,221,184,5,5,222,184,5,5,223,184,5,5,224,184,5,5,225,184,5,5,226,184,5,5,227,184,5,5,228,184,5,5,229,184,5,5,230,184,5,5,231,184,5,5,232,184,5,5,233,184,5,5,234,184,5,5,235,184,5,5,236,184,5,5,237,184,5,5,238,184,5,5,239,184,5,5,240,184,5,5,241,184,5,5,242,184,5,5,243,184,5,5,244,184,5,5,245,184,5,5,246,184,5,5,247,184,5,5,248,184,5,5,249,184,5,5,250,184,5,5,230,192,5,5,231,192,5,5,232,192,5,5,233,192,5,5,234,192,5,5,235,192,5,5,236,192,5,5,237,192,5,5,238,192,5,5,239,192,5,5,240,192,5,5,241,192,5,5,242,192,5,5,243,192,5,5,244,192,5,5,245,192,5,5,246,192,5,5,247,192,5,5,248,192,5,5,249,192,5,5,250,192,5,5,251,192,5,5,252,192,5,5,253,192,5,5,254,192,5,5,255,192,5,5,2,193,5,5,3,193,5,5,4,193,5,5,5,193,5,5,6,193,5,5,7,193,5,5,8,193,5,5,9,193,5,5,10,193,5,5,11,193,5,5,12,193,5,5,13,193,5,5,14,193,5,5,15,193,5,5,16,193,5,5,76,201,5,5,77,201,5,5,78,201,5,5,79,201,5,5,80,201,5,5,81,201,5,5,82,201,5,5,83,201,5,5,84,201,5,5,85,201,5,5,86,201,5,5,87,201,5,5,88,201,5,5,89,201,5,5,90,201,5,5,91,201,5,5,92,201,5,5,93,201,5,5,94,201,5,5,95,201,5,5,96,201,5,5,97,201,5,5,98,201,5,5,99,201,5,5,100,201,5,5,101,201,5,5,102,201,5,5,103,201,5,5,104,201,5,5,105,201,5,5,9,209,5,5,10,209,5,5,11,209,5,5,12,209,5,5,13,209,5,5,14,209,5,5,15,209,5,5,16,209,5,5,17,209,5,5,18,209,5,5,19,209,5,5,20,209,5,5,21,209,5,5,22,209,5,5,23,209,5,5,24,209,5,5,25,209,5,5,26,209,5,5,27,209,5,5,28,209,5,5,29,209,5,5,30,209,5,5,31,209,5,5,32,209,5,5,33,209,5,5,34,209,5,5,35,209,5,5,36,209,5,5,48,216,5,5,49,216,5,5,50,216,5,5,51,216,5,5,52,216,5,5,53,216,5,5,54,216,5,5,55,216,5,5,56,216,5,5,57,216,5,5,58,216,5,5,59,216,5,5,60,216,5,5,61,216,5,5,62,216,5,5,63,216,5,5,64,216,5,5,65,216,5,5,66,216,5,5,67,216,5,5,48,223,5,5,49,223,5,5,50,223,5,5,51,223,5,5,52,223,5,5,53,223,5,5,54,223,5,5,55,223,5,5,56,223,5,5,57,223,5,5,58,223,5,5,59,223,5,5,60,223,5,5,61,223,5,5,62,223,5,5,63,223,5,5,37,229,5,5,38,229,5,5,39,229,5,5,40,229,5,5,41,229,5,5,42,229,5,5,43,229,5,5,44,229,5,5,45,229,5,5,46,229,5,5,47,229,5,5,34,234,5,5,35,234,5,5,36,234,5,5,37,234,5,5,38,234,5,5,39,234,5,5,40,234,5,5,41,234,5,5,42,234,5,5,43,234,5,5,44,234,5,5,228,237,5,5,229,237,5,5,230,237,5,5,231,237,5,5,232,237,5,5,233,237,5,5,53,241,5,5,205,243,5,5,206,243,5,5,49,247,5,5,50,247,5,5,83,171,5,5,84,171,5,5,17,193,5,5,18,193,5,5,106,201,5,5,64,223,5,5,54,241,5,5,51,247,5,5,204,159,5,5,85,171,5,5,167,177,5,5,168,177,5,5,251,184,5,5,252,184,5,5,253,184,5,5,19,193,5,5,20,193,5,5,21,193,5,5,22,193,5,5,23,193,5,5,107,201,5,5,108,201,5,5,109,201,5,5,110,201,5,5,111,201,5,5,112,201,5,5,113,201,5,5,114,201,5,5,115,201,5,5,116,201,5,5,117,201,5,5,118,201,5,5,119,201,5,5,38,209,5,5,39,209,5,5,40,209,5,5,41,209,5,5,42,209,5,5,43,209,5,5,44,209,5,5,45,209,5,5,46,209,5,5,68,216,5,5,69,216,5,5,70,216,5,5,71,216,5,5,72,216,5,5,73,216,5,5,74,216,5,5,75,216,5,5,76,216,5,5,77,216,5,5,65,223,5,5,66,223,5,5,67,223,5,5,68,223,5,5,69,223,5,5,70,223,5,5,71,223,5,5,72,223,5,5,73,223,5,5,74,223,5,5,48,229,5,5,49,229,5,5,46,234,5,5,50,229,5,5,51,229,5,5,52,229,5,5,53,229,5,5,54,229,5,5,55,229,5,5,56,229,5,5,57,229,5,5,45,234,5,5,58,229,5,5,59,229,5,5,47,234,5,5,48,234,5,5,49,234,5,5,50,234,5,5,51,234,5,5,52,234,5,5,53,234,5,5,54,234,5,5,55,234,5,5,56,234,5,5,62,229,5,5,57,234,5,5,58,234,5,5,234,237,5,5,235,237,5,5,236,237,5,5,237,237,5,5,238,237,5,5,239,237,5,5,240,237,5,5,241,237,5,5,242,237,5,5,55,241,5,5,56,241,5,5,57,241,5,5,58,241,5,5,59,241,5,5,207,243,5,5,208,243,5,5,209,243,5,5,210,243,5,5,179,245,5,5,180,245,5,5,181,245,5,5,182,245,5,5,183,245,5,5,52,247,5,5,154,157,5,5,121,158,5,5,205,159,5,5,14,162,5,5,15,162,5,5,16,162,5,5,17,162,5,5,18,162,5,5,207,165,5,5,208,165,5,5,209,165,5,5,210,165,5,5,211,165,5,5,212,165,5,5,213,165,5,5,214,165,5,5,86,171,5,5,87,171,5,5,169,177,5,5,170,177,5,5,171,177,5,5,172,177,5,5,173,177,5,5,174,177,5,5,175,177,5,5,176,177,5,5,177,177,5,5,2,185,5,5,3,185,5,5,4,185,5,5,5,185,5,5,25,193,5,5,26,193,5,5,27,193,5,5,28,193,5,5,29,193,5,5,30,193,5,5,31,193,5,5,32,193,5,5,33,193,5,5,34,193,5,5,120,201,5,5,121,201,5,5,122,201,5,5,123,201,5,5,124,201,5,5,47,209,5,5,48,209,5,5,49,209,5,5,50,209,5,5,78,216,5,5,63,229,5,5,88,171,5,5,155,157,5,5,206,159,5,5,207,159,5,5,19,162,5,5,20,162,5,5,21,162,5,5,22,162,5,5,23,162,5,5,215,165,5,5,216,165,5,5,217,165,5,5,218,165,5,5,219,165,5,5,220,165,5,5,221,165,5,5,222,165,5,5,223,165,5,5,224,165,5,5,225,165,5,5,226,165,5,5,227,165,5,5,228,165,5,5,229,165,5,5,230,165,5,5,231,165,5,5,232,165,5,5,90,171,5,5,91,171,5,5,92,171,5,5,93,171,5,5,94,171,5,5,95,171,5,5,96,171,5,5,97,171,5,5,98,171,5,5,99,171,5,5,100,171,5,5,101,171,5,5,102,171,5,5,103,171,5,5,104,171,5,5,105,171,5,5,106,171,5,5,107,171,5,5,108,171,5,5,178,177,5,5,179,177,5,5,180,177,5,5,181,177,5,5,182,177,5,5,183,177,5,5,184,177,5,5,185,177,5,5,186,177,5,5,187,177,5,5,188,177,5,5,189,177,5,5,6,185,5,5,7,185,5,5,8,185,5,5,9,185,5,5,25,185,5,5,10,185,5,5,11,185,5,5,12,185,5,5,13,185,5,5,14,185,5,5,15,185,5,5,16,185,5,5,17,185,5,5,18,185,5,5,19,185,5,5,20,185,5,5,21,185,5,5,22,185,5,5,23,185,5,5,24,185,5,5,35,193,5,5,36,193,5,5,37,193,5,5,38,193,5,5,39,193,5,5,40,193,5,5,41,193,5,5,42,193,5,5,125,201,5,5,43,193,5,5,44,193,5,5,45,193,5,5,46,193,5,5,47,193,5,5,48,193,5,5,49,193,5,5,50,193,5,5,126,201,5,5,51,193,5,5,127,201,5,5,128,201,5,5,129,201,5,5,130,201,5,5,131,201,5,5,132,201,5,5,133,201,5,5,134,201,5,5,135,201,5,5,136,201,5,5,137,201,5,5,138,201,5,5,139,201,5,5,140,201,5,5,141,201,5,5,142,201,5,5,143,201,5,5,144,201,5,5,51,209,5,5,145,201,5,5,52,209,5,5,53,209,5,5,54,209,5,5,55,209,5,5,56,209,5,5,57,209,5,5,58,209,5,5,59,209,5,5,79,216,5,5,80,216,5,5,81,216,5,5,82,216,5,5,83,216,5,5,84,216,5,5,85,216,5,5,86,216,5,5,87,216,5,5,76,223,5,5,77,223,5,5,78,223,5,5,79,223,5,5,64,229,5,5,65,229,5,5,66,229,5,5,67,229,5,5,68,229,5,5,69,229,5,5,59,234,5,5,60,234,5,5,61,234,5,5,62,234,5,5,63,234,5,5,64,234,5,5,65,234,5,5,244,237,5,5,60,241,5,5,212,243,5,5,109,171,5,5,71,229,5,5,66,234,5,5,110,171,5,5,27,185,5,5,28,185,5,5,29,185,5,5,30,185,5,5,31,185,5,5,55,193,5,5,56,193,5,5,148,201,5,5,149,201,5,5,150,201,5,5,151,201,5,5,152,201,5,5,153,201,5,5,154,201,5,5,155,201,5,5,62,209,5,5,63,209,5,5,64,209,5,5,88,216,5,5,65,209,5,5,66,209,5,5,67,209,5,5,89,216,5,5,90,216,5,5,91,216,5,5,81,223,5,5,72,229,5,5,73,229,5,5,67,234,5,5,245,237,5,5,246,237,5,5,247,237,5,5,248,237,5,5,249,237,5,5,250,237,5,5,251,237,5,5,252,237,5,5,253,237,5,5,254,237,5,5,61,241,5,5,2,238,5,5,62,241,5,5,184,245,5,5,22,249,5,5,23,249,5,5,106,250,5,5,112,171,5,5,57,193,5,5,58,193,5,5,59,193,5,5,156,201,5,5,157,201,5,5,158,201,5,5,159,201,5,5,160,201,5,5,161,201,5,5,162,201,5,5,163,201,5,5,68,209,5,5,69,209,5,5,70,209,5,5,71,209,5,5,72,209,5,5,73,209,5,5,74,209,5,5,75,209,5,5,76,209,5,5,77,209,5,5,78,209,5,5,93,216,5,5,94,216,5,5,95,216,5,5,82,223,5,5,83,223,5,5,84,223,5,5,85,223,5,5,86,223,5,5,87,223,5,5,88,223,5,5,89,223,5,5,90,223,5,5,74,229,5,5,75,229,5,5,76,229,5,5,77,229,5,5,78,229,5,5,79,229,5,5,80,229,5,5,81,229,5,5,82,229,5,5,83,229,5,5,84,229,5,5,85,229,5,5,86,229,5,5,70,234,5,5,71,234,5,5,72,234,5,5,73,234,5,5,74,234,5,5,75,234,5,5,76,234,5,5,77,234,5,5,78,234,5,5,82,234,5,5,3,238,5,5,4,238,5,5,5,238,5,5,6,238,5,5,64,241,5,5,65,241,5,5,66,241,5,5,67,241,5,5,68,241,5,5,69,241,5,5,70,241,5,5,71,241,5,5,213,243,5,5,214,243,5,5,215,243,5,5,216,243,5,5,185,245,5,5,217,243,5,5,218,243,5,5,186,245,5,5,187,245,5,5,188,245,5,5,189,245,5,5,190,245,5,5,191,245,5,5,192,245,5,5,53,247,5,5,54,247,5,5,55,247,5,5,56,247,5,5,57,247,5,5,83,248,5,5,24,249,5,5,25,249,5,5,26,249,5,5,27,249,5,5,28,249,5,5,29,249,5,5,30,249,5,5,179,249,5,5,3,250,5,5,58,250,5,5,59,250,5,5,60,250,5,5,61,250,5,5,129,250,5,5,174,250,5,5,113,171,5,5,114,171,5,5,166,201,5,5,167,201,5,5,80,209,5,5,81,209,5,5,100,216,5,5,101,216,5,5,102,216,5,5,92,223,5,5,92,229,5,5,93,229,5,5,8,238,5,5,115,171,5,5,168,201,5,5,93,223,5,5,75,241,5,5,192,177,5,5,116,171,5,5,103,216,5,5,94,223,5,5,94,229,5,5,193,245,5,5,86,248,5,5,193,177,5,5,63,193,5,5,169,201,5,5,170,201,5,5,171,201,5,5,172,201,5,5,173,201,5,5,174,201,5,5,175,201,5,5,82,209,5,5,83,209,5,5,84,209,5,5,85,209,5,5,86,209,5,5,87,209,5,5,88,209,5,5,89,209,5,5,104,216,5,5,105,216,5,5,106,216,5,5,107,216,5,5,108,216,5,5,109,216,5,5,110,216,5,5,111,216,5,5,112,216,5,5,113,216,5,5,114,216,5,5,115,216,5,5,116,216,5,5,95,223,5,5,96,223,5,5,97,223,5,5,98,223,5,5,99,223,5,5,100,223,5,5,101,223,5,5,102,223,5,5,103,223,5,5,104,223,5,5,105,223,5,5,106,223,5,5,95,229,5,5,96,229,5,5,97,229,5,5,98,229,5,5,99,229,5,5,100,229,5,5,101,229,5,5,84,234,5,5,85,234,5,5,86,234,5,5,87,234,5,5,88,234,5,5,89,234,5,5,90,234,5,5,91,234,5,5,9,238,5,5,10,238,5,5,11,238,5,5,12,238,5,5,13,238,5,5,14,238,5,5,15,238,5,5,16,238,5,5,17,238,5,5,18,238,5,5,19,238,5,5,20,238,5,5,21,238,5,5,22,238,5,5,23,238,5,5,76,241,5,5,77,241,5,5,78,241,5,5,79,241,5,5,80,241,5,5,81,241,5,5,82,241,5,5,222,243,5,5,223,243,5,5,224,243,5,5,225,243,5,5,194,245,5,5,195,245,5,5,196,245,5,5,197,245,5,5,59,247,5,5,60,247,5,5,61,247,5,5,62,247,5,5,87,248,5,5,88,248,5,5,31,249,5,5,32,249,5,5,33,249,5,5,4,250,5,5,143,250,5,5,194,177,5,5,176,201,5,5,117,216,5,5,118,216,5,5,107,223,5,5,108,223,5,5,109,223,5,5,102,229,5,5,92,234,5,5,93,234,5,5,94,234,5,5,24,238,5,5,25,238,5,5,26,238,5,5,27,238,5,5,28,238,5,5,226,243,5,5,83,241,5,5,84,241,5,5,85,241,5,5,86,241,5,5,227,243,5,5,198,245,5,5,199,245,5,5,63,247,5,5,34,249,5,5,35,249,5,5,122,158,5,5,235,165,5,5,195,177,5,5,177,201,5,5,90,209,5,5,91,209,5,5,119,216,5,5,196,177,5,5,92,209,5,5,110,223,5,5,103,229,5,5,95,234,5,5,87,241,5,5,197,177,5,5,93,209,5,5,94,209,5,5,120,216,5,5,121,216,5,5,104,229,5,5,30,238,5,5,31,238,5,5,88,241,5,5,89,241,5,5,228,243,5,5,229,243,5,5,230,243,5,5,89,248,5,5,198,177,5,5,66,193,5,5,67,193,5,5,68,193,5,5,178,201,5,5,179,201,5,5,180,201,5,5,181,201,5,5,95,209,5,5,96,209,5,5,97,209,5,5,98,209,5,5,99,209,5,5,100,209,5,5,101,209,5,5,102,209,5,5,103,209,5,5,104,209,5,5,105,209,5,5,124,216,5,5,125,216,5,5,126,216,5,5,127,216,5,5,128,216,5,5,123,216,5,5,129,216,5,5,112,223,5,5,113,223,5,5,114,223,5,5,115,223,5,5,116,223,5,5,117,223,5,5,118,223,5,5,119,223,5,5,120,223,5,5,105,229,5,5,106,229,5,5,121,223,5,5,122,223,5,5,123,223,5,5,124,223,5,5,125,223,5,5,126,223,5,5,127,223,5,5,107,229,5,5,108,229,5,5,109,229,5,5,110,229,5,5,111,229,5,5,112,229,5,5,113,229,5,5,114,229,5,5,115,229,5,5,116,229,5,5,117,229,5,5,118,229,5,5,119,229,5,5,120,229,5,5,121,229,5,5,122,229,5,5,123,229,5,5,34,238,5,5,33,238,5,5,96,234,5,5,97,234,5,5,98,234,5,5,99,234,5,5,100,234,5,5,101,234,5,5,102,234,5,5,103,234,5,5,104,234,5,5,105,234,5,5,106,234,5,5,35,238,5,5,36,238,5,5,37,238,5,5,38,238,5,5,39,238,5,5,40,238,5,5,41,238,5,5,42,238,5,5,43,238,5,5,44,238,5,5,45,238,5,5,90,241,5,5,91,241,5,5,92,241,5,5,93,241,5,5,94,241,5,5,95,241,5,5,96,241,5,5,97,241,5,5,98,241,5,5,231,243,5,5,232,243,5,5,233,243,5,5,234,243,5,5,235,243,5,5,202,245,5,5,203,245,5,5,204,245,5,5,205,245,5,5,206,245,5,5,64,247,5,5,65,247,5,5,66,247,5,5,90,248,5,5,91,248,5,5,92,248,5,5,93,248,5,5,37,249,5,5,180,249,5,5,181,249,5,5,62,250,5,5,63,250,5,5,24,162,5,5,117,171,5,5,118,171,5,5,199,177,5,5,200,177,5,5,201,177,5,5,202,177,5,5,32,185,5,5,33,185,5,5,34,185,5,5,35,185,5,5,36,185,5,5,37,185,5,5,38,185,5,5,39,185,5,5,40,185,5,5,69,193,5,5,70,193,5,5,71,193,5,5,72,193,5,5,182,201,5,5,183,201,5,5,184,201,5,5,185,201,5,5,186,201,5,5,187,201,5,5,188,201,5,5,107,209,5,5,108,209,5,5,109,209,5,5,110,209,5,5,111,209,5,5,112,209,5,5,113,209,5,5,131,216,5,5,128,223,5,5,129,223,5,5,130,223,5,5,131,223,5,5,132,223,5,5,133,223,5,5,127,229,5,5,128,229,5,5,129,229,5,5,130,229,5,5,46,238,5,5,47,238,5,5,100,241,5,5,236,243,5,5,207,245,5,5,94,248,5,5,203,177,5,5,189,201,5,5,190,201,5,5,114,209,5,5,115,209,5,5,132,216,5,5,133,216,5,5,134,216,5,5,135,216,5,5,136,216,5,5,134,223,5,5,135,223,5,5,131,229,5,5,132,229,5,5,110,234,5,5,111,234,5,5,48,238,5,5,49,238,5,5,50,238,5,5,101,241,5,5,102,241,5,5,103,241,5,5,104,241,5,5,105,241,5,5,106,241,5,5,237,243,5,5,238,243,5,5,239,243,5,5,240,243,5,5,208,245,5,5,209,245,5,5,210,245,5,5,211,245,5,5,212,245,5,5,213,245,5,5,67,247,5,5,64,250,5,5,65,250,5,5,123,158,5,5,236,165,5,5,204,177,5,5,205,177,5,5,206,177,5,5,192,201,5,5,116,209,5,5,141,216,5,5,140,216,5,5,142,216,5,5,136,223,5,5,134,229,5,5,135,229,5,5,207,177,5,5,214,245,5,5,66,250,5,5,156,157,5,5,208,177,5,5,209,177,5,5,73,193,5,5,41,185,5,5,42,185,5,5,43,185,5,5,74,193,5,5,75,193,5,5,193,201,5,5,194,201,5,5,195,201,5,5,196,201,5,5,197,201,5,5,117,209,5,5,198,201,5,5,118,209,5,5,199,201,5,5,200,201,5,5,119,209,5,5,201,201,5,5,121,209,5,5,122,209,5,5,123,209,5,5,124,209,5,5,125,209,5,5,143,216,5,5,126,209,5,5,137,223,5,5,127,209,5,5,128,209,5,5,129,209,5,5,130,209,5,5,131,209,5,5,145,216,5,5,146,216,5,5,147,216,5,5,148,216,5,5,149,216,5,5,150,216,5,5,151,216,5,5,152,216,5,5,138,223,5,5,153,216,5,5,139,223,5,5,140,223,5,5,154,216,5,5,141,223,5,5,155,216,5,5,156,216,5,5,136,229,5,5,143,223,5,5,144,223,5,5,145,223,5,5,146,223,5,5,147,223,5,5,148,223,5,5,149,223,5,5,150,223,5,5,151,223,5,5,138,229,5,5,139,229,5,5,140,229,5,5,137,229,5,5,141,229,5,5,142,229,5,5,143,229,5,5,144,229,5,5,145,229,5,5,146,229,5,5,147,229,5,5,116,234,5,5,148,229,5,5,149,229,5,5,150,229,5,5,151,229,5,5,117,234,5,5,118,234,5,5,119,234,5,5,120,234,5,5,51,238,5,5,121,234,5,5,122,234,5,5,123,234,5,5,124,234,5,5,125,234,5,5,153,229,5,5,126,234,5,5,55,238,5,5,127,234,5,5,56,238,5,5,57,238,5,5,58,238,5,5,59,238,5,5,60,238,5,5,61,238,5,5,62,238,5,5,63,238,5,5,64,238,5,5,65,238,5,5,129,234,5,5,108,241,5,5,110,241,5,5,111,241,5,5,130,234,5,5,112,241,5,5,113,241,5,5,114,241,5,5,241,243,5,5,242,243,5,5,243,243,5,5,244,243,5,5,245,243,5,5,215,245,5,5,246,243,5,5,247,243,5,5,248,243,5,5,249,243,5,5,68,247,5,5,69,247,5,5,216,245,5,5,217,245,5,5,218,245,5,5,250,243,5,5,70,247,5,5,71,247,5,5,95,248,5,5,38,249,5,5,182,249,5,5,183,249,5,5,67,250,5,5,68,250,5,5,144,250,5,5,157,157,5,5,208,159,5,5,209,159,5,5,25,162,5,5,26,162,5,5,237,165,5,5,238,165,5,5,239,165,5,5,240,165,5,5,241,165,5,5,242,165,5,5,243,165,5,5,119,171,5,5,120,171,5,5,121,171,5,5,122,171,5,5,123,171,5,5,124,171,5,5,211,177,5,5,212,177,5,5,213,177,5,5,214,177,5,5,215,177,5,5,216,177,5,5,217,177,5,5,218,177,5,5,44,185,5,5,45,185,5,5,46,185,5,5,47,185,5,5,48,185,5,5,49,185,5,5,76,193,5,5,77,193,5,5,78,193,5,5,79,193,5,5,202,201,5,5,203,201,5,5,132,209,5,5,204,201,5,5,205,201,5,5,133,209,5,5,134,209,5,5,135,209,5,5,136,209,5,5,137,209,5,5,157,216,5,5,158,216,5,5,152,223,5,5,153,223,5,5,184,249,5,5,219,177,5,5,80,193,5,5,131,234,5,5,221,177,5,5,138,209,5,5,159,216,5,5,160,216,5,5,161,216,5,5,154,229,5,5,155,229,5,5,156,229,5,5,132,234,5,5,133,234,5,5,134,234,5,5,66,238,5,5,67,238,5,5,115,241,5,5,116,241,5,5,251,243,5,5,219,245,5,5,96,248,5,5,69,250,5,5,50,185,5,5,206,201,5,5,207,201,5,5,139,209,5,5,140,209,5,5,141,209,5,5,142,209,5,5,143,209,5,5,144,209,5,5,145,209,5,5,163,216,5,5,164,216,5,5,165,216,5,5,166,216,5,5,167,216,5,5,168,216,5,5,169,216,5,5,170,216,5,5,171,216,5,5,172,216,5,5,173,216,5,5,174,216,5,5,175,216,5,5,176,216,5,5,177,216,5,5,178,216,5,5,179,216,5,5,180,216,5,5,154,223,5,5,155,223,5,5,156,223,5,5,157,223,5,5,158,223,5,5,159,223,5,5,160,223,5,5,161,223,5,5,162,223,5,5,163,223,5,5,164,223,5,5,165,223,5,5,166,223,5,5,167,223,5,5,168,223,5,5,169,223,5,5,170,223,5,5,171,223,5,5,172,223,5,5,173,223,5,5,174,223,5,5,175,223,5,5,176,223,5,5,177,223,5,5,178,223,5,5,157,229,5,5,158,229,5,5,159,229,5,5,160,229,5,5,161,229,5,5,162,229,5,5,163,229,5,5,164,229,5,5,165,229,5,5,166,229,5,5,167,229,5,5,168,229,5,5,169,229,5,5,170,229,5,5,171,229,5,5,172,229,5,5,173,229,5,5,174,229,5,5,156,234,5,5,137,234,5,5,138,234,5,5,139,234,5,5,140,234,5,5,141,234,5,5,142,234,5,5,143,234,5,5,144,234,5,5,145,234,5,5,146,234,5,5,147,234,5,5,148,234,5,5,149,234,5,5,150,234,5,5,151,234,5,5,152,234,5,5,68,238,5,5,69,238,5,5,70,238,5,5,71,238,5,5,72,238,5,5,73,238,5,5,74,238,5,5,75,238,5,5,76,238,5,5,77,238,5,5,78,238,5,5,79,238,5,5,80,238,5,5,81,238,5,5,82,238,5,5,83,238,5,5,118,241,5,5,119,241,5,5,120,241,5,5,121,241,5,5,122,241,5,5,123,241,5,5,124,241,5,5,125,241,5,5,126,241,5,5,127,241,5,5,128,241,5,5,129,241,5,5,130,241,5,5,131,241,5,5,132,241,5,5,133,241,5,5,134,241,5,5,135,241,5,5,136,241,5,5,137,241,5,5,138,241,5,5,252,243,5,5,253,243,5,5,254,243,5,5,255,243,5,5,2,244,5,5,3,244,5,5,4,244,5,5,5,244,5,5,6,244,5,5,7,244,5,5,8,244,5,5,9,244,5,5,10,244,5,5,11,244,5,5,12,244,5,5,13,244,5,5,220,245,5,5,221,245,5,5,222,245,5,5,223,245,5,5,224,245,5,5,225,245,5,5,226,245,5,5,227,245,5,5,228,245,5,5,229,245,5,5,230,245,5,5,231,245,5,5,232,245,5,5,233,245,5,5,234,245,5,5,73,247,5,5,74,247,5,5,75,247,5,5,76,247,5,5,77,247,5,5,78,247,5,5,79,247,5,5,80,247,5,5,81,247,5,5,82,247,5,5,83,247,5,5,84,247,5,5,85,247,5,5,86,247,5,5,97,248,5,5,98,248,5,5,99,248,5,5,100,248,5,5,101,248,5,5,102,248,5,5,103,248,5,5,39,249,5,5,40,249,5,5,41,249,5,5,5,250,5,5,6,250,5,5,7,250,5,5,8,250,5,5,70,250,5,5,10,250,5,5,71,250,5,5,72,250,5,5,107,250,5,5,108,250,5,5,130,250,5,5,145,250,5,5,158,157,5,5,210,159,5,5,27,162,5,5,28,162,5,5,29,162,5,5,244,165,5,5,245,165,5,5,246,165,5,5,247,165,5,5,125,171,5,5,126,171,5,5,127,171,5,5,128,171,5,5,129,171,5,5,130,171,5,5,131,171,5,5,132,171,5,5,133,171,5,5,134,171,5,5,135,171,5,5,136,171,5,5,222,177,5,5,223,177,5,5,224,177,5,5,225,177,5,5,226,177,5,5,227,177,5,5,228,177,5,5,229,177,5,5,230,177,5,5,51,185,5,5,52,185,5,5,53,185,5,5,54,185,5,5,55,185,5,5,56,185,5,5,81,193,5,5,82,193,5,5,83,193,5,5,84,193,5,5,85,193,5,5,86,193,5,5,87,193,5,5,208,201,5,5,209,201,5,5,210,201,5,5,211,201,5,5,212,201,5,5,146,209,5,5,147,209,5,5,148,209,5,5,149,209,5,5,183,216,5,5,184,216,5,5,185,216,5,5,180,223,5,5,157,234,5,5,141,241,5,5,20,244,5,5,21,244,5,5,57,185,5,5,213,201,5,5,150,209,5,5,151,209,5,5,152,209,5,5,153,209,5,5,154,209,5,5,186,216,5,5,187,216,5,5,188,216,5,5,181,223,5,5,182,223,5,5,183,223,5,5,184,223,5,5,185,223,5,5,186,223,5,5,176,229,5,5,177,229,5,5,178,229,5,5,179,229,5,5,180,229,5,5,158,234,5,5,159,234,5,5,182,229,5,5,91,238,5,5,92,238,5,5,142,241,5,5,143,241,5,5,22,244,5,5,144,241,5,5,23,244,5,5,24,244,5,5,25,244,5,5,26,244,5,5,27,244,5,5,28,244,5,5,29,244,5,5,236,245,5,5,237,245,5,5,238,245,5,5,88,247,5,5,104,248,5,5,89,247,5,5,105,248,5,5,106,248,5,5,42,249,5,5,188,249,5,5,11,250,5,5,58,185,5,5,88,193,5,5,190,216,5,5,187,223,5,5,93,238,5,5,90,247,5,5,107,248,5,5,59,185,5,5,214,201,5,5,156,209,5,5,157,209,5,5,191,216,5,5,192,216,5,5,193,216,5,5,194,216,5,5,195,216,5,5,196,216,5,5,197,216,5,5,198,216,5,5,188,223,5,5,189,223,5,5,183,229,5,5,190,223,5,5,191,223,5,5,192,223,5,5,193,223,5,5,194,223,5,5,195,223,5,5,196,223,5,5,184,229,5,5,185,229,5,5,186,229,5,5,187,229,5,5,188,229,5,5,189,229,5,5,190,229,5,5,160,234,5,5,161,234,5,5,162,234,5,5,163,234,5,5,164,234,5,5,165,234,5,5,166,234,5,5,94,238,5,5,95,238,5,5,96,238,5,5,97,238,5,5,191,229,5,5,98,238,5,5,145,241,5,5,146,241,5,5,147,241,5,5,148,241,5,5,149,241,5,5,150,241,5,5,151,241,5,5,30,244,5,5,31,244,5,5,32,244,5,5,33,244,5,5,239,245,5,5,240,245,5,5,241,245,5,5,242,245,5,5,243,245,5,5,92,247,5,5,93,247,5,5,94,247,5,5,95,247,5,5,91,247,5,5,108,248,5,5,109,248,5,5,110,248,5,5,43,249,5,5,44,249,5,5,189,249,5,5,74,250,5,5,60,185,5,5,201,216,5,5,197,223,5,5,192,229,5,5,101,238,5,5,34,244,5,5,98,247,5,5,45,249,5,5,46,249,5,5,75,250,5,5,61,185,5,5,76,250,5,5,131,250,5,5,62,185,5,5,193,229,5,5,167,234,5,5,102,238,5,5,103,238,5,5,154,241,5,5,35,244,5,5,244,245,5,5,245,245,5,5,99,247,5,5,63,185,5,5,158,209,5,5,202,216,5,5,203,216,5,5,204,216,5,5,205,216,5,5,206,216,5,5,198,223,5,5,199,223,5,5,200,223,5,5,201,223,5,5,194,229,5,5,168,234,5,5,169,234,5,5,104,238,5,5,105,238,5,5,106,238,5,5,107,238,5,5,108,238,5,5,109,238,5,5,36,244,5,5,246,245,5,5,247,245,5,5,248,245,5,5,249,245,5,5,100,247,5,5,101,247,5,5,47,249,5,5,48,249,5,5,49,249,5,5,89,193,5,5,159,209,5,5,160,209,5,5,161,209,5,5,162,209,5,5,208,216,5,5,209,216,5,5,210,216,5,5,211,216,5,5,203,223,5,5,204,223,5,5,205,223,5,5,206,223,5,5,207,223,5,5,208,223,5,5,209,223,5,5,210,223,5,5,211,223,5,5,212,223,5,5,213,223,5,5,214,223,5,5,215,223,5,5,216,223,5,5,217,223,5,5,218,223,5,5,219,223,5,5,220,223,5,5,221,223,5,5,222,223,5,5,223,223,5,5,224,223,5,5,225,223,5,5,195,229,5,5,196,229,5,5,197,229,5,5,198,229,5,5,199,229,5,5,200,229,5,5,201,229,5,5,202,229,5,5,203,229,5,5,204,229,5,5,205,229,5,5,206,229,5,5,170,234,5,5,207,229,5,5,208,229,5,5,209,229,5,5,210,229,5,5,211,229,5,5,212,229,5,5,213,229,5,5,214,229,5,5,215,229,5,5,216,229,5,5,217,229,5,5,218,229,5,5,219,229,5,5,220,229,5,5,221,229,5,5,222,229,5,5,223,229,5,5,224,229,5,5,171,234,5,5,172,234,5,5,173,234,5,5,174,234,5,5,175,234,5,5,176,234,5,5,177,234,5,5,178,234,5,5,179,234,5,5,180,234,5,5,225,229,5,5,181,234,5,5,182,234,5,5,183,234,5,5,184,234,5,5,185,234,5,5,186,234,5,5,187,234,5,5,188,234,5,5,189,234,5,5,190,234,5,5,191,234,5,5,192,234,5,5,193,234,5,5,194,234,5,5,195,234,5,5,196,234,5,5,197,234,5,5,111,238,5,5,112,238,5,5,113,238,5,5,114,238,5,5,115,238,5,5,198,234,5,5,116,238,5,5,117,238,5,5,118,238,5,5,119,238,5,5,120,238,5,5,121,238,5,5,122,238,5,5,123,238,5,5,124,238,5,5,125,238,5,5,155,241,5,5,126,238,5,5,127,238,5,5,128,238,5,5,129,238,5,5,130,238,5,5,131,238,5,5,132,238,5,5,133,238,5,5,202,234,5,5,134,238,5,5,135,238,5,5,136,238,5,5,137,238,5,5,138,238,5,5,156,241,5,5,157,241,5,5,158,241,5,5,159,241,5,5,160,241,5,5,161,241,5,5,162,241,5,5,163,241,5,5,164,241,5,5,165,241,5,5,166,241,5,5,167,241,5,5,168,241,5,5,169,241,5,5,170,241,5,5,171,241,5,5,172,241,5,5,173,241,5,5,174,241,5,5,175,241,5,5,176,241,5,5,177,241,5,5,178,241,5,5,179,241,5,5,180,241,5,5,181,241,5,5,182,241,5,5,183,241,5,5,184,241,5,5,185,241,5,5,186,241,5,5,187,241,5,5,188,241,5,5,189,241,5,5,38,244,5,5,39,244,5,5,40,244,5,5,41,244,5,5,193,241,5,5,37,244,5,5,42,244,5,5,139,238,5,5,43,244,5,5,44,244,5,5,45,244,5,5,46,244,5,5,47,244,5,5,48,244,5,5,49,244,5,5,50,244,5,5,51,244,5,5,52,244,5,5,53,244,5,5,54,244,5,5,55,244,5,5,56,244,5,5,57,244,5,5,58,244,5,5,59,244,5,5,60,244,5,5,61,244,5,5,62,244,5,5,63,244,5,5,64,244,5,5,65,244,5,5,66,244,5,5,67,244,5,5,68,244,5,5,69,244,5,5,70,244,5,5,71,244,5,5,72,244,5,5,250,245,5,5,251,245,5,5,252,245,5,5,253,245,5,5,73,244,5,5,254,245,5,5,255,245,5,5,2,246,5,5,3,246,5,5,4,246,5,5,5,246,5,5,6,246,5,5,7,246,5,5,8,246,5,5,9,246,5,5,10,246,5,5,11,246,5,5,12,246,5,5,13,246,5,5,14,246,5,5,15,246,5,5,102,247,5,5,103,247,5,5,104,247,5,5,105,247,5,5,106,247,5,5,107,247,5,5,108,247,5,5,109,247,5,5,110,247,5,5,111,247,5,5,112,247,5,5,113,247,5,5,114,247,5,5,115,247,5,5,116,247,5,5,76,244,5,5,117,247,5,5,118,247,5,5,119,247,5,5,120,247,5,5,121,247,5,5,122,247,5,5,123,247,5,5,124,247,5,5,130,247,5,5,111,248,5,5,112,248,5,5,113,248,5,5,114,248,5,5,115,248,5,5,116,248,5,5,117,248,5,5,118,248,5,5,119,248,5,5,120,248,5,5,121,248,5,5,122,248,5,5,123,248,5,5,124,248,5,5,125,248,5,5,126,248,5,5,127,248,5,5,128,248,5,5,51,249,5,5,52,249,5,5,53,249,5,5,54,249,5,5,55,249,5,5,56,249,5,5,57,249,5,5,58,249,5,5,59,249,5,5,60,249,5,5,61,249,5,5,62,249,5,5,190,249,5,5,63,249,5,5,130,248,5,5,64,249,5,5,191,249,5,5,192,249,5,5,193,249,5,5,194,249,5,5,66,249,5,5,12,250,5,5,13,250,5,5,14,250,5,5,15,250,5,5,16,250,5,5,17,250,5,5,77,250,5,5,78,250,5,5,132,250,5,5,147,250,5,5,166,250,5,5,137,171,5,5,64,185,5,5,90,193,5,5,216,201,5,5,217,201,5,5,218,201,5,5,219,201,5,5,220,201,5,5,163,209,5,5,164,209,5,5,165,209,5,5,166,209,5,5,167,209,5,5,168,209,5,5,169,209,5,5,170,209,5,5,171,209,5,5,172,209,5,5,173,209,5,5,174,209,5,5,175,209,5,5,213,216,5,5,214,216,5,5,215,216,5,5,216,216,5,5,217,216,5,5,218,216,5,5,219,216,5,5,220,216,5,5,221,216,5,5,222,216,5,5,223,216,5,5,224,216,5,5,225,216,5,5,226,216,5,5,227,216,5,5,229,223,5,5,230,223,5,5,231,223,5,5,232,223,5,5,233,223,5,5,234,223,5,5,235,223,5,5,236,223,5,5,237,223,5,5,238,223,5,5,239,223,5,5,240,223,5,5,241,223,5,5,231,229,5,5,232,229,5,5,233,229,5,5,234,229,5,5,235,229,5,5,236,229,5,5,237,229,5,5,238,229,5,5,239,229,5,5,240,229,5,5,241,229,5,5,242,229,5,5,243,229,5,5,244,229,5,5,245,229,5,5,203,234,5,5,204,234,5,5,218,234,5,5,205,234,5,5,206,234,5,5,207,234,5,5,208,234,5,5,209,234,5,5,210,234,5,5,211,234,5,5,212,234,5,5,213,234,5,5,214,234,5,5,215,234,5,5,216,234,5,5,217,234,5,5,142,238,5,5,143,238,5,5,144,238,5,5,145,238,5,5,146,238,5,5,147,238,5,5,148,238,5,5,194,241,5,5,195,241,5,5,196,241,5,5,197,241,5,5,198,241,5,5,199,241,5,5,200,241,5,5,201,241,5,5,202,241,5,5,77,244,5,5,78,244,5,5,79,244,5,5,80,244,5,5,21,246,5,5,22,246,5,5,23,246,5,5,24,246,5,5,131,247,5,5,91,193,5,5,221,201,5,5,176,209,5,5,177,209,5,5,178,209,5,5,179,209,5,5,180,209,5,5,232,177,5,5,181,209,5,5,182,209,5,5,183,209,5,5,184,209,5,5,228,216,5,5,229,216,5,5,230,216,5,5,231,216,5,5,232,216,5,5,233,216,5,5,242,223,5,5,243,223,5,5,244,223,5,5,245,223,5,5,246,223,5,5,247,223,5,5,248,223,5,5,249,223,5,5,250,223,5,5,251,223,5,5,252,223,5,5,253,223,5,5,254,223,5,5,255,223,5,5,2,224,5,5,3,224,5,5,4,224,5,5,5,224,5,5,6,224,5,5,246,229,5,5,7,224,5,5,8,224,5,5,9,224,5,5,10,224,5,5,247,229,5,5,248,229,5,5,249,229,5,5,250,229,5,5,251,229,5,5,252,229,5,5,253,229,5,5,254,229,5,5,255,229,5,5,2,230,5,5,3,230,5,5,4,230,5,5,5,230,5,5,219,234,5,5,6,230,5,5,7,230,5,5,8,230,5,5,9,230,5,5,10,230,5,5,11,230,5,5,12,230,5,5,13,230,5,5,14,230,5,5,15,230,5,5,16,230,5,5,17,230,5,5,18,230,5,5,19,230,5,5,20,230,5,5,21,230,5,5,220,234,5,5,221,234,5,5,222,234,5,5,223,234,5,5,224,234,5,5,225,234,5,5,226,234,5,5,227,234,5,5,228,234,5,5,229,234,5,5,230,234,5,5,231,234,5,5,232,234,5,5,233,234,5,5,234,234,5,5,235,234,5,5,236,234,5,5,237,234,5,5,238,234,5,5,239,234,5,5,240,234,5,5,241,234,5,5,242,234,5,5,243,234,5,5,244,234,5,5,245,234,5,5,246,234,5,5,247,234,5,5,248,234,5,5,150,238,5,5,151,238,5,5,152,238,5,5,153,238,5,5,154,238,5,5,155,238,5,5,156,238,5,5,157,238,5,5,158,238,5,5,159,238,5,5,160,238,5,5,161,238,5,5,162,238,5,5,163,238,5,5,164,238,5,5,165,238,5,5,166,238,5,5,167,238,5,5,168,238,5,5,169,238,5,5,170,238,5,5,171,238,5,5,172,238,5,5,203,241,5,5,173,238,5,5,174,238,5,5,58,237,5,5,175,238,5,5,204,241,5,5,252,234,5,5,205,241,5,5,206,241,5,5,207,241,5,5,208,241,5,5,209,241,5,5,210,241,5,5,211,241,5,5,212,241,5,5,213,241,5,5,214,241,5,5,215,241,5,5,216,241,5,5,217,241,5,5,218,241,5,5,219,241,5,5,220,241,5,5,221,241,5,5,222,241,5,5,223,241,5,5,224,241,5,5,225,241,5,5,226,241,5,5,227,241,5,5,228,241,5,5,229,241,5,5,230,241,5,5,231,241,5,5,232,241,5,5,233,241,5,5,234,241,5,5,235,241,5,5,236,241,5,5,237,241,5,5,238,241,5,5,239,241,5,5,240,241,5,5,241,241,5,5,242,241,5,5,243,241,5,5,244,241,5,5,81,244,5,5,245,241,5,5,82,244,5,5,83,244,5,5,84,244,5,5,85,244,5,5,86,244,5,5,87,244,5,5,88,244,5,5,89,244,5,5,90,244,5,5,91,244,5,5,92,244,5,5,93,244,5,5,94,244,5,5,95,244,5,5,96,244,5,5,97,244,5,5,98,244,5,5,99,244,5,5,100,244,5,5,101,244,5,5,102,244,5,5,103,244,5,5,104,244,5,5,105,244,5,5,106,244,5,5,107,244,5,5,25,246,5,5,26,246,5,5,27,246,5,5,28,246,5,5,29,246,5,5,30,246,5,5,31,246,5,5,32,246,5,5,33,246,5,5,34,246,5,5,35,246,5,5,36,246,5,5,37,246,5,5,38,246,5,5,39,246,5,5,40,246,5,5,41,246,5,5,42,246,5,5,43,246,5,5,114,244,5,5,44,246,5,5,45,246,5,5,46,246,5,5,47,246,5,5,48,246,5,5,49,246,5,5,50,246,5,5,51,246,5,5,52,246,5,5,53,246,5,5,54,246,5,5,132,247,5,5,55,246,5,5,56,246,5,5,57,246,5,5,58,246,5,5,133,247,5,5,134,247,5,5,135,247,5,5,136,247,5,5,137,247,5,5,138,247,5,5,139,247,5,5,140,247,5,5,141,247,5,5,142,247,5,5,143,247,5,5,144,247,5,5,145,247,5,5,146,247,5,5,147,247,5,5,148,247,5,5,125,247,5,5,131,248,5,5,132,248,5,5,133,248,5,5,134,248,5,5,135,248,5,5,136,248,5,5,137,248,5,5,138,248,5,5,152,247,5,5,139,248,5,5,140,248,5,5,141,248,5,5,142,248,5,5,143,248,5,5,144,248,5,5,145,248,5,5,146,248,5,5,147,248,5,5,148,248,5,5,149,248,5,5,153,247,5,5,150,248,5,5,151,248,5,5,152,248,5,5,68,249,5,5,67,249,5,5,153,248,5,5,154,248,5,5,69,249,5,5,70,249,5,5,71,249,5,5,72,249,5,5,73,249,5,5,74,249,5,5,75,249,5,5,76,249,5,5,77,249,5,5,78,249,5,5,79,249,5,5,80,249,5,5,81,249,5,5,82,249,5,5,196,249,5,5,197,249,5,5,198,249,5,5,199,249,5,5,200,249,5,5,201,249,5,5,202,249,5,5,203,249,5,5,18,250,5,5,19,250,5,5,79,250,5,5,80,250,5,5,81,250,5,5,110,250,5,5,111,250,5,5,112,250,5,5,133,250,5,5,134,250,5,5,148,250,5,5,149,250,5,5,211,159,5,5,248,165,5,5,249,165,5,5,138,171,5,5,139,171,5,5,140,171,5,5,233,177,5,5,234,177,5,5,235,177,5,5,236,177,5,5,237,177,5,5,65,185,5,5,66,185,5,5,67,185,5,5,68,185,5,5,69,185,5,5,70,185,5,5,71,185,5,5,72,185,5,5,73,185,5,5,74,185,5,5,75,185,5,5,76,185,5,5,77,185,5,5,92,193,5,5,93,193,5,5,94,193,5,5,95,193,5,5,96,193,5,5,97,193,5,5,98,193,5,5,99,193,5,5,100,193,5,5,222,201,5,5,223,201,5,5,224,201,5,5,225,201,5,5,226,201,5,5,227,201,5,5,228,201,5,5,229,201,5,5,230,201,5,5,185,209,5,5,186,209,5,5,187,209,5,5,188,209,5,5,189,209,5,5,190,209,5,5,191,209,5,5,192,209,5,5,193,209,5,5,194,209,5,5,195,209,5,5,196,209,5,5,234,216,5,5,235,216,5,5,236,216,5,5,15,224,5,5,237,216,5,5,238,216,5,5,239,216,5,5,240,216,5,5,16,224,5,5,17,224,5,5,18,224,5,5,19,224,5,5,20,224,5,5,21,224,5,5,22,224,5,5,23,224,5,5,23,230,5,5,24,230,5,5,25,230,5,5,26,230,5,5,253,234,5,5,254,234,5,5,255,234,5,5,2,235,5,5,176,238,5,5,177,238,5,5,178,238,5,5,179,238,5,5,249,241,5,5,250,241,5,5,154,247,5,5,155,247,5,5,101,193,5,5,24,224,5,5,27,230,5,5,251,241,5,5,115,244,5,5,62,246,5,5,63,246,5,5,87,249,5,5,88,249,5,5,28,230,5,5,102,193,5,5,197,209,5,5,198,209,5,5,199,209,5,5,25,224,5,5,26,224,5,5,29,230,5,5,30,230,5,5,31,230,5,5,32,230,5,5,3,235,5,5,4,235,5,5,5,235,5,5,180,238,5,5,181,238,5,5,182,238,5,5,183,238,5,5,184,238,5,5,252,241,5,5,253,241,5,5,254,241,5,5,255,241,5,5,2,242,5,5,3,242,5,5,4,242,5,5,116,244,5,5,117,244,5,5,118,244,5,5,119,244,5,5,64,246,5,5,65,246,5,5,156,247,5,5,159,248,5,5,89,249,5,5,205,249,5,5,114,250,5,5,157,250,5,5,167,250,5,5,103,193,5,5,250,165,5,5,241,216,5,5,28,224,5,5,29,224,5,5,30,224,5,5,31,224,5,5,34,230,5,5,35,230,5,5,36,230,5,5,7,235,5,5,8,235,5,5,190,238,5,5,191,238,5,5,5,242,5,5,6,242,5,5,120,244,5,5,158,247,5,5,135,250,5,5,104,193,5,5,32,224,5,5,38,230,5,5,105,193,5,5,242,216,5,5,243,216,5,5,33,224,5,5,193,238,5,5,7,242,5,5,122,244,5,5,160,248,5,5,231,201,5,5,232,201,5,5,39,230,5,5,40,230,5,5,9,235,5,5,10,235,5,5,11,235,5,5,194,238,5,5,195,238,5,5,206,249,5,5,233,201,5,5,34,224,5,5,12,235,5,5,159,247,5,5,234,201,5,5,106,193,5,5,36,224,5,5,41,230,5,5,42,230,5,5,43,230,5,5,44,230,5,5,45,230,5,5,165,219,5,5,13,235,5,5,14,235,5,5,15,235,5,5,16,235,5,5,17,235,5,5,196,238,5,5,197,238,5,5,198,238,5,5,9,242,5,5,10,242,5,5,125,244,5,5,126,244,5,5,127,244,5,5,128,244,5,5,129,244,5,5,130,244,5,5,131,244,5,5,67,246,5,5,68,246,5,5,69,246,5,5,70,246,5,5,71,246,5,5,160,247,5,5,161,247,5,5,161,248,5,5,162,248,5,5,163,248,5,5,207,249,5,5,21,250,5,5,82,250,5,5,115,250,5,5,235,201,5,5,46,230,5,5,19,235,5,5,11,242,5,5,201,209,5,5,141,171,5,5,20,235,5,5,199,238,5,5,200,238,5,5,201,238,5,5,12,242,5,5,13,242,5,5,72,246,5,5,164,248,5,5,165,248,5,5,208,249,5,5,209,249,5,5,22,250,5,5,236,201,5,5,202,209,5,5,133,244,5,5,203,209,5,5,37,224,5,5,38,224,5,5,39,224,5,5,47,230,5,5,204,209,5,5,205,209,5,5,203,238,5,5,204,238,5,5,15,242,5,5,73,246,5,5,74,246,5,5,75,246,5,5,76,246,5,5,166,248,5,5,210,249,5,5,90,249,5,5,211,249,5,5,206,209,5,5,142,171,5,5,21,235,5,5,22,235,5,5,23,235,5,5,205,238,5,5,206,238,5,5,207,238,5,5,208,238,5,5,209,238,5,5,210,238,5,5,211,238,5,5,212,238,5,5,16,242,5,5,134,244,5,5,135,244,5,5,136,244,5,5,77,246,5,5,162,247,5,5,163,247,5,5,164,247,5,5,165,247,5,5,167,248,5,5,168,248,5,5,169,248,5,5,170,248,5,5,116,250,5,5,244,216,5,5,48,230,5,5,49,230,5,5,24,235,5,5,25,235,5,5,17,242,5,5,18,242,5,5,166,247,5,5,172,248,5,5,173,248,5,5,91,249,5,5,92,249,5,5,212,249,5,5,83,250,5,5,172,250,5,5,245,216,5,5,26,235,5,5,213,238,5,5,19,242,5,5,78,246,5,5,174,248,5,5,30,162,5,5,40,224,5,5,41,224,5,5,50,230,5,5,28,235,5,5,214,238,5,5,20,242,5,5,21,242,5,5,22,242,5,5,138,244,5,5,139,244,5,5,140,244,5,5,79,246,5,5,141,244,5,5,142,244,5,5,143,244,5,5,144,244,5,5,145,244,5,5,29,235,5,5,146,244,5,5,80,246,5,5,81,246,5,5,82,246,5,5,83,246,5,5,84,246,5,5,85,246,5,5,167,247,5,5,168,247,5,5,169,247,5,5,175,248,5,5,176,248,5,5,177,248,5,5,178,248,5,5,179,248,5,5,93,249,5,5,94,249,5,5,95,249,5,5,96,249,5,5,97,249,5,5,98,249,5,5,213,249,5,5,214,249,5,5,215,249,5,5,216,249,5,5,117,250,5,5,118,250,5,5,170,250,5,5,143,171,5,5,78,185,5,5,107,193,5,5,237,201,5,5,207,209,5,5,208,209,5,5,209,209,5,5,210,209,5,5,246,216,5,5,247,216,5,5,42,224,5,5,43,224,5,5,30,235,5,5,31,235,5,5,51,230,5,5,215,238,5,5,23,242,5,5,25,239,5,5,147,244,5,5,87,246,5,5,171,247,5,5,172,247,5,5,173,247,5,5,162,250,5,5,168,250,5,5,176,250,5,5,212,159,5,5,108,193,5,5,109,193,5,5,52,230,5,5,88,246,5,5,119,250,5,5,251,165,5,5,32,235,5,5,89,246,5,5,174,247,5,5,218,249,5,5,24,250,5,5,25,250,5,5,166,219,5,5,86,225,5,5,143,178,5,5,3,233,5,5,78,177,5,5,212,200,5,5,23,229,5,5,235,245,5,5,73,250,5,5,4,209,5,5,76,158,5,5,27,159,5,5,215,237,5,5,144,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,166,5,5,220,163,5,5,221,163,5,5,146,191,5,5,80,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,184,5,5,93,164,5,5,159,165,5,5,43,208,5,5,214,204,5,5,37,162,5,5,247,158,5,5,52,230,5,5,52,230,5,5,175,172,5,5,70,171,5,5,211,193,5,5,78,167,5,5,32,239,5,5,250,244,5,5,25,240,5,5,15,248,5,5,28,233,5,5,48,215,5,5,54,248,5,5,218,218,5,5,216,174,5,5,164,181,5,5,232,181,5,5,42,207,5,5,177,208,5,5,173,229,5,5,239,201,5,5,172,162,5,5,215,244,5,5,237,244,5,5,73,245,5,5,149,250,5,5,233,194,5,5,94,231,5,5,241,236,5,5,67,243,5,5,128,168,5,5,38,240,5,5,85,245,5,5,23,195,5,5,161,180,5,5,78,181,5,5,208,181,5,5,129,177,5,5,48,166,5,5,121,162,5,5,183,193,5,5,20,225,5,5,71,239,5,5,149,242,5,5,161,226,5,5,190,161,5,5,32,243,5,5,139,207,5,5,86,208,5,5,185,245,5,5,215,223,5,5,67,249,5,5,5,206,5,5,31,206,5,5,236,213,5,5,98,199,5,5,210,228,5,5,102,193,5,5,47,222,5,5,248,238,5,5,204,163,5,5,198,246,5,5,214,246,5,5,237,164,5,5,58,220,5,5,37,208,5,5,71,209,5,5,74,235,5,5,229,210,5,5,234,218,5,5,9,189,5,5,97,212,5,5,164,190,5,5,116,232,5,5,179,177,5,5,174,185,5,5,197,161,5,5,30,217,5,5,104,178,5,5,54,206,5,5,12,214,5,5,137,199,5,5,45,193,5,5,250,246,5,5,174,173,5,5,218,218,5,5,77,228,5,5,174,157,5,5,225,210,5,5,109,173,5,5,169,189,5,5,227,189,5,5,221,158,5,5,252,231,5,5,176,171,5,5,38,195,5,5,163,157,5,5,111,169,5,5,151,218,5,5,20,183,5,5,204,185,5,5,172,202,5,5,209,175,5,5,54,207,5,5,101,215,5,5,203,188,5,5,164,165,5,5,187,164,5,5,195,173,5,5,200,176,5,5,227,187,5,5,223,189,5,5,154,171,5,5,101,166,5,5,101,178,5,5,104,188,5,5,129,236,5,5,97,165,5,5,43,222,5,5,23,201,5,5,76,230,5,5,221,162,5,5,109,157,5,5,23,239,5,5,121,180,5,5,208,235,5,5,202,242,5,5,67,223,5,5,130,250,5,5,4,242,5,5,34,224,5,5,33,157,5,5,78,225,5,5,197,225,5,5,21,247,5,5,6,161,5,5,48,218,5,5,193,247,5,5,111,218,5,5,115,212,5,5,3,205,5,5,220,219,5,5,74,170,5,5,217,220,5,5,159,232,5,5,170,222,5,5,70,221,5,5,160,192,5,5,209,233,5,5,94,160,5,5,99,160,5,5,68,172,5,5,147,181,5,5,20,200,5,5,101,215,5,5,55,203,5,5,33,168,5,5,192,187,5,5,64,231,5,5,238,239,5,5,252,235,5,5,164,158,5,5,12,167,5,5,225,210,5,5,165,230,5,5,56,168,5,5,104,175,5,5,203,219,5,5,227,190,5,5,2,191,5,5,192,208,5,5,70,209,5,5,30,249,5,5,128,216,5,5,53,166,5,5,82,236,5,5,134,243,5,5,66,234,5,5,55,195,5,5,13,157,5,5,226,209,5,5,205,217,5,5,141,163,5,5,115,180,5,5,218,218,5,5,48,226,5,5,193,231,5,5,83,221,5,5,171,228,5,5,51,230,5,5,232,203,5,5,224,165,5,5,36,217,5,5,238,168,5,5,119,174,5,5,251,174,5,5,164,204,5,5,253,181,5,5,21,182,5,5,62,198,5,5,2,183,5,5,98,241,5,5,217,157,5,5,81,218,5,5,48,193,5,5,51,178,5,5,8,187,5,5,25,189,5,5,174,222,5,5,104,173,5,5,111,203,5,5,170,180,5,5,169,189,5,5,136,201,5,5,141,162,5,5,142,160,5,5,211,217,5,5,208,168,5,5,105,164,5,5,143,188,5,5,135,169,5,5,188,189,5,5,253,197,5,5,85,227,5,5,186,207,5,5,203,207,5,5,201,165,5,5,2,238,5,5,194,185,5,5,194,204,5,5,184,162,5,5,50,226,5,5,97,226,5,5,20,243,5,5,77,223,5,5,124,248,5,5,159,248,5,5,11,169,5,5,248,188,5,5,188,232,5,5,178,159,5,5,113,190,5,5,145,190,5,5,216,169,5,5,190,169,5,5,163,240,5,5,192,157,5,5,185,183,5,5,129,166,5,5,235,157,5,5,79,173,5,5,137,168,5,5,41,227,5,5,220,160,5,5,218,174,5,5,169,218,5,5,152,228,5,5,224,161,5,5,181,177,5,5,122,165,5,5,23,211,5,5,85,157,5,5,67,202,5,5,36,210,5,5,27,179,5,5,168,202,5,5,247,194,5,5,241,195,5,5,144,196,5,5,34,212,5,5,69,224,5,5,168,189,5,5,63,182,5,5,166,161,5,5,162,182,5,5,61,190,5,5,115,213,5,5,81,209,5,5,225,213,5,5,189,161,5,5,212,227,5,5,51,243,5,5,194,191,5,5,59,222,5,5,95,192,5,5,2,162,5,5,242,200,5,5,183,192,5,5,36,223,5,5,24,229,5,5,60,209,5,5,199,201,5,5,128,209,5,5,150,229,5,5,33,246,5,5,189,184,5,5,71,229,5,5,159,171,5,5,239,209,5,5,110,162,5,5,11,172,5,5,51,202,5,5,161,166,5,5,232,193,5,5,54,210,5,5,89,224,5,5,74,194,5,5,35,224,5,5,210,217,5,5,123,157,5,5,250,179,5,5,103,195,5,5,46,218,5,5,30,239,5,5,13,188,5,5,5,174,5,5,2,196,5,5,108,188,5,5,91,181,5,5,68,189,5,5,114,212,5,5,101,197,5,5,90,158,5,5,173,197,5,5,10,206,5,5,62,170,5,5,10,176,5,5,9,176,5,5,148,182,5,5,154,182,5,5,161,182,5,5,113,213,5,5,114,213,5,5,99,220,5,5,42,176,5,5,117,206,5,5,217,220,5,5,46,227,5,5,126,232,5,5,198,206,5,5,118,170,5,5,130,183,5,5,152,157,5,5,152,157,5,5,191,199,5,5,232,221,5,5,72,190,5,5,80,228,5,5,81,237,5,5,127,215,5,5,178,240,5,5,120,158,5,5,242,200,5,5,62,241,5,5,230,243,5,5,121,229,5,5,228,179,5,5,56,205,5,5,133,227,192,0,0,0,192,0,0,0,5,5,253,165,5,5,119,162,5,5,64,160,5,5,42,166,5,5,185,158,5,5,66,224,5,5,9,172,5,5,93,157,5,5,232,193,5,5,252,185,5,5,228,193,5,5,100,202,5,5,168,202,5,5,142,217,5,5,74,167,5,5,83,167,5,5,185,186,5,5,178,224,5,5,22,211,5,5,29,211,5,5,72,187,5,5,69,203,5,5,138,187,5,5,118,203,5,5,79,203,5,5,46,218,5,5,67,211,5,5,30,239,5,5,207,230,5,5,126,195,5,5,157,203,5,5,187,195,5,5,20,188,5,5,241,195,5,5,161,180,5,5,79,188,5,5,113,164,5,5,77,158,5,5,203,188,5,5,251,174,5,5,222,204,5,5,44,197,5,5,114,212,5,5,113,239,5,5,101,197,5,5,218,231,5,5,146,231,5,5,142,159,5,5,168,189,5,5,245,212,5,5,16,213,5,5,17,170,5,5,255,219,5,5,250,219,5,5,63,182,5,5,255,189,5,5,46,170,5,5,33,198,5,5,27,190,5,5,60,220,5,5,110,220,5,5,117,206,5,5,69,176,5,5,141,206,5,5,217,220,5,5,239,198,5,5,118,170,5,5,209,183,5,5,135,199,5,5,217,227,5,5,72,233,5,5,51,237,5,5,72,190,5,5,24,222,5,5,59,222,5,5,36,222,5,5,80,228,5,5,77,228,5,5,61,228,5,5,81,237,5,5,36,248,5,5,178,240,5,5,149,228,5,5,163,228,5,5,193,233,5,5,234,215,5,5,51,193,5,5,62,241,5,5,81,209,5,5,226,243,5,5,230,243,5,5,97,209,5,5,121,229,5,5,32,244,5,5,52,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,198,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,248,5,5,215,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,54,158,6,5,216,160,6,5,14,158,192,0,0,0,6,5,15,157,6,5,184,160,6,5,217,207,6,5,22,158,6,5,237,159,6,5,12,174,6,5,69,197,6,5,115,180,6,5,252,171,6,5,105,173,6,5,70,160,6,5,221,203,6,5,129,162,6,5,183,190,6,5,152,159,6,5,75,192,6,5,65,163,6,5,212,162,6,5,100,212,6,5,57,164,6,5,81,180,6,5,0,128,6,5,56,157,6,5,144,208,6,5,67,159,6,5,170,157,6,5,7,159,6,5,203,173,6,5,155,165,6,5,101,159,6,5,33,206,6,5,77,170,6,5,135,160,6,5,31,197,6,5,77,161,6,5,70,158,6,5,158,159,6,5,175,193,6,5,56,186,6,5,200,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,63,0,197,99,63,0,197,195,63,0,197,35,64,0,197,131,64,0,197,227,64,0,197,67,65,0,197,163,65,0,197,3,66,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,76,187,6,5,3,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,157,5,5,9,157,192,0,0,0,192,0,0,0,5,5,10,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,138,5,5,0,139,5,5,0,140,5,5,0,141,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,142,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,144,192,0,0,0,5,5,14,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,158,192,0,0,0,5,5,183,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,178,5,5,75,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,178,192,0,0,0,5,5,78,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,185,5,5,149,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,202,5,5,30,202,5,5,31,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,209,5,5,254,209,5,5,255,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,217,192,0,0,0,5,5,25,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,230,5,5,68,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,171,192,0,0,0,192,0,0,0,5,5,82,178,5,5,83,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,224,192,0,0,0,5,5,39,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,178,5,5,108,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,230,5,5,73,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,159,5,5,21,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,162,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,166,192,0,0,0,5,5,255,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,167,5,5,5,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,167,5,5,7,167,5,5,8,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,172,5,5,107,172,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,178,192,0,0,0,192,0,0,0,5,5,227,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,178,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,178,5,5,230,178,5,5,231,178,5,5,232,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,186,5,5,37,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,186,5,5,39,186,5,5,40,186,5,5,41,186,192,0,0,0,192,0,0,0,5,5,42,186,5,5,43,186,5,5,44,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,186,192,0,0,0,5,5,46,186,192,0,0,0,192,0,0,0,5,5,47,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,186,192,0,0,0,5,5,49,186,5,5,50,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,194,5,5,22,194,192,0,0,0,192,0,0,0,5,5,23,194,5,5,24,194,5,5,25,194,5,5,26,194,5,5,27,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,202,192,0,0,0,5,5,128,202,5,5,129,202,5,5,130,202,5,5,131,202,5,5,132,202,5,5,133,202,5,5,134,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,202,192,0,0,0,5,5,137,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,202,5,5,141,202,5,5,142,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,210,5,5,88,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,210,5,5,91,210,5,5,92,210,5,5,93,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,210,5,5,97,210,192,0,0,0,5,5,98,210,5,5,99,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,217,192,0,0,0,192,0,0,0,5,5,112,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,217,5,5,115,217,5,5,116,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,224,5,5,118,224,5,5,119,224,5,5,120,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,224,5,5,122,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,230,5,5,111,230,5,5,112,230,5,5,113,230,192,0,0,0,192,0,0,0,5,5,114,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,235,5,5,66,235,5,5,67,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,235,5,5,69,235,5,5,70,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,238,5,5,241,238,5,5,242,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,244,192,0,0,0,5,5,171,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,244,192,0,0,0,192,0,0,0,5,5,173,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,167,5,5,67,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,179,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,179,5,5,30,179,5,5,31,179,5,5,32,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,186,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,194,5,5,84,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,202,5,5,194,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,210,192,0,0,0,192,0,0,0,5,5,155,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,217,192,0,0,0,5,5,152,217,5,5,153,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,186,192,0,0,0,192,0,0,0,5,5,199,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,160,192,0,0,0,5,5,214,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,163,5,5,114,163,5,5,115,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,163,192,0,0,0,5,5,117,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,167,5,5,136,167,5,5,137,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,167,5,5,139,167,5,5,140,167,192,0,0,0,5,5,141,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,172,192,0,0,0,192,0,0,0,5,5,238,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,179,5,5,95,179,5,5,96,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,186,5,5,209,186,5,5,210,186,5,5,211,186,5,5,212,186,5,5,213,186,192,0,0,0,5,5,214,186,5,5,215,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,194,5,5,160,194,5,5,161,194,5,5,162,194,5,5,163,194,5,5,164,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,194,5,5,168,194,5,5,169,194,5,5,170,194,192,0,0,0,192,0,0,0,5,5,171,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,202,5,5,242,202,192,0,0,0,5,5,243,202,5,5,244,202,5,5,245,202,5,5,246,202,5,5,247,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,210,5,5,204,210,5,5,205,210,192,0,0,0,192,0,0,0,5,5,206,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,210,5,5,208,210,5,5,209,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,217,192,0,0,0,192,0,0,0,5,5,192,217,5,5,193,217,5,5,194,217,5,5,195,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,217,5,5,199,217,5,5,200,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,224,5,5,172,224,5,5,173,224,5,5,174,224,5,5,175,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,224,5,5,177,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,230,5,5,152,230,5,5,153,230,5,5,154,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,239,5,5,7,239,5,5,8,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,242,5,5,56,242,5,5,57,242,192,0,0,0,192,0,0,0,5,5,58,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,194,192,0,0,0,192,0,0,0,5,5,249,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,157,5,5,121,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,194,192,0,0,0,192,0,0,0,5,5,202,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,239,192,0,0,0,192,0,0,0,5,5,20,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,145,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,179,192,0,0,0,5,5,184,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,163,192,0,0,0,192,0,0,0,5,5,223,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,168,5,5,82,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,180,192,0,0,0,5,5,23,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,187,5,5,157,187,5,5,158,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,187,192,0,0,0,5,5,160,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,187,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,203,5,5,123,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,218,5,5,78,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,173,192,0,0,0,5,5,236,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,180,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,188,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,195,5,5,191,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,195,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,211,192,0,0,0,192,0,0,0,5,5,162,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,211,5,5,164,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,225,192,0,0,0,192,0,0,0,5,5,49,225,5,5,50,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,195,5,5,222,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,180,5,5,149,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,188,5,5,72,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,196,5,5,8,196,5,5,9,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,204,192,0,0,0,5,5,9,204,5,5,10,204,5,5,11,204,5,5,12,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,225,5,5,180,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,225,5,5,98,225,5,5,99,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,235,5,5,158,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,169,5,5,47,169,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,169,5,5,49,169,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,169,192,0,0,0,5,5,51,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,181,192,0,0,0,192,0,0,0,5,5,18,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,204,192,0,0,0,192,0,0,0,5,5,116,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,212,5,5,38,212,5,5,39,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,219,192,0,0,0,192,0,0,0,5,5,14,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,231,192,0,0,0,5,5,55,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,242,5,5,119,242,5,5,120,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,164,5,5,219,164,5,5,220,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,169,192,0,0,0,5,5,161,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,169,5,5,163,169,5,5,164,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,175,5,5,20,175,5,5,21,175,5,5,22,175,5,5,141,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,189,5,5,75,189,5,5,76,189,5,5,77,189,5,5,78,189,5,5,79,189,5,5,80,189,5,5,81,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,197,5,5,54,197,5,5,55,197,5,5,56,197,5,5,57,197,5,5,58,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,204,5,5,243,204,5,5,244,204,5,5,245,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,212,5,5,158,212,5,5,159,212,5,5,160,212,5,5,161,212,5,5,162,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,219,5,5,130,219,5,5,131,219,5,5,132,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,219,192,0,0,0,192,0,0,0,5,5,135,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,226,5,5,17,226,5,5,18,226,5,5,19,226,5,5,20,226,5,5,21,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,231,5,5,111,231,5,5,112,231,5,5,113,231,5,5,114,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,235,5,5,233,235,5,5,234,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,246,5,5,161,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,247,5,5,222,247,5,5,223,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,247,192,0,0,0,192,0,0,0,5,5,225,247,192,0,0,0,5,5,207,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,250,192,0,0,0,192,0,0,0,5,5,32,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,169,5,5,197,169,5,5,198,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,189,192,0,0,0,192,0,0,0,5,5,127,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,197,5,5,108,197,5,5,109,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,197,192,0,0,0,5,5,112,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,205,192,0,0,0,5,5,53,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,205,5,5,55,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,219,5,5,169,219,5,5,170,219,5,5,171,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,226,5,5,73,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,235,5,5,250,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,239,5,5,148,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,242,5,5,160,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,244,192,0,0,0,192,0,0,0,5,5,228,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,247,192,0,0,0,192,0,0,0,5,5,231,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,165,5,5,16,165,5,5,17,165,5,5,18,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,170,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,170,5,5,10,170,5,5,11,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,175,5,5,135,175,192,0,0,0,5,5,136,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,175,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,175,5,5,139,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,182,5,5,4,182,5,5,5,182,5,5,6,182,5,5,7,182,5,5,8,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,189,5,5,205,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,189,5,5,207,189,5,5,208,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,197,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,197,192,0,0,0,192,0,0,0,5,5,205,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,197,5,5,207,197,5,5,208,197,5,5,209,197,5,5,210,197,5,5,211,197,5,5,212,197,5,5,213,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,197,192,0,0,0,192,0,0,0,5,5,216,197,192,0,0,0,5,5,217,197,192,0,0,0,5,5,218,197,5,5,219,197,5,5,220,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,205,5,5,135,205,5,5,136,205,5,5,137,205,5,5,138,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,205,5,5,143,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,205,192,0,0,0,5,5,145,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,212,5,5,2,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,213,5,5,4,213,5,5,5,213,5,5,6,213,192,0,0,0,5,5,7,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,213,5,5,10,213,192,0,0,0,5,5,231,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,219,5,5,233,219,5,5,234,219,5,5,235,219,5,5,236,219,5,5,237,219,5,5,238,219,5,5,239,219,5,5,240,219,5,5,241,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,226,192,0,0,0,192,0,0,0,5,5,111,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,226,5,5,114,226,5,5,115,226,5,5,116,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,226,5,5,119,226,5,5,120,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,231,5,5,180,231,5,5,181,231,5,5,182,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,236,5,5,15,236,5,5,16,236,5,5,17,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,236,5,5,19,236,5,5,20,236,5,5,21,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,239,5,5,173,239,5,5,174,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,239,5,5,176,239,5,5,177,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,242,192,0,0,0,192,0,0,0,5,5,245,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,247,192,0,0,0,192,0,0,0,5,5,229,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,205,5,5,162,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,205,5,5,191,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,231,192,0,0,0,5,5,206,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,220,192,0,0,0,192,0,0,0,5,5,25,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,190,5,5,26,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,205,192,0,0,0,192,0,0,0,5,5,234,205,5,5,235,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,213,5,5,75,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,239,192,0,0,0,192,0,0,0,5,5,197,239,192,0,0,0,5,5,198,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,176,5,5,4,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,182,192,0,0,0,5,5,146,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,226,5,5,207,226,5,5,208,226,5,5,209,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,226,192,0,0,0,192,0,0,0,5,5,211,226,5,5,212,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,232,192,0,0,0,192,0,0,0,5,5,11,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,206,5,5,65,206,5,5,66,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,239,192,0,0,0,192,0,0,0,5,5,224,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,226,5,5,40,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,213,5,5,214,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,232,5,5,122,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,236,192,0,0,0,5,5,124,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,206,5,5,139,206,5,5,140,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,220,5,5,185,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,190,5,5,195,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,220,5,5,246,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,236,5,5,160,236,5,5,161,236,5,5,162,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,242,5,5,242,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,159,5,5,182,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,161,5,5,188,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,176,192,0,0,0,192,0,0,0,5,5,118,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,183,5,5,65,183,5,5,66,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,232,5,5,156,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,183,192,0,0,0,5,5,127,183,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,214,5,5,106,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,236,192,0,0,0,5,5,40,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,191,192,0,0,0,192,0,0,0,5,5,63,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,191,5,5,65,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,214,5,5,120,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,170,192,0,0,0,5,5,222,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,176,5,5,248,176,5,5,249,176,5,5,250,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,183,5,5,239,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,199,5,5,193,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,199,5,5,196,199,5,5,197,199,5,5,198,199,5,5,199,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,199,5,5,202,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,199,192,0,0,0,192,0,0,0,5,5,204,199,192,0,0,0,192,0,0,0,5,5,123,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,207,5,5,126,207,5,5,127,207,5,5,128,207,5,5,129,207,5,5,130,207,5,5,131,207,5,5,132,207,5,5,133,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,214,5,5,213,214,5,5,214,214,5,5,215,214,5,5,216,214,5,5,217,214,5,5,218,214,5,5,219,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,214,5,5,223,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,221,192,0,0,0,5,5,149,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,221,5,5,152,221,5,5,153,221,5,5,154,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,227,192,0,0,0,192,0,0,0,5,5,200,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,227,5,5,203,227,5,5,204,227,5,5,205,227,5,5,206,227,5,5,207,227,5,5,208,227,5,5,209,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,233,5,5,5,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,233,192,0,0,0,5,5,7,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,236,5,5,249,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,240,5,5,89,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,243,5,5,49,243,5,5,50,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,245,192,0,0,0,192,0,0,0,5,5,80,245,5,5,229,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,246,5,5,231,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,248,5,5,235,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,233,192,0,0,0,192,0,0,0,5,5,57,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,237,192,0,0,0,5,5,34,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,170,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,221,5,5,11,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,184,5,5,63,184,5,5,64,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,228,5,5,36,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,237,5,5,50,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,233,5,5,122,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,243,5,5,104,243,5,5,105,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,200,5,5,130,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,249,192,0,0,0,5,5,241,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,208,5,5,100,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,228,5,5,135,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,233,5,5,164,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,192,192,0,0,0,5,5,112,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,200,5,5,247,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,165,5,5,198,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,192,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,192,5,5,229,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,209,5,5,7,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,216,192,0,0,0,5,5,44,216,5,5,45,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,223,192,0,0,0,5,5,44,223,192,0,0,0,192,0,0,0,5,5,45,223,192,0,0,0,5,5,46,223,5,5,47,223,192,0,0,0,192,0,0,0,5,5,26,229,5,5,27,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,229,5,5,29,229,5,5,30,229,5,5,31,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,234,5,5,20,234,5,5,21,234,5,5,22,234,5,5,23,234,5,5,24,234,5,5,25,234,5,5,26,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,234,5,5,28,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,234,5,5,30,234,5,5,31,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,237,5,5,221,237,5,5,222,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,237,5,5,226,237,192,0,0,0,5,5,227,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,241,5,5,44,241,5,5,45,241,5,5,46,241,5,5,47,241,5,5,48,241,192,0,0,0,5,5,49,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,243,5,5,194,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,243,5,5,196,243,5,5,197,243,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,243,192,0,0,0,5,5,201,243,192,0,0,0,5,5,202,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,245,5,5,174,245,5,5,175,245,5,5,176,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,247,192,0,0,0,192,0,0,0,5,5,47,247,5,5,48,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,248,192,0,0,0,192,0,0,0,5,5,78,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,248,192,0,0,0,192,0,0,0,5,5,80,248,192,0,0,0,5,5,81,248,5,5,82,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,249,5,5,16,249,5,5,17,249,5,5,18,249,5,5,19,249,5,5,20,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,249,5,5,2,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,250,192,0,0,0,192,0,0,0,5,5,57,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,250,192,0,0,0,5,5,161,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,184,192,0,0,0,192,0,0,0,5,5,255,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,165,192,0,0,0,192,0,0,0,5,5,234,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,177,5,5,191,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,193,5,5,54,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,201,192,0,0,0,192,0,0,0,5,5,165,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,216,5,5,98,216,5,5,99,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,229,5,5,89,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,229,5,5,91,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,192,0,0,0,5,5,81,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,241,192,0,0,0,192,0,0,0,5,5,219,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,216,192,0,0,0,192,0,0,0,5,5,111,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,229,5,5,126,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,234,192,0,0,0,5,5,109,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,238,192,0,0,0,5,5,90,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,244,192,0,0,0,5,5,15,244,5,5,16,244,5,5,17,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,229,192,0,0,0,192,0,0,0,5,5,230,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,247,5,5,150,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,248,5,5,157,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,249,5,5,86,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,235,192,0,0,0,5,5,186,238,192,0,0,0,5,5,187,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,238,192,0,0,0,192,0,0,0,5,5,189,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,239,5,5,35,162,5,5,65,157,5,5,0,133,192,0,0,0,5,5,98,162,5,5,159,171,5,5,172,171,5,5,10,178,5,5,140,185,5,5,141,193,5,5,239,209,5,5,215,209,192,0,0,0,192,0,0,0,5,5,110,162,5,5,97,166,5,5,154,244,5,5,103,166,192,0,0,0,192,0,0,0,5,5,215,157,5,5,70,160,192,0,0,0,5,5,226,157,5,5,91,178,5,5,204,157,5,5,195,158,5,5,119,162,192,0,0,0,5,5,28,157,5,5,90,157,5,5,146,162,5,5,130,166,5,5,141,166,5,5,175,193,5,5,37,202,192,0,0,0,5,5,9,172,5,5,11,172,5,5,51,202,5,5,93,157,5,5,218,158,5,5,219,158,5,5,221,158,5,5,226,158,5,5,161,166,5,5,189,193,5,5,170,162,5,5,23,172,5,5,144,178,5,5,144,178,5,5,144,178,192,0,0,0,5,5,138,161,5,5,12,158,5,5,152,178,192,0,0,0,5,5,253,158,5,5,5,159,5,5,133,160,5,5,37,172,5,5,211,162,5,5,227,162,5,5,200,166,5,5,41,172,5,5,175,178,5,5,200,178,5,5,250,185,5,5,10,186,5,5,208,193,5,5,208,193,5,5,228,193,5,5,246,193,5,5,254,193,5,5,69,202,5,5,104,210,5,5,54,210,5,5,105,210,5,5,86,210,5,5,106,217,5,5,235,157,5,5,181,160,5,5,159,172,5,5,86,186,5,5,111,186,5,5,116,172,5,5,33,179,5,5,62,194,5,5,136,217,192,0,0,0,5,5,67,163,5,5,127,186,5,5,69,163,5,5,184,160,5,5,160,210,5,5,137,186,192,0,0,0,192,0,0,0,5,5,44,179,5,5,62,179,5,5,74,179,5,5,185,172,5,5,189,186,192,0,0,0,192,0,0,0,5,5,179,217,5,5,254,238,5,5,254,238,192,0,0,0,5,5,225,186,5,5,254,202,5,5,225,210,5,5,10,239,192,0,0,0,5,5,134,163,5,5,2,173,5,5,21,161,5,5,119,157,192,0,0,0,5,5,242,186,5,5,123,157,5,5,215,167,5,5,172,163,192,0,0,0,5,5,221,194,192,0,0,0,5,5,30,203,5,5,251,194,5,5,236,210,5,5,166,165,5,5,36,187,192,0,0,0,5,5,254,194,5,5,172,179,5,5,3,195,5,5,253,217,5,5,203,224,192,0,0,0,192,0,0,0,5,5,81,173,5,5,53,187,5,5,56,187,5,5,23,195,192,0,0,0,5,5,137,157,192,0,0,0,192,0,0,0,5,5,133,183,5,5,4,168,5,5,4,168,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,163,5,5,73,187,192,0,0,0,5,5,33,195,5,5,225,163,5,5,230,163,5,5,255,163,5,5,235,179,192,0,0,0,192,0,0,0,5,5,250,179,192,0,0,0,5,5,127,187,5,5,54,211,5,5,116,203,5,5,118,203,5,5,116,203,5,5,82,211,5,5,46,218,5,5,233,224,5,5,62,218,5,5,70,218,5,5,196,230,5,5,30,239,5,5,32,239,5,5,40,161,5,5,164,187,5,5,47,161,5,5,104,168,5,5,138,168,5,5,76,180,192,0,0,0,5,5,57,180,5,5,193,173,5,5,173,187,5,5,200,187,5,5,101,180,192,0,0,0,5,5,163,203,5,5,210,203,5,5,235,187,192,0,0,0,5,5,84,218,5,5,143,211,5,5,114,218,5,5,137,211,192,0,0,0,5,5,13,188,5,5,214,203,192,0,0,0,5,5,48,188,5,5,152,180,5,5,134,180,5,5,89,225,5,5,2,196,5,5,2,204,192,0,0,0,5,5,233,171,5,5,155,185,5,5,165,193,5,5,179,211,5,5,135,170,5,5,156,170,5,5,161,180,5,5,79,188,5,5,221,206,5,5,121,164,5,5,110,164,192,0,0,0,5,5,36,169,5,5,124,174,5,5,247,168,5,5,155,174,5,5,108,188,192,0,0,0,5,5,117,188,5,5,178,180,5,5,102,196,192,0,0,0,5,5,35,204,5,5,224,211,5,5,194,218,5,5,44,231,192,0,0,0,5,5,57,231,5,5,150,246,5,5,98,161,192,0,0,0,5,5,190,225,192,0,0,0,5,5,129,204,5,5,52,212,5,5,203,188,5,5,204,188,192,0,0,0,192,0,0,0,5,5,57,212,5,5,114,161,192,0,0,0,5,5,99,169,5,5,112,169,5,5,157,164,5,5,57,181,5,5,248,174,5,5,91,181,5,5,251,174,5,5,77,181,5,5,92,181,5,5,105,181,192,0,0,0,5,5,238,174,5,5,206,196,5,5,14,197,5,5,240,204,5,5,44,197,5,5,207,204,192,0,0,0,5,5,40,189,5,5,79,219,192,0,0,0,192,0,0,0,5,5,136,219,5,5,133,242,5,5,113,239,5,5,110,239,192,0,0,0,5,5,227,244,5,5,230,164,5,5,224,164,5,5,37,175,192,0,0,0,5,5,253,204,192,0,0,0,5,5,140,219,192,0,0,0,5,5,121,250,5,5,146,231,5,5,63,205,192,0,0,0,5,5,120,197,5,5,217,212,192,0,0,0,192,0,0,0,5,5,158,239,5,5,102,158,192,0,0,0,5,5,249,169,5,5,219,181,5,5,219,181,5,5,106,205,5,5,127,205,5,5,245,212,5,5,216,219,5,5,168,239,192,0,0,0,5,5,225,197,192,0,0,0,5,5,19,170,192,0,0,0,5,5,227,189,192,0,0,0,5,5,193,205,192,0,0,0,5,5,255,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,182,5,5,90,182,5,5,90,182,5,5,33,198,5,5,41,198,5,5,32,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,190,5,5,5,206,5,5,60,220,192,0,0,0,192,0,0,0,5,5,154,182,192,0,0,0,192,0,0,0,5,5,115,213,5,5,189,182,192,0,0,0,5,5,99,220,5,5,140,213,5,5,227,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,213,5,5,201,213,192,0,0,0,5,5,138,220,5,5,247,226,192,0,0,0,192,0,0,0,5,5,37,227,192,0,0,0,5,5,100,232,5,5,125,236,5,5,78,176,192,0,0,0,5,5,193,198,5,5,241,220,5,5,21,214,5,5,231,220,5,5,130,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,227,192,0,0,0,5,5,226,190,5,5,175,236,5,5,118,170,192,0,0,0,192,0,0,0,5,5,13,199,192,0,0,0,5,5,160,232,192,0,0,0,192,0,0,0,5,5,140,170,5,5,109,183,192,0,0,0,5,5,24,199,5,5,206,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,183,5,5,70,199,5,5,126,208,192,0,0,0,5,5,112,165,5,5,106,165,5,5,171,170,5,5,157,162,5,5,191,170,5,5,193,170,5,5,202,170,5,5,201,176,192,0,0,0,5,5,200,176,5,5,69,191,5,5,224,183,5,5,150,191,5,5,70,191,5,5,145,191,5,5,127,199,5,5,191,199,5,5,242,183,5,5,99,199,5,5,101,199,5,5,116,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,207,5,5,74,221,5,5,108,221,192,0,0,0,5,5,181,227,192,0,0,0,192,0,0,0,5,5,51,245,192,0,0,0,5,5,77,245,192,0,0,0,5,5,253,176,5,5,139,207,5,5,10,233,5,5,251,236,5,5,28,184,5,5,208,199,5,5,168,207,5,5,226,199,5,5,217,227,5,5,248,214,5,5,29,215,5,5,222,227,192,0,0,0,5,5,211,221,5,5,92,240,192,0,0,0,5,5,8,228,5,5,225,161,192,0,0,0,5,5,28,200,5,5,200,207,192,0,0,0,5,5,50,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,208,5,5,61,228,5,5,36,248,5,5,149,165,192,0,0,0,5,5,77,192,5,5,128,200,5,5,253,248,5,5,131,184,192,0,0,0,192,0,0,0,5,5,162,200,5,5,69,208,5,5,87,208,192,0,0,0,5,5,146,184,5,5,149,228,192,0,0,0,192,0,0,0,5,5,3,162,5,5,137,177,5,5,166,208,192,0,0,0,5,5,206,215,5,5,196,208,5,5,5,223,5,5,6,223,5,5,47,216,5,5,39,241,5,5,172,243,192,0,0,0,5,5,107,201,192,0,0,0,5,5,46,234,192,0,0,0,192,0,0,0,5,5,150,201,5,5,195,224,5,5,4,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,209,5,5,97,209,5,5,124,223,192,0,0,0,5,5,41,185,192,0,0,0,5,5,151,229,5,5,116,241,5,5,175,216,5,5,147,234,192,0,0,0,192,0,0,0,5,5,32,244,5,5,76,244,5,5,248,223,192,0,0,0,5,5,108,244,5,5,252,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,193,192,0,0,0,5,5,235,201,5,5,141,171,5,5,72,246,5,5,37,224,5,5,204,238,5,5,244,216,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,0,0,142,9,0,5,0,5,0,0,0,128,28,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,15,157,24,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,56,157,26,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,25,159,12,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,187,157,23,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,217,157,18,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,0,154,27,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,21,157,19,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,12,157,25,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,38,157,16,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,70,158,8,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,86,158,3,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,85,158,4,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,71,158,6,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,102,157,11,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,67,158,9,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,189,180,5,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,77,161,7,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,140,160,14,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,197,181,2,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,158,162,17,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,163,158,22,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,218,166,13,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,149,167,10,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,7,160,21,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,164,166,15,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,23,160,20,15,0,5,0,0,144,9,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,5,5,142,9,5,5,70,171,6,5,144,9,5,5,142,9,5,5,62,170,13,5,144,9,5,5,142,9,5,5,114,184,8,5,144,9,5,5,142,9,5,5,161,182,12,5,144,9,5,5,142,9,5,5,48,213,14,5,144,9,5,5,142,9,5,5,42,208,7,5,144,9,5,5,142,9,5,5,68,190,11,5,144,9,5,5,142,9,5,5,202,161,10,5,144,9,5,5,142,9,5,5,203,161,9,5,144,9,5,5,0,21,17,5,70,158,5,5,0,23,16,5,70,158,5,5,0,25,15,5,70,158,5,5,0,27,14,5,70,158,5,5,0,29,13,5,70,158,5,5,0,31,12,5,70,158,5,5,0,33,11,5,70,158,5,5,0,35,10,5,70,158,5,5,0,37,9,5,70,158,5,5,0,21,5,5,0,19,20,5,70,158,5,5,0,21,5,5,0,21,19,5,70,158,5,5,0,21,5,5,0,23,18,5,70,158,5,5,164,158,7,5,234,166,5,5,0,19,30,5,49,175,5,5,0,21,19,5,49,175,5,5,0,23,13,5,49,175,5,5,0,25,12,5,49,175,5,5,0,27,11,5,49,175,5,5,0,29,10,5,49,175,5,5,0,31,9,5,49,175,5,5,0,33,8,5,49,175,5,5,0,35,7,5,49,175,5,5,0,37,6,5,49,175,5,5,0,21,5,5,0,19,29,5,49,175,5,5,0,21,5,5,0,21,28,5,49,175,5,5,0,21,5,5,0,23,27,5,49,175,5,5,0,21,5,5,0,25,26,5,49,175,5,5,0,21,5,5,0,27,25,5,49,175,5,5,0,21,5,5,0,29,24,5,49,175,5,5,0,21,5,5,0,31,23,5,49,175,5,5,0,21,5,5,0,33,22,5,49,175,5,5,0,21,5,5,0,35,21,5,49,175,5,5,0,21,5,5,0,37,20,5,49,175,5,5,0,23,5,5,0,19,18,5,49,175,5,5,0,23,5,5,0,21,17,5,49,175,5,5,0,23,5,5,0,23,16,5,49,175,5,5,0,23,5,5,0,25,15,5,49,175,5,5,0,23,5,5,0,27,14,5,49,175,5,5,76,159,6,5,40,161,5,5,25,174,6,5,234,166,5,5,107,157,7,5,118,159,5,5,203,168,6,5,95,169,5,5,189,180,5,5,15,161,5,5,32,160,7,5,62,170,5,5,0,21,28,5,67,158,5,5,0,23,17,5,67,158,5,5,0,25,14,5,67,158,5,5,0,27,13,5,67,158,5,5,0,29,12,5,67,158,5,5,0,31,11,5,67,158,5,5,0,33,10,5,67,158,5,5,0,35,9,5,67,158,5,5,0,37,8,5,67,158,5,5,0,21,5,5,0,19,38,5,67,158,5,5,0,21,5,5,0,21,37,5,67,158,5,5,0,21,5,5,0,23,36,5,67,158,5,5,0,21,5,5,0,25,35,5,67,158,5,5,0,21,5,5,0,27,34,5,67,158,5,5,0,21,5,5,0,29,33,5,67,158,5,5,0,21,5,5,0,31,32,5,67,158,5,5,0,21,5,5,0,33,31,5,67,158,5,5,0,21,5,5,0,35,30,5,67,158,5,5,0,21,5,5,0,37,29,5,67,158,5,5,0,23,5,5,0,19,27,5,67,158,5,5,0,23,5,5,0,21,26,5,67,158,5,5,0,23,5,5,0,23,25,5,67,158,5,5,0,23,5,5,0,25,24,5,67,158,5,5,0,23,5,5,0,27,23,5,67,158,5,5,0,23,5,5,0,29,22,5,67,158,5,5,0,23,5,5,0,31,21,5,67,158,5,5,0,23,5,5,0,33,20,5,67,158,5,5,0,23,5,5,0,35,19,5,67,158,5,5,0,23,5,5,0,37,18,5,67,158,5,5,0,25,5,5,0,19,16,5,67,158,5,5,0,25,5,5,0,21,15,5,67,158,5,5,82,10,5,5,113,159,8,5,84,10,5,5,82,10,5,5,56,157,14,5,84,10,5,5,82,10,5,5,15,157,13,5,84,10,5,5,82,10,5,5,224,160,11,5,84,10,5,5,82,10,5,5,49,175,7,5,84,10,5,5,82,10,5,5,101,159,10,5,84,10,5,5,82,10,5,5,253,189,6,5,84,10,5,5,82,10,5,5,182,193,12,5,84,10,5,5,82,10,5,5,21,188,9,5,84,10,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,41,0,198,161,36,0,19,40,82,0,28,40,42,0,33,40,20,0,33,40,255,255,163,250,5,5,35,40,255,255,169,250,5,5,36,40,255,255,171,250,5,5,39,40,255,255,173,250,5,5,48,40,255,255,175,250,5,5,28,40,255,255,84,250,5,5,29,40,255,255,120,250,5,5,30,40,255,255,136,250,5,5,31,40,255,255,152,250,5,5,32,40,255,255,158,250,5,5,23,40,20,0,23,40,255,255,175,247,5,5,24,40,255,255,181,248,5,5,25,40,255,255,99,249,5,5,26,40,255,255,219,249,5,5,27,40,255,255,26,250,5,5,19,40,255,255,216,238,5,5,20,40,255,255,25,242,5,5,21,40,255,255,148,244,5,5,22,40,255,255,90,246,5,5,10,40,38,0,14,40,20,0,14,40,255,255,211,209,5,5,15,40,255,255,248,216,5,5,16,40,255,255,44,224,5,5,17,40,255,255,53,230,5,5,18,40,255,255,33,235,5,5,10,40,255,255,238,177,5,5,11,40,255,255,79,185,5,5,12,40,255,255,110,193,5,5,13,40,255,255,238,201,5,5,5,40,20,0,5,40,255,255,126,158,5,5,6,40,255,255,213,159,5,5,7,40,255,255,31,162,5,5,8,40,255,255,252,165,5,5,9,40,255,255,144,171,5,5,1,40,255,255,0,127,5,5,2,40,255,255,0,151,5,5,3,40,255,255,53,157,5,5,4,40,255,255,162,157,5,5,8,0,1,40,34,40,35,40,37,40,39,40,40,40,48,40,49,40,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,235,251,1,16,206,41,1,96,1,0,0,96,170,170,170,170,140,77,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,164,32,0,0,164,32,0,0,140,40,0,0,140,40,0,0,72,45,0,0,72,45,0,0,8,69,0,0,64,73,0,0,112,77,0,0,17,0,0,0,5,0,0,0,0,0,0,41,127,0,0,96,125,0,0,123,44,0,118,123,125,0,0,126,169,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,0,249,250,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,64,8,235,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,36,0,202,193,36,0,202,226,36,0,202,3,37,0,202,36,37,0,202,69,37,0,202,102,37,0,202,135,37,0,202,168,37,0,202,201,37,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,35,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,34,36,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,36,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,31,0,198,129,0,0,0,1,12,128,107,2,117,152,75,1,254,158,187,0,7,249,74,0,196,249,38,0,10,250,20,0,10,250,255,255,25,253,193,42,30,250,255,255,195,252,193,136,60,250,255,255,135,251,193,8,149,250,255,255,11,252,193,192,206,250,255,255,224,253,193,118,196,249,255,255,224,253,193,12,233,249,255,255,98,253,193,98,247,249,255,255,152,252,193,118,8,250,255,255,15,253,193,118,64,249,16,0,64,249,255,255,209,253,193,178,113,249,255,255,78,253,193,128,129,249,255,255,106,251,193,100,138,249,255,255,42,251,193,8,7,249,255,255,224,253,193,118,8,249,255,255,224,253,193,118,10,249,255,255,98,253,193,242,52,249,255,255,198,252,193,84,127,159,75,0,159,159,57,0,159,159,255,255,224,253,193,218,160,159,255,255,224,253,193,236,126,216,4,0,2,249,255,255,70,253,193,218,9,0,210,221,20,0,210,221,255,255,45,253,193,112,21,222,255,255,213,253,193,94,23,222,255,255,217,253,193,36,24,222,255,255,217,253,193,222,28,222,255,255,219,253,193,240,29,220,255,255,34,251,193,200,117,220,255,255,130,251,193,144,120,220,255,255,135,251,193,8,144,220,255,255,160,251,193,102,196,221,255,255,16,253,193,52,127,159,255,255,223,253,193,110,141,159,255,255,224,253,193,12,153,159,255,255,224,253,193,96,156,159,255,255,224,253,193,118,59,159,16,0,59,159,255,255,219,253,193,240,74,159,255,255,220,253,193,176,80,159,255,255,220,253,193,236,82,159,255,255,220,253,193,248,254,158,255,255,217,253,193,222,14,159,255,255,218,253,193,6,19,159,255,255,218,253,193,62,32,159,255,255,218,253,193,220,50,155,70,0,165,158,34,0,205,158,16,0,205,158,255,255,214,253,193,124,209,158,255,255,214,253,193,252,249,158,255,255,217,253,193,36,253,158,255,255,217,253,193,62,165,158,255,255,211,253,193,56,166,158,255,255,212,253,193,196,187,158,255,255,213,253,193,94,195,158,255,255,213,253,193,210,229,156,16,0,229,156,255,255,195,253,193,218,31,158,255,255,206,253,193,72,117,158,255,255,208,253,193,240,127,158,255,255,209,253,193,178,50,155,255,255,180,253,193,172,60,155,255,255,181,253,193,166,90,155,255,255,184,253,193,2,124,156,255,255,193,253,193,64,153,153,34,0,216,154,16,0,216,154,255,255,175,253,193,232,223,154,255,255,176,253,193,186,37,155,255,255,180,253,193,58,47,155,255,255,180,253,193,136,153,153,255,255,164,253,193,252,172,153,255,255,165,253,193,208,108,154,255,255,171,253,193,244,168,154,255,255,173,253,193,168,222,152,16,0,222,152,255,255,157,253,193,164,223,152,255,255,157,253,193,170,99,153,255,255,163,253,193,20,150,153,255,255,164,253,193,110,117,152,255,255,153,253,193,70,168,152,255,255,154,253,193,82,206,152,255,255,156,253,193,242,219,152,255,255,157,253,193,122,100,141,142,0,127,149,70,0,94,151,34,0,230,151,16,0,230,151,255,255,147,253,193,30,237,151,255,255,147,253,193,108,243,151,255,255,147,253,193,184,1,152,255,255,148,253,193,142,94,151,255,255,140,253,193,44,98,151,255,255,140,253,193,152,105,151,255,255,141,253,193,160,203,151,255,255,145,253,193,196,182,150,16,0,182,150,255,255,131,253,193,186,185,150,255,255,131,253,193,228,232,150,255,255,134,253,193,178,81,151,255,255,139,253,193,216,127,149,255,255,120,253,193,2,128,149,255,255,120,253,193,6,232,149,255,255,124,253,193,84,28,150,255,255,125,253,193,154,181,143,34,0,204,145,16,0,204,145,255,255,98,253,193,98,209,145,255,255,98,253,193,242,133,148,255,255,114,253,193,86,119,149,255,255,118,253,193,200,181,143,255,255,78,253,193,176,145,144,255,255,87,253,193,98,73,145,255,255,93,253,193,148,198,145,255,255,98,253,193,30,202,142,16,0,202,142,255,255,70,253,193,218,102,143,255,255,76,253,193,100,155,143,255,255,77,253,193,186,176,143,255,255,78,253,193,128,100,141,255,255,54,253,193,190,112,141,255,255,55,253,193,84,179,141,255,255,59,253,193,84,171,142,255,255,68,253,193,230,107,134,70,0,0,138,34,0,85,140,16,0,85,140,255,255,45,253,193,112,120,140,255,255,47,253,193,36,157,140,255,255,48,253,193,190,29,141,255,255,53,253,193,202,0,138,255,255,30,253,193,38,160,139,255,255,40,253,193,192,55,140,255,255,43,253,193,160,70,140,255,255,44,253,193,90,126,137,16,0,126,137,255,255,24,253,193,136,139,137,255,255,25,253,193,42,193,137,255,255,27,253,193,148,210,137,255,255,27,253,193,240,107,134,255,255,254,252,193,150,64,136,255,255,14,253,193,202,76,136,255,255,15,253,193,118,99,136,255,255,16,253,193,52,252,129,34,0,110,130,16,0,110,130,255,255,222,252,193,106,114,130,255,255,222,252,193,140,120,130,255,255,223,252,193,6,77,134,255,255,252,252,193,174,252,129,255,255,217,252,193,10,12,130,255,255,218,252,193,106,27,130,255,255,219,252,193,90,31,130,255,255,219,252,193,128,137,128,16,0,137,128,255,255,203,252,193,226,227,129,255,255,215,252,193,90,234,129,255,255,215,252,193,222,243,129,255,255,216,252,193,152,12,128,255,255,198,252,193,214,18,128,255,255,199,252,193,40,51,128,255,255,200,252,193,74,127,128,255,255,203,252,193,128,54,98,30,1,132,115,142,0,226,119,70,0,115,124,34,0,81,127,16,0,81,127,255,255,189,252,193,238,138,127,255,255,193,252,193,14,189,127,255,255,195,252,193,136,1,128,255,255,198,252,193,84,115,124,255,255,168,252,193,76,248,124,255,255,174,252,193,70,159,126,255,255,185,252,193,220,54,127,255,255,188,252,193,198,190,121,16,0,190,121,255,255,140,252,193,156,116,122,255,255,148,252,193,22,203,122,255,255,152,252,193,118,249,122,255,255,154,252,193,154,226,119,255,255,124,252,193,16,243,119,255,255,125,252,193,134,58,121,255,255,134,252,193,210,184,121,255,255,140,252,193,88,139,117,34,0,174,118,16,0,174,118,255,255,109,252,193,26,191,118,255,255,110,252,193,184,238,118,255,255,113,252,193,128,219,119,255,255,123,252,193,54,139,117,255,255,98,252,193,100,146,117,255,255,98,252,193,176,118,118,255,255,106,252,193,156,125,118,255,255,106,252,193,250,24,117,16,0,24,117,255,255,92,252,193,188,31,117,255,255,93,252,193,36,40,117,255,255,93,252,193,208,48,117,255,255,94,252,193,32,132,115,255,255,79,252,193,112,137,115,255,255,79,252,193,132,220,116,255,255,89,252,193,158,230,116,255,255,90,252,193,104,179,107,70,0,42,114,34,0,71,114,16,0,71,114,255,255,66,252,193,252,89,114,255,255,68,252,193,28,91,114,255,255,68,252,193,94,172,114,255,255,72,252,193,46,42,114,255,255,64,252,193,48,54,114,255,255,65,252,193,150,59,114,255,255,65,252,193,218,63,114,255,255,66,252,193,14,15,108,16,0,15,108,255,255,20,252,193,236,20,108,255,255,21,252,193,54,52,108,255,255,21,252,193,230,107,112,255,255,48,252,193,142,179,107,255,255,14,252,193,174,203,107,255,255,16,252,193,104,212,107,255,255,16,252,193,180,219,107,255,255,17,252,193,22,224,101,34,0,40,103,16,0,40,103,255,255,235,251,193,114,32,107,255,255,6,252,193,188,98,107,255,255,9,252,193,190,121,107,255,255,11,252,193,192,224,101,255,255,222,251,193,42,229,101,255,255,222,251,193,86,240,102,255,255,232,251,193,90,8,103,255,255,233,251,193,86,135,101,16,0,135,101,255,255,217,251,193,254,151,101,255,255,218,251,193,178,164,101,255,255,219,251,193,74,185,101,255,255,220,251,193,68,54,98,255,255,190,251,193,162,75,98,255,255,191,251,193,156,47,101,255,255,212,251,193,60,52,101,255,255,212,251,193,230,215,86,142,0,219,93,70,0,254,94,34,0,97,95,16,0,97,95,255,255,165,251,193,122,115,95,255,255,166,251,193,88,195,95,255,255,169,251,193,252,8,98,255,255,188,251,193,76,254,94,255,255,160,251,193,102,11,95,255,255,161,251,193,108,19,95,255,255,161,251,193,216,80,95,255,255,164,251,193,210,114,94,16,0,114,94,255,255,153,251,193,170,122,94,255,255,154,251,193,90,127,94,255,255,154,251,193,218,244,94,255,255,159,251,193,254,219,93,255,255,147,251,193,66,229,93,255,255,147,251,193,210,241,93,255,255,148,251,193,132,254,93,255,255,149,251,193,20,80,91,34,0,34,92,16,0,34,92,255,255,130,251,193,144,56,92,255,255,131,251,193,192,110,92,255,255,135,251,193,8,113,92,255,255,135,251,193,128,80,91,255,255,119,251,193,108,128,91,255,255,121,251,193,174,248,91,255,255,128,251,193,22,15,92,255,255,129,251,193,34,10,89,16,0,10,89,255,255,100,251,193,232,21,89,255,255,101,251,193,136,39,89,255,255,102,251,193,204,115,89,255,255,106,251,193,100,215,86,255,255,83,251,193,76,31,87,255,255,85,251,193,186,235,88,255,255,99,251,193,220,2,89,255,255,100,251,193,178,224,81,70,0,65,83,34,0,130,83,16,0,130,83,255,255,50,251,193,178,182,83,255,255,53,251,193,120,200,83,255,255,54,251,193,122,227,83,255,255,56,251,193,112,65,83,255,255,47,251,193,180,92,83,255,255,49,251,193,44,100,83,255,255,209,253,193,152,105,83,255,255,49,251,193,240,249,82,16,0,249,82,255,255,44,251,193,244,21,83,255,255,45,251,193,234,26,83,255,255,46,251,193,82,56,83,255,255,47,251,193,118,224,81,255,255,33,251,193,196,245,81,255,255,34,251,193,200,0,82,255,255,35,251,193,132,155,82,255,255,42,251,193,8,160,78,34,0,107,81,16,0,107,81,255,255,28,251,193,74,130,81,255,255,29,251,193,104,150,81,255,255,30,251,193,74,171,81,255,255,31,251,193,62,160,78,255,255,8,251,193,232,186,78,255,255,10,251,193,68,63,81,255,255,26,251,193,4,101,81,255,255,27,251,193,188,63,78,16,0,63,78,255,255,4,251,193,252,89,78,255,255,6,251,193,26,133,78,255,255,7,251,193,248,140,78,255,255,8,251,193,74,0,78,255,255,2,251,193,2,40,78,255,255,4,251,193,60,44,78,255,255,66,252,193,246,54,78,255,255,4,251,193,200,26,130,246,1,0,78,1,78,40,78,41,78,44,78,45,78,54,78,55,78,63,78,64,78,89,78,90,78,133,78,134,78,140,78,141,78,160,78,161,78,186,78,187,78,63,81,64,81,101,81,102,81,107,81,108,81,130,81,131,81,150,81,151,81,171,81,172,81,224,81,225,81,245,81,246,81,0,82,1,82,155,82,156,82,249,82,250,82,21,83,22,83,26,83,27,83,56,83,57,83,65,83,66,83,92,83,93,83,100,83,101,83,105,83,106,83,130,83,131,83,182,83,183,83,200,83,201,83,227,83,228,83,215,86,216,86,31,87,32,87,235,88,236,88,2,89,3,89,10,89,11,89,21,89,22,89,39,89,40,89,115,89,116,89,80,91,81,91,128,91,129,91,248,91,249,91,15,92,16,92,34,92,35,92,56,92,57,92,110,92,111,92,113,92,114,92,219,93,220,93,229,93,230,93,241,93,242,93,254,93,255,93,114,94,115,94,122,94,123,94,127,94,128,94,244,94,245,94,254,94,255,94,11,95,12,95,19,95,20,95,80,95,81,95,97,95,98,95,115,95,116,95,195,95,196,95,8,98,9,98,54,98,55,98,75,98,76,98,47,101,48,101,52,101,53,101,135,101,136,101,151,101,152,101,164,101,165,101,185,101,186,101,224,101,225,101,229,101,230,101,240,102,241,102,8,103,9,103,40,103,41,103,32,107,33,107,98,107,99,107,121,107,122,107,179,107,180,107,203,107,204,107,212,107,213,107,219,107,220,107,15,108,16,108,20,108,21,108,52,108,53,108,107,112,108,112,42,114,43,114,54,114,55,114,59,114,60,114,63,114,64,114,71,114,72,114,89,114,90,114,91,114,92,114,172,114,173,114,132,115,133,115,137,115,138,115,220,116,221,116,230,116,231,116,24,117,25,117,31,117,32,117,40,117,41,117,48,117,49,117,139,117,140,117,146,117,147,117,118,118,119,118,125,118,126,118,174,118,175,118,191,118,192,118,238,118,239,118,219,119,220,119,226,119,227,119,243,119,244,119,58,121,59,121,184,121,185,121,190,121,191,121,116,122,117,122,203,122,204,122,249,122,250,122,115,124,116,124,248,124,249,124,159,126,160,126,54,127,55,127,81,127,82,127,138,127,139,127,189,127,190,127,1,128,2,128,12,128,13,128,18,128,19,128,51,128,52,128,127,128,128,128,137,128,138,128,227,129,228,129,234,129,235,129,243,129,244,129,252,129,253,129,12,130,13,130,27,130,28,130,31,130,32,130,110,130,111,130,114,130,115,130,120,130,121,130,77,134,78,134,107,134,108,134,64,136,65,136,76,136,77,136,99,136,100,136,126,137,127,137,139,137,140,137,193,137,194,137,210,137,211,137,0,138,1,138,160,139,161,139,55,140,56,140,70,140,71,140,85,140,86,140,120,140,121,140,157,140,158,140,29,141,30,141,100,141,101,141,112,141,113,141,179,141,180,141,171,142,172,142,202,142,203,142,102,143,103,143,155,143,156,143,176,143,177,143,181,143,182,143,145,144,146,144,73,145,74,145,198,145,199,145,204,145,205,145,209,145,210,145,133,148,134,148,119,149,120,149,127,149,129,149,232,149,233,149,28,150,29,150,182,150,183,150,185,150,186,150,232,150,233,150,81,151,82,151,94,151,95,151,98,151,99,151,105,151,106,151,203,151,204,151,230,151,231,151,237,151,238,151,243,151,244,151,1,152,2,152,117,152,118,152,168,152,169,152,206,152,207,152,219,152,220,152,222,152,224,152,99,153,100,153,150,153,151,153,153,153,154,153,172,153,173,153,108,154,109,154,168,154,169,154,216,154,217,154,223,154,224,154,37,155,38,155,47,155,48,155,50,155,51,155,60,155,61,155,90,155,91,155,124,156,125,156,229,156,230,156,31,158,32,158,117,158,118,158,127,158,128,158,165,158,167,158,187,158,188,158,195,158,196,158,205,158,206,158,209,158,210,158,249,158,250,158,253,158,255,158,14,159,15,159,19,159,20,159,32,159,33,159,59,159,60,159,74,159,75,159,80,159,81,159,82,159,83,159,127,159,128,159,141,159,142,159,153,159,154,159,156,159,157,159,159,159,161,159,126,216,127,216,2,249,3,249,7,249,9,249,10,249,11,249,52,249,53,249,64,249,65,249,113,249,114,249,129,249,130,249,138,249,139,249,196,249,197,249,233,249,234,249,247,249,248,249,8,250,9,250,10,250,11,250,30,250,31,250,60,250,61,250,149,250,150,250,206,250,207,250,2,0,29,248,2,0,30,248,2,0,117,248,2,0,118,248,2,0,120,248,2,0,121,248,2,0,144,248,2,0,145,248,2,0,196,249,2,0,197,249,2,0,210,249,2,0,211,249,2,0,21,250,2,0,22,250,2,0,23,250,2,0,25,250,2,0,28,250,2,0,29,250,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,3,0,68,0,51,0,60,0,251,208,2,16,11,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,114,114,2,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,172,75,2,0,172,75,2,0,28,86,2,0,28,86,2,0,120,94,2,0,120,94,2,0,28,110,2,0,38,110,2,0,86,114,2,0,17,0,0,0,5,0,0,0,0,0,0,41,127,0,0,96,125,0,0,123,44,0,118,123,125,0,0,126,169,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,0,249,250,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,28,14,224,34,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,152,0,160,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,191,0,199,0,204,0,48,0,212,0,220,0,228,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,236,0,244,0,252,0,4,1,12,1,20,1,28,1,36,1,44,1,52,1,60,1,48,0,67,1,69,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,76,1,48,0,48,0,48,0,48,0,84,1,92,1,48,0,100,1,108,1,116,1,48,0,48,0,48,0,119,1,127,1,48,0,48,0,48,0,135,1,143,1,149,1,156,1,163,1,171,1,178,1,186,1,194,1,202,1,210,1,218,1,226,1,233,1,241,1,249,1,0,2,8,2,16,2,23,2,31,2,39,2,46,2,54,2,62,2,70,2,78,2,86,2,94,2,98,2,106,2,48,0,114,2,122,2,130,2,48,0,138,2,48,0,146,2,154,2,48,0,160,2,168,2,176,2,184,2,192,2,200,2,207,2,215,2,223,2,231,2,239,2,247,2,255,2,5,3,13,3,17,3,25,3,33,3,41,3,49,3,57,3,65,3,73,3,81,3,89,3,97,3,105,3,113,3,119,3,48,0,125,3,133,3,141,3,149,3,157,3,165,3,173,3,180,3,188,3,194,3,202,3,210,3,218,3,226,3,48,0,232,3,240,3,248,3,0,4,7,4,15,4,23,4,27,4,34,4,40,4,48,4,56,4,63,4,70,4,78,4,83,4,90,4,98,4,105,4,113,4,121,4,129,4,136,4,144,4,150,4,157,4,164,4,172,4,180,4,188,4,196,4,204,4,211,4,48,0,219,4,227,4,235,4,243,4,248,4,252,4,2,5,10,5,18,5,26,5,34,5,42,5,49,5,54,5,62,5,69,5,77,5,85,5,93,5,101,5,109,5,116,5,123,5,127,5,135,5,143,5,150,5,157,5,164,5,171,5,175,5,183,5,188,5,196,5,204,5,210,5,214,5,222,5,230,5,236,5,242,5,250,5,2,6,9,6,17,6,22,6,29,6,33,6,41,6,48,6,56,6,64,6,71,6,48,0,79,6,81,6,89,6,97,6,105,6,111,6,48,0,114,6,120,6,127,6,134,6,142,6,149,6,155,6,160,6,168,6,176,6,184,6,48,0,192,6,200,6,208,6,215,6,223,6,231,6,236,6,244,6,252,6,3,7,9,7,48,0,13,7,48,0,48,0,48,0,21,7,29,7,37,7,45,7,53,7,61,7,69,7,77,7,85,7,93,7,101,7,109,7,117,7,125,7,133,7,141,7,149,7,157,7,165,7,173,7,181,7,189,7,197,7,205,7,213,7,221,7,229,7,237,7,245,7,253,7,5,8,13,8,21,8,29,8,37,8,45,8,53,8,61,8,69,8,77,8,85,8,93,8,101,8,109,8,117,8,125,8,133,8,141,8,149,8,157,8,165,8,173,8,181,8,189,8,197,8,205,8,213,8,221,8,229,8,237,8,245,8,253,8,5,9,13,9,21,9,29,9,37,9,45,9,53,9,61,9,69,9,77,9,85,9,93,9,101,9,109,9,117,9,125,9,133,9,141,9,149,9,157,9,165,9,173,9,181,9,189,9,197,9,205,9,213,9,221,9,229,9,237,9,245,9,253,9,5,10,13,10,21,10,29,10,37,10,45,10,53,10,61,10,69,10,77,10,85,10,93,10,101,10,109,10,117,10,125,10,133,10,141,10,149,10,157,10,165,10,173,10,181,10,189,10,197,10,205,10,213,10,221,10,229,10,237,10,245,10,253,10,5,11,13,11,21,11,29,11,37,11,45,11,53,11,61,11,69,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,141,11,149,11,157,11,165,11,173,11,181,11,189,11,197,11,205,11,213,11,221,11,229,11,237,11,245,11,253,11,5,12,13,12,21,12,29,12,37,12,45,12,53,12,61,12,69,12,77,12,85,12,93,12,101,12,109,12,117,12,125,12,133,12,141,12,149,12,157,12,165,12,173,12,181,12,189,12,197,12,205,12,213,12,221,12,229,12,237,12,245,12,253,12,5,13,13,13,21,13,29,13,37,13,45,13,53,13,61,13,69,13,77,13,85,13,93,13,101,13,109,13,117,13,125,13,133,13,141,13,149,13,157,13,165,13,173,13,181,13,189,13,197,13,205,13,213,13,221,13,229,13,237,13,245,13,253,13,5,14,13,14,21,14,29,14,37,14,45,14,53,14,61,14,69,14,77,14,85,14,93,14,101,14,109,14,117,14,125,14,133,14,141,14,149,14,157,14,165,14,173,14,181,14,189,14,197,14,205,14,213,14,221,14,229,14,237,14,245,14,253,14,5,15,13,15,21,15,29,15,37,15,45,15,53,15,61,15,69,15,77,15,85,15,93,15,101,15,109,15,117,15,125,15,133,15,141,15,149,15,157,15,165,15,173,15,181,15,189,15,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,5,16,13,16,21,16,29,16,37,16,45,16,53,16,61,16,69,16,77,16,85,16,93,16,101,16,109,16,117,16,125,16,133,16,141,16,149,16,157,16,165,16,173,16,181,16,189,16,197,16,205,16,213,16,221,16,229,16,237,16,245,16,253,16,5,17,13,17,21,17,29,17,37,17,45,17,53,17,61,17,69,17,77,17,85,17,93,17,101,17,109,17,117,17,125,17,133,17,141,17,149,17,157,17,165,17,173,17,181,17,189,17,197,17,205,17,213,17,221,17,229,17,237,17,245,17,253,17,5,18,13,18,21,18,29,18,37,18,45,18,53,18,61,18,69,18,77,18,85,18,93,18,101,18,109,18,117,18,125,18,133,18,141,18,149,18,157,18,165,18,173,18,181,18,189,18,197,18,205,18,213,18,221,18,229,18,237,18,245,18,253,18,5,19,13,19,21,19,29,19,37,19,45,19,53,19,61,19,69,19,77,19,85,19,93,19,101,19,109,19,117,19,125,19,133,19,141,19,149,19,157,19,165,19,173,19,181,19,189,19,197,19,205,19,213,19,221,19,229,19,237,19,245,19,253,19,5,20,13,20,21,20,29,20,37,20,45,20,53,20,61,20,69,20,77,20,85,20,93,20,101,20,109,20,117,20,125,20,133,20,141,20,149,20,157,20,165,20,173,20,181,20,189,20,197,20,205,20,213,20,221,20,229,20,237,20,245,20,253,20,5,21,13,21,21,21,29,21,37,21,45,21,53,21,61,21,69,21,77,21,85,21,93,21,101,21,109,21,117,21,125,21,133,21,141,21,149,21,157,21,165,21,173,21,181,21,189,21,197,21,205,21,213,21,221,21,229,21,237,21,245,21,253,21,5,22,13,22,21,22,29,22,37,22,45,22,53,22,61,22,69,22,77,22,85,22,93,22,101,22,109,22,117,22,125,22,133,22,141,22,149,22,157,22,165,22,173,22,181,22,189,22,197,22,205,22,213,22,221,22,229,22,237,22,245,22,253,22,5,23,13,23,21,23,29,23,37,23,45,23,53,23,61,23,69,23,77,23,85,23,93,23,101,23,109,23,117,23,125,23,133,23,141,23,149,23,157,23,165,23,173,23,181,23,189,23,197,23,205,23,213,23,221,23,229,23,237,23,245,23,253,23,5,24,13,24,21,24,29,24,37,24,45,24,53,24,61,24,69,24,77,24,85,24,93,24,101,24,109,24,117,24,125,24,133,24,141,24,149,24,157,24,165,24,173,24,181,24,189,24,197,24,205,24,213,24,221,24,229,24,237,24,245,24,253,24,5,25,13,25,21,25,29,25,37,25,45,25,53,25,61,25,69,25,77,25,85,25,93,25,101,25,109,25,117,25,125,25,133,25,141,25,149,25,157,25,165,25,173,25,181,25,189,25,197,25,205,25,213,25,221,25,229,25,237,25,245,25,253,25,5,26,13,26,21,26,29,26,37,26,45,26,53,26,61,26,69,26,77,26,85,26,93,26,101,26,109,26,117,26,125,26,133,26,141,26,149,26,157,26,165,26,173,26,181,26,189,26,197,26,205,26,213,26,221,26,229,26,237,26,245,26,253,26,5,27,13,27,21,27,29,27,37,27,45,27,53,27,61,27,69,27,77,27,85,27,93,27,101,27,109,27,117,27,125,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,176,0,48,0,48,0,168,0,201,34,209,34,215,34,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,27,141,27,149,27,157,27,165,27,173,27,181,27,189,27,197,27,205,27,213,27,221,27,229,27,237,27,245,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,96,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,188,8,246,8,54,9,118,9,182,9,240,9,48,10,111,10,174,10,238,10,45,11,107,11,169,11,233,11,39,12,102,12,166,12,223,12,27,13,90,13,154,13,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,218,13,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,1,28,9,28,17,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,24,28,48,0,30,28,48,0,35,28,48,0,48,0,48,0,48,0,41,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,44,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,28,48,0,48,0,48,0,48,0,48,0,48,0,57,28,63,28,48,0,66,28,48,0,48,0,72,28,48,0,48,0,48,0,48,0,78,28,82,28,48,0,48,0,48,0,48,0,48,0,48,0,87,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,93,28,101,28,107,28,113,28,117,28,124,28,131,28,136,28,144,28,48,0,150,28,48,0,158,28,48,0,163,28,48,0,171,28,177,28,48,0,184,28,48,0,189,28,48,0,193,28,201,28,204,28,48,0,212,28,220,28,48,0,48,0,227,28,48,0,232,28,48,0,240,28,48,0,48,0,48,0,246,28,254,28,48,0,48,0,48,0,6,29,13,29,48,0,48,0,48,0,48,0,48,0,48,0,15,29,48,0,48,0,48,0,23,29,48,0,48,0,48,0,48,0,48,0,26,29,32,29,48,0,48,0,39,29,43,29,50,29,48,0,48,0,58,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,61,29,48,0,48,0,69,29,48,0,48,0,48,0,75,29,78,29,86,29,48,0,90,29,98,29,48,0,48,0,48,0,48,0,48,0,48,0,106,29,48,0,48,0,114,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,122,29,48,0,48,0,128,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,29,48,0,48,0,48,0,137,29,48,0,48,0,48,0,48,0,48,0,145,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,151,29,48,0,48,0,48,0,154,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,29,48,0,48,0,48,0,48,0,169,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,172,29,48,0,48,0,48,0,48,0,48,0,48,0,178,29,48,0,48,0,48,0,48,0,183,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,189,29,48,0,48,0,48,0,48,0,48,0,196,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,201,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,29,48,0,48,0,48,0,214,29,48,0,217,29,225,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,29,238,29,48,0,241,29,249,29,48,0,48,0,48,0,48,0,48,0,254,29,6,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,11,30,19,30,48,0,23,30,48,0,30,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,34,30,48,0,48,0,48,0,41,30,48,0,48,0,49,30,48,0,48,0,48,0,50,30,48,0,48,0,48,0,48,0,58,30,64,30,72,30,48,0,79,30,48,0,48,0,48,0,48,0,48,0,48,0,87,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,94,30,48,0,101,30,109,30,48,0,116,30,48,0,48,0,48,0,121,30,48,0,48,0,48,0,48,0,48,0,48,0,125,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,136,30,48,0,48,0,48,0,48,0,48,0,48,0,142,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,149,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,154,30,48,0,159,30,48,0,48,0,163,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,30,48,0,48,0,176,30,48,0,48,0,48,0,180,30,48,0,48,0,48,0,187,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,193,30,48,0,196,30,48,0,48,0,203,30,48,0,48,0,48,0,48,0,48,0,209,30,48,0,48,0,48,0,48,0,48,0,217,30,48,0,48,0,48,0,48,0,225,30,48,0,48,0,229,30,48,0,48,0,48,0,236,30,48,0,244,30,246,30,254,30,3,31,48,0,11,31,15,31,20,31,48,0,48,0,26,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,32,31,48,0,36,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,41,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,31,52,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,31,48,0,48,0,48,0,61,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,73,31,48,0,81,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,88,31,48,0,48,0,48,0,48,0,48,0,48,0,90,31,48,0,48,0,48,0,98,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,103,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,110,31,48,0,118,31,48,0,48,0,122,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,31,48,0,48,0,48,0,131,31,48,0,137,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,144,31,48,0,147,31,48,0,48,0,48,0,155,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,160,31,48,0,48,0,48,0,48,0,164,31,48,0,48,0,48,0,48,0,171,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,31,48,0,48,0,183,31,48,0,48,0,48,0,48,0,48,0,188,31,195,31,198,31,48,0,48,0,48,0,204,31,48,0,48,0,48,0,211,31,48,0,219,31,48,0,225,31,48,0,232,31,48,0,237,31,244,31,248,31,48,0,48,0,48,0,48,0,48,0,48,0,253,31,48,0,48,0,48,0,48,0,48,0,48,0,4,32,48,0,48,0,10,32,48,0,48,0,18,32,48,0,48,0,48,0,26,32,48,0,48,0,48,0,34,32,48,0,48,0,48,0,48,0,39,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,45,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,52,32,48,0,48,0,60,32,48,0,66,32,48,0,48,0,48,0,71,32,48,0,48,0,48,0,48,0,48,0,76,32,48,0,48,0,48,0,48,0,48,0,83,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,87,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,98,32,48,0,48,0,48,0,48,0,104,32,48,0,48,0,108,32,48,0,115,32,48,0,48,0,48,0,48,0,48,0,48,0,123,32,48,0,48,0,130,32,48,0,138,32,141,32,149,32,154,32,48,0,48,0,48,0,48,0,161,32,48,0,167,32,48,0,48,0,48,0,48,0,48,0,171,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,176,32,183,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,185,32,48,0,192,32,198,32,48,0,206,32,48,0,48,0,48,0,48,0,211,32,216,32,48,0,224,32,48,0,48,0,48,0,227,32,48,0,234,32,48,0,240,32,48,0,48,0,48,0,247,32,48,0,48,0,254,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,10,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,21,33,48,0,48,0,48,0,28,33,48,0,32,33,48,0,48,0,48,0,48,0,40,33,48,0,48,0,48,0,47,33,48,0,48,0,48,0,48,0,48,0,49,33,57,33,48,0,48,0,48,0,48,0,64,33,48,0,48,0,48,0,48,0,48,0,67,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,74,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,80,33,48,0,88,33,93,33,48,0,97,33,105,33,113,33,48,0,48,0,118,33,124,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,33,138,33,48,0,48,0,48,0,142,33,149,33,48,0,48,0,48,0,48,0,48,0,153,33,48,0,160,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,33,48,0,48,0,48,0,48,0,171,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,177,33,48,0,48,0,184,33,48,0,48,0,48,0,192,33,48,0,48,0,198,33,203,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,33,48,0,48,0,48,0,48,0,48,0,48,0,212,33,48,0,219,33,48,0,48,0,226,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,232,33,48,0,48,0,238,33,48,0,48,0,48,0,245,33,247,33,48,0,254,33,48,0,6,34,48,0,48,0,48,0,12,34,48,0,18,34,48,0,48,0,48,0,48,0,48,0,24,34,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,31,34,48,0,39,34,43,34,49,34,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,34,65,34,73,34,81,34,89,34,97,34,105,34,113,34,121,34,129,34,137,34,145,34,153,34,161,34,169,34,177,34,185,34,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,41,0,202,65,39,0,202,130,39,0,202,195,39,0,202,4,40,0,202,69,40,0,202,134,40,0,202,199,40,0,202,8,41,0,202,73,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,66,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,98,66,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,66,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,222,251,192,0,0,0,194,5,220,251,194,5,221,251,5,252,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,241,192,0,0,0,5,5,80,208,192,0,0,0,5,5,124,175,192,0,0,0,5,5,148,163,192,0,0,0,5,5,199,214,5,5,200,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,230,5,5,196,248,192,0,0,0,6,5,61,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,219,192,0,0,0,5,5,45,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,227,192,0,0,0,5,5,34,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,230,192,0,0,0,5,5,54,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,225,5,5,248,225,192,0,0,0,5,5,183,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,174,5,5,7,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,210,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,82,239,6,5,128,194,6,5,188,221,6,5,64,168,7,5,209,239,6,5,114,207,9,5,67,239,6,5,210,179,7,5,83,230,6,5,25,239,6,5,217,230,7,5,0,128,6,5,81,208,6,5,85,171,6,5,50,166,6,5,123,202,6,5,149,210,6,5,125,175,6,5,22,187,6,5,248,163,6,5,220,164,6,5,145,173,6,5,104,213,8,5,225,226,6,5,149,163,6,5,125,203,6,5,26,225,6,5,101,235,6,5,93,242,6,5,142,195,6,5,255,245,7,5,237,181,6,5,22,227,6,5,140,218,6,5,246,236,6,5,165,212,6,5,47,175,7,5,212,184,6,5,204,231,6,5,173,171,6,5,34,235,6,5,201,214,6,5,26,242,6,5,183,226,6,5,185,223,6,5,37,228,6,5,45,226,6,5,186,194,6,5,124,202,6,5,159,205,6,5,151,192,6,5,139,241,6,5,172,194,6,5,204,243,6,5,216,194,6,5,254,239,6,5,187,194,6,5,146,202,6,5,38,228,6,5,79,223,6,5,241,215,6,5,130,191,6,5,53,199,7,5,14,228,6,5,55,218,6,5,212,168,7,5,19,247,6,5,197,175,6,5,161,205,6,5,146,173,6,5,12,245,7,5,8,230,6,5,188,248,8,5,197,248,7,5,80,172,6,5,164,210,6,5,141,218,6,5,73,175,6,5,59,229,6,5,13,245,6,5,221,164,6,5,19,170,6,5,23,227,6,5,21,209,7,5,208,229,7,5,178,199,6,5,219,219,6,5,186,174,6,5,155,241,6,5,57,167,6,5,123,168,6,5,240,240,6,5,46,184,6,5,100,212,6,5,132,217,6,5,48,248,6,5,103,193,6,5,152,245,6,5,102,192,7,5,8,229,6,5,24,250,6,5,71,181,6,5,22,168,6,5,255,182,6,5,36,163,6,5,155,163,6,5,234,167,6,5,249,171,6,5,83,172,6,5,20,170,6,5,10,227,6,5,227,226,6,5,30,227,6,5,33,230,6,5,83,197,6,5,55,217,6,5,26,187,6,5,165,221,6,5,68,171,6,5,86,171,6,5,230,172,6,5,88,247,6,5,15,244,6,5,6,248,6,5,193,185,6,5,26,239,6,5,117,185,6,5,53,239,6,5,51,248,6,5,56,230,6,5,179,224,6,5,189,231,6,5,178,218,6,5,157,204,6,5,177,227,6,5,64,226,6,5,254,219,6,5,172,192,6,5,222,235,6,5,46,234,6,5,217,198,6,5,166,226,6,5,78,217,6,5,139,216,6,5,87,239,6,5,22,241,6,5,78,205,6,5,27,204,6,5,157,242,6,5,35,193,6,5,198,175,6,5,12,227,6,5,184,218,6,5,201,163,6,5,84,223,7,5,116,232,6,5,217,232,6,5,137,228,6,5,174,223,6,5,244,215,6,5,183,224,6,5,250,225,6,5,22,240,6,5,71,242,6,5,234,165,6,5,250,186,7,5,164,205,6,5,35,221,6,5,163,170,6,5,195,174,6,5,43,187,6,5,81,222,6,5,8,248,6,5,89,211,6,5,153,172,6,5,217,171,6,5,165,191,6,5,12,246,6,5,149,204,6,5,118,243,6,5,88,241,6,5,199,173,6,5,154,172,6,5,241,226,6,5,17,228,6,5,41,216,6,5,34,169,6,5,44,193,6,5,4,192,6,5,143,165,6,5,202,175,6,5,41,225,6,5,170,191,6,5,13,194,6,5,189,247,6,5,33,184,6,5,231,189,6,5,18,190,6,5,182,169,6,5,23,169,6,5,49,201,6,5,110,229,6,5,207,197,6,5,174,218,6,5,210,171,6,5,204,177,6,5,57,193,6,5,114,229,6,5,219,164,6,5,218,208,6,5,77,223,6,5,248,190,6,5,241,193,6,5,233,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,225,226,6,5,88,184,6,5,207,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,5,82,239,8,5,67,239,8,5,79,236,7,5,157,235,7,5,252,228,8,5,193,222,7,5,226,213,6,5,66,203,6,5,209,239,6,5,57,166,6,5,187,177,7,5,61,181,6,5,66,175,6,5,83,230,198,131,31,0,198,227,31,0,198,67,32,0,198,163,32,0,198,3,33,0,198,99,33,0,198,195,33,0,198,35,34,0,198,131,34,0,198,227,34,0,198,67,35,0,198,163,35,0,198,3,36,0,198,99,36,0,197,227,35,0,198,195,36,0,198,35,37,0,198,131,37,0,198,227,37,0,197,67,36,0,198,67,38,0,198,163,38,0,197,163,36,0,197,3,37,0,198,3,39,0,198,99,39,0,198,195,39,0,198,35,40,0,197,99,37,0,198,131,40,0,197,195,37,0,198,227,40,0,197,35,38,0,198,67,41,0,197,131,38,0,197,227,38,0,6,5,62,247,6,5,95,242,6,5,19,247,6,5,95,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,82,239,7,5,67,239,7,5,79,236,6,5,157,235,6,5,43,245,6,5,99,188,6,5,113,208,6,5,0,128,6,5,141,204,6,5,225,226,7,5,197,248,6,5,178,199,6,5,208,229,6,5,80,172,6,5,164,205,6,5,237,181,6,5,8,230,6,5,136,221,7,5,68,242,6,5,188,227,6,5,26,172,6,5,94,179,6,5,11,234,6,5,226,221,6,5,168,185,6,5,95,171,6,5,95,183,6,5,212,184,6,5,93,227,6,5,19,242,6,5,233,243,6,5,214,221,6,5,104,216,6,5,236,214,6,5,45,214,6,5,112,221,6,5,252,228,7,5,193,222,6,5,226,213,7,5,251,232,7,5,94,242,6,5,88,239,6,5,87,233,6,5,58,217,6,5,227,204,6,5,250,208,6,5,135,231,6,5,254,213,6,5,83,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,39,0,197,130,39,0,197,194,39,0,197,2,40,0,197,66,40,0,197,130,40,0,197,194,40,0,197,2,41,0,197,66,41,0,197,131,41,0,197,227,41,0,197,67,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,42,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,35,45,0,197,131,45,0,197,227,45,0,197,67,46,0,197,163,46,0,197,3,47,0,197,99,47,0,197,195,47,0,197,35,48,0,197,131,48,0,197,227,48,0,197,67,49,0,197,163,49,0,197,3,50,0,197,99,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,50,0,197,2,51,0,197,66,51,0,197,130,51,0,197,196,51,0,197,66,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,197,130,53,0,197,194,53,0,197,2,54,0,197,66,54,0,197,131,54,0,197,227,54,0,197,67,55,0,197,163,55,0,197,3,56,0,197,99,56,0,197,195,56,0,197,35,57,0,197,131,57,0,197,227,57,0,197,67,58,0,197,163,58,0,197,3,59,0,197,99,59,0,197,195,59,0,197,35,60,0,197,131,60,0,197,227,60,0,197,67,61,0,197,163,61,0,197,3,62,0,197,99,62,0,192,0,0,0,5,5,212,209,5,5,118,181,192,0,0,0,192,0,0,0,5,5,46,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,218,192,0,0,0,5,5,5,189,192,0,0,0,192,0,0,0,5,5,18,216,5,5,208,220,5,5,76,175,5,5,80,245,5,5,51,167,192,0,0,0,192,0,0,0,5,5,30,169,5,5,166,210,5,5,7,240,192,0,0,0,5,5,42,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,196,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,171,5,5,54,240,5,5,53,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,208,192,0,0,0,192,0,0,0,5,5,74,180,5,5,173,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,179,192,0,0,0,192,0,0,0,5,5,190,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,173,192,0,0,0,5,5,143,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,212,192,0,0,0,192,0,0,0,5,5,57,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,191,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,236,192,0,0,0,5,5,146,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,213,192,0,0,0,5,5,164,207,192,0,0,0,192,0,0,0,5,5,176,163,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,223,192,0,0,0,192,0,0,0,5,5,197,198,5,5,16,248,192,0,0,0,5,5,20,194,5,5,104,240,5,5,152,217,5,5,236,194,5,5,7,186,5,5,154,180,5,5,12,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,197,5,5,249,191,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,238,192,0,0,0,192,0,0,0,5,5,79,217,192,0,0,0,5,5,108,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,199,5,5,36,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,243,5,5,165,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,214,192,0,0,0,5,5,223,237,192,0,0,0,192,0,0,0,5,5,13,196,5,5,4,199,192,0,0,0,5,5,200,213,192,0,0,0,192,0,0,0,5,5,74,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,202,5,5,207,199,5,5,47,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,193,192,0,0,0,192,0,0,0,5,5,50,217,192,0,0,0,5,5,20,233,5,5,144,240,5,5,192,233,192,0,0,0,5,5,149,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,164,192,0,0,0,5,5,122,247,5,5,134,217,192,0,0,0,192,0,0,0,5,5,216,210,192,0,0,0,192,0,0,0,5,5,249,164,192,0,0,0,5,5,117,206,192,0,0,0,5,5,138,238,192,0,0,0,192,0,0,0,5,5,157,220,5,5,227,179,5,5,235,206,192,0,0,0,5,5,3,233,5,5,124,166,5,5,141,203,5,5,56,238,5,5,185,232,5,5,168,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,225,5,5,231,213,5,5,102,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,194,5,5,24,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,197,192,0,0,0,5,5,17,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,166,5,5,217,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,178,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,167,192,0,0,0,5,5,142,203,5,5,94,239,5,5,73,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,191,192,0,0,0,192,0,0,0,5,5,93,234,192,0,0,0,5,5,188,212,5,5,200,173,192,0,0,0,5,5,201,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,179,5,5,65,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,188,5,5,229,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,172,192,0,0,0,5,5,116,220,192,0,0,0,192,0,0,0,5,5,76,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,238,192,0,0,0,5,5,180,210,192,0,0,0,5,5,215,234,192,0,0,0,192,0,0,0,5,5,69,230,192,0,0,0,5,5,165,169,5,5,14,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,248,5,5,38,219,5,5,132,247,5,5,239,199,5,5,28,171,5,5,41,184,5,5,230,246,5,5,53,171,5,5,9,184,5,5,221,211,5,5,158,232,5,5,213,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,197,192,0,0,0,192,0,0,0,5,5,198,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,175,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,189,192,0,0,0,5,5,240,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,202,5,5,222,164,192,0,0,0,5,5,114,230,5,5,30,201,5,5,6,173,5,5,160,191,5,5,22,196,5,5,207,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,225,5,5,150,170,5,5,245,190,192,0,0,0,5,5,249,243,5,5,130,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,187,192,0,0,0,5,5,58,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,187,5,5,26,198,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,233,5,5,203,174,5,5,104,209,5,5,196,163,5,5,189,223,5,5,176,233,5,5,196,170,5,5,63,198,5,5,119,213,5,5,10,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,223,5,5,25,210,5,5,93,200,192,0,0,0,5,5,195,247,5,5,110,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,240,5,5,120,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,185,192,0,0,0,192,0,0,0,5,5,191,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,199,192,0,0,0,192,0,0,0,5,5,205,193,5,5,83,188,192,0,0,0,192,0,0,0,5,5,191,231,5,5,3,165,5,5,155,245,192,0,0,0,5,5,180,187,192,0,0,0,192,0,0,0,5,5,74,196,192,0,0,0,5,5,195,197,5,5,116,243,192,0,0,0,192,0,0,0,5,5,139,215,5,5,159,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,167,192,0,0,0,192,0,0,0,5,5,36,222,192,0,0,0,192,0,0,0,5,5,231,198,192,0,0,0,5,5,71,166,5,5,220,218,5,5,248,178,5,5,128,178,5,5,10,220,192,0,0,0,5,5,6,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,203,5,5,158,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,237,192,0,0,0,192,0,0,0,5,5,165,203,5,5,99,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,199,192,0,0,0,5,5,181,241,5,5,252,233,5,5,24,194,5,5,113,205,5,5,47,205,5,5,146,175,5,5,233,205,5,5,51,169,5,5,101,200,192,0,0,0,192,0,0,0,5,5,113,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,210,192,0,0,0,5,5,148,182,192,0,0,0,192,0,0,0,5,5,61,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,186,192,0,0,0,5,5,223,233,192,0,0,0,192,0,0,0,5,5,126,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,214,5,5,125,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,210,192,0,0,0,5,5,93,197,5,5,81,174,192,0,0,0,192,0,0,0,5,5,196,215,5,5,36,194,5,5,104,197,5,5,122,212,5,5,126,198,5,5,210,182,5,5,85,163,5,5,79,228,5,5,238,164,5,5,19,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,195,5,5,222,236,192,0,0,0,192,0,0,0,5,5,203,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,186,192,0,0,0,5,5,217,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,247,5,5,117,179,5,5,158,224,5,5,137,170,5,5,11,172,5,5,230,200,5,5,2,247,5,5,181,184,5,5,231,200,5,5,32,198,5,5,170,206,5,5,104,163,5,5,155,215,5,5,94,187,5,5,234,205,192,0,0,0,5,5,219,170,5,5,98,168,5,5,228,197,5,5,47,244,192,0,0,0,5,5,224,215,5,5,188,236,5,5,100,246,5,5,200,223,5,5,4,213,5,5,243,205,5,5,139,234,5,5,166,197,5,5,87,173,5,5,224,227,5,5,145,189,192,0,0,0,5,5,150,178,5,5,149,208,5,5,10,169,5,5,235,248,5,5,126,163,192,0,0,0,5,5,135,200,5,5,61,177,5,5,81,243,5,5,106,207,5,5,113,204,5,5,121,183,5,5,214,187,5,5,157,247,5,5,235,180,5,5,68,181,5,5,52,245,5,5,182,201,5,5,190,214,5,5,254,197,192,0,0,0,5,5,17,181,5,5,89,221,192,0,0,0,5,5,37,201,5,5,230,174,192,0,0,0,192,0,0,0,5,5,135,182,192,0,0,0,5,5,175,230,5,5,25,204,192,0,0,0,5,5,23,216,192,0,0,0,192,0,0,0,5,5,92,249,5,5,125,207,5,5,109,199,192,0,0,0,5,5,158,164,5,5,86,170,192,0,0,0,5,5,185,192,5,5,53,246,192,0,0,0,5,5,255,169,5,5,171,235,5,5,241,165,5,5,189,189,5,5,163,211,192,0,0,0,192,0,0,0,5,5,167,191,5,5,135,219,5,5,66,191,5,5,222,166,5,5,54,231,5,5,11,210,5,5,188,187,5,5,222,194,5,5,142,215,5,5,120,213,5,5,253,215,192,0,0,0,5,5,31,184,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,214,5,5,195,187,5,5,34,174,5,5,179,234,5,5,37,222,5,5,0,150,5,5,15,233,5,5,141,219,5,5,26,233,5,5,110,197,5,5,70,202,192,0,0,0,5,5,207,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,181,5,5,100,215,5,5,231,242,5,5,72,180,5,5,61,179,5,5,215,176,5,5,154,207,5,5,18,239,5,5,93,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,203,192,0,0,0,192,0,0,0,5,5,237,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,186,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,175,192,0,0,0,5,5,92,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,205,5,5,122,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,186,5,5,127,190,5,5,202,228,192,0,0,0,5,5,142,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,215,192,0,0,0,192,0,0,0,5,5,5,191,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,227,192,0,0,0,5,5,94,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,229,5,5,111,186,192,0,0,0,5,5,217,212,192,0,0,0,5,5,132,208,192,0,0,0,5,5,193,188,5,5,245,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,169,5,5,203,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,209,192,0,0,0,5,5,129,166,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,235,5,5,31,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,217,192,0,0,0,5,5,118,205,192,0,0,0,192,0,0,0,5,5,163,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,185,192,0,0,0,192,0,0,0,5,5,78,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,240,5,5,119,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,187,192,0,0,0,5,5,120,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,243,192,0,0,0,5,5,208,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,174,5,5,16,200,192,0,0,0,5,5,130,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,179,5,5,110,198,192,0,0,0,192,0,0,0,5,5,228,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,185,192,0,0,0,192,0,0,0,5,5,160,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,181,192,0,0,0,5,5,232,163,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,230,192,0,0,0,5,5,87,163,192,0,0,0,192,0,0,0,5,5,210,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,235,5,5,156,204,5,5,221,168,192,0,0,0,192,0,0,0,5,5,169,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,239,192,0,0,0,192,0,0,0,5,5,182,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,170,192,0,0,0,5,5,207,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,175,5,5,230,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,166,192,0,0,0,192,0,0,0,5,5,47,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,178,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,242,192,0,0,0,192,0,0,0,5,5,204,192,5,5,43,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,179,5,5,14,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,173,5,5,111,242,5,5,204,238,5,5,77,182,5,5,228,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,217,192,0,0,0,192,0,0,0,5,5,218,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,213,192,0,0,0,5,5,141,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,238,192,0,0,0,5,5,136,212,192,0,0,0,5,5,221,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,238,192,0,0,0,5,5,128,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,193,192,0,0,0,5,5,160,204,192,0,0,0,192,0,0,0,5,5,208,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,222,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,185,5,5,137,230,5,5,61,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,225,5,5,62,208,192,0,0,0,5,5,81,246,5,5,111,240,5,5,147,219,5,5,184,242,192,0,0,0,5,5,83,236,5,5,210,190,5,5,200,168,5,5,223,219,5,5,97,198,5,5,118,248,5,5,106,175,5,5,240,219,5,5,177,172,5,5,162,227,5,5,133,189,5,5,67,179,5,5,179,211,5,5,208,170,5,5,107,241,5,5,11,164,5,5,51,194,5,5,126,193,5,5,116,183,5,5,186,191,192,0,0,0,5,5,3,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,179,192,0,0,0,5,5,22,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,200,192,0,0,0,5,5,10,236,5,5,123,221,192,0,0,0,192,0,0,0,5,5,107,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,213,5,5,254,182,192,0,0,0,5,5,56,236,5,5,94,207,192,0,0,0,5,5,240,227,5,5,164,179,5,5,78,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,229,5,5,147,189,5,5,129,185,5,5,47,206,5,5,157,186,5,5,35,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,180,5,5,109,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,230,192,0,0,0,5,5,247,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,209,5,5,239,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,174,5,5,42,239,192,0,0,0,192,0,0,0,5,5,67,181,5,5,119,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,185,192,0,0,0,192,0,0,0,5,5,59,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,184,5,5,136,181,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,195,5,5,151,241,192,0,0,0,192,0,0,0,5,5,242,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,240,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,247,5,5,42,242,5,5,150,177,5,5,116,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,219,5,5,18,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,202,5,5,44,222,5,5,23,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,247,5,5,20,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,247,5,5,52,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,170,5,5,51,168,5,5,247,170,5,5,78,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,175,5,5,203,173,192,0,0,0,5,5,17,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,171,192,0,0,0,5,5,21,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,232,5,5,195,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,187,192,0,0,0,5,5,215,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,219,192,0,0,0,192,0,0,0,5,5,253,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,178,192,0,0,0,5,5,84,238,192,0,0,0,5,5,82,233,5,5,193,196,192,0,0,0,192,0,0,0,5,5,252,243,192,0,0,0,5,5,33,236,5,5,218,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,208,5,5,38,203,192,0,0,0,5,5,130,215,5,5,156,170,192,0,0,0,5,5,99,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,214,192,0,0,0,192,0,0,0,5,5,16,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,207,192,0,0,0,5,5,120,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,174,5,5,198,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,241,5,5,170,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,183,5,5,178,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,202,192,0,0,0,192,0,0,0,5,5,135,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,180,192,0,0,0,5,5,183,223,192,0,0,0,192,0,0,0,5,5,127,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,231,5,5,219,248,5,5,151,207,5,5,228,195,5,5,42,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,243,5,5,154,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,249,192,0,0,0,5,5,173,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,195,5,5,25,194,5,5,225,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,178,192,0,0,0,192,0,0,0,5,5,94,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,215,192,0,0,0,5,5,170,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,234,5,5,193,210,192,0,0,0,5,5,118,228,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,246,192,0,0,0,5,5,151,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,215,192,0,0,0,192,0,0,0,5,5,128,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,200,192,0,0,0,5,5,241,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,176,5,5,125,245,5,5,234,209,192,0,0,0,5,5,79,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,176,192,0,0,0,5,5,112,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,246,5,5,93,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,223,5,5,87,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,237,192,0,0,0,5,5,34,164,5,5,33,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,163,5,5,202,164,192,0,0,0,5,5,243,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,174,192,0,0,0,192,0,0,0,5,5,41,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,222,192,0,0,0,192,0,0,0,5,5,252,224,5,5,253,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,165,5,5,24,191,192,0,0,0,5,5,27,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,245,5,5,221,172,192,0,0,0,192,0,0,0,5,5,8,236,192,0,0,0,192,0,0,0,5,5,236,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,247,192,0,0,0,192,0,0,0,5,5,0,153,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,228,192,0,0,0,5,5,229,194,5,5,200,239,5,5,249,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,249,192,0,0,0,5,5,197,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,181,192,0,0,0,5,5,180,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,215,192,0,0,0,5,5,107,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,193,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,5,5,187,177,5,5,117,195,5,5,113,208,5,5,251,228,5,5,225,213,5,5,103,198,5,5,231,246,5,5,40,221,5,5,79,236,5,5,252,228,5,5,226,213,5,5,194,201,5,5,118,166,5,5,255,247,5,5,190,171,5,5,231,191,5,5,52,224,5,5,53,224,5,5,113,222,5,5,93,209,5,5,195,167,5,5,26,227,5,5,25,227,5,5,213,209,5,5,57,166,5,5,78,241,5,5,75,235,5,5,222,178,5,5,103,235,5,5,85,225,5,5,118,177,5,5,214,209,5,5,55,189,5,5,119,177,5,5,69,242,5,5,56,189,5,5,156,242,5,5,83,166,5,5,123,236,5,5,128,194,5,5,119,204,5,5,202,191,5,5,220,240,5,5,56,211,5,5,193,222,5,5,125,202,5,5,203,203,5,5,185,173,5,5,96,194,5,5,71,226,5,5,124,224,5,5,220,188,5,5,29,222,5,5,188,221,5,5,75,197,5,5,184,246,5,5,225,175,5,5,115,246,5,5,189,221,5,5,115,206,5,5,29,187,5,5,20,207,5,5,64,168,5,5,56,174,5,5,126,239,5,5,250,239,5,5,11,183,5,5,133,245,5,5,142,204,5,5,143,204,5,5,249,181,5,5,158,169,5,5,252,239,5,5,83,239,5,5,54,218,5,5,240,244,5,5,105,219,5,5,214,198,5,5,120,172,5,5,13,185,5,5,159,243,5,5,156,168,5,5,106,167,5,5,157,209,5,5,40,199,5,5,194,193,5,5,92,225,5,5,98,225,5,5,209,239,5,5,202,243,5,5,48,241,5,5,124,171,5,5,141,204,5,5,249,208,5,5,70,241,5,5,45,213,5,5,38,216,5,5,232,191,5,5,144,204,5,5,227,213,5,5,50,199,5,5,58,229,5,5,223,175,5,5,11,227,5,5,201,201,5,5,127,183,5,5,254,202,5,5,39,207,5,5,228,226,5,5,46,170,5,5,215,198,5,5,168,169,5,5,186,190,5,5,105,231,5,5,213,230,5,5,57,217,5,5,214,242,5,5,153,174,5,5,122,227,5,5,229,182,5,5,114,192,5,5,221,236,5,5,170,247,5,5,3,235,5,5,165,219,5,5,120,192,5,5,216,218,5,5,219,193,5,5,122,192,5,5,188,190,5,5,8,189,5,5,102,240,5,5,114,207,5,5,31,185,5,5,60,169,5,5,2,248,5,5,62,221,5,5,35,227,5,5,39,227,5,5,67,239,5,5,201,225,5,5,154,247,5,5,101,196,5,5,153,247,5,5,126,249,5,5,51,199,5,5,154,208,5,5,43,245,5,5,114,206,5,5,156,235,5,5,20,237,5,5,173,192,5,5,174,192,5,5,21,241,5,5,242,213,5,5,24,241,5,5,160,208,5,5,26,241,5,5,51,202,5,5,210,179,5,5,78,247,5,5,229,195,5,5,52,179,5,5,236,203,5,5,193,197,5,5,6,240,5,5,121,224,5,5,192,198,5,5,62,172,5,5,138,241,5,5,76,216,5,5,78,206,5,5,145,181,5,5,68,189,5,5,77,216,5,5,81,206,5,5,86,241,5,5,200,210,5,5,77,163,5,5,113,242,5,5,71,214,5,5,13,176,5,5,125,188,5,5,92,178,5,5,169,170,5,5,83,230,5,5,84,230,5,5,39,202,5,5,250,202,5,5,79,247,5,5,253,239,5,5,177,228,5,5,85,230,5,5,11,185,5,5,188,177,5,5,20,232,5,5,182,205,5,5,211,168,5,5,16,224,5,5,0,129,5,5,33,221,5,5,160,205,5,5,204,203,5,5,51,166,5,5,173,230,5,5,74,235,5,5,148,172,5,5,87,236,5,5,191,190,5,5,52,166,5,5,110,234,5,5,166,231,5,5,27,227,5,5,30,179,5,5,41,221,5,5,188,174,5,5,34,215,5,5,35,215,5,5,250,181,5,5,127,201,5,5,161,182,5,5,108,230,5,5,51,210,5,5,132,192,5,5,131,191,5,5,65,163,5,5,77,175,5,5,174,189,5,5,211,239,5,5,5,224,5,5,2,225,5,5,197,235,5,5,5,229,5,5,127,239,5,5,81,172,5,5,178,170,5,5,109,230,5,5,67,203,5,5,6,224,5,5,57,244,5,5,114,210,5,5,239,222,5,5,23,168,5,5,187,245,5,5,45,245,5,5,77,205,5,5,86,203,5,5,209,241,5,5,187,173,5,5,111,234,5,5,111,230,5,5,82,247,5,5,127,173,5,5,148,176,5,5,166,173,5,5,194,222,5,5,250,208,5,5,245,166,5,5,155,247,5,5,96,177,5,5,203,178,5,5,83,245,5,5,8,240,5,5,17,216,5,5,230,195,5,5,86,239,5,5,41,202,5,5,54,238,5,5,46,245,5,5,151,202,5,5,59,174,5,5,121,172,5,5,236,214,5,5,207,205,5,5,196,167,5,5,2,176,5,5,18,174,5,5,110,180,5,5,240,222,5,5,7,242,5,5,179,199,5,5,66,200,5,5,3,248,5,5,229,234,5,5,52,226,5,5,88,236,5,5,48,246,5,5,53,226,5,5,173,223,5,5,241,240,5,5,178,215,5,5,228,228,5,5,237,224,5,5,192,190,5,5,112,234,5,5,254,217,5,5,19,216,5,5,49,246,5,5,207,221,5,5,27,232,5,5,82,215,5,5,146,184,5,5,66,163,5,5,253,192,5,5,180,183,5,5,201,183,5,5,49,214,5,5,99,164,5,5,242,216,5,5,84,189,5,5,43,220,5,5,136,228,5,5,151,211,5,5,210,233,5,5,175,164,5,5,36,227,5,5,2,203,5,5,197,167,5,5,11,240,5,5,160,235,5,5,213,239,5,5,63,221,5,5,160,177,5,5,60,198,5,5,175,169,5,5,21,176,5,5,208,221,5,5,120,166,5,5,152,211,5,5,225,164,5,5,205,219,5,5,202,233,5,5,117,246,5,5,149,176,5,5,209,221,5,5,252,232,5,5,96,242,5,5,58,244,5,5,203,180,5,5,133,220,5,5,85,197,5,5,248,164,5,5,20,182,5,5,178,227,5,5,159,247,5,5,12,240,5,5,62,174,5,5,255,232,5,5,54,192,5,5,136,184,5,5,163,182,5,5,181,183,5,5,40,215,5,5,198,211,5,5,210,249,5,5,153,245,5,5,58,210,5,5,109,227,5,5,245,194,5,5,65,164,5,5,247,166,5,5,41,200,5,5,152,197,5,5,194,185,5,5,66,216,5,5,161,191,5,5,22,244,5,5,157,163,5,5,138,172,5,5,49,172,5,5,4,203,5,5,70,239,5,5,84,166,5,5,52,202,5,5,166,198,5,5,174,199,5,5,255,193,5,5,54,212,5,5,12,181,5,5,28,204,5,5,211,233,5,5,23,240,5,5,13,227,5,5,142,216,5,5,138,228,5,5,3,182,5,5,171,195,5,5,100,218,5,5,212,191,5,5,35,185,5,5,136,239,5,5,60,223,5,5,42,196,5,5,155,194,5,5,35,187,5,5,113,243,5,5,40,227,5,5,70,171,5,5,132,221,5,5,245,216,5,5,97,242,5,5,199,238,5,5,3,190,5,5,84,170,5,5,28,239,5,5,196,190,5,5,5,179,5,5,165,223,5,5,4,223,5,5,3,218,5,5,193,194,5,5,2,220,5,5,91,239,5,5,183,230,5,5,30,235,5,5,184,213,5,5,161,235,5,5,45,232,5,5,59,191,5,5,90,179,5,5,29,204,5,5,159,220,5,5,232,233,5,5,158,209,5,5,81,196,5,5,209,223,5,5,137,184,5,5,188,184,5,5,184,205,5,5,55,245,5,5,25,198,5,5,96,208,5,5,137,225,5,5,237,220,5,5,8,233,5,5,57,224,5,5,201,210,5,5,60,191,5,5,237,206,5,5,131,229,5,5,166,181,5,5,206,228,5,5,94,182,5,5,73,163,5,5,98,183,5,5,124,214,5,5,238,165,5,5,89,182,5,5,9,248,5,5,115,213,5,5,151,234,5,5,155,237,5,5,2,210,5,5,222,216,5,5,179,194,5,5,24,196,5,5,56,245,5,5,42,208,5,5,40,240,5,5,158,174,5,5,41,189,5,5,232,232,5,5,190,209,5,5,44,187,5,5,251,249,5,5,19,201,5,5,145,206,5,5,168,210,5,5,101,236,5,5,244,166,5,5,139,236,5,5,79,174,5,5,181,212,5,5,251,186,5,5,159,174,5,5,158,168,5,5,18,164,5,5,171,247,5,5,169,208,5,5,186,213,5,5,25,216,5,5,237,214,5,5,10,248,5,5,228,176,5,5,175,223,5,5,18,224,5,5,56,219,5,5,217,242,5,5,173,187,5,5,45,187,5,5,36,185,5,5,110,235,5,5,15,205,5,5,241,214,5,5,162,174,5,5,191,199,5,5,57,207,5,5,215,214,5,5,209,166,5,5,85,205,5,5,189,165,5,5,211,225,5,5,203,172,5,5,255,173,5,5,32,241,5,5,229,238,5,5,209,163,5,5,63,248,5,5,252,215,5,5,233,164,5,5,44,199,5,5,239,224,5,5,73,218,5,5,87,166,5,5,163,204,5,5,164,241,5,5,232,234,5,5,174,187,5,5,202,246,5,5,37,185,5,5,116,234,5,5,143,233,5,5,205,191,5,5,69,194,5,5,210,163,5,5,99,181,5,5,69,229,5,5,70,229,5,5,179,170,5,5,156,175,5,5,244,179,5,5,137,207,5,5,29,226,5,5,167,216,5,5,152,167,5,5,112,180,5,5,52,198,5,5,224,239,5,5,118,208,5,5,217,180,5,5,156,192,5,5,150,206,5,5,219,203,5,5,249,236,5,5,40,225,5,5,146,203,5,5,174,173,5,5,104,218,5,5,53,197,5,5,243,207,5,5,88,233,5,5,58,207,5,5,169,210,5,5,152,183,5,5,198,190,5,5,8,222,5,5,169,245,5,5,121,190,5,5,93,237,5,5,160,186,5,5,20,201,5,5,231,178,5,5,192,231,5,5,130,164,5,5,57,245,5,5,59,207,5,5,18,183,5,5,17,234,5,5,17,205,5,5,198,219,5,5,53,241,5,5,105,218,5,5,150,227,5,5,93,211,5,5,126,209,5,5,96,244,5,5,58,225,5,5,204,204,5,5,222,242,5,5,29,231,5,5,248,222,5,5,115,226,5,5,75,203,5,5,177,202,5,5,63,246,5,5,15,248,5,5,91,166,5,5,236,230,5,5,164,180,5,5,226,245,5,5,100,168,5,5,36,243,5,5,204,173,5,5,113,180,5,5,193,245,5,5,212,237,5,5,12,214,5,5,182,223,5,5,38,229,5,5,173,195,5,5,232,176,5,5,13,233,5,5,131,223,5,5,147,181,5,5,215,163,5,5,63,214,5,5,39,201,5,5,222,241,5,5,138,220,5,5,58,224,5,5,127,242,5,5,44,242,5,5,92,205,5,5,232,216,5,5,67,219,5,5,158,233,5,5,207,174,5,5,208,164,5,5,217,218,5,5,126,233,5,5,199,171,5,5,67,202,5,5,227,239,5,5,64,214,5,5,228,217,5,5,4,234,5,5,156,178,5,5,239,233,5,5,173,220,5,5,187,238,5,5,204,179,5,5,205,179,5,5,216,163,5,5,221,231,5,5,228,185,5,5,151,203,5,5,64,246,5,5,132,173,5,5,8,225,5,5,224,193,5,5,67,236,5,5,237,218,5,5,156,236,5,5,174,213,5,5,213,174,5,5,98,249,5,5,99,231,5,5,78,187,5,5,152,184,5,5,184,249,5,5,38,206,5,5,48,169,5,5,161,164,5,5,127,177,5,5,70,180,5,5,2,198,5,5,156,203,5,5,213,212,5,5,95,228,5,5,173,210,5,5,152,207,5,5,118,234,5,5,219,225,5,5,89,236,5,5,221,163,5,5,221,214,5,5,7,250,5,5,168,241,5,5,41,180,5,5,206,236,5,5,67,244,5,5,115,172,5,5,92,166,5,5,23,203,5,5,74,175,5,5,48,232,5,5,115,180,5,5,101,193,5,5,12,166,5,5,189,225,5,5,157,184,5,5,69,234,5,5,122,185,5,5,211,234,5,5,215,249,5,5,61,232,5,5,132,233,5,5,181,164,5,5,113,237,5,5,146,238,5,5,58,226,5,5,25,248,5,5,200,219,5,5,223,232,5,5,232,228,5,5,135,226,5,5,168,206,5,5,101,223,5,5,148,227,5,5,136,198,5,5,12,221,5,5,102,211,5,5,48,243,5,5,251,176,5,5,80,214,5,5,232,185,5,5,228,163,5,5,93,168,5,5,190,205,5,5,196,188,5,5,26,190,5,5,109,170,5,5,85,210,5,5,55,215,5,5,43,180,5,5,168,244,5,5,24,179,5,5,143,222,5,5,106,216,5,5,99,228,5,5,165,209,5,5,107,208,5,5,90,182,5,5,79,233,5,5,228,168,5,5,234,212,5,5,178,185,5,5,32,225,5,5,168,194,5,5,226,187,5,5,135,208,5,5,66,225,5,5,86,224,5,5,89,246,5,5,239,201,5,5,56,163,5,5,99,200,5,5,68,226,5,5,254,180,5,5,43,176,5,5,51,204,5,5,173,204,5,5,126,236,5,5,135,173,5,5,215,215,5,5,252,206,5,5,244,237,5,5,252,203,5,5,112,205,5,5,188,182,5,5,27,189,5,5,103,163,5,5,94,193,5,5,238,215,5,5,169,236,5,5,216,215,5,5,19,206,5,5,14,172,5,5,104,241,5,5,237,205,5,5,93,203,5,5,200,209,5,5,47,168,5,5,216,173,5,5,63,220,5,5,71,238,5,5,13,236,5,5,186,239,5,5,67,208,5,5,194,184,5,5,90,224,5,5,128,240,5,5,108,176,5,5,129,206,5,5,113,217,5,5,90,196,5,5,49,205,5,5,227,225,5,5,245,175,5,5,57,204,5,5,149,227,5,5,51,232,5,5,103,234,5,5,24,166,5,5,227,238,5,5,194,230,5,5,124,179,5,5,37,224,5,5,214,223,5,5,29,186,5,5,192,183,5,5,203,205,5,5,189,210,5,5,232,170,5,5,73,245,5,5,121,184,5,5,154,212,5,5,193,183,5,5,21,225,5,5,206,187,5,5,128,185,5,5,80,191,5,5,17,197,5,5,59,164,5,5,146,248,5,5,164,165,5,5,137,232,5,5,133,218,5,5,192,235,5,5,19,242,5,5,231,197,5,5,228,224,5,5,230,224,5,5,116,187,5,5,143,180,5,5,91,246,5,5,33,191,5,5,195,225,5,5,105,224,5,5,151,230,5,5,97,229,5,5,141,200,5,5,144,187,5,5,105,190,5,5,140,232,5,5,158,184,5,5,119,180,5,5,10,243,5,5,108,185,5,5,140,183,5,5,25,239,5,5,78,245,5,5,159,249,5,5,122,232,5,5,26,249,5,5,29,218,5,5,147,226,5,5,225,219,5,5,31,218,5,5,37,215,5,5,153,194,5,5,132,178,5,5,49,195,5,5,133,178,5,5,192,171,5,5,242,181,5,5,3,225,5,5,27,239,5,5,134,178,5,5,29,239,5,5,163,205,5,5,243,181,5,5,162,235,5,5,215,242,5,5,218,242,5,5,16,227,192,0,0,0,5,5,83,176,5,5,72,210,5,5,183,175,5,5,81,173,5,5,27,170,5,5,159,228,5,5,185,175,192,0,0,0,5,5,102,206,5,5,12,187,5,5,81,201,5,5,217,230,5,5,80,247,5,5,40,183,5,5,52,212,5,5,58,189,5,5,172,247,5,5,0,128,5,5,188,194,5,5,99,188,5,5,166,212,5,5,161,198,5,5,16,186,5,5,230,194,5,5,62,181,5,5,64,194,5,5,162,216,5,5,55,166,5,5,161,208,5,5,42,207,5,5,145,177,5,5,107,231,5,5,77,173,5,5,61,244,5,5,202,204,5,5,22,228,5,5,193,202,5,5,103,240,5,5,216,202,5,5,147,224,5,5,81,208,5,5,55,170,5,5,74,230,5,5,41,183,5,5,27,249,5,5,43,170,5,5,177,192,5,5,75,230,5,5,230,233,5,5,82,208,5,5,231,233,5,5,42,232,5,5,122,193,5,5,91,208,5,5,57,170,5,5,48,220,5,5,59,170,5,5,85,192,5,5,229,216,5,5,200,171,5,5,85,171,5,5,95,231,5,5,158,243,5,5,45,214,5,5,169,195,5,5,13,208,5,5,187,184,5,5,131,239,5,5,34,171,5,5,46,227,5,5,67,194,5,5,224,170,5,5,227,222,5,5,60,207,5,5,250,248,5,5,31,172,5,5,148,195,5,5,221,188,5,5,208,174,5,5,46,214,5,5,116,171,5,5,50,166,5,5,223,178,5,5,105,179,5,5,179,192,5,5,235,173,5,5,54,166,5,5,57,199,5,5,148,226,5,5,118,207,5,5,58,199,5,5,23,197,5,5,72,241,5,5,159,186,5,5,77,167,5,5,63,174,5,5,250,171,5,5,4,179,5,5,137,215,5,5,178,187,5,5,79,209,5,5,195,204,5,5,142,206,5,5,132,229,5,5,236,169,5,5,198,181,5,5,119,208,5,5,81,193,5,5,162,222,5,5,94,237,5,5,151,206,5,5,42,189,5,5,136,211,5,5,76,177,5,5,100,189,5,5,14,179,5,5,157,192,5,5,22,205,5,5,124,243,5,5,56,234,5,5,169,239,5,5,79,187,5,5,144,226,5,5,51,172,5,5,168,222,5,5,212,234,5,5,123,235,5,5,72,178,5,5,238,205,5,5,9,189,5,5,10,189,5,5,122,184,5,5,254,212,5,5,254,177,5,5,123,202,5,5,3,173,5,5,4,173,5,5,5,173,5,5,252,173,5,5,190,206,5,5,186,225,5,5,129,221,5,5,188,173,5,5,110,172,5,5,55,219,5,5,60,174,5,5,189,173,5,5,169,168,5,5,193,173,5,5,83,195,5,5,40,201,5,5,89,195,5,5,123,192,5,5,136,176,5,5,199,168,5,5,149,210,5,5,28,218,5,5,78,196,5,5,179,181,5,5,96,238,5,5,147,225,5,5,197,201,5,5,93,176,5,5,75,198,5,5,79,198,5,5,66,232,5,5,125,175,5,5,72,177,5,5,126,175,5,5,105,230,5,5,106,230,5,5,121,226,5,5,69,173,5,5,94,209,5,5,255,239,5,5,198,201,5,5,161,195,5,5,165,210,5,5,32,235,5,5,154,225,5,5,47,247,5,5,202,201,5,5,3,176,5,5,138,216,5,5,131,199,5,5,185,246,5,5,119,207,5,5,166,186,5,5,199,248,5,5,176,187,5,5,31,188,5,5,234,231,5,5,180,192,5,5,139,226,5,5,64,174,5,5,149,225,5,5,247,211,5,5,191,206,5,5,40,228,5,5,251,171,5,5,85,189,5,5,196,222,5,5,78,167,5,5,124,165,5,5,131,203,5,5,132,203,5,5,12,167,5,5,30,187,5,5,41,228,5,5,125,165,5,5,122,224,5,5,116,206,5,5,104,193,5,5,212,192,5,5,155,175,5,5,141,226,5,5,102,196,5,5,4,196,5,5,97,178,5,5,71,239,5,5,186,218,5,5,171,229,5,5,108,212,5,5,123,227,5,5,212,233,5,5,50,195,5,5,135,203,5,5,30,194,5,5,213,233,5,5,31,194,5,5,84,195,5,5,98,178,5,5,157,202,5,5,214,180,5,5,124,206,5,5,226,185,5,5,120,190,5,5,241,231,5,5,249,248,5,5,193,234,5,5,45,217,5,5,51,195,5,5,234,184,5,5,119,210,5,5,124,227,5,5,142,226,5,5,123,193,5,5,80,205,5,5,194,234,5,5,169,186,5,5,152,180,5,5,204,172,5,5,37,167,5,5,127,224,5,5,174,208,5,5,143,226,5,5,193,231,5,5,191,192,5,5,173,246,5,5,42,163,5,5,213,201,5,5,54,178,5,5,110,211,5,5,89,228,5,5,233,177,5,5,86,205,5,5,170,202,5,5,43,163,5,5,123,242,5,5,61,207,5,5,165,199,5,5,45,229,5,5,23,205,5,5,63,178,5,5,157,178,5,5,255,244,5,5,124,193,5,5,209,174,5,5,43,229,5,5,93,205,5,5,145,191,5,5,29,175,5,5,90,195,5,5,145,226,5,5,49,226,5,5,134,224,5,5,111,182,5,5,27,190,5,5,187,186,5,5,190,167,5,5,60,228,5,5,68,168,5,5,137,195,5,5,45,204,5,5,114,193,5,5,134,209,5,5,163,207,5,5,145,199,5,5,72,219,5,5,77,222,5,5,136,188,5,5,84,207,5,5,222,167,5,5,54,188,5,5,46,194,5,5,58,204,5,5,47,194,5,5,116,205,5,5,117,205,5,5,55,180,5,5,168,199,5,5,217,202,5,5,128,205,5,5,143,240,5,5,129,205,5,5,31,219,5,5,106,224,5,5,70,205,5,5,86,169,5,5,239,186,5,5,203,221,5,5,22,187,5,5,18,241,5,5,107,212,5,5,97,164,5,5,190,194,5,5,253,202,5,5,81,245,5,5,174,169,5,5,177,187,5,5,208,205,5,5,240,195,5,5,250,213,5,5,143,218,5,5,3,179,5,5,210,221,5,5,147,184,5,5,133,203,5,5,199,211,5,5,254,227,5,5,13,240,5,5,131,221,5,5,95,169,5,5,31,187,5,5,209,205,5,5,167,185,5,5,168,185,5,5,240,207,5,5,144,195,5,5,23,244,5,5,136,245,5,5,213,214,5,5,85,170,5,5,250,196,5,5,137,203,5,5,179,187,5,5,86,197,5,5,41,227,5,5,52,195,5,5,214,205,5,5,41,192,5,5,74,163,5,5,255,171,5,5,87,223,5,5,103,186,5,5,252,249,5,5,253,249,5,5,195,171,5,5,53,195,5,5,186,217,5,5,244,207,5,5,111,211,5,5,9,190,5,5,132,166,5,5,7,171,5,5,90,223,5,5,86,185,5,5,111,195,5,5,201,171,5,5,18,179,5,5,6,217,5,5,9,217,5,5,163,195,5,5,102,245,5,5,68,240,5,5,189,217,5,5,123,247,5,5,46,229,5,5,175,185,5,5,94,172,5,5,28,190,5,5,94,168,5,5,78,227,5,5,232,201,5,5,233,210,5,5,60,206,5,5,234,223,5,5,110,212,5,5,107,216,5,5,119,240,5,5,165,207,5,5,241,172,5,5,223,207,5,5,189,182,5,5,85,207,5,5,246,175,5,5,27,214,5,5,184,169,5,5,193,217,5,5,195,217,5,5,101,191,5,5,111,187,5,5,201,223,5,5,152,230,5,5,112,212,5,5,248,163,5,5,244,227,5,5,127,249,5,5,120,204,5,5,41,164,5,5,53,192,5,5,79,245,5,5,128,249,5,5,18,247,5,5,112,165,5,5,233,191,5,5,234,191,5,5,249,163,5,5,37,235,5,5,213,240,5,5,32,218,5,5,133,167,5,5,193,206,5,5,174,179,5,5,162,191,5,5,222,168,5,5,206,237,5,5,19,167,5,5,101,174,5,5,203,194,5,5,30,175,5,5,166,204,5,5,128,212,5,5,220,164,5,5,130,199,5,5,195,163,5,5,68,183,5,5,111,227,5,5,145,173,5,5,154,204,5,5,128,239,5,5,208,231,5,5,50,206,5,5,231,195,5,5,51,206,5,5,248,196,5,5,216,198,5,5,183,213,5,5,153,211,5,5,229,165,5,5,2,194,5,5,97,209,5,5,172,232,5,5,252,196,5,5,181,172,5,5,228,198,5,5,17,248,5,5,14,194,5,5,153,196,5,5,90,200,5,5,242,175,5,5,44,194,5,5,128,188,5,5,137,188,5,5,60,237,5,5,255,177,5,5,180,204,5,5,193,207,5,5,104,213,5,5,20,168,5,5,149,211,5,5,88,239,5,5,250,194,5,5,219,242,5,5,217,165,5,5,208,183,5,5,167,211,5,5,225,226,5,5,251,217,5,5,50,210,5,5,88,184,5,5,207,235,5,5,216,232,5,5,7,229,5,5,44,245,5,5,64,200,5,5,98,164,5,5,31,227,5,5,105,213,5,5,232,246,5,5,107,199,5,5,251,213,5,5,233,246,5,5,181,163,5,5,218,232,5,5,5,222,5,5,254,213,5,5,227,175,5,5,179,169,5,5,99,183,5,5,229,175,5,5,68,202,5,5,92,163,5,5,204,229,5,5,149,163,5,5,19,197,5,5,227,165,5,5,110,166,5,5,132,220,5,5,244,194,5,5,183,189,5,5,70,242,5,5,228,189,5,5,175,212,5,5,127,193,5,5,190,245,5,5,65,214,5,5,125,203,5,5,126,203,5,5,114,246,5,5,13,239,5,5,129,212,5,5,56,218,5,5,44,170,5,5,233,243,5,5,222,245,5,5,255,227,5,5,44,202,5,5,12,212,5,5,185,190,5,5,61,223,5,5,230,207,5,5,51,214,5,5,246,216,5,5,185,205,5,5,13,212,5,5,95,245,5,5,55,202,5,5,213,237,5,5,94,211,5,5,227,212,5,5,108,236,5,5,26,225,5,5,47,246,5,5,187,237,5,5,124,181,5,5,23,187,5,5,126,219,5,5,104,198,5,5,24,187,5,5,8,241,5,5,222,240,5,5,20,243,5,5,186,227,5,5,199,176,5,5,93,219,5,5,114,167,5,5,242,240,5,5,87,197,5,5,244,240,5,5,187,218,5,5,233,233,5,5,116,167,5,5,160,180,5,5,168,186,5,5,189,227,5,5,47,198,5,5,131,181,5,5,24,233,5,5,195,234,5,5,205,172,5,5,37,249,5,5,240,233,5,5,43,249,5,5,42,216,5,5,223,242,5,5,80,187,5,5,153,207,5,5,155,227,5,5,128,177,5,5,157,225,5,5,167,204,5,5,191,205,5,5,103,238,5,5,23,194,5,5,54,243,5,5,124,235,5,5,87,187,5,5,33,225,5,5,27,186,5,5,102,187,5,5,194,242,5,5,255,242,5,5,83,249,5,5,101,235,5,5,189,194,5,5,217,188,5,5,32,230,5,5,245,211,5,5,246,211,5,5,49,239,5,5,116,185,5,5,231,177,5,5,179,215,5,5,114,222,5,5,81,236,5,5,61,234,5,5,62,234,5,5,63,234,5,5,66,234,5,5,67,238,5,5,107,175,5,5,93,242,5,5,124,223,5,5,40,202,5,5,67,242,5,5,236,229,5,5,39,173,5,5,12,228,5,5,203,193,5,5,0,154,5,5,112,172,5,5,233,230,5,5,37,227,5,5,64,229,5,5,24,222,5,5,237,211,5,5,20,228,5,5,235,165,5,5,250,216,5,5,69,203,5,5,83,167,5,5,65,236,5,5,42,192,5,5,123,246,5,5,66,236,5,5,47,177,5,5,18,231,5,5,92,235,5,5,142,195,5,5,31,193,5,5,37,207,5,5,175,189,5,5,121,193,5,5,127,175,5,5,145,195,5,5,142,218,5,5,82,204,5,5,224,219,5,5,0,131,5,5,189,177,5,5,37,195,5,5,106,179,5,5,80,223,5,5,9,227,5,5,94,242,5,5,244,209,5,5,186,166,5,5,79,241,5,5,241,197,5,5,104,235,5,5,37,180,5,5,58,223,5,5,14,185,5,5,73,177,5,5,199,201,5,5,7,188,5,5,107,201,5,5,125,171,5,5,180,216,5,5,182,170,5,5,3,223,5,5,203,191,5,5,92,217,5,5,141,241,5,5,167,231,5,5,84,197,5,5,42,202,5,5,97,177,5,5,35,235,5,5,162,182,5,5,26,172,5,5,46,198,5,5,27,187,5,5,239,181,5,5,94,216,5,5,60,219,5,5,228,213,5,5,71,241,5,5,57,191,5,5,223,240,5,5,61,169,5,5,185,238,5,5,164,199,5,5,89,239,5,5,15,208,5,5,54,224,5,5,21,189,5,5,127,182,5,5,161,243,5,5,193,172,5,5,226,164,5,5,11,211,5,5,12,211,5,5,205,203,5,5,121,166,5,5,231,172,5,5,33,163,5,5,182,178,5,5,70,173,5,5,152,237,5,5,74,198,5,5,128,181,5,5,241,195,5,5,227,229,5,5,254,208,5,5,131,201,5,5,58,218,5,5,207,243,5,5,14,245,5,5,15,245,5,5,252,223,5,5,232,182,5,5,80,217,5,5,171,212,5,5,26,226,5,5,181,175,5,5,48,247,5,5,44,198,5,5,108,201,5,5,16,245,5,5,39,192,5,5,49,241,5,5,41,208,5,5,58,191,5,5,191,237,5,5,159,191,5,5,190,169,5,5,69,175,5,5,255,208,5,5,88,225,5,5,17,245,5,5,40,192,5,5,19,174,5,5,83,204,5,5,109,201,5,5,59,223,5,5,9,229,5,5,233,182,5,5,128,182,5,5,150,174,5,5,14,240,5,5,70,175,5,5,186,238,5,5,32,187,5,5,245,163,5,5,29,249,5,5,139,193,5,5,69,247,5,5,25,211,5,5,246,244,5,5,195,237,5,5,186,226,5,5,231,207,5,5,103,167,5,5,51,247,5,5,6,183,5,5,17,169,5,5,176,189,5,5,59,230,5,5,10,242,5,5,202,176,5,5,3,220,5,5,42,227,5,5,44,220,5,5,7,181,5,5,110,213,5,5,24,240,5,5,30,209,5,5,170,168,5,5,174,231,5,5,254,192,5,5,155,233,5,5,118,246,5,5,226,216,5,5,133,237,5,5,46,183,5,5,119,191,5,5,226,166,5,5,25,240,5,5,122,214,5,5,139,228,5,5,218,198,5,5,54,172,5,5,18,175,5,5,248,211,5,5,17,207,5,5,76,198,5,5,210,231,5,5,4,182,5,5,51,178,5,5,46,167,5,5,13,167,5,5,126,165,5,5,67,174,5,5,255,243,5,5,88,197,5,5,233,231,5,5,89,197,5,5,180,197,5,5,158,204,5,5,249,249,5,5,191,174,5,5,4,175,5,5,45,220,5,5,154,245,5,5,239,194,5,5,255,192,5,5,240,194,5,5,22,233,5,5,123,166,5,5,227,190,5,5,224,178,5,5,109,184,5,5,91,179,5,5,108,235,5,5,186,215,5,5,188,199,5,5,35,209,5,5,72,239,5,5,199,237,5,5,159,194,5,5,108,219,5,5,116,213,5,5,142,239,5,5,175,187,5,5,108,231,5,5,126,171,5,5,31,171,5,5,157,218,5,5,215,241,5,5,211,201,5,5,49,220,5,5,140,191,5,5,133,229,5,5,128,232,5,5,214,214,5,5,181,197,5,5,255,199,5,5,43,196,5,5,247,199,5,5,175,179,5,5,87,215,5,5,200,237,5,5,148,217,5,5,238,214,5,5,140,193,5,5,25,243,5,5,195,185,5,5,92,239,5,5,21,238,5,5,151,168,5,5,185,228,5,5,167,182,5,5,112,201,5,5,36,218,5,5,52,178,5,5,166,245,5,5,71,197,5,5,32,232,5,5,100,242,5,5,67,177,5,5,220,166,5,5,78,216,5,5,22,238,5,5,171,192,5,5,253,196,5,5,10,241,5,5,5,175,5,5,125,214,5,5,7,165,5,5,69,200,5,5,65,184,5,5,103,199,5,5,177,216,5,5,82,196,5,5,78,178,5,5,76,173,5,5,161,202,5,5,189,184,5,5,82,170,5,5,50,241,5,5,247,197,5,5,38,249,5,5,40,191,5,5,47,167,5,5,193,170,5,5,142,191,5,5,141,237,5,5,5,223,5,5,4,228,5,5,165,186,5,5,230,182,5,5,219,232,5,5,103,197,5,5,9,196,5,5,128,214,5,5,191,215,5,5,171,185,5,5,44,163,5,5,133,219,5,5,66,219,5,5,69,189,5,5,0,141,5,5,127,171,5,5,184,187,5,5,250,236,5,5,93,174,5,5,113,166,5,5,120,198,5,5,193,198,5,5,230,192,5,5,176,229,5,5,200,191,5,5,108,242,5,5,30,243,5,5,9,193,5,5,39,193,5,5,246,163,5,5,81,198,5,5,200,236,5,5,96,226,5,5,55,240,5,5,23,238,5,5,44,203,5,5,185,181,5,5,91,215,5,5,203,246,5,5,54,187,5,5,186,212,5,5,68,180,5,5,10,233,5,5,8,210,5,5,177,223,5,5,19,245,5,5,80,232,5,5,11,241,5,5,182,175,5,5,6,209,5,5,168,176,5,5,16,211,5,5,47,169,5,5,109,169,5,5,233,194,5,5,193,175,5,5,250,211,5,5,172,185,5,5,59,189,5,5,223,236,5,5,81,232,5,5,213,200,5,5,147,186,5,5,126,227,5,5,214,201,5,5,253,232,5,5,171,245,5,5,249,173,5,5,222,205,5,5,45,199,5,5,42,209,5,5,23,228,5,5,15,246,5,5,172,229,5,5,42,225,5,5,36,239,5,5,68,187,5,5,83,211,5,5,230,238,5,5,244,231,5,5,51,241,5,5,92,184,5,5,147,247,5,5,101,181,5,5,64,185,5,5,151,227,5,5,197,212,5,5,66,182,5,5,229,198,5,5,34,238,5,5,213,219,5,5,86,183,5,5,199,195,5,5,33,222,5,5,34,222,5,5,230,228,5,5,233,176,5,5,195,198,5,5,223,188,5,5,137,237,5,5,18,234,5,5,43,216,5,5,130,182,5,5,59,245,5,5,62,247,5,5,238,234,5,5,152,227,5,5,45,193,5,5,9,209,5,5,10,209,5,5,180,179,5,5,29,176,5,5,30,176,5,5,93,241,5,5,183,231,5,5,237,164,5,5,239,234,5,5,22,226,5,5,109,197,5,5,12,241,5,5,12,209,5,5,137,219,5,5,155,172,5,5,60,189,5,5,92,215,5,5,247,167,5,5,153,227,5,5,6,185,5,5,245,231,5,5,97,244,5,5,131,193,5,5,156,166,5,5,166,219,5,5,226,235,5,5,138,222,5,5,236,183,5,5,142,193,5,5,86,190,5,5,128,242,5,5,234,176,5,5,63,212,5,5,129,224,5,5,150,163,5,5,217,177,5,5,102,186,5,5,220,214,5,5,241,206,5,5,71,180,5,5,96,223,5,5,165,180,5,5,225,238,5,5,131,204,5,5,35,176,5,5,241,194,5,5,241,249,5,5,127,246,5,5,105,183,5,5,96,228,5,5,81,248,5,5,144,219,5,5,239,184,5,5,105,203,5,5,28,198,5,5,107,198,5,5,36,177,5,5,16,220,5,5,213,223,5,5,215,245,5,5,161,184,5,5,82,248,5,5,131,243,5,5,222,231,5,5,147,241,5,5,139,237,5,5,203,171,5,5,5,199,5,5,167,249,5,5,66,226,5,5,83,200,5,5,221,200,5,5,222,200,5,5,80,213,5,5,79,197,5,5,223,201,5,5,155,196,5,5,228,222,5,5,20,246,5,5,156,227,5,5,14,217,5,5,41,201,5,5,66,178,5,5,238,183,5,5,100,217,5,5,73,189,5,5,83,248,5,5,124,236,5,5,12,223,5,5,163,209,5,5,39,243,5,5,238,175,5,5,105,167,5,5,67,234,5,5,181,186,5,5,52,241,5,5,68,219,5,5,227,245,5,5,145,171,5,5,160,244,5,5,96,167,5,5,115,166,5,5,118,196,5,5,127,213,5,5,84,248,5,5,157,203,5,5,230,185,5,5,30,196,5,5,84,232,5,5,75,199,5,5,173,180,5,5,174,241,5,5,158,197,5,5,136,237,5,5,20,215,5,5,37,211,5,5,231,235,5,5,216,249,5,5,160,236,5,5,183,201,5,5,18,214,5,5,61,238,5,5,208,236,5,5,62,169,5,5,135,223,5,5,199,197,5,5,12,195,5,5,9,175,5,5,116,236,5,5,171,224,5,5,219,230,5,5,43,236,5,5,144,245,5,5,233,201,5,5,127,167,5,5,3,245,5,5,154,210,5,5,79,227,5,5,174,191,5,5,122,231,5,5,115,203,5,5,143,190,5,5,116,247,5,5,159,245,5,5,184,235,5,5,15,223,5,5,220,197,5,5,245,236,192,0,0,0,5,5,182,197,5,5,228,236,5,5,234,210,5,5,243,183,5,5,81,197,5,5,120,218,5,5,11,236,5,5,222,182,5,5,208,191,5,5,226,182,5,5,18,177,5,5,28,238,5,5,86,211,5,5,159,182,5,5,52,165,5,5,104,238,5,5,105,238,5,5,129,188,5,5,27,233,5,5,123,219,5,5,124,169,5,5,76,236,5,5,68,236,5,5,31,180,5,5,178,176,5,5,136,208,5,5,97,204,5,5,156,226,5,5,253,203,5,5,98,195,5,5,44,180,5,5,62,228,5,5,36,234,5,5,31,203,5,5,38,238,5,5,152,214,5,5,95,168,5,5,235,185,5,5,120,191,5,5,59,193,5,5,153,214,5,5,235,198,5,5,100,200,5,5,148,193,5,5,189,238,5,5,59,215,5,5,252,231,5,5,15,225,5,5,205,216,5,5,180,166,5,5,55,175,5,5,63,169,5,5,50,169,5,5,16,199,5,5,163,185,5,5,236,177,5,5,121,191,5,5,53,180,5,5,75,241,5,5,184,164,5,5,110,244,5,5,16,236,5,5,98,204,5,5,107,171,5,5,225,214,5,5,104,199,5,5,171,169,5,5,68,230,5,5,23,226,5,5,146,167,5,5,179,185,5,5,227,214,5,5,244,201,5,5,199,221,5,5,244,223,5,5,164,196,5,5,32,233,5,5,158,214,5,5,130,235,5,5,227,197,5,5,176,174,5,5,232,187,5,5,167,209,5,5,245,212,5,5,228,225,5,5,139,224,5,5,47,176,5,5,208,197,5,5,20,218,5,5,185,237,5,5,80,233,5,5,242,172,5,5,20,223,5,5,13,200,5,5,135,232,5,5,132,226,5,5,158,234,5,5,48,176,5,5,128,248,5,5,133,182,5,5,134,234,5,5,102,204,5,5,57,241,5,5,246,212,5,5,52,209,5,5,223,197,5,5,138,188,5,5,207,216,5,5,124,176,5,5,28,200,5,5,190,243,5,5,216,168,5,5,109,207,5,5,240,210,5,5,239,217,5,5,246,183,5,5,181,189,5,5,131,235,5,5,248,242,5,5,228,244,5,5,13,175,5,5,89,220,5,5,140,237,5,5,66,220,5,5,242,205,5,5,196,184,5,5,113,200,5,5,89,214,5,5,56,209,5,5,252,237,5,5,87,232,5,5,113,239,5,5,97,227,5,5,105,204,5,5,106,249,5,5,32,238,5,5,224,249,5,5,177,207,5,5,92,196,5,5,38,248,5,5,97,167,5,5,168,175,5,5,124,191,5,5,70,197,5,5,190,178,5,5,74,176,5,5,37,216,5,5,5,236,5,5,226,167,5,5,32,168,5,5,153,243,5,5,34,233,5,5,123,184,5,5,187,176,5,5,93,186,5,5,41,179,5,5,170,199,5,5,197,230,5,5,213,197,5,5,233,213,5,5,120,241,5,5,60,178,5,5,49,168,5,5,39,224,5,5,221,202,5,5,248,205,5,5,232,197,5,5,236,180,5,5,22,225,5,5,27,218,5,5,160,169,5,5,224,233,5,5,239,180,5,5,245,189,5,5,130,200,5,5,123,163,5,5,20,242,5,5,4,184,5,5,195,243,5,5,90,199,5,5,161,169,5,5,125,201,5,5,157,219,5,5,218,186,5,5,69,188,5,5,205,197,5,5,128,183,5,5,174,214,5,5,79,169,5,5,74,243,5,5,121,187,5,5,200,189,5,5,251,190,5,5,82,169,5,5,60,176,5,5,231,224,5,5,146,168,5,5,35,168,5,5,112,216,5,5,215,199,5,5,83,169,5,5,158,213,5,5,95,178,5,5,38,196,5,5,200,242,5,5,108,224,5,5,135,244,5,5,163,230,5,5,158,177,5,5,238,184,5,5,85,179,5,5,182,214,5,5,194,207,5,5,16,226,5,5,159,200,5,5,226,199,5,5,153,222,5,5,13,184,5,5,183,214,5,5,229,233,5,5,232,186,5,5,153,224,5,5,222,223,5,5,152,187,5,5,204,240,5,5,88,190,5,5,130,183,5,5,230,231,5,5,138,236,5,5,100,213,5,5,171,232,5,5,8,205,5,5,231,231,5,5,204,221,5,5,56,186,5,5,21,184,5,5,126,183,5,5,85,186,5,5,9,185,5,5,255,245,5,5,38,200,5,5,109,243,5,5,245,209,5,5,157,235,5,5,97,184,5,5,12,205,5,5,39,200,5,5,20,216,5,5,110,243,5,5,94,183,5,5,108,182,5,5,109,182,5,5,204,178,5,5,232,195,5,5,247,248,5,5,92,208,5,5,99,168,5,5,129,249,5,5,38,235,5,5,246,198,5,5,40,200,5,5,30,249,5,5,153,237,5,5,158,193,5,5,240,196,5,5,39,235,5,5,155,182,5,5,196,181,5,5,4,246,5,5,193,190,5,5,159,193,5,5,117,212,5,5,10,230,5,5,87,189,5,5,79,193,5,5,160,193,5,5,102,179,5,5,161,193,5,5,197,181,5,5,101,242,5,5,162,193,5,5,168,243,5,5,21,201,5,5,246,168,5,5,13,248,5,5,82,198,5,5,39,249,5,5,199,190,5,5,46,212,5,5,18,248,5,5,95,211,5,5,163,193,5,5,57,226,5,5,21,246,5,5,44,249,5,5,47,212,5,5,14,196,5,5,222,174,5,5,51,249,5,5,52,249,5,5,43,241,5,5,214,181,5,5,222,181,5,5,223,181,5,5,112,182,5,5,112,191,5,5,103,200,5,5,145,240,5,5,184,200,5,5,167,190,5,5,178,190,5,5,237,181,5,5,19,241,5,5,238,181,5,5,164,181,5,5,40,229,5,5,244,168,5,5,255,189,5,5,100,196,5,5,221,240,5,5,43,232,5,5,3,246,5,5,132,191,5,5,50,248,5,5,241,244,5,5,208,193,5,5,24,168,5,5,129,239,5,5,66,175,5,5,52,210,5,5,53,210,5,5,233,220,5,5,19,222,5,5,94,176,5,5,78,209,5,5,239,213,5,5,129,228,5,5,20,197,5,5,27,225,5,5,156,208,5,5,229,183,5,5,96,169,5,5,206,201,5,5,40,203,5,5,145,218,5,5,146,218,5,5,83,164,5,5,185,217,5,5,15,240,5,5,254,210,5,5,191,169,5,5,16,208,5,5,97,231,5,5,138,182,5,5,147,173,5,5,128,164,5,5,129,164,5,5,226,179,5,5,170,195,5,5,246,199,5,5,2,233,5,5,242,195,5,5,250,164,5,5,118,206,5,5,222,176,5,5,75,206,5,5,153,202,5,5,79,196,5,5,200,176,5,5,76,206,5,5,192,204,5,5,241,179,5,5,33,187,5,5,15,163,5,5,87,245,5,5,92,173,5,5,89,222,5,5,169,166,5,5,101,164,5,5,50,180,5,5,196,196,5,5,157,211,5,5,23,180,5,5,61,218,5,5,21,182,5,5,111,192,5,5,171,168,5,5,161,177,5,5,128,193,5,5,147,183,5,5,108,179,5,5,200,167,5,5,83,208,5,5,59,244,5,5,149,172,5,5,141,238,5,5,4,190,5,5,216,209,5,5,64,172,5,5,38,195,5,5,79,192,5,5,81,217,5,5,0,157,5,5,33,223,5,5,187,223,5,5,88,189,5,5,212,221,5,5,192,174,5,5,219,198,5,5,188,218,5,5,28,226,5,5,226,184,5,5,27,191,5,5,28,191,5,5,185,189,5,5,142,238,5,5,80,175,5,5,14,167,5,5,24,172,5,5,144,216,5,5,6,179,5,5,162,202,5,5,153,197,5,5,86,191,5,5,169,233,5,5,63,223,5,5,119,185,5,5,214,191,5,5,114,243,5,5,48,198,5,5,120,178,5,5,228,219,5,5,80,174,5,5,160,194,5,5,159,241,5,5,79,178,5,5,80,178,5,5,5,194,5,5,143,223,5,5,27,244,5,5,165,243,5,5,123,172,5,5,83,192,5,5,34,249,5,5,22,177,5,5,2,214,5,5,197,195,5,5,244,228,5,5,16,228,5,5,202,237,5,5,98,166,5,5,164,177,5,5,139,201,5,5,227,240,5,5,44,196,5,5,50,175,5,5,248,194,5,5,97,176,5,5,85,195,5,5,191,198,5,5,64,183,5,5,228,238,5,5,120,216,5,5,192,215,5,5,95,249,5,5,141,164,5,5,28,174,5,5,18,163,5,5,56,240,5,5,236,243,5,5,121,198,5,5,255,216,5,5,30,226,5,5,221,210,5,5,231,192,5,5,24,238,5,5,187,164,5,5,162,173,5,5,14,212,5,5,255,249,5,5,44,208,5,5,15,203,5,5,230,176,5,5,164,169,5,5,139,186,5,5,233,207,5,5,93,225,5,5,53,228,5,5,169,205,5,5,134,219,5,5,185,187,5,5,186,187,5,5,133,166,5,5,99,225,5,5,157,199,5,5,134,166,5,5,243,226,5,5,187,217,5,5,141,193,5,5,85,208,5,5,73,241,5,5,93,184,5,5,213,176,5,5,71,248,5,5,138,166,5,5,231,240,5,5,64,212,5,5,25,237,5,5,248,167,5,5,96,211,5,5,206,246,5,5,63,207,5,5,217,190,5,5,77,221,5,5,54,197,5,5,176,226,5,5,233,178,5,5,96,175,5,5,39,180,5,5,231,238,5,5,26,234,5,5,215,225,5,5,188,164,5,5,174,195,5,5,108,218,5,5,83,178,5,5,69,240,5,5,109,218,5,5,70,240,5,5,235,166,5,5,221,201,5,5,163,222,5,5,183,208,5,5,34,236,5,5,64,207,5,5,156,183,5,5,11,196,5,5,61,195,5,5,69,180,5,5,198,196,5,5,209,183,5,5,205,204,5,5,121,178,5,5,188,205,5,5,193,192,5,5,72,248,5,5,214,237,5,5,154,167,5,5,83,193,5,5,245,181,5,5,161,186,5,5,183,173,5,5,249,240,5,5,172,210,5,5,244,196,5,5,245,238,5,5,225,228,5,5,107,178,5,5,69,183,5,5,188,181,5,5,111,225,5,5,132,243,5,5,8,201,5,5,28,165,5,5,190,188,5,5,145,193,5,5,37,177,5,5,139,222,5,5,54,198,5,5,22,164,5,5,23,164,5,5,190,247,5,5,154,176,5,5,30,170,5,5,106,203,5,5,22,231,5,5,96,241,5,5,247,192,5,5,165,195,5,5,91,233,5,5,191,247,5,5,42,201,5,5,224,237,5,5,169,241,5,5,40,243,5,5,49,164,5,5,172,233,5,5,205,169,5,5,30,225,5,5,23,178,5,5,35,182,5,5,238,243,5,5,240,173,5,5,250,222,5,5,224,203,5,5,175,205,5,5,211,198,5,5,198,192,5,5,80,226,5,5,26,205,5,5,210,168,5,5,162,185,5,5,100,216,5,5,35,201,5,5,151,186,5,5,166,178,5,5,176,246,5,5,101,217,5,5,188,202,5,5,78,202,5,5,86,196,5,5,169,244,5,5,37,179,5,5,118,225,5,5,13,250,5,5,92,195,5,5,161,236,5,5,162,236,5,5,249,226,5,5,103,171,5,5,44,179,5,5,125,247,5,5,119,225,5,5,215,181,5,5,75,180,5,5,23,212,5,5,230,222,5,5,88,187,5,5,231,222,5,5,165,164,5,5,2,236,5,5,189,232,5,5,122,178,5,5,85,181,5,5,111,245,5,5,120,221,5,5,190,217,5,5,175,191,5,5,250,220,5,5,62,238,5,5,204,194,5,5,181,242,5,5,178,195,5,5,86,181,5,5,53,249,5,5,255,246,5,5,81,214,5,5,102,188,5,5,204,197,5,5,133,186,5,5,16,225,5,5,163,167,5,5,198,164,5,5,200,224,5,5,36,190,5,5,235,189,5,5,169,238,5,5,179,210,5,5,218,169,5,5,125,169,5,5,118,222,5,5,252,229,5,5,103,229,5,5,255,185,5,5,50,223,5,5,138,170,5,5,149,165,5,5,173,206,5,5,251,233,5,5,153,229,5,5,4,219,5,5,13,221,5,5,189,195,5,5,218,249,5,5,176,177,5,5,214,224,5,5,124,218,5,5,137,213,5,5,149,193,5,5,77,211,5,5,232,205,5,5,255,176,5,5,233,228,5,5,99,172,5,5,214,234,5,5,55,243,5,5,46,179,5,5,194,232,5,5,132,210,5,5,59,211,5,5,49,189,5,5,169,246,5,5,102,222,5,5,141,209,5,5,195,232,5,5,208,216,5,5,100,228,5,5,101,228,5,5,8,163,5,5,232,168,5,5,91,196,5,5,250,178,5,5,20,173,5,5,30,212,5,5,139,169,5,5,186,178,5,5,187,178,5,5,68,233,5,5,7,177,5,5,51,229,5,5,115,178,5,5,116,178,5,5,254,179,5,5,137,176,5,5,59,172,5,5,108,173,5,5,57,201,5,5,255,179,5,5,51,175,5,5,106,241,5,5,253,221,5,5,155,205,5,5,153,238,5,5,65,211,5,5,253,201,5,5,143,209,5,5,202,195,5,5,146,240,5,5,12,168,5,5,75,165,5,5,177,177,5,5,22,206,5,5,77,241,5,5,225,249,5,5,66,217,5,5,6,180,5,5,72,186,5,5,89,207,5,5,249,199,5,5,112,176,5,5,162,230,5,5,191,210,5,5,197,217,5,5,229,215,5,5,93,213,5,5,169,197,5,5,75,238,5,5,237,240,5,5,149,175,5,5,233,197,5,5,24,231,5,5,6,206,5,5,131,185,5,5,36,197,5,5,201,189,5,5,198,242,5,5,15,180,5,5,109,246,5,5,250,199,5,5,34,191,5,5,35,191,5,5,21,231,5,5,122,187,5,5,252,188,5,5,164,230,5,5,166,224,5,5,207,217,5,5,205,242,5,5,109,185,5,5,30,163,5,5,182,246,5,5,22,227,5,5,86,230,5,5,106,236,5,5,183,222,5,5,184,222,5,5,10,229,5,5,90,239,5,5,176,169,5,5,33,195,5,5,219,221,5,5,187,222,5,5,251,198,5,5,255,198,5,5,228,196,5,5,102,239,5,5,6,199,5,5,15,217,5,5,233,196,5,5,28,228,5,5,217,170,5,5,69,233,5,5,30,228,5,5,114,239,5,5,140,218,5,5,30,193,5,5,202,225,5,5,52,206,5,5,236,173,5,5,202,163,5,5,203,219,5,5,239,165,5,5,246,236,5,5,116,212,5,5,89,189,5,5,198,174,5,5,196,234,5,5,230,213,5,5,50,218,5,5,119,214,5,5,60,183,5,5,236,213,5,5,141,196,5,5,165,212,5,5,218,245,5,5,89,249,5,5,45,170,5,5,141,236,5,5,49,178,5,5,50,178,5,5,83,241,5,5,108,211,5,5,220,245,5,5,87,192,5,5,88,192,5,5,43,209,5,5,24,171,5,5,25,171,5,5,187,243,5,5,183,199,5,5,215,224,5,5,47,175,5,5,19,232,5,5,61,181,5,5,132,179,5,5,17,174,5,5,202,193,5,5,140,241,5,5,254,243,5,5,171,198,5,5,23,192,5,5,184,226,5,5,148,179,5,5,133,179,5,5,211,179,5,5,211,242,5,5,223,164,5,5,130,239,5,5,39,196,5,5,255,202,5,5,61,178,5,5,133,199,5,5,16,197,5,5,160,249,5,5,3,203,5,5,0,135,5,5,2,239,5,5,115,188,5,5,209,200,5,5,150,176,5,5,216,242,5,5,26,167,5,5,241,207,5,5,162,208,5,5,22,183,5,5,253,173,5,5,6,214,5,5,129,173,5,5,146,177,5,5,89,244,5,5,114,196,5,5,117,232,5,5,211,200,5,5,36,209,5,5,77,195,5,5,62,219,5,5,115,164,5,5,41,240,5,5,36,206,5,5,203,179,5,5,186,232,5,5,124,164,5,5,187,212,5,5,90,201,5,5,183,172,5,5,77,177,5,5,13,218,5,5,177,164,5,5,171,177,5,5,144,238,5,5,168,227,5,5,124,247,5,5,74,197,5,5,145,238,5,5,112,245,5,5,147,238,5,5,39,206,5,5,130,188,5,5,71,178,5,5,116,249,5,5,41,206,5,5,92,227,5,5,137,173,5,5,208,199,5,5,91,165,5,5,168,190,5,5,96,178,5,5,212,184,5,5,141,184,5,5,200,177,5,5,12,183,5,5,54,210,5,5,189,204,5,5,32,179,5,5,145,204,5,5,179,184,5,5,162,223,5,5,239,197,5,5,38,215,5,5,47,173,5,5,126,202,5,5,179,229,5,5,181,230,5,5,152,172,5,5,106,247,5,5,129,201,5,5,169,222,5,5,189,174,5,5,18,169,5,5,226,175,5,5,119,230,5,5,20,174,5,5,141,206,5,5,165,242,5,5,194,197,5,5,60,247,5,5,197,222,5,5,150,166,5,5,31,178,5,5,154,202,5,5,243,195,5,5,241,222,5,5,142,241,5,5,210,205,5,5,130,249,5,5,165,171,5,5,232,172,5,5,122,223,5,5,200,248,5,5,171,222,5,5,44,184,5,5,22,243,5,5,234,182,5,5,242,215,5,5,93,173,5,5,227,164,5,5,160,247,5,5,54,182,5,5,190,173,5,5,234,246,5,5,158,173,5,5,47,245,5,5,52,248,5,5,209,193,5,5,35,178,5,5,0,158,5,5,145,183,5,5,31,220,5,5,25,222,5,5,207,219,5,5,19,175,5,5,16,183,5,5,91,249,5,5,216,179,5,5,84,215,5,5,101,218,5,5,144,237,5,5,250,169,5,5,97,169,5,5,116,208,5,5,254,164,5,5,140,228,5,5,95,209,5,5,145,237,5,5,90,197,5,5,227,216,5,5,122,172,5,5,64,221,5,5,223,171,5,5,102,164,5,5,65,172,5,5,22,174,5,5,90,189,5,5,170,231,5,5,171,231,5,5,14,227,5,5,76,230,5,5,43,228,5,5,2,244,5,5,105,170,5,5,196,203,5,5,2,193,5,5,163,235,5,5,164,216,5,5,52,246,5,5,109,231,5,5,43,207,5,5,44,228,5,5,128,168,5,5,127,230,5,5,160,241,5,5,7,179,5,5,8,206,5,5,67,229,5,5,56,202,5,5,215,191,5,5,95,216,5,5,110,199,5,5,214,207,5,5,239,203,5,5,84,192,5,5,196,185,5,5,200,204,5,5,201,204,5,5,143,239,5,5,91,184,5,5,103,218,5,5,212,201,5,5,215,201,5,5,187,215,5,5,198,198,5,5,161,194,5,5,19,208,5,5,40,196,5,5,26,243,5,5,50,172,5,5,181,187,5,5,249,166,5,5,203,237,5,5,102,242,5,5,166,242,5,5,167,223,5,5,144,228,5,5,115,243,5,5,236,226,5,5,6,194,5,5,56,212,5,5,110,231,5,5,91,237,5,5,223,245,5,5,140,201,5,5,151,245,5,5,227,185,5,5,29,241,5,5,17,230,5,5,240,203,5,5,157,190,5,5,159,168,5,5,193,215,5,5,5,228,5,5,254,186,5,5,94,225,5,5,59,214,5,5,194,170,5,5,29,174,5,5,202,236,5,5,199,169,5,5,59,246,5,5,57,195,5,5,252,225,5,5,253,225,5,5,167,181,5,5,102,184,5,5,148,216,5,5,101,183,5,5,177,247,5,5,239,182,5,5,38,167,5,5,33,183,5,5,215,207,5,5,150,228,5,5,204,218,5,5,83,198,5,5,231,176,5,5,172,222,5,5,156,237,5,5,137,168,5,5,95,182,5,5,194,215,5,5,197,171,5,5,20,245,5,5,170,242,5,5,60,245,5,5,25,238,5,5,168,242,5,5,178,247,5,5,174,235,5,5,179,247,5,5,139,245,5,5,55,187,5,5,90,215,5,5,206,206,5,5,239,211,5,5,92,222,5,5,122,208,5,5,93,215,5,5,35,222,5,5,234,178,5,5,240,224,5,5,12,190,5,5,46,238,5,5,147,237,5,5,148,237,5,5,229,185,5,5,176,171,5,5,77,235,5,5,48,167,5,5,242,206,5,5,179,166,5,5,5,234,5,5,108,189,5,5,207,246,5,5,183,165,5,5,136,214,5,5,100,229,5,5,11,209,5,5,12,200,5,5,56,173,5,5,184,245,5,5,249,230,5,5,246,179,5,5,156,172,5,5,226,172,5,5,152,203,5,5,63,181,5,5,157,183,5,5,65,212,5,5,156,206,5,5,248,200,5,5,86,206,5,5,76,210,5,5,168,177,5,5,169,216,5,5,72,199,5,5,174,246,5,5,41,185,5,5,20,165,5,5,125,243,5,5,10,224,5,5,79,183,5,5,210,174,5,5,157,206,5,5,200,190,5,5,246,238,5,5,20,186,5,5,199,196,5,5,175,243,5,5,34,241,5,5,207,206,5,5,69,187,5,5,148,177,5,5,94,215,5,5,158,199,5,5,139,199,5,5,98,244,5,5,78,224,5,5,190,228,5,5,149,181,5,5,100,176,5,5,223,241,5,5,106,245,5,5,120,183,5,5,3,226,5,5,76,203,5,5,206,179,5,5,16,217,5,5,85,248,5,5,22,246,5,5,244,176,5,5,35,230,5,5,240,169,5,5,239,175,5,5,31,231,5,5,205,210,5,5,14,200,5,5,196,245,5,5,127,210,5,5,81,226,5,5,148,171,5,5,214,174,5,5,198,203,5,5,158,178,5,5,176,239,5,5,251,222,5,5,206,169,5,5,43,201,5,5,178,171,5,5,206,238,5,5,103,244,5,5,102,217,5,5,107,203,5,5,229,245,5,5,5,170,5,5,99,249,5,5,86,221,5,5,224,209,5,5,70,227,5,5,72,214,5,5,56,182,5,5,192,188,5,5,67,170,5,5,80,230,5,5,114,235,5,5,101,168,5,5,128,246,5,5,142,245,5,5,169,204,5,5,7,199,5,5,135,238,5,5,127,209,5,5,24,164,5,5,194,216,5,5,207,179,5,5,225,193,5,5,160,225,5,5,175,241,5,5,41,168,5,5,51,213,5,5,54,249,5,5,225,244,5,5,64,231,5,5,220,230,5,5,16,223,5,5,43,188,5,5,243,169,5,5,61,167,5,5,136,238,5,5,20,169,5,5,90,192,5,5,160,196,5,5,235,210,5,5,90,203,5,5,32,236,5,5,178,220,5,5,55,249,5,5,116,203,5,5,65,231,5,5,36,172,5,5,106,244,5,5,79,202,5,5,163,236,5,5,34,184,5,5,106,215,5,5,154,179,5,5,120,167,5,5,113,186,5,5,71,183,5,5,9,164,5,5,63,238,5,5,42,168,5,5,140,168,5,5,120,240,5,5,79,168,5,5,113,248,5,5,88,185,5,5,140,217,5,5,103,170,5,5,107,239,5,5,14,221,5,5,215,195,5,5,219,249,5,5,215,183,5,5,197,186,5,5,179,176,5,5,230,193,5,5,143,242,5,5,194,205,5,5,119,222,5,5,17,225,5,5,253,231,5,5,67,198,5,5,124,183,5,5,211,185,5,5,70,169,5,5,124,219,5,5,79,199,5,5,80,199,5,5,150,238,5,5,125,183,5,5,60,211,5,5,64,169,5,5,67,168,5,5,24,193,5,5,69,245,5,5,168,209,5,5,59,182,5,5,123,220,5,5,35,170,5,5,109,215,5,5,110,215,5,5,132,169,5,5,233,187,5,5,139,188,5,5,147,199,5,5,235,193,5,5,125,176,5,5,127,218,5,5,209,216,5,5,112,239,5,5,148,199,5,5,247,212,5,5,165,196,5,5,21,230,5,5,248,212,5,5,58,243,5,5,91,224,5,5,3,204,5,5,246,169,5,5,66,173,5,5,243,172,5,5,63,215,5,5,147,240,5,5,114,200,5,5,106,204,5,5,238,174,5,5,98,227,5,5,76,165,5,5,106,228,5,5,37,237,5,5,66,211,5,5,177,188,5,5,185,200,5,5,8,216,5,5,38,184,5,5,253,178,5,5,148,240,5,5,70,234,5,5,73,238,5,5,103,184,5,5,124,184,5,5,21,169,5,5,53,181,5,5,40,224,5,5,249,205,5,5,193,233,5,5,237,247,5,5,143,168,5,5,86,231,5,5,198,230,5,5,21,183,5,5,149,242,5,5,126,179,5,5,127,244,5,5,81,234,5,5,40,184,5,5,230,248,5,5,181,244,5,5,184,171,5,5,115,165,5,5,22,169,5,5,200,228,5,5,175,216,5,5,221,183,5,5,2,178,5,5,97,188,5,5,20,249,5,5,77,186,5,5,75,243,5,5,239,229,5,5,154,189,5,5,76,204,5,5,104,184,5,5,79,186,5,5,105,210,5,5,136,244,5,5,241,229,5,5,144,200,5,5,91,212,5,5,83,171,5,5,235,186,5,5,169,190,5,5,206,242,5,5,182,221,5,5,82,186,5,5,204,231,5,5,127,203,5,5,116,207,5,5,117,207,5,5,62,197,5,5,178,249,5,5,19,169,5,5,188,231,5,5,29,235,5,5,66,237,5,5,65,174,5,5,199,163,5,5,106,231,5,5,211,214,5,5,22,216,5,5,20,171,5,5,164,235,5,5,103,179,5,5,250,163,5,5,158,202,5,5,3,193,5,5,142,184,5,5,58,217,5,5,119,242,5,5,132,222,5,5,184,197,5,5,158,190,5,5,68,237,5,5,45,183,5,5,128,171,5,5,78,235,5,5,77,210,5,5,101,229,5,5,95,234,5,5,232,240,5,5,123,231,5,5,189,183,5,5,45,174,5,5,130,231,5,5,198,186,5,5,67,217,5,5,143,163,5,5,199,230,5,5,10,183,5,5,8,184,5,5,10,184,5,5,137,244,5,5,170,190,5,5,173,171,5,5,108,184,5,5,96,231,5,5,31,179,5,5,250,193,5,5,194,219,5,5,130,212,5,5,4,248,5,5,15,228,5,5,198,238,5,5,180,181,5,5,122,237,5,5,188,246,5,5,57,230,5,5,210,241,5,5,132,201,5,5,132,239,5,5,119,206,5,5,155,222,5,5,89,171,5,5,191,221,5,5,95,176,5,5,137,201,5,5,87,233,5,5,66,194,5,5,46,220,5,5,214,177,5,5,201,246,5,5,137,239,5,5,15,164,5,5,233,226,5,5,234,226,5,5,175,226,5,5,183,228,5,5,54,195,5,5,95,217,5,5,47,227,5,5,103,242,5,5,212,200,5,5,154,239,5,5,43,181,5,5,17,227,5,5,188,215,5,5,197,194,5,5,100,225,5,5,120,212,5,5,198,194,5,5,129,214,5,5,39,232,5,5,112,219,5,5,20,164,5,5,197,197,5,5,31,243,5,5,130,214,5,5,16,203,5,5,187,228,5,5,186,224,5,5,53,231,5,5,87,201,5,5,93,171,5,5,149,195,5,5,183,196,5,5,9,166,5,5,149,236,5,5,19,234,5,5,132,232,5,5,178,202,5,5,254,248,5,5,179,202,5,5,176,243,5,5,96,171,5,5,150,195,5,5,97,211,5,5,16,212,5,5,177,220,5,5,98,205,5,5,215,174,5,5,115,184,5,5,93,166,5,5,174,200,5,5,6,170,5,5,5,211,5,5,91,198,5,5,86,248,5,5,247,226,5,5,116,184,5,5,226,205,5,5,118,184,5,5,247,218,5,5,26,248,5,5,25,164,5,5,184,196,5,5,119,184,5,5,7,211,5,5,126,169,5,5,152,223,5,5,79,207,5,5,125,193,5,5,8,211,5,5,236,198,5,5,118,245,5,5,227,187,5,5,253,226,5,5,120,184,5,5,201,219,5,5,193,228,5,5,70,246,5,5,47,214,5,5,185,196,5,5,104,200,5,5,234,187,5,5,70,208,5,5,186,200,5,5,164,240,5,5,195,239,5,5,35,164,5,5,215,210,5,5,178,226,5,5,36,164,5,5,225,173,5,5,34,235,5,5,130,178,5,5,158,235,5,5,209,217,5,5,136,175,5,5,85,191,5,5,135,178,5,5,19,228,5,5,187,166,5,5,195,173,5,5,115,222,5,5,30,174,5,5,190,227,5,5,58,195,5,5,9,206,5,5,14,206,5,5,117,222,5,5,125,246,5,5,67,233,5,5,230,217,5,5,145,229,5,5,143,178,5,5,148,175,5,5,201,214,5,5,128,203,5,5,251,227,5,5,50,239,5,5,51,239,5,5,52,239,5,5,126,191,5,5,190,204,5,5,60,229,5,5,178,224,5,5,253,228,5,5,254,228,5,5,155,169,5,5,123,191,5,5,7,225,5,5,22,188,5,5,151,215,5,5,152,215,5,5,245,196,5,5,26,242,5,5,73,247,5,5,27,242,5,5,18,188,5,5,19,188,5,5,156,241,5,5,186,170,5,5,74,247,5,5,75,247,5,5,76,247,5,5,128,191,5,5,157,241,5,5,100,178,5,5,152,196,5,5,229,222,5,5,170,204,5,5,124,192,5,5,52,193,5,5,125,192,5,5,79,182,5,5,129,192,5,5,130,192,5,5,183,226,5,5,205,243,5,5,57,223,5,5,115,195,5,5,146,183,5,5,183,205,5,5,50,246,5,5,42,184,5,5,234,206,5,5,36,168,5,5,135,234,5,5,107,213,5,5,207,164,5,5,194,206,5,5,210,203,5,5,72,181,5,5,158,211,5,5,212,180,5,5,211,203,5,5,250,244,5,5,94,177,5,5,190,226,5,5,18,227,5,5,173,168,5,5,216,201,5,5,60,214,5,5,215,220,5,5,61,214,5,5,153,183,5,5,109,220,5,5,189,212,5,5,60,246,5,5,126,170,5,5,149,237,5,5,9,186,5,5,184,168,5,5,220,180,5,5,207,172,5,5,108,229,5,5,73,214,5,5,205,181,5,5,71,191,5,5,74,191,5,5,86,213,5,5,137,234,5,5,76,191,5,5,86,207,5,5,85,214,5,5,97,207,5,5,112,207,5,5,248,187,5,5,188,207,5,5,123,229,5,5,162,213,5,5,185,223,5,5,137,182,5,5,199,183,5,5,37,228,5,5,165,245,5,5,36,215,5,5,25,187,5,5,188,237,5,5,177,175,5,5,149,200,5,5,226,190,5,5,9,240,5,5,251,208,5,5,112,230,5,5,84,245,5,5,115,198,5,5,134,228,5,5,5,248,5,5,148,225,5,5,21,237,5,5,252,208,5,5,113,230,5,5,201,248,5,5,84,164,5,5,211,241,5,5,14,239,5,5,243,240,5,5,88,245,5,5,134,203,5,5,192,237,5,5,45,202,5,5,59,210,5,5,94,173,5,5,189,246,5,5,157,208,5,5,106,234,5,5,115,210,5,5,158,208,5,5,164,223,5,5,206,203,5,5,154,211,5,5,203,192,5,5,180,215,5,5,139,238,5,5,17,186,5,5,137,175,5,5,0,136,5,5,4,233,5,5,5,233,5,5,60,244,5,5,44,207,5,5,184,192,5,5,40,195,5,5,67,192,5,5,59,217,5,5,170,166,5,5,37,187,5,5,21,181,5,5,159,211,5,5,159,242,5,5,68,174,5,5,13,215,5,5,68,203,5,5,168,189,5,5,22,182,5,5,237,167,5,5,143,238,5,5,81,175,5,5,25,197,5,5,204,248,5,5,160,211,5,5,64,199,5,5,191,166,5,5,224,171,5,5,238,238,5,5,22,181,5,5,91,189,5,5,34,223,5,5,209,168,5,5,226,178,5,5,119,198,5,5,103,196,5,5,14,215,5,5,49,170,5,5,165,182,5,5,60,217,5,5,26,240,5,5,3,166,5,5,92,197,5,5,0,138,5,5,133,190,5,5,204,237,5,5,199,174,5,5,217,217,5,5,23,177,5,5,8,190,5,5,7,239,5,5,30,239,5,5,216,191,5,5,42,212,5,5,8,179,5,5,144,239,5,5,67,172,5,5,237,226,5,5,200,238,5,5,9,246,5,5,168,200,5,5,194,218,5,5,92,171,5,5,252,186,5,5,163,202,5,5,168,182,5,5,10,246,5,5,104,242,5,5,99,193,5,5,187,213,5,5,253,186,5,5,161,241,5,5,84,204,5,5,70,221,5,5,159,190,5,5,241,203,5,5,157,237,5,5,158,237,5,5,64,248,5,5,7,214,5,5,101,166,5,5,192,209,5,5,118,212,5,5,201,173,5,5,202,173,5,5,49,183,5,5,255,186,5,5,39,242,5,5,195,215,5,5,147,201,5,5,138,175,5,5,151,228,5,5,95,225,5,5,199,181,5,5,232,192,5,5,45,208,5,5,248,197,5,5,191,213,5,5,169,243,5,5,14,248,5,5,140,186,5,5,188,195,5,5,173,185,5,5,38,185,5,5,141,215,5,5,15,212,5,5,55,197,5,5,167,226,5,5,168,226,5,5,59,179,5,5,224,188,5,5,140,199,5,5,208,206,5,5,42,185,5,5,184,208,5,5,234,171,5,5,200,196,5,5,201,196,5,5,220,232,5,5,84,193,5,5,210,234,5,5,250,240,5,5,251,240,5,5,205,192,5,5,201,190,5,5,202,190,5,5,150,186,5,5,141,207,5,5,55,178,5,5,78,221,5,5,143,193,5,5,177,243,5,5,235,178,5,5,85,198,5,5,79,221,5,5,65,246,5,5,192,214,5,5,249,167,5,5,129,242,5,5,95,237,5,5,153,203,5,5,178,164,5,5,221,232,5,5,12,196,5,5,236,178,5,5,111,220,5,5,85,193,5,5,178,243,5,5,205,231,5,5,26,232,5,5,44,201,5,5,192,247,5,5,217,245,5,5,36,244,5,5,207,173,5,5,23,210,5,5,37,244,5,5,166,180,5,5,230,239,5,5,239,218,5,5,71,227,5,5,40,232,5,5,224,241,5,5,225,237,5,5,234,221,5,5,166,195,5,5,92,191,5,5,227,242,5,5,241,169,5,5,92,198,5,5,224,201,5,5,225,201,5,5,223,200,5,5,150,181,5,5,48,229,5,5,207,169,5,5,174,210,5,5,107,245,5,5,193,247,5,5,92,233,5,5,22,186,5,5,44,195,5,5,177,242,5,5,178,242,5,5,71,246,5,5,93,233,5,5,147,223,5,5,26,237,5,5,60,231,5,5,75,195,5,5,206,210,5,5,194,247,5,5,245,180,5,5,253,185,5,5,216,181,5,5,123,178,5,5,228,212,5,5,126,247,5,5,119,234,5,5,103,176,5,5,66,231,5,5,164,203,5,5,93,195,5,5,44,188,5,5,113,245,5,5,100,237,5,5,132,209,5,5,124,231,5,5,28,246,5,5,182,164,5,5,129,177,5,5,184,234,5,5,155,210,5,5,14,250,5,5,244,183,5,5,185,234,5,5,137,202,5,5,112,227,5,5,248,230,5,5,117,237,5,5,101,233,5,5,62,206,5,5,228,187,5,5,216,195,5,5,136,224,5,5,51,177,5,5,105,234,5,5,205,177,5,5,192,181,5,5,2,186,5,5,51,221,5,5,119,220,5,5,120,220,5,5,106,238,5,5,37,234,5,5,177,211,5,5,40,211,5,5,216,234,5,5,31,233,5,5,144,175,5,5,145,175,5,5,54,213,5,5,114,248,5,5,5,167,5,5,243,190,5,5,109,216,5,5,138,234,5,5,57,163,5,5,210,210,5,5,4,204,5,5,244,242,5,5,181,185,5,5,145,220,5,5,233,188,5,5,235,187,5,5,236,187,5,5,178,205,5,5,138,176,5,5,117,178,5,5,70,233,5,5,103,204,5,5,48,194,5,5,191,241,5,5,5,204,5,5,192,241,5,5,169,207,5,5,90,220,5,5,149,240,5,5,68,217,5,5,57,183,5,5,109,241,5,5,110,241,5,5,189,239,5,5,252,183,5,5,159,215,5,5,100,202,5,5,90,214,5,5,47,195,5,5,2,213,5,5,12,177,5,5,154,238,5,5,33,233,5,5,171,246,5,5,196,239,5,5,87,231,5,5,150,175,5,5,173,189,5,5,226,231,5,5,40,248,5,5,231,248,5,5,223,243,5,5,230,230,5,5,191,203,5,5,117,187,5,5,243,193,5,5,252,190,5,5,253,190,5,5,136,177,5,5,91,231,5,5,32,213,5,5,12,207,5,5,109,224,5,5,220,244,5,5,112,196,5,5,201,242,5,5,254,245,5,5,63,183,5,5,92,212,5,5,4,224,5,5,13,235,5,5,171,190,5,5,140,177,5,5,141,177,5,5,28,184,5,5,207,242,5,5,204,242,5,5,13,243,5,5,144,196,5,5,14,243,5,5,45,226,5,5,77,196,5,5,46,226,5,5,253,219,5,5,29,201,5,5,77,206,5,5,214,217,5,5,238,223,5,5,239,223,5,5,204,187,5,5,186,194,5,5,251,232,5,5,186,209,5,5,38,207,5,5,217,194,5,5,40,207,5,5,247,244,5,5,13,169,5,5,14,169,5,5,169,223,5,5,24,210,5,5,30,210,5,5,124,202,5,5,210,239,5,5,155,235,5,5,0,130,5,5,59,218,5,5,208,219,5,5,96,216,5,5,145,239,5,5,186,205,5,5,4,218,5,5,242,207,5,5,0,142,5,5,14,218,5,5,159,205,5,5,57,174,5,5,207,231,5,5,244,164,5,5,28,227,5,5,119,166,5,5,190,177,5,5,200,229,5,5,238,172,5,5,227,183,5,5,185,226,5,5,71,173,5,5,164,166,5,5,147,218,5,5,172,212,5,5,59,199,5,5,22,176,5,5,5,246,5,5,43,221,5,5,111,180,5,5,82,175,5,5,98,169,5,5,248,166,5,5,165,166,5,5,246,180,5,5,37,163,5,5,116,188,5,5,189,218,5,5,35,220,5,5,70,163,5,5,190,218,5,5,229,176,5,5,104,169,5,5,42,240,5,5,43,240,5,5,174,168,5,5,81,209,5,5,232,207,5,5,184,230,5,5,201,229,5,5,86,175,5,5,114,221,5,5,209,229,5,5,193,209,5,5,166,220,5,5,195,226,5,5,121,212,5,5,47,213,5,5,142,164,5,5,94,175,5,5,215,193,5,5,19,224,5,5,185,168,5,5,47,221,5,5,102,236,5,5,175,246,5,5,97,175,5,5,16,246,5,5,9,225,5,5,154,227,5,5,185,208,5,5,246,231,5,5,164,193,5,5,68,170,5,5,24,178,5,5,29,198,5,5,118,221,5,5,195,216,5,5,101,171,5,5,23,246,5,5,197,245,5,5,114,174,5,5,87,240,5,5,147,164,5,5,189,168,5,5,70,177,5,5,205,194,5,5,62,167,5,5,92,201,5,5,155,179,5,5,104,171,5,5,91,203,5,5,134,180,5,5,24,200,5,5,213,222,5,5,63,228,5,5,139,170,5,5,100,172,5,5,150,165,5,5,166,193,5,5,254,231,5,5,101,172,5,5,148,164,5,5,52,221,5,5,130,206,5,5,140,224,5,5,135,174,5,5,14,219,5,5,240,198,5,5,244,172,5,5,133,226,5,5,53,165,5,5,114,165,5,5,59,221,5,5,117,171,5,5,144,209,5,5,75,224,5,5,109,173,5,5,238,170,5,5,150,164,5,5,41,224,5,5,138,171,5,5,177,225,5,5,188,203,5,5,167,215,5,5,43,186,5,5,151,192,5,5,167,168,5,5,63,184,5,5,191,204,5,5,81,166,5,5,85,166,5,5,165,216,5,5,161,192,5,5,139,241,5,5,208,200,5,5,95,242,5,5,13,242,5,5,133,202,5,5,172,194,5,5,21,168,5,5,125,181,5,5,21,232,5,5,173,194,5,5,170,222,5,5,67,169,5,5,135,211,5,5,251,164,5,5,217,210,5,5,205,178,5,5,130,226,5,5,254,193,5,5,9,241,5,5,167,163,5,5,208,203,5,5,243,216,5,5,184,189,5,5,48,245,5,5,192,222,5,5,23,196,5,5,92,244,5,5,203,176,5,5,15,167,5,5,162,177,5,5,224,240,5,5,166,171,5,5,213,192,5,5,214,233,5,5,154,174,5,5,166,182,5,5,115,167,5,5,194,172,5,5,69,216,5,5,218,239,5,5,195,218,5,5,13,181,5,5,196,218,5,5,239,214,5,5,36,178,5,5,11,233,5,5,131,214,5,5,200,181,5,5,12,194,5,5,26,196,5,5,195,170,5,5,146,181,5,5,75,242,5,5,102,166,5,5,86,166,5,5,141,225,5,5,43,185,5,5,21,165,5,5,69,202,5,5,203,238,5,5,141,229,5,5,213,195,5,5,214,249,5,5,55,182,5,5,96,237,5,5,142,229,5,5,128,211,5,5,87,248,5,5,19,248,5,5,169,171,5,5,41,236,5,5,243,233,5,5,45,216,5,5,209,172,5,5,171,204,5,5,234,237,5,5,228,193,5,5,103,188,5,5,158,227,5,5,126,188,5,5,114,186,5,5,44,236,5,5,248,218,5,5,50,167,5,5,130,211,5,5,174,204,5,5,175,204,5,5,195,205,5,5,107,238,5,5,62,196,5,5,236,185,5,5,241,243,5,5,23,188,5,5,105,175,5,5,37,190,5,5,121,240,5,5,172,225,5,5,92,224,5,5,224,181,5,5,133,235,5,5,6,216,5,5,170,171,5,5,34,225,5,5,70,245,5,5,215,172,5,5,175,194,5,5,36,196,5,5,93,196,5,5,77,165,5,5,67,211,5,5,91,214,5,5,12,189,5,5,13,189,5,5,249,187,5,5,203,189,5,5,252,202,5,5,221,244,5,5,74,215,5,5,139,181,5,5,235,249,5,5,236,186,5,5,142,181,5,5,204,243,5,5,210,217,5,5,160,242,5,5,144,181,5,5,164,176,5,5,219,166,5,5,81,205,5,5,42,200,5,5,17,183,5,5,45,200,5,5,216,194,5,5,89,184,5,5,76,195,5,5,228,165,5,5,10,240,5,5,26,209,5,5,208,184,5,5,128,173,5,5,18,207,5,5,220,242,5,5,44,240,5,5,187,232,5,5,54,165,5,5,254,239,5,5,84,239,5,5,68,239,5,5,80,236,5,5,32,227,5,5,69,239,5,5,72,227,5,5,80,227,5,5,187,194,5,5,95,177,5,5,206,243,5,5,52,199,5,5,58,174,5,5,128,201,5,5,242,244,5,5,76,182,5,5,30,223,5,5,53,206,5,5,16,163,5,5,181,228,5,5,223,176,5,5,9,221,5,5,124,207,5,5,149,179,5,5,155,174,5,5,204,176,5,5,35,171,5,5,85,215,5,5,248,198,5,5,225,223,5,5,148,184,5,5,143,206,5,5,212,220,5,5,146,239,5,5,73,171,5,5,43,212,5,5,172,246,5,5,227,227,5,5,235,230,5,5,96,217,5,5,152,206,5,5,78,177,5,5,10,221,5,5,57,206,5,5,57,211,5,5,155,167,5,5,31,176,5,5,58,211,5,5,29,165,5,5,30,165,5,5,196,227,5,5,36,176,5,5,36,205,5,5,91,192,5,5,210,191,5,5,117,172,5,5,55,165,5,5,138,195,5,5,154,205,5,5,136,165,5,5,159,214,5,5,49,176,5,5,152,193,5,5,65,206,5,5,173,201,5,5,43,171,5,5,157,193,5,5,181,246,5,5,202,207,5,5,146,202,5,5,147,202,5,5,207,193,5,5,68,176,5,5,5,190,5,5,6,190,5,5,124,182,5,5,80,200,5,5,240,218,5,5,91,200,5,5,92,200,5,5,190,239,5,5,191,239,5,5,201,239,5,5,202,239,5,5,193,248,5,5,195,248,5,5,38,228,5,5,140,216,5,5,20,247,5,5,164,182,5,5,27,243,5,5,28,243,5,5,65,248,5,5,6,223,5,5,20,234,5,5,145,165,5,5,79,177,5,5,10,166,5,5,157,167,5,5,15,250,5,5,85,168,5,5,15,221,5,5,214,244,5,5,28,223,5,5,79,223,5,5,20,222,5,5,53,182,5,5,46,202,5,5,168,173,5,5,198,222,5,5,16,240,5,5,83,247,5,5,186,223,5,5,230,164,5,5,151,176,5,5,92,189,5,5,69,174,5,5,89,247,5,5,65,221,5,5,149,234,5,5,90,247,5,5,144,206,5,5,87,175,5,5,182,212,5,5,5,218,5,5,167,198,5,5,28,244,5,5,232,199,5,5,87,191,5,5,49,198,5,5,93,247,5,5,138,225,5,5,205,218,5,5,223,216,5,5,153,206,5,5,201,181,5,5,76,235,5,5,57,219,5,5,39,185,5,5,79,235,5,5,58,175,5,5,210,166,5,5,78,213,5,5,239,178,5,5,181,202,5,5,10,225,5,5,219,218,5,5,80,235,5,5,9,220,5,5,44,185,5,5,73,248,5,5,66,214,5,5,223,203,5,5,94,205,5,5,73,227,5,5,77,203,5,5,243,165,5,5,45,201,5,5,216,174,5,5,231,217,5,5,72,246,5,5,121,167,5,5,176,241,5,5,238,245,5,5,229,212,5,5,90,221,5,5,96,168,5,5,178,180,5,5,63,175,5,5,93,221,5,5,96,221,5,5,130,165,5,5,64,175,5,5,158,226,5,5,197,223,5,5,59,204,5,5,115,200,5,5,62,204,5,5,33,200,5,5,227,169,5,5,43,191,5,5,58,216,5,5,62,164,5,5,222,211,5,5,241,215,5,5,36,216,5,5,245,164,5,5,2,240,5,5,15,185,5,5,87,230,5,5,128,175,5,5,211,177,5,5,228,191,5,5,155,202,5,5,97,230,5,5,89,230,5,5,156,224,5,5,22,180,5,5,92,179,5,5,93,179,5,5,103,192,5,5,23,209,5,5,33,227,5,5,33,235,5,5,180,218,5,5,107,247,5,5,183,170,5,5,167,212,5,5,7,173,5,5,93,244,5,5,97,181,5,5,225,171,5,5,49,247,5,5,199,222,5,5,149,226,5,5,90,245,5,5,47,202,5,5,49,245,5,5,111,213,5,5,41,203,5,5,8,242,5,5,235,246,5,5,40,235,5,5,88,237,5,5,80,196,5,5,53,248,5,5,230,165,5,5,181,218,5,5,159,208,5,5,230,234,5,5,180,224,5,5,134,179,5,5,139,182,5,5,116,210,5,5,90,184,5,5,4,201,5,5,34,218,5,5,48,184,5,5,9,197,5,5,41,215,5,5,243,215,5,5,209,195,5,5,220,198,5,5,106,195,5,5,130,173,5,5,231,199,5,5,136,179,5,5,109,237,5,5,50,245,5,5,194,238,5,5,37,225,5,5,140,226,5,5,45,207,5,5,27,240,5,5,16,164,5,5,226,223,5,5,226,171,5,5,228,166,5,5,6,233,5,5,167,232,5,5,80,244,5,5,46,207,5,5,103,164,5,5,151,184,5,5,47,183,5,5,66,221,5,5,166,166,5,5,125,166,5,5,247,180,5,5,69,199,5,5,65,199,5,5,47,207,5,5,20,175,5,5,117,188,5,5,111,235,5,5,17,224,5,5,227,176,5,5,88,175,5,5,138,239,5,5,183,181,5,5,36,242,5,5,25,174,5,5,57,202,5,5,135,167,5,5,166,216,5,5,93,249,5,5,149,183,5,5,204,193,5,5,70,174,5,5,112,213,5,5,255,164,5,5,11,242,5,5,96,209,5,5,157,217,5,5,43,235,5,5,58,166,5,5,84,201,5,5,247,216,5,5,204,225,5,5,2,165,5,5,134,229,5,5,183,212,5,5,230,179,5,5,27,250,5,5,125,233,5,5,136,178,5,5,154,169,5,5,153,218,5,5,28,240,5,5,48,227,5,5,123,183,5,5,218,217,5,5,49,227,5,5,117,213,5,5,197,185,5,5,199,198,5,5,254,196,5,5,87,170,5,5,158,218,5,5,3,214,5,5,187,188,5,5,14,181,5,5,85,201,5,5,24,177,5,5,249,197,5,5,64,197,5,5,7,194,5,5,200,198,5,5,184,212,5,5,30,204,5,5,138,229,5,5,195,235,5,5,224,198,5,5,220,209,5,5,81,244,5,5,75,200,5,5,43,200,5,5,88,223,5,5,45,203,5,5,147,239,5,5,37,218,5,5,206,193,5,5,22,189,5,5,2,200,5,5,194,231,5,5,251,216,5,5,65,223,5,5,255,228,5,5,217,184,5,5,170,198,5,5,3,239,5,5,55,195,5,5,9,179,5,5,74,181,5,5,199,194,5,5,44,212,5,5,190,212,5,5,82,209,5,5,207,248,5,5,137,167,5,5,198,195,5,5,57,175,5,5,76,200,5,5,207,237,5,5,234,214,5,5,216,182,5,5,122,242,5,5,86,195,5,5,234,233,5,5,65,183,5,5,181,249,5,5,197,170,5,5,5,250,5,5,2,250,5,5,251,248,5,5,208,167,5,5,225,196,5,5,129,209,5,5,209,248,5,5,74,248,5,5,202,181,5,5,220,203,5,5,198,212,5,5,138,219,5,5,23,189,5,5,218,180,5,5,122,198,5,5,250,197,5,5,101,209,5,5,221,180,5,5,135,166,5,5,57,240,5,5,170,210,5,5,56,200,5,5,191,212,5,5,212,163,5,5,106,170,5,5,99,239,5,5,194,198,5,5,110,237,5,5,45,212,5,5,139,225,5,5,104,196,5,5,98,245,5,5,99,245,5,5,14,242,5,5,172,186,5,5,70,189,5,5,218,200,5,5,44,235,5,5,71,240,5,5,210,248,5,5,56,187,5,5,98,184,5,5,66,183,5,5,215,237,5,5,17,212,5,5,136,217,5,5,73,210,5,5,100,245,5,5,4,172,5,5,81,235,5,5,184,172,5,5,186,163,5,5,67,178,5,5,240,234,5,5,43,225,5,5,173,170,5,5,103,236,5,5,183,202,5,5,104,194,5,5,99,194,5,5,170,216,5,5,157,175,5,5,123,208,5,5,56,197,5,5,103,181,5,5,203,190,5,5,214,212,5,5,175,195,5,5,131,194,5,5,210,183,5,5,112,211,5,5,21,224,5,5,183,178,5,5,177,193,5,5,83,220,5,5,87,206,5,5,208,246,5,5,6,249,5,5,174,205,5,5,189,202,5,5,21,186,5,5,75,248,5,5,199,199,5,5,117,197,5,5,66,212,5,5,247,179,5,5,222,180,5,5,225,180,5,5,237,183,5,5,94,247,5,5,254,225,5,5,230,198,5,5,249,200,5,5,199,212,5,5,29,225,5,5,254,215,5,5,17,246,5,5,84,200,5,5,226,237,5,5,226,236,5,5,128,233,5,5,206,204,5,5,8,250,5,5,169,177,5,5,65,207,5,5,84,234,5,5,112,225,5,5,60,175,5,5,222,163,5,5,105,209,5,5,75,234,5,5,32,176,5,5,100,194,5,5,109,178,5,5,70,183,5,5,185,249,5,5,82,216,5,5,94,222,5,5,38,177,5,5,46,201,5,5,116,226,5,5,139,212,5,5,14,230,5,5,122,216,5,5,244,233,5,5,218,165,5,5,7,172,5,5,94,233,5,5,167,180,5,5,188,209,5,5,28,224,5,5,229,163,5,5,103,217,5,5,230,245,5,5,171,191,5,5,86,210,5,5,73,246,5,5,100,248,5,5,196,247,5,5,31,165,5,5,104,217,5,5,224,200,5,5,10,172,5,5,32,165,5,5,105,240,5,5,204,171,5,5,9,250,5,5,112,195,5,5,101,176,5,5,133,243,5,5,227,237,5,5,196,224,5,5,70,170,5,5,86,209,5,5,65,195,5,5,206,247,5,5,64,238,5,5,108,209,5,5,228,242,5,5,162,184,5,5,142,192,5,5,186,249,5,5,129,233,5,5,254,235,5,5,162,186,5,5,133,173,5,5,233,244,5,5,156,196,5,5,161,196,5,5,28,212,5,5,206,194,5,5,144,249,5,5,164,236,5,5,171,236,5,5,202,208,5,5,177,241,5,5,114,237,5,5,98,201,5,5,80,202,5,5,53,193,5,5,80,207,5,5,146,226,5,5,211,183,5,5,19,214,5,5,94,195,5,5,109,221,5,5,16,250,5,5,48,234,5,5,17,218,5,5,215,228,5,5,96,163,5,5,113,195,5,5,102,249,5,5,133,213,5,5,26,201,5,5,18,250,5,5,69,244,5,5,89,187,5,5,19,236,5,5,156,179,5,5,141,243,5,5,182,233,5,5,21,217,5,5,177,210,5,5,145,179,5,5,36,201,5,5,188,249,5,5,216,228,5,5,52,172,5,5,237,194,5,5,197,227,5,5,84,235,5,5,69,168,5,5,102,172,5,5,103,172,5,5,167,193,5,5,110,223,5,5,86,234,5,5,79,234,5,5,77,234,5,5,217,234,5,5,15,172,5,5,98,179,5,5,17,221,5,5,219,182,5,5,151,238,5,5,253,229,5,5,140,170,5,5,108,194,5,5,31,212,5,5,86,232,5,5,176,204,5,5,105,200,5,5,91,195,5,5,131,188,5,5,195,238,5,5,118,237,5,5,239,210,5,5,244,243,5,5,98,191,5,5,234,228,5,5,137,246,5,5,113,182,5,5,111,170,5,5,91,210,5,5,201,227,5,5,220,249,5,5,142,211,5,5,217,195,5,5,8,177,5,5,128,218,5,5,237,185,5,5,7,208,5,5,141,208,5,5,137,208,5,5,129,248,5,5,201,168,5,5,229,187,5,5,97,235,5,5,18,242,5,5,159,226,5,5,15,219,5,5,220,182,5,5,67,225,5,5,53,209,5,5,178,211,5,5,164,167,5,5,241,163,5,5,117,165,5,5,155,212,5,5,6,204,5,5,196,232,5,5,111,223,5,5,140,188,5,5,204,168,5,5,166,196,5,5,106,200,5,5,170,209,5,5,128,225,5,5,245,243,5,5,246,243,5,5,88,213,5,5,3,213,5,5,50,176,5,5,2,180,5,5,91,178,5,5,145,178,5,5,144,178,5,5,177,236,5,5,178,207,5,5,255,233,5,5,160,214,5,5,245,172,5,5,136,173,5,5,182,185,5,5,212,185,5,5,160,226,5,5,69,198,5,5,57,209,5,5,111,215,5,5,16,172,5,5,131,206,5,5,12,188,5,5,71,245,5,5,87,234,5,5,170,207,5,5,159,234,5,5,223,215,5,5,32,180,5,5,33,229,5,5,230,167,5,5,150,240,5,5,231,225,5,5,64,215,5,5,58,183,5,5,52,176,5,5,33,180,5,5,136,206,5,5,103,237,5,5,148,198,5,5,63,204,5,5,144,246,5,5,119,217,5,5,2,179,5,5,249,210,5,5,243,210,5,5,90,207,5,5,49,234,5,5,204,195,5,5,92,214,5,5,128,244,5,5,155,238,5,5,81,170,5,5,151,240,5,5,14,189,5,5,236,235,5,5,71,208,5,5,236,199,5,5,176,170,5,5,73,186,5,5,74,238,5,5,15,189,5,5,152,242,5,5,68,196,5,5,234,213,5,5,116,223,5,5,41,248,5,5,250,243,5,5,72,175,5,5,15,171,5,5,76,238,5,5,239,170,5,5,148,178,5,5,225,208,5,5,92,169,5,5,33,186,5,5,177,170,5,5,42,224,5,5,32,219,5,5,174,184,5,5,175,184,5,5,150,242,5,5,76,244,5,5,124,163,5,5,39,219,5,5,40,197,5,5,18,197,5,5,91,242,5,5,55,174,5,5,70,188,5,5,139,171,5,5,134,225,5,5,152,200,5,5,160,224,5,5,17,171,5,5,78,186,5,5,241,199,5,5,147,217,5,5,169,230,5,5,162,224,5,5,232,202,5,5,104,207,5,5,160,200,5,5,209,227,5,5,205,240,5,5,212,188,5,5,118,183,5,5,57,171,5,5,120,180,5,5,203,207,5,5,210,192,5,5,211,192,5,5,191,222,5,5,130,191,5,5,198,248,5,5,82,245,5,5,188,204,5,5,181,216,5,5,128,229,5,5,48,231,5,5,106,213,5,5,86,225,5,5,183,245,5,5,209,203,5,5,136,191,5,5,196,204,5,5,26,211,5,5,186,199,5,5,27,211,5,5,134,220,5,5,15,179,5,5,124,208,5,5,48,203,5,5,33,177,5,5,54,232,5,5,51,203,5,5,135,202,5,5,84,218,5,5,167,195,5,5,81,202,5,5,124,196,5,5,242,191,5,5,134,176,5,5,143,220,5,5,41,211,5,5,150,191,5,5,45,205,5,5,176,203,5,5,115,248,5,5,46,205,5,5,245,242,5,5,43,190,5,5,241,198,5,5,147,220,5,5,146,213,5,5,151,213,5,5,246,225,5,5,112,175,5,5,225,211,5,5,53,199,5,5,54,199,5,5,55,199,5,5,189,237,5,5,38,227,5,5,210,180,5,5,47,170,5,5,66,199,5,5,38,187,5,5,160,173,5,5,220,236,5,5,215,165,5,5,165,177,5,5,84,208,5,5,245,228,5,5,155,239,5,5,225,239,5,5,90,228,5,5,73,199,5,5,160,172,5,5,229,242,5,5,14,228,5,5,35,228,5,5,7,234,5,5,59,219,5,5,246,209,5,5,16,185,5,5,214,168,5,5,0,132,5,5,46,175,5,5,172,230,5,5,40,173,5,5,226,230,5,5,44,232,5,5,252,181,5,5,42,221,5,5,93,177,5,5,226,195,5,5,139,247,5,5,3,196,5,5,133,192,5,5,135,228,5,5,125,223,5,5,253,181,5,5,32,193,5,5,146,195,5,5,85,245,5,5,66,176,5,5,55,210,5,5,99,218,5,5,115,230,5,5,52,196,5,5,160,170,5,5,30,236,5,5,14,244,5,5,49,184,5,5,100,164,5,5,181,223,5,5,26,230,5,5,173,212,5,5,117,210,5,5,67,164,5,5,42,203,5,5,161,247,5,5,66,174,5,5,140,238,5,5,174,212,5,5,198,167,5,5,148,218,5,5,182,218,5,5,193,237,5,5,67,176,5,5,220,219,5,5,89,225,5,5,156,202,5,5,212,242,5,5,10,197,5,5,231,165,5,5,223,223,5,5,192,206,5,5,50,247,5,5,247,198,5,5,202,248,5,5,122,207,5,5,11,163,5,5,14,211,5,5,4,176,5,5,104,221,5,5,161,249,5,5,190,246,5,5,3,183,5,5,17,240,5,5,61,229,5,5,254,221,5,5,39,167,5,5,212,179,5,5,189,175,5,5,233,195,5,5,127,219,5,5,40,167,5,5,151,174,5,5,9,167,5,5,0,156,5,5,130,238,5,5,235,231,5,5,110,182,5,5,133,195,5,5,189,190,5,5,73,211,5,5,208,249,5,5,60,199,5,5,42,164,5,5,59,166,5,5,154,218,5,5,136,167,5,5,228,179,5,5,126,166,5,5,201,167,5,5,109,179,5,5,212,241,5,5,210,220,5,5,61,219,5,5,3,244,5,5,43,164,5,5,77,197,5,5,182,183,5,5,84,241,5,5,205,176,5,5,86,223,5,5,202,167,5,5,5,203,5,5,91,169,5,5,251,169,5,5,167,224,5,5,225,240,5,5,9,224,5,5,161,211,5,5,253,171,5,5,205,225,5,5,6,203,5,5,71,174,5,5,94,219,5,5,192,221,5,5,228,175,5,5,206,223,5,5,66,172,5,5,61,184,5,5,227,184,5,5,156,174,5,5,10,167,5,5,104,164,5,5,208,166,5,5,216,188,5,5,223,182,5,5,197,193,5,5,118,210,5,5,48,207,5,5,53,179,5,5,0,159,5,5,5,182,5,5,6,182,5,5,131,238,5,5,195,206,5,5,6,222,5,5,80,167,5,5,209,219,5,5,170,163,5,5,168,163,5,5,206,176,5,5,183,183,5,5,49,207,5,5,53,196,5,5,29,191,5,5,13,205,5,5,75,209,5,5,211,249,5,5,18,186,5,5,110,184,5,5,38,163,5,5,237,231,5,5,69,210,5,5,163,198,5,5,54,196,5,5,50,227,5,5,143,203,5,5,106,221,5,5,100,184,5,5,219,194,5,5,221,194,5,5,59,212,5,5,222,229,5,5,31,235,5,5,212,231,5,5,120,195,5,5,148,239,5,5,4,214,5,5,235,233,5,5,3,200,5,5,129,168,5,5,79,222,5,5,238,226,5,5,224,182,5,5,152,163,5,5,36,223,5,5,130,193,5,5,197,218,5,5,55,196,5,5,81,178,5,5,82,178,5,5,159,218,5,5,102,209,5,5,239,238,5,5,209,184,5,5,238,220,5,5,163,191,5,5,85,204,5,5,47,196,5,5,10,179,5,5,225,182,5,5,15,181,5,5,182,187,5,5,63,219,5,5,61,191,5,5,25,177,5,5,137,245,5,5,130,207,5,5,218,187,5,5,21,207,5,5,207,218,5,5,160,190,5,5,30,241,5,5,168,245,5,5,54,179,5,5,5,214,5,5,48,183,5,5,82,176,5,5,31,204,5,5,71,221,5,5,130,202,5,5,4,200,5,5,88,215,5,5,184,248,5,5,26,238,5,5,8,182,5,5,155,184,5,5,197,234,5,5,78,163,5,5,233,192,5,5,204,180,5,5,241,220,5,5,101,225,5,5,198,235,5,5,199,235,5,5,245,195,5,5,238,169,5,5,41,191,5,5,200,206,5,5,153,167,5,5,18,205,5,5,58,240,5,5,168,181,5,5,56,228,5,5,231,230,5,5,204,246,5,5,8,214,5,5,130,223,5,5,237,173,5,5,35,204,5,5,58,245,5,5,46,208,5,5,164,204,5,5,209,182,5,5,226,196,5,5,192,199,5,5,203,181,5,5,9,222,5,5,41,167,5,5,63,191,5,5,0,143,5,5,123,198,5,5,228,227,5,5,224,183,5,5,216,207,5,5,25,232,5,5,139,229,5,5,62,241,5,5,138,207,5,5,114,166,5,5,194,246,5,5,136,166,5,5,84,233,5,5,59,240,5,5,186,219,5,5,64,191,5,5,40,236,5,5,9,182,5,5,165,185,5,5,78,237,5,5,143,164,5,5,19,205,5,5,214,200,5,5,139,175,5,5,167,246,5,5,236,246,5,5,226,210,5,5,187,167,5,5,184,227,5,5,194,187,5,5,235,171,5,5,165,170,5,5,166,174,5,5,160,163,5,5,66,207,5,5,135,175,5,5,185,245,5,5,35,238,5,5,234,207,5,5,216,248,5,5,127,233,5,5,168,224,5,5,31,226,5,5,154,203,5,5,187,181,5,5,131,164,5,5,242,182,5,5,73,184,5,5,232,230,5,5,243,232,5,5,194,245,5,5,200,212,5,5,50,215,5,5,105,225,5,5,126,177,5,5,31,236,5,5,190,190,5,5,137,211,5,5,194,192,5,5,56,178,5,5,24,228,5,5,102,177,5,5,42,167,5,5,214,176,5,5,37,221,5,5,22,201,5,5,131,202,5,5,152,179,5,5,73,209,5,5,186,208,5,5,211,166,5,5,74,229,5,5,80,210,5,5,109,189,5,5,54,241,5,5,35,241,5,5,142,207,5,5,80,221,5,5,61,189,5,5,132,193,5,5,72,240,5,5,196,199,5,5,93,228,5,5,107,221,5,5,216,237,5,5,21,234,5,5,40,180,5,5,194,223,5,5,56,166,5,5,100,203,5,5,223,180,5,5,65,197,5,5,73,182,5,5,224,242,5,5,198,234,5,5,11,220,5,5,209,206,5,5,119,181,5,5,125,210,5,5,206,195,5,5,153,163,5,5,160,166,5,5,101,203,5,5,230,189,5,5,195,193,5,5,57,172,5,5,251,192,5,5,221,218,5,5,11,176,5,5,29,171,5,5,94,234,5,5,17,236,5,5,101,194,5,5,191,167,5,5,100,249,5,5,164,184,5,5,27,205,5,5,87,221,5,5,132,204,5,5,28,205,5,5,197,247,5,5,182,242,5,5,119,196,5,5,112,183,5,5,116,201,5,5,36,230,5,5,39,168,5,5,231,245,5,5,255,235,5,5,118,232,5,5,105,217,5,5,149,171,5,5,168,180,5,5,225,183,5,5,132,223,5,5,74,227,5,5,130,233,5,5,249,220,5,5,103,239,5,5,232,217,5,5,242,249,5,5,197,165,5,5,38,244,5,5,225,200,5,5,230,242,5,5,134,232,5,5,233,238,5,5,196,216,5,5,38,241,5,5,198,245,5,5,34,195,5,5,19,226,5,5,60,202,5,5,226,180,5,5,236,184,5,5,242,184,5,5,197,224,5,5,78,195,5,5,133,204,5,5,135,204,5,5,210,181,5,5,108,203,5,5,15,200,5,5,176,192,5,5,180,226,5,5,148,214,5,5,39,177,5,5,244,213,5,5,45,249,5,5,128,210,5,5,64,241,5,5,133,223,5,5,69,219,5,5,187,163,5,5,170,241,5,5,232,245,5,5,206,164,5,5,66,186,5,5,65,247,5,5,17,211,5,5,69,224,5,5,146,191,5,5,254,185,5,5,131,233,5,5,218,192,5,5,42,204,5,5,92,192,5,5,20,211,5,5,67,231,5,5,24,212,5,5,11,224,5,5,20,226,5,5,117,220,5,5,82,237,5,5,71,237,5,5,97,163,5,5,221,225,5,5,68,231,5,5,166,164,5,5,172,234,5,5,20,236,5,5,13,195,5,5,178,241,5,5,141,175,5,5,85,218,5,5,153,184,5,5,231,184,5,5,217,204,5,5,45,236,5,5,46,210,5,5,26,192,5,5,153,215,5,5,186,229,5,5,117,236,5,5,227,205,5,5,132,171,5,5,235,237,5,5,36,226,5,5,165,184,5,5,61,228,5,5,62,179,5,5,98,219,5,5,77,180,5,5,63,167,5,5,73,164,5,5,10,175,5,5,90,187,5,5,157,179,5,5,11,199,5,5,249,218,5,5,145,245,5,5,116,199,5,5,92,210,5,5,66,247,5,5,75,211,5,5,87,181,5,5,180,220,5,5,236,237,5,5,20,214,5,5,168,184,5,5,74,212,5,5,150,223,5,5,116,219,5,5,181,191,5,5,63,245,5,5,8,239,5,5,198,227,5,5,227,195,5,5,199,227,5,5,84,229,5,5,164,163,5,5,179,241,5,5,36,166,5,5,46,236,5,5,234,179,5,5,213,235,5,5,137,224,5,5,210,236,5,5,137,204,5,5,157,226,5,5,126,226,5,5,196,193,5,5,73,166,5,5,245,173,5,5,197,229,5,5,2,177,5,5,49,209,5,5,50,236,5,5,189,219,5,5,174,188,5,5,68,225,5,5,19,223,5,5,109,194,5,5,38,190,5,5,145,190,5,5,3,186,5,5,134,233,5,5,239,191,5,5,81,199,5,5,73,219,5,5,136,226,5,5,126,180,5,5,146,199,5,5,218,234,5,5,9,183,5,5,72,169,5,5,17,206,5,5,231,193,5,5,212,244,5,5,125,218,5,5,112,238,5,5,16,219,5,5,247,183,5,5,141,170,5,5,159,224,5,5,139,195,5,5,150,225,5,5,202,227,5,5,114,182,5,5,52,204,5,5,66,169,5,5,73,169,5,5,150,219,5,5,97,234,5,5,251,195,5,5,151,165,5,5,63,206,5,5,142,243,5,5,99,192,5,5,93,210,5,5,24,188,5,5,93,202,5,5,111,244,5,5,110,207,5,5,61,168,5,5,59,168,5,5,166,185,5,5,191,178,5,5,220,215,5,5,23,231,5,5,49,194,5,5,136,232,5,5,130,240,5,5,112,215,5,5,71,225,5,5,72,225,5,5,200,235,5,5,56,183,5,5,187,201,5,5,134,235,5,5,143,198,5,5,183,194,5,5,12,175,5,5,81,233,5,5,79,184,5,5,11,189,5,5,110,221,5,5,27,200,5,5,190,222,5,5,60,204,5,5,140,202,5,5,31,234,5,5,14,176,5,5,15,176,5,5,198,223,5,5,58,163,5,5,184,223,5,5,111,207,5,5,177,174,5,5,221,187,5,5,137,164,5,5,178,174,5,5,201,209,5,5,59,163,5,5,174,234,5,5,51,222,5,5,145,222,5,5,92,246,5,5,217,168,5,5,21,211,5,5,188,178,5,5,80,184,5,5,121,199,5,5,28,214,5,5,182,189,5,5,61,204,5,5,5,235,5,5,74,179,5,5,149,198,5,5,202,209,5,5,182,245,5,5,51,205,5,5,145,192,5,5,226,249,5,5,92,185,5,5,136,183,5,5,241,189,5,5,107,228,5,5,52,222,5,5,5,232,5,5,219,168,5,5,12,226,5,5,5,202,5,5,85,176,5,5,237,235,5,5,32,234,5,5,121,211,5,5,120,211,5,5,239,200,5,5,121,203,5,5,245,210,5,5,76,196,5,5,249,175,5,5,34,214,5,5,243,194,5,5,31,168,5,5,154,163,5,5,156,238,5,5,91,207,5,5,111,241,5,5,18,238,5,5,30,171,5,5,70,236,5,5,44,171,5,5,141,202,5,5,127,179,5,5,61,222,5,5,151,175,5,5,161,216,5,5,76,186,5,5,225,233,5,5,33,207,5,5,68,241,5,5,216,230,5,5,126,241,5,5,121,241,5,5,194,183,5,5,207,245,5,5,106,202,5,5,40,166,5,5,125,184,5,5,155,191,5,5,40,219,5,5,26,219,5,5,69,196,5,5,80,169,5,5,139,205,5,5,38,214,5,5,209,187,5,5,237,179,5,5,165,163,5,5,72,236,5,5,246,189,5,5,116,191,5,5,28,230,5,5,157,180,5,5,56,167,5,5,77,244,5,5,155,185,5,5,226,233,5,5,96,229,5,5,138,232,5,5,85,184,5,5,168,215,5,5,77,208,5,5,172,199,5,5,123,187,5,5,251,184,5,5,207,200,5,5,194,244,5,5,204,189,5,5,36,191,5,5,101,210,5,5,108,210,5,5,139,232,5,5,106,210,5,5,44,186,5,5,75,215,5,5,138,244,5,5,230,169,5,5,165,230,5,5,77,224,5,5,235,244,5,5,9,235,5,5,40,214,5,5,210,227,5,5,109,190,5,5,79,208,5,5,58,171,5,5,237,186,5,5,141,232,5,5,172,190,5,5,238,179,5,5,65,233,5,5,153,187,5,5,142,177,5,5,150,245,5,5,88,176,5,5,79,204,5,5,204,207,5,5,83,186,5,5,163,187,5,5,138,183,5,5,55,218,5,5,29,194,5,5,8,194,5,5,128,208,5,5,243,217,5,5,212,168,5,5,213,168,5,5,13,228,5,5,118,195,5,5,9,242,5,5,229,191,5,5,215,239,5,5,191,194,5,5,104,192,5,5,68,164,5,5,181,173,5,5,115,221,5,5,193,166,5,5,124,177,5,5,147,195,5,5,2,172,5,5,96,245,5,5,80,193,5,5,105,197,5,5,237,233,5,5,216,214,5,5,75,171,5,5,212,225,5,5,166,191,5,5,169,176,5,5,7,217,5,5,91,204,5,5,5,172,5,5,188,224,5,5,168,204,5,5,155,228,5,5,64,178,5,5,20,248,5,5,93,223,5,5,102,238,5,5,171,163,5,5,8,217,5,5,92,204,5,5,65,178,5,5,170,188,5,5,239,183,5,5,22,165,5,5,31,225,5,5,151,177,5,5,57,178,5,5,88,240,5,5,140,192,5,5,104,236,5,5,45,195,5,5,41,243,5,5,184,178,5,5,226,201,5,5,220,179,5,5,222,214,5,5,68,178,5,5,46,204,5,5,169,206,5,5,41,244,5,5,203,213,5,5,238,171,5,5,147,229,5,5,39,238,5,5,135,209,5,5,40,238,5,5,111,221,5,5,183,176,5,5,255,220,5,5,48,174,5,5,156,229,5,5,237,187,5,5,181,211,5,5,51,218,5,5,239,239,5,5,64,204,5,5,132,228,5,5,65,204,5,5,62,222,5,5,165,240,5,5,178,188,5,5,83,165,5,5,223,186,5,5,231,214,5,5,232,214,5,5,19,247,5,5,56,217,5,5,163,208,5,5,175,208,5,5,187,219,5,5,13,166,5,5,143,207,5,5,188,219,5,5,109,186,5,5,185,172,5,5,72,164,5,5,74,164,5,5,30,186,5,5,43,248,5,5,49,186,5,5,113,246,5,5,197,175,5,5,11,229,5,5,21,188,5,5,72,203,5,5,2,199,5,5,13,214,5,5,78,203,5,5,23,248,5,5,181,220,5,5,99,204,5,5,204,245,5,5,52,181,5,5,215,175,5,5,161,205,5,5,81,223,5,5,163,243,5,5,157,174,5,5,28,211,5,5,107,220,5,5,200,211,5,5,26,222,5,5,112,220,5,5,165,178,5,5,201,234,5,5,115,235,5,5,4,216,5,5,40,222,5,5,49,222,5,5,241,210,5,5,238,188,5,5,63,222,5,5,232,225,5,5,179,178,5,5,205,221,5,5,146,173,5,5,125,224,5,5,173,198,5,5,166,247,5,5,191,226,5,5,250,166,5,5,37,242,5,5,253,169,5,5,117,167,5,5,176,208,5,5,78,220,5,5,25,170,5,5,65,191,5,5,251,166,5,5,213,167,5,5,38,188,5,5,33,174,5,5,175,173,5,5,137,217,5,5,88,206,5,5,89,206,5,5,187,183,5,5,222,232,5,5,234,219,5,5,231,239,5,5,45,188,5,5,234,227,5,5,103,205,5,5,207,247,5,5,235,239,5,5,209,208,5,5,27,219,5,5,246,172,5,5,72,168,5,5,248,172,5,5,98,220,5,5,97,196,5,5,50,237,5,5,248,247,5,5,12,245,5,5,148,202,5,5,164,202,5,5,184,202,5,5,202,199,5,5,8,230,5,5,20,176,5,5,155,204,5,5,144,218,5,5,68,232,5,5,252,213,5,5,11,181,5,5,211,217,5,5,241,216,5,5,118,191,5,5,233,184,5,5,152,192,5,5,118,198,5,5,107,179,5,5,224,176,5,5,182,216,5,5,123,224,5,5,230,226,5,5,24,197,5,5,16,244,5,5,235,226,5,5,108,247,5,5,227,171,5,5,228,171,5,5,154,182,5,5,77,226,5,5,51,245,5,5,133,249,5,5,203,163,5,5,15,239,5,5,23,232,5,5,86,164,5,5,138,203,5,5,197,196,5,5,13,229,5,5,67,199,5,5,170,173,5,5,244,197,5,5,32,194,5,5,238,224,5,5,94,217,5,5,27,172,5,5,245,200,5,5,73,173,5,5,255,210,5,5,221,198,5,5,29,240,5,5,176,212,5,5,246,215,5,5,161,242,5,5,24,232,5,5,171,173,5,5,243,179,5,5,207,228,5,5,52,207,5,5,29,244,5,5,129,232,5,5,63,166,5,5,119,216,5,5,223,244,5,5,160,217,5,5,194,166,5,5,213,220,5,5,95,189,5,5,79,226,5,5,245,197,5,5,254,169,5,5,241,232,5,5,105,169,5,5,240,165,5,5,252,216,5,5,246,200,5,5,210,219,5,5,141,233,5,5,51,227,5,5,52,227,5,5,59,248,5,5,200,172,5,5,26,177,5,5,51,170,5,5,203,183,5,5,28,225,5,5,253,246,5,5,228,178,5,5,45,238,5,5,64,166,5,5,16,239,5,5,50,220,5,5,229,190,5,5,140,215,5,5,28,197,5,5,44,181,5,5,237,223,5,5,244,226,5,5,88,201,5,5,89,201,5,5,149,217,5,5,115,196,5,5,188,216,5,5,36,204,5,5,216,205,5,5,208,218,5,5,217,205,5,5,246,228,5,5,170,182,5,5,181,201,5,5,32,243,5,5,219,191,5,5,80,216,5,5,223,227,5,5,202,214,5,5,89,241,5,5,111,249,5,5,7,200,5,5,86,198,5,5,127,198,5,5,53,208,5,5,209,246,5,5,199,215,5,5,202,196,5,5,56,220,5,5,201,212,5,5,102,225,5,5,42,229,5,5,103,166,5,5,139,219,5,5,140,219,5,5,103,245,5,5,128,198,5,5,81,200,5,5,253,197,5,5,189,224,5,5,210,246,5,5,105,181,5,5,41,222,5,5,40,233,5,5,37,220,5,5,249,168,5,5,127,206,5,5,215,212,5,5,80,228,5,5,188,183,5,5,216,212,5,5,114,211,5,5,14,209,5,5,93,206,5,5,16,194,5,5,108,221,5,5,89,240,5,5,241,218,5,5,248,238,5,5,214,246,5,5,226,188,5,5,74,189,5,5,244,224,5,5,95,247,5,5,203,214,5,5,145,232,5,5,227,172,5,5,106,217,5,5,248,192,5,5,177,239,5,5,204,213,5,5,113,249,5,5,19,200,5,5,234,216,5,5,12,172,5,5,125,196,5,5,55,241,5,5,226,244,5,5,111,229,5,5,76,246,5,5,109,229,5,5,117,211,5,5,71,170,5,5,106,183,5,5,37,205,5,5,182,184,5,5,249,238,5,5,42,244,5,5,83,226,5,5,182,241,5,5,231,236,5,5,235,205,5,5,40,172,5,5,53,204,5,5,99,195,5,5,28,192,5,5,127,247,5,5,46,225,5,5,50,209,5,5,8,198,5,5,56,243,5,5,95,187,5,5,68,238,5,5,199,202,5,5,212,202,5,5,174,170,5,5,147,232,5,5,86,214,5,5,9,198,5,5,104,172,5,5,133,169,5,5,53,235,5,5,216,183,5,5,22,221,5,5,107,200,5,5,54,164,5,5,144,198,5,5,142,217,5,5,61,226,5,5,240,187,5,5,65,215,5,5,53,176,5,5,132,206,5,5,62,168,5,5,239,188,5,5,134,182,5,5,90,213,5,5,152,240,5,5,218,202,5,5,103,201,5,5,110,175,5,5,112,241,5,5,113,241,5,5,104,187,5,5,7,180,5,5,196,182,5,5,207,214,5,5,216,172,5,5,197,228,5,5,244,219,5,5,13,198,5,5,166,240,5,5,86,216,5,5,132,216,5,5,172,228,5,5,69,204,5,5,60,164,5,5,182,206,5,5,71,243,5,5,77,238,5,5,122,241,5,5,202,230,5,5,116,229,5,5,240,170,5,5,200,217,5,5,251,241,5,5,12,169,5,5,124,187,5,5,209,224,5,5,41,197,5,5,62,177,5,5,15,188,5,5,82,243,5,5,220,199,5,5,209,189,5,5,33,213,5,5,92,231,5,5,3,191,5,5,137,183,5,5,130,190,5,5,173,190,5,5,226,227,5,5,121,180,5,5,16,243,5,5,184,221,5,5,188,248,5,5,189,248,5,5,150,211,5,5,80,241,5,5,246,192,5,5,82,241,5,5,222,198,5,5,94,197,5,5,71,229,5,5,35,234,5,5,34,234,5,5,56,229,5,5,136,170,5,5,133,234,5,5,136,234,5,5,227,180,5,5,39,233,5,5,85,234,5,5,17,217,5,5,94,200,5,5,217,243,5,5,111,209,5,5,88,173,5,5,18,168,5,5,197,248,5,5,68,242,5,5,26,231,5,5,150,167,5,5,96,173,5,5,72,174,5,5,96,189,5,5,180,172,5,5,201,211,5,5,215,180,5,5,218,184,5,5,45,181,5,5,181,229,5,5,242,220,5,5,130,186,5,5,129,186,5,5,25,233,5,5,33,172,5,5,34,201,5,5,111,247,5,5,131,182,5,5,240,223,5,5,227,201,5,5,129,208,5,5,107,244,5,5,98,233,5,5,112,247,5,5,197,182,5,5,138,186,5,5,223,185,5,5,243,170,5,5,4,191,5,5,80,172,5,5,132,176,5,5,116,246,5,5,94,169,5,5,122,164,5,5,81,219,5,5,126,229,5,5,127,229,5,5,82,172,5,5,130,221,5,5,88,230,5,5,0,133,5,5,245,168,5,5,76,178,5,5,77,178,5,5,129,175,5,5,28,187,5,5,252,193,5,5,203,201,5,5,122,204,5,5,224,164,5,5,8,215,5,5,87,225,5,5,208,233,5,5,119,227,5,5,227,230,5,5,219,231,5,5,53,212,5,5,60,210,5,5,162,247,5,5,105,192,5,5,248,244,5,5,126,223,5,5,42,228,5,5,213,217,5,5,8,173,5,5,89,245,5,5,168,231,5,5,249,186,5,5,163,216,5,5,9,234,5,5,23,235,5,5,120,230,5,5,139,165,5,5,2,182,5,5,225,176,5,5,44,221,5,5,187,170,5,5,82,223,5,5,18,240,5,5,236,191,5,5,192,194,5,5,32,178,5,5,167,186,5,5,2,209,5,5,129,229,5,5,181,192,5,5,20,181,5,5,73,206,5,5,130,228,5,5,251,246,5,5,34,185,5,5,186,204,5,5,188,170,5,5,17,244,5,5,43,169,5,5,155,171,5,5,165,235,5,5,33,249,5,5,174,198,5,5,195,172,5,5,182,163,5,5,139,203,5,5,227,178,5,5,24,192,5,5,213,241,5,5,43,215,5,5,187,225,5,5,78,226,5,5,158,166,5,5,65,229,5,5,135,199,5,5,247,215,5,5,55,224,5,5,213,221,5,5,56,224,5,5,89,237,5,5,87,164,5,5,90,237,5,5,48,202,5,5,191,245,5,5,211,205,5,5,80,192,5,5,209,201,5,5,21,170,5,5,238,167,5,5,4,165,5,5,91,247,5,5,19,239,5,5,150,173,5,5,97,173,5,5,30,240,5,5,73,174,5,5,96,183,5,5,177,212,5,5,68,199,5,5,226,240,5,5,191,175,5,5,13,216,5,5,211,220,5,5,143,241,5,5,218,188,5,5,8,231,5,5,182,237,5,5,194,169,5,5,227,219,5,5,176,193,5,5,62,218,5,5,41,235,5,5,179,249,5,5,53,233,5,5,192,175,5,5,66,229,5,5,69,232,5,5,119,178,5,5,39,187,5,5,81,190,5,5,14,205,5,5,90,225,5,5,130,237,5,5,29,211,5,5,194,173,5,5,97,183,5,5,123,214,5,5,45,215,5,5,6,196,5,5,175,168,5,5,111,179,5,5,75,213,5,5,160,218,5,5,198,193,5,5,126,214,5,5,88,203,5,5,9,203,5,5,70,192,5,5,251,163,5,5,106,169,5,5,46,240,5,5,87,241,5,5,90,241,5,5,53,227,5,5,230,183,5,5,231,164,5,5,101,178,5,5,149,239,5,5,97,189,5,5,65,166,5,5,185,183,5,5,228,184,5,5,95,197,5,5,106,164,5,5,12,173,5,5,204,222,5,5,89,175,5,5,170,233,5,5,62,244,5,5,26,174,5,5,158,163,5,5,101,170,5,5,115,192,5,5,117,208,5,5,77,230,5,5,34,230,5,5,60,170,5,5,246,227,5,5,92,237,5,5,173,219,5,5,188,213,5,5,105,242,5,5,145,228,5,5,34,194,5,5,64,182,5,5,109,219,5,5,100,183,5,5,112,184,5,5,3,250,5,5,209,176,5,5,198,218,5,5,64,219,5,5,144,223,5,5,27,176,5,5,6,193,5,5,130,166,5,5,161,204,5,5,98,238,5,5,82,174,5,5,16,205,5,5,0,139,5,5,102,178,5,5,253,194,5,5,23,183,5,5,220,221,5,5,8,165,5,5,84,188,5,5,210,223,5,5,47,228,5,5,172,235,5,5,208,225,5,5,230,166,5,5,43,227,5,5,199,193,5,5,65,219,5,5,216,241,5,5,54,225,5,5,162,204,5,5,54,227,5,5,68,218,5,5,85,188,5,5,196,169,5,5,170,187,5,5,50,231,5,5,110,219,5,5,95,232,5,5,140,165,5,5,135,220,5,5,199,218,5,5,230,190,5,5,11,179,5,5,190,189,5,5,16,229,5,5,47,187,5,5,19,186,5,5,254,249,5,5,135,229,5,5,222,217,5,5,224,229,5,5,38,209,5,5,167,220,5,5,120,208,5,5,57,187,5,5,156,239,5,5,70,216,5,5,243,220,5,5,58,187,5,5,224,235,5,5,106,193,5,5,162,195,5,5,118,164,5,5,98,230,5,5,217,214,5,5,159,163,5,5,99,230,5,5,88,166,5,5,112,231,5,5,20,224,5,5,60,240,5,5,215,233,5,5,230,216,5,5,136,221,5,5,87,205,5,5,36,233,5,5,33,239,5,5,57,239,5,5,76,242,5,5,128,172,5,5,223,194,5,5,122,195,5,5,199,185,5,5,79,220,5,5,189,187,5,5,120,243,5,5,82,244,5,5,106,197,5,5,169,192,5,5,61,240,5,5,58,227,5,5,168,191,5,5,33,232,5,5,161,190,5,5,94,174,5,5,147,203,5,5,201,198,5,5,37,194,5,5,178,179,5,5,163,194,5,5,13,246,5,5,3,197,5,5,185,230,5,5,241,238,5,5,201,238,5,5,245,207,5,5,157,239,5,5,10,222,5,5,10,196,5,5,209,218,5,5,135,212,5,5,171,182,5,5,115,236,5,5,114,236,5,5,172,200,5,5,239,206,5,5,165,204,5,5,83,217,5,5,106,178,5,5,90,222,5,5,180,247,5,5,131,232,192,0,0,0,5,5,95,244,5,5,235,203,5,5,114,188,5,5,136,220,5,5,229,240,5,5,19,230,5,5,168,220,5,5,98,176,5,5,121,208,5,5,159,209,5,5,138,199,5,5,38,194,5,5,37,206,5,5,173,222,5,5,223,217,5,5,203,236,5,5,130,227,5,5,174,220,5,5,185,163,5,5,133,181,5,5,56,196,5,5,158,206,5,5,207,166,5,5,132,164,5,5,102,174,5,5,250,230,5,5,211,182,5,5,144,207,5,5,202,212,5,5,110,186,5,5,87,188,5,5,205,173,5,5,125,208,5,5,54,247,5,5,24,208,5,5,138,192,5,5,150,236,5,5,43,189,5,5,15,210,5,5,170,181,5,5,78,242,5,5,201,169,5,5,145,164,5,5,42,191,5,5,140,167,5,5,175,222,5,5,235,176,5,5,98,217,5,5,206,181,5,5,82,232,5,5,99,238,5,5,86,193,5,5,23,165,5,5,171,176,5,5,87,198,5,5,180,231,5,5,80,218,5,5,134,230,5,5,218,163,5,5,238,192,5,5,24,205,5,5,219,200,5,5,211,246,5,5,156,184,5,5,19,203,5,5,25,181,5,5,185,202,5,5,137,214,5,5,67,191,5,5,6,201,5,5,230,227,5,5,109,234,5,5,103,173,5,5,97,237,5,5,22,171,5,5,24,245,5,5,173,186,5,5,174,186,5,5,203,175,5,5,3,211,5,5,208,244,5,5,204,236,5,5,210,206,5,5,153,180,5,5,67,214,5,5,229,196,5,5,38,222,5,5,75,229,5,5,70,224,5,5,57,173,5,5,66,246,5,5,159,206,5,5,175,186,5,5,11,166,5,5,240,213,5,5,150,172,5,5,181,179,5,5,222,218,5,5,45,185,5,5,120,188,5,5,25,205,5,5,11,222,5,5,110,189,5,5,182,186,5,5,44,209,5,5,94,166,5,5,206,190,5,5,46,235,5,5,175,210,5,5,179,171,5,5,195,208,5,5,196,208,5,5,27,234,5,5,147,194,5,5,80,224,5,5,61,175,5,5,186,172,5,5,213,166,5,5,162,164,5,5,163,164,5,5,252,200,5,5,95,233,5,5,113,225,5,5,71,232,5,5,75,202,5,5,81,187,5,5,158,167,5,5,88,248,5,5,89,248,5,5,88,193,5,5,58,208,5,5,20,179,5,5,73,180,5,5,196,192,5,5,96,247,5,5,245,176,5,5,202,234,5,5,16,173,5,5,61,225,5,5,140,220,5,5,15,209,5,5,7,249,5,5,232,242,5,5,90,248,5,5,48,212,5,5,90,240,5,5,110,236,5,5,103,230,5,5,32,226,5,5,152,186,5,5,130,208,5,5,13,222,5,5,115,174,5,5,9,195,5,5,50,185,5,5,101,232,5,5,102,232,5,5,235,219,5,5,71,194,5,5,84,173,5,5,104,173,5,5,160,228,5,5,115,211,5,5,163,183,5,5,215,246,5,5,181,193,5,5,20,190,5,5,219,197,5,5,109,203,5,5,232,239,5,5,24,224,5,5,24,207,5,5,245,206,5,5,114,225,5,5,245,232,5,5,45,189,5,5,35,211,5,5,114,218,5,5,33,226,5,5,233,240,5,5,213,206,5,5,188,163,5,5,248,203,5,5,42,222,5,5,125,231,5,5,14,166,5,5,159,167,5,5,219,177,5,5,190,225,5,5,50,225,5,5,180,170,5,5,159,199,5,5,29,205,5,5,226,193,5,5,128,213,5,5,244,177,5,5,176,210,5,5,179,175,5,5,39,194,5,5,186,177,5,5,92,190,5,5,82,218,5,5,113,212,5,5,55,172,5,5,253,174,5,5,252,192,5,5,192,167,5,5,114,220,5,5,216,240,5,5,57,182,5,5,111,236,5,5,85,178,5,5,56,241,5,5,223,174,5,5,77,246,5,5,239,245,5,5,168,178,5,5,79,203,5,5,99,233,5,5,218,204,5,5,178,239,5,5,217,228,5,5,52,213,5,5,49,243,5,5,238,242,5,5,59,226,5,5,219,204,5,5,84,226,5,5,27,248,5,5,123,197,5,5,71,219,5,5,202,245,5,5,110,168,5,5,210,164,5,5,148,241,5,5,203,199,5,5,202,216,5,5,240,230,5,5,43,244,5,5,243,184,5,5,183,242,5,5,127,164,5,5,20,200,5,5,126,196,5,5,225,203,5,5,127,196,5,5,119,235,5,5,210,173,5,5,246,213,5,5,58,182,5,5,223,218,5,5,104,205,5,5,96,172,5,5,72,170,5,5,192,225,5,5,76,199,5,5,12,199,5,5,197,188,5,5,153,186,5,5,152,181,5,5,107,183,5,5,209,247,5,5,54,242,5,5,213,169,5,5,116,237,5,5,171,217,5,5,172,217,5,5,70,244,5,5,182,220,5,5,111,168,5,5,99,241,5,5,82,202,5,5,166,203,5,5,100,241,5,5,191,225,5,5,214,178,5,5,198,247,5,5,119,232,5,5,240,245,5,5,214,169,5,5,229,180,5,5,83,202,5,5,167,203,5,5,95,195,5,5,225,209,5,5,170,244,5,5,53,230,5,5,51,201,5,5,233,185,5,5,24,185,5,5,114,212,5,5,117,216,5,5,152,168,5,5,113,227,5,5,243,191,5,5,250,179,5,5,68,186,5,5,3,247,5,5,210,247,5,5,226,224,5,5,49,191,5,5,25,207,5,5,226,228,5,5,238,225,5,5,57,168,5,5,82,214,5,5,82,203,5,5,122,240,5,5,121,220,5,5,130,174,5,5,169,184,5,5,108,171,5,5,118,186,5,5,71,231,5,5,60,193,5,5,114,205,5,5,26,207,5,5,39,179,5,5,226,241,5,5,188,220,5,5,154,164,5,5,140,227,5,5,60,249,5,5,187,231,5,5,41,172,5,5,172,236,5,5,92,203,5,5,183,241,5,5,177,203,5,5,101,201,5,5,163,192,5,5,187,172,5,5,118,219,5,5,133,210,5,5,52,169,5,5,83,237,5,5,61,249,5,5,83,214,5,5,72,231,5,5,254,226,5,5,88,218,5,5,219,234,5,5,149,249,5,5,156,181,5,5,49,188,5,5,73,231,5,5,80,180,5,5,29,212,5,5,190,219,5,5,125,235,5,5,52,229,5,5,65,179,5,5,19,195,5,5,235,212,5,5,61,193,5,5,138,208,5,5,29,192,5,5,30,192,5,5,74,237,5,5,64,167,5,5,160,179,5,5,182,191,5,5,236,217,5,5,131,177,5,5,87,183,5,5,87,202,5,5,187,229,5,5,95,192,5,5,39,226,5,5,42,211,5,5,153,223,5,5,156,210,5,5,234,199,5,5,219,169,5,5,24,217,5,5,209,192,5,5,10,192,5,5,50,222,5,5,39,182,5,5,210,209,5,5,85,244,5,5,132,177,5,5,83,203,5,5,180,195,5,5,45,233,5,5,180,175,5,5,45,191,5,5,18,166,5,5,149,221,5,5,125,236,5,5,60,213,5,5,245,201,5,5,141,188,5,5,108,200,5,5,223,249,5,5,185,210,5,5,187,193,5,5,250,191,5,5,251,191,5,5,116,182,5,5,149,199,5,5,142,208,5,5,112,236,5,5,221,234,5,5,165,167,5,5,88,242,5,5,19,199,5,5,42,206,5,5,84,199,5,5,237,200,5,5,50,194,5,5,248,183,5,5,131,240,5,5,13,192,5,5,219,195,5,5,236,193,5,5,237,193,5,5,39,234,5,5,146,170,5,5,200,205,5,5,158,176,5,5,181,222,5,5,26,185,5,5,134,186,5,5,202,224,5,5,54,235,5,5,202,186,5,5,253,214,5,5,119,211,5,5,255,229,5,5,21,173,5,5,215,182,5,5,111,194,5,5,2,232,5,5,178,236,5,5,124,185,5,5,237,189,5,5,52,189,5,5,113,171,5,5,239,185,5,5,245,223,5,5,179,236,5,5,22,195,5,5,151,225,5,5,87,180,5,5,155,165,5,5,44,190,5,5,138,204,5,5,177,219,5,5,75,219,5,5,90,229,5,5,23,221,5,5,113,170,5,5,74,169,5,5,36,184,5,5,87,244,5,5,33,181,5,5,166,167,5,5,246,221,5,5,141,227,5,5,5,213,5,5,83,212,5,5,205,198,5,5,231,204,5,5,55,235,5,5,251,202,5,5,105,243,5,5,62,211,5,5,89,217,5,5,117,244,5,5,80,239,5,5,244,217,5,5,131,218,5,5,172,209,5,5,28,233,5,5,91,235,5,5,253,168,5,5,159,229,5,5,151,199,5,5,171,196,5,5,199,220,5,5,71,233,5,5,228,248,5,5,108,228,5,5,6,213,5,5,88,226,5,5,178,177,5,5,136,172,5,5,146,192,5,5,76,169,5,5,74,245,5,5,146,209,5,5,22,230,5,5,29,189,5,5,61,188,5,5,173,209,5,5,225,215,5,5,45,231,5,5,22,173,5,5,125,220,5,5,45,182,5,5,205,185,5,5,154,249,5,5,231,229,5,5,192,178,5,5,74,225,5,5,93,180,5,5,233,170,5,5,5,207,5,5,131,225,5,5,189,236,5,5,179,207,5,5,180,207,5,5,179,177,5,5,116,200,5,5,254,201,5,5,159,184,5,5,110,216,5,5,60,182,5,5,134,184,5,5,255,230,5,5,152,221,5,5,198,182,5,5,199,232,5,5,112,173,5,5,156,212,5,5,81,230,5,5,206,198,5,5,139,210,5,5,25,193,5,5,96,188,5,5,215,185,5,5,14,192,5,5,175,225,5,5,165,213,5,5,57,229,5,5,206,231,5,5,109,236,5,5,101,202,5,5,187,175,5,5,188,206,5,5,242,189,5,5,156,205,5,5,239,225,5,5,70,249,5,5,77,179,5,5,94,229,5,5,24,206,5,5,11,180,5,5,17,189,5,5,198,184,5,5,224,243,5,5,62,213,5,5,40,237,5,5,67,228,5,5,51,233,5,5,145,217,5,5,78,225,5,5,164,192,5,5,6,207,5,5,52,233,5,5,167,240,5,5,250,210,5,5,255,168,5,5,195,242,5,5,94,185,5,5,220,173,5,5,61,200,5,5,114,176,5,5,222,202,5,5,41,237,5,5,144,163,5,5,206,168,5,5,132,225,5,5,196,225,5,5,255,221,5,5,53,194,5,5,107,202,5,5,202,203,5,5,85,203,5,5,123,211,5,5,195,219,5,5,52,205,5,5,68,211,5,5,170,175,5,5,242,239,5,5,187,165,5,5,106,237,5,5,176,227,5,5,18,189,5,5,171,187,5,5,156,223,5,5,244,170,5,5,196,243,5,5,197,179,5,5,129,179,5,5,185,171,5,5,228,208,5,5,118,182,5,5,29,166,5,5,213,199,5,5,227,202,5,5,100,210,5,5,196,183,5,5,127,184,5,5,119,239,5,5,36,192,5,5,182,195,5,5,251,243,5,5,90,183,5,5,134,211,5,5,252,242,5,5,229,208,5,5,120,171,5,5,247,219,5,5,56,194,5,5,91,226,5,5,14,202,5,5,138,196,5,5,185,166,5,5,144,176,5,5,178,225,5,5,211,191,5,5,186,171,5,5,23,242,5,5,42,219,5,5,97,201,5,5,102,210,5,5,134,185,5,5,98,185,5,5,217,235,5,5,248,189,5,5,125,187,5,5,12,235,5,5,104,191,5,5,140,171,5,5,136,200,5,5,178,238,5,5,205,189,5,5,33,219,5,5,18,192,5,5,4,178,5,5,78,249,5,5,126,187,5,5,222,172,5,5,66,222,5,5,73,236,5,5,161,188,5,5,74,206,5,5,180,225,5,5,148,211,5,5,161,221,5,5,210,189,5,5,202,242,5,5,133,187,5,5,160,221,5,5,233,224,5,5,192,203,5,5,10,238,5,5,135,236,5,5,243,199,5,5,11,184,5,5,164,248,5,5,6,191,5,5,80,185,5,5,117,204,5,5,169,215,5,5,249,193,5,5,35,207,5,5,179,214,5,5,157,189,5,5,142,244,5,5,3,205,5,5,229,243,5,5,66,242,5,5,202,244,5,5,61,216,5,5,206,184,5,5,136,163,5,5,112,224,5,5,50,186,5,5,36,207,5,5,243,229,5,5,213,227,5,5,45,246,5,5,95,235,5,5,94,212,5,5,226,211,5,5,132,234,5,5,187,204,5,5,169,248,5,5,111,190,5,5,159,187,5,5,14,235,5,5,174,190,5,5,90,176,5,5,207,207,5,5,108,243,5,5,86,186,5,5,60,186,5,5,185,221,5,5,112,185,5,5,21,187,5,5,32,163,5,5,134,183,5,5,175,248,5,5,162,189,5,5,185,194,5,5,164,210,5,5,209,233,5,5,153,200,5,5,248,215,5,5,163,247,5,5,31,240,5,5,64,210,5,5,165,238,5,5,185,216,5,5,227,223,5,5,209,225,5,5,39,209,5,5,109,195,5,5,62,240,5,5,139,207,5,5,121,213,5,5,2,217,5,5,78,197,5,5,76,248,5,5,154,196,5,5,105,186,5,5,189,196,5,5,183,229,5,5,203,212,5,5,27,238,5,5,104,239,5,5,131,208,5,5,242,225,5,5,71,223,5,5,207,210,5,5,190,196,5,5,177,195,5,5,191,196,5,5,179,195,5,5,67,226,5,5,160,227,5,5,111,193,5,5,139,243,5,5,5,216,5,5,247,213,5,5,211,247,5,5,182,210,5,5,154,214,5,5,105,241,5,5,151,191,5,5,5,245,5,5,47,180,5,5,239,205,5,5,171,238,5,5,242,198,5,5,231,180,5,5,155,200,5,5,213,216,5,5,98,167,5,5,91,213,5,5,228,214,5,5,243,225,5,5,204,227,5,5,109,228,5,5,71,198,5,5,233,225,5,5,168,240,5,5,7,238,5,5,242,247,5,5,15,226,5,5,163,200,5,5,141,218,5,5,112,221,5,5,201,233,5,5,122,166,5,5,53,245,5,5,164,208,5,5,127,166,5,5,128,166,5,5,214,245,5,5,53,207,5,5,121,210,5,5,39,223,5,5,228,235,5,5,72,223,5,5,233,235,5,5,232,222,5,5,28,237,5,5,29,237,5,5,96,187,5,5,207,234,5,5,223,247,5,5,105,187,5,5,244,193,5,5,73,175,5,5,190,237,5,5,154,235,5,5,193,204,5,5,128,219,5,5,99,169,5,5,100,169,5,5,144,241,5,5,101,169,5,5,150,234,5,5,5,244,5,5,98,181,5,5,17,229,5,5,90,175,5,5,229,228,5,5,3,217,5,5,7,218,5,5,72,229,5,5,73,234,5,5,145,207,5,5,84,168,5,5,84,209,5,5,16,210,5,5,151,236,5,5,113,211,5,5,165,249,5,5,189,188,5,5,91,240,5,5,235,172,5,5,115,218,5,5,97,241,5,5,76,234,5,5,253,200,5,5,240,175,5,5,84,202,5,5,48,177,5,5,189,220,5,5,171,249,5,5,6,247,5,5,65,224,5,5,37,166,5,5,232,180,5,5,240,205,5,5,237,228,5,5,191,243,5,5,85,177,5,5,177,204,5,5,117,200,5,5,17,235,5,5,153,240,5,5,250,175,5,5,44,178,5,5,25,206,5,5,205,188,5,5,42,166,5,5,5,178,5,5,158,205,5,5,4,205,5,5,59,229,5,5,166,238,5,5,164,178,5,5,221,221,5,5,121,243,5,5,138,211,5,5,73,240,5,5,131,227,5,5,196,209,5,5,35,195,5,5,196,214,5,5,15,218,5,5,173,177,5,5,57,200,5,5,58,200,5,5,54,193,5,5,136,209,5,5,241,201,5,5,132,240,5,5,172,238,5,5,60,200,5,5,176,178,5,5,120,239,5,5,187,214,5,5,13,245,5,5,95,194,5,5,61,172,5,5,234,169,5,5,235,169,5,5,44,238,5,5,197,203,5,5,239,177,5,5,101,248,5,5,221,164,5,5,246,164,5,5,9,165,5,5,243,167,5,5,244,167,5,5,13,165,5,5,99,224,5,5,19,170,5,5,216,197,5,5,15,234,5,5,239,167,5,5,217,187,5,5,10,203,5,5,77,220,5,5,253,235,5,5,89,172,5,5,65,182,5,5,224,217,5,5,58,239,5,5,55,231,5,5,143,215,5,5,240,206,5,5,58,172,5,5,218,197,5,5,17,210,5,5,204,175,5,5,132,227,5,5,27,180,5,5,237,166,5,5,246,206,5,5,58,178,5,5,242,234,5,5,209,164,5,5,82,236,5,5,107,236,5,5,73,170,5,5,3,236,5,5,85,229,5,5,150,247,5,5,69,182,5,5,124,197,5,5,105,205,5,5,66,179,5,5,84,236,5,5,51,191,5,5,60,172,5,5,36,170,5,5,199,182,5,5,101,231,5,5,35,225,5,5,254,168,5,5,84,190,5,5,92,220,5,5,36,236,5,5,93,220,5,5,245,170,5,5,249,189,5,5,227,211,5,5,66,177,5,5,23,227,5,5,147,176,5,5,222,171,5,5,120,207,5,5,190,170,5,5,21,209,5,5,58,168,5,5,13,183,5,5,24,209,5,5,130,175,5,5,42,215,5,5,47,226,5,5,74,173,5,5,24,244,5,5,43,183,5,5,48,166,5,5,83,174,5,5,146,228,5,5,229,178,5,5,91,211,5,5,40,209,5,5,122,243,5,5,192,212,5,5,198,197,5,5,64,244,5,5,202,238,5,5,33,241,5,5,62,195,5,5,98,211,5,5,39,241,5,5,240,178,5,5,37,176,5,5,93,191,5,5,116,211,5,5,71,244,5,5,117,249,5,5,118,249,5,5,208,229,5,5,218,229,5,5,103,221,5,5,53,166,5,5,247,249,5,5,92,176,5,5,219,229,5,5,17,185,5,5,200,183,5,5,152,182,5,5,45,173,5,5,251,193,5,5,126,181,5,5,57,218,5,5,251,209,5,5,5,166,5,5,22,232,5,5,191,171,5,5,4,235,5,5,65,200,5,5,74,177,5,5,114,198,5,5,163,223,5,5,21,222,5,5,70,226,5,5,186,246,5,5,48,173,5,5,48,175,5,5,168,212,5,5,254,181,5,5,184,170,5,5,249,209,5,5,25,209,5,5,86,228,5,5,154,168,5,5,116,198,5,5,56,210,5,5,243,244,5,5,244,244,5,5,255,217,5,5,159,235,5,5,211,230,5,5,218,194,5,5,7,206,5,5,31,223,5,5,245,244,5,5,247,181,5,5,185,204,5,5,49,180,5,5,60,218,5,5,149,218,5,5,61,210,5,5,87,171,5,5,33,193,5,5,77,247,5,5,120,206,5,5,122,206,5,5,7,231,5,5,18,208,5,5,133,201,5,5,135,179,5,5,101,212,5,5,49,202,5,5,232,165,5,5,233,165,5,5,153,192,5,5,61,247,5,5,195,222,5,5,148,173,5,5,35,218,5,5,123,207,5,5,41,199,5,5,47,184,5,5,27,209,5,5,95,173,5,5,244,216,5,5,248,216,5,5,15,211,5,5,133,239,5,5,188,245,5,5,131,249,5,5,31,249,5,5,190,198,5,5,213,242,5,5,181,224,5,5,182,224,5,5,23,176,5,5,29,242,5,5,206,178,5,5,61,199,5,5,185,199,5,5,114,208,5,5,84,172,5,5,216,184,5,5,192,169,5,5,21,175,5,5,193,171,5,5,88,171,5,5,150,226,5,5,107,167,5,5,228,164,5,5,120,227,5,5,150,218,5,5,246,166,5,5,79,167,5,5,88,222,5,5,209,231,5,5,55,192,5,5,32,188,5,5,193,169,5,5,236,231,5,5,191,173,5,5,164,238,5,5,34,187,5,5,194,190,5,5,113,234,5,5,192,173,5,5,6,246,5,5,62,199,5,5,102,169,5,5,252,169,5,5,130,229,5,5,19,207,5,5,130,232,5,5,7,182,5,5,23,182,5,5,24,182,5,5,91,197,5,5,40,187,5,5,71,171,5,5,139,239,5,5,113,172,5,5,196,172,5,5,33,242,5,5,73,181,5,5,191,218,5,5,221,219,5,5,4,193,5,5,76,220,5,5,162,242,5,5,109,235,5,5,26,197,5,5,94,208,5,5,196,206,5,5,52,214,5,5,253,209,5,5,33,240,5,5,7,203,5,5,200,222,5,5,57,212,5,5,171,166,5,5,68,200,5,5,90,171,5,5,116,164,5,5,238,231,5,5,166,221,5,5,21,185,5,5,12,242,5,5,5,193,5,5,138,201,5,5,112,192,5,5,139,172,5,5,50,170,5,5,166,235,5,5,223,198,5,5,172,168,5,5,203,233,5,5,50,173,5,5,63,218,5,5,143,236,5,5,138,184,5,5,52,225,5,5,93,189,5,5,27,167,5,5,39,163,5,5,31,209,5,5,167,235,5,5,150,183,5,5,236,206,5,5,208,235,5,5,214,221,5,5,14,229,5,5,142,185,5,5,158,217,5,5,126,207,5,5,74,174,5,5,81,167,5,5,254,171,5,5,139,179,5,5,4,244,5,5,128,202,5,5,250,249,5,5,98,194,5,5,195,164,5,5,61,217,5,5,228,190,5,5,186,189,5,5,24,176,5,5,132,190,5,5,53,214,5,5,172,166,5,5,239,231,5,5,79,206,5,5,166,243,5,5,58,167,5,5,144,203,5,5,47,240,5,5,5,200,5,5,44,200,5,5,46,232,5,5,96,225,5,5,117,243,5,5,11,246,5,5,50,198,5,5,82,205,5,5,30,244,5,5,183,187,5,5,175,235,5,5,165,202,5,5,31,239,5,5,145,216,5,5,84,174,5,5,201,235,5,5,223,235,5,5,161,218,5,5,234,243,5,5,21,245,5,5,76,213,5,5,121,195,5,5,134,221,5,5,54,206,5,5,134,190,5,5,137,190,5,5,240,238,5,5,12,179,5,5,216,180,5,5,88,170,5,5,143,185,5,5,96,239,5,5,74,171,5,5,58,212,5,5,166,205,5,5,195,166,5,5,58,246,5,5,189,214,5,5,56,214,5,5,141,201,5,5,253,216,5,5,145,236,5,5,255,196,5,5,176,179,5,5,103,209,5,5,50,207,5,5,54,239,5,5,4,220,5,5,218,230,5,5,176,168,5,5,219,217,5,5,38,218,5,5,200,218,5,5,162,194,5,5,169,200,5,5,29,172,5,5,175,199,5,5,138,245,5,5,83,209,5,5,221,166,5,5,251,244,5,5,164,211,5,5,34,188,5,5,48,240,5,5,11,203,5,5,147,206,5,5,151,210,5,5,10,206,5,5,242,203,5,5,160,220,5,5,192,226,5,5,27,222,5,5,236,233,5,5,124,172,5,5,71,200,5,5,166,202,5,5,35,188,5,5,126,224,5,5,5,201,5,5,43,199,5,5,190,184,5,5,220,217,5,5,215,205,5,5,190,187,5,5,12,210,5,5,61,246,5,5,174,219,5,5,47,208,5,5,84,198,5,5,144,164,5,5,198,170,5,5,30,222,5,5,40,242,5,5,193,212,5,5,79,163,5,5,199,175,5,5,215,200,5,5,148,201,5,5,63,240,5,5,247,168,5,5,206,244,5,5,64,186,5,5,251,197,5,5,141,186,5,5,106,198,5,5,2,187,5,5,215,192,5,5,95,174,5,5,22,245,5,5,188,188,5,5,97,226,5,5,238,173,5,5,64,240,5,5,66,248,5,5,172,182,5,5,174,185,5,5,188,197,5,5,218,205,5,5,17,203,5,5,152,226,5,5,99,208,5,5,239,169,5,5,251,236,5,5,56,225,5,5,252,166,5,5,197,215,5,5,209,228,5,5,204,181,5,5,241,196,5,5,160,168,5,5,231,183,5,5,124,198,5,5,84,206,5,5,132,214,5,5,191,227,5,5,72,184,5,5,186,181,5,5,4,250,5,5,218,214,5,5,95,215,5,5,169,181,5,5,159,237,5,5,146,236,5,5,129,182,5,5,217,207,5,5,107,234,5,5,219,180,5,5,59,187,5,5,210,229,5,5,176,235,5,5,145,185,5,5,211,229,5,5,150,179,5,5,241,177,5,5,207,185,5,5,40,185,5,5,119,188,5,5,14,246,5,5,170,245,5,5,138,249,5,5,216,200,5,5,170,176,5,5,212,198,5,5,41,231,5,5,88,205,5,5,36,221,5,5,225,235,5,5,103,174,5,5,102,194,5,5,171,216,5,5,25,228,5,5,225,229,5,5,252,240,5,5,255,225,5,5,48,221,5,5,94,241,5,5,57,197,5,5,195,245,5,5,88,198,5,5,11,182,5,5,237,178,5,5,111,197,5,5,172,245,5,5,211,206,5,5,192,227,5,5,44,189,5,5,250,200,5,5,60,179,5,5,12,222,5,5,170,177,5,5,106,209,5,5,59,175,5,5,249,207,5,5,118,231,5,5,204,212,5,5,193,214,5,5,187,208,5,5,46,193,5,5,178,193,5,5,131,242,5,5,225,188,5,5,114,180,5,5,12,220,5,5,188,167,5,5,255,197,5,5,241,224,5,5,76,229,5,5,126,208,5,5,155,173,5,5,111,218,5,5,13,190,5,5,80,183,5,5,243,206,5,5,182,179,5,5,82,235,5,5,146,185,5,5,175,219,5,5,186,168,5,5,175,172,5,5,98,237,5,5,104,181,5,5,37,168,5,5,33,176,5,5,77,248,5,5,158,183,5,5,148,247,5,5,14,190,5,5,158,192,5,5,97,171,5,5,160,206,5,5,111,189,5,5,204,190,5,5,179,243,5,5,241,234,5,5,204,211,5,5,233,199,5,5,78,248,5,5,74,184,5,5,156,228,5,5,144,165,5,5,100,226,5,5,232,198,5,5,255,248,5,5,46,185,5,5,23,201,5,5,99,211,5,5,132,242,5,5,152,210,5,5,64,181,5,5,158,171,5,5,169,218,5,5,211,243,5,5,98,171,5,5,133,164,5,5,2,249,5,5,63,247,5,5,237,230,5,5,157,172,5,5,100,211,5,5,3,249,5,5,43,195,5,5,186,202,5,5,193,227,5,5,4,249,5,5,251,235,5,5,15,190,5,5,197,231,5,5,243,177,5,5,66,209,5,5,95,205,5,5,202,171,5,5,38,168,5,5,164,213,5,5,187,247,5,5,5,249,5,5,191,228,5,5,211,228,5,5,37,230,5,5,226,200,5,5,194,221,5,5,30,205,5,5,180,184,5,5,199,247,5,5,26,210,5,5,151,181,5,5,207,211,5,5,39,178,5,5,17,173,5,5,70,219,5,5,93,163,5,5,199,245,5,5,174,245,5,5,246,176,5,5,233,245,5,5,254,246,5,5,188,230,5,5,74,214,5,5,245,233,5,5,129,246,5,5,118,197,5,5,206,192,5,5,233,242,5,5,157,201,5,5,169,217,5,5,78,171,5,5,46,195,5,5,31,170,5,5,104,244,5,5,234,242,5,5,49,242,5,5,117,201,5,5,159,171,5,5,39,229,5,5,242,169,5,5,35,232,5,5,9,201,5,5,27,183,5,5,17,194,5,5,98,223,5,5,228,237,5,5,223,166,5,5,208,169,5,5,194,188,5,5,45,209,5,5,46,209,5,5,209,169,5,5,82,181,5,5,57,234,5,5,24,246,5,5,68,234,5,5,102,182,5,5,205,171,5,5,85,200,5,5,120,169,5,5,197,216,5,5,76,202,5,5,101,167,5,5,211,204,5,5,31,205,5,5,8,199,5,5,2,174,5,5,46,216,5,5,92,240,5,5,239,243,5,5,141,220,5,5,248,226,5,5,110,203,5,5,62,225,5,5,47,201,5,5,42,180,5,5,200,247,5,5,33,165,5,5,8,172,5,5,198,226,5,5,189,181,5,5,25,229,5,5,10,250,5,5,247,206,5,5,21,179,5,5,125,182,5,5,43,204,5,5,47,204,5,5,27,210,5,5,137,242,5,5,52,180,5,5,239,190,5,5,200,199,5,5,46,249,5,5,113,183,5,5,108,164,5,5,83,242,5,5,70,212,5,5,177,222,5,5,75,189,5,5,81,224,5,5,179,242,5,5,103,226,5,5,240,183,5,5,126,231,5,5,177,246,5,5,199,226,5,5,127,170,5,5,164,244,5,5,7,185,5,5,157,196,5,5,13,174,5,5,99,205,5,5,18,217,5,5,231,185,5,5,25,246,5,5,240,191,5,5,241,213,5,5,165,244,5,5,174,166,5,5,228,205,5,5,50,243,5,5,78,180,5,5,56,249,5,5,230,236,5,5,57,249,5,5,127,188,5,5,225,241,5,5,23,171,5,5,164,222,5,5,120,225,5,5,66,195,5,5,144,179,5,5,45,179,5,5,146,245,5,5,28,188,5,5,60,192,5,5,21,236,5,5,37,172,5,5,117,219,5,5,250,226,5,5,106,240,5,5,222,190,5,5,35,169,5,5,250,168,5,5,241,245,5,5,91,187,5,5,13,234,5,5,114,245,5,5,230,212,5,5,4,247,5,5,38,211,5,5,250,231,5,5,201,226,5,5,165,236,5,5,37,238,5,5,236,210,5,5,47,236,5,5,145,249,5,5,21,215,5,5,140,243,5,5,69,231,5,5,25,201,5,5,166,236,5,5,242,236,5,5,212,183,5,5,38,179,5,5,202,226,5,5,221,230,5,5,29,238,5,5,90,167,5,5,222,225,5,5,161,225,5,5,110,167,5,5,117,247,5,5,120,234,5,5,133,171,5,5,176,191,5,5,130,177,5,5,4,198,5,5,100,201,5,5,134,213,5,5,127,231,5,5,180,176,5,5,250,218,5,5,154,216,5,5,171,174,5,5,168,203,5,5,117,199,5,5,149,191,5,5,185,231,5,5,158,179,5,5,138,180,5,5,255,236,5,5,41,165,5,5,95,204,5,5,95,200,5,5,136,194,5,5,185,243,5,5,9,192,5,5,241,190,5,5,242,218,5,5,51,243,5,5,200,227,5,5,129,170,5,5,171,244,5,5,105,226,5,5,94,191,5,5,91,186,5,5,164,190,5,5,235,214,5,5,15,166,5,5,235,179,5,5,102,248,5,5,10,215,5,5,82,199,5,5,56,165,5,5,152,165,5,5,6,219,5,5,64,206,5,5,155,195,5,5,222,228,5,5,235,228,5,5,157,176,5,5,109,171,5,5,108,238,5,5,236,189,5,5,49,199,5,5,237,198,5,5,17,242,5,5,138,224,5,5,65,173,5,5,221,249,5,5,137,194,5,5,130,170,5,5,131,211,5,5,220,247,5,5,97,168,5,5,200,202,5,5,4,241,5,5,242,223,5,5,139,208,5,5,87,213,5,5,201,202,5,5,39,190,5,5,238,185,5,5,244,190,5,5,196,205,5,5,168,193,5,5,85,235,5,5,10,186,5,5,129,218,5,5,247,191,5,5,61,211,5,5,188,186,5,5,242,242,5,5,38,234,5,5,100,204,5,5,50,235,5,5,107,226,5,5,115,182,5,5,170,238,5,5,137,180,5,5,76,241,5,5,55,213,5,5,110,171,5,5,81,180,5,5,127,169,5,5,236,228,5,5,140,198,5,5,132,188,5,5,69,186,5,5,147,245,5,5,51,223,5,5,127,192,5,5,246,173,5,5,141,217,5,5,108,239,5,5,142,170,5,5,202,231,5,5,218,170,5,5,218,195,5,5,146,190,5,5,145,167,5,5,154,229,5,5,38,221,5,5,18,221,5,5,189,222,5,5,25,217,5,5,235,200,5,5,184,199,5,5,115,205,5,5,144,242,5,5,254,229,5,5,230,187,5,5,225,234,5,5,179,180,5,5,86,244,5,5,20,206,5,5,86,235,5,5,215,244,5,5,167,201,5,5,237,217,5,5,155,229,5,5,110,194,5,5,174,244,5,5,155,214,5,5,153,233,5,5,246,196,5,5,26,217,5,5,201,188,5,5,7,219,5,5,30,246,5,5,45,168,5,5,130,248,5,5,104,204,5,5,177,166,5,5,109,176,5,5,109,200,5,5,182,203,5,5,72,245,5,5,163,166,5,5,94,202,5,5,55,167,5,5,32,246,5,5,180,236,5,5,136,210,5,5,137,210,5,5,249,212,5,5,54,190,5,5,144,213,5,5,21,218,5,5,217,178,5,5,58,201,5,5,17,172,5,5,44,231,5,5,181,236,5,5,204,185,5,5,196,220,5,5,87,235,5,5,133,240,5,5,178,219,5,5,179,246,5,5,102,228,5,5,3,180,5,5,246,223,5,5,241,217,5,5,167,196,5,5,58,241,5,5,10,228,5,5,225,181,5,5,153,221,5,5,204,235,5,5,209,197,5,5,64,165,5,5,65,228,5,5,93,224,5,5,94,224,5,5,115,229,5,5,194,182,5,5,218,168,5,5,234,188,5,5,33,246,5,5,242,235,5,5,235,235,5,5,129,225,5,5,110,208,5,5,130,225,5,5,150,199,5,5,7,204,5,5,213,185,5,5,199,223,5,5,144,192,5,5,27,235,5,5,188,201,5,5,135,235,5,5,157,229,5,5,147,167,5,5,99,198,5,5,152,249,5,5,104,188,5,5,189,201,5,5,136,174,5,5,10,198,5,5,136,197,5,5,113,215,5,5,119,205,5,5,66,228,5,5,147,213,5,5,186,248,5,5,238,189,5,5,28,186,5,5,140,184,5,5,232,247,5,5,16,189,5,5,214,171,5,5,72,232,5,5,75,176,5,5,240,200,5,5,6,232,5,5,93,214,5,5,136,248,5,5,13,187,5,5,99,227,5,5,69,217,5,5,139,189,5,5,242,246,5,5,146,231,5,5,227,249,5,5,118,200,5,5,98,234,5,5,203,188,5,5,180,177,5,5,114,241,5,5,157,238,5,5,187,200,5,5,200,220,5,5,96,224,5,5,151,170,5,5,16,176,5,5,54,176,5,5,155,240,5,5,38,237,5,5,48,168,5,5,92,207,5,5,75,179,5,5,246,210,5,5,255,201,5,5,58,222,5,5,146,188,5,5,197,184,5,5,154,193,5,5,244,205,5,5,110,173,5,5,238,235,5,5,102,202,5,5,6,237,5,5,119,200,5,5,194,225,5,5,78,179,5,5,104,237,5,5,207,177,5,5,239,235,5,5,200,221,5,5,70,185,5,5,25,166,5,5,147,188,5,5,82,171,5,5,216,226,5,5,160,229,5,5,118,171,5,5,139,184,5,5,184,244,5,5,185,244,5,5,241,170,5,5,251,205,5,5,226,208,5,5,84,165,5,5,223,202,5,5,235,197,5,5,200,230,5,5,252,234,5,5,208,245,5,5,167,179,5,5,225,243,5,5,226,243,5,5,146,178,5,5,194,233,5,5,210,199,5,5,183,206,5,5,94,186,5,5,73,208,5,5,50,238,5,5,235,168,5,5,64,222,5,5,37,246,5,5,26,166,5,5,68,193,5,5,144,210,5,5,186,244,5,5,49,166,5,5,65,196,5,5,220,172,5,5,130,234,5,5,162,169,5,5,140,205,5,5,105,246,5,5,154,190,5,5,151,232,5,5,103,191,5,5,118,187,5,5,21,242,5,5,88,244,5,5,247,189,5,5,194,235,5,5,28,219,5,5,191,244,5,5,3,178,5,5,104,247,5,5,34,200,5,5,105,214,5,5,72,167,5,5,201,228,5,5,166,165,5,5,102,224,5,5,143,169,5,5,71,188,5,5,247,204,5,5,11,169,5,5,244,235,5,5,133,225,5,5,73,193,5,5,31,166,5,5,216,199,5,5,233,215,5,5,206,189,5,5,23,211,5,5,157,198,5,5,195,244,5,5,90,231,5,5,127,187,5,5,184,206,5,5,178,214,5,5,196,244,5,5,17,237,5,5,110,246,5,5,107,214,5,5,242,199,5,5,87,217,5,5,159,221,5,5,254,190,5,5,77,185,5,5,152,178,5,5,31,173,5,5,35,199,5,5,78,185,5,5,166,229,5,5,180,189,5,5,199,244,5,5,54,171,5,5,238,202,5,5,209,188,5,5,145,205,5,5,200,244,5,5,141,173,5,5,253,188,5,5,192,240,5,5,255,204,5,5,236,248,5,5,110,224,5,5,118,175,5,5,153,230,5,5,66,205,5,5,45,186,5,5,32,173,5,5,4,230,5,5,23,249,5,5,70,222,5,5,227,173,5,5,211,227,5,5,137,185,5,5,51,186,5,5,94,235,5,5,223,211,5,5,236,249,5,5,147,210,5,5,140,172,5,5,118,194,5,5,40,212,5,5,97,243,5,5,19,198,5,5,236,244,5,5,205,235,5,5,159,232,5,5,175,190,5,5,87,243,5,5,238,186,5,5,84,171,5,5,126,228,5,5,239,179,5,5,89,176,5,5,80,204,5,5,154,224,5,5,237,244,5,5,22,198,5,5,31,163,5,5,183,221,5,5,84,186,5,5,57,186,5,5,139,183,5,5,183,246,5,5,179,190,5,5,250,217,5,5,177,215,5,5,99,243,5,5,168,192,5,5,104,243,5,5,181,248,5,5,178,199,5,5,138,165,5,5,129,171,5,5,154,194,5,5,121,176,5,5,252,199,5,5,120,214,5,5,121,214,5,5,150,200,5,5,110,201,5,5,86,189,5,5,77,232,5,5,137,222,5,5,146,204,5,5,106,219,5,5,50,214,5,5,83,223,5,5,23,222,5,5,29,232,5,5,30,232,5,5,92,234,5,5,18,244,5,5,32,209,5,5,201,222,5,5,98,173,5,5,52,184,5,5,95,208,5,5,22,247,5,5,192,166,5,5,34,240,5,5,187,189,5,5,27,226,5,5,203,167,5,5,107,195,5,5,82,167,5,5,163,242,5,5,108,195,5,5,130,167,5,5,86,172,5,5,253,223,5,5,20,188,5,5,33,194,5,5,236,195,5,5,207,178,5,5,156,194,5,5,249,215,5,5,192,218,5,5,157,194,5,5,158,194,5,5,54,246,5,5,82,211,5,5,4,166,5,5,23,175,5,5,189,213,5,5,72,221,5,5,168,221,5,5,42,195,5,5,229,219,5,5,85,174,5,5,0,160,5,5,57,214,5,5,103,178,5,5,177,189,5,5,7,222,5,5,161,217,5,5,54,207,5,5,38,180,5,5,28,167,5,5,97,208,5,5,17,167,5,5,112,179,5,5,113,179,5,5,66,166,5,5,63,244,5,5,156,182,5,5,61,198,5,5,222,221,5,5,111,219,5,5,147,177,5,5,119,246,5,5,239,226,5,5,186,188,5,5,89,223,5,5,86,201,5,5,74,220,5,5,225,198,5,5,180,229,5,5,90,186,5,5,132,181,5,5,37,204,5,5,4,217,5,5,202,198,5,5,103,212,5,5,191,187,5,5,217,200,5,5,32,244,5,5,242,214,5,5,243,214,5,5,144,215,5,5,170,243,5,5,254,244,5,5,6,220,5,5,165,241,5,5,59,227,5,5,225,245,5,5,173,182,5,5,130,171,5,5,34,232,5,5,110,195,5,5,114,201,5,5,208,185,5,5,192,213,5,5,170,221,5,5,150,217,5,5,74,221,5,5,198,166,5,5,124,242,5,5,46,200,5,5,164,194,5,5,190,223,5,5,8,200,5,5,123,195,5,5,236,224,5,5,13,173,5,5,229,227,5,5,91,241,5,5,77,200,192,0,0,0,5,5,125,180,5,5,219,205,5,5,15,230,5,5,219,187,5,5,205,212,5,5,104,174,5,5,101,208,5,5,68,214,5,5,248,168,5,5,134,181,5,5,39,222,5,5,171,181,5,5,196,246,5,5,190,197,5,5,141,167,5,5,131,186,5,5,42,243,5,5,10,217,5,5,206,173,5,5,94,223,5,5,58,231,5,5,3,199,5,5,206,212,5,5,77,229,5,5,155,197,5,5,188,217,5,5,29,196,5,5,218,207,5,5,138,214,5,5,207,212,5,5,133,242,5,5,129,198,5,5,188,222,5,5,54,208,5,5,236,176,5,5,69,214,5,5,71,202,5,5,104,245,5,5,134,242,5,5,107,191,5,5,89,198,5,5,37,243,5,5,220,200,5,5,172,170,5,5,244,206,5,5,158,175,5,5,223,163,5,5,105,173,5,5,25,189,5,5,204,196,5,5,24,201,5,5,132,182,5,5,218,212,5,5,243,234,5,5,28,245,5,5,118,201,5,5,255,223,5,5,168,174,5,5,200,245,5,5,249,203,5,5,47,235,5,5,3,174,5,5,190,168,5,5,140,212,5,5,238,230,5,5,219,212,5,5,141,212,5,5,30,216,5,5,230,223,5,5,43,243,5,5,44,243,5,5,93,240,5,5,155,207,5,5,91,248,5,5,207,192,5,5,66,230,5,5,3,168,5,5,48,218,5,5,114,247,5,5,26,229,5,5,44,225,5,5,232,227,5,5,46,218,5,5,75,184,5,5,219,192,5,5,168,246,5,5,199,224,5,5,159,197,5,5,148,196,5,5,233,222,5,5,169,178,5,5,176,213,5,5,21,200,5,5,4,174,5,5,198,188,5,5,107,217,5,5,124,216,5,5,52,201,5,5,48,204,5,5,220,204,5,5,42,165,5,5,108,244,5,5,198,221,5,5,78,246,5,5,104,182,5,5,81,228,5,5,236,212,5,5,183,184,5,5,184,184,5,5,83,224,5,5,141,242,5,5,105,208,5,5,108,208,5,5,103,248,5,5,9,170,5,5,138,227,5,5,134,246,5,5,86,219,5,5,31,216,5,5,148,212,5,5,38,230,5,5,215,169,5,5,232,200,5,5,22,217,5,5,238,219,5,5,242,245,5,5,18,173,5,5,31,210,5,5,30,237,5,5,44,244,5,5,200,187,5,5,196,221,5,5,117,203,5,5,48,192,5,5,112,193,5,5,255,163,5,5,13,199,5,5,114,249,5,5,177,213,5,5,114,227,5,5,81,189,5,5,200,165,5,5,96,192,5,5,97,182,5,5,82,180,5,5,2,224,5,5,64,228,5,5,5,239,5,5,105,163,5,5,94,201,5,5,25,214,5,5,138,213,5,5,119,245,5,5,237,212,5,5,193,249,5,5,133,197,5,5,161,197,5,5,238,212,5,5,150,249,5,5,45,218,5,5,8,183,5,5,83,228,5,5,163,212,5,5,244,241,5,5,191,217,5,5,111,171,5,5,133,188,5,5,175,244,5,5,66,245,5,5,74,231,5,5,208,194,5,5,106,243,5,5,84,211,5,5,29,188,5,5,239,212,5,5,65,165,5,5,156,165,5,5,56,235,5,5,45,190,5,5,232,204,5,5,104,229,5,5,134,240,5,5,240,185,5,5,167,167,5,5,5,237,5,5,135,240,5,5,129,180,5,5,171,207,5,5,106,233,5,5,194,249,5,5,85,199,5,5,187,239,5,5,17,219,5,5,114,238,5,5,138,246,5,5,93,188,5,5,145,198,5,5,173,238,5,5,16,230,5,5,109,208,5,5,147,170,5,5,247,196,5,5,238,228,5,5,18,235,5,5,200,232,5,5,237,204,5,5,7,213,5,5,8,213,5,5,9,213,5,5,156,240,5,5,229,214,5,5,115,223,5,5,64,201,5,5,144,224,5,5,115,241,5,5,8,180,5,5,71,230,5,5,65,243,5,5,120,215,5,5,147,209,5,5,72,208,5,5,126,176,5,5,219,178,5,5,169,228,5,5,9,204,5,5,113,173,5,5,141,235,5,5,241,187,5,5,137,248,5,5,240,188,5,5,200,182,5,5,239,227,5,5,89,173,5,5,23,173,5,5,66,243,5,5,245,217,5,5,92,186,5,5,247,169,5,5,128,180,5,5,157,240,5,5,133,206,5,5,175,170,5,5,189,206,5,5,66,204,5,5,187,244,5,5,148,248,5,5,169,240,5,5,70,217,5,5,34,186,5,5,146,179,5,5,88,232,5,5,99,234,5,5,42,237,5,5,17,213,5,5,35,212,5,5,65,235,5,5,150,188,5,5,62,200,5,5,178,221,5,5,98,214,5,5,146,189,5,5,249,245,5,5,170,240,5,5,36,214,5,5,245,219,5,5,124,200,5,5,53,175,5,5,199,184,5,5,35,186,5,5,203,230,5,5,164,215,5,5,126,195,5,5,201,217,5,5,252,205,5,5,43,224,5,5,171,175,5,5,252,241,5,5,172,197,5,5,95,186,5,5,168,165,5,5,88,231,5,5,128,187,5,5,147,169,5,5,61,164,5,5,244,230,5,5,105,191,5,5,252,184,5,5,101,238,5,5,24,218,5,5,42,197,5,5,194,229,5,5,27,188,5,5,134,187,5,5,211,189,5,5,195,207,5,5,17,188,5,5,83,243,5,5,34,213,5,5,108,214,5,5,7,191,5,5,133,241,5,5,104,234,5,5,166,230,5,5,239,248,5,5,96,186,5,5,96,235,5,5,200,207,5,5,174,226,5,5,119,194,5,5,107,207,5,5,204,223,5,5,61,171,5,5,122,180,5,5,98,186,5,5,186,221,5,5,87,186,5,5,163,189,5,5,22,235,5,5,183,248,5,5,219,219,5,5,251,219,5,5,159,166,5,5,67,221,5,5,18,167,5,5,55,225,5,5,35,249,5,5,57,238,5,5,131,246,5,5,162,198,5,5,172,207,5,5,183,207,5,5,186,174,5,5,60,241,5,5,17,163,5,5,19,177,5,5,66,241,5,5,155,241,5,5,233,232,5,5,251,229,5,5,61,239,5,5,57,167,5,5,131,226,5,5,254,194,5,5,173,232,5,5,49,177,5,5,43,211,5,5,243,249,5,5,69,211,5,5,123,168,5,5,88,164,5,5,84,167,5,5,236,223,5,5,212,204,5,5,214,166,5,5,246,177,5,5,125,226,5,5,212,247,5,5,87,219,5,5,201,165,5,5,50,177,5,5,155,164,5,5,106,163,5,5,127,226,5,5,89,242,5,5,121,242,5,5,6,178,5,5,240,240,5,5,63,225,5,5,46,184,5,5,60,184,5,5,153,168,5,5,123,204,5,5,83,170,5,5,33,179,5,5,63,172,5,5,169,185,5,5,121,230,5,5,181,170,5,5,151,173,5,5,22,170,5,5,87,172,5,5,186,192,5,5,91,245,5,5,24,243,5,5,138,191,5,5,204,163,5,5,173,235,5,5,83,205,5,5,37,193,5,5,106,242,5,5,141,191,5,5,18,229,5,5,68,172,5,5,210,176,5,5,70,210,5,5,109,212,5,5,60,212,5,5,195,231,5,5,94,179,5,5,194,212,5,5,201,170,5,5,247,195,5,5,78,210,5,5,61,245,5,5,87,193,5,5,220,212,5,5,176,186,5,5,184,186,5,5,49,167,5,5,228,201,5,5,197,192,5,5,116,218,5,5,119,164,5,5,71,212,5,5,104,226,5,5,247,177,5,5,71,207,5,5,27,203,5,5,221,204,5,5,211,173,5,5,102,168,5,5,14,195,5,5,250,206,5,5,128,195,5,5,168,225,5,5,139,213,5,5,233,163,5,5,147,190,5,5,228,203,5,5,25,169,5,5,85,236,5,5,139,246,5,5,37,170,5,5,193,178,5,5,201,182,5,5,211,209,5,5,67,206,5,5,166,213,5,5,129,187,5,5,7,178,5,5,211,187,5,5,218,166,5,5,75,168,5,5,132,163,5,5,35,213,5,5,14,224,5,5,46,246,5,5,146,196,5,5,15,224,5,5,100,212,5,5,99,212,5,5,0,155,5,5,46,173,5,5,247,209,5,5,127,202,5,5,8,234,5,5,22,222,5,5,237,238,5,5,133,191,5,5,185,222,5,5,174,194,5,5,42,169,5,5,30,242,5,5,234,195,5,5,67,163,5,5,45,198,5,5,25,241,5,5,162,243,5,5,154,200,5,5,186,222,5,5,162,249,5,5,11,197,5,5,50,184,5,5,163,176,5,5,88,211,5,5,242,222,5,5,85,172,5,5,200,163,5,5,204,167,5,5,238,206,5,5,140,239,5,5,15,229,5,5,16,167,5,5,185,213,5,5,25,182,5,5,249,198,5,5,94,189,5,5,197,172,5,5,240,167,5,5,184,183,5,5,214,241,5,5,98,242,5,5,68,192,5,5,82,217,5,5,197,206,5,5,25,176,5,5,71,163,5,5,20,196,5,5,138,215,5,5,111,184,5,5,170,200,5,5,168,198,5,5,32,204,5,5,96,197,5,5,230,219,5,5,58,202,5,5,6,218,5,5,48,228,5,5,55,179,5,5,51,231,5,5,21,228,5,5,169,182,5,5,198,185,5,5,240,177,5,5,190,213,5,5,193,226,5,5,83,196,5,5,73,221,5,5,60,248,5,5,67,237,5,5,181,247,5,5,14,165,5,5,199,170,5,5,195,212,5,5,246,207,5,5,170,186,5,5,193,213,5,5,171,243,5,5,57,237,5,5,106,186,5,5,213,163,5,5,210,218,5,5,171,242,5,5,127,227,5,5,60,187,5,5,125,198,5,5,145,215,5,5,90,206,5,5,212,166,5,5,161,172,5,5,139,214,5,5,172,163,5,5,188,208,5,5,159,183,5,5,146,165,5,5,240,243,5,5,47,185,5,5,196,187,5,5,208,204,5,5,33,211,5,5,203,196,5,5,138,242,5,5,179,193,5,5,144,233,5,5,39,171,5,5,242,224,5,5,100,239,5,5,224,218,5,5,81,221,5,5,253,240,5,5,8,171,5,5,6,234,5,5,152,234,5,5,169,227,5,5,220,187,5,5,149,177,5,5,90,190,5,5,9,199,5,5,96,233,5,5,40,194,5,5,74,246,5,5,208,173,5,5,175,245,5,5,47,249,5,5,123,216,5,5,140,221,5,5,17,170,5,5,132,246,5,5,50,226,5,5,209,215,5,5,103,182,5,5,40,241,5,5,52,183,5,5,245,213,5,5,24,203,5,5,30,198,5,5,198,165,5,5,50,242,5,5,55,242,5,5,210,169,5,5,148,223,5,5,180,241,5,5,72,237,5,5,98,163,5,5,38,172,5,5,118,199,5,5,58,249,5,5,48,236,5,5,49,169,5,5,59,249,5,5,71,175,5,5,116,248,5,5,203,226,5,5,221,197,5,5,87,211,5,5,107,240,5,5,183,220,5,5,121,234,5,5,229,197,5,5,143,170,5,5,174,206,5,5,43,206,5,5,128,169,5,5,19,221,5,5,87,224,5,5,110,238,5,5,109,238,5,5,224,197,5,5,220,234,5,5,138,164,5,5,173,207,5,5,66,165,5,5,67,165,5,5,59,201,5,5,233,168,5,5,235,188,5,5,33,217,5,5,195,182,5,5,247,241,5,5,238,187,5,5,190,229,5,5,162,214,5,5,36,228,5,5,189,178,5,5,107,204,5,5,190,191,5,5,10,208,5,5,252,177,5,5,120,200,5,5,94,196,5,5,160,215,5,5,94,214,5,5,48,179,5,5,162,215,5,5,198,217,5,5,126,184,5,5,144,168,5,5,211,199,5,5,89,183,5,5,16,171,5,5,210,187,5,5,76,183,5,5,177,194,5,5,33,228,5,5,207,189,5,5,50,179,5,5,235,215,5,5,55,171,5,5,154,230,5,5,161,200,5,5,77,183,5,5,110,190,5,5,174,215,5,5,247,208,5,5,205,207,5,5,132,217,5,5,167,171,5,5,113,231,5,5,89,191,5,5,194,189,5,5,48,248,5,5,140,236,5,5,81,247,5,5,248,209,5,5,127,191,5,5,191,177,5,5,19,185,5,5,0,134,5,5,204,201,5,5,134,201,5,5,226,176,5,5,72,226,5,5,107,192,5,5,147,204,5,5,164,247,5,5,3,209,5,5,165,247,5,5,38,225,5,5,31,169,5,5,194,194,5,5,54,245,5,5,23,174,5,5,23,247,5,5,212,203,5,5,245,240,5,5,7,166,5,5,236,165,5,5,159,164,5,5,205,248,5,5,127,207,5,5,161,170,5,5,128,207,5,5,192,246,5,5,197,204,5,5,195,169,5,5,5,176,5,5,135,168,5,5,55,246,5,5,167,200,5,5,182,215,5,5,30,211,5,5,98,189,5,5,91,175,5,5,49,240,5,5,224,238,5,5,177,168,5,5,166,177,5,5,86,174,5,5,133,217,5,5,77,213,5,5,41,163,5,5,204,233,5,5,71,192,5,5,70,203,5,5,247,227,5,5,196,166,5,5,171,233,5,5,255,194,5,5,78,230,5,5,19,229,5,5,147,228,5,5,150,239,5,5,234,232,5,5,12,203,5,5,229,171,5,5,49,228,5,5,86,188,5,5,10,165,5,5,161,220,5,5,162,220,5,5,131,207,5,5,141,172,5,5,231,190,5,5,170,205,5,5,87,204,5,5,89,205,5,5,61,187,5,5,180,194,5,5,49,215,5,5,7,220,5,5,224,194,5,5,125,242,5,5,15,215,5,5,33,244,5,5,231,216,5,5,138,190,5,5,147,236,5,5,137,221,5,5,222,210,5,5,172,243,5,5,225,217,5,5,21,164,5,5,59,239,5,5,99,216,5,5,166,241,5,5,194,213,5,5,178,198,5,5,216,193,5,5,153,226,5,5,5,217,5,5,69,164,5,5,253,166,5,5,218,185,5,5,69,176,5,5,232,244,5,5,9,200,5,5,29,247,5,5,160,237,5,5,106,225,5,5,237,176,5,5,62,245,5,5,25,245,5,5,103,225,5,5,55,208,5,5,202,169,5,5,219,163,5,5,172,181,5,5,200,215,5,5,216,225,5,5,90,198,5,5,138,217,5,5,172,242,5,5,18,210,5,5,165,217,5,5,112,186,5,5,3,187,5,5,17,215,5,5,105,174,5,5,36,188,5,5,254,240,5,5,208,212,5,5,112,189,5,5,177,186,5,5,223,205,5,5,171,188,5,5,225,236,5,5,244,236,5,5,12,174,5,5,197,246,5,5,172,177,5,5,139,168,5,5,115,220,5,5,229,235,5,5,236,171,5,5,92,248,5,5,214,206,5,5,170,224,5,5,51,185,5,5,31,247,5,5,49,229,5,5,26,246,5,5,106,181,5,5,220,225,5,5,246,232,5,5,190,164,5,5,64,225,5,5,46,199,5,5,197,208,5,5,238,237,5,5,205,196,5,5,245,224,5,5,198,208,5,5,191,164,5,5,216,246,5,5,21,190,5,5,83,235,5,5,86,194,5,5,235,242,5,5,81,177,5,5,224,163,5,5,227,188,5,5,227,210,5,5,4,168,5,5,161,166,5,5,19,212,5,5,43,222,5,5,228,210,5,5,142,172,5,5,5,206,5,5,142,212,5,5,26,178,5,5,226,203,5,5,10,201,5,5,28,248,5,5,74,170,5,5,216,169,5,5,85,226,5,5,108,217,5,5,174,180,5,5,125,216,5,5,104,175,5,5,39,230,5,5,239,171,5,5,222,204,5,5,79,246,5,5,32,231,5,5,233,200,5,5,21,214,5,5,51,226,5,5,38,205,5,5,140,222,5,5,45,225,5,5,199,188,5,5,75,212,5,5,205,213,5,5,170,178,5,5,101,249,5,5,255,240,5,5,72,183,5,5,14,199,5,5,109,244,5,5,213,247,5,5,53,201,5,5,13,231,5,5,232,235,5,5,50,188,5,5,208,226,5,5,75,231,5,5,232,236,5,5,184,241,5,5,7,247,5,5,67,245,5,5,190,220,5,5,236,205,5,5,178,244,5,5,36,169,5,5,161,179,5,5,55,188,5,5,83,180,5,5,97,187,5,5,119,186,5,5,232,193,5,5,251,220,5,5,44,211,5,5,173,234,5,5,166,207,5,5,222,219,5,5,185,241,5,5,69,238,5,5,19,166,5,5,91,229,5,5,18,225,5,5,216,196,5,5,121,222,5,5,57,235,5,5,201,205,5,5,115,239,5,5,226,234,5,5,58,235,5,5,219,208,5,5,203,186,5,5,216,244,5,5,233,236,5,5,38,210,5,5,143,217,5,5,115,238,5,5,175,188,5,5,167,170,5,5,25,221,5,5,192,243,5,5,163,199,5,5,118,244,5,5,145,246,5,5,59,190,5,5,35,245,5,5,127,176,5,5,22,215,5,5,201,232,5,5,246,217,5,5,212,211,5,5,115,176,5,5,241,188,5,5,242,187,5,5,157,212,5,5,190,236,5,5,65,201,5,5,238,193,5,5,234,168,5,5,134,206,5,5,24,173,5,5,245,205,5,5,62,188,5,5,2,202,5,5,151,200,5,5,137,206,5,5,78,238,5,5,92,165,5,5,100,234,5,5,215,211,5,5,73,232,5,5,76,176,5,5,70,204,5,5,151,194,5,5,35,180,5,5,125,200,5,5,191,200,5,5,243,235,5,5,43,237,5,5,93,181,5,5,240,225,5,5,243,247,5,5,253,205,5,5,208,189,5,5,30,166,5,5,105,229,5,5,68,247,5,5,35,233,5,5,38,186,5,5,99,213,5,5,156,231,5,5,146,217,5,5,37,231,5,5,210,245,5,5,252,191,5,5,99,185,5,5,8,178,5,5,130,187,5,5,43,219,5,5,48,230,5,5,225,186,5,5,154,232,5,5,158,212,5,5,240,180,5,5,246,193,5,5,14,237,5,5,255,184,5,5,8,191,5,5,212,189,5,5,135,187,5,5,157,232,5,5,97,186,5,5,143,244,5,5,59,171,5,5,62,216,5,5,162,212,5,5,120,194,5,5,175,175,5,5,162,232,5,5,202,200,5,5,103,193,5,5,72,163,5,5,31,177,5,5,80,163,5,5,74,199,5,5,121,218,5,5,80,168,5,5,113,164,5,5,156,230,5,5,164,187,5,5,152,245,192,0,0,0,5,5,67,216,5,5,65,210,5,5,89,164,5,5,99,167,5,5,172,173,5,5,6,176,5,5,133,247,5,5,167,238,192,0,0,0,192,0,0,0,5,5,167,245,5,5,252,198,5,5,101,189,5,5,159,239,5,5,187,168,5,5,177,233,5,5,161,163,5,5,220,207,5,5,11,225,5,5,13,223,192,0,0,0,5,5,104,176,5,5,9,171,5,5,141,166,5,5,97,222,5,5,195,168,5,5,202,165,5,5,62,220,5,5,191,220,192,0,0,0,5,5,183,233,5,5,119,244,5,5,54,209,5,5,114,215,5,5,5,186,5,5,13,177,5,5,175,238,5,5,234,170,5,5,125,222,5,5,200,164,5,5,32,189,5,5,210,232,5,5,75,245,5,5,50,168,5,5,252,175,5,5,135,247,5,5,133,244,5,5,8,243,5,5,102,192,5,5,83,175,5,5,178,228,5,5,80,181,5,5,81,181,5,5,95,198,5,5,13,225,5,5,8,229,5,5,109,211,5,5,152,228,5,5,130,224,5,5,131,224,5,5,251,230,5,5,27,229,5,5,130,236,5,5,166,228,5,5,24,250,5,5,199,229,5,5,2,190,5,5,152,174,5,5,248,249,5,5,186,164,5,5,254,173,5,5,117,184,5,5,71,181,5,5,28,242,5,5,66,203,5,5,133,228,5,5,82,219,5,5,159,177,5,5,61,174,5,5,95,183,5,5,123,177,5,5,157,168,5,5,129,181,5,5,136,199,5,5,165,181,5,5,236,220,5,5,31,232,5,5,222,170,5,5,5,165,5,5,165,208,5,5,100,188,5,5,215,217,5,5,33,188,5,5,39,225,5,5,69,172,5,5,135,249,5,5,52,173,5,5,87,174,5,5,214,192,5,5,75,181,5,5,214,203,5,5,215,203,5,5,102,212,5,5,120,246,5,5,88,174,5,5,76,181,5,5,70,172,5,5,53,178,5,5,86,167,5,5,11,206,5,5,140,245,5,5,25,175,5,5,102,183,5,5,37,188,5,5,125,164,5,5,216,220,5,5,213,225,5,5,72,172,5,5,73,172,5,5,238,233,5,5,79,181,5,5,222,191,5,5,24,165,5,5,26,175,5,5,225,218,5,5,218,237,5,5,189,208,5,5,108,191,5,5,54,167,5,5,215,240,5,5,240,172,5,5,141,199,5,5,171,227,5,5,201,247,5,5,75,172,5,5,59,208,5,5,74,240,5,5,39,188,5,5,172,227,5,5,40,177,5,5,25,224,5,5,142,199,5,5,73,176,5,5,96,222,5,5,234,201,5,5,220,246,5,5,15,206,5,5,125,225,5,5,47,225,5,5,153,182,5,5,90,185,5,5,246,201,5,5,138,223,5,5,63,188,5,5,71,177,5,5,123,182,5,5,33,189,5,5,29,206,5,5,31,206,5,5,46,224,5,5,52,168,5,5,63,177,5,5,65,177,5,5,22,168,5,5,140,203,5,5,28,176,5,5,79,229,5,5,80,229,5,5,8,219,5,5,185,239,5,5,255,182,5,5,15,183,5,5,192,177,5,5,229,164,5,5,97,203,5,5,224,187,5,5,187,192,5,5,139,191,5,5,159,204,5,5,36,220,5,5,229,213,5,5,88,228,5,5,183,216,5,5,221,184,5,5,41,187,5,5,25,244,5,5,221,224,5,5,38,242,5,5,0,140,5,5,216,203,5,5,132,207,5,5,170,208,5,5,170,213,5,5,231,234,5,5,11,165,5,5,50,240,5,5,48,187,5,5,142,233,5,5,122,226,5,5,196,173,5,5,223,221,5,5,29,167,5,5,245,167,5,5,118,192,5,5,6,195,5,5,156,233,5,5,46,217,5,5,74,218,5,5,8,176,5,5,217,220,5,5,125,172,5,5,165,218,5,5,132,180,5,5,201,206,5,5,61,202,5,5,206,172,5,5,202,206,5,5,54,228,5,5,18,203,5,5,135,217,5,5,113,219,5,5,89,166,5,5,232,183,5,5,117,221,5,5,212,249,5,5,154,206,5,5,67,212,5,5,133,180,5,5,157,182,5,5,165,239,5,5,103,203,5,5,67,246,5,5,50,200,5,5,231,179,5,5,65,244,5,5,95,223,5,5,226,218,5,5,164,198,5,5,13,241,5,5,7,170,5,5,209,175,5,5,165,206,5,5,141,214,5,5,217,182,5,5,190,181,5,5,205,170,5,5,27,168,5,5,142,214,5,5,58,237,5,5,39,174,5,5,82,187,5,5,243,218,5,5,181,234,5,5,69,178,5,5,108,245,5,5,136,227,5,5,176,185,5,5,27,228,5,5,227,200,5,5,101,215,5,5,108,240,5,5,183,164,5,5,50,221,5,5,87,194,5,5,251,179,5,5,213,172,5,5,24,169,5,5,229,188,5,5,17,223,5,5,194,202,5,5,109,181,5,5,208,238,5,5,102,223,5,5,43,165,5,5,44,165,5,5,240,171,5,5,90,193,5,5,124,178,5,5,150,237,5,5,80,246,5,5,151,247,5,5,246,234,5,5,15,241,5,5,176,221,5,5,155,234,5,5,241,175,5,5,218,228,5,5,235,222,5,5,107,223,5,5,117,248,5,5,34,198,5,5,214,173,5,5,244,184,5,5,45,244,5,5,201,224,5,5,218,181,5,5,29,248,5,5,150,193,5,5,33,247,5,5,236,200,5,5,34,196,5,5,84,203,5,5,143,243,5,5,123,240,5,5,11,186,5,5,35,236,5,5,174,207,5,5,112,223,5,5,251,212,5,5,75,194,5,5,136,240,5,5,8,247,5,5,95,202,5,5,128,226,5,5,76,164,5,5,110,200,5,5,56,188,5,5,220,223,5,5,31,228,5,5,224,184,5,5,133,177,5,5,52,175,5,5,133,165,5,5,236,179,5,5,55,221,5,5,159,165,5,5,224,228,5,5,163,234,5,5,125,190,5,5,158,240,5,5,148,233,5,5,12,224,5,5,56,221,5,5,202,219,5,5,78,236,5,5,240,235,5,5,11,212,5,5,112,177,5,5,13,186,5,5,14,186,5,5,140,169,5,5,247,210,5,5,222,243,5,5,217,244,5,5,67,201,5,5,144,174,5,5,246,187,5,5,249,190,5,5,175,209,5,5,65,188,5,5,184,185,5,5,124,215,5,5,218,172,5,5,251,175,5,5,247,243,5,5,170,197,5,5,42,238,5,5,81,164,5,5,125,215,5,5,76,194,5,5,57,194,5,5,210,184,5,5,153,248,5,5,41,246,5,5,178,240,5,5,231,249,5,5,33,168,5,5,133,185,5,5,119,187,5,5,120,229,5,5,59,176,5,5,19,189,5,5,183,177,5,5,20,189,5,5,75,185,5,5,134,165,5,5,233,202,5,5,25,223,5,5,79,244,5,5,155,217,5,5,122,203,5,5,102,221,5,5,163,169,5,5,145,187,5,5,227,199,5,5,83,185,5,5,25,202,5,5,139,177,5,5,156,217,5,5,222,244,5,5,231,243,5,5,229,211,5,5,240,249,5,5,240,179,5,5,143,177,5,5,131,190,5,5,182,190,5,5,183,190,5,5,36,163,5,5,40,163,5,5,9,194,5,5,0,161,5,5,114,172,5,5,122,176,5,5,116,172,5,5,155,163,5,5,156,163,5,5,89,209,5,5,50,202,5,5,78,232,5,5,79,232,5,5,56,170,5,5,67,175,5,5,153,166,5,5,99,203,5,5,38,201,5,5,212,193,5,5,205,233,5,5,102,189,5,5,255,191,5,5,110,169,5,5,62,202,5,5,38,204,5,5,189,167,5,5,5,192,5,5,36,238,5,5,163,237,5,5,3,198,5,5,133,198,5,5,34,165,5,5,217,246,5,5,29,224,5,5,178,210,5,5,231,212,5,5,41,238,5,5,206,214,5,5,11,198,5,5,102,201,5,5,12,198,5,5,7,232,5,5,228,234,5,5,14,198,5,5,209,214,5,5,123,241,5,5,183,166,5,5,15,198,5,5,72,204,5,5,82,238,5,5,136,216,5,5,105,201,5,5,136,187,5,5,90,168,5,5,149,197,5,5,114,204,5,5,234,167,5,5,134,192,5,5,30,167,5,5,53,220,5,5,25,208,5,5,28,210,5,5,25,235,5,5,25,212,5,5,74,219,5,5,62,193,5,5,30,208,5,5,31,208,5,5,64,220,5,5,77,219,5,5,69,193,5,5,218,219,5,5,9,178,5,5,249,171,5,5,4,209,5,5,155,244,5,5,167,247,5,5,184,163,5,5,211,219,5,5,205,222,5,5,100,167,5,5,97,197,5,5,157,244,5,5,107,197,5,5,65,240,5,5,45,163,5,5,205,246,5,5,108,197,5,5,20,239,5,5,110,220,5,5,169,242,5,5,203,204,5,5,112,197,5,5,149,247,5,5,105,196,5,5,59,173,5,5,238,191,5,5,159,175,5,5,59,167,5,5,169,174,5,5,29,210,5,5,44,229,5,5,160,175,5,5,29,190,5,5,118,220,5,5,229,170,5,5,199,186,5,5,197,205,5,5,27,217,5,5,227,204,5,5,66,167,5,5,113,194,5,5,217,238,5,5,199,189,5,5,240,216,5,5,26,220,5,5,116,176,5,5,220,238,5,5,74,193,5,5,137,187,5,5,83,172,5,5,193,177,5,5,154,192,5,5,184,216,5,5,191,170,5,5,109,247,5,5,102,218,5,5,33,209,5,5,85,249,5,5,77,181,5,5,40,216,5,5,200,178,5,5,251,215,5,5,118,213,5,5,85,167,5,5,197,173,5,5,208,178,5,5,230,171,5,5,30,172,5,5,36,229,5,5,55,227,5,5,136,249,5,5,196,171,5,5,52,167,5,5,173,173,5,5,156,171,5,5,230,175,5,5,197,169,5,5,61,170,5,5,186,195,5,5,189,215,5,5,136,195,5,5,60,227,5,5,7,244,5,5,75,221,5,5,218,241,5,5,153,228,5,5,193,199,5,5,49,175,5,5,218,220,5,5,30,197,5,5,203,206,5,5,210,228,5,5,160,239,5,5,37,229,5,5,2,170,5,5,111,169,5,5,224,221,5,5,169,220,5,5,170,220,5,5,175,171,5,5,61,227,5,5,252,248,5,5,32,177,5,5,206,183,5,5,198,231,5,5,199,231,5,5,254,223,5,5,96,219,5,5,163,217,5,5,69,166,5,5,76,171,5,5,234,190,5,5,252,236,5,5,177,182,5,5,32,171,5,5,69,177,5,5,238,176,5,5,4,183,5,5,34,172,5,5,166,217,5,5,10,223,5,5,31,197,5,5,250,207,5,5,89,170,5,5,246,220,5,5,54,181,5,5,35,244,5,5,225,242,5,5,115,169,5,5,249,222,5,5,112,169,5,5,184,219,5,5,82,221,5,5,211,169,5,5,207,236,5,5,8,228,5,5,134,198,5,5,228,200,5,5,247,176,5,5,143,225,5,5,182,234,5,5,251,207,5,5,164,237,5,5,128,170,5,5,205,215,5,5,221,212,5,5,243,196,5,5,66,185,5,5,32,205,5,5,82,228,5,5,110,181,5,5,148,194,5,5,221,246,5,5,163,186,5,5,81,227,5,5,149,212,5,5,201,187,5,5,2,241,5,5,98,206,5,5,91,221,5,5,190,186,5,5,67,185,5,5,31,237,5,5,2,208,5,5,215,229,5,5,2,237,5,5,235,177,5,5,45,165,5,5,43,168,5,5,97,172,5,5,254,200,5,5,213,183,5,5,30,190,5,5,109,240,5,5,169,203,5,5,22,234,5,5,39,220,5,5,221,247,5,5,2,201,5,5,53,169,5,5,232,213,5,5,159,216,5,5,25,200,5,5,150,194,5,5,37,232,5,5,118,226,5,5,228,204,5,5,11,170,5,5,27,178,5,5,35,198,5,5,111,217,5,5,120,181,5,5,130,196,5,5,11,192,5,5,14,231,5,5,76,170,5,5,28,217,5,5,132,172,5,5,205,245,5,5,151,171,5,5,59,224,5,5,163,196,5,5,33,171,5,5,130,247,5,5,156,195,5,5,110,176,5,5,173,224,5,5,23,195,5,5,69,236,5,5,180,213,5,5,152,212,5,5,136,169,5,5,45,172,5,5,114,170,5,5,217,229,5,5,8,232,5,5,57,221,5,5,159,240,5,5,86,177,5,5,140,195,5,5,141,169,5,5,232,229,5,5,64,235,5,5,225,185,5,5,22,223,5,5,115,170,5,5,86,168,5,5,75,225,5,5,27,194,5,5,235,170,5,5,244,200,5,5,39,231,5,5,63,168,5,5,19,213,5,5,177,209,5,5,236,168,5,5,202,221,5,5,141,176,5,5,199,228,5,5,234,229,5,5,14,188,5,5,202,223,5,5,126,215,5,5,191,195,5,5,124,241,5,5,37,217,5,5,204,182,5,5,96,170,5,5,245,188,5,5,54,194,5,5,133,205,5,5,127,241,5,5,83,238,5,5,131,200,5,5,96,220,5,5,56,205,5,5,75,193,5,5,248,219,5,5,218,211,5,5,229,169,5,5,61,224,5,5,37,236,5,5,135,184,5,5,204,217,5,5,254,241,5,5,217,199,5,5,249,170,5,5,187,171,5,5,147,168,5,5,188,171,5,5,138,187,5,5,43,197,5,5,196,207,5,5,128,217,5,5,189,171,5,5,228,199,5,5,215,189,5,5,254,170,5,5,11,191,5,5,122,194,5,5,135,170,5,5,102,213,5,5,237,225,5,5,123,180,5,5,193,195,5,5,206,221,5,5,20,170,5,5,167,205,5,5,222,188,5,5,93,248,5,5,185,229,5,5,251,231,5,5,208,207,5,5,10,227,5,5,216,239,5,5,184,228,5,5,64,218,5,5,27,198,5,5,186,228,5,5,205,244,5,5,22,207,5,5,13,220,5,5,39,204,5,5,183,234,5,5,163,178,5,5,47,238,5,5,71,204,5,5,202,232,5,5,194,248,5,5,28,163,5,5,227,226,5,5,213,177,5,5,28,209,5,5,207,201,5,5,172,231,5,5,113,192,5,5,92,245,5,5,129,219,5,5,5,196,5,5,188,192,5,5,113,213,5,5,9,173,5,5,27,197,5,5,96,176,5,5,32,169,5,5,125,227,5,5,231,175,5,5,133,207,5,5,49,187,5,5,27,174,5,5,231,171,5,5,183,237,5,5,189,199,5,5,211,195,5,5,162,218,5,5,37,209,5,5,172,195,5,5,217,203,5,5,8,166,5,5,205,237,5,5,31,241,5,5,206,167,5,5,130,219,5,5,167,242,5,5,22,237,5,5,116,222,5,5,176,223,5,5,209,178,5,5,53,167,5,5,29,243,5,5,4,206,5,5,198,173,5,5,129,172,5,5,113,169,5,5,97,219,5,5,204,206,5,5,67,248,5,5,7,195,5,5,30,182,5,5,31,182,5,5,212,176,5,5,199,219,5,5,171,220,5,5,208,237,5,5,96,174,5,5,74,172,5,5,225,221,5,5,235,184,5,5,195,165,5,5,149,184,5,5,161,168,5,5,139,167,5,5,103,189,5,5,31,167,5,5,23,185,5,5,199,166,5,5,46,163,5,5,200,166,5,5,154,228,5,5,220,231,5,5,58,238,5,5,62,187,5,5,235,190,5,5,174,182,5,5,28,250,5,5,63,187,5,5,48,197,5,5,188,225,5,5,246,195,5,5,68,212,5,5,141,221,5,5,4,197,5,5,220,193,5,5,219,237,5,5,50,183,5,5,85,209,5,5,16,190,5,5,68,246,5,5,59,238,5,5,206,191,5,5,201,215,5,5,151,216,5,5,173,242,5,5,19,179,5,5,142,167,5,5,209,212,5,5,219,185,5,5,153,201,5,5,184,229,5,5,196,213,5,5,130,209,5,5,147,211,5,5,18,246,5,5,162,209,5,5,75,240,5,5,248,195,5,5,143,214,5,5,20,212,5,5,157,224,5,5,115,186,5,5,119,201,5,5,202,247,5,5,144,214,5,5,201,213,5,5,214,170,5,5,140,190,5,5,11,250,5,5,179,223,5,5,195,223,5,5,201,245,5,5,40,188,5,5,224,244,5,5,206,170,5,5,21,212,5,5,45,243,5,5,137,227,5,5,230,196,5,5,94,248,5,5,99,223,5,5,160,199,5,5,232,189,5,5,212,224,5,5,33,205,5,5,223,184,5,5,101,237,5,5,46,222,5,5,250,195,5,5,160,167,5,5,142,242,5,5,98,222,5,5,58,197,5,5,121,225,5,5,203,208,5,5,145,233,5,5,139,211,5,5,230,188,5,5,29,208,5,5,54,163,5,5,222,177,5,5,241,171,5,5,83,177,5,5,223,204,5,5,160,197,5,5,31,190,5,5,65,238,5,5,32,237,5,5,26,212,5,5,154,186,5,5,189,163,5,5,186,243,5,5,140,178,5,5,64,245,5,5,204,208,5,5,218,190,5,5,222,246,5,5,153,177,5,5,55,183,5,5,231,163,5,5,47,209,5,5,213,224,5,5,33,231,5,5,186,242,5,5,52,177,5,5,224,177,5,5,248,177,5,5,40,182,5,5,178,203,5,5,112,244,5,5,221,165,5,5,68,195,5,5,57,165,5,5,135,246,5,5,188,229,5,5,192,220,5,5,173,178,5,5,209,213,5,5,107,176,5,5,177,180,5,5,74,183,5,5,193,167,5,5,48,205,5,5,3,177,5,5,45,180,5,5,154,223,5,5,122,181,5,5,51,209,5,5,221,178,5,5,215,173,5,5,174,217,5,5,32,212,5,5,33,212,5,5,37,169,5,5,210,194,5,5,81,184,5,5,183,236,5,5,171,237,5,5,184,233,5,5,57,188,5,5,136,235,5,5,89,180,5,5,170,164,5,5,122,199,5,5,223,167,5,5,93,246,5,5,118,236,5,5,125,185,5,5,175,234,5,5,91,181,5,5,211,213,5,5,252,212,5,5,142,188,5,5,67,167,5,5,34,246,5,5,173,249,5,5,125,178,5,5,152,219,5,5,24,195,5,5,237,184,5,5,122,222,5,5,143,211,5,5,140,194,5,5,126,222,5,5,97,224,5,5,58,209,5,5,118,238,5,5,148,167,5,5,105,188,5,5,243,189,5,5,190,195,5,5,137,226,5,5,216,224,5,5,220,243,5,5,126,185,5,5,160,165,5,5,59,209,5,5,77,169,5,5,60,209,5,5,222,234,5,5,113,233,5,5,144,211,5,5,13,226,5,5,224,190,5,5,6,202,5,5,112,228,5,5,185,185,5,5,216,211,5,5,203,232,5,5,142,176,5,5,134,205,5,5,152,213,5,5,246,188,5,5,228,177,5,5,12,180,5,5,68,201,5,5,69,167,5,5,227,231,5,5,150,209,5,5,160,176,5,5,113,187,5,5,157,205,5,5,12,204,5,5,167,213,5,5,39,221,5,5,178,209,5,5,194,178,5,5,57,205,5,5,154,248,5,5,108,222,5,5,143,197,5,5,72,195,5,5,10,232,5,5,96,185,5,5,48,195,5,5,197,225,5,5,128,241,5,5,37,212,5,5,117,176,5,5,244,239,5,5,30,206,5,5,231,167,5,5,232,167,5,5,155,248,5,5,131,168,5,5,9,238,5,5,86,238,5,5,32,195,5,5,251,204,5,5,161,248,5,5,38,231,5,5,250,170,5,5,33,167,5,5,197,233,5,5,133,163,5,5,91,244,5,5,58,169,5,5,227,233,5,5,129,215,5,5,44,197,5,5,101,185,5,5,136,185,5,5,46,219,5,5,139,187,5,5,140,187,5,5,33,173,5,5,41,212,5,5,34,167,5,5,144,244,5,5,146,187,5,5,12,191,5,5,13,191,5,5,150,169,5,5,137,163,5,5,244,229,5,5,123,194,5,5,53,186,5,5,143,232,5,5,209,242,5,5,30,227,5,5,24,227,5,5,248,186,5,5,177,230,5,5,188,227,5,5,206,248,5,5,168,235,5,5,166,208,5,5,34,179,5,5,44,169,5,5,58,214,5,5,145,241,5,5,46,215,5,5,171,208,5,5,172,208,5,5,163,218,5,5,176,164,5,5,137,178,5,5,243,222,5,5,128,230,5,5,97,239,5,5,245,226,5,5,109,242,5,5,211,218,5,5,24,181,5,5,97,174,5,5,204,174,5,5,94,171,5,5,235,232,5,5,75,218,5,5,61,237,5,5,3,170,5,5,12,233,5,5,166,211,5,5,70,199,5,5,226,221,5,5,179,228,5,5,23,237,5,5,173,233,5,5,212,223,5,5,37,171,5,5,68,191,5,5,21,248,5,5,71,216,5,5,29,245,5,5,16,181,5,5,92,168,5,5,228,221,5,5,15,194,5,5,197,213,5,5,81,218,5,5,187,202,5,5,45,192,5,5,175,220,5,5,46,192,5,5,212,229,5,5,224,205,5,5,213,228,5,5,223,191,5,5,231,196,5,5,248,176,5,5,140,175,5,5,201,199,5,5,187,179,5,5,205,208,5,5,91,193,5,5,107,194,5,5,41,233,5,5,128,189,5,5,32,190,5,5,74,166,5,5,229,205,5,5,142,175,5,5,122,218,5,5,22,190,5,5,84,224,5,5,190,163,5,5,168,219,5,5,26,200,5,5,85,242,5,5,140,213,5,5,144,243,5,5,139,231,5,5,205,199,5,5,193,220,5,5,131,174,5,5,103,249,5,5,34,245,5,5,156,215,5,5,46,244,5,5,89,218,5,5,109,239,5,5,220,169,5,5,126,235,5,5,4,177,5,5,247,163,5,5,53,222,5,5,197,220,5,5,20,250,5,5,96,202,5,5,51,192,5,5,90,180,5,5,137,235,5,5,54,169,5,5,71,179,5,5,255,174,5,5,120,217,5,5,221,208,5,5,138,248,5,5,94,213,5,5,7,202,5,5,191,235,5,5,100,224,5,5,57,176,5,5,58,194,5,5,47,237,5,5,14,187,5,5,202,184,5,5,51,171,5,5,154,175,5,5,141,187,5,5,157,230,5,5,242,248,5,5,201,180,5,5,163,232,5,5,161,185,5,5,33,230,5,5,11,248,5,5,173,247,5,5,178,186,5,5,76,214,5,5,237,210,5,5,83,197,5,5,181,181,5,5,12,215,5,5,107,235,5,5,90,230,5,5,182,181,5,5,173,231,5,5,142,223,5,5,135,192,5,5,35,240,5,5,44,215,5,5,60,166,5,5,64,184,5,5,221,209,5,5,222,209,5,5,226,222,5,5,131,173,5,5,246,197,5,5,137,249,5,5,2,195,5,5,157,171,5,5,69,218,5,5,82,206,5,5,232,164,5,5,70,218,5,5,61,248,5,5,95,171,5,5,27,196,5,5,107,164,5,5,209,167,5,5,154,183,5,5,64,187,5,5,41,242,5,5,213,232,5,5,210,167,5,5,81,163,5,5,104,189,5,5,114,169,5,5,145,225,5,5,66,184,5,5,223,210,5,5,8,244,5,5,242,232,5,5,212,218,5,5,76,218,5,5,99,229,5,5,62,207,5,5,179,231,5,5,176,199,5,5,217,201,5,5,57,225,5,5,178,182,5,5,227,218,5,5,177,199,5,5,113,197,5,5,127,243,5,5,119,231,5,5,228,218,5,5,104,203,5,5,101,230,5,5,37,178,5,5,166,239,5,5,142,221,5,5,82,200,5,5,192,184,5,5,218,174,5,5,222,212,5,5,124,195,5,5,116,186,5,5,40,174,5,5,16,218,5,5,213,229,5,5,69,191,5,5,232,196,5,5,141,192,5,5,94,206,5,5,169,180,5,5,115,225,5,5,212,181,5,5,233,227,5,5,214,229,5,5,44,241,5,5,219,190,5,5,33,190,5,5,92,193,5,5,247,232,5,5,104,230,5,5,167,222,5,5,167,164,5,5,173,163,5,5,235,201,5,5,86,218,5,5,251,218,5,5,234,196,5,5,155,186,5,5,161,167,5,5,15,195,5,5,75,166,5,5,30,224,5,5,42,233,5,5,105,248,5,5,132,236,5,5,110,191,5,5,50,216,5,5,110,239,5,5,141,213,5,5,222,165,5,5,202,202,5,5,132,174,5,5,46,168,5,5,170,184,5,5,119,203,5,5,236,222,5,5,103,233,5,5,236,216,5,5,69,225,5,5,163,175,5,5,56,247,5,5,115,215,5,5,140,231,5,5,131,248,5,5,213,202,5,5,34,217,5,5,228,220,5,5,18,219,5,5,166,175,5,5,94,203,5,5,247,201,5,5,32,192,5,5,33,192,5,5,64,193,5,5,77,231,5,5,34,237,5,5,103,231,5,5,219,202,5,5,220,195,5,5,107,172,5,5,88,234,5,5,226,169,5,5,34,219,5,5,203,202,5,5,55,190,5,5,134,236,5,5,3,202,5,5,218,244,5,5,57,247,5,5,232,209,5,5,241,235,5,5,167,197,5,5,160,240,5,5,70,201,5,5,118,209,5,5,142,202,5,5,44,237,5,5,168,214,5,5,237,168,5,5,13,204,5,5,14,222,5,5,238,222,5,5,54,233,5,5,81,191,5,5,48,237,5,5,203,184,5,5,245,235,5,5,132,200,5,5,150,230,5,5,177,184,5,5,162,248,5,5,132,168,5,5,234,202,5,5,85,182,5,5,58,247,5,5,80,225,5,5,218,199,5,5,45,197,5,5,84,191,5,5,173,165,5,5,252,235,5,5,158,230,5,5,17,222,5,5,242,186,5,5,15,235,5,5,55,217,5,5,135,245,5,5,124,204,5,5,132,212,5,5,178,212,5,5,133,212,5,5,51,197,5,5,143,247,5,5,148,228,5,5,125,206,5,5,234,241,5,5,48,226,5,5,158,222,5,5,184,181,5,5,170,185,5,5,98,209,5,5,196,219,5,5,219,241,5,5,216,165,5,5,8,164,5,5,220,241,5,5,70,166,5,5,141,245,5,5,171,221,5,5,88,204,5,5,194,209,5,5,99,177,5,5,2,245,5,5,222,193,5,5,167,241,5,5,229,218,5,5,123,226,5,5,239,241,5,5,48,181,5,5,93,204,5,5,124,226,5,5,103,208,5,5,145,214,5,5,107,225,5,5,153,195,5,5,16,235,5,5,176,245,5,5,42,176,5,5,16,196,5,5,16,195,5,5,47,222,5,5,203,216,5,5,133,236,5,5,72,194,5,5,106,196,5,5,211,175,5,5,78,222,5,5,192,217,5,5,179,245,5,5,148,245,5,5,45,241,5,5,222,247,5,5,81,207,5,5,153,212,5,5,193,241,5,5,194,241,5,5,51,181,5,5,247,223,5,5,34,248,5,5,92,181,5,5,113,177,5,5,93,207,5,5,25,188,5,5,10,213,5,5,123,245,5,5,108,196,5,5,129,226,5,5,216,219,5,5,194,196,5,5,192,196,5,5,250,190,5,5,79,225,5,5,253,234,5,5,81,168,5,5,93,232,5,5,21,235,5,5,205,209,5,5,159,212,5,5,219,175,5,5,94,232,5,5,38,191,5,5,123,209,5,5,26,187,5,5,203,225,5,5,110,227,5,5,194,174,5,5,195,210,5,5,210,225,5,5,142,201,5,5,173,208,5,5,23,198,5,5,55,229,5,5,143,173,5,5,136,229,5,5,168,171,5,5,238,211,5,5,137,220,5,5,227,221,5,5,105,189,5,5,236,190,5,5,90,166,5,5,155,206,5,5,164,206,5,5,11,221,5,5,179,163,5,5,182,235,5,5,60,208,5,5,158,201,5,5,180,182,5,5,112,237,5,5,166,206,5,5,106,177,5,5,110,240,5,5,148,229,5,5,171,206,5,5,241,211,5,5,179,203,5,5,164,168,5,5,159,178,5,5,249,227,5,5,134,222,5,5,140,234,5,5,128,176,5,5,28,235,5,5,216,245,5,5,186,206,5,5,184,195,5,5,187,206,5,5,165,221,5,5,167,221,5,5,22,185,5,5,151,167,5,5,174,247,5,5,37,223,5,5,116,192,5,5,192,170,5,5,169,221,5,5,252,246,5,5,22,178,5,5,218,201,5,5,191,214,5,5,0,144,5,5,62,237,5,5,63,202,5,5,2,211,5,5,232,219,5,5,79,237,5,5,247,240,5,5,91,222,5,5,40,249,5,5,71,199,5,5,179,198,5,5,219,214,5,5,108,234,5,5,15,165,5,5,234,164,5,5,20,205,5,5,228,239,5,5,238,178,5,5,57,228,5,5,23,229,5,5,8,175,5,5,172,176,5,5,173,221,5,5,243,182,5,5,11,223,5,5,12,193,5,5,70,187,5,5,107,209,5,5,6,172,5,5,254,163,5,5,26,181,5,5,179,235,5,5,106,174,5,5,241,233,5,5,134,164,5,5,255,166,5,5,27,175,5,5,181,231,5,5,239,176,5,5,113,189,5,5,247,231,5,5,144,184,5,5,107,174,5,5,74,192,5,5,15,173,5,5,20,203,5,5,139,192,5,5,60,173,5,5,19,227,5,5,53,170,5,5,189,166,5,5,244,180,5,5,209,204,5,5,137,212,5,5,237,190,5,5,25,172,5,5,196,165,5,5,141,190,5,5,41,194,5,5,172,211,5,5,43,223,5,5,134,243,5,5,241,241,5,5,150,215,5,5,239,164,5,5,143,212,5,5,57,196,5,5,133,176,5,5,197,214,5,5,176,205,5,5,72,212,5,5,81,237,5,5,189,230,5,5,131,172,5,5,5,197,5,5,235,221,5,5,212,182,5,5,229,201,5,5,31,175,5,5,185,198,5,5,246,233,5,5,252,222,5,5,154,195,5,5,52,185,5,5,35,165,5,5,216,227,5,5,71,176,5,5,88,221,5,5,248,233,5,5,43,174,5,5,146,249,5,5,219,181,5,5,162,166,5,5,191,186,5,5,120,186,5,5,27,207,5,5,88,194,5,5,39,205,5,5,96,198,5,5,183,182,5,5,206,213,5,5,252,218,5,5,116,225,5,5,63,237,5,5,82,227,5,5,241,221,5,5,248,232,5,5,204,214,5,5,235,227,5,5,153,181,5,5,249,233,5,5,187,242,5,5,49,192,5,5,88,196,5,5,126,192,5,5,31,224,5,5,50,197,5,5,208,192,5,5,147,249,5,5,142,237,5,5,87,210,5,5,205,214,5,5,40,205,5,5,44,167,5,5,56,185,5,5,105,232,5,5,240,164,5,5,58,165,5,5,59,165,5,5,209,191,5,5,119,179,5,5,201,193,5,5,152,247,5,5,229,204,5,5,164,175,5,5,22,193,5,5,48,223,5,5,95,221,5,5,140,211,5,5,163,227,5,5,40,220,5,5,40,190,5,5,107,163,5,5,242,201,5,5,231,188,5,5,64,237,5,5,63,208,5,5,133,174,5,5,89,219,5,5,23,193,5,5,59,197,5,5,134,210,5,5,94,210,5,5,64,208,5,5,40,226,5,5,89,194,5,5,12,249,5,5,253,233,5,5,224,232,5,5,141,163,5,5,255,231,5,5,112,209,5,5,70,182,5,5,98,190,5,5,243,175,5,5,156,214,5,5,242,230,5,5,120,205,5,5,114,217,5,5,203,165,5,5,84,237,5,5,53,216,5,5,158,215,5,5,202,168,5,5,198,220,5,5,129,216,5,5,20,199,5,5,188,239,5,5,244,221,5,5,192,248,5,5,86,226,5,5,99,191,5,5,7,245,5,5,251,178,5,5,191,229,5,5,97,202,5,5,170,203,5,5,60,201,5,5,130,216,5,5,13,170,5,5,67,173,5,5,62,226,5,5,146,222,5,5,103,168,5,5,217,173,5,5,177,221,5,5,61,201,5,5,116,209,5,5,36,198,5,5,228,209,5,5,161,171,5,5,186,210,5,5,102,193,5,5,168,196,5,5,115,227,5,5,4,186,5,5,155,249,5,5,139,197,5,5,94,180,5,5,229,248,5,5,13,224,5,5,15,192,5,5,190,172,5,5,243,230,5,5,98,221,5,5,63,192,5,5,253,183,5,5,190,210,5,5,208,214,5,5,19,235,5,5,32,191,5,5,171,167,5,5,30,178,5,5,106,187,5,5,79,165,5,5,59,222,5,5,176,225,5,5,218,227,5,5,53,223,5,5,249,221,5,5,48,211,5,5,246,190,5,5,31,186,5,5,239,204,5,5,147,166,5,5,213,186,5,5,126,200,5,5,85,165,5,5,188,176,5,5,66,235,5,5,151,242,5,5,175,167,5,5,89,234,5,5,148,222,5,5,13,168,5,5,87,168,5,5,188,175,5,5,149,248,5,5,136,171,5,5,117,182,5,5,9,232,5,5,219,227,5,5,55,194,5,5,197,239,5,5,88,199,5,5,146,224,5,5,159,195,5,5,164,234,5,5,207,168,5,5,89,232,5,5,8,202,5,5,28,194,5,5,192,236,5,5,6,186,5,5,3,234,5,5,60,190,5,5,83,184,5,5,214,236,5,5,20,235,5,5,117,177,5,5,216,236,5,5,27,185,5,5,177,178,5,5,82,189,5,5,169,214,5,5,127,163,5,5,121,171,5,5,220,227,5,5,118,176,5,5,250,187,5,5,253,175,5,5,184,177,5,5,181,174,5,5,58,205,5,5,18,172,5,5,175,196,5,5,116,175,5,5,17,204,5,5,129,176,5,5,74,201,5,5,85,237,5,5,186,185,5,5,124,232,5,5,175,214,5,5,68,190,5,5,106,227,5,5,125,232,5,5,70,209,5,5,216,166,5,5,71,209,5,5,217,166,5,5,147,192,5,5,101,207,5,5,46,178,5,5,69,190,5,5,199,242,5,5,142,163,5,5,77,176,5,5,15,236,5,5,4,222,5,5,255,190,5,5,103,210,5,5,162,188,5,5,148,166,5,5,70,220,5,5,79,185,5,5,117,227,5,5,46,186,5,5,178,196,5,5,249,247,5,5,237,248,5,5,236,197,5,5,206,220,5,5,131,179,5,5,241,180,5,5,12,184,5,5,47,224,5,5,114,202,5,5,219,240,5,5,72,209,5,5,146,180,5,5,154,222,5,5,72,220,5,5,254,172,5,5,75,236,5,5,71,220,5,5,198,210,5,5,74,222,5,5,148,180,5,5,78,190,5,5,216,189,5,5,72,205,5,5,72,182,5,5,203,244,5,5,172,248,5,5,84,185,5,5,15,191,5,5,128,209,5,5,168,188,5,5,54,186,5,5,112,210,5,5,243,248,5,5,224,222,5,5,230,211,5,5,169,188,5,5,213,165,5,5,181,178,5,5,63,233,5,5,243,186,5,5,153,235,5,5,117,190,5,5,204,244,5,5,245,248,5,5,76,222,5,5,182,248,5,5,68,171,5,5,165,176,5,5,10,173,5,5,141,228,5,5,131,219,5,5,149,228,5,5,214,184,5,5,98,197,5,5,144,185,5,5,47,215,5,5,175,231,5,5,151,183,5,5,36,235,5,5,58,221,5,5,71,210,5,5,204,219,5,5,235,164,5,5,91,164,5,5,101,245,5,5,128,227,5,5,212,195,5,5,52,230,5,5,125,173,5,5,16,165,5,5,233,234,5,5,253,243,5,5,136,219,5,5,67,223,5,5,147,179,5,5,98,199,5,5,0,145,5,5,71,187,5,5,121,192,5,5,67,207,5,5,202,166,5,5,116,169,5,5,144,234,5,5,80,220,5,5,57,220,5,5,179,186,5,5,152,236,5,5,55,181,5,5,72,187,5,5,223,212,5,5,157,236,5,5,159,201,5,5,181,182,5,5,128,231,5,5,242,233,5,5,220,248,5,5,17,220,5,5,228,188,5,5,178,222,5,5,162,163,5,5,221,185,5,5,134,173,5,5,38,239,5,5,173,211,5,5,178,197,5,5,47,189,5,5,210,215,5,5,120,174,5,5,48,189,5,5,96,234,5,5,99,206,5,5,6,187,5,5,223,248,5,5,41,190,5,5,253,206,5,5,210,208,5,5,247,234,5,5,175,163,5,5,20,221,5,5,232,188,5,5,146,233,5,5,103,206,5,5,183,193,5,5,161,199,5,5,90,236,5,5,91,236,5,5,91,180,5,5,223,165,5,5,42,230,5,5,218,171,5,5,37,198,5,5,237,216,5,5,147,233,5,5,21,199,5,5,121,205,5,5,123,232,5,5,188,233,5,5,204,186,5,5,95,214,5,5,52,174,5,5,171,184,5,5,242,163,5,5,66,193,5,5,11,215,5,5,16,192,5,5,95,180,5,5,47,210,5,5,96,203,5,5,33,234,5,5,182,222,5,5,98,180,5,5,45,171,5,5,93,236,5,5,139,173,5,5,63,232,5,5,222,195,5,5,68,206,5,5,78,169,5,5,94,236,5,5,95,236,5,5,176,184,5,5,25,213,5,5,54,189,5,5,69,206,5,5,98,196,5,5,145,163,5,5,196,200,5,5,167,229,5,5,152,233,5,5,236,215,5,5,178,184,5,5,120,182,5,5,17,184,5,5,147,187,5,5,21,233,5,5,196,176,5,5,20,184,5,5,59,181,5,5,100,186,5,5,86,171,5,5,106,235,5,5,125,204,5,5,108,213,5,5,195,194,5,5,105,221,5,5,127,204,5,5,99,242,5,5,167,202,5,5,168,223,5,5,51,220,5,5,221,217,5,5,191,248,5,5,144,201,5,5,144,247,5,5,99,197,5,5,193,246,5,5,129,230,5,5,53,247,5,5,26,247,5,5,13,210,5,5,240,182,5,5,114,231,5,5,218,179,5,5,54,184,5,5,228,172,5,5,171,202,5,5,73,229,5,5,98,226,5,5,211,167,5,5,244,220,5,5,129,227,5,5,149,201,5,5,167,218,5,5,64,202,5,5,78,173,5,5,139,249,5,5,130,230,5,5,9,176,5,5,171,205,5,5,148,236,5,5,176,173,5,5,224,236,5,5,234,234,5,5,150,204,5,5,213,231,5,5,34,163,5,5,187,205,5,5,35,174,5,5,230,218,5,5,206,233,5,5,184,231,5,5,22,224,5,5,154,201,5,5,214,231,5,5,147,185,5,5,124,213,5,5,108,174,5,5,70,214,5,5,157,228,5,5,49,163,5,5,229,221,5,5,168,211,5,5,114,189,5,5,230,221,5,5,6,228,5,5,159,192,5,5,66,244,5,5,109,174,5,5,33,182,5,5,219,220,5,5,98,175,5,5,217,225,5,5,196,226,5,5,211,222,5,5,96,215,5,5,236,232,5,5,86,208,5,5,109,164,5,5,205,211,5,5,117,169,5,5,143,229,5,5,37,233,5,5,49,197,5,5,91,206,5,5,138,230,5,5,186,198,5,5,77,214,5,5,160,203,5,5,144,221,5,5,26,224,5,5,134,193,5,5,163,163,5,5,156,207,5,5,32,197,5,5,10,199,5,5,217,233,5,5,175,200,5,5,220,192,5,5,159,179,5,5,161,203,5,5,31,196,5,5,44,204,5,5,73,212,5,5,230,191,5,5,142,190,5,5,170,217,5,5,179,164,5,5,206,215,5,5,116,174,5,5,254,191,5,5,22,179,5,5,62,231,5,5,56,181,5,5,135,243,5,5,120,185,5,5,78,214,5,5,252,207,5,5,19,217,5,5,224,191,5,5,41,177,5,5,213,182,5,5,116,235,5,5,58,206,5,5,72,216,5,5,86,200,5,5,157,207,5,5,117,218,5,5,41,205,5,5,3,208,5,5,18,223,5,5,207,171,5,5,224,220,5,5,73,191,5,5,117,225,5,5,32,210,5,5,86,229,5,5,153,164,5,5,214,182,5,5,149,214,5,5,179,200,5,5,208,210,5,5,241,192,5,5,9,215,5,5,175,180,5,5,225,179,5,5,22,214,5,5,162,201,5,5,135,213,5,5,121,174,5,5,135,181,5,5,3,237,5,5,142,178,5,5,235,196,5,5,44,174,5,5,100,206,5,5,77,199,5,5,87,218,5,5,188,242,5,5,106,208,5,5,242,173,5,5,195,202,5,5,43,217,5,5,148,230,5,5,104,233,5,5,172,224,5,5,89,178,5,5,98,187,5,5,96,191,5,5,50,189,5,5,34,224,5,5,105,212,5,5,9,228,5,5,211,208,5,5,212,208,5,5,165,222,5,5,213,208,5,5,223,246,5,5,183,210,5,5,218,215,5,5,29,228,5,5,31,246,5,5,17,209,5,5,188,179,5,5,224,246,5,5,199,192,5,5,100,247,5,5,185,164,5,5,99,222,5,5,24,234,5,5,184,193,5,5,248,234,5,5,211,190,5,5,92,188,5,5,18,209,5,5,144,220,5,5,60,165,5,5,8,226,5,5,134,189,5,5,180,171,5,5,140,208,5,5,113,209,5,5,90,181,5,5,105,233,5,5,138,194,5,5,106,232,5,5,240,212,5,5,141,231,5,5,173,216,5,5,63,189,5,5,198,205,5,5,164,172,5,5,252,230,5,5,243,171,5,5,120,248,5,5,135,233,5,5,19,173,5,5,97,191,5,5,29,217,5,5,120,244,5,5,3,229,5,5,67,209,5,5,35,217,5,5,54,216,5,5,233,204,5,5,69,195,5,5,221,215,5,5,34,231,5,5,181,171,5,5,248,201,5,5,175,178,5,5,170,226,5,5,9,177,5,5,245,171,5,5,152,171,5,5,64,249,5,5,87,214,5,5,30,164,5,5,139,235,5,5,229,209,5,5,204,165,5,5,206,200,5,5,224,192,5,5,59,235,5,5,212,171,5,5,140,246,5,5,231,174,5,5,95,246,5,5,214,179,5,5,62,192,5,5,162,171,5,5,29,214,5,5,202,188,5,5,108,233,5,5,248,165,5,5,195,249,5,5,146,243,5,5,180,180,5,5,115,193,5,5,19,219,5,5,196,249,5,5,73,225,5,5,95,224,5,5,109,175,5,5,212,213,5,5,65,249,5,5,137,233,5,5,210,216,5,5,234,244,5,5,170,246,5,5,225,192,5,5,115,217,5,5,182,244,5,5,246,205,5,5,161,240,5,5,105,222,5,5,219,183,5,5,149,164,5,5,67,193,5,5,68,167,5,5,68,220,5,5,240,204,5,5,163,233,5,5,85,212,5,5,2,230,5,5,120,249,5,5,213,213,5,5,223,234,5,5,11,213,5,5,80,231,5,5,165,179,5,5,239,174,5,5,156,249,5,5,176,224,5,5,35,192,5,5,224,230,5,5,26,199,5,5,52,232,5,5,139,180,5,5,226,215,5,5,191,236,5,5,230,220,5,5,149,233,5,5,166,179,5,5,106,201,5,5,30,234,5,5,86,165,5,5,11,174,5,5,165,234,5,5,214,186,5,5,217,236,5,5,251,242,5,5,95,213,5,5,151,233,5,5,95,185,5,5,11,208,5,5,192,210,5,5,153,170,5,5,134,218,5,5,82,191,5,5,108,172,5,5,88,168,5,5,151,188,5,5,46,171,5,5,179,217,5,5,138,233,5,5,9,202,5,5,68,228,5,5,45,237,5,5,26,173,5,5,102,191,5,5,193,164,5,5,117,239,5,5,23,236,5,5,97,170,5,5,197,241,5,5,78,211,5,5,13,201,5,5,239,215,5,5,235,202,5,5,167,227,5,5,27,215,5,5,72,230,5,5,180,217,5,5,49,237,5,5,153,209,5,5,205,232,5,5,254,232,5,5,96,218,5,5,116,228,5,5,96,236,5,5,248,188,5,5,156,248,5,5,249,172,5,5,251,187,5,5,14,226,5,5,73,233,5,5,141,205,5,5,31,230,5,5,148,224,5,5,4,231,5,5,28,215,5,5,133,200,5,5,153,199,5,5,59,233,5,5,26,213,5,5,80,211,5,5,209,249,5,5,54,175,5,5,34,229,5,5,137,200,5,5,157,213,5,5,246,235,5,5,63,205,5,5,32,206,5,5,197,200,5,5,75,232,5,5,70,235,5,5,110,214,5,5,74,204,5,5,96,165,5,5,61,176,5,5,182,240,5,5,207,184,5,5,51,237,5,5,183,240,5,5,222,227,5,5,217,216,5,5,239,202,5,5,33,166,5,5,162,210,5,5,47,186,5,5,241,168,5,5,205,217,5,5,61,233,5,5,241,208,5,5,184,167,5,5,3,242,5,5,151,169,5,5,159,185,5,5,41,214,5,5,62,233,5,5,46,197,5,5,24,242,5,5,40,217,5,5,102,185,5,5,76,215,5,5,113,224,5,5,118,204,5,5,217,189,5,5,114,224,5,5,149,244,5,5,14,234,5,5,167,230,5,5,79,215,5,5,30,233,5,5,64,233,5,5,156,190,5,5,244,186,5,5,176,175,5,5,89,186,5,5,114,185,5,5,214,188,5,5,102,235,5,5,121,204,5,5,140,247,5,5,130,201,5,5,42,220,5,5,39,215,5,5,134,191,5,5,190,248,5,5,43,202,5,5,187,246,5,5,21,197,5,5,152,202,5,5,116,230,5,5,51,246,5,5,132,249,5,5,135,201,5,5,95,226,5,5,199,167,5,5,121,227,5,5,182,192,5,5,235,182,5,5,122,230,5,5,140,233,5,5,195,190,5,5,72,173,5,5,151,218,5,5,21,247,5,5,169,173,5,5,211,221,5,5,234,220,5,5,51,184,5,5,62,229,5,5,183,215,5,5,155,192,5,5,54,214,5,5,75,174,5,5,185,188,5,5,230,232,5,5,142,228,5,5,114,213,5,5,65,218,5,5,202,222,5,5,47,220,5,5,105,164,5,5,76,174,5,5,206,225,5,5,2,228,5,5,36,240,5,5,80,206,5,5,84,175,5,5,152,164,5,5,52,231,5,5,145,203,5,5,25,196,5,5,29,230,5,5,27,177,5,5,177,198,5,5,72,200,5,5,253,191,5,5,162,217,5,5,55,206,5,5,135,190,5,5,134,207,5,5,33,204,5,5,208,182,5,5,234,192,5,5,133,214,5,5,247,207,5,5,16,215,5,5,122,213,5,5,9,237,5,5,151,179,5,5,172,202,5,5,162,180,5,5,222,201,5,5,11,217,5,5,115,189,5,5,99,244,5,5,12,217,5,5,13,209,5,5,158,172,5,5,2,226,5,5,2,229,5,5,132,194,5,5,32,229,5,5,19,246,5,5,177,171,5,5,26,228,5,5,189,164,5,5,23,224,5,5,184,179,5,5,88,188,5,5,104,212,5,5,89,233,5,5,139,220,5,5,212,246,5,5,90,191,5,5,93,222,5,5,120,231,5,5,64,195,5,5,47,216,5,5,213,204,5,5,206,171,5,5,67,186,5,5,170,180,5,5,160,171,5,5,230,201,5,5,112,249,5,5,87,200,5,5,117,235,5,5,84,178,5,5,167,178,5,5,244,165,5,5,207,215,5,5,58,192,5,5,95,222,5,5,204,200,5,5,249,176,5,5,72,191,5,5,199,165,5,5,237,171,5,5,48,249,5,5,230,205,5,5,224,174,5,5,222,230,5,5,225,220,5,5,5,174,5,5,213,234,5,5,27,192,5,5,85,224,5,5,192,186,5,5,112,240,5,5,224,204,5,5,17,166,5,5,70,168,5,5,144,170,5,5,89,185,5,5,113,244,5,5,211,236,5,5,92,170,5,5,22,236,5,5,30,214,5,5,239,187,5,5,104,228,5,5,197,232,5,5,23,206,5,5,161,210,5,5,148,209,5,5,188,200,5,5,67,204,5,5,60,233,5,5,230,172,5,5,55,214,5,5,189,192,5,5,233,172,5,5,8,212,5,5,234,172,5,5,65,209,5,5,50,163,5,5,191,168,5,5,101,216,5,5,252,219,5,5,200,192,5,5,114,244,5,5,122,244,5,5,145,211,5,5,235,213,5,5,114,194,5,5,74,233,5,5,14,180,5,5,131,234,5,5,62,209,5,5,136,247,5,5,139,244,5,5,103,185,5,5,21,180,5,5,218,189,5,5,124,194,5,5,88,247,5,5,87,247,5,5,178,192,5,5,92,247,5,5,105,198,5,5,89,190,5,5,85,190,5,5,89,174,5,5,36,171,5,5,126,172,5,5,10,193,5,5,193,221,5,5,205,206,5,5,26,170,5,5,41,193,5,5,233,171,5,5,192,192,5,5,19,163,5,5,133,193,5,5,171,180,5,5,253,207,5,5,117,174,5,5,219,228,5,5,239,242,5,5,239,219,5,5,43,233,5,5,135,193,5,5,48,222,5,5,106,248,5,5,253,218,5,5,235,238,5,5,133,172,5,5,70,186,5,5,112,229,5,5,127,235,5,5,8,168,5,5,55,169,5,5,94,188,5,5,24,163,5,5,135,172,5,5,209,186,5,5,248,223,5,5,146,246,5,5,80,165,5,5,224,202,5,5,204,232,5,5,163,226,5,5,98,188,5,5,10,202,5,5,12,208,5,5,123,171,5,5,249,219,5,5,102,190,5,5,17,168,5,5,30,202,5,5,36,202,5,5,176,190,5,5,15,244,5,5,72,171,5,5,31,211,5,5,24,175,5,5,237,169,5,5,31,244,5,5,77,242,5,5,74,242,5,5,100,173,5,5,0,146,5,5,2,192,5,5,83,244,5,5,42,193,5,5,32,211,5,5,174,232,5,5,3,192,5,5,117,189,5,5,76,240,5,5,231,221,5,5,152,176,5,5,244,214,5,5,74,211,5,5,170,239,5,5,208,215,5,5,63,231,5,5,123,212,5,5,124,212,5,5,76,211,5,5,180,200,5,5,209,236,5,5,211,215,5,5,113,240,5,5,90,244,5,5,45,211,5,5,138,210,5,5,224,247,5,5,226,192,5,5,183,203,5,5,56,180,5,5,71,249,5,5,12,213,5,5,28,173,5,5,70,228,5,5,118,173,5,5,71,228,5,5,182,188,5,5,100,185,5,5,228,192,5,5,85,183,5,5,85,211,5,5,163,224,5,5,6,248,5,5,232,194,5,5,51,240,5,5,154,226,5,5,115,247,5,5,79,173,5,5,150,201,5,5,91,223,5,5,92,223,5,5,235,234,5,5,110,174,5,5,198,213,5,5,126,164,5,5,77,240,5,5,229,184,5,5,78,240,5,5,214,167,5,5,118,189,5,5,101,188,5,5,231,218,5,5,206,211,5,5,48,213,5,5,17,214,5,5,73,216,5,5,224,212,5,5,129,213,5,5,36,195,5,5,197,209,5,5,88,200,5,5,17,200,5,5,150,214,5,5,161,227,5,5,163,201,5,5,18,206,5,5,181,176,5,5,249,234,5,5,188,172,5,5,165,175,5,5,164,227,5,5,108,223,5,5,245,221,5,5,50,205,5,5,116,217,5,5,113,223,5,5,104,168,5,5,109,233,5,5,200,246,5,5,29,200,5,5,38,198,5,5,140,197,5,5,168,197,5,5,151,198,5,5,119,238,5,5,73,168,5,5,171,240,5,5,152,188,5,5,40,198,5,5,161,238,5,5,249,188,5,5,104,167,5,5,206,209,5,5,122,238,5,5,250,172,5,5,172,240,5,5,138,200,5,5,126,217,5,5,173,175,5,5,2,242,5,5,193,185,5,5,192,185,5,5,119,195,5,5,64,170,5,5,164,219,5,5,177,208,5,5,72,192,5,5,75,192,5,5,76,192,5,5,68,177,5,5,42,177,5,5,26,239,5,5,173,229,5,5,28,231,5,5,24,183,5,5,25,183,5,5,155,178,5,5,117,185,5,5,130,181,5,5,176,231,5,5,217,192,5,5,7,224,5,5,252,197,5,5,140,249,5,5,20,163,5,5,215,167,5,5,167,239,5,5,180,235,5,5,251,211,5,5,21,203,5,5,68,207,5,5,166,199,5,5,162,225,5,5,209,185,5,5,220,190,5,5,88,202,5,5,54,180,5,5,191,238,5,5,241,185,5,5,88,183,5,5,46,206,5,5,128,167,5,5,90,219,5,5,245,185,5,5,15,202,5,5,216,185,5,5,221,199,5,5,25,242,5,5,153,169,5,5,244,199,5,5,53,239,5,5,19,240,5,5,195,177,5,5,61,241,5,5,6,175,5,5,111,237,5,5,224,210,5,5,141,249,5,5,69,223,5,5,232,175,5,5,233,175,5,5,151,201,5,5,235,192,5,5,106,218,5,5,87,167,5,5,233,183,5,5,235,175,5,5,220,220,5,5,193,223,5,5,119,189,5,5,83,221,5,5,79,242,5,5,157,245,5,5,225,187,5,5,238,190,5,5,112,218,5,5,114,184,5,5,18,181,5,5,39,239,5,5,41,241,5,5,249,180,5,5,109,193,5,5,42,217,5,5,124,188,5,5,5,198,5,5,50,229,5,5,202,187,5,5,155,168,5,5,104,206,5,5,82,207,5,5,241,164,5,5,220,176,5,5,169,193,5,5,34,247,5,5,30,217,5,5,162,168,5,5,51,235,5,5,230,177,5,5,168,183,5,5,157,181,5,5,30,207,5,5,60,235,5,5,107,196,5,5,215,188,5,5,169,196,5,5,61,235,5,5,143,188,5,5,131,247,5,5,172,196,5,5,148,188,5,5,153,188,5,5,67,235,5,5,120,238,5,5,29,229,5,5,119,237,5,5,138,181,5,5,176,196,5,5,5,184,5,5,135,218,5,5,255,175,5,5,129,184,5,5,92,209,5,5,198,183,5,5,140,181,5,5,141,181,5,5,16,191,5,5,51,248,5,5,47,248,5,5,233,219,5,5,177,235,5,5,144,236,5,5,114,240,5,5,167,236,5,5,185,235,5,5,241,219,5,5,242,219,5,5,56,230,5,5,3,240,5,5,10,185,5,5,205,201,5,5,250,209,5,5,194,195,5,5,51,234,5,5,137,191,5,5,68,163,5,5,210,200,5,5,31,201,5,5,217,239,5,5,123,230,5,5,212,214,5,5,212,230,5,5,34,220,5,5,90,249,5,5,33,178,5,5,183,192,5,5,49,231,5,5,108,192,5,5,128,223,5,5,189,245,5,5,4,225,5,5,36,193,5,5,66,218,5,5,77,198,5,5,24,174,5,5,174,172,5,5,99,173,5,5,229,166,5,5,131,167,5,5,198,204,5,5,161,173,5,5,156,222,5,5,34,242,5,5,237,182,5,5,11,239,5,5,195,195,5,5,60,230,5,5,196,194,5,5,57,248,5,5,52,247,5,5,158,241,5,5,167,208,5,5,241,167,5,5,150,210,5,5,179,212,5,5,180,212,5,5,198,172,5,5,196,195,5,5,123,206,5,5,137,179,5,5,205,228,5,5,225,222,5,5,45,221,5,5,255,213,5,5,208,228,5,5,121,246,5,5,52,220,5,5,28,177,5,5,7,176,5,5,201,172,5,5,0,162,5,5,75,163,5,5,202,211,5,5,78,181,5,5,206,163,5,5,105,193,5,5,104,179,5,5,177,231,5,5,7,196,5,5,71,218,5,5,204,183,5,5,178,168,5,5,200,231,5,5,160,174,5,5,132,167,5,5,163,220,5,5,89,215,5,5,9,233,5,5,231,166,5,5,71,203,5,5,41,229,5,5,72,218,5,5,252,163,5,5,71,172,5,5,165,211,5,5,250,198,5,5,3,195,5,5,64,223,5,5,235,243,5,5,186,216,5,5,6,244,5,5,232,190,5,5,13,179,5,5,246,194,5,5,191,189,5,5,148,206,5,5,150,184,5,5,126,242,5,5,108,167,5,5,48,196,5,5,161,239,5,5,165,194,5,5,189,197,5,5,143,191,5,5,16,179,5,5,7,223,5,5,245,203,5,5,39,218,5,5,40,218,5,5,34,239,5,5,242,238,5,5,203,198,5,5,108,168,5,5,142,183,5,5,201,231,5,5,217,193,5,5,104,225,5,5,47,181,5,5,77,218,5,5,236,234,5,5,200,169,5,5,9,214,5,5,237,234,5,5,10,214,5,5,181,169,5,5,180,169,5,5,65,202,5,5,118,214,5,5,101,184,5,5,85,196,5,5,210,235,5,5,188,232,5,5,178,208,5,5,67,183,5,5,77,171,5,5,191,184,5,5,163,190,5,5,237,246,5,5,89,163,5,5,55,247,5,5,213,246,5,5,245,214,5,5,40,204,5,5,161,206,5,5,80,242,5,5,196,198,5,5,192,234,5,5,197,187,5,5,58,228,5,5,173,181,5,5,203,169,5,5,101,226,5,5,212,228,5,5,153,210,5,5,68,175,5,5,219,207,5,5,153,234,5,5,246,214,5,5,27,216,5,5,12,182,5,5,11,167,5,5,108,225,5,5,35,183,5,5,223,168,5,5,205,175,5,5,13,182,5,5,43,184,5,5,84,183,5,5,26,168,5,5,47,193,5,5,91,190,5,5,73,187,5,5,172,188,5,5,49,221,5,5,244,234,5,5,111,203,5,5,62,189,5,5,206,229,5,5,5,168,5,5,147,165,5,5,208,190,5,5,109,168,5,5,121,185,5,5,158,196,5,5,34,226,5,5,38,176,5,5,107,181,5,5,36,183,5,5,95,206,5,5,7,183,5,5,241,184,5,5,98,241,5,5,139,242,5,5,139,230,5,5,214,228,5,5,4,226,5,5,174,174,5,5,170,174,5,5,215,206,5,5,176,172,5,5,36,211,5,5,239,246,5,5,23,179,5,5,6,168,5,5,165,193,5,5,97,233,5,5,220,177,5,5,203,245,5,5,244,169,5,5,167,183,5,5,141,222,5,5,103,223,5,5,58,234,5,5,96,190,5,5,188,238,5,5,252,176,5,5,209,238,5,5,126,216,5,5,73,183,5,5,149,229,5,5,226,229,5,5,114,183,5,5,189,249,5,5,234,222,5,5,58,230,5,5,239,237,5,5,4,236,5,5,220,181,5,5,149,241,5,5,107,205,5,5,82,246,5,5,49,204,5,5,203,247,5,5,28,203,5,5,171,178,5,5,46,165,5,5,14,225,5,5,225,174,5,5,212,215,5,5,214,183,5,5,208,171,5,5,160,245,5,5,135,180,5,5,91,182,5,5,156,164,5,5,157,210,5,5,75,191,5,5,161,245,5,5,77,236,5,5,84,180,5,5,173,236,5,5,100,222,5,5,183,191,5,5,124,240,5,5,108,163,5,5,231,187,5,5,89,202,5,5,9,168,5,5,26,214,5,5,12,192,5,5,79,191,5,5,38,166,5,5,182,238,5,5,19,225,5,5,46,190,5,5,170,193,5,5,111,167,5,5,21,226,5,5,157,165,5,5,44,206,5,5,49,174,5,5,92,180,5,5,75,169,5,5,253,212,5,5,123,222,5,5,100,191,5,5,8,204,5,5,227,244,5,5,52,191,5,5,21,219,5,5,88,217,5,5,90,226,5,5,30,189,5,5,202,182,5,5,172,167,5,5,220,183,5,5,24,226,5,5,243,187,5,5,250,234,5,5,239,193,5,5,165,214,5,5,130,180,5,5,25,173,5,5,132,218,5,5,10,204,5,5,110,228,5,5,244,198,5,5,251,234,5,5,46,231,5,5,55,216,5,5,15,237,5,5,138,173,5,5,129,244,5,5,69,228,5,5,2,222,5,5,18,176,5,5,96,196,5,5,200,184,5,5,150,182,5,5,154,188,5,5,87,165,5,5,230,249,5,5,184,207,5,5,234,225,5,5,173,240,5,5,239,207,5,5,250,184,5,5,180,188,5,5,24,236,5,5,151,182,5,5,70,193,5,5,231,208,5,5,255,234,5,5,43,166,5,5,202,217,5,5,83,183,5,5,211,245,5,5,192,232,5,5,234,215,5,5,169,165,5,5,176,216,5,5,186,196,5,5,253,184,5,5,153,242,5,5,213,189,5,5,222,199,5,5,217,231,5,5,129,190,5,5,228,211,5,5,193,232,5,5,177,190,5,5,179,183,5,5,218,231,5,5,179,224,5,5,66,210,5,5,192,245,5,5,182,194,5,5,177,232,5,5,247,188,5,5,176,194,5,5,189,231,5,5,26,204,5,5,234,183,5,5,63,224,5,5,192,202,5,5,8,192,5,5,64,224,5,5,182,171,5,5,254,183,5,5,178,218,5,5,201,218,5,5,172,191,5,5,100,205,5,5,43,177,5,5,83,218,5,5,248,214,5,5,120,179,5,5,201,220,5,5,157,204,5,5,184,215,5,5,168,247,5,5,129,223,5,5,221,241,5,5,182,247,5,5,155,226,5,5,130,213,5,5,131,213,5,5,172,204,5,5,233,247,5,5,32,248,5,5,174,216,5,5,31,207,5,5,179,204,5,5,33,216,5,5,177,227,5,5,183,227,5,5,214,227,5,5,148,204,5,5,62,227,5,5,232,179,5,5,81,229,5,5,89,227,5,5,111,181,5,5,46,180,5,5,7,169,5,5,8,169,5,5,91,194,5,5,154,199,5,5,121,181,5,5,64,226,5,5,229,229,5,5,207,213,5,5,68,245,5,5,254,219,5,5,131,175,5,5,54,226,5,5,50,228,5,5,219,239,5,5,68,173,5,5,155,166,5,5,140,179,5,5,14,173,5,5,92,164,5,5,55,226,5,5,180,198,5,5,177,173,5,5,70,164,5,5,236,164,5,5,82,190,5,5,208,222,5,5,90,205,5,5,117,234,5,5,120,189,5,5,174,221,5,5,248,231,5,5,108,178,5,5,90,163,5,5,97,215,5,5,201,191,5,5,56,226,5,5,199,213,5,5,195,189,5,5,144,212,5,5,119,167,5,5,225,212,5,5,51,196,5,5,122,174,5,5,85,232,5,5,243,173,5,5,193,186,5,5,236,227,5,5,214,247,5,5,121,186,5,5,175,181,5,5,107,248,5,5,83,246,5,5,109,163,5,5,12,171,5,5,94,184,5,5,221,206,5,5,62,201,5,5,18,228,5,5,70,195,5,5,249,165,5,5,105,172,5,5,54,177,5,5,224,175,5,5,172,164,5,5,139,223,5,5,162,240,5,5,57,236,5,5,123,234,5,5,42,234,5,5,246,185,5,5,114,175,5,5,90,217,5,5,253,241,5,5,164,226,5,5,146,176,5,5,78,176,5,5,71,211,5,5,250,189,5,5,245,239,5,5,113,202,5,5,146,205,5,5,223,199,5,5,252,170,5,5,242,208,5,5,252,189,5,5,219,189,5,5,117,224,5,5,248,229,5,5,172,192,5,5,40,189,5,5,199,204,5,5,243,204,5,5,222,235,5,5,33,243,5,5,111,174,5,5,163,168,5,5,76,243,5,5,95,243,5,5,46,234,5,5,55,234,5,5,4,240,5,5,20,185,5,5,127,181,5,5,237,203,5,5,55,238,5,5,14,183,5,5,19,181,5,5,238,203,5,5,130,203,5,5,149,167,5,5,191,246,5,5,20,240,5,5,205,223,5,5,174,171,5,5,69,171,5,5,109,192,5,5,62,210,5,5,54,248,5,5,55,248,5,5,245,227,5,5,127,212,5,5,34,178,5,5,63,199,5,5,5,209,5,5,189,170,5,5,190,231,5,5,73,200,5,5,247,236,5,5,183,218,5,5,39,216,5,5,242,167,5,5,77,174,5,5,141,182,5,5,56,246,5,5,18,245,5,5,67,218,5,5,34,209,5,5,45,228,5,5,24,247,5,5,167,210,5,5,91,230,5,5,78,174,5,5,135,195,5,5,213,203,5,5,188,189,5,5,249,216,5,5,210,201,5,5,219,210,5,5,168,208,5,5,164,242,5,5,75,173,5,5,0,137,5,5,9,231,5,5,250,215,5,5,159,202,5,5,101,199,5,5,102,199,5,5,152,173,5,5,93,245,5,5,129,207,5,5,69,192,5,5,156,218,5,5,134,249,5,5,220,210,5,5,132,238,5,5,155,225,5,5,58,170,5,5,246,240,5,5,199,172,5,5,180,230,5,5,175,198,5,5,42,235,5,5,164,243,5,5,72,242,5,5,237,165,5,5,37,240,5,5,125,209,5,5,57,246,5,5,42,187,5,5,25,168,5,5,196,237,5,5,185,215,5,5,5,225,5,5,114,234,5,5,215,221,5,5,129,236,5,5,161,180,5,5,94,249,5,5,79,230,5,5,99,189,5,5,114,179,5,5,248,227,5,5,166,176,5,5,146,171,5,5,126,211,5,5,50,187,5,5,25,250,5,5,4,195,5,5,88,172,5,5,207,163,5,5,253,163,5,5,73,192,5,5,232,171,5,5,220,239,5,5,221,239,5,5,55,207,5,5,65,168,5,5,234,230,5,5,21,196,5,5,113,184,5,5,186,183,5,5,76,163,5,5,67,166,5,5,51,228,5,5,7,215,5,5,217,241,5,5,48,215,5,5,123,164,5,5,145,201,5,5,94,244,5,5,95,219,5,5,230,178,5,5,199,206,5,5,29,177,5,5,226,183,5,5,117,192,5,5,226,198,5,5,179,168,5,5,198,169,5,5,90,174,5,5,20,229,5,5,7,193,5,5,12,165,5,5,122,246,5,5,91,174,5,5,28,222,5,5,62,170,5,5,53,173,5,5,13,203,5,5,23,170,5,5,24,170,5,5,2,163,5,5,174,233,5,5,107,169,5,5,111,231,5,5,211,176,5,5,38,223,5,5,168,202,5,5,83,206,5,5,233,190,5,5,99,235,5,5,30,184,5,5,49,249,5,5,62,217,5,5,158,244,5,5,134,212,5,5,169,191,5,5,32,172,5,5,65,187,5,5,56,231,5,5,237,243,5,5,175,192,5,5,171,210,5,5,216,223,5,5,187,224,5,5,68,248,5,5,211,197,5,5,196,231,5,5,192,187,5,5,26,245,5,5,173,202,5,5,218,193,5,5,216,233,5,5,21,205,5,5,175,233,5,5,86,192,5,5,166,194,5,5,200,170,5,5,145,223,5,5,246,203,5,5,247,203,5,5,98,174,5,5,183,247,5,5,138,221,5,5,115,231,5,5,12,206,5,5,47,200,5,5,123,243,5,5,146,223,5,5,130,172,5,5,47,231,5,5,186,230,5,5,151,226,5,5,215,170,5,5,175,182,5,5,245,222,5,5,67,210,5,5,172,221,5,5,226,217,5,5,173,200,5,5,31,174,5,5,61,212,5,5,220,191,5,5,7,175,5,5,96,206,5,5,168,216,5,5,65,226,5,5,47,234,5,5,85,206,5,5,35,239,5,5,243,238,5,5,160,209,5,5,40,223,5,5,100,230,5,5,91,205,5,5,163,180,5,5,33,201,5,5,183,168,5,5,66,187,5,5,172,205,5,5,200,185,5,5,140,229,5,5,174,222,5,5,28,175,5,5,46,203,5,5,20,230,5,5,17,165,5,5,243,231,5,5,161,209,5,5,78,200,5,5,174,202,5,5,99,176,5,5,185,248,5,5,57,231,5,5,247,200,5,5,149,216,5,5,139,190,5,5,159,244,5,5,227,217,5,5,220,205,5,5,69,237,5,5,128,243,5,5,169,169,5,5,152,201,5,5,54,220,5,5,238,241,5,5,38,178,5,5,69,246,5,5,180,186,5,5,206,175,5,5,36,174,5,5,102,230,5,5,180,243,5,5,114,197,5,5,218,164,5,5,139,166,5,5,166,249,5,5,173,176,5,5,208,181,5,5,253,236,5,5,254,236,5,5,109,225,5,5,190,224,5,5,27,245,5,5,128,165,5,5,210,212,5,5,239,192,5,5,74,187,5,5,224,168,5,5,232,221,5,5,118,169,5,5,75,187,5,5,176,222,5,5,244,232,5,5,14,182,5,5,19,210,5,5,134,227,5,5,205,236,5,5,191,224,5,5,156,167,5,5,23,207,5,5,204,169,5,5,225,170,5,5,172,216,5,5,92,206,5,5,178,223,5,5,158,228,5,5,26,208,5,5,180,242,5,5,148,181,5,5,45,242,5,5,199,234,5,5,84,194,5,5,130,198,5,5,81,242,5,5,200,234,5,5,49,203,5,5,85,247,5,5,153,236,5,5,55,184,5,5,231,227,5,5,202,215,5,5,143,186,5,5,112,174,5,5,161,237,5,5,119,169,5,5,64,247,5,5,155,203,5,5,104,183,5,5,92,172,5,5,176,195,5,5,48,185,5,5,121,188,5,5,246,226,5,5,173,245,5,5,248,181,5,5,51,215,5,5,197,199,5,5,46,242,5,5,161,244,5,5,100,244,5,5,235,194,5,5,102,226,5,5,213,170,5,5,216,170,5,5,218,233,5,5,218,246,5,5,97,206,5,5,250,176,5,5,208,211,5,5,241,178,5,5,214,204,5,5,103,232,5,5,14,193,5,5,230,184,5,5,24,190,5,5,248,206,5,5,133,246,5,5,27,208,5,5,241,183,5,5,206,196,5,5,119,197,5,5,225,168,5,5,36,232,5,5,25,192,5,5,182,193,5,5,118,174,5,5,209,190,5,5,246,224,5,5,27,224,5,5,99,237,5,5,37,226,5,5,142,220,5,5,166,170,5,5,28,234,5,5,3,163,5,5,185,186,5,5,213,181,5,5,53,163,5,5,135,198,5,5,50,164,5,5,18,211,5,5,235,207,5,5,226,212,5,5,229,210,5,5,216,176,5,5,112,203,5,5,226,168,5,5,102,176,5,5,189,205,5,5,164,209,5,5,115,179,5,5,221,192,5,5,115,199,5,5,15,193,5,5,124,189,5,5,162,172,5,5,230,210,5,5,207,238,5,5,97,247,5,5,192,164,5,5,38,220,5,5,140,242,5,5,216,206,5,5,215,204,5,5,7,189,5,5,28,180,5,5,82,229,5,5,83,181,5,5,161,175,5,5,47,199,5,5,199,208,5,5,120,197,5,5,245,234,5,5,186,179,5,5,82,226,5,5,36,165,5,5,12,225,5,5,176,200,5,5,211,172,5,5,53,185,5,5,133,208,5,5,226,170,5,5,192,168,5,5,234,245,5,5,39,176,5,5,157,227,5,5,177,200,5,5,236,242,5,5,171,239,5,5,27,181,5,5,200,208,5,5,219,246,5,5,247,233,5,5,28,183,5,5,7,221,5,5,67,182,5,5,134,204,5,5,250,180,5,5,93,190,5,5,113,165,5,5,217,240,5,5,227,170,5,5,151,163,5,5,35,167,5,5,221,177,5,5,166,244,5,5,172,244,5,5,167,244,5,5,146,214,5,5,212,235,5,5,226,209,5,5,17,195,5,5,105,216,5,5,240,246,5,5,30,248,5,5,215,247,5,5,226,174,5,5,200,188,5,5,109,217,5,5,110,217,5,5,115,183,5,5,250,233,5,5,177,245,5,5,117,226,5,5,151,214,5,5,204,247,5,5,220,165,5,5,75,170,5,5,210,238,5,5,240,237,5,5,144,190,5,5,173,244,5,5,60,196,5,5,61,196,5,5,16,206,5,5,209,171,5,5,17,233,5,5,18,233,5,5,214,232,5,5,26,164,5,5,41,230,5,5,82,213,5,5,101,241,5,5,211,238,5,5,210,211,5,5,225,204,5,5,123,174,5,5,95,191,5,5,101,206,5,5,102,167,5,5,212,173,5,5,164,201,5,5,165,201,5,5,33,198,5,5,52,243,5,5,191,181,5,5,185,219,5,5,131,231,5,5,51,216,5,5,145,230,5,5,177,191,5,5,74,209,5,5,118,211,5,5,79,171,5,5,54,201,5,5,162,228,5,5,227,168,5,5,244,191,5,5,249,178,5,5,60,220,5,5,108,205,5,5,84,246,5,5,99,163,5,5,243,245,5,5,157,166,5,5,196,202,5,5,15,199,5,5,190,232,5,5,29,203,5,5,172,178,5,5,243,241,5,5,4,237,5,5,49,235,5,5,76,212,5,5,244,245,5,5,184,220,5,5,128,196,5,5,154,181,5,5,255,200,5,5,83,213,5,5,204,226,5,5,48,209,5,5,24,186,5,5,100,233,5,5,150,241,5,5,9,249,5,5,217,169,5,5,115,249,5,5,150,229,5,5,253,176,5,5,142,222,5,5,73,194,5,5,82,230,5,5,48,217,5,5,135,224,5,5,96,195,5,5,162,196,5,5,105,199,5,5,40,206,5,5,234,185,5,5,85,246,5,5,224,166,5,5,120,242,5,5,52,236,5,5,242,243,5,5,209,226,5,5,108,226,5,5,255,226,5,5,119,249,5,5,194,220,5,5,145,186,5,5,191,230,5,5,230,170,5,5,99,187,5,5,10,212,5,5,65,237,5,5,62,249,5,5,100,187,5,5,29,207,5,5,241,212,5,5,168,164,5,5,169,225,5,5,224,216,5,5,226,181,5,5,51,188,5,5,206,199,5,5,154,177,5,5,184,210,5,5,215,232,5,5,203,166,5,5,186,234,5,5,13,249,5,5,170,225,5,5,121,248,5,5,75,196,5,5,65,167,5,5,229,168,5,5,230,168,5,5,251,182,5,5,189,229,5,5,56,213,5,5,107,173,5,5,151,249,5,5,94,221,5,5,230,204,5,5,90,202,5,5,241,230,5,5,122,234,5,5,6,239,5,5,42,171,5,5,212,197,5,5,75,237,5,5,195,220,5,5,42,172,5,5,53,236,5,5,31,217,5,5,46,188,5,5,57,213,5,5,63,193,5,5,122,186,5,5,76,231,5,5,129,247,5,5,248,191,5,5,206,234,5,5,210,226,5,5,85,180,5,5,122,190,5,5,223,230,5,5,212,236,5,5,112,217,5,5,234,163,5,5,227,241,5,5,45,194,5,5,61,165,5,5,136,233,5,5,139,194,5,5,23,233,5,5,31,181,5,5,254,233,5,5,8,167,5,5,25,186,5,5,55,176,5,5,204,202,5,5,205,186,5,5,167,228,5,5,135,186,5,5,122,248,5,5,178,189,5,5,176,244,5,5,129,169,5,5,110,177,5,5,34,181,5,5,54,170,5,5,160,182,5,5,229,225,5,5,168,167,5,5,214,238,5,5,144,188,5,5,62,235,5,5,89,213,5,5,196,168,5,5,230,209,5,5,202,205,5,5,109,226,5,5,184,203,5,5,35,246,5,5,74,182,5,5,40,234,5,5,132,248,5,5,137,240,5,5,164,231,5,5,13,188,5,5,69,165,5,5,239,189,5,5,44,217,5,5,143,166,5,5,26,221,5,5,91,185,5,5,63,211,5,5,148,170,5,5,190,242,5,5,136,189,5,5,197,202,5,5,158,165,5,5,141,194,5,5,109,198,5,5,184,176,5,5,184,236,5,5,47,190,5,5,203,227,5,5,239,228,5,5,185,176,5,5,134,171,5,5,194,217,5,5,149,170,5,5,113,163,5,5,10,177,5,5,187,234,5,5,179,219,5,5,168,228,5,5,175,217,5,5,141,246,5,5,22,199,5,5,116,238,5,5,81,171,5,5,242,185,5,5,160,234,5,5,215,222,5,5,29,234,5,5,181,166,5,5,45,206,5,5,114,171,5,5,63,235,5,5,37,184,5,5,111,200,5,5,8,208,5,5,193,243,5,5,122,205,5,5,62,184,5,5,92,229,5,5,147,243,5,5,171,193,5,5,203,224,5,5,86,199,5,5,142,227,5,5,157,195,5,5,187,210,5,5,26,169,5,5,179,232,5,5,28,232,5,5,64,211,5,5,186,175,5,5,176,188,5,5,28,189,5,5,158,195,5,5,48,238,5,5,70,165,5,5,210,186,5,5,101,246,5,5,103,202,5,5,140,210,5,5,53,229,5,5,247,172,5,5,236,170,5,5,192,238,5,5,145,224,5,5,156,177,5,5,22,218,5,5,11,204,5,5,2,231,5,5,3,231,5,5,127,185,5,5,234,247,5,5,174,209,5,5,173,225,5,5,124,199,5,5,241,204,5,5,172,169,5,5,157,249,5,5,4,164,5,5,63,242,5,5,213,211,5,5,61,190,5,5,23,230,5,5,121,200,5,5,253,237,5,5,185,180,5,5,191,172,5,5,181,207,5,5,48,233,5,5,145,172,5,5,195,230,5,5,114,173,5,5,173,196,5,5,233,229,5,5,253,230,5,5,17,241,5,5,214,216,5,5,240,174,5,5,182,207,5,5,113,176,5,5,36,245,5,5,255,178,5,5,142,235,5,5,166,214,5,5,149,213,5,5,247,190,5,5,9,247,5,5,11,228,5,5,222,208,5,5,242,204,5,5,198,249,5,5,76,237,5,5,149,189,5,5,150,248,5,5,216,213,5,5,134,247,5,5,108,202,5,5,175,201,5,5,193,235,5,5,201,184,5,5,130,185,5,5,123,217,5,5,200,249,5,5,151,248,5,5,63,213,5,5,16,198,5,5,12,164,5,5,214,197,5,5,79,238,5,5,250,245,5,5,127,200,5,5,128,200,5,5,225,202,5,5,195,233,5,5,56,216,5,5,244,246,5,5,137,171,5,5,174,240,5,5,158,186,5,5,26,206,5,5,101,234,5,5,173,228,5,5,70,211,5,5,155,188,5,5,28,195,5,5,73,249,5,5,38,175,5,5,237,180,5,5,61,180,5,5,53,217,5,5,88,165,5,5,94,220,5,5,77,237,5,5,67,215,5,5,27,173,5,5,208,177,5,5,99,214,5,5,71,193,5,5,100,214,5,5,118,229,5,5,135,205,5,5,215,197,5,5,123,201,5,5,216,235,5,5,9,216,5,5,199,217,5,5,250,241,5,5,180,163,5,5,71,236,5,5,119,229,5,5,203,217,5,5,151,178,5,5,145,168,5,5,106,246,5,5,128,184,5,5,44,224,5,5,166,169,5,5,204,230,5,5,82,168,5,5,130,179,5,5,229,202,5,5,74,232,5,5,207,224,5,5,205,220,5,5,64,239,5,5,197,183,5,5,192,244,5,5,37,192,5,5,93,235,5,5,176,214,5,5,232,208,5,5,137,172,5,5,59,205,5,5,38,217,5,5,139,196,5,5,111,202,5,5,226,165,5,5,115,177,5,5,122,171,5,5,39,186,5,5,254,205,5,5,126,234,5,5,163,171,5,5,160,212,5,5,120,209,5,5,165,215,5,5,3,188,5,5,193,238,5,5,127,215,5,5,195,236,5,5,54,191,5,5,184,240,5,5,39,217,5,5,48,214,5,5,226,186,5,5,185,240,5,5,240,184,5,5,135,185,5,5,108,204,5,5,193,176,5,5,176,218,5,5,193,163,5,5,144,180,5,5,255,241,5,5,148,169,5,5,242,200,5,5,170,165,5,5,251,172,5,5,74,236,5,5,16,180,5,5,75,182,5,5,161,212,5,5,181,209,5,5,156,246,5,5,75,188,5,5,139,200,5,5,196,238,5,5,38,192,5,5,204,249,5,5,66,164,5,5,142,187,5,5,121,229,5,5,181,225,5,5,52,238,5,5,35,189,5,5,76,232,5,5,129,217,5,5,24,211,5,5,82,185,5,5,224,199,5,5,71,182,5,5,131,245,5,5,5,231,5,5,6,231,5,5,243,208,5,5,209,198,5,5,214,189,5,5,136,236,5,5,87,182,5,5,253,170,5,5,207,249,5,5,208,168,5,5,45,248,5,5,206,217,5,5,240,202,5,5,89,208,5,5,130,217,5,5,85,169,5,5,49,210,5,5,137,236,5,5,90,208,5,5,15,174,5,5,14,184,5,5,147,163,5,5,155,230,5,5,200,240,5,5,171,215,5,5,250,247,5,5,14,207,5,5,211,188,5,5,184,188,5,5,230,243,5,5,72,211,5,5,145,244,5,5,9,191,5,5,223,179,5,5,111,246,5,5,240,248,5,5,158,189,5,5,224,211,5,5,205,241,5,5,36,173,5,5,232,169,5,5,159,198,5,5,113,196,5,5,52,186,5,5,243,202,5,5,119,176,5,5,158,170,5,5,160,185,5,5,106,185,5,5,36,200,5,5,230,173,5,5,98,218,5,5,161,246,5,5,142,196,5,5,155,220,5,5,245,199,5,5,240,186,5,5,247,202,5,5,63,171,5,5,139,185,5,5,251,199,5,5,113,190,5,5,32,202,5,5,143,196,5,5,80,190,5,5,9,205,5,5,218,235,5,5,151,180,5,5,113,185,5,5,106,212,5,5,188,214,5,5,209,240,5,5,180,190,5,5,170,170,5,5,122,165,5,5,217,198,5,5,42,199,5,5,229,189,5,5,222,184,5,5,88,191,5,5,112,235,5,5,134,214,5,5,122,210,5,5,218,225,5,5,233,198,5,5,191,216,5,5,180,234,5,5,113,174,5,5,192,216,5,5,199,216,5,5,234,189,5,5,48,199,5,5,216,247,5,5,6,198,5,5,255,203,5,5,83,207,5,5,172,193,5,5,57,164,5,5,192,242,5,5,148,220,5,5,149,220,5,5,109,196,5,5,27,166,5,5,154,213,5,5,165,229,5,5,166,226,5,5,252,209,5,5,75,177,5,5,129,202,5,5,255,209,5,5,196,177,5,5,187,226,5,5,169,213,5,5,135,207,5,5,132,219,5,5,179,227,5,5,145,247,5,5,80,198,5,5,178,231,5,5,146,201,5,5,6,200,5,5,223,170,5,5,204,191,5,5,248,236,5,5,171,213,5,5,217,223,5,5,240,226,5,5,222,239,5,5,33,169,5,5,97,216,5,5,154,173,5,5,210,237,5,5,0,147,5,5,70,223,5,5,81,210,5,5,27,247,5,5,28,247,5,5,11,231,5,5,160,164,5,5,246,167,5,5,211,248,5,5,212,248,5,5,22,208,5,5,179,208,5,5,176,182,5,5,209,243,5,5,180,208,5,5,74,234,5,5,41,249,5,5,140,207,5,5,48,200,5,5,225,210,5,5,181,208,5,5,246,222,5,5,248,240,5,5,217,197,5,5,90,172,5,5,84,247,5,5,101,173,5,5,102,173,5,5,181,198,5,5,200,194,5,5,70,232,5,5,205,174,5,5,61,230,5,5,221,203,5,5,99,174,5,5,8,223,5,5,194,175,5,5,47,164,5,5,146,215,5,5,160,183,5,5,96,179,5,5,223,209,5,5,47,242,5,5,114,219,5,5,188,168,5,5,41,223,5,5,112,242,5,5,115,197,5,5,64,198,5,5,69,207,5,5,76,187,5,5,211,174,5,5,64,230,5,5,84,219,5,5,77,192,5,5,251,167,5,5,252,167,5,5,98,215,5,5,233,221,5,5,80,177,5,5,129,165,5,5,72,166,5,5,13,193,5,5,81,220,5,5,169,211,5,5,180,227,5,5,253,180,5,5,121,189,5,5,48,193,5,5,34,176,5,5,49,193,5,5,162,244,5,5,77,187,5,5,59,225,5,5,174,211,5,5,91,170,5,5,173,191,5,5,219,233,5,5,52,200,5,5,53,200,5,5,207,170,5,5,219,174,5,5,39,244,5,5,143,245,5,5,198,187,5,5,145,221,5,5,105,239,5,5,102,215,5,5,58,196,5,5,250,203,5,5,83,187,5,5,96,240,5,5,193,168,5,5,134,208,5,5,73,197,5,5,181,227,5,5,172,239,5,5,98,247,5,5,121,169,5,5,145,212,5,5,109,209,5,5,19,194,5,5,146,212,5,5,244,218,5,5,108,170,5,5,222,185,5,5,145,219,5,5,52,203,5,5,53,183,5,5,118,235,5,5,201,208,5,5,127,216,5,5,227,203,5,5,33,210,5,5,237,227,5,5,17,250,5,5,56,203,5,5,98,182,5,5,180,223,5,5,174,163,5,5,169,237,5,5,137,198,5,5,113,229,5,5,139,217,5,5,213,173,5,5,220,228,5,5,221,228,5,5,172,174,5,5,213,215,5,5,122,219,5,5,32,245,5,5,124,174,5,5,194,186,5,5,123,186,5,5,47,165,5,5,163,225,5,5,10,249,5,5,84,242,5,5,171,203,5,5,44,176,5,5,189,242,5,5,155,181,5,5,174,177,5,5,99,182,5,5,54,200,5,5,178,245,5,5,90,218,5,5,102,237,5,5,165,172,5,5,222,206,5,5,112,171,5,5,215,208,5,5,216,208,5,5,123,248,5,5,65,208,5,5,245,184,5,5,13,171,5,5,46,211,5,5,128,235,5,5,242,212,5,5,212,190,5,5,101,187,5,5,53,177,5,5,32,181,5,5,189,179,5,5,213,196,5,5,98,198,5,5,141,198,5,5,124,248,5,5,169,164,5,5,178,172,5,5,10,168,5,5,246,245,5,5,185,178,5,5,125,240,5,5,14,249,5,5,243,236,5,5,81,212,5,5,158,210,5,5,15,231,5,5,169,183,5,5,103,211,5,5,136,246,5,5,64,189,5,5,185,193,5,5,178,246,5,5,243,178,5,5,245,237,5,5,94,164,5,5,5,177,5,5,101,247,5,5,78,234,5,5,72,244,5,5,177,244,5,5,151,193,5,5,88,224,5,5,225,177,5,5,246,184,5,5,26,195,5,5,172,203,5,5,248,213,5,5,158,181,5,5,79,170,5,5,211,216,5,5,183,171,5,5,226,247,5,5,120,203,5,5,2,227,5,5,117,217,5,5,63,201,5,5,246,242,5,5,205,165,5,5,43,230,5,5,247,245,5,5,232,174,5,5,66,249,5,5,14,170,5,5,142,246,5,5,137,174,5,5,193,230,5,5,31,214,5,5,61,242,5,5,39,210,5,5,38,170,5,5,181,213,5,5,121,244,5,5,212,226,5,5,171,226,5,5,57,180,5,5,150,221,5,5,110,233,5,5,181,180,5,5,233,174,5,5,67,249,5,5,132,196,5,5,231,170,5,5,249,184,5,5,251,177,5,5,23,199,5,5,231,209,5,5,55,177,5,5,103,187,5,5,180,245,5,5,121,249,5,5,242,211,5,5,117,183,5,5,243,185,5,5,87,226,5,5,78,231,5,5,180,244,5,5,21,206,5,5,114,164,5,5,125,186,5,5,123,167,5,5,143,235,5,5,13,213,5,5,222,233,5,5,14,213,5,5,72,249,5,5,119,247,5,5,149,188,5,5,58,236,5,5,79,164,5,5,81,231,5,5,82,231,5,5,104,202,5,5,8,245,5,5,26,215,5,5,152,198,5,5,248,210,5,5,192,239,5,5,213,164,5,5,125,199,5,5,96,180,5,5,240,239,5,5,43,178,5,5,30,183,5,5,141,197,5,5,27,199,5,5,240,193,5,5,38,169,5,5,46,172,5,5,163,240,5,5,40,247,5,5,183,244,5,5,100,179,5,5,217,222,5,5,124,234,5,5,39,236,5,5,69,209,5,5,131,170,5,5,60,181,5,5,240,228,5,5,103,227,5,5,43,234,5,5,24,223,5,5,16,177,5,5,121,238,5,5,62,190,5,5,151,246,5,5,36,219,5,5,99,180,5,5,206,224,5,5,74,168,5,5,217,211,5,5,14,168,5,5,238,247,5,5,136,205,5,5,101,190,5,5,247,185,5,5,10,211,5,5,218,222,5,5,227,243,5,5,27,206,5,5,203,229,5,5,43,247,5,5,170,214,5,5,245,246,5,5,156,219,5,5,181,219,5,5,27,169,5,5,28,169,5,5,155,193,5,5,66,188,5,5,40,170,5,5,20,213,5,5,68,235,5,5,216,186,5,5,132,170,5,5,171,214,5,5,51,225,5,5,29,221,5,5,220,170,5,5,113,216,5,5,144,169,5,5,29,233,5,5,145,235,5,5,236,209,5,5,101,179,5,5,136,218,5,5,177,167,5,5,178,167,5,5,73,204,5,5,219,211,5,5,118,165,5,5,252,187,5,5,73,167,5,5,26,194,5,5,97,213,5,5,143,202,5,5,128,222,5,5,75,201,5,5,179,172,5,5,187,185,5,5,186,207,5,5,187,207,5,5,134,200,5,5,197,243,5,5,103,224,5,5,18,204,5,5,117,228,5,5,59,183,5,5,177,214,5,5,37,245,5,5,173,226,5,5,247,217,5,5,146,235,5,5,241,225,5,5,81,225,5,5,79,176,5,5,16,187,5,5,111,214,5,5,119,228,5,5,246,239,5,5,138,206,5,5,40,175,5,5,107,224,5,5,63,209,5,5,164,233,5,5,88,216,5,5,207,227,5,5,128,190,5,5,252,210,5,5,197,244,5,5,221,223,5,5,131,187,5,5,58,232,5,5,127,217,5,5,163,188,5,5,179,221,5,5,13,232,5,5,249,213,5,5,221,170,5,5,112,214,5,5,244,208,5,5,93,231,5,5,67,205,5,5,19,171,5,5,237,197,5,5,205,230,5,5,225,199,5,5,71,222,5,5,194,203,5,5,148,168,5,5,82,197,5,5,141,171,5,5,37,173,5,5,104,185,5,5,193,203,5,5,4,185,5,5,21,172,5,5,233,186,5,5,120,226,5,5,148,187,5,5,242,209,5,5,18,184,5,5,220,189,5,5,47,178,5,5,184,214,5,5,164,221,5,5,17,191,5,5,149,187,5,5,18,191,5,5,231,173,5,5,59,241,5,5,205,164,5,5,131,183,5,5,78,193,5,5,229,207,5,5,150,244,5,5,168,229,5,5,41,213,5,5,82,234,5,5,231,211,5,5,96,212,5,5,48,178,5,5,83,234,5,5,125,170,5,5,234,211,5,5,195,203,5,5,187,221,5,5,18,222,5,5,78,217,5,5,32,201,5,5,58,184,5,5,232,166,5,5,219,184,5,5,28,216,5,5,253,222,5,5,183,169,5,5,76,239,5,5,242,194,5,5,142,171,5,5,163,213,5,5,139,216,5,5,221,242,5,5,187,195,5,5,96,249,5,5,7,212,5,5,122,189,5,5,167,217,5,5,144,229,5,5,99,215,5,5,218,182,5,5,102,216,5,5,113,203,5,5,107,215,5,5,3,241,5,5,24,199,5,5,143,246,5,5,167,175,5,5,161,226,5,5,147,246,5,5,169,175,5,5,161,222,5,5,207,198,5,5,232,211,5,5,87,239,5,5,85,239,5,5,112,166,5,5,136,192,5,5,176,247,5,5,182,165,5,5,158,223,5,5,151,239,5,5,52,228,5,5,222,224,5,5,32,174,5,5,130,194,5,5,80,173,5,5,196,229,5,5,148,203,5,5,241,182,5,5,209,222,5,5,10,176,5,5,66,240,5,5,247,222,5,5,210,222,5,5,222,203,5,5,168,218,5,5,11,214,5,5,62,230,5,5,78,218,5,5,131,230,5,5,203,210,5,5,173,205,5,5,23,208,5,5,42,249,5,5,4,170,5,5,218,223,5,5,133,238,5,5,32,184,5,5,10,200,5,5,63,230,5,5,22,203,5,5,34,182,5,5,170,189,5,5,99,175,5,5,48,164,5,5,20,167,5,5,240,241,5,5,16,233,5,5,25,165,5,5,7,228,5,5,26,180,5,5,70,207,5,5,156,197,5,5,64,217,5,5,18,215,5,5,221,220,5,5,168,239,5,5,167,166,5,5,51,163,5,5,153,176,5,5,158,245,5,5,212,174,5,5,133,194,5,5,232,218,5,5,233,218,5,5,65,230,5,5,88,167,5,5,79,240,5,5,65,170,5,5,15,182,5,5,245,182,5,5,57,192,5,5,168,217,5,5,142,219,5,5,170,211,5,5,220,163,5,5,134,194,5,5,49,213,5,5,223,183,5,5,91,163,5,5,52,163,5,5,119,174,5,5,73,223,5,5,74,223,5,5,32,196,5,5,140,230,5,5,59,206,5,5,53,203,5,5,101,205,5,5,94,163,5,5,162,203,5,5,40,239,5,5,147,191,5,5,190,230,5,5,146,221,5,5,227,193,5,5,136,243,5,5,12,234,5,5,199,187,5,5,249,194,5,5,178,216,5,5,179,222,5,5,72,176,5,5,200,216,5,5,207,196,5,5,207,195,5,5,35,184,5,5,151,229,5,5,57,203,5,5,236,196,5,5,123,225,5,5,7,187,5,5,222,207,5,5,163,228,5,5,43,167,5,5,178,191,5,5,115,240,5,5,108,248,5,5,226,220,5,5,41,188,5,5,34,210,5,5,125,212,5,5,198,202,5,5,116,240,5,5,116,166,5,5,180,222,5,5,216,229,5,5,139,227,5,5,126,212,5,5,8,187,5,5,134,188,5,5,173,188,5,5,33,196,5,5,42,205,5,5,229,172,5,5,73,224,5,5,62,165,5,5,214,196,5,5,190,179,5,5,104,249,5,5,135,189,5,5,75,223,5,5,248,224,5,5,35,224,5,5,59,178,5,5,184,165,5,5,65,189,5,5,6,229,5,5,240,166,5,5,241,166,5,5,166,172,5,5,15,249,5,5,123,190,5,5,186,193,5,5,243,242,5,5,249,177,5,5,230,180,5,5,10,219,5,5,223,206,5,5,236,239,5,5,205,202,5,5,118,218,5,5,137,193,5,5,208,195,5,5,68,209,5,5,233,180,5,5,182,180,5,5,234,174,5,5,172,226,5,5,88,214,5,5,224,165,5,5,56,177,5,5,217,196,5,5,160,178,5,5,23,215,5,5,24,215,5,5,164,197,5,5,105,249,5,5,3,164,5,5,31,164,5,5,235,174,5,5,227,247,5,5,126,182,5,5,247,242,5,5,30,200,5,5,237,163,5,5,193,225,5,5,77,191,5,5,36,167,5,5,247,175,5,5,174,249,5,5,40,179,5,5,64,192,5,5,15,175,5,5,237,199,5,5,83,231,5,5,107,249,5,5,225,230,5,5,31,183,5,5,111,208,5,5,234,236,5,5,80,164,5,5,100,182,5,5,78,223,5,5,119,236,5,5,39,184,5,5,123,244,5,5,232,203,5,5,97,210,5,5,238,199,5,5,37,196,5,5,156,188,5,5,32,186,5,5,217,186,5,5,170,219,5,5,218,226,5,5,83,191,5,5,175,240,5,5,21,177,5,5,101,214,5,5,68,215,5,5,152,246,5,5,188,165,5,5,44,234,5,5,11,202,5,5,79,211,5,5,113,236,5,5,6,164,5,5,57,216,5,5,116,165,5,5,147,174,5,5,60,205,5,5,150,222,5,5,61,205,5,5,2,235,5,5,112,202,5,5,254,175,5,5,228,231,5,5,29,173,5,5,128,163,5,5,114,216,5,5,15,216,5,5,131,165,5,5,24,230,5,5,133,170,5,5,40,186,5,5,137,238,5,5,14,232,5,5,59,194,5,5,53,234,5,5,52,237,5,5,204,184,5,5,76,224,5,5,183,188,5,5,97,165,5,5,181,205,5,5,80,176,5,5,122,229,5,5,36,180,5,5,100,165,5,5,48,186,5,5,242,168,5,5,206,230,5,5,177,218,5,5,149,178,5,5,124,229,5,5,162,245,5,5,108,227,5,5,166,163,5,5,42,214,5,5,138,163,5,5,234,224,5,5,85,185,5,5,19,191,5,5,72,213,5,5,80,215,5,5,55,186,5,5,171,219,5,5,121,175,5,5,108,207,5,5,164,232,5,5,224,226,5,5,75,205,5,5,93,167,5,5,210,240,5,5,101,186,5,5,22,241,5,5,169,212,5,5,170,212,5,5,235,241,5,5,250,173,5,5,249,179,5,5,254,174,5,5,16,174,5,5,247,174,5,5,27,163,5,5,147,197,5,5,33,202,5,5,38,202,5,5,78,205,5,5,68,194,5,5,242,165,5,5,34,243,5,5,223,193,5,5,146,207,5,5,119,168,5,5,66,170,5,5,99,171,5,5,100,171,5,5,131,171,5,5,66,227,5,5,183,235,5,5,71,224,5,5,94,190,5,5,158,207,5,5,106,171,5,5,57,181,5,5,135,188,5,5,245,241,5,5,11,219,5,5,32,208,5,5,58,213,5,5,84,228,5,5,248,245,5,5,145,213,5,5,113,181,5,5,235,247,5,5,74,186,5,5,254,237,5,5,28,178,5,5,211,210,5,5,129,167,5,5,226,202,5,5,47,172,5,5,188,244,5,5,100,192,5,5,190,211,5,5,150,220,5,5,255,205,5,5,77,194,5,5,130,176,5,5,143,205,5,5,103,190,5,5,5,212,5,5,253,204,5,5,43,246,5,5,197,207,5,5,194,211,5,5,106,190,5,5,80,186,5,5,203,228,5,5,197,176,5,5,83,194,5,5,76,205,5,5,65,194,5,5,23,243,5,5,211,193,5,5,91,171,5,5,56,227,5,5,68,224,5,5,63,186,5,5,136,207,5,5,175,202,5,5,50,213,5,5,174,176,5,5,108,181,5,5,217,247,5,5,97,192,5,5,241,205,5,5,253,211,5,5,27,204,5,5,3,210,5,5,168,205,5,5,145,234,5,5,147,207,5,5,234,218,5,5,8,224,5,5,72,202,5,5,16,193,5,5,40,176,5,5,132,231,5,5,217,176,5,5,231,228,5,5,143,199,5,5,77,212,5,5,179,191,5,5,83,227,5,5,199,203,5,5,21,194,5,5,207,194,5,5,223,225,5,5,200,203,5,5,27,201,5,5,36,210,5,5,128,216,5,5,174,236,5,5,170,183,5,5,249,201,5,5,48,190,5,5,22,219,5,5,76,219,5,5,81,165,5,5,133,216,5,5,30,199,5,5,241,228,5,5,213,194,5,5,44,219,5,5,72,217,5,5,236,225,5,5,36,213,5,5,205,239,5,5,155,187,5,5,201,207,5,5,39,213,5,5,89,243,5,5,43,213,5,5,157,242,5,5,158,242,5,5,215,177,5,5,200,174,5,5,4,210,5,5,5,210,5,5,86,204,5,5,113,201,5,5,169,202,5,5,239,172,5,5,8,218,5,5,100,177,5,5,185,201,5,5,219,223,5,5,202,179,5,5,189,216,5,5,149,203,5,5,162,239,5,5,132,230,5,5,9,218,5,5,173,243,5,5,91,228,5,5,41,209,5,5,10,182,5,5,176,202,5,5,10,218,5,5,174,243,5,5,162,237,5,5,82,173,5,5,36,241,5,5,146,241,5,5,126,237,5,5,192,228,5,5,181,243,5,5,255,215,5,5,148,207,5,5,194,214,5,5,5,183,5,5,192,224,5,5,48,242,5,5,170,218,5,5,41,218,5,5,178,173,5,5,29,216,5,5,229,223,5,5,194,227,5,5,52,215,5,5,202,235,5,5,166,222,5,5,233,216,5,5,80,240,5,5,81,240,5,5,158,236,5,5,14,223,5,5,80,197,5,5,161,228,5,5,121,197,5,5,20,217,5,5,222,220,5,5,236,221,5,5,119,221,5,5,89,192,5,5,133,231,5,5,186,231,5,5,84,220,5,5,50,193,5,5,220,174,5,5,34,205,5,5,44,177,5,5,125,189,5,5,218,176,5,5,84,244,5,5,84,187,5,5,54,183,5,5,89,167,5,5,59,220,5,5,160,192,5,5,97,240,5,5,72,207,5,5,242,241,5,5,115,219,5,5,173,239,5,5,174,239,5,5,240,211,5,5,237,219,5,5,194,168,5,5,37,165,5,5,49,218,5,5,175,211,5,5,4,163,5,5,32,175,5,5,237,232,5,5,153,179,5,5,197,221,5,5,179,233,5,5,146,219,5,5,12,250,5,5,235,216,5,5,234,217,5,5,117,240,5,5,93,201,5,5,125,197,5,5,84,227,5,5,151,223,5,5,224,214,5,5,205,226,5,5,169,198,5,5,171,223,5,5,93,192,5,5,22,194,5,5,78,212,5,5,96,200,5,5,173,203,5,5,144,199,5,5,225,191,5,5,74,216,5,5,245,245,5,5,164,228,5,5,61,220,5,5,184,182,5,5,41,171,5,5,86,220,5,5,56,172,5,5,241,237,5,5,22,200,5,5,185,242,5,5,42,218,5,5,136,193,5,5,78,239,5,5,95,166,5,5,49,181,5,5,179,239,5,5,123,185,5,5,147,221,5,5,7,197,5,5,41,196,5,5,33,245,5,5,109,248,5,5,136,180,5,5,206,202,5,5,12,219,5,5,146,230,5,5,156,234,5,5,136,186,5,5,170,237,5,5,14,197,5,5,94,238,5,5,90,227,5,5,176,181,5,5,51,176,5,5,235,163,5,5,89,224,5,5,117,242,5,5,252,195,5,5,198,209,5,5,209,210,5,5,174,229,5,5,213,238,5,5,33,248,5,5,226,214,5,5,124,225,5,5,229,203,5,5,219,215,5,5,6,245,5,5,120,245,5,5,50,192,5,5,128,237,5,5,106,166,5,5,102,200,5,5,175,206,5,5,177,229,5,5,252,220,5,5,178,229,5,5,250,177,5,5,162,199,5,5,48,225,5,5,207,229,5,5,185,203,5,5,71,195,5,5,182,211,5,5,88,235,5,5,198,214,5,5,35,237,5,5,102,247,5,5,116,215,5,5,189,172,5,5,21,223,5,5,72,179,5,5,138,240,5,5,217,183,5,5,194,243,5,5,111,177,5,5,29,168,5,5,55,222,5,5,141,224,5,5,174,224,5,5,160,222,5,5,214,202,5,5,144,208,5,5,4,180,5,5,103,222,5,5,96,246,5,5,255,206,5,5,133,211,5,5,252,178,5,5,124,221,5,5,3,232,5,5,107,232,5,5,95,210,5,5,56,222,5,5,78,189,5,5,123,205,5,5,230,225,5,5,230,197,5,5,223,190,5,5,194,228,5,5,185,165,5,5,248,199,5,5,114,168,5,5,228,247,5,5,58,177,5,5,215,216,5,5,122,168,5,5,100,227,5,5,121,217,5,5,101,227,5,5,28,201,5,5,152,199,5,5,255,237,5,5,254,222,5,5,14,177,5,5,35,214,5,5,139,174,5,5,252,168,5,5,161,181,5,5,130,205,5,5,19,209,5,5,139,248,5,5,147,231,5,5,127,222,5,5,92,213,5,5,122,200,5,5,149,243,5,5,218,238,5,5,121,215,5,5,108,183,5,5,205,224,5,5,251,173,5,5,154,221,5,5,48,244,5,5,67,243,5,5,66,201,5,5,122,217,5,5,191,191,5,5,172,184,5,5,145,208,5,5,95,170,5,5,117,241,5,5,148,246,5,5,179,216,5,5,142,180,5,5,27,220,5,5,113,228,5,5,54,205,5,5,184,166,5,5,174,196,5,5,96,201,5,5,212,199,5,5,156,191,5,5,189,244,5,5,47,171,5,5,210,214,5,5,119,171,5,5,96,213,5,5,50,211,5,5,177,224,5,5,86,217,5,5,189,180,5,5,193,236,5,5,173,164,5,5,55,223,5,5,98,210,5,5,104,227,5,5,48,206,5,5,74,249,5,5,102,214,5,5,171,197,5,5,168,179,5,5,198,241,5,5,199,241,5,5,58,219,5,5,244,247,5,5,167,165,5,5,98,235,5,5,146,211,5,5,219,186,5,5,81,169,5,5,145,169,5,5,242,228,5,5,158,219,5,5,172,171,5,5,62,205,5,5,11,232,5,5,123,203,5,5,157,188,5,5,248,185,5,5,102,234,5,5,177,238,5,5,152,194,5,5,65,213,5,5,67,222,5,5,123,238,5,5,124,238,5,5,205,205,5,5,159,219,5,5,203,239,5,5,245,198,5,5,71,206,5,5,118,170,5,5,251,223,5,5,158,198,5,5,126,199,5,5,149,224,5,5,216,216,5,5,206,232,5,5,249,235,5,5,29,213,5,5,78,219,5,5,153,178,5,5,127,221,5,5,61,183,5,5,41,186,5,5,179,237,5,5,140,244,5,5,189,207,5,5,18,202,5,5,83,233,5,5,75,204,5,5,146,163,5,5,140,200,5,5,151,222,5,5,40,245,5,5,169,232,5,5,92,219,5,5,6,227,5,5,207,209,5,5,17,180,5,5,170,232,5,5,3,169,5,5,35,229,5,5,131,217,5,5,90,232,5,5,20,180,5,5,86,176,5,5,53,237,5,5,170,215,5,5,22,202,5,5,112,204,5,5,140,206,5,5,152,220,5,5,129,183,5,5,123,239,5,5,87,238,5,5,99,220,5,5,53,168,5,5,63,200,5,5,156,199,5,5,193,240,5,5,194,240,5,5,120,228,5,5,170,230,5,5,93,183,5,5,163,210,5,5,110,222,5,5,86,179,5,5,92,199,5,5,30,220,5,5,238,197,5,5,88,238,5,5,146,244,5,5,147,205,5,5,166,248,5,5,73,205,5,5,147,200,5,5,12,178,5,5,162,219,5,5,182,217,5,5,160,232,5,5,138,185,5,5,204,228,5,5,162,246,5,5,155,224,5,5,160,187,5,5,207,239,5,5,2,166,5,5,163,219,5,5,90,243,5,5,13,238,5,5,50,224,5,5,165,246,5,5,51,224,5,5,5,242,5,5,118,224,5,5,171,230,5,5,232,243,5,5,58,186,5,5,235,224,5,5,43,214,5,5,22,184,5,5,164,200,5,5,165,232,5,5,212,240,5,5,91,176,5,5,106,220,5,5,100,243,5,5,21,178,5,5,155,242,5,5,149,202,5,5,210,177,5,5,187,174,5,5,107,230,5,5,196,201,5,5,129,203,5,5,184,201,5,5,201,179,5,5,168,230,5,5,85,228,5,5,22,209,5,5,251,181,5,5,252,217,5,5,5,240,5,5,253,217,5,5,150,202,5,5,110,230,5,5,35,206,5,5,67,200,5,5,163,238,5,5,41,207,5,5,23,241,5,5,2,183,5,5,225,216,5,5,151,237,5,5,221,190,5,5,33,218,5,5,121,237,5,5,248,173,5,5,187,227,5,5,167,173,5,5,121,207,5,5,113,221,5,5,34,193,5,5,76,197,5,5,168,168,5,5,229,232,5,5,231,226,5,5,47,218,5,5,107,219,5,5,142,236,5,5,209,220,5,5,201,176,5,5,255,219,5,5,167,233,5,5,155,211,5,5,226,219,5,5,252,164,5,5,21,240,5,5,134,239,5,5,251,196,5,5,118,185,5,5,44,227,5,5,129,193,5,5,188,226,5,5,53,202,5,5,254,199,5,5,91,225,5,5,133,221,5,5,143,228,5,5,137,199,5,5,26,176,5,5,81,192,5,5,55,212,5,5,3,194,5,5,216,217,5,5,38,240,5,5,68,221,5,5,213,191,5,5,68,216,5,5,166,223,5,5,18,201,5,5,228,216,5,5,5,220,5,5,218,203,5,5,252,244,5,5,12,248,5,5,191,209,5,5,97,245,5,5,43,192,5,5,107,242,5,5,74,200,5,5,12,197,5,5,175,229,5,5,123,237,5,5,93,238,5,5,127,211,5,5,139,221,5,5,98,232,5,5,160,184,5,5,242,177,5,5,31,222,5,5,182,172,5,5,59,195,5,5,62,246,5,5,184,247,5,5,205,229,5,5,188,228,5,5,101,177,5,5,128,224,5,5,71,189,5,5,159,222,5,5,24,237,5,5,245,179,5,5,189,228,5,5,67,240,5,5,90,170,5,5,193,224,5,5,35,177,5,5,91,201,5,5,96,205,5,5,15,214,5,5,84,217,5,5,95,241,5,5,126,246,5,5,220,237,5,5,79,248,5,5,99,217,5,5,79,224,5,5,121,231,5,5,205,238,5,5,38,243,5,5,240,176,5,5,40,171,5,5,120,168,5,5,193,216,5,5,68,169,5,5,84,176,5,5,159,236,5,5,79,214,5,5,171,241,5,5,164,164,5,5,75,227,5,5,82,210,5,5,102,171,5,5,192,205,5,5,110,170,5,5,148,219,5,5,43,205,5,5,171,171,5,5,253,179,5,5,168,232,5,5,166,209,5,5,26,186,5,5,251,168,5,5,167,207,5,5,59,243,5,5,160,210,5,5,88,220,5,5,232,224,5,5,35,193,5,5,74,210,5,5,155,201,5,5,173,213,5,5,73,202,5,5,166,201,5,5,68,198,5,5,120,201,5,5,21,213,5,5,22,213,5,5,171,199,5,5,253,187,5,5,111,198,5,5,13,178,5,5,20,191,5,5,198,175,5,5,13,206,5,5,7,209,5,5,67,227,5,5,9,187,5,5,123,176,5,5,180,246,5,5,212,164,5,5,158,229,5,5,230,215,5,5,222,173,5,5,47,219,5,5,54,219,5,5,101,243,5,5,103,243,5,5,12,227,5,5,207,225,5,5,11,200,5,5,142,182,5,5,82,240,5,5,143,182,5,5,83,240,5,5,210,204,5,5,0,151,5,5,55,198,5,5,230,237,5,5,158,225,5,5,103,216,5,5,234,200,5,5,226,204,5,5,200,195,5,5,226,191,5,5,76,207,5,5,46,174,5,5,243,212,5,5,20,166,5,5,225,197,5,5,140,248,5,5,155,221,5,5,34,203,5,5,115,173,5,5,23,213,5,5,121,163,5,5,11,247,5,5,192,200,5,5,28,166,5,5,190,176,5,5,115,233,5,5,120,173,5,5,186,240,5,5,184,218,5,5,44,164,5,5,211,223,5,5,244,238,5,5,253,167,5,5,246,182,5,5,216,167,5,5,78,192,5,5,248,182,5,5,114,242,5,5,82,177,5,5,122,169,5,5,186,235,5,5,249,214,5,5,181,200,5,5,209,196,5,5,126,197,5,5,222,197,5,5,123,169,5,5,142,198,5,5,77,170,5,5,200,186,5,5,171,183,5,5,243,164,5,5,39,248,5,5,35,203,5,5,106,182,5,5,18,170,5,5,15,168,5,5,24,213,5,5,4,238,5,5,100,207,5,5,146,169,5,5,152,225,5,5,18,180,5,5,165,200,5,5,211,207,5,5,201,163,5,5,164,220,5,5,36,249,5,5,201,174,5,5,11,234,5,5,234,194,5,5,95,179,5,5,163,239,5,5,184,198,5,5,238,246,5,5,138,168,5,5,198,199,5,5,61,173,5,5,233,179,5,5,103,194,5,5,249,231,5,5,113,218,5,5,75,239,5,5,237,221,5,5,76,227,5,5,38,165,5,5,134,231,5,5,77,239,5,5,42,194,5,5,121,168,5,5,219,165,5,5,170,169,5,5,102,175,5,5,47,229,5,5,33,197,5,5,212,172,5,5,251,180,5,5,175,239,5,5,44,223,5,5,69,170,5,5,157,197,5,5,39,165,5,5,34,190,5,5,26,189,5,5,97,200,5,5,227,191,5,5,112,168,5,5,135,231,5,5,80,203,5,5,23,217,5,5,55,232,5,5,50,204,5,5,245,191,5,5,176,232,5,5,109,205,5,5,115,244,5,5,18,218,5,5,253,220,5,5,174,227,5,5,21,166,5,5,22,166,5,5,37,210,5,5,175,227,5,5,75,226,5,5,178,232,5,5,23,220,5,5,69,185,5,5,148,232,5,5,221,233,5,5,175,224,5,5,248,228,5,5,114,181,5,5,242,166,5,5,227,192,5,5,117,215,5,5,185,169,5,5,124,205,5,5,36,237,5,5,236,174,5,5,48,180,5,5,89,235,5,5,90,235,5,5,23,219,5,5,250,201,5,5,54,221,5,5,29,178,5,5,247,205,5,5,43,218,5,5,119,226,5,5,175,249,5,5,33,164,5,5,38,232,5,5,71,185,5,5,10,174,5,5,129,234,5,5,12,202,5,5,54,229,5,5,176,240,5,5,149,222,5,5,243,174,5,5,101,192,5,5,14,236,5,5,12,232,5,5,254,187,5,5,179,240,5,5,177,163,5,5,219,224,5,5,246,246,5,5,41,219,5,5,109,222,5,5,171,165,5,5,124,249,5,5,211,232,5,5,62,176,5,5,155,232,5,5,77,243,5,5,15,169,5,5,121,228,5,5,249,246,5,5,201,244,5,5,2,206,5,5,165,192,5,5,133,215,5,5,180,232,5,5,105,165,5,5,14,178,5,5,106,229,5,5,88,243,5,5,249,228,5,5,183,217,5,5,44,191,5,5,167,192,5,5,182,232,5,5,198,163,5,5,156,220,5,5,190,174,5,5,28,249,5,5,231,194,5,5,10,234,5,5,240,231,5,5,86,215,5,5,169,163,5,5,46,221,5,5,187,199,5,5,193,218,5,5,51,173,5,5,229,179,5,5,136,168,5,5,214,165,5,5,82,192,5,5,216,221,5,5,97,194,5,5,74,239,5,5,84,205,5,5,117,164,5,5,57,227,5,5,248,180,5,5,35,194,5,5,29,197,5,5,92,175,5,5,63,170,5,5,202,172,5,5,154,197,5,5,152,239,5,5,53,232,5,5,213,218,5,5,73,203,5,5,79,200,5,5,116,231,5,5,24,189,5,5,10,190,5,5,175,232,5,5,117,231,5,5,221,191,5,5,221,205,5,5,20,210,5,5,247,220,5,5,65,185,5,5,170,227,5,5,221,174,5,5,25,178,5,5,231,201,5,5,102,229,5,5,247,228,5,5,220,233,5,5,40,165,5,5,18,220,5,5,222,192,5,5,238,166,5,5,12,176,5,5,68,185,5,5,6,174,5,5,101,222,5,5,228,174,5,5,144,222,5,5,12,236,5,5,4,232,5,5,68,243,5,5,149,232,5,5,122,249,5,5,209,232,5,5,114,228,5,5,190,244,5,5,166,192,5,5,84,223,5,5,211,212,5,5,195,227,5,5,111,183,5,5,185,182,5,5,136,213,5,5,65,225,5,5,162,197,5,5,76,225,5,5,169,219,5,5,214,213,5,5,100,180,5,5,116,232,5,5,115,232,5,5,51,187,5,5,128,204,5,5,202,174,5,5,231,219,5,5,137,192,5,5,8,209,5,5,92,228,5,5,138,212,5,5,210,243,5,5,148,215,5,5,157,233,5,5,149,207,5,5,4,211,5,5,42,223,5,5,159,233,5,5,224,224,5,5,225,224,5,5,45,177,5,5,217,206,5,5,232,223,5,5,155,176,5,5,132,213,5,5,85,220,5,5,159,207,5,5,221,248,5,5,176,211,5,5,85,202,5,5,45,223,5,5,164,225,5,5,113,193,5,5,85,217,5,5,136,231,5,5,29,181,5,5,86,178,5,5,203,187,5,5,143,192,5,5,213,236,5,5,157,234,5,5,59,213,5,5,243,219,5,5,175,236,5,5,221,243,5,5,2,207,5,5,125,205,5,5,34,212,5,5,127,180,5,5,9,226,5,5,227,234,5,5,49,190,5,5,254,211,5,5,111,176,5,5,233,209,5,5,148,231,5,5,186,180,5,5,188,211,5,5,117,223,5,5,77,201,5,5,180,209,5,5,154,209,5,5,109,204,5,5,91,232,5,5,242,180,5,5,66,239,5,5,142,232,5,5,144,232,5,5,217,232,5,5,154,166,5,5,45,164,5,5,28,196,5,5,8,195,5,5,201,178,5,5,150,207,5,5,37,174,5,5,211,224,5,5,44,205,5,5,182,173,5,5,171,218,5,5,36,179,5,5,217,248,5,5,21,163,5,5,190,208,5,5,218,248,5,5,34,211,5,5,68,182,5,5,116,179,5,5,98,240,5,5,76,184,5,5,126,189,5,5,8,170,5,5,5,163,5,5,20,177,5,5,15,196,5,5,36,182,5,5,25,203,5,5,160,233,5,5,25,167,5,5,76,209,5,5,238,221,5,5,218,206,5,5,152,177,5,5,119,218,5,5,41,174,5,5,60,167,5,5,73,207,5,5,59,228,5,5,140,163,5,5,166,183,5,5,74,207,5,5,85,187,5,5,170,192,5,5,180,239,5,5,236,201,5,5,110,178,5,5,154,215,5,5,251,203,5,5,111,178,5,5,148,221,5,5,79,212,5,5,49,196,5,5,80,222,5,5,43,194,5,5,150,212,5,5,149,196,5,5,75,216,5,5,104,223,5,5,35,190,5,5,113,168,5,5,254,218,5,5,58,203,5,5,58,181,5,5,23,234,5,5,102,205,5,5,64,179,5,5,133,209,5,5,48,165,5,5,56,215,5,5,112,178,5,5,237,201,5,5,254,206,5,5,207,202,5,5,88,229,5,5,227,181,5,5,225,225,5,5,176,206,5,5,245,183,5,5,157,214,5,5,142,166,5,5,65,217,5,5,26,235,5,5,79,172,5,5,89,229,5,5,51,189,5,5,19,250,5,5,54,204,5,5,36,224,5,5,137,209,5,5,93,170,5,5,73,179,5,5,126,205,5,5,220,208,5,5,181,245,5,5,97,246,5,5,245,225,5,5,186,203,5,5,98,202,5,5,249,183,5,5,224,206,5,5,225,206,5,5,213,190,5,5,50,190,5,5,164,186,5,5,235,199,5,5,87,207,5,5,52,223,5,5,226,246,5,5,84,212,5,5,156,180,5,5,114,163,5,5,225,232,5,5,117,209,5,5,237,239,5,5,161,234,5,5,111,233,5,5,25,234,5,5,112,233,5,5,194,167,5,5,24,219,5,5,97,221,5,5,155,177,5,5,130,218,5,5,236,247,5,5,73,178,5,5,220,178,5,5,69,226,5,5,22,250,5,5,237,222,5,5,15,177,5,5,101,219,5,5,217,224,5,5,25,226,5,5,127,205,5,5,118,193,5,5,97,180,5,5,32,207,5,5,140,174,5,5,226,232,5,5,59,177,5,5,115,168,5,5,44,230,5,5,173,184,5,5,187,180,5,5,159,223,5,5,92,182,5,5,55,205,5,5,152,175,5,5,177,234,5,5,148,208,5,5,79,179,5,5,51,211,5,5,84,184,5,5,135,177,5,5,190,180,5,5,109,202,5,5,3,184,5,5,70,167,5,5,30,188,5,5,152,232,5,5,93,165,5,5,165,226,5,5,63,190,5,5,255,187,5,5,166,234,5,5,62,180,5,5,117,175,5,5,194,236,5,5,98,213,5,5,151,196,5,5,16,202,5,5,137,218,5,5,53,211,5,5,191,176,5,5,74,167,5,5,116,233,5,5,158,188,5,5,203,164,5,5,64,232,5,5,86,184,5,5,132,165,5,5,86,182,5,5,10,207,5,5,131,176,5,5,143,234,5,5,71,215,5,5,30,173,5,5,182,225,5,5,221,222,5,5,196,178,5,5,62,163,5,5,169,234,5,5,170,234,5,5,190,207,5,5,191,207,5,5,34,189,5,5,43,179,5,5,155,209,5,5,113,207,5,5,4,169,5,5,222,187,5,5,197,178,5,5,8,235,5,5,37,197,5,5,92,232,5,5,41,175,5,5,101,165,5,5,102,165,5,5,180,221,5,5,102,207,5,5,183,225,5,5,208,209,5,5,202,178,5,5,48,224,5,5,26,202,5,5,77,245,5,5,241,248,5,5,87,184,5,5,36,189,5,5,212,187,5,5,139,218,5,5,156,187,5,5,51,219,5,5,115,224,5,5,185,225,5,5,180,178,5,5,163,246,5,5,21,191,5,5,37,189,5,5,78,215,5,5,166,246,5,5,57,233,5,5,59,186,5,5,117,214,5,5,160,230,5,5,206,235,5,5,23,184,5,5,89,179,5,5,233,211,5,5,234,203,5,5,10,235,5,5,191,234,5,5,103,213,5,5,147,196,5,5,212,207,5,5,38,189,5,5,137,228,5,5,201,194,5,5,236,175,5,5,144,173,5,5,171,211,5,5,205,180,5,5,87,178,5,5,88,178,5,5,209,194,5,5,124,186,5,5,149,230,5,5,124,190,5,5,49,238,5,5,251,201,5,5,3,207,5,5,116,180,5,5,68,197,5,5,214,185,5,5,249,242,5,5,16,170,5,5,223,195,5,5,191,211,5,5,249,185,5,5,217,185,5,5,94,178,5,5,138,218,5,5,107,243,5,5,208,180,5,5,174,175,5,5,238,244,5,5,178,248,5,5,174,223,5,5,27,241,5,5,10,194,5,5,20,208,5,5,124,246,5,5,213,248,5,5,26,216,5,5,95,175,5,5,97,217,5,5,55,173,5,5,133,230,5,5,55,228,5,5,13,197,5,5,78,229,5,5,144,182,5,5,194,224,5,5,100,175,5,5,221,237,5,5,247,182,5,5,191,208,5,5,28,170,5,5,30,231,5,5,136,230,5,5,126,210,5,5,133,222,5,5,115,201,5,5,234,198,5,5,209,211,5,5,34,197,5,5,219,176,5,5,127,189,5,5,103,175,5,5,100,238,5,5,223,220,5,5,62,173,5,5,8,197,5,5,68,244,5,5,143,167,5,5,225,163,5,5,17,193,5,5,18,193,5,5,21,167,5,5,239,221,5,5,100,231,5,5,231,237,5,5,6,163,5,5,33,220,5,5,172,218,5,5,172,241,5,5,10,195,5,5,99,240,5,5,245,218,5,5,85,227,5,5,197,168,5,5,41,239,5,5,226,194,5,5,251,206,5,5,96,204,5,5,167,194,5,5,128,197,5,5,97,195,5,5,80,212,5,5,20,220,5,5,49,232,5,5,255,218,5,5,173,227,5,5,77,189,5,5,126,248,5,5,238,227,5,5,59,242,5,5,241,246,5,5,218,243,5,5,151,219,5,5,225,246,5,5,175,174,5,5,104,211,5,5,24,220,5,5,172,183,5,5,156,186,5,5,153,219,5,5,146,220,5,5,79,189,5,5,145,231,5,5,31,200,5,5,103,247,5,5,10,226,5,5,188,193,5,5,181,195,5,5,238,239,5,5,170,167,5,5,188,210,5,5,142,194,5,5,82,184,5,5,203,168,5,5,90,194,5,5,238,163,5,5,214,190,5,5,215,166,5,5,53,189,5,5,36,231,5,5,45,230,5,5,105,202,5,5,49,244,5,5,122,215,5,5,63,226,5,5,60,234,5,5,89,226,5,5,192,191,5,5,64,242,5,5,122,201,5,5,93,229,5,5,241,174,5,5,149,231,5,5,141,174,5,5,10,247,5,5,139,164,5,5,127,220,5,5,239,247,5,5,12,247,5,5,169,179,5,5,72,193,5,5,203,220,5,5,217,213,5,5,75,249,5,5,64,190,5,5,19,204,5,5,249,223,5,5,136,222,5,5,154,246,5,5,14,201,5,5,91,217,5,5,161,219,5,5,110,204,5,5,151,220,5,5,108,166,5,5,206,185,5,5,121,173,5,5,252,172,5,5,251,188,5,5,199,191,5,5,247,235,5,5,185,195,5,5,198,200,5,5,248,239,5,5,115,202,5,5,111,222,5,5,48,239,5,5,167,248,5,5,148,205,5,5,126,201,5,5,107,185,5,5,7,167,5,5,157,187,5,5,162,187,5,5,221,189,5,5,39,189,5,5,172,223,5,5,20,241,5,5,253,193,5,5,93,217,5,5,78,175,5,5,124,230,5,5,131,222,5,5,197,237,5,5,197,190,5,5,27,231,5,5,111,201,5,5,8,193,5,5,5,195,5,5,192,189,5,5,32,220,5,5,164,218,5,5,53,240,5,5,227,198,5,5,214,220,5,5,52,187,5,5,163,241,5,5,92,211,5,5,63,227,5,5,47,232,5,5,214,218,5,5,89,204,5,5,8,220,5,5,62,212,5,5,11,190,5,5,90,204,5,5,143,219,5,5,167,174,5,5,72,189,5,5,77,184,5,5,226,163,5,5,18,200,5,5,135,194,5,5,99,247,5,5,46,189,5,5,5,226,5,5,129,231,5,5,59,234,5,5,125,174,5,5,86,202,5,5,5,247,5,5,87,229,5,5,3,167,5,5,63,249,5,5,210,213,5,5,78,184,5,5,51,190,5,5,155,219,5,5,242,188,5,5,244,215,5,5,19,193,5,5,180,233,5,5,181,233,5,5,44,168,5,5,44,233,5,5,247,165,5,5,247,184,5,5,248,184,5,5,189,233,5,5,51,217,5,5,112,164,5,5,250,165,5,5,251,165,5,5,252,165,5,5,52,217,5,5,253,165,5,5,82,164,5,5,198,233,5,5,254,165,5,5,255,165,5,5,183,224,5,5,214,230,5,5,193,184,5,5,195,184,5,5,150,224,5,5,250,225,5,5,249,225,5,5,214,240,5,5,176,230,5,5,193,165,5,5,194,165,5,5,229,226,5,5,228,230,5,5,223,187,5,5,17,175,5,5,67,224,5,5,110,192,5,5,63,210,5,5,141,247,5,5,142,247,5,5,29,209,5,5,2,218,5,5,135,239,5,5,192,193,5,5,177,169,5,5,115,208,5,5,211,231,5,5,110,247,5,5,244,181,5,5,157,222,5,5,156,244,5,5,213,180,5,5,180,249,5,5,212,205,5,5,176,198,5,5,28,241,5,5,41,173,5,5,94,245,5,5,22,175,5,5,154,237,5,5,183,197,5,5,172,219,5,5,255,222,5,5,213,205,5,5,84,249,5,5,8,246,5,5,118,188,5,5,35,223,5,5,188,223,5,5,205,183,5,5,23,181,5,5,202,218,5,5,153,239,5,5,98,208,5,5,14,203,5,5,185,224,5,5,93,175,5,5,55,239,5,5,167,176,5,5,197,166,5,5,217,221,5,5,30,177,5,5,242,231,5,5,177,179,5,5,137,229,5,5,29,182,5,5,6,212,5,5,149,206,5,5,49,200,5,5,17,179,5,5,110,242,5,5,38,171,5,5,196,164,5,5,219,201,5,5,19,183,5,5,164,239,5,5,150,203,5,5,82,222,5,5,193,187,5,5,11,218,5,5,96,182,5,5,124,237,5,5,64,227,5,5,179,179,5,5,118,167,5,5,53,198,5,5,207,183,5,5,211,178,5,5,100,208,5,5,151,217,5,5,12,218,5,5,104,166,5,5,15,242,5,5,140,214,5,5,21,210,5,5,224,179,5,5,175,221,5,5,22,210,5,5,241,176,5,5,242,176,5,5,209,181,5,5,162,206,5,5,224,180,5,5,207,175,5,5,229,239,5,5,176,219,5,5,158,182,5,5,181,194,5,5,105,245,5,5,68,227,5,5,142,225,5,5,154,236,5,5,83,232,5,5,119,212,5,5,239,173,5,5,123,188,5,5,241,236,5,5,51,200,5,5,4,187,5,5,100,193,5,5,54,185,5,5,136,164,5,5,203,234,5,5,160,207,5,5,197,164,5,5,229,200,5,5,75,175,5,5,25,190,5,5,51,242,5,5,19,220,5,5,225,205,5,5,96,248,5,5,244,225,5,5,121,196,5,5,235,245,5,5,228,180,5,5,100,240,5,5,33,175,5,5,86,249,5,5,95,190,5,5,211,164,5,5,166,184,5,5,218,247,5,5,105,176,5,5,11,237,5,5,215,178,5,5,33,237,5,5,240,242,5,5,60,226,5,5,46,223,5,5,176,180,5,5,110,248,5,5,251,226,5,5,185,220,5,5,56,242,5,5,190,249,5,5,242,237,5,5,245,165,5,5,193,193,5,5,243,237,5,5,208,213,5,5,55,201,5,5,35,210,5,5,162,175,5,5,34,175,5,5,29,246,5,5,122,183,5,5,181,239,5,5,98,192,5,5,186,241,5,5,66,224,5,5,52,188,5,5,19,218,5,5,68,179,5,5,6,177,5,5,49,223,5,5,87,249,5,5,176,236,5,5,69,179,5,5,159,210,5,5,65,169,5,5,187,241,5,5,112,194,5,5,27,221,5,5,117,238,5,5,93,227,5,5,228,233,5,5,114,223,5,5,185,236,5,5,62,232,5,5,125,219,5,5,218,178,5,5,11,177,5,5,244,185,5,5,54,223,5,5,176,234,5,5,243,188,5,5,72,233,5,5,30,230,5,5,96,210,5,5,153,217,5,5,141,248,5,5,193,239,5,5,124,245,5,5,244,187,5,5,98,207,5,5,105,227,5,5,89,165,5,5,154,241,5,5,186,169,5,5,103,214,5,5,46,237,5,5,187,197,5,5,95,220,5,5,140,180,5,5,65,239,5,5,164,171,5,5,206,165,5,5,210,165,5,5,232,184,5,5,227,186,5,5,79,249,5,5,206,241,5,5,114,190,5,5,19,187,5,5,22,240,5,5,143,181,5,5,135,176,5,5,253,208,5,5,213,249,5,5,39,228,5,5,73,198,5,5,158,247,5,5,185,170,5,5,182,230,5,5,131,212,5,5,250,246,5,5,22,197,5,5,21,174,5,5,235,195,5,5,6,166,5,5,149,173,5,5,141,216,5,5,236,182,5,5,245,215,5,5,182,228,5,5,140,164,5,5,32,249,5,5,24,235,5,5,180,199,5,5,253,213,5,5,146,164,5,5,249,244,5,5,51,207,5,5,35,242,5,5,78,198,5,5,110,179,5,5,219,209,5,5,6,165,5,5,205,167,5,5,61,166,5,5,3,228,5,5,205,163,5,5,156,245,5,5,207,176,5,5,96,232,5,5,85,241,5,5,219,188,5,5,2,197,5,5,213,193,5,5,135,221,5,5,194,226,5,5,8,196,5,5,62,248,5,5,217,191,5,5,100,197,5,5,99,209,5,5,203,218,5,5,59,202,5,5,171,200,5,5,51,198,5,5,146,216,5,5,243,203,5,5,46,213,5,5,229,193,5,5,154,184,5,5,104,186,5,5,43,203,5,5,84,196,5,5,116,221,5,5,148,186,5,5,182,249,5,5,174,242,5,5,97,225,5,5,200,175,5,5,196,212,5,5,48,191,5,5,163,174,5,5,23,245,5,5,100,174,5,5,44,192,5,5,240,197,5,5,107,186,5,5,47,203,5,5,236,192,5,5,48,208,5,5,207,244,5,5,82,163,5,5,123,213,5,5,214,163,5,5,67,187,5,5,142,249,5,5,140,166,5,5,195,214,5,5,127,208,5,5,255,167,5,5,101,211,5,5,144,193,5,5,14,220,5,5,248,179,5,5,99,232,5,5,180,168,5,5,49,185,5,5,162,183,5,5,169,224,5,5,52,242,5,5,144,166,5,5,44,216,5,5,237,175,5,5,249,206,5,5,228,249,5,5,131,209,5,5,106,239,5,5,184,175,5,5,237,242,5,5,212,169,5,5,239,230,5,5,227,163,5,5,232,237,5,5,83,229,5,5,255,207,5,5,24,248,5,5,187,249,5,5,31,198,5,5,122,196,5,5,48,216,5,5,49,216,5,5,49,236,5,5,79,180,5,5,39,172,5,5,232,212,5,5,215,230,5,5,224,225,5,5,137,231,5,5,104,232,5,5,102,241,5,5,4,245,5,5,52,216,5,5,148,249,5,5,7,198,5,5,222,249,5,5,242,164,5,5,78,170,5,5,243,223,5,5,47,174,5,5,11,188,5,5,188,243,5,5,120,222,5,5,83,199,5,5,138,209,5,5,146,242,5,5,21,221,5,5,145,170,5,5,139,209,5,5,238,216,5,5,139,176,5,5,94,165,5,5,242,217,5,5,72,165,5,5,198,232,5,5,27,246,5,5,125,221,5,5,80,170,5,5,105,228,5,5,236,188,5,5,182,166,5,5,248,175,5,5,237,170,5,5,118,241,5,5,52,234,5,5,95,196,5,5,219,173,5,5,242,170,5,5,109,232,5,5,38,197,5,5,181,188,5,5,153,232,5,5,104,224,5,5,22,242,5,5,19,202,5,5,78,243,5,5,111,224,5,5,189,234,5,5,155,189,5,5,162,200,5,5,38,213,5,5,228,173,5,5,161,232,5,5,158,187,5,5,71,242,5,5,197,177,5,5,6,210,5,5,32,222,5,5,254,166,5,5,55,220,5,5,226,239,5,5,119,192,5,5,185,247,5,5,151,204,5,5,226,242,5,5,38,233,5,5,29,170,5,5,248,220,5,5,13,217,5,5,208,175,5,5,176,220,5,5,83,173,5,5,109,249,5,5,252,174,5,5,183,249,5,5,142,179,5,5,65,181,5,5,77,209,5,5,37,182,5,5,154,234,5,5,65,198,5,5,20,193,5,5,131,236,5,5,118,172,5,5,32,224,5,5,50,232,5,5,53,172,5,5,210,185,5,5,7,226,5,5,33,224,5,5,116,242,5,5,186,182,5,5,175,218,5,5,57,215,5,5,61,206,5,5,126,225,5,5,243,243,5,5,228,181,5,5,101,204,5,5,221,169,5,5,35,196,5,5,59,237,5,5,149,185,5,5,231,168,5,5,46,233,5,5,191,197,5,5,57,243,5,5,217,227,5,5,105,184,5,5,36,246,5,5,52,190,5,5,71,186,5,5,147,242,5,5,192,179,5,5,233,166,5,5,124,220,5,5,110,226,5,5,5,180,5,5,47,233,5,5,104,222,5,5,162,234,5,5,218,196,5,5,188,180,5,5,123,215,5,5,237,177,5,5,28,199,5,5,239,216,5,5,160,216,5,5,34,180,5,5,41,210,5,5,111,226,5,5,199,249,5,5,205,166,5,5,29,195,5,5,59,236,5,5,48,171,5,5,86,212,5,5,60,224,5,5,178,234,5,5,201,249,5,5,26,250,5,5,21,239,5,5,121,219,5,5,192,197,5,5,101,180,5,5,70,206,5,5,89,168,5,5,220,224,5,5,158,248,5,5,220,186,5,5,65,232,5,5,188,185,5,5,121,239,5,5,72,206,5,5,109,166,5,5,111,204,5,5,30,213,5,5,19,180,5,5,119,172,5,5,205,184,5,5,195,240,5,5,17,187,5,5,103,207,5,5,84,243,5,5,196,240,5,5,106,184,5,5,208,230,5,5,208,217,5,5,49,224,5,5,91,243,5,5,159,189,5,5,64,171,5,5,65,171,5,5,107,184,5,5,35,216,5,5,115,204,5,5,221,227,5,5,67,171,5,5,102,243,5,5,234,165,5,5,16,234,5,5,69,227,5,5,115,242,5,5,77,227,5,5,107,227,5,5,250,186,5,5,244,222,5,5,74,241,5,5,76,189,5,5,221,186,5,5,164,205,5,5,165,205,5,5,7,210,5,5,223,239,5,5,10,188,5,5,132,175,5,5,212,219,5,5,198,177,5,5,201,166,5,5,14,210,5,5,0,148,5,5,164,174,5,5,172,220,5,5,107,218,5,5,0,149,5,5,187,190,5,5,165,174,5,5,20,183,5,5,103,177,5,5,94,228,5,5,187,209,5,5,152,195,5,5,74,226,5,5,182,231,5,5,43,173,5,5,112,199,5,5,113,199,5,5,131,198,5,5,195,192,5,5,192,208,5,5,203,170,5,5,11,230,5,5,243,176,5,5,181,235,5,5,125,213,5,5,84,240,5,5,208,223,5,5,197,226,5,5,241,181,5,5,212,212,5,5,215,184,5,5,79,210,5,5,48,210,5,5,97,205,5,5,40,168,5,5,65,241,5,5,177,205,5,5,13,163,5,5,156,173,5,5,198,224,5,5,153,216,5,5,196,175,5,5,222,248,5,5,83,210,5,5,42,174,5,5,217,167,5,5,249,182,5,5,2,216,5,5,166,237,5,5,161,207,5,5,213,178,5,5,59,192,5,5,212,243,5,5,129,210,5,5,93,164,5,5,211,235,5,5,92,230,5,5,233,223,5,5,56,184,5,5,85,173,5,5,169,249,5,5,136,202,5,5,231,210,5,5,218,167,5,5,146,193,5,5,160,201,5,5,183,243,5,5,28,208,5,5,200,226,5,5,101,240,5,5,212,222,5,5,81,213,5,5,241,191,5,5,12,230,5,5,182,199,5,5,143,179,5,5,238,195,5,5,110,249,5,5,83,190,5,5,233,237,5,5,70,247,5,5,70,178,5,5,142,231,5,5,190,183,5,5,221,181,5,5,86,227,5,5,242,171,5,5,21,193,5,5,18,195,5,5,129,189,5,5,76,166,5,5,187,235,5,5,55,193,5,5,100,163,5,5,219,167,5,5,111,248,5,5,188,235,5,5,249,232,5,5,105,166,5,5,57,242,5,5,88,181,5,5,81,203,5,5,186,220,5,5,20,227,5,5,87,227,5,5,123,218,5,5,77,207,5,5,72,224,5,5,206,226,5,5,207,226,5,5,173,217,5,5,214,219,5,5,51,164,5,5,129,197,5,5,49,165,5,5,28,229,5,5,165,225,5,5,252,226,5,5,101,163,5,5,242,221,5,5,105,223,5,5,215,231,5,5,175,166,5,5,187,182,5,5,131,210,5,5,126,174,5,5,197,219,5,5,90,188,5,5,88,210,5,5,127,174,5,5,92,187,5,5,224,248,5,5,220,167,5,5,10,244,5,5,110,164,5,5,55,163,5,5,174,203,5,5,61,192,5,5,152,229,5,5,92,221,5,5,78,172,5,5,84,213,5,5,85,213,5,5,254,176,5,5,30,203,5,5,98,172,5,5,30,180,5,5,182,200,5,5,234,239,5,5,121,235,5,5,35,197,5,5,247,194,5,5,197,163,5,5,110,205,5,5,190,182,5,5,155,216,5,5,169,201,5,5,55,204,5,5,76,223,5,5,79,239,5,5,148,190,5,5,77,166,5,5,91,227,5,5,94,170,5,5,32,203,5,5,189,243,5,5,33,208,5,5,22,220,5,5,181,226,5,5,83,216,5,5,191,182,5,5,130,169,5,5,150,185,5,5,243,201,5,5,127,248,5,5,32,217,5,5,94,230,5,5,85,233,5,5,13,219,5,5,151,212,5,5,97,228,5,5,109,223,5,5,157,215,5,5,156,216,5,5,82,212,5,5,221,167,5,5,255,180,5,5,151,221,5,5,108,216,5,5,43,172,5,5,45,196,5,5,188,241,5,5,60,215,5,5,108,215,5,5,251,214,5,5,34,208,5,5,136,223,5,5,203,185,5,5,91,202,5,5,28,168,5,5,192,230,5,5,80,171,5,5,111,239,5,5,145,243,5,5,169,194,5,5,236,238,5,5,122,177,5,5,86,242,5,5,234,235,5,5,129,195,5,5,135,210,5,5,165,190,5,5,196,235,5,5,30,238,5,5,107,177,5,5,146,198,5,5,16,231,5,5,95,227,5,5,253,195,5,5,40,210,5,5,163,214,5,5,154,219,5,5,25,215,5,5,191,232,5,5,183,180,5,5,208,234,5,5,116,193,5,5,190,201,5,5,216,222,5,5,208,179,5,5,78,191,5,5,224,169,5,5,126,186,5,5,227,246,5,5,7,216,5,5,153,249,5,5,239,163,5,5,122,245,5,5,186,236,5,5,133,248,5,5,98,224,5,5,226,177,5,5,115,163,5,5,147,198,5,5,61,203,5,5,172,201,5,5,6,235,5,5,218,173,5,5,74,224,5,5,228,246,5,5,25,219,5,5,140,235,5,5,118,217,5,5,123,199,5,5,35,248,5,5,35,181,5,5,227,194,5,5,57,222,5,5,114,191,5,5,157,216,5,5,9,211,5,5,223,228,5,5,100,198,5,5,115,191,5,5,67,241,5,5,174,225,5,5,208,232,5,5,226,206,5,5,222,215,5,5,2,181,5,5,210,170,5,5,9,169,5,5,206,186,5,5,92,167,5,5,17,231,5,5,127,225,5,5,52,192,5,5,10,187,5,5,99,179,5,5,100,166,5,5,247,221,5,5,8,221,5,5,193,181,5,5,95,188,5,5,49,233,5,5,95,207,5,5,36,225,5,5,88,249,5,5,131,205,5,5,201,192,5,5,114,177,5,5,194,179,5,5,20,225,5,5,215,190,5,5,189,193,5,5,140,189,5,5,192,163,5,5,56,190,5,5,212,186,5,5,49,211,5,5,45,167,5,5,238,207,5,5,246,171,5,5,50,233,5,5,173,167,5,5,250,238,5,5,227,167,5,5,227,215,5,5,235,240,5,5,85,222,5,5,153,185,5,5,27,195,5,5,60,197,5,5,76,179,5,5,219,196,5,5,253,177,5,5,44,183,5,5,41,226,5,5,150,231,5,5,99,221,5,5,121,164,5,5,255,183,5,5,150,233,5,5,112,226,5,5,9,180,5,5,227,177,5,5,223,208,5,5,141,210,5,5,106,222,5,5,4,202,5,5,142,248,5,5,204,205,5,5,92,194,5,5,41,170,5,5,249,224,5,5,115,181,5,5,15,213,5,5,204,188,5,5,195,179,5,5,95,193,5,5,209,234,5,5,161,229,5,5,202,220,5,5,57,190,5,5,14,171,5,5,58,190,5,5,106,199,5,5,186,165,5,5,125,191,5,5,59,185,5,5,203,195,5,5,184,173,5,5,134,245,5,5,32,183,5,5,243,246,5,5,150,232,5,5,99,199,5,5,65,175,5,5,66,215,5,5,105,168,5,5,169,199,5,5,80,189,5,5,147,172,5,5,168,170,5,5,102,195,5,5,124,244,5,5,161,176,5,5,206,188,5,5,156,193,5,5,163,215,5,5,45,178,5,5,231,181,5,5,38,246,5,5,114,233,5,5,244,174,5,5,46,230,5,5,110,202,5,5,5,238,5,5,37,208,5,5,218,224,5,5,191,180,5,5,91,219,5,5,89,199,5,5,50,244,5,5,178,178,5,5,218,213,5,5,240,247,5,5,255,195,5,5,134,216,5,5,71,201,5,5,103,246,5,5,245,174,5,5,217,219,5,5,140,223,5,5,119,209,5,5,219,226,5,5,124,201,5,5,136,196,5,5,117,181,5,5,98,170,5,5,151,209,5,5,152,209,5,5,41,198,5,5,209,179,5,5,69,235,5,5,193,200,5,5,125,241,5,5,248,171,5,5,137,205,5,5,161,178,5,5,138,205,5,5,107,237,5,5,137,196,5,5,31,199,5,5,124,217,5,5,93,178,5,5,189,203,5,5,204,220,5,5,207,165,5,5,219,222,5,5,154,231,5,5,255,214,5,5,69,241,5,5,248,169,5,5,225,166,5,5,33,238,5,5,233,203,5,5,196,210,5,5,228,169,5,5,236,236,5,5,39,175,5,5,174,164,5,5,220,213,5,5,159,188,5,5,237,236,5,5,114,195,5,5,72,188,5,5,201,241,5,5,130,241,5,5,91,183,5,5,120,247,5,5,89,231,5,5,104,180,5,5,238,236,5,5,54,211,5,5,120,187,5,5,193,229,5,5,43,226,5,5,129,163,5,5,75,167,5,5,16,175,5,5,215,164,5,5,121,236,5,5,202,192,5,5,155,231,5,5,10,245,5,5,193,244,5,5,104,201,5,5,39,181,5,5,73,188,5,5,103,195,5,5,86,237,5,5,147,227,5,5,60,236,5,5,247,246,5,5,17,198,5,5,5,221,5,5,6,221,5,5,127,186,5,5,180,240,5,5,77,249,5,5,118,180,5,5,6,184,5,5,66,213,5,5,37,203,5,5,158,191,5,5,39,169,5,5,226,207,5,5,131,237,5,5,240,232,5,5,239,236,5,5,237,213,5,5,14,174,5,5,71,247,5,5,228,182,5,5,251,189,5,5,240,236,5,5,179,238,5,5,228,232,5,5,119,182,5,5,3,215,5,5,117,194,5,5,181,217,5,5,207,188,5,5,34,228,5,5,159,238,5,5,134,170,5,5,149,169,5,5,104,190,5,5,98,165,5,5,157,246,5,5,76,188,5,5,194,176,5,5,97,236,5,5,139,233,5,5,204,239,5,5,70,190,5,5,126,238,5,5,2,196,5,5,55,211,5,5,224,234,5,5,152,208,5,5,24,225,5,5,63,180,5,5,154,170,5,5,233,249,5,5,151,224,5,5,223,173,5,5,185,206,5,5,172,165,5,5,163,229,5,5,15,186,5,5,29,215,5,5,71,235,5,5,2,191,5,5,156,232,5,5,144,205,5,5,45,234,5,5,228,186,5,5,238,213,5,5,31,213,5,5,224,195,5,5,5,230,5,5,204,164,5,5,60,221,5,5,197,210,5,5,82,225,5,5,75,190,5,5,127,199,5,5,116,202,5,5,243,168,5,5,142,200,5,5,81,211,5,5,178,166,5,5,254,188,5,5,248,235,5,5,30,215,5,5,98,236,5,5,83,225,5,5,179,196,5,5,149,235,5,5,110,188,5,5,62,183,5,5,79,201,5,5,66,168,5,5,54,237,5,5,34,173,5,5,182,209,5,5,50,212,5,5,53,244,5,5,64,180,5,5,115,216,5,5,198,207,5,5,20,204,5,5,75,233,5,5,2,188,5,5,122,209,5,5,189,185,5,5,154,178,5,5,16,216,5,5,126,232,5,5,23,202,5,5,68,205,5,5,222,222,5,5,145,176,5,5,239,240,5,5,230,244,5,5,127,178,5,5,199,207,5,5,92,183,5,5,127,232,5,5,5,169,5,5,4,181,5,5,35,173,5,5,61,221,5,5,209,177,5,5,122,228,5,5,82,195,5,5,2,205,5,5,224,172,5,5,55,237,5,5,253,189,5,5,228,207,5,5,145,200,5,5,168,248,5,5,166,188,5,5,72,222,5,5,156,209,5,5,149,205,5,5,73,222,5,5,105,185,5,5,106,165,5,5,5,181,5,5,199,200,5,5,134,241,5,5,75,178,5,5,191,193,5,5,81,176,5,5,105,207,5,5,122,173,5,5,42,175,5,5,244,163,5,5,201,240,5,5,89,238,5,5,124,233,5,5,26,218,5,5,116,177,5,5,252,221,5,5,210,198,5,5,112,222,5,5,31,202,5,5,19,184,5,5,150,197,5,5,229,199,5,5,107,211,5,5,34,166,5,5,148,244,5,5,181,196,5,5,131,184,5,5,218,216,5,5,150,205,5,5,151,205,5,5,199,210,5,5,161,223,5,5,53,219,5,5,143,171,5,5,241,186,5,5,110,185,5,5,34,202,5,5,66,233,5,5,47,197,5,5,250,228,5,5,186,167,5,5,5,185,5,5,16,178,5,5,195,229,5,5,18,226,5,5,106,191,5,5,179,165,5,5,63,164,5,5,254,189,5,5,240,215,5,5,195,196,5,5,22,191,5,5,15,238,5,5,222,189,5,5,11,216,5,5,152,205,5,5,99,186,5,5,139,163,5,5,10,205,5,5,6,242,5,5,119,224,5,5,64,216,5,5,153,205,5,5,44,213,5,5,125,194,5,5,127,234,5,5,24,184,5,5,140,185,5,5,11,235,5,5,235,211,5,5,94,167,5,5,118,190,5,5,58,233,5,5,181,190,5,5,67,232,5,5,26,184,5,5,213,207,5,5,124,180,5,5,125,229,5,5,61,186,5,5,162,205,5,5,122,191,5,5,212,239,5,5,158,220,5,5,194,177,5,5,206,219,5,5,168,166,5,5,9,188,5,5,240,181,5,5,68,210,5,5,73,226,5,5,46,228,5,5,54,202,5,5,11,173,5,5,98,177,5,5,162,170,5,5,213,184,5,5,26,244,5,5,207,223,5,5,147,216,5,5,237,191,5,5,131,166,5,5,138,179,5,5,56,207,5,5,210,178,5,5,228,223,5,5,206,222,5,5,238,182,5,5,208,163,5,5,190,192,5,5,90,164,5,5,120,210,5,5,236,241,5,5,202,210,5,5,21,208,5,5,253,244,5,5,56,192,5,5,237,195,5,5,153,173,5,5,181,199,5,5,217,179,5,5,53,184,5,5,12,163,5,5,69,248,5,5,123,210,5,5,76,221,5,5,124,210,5,5,43,193,5,5,47,163,5,5,146,237,5,5,188,166,5,5,137,166,5,5,83,163,5,5,214,248,5,5,55,233,5,5,91,172,5,5,25,180,5,5,74,203,5,5,167,177,5,5,43,242,5,5,252,180,5,5,84,163,5,5,106,189,5,5,182,229,5,5,75,210,5,5,52,170,5,5,46,164,5,5,65,227,5,5,164,217,5,5,35,179,5,5,18,165,5,5,155,183,5,5,212,167,5,5,62,178,5,5,152,216,5,5,127,195,5,5,201,185,5,5,60,239,5,5,204,170,5,5,37,241,5,5,82,242,5,5,110,225,5,5,50,203,5,5,63,241,5,5,51,183,5,5,235,218,5,5,70,176,5,5,179,182,5,5,70,191,5,5,104,177,5,5,129,243,5,5,88,195,5,5,85,219,5,5,143,221,5,5,79,213,5,5,218,177,5,5,121,177,5,5,53,215,5,5,114,199,5,5,69,212,5,5,135,227,5,5,72,197,5,5,105,177,5,5,207,191,5,5,35,172,5,5,85,221,5,5,227,235,5,5,41,204,5,5,101,239,5,5,132,224,5,5,179,226,5,5,51,180,5,5,232,238,5,5,182,243,5,5,187,230,5,5,240,221,5,5,177,185,5,5,6,169,5,5,30,245,5,5,55,185,5,5,97,179,5,5,195,188,5,5,249,195,5,5,147,214,5,5,227,236,5,5,5,187,5,5,207,232,5,5,159,225,5,5,147,193,5,5,47,192,5,5,167,237,5,5,19,215,5,5,204,234,5,5,109,191,5,5,209,173,5,5,3,216,5,5,89,188,5,5,79,195,5,5,35,205,5,5,12,231,5,5,155,180,5,5,117,186,5,5,6,211,5,5,219,206,5,5,135,237,5,5,39,211,5,5,167,219,5,5,167,184,5,5,205,234,5,5,33,170,5,5,120,164,5,5,207,208,5,5,62,175,5,5,67,195,5,5,210,196,5,5,247,224,5,5,233,212,5,5,93,193,5,5,97,190,5,5,38,226,5,5,84,222,5,5,193,205,5,5,2,219,5,5,58,215,5,5,236,207,5,5,167,199,5,5,239,166,5,5,252,179,5,5,223,177,5,5,111,205,5,5,78,207,5,5,11,171,5,5,138,231,5,5,114,209,5,5,116,244,5,5,100,195,5,5,47,211,5,5,129,235,5,5,246,237,5,5,137,223,5,5,140,209,5,5,214,222,5,5,174,178,5,5,54,236,5,5,56,201,5,5,183,200,5,5,31,238,5,5,41,178,5,5,245,169,5,5,12,186,5,5,143,231,5,5,214,172,5,5,222,169,5,5,137,169,5,5,2,221,5,5,116,163,5,5,187,191,5,5,250,183,5,5,117,180,5,5,225,207,5,5,251,183,5,5,227,182,5,5,58,188,5,5,34,192,5,5,171,164,5,5,139,240,5,5,33,203,5,5,23,166,5,5,79,231,5,5,161,165,5,5,60,180,5,5,152,170,5,5,100,190,5,5,199,164,5,5,229,249,5,5,180,206,5,5,159,176,5,5,227,232,5,5,176,217,5,5,64,188,5,5,101,224,5,5,185,207,5,5,26,188,5,5,239,168,5,5,244,189,5,5,147,178,5,5,36,186,5,5,2,169,5,5,7,235,5,5,52,211,5,5,143,176,5,5,214,199,5,5,97,185,5,5,194,200,5,5,68,222,5,5,160,188,5,5,181,240,5,5,160,223,5,5,174,165,5,5,2,185,5,5,116,224,5,5,63,216,5,5,35,221,5,5,6,225,5,5,152,204,5,5,134,238,5,5,46,177,5,5,183,211,5,5,16,188,5,5,60,171,5,5,34,221,5,5,163,170,5,5,45,169,5,5,223,229,5,5,77,228,5,5,194,199,5,5,164,170,5,5,175,242,5,5,26,165,5,5,132,198,5,5,27,165,5,5,131,228,5,5,80,195,5,5,239,195,5,5,180,164,5,5,161,201,5,5,42,231,5,5,105,236,5,5,103,215,5,5,104,215,5,5,216,204,5,5,9,172,5,5,175,213,5,5,220,229,5,5,210,175,5,5,88,219,5,5,81,183,5,5,87,220,5,5,144,167,5,5,224,213,5,5,130,189,5,5,246,165,5,5,50,165,5,5,43,231,5,5,70,238,5,5,74,194,5,5,184,191,5,5,185,191,5,5,134,172,5,5,226,225,5,5,186,201,5,5,233,193,5,5,13,172,5,5,221,235,5,5,237,196,5,5,146,186,5,5,53,191,5,5,159,181,5,5,165,227,5,5,4,207,5,5,226,248,5,5,227,248,5,5,142,224,5,5,255,211,5,5,31,189,5,5,250,224,5,5,225,227,5,5,238,196,5,5,148,242,5,5,41,247,5,5,193,242,5,5,2,238,5,5,3,201,5,5,143,248,5,5,42,247,5,5,111,216,5,5,5,164,5,5,191,201,5,5,3,212,5,5,230,241,5,5,44,247,5,5,96,164,5,5,251,238,5,5,39,246,5,5,154,243,5,5,66,196,5,5,36,212,5,5,37,186,5,5,238,177,5,5,115,212,5,5,221,173,5,5,94,181,5,5,7,184,5,5,83,179,5,5,104,195,5,5,144,197,5,5,38,212,5,5,138,226,5,5,78,194,5,5,217,175,5,5,20,209,5,5,110,196,5,5,106,180,5,5,80,194,5,5,83,168,5,5,192,195,5,5,159,213,5,5,143,200,5,5,152,224,5,5,54,168,5,5,120,176,5,5,200,200,5,5,87,179,5,5,46,247,5,5,42,179,5,5,159,170,5,5,221,229,5,5,75,228,5,5,21,243,5,5,117,198,5,5,247,164,5,5,59,247,5,5,134,226,5,5,40,231,5,5,7,246,5,5,83,215,5,5,136,201,5,5,194,204,5,5,252,171,5,5,210,195,5,5,171,170,5,5,83,219,5,5,78,183,5,5,214,193,5,5,25,247,5,5,56,179,5,5,3,172,5,5,47,191,5,5,87,195,5,5,127,172,5,5,164,191,5,5,101,197,5,5,227,196,5,5,130,204,5,5,215,248,5,5,108,186,5,5,234,177,5,5,80,248,5,5,136,242,5,5,243,224,5,5,126,213,5,5,30,247,5,5,251,200,5,5,176,242,5,5,222,237,5,5,133,224,5,5,23,186,5,5,252,211,5,5,89,200,5,5,59,196,5,5,22,212,5,5,130,197,5,5,89,181,5,5,35,175,5,5,9,212,5,5,108,198,5,5,190,200,5,5,195,174,5,5,185,174,5,5,18,185,5,5,131,178,5,5,21,216,5,5,57,210,5,5,86,245,5,5,235,191,5,5,179,218,5,5,111,243,5,5,19,244,5,5,190,175,5,5,194,237,5,5,12,229,5,5,85,164,5,5,234,166,5,5,244,195,5,5,163,249,5,5,25,231,5,5,152,218,5,5,236,167,5,5,121,206,5,5,159,173,5,5,20,244,5,5,112,243,5,5,235,220,5,5,98,203,5,5,53,225,5,5,198,237,5,5,162,211,5,5,208,176,5,5,231,232,5,5,7,233,5,5,163,177,5,5,169,189,5,5,134,237,5,5,26,182,5,5,27,182,5,5,183,163,5,5,62,166,5,5,196,174,5,5,160,202,5,5,7,190,5,5,30,191,5,5,184,224,5,5,143,216,5,5,104,178,5,5,8,186,5,5,108,169,5,5,56,206,5,5,68,229,5,5,105,178,5,5,190,215,5,5,32,239,5,5,11,194,5,5,146,247,5,5,218,191,5,5,76,228,5,5,49,208,5,5,195,209,5,5,150,216,5,5,99,226,5,5,206,174,5,5,19,165,5,5,195,213,5,5,78,228,5,5,22,229,5,5,215,218,5,5,215,168,5,5,195,175,5,5,97,249,5,5,245,220,5,5,156,225,5,5,198,215,5,5,178,175,5,5,235,183,5,5,164,249,5,5,147,215,5,5,236,166,5,5,208,172,5,5,100,232,5,5,85,240,5,5,138,178,5,5,205,190,5,5,130,243,5,5,212,206,5,5,35,226,5,5,195,224,5,5,2,168,5,5,123,189,5,5,185,179,5,5,203,215,5,5,17,190,5,5,24,229,5,5,149,215,5,5,137,243,5,5,195,221,5,5,40,244,5,5,179,230,5,5,202,213,5,5,169,226,5,5,46,243,5,5,138,243,5,5,146,229,5,5,156,176,5,5,205,247,5,5,240,190,5,5,236,245,5,5,237,245,5,5,242,183,5,5,139,178,5,5,10,237,5,5,234,238,5,5,48,201,5,5,114,203,5,5,12,237,5,5,213,243,5,5,246,191,5,5,241,242,5,5,23,200,5,5,180,191,5,5,170,249,5,5,115,245,5,5,129,196,5,5,66,238,5,5,142,213,5,5,86,180,5,5,208,202,5,5,53,221,5,5,147,175,5,5,111,238,5,5,143,213,5,5,219,243,5,5,220,235,5,5,27,230,5,5,237,188,5,5,80,182,5,5,140,176,5,5,68,204,5,5,39,237,5,5,13,237,5,5,158,238,5,5,161,215,5,5,116,173,5,5,195,183,5,5,45,239,5,5,13,202,5,5,153,175,5,5,64,213,5,5,228,243,5,5,175,237,5,5,35,200,5,5,37,191,5,5,37,213,5,5,43,187,5,5,108,187,5,5,114,187,5,5,81,222,5,5,253,198,5,5,79,218,5,5,80,237,5,5,248,207,5,5,103,183,5,5,86,240,5,5,18,212,5,5,47,243,5,5,232,210,5,5,84,210,5,5,44,218,5,5,14,241,5,5,77,202,5,5,89,193,5,5,178,200,5,5,3,219,5,5,94,192,5,5,4,208,5,5,185,233,5,5,217,249,5,5,220,206,5,5,166,225,5,5,239,198,5,5,224,231,5,5,149,190,5,5,229,247,5,5,38,224,5,5,87,177,5,5,8,237,5,5,156,198,5,5,212,245,5,5,238,229,5,5,116,194,5,5,179,225,5,5,229,231,5,5,232,249,5,5,17,202,5,5,27,213,5,5,45,224,5,5,109,188,5,5,222,186,5,5,109,183,5,5,73,217,5,5,232,231,5,5,121,202,5,5,122,202,5,5,8,248,5,5,188,247,5,5,75,217,5,5,231,182,5,5,236,172,5,5,230,235,5,5,93,172,5,5,32,247,5,5,86,173,5,5,109,167,5,5,143,249,5,5,86,187,5,5,106,223,5,5,11,244,5,5,131,189,5,5,87,185,5,5,226,238,5,5,10,164,5,5,116,245,5,5,175,177,5,5,106,176,5,5,78,199,5,5,117,245,5,5,108,177,5,5,206,216,5,5,209,202,5,5,106,172,5,5,204,224,5,5,164,214,5,5,120,219,5,5,160,181,5,5,3,221,5,5,6,167,5,5,225,169,5,5,137,189,5,5,146,208,5,5,25,220,5,5,209,199,5,5,166,227,5,5,167,172,5,5,174,201,5,5,91,220,5,5,150,243,5,5,173,183,5,5,250,221,5,5,149,182,5,5,244,188,5,5,179,189,5,5,26,179,5,5,130,244,5,5,126,245,5,5,150,189,5,5,237,229,5,5,151,189,5,5,219,213,5,5,176,201,5,5,155,243,5,5,187,169,5,5,188,169,5,5,176,249,5,5,107,188,5,5,27,171,5,5,32,166,5,5,128,245,5,5,158,246,5,5,70,196,5,5,199,243,5,5,67,213,5,5,187,240,5,5,51,238,5,5,63,176,5,5,150,180,5,5,99,236,5,5,165,248,5,5,76,190,5,5,10,191,5,5,119,175,5,5,118,202,5,5,113,167,5,5,55,244,5,5,29,163,5,5,233,167,5,5,44,246,5,5,229,173,5,5,161,213,5,5,244,202,5,5,167,169,5,5,255,170,5,5,2,171,5,5,111,185,5,5,165,187,5,5,230,199,5,5,53,238,5,5,225,172,5,5,122,175,5,5,23,191,5,5,160,189,5,5,90,238,5,5,232,173,5,5,169,187,5,5,38,164,5,5,179,197,5,5,175,197,5,5,177,197,5,5,97,166,5,5,89,211,5,5,90,211,5,5,167,206,5,5,66,181,5,5,187,220,5,5,172,206,5,5,70,225,5,5,141,211,5,5,177,206,5,5,179,206,5,5,181,177,5,5,181,206,5,5,70,181,5,5,153,172,5,5,163,172,5,5,130,195,5,5,52,171,5,5,217,171,5,5,216,171,5,5,53,164,5,5,108,241,5,5,116,181,5,5,146,200,5,5,135,241,5,5,165,191,5,5,199,177,5,5,149,223,5,5,130,210,5,5,141,230,5,5,175,176,5,5,40,178,5,5,109,245,5,5,142,230,5,5,238,210,5,5,231,205,5,5,49,217,5,5,57,184,5,5,14,163,5,5,215,243,5,5,203,235,5,5,250,182,5,5,131,169,5,5,238,232,5,5,36,175,5,5,111,164,5,5,126,240,5,5,246,241,5,5,191,179,5,5,236,163,5,5,59,203,5,5,170,201,5,5,22,167,5,5,12,244,5,5,99,166,5,5,148,243,5,5,188,191,5,5,193,179,5,5,187,203,5,5,32,214,5,5,215,238,5,5,216,238,5,5,165,198,5,5,228,194,5,5,88,209,5,5,37,175,5,5,171,209,5,5,137,181,5,5,116,170,5,5,229,244,5,5,7,237,5,5,38,181,5,5,203,209,5,5,177,217,5,5,67,197,5,5,194,164,5,5,80,179,5,5,4,229,5,5,80,166,5,5,67,196,5,5,230,206,5,5,8,185,5,5,106,214,5,5,47,230,5,5,151,164,5,5,23,239,5,5,237,209,5,5,238,209,5,5,145,197,5,5,230,214,5,5,109,172,5,5,231,206,5,5,248,204,5,5,209,165,5,5,162,176,5,5,249,204,5,5,14,247,5,5,171,179,5,5,65,192,5,5,84,179,5,5,243,163,5,5,39,214,5,5,76,167,5,5,196,191,5,5,103,165,5,5,71,196,5,5,65,180,5,5,251,185,5,5,61,194,5,5,183,209,5,5,54,217,5,5,27,202,5,5,6,205,5,5,33,206,5,5,164,224,5,5,43,175,5,5,94,199,5,5,175,215,5,5,113,210,5,5,18,178,5,5,163,245,5,5,11,205,5,5,62,186,5,5,12,246,5,5,143,230,5,5,134,174,5,5,12,170,5,5,111,212,5,5,189,191,5,5,98,246,5,5,204,209,5,5,102,198,5,5,49,225,5,5,73,196,5,5,54,230,5,5,203,249,5,5,205,227,5,5,107,246,5,5,195,191,5,5,178,163,5,5,172,179,5,5,66,192,5,5,205,249,5,5,19,192,5,5,104,165,5,5,112,246,5,5,56,237,5,5,15,178,5,5,164,245,5,5,19,178,5,5,2,246,5,5,125,230,5,5,92,174,5,5,94,198,5,5,86,246,5,5,191,249,5,5,162,179,5,5,149,204,5,5,153,204,5,5,62,215,5,5,97,214,5,5,69,215,5,5,20,202,5,5,118,243,5,5,223,231,5,5,192,249,5,5,250,227,5,5,25,185,5,5,174,167,5,5,76,201,5,5,131,244,5,5,206,249,5,5,181,167,5,5,222,238,5,5,157,243,5,5,90,216,5,5,95,199,5,5,88,241,5,5,202,177,5,5,129,211,5,5,116,196,5,5,104,216,5,5,230,229,5,5,66,198,5,5,201,216,5,5,182,239,5,5,204,216,5,5,184,237,5,5,127,237,5,5,150,196,5,5,208,208,5,5,187,198,5,5,112,248,5,5,198,246,5,5,75,164,5,5,216,178,5,5,182,176,5,5,244,175,5,5,91,167,5,5,176,166,5,5,172,189,5,5,196,223,5,5,128,206,5,5,151,185,5,5,138,197,5,5,142,209,5,5,248,237,5,5,172,237,5,5,99,246,5,5,33,214,5,5,63,196,5,5,195,228,5,5,194,239,5,5,198,228,5,5,185,197,5,5,129,178,5,5,36,248,5,5,165,168,5,5,152,185,5,5,179,174,5,5,62,203,5,5,215,179,5,5,123,200,5,5,134,196,5,5,63,203,5,5,87,190,5,5,177,181,5,5,77,225,5,5,219,244,5,5,123,249,5,5,29,199,5,5,153,198,5,5,135,206,5,5,81,182,5,5,82,182,5,5,142,168,5,5,72,185,5,5,83,182,5,5,158,231,5,5,157,231,5,5,42,226,5,5,229,177,5,5,73,185,5,5,13,180,5,5,154,198,5,5,99,210,5,5,30,195,5,5,254,234,5,5,154,217,5,5,212,210,5,5,198,239,5,5,7,236,5,5,194,180,5,5,176,237,5,5,8,238,5,5,196,242,5,5,67,247,5,5,183,195,5,5,245,249,5,5,129,222,5,5,197,242,5,5,166,215,5,5,34,216,5,5,247,239,5,5,108,249,5,5,122,236,5,5,137,177,5,5,138,177,5,5,49,206,5,5,111,196,5,5,157,185,5,5,190,185,5,5,91,168,5,5,221,245,5,5,121,170,5,5,171,234,5,5,207,241,5,5,20,198,5,5,184,209,5,5,98,193,5,5,25,218,5,5,11,243,5,5,148,200,5,5,165,224,5,5,209,230,5,5,4,171,5,5,35,166,5,5,176,215,5,5,150,168,5,5,223,189,5,5,88,186,5,5,25,184,5,5,97,212,5,5,81,241,5,5,201,177,5,5,125,211,5,5,62,198,5,5,98,216,5,5,228,229,5,5,187,216,5,5,190,216,5,5,195,246,5,5,82,193,5,5,212,178,5,5,182,208,5,5,71,164,5,5,125,237,5,5,183,198,5,5,70,248,5,5,196,189,5,5,171,189,5,5,173,166,5,5,126,206,5,5,163,203,5,5,54,203,5,5,174,181,5,5,122,197,5,5,209,244,5,5,104,208,5,5,11,195,5,5,183,239,5,5,141,168,5,5,98,200,5,5,78,182,5,5,138,198,5,5,210,244,5,5,211,244,5,5,21,195,5,5,184,180,5,5,244,249,5,5,249,237,5,5,124,222,5,5,191,242,5,5,173,237,5,5,2,184,5,5,104,170,5,5,134,177,5,5,120,236,5,5,18,198,5,5,156,185,5,5,161,224,5,5,207,230,5,5,149,168,5,5,95,212,5,5,199,173,5,5,148,165,5,5,138,193,5,5,128,174,5,5,178,213,5,5,122,220,5,5,153,165,5,5,214,235,5,5,7,163,5,5,121,179,5,5,205,187,5,5,117,193,5,5,178,217,5,5,241,227,5,5,99,207,5,5,165,165,5,5,147,235,5,5,108,246,5,5,52,244,5,5,204,241,5,5,62,236,5,5,105,195,5,5,63,236,5,5,253,172,5,5,77,188,5,5,69,213,5,5,111,188,5,5,76,168,5,5,77,168,5,5,79,188,5,5,175,165,5,5,176,165,5,5,177,165,5,5,4,188,5,5,192,165,5,5,250,235,5,5,233,173,5,5,6,215,5,5,186,173,5,5,21,244,5,5,108,220,5,5,141,165,5,5,209,235,5,5,75,207,5,5,122,235,5,5,55,236,5,5,189,241,5,5,53,188,5,5,71,168,5,5,162,165,5,5,163,165,5,5,154,172,5,5,255,172,5,5,173,172,5,5,151,172,5,5,241,226,5,5,242,226,5,5,64,234,5,5,220,201,5,5,216,177,5,5,178,235,5,5,16,182,5,5,82,220,5,5,70,237,5,5,81,216,5,5,145,182,5,5,144,230,5,5,97,248,5,5,5,208,5,5,100,223,5,5,216,243,5,5,63,173,5,5,64,173,5,5,73,237,5,5,214,243,5,5,221,179,5,5,184,239,5,5,19,233,5,5,51,165,5,5,201,203,5,5,163,179,5,5,91,188,5,5,190,233,5,5,8,181,5,5,189,235,5,5,27,164,5,5,88,227,5,5,113,178,5,5,200,197,5,5,147,230,5,5,112,181,5,5,56,204,5,5,60,203,5,5,78,166,5,5,190,241,5,5,192,182,5,5,191,233,5,5,84,216,5,5,73,244,5,5,9,208,5,5,62,239,5,5,61,243,5,5,33,185,5,5,244,212,5,5,71,234,5,5,60,163,5,5,37,183,5,5,250,237,5,5,145,166,5,5,69,208,5,5,214,175,5,5,187,236,5,5,230,247,5,5,96,227,5,5,196,241,5,5,12,201,5,5,190,193,5,5,102,227,5,5,132,205,5,5,107,222,5,5,79,166,5,5,228,215,5,5,146,166,5,5,119,241,5,5,10,180,5,5,169,172,5,5,28,221,5,5,149,246,5,5,93,194,5,5,3,238,5,5,185,184,5,5,202,249,5,5,32,199,5,5,72,201,5,5,10,181,5,5,129,200,5,5,244,204,5,5,42,198,5,5,80,238,5,5,102,180,5,5,90,173,5,5,153,246,5,5,76,193,5,5,141,223,5,5,129,237,5,5,105,180,5,5,130,163,5,5,17,192,5,5,155,213,5,5,177,196,5,5,108,188,5,5,61,236,5,5,198,179,5,5,131,241,5,5,158,249,5,5,84,169,5,5,107,180,5,5,119,170,5,5,90,165,5,5,163,248,5,5,4,215,5,5,206,205,5,5,100,236,5,5,180,196,5,5,152,222,5,5,123,228,5,5,119,223,5,5,64,176,5,5,197,240,5,5,24,202,5,5,25,230,5,5,84,225,5,5,237,249,5,5,173,179,5,5,160,246,5,5,91,216,5,5,100,220,5,5,91,173,5,5,203,197,5,5,3,171,5,5,92,243,5,5,90,169,5,5,120,224,5,5,92,216,5,5,119,190,5,5,166,232,5,5,135,183,5,5,226,226,5,5,212,177,5,5,200,201,5,5,255,181,5,5,67,180,5,5,140,182,5,5,109,213,5,5,126,230,5,5,56,248,5,5,85,223,5,5,49,173,5,5,208,243,5,5,79,205,5,5,45,227,5,5,17,164,5,5,169,235,5,5,99,178,5,5,141,239,5,5,56,239,5,5,18,230,5,5,79,216,5,5,102,197,5,5,32,185,5,5,34,204,5,5,185,212,5,5,68,166,5,5,48,163,5,5,201,175,5,5,211,237,5,5,186,247,5,5,34,183,5,5,50,208,5,5,180,193,5,5,7,201,5,5,204,215,5,5,85,194,5,5,134,223,5,5,159,196,5,5,56,193,5,5,42,236,5,5,82,224,5,5,103,241,5,5,69,169,5,5,102,163,5,5,47,188,5,5,250,214,5,5,199,205,5,5,112,170,5,5,92,236,5,5,147,222,5,5,133,183,5,5,17,228,5,5,117,196,5,5,173,193,5,5,41,216,5,5,106,173,5,5,111,163,5,5,191,183,5,5,63,165,5,5,119,163,5,5,230,181,5,5,70,198,5,5,170,172,5,5,245,204,5,5,219,238,5,5,85,238,5,5,248,174,5,5,72,215,5,5,125,249,5,5,10,216,5,5,123,173,5,5,133,168,5,5,12,216,5,5,34,169,5,5,98,248,5,5,241,173,5,5,139,198,5,5,176,176,5,5,38,182,5,5,149,219,5,5,47,223,5,5,235,217,5,5,243,221,5,5,91,218,5,5,4,167,5,5,32,216,5,5,13,230,5,5,215,235,5,5,172,249,5,5,35,247,5,5,126,218,5,5,45,176,5,5,50,191,5,5,60,242,5,5,112,163,5,5,28,164,5,5,168,207,5,5,42,182,5,5,127,240,5,5,180,211,5,5,36,247,5,5,184,211,5,5,87,208,5,5,190,166,5,5,215,219,5,5,18,249,5,5,243,166,5,5,65,220,5,5,88,207,5,5,248,221,5,5,145,184,5,5,227,206,5,5,224,167,5,5,184,232,5,5,95,203,5,5,138,189,5,5,229,220,5,5,123,179,5,5,237,174,5,5,74,244,5,5,21,227,5,5,73,165,5,5,43,182,5,5,44,182,5,5,190,235,5,5,59,188,5,5,57,169,5,5,116,168,5,5,196,179,5,5,29,219,5,5,84,231,5,5,141,180,5,5,25,179,5,5,196,217,5,5,49,212,5,5,170,228,5,5,88,208,5,5,63,239,5,5,201,197,5,5,120,163,5,5,156,221,5,5,152,243,5,5,150,190,5,5,75,220,5,5,58,176,5,5,104,214,5,5,68,188,5,5,7,207,5,5,120,237,5,5,213,210,5,5,211,170,5,5,128,186,5,5,155,198,5,5,232,181,5,5,125,217,5,5,101,182,5,5,74,208,5,5,186,237,5,5,144,225,5,5,135,216,5,5,43,238,5,5,65,190,5,5,86,222,5,5,29,220,5,5,206,227,5,5,118,168,5,5,221,196,5,5,199,179,5,5,60,185,5,5,117,233,5,5,73,195,5,5,233,208,5,5,234,208,5,5,73,243,5,5,171,172,5,5,26,236,5,5,253,242,5,5,197,191,5,5,231,241,5,5,129,245,5,5,125,168,5,5,72,235,5,5,126,168,5,5,145,210,5,5,172,172,5,5,78,201,5,5,146,210,5,5,173,199,5,5,246,247,5,5,197,180,5,5,89,212,5,5,222,213,5,5,119,233,5,5,140,196,5,5,49,230,5,5,148,235,5,5,120,193,5,5,49,182,5,5,247,193,5,5,64,236,5,5,107,210,5,5,136,225,5,5,48,219,5,5,78,188,5,5,183,167,5,5,145,180,5,5,70,213,5,5,50,234,5,5,10,178,5,5,85,243,5,5,80,249,5,5,112,232,5,5,27,236,5,5,124,228,5,5,234,186,5,5,49,219,5,5,242,229,5,5,77,190,5,5,71,213,5,5,107,190,5,5,30,221,5,5,152,169,5,5,160,238,5,5,72,234,5,5,178,165,5,5,73,235,5,5,195,211,5,5,107,165,5,5,50,219,5,5,170,248,5,5,219,216,5,5,128,199,5,5,63,163,5,5,196,236,5,5,185,214,5,5,2,189,5,5,154,220,5,5,198,178,5,5,82,188,5,5,51,182,5,5,142,234,5,5,185,177,5,5,22,204,5,5,6,181,5,5,93,243,5,5,115,190,5,5,102,220,5,5,112,206,5,5,206,240,5,5,136,241,5,5,18,182,5,5,134,168,5,5,73,220,5,5,98,243,5,5,25,191,5,5,56,191,5,5,149,180,5,5,65,216,5,5,249,202,5,5,249,229,5,5,16,207,5,5,74,213,5,5,166,200,5,5,245,186,5,5,181,165,5,5,29,169,5,5,49,248,5,5,19,182,5,5,212,217,5,5,32,223,5,5,156,211,5,5,9,230,5,5,69,163,5,5,46,191,5,5,183,232,5,5,15,227,5,5,170,235,5,5,197,174,5,5,198,206,5,5,97,232,5,5,218,221,5,5,28,182,5,5,143,184,5,5,87,203,5,5,39,240,5,5,85,175,5,5,127,214,5,5,46,169,5,5,119,243,5,5,244,203,5,5,111,199,5,5,136,190,5,5,196,197,5,5,107,168,5,5,142,165,5,5,171,186,5,5,140,225,5,5,35,243,5,5,121,216,5,5,204,210,5,5,51,208,5,5,193,208,5,5,194,208,5,5,63,195,5,5,83,222,5,5,90,233,5,5,155,236,5,5,65,234,5,5,124,168,5,5,246,218,5,5,123,196,5,5,18,236,5,5,110,245,5,5,148,238,5,5,48,188,5,5,89,210,5,5,98,228,5,5,154,165,5,5,99,190,5,5,52,235,5,5,143,224,5,5,69,220,5,5,236,202,5,5,240,229,5,5,59,216,5,5,44,193,5,5,75,246,5,5,87,246,5,5,88,246,5,5,219,247,5,5,162,192,5,5,118,240,5,5,12,239,5,5,213,179,5,5,230,203,5,5,55,164,5,5,240,163,5,5,162,233,5,5,206,180,5,5,221,176,5,5,17,196,5,5,186,197,5,5,149,209,5,5,39,198,5,5,50,196,5,5,193,191,5,5,93,182,5,5,244,192,5,5,117,168,5,5,95,165,5,5,31,195,5,5,87,209,5,5,247,247,5,5,18,237,5,5,250,185,5,5,134,163,5,5,181,214,5,5,157,164,5,5,135,163,5,5,165,233,5,5,187,196,5,5,44,166,5,5,87,169,5,5,5,188,5,5,252,185,5,5,186,214,5,5,17,178,5,5,181,232,5,5,19,237,5,5,209,180,5,5,46,166,5,5,188,196,5,5,224,189,5,5,4,192,5,5,7,192,5,5,199,209,5,5,116,195,5,5,189,209,5,5,191,185,5,5,38,236,5,5,143,165,5,5,208,196,5,5,211,196,5,5,177,176,5,5,179,173,5,5,252,214,5,5,67,230,5,5,34,170,5,5,46,176,5,5,215,196,5,5,39,166,5,5,143,172,5,5,36,181,5,5,225,167,5,5,151,231,5,5,144,172,5,5,70,230,5,5,234,180,5,5,56,164,5,5,74,165,5,5,39,170,5,5,138,174,5,5,44,239,5,5,85,231,5,5,186,211,5,5,211,194,5,5,254,214,5,5,64,196,5,5,220,202,5,5,176,167,5,5,3,222,5,5,242,227,5,5,218,236,5,5,238,180,5,5,115,187,5,5,41,166,5,5,118,233,5,5,192,176,5,5,179,167,5,5,108,237,5,5,100,221,5,5,88,212,5,5,120,233,5,5,235,229,5,5,64,205,5,5,62,182,5,5,36,199,5,5,254,184,5,5,139,204,5,5,245,208,5,5,164,188,5,5,231,220,5,5,45,166,5,5,185,167,5,5,59,169,5,5,86,236,5,5,122,170,5,5,123,170,5,5,128,236,5,5,220,216,5,5,213,187,5,5,110,210,5,5,109,210,5,5,132,183,5,5,201,200,5,5,72,196,5,5,132,184,5,5,47,166,5,5,215,187,5,5,161,230,5,5,202,175,5,5,213,175,5,5,82,183,5,5,192,201,5,5,156,213,5,5,220,175,5,5,112,198,5,5,221,175,5,5,222,175,5,5,140,204,5,5,41,225,5,5,179,248,5,5,180,248,5,5,170,191,5,5,70,243,5,5,180,174,5,5,251,210,5,5,245,193,5,5,121,233,5,5,112,188,5,5,248,193,5,5,243,228,5,5,171,248,5,5,13,194,5,5,10,170,5,5,210,202,5,5,217,208,5,5,129,191,5,5,131,196,5,5,11,201,5,5,9,163,5,5,204,166,5,5,15,170,5,5,212,216,5,5,250,242,5,5,172,214,5,5,66,189,5,5,159,248,5,5,84,182,5,5,150,208,5,5,105,247,5,5,67,189,5,5,155,246,5,5,131,192,5,5,27,223,5,5,78,168,5,5,108,165,5,5,88,169,5,5,144,202,5,5,221,216,5,5,62,224,5,5,17,243,5,5,103,220,5,5,189,247,5,5,134,175,5,5,93,230,5,5,175,203,5,5,35,163,5,5,171,201,5,5,17,182,5,5,109,177,5,5,139,202,5,5,36,217,5,5,174,237,5,5,251,237,5,5,143,227,5,5,189,198,5,5,147,182,5,5,138,169,5,5,231,203,5,5,196,228,5,5,95,164,5,5,68,249,5,5,11,168,5,5,240,189,5,5,37,247,5,5,25,199,5,5,198,189,5,5,216,231,5,5,164,173,5,5,111,173,5,5,253,182,5,5,62,242,5,5,127,168,5,5,156,169,5,5,142,197,5,5,215,213,5,5,187,211,5,5,101,198,5,5,228,167,5,5,141,189,5,5,46,182,5,5,61,163,5,5,42,210,5,5,205,168,5,5,142,174,5,5,82,165,5,5,207,233,5,5,150,246,5,5,228,206,5,5,88,177,5,5,26,163,5,5,65,242,5,5,145,194,5,5,229,167,5,5,68,184,5,5,131,216,5,5,125,179,5,5,58,164,5,5,242,174,5,5,102,219,5,5,96,207,5,5,27,193,5,5,116,227,5,5,27,179,5,5,123,175,5,5,81,179,5,5,190,203,5,5,95,229,5,5,58,198,5,5,87,216,5,5,46,239,5,5,252,238,5,5,40,246,5,5,246,219,5,5,157,221,5,5,248,243,5,5,207,187,5,5,151,190,5,5,205,182,5,5,207,180,5,5,177,240,5,5,96,166,5,5,104,246,5,5,14,204,5,5,19,196,5,5,242,193,5,5,70,215,5,5,194,191,5,5,55,200,5,5,224,185,5,5,2,175,5,5,131,195,5,5,32,215,5,5,74,178,5,5,38,208,5,5,195,180,5,5,215,171,5,5,243,227,5,5,103,219,5,5,219,236,5,5,214,210,5,5,245,247,5,5,38,183,5,5,160,219,5,5,146,194,5,5,245,192,5,5,199,236,5,5,38,245,5,5,44,210,5,5,72,228,5,5,220,168,5,5,241,200,5,5,40,181,5,5,15,187,5,5,145,227,5,5,146,227,5,5,132,195,5,5,248,170,5,5,146,225,5,5,172,187,5,5,121,232,5,5,168,213,5,5,23,250,5,5,175,183,5,5,159,231,5,5,237,208,5,5,101,221,5,5,89,216,5,5,39,183,5,5,113,226,5,5,237,202,5,5,91,177,5,5,121,209,5,5,97,193,5,5,41,220,5,5,246,178,5,5,61,185,5,5,223,172,5,5,176,183,5,5,188,240,5,5,222,196,5,5,71,190,5,5,181,204,5,5,253,224,5,5,107,206,5,5,216,190,5,5,153,189,5,5,110,232,5,5,229,186,5,5,18,171,5,5,122,233,5,5,45,219,5,5,71,184,5,5,100,199,5,5,187,248,5,5,17,177,5,5,221,226,5,5,175,228,5,5,17,201,5,5,198,180,5,5,43,198,5,5,137,216,5,5,162,221,5,5,3,185,5,5,123,233,5,5,57,232,5,5,211,165,5,5,212,165,5,5,243,200,5,5,90,212,5,5,59,232,5,5,252,245,5,5,253,245,5,5,251,247,5,5,92,226,5,5,50,230,5,5,64,177,5,5,80,201,5,5,210,188,5,5,3,243,5,5,239,209,5,5,240,209,5,5,69,205,5,5,217,164,5,5,11,238,5,5,54,244,5,5,250,174,5,5,9,236,5,5,148,192,5,5,182,213,5,5,63,182,5,5,37,199,5,5,118,227,5,5,245,230,5,5,184,217,5,5,16,247,5,5,194,210,5,5,21,198,5,5,11,245,5,5,165,173,5,5,28,236,5,5,80,188,5,5,40,169,5,5,8,227,5,5,222,226,5,5,81,194,5,5,163,231,5,5,147,180,5,5,51,179,5,5,208,241,5,5,181,237,5,5,246,249,5,5,148,210,5,5,246,208,5,5,17,247,5,5,246,230,5,5,227,228,5,5,167,188,5,5,127,238,5,5,30,185,5,5,37,200,5,5,22,172,5,5,245,202,5,5,42,181,5,5,196,211,5,5,7,205,5,5,176,228,5,5,124,170,5,5,73,213,5,5,45,210,5,5,191,165,5,5,246,202,5,5,242,202,5,5,181,221,5,5,34,206,5,5,5,215,5,5,130,222,5,5,238,249,5,5,31,221,5,5,225,195,5,5,77,217,5,5,120,165,5,5,173,248,5,5,197,211,5,5,116,216,5,5,64,163,5,5,81,204,5,5,248,217,5,5,197,236,5,5,82,201,5,5,77,233,5,5,127,228,5,5,128,228,5,5,2,173,5,5,62,194,5,5,3,189,5,5,249,217,5,5,154,171,5,5,101,213,5,5,212,232,5,5,118,216,5,5,142,173,5,5,82,194,5,5,59,198,5,5,99,196,5,5,60,232,5,5,29,236,5,5,104,220,5,5,150,192,5,5,63,194,5,5,231,244,5,5,20,187,5,5,25,225,5,5,164,185,5,5,169,229,5,5,91,238,5,5,210,230,5,5,248,202,5,5,41,217,5,5,96,199,5,5,170,229,5,5,167,187,5,5,216,187,5,5,168,187,5,5,144,171,5,5,207,220,5,5,93,216,5,5,17,238,5,5,225,189,5,5,126,194,5,5,246,186,5,5,81,215,5,5,169,247,5,5,133,175,5,5,132,202,5,5,53,242,5,5,146,182,5,5,233,189,5,5,163,173,5,5,0,152,5,5,131,197,5,5,22,163,5,5,198,168,5,5,67,184,5,5,197,189,5,5,58,242,5,5,99,219,5,5,227,174,5,5,23,163,5,5,52,164,5,5,56,198,5,5,7,168,5,5,118,179,5,5,234,193,5,5,181,203,5,5,125,195,5,5,90,246,5,5,43,239,5,5,193,182,5,5,56,232,5,5,57,198,5,5,89,196,5,5,211,202,5,5,2,204,5,5,61,215,5,5,100,219,5,5,85,216,5,5,238,217,5,5,243,192,5,5,207,186,5,5,145,188,5,5,234,204,5,5,11,187,5,5,4,227,5,5,37,181,5,5,143,194,5,5,144,227,5,5,238,200,5,5,35,208,5,5,215,202,5,5,21,250,5,5,106,211,5,5,142,189,5,5,224,208,5,5,108,232,5,5,168,172,5,5,220,196,5,5,251,224,5,5,96,193,5,5,174,183,5,5,69,184,5,5,89,177,5,5,105,206,5,5,171,228,5,5,215,226,5,5,152,231,5,5,140,173,5,5,60,177,5,5,214,164,5,5,23,225,5,5,192,180,5,5,13,247,5,5,251,245,5,5,6,236,5,5,6,238,5,5,235,209,5,5,246,174,5,5,73,201,5,5,87,212,5,5,28,206,5,5,208,165,5,5,25,236,5,5,125,238,5,5,235,208,5,5,49,179,5,5,79,194,5,5,202,241,5,5,124,167,5,5,250,204,5,5,29,185,5,5,190,165,5,5,76,217,5,5,119,165,5,5,120,170,5,5,20,172,5,5,234,249,5,5,159,246,5,5,68,213,5,5,60,194,5,5,125,228,5,5,255,188,5,5,76,233,5,5,93,199,5,5,149,192,5,5,18,187,5,5,101,220,5,5,94,194,5,5,33,184,5,5,233,239,5,5,129,174,5,5,93,187,5,5,136,204,5,5,107,166,5,5,53,243,5,5,161,174,5,5,84,177,5,5,238,201,5,5,7,174,5,5,229,230,5,5,128,192,5,5,211,226,5,5,8,174,5,5,44,172,5,5,29,164,5,5,16,249,5,5,93,218,5,5,87,199,5,5,242,210,5,5,50,174,5,5,77,164,5,5,38,247,5,5,235,204,5,5,213,226,5,5,134,248,5,5,237,172,5,5,153,241,5,5,175,207,5,5,176,207,5,5,30,168,5,5,156,200,5,5,4,221,5,5,32,164,5,5,62,243,5,5,234,240,5,5,126,221,5,5,157,173,5,5,9,174,5,5,39,247,5,5,174,238,5,5,111,175,5,5,153,191,5,5,196,230,5,5,143,189,5,5,135,171,5,5,143,174,5,5,47,182,5,5,247,171,5,5,110,187,5,5,225,165,5,5,30,219,5,5,154,191,5,5,19,249,5,5,196,233,5,5,214,211,5,5,167,214,5,5,23,223,5,5,56,176,5,5,229,206,5,5,228,241,5,5,28,193,5,5,244,178,5,5,144,248,5,5,13,244,5,5,102,231,5,5,236,240,5,5,3,181,5,5,145,248,5,5,123,181,5,5,125,244,5,5,126,178,5,5,9,245,5,5,47,239,5,5,119,193,5,5,81,238,5,5,94,218,5,5,72,243,5,5,208,198,5,5,173,214,5,5,64,203,5,5,208,187,5,5,158,221,5,5,51,244,5,5,193,180,5,5,177,201,5,5,152,190,5,5,201,230,5,5,99,170,5,5,157,191,5,5,96,230,5,5,15,204,5,5,2,215,5,5,28,220,5,5,95,218,5,5,153,190,5,5,213,198,5,5,96,184,5,5,19,238,5,5,166,190,5,5,65,203,5,5,230,202,5,5,233,181,5,5,158,200,5,5,61,182,5,5,117,166,5,5,39,245,5,5,227,207,5,5,160,248,5,5,131,163,5,5,75,208,5,5,23,218,5,5,216,164,5,5,28,213,5,5,76,208,5,5,9,207,5,5,194,181,5,5,106,206,5,5,196,180,5,5,177,237,5,5,178,237,5,5,15,197,5,5,34,199,5,5,76,245,5,5,174,228,5,5,76,185,5,5,116,204,5,5,95,167,5,5,72,190,5,5,16,168,5,5,98,229,5,5,148,174,5,5,221,238,5,5,69,222,5,5,182,167,5,5,253,210,5,5,104,210,5,5,194,163,5,5,92,177,5,5,73,190,5,5,39,212,5,5,254,204,5,5,11,207,5,5,246,181,5,5,238,240,5,5,22,249,5,5,238,208,5,5,230,186,5,5,132,241,5,5,87,222,5,5,61,197,5,5,118,178,5,5,223,196,5,5,31,229,5,5,239,208,5,5,108,206,5,5,189,240,5,5,190,240,5,5,109,206,5,5,160,231,5,5,62,185,5,5,247,178,5,5,153,208,5,5,114,226,5,5,229,192,5,5,232,206,5,5,192,207,5,5,218,240,5,5,86,233,5,5,21,202,5,5,164,229,5,5,134,244,5,5,120,223,5,5,153,171,5,5,51,230,5,5,223,238,5,5,241,209,5,5,199,180,5,5,38,199,5,5,200,180,5,5,12,238,5,5,124,203,5,5,42,170,5,5,149,174,5,5,93,226,5,5,234,181,5,5,4,243,5,5,148,197,5,5,81,249,5,5,106,168,5,5,224,196,5,5,231,169,5,5,39,199,5,5,141,244,5,5,76,226,5,5,132,245,5,5,13,207,5,5,28,179,5,5,125,234,5,5,180,173,5,5,173,197,5,5,147,244,5,5,82,249,5,5,77,215,5,5,121,247,5,5,223,226,5,5,174,197,5,5,184,225,5,5,109,180,5,5,223,213,5,5,247,230,5,5,81,188,5,5,119,202,5,5,29,193,5,5,5,205,5,5,87,237,5,5,160,198,5,5,199,233,5,5,200,233,5,5,202,240,5,5,4,242,5,5,86,243,5,5,28,202,5,5,150,187,5,5,95,181,5,5,160,195,5,5,158,180,5,5,159,180,5,5,203,240,5,5,235,181,5,5,41,169,5,5,21,204,5,5,20,192,5,5,96,181,5,5,210,224,5,5,120,202,5,5,121,182,5,5,183,219,5,5,128,238,5,5,233,241,5,5,124,239,5,5,180,238,5,5,121,223,5,5,52,219,5,5,113,188,5,5,239,249,5,5,55,191,5,5,109,165,5,5,245,229,5,5,75,222,5,5,253,247,5,5,42,245,5,5,206,207,5,5,201,243,5,5,202,180,5,5,151,235,5,5,23,204,5,5,207,240,5,5,129,199,5,5,110,165,5,5,151,244,5,5,198,236,5,5,83,201,5,5,38,173,5,5,24,204,5,5,6,188,5,5,94,243,5,5,22,192,5,5,184,204,5,5,134,215,5,5,135,215,5,5,236,181,5,5,173,169,5,5,78,233,5,5,174,248,5,5,152,244,5,5,79,190,5,5,122,182,5,5,136,215,5,5,74,217,5,5,208,240,5,5,55,168,5,5,199,225,5,5,116,190,5,5,42,213,5,5,208,239,5,5,37,202,5,5,18,232,5,5,254,247,5,5,105,220,5,5,137,241,5,5,56,244,5,5,56,168,5,5,133,184,5,5,97,199,5,5,66,171,5,5,153,244,5,5,6,171,5,5,198,176,5,5,244,248,5,5,176,248,5,5,141,185,5,5,64,164,5,5,226,189,5,5,176,197,5,5,26,191,5,5,250,229,5,5,246,248,5,5,154,244,5,5,127,194,5,5,236,211,5,5,247,186,5,5,184,190,5,5,29,184,5,5,126,204,5,5,208,201,5,5,248,248,5,5,28,172,5,5,189,226,5,5,168,238,5,5,228,240,5,5,115,234,5,5,19,164,5,5,240,220,5,5,11,193,5,5,232,178,5,5,193,189,5,5,230,240,5,5,135,214,5,5,9,244,5,5,107,189,5,5,9,223,5,5,203,211,5,5,253,248,5,5,63,217,5,5,32,182,5,5,113,235,5,5,236,218,5,5,37,239,5,5,108,193,5,5,247,214,5,5,204,198,5,5,15,220,5,5,144,191,5,5,162,190,5,5,156,201,5,5,31,245,5,5,95,163,5,5,186,186,5,5,221,207,5,5,51,193,5,5,168,237,5,5,99,248,5,5,105,215,5,5,172,180,5,5,65,245,5,5,27,212,5,5,150,171,5,5,212,238,5,5,212,196,5,5,191,163,5,5,162,167,5,5,90,210,5,5,106,226,5,5,223,192,5,5,11,249,5,5,168,236,5,5,18,199,5,5,134,197,5,5,247,237,5,5,65,193,5,5,227,209,5,5,187,233,5,5,223,169,5,5,121,245,5,5,140,240,5,5,248,241,5,5,118,247,5,5,60,188,5,5,99,202,5,5,141,240,5,5,236,204,5,5,165,197,5,5,116,239,5,5,126,244,5,5,180,219,5,5,106,188,5,5,247,187,5,5,16,204,5,5,178,204,5,5,152,248,5,5,67,190,5,5,195,200,5,5,97,220,5,5,132,244,5,5,91,199,5,5,251,170,5,5,121,194,5,5,246,229,5,5,231,189,5,5,179,205,5,5,144,189,5,5,65,205,5,5,131,215,5,5,190,234,5,5,71,205,5,5,74,205,5,5,208,242,5,5,188,234,5,5,18,190,5,5,16,242,5,5,146,234,5,5,138,202,5,5,23,167,5,5,147,234,5,5,24,167,5,5,251,221,5,5,36,208,5,5,201,221,5,5,246,204,5,5,49,171,5,5,50,171,5,5,44,248,5,5,74,188,5,5,208,224,5,5,39,208,5,5,250,188,5,5,177,183,5,5,240,208,5,5,74,190,5,5,182,204,5,5,40,208,5,5,110,206,5,5,132,187,5,5,60,216,5,5,132,215,5,5,39,203,5,5,56,171,5,5,151,187,5,5,212,227,5,5,32,221,5,5,4,189,5,5,113,206,5,5,248,208,5,5,165,189,5,5,210,242,5,5,148,234,5,5,182,169,5,5,178,169,5,5,135,197,5,5,3,224,5,5,51,174,5,5,219,171,5,5,213,171,5,5,53,174,5,5,32,167,5,5,2,212,5,5,189,211,5,5,100,170,5,5,54,174,5,5,232,215,5,5,63,185,5,5,192,211,5,5,221,171,5,5,123,223,5,5,234,173,5,5,38,174,5,5,185,211,5,5,220,171,5,5,23,169,5,5,159,169,5,5,71,169,5,5,32,200,5,5,157,169,5,5,111,232,5,5,186,184,5,5,124,173,5,5,49,201,5,5,50,201,5,5,180,205,5,5,170,194,5,5,69,181,5,5,222,179,5,5,178,201,5,5,155,199,5,5,39,197,5,5,180,201,5,5,110,229,5,5,208,186,5,5,70,184,5,5,29,223,5,5,207,197,5,5,206,197,5,5,142,240,5,5,142,210,5,5,17,176,5,5,150,213,5,5,136,182,5,5,142,169,5,5,135,169,5,5,143,210,5,5,115,175,5,5,235,225,5,5,90,242,5,5,157,177,5,5,122,239,5,5,221,213,5,5,254,242,5,5,193,211,5,5,249,169,5,5,5,243,5,5,124,211,5,5,238,248,5,5,231,186,5,5,87,176,5,5,11,178,5,5,90,234,5,5,154,242,5,5,203,242,5,5,9,243,5,5,19,176,5,5,254,238,5,5,232,220,5,5,120,175,5,5,91,234,5,5,125,239,5,5,233,169,5,5,131,220,5,5,19,243,5,5,20,178,5,5,227,189,5,5,174,218,5,5,126,173,5,5,146,174,5,5,182,174,5,5,210,171,5,5,194,171,5,5,76,249,5,5,168,234,5,5,4,212,5,5,250,223,5,5,149,245,5,5,163,221,5,5,97,218,5,5,5,171,5,5,129,238,5,5,121,165,5,5,52,182,5,5,111,165,5,5,50,249,5,5,241,223,5,5,50,182,5,5,204,177,5,5,115,171,5,5,29,183,5,5,206,177,5,5,153,231,5,5,57,193,5,5,58,193,5,5,245,178,5,5,119,173,5,5,200,179,5,5,24,249,5,5,19,168,5,5,255,224,5,5,21,192,5,5,64,209,5,5,25,249,5,5,66,180,5,5,131,180,5,5,114,229,5,5,107,229,5,5,117,173,5,5,219,172,5,5,45,247,5,5,10,163,5,5,90,177,5,5,48,182,5,5,220,222,5,5,220,211,5,5,30,229,5,5,5,227,5,5,118,242,5,5,7,227,5,5,162,181,5,5,41,245,5,5,95,184,5,5,111,206,5,5,16,201,5,5,15,207,5,5,12,243,5,5,195,181,5,5,152,235,5,5,40,213,5,5,237,215,5,5,15,243,5,5,115,185,5,5,219,164,5,5,229,241,5,5,43,210,5,5,72,198,5,5,127,245,5,5,130,245,5,5,24,198,5,5,116,214,5,5,14,238,5,5,79,219,5,5,31,215,5,5,137,247,5,5,80,219,5,5,211,184,5,5,141,183,5,5,218,208,5,5,192,219,5,5,231,202,5,5,161,231,5,5,29,202,5,5,35,202,5,5,155,208,5,5,252,201,5,5,77,223,5,5,227,224,5,5,229,224,5,5,146,197,5,5,5,241,5,5,200,243,5,5,113,214,5,5,7,164,5,5,15,232,5,5,114,214,5,5,215,223,5,5,26,223,5,5,6,243,5,5,34,207,5,5,41,181,5,5,156,189,5,5,152,189,5,5,153,225,5,5,93,212,5,5,115,214,5,5,205,195,5,5,15,184,5,5,183,204,5,5,232,241,5,5,17,226,5,5,239,196,5,5,46,248,5,5,198,225,5,5,249,239,5,5,178,183,5,5,17,232,5,5,113,232,5,5,244,211,5,5,177,249,5,5,18,243,5,5,183,238,5,5,16,238,5,5,213,245,5,5,211,240,5,5,166,233,5,5,114,232,5,5,144,177,5,5,200,225,5,5,3,206,5,5,46,241,5,5,62,223,5,5,223,224,5,5,116,197,5,5,184,243,5,5,28,207,5,5,132,189,5,5,2,164,5,5,30,181,5,5,144,231,5,5,201,195,5,5,37,248,5,5,11,226,5,5,243,211,5,5,209,245,5,5,248,190,5,5,125,167,5,5,214,194,5,5,126,167,5,5,7,243,5,5,14,191,5,5,39,191,5,5,215,194,5,5,168,195,5,5,44,175,5,5,167,189,5,5,45,175,5,5,225,190,5,5,202,194,5,5,164,195,5,5,241,193,5,5,243,209,5,5,123,165,5,5,210,193,5,5,233,248,5,5,44,226,5,5,151,197,5,5,209,207,5,5,44,214,5,5,177,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,209,5,5,246,192,5,5,174,223,5,5,80,203,5,5,117,199,5,5,71,226,5,5,37,207,5,5,241,193,5,5,241,193,5,5,36,209,5,5,164,205,5,5,239,184,5,5,22,183,5,5,78,186,5,5,83,185,5,5,102,190,5,5,113,190,5,5,101,190,5,5,123,190,5,5,114,190,5,5,26,185,5,5,134,190,5,5,208,185,5,5,138,190,5,5,144,190,5,5,210,185,5,5,150,190,5,5,188,190,5,5,185,190,5,5,50,186,5,5,96,186,5,5,52,186,5,5,184,190,5,5,22,186,5,5,94,186,5,5,39,186,5,5,48,186,5,5,227,184,5,5,253,184,5,5,4,185,5,5,114,186,5,5,129,186,5,5,141,186,5,5,106,186,5,5,104,186,5,5,35,185,5,5,159,186,5,5,175,185,5,5,241,189,5,5,248,189,5,5,211,189,5,5,199,189,5,5,193,185,5,5,214,189,5,5,234,189,5,5,35,190,5,5,76,190,5,5,240,189,5,5,79,190,5,5,31,190,5,5,32,190,5,5,96,191,5,5,24,190,5,5,56,190,5,5,18,190,5,5,223,190,5,5,34,191,5,5,208,184,5,5,15,191,5,5,16,191,5,5,169,185,5,5,125,185,5,5,34,190,5,5,87,185,5,5,131,185,5,5,74,191,5,5,239,185,5,5,146,185,5,5,10,186,5,5,147,185,5,5,82,191,5,5,8,186,5,5,86,185,5,5,10,185,5,5,10,189,5,5,100,189,5,5,155,186,5,5,134,189,5,5,124,189,5,5,123,189,5,5,12,178,5,5,223,182,5,5,26,185,5,5,172,184,5,5,225,175,5,5,120,184,5,5,151,184,5,5,89,191,5,5,74,240,5,5,195,163,5,5,69,167,5,5,238,165,5,5,216,174,5,5,118,166,5,5,90,171,5,5,156,229,5,5,224,236,5,5,62,234,5,5,2,236,5,5,36,229,5,5,101,241,5,5,177,229,5,5,131,227,5,5,183,224,5,5,181,224,5,5,238,226,5,5,234,230,5,5,216,237,5,5,218,237,5,5,68,189,5,5,58,189,5,5,42,189,5,5,43,189,5,5,54,189,5,5,40,189,5,5,78,189,5,5,76,189,5,5,111,187,5,5,58,191,5,5,212,184,5,5,203,189,5,5,65,191,5,5,103,191,5,5,139,187,5,5,53,191,5,5,245,186,5,5,132,187,5,5,208,186,5,5,22,187,5,5,104,187,5,5,105,187,5,5,157,187,5,5,63,184,5,5,140,188,5,5,212,188,5,5,79,184,5,5,132,188,5,5,198,188,5,5,175,188,5,5,64,184,5,5,202,188,5,5,153,188,5,5,82,184,5,5,144,188,5,5,123,188,5,5,206,188,5,5,176,187,5,5,177,187,5,5,25,243,5,5,191,187,5,5,199,187,5,5,177,229,5,5,126,188,5,5,90,184,5,5,73,184,5,5,205,188,5,5,162,188,5,5,210,187,5,5,174,189,5,5,87,189,5,5,120,184,5,5,173,189,5,5,117,188,5,5,98,189,5,5,178,244,5,5,117,189,5,5,119,189,5,5,129,189,5,5,131,189,5,5,160,189,5,5,172,189,5,5,35,187,5,5,14,187,5,5,17,187,5,5,114,187,5,5,226,237,5,5,31,185,5,5,226,187,5,5,234,187,5,5,42,184,5,5,21,188,5,5,26,185,5,5,241,187,5,5,246,187,5,5,13,188,5,5,244,187,5,5,248,190,5,5,113,249,5,5,25,231,5,5,54,188,5,5,55,224,5,5,84,188,5,5,34,188,5,5,28,188,5,5,36,188,5,5,37,188,5,5,40,188,5,5,54,184,5,5,157,185,5,5,99,188,5,5,43,190,5,5,17,190,5,5,198,190,5,5,202,190,5,5,204,190,5,5,214,190,5,5,87,191,5,5,89,187,5,5,57,187,5,5,89,191,5,5,240,190,5,5,30,187,5,5,27,187,5,5,76,191,5,5,29,240,5,5,249,186,5,5,173,186,5,5,150,183,5,5,3,187,5,5,82,187,5,5,209,186,5,5,7,187,5,5,8,187,5,5,250,186,5,5,222,186,5,5,208,183,5,5,212,183,5,5,21,189,5,5,240,188,5,5,241,188,5,5,35,189,5,5,237,188,5,5,3,189,5,5,4,189,5,5,218,188,5,5,225,188,5,5,247,188,5,5,26,187,5,5,70,187,5,5,71,187,5,5,186,222,5,5,192,218,5,5,6,227,5,5,177,228,5,5,146,223,5,5,212,233,5,5,94,209,5,5,36,178,5,5,53,179,5,5,95,180,5,5,194,219,5,5,12,179,5,5,54,164,5,5,141,174,5,5,139,216,5,5,56,206,5,5,78,205,5,5,62,196,5,5,78,245,5,5,75,199,192,0,0,0,192,0,0,0,5,5,230,222,192,0,0,0,5,5,114,211,192,0,0,0,192,0,0,0,5,5,254,212,5,5,140,221,5,5,65,240,5,5,248,186,5,5,179,228,5,5,71,216,5,5,131,174,5,5,172,206,5,5,103,206,5,5,6,248,192,0,0,0,5,5,49,210,192,0,0,0,5,5,154,221,192,0,0,0,192,0,0,0,5,5,100,240,5,5,184,175,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,173,5,5,189,235,5,5,93,194,5,5,174,197,5,5,107,186,5,5,108,187,5,5,55,245,5,5,126,236,5,5,192,171,5,5,195,171,5,5,233,210,5,5,181,163,5,5,79,197,5,5,44,180,5,5,56,209,5,5,210,168,5,5,139,169,5,5,137,234,5,5,185,223,5,5,56,200,5,5,91,195,5,5,196,232,5,5,134,225,5,5,5,172,5,5,164,202,5,5,109,229,5,5,201,169,5,5,188,197,5,5,194,221,5,5,140,198,5,5,196,221,5,5,251,219,5,5,246,232,5,5,189,163,5,5,188,227,5,5,163,218,5,5,172,208,5,5,109,242,5,5,235,232,5,5,226,221,5,5,205,199,5,5,193,220,5,5,64,193,5,5,184,181,5,5,170,203,5,5,202,188,5,5,246,205,5,5,26,173,5,5,112,229,5,5,164,219,5,5,63,224,5,5,55,234,5,5,55,234,5,5,185,219,5,5,164,197,5,5,66,227,5,5,117,241,5,5,205,205,5,5,21,166,5,5,211,232,5,5,249,225,5,5,100,240,5,5,109,183,5,5,90,216,5,5,142,168,5,5,76,200,192,0,0,0,5,5,91,194,192,0,0,0,192,0,0,0,5,5,83,166,5,5,23,197,5,5,52,212,5,5,142,216,5,5,147,226,5,5,216,202,5,5,252,249,5,5,244,227,5,5,79,197,5,5,180,179,5,5,83,200,5,5,159,245,5,5,230,222,5,5,108,173,5,5,216,242,5,5,115,164,5,5,20,165,5,5,193,233,5,5,107,238,5,5,121,240,5,5,20,234,5,5,176,241,5,5,94,247,5,5,216,228,5,5,100,248,5,5,196,232,5,5,151,238,5,5,134,225,5,5,112,175,5,5,197,247,5,5,45,236,5,5,73,166,5,5,102,238,5,5,114,211,5,5,129,186,5,5,111,247,5,5,44,221,5,5,73,175,5,5,131,227,5,5,34,188,5,5,185,243,5,5,127,231,5,5,140,198,5,5,184,206,5,5,196,221,5,5,177,209,5,5,183,207,5,5,46,173,5,5,140,221,5,5,251,220,5,5,183,233,5,5,136,199,5,5,75,194,5,5,8,247,5,5,65,240,5,5,44,229,5,5,102,218,5,5,251,207,5,5,184,219,5,5,91,181,5,5,51,181,5,5,170,203,5,5,144,185,5,5,159,179,5,5,202,188,5,5,191,168,5,5,164,219,5,5,33,201,5,5,115,199,5,5,121,249,5,5,79,211,5,5,247,174,5,5,66,227,5,5,111,177,5,5,154,221,5,5,133,211,5,5,117,241,5,5,172,184,5,5,139,248,5,5,205,205,5,5,2,166,5,5,211,232,5,5,93,229,5,5,54,223,5,5,59,236,5,5,155,216,5,5,195,221,5,5,109,183,5,5,172,206,5,5,178,163,5,5,90,216,5,5,184,237,5,5,142,168,5,5,231,220,5,5,241,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,238,5,5,125,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,14,228,6,5,188,231,6,5,236,229,192,0,0,0,6,5,67,239,6,5,49,178,6,5,199,203,6,5,61,181,6,5,236,203,6,5,223,244,6,5,28,245,6,5,21,188,6,5,119,210,6,5,49,198,6,5,42,232,6,5,4,216,6,5,149,225,6,5,211,222,6,5,8,229,6,5,61,173,6,5,10,229,6,5,26,226,6,5,242,242,6,5,212,179,6,5,114,166,6,5,82,239,6,5,79,236,6,5,56,242,6,5,251,232,6,5,193,222,6,5,94,242,6,5,159,218,6,5,116,232,6,5,46,175,6,5,229,205,6,5,51,197,6,5,84,197,6,5,127,170,6,5,68,242,6,5,197,248,6,5,133,228,6,5,145,191,6,5,160,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,62,0,197,35,63,0,197,131,63,0,197,227,63,0,197,67,64,0,197,163,64,0,197,3,65,0,197,99,65,0,197,195,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,58,175,6,5,37,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,239,5,5,250,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,243,192,0,0,0,5,5,129,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,209,192,0,0,0,5,5,190,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,175,5,5,219,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,198,5,5,57,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,171,192,0,0,0,5,5,195,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,172,192,0,0,0,5,5,144,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,195,192,0,0,0,192,0,0,0,5,5,217,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,168,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,218,192,0,0,0,5,5,202,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,166,192,0,0,0,5,5,24,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,227,192,0,0,0,5,5,254,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,222,5,5,19,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,243,5,5,105,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,248,192,0,0,0,5,5,199,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,220,5,5,15,247,5,5,241,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,187,192,0,0,0,192,0,0,0,5,5,36,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,169,5,5,23,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,187,5,5,184,246,5,5,126,239,192,0,0,0,5,5,181,183,5,5,55,245,5,5,94,182,5,5,87,166,5,5,221,231,5,5,221,163,5,5,126,236,5,5,106,216,192,0,0,0,192,0,0,0,5,5,192,171,5,5,243,181,5,5,81,201,5,5,42,207,192,0,0,0,192,0,0,0,5,5,40,183,5,5,42,232,192,0,0,0,5,5,95,231,5,5,250,248,5,5,51,166,5,5,223,178,5,5,23,197,192,0,0,0,5,5,149,210,5,5,105,230,5,5,235,167,5,5,50,195,5,5,120,190,5,5,145,191,5,5,134,224,192,0,0,0,5,5,252,249,5,5,195,171,5,5,233,210,5,5,244,227,5,5,249,163,5,5,37,235,5,5,195,163,5,5,64,200,5,5,181,163,5,5,92,163,5,5,44,202,5,5,55,202,5,5,94,211,5,5,94,211,5,5,94,211,192,0,0,0,5,5,252,199,5,5,40,202,5,5,66,236,192,0,0,0,5,5,82,204,5,5,80,223,5,5,141,241,5,5,186,215,5,5,171,212,5,5,88,225,5,5,3,220,5,5,199,237,5,5,127,171,5,5,68,180,5,5,9,209,5,5,92,215,5,5,96,228,5,5,96,228,5,5,83,200,5,5,12,223,5,5,68,219,5,5,174,241,5,5,222,181,5,5,44,180,5,5,223,181,5,5,223,197,5,5,97,167,5,5,94,209,5,5,183,222,5,5,93,225,5,5,108,218,5,5,245,181,5,5,144,216,5,5,172,233,5,5,49,164,5,5,7,177,192,0,0,0,5,5,176,169,5,5,255,198,5,5,236,173,5,5,49,178,5,5,24,171,5,5,168,227,192,0,0,0,192,0,0,0,5,5,215,201,5,5,177,247,5,5,95,182,5,5,128,168,5,5,210,174,192,0,0,0,192,0,0,0,5,5,21,230,5,5,77,186,5,5,77,186,192,0,0,0,5,5,254,248,5,5,247,218,5,5,120,184,5,5,35,164,192,0,0,0,5,5,19,228,5,5,9,206,5,5,68,176,5,5,26,242,192,0,0,0,5,5,205,181,5,5,185,223,5,5,14,215,5,5,59,210,192,0,0,0,5,5,227,242,192,0,0,0,5,5,129,177,5,5,124,231,5,5,136,224,5,5,214,217,5,5,238,223,192,0,0,0,5,5,14,218,5,5,209,229,5,5,68,170,5,5,109,173,5,5,150,170,192,0,0,0,192,0,0,0,5,5,86,166,5,5,21,165,5,5,141,229,5,5,114,186,192,0,0,0,5,5,216,194,192,0,0,0,192,0,0,0,5,5,182,247,5,5,149,179,5,5,149,179,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,216,5,5,79,177,192,0,0,0,5,5,239,178,5,5,97,230,5,5,180,218,5,5,9,197,5,5,251,248,192,0,0,0,192,0,0,0,5,5,56,200,192,0,0,0,5,5,183,178,5,5,182,233,5,5,36,201,5,5,216,228,5,5,36,201,5,5,237,185,5,5,196,232,5,5,223,215,5,5,136,173,5,5,87,234,5,5,239,170,5,5,134,225,5,5,78,186,5,5,86,225,5,5,48,203,5,5,3,196,5,5,43,164,5,5,0,159,5,5,216,207,192,0,0,0,5,5,204,246,5,5,129,168,5,5,184,227,5,5,31,236,5,5,60,202,192,0,0,0,5,5,227,205,5,5,182,242,5,5,224,242,192,0,0,0,5,5,72,169,5,5,63,206,5,5,27,200,5,5,52,204,192,0,0,0,5,5,5,172,5,5,169,206,192,0,0,0,5,5,184,202,5,5,71,229,5,5,216,205,5,5,100,246,5,5,109,229,5,5,2,247,192,0,0,0,5,5,59,170,5,5,200,171,5,5,39,233,5,5,235,205,5,5,237,182,5,5,24,180,5,5,129,186,5,5,111,247,5,5,98,233,5,5,2,209,5,5,139,165,192,0,0,0,5,5,109,199,5,5,199,193,5,5,209,201,5,5,114,236,5,5,201,169,192,0,0,0,5,5,99,238,5,5,118,164,5,5,125,231,192,0,0,0,5,5,71,219,5,5,183,241,5,5,251,191,5,5,176,227,192,0,0,0,5,5,33,219,5,5,206,239,5,5,209,233,192,0,0,0,5,5,213,216,192,0,0,0,5,5,28,237,5,5,6,247,5,5,131,227,5,5,196,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,173,192,0,0,0,5,5,162,242,5,5,116,164,5,5,61,210,5,5,21,245,5,5,221,166,5,5,188,197,5,5,34,188,5,5,251,197,5,5,218,205,5,5,231,183,192,0,0,0,5,5,176,168,5,5,206,192,5,5,137,242,5,5,31,191,5,5,127,231,5,5,130,177,192,0,0,0,5,5,132,242,5,5,246,223,192,0,0,0,192,0,0,0,5,5,110,173,5,5,236,248,5,5,184,206,5,5,195,244,192,0,0,0,5,5,147,210,5,5,29,232,5,5,137,222,5,5,38,180,192,0,0,0,5,5,169,178,192,0,0,0,5,5,56,235,192,0,0,0,5,5,22,235,5,5,183,207,5,5,87,219,192,0,0,0,5,5,220,212,5,5,233,163,192,0,0,0,192,0,0,0,5,5,50,179,5,5,81,247,192,0,0,0,5,5,205,248,5,5,181,168,5,5,181,168,5,5,104,175,5,5,213,247,5,5,251,220,5,5,233,236,5,5,158,212,192,0,0,0,5,5,251,230,192,0,0,0,5,5,31,232,192,0,0,0,5,5,74,240,192,0,0,0,5,5,29,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,220,5,5,170,220,5,5,170,220,5,5,251,207,5,5,159,203,5,5,173,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,216,5,5,31,190,5,5,91,181,192,0,0,0,192,0,0,0,5,5,235,232,192,0,0,0,192,0,0,0,5,5,131,174,5,5,99,229,192,0,0,0,5,5,64,193,5,5,203,202,5,5,57,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,168,5,5,200,168,192,0,0,0,5,5,146,222,5,5,177,221,192,0,0,0,192,0,0,0,5,5,242,163,192,0,0,0,5,5,69,206,5,5,94,236,5,5,167,202,192,0,0,0,5,5,179,164,5,5,151,241,5,5,141,231,5,5,137,233,5,5,23,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,223,192,0,0,0,5,5,83,244,5,5,122,238,5,5,164,219,192,0,0,0,192,0,0,0,5,5,162,168,192,0,0,0,5,5,67,235,192,0,0,0,192,0,0,0,5,5,57,248,5,5,236,234,192,0,0,0,5,5,5,168,5,5,225,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,247,5,5,131,213,5,5,181,233,192,0,0,0,5,5,5,209,5,5,54,248,5,5,67,218,5,5,167,185,5,5,101,199,5,5,152,173,5,5,246,240,5,5,21,196,192,0,0,0,5,5,234,230,5,5,216,223,5,5,57,231,5,5,155,203,5,5,26,245,5,5,213,170,5,5,216,176,5,5,185,219,5,5,183,168,5,5,248,206,5,5,27,208,5,5,28,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,168,5,5,202,205,5,5,187,234,192,0,0,0,5,5,253,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,184,5,5,234,189,5,5,109,196,5,5,154,213,5,5,8,223,5,5,81,210,5,5,10,249,5,5,193,168,5,5,121,249,5,5,53,177,5,5,150,221,5,5,222,233,192,0,0,0,5,5,26,194,5,5,88,216,192,0,0,0,5,5,161,222,5,5,87,239,192,0,0,0,5,5,41,188,5,5,216,229,192,0,0,0,5,5,243,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,225,5,5,139,248,5,5,2,166,5,5,12,227,192,0,0,0,5,5,103,194,5,5,39,165,5,5,167,192,5,5,8,209,192,0,0,0,192,0,0,0,5,5,5,163,5,5,44,205,5,5,113,168,192,0,0,0,5,5,133,230,5,5,93,229,192,0,0,0,192,0,0,0,5,5,253,208,5,5,180,168,5,5,137,231,192,0,0,0,5,5,243,223,5,5,100,163,5,5,118,217,5,5,123,199,5,5,77,166,5,5,81,211,5,5,126,232,192,0,0,0,5,5,80,195,192,0,0,0,5,5,225,227,192,0,0,0,192,0,0,0,5,5,84,210,5,5,2,213,5,5,176,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,237,5,5,184,237,5,5,165,168,192,0,0,0,5,5,220,201,192,0,0,0,5,5,3,238,5,5,125,249,5,5,28,164,5,5,101,182,192,0,0,0,192,0,0,0,5,5,231,220,5,5,242,202,5,5,235,204,192,0,0,0,5,5,117,202,5,5,16,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,169,192,0,0,0,5,5,174,218,5,5,194,171,5,5,97,218,5,5,115,171,5,5,119,173,5,5,219,164,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,0,0,142,9,0,5,0,5,0,0,82,239,28,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,67,239,24,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,79,236,26,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,157,235,12,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,43,245,23,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,99,188,18,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,113,208,27,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,0,128,19,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,141,204,25,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,225,226,16,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,197,248,8,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,178,199,3,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,208,229,4,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,80,172,6,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,237,181,11,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,8,230,9,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,136,221,5,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,68,242,7,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,26,172,14,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,94,179,2,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,168,185,17,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,77,175,22,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,218,198,13,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,58,217,10,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,250,208,21,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,254,213,15,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,236,214,20,15,0,5,0,0,144,9,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,5,5,142,9,5,5,164,205,6,5,144,9,5,5,142,9,5,5,188,227,13,5,144,9,5,5,142,9,5,5,11,234,8,5,144,9,5,5,142,9,5,5,226,221,12,5,144,9,5,5,142,9,5,5,227,204,14,5,144,9,5,5,142,9,5,5,135,231,7,5,144,9,5,5,142,9,5,5,187,202,11,5,144,9,5,5,142,9,5,5,189,231,10,5,144,9,5,5,142,9,5,5,178,218,9,5,144,9,5,5,0,21,17,5,197,248,5,5,0,23,16,5,197,248,5,5,0,25,15,5,197,248,5,5,0,27,14,5,197,248,5,5,0,29,13,5,197,248,5,5,0,31,12,5,197,248,5,5,0,33,11,5,197,248,5,5,0,35,10,5,197,248,5,5,0,37,9,5,197,248,5,5,0,21,5,5,0,19,20,5,197,248,5,5,0,21,5,5,0,21,19,5,197,248,5,5,0,21,5,5,0,23,18,5,197,248,5,5,0,19,30,5,147,177,5,5,0,21,19,5,147,177,5,5,0,23,13,5,147,177,5,5,0,25,12,5,147,177,5,5,0,27,11,5,147,177,5,5,0,29,10,5,147,177,5,5,0,31,9,5,147,177,5,5,0,33,8,5,147,177,5,5,0,35,7,5,147,177,5,5,0,37,6,5,147,177,5,5,0,21,5,5,0,19,29,5,147,177,5,5,0,21,5,5,0,21,28,5,147,177,5,5,0,21,5,5,0,23,27,5,147,177,5,5,0,21,5,5,0,25,26,5,147,177,5,5,0,21,5,5,0,27,25,5,147,177,5,5,0,21,5,5,0,29,24,5,147,177,5,5,0,21,5,5,0,31,23,5,147,177,5,5,0,21,5,5,0,33,22,5,147,177,5,5,0,21,5,5,0,35,21,5,147,177,5,5,0,21,5,5,0,37,20,5,147,177,5,5,0,23,5,5,0,19,18,5,147,177,5,5,0,23,5,5,0,21,17,5,147,177,5,5,0,23,5,5,0,23,16,5,147,177,5,5,0,23,5,5,0,25,15,5,147,177,5,5,0,23,5,5,0,27,14,5,147,177,5,5,167,168,6,5,86,225,5,5,210,219,6,5,89,197,5,5,47,175,7,5,112,221,5,5,27,172,6,5,191,218,5,5,136,221,5,5,32,227,5,5,66,200,7,5,188,227,5,5,0,21,28,5,8,230,5,5,0,23,17,5,8,230,5,5,0,25,14,5,8,230,5,5,0,27,13,5,8,230,5,5,0,29,12,5,8,230,5,5,0,31,11,5,8,230,5,5,0,33,10,5,8,230,5,5,0,35,9,5,8,230,5,5,0,37,8,5,8,230,5,5,0,21,5,5,0,19,38,5,8,230,5,5,0,21,5,5,0,21,37,5,8,230,5,5,0,21,5,5,0,23,36,5,8,230,5,5,0,21,5,5,0,25,35,5,8,230,5,5,0,21,5,5,0,27,34,5,8,230,5,5,0,21,5,5,0,29,33,5,8,230,5,5,0,21,5,5,0,31,32,5,8,230,5,5,0,21,5,5,0,33,31,5,8,230,5,5,0,21,5,5,0,35,30,5,8,230,5,5,0,21,5,5,0,37,29,5,8,230,5,5,0,23,5,5,0,19,27,5,8,230,5,5,0,23,5,5,0,21,26,5,8,230,5,5,0,23,5,5,0,23,25,5,8,230,5,5,0,23,5,5,0,25,24,5,8,230,5,5,0,23,5,5,0,27,23,5,8,230,5,5,0,23,5,5,0,29,22,5,8,230,5,5,0,23,5,5,0,31,21,5,8,230,5,5,0,23,5,5,0,33,20,5,8,230,5,5,0,23,5,5,0,35,19,5,8,230,5,5,0,23,5,5,0,37,18,5,8,230,5,5,0,25,5,5,0,19,16,5,8,230,5,5,0,25,5,5,0,21,15,5,8,230,5,5,82,10,5,5,122,164,8,5,84,10,5,5,82,10,5,5,79,236,14,5,84,10,5,5,82,10,5,5,67,239,13,5,84,10,5,5,82,10,5,5,198,238,11,5,84,10,5,5,82,10,5,5,147,177,7,5,84,10,5,5,82,10,5,5,46,175,10,5,84,10,5,5,82,10,5,5,159,175,6,5,84,10,5,5,82,10,5,5,46,229,12,5,84,10,5,5,82,10,5,5,171,163,9,5,84,10,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,41,0,198,161,35,0,23,49,78,0,33,49,38,0,37,49,20,0,37,49,255,255,22,239,5,5,38,49,255,255,24,239,5,5,39,49,255,255,81,239,5,5,40,49,255,255,239,244,5,5,41,49,255,255,138,247,5,5,33,49,255,255,162,238,5,5,34,49,255,255,197,238,5,5,35,49,255,255,255,238,5,5,36,49,255,255,10,239,5,5,27,49,20,0,27,49,255,255,138,237,5,5,28,49,255,255,143,237,5,5,30,49,255,255,20,238,5,5,31,49,255,255,92,238,5,5,32,49,255,255,95,238,5,5,23,49,255,255,104,231,5,5,24,49,255,255,154,233,5,5,25,49,255,255,100,235,5,5,26,49,255,255,132,237,5,5,14,49,38,0,18,49,20,0,18,49,255,255,164,212,5,5,19,49,255,255,53,218,5,5,20,49,255,255,2,223,5,5,21,49,255,255,182,226,5,5,22,49,255,255,6,230,5,5,14,49,255,255,238,194,5,5,15,49,255,255,69,197,5,5,16,49,255,255,193,201,5,5,17,49,255,255,112,208,5,5,9,49,20,0,9,49,255,255,3,175,5,5,10,49,255,255,29,179,5,5,11,49,255,255,221,182,5,5,12,49,255,255,225,184,5,5,13,49,255,255,117,191,5,5,5,49,255,255,0,127,5,5,6,49,255,255,149,166,5,5,7,49,255,255,16,169,5,5,8,49,255,255,111,172,5,5,4,0,6,49,29,49,30,49,42,49,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,103,228,2,16,251,184,0,96,1,0,0,96,8,0,43,0,83,0,91,0,109,0,101,0,116,0,123,0,130,0,170,170,148,48,1,32,4,0,0,96,70,141,1,32,229,251,1,32,233,155,1,80,245,208,2,32,95,228,2,32,5,129,3,32,1,0,32,0,10,129,3,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,19,0,0,32,7,0,0,0,13,0,0,0,21,0,0,0,21,0,0,0,1,0,0,0,0,0,0,0,19,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,170,0,0,115,0,116,0,114,0,111,0,107,0,101,0,0,0,1,0,43,0,1,0,170,170,1,0,32,0,8,0,0,80,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,77,0,79,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,83,0,71,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,87,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,252,2,0,32,7,0,0,0,55,1,0,0,254,2,0,0,254,2,0,0,45,1,0,0,1,0,0,0,56,1,0,0,99,111,100,101,77,97,112,0,65,68,80,0,65,69,68,0,65,70,65,0,65,70,78,0,65,76,75,0,65,76,76,0,65,77,68,0,65,78,71,0,65,79,65,0,65,79,75,0,65,79,78,0,65,79,82,0,65,82,65,0,65,82,80,0,65,82,83,0,65,82,89,0,65,84,83,0,65,85,68,0,65,87,71,0,65,89,77,0,65,90,77,0,65,90,78,0,66,65,68,0,66,65,77,0,66,66,68,0,66,68,84,0,66,69,67,0,66,69,70,0,66,69,76,0,66,71,74,0,66,71,75,0,66,71,76,0,66,71,78,0,66,72,68,0,66,73,70,0,66,77,68,0,66,78,68,0,66,79,66,0,66,79,80,0,66,79,86,0,66,82,66,0,66,82,67,0,66,82,69,0,66,82,76,0,66,82,78,0,66,82,82,0,66,83,68,0,66,84,78,0,66,85,75,0,66,87,80,0,66,89,66,0,66,89,78,0,66,89,82,0,66,90,68,0,67,65,68,0,67,68,70,0,67,72,67,0,67,72,69,0,67,72,70,0,67,72,87,0,67,76,70,0,67,76,80,0,67,78,89,0,67,79,80,0,67,79,85,0,67,82,67,0,67,83,68,0,67,83,74,0,67,83,75,0,67,85,67,0,67,85,80,0,67,86,69,0,67,89,80,0,67,90,75,0,68,68,77,0,68,69,77,0,68,74,70,0,68,75,75,0,68,79,80,0,68,90,68,0,69,67,83,0,69,67,86,0,69,69,75,0,69,71,80,0,69,82,78,0,69,83,65,0,69,83,66,0,69,83,80,0,69,84,66,0,69,85,82,0,70,73,77,0,70,74,68,0,70,75,80,0,70,82,70,0,71,66,80,0,71,69,75,0,71,69,76,0,71,72,67,0,71,72,80,0,71,72,83,0,71,73,80,0,71,77,68,0,71,78,69,0,71,78,70,0,71,78,83,0,71,81,69,0,71,82,68,0,71,84,81,0,71,87,69,0,71,87,80,0,71,89,68,0,72,75,68,0,72,78,76,0,72,82,68,0,72,82,75,0,72,84,71,0,72,85,70,0,73,68,82,0,73,69,80,0,73,76,80,0,73,76,82,0,73,76,83,0,73,78,82,0,73,81,68,0,73,82,82,0,73,83,74,0,73,83,75,0,73,84,76,0,74,77,68,0,74,79,68,0,74,80,89,0,75,69,83,0,75,71,83,0,75,72,82,0,75,77,70,0,75,80,87,0,75,82,87,0,75,87,68,0,75,89,68,0,75,90,84,0,76,65,74,0,76,65,75,0,76,66,80,0,76,75,82,0,76,82,68,0,76,83,76,0,76,83,77,0,76,84,76,0,76,84,84,0,76,85,67,0,76,85,70,0,76,85,76,0,76,86,76,0,76,86,82,0,76,89,68,0,77,65,68,0,77,68,76,0,77,71,65,0,77,71,70,0,77,75,68,0,77,76,70,0,77,77,75,0,77,78,84,0,77,79,80,0,77,82,79,0,77,82,85,0,77,84,76,0,77,84,80,0,77,85,82,0,77,86,81,0,77,86,82,0,77,87,75,0,77,88,78,0,77,88,80,0,77,88,86,0,77,89,82,0,77,90,69,0,77,90,77,0,77,90,78,0,78,65,68,0,78,71,78,0,78,73,67,0,78,73,79,0,78,76,71,0,78,79,75,0,78,80,82,0,78,90,68,0,79,77,82,0,80,65,66,0,80,69,72,0,80,69,73,0,80,69,78,0,80,69,83,0,80,71,75,0,80,72,80,0,80,75,82,0,80,76,78,0,80,76,90,0,80,84,69,0,80,89,71,0,81,65,82,0,82,72,68,0,82,79,75,0,82,79,76,0,82,79,78,0,82,83,68,0,82,85,66,0,82,85,82,0,82,87,70,0,83,65,82,0,83,66,68,0,83,67,82,0,83,68,68,0,83,68,71,0,83,68,80,0,83,69,75,0,83,71,68,0,83,72,80,0,83,73,84,0,83,75,75,0,83,76,69,0,83,76,76,0,83,79,83,0,83,82,68,0,83,82,71,0,83,83,80,0,83,84,68,0,83,84,78,0,83,85,82,0,83,86,67,0,83,89,80,0,83,90,76,0,84,72,66,0,84,74,82,0,84,74,83,0,84,77,77,0,84,77,84,0,84,78,68,0,84,79,80,0,84,80,69,0,84,82,76,0,84,82,89,0,84,84,68,0,84,87,68,0,84,90,83,0,85,65,72,0,85,65,75,0,85,71,83,0,85,71,87,0,85,71,88,0,85,83,68,0,85,83,78,0,85,83,83,0,85,89,73,0,85,89,78,0,85,89,80,0,85,89,85,0,85,89,87,0,85,90,83,0,86,69,66,0,86,69,68,0,86,69,70,0,86,69,83,0,86,78,67,0,86,78,68,0,86,85,86,0,87,83,84,0,88,65,70,0,88,65,71,0,88,65,85,0,88,66,65,0,88,66,66,0,88,66,67,0,88,66,68,0,88,67,68,0,88,68,82,0,88,69,85,0,88,79,70,0,88,80,68,0,88,80,70,0,88,80,84,0,88,83,85,0,88,84,83,0,88,85,65,0,88,88,88,0,89,68,68,0,89,69,82,0,89,85,68,0,89,85,77,0,89,85,78,0,90,65,76,0,90,65,82,0,90,77,75,0,90,77,87,0,90,82,78,0,90,82,90,0,90,87,67,0,90,87,68,0,90,87,76,0,90,87,78,0,90,87,82,0,0,0,170,170,45,1,40,0,44,0,48,0,52,0,56,0,60,0,64,0,68,0,72,0,76,0,80,0,84,0,88,0,92,0,96,0,100,0,104,0,108,0,112,0,116,0,120,0,124,0,128,0,132,0,136,0,140,0,144,0,148,0,152,0,156,0,160,0,164,0,168,0,172,0,176,0,180,0,184,0,188,0,192,0,196,0,200,0,204,0,208,0,212,0,216,0,220,0,224,0,228,0,232,0,236,0,240,0,244,0,248,0,252,0,0,1,4,1,8,1,12,1,16,1,20,1,24,1,28,1,32,1,36,1,40,1,44,1,48,1,52,1,56,1,60,1,64,1,68,1,72,1,76,1,80,1,84,1,88,1,92,1,96,1,100,1,104,1,108,1,112,1,116,1,120,1,124,1,128,1,132,1,136,1,140,1,144,1,148,1,152,1,156,1,160,1,164,1,168,1,172,1,176,1,180,1,184,1,188,1,192,1,196,1,200,1,204,1,208,1,212,1,216,1,220,1,224,1,228,1,232,1,236,1,240,1,244,1,248,1,252,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,28,2,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,68,2,72,2,76,2,80,2,84,2,88,2,92,2,96,2,100,2,104,2,108,2,112,2,116,2,120,2,124,2,128,2,132,2,136,2,140,2,144,2,148,2,152,2,156,2,160,2,164,2,168,2,172,2,176,2,180,2,184,2,188,2,192,2,196,2,200,2,204,2,208,2,212,2,216,2,220,2,224,2,228,2,232,2,236,2,240,2,244,2,248,2,252,2,0,3,4,3,8,3,12,3,16,3,20,3,24,3,28,3,32,3,36,3,40,3,44,3,48,3,52,3,56,3,60,3,64,3,68,3,72,3,76,3,80,3,84,3,88,3,92,3,96,3,100,3,104,3,108,3,112,3,116,3,120,3,124,3,128,3,132,3,136,3,140,3,144,3,148,3,152,3,156,3,160,3,164,3,168,3,172,3,176,3,180,3,184,3,188,3,192,3,196,3,200,3,204,3,208,3,212,3,216,3,220,3,224,3,228,3,232,3,236,3,240,3,244,3,248,3,252,3,0,4,4,4,8,4,12,4,16,4,20,4,24,4,28,4,32,4,36,4,40,4,44,4,48,4,52,4,56,4,60,4,64,4,68,4,72,4,76,4,80,4,84,4,88,4,92,4,96,4,100,4,104,4,108,4,112,4,116,4,120,4,124,4,128,4,132,4,136,4,140,4,144,4,148,4,152,4,156,4,160,4,164,4,168,4,172,4,176,4,180,4,184,4,188,4,192,4,196,4,200,4,204,4,208,4,212,4,216,4,20,0,0,112,16,3,0,112,4,0,0,112,203,3,0,112,8,0,0,112,8,0,0,112,51,0,0,112,20,2,0,112,205,3,0,112,24,0,0,112,24,0,0,112,214,3,0,112,32,0,0,112,32,0,0,112,32,0,0,112,32,0,0,112,40,0,0,112,36,0,0,112,21,2,0,112,177,3,0,112,31,0,0,112,176,3,0,112,70,0,0,112,209,3,0,112,52,0,0,112,50,0,0,112,225,3,0,112,56,0,0,112,224,3,0,112,100,0,0,112,100,0,0,112,100,0,0,112,207,3,0,112,48,0,0,112,108,0,0,112,60,0,0,112,96,0,0,112,68,0,0,112,68,0,0,112,216,3,0,112,76,0,0,112,76,0,0,112,76,0,0,112,218,3,0,112,76,0,0,112,219,3,0,112,44,0,0,112,64,0,0,112,104,0,0,112,72,0,0,112,112,0,0,112,165,3,0,112,206,3,0,112,84,0,0,112,124,0,0,112,208,3,0,112,180,3,0,112,179,3,0,112,244,2,0,112,180,3,0,112,222,3,0,112,152,0,0,112,156,0,0,112,170,0,0,112,202,3,0,112,188,0,0,112,123,3,0,112,203,0,0,112,200,0,0,112,163,3,0,112,192,0,0,112,132,0,0,112,196,0,0,112,203,0,0,112,22,1,0,112,20,1,0,112,6,1,0,112,208,0,0,112,214,0,0,112,12,0,0,112,218,0,0,112,215,3,0,112,233,0,0,112,50,3,0,112,232,0,0,112,228,3,0,112,227,3,0,112,212,2,0,112,230,0,0,112,210,3,0,112,246,0,0,112,242,0,0,112,238,0,0,112,250,0,0,112,58,3,0,112,12,1,0,112,213,3,0,112,32,1,0,112,171,3,0,112,168,3,0,112,36,1,0,112,14,1,0,112,68,1,0,112,68,1,0,112,68,1,0,112,226,0,0,112,44,1,0,112,64,1,0,112,112,2,0,112,112,2,0,112,72,1,0,112,88,1,0,112,84,1,0,112,191,0,0,112,191,0,0,112,76,1,0,112,92,1,0,112,104,1,0,112,116,1,0,112,120,1,0,112,120,1,0,112,120,1,0,112,100,1,0,112,112,1,0,112,108,1,0,112,96,1,0,112,96,1,0,112,124,1,0,112,132,1,0,112,144,1,0,112,136,1,0,112,148,1,0,112,161,1,0,112,116,0,0,112,174,0,0,112,152,1,0,112,154,1,0,112,158,1,0,112,136,0,0,112,142,1,0,112,162,1,0,112,162,1,0,112,166,1,0,112,144,0,0,112,174,1,0,112,170,1,0,112,170,1,0,112,184,1,0,112,184,1,0,112,221,3,0,112,186,1,0,112,220,3,0,112,172,1,0,112,172,1,0,112,178,1,0,112,248,1,0,112,242,1,0,112,201,3,0,112,194,1,0,112,39,3,0,112,210,1,0,112,104,0,0,112,240,1,0,112,190,1,0,112,222,1,0,112,161,3,0,112,214,1,0,112,214,1,0,112,224,1,0,112,206,1,0,112,206,1,0,112,198,1,0,112,228,1,0,112,228,1,0,112,211,3,0,112,202,1,0,112,252,1,0,112,252,1,0,112,175,3,0,112,4,2,0,112,54,2,0,112,46,2,0,112,46,2,0,112,16,2,0,112,66,2,0,112,12,2,0,112,42,2,0,112,0,2,0,112,78,2,0,112,92,2,0,112,92,2,0,112,92,2,0,112,92,2,0,112,86,2,0,112,96,2,0,112,74,2,0,112,217,3,0,112,104,2,0,112,108,2,0,112,88,2,0,112,122,2,0,112,204,2,0,112,130,2,0,112,130,2,0,112,178,3,0,112,173,3,0,112,131,2,0,112,42,3,0,112,134,2,0,112,170,2,0,112,90,0,0,112,178,2,0,112,224,2,0,112,170,3,0,112,224,2,0,112,240,2,0,112,190,2,0,112,142,2,0,112,193,2,0,112,191,2,0,112,157,3,0,112,182,2,0,112,194,2,0,112,200,3,0,112,228,2,0,112,216,2,0,112,166,2,0,112,162,3,0,112,42,3,0,112,222,0,0,112,248,2,0,112,236,2,0,112,252,2,0,112,250,2,0,112,204,3,0,112,27,3,0,112,166,3,0,112,20,3,0,112,8,3,0,112,114,2,0,112,24,3,0,112,181,3,0,112,12,3,0,112,133,3,0,112,66,3,0,112,212,3,0,112,36,3,0,112,32,3,0,112,32,3,0,112,32,3,0,112,72,3,0,112,229,3,0,112,230,3,0,112,172,3,0,112,90,3,0,112,90,3,0,112,90,3,0,112,159,3,0,112,92,3,0,112,94,3,0,112,158,3,0,112,169,3,0,112,160,3,0,112,192,2,0,112,192,2,0,112,36,2,0,112,114,3,0,112,182,3,0,112,193,3,0,112,191,3,0,112,187,3,0,112,188,3,0,112,189,3,0,112,190,3,0,112,183,3,0,112,192,3,0,112,186,3,0,112,184,3,0,112,196,3,0,112,185,3,0,112,194,3,0,112,226,3,0,112,195,3,0,112,197,3,0,112,231,3,0,112,208,2,0,112,118,3,0,112,122,3,0,112,123,3,0,112,122,3,0,112,223,3,0,112,198,2,0,112,126,3,0,112,199,3,0,112,180,0,0,112,180,0,0,112,204,2,0,112,204,2,0,112,164,3,0,112,174,3,0,112,167,3,0,112,1,0,32,0,56,1,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,50,19,0,32,7,0,0,0,111,1,0,0,55,19,0,0,55,19,0,0,163,0,0,0,1,0,0,0,138,12,0,0,108,111,99,97,108,101,115,0,97,102,0,97,109,0,97,114,0,97,122,0,98,103,0,98,110,0,98,115,0,99,97,0,99,99,112,0,99,104,114,0,99,115,0,99,121,0,100,97,0,100,101,0,101,101,0,101,108,0,101,110,0,101,115,95,67,79,0,101,116,0,101,117,0,102,97,0,102,105,0,102,105,108,0,102,114,0,103,108,0,103,115,119,0,103,117,0,104,101,0,104,105,0,104,105,95,76,97,116,110,0,104,117,0,104,121,0,105,100,0,105,115,0,105,116,0,106,97,0,107,97,0,107,103,112,0,107,107,0,107,109,0,107,110,0,107,111,0,107,121,0,108,105,106,0,108,111,0,108,116,0,108,118,0,109,107,0,109,108,0,109,110,0,109,114,0,109,115,0,109,121,0,110,98,0,110,101,0,110,108,0,110,110,0,110,111,0,112,97,0,112,108,0,112,116,0,114,111,0,114,111,111,116,0,114,117,0,115,105,0,115,107,0,115,108,0,115,113,0,115,114,0,115,118,0,116,97,0,116,101,0,116,104,0,116,114,0,117,107,0,117,114,0,117,122,0,118,105,0,121,114,108,0,121,117,101,0,122,104,0,122,117,0,108,111,99,97,108,101,115,95,115,101,108,101,99,116,105,111,110,0,114,117,108,101,115,0,115,101,116,49,0,98,101,102,111,114,101,0,102,114,111,109,0,112,109,0,115,101,116,49,48,0,97,102,116,101,114,110,111,111,110,49,0,101,118,101,110,105,110,103,49,0,109,105,100,110,105,103,104,116,0,97,116,0,109,111,114,110,105,110,103,49,0,110,105,103,104,116,49,0,110,111,111,110,0,115,101,116,49,48,48,0,115,101,116,49,48,49,0,115,101,116,49,48,50,0,115,101,116,49,48,51,0,115,101,116,49,48,52,0,115,101,116,49,48,53,0,109,111,114,110,105,110,103,50,0,115,101,116,49,48,54,0,115,101,116,49,48,55,0,115,101,116,49,48,56,0,115,101,116,49,48,57,0,115,101,116,49,49,0,115,101,116,49,49,48,0,115,101,116,49,49,49,0,115,101,116,49,49,50,0,115,101,116,49,49,51,0,115,101,116,49,49,52,0,115,101,116,49,49,53,0,115,101,116,49,49,54,0,97,102,116,101,114,110,111,111,110,50,0,110,105,103,104,116,50,0,115,101,116,49,49,55,0,115,101,116,49,49,56,0,115,101,116,49,49,57,0,115,101,116,49,50,0,115,101,116,49,50,48,0,115,101,116,49,50,49,0,115,101,116,49,50,50,0,115,101,116,49,50,51,0,115,101,116,49,50,52,0,115,101,116,49,50,53,0,115,101,116,49,50,54,0,115,101,116,49,50,55,0,115,101,116,49,50,56,0,101,118,101,110,105,110,103,50,0,115,101,116,49,50,57,0,115,101,116,49,51,0,115,101,116,49,51,48,0,115,101,116,49,51,49,0,115,101,116,49,51,50,0,115,101,116,49,51,51,0,115,101,116,49,51,52,0,115,101,116,49,51,53,0,115,101,116,49,51,54,0,115,101,116,49,51,55,0,115,101,116,49,51,56,0,115,101,116,49,51,57,0,115,101,116,49,52,0,115,101,116,49,52,48,0,115,101,116,49,52,49,0,115,101,116,49,52,50,0,115,101,116,49,52,51,0,115,101,116,49,52,52,0,115,101,116,49,52,53,0,115,101,116,49,52,54,0,115,101,116,49,52,55,0,115,101,116,49,52,56,0,115,101,116,49,52,57,0,115,101,116,49,53,0,115,101,116,49,53,48,0,115,101,116,49,53,49,0,115,101,116,49,53,50,0,115,101,116,49,53,51,0,115,101,116,49,53,52,0,115,101,116,49,53,53,0,115,101,116,49,53,54,0,115,101,116,49,53,55,0,115,101,116,49,53,56,0,115,101,116,49,53,57,0,115,101,116,49,54,0,115,101,116,49,54,48,0,115,101,116,49,54,49,0,115,101,116,49,54,50,0,115,101,116,49,54,51,0,115,101,116,49,55,0,115,101,116,49,56,0,115,101,116,49,57,0,115,101,116,50,0,115,101,116,50,48,0,115,101,116,50,49,0,115,101,116,50,50,0,115,101,116,50,51,0,115,101,116,50,52,0,115,101,116,50,53,0,115,101,116,50,54,0,115,101,116,50,55,0,115,101,116,50,56,0,115,101,116,50,57,0,115,101,116,51,0,115,101,116,51,48,0,115,101,116,51,49,0,115,101,116,51,50,0,115,101,116,51,51,0,115,101,116,51,52,0,115,101,116,51,53,0,115,101,116,51,54,0,115,101,116,51,55,0,115,101,116,51,56,0,115,101,116,51,57,0,115,101,116,52,0,115,101,116,52,48,0,115,101,116,52,49,0,115,101,116,52,50,0,115,101,116,52,51,0,115,101,116,52,52,0,115,101,116,52,53,0,115,101,116,52,54,0,115,101,116,52,55,0,115,101,116,52,56,0,115,101,116,52,57,0,115,101,116,53,0,115,101,116,53,48,0,115,101,116,53,49,0,115,101,116,53,50,0,115,101,116,53,51,0,115,101,116,53,52,0,115,101,116,53,53,0,115,101,116,53,54,0,115,101,116,53,55,0,115,101,116,53,56,0,115,101,116,53,57,0,115,101,116,54,0,115,101,116,54,48,0,115,101,116,54,49,0,115,101,116,54,50,0,115,101,116,54,51,0,115,101,116,54,52,0,115,101,116,54,53,0,115,101,116,54,54,0,115,101,116,54,55,0,115,101,116,54,56,0,115,101,116,54,57,0,115,101,116,55,0,115,101,116,55,48,0,115,101,116,55,49,0,115,101,116,55,50,0,115,101,116,55,51,0,115,101,116,55,52,0,115,101,116,55,53,0,115,101,116,55,54,0,115,101,116,55,55,0,115,101,116,55,56,0,115,101,116,55,57,0,115,101,116,56,0,115,101,116,56,48,0,115,101,116,56,49,0,115,101,116,56,50,0,115,101,116,56,51,0,115,101,116,56,52,0,115,101,116,56,53,0,115,101,116,56,54,0,115,101,116,56,55,0,115,101,116,56,56,0,115,101,116,56,57,0,115,101,116,57,0,115,101,116,57,48,0,115,101,116,57,49,0,115,101,116,57,50,0,115,101,116,57,51,0,115,101,116,57,52,0,115,101,116,57,53,0,115,101,116,57,54,0,115,101,116,57,55,0,115,101,116,57,56,0,115,101,116,57,57,0,170,170,170,0,0,115,0,101,0,116,0,56,0,0,0,115,0,101,0,116,0,49,0,0,0,115,0,101,0,116,0,50,0,0,0,115,0,101,0,116,0,51,0,0,0,115,0,101,0,116,0,52,0,0,0,115,0,101,0,116,0,53,0,0,0,115,0,101,0,116,0,54,0,0,0,115,0,101,0,116,0,55,0,0,0,115,0,101,0,116,0,57,0,0,0,49,0,50,0,58,0,48,0,48,0,0,0,49,0,56,0,58,0,48,0,48,0,0,0,48,0,54,0,58,0,48,0,48,0,0,0,48,0,48,0,58,0,48,0,48,0,0,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,58,0,48,0,48,0,0,0,49,0,54,0,58,0,48,0,48,0,0,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,52,0,58,0,48,0,48,0,0,0,48,0,51,0,58,0,48,0,48,0,0,0,48,0,49,0,58,0,48,0,48,0,0,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,49,0,58,0,48,0,48,0,0,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,53,0,58,0,48,0,48,0,0,0,49,0,55,0,58,0,48,0,48,0,0,0,48,0,55,0,58,0,48,0,48,0,0,0,115,0,101,0,116,0,57,0,48,0,0,0,115,0,101,0,116,0,51,0,54,0,0,0,115,0,101,0,116,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,53,0,0,0,115,0,101,0,116,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,55,0,0,0,115,0,101,0,116,0,49,0,56,0,0,0,115,0,101,0,116,0,49,0,57,0,0,0,115,0,101,0,116,0,50,0,48,0,0,0,115,0,101,0,116,0,50,0,49,0,0,0,115,0,101,0,116,0,50,0,50,0,0,0,115,0,101,0,116,0,50,0,51,0,0,0,115,0,101,0,116,0,50,0,52,0,0,0,115,0,101,0,116,0,50,0,53,0,0,0,115,0,101,0,116,0,50,0,54,0,0,0,115,0,101,0,116,0,50,0,55,0,0,0,115,0,101,0,116,0,50,0,56,0,0,0,115,0,101,0,116,0,50,0,57,0,0,0,115,0,101,0,116,0,51,0,48,0,0,0,115,0,101,0,116,0,51,0,49,0,0,0,115,0,101,0,116,0,51,0,50,0,0,0,115,0,101,0,116,0,51,0,51,0,0,0,115,0,101,0,116,0,51,0,52,0,0,0,115,0,101,0,116,0,51,0,53,0,0,0,115,0,101,0,116,0,51,0,55,0,0,0,115,0,101,0,116,0,51,0,56,0,0,0,115,0,101,0,116,0,51,0,57,0,0,0,115,0,101,0,116,0,52,0,48,0,0,0,115,0,101,0,116,0,52,0,49,0,0,0,115,0,101,0,116,0,52,0,50,0,0,0,115,0,101,0,116,0,52,0,51,0,0,0,115,0,101,0,116,0,52,0,52,0,0,0,115,0,101,0,116,0,52,0,53,0,0,0,115,0,101,0,116,0,52,0,54,0,0,0,115,0,101,0,116,0,52,0,55,0,0,0,115,0,101,0,116,0,52,0,56,0,0,0,115,0,101,0,116,0,52,0,57,0,0,0,115,0,101,0,116,0,53,0,48,0,0,0,115,0,101,0,116,0,53,0,49,0,0,0,115,0,101,0,116,0,53,0,50,0,0,0,115,0,101,0,116,0,53,0,51,0,0,0,115,0,101,0,116,0,53,0,52,0,0,0,115,0,101,0,116,0,53,0,53,0,0,0,115,0,101,0,116,0,53,0,54,0,0,0,115,0,101,0,116,0,53,0,55,0,0,0,115,0,101,0,116,0,53,0,56,0,0,0,115,0,101,0,116,0,53,0,57,0,0,0,115,0,101,0,116,0,54,0,48,0,0,0,115,0,101,0,116,0,54,0,49,0,0,0,115,0,101,0,116,0,54,0,50,0,0,0,115,0,101,0,116,0,54,0,51,0,0,0,115,0,101,0,116,0,54,0,52,0,0,0,115,0,101,0,116,0,54,0,53,0,0,0,115,0,101,0,116,0,54,0,54,0,0,0,115,0,101,0,116,0,54,0,55,0,0,0,115,0,101,0,116,0,54,0,56,0,0,0,115,0,101,0,116,0,54,0,57,0,0,0,115,0,101,0,116,0,55,0,48,0,0,0,115,0,101,0,116,0,55,0,49,0,0,0,115,0,101,0,116,0,55,0,50,0,0,0,115,0,101,0,116,0,55,0,51,0,0,0,115,0,101,0,116,0,55,0,52,0,0,0,115,0,101,0,116,0,55,0,53,0,0,0,115,0,101,0,116,0,55,0,54,0,0,0,115,0,101,0,116,0,55,0,55,0,0,0,115,0,101,0,116,0,55,0,56,0,0,0,115,0,101,0,116,0,55,0,57,0,0,0,115,0,101,0,116,0,56,0,48,0,0,0,115,0,101,0,116,0,56,0,49,0,0,0,115,0,101,0,116,0,56,0,50,0,0,0,115,0,101,0,116,0,56,0,51,0,0,0,115,0,101,0,116,0,56,0,52,0,0,0,115,0,101,0,116,0,56,0,53,0,0,0,115,0,101,0,116,0,56,0,54,0,0,0,115,0,101,0,116,0,56,0,55,0,0,0,115,0,101,0,116,0,56,0,56,0,0,0,115,0,101,0,116,0,56,0,57,0,0,0,115,0,101,0,116,0,57,0,49,0,0,0,115,0,101,0,116,0,57,0,50,0,0,0,115,0,101,0,116,0,57,0,51,0,0,0,115,0,101,0,116,0,57,0,52,0,0,0,115,0,101,0,116,0,57,0,53,0,0,0,115,0,101,0,116,0,57,0,54,0,0,0,115,0,101,0,116,0,57,0,55,0,0,0,115,0,101,0,116,0,57,0,56,0,0,0,115,0,101,0,116,0,57,0,57,0,0,0,115,0,101,0,116,0,49,0,50,0,50,0,0,0,115,0,101,0,116,0,49,0,48,0,48,0,0,0,115,0,101,0,116,0,49,0,48,0,49,0,0,0,115,0,101,0,116,0,49,0,48,0,50,0,0,0,115,0,101,0,116,0,49,0,48,0,51,0,0,0,115,0,101,0,116,0,49,0,48,0,52,0,0,0,115,0,101,0,116,0,49,0,48,0,53,0,0,0,115,0,101,0,116,0,49,0,48,0,54,0,0,0,115,0,101,0,116,0,49,0,48,0,55,0,0,0,115,0,101,0,116,0,49,0,48,0,56,0,0,0,115,0,101,0,116,0,49,0,48,0,57,0,0,0,115,0,101,0,116,0,49,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,49,0,53,0,0,0,115,0,101,0,116,0,49,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,49,0,55,0,0,0,115,0,101,0,116,0,49,0,49,0,56,0,0,0,115,0,101,0,116,0,49,0,49,0,57,0,0,0,115,0,101,0,116,0,49,0,50,0,48,0,0,0,115,0,101,0,116,0,49,0,50,0,49,0,0,0,115,0,101,0,116,0,49,0,50,0,51,0,0,0,115,0,101,0,116,0,49,0,50,0,52,0,0,0,115,0,101,0,116,0,49,0,50,0,53,0,0,0,115,0,101,0,116,0,49,0,50,0,54,0,0,0,115,0,101,0,116,0,49,0,50,0,55,0,0,0,115,0,101,0,116,0,49,0,50,0,56,0,0,0,115,0,101,0,116,0,49,0,50,0,57,0,0,0,115,0,101,0,116,0,49,0,51,0,48,0,0,0,115,0,101,0,116,0,49,0,51,0,49,0,0,0,115,0,101,0,116,0,49,0,51,0,50,0,0,0,115,0,101,0,116,0,49,0,51,0,51,0,0,0,115,0,101,0,116,0,49,0,51,0,52,0,0,0,115,0,101,0,116,0,49,0,51,0,53,0,0,0,115,0,101,0,116,0,49,0,51,0,54,0,0,0,115,0,101,0,116,0,49,0,51,0,55,0,0,0,115,0,101,0,116,0,49,0,51,0,56,0,0,0,115,0,101,0,116,0,49,0,51,0,57,0,0,0,115,0,101,0,116,0,49,0,52,0,48,0,0,0,115,0,101,0,116,0,49,0,52,0,49,0,0,0,115,0,101,0,116,0,49,0,52,0,50,0,0,0,115,0,101,0,116,0,49,0,52,0,51,0,0,0,115,0,101,0,116,0,49,0,52,0,52,0,0,0,115,0,101,0,116,0,49,0,52,0,53,0,0,0,115,0,101,0,116,0,49,0,52,0,54,0,0,0,115,0,101,0,116,0,49,0,52,0,55,0,0,0,115,0,101,0,116,0,49,0,52,0,56,0,0,0,115,0,101,0,116,0,49,0,52,0,57,0,0,0,115,0,101,0,116,0,49,0,53,0,48,0,0,0,115,0,101,0,116,0,49,0,53,0,49,0,0,0,115,0,101,0,116,0,49,0,53,0,50,0,0,0,115,0,101,0,116,0,49,0,53,0,51,0,0,0,115,0,101,0,116,0,49,0,53,0,52,0,0,0,115,0,101,0,116,0,49,0,53,0,53,0,0,0,115,0,101,0,116,0,49,0,53,0,54,0,0,0,115,0,101,0,116,0,49,0,53,0,55,0,0,0,115,0,101,0,116,0,49,0,53,0,56,0,0,0,115,0,101,0,116,0,49,0,53,0,57,0,0,0,115,0,101,0,116,0,49,0,54,0,48,0,0,0,115,0,101,0,116,0,49,0,54,0,49,0,0,0,115,0,101,0,116,0,49,0,54,0,50,0,0,0,115,0,101,0,116,0,49,0,54,0,51,0,0,0,85,0,40,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,68,0,72,0,75,0,78,0,81,0,84,0,87,0,90,0,69,1,93,0,99,0,102,0,105,0,108,0,111,0,115,0,118,0,121,0,125,0,128,0,131,0,134,0,69,0,142,0,145,0,148,0,151,0,154,0,157,0,160,0,163,0,167,0,170,0,173,0,176,0,179,0,182,0,186,0,189,0,192,0,195,0,198,0,201,0,204,0,207,0,210,0,213,0,216,0,219,0,222,0,225,0,228,0,231,0,234,0,237,0,240,0,245,0,248,0,251,0,254,0,1,1,4,1,7,1,122,0,10,1,13,1,16,1,19,1,22,1,25,1,28,1,31,1,34,1,38,1,42,1,45,1,16,0,44,2,32,2,8,2,18,1,196,0,42,1,232,0,196,0,92,2,54,1,104,2,36,0,31,0,98,2,132,1,11,0,220,0,226,0,186,1,80,2,150,1,180,1,252,1,0,1,214,0,26,0,102,1,38,2,90,1,96,1,36,1,192,1,144,1,240,1,202,0,238,0,210,1,74,2,110,2,14,2,56,2,174,1,216,1,20,2,244,0,234,1,72,1,78,1,24,1,168,1,86,2,108,1,246,1,222,1,1,0,114,1,21,0,1,0,1,0,120,1,66,1,208,0,250,0,6,0,6,1,126,1,60,1,48,1,138,1,30,1,41,0,62,2,156,1,162,1,228,1,2,2,12,1,84,1,26,2,50,2,116,2,204,1,198,1,68,2,84,0,40,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,68,0,72,0,75,0,78,0,81,0,84,0,87,0,90,0,69,1,93,0,99,0,102,0,105,0,108,0,111,0,115,0,118,0,121,0,125,0,128,0,131,0,69,0,142,0,145,0,148,0,151,0,154,0,157,0,160,0,163,0,167,0,170,0,173,0,176,0,179,0,182,0,186,0,189,0,192,0,195,0,198,0,201,0,204,0,207,0,210,0,213,0,216,0,219,0,222,0,225,0,228,0,231,0,234,0,237,0,240,0,245,0,248,0,251,0,254,0,1,1,4,1,7,1,122,0,10,1,13,1,16,1,19,1,22,1,25,1,28,1,31,1,34,1,38,1,42,1,45,1,134,2,91,4,28,4,221,3,32,3,218,2,246,2,200,2,218,2,119,4,11,3,133,4,158,2,152,2,126,4,74,3,128,2,188,2,194,2,249,3,98,4,81,3,0,4,56,4,232,2,182,2,146,2,123,3,35,4,116,3,239,2,7,4,88,3,42,4,170,2,206,2,200,3,95,3,140,4,228,3,70,4,179,3,207,3,235,3,212,2,21,4,60,3,67,3,39,3,172,3,105,4,130,3,49,4,112,4,190,0,137,3,140,2,190,0,190,0,144,3,25,3,176,2,225,2,122,2,46,3,151,3,18,3,4,3,102,3,253,2,164,2,77,4,158,3,165,3,14,4,214,3,53,3,109,3,242,3,63,4,147,4,193,3,186,3,84,4,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,160,0,70,0,2,0,77,1,84,1,130,0,160,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,70,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,154,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,124,0,178,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,70,0,142,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,76,0,118,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,112,0,88,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,58,0,142,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,94,0,130,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,100,0,136,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,136,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,172,0,130,0,2,0,77,1,84,1,52,0,172,0,2,0,77,1,84,1,88,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,88,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,154,0,88,0,2,0,77,1,84,1,70,0,154,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,88,0,52,0,2,0,77,1,84,1,76,0,88,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,46,0,160,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,88,0,178,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,160,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,58,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,154,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,154,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,148,0,58,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,94,0,118,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,124,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,136,0,142,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,112,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,172,0,106,0,2,0,77,1,84,1,52,0,172,0,2,0,77,1,84,1,106,0,64,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,46,0,142,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,76,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,184,0,70,0,2,0,77,1,84,1,46,0,184,0,2,0,77,1,84,1,70,0,88,0,2,0,77,1,84,1,118,0,106,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,76,0,88,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,100,0,70,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,160,0,70,0,2,0,77,1,84,1,130,0,160,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,70,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,112,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,142,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,142,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,124,0,178,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,70,0,142,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,94,0,130,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,100,0,136,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,136,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,172,0,130,0,2,0,77,1,84,1,52,0,172,0,2,0,77,1,84,1,88,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,88,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,58,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,58,0,70,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,154,0,88,0,2,0,77,1,84,1,70,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,94,0,118,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,172,0,106,0,2,0,77,1,84,1,52,0,172,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,64,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,46,0,142,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,88,0,52,0,2,0,77,1,84,1,76,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,46,0,160,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,88,0,178,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,160,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,58,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,136,0,142,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,112,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,184,0,70,0,2,0,77,1,84,1,46,0,184,0,2,0,77,1,84,1,70,0,88,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,106,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,76,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,46,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,100,0,70,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,76,0,118,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,124,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,124,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,76,0,88,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,112,0,2,0,43,0,89,1,170,170,238,5,0,80,243,5,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,248,5,0,80,253,5,0,80,2,6,0,80,5,6,0,80,10,6,0,80,15,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,18,6,0,80,23,6,0,80,28,6,0,80,33,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,38,6,0,80,43,6,0,80,48,6,0,80,53,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,58,6,0,80,63,6,0,80,68,6,0,80,73,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,78,6,0,80,83,6,0,80,88,6,0,80,93,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,98,6,0,80,103,6,0,80,108,6,0,80,113,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,118,6,0,80,123,6,0,80,128,6,0,80,133,6,0,80,138,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,143,6,0,80,148,6,0,80,153,6,0,80,158,6,0,80,163,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,168,6,0,80,173,6,0,80,178,6,0,80,183,6,0,80,188,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,193,6,0,80,198,6,0,80,203,6,0,80,208,6,0,80,213,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,218,6,0,80,223,6,0,80,228,6,0,80,233,6,0,80,238,6,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,243,6,0,80,248,6,0,80,253,6,0,80,0,7,0,80,5,7,0,80,10,7,0,80,5,0,98,1,109,1,130,1,193,1,139,1,13,7,0,80,18,7,0,80,23,7,0,80,28,7,0,80,33,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,38,7,0,80,43,7,0,80,48,7,0,80,53,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,58,7,0,80,63,7,0,80,68,7,0,80,73,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,78,7,0,80,83,7,0,80,88,7,0,80,93,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,98,7,0,80,103,7,0,80,108,7,0,80,113,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,118,7,0,80,123,7,0,80,128,7,0,80,133,7,0,80,6,0,98,1,29,2,130,1,193,1,139,1,40,2,170,170,138,7,0,80,143,7,0,80,148,7,0,80,153,7,0,80,158,7,0,80,163,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,168,7,0,80,173,7,0,80,178,7,0,80,183,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,188,7,0,80,193,7,0,80,198,7,0,80,203,7,0,80,5,0,98,1,109,1,130,1,193,1,139,1,208,7,0,80,213,7,0,80,218,7,0,80,223,7,0,80,228,7,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,233,7,0,80,238,7,0,80,243,7,0,80,246,7,0,80,251,7,0,80,0,8,0,80,5,0,98,1,29,2,109,1,130,1,139,1,5,8,0,80,10,8,0,80,15,8,0,80,20,8,0,80,25,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,30,8,0,80,35,8,0,80,40,8,0,80,45,8,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,50,8,0,80,55,8,0,80,60,8,0,80,65,8,0,80,70,8,0,80,75,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,80,8,0,80,85,8,0,80,90,8,0,80,95,8,0,80,5,0,98,1,109,1,130,1,193,1,139,1,100,8,0,80,105,8,0,80,110,8,0,80,115,8,0,80,120,8,0,80,5,0,98,1,29,2,109,1,130,1,139,1,125,8,0,80,130,8,0,80,135,8,0,80,140,8,0,80,145,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,150,8,0,80,155,8,0,80,160,8,0,80,165,8,0,80,6,0,98,1,109,1,130,1,193,1,139,1,40,2,170,170,170,8,0,80,175,8,0,80,180,8,0,80,185,8,0,80,190,8,0,80,195,8,0,80,7,0,98,1,29,2,109,1,137,2,130,1,193,1,139,1,200,8,0,80,205,8,0,80,210,8,0,80,215,8,0,80,220,8,0,80,225,8,0,80,230,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,235,8,0,80,240,8,0,80,245,8,0,80,250,8,0,80,5,0,109,1,130,1,193,1,139,1,146,1,255,8,0,80,4,9,0,80,9,9,0,80,14,9,0,80,19,9,0,80,7,0,98,1,29,2,109,1,137,2,130,1,193,1,139,1,22,9,0,80,27,9,0,80,32,9,0,80,37,9,0,80,42,9,0,80,47,9,0,80,52,9,0,80,4,0,98,1,109,1,130,1,139,1,170,170,57,9,0,80,62,9,0,80,67,9,0,80,72,9,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,77,9,0,80,82,9,0,80,87,9,0,80,92,9,0,80,97,9,0,80,102,9,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,107,9,0,80,112,9,0,80,117,9,0,80,122,9,0,80,127,9,0,80,132,9,0,80,5,0,98,1,109,1,130,1,139,1,40,2,137,9,0,80,142,9,0,80,147,9,0,80,152,9,0,80,157,9,0,80,5,0,98,1,109,1,130,1,193,1,139,1,162,9,0,80,167,9,0,80,172,9,0,80,177,9,0,80,182,9,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,187,9,0,80,192,9,0,80,197,9,0,80,202,9,0,80,207,9,0,80,212,9,0,80,6,0,98,1,109,1,130,1,193,1,139,1,40,2,170,170,217,9,0,80,222,9,0,80,227,9,0,80,232,9,0,80,237,9,0,80,242,9,0,80,4,0,98,1,109,1,130,1,139,1,170,170,247,9,0,80,252,9,0,80,1,10,0,80,6,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,11,10,0,80,16,10,0,80,21,10,0,80,26,10,0,80,4,0,109,1,193,1,139,1,146,1,170,170,31,10,0,80,36,10,0,80,41,10,0,80,46,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,49,10,0,80,54,10,0,80,59,10,0,80,64,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,69,10,0,80,74,10,0,80,79,10,0,80,84,10,0,80,5,0,98,1,109,1,130,1,193,1,139,1,89,10,0,80,94,10,0,80,99,10,0,80,104,10,0,80,109,10,0,80,6,0,98,1,109,1,130,1,193,1,139,1,40,2,170,170,114,10,0,80,119,10,0,80,124,10,0,80,129,10,0,80,134,10,0,80,139,10,0,80,6,0,98,1,29,2,109,1,137,2,130,1,139,1,170,170,144,10,0,80,149,10,0,80,154,10,0,80,159,10,0,80,164,10,0,80,169,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,174,10,0,80,179,10,0,80,184,10,0,80,189,10,0,80,7,0,98,1,29,2,109,1,130,1,193,1,139,1,40,2,194,10,0,80,199,10,0,80,204,10,0,80,209,10,0,80,214,10,0,80,219,10,0,80,224,10,0,80,6,0,98,1,29,2,109,1,130,1,139,1,40,2,170,170,229,10,0,80,234,10,0,80,239,10,0,80,244,10,0,80,249,10,0,80,254,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,3,11,0,80,8,11,0,80,13,11,0,80,18,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,23,11,0,80,28,11,0,80,33,11,0,80,38,11,0,80,43,11,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,48,11,0,80,53,11,0,80,58,11,0,80,63,11,0,80,66,11,0,80,71,11,0,80,76,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,81,11,0,80,86,11,0,80,91,11,0,80,96,11,0,80,101,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,106,11,0,80,111,11,0,80,116,11,0,80,121,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,126,11,0,80,131,11,0,80,136,11,0,80,141,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,146,11,0,80,151,11,0,80,156,11,0,80,161,11,0,80,166,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,171,11,0,80,176,11,0,80,181,11,0,80,186,11,0,80,191,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,196,11,0,80,201,11,0,80,206,11,0,80,211,11,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,216,11,0,80,221,11,0,80,226,11,0,80,231,11,0,80,236,11,0,80,241,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,246,11,0,80,251,11,0,80,0,12,0,80,5,12,0,80,4,0,98,1,109,1,130,1,139,1,170,170,10,12,0,80,15,12,0,80,20,12,0,80,25,12,0,80,2,0,98,1,130,1,170,170,30,12,0,80,35,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,40,12,0,80,45,12,0,80,50,12,0,80,53,12,0,80,58,12,0,80,63,12,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,66,12,0,80,71,12,0,80,76,12,0,80,81,12,0,80,86,12,0,80,91,12,0,80,3,0,98,1,109,1,130,1,96,12,0,80,101,12,0,80,106,12,0,80,4,0,98,1,109,1,130,1,139,1,170,170,111,12,0,80,116,12,0,80,121,12,0,80,126,12,0,80,4,0,98,1,109,1,130,1,139,1,170,170,131,12,0,80,136,12,0,80,141,12,0,80,146,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,151,12,0,80,156,12,0,80,161,12,0,80,164,12,0,80,169,12,0,80,174,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,177,12,0,80,182,12,0,80,187,12,0,80,190,12,0,80,195,12,0,80,200,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,203,12,0,80,208,12,0,80,213,12,0,80,216,12,0,80,221,12,0,80,226,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,229,12,0,80,234,12,0,80,239,12,0,80,242,12,0,80,247,12,0,80,252,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,255,12,0,80,4,13,0,80,9,13,0,80,12,13,0,80,17,13,0,80,22,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,25,13,0,80,30,13,0,80,35,13,0,80,38,13,0,80,43,13,0,80,48,13,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,51,13,0,80,56,13,0,80,61,13,0,80,64,13,0,80,69,13,0,80,74,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,79,13,0,80,84,13,0,80,89,13,0,80,92,13,0,80,97,13,0,80,102,13,0,80,107,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,110,13,0,80,115,13,0,80,120,13,0,80,123,13,0,80,128,13,0,80,133,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,136,13,0,80,141,13,0,80,146,13,0,80,149,13,0,80,154,13,0,80,159,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,162,13,0,80,167,13,0,80,172,13,0,80,175,13,0,80,180,13,0,80,185,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,188,13,0,80,193,13,0,80,198,13,0,80,201,13,0,80,206,13,0,80,211,13,0,80,216,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,219,13,0,80,224,13,0,80,229,13,0,80,232,13,0,80,237,13,0,80,242,13,0,80,247,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,250,13,0,80,255,13,0,80,4,14,0,80,7,14,0,80,12,14,0,80,17,14,0,80,22,14,0,80,5,0,98,1,109,1,118,1,130,1,139,1,25,14,0,80,30,14,0,80,35,14,0,80,38,14,0,80,43,14,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,48,14,0,80,53,14,0,80,58,14,0,80,61,14,0,80,66,14,0,80,71,14,0,80,76,14,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,79,14,0,80,84,14,0,80,89,14,0,80,92,14,0,80,97,14,0,80,102,14,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,105,14,0,80,110,14,0,80,115,14,0,80,118,14,0,80,123,14,0,80,128,14,0,80,6,0,98,1,29,2,109,1,118,1,130,1,139,1,170,170,131,14,0,80,136,14,0,80,141,14,0,80,146,14,0,80,149,14,0,80,154,14,0,80,5,0,98,1,109,1,118,1,130,1,139,1,159,14,0,80,164,14,0,80,169,14,0,80,172,14,0,80,177,14,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,182,14,0,80,187,14,0,80,192,14,0,80,195,14,0,80,200,14,0,80,205,14,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,208,14,0,80,213,14,0,80,218,14,0,80,223,14,0,80,228,14,0,80,233,14,0,80,5,0,98,1,109,1,118,1,130,1,139,1,238,14,0,80,243,14,0,80,248,14,0,80,251,14,0,80,0,15,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,5,15,0,80,10,15,0,80,15,15,0,80,18,15,0,80,23,15,0,80,28,15,0,80,33,15,0,80,7,0,98,1,29,2,109,1,118,1,130,1,139,1,146,1,36,15,0,80,41,15,0,80,46,15,0,80,51,15,0,80,54,15,0,80,59,15,0,80,64,15,0,80,5,0,98,1,109,1,118,1,130,1,139,1,67,15,0,80,72,15,0,80,77,15,0,80,80,15,0,80,85,15,0,80,5,0,98,1,109,1,118,1,130,1,139,1,90,15,0,80,95,15,0,80,100,15,0,80,103,15,0,80,108,15,0,80,8,0,98,1,109,1,118,1,130,1,193,1,139,1,40,2,146,1,170,170,113,15,0,80,118,15,0,80,123,15,0,80,126,15,0,80,131,15,0,80,136,15,0,80,141,15,0,80,146,15,0,80,4,0,98,1,109,1,130,1,139,1,170,170,149,15,0,80,154,15,0,80,159,15,0,80,164,15,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,169,15,0,80,174,15,0,80,179,15,0,80,182,15,0,80,187,15,0,80,192,15,0,80,197,15,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,200,15,0,80,205,15,0,80,210,15,0,80,213,15,0,80,218,15,0,80,223,15,0,80,6,0,98,1,29,2,130,1,193,1,139,1,40,2,170,170,226,15,0,80,231,15,0,80,236,15,0,80,241,15,0,80,246,15,0,80,251,15,0,80,9,0,98,1,29,2,109,1,137,2,118,1,130,1,193,1,139,1,146,1,0,16,0,80,5,16,0,80,10,16,0,80,15,16,0,80,20,16,0,80,23,16,0,80,28,16,0,80,33,16,0,80,38,16,0,80,5,0,98,1,109,1,118,1,130,1,139,1,41,16,0,80,46,16,0,80,51,16,0,80,54,16,0,80,59,16,0,80,9,0,98,1,29,2,109,1,137,2,118,1,130,1,193,1,139,1,146,1,64,16,0,80,69,16,0,80,74,16,0,80,79,16,0,80,84,16,0,80,87,16,0,80,92,16,0,80,97,16,0,80,102,16,0,80,5,0,98,1,109,1,118,1,130,1,139,1,105,16,0,80,110,16,0,80,115,16,0,80,118,16,0,80,123,16,0,80,6,0,98,1,29,2,109,1,118,1,130,1,139,1,170,170,128,16,0,80,133,16,0,80,138,16,0,80,143,16,0,80,146,16,0,80,151,16,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,156,16,0,80,161,16,0,80,166,16,0,80,169,16,0,80,174,16,0,80,179,16,0,80,184,16,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,187,16,0,80,192,16,0,80,197,16,0,80,200,16,0,80,205,16,0,80,210,16,0,80,8,0,98,1,109,1,118,1,130,1,193,1,139,1,40,2,146,1,170,170,213,16,0,80,218,16,0,80,223,16,0,80,226,16,0,80,231,16,0,80,236,16,0,80,241,16,0,80,246,16,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,249,16,0,80,254,16,0,80,3,17,0,80,8,17,0,80,11,17,0,80,16,17,0,80,21,17,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,26,17,0,80,31,17,0,80,36,17,0,80,41,17,0,80,44,17,0,80,49,17,0,80,54,17,0,80,7,0,98,1,109,1,118,1,130,1,139,1,40,2,146,1,59,17,0,80,64,17,0,80,69,17,0,80,72,17,0,80,77,17,0,80,82,17,0,80,87,17,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,90,17,0,80,95,17,0,80,100,17,0,80,103,17,0,80,108,17,0,80,113,17,0,80,118,17,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,121,17,0,80,126,17,0,80,131,17,0,80,134,17,0,80,139,17,0,80,144,17,0,80,8,0,98,1,29,2,109,1,137,2,118,1,130,1,139,1,146,1,170,170,147,17,0,80,152,17,0,80,157,17,0,80,162,17,0,80,167,17,0,80,170,17,0,80,175,17,0,80,180,17,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,183,17,0,80,188,17,0,80,193,17,0,80,196,17,0,80,201,17,0,80,206,17,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,209,17,0,80,214,17,0,80,219,17,0,80,224,17,0,80,227,17,0,80,232,17,0,80,237,17,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,242,17,0,80,247,17,0,80,252,17,0,80,255,17,0,80,4,18,0,80,9,18,0,80,5,0,98,1,109,1,130,1,193,1,139,1,12,18,0,80,17,18,0,80,22,18,0,80,27,18,0,80,32,18,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,37,18,0,80,42,18,0,80,47,18,0,80,50,18,0,80,55,18,0,80,60,18,0,80,65,18,0,80,8,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,146,1,170,170,68,18,0,80,73,18,0,80,78,18,0,80,83,18,0,80,86,18,0,80,91,18,0,80,96,18,0,80,101,18,0,80,8,0,98,1,109,1,118,1,130,1,193,1,139,1,40,2,146,1,170,170,104,18,0,80,109,18,0,80,114,18,0,80,117,18,0,80,122,18,0,80,127,18,0,80,132,18,0,80,137,18,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,140,18,0,80,145,18,0,80,150,18,0,80,153,18,0,80,158,18,0,80,163,18,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,166,18,0,80,171,18,0,80,176,18,0,80,179,18,0,80,184,18,0,80,189,18,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,192,18,0,80,197,18,0,80,202,18,0,80,205,18,0,80,210,18,0,80,215,18,0,80,7,0,98,1,29,2,109,1,130,1,193,1,139,1,40,2,218,18,0,80,223,18,0,80,228,18,0,80,233,18,0,80,238,18,0,80,243,18,0,80,248,18,0,80,7,0,98,1,29,2,109,1,118,1,130,1,139,1,40,2,253,18,0,80,2,19,0,80,7,19,0,80,12,19,0,80,15,19,0,80,20,19,0,80,25,19,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,30,19,0,80,35,19,0,80,40,19,0,80,43,19,0,80,48,19,0,80,53,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,58,19,0,80,63,19,0,80,68,19,0,80,71,19,0,80,76,19,0,80,81,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,84,19,0,80,89,19,0,80,94,19,0,80,97,19,0,80,102,19,0,80,107,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,110,19,0,80,115,19,0,80,120,19,0,80,123,19,0,80,128,19,0,80,133,19,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,136,19,0,80,141,19,0,80,146,19,0,80,149,19,0,80,154,19,0,80,159,19,0,80,164,19,0,80,5,0,98,1,109,1,130,1,193,1,139,1,167,19,0,80,172,19,0,80,177,19,0,80,182,19,0,80,187,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,192,19,0,80,197,19,0,80,202,19,0,80,205,19,0,80,210,19,0,80,215,19,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,218,19,0,80,223,19,0,80,228,19,0,80,233,19,0,80,236,19,0,80,241,19,0,80,246,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,251,19,0,80,0,20,0,80,5,20,0,80,8,20,0,80,13,20,0,80,18,20,0,80,3,0,98,1,130,1,146,1,21,20,0,80,26,20,0,80,31,20,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,34,20,0,80,39,20,0,80,44,20,0,80,49,20,0,80,54,20,0,80,59,20,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,64,20,0,80,69,20,0,80,74,20,0,80,77,20,0,80,82,20,0,80,87,20,0,80,5,0,98,1,109,1,118,1,130,1,146,1,92,20,0,80,97,20,0,80,102,20,0,80,105,20,0,80,110,20,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,113,20,0,80,118,20,0,80,123,20,0,80,126,20,0,80,131,20,0,80,136,20,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,139,20,0,80,144,20,0,80,149,20,0,80,152,20,0,80,157,20,0,80,162,20,0,80,2,0,43,0,89,1,170,170,165,20,0,80,170,20,0,80,4,0,98,1,109,1,130,1,139,1,170,170,175,20,0,80,180,20,0,80,185,20,0,80,190,20,0,80,4,0,98,1,109,1,130,1,139,1,170,170,195,20,0,80,200,20,0,80,205,20,0,80,210,20,0,80,4,0,98,1,109,1,130,1,139,1,170,170,215,20,0,80,220,20,0,80,225,20,0,80,230,20,0,80,6,0,98,1,29,2,109,1,118,1,130,1,139,1,170,170,235,20,0,80,240,20,0,80,245,20,0,80,250,20,0,80,253,20,0,80,2,21,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,7,21,0,80,12,21,0,80,17,21,0,80,22,21,0,80,27,21,0,80,32,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,37,21,0,80,42,21,0,80,47,21,0,80,52,21,0,80,57,21,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,62,21,0,80,67,21,0,80,72,21,0,80,75,21,0,80,80,21,0,80,85,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,90,21,0,80,95,21,0,80,100,21,0,80,105,21,0,80,110,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,115,21,0,80,120,21,0,80,125,21,0,80,130,21,0,80,135,21,0,80,4,0,98,1,109,1,130,1,139,1,170,170,140,21,0,80,145,21,0,80,150,21,0,80,155,21,0,80,4,0,98,1,109,1,130,1,139,1,170,170,160,21,0,80,165,21,0,80,170,21,0,80,175,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,180,21,0,80,185,21,0,80,190,21,0,80,195,21,0,80,200,21,0,80,4,0,109,1,130,1,193,1,139,1,170,170,205,21,0,80,210,21,0,80,215,21,0,80,220,21,0,80,3,0,109,1,193,1,139,1,225,21,0,80,230,21,0,80,235,21,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,240,21,0,80,245,21,0,80,250,21,0,80,255,21,0,80,4,22,0,80,9,22,0,80,4,0,98,1,109,1,130,1,139,1,170,170,14,22,0,80,19,22,0,80,24,22,0,80,29,22,0,80,4,0,98,1,109,1,130,1,139,1,170,170,34,22,0,80,39,22,0,80,44,22,0,80,49,22,0,80,163,0,72,1,92,1,151,1,158,1,165,1,172,1,179,1,186,1,202,1,209,1,216,1,223,1,230,1,236,1,243,1,250,1,1,2,8,2,15,2,22,2,47,2,54,2,61,2,68,2,74,2,81,2,88,2,95,2,102,2,109,2,116,2,123,2,130,2,146,2,153,2,159,2,166,2,173,2,180,2,187,2,194,2,201,2,208,2,215,2,222,2,229,2,235,2,242,2,249,2,0,3,7,3,14,3,21,3,28,3,35,3,42,3,49,3,55,3,62,3,69,3,76,3,83,3,90,3,97,3,104,3,111,3,118,3,125,3,131,3,138,3,145,3,152,3,159,3,165,3,171,3,177,3,182,3,188,3,194,3,200,3,206,3,212,3,218,3,224,3,230,3,236,3,242,3,247,3,253,3,3,4,9,4,15,4,21,4,27,4,33,4,39,4,45,4,51,4,56,4,62,4,68,4,74,4,80,4,86,4,92,4,98,4,104,4,110,4,116,4,121,4,127,4,133,4,139,4,145,4,151,4,157,4,163,4,169,4,175,4,181,4,186,4,192,4,198,4,204,4,210,4,216,4,222,4,228,4,234,4,240,4,246,4,251,4,1,5,7,5,13,5,19,5,25,5,31,5,37,5,43,5,49,5,55,5,60,5,66,5,72,5,78,5,84,5,90,5,96,5,102,5,108,5,114,5,120,5,125,5,131,5,137,5,143,5,149,5,155,5,161,5,167,5,173,5,179,5,138,12,0,32,142,12,0,32,152,12,0,32,159,12,0,32,166,12,0,32,173,12,0,32,180,12,0,32,187,12,0,32,195,12,0,32,203,12,0,32,211,12,0,32,219,12,0,32,227,12,0,32,237,12,0,32,245,12,0,32,252,12,0,32,3,13,0,32,10,13,0,32,17,13,0,32,24,13,0,32,34,13,0,32,41,13,0,32,48,13,0,32,56,13,0,32,66,13,0,32,74,13,0,32,81,13,0,32,91,13,0,32,98,13,0,32,106,13,0,32,114,13,0,32,121,13,0,32,131,13,0,32,142,13,0,32,149,13,0,32,157,13,0,32,168,13,0,32,175,13,0,32,185,13,0,32,195,13,0,32,203,13,0,32,211,13,0,32,221,13,0,32,231,13,0,32,238,13,0,32,245,13,0,32,252,13,0,32,3,14,0,32,10,14,0,32,18,14,0,32,28,14,0,32,38,14,0,32,45,14,0,32,56,14,0,32,66,14,0,32,73,14,0,32,81,14,0,32,92,14,0,32,100,14,0,32,107,14,0,32,114,14,0,32,122,14,0,32,130,14,0,32,137,14,0,32,147,14,0,32,154,14,0,32,161,14,0,32,165,14,0,32,175,14,0,32,185,14,0,32,190,14,0,32,197,14,0,32,204,14,0,32,214,14,0,32,224,14,0,32,234,14,0,32,244,14,0,32,254,14,0,32,8,15,0,32,18,15,0,32,29,15,0,32,39,15,0,32,49,15,0,32,59,15,0,32,70,15,0,32,81,15,0,32,92,15,0,32,100,15,0,32,111,15,0,32,121,15,0,32,131,15,0,32,141,15,0,32,149,15,0,32,159,15,0,32,169,15,0,32,177,15,0,32,188,15,0,32,199,15,0,32,207,15,0,32,215,15,0,32,228,15,0,32,235,15,0,32,246,15,0,32,0,16,0,32,10,16,0,32,24,16,0,32,32,16,0,32,46,16,0,32,54,16,0,32,64,16,0,32,75,16,0,32,85,16,0,32,98,16,0,32,109,16,0,32,120,16,0,32,131,16,0,32,142,16,0,32,152,16,0,32,165,16,0,32,175,16,0,32,186,16,0,32,196,16,0,32,204,16,0,32,215,16,0,32,228,16,0,32,241,16,0,32,251,16,0,32,5,17,0,32,15,17,0,32,26,17,0,32,37,17,0,32,47,17,0,32,57,17,0,32,67,17,0,32,77,17,0,32,88,17,0,32,96,17,0,32,106,17,0,32,117,17,0,32,127,17,0,32,132,17,0,32,142,17,0,32,152,17,0,32,160,17,0,32,170,17,0,32,180,17,0,32,184,17,0,32,191,17,0,32,198,17,0,32,205,17,0,32,215,17,0,32,225,17,0,32,233,17,0,32,243,17,0,32,251,17,0,32,3,18,0,32,10,18,0,32,17,18,0,32,25,18,0,32,32,18,0,32,37,18,0,32,47,18,0,32,54,18,0,32,3,0,32,0,48,1,66,1,154,4,0,80,69,5,0,80,61,18,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,126,0,0,32,7,0,0,0,54,0,0,0,128,0,0,0,128,0,0,0,55,0,0,0,1,0,0,0,126,0,0,0,103,101,110,100,101,114,76,105,115,116,0,97,102,0,97,114,0,98,103,0,98,110,0,99,97,0,99,115,0,100,97,0,100,101,0,101,108,0,101,110,0,101,115,0,101,116,0,101,117,0,102,97,0,102,105,0,102,105,108,0,102,114,0,103,117,0,104,101,0,104,105,0,104,114,0,104,117,0,105,100,0,105,115,0,105,116,0,106,97,0,107,110,0,107,111,0,108,105,106,0,108,116,0,108,118,0,109,108,0,109,114,0,109,115,0,110,108,0,110,111,0,112,108,0,112,116,0,114,111,0,114,117,0,115,107,0,115,108,0,115,114,0,115,118,0,115,119,0,116,97,0,116,101,0,116,104,0,116,114,0,117,107,0,117,114,0,118,105,0,122,104,0,122,104,95,72,97,110,116,0,122,117,0,170,0,0,110,0,101,0,117,0,116,0,114,0,97,0,108,0,0,0,109,0,97,0,108,0,101,0,84,0,97,0,105,0,110,0,116,0,115,0,0,0,109,0,105,0,120,0,101,0,100,0,78,0,101,0,117,0,116,0,114,0,97,0,108,0,0,0,55,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,67,0,70,0,73,0,76,0,79,0,82,0,85,0,88,0,92,0,95,0,98,0,101,0,104,0,107,0,110,0,113,0,116,0,119,0,122,0,125,0,128,0,132,0,135,0,138,0,141,0,144,0,147,0,150,0,153,0,156,0,159,0,162,0,165,0,168,0,171,0,174,0,177,0,180,0,183,0,186,0,189,0,192,0,195,0,198,0,201,0,204,0,212,0,1,0,9,0,1,0,1,0,9,0,9,0,1,0,1,0,20,0,1,0,9,0,1,0,1,0,1,0,1,0,1,0,9,0,1,0,9,0,9,0,9,0,1,0,1,0,20,0,9,0,1,0,1,0,1,0,9,0,9,0,9,0,1,0,9,0,1,0,9,0,1,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,1,0,1,0,1,0,1,0,1,0,1,0,9,0,9,0,1,0,9,0,9,0,1,0,1,0,32,0,33,0,0,80,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,215,4,0,32,7,0,0,0,77,0,0,0,217,4,0,0,217,4,0,0,49,0,0,0,1,0,0,0,66,2,0,0,103,114,97,109,109,97,116,105,99,97,108,68,97,116,97,0,100,101,114,105,118,97,116,105,111,110,115,0,100,101,0,99,111,109,112,111,110,101,110,116,0,99,97,115,101,0,112,101,114,0,112,111,119,101,114,0,112,114,101,102,105,120,0,116,105,109,101,115,0,112,108,117,114,97,108,0,99,111,109,112,111,117,110,100,0,103,101,110,100,101,114,0,102,114,0,114,111,111,116,0,102,101,97,116,117,114,101,115,0,97,109,0,110,111,109,105,110,97,108,0,95,0,100,101,102,105,110,105,116,101,110,101,115,115,0,97,114,0,117,110,105,116,115,0,97,122,0,98,110,0,99,97,0,99,115,0,100,97,0,101,108,0,102,97,0,102,105,0,103,117,0,104,101,0,104,105,0,104,114,0,104,117,0,104,121,0,105,100,0,105,115,0,105,116,0,107,107,0,107,110,0,107,121,0,108,116,0,108,118,0,109,108,0,109,114,0,110,98,0,110,108,0,110,110,0,110,111,0,112,97,0,112,108,0,112,116,0,114,111,0,114,117,0,115,105,0,115,107,0,115,108,0,115,114,0,115,118,0,116,101,0,116,114,0,117,107,0,117,114,0,117,122,0,170,170,170,0,0,48,0,0,0,49,0,0,0,111,0,110,0,101,0,0,0,100,0,97,0,116,0,105,0,118,0,101,0,0,0,110,0,101,0,117,0,116,0,101,0,114,0,0,0,99,0,111,0,109,0,109,0,111,0,110,0,0,0,99,0,97,0,117,0,115,0,97,0,108,0,0,0,111,0,98,0,108,0,105,0,113,0,117,0,101,0,0,0,103,0,101,0,110,0,105,0,116,0,105,0,118,0,101,0,0,0,102,0,101,0,109,0,105,0,110,0,105,0,110,0,101,0,0,0,108,0,111,0,99,0,97,0,116,0,105,0,118,0,101,0,0,0,99,0,111,0,109,0,112,0,111,0,117,0,110,0,100,0,0,0,118,0,111,0,99,0,97,0,116,0,105,0,118,0,101,0,0,0,97,0,98,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,100,0,101,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,105,0,108,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,97,0,100,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,97,0,108,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,105,0,110,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,97,0,98,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,101,0,114,0,103,0,97,0,116,0,105,0,118,0,101,0,0,0,112,0,101,0,114,0,115,0,111,0,110,0,97,0,108,0,0,0,109,0,97,0,115,0,99,0,117,0,108,0,105,0,110,0,101,0,0,0,105,0,110,0,97,0,110,0,105,0,109,0,97,0,116,0,101,0,0,0,99,0,111,0,110,0,115,0,116,0,114,0,117,0,99,0,116,0,0,0,112,0,97,0,114,0,116,0,105,0,116,0,105,0,118,0,101,0,0,0,115,0,111,0,99,0,105,0,97,0,116,0,105,0,118,0,101,0,0,0,115,0,117,0,98,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,110,0,111,0,109,0,105,0,110,0,97,0,116,0,105,0,118,0,101,0,0,0,97,0,99,0,99,0,117,0,115,0,97,0,116,0,105,0,118,0,101,0,0,0,105,0,110,0,100,0,101,0,102,0,105,0,110,0,105,0,116,0,101,0,0,0,99,0,111,0,109,0,105,0,116,0,97,0,116,0,105,0,118,0,101,0,0,0,116,0,114,0,97,0,110,0,115,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,115,0,117,0,112,0,101,0,114,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,116,0,101,0,114,0,109,0,105,0,110,0,97,0,116,0,105,0,118,0,101,0,0,0,117,0,110,0,115,0,112,0,101,0,99,0,105,0,102,0,105,0,101,0,100,0,0,0,105,0,110,0,115,0,116,0,114,0,117,0,109,0,101,0,110,0,116,0,97,0,108,0,0,0,112,0,114,0,101,0,112,0,111,0,115,0,105,0,116,0,105,0,111,0,110,0,97,0,108,0,0,0,108,0,111,0,99,0,97,0,116,0,105,0,118,0,101,0,99,0,111,0,112,0,117,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,2,0,72,0,242,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,72,0,5,0,2,0,5,0,72,0,2,0,5,0,72,0,2,0,5,0,72,0,4,0,78,0,82,0,88,0,95,0,1,0,1,0,1,0,3,0,2,0,72,0,5,0,2,0,72,0,72,0,2,0,5,0,72,0,2,0,72,0,72,0,4,0,78,0,82,0,88,0,95,0,1,0,1,0,1,0,1,0,2,0,72,0,231,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,72,0,5,0,2,0,5,0,72,0,2,0,5,0,72,0,2,0,5,0,72,0,4,0,78,0,82,0,88,0,95,0,1,0,1,0,1,0,3,0,2,0,231,0,242,0,2,0,255,0,253,0,3,0,231,0,45,0,242,0,3,0,255,0,253,0,191,0,2,0,171,0,54,0,6,0,231,0,45,0,9,0,242,0,90,0,63,0,4,0,231,0,242,0,45,0,63,0,2,0,255,0,253,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,9,0,242,0,67,1,63,0,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,2,0,231,0,45,0,3,0,255,0,253,0,55,1,2,0,23,0,16,0,4,0,231,0,45,0,9,0,242,0,3,0,171,0,54,0,16,0,4,0,231,0,45,0,242,0,81,0,3,0,231,0,45,0,242,0,3,0,171,0,54,0,16,0,2,0,171,0,54,0,3,0,255,0,253,0,191,0,14,0,231,0,144,0,90,0,117,0,126,0,8,1,100,0,36,1,45,0,108,0,135,0,67,1,201,0,19,1,5,0,231,0,100,0,108,0,201,0,45,0,2,0,171,0,54,0,7,0,231,0,45,0,242,0,9,0,63,0,67,1,81,0,3,0,171,0,54,0,16,0,3,0,255,0,253,0,191,0,2,0,171,0,54,0,2,0,231,0,37,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,4,0,231,0,45,0,242,0,67,1,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,17,0,231,0,90,0,242,0,117,0,126,0,30,0,9,0,99,0,100,0,36,1,108,0,135,0,67,1,221,0,31,1,43,1,19,1,5,0,231,0,242,0,67,1,43,1,19,1,5,0,231,0,90,0,9,0,63,0,67,1,2,0,255,0,253,0,4,0,231,0,45,0,9,0,242,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,90,0,63,0,7,0,231,0,45,0,242,0,9,0,63,0,67,1,81,0,5,0,231,0,45,0,242,0,9,0,63,0,3,0,171,0,54,0,16,0,6,0,231,0,45,0,9,0,242,0,90,0,63,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,9,0,242,0,67,1,63,0,2,0,171,0,54,0,6,0,231,0,45,0,9,0,242,0,81,0,63,0,5,0,231,0,45,0,9,0,242,0,63,0,2,0,171,0,54,0,9,0,231,0,45,0,9,0,242,0,67,1,63,0,8,1,94,1,211,0,4,0,183,0,181,0,54,0,16,0,7,0,231,0,242,0,9,0,153,0,63,0,90,0,45,0,3,0,171,0,54,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,23,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,231,0,37,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,3,0,242,0,45,0,231,0,5,0,183,0,181,0,162,0,54,0,16,0,3,0,181,0,54,0,16,0,2,0,171,0,54,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,8,0,231,0,45,0,9,0,242,0,67,1,80,1,81,0,63,0,6,0,231,0,242,0,9,0,45,0,80,1,67,1,3,0,171,0,54,0,16,0,5,0,231,0,45,0,90,0,242,0,9,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,9,0,242,0,67,1,63,0,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,6,0,231,0,45,0,242,0,9,0,67,1,63,0,3,0,171,0,54,0,16,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,4,0,231,0,45,0,242,0,67,1,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,2,0,23,0,16,0,8,0,231,0,45,0,242,0,9,0,63,0,67,1,90,0,81,0,4,0,231,0,242,0,9,0,90,0,6,0,231,0,37,0,242,0,9,0,63,0,67,1,7,0,231,0,45,0,9,0,242,0,67,1,90,0,63,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,242,0,9,0,63,0,67,1,3,0,171,0,54,0,16,0,2,0,231,0,37,0,2,0,171,0,54,0,6,0,231,0,45,0,9,0,242,0,90,0,63,0,170,170,4,0,78,0,82,0,88,0,95,0,170,170,113,1,0,144,116,1,0,144,119,1,0,144,122,1,0,144,4,0,78,0,82,0,88,0,95,0,170,170,125,1,0,144,128,1,0,144,131,1,0,144,134,1,0,144,2,0,73,0,101,0,170,170,66,2,0,32,73,2,0,32,1,0,117,0,137,1,0,80,2,0,63,0,108,0,170,170,80,2,0,32,84,2,0,32,4,0,78,0,82,0,88,0,95,0,170,170,146,1,0,144,149,1,0,144,152,1,0,144,155,1,0,144,1,0,101,0,90,2,0,32,1,0,117,0,158,1,0,80,2,0,63,0,108,0,170,170,97,2,0,32,99,2,0,32,4,0,78,0,82,0,88,0,95,0,170,170,167,1,0,144,170,1,0,144,173,1,0,144,176,1,0,144,4,0,78,0,82,0,88,0,95,0,170,170,179,1,0,144,182,1,0,144,185,1,0,144,188,1,0,144,2,0,73,0,101,0,170,170,105,2,0,32,112,2,0,32,1,0,117,0,191,1,0,80,2,0,63,0,108,0,170,170,119,2,0,32,123,2,0,32,3,0,60,0,124,0,127,0,86,2,0,32,101,2,0,32,125,2,0,32,1,0,152,0,200,1,0,144,1,0,152,0,203,1,0,144,2,0,73,0,154,0,170,170,134,2,0,32,136,2,0,32,1,0,144,0,138,2,0,32,2,0,152,0,170,0,170,170,206,1,0,144,0,0,0,0,1,0,152,0,210,1,0,144,1,0,152,0,214,1,0,144,3,0,73,0,154,0,117,0,144,2,0,32,148,2,0,32,150,2,0,32,1,0,144,0,152,2,0,32,2,0,152,0,170,0,170,170,217,1,0,144,0,0,0,0,1,0,73,0,159,2,0,32,1,0,144,0,163,2,0,32,2,0,152,0,170,0,170,170,224,1,0,144,0,0,0,0,1,0,152,0,229,1,0,144,2,0,73,0,154,0,170,170,167,2,0,32,171,2,0,32,1,0,144,0,173,2,0,32,1,0,152,0,232,1,0,144,1,0,117,0,179,2,0,32,1,0,144,0,181,2,0,32,2,0,152,0,170,0,170,170,235,1,0,144,243,1,0,144,2,0,152,0,170,0,170,170,250,1,0,144,255,1,0,144,2,0,73,0,117,0,170,170,185,2,0,32,189,2,0,32,1,0,144,0,193,2,0,32,1,0,152,0,3,2,0,144,1,0,152,0,6,2,0,144,1,0,152,0,10,2,0,144,3,0,73,0,154,0,117,0,199,2,0,32,201,2,0,32,203,2,0,32,1,0,144,0,205,2,0,32,1,0,152,0,13,2,0,144,1,0,152,0,18,2,0,144,2,0,73,0,117,0,170,170,212,2,0,32,214,2,0,32,1,0,144,0,216,2,0,32,2,0,152,0,170,0,170,170,22,2,0,144,27,2,0,144,1,0,152,0,31,2,0,144,2,0,73,0,117,0,170,170,222,2,0,32,226,2,0,32,1,0,144,0,228,2,0,32,1,0,152,0,35,2,0,144,1,0,117,0,234,2,0,32,1,0,144,0,236,2,0,32,1,0,152,0,38,2,0,144,1,0,154,0,240,2,0,32,1,0,144,0,242,2,0,32,2,0,152,0,170,0,170,170,42,2,0,144,57,2,0,144,1,0,73,0,246,2,0,32,1,0,144,0,250,2,0,32,1,0,152,0,63,2,0,144,1,0,117,0,254,2,0,32,1,0,144,0,0,3,0,32,2,0,152,0,170,0,170,170,66,2,0,144,0,0,0,0,2,0,152,0,170,0,170,170,74,2,0,144,0,0,0,0,2,0,73,0,117,0,170,170,4,3,0,32,8,3,0,32,1,0,144,0,12,3,0,32,1,0,152,0,78,2,0,144,1,0,152,0,82,2,0,144,2,0,154,0,117,0,170,170,18,3,0,32,20,3,0,32,1,0,144,0,22,3,0,32,1,0,152,0,85,2,0,144,1,0,152,0,88,2,0,144,2,0,73,0,117,0,170,170,28,3,0,32,30,3,0,32,1,0,144,0,32,3,0,32,2,0,152,0,170,0,170,170,91,2,0,144,99,2,0,144,2,0,152,0,170,0,170,170,104,2,0,144,109,2,0,144,2,0,73,0,117,0,170,170,38,3,0,32,42,3,0,32,1,0,144,0,46,3,0,32,2,0,152,0,170,0,170,170,113,2,0,144,131,2,0,144,1,0,73,0,52,3,0,32,1,0,144,0,56,3,0,32,1,0,152,0,137,2,0,144,1,0,73,0,60,3,0,32,1,0,144,0,62,3,0,32,1,0,152,0,143,2,0,144,1,0,154,0,66,3,0,32,1,0,144,0,68,3,0,32,1,0,152,0,146,2,0,144,1,0,152,0,151,2,0,144,1,0,152,0,154,2,0,144,3,0,73,0,154,0,117,0,72,3,0,32,74,3,0,32,76,3,0,32,1,0,144,0,78,3,0,32,1,0,152,0,158,2,0,144,1,0,117,0,85,3,0,32,1,0,144,0,87,3,0,32,2,0,152,0,170,0,170,170,161,2,0,144,0,0,0,0,1,0,73,0,91,3,0,32,1,0,144,0,95,3,0,32,2,0,152,0,170,0,170,170,169,2,0,144,177,2,0,144,2,0,152,0,170,0,170,170,183,2,0,144,16,0,0,96,2,0,73,0,117,0,170,170,99,3,0,32,103,3,0,32,1,0,144,0,107,3,0,32,2,0,152,0,170,0,170,170,187,2,0,144,0,0,0,0,1,0,73,0,113,3,0,32,1,0,144,0,117,3,0,32,2,0,152,0,170,0,170,170,194,2,0,144,202,2,0,144,1,0,152,0,209,2,0,144,2,0,73,0,117,0,170,170,121,3,0,32,125,3,0,32,1,0,144,0,127,3,0,32,2,0,152,0,170,0,170,170,212,2,0,144,219,2,0,144,1,0,152,0,225,2,0,144,2,0,73,0,117,0,170,170,133,3,0,32,137,3,0,32,1,0,144,0,139,3,0,32,2,0,152,0,170,0,170,170,228,2,0,144,0,0,0,0,2,0,152,0,170,0,170,170,238,2,0,144,0,0,0,0,2,0,73,0,117,0,170,170,145,3,0,32,149,3,0,32,1,0,144,0,153,3,0,32,1,0,152,0,243,2,0,144,1,0,152,0,251,2,0,144,2,0,73,0,117,0,170,170,159,3,0,32,161,3,0,32,1,0,144,0,163,3,0,32,1,0,152,0,255,2,0,144,1,0,152,0,2,3,0,144,1,0,152,0,5,3,0,144,3,0,73,0,154,0,117,0,169,3,0,32,171,3,0,32,173,3,0,32,1,0,144,0,175,3,0,32,1,0,152,0,9,3,0,144,1,0,117,0,182,3,0,32,1,0,144,0,184,3,0,32,1,0,152,0,12,3,0,144,1,0,152,0,15,3,0,144,1,0,152,0,18,3,0,144,3,0,73,0,154,0,117,0,188,3,0,32,190,3,0,32,192,3,0,32,1,0,144,0,194,3,0,32,1,0,152,0,22,3,0,144,1,0,152,0,25,3,0,144,1,0,152,0,28,3,0,144,3,0,73,0,154,0,117,0,201,3,0,32,203,3,0,32,205,3,0,32,1,0,144,0,207,3,0,32,1,0,152,0,32,3,0,144,1,0,152,0,35,3,0,144,2,0,73,0,117,0,170,170,214,3,0,32,216,3,0,32,1,0,144,0,218,3,0,32,2,0,152,0,170,0,170,170,38,3,0,144,46,3,0,144,2,0,152,0,170,0,170,170,50,3,0,144,56,3,0,144,2,0,73,0,117,0,170,170,224,3,0,32,228,3,0,32,1,0,144,0,232,3,0,32,1,0,152,0,60,3,0,144,1,0,117,0,238,3,0,32,1,0,144,0,240,3,0,32,1,0,152,0,63,3,0,144,1,0,152,0,66,3,0,144,1,0,152,0,69,3,0,144,3,0,73,0,154,0,117,0,244,3,0,32,246,3,0,32,248,3,0,32,1,0,144,0,250,3,0,32,2,0,152,0,170,0,170,170,73,3,0,144,82,3,0,144,1,0,152,0,89,3,0,144,2,0,73,0,117,0,170,170,1,4,0,32,5,4,0,32,1,0,144,0,7,4,0,32,2,0,152,0,170,0,170,170,93,3,0,144,0,0,0,0,1,0,152,0,99,3,0,144,2,0,152,0,170,0,170,170,102,3,0,144,0,0,0,0,3,0,73,0,154,0,117,0,13,4,0,32,17,4,0,32,19,4,0,32,1,0,144,0,23,4,0,32,2,0,152,0,170,0,170,170,106,3,0,144,114,3,0,144,2,0,152,0,170,0,170,170,121,3,0,144,126,3,0,144,2,0,73,0,117,0,170,170,30,4,0,32,34,4,0,32,1,0,144,0,38,4,0,32,1,0,152,0,130,3,0,144,1,0,152,0,137,3,0,144,2,0,73,0,117,0,170,170,44,4,0,32,46,4,0,32,1,0,144,0,48,4,0,32,2,0,152,0,170,0,170,170,141,3,0,144,149,3,0,144,2,0,152,0,170,0,170,170,154,3,0,144,159,3,0,144,2,0,73,0,117,0,170,170,54,4,0,32,58,4,0,32,1,0,144,0,62,4,0,32,1,0,152,0,163,3,0,144,1,0,152,0,166,3,0,144,1,0,152,0,169,3,0,144,3,0,73,0,154,0,117,0,68,4,0,32,70,4,0,32,72,4,0,32,1,0,144,0,74,4,0,32,2,0,152,0,170,0,170,170,172,3,0,144,181,3,0,144,1,0,73,0,81,4,0,32,1,0,144,0,85,4,0,32,2,0,152,0,170,0,170,170,186,3,0,144,0,0,0,0,1,0,73,0,89,4,0,32,1,0,144,0,93,4,0,32,2,0,152,0,170,0,170,170,193,3,0,144,0,0,0,0,1,0,73,0,97,4,0,32,1,0,144,0,101,4,0,32,2,0,152,0,170,0,170,170,201,3,0,144,209,3,0,144,1,0,152,0,216,3,0,144,2,0,73,0,117,0,170,170,105,4,0,32,109,4,0,32,1,0,144,0,111,4,0,32,2,0,152,0,170,0,170,170,220,3,0,144,0,0,0,0,1,0,152,0,223,3,0,144,2,0,73,0,117,0,170,170,117,4,0,32,121,4,0,32,1,0,144,0,123,4,0,32,2,0,152,0,170,0,170,170,226,3,0,144,0,0,0,0,1,0,73,0,129,4,0,32,1,0,144,0,133,4,0,32,49,0,141,0,167,0,176,0,179,0,182,0,185,0,188,0,60,0,191,0,138,0,194,0,197,0,124,0,200,0,203,0,206,0,209,0,212,0,215,0,218,0,221,0,224,0,227,0,230,0,233,0,236,0,239,0,242,0,245,0,248,0,251,0,254,0,1,1,4,1,7,1,10,1,13,1,16,1,19,1,22,1,25,1,28,1,31,1,45,0,34,1,37,1,40,1,43,1,46,1,142,2,0,32,157,2,0,32,165,2,0,32,177,2,0,32,183,2,0,32,197,2,0,32,210,2,0,32,220,2,0,32,232,2,0,32,238,2,0,32,244,2,0,32,252,2,0,32,2,3,0,32,16,3,0,32,26,3,0,32,36,3,0,32,50,3,0,32,58,3,0,32,64,3,0,32,70,3,0,32,83,3,0,32,89,3,0,32,97,3,0,32,111,3,0,32,119,3,0,32,131,3,0,32,143,3,0,32,157,3,0,32,167,3,0,32,180,3,0,32,186,3,0,32,199,3,0,32,212,3,0,32,222,3,0,32,236,3,0,32,242,3,0,32,255,3,0,32,11,4,0,32,28,4,0,32,42,4,0,32,52,4,0,32,66,4,0,32,79,4,0,32,87,4,0,32,95,4,0,32,103,4,0,32,115,4,0,32,127,4,0,32,135,4,0,32,2,0,48,0,132,0,170,170,129,2,0,32,137,4,0,32,1,0,32,0,211,4,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,32,7,0,0,0,11,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,1,0,0,0,12,0,0,0,83,116,97,110,100,97,114,100,73,67,85,0,0,0,170,170,1,0,32,0,0,0,0,128,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,13,0,0,80,7,0,0,0,17,0,0,0,27,0,0,0,27,0,0,0,3,0,0,0,1,0,0,0,27,0,0,0,67,76,68,82,86,101,114,115,105,111,110,0,68,97,116,97,86,101,114,115,105,111,110,0,73,67,85,86,101,114,115,105,111,110,0,170,0,0,52,0,50,0,0,0,55,0,50,0,46,0,49,0,46,0,48,0,46,0,48,0,0,0,3,0,32,0,44,0,56,0,1,0,4,0,4,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,253,6,0,32,7,0,0,0,65,3,0,0,7,7,0,0,7,7,0,0,49,1,0,0,1,0,0,0,115,6,0,0,98,99,112,84,121,112,101,65,108,105,97,115,0,99,97,0,105,115,108,97,109,105,99,99,0,107,101,121,73,110,102,111,0,100,101,112,114,101,99,97,116,101,100,0,107,104,0,118,116,0,118,97,108,117,101,84,121,112,101,0,100,120,0,104,48,0,120,48,0,107,101,121,77,97,112,0,99,97,108,101,110,100,97,114,0,99,111,108,97,108,116,101,114,110,97,116,101,0,99,111,108,98,97,99,107,119,97,114,100,115,0,99,111,108,99,97,115,101,102,105,114,115,116,0,99,111,108,99,97,115,101,108,101,118,101,108,0,99,111,108,104,105,114,97,103,97,110,97,113,117,97,116,101,114,110,97,114,121,0,99,111,108,108,97,116,105,111,110,0,99,111,108,110,111,114,109,97,108,105,122,97,116,105,111,110,0,99,111,108,110,117,109,101,114,105,99,0,99,111,108,114,101,111,114,100,101,114,0,99,111,108,115,116,114,101,110,103,116,104,0,99,117,114,114,101,110,99,121,0,100,48,0,102,119,0,104,111,117,114,115,0,105,48,0,107,48,0,107,118,0,108,98,0,108,119,0,109,48,0,109,101,97,115,117,114,101,0,109,117,0,110,117,109,98,101,114,115,0,115,48,0,116,48,0,116,105,109,101,122,111,110,101,0,118,97,114,105,97,98,108,101,116,111,112,0,116,121,112,101,65,108,105,97,115,0,113,117,97,114,116,101,114,110,97,114,121,0,116,121,112,101,73,110,102,111,0,99,111,0,100,105,114,101,99,116,0,99,97,109,116,114,0,116,121,112,101,77,97,112,0,98,117,100,100,104,105,115,116,0,99,104,105,110,101,115,101,0,99,111,112,116,105,99,0,100,97,110,103,105,0,101,116,104,105,111,112,105,99,0,101,116,104,105,111,112,105,99,45,97,109,101,116,101,45,97,108,101,109,0,103,114,101,103,111,114,105,97,110,0,104,101,98,114,101,119,0,105,110,100,105,97,110,0,105,115,108,97,109,105,99,0,105,115,108,97,109,105,99,45,99,105,118,105,108,0,105,115,108,97,109,105,99,45,114,103,115,97,0,105,115,108,97,109,105,99,45,116,98,108,97,0,105,115,108,97,109,105,99,45,117,109,97,108,113,117,114,97,0,105,115,111,56,54,48,49,0,106,97,112,97,110,101,115,101,0,112,101,114,115,105,97,110,0,114,111,99,0,97,99,99,111,117,110,116,0,115,116,97,110,100,97,114,100,0,110,111,110,45,105,103,110,111,114,97,98,108,101,0,115,104,105,102,116,101,100,0,121,101,115,0,108,111,119,101,114,0,117,112,112,101,114,0,98,105,103,53,104,97,110,0,99,111,109,112,97,116,0,100,105,99,116,105,111,110,97,114,121,0,100,117,99,101,116,0,101,109,111,106,105,0,103,98,50,51,49,50,104,97,110,0,112,104,111,110,101,98,111,111,107,0,112,104,111,110,101,116,105,99,0,112,105,110,121,105,110,0,114,101,102,111,114,109,101,100,0,115,101,97,114,99,104,0,115,101,97,114,99,104,106,108,0,115,116,114,111,107,101,0,116,114,97,100,105,116,105,111,110,97,108,0,117,110,105,104,97,110,0,122,104,117,121,105,110,0,82,69,79,82,68,69,82,95,67,79,68,69,0,100,105,103,105,116,0,112,117,110,99,116,0,115,112,97,99,101,0,115,121,109,98,111,108,0,105,100,101,110,116,105,99,97,108,0,112,114,105,109,97,114,121,0,115,101,99,111,110,100,97,114,121,0,116,101,114,116,105,97,114,121,0,97,100,112,0,97,101,100,0,97,102,97,0,97,102,110,0,97,108,107,0,97,109,100,0,97,110,103,0,97,111,97,0,97,111,107,0,97,111,110,0,97,111,114,0,97,114,108,0,97,114,109,0,97,114,112,0,97,114,115,0,97,116,115,0,97,117,100,0,97,119,103,0,97,122,109,0,97,122,110,0,98,97,100,0,98,97,109,0,98,97,110,0,98,98,100,0,98,100,116,0,98,101,99,0,98,101,102,0,98,101,108,0,98,103,108,0,98,103,109,0,98,103,110,0,98,103,111,0,98,104,100,0,98,105,102,0,98,109,100,0,98,110,100,0,98,111,98,0,98,111,112,0,98,111,118,0,98,114,98,0,98,114,99,0,98,114,101,0,98,114,108,0,98,114,110,0,98,114,114,0,98,114,122,0,98,115,100,0,98,116,110,0,98,117,107,0,98,119,112,0,98,121,98,0,98,121,110,0,98,121,114,0,98,122,100,0,99,97,100,0,99,100,102,0,99,104,101,0,99,104,102,0,99,104,119,0,99,108,101,0,99,108,102,0,99,108,112,0,99,110,104,0,99,110,120,0,99,110,121,0,99,111,112,0,99,111,117,0,99,114,99,0,99,115,100,0,99,115,107,0,99,117,99,0,99,117,112,0,99,118,101,0,99,121,112,0,99,122,107,0,100,100,109,0,100,101,109,0,100,106,102,0,100,107,107,0,100,111,112,0,100,122,100,0,101,99,115,0,101,99,118,0,101,101,107,0,101,103,112,0,101,114,110,0,101,115,97,0,101,115,98,0,101,115,112,0,101,116,98,0,101,117,114,0,102,105,109,0,102,106,100,0,102,107,112,0,102,114,102,0,103,98,112,0,103,101,107,0,103,101,108,0,103,104,99,0,103,104,115,0,103,105,112,0,103,109,100,0,103,110,102,0,103,110,115,0,103,113,101,0,103,114,100,0,103,116,113,0,103,119,101,0,103,119,112,0,103,121,100,0,104,107,100,0,104,110,108,0,104,114,107,0,104,116,103,0,104,117,102,0,105,100,114,0,105,101,112,0,105,108,112,0,105,108,114,0,105,108,115,0,105,110,114,0,105,113,100,0,105,114,114,0,105,115,106,0,105,115,107,0,105,116,108,0,106,109,100,0,106,111,100,0,106,112,121,0,107,101,115,0,107,103,115,0,107,104,114,0,107,109,102,0,107,112,119,0,107,114,104,0,107,114,111,0,107,114,119,0,107,119,100,0,107,121,100,0,107,122,116,0,108,97,107,0,108,98,112,0,108,107,114,0,108,114,100,0,108,115,108,0,108,116,108,0,108,116,116,0,108,117,99,0,108,117,102,0,108,117,108,0,108,118,108,0,108,118,114,0,108,121,100,0,109,97,100,0,109,97,102,0,109,99,102,0,109,100,99,0,109,100,108,0,109,103,97,0,109,103,102,0,109,107,100,0,109,107,110,0,109,108,102,0,109,109,107,0,109,110,116,0,109,111,112,0,109,114,111,0,109,114,117,0,109,116,108,0,109,116,112,0,109,117,114,0,109,118,112,0,109,118,114,0,109,119,107,0,109,120,110,0,109,120,112,0,109,120,118,0,109,121,114,0,109,122,101,0,109,122,109,0,109,122,110,0,110,97,100,0,110,103,110,0,110,105,99,0,110,105,111,0,110,108,103,0,110,111,107,0,110,112,114,0,110,122,100,0,111,109,114,0,112,97,98,0,112,101,105,0,112,101,110,0,112,101,115,0,112,103,107,0,112,104,112,0,112,107,114,0,112,108,110,0,112,108,122,0,112,116,101,0,112,121,103,0,113,97,114,0,114,104,100,0,114,111,108,0,114,111,110,0,114,115,100,0,114,117,98,0,114,117,114,0,114,119,102,0,115,97,114,0,115,98,100,0,115,99,114,0,115,100,100,0,115,100,103,0,115,100,112,0,115,101,107,0,115,103,100,0,115,104,112,0,115,105,116,0,115,107,107,0,115,108,101,0,115,108,108,0,115,111,115,0,115,114,100,0,115,114,103,0,115,115,112,0,115,116,100,0,115,116,110,0,115,117,114,0,115,118,99,0,115,121,112,0,115,122,108,0,116,104,98,0,116,106,114,0,116,106,115,0,116,109,109,0,116,109,116,0,116,110,100,0,116,112,101,0,116,114,108,0,116,114,121,0,116,116,100,0,116,119,100,0,116,122,115,0,117,97,104,0,117,97,107,0,117,103,115,0,117,103,120,0,117,115,100,0,117,115,110,0,117,115,115,0,117,121,105,0,117,121,112,0,117,121,117,0,117,121,119,0,117,122,115,0,118,101,98,0,118,101,100,0,118,101,102,0,118,101,115,0,118,110,100,0,118,110,110,0,118,117,118,0,119,115,116,0,120,97,102,0,120,97,103,0,120,97,117,0,120,98,97,0,120,98,98,0,120,98,99,0,120,98,100,0,120,99,100,0,120,100,114,0,120,101,117,0,120,102,111,0,120,102,117,0,120,111,102,0,120,112,100,0,120,112,102,0,120,112,116,0,120,114,101,0,120,115,117,0,120,116,115,0,120,117,97,0,120,120,120,0,121,100,100,0,121,101,114,0,121,117,100,0,121,117,109,0,121,117,110,0,121,117,114,0,122,97,108,0,122,97,114,0,122,109,107,0,122,109,119,0,122,114,110,0,122,114,122,0,122,119,100,0,122,119,108,0,122,119,114,0,97,99,99,101,110,116,115,0,97,115,99,105,105,0,99,97,115,101,102,111,108,100,0,102,99,99,0,102,99,100,0,102,117,108,108,119,105,100,116,104,0,104,97,108,102,119,105,100,116,104,0,104,101,120,0,109,111,114,115,101,0,110,97,109,101,0,110,102,99,0,110,102,100,0,110,102,107,99,0,110,102,107,100,0,110,117,108,108,0,110,117,109,101,114,105,99,80,105,110,121,105,110,0,112,117,98,108,105,115,104,105,110,103,0,114,101,109,111,118,101,0,116,105,116,108,101,0,122,97,119,103,121,105,0,83,67,82,73,80,84,95,67,79,68,69,0,100,101,102,97,117,108,116,0,116,101,120,116,0,102,114,105,0,109,111,110,0,115,97,116,0,115,117,110,0,116,104,117,0,116,117,101,0,119,101,100,0,104,121,98,114,105,100,0,104,49,49,0,104,49,50,0,104,50,51,0,104,50,52,0,104,97,110,100,119,114,105,116,0,119,117,98,105,0,49,48,49,107,101,121,0,49,48,50,107,101,121,0,54,48,48,100,112,105,0,55,54,56,100,112,105,0,97,110,100,114,111,105,100,0,97,122,101,114,116,121,0,99,104,114,111,109,101,111,115,0,99,111,108,101,109,97,107,0,100,118,111,114,97,107,0,100,118,111,114,97,107,108,0,100,118,111,114,97,107,114,0,101,108,50,50,48,0,101,108,51,49,57,0,101,120,116,101,110,100,101,100,0,103,111,111,103,108,101,118,107,0,105,115,105,114,105,0,108,101,103,97,99,121,0,108,116,49,50,48,53,0,108,116,49,53,56,50,0,110,117,116,97,97,113,0,111,115,120,0,112,97,116,116,97,0,113,119,101,114,116,121,0,113,119,101,114,116,122,0,116,97,57,57,0,118,97,114,0,118,105,113,114,0,119,105,110,100,111,119,115,0,108,111,111,115,101,0,110,111,114,109,97,108,0,115,116,114,105,99,116,0,98,114,101,97,107,97,108,108,0,107,101,101,112,97,108,108,0,112,104,114,97,115,101,0,97,101,116,104,105,111,112,105,0,97,108,97,108,111,99,0,98,101,116,97,45,109,101,116,115,101,104,97,102,0,98,117,99,107,119,97,108,116,0,99,115,115,0,101,115,51,56,52,50,0,101,119,116,115,0,103,111,115,116,0,103,117,114,97,103,101,0,103,117,116,103,97,114,116,115,0,105,97,115,116,0,105,101,115,45,106,101,115,0,105,115,111,0,106,97,118,97,0,108,97,109,98,100,105,110,0,109,99,115,116,0,109,110,115,0,110,97,109,101,115,0,112,101,114,99,101,110,116,0,112,101,114,108,0,112,108,97,105,110,0,115,97,116,116,115,0,115,101,114,97,0,116,101,107,105,101,45,97,108,105,98,101,107,105,116,0,117,110,103,101,103,110,0,117,110,105,99,111,100,101,0,120,97,108,101,103,101,116,0,120,109,108,0,120,109,108,49,48,0,105,109,112,101,114,105,97,108,0,109,101,116,114,105,99,0,117,115,115,121,115,116,101,109,0,99,101,108,115,105,117,115,0,102,97,104,114,101,110,104,101,0,107,101,108,118,105,110,0,97,100,108,109,0,97,104,111,109,0,97,114,97,98,0,97,114,97,98,101,120,116,0,97,114,109,110,0,97,114,109,110,108,111,119,0,98,97,108,105,0,98,101,110,103,0,98,104,107,115,0,98,114,97,104,0,99,97,107,109,0,99,104,97,109,0,99,121,114,108,0,100,101,118,97,0,100,105,97,107,0,101,116,104,105,0,102,105,110,97,110,99,101,0,102,117,108,108,119,105,100,101,0,103,101,111,114,0,103,111,110,103,0,103,111,110,109,0,103,114,101,107,0,103,114,101,107,108,111,119,0,103,117,106,114,0,103,117,114,117,0,104,97,110,105,100,97,121,115,0,104,97,110,105,100,101,99,0,104,97,110,115,0,104,97,110,115,102,105,110,0,104,97,110,116,0,104,97,110,116,102,105,110,0,104,101,98,114,0,104,109,110,103,0,104,109,110,112,0,106,112,97,110,0,106,112,97,110,102,105,110,0,106,112,97,110,121,101,97,114,0,107,97,108,105,0,107,97,119,105,0,107,104,109,114,0,107,110,100,97,0,108,97,110,97,0,108,97,110,97,116,104,97,109,0,108,97,111,111,0,108,97,116,110,0,108,101,112,99,0,108,105,109,98,0,109,97,116,104,98,111,108,100,0,109,97,116,104,100,98,108,0,109,97,116,104,109,111,110,111,0,109,97,116,104,115,97,110,98,0,109,97,116,104,115,97,110,115,0,109,108,121,109,0,109,111,100,105,0,109,111,110,103,0,109,114,111,111,0,109,116,101,105,0,109,121,109,114,0,109,121,109,114,115,104,97,110,0,109,121,109,114,116,108,110,103,0,110,97,103,109,0,110,97,116,105,118,101,0,110,101,119,97,0,110,107,111,111,0,111,108,99,107,0,111,114,121,97,0,111,115,109,97,0,114,111,104,103,0,114,111,109,97,110,0,114,111,109,97,110,108,111,119,0,115,97,117,114,0,115,101,103,109,101,110,116,0,115,104,114,100,0,115,105,110,100,0,115,105,110,104,0,115,111,114,97,0,115,117,110,100,0,116,97,107,114,0,116,97,108,117,0,116,97,109,108,0,116,97,109,108,100,101,99,0,116,101,108,117,0,116,104,97,105,0,116,105,98,116,0,116,105,114,104,0,116,110,115,97,0,118,97,105,105,0,119,97,114,97,0,119,99,104,111,0,82,71,95,75,69,89,95,86,65,76,85,69,0,83,85,66,68,73,86,73,83,73,79,78,95,67,79,68,69,0,110,111,110,101,0,112,111,115,105,120,0,67,79,68,69,80,79,73,78,84,83,0,80,82,73,86,65,84,69,95,85,83,69,0,170,170,170,0,0,99,0,97,0,0,0,99,0,111,0,0,0,99,0,117,0,0,0,104,0,99,0,0,0,107,0,97,0,0,0,107,0,98,0,0,0,107,0,99,0,0,0,107,0,102,0,0,0,107,0,104,0,0,0,107,0,107,0,0,0,107,0,110,0,0,0,107,0,114,0,0,0,107,0,115,0,0,0,109,0,115,0,0,0,110,0,117,0,0,0,116,0,122,0,0,0,118,0,116,0,0,0,97,0,110,0,121,0,0,0,99,0,49,0,49,0,0,0,116,0,114,0,117,0,101,0,0,0,100,0,105,0,99,0,116,0,0,0,116,0,114,0,97,0,100,0,0,0,102,0,97,0,108,0,115,0,101,0,0,0,102,0,119,0,105,0,100,0,116,0,104,0,0,0,103,0,98,0,50,0,51,0,49,0,50,0,0,0,104,0,119,0,105,0,100,0,116,0,104,0,0,0,105,0,101,0,115,0,106,0,101,0,115,0,0,0,108,0,101,0,118,0,101,0,108,0,49,0,0,0,108,0,101,0,118,0,101,0,108,0,50,0,0,0,108,0,101,0,118,0,101,0,108,0,51,0,0,0,108,0,101,0,118,0,101,0,108,0,52,0,0,0,115,0,105,0,110,0,103,0,108,0,101,0,0,0,110,0,112,0,105,0,110,0,121,0,105,0,110,0,0,0,112,0,117,0,98,0,108,0,105,0,115,0,104,0,0,0,101,0,116,0,104,0,105,0,111,0,97,0,97,0,0,0,103,0,114,0,101,0,103,0,111,0,114,0,121,0,0,0,105,0,100,0,101,0,110,0,116,0,105,0,99,0,0,0,112,0,104,0,111,0,110,0,101,0,98,0,107,0,0,0,109,0,117,0,108,0,116,0,105,0,112,0,108,0,101,0,0,0,98,0,101,0,116,0,97,0,109,0,101,0,116,0,115,0,0,0,99,0,104,0,97,0,114,0,110,0,97,0,109,0,101,0,0,0,110,0,111,0,105,0,103,0,110,0,111,0,114,0,101,0,0,0,112,0,114,0,112,0,114,0,110,0,97,0,109,0,101,0,0,0,116,0,101,0,107,0,105,0,101,0,97,0,108,0,105,0,0,0,116,0,114,0,97,0,100,0,105,0,116,0,105,0,111,0,0,0,117,0,107,0,115,0,121,0,115,0,116,0,101,0,109,0,0,0,113,0,117,0,97,0,116,0,101,0,114,0,110,0,97,0,114,0,121,0,0,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,97,0,108,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,99,0,105,0,118,0,105,0,108,0,0,0,1,0,48,0,31,1,2,0,76,0,79,0,60,0,60,0,6,0,45,0,92,0,95,0,80,6,79,0,98,0,19,1,192,0,137,0,192,0,192,0,52,0,37,0,108,0,172,5,117,0,130,0,143,0,156,0,169,0,191,0,201,0,218,0,229,0,240,0,252,0,5,1,92,0,153,10,8,1,95,0,11,1,17,1,20,1,23,1,26,1,29,1,32,1,35,1,43,1,46,1,192,6,54,1,32,7,40,7,57,1,60,1,253,10,69,1,98,0,1,0,0,0,13,0,16,0,22,0,19,0,25,0,4,0,28,0,31,0,34,0,37,0,7,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,43,0,0,0,0,0,0,0,0,0,0,0,46,0,0,0,49,0,0,0,1,0,91,1,8,1,1,0,115,1,60,0,1,0,122,1,60,0,18,0,136,1,145,1,153,1,160,1,166,1,175,1,195,1,205,1,212,1,219,1,227,1,241,1,254,1,11,2,28,2,36,2,45,2,53,2,0,0,0,0,0,0,0,0,0,0,160,0,168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,57,2,65,2,0,0,0,0,2,0,74,2,88,2,219,0,0,0,2,0,222,11,96,2,75,0,60,0,3,0,100,2,222,11,106,2,0,0,75,0,0,0,2,0,222,11,96,2,75,0,60,0,2,0,222,11,96,2,75,0,60,0,19,0,112,2,120,2,127,2,115,1,138,2,144,2,28,11,150,2,160,2,170,2,179,2,186,2,195,2,202,2,65,2,211,2,218,2,230,2,237,2,0,0,0,0,65,0,0,0,0,0,0,0,0,0,88,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,0,0,2,0,222,11,96,2,75,0,60,0,2,0,222,11,96,2,75,0,60,0,6,0,244,2,252,0,1,3,7,3,13,3,19,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,26,3,36,3,180,0,44,3,54,3,176,0,109,0,130,0,116,0,123,0,49,1,63,3,67,3,71,3,75,3,79,3,177,9,83,3,87,3,91,3,95,3,99,3,103,3,184,12,107,3,111,3,115,3,119,3,123,3,127,3,131,3,135,3,139,3,143,3,147,3,151,3,155,3,159,3,163,3,167,3,171,3,175,3,179,3,183,3,187,3,191,3,195,3,199,3,203,3,207,3,22,3,211,3,215,3,219,3,223,3,227,3,231,3,235,3,239,3,243,3,247,3,251,3,255,3,3,4,7,4,11,4,15,4,19,4,23,4,27,4,31,4,35,4,39,4,43,4,47,4,51,4,55,4,59,4,63,4,67,4,71,4,75,4,79,4,83,4,87,4,91,4,95,4,99,4,103,4,107,4,111,4,115,4,119,4,123,4,127,4,131,4,135,4,139,4,143,4,147,4,151,4,155,4,159,4,163,4,167,4,171,4,175,4,179,4,183,4,187,4,191,4,195,4,199,4,203,4,207,4,211,4,215,4,219,4,223,4,227,4,231,4,235,4,239,4,243,4,247,4,251,4,106,12,255,4,3,5,7,5,11,5,15,5,19,5,23,5,27,5,31,5,35,5,39,5,43,5,47,5,51,5,55,5,59,5,63,5,67,5,71,5,75,5,79,5,83,5,87,5,91,5,95,5,99,5,103,5,107,5,111,5,115,5,119,5,123,5,127,5,131,5,135,5,139,5,143,5,147,5,151,5,155,5,159,5,163,5,167,5,171,5,175,5,179,5,183,5,187,5,191,5,195,5,199,5,203,5,207,5,211,5,215,5,219,5,223,5,227,5,231,5,235,5,239,5,243,5,247,5,251,5,255,5,3,6,7,6,11,6,15,6,19,6,23,6,27,6,31,6,35,6,39,6,43,6,47,6,51,6,55,6,59,6,63,6,67,6,71,6,75,6,79,6,83,6,87,6,91,6,95,6,99,6,103,6,107,6,111,6,115,6,119,6,123,6,127,6,131,6,135,6,139,6,143,6,147,6,151,6,155,6,159,6,163,6,167,6,171,6,175,6,179,6,183,6,187,6,191,6,195,6,199,6,203,6,207,6,211,6,215,6,219,6,223,6,227,6,231,6,235,6,239,6,243,6,77,1,247,6,251,6,255,6,3,7,7,7,11,7,15,7,19,7,23,7,27,7,31,7,35,7,39,7,43,7,47,7,51,7,55,7,59,7,63,7,67,7,71,7,75,7,79,7,83,7,87,7,91,7,95,7,99,7,103,7,107,7,111,7,115,7,119,7,123,7,127,7,131,7,135,7,139,7,143,7,147,7,151,7,155,7,159,7,163,7,167,7,171,7,175,7,179,7,183,7,187,7,191,7,195,7,199,7,203,7,207,7,211,7,215,7,219,7,223,7,227,7,231,7,235,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,239,7,247,7,253,7,1,3,6,8,10,8,14,8,24,8,34,8,100,2,38,8,44,8,49,8,53,8,57,8,62,8,67,8,72,8,86,8,97,8,104,8,106,2,110,8,0,0,0,0,0,0,0,0,0,0,0,0,81,0,95,0,0,0,0,0,0,0,210,0,0,0,0,0,0,0,0,0,0,0,144,0,152,0,0,0,0,0,0,0,0,0,1,0,117,8,0,0,3,0,129,8,144,2,137,8,0,0,0,0,0,0,7,0,142,8,146,8,150,8,154,8,158,8,162,8,166,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,170,8,0,0,4,0,177,8,181,8,185,8,189,8,0,0,0,0,0,0,0,0,4,0,193,8,179,2,126,12,202,8,0,0,0,0,0,0,0,0,29,0,207,8,214,8,221,8,228,8,235,8,243,8,250,8,3,9,11,9,18,9,26,9,34,9,40,9,46,9,55,9,64,9,70,9,77,9,84,9,91,9,98,9,102,9,108,9,115,9,122,9,126,12,127,9,131,9,136,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,252,0,7,3,13,3,19,3,0,0,0,0,0,0,0,0,3,0,144,9,150,9,157,9,0,0,0,0,0,0,4,0,164,9,173,9,150,9,181,9,0,0,0,0,0,0,0,0,32,0,188,9,197,9,204,9,183,3,218,9,213,6,227,9,34,10,231,9,238,9,243,9,248,9,255,9,8,10,13,10,21,10,25,10,30,10,38,10,43,10,47,10,53,10,61,10,66,10,72,10,78,10,83,10,98,10,105,10,113,10,121,10,125,10,0,0,0,0,201,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,237,0,0,0,0,0,0,0,0,0,0,0,3,0,131,10,140,10,147,10,255,0,0,0,0,0,3,0,156,10,164,10,173,10,0,0,0,0,0,0,91,0,180,10,185,10,190,10,195,10,203,10,208,10,216,10,221,10,226,10,231,10,236,10,241,10,246,10,251,10,0,11,5,11,10,11,18,11,27,11,32,11,37,11,42,11,47,11,55,11,60,11,65,11,74,11,82,11,87,11,95,11,100,11,108,11,113,11,118,11,25,10,123,11,128,11,136,11,145,11,150,11,155,11,160,11,165,11,170,11,179,11,184,11,189,11,194,11,199,11,208,11,216,11,225,11,234,11,243,11,248,11,253,11,2,12,7,12,12,12,17,12,26,12,35,12,40,12,47,12,52,12,57,12,62,12,67,12,72,12,77,12,83,12,92,12,97,12,105,12,110,12,115,12,120,12,125,12,130,12,135,12,140,12,145,12,153,12,158,12,163,12,168,12,173,12,218,2,178,12,183,12,188,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,0,0,1,0,193,12,0,0,7,0,239,7,247,7,34,8,38,8,72,8,86,8,110,8,0,0,0,0,0,0,0,0,144,0,152,0,0,0,1,0,206,12,0,0,2,0,223,12,65,2,0,0,0,0,1,0,126,12,0,0,1,0,228,12,0,0,1,0,234,12,0,0,1,0,245,12,0,0,38,0,0,0,47,0,73,0,67,0,85,0,68,0,65,0,84,0,65,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,84,0,121,0,112,0,101,0,115,0,47,0,98,0,99,0,112,0,84,0,121,0,112,0,101,0,65,0,108,0,105,0,97,0,115,0,47,0,116,0,122,0,0,0,170,170,2,0,45,0,119,9,170,170,45,1,0,80,115,6,0,48,2,0,65,0,82,0,170,170,48,1,0,80,53,1,0,80,41,0,0,0,47,0,73,0,67,0,85,0,68,0,65,0,84,0,65,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,84,0,121,0,112,0,101,0,115,0,47,0,116,0,121,0,112,0,101,0,65,0,108,0,105,0,97,0,115,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,0,0,2,0,240,0,60,1,170,170,141,1,0,80,144,6,0,48,2,0,112,1,119,9,170,170,144,1,0,80,147,1,0,80,1,0,65,0,170,6,0,32,39,0,0,0,47,0,73,0,67,0,85,0,68,0,65,0,84,0,65,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,84,0,121,0,112,0,101,0,115,0,47,0,116,0,121,0,112,0,101,0,77,0,97,0,112,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,0,0,37,0,108,0,172,5,117,0,130,0,143,0,156,0,169,0,191,0,201,0,218,0,229,0,240,0,252,0,5,1,92,0,153,10,8,1,95,0,11,1,17,1,20,1,23,1,26,1,29,1,32,1,35,1,43,1,46,1,192,6,54,1,32,7,40,7,57,1,60,1,253,10,69,1,98,0,150,1,0,80,187,1,0,80,192,1,0,80,197,1,0,80,202,1,0,80,209,1,0,80,214,1,0,80,219,1,0,80,2,2,0,80,7,2,0,80,12,2,0,80,25,2,0,80,36,2,0,80,135,4,0,80,182,4,0,80,185,4,0,80,192,4,0,80,207,4,0,80,210,4,0,80,219,4,0,80,228,4,0,80,31,5,0,80,40,5,0,80,47,5,0,80,56,5,0,80,121,5,0,80,128,5,0,80,135,5,0,80,62,6,0,80,65,6,0,80,80,6,0,80,83,6,0,80,88,6,0,80,176,6,0,48,91,6,0,80,94,6,0,80,97,6,0,80,6,0,32,0,57,0,101,0,81,1,103,1,128,1,170,170,136,6,0,32,140,6,0,32,66,1,0,80,166,6,0,32,174,6,0,32,197,6,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,187,39,0,32,7,0,0,0,34,0,0,0,191,39,0,0,191,39,0,0,5,0,0,0,1,0,0,0,145,25,0,0,108,105,107,101,108,121,0,108,97,110,103,117,97,103,101,65,108,105,97,115,101,115,0,108,115,114,115,0,114,101,103,105,111,110,65,108,105,97,115,101,115,0,116,114,105,101,0,109,97,116,99,104,0,100,105,115,116,97,110,99,101,115,0,112,97,114,97,100,105,103,109,115,0,112,97,114,116,105,116,105,111,110,115,0,114,101,103,105,111,110,84,111,80,97,114,116,105,116,105,111,110,115,0,170,0,0,46,0,0,0,90,0,90,0,0,0,73,0,78,0,0,0,73,0,68,0,0,0,82,0,85,0,0,0,67,0,78,0,0,0,67,0,65,0,0,0,67,0,77,0,0,0,80,0,72,0,0,0,80,0,75,0,0,0,73,0,82,0,0,0,78,0,80,0,0,0,85,0,83,0,0,0,78,0,71,0,0,0,84,0,82,0,0,0,84,0,90,0,0,0,68,0,69,0,0,0,73,0,84,0,0,0,75,0,69,0,0,0,90,0,65,0,0,0,71,0,66,0,0,0,77,0,76,0,0,0,83,0,68,0,0,0,84,0,72,0,0,0,85,0,71,0,0,0,69,0,83,0,0,0,69,0,84,0,0,0,70,0,82,0,0,0,77,0,77,0,0,0,77,0,89,0,0,0,67,0,68,0,0,0,71,0,72,0,0,0,77,0,90,0,0,0,70,0,77,0,0,0,77,0,65,0,0,0,77,0,88,0,0,0,83,0,69,0,0,0,83,0,78,0,0,0,65,0,70,0,0,0,66,0,68,0,0,0,66,0,82,0,0,0,67,0,73,0,0,0,71,0,69,0,0,0,71,0,78,0,0,0,71,0,82,0,0,0,73,0,81,0,0,0,77,0,78,0,0,0,78,0,69,0,0,0,78,0,76,0,0,0,85,0,65,0,0,0,67,0,72,0,0,0,78,0,65,0,0,0,84,0,71,0,0,0,85,0,90,0,0,0,86,0,78,0,0,0,90,0,87,0,0,0,65,0,76,0,0,0,65,0,79,0,0,0,65,0,90,0,0,0,66,0,70,0,0,0,67,0,89,0,0,0,68,0,90,0,0,0,69,0,71,0,0,0,69,0,82,0,0,0,70,0,73,0,0,0,70,0,74,0,0,0,73,0,76,0,0,0,74,0,80,0,0,0,75,0,77,0,0,0,76,0,65,0,0,0,78,0,79,0,0,0,80,0,76,0,0,0,82,0,83,0,0,0,83,0,65,0,0,0,83,0,76,0,0,0,83,0,89,0,0,0,84,0,78,0,0,0,84,0,87,0,0,0,85,0,77,0,0,0,89,0,69,0,0,0,65,0,81,0,0,0,65,0,85,0,0,0,66,0,69,0,0,0,66,0,74,0,0,0,66,0,79,0,0,0,66,0,84,0,0,0,67,0,87,0,0,0,71,0,70,0,0,0,71,0,81,0,0,0,73,0,69,0,0,0,75,0,72,0,0,0,75,0,82,0,0,0,75,0,90,0,0,0,76,0,66,0,0,0,76,0,82,0,0,0,77,0,68,0,0,0,77,0,85,0,0,0,77,0,87,0,0,0,80,0,65,0,0,0,80,0,70,0,0,0,80,0,71,0,0,0,82,0,79,0,0,0,83,0,82,0,0,0,84,0,76,0,0,0,87,0,70,0,0,0,88,0,75,0,0,0,89,0,84,0,0,0,102,0,102,0,0,0,65,0,77,0,0,0,65,0,84,0,0,0,65,0,87,0,0,0,66,0,65,0,0,0,66,0,71,0,0,0,66,0,78,0,0,0,67,0,70,0,0,0,67,0,76,0,0,0,67,0,79,0,0,0,67,0,86,0,0,0,67,0,90,0,0,0,68,0,75,0,0,0,69,0,67,0,0,0,69,0,69,0,0,0,71,0,65,0,0,0,71,0,84,0,0,0,71,0,85,0,0,0,71,0,87,0,0,0,72,0,75,0,0,0,72,0,85,0,0,0,74,0,79,0,0,0,75,0,73,0,0,0,76,0,84,0,0,0,76,0,85,0,0,0,76,0,86,0,0,0,77,0,75,0,0,0,77,0,79,0,0,0,77,0,82,0,0,0,77,0,86,0,0,0,80,0,69,0,0,0,80,0,84,0,0,0,82,0,69,0,0,0,83,0,66,0,0,0,83,0,67,0,0,0,83,0,75,0,0,0,83,0,79,0,0,0,84,0,74,0,0,0,86,0,65,0,0,0,86,0,85,0,0,0,90,0,77,0,0,0,99,0,115,0,0,0,106,0,119,0,0,0,108,0,118,0,0,0,115,0,99,0,0,0,115,0,118,0,0,0,116,0,108,0,0,0,48,0,50,0,0,0,48,0,52,0,0,0,48,0,53,0,0,0,48,0,54,0,0,0,49,0,51,0,0,0,65,0,68,0,0,0,65,0,69,0,0,0,65,0,78,0,0,0,65,0,82,0,0,0,65,0,83,0,0,0,65,0,88,0,0,0,66,0,72,0,0,0,66,0,73,0,0,0,66,0,76,0,0,0,66,0,81,0,0,0,66,0,85,0,0,0,66,0,86,0,0,0,66,0,89,0,0,0,67,0,67,0,0,0,67,0,71,0,0,0,67,0,80,0,0,0,67,0,82,0,0,0,67,0,83,0,0,0,67,0,84,0,0,0,67,0,85,0,0,0,68,0,68,0,0,0,68,0,71,0,0,0,68,0,74,0,0,0,68,0,79,0,0,0,68,0,89,0,0,0,69,0,65,0,0,0,69,0,72,0,0,0,69,0,85,0,0,0,69,0,90,0,0,0,70,0,79,0,0,0,70,0,81,0,0,0,70,0,88,0,0,0,71,0,76,0,0,0,71,0,77,0,0,0,71,0,80,0,0,0,71,0,83,0,0,0,72,0,77,0,0,0,72,0,78,0,0,0,72,0,82,0,0,0,72,0,84,0,0,0,72,0,86,0,0,0,73,0,67,0,0,0,73,0,77,0,0,0,73,0,83,0,0,0,74,0,69,0,0,0,74,0,77,0,0,0,74,0,84,0,0,0,75,0,71,0,0,0,75,0,80,0,0,0,75,0,87,0,0,0,76,0,73,0,0,0,76,0,75,0,0,0,76,0,83,0,0,0,76,0,89,0,0,0,77,0,67,0,0,0,77,0,69,0,0,0,77,0,70,0,0,0,77,0,71,0,0,0,77,0,72,0,0,0,77,0,73,0,0,0,77,0,81,0,0,0,77,0,84,0,0,0,78,0,67,0,0,0,78,0,72,0,0,0,78,0,73,0,0,0,78,0,81,0,0,0,78,0,82,0,0,0,78,0,84,0,0,0,78,0,85,0,0,0,78,0,90,0,0,0,79,0,77,0,0,0,80,0,67,0,0,0,80,0,77,0,0,0,80,0,82,0,0,0,80,0,83,0,0,0,80,0,85,0,0,0,80,0,87,0,0,0,80,0,89,0,0,0,80,0,90,0,0,0,81,0,65,0,0,0,81,0,85,0,0,0,82,0,72,0,0,0,82,0,87,0,0,0,83,0,73,0,0,0,83,0,74,0,0,0,83,0,77,0,0,0,83,0,83,0,0,0,83,0,84,0,0,0,83,0,85,0,0,0,83,0,86,0,0,0,83,0,88,0,0,0,84,0,68,0,0,0,84,0,70,0,0,0,84,0,75,0,0,0,84,0,77,0,0,0,84,0,79,0,0,0,84,0,80,0,0,0,84,0,86,0,0,0,85,0,75,0,0,0,85,0,89,0,0,0,86,0,68,0,0,0,86,0,69,0,0,0,87,0,75,0,0,0,87,0,83,0,0,0,89,0,68,0,0,0,89,0,85,0,0,0,90,0,82,0,0,0,98,0,110,0,0,0,98,0,115,0,0,0,102,0,106,0,0,0,110,0,118,0,0,0,116,0,119,0,0,0,118,0,101,0,0,0,118,0,105,0,0,0,122,0,117,0,0,0,110,0,102,0,114,0,0,0,120,0,101,0,115,0,0,0,108,0,122,0,104,0,0,0,119,0,97,0,114,0,0,0,121,0,101,0,110,0,0,0,48,0,48,0,49,0,0,0,98,0,107,0,117,0,0,0,120,0,115,0,114,0,0,0,98,0,115,0,113,0,0,0,103,0,121,0,105,0,0,0,109,0,100,0,101,0,0,0,115,0,109,0,115,0,0,0,120,0,115,0,97,0,0,0,121,0,97,0,122,0,0,0,100,0,116,0,112,0,0,0,101,0,110,0,108,0,0,0,107,0,104,0,97,0,0,0,109,0,102,0,97,0,0,0,116,0,107,0,107,0,0,0,116,0,115,0,119,0,0,0,98,0,104,0,111,0,0,0,100,0,111,0,105,0,0,0,101,0,109,0,107,0,0,0,109,0,97,0,110,0,0,0,113,0,117,0,122,0,0,0,115,0,117,0,114,0,0,0,116,0,115,0,100,0,0,0,119,0,114,0,111,0,0,0,120,0,109,0,110,0,0,0,121,0,107,0,111,0,0,0,104,0,111,0,99,0,0,0,112,0,112,0,97,0,0,0,115,0,110,0,98,0,0,0,122,0,122,0,97,0,0,0,99,0,106,0,118,0,0,0,101,0,107,0,121,0,0,0,110,0,97,0,107,0,0,0,111,0,107,0,118,0,0,0,115,0,116,0,107,0,0,0,115,0,117,0,107,0,0,0,116,0,98,0,111,0,0,0,119,0,101,0,108,0,0,0,119,0,105,0,116,0,0,0,119,0,106,0,97,0,0,0,121,0,117,0,103,0,0,0,122,0,110,0,101,0,0,0,102,0,105,0,108,0,0,0,105,0,98,0,97,0,0,0,107,0,100,0,116,0,0,0,111,0,121,0,98,0,0,0,112,0,97,0,112,0,0,0,118,0,97,0,106,0,0,0,121,0,117,0,101,0,0,0,114,0,107,0,105,0,0,0,116,0,109,0,104,0,0,0,117,0,116,0,104,0,0,0,121,0,97,0,109,0,0,0,99,0,113,0,117,0,0,0,104,0,104,0,121,0,0,0,107,0,97,0,97,0,0,0,107,0,100,0,118,0,0,0,107,0,100,0,122,0,0,0,108,0,111,0,106,0,0,0,108,0,111,0,114,0,0,0,108,0,116,0,103,0,0,0,109,0,101,0,117,0,0,0,110,0,99,0,117,0,0,0,110,0,104,0,101,0,0,0,110,0,105,0,110,0,0,0,110,0,107,0,103,0,0,0,110,0,109,0,103,0,0,0,110,0,115,0,111,0,0,0,112,0,105,0,115,0,0,0,112,0,107,0,97,0,0,0,114,0,103,0,110,0,0,0,115,0,97,0,102,0,0,0,115,0,99,0,97,0,0,0,115,0,112,0,115,0,0,0,116,0,98,0,103,0,0,0,116,0,99,0,121,0,0,0,116,0,101,0,116,0,0,0,116,0,104,0,114,0,0,0,116,0,105,0,100,0,0,0,116,0,105,0,107,0,0,0,116,0,107,0,114,0,0,0,116,0,109,0,121,0,0,0,117,0,116,0,114,0,0,0,119,0,105,0,117,0,0,0,119,0,105,0,119,0,0,0,119,0,115,0,107,0,0,0,120,0,99,0,114,0,0,0,121,0,97,0,121,0,0,0,122,0,109,0,105,0,0,0,122,0,111,0,109,0,0,0,122,0,115,0,109,0,0,0,52,0,49,0,57,0,0,0,97,0,101,0,98,0,0,0,97,0,106,0,116,0,0,0,98,0,97,0,108,0,0,0,98,0,97,0,110,0,0,0,98,0,98,0,99,0,0,0,98,0,102,0,121,0,0,0,98,0,105,0,107,0,0,0,98,0,117,0,97,0,0,0,98,0,117,0,103,0,0,0,99,0,104,0,109,0,0,0,99,0,109,0,103,0,0,0,100,0,101,0,110,0,0,0,100,0,103,0,108,0,0,0,100,0,109,0,119,0,0,0,100,0,110,0,106,0,0,0,101,0,109,0,97,0,0,0,101,0,115,0,103,0,0,0,101,0,122,0,97,0,0,0,103,0,98,0,97,0,0,0,103,0,111,0,110,0,0,0,103,0,114,0,98,0,0,0,103,0,114,0,99,0,0,0,103,0,118,0,114,0,0,0,104,0,105,0,102,0,0,0,104,0,110,0,106,0,0,0,104,0,110,0,110,0,0,0,105,0,122,0,105,0,0,0,106,0,103,0,107,0,0,0,107,0,98,0,100,0,0,0,107,0,108,0,110,0,0,0,107,0,109,0,98,0,0,0,107,0,111,0,107,0,0,0,107,0,112,0,101,0,0,0,107,0,114,0,117,0,0,0,107,0,116,0,114,0,0,0,107,0,120,0,108,0,0,0,107,0,122,0,104,0,0,0,107,0,122,0,106,0,0,0,107,0,122,0,107,0,0,0,107,0,122,0,116,0,0,0,108,0,97,0,104,0,0,0,108,0,105,0,102,0,0,0,108,0,117,0,121,0,0,0,109,0,97,0,105,0,0,0,109,0,97,0,107,0,0,0,109,0,101,0,110,0,0,0,109,0,110,0,105,0,0,0,109,0,110,0,119,0,0,0,109,0,114,0,121,0,0,0,109,0,119,0,114,0,0,0,110,0,101,0,119,0,0,0,112,0,97,0,108,0,0,0,112,0,105,0,106,0,0,0,114,0,97,0,106,0,0,0,114,0,101,0,106,0,0,0,114,0,104,0,103,0,0,0,114,0,105,0,102,0,0,0,115,0,107,0,114,0,0,0,115,0,109,0,100,0,0,0,115,0,111,0,103,0,0,0,115,0,114,0,120,0,0,0,115,0,121,0,108,0,0,0,115,0,121,0,114,0,0,0,116,0,97,0,106,0,0,0,116,0,98,0,119,0,0,0,116,0,100,0,117,0,0,0,116,0,115,0,102,0,0,0,116,0,118,0,100,0,0,0,117,0,111,0,107,0,0,0,120,0,109,0,114,0,0,0,97,0,108,0,98,0,0,0,97,0,115,0,101,0,0,0,98,0,120,0,104,0,0,0,100,0,116,0,121,0,0,0,103,0,107,0,110,0,0,0,104,0,108,0,117,0,0,0,104,0,110,0,111,0,0,0,106,0,107,0,109,0,0,0,107,0,98,0,109,0,0,0,107,0,102,0,121,0,0,0,107,0,104,0,116,0,0,0,107,0,104,0,122,0,0,0,107,0,107,0,106,0,0,0,109,0,98,0,104,0,0,0,109,0,101,0,101,0,0,0,109,0,102,0,111,0,0,0,109,0,107,0,119,0,0,0,110,0,99,0,101,0,0,0,110,0,103,0,118,0,0,0,110,0,105,0,105,0,0,0,110,0,108,0,110,0,0,0,110,0,115,0,110,0,0,0,110,0,118,0,111,0,0,0,111,0,116,0,97,0,0,0,114,0,119,0,111,0,0,0,115,0,98,0,101,0,0,0,115,0,99,0,118,0,0,0,115,0,103,0,100,0,0,0,115,0,103,0,108,0,0,0,115,0,107,0,115,0,0,0,115,0,114,0,110,0,0,0,116,0,102,0,105,0,0,0,116,0,103,0,117,0,0,0,116,0,105,0,103,0,0,0,116,0,105,0,111,0,0,0,116,0,107,0,108,0,0,0,116,0,116,0,101,0,0,0,116,0,116,0,115,0,0,0,116,0,116,0,116,0,0,0,117,0,103,0,97,0,0,0,117,0,108,0,105,0,0,0,117,0,114,0,119,0,0,0,119,0,97,0,101,0,0,0,119,0,97,0,110,0,0,0,119,0,98,0,114,0,0,0,119,0,101,0,111,0,0,0,119,0,106,0,105,0,0,0,119,0,109,0,111,0,0,0,119,0,110,0,110,0,0,0,119,0,115,0,103,0,0,0,119,0,119,0,97,0,0,0,120,0,98,0,105,0,0,0,120,0,99,0,104,0,0,0,120,0,99,0,111,0,0,0,120,0,108,0,97,0,0,0,120,0,110,0,97,0,0,0,120,0,110,0,114,0,0,0,120,0,110,0,121,0,0,0,120,0,115,0,105,0,0,0,120,0,115,0,108,0,0,0,121,0,97,0,115,0,0,0,121,0,97,0,118,0,0,0,121,0,98,0,97,0,0,0,121,0,108,0,103,0,0,0,121,0,109,0,108,0,0,0,121,0,109,0,116,0,0,0,121,0,111,0,115,0,0,0,121,0,114,0,109,0,0,0,121,0,115,0,115,0,0,0,122,0,105,0,97,0,0,0,48,0,51,0,52,0,0,0,49,0,52,0,51,0,0,0,53,0,56,0,50,0,0,0,56,0,56,0,54,0,0,0,56,0,57,0,48,0,0,0,48,0,50,0,54,0,0,0,48,0,54,0,50,0,0,0,49,0,55,0,50,0,0,0,50,0,48,0,48,0,0,0,50,0,51,0,48,0,0,0,50,0,56,0,48,0,0,0,53,0,51,0,50,0,0,0,55,0,51,0,54,0,0,0,56,0,51,0,48,0,0,0,97,0,97,0,105,0,0,0,97,0,97,0,107,0,0,0,97,0,97,0,109,0,0,0,97,0,97,0,115,0,0,0,97,0,97,0,117,0,0,0,97,0,98,0,105,0,0,0,97,0,98,0,113,0,0,0,97,0,98,0,114,0,0,0,97,0,98,0,116,0,0,0,97,0,98,0,121,0,0,0,97,0,99,0,100,0,0,0,97,0,99,0,101,0,0,0,97,0,99,0,104,0,0,0,97,0,99,0,110,0,0,0,97,0,100,0,97,0,0,0,97,0,100,0,101,0,0,0,97,0,100,0,106,0,0,0,97,0,100,0,112,0,0,0,97,0,100,0,120,0,0,0,97,0,100,0,121,0,0,0,97,0,100,0,122,0,0,0,97,0,101,0,121,0,0,0,97,0,103,0,99,0,0,0,97,0,103,0,100,0,0,0,97,0,103,0,103,0,0,0,97,0,103,0,111,0,0,0,97,0,103,0,112,0,0,0,97,0,103,0,113,0,0,0,97,0,104,0,97,0,0,0,97,0,104,0,108,0,0,0,97,0,104,0,111,0,0,0,97,0,105,0,115,0,0,0,97,0,106,0,103,0,0,0,97,0,106,0,117,0,0,0,97,0,107,0,107,0,0,0,97,0,108,0,97,0,0,0,97,0,108,0,110,0,0,0,97,0,108,0,115,0,0,0,97,0,108,0,116,0,0,0,97,0,109,0,105,0,0,0,97,0,109,0,109,0,0,0,97,0,109,0,110,0,0,0,97,0,109,0,112,0,0,0,97,0,109,0,113,0,0,0,97,0,110,0,99,0,0,0,97,0,110,0,107,0,0,0,97,0,110,0,110,0,0,0,97,0,110,0,121,0,0,0,97,0,111,0,103,0,0,0,97,0,111,0,106,0,0,0,97,0,111,0,109,0,0,0,97,0,111,0,117,0,0,0,97,0,111,0,122,0,0,0,97,0,112,0,99,0,0,0,97,0,112,0,100,0,0,0,97,0,112,0,101,0,0,0,97,0,112,0,102,0,0,0,97,0,112,0,114,0,0,0,97,0,112,0,115,0,0,0,97,0,112,0,122,0,0,0,97,0,113,0,100,0,0,0,97,0,113,0,116,0,0,0,97,0,114,0,104,0,0,0,97,0,114,0,109,0,0,0,97,0,114,0,110,0,0,0,97,0,114,0,111,0,0,0,97,0,114,0,113,0,0,0,97,0,114,0,115,0,0,0,97,0,114,0,121,0,0,0,97,0,114,0,122,0,0,0,97,0,115,0,97,0,0,0,97,0,115,0,100,0,0,0,97,0,115,0,103,0,0,0,97,0,115,0,111,0,0,0,97,0,115,0,116,0,0,0,97,0,116,0,97,0,0,0,97,0,116,0,103,0,0,0,97,0,116,0,106,0,0,0,97,0,117,0,101,0,0,0,97,0,117,0,121,0,0,0,97,0,118,0,108,0,0,0,97,0,118,0,110,0,0,0,97,0,118,0,117,0,0,0,97,0,119,0,97,0,0,0,97,0,119,0,98,0,0,0,97,0,119,0,111,0,0,0,97,0,119,0,120,0,0,0,97,0,121,0,98,0,0,0,97,0,121,0,114,0,0,0,97,0,121,0,120,0,0,0,97,0,122,0,100,0,0,0,97,0,122,0,106,0,0,0,98,0,97,0,112,0,0,0,98,0,97,0,113,0,0,0,98,0,97,0,114,0,0,0,98,0,97,0,115,0,0,0,98,0,97,0,118,0,0,0,98,0,97,0,120,0,0,0,98,0,97,0,122,0,0,0,98,0,98,0,97,0,0,0,98,0,98,0,98,0,0,0,98,0,98,0,100,0,0,0,98,0,98,0,106,0,0,0,98,0,98,0,112,0,0,0,98,0,98,0,114,0,0,0,98,0,99,0,99,0,0,0,98,0,99,0,102,0,0,0,98,0,99,0,103,0,0,0,98,0,99,0,104,0,0,0,98,0,99,0,105,0,0,0,98,0,99,0,108,0,0,0,98,0,99,0,109,0,0,0,98,0,99,0,110,0,0,0,98,0,99,0,111,0,0,0,98,0,99,0,113,0,0,0,98,0,99,0,117,0,0,0,98,0,100,0,100,0,0,0,98,0,101,0,98,0,0,0,98,0,101,0,102,0,0,0,98,0,101,0,104,0,0,0,98,0,101,0,106,0,0,0,98,0,101,0,109,0,0,0,98,0,101,0,116,0,0,0,98,0,101,0,119,0,0,0,98,0,101,0,120,0,0,0,98,0,101,0,122,0,0,0,98,0,102,0,100,0,0,0,98,0,102,0,113,0,0,0,98,0,102,0,116,0,0,0,98,0,103,0,99,0,0,0,98,0,103,0,109,0,0,0,98,0,103,0,110,0,0,0,98,0,103,0,120,0,0,0,98,0,104,0,98,0,0,0,98,0,104,0,103,0,0,0,98,0,104,0,105,0,0,0,98,0,104,0,107,0,0,0,98,0,104,0,108,0,0,0,98,0,104,0,121,0,0,0,98,0,105,0,98,0,0,0,98,0,105,0,99,0,0,0,98,0,105,0,103,0,0,0,98,0,105,0,109,0,0,0,98,0,105,0,110,0,0,0,98,0,105,0,111,0,0,0,98,0,105,0,113,0,0,0,98,0,105,0,114,0,0,0,98,0,106,0,100,0,0,0,98,0,106,0,104,0,0,0,98,0,106,0,105,0,0,0,98,0,106,0,106,0,0,0,98,0,106,0,110,0,0,0,98,0,106,0,111,0,0,0,98,0,106,0,112,0,0,0,98,0,106,0,113,0,0,0,98,0,106,0,114,0,0,0,98,0,106,0,116,0,0,0,98,0,106,0,122,0,0,0,98,0,107,0,98,0,0,0,98,0,107,0,99,0,0,0,98,0,107,0,109,0,0,0,98,0,107,0,113,0,0,0,98,0,107,0,118,0,0,0,98,0,108,0,97,0,0,0,98,0,108,0,103,0,0,0,98,0,108,0,116,0,0,0,98,0,109,0,102,0,0,0,98,0,109,0,104,0,0,0,98,0,109,0,107,0,0,0,98,0,109,0,113,0,0,0,98,0,109,0,117,0,0,0,98,0,110,0,99,0,0,0,98,0,110,0,103,0,0,0,98,0,110,0,109,0,0,0,98,0,110,0,112,0,0,0,98,0,111,0,106,0,0,0,98,0,111,0,109,0,0,0,98,0,111,0,110,0,0,0,98,0,112,0,112,0,0,0,98,0,112,0,121,0,0,0,98,0,113,0,99,0,0,0,98,0,113,0,105,0,0,0,98,0,113,0,112,0,0,0,98,0,113,0,118,0,0,0,98,0,114,0,97,0,0,0,98,0,114,0,104,0,0,0,98,0,114,0,120,0,0,0,98,0,114,0,122,0,0,0,98,0,115,0,106,0,0,0,98,0,115,0,115,0,0,0,98,0,115,0,116,0,0,0,98,0,116,0,98,0,0,0,98,0,116,0,111,0,0,0,98,0,116,0,116,0,0,0,98,0,116,0,118,0,0,0,98,0,117,0,99,0,0,0,98,0,117,0,100,0,0,0,98,0,117,0,107,0,0,0,98,0,117,0,109,0,0,0,98,0,117,0,111,0,0,0,98,0,117,0,114,0,0,0,98,0,117,0,115,0,0,0,98,0,117,0,117,0,0,0,98,0,118,0,98,0,0,0,98,0,119,0,100,0,0,0,98,0,119,0,114,0,0,0,98,0,120,0,107,0,0,0,98,0,120,0,114,0,0,0,98,0,121,0,101,0,0,0,98,0,121,0,110,0,0,0,98,0,121,0,114,0,0,0,98,0,121,0,115,0,0,0,98,0,121,0,118,0,0,0,98,0,121,0,120,0,0,0,98,0,122,0,97,0,0,0,98,0,122,0,99,0,0,0,98,0,122,0,101,0,0,0,98,0,122,0,102,0,0,0,98,0,122,0,104,0,0,0,98,0,122,0,119,0,0,0,99,0,97,0,100,0,0,0,99,0,97,0,110,0,0,0,99,0,97,0,120,0,0,0,99,0,98,0,106,0,0,0,99,0,99,0,104,0,0,0,99,0,99,0,112,0,0,0,99,0,99,0,113,0,0,0,99,0,101,0,98,0,0,0,99,0,102,0,97,0,0,0,99,0,103,0,103,0,0,0,99,0,104,0,105,0,0,0,99,0,104,0,107,0,0,0,99,0,104,0,112,0,0,0,99,0,104,0,114,0,0,0,99,0,105,0,99,0,0,0,99,0,105,0,114,0,0,0,99,0,106,0,97,0,0,0,99,0,106,0,109,0,0,0,99,0,106,0,114,0,0,0,99,0,107,0,97,0,0,0,99,0,107,0,98,0,0,0,99,0,107,0,108,0,0,0,99,0,107,0,111,0,0,0,99,0,107,0,121,0,0,0,99,0,108,0,97,0,0,0,99,0,108,0,99,0,0,0,99,0,108,0,100,0,0,0,99,0,109,0,101,0,0,0,99,0,109,0,107,0,0,0,99,0,109,0,110,0,0,0,99,0,109,0,114,0,0,0,99,0,111,0,112,0,0,0,99,0,111,0,121,0,0,0,99,0,112,0,115,0,0,0,99,0,114,0,103,0,0,0,99,0,114,0,104,0,0,0,99,0,114,0,107,0,0,0,99,0,114,0,108,0,0,0,99,0,114,0,115,0,0,0,99,0,115,0,98,0,0,0,99,0,115,0,119,0,0,0,99,0,116,0,100,0,0,0,99,0,119,0,100,0,0,0,99,0,122,0,101,0,0,0,100,0,97,0,100,0,0,0,100,0,97,0,102,0,0,0,100,0,97,0,103,0,0,0,100,0,97,0,104,0,0,0,100,0,97,0,107,0,0,0,100,0,97,0,112,0,0,0,100,0,97,0,114,0,0,0,100,0,97,0,118,0,0,0,100,0,98,0,100,0,0,0,100,0,98,0,113,0,0,0,100,0,98,0,116,0,0,0,100,0,99,0,99,0,0,0,100,0,100,0,110,0,0,0,100,0,101,0,100,0,0,0,100,0,101,0,108,0,0,0,100,0,101,0,118,0,0,0,100,0,103,0,97,0,0,0,100,0,103,0,104,0,0,0,100,0,103,0,105,0,0,0,100,0,103,0,111,0,0,0,100,0,103,0,114,0,0,0,100,0,103,0,122,0,0,0,100,0,104,0,100,0,0,0,100,0,105,0,97,0,0,0,100,0,105,0,102,0,0,0,100,0,105,0,107,0,0,0,100,0,105,0,110,0,0,0,100,0,105,0,113,0,0,0,100,0,105,0,116,0,0,0,100,0,106,0,101,0,0,0,100,0,106,0,108,0,0,0,100,0,107,0,108,0,0,0,100,0,109,0,102,0,0,0,100,0,111,0,98,0,0,0,100,0,111,0,112,0,0,0,100,0,111,0,119,0,0,0,100,0,114,0,104,0,0,0,100,0,114,0,105,0,0,0,100,0,114,0,108,0,0,0,100,0,114,0,114,0,0,0,100,0,114,0,115,0,0,0,100,0,115,0,98,0,0,0,100,0,116,0,100,0,0,0,100,0,116,0,109,0,0,0,100,0,116,0,115,0,0,0,100,0,117,0,97,0,0,0,100,0,117,0,99,0,0,0,100,0,117,0,100,0,0,0,100,0,117,0,103,0,0,0,100,0,117,0,106,0,0,0,100,0,117,0,116,0,0,0,100,0,117,0,122,0,0,0,100,0,118,0,97,0,0,0,100,0,119,0,108,0,0,0,100,0,119,0,117,0,0,0,100,0,119,0,119,0,0,0,100,0,121,0,111,0,0,0,100,0,121,0,117,0,0,0,100,0,122,0,101,0,0,0,100,0,122,0,103,0,0,0,101,0,98,0,107,0,0,0,101,0,98,0,117,0,0,0,101,0,102,0,105,0,0,0,101,0,103,0,108,0,0,0,101,0,103,0,121,0,0,0,101,0,107,0,97,0,0,0,101,0,107,0,99,0,0,0,101,0,107,0,107,0,0,0,101,0,108,0,112,0,0,0,101,0,109,0,105,0,0,0,101,0,109,0,120,0,0,0,101,0,110,0,110,0,0,0,101,0,110,0,113,0,0,0,101,0,114,0,105,0,0,0,101,0,115,0,107,0,0,0,101,0,115,0,117,0,0,0,101,0,116,0,114,0,0,0,101,0,116,0,116,0,0,0,101,0,116,0,117,0,0,0,101,0,116,0,120,0,0,0,101,0,119,0,111,0,0,0,101,0,120,0,116,0,0,0,102,0,97,0,97,0,0,0,102,0,97,0,98,0,0,0,102,0,97,0,103,0,0,0,102,0,97,0,105,0,0,0,102,0,97,0,110,0,0,0,102,0,97,0,116,0,0,0,102,0,98,0,108,0,0,0,102,0,102,0,105,0,0,0,102,0,102,0,109,0,0,0,102,0,105,0,97,0,0,0,102,0,105,0,116,0,0,0,102,0,108,0,114,0,0,0,102,0,109,0,112,0,0,0,102,0,111,0,100,0,0,0,102,0,111,0,110,0,0,0,102,0,111,0,114,0,0,0,102,0,112,0,101,0,0,0,102,0,113,0,115,0,0,0,102,0,114,0,99,0,0,0,102,0,114,0,101,0,0,0,102,0,114,0,112,0,0,0,102,0,114,0,114,0,0,0,102,0,114,0,115,0,0,0,102,0,117,0,98,0,0,0,102,0,117,0,99,0,0,0,102,0,117,0,100,0,0,0,102,0,117,0,101,0,0,0,102,0,117,0,102,0,0,0,102,0,117,0,104,0,0,0,102,0,117,0,113,0,0,0,102,0,117,0,114,0,0,0,102,0,117,0,118,0,0,0,102,0,117,0,121,0,0,0,102,0,118,0,114,0,0,0,103,0,97,0,97,0,0,0,103,0,97,0,102,0,0,0,103,0,97,0,103,0,0,0,103,0,97,0,104,0,0,0,103,0,97,0,106,0,0,0,103,0,97,0,108,0,0,0,103,0,97,0,110,0,0,0,103,0,97,0,118,0,0,0,103,0,97,0,119,0,0,0,103,0,97,0,121,0,0,0,103,0,97,0,122,0,0,0,103,0,98,0,99,0,0,0,103,0,98,0,102,0,0,0,103,0,98,0,109,0,0,0,103,0,98,0,111,0,0,0,103,0,98,0,121,0,0,0,103,0,98,0,122,0,0,0,103,0,99,0,114,0,0,0,103,0,100,0,101,0,0,0,103,0,100,0,106,0,0,0,103,0,100,0,110,0,0,0,103,0,100,0,114,0,0,0,103,0,101,0,98,0,0,0,103,0,101,0,106,0,0,0,103,0,101,0,108,0,0,0,103,0,101,0,111,0,0,0,103,0,101,0,114,0,0,0,103,0,101,0,122,0,0,0,103,0,102,0,107,0,0,0,103,0,102,0,120,0,0,0,103,0,103,0,110,0,0,0,103,0,103,0,111,0,0,0,103,0,103,0,114,0,0,0,103,0,104,0,115,0,0,0,103,0,105,0,108,0,0,0,103,0,105,0,109,0,0,0,103,0,105,0,111,0,0,0,103,0,106,0,107,0,0,0,103,0,106,0,110,0,0,0,103,0,106,0,117,0,0,0,103,0,107,0,112,0,0,0,103,0,108,0,105,0,0,0,103,0,108,0,107,0,0,0,103,0,109,0,109,0,0,0,103,0,109,0,118,0,0,0,103,0,110,0,100,0,0,0,103,0,110,0,103,0,0,0,103,0,110,0,111,0,0,0,103,0,111,0,100,0,0,0,103,0,111,0,102,0,0,0,103,0,111,0,105,0,0,0,103,0,111,0,109,0,0,0,103,0,111,0,114,0,0,0,103,0,111,0,115,0,0,0,103,0,111,0,116,0,0,0,103,0,114,0,101,0,0,0,103,0,114,0,116,0,0,0,103,0,114,0,119,0,0,0,103,0,115,0,119,0,0,0,103,0,116,0,105,0,0,0,103,0,116,0,117,0,0,0,103,0,117,0,98,0,0,0,103,0,117,0,99,0,0,0,103,0,117,0,100,0,0,0,103,0,117,0,103,0,0,0,103,0,117,0,114,0,0,0,103,0,117,0,118,0,0,0,103,0,117,0,119,0,0,0,103,0,117,0,120,0,0,0,103,0,117,0,122,0,0,0,103,0,118,0,102,0,0,0,103,0,118,0,115,0,0,0,103,0,119,0,99,0,0,0,103,0,119,0,105,0,0,0,103,0,119,0,116,0,0,0,103,0,121,0,97,0,0,0,104,0,97,0,107,0,0,0,104,0,97,0,122,0,0,0,104,0,98,0,98,0,0,0,104,0,100,0,110,0,0,0,104,0,100,0,121,0,0,0,104,0,101,0,97,0,0,0,104,0,105,0,97,0,0,0,104,0,105,0,103,0,0,0,104,0,105,0,104,0,0,0,104,0,105,0,108,0,0,0,104,0,105,0,109,0,0,0,104,0,108,0,97,0,0,0,104,0,108,0,101,0,0,0,104,0,109,0,100,0,0,0,104,0,109,0,110,0,0,0,104,0,109,0,116,0,0,0,104,0,110,0,100,0,0,0,104,0,110,0,101,0,0,0,104,0,111,0,116,0,0,0,104,0,114,0,114,0,0,0,104,0,115,0,98,0,0,0,104,0,115,0,110,0,0,0,104,0,117,0,105,0,0,0,104,0,117,0,114,0,0,0,104,0,117,0,119,0,0,0,105,0,97,0,110,0,0,0,105,0,97,0,114,0,0,0,105,0,98,0,98,0,0,0,105,0,98,0,105,0,0,0,105,0,98,0,121,0,0,0,105,0,99,0,97,0,0,0,105,0,99,0,101,0,0,0,105,0,99,0,104,0,0,0,105,0,100,0,105,0,0,0,105,0,100,0,117,0,0,0,105,0,102,0,101,0,0,0,105,0,103,0,98,0,0,0,105,0,103,0,101,0,0,0,105,0,106,0,106,0,0,0,105,0,107,0,101,0,0,0,105,0,107,0,107,0,0,0,105,0,107,0,119,0,0,0,105,0,107,0,120,0,0,0,105,0,108,0,108,0,0,0,105,0,108,0,109,0,0,0,105,0,108,0,111,0,0,0,105,0,108,0,119,0,0,0,105,0,109,0,111,0,0,0,105,0,111,0,117,0,0,0,105,0,114,0,105,0,0,0,105,0,115,0,107,0,0,0,105,0,116,0,100,0,0,0,105,0,119,0,109,0,0,0,105,0,119,0,115,0,0,0,105,0,122,0,104,0,0,0,106,0,97,0,98,0,0,0,106,0,97,0,108,0,0,0,106,0,97,0,109,0,0,0,106,0,97,0,114,0,0,0,106,0,98,0,107,0,0,0,106,0,98,0,111,0,0,0,106,0,98,0,117,0,0,0,106,0,101,0,103,0,0,0,106,0,101,0,110,0,0,0,106,0,103,0,111,0,0,0,106,0,105,0,98,0,0,0,106,0,109,0,99,0,0,0,106,0,109,0,108,0,0,0,106,0,114,0,97,0,0,0,106,0,114,0,98,0,0,0,106,0,117,0,116,0,0,0,107,0,97,0,98,0,0,0,107,0,97,0,99,0,0,0,107,0,97,0,100,0,0,0,107,0,97,0,105,0,0,0,107,0,97,0,106,0,0,0,107,0,97,0,107,0,0,0,107,0,97,0,109,0,0,0,107,0,97,0,111,0,0,0,107,0,97,0,119,0,0,0,107,0,98,0,112,0,0,0,107,0,98,0,113,0,0,0,107,0,98,0,120,0,0,0,107,0,98,0,121,0,0,0,107,0,99,0,103,0,0,0,107,0,99,0,107,0,0,0,107,0,99,0,108,0,0,0,107,0,99,0,116,0,0,0,107,0,100,0,101,0,0,0,107,0,100,0,104,0,0,0,107,0,100,0,108,0,0,0,107,0,101,0,97,0,0,0,107,0,101,0,110,0,0,0,107,0,101,0,122,0,0,0,107,0,102,0,111,0,0,0,107,0,102,0,114,0,0,0,107,0,103,0,99,0,0,0,107,0,103,0,100,0,0,0,107,0,103,0,101,0,0,0,107,0,103,0,102,0,0,0,107,0,103,0,104,0,0,0,107,0,103,0,112,0,0,0,107,0,104,0,98,0,0,0,107,0,104,0,107,0,0,0,107,0,104,0,110,0,0,0,107,0,104,0,113,0,0,0,107,0,104,0,115,0,0,0,107,0,104,0,119,0,0,0,107,0,105,0,106,0,0,0,107,0,105,0,117,0,0,0,107,0,105,0,119,0,0,0,107,0,106,0,100,0,0,0,107,0,106,0,103,0,0,0,107,0,106,0,115,0,0,0,107,0,106,0,121,0,0,0,107,0,107,0,99,0,0,0,107,0,108,0,113,0,0,0,107,0,108,0,116,0,0,0,107,0,108,0,120,0,0,0,107,0,109,0,104,0,0,0,107,0,109,0,108,0,0,0,107,0,109,0,111,0,0,0,107,0,109,0,114,0,0,0,107,0,109,0,115,0,0,0,107,0,109,0,117,0,0,0,107,0,109,0,119,0,0,0,107,0,110,0,99,0,0,0,107,0,110,0,102,0,0,0,107,0,110,0,103,0,0,0,107,0,110,0,110,0,0,0,107,0,110,0,112,0,0,0,107,0,111,0,105,0,0,0,107,0,111,0,106,0,0,0,107,0,111,0,108,0,0,0,107,0,111,0,115,0,0,0,107,0,111,0,122,0,0,0,107,0,112,0,102,0,0,0,107,0,112,0,111,0,0,0,107,0,112,0,112,0,0,0,107,0,112,0,114,0,0,0,107,0,112,0,118,0,0,0,107,0,112,0,120,0,0,0,107,0,113,0,98,0,0,0,107,0,113,0,102,0,0,0,107,0,113,0,115,0,0,0,107,0,113,0,121,0,0,0,107,0,114,0,99,0,0,0,107,0,114,0,105,0,0,0,107,0,114,0,106,0,0,0,107,0,114,0,108,0,0,0,107,0,114,0,109,0,0,0,107,0,114,0,115,0,0,0,107,0,115,0,98,0,0,0,107,0,115,0,100,0,0,0,107,0,115,0,102,0,0,0,107,0,115,0,104,0,0,0,107,0,115,0,106,0,0,0,107,0,115,0,112,0,0,0,107,0,115,0,114,0,0,0,107,0,116,0,98,0,0,0,107,0,116,0,109,0,0,0,107,0,116,0,111,0,0,0,107,0,116,0,122,0,0,0,107,0,117,0,98,0,0,0,107,0,117,0,100,0,0,0,107,0,117,0,101,0,0,0,107,0,117,0,106,0,0,0,107,0,117,0,109,0,0,0,107,0,117,0,110,0,0,0,107,0,117,0,112,0,0,0,107,0,117,0,115,0,0,0,107,0,118,0,103,0,0,0,107,0,118,0,114,0,0,0,107,0,118,0,115,0,0,0,107,0,118,0,120,0,0,0,107,0,119,0,106,0,0,0,107,0,119,0,107,0,0,0,107,0,119,0,111,0,0,0,107,0,119,0,113,0,0,0,107,0,119,0,118,0,0,0,107,0,120,0,97,0,0,0,107,0,120,0,99,0,0,0,107,0,120,0,101,0,0,0,107,0,120,0,109,0,0,0,107,0,120,0,112,0,0,0,107,0,120,0,114,0,0,0,107,0,120,0,119,0,0,0,107,0,120,0,122,0,0,0,107,0,121,0,101,0,0,0,107,0,121,0,120,0,0,0,107,0,122,0,114,0,0,0,108,0,97,0,98,0,0,0,108,0,97,0,100,0,0,0,108,0,97,0,106,0,0,0,108,0,97,0,107,0,0,0,108,0,97,0,115,0,0,0,108,0,98,0,101,0,0,0,108,0,98,0,107,0,0,0,108,0,98,0,117,0,0,0,108,0,98,0,119,0,0,0,108,0,99,0,109,0,0,0,108,0,99,0,112,0,0,0,108,0,99,0,113,0,0,0,108,0,100,0,98,0,0,0,108,0,101,0,100,0,0,0,108,0,101,0,101,0,0,0,108,0,101,0,103,0,0,0,108,0,101,0,109,0,0,0,108,0,101,0,112,0,0,0,108,0,101,0,113,0,0,0,108,0,101,0,117,0,0,0,108,0,101,0,122,0,0,0,108,0,103,0,103,0,0,0,108,0,105,0,97,0,0,0,108,0,105,0,100,0,0,0,108,0,105,0,103,0,0,0,108,0,105,0,104,0,0,0,108,0,105,0,105,0,0,0,108,0,105,0,106,0,0,0,108,0,105,0,108,0,0,0,108,0,105,0,115,0,0,0,108,0,106,0,112,0,0,0,108,0,107,0,105,0,0,0,108,0,107,0,116,0,0,0,108,0,108,0,101,0,0,0,108,0,108,0,110,0,0,0,108,0,108,0,111,0,0,0,108,0,109,0,109,0,0,0,108,0,109,0,110,0,0,0,108,0,109,0,111,0,0,0,108,0,109,0,112,0,0,0,108,0,110,0,115,0,0,0,108,0,110,0,117,0,0,0,108,0,111,0,107,0,0,0,108,0,111,0,108,0,0,0,108,0,111,0,115,0,0,0,108,0,111,0,122,0,0,0,108,0,114,0,99,0,0,0,108,0,114,0,114,0,0,0,108,0,117,0,97,0,0,0,108,0,117,0,111,0,0,0,108,0,117,0,122,0,0,0,108,0,118,0,115,0,0,0,108,0,119,0,108,0,0,0,108,0,122,0,122,0,0,0,109,0,97,0,99,0,0,0,109,0,97,0,100,0,0,0,109,0,97,0,102,0,0,0,109,0,97,0,103,0,0,0,109,0,97,0,111,0,0,0,109,0,97,0,115,0,0,0,109,0,97,0,119,0,0,0,109,0,97,0,121,0,0,0,109,0,97,0,122,0,0,0,109,0,98,0,111,0,0,0,109,0,98,0,113,0,0,0,109,0,98,0,117,0,0,0,109,0,98,0,119,0,0,0,109,0,99,0,105,0,0,0,109,0,99,0,112,0,0,0,109,0,99,0,113,0,0,0,109,0,99,0,114,0,0,0,109,0,99,0,117,0,0,0,109,0,100,0,97,0,0,0,109,0,100,0,102,0,0,0,109,0,100,0,104,0,0,0,109,0,100,0,106,0,0,0,109,0,100,0,114,0,0,0,109,0,100,0,120,0,0,0,109,0,101,0,100,0,0,0,109,0,101,0,103,0,0,0,109,0,101,0,107,0,0,0,109,0,101,0,114,0,0,0,109,0,101,0,116,0,0,0,109,0,102,0,101,0,0,0,109,0,102,0,110,0,0,0,109,0,102,0,113,0,0,0,109,0,103,0,104,0,0,0,109,0,103,0,108,0,0,0,109,0,103,0,111,0,0,0,109,0,103,0,112,0,0,0,109,0,103,0,120,0,0,0,109,0,103,0,121,0,0,0,109,0,104,0,105,0,0,0,109,0,104,0,108,0,0,0,109,0,104,0,114,0,0,0,109,0,105,0,99,0,0,0,109,0,105,0,102,0,0,0,109,0,105,0,110,0,0,0,109,0,105,0,119,0,0,0,109,0,107,0,105,0,0,0,109,0,107,0,108,0,0,0,109,0,107,0,112,0,0,0,109,0,108,0,101,0,0,0,109,0,108,0,112,0,0,0,109,0,108,0,115,0,0,0,109,0,109,0,111,0,0,0,109,0,109,0,117,0,0,0,109,0,109,0,120,0,0,0,109,0,110,0,97,0,0,0,109,0,110,0,102,0,0,0,109,0,110,0,107,0,0,0,109,0,110,0,116,0,0,0,109,0,111,0,97,0,0,0,109,0,111,0,101,0,0,0,109,0,111,0,102,0,0,0,109,0,111,0,104,0,0,0,109,0,111,0,109,0,0,0,109,0,111,0,115,0,0,0,109,0,111,0,120,0,0,0,109,0,112,0,112,0,0,0,109,0,112,0,115,0,0,0,109,0,112,0,116,0,0,0,109,0,112,0,120,0,0,0,109,0,113,0,108,0,0,0,109,0,114,0,100,0,0,0,109,0,114,0,106,0,0,0,109,0,114,0,111,0,0,0,109,0,115,0,116,0,0,0,109,0,116,0,99,0,0,0,109,0,116,0,102,0,0,0,109,0,116,0,105,0,0,0,109,0,116,0,109,0,0,0,109,0,116,0,114,0,0,0,109,0,117,0,97,0,0,0,109,0,117,0,112,0,0,0,109,0,117,0,114,0,0,0,109,0,117,0,115,0,0,0,109,0,118,0,97,0,0,0,109,0,118,0,110,0,0,0,109,0,118,0,121,0,0,0,109,0,119,0,100,0,0,0,109,0,119,0,106,0,0,0,109,0,119,0,107,0,0,0,109,0,119,0,118,0,0,0,109,0,119,0,119,0,0,0,109,0,120,0,99,0,0,0,109,0,120,0,109,0,0,0,109,0,121,0,100,0,0,0,109,0,121,0,107,0,0,0,109,0,121,0,109,0,0,0,109,0,121,0,116,0,0,0,109,0,121,0,118,0,0,0,109,0,121,0,119,0,0,0,109,0,121,0,120,0,0,0,109,0,121,0,122,0,0,0,109,0,122,0,107,0,0,0,109,0,122,0,109,0,0,0,109,0,122,0,110,0,0,0,109,0,122,0,112,0,0,0,109,0,122,0,119,0,0,0,109,0,122,0,122,0,0,0,110,0,97,0,99,0,0,0,110,0,97,0,100,0,0,0,110,0,97,0,102,0,0,0,110,0,97,0,110,0,0,0,110,0,97,0,112,0,0,0,110,0,97,0,113,0,0,0,110,0,97,0,115,0,0,0,110,0,98,0,102,0,0,0,110,0,98,0,114,0,0,0,110,0,98,0,120,0,0,0,110,0,99,0,97,0,0,0,110,0,99,0,102,0,0,0,110,0,99,0,104,0,0,0,110,0,99,0,111,0,0,0,110,0,99,0,112,0,0,0,110,0,99,0,113,0,0,0,110,0,100,0,99,0,0,0,110,0,100,0,115,0,0,0,110,0,101,0,98,0,0,0,110,0,101,0,120,0,0,0,110,0,103,0,97,0,0,0,110,0,103,0,98,0,0,0,110,0,103,0,108,0,0,0,110,0,103,0,116,0,0,0,110,0,104,0,98,0,0,0,110,0,104,0,119,0,0,0,110,0,105,0,102,0,0,0,110,0,105,0,106,0,0,0,110,0,105,0,117,0,0,0,110,0,105,0,121,0,0,0,110,0,105,0,122,0,0,0,110,0,106,0,111,0,0,0,110,0,106,0,122,0,0,0,110,0,107,0,111,0,0,0,110,0,108,0,114,0,0,0,110,0,109,0,122,0,0,0,110,0,110,0,102,0,0,0,110,0,110,0,104,0,0,0,110,0,110,0,107,0,0,0,110,0,110,0,109,0,0,0,110,0,110,0,112,0,0,0,110,0,110,0,115,0,0,0,110,0,110,0,120,0,0,0,110,0,111,0,100,0,0,0,110,0,111,0,101,0,0,0,110,0,111,0,108,0,0,0,110,0,111,0,110,0,0,0,110,0,111,0,111,0,0,0,110,0,111,0,112,0,0,0,110,0,111,0,117,0,0,0,110,0,112,0,105,0,0,0,110,0,113,0,111,0,0,0,110,0,114,0,98,0,0,0,110,0,114,0,107,0,0,0,110,0,114,0,117,0,0,0,110,0,115,0,107,0,0,0,110,0,115,0,115,0,0,0,110,0,115,0,116,0,0,0,110,0,116,0,109,0,0,0,110,0,116,0,114,0,0,0,110,0,116,0,115,0,0,0,110,0,117,0,105,0,0,0,110,0,117,0,110,0,0,0,110,0,117,0,112,0,0,0,110,0,117,0,115,0,0,0,110,0,117,0,118,0,0,0,110,0,117,0,120,0,0,0,110,0,119,0,98,0,0,0,110,0,119,0,111,0,0,0,110,0,120,0,113,0,0,0,110,0,120,0,114,0,0,0,110,0,120,0,117,0,0,0,110,0,121,0,99,0,0,0,110,0,121,0,109,0,0,0,110,0,121,0,110,0,0,0,110,0,122,0,105,0,0,0,111,0,103,0,99,0,0,0,111,0,106,0,103,0,0,0,111,0,106,0,115,0,0,0,111,0,107,0,97,0,0,0,111,0,107,0,114,0,0,0,111,0,108,0,97,0,0,0,111,0,110,0,110,0,0,0,111,0,110,0,115,0,0,0,111,0,112,0,97,0,0,0,111,0,112,0,109,0,0,0,111,0,114,0,111,0,0,0,111,0,114,0,117,0,0,0,111,0,114,0,121,0,0,0,111,0,115,0,97,0,0,0,111,0,116,0,107,0,0,0,111,0,117,0,105,0,0,0,111,0,117,0,110,0,0,0,111,0,122,0,109,0,0,0,112,0,97,0,103,0,0,0,112,0,97,0,109,0,0,0,112,0,97,0,116,0,0,0,112,0,97,0,117,0,0,0,112,0,98,0,105,0,0,0,112,0,98,0,117,0,0,0,112,0,99,0,100,0,0,0,112,0,99,0,109,0,0,0,112,0,99,0,114,0,0,0,112,0,100,0,99,0,0,0,112,0,100,0,116,0,0,0,112,0,101,0,100,0,0,0,112,0,101,0,114,0,0,0,112,0,101,0,115,0,0,0,112,0,101,0,120,0,0,0,112,0,102,0,108,0,0,0,112,0,104,0,108,0,0,0,112,0,104,0,110,0,0,0,112,0,104,0,114,0,0,0,112,0,105,0,108,0,0,0,112,0,105,0,112,0,0,0,112,0,107,0,111,0,0,0,112,0,108,0,97,0,0,0,112,0,108,0,116,0,0,0,112,0,109,0,99,0,0,0,112,0,109,0,115,0,0,0,112,0,109,0,117,0,0,0,112,0,110,0,98,0,0,0,112,0,110,0,103,0,0,0,112,0,110,0,110,0,0,0,112,0,110,0,116,0,0,0,112,0,111,0,110,0,0,0,112,0,112,0,111,0,0,0,112,0,112,0,114,0,0,0,112,0,113,0,109,0,0,0,112,0,114,0,97,0,0,0,112,0,114,0,100,0,0,0,112,0,114,0,103,0,0,0,112,0,114,0,121,0,0,0,112,0,115,0,115,0,0,0,112,0,116,0,112,0,0,0,112,0,117,0,98,0,0,0,112,0,117,0,117,0,0,0,112,0,117,0,122,0,0,0,112,0,119,0,97,0,0,0,113,0,117,0,99,0,0,0,113,0,117,0,103,0,0,0,113,0,117,0,104,0,0,0,114,0,97,0,111,0,0,0,114,0,97,0,113,0,0,0,114,0,97,0,115,0,0,0,114,0,99,0,102,0,0,0,114,0,101,0,108,0,0,0,114,0,101,0,115,0,0,0,114,0,105,0,97,0,0,0,114,0,106,0,115,0,0,0,114,0,107,0,116,0,0,0,114,0,109,0,102,0,0,0,114,0,109,0,111,0,0,0,114,0,109,0,114,0,0,0,114,0,109,0,116,0,0,0,114,0,109,0,117,0,0,0,114,0,109,0,120,0,0,0,114,0,109,0,121,0,0,0,114,0,110,0,97,0,0,0,114,0,110,0,103,0,0,0,114,0,111,0,98,0,0,0,114,0,111,0,102,0,0,0,114,0,111,0,109,0,0,0,114,0,114,0,111,0,0,0,114,0,116,0,109,0,0,0,114,0,117,0,101,0,0,0,114,0,117,0,103,0,0,0,114,0,117,0,109,0,0,0,114,0,119,0,107,0,0,0,114,0,121,0,117,0,0,0,115,0,97,0,104,0,0,0,115,0,97,0,112,0,0,0,115,0,97,0,113,0,0,0,115,0,97,0,115,0,0,0,115,0,97,0,116,0,0,0,115,0,97,0,118,0,0,0,115,0,97,0,122,0,0,0,115,0,98,0,97,0,0,0,115,0,98,0,112,0,0,0,115,0,99,0,99,0,0,0,115,0,99,0,107,0,0,0,115,0,99,0,108,0,0,0,115,0,99,0,110,0,0,0,115,0,99,0,111,0,0,0,115,0,99,0,114,0,0,0,115,0,100,0,99,0,0,0,115,0,100,0,104,0,0,0,115,0,101,0,102,0,0,0,115,0,101,0,104,0,0,0,115,0,101,0,105,0,0,0,115,0,101,0,115,0,0,0,115,0,103,0,97,0,0,0,115,0,103,0,115,0,0,0,115,0,103,0,119,0,0,0,115,0,103,0,122,0,0,0,115,0,104,0,105,0,0,0,115,0,104,0,107,0,0,0,115,0,104,0,110,0,0,0,115,0,105,0,100,0,0,0,115,0,105,0,103,0,0,0,115,0,105,0,108,0,0,0,115,0,105,0,109,0,0,0,115,0,106,0,114,0,0,0,115,0,107,0,99,0,0,0,115,0,107,0,107,0,0,0,115,0,108,0,100,0,0,0,115,0,108,0,105,0,0,0,115,0,108,0,108,0,0,0,115,0,108,0,111,0,0,0,115,0,108,0,121,0,0,0,115,0,109,0,106,0,0,0,115,0,109,0,110,0,0,0,115,0,109,0,112,0,0,0,115,0,109,0,113,0,0,0,115,0,110,0,99,0,0,0,115,0,110,0,107,0,0,0,115,0,110,0,112,0,0,0,115,0,110,0,120,0,0,0,115,0,110,0,121,0,0,0,115,0,110,0,122,0,0,0,115,0,111,0,107,0,0,0,115,0,111,0,113,0,0,0,115,0,111,0,117,0,0,0,115,0,111,0,121,0,0,0,115,0,112,0,100,0,0,0,115,0,112,0,108,0,0,0,115,0,112,0,121,0,0,0,115,0,114,0,98,0,0,0,115,0,114,0,99,0,0,0,115,0,114,0,114,0,0,0,115,0,115,0,100,0,0,0,115,0,115,0,103,0,0,0,115,0,115,0,121,0,0,0,115,0,116,0,113,0,0,0,115,0,117,0,97,0,0,0,115,0,117,0,101,0,0,0,115,0,117,0,106,0,0,0,115,0,117,0,108,0,0,0,115,0,117,0,109,0,0,0,115,0,117,0,115,0,0,0,115,0,119,0,98,0,0,0,115,0,119,0,99,0,0,0,115,0,119,0,103,0,0,0,115,0,119,0,104,0,0,0,115,0,119,0,112,0,0,0,115,0,119,0,118,0,0,0,115,0,120,0,110,0,0,0,115,0,120,0,119,0,0,0,115,0,122,0,108,0,0,0,116,0,97,0,110,0,0,0,116,0,97,0,113,0,0,0,116,0,98,0,99,0,0,0,116,0,98,0,100,0,0,0,116,0,98,0,102,0,0,0,116,0,98,0,122,0,0,0,116,0,99,0,105,0,0,0,116,0,100,0,100,0,0,0,116,0,100,0,102,0,0,0,116,0,100,0,103,0,0,0,116,0,100,0,104,0,0,0,116,0,101,0,100,0,0,0,116,0,101,0,109,0,0,0,116,0,101,0,111,0,0,0,116,0,103,0,99,0,0,0,116,0,103,0,103,0,0,0,116,0,103,0,111,0,0,0,116,0,104,0,99,0,0,0,116,0,104,0,108,0,0,0,116,0,104,0,113,0,0,0,116,0,104,0,119,0,0,0,116,0,104,0,120,0,0,0,116,0,105,0,98,0,0,0,116,0,105,0,101,0,0,0,116,0,105,0,102,0,0,0,116,0,105,0,109,0,0,0,116,0,105,0,118,0,0,0,116,0,107,0,116,0,0,0,116,0,108,0,102,0,0,0,116,0,108,0,119,0,0,0,116,0,108,0,120,0,0,0,116,0,108,0,121,0,0,0,116,0,109,0,112,0,0,0,116,0,110,0,101,0,0,0,116,0,110,0,104,0,0,0,116,0,111,0,102,0,0,0,116,0,111,0,103,0,0,0,116,0,111,0,107,0,0,0,116,0,111,0,113,0,0,0,116,0,112,0,105,0,0,0,116,0,112,0,109,0,0,0,116,0,112,0,111,0,0,0,116,0,112,0,122,0,0,0,116,0,113,0,111,0,0,0,116,0,114,0,117,0,0,0,116,0,114,0,118,0,0,0,116,0,114,0,119,0,0,0,116,0,115,0,103,0,0,0,116,0,115,0,106,0,0,0,116,0,116,0,100,0,0,0,116,0,116,0,106,0,0,0,116,0,116,0,113,0,0,0,116,0,116,0,114,0,0,0,116,0,117,0,104,0,0,0,116,0,117,0,108,0,0,0,116,0,117,0,109,0,0,0,116,0,117,0,113,0,0,0,116,0,118,0,108,0,0,0,116,0,118,0,117,0,0,0,116,0,119,0,104,0,0,0,116,0,119,0,109,0,0,0,116,0,119,0,113,0,0,0,116,0,120,0,103,0,0,0,116,0,120,0,111,0,0,0,116,0,121,0,97,0,0,0,116,0,121,0,106,0,0,0,116,0,121,0,118,0,0,0,116,0,122,0,109,0,0,0,117,0,98,0,117,0,0,0,117,0,100,0,105,0,0,0,117,0,100,0,109,0,0,0,117,0,108,0,119,0,0,0,117,0,109,0,98,0,0,0,117,0,109,0,117,0,0,0,117,0,110,0,112,0,0,0,117,0,110,0,120,0,0,0,117,0,114,0,105,0,0,0,117,0,114,0,116,0,0,0,117,0,115,0,97,0,0,0,117,0,118,0,104,0,0,0,117,0,118,0,108,0,0,0,117,0,122,0,110,0,0,0,118,0,97,0,103,0,0,0,118,0,97,0,105,0,0,0,118,0,97,0,110,0,0,0,118,0,101,0,99,0,0,0,118,0,101,0,112,0,0,0,118,0,105,0,99,0,0,0,118,0,105,0,118,0,0,0,118,0,108,0,115,0,0,0,118,0,109,0,102,0,0,0,118,0,109,0,119,0,0,0,118,0,111,0,116,0,0,0,118,0,114,0,111,0,0,0,118,0,117,0,110,0,0,0,118,0,117,0,116,0,0,0,119,0,97,0,106,0,0,0,119,0,97,0,108,0,0,0,119,0,97,0,119,0,0,0,119,0,98,0,112,0,0,0,119,0,98,0,113,0,0,0,119,0,99,0,105,0,0,0,119,0,101,0,114,0,0,0,119,0,103,0,98,0,0,0,119,0,103,0,105,0,0,0,119,0,103,0,119,0,0,0,119,0,104,0,103,0,0,0,119,0,105,0,98,0,0,0,119,0,105,0,118,0,0,0,119,0,108,0,115,0,0,0,119,0,110,0,99,0,0,0,119,0,110,0,105,0,0,0,119,0,110,0,117,0,0,0,119,0,110,0,121,0,0,0,119,0,111,0,98,0,0,0,119,0,111,0,115,0,0,0,119,0,114,0,115,0,0,0,119,0,116,0,109,0,0,0,119,0,117,0,117,0,0,0,119,0,117,0,118,0,0,0,120,0,97,0,118,0,0,0,120,0,98,0,97,0,0,0,120,0,105,0,97,0,0,0,120,0,107,0,104,0,0,0,120,0,108,0,99,0,0,0,120,0,108,0,100,0,0,0,120,0,109,0,102,0,0,0,120,0,110,0,116,0,0,0,120,0,111,0,103,0,0,0,120,0,111,0,110,0,0,0,120,0,112,0,101,0,0,0,120,0,112,0,114,0,0,0,120,0,114,0,98,0,0,0,120,0,114,0,113,0,0,0,120,0,115,0,106,0,0,0,120,0,115,0,109,0,0,0,120,0,119,0,101,0,0,0,121,0,97,0,111,0,0,0,121,0,97,0,112,0,0,0,121,0,97,0,116,0,0,0,121,0,98,0,98,0,0,0,121,0,98,0,100,0,0,0,121,0,98,0,121,0,0,0,121,0,100,0,100,0,0,0,121,0,101,0,114,0,0,0,121,0,103,0,114,0,0,0,121,0,103,0,119,0,0,0,121,0,105,0,121,0,0,0,121,0,108,0,101,0,0,0,121,0,108,0,108,0,0,0,121,0,109,0,97,0,0,0,121,0,110,0,113,0,0,0,121,0,111,0,110,0,0,0,121,0,114,0,98,0,0,0,121,0,114,0,101,0,0,0,121,0,117,0,97,0,0,0,121,0,117,0,106,0,0,0,121,0,117,0,116,0,0,0,121,0,117,0,117,0,0,0,121,0,117,0,119,0,0,0,122,0,97,0,103,0,0,0,122,0,97,0,105,0,0,0,122,0,97,0,112,0,0,0,122,0,100,0,106,0,0,0,122,0,101,0,97,0,0,0,122,0,103,0,104,0,0,0,122,0,104,0,120,0,0,0,122,0,105,0,114,0,0,0,122,0,107,0,100,0,0,0,122,0,107,0,116,0,0,0,122,0,108,0,109,0,0,0,122,0,121,0,98,0,0,0,76,0,97,0,116,0,110,0,0,0,65,0,114,0,97,0,98,0,0,0,68,0,101,0,118,0,97,0,0,0,67,0,121,0,114,0,108,0,0,0,69,0,116,0,104,0,105,0,0,0,72,0,97,0,110,0,116,0,0,0,84,0,104,0,97,0,105,0,0,0,66,0,101,0,110,0,103,0,0,0,67,0,97,0,110,0,115,0,0,0,72,0,97,0,110,0,115,0,0,0,67,0,111,0,112,0,116,0,0,0,72,0,101,0,98,0,114,0,0,0,83,0,117,0,110,0,100,0,0,0,77,0,121,0,109,0,114,0,0,0,71,0,114,0,101,0,107,0,0,0,77,0,97,0,114,0,99,0,0,0,84,0,101,0,108,0,117,0,0,0,82,0,117,0,110,0,114,0,0,0,78,0,115,0,104,0,117,0,0,0,84,0,102,0,110,0,103,0,0,0,84,0,105,0,98,0,116,0,0,0,75,0,116,0,104,0,105,0,0,0,75,0,110,0,100,0,97,0,0,0,87,0,99,0,104,0,111,0,0,0,65,0,118,0,115,0,116,0,0,0,68,0,117,0,112,0,108,0,0,0,71,0,117,0,114,0,117,0,0,0,76,0,105,0,115,0,117,0,0,0,80,0,114,0,116,0,105,0,0,0,71,0,101,0,111,0,114,0,0,0,72,0,109,0,110,0,112,0,0,0,75,0,97,0,110,0,97,0,0,0,75,0,111,0,114,0,101,0,0,0,76,0,97,0,111,0,111,0,0,0,78,0,107,0,111,0,111,0,0,0,84,0,97,0,109,0,108,0,0,0,66,0,114,0,97,0,105,0,0,0,67,0,104,0,97,0,109,0,0,0,67,0,112,0,114,0,116,0,0,0,71,0,108,0,97,0,103,0,0,0,73,0,116,0,97,0,108,0,0,0,74,0,97,0,109,0,111,0,0,0,75,0,97,0,108,0,105,0,0,0,75,0,104,0,111,0,106,0,0,0,77,0,111,0,110,0,103,0,0,0,77,0,114,0,111,0,111,0,0,0,78,0,97,0,103,0,109,0,0,0,79,0,103,0,97,0,109,0,0,0,79,0,115,0,109,0,97,0,0,0,80,0,104,0,97,0,103,0,0,0,83,0,97,0,114,0,98,0,0,0,83,0,104,0,97,0,119,0,0,0,83,0,105,0,100,0,100,0,0,0,83,0,105,0,110,0,104,0,0,0,84,0,97,0,118,0,116,0,0,0,88,0,112,0,101,0,111,0,0,0,72,0,117,0,110,0,103,0,0,0,77,0,117,0,108,0,116,0,0,0,83,0,111,0,121,0,111,0,0,0,83,0,121,0,108,0,111,0,0,0,84,0,111,0,116,0,111,0,0,0,65,0,100,0,108,0,109,0,0,0,65,0,103,0,104,0,98,0,0,0,65,0,104,0,111,0,109,0,0,0,65,0,114,0,109,0,105,0,0,0,65,0,114,0,109,0,110,0,0,0,66,0,97,0,108,0,105,0,0,0,66,0,97,0,109,0,117,0,0,0,66,0,97,0,115,0,115,0,0,0,66,0,97,0,116,0,107,0,0,0,66,0,104,0,107,0,115,0,0,0,66,0,111,0,112,0,111,0,0,0,66,0,114,0,97,0,104,0,0,0,66,0,117,0,103,0,105,0,0,0,66,0,117,0,104,0,100,0,0,0,67,0,97,0,107,0,109,0,0,0,67,0,97,0,114,0,105,0,0,0,67,0,104,0,101,0,114,0,0,0,67,0,104,0,114,0,115,0,0,0,67,0,112,0,109,0,110,0,0,0,68,0,105,0,97,0,107,0,0,0,68,0,111,0,103,0,114,0,0,0,69,0,103,0,121,0,112,0,0,0,69,0,108,0,98,0,97,0,0,0,69,0,108,0,121,0,109,0,0,0,71,0,111,0,110,0,103,0,0,0,71,0,111,0,110,0,109,0,0,0,71,0,111,0,116,0,104,0,0,0,71,0,114,0,97,0,110,0,0,0,71,0,117,0,106,0,114,0,0,0,72,0,97,0,110,0,98,0,0,0,72,0,97,0,110,0,103,0,0,0,72,0,97,0,110,0,105,0,0,0,72,0,97,0,110,0,111,0,0,0,72,0,105,0,114,0,97,0,0,0,72,0,108,0,117,0,119,0,0,0,72,0,109,0,110,0,103,0,0,0,74,0,97,0,118,0,97,0,0,0,74,0,112,0,97,0,110,0,0,0,75,0,97,0,119,0,105,0,0,0,75,0,104,0,97,0,114,0,0,0,75,0,104,0,109,0,114,0,0,0,75,0,105,0,116,0,115,0,0,0,76,0,97,0,110,0,97,0,0,0,76,0,101,0,112,0,99,0,0,0,76,0,105,0,109,0,98,0,0,0,76,0,105,0,110,0,97,0,0,0,76,0,105,0,110,0,98,0,0,0,76,0,121,0,99,0,105,0,0,0,76,0,121,0,100,0,105,0,0,0,77,0,97,0,104,0,106,0,0,0,77,0,97,0,107,0,97,0,0,0,77,0,97,0,110,0,100,0,0,0,77,0,97,0,110,0,105,0,0,0,77,0,101,0,100,0,102,0,0,0,77,0,101,0,110,0,100,0,0,0,77,0,101,0,114,0,99,0,0,0,77,0,101,0,114,0,111,0,0,0,77,0,108,0,121,0,109,0,0,0,77,0,111,0,100,0,105,0,0,0,77,0,116,0,101,0,105,0,0,0,78,0,97,0,110,0,100,0,0,0,78,0,97,0,114,0,98,0,0,0,78,0,98,0,97,0,116,0,0,0,78,0,101,0,119,0,97,0,0,0,79,0,108,0,99,0,107,0,0,0,79,0,114,0,107,0,104,0,0,0,79,0,114,0,121,0,97,0,0,0,79,0,115,0,103,0,101,0,0,0,79,0,117,0,103,0,114,0,0,0,80,0,97,0,108,0,109,0,0,0,80,0,97,0,117,0,99,0,0,0,80,0,101,0,114,0,109,0,0,0,80,0,104,0,108,0,105,0,0,0,80,0,104,0,108,0,112,0,0,0,80,0,104,0,110,0,120,0,0,0,80,0,108,0,114,0,100,0,0,0,82,0,106,0,110,0,103,0,0,0,82,0,111,0,104,0,103,0,0,0,83,0,97,0,109,0,114,0,0,0,83,0,97,0,117,0,114,0,0,0,83,0,103,0,110,0,119,0,0,0,83,0,104,0,114,0,100,0,0,0,83,0,105,0,110,0,100,0,0,0,83,0,111,0,103,0,100,0,0,0,83,0,111,0,103,0,111,0,0,0,83,0,111,0,114,0,97,0,0,0,83,0,121,0,114,0,99,0,0,0,84,0,97,0,103,0,98,0,0,0,84,0,97,0,107,0,114,0,0,0,84,0,97,0,108,0,101,0,0,0,84,0,97,0,108,0,117,0,0,0,84,0,97,0,110,0,103,0,0,0,84,0,103,0,108,0,103,0,0,0,84,0,104,0,97,0,97,0,0,0,84,0,105,0,114,0,104,0,0,0,84,0,110,0,115,0,97,0,0,0,85,0,103,0,97,0,114,0,0,0,86,0,97,0,105,0,105,0,0,0,86,0,105,0,116,0,104,0,0,0,87,0,97,0,114,0,97,0,0,0,88,0,115,0,117,0,120,0,0,0,89,0,101,0,122,0,105,0,0,0,89,0,105,0,105,0,105,0,0,0,90,0,97,0,110,0,98,0,0,0,115,0,107,0,105,0,112,0,0,0,48,0,49,0,50,0,51,0,52,0,53,0,0,0,115,0,99,0,114,0,105,0,112,0,116,0,0,0,48,0,49,0,50,0,51,0,52,0,53,0,54,0,0,0,206,1,38,7,42,7,98,7,43,4,134,7,254,7,154,7,186,7,186,4,182,4,162,7,82,15,206,5,87,3,178,7,87,3,77,27,67,3,26,8,31,4,58,8,42,23,86,8,198,16,126,8,163,4,130,8,182,20,138,8,107,3,146,8,59,4,166,8,38,6,194,8,190,4,214,8,206,4,38,9,202,8,3,6,134,3,62,9,158,12,78,9,102,9,106,9,214,11,134,9,122,10,150,9,46,12,174,9,242,3,26,10,242,8,62,10,139,4,86,10,94,5,90,10,210,4,166,10,10,4,182,10,63,3,214,10,10,19,218,10,6,11,246,10,174,5,254,10,158,6,2,11,63,3,14,11,134,5,26,4,242,21,54,11,159,4,58,11,188,1,66,11,238,4,82,11,62,20,138,11,138,3,150,11,122,5,162,11,166,11,170,11,186,3,174,11,158,11,182,11,38,12,186,11,14,8,206,11,167,3,218,11,78,5,250,11,18,4,2,12,22,12,6,12,115,3,18,12,102,11,74,12,119,4,78,12,202,7,142,3,146,3,102,12,131,4,154,12,199,3,210,12,55,3,230,12,65,1,42,13,122,11,54,13,171,4,58,13,102,25,70,13,6,5,114,13,91,4,118,13,95,3,130,13,2,4,134,13,14,5,138,13,246,4,142,13,254,13,158,13,234,7,178,13,78,5,202,13,2,5,234,13,219,3,250,13,222,20,14,14,95,4,22,14,10,12,58,14,254,4,74,14,113,26,82,14,118,14,102,14,166,5,138,14,30,15,174,14,14,21,186,14,87,4,218,14,147,4,234,14,238,14,246,14,34,13,71,4,127,4,151,4,67,4,30,5,250,4,38,15,34,5,54,15,250,3,135,6,91,3,191,1,191,3,38,4,66,26,190,15,194,23,194,15,250,19,206,15,30,16,218,15,167,3,38,16,79,3,54,16,135,4,62,16,75,4,66,16,50,5,78,16,10,17,102,16,234,5,110,16,203,3,150,16,182,9,62,5,110,3,242,16,90,13,6,17,22,4,22,17,194,5,66,5,58,5,70,5,230,4,74,5,110,3,82,5,110,3,70,17,178,16,82,17,202,9,118,17,114,3,162,17,250,21,198,17,26,20,202,17,46,22,6,18,194,1,18,18,143,3,34,18,167,4,46,18,99,3,118,18,202,10,162,18,42,15,178,18,218,4,242,18,146,3,246,18,142,6,139,6,163,3,2,19,158,25,54,19,118,5,82,19,138,5,106,19,234,4,110,19,2,4,134,19,222,7,146,19,118,5,194,19,178,6,218,19,150,20,226,19,70,12,246,19,42,4,30,6,134,8,70,20,146,20,98,20,222,19,102,20,22,6,122,20,230,11,134,20,235,3,174,20,134,5,218,20,230,9,242,20,47,4,30,21,51,4,46,21,2,4,62,21,34,17,74,21,107,4,86,21,102,7,102,21,123,3,106,21,123,3,146,21,79,4,150,21,158,14,158,21,126,21,162,21,86,5,178,3,202,4,186,21,102,17,206,21,17,27,226,21,218,21,150,3,27,4,34,22,86,12,50,22,70,22,90,22,163,3,106,22,18,8,102,4,110,14,138,22,83,3,158,22,123,4,62,6,6,15,238,22,250,3,254,22,155,4,158,5,46,5,182,3,242,3,70,23,42,5,78,23,197,1,114,23,58,6,118,23,190,24,138,23,131,3,186,5,110,3,222,23,130,9,230,23,70,24,242,23,2,21,246,23,250,3,250,23,215,3,126,4,10,15,254,23,254,21,126,3,146,24,203,1,238,3,22,24,130,6,34,24,166,24,38,24,110,15,190,5,178,5,110,24,14,4,42,3,199,3,198,24,118,11,202,24,162,3,198,5,242,4,230,24,151,3,218,3,115,4,70,25,62,25,222,3,114,20,150,4,206,20,134,25,150,10,138,25,82,7,142,25,42,25,170,25,54,5,182,25,234,4,186,25,110,23,186,6,226,4,214,25,10,4,222,25,91,3,70,3,254,25,238,25,218,6,250,25,246,17,210,6,70,19,214,6,170,4,26,26,230,3,38,26,42,26,62,26,54,6,174,4,99,3,78,26,187,3,246,18,0,0,0,0,0,0,139,29,151,29,0,0,35,4,82,26,78,0,30,7,82,26,3,0,34,7,82,26,3,0,46,7,82,26,3,0,89,26,97,26,126,0,50,7,82,26,3,0,54,7,97,26,3,0,58,7,82,26,93,0,62,7,82,26,3,0,66,7,82,26,3,0,70,7,82,26,3,0,74,7,82,26,9,0,78,7,82,26,72,0,86,7,82,26,93,0,90,7,82,26,3,0,94,7,82,26,3,0,43,4,182,26,255,0,106,7,97,26,12,0,110,7,82,26,3,0,119,6,202,26,30,0,182,4,87,26,228,0,114,7,82,26,3,0,99,4,82,26,57,0,118,7,82,26,3,0,122,7,82,26,3,0,126,7,82,26,3,0,57,27,82,26,3,0,130,7,82,26,3,0,138,7,82,26,21,0,142,7,82,26,3,0,146,7,82,26,3,0,150,7,141,27,6,0,158,7,82,26,3,0,186,4,87,26,228,0,199,3,82,26,93,0,166,7,119,29,135,0,170,7,82,26,3,0,87,3,82,26,168,0,37,27,82,26,3,0,174,7,82,26,59,1,182,7,97,26,12,0,23,4,102,26,78,0,190,7,82,26,3,0,194,7,82,26,3,0,32,27,82,26,39,0,198,7,82,26,3,0,123,6,82,26,75,0,206,7,82,26,3,0,210,7,82,26,3,0,214,7,82,26,39,0,218,7,82,26,3,0,226,7,82,26,3,0,230,7,82,26,3,0,238,7,82,26,9,0,242,7,87,26,3,0,246,7,87,26,156,0,250,7,82,26,3,0,2,8,82,26,3,0,6,8,82,26,3,0,10,8,82,26,3,0,67,3,87,26,186,0,158,26,146,27,30,0,158,26,185,28,128,1,158,26,220,28,225,0,22,8,82,26,3,0,31,4,151,27,68,1,30,8,82,26,89,1,34,8,82,26,252,0,38,8,87,26,183,0,42,8,87,26,219,0,46,8,87,26,102,0,50,8,87,26,186,0,191,6,117,26,6,0,54,8,82,26,45,0,210,5,19,29,36,0,62,8,82,26,3,0,66,8,82,26,3,0,70,8,82,26,75,0,74,8,82,26,3,0,78,8,82,26,3,0,82,8,82,26,18,0,90,8,82,26,3,0,195,6,97,26,12,0,94,8,87,26,3,0,98,8,82,26,3,0,97,27,82,26,3,0,102,8,82,26,3,0,106,8,92,26,6,0,110,8,82,26,3,0,114,8,82,26,3,0,118,8,82,26,3,0,163,4,82,26,252,0,122,8,82,26,3,0,107,3,82,26,174,0,107,3,87,26,135,0,107,3,87,26,30,0,107,3,97,26,12,0,199,6,97,26,12,0,190,4,87,26,27,0,194,4,82,26,9,0,142,8,92,26,33,0,59,4,82,26,75,0,150,8,82,26,71,1,154,8,82,26,21,0,158,8,82,26,3,0,162,8,161,27,21,0,170,8,82,26,3,0,174,8,82,26,3,0,198,4,82,26,9,0,178,8,82,26,3,0,182,8,82,26,21,0,186,8,82,26,3,0,190,8,82,26,3,0,198,8,82,26,3,0,206,8,82,26,3,0,210,8,82,26,123,0,206,4,82,26,24,0,218,8,82,26,3,0,222,8,82,26,3,0,226,8,82,26,3,0,230,8,102,26,3,0,234,8,82,26,3,0,238,8,82,26,3,0,51,6,97,26,1,2,246,8,82,26,3,0,250,8,82,26,3,0,254,8,87,26,66,0,2,9,82,26,185,1,6,9,82,26,3,0,10,9,82,26,9,0,14,9,82,26,3,0,18,9,82,26,45,0,22,9,82,26,21,0,26,9,1,27,6,0,30,9,87,26,27,0,202,4,92,26,6,0,111,4,97,26,80,1,34,9,92,26,6,0,42,9,87,26,27,0,46,9,152,26,42,0,134,3,92,26,6,0,50,9,92,26,6,0,54,9,82,26,3,0,58,9,92,26,6,0,66,9,82,26,3,0,70,9,82,26,3,0,155,6,82,26,182,1,74,9,82,26,3,0,82,9,82,26,3,0,86,9,82,26,3,0,90,9,82,26,39,0,94,9,82,26,3,0,98,9,82,26,3,0,110,9,82,26,3,0,114,9,102,26,3,0,118,9,92,26,6,0,122,9,82,26,9,0,126,9,82,26,3,0,138,9,82,26,3,0,142,9,82,26,111,0,146,9,82,26,3,0,154,9,82,26,3,0,158,9,82,26,21,0,162,9,82,26,3,0,78,3,82,26,24,0,166,9,82,26,3,0,170,9,82,26,18,0,242,3,82,26,87,0,178,9,96,27,162,0,239,5,82,26,63,0,186,9,82,26,3,0,190,9,82,26,3,0,194,9,82,26,63,0,198,9,82,26,3,0,30,3,117,26,117,0,206,9,82,26,3,0,210,9,82,26,3,0,214,9,82,26,3,0,215,3,182,26,15,0,218,9,82,26,3,0,222,9,82,26,3,0,226,9,82,26,3,0,234,9,117,26,6,0,238,9,82,26,3,0,242,9,87,26,30,0,246,9,82,26,3,0,250,9,82,26,123,0,127,6,82,26,81,0,254,9,92,26,6,0,2,10,87,26,27,0,6,10,92,26,6,0,10,10,82,26,3,0,33,3,82,26,77,1,14,10,82,26,3,0,86,3,166,27,26,1,18,10,82,26,21,0,22,10,102,26,3,0,30,10,82,26,24,0,34,10,82,26,3,0,38,10,92,26,27,0,210,4,97,26,12,0,42,10,82,26,62,1,46,10,82,26,3,0,214,4,82,26,9,0,50,10,82,26,3,0,54,10,82,26,21,0,58,10,82,26,3,0,139,4,147,26,84,0,66,10,82,26,3,0,70,10,82,26,3,0,74,10,82,26,8,1,78,10,82,26,3,0,82,10,82,26,3,0,214,5,82,26,3,0,94,5,82,26,54,0,94,10,82,26,3,0,98,10,102,26,189,0,102,10,82,26,3,0,106,10,82,26,3,0,110,10,82,26,21,0,114,10,82,26,3,0,118,10,82,26,3,0,126,10,82,26,63,0,130,10,82,26,3,0,134,10,82,26,3,0,138,10,82,26,3,0,103,4,82,26,75,0,142,10,82,26,36,0,146,10,82,26,3,0,154,10,82,26,3,0,158,10,82,26,39,0,162,10,201,27,117,0,19,6,97,26,12,0,170,10,82,26,24,0,174,10,82,26,3,0,178,10,82,26,72,0,159,6,82,26,116,1,63,3,127,26,15,0,63,3,107,26,243,0,63,3,107,26,83,1,63,3,107,26,5,1,63,3,107,26,122,1,63,3,107,26,9,0,63,3,107,26,146,1,63,3,107,26,41,1,63,3,107,26,24,0,63,3,107,26,38,1,63,3,107,26,50,1,63,3,107,26,69,0,63,3,107,26,231,0,63,3,107,26,60,0,63,3,107,26,36,0,63,3,107,26,162,0,63,3,181,27,231,0,63,3,20,28,231,0,186,10,82,26,99,0,218,4,97,26,12,0,198,26,82,26,36,0,190,10,82,26,18,0,194,10,211,27,36,0,198,10,82,26,36,0,206,10,87,26,14,1,210,10,11,27,162,0,190,3,82,26,3,0,222,10,87,26,135,0,226,10,82,26,3,0,230,10,82,26,3,0,234,10,82,26,3,0,238,10,82,26,3,0,242,10,82,26,18,0,174,5,49,29,135,0,250,10,82,26,3,0,222,4,116,27,138,0,163,6,82,26,81,0,10,11,132,26,186,0,18,11,82,26,24,0,159,4,122,26,18,0,22,11,82,26,18,0,26,11,97,26,147,0,30,11,122,26,18,0,34,11,122,26,18,0,38,11,82,26,167,1,188,1,82,26,98,1,42,11,82,26,213,0,46,11,122,26,18,0,50,11,225,28,84,0,63,4,97,26,12,0,63,4,21,27,80,1,55,6,97,26,12,0,115,4,82,26,60,0,194,26,82,26,101,1,62,11,82,26,3,0,238,4,82,26,123,0,70,11,82,26,3,0,74,11,82,26,3,0,78,11,82,26,36,0,86,11,97,26,12,0,90,11,82,26,54,0,94,11,82,26,3,0,98,11,82,26,3,0,106,11,87,26,6,0,110,11,82,26,3,0,95,3,82,26,48,0,114,11,82,26,3,0,226,4,82,26,18,0,126,11,82,26,3,0,130,11,82,26,3,0,134,11,82,26,3,0,230,4,87,26,3,0,138,3,92,26,6,0,142,11,82,26,18,0,146,11,82,26,3,0,122,5,92,26,6,0,154,11,82,26,3,0,186,3,82,26,42,0,178,11,82,26,141,0,190,11,140,28,39,0,194,11,82,26,3,0,198,11,82,26,3,0,202,11,82,26,3,0,167,3,97,26,138,0,167,3,46,27,15,0,210,11,82,26,3,0,222,11,102,26,3,0,226,11,82,26,48,0,234,11,82,26,63,0,110,3,82,26,87,0,238,11,82,26,3,0,218,5,92,26,33,0,242,11,82,26,21,0,246,11,82,26,3,0,18,4,82,26,3,0,254,11,82,26,3,0,115,3,82,26,144,0,39,4,84,29,152,1,14,12,82,26,3,0,26,12,82,26,3,0,30,12,82,26,111,0,34,12,82,26,177,0,42,12,82,26,3,0,50,12,82,26,54,0,7,6,82,26,93,0,54,12,82,26,39,0,58,12,82,26,51,0,62,12,236,27,186,0,66,12,82,26,3,0,119,4,82,26,107,1,194,3,36,27,84,0,219,3,152,26,132,0,242,4,82,26,3,0,82,12,82,26,3,0,146,3,82,26,64,2,146,3,252,26,129,0,71,3,82,26,36,0,71,3,81,27,60,0,90,12,82,26,3,0,94,12,82,26,3,0,131,6,82,26,74,3,98,12,82,26,3,0,59,3,82,26,75,0,246,4,0,28,6,0,131,4,82,26,36,0,106,12,82,26,36,0,110,12,82,26,3,0,114,12,26,27,51,0,118,12,82,26,3,0,122,12,82,26,3,0,126,12,82,26,21,0,130,12,82,26,75,0,250,4,82,26,3,0,123,3,87,26,30,0,134,12,82,26,3,0,138,12,82,26,3,0,142,12,82,26,3,0,146,12,82,26,3,0,150,12,82,26,8,1,65,1,82,26,111,0,65,1,131,27,129,0,162,12,82,26,3,0,166,12,82,26,63,0,75,6,82,26,192,0,170,12,87,26,66,0,238,3,82,26,24,0,174,12,82,26,108,0,36,3,82,26,195,0,178,12,82,26,3,0,182,12,82,26,3,0,11,6,82,26,52,2,186,12,82,26,3,0,190,12,82,26,249,0,194,12,82,26,3,0,198,12,82,26,3,0,202,12,82,26,3,0,55,3,82,26,81,0,206,12,82,26,36,0,214,12,82,26,81,0,218,12,82,26,48,0,222,12,82,26,48,0,226,12,87,26,21,0,234,12,82,26,56,1,238,12,82,26,3,0,242,12,82,26,129,0,246,12,82,26,3,0,250,12,82,26,141,0,254,12,82,26,51,0,2,13,82,26,39,0,6,13,82,26,3,0,10,13,82,26,66,0,243,5,82,26,144,0,107,6,82,26,11,1,14,13,82,26,93,0,18,13,82,26,3,0,22,13,82,26,29,1,26,13,82,26,3,0,30,13,82,26,3,0,62,27,82,26,3,0,38,13,127,26,15,0,46,13,82,26,3,0,50,13,82,26,9,0,171,4,82,26,78,0,254,4,82,26,3,0,62,13,82,26,3,0,66,13,92,26,6,0,6,5,82,26,3,0,74,13,82,26,3,0,78,13,87,26,30,0,82,13,82,26,5,1,59,6,82,26,60,0,86,13,82,26,3,0,94,13,82,26,3,0,98,13,82,26,3,0,102,13,82,26,3,0,106,13,82,26,3,0,110,13,82,26,3,0,91,4,227,26,126,0,122,13,102,26,78,0,126,13,82,26,3,0,14,5,92,26,33,0,146,13,82,26,3,0,150,13,82,26,131,1,154,13,82,26,3,0,162,13,87,26,27,0,166,13,82,26,3,0,170,13,87,26,27,0,222,5,82,26,3,0,174,13,82,26,3,0,63,6,82,26,75,0,182,13,87,26,30,0,186,13,82,26,3,0,190,13,102,26,3,0,95,4,82,26,196,2,194,13,82,26,3,0,198,13,82,26,3,0,2,5,162,26,6,0,206,13,82,26,3,0,210,13,102,26,3,0,214,13,82,26,3,0,218,13,92,26,6,0,222,13,82,26,9,0,226,13,82,26,144,0,230,13,5,28,147,0,10,5,16,27,180,0,10,5,105,28,132,0,238,13,117,26,6,0,242,13,82,26,3,0,246,13,82,26,150,0,79,6,15,28,6,0,2,14,82,26,120,0,6,14,82,26,92,1,10,14,82,26,3,0,18,14,82,26,93,0,26,14,82,26,3,0,30,14,82,26,3,0,34,14,82,26,54,0,23,6,82,26,91,2,38,14,82,26,3,0,42,14,82,26,3,0,46,14,87,26,3,0,50,14,82,26,18,0,54,14,87,26,3,0,90,3,82,26,3,0,119,3,82,26,39,0,119,3,87,26,66,0,119,3,87,26,21,0,72,27,82,26,3,0,62,14,127,26,15,0,12,27,82,26,3,0,82,27,82,26,36,0,66,14,87,26,114,0,70,14,82,26,3,0,78,14,102,26,3,0,67,4,137,26,198,0,30,4,82,26,3,0,189,26,92,26,6,0,189,26,82,26,6,0,86,14,82,26,3,0,18,5,82,26,195,0,90,14,82,26,3,0,94,14,82,26,3,0,98,14,82,26,24,0,166,5,92,26,6,0,106,14,82,26,3,0,226,5,45,28,42,0,114,14,250,28,15,0,122,14,82,26,3,0,126,14,87,26,27,0,130,14,92,26,6,0,22,5,232,26,36,0,26,5,82,26,24,0,230,5,87,26,27,0,199,26,82,26,44,1,174,3,92,26,6,0,42,27,92,26,6,0,134,14,82,26,3,0,123,4,82,26,79,2,142,14,82,26,48,0,146,14,127,26,15,0,247,5,82,26,82,2,174,26,82,26,125,1,150,14,82,26,3,0,154,14,82,26,18,0,251,5,82,26,153,0,227,6,82,26,74,3,162,14,82,26,3,0,166,14,82,26,3,0,170,14,82,26,39,0,178,14,82,26,3,0,182,14,82,26,3,0,87,4,82,26,94,2,190,14,82,26,3,0,127,4,82,26,9,0,87,27,82,26,3,0,194,14,82,26,3,0,198,14,82,26,3,0,202,14,82,26,156,0,83,6,82,26,39,0,206,14,82,26,3,0,210,14,82,26,3,0,27,6,129,29,15,0,214,14,82,26,3,0,147,4,122,26,18,0,222,14,82,26,3,0,226,14,82,26,3,0,230,14,82,26,3,0,242,14,82,26,24,0,250,14,82,26,3,0,71,4,82,26,9,0,92,27,97,26,12,0,87,6,82,26,74,3,254,14,82,26,3,0,2,15,82,26,3,0,223,3,82,26,51,0,151,4,137,26,198,0,14,15,82,26,3,0,18,15,82,26,3,0,22,15,82,26,12,0,30,5,82,26,3,0,227,3,60,28,201,0,26,15,82,26,3,0,34,15,82,26,100,2,34,5,82,26,3,0,46,15,82,26,74,3,50,15,82,26,3,0,58,15,82,26,3,0,62,15,82,26,21,0,91,3,137,26,74,3,66,15,82,26,3,0,70,15,82,26,45,0,74,15,92,26,33,0,78,15,82,26,3,0,86,15,82,26,101,1,191,3,82,26,9,0,191,1,82,26,9,0,34,4,97,26,159,0,90,15,82,26,183,0,94,15,82,26,84,0,98,15,82,26,3,0,102,15,82,26,3,0,106,15,82,26,39,0,114,15,82,26,54,0,118,15,82,26,63,0,122,15,65,28,9,0,38,5,97,26,12,0,238,5,82,26,3,0,126,15,82,26,3,0,130,15,82,26,3,0,134,15,82,26,3,0,138,15,87,26,141,0,142,15,82,26,39,0,146,15,82,26,165,0,150,15,82,26,3,0,154,15,82,26,3,0,158,15,82,26,45,0,162,15,82,26,156,0,166,15,82,26,3,0,246,3,112,26,69,0,170,15,82,26,95,1,174,15,82,26,21,0,178,15,82,26,3,0,182,15,82,26,123,0,186,15,92,26,6,0,242,5,92,26,6,0,75,4,82,26,90,0,198,15,82,26,9,0,202,15,82,26,3,0,210,15,82,26,120,0,118,3,82,26,6,0,214,15,69,29,15,0,222,15,92,26,6,0,226,15,82,26,63,0,230,15,82,26,3,0,246,5,147,26,6,0,234,15,87,26,27,0,250,5,82,26,3,0,11,4,82,26,54,0,238,15,82,26,3,0,242,15,82,26,42,0,246,15,82,26,3,0,255,5,82,26,153,0,250,15,82,26,3,0,254,15,247,26,207,0,2,16,82,26,3,0,6,16,82,26,3,0,127,3,97,26,20,1,127,3,87,26,114,0,127,3,87,26,15,0,127,3,87,26,30,0,127,3,87,26,138,0,10,16,82,26,3,0,254,5,82,26,21,0,91,6,82,26,61,2,42,5,82,26,54,0,14,16,82,26,3,0,18,16,82,26,3,0,22,16,82,26,3,0,235,5,75,28,14,1,46,5,82,26,171,0,26,16,82,26,3,0,34,16,82,26,3,0,79,3,82,26,42,0,79,3,87,26,23,1,79,3,87,26,135,0,79,3,124,29,126,0,42,16,82,26,3,0,46,16,82,26,3,0,50,16,82,26,3,0,223,5,192,26,6,0,135,4,82,26,3,0,58,16,82,26,119,1,50,5,92,26,6,0,70,16,82,26,3,0,171,3,242,26,17,1,74,16,97,26,12,0,82,16,82,26,3,0,86,16,82,26,99,0,90,16,82,26,3,0,54,5,82,26,26,1,94,16,82,26,3,0,98,16,82,26,3,0,106,16,82,26,3,0,203,3,97,26,12,0,114,16,82,26,3,0,118,16,82,26,3,0,122,16,82,26,3,0,126,16,82,26,3,0,130,16,102,26,3,0,134,16,97,26,12,0,138,16,82,26,222,0,142,16,82,26,24,0,146,16,82,26,12,0,154,16,82,26,3,0,58,5,92,26,6,0,67,6,87,26,6,0,158,16,82,26,45,0,162,16,82,26,3,0,166,16,82,26,21,0,170,16,82,26,48,0,174,16,82,26,3,0,182,16,82,26,3,0,186,16,102,26,3,0,190,16,82,26,3,0,194,16,82,26,3,0,62,5,82,26,87,0,202,16,82,26,3,0,206,16,82,26,3,0,210,16,82,26,3,0,214,16,82,26,3,0,218,16,97,26,12,0,222,16,82,26,3,0,226,16,82,26,3,0,230,16,82,26,3,0,234,16,82,26,3,0,238,16,82,26,9,0,246,16,87,26,27,0,15,6,82,26,60,0,250,16,82,26,3,0,254,16,82,26,18,0,2,17,82,26,3,0,22,4,82,26,3,0,14,17,82,26,3,0,18,17,102,26,3,0,194,5,82,26,3,0,66,5,92,26,6,0,26,17,112,26,69,0,30,17,87,26,27,0,38,17,82,26,3,0,42,17,82,26,3,0,195,3,97,26,106,2,195,3,87,26,15,0,195,3,82,26,42,0,46,17,82,26,3,0,50,17,82,26,3,0,70,5,87,26,3,0,74,5,82,26,87,0,54,17,82,26,3,0,82,5,82,26,87,0,167,6,82,26,179,1,58,17,100,28,132,0,62,17,137,26,198,0,22,27,82,26,45,0,86,5,87,26,27,0,66,17,82,26,72,0,74,17,82,26,3,0,207,5,82,26,137,1,78,17,97,26,12,0,86,17,82,26,3,0,90,17,82,26,9,0,94,17,82,26,3,0,98,17,112,26,15,0,106,17,82,26,3,0,110,17,82,26,3,0,114,17,82,26,3,0,122,17,82,26,3,0,126,17,90,28,6,0,130,17,82,26,3,0,134,17,82,26,3,0,138,17,97,26,12,0,203,6,82,26,72,0,142,17,82,26,3,0,111,6,82,26,144,0,146,17,82,26,3,0,150,17,82,26,3,0,90,5,92,26,33,0,90,5,95,28,6,0,154,17,82,26,3,0,158,17,82,26,3,0,166,17,82,26,51,0,170,17,82,26,18,0,174,17,217,26,15,0,178,17,82,26,9,0,182,17,87,26,30,0,186,17,82,26,36,0,190,17,82,26,3,0,194,17,82,26,3,0,206,17,162,26,6,0,210,17,82,26,51,0,214,17,82,26,3,0,31,6,82,26,90,0,218,17,82,26,3,0,222,17,82,26,3,0,123,27,247,26,207,0,46,4,82,26,3,0,226,17,82,26,3,0,230,17,82,26,90,0,50,4,82,26,3,0,234,17,82,26,3,0,238,17,82,26,185,1,242,17,87,26,30,0,113,27,82,26,134,1,54,4,82,26,140,1,227,5,82,26,90,0,250,17,82,26,90,0,254,17,82,26,54,0,2,18,87,26,30,0,194,1,82,26,140,1,10,18,112,26,69,0,62,3,127,26,15,0,14,18,82,26,42,0,143,3,97,26,143,1,22,18,82,26,9,0,26,18,82,26,21,0,30,18,92,26,6,0,98,5,92,26,6,0,102,5,82,26,9,0,167,4,82,26,172,2,38,18,82,26,54,0,42,18,82,26,3,0,99,3,82,26,87,0,99,3,87,26,4,2,50,18,82,26,105,0,2,6,82,26,3,0,54,18,82,26,3,0,58,18,82,26,3,0,62,18,82,26,3,0,66,18,82,26,3,0,70,18,82,26,3,0,74,18,82,26,3,0,78,18,82,26,3,0,82,18,82,26,3,0,86,18,82,26,3,0,90,18,82,26,3,0,94,3,87,26,3,0,94,18,97,26,12,0,98,18,82,26,24,0,102,18,82,26,3,0,106,18,82,26,9,0,110,18,102,26,3,0,114,18,82,26,3,0,6,6,82,26,3,0,122,18,82,26,3,0,106,5,82,26,222,0,126,18,82,26,54,0,130,18,82,26,3,0,58,4,82,26,3,0,122,3,87,26,69,0,134,18,82,26,32,1,138,18,82,26,3,0,10,6,82,26,3,0,142,18,82,26,3,0,79,4,82,26,136,2,146,18,82,26,96,0,150,18,82,26,3,0,154,18,82,26,21,0,158,18,92,26,33,0,166,18,82,26,45,0,15,4,82,26,139,2,170,18,82,26,3,0,174,18,82,26,3,0,182,18,82,26,18,0,186,18,82,26,3,0,190,18,82,26,9,0,194,18,82,26,3,0,198,18,87,26,3,0,202,18,82,26,3,0,206,18,82,26,3,0,14,6,82,26,3,0,207,6,160,28,6,0,210,18,82,26,3,0,214,18,82,26,3,0,218,18,82,26,66,0,222,18,82,26,3,0,226,18,82,26,3,0,230,18,82,26,3,0,234,18,82,26,3,0,238,18,82,26,3,0,110,5,117,26,6,0,114,5,147,26,84,0,163,3,82,26,47,1,250,18,82,26,3,0,254,18,82,26,18,0,6,19,82,26,18,0,14,19,82,26,177,0,18,19,82,26,3,0,22,19,82,26,3,0,26,19,82,26,3,0,30,19,82,26,3,0,34,19,82,26,3,0,38,19,82,26,3,0,149,26,92,26,6,0,42,19,92,26,33,0,46,19,97,26,12,0,50,19,51,27,117,0,211,6,82,26,148,2,58,19,82,26,3,0,62,19,82,26,3,0,66,19,82,26,3,0,74,19,92,26,6,0,78,19,82,26,21,0,138,5,92,26,6,0,86,19,82,26,3,0,90,19,82,26,36,0,94,19,82,26,3,0,98,19,82,26,3,0,102,19,87,26,27,0,114,19,82,26,63,0,118,19,82,26,9,0,122,19,232,26,36,0,126,19,82,26,165,0,130,19,82,26,3,0,138,19,82,26,3,0,142,19,102,26,3,0,150,19,97,26,12,0,154,19,82,26,3,0,158,19,82,26,72,0,162,19,130,28,30,0,166,19,82,26,3,0,170,19,82,26,3,0,174,19,87,26,30,0,178,19,82,26,3,0,182,19,82,26,3,0,186,19,82,26,3,0,171,6,82,26,163,2,190,19,82,26,3,0,198,19,82,26,3,0,198,3,82,26,3,0,202,19,127,26,15,0,206,19,82,26,51,0,210,19,82,26,153,0,214,19,82,26,3,0,183,3,82,26,210,0,230,19,82,26,3,0,18,6,82,26,3,0,234,19,82,26,3,0,238,19,82,26,105,0,242,19,82,26,3,0,62,4,82,26,3,0,144,26,82,26,165,0,254,19,82,26,96,0,2,20,82,26,48,0,235,3,92,26,33,0,6,20,82,26,3,0,126,5,92,26,33,0,10,20,82,26,3,0,54,3,82,26,3,0,108,27,82,26,153,0,14,20,82,26,3,0,18,20,82,26,3,0,22,20,82,26,96,0,30,20,82,26,3,0,66,4,82,26,105,0,34,20,82,26,105,0,38,20,82,26,3,0,26,6,82,26,3,0,42,20,82,26,9,0,70,4,82,26,3,0,46,20,82,26,169,2,50,20,82,26,3,0,54,20,82,26,3,0,58,20,82,26,6,0,74,4,82,26,3,0,66,20,82,26,3,0,78,4,82,26,21,0,74,20,82,26,3,0,143,6,82,26,210,0,78,20,82,26,3,0,82,20,82,26,21,0,86,20,82,26,3,0,90,20,82,26,3,0,94,20,197,26,6,0,231,5,82,26,210,0,106,20,85,28,69,0,110,20,92,26,6,0,118,20,167,26,108,0,126,20,82,26,3,0,130,20,82,26,3,0,138,20,252,26,129,0,175,6,82,26,57,0,142,20,82,26,3,0,154,20,122,26,18,0,34,6,82,26,3,0,82,4,82,26,57,0,158,20,82,26,3,0,162,20,94,29,6,0,166,20,82,26,3,0,170,20,82,26,3,0,178,20,82,26,3,0,186,20,82,26,3,0,190,20,82,26,223,2,194,20,82,26,3,0,198,20,82,26,3,0,39,3,82,26,36,0,202,20,82,26,3,0,210,20,82,26,15,0,214,20,82,26,3,0,179,6,82,26,35,1,226,20,82,26,45,0,230,20,82,26,72,0,234,20,82,26,93,0,175,3,82,26,81,0,175,3,82,26,75,0,238,20,82,26,3,0,47,4,122,26,18,0,246,20,122,26,18,0,250,20,82,26,18,0,254,20,82,26,3,0,202,3,82,26,3,0,47,27,82,26,3,0,6,21,82,26,3,0,10,21,82,26,3,0,18,21,82,26,3,0,51,4,205,28,6,0,22,21,82,26,3,0,26,21,87,26,3,0,215,6,97,26,126,0,34,21,210,28,36,0,42,6,87,26,3,0,38,21,200,28,138,0,42,21,215,28,234,6,50,21,82,26,3,0,179,3,212,26,6,0,179,3,87,26,27,0,54,21,82,26,24,0,130,5,235,28,30,0,130,5,240,28,15,0,58,21,82,26,24,0,254,3,82,26,74,1,66,21,82,26,193,2,70,21,82,26,3,0,107,4,87,26,114,0,78,21,82,26,81,0,82,21,82,26,39,0,90,21,82,26,36,0,94,21,82,26,18,0,98,21,82,26,3,0,102,27,101,27,30,0,110,21,82,26,3,0,114,21,82,26,48,0,118,21,87,26,3,0,122,21,245,28,23,1,130,21,82,26,3,0,134,21,82,26,3,0,86,4,82,26,164,1,90,4,186,27,6,0,138,21,82,26,54,0,209,26,82,26,213,0,142,21,82,26,3,0,154,21,82,26,51,0,166,21,82,26,3,0,170,21,82,26,3,0,174,21,152,26,132,0,178,21,82,26,99,0,178,3,92,26,6,0,182,21,82,26,3,0,190,21,82,26,18,0,194,21,70,28,27,0,198,21,87,26,30,0,202,21,82,26,74,3,210,21,82,26,3,0,134,26,82,26,120,0,214,21,82,26,3,0,222,21,82,26,110,1,230,21,82,26,3,0,27,4,82,26,155,1,234,21,82,26,113,1,238,21,82,26,104,1,7,27,82,26,3,0,246,21,82,26,3,0,2,22,82,26,161,1,142,5,82,26,9,0,6,22,82,26,3,0,10,22,82,26,3,0,94,4,82,26,51,0,146,5,4,29,84,0,14,22,82,26,6,0,150,5,177,26,102,0,150,5,82,26,144,0,18,22,92,26,33,0,22,22,117,26,117,0,219,6,82,26,150,0,26,22,82,26,192,0,30,22,82,26,150,0,38,22,87,26,30,0,42,22,82,26,108,0,71,6,82,26,242,1,54,22,82,26,3,0,58,22,82,26,96,0,62,22,82,26,9,0,66,22,82,26,45,0,52,27,82,26,3,0,74,22,82,26,3,0,78,22,82,26,195,0,214,26,97,26,12,0,82,22,97,26,147,0,86,22,82,26,164,1,115,6,82,26,211,2,94,22,82,26,45,0,46,6,82,26,3,0,98,22,237,26,201,0,103,3,92,26,6,0,98,4,82,26,93,0,102,22,97,26,12,0,110,22,82,26,54,0,114,22,82,26,9,0,118,22,195,28,6,0,122,22,82,26,111,0,126,22,14,29,6,0,130,22,82,26,3,0,50,6,82,26,3,0,134,22,82,26,45,0,197,1,82,26,51,0,83,3,97,26,216,0,83,3,82,26,12,0,83,3,82,26,130,2,83,3,82,26,47,1,83,3,82,26,42,0,142,22,92,26,6,0,146,22,87,26,3,0,150,22,82,26,51,0,154,22,82,26,60,0,159,3,87,26,27,0,159,3,92,26,6,0,159,3,41,27,6,0,159,3,29,29,6,0,162,22,82,26,51,0,166,22,87,26,30,0,211,5,82,26,210,0,170,22,82,26,123,0,174,22,82,26,96,0,178,22,82,26,105,0,182,22,82,26,63,0,147,6,82,26,86,1,186,22,61,27,11,1,190,22,82,26,134,1,194,22,102,26,3,0,198,22,82,26,3,0,202,22,177,26,102,0,206,22,82,26,3,0,210,22,147,26,84,0,173,26,87,26,3,0,183,6,91,27,118,2,214,22,82,26,78,0,218,22,82,26,3,0,222,22,82,26,3,0,226,22,82,26,3,0,230,22,82,26,3,0,155,4,82,26,170,1,234,22,82,26,3,0,154,5,87,26,27,0,66,6,82,26,3,0,187,6,82,26,214,2,242,22,82,26,3,0,246,22,82,26,213,0,250,22,82,26,3,0,2,23,82,26,9,0,175,4,82,26,18,3,67,27,82,26,108,0,158,5,82,26,171,0,6,23,82,26,108,0,10,23,82,26,192,0,14,23,9,29,198,0,18,23,82,26,3,0,98,3,82,26,192,0,35,6,82,26,165,0,182,3,82,26,87,0,22,23,82,26,3,0,26,23,82,26,63,0,30,23,82,26,3,0,34,23,82,26,3,0,38,23,82,26,3,0,83,4,82,26,173,1,162,5,34,29,159,0,46,23,82,26,3,0,50,23,82,26,3,0,54,23,112,26,69,0,58,23,82,26,3,0,62,23,82,26,3,0,66,23,82,26,3,0,106,4,82,26,3,0,74,23,44,29,6,0,70,6,82,26,50,1,82,23,82,26,111,0,223,6,82,26,57,0,86,23,82,26,3,0,90,23,82,26,3,0,94,23,82,26,189,0,204,26,82,26,57,0,206,3,82,26,3,0,98,23,82,26,48,0,219,26,82,26,9,0,102,23,82,26,3,0,106,23,82,26,3,0,210,3,82,26,45,0,154,3,82,26,3,0,122,23,82,26,129,0,200,1,82,26,108,0,131,3,82,26,45,0,126,23,87,26,62,1,130,23,82,26,90,0,134,23,82,26,48,0,142,23,82,26,3,0,146,23,92,26,6,0,150,23,82,26,9,0,154,23,82,26,3,0,170,5,117,26,117,0,158,23,82,26,213,0,43,6,1,27,6,0,178,5,92,26,33,0,27,27,82,26,3,0,162,23,82,26,3,0,166,23,82,26,3,0,170,23,82,26,3,0,174,23,82,26,3,0,178,23,82,26,3,0,110,4,82,26,3,0,214,3,82,26,3,0,182,5,82,26,24,0,182,23,82,26,3,0,186,23,82,26,3,0,114,4,192,26,6,0,190,23,64,29,15,0,198,23,92,26,33,0,202,23,92,26,33,0,186,5,82,26,87,0,95,6,162,26,6,0,206,23,82,26,3,0,210,23,82,26,222,0,214,23,82,26,72,0,118,4,82,26,53,1,74,6,82,26,3,0,55,4,97,26,176,1,55,4,87,26,27,0,218,23,82,26,3,0,226,23,82,26,3,0,78,6,82,26,3,0,19,4,112,26,69,0,234,23,92,26,33,0,238,23,92,26,33,0,122,4,92,26,33,0,224,26,102,26,78,0,2,24,82,26,3,0,82,6,102,26,189,0,130,4,82,26,3,0,6,24,82,26,3,0,86,6,82,26,3,0,10,24,82,26,39,0,207,3,82,26,247,2,90,6,82,26,244,2,134,4,82,26,174,0,14,24,92,26,33,0,203,1,82,26,24,0,18,24,82,26,3,0,26,24,82,26,3,0,30,24,82,26,174,0,14,4,82,26,141,0,138,4,82,26,3,0,84,26,82,26,57,0,42,24,82,26,3,0,128,27,82,26,250,2,46,24,82,26,3,0,50,24,82,26,35,1,54,24,82,26,74,3,58,24,82,26,3,0,62,24,82,26,44,1,66,24,82,26,3,0,74,24,82,26,3,0,78,24,82,26,3,0,143,4,82,26,42,0,82,24,82,26,42,0,86,24,82,26,231,0,90,24,87,26,27,0,99,6,82,26,57,0,158,3,152,26,132,0,190,5,92,26,33,0,94,24,82,26,24,0,98,24,182,26,255,0,130,3,82,26,3,0,103,6,97,26,12,0,102,24,82,26,3,0,94,6,82,26,3,0,106,24,82,26,72,0,114,24,82,26,3,0,98,6,112,26,69,0,102,6,82,26,174,0,118,24,82,26,3,0,122,24,82,26,3,0,126,24,82,26,35,1,130,24,82,26,3,0,134,24,82,26,0,3,138,24,82,26,3,0,142,24,82,26,3,0,150,24,82,26,141,0,154,24,74,29,15,0,158,24,126,27,6,0,219,5,82,26,41,1,162,24,82,26,3,0,170,24,97,26,12,0,174,24,82,26,102,0,178,24,82,26,3,0,182,24,136,27,12,0,186,24,97,26,12,0,231,3,87,26,15,0,231,3,97,26,20,1,231,3,97,26,138,0,106,6,99,29,225,0,211,3,97,26,147,0,110,6,82,26,99,0,194,24,82,26,171,0,71,3,82,26,39,0,71,3,82,26,243,0,59,3,82,26,105,0,131,3,82,26,90,0,71,3,82,26,57,0,59,3,82,26,22,2,71,3,82,26,44,1,71,3,82,26,116,1,151,3,82,26,159,0,67,3,87,26,219,0,71,3,82,26,60,0,59,3,82,26,178,4,254,3,82,26,2,1,67,3,87,26,66,0,67,3,87,26,237,0,103,4,82,26,221,1,67,3,87,26,224,1,123,3,87,26,114,0,134,26,82,26,171,0,143,26,82,26,240,0,59,3,82,26,230,1,175,4,82,26,233,1,95,3,82,26,71,1,115,3,82,26,74,1,200,1,82,26,236,1,115,3,82,26,246,0,55,3,82,26,177,0,67,3,87,26,239,1,55,3,82,26,249,0,55,3,82,26,245,1,99,3,82,26,83,1,59,3,82,26,252,0,254,3,82,26,248,1,143,26,82,26,254,1,55,3,82,26,86,1,55,3,82,26,7,2,95,3,82,26,150,0,55,3,82,26,123,0,59,3,82,26,89,1,55,3,82,26,21,0,59,3,82,26,92,1,143,26,82,26,10,2,59,3,82,26,13,2,134,26,82,26,95,1,219,3,152,26,180,0,35,4,82,26,31,2,59,3,82,26,34,2,67,3,87,26,183,0,59,3,82,26,40,2,59,3,82,26,104,1,67,3,87,26,43,2,224,26,102,26,189,0,71,3,82,26,11,1,95,3,82,26,49,2,55,3,82,26,110,1,55,3,82,26,5,1,55,3,82,26,129,0,55,3,82,26,67,2,59,3,82,26,8,1,143,26,82,26,70,2,59,3,82,26,113,1,134,26,82,26,119,1,143,26,82,26,73,2,59,3,82,26,76,2,59,3,82,26,88,2,67,3,87,26,135,0,67,3,87,26,128,1,131,3,82,26,54,0,67,3,87,26,204,0,171,3,242,26,109,2,67,3,87,26,112,2,214,26,97,26,20,1,67,3,87,26,23,1,95,3,82,26,115,2,204,26,82,26,121,2,55,3,82,26,137,1,67,3,87,26,124,2,67,3,87,26,102,0,55,3,82,26,127,2,163,3,82,26,29,1,55,3,82,26,133,2,55,3,82,26,145,2,67,3,87,26,149,1,134,26,82,26,96,0,99,4,82,26,153,0,55,3,82,26,151,2,119,3,82,26,141,0,59,3,82,26,157,2,67,3,87,26,175,2,59,3,82,26,38,1,59,3,82,26,155,1,55,3,82,26,41,1,155,3,87,26,27,0,55,3,82,26,181,2,59,3,82,26,184,2,67,3,87,26,187,2,134,26,82,26,158,1,67,3,87,26,202,2,71,3,82,26,28,2,55,3,82,26,161,1,55,3,82,26,167,1,183,3,82,26,217,2,223,3,82,26,220,2,55,3,82,26,111,0,115,3,82,26,50,1,134,26,82,26,226,2,59,3,82,26,232,2,67,3,87,26,225,0,55,3,82,26,238,2,55,3,82,26,241,2,55,3,82,26,156,0,134,26,82,26,53,1,67,3,87,26,228,0,131,3,82,26,72,0,59,3,82,26,6,3,223,3,82,26,179,1,48,3,82,26,162,0,59,3,82,26,12,3,55,3,82,26,56,1,87,3,82,26,59,1,55,3,82,26,62,1,146,5,87,26,84,0,155,3,87,26,60,0,99,3,87,26,9,0,155,3,87,26,6,0,155,3,87,26,32,1,119,3,87,26,39,0,123,3,87,26,176,1,107,3,87,26,42,0,194,4,156,27,9,0,198,4,171,27,9,0,103,3,176,27,6,0,55,3,6,27,81,0,214,4,191,27,9,0,78,3,196,27,24,0,158,4,206,27,42,0,162,6,216,27,159,0,143,26,221,27,180,0,143,3,97,26,168,0,83,3,97,26,77,1,143,3,97,26,132,0,211,3,97,26,29,1,111,4,97,26,47,1,211,3,97,26,170,1,38,5,97,26,42,0,83,3,97,26,59,1,235,3,92,26,255,0,18,5,92,26,195,0,134,3,92,26,32,1,39,4,226,27,152,1,138,3,231,27,6,0,55,3,207,26,81,0,87,3,241,27,168,0,158,26,246,27,30,0,146,6,251,27,6,0,103,3,10,28,6,0,171,3,25,28,17,1,63,3,30,28,15,0,26,5,35,28,24,0,6,4,107,26,18,0,91,3,137,26,108,0,91,3,137,26,147,0,91,3,137,26,36,0,227,3,40,28,201,0,22,5,50,28,207,0,174,26,106,27,125,1,171,3,31,27,17,1,191,3,55,28,9,0,227,3,237,26,201,0,70,26,80,28,15,0,134,3,187,26,6,0,71,3,82,26,78,0,207,3,82,26,114,0,79,3,82,26,68,1,187,3,82,26,15,0,143,4,82,26,180,0,55,3,82,26,183,0,79,3,82,26,126,0,207,3,82,26,30,0,55,3,82,26,204,0,55,3,82,26,102,0,87,3,82,26,143,1,134,26,82,26,146,1,55,3,82,26,149,1,55,3,82,26,225,0,55,3,82,26,228,0,209,26,82,26,147,0,146,25,110,28,42,0,150,25,115,28,42,0,189,26,120,28,6,0,102,5,125,28,9,0,166,3,135,28,15,0,215,3,157,26,15,0,106,5,145,28,222,0,202,5,150,28,66,0,202,5,155,28,66,0,149,26,165,28,6,0,110,5,170,28,6,0,154,5,111,27,27,0,114,5,147,26,69,0,168,26,56,27,6,0,103,3,175,28,6,0,170,6,180,28,219,0,126,5,190,28,33,0,58,26,172,26,15,0,83,4,66,27,173,1,203,3,230,28,12,0,62,3,71,27,15,0,174,25,222,26,30,0,142,5,255,28,9,0,102,3,76,27,237,0,103,3,24,29,6,0,103,3,86,27,6,0,162,5,39,29,159,0,219,26,142,26,9,0,170,5,121,27,117,0,182,5,54,29,24,0,138,3,59,29,6,0,54,26,177,26,102,0,238,3,79,29,24,0,246,3,112,26,14,1,246,3,112,26,207,0,98,5,89,29,6,0,238,24,104,29,26,1,87,3,109,29,168,0,174,3,114,29,6,0,222,4,134,29,138,0,168,26,117,26,6,0,168,26,92,26,33,0,206,24,117,26,6,0,198,5,82,26,3,0,210,24,82,26,3,0,214,24,82,26,3,0,114,6,82,26,3,0,218,24,82,26,3,0,142,4,82,26,3,0,222,24,82,26,3,0,226,24,82,26,3,0,151,3,87,26,114,0,151,3,97,26,15,0,234,24,82,26,3,0,242,24,82,26,3,0,45,3,82,26,57,0,246,24,82,26,51,0,250,24,82,26,12,0,254,24,82,26,235,2,2,25,82,26,3,0,6,25,82,26,246,0,10,25,82,26,48,0,14,25,82,26,96,0,39,6,82,26,74,3,18,25,82,26,12,0,22,25,82,26,107,1,26,25,82,26,45,0,30,25,82,26,3,0,151,6,82,26,246,0,118,6,82,26,150,0,34,25,82,26,3,0,38,25,102,26,78,0,122,6,82,26,3,0,66,3,82,26,24,0,46,25,82,26,243,0,50,25,162,26,6,0,126,6,92,26,6,0,54,25,82,26,3,0,58,25,82,26,3,0,66,25,82,26,3,0,74,25,82,26,3,0,78,25,82,26,3,0,146,4,82,26,3,0,82,25,82,26,3,0,226,3,82,26,3,0,134,6,82,26,3,0,86,25,82,26,56,1,138,6,82,26,3,0,90,25,82,26,3,0,94,25,87,26,204,0,98,25,82,26,3,0,47,6,82,26,111,0,106,25,82,26,3,0,110,25,82,26,3,0,114,25,82,26,3,0,154,4,82,26,3,0,118,25,92,26,6,0,122,25,127,26,15,0,126,25,82,26,3,0,150,6,82,26,3,0,130,25,82,26,120,0,154,6,82,26,3,0,58,3,82,26,3,0,215,5,82,26,57,0,166,6,82,26,3,0,154,25,227,26,126,0,174,6,92,26,6,0,162,25,82,26,72,0,166,25,82,26,3,0,178,25,82,26,3,0,182,6,82,26,3,0,190,25,82,26,3,0,82,3,92,26,33,0,194,25,82,26,3,0,198,25,82,26,96,0,202,25,82,26,99,0,190,6,82,26,3,0,206,25,82,26,3,0,194,6,82,26,21,0,162,4,82,26,3,0,106,3,82,26,3,0,198,6,82,26,3,0,210,25,82,26,21,0,218,25,82,26,3,0,226,25,82,26,3,0,230,25,82,26,3,0,234,25,82,26,3,0,170,3,82,26,3,0,242,25,82,26,3,0,202,6,82,26,3,0,246,25,82,26,3,0,206,6,82,26,3,0,118,27,82,26,39,0,2,26,82,26,3,0,6,26,82,26,3,0,10,26,82,26,3,0,98,26,82,26,120,0,222,6,82,26,3,0,14,26,82,26,105,0,6,4,107,26,122,1,6,4,127,26,15,0,18,26,82,26,3,0,22,26,82,26,3,0,30,26,82,26,3,0,34,26,82,26,66,0,46,26,87,26,204,0,50,26,82,26,144,0,226,6,82,26,3,0,74,26,82,26,156,0,166,4,82,26,87,0,234,3,82,26,3,0,51,3,82,26,57,0,76,0,254,6,230,6,2,7,12,0,6,7,98,1,10,7,78,0,14,7,48,0,18,7,2,1,238,6,99,0,22,7,66,0,26,7,97,2,242,6,237,0,246,6,216,0,227,1,2,1,251,1,84,0,16,2,216,0,19,2,131,1,25,2,48,0,37,2,249,0,55,2,240,0,58,2,81,0,85,2,177,0,103,2,234,0,142,2,234,0,154,2,182,1,160,2,240,0,166,2,219,0,178,2,99,0,190,2,234,0,199,2,38,1,205,2,46,2,208,2,165,0,229,2,12,0,253,2,53,1,3,3,60,0,9,3,162,0,15,3,234,0,21,3,237,0,24,3,216,0,27,3,90,0,18,0,71,3,82,26,36,0,71,3,82,26,60,0,59,3,82,26,75,0,59,3,82,26,178,4,134,26,82,26,120,0,134,26,82,26,158,1,16,0,1,0,248,6,76,3,240,6,236,6,232,6,149,29,244,6,158,29,209,1,218,1,206,1,215,1,250,6,212,1,144,29,170,170,170,170,170,170,170,170,170,170,8,39,0,0,0,26,109,204,72,116,196,252,119,194,103,119,162,183,120,164,82,121,164,194,122,15,109,125,122,92,122,48,225,173,173,232,46,245,175,81,16,225,165,60,2,42,60,66,204,101,72,17,97,110,1,226,165,0,244,163,251,11,77,37,84,14,84,204,18,85,42,86,16,206,163,254,16,211,163,253,77,216,30,213,80,42,83,16,210,163,249,2,193,163,248,198,163,246,200,163,247,71,213,33,71,50,72,216,30,183,73,16,196,163,244,1,194,163,252,198,163,242,109,50,110,54,115,58,121,16,226,173,173,16,233,175,79,16,229,175,80,16,237,34,1,42,169,21,67,16,195,169,22,104,23,104,50,105,54,107,58,108,16,237,175,78,16,248,173,203,16,225,175,77,16,244,173,168,97,50,100,54,101,58,103,16,232,173,217,16,231,175,74,16,234,175,75,16,225,175,76,0,18,109,70,116,27,116,52,117,56,119,66,225,173,254,239,175,21,16,237,175,26,1,245,175,27,246,175,28,16,225,175,29,109,60,110,64,111,80,114,90,115,1,231,173,153,235,175,25,16,239,175,17,2,227,175,18,233,175,19,245,175,20,1,226,175,22,243,175,23,16,243,175,24,103,38,103,54,104,58,105,62,106,78,108,16,243,175,16,16,233,175,9,16,231,175,10,2,226,175,11,245,175,12,246,175,13,1,225,175,14,233,175,15,97,56,98,84,99,100,101,1,236,165,35,242,175,8,4,229,173,255,234,175,0,236,175,1,238,175,2,242,175,3,2,240,175,4,241,175,5,242,175,6,16,233,175,7,12,110,61,114,33,114,46,115,50,119,78,232,175,33,16,226,175,39,4,225,173,209,233,175,40,236,165,50,237,175,41,242,175,42,16,229,175,43,110,52,111,62,112,1,229,167,146,242,173,207,1,225,173,201,242,175,36,1,231,175,37,238,175,38,101,29,101,58,108,62,109,2,230,175,35,238,173,190,242,173,193,16,243,175,32,2,225,175,34,227,173,186,228,173,187,97,52,98,56,99,1,239,173,135,242,173,134,16,246,175,30,16,233,175,31,13,109,73,115,48,115,48,117,52,233,167,55,239,175,62,16,243,175,67,4,225,175,68,229,50,234,175,71,244,175,72,247,175,73,1,42,46,72,18,97,110,243,175,70,1,42,175,69,67,16,206,175,70,109,58,111,62,114,2,226,175,64,229,175,65,236,175,66,16,236,175,61,16,238,175,63,101,32,101,62,103,66,107,76,108,2,229,175,58,231,175,59,236,175,60,16,242,175,54,1,242,175,55,247,175,56,16,239,175,57,97,46,98,96,100,16,228,167,55,7,244,12,244,175,47,246,175,48,249,175,49,250,175,50,237,167,188,239,175,44,240,175,45,243,175,46,2,225,175,51,226,175,52,249,175,53,116,162,82,117,164,217,118,10,111,31,229,9,229,173,241,233,173,115,239,173,249,111,52,114,56,117,1,238,173,252,244,173,253,16,244,173,250,16,239,173,251,97,60,101,76,105,86,108,96,109,1,230,173,247,247,173,248,2,231,173,239,233,173,222,238,173,240,1,227,173,242,240,173,243,1,227,173,244,246,173,245,16,243,173,246,0,38,117,124,233,31,242,14,242,171,214,243,171,218,244,171,224,247,105,249,171,241,233,171,186,235,171,193,236,171,197,238,171,203,239,171,205,122,36,122,54,225,171,153,229,171,171,231,46,232,171,182,16,237,171,244,1,42,46,65,18,114,97,226,171,178,1,42,171,177,80,16,203,171,178,117,60,118,82,119,98,120,108,121,1,225,171,242,246,171,243,3,232,171,231,236,171,232,237,171,233,241,171,234,2,228,167,191,236,171,235,245,171,236,1,232,171,237,241,171,238,1,231,171,239,239,171,240,107,128,112,73,112,94,113,110,114,114,115,130,116,6,241,12,241,171,201,242,171,228,243,171,229,244,171,230,228,171,225,229,171,226,234,171,227,2,233,171,210,237,171,211,250,171,212,16,239,171,213,2,245,171,215,246,171,216,247,171,217,4,228,171,219,230,171,220,231,171,221,234,171,222,247,171,223,107,72,108,88,109,104,110,114,111,3,230,171,206,231,171,207,235,171,208,241,171,209,2,236,171,194,242,171,195,244,171,196,2,230,171,198,248,171,199,249,171,200,1,232,171,201,249,171,202,16,232,171,204,101,70,101,94,102,116,103,120,104,136,105,6,235,12,235,171,189,237,171,190,239,171,191,246,171,192,226,163,180,230,171,187,231,171,188,3,228,171,172,237,171,173,239,171,174,244,171,175,16,233,171,176,2,227,171,179,239,171,180,245,171,181,2,236,171,183,241,171,184,242,171,185,97,68,98,90,99,134,100,3,228,171,167,231,171,168,232,171,169,245,171,170,3,234,171,154,236,171,155,238,171,156,241,171,157,6,231,12,231,171,161,239,171,162,247,171,163,250,171,164,227,171,158,228,171,159,230,171,160,1,233,171,165,249,171,166,15,115,98,231,44,231,66,235,171,252,242,173,91,250,1,42,134,65,18,114,97,226,173,237,1,42,46,67,18,121,114,236,171,249,2,42,171,248,75,42,77,16,206,171,250,16,218,171,249,115,96,116,100,118,110,122,16,238,1,42,46,65,18,114,97,226,173,237,2,42,173,7,65,42,67,16,206,173,238,16,198,173,237,16,225,173,233,1,232,165,77,242,173,234,1,232,173,235,236,173,236,109,50,109,62,110,66,111,112,114,2,233,173,230,244,173,231,247,173,232,16,226,171,254,1,242,38,248,173,228,1,42,46,68,18,101,118,225,173,227,1,42,173,226,78,16,208,173,227,16,235,173,229,98,50,100,54,103,64,108,16,233,171,253,16,245,171,245,1,233,171,246,237,171,247,16,225,171,251,112,195,172,112,166,6,113,166,238,114,166,251,115,0,40,120,140,236,57,242,41,245,9,245,171,136,246,171,142,247,171,143,242,44,243,171,129,244,171,133,34,3,42,171,58,77,164,204,82,42,84,16,210,171,62,1,207,171,61,213,171,59,236,171,97,237,171,102,238,171,110,239,171,117,241,111,228,49,228,56,229,171,73,231,171,78,233,171,87,235,171,93,3,42,54,68,68,75,76,83,18,105,110,228,171,70,1,42,171,67,73,16,206,171,68,18,101,118,225,171,68,18,104,111,234,171,69,120,52,121,62,122,72,225,171,46,227,171,57,1,238,171,149,247,171,150,1,236,171,151,242,165,16,16,236,171,152,108,181,114,79,114,88,115,116,116,132,117,142,119,5,232,9,232,171,143,240,171,147,246,171,148,226,171,144,227,171,145,231,171,146,4,226,171,126,227,171,57,238,171,127,242,171,128,248,165,246,2,228,171,130,231,171,131,249,171,132,1,235,171,134,241,171,135,4,225,171,137,229,171,138,235,171,139,242,171,140,243,171,141,108,74,109,102,110,146,111,162,75,112,3,228,171,123,236,171,124,243,171,125,249,167,121,4,228,171,98,233,171,99,236,171,100,239,171,93,249,171,101,6,238,12,238,171,106,240,171,107,241,171,108,243,171,109,225,171,103,228,171,104,234,171,105,5,240,9,240,171,114,248,171,115,249,171,116,226,171,111,227,171,112,235,171,113,4,231,171,118,235,171,119,241,171,120,245,171,121,249,171,122,103,62,103,66,104,88,105,110,106,132,107,2,227,171,94,242,171,95,243,171,96,3,225,171,79,243,171,80,247,171,81,250,171,82,3,233,171,83,235,171,84,238,171,85,245,171,86,3,228,171,88,231,171,89,236,171,90,237,171,91,16,242,171,92,97,74,98,118,99,134,100,162,104,101,3,230,171,74,232,171,75,233,171,76,243,171,77,6,243,12,243,171,50,244,171,51,246,171,52,250,171,53,230,171,47,232,171,48,241,171,49,2,225,171,54,229,171,55,240,171,56,5,238,9,238,171,65,239,171,66,242,167,4,227,44,235,171,63,236,171,64,34,5,82,17,82,46,83,50,84,16,210,171,62,16,207,171,61,16,213,171,59,42,171,58,49,42,77,16,197,171,60,17,55,178,171,59,1,227,171,71,232,171,72,0,23,111,90,117,43,236,9,236,169,248,243,169,232,244,171,6,117,76,119,80,225,1,42,46,65,18,114,97,226,169,224,1,42,169,223,80,16,203,169,224,16,245,171,8,16,225,171,9,114,23,114,46,115,62,116,16,240,171,7,2,225,171,2,228,171,3,231,171,4,16,243,171,5,111,46,112,50,113,16,237,171,1,16,238,169,254,1,225,169,255,239,171,0,104,60,108,29,108,64,109,74,110,3,226,167,210,231,169,251,238,169,252,244,169,253,1,225,169,249,244,169,53,16,243,169,250,104,52,105,62,107,1,225,169,246,239,169,247,1,236,169,241,238,169,242,2,236,169,243,240,169,244,243,169,245,100,32,100,46,101,56,102,16,236,169,240,1,227,169,235,244,169,236,4,228,169,237,239,169,238,242,165,116,243,165,116,248,169,239,97,52,98,100,99,1,228,169,233,237,169,234,4,231,169,225,236,50,237,169,228,240,169,229,245,169,230,1,42,169,226,80,18,104,108,240,169,227,1,233,169,231,245,169,232,1,117,38,245,171,10,2,227,171,11,231,171,12,250,171,10,0,20,111,69,121,23,239,9,239,169,81,245,171,39,247,171,42,121,44,237,171,26,238,171,31,16,245,171,45,111,60,114,76,116,80,117,84,119,1,235,171,43,239,171,44,2,226,171,34,230,171,35,239,171,36,16,239,171,37,16,237,171,38,2,229,171,40,231,171,41,237,169,81,105,52,105,60,106,86,107,90,109,94,110,1,225,171,32,231,171,33,1,225,171,21,230,34,1,42,171,22,78,16,204,171,23,16,243,171,24,16,244,171,25,3,230,171,27,239,171,28,244,171,29,245,171,30,97,54,99,70,101,74,103,90,104,16,231,171,20,2,233,171,13,234,169,102,239,171,14,16,230,171,15,2,234,171,16,236,171,17,243,171,18,16,238,171,19,109,162,116,110,166,81,111,14,116,46,234,12,234,169,205,237,165,165,242,169,214,243,169,217,116,62,117,72,122,76,227,34,1,42,169,202,69,16,211,169,203,1,225,169,219,235,169,220,16,233,169,221,16,237,169,222,110,35,110,50,112,66,114,70,115,16,225,169,218,2,231,169,210,238,169,211,243,169,212,16,237,169,213,2,239,169,215,245,169,216,249,169,214,103,58,106,62,107,2,225,169,207,242,169,208,246,169,209,16,227,169,204,1,231,169,205,243,169,206,0,34,116,159,233,38,239,15,239,169,81,242,169,92,243,164,136,244,169,96,249,163,209,233,169,18,235,169,12,236,169,70,238,1,42,186,211,77,18,111,110,231,165,67,120,61,120,52,121,62,122,100,231,169,53,232,169,59,1,227,169,111,237,169,112,5,247,9,247,169,116,248,169,117,250,169,118,235,169,113,237,169,114,246,169,115,5,240,9,240,169,122,247,169,123,250,169,124,235,169,119,237,169,120,238,169,121,116,68,117,90,118,112,119,3,235,169,108,242,165,58,246,169,109,247,169,110,3,227,169,97,230,169,98,233,169,99,242,169,100,3,225,169,101,240,169,102,242,169,103,243,169,104,2,225,169,105,238,169,106,249,169,107,105,123,110,68,110,66,111,94,112,122,113,144,114,2,228,169,93,234,169,94,239,169,95,4,225,169,77,230,169,78,233,169,79,235,182,41,247,169,80,4,225,169,82,229,169,83,232,169,84,243,169,85,248,169,86,3,240,169,87,243,169,88,244,169,89,248,169,90,16,236,169,91,105,62,107,84,108,106,109,2,239,169,74,245,169,75,248,169,76,3,227,169,62,230,169,63,238,169,64,247,169,65,3,233,169,66,236,169,67,240,169,68,247,169,69,2,229,169,71,240,169,72,243,169,73,101,73,101,62,102,106,103,134,104,2,233,169,60,236,169,61,242,165,2,6,238,12,238,169,44,242,169,45,244,169,46,245,169,47,228,169,41,229,169,42,235,169,43,4,225,169,48,229,169,49,238,169,50,239,169,51,241,169,52,4,232,169,54,236,169,55,239,169,56,240,169,57,249,169,58,97,94,98,162,80,99,162,93,100,6,232,12,232,169,37,234,169,38,242,169,39,248,169,40,225,169,34,229,169,35,230,169,36,11,238,29,247,18,247,169,20,249,38,250,169,23,34,1,42,169,21,67,16,195,169,22,238,180,74,239,169,18,243,169,19,231,9,231,169,15,233,169,16,235,169,17,227,169,12,228,169,13,230,169,14,4,232,169,24,239,169,25,241,169,26,245,169,27,247,169,28,4,233,169,29,240,169,30,241,169,31,242,169,32,245,169,33,0,33,116,95,228,29,238,15,238,169,167,239,169,173,242,169,180,246,169,194,249,169,198,228,169,140,229,169,143,231,169,148,236,165,79,121,21,121,48,122,58,225,169,125,226,169,133,1,237,169,199,238,169,200,16,233,169,201,116,56,117,66,119,94,120,1,241,169,196,242,169,197,1,237,169,187,242,169,188,4,233,169,189,240,169,190,243,169,191,246,169,192,248,169,193,16,226,169,195,106,96,111,53,111,78,112,106,113,110,114,114,115,4,235,169,182,238,169,183,239,169,184,243,169,185,244,169,186,4,228,169,174,229,169,175,238,169,176,240,169,177,245,169,178,16,233,169,143,16,239,169,179,16,226,169,181,106,74,107,78,109,88,110,4,230,169,168,232,169,169,235,169,170,237,169,171,240,169,172,16,239,169,162,1,231,169,163,239,169,164,1,231,169,165,250,169,166,102,55,102,90,103,94,104,110,105,6,238,12,238,169,158,245,169,159,249,169,160,250,169,161,230,169,155,233,169,156,234,169,157,16,242,169,147,2,225,169,149,226,169,150,236,169,151,2,226,169,152,229,169,153,247,169,154,97,62,99,106,100,144,101,2,226,169,144,247,169,145,248,169,146,6,238,12,238,169,129,240,169,130,241,169,131,243,169,132,227,169,126,230,169,127,235,169,128,5,232,9,232,169,137,239,169,138,245,169,139,225,169,134,229,169,135,230,169,136,1,227,169,141,243,169,142,102,199,105,105,196,159,105,164,27,106,164,198,107,166,19,108,0,27,116,74,231,23,239,12,239,167,250,244,169,2,245,169,4,246,169,8,231,167,227,233,167,229,238,167,247,119,21,119,48,122,52,225,167,206,226,167,213,16,236,169,9,1,232,169,10,250,169,11,116,46,117,50,118,16,243,169,8,16,231,169,3,3,225,169,5,239,169,6,249,163,216,250,169,7,106,74,109,49,109,50,110,66,111,76,114,16,227,169,1,2,238,167,244,239,167,245,240,167,246,1,243,167,248,245,167,249,5,242,9,242,167,254,243,167,255,250,169,0,234,167,251,235,167,252,236,167,253,106,52,107,56,108,1,229,167,242,238,167,243,16,240,167,239,1,233,167,240,244,167,241,100,77,100,118,101,122,103,162,66,105,7,232,12,232,167,235,234,167,236,236,167,237,243,167,238,225,167,230,228,167,231,230,38,231,167,234,1,42,167,232,76,18,105,109,226,167,233,16,226,167,219,6,240,12,240,167,223,241,167,224,245,167,225,250,167,226,228,167,220,229,167,221,237,167,222,16,231,167,228,97,52,98,90,99,1,237,167,217,240,167,218,5,232,9,232,167,210,234,167,211,243,167,212,226,167,207,228,167,208,231,167,209,2,229,167,214,245,167,215,247,167,216,0,25,119,57,235,23,243,12,243,167,18,244,167,41,245,167,30,247,167,42,235,165,107,238,167,36,239,167,38,228,9,228,167,20,231,167,25,233,167,28,119,42,122,52,225,167,12,1,237,167,43,243,167,44,1,232,167,45,233,167,46,106,51,109,23,109,50,110,54,111,58,114,16,233,167,40,16,239,167,35,16,232,167,37,16,245,167,39,106,46,107,50,108,16,239,167,34,16,234,167,29,3,229,167,30,235,167,31,247,167,32,248,167,33,100,26,100,52,102,68,103,1,226,167,26,229,167,27,2,228,167,21,233,167,22,245,167,23,16,229,167,24,97,58,98,68,99,2,225,167,17,229,167,18,232,167,19,1,238,167,13,242,167,14,2,225,163,169,226,167,15,249,167,16,11,114,26,233,9,233,167,55,246,167,61,247,167,62,114,42,117,46,225,167,47,16,225,167,59,16,244,167,60,103,23,103,52,105,62,109,1,227,167,57,236,167,58,1,235,167,50,239,167,54,16,226,167,56,97,46,98,62,101,16,238,167,53,2,226,167,48,237,167,49,242,167,50,1,239,167,51,245,167,52,0,40,117,192,240,235,116,242,63,246,40,246,167,150,247,167,184,249,2,42,50,65,76,76,18,97,116,238,167,199,2,42,167,197,67,42,84,16,210,167,199,16,206,167,198,18,114,97,226,167,198,242,167,137,243,167,162,245,2,42,164,103,65,164,109,89,18,101,122,233,167,132,235,56,236,167,120,237,167,125,238,167,136,239,167,141,1,42,46,65,18,114,97,226,167,115,4,42,167,113,65,50,67,54,73,58,77,16,206,167,117,16,198,167,114,16,206,167,115,16,210,167,116,122,27,122,56,225,165,180,231,167,92,233,167,104,234,167,108,3,232,167,202,234,167,203,242,167,204,244,167,205,117,60,118,110,119,126,120,148,121,1,229,167,200,248,167,201,7,237,12,237,167,177,238,167,178,240,167,179,243,167,180,226,167,173,228,167,174,229,167,175,234,167,176,2,231,167,181,242,167,182,248,167,183,3,234,167,185,235,167,186,239,167,187,241,167,188,7,237,12,237,167,193,240,167,194,247,167,195,250,167,196,225,167,189,227,167,190,229,167,191,236,167,192,107,192,213,112,99,112,74,113,112,114,134,115,162,69,116,3,226,167,169,237,167,170,239,167,171,242,167,172,5,242,9,242,167,149,246,167,150,248,167,151,229,167,146,230,167,147,239,167,148,3,226,167,152,230,167,153,243,167,154,249,167,155,5,236,9,236,167,159,243,167,160,245,167,161,227,167,156,233,167,157,234,167,158,5,232,9,232,167,166,234,167,167,242,167,168,226,167,163,228,167,164,230,167,165,107,80,108,90,109,112,110,162,87,111,4,233,167,142,235,167,139,236,167,143,243,167,144,250,167,145,1,227,167,118,234,167,119,3,238,167,121,241,167,122,244,167,123,248,167,124,6,242,38,242,50,243,167,133,245,167,134,247,167,135,2,42,50,65,64,89,18,101,122,233,167,132,1,42,167,129,76,16,194,167,130,18,114,97,226,167,131,226,167,126,232,167,127,239,167,128,4,227,167,137,230,167,138,231,167,92,238,167,139,240,167,140,102,82,102,72,103,88,104,104,105,160,106,3,228,167,109,231,167,110,243,167,111,249,167,112,2,239,167,89,242,167,90,249,167,91,2,229,167,93,230,167,94,240,167,95,8,241,15,241,167,99,243,167,100,244,167,101,247,167,102,250,167,103,225,167,96,226,167,97,235,172,149,238,167,98,2,234,167,105,245,167,106,247,167,107,97,70,98,126,99,162,65,100,162,75,101,2,225,167,86,238,167,87,250,167,88,8,233,15,233,167,67,234,167,68,237,167,69,239,167,70,247,167,71,225,167,63,226,167,64,227,167,65,228,167,66,5,241,9,241,167,75,248,167,76,249,167,77,228,167,72,237,167,73,240,167,74,3,231,167,78,235,167,79,236,167,80,244,167,81,3,229,167,82,232,167,83,236,167,84,244,167,85,102,162,194,103,164,119,104,0,19,117,70,242,15,242,167,4,244,167,7,245,167,8,249,163,67,250,167,11,117,52,225,62,229,165,237,233,98,239,167,0,1,233,167,9,242,167,10,34,3,42,165,227,55,46,67,52,83,16,196,165,228,17,51,182,165,228,16,205,165,229,1,42,165,239,76,18,97,116,238,165,240,108,56,108,60,109,70,110,80,111,108,115,1,226,167,5,238,167,6,1,225,165,247,245,165,248,1,228,165,249,244,165,250,4,228,165,251,229,165,252,234,165,253,238,165,254,239,165,255,2,227,167,1,234,167,2,244,167,3,97,88,98,116,100,120,104,124,105,5,232,9,232,165,244,236,165,245,237,165,246,225,165,241,230,165,242,231,165,243,4,231,165,230,235,165,231,237,165,232,247,165,233,250,165,234,16,226,165,235,16,249,165,236,16,249,165,238,0,17,117,83,233,15,233,165,126,234,165,130,239,165,133,242,165,139,249,165,154,117,66,118,148,225,165,116,230,1,42,165,122,65,18,100,108,237,165,123,9,232,15,232,165,148,241,165,149,242,165,150,246,165,151,249,165,152,226,165,144,227,50,228,165,145,229,165,146,230,165,147,1,42,165,122,65,18,100,108,237,165,123,16,242,165,153,109,47,109,78,111,82,112,98,113,102,114,4,227,165,140,229,165,139,240,165,141,242,165,142,243,165,143,16,240,165,132,2,228,165,134,238,165,135,242,165,136,16,229,165,137,16,243,165,138,97,50,102,86,105,96,108,16,242,165,131,5,233,8,233,165,120,238,165,121,244,105,225,165,117,226,165,118,231,165,119,1,233,165,124,237,165,125,2,225,165,127,236,165,128,244,165,129,0,26,110,159,121,29,236,12,236,165,192,238,165,196,245,165,212,246,165,220,121,44,225,165,155,228,165,173,1,225,165,166,233,165,226,115,58,115,62,117,66,118,116,119,2,227,165,223,233,165,224,244,165,225,16,247,165,211,7,242,12,242,165,216,247,165,217,248,165,218,250,165,219,226,165,213,227,165,214,228,165,215,231,165,196,2,230,165,221,242,165,183,243,165,222,110,90,111,106,114,4,226,165,169,227,50,229,165,94,244,165,209,247,165,210,1,42,165,207,76,18,105,110,226,165,208,2,228,165,197,231,165,198,239,165,199,7,238,12,238,165,199,242,165,204,243,165,205,244,165,206,228,165,200,230,165,201,233,165,202,237,165,203,103,60,106,35,106,56,107,72,108,82,109,1,237,165,194,246,165,195,2,235,165,187,238,165,188,245,165,189,1,238,165,190,240,165,191,16,235,165,193,103,52,104,62,105,1,236,165,185,237,165,186,1,238,165,183,239,165,106,16,243,165,184,100,40,100,46,101,62,102,16,235,165,182,2,229,165,174,238,165,175,242,165,176,5,239,9,239,165,180,242,165,48,250,165,181,226,165,177,234,165,178,236,165,179,97,46,98,108,99,16,242,165,172,9,237,15,237,165,161,238,165,162,247,165,163,249,165,164,250,165,165,225,165,156,230,165,157,231,165,158,232,165,159,234,165,160,5,239,9,239,165,169,249,165,170,250,165,171,225,165,166,230,165,167,237,165,168,99,194,244,99,162,163,100,164,250,101,0,18,119,51,238,25,238,56,239,165,103,243,165,105,244,165,92,245,163,103,1,42,165,99,83,18,104,97,247,165,100,119,52,120,56,122,60,229,165,87,236,165,94,16,239,165,113,16,244,165,114,16,225,165,115,109,70,109,72,110,122,114,132,115,136,116,3,242,165,109,244,165,110,245,165,111,248,165,112,2,225,165,95,233,165,96,235,1,42,46,78,18,107,111,239,165,98,1,42,165,97,71,16,206,165,98,1,238,165,101,241,165,102,16,233,165,104,2,231,165,106,235,165,107,245,165,108,98,62,102,66,103,70,107,2,225,165,91,235,165,92,249,165,93,16,245,165,86,16,233,165,88,1,236,165,89,249,165,90,0,27,114,87,232,33,243,22,243,165,28,245,44,246,165,34,249,165,35,1,42,165,32,71,18,108,97,231,165,33,232,163,238,239,165,19,242,165,22,119,18,119,48,122,52,225,163,228,229,163,234,16,228,165,22,16,229,165,28,114,46,115,74,116,16,228,165,31,4,231,165,23,232,165,24,235,165,25,236,165,26,243,165,27,1,226,165,29,247,165,30,105,85,108,51,108,50,109,66,111,114,112,16,243,165,21,2,225,165,14,227,165,15,228,165,16,2,229,165,17,231,165,18,238,2,42,162,99,66,162,174,72,17,97,110,1,226,165,0,244,163,251,16,240,165,20,105,64,106,68,107,3,226,165,10,236,165,11,239,165,12,249,165,13,16,227,165,6,2,225,165,7,237,165,8,246,165,9,101,143,101,162,128,102,162,129,103,162,130,104,5,239,9,239,165,3,240,165,4,242,165,5,233,44,235,165,1,237,165,2,2,42,60,66,162,89,72,17,97,110,1,226,165,0,244,163,251,11,77,45,84,23,84,46,85,56,86,16,196,163,254,1,200,163,250,215,163,251,1,203,163,252,211,163,253,77,180,193,80,42,83,16,210,163,249,2,198,163,246,200,163,247,218,163,248,71,14,71,48,72,180,165,73,16,196,163,244,16,198,163,242,42,163,239,65,42,66,16,206,163,241,16,213,163,240,18,111,112,239,163,255,16,226,163,235,16,225,163,236,16,231,163,237,97,52,98,62,99,1,232,163,232,240,163,233,1,228,163,229,238,163,230,16,234,163,231,0,23,114,111,121,28,229,8,229,165,48,246,165,80,250,69,121,42,122,52,225,165,36,1,239,165,83,245,165,84,16,231,165,85,117,29,117,46,118,74,119,16,247,165,82,4,225,165,75,227,165,76,228,165,77,231,165,78,244,165,79,16,225,165,81,114,64,115,116,116,3,237,165,71,240,165,72,243,165,73,249,165,74,2,232,44,233,165,68,243,165,69,1,42,46,77,18,111,110,231,165,67,1,42,165,66,67,16,206,165,67,16,226,165,70,104,45,109,23,109,170,208,110,60,111,3,226,165,63,233,165,55,240,165,64,247,165,65,16,234,165,38,104,46,105,50,106,16,229,165,61,16,228,165,58,1,225,165,59,241,165,60,100,40,100,86,101,90,103,6,236,12,236,165,54,239,165,55,242,165,56,250,165,57,225,165,51,232,165,52,233,165,53,16,238,165,47,1,228,165,49,238,165,50,97,46,98,90,99,16,227,165,46,6,232,12,232,165,40,235,165,41,242,165,42,246,165,43,228,165,37,230,165,38,231,165,39,1,228,165,44,241,165,45,42,166,0,97,190,213,98,0,35,115,165,229,29,237,15,237,163,171,238,163,176,239,163,180,242,163,189,243,163,194,229,163,125,231,163,138,232,163,142,233,163,148,119,65,119,50,120,60,121,76,122,114,225,163,99,1,228,163,213,242,163,214,2,232,163,215,235,163,216,242,163,202,5,243,9,243,163,220,246,163,221,248,163,222,229,163,217,238,163,218,242,163,219,4,225,163,223,229,163,224,230,163,225,232,163,226,247,163,227,115,50,116,72,117,88,118,16,226,163,212,3,234,163,195,241,163,196,243,163,197,244,163,198,2,239,163,199,244,163,200,246,163,201,9,237,15,237,163,207,239,163,208,242,163,209,243,163,210,245,163,211,225,163,202,227,163,203,228,163,204,231,163,205,235,163,206,106,134,110,59,110,72,111,88,112,104,113,108,114,3,225,163,190,232,163,191,248,163,192,250,163,193,2,231,163,177,237,163,178,240,163,179,2,234,163,181,237,163,182,238,163,183,16,249,163,184,3,227,163,185,233,163,186,240,163,187,246,163,188,106,68,107,118,108,146,109,3,232,163,172,235,163,173,241,163,174,245,163,175,7,239,12,239,163,159,242,163,160,244,163,161,250,163,162,232,163,155,233,163,156,234,163,157,238,163,158,4,227,163,163,237,163,164,241,163,165,245,163,166,246,163,167,2,225,163,168,231,163,169,244,163,170,101,106,101,98,102,148,103,162,68,104,162,75,105,6,237,12,237,163,151,238,163,152,239,163,153,241,163,154,226,163,149,231,163,150,235,163,118,7,244,12,244,163,130,247,163,131,248,163,132,250,163,133,230,163,126,232,163,127,234,163,128,237,163,129,3,228,163,134,241,163,135,244,163,136,249,163,137,2,227,163,139,238,163,140,248,163,141,5,236,9,236,163,146,239,163,142,249,163,147,226,163,143,231,163,144,233,163,145,97,50,98,100,99,144,100,16,228,163,124,7,242,12,242,163,104,243,163,105,246,163,106,248,163,107,236,163,100,238,163,101,240,163,102,241,163,103,6,228,12,228,163,111,234,163,112,240,163,113,242,163,114,225,163,108,226,163,109,227,163,110,9,237,15,237,163,119,238,163,120,239,163,121,241,163,122,245,163,123,227,163,100,230,163,115,232,163,116,233,163,117,236,163,118,0,24,77,194,138,84,192,225,87,54,87,54,88,78,89,100,90,18,97,110,226,173,225,1,97,44,99,17,104,239,169,172,17,114,225,173,224,1,112,42,115,17,117,248,107,17,101,239,169,238,1,101,44,105,17,105,233,167,28,17,122,233,167,132,84,68,85,162,158,86,1,97,44,105,17,116,232,173,223,17,105,233,173,222,7,104,78,104,54,105,134,110,162,66,111,17,116,239,171,240,16,97,1,225,88,233,4,42,171,182,67,50,75,54,76,58,84,16,200,171,182,16,206,167,218,16,200,173,219,16,193,173,220,1,42,165,80,77,16,214,165,80,1,98,42,114,16,232,173,221,16,244,1,42,163,180,66,16,212,69,17,115,225,169,186,97,52,101,128,102,134,103,17,108,231,173,218,5,109,17,109,46,110,50,118,16,244,163,170,16,236,171,153,16,231,171,239,103,52,107,56,108,1,229,171,167,245,167,97,16,226,173,215,16,242,173,216,17,108,245,171,171,17,110,231,173,217,18,103,97,242,171,251,80,192,196,80,162,114,82,162,169,83,6,105,67,105,66,111,106,117,144,121,1,108,42,114,16,227,165,16,16,239,173,214,1,100,62,110,1,228,171,70,232,1,42,171,87,76,16,203,171,87,16,228,173,211,2,103,46,114,56,121,16,239,165,18,1,228,171,118,239,173,212,16,225,171,126,17,110,228,173,213,97,62,103,94,104,1,97,42,114,16,228,173,210,16,247,165,100,2,109,46,114,50,117,16,242,171,53,16,242,171,107,16,226,173,209,17,110,247,163,76,4,97,56,101,76,104,82,108,120,114,17,116,233,173,207,1,108,42,117,16,227,165,31,16,237,163,65,17,114,237,173,205,2,97,46,108,50,110,16,248,169,242,16,231,173,206,1,233,169,226,240,169,227,17,114,228,165,249,2,106,48,111,54,117,17,110,242,169,176,17,110,231,173,208,17,104,231,171,20,77,138,78,162,171,79,4,103,56,108,62,114,68,115,88,117,17,103,242,169,221,17,97,237,171,79,17,99,235,171,51,1,107,42,121,16,225,169,214,16,232,169,220,1,103,42,109,16,225,173,204,16,229,169,218,7,114,46,114,90,116,96,117,102,121,17,109,242,3,42,163,209,73,46,77,50,84,16,200,173,198,16,206,167,101,16,205,163,209,17,111,239,169,95,17,101,233,173,196,17,108,244,173,197,97,66,101,116,108,154,111,1,100,42,110,16,231,165,67,16,233,173,195,3,104,50,107,54,110,58,114,16,227,173,191,16,234,173,188,16,225,173,189,1,228,169,118,233,173,190,2,100,52,110,56,114,1,227,173,193,239,173,194,16,230,165,62,16,228,173,192,17,121,237,169,70,4,97,56,98,88,101,92,107,98,115,17,104,245,173,203,2,103,46,110,50,114,16,226,173,201,16,237,173,199,16,228,173,200,17,97,244,161,17,119,225,173,202,17,111,239,165,98,71,196,17,74,195,53,74,166,192,75,166,217,76,3,97,70,101,166,156,105,166,158,121,1,99,42,100,16,233,173,187,16,233,173,186,2,110,166,121,111,166,122,116,16,238,0,26,75,193,57,84,91,87,20,87,172,115,88,172,119,89,48,90,1,193,173,3,215,171,110,16,212,173,119,84,64,85,130,86,3,193,173,114,197,173,116,206,173,115,213,163,148,11,206,20,214,9,214,171,235,215,171,216,218,171,143,206,173,184,207,171,205,210,171,214,203,197,215,203,171,194,204,173,110,205,171,193,4,193,173,185,199,173,112,211,165,99,217,173,113,218,173,7,78,130,78,138,80,162,74,82,162,109,83,12,206,23,212,12,212,173,104,213,167,159,214,173,105,217,173,183,206,173,102,207,171,117,210,173,103,202,9,202,173,100,203,171,93,205,173,101,195,173,99,197,171,142,201,171,97,6,199,12,199,171,255,201,173,86,204,165,79,207,169,133,193,173,83,195,173,84,197,173,85,10,204,20,212,9,212,173,95,215,169,230,217,165,196,204,169,248,205,173,92,210,173,93,193,173,88,197,173,89,198,173,90,199,171,210,200,165,128,3,197,173,98,207,169,81,213,167,159,215,171,42,75,158,76,162,67,77,0,16,205,29,212,15,212,169,96,213,169,49,216,173,1,217,169,21,218,173,82,205,167,65,207,173,181,209,173,80,210,173,182,198,12,198,173,79,199,169,53,203,173,180,204,163,171,193,173,179,195,173,77,196,173,78,197,171,60,1,197,173,66,205,173,178,4,201,173,72,211,173,73,212,169,2,213,173,74,214,169,8,67,192,194,70,100,70,86,71,102,72,162,77,73,5,210,9,210,173,177,211,167,18,212,167,41,195,173,63,196,167,20,197,173,51,2,201,165,126,207,165,133,210,165,139,12,206,23,211,12,211,173,58,212,173,59,213,173,6,215,173,60,206,173,55,208,173,56,209,173,57,198,8,198,173,54,200,105,204,167,120,193,173,53,194,173,9,197,173,176,4,205,173,61,206,173,62,210,167,4,212,167,7,213,167,8,67,82,68,162,66,69,5,211,9,211,165,105,212,173,170,218,173,52,193,173,47,195,173,48,197,165,92,15,207,26,214,12,214,173,42,215,173,11,217,173,174,218,165,28,207,173,39,208,173,40,210,173,41,213,173,4,201,198,143,201,173,36,204,173,37,205,173,38,206,173,173,5,203,9,203,165,36,207,173,45,218,173,175,197,165,48,199,173,97,202,173,44,52,94,52,174,138,65,120,66,11,206,20,210,9,210,171,6,213,167,65,214,173,32,206,173,29,207,173,30,209,173,31,201,9,201,171,31,202,173,27,204,173,28,193,163,194,197,173,24,198,173,25,12,210,23,213,12,213,173,0,215,173,22,216,173,23,218,163,95,210,173,19,211,173,20,212,173,21,205,9,205,173,172,207,173,17,209,173,18,196,173,14,198,173,171,204,111,42,165,99,49,44,50,17,51,176,173,170,17,55,178,167,159,16,225,169,174,16,239,1,42,167,250,76,16,193,167,250,17,112,227,167,223,2,109,46,110,50,115,16,245,167,238,16,226,167,233,1,225,167,207,226,165,208,1,97,58,112,17,97,238,1,42,167,47,74,16,208,167,47,1,109,42,118,16,225,173,166,16,239,173,165,5,110,30,110,48,111,54,116,17,104,233,173,169,17,100,225,167,136,17,114,229,1,42,167,141,75,1,208,173,68,210,167,141,97,48,104,80,105,17,116,243,173,168,2,108,46,110,50,119,16,233,167,71,16,233,165,93,16,225,173,167,2,97,46,109,50,111,16,234,171,69,16,242,171,2,16,242,1,42,167,125,75,16,200,167,125,71,52,72,162,92,73,18,116,97,236,165,110,4,101,70,108,90,111,96,114,122,117,1,106,42,114,16,245,169,223,16,242,165,212,17,111,242,1,42,165,180,71,16,197,165,180,17,97,231,165,33,1,110,42,116,16,232,165,206,1,231,173,153,237,165,106,1,97,80,101,16,235,3,42,165,94,67,46,71,50,84,16,210,163,141,16,217,173,43,16,210,165,94,16,238,173,154,5,108,24,108,48,109,54,117,17,110,231,173,164,17,117,247,165,248,16,110,1,231,173,163,240,165,253,97,48,101,156,105,17,114,225,173,162,16,110,5,239,42,239,173,157,243,88,244,4,42,163,251,67,50,72,54,77,58,84,16,215,163,251,16,193,173,158,16,203,163,243,16,207,163,245,1,42,163,239,67,16,206,163,239,226,165,0,231,173,155,233,173,156,17,98,242,3,42,165,237,73,52,83,56,85,1,193,173,160,211,173,161,16,204,165,237,16,197,173,159,67,193,20,67,112,68,162,205,69,2,103,64,108,70,116,17,104,233,1,42,119,69,1,210,173,50,212,119,17,121,240,165,90,1,98,42,121,16,237,173,152,16,225,173,151,4,97,162,104,104,162,119,111,162,134,112,162,136,121,17,114,236,10,77,51,84,20,84,46,85,56,88,16,203,173,144,1,202,171,177,210,173,143,16,193,171,252,77,46,82,62,83,16,203,173,142,2,196,173,140,203,169,12,206,165,66,2,207,173,141,211,171,58,213,171,39,42,171,39,65,56,66,60,71,76,75,1,199,167,197,218,173,70,16,204,173,137,2,193,173,138,199,163,138,217,163,125,1,197,45,210,173,139,2,107,46,110,50,114,16,233,173,134,16,237,163,233,16,243,167,30,2,97,46,101,50,114,16,243,173,135,16,237,165,8,16,242,165,5,17,112,244,165,20,1,109,42,114,16,244,165,207,16,238,1,42,173,136,67,16,217,173,136,3,101,52,105,134,111,140,117,17,112,236,173,150,17,118,225,6,73,23,73,50,77,54,78,58,80,16,203,163,201,16,206,165,239,16,213,173,147,16,208,169,143,42,165,239,66,42,70,16,202,173,146,16,212,173,145,17,97,235,173,148,17,103,242,173,149,42,162,84,65,170,49,66,5,111,31,111,62,114,68,117,1,103,42,104,16,228,173,133,16,233,173,132,17,112,239,163,255,16,97,1,232,169,246,233,173,131,97,48,101,92,104,17,107,243,173,130,3,108,50,109,54,115,58,116,16,235,173,129,16,233,173,128,16,245,163,107,16,243,163,196,17,110,231,1,42,163,176,66,16,196,163,176,0,33,74,193,192,82,192,204,86,56,86,60,87,88,88,98,89,102,90,1,210,173,2,215,171,110,4,193,173,114,196,173,115,197,173,116,206,173,115,213,163,148,1,198,173,117,211,171,102,16,203,173,118,3,196,173,13,197,173,13,212,173,119,213,171,58,82,70,83,108,84,162,87,85,3,193,171,252,199,173,112,217,173,113,218,173,7,5,211,9,211,171,58,213,171,39,215,171,42,197,173,98,200,171,110,207,169,81,14,205,26,212,12,212,173,104,213,171,39,214,173,105,217,173,106,205,173,101,206,173,102,207,171,117,210,173,103,197,12,197,171,142,201,171,97,202,173,100,203,171,93,193,173,8,195,173,99,196,173,12,14,205,26,210,12,210,171,214,214,171,235,215,163,251,218,171,143,205,171,193,206,173,111,207,171,205,208,173,110,200,12,200,171,182,202,171,177,203,171,194,204,173,110,196,173,107,198,173,108,199,173,109,78,100,78,64,79,168,150,80,120,81,2,193,173,96,207,173,97,213,173,51,9,204,15,204,165,79,207,169,133,208,169,143,209,173,18,212,173,8,193,173,83,195,173,84,197,173,85,200,163,148,201,173,86,13,205,23,212,12,212,173,95,215,169,230,217,165,196,218,173,88,205,173,92,210,173,93,211,173,94,199,12,199,171,210,200,165,128,203,173,91,204,169,248,193,173,88,197,173,89,198,173,90,74,162,72,75,162,76,76,162,100,77,0,18,206,32,213,15,213,169,49,214,165,80,216,173,1,217,169,21,218,173,82,206,165,66,207,163,245,209,173,80,210,173,81,212,169,96,198,15,198,173,79,199,169,53,203,169,12,204,163,171,205,163,209,193,173,76,195,173,77,196,173,78,197,171,60,1,207,173,65,208,167,47,7,208,12,208,173,68,210,167,141,215,173,69,218,173,70,197,173,66,199,167,197,200,167,125,205,173,67,8,211,15,211,173,73,212,169,2,213,173,74,214,169,8,217,173,75,193,167,250,194,173,71,201,173,72,203,171,87,65,193,96,69,152,69,106,70,162,65,71,162,78,72,162,117,73,7,209,12,209,173,64,210,165,116,211,167,18,212,167,41,195,173,63,196,167,20,204,165,237,206,165,239,9,210,14,210,173,50,211,165,105,212,119,213,173,51,218,173,52,193,173,47,195,173,48,197,165,92,199,157,200,173,49,4,201,165,126,207,165,133,209,173,18,210,165,139,216,165,139,11,208,20,211,9,211,173,58,212,173,59,215,173,60,208,173,56,209,173,57,210,165,94,200,8,200,105,204,167,120,206,173,55,193,173,53,197,165,180,198,173,54,6,210,12,210,167,4,212,167,7,213,167,8,214,173,25,203,163,243,205,173,61,206,173,62,65,94,66,162,76,67,162,131,68,6,203,12,203,165,36,207,173,45,217,173,27,218,173,46,196,165,48,197,165,48,202,173,44,13,209,23,212,12,212,173,21,215,173,22,216,173,23,218,163,95,209,173,18,210,173,19,211,173,20,204,11,204,111,205,163,67,206,173,11,207,173,17,196,173,14,197,173,15,198,173,16,0,16,204,28,210,14,210,171,6,212,69,213,163,209,214,173,32,217,163,125,204,173,28,206,173,29,207,173,30,209,173,31,199,12,199,163,138,200,173,26,201,171,31,202,173,27,193,163,194,196,163,176,197,173,24,198,173,25,0,16,207,29,213,15,213,173,4,214,173,42,215,173,11,217,173,43,218,165,28,207,173,39,208,173,40,210,173,41,211,171,58,201,12,201,173,36,204,173,37,205,173,38,206,163,239,196,173,2,198,173,33,199,173,34,200,173,35,52,34,52,66,53,72,55,78,56,1,56,42,57,16,176,171,58,16,182,173,13,17,49,185,173,10,17,51,178,173,11,17,51,182,173,12,42,165,99,48,80,49,162,107,50,2,48,46,51,56,56,16,176,165,48,1,176,165,28,178,171,255,16,176,119,5,51,35,51,52,53,74,54,1,177,171,102,178,165,239,3,176,163,239,180,165,239,181,167,20,185,167,41,2,179,173,0,180,173,5,183,173,6,48,52,49,74,50,1,177,165,99,185,173,4,3,178,171,255,179,165,99,181,171,6,185,173,0,6,181,11,181,157,183,173,2,184,173,3,185,165,99,177,171,255,179,173,1,180,171,143,2,52,46,53,62,55,16,178,171,39,2,178,163,239,179,173,7,181,173,8,3,176,171,39,177,171,39,180,173,9,181,165,48,4,100,54,103,60,104,66,114,70,118,17,115,244,75,17,108,237,165,123,17,104,226,171,246,17,111,237,99,1,97,60,109,1,233,159,238,1,42,163,67,65,16,205,163,67,16,226,0,19,76,98,81,49,81,60,83,64,84,80,85,106,89,1,197,173,13,212,171,144,16,193,173,96,2,193,173,8,196,173,12,217,173,106,4,199,147,200,169,48,202,173,126,206,173,111,210,173,127,16,203,173,121,76,60,77,70,78,98,79,102,80,1,203,173,91,211,173,94,1,194,173,71,217,173,75,4,193,173,76,205,173,120,206,167,117,210,173,81,213,173,124,16,199,173,125,16,205,173,87,69,46,69,66,71,74,73,78,74,100,75,2,200,165,7,205,173,67,215,173,69,1,199,157,200,173,49,16,194,173,121,3,196,173,122,206,173,123,209,173,64,210,165,116,16,207,173,65,42,157,65,50,66,60,67,70,68,16,218,173,46,1,197,173,15,198,173,16,1,200,173,26,213,173,120,1,195,169,22,206,171,248,0,33,117,136,230,43,242,33,242,157,243,163,74,246,163,84,249,163,93,250,1,42,46,65,18,114,97,226,163,97,2,42,163,95,73,138,82,16,213,163,98,230,81,235,105,237,119,238,129,122,45,122,44,225,37,226,45,229,75,16,234,1,42,46,65,18,114,97,226,163,97,3,42,163,95,49,46,73,52,83,16,213,163,98,17,55,178,163,98,1,209,163,96,210,163,97,117,56,118,60,119,82,121,1,226,163,94,242,163,93,16,249,163,83,3,236,163,85,238,163,86,244,163,87,245,163,88,3,225,163,89,226,163,90,239,163,91,248,163,92,107,151,111,106,111,68,112,78,114,104,115,162,81,116,2,225,163,80,231,163,81,234,163,82,2,234,139,237,141,250,143,5,242,6,242,151,243,153,250,155,227,145,228,147,229,149,9,239,15,239,163,69,241,163,70,243,163,71,249,163,72,250,163,73,226,157,227,50,232,163,66,237,163,67,238,163,68,2,42,159,78,46,80,18,97,108,237,163,65,18,98,97,244,161,4,225,163,75,229,163,76,231,163,77,239,163,78,244,163,79,107,60,108,62,109,88,110,3,227,131,235,133,238,135,249,137,16,235,107,5,238,6,238,115,243,111,244,117,225,109,226,111,233,113,3,237,121,238,123,239,125,240,127,101,39,101,52,103,58,104,84,106,1,231,101,244,103,1,226,77,249,79,5,237,6,237,89,239,91,241,93,227,83,228,85,231,87,2,225,95,236,97,239,99,97,72,98,82,99,100,100,5,240,6,240,69,249,71,250,73,225,63,229,65,234,67,2,233,39,235,41,245,43,4,233,47,241,49,242,51,244,53,249,55,2,228,57,229,59,232,61,4,0,39,0,55,0,60,0,74,0,170,170,166,29,0,144,117,31,0,144,108,50,0,144,147,25,0,16,4,0,0,0,80,0,0,0,50,0,0,0,4,0,0,0,3,0,0,0,170,170,170,170,141,6,0,0,0,0,8,9,10,0,2,0,0,0,11,0,9,0,2,1,9,0,1,1,10,0,10,0,0,0,0,0,0,0,10,12,0,0,0,1,11,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,11,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,1,0,1,0,0,0,0,14,1,0,0,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,0,2,0,0,1,1,2,1,0,1,2,3,1,1,0,2,1,0,1,1,2,0,1,1,1,1,1,1,1,0,2,2,1,2,0,2,2,2,1,1,2,1,0,1,2,4,0,1,1,0,1,1,1,1,0,1,2,1,1,2,1,0,2,1,0,2,1,2,1,1,1,0,0,0,1,1,0,1,0,0,1,1,0,2,0,2,0,0,0,0,0,0,0,0,0,0,5,1,0,2,0,1,0,1,5,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,2,0,1,0,1,0,0,1,0,0,0,0,0,1,0,0,1,6,0,2,1,2,1,1,1,0,0,2,1,1,0,2,1,1,2,2,3,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,7,0,1,2,0,0,0,1,0,2,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,2,0,1,0,1,0,0,0,0,1,0,2,1,1,1,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,5,0,5,0,1,1,1,2,1,3,0,0,1,1,1,1,7,3,2,5,2,1,1,1,1,2,1,1,1,0,1,0,1,1,1,0,2,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,1,1,3,0,0,1,1,2,1,0,0,0,4,1,1,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,2,0,2,1,1,1,0,2,1,0,1,1,1,0,1,1,1,1,5,1,1,0,1,0,2,0,1,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,3,15,0,0,0,0,4,0,0,0,0,0,2,1,1,0,2,0,2,0,2,0,4,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,154,10,0,0,0,25,110,196,43,116,193,177,119,192,199,119,162,125,120,162,135,121,162,151,122,4,108,56,109,170,155,225,56,232,86,245,17,101,238,93,18,237,109,243,53,17,122,232,72,1,42,133,76,22,97,116,238,72,97,110,243,53,17,122,232,32,2,42,133,72,52,76,22,97,116,238,72,97,110,243,73,17,97,110,1,233,126,244,19,72,97,110,244,32,7,179,10,179,62,180,58,181,54,182,16,182,41,42,43,176,38,177,34,178,5,179,200,184,179,41,180,41,181,41,5,179,200,174,179,41,180,41,181,41,18,72,97,110,1,243,73,244,73,1,117,42,239,17,102,242,93,18,245,122,232,53,1,109,42,232,17,101,238,93,2,237,162,65,246,34,247,17,109,231,53,3,105,50,117,56,233,62,239,17,101,238,93,18,232,121,233,53,18,229,122,232,53,17,101,238,92,1,42,133,72,22,101,98,242,76,97,116,238,53,116,74,117,162,180,118,1,107,44,114,18,239,101,244,53,1,235,34,244,17,109,243,53,14,225,113,235,14,235,162,164,238,162,223,239,162,220,244,17,114,245,93,225,78,229,146,231,170,87,233,17,101,238,92,1,42,133,69,22,116,104,233,76,97,116,238,53,1,101,66,116,16,225,32,1,42,133,76,22,97,116,238,84,97,109,236,73,16,238,92,1,42,133,84,22,97,109,236,76,97,116,238,53,1,101,66,116,16,229,32,1,42,133,76,22,97,116,238,84,101,108,245,73,16,238,92,1,42,133,84,22,101,108,245,76,97,116,238,53,108,28,108,54,109,172,28,117,54,120,18,249,109,231,53,18,232,101,238,93,1,237,162,94,249,18,107,108,238,53,100,50,101,162,230,107,18,231,109,231,53,18,248,109,231,53,5,235,24,235,178,205,242,162,154,250,17,114,245,92,1,42,133,76,22,97,116,238,67,121,114,236,53,114,46,122,52,231,17,122,232,73,18,235,109,243,53,18,243,117,250,53,113,193,103,113,162,178,114,164,79,115,0,18,232,91,241,45,241,48,242,52,244,40,245,168,41,247,17,101,238,93,16,115,1,232,41,242,32,2,42,133,67,52,76,22,97,116,238,67,121,114,236,43,22,121,114,236,76,97,116,238,43,232,54,233,70,235,100,238,34,239,17,101,238,93,2,98,172,56,104,34,115,16,242,41,17,101,238,92,1,42,133,83,22,105,110,232,76,97,116,238,53,17,99,243,73,112,46,112,82,114,88,115,94,225,178,32,228,17,101,238,92,1,42,133,65,22,114,97,226,76,97,116,238,53,18,246,111,242,53,18,239,115,227,53,1,232,176,37,249,17,97,225,41,100,52,103,64,104,72,107,18,231,109,231,53,1,227,34,238,17,115,227,53,19,227,107,108,238,53,18,245,97,242,53,4,117,58,118,144,119,162,100,120,162,109,245,17,101,243,93,12,236,22,243,11,243,42,247,38,248,34,249,17,113,245,53,236,38,240,34,242,17,113,245,53,231,9,231,38,232,34,235,17,113,245,53,226,38,228,34,230,17,113,245,53,13,237,22,240,11,240,42,243,38,247,34,250,17,113,245,53,237,38,238,34,239,17,113,245,53,232,11,232,42,233,38,234,34,236,17,113,245,53,225,38,227,34,229,17,113,245,53,3,225,42,227,38,232,34,243,17,113,245,53,10,239,20,244,9,244,38,245,34,247,17,113,245,53,239,38,240,34,242,17,113,245,53,225,46,227,42,232,38,236,34,238,17,113,245,53,17,113,245,53,3,97,168,23,237,48,238,162,137,247,17,102,242,93,17,100,229,73,110,162,115,111,162,217,112,8,107,81,107,172,29,115,98,225,112,243,142,244,17,112,244,162,128,7,179,196,220,179,170,246,180,38,181,34,182,4,176,41,178,41,180,41,181,41,182,41,1,229,162,213,244,17,112,243,53,17,101,238,92,1,42,133,71,22,117,114,245,76,97,116,238,53,17,101,238,92,1,42,133,65,22,114,97,226,76,97,116,238,53,98,52,99,58,101,64,103,18,225,97,242,53,18,244,112,243,53,18,237,101,238,73,18,236,109,243,53,10,121,70,238,25,238,46,239,56,249,17,101,238,93,16,110,1,226,73,239,73,1,100,124,110,1,226,35,238,73,121,72,226,86,229,17,101,238,92,1,42,133,68,22,101,118,225,76,97,116,238,53,1,228,166,117,238,17,101,238,93,1,100,44,110,1,238,73,239,35,16,225,49,97,168,124,104,52,105,58,108,66,115,18,239,101,238,93,18,228,103,238,53,19,241,107,108,238,53,19,229,108,117,249,53,4,107,84,114,92,227,174,56,237,162,228,242,17,101,238,92,1,42,133,79,22,114,121,225,76,97,116,238,53,19,233,107,108,238,53,2,227,166,205,238,34,243,17,109,243,53,103,195,51,106,194,79,106,162,188,107,164,20,108,164,183,109,0,16,118,105,238,53,238,164,17,242,78,243,116,244,162,161,249,17,101,238,92,1,42,133,77,22,121,109,242,76,97,116,238,53,1,104,166,86,109,16,242,32,1,42,133,76,22,97,116,238,68,101,118,225,73,17,105,228,93,118,118,231,164,79,233,166,17,236,1,101,66,109,16,236,32,1,42,133,76,22,97,116,238,77,108,121,237,73,16,238,92,1,42,133,77,22,108,121,237,76,97,116,238,53,18,230,109,238,53,110,31,110,52,113,58,115,64,117,18,233,109,243,53,18,240,122,232,53,18,231,109,243,53,1,232,172,176,233,17,109,243,53,97,52,101,72,102,78,105,18,238,109,243,53,1,233,42,248,17,109,243,53,17,104,233,73,18,239,109,243,53,2,225,74,226,70,229,17,101,238,93,2,97,46,225,58,246,17,105,228,73,1,235,34,248,17,109,243,53,17,106,225,32,3,42,133,72,56,75,120,76,22,97,116,238,74,112,97,238,43,2,97,54,105,66,114,21,107,244,74,112,97,238,43,21,110,233,74,112,97,238,43,17,114,225,1,72,70,74,18,112,97,238,43,18,97,110,225,1,72,44,74,18,112,97,238,43,18,114,107,244,43,10,235,115,239,54,239,46,245,124,249,17,114,245,93,17,107,239,32,2,42,133,72,70,74,18,97,109,239,1,72,44,75,18,111,114,229,43,18,97,110,231,43,17,97,110,1,231,34,233,19,75,111,114,229,43,17,116,242,93,235,168,200,237,106,238,1,101,66,107,16,238,32,1,42,133,76,22,97,116,238,75,110,100,225,73,16,238,92,1,42,133,75,22,110,100,225,76,97,116,238,53,17,101,238,92,1,42,133,75,22,104,109,242,76,97,116,238,53,114,54,118,60,120,72,225,78,231,17,102,242,93,18,233,101,238,93,1,226,34,242,17,109,243,53,18,228,109,243,53,17,101,238,92,1,42,133,71,22,101,111,242,76,97,116,238,53,14,117,62,226,33,226,78,231,162,157,238,76,239,17,101,238,92,1,42,133,76,22,97,111,239,76,97,116,238,53,17,100,229,41,17,102,242,93,117,50,119,56,122,64,225,17,105,244,73,18,225,102,242,93,19,231,108,117,249,53,18,232,122,232,53,111,42,111,72,114,78,115,92,116,2,231,48,239,34,243,18,108,117,249,53,17,108,246,53,18,250,101,238,93,1,233,34,237,18,108,117,249,53,19,237,108,117,249,53,99,70,105,82,107,2,226,38,239,34,243,18,108,117,249,53,18,108,117,249,53,1,229,34,230,17,109,243,53,18,247,109,243,53,103,106,104,162,129,105,5,228,10,228,168,196,231,52,243,17,101,238,73,100,46,107,54,225,17,101,238,93,19,225,108,117,249,53,18,244,105,245,53,10,117,49,236,30,236,164,14,238,164,11,245,1,103,40,104,16,233,93,16,245,32,1,42,133,76,22,97,116,238,71,117,106,242,73,117,46,225,34,228,17,101,238,73,1,233,34,238,17,103,238,53,97,56,107,76,110,84,111,90,115,18,247,100,229,41,2,225,162,87,238,164,132,248,17,111,237,53,19,240,107,112,229,53,18,247,103,238,53,19,237,107,111,235,53,7,233,52,233,78,242,108,244,168,45,249,17,114,245,92,1,42,133,65,22,114,109,238,67,121,114,236,53,17,104,233,32,1,42,133,76,22,97,116,238,68,101,118,225,73,1,98,40,115,16,232,41,16,243,41,97,50,106,76,115,82,225,17,101,238,93,2,229,48,235,164,38,247,17,101,238,73,17,111,237,53,18,233,109,243,53,18,238,122,232,53,100,192,234,100,136,101,162,72,102,3,102,50,117,56,239,106,249,17,110,236,73,18,237,102,230,53,6,232,11,232,42,233,38,241,34,246,17,102,230,53,226,38,229,34,230,17,102,230,53,17,102,230,53,17,100,225,73,2,116,52,117,58,225,16,110,1,226,49,239,49,18,249,110,229,53,18,240,109,243,53,6,238,133,238,54,239,162,133,243,162,65,245,17,101,243,73,17,101,238,162,128,7,179,29,179,100,180,38,181,56,182,4,176,41,177,41,180,41,181,39,182,41,4,176,39,177,39,180,39,181,39,182,39,42,43,176,48,177,44,178,1,178,41,179,41,4,176,41,177,41,180,41,181,39,182,41,17,101,243,162,128,7,179,18,179,122,180,38,181,34,182,4,176,41,178,41,180,41,181,41,182,41,42,43,176,38,177,78,178,4,176,41,178,41,180,41,181,41,182,41,4,176,41,178,41,180,41,181,41,182,41,1,177,41,179,41,110,46,121,54,229,17,101,238,93,19,226,107,108,238,53,19,239,107,108,238,53,97,162,96,98,164,158,99,12,112,46,225,17,225,162,206,239,164,221,243,42,249,17,101,238,73,17,115,235,73,112,62,114,68,122,1,232,34,239,17,122,232,53,17,122,232,53,18,248,122,232,53,18,243,102,242,73,106,20,106,48,107,54,111,18,225,109,243,53,18,249,122,232,53,18,226,97,242,93,100,48,101,54,104,18,242,101,238,73,18,239,122,232,53,19,226,102,105,236,93,0,22,117,192,192,230,146,242,117,242,74,249,162,108,250,17,114,245,92,1,42,133,76,22,97,116,238,67,121,114,236,53,17,97,242,32,1,42,90,76,22,97,116,238,65,114,97,226,72,7,179,39,179,42,180,96,181,34,182,5,179,54,179,41,181,41,182,41,132,7,179,19,179,42,180,56,181,34,182,5,179,34,179,41,181,41,182,41,16,180,41,42,43,176,38,177,34,178,5,179,15,179,41,181,41,182,41,5,179,6,179,41,181,41,182,41,176,41,177,41,178,41,17,101,243,73,230,74,235,162,177,237,17,101,238,92,1,42,133,69,22,116,104,233,76,97,116,238,53,17,110,236,73,122,19,122,46,225,52,226,17,114,245,93,18,226,97,250,53,18,115,115,249,41,117,164,46,118,58,121,3,232,42,236,38,238,34,240,17,97,242,53,18,236,97,242,53,102,53,108,30,108,62,112,68,114,3,241,42,243,38,249,34,250,17,97,242,53,18,238,115,241,53,1,227,34,228,17,97,242,53,102,48,105,54,106,18,240,97,242,53,18,226,97,242,53,19,233,115,121,242,53,97,62,98,78,99,90,100,144,101,1,226,34,227,17,97,242,53,2,229,38,239,50,244,17,115,241,53,1,232,34,246,17,97,242,53,5,247,9,247,38,248,34,249,17,97,242,53,232,46,237,34,241,17,97,242,53,17,101,238,93,17,97,242,53,18,230,97,242,53,14,118,104,238,74,238,62,239,130,242,160,243,1,104,40,115,16,232,41,16,242,41,1,98,66,101,16,238,92,1,42,133,66,22,101,110,231,76,97,116,238,53,16,238,32,1,42,133,76,22,97,116,238,66,101,110,231,73,17,122,232,72,1,42,133,84,22,105,98,244,72,97,110,243,53,17,102,242,73,118,50,122,62,229,68,232,17,104,233,93,1,229,34,245,17,109,243,53,18,227,109,231,53,17,114,245,73,104,34,104,52,106,58,109,78,116,18,234,109,243,53,18,242,109,231,53,1,238,42,241,17,109,231,53,17,109,243,53,18,237,109,231,53,97,48,98,54,101,18,237,101,238,93,18,236,117,242,73,18,250,97,242,53,170,170,5,0,85,0,95,0,105,0,116,0,74,0,93,35,0,224,185,50,0,144,204,50,0,144,99,35,0,16,11,37,0,16,2,0,32,0,79,0,170,170,86,35,0,32,179,39,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,144,74,0,80,7,0,0,0,206,8,0,0,114,53,0,0,114,53,0,0,91,7,0,0,1,0,0,0,114,53,0,0,97,97,105,0,97,97,107,0,97,97,117,0,97,98,105,0,97,98,113,0,97,98,114,0,97,98,116,0,97,98,121,0,97,99,100,0,97,99,101,0,97,99,104,0,97,100,97,0,97,100,101,0,97,100,106,0,97,100,112,0,97,100,121,0,97,100,122,0,97,101,98,0,97,101,121,0,97,103,99,0,97,103,100,0,97,103,103,0,97,103,111,0,97,103,113,0,97,104,97,0,97,104,108,0,97,104,111,0,97,106,103,0,97,106,116,0,97,107,107,0,97,108,97,0,97,108,110,0,97,108,116,0,97,109,109,0,97,109,110,0,97,109,112,0,97,110,99,0,97,110,107,0,97,110,110,0,97,110,121,0,97,111,106,0,97,111,109,0,97,111,122,0,97,112,99,0,97,112,100,0,97,112,101,0,97,112,114,0,97,112,115,0,97,112,122,0,97,114,99,95,78,98,97,116,0,97,114,99,95,80,97,108,109,0,97,114,104,0,97,114,110,0,97,114,111,0,97,114,113,0,97,114,115,0,97,114,121,0,97,114,122,0,97,115,97,0,97,115,101,0,97,115,103,0,97,115,111,0,97,115,116,0,97,116,97,0,97,116,103,0,97,116,106,0,97,117,121,0,97,118,108,0,97,118,110,0,97,118,117,0,97,119,97,0,97,119,98,0,97,119,111,0,97,119,120,0,97,121,98,0,97,122,95,65,114,97,98,0,97,122,95,73,81,0,97,122,95,73,82,0,97,122,95,82,85,0,98,97,108,0,98,97,110,0,98,97,112,0,98,97,114,0,98,97,115,0,98,97,118,0,98,97,120,0,98,98,97,0,98,98,98,0,98,98,99,0,98,98,100,0,98,98,106,0,98,98,112,0,98,98,114,0,98,99,102,0,98,99,104,0,98,99,105,0,98,99,109,0,98,99,110,0,98,99,111,0,98,99,113,0,98,99,117,0,98,100,100,0,98,101,102,0,98,101,104,0,98,101,106,0,98,101,109,0,98,101,116,0,98,101,119,0,98,101,120,0,98,101,122,0,98,102,100,0,98,102,113,0,98,102,116,0,98,102,121,0,98,103,99,0,98,103,110,0,98,103,120,0,98,104,98,0,98,104,103,0,98,104,105,0,98,104,108,0,98,104,111,0,98,104,121,0,98,105,98,0,98,105,103,0,98,105,107,0,98,105,109,0,98,105,110,0,98,105,111,0,98,105,113,0,98,106,104,0,98,106,105,0,98,106,106,0,98,106,110,0,98,106,111,0,98,106,114,0,98,106,116,0,98,106,122,0,98,107,99,0,98,107,109,0,98,107,113,0,98,107,117,0,98,107,118,0,98,108,97,0,98,108,103,0,98,108,116,0,98,109,104,0,98,109,107,0,98,109,113,0,98,109,117,0,98,110,0,98,110,103,0,98,110,109,0,98,110,112,0,98,111,106,0,98,111,109,0,98,111,110,0,98,112,121,0,98,113,99,0,98,113,105,0,98,113,112,0,98,113,118,0,98,114,97,0,98,114,104,0,98,114,120,0,98,114,122,0,98,115,0,98,115,106,0,98,115,113,0,98,115,115,0,98,115,116,0,98,116,111,0,98,116,116,0,98,116,118,0,98,117,97,0,98,117,99,0,98,117,100,0,98,117,103,0,98,117,107,0,98,117,109,0,98,117,111,0,98,117,115,0,98,117,117,0,98,118,98,0,98,119,100,0,98,119,114,0,98,120,104,0,98,121,101,0,98,121,110,0,98,121,114,0,98,121,115,0,98,121,118,0,98,121,120,0,98,122,97,0,98,122,101,0,98,122,102,0,98,122,104,0,98,122,119,0,99,97,100,0,99,97,110,0,99,98,106,0,99,99,104,0,99,99,112,0,99,101,98,0,99,102,97,0,99,103,103,0,99,104,107,0,99,104,109,0,99,104,112,0,99,104,114,0,99,105,99,0,99,106,97,0,99,106,109,0,99,106,118,0,99,107,98,0,99,107,108,0,99,107,111,0,99,107,121,0,99,108,97,0,99,108,99,0,99,109,101,0,99,109,103,0,99,111,112,0,99,112,115,0,99,114,103,0,99,114,104,0,99,114,107,0,99,114,108,0,99,114,115,0,99,115,0,99,115,98,0,99,115,119,0,99,116,100,0,99,117,95,71,108,97,103,0,99,118,0,100,97,100,0,100,97,102,0,100,97,103,0,100,97,104,0,100,97,107,0,100,97,114,0,100,97,118,0,100,98,100,0,100,98,113,0,100,99,99,0,100,100,110,0,100,101,100,0,100,101,110,0,100,103,97,0,100,103,104,0,100,103,105,0,100,103,108,0,100,103,114,0,100,103,122,0,100,105,97,0,100,106,101,0,100,109,102,0,100,110,106,0,100,111,98,0,100,111,105,0,100,111,112,0,100,111,119,0,100,114,104,0,100,114,105,0,100,114,115,0,100,115,98,0,100,116,109,0,100,116,112,0,100,116,115,0,100,116,121,0,100,117,97,0,100,117,99,0,100,117,100,0,100,117,103,0,100,118,0,100,118,97,0,100,119,119,0,100,121,111,0,100,121,117,0,100,122,103,0,101,98,117,0,101,102,105,0,101,103,108,0,101,103,121,0,101,107,97,0,101,107,121,0,101,109,97,0,101,109,105,0,101,110,95,83,104,97,119,0,101,110,110,0,101,110,113,0,101,114,105,0,101,115,103,0,101,115,117,0,101,116,114,0,101,116,116,0,101,116,117,0,101,116,120,0,101,119,111,0,101,120,116,0,101,122,97,0,102,97,97,0,102,97,98,0,102,97,103,0,102,97,105,0,102,97,110,0,102,102,0,102,102,95,65,100,108,109,0,102,102,105,0,102,102,109,0,102,105,97,0,102,105,108,0,102,105,116,0,102,106,0,102,108,114,0,102,109,112,0,102,111,100,0,102,111,110,0,102,111,114,0,102,112,101,0,102,113,115,0,102,114,99,0,102,114,112,0,102,114,114,0,102,114,115,0,102,117,98,0,102,117,100,0,102,117,101,0,102,117,102,0,102,117,104,0,102,117,113,0,102,117,114,0,102,117,118,0,102,117,121,0,102,118,114,0,103,97,97,0,103,97,102,0,103,97,103,0,103,97,104,0,103,97,106,0,103,97,110,0,103,97,119,0,103,97,121,0,103,98,97,0,103,98,102,0,103,98,109,0,103,98,121,0,103,98,122,0,103,99,114,0,103,100,101,0,103,100,110,0,103,100,114,0,103,101,98,0,103,101,106,0,103,101,108,0,103,101,122,0,103,102,107,0,103,103,110,0,103,104,115,0,103,105,108,0,103,105,109,0,103,106,107,0,103,106,110,0,103,106,117,0,103,107,110,0,103,107,112,0,103,108,107,0,103,109,109,0,103,109,118,0,103,110,100,0,103,110,103,0,103,111,100,0,103,111,102,0,103,111,105,0,103,111,109,0,103,111,110,0,103,111,114,0,103,111,115,0,103,111,116,0,103,114,98,0,103,114,99,0,103,114,99,95,76,105,110,98,0,103,114,116,0,103,114,119,0,103,115,119,0,103,117,98,0,103,117,99,0,103,117,100,0,103,117,114,0,103,117,119,0,103,117,120,0,103,117,122,0,103,118,0,103,118,102,0,103,118,114,0,103,118,115,0,103,119,99,0,103,119,105,0,103,119,116,0,103,121,105,0,104,97,95,67,77,0,104,97,95,83,68,0,104,97,107,0,104,97,122,0,104,98,98,0,104,100,121,0,104,104,121,0,104,105,95,76,97,116,110,0,104,105,97,0,104,105,102,0,104,105,103,0,104,105,104,0,104,105,108,0,104,108,97,0,104,108,117,0,104,109,100,0,104,109,116,0,104,110,100,0,104,110,101,0,104,110,106,0,104,110,110,0,104,110,111,0,104,111,99,0,104,111,116,0,104,115,98,0,104,115,110,0,104,117,105,0,104,117,114,0,105,97,110,0,105,97,114,0,105,98,97,0,105,98,98,0,105,98,121,0,105,99,97,0,105,99,104,0,105,100,105,0,105,100,117,0,105,102,101,0,105,103,98,0,105,103,101,0,105,106,106,0,105,107,107,0,105,107,119,0,105,107,120,0,105,108,111,0,105,109,111,0,105,111,117,0,105,114,105,0,105,119,109,0,105,119,115,0,105,122,104,0,105,122,105,0,106,97,98,0,106,97,109,0,106,97,114,0,106,98,111,0,106,98,117,0,106,101,110,0,106,103,107,0,106,103,111,0,106,105,98,0,106,109,99,0,106,109,108,0,106,114,97,0,106,117,116,0,106,119,0,107,97,97,0,107,97,98,0,107,97,99,0,107,97,100,0,107,97,105,0,107,97,106,0,107,97,109,0,107,97,111,0,107,97,119,0,107,98,100,0,107,98,109,0,107,98,112,0,107,98,113,0,107,98,120,0,107,98,121,0,107,99,103,0,107,99,107,0,107,99,108,0,107,99,116,0,107,100,101,0,107,100,104,0,107,100,108,0,107,100,116,0,107,101,97,0,107,101,110,0,107,101,122,0,107,102,111,0,107,102,114,0,107,102,121,0,107,103,101,0,107,103,102,0,107,103,112,0,107,104,97,0,107,104,98,0,107,104,110,0,107,104,113,0,107,104,115,0,107,104,116,0,107,104,119,0,107,104,122,0,107,105,106,0,107,105,117,0,107,105,119,0,107,106,100,0,107,106,103,0,107,106,115,0,107,106,121,0,107,107,95,65,70,0,107,107,95,65,114,97,98,0,107,107,95,67,78,0,107,107,95,73,82,0,107,107,95,77,78,0,107,107,99,0,107,107,106,0,107,108,110,0,107,108,113,0,107,108,116,0,107,108,120,0,107,109,98,0,107,109,104,0,107,109,111,0,107,109,115,0,107,109,117,0,107,109,119,0,107,110,102,0,107,110,112,0,107,111,105,0,107,111,107,0,107,111,108,0,107,111,115,0,107,111,122,0,107,112,101,0,107,112,102,0,107,112,111,0,107,112,114,0,107,112,120,0,107,113,98,0,107,113,102,0,107,113,115,0,107,113,121,0,107,114,99,0,107,114,105,0,107,114,106,0,107,114,108,0,107,114,115,0,107,114,117,0,107,115,98,0,107,115,100,0,107,115,102,0,107,115,104,0,107,115,106,0,107,115,114,0,107,116,98,0,107,116,109,0,107,116,111,0,107,116,114,0,107,117,95,65,114,97,98,0,107,117,95,76,66,0,107,117,95,89,101,122,105,0,107,117,98,0,107,117,100,0,107,117,101,0,107,117,106,0,107,117,109,0,107,117,110,0,107,117,112,0,107,117,115,0,107,118,103,0,107,118,114,0,107,118,120,0,107,119,106,0,107,119,107,0,107,119,111,0,107,119,113,0,107,120,97,0,107,120,99,0,107,120,101,0,107,120,108,0,107,120,109,0,107,120,112,0,107,120,119,0,107,120,122,0,107,121,95,65,114,97,98,0,107,121,95,67,78,0,107,121,95,76,97,116,110,0,107,121,95,84,82,0,107,121,101,0,107,121,120,0,107,122,104,0,107,122,106,0,107,122,114,0,107,122,116,0,108,97,98,0,108,97,100,0,108,97,104,0,108,97,106,0,108,97,115,0,108,98,0,108,98,101,0,108,98,117,0,108,98,119,0,108,99,109,0,108,99,112,0,108,100,98,0,108,101,100,0,108,101,101,0,108,101,109,0,108,101,112,0,108,101,113,0,108,101,117,0,108,101,122,0,108,103,103,0,108,105,97,0,108,105,100,0,108,105,102,0,108,105,102,95,76,105,109,98,0,108,105,103,0,108,105,104,0,108,105,106,0,108,105,108,0,108,105,115,0,108,106,112,0,108,107,105,0,108,107,116,0,108,108,101,0,108,108,110,0,108,109,110,0,108,109,111,0,108,109,112,0,108,110,115,0,108,110,117,0,108,111,106,0,108,111,107,0,108,111,108,0,108,111,114,0,108,111,115,0,108,111,122,0,108,114,99,0,108,116,103,0,108,117,97,0,108,117,111,0,108,117,121,0,108,117,122,0,108,118,0,108,119,108,0,108,122,104,0,108,122,122,0,109,97,100,0,109,97,102,0,109,97,103,0,109,97,105,0,109,97,107,0,109,97,110,0,109,97,110,95,71,78,0,109,97,110,95,78,107,111,111,0,109,97,115,0,109,97,119,0,109,97,122,0,109,98,104,0,109,98,111,0,109,98,113,0,109,98,117,0,109,98,119,0,109,99,105,0,109,99,112,0,109,99,113,0,109,99,114,0,109,99,117,0,109,100,97,0,109,100,101,0,109,100,102,0,109,100,104,0,109,100,106,0,109,100,114,0,109,100,120,0,109,101,100,0,109,101,101,0,109,101,107,0,109,101,110,0,109,101,114,0,109,101,116,0,109,101,117,0,109,102,97,0,109,102,101,0,109,102,110,0,109,102,111,0,109,102,113,0,109,103,104,0,109,103,108,0,109,103,111,0,109,103,112,0,109,103,121,0,109,104,105,0,109,104,108,0,109,105,99,0,109,105,102,0,109,105,110,0,109,105,119,0,109,107,105,0,109,107,108,0,109,107,112,0,109,107,119,0,109,108,101,0,109,108,112,0,109,108,115,0,109,109,111,0,109,109,117,0,109,109,120,0,109,110,95,67,78,0,109,110,95,77,111,110,103,0,109,110,97,0,109,110,102,0,109,110,105,0,109,110,119,0,109,111,97,0,109,111,101,0,109,111,104,0,109,111,115,0,109,111,120,0,109,112,112,0,109,112,115,0,109,112,116,0,109,112,120,0,109,113,108,0,109,114,100,0,109,114,106,0,109,114,111,0,109,115,95,67,67,0,109,116,99,0,109,116,102,0,109,116,105,0,109,116,114,0,109,117,97,0,109,117,114,0,109,117,115,0,109,118,97,0,109,118,110,0,109,118,121,0,109,119,107,0,109,119,114,0,109,119,118,0,109,119,119,0,109,120,99,0,109,120,109,0,109,121,107,0,109,121,109,0,109,121,118,0,109,121,119,0,109,121,120,0,109,121,122,0,109,122,107,0,109,122,109,0,109,122,110,0,109,122,112,0,109,122,119,0,109,122,122,0,110,97,99,0,110,97,102,0,110,97,107,0,110,97,110,0,110,97,112,0,110,97,113,0,110,97,115,0,110,99,97,0,110,99,101,0,110,99,102,0,110,99,104,0,110,99,111,0,110,99,117,0,110,100,99,0,110,100,115,0,110,101,98,0,110,101,119,0,110,101,120,0,110,102,114,0,110,103,97,0,110,103,98,0,110,103,108,0,110,104,98,0,110,104,101,0,110,104,119,0,110,105,102,0,110,105,105,0,110,105,106,0,110,105,110,0,110,105,117,0,110,105,121,0,110,105,122,0,110,106,111,0,110,107,103,0,110,107,111,0,110,108,0,110,109,103,0,110,109,122,0,110,110,102,0,110,110,104,0,110,110,107,0,110,110,109,0,110,110,112,0,110,111,100,0,110,111,101,0,110,111,110,0,110,111,112,0,110,111,117,0,110,113,111,0,110,114,98,0,110,115,107,0,110,115,110,0,110,115,111,0,110,115,115,0,110,115,116,0,110,116,109,0,110,116,114,0,110,117,105,0,110,117,112,0,110,117,115,0,110,117,118,0,110,117,120,0,110,118,0,110,119,98,0,110,120,113,0,110,120,114,0,110,121,109,0,110,121,110,0,110,122,105,0,111,99,95,69,83,0,111,103,99,0,111,106,115,0,111,107,97,0,111,107,114,0,111,107,118,0,111,110,110,0,111,110,115,0,111,112,109,0,111,114,111,0,111,114,117,0,111,115,97,0,111,116,97,0,111,116,107,0,111,117,105,0,111,122,109,0,112,97,95,65,114,97,98,0,112,97,95,80,75,0,112,97,103,0,112,97,108,0,112,97,108,95,80,104,108,112,0,112,97,109,0,112,97,112,0,112,97,117,0,112,98,105,0,112,99,100,0,112,99,109,0,112,100,99,0,112,100,116,0,112,101,100,0,112,101,120,0,112,102,108,0,112,104,108,0,112,104,110,0,112,105,108,0,112,105,112,0,112,105,115,0,112,107,97,0,112,107,111,0,112,108,97,0,112,109,115,0,112,110,103,0,112,110,110,0,112,110,116,0,112,111,110,0,112,112,97,0,112,112,111,0,112,113,109,0,112,114,97,0,112,114,100,0,112,114,103,0,112,115,115,0,112,116,112,0,112,117,117,0,112,119,97,0,113,117,0,113,117,99,0,113,117,103,0,114,97,106,0,114,97,111,0,114,99,102,0,114,101,106,0,114,101,108,0,114,101,115,0,114,103,110,0,114,104,103,0,114,105,97,0,114,105,102,0,114,105,102,95,78,76,0,114,106,115,0,114,107,116,0,114,109,102,0,114,109,111,0,114,109,116,0,114,109,117,0,114,110,97,0,114,110,103,0,114,111,98,0,114,111,102,0,114,114,111,0,114,116,109,0,114,117,101,0,114,117,103,0,114,119,107,0,114,119,111,0,114,121,117,0,115,97,102,0,115,97,104,0,115,97,113,0,115,97,115,0,115,97,116,0,115,97,118,0,115,97,122,0,115,98,97,0,115,98,101,0,115,98,112,0,115,99,0,115,99,107,0,115,99,108,0,115,99,110,0,115,99,111,0,115,100,95,68,101,118,97,0,115,100,95,73,78,0,115,100,95,75,104,111,106,0,115,100,95,83,105,110,100,0,115,100,99,0,115,100,104,0,115,101,102,0,115,101,104,0,115,101,105,0,115,101,115,0,115,103,97,0,115,103,115,0,115,103,119,0,115,103,122,0,115,104,105,0,115,104,107,0,115,104,110,0,115,105,100,0,115,105,103,0,115,105,108,0,115,105,109,0,115,106,114,0,115,107,99,0,115,107,114,0,115,107,115,0,115,108,0,115,108,100,0,115,108,105,0,115,108,108,0,115,108,121,0,115,109,100,0,115,109,106,0,115,109,110,0,115,109,112,0,115,109,113,0,115,109,115,0,115,110,98,0,115,110,99,0,115,110,107,0,115,110,112,0,115,110,120,0,115,110,121,0,115,111,103,0,115,111,107,0,115,111,113,0,115,111,117,0,115,111,121,0,115,112,100,0,115,112,108,0,115,112,115,0,115,114,95,77,69,0,115,114,95,82,79,0,115,114,95,82,85,0,115,114,95,84,82,0,115,114,98,0,115,114,110,0,115,114,114,0,115,114,120,0,115,115,100,0,115,115,103,0,115,115,121,0,115,116,107,0,115,116,113,0,115,117,97,0,115,117,101,0,115,117,107,0,115,117,114,0,115,117,115,0,115,118,0,115,119,98,0,115,119,99,0,115,119,103,0,115,119,112,0,115,119,118,0,115,120,110,0,115,120,119,0,115,121,108,0,115,121,114,0,115,122,108,0,116,97,106,0,116,97,110,0,116,97,113,0,116,98,99,0,116,98,100,0,116,98,102,0,116,98,103,0,116,98,111,0,116,98,119,0,116,98,122,0,116,99,105,0,116,99,121,0,116,100,100,0,116,100,103,0,116,100,104,0,116,100,117,0,116,101,100,0,116,101,109,0,116,101,111,0,116,101,116,0,116,102,105,0,116,103,95,65,114,97,98,0,116,103,95,80,75,0,116,103,99,0,116,103,111,0,116,103,117,0,116,104,108,0,116,104,113,0,116,104,114,0,116,105,102,0,116,105,103,0,116,105,107,0,116,105,109,0,116,105,111,0,116,105,118,0,116,107,108,0,116,107,114,0,116,107,116,0,116,108,0,116,108,102,0,116,108,120,0,116,108,121,0,116,109,104,0,116,109,121,0,116,110,104,0,116,111,102,0,116,111,103,0,116,111,107,0,116,111,113,0,116,112,105,0,116,112,109,0,116,112,122,0,116,113,111,0,116,114,117,0,116,114,118,0,116,114,119,0,116,115,100,0,116,115,102,0,116,115,103,0,116,115,106,0,116,115,119,0,116,116,100,0,116,116,101,0,116,116,106,0,116,116,114,0,116,116,115,0,116,116,116,0,116,117,104,0,116,117,108,0,116,117,109,0,116,117,113,0,116,118,100,0,116,118,108,0,116,118,117,0,116,119,104,0,116,119,113,0,116,120,103,0,116,120,111,0,116,121,97,0,116,121,118,0,116,122,109,0,117,98,117,0,117,100,105,0,117,100,109,0,117,103,95,67,121,114,108,0,117,103,95,75,90,0,117,103,95,77,78,0,117,103,97,0,117,108,105,0,117,109,98,0,117,110,100,95,48,48,50,0,117,110,100,95,48,48,51,0,117,110,100,95,48,48,53,0,117,110,100,95,48,48,57,0,117,110,100,95,48,49,49,0,117,110,100,95,48,49,51,0,117,110,100,95,48,49,52,0,117,110,100,95,48,49,53,0,117,110,100,95,48,49,55,0,117,110,100,95,48,49,56,0,117,110,100,95,48,49,57,0,117,110,100,95,48,50,49,0,117,110,100,95,48,50,57,0,117,110,100,95,48,51,48,0,117,110,100,95,48,51,52,0,117,110,100,95,48,51,53,0,117,110,100,95,48,51,57,0,117,110,100,95,48,53,51,0,117,110,100,95,48,53,52,0,117,110,100,95,48,53,55,0,117,110,100,95,48,54,49,0,117,110,100,95,49,52,50,0,117,110,100,95,49,52,51,0,117,110,100,95,49,52,53,0,117,110,100,95,49,53,48,0,117,110,100,95,49,53,49,0,117,110,100,95,49,53,52,0,117,110,100,95,49,53,53,0,117,110,100,95,50,48,50,0,117,110,100,95,52,49,57,0,117,110,100,95,65,68,0,117,110,100,95,65,69,0,117,110,100,95,65,70,0,117,110,100,95,65,76,0,117,110,100,95,65,77,0,117,110,100,95,65,79,0,117,110,100,95,65,81,0,117,110,100,95,65,82,0,117,110,100,95,65,83,0,117,110,100,95,65,84,0,117,110,100,95,65,87,0,117,110,100,95,65,88,0,117,110,100,95,65,90,0,117,110,100,95,65,100,108,109,0,117,110,100,95,65,103,104,98,0,117,110,100,95,65,104,111,109,0,117,110,100,95,65,114,97,98,0,117,110,100,95,65,114,97,98,95,67,67,0,117,110,100,95,65,114,97,98,95,67,78,0,117,110,100,95,65,114,97,98,95,71,66,0,117,110,100,95,65,114,97,98,95,73,68,0,117,110,100,95,65,114,97,98,95,73,78,0,117,110,100,95,65,114,97,98,95,75,72,0,117,110,100,95,65,114,97,98,95,77,77,0,117,110,100,95,65,114,97,98,95,77,78,0,117,110,100,95,65,114,97,98,95,77,85,0,117,110,100,95,65,114,97,98,95,78,71,0,117,110,100,95,65,114,97,98,95,80,75,0,117,110,100,95,65,114,97,98,95,84,71,0,117,110,100,95,65,114,97,98,95,84,72,0,117,110,100,95,65,114,97,98,95,84,74,0,117,110,100,95,65,114,97,98,95,84,82,0,117,110,100,95,65,114,97,98,95,89,84,0,117,110,100,95,65,114,109,105,0,117,110,100,95,65,114,109,110,0,117,110,100,95,65,118,115,116,0,117,110,100,95,66,65,0,117,110,100,95,66,68,0,117,110,100,95,66,69,0,117,110,100,95,66,70,0,117,110,100,95,66,71,0,117,110,100,95,66,72,0,117,110,100,95,66,73,0,117,110,100,95,66,74,0,117,110,100,95,66,76,0,117,110,100,95,66,78,0,117,110,100,95,66,79,0,117,110,100,95,66,81,0,117,110,100,95,66,82,0,117,110,100,95,66,84,0,117,110,100,95,66,86,0,117,110,100,95,66,89,0,117,110,100,95,66,97,108,105,0,117,110,100,95,66,97,109,117,0,117,110,100,95,66,97,115,115,0,117,110,100,95,66,97,116,107,0,117,110,100,95,66,101,110,103,0,117,110,100,95,66,104,107,115,0,117,110,100,95,66,111,112,111,0,117,110,100,95,66,114,97,104,0,117,110,100,95,66,114,97,105,0,117,110,100,95,66,117,103,105,0,117,110,100,95,66,117,104,100,0,117,110,100,95,67,68,0,117,110,100,95,67,70,0,117,110,100,95,67,71,0,117,110,100,95,67,72,0,117,110,100,95,67,73,0,117,110,100,95,67,76,0,117,110,100,95,67,77,0,117,110,100,95,67,78,0,117,110,100,95,67,79,0,117,110,100,95,67,80,0,117,110,100,95,67,82,0,117,110,100,95,67,85,0,117,110,100,95,67,86,0,117,110,100,95,67,87,0,117,110,100,95,67,89,0,117,110,100,95,67,90,0,117,110,100,95,67,97,107,109,0,117,110,100,95,67,97,110,115,0,117,110,100,95,67,97,114,105,0,117,110,100,95,67,104,97,109,0,117,110,100,95,67,104,101,114,0,117,110,100,95,67,104,114,115,0,117,110,100,95,67,111,112,116,0,117,110,100,95,67,112,109,110,0,117,110,100,95,67,112,109,110,95,67,89,0,117,110,100,95,67,112,114,116,0,117,110,100,95,67,121,114,108,0,117,110,100,95,67,121,114,108,95,65,76,0,117,110,100,95,67,121,114,108,95,66,65,0,117,110,100,95,67,121,114,108,95,71,69,0,117,110,100,95,67,121,114,108,95,71,82,0,117,110,100,95,67,121,114,108,95,77,68,0,117,110,100,95,67,121,114,108,95,82,79,0,117,110,100,95,67,121,114,108,95,83,75,0,117,110,100,95,67,121,114,108,95,84,82,0,117,110,100,95,67,121,114,108,95,88,75,0,117,110,100,95,68,69,0,117,110,100,95,68,74,0,117,110,100,95,68,75,0,117,110,100,95,68,79,0,117,110,100,95,68,90,0,117,110,100,95,68,101,118,97,0,117,110,100,95,68,101,118,97,95,66,84,0,117,110,100,95,68,101,118,97,95,70,74,0,117,110,100,95,68,101,118,97,95,77,85,0,117,110,100,95,68,101,118,97,95,80,75,0,117,110,100,95,68,105,97,107,0,117,110,100,95,68,111,103,114,0,117,110,100,95,68,117,112,108,0,117,110,100,95,69,65,0,117,110,100,95,69,67,0,117,110,100,95,69,69,0,117,110,100,95,69,71,0,117,110,100,95,69,72,0,117,110,100,95,69,82,0,117,110,100,95,69,83,0,117,110,100,95,69,84,0,117,110,100,95,69,85,0,117,110,100,95,69,90,0,117,110,100,95,69,103,121,112,0,117,110,100,95,69,108,98,97,0,117,110,100,95,69,108,121,109,0,117,110,100,95,69,116,104,105,0,117,110,100,95,70,73,0,117,110,100,95,70,79,0,117,110,100,95,70,82,0,117,110,100,95,71,65,0,117,110,100,95,71,69,0,117,110,100,95,71,70,0,117,110,100,95,71,72,0,117,110,100,95,71,76,0,117,110,100,95,71,78,0,117,110,100,95,71,80,0,117,110,100,95,71,81,0,117,110,100,95,71,82,0,117,110,100,95,71,83,0,117,110,100,95,71,84,0,117,110,100,95,71,87,0,117,110,100,95,71,101,111,114,0,117,110,100,95,71,108,97,103,0,117,110,100,95,71,111,110,103,0,117,110,100,95,71,111,110,109,0,117,110,100,95,71,111,116,104,0,117,110,100,95,71,114,97,110,0,117,110,100,95,71,114,101,107,0,117,110,100,95,71,114,101,107,95,84,82,0,117,110,100,95,71,117,106,114,0,117,110,100,95,71,117,114,117,0,117,110,100,95,72,75,0,117,110,100,95,72,77,0,117,110,100,95,72,78,0,117,110,100,95,72,82,0,117,110,100,95,72,84,0,117,110,100,95,72,85,0,117,110,100,95,72,97,110,98,0,117,110,100,95,72,97,110,103,0,117,110,100,95,72,97,110,105,0,117,110,100,95,72,97,110,111,0,117,110,100,95,72,97,110,115,0,117,110,100,95,72,97,110,116,0,117,110,100,95,72,97,110,116,95,67,65,0,117,110,100,95,72,101,98,114,0,117,110,100,95,72,101,98,114,95,83,69,0,117,110,100,95,72,101,98,114,95,85,65,0,117,110,100,95,72,101,98,114,95,85,83,0,117,110,100,95,72,105,114,97,0,117,110,100,95,72,108,117,119,0,117,110,100,95,72,109,110,103,0,117,110,100,95,72,109,110,112,0,117,110,100,95,72,117,110,103,0,117,110,100,95,73,67,0,117,110,100,95,73,68,0,117,110,100,95,73,76,0,117,110,100,95,73,78,0,117,110,100,95,73,81,0,117,110,100,95,73,82,0,117,110,100,95,73,83,0,117,110,100,95,73,84,0,117,110,100,95,73,116,97,108,0,117,110,100,95,74,79,0,117,110,100,95,74,80,0,117,110,100,95,74,97,109,111,0,117,110,100,95,74,97,118,97,0,117,110,100,95,74,112,97,110,0,117,110,100,95,75,69,0,117,110,100,95,75,71,0,117,110,100,95,75,72,0,117,110,100,95,75,77,0,117,110,100,95,75,80,0,117,110,100,95,75,82,0,117,110,100,95,75,87,0,117,110,100,95,75,90,0,117,110,100,95,75,97,108,105,0,117,110,100,95,75,97,110,97,0,117,110,100,95,75,97,119,105,0,117,110,100,95,75,104,97,114,0,117,110,100,95,75,104,109,114,0,117,110,100,95,75,104,111,106,0,117,110,100,95,75,105,116,115,0,117,110,100,95,75,110,100,97,0,117,110,100,95,75,111,114,101,0,117,110,100,95,75,116,104,105,0,117,110,100,95,76,65,0,117,110,100,95,76,66,0,117,110,100,95,76,73,0,117,110,100,95,76,75,0,117,110,100,95,76,83,0,117,110,100,95,76,84,0,117,110,100,95,76,85,0,117,110,100,95,76,86,0,117,110,100,95,76,89,0,117,110,100,95,76,97,110,97,0,117,110,100,95,76,97,111,111,0,117,110,100,95,76,97,116,110,95,65,70,0,117,110,100,95,76,97,116,110,95,65,77,0,117,110,100,95,76,97,116,110,95,67,78,0,117,110,100,95,76,97,116,110,95,67,89,0,117,110,100,95,76,97,116,110,95,68,90,0,117,110,100,95,76,97,116,110,95,69,84,0,117,110,100,95,76,97,116,110,95,71,69,0,117,110,100,95,76,97,116,110,95,73,82,0,117,110,100,95,76,97,116,110,95,75,77,0,117,110,100,95,76,97,116,110,95,77,65,0,117,110,100,95,76,97,116,110,95,77,75,0,117,110,100,95,76,97,116,110,95,77,77,0,117,110,100,95,76,97,116,110,95,77,79,0,117,110,100,95,76,97,116,110,95,77,82,0,117,110,100,95,76,97,116,110,95,82,85,0,117,110,100,95,76,97,116,110,95,83,89,0,117,110,100,95,76,97,116,110,95,84,78,0,117,110,100,95,76,97,116,110,95,84,87,0,117,110,100,95,76,97,116,110,95,85,65,0,117,110,100,95,76,101,112,99,0,117,110,100,95,76,105,109,98,0,117,110,100,95,76,105,110,97,0,117,110,100,95,76,105,110,98,0,117,110,100,95,76,105,115,117,0,117,110,100,95,76,121,99,105,0,117,110,100,95,76,121,100,105,0,117,110,100,95,77,65,0,117,110,100,95,77,67,0,117,110,100,95,77,68,0,117,110,100,95,77,69,0,117,110,100,95,77,70,0,117,110,100,95,77,71,0,117,110,100,95,77,75,0,117,110,100,95,77,76,0,117,110,100,95,77,77,0,117,110,100,95,77,78,0,117,110,100,95,77,79,0,117,110,100,95,77,81,0,117,110,100,95,77,82,0,117,110,100,95,77,84,0,117,110,100,95,77,85,0,117,110,100,95,77,86,0,117,110,100,95,77,88,0,117,110,100,95,77,89,0,117,110,100,95,77,90,0,117,110,100,95,77,97,104,106,0,117,110,100,95,77,97,107,97,0,117,110,100,95,77,97,110,100,0,117,110,100,95,77,97,110,105,0,117,110,100,95,77,97,114,99,0,117,110,100,95,77,101,100,102,0,117,110,100,95,77,101,110,100,0,117,110,100,95,77,101,114,99,0,117,110,100,95,77,101,114,111,0,117,110,100,95,77,108,121,109,0,117,110,100,95,77,111,100,105,0,117,110,100,95,77,111,110,103,0,117,110,100,95,77,114,111,111,0,117,110,100,95,77,116,101,105,0,117,110,100,95,77,117,108,116,0,117,110,100,95,77,121,109,114,0,117,110,100,95,77,121,109,114,95,73,78,0,117,110,100,95,77,121,109,114,95,84,72,0,117,110,100,95,78,65,0,117,110,100,95,78,67,0,117,110,100,95,78,69,0,117,110,100,95,78,73,0,117,110,100,95,78,76,0,117,110,100,95,78,79,0,117,110,100,95,78,80,0,117,110,100,95,78,97,103,109,0,117,110,100,95,78,97,110,100,0,117,110,100,95,78,97,114,98,0,117,110,100,95,78,98,97,116,0,117,110,100,95,78,101,119,97,0,117,110,100,95,78,107,111,111,0,117,110,100,95,78,115,104,117,0,117,110,100,95,79,77,0,117,110,100,95,79,103,97,109,0,117,110,100,95,79,108,99,107,0,117,110,100,95,79,114,107,104,0,117,110,100,95,79,114,121,97,0,117,110,100,95,79,115,103,101,0,117,110,100,95,79,115,109,97,0,117,110,100,95,79,117,103,114,0,117,110,100,95,80,65,0,117,110,100,95,80,69,0,117,110,100,95,80,70,0,117,110,100,95,80,71,0,117,110,100,95,80,72,0,117,110,100,95,80,75,0,117,110,100,95,80,76,0,117,110,100,95,80,77,0,117,110,100,95,80,82,0,117,110,100,95,80,83,0,117,110,100,95,80,84,0,117,110,100,95,80,87,0,117,110,100,95,80,89,0,117,110,100,95,80,97,108,109,0,117,110,100,95,80,97,117,99,0,117,110,100,95,80,101,114,109,0,117,110,100,95,80,104,97,103,0,117,110,100,95,80,104,108,105,0,117,110,100,95,80,104,108,112,0,117,110,100,95,80,104,110,120,0,117,110,100,95,80,108,114,100,0,117,110,100,95,80,114,116,105,0,117,110,100,95,81,65,0,117,110,100,95,81,79,0,117,110,100,95,82,69,0,117,110,100,95,82,79,0,117,110,100,95,82,83,0,117,110,100,95,82,85,0,117,110,100,95,82,87,0,117,110,100,95,82,106,110,103,0,117,110,100,95,82,111,104,103,0,117,110,100,95,82,117,110,114,0,117,110,100,95,83,65,0,117,110,100,95,83,67,0,117,110,100,95,83,68,0,117,110,100,95,83,69,0,117,110,100,95,83,73,0,117,110,100,95,83,74,0,117,110,100,95,83,75,0,117,110,100,95,83,77,0,117,110,100,95,83,78,0,117,110,100,95,83,79,0,117,110,100,95,83,82,0,117,110,100,95,83,84,0,117,110,100,95,83,86,0,117,110,100,95,83,89,0,117,110,100,95,83,97,109,114,0,117,110,100,95,83,97,114,98,0,117,110,100,95,83,97,117,114,0,117,110,100,95,83,103,110,119,0,117,110,100,95,83,104,97,119,0,117,110,100,95,83,104,114,100,0,117,110,100,95,83,105,100,100,0,117,110,100,95,83,105,110,100,0,117,110,100,95,83,105,110,104,0,117,110,100,95,83,111,103,100,0,117,110,100,95,83,111,103,111,0,117,110,100,95,83,111,114,97,0,117,110,100,95,83,111,121,111,0,117,110,100,95,83,117,110,100,0,117,110,100,95,83,121,108,111,0,117,110,100,95,83,121,114,99,0,117,110,100,95,84,68,0,117,110,100,95,84,70,0,117,110,100,95,84,71,0,117,110,100,95,84,72,0,117,110,100,95,84,74,0,117,110,100,95,84,75,0,117,110,100,95,84,76,0,117,110,100,95,84,77,0,117,110,100,95,84,78,0,117,110,100,95,84,79,0,117,110,100,95,84,82,0,117,110,100,95,84,86,0,117,110,100,95,84,87,0,117,110,100,95,84,90,0,117,110,100,95,84,97,103,98,0,117,110,100,95,84,97,107,114,0,117,110,100,95,84,97,108,101,0,117,110,100,95,84,97,108,117,0,117,110,100,95,84,97,109,108,0,117,110,100,95,84,97,110,103,0,117,110,100,95,84,97,118,116,0,117,110,100,95,84,101,108,117,0,117,110,100,95,84,102,110,103,0,117,110,100,95,84,103,108,103,0,117,110,100,95,84,104,97,97,0,117,110,100,95,84,104,97,105,0,117,110,100,95,84,104,97,105,95,67,78,0,117,110,100,95,84,104,97,105,95,75,72,0,117,110,100,95,84,104,97,105,95,76,65,0,117,110,100,95,84,105,98,116,0,117,110,100,95,84,105,114,104,0,117,110,100,95,84,110,115,97,0,117,110,100,95,84,111,116,111,0,117,110,100,95,85,65,0,117,110,100,95,85,71,0,117,110,100,95,85,89,0,117,110,100,95,85,90,0,117,110,100,95,85,103,97,114,0,117,110,100,95,86,65,0,117,110,100,95,86,69,0,117,110,100,95,86,78,0,117,110,100,95,86,85,0,117,110,100,95,86,97,105,105,0,117,110,100,95,86,105,116,104,0,117,110,100,95,87,70,0,117,110,100,95,87,83,0,117,110,100,95,87,97,114,97,0,117,110,100,95,87,99,104,111,0,117,110,100,95,88,75,0,117,110,100,95,88,112,101,111,0,117,110,100,95,88,115,117,120,0,117,110,100,95,89,69,0,117,110,100,95,89,84,0,117,110,100,95,89,101,122,105,0,117,110,100,95,89,105,105,105,0,117,110,100,95,90,87,0,117,110,100,95,90,97,110,98,0,117,110,114,95,68,101,118,97,0,117,110,114,95,78,80,0,117,110,120,0,117,111,107,0,117,114,105,0,117,114,116,0,117,114,119,0,117,115,97,0,117,116,104,0,117,116,114,0,117,118,104,0,117,118,108,0,117,122,95,65,70,0,117,122,95,65,114,97,98,0,117,122,95,67,78,0,118,97,103,0,118,97,105,0,118,97,110,0,118,101,0,118,101,99,0,118,101,112,0,118,105,0,118,105,99,0,118,105,118,0,118,108,115,0,118,109,102,0,118,109,119,0,118,111,0,118,111,116,0,118,114,111,0,118,117,110,0,118,117,116,0,119,97,101,0,119,97,106,0,119,97,108,0,119,97,110,0,119,97,114,0,119,98,112,0,119,98,113,0,119,98,114,0,119,99,105,0,119,101,114,0,119,103,105,0,119,104,103,0,119,105,98,0,119,105,117,0,119,105,118,0,119,106,97,0,119,106,105,0,119,108,115,0,119,109,111,0,119,110,99,0,119,110,105,0,119,110,117,0,119,111,98,0,119,111,115,0,119,114,115,0,119,115,103,0,119,115,107,0,119,116,109,0,119,117,117,0,119,117,118,0,119,119,97,0,120,97,118,0,120,98,105,0,120,99,111,0,120,99,114,0,120,101,115,0,120,108,97,0,120,108,99,0,120,108,100,0,120,109,102,0,120,109,110,0,120,109,114,0,120,110,97,0,120,110,114,0,120,111,103,0,120,111,110,0,120,112,114,0,120,114,98,0,120,115,97,0,120,115,105,0,120,115,109,0,120,115,114,0,120,119,101,0,121,97,109,0,121,97,111,0,121,97,112,0,121,97,115,0,121,97,116,0,121,97,118,0,121,97,121,0,121,97,122,0,121,98,97,0,121,98,98,0,121,98,121,0,121,101,114,0,121,103,114,0,121,103,119,0,121,107,111,0,121,108,101,0,121,108,103,0,121,108,108,0,121,109,108,0,121,111,110,0,121,114,98,0,121,114,101,0,121,115,115,0,121,117,97,0,121,117,101,0,121,117,101,95,67,78,0,121,117,101,95,72,97,110,115,0,121,117,106,0,121,117,116,0,121,117,119,0,122,97,103,0,122,100,106,0,122,101,97,0,122,103,104,0,122,104,95,65,85,0,122,104,95,66,78,0,122,104,95,66,111,112,111,0,122,104,95,71,66,0,122,104,95,71,70,0,122,104,95,72,75,0,122,104,95,72,97,110,98,0,122,104,95,72,97,110,116,0,122,104,95,73,68,0,122,104,95,77,79,0,122,104,95,80,65,0,122,104,95,80,70,0,122,104,95,80,72,0,122,104,95,83,82,0,122,104,95,84,72,0,122,104,95,84,87,0,122,104,95,85,83,0,122,104,95,86,78,0,122,104,120,0,122,105,97,0,122,107,116,0,122,108,109,0,122,109,105,0,122,110,101,0,122,117,0,122,122,97,0,170,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,114,0,117,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,69,0,71,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,87,0,0,0,97,0,109,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,98,0,110,0,95,0,66,0,101,0,110,0,103,0,95,0,66,0,68,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,100,0,118,0,95,0,84,0,104,0,97,0,97,0,95,0,77,0,86,0,0,0,101,0,108,0,95,0,71,0,114,0,101,0,107,0,95,0,71,0,82,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,104,0,101,0,95,0,72,0,101,0,98,0,114,0,95,0,73,0,76,0,0,0,104,0,121,0,95,0,65,0,114,0,109,0,110,0,95,0,65,0,77,0,0,0,105,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,106,0,97,0,95,0,74,0,112,0,97,0,110,0,95,0,74,0,80,0,0,0,107,0,97,0,95,0,71,0,101,0,111,0,114,0,95,0,71,0,69,0,0,0,107,0,109,0,95,0,75,0,104,0,109,0,114,0,95,0,75,0,72,0,0,0,107,0,111,0,95,0,75,0,111,0,114,0,101,0,95,0,75,0,82,0,0,0,108,0,111,0,95,0,76,0,97,0,111,0,111,0,95,0,76,0,65,0,0,0,109,0,110,0,95,0,77,0,111,0,110,0,103,0,95,0,67,0,78,0,0,0,109,0,121,0,95,0,77,0,121,0,109,0,114,0,95,0,77,0,77,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,115,0,105,0,95,0,83,0,105,0,110,0,104,0,95,0,76,0,75,0,0,0,115,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,83,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,116,0,104,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,90,0,0,0,97,0,98,0,95,0,67,0,121,0,114,0,108,0,95,0,71,0,69,0,0,0,97,0,101,0,95,0,65,0,118,0,115,0,116,0,95,0,73,0,82,0,0,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,65,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,98,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,89,0,0,0,98,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,71,0,0,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,85,0,0,0,98,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,98,0,111,0,95,0,84,0,105,0,98,0,116,0,95,0,67,0,78,0,0,0,98,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,65,0,0,0,99,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,90,0,0,0,99,0,117,0,95,0,71,0,108,0,97,0,103,0,95,0,66,0,71,0,0,0,100,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,75,0,0,0,100,0,122,0,95,0,84,0,105,0,98,0,116,0,95,0,66,0,84,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,85,0,0,0,101,0,110,0,95,0,83,0,104,0,97,0,119,0,95,0,71,0,66,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,85,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,69,0,0,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,102,0,102,0,95,0,65,0,100,0,108,0,109,0,95,0,71,0,78,0,0,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,102,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,79,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,103,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,89,0,0,0,103,0,117,0,95,0,71,0,117,0,106,0,114,0,95,0,73,0,78,0,0,0,104,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,82,0,0,0,104,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,84,0,0,0,104,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,85,0,0,0,105,0,105,0,95,0,89,0,105,0,105,0,105,0,95,0,67,0,78,0,0,0,105,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,83,0,0,0,105,0,117,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,78,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,78,0,0,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,76,0,0,0,107,0,110,0,95,0,75,0,110,0,100,0,97,0,95,0,73,0,78,0,0,0,107,0,117,0,95,0,89,0,101,0,122,0,105,0,95,0,71,0,69,0,0,0,107,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,78,0,0,0,107,0,121,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,71,0,0,0,107,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,108,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,84,0,0,0,108,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,86,0,0,0,109,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,71,0,0,0,109,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,75,0,0,0,109,0,108,0,95,0,77,0,108,0,121,0,109,0,95,0,73,0,78,0,0,0,109,0,110,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,78,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,67,0,0,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,109,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,84,0,0,0,110,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,111,0,114,0,95,0,79,0,114,0,121,0,97,0,95,0,73,0,78,0,0,0,112,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,95,0,73,0,78,0,0,0,112,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,114,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,73,0,0,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,79,0,0,0,114,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,87,0,0,0,115,0,100,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,100,0,95,0,75,0,104,0,111,0,106,0,95,0,73,0,78,0,0,0,115,0,100,0,95,0,83,0,105,0,110,0,100,0,95,0,73,0,78,0,0,0,115,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,75,0,0,0,115,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,73,0,0,0,115,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,115,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,79,0,0,0,115,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,76,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,69,0,0,0,115,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,116,0,97,0,95,0,84,0,97,0,109,0,108,0,95,0,73,0,78,0,0,0,116,0,101,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,116,0,103,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,116,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,84,0,74,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,77,0,0,0,116,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,79,0,0,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,117,0,103,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,78,0,0,0,117,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,90,0,0,0,117,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,65,0,0,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,118,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,78,0,0,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,78,0,0,0,122,0,104,0,95,0,66,0,111,0,112,0,111,0,95,0,84,0,87,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,98,0,95,0,84,0,87,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,77,0,79,0,0,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,74,0,0,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,69,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,66,0,72,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,68,0,90,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,69,0,72,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,74,0,79,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,77,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,87,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,76,0,66,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,76,0,89,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,65,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,82,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,79,0,77,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,83,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,81,0,65,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,89,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,78,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,89,0,69,0,0,0,97,0,115,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,97,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,79,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,82,0,0,0,97,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,98,0,97,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,98,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,79,0,0,0,98,0,111,0,95,0,77,0,97,0,114,0,99,0,95,0,67,0,78,0,0,0,98,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,68,0,0,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,99,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,85,0,0,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,99,0,114,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,99,0,117,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,84,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,90,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,73,0,0,0,100,0,118,0,95,0,68,0,105,0,97,0,107,0,95,0,77,0,86,0,0,0,101,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,101,0,108,0,95,0,71,0,114,0,101,0,107,0,95,0,67,0,89,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,71,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,85,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,69,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,71,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,82,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,79,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,76,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,79,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,82,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,79,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,65,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,67,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,81,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,84,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,78,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,67,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,73,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,65,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,69,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,82,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,86,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,89,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,69,0,0,0,101,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,74,0,0,0,102,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,102,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,74,0,0,0,102,0,114,0,95,0,66,0,114,0,97,0,105,0,95,0,70,0,82,0,0,0,102,0,114,0,95,0,68,0,117,0,112,0,108,0,95,0,70,0,82,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,74,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,76,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,71,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,90,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,65,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,78,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,80,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,77,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,85,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,65,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,67,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,81,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,82,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,67,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,77,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,69,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,67,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,89,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,68,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,78,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,89,0,84,0,0,0,102,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,103,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,69,0,0,0,103,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,103,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,77,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,77,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,78,0,71,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,104,0,105,0,95,0,77,0,97,0,104,0,106,0,95,0,73,0,78,0,0,0,104,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,71,0,0,0,104,0,117,0,95,0,72,0,117,0,110,0,103,0,95,0,72,0,85,0,0,0,104,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,105,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,77,0,0,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,65,0,0,0,105,0,119,0,95,0,72,0,101,0,98,0,114,0,95,0,73,0,76,0,0,0,106,0,97,0,95,0,72,0,105,0,114,0,97,0,95,0,74,0,80,0,0,0,106,0,97,0,95,0,75,0,97,0,110,0,97,0,95,0,74,0,80,0,0,0,106,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,85,0,65,0,0,0,106,0,118,0,95,0,74,0,97,0,118,0,97,0,95,0,73,0,68,0,0,0,106,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,106,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,107,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,107,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,107,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,107,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,90,0,0,0,107,0,111,0,95,0,72,0,97,0,110,0,103,0,95,0,75,0,82,0,0,0,107,0,111,0,95,0,74,0,97,0,109,0,111,0,95,0,75,0,82,0,0,0,107,0,111,0,95,0,75,0,111,0,114,0,101,0,95,0,75,0,80,0,0,0,107,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,107,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,107,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,76,0,66,0,0,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,77,0,0,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,69,0,0,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,107,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,118,0,95,0,80,0,101,0,114,0,109,0,95,0,82,0,85,0,0,0,107,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,65,0,0,0,108,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,85,0,0,0,108,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,108,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,72,0,0,0,109,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,90,0,0,0,109,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,65,0,76,0,0,0,109,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,71,0,82,0,0,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,79,0,0,0,109,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,114,0,95,0,77,0,111,0,100,0,105,0,95,0,73,0,78,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,68,0,0,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,78,0,0,0,110,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,82,0,0,0,110,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,74,0,0,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,66,0,84,0,0,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,87,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,69,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,82,0,0,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,110,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,110,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,110,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,110,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,87,0,0,0,111,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,111,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,111,0,106,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,111,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,111,0,115,0,95,0,67,0,121,0,114,0,108,0,95,0,71,0,69,0,0,0,112,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,65,0,0,0,112,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,86,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,87,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,79,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,84,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,84,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,76,0,0,0,113,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,69,0,0,0,114,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,68,0,0,0,114,0,117,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,90,0,0,0,115,0,97,0,95,0,66,0,104,0,107,0,115,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,71,0,114,0,97,0,110,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,78,0,97,0,110,0,100,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,83,0,104,0,114,0,100,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,83,0,105,0,100,0,100,0,95,0,73,0,78,0,0,0,115,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,115,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,70,0,0,0,115,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,83,0,0,0,115,0,111,0,95,0,79,0,115,0,109,0,97,0,95,0,83,0,79,0,0,0,115,0,113,0,95,0,69,0,108,0,98,0,97,0,95,0,65,0,76,0,0,0,115,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,75,0,0,0,115,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,88,0,75,0,0,0,115,0,113,0,95,0,86,0,105,0,116,0,104,0,95,0,65,0,76,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,65,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,88,0,75,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,79,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,115,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,83,0,0,0,115,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,117,0,95,0,83,0,117,0,110,0,100,0,95,0,73,0,68,0,0,0,115,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,88,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,116,0,105,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,82,0,0,0,116,0,105,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,70,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,82,0,0,0,116,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,116,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,89,0,0,0,116,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,116,0,116,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,116,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,70,0,0,0,117,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,78,0,0,0,117,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,68,0,0,0,117,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,83,0,75,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,71,0,66,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,85,0,0,0,117,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,67,0,78,0,0,0,118,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,119,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,69,0,0,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,120,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,83,0,69,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,85,0,65,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,85,0,83,0,0,0,121,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,105,0,95,0,67,0,78,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,65,0,85,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,66,0,78,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,71,0,66,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,71,0,70,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,73,0,68,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,80,0,65,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,80,0,70,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,80,0,72,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,83,0,82,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,72,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,85,0,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,86,0,78,0,0,0,122,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,108,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,98,0,104,0,105,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,97,0,110,0,95,0,78,0,107,0,111,0,111,0,95,0,71,0,78,0,0,0,97,0,104,0,111,0,95,0,65,0,104,0,111,0,109,0,95,0,73,0,78,0,0,0,97,0,107,0,107,0,95,0,88,0,115,0,117,0,120,0,95,0,73,0,81,0,0,0,97,0,112,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,71,0,0,0,97,0,114,0,99,0,95,0,65,0,114,0,109,0,105,0,95,0,73,0,82,0,0,0,97,0,114,0,99,0,95,0,78,0,98,0,97,0,116,0,95,0,74,0,79,0,0,0,97,0,114,0,99,0,95,0,80,0,97,0,108,0,109,0,95,0,83,0,89,0,0,0,97,0,115,0,101,0,95,0,83,0,103,0,110,0,119,0,95,0,85,0,83,0,0,0,98,0,97,0,120,0,95,0,66,0,97,0,109,0,117,0,95,0,67,0,77,0,0,0,98,0,103,0,120,0,95,0,71,0,114,0,101,0,107,0,95,0,84,0,82,0,0,0,98,0,108,0,116,0,95,0,84,0,97,0,118,0,116,0,95,0,86,0,78,0,0,0,98,0,115,0,113,0,95,0,66,0,97,0,115,0,115,0,95,0,76,0,82,0,0,0,98,0,116,0,118,0,95,0,68,0,101,0,118,0,97,0,95,0,80,0,75,0,0,0,99,0,99,0,112,0,95,0,67,0,97,0,107,0,109,0,95,0,66,0,68,0,0,0,99,0,104,0,114,0,95,0,67,0,104,0,101,0,114,0,95,0,85,0,83,0,0,0,99,0,106,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,72,0,0,0,99,0,106,0,109,0,95,0,67,0,104,0,97,0,109,0,95,0,86,0,78,0,0,0,99,0,109,0,103,0,95,0,83,0,111,0,121,0,111,0,95,0,77,0,78,0,0,0,99,0,111,0,112,0,95,0,67,0,111,0,112,0,116,0,95,0,69,0,71,0,0,0,99,0,116,0,100,0,95,0,80,0,97,0,117,0,99,0,95,0,77,0,77,0,0,0,100,0,109,0,102,0,95,0,77,0,101,0,100,0,102,0,95,0,78,0,71,0,0,0,101,0,103,0,121,0,95,0,69,0,103,0,121,0,112,0,95,0,69,0,71,0,0,0,101,0,107,0,121,0,95,0,75,0,97,0,108,0,105,0,95,0,77,0,77,0,0,0,101,0,115,0,103,0,95,0,71,0,111,0,110,0,109,0,95,0,73,0,78,0,0,0,101,0,116,0,116,0,95,0,73,0,116,0,97,0,108,0,95,0,73,0,84,0,0,0,102,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,103,0,111,0,116,0,95,0,71,0,111,0,116,0,104,0,95,0,85,0,65,0,0,0,103,0,114,0,99,0,95,0,67,0,112,0,114,0,116,0,95,0,67,0,89,0,0,0,103,0,114,0,99,0,95,0,76,0,105,0,110,0,98,0,95,0,71,0,82,0,0,0,104,0,108,0,117,0,95,0,72,0,108,0,117,0,119,0,95,0,84,0,82,0,0,0,104,0,109,0,100,0,95,0,80,0,108,0,114,0,100,0,95,0,67,0,78,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,112,0,95,0,85,0,83,0,0,0,107,0,97,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,77,0,0,0,107,0,97,0,119,0,95,0,75,0,97,0,119,0,105,0,95,0,73,0,68,0,0,0,107,0,104,0,98,0,95,0,84,0,97,0,108,0,117,0,95,0,67,0,78,0,0,0,107,0,104,0,116,0,95,0,77,0,121,0,109,0,114,0,95,0,73,0,78,0,0,0,107,0,114,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,108,0,97,0,98,0,95,0,76,0,105,0,110,0,97,0,95,0,71,0,82,0,0,0,108,0,99,0,112,0,95,0,84,0,104,0,97,0,105,0,95,0,67,0,78,0,0,0,108,0,101,0,112,0,95,0,76,0,101,0,112,0,99,0,95,0,73,0,78,0,0,0,108,0,105,0,102,0,95,0,76,0,105,0,109,0,98,0,95,0,73,0,78,0,0,0,108,0,105,0,115,0,95,0,76,0,105,0,115,0,117,0,95,0,67,0,78,0,0,0,109,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,72,0,0,0,109,0,102,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,85,0,0,0,109,0,114,0,111,0,95,0,77,0,114,0,111,0,111,0,95,0,66,0,68,0,0,0,109,0,121,0,122,0,95,0,77,0,97,0,110,0,100,0,95,0,73,0,82,0,0,0,110,0,110,0,112,0,95,0,87,0,99,0,104,0,111,0,95,0,73,0,78,0,0,0,110,0,111,0,100,0,95,0,76,0,97,0,110,0,97,0,95,0,84,0,72,0,0,0,110,0,111,0,110,0,95,0,82,0,117,0,110,0,114,0,95,0,83,0,69,0,0,0,110,0,115,0,116,0,95,0,84,0,110,0,115,0,97,0,95,0,73,0,78,0,0,0,111,0,115,0,97,0,95,0,79,0,115,0,103,0,101,0,95,0,85,0,83,0,0,0,111,0,116,0,107,0,95,0,79,0,114,0,107,0,104,0,95,0,77,0,78,0,0,0,112,0,97,0,108,0,95,0,80,0,104,0,108,0,105,0,95,0,73,0,82,0,0,0,112,0,97,0,108,0,95,0,80,0,104,0,108,0,112,0,95,0,67,0,78,0,0,0,112,0,97,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,87,0,0,0,112,0,101,0,111,0,95,0,88,0,112,0,101,0,111,0,95,0,73,0,82,0,0,0,112,0,104,0,110,0,95,0,80,0,104,0,110,0,120,0,95,0,76,0,66,0,0,0,112,0,107,0,97,0,95,0,66,0,114,0,97,0,104,0,95,0,73,0,78,0,0,0,112,0,114,0,97,0,95,0,75,0,104,0,97,0,114,0,95,0,80,0,75,0,0,0,114,0,104,0,103,0,95,0,82,0,111,0,104,0,103,0,95,0,77,0,77,0,0,0,115,0,97,0,116,0,95,0,79,0,108,0,99,0,107,0,95,0,73,0,78,0,0,0,115,0,97,0,122,0,95,0,83,0,97,0,117,0,114,0,95,0,73,0,78,0,0,0,115,0,103,0,97,0,95,0,79,0,103,0,97,0,109,0,95,0,73,0,69,0,0,0,115,0,109,0,112,0,95,0,83,0,97,0,109,0,114,0,95,0,73,0,76,0,0,0,115,0,111,0,103,0,95,0,83,0,111,0,103,0,100,0,95,0,85,0,90,0,0,0,115,0,114,0,98,0,95,0,83,0,111,0,114,0,97,0,95,0,73,0,78,0,0,0,115,0,119,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,89,0,84,0,0,0,115,0,121,0,114,0,95,0,83,0,121,0,114,0,99,0,95,0,73,0,81,0,0,0,116,0,100,0,100,0,95,0,84,0,97,0,108,0,101,0,95,0,67,0,78,0,0,0,116,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,75,0,0,0,116,0,112,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,71,0,0,0,116,0,114,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,87,0,0,0,116,0,118,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,86,0,0,0,116,0,120,0,103,0,95,0,84,0,97,0,110,0,103,0,95,0,67,0,78,0,0,0,116,0,120,0,111,0,95,0,84,0,111,0,116,0,111,0,95,0,73,0,78,0,0,0,117,0,100,0,105,0,95,0,65,0,103,0,104,0,98,0,95,0,82,0,85,0,0,0,117,0,103,0,97,0,95,0,85,0,103,0,97,0,114,0,95,0,83,0,89,0,0,0,117,0,110,0,100,0,95,0,67,0,112,0,109,0,110,0,95,0,67,0,89,0,0,0,117,0,110,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,118,0,97,0,105,0,95,0,86,0,97,0,105,0,105,0,95,0,76,0,82,0,0,0,119,0,115,0,103,0,95,0,71,0,111,0,110,0,103,0,95,0,73,0,78,0,0,0,120,0,99,0,111,0,95,0,67,0,104,0,114,0,115,0,95,0,85,0,90,0,0,0,120,0,99,0,114,0,95,0,67,0,97,0,114,0,105,0,95,0,84,0,82,0,0,0,120,0,108,0,99,0,95,0,76,0,121,0,99,0,105,0,95,0,84,0,82,0,0,0,120,0,108,0,100,0,95,0,76,0,121,0,100,0,105,0,95,0,84,0,82,0,0,0,120,0,109,0,110,0,95,0,77,0,97,0,110,0,105,0,95,0,67,0,78,0,0,0,120,0,109,0,114,0,95,0,77,0,101,0,114,0,99,0,95,0,83,0,68,0,0,0,120,0,110,0,97,0,95,0,78,0,97,0,114,0,98,0,95,0,83,0,65,0,0,0,120,0,112,0,114,0,95,0,80,0,114,0,116,0,105,0,95,0,73,0,82,0,0,0,120,0,115,0,97,0,95,0,83,0,97,0,114,0,98,0,95,0,89,0,69,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,122,0,103,0,104,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,122,0,104,0,120,0,95,0,78,0,115,0,104,0,117,0,95,0,67,0,78,0,0,0,122,0,107,0,116,0,95,0,75,0,105,0,116,0,115,0,95,0,67,0,78,0,0,0,109,0,105,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,111,0,107,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,97,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,98,0,113,0,95,0,67,0,121,0,114,0,108,0,95,0,90,0,90,0,0,0,97,0,98,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,97,0,98,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,99,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,99,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,97,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,97,0,100,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,97,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,100,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,100,0,112,0,95,0,84,0,105,0,98,0,116,0,95,0,66,0,84,0,0,0,97,0,100,0,121,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,100,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,101,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,78,0,0,0,97,0,101,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,97,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,104,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,106,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,106,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,78,0,0,0,97,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,88,0,75,0,0,0,97,0,108,0,116,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,109,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,109,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,97,0,109,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,110,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,110,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,97,0,110,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,111,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,111,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,111,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,97,0,112,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,97,0,112,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,112,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,112,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,114,0,99,0,95,0,69,0,108,0,121,0,109,0,95,0,73,0,82,0,0,0,97,0,114,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,114,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,76,0,0,0,97,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,79,0,0,0,97,0,114,0,113,0,95,0,65,0,114,0,97,0,98,0,95,0,68,0,90,0,0,0,97,0,114,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,65,0,0,0,97,0,114,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,65,0,0,0,97,0,114,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,69,0,71,0,0,0,97,0,115,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,97,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,115,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,115,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,97,0,116,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,116,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,116,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,97,0,117,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,118,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,97,0,118,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,118,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,118,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,119,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,97,0,119,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,119,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,121,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,97,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,97,0,110,0,95,0,66,0,97,0,108,0,105,0,95,0,73,0,68,0,0,0,98,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,97,0,112,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,98,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,84,0,0,0,98,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,99,0,95,0,66,0,97,0,116,0,107,0,95,0,73,0,68,0,0,0,98,0,98,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,98,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,98,0,99,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,113,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,98,0,99,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,100,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,106,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,98,0,101,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,77,0,0,0,98,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,101,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,98,0,102,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,102,0,113,0,95,0,84,0,97,0,109,0,108,0,95,0,73,0,78,0,0,0,98,0,102,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,102,0,121,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,103,0,99,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,103,0,110,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,104,0,98,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,104,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,104,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,104,0,111,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,104,0,111,0,95,0,68,0,101,0,118,0,97,0,95,0,77,0,85,0,0,0,98,0,104,0,111,0,95,0,75,0,116,0,104,0,105,0,95,0,73,0,78,0,0,0,98,0,104,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,98,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,98,0,105,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,105,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,98,0,106,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,106,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,106,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,98,0,106,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,107,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,107,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,107,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,107,0,117,0,95,0,66,0,117,0,104,0,100,0,95,0,80,0,72,0,0,0,98,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,98,0,107,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,98,0,108,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,98,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,109,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,109,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,98,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,110,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,110,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,111,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,111,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,112,0,121,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,98,0,113,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,113,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,98,0,113,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,113,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,98,0,114,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,114,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,114,0,120,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,114,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,115,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,115,0,116,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,98,0,116,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,98,0,116,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,97,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,98,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,89,0,84,0,0,0,98,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,103,0,95,0,66,0,117,0,103,0,105,0,95,0,73,0,68,0,0,0,98,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,117,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,117,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,118,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,81,0,0,0,98,0,119,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,119,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,120,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,110,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,82,0,0,0,98,0,121,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,121,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,98,0,122,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,99,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,98,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,99,0,101,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,99,0,102,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,103,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,99,0,104,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,99,0,104,0,109,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,104,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,99,0,104,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,99,0,105,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,99,0,106,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,107,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,99,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,107,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,108,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,99,0,109,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,109,0,103,0,95,0,90,0,97,0,110,0,98,0,95,0,77,0,78,0,0,0,99,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,99,0,114,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,99,0,114,0,104,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,65,0,0,0,99,0,114,0,107,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,99,0,114,0,108,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,99,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,67,0,0,0,99,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,99,0,115,0,119,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,100,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,100,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,97,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,100,0,97,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,100,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,100,0,98,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,98,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,99,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,100,0,100,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,100,0,103,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,103,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,103,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,103,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,100,0,103,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,100,0,103,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,106,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,100,0,110,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,100,0,111,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,111,0,105,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,100,0,111,0,105,0,95,0,68,0,111,0,103,0,114,0,95,0,73,0,78,0,0,0,100,0,111,0,105,0,95,0,84,0,97,0,107,0,114,0,95,0,73,0,78,0,0,0,100,0,111,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,111,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,114,0,104,0,95,0,77,0,111,0,110,0,103,0,95,0,67,0,78,0,0,0,100,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,114,0,115,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,100,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,100,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,100,0,116,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,100,0,116,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,116,0,121,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,100,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,100,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,118,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,119,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,121,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,100,0,121,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,70,0,0,0,100,0,122,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,101,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,101,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,101,0,107,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,109,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,109,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,110,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,101,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,52,0,49,0,57,0,0,0,101,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,101,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,116,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,116,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,101,0,120,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,101,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,81,0,0,0,102,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,102,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,102,0,105,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,102,0,105,0,108,0,95,0,84,0,103,0,108,0,103,0,95,0,80,0,72,0,0,0,102,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,102,0,108,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,109,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,111,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,74,0,0,0,102,0,111,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,112,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,113,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,114,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,102,0,114,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,102,0,114,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,102,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,102,0,117,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,77,0,0,0,102,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,70,0,0,0,102,0,117,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,117,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,78,0,0,0,102,0,117,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,117,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,102,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,102,0,117,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,102,0,117,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,118,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,68,0,0,0,103,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,103,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,68,0,0,0,103,0,97,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,110,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,103,0,97,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,103,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,98,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,98,0,109,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,103,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,98,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,103,0,99,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,70,0,0,0,103,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,100,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,100,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,122,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,103,0,102,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,103,0,110,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,103,0,104,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,73,0,0,0,103,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,106,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,103,0,106,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,106,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,103,0,107,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,107,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,108,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,103,0,109,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,109,0,118,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,103,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,111,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,111,0,102,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,103,0,111,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,111,0,109,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,103,0,111,0,110,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,103,0,111,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,103,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,103,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,114,0,116,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,103,0,114,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,103,0,117,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,103,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,79,0,0,0,103,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,103,0,117,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,117,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,103,0,118,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,118,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,103,0,118,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,119,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,103,0,119,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,103,0,119,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,103,0,121,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,97,0,107,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,104,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,97,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,104,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,104,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,100,0,121,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,104,0,104,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,102,0,95,0,68,0,101,0,118,0,97,0,95,0,70,0,74,0,0,0,104,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,74,0,0,0,104,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,104,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,109,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,110,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,104,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,103,0,95,0,76,0,65,0,0,0,104,0,110,0,110,0,95,0,72,0,97,0,110,0,111,0,95,0,80,0,72,0,0,0,104,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,104,0,110,0,111,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,104,0,111,0,99,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,104,0,111,0,99,0,95,0,87,0,97,0,114,0,97,0,95,0,73,0,78,0,0,0,104,0,111,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,104,0,111,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,104,0,115,0,110,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,104,0,117,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,105,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,105,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,105,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,100,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,100,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,100,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,102,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,105,0,103,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,103,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,106,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,107,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,107,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,107,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,108,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,105,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,110,0,104,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,105,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,105,0,111,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,119,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,119,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,122,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,105,0,122,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,97,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,74,0,77,0,0,0,106,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,103,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,106,0,105,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,109,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,106,0,109,0,108,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,106,0,114,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,117,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,75,0,0,0,107,0,97,0,97,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,90,0,0,0,107,0,97,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,90,0,0,0,107,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,107,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,107,0,97,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,107,0,98,0,100,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,98,0,100,0,95,0,67,0,121,0,114,0,108,0,95,0,84,0,82,0,0,0,107,0,98,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,78,0,69,0,0,0,107,0,99,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,107,0,99,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,107,0,99,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,99,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,107,0,100,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,107,0,100,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,100,0,116,0,95,0,84,0,104,0,97,0,105,0,95,0,75,0,72,0,0,0,107,0,100,0,116,0,95,0,84,0,104,0,97,0,105,0,95,0,76,0,65,0,0,0,107,0,100,0,116,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,107,0,101,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,86,0,0,0,107,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,107,0,101,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,102,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,107,0,102,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,102,0,121,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,103,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,107,0,103,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,103,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,107,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,107,0,104,0,110,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,104,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,107,0,104,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,104,0,119,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,107,0,104,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,105,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,107,0,105,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,106,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,106,0,103,0,95,0,76,0,97,0,111,0,111,0,95,0,76,0,65,0,0,0,107,0,106,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,106,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,107,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,107,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,107,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,107,0,108,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,108,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,108,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,107,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,110,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,87,0,0,0,107,0,110,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,111,0,105,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,111,0,107,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,111,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,107,0,111,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,82,0,0,0,107,0,112,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,121,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,107,0,114,0,99,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,76,0,0,0,107,0,114,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,107,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,114,0,117,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,107,0,115,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,115,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,107,0,115,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,107,0,115,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,116,0,98,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,107,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,116,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,107,0,117,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,109,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,117,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,118,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,118,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,107,0,118,0,120,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,107,0,119,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,119,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,107,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,119,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,99,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,107,0,120,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,108,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,120,0,109,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,107,0,120,0,112,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,107,0,120,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,121,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,121,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,122,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,107,0,122,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,107,0,122,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,122,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,108,0,97,0,100,0,95,0,72,0,101,0,98,0,114,0,95,0,73,0,76,0,0,0,108,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,108,0,97,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,108,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,108,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,98,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,108,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,98,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,108,0,99,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,100,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,108,0,103,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,102,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,108,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,108,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,108,0,106,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,108,0,107,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,108,0,107,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,108,0,108,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,109,0,110,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,108,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,108,0,109,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,110,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,110,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,108,0,111,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,77,0,0,0,108,0,114,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,108,0,116,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,86,0,0,0,108,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,108,0,117,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,108,0,117,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,108,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,108,0,119,0,108,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,108,0,122,0,104,0,95,0,80,0,104,0,97,0,103,0,95,0,67,0,78,0,0,0,108,0,122,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,109,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,109,0,97,0,103,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,97,0,105,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,97,0,105,0,95,0,84,0,105,0,114,0,104,0,95,0,73,0,78,0,0,0,109,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,97,0,107,0,95,0,77,0,97,0,107,0,97,0,95,0,73,0,68,0,0,0,109,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,77,0,0,0,109,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,109,0,97,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,109,0,98,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,100,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,100,0,101,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,109,0,100,0,102,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,109,0,100,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,109,0,100,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,100,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,100,0,120,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,109,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,76,0,0,0,109,0,101,0,110,0,95,0,77,0,101,0,110,0,100,0,95,0,83,0,76,0,0,0,109,0,101,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,109,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,102,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,102,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,102,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,103,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,109,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,109,0,103,0,112,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,109,0,103,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,109,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,104,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,105,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,109,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,105,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,107,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,109,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,107,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,107,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,108,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,108,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,108,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,68,0,0,0,109,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,109,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,110,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,110,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,110,0,105,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,109,0,110,0,105,0,95,0,77,0,116,0,101,0,105,0,95,0,73,0,78,0,0,0,109,0,110,0,119,0,95,0,77,0,121,0,109,0,114,0,95,0,77,0,77,0,0,0,109,0,110,0,119,0,95,0,77,0,121,0,109,0,114,0,95,0,84,0,72,0,0,0,109,0,111,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,111,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,109,0,111,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,109,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,70,0,0,0,109,0,111,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,113,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,114,0,100,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,109,0,114,0,106,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,109,0,116,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,116,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,116,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,116,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,109,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,109,0,118,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,118,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,118,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,109,0,119,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,109,0,119,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,119,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,119,0,119,0,95,0,72,0,109,0,110,0,112,0,95,0,85,0,83,0,0,0,109,0,120,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,109,0,120,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,121,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,121,0,109,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,109,0,121,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,109,0,121,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,121,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,109,0,122,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,110,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,109,0,122,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,110,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,110,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,110,0,97,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,110,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,110,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,100,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,110,0,100,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,110,0,101,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,101,0,119,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,110,0,101,0,119,0,95,0,78,0,101,0,119,0,97,0,95,0,78,0,80,0,0,0,110,0,101,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,103,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,103,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,110,0,104,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,104,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,110,0,104,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,110,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,110,0,105,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,85,0,0,0,110,0,105,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,106,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,110,0,107,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,109,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,110,0,109,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,110,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,110,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,110,0,110,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,110,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,111,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,110,0,111,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,111,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,113,0,111,0,95,0,78,0,107,0,111,0,111,0,95,0,71,0,78,0,0,0,110,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,115,0,107,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,110,0,115,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,115,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,110,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,83,0,0,0,110,0,117,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,119,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,120,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,78,0,0,0,110,0,120,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,121,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,110,0,121,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,110,0,122,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,111,0,103,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,106,0,115,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,111,0,107,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,111,0,107,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,110,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,112,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,114,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,111,0,116,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,111,0,122,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,112,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,112,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,87,0,0,0,112,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,81,0,0,0,112,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,87,0,0,0,112,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,99,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,112,0,99,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,112,0,100,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,112,0,100,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,112,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,101,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,102,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,112,0,104,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,112,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,105,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,105,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,66,0,0,0,112,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,112,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,112,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,110,0,116,0,95,0,71,0,114,0,101,0,107,0,95,0,71,0,82,0,0,0,112,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,112,0,112,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,112,0,112,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,113,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,112,0,114,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,112,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,116,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,117,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,65,0,0,0,112,0,119,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,113,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,84,0,0,0,113,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,67,0,0,0,114,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,97,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,114,0,97,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,99,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,69,0,0,0,114,0,101,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,114,0,101,0,106,0,95,0,82,0,106,0,110,0,103,0,95,0,73,0,68,0,0,0,114,0,101,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,103,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,114,0,104,0,103,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,77,0,0,0,114,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,114,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,114,0,105,0,102,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,114,0,106,0,115,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,114,0,107,0,116,0,95,0,66,0,101,0,110,0,103,0,95,0,66,0,68,0,0,0,114,0,109,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,114,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,114,0,109,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,114,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,114,0,110,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,114,0,111,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,114,0,111,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,114,0,111,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,74,0,0,0,114,0,117,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,65,0,0,0,114,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,66,0,0,0,114,0,119,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,114,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,121,0,117,0,95,0,75,0,97,0,110,0,97,0,95,0,74,0,80,0,0,0,115,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,115,0,97,0,104,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,115,0,97,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,115,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,115,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,98,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,115,0,99,0,107,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,99,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,115,0,99,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,115,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,115,0,100,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,115,0,100,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,115,0,101,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,115,0,101,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,115,0,101,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,115,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,115,0,103,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,84,0,0,0,115,0,103,0,119,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,115,0,103,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,104,0,105,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,115,0,104,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,104,0,110,0,95,0,77,0,121,0,109,0,114,0,95,0,77,0,77,0,0,0,115,0,104,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,115,0,105,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,115,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,106,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,107,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,107,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,115,0,107,0,114,0,95,0,77,0,117,0,108,0,116,0,95,0,80,0,75,0,0,0,115,0,107,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,108,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,115,0,108,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,108,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,109,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,115,0,109,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,115,0,109,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,115,0,109,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,115,0,109,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,115,0,110,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,115,0,110,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,110,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,115,0,110,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,110,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,110,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,111,0,103,0,95,0,83,0,111,0,103,0,111,0,95,0,85,0,90,0,0,0,115,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,111,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,111,0,117,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,115,0,111,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,112,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,112,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,114,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,82,0,0,0,115,0,114,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,115,0,114,0,120,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,115,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,115,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,82,0,0,0,115,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,116,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,115,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,117,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,117,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,115,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,78,0,0,0,115,0,119,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,115,0,119,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,115,0,119,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,119,0,118,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,120,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,120,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,121,0,108,0,95,0,66,0,101,0,110,0,103,0,95,0,66,0,68,0,0,0,115,0,121,0,108,0,95,0,83,0,121,0,108,0,111,0,95,0,66,0,68,0,0,0,115,0,122,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,116,0,97,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,97,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,97,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,116,0,98,0,119,0,95,0,84,0,97,0,103,0,98,0,95,0,80,0,72,0,0,0,116,0,98,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,99,0,121,0,95,0,75,0,110,0,100,0,97,0,95,0,73,0,78,0,0,0,116,0,100,0,103,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,100,0,104,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,100,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,116,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,101,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,76,0,0,0,116,0,101,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,116,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,76,0,0,0,116,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,103,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,103,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,104,0,108,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,104,0,113,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,104,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,103,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,82,0,0,0,116,0,105,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,116,0,107,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,116,0,107,0,116,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,108,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,108,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,108,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,116,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,116,0,109,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,110,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,111,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,111,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,87,0,0,0,116,0,111,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,112,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,112,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,113,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,114,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,116,0,114,0,119,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,116,0,115,0,100,0,95,0,71,0,114,0,101,0,107,0,95,0,71,0,82,0,0,0,116,0,115,0,102,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,116,0,115,0,106,0,95,0,84,0,105,0,98,0,116,0,95,0,66,0,84,0,0,0,116,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,116,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,115,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,116,0,116,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,116,0,117,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,117,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,117,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,87,0,0,0,116,0,117,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,118,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,118,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,119,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,119,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,116,0,121,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,121,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,116,0,122,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,65,0,0,0,117,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,100,0,109,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,117,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,117,0,109,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,81,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,86,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,80,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,83,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,77,0,0,0,117,0,110,0,114,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,117,0,110,0,114,0,95,0,78,0,97,0,103,0,109,0,95,0,73,0,78,0,0,0,117,0,110,0,120,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,117,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,114,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,114,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,115,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,116,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,118,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,118,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,101,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,118,0,101,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,118,0,105,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,88,0,0,0,118,0,105,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,108,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,69,0,0,0,118,0,109,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,118,0,109,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,118,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,118,0,111,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,118,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,69,0,0,0,118,0,117,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,118,0,117,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,97,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,119,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,97,0,108,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,119,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,119,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,85,0,0,0,119,0,98,0,113,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,119,0,98,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,119,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,101,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,103,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,104,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,105,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,105,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,106,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,106,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,108,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,70,0,0,0,119,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,110,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,110,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,77,0,0,0,119,0,110,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,111,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,115,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,116,0,109,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,119,0,117,0,117,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,119,0,117,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,119,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,120,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,109,0,102,0,95,0,71,0,101,0,111,0,114,0,95,0,71,0,69,0,0,0,120,0,109,0,114,0,95,0,77,0,101,0,114,0,111,0,95,0,83,0,68,0,0,0,120,0,110,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,120,0,111,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,120,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,115,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,115,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,115,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,120,0,119,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,121,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,121,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,121,0,97,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,121,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,101,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,103,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,103,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,48,0,48,0,49,0,0,0,121,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,108,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,108,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,108,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,109,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,114,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,114,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,121,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,95,0,67,0,65,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,121,0,117,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,117,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,117,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,122,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,68,0,0,0,122,0,100,0,106,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,77,0,0,0,122,0,101,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,122,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,122,0,108,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,122,0,109,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,122,0,110,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,122,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,111,0,117,0,105,0,95,0,79,0,117,0,103,0,114,0,95,0,49,0,52,0,51,0,0,0,106,0,98,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,112,0,114,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,116,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,91,7,141,7,32,0,36,0,40,0,248,32,44,0,48,0,52,0,56,0,60,0,64,0,68,0,72,0,76,0,80,0,84,0,88,0,92,0,96,0,67,33,100,0,104,0,219,14,108,0,112,0,116,0,121,28,120,0,124,0,128,0,132,0,136,0,140,0,144,0,106,12,148,0,152,0,77,25,156,0,160,0,23,34,164,0,168,0,250,24,172,0,79,33,176,0,180,0,184,0,188,0,192,0,196,0,200,0,204,0,208,0,212,0,216,0,220,0,224,0,83,33,196,27,228,0,237,0,246,0,250,0,254,0,2,1,6,1,10,1,14,1,35,34,18,1,22,1,26,1,30,1,34,1,38,1,42,1,46,1,50,1,43,34,54,1,58,1,128,31,62,1,66,1,70,1,74,1,78,1,47,34,82,1,51,34,86,1,94,1,100,1,106,1,55,34,112,1,116,1,120,1,124,1,128,1,132,1,136,1,140,1,144,1,148,1,152,1,156,1,160,1,164,1,168,1,172,1,176,1,180,1,184,1,188,1,192,1,196,1,200,1,251,14,204,1,208,1,212,1,216,1,220,1,224,1,228,1,232,1,236,1,240,1,244,1,248,1,126,16,252,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,28,2,195,33,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,68,2,72,2,76,2,80,2,84,2,88,2,92,2,96,2,100,2,104,2,108,2,112,2,116,2,120,2,181,7,124,2,128,2,132,2,136,2,140,2,143,2,147,2,151,2,130,16,155,2,159,2,163,2,167,2,171,2,175,2,179,2,183,2,95,33,187,2,191,2,195,2,199,2,203,2,206,2,210,2,214,2,218,2,222,2,226,2,230,2,234,2,238,2,242,2,246,2,250,2,254,2,2,3,6,3,10,3,14,3,18,3,22,3,26,3,30,3,34,3,38,3,42,3,46,3,50,3,54,3,58,3,62,3,66,3,70,3,126,12,74,3,78,3,82,3,86,3,90,3,130,12,94,3,98,3,102,3,138,12,106,3,110,3,104,32,114,3,118,3,122,3,126,3,130,3,134,3,138,3,142,3,146,3,150,3,154,3,158,3,162,3,166,3,199,33,170,3,174,3,203,33,178,3,182,3,186,3,190,3,194,3,198,3,201,3,205,3,209,3,146,12,213,3,221,3,146,16,141,25,224,3,228,3,232,3,236,3,240,3,244,3,248,3,252,3,0,4,4,4,8,4,254,10,12,4,16,4,20,4,24,4,28,4,32,4,36,4,40,4,44,4,48,4,52,4,56,4,60,4,64,4,68,4,72,4,76,4,80,4,84,4,88,4,92,4,96,4,100,4,104,4,108,4,112,4,116,4,120,4,124,4,127,4,131,4,135,4,139,4,97,0,143,4,147,4,26,11,151,4,155,4,159,4,163,4,167,4,120,14,171,4,175,4,34,11,179,4,187,4,191,4,174,16,195,4,207,33,199,4,203,4,178,16,207,4,211,4,215,4,219,4,46,11,223,4,227,4,231,4,50,11,235,4,239,4,243,4,247,4,251,4,255,4,2,5,10,5,14,5,182,16,18,5,22,5,26,5,30,5,33,5,37,5,62,11,41,5,45,5,49,5,53,5,57,5,170,12,61,5,65,5,69,5,73,5,77,5,81,5,85,5,89,5,93,5,97,5,101,5,105,5,109,5,113,5,253,7,207,17,117,5,121,5,125,5,129,5,133,5,191,28,137,5,141,5,145,5,149,5,153,5,157,5,161,5,165,5,169,5,170,30,173,5,177,5,181,5,185,5,189,5,193,5,197,5,201,5,205,5,209,5,213,5,217,5,221,5,225,5,229,5,233,5,237,5,182,12,241,5,245,5,249,5,128,14,253,5,1,6,5,6,9,6,13,6,17,6,21,6,25,6,29,6,33,6,37,6,41,6,45,6,54,6,58,6,62,6,208,16,66,6,70,6,74,6,78,6,82,6,86,6,90,6,94,6,97,6,101,6,105,6,109,6,113,6,117,6,121,6,13,8,125,6,131,6,116,29,137,6,135,21,183,4,141,6,145,6,149,6,190,12,153,6,159,25,157,6,165,6,169,6,173,6,177,6,181,6,185,6,189,6,193,6,197,6,201,6,205,6,209,6,213,6,217,6,105,32,221,6,39,15,225,6,220,16,229,6,233,6,33,8,176,28,237,6,241,6,154,6,41,8,29,35,245,6,249,6,253,6,1,7,5,7,9,7,13,7,104,15,142,30,17,7,21,7,25,7,228,16,29,7,33,7,202,12,37,7,232,16,41,7,45,7,49,7,53,7,57,7,210,12,160,30,240,16,61,7,65,7,17,14,27,5,119,33,110,11,69,7,73,7,77,7,81,7,127,33,85,7,89,7,93,7,97,7,101,7,105,7,109,7,113,7,131,33,117,7,121,7,125,7,129,7,133,7,135,3,137,7,21,14,140,7,144,7,148,7,152,7,156,7,160,7,164,7,168,7,172,7,176,7,180,7,184,7,188,7,192,7,196,7,200,7,204,7,208,7,212,7,216,7,220,7,224,7,228,7,232,7,236,7,240,7,244,7,248,7,252,7,230,12,0,8,4,8,8,8,12,8,16,8,20,8,24,8,28,8,32,8,36,8,40,8,114,11,44,8,48,8,52,8,109,8,56,8,60,8,64,8,68,8,42,7,72,8,78,8,86,8,92,8,98,8,104,8,108,8,248,16,112,8,116,8,120,8,124,8,97,2,128,8,132,8,136,8,140,8,144,8,148,8,234,5,152,8,156,8,79,34,160,8,164,8,168,8,172,8,176,8,180,8,184,8,188,8,192,8,196,8,200,8,204,8,208,8,212,8,252,16,216,8,220,8,224,8,228,8,232,8,236,8,132,15,240,8,244,8,248,8,252,8,0,9,4,9,8,9,12,9,16,9,20,9,105,2,24,9,32,9,38,9,46,9,50,9,54,9,58,9,62,9,66,9,70,9,74,9,138,13,78,9,82,9,86,9,126,11,90,9,94,9,98,9,102,9,106,9,110,9,114,9,118,9,122,9,126,9,130,9,134,9,168,4,138,9,146,9,152,9,160,9,166,9,170,9,174,9,178,9,182,9,186,9,211,33,190,9,194,9,217,3,198,9,202,9,206,9,210,9,213,9,217,9,221,9,225,9,229,9,233,9,237,9,241,9,245,9,249,9,253,9,1,10,5,10,87,34,9,10,211,17,13,10,17,10,21,10,25,10,34,10,38,10,42,10,46,10,50,10,54,10,58,10,62,10,66,10,70,10,74,10,78,10,82,10,71,10,86,10,90,10,215,30,94,10,98,10,102,10,106,10,110,10,114,10,118,10,31,28,122,10,190,6,126,10,130,10,134,10,138,10,142,10,145,10,149,10,153,10,157,10,161,10,165,10,169,10,173,10,177,10,181,10,188,10,197,10,201,10,205,10,209,10,213,10,217,10,221,10,225,10,229,10,233,10,237,10,241,10,245,10,249,10,253,10,1,11,5,11,9,11,13,11,17,11,21,11,25,11,29,11,33,11,37,11,41,11,45,11,49,11,53,11,57,11,61,11,65,11,241,12,69,11,73,11,77,11,81,11,85,11,19,17,89,11,93,11,41,35,97,11,101,11,105,11,109,11,129,2,113,11,117,11,121,11,125,11,95,34,129,11,133,11,137,11,141,11,145,11,149,11,227,33,153,11,159,11,167,11,171,11,175,11,179,11,139,33,183,11,187,11,191,11,195,11,199,11,203,11,207,11,211,11,215,11,219,11,40,28,223,11,227,11,231,11,175,15,235,11,167,14,241,11,245,11,249,11,253,11,1,12,5,12,9,12,13,12,17,12,21,12,25,12,29,12,33,12,37,12,41,12,45,12,23,17,49,12,53,12,57,12,61,12,65,12,69,12,73,12,77,12,81,12,85,12,89,12,93,12,235,33,97,12,101,12,105,12,109,12,113,12,117,12,121,12,179,15,125,12,129,12,133,12,137,12,141,12,145,12,206,30,149,12,153,12,45,35,157,12,161,12,165,12,169,12,163,24,173,12,177,12,181,12,185,12,189,12,193,12,197,12,201,12,205,12,209,12,213,12,217,12,221,12,225,12,229,12,233,12,237,12,240,12,244,12,41,14,248,12,252,12,0,13,4,13,8,13,218,6,12,13,16,13,20,13,24,13,28,13,32,13,239,33,36,13,40,13,44,13,48,13,52,13,56,13,60,13,64,13,68,13,72,13,76,13,80,13,84,13,88,13,91,13,95,13,99,13,199,15,103,13,107,13,111,13,222,6,115,13,121,13,95,10,125,13,129,13,133,13,137,13,61,19,163,11,141,13,145,13,149,13,107,10,153,13,157,13,159,33,161,13,165,13,169,13,173,13,177,13,53,14,181,13,189,13,195,13,199,13,203,13,212,13,216,13,220,13,224,13,228,13,232,13,236,13,240,13,244,13,120,32,248,13,252,13,0,14,4,14,8,14,12,14,16,14,20,14,24,14,173,22,28,14,32,14,36,14,40,14,44,14,48,14,52,14,56,14,60,14,64,14,68,14,72,14,231,15,76,14,163,21,80,14,84,14,88,14,92,14,95,14,99,14,225,20,103,14,107,14,111,14,115,14,119,14,123,14,127,14,131,14,135,14,139,14,143,14,150,14,154,14,108,29,158,14,162,14,166,14,170,14,7,16,174,14,178,14,55,33,182,14,186,14,12,28,190,14,194,14,221,23,198,14,202,14,214,32,206,14,210,14,214,14,3,34,218,14,222,14,226,14,230,14,234,14,238,14,242,14,246,14,250,14,254,14,2,15,5,15,9,15,13,15,17,15,75,17,21,15,29,15,35,15,43,15,51,15,55,15,23,1,59,15,63,15,67,15,71,15,167,33,75,15,79,15,83,15,87,15,91,15,95,15,99,15,175,28,7,34,103,15,107,15,111,15,115,15,119,15,171,33,123,15,127,15,131,15,135,15,138,15,142,15,146,15,150,15,11,34,236,28,154,15,158,15,162,15,166,15,170,15,174,15,45,13,178,15,182,15,186,15,190,15,194,15,198,15,49,13,202,15,206,15,210,15,214,15,218,15,222,15,226,15,230,15,211,2,15,34,234,15,240,15,246,15,252,15,2,16,6,16,10,16,14,16,111,34,18,16,22,16,26,16,33,20,30,16,34,16,1,27,38,16,42,16,46,16,50,16,54,16,58,16,91,17,61,16,65,16,69,16,73,16,77,16,81,16,85,16,89,16,93,16,97,16,166,13,101,16,227,24,105,16,109,16,113,16,117,16,121,16,125,16,129,16,133,16,137,16,141,16,145,16,149,16,153,16,157,16,161,16,99,17,165,16,169,16,173,16,177,16,181,16,123,10,185,16,193,16,199,16,203,16,207,16,222,32,211,16,215,16,219,16,162,29,223,16,227,16,231,16,235,16,239,16,243,16,31,16,247,16,251,16,255,16,3,17,6,17,10,17,14,17,18,17,22,17,157,9,26,17,246,31,30,17,34,17,38,17,42,17,46,17,50,17,54,17,58,17,226,32,62,17,66,17,70,17,111,17,74,17,78,17,82,17,86,17,90,17,115,17,94,17,98,17,102,17,106,17,110,17,114,17,118,17,122,17,126,17,130,17,134,17,138,17,142,17,146,17,150,17,154,17,158,17,105,4,162,17,166,17,170,17,174,17,178,17,182,17,203,14,186,17,194,17,200,17,206,17,47,16,210,17,214,17,205,30,218,17,226,17,234,17,242,17,250,17,2,18,10,18,18,18,26,18,34,18,42,18,50,18,58,18,66,18,74,18,82,18,90,18,98,18,106,18,114,18,122,18,130,18,138,18,146,18,154,18,162,18,170,18,178,18,186,18,194,18,202,18,209,18,216,18,223,18,230,18,237,18,244,18,251,18,2,19,9,19,16,19,23,19,30,19,37,19,46,19,55,19,64,19,73,19,85,19,97,19,109,19,121,19,133,19,145,19,157,19,169,19,181,19,193,19,205,19,217,19,229,19,241,19,253,19,9,20,18,20,27,20,36,20,43,20,50,20,57,20,64,20,71,20,78,20,85,20,92,20,99,20,106,20,113,20,120,20,127,20,134,20,141,20,148,20,157,20,166,20,175,20,184,20,193,20,202,20,211,20,220,20,229,20,238,20,247,20,254,20,5,21,12,21,19,21,26,21,33,21,40,21,47,21,54,21,61,21,68,21,75,21,82,21,89,21,96,21,103,21,112,21,121,21,130,21,139,21,148,21,157,21,166,21,175,21,187,21,196,21,205,21,217,21,229,21,241,21,253,21,9,22,21,22,33,22,45,22,57,22,64,22,71,22,78,22,85,22,92,22,101,22,113,22,125,22,137,22,149,22,158,22,167,22,176,22,183,22,190,22,197,22,204,22,211,22,218,22,225,22,232,22,239,22,246,22,255,22,8,23,17,23,26,23,33,23,40,23,47,23,54,23,61,23,68,23,75,23,82,23,89,23,96,23,103,23,110,23,117,23,124,23,131,23,140,23,149,23,158,23,167,23,176,23,185,23,194,23,206,23,215,23,224,23,231,23,238,23,245,23,252,23,3,24,10,24,19,24,28,24,37,24,46,24,55,24,64,24,76,24,85,24,97,24,109,24,121,24,130,24,139,24,148,24,157,24,166,24,173,24,180,24,187,24,194,24,201,24,208,24,215,24,222,24,231,24,238,24,245,24,254,24,7,25,16,25,23,25,30,25,37,25,44,25,51,25,58,25,65,25,72,25,81,25,90,25,99,25,108,25,117,25,126,25,135,25,144,25,153,25,162,25,169,25,176,25,183,25,190,25,197,25,204,25,211,25,218,25,225,25,234,25,243,25,255,25,11,26,23,26,35,26,47,26,59,26,71,26,83,26,95,26,107,26,119,26,131,26,143,26,155,26,167,26,179,26,191,26,203,26,215,26,224,26,233,26,242,26,251,26,4,27,13,27,22,27,29,27,36,27,43,27,50,27,57,27,64,27,71,27,78,27,85,27,92,27,99,27,106,27,113,27,120,27,127,27,134,27,141,27,148,27,155,27,164,27,173,27,182,27,191,27,200,27,209,27,218,27,227,27,236,27,245,27,254,27,7,28,16,28,25,28,34,28,43,28,55,28,67,28,74,28,81,28,88,28,95,28,102,28,109,28,116,28,125,28,134,28,143,28,152,28,161,28,170,28,179,28,186,28,195,28,204,28,213,28,222,28,231,28,240,28,249,28,0,29,7,29,14,29,21,29,28,29,35,29,42,29,49,29,56,29,63,29,70,29,77,29,84,29,93,29,102,29,111,29,120,29,129,29,138,29,147,29,156,29,165,29,172,29,179,29,186,29,193,29,200,29,207,29,214,29,223,29,232,29,241,29,248,29,255,29,6,30,13,30,20,30,27,30,34,30,41,30,48,30,55,30,62,30,69,30,76,30,83,30,92,30,101,30,110,30,119,30,128,30,137,30,146,30,155,30,164,30,173,30,182,30,191,30,200,30,209,30,218,30,227,30,234,30,241,30,248,30,255,30,6,31,13,31,20,31,27,31,34,31,41,31,48,31,55,31,62,31,69,31,78,31,87,31,96,31,105,31,114,31,123,31,132,31,141,31,150,31,159,31,168,31,177,31,189,31,201,31,213,31,222,31,231,31,240,31,249,31,0,32,7,32,14,32,21,32,30,32,37,32,44,32,51,32,58,32,67,32,76,32,83,32,90,32,99,32,108,32,115,32,124,32,133,32,140,32,147,32,156,32,165,32,172,32,237,29,181,32,190,32,197,32,201,32,51,16,205,32,209,32,213,32,217,32,221,32,225,32,229,32,233,32,139,10,237,32,243,32,251,32,1,33,5,33,9,33,13,33,16,33,20,33,24,33,27,33,31,33,35,33,39,33,43,33,47,33,50,33,54,33,58,33,62,33,187,33,66,33,70,33,74,33,78,33,82,33,86,33,90,33,94,33,98,33,102,33,106,33,110,33,114,33,118,33,122,33,126,33,130,33,134,33,138,33,142,33,146,33,150,33,211,14,154,33,158,33,162,33,166,33,170,33,174,33,178,33,182,33,186,33,190,33,194,33,198,33,202,33,206,33,27,3,210,33,214,33,218,33,222,33,226,33,230,33,234,33,238,33,242,33,246,33,250,33,254,33,2,34,6,34,10,34,14,34,18,34,22,34,26,34,30,34,34,34,38,34,42,34,46,34,50,34,54,34,58,34,62,34,66,34,70,34,74,34,122,6,78,34,82,34,86,34,90,34,94,34,197,30,98,34,102,34,106,34,190,17,110,34,114,34,118,34,122,34,129,34,138,34,142,34,146,34,52,35,150,34,154,34,158,34,162,34,150,10,166,34,172,34,178,34,186,34,192,34,198,34,204,34,212,34,220,34,226,34,232,34,238,34,244,34,250,34,0,35,6,35,12,35,18,35,24,35,28,35,32,35,36,35,40,35,44,35,48,35,51,35,41,5,124,21,136,21,148,21,53,1,160,21,172,21,184,21,196,21,208,21,220,21,232,21,244,21,0,22,12,22,24,22,36,22,48,22,60,22,64,1,72,22,84,22,63,5,96,22,108,22,120,22,132,22,144,22,156,22,168,22,180,22,8,17,192,22,204,22,75,1,20,17,216,22,228,22,240,22,252,22,45,0,8,23,20,23,32,23,44,23,74,5,56,23,68,23,80,23,92,23,104,23,116,23,128,23,140,23,32,17,152,23,164,23,176,23,188,23,23,0,44,17,56,17,68,17,212,23,224,23,236,23,248,23,4,24,16,24,28,24,38,6,40,24,80,17,52,24,64,24,76,24,88,24,100,24,112,24,124,24,49,6,136,24,148,24,160,24,172,24,184,24,196,24,208,24,220,24,60,6,232,24,108,1,97,1,71,6,97,1,93,6,104,6,244,24,12,25,24,25,36,25,48,25,60,25,92,17,72,25,84,25,108,25,120,25,132,25,144,25,156,25,168,25,180,25,192,25,204,25,216,25,228,25,240,25,252,25,8,26,119,1,20,26,32,26,44,26,56,26,68,26,80,26,92,26,104,26,116,26,128,26,140,26,152,26,130,1,164,26,176,26,104,17,188,26,200,26,240,16,212,26,224,26,4,27,141,1,16,27,28,27,40,27,52,27,64,27,76,27,88,27,100,27,112,27,124,27,136,27,148,27,160,27,172,27,184,27,196,27,208,27,220,27,244,27,0,28,12,28,24,28,116,17,152,1,36,28,48,28,60,28,72,28,56,0,84,28,96,28,108,28,163,1,120,28,132,28,144,28,156,28,168,28,180,28,192,28,204,28,137,6,216,28,228,28,240,28,252,28,174,1,8,29,128,17,20,29,32,29,44,29,56,29,140,17,68,29,80,29,92,29,116,29,128,29,140,29,152,29,164,29,176,29,188,29,200,29,212,29,224,29,236,29,248,29,4,30,16,30,28,30,40,30,52,30,64,30,76,30,88,30,100,30,159,6,112,30,124,30,136,30,148,30,152,17,170,6,160,30,172,30,184,30,181,6,196,30,208,30,220,30,232,30,164,17,244,30,176,17,188,17,0,31,12,31,24,31,36,31,48,31,60,31,72,31,84,31,200,17,192,6,212,17,108,31,203,6,120,31,132,31,144,31,156,31,168,31,185,1,180,31,192,31,224,17,214,6,196,1,225,6,236,6,207,1,204,31,216,31,228,31,240,31,252,31,8,32,20,32,32,32,44,32,56,32,68,32,67,0,80,32,92,32,104,32,116,32,128,32,140,32,152,32,164,32,176,32,188,32,236,17,200,32,212,32,224,32,4,33,16,33,28,33,40,33,52,33,64,33,76,33,88,33,100,33,112,33,124,33,136,33,148,33,160,33,78,0,172,33,184,33,196,33,208,33,218,1,220,33,232,33,46,7,244,33,0,34,248,17,12,34,4,18,89,0,24,34,36,34,1,0,240,1,48,34,60,34,72,34,84,34,6,2,16,18,108,34,28,2,120,34,28,18,132,34,144,34,98,8,156,34,168,34,180,34,39,2,192,34,204,34,216,34,228,34,240,34,131,8,50,2,252,34,8,35,61,2,20,35,40,18,44,35,142,8,56,35,68,35,72,2,80,35,92,35,104,35,116,35,128,35,83,2,140,35,152,35,164,35,176,35,188,35,200,35,212,35,224,35,236,35,248,35,4,36,16,36,28,36,40,36,15,10,26,10,52,36,64,36,76,36,88,36,100,36,112,36,124,36,136,36,148,36,160,36,172,36,184,36,196,36,208,36,220,36,37,10,232,36,244,36,0,37,12,37,24,37,36,37,48,37,60,37,72,37,84,37,96,37,108,37,120,37,132,37,144,37,156,37,168,37,48,10,180,37,192,37,204,37,94,2,216,37,228,37,240,37,252,37,8,38,20,38,32,38,44,38,56,38,52,18,68,38,64,18,76,18,80,38,92,38,104,38,105,2,116,38,128,38,140,38,152,38,164,38,176,38,188,38,59,10,200,38,212,38,224,38,236,38,248,38,4,39,16,39,114,10,70,10,92,10,28,39,40,39,52,39,64,39,76,39,88,39,100,39,111,0,112,39,241,16,125,10,124,39,148,39,160,39,172,39,184,39,196,39,88,18,100,18,208,39,220,39,232,39,112,18,12,40,24,40,147,10,36,40,60,40,72,40,116,2,84,40,96,40,127,2,138,2,108,40,120,40,122,0,169,10,132,40,144,40,156,40,168,40,180,40,192,40,204,40,216,40,133,0,228,40,240,40,252,40,8,41,180,10,20,41,32,41,149,2,44,41,191,10,56,41,68,41,80,41,92,41,104,41,101,21,116,41,128,41,140,41,152,41,160,2,144,0,171,2,224,10,164,41,176,41,188,41,200,41,155,0,212,41,224,41,236,41,105,74,248,41,4,42,16,42,28,42,1,11,40,42,52,42,64,42,76,42,88,42,23,11,34,11,166,0,100,42,112,42,124,18,124,42,136,42,148,42,160,42,172,42,136,18,184,42,208,42,220,42,232,42,244,42,0,43,12,43,24,43,36,43,48,43,60,43,72,43,84,43,120,43,132,43,144,43,156,43,168,43,180,43,192,43,45,11,204,43,216,43,228,43,240,43,148,18,252,43,8,44,20,44,160,18,32,44,44,44,56,11,56,44,68,44,80,44,67,11,92,44,104,44,116,44,128,44,100,11,78,11,182,2,182,2,89,11,193,2,140,44,152,44,204,2,164,44,176,44,188,44,200,44,177,0,212,44,224,44,236,44,248,44,4,45,16,45,215,2,28,45,40,45,188,0,52,45,64,45,76,45,88,45,100,45,112,45,124,45,136,45,148,45,160,45,172,45,184,45,196,45,208,45,113,21,220,45,232,45,244,45,172,18,0,46,12,46,144,11,24,46,36,46,48,46,60,46,72,46,84,46,96,46,108,46,120,46,132,46,199,11,155,11,166,11,226,2,144,46,156,46,168,46,180,46,192,46,204,46,216,46,228,46,210,11,240,46,252,46,8,47,232,11,20,47,32,47,44,47,56,47,68,47,80,47,92,47,104,47,116,47,128,47,140,47,152,47,248,2,237,2,237,2,3,3,3,3,164,47,176,47,188,47,200,47,212,47,224,47,243,11,184,18,236,47,248,47,4,48,16,48,28,48,254,11,40,48,52,48,64,48,76,48,196,18,88,48,100,48,112,48,124,48,208,18,136,48,148,48,160,48,9,12,172,48,20,12,184,48,196,48,208,48,220,18,220,48,232,48,244,48,0,49,232,18,12,49,24,49,36,49,48,49,60,49,72,49,84,49,96,49,31,12,108,49,120,49,199,0,132,49,144,49,156,49,168,49,180,49,192,49,204,49,14,3,216,49,42,12,228,49,240,49,252,49,8,50,25,3,20,50,228,16,44,50,56,50,68,50,80,50,92,50,116,50,140,50,252,16,252,16,152,50,164,50,176,50,188,50,200,50,212,50,224,50,236,50,248,50,4,51,16,51,28,51,40,51,52,51,64,51,76,51,88,51,100,51,112,51,124,51,136,51,148,51,160,51,172,51,196,51,208,51,220,51,244,18,0,19,232,51,244,51,0,52,36,3,12,52,24,52,36,52,48,52,60,52,53,12,72,52,84,52,64,12,96,52,108,52,100,21,120,52,47,3,132,52,144,52,156,52,168,52,58,3,180,52,192,52,204,52,216,52,228,52,240,52,69,3,210,0,210,0,252,52,8,53,20,53,44,53,97,12,68,53,80,53,92,53,104,53,116,53,128,53,140,53,152,53,164,53,176,53,108,12,188,53,200,53,12,19,91,3,80,3,102,3,212,53,224,53,236,53,248,53,4,54,16,54,28,54,40,54,52,54,64,54,76,54,88,54,100,54,112,54,124,54,136,54,221,0,148,54,160,54,172,54,184,54,196,54,24,19,208,54,220,54,232,54,244,54,0,55,12,55,152,12,24,55,36,55,48,55,60,55,72,55,84,55,96,55,113,3,108,55,120,55,132,55,144,55,156,55,168,55,174,12,180,55,192,55,124,3,204,55,216,55,240,55,252,55,196,12,8,56,20,56,32,56,44,56,56,56,68,56,80,56,92,56,104,56,116,56,128,56,140,56,152,56,164,56,176,56,188,56,135,3,200,56,212,56,240,12,224,56,236,56,248,56,4,57,36,19,251,12,48,19,16,57,60,19,28,57,40,57,52,57,6,13,64,57,76,57,88,57,100,57,112,57,72,19,124,57,136,57,148,57,160,57,172,57,184,57,196,57,17,13,208,57,220,57,232,57,28,13,244,57,0,58,12,58,50,13,39,13,24,58,61,13,36,58,48,58,112,21,60,58,72,13,72,58,84,58,96,58,108,58,146,3,120,58,132,58,83,13,84,19,144,58,96,19,92,74,156,58,168,3,157,3,157,3,168,58,108,19,120,19,180,58,192,58,132,19,228,58,240,58,252,58,8,59,20,59,32,59,144,19,44,59,56,59,68,59,156,19,80,59,92,59,104,59,168,19,116,59,179,3,128,59,140,59,152,59,164,59,176,59,188,59,200,59,212,59,224,59,180,19,236,59,118,74,105,13,248,59,232,0,4,60,16,60,28,60,204,13,40,60,52,60,64,60,76,60,88,60,100,60,112,60,136,60,148,60,160,60,192,19,184,60,208,60,196,60,220,60,232,60,215,13,244,60,0,61,12,61,24,61,190,3,36,61,48,61,201,3,60,61,72,61,84,61,96,61,108,61,12,0,120,61,132,61,212,3,144,61,156,61,168,61,3,14,180,61,192,61,204,61,216,61,204,19,228,61,216,19,240,61,252,61,8,62,58,14,20,62,32,62,44,62,56,62,69,14,223,3,223,3,234,3,245,3,68,62,80,62,80,14,92,62,104,62,116,62,128,62,91,14,228,19,140,62,152,62,164,62,176,62,188,62,200,62,212,62,243,0,224,62,236,62,248,62,4,63,16,63,0,4,28,63,40,63,64,63,11,4,76,63,88,63,100,63,112,63,254,0,124,63,136,63,148,63,160,63,240,19,172,63,184,63,22,4,196,63,208,63,220,63,232,63,244,63,0,64,33,4,252,19,24,64,36,64,48,64,60,64,72,64,84,64,96,64,44,4,55,4,66,4,190,14,201,14,212,14,8,20,108,64,120,64,132,64,223,14,144,64,156,64,168,64,245,14,180,64,192,64,0,15,204,64,216,64,228,64,240,64,252,64,77,4,9,1,20,20,8,65,20,65,32,65,44,65,56,65,68,65,80,65,32,20,104,65,99,4,116,65,128,65,140,65,152,65,164,65,176,65,188,65,200,65,212,65,224,65,248,65,4,66,16,66,44,20,28,66,40,66,52,66,110,4,64,66,76,66,88,66,100,66,112,66,132,4,121,4,121,4,124,66,136,66,148,66,20,1,160,66,172,66,184,66,66,15,196,66,208,66,220,66,232,66,244,66,0,67,143,4,56,20,12,67,24,67,99,15,36,67,48,67,60,67,72,67,84,67,110,15,96,67,154,4,108,67,120,67,131,74,132,67,68,20,144,67,156,67,168,67,165,4,180,67,80,20,192,67,132,15,204,67,216,67,228,67,240,67,252,67,143,15,8,68,20,68,32,68,44,68,56,68,68,68,80,68,92,68,104,68,116,68,128,68,92,20,140,68,152,68,164,68,104,20,116,20,154,15,176,68,188,68,200,68,212,68,128,20,224,68,176,4,187,4,187,4,165,15,140,20,198,4,236,68,248,68,1,0,100,0,1,0,232,0,229,1,100,0,17,2,9,1,23,0,88,4,134,7,1,0,1,0,251,1,229,16,241,16,133,0,144,0,229,1,123,7,101,7,254,0,229,16,42,1,86,1,12,0,12,0,90,7,67,0,100,0,96,34,148,6,85,5,109,8,44,4,122,0,116,13,4,69,145,7,102,14,247,6,207,12,22,15,108,1,50,2,128,20,8,17,23,0,80,3,176,4,198,15,130,12,209,15,176,17,172,60,193,2,220,15,81,10,31,1,32,17,244,18,120,8,82,6,20,20,44,17,122,0,64,1,174,1,56,0,218,12,175,8,130,1,96,5,190,3,186,8,197,8,141,12,156,7,204,58,232,0,218,1,16,69,119,1,0,25,92,17,128,17,96,25,56,0,248,13,242,4,168,19,153,8,104,29,232,27,88,4,208,8,219,8,2,7,230,8,167,7,241,8,229,16,178,7,28,69,189,7,251,1,127,13,216,58,57,7,185,1,152,17,171,2,212,20,188,17,164,17,200,20,212,17,152,20,152,20,64,18,12,0,75,12,168,14,53,1,86,12,176,15,115,6,187,15,196,42,179,14,67,0,30,5,207,1,200,7,107,5,241,16,185,12,136,39,236,26,140,17,35,7,236,32,164,8,211,7,222,7,28,2,23,0,118,5,55,15,6,2,45,0,112,7,13,7,248,17,124,14,200,23,45,0,61,2,72,2,83,2,7,9,166,0,18,9,75,1,204,2,29,9,40,9,233,7,89,0,40,69,244,7,138,13,166,0,196,1,188,20,16,18,52,18,14,14,89,0,104,17,105,2,168,3,8,5,52,69,255,7,116,2,127,2,138,2,253,4,111,11,74,16,0,40,229,16,34,0,192,73,111,0,30,16,41,16,52,16,235,10,88,18,244,39,112,18,158,10,10,8,133,0,111,0,241,16,129,5,39,2,160,2,144,0,28,18,140,5,155,0,122,11,12,11,155,0,33,15,248,2,177,0,151,5,133,11,188,0,162,5,237,13,4,18,246,10,136,18,180,19,177,0,234,3,88,21,215,2,188,0,248,26,199,0,173,5,24,7,243,0,234,14,14,3,62,9,25,3,184,5,48,19,199,0,77,15,177,11,231,4,121,15,252,8,79,7,188,11,88,15,51,9,73,9,135,14,124,18,149,13,117,9,172,18,194,9,238,9,80,20,94,13,208,18,220,18,184,18,76,18,232,18,224,20,236,20,195,5,84,9,226,13,66,4,95,9,36,3,47,3,152,1,221,0,69,3,19,5,106,9,206,5,102,3,0,19,78,0,17,2,91,3,160,13,136,10,128,50,24,19,248,20,126,6,236,17,184,51,4,21,28,72,58,3,119,12,210,0,12,19,32,53,52,63,221,0,160,18,56,53,52,5,128,9,103,10,21,8,135,3,113,3,124,3,76,69,25,14,16,21,56,17,228,55,252,16,76,21,217,5,228,19,204,19,96,19,146,3,84,19,113,14,92,74,32,8,43,8,139,9,68,20,40,18,31,1,179,3,150,9,54,8,228,5,171,13,132,19,94,2,68,17,224,17,221,11,32,50,108,19,120,19,156,19,100,18,28,21,239,5,68,7,161,9,201,3,55,4,12,0,212,3,124,60,192,19,60,19,86,1,172,9,250,5,77,4,11,4,163,12,0,4,202,10,183,9,33,4,229,12,182,13,65,8,5,6,240,19,40,21,216,19,80,17,240,1,36,14,47,14,245,3,243,0,252,19,12,64,8,20,200,17,11,15,92,65,32,20,205,9,216,9,227,9,20,1,132,4,56,20,193,13,143,4,16,6,154,4,165,4,92,20,34,0,9,1,236,65,248,32,44,20,148,18,99,4,104,20,116,17,110,4,64,21,32,35,78,0,20,1,196,18,96,43,108,43,163,1,104,50,72,19,116,20,198,4,44,15,76,8,42,1,140,20,213,10,87,8,220,4,141,1,176,20,157,14,249,9,254,0,48,40,36,19,146,14,144,19,20,17,27,6,4,10,226,2,149,2,22,4,96,31,64,69,164,20,164,20,88,69,100,69,31,1,112,69,124,69,136,69,148,69,160,69,172,69,184,69,196,69,42,1,209,4,209,4,231,15,208,69,176,20,220,69,242,15,232,69,244,69,220,4,0,70,12,70,24,70,36,70,48,70,60,70,72,70,84,70,96,70,108,70,253,15,120,70,132,70,144,70,156,70,168,70,180,70,192,70,204,70,216,70,228,70,240,70,252,70,8,71,20,71,32,71,44,71,56,71,68,71,80,71,92,71,104,71,116,71,8,16,128,71,140,71,152,71,188,20,164,71,176,71,188,71,200,71,212,71,224,71,236,71,200,20,212,20,248,71,19,16,4,72,224,20,236,20,16,72,248,20,4,21,16,21,40,72,52,72,64,72,28,21,76,72,40,21,88,72,100,72,112,72,124,72,136,72,148,72,160,72,172,72,184,72,196,72,208,72,220,72,232,72,244,72,0,73,12,73,24,73,36,73,48,73,60,73,72,73,84,73,96,73,108,73,63,16,120,73,132,73,144,73,156,73,168,73,180,73,204,73,52,21,52,21,216,73,228,73,240,73,231,4,252,73,8,74,20,74,64,21,229,16,85,16,96,16,242,4,107,16,118,16,8,5,253,4,34,0,129,16,19,5,140,16,151,16,162,16,173,16,184,16,34,0,195,16,206,16,76,21,32,74,88,21,44,74,56,74,68,74,217,16,80,74,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,248,41,0,32,7,0,0,0,38,9,0,0,255,41,0,0,255,41,0,0,164,1,0,0,1,0,0,0,31,34,0,0,109,97,112,84,105,109,101,122,111,110,101,115,0,65,99,114,101,0,48,48,49,0,65,102,103,104,97,110,105,115,116,97,110,0,65,102,114,105,99,97,95,67,101,110,116,114,97,108,0,66,73,0,66,87,0,67,68,0,77,87,0,82,87,0,90,77,0,90,87,0,65,102,114,105,99,97,95,69,97,115,116,101,114,110,0,68,74,0,69,82,0,69,84,0,75,77,0,77,71,0,83,79,0,84,90,0,85,71,0,89,84,0,65,102,114,105,99,97,95,70,97,114,87,101,115,116,101,114,110,0,65,102,114,105,99,97,95,83,111,117,116,104,101,114,110,0,76,83,0,83,90,0,65,102,114,105,99,97,95,87,101,115,116,101,114,110,0,65,79,0,66,74,0,67,70,0,67,71,0,67,77,0,71,65,0,71,81,0,78,69,0,84,68,0,65,107,116,121,117,98,105,110,115,107,0,65,108,97,115,107,97,0,65,108,97,115,107,97,95,72,97,119,97,105,105,0,65,109,97,122,111,110,0,65,109,101,114,105,99,97,95,67,101,110,116,114,97,108,0,66,90,0,67,65,0,67,82,0,71,84,0,72,78,0,77,88,0,83,86,0,65,109,101,114,105,99,97,95,69,97,115,116,101,114,110,0,66,83,0,72,84,0,74,77,0,75,89,0,80,65,0,65,109,101,114,105,99,97,95,77,111,117,110,116,97,105,110,0,65,109,101,114,105,99,97,95,80,97,99,105,102,105,99,0,65,114,97,98,105,97,110,0,66,72,0,73,81,0,75,87,0,81,65,0,89,69,0,65,114,103,101,110,116,105,110,97,0,65,114,103,101,110,116,105,110,97,95,87,101,115,116,101,114,110,0,65,114,109,101,110,105,97,0,65,115,104,107,104,97,98,97,100,0,65,116,108,97,110,116,105,99,0,65,71,0,65,73,0,65,87,0,66,66,0,66,77,0,66,81,0,67,87,0,68,77,0,71,68,0,71,76,0,71,80,0,75,78,0,76,67,0,77,70,0,77,81,0,77,83,0,80,82,0,83,88,0,84,84,0,86,67,0,86,71,0,86,73,0,65,117,115,116,114,97,108,105,97,95,67,101,110,116,114,97,108,0,65,117,115,116,114,97,108,105,97,95,67,101,110,116,114,97,108,87,101,115,116,101,114,110,0,65,117,115,116,114,97,108,105,97,95,69,97,115,116,101,114,110,0,65,117,115,116,114,97,108,105,97,95,87,101,115,116,101,114,110,0,65,122,101,114,98,97,105,106,97,110,0,66,97,110,103,108,97,100,101,115,104,0,66,101,114,105,110,103,0,66,104,117,116,97,110,0,66,111,108,105,118,105,97,0,66,111,114,110,101,111,0,66,114,97,115,105,108,105,97,0,66,114,105,116,105,115,104,0,67,104,97,109,111,114,114,111,0,71,85,0,67,104,105,108,101,0,67,104,105,110,97,0,67,111,108,111,109,98,105,97,0,67,111,111,107,0,67,117,98,97,0,68,97,99,99,97,0,68,111,109,105,110,105,99,97,110,0,68,117,116,99,104,95,71,117,105,97,110,97,0,69,97,115,116,95,84,105,109,111,114,0,69,99,117,97,100,111,114,0,69,117,114,111,112,101,95,67,101,110,116,114,97,108,0,65,68,0,65,76,0,65,84,0,66,65,0,66,69,0,67,72,0,67,90,0,68,69,0,68,75,0,69,83,0,71,73,0,72,82,0,72,85,0,73,84,0,76,73,0,76,85,0,77,67,0,77,69,0,77,75,0,78,76,0,78,79,0,80,76,0,82,83,0,83,69,0,83,73,0,83,74,0,83,75,0,83,77,0,84,78,0,86,65,0,88,75,0,69,117,114,111,112,101,95,69,97,115,116,101,114,110,0,65,88,0,66,71,0,67,89,0,69,71,0,70,73,0,71,82,0,76,66,0,69,117,114,111,112,101,95,70,117,114,116,104,101,114,95,69,97,115,116,101,114,110,0,82,85,0,69,117,114,111,112,101,95,87,101,115,116,101,114,110,0,70,79,0,70,97,108,107,108,97,110,100,0,70,114,101,110,99,104,95,71,117,105,97,110,97,0,70,114,101,110,99,104,95,83,111,117,116,104,101,114,110,0,70,114,117,110,122,101,0,66,70,0,67,73,0,71,66,0,71,72,0,71,77,0,71,78,0,73,69,0,77,76,0,77,82,0,83,72,0,83,76,0,83,78,0,84,71,0,71,105,108,98,101,114,116,95,73,115,108,97,110,100,115,0,71,114,101,101,110,108,97,110,100,0,71,114,101,101,110,108,97,110,100,95,67,101,110,116,114,97,108,0,71,114,101,101,110,108,97,110,100,95,69,97,115,116,101,114,110,0,71,114,101,101,110,108,97,110,100,95,87,101,115,116,101,114,110,0,71,117,108,102,0,79,77,0,72,97,119,97,105,105,95,65,108,101,117,116,105,97,110,0,73,110,100,105,97,0,76,75,0,73,110,100,105,97,110,95,79,99,101,97,110,0,73,110,100,111,99,104,105,110,97,0,75,72,0,76,65,0,73,110,100,111,110,101,115,105,97,95,67,101,110,116,114,97,108,0,73,110,100,111,110,101,115,105,97,95,69,97,115,116,101,114,110,0,73,110,100,111,110,101,115,105,97,95,87,101,115,116,101,114,110,0,73,114,97,110,0,73,114,105,115,104,0,73,115,114,97,101,108,0,74,97,112,97,110,0,75,97,122,97,107,104,115,116,97,110,95,69,97,115,116,101,114,110,0,75,97,122,97,107,104,115,116,97,110,95,87,101,115,116,101,114,110,0,75,105,122,105,108,111,114,100,97,0,75,111,114,101,97,0,75,117,121,98,121,115,104,101,118,0,75,121,114,103,121,115,116,97,110,0,76,97,110,107,97,0,76,105,98,101,114,105,97,0,76,105,110,101,95,73,115,108,97,110,100,115,0,77,97,108,97,121,97,0,77,97,108,97,121,115,105,97,0,77,97,114,115,104,97,108,108,95,73,115,108,97,110,100,115,0,77,101,120,105,99,111,95,80,97,99,105,102,105,99,0,77,111,110,103,111,108,105,97,0,77,121,97,110,109,97,114,0,78,101,112,97,108,0,78,101,119,95,67,97,108,101,100,111,110,105,97,0,78,101,119,95,90,101,97,108,97,110,100,0,65,81,0,78,101,119,102,111,117,110,100,108,97,110,100,0,78,111,114,116,104,95,77,97,114,105,97,110,97,0,80,97,107,105,115,116,97,110,0,80,97,112,117,97,95,78,101,119,95,71,117,105,110,101,97,0,80,97,114,97,103,117,97,121,0,80,101,114,117,0,80,104,105,108,105,112,112,105,110,101,115,0,80,104,111,101,110,105,120,95,73,115,108,97,110,100,115,0,80,105,101,114,114,101,95,77,105,113,117,101,108,111,110,0,83,97,109,111,97,0,83,101,121,99,104,101,108,108,101,115,0,83,104,101,118,99,104,101,110,107,111,0,83,111,108,111,109,111,110,0,83,117,114,105,110,97,109,101,0,83,118,101,114,100,108,111,118,115,107,0,84,97,106,105,107,105,115,116,97,110,0,84,111,107,101,108,97,117,0,84,111,110,103,97,0,84,117,114,107,101,121,0,84,117,114,107,109,101,110,105,115,116,97,110,0,84,117,118,97,108,117,0,85,114,97,108,115,107,0,85,114,117,103,117,97,121,0,85,122,98,101,107,105,115,116,97,110,0,86,97,110,117,97,116,117,0,86,101,110,101,122,117,101,108,97,0,89,117,107,111,110,0,109,101,116,97,122,111,110,101,73,100,115,0,97,99,114,101,0,97,102,99,101,0,97,102,101,97,0,97,102,103,104,0,97,102,115,111,0,97,102,119,101,0,97,108,97,109,0,97,108,97,115,0,97,109,97,122,0,97,109,99,101,0,97,109,101,97,0,97,109,109,111,0,97,109,112,97,0,97,110,97,100,0,97,112,105,97,0,97,113,116,97,0,97,113,116,111,0,97,114,97,98,0,97,114,103,101,0,97,114,109,101,0,97,114,119,101,0,97,117,99,101,0,97,117,99,119,0,97,117,101,97,0,97,117,119,101,0,97,122,101,114,0,97,122,111,114,0,98,97,110,103,0,98,104,117,116,0,98,111,108,105,0,98,114,97,115,0,98,114,117,110,0,99,97,115,101,0,99,97,118,101,0,99,104,97,109,0,99,104,97,116,0,99,104,105,108,0,99,104,105,110,0,99,104,111,105,0,99,104,114,105,0,99,111,99,111,0,99,111,108,111,0,99,111,111,107,0,99,117,98,97,0,100,97,118,105,0,100,117,109,111,0,101,97,115,116,0,101,97,116,105,0,101,99,117,97,0,101,117,99,101,0,101,117,101,97,0,101,117,102,101,0,101,117,119,101,0,102,97,108,107,0,102,105,106,105,0,102,114,103,117,0,102,114,115,111,0,103,97,108,97,0,103,97,109,98,0,103,101,111,114,0,103,105,105,115,0,103,114,101,97,0,103,114,101,101,0,103,114,119,101,0,103,117,97,109,0,103,117,108,102,0,103,117,121,97,0,104,97,97,108,0,104,111,107,111,0,104,111,118,100,0,105,110,100,105,0,105,110,100,111,0,105,110,111,99,0,105,110,119,101,0,105,114,97,110,0,105,114,107,117,0,105,115,114,97,0,106,97,112,97,0,107,97,101,97,0,107,97,109,99,0,107,97,119,101,0,107,111,114,101,0,107,111,115,114,0,107,114,97,115,0,107,121,114,103,0,108,97,110,107,0,108,105,105,115,0,108,111,104,111,0,109,97,99,97,0,109,97,103,97,0,109,97,105,115,0,109,97,108,100,0,109,97,114,113,0,109,97,117,114,0,109,97,119,115,0,109,101,112,97,0,109,103,109,116,0,109,111,110,103,0,109,111,115,99,0,109,121,97,110,0,110,97,117,114,0,110,101,99,97,0,110,101,112,97,0,110,101,119,102,0,110,101,122,101,0,110,105,117,101,0,110,111,109,97,0,110,111,114,102,0,110,111,114,111,0,110,111,118,111,0,111,109,115,107,0,112,97,107,105,0,112,97,110,103,0,112,97,114,97,0,112,101,114,117,0,112,104,105,108,0,112,104,105,115,0,112,105,109,105,0,112,105,116,99,0,112,111,110,97,0,112,121,111,110,0,113,121,122,121,0,114,101,117,110,0,114,111,116,104,0,115,97,107,104,0,115,97,109,97,0,115,97,109,111,0,115,101,121,99,0,115,105,110,103,0,115,111,103,101,0,115,111,108,111,0,115,117,114,105,0,115,121,111,119,0,116,97,104,105,0,116,97,105,112,0,116,97,106,105,0,116,111,107,101,0,116,111,110,103,0,116,114,117,107,0,116,117,114,107,0,116,117,118,97,0,117,114,117,103,0,117,122,98,101,0,118,97,110,117,0,118,101,110,101,0,118,108,97,100,0,118,111,108,103,0,118,111,115,116,0,119,97,107,101,0,119,97,108,108,0,121,97,107,117,0,121,101,107,97,0,121,117,107,111,0,109,101,116,97,122,111,110,101,73,110,102,111,0,65,102,114,105,99,97,58,65,98,105,100,106,97,110,0,65,102,114,105,99,97,58,65,99,99,114,97,0,65,102,114,105,99,97,58,65,100,100,105,115,95,65,98,97,98,97,0,65,102,114,105,99,97,58,65,108,103,105,101,114,115,0,65,102,114,105,99,97,58,65,115,109,101,114,97,0,65,102,114,105,99,97,58,66,97,109,97,107,111,0,65,102,114,105,99,97,58,66,97,110,103,117,105,0,65,102,114,105,99,97,58,66,97,110,106,117,108,0,65,102,114,105,99,97,58,66,105,115,115,97,117,0,65,102,114,105,99,97,58,66,108,97,110,116,121,114,101,0,65,102,114,105,99,97,58,66,114,97,122,122,97,118,105,108,108,101,0,65,102,114,105,99,97,58,66,117,106,117,109,98,117,114,97,0,65,102,114,105,99,97,58,67,97,105,114,111,0,65,102,114,105,99,97,58,67,97,115,97,98,108,97,110,99,97,0,65,102,114,105,99,97,58,67,101,117,116,97,0,65,102,114,105,99,97,58,67,111,110,97,107,114,121,0,65,102,114,105,99,97,58,68,97,107,97,114,0,65,102,114,105,99,97,58,68,97,114,95,101,115,95,83,97,108,97,97,109,0,65,102,114,105,99,97,58,68,106,105,98,111,117,116,105,0,65,102,114,105,99,97,58,68,111,117,97,108,97,0,65,102,114,105,99,97,58,69,108,95,65,97,105,117,110,0,65,102,114,105,99,97,58,70,114,101,101,116,111,119,110,0,65,102,114,105,99,97,58,71,97,98,111,114,111,110,101,0,65,102,114,105,99,97,58,72,97,114,97,114,101,0,65,102,114,105,99,97,58,74,111,104,97,110,110,101,115,98,117,114,103,0,65,102,114,105,99,97,58,74,117,98,97,0,65,102,114,105,99,97,58,75,97,109,112,97,108,97,0,65,102,114,105,99,97,58,75,104,97,114,116,111,117,109,0,65,102,114,105,99,97,58,75,105,103,97,108,105,0,65,102,114,105,99,97,58,75,105,110,115,104,97,115,97,0,65,102,114,105,99,97,58,76,97,103,111,115,0,65,102,114,105,99,97,58,76,105,98,114,101,118,105,108,108,101,0,65,102,114,105,99,97,58,76,111,109,101,0,65,102,114,105,99,97,58,76,117,97,110,100,97,0,65,102,114,105,99,97,58,76,117,98,117,109,98,97,115,104,105,0,65,102,114,105,99,97,58,76,117,115,97,107,97,0,65,102,114,105,99,97,58,77,97,108,97,98,111,0,65,102,114,105,99,97,58,77,97,112,117,116,111,0,65,102,114,105,99,97,58,77,97,115,101,114,117,0,65,102,114,105,99,97,58,77,98,97,98,97,110,101,0,65,102,114,105,99,97,58,77,111,103,97,100,105,115,104,117,0,65,102,114,105,99,97,58,77,111,110,114,111,118,105,97,0,65,102,114,105,99,97,58,78,97,105,114,111,98,105,0,65,102,114,105,99,97,58,78,100,106,97,109,101,110,97,0,65,102,114,105,99,97,58,78,105,97,109,101,121,0,65,102,114,105,99,97,58,78,111,117,97,107,99,104,111,116,116,0,65,102,114,105,99,97,58,79,117,97,103,97,100,111,117,103,111,117,0,65,102,114,105,99,97,58,80,111,114,116,111,45,78,111,118,111,0,65,102,114,105,99,97,58,83,97,111,95,84,111,109,101,0,65,102,114,105,99,97,58,84,114,105,112,111,108,105,0,65,102,114,105,99,97,58,84,117,110,105,115,0,65,102,114,105,99,97,58,87,105,110,100,104,111,101,107,0,65,109,101,114,105,99,97,58,65,100,97,107,0,65,109,101,114,105,99,97,58,65,110,99,104,111,114,97,103,101,0,65,109,101,114,105,99,97,58,65,110,103,117,105,108,108,97,0,65,109,101,114,105,99,97,58,65,110,116,105,103,117,97,0,65,109,101,114,105,99,97,58,65,114,97,103,117,97,105,110,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,76,97,95,82,105,111,106,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,82,105,111,95,71,97,108,108,101,103,111,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,108,116,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,74,117,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,76,117,105,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,84,117,99,117,109,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,85,115,104,117,97,105,97,0,65,109,101,114,105,99,97,58,65,114,117,98,97,0,65,109,101,114,105,99,97,58,65,115,117,110,99,105,111,110,0,65,109,101,114,105,99,97,58,66,97,104,105,97,0,65,109,101,114,105,99,97,58,66,97,104,105,97,95,66,97,110,100,101,114,97,115,0,65,109,101,114,105,99,97,58,66,97,114,98,97,100,111,115,0,65,109,101,114,105,99,97,58,66,101,108,101,109,0,65,109,101,114,105,99,97,58,66,101,108,105,122,101,0,65,109,101,114,105,99,97,58,66,108,97,110,99,45,83,97,98,108,111,110,0,65,109,101,114,105,99,97,58,66,111,97,95,86,105,115,116,97,0,65,109,101,114,105,99,97,58,66,111,103,111,116,97,0,65,109,101,114,105,99,97,58,66,111,105,115,101,0,65,109,101,114,105,99,97,58,66,117,101,110,111,115,95,65,105,114,101,115,0,65,109,101,114,105,99,97,58,67,97,109,98,114,105,100,103,101,95,66,97,121,0,65,109,101,114,105,99,97,58,67,97,109,112,111,95,71,114,97,110,100,101,0,65,109,101,114,105,99,97,58,67,97,110,99,117,110,0,65,109,101,114,105,99,97,58,67,97,114,97,99,97,115,0,65,109,101,114,105,99,97,58,67,97,116,97,109,97,114,99,97,0,65,109,101,114,105,99,97,58,67,97,121,101,110,110,101,0,65,109,101,114,105,99,97,58,67,97,121,109,97,110,0,65,109,101,114,105,99,97,58,67,104,105,99,97,103,111,0,65,109,101,114,105,99,97,58,67,104,105,104,117,97,104,117,97,0,65,109,101,114,105,99,97,58,67,105,117,100,97,100,95,74,117,97,114,101,122,0,65,109,101,114,105,99,97,58,67,111,114,97,108,95,72,97,114,98,111,117,114,0,65,109,101,114,105,99,97,58,67,111,114,100,111,98,97,0,65,109,101,114,105,99,97,58,67,111,115,116,97,95,82,105,99,97,0,65,109,101,114,105,99,97,58,67,114,101,115,116,111,110,0,65,109,101,114,105,99,97,58,67,117,105,97,98,97,0,65,109,101,114,105,99,97,58,67,117,114,97,99,97,111,0,65,109,101,114,105,99,97,58,68,97,110,109,97,114,107,115,104,97,118,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,95,67,114,101,101,107,0,65,109,101,114,105,99,97,58,68,101,110,118,101,114,0,65,109,101,114,105,99,97,58,68,101,116,114,111,105,116,0,65,109,101,114,105,99,97,58,68,111,109,105,110,105,99,97,0,65,109,101,114,105,99,97,58,69,100,109,111,110,116,111,110,0,65,109,101,114,105,99,97,58,69,105,114,117,110,101,112,101,0,65,109,101,114,105,99,97,58,69,108,95,83,97,108,118,97,100,111,114,0,65,109,101,114,105,99,97,58,70,111,114,116,95,78,101,108,115,111,110,0,65,109,101,114,105,99,97,58,70,111,114,116,97,108,101,122,97,0,65,109,101,114,105,99,97,58,71,108,97,99,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,111,100,116,104,97,98,0,65,109,101,114,105,99,97,58,71,111,111,115,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,114,97,110,100,95,84,117,114,107,0,65,109,101,114,105,99,97,58,71,114,101,110,97,100,97,0,65,109,101,114,105,99,97,58,71,117,97,100,101,108,111,117,112,101,0,65,109,101,114,105,99,97,58,71,117,97,116,101,109,97,108,97,0,65,109,101,114,105,99,97,58,71,117,97,121,97,113,117,105,108,0,65,109,101,114,105,99,97,58,71,117,121,97,110,97,0,65,109,101,114,105,99,97,58,72,97,108,105,102,97,120,0,65,109,101,114,105,99,97,58,72,97,118,97,110,97,0,65,109,101,114,105,99,97,58,72,101,114,109,111,115,105,108,108,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,75,110,111,120,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,77,97,114,101,110,103,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,80,101,116,101,114,115,98,117,114,103,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,84,101,108,108,95,67,105,116,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,101,118,97,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,105,110,99,101,110,110,101,115,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,87,105,110,97,109,97,99,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,112,111,108,105,115,0,65,109,101,114,105,99,97,58,73,110,117,118,105,107,0,65,109,101,114,105,99,97,58,73,113,97,108,117,105,116,0,65,109,101,114,105,99,97,58,74,97,109,97,105,99,97,0,65,109,101,114,105,99,97,58,74,117,106,117,121,0,65,109,101,114,105,99,97,58,74,117,110,101,97,117,0,65,109,101,114,105,99,97,58,75,101,110,116,117,99,107,121,58,77,111,110,116,105,99,101,108,108,111,0,65,109,101,114,105,99,97,58,75,114,97,108,101,110,100,105,106,107,0,65,109,101,114,105,99,97,58,76,97,95,80,97,122,0,65,109,101,114,105,99,97,58,76,105,109,97,0,65,109,101,114,105,99,97,58,76,111,115,95,65,110,103,101,108,101,115,0,65,109,101,114,105,99,97,58,76,111,117,105,115,118,105,108,108,101,0,65,109,101,114,105,99,97,58,76,111,119,101,114,95,80,114,105,110,99,101,115,0,65,109,101,114,105,99,97,58,77,97,99,101,105,111,0,65,109,101,114,105,99,97,58,77,97,110,97,103,117,97,0,65,109,101,114,105,99,97,58,77,97,110,97,117,115,0,65,109,101,114,105,99,97,58,77,97,114,105,103,111,116,0,65,109,101,114,105,99,97,58,77,97,114,116,105,110,105,113,117,101,0,65,109,101,114,105,99,97,58,77,97,116,97,109,111,114,111,115,0,65,109,101,114,105,99,97,58,77,97,122,97,116,108,97,110,0,65,109,101,114,105,99,97,58,77,101,110,100,111,122,97,0,65,109,101,114,105,99,97,58,77,101,110,111,109,105,110,101,101,0,65,109,101,114,105,99,97,58,77,101,114,105,100,97,0,65,109,101,114,105,99,97,58,77,101,116,108,97,107,97,116,108,97,0,65,109,101,114,105,99,97,58,77,101,120,105,99,111,95,67,105,116,121,0,65,109,101,114,105,99,97,58,77,105,113,117,101,108,111,110,0,65,109,101,114,105,99,97,58,77,111,110,99,116,111,110,0,65,109,101,114,105,99,97,58,77,111,110,116,101,114,114,101,121,0,65,109,101,114,105,99,97,58,77,111,110,116,101,118,105,100,101,111,0,65,109,101,114,105,99,97,58,77,111,110,116,115,101,114,114,97,116,0,65,109,101,114,105,99,97,58,78,97,115,115,97,117,0,65,109,101,114,105,99,97,58,78,101,119,95,89,111,114,107,0,65,109,101,114,105,99,97,58,78,111,109,101,0,65,109,101,114,105,99,97,58,78,111,114,111,110,104,97,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,66,101,117,108,97,104,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,67,101,110,116,101,114,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,78,101,119,95,83,97,108,101,109,0,65,109,101,114,105,99,97,58,79,106,105,110,97,103,97,0,65,109,101,114,105,99,97,58,80,97,110,97,109,97,0,65,109,101,114,105,99,97,58,80,97,114,97,109,97,114,105,98,111,0,65,109,101,114,105,99,97,58,80,104,111,101,110,105,120,0,65,109,101,114,105,99,97,58,80,111,114,116,45,97,117,45,80,114,105,110,99,101,0,65,109,101,114,105,99,97,58,80,111,114,116,95,111,102,95,83,112,97,105,110,0,65,109,101,114,105,99,97,58,80,111,114,116,111,95,86,101,108,104,111,0,65,109,101,114,105,99,97,58,80,117,101,114,116,111,95,82,105,99,111,0,65,109,101,114,105,99,97,58,80,117,110,116,97,95,65,114,101,110,97,115,0,65,109,101,114,105,99,97,58,82,97,110,107,105,110,95,73,110,108,101,116,0,65,109,101,114,105,99,97,58,82,101,99,105,102,101,0,65,109,101,114,105,99,97,58,82,101,103,105,110,97,0,65,109,101,114,105,99,97,58,82,101,115,111,108,117,116,101,0,65,109,101,114,105,99,97,58,82,105,111,95,66,114,97,110,99,111,0,65,109,101,114,105,99,97,58,83,97,110,116,97,114,101,109,0,65,109,101,114,105,99,97,58,83,97,110,116,105,97,103,111,0,65,109,101,114,105,99,97,58,83,97,110,116,111,95,68,111,109,105,110,103,111,0,65,109,101,114,105,99,97,58,83,97,111,95,80,97,117,108,111,0,65,109,101,114,105,99,97,58,83,99,111,114,101,115,98,121,115,117,110,100,0,65,109,101,114,105,99,97,58,83,105,116,107,97,0,65,109,101,114,105,99,97,58,83,116,95,66,97,114,116,104,101,108,101,109,121,0,65,109,101,114,105,99,97,58,83,116,95,74,111,104,110,115,0,65,109,101,114,105,99,97,58,83,116,95,75,105,116,116,115,0,65,109,101,114,105,99,97,58,83,116,95,76,117,99,105,97,0,65,109,101,114,105,99,97,58,83,116,95,84,104,111,109,97,115,0,65,109,101,114,105,99,97,58,83,116,95,86,105,110,99,101,110,116,0,65,109,101,114,105,99,97,58,83,119,105,102,116,95,67,117,114,114,101,110,116,0,65,109,101,114,105,99,97,58,84,101,103,117,99,105,103,97,108,112,97,0,65,109,101,114,105,99,97,58,84,104,117,108,101,0,65,109,101,114,105,99,97,58,84,105,106,117,97,110,97,0,65,109,101,114,105,99,97,58,84,111,114,111,110,116,111,0,65,109,101,114,105,99,97,58,84,111,114,116,111,108,97,0,65,109,101,114,105,99,97,58,86,97,110,99,111,117,118,101,114,0,65,109,101,114,105,99,97,58,87,104,105,116,101,104,111,114,115,101,0,65,109,101,114,105,99,97,58,87,105,110,110,105,112,101,103,0,65,109,101,114,105,99,97,58,89,97,107,117,116,97,116,0,65,110,116,97,114,99,116,105,99,97,58,67,97,115,101,121,0,65,110,116,97,114,99,116,105,99,97,58,68,97,118,105,115,0,65,110,116,97,114,99,116,105,99,97,58,68,117,109,111,110,116,68,85,114,118,105,108,108,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,99,113,117,97,114,105,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,119,115,111,110,0,65,110,116,97,114,99,116,105,99,97,58,77,99,77,117,114,100,111,0,65,110,116,97,114,99,116,105,99,97,58,80,97,108,109,101,114,0,65,110,116,97,114,99,116,105,99,97,58,82,111,116,104,101,114,97,0,65,110,116,97,114,99,116,105,99,97,58,83,121,111,119,97,0,65,110,116,97,114,99,116,105,99,97,58,84,114,111,108,108,0,65,110,116,97,114,99,116,105,99,97,58,86,111,115,116,111,107,0,65,114,99,116,105,99,58,76,111,110,103,121,101,97,114,98,121,101,110,0,65,115,105,97,58,65,100,101,110,0,65,115,105,97,58,65,108,109,97,116,121,0,65,115,105,97,58,65,109,109,97,110,0,65,115,105,97,58,65,110,97,100,121,114,0,65,115,105,97,58,65,113,116,97,117,0,65,115,105,97,58,65,113,116,111,98,101,0,65,115,105,97,58,65,115,104,103,97,98,97,116,0,65,115,105,97,58,65,116,121,114,97,117,0,65,115,105,97,58,66,97,103,104,100,97,100,0,65,115,105,97,58,66,97,104,114,97,105,110,0,65,115,105,97,58,66,97,107,117,0,65,115,105,97,58,66,97,110,103,107,111,107,0,65,115,105,97,58,66,101,105,114,117,116,0,65,115,105,97,58,66,105,115,104,107,101,107,0,65,115,105,97,58,66,114,117,110,101,105,0,65,115,105,97,58,67,97,108,99,117,116,116,97,0,65,115,105,97,58,67,104,105,116,97,0,65,115,105,97,58,67,104,111,105,98,97,108,115,97,110,0,65,115,105,97,58,67,111,108,111,109,98,111,0,65,115,105,97,58,68,97,109,97,115,99,117,115,0,65,115,105,97,58,68,104,97,107,97,0,65,115,105,97,58,68,105,108,105,0,65,115,105,97,58,68,117,98,97,105,0,65,115,105,97,58,68,117,115,104,97,110,98,101,0,65,115,105,97,58,70,97,109,97,103,117,115,116,97,0,65,115,105,97,58,71,97,122,97,0,65,115,105,97,58,72,101,98,114,111,110,0,65,115,105,97,58,72,111,110,103,95,75,111,110,103,0,65,115,105,97,58,72,111,118,100,0,65,115,105,97,58,73,114,107,117,116,115,107,0,65,115,105,97,58,74,97,107,97,114,116,97,0,65,115,105,97,58,74,97,121,97,112,117,114,97,0,65,115,105,97,58,74,101,114,117,115,97,108,101,109,0,65,115,105,97,58,75,97,98,117,108,0,65,115,105,97,58,75,97,109,99,104,97,116,107,97,0,65,115,105,97,58,75,97,114,97,99,104,105,0,65,115,105,97,58,75,97,116,109,97,110,100,117,0,65,115,105,97,58,75,104,97,110,100,121,103,97,0,65,115,105,97,58,75,114,97,115,110,111,121,97,114,115,107,0,65,115,105,97,58,75,117,97,108,97,95,76,117,109,112,117,114,0,65,115,105,97,58,75,117,99,104,105,110,103,0,65,115,105,97,58,75,117,119,97,105,116,0,65,115,105,97,58,77,97,99,97,117,0,65,115,105,97,58,77,97,103,97,100,97,110,0,65,115,105,97,58,77,97,107,97,115,115,97,114,0,65,115,105,97,58,77,97,110,105,108,97,0,65,115,105,97,58,77,117,115,99,97,116,0,65,115,105,97,58,78,105,99,111,115,105,97,0,65,115,105,97,58,78,111,118,111,107,117,122,110,101,116,115,107,0,65,115,105,97,58,78,111,118,111,115,105,98,105,114,115,107,0,65,115,105,97,58,79,109,115,107,0,65,115,105,97,58,79,114,97,108,0,65,115,105,97,58,80,104,110,111,109,95,80,101,110,104,0,65,115,105,97,58,80,111,110,116,105,97,110,97,107,0,65,115,105,97,58,80,121,111,110,103,121,97,110,103,0,65,115,105,97,58,81,97,116,97,114,0,65,115,105,97,58,81,111,115,116,97,110,97,121,0,65,115,105,97,58,81,121,122,121,108,111,114,100,97,0,65,115,105,97,58,82,97,110,103,111,111,110,0,65,115,105,97,58,82,105,121,97,100,104,0,65,115,105,97,58,83,97,105,103,111,110,0,65,115,105,97,58,83,97,107,104,97,108,105,110,0,65,115,105,97,58,83,97,109,97,114,107,97,110,100,0,65,115,105,97,58,83,101,111,117,108,0,65,115,105,97,58,83,104,97,110,103,104,97,105,0,65,115,105,97,58,83,105,110,103,97,112,111,114,101,0,65,115,105,97,58,83,114,101,100,110,101,107,111,108,121,109,115,107,0,65,115,105,97,58,84,97,105,112,101,105,0,65,115,105,97,58,84,97,115,104,107,101,110,116,0,65,115,105,97,58,84,98,105,108,105,115,105,0,65,115,105,97,58,84,101,104,114,97,110,0,65,115,105,97,58,84,104,105,109,112,104,117,0,65,115,105,97,58,84,111,107,121,111,0,65,115,105,97,58,85,108,97,97,110,98,97,97,116,97,114,0,65,115,105,97,58,85,114,117,109,113,105,0,65,115,105,97,58,85,115,116,45,78,101,114,97,0,65,115,105,97,58,86,105,101,110,116,105,97,110,101,0,65,115,105,97,58,86,108,97,100,105,118,111,115,116,111,107,0,65,115,105,97,58,89,97,107,117,116,115,107,0,65,115,105,97,58,89,101,107,97,116,101,114,105,110,98,117,114,103,0,65,115,105,97,58,89,101,114,101,118,97,110,0,65,116,108,97,110,116,105,99,58,65,122,111,114,101,115,0,65,116,108,97,110,116,105,99,58,66,101,114,109,117,100,97,0,65,116,108,97,110,116,105,99,58,67,97,110,97,114,121,0,65,116,108,97,110,116,105,99,58,67,97,112,101,95,86,101,114,100,101,0,65,116,108,97,110,116,105,99,58,70,97,101,114,111,101,0,65,116,108,97,110,116,105,99,58,77,97,100,101,105,114,97,0,65,116,108,97,110,116,105,99,58,82,101,121,107,106,97,118,105,107,0,65,116,108,97,110,116,105,99,58,83,111,117,116,104,95,71,101,111,114,103,105,97,0,65,116,108,97,110,116,105,99,58,83,116,95,72,101,108,101,110,97,0,65,116,108,97,110,116,105,99,58,83,116,97,110,108,101,121,0,65,117,115,116,114,97,108,105,97,58,65,100,101,108,97,105,100,101,0,65,117,115,116,114,97,108,105,97,58,66,114,105,115,98,97,110,101,0,65,117,115,116,114,97,108,105,97,58,66,114,111,107,101,110,95,72,105,108,108,0,65,117,115,116,114,97,108,105,97,58,68,97,114,119,105,110,0,65,117,115,116,114,97,108,105,97,58,69,117,99,108,97,0,65,117,115,116,114,97,108,105,97,58,72,111,98,97,114,116,0,65,117,115,116,114,97,108,105,97,58,76,105,110,100,101,109,97,110,0,65,117,115,116,114,97,108,105,97,58,76,111,114,100,95,72,111,119,101,0,65,117,115,116,114,97,108,105,97,58,77,101,108,98,111,117,114,110,101,0,65,117,115,116,114,97,108,105,97,58,80,101,114,116,104,0,65,117,115,116,114,97,108,105,97,58,83,121,100,110,101,121,0,67,83,84,54,67,68,84,0,69,83,84,53,69,68,84,0,69,116,99,58,71,77,84,0,69,117,114,111,112,101,58,65,109,115,116,101,114,100,97,109,0,69,117,114,111,112,101,58,65,110,100,111,114,114,97,0,69,117,114,111,112,101,58,65,115,116,114,97,107,104,97,110,0,69,117,114,111,112,101,58,65,116,104,101,110,115,0,69,117,114,111,112,101,58,66,101,108,103,114,97,100,101,0,69,117,114,111,112,101,58,66,101,114,108,105,110,0,69,117,114,111,112,101,58,66,114,97,116,105,115,108,97,118,97,0,69,117,114,111,112,101,58,66,114,117,115,115,101,108,115,0,69,117,114,111,112,101,58,66,117,99,104,97,114,101,115,116,0,69,117,114,111,112,101,58,66,117,100,97,112,101,115,116,0,69,117,114,111,112,101,58,66,117,115,105,110,103,101,110,0,69,117,114,111,112,101,58,67,104,105,115,105,110,97,117,0,69,117,114,111,112,101,58,67,111,112,101,110,104,97,103,101,110,0,69,117,114,111,112,101,58,68,117,98,108,105,110,0,69,117,114,111,112,101,58,71,105,98,114,97,108,116,97,114,0,69,117,114,111,112,101,58,71,117,101,114,110,115,101,121,0,69,117,114,111,112,101,58,72,101,108,115,105,110,107,105,0,69,117,114,111,112,101,58,73,115,108,101,95,111,102,95,77,97,110,0,69,117,114,111,112,101,58,73,115,116,97,110,98,117,108,0,69,117,114,111,112,101,58,74,101,114,115,101,121,0,69,117,114,111,112,101,58,75,97,108,105,110,105,110,103,114,97,100,0,69,117,114,111,112,101,58,75,105,101,118,0,69,117,114,111,112,101,58,76,105,115,98,111,110,0,69,117,114,111,112,101,58,76,106,117,98,108,106,97,110,97,0,69,117,114,111,112,101,58,76,111,110,100,111,110,0,69,117,114,111,112,101,58,76,117,120,101,109,98,111,117,114,103,0,69,117,114,111,112,101,58,77,97,100,114,105,100,0,69,117,114,111,112,101,58,77,97,108,116,97,0,69,117,114,111,112,101,58,77,97,114,105,101,104,97,109,110,0,69,117,114,111,112,101,58,77,105,110,115,107,0,69,117,114,111,112,101,58,77,111,110,97,99,111,0,69,117,114,111,112,101,58,77,111,115,99,111,119,0,69,117,114,111,112,101,58,79,115,108,111,0,69,117,114,111,112,101,58,80,97,114,105,115,0,69,117,114,111,112,101,58,80,111,100,103,111,114,105,99,97,0,69,117,114,111,112,101,58,80,114,97,103,117,101,0,69,117,114,111,112,101,58,82,105,103,97,0,69,117,114,111,112,101,58,82,111,109,101,0,69,117,114,111,112,101,58,83,97,109,97,114,97,0,69,117,114,111,112,101,58,83,97,110,95,77,97,114,105,110,111,0,69,117,114,111,112,101,58,83,97,114,97,106,101,118,111,0,69,117,114,111,112,101,58,83,97,114,97,116,111,118,0,69,117,114,111,112,101,58,83,105,109,102,101,114,111,112,111,108,0,69,117,114,111,112,101,58,83,107,111,112,106,101,0,69,117,114,111,112,101,58,83,111,102,105,97,0,69,117,114,111,112,101,58,83,116,111,99,107,104,111,108,109,0,69,117,114,111,112,101,58,84,97,108,108,105,110,110,0,69,117,114,111,112,101,58,84,105,114,97,110,101,0,69,117,114,111,112,101,58,85,108,121,97,110,111,118,115,107,0,69,117,114,111,112,101,58,86,97,100,117,122,0,69,117,114,111,112,101,58,86,97,116,105,99,97,110,0,69,117,114,111,112,101,58,86,105,101,110,110,97,0,69,117,114,111,112,101,58,86,105,108,110,105,117,115,0,69,117,114,111,112,101,58,86,111,108,103,111,103,114,97,100,0,69,117,114,111,112,101,58,87,97,114,115,97,119,0,69,117,114,111,112,101,58,90,97,103,114,101,98,0,69,117,114,111,112,101,58,90,117,114,105,99,104,0,73,110,100,105,97,110,58,65,110,116,97,110,97,110,97,114,105,118,111,0,73,110,100,105,97,110,58,67,104,97,103,111,115,0,73,110,100,105,97,110,58,67,104,114,105,115,116,109,97,115,0,73,110,100,105,97,110,58,67,111,99,111,115,0,73,110,100,105,97,110,58,67,111,109,111,114,111,0,73,110,100,105,97,110,58,75,101,114,103,117,101,108,101,110,0,73,110,100,105,97,110,58,77,97,104,101,0,73,110,100,105,97,110,58,77,97,108,100,105,118,101,115,0,73,110,100,105,97,110,58,77,97,117,114,105,116,105,117,115,0,73,110,100,105,97,110,58,77,97,121,111,116,116,101,0,73,110,100,105,97,110,58,82,101,117,110,105,111,110,0,77,83,84,55,77,68,84,0,80,83,84,56,80,68,84,0,80,97,99,105,102,105,99,58,65,112,105,97,0,80,97,99,105,102,105,99,58,65,117,99,107,108,97,110,100,0,80,97,99,105,102,105,99,58,66,111,117,103,97,105,110,118,105,108,108,101,0,80,97,99,105,102,105,99,58,67,104,97,116,104,97,109,0,80,97,99,105,102,105,99,58,69,97,115,116,101,114,0,80,97,99,105,102,105,99,58,69,102,97,116,101,0,80,97,99,105,102,105,99,58,69,110,100,101,114,98,117,114,121,0,80,97,99,105,102,105,99,58,70,97,107,97,111,102,111,0,80,97,99,105,102,105,99,58,70,105,106,105,0,80,97,99,105,102,105,99,58,70,117,110,97,102,117,116,105,0,80,97,99,105,102,105,99,58,71,97,108,97,112,97,103,111,115,0,80,97,99,105,102,105,99,58,71,97,109,98,105,101,114,0,80,97,99,105,102,105,99,58,71,117,97,100,97,108,99,97,110,97,108,0,80,97,99,105,102,105,99,58,71,117,97,109,0,80,97,99,105,102,105,99,58,72,111,110,111,108,117,108,117,0,80,97,99,105,102,105,99,58,75,105,114,105,116,105,109,97,116,105,0,80,97,99,105,102,105,99,58,75,111,115,114,97,101,0,80,97,99,105,102,105,99,58,75,119,97,106,97,108,101,105,110,0,80,97,99,105,102,105,99,58,77,97,106,117,114,111,0,80,97,99,105,102,105,99,58,77,97,114,113,117,101,115,97,115,0,80,97,99,105,102,105,99,58,77,105,100,119,97,121,0,80,97,99,105,102,105,99,58,78,97,117,114,117,0,80,97,99,105,102,105,99,58,78,105,117,101,0,80,97,99,105,102,105,99,58,78,111,114,102,111,108,107,0,80,97,99,105,102,105,99,58,78,111,117,109,101,97,0,80,97,99,105,102,105,99,58,80,97,103,111,95,80,97,103,111,0,80,97,99,105,102,105,99,58,80,97,108,97,117,0,80,97,99,105,102,105,99,58,80,105,116,99,97,105,114,110,0,80,97,99,105,102,105,99,58,80,111,110,97,112,101,0,80,97,99,105,102,105,99,58,80,111,114,116,95,77,111,114,101,115,98,121,0,80,97,99,105,102,105,99,58,82,97,114,111,116,111,110,103,97,0,80,97,99,105,102,105,99,58,83,97,105,112,97,110,0,80,97,99,105,102,105,99,58,84,97,104,105,116,105,0,80,97,99,105,102,105,99,58,84,97,114,97,119,97,0,80,97,99,105,102,105,99,58,84,111,110,103,97,116,97,112,117,0,80,97,99,105,102,105,99,58,84,114,117,107,0,80,97,99,105,102,105,99,58,87,97,107,101,0,80,97,99,105,102,105,99,58,87,97,108,108,105,115,0,112,114,105,109,97,114,121,90,111,110,101,115,0,67,76,0,67,78,0,69,67,0,77,72,0,77,89,0,78,90,0,80,84,0,85,65,0,85,90,0,0,0,71,0,77,0,84,0,0,0,65,0,99,0,114,0,101,0,0,0,71,0,117,0,108,0,102,0,0,0,67,0,111,0,111,0,107,0,0,0,67,0,117,0,98,0,97,0,0,0,73,0,114,0,97,0,110,0,0,0,80,0,101,0,114,0,117,0,0,0,73,0,110,0,100,0,105,0,97,0,0,0,67,0,104,0,105,0,108,0,101,0,0,0,75,0,111,0,114,0,101,0,97,0,0,0,67,0,104,0,105,0,110,0,97,0,0,0,83,0,97,0,109,0,111,0,97,0,0,0,89,0,117,0,107,0,111,0,110,0,0,0,74,0,97,0,112,0,97,0,110,0,0,0,76,0,97,0,110,0,107,0,97,0,0,0,78,0,101,0,112,0,97,0,108,0,0,0,84,0,111,0,110,0,103,0,97,0,0,0,68,0,97,0,99,0,99,0,97,0,0,0,73,0,114,0,105,0,115,0,104,0,0,0,65,0,109,0,97,0,122,0,111,0,110,0,0,0,65,0,108,0,97,0,115,0,107,0,97,0,0,0,66,0,101,0,114,0,105,0,110,0,103,0,0,0,73,0,115,0,114,0,97,0,101,0,108,0,0,0,66,0,104,0,117,0,116,0,97,0,110,0,0,0,84,0,117,0,114,0,107,0,101,0,121,0,0,0,84,0,117,0,118,0,97,0,108,0,117,0,0,0,66,0,111,0,114,0,110,0,101,0,111,0,0,0,70,0,114,0,117,0,110,0,122,0,101,0,0,0,77,0,97,0,108,0,97,0,121,0,97,0,0,0,85,0,114,0,97,0,108,0,115,0,107,0,0,0,65,0,114,0,97,0,98,0,105,0,97,0,110,0,0,0,66,0,114,0,105,0,116,0,105,0,115,0,104,0,0,0,69,0,99,0,117,0,97,0,100,0,111,0,114,0,0,0,65,0,114,0,109,0,101,0,110,0,105,0,97,0,0,0,66,0,111,0,108,0,105,0,118,0,105,0,97,0,0,0,77,0,121,0,97,0,110,0,109,0,97,0,114,0,0,0,83,0,111,0,108,0,111,0,109,0,111,0,110,0,0,0,84,0,111,0,107,0,101,0,108,0,97,0,117,0,0,0,85,0,114,0,117,0,103,0,117,0,97,0,121,0,0,0,86,0,97,0,110,0,117,0,97,0,116,0,117,0,0,0,76,0,105,0,98,0,101,0,114,0,105,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,0,0,66,0,114,0,97,0,115,0,105,0,108,0,105,0,97,0,0,0,77,0,111,0,110,0,103,0,111,0,108,0,105,0,97,0,0,0,67,0,104,0,97,0,109,0,111,0,114,0,114,0,111,0,0,0,77,0,97,0,108,0,97,0,121,0,115,0,105,0,97,0,0,0,67,0,111,0,108,0,111,0,109,0,98,0,105,0,97,0,0,0,70,0,97,0,108,0,107,0,108,0,97,0,110,0,100,0,0,0,80,0,97,0,107,0,105,0,115,0,116,0,97,0,110,0,0,0,80,0,97,0,114,0,97,0,103,0,117,0,97,0,121,0,0,0,83,0,117,0,114,0,105,0,110,0,97,0,109,0,101,0,0,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,0,0,73,0,110,0,100,0,111,0,99,0,104,0,105,0,110,0,97,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,107,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,114,0,97,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,118,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,109,0,115,0,107,0,0,0,75,0,121,0,114,0,103,0,121,0,115,0,116,0,97,0,110,0,0,0,86,0,101,0,110,0,101,0,122,0,117,0,101,0,108,0,97,0,0,0,65,0,115,0,104,0,107,0,104,0,97,0,98,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,100,0,101,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,105,0,108,0,105,0,0,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,110,0,0,0,75,0,105,0,122,0,105,0,108,0,111,0,114,0,100,0,97,0,0,0,75,0,117,0,121,0,98,0,121,0,115,0,104,0,101,0,118,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,97,0,117,0,0,0,69,0,97,0,115,0,116,0,95,0,84,0,105,0,109,0,111,0,114,0,0,0,85,0,122,0,98,0,101,0,107,0,105,0,115,0,116,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,122,0,101,0,114,0,98,0,97,0,105,0,106,0,97,0,110,0,0,0,66,0,97,0,110,0,103,0,108,0,97,0,100,0,101,0,115,0,104,0,0,0,83,0,101,0,121,0,99,0,104,0,101,0,108,0,108,0,101,0,115,0,0,0,84,0,97,0,106,0,105,0,107,0,105,0,115,0,116,0,97,0,110,0,0,0,65,0,107,0,116,0,121,0,117,0,98,0,105,0,110,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,98,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,97,0,116,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,83,0,104,0,101,0,118,0,99,0,104,0,101,0,110,0,107,0,111,0,0,0,83,0,118,0,101,0,114,0,100,0,108,0,111,0,118,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,111,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,108,0,109,0,97,0,116,0,121,0,0,0,78,0,101,0,119,0,95,0,90,0,101,0,97,0,108,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,110,0,97,0,100,0,121,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,114,0,117,0,110,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,102,0,103,0,104,0,97,0,110,0,105,0,115,0,116,0,97,0,110,0,0,0,80,0,104,0,105,0,108,0,105,0,112,0,112,0,105,0,110,0,101,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,109,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,101,0,105,0,114,0,117,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,119,0,97,0,105,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,110,0,105,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,117,0,115,0,99,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,105,0,121,0,97,0,100,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,79,0,115,0,108,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,111,0,109,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,104,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,103,0,97,0,100,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,114,0,107,0,117,0,116,0,115,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,114,0,97,0,99,0,104,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,98,0,105,0,108,0,105,0,115,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,114,0,101,0,118,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,105,0,115,0,104,0,107,0,101,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,111,0,108,0,111,0,109,0,98,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,99,0,104,0,105,0,110,0,103,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,95,0,79,0,99,0,101,0,97,0,110,0,0,0,76,0,105,0,110,0,101,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,78,0,101,0,119,0,102,0,111,0,117,0,110,0,100,0,108,0,97,0,110,0,100,0,0,0,84,0,117,0,114,0,107,0,109,0,101,0,110,0,105,0,115,0,116,0,97,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,99,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,112,0,105,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,105,0,106,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,105,0,117,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,107,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,99,0,99,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,107,0,97,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,103,0,111,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,117,0,110,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,109,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,103,0,104,0,100,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,104,0,114,0,97,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,110,0,103,0,107,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,107,0,97,0,114,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,68,0,117,0,116,0,99,0,104,0,95,0,71,0,117,0,105,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,108,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,105,0,110,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,97,0,114,0,105,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,111,0,102,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,100,0,117,0,122,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,109,0,97,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,115,0,104,0,97,0,110,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,107,0,104,0,97,0,108,0,105,0,110,0,0,0,65,0,108,0,97,0,115,0,107,0,97,0,95,0,72,0,97,0,119,0,97,0,105,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,100,0,114,0,105,0,100,0,0,0,70,0,114,0,101,0,110,0,99,0,104,0,95,0,71,0,117,0,105,0,97,0,110,0,97,0,0,0,78,0,101,0,119,0,95,0,67,0,97,0,108,0,101,0,100,0,111,0,110,0,105,0,97,0,0,0,78,0,111,0,114,0,116,0,104,0,95,0,77,0,97,0,114,0,105,0,97,0,110,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,97,0,117,0,114,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,108,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,103,0,117,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,106,0,117,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,117,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,114,0,97,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,103,0,97,0,108,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,97,0,110,0,100,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,115,0,97,0,107,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,108,0,97,0,98,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,112,0,117,0,116,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,115,0,101,0,114,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,97,0,109,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,117,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,108,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,121,0,97,0,112,0,117,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,116,0,104,0,101,0,110,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,110,0,97,0,99,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,114,0,97,0,103,0,117,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,107,0,111,0,112,0,106,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,101,0,110,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,103,0,114,0,101,0,98,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,117,0,114,0,105,0,99,0,104,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,97,0,103,0,111,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,109,0,111,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,102,0,97,0,116,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,121,0,122,0,121,0,108,0,111,0,114,0,100,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,121,0,111,0,110,0,103,0,121,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,109,0,97,0,114,0,107,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,82,0,101,0,117,0,110,0,105,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,106,0,117,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,105,0,112,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,121,0,97,0,110,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,111,0,115,0,114,0,97,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,104,0,105,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,108,0,108,0,105,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,98,0,105,0,100,0,106,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,110,0,97,0,107,0,114,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,97,0,109,0,112,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,98,0,97,0,98,0,97,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,105,0,114,0,111,0,98,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,105,0,122,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,103,0,111,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,110,0,101,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,95,0,80,0,97,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,115,0,115,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,97,0,109,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,105,0,101,0,110,0,116,0,105,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,110,0,100,0,111,0,114,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,116,0,105,0,99,0,97,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,121,0,111,0,116,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,117,0,109,0,101,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,114,0,97,0,119,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,83,0,111,0,117,0,116,0,104,0,101,0,114,0,110,0,0,0,72,0,97,0,119,0,97,0,105,0,105,0,95,0,65,0,108,0,101,0,117,0,116,0,105,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,111,0,105,0,98,0,97,0,108,0,115,0,97,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,65,0,122,0,111,0,114,0,101,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,108,0,100,0,105,0,118,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,103,0,114,0,97,0,100,0,101,0,0,0,70,0,114,0,101,0,110,0,99,0,104,0,95,0,83,0,111,0,117,0,116,0,104,0,101,0,114,0,110,0,0,0,71,0,105,0,108,0,98,0,101,0,114,0,116,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,109,0,98,0,105,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,114,0,102,0,111,0,108,0,107,0,0,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,80,0,105,0,101,0,114,0,114,0,101,0,95,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,116,0,121,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,106,0,105,0,98,0,111,0,117,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,65,0,97,0,105,0,117,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,70,0,114,0,101,0,101,0,116,0,111,0,119,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,71,0,97,0,98,0,111,0,114,0,111,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,110,0,115,0,104,0,97,0,115,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,114,0,111,0,118,0,105,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,100,0,106,0,97,0,109,0,101,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,116,0,105,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,114,0,97,0,99,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,101,0,110,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,114,0,97,0,99,0,97,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,105,0,103,0,111,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,116,0,111,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,104,0,110,0,111,0,109,0,95,0,80,0,101,0,110,0,104,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,110,0,97,0,114,0,121,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,69,0,117,0,99,0,108,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,117,0,115,0,115,0,101,0,108,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,100,0,97,0,112,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,72,0,101,0,108,0,115,0,105,0,110,0,107,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,106,0,101,0,118,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,97,0,107,0,97,0,111,0,102,0,111,0,0,0,49,0,57,0,55,0,48,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,57,0,57,0,57,0,57,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,51,0,58,0,53,0,57,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,77,0,111,0,117,0,110,0,116,0,97,0,105,0,110,0,0,0,49,0,57,0,55,0,49,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,48,0,45,0,50,0,57,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,54,0,45,0,48,0,52,0,45,0,48,0,50,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,57,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,54,0,45,0,48,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,54,0,45,0,50,0,48,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,48,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,49,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,51,0,45,0,51,0,48,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,50,0,45,0,49,0,53,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,56,0,45,0,48,0,52,0,45,0,48,0,53,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,49,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,101,0,121,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,53,0,45,0,51,0,49,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,52,0,45,0,48,0,49,0,45,0,48,0,54,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,52,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,49,0,50,0,45,0,50,0,51,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,52,0,45,0,48,0,51,0,45,0,49,0,54,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,51,0,45,0,48,0,49,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,51,0,45,0,48,0,51,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,53,0,45,0,48,0,55,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,56,0,45,0,51,0,49,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,50,0,48,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,53,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,48,0,49,0,45,0,49,0,53,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,50,0,45,0,50,0,50,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,49,0,45,0,48,0,52,0,45,0,48,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,53,0,45,0,51,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,55,0,45,0,50,0,53,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,55,0,45,0,48,0,51,0,45,0,49,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,55,0,45,0,49,0,49,0,45,0,48,0,52,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,56,0,45,0,48,0,54,0,45,0,50,0,52,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,48,0,51,0,45,0,50,0,55,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,51,0,45,0,49,0,49,0,45,0,49,0,48,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,48,0,45,0,49,0,49,0,45,0,48,0,49,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,52,0,45,0,48,0,50,0,45,0,50,0,57,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,115,0,105,0,98,0,105,0,114,0,115,0,107,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,49,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,49,0,45,0,49,0,57,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,49,0,50,0,45,0,48,0,51,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,77,0,97,0,114,0,115,0,104,0,97,0,108,0,108,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,80,0,97,0,112,0,117,0,97,0,95,0,78,0,101,0,119,0,95,0,71,0,117,0,105,0,110,0,101,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,111,0,108,0,103,0,111,0,103,0,114,0,97,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,114,0,105,0,115,0,116,0,109,0,97,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,117,0,114,0,105,0,116,0,105,0,117,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,105,0,116,0,99,0,97,0,105,0,114,0,110,0,0,0,49,0,57,0,55,0,49,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,49,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,52,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,48,0,58,0,52,0,53,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,56,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,51,0,45,0,48,0,52,0,45,0,50,0,57,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,51,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,52,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,48,0,50,0,45,0,49,0,54,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,49,0,49,0,45,0,50,0,48,0,32,0,48,0,51,0,58,0,51,0,48,0,0,0,49,0,57,0,55,0,54,0,45,0,48,0,52,0,45,0,49,0,52,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,54,0,45,0,48,0,53,0,45,0,48,0,50,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,54,0,45,0,48,0,57,0,45,0,50,0,54,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,55,0,45,0,49,0,48,0,45,0,50,0,48,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,55,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,56,0,45,0,48,0,54,0,45,0,50,0,56,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,57,0,45,0,48,0,52,0,45,0,50,0,57,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,57,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,48,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,50,0,45,0,50,0,56,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,51,0,45,0,50,0,57,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,57,0,45,0,51,0,48,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,49,0,54,0,58,0,51,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,50,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,50,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,50,0,45,0,49,0,50,0,45,0,48,0,50,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,53,0,45,0,48,0,52,0,45,0,49,0,57,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,53,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,54,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,55,0,45,0,48,0,57,0,45,0,51,0,48,0,32,0,49,0,56,0,58,0,51,0,48,0,0,0,49,0,57,0,56,0,55,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,56,0,45,0,48,0,52,0,45,0,48,0,51,0,32,0,48,0,52,0,58,0,48,0,49,0,0,0,49,0,57,0,56,0,56,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,50,0,58,0,48,0,49,0,0,0,49,0,57,0,56,0,57,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,51,0,45,0,48,0,52,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,51,0,45,0,49,0,52,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,51,0,45,0,50,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,53,0,45,0,48,0,51,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,53,0,45,0,48,0,53,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,54,0,45,0,51,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,54,0,45,0,51,0,48,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,52,0,45,0,48,0,56,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,54,0,45,0,48,0,49,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,56,0,45,0,50,0,57,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,56,0,45,0,51,0,48,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,57,0,45,0,48,0,56,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,57,0,45,0,50,0,50,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,57,0,45,0,50,0,57,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,50,0,45,0,49,0,53,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,49,0,45,0,49,0,56,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,51,0,45,0,50,0,56,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,57,0,45,0,50,0,52,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,57,0,45,0,50,0,55,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,57,0,45,0,50,0,55,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,51,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,51,0,45,0,48,0,51,0,45,0,50,0,56,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,51,0,45,0,48,0,56,0,45,0,50,0,49,0,32,0,49,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,52,0,45,0,48,0,51,0,45,0,50,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,52,0,45,0,48,0,52,0,45,0,51,0,48,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,53,0,45,0,50,0,52,0,32,0,49,0,56,0,58,0,51,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,57,0,45,0,50,0,57,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,55,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,55,0,45,0,48,0,51,0,45,0,51,0,48,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,55,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,56,0,45,0,48,0,51,0,45,0,50,0,57,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,56,0,45,0,48,0,56,0,45,0,48,0,50,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,50,0,45,0,49,0,57,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,48,0,51,0,45,0,48,0,51,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,48,0,57,0,45,0,49,0,54,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,48,0,45,0,50,0,57,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,49,0,45,0,48,0,53,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,50,0,45,0,48,0,51,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,49,0,45,0,48,0,52,0,45,0,48,0,49,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,51,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,51,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,54,0,45,0,49,0,51,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,54,0,45,0,48,0,52,0,45,0,49,0,52,0,32,0,49,0,56,0,58,0,51,0,48,0,0,0,50,0,48,0,48,0,54,0,45,0,49,0,48,0,45,0,50,0,57,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,56,0,45,0,48,0,49,0,45,0,50,0,49,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,56,0,45,0,48,0,51,0,45,0,51,0,48,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,56,0,45,0,48,0,54,0,45,0,50,0,52,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,57,0,45,0,49,0,48,0,45,0,49,0,49,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,57,0,45,0,49,0,48,0,45,0,49,0,55,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,51,0,45,0,48,0,52,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,51,0,45,0,50,0,55,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,51,0,45,0,50,0,55,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,52,0,45,0,48,0,52,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,49,0,49,0,45,0,48,0,55,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,48,0,57,0,45,0,49,0,50,0,32,0,49,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,48,0,57,0,45,0,49,0,50,0,32,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,50,0,45,0,48,0,50,0,45,0,50,0,49,0,32,0,49,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,50,0,45,0,49,0,49,0,45,0,49,0,48,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,51,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,48,0,51,0,45,0,51,0,48,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,50,0,45,0,48,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,51,0,45,0,48,0,56,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,51,0,45,0,48,0,56,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,56,0,45,0,49,0,52,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,49,0,49,0,45,0,48,0,49,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,51,0,45,0,50,0,54,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,51,0,45,0,50,0,54,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,57,0,45,0,48,0,54,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,49,0,48,0,45,0,50,0,49,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,55,0,45,0,49,0,48,0,45,0,50,0,51,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,55,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,51,0,45,0,49,0,48,0,32,0,49,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,51,0,45,0,49,0,49,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,53,0,45,0,48,0,52,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,48,0,45,0,48,0,54,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,48,0,45,0,50,0,56,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,49,0,45,0,48,0,52,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,50,0,45,0,50,0,48,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,48,0,49,0,45,0,50,0,48,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,48,0,51,0,45,0,49,0,54,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,48,0,45,0,48,0,51,0,45,0,48,0,55,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,48,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,49,0,54,0,58,0,48,0,49,0,0,0,50,0,48,0,50,0,49,0,45,0,48,0,49,0,45,0,51,0,49,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,49,0,45,0,48,0,51,0,45,0,49,0,51,0,32,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,49,0,45,0,49,0,48,0,45,0,48,0,50,0,32,0,49,0,54,0,58,0,48,0,49,0,0,0,50,0,48,0,50,0,50,0,45,0,48,0,51,0,45,0,49,0,50,0,32,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,48,0,49,0,32,0,49,0,54,0,58,0,48,0,49,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,49,0,45,0,51,0,48,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,51,0,45,0,48,0,51,0,45,0,48,0,56,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,52,0,45,0,48,0,51,0,45,0,50,0,54,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,52,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,97,0,118,0,105,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,121,0,111,0,119,0,97,0,0,0,49,0,57,0,55,0,51,0,45,0,49,0,48,0,45,0,50,0,56,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,48,0,54,0,45,0,49,0,50,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,48,0,45,0,48,0,52,0,45,0,50,0,55,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,48,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,49,0,45,0,51,0,48,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,48,0,54,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,49,0,48,0,45,0,49,0,56,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,53,0,45,0,50,0,51,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,53,0,45,0,51,0,48,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,57,0,45,0,50,0,54,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,50,0,45,0,50,0,55,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,57,0,45,0,48,0,55,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,106,0,117,0,109,0,98,0,117,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,103,0,97,0,100,0,105,0,115,0,104,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,103,0,117,0,105,0,108,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,117,0,110,0,99,0,105,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,114,0,98,0,97,0,100,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,75,0,105,0,116,0,116,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,76,0,117,0,99,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,66,0,101,0,114,0,109,0,117,0,100,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,97,0,110,0,108,0,101,0,121,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,109,0,115,0,116,0,101,0,114,0,100,0,97,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,99,0,104,0,97,0,114,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,105,0,98,0,114,0,97,0,108,0,116,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,106,0,117,0,98,0,108,0,106,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,114,0,105,0,101,0,104,0,97,0,109,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,111,0,100,0,103,0,111,0,114,0,105,0,99,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,116,0,111,0,99,0,107,0,104,0,111,0,108,0,109,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,75,0,101,0,114,0,103,0,117,0,101,0,108,0,101,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,117,0,110,0,97,0,102,0,117,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,73,0,110,0,100,0,111,0,110,0,101,0,115,0,105,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,73,0,110,0,100,0,111,0,110,0,101,0,115,0,105,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,108,0,97,0,112,0,97,0,103,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,114,0,113,0,117,0,101,0,115,0,97,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,70,0,97,0,114,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,121,0,97,0,113,0,117,0,105,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,97,0,108,0,97,0,95,0,76,0,117,0,109,0,112,0,117,0,114,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,73,0,110,0,100,0,111,0,110,0,101,0,115,0,105,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,86,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,111,0,115,0,101,0,95,0,66,0,97,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,98,0,114,0,101,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,98,0,117,0,109,0,98,0,97,0,115,0,104,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,117,0,97,0,107,0,99,0,104,0,111,0,116,0,116,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,45,0,78,0,111,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,116,0,101,0,109,0,97,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,97,0,116,0,105,0,115,0,108,0,97,0,118,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,111,0,112,0,101,0,110,0,104,0,97,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,117,0,120,0,101,0,109,0,98,0,111,0,117,0,114,0,103,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,110,0,95,0,77,0,97,0,114,0,105,0,110,0,111,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,82,0,97,0,114,0,111,0,116,0,111,0,110,0,103,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,111,0,110,0,103,0,97,0,116,0,97,0,112,0,117,0,0,0,75,0,97,0,122,0,97,0,107,0,104,0,115,0,116,0,97,0,110,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,75,0,97,0,122,0,97,0,107,0,104,0,115,0,116,0,97,0,110,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,107,0,97,0,116,0,101,0,114,0,105,0,110,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,114,0,97,0,109,0,97,0,114,0,105,0,98,0,111,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,82,0,111,0,116,0,104,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,100,0,105,0,115,0,95,0,65,0,98,0,97,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,114,0,97,0,122,0,122,0,97,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,79,0,117,0,97,0,103,0,97,0,100,0,111,0,117,0,103,0,111,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,115,0,116,0,97,0,95,0,82,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,100,0,101,0,108,0,111,0,117,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,114,0,97,0,108,0,101,0,110,0,100,0,105,0,106,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,116,0,105,0,110,0,105,0,113,0,117,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,118,0,105,0,100,0,101,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,115,0,101,0,114,0,114,0,97,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,86,0,105,0,110,0,99,0,101,0,110,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,99,0,77,0,117,0,114,0,100,0,111,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,95,0,72,0,101,0,108,0,101,0,110,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,97,0,108,0,105,0,110,0,105,0,110,0,103,0,114,0,97,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,105,0,114,0,105,0,116,0,105,0,109,0,97,0,116,0,105,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,112,0,101,0,95,0,86,0,101,0,114,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,111,0,104,0,97,0,110,0,110,0,101,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,83,0,97,0,108,0,118,0,97,0,100,0,111,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,101,0,114,0,116,0,111,0,95,0,82,0,105,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,101,0,103,0,117,0,99,0,105,0,103,0,97,0,108,0,112,0,97,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,65,0,110,0,116,0,97,0,110,0,97,0,110,0,97,0,114,0,105,0,118,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,100,0,97,0,108,0,99,0,97,0,110,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,99,0,111,0,114,0,101,0,115,0,98,0,121,0,115,0,117,0,110,0,100,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,114,0,95,0,101,0,115,0,95,0,83,0,97,0,108,0,97,0,97,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,114,0,116,0,95,0,77,0,111,0,114,0,101,0,115,0,98,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,119,0,101,0,114,0,95,0,80,0,114,0,105,0,110,0,99,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,95,0,111,0,102,0,95,0,83,0,112,0,97,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,111,0,95,0,68,0,111,0,109,0,105,0,110,0,103,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,70,0,117,0,114,0,116,0,104,0,101,0,114,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,71,0,101,0,111,0,114,0,103,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,45,0,97,0,117,0,45,0,80,0,114,0,105,0,110,0,99,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,117,0,109,0,111,0,110,0,116,0,68,0,85,0,114,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,76,0,117,0,105,0,115,0,0,0,1,0,50,0,83,34,1,0,50,0,121,2,8,0,50,0,81,0,84,0,87,0,90,0,93,0,96,0,99,0,45,7,229,28,85,12,23,32,21,12,245,6,17,7,231,6,10,0,50,0,117,0,120,0,123,0,126,0,129,0,132,0,135,0,138,0,141,0,231,9,37,12,161,6,168,33,69,8,178,35,246,28,239,35,201,9,200,10,1,0,50,0,53,12,3,0,50,0,178,0,181,0,38,35,59,7,216,9,11,0,50,0,199,0,202,0,87,0,205,0,208,0,211,0,214,0,217,0,220,0,223,0,214,4,3,7,59,32,101,12,189,6,187,33,217,6,5,32,31,7,73,7,133,12,1,0,50,0,187,2,1,0,50,0,65,10,1,0,50,0,77,32,1,0,50,0,199,2,1,0,50,0,95,10,8,0,50,0,25,1,28,1,31,1,34,1,37,1,40,1,43,1,197,12,246,9,194,29,225,33,95,32,138,35,98,35,58,35,7,0,50,0,62,1,28,1,65,1,68,1,71,1,74,1,126,29,110,10,53,13,158,36,5,13,20,10,125,10,2,0,50,0,28,1,35,10,75,29,3,0,50,0,28,1,40,1,78,35,149,32,37,13,1,0,50,0,223,2,1,0,50,0,110,4,1,0,50,0,0,2,1,0,50,0,187,2,6,0,50,0,118,1,121,1,124,1,127,1,130,1,99,3,23,5,10,5,63,3,132,2,206,1,1,0,50,0,4,36,1,0,50,0,232,36,1,0,50,0,249,3,1,0,50,0,7,6,23,0,50,0,188,1,191,1,194,1,197,1,200,1,203,1,206,1,209,1,212,1,215,1,218,1,221,1,224,1,227,1,230,1,233,1,236,1,239,1,242,1,245,1,248,1,251,1,245,12,149,12,7,29,87,7,41,29,228,29,7,34,213,12,58,29,229,12,101,7,244,33,160,29,177,29,21,13,26,34,64,34,118,35,46,36,68,36,102,34,69,13,131,32,1,0,50,0,197,34,1,0,50,0,133,13,1,0,50,0,6,30,1,0,50,0,149,13,1,0,50,0,136,1,1,0,50,0,85,11,1,0,50,0,136,1,1,0,50,0,44,2,1,0,50,0,240,4,1,0,50,0,88,5,1,0,50,0,80,10,1,0,50,0,32,4,1,0,50,0,113,32,1,0,50,0,63,6,1,0,50,0,235,2,1,0,50,0,254,34,1,0,50,0,55,15,2,0,50,0,154,2,66,9,210,3,1,0,50,0,197,11,1,0,50,0,179,27,1,0,50,0,21,6,1,0,50,0,69,11,1,0,50,0,121,17,1,0,50,0,97,4,1,0,50,0,5,10,1,0,50,0,37,33,1,0,50,0,50,10,1,0,50,0,44,2,1,0,50,0,213,27,1,0,50,0,90,36,1,0,50,0,206,36,1,0,50,0,221,5,1,0,50,0,130,33,1,0,50,0,216,1,1,0,50,0,96,9,1,0,50,0,117,31,33,0,50,0,251,2,254,2,1,3,4,3,7,3,10,3,13,3,16,3,19,3,22,3,25,3,28,3,31,3,34,3,37,3,40,3,43,3,46,3,49,3,238,29,52,3,55,3,58,3,61,3,64,3,67,3,70,3,73,3,76,3,79,3,82,3,85,3,140,5,170,10,241,7,255,7,229,13,165,13,41,8,213,7,35,6,185,32,77,6,57,30,27,8,181,13,147,3,166,5,203,32,199,7,108,30,227,7,114,5,23,30,135,3,13,8,149,11,125,30,74,30,158,35,167,32,221,32,227,4,185,10,149,11,8,0,50,0,103,3,106,3,109,3,112,3,115,3,118,3,121,3,40,30,91,30,153,5,62,5,188,4,197,13,171,7,51,3,2,0,50,0,147,3,127,5,216,34,2,0,50,0,165,3,101,13,117,13,1,0,50,0,245,29,1,0,50,0,123,4,1,0,50,0,181,12,1,0,50,0,142,30,1,0,50,0,6,4,14,0,50,0,214,3,217,3,220,3,223,3,226,3,229,3,232,3,235,3,238,3,241,3,244,3,247,3,250,3,159,34,206,33,171,9,63,6,175,4,203,6,186,9,49,6,175,6,41,32,178,34,69,12,201,4,39,3,1,0,50,0,63,31,1,0,50,0,213,11,1,0,50,0,236,3,1,0,50,0,230,10,1,0,50,0,225,31,1,0,50,0,117,11,1,0,50,0,218,35,1,0,50,0,218,35,1,0,50,0,117,11,1,0,50,0,210,3,2,0,50,0,82,4,110,2,87,3,1,0,50,0,81,9,1,0,50,0,176,30,1,0,50,0,217,8,1,0,50,0,156,1,2,0,50,0,107,4,115,7,19,4,1,0,50,0,55,8,3,0,50,0,133,4,136,4,36,5,85,13,155,10,1,0,50,0,157,7,1,0,50,0,129,7,1,0,50,0,49,5,1,0,50,0,111,3,1,0,50,0,49,6,1,0,50,0,197,3,1,0,50,0,140,10,1,0,50,0,154,2,1,0,50,0,232,8,1,0,50,0,223,3,1,0,50,0,199,2,1,0,50,0,187,2,1,0,50,0,202,8,1,0,50,0,143,2,1,0,50,0,111,9,1,0,50,0,207,16,1,0,50,0,207,5,1,0,50,0,243,31,1,0,50,0,6,4,1,0,50,0,19,4,1,0,50,0,117,12,1,0,50,0,235,34,1,0,50,0,18,35,1,0,50,0,33,2,1,0,50,0,184,3,1,0,50,0,135,31,1,0,50,0,32,4,1,0,50,0,101,11,1,0,50,0,81,31,1,0,50,0,51,9,1,0,50,0,138,17,1,0,50,0,189,31,1,0,50,0,92,29,1,0,50,0,211,29,1,0,50,0,179,5,1,0,50,0,75,5,1,0,50,0,133,6,1,0,50,0,143,7,1,0,50,0,215,10,2,0,50,0,159,5,196,27,140,34,1,0,50,0,143,29,1,0,50,0,136,4,1,0,50,0,229,11,1,0,50,0,133,11,1,0,50,0,66,9,1,0,50,0,241,16,1,0,50,0,166,1,1,0,50,0,146,1,1,0,50,0,223,3,1,0,50,0,147,6,1,0,50,0,25,36,1,0,50,0,24,29,1,0,50,0,253,4,1,0,50,0,75,3,1,0,50,0,1,33,1,0,50,0,109,29,1,0,50,0,155,17,1,0,50,0,126,9,1,0,50,0,247,8,1,0,50,0,202,8,1,0,50,0,36,9,1,0,50,0,149,33,1,0,50,0,235,5,1,0,50,0,207,5,1,0,50,0,6,9,1,0,50,0,19,33,1,0,50,0,159,3,1,0,50,0,0,2,1,0,50,0,21,9,1,0,50,0,198,35,1,0,50,0,135,36,1,0,50,0,130,33,1,0,50,0,111,33,1,0,50,0,230,27,1,0,50,0,141,9,1,0,50,0,247,2,1,0,50,0,221,5,1,0,50,0,193,5,1,0,50,0,236,3,1,0,50,0,245,13,1,0,50,0,55,33,1,0,50,0,149,4,1,0,50,0,213,13,1,0,50,0,7,6,1,0,50,0,159,30,1,0,50,0,146,1,1,0,50,0,45,34,1,0,50,0,27,3,1,0,50,0,193,5,1,0,50,0,83,8,1,0,50,0,165,12,1,0,50,0,224,16,1,0,50,0,104,17,1,0,50,0,207,31,1,0,50,0,162,4,1,0,50,0,156,9,1,0,50,0,171,3,1,0,50,0,111,33,1,0,50,0,249,3,1,0,50,0,121,34,158,0,187,6,192,6,197,6,202,6,207,6,212,6,217,6,222,6,227,6,232,6,237,6,242,6,247,6,252,6,1,7,6,7,11,7,16,7,21,7,26,7,31,7,180,19,36,7,41,7,46,7,51,7,56,7,61,7,66,7,71,7,76,7,81,7,86,7,91,7,96,7,101,7,106,7,111,7,116,7,121,7,126,7,131,7,136,7,141,7,146,7,151,7,156,7,161,7,166,7,171,7,176,7,181,7,186,7,191,7,196,7,201,7,206,7,211,7,216,7,221,7,226,7,231,7,236,7,241,7,246,7,251,7,0,8,5,8,10,8,15,8,20,8,14,21,25,8,30,8,210,5,35,8,40,8,45,8,50,8,55,8,60,8,65,8,70,8,75,8,80,8,85,8,90,8,95,8,100,8,105,8,110,8,115,8,120,8,125,8,22,17,130,8,135,8,140,8,145,8,150,8,155,8,160,8,165,8,170,8,175,8,180,8,185,8,190,8,195,8,200,8,205,8,210,8,215,8,220,8,225,8,230,8,96,11,235,8,240,8,245,8,250,8,255,8,4,9,9,9,14,9,19,9,24,9,29,9,34,9,39,9,44,9,49,9,54,9,59,9,64,9,69,9,74,9,79,9,84,9,89,9,94,9,99,9,104,9,109,9,114,9,119,9,124,9,129,9,134,9,139,9,144,9,149,9,154,9,159,9,164,9,169,9,174,9,179,9,5,0,127,8,157,8,3,3,37,11,142,8,204,2,114,0,107,0,245,10,5,11,39,14,21,11,228,2,118,4,5,2,192,2,184,0,106,1,208,0,193,30,16,1,247,30,181,36,229,30,211,30,55,2,94,11,66,2,135,0,216,0,25,1,240,2,66,15,7,35,43,1,205,11,41,0,53,0,74,11,128,17,104,4,61,1,15,0,20,0,224,27,217,36,104,9,11,2,200,0,97,8,112,8,112,36,172,8,70,1,131,4,91,6,165,11,71,31,221,11,150,36,181,11,153,31,126,1,27,31,218,3,10,0,89,9,53,11,222,8,161,1,9,31,35,0,116,1,171,31,45,4,45,31,25,0,202,3,128,0,71,0,92,33,237,8,73,33,47,0,119,9,212,16,176,1,77,0,58,4,28,35,38,2,189,3,70,17,52,1,108,11,89,31,145,17,200,31,187,8,1,0,34,1,186,5,224,0,141,6,105,6,83,0,71,4,211,2,144,4,119,6,237,11,141,11,246,16,171,1,79,1,155,6,87,17,88,1,30,0,15,3,245,11,5,12,163,17,134,9,252,8,207,8,43,9,160,33,240,5,214,5,59,0,77,2,26,9,144,36,232,0,97,1,241,27,149,9,252,2,88,2,240,0,89,0,157,4,84,4,149,0,248,0,22,2,0,1,186,1,229,16,111,17,218,31,170,4,164,9,176,3,116,33,65,0,1,0,1,0,1,0,1,0,1,0,157,8,3,0,172,8,5,14,154,18,3,0,97,8,154,18,222,18,3,0,172,8,222,18,51,19,3,0,97,8,51,19,22,14,1,0,157,8,1,0,1,0,1,0,142,8,1,0,1,0,3,0,99,31,5,14,52,18,3,0,1,0,52,18,22,14,1,0,127,8,1,0,142,8,1,0,127,8,1,0,112,8,3,0,172,8,5,14,140,15,3,0,97,8,140,15,238,19,3,0,172,8,238,19,129,26,3,0,172,8,5,14,140,15,3,0,97,8,140,15,22,14,1,0,1,0,1,0,1,0,1,0,157,8,1,0,157,8,1,0,142,8,3,0,99,31,5,14,103,18,3,0,172,8,103,18,129,26,1,0,1,0,1,0,127,8,1,0,127,8,1,0,37,11,3,0,127,8,5,14,3,16,3,0,157,8,3,16,26,27,3,0,127,8,26,27,22,14,1,0,157,8,3,0,127,8,5,14,3,16,3,0,157,8,3,16,27,26,3,0,127,8,27,26,22,14,1,0,127,8,1,0,142,8,1,0,142,8,1,0,142,8,1,0,1,0,1,0,142,8,1,0,127,8,1,0,127,8,1,0,142,8,1,0,127,8,1,0,37,11,1,0,37,11,1,0,157,8,3,0,8,1,5,14,223,17,3,0,1,0,223,17,22,14,1,0,157,8,1,0,142,8,1,0,142,8,1,0,1,0,1,0,1,0,1,0,142,8,3,0,1,0,5,14,44,26,3,0,142,8,44,26,180,26,3,0,1,0,180,26,22,14,3,0,112,8,5,14,119,19,3,0,97,8,119,19,152,20,3,0,112,8,152,20,133,22,3,0,97,8,133,22,184,22,3,0,112,8,184,22,250,24,3,0,97,8,250,24,11,25,3,0,112,8,11,25,22,14,1,0,97,8,3,0,37,11,5,14,135,20,3,0,127,8,135,20,48,22,3,0,142,8,48,22,10,26,3,0,127,8,10,26,22,14,3,0,121,0,5,14,175,14,3,0,53,11,59,28,22,14,3,0,249,5,5,14,2,17,3,0,114,0,4,15,22,14,1,0,16,1,1,0,16,1,1,0,25,1,3,0,106,1,5,14,157,15,3,0,193,30,157,15,191,15,3,0,106,1,191,15,124,14,3,0,193,30,124,14,141,14,3,0,106,1,141,14,22,14,3,0,106,1,5,14,124,14,3,0,193,30,124,14,141,14,3,0,106,1,141,14,22,14,3,0,106,1,5,14,174,15,3,0,106,1,225,15,22,14,3,0,106,1,5,14,157,15,3,0,193,30,157,15,191,15,3,0,106,1,191,15,54,16,3,0,193,30,54,16,71,16,3,0,106,1,71,16,22,14,3,0,106,1,5,14,118,20,3,0,193,30,118,20,237,20,3,0,106,1,237,20,235,22,3,0,193,30,235,22,64,23,3,0,106,1,64,23,54,16,3,0,193,30,54,16,71,16,3,0,106,1,71,16,12,24,3,0,193,30,12,24,63,24,3,0,106,1,63,24,22,14,3,0,106,1,5,14,174,15,3,0,106,1,225,15,124,14,3,0,193,30,124,14,200,23,3,0,106,1,200,23,22,14,3,0,106,1,5,14,127,28,3,0,106,1,141,14,22,14,1,0,16,1,1,0,88,1,1,0,25,1,3,0,21,11,5,14,158,14,3,0,39,14,158,14,148,24,3,0,245,10,148,24,22,14,1,0,16,1,1,0,25,1,1,0,245,10,1,0,16,1,1,0,107,0,1,0,61,1,1,0,39,14,1,0,106,1,3,0,39,14,5,14,30,23,3,0,245,10,30,23,73,14,3,0,5,11,73,14,115,23,3,0,245,10,115,23,149,23,3,0,39,14,149,23,22,14,1,0,107,0,3,0,245,10,5,14,123,15,3,0,5,11,123,15,218,22,3,0,245,10,218,22,113,25,3,0,5,11,113,25,22,14,1,0,186,1,3,0,106,1,5,14,174,15,3,0,106,1,225,15,124,14,3,0,193,30,124,14,141,14,3,0,106,1,141,14,22,14,1,0,91,6,1,0,5,11,1,0,245,10,3,0,245,10,5,14,226,14,3,0,187,8,226,14,243,14,3,0,245,10,243,14,22,14,3,0,245,10,5,14,226,14,3,0,187,8,226,14,243,14,3,0,245,10,243,14,111,27,3,0,39,14,111,27,22,14,1,0,5,11,3,0,106,1,5,14,174,15,3,0,106,1,225,15,22,14,1,0,245,10,1,0,39,14,1,0,107,0,1,0,16,1,3,0,27,31,5,14,82,22,3,0,1,0,82,22,22,14,3,0,21,11,247,27,173,16,3,0,65,0,173,16,22,14,3,0,21,11,5,14,240,17,3,0,39,14,240,17,22,14,1,0,39,14,1,0,5,11,1,0,16,1,1,0,39,14,3,0,5,0,5,14,122,16,3,0,107,0,122,16,156,16,3,0,5,0,156,16,22,14,1,0,245,10,3,0,21,11,5,14,147,25,3,0,39,14,147,25,22,14,1,0,25,1,1,0,16,1,3,0,27,31,5,14,145,27,3,0,126,1,145,27,22,14,3,0,16,1,5,14,50,20,3,0,233,31,50,20,67,20,3,0,16,1,67,20,22,14,3,0,5,11,5,14,130,25,3,0,16,1,130,25,78,26,3,0,5,11,78,26,22,14,1,0,16,1,1,0,16,1,1,0,245,10,1,0,200,0,1,0,89,9,1,0,16,1,1,0,20,0,3,0,21,11,5,14,158,14,3,0,187,8,158,14,22,14,3,0,245,10,5,14,100,21,3,0,5,11,100,21,90,14,3,0,245,10,90,14,22,14,3,0,5,11,5,14,89,15,3,0,245,10,89,15,106,15,3,0,5,11,106,15,22,14,3,0,245,10,5,14,171,18,3,0,5,11,171,18,90,14,3,0,245,10,90,14,105,16,3,0,5,11,105,16,22,14,3,0,5,11,5,14,90,14,3,0,245,10,90,14,22,14,1,0,5,11,3,0,5,11,5,14,90,14,3,0,245,10,90,14,105,16,3,0,5,11,105,16,22,14,3,0,5,11,5,14,90,14,3,0,245,10,90,14,88,16,3,0,5,11,88,16,22,14,1,0,5,11,3,0,21,11,5,14,205,18,3,0,39,14,205,18,22,14,3,0,5,11,5,14,13,23,3,0,245,10,13,23,73,14,3,0,5,11,73,14,22,14,1,0,5,11,3,0,106,1,5,14,101,20,3,0,106,1,76,28,22,14,3,0,21,11,5,14,25,28,3,0,21,11,42,28,204,19,3,0,114,0,4,15,22,14,3,0,245,10,5,14,73,14,3,0,5,11,73,14,22,14,1,0,16,1,1,0,216,0,1,0,30,0,1,0,21,11,3,0,5,11,5,14,89,15,3,0,245,10,89,15,106,15,3,0,5,11,106,15,22,14,1,0,16,1,1,0,25,1,3,0,245,10,5,14,18,18,3,0,5,11,18,18,69,18,3,0,245,10,69,18,134,21,3,0,5,11,134,21,185,21,3,0,245,10,185,21,253,21,3,0,5,11,253,21,150,22,3,0,245,10,150,22,22,14,1,0,107,0,1,0,16,1,1,0,16,1,1,0,245,10,3,0,21,11,5,14,158,14,3,0,187,8,158,14,22,14,3,0,106,1,5,14,101,20,3,0,106,1,93,28,110,28,3,0,106,1,144,28,22,14,3,0,5,11,5,14,1,18,3,0,245,10,1,18,22,14,3,0,245,10,5,14,123,15,3,0,5,11,123,15,170,19,3,0,245,10,170,19,22,14,3,0,21,11,5,14,181,25,3,0,114,0,181,25,146,26,3,0,21,11,146,26,197,26,3,0,114,0,197,26,22,14,1,0,245,10,3,0,16,1,5,14,239,18,3,0,5,12,239,18,22,14,1,0,16,1,1,0,245,10,1,0,248,0,1,0,16,1,1,0,5,11,1,0,5,11,3,0,121,0,5,14,175,14,3,0,114,0,4,15,22,14,1,0,141,11,3,0,39,14,5,14,165,24,3,0,245,10,165,24,22,14,3,0,39,14,5,14,236,21,3,0,245,10,236,21,22,14,3,0,39,14,5,14,166,23,3,0,245,10,166,23,22,14,3,0,245,10,5,14,226,14,3,0,39,14,226,14,243,14,3,0,245,10,243,14,22,14,1,0,5,11,3,0,101,5,5,14,86,18,3,0,97,1,86,18,22,14,1,0,39,14,1,0,5,11,1,0,16,1,1,0,107,0,1,0,16,1,3,0,41,0,5,14,53,17,3,0,245,10,5,14,73,14,3,0,5,11,73,14,37,16,3,0,245,10,37,16,22,14,1,0,25,1,1,0,245,10,3,0,245,10,5,14,73,14,3,0,5,11,73,14,37,16,3,0,245,10,37,16,251,23,3,0,5,11,251,23,88,16,3,0,245,10,88,16,22,14,3,0,5,0,5,14,122,16,3,0,107,0,122,16,156,16,3,0,5,0,156,16,22,14,3,0,107,0,5,14,46,24,3,0,25,1,46,24,22,14,1,0,41,0,3,0,226,1,5,14,35,18,3,0,16,1,35,18,98,23,3,0,5,11,98,23,132,23,3,0,16,1,132,23,22,14,1,0,25,1,3,0,239,32,5,14,17,19,3,0,153,31,17,19,162,27,3,0,126,1,162,27,22,14,3,0,21,11,5,14,204,19,3,0,114,0,4,15,22,14,1,0,16,1,1,0,71,4,1,0,16,1,1,0,16,1,1,0,16,1,1,0,16,1,3,0,39,14,5,14,206,17,3,0,245,10,206,17,22,14,1,0,245,10,1,0,16,1,1,0,21,11,1,0,5,11,1,0,16,1,1,0,21,11,3,0,21,11,5,14,173,16,3,0,65,0,173,16,22,14,1,0,245,10,3,0,114,0,4,15,22,14,3,0,211,30,5,14,80,24,3,0,66,15,80,24,97,24,3,0,211,30,97,24,216,24,3,0,66,15,216,24,233,24,3,0,211,30,233,24,249,25,3,0,66,15,249,25,61,26,3,0,211,30,61,26,112,26,3,0,66,15,112,26,214,26,3,0,211,30,214,26,231,26,3,0,66,15,231,26,248,26,3,0,211,30,248,26,9,27,3,0,66,15,9,27,43,27,3,0,211,30,43,27,60,27,3,0,66,15,60,27,77,27,3,0,211,30,77,27,94,27,3,0,66,15,94,27,128,27,3,0,211,30,128,27,22,14,1,0,224,27,1,0,217,36,1,0,229,30,1,0,200,31,1,0,211,2,3,0,106,1,5,14,153,19,3,0,41,0,153,19,53,17,1,0,160,33,1,0,241,27,1,0,1,0,1,0,218,31,1,0,97,8,1,0,184,0,3,0,204,2,5,14,217,23,3,0,92,33,217,23,190,16,3,0,73,33,190,16,22,14,3,0,112,8,5,14,212,28,3,0,228,2,5,14,114,24,3,0,189,3,114,24,36,17,3,0,228,2,36,17,22,14,3,0,165,2,5,14,209,14,3,0,5,2,209,14,38,15,3,0,73,33,38,15,22,14,3,0,99,2,5,14,209,14,3,0,192,2,209,14,21,15,3,0,73,33,21,15,22,14,3,0,196,1,5,14,83,21,3,0,84,4,83,21,22,14,3,0,73,33,38,15,22,14,1,0,184,0,3,0,10,0,5,14,72,15,3,0,184,0,72,15,22,14,3,0,141,1,5,14,254,20,3,0,55,2,254,20,22,14,1,0,116,1,1,0,112,8,3,0,163,0,5,14,15,21,3,0,176,1,15,21,22,14,1,0,240,2,1,0,35,0,3,0,176,3,5,14,45,25,3,0,202,3,45,25,198,25,3,0,176,3,198,25,22,14,3,0,34,1,5,14,187,19,3,0,74,11,187,19,29,24,3,0,34,1,29,24,22,14,3,0,35,0,5,14,116,22,3,0,77,0,116,22,234,23,3,0,35,0,234,23,22,14,3,0,112,8,5,14,195,28,3,0,95,0,5,14,172,17,3,0,66,2,172,17,22,14,3,0,11,2,5,14,120,18,3,0,9,31,120,18,81,23,3,0,11,2,81,23,22,14,1,0,10,0,3,0,226,5,5,14,32,21,3,0,88,2,32,21,22,14,3,0,112,8,5,14,178,28,3,0,128,0,5,14,242,15,3,0,112,8,242,15,22,14,3,0,128,0,5,14,242,15,3,0,112,8,242,15,22,14,1,0,222,8,1,0,161,1,1,0,202,3,1,0,45,31,1,0,171,31,1,0,128,0,1,0,3,3,1,0,237,8,3,0,228,3,5,14,189,17,3,0,79,1,189,17,22,14,1,0,83,0,3,0,176,3,5,14,183,23,3,0,229,16,183,23,199,24,3,0,176,3,199,24,22,14,1,0,212,16,3,0,170,0,5,14,102,19,3,0,52,1,102,19,22,14,3,0,156,0,5,14,85,19,3,0,52,1,85,19,22,14,1,0,184,0,3,0,38,2,5,14,47,23,3,0,53,0,47,23,22,14,1,0,189,3,1,0,9,31,1,0,15,3,1,0,10,0,1,0,112,8,3,0,212,16,5,14,131,24,3,0,246,16,131,24,62,25,3,0,212,16,62,25,22,14,1,0,246,16,1,0,171,1,3,0,177,0,5,14,117,21,3,0,151,1,117,21,38,15,3,0,73,33,38,15,22,14,1,0,116,1,3,0,9,31,5,14,33,20,3,0,45,31,33,20,22,14,3,0,47,0,5,14,164,25,3,0,252,8,164,25,95,26,3,0,47,0,95,26,22,14,3,0,10,0,5,14,72,15,3,0,184,0,72,15,22,14,3,0,92,33,21,15,190,16,3,0,73,33,190,16,22,14,3,0,236,1,5,14,209,14,3,0,207,8,209,14,21,15,3,0,92,33,21,15,163,26,3,0,73,33,163,26,22,14,1,0,224,0,1,0,184,0,3,0,116,1,8,28,22,14,1,0,240,5,3,0,11,9,5,14,68,19,3,0,198,5,68,19,136,19,3,0,11,9,136,19,208,15,3,0,22,2,208,15,22,14,1,0,47,0,1,0,53,0,1,0,26,9,3,0,189,3,5,14,36,17,1,0,252,2,3,0,198,5,5,14,208,15,3,0,22,2,208,15,22,14,3,0,241,3,5,14,220,20,3,0,150,36,220,20,22,14,1,0,25,0,3,0,35,0,5,14,16,20,3,0,135,0,16,20,22,14,1,0,71,0,1,0,34,1,1,0,32,3,3,0,176,3,5,14,34,19,3,0,189,3,34,19,182,24,3,0,229,16,182,24,22,14,1,0,116,1,1,0,229,16,1,0,176,3,3,0,176,2,5,14,151,21,3,0,116,33,151,21,22,14,3,0,254,3,5,14,49,21,3,0,208,0,49,21,22,14,3,0,94,11,5,14,219,21,3,0,172,8,219,21,14,22,3,0,94,11,14,22,22,14,1,0,16,1,1,0,172,8,1,0,7,35,1,0,172,8,1,0,172,8,1,0,1,0,1,0,144,36,1,0,1,0,1,0,70,1,1,0,247,30,1,0,229,30,1,0,247,30,1,0,247,30,1,0,181,36,1,0,229,30,1,0,229,30,3,0,229,30,5,14,0,19,3,0,28,35,0,19,22,14,1,0,229,30,1,0,211,30,1,0,229,30,1,0,245,10,1,0,5,11,1,0,1,0,1,0,97,8,1,0,97,8,3,0,186,5,168,21,215,25,1,0,112,8,1,0,97,8,1,0,97,8,1,0,97,8,1,0,97,8,1,0,112,8,1,0,97,8,1,0,97,8,3,0,186,5,5,14,169,20,3,0,112,8,169,20,22,14,1,0,97,8,3,0,101,0,5,14,56,14,3,0,1,0,56,14,22,14,1,0,97,8,3,0,192,0,5,14,56,14,3,0,1,0,56,14,22,14,1,0,112,8,3,0,192,0,5,14,56,14,3,0,1,0,56,14,22,14,3,0,112,8,5,14,188,18,3,0,142,0,188,18,221,19,3,0,112,8,221,19,232,25,3,0,142,0,232,25,22,14,3,0,192,0,5,14,56,14,3,0,1,0,56,14,22,14,3,0,186,5,5,14,107,14,3,0,112,8,107,14,139,16,3,0,112,36,139,16,79,25,3,0,112,8,79,25,22,14,3,0,186,5,5,14,186,20,3,0,112,8,186,20,22,14,3,0,97,8,5,14,137,18,3,0,172,8,137,18,202,21,3,0,97,8,202,21,99,22,3,0,172,8,99,22,22,14,1,0,97,8,3,0,192,0,5,14,56,14,3,0,1,0,56,14,22,14,1,0,97,8,1,0,97,8,1,0,97,8,1,0,112,8,3,0,186,5,5,14,192,14,3,0,112,8,192,14,139,16,3,0,112,36,139,16,96,25,3,0,186,5,96,25,22,14,1,0,97,8,3,0,186,5,5,14,192,14,3,0,112,8,192,14,19,17,3,0,186,5,19,17,22,14,1,0,97,8,1,0,97,8,1,0,97,8,1,0,97,8,3,0,186,5,5,14,107,14,3,0,112,8,107,14,22,14,1,0,97,8,3,0,246,1,5,14,84,20,3,0,186,5,84,20,192,14,3,0,112,8,192,14,66,21,3,0,214,5,66,21,22,14,1,0,97,8,1,0,97,8,3,0,186,5,168,21,53,17,3,0,186,5,5,14,203,20,3,0,112,8,203,20,65,22,3,0,186,5,65,22,167,22,3,0,112,8,167,22,28,25,3,0,186,5,28,25,22,14,1,0,97,8,1,0,112,8,1,0,97,8,3,0,186,5,5,14,107,14,3,0,112,8,107,14,22,14,1,0,97,8,3,0,186,5,19,17,215,25,1,0,97,8,1,0,97,8,1,0,97,8,3,0,186,5,5,14,107,14,3,0,112,8,107,14,201,22,3,0,97,8,201,22,252,22,3,0,112,8,252,22,22,14,1,0,111,17,1,0,97,8,1,0,97,8,1,0,97,8,1,0,157,8,1,0,45,4,1,0,128,17,1,0,104,4,1,0,157,8,1,0,165,11,1,0,77,2,1,0,108,11,1,0,145,17,1,0,157,8,1,0,43,9,1,0,39,14,1,0,21,11,1,0,118,4,1,0,211,2,3,0,87,17,5,14,161,28,1,0,205,11,1,0,104,9,1,0,0,1,1,0,245,11,1,0,240,0,1,0,131,4,1,0,149,0,3,0,200,0,5,14,255,19,3,0,71,31,255,19,22,14,1,0,221,11,1,0,232,0,3,0,218,3,5,14,20,16,3,0,43,1,20,16,22,14,3,0,249,5,5,14,2,17,3,0,53,11,2,17,22,14,1,0,58,4,1,0,119,9,3,0,251,31,5,14,31,22,3,0,70,17,31,22,22,14,1,0,70,17,1,0,89,31,3,0,121,0,5,14,175,14,3,0,59,0,175,14,22,14,1,0,141,6,1,0,144,4,1,0,237,11,1,0,105,6,3,0,121,0,5,14,175,14,3,0,59,0,175,14,22,14,1,0,155,6,1,0,163,17,1,0,134,9,1,0,87,17,1,0,15,0,3,0,119,6,5,14,20,16,3,0,43,1,20,16,22,14,1,0,149,9,1,0,181,11,1,0,89,0,1,0,157,4,1,0,170,4,1,0,164,9,11,0,125,36,128,36,16,3,131,36,22,3,134,36,137,36,140,36,143,36,146,36,149,36,179,27,21,6,35,6,117,31,77,6,51,9,135,31,196,27,185,7,123,3,193,5,170,170,190,0,45,0,54,0,66,0,102,0,144,0,162,0,184,0,226,0,237,0,244,0,56,24,2,1,9,1,46,1,77,1,94,1,79,24,23,34,91,24,102,24,110,1,133,1,143,1,161,1,169,1,179,1,254,1,16,2,41,2,59,2,77,2,100,28,166,24,88,2,99,2,106,2,113,2,121,2,128,2,137,2,214,24,149,28,81,23,145,2,74,34,157,2,163,2,251,24,126,33,143,33,169,2,178,2,183,2,188,2,98,23,194,2,115,23,70,25,204,2,217,2,90,34,228,2,236,2,88,3,124,3,150,3,168,3,153,34,177,3,191,3,207,3,237,29,183,34,201,34,227,28,253,3,201,16,13,4,23,4,41,4,59,4,237,34,77,4,53,17,85,4,121,25,136,25,101,4,110,4,123,4,139,4,157,4,175,4,193,4,198,4,146,25,204,4,211,4,212,25,227,25,217,4,236,4,255,4,9,5,30,35,12,26,15,5,45,35,25,5,35,5,41,5,49,5,154,29,72,26,83,26,62,5,69,5,199,33,78,35,78,5,215,33,162,23,95,5,110,5,223,31,119,5,111,35,127,5,133,5,147,5,162,5,125,35,138,35,91,20,175,5,165,26,182,26,192,26,189,5,187,35,198,5,215,5,224,5,229,5,241,5,1,6,201,35,218,35,233,26,17,27,247,33,217,23,69,27,61,32,83,27,17,6,23,6,34,6,123,27,45,6,221,28,53,6,62,6,236,23,31,36,157,27,73,6,169,27,183,27,84,6,92,6,79,36,98,6,105,6,118,6,125,6,132,6,249,27,140,6,151,6,159,6,34,28,33,33,14,24,92,36,105,36,51,28,64,28,83,28,169,6,170,170,3,37,0,80,6,37,0,80,9,37,0,80,26,37,0,80,47,37,0,80,50,37,0,80,57,37,0,80,80,37,0,80,83,37,0,80,86,37,0,80,89,37,0,80,92,37,0,80,95,37,0,80,112,37,0,80,127,37,0,80,132,37,0,80,139,37,0,80,142,37,0,80,145,37,0,80,148,37,0,80,151,37,0,80,164,37,0,80,167,37,0,80,170,37,0,80,173,37,0,80,176,37,0,80,223,37,0,80,226,37,0,80,229,37,0,80,232,37,0,80,235,37,0,80,238,37,0,80,241,37,0,80,244,37,0,80,247,37,0,80,250,37,0,80,253,37,0,80,0,38,0,80,3,38,0,80,6,38,0,80,9,38,0,80,12,38,0,80,15,38,0,80,18,38,0,80,23,38,0,80,26,38,0,80,29,38,0,80,32,38,0,80,35,38,0,80,38,38,0,80,41,38,0,80,44,38,0,80,47,38,0,80,50,38,0,80,53,38,0,80,56,38,0,80,59,38,0,80,62,38,0,80,65,38,0,80,68,38,0,80,71,38,0,80,74,38,0,80,77,38,0,80,144,38,0,80,161,38,0,80,166,38,0,80,171,38,0,80,174,38,0,80,177,38,0,80,180,38,0,80,183,38,0,80,186,38,0,80,215,38,0,80,218,38,0,80,221,38,0,80,224,38,0,80,227,38,0,80,230,38,0,80,233,38,0,80,236,38,0,80,239,38,0,80,242,38,0,80,245,38,0,80,250,38,0,80,253,38,0,80,0,39,0,80,3,39,0,80,6,39,0,80,11,39,0,80,14,39,0,80,21,39,0,80,24,39,0,80,27,39,0,80,30,39,0,80,33,39,0,80,36,39,0,80,39,39,0,80,42,39,0,80,45,39,0,80,48,39,0,80,51,39,0,80,54,39,0,80,57,39,0,80,60,39,0,80,63,39,0,80,66,39,0,80,69,39,0,80,72,39,0,80,75,39,0,80,78,39,0,80,81,39,0,80,84,39,0,80,87,39,0,80,90,39,0,80,93,39,0,80,96,39,0,80,99,39,0,80,102,39,0,80,105,39,0,80,108,39,0,80,111,39,0,80,114,39,0,80,117,39,0,80,120,39,0,80,123,39,0,80,126,39,0,80,129,39,0,80,132,39,0,80,135,39,0,80,138,39,0,80,143,39,0,80,146,39,0,80,149,39,0,80,152,39,0,80,155,39,0,80,158,39,0,80,161,39,0,80,164,39,0,80,167,39,0,80,170,39,0,80,173,39,0,80,176,39,0,80,179,39,0,80,182,39,0,80,185,39,0,80,188,39,0,80,191,39,0,80,194,39,0,80,197,39,0,80,200,39,0,80,203,39,0,80,206,39,0,80,209,39,0,80,212,39,0,80,215,39,0,80,218,39,0,80,221,39,0,80,224,39,0,80,227,39,0,80,230,39,0,80,233,39,0,80,236,39,0,80,239,39,0,80,242,39,0,80,245,39,0,80,248,39,0,80,251,39,0,80,254,39,0,80,1,40,0,80,4,40,0,80,7,40,0,80,10,40,0,80,13,40,0,80,16,40,0,80,19,40,0,80,22,40,0,80,25,40,0,80,28,40,0,80,31,40,0,80,34,40,0,80,37,40,0,80,40,40,0,80,43,40,0,80,46,40,0,80,49,40,0,80,52,40,0,80,55,40,0,80,58,40,0,80,61,40,0,80,64,40,0,80,1,0,0,0,128,41,0,144,1,0,0,0,130,41,0,144,1,0,0,0,132,41,0,144,4,0,0,0,134,41,0,144,138,41,0,144,142,41,0,144,146,41,0,144,1,0,0,0,150,41,0,144,1,0,0,0,152,41,0,144,1,0,0,0,154,41,0,144,1,0,0,0,156,41,0,144,2,0,0,0,158,41,0,144,162,41,0,144,1,0,0,0,166,41,0,144,1,0,0,0,168,41,0,144,1,0,0,0,170,41,0,144,1,0,0,0,172,41,0,144,3,0,0,0,174,41,0,144,178,41,0,144,182,41,0,144,2,0,0,0,186,41,0,144,190,41,0,144,1,0,0,0,194,41,0,144,1,0,0,0,196,41,0,144,1,0,0,0,198,41,0,144,1,0,0,0,200,41,0,144,1,0,0,0,202,41,0,144,2,0,0,0,204,41,0,144,208,41,0,144,1,0,0,0,212,41,0,144,1,0,0,0,214,41,0,144,1,0,0,0,216,41,0,144,1,0,0,0,218,41,0,144,3,0,0,0,220,41,0,144,224,41,0,144,228,41,0,144,1,0,0,0,232,41,0,144,3,0,0,0,234,41,0,144,238,41,0,144,242,41,0,144,1,0,0,0,246,41,0,144,1,0,0,0,248,41,0,144,1,0,0,0,250,41,0,144,1,0,0,0,252,41,0,144,1,0,0,0,254,41,0,144,1,0,0,0,0,42,0,144,1,0,0,0,2,42,0,144,1,0,0,0,4,42,0,144,1,0,0,0,6,42,0,144,1,0,0,0,8,42,0,144,1,0,0,0,10,42,0,144,1,0,0,0,12,42,0,144,1,0,0,0,14,42,0,144,2,0,0,0,16,42,0,144,20,42,0,144,1,0,0,0,24,42,0,144,1,0,0,0,26,42,0,144,1,0,0,0,28,42,0,144,1,0,0,0,30,42,0,144,1,0,0,0,32,42,0,144,1,0,0,0,34,42,0,144,3,0,0,0,36,42,0,144,40,42,0,144,44,42,0,144,7,0,0,0,48,42,0,144,52,42,0,144,56,42,0,144,60,42,0,144,64,42,0,144,68,42,0,144,72,42,0,144,1,0,0,0,76,42,0,144,4,0,0,0,78,42,0,144,82,42,0,144,86,42,0,144,90,42,0,144,2,0,0,0,94,42,0,144,98,42,0,144,2,0,0,0,102,42,0,144,106,42,0,144,1,0,0,0,110,42,0,144,1,0,0,0,112,42,0,144,1,0,0,0,114,42,0,144,5,0,0,0,116,42,0,144,120,42,0,144,124,42,0,144,128,42,0,144,132,42,0,144,3,0,0,0,136,42,0,144,140,42,0,144,144,42,0,144,2,0,0,0,148,42,0,144,152,42,0,144,5,0,0,0,156,42,0,144,160,42,0,144,164,42,0,144,168,42,0,144,172,42,0,144,9,0,0,0,176,42,0,144,180,42,0,144,184,42,0,144,188,42,0,144,192,42,0,144,196,42,0,144,200,42,0,144,204,42,0,144,208,42,0,144,4,0,0,0,212,42,0,144,216,42,0,144,220,42,0,144,224,42,0,144,2,0,0,0,228,42,0,144,232,42,0,144,1,0,0,0,236,42,0,144,1,0,0,0,238,42,0,144,1,0,0,0,240,42,0,144,3,0,0,0,242,42,0,144,246,42,0,144,250,42,0,144,1,0,0,0,254,42,0,144,1,0,0,0,0,43,0,144,1,0,0,0,2,43,0,144,1,0,0,0,4,43,0,144,1,0,0,0,6,43,0,144,1,0,0,0,8,43,0,144,1,0,0,0,10,43,0,144,1,0,0,0,12,43,0,144,5,0,0,0,14,43,0,144,18,43,0,144,22,43,0,144,26,43,0,144,30,43,0,144,1,0,0,0,34,43,0,144,4,0,0,0,36,43,0,144,40,43,0,144,44,43,0,144,48,43,0,144,1,0,0,0,52,43,0,144,4,0,0,0,54,43,0,144,58,43,0,144,62,43,0,144,66,43,0,144,1,0,0,0,70,43,0,144,1,0,0,0,72,43,0,144,1,0,0,0,74,43,0,144,3,0,0,0,76,43,0,144,80,43,0,144,84,43,0,144,4,0,0,0,88,43,0,144,92,43,0,144,96,43,0,144,100,43,0,144,1,0,0,0,104,43,0,144,2,0,0,0,106,43,0,144,110,43,0,144,1,0,0,0,114,43,0,144,1,0,0,0,116,43,0,144,1,0,0,0,118,43,0,144,1,0,0,0,120,43,0,144,2,0,0,0,122,43,0,144,126,43,0,144,2,0,0,0,130,43,0,144,134,43,0,144,2,0,0,0,138,43,0,144,142,43,0,144,1,0,0,0,146,43,0,144,1,0,0,0,148,43,0,144,1,0,0,0,150,43,0,144,1,0,0,0,152,43,0,144,3,0,0,0,154,43,0,144,158,43,0,144,162,43,0,144,1,0,0,0,166,43,0,144,2,0,0,0,168,43,0,144,172,43,0,144,1,0,0,0,176,43,0,144,1,0,0,0,178,43,0,144,2,0,0,0,180,43,0,144,184,43,0,144,3,0,0,0,188,43,0,144,192,43,0,144,196,43,0,144,3,0,0,0,200,43,0,144,204,43,0,144,208,43,0,144,1,0,0,0,212,43,0,144,1,0,0,0,214,43,0,144,1,0,0,0,216,43,0,144,1,0,0,0,218,43,0,144,1,0,0,0,220,43,0,144,1,0,0,0,222,43,0,144,1,0,0,0,224,43,0,144,2,0,0,0,226,43,0,144,230,43,0,144,3,0,0,0,234,43,0,144,238,43,0,144,242,43,0,144,3,0,0,0,246,43,0,144,250,43,0,144,254,43,0,144,4,0,0,0,2,44,0,144,6,44,0,144,10,44,0,144,14,44,0,144,2,0,0,0,18,44,0,144,22,44,0,144,1,0,0,0,26,44,0,144,3,0,0,0,28,44,0,144,32,44,0,144,36,44,0,144,3,0,0,0,40,44,0,144,44,44,0,144,48,44,0,144,1,0,0,0,52,44,0,144,2,0,0,0,54,44,0,144,58,44,0,144,3,0,0,0,62,44,0,144,66,44,0,144,70,44,0,144,1,0,0,0,74,44,0,144,2,0,0,0,76,44,0,144,80,44,0,144,3,0,0,0,84,44,0,144,88,44,0,144,92,44,0,144,2,0,0,0,96,44,0,144,100,44,0,144,1,0,0,0,104,44,0,144,1,0,0,0,106,44,0,144,1,0,0,0,108,44,0,144,1,0,0,0,110,44,0,144,3,0,0,0,112,44,0,144,116,44,0,144,120,44,0,144,1,0,0,0,124,44,0,144,1,0,0,0,126,44,0,144,7,0,0,0,128,44,0,144,132,44,0,144,136,44,0,144,140,44,0,144,144,44,0,144,148,44,0,144,152,44,0,144,1,0,0,0,156,44,0,144,1,0,0,0,158,44,0,144,1,0,0,0,160,44,0,144,1,0,0,0,162,44,0,144,2,0,0,0,164,44,0,144,168,44,0,144,3,0,0,0,172,44,0,144,176,44,0,144,180,44,0,144,2,0,0,0,184,44,0,144,188,44,0,144,3,0,0,0,192,44,0,144,196,44,0,144,200,44,0,144,4,0,0,0,204,44,0,144,208,44,0,144,212,44,0,144,216,44,0,144,1,0,0,0,220,44,0,144,2,0,0,0,222,44,0,144,226,44,0,144,1,0,0,0,230,44,0,144,1,0,0,0,232,44,0,144,1,0,0,0,234,44,0,144,1,0,0,0,236,44,0,144,1,0,0,0,238,44,0,144,1,0,0,0,240,44,0,144,2,0,0,0,242,44,0,144,246,44,0,144,1,0,0,0,250,44,0,144,2,0,0,0,252,44,0,144,0,45,0,144,2,0,0,0,4,45,0,144,8,45,0,144,2,0,0,0,12,45,0,144,16,45,0,144,3,0,0,0,20,45,0,144,24,45,0,144,28,45,0,144,1,0,0,0,32,45,0,144,2,0,0,0,34,45,0,144,38,45,0,144,1,0,0,0,42,45,0,144,1,0,0,0,44,45,0,144,1,0,0,0,46,45,0,144,1,0,0,0,48,45,0,144,1,0,0,0,50,45,0,144,1,0,0,0,52,45,0,144,3,0,0,0,56,45,0,144,60,45,0,144,64,45,0,144,1,0,0,0,68,45,0,144,1,0,0,0,70,45,0,144,5,0,0,0,72,45,0,144,76,45,0,144,80,45,0,144,84,45,0,144,88,45,0,144,3,0,0,0,92,45,0,144,96,45,0,144,100,45,0,144,2,0,0,0,104,45,0,144,108,45,0,144,1,0,0,0,112,45,0,144,4,0,0,0,114,45,0,144,118,45,0,144,122,45,0,144,126,45,0,144,1,0,0,0,130,45,0,144,3,0,0,0,132,45,0,144,136,45,0,144,140,45,0,144,2,0,0,0,144,45,0,144,148,45,0,144,1,0,0,0,152,45,0,144,1,0,0,0,154,45,0,144,1,0,0,0,156,45,0,144,1,0,0,0,158,45,0,144,1,0,0,0,160,45,0,144,1,0,0,0,162,45,0,144,2,0,0,0,164,45,0,144,168,45,0,144,1,0,0,0,172,45,0,144,1,0,0,0,174,45,0,144,1,0,0,0,176,45,0,144,1,0,0,0,178,45,0,144,1,0,0,0,180,45,0,144,1,0,0,0,182,45,0,144,2,0,0,0,184,45,0,144,188,45,0,144,1,0,0,0,192,45,0,144,1,0,0,0,194,45,0,144,17,0,0,0,198,45,0,144,202,45,0,144,206,45,0,144,210,45,0,144,214,45,0,144,218,45,0,144,222,45,0,144,226,45,0,144,230,45,0,144,234,45,0,144,238,45,0,144,242,45,0,144,246,45,0,144,250,45,0,144,254,45,0,144,2,46,0,144,6,46,0,144,1,0,0,0,10,46,0,144,1,0,0,0,12,46,0,144,1,0,0,0,14,46,0,144,1,0,0,0,16,46,0,144,1,0,0,0,18,46,0,144,2,0,0,0,20,46,0,144,24,46,0,144,1,0,0,0,28,46,0,144,1,0,0,0,30,46,0,144,1,0,0,0,32,46,0,144,1,0,0,0,34,46,0,144,1,0,0,0,36,46,0,144,1,0,0,0,38,46,0,144,3,0,0,0,40,46,0,144,44,46,0,144,48,46,0,144,1,0,0,0,52,46,0,144,3,0,0,0,56,46,0,144,60,46,0,144,64,46,0,144,3,0,0,0,68,46,0,144,72,46,0,144,76,46,0,144,3,0,0,0,80,46,0,144,84,46,0,144,88,46,0,144,2,0,0,0,92,46,0,144,96,46,0,144,1,0,0,0,100,46,0,144,1,0,0,0,104,46,0,144,2,0,0,0,106,46,0,144,110,46,0,144,2,0,0,0,114,46,0,144,118,46,0,144,1,0,0,0,122,46,0,144,1,0,0,0,124,46,0,144,2,0,0,0,126,46,0,144,130,46,0,144,1,0,0,0,134,46,0,144,1,0,0,0,136,46,0,144,3,0,0,0,138,46,0,144,142,46,0,144,146,46,0,144,3,0,0,0,150,46,0,144,154,46,0,144,158,46,0,144,3,0,0,0,162,46,0,144,166,46,0,144,170,46,0,144,1,0,0,0,174,46,0,144,2,0,0,0,178,46,0,144,182,46,0,144,3,0,0,0,186,46,0,144,190,46,0,144,194,46,0,144,1,0,0,0,198,46,0,144,2,0,0,0,200,46,0,144,204,46,0,144,1,0,0,0,208,46,0,144,2,0,0,0,212,46,0,144,216,46,0,144,2,0,0,0,220,46,0,144,224,46,0,144,1,0,0,0,228,46,0,144,1,0,0,0,230,46,0,144,1,0,0,0,232,46,0,144,1,0,0,0,234,46,0,144,1,0,0,0,236,46,0,144,1,0,0,0,238,46,0,144,1,0,0,0,240,46,0,144,1,0,0,0,242,46,0,144,2,0,0,0,244,46,0,144,248,46,0,144,1,0,0,0,252,46,0,144,3,0,0,0,254,46,0,144,2,47,0,144,6,47,0,144,1,0,0,0,10,47,0,144,2,0,0,0,12,47,0,144,16,47,0,144,2,0,0,0,20,47,0,144,24,47,0,144,1,0,0,0,28,47,0,144,2,0,0,0,30,47,0,144,34,47,0,144,1,0,0,0,38,47,0,144,1,0,0,0,40,47,0,144,1,0,0,0,42,47,0,144,1,0,0,0,44,47,0,144,1,0,0,0,46,47,0,144,3,0,0,0,48,47,0,144,52,47,0,144,56,47,0,144,1,0,0,0,60,47,0,144,1,0,0,0,62,47,0,144,3,0,0,0,64,47,0,144,68,47,0,144,72,47,0,144,1,0,0,0,76,47,0,144,2,0,0,0,78,47,0,144,82,47,0,144,3,0,0,0,86,47,0,144,90,47,0,144,94,47,0,144,2,0,0,0,98,47,0,144,102,47,0,144,2,0,0,0,106,47,0,144,110,47,0,144,4,0,0,0,114,47,0,144,118,47,0,144,122,47,0,144,126,47,0,144,1,0,0,0,130,47,0,144,1,0,0,0,132,47,0,144,1,0,0,0,134,47,0,144,1,0,0,0,138,47,0,144,4,0,0,0,140,47,0,144,144,47,0,144,148,47,0,144,152,47,0,144,1,0,0,0,156,47,0,144,1,0,0,0,158,47,0,144,1,0,0,0,160,47,0,144,1,0,0,0,162,47,0,144,1,0,0,0,166,47,0,144,2,0,0,0,168,47,0,144,172,47,0,144,2,0,0,0,176,47,0,144,180,47,0,144,1,0,0,0,184,47,0,144,2,0,0,0,186,47,0,144,190,47,0,144,1,0,0,0,194,47,0,144,1,0,0,0,196,47,0,144,1,0,0,0,198,47,0,144,3,0,0,0,200,47,0,144,204,47,0,144,208,47,0,144,1,0,0,0,212,47,0,144,1,0,0,0,214,47,0,144,1,0,0,0,216,47,0,144,2,0,0,0,218,47,0,144,222,47,0,144,2,0,0,0,226,47,0,144,230,47,0,144,3,0,0,0,234,47,0,144,238,47,0,144,242,47,0,144,1,0,0,0,246,47,0,144,1,0,0,0,248,47,0,144,1,0,0,0,250,47,0,144,1,0,0,0,252,47,0,144,1,0,0,0,254,47,0,144,1,0,0,0,0,48,0,144,1,0,0,0,2,48,0,144,1,0,0,0,4,48,0,144,1,0,0,0,6,48,0,144,1,0,0,0,8,48,0,144,1,0,0,0,10,48,0,144,1,0,0,0,12,48,0,144,1,0,0,0,14,48,0,144,1,0,0,0,16,48,0,144,1,0,0,0,18,48,0,144,1,0,0,0,20,48,0,144,2,0,0,0,22,48,0,144,26,48,0,144,1,0,0,0,30,48,0,144,1,0,0,0,32,48,0,144,1,0,0,0,34,48,0,144,1,0,0,0,36,48,0,144,1,0,0,0,38,48,0,144,1,0,0,0,40,48,0,144,1,0,0,0,42,48,0,144,1,0,0,0,44,48,0,144,1,0,0,0,46,48,0,144,1,0,0,0,50,48,0,144,1,0,0,0,52,48,0,144,1,0,0,0,54,48,0,144,1,0,0,0,56,48,0,144,1,0,0,0,58,48,0,144,1,0,0,0,60,48,0,144,1,0,0,0,62,48,0,144,1,0,0,0,64,48,0,144,2,0,0,0,66,48,0,144,70,48,0,144,1,0,0,0,74,48,0,144,2,0,0,0,76,48,0,144,80,48,0,144,1,0,0,0,84,48,0,144,2,0,0,0,86,48,0,144,90,48,0,144,1,0,0,0,94,48,0,144,2,0,0,0,96,48,0,144,100,48,0,144,4,0,0,0,104,48,0,144,108,48,0,144,112,48,0,144,116,48,0,144,2,0,0,0,120,48,0,144,124,48,0,144,4,0,0,0,128,48,0,144,132,48,0,144,136,48,0,144,140,48,0,144,2,0,0,0,144,48,0,144,148,48,0,144,4,0,0,0,152,48,0,144,156,48,0,144,160,48,0,144,164,48,0,144,1,0,0,0,168,48,0,144,2,0,0,0,170,48,0,144,174,48,0,144,1,0,0,0,178,48,0,144,1,0,0,0,180,48,0,144,1,0,0,0,182,48,0,144,1,0,0,0,184,48,0,144,4,0,0,0,186,48,0,144,190,48,0,144,194,48,0,144,198,48,0,144,1,0,0,0,202,48,0,144,3,0,0,0,204,48,0,144,208,48,0,144,212,48,0,144,1,0,0,0,216,48,0,144,1,0,0,0,218,48,0,144,1,0,0,0,220,48,0,144,1,0,0,0,222,48,0,144,2,0,0,0,224,48,0,144,228,48,0,144,1,0,0,0,232,48,0,144,4,0,0,0,234,48,0,144,238,48,0,144,242,48,0,144,246,48,0,144,1,0,0,0,250,48,0,144,1,0,0,0,252,48,0,144,1,0,0,0,254,48,0,144,5,0,0,0,2,49,0,144,6,49,0,144,10,49,0,144,14,49,0,144,18,49,0,144,1,0,0,0,22,49,0,144,1,0,0,0,24,49,0,144,1,0,0,0,26,49,0,144,2,0,0,0,28,49,0,144,32,49,0,144,1,0,0,0,36,49,0,144,1,0,0,0,38,49,0,144,1,0,0,0,42,49,0,144,1,0,0,0,44,49,0,144,1,0,0,0,46,49,0,144,4,0,0,0,48,49,0,144,52,49,0,144,56,49,0,144,60,49,0,144,1,0,0,0,64,49,0,144,1,0,0,0,66,49,0,144,1,0,0,0,68,49,0,144,1,0,0,0,70,49,0,144,1,0,0,0,72,49,0,144,1,0,0,0,74,49,0,144,1,0,0,0,76,49,0,144,1,0,0,0,78,49,0,144,1,0,0,0,80,49,0,144,1,0,0,0,82,49,0,144,1,0,0,0,84,49,0,144,1,0,0,0,86,49,0,144,1,0,0,0,88,49,0,144,1,0,0,0,90,49,0,144,1,0,0,0,92,49,0,144,1,0,0,0,94,49,0,144,1,0,0,0,96,49,0,144,1,0,0,0,98,49,0,144,1,0,0,0,100,49,0,144,1,0,0,0,102,49,0,144,1,0,0,0,106,49,0,144,1,0,0,0,108,49,0,144,1,0,0,0,110,49,0,144,1,0,0,0,112,49,0,144,1,0,0,0,114,49,0,144,1,0,0,0,116,49,0,144,1,0,0,0,118,49,0,144,2,0,0,0,120,49,0,144,124,49,0,144,1,0,0,0,128,49,0,144,1,0,0,0,130,49,0,144,2,0,0,0,132,49,0,144,136,49,0,144,2,0,0,0,140,49,0,144,144,49,0,144,1,0,0,0,148,49,0,144,1,0,0,0,150,49,0,144,2,0,0,0,152,49,0,144,156,49,0,144,1,0,0,0,160,49,0,144,1,0,0,0,162,49,0,144,2,0,0,0,164,49,0,144,168,49,0,144,1,0,0,0,172,49,0,144,1,0,0,0,174,49,0,144,1,0,0,0,176,49,0,144,1,0,0,0,178,49,0,144,2,0,0,0,180,49,0,144,184,49,0,144,1,0,0,0,188,49,0,144,1,0,0,0,190,49,0,144,1,0,0,0,192,49,0,144,1,0,0,0,194,49,0,144,1,0,0,0,196,49,0,144,2,0,0,0,198,49,0,144,202,49,0,144,1,0,0,0,206,49,0,144,1,0,0,0,208,49,0,144,1,0,0,0,210,49,0,144,1,0,0,0,212,49,0,144,1,0,0,0,214,49,0,144,1,0,0,0,216,49,0,144,164,1,197,9,212,9,225,9,244,9,3,10,17,10,31,10,45,10,59,10,73,10,89,10,108,10,125,10,138,10,156,10,169,10,184,10,197,10,218,10,234,10,248,10,8,11,24,11,40,11,54,11,74,11,86,11,101,11,117,11,131,11,147,11,160,11,178,11,190,11,204,11,222,11,236,11,250,11,8,12,22,12,37,12,54,12,70,12,85,12,101,12,115,12,133,12,152,12,170,12,186,12,201,12,214,12,230,12,243,12,5,13,22,13,38,13,56,13,83,13,114,13,138,13,165,13,192,13,218,13,244,13,2,14,19,14,33,14,56,14,73,14,87,14,102,14,123,14,141,14,156,14,170,14,191,14,213,14,234,14,249,14,9,15,27,15,43,15,58,15,74,15,92,15,114,15,136,15,152,15,171,15,187,15,202,15,218,15,239,15,254,15,19,16,34,16,50,16,67,16,84,16,101,16,121,16,141,16,159,16,177,16,193,16,211,16,230,16,246,16,9,17,27,17,45,17,60,17,76,17,91,17,110,17,131,17,155,17,182,17,208,17,230,17,0,18,24,18,45,18,60,18,76,18,92,18,106,18,121,18,149,18,168,18,183,18,196,18,216,18,235,18,1,19,16,19,32,19,47,19,63,19,82,19,100,19,117,19,133,19,151,19,166,19,185,19,205,19,222,19,238,19,0,20,19,20,38,20,53,20,70,20,83,20,99,20,127,20,155,20,186,20,202,20,217,20,236,20,252,20,19,21,41,21,61,21,81,21,102,21,123,21,138,21,153,21,170,21,189,21,206,21,223,21,245,21,7,22,28,22,42,22,64,22,81,22,98,22,115,22,133,22,152,22,174,22,194,22,208,22,224,22,240,22,0,23,18,23,37,23,54,23,70,23,87,23,104,23,130,23,151,23,169,23,188,23,206,23,225,23,242,23,3,24,21,24,41,24,51,24,63,24,74,24,86,24,97,24,109,24,123,24,135,24,148,24,161,24,171,24,184,24,196,24,209,24,221,24,235,24,246,24,6,25,19,25,33,25,44,25,54,25,65,25,79,25,94,25,104,25,116,25,131,25,141,25,154,25,167,25,181,25,196,25,207,25,222,25,235,25,249,25,7,26,24,26,42,26,55,26,67,26,78,26,91,26,105,26,117,26,129,26,142,26,160,26,177,26,187,26,197,26,213,26,228,26,243,26,254,26,12,27,27,27,40,27,52,27,64,27,78,27,93,27,104,27,118,27,133,27,152,27,164,27,178,27,191,27,203,27,216,27,227,27,244,27,0,28,14,28,29,28,46,28,59,28,78,28,91,28,107,28,124,28,140,28,160,28,176,28,193,28,212,28,235,28,254,28,15,29,34,29,53,29,75,29,92,29,108,29,125,29,144,29,164,29,184,29,200,29,217,29,225,29,233,29,241,29,2,30,17,30,34,30,48,30,64,30,78,30,96,30,112,30,129,30,145,30,161,30,177,30,195,30,209,30,226,30,242,30,2,31,21,31,37,31,51,31,70,31,82,31,96,31,113,31,127,31,145,31,159,31,172,31,189,31,202,31,216,31,230,31,242,31,255,31,16,32,30,32,42,32,54,32,68,32,86,32,102,32,117,32,135,32,149,32,162,32,179,32,194,32,208,32,225,32,238,32,253,32,11,33,26,33,43,33,57,33,71,33,85,33,105,33,119,33,136,33,149,33,163,33,180,33,192,33,208,33,225,33,240,33,255,33,7,34,15,34,28,34,45,34,66,34,82,34,97,34,111,34,129,34,145,34,158,34,175,34,193,34,209,34,229,34,242,34,3,35,22,35,37,35,55,35,70,35,88,35,103,35,117,35,130,35,146,35,161,35,179,35,193,35,210,35,225,35,246,35,8,36,23,36,38,36,53,36,71,36,84,36,97,36,170,170,61,35,0,128,63,35,0,128,65,35,0,128,67,35,0,128,72,35,0,128,74,35,0,128,76,35,0,128,78,35,0,128,80,35,0,128,83,35,0,128,85,35,0,128,87,35,0,128,89,35,0,128,91,35,0,128,95,35,0,128,98,35,0,128,100,35,0,128,102,35,0,128,104,35,0,128,106,35,0,128,108,35,0,128,111,35,0,128,113,35,0,128,115,35,0,128,117,35,0,128,119,35,0,128,123,35,0,128,125,35,0,128,129,35,0,128,131,35,0,128,133,35,0,128,135,35,0,128,137,35,0,128,139,35,0,128,141,35,0,128,143,35,0,128,145,35,0,128,147,35,0,128,149,35,0,128,151,35,0,128,153,35,0,128,155,35,0,128,158,35,0,128,160,35,0,128,162,35,0,128,164,35,0,128,166,35,0,128,168,35,0,128,170,35,0,128,174,35,0,128,182,35,0,128,184,35,0,128,189,35,0,128,192,35,0,128,195,35,0,128,197,35,0,128,199,35,0,128,201,35,0,128,207,35,0,128,211,35,0,128,214,35,0,128,220,35,0,128,230,35,0,128,235,35,0,128,238,35,0,128,240,35,0,128,242,35,0,128,244,35,0,128,248,35,0,128,250,35,0,128,252,35,0,128,254,35,0,128,0,36,0,128,2,36,0,128,4,36,0,128,6,36,0,128,8,36,0,128,14,36,0,128,16,36,0,128,21,36,0,128,23,36,0,128,28,36,0,128,30,36,0,128,32,36,0,128,34,36,0,128,38,36,0,128,43,36,0,128,45,36,0,128,48,36,0,128,50,36,0,128,52,36,0,128,54,36,0,128,56,36,0,128,59,36,0,128,62,36,0,128,65,36,0,128,67,36,0,128,69,36,0,128,71,36,0,128,73,36,0,128,77,36,0,128,79,36,0,128,82,36,0,128,84,36,0,128,86,36,0,128,89,36,0,128,93,36,0,128,97,36,0,128,99,36,0,128,101,36,0,128,103,36,0,128,105,36,0,128,107,36,0,128,109,36,0,128,111,36,0,128,114,36,0,128,118,36,0,128,122,36,0,128,127,36,0,128,130,36,0,128,132,36,0,128,136,36,0,128,140,36,0,128,142,36,0,128,145,36,0,128,149,36,0,128,151,36,0,128,154,36,0,128,158,36,0,128,161,36,0,128,163,36,0,128,165,36,0,128,167,36,0,128,169,36,0,128,173,36,0,128,175,36,0,128,177,36,0,128,185,36,0,128,187,36,0,128,189,36,0,128,191,36,0,128,193,36,0,128,196,36,0,128,200,36,0,128,203,36,0,128,207,36,0,128,212,36,0,128,214,36,0,128,217,36,0,128,219,36,0,128,221,36,0,128,223,36,0,128,225,36,0,128,227,36,0,128,229,36,0,128,232,36,0,128,234,36,0,128,237,36,0,128,240,36,0,128,243,36,0,128,247,36,0,128,249,36,0,128,252,36,0,128,254,36,0,128,0,37,0,128,2,37,0,128,4,37,0,128,6,37,0,128,8,37,0,128,12,37,0,128,14,37,0,128,16,37,0,128,22,37,0,128,26,37,0,128,29,37,0,128,31,37,0,128,36,37,0,128,38,37,0,128,42,37,0,128,45,37,0,128,47,37,0,128,49,37,0,128,51,37,0,128,53,37,0,128,55,37,0,128,57,37,0,128,60,37,0,128,62,37,0,128,64,37,0,128,66,37,0,128,68,37,0,128,70,37,0,128,72,37,0,128,75,37,0,128,77,37,0,128,79,37,0,128,97,37,0,128,99,37,0,128,101,37,0,128,103,37,0,128,105,37,0,128,107,37,0,128,110,37,0,128,112,37,0,128,114,37,0,128,116,37,0,128,118,37,0,128,120,37,0,128,122,37,0,128,126,37,0,128,128,37,0,128,132,37,0,128,136,37,0,128,140,37,0,128,143,37,0,128,145,37,0,128,147,37,0,128,150,37,0,128,153,37,0,128,155,37,0,128,157,37,0,128,160,37,0,128,162,37,0,128,164,37,0,128,168,37,0,128,172,37,0,128,176,37,0,128,178,37,0,128,181,37,0,128,185,37,0,128,187,37,0,128,190,37,0,128,192,37,0,128,195,37,0,128,198,37,0,128,200,37,0,128,202,37,0,128,204,37,0,128,206,37,0,128,208,37,0,128,210,37,0,128,212,37,0,128,214,37,0,128,217,37,0,128,219,37,0,128,223,37,0,128,225,37,0,128,228,37,0,128,231,37,0,128,233,37,0,128,236,37,0,128,238,37,0,128,240,37,0,128,242,37,0,128,244,37,0,128,246,37,0,128,250,37,0,128,252,37,0,128,254,37,0,128,2,38,0,128,4,38,0,128,7,38,0,128,11,38,0,128,14,38,0,128,17,38,0,128,22,38,0,128,24,38,0,128,26,38,0,128,28,38,0,128,30,38,0,128,35,38,0,128,37,38,0,128,39,38,0,128,41,38,0,128,43,38,0,128,45,38,0,128,48,38,0,128,51,38,0,128,53,38,0,128,56,38,0,128,58,38,0,128,60,38,0,128,62,38,0,128,66,38,0,128,68,38,0,128,70,38,0,128,72,38,0,128,75,38,0,128,78,38,0,128,82,38,0,128,84,38,0,128,86,38,0,128,88,38,0,128,90,38,0,128,92,38,0,128,94,38,0,128,96,38,0,128,98,38,0,128,100,38,0,128,102,38,0,128,104,38,0,128,106,38,0,128,108,38,0,128,110,38,0,128,112,38,0,128,114,38,0,128,117,38,0,128,119,38,0,128,121,38,0,128,123,38,0,128,125,38,0,128,127,38,0,128,129,38,0,128,131,38,0,128,133,38,0,128,135,38,0,128,137,38,0,128,139,38,0,128,141,38,0,128,143,38,0,128,145,38,0,128,147,38,0,128,149,38,0,128,151,38,0,128,154,38,0,128,156,38,0,128,159,38,0,128,161,38,0,128,164,38,0,128,166,38,0,128,169,38,0,128,174,38,0,128,177,38,0,128,182,38,0,128,185,38,0,128,190,38,0,128,192,38,0,128,195,38,0,128,197,38,0,128,199,38,0,128,201,38,0,128,203,38,0,128,208,38,0,128,210,38,0,128,214,38,0,128,216,38,0,128,218,38,0,128,220,38,0,128,222,38,0,128,225,38,0,128,227,38,0,128,232,38,0,128,234,38,0,128,236,38,0,128,238,38,0,128,244,38,0,128,246,38,0,128,248,38,0,128,250,38,0,128,253,38,0,128,255,38,0,128,1,39,0,128,3,39,0,128,5,39,0,128,7,39,0,128,12,39,0,128,14,39,0,128,16,39,0,128,18,39,0,128,20,39,0,128,22,39,0,128,24,39,0,128,26,39,0,128,28,39,0,128,30,39,0,128,32,39,0,128,34,39,0,128,36,39,0,128,38,39,0,128,40,39,0,128,42,39,0,128,44,39,0,128,46,39,0,128,48,39,0,128,50,39,0,128,52,39,0,128,54,39,0,128,56,39,0,128,58,39,0,128,60,39,0,128,62,39,0,128,64,39,0,128,66,39,0,128,69,39,0,128,71,39,0,128,73,39,0,128,76,39,0,128,79,39,0,128,81,39,0,128,83,39,0,128,86,39,0,128,88,39,0,128,90,39,0,128,93,39,0,128,95,39,0,128,97,39,0,128,99,39,0,128,101,39,0,128,104,39,0,128,106,39,0,128,108,39,0,128,110,39,0,128,112,39,0,128,114,39,0,128,117,39,0,128,119,39,0,128,121,39,0,128,123,39,0,128,125,39,0,128,127,39,0,128,4,0,32,0,175,6,184,9,112,36,170,170,31,34,0,32,67,40,0,80,129,39,0,32,218,49,0,80,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,184,36,0,32,7,0,0,0,157,5,0,0,188,36,0,0,188,36,0,0,128,2,0,0,1,0,0,0,30,29,0,0,97,108,105,97,115,0,108,97,110,103,117,97,103,101,0,97,97,95,115,97,97,104,111,0,114,101,97,115,111,110,0,114,101,112,108,97,99,101,109,101,110,116,0,97,97,109,0,97,97,114,0,97,98,107,0,97,100,112,0,97,102,114,0,97,103,112,0,97,105,115,0,97,106,116,0,97,106,117,0,97,107,97,0,97,108,98,0,97,108,115,0,97,109,104,0,97,114,97,0,97,114,98,0,97,114,103,0,97,114,109,0,97,114,116,95,108,111,106,98,97,110,0,97,115,100,0,97,115,109,0,97,117,101,0,97,118,97,0,97,118,101,0,97,121,109,0,97,121,114,0,97,121,120,0,97,122,101,0,97,122,106,0,98,97,107,0,98,97,109,0,98,97,113,0,98,97,122,0,98,99,99,0,98,99,108,0,98,101,108,0,98,101,110,0,98,103,109,0,98,104,0,98,104,107,0,98,105,99,0,98,105,104,0,98,105,115,0,98,106,100,0,98,106,113,0,98,107,98,0,98,108,103,0,98,111,100,0,98,111,115,0,98,114,101,0,98,116,98,0,98,117,108,0,98,117,114,0,98,120,107,0,98,120,114,0,99,97,116,0,99,99,113,0,99,101,108,95,103,97,117,108,105,115,104,0,99,101,115,0,99,104,97,0,99,104,101,0,99,104,105,0,99,104,117,0,99,104,118,0,99,106,114,0,99,107,97,0,99,108,100,0,99,109,107,0,99,110,114,0,99,111,114,0,99,111,115,0,99,111,121,0,99,113,117,0,99,114,101,0,99,119,100,0,99,121,109,0,99,122,101,0,100,97,102,0,100,97,110,0,100,97,112,0,100,101,117,0,100,103,111,0,100,104,100,0,100,105,107,0,100,105,113,0,100,105,116,0,100,105,118,0,100,106,108,0,100,107,108,0,100,114,104,0,100,114,114,0,100,114,119,0,100,117,100,0,100,117,106,0,100,117,116,0,100,119,108,0,100,122,111,0,101,107,107,0,101,108,108,0,101,108,112,0,101,109,107,0,101,110,95,71,66,95,111,101,100,0,101,110,103,0,101,112,111,0,101,115,107,0,101,115,116,0,101,117,115,0,101,119,101,0,102,97,111,0,102,97,115,0,102,97,116,0,102,105,106,0,102,105,110,0,102,114,97,0,102,114,101,0,102,114,121,0,102,117,99,0,102,117,108,0,103,97,118,0,103,97,122,0,103,98,99,0,103,98,111,0,103,101,111,0,103,101,114,0,103,102,120,0,103,103,110,0,103,103,111,0,103,103,114,0,103,105,111,0,103,108,97,0,103,108,101,0,103,108,103,0,103,108,105,0,103,108,118,0,103,110,111,0,103,114,101,0,103,114,110,0,103,116,105,0,103,117,103,0,103,117,106,0,103,117,118,0,103,121,97,0,104,97,116,0,104,97,117,0,104,98,115,0,104,100,110,0,104,101,97,0,104,101,98,0,104,101,114,0,104,105,109,0,104,105,110,0,104,109,111,0,104,114,114,0,104,114,118,0,104,117,110,0,104,121,95,97,114,101,118,109,100,97,0,104,121,101,0,105,95,97,109,105,0,105,95,98,110,110,0,105,95,100,101,102,97,117,108,116,0,105,95,101,110,111,99,104,105,97,110,0,105,95,104,97,107,0,105,95,107,108,105,110,103,111,110,0,105,95,108,117,120,0,105,95,109,105,110,103,111,0,105,95,110,97,118,97,106,111,0,105,95,112,119,110,0,105,95,116,97,111,0,105,95,116,97,121,0,105,95,116,115,117,0,105,98,105,0,105,98,111,0,105,99,101,0,105,100,111,0,105,105,105,0,105,107,101,0,105,107,117,0,105,108,101,0,105,108,108,0,105,108,119,0,105,110,97,0,105,110,100,0,105,112,107,0,105,115,108,0,105,116,97,0,105,122,105,0,106,97,114,0,106,97,118,0,106,101,103,0,106,112,110,0,106,119,0,107,97,108,0,107,97,110,0,107,97,115,0,107,97,116,0,107,97,117,0,107,97,122,0,107,100,118,0,107,103,99,0,107,103,100,0,107,103,104,0,107,104,107,0,107,104,109,0,107,105,107,0,107,105,110,0,107,105,114,0,107,109,114,0,107,110,99,0,107,110,103,0,107,110,110,0,107,111,106,0,107,111,109,0,107,111,110,0,107,111,114,0,107,112,112,0,107,112,118,0,107,114,109,0,107,116,114,0,107,117,97,0,107,117,114,0,107,118,115,0,107,119,113,0,107,120,101,0,107,120,108,0,107,122,104,0,107,122,106,0,107,122,116,0,108,97,107,0,108,97,111,0,108,97,116,0,108,97,118,0,108,98,107,0,108,101,103,0,108,105,105,0,108,105,109,0,108,105,110,0,108,105,116,0,108,108,111,0,108,109,109,0,108,116,122,0,108,117,98,0,108,117,103,0,108,118,115,0,109,97,99,0,109,97,104,0,109,97,111,0,109,97,114,0,109,97,121,0,109,101,103,0,109,103,120,0,109,104,114,0,109,107,100,0,109,108,103,0,109,108,116,0,109,110,107,0,109,110,116,0,109,111,102,0,109,111,108,0,109,111,110,0,109,114,105,0,109,115,97,0,109,115,116,0,109,117,112,0,109,119,100,0,109,119,106,0,109,121,97,0,109,121,100,0,109,121,116,0,110,97,100,0,110,97,117,0,110,97,118,0,110,98,102,0,110,98,108,0,110,98,120,0,110,99,112,0,110,100,101,0,110,100,111,0,110,101,112,0,110,108,100,0,110,108,110,0,110,108,114,0,110,110,111,0,110,110,115,0,110,110,120,0,110,111,95,98,111,107,0,110,111,95,98,111,107,109,97,108,0,110,111,95,110,121,110,0,110,111,95,110,121,110,111,114,115,107,0,110,111,98,0,110,111,111,0,110,111,114,0,110,112,105,0,110,116,115,0,110,120,117,0,110,121,97,0,111,99,105,0,111,106,103,0,111,106,105,0,111,114,105,0,111,114,109,0,111,115,115,0,111,117,110,0,112,97,110,0,112,97,116,0,112,98,117,0,112,99,114,0,112,101,114,0,112,101,115,0,112,108,105,0,112,108,116,0,112,109,99,0,112,109,117,0,112,110,98,0,112,111,108,0,112,111,114,0,112,112,97,0,112,112,114,0,112,114,115,0,112,114,121,0,112,117,115,0,112,117,122,0,113,117,101,0,113,117,122,0,114,109,114,0,114,109,121,0,114,111,104,0,114,111,110,0,114,117,109,0,114,117,110,0,114,117,115,0,115,97,103,0,115,97,110,0,115,97,112,0,115,99,97,0,115,99,99,0,115,99,114,0,115,103,108,0,115,103,110,95,66,69,95,70,82,0,115,103,110,95,66,69,95,78,76,0,115,103,110,95,66,82,0,115,103,110,95,67,72,95,68,69,0,115,103,110,95,67,79,0,115,103,110,95,68,69,0,115,103,110,95,68,75,0,115,103,110,95,69,83,0,115,103,110,95,70,82,0,115,103,110,95,71,66,0,115,103,110,95,71,82,0,115,103,110,95,73,69,0,115,103,110,95,73,84,0,115,103,110,95,74,80,0,115,103,110,95,77,88,0,115,103,110,95,78,73,0,115,103,110,95,78,76,0,115,103,110,95,78,79,0,115,103,110,95,80,84,0,115,103,110,95,83,69,0,115,103,110,95,85,83,0,115,103,110,95,90,65,0,115,105,110,0,115,107,107,0,115,108,107,0,115,108,111,0,115,108,118,0,115,109,100,0,115,109,101,0,115,109,111,0,115,110,97,0,115,110,98,0,115,110,100,0,115,111,109,0,115,111,116,0,115,112,97,0,115,112,121,0,115,113,105,0,115,114,99,0,115,114,100,0,115,114,112,0,115,115,119,0,115,117,108,0,115,117,110,0,115,119,97,0,115,119,99,0,115,119,101,0,115,119,104,0,116,97,104,0,116,97,109,0,116,97,116,0,116,100,117,0,116,101,108,0,116,103,103,0,116,103,107,0,116,103,108,0,116,104,97,0,116,104,99,0,116,104,119,0,116,104,120,0,116,105,98,0,116,105,100,0,116,105,101,0,116,105,114,0,116,107,107,0,116,108,0,116,108,119,0,116,109,112,0,116,110,101,0,116,110,102,0,116,115,102,0,116,115,110,0,116,115,111,0,116,116,113,0,116,117,107,0,116,117,114,0,116,119,0,116,119,105,0,117,105,103,0,117,107,114,0,117,109,117,0,117,110,100,95,97,97,108,97,110,100,0,117,110,100,95,97,114,101,118,101,108,97,0,117,110,100,95,97,114,101,118,109,100,97,0,117,110,100,95,98,111,107,109,97,108,0,117,110,100,95,104,97,107,107,97,0,117,110,100,95,104,101,112,98,117,114,110,95,104,101,112,108,111,99,0,117,110,100,95,108,111,106,98,97,110,0,117,110,100,95,110,121,110,111,114,115,107,0,117,110,100,95,115,97,97,104,111,0,117,110,100,95,120,105,97,110,103,0,117,110,112,0,117,111,107,0,117,114,100,0,117,122,98,0,117,122,110,0,118,101,110,0,118,105,101,0,118,111,108,0,119,101,108,0,119,103,119,0,119,105,116,0,119,105,119,0,119,108,110,0,119,111,108,0,120,98,97,0,120,104,111,0,120,105,97,0,120,107,104,0,120,112,101,0,120,114,113,0,120,115,106,0,120,115,108,0,121,98,100,0,121,100,100,0,121,101,110,0,121,105,100,0,121,105,121,0,121,109,97,0,121,109,116,0,121,111,114,0,121,111,115,0,121,117,117,0,122,97,105,0,122,104,95,99,109,110,0,122,104,95,99,109,110,95,72,97,110,115,0,122,104,95,99,109,110,95,72,97,110,116,0,122,104,95,103,97,110,0,122,104,95,103,117,111,121,117,0,122,104,95,104,97,107,107,97,0,122,104,95,109,105,110,0,122,104,95,109,105,110,95,110,97,110,0,122,104,95,119,117,117,0,122,104,95,120,105,97,110,103,0,122,104,95,121,117,101,0,122,104,97,0,122,104,111,0,122,105,114,0,122,115,109,0,122,117,108,0,122,121,98,0,115,99,114,105,112,116,0,81,97,97,105,0,115,117,98,100,105,118,105,115,105,111,110,0,99,110,49,49,0,99,110,49,50,0,99,110,49,51,0,99,110,49,52,0,99,110,49,53,0,99,110,50,49,0,99,110,50,50,0,99,110,50,51,0,99,110,51,49,0,99,110,51,50,0,99,110,51,51,0,99,110,51,52,0,99,110,51,53,0,99,110,51,54,0,99,110,51,55,0,99,110,52,49,0,99,110,52,50,0,99,110,52,51,0,99,110,52,52,0,99,110,52,53,0,99,110,52,54,0,99,110,53,48,0,99,110,53,49,0,99,110,53,50,0,99,110,53,51,0,99,110,53,52,0,99,110,54,49,0,99,110,54,50,0,99,110,54,51,0,99,110,54,52,0,99,110,54,53,0,99,110,55,49,0,99,110,57,49,0,99,110,57,50,0,99,122,49,48,97,0,99,122,49,48,98,0,99,122,49,48,99,0,99,122,49,48,100,0,99,122,49,48,101,0,99,122,49,48,102,0,99,122,54,49,49,0,99,122,54,49,50,0,99,122,54,49,51,0,99,122,54,49,52,0,99,122,54,49,53,0,99,122,54,50,49,0,99,122,54,50,50,0,99,122,54,50,51,0,99,122,54,50,52,0,99,122,54,50,54,0,99,122,54,50,55,0,99,122,106,99,0,99,122,106,109,0,99,122,107,97,0,99,122,107,114,0,99,122,108,105,0,99,122,109,111,0,99,122,111,108,0,99,122,112,97,0,99,122,112,108,0,99,122,112,114,0,99,122,115,116,0,99,122,117,115,0,99,122,118,121,0,99,122,122,108,0,102,105,48,49,0,102,114,98,0,102,114,98,108,0,102,114,99,0,102,114,99,112,0,102,114,100,0,102,114,102,0,102,114,103,0,102,114,103,102,0,102,114,103,112,0,102,114,104,0,102,114,105,0,102,114,106,0,102,114,107,0,102,114,108,0,102,114,109,0,102,114,109,102,0,102,114,109,113,0,102,114,110,0,102,114,110,99,0,102,114,111,0,102,114,112,0,102,114,112,102,0,102,114,112,109,0,102,114,113,0,102,114,114,0,102,114,114,101,0,102,114,115,0,102,114,116,0,102,114,116,102,0,102,114,117,0,102,114,118,0,102,114,119,102,0,102,114,121,116,0,108,97,120,110,0,108,117,100,0,108,117,108,0,109,114,110,107,99,0,110,108,97,119,0,110,108,99,119,0,110,108,115,120,0,110,111,50,51,0,110,122,110,0,110,122,115,0,111,109,98,97,0,111,109,115,104,0,112,108,100,115,0,112,108,107,112,0,112,108,108,98,0,112,108,108,100,0,112,108,108,117,0,112,108,109,97,0,112,108,109,122,0,112,108,111,112,0,112,108,112,100,0,112,108,112,107,0,112,108,112,109,0,112,108,115,107,0,112,108,115,108,0,112,108,119,110,0,112,108,119,112,0,112,108,122,112,0,115,104,116,97,0,116,116,101,116,111,0,116,116,114,99,109,0,116,116,119,116,111,0,116,119,107,104,113,0,116,119,116,110,113,0,116,119,116,112,113,0,116,119,116,120,113,0,117,115,97,115,0,117,115,103,117,0,117,115,109,112,0,117,115,112,114,0,117,115,117,109,0,117,115,118,105,0,116,101,114,114,105,116,111,114,121,0,48,48,52,0,48,48,56,0,48,49,48,0,48,49,50,0,48,49,54,0,48,50,48,0,48,50,52,0,48,50,56,0,48,51,49,0,48,51,50,0,48,51,54,0,48,52,48,0,48,52,52,0,48,52,56,0,48,53,48,0,48,53,49,0,48,53,50,0,48,53,54,0,48,54,48,0,48,54,50,0,48,54,52,0,48,54,56,0,48,55,48,0,48,55,50,0,48,55,52,0,48,55,54,0,48,56,52,0,48,56,54,0,48,57,48,0,48,57,50,0,48,57,54,0,49,48,48,0,49,48,52,0,49,48,56,0,49,49,50,0,49,49,54,0,49,50,48,0,49,50,52,0,49,51,50,0,49,51,54,0,49,52,48,0,49,52,52,0,49,52,56,0,49,53,50,0,49,53,54,0,49,53,56,0,49,54,50,0,49,54,54,0,49,55,48,0,49,55,50,0,49,55,52,0,49,55,53,0,49,55,56,0,49,56,48,0,49,56,52,0,49,56,56,0,49,57,49,0,49,57,50,0,49,57,54,0,50,48,48,0,50,48,51,0,50,48,52,0,50,48,56,0,50,49,50,0,50,49,52,0,50,49,56,0,50,50,50,0,50,50,54,0,50,51,48,0,50,51,49,0,50,51,50,0,50,51,51,0,50,51,52,0,50,51,56,0,50,51,57,0,50,52,50,0,50,52,54,0,50,52,56,0,50,52,57,0,50,53,48,0,50,53,52,0,50,53,56,0,50,54,48,0,50,54,50,0,50,54,54,0,50,54,56,0,50,55,48,0,50,55,53,0,50,55,54,0,50,55,56,0,50,56,48,0,50,56,56,0,50,57,50,0,50,57,54,0,51,48,48,0,51,48,52,0,51,48,56,0,51,49,50,0,51,49,54,0,51,50,48,0,51,50,52,0,51,50,56,0,51,51,50,0,51,51,52,0,51,51,54,0,51,52,48,0,51,52,52,0,51,52,56,0,51,53,50,0,51,53,54,0,51,54,48,0,51,54,52,0,51,54,56,0,51,55,50,0,51,55,54,0,51,56,48,0,51,56,52,0,51,56,56,0,51,57,50,0,51,57,56,0,52,48,48,0,52,48,52,0,52,48,56,0,52,49,48,0,52,49,52,0,52,49,55,0,52,49,56,0,52,50,50,0,52,50,54,0,52,50,56,0,52,51,48,0,52,51,52,0,52,51,56,0,52,52,48,0,52,52,50,0,52,52,54,0,52,53,48,0,52,53,52,0,52,53,56,0,52,54,50,0,52,54,54,0,52,55,48,0,52,55,52,0,52,55,56,0,52,56,48,0,52,56,52,0,52,57,50,0,52,57,54,0,52,57,56,0,52,57,57,0,53,48,48,0,53,48,52,0,53,48,56,0,53,49,50,0,53,49,54,0,53,50,48,0,53,50,52,0,53,50,56,0,53,51,48,0,53,51,49,0,53,51,50,0,53,51,51,0,53,51,52,0,53,51,53,0,53,51,54,0,53,52,48,0,53,52,56,0,53,53,52,0,53,53,56,0,53,54,50,0,53,54,54,0,53,55,48,0,53,55,52,0,53,55,56,0,53,56,48,0,53,56,49,0,53,56,50,0,53,56,51,0,53,56,52,0,53,56,53,0,53,56,54,0,53,57,49,0,53,57,56,0,54,48,48,0,54,48,52,0,54,48,56,0,54,49,54,0,54,50,48,0,54,51,48,0,54,51,52,0,54,51,56,0,54,52,50,0,54,52,51,0,54,52,54,0,54,53,50,0,54,53,52,0,54,53,57,0,54,54,48,0,54,54,50,0,54,54,51,0,54,54,54,0,54,55,48,0,54,55,52,0,54,55,56,0,54,56,50,0,54,56,54,0,54,56,56,0,54,57,48,0,54,57,52,0,55,48,50,0,55,48,51,0,55,48,52,0,55,48,53,0,55,48,54,0,55,49,48,0,55,49,54,0,55,50,48,0,55,50,52,0,55,50,56,0,55,50,57,0,55,51,50,0,55,51,54,0,55,52,48,0,55,52,52,0,55,52,56,0,55,53,50,0,55,53,54,0,55,54,48,0,55,54,50,0,55,54,52,0,55,54,56,0,55,55,50,0,55,55,54,0,55,56,48,0,55,56,52,0,55,56,56,0,55,57,50,0,55,57,53,0,55,57,54,0,55,57,56,0,56,48,48,0,56,48,52,0,56,48,55,0,56,49,48,0,56,49,56,0,56,50,54,0,56,51,48,0,56,51,49,0,56,51,50,0,56,51,51,0,56,51,52,0,56,52,48,0,56,53,48,0,56,53,52,0,56,53,56,0,56,54,48,0,56,54,50,0,56,55,54,0,56,56,50,0,56,56,54,0,56,56,55,0,56,57,48,0,56,57,49,0,56,57,52,0,57,53,56,0,57,53,57,0,57,54,48,0,57,54,50,0,57,54,51,0,57,54,52,0,57,54,53,0,57,54,54,0,57,54,55,0,57,54,56,0,57,54,57,0,57,55,48,0,57,55,49,0,57,55,50,0,57,55,51,0,57,55,52,0,57,55,53,0,57,55,54,0,57,55,55,0,57,55,56,0,57,55,57,0,57,56,48,0,57,56,49,0,57,56,50,0,57,56,51,0,57,56,52,0,57,56,53,0,57,56,54,0,57,56,55,0,57,56,56,0,57,56,57,0,57,57,48,0,57,57,49,0,57,57,50,0,57,57,51,0,57,57,52,0,57,57,53,0,57,57,54,0,57,57,55,0,57,57,56,0,57,57,57,0,65,65,65,0,65,66,87,0,65,70,71,0,65,71,79,0,65,73,65,0,65,76,65,0,65,76,66,0,65,78,68,0,65,78,84,0,65,82,69,0,65,82,71,0,65,82,77,0,65,83,67,0,65,83,77,0,65,84,65,0,65,84,70,0,65,84,71,0,65,85,83,0,65,85,84,0,65,90,69,0,66,68,73,0,66,69,76,0,66,69,78,0,66,69,83,0,66,70,65,0,66,71,68,0,66,71,82,0,66,72,82,0,66,72,83,0,66,73,72,0,66,76,77,0,66,76,82,0,66,76,90,0,66,77,85,0,66,79,76,0,66,82,65,0,66,82,66,0,66,82,78,0,66,84,78,0,66,85,0,66,85,82,0,66,86,84,0,66,87,65,0,67,65,70,0,67,65,78,0,67,67,75,0,67,72,69,0,67,72,76,0,67,72,78,0,67,73,86,0,67,77,82,0,67,79,68,0,67,79,71,0,67,79,75,0,67,79,76,0,67,79,77,0,67,80,84,0,67,80,86,0,67,82,73,0,67,83,0,67,85,66,0,67,85,87,0,67,88,82,0,67,89,77,0,67,89,80,0,67,90,69,0,68,68,82,0,68,69,85,0,68,71,65,0,68,74,73,0,68,77,65,0,68,78,75,0,68,79,77,0,68,89,0,68,90,65,0,69,67,85,0,69,71,89,0,69,82,73,0,69,83,72,0,69,83,80,0,69,83,84,0,69,84,72,0,70,73,78,0,70,74,73,0,70,76,75,0,70,81,0,70,82,65,0,70,82,79,0,70,83,77,0,70,88,0,70,88,88,0,71,65,66,0,71,66,82,0,71,69,79,0,71,71,89,0,71,72,65,0,71,73,66,0,71,73,78,0,71,76,80,0,71,77,66,0,71,78,66,0,71,78,81,0,71,82,67,0,71,82,68,0,71,82,76,0,71,84,77,0,71,85,70,0,71,85,77,0,71,85,89,0,72,75,71,0,72,77,68,0,72,78,68,0,72,82,86,0,72,84,73,0,72,85,78,0,72,86,0,73,68,78,0,73,77,78,0,73,78,68,0,73,79,84,0,73,82,76,0,73,82,78,0,73,82,81,0,73,83,76,0,73,83,82,0,73,84,65,0,74,65,77,0,74,69,89,0,74,79,82,0,74,80,78,0,74,84,0,75,65,90,0,75,69,78,0,75,71,90,0,75,72,77,0,75,73,82,0,75,78,65,0,75,79,82,0,75,87,84,0,76,65,79,0,76,66,78,0,76,66,82,0,76,66,89,0,76,67,65,0,76,73,69,0,76,75,65,0,76,83,79,0,76,84,85,0,76,85,88,0,76,86,65,0,77,65,67,0,77,65,70,0,77,65,82,0,77,67,79,0,77,68,65,0,77,68,71,0,77,68,86,0,77,69,88,0,77,72,76,0,77,75,68,0,77,76,73,0,77,76,84,0,77,77,82,0,77,78,69,0,77,78,71,0,77,78,80,0,77,79,90,0,77,82,84,0,77,83,82,0,77,84,81,0,77,85,83,0,77,87,73,0,77,89,83,0,77,89,84,0,78,65,77,0,78,67,76,0,78,69,82,0,78,70,75,0,78,71,65,0,78,72,0,78,73,67,0,78,73,85,0,78,76,68,0,78,79,82,0,78,80,76,0,78,82,85,0,78,84,90,0,78,90,76,0,79,77,78,0,80,65,75,0,80,65,78,0,80,67,0,80,67,78,0,80,69,82,0,80,72,76,0,80,76,87,0,80,78,71,0,80,79,76,0,80,82,73,0,80,82,75,0,80,82,84,0,80,82,89,0,80,83,69,0,80,85,0,80,89,70,0,80,90,0,81,65,84,0,81,77,77,0,81,78,78,0,81,80,80,0,81,81,81,0,81,82,82,0,81,83,83,0,81,84,84,0,81,85,0,81,85,85,0,81,86,86,0,81,87,87,0,81,88,88,0,81,89,89,0,81,90,90,0,82,69,85,0,82,72,0,82,79,85,0,82,85,83,0,82,87,65,0,83,65,85,0,83,67,71,0,83,68,78,0,83,69,78,0,83,71,80,0,83,71,83,0,83,72,78,0,83,74,77,0,83,76,66,0,83,76,69,0,83,76,86,0,83,77,82,0,83,79,77,0,83,80,77,0,83,82,66,0,83,83,68,0,83,84,80,0,83,85,0,83,85,78,0,83,85,82,0,83,86,75,0,83,86,78,0,83,87,69,0,83,87,90,0,83,88,77,0,83,89,67,0,83,89,82,0,84,65,65,0,84,67,65,0,84,67,68,0,84,71,79,0,84,72,65,0,84,74,75,0,84,75,76,0,84,75,77,0,84,76,83,0,84,77,80,0,84,79,78,0,84,84,79,0,84,85,78,0,84,85,82,0,84,85,86,0,84,87,78,0,84,90,65,0,85,71,65,0,85,75,0,85,75,82,0,85,77,73,0,85,82,89,0,85,83,65,0,85,90,66,0,86,65,84,0,86,67,84,0,86,68,0,86,69,78,0,86,71,66,0,86,73,82,0,86,78,77,0,86,85,84,0,87,75,0,87,76,70,0,87,83,77,0,88,65,65,0,88,66,66,0,88,67,67,0,88,68,68,0,88,69,69,0,88,70,70,0,88,71,71,0,88,72,72,0,88,73,73,0,88,74,74,0,88,75,75,0,88,76,76,0,88,77,77,0,88,78,78,0,88,79,79,0,88,80,80,0,88,81,81,0,88,82,82,0,88,83,83,0,88,84,84,0,88,85,85,0,88,86,86,0,88,87,87,0,88,88,88,0,88,89,89,0,88,90,90,0,89,68,0,89,69,77,0,89,77,68,0,89,85,0,89,85,71,0,90,65,70,0,90,65,82,0,90,77,66,0,90,82,0,90,87,69,0,90,90,90,0,117,110,105,116,0,105,110,99,104,45,104,103,0,108,105,116,101,114,45,112,101,114,45,49,48,48,107,105,108,111,109,101,116,101,114,115,0,109,101,116,101,114,45,112,101,114,45,115,101,99,111,110,100,45,115,113,117,97,114,101,100,0,109,101,116,114,105,99,45,116,111,110,0,109,105,108,108,105,103,114,97,109,45,112,101,114,45,100,101,99,105,108,105,116,101,114,0,109,105,108,108,105,109,101,116,101,114,45,111,102,45,109,101,114,99,117,114,121,0,112,97,114,116,45,112,101,114,45,109,105,108,108,105,111,110,0,112,111,117,110,100,45,102,111,111,116,0,112,111,117,110,100,45,112,101,114,45,115,113,117,97,114,101,45,105,110,99,104,0,117,115,97,103,101,0,109,117,115,105,99,45,116,114,97,99,107,0,116,118,45,112,114,111,103,114,97,109,0,118,97,114,105,97,110,116,0,112,111,108,121,116,111,110,105,0,100,101,102,97,117,108,116,67,111,110,116,101,110,116,0,170,170,0,0,85,0,77,0,0,0,89,0,69,0,0,0,122,0,104,0,0,0,84,0,76,0,0,0,110,0,98,0,0,0,65,0,81,0,0,0,65,0,83,0,0,0,65,0,87,0,0,0,66,0,70,0,0,0,66,0,74,0,0,0,66,0,76,0,0,0,67,0,87,0,0,0,69,0,85,0,0,0,71,0,70,0,0,0,71,0,80,0,0,0,71,0,85,0,0,0,75,0,73,0,0,0,77,0,70,0,0,0,77,0,79,0,0,0,77,0,80,0,0,0,77,0,81,0,0,0,78,0,67,0,0,0,80,0,65,0,0,0,80,0,70,0,0,0,80,0,77,0,0,0,80,0,82,0,0,0,82,0,69,0,0,0,83,0,68,0,0,0,83,0,88,0,0,0,86,0,73,0,0,0,86,0,85,0,0,0,87,0,70,0,0,0,89,0,84,0,0,0,102,0,97,0,0,0,109,0,115,0,0,0,115,0,113,0,0,0,121,0,105,0,0,0,65,0,65,0,0,0,65,0,68,0,0,0,65,0,69,0,0,0,65,0,71,0,0,0,65,0,73,0,0,0,65,0,79,0,0,0,65,0,82,0,0,0,65,0,84,0,0,0,66,0,66,0,0,0,66,0,72,0,0,0,66,0,77,0,0,0,66,0,78,0,0,0,66,0,79,0,0,0,66,0,83,0,0,0,66,0,86,0,0,0,66,0,87,0,0,0,66,0,90,0,0,0,67,0,67,0,0,0,67,0,71,0,0,0,67,0,73,0,0,0,67,0,75,0,0,0,67,0,79,0,0,0,67,0,80,0,0,0,67,0,82,0,0,0,67,0,85,0,0,0,67,0,88,0,0,0,67,0,89,0,0,0,68,0,74,0,0,0,68,0,77,0,0,0,68,0,79,0,0,0,69,0,67,0,0,0,69,0,71,0,0,0,69,0,72,0,0,0,70,0,74,0,0,0,70,0,75,0,0,0,70,0,77,0,0,0,71,0,65,0,0,0,71,0,68,0,0,0,71,0,73,0,0,0,71,0,77,0,0,0,71,0,81,0,0,0,71,0,83,0,0,0,71,0,87,0,0,0,71,0,89,0,0,0,72,0,77,0,0,0,72,0,78,0,0,0,72,0,84,0,0,0,73,0,79,0,0,0,74,0,69,0,0,0,74,0,77,0,0,0,74,0,79,0,0,0,75,0,77,0,0,0,75,0,78,0,0,0,75,0,80,0,0,0,75,0,87,0,0,0,75,0,89,0,0,0,76,0,66,0,0,0,76,0,67,0,0,0,76,0,73,0,0,0,76,0,83,0,0,0,76,0,89,0,0,0,77,0,67,0,0,0,77,0,68,0,0,0,77,0,72,0,0,0,77,0,82,0,0,0,77,0,83,0,0,0,77,0,88,0,0,0,78,0,70,0,0,0,78,0,73,0,0,0,78,0,82,0,0,0,78,0,85,0,0,0,79,0,77,0,0,0,80,0,78,0,0,0,80,0,83,0,0,0,80,0,84,0,0,0,81,0,65,0,0,0,81,0,77,0,0,0,81,0,78,0,0,0,81,0,80,0,0,0,81,0,81,0,0,0,81,0,82,0,0,0,81,0,83,0,0,0,81,0,84,0,0,0,81,0,86,0,0,0,81,0,87,0,0,0,81,0,88,0,0,0,81,0,89,0,0,0,81,0,90,0,0,0,83,0,65,0,0,0,83,0,67,0,0,0,83,0,71,0,0,0,83,0,72,0,0,0,83,0,74,0,0,0,83,0,76,0,0,0,83,0,77,0,0,0,83,0,82,0,0,0,83,0,84,0,0,0,83,0,86,0,0,0,83,0,89,0,0,0,83,0,90,0,0,0,84,0,65,0,0,0,84,0,67,0,0,0,84,0,68,0,0,0,84,0,75,0,0,0,84,0,78,0,0,0,84,0,84,0,0,0,84,0,86,0,0,0,85,0,89,0,0,0,86,0,67,0,0,0,86,0,69,0,0,0,86,0,71,0,0,0,87,0,83,0,0,0,88,0,65,0,0,0,88,0,66,0,0,0,88,0,67,0,0,0,88,0,68,0,0,0,88,0,69,0,0,0,88,0,70,0,0,0,88,0,71,0,0,0,88,0,72,0,0,0,88,0,73,0,0,0,88,0,74,0,0,0,88,0,75,0,0,0,88,0,76,0,0,0,88,0,77,0,0,0,88,0,78,0,0,0,88,0,79,0,0,0,88,0,80,0,0,0,88,0,81,0,0,0,88,0,82,0,0,0,88,0,83,0,0,0,88,0,84,0,0,0,88,0,85,0,0,0,88,0,86,0,0,0,88,0,87,0,0,0,88,0,88,0,0,0,88,0,89,0,0,0,88,0,90,0,0,0,90,0,90,0,0,0,97,0,114,0,0,0,97,0,122,0,0,0,99,0,114,0,0,0,100,0,101,0,0,0,101,0,116,0,0,0,101,0,117,0,0,0,102,0,102,0,0,0,102,0,114,0,0,0,103,0,110,0,0,0,104,0,121,0,0,0,105,0,100,0,0,0,105,0,115,0,0,0,105,0,117,0,0,0,106,0,118,0,0,0,107,0,97,0,0,0,107,0,103,0,0,0,107,0,114,0,0,0,107,0,117,0,0,0,107,0,118,0,0,0,108,0,98,0,0,0,108,0,118,0,0,0,109,0,103,0,0,0,109,0,107,0,0,0,109,0,121,0,0,0,110,0,118,0,0,0,111,0,106,0,0,0,112,0,115,0,0,0,113,0,117,0,0,0,115,0,119,0,0,0,65,0,67,0,0,0,68,0,71,0,0,0,97,0,97,0,0,0,97,0,101,0,0,0,97,0,102,0,0,0,97,0,118,0,0,0,98,0,101,0,0,0,98,0,103,0,0,0,98,0,105,0,0,0,98,0,109,0,0,0,98,0,110,0,0,0,99,0,97,0,0,0,99,0,101,0,0,0,99,0,111,0,0,0,99,0,117,0,0,0,100,0,97,0,0,0,100,0,118,0,0,0,101,0,101,0,0,0,102,0,111,0,0,0,103,0,97,0,0,0,103,0,117,0,0,0,104,0,116,0,0,0,104,0,117,0,0,0,104,0,122,0,0,0,105,0,101,0,0,0,105,0,103,0,0,0,105,0,111,0,0,0,105,0,116,0,0,0,106,0,97,0,0,0,107,0,106,0,0,0,107,0,107,0,0,0,107,0,108,0,0,0,107,0,110,0,0,0,107,0,115,0,0,0,107,0,119,0,0,0,107,0,121,0,0,0,108,0,103,0,0,0,108,0,105,0,0,0,108,0,111,0,0,0,108,0,117,0,0,0,109,0,116,0,0,0,110,0,97,0,0,0,110,0,111,0,0,0,110,0,114,0,0,0,111,0,99,0,0,0,111,0,115,0,0,0,112,0,105,0,0,0,112,0,108,0,0,0,112,0,116,0,0,0,114,0,110,0,0,0,114,0,119,0,0,0,115,0,97,0,0,0,115,0,109,0,0,0,115,0,111,0,0,0,115,0,116,0,0,0,115,0,118,0,0,0,116,0,97,0,0,0,116,0,101,0,0,0,116,0,105,0,0,0,116,0,107,0,0,0,116,0,111,0,0,0,116,0,114,0,0,0,116,0,115,0,0,0,116,0,116,0,0,0,116,0,121,0,0,0,117,0,107,0,0,0,117,0,114,0,0,0,118,0,101,0,0,0,118,0,105,0,0,0,119,0,97,0,0,0,120,0,104,0,0,0,121,0,111,0,0,0,122,0,117,0,0,0,117,0,110,0,100,0,0,0,100,0,116,0,112,0,0,0,107,0,97,0,107,0,0,0,119,0,114,0,111,0,0,0,97,0,109,0,105,0,0,0,119,0,110,0,110,0,0,0,111,0,121,0,98,0,0,0,118,0,97,0,106,0,0,0,98,0,104,0,111,0,0,0,105,0,98,0,97,0,0,0,114,0,107,0,105,0,0,0,98,0,105,0,107,0,0,0,100,0,101,0,108,0,0,0,100,0,117,0,122,0,0,0,101,0,110,0,108,0,0,0,105,0,115,0,107,0,0,0,106,0,98,0,111,0,0,0,107,0,100,0,122,0,0,0,110,0,99,0,115,0,0,0,112,0,104,0,114,0,0,0,112,0,115,0,114,0,0,0,116,0,97,0,121,0,0,0,122,0,111,0,109,0,0,0,122,0,122,0,97,0,0,0,100,0,109,0,119,0,0,0,102,0,105,0,108,0,0,0,104,0,97,0,107,0,0,0,107,0,122,0,107,0,0,0,109,0,97,0,110,0,0,0,109,0,114,0,121,0,0,0,112,0,105,0,106,0,0,0,98,0,102,0,105,0,0,0,98,0,102,0,121,0,0,0,99,0,109,0,114,0,0,0,100,0,101,0,110,0,0,0,100,0,103,0,108,0,0,0,105,0,115,0,101,0,0,0,105,0,115,0,103,0,0,0,106,0,107,0,109,0,0,0,106,0,115,0,108,0,0,0,107,0,109,0,108,0,0,0,110,0,97,0,110,0,0,0,110,0,98,0,114,0,0,0,110,0,103,0,118,0,0,0,110,0,115,0,105,0,0,0,110,0,118,0,111,0,0,0,110,0,119,0,111,0,0,0,111,0,108,0,97,0,0,0,111,0,112,0,97,0,0,0,114,0,97,0,115,0,0,0,115,0,99,0,118,0,0,0,115,0,103,0,100,0,0,0,116,0,109,0,104,0,0,0,116,0,115,0,117,0,0,0,117,0,116,0,104,0,0,0,119,0,101,0,111,0,0,0,120,0,99,0,104,0,0,0,120,0,110,0,121,0,0,0,120,0,116,0,103,0,0,0,121,0,97,0,109,0,0,0,121,0,114,0,109,0,0,0,121,0,117,0,103,0,0,0,97,0,97,0,115,0,0,0,97,0,99,0,110,0,0,0,97,0,100,0,120,0,0,0,97,0,101,0,98,0,0,0,97,0,109,0,113,0,0,0,97,0,111,0,103,0,0,0,97,0,111,0,117,0,0,0,97,0,112,0,102,0,0,0,97,0,113,0,100,0,0,0,97,0,113,0,116,0,0,0,97,0,115,0,101,0,0,0,97,0,122,0,100,0,0,0,98,0,97,0,108,0,0,0,98,0,99,0,103,0,0,0,98,0,101,0,98,0,0,0,98,0,105,0,114,0,0,0,98,0,106,0,112,0,0,0,98,0,109,0,102,0,0,0,98,0,110,0,99,0,0,0,98,0,110,0,110,0,0,0,98,0,112,0,112,0,0,0,98,0,117,0,97,0,0,0,98,0,122,0,99,0,0,0,98,0,122,0,115,0,0,0,99,0,97,0,120,0,0,0,99,0,104,0,109,0,0,0,99,0,105,0,114,0,0,0,99,0,115,0,110,0,0,0,100,0,98,0,116,0,0,0,100,0,101,0,118,0,0,0,100,0,105,0,102,0,0,0,100,0,105,0,110,0,0,0,100,0,110,0,106,0,0,0,100,0,111,0,105,0,0,0,100,0,114,0,108,0,0,0,100,0,115,0,101,0,0,0,100,0,115,0,108,0,0,0,100,0,116,0,100,0,0,0,100,0,119,0,117,0,0,0,100,0,122,0,101,0,0,0,101,0,98,0,107,0,0,0,101,0,107,0,99,0,0,0,101,0,109,0,97,0,0,0,101,0,109,0,120,0,0,0,101,0,115,0,103,0,0,0,101,0,122,0,97,0,0,0,102,0,98,0,108,0,0,0,102,0,115,0,108,0,0,0,103,0,97,0,108,0,0,0,103,0,97,0,110,0,0,0,103,0,98,0,97,0,0,0,103,0,100,0,106,0,0,0,103,0,111,0,110,0,0,0,103,0,114,0,98,0,0,0,103,0,115,0,103,0,0,0,103,0,115,0,115,0,0,0,103,0,116,0,117,0,0,0,103,0,118,0,114,0,0,0,104,0,97,0,105,0,0,0,104,0,108,0,101,0,0,0,104,0,109,0,110,0,0,0,104,0,115,0,110,0,0,0,104,0,117,0,119,0,0,0,104,0,121,0,119,0,0,0,105,0,108,0,109,0,0,0,105,0,116,0,100,0,0,0,106,0,97,0,108,0,0,0,106,0,98,0,107,0,0,0,106,0,103,0,107,0,0,0,106,0,114,0,98,0,0,0,107,0,108,0,110,0,0,0,107,0,109,0,98,0,0,0,107,0,111,0,107,0,0,0,107,0,112,0,101,0,0,0,107,0,114,0,117,0,0,0,107,0,115,0,112,0,0,0,107,0,116,0,122,0,0,0,107,0,119,0,118,0,0,0,107,0,120,0,114,0,0,0,108,0,97,0,104,0,0,0,108,0,99,0,113,0,0,0,108,0,114,0,114,0,0,0,108,0,117,0,121,0,0,0,109,0,102,0,115,0,0,0,109,0,111,0,109,0,0,0,109,0,116,0,109,0,0,0,109,0,119,0,114,0,0,0,110,0,103,0,116,0,0,0,110,0,106,0,122,0,0,0,110,0,111,0,108,0,0,0,110,0,114,0,107,0,0,0,110,0,114,0,117,0,0,0,110,0,117,0,110,0,0,0,110,0,121,0,99,0,0,0,112,0,114,0,116,0,0,0,112,0,117,0,98,0,0,0,112,0,119,0,110,0,0,0,113,0,117,0,104,0,0,0,114,0,97,0,106,0,0,0,114,0,97,0,113,0,0,0,114,0,109,0,120,0,0,0,114,0,111,0,109,0,0,0,115,0,102,0,98,0,0,0,115,0,102,0,115,0,0,0,115,0,103,0,103,0,0,0,115,0,110,0,122,0,0,0,115,0,114,0,120,0,0,0,115,0,115,0,112,0,0,0,115,0,115,0,121,0,0,0,115,0,117,0,106,0,0,0,115,0,119,0,108,0,0,0,115,0,121,0,114,0,0,0,116,0,97,0,106,0,0,0,116,0,97,0,111,0,0,0,116,0,100,0,102,0,0,0,116,0,108,0,104,0,0,0,116,0,112,0,111,0,0,0,116,0,118,0,100,0,0,0,116,0,119,0,109,0,0,0,116,0,121,0,106,0,0,0,117,0,108,0,119,0,0,0,118,0,103,0,116,0,0,0,119,0,97,0,119,0,0,0,119,0,103,0,98,0,0,0,119,0,110,0,121,0,0,0,119,0,117,0,117,0,0,0,120,0,110,0,116,0,0,0,121,0,110,0,113,0,0,0,121,0,117,0,101,0,0,0,122,0,97,0,112,0,0,0,122,0,107,0,100,0,0,0,99,0,110,0,109,0,110,0,0,0,99,0,110,0,104,0,101,0,0,0,99,0,110,0,115,0,99,0,0,0,99,0,110,0,99,0,113,0,0,0,99,0,110,0,102,0,106,0,0,0,99,0,110,0,104,0,97,0,0,0,99,0,110,0,104,0,105,0,0,0,99,0,110,0,108,0,110,0,0,0,99,0,110,0,115,0,100,0,0,0,99,0,110,0,115,0,110,0,0,0,90,0,105,0,110,0,104,0,0,0,99,0,110,0,97,0,104,0,0,0,99,0,110,0,98,0,106,0,0,0,99,0,110,0,103,0,100,0,0,0,99,0,110,0,103,0,115,0,0,0,99,0,110,0,103,0,120,0,0,0,99,0,110,0,103,0,122,0,0,0,99,0,110,0,104,0,98,0,0,0,99,0,110,0,104,0,108,0,0,0,99,0,110,0,104,0,110,0,0,0,99,0,110,0,106,0,108,0,0,0,99,0,110,0,106,0,115,0,0,0,99,0,110,0,106,0,120,0,0,0,99,0,110,0,110,0,120,0,0,0,99,0,110,0,113,0,104,0,0,0,99,0,110,0,115,0,104,0,0,0,99,0,110,0,115,0,120,0,0,0,99,0,110,0,116,0,106,0,0,0,99,0,110,0,120,0,106,0,0,0,99,0,110,0,120,0,122,0,0,0,99,0,110,0,121,0,110,0,0,0,99,0,110,0,122,0,106,0,0,0,99,0,122,0,49,0,48,0,0,0,99,0,122,0,50,0,48,0,0,0,99,0,122,0,51,0,49,0,0,0,99,0,122,0,51,0,50,0,0,0,99,0,122,0,52,0,49,0,0,0,99,0,122,0,52,0,50,0,0,0,99,0,122,0,53,0,49,0,0,0,99,0,122,0,53,0,50,0,0,0,99,0,122,0,53,0,51,0,0,0,99,0,122,0,54,0,51,0,0,0,99,0,122,0,54,0,52,0,0,0,99,0,122,0,55,0,49,0,0,0,99,0,122,0,55,0,50,0,0,0,99,0,122,0,56,0,48,0,0,0,108,0,97,0,120,0,115,0,0,0,110,0,111,0,53,0,48,0,0,0,112,0,108,0,48,0,50,0,0,0,112,0,108,0,48,0,52,0,0,0,112,0,108,0,48,0,54,0,0,0,112,0,108,0,48,0,56,0,0,0,112,0,108,0,49,0,48,0,0,0,112,0,108,0,49,0,50,0,0,0,112,0,108,0,49,0,52,0,0,0,112,0,108,0,49,0,54,0,0,0,112,0,108,0,49,0,56,0,0,0,112,0,108,0,50,0,48,0,0,0,112,0,108,0,50,0,50,0,0,0,112,0,108,0,50,0,52,0,0,0,112,0,108,0,50,0,54,0,0,0,112,0,108,0,50,0,56,0,0,0,112,0,108,0,51,0,48,0,0,0,112,0,108,0,51,0,50,0,0,0,82,0,83,0,32,0,77,0,69,0,0,0,102,0,114,0,95,0,70,0,82,0,0,0,102,0,114,0,103,0,101,0,115,0,0,0,83,0,65,0,32,0,73,0,81,0,0,0,102,0,97,0,95,0,65,0,70,0,0,0,102,0,114,0,110,0,97,0,113,0,0,0,102,0,114,0,110,0,111,0,114,0,0,0,109,0,121,0,95,0,77,0,77,0,0,0,115,0,119,0,95,0,67,0,68,0,0,0,65,0,81,0,32,0,84,0,70,0,0,0,99,0,121,0,95,0,71,0,66,0,0,0,109,0,101,0,100,0,105,0,97,0,0,0,115,0,110,0,95,0,90,0,87,0,0,0,74,0,69,0,32,0,71,0,71,0,0,0,97,0,107,0,95,0,71,0,72,0,0,0,98,0,101,0,95,0,66,0,89,0,0,0,98,0,103,0,95,0,66,0,71,0,0,0,99,0,115,0,95,0,67,0,90,0,0,0,100,0,97,0,95,0,68,0,75,0,0,0,100,0,118,0,95,0,77,0,86,0,0,0,100,0,122,0,95,0,66,0,84,0,0,0,101,0,108,0,95,0,71,0,82,0,0,0,101,0,116,0,95,0,69,0,69,0,0,0,101,0,117,0,95,0,69,0,83,0,0,0,102,0,111,0,95,0,70,0,79,0,0,0,102,0,114,0,97,0,114,0,97,0,0,0,102,0,114,0,98,0,102,0,99,0,0,0,102,0,114,0,104,0,100,0,102,0,0,0,102,0,114,0,111,0,99,0,99,0,0,0,102,0,121,0,95,0,78,0,76,0,0,0,103,0,97,0,95,0,73,0,69,0,0,0,103,0,110,0,95,0,80,0,89,0,0,0,103,0,118,0,95,0,73,0,77,0,0,0,104,0,101,0,95,0,73,0,76,0,0,0,104,0,114,0,95,0,72,0,82,0,0,0,104,0,117,0,95,0,72,0,85,0,0,0,104,0,121,0,95,0,65,0,77,0,0,0,105,0,115,0,95,0,73,0,83,0,0,0,105,0,116,0,95,0,73,0,84,0,0,0,105,0,117,0,95,0,67,0,65,0,0,0,106,0,97,0,95,0,74,0,80,0,0,0,106,0,118,0,95,0,73,0,68,0,0,0,107,0,107,0,95,0,75,0,90,0,0,0,107,0,108,0,95,0,71,0,76,0,0,0,107,0,109,0,95,0,75,0,72,0,0,0,107,0,111,0,95,0,75,0,82,0,0,0,107,0,117,0,95,0,84,0,82,0,0,0,107,0,121,0,95,0,75,0,71,0,0,0,108,0,97,0,95,0,86,0,65,0,0,0,108,0,98,0,95,0,76,0,85,0,0,0,108,0,111,0,95,0,76,0,65,0,0,0,108,0,116,0,95,0,76,0,84,0,0,0,108,0,118,0,95,0,76,0,86,0,0,0,109,0,103,0,95,0,77,0,71,0,0,0,109,0,105,0,95,0,78,0,90,0,0,0,109,0,107,0,95,0,77,0,75,0,0,0,109,0,110,0,95,0,77,0,78,0,0,0,109,0,115,0,95,0,77,0,89,0,0,0,109,0,116,0,95,0,77,0,84,0,0,0,110,0,101,0,95,0,78,0,80,0,0,0,110,0,110,0,95,0,78,0,79,0,0,0,110,0,121,0,95,0,77,0,87,0,0,0,111,0,115,0,95,0,71,0,69,0,0,0,112,0,115,0,95,0,65,0,70,0,0,0,112,0,116,0,95,0,66,0,82,0,0,0,113,0,117,0,95,0,80,0,69,0,0,0,114,0,110,0,95,0,66,0,73,0,0,0,114,0,111,0,95,0,82,0,79,0,0,0,114,0,119,0,95,0,82,0,87,0,0,0,115,0,103,0,95,0,67,0,70,0,0,0,115,0,105,0,95,0,76,0,75,0,0,0,115,0,107,0,95,0,83,0,75,0,0,0,115,0,108,0,95,0,83,0,73,0,0,0,115,0,111,0,95,0,83,0,79,0,0,0,115,0,113,0,95,0,65,0,76,0,0,0,115,0,114,0,95,0,77,0,69,0,0,0,115,0,118,0,95,0,83,0,69,0,0,0,116,0,103,0,95,0,84,0,74,0,0,0,116,0,104,0,95,0,84,0,72,0,0,0,116,0,107,0,95,0,84,0,77,0,0,0,116,0,111,0,95,0,84,0,79,0,0,0,116,0,111,0,110,0,110,0,101,0,0,0,116,0,116,0,116,0,111,0,98,0,0,0,117,0,107,0,95,0,85,0,65,0,0,0,119,0,97,0,95,0,66,0,69,0,0,0,121,0,111,0,95,0,78,0,71,0,0,0,122,0,117,0,95,0,90,0,65,0,0,0,67,0,90,0,32,0,83,0,75,0,0,0,97,0,97,0,95,0,69,0,84,0,0,0,97,0,98,0,95,0,71,0,69,0,0,0,97,0,102,0,95,0,90,0,65,0,0,0,97,0,109,0,95,0,69,0,84,0,0,0,97,0,110,0,95,0,69,0,83,0,0,0,97,0,115,0,95,0,73,0,78,0,0,0,98,0,97,0,95,0,82,0,85,0,0,0,98,0,109,0,95,0,77,0,76,0,0,0,98,0,110,0,95,0,66,0,68,0,0,0,98,0,111,0,95,0,67,0,78,0,0,0,98,0,114,0,95,0,70,0,82,0,0,0,99,0,97,0,95,0,69,0,83,0,0,0,99,0,101,0,95,0,82,0,85,0,0,0,99,0,111,0,95,0,70,0,82,0,0,0,99,0,117,0,95,0,82,0,85,0,0,0,99,0,118,0,95,0,82,0,85,0,0,0,99,0,122,0,49,0,49,0,48,0,0,0,99,0,122,0,49,0,49,0,49,0,0,0,99,0,122,0,49,0,49,0,50,0,0,0,99,0,122,0,49,0,49,0,51,0,0,0,99,0,122,0,49,0,49,0,52,0,0,0,99,0,122,0,49,0,49,0,53,0,0,0,99,0,122,0,54,0,51,0,50,0,0,0,99,0,122,0,54,0,51,0,51,0,0,0,99,0,122,0,54,0,51,0,52,0,0,0,99,0,122,0,54,0,51,0,53,0,0,0,99,0,122,0,54,0,52,0,49,0,0,0,99,0,122,0,54,0,52,0,50,0,0,0,99,0,122,0,54,0,52,0,51,0,0,0,99,0,122,0,54,0,52,0,52,0,0,0,99,0,122,0,54,0,52,0,54,0,0,0,99,0,122,0,54,0,52,0,55,0,0,0,99,0,122,0,54,0,54,0,51,0,0,0,100,0,101,0,95,0,68,0,69,0,0,0,101,0,101,0,95,0,71,0,72,0,0,0,101,0,110,0,95,0,85,0,83,0,0,0,101,0,115,0,95,0,69,0,83,0,0,0,102,0,97,0,95,0,73,0,82,0,0,0,102,0,105,0,95,0,70,0,73,0,0,0,102,0,114,0,98,0,114,0,101,0,0,0,102,0,114,0,99,0,111,0,114,0,0,0,102,0,114,0,99,0,118,0,108,0,0,0,102,0,114,0,105,0,100,0,102,0,0,0,102,0,114,0,112,0,97,0,99,0,0,0,102,0,114,0,112,0,100,0,108,0,0,0,103,0,100,0,95,0,71,0,66,0,0,0,103,0,108,0,95,0,69,0,83,0,0,0,103,0,117,0,95,0,73,0,78,0,0,0,104,0,97,0,95,0,78,0,71,0,0,0,104,0,105,0,95,0,73,0,78,0,0,0,105,0,100,0,95,0,73,0,68,0,0,0,105,0,103,0,95,0,78,0,71,0,0,0,105,0,105,0,95,0,67,0,78,0,0,0,107,0,97,0,95,0,71,0,69,0,0,0,107,0,105,0,95,0,75,0,69,0,0,0,107,0,110,0,95,0,73,0,78,0,0,0,107,0,119,0,95,0,71,0,66,0,0,0,108,0,103,0,95,0,85,0,71,0,0,0,108,0,110,0,95,0,67,0,68,0,0,0,108,0,117,0,95,0,67,0,68,0,0,0,109,0,108,0,95,0,73,0,78,0,0,0,109,0,114,0,95,0,73,0,78,0,0,0,110,0,98,0,95,0,78,0,79,0,0,0,110,0,100,0,95,0,90,0,87,0,0,0,110,0,108,0,95,0,78,0,76,0,0,0,110,0,114,0,95,0,90,0,65,0,0,0,110,0,118,0,95,0,85,0,83,0,0,0,111,0,99,0,95,0,70,0,82,0,0,0,111,0,109,0,95,0,69,0,84,0,0,0,111,0,114,0,95,0,73,0,78,0,0,0,112,0,108,0,95,0,80,0,76,0,0,0,114,0,109,0,95,0,67,0,72,0,0,0,114,0,117,0,95,0,82,0,85,0,0,0,115,0,97,0,95,0,73,0,78,0,0,0,115,0,99,0,95,0,73,0,84,0,0,0,115,0,101,0,95,0,78,0,79,0,0,0,115,0,115,0,95,0,90,0,65,0,0,0,115,0,116,0,95,0,90,0,65,0,0,0,115,0,119,0,95,0,84,0,90,0,0,0,116,0,97,0,95,0,73,0,78,0,0,0,116,0,101,0,95,0,73,0,78,0,0,0,116,0,105,0,95,0,69,0,84,0,0,0,116,0,110,0,95,0,90,0,65,0,0,0,116,0,114,0,95,0,84,0,82,0,0,0,116,0,115,0,95,0,90,0,65,0,0,0,116,0,116,0,95,0,82,0,85,0,0,0,116,0,116,0,109,0,114,0,99,0,0,0,116,0,119,0,107,0,104,0,104,0,0,0,116,0,119,0,110,0,119,0,116,0,0,0,116,0,119,0,116,0,110,0,110,0,0,0,116,0,119,0,116,0,120,0,103,0,0,0,117,0,103,0,95,0,67,0,78,0,0,0,117,0,114,0,95,0,80,0,75,0,0,0,118,0,101,0,95,0,90,0,65,0,0,0,118,0,105,0,95,0,86,0,78,0,0,0,119,0,111,0,95,0,83,0,78,0,0,0,120,0,104,0,95,0,90,0,65,0,0,0,108,0,101,0,103,0,97,0,99,0,121,0,0,0,110,0,100,0,115,0,95,0,68,0,69,0,0,0,98,0,108,0,116,0,95,0,86,0,78,0,0,0,103,0,101,0,122,0,95,0,69,0,84,0,0,0,116,0,114,0,118,0,95,0,84,0,87,0,0,0,117,0,110,0,100,0,95,0,65,0,88,0,0,0,97,0,114,0,110,0,95,0,67,0,76,0,0,0,98,0,101,0,109,0,95,0,90,0,77,0,0,0,98,0,101,0,122,0,95,0,84,0,90,0,0,0,98,0,114,0,120,0,95,0,73,0,78,0,0,0,99,0,99,0,112,0,95,0,66,0,68,0,0,0,100,0,121,0,111,0,95,0,83,0,78,0,0,0,102,0,105,0,108,0,95,0,80,0,72,0,0,0,103,0,115,0,119,0,95,0,67,0,72,0,0,0,103,0,117,0,122,0,95,0,75,0,69,0,0,0,104,0,97,0,119,0,95,0,85,0,83,0,0,0,105,0,102,0,101,0,95,0,84,0,71,0,0,0,107,0,97,0,98,0,95,0,68,0,90,0,0,0,107,0,101,0,97,0,95,0,67,0,86,0,0,0,109,0,102,0,101,0,95,0,77,0,85,0,0,0,109,0,103,0,104,0,95,0,77,0,90,0,0,0,109,0,121,0,118,0,95,0,82,0,85,0,0,0,109,0,122,0,110,0,95,0,73,0,82,0,0,0,110,0,97,0,113,0,95,0,78,0,65,0,0,0,110,0,113,0,111,0,95,0,71,0,78,0,0,0,110,0,117,0,115,0,95,0,83,0,83,0,0,0,112,0,105,0,115,0,95,0,83,0,66,0,0,0,113,0,117,0,99,0,95,0,71,0,84,0,0,0,115,0,101,0,115,0,95,0,77,0,76,0,0,0,115,0,109,0,115,0,95,0,70,0,73,0,0,0,115,0,115,0,121,0,95,0,69,0,82,0,0,0,115,0,121,0,114,0,95,0,73,0,81,0,0,0,115,0,122,0,108,0,95,0,80,0,76,0,0,0,116,0,101,0,111,0,95,0,85,0,71,0,0,0,116,0,112,0,105,0,95,0,80,0,71,0,0,0,116,0,114,0,119,0,95,0,80,0,75,0,0,0,116,0,119,0,113,0,95,0,78,0,69,0,0,0,119,0,98,0,112,0,95,0,65,0,85,0,0,0,121,0,97,0,118,0,95,0,67,0,77,0,0,0,97,0,103,0,113,0,95,0,67,0,77,0,0,0,97,0,110,0,110,0,95,0,78,0,71,0,0,0,97,0,114,0,95,0,48,0,48,0,49,0,0,0,97,0,115,0,97,0,95,0,84,0,90,0,0,0,97,0,115,0,116,0,95,0,69,0,83,0,0,0,98,0,97,0,115,0,95,0,67,0,77,0,0,0,98,0,103,0,99,0,95,0,73,0,78,0,0,0,98,0,103,0,110,0,95,0,80,0,75,0,0,0,98,0,104,0,111,0,95,0,73,0,78,0,0,0,98,0,115,0,115,0,95,0,67,0,77,0,0,0,98,0,121,0,110,0,95,0,69,0,82,0,0,0,99,0,97,0,100,0,95,0,85,0,83,0,0,0,99,0,99,0,104,0,95,0,78,0,71,0,0,0,99,0,101,0,98,0,95,0,80,0,72,0,0,0,99,0,103,0,103,0,95,0,85,0,71,0,0,0,99,0,104,0,114,0,95,0,85,0,83,0,0,0,99,0,105,0,99,0,95,0,85,0,83,0,0,0,99,0,107,0,98,0,95,0,73,0,81,0,0,0,100,0,97,0,118,0,95,0,75,0,69,0,0,0,100,0,106,0,101,0,95,0,78,0,69,0,0,0,100,0,111,0,105,0,95,0,73,0,78,0,0,0,100,0,115,0,98,0,95,0,68,0,69,0,0,0,100,0,117,0,97,0,95,0,67,0,77,0,0,0,101,0,98,0,117,0,95,0,75,0,69,0,0,0,101,0,111,0,95,0,48,0,48,0,49,0,0,0,101,0,119,0,111,0,95,0,67,0,77,0,0,0,102,0,114,0,114,0,95,0,68,0,69,0,0,0,102,0,117,0,114,0,95,0,73,0,84,0,0,0,103,0,97,0,97,0,95,0,71,0,72,0,0,0,104,0,115,0,98,0,95,0,68,0,69,0,0,0,105,0,97,0,95,0,48,0,48,0,49,0,0,0,105,0,111,0,95,0,48,0,48,0,49,0,0,0,106,0,103,0,111,0,95,0,67,0,77,0,0,0,106,0,109,0,99,0,95,0,84,0,90,0,0,0,107,0,97,0,106,0,95,0,78,0,71,0,0,0,107,0,97,0,109,0,95,0,75,0,69,0,0,0,107,0,99,0,103,0,95,0,78,0,71,0,0,0,107,0,100,0,101,0,95,0,84,0,90,0,0,0,107,0,101,0,110,0,95,0,67,0,77,0,0,0,107,0,103,0,112,0,95,0,66,0,82,0,0,0,107,0,104,0,113,0,95,0,77,0,76,0,0,0,107,0,107,0,106,0,95,0,67,0,77,0,0,0,107,0,108,0,110,0,95,0,75,0,69,0,0,0,107,0,111,0,107,0,95,0,73,0,78,0,0,0,107,0,112,0,101,0,95,0,76,0,82,0,0,0,107,0,115,0,98,0,95,0,84,0,90,0,0,0,107,0,115,0,102,0,95,0,67,0,77,0,0,0,107,0,115,0,104,0,95,0,68,0,69,0,0,0,108,0,97,0,103,0,95,0,84,0,90,0,0,0,108,0,105,0,106,0,95,0,73,0,84,0,0,0,108,0,107,0,116,0,95,0,85,0,83,0,0,0,108,0,114,0,99,0,95,0,73,0,82,0,0,0,108,0,117,0,111,0,95,0,75,0,69,0,0,0,108,0,117,0,121,0,95,0,75,0,69,0,0,0,109,0,97,0,105,0,95,0,73,0,78,0,0,0,109,0,97,0,115,0,95,0,75,0,69,0,0,0,109,0,100,0,102,0,95,0,82,0,85,0,0,0,109,0,101,0,114,0,95,0,75,0,69,0,0,0,109,0,103,0,111,0,95,0,67,0,77,0,0,0,109,0,111,0,104,0,95,0,67,0,65,0,0,0,109,0,117,0,97,0,95,0,67,0,77,0,0,0,109,0,117,0,115,0,95,0,85,0,83,0,0,0,110,0,109,0,103,0,95,0,67,0,77,0,0,0,110,0,110,0,104,0,95,0,67,0,77,0,0,0,110,0,115,0,111,0,95,0,90,0,65,0,0,0,110,0,121,0,110,0,95,0,85,0,71,0,0,0,111,0,115,0,97,0,95,0,85,0,83,0,0,0,112,0,99,0,109,0,95,0,78,0,71,0,0,0,114,0,97,0,106,0,95,0,73,0,78,0,0,0,114,0,111,0,102,0,95,0,84,0,90,0,0,0,114,0,119,0,107,0,95,0,84,0,90,0,0,0,115,0,97,0,104,0,95,0,82,0,85,0,0,0,115,0,97,0,113,0,95,0,75,0,69,0,0,0,115,0,98,0,112,0,95,0,84,0,90,0,0,0,115,0,99,0,110,0,95,0,73,0,84,0,0,0,115,0,100,0,104,0,95,0,73,0,82,0,0,0,115,0,101,0,104,0,95,0,77,0,90,0,0,0,115,0,104,0,110,0,95,0,77,0,77,0,0,0,115,0,105,0,100,0,95,0,69,0,84,0,0,0,115,0,109,0,97,0,95,0,83,0,69,0,0,0,115,0,109,0,106,0,95,0,83,0,69,0,0,0,115,0,109,0,110,0,95,0,70,0,73,0,0,0,116,0,105,0,103,0,95,0,69,0,82,0,0,0,116,0,122,0,109,0,95,0,77,0,65,0,0,0,118,0,101,0,99,0,95,0,73,0,84,0,0,0,118,0,111,0,95,0,48,0,48,0,49,0,0,0,118,0,117,0,110,0,95,0,84,0,90,0,0,0,119,0,97,0,101,0,95,0,67,0,72,0,0,0,119,0,97,0,108,0,95,0,69,0,84,0,0,0,120,0,111,0,103,0,95,0,85,0,71,0,0,0,121,0,105,0,95,0,48,0,48,0,49,0,0,0,121,0,114,0,108,0,95,0,66,0,82,0,0,0,122,0,103,0,104,0,95,0,77,0,65,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,107,0,115,0,95,0,65,0,114,0,97,0,98,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,48,0,51,0,52,0,32,0,49,0,52,0,51,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,115,0,95,0,76,0,97,0,116,0,110,0,0,0,102,0,102,0,95,0,76,0,97,0,116,0,110,0,0,0,106,0,98,0,111,0,95,0,48,0,48,0,49,0,0,0,112,0,111,0,108,0,121,0,116,0,111,0,110,0,0,0,112,0,114,0,103,0,95,0,48,0,48,0,49,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,0,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,0,0,116,0,111,0,107,0,95,0,48,0,48,0,49,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,111,0,118,0,101,0,114,0,108,0,111,0,110,0,103,0,0,0,67,0,87,0,32,0,83,0,88,0,32,0,66,0,81,0,0,0,118,0,97,0,105,0,95,0,86,0,97,0,105,0,105,0,0,0,98,0,97,0,108,0,95,0,65,0,114,0,97,0,98,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,112,0,0,0,109,0,110,0,105,0,95,0,66,0,101,0,110,0,103,0,0,0,114,0,104,0,103,0,95,0,82,0,111,0,104,0,103,0,0,0,115,0,97,0,116,0,95,0,79,0,108,0,99,0,107,0,0,0,115,0,104,0,105,0,95,0,84,0,102,0,110,0,103,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,0,0,111,0,109,0,98,0,106,0,32,0,111,0,109,0,98,0,115,0,0,0,111,0,109,0,115,0,106,0,32,0,111,0,109,0,115,0,115,0,0,0,105,0,110,0,99,0,104,0,45,0,111,0,102,0,104,0,103,0,0,0,100,0,101,0,112,0,114,0,101,0,99,0,97,0,116,0,101,0,100,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,98,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,65,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,83,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,90,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,97,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,65,0,90,0,0,0,98,0,109,0,95,0,78,0,107,0,111,0,111,0,95,0,77,0,76,0,0,0,98,0,115,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,65,0,0,0,101,0,110,0,95,0,68,0,115,0,114,0,116,0,95,0,85,0,83,0,0,0,101,0,110,0,95,0,83,0,104,0,97,0,119,0,95,0,71,0,66,0,0,0,102,0,102,0,95,0,65,0,100,0,108,0,109,0,95,0,71,0,78,0,0,0,102,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,78,0,71,0,0,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,107,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,107,0,115,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,110,0,95,0,77,0,111,0,110,0,103,0,95,0,67,0,78,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,89,0,0,0,112,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,95,0,73,0,78,0,0,0,112,0,101,0,114,0,109,0,105,0,108,0,108,0,105,0,111,0,110,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,115,0,100,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,83,0,0,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,117,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,90,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,87,0,0,0,70,0,77,0,32,0,77,0,72,0,32,0,77,0,80,0,32,0,80,0,87,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,117,0,110,0,100,0,95,0,97,0,108,0,97,0,108,0,99,0,57,0,55,0,0,0,115,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,65,0,0,0,118,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,82,0,0,0,98,0,97,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,97,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,75,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,112,0,95,0,85,0,83,0,0,0,109,0,110,0,105,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,109,0,110,0,105,0,95,0,77,0,116,0,101,0,105,0,95,0,73,0,78,0,0,0,114,0,104,0,103,0,95,0,82,0,111,0,104,0,103,0,95,0,77,0,77,0,0,0,115,0,97,0,116,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,97,0,116,0,95,0,79,0,108,0,99,0,107,0,95,0,73,0,78,0,0,0,115,0,104,0,105,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,118,0,97,0,105,0,95,0,86,0,97,0,105,0,105,0,95,0,76,0,82,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,110,0,97,0,110,0,95,0,120,0,95,0,122,0,104,0,95,0,109,0,105,0,110,0,0,0,109,0,97,0,99,0,114,0,111,0,108,0,97,0,110,0,103,0,117,0,97,0,103,0,101,0,0,0,98,0,105,0,98,0,108,0,105,0,111,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,0,0,115,0,101,0,101,0,95,0,120,0,95,0,105,0,95,0,109,0,105,0,110,0,103,0,111,0,0,0,101,0,110,0,95,0,120,0,95,0,105,0,95,0,100,0,101,0,102,0,97,0,117,0,108,0,116,0,0,0,101,0,110,0,95,0,71,0,66,0,95,0,111,0,120,0,101,0,110,0,100,0,105,0,99,0,116,0,0,0,108,0,117,0,101,0,99,0,32,0,108,0,117,0,103,0,114,0,32,0,108,0,117,0,114,0,109,0,0,0,109,0,114,0,49,0,51,0,32,0,109,0,114,0,49,0,52,0,32,0,109,0,114,0,49,0,53,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,104,0,103,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,117,0,110,0,100,0,95,0,120,0,95,0,105,0,95,0,101,0,110,0,111,0,99,0,104,0,105,0,97,0,110,0,0,0,82,0,83,0,32,0,77,0,69,0,32,0,83,0,73,0,32,0,72,0,82,0,32,0,77,0,75,0,32,0,66,0,65,0,0,0,108,0,117,0,99,0,97,0,32,0,108,0,117,0,101,0,115,0,32,0,108,0,117,0,108,0,117,0,32,0,108,0,117,0,109,0,101,0,0,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,108,0,117,0,99,0,108,0,32,0,108,0,117,0,100,0,105,0,32,0,108,0,117,0,114,0,100,0,32,0,108,0,117,0,118,0,100,0,32,0,108,0,117,0,119,0,105,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,82,0,85,0,32,0,65,0,77,0,32,0,65,0,90,0,32,0,66,0,89,0,32,0,71,0,69,0,32,0,75,0,71,0,32,0,75,0,90,0,32,0,77,0,68,0,32,0,84,0,74,0,32,0,84,0,77,0,32,0,85,0,65,0,32,0,85,0,90,0,0,0,41,220,110,0,122,0,99,0,97,0,110,0,32,0,110,0,122,0,109,0,98,0,104,0,32,0,110,0,122,0,110,0,115,0,110,0,32,0,110,0,122,0,111,0,116,0,97,0,32,0,110,0,122,0,115,0,116,0,108,0,32,0,110,0,122,0,116,0,97,0,115,0,32,0,110,0,122,0,119,0,116,0,99,0,0,0,44,220,82,0,85,0,32,0,65,0,77,0,32,0,65,0,90,0,32,0,66,0,89,0,32,0,69,0,69,0,32,0,71,0,69,0,32,0,75,0,90,0,32,0,75,0,71,0,32,0,76,0,86,0,32,0,76,0,84,0,32,0,77,0,68,0,32,0,84,0,74,0,32,0,84,0,77,0,32,0,85,0,65,0,32,0,85,0,90,0,0,0,53,220,110,0,122,0,97,0,117,0,107,0,32,0,110,0,122,0,98,0,111,0,112,0,32,0,110,0,122,0,103,0,105,0,115,0,32,0,110,0,122,0,104,0,107,0,98,0,32,0,110,0,122,0,109,0,119,0,116,0,32,0,110,0,122,0,110,0,116,0,108,0,32,0,110,0,122,0,116,0,107,0,105,0,32,0,110,0,122,0,119,0,103,0,110,0,32,0,110,0,122,0,119,0,107,0,111,0,0,0,2,0,56,0,63,0,121,16,235,5,2,0,56,0,63,0,121,16,59,4,2,0,56,0,63,0,1,16,110,2,2,0,56,0,63,0,1,16,142,15,2,0,56,0,63,0,121,16,136,3,2,0,56,0,63,0,1,16,116,2,2,0,56,0,63,0,121,16,87,4,2,0,56,0,63,0,121,16,83,3,2,0,56,0,63,0,121,16,71,4,2,0,56,0,63,0,155,18,79,5,2,0,56,0,63,0,1,16,76,3,2,0,56,0,63,0,169,18,106,0,2,0,56,0,63,0,155,18,106,0,2,0,56,0,63,0,1,16,48,4,2,0,56,0,63,0,1,16,17,2,2,0,56,0,63,0,155,18,17,2,2,0,56,0,63,0,1,16,232,3,2,0,56,0,63,0,169,18,44,2,2,0,56,0,63,0,121,16,131,3,2,0,56,0,63,0,121,16,223,5,2,0,56,0,63,0,1,16,8,4,2,0,56,0,63,0,121,16,107,5,2,0,56,0,63,0,1,16,119,2,2,0,56,0,63,0,1,16,113,2,2,0,56,0,63,0,1,16,152,3,2,0,56,0,63,0,155,18,152,3,2,0,56,0,63,0,121,16,171,5,2,0,56,0,63,0,1,16,20,2,2,0,56,0,63,0,155,18,20,2,2,0,56,0,63,0,1,16,104,3,2,0,56,0,63,0,1,16,131,2,2,0,56,0,63,0,169,18,32,2,2,0,56,0,63,0,121,16,247,3,2,0,56,0,63,0,155,18,107,4,2,0,56,0,63,0,155,18,111,3,2,0,56,0,63,0,1,16,122,2,2,0,56,0,63,0,1,16,134,2,2,0,56,0,63,0,121,16,111,4,2,0,56,0,63,0,155,18,99,3,2,0,56,0,63,0,121,16,243,4,2,0,56,0,63,0,121,16,119,4,2,0,56,0,63,0,1,16,99,3,2,0,56,0,63,0,1,16,128,2,2,0,56,0,63,0,121,16,195,4,2,0,56,0,63,0,121,16,147,4,2,0,56,0,63,0,121,16,219,4,2,0,56,0,63,0,121,16,103,3,2,0,56,0,63,0,1,16,132,3,2,0,56,0,63,0,1,16,98,16,2,0,56,0,63,0,1,16,236,3,2,0,56,0,63,0,121,16,115,4,2,0,56,0,63,0,1,16,125,2,2,0,56,0,63,0,169,18,86,2,2,0,56,0,63,0,155,18,131,5,2,0,56,0,63,0,155,18,143,4,2,0,56,0,63,0,1,16,137,2,2,0,56,0,63,0,121,16,107,3,2,0,56,0,63,0,221,11,43,4,2,0,56,0,63,0,1,16,140,3,2,0,56,0,63,0,1,16,36,4,2,0,56,0,63,0,1,16,140,2,2,0,56,0,63,0,169,18,7,0,2,0,56,0,63,0,1,16,146,2,2,0,56,0,63,0,1,16,12,4,2,0,56,0,63,0,121,16,139,5,2,0,56,0,63,0,121,16,199,3,2,0,56,0,63,0,155,18,247,5,2,0,56,0,63,0,121,16,35,4,2,0,56,0,63,0,155,18,7,0,2,0,56,0,63,0,221,11,73,9,2,0,56,0,63,0,1,16,206,2,2,0,56,0,63,0,1,16,143,2,2,0,56,0,63,0,121,16,187,3,2,0,56,0,63,0,121,16,191,5,2,0,56,0,63,0,1,16,23,2,2,0,56,0,63,0,155,18,23,2,2,0,56,0,63,0,1,16,225,11,2,0,56,0,63,0,169,18,140,3,2,0,56,0,63,0,121,16,187,4,2,0,56,0,63,0,1,16,149,2,2,0,56,0,63,0,121,16,155,5,2,0,56,0,63,0,1,16,26,2,2,0,56,0,63,0,155,18,191,4,2,0,56,0,63,0,155,18,147,5,2,0,56,0,63,0,155,18,183,4,2,0,56,0,63,0,155,18,159,3,2,0,56,0,63,0,121,16,179,4,2,0,56,0,63,0,1,16,152,2,2,0,56,0,63,0,121,16,215,4,2,0,56,0,63,0,121,16,91,4,2,0,56,0,63,0,121,16,73,6,2,0,56,0,63,0,121,16,175,3,2,0,56,0,63,0,121,16,159,7,2,0,56,0,63,0,121,16,27,4,2,0,56,0,63,0,121,16,211,4,2,0,56,0,63,0,169,18,124,3,2,0,56,0,63,0,121,16,171,4,2,0,56,0,63,0,1,16,136,3,2,0,56,0,63,0,155,18,29,2,2,0,56,0,63,0,1,16,116,3,2,0,56,0,63,0,121,16,75,4,2,0,56,0,63,0,155,18,179,3,2,0,56,0,63,0,121,16,212,18,2,0,56,0,63,0,1,16,204,3,2,0,56,0,63,0,1,16,32,4,2,0,56,0,63,0,155,18,112,3,2,0,56,0,63,0,1,16,29,2,2,0,56,0,63,0,1,16,32,2,2,0,56,0,63,0,1,16,155,2,2,0,56,0,63,0,1,16,158,2,2,0,56,0,63,0,1,16,100,0,2,0,56,0,63,0,155,18,76,3,2,0,56,0,63,0,1,16,93,6,2,0,56,0,63,0,1,16,192,3,2,0,56,0,63,0,1,16,38,2,2,0,56,0,63,0,169,18,38,2,2,0,56,0,63,0,1,16,196,3,2,0,56,0,63,0,155,18,35,2,2,0,56,0,63,0,1,16,35,2,2,0,56,0,63,0,121,16,175,4,2,0,56,0,63,0,155,18,156,3,2,0,56,0,63,0,121,16,43,6,2,0,56,0,63,0,155,18,15,5,2,0,56,0,63,0,169,18,59,2,2,0,56,0,63,0,169,18,26,2,2,0,56,0,63,0,121,16,95,3,2,0,56,0,63,0,121,16,31,5,2,0,56,0,63,0,121,16,235,4,2,0,56,0,63,0,121,16,27,5,2,0,56,0,63,0,121,16,83,4,2,0,56,0,63,0,1,16,16,4,2,0,56,0,63,0,1,16,161,2,2,0,56,0,63,0,1,16,208,3,2,0,56,0,63,0,121,16,175,3,2,0,56,0,63,0,1,16,240,3,2,0,56,0,63,0,155,18,11,5,2,0,56,0,63,0,169,18,116,3,2,0,56,0,63,0,1,16,41,2,2,0,56,0,63,0,121,16,175,5,2,0,56,0,63,0,155,18,41,2,2,0,56,0,63,0,1,16,164,2,2,0,56,0,63,0,121,16,119,3,2,0,56,0,63,0,155,18,3,5,2,0,56,0,63,0,1,16,167,2,2,0,56,0,63,0,1,16,98,6,2,0,56,0,63,0,1,16,121,15,2,0,56,0,63,0,155,18,35,5,2,0,56,0,63,0,155,18,43,5,2,0,56,0,63,0,1,16,78,6,2,0,56,0,63,0,1,16,173,2,2,0,56,0,63,0,155,18,227,5,2,0,56,0,63,0,1,16,103,6,2,0,56,0,63,0,1,16,100,3,2,0,56,0,63,0,121,16,67,5,2,0,56,0,63,0,1,16,144,3,2,0,56,0,63,0,1,16,170,2,2,0,56,0,63,0,121,16,55,5,2,0,56,0,63,0,1,16,44,2,2,0,56,0,63,0,121,16,83,3,2,0,56,0,63,0,121,16,135,4,2,0,56,0,63,0,221,11,197,18,2,0,56,0,63,0,221,11,34,19,2,0,56,0,63,0,121,16,171,3,2,0,56,0,63,0,121,16,7,6,2,0,56,0,63,0,121,16,74,2,2,0,56,0,63,0,221,11,183,18,2,0,56,0,63,0,121,16,89,2,2,0,56,0,63,0,121,16,187,5,2,0,56,0,63,0,121,16,255,5,2,0,56,0,63,0,121,16,151,3,2,0,56,0,63,0,121,16,23,4,2,0,56,0,63,0,121,16,3,4,2,0,56,0,63,0,1,16,179,2,2,0,56,0,63,0,169,18,50,2,2,0,56,0,63,0,1,16,182,2,2,0,56,0,63,0,1,16,25,16,2,0,56,0,63,0,155,18,53,2,2,0,56,0,63,0,1,16,53,2,2,0,56,0,63,0,1,16,176,2,2,0,56,0,63,0,121,16,59,5,2,0,56,0,63,0,121,16,251,4,2,0,56,0,63,0,121,16,47,2,2,0,56,0,63,0,1,16,204,7,2,0,56,0,63,0,1,16,47,2,2,0,56,0,63,0,1,16,112,3,2,0,56,0,63,0,1,16,50,2,2,0,56,0,63,0,1,16,185,2,2,0,56,0,63,0,121,16,78,6,2,0,56,0,63,0,121,16,239,4,2,0,56,0,63,0,121,16,75,5,2,0,56,0,63,0,1,16,56,2,2,0,56,0,63,0,121,16,91,3,2,0,56,0,63,0,121,16,109,0,2,0,56,0,63,0,1,16,188,2,2,0,56,0,63,0,121,16,56,2,2,0,56,0,63,0,1,16,197,2,2,0,56,0,63,0,1,16,200,2,2,0,56,0,63,0,1,16,203,2,2,0,56,0,63,0,1,16,59,2,2,0,56,0,63,0,1,16,65,2,2,0,56,0,63,0,1,16,194,2,2,0,56,0,63,0,121,16,67,6,2,0,56,0,63,0,121,16,3,6,2,0,56,0,63,0,121,16,87,6,2,0,56,0,63,0,121,16,227,3,2,0,56,0,63,0,155,18,73,6,2,0,56,0,63,0,1,16,220,3,2,0,56,0,63,0,1,16,108,3,2,0,56,0,63,0,1,16,254,2,2,0,56,0,63,0,1,16,209,2,2,0,56,0,63,0,155,18,68,2,2,0,56,0,63,0,155,18,65,2,2,0,56,0,63,0,155,18,62,2,2,0,56,0,63,0,155,18,91,5,2,0,56,0,63,0,121,16,111,5,2,0,56,0,63,0,1,16,71,2,2,0,56,0,63,0,1,16,62,2,2,0,56,0,63,0,1,16,145,20,2,0,56,0,63,0,121,16,219,3,2,0,56,0,63,0,155,18,71,2,2,0,56,0,63,0,121,16,127,4,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,1,16,191,2,2,0,56,0,63,0,1,16,68,2,2,0,56,0,63,0,121,16,7,5,2,0,56,0,63,0,121,16,47,4,2,0,56,0,63,0,121,16,15,6,2,0,56,0,63,0,121,16,99,5,2,0,56,0,63,0,121,16,207,3,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,121,16,103,5,2,0,56,0,63,0,1,16,218,2,2,0,56,0,63,0,1,16,0,4,2,0,56,0,63,0,1,16,77,2,2,0,56,0,63,0,155,18,131,4,2,0,56,0,63,0,121,16,123,3,2,0,56,0,63,0,121,16,199,5,2,0,56,0,63,0,1,16,215,2,2,0,56,0,63,0,1,16,108,6,2,0,56,0,63,0,1,16,209,18,2,0,56,0,63,0,121,16,151,5,2,0,56,0,63,0,121,16,203,5,2,0,56,0,63,0,1,16,74,2,2,0,56,0,63,0,1,16,221,2,2,0,56,0,63,0,1,16,212,2,2,0,56,0,63,0,155,18,77,2,2,0,56,0,63,0,169,18,83,2,2,0,56,0,63,0,1,16,20,4,2,0,56,0,63,0,1,16,228,3,2,0,56,0,63,0,169,18,84,3,2,0,56,0,63,0,1,16,200,3,2,0,56,0,63,0,169,18,103,0,2,0,56,0,63,0,121,16,163,4,2,0,56,0,63,0,121,16,71,5,2,0,56,0,63,0,155,18,159,4,2,0,56,0,63,0,1,16,83,2,2,0,56,0,63,0,1,16,80,2,2,0,56,0,63,0,1,16,224,2,2,0,56,0,63,0,155,18,179,3,2,0,56,0,63,0,121,16,87,3,2,0,56,0,63,0,121,16,80,3,2,0,56,0,63,0,121,16,51,6,2,0,56,0,63,0,1,16,80,3,2,0,56,0,63,0,1,16,73,6,2,0,56,0,63,0,1,16,84,3,2,0,56,0,63,0,1,16,103,0,2,0,56,0,63,0,121,16,183,3,2,0,56,0,63,0,155,18,195,5,2,0,56,0,63,0,121,16,163,3,2,0,56,0,63,0,121,16,95,3,2,0,56,0,63,0,1,16,86,2,2,0,56,0,63,0,121,16,79,4,2,0,56,0,63,0,121,16,183,3,2,0,56,0,63,0,121,16,39,4,2,0,56,0,63,0,1,16,227,2,2,0,56,0,63,0,1,16,89,2,2,0,56,0,63,0,121,16,167,5,2,0,56,0,63,0,1,16,233,2,2,0,56,0,63,0,121,16,223,4,2,0,56,0,63,0,121,16,135,3,2,0,56,0,63,0,1,16,68,3,2,0,56,0,63,0,1,16,7,16,2,0,56,0,63,0,1,16,112,9,2,0,56,0,63,0,1,16,124,3,2,0,56,0,63,0,121,16,103,4,2,0,56,0,63,0,121,16,163,5,2,0,56,0,63,0,1,16,88,3,2,0,56,0,63,0,121,16,235,3,2,0,56,0,63,0,121,16,239,3,2,0,56,0,63,0,121,16,13,0,2,0,56,0,63,0,121,16,13,0,2,0,56,0,63,0,121,16,88,3,2,0,56,0,63,0,121,16,88,3,2,0,56,0,63,0,1,16,13,0,2,0,56,0,63,0,121,16,207,4,2,0,56,0,63,0,1,16,230,2,2,0,56,0,63,0,155,18,112,9,2,0,56,0,63,0,121,16,187,3,2,0,56,0,63,0,121,16,139,4,2,0,56,0,63,0,1,16,40,4,2,0,56,0,63,0,1,16,236,2,2,0,56,0,63,0,155,18,92,2,2,0,56,0,63,0,1,16,92,2,2,0,56,0,63,0,1,16,174,7,2,0,56,0,63,0,1,16,156,3,2,0,56,0,63,0,155,18,174,7,2,0,56,0,63,0,1,16,239,2,2,0,56,0,63,0,121,16,95,3,2,0,56,0,63,0,1,16,4,4,2,0,56,0,63,0,121,16,115,5,2,0,56,0,63,0,155,18,95,2,2,0,56,0,63,0,121,16,67,4,2,0,56,0,63,0,169,18,100,0,2,0,56,0,63,0,155,18,100,0,2,0,56,0,63,0,1,16,242,2,2,0,56,0,63,0,155,18,80,2,2,0,56,0,63,0,121,16,51,5,2,0,56,0,63,0,121,16,143,3,2,0,56,0,63,0,155,18,119,5,2,0,56,0,63,0,1,16,245,2,2,0,56,0,63,0,1,16,248,2,2,0,56,0,63,0,121,16,195,3,2,0,56,0,63,0,121,16,123,5,2,0,56,0,63,0,1,16,159,7,2,0,56,0,63,0,121,16,179,5,2,0,56,0,63,0,1,16,95,2,2,0,56,0,63,0,121,16,183,5,2,0,56,0,63,0,1,16,98,2,2,0,56,0,63,0,155,18,98,2,2,0,56,0,63,0,121,16,231,4,2,0,56,0,63,0,155,18,207,5,2,0,56,0,63,0,1,16,52,4,2,0,56,0,63,0,1,16,80,3,2,0,56,0,63,0,169,18,80,3,2,0,56,0,63,0,1,16,251,2,2,0,56,0,63,0,1,16,150,15,2,0,56,0,63,0,1,16,216,3,2,0,56,0,63,0,1,16,1,3,2,0,56,0,63,0,121,16,95,4,2,0,56,0,63,0,121,16,39,5,2,0,56,0,63,0,121,16,148,3,2,0,56,0,63,0,121,16,144,3,2,0,56,0,63,0,121,16,127,3,2,0,56,0,63,0,121,16,211,5,2,0,56,0,63,0,121,16,31,6,2,0,56,0,63,0,121,16,151,4,2,0,56,0,63,0,121,16,219,5,2,0,56,0,63,0,121,16,167,4,2,0,56,0,63,0,121,16,19,5,2,0,56,0,63,0,121,16,203,4,2,0,56,0,63,0,121,16,231,5,2,0,56,0,63,0,121,16,247,4,2,0,56,0,63,0,121,16,191,3,2,0,56,0,63,0,121,16,23,5,2,0,56,0,63,0,121,16,215,3,2,0,56,0,63,0,121,16,211,3,2,0,56,0,63,0,121,16,223,3,2,0,56,0,63,0,121,16,135,5,2,0,56,0,63,0,121,16,139,3,2,0,56,0,63,0,121,16,199,4,2,0,56,0,63,0,121,16,243,3,2,0,56,0,63,0,121,16,147,3,2,0,56,0,63,0,121,16,243,5,2,0,56,0,63,0,121,16,99,4,2,0,56,0,63,0,121,16,215,5,2,0,56,0,63,0,221,11,121,15,2,0,56,0,63,0,1,16,244,3,2,0,56,0,63,0,121,16,91,3,2,0,56,0,63,0,1,16,128,3,2,0,56,0,63,0,169,18,128,3,2,0,56,0,63,0,1,16,224,3,2,0,56,0,63,0,121,16,87,5,2,0,56,0,63,0,1,16,212,3,2,0,56,0,63,0,1,16,4,3,2,0,56,0,63,0,1,16,118,6,2,0,56,0,63,0,121,16,103,3,2,0,56,0,63,0,1,16,113,6,2,0,56,0,63,0,1,16,7,3,2,0,56,0,63,0,1,16,10,3,2,0,56,0,63,0,1,16,150,7,2,0,56,0,63,0,155,18,83,5,2,0,56,0,63,0,1,16,106,0,2,0,56,0,63,0,155,18,83,6,2,0,56,0,63,0,1,16,83,6,2,0,56,0,63,0,1,16,148,3,2,0,56,0,63,0,1,16,108,16,2,0,56,0,63,0,121,16,15,4,2,0,56,0,63,0,121,16,27,6,2,0,56,0,63,0,1,16,24,4,2,0,56,0,63,0,1,16,101,2,2,0,56,0,63,0,1,16,183,7,2,0,56,0,63,0,1,16,13,3,2,0,56,0,63,0,155,18,101,2,2,0,56,0,63,0,1,16,40,3,2,0,56,0,63,0,1,16,16,3,2,0,56,0,63,0,1,16,37,3,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,1,16,19,3,2,0,56,0,63,0,121,16,123,4,2,0,56,0,63,0,1,16,44,4,2,0,56,0,63,0,1,16,167,3,2,0,56,0,63,0,1,16,28,4,2,0,56,0,63,0,121,16,11,6,2,0,56,0,63,0,121,16,255,3,2,0,56,0,63,0,121,16,91,3,2,0,56,0,63,0,169,18,132,3,2,0,56,0,63,0,121,16,63,5,2,0,56,0,63,0,121,16,7,4,2,0,56,0,63,0,1,16,22,3,2,0,56,0,63,0,121,16,19,6,2,0,56,0,63,0,221,11,167,3,2,0,56,0,63,0,121,16,31,4,2,0,56,0,63,0,121,16,23,6,2,0,56,0,63,0,121,16,75,3,2,0,56,0,63,0,121,16,159,7,2,0,56,0,63,0,1,16,28,3,2,0,56,0,63,0,121,16,251,5,2,0,56,0,63,0,1,16,158,15,2,0,56,0,63,0,1,16,34,3,2,0,56,0,63,0,155,18,19,4,2,0,56,0,63,0,1,16,25,3,2,0,56,0,63,0,1,16,31,3,2,0,56,0,63,0,155,18,76,3,2,0,56,0,63,0,1,16,76,3,2,0,56,0,63,0,1,16,56,4,2,0,56,0,63,0,1,16,43,3,2,0,56,0,63,0,155,18,115,3,2,0,56,0,63,0,121,16,0,12,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,230,17,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,79,3,2,0,56,0,63,0,121,16,227,4,2,0,56,0,63,0,1,16,46,3,2,0,56,0,63,0,1,16,120,3,2,0,56,0,63,0,155,18,120,3,2,0,56,0,63,0,1,16,49,3,2,0,56,0,63,0,1,16,52,3,2,0,56,0,63,0,1,16,248,3,2,0,56,0,63,0,169,18,225,11,2,0,56,0,63,0,121,16,39,6,2,0,56,0,63,0,121,16,159,5,2,0,56,0,63,0,121,16,251,3,2,0,56,0,63,0,1,16,55,3,2,0,56,0,63,0,1,16,252,3,2,0,56,0,63,0,121,16,155,4,2,0,56,0,63,0,1,16,58,3,2,0,56,0,63,0,121,16,63,4,2,0,56,0,63,0,121,16,35,6,2,0,56,0,63,0,155,18,95,5,2,0,56,0,63,0,121,16,163,3,2,0,56,0,63,0,121,16,239,5,2,0,56,0,63,0,155,18,203,3,2,0,56,0,63,0,121,16,107,3,2,0,56,0,63,0,155,18,109,0,2,0,56,0,63,0,121,16,55,6,2,0,56,0,63,0,1,16,109,0,2,0,56,0,63,0,121,16,51,4,2,0,56,0,63,0,121,16,127,5,2,0,56,0,63,0,121,16,143,5,2,0,56,0,63,0,1,16,61,3,2,0,56,0,63,0,121,16,155,3,2,0,56,0,63,0,121,16,55,4,2,0,56,0,63,0,155,18,63,6,2,0,56,0,63,0,121,16,7,0,2,0,56,0,63,0,121,16,129,15,2,0,56,0,63,0,121,16,249,15,2,0,56,0,63,0,121,16,255,4,2,0,56,0,63,0,121,16,7,0,2,0,56,0,63,0,121,16,171,3,2,0,56,0,63,0,221,11,142,18,2,0,56,0,63,0,121,16,231,3,2,0,56,0,63,0,121,16,47,6,2,0,56,0,63,0,121,16,47,5,2,0,56,0,63,0,121,16,59,6,2,0,56,0,63,0,1,16,160,3,2,0,56,0,63,0,1,16,7,0,2,0,56,0,63,0,121,16,11,4,2,0,56,0,63,0,155,18,103,0,2,0,56,0,63,0,1,16,64,3,2,0,56,0,63,0,155,18,160,3,2,0,56,0,63,0,121,16,121,6,2,0,56,0,63,0,121,16,131,6,2,0,56,0,63,0,121,16,206,6,2,0,56,0,63,0,121,16,76,6,2,0,56,0,63,0,121,16,201,6,2,0,56,0,63,0,121,16,71,6,2,0,56,0,63,0,121,16,106,6,2,0,56,0,63,0,121,16,171,6,2,0,56,0,63,0,121,16,161,6,2,0,56,0,63,0,121,16,196,6,2,0,56,0,63,0,121,16,176,6,2,0,56,0,63,0,121,16,226,6,2,0,56,0,63,0,121,16,126,6,2,0,56,0,63,0,121,16,91,6,2,0,56,0,63,0,121,16,181,6,2,0,56,0,63,0,121,16,111,6,2,0,56,0,63,0,121,16,96,6,2,0,56,0,63,0,121,16,156,6,2,0,56,0,63,0,121,16,166,6,2,0,56,0,63,0,121,16,136,6,2,0,56,0,63,0,121,16,146,6,2,0,56,0,63,0,121,16,101,6,2,0,56,0,63,0,121,16,86,6,2,0,56,0,63,0,121,16,81,6,2,0,56,0,63,0,121,16,151,6,2,0,56,0,63,0,121,16,221,6,2,0,56,0,63,0,121,16,216,6,2,0,56,0,63,0,121,16,116,6,2,0,56,0,63,0,121,16,141,6,2,0,56,0,63,0,121,16,191,6,2,0,56,0,63,0,121,16,186,6,2,0,56,0,63,0,121,16,211,6,2,0,56,0,63,0,1,16,253,11,2,0,56,0,63,0,1,16,227,17,2,0,56,0,63,0,1,16,55,0,2,0,56,0,63,0,121,16,247,9,2,0,56,0,63,0,121,16,253,9,2,0,56,0,63,0,121,16,3,10,2,0,56,0,63,0,121,16,9,10,2,0,56,0,63,0,121,16,15,10,2,0,56,0,63,0,121,16,21,10,2,0,56,0,63,0,121,16,87,10,2,0,56,0,63,0,121,16,27,10,2,0,56,0,63,0,121,16,33,10,2,0,56,0,63,0,121,16,39,10,2,0,56,0,63,0,121,16,45,10,2,0,56,0,63,0,121,16,51,10,2,0,56,0,63,0,121,16,57,10,2,0,56,0,63,0,121,16,63,10,2,0,56,0,63,0,121,16,69,10,2,0,56,0,63,0,121,16,75,10,2,0,56,0,63,0,121,16,81,10,2,0,56,0,63,0,121,16,241,6,2,0,56,0,63,0,121,16,25,7,2,0,56,0,63,0,121,16,251,6,2,0,56,0,63,0,121,16,10,7,2,0,56,0,63,0,121,16,5,7,2,0,56,0,63,0,121,16,40,7,2,0,56,0,63,0,121,16,30,7,2,0,56,0,63,0,121,16,15,7,2,0,56,0,63,0,121,16,246,6,2,0,56,0,63,0,121,16,231,6,2,0,56,0,63,0,121,16,236,6,2,0,56,0,63,0,121,16,0,7,2,0,56,0,63,0,121,16,20,7,2,0,56,0,63,0,121,16,35,7,2,0,56,0,63,0,1,16,4,12,2,0,56,0,63,0,121,16,147,7,2,0,56,0,63,0,121,16,165,7,2,0,56,0,63,0,1,16,31,0,2,0,56,0,63,0,121,16,29,8,2,0,56,0,63,0,1,16,178,0,2,0,56,0,63,0,121,16,35,8,2,0,56,0,63,0,121,16,129,10,2,0,56,0,63,0,121,16,141,10,2,0,56,0,63,0,121,16,147,7,2,0,56,0,63,0,1,16,40,0,2,0,56,0,63,0,1,16,43,0,2,0,56,0,63,0,121,16,135,10,2,0,56,0,63,0,121,16,35,8,2,0,56,0,63,0,121,16,147,10,2,0,56,0,63,0,121,16,47,8,2,0,56,0,63,0,121,16,165,7,2,0,56,0,63,0,121,16,147,7,2,0,56,0,63,0,1,16,52,0,2,0,56,0,63,0,1,16,61,0,2,0,56,0,63,0,121,16,47,8,2,0,56,0,63,0,1,16,64,0,2,0,56,0,63,0,121,16,41,8,2,0,56,0,63,0,121,16,171,7,2,0,56,0,63,0,1,16,70,0,2,0,56,0,63,0,1,16,73,0,2,0,56,0,63,0,121,16,171,7,2,0,56,0,63,0,121,16,159,10,2,0,56,0,63,0,1,16,79,0,2,0,56,0,63,0,121,16,41,8,2,0,56,0,63,0,121,16,165,7,2,0,56,0,63,0,1,16,192,7,2,0,56,0,63,0,121,16,153,10,2,0,56,0,63,0,121,16,29,8,2,0,56,0,63,0,1,16,94,0,2,0,56,0,63,0,1,16,97,0,2,0,56,0,63,0,121,16,45,7,2,0,56,0,63,0,121,16,137,19,2,0,56,0,63,0,121,16,227,18,2,0,56,0,63,0,121,16,69,19,2,0,56,0,63,0,121,16,242,18,2,0,56,0,63,0,1,16,22,0,2,0,56,0,63,0,1,16,34,0,2,0,56,0,63,0,1,16,85,0,2,0,56,0,63,0,121,16,50,7,2,0,56,0,63,0,121,16,93,20,2,0,56,0,63,0,121,16,4,20,2,0,56,0,63,0,121,16,91,16,2,0,56,0,63,0,121,16,101,16,2,0,56,0,63,0,121,16,55,7,2,0,56,0,63,0,121,16,60,7,2,0,56,0,63,0,121,16,70,7,2,0,56,0,63,0,121,16,75,7,2,0,56,0,63,0,121,16,65,7,2,0,56,0,63,0,121,16,80,7,2,0,56,0,63,0,121,16,85,7,2,0,56,0,63,0,121,16,90,7,2,0,56,0,63,0,121,16,100,7,2,0,56,0,63,0,121,16,95,7,2,0,56,0,63,0,121,16,105,7,2,0,56,0,63,0,121,16,115,7,2,0,56,0,63,0,121,16,110,7,2,0,56,0,63,0,121,16,120,7,2,0,56,0,63,0,121,16,125,7,2,0,56,0,63,0,121,16,130,7,2,0,56,0,63,0,1,16,156,1,2,0,56,0,63,0,121,16,115,9,2,0,56,0,63,0,121,16,155,11,2,0,56,0,63,0,121,16,115,9,2,0,56,0,63,0,121,16,161,11,2,0,56,0,63,0,121,16,173,11,2,0,56,0,63,0,121,16,167,11,2,0,56,0,63,0,121,16,179,11,2,0,56,0,63,0,1,16,19,0,2,0,56,0,63,0,1,16,46,0,2,0,56,0,63,0,1,16,58,0,2,0,56,0,63,0,1,16,76,0,2,0,56,0,63,0,1,16,1,0,2,0,56,0,63,0,1,16,88,0,2,0,56,0,63,0,1,16,4,9,2,0,56,0,63,0,1,16,70,9,2,0,56,0,63,0,1,16,16,0,2,0,56,0,63,0,1,16,88,12,2,0,56,0,63,0,1,16,19,0,2,0,56,0,63,0,1,16,115,0,2,0,56,0,63,0,1,16,127,0,2,0,56,0,63,0,1,16,121,0,2,0,56,0,63,0,1,16,140,16,2,0,56,0,63,0,1,16,130,0,2,0,56,0,63,0,1,16,228,12,2,0,56,0,63,0,1,16,133,0,2,0,56,0,63,0,1,16,151,0,2,0,56,0,63,0,1,16,139,0,2,0,56,0,63,0,1,16,39,12,2,0,56,0,63,0,1,16,98,8,2,0,56,0,63,0,1,16,136,0,2,0,56,0,63,0,1,16,130,9,2,0,56,0,63,0,1,16,142,0,2,0,56,0,63,0,121,16,161,15,2,0,56,0,63,0,1,16,2,8,2,0,56,0,63,0,1,16,148,0,2,0,56,0,63,0,1,16,151,16,2,0,56,0,63,0,1,16,157,0,2,0,56,0,63,0,1,16,154,0,2,0,56,0,63,0,1,16,10,9,2,0,56,0,63,0,1,16,160,0,2,0,56,0,63,0,1,16,253,0,2,0,56,0,63,0,1,16,151,12,2,0,56,0,63,0,1,16,186,1,2,0,56,0,63,0,1,16,145,0,2,0,56,0,63,0,1,16,234,7,2,0,56,0,63,0,1,16,180,7,2,0,56,0,63,0,1,16,22,9,2,0,56,0,63,0,1,16,228,7,2,0,56,0,63,0,1,16,146,8,2,0,56,0,63,0,1,16,235,12,2,0,56,0,63,0,1,16,116,8,2,0,56,0,63,0,1,16,95,12,2,0,56,0,63,0,1,16,21,1,2,0,56,0,63,0,1,16,40,9,2,0,56,0,63,0,1,16,46,9,2,0,56,0,63,0,1,16,162,1,2,0,56,0,63,0,1,16,11,12,2,0,56,0,63,0,1,16,184,16,2,0,56,0,63,0,1,16,253,11,2,0,56,0,63,0,1,16,187,0,2,0,56,0,63,0,1,16,163,0,2,0,56,0,63,0,1,16,175,0,2,0,56,0,63,0,121,16,224,19,2,0,56,0,63,0,1,16,9,1,2,0,56,0,63,0,1,16,97,0,2,0,56,0,63,0,1,16,166,0,2,0,56,0,63,0,1,16,186,7,2,0,56,0,63,0,1,16,172,0,2,0,56,0,63,0,1,16,181,0,2,0,56,0,63,0,1,16,86,8,2,0,56,0,63,0,1,16,184,0,2,0,56,0,63,0,1,16,190,0,2,0,56,0,63,0,121,16,145,9,2,0,56,0,63,0,1,16,240,7,2,0,56,0,63,0,1,16,28,0,2,0,56,0,63,0,1,16,246,7,2,0,56,0,63,0,1,16,196,0,2,0,56,0,63,0,1,16,199,0,2,0,56,0,63,0,1,16,202,0,2,0,56,0,63,0,1,16,147,1,2,0,56,0,63,0,1,16,232,0,2,0,56,0,63,0,121,16,246,11,2,0,56,0,63,0,1,16,246,11,2,0,56,0,63,0,1,16,179,12,2,0,56,0,63,0,1,16,14,8,2,0,56,0,63,0,1,16,26,8,2,0,56,0,63,0,1,16,214,0,2,0,56,0,63,0,1,16,235,0,2,0,56,0,63,0,1,16,211,0,2,0,56,0,63,0,1,16,172,12,2,0,56,0,63,0,1,16,4,12,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,40,0,2,0,56,0,63,0,1,16,70,0,2,0,56,0,63,0,1,16,192,7,2,0,56,0,63,0,1,16,193,0,2,0,56,0,63,0,1,16,220,0,2,0,56,0,63,0,1,16,254,8,2,0,56,0,63,0,1,16,229,0,2,0,56,0,63,0,1,16,75,1,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,121,16,232,11,2,0,56,0,63,0,1,16,222,7,2,0,56,0,63,0,1,16,226,0,2,0,56,0,63,0,1,16,49,0,2,0,56,0,63,0,1,16,8,8,2,0,56,0,63,0,1,16,140,8,2,0,56,0,63,0,1,16,223,0,2,0,56,0,63,0,1,16,43,0,2,0,56,0,63,0,1,16,46,0,2,0,56,0,63,0,1,16,158,12,2,0,56,0,63,0,1,16,137,12,2,0,56,0,63,0,1,16,241,0,2,0,56,0,63,0,1,16,250,0,2,0,56,0,63,0,1,16,244,0,2,0,56,0,63,0,1,16,170,8,2,0,56,0,63,0,1,16,247,0,2,0,56,0,63,0,1,16,227,17,2,0,56,0,63,0,1,16,92,8,2,0,56,0,63,0,1,16,104,8,2,0,56,0,63,0,1,16,32,12,2,0,56,0,63,0,1,16,128,8,2,0,56,0,63,0,1,16,123,12,2,0,56,0,63,0,1,16,186,12,2,0,56,0,63,0,1,16,62,8,2,0,56,0,63,0,1,16,80,8,2,0,56,0,63,0,1,16,110,8,2,0,56,0,63,0,1,16,169,0,2,0,56,0,63,0,1,16,3,1,2,0,56,0,63,0,1,16,122,8,2,0,56,0,63,0,1,16,134,8,2,0,56,0,63,0,1,16,6,1,2,0,56,0,63,0,1,16,67,12,2,0,56,0,63,0,1,16,15,1,2,0,56,0,63,0,1,16,152,8,2,0,56,0,63,0,1,16,18,1,2,0,56,0,63,0,1,16,164,8,2,0,56,0,63,0,1,16,182,8,2,0,56,0,63,0,1,16,24,1,2,0,56,0,63,0,1,16,33,1,2,0,56,0,63,0,1,16,194,8,2,0,56,0,63,0,1,16,7,18,2,0,56,0,63,0,1,16,36,1,2,0,56,0,63,0,1,16,30,1,2,0,56,0,63,0,1,16,188,8,2,0,56,0,63,0,1,16,176,8,2,0,56,0,63,0,1,16,55,0,2,0,56,0,63,0,1,16,200,8,2,0,56,0,63,0,1,16,248,8,2,0,56,0,63,0,1,16,224,8,2,0,56,0,63,0,1,16,252,7,2,0,56,0,63,0,1,16,165,12,2,0,56,0,63,0,1,16,230,8,2,0,56,0,63,0,1,16,61,0,2,0,56,0,63,0,1,16,48,1,2,0,56,0,63,0,1,16,102,12,2,0,56,0,63,0,1,16,54,1,2,0,56,0,63,0,1,16,39,1,2,0,56,0,63,0,1,16,218,8,2,0,56,0,63,0,1,16,42,1,2,0,56,0,63,0,1,16,76,9,2,0,56,0,63,0,1,16,51,1,2,0,56,0,63,0,1,16,251,17,2,0,56,0,63,0,1,16,109,12,2,0,56,0,63,0,1,16,69,1,2,0,56,0,63,0,1,16,130,12,2,0,56,0,63,0,1,16,63,1,2,0,56,0,63,0,1,16,236,8,2,0,56,0,63,0,1,16,56,8,2,0,56,0,63,0,1,16,10,16,2,0,56,0,63,0,1,16,34,0,2,0,56,0,63,0,121,16,10,16,2,0,56,0,63,0,1,16,22,0,2,0,56,0,63,0,1,16,85,0,2,0,56,0,63,0,1,16,16,16,2,0,56,0,63,0,1,16,153,7,2,0,56,0,63,0,1,16,64,0,2,0,56,0,63,0,1,16,91,0,2,0,56,0,63,0,1,16,206,8,2,0,56,0,63,0,1,16,60,1,2,0,56,0,63,0,1,16,221,12,2,0,56,0,63,0,1,16,136,9,2,0,56,0,63,0,1,16,66,1,2,0,56,0,63,0,1,16,57,1,2,0,56,0,63,0,1,16,242,8,2,0,56,0,63,0,1,16,58,0,2,0,56,0,63,0,1,16,1,0,2,0,56,0,63,0,121,16,206,17,2,0,56,0,63,0,1,16,217,0,2,0,56,0,63,0,1,16,45,1,2,0,56,0,63,0,1,16,215,17,2,0,56,0,63,0,1,16,214,12,2,0,56,0,63,0,1,16,67,0,2,0,56,0,63,0,1,16,207,12,2,0,56,0,63,0,1,16,68,8,2,0,56,0,63,0,1,16,16,9,2,0,56,0,63,0,1,16,53,12,2,0,56,0,63,0,1,16,72,1,2,0,56,0,63,0,1,16,193,12,2,0,56,0,63,0,1,16,78,1,2,0,56,0,63,0,1,16,238,0,2,0,56,0,63,0,1,16,10,0,2,0,56,0,63,0,1,16,76,0,2,0,56,0,63,0,1,16,81,1,2,0,56,0,63,0,1,16,79,0,2,0,56,0,63,0,1,16,28,9,2,0,56,0,63,0,1,16,116,12,2,0,56,0,63,0,1,16,34,9,2,0,56,0,63,0,1,16,31,0,2,0,56,0,63,0,1,16,129,1,2,0,56,0,63,0,1,16,12,1,2,0,56,0,63,0,1,16,124,0,2,0,56,0,63,0,1,16,27,1,2,0,56,0,63,0,1,16,52,0,2,0,56,0,63,0,1,16,73,0,2,0,56,0,63,0,1,16,180,1,2,0,56,0,63,0,1,16,138,1,2,0,56,0,63,0,1,16,144,1,2,0,56,0,63,0,1,16,120,1,2,0,56,0,63,0,1,16,46,12,2,0,56,0,63,0,1,16,162,16,2,0,56,0,63,0,1,16,123,1,2,0,56,0,63,0,1,16,135,1,2,0,56,0,63,0,1,16,126,1,2,0,56,0,63,0,1,16,52,9,2,0,56,0,63,0,1,16,239,11,2,0,56,0,63,0,1,16,58,9,2,0,56,0,63,0,1,16,64,9,2,0,56,0,63,0,1,16,142,9,2,0,56,0,63,0,1,16,210,7,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,1,16,20,8,2,0,56,0,63,0,1,16,144,12,2,0,56,0,63,0,1,16,82,0,2,0,56,0,63,0,1,16,208,0,2,0,56,0,63,0,121,16,82,0,2,0,56,0,63,0,1,16,141,1,2,0,56,0,63,0,1,16,132,1,2,0,56,0,63,0,1,16,153,1,2,0,56,0,63,0,1,16,82,9,2,0,56,0,63,0,1,16,60,12,2,0,56,0,63,0,1,16,150,1,2,0,56,0,63,0,1,16,88,9,2,0,56,0,63,0,1,16,94,9,2,0,56,0,63,0,1,16,81,12,2,0,56,0,63,0,1,16,165,1,2,0,56,0,63,0,1,16,106,9,2,0,56,0,63,0,1,16,171,1,2,0,56,0,63,0,1,16,118,0,2,0,56,0,63,0,1,16,168,1,2,0,56,0,63,0,1,16,158,8,2,0,56,0,63,0,1,16,100,9,2,0,56,0,63,0,1,16,159,1,2,0,56,0,63,0,1,16,174,1,2,0,56,0,63,0,1,16,200,12,2,0,56,0,63,0,1,16,124,9,2,0,56,0,63,0,1,16,212,8,2,0,56,0,63,0,1,16,47,20,2,0,56,0,63,0,1,16,205,0,2,0,56,0,63,0,1,16,198,7,2,0,56,0,63,0,121,16,213,7,2,0,56,0,63,0,1,16,216,7,2,0,56,0,63,0,1,16,0,1,2,0,56,0,63,0,1,16,74,8,2,0,56,0,63,0,1,16,25,12,2,0,56,0,63,0,1,16,74,12,2,0,56,0,63,0,1,16,88,0,2,0,56,0,63,0,1,16,25,0,2,0,56,0,63,0,1,16,177,1,2,0,56,0,63,0,1,16,173,16,2,0,56,0,63,0,1,16,183,1,2,0,56,0,63,0,1,16,94,0,2,0,56,0,63,0,1,16,189,1,2,0,56,0,63,0,121,16,4,0,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,121,16,51,19,2,0,56,0,63,0,1,16,135,7,2,0,56,0,63,0,1,16,18,12,2,0,56,0,63,0,1,16,112,0,2,0,56,0,63,0,1,16,84,1,2,0,56,0,63,0,1,16,87,1,2,0,56,0,63,0,1,16,90,1,2,0,56,0,63,0,1,16,93,1,2,0,56,0,63,0,1,16,96,1,2,0,56,0,63,0,1,16,99,1,2,0,56,0,63,0,1,16,102,1,2,0,56,0,63,0,1,16,37,0,2,0,56,0,63,0,1,16,105,1,2,0,56,0,63,0,1,16,108,1,2,0,56,0,63,0,1,16,111,1,2,0,56,0,63,0,1,16,114,1,2,0,56,0,63,0,1,16,117,1,2,0,56,0,63,0,1,16,192,1,2,0,56,0,63,0,1,16,195,1,2,0,56,0,63,0,1,16,198,1,2,0,56,0,63,0,1,16,201,1,2,0,56,0,63,0,1,16,204,1,2,0,56,0,63,0,1,16,207,1,2,0,56,0,63,0,1,16,210,1,2,0,56,0,63,0,1,16,213,1,2,0,56,0,63,0,1,16,216,1,2,0,56,0,63,0,1,16,219,1,2,0,56,0,63,0,1,16,222,1,2,0,56,0,63,0,1,16,225,1,2,0,56,0,63,0,1,16,228,1,2,0,56,0,63,0,1,16,231,1,2,0,56,0,63,0,1,16,234,1,2,0,56,0,63,0,1,16,237,1,2,0,56,0,63,0,1,16,240,1,2,0,56,0,63,0,1,16,243,1,2,0,56,0,63,0,1,16,246,1,2,0,56,0,63,0,1,16,249,1,2,0,56,0,63,0,1,16,252,1,2,0,56,0,63,0,1,16,255,1,2,0,56,0,63,0,1,16,2,2,2,0,56,0,63,0,1,16,5,2,2,0,56,0,63,0,1,16,8,2,2,0,56,0,63,0,1,16,11,2,2,0,56,0,63,0,1,16,14,2,2,0,56,0,63,0,1,16,112,0,2,0,56,0,63,0,1,16,22,0,2,0,56,0,63,0,1,16,4,9,2,0,56,0,63,0,1,16,127,0,2,0,56,0,63,0,1,16,124,0,2,0,56,0,63,0,1,16,4,12,2,0,56,0,63,0,1,16,70,9,2,0,56,0,63,0,121,16,10,16,2,0,56,0,63,0,1,16,115,0,2,0,56,0,63,0,1,16,10,16,2,0,56,0,63,0,1,16,118,0,2,0,56,0,63,0,1,16,130,0,2,0,56,0,63,0,1,16,98,8,2,0,56,0,63,0,1,16,104,2,2,0,56,0,63,0,1,16,19,0,2,0,56,0,63,0,1,16,16,0,2,0,56,0,63,0,1,16,192,7,2,0,56,0,63,0,1,16,121,0,2,0,56,0,63,0,1,16,228,12,2,0,56,0,63,0,1,16,133,0,2,0,56,0,63,0,1,16,140,16,2,0,56,0,63,0,1,16,22,9,2,0,56,0,63,0,1,16,130,9,2,0,56,0,63,0,1,16,28,0,2,0,56,0,63,0,1,16,16,16,2,0,56,0,63,0,1,16,25,0,2,0,56,0,63,0,1,16,39,12,2,0,56,0,63,0,1,16,234,7,2,0,56,0,63,0,1,16,139,0,2,0,56,0,63,0,1,16,151,0,2,0,56,0,63,0,1,16,151,16,2,0,56,0,63,0,1,16,31,0,2,0,56,0,63,0,1,16,228,7,2,0,56,0,63,0,1,16,160,0,2,0,56,0,63,0,1,16,142,0,2,0,56,0,63,0,1,16,148,0,2,0,56,0,63,0,1,16,10,9,2,0,56,0,63,0,1,16,136,0,2,0,56,0,63,0,1,16,145,0,2,0,56,0,63,0,1,16,2,8,2,0,56,0,63,0,121,16,180,7,2,0,56,0,63,0,1,16,180,7,2,0,56,0,63,0,1,16,154,0,2,0,56,0,63,0,1,16,157,0,2,0,56,0,63,0,1,16,40,9,2,0,56,0,63,0,1,16,116,8,2,0,56,0,63,0,1,16,163,0,2,0,56,0,63,0,1,16,60,12,2,0,56,0,63,0,1,16,11,12,2,0,56,0,63,0,1,16,184,16,2,0,56,0,63,0,1,16,169,0,2,0,56,0,63,0,1,16,235,12,2,0,56,0,63,0,1,16,186,7,2,0,56,0,63,0,1,16,166,0,2,0,56,0,63,0,1,16,172,0,2,0,56,0,63,0,1,16,175,0,2,0,56,0,63,0,1,16,9,1,2,0,56,0,63,0,1,16,178,0,2,0,56,0,63,0,1,16,95,12,2,0,56,0,63,0,1,16,181,0,2,0,56,0,63,0,121,16,135,7,2,0,56,0,63,0,121,16,49,0,2,0,56,0,63,0,1,16,184,0,2,0,56,0,63,0,1,16,34,0,2,0,56,0,63,0,1,16,187,0,2,0,56,0,63,0,1,16,21,1,2,0,56,0,63,0,1,16,190,0,2,0,56,0,63,0,1,16,240,7,2,0,56,0,63,0,121,16,232,11,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,1,16,107,2,2,0,56,0,63,0,1,16,193,0,2,0,56,0,63,0,1,16,196,0,2,0,56,0,63,0,1,16,246,7,2,0,56,0,63,0,1,16,199,0,2,0,56,0,63,0,121,16,28,0,2,0,56,0,63,0,1,16,88,12,2,0,56,0,63,0,1,16,202,0,2,0,56,0,63,0,1,16,205,0,2,0,56,0,63,0,1,16,179,12,2,0,56,0,63,0,1,16,208,0,2,0,56,0,63,0,1,16,20,8,2,0,56,0,63,0,1,16,14,8,2,0,56,0,63,0,1,16,246,11,2,0,56,0,63,0,1,16,172,12,2,0,56,0,63,0,1,16,211,0,2,0,56,0,63,0,1,16,214,0,2,0,56,0,63,0,121,16,189,7,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,26,8,2,0,56,0,63,0,1,16,217,0,2,0,56,0,63,0,121,16,144,7,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,220,0,2,0,56,0,63,0,1,16,198,7,2,0,56,0,63,0,1,16,254,8,2,0,56,0,63,0,1,16,216,7,2,0,56,0,63,0,1,16,222,7,2,0,56,0,63,0,1,16,226,0,2,0,56,0,63,0,1,16,137,12,2,0,56,0,63,0,1,16,43,0,2,0,56,0,63,0,1,16,229,0,2,0,56,0,63,0,1,16,238,0,2,0,56,0,63,0,1,16,232,0,2,0,56,0,63,0,1,16,8,8,2,0,56,0,63,0,1,16,223,0,2,0,56,0,63,0,1,16,140,8,2,0,56,0,63,0,1,16,158,12,2,0,56,0,63,0,1,16,40,0,2,0,56,0,63,0,1,16,46,0,2,0,56,0,63,0,1,16,241,0,2,0,56,0,63,0,1,16,227,17,2,0,56,0,63,0,1,16,244,0,2,0,56,0,63,0,1,16,247,0,2,0,56,0,63,0,1,16,86,8,2,0,56,0,63,0,1,16,250,0,2,0,56,0,63,0,1,16,92,8,2,0,56,0,63,0,121,16,25,0,2,0,56,0,63,0,1,16,128,8,2,0,56,0,63,0,1,16,74,8,2,0,56,0,63,0,1,16,32,12,2,0,56,0,63,0,1,16,253,0,2,0,56,0,63,0,1,16,62,8,2,0,56,0,63,0,1,16,123,12,2,0,56,0,63,0,1,16,186,12,2,0,56,0,63,0,1,16,104,8,2,0,56,0,63,0,1,16,80,8,2,0,56,0,63,0,1,16,110,8,2,0,56,0,63,0,1,16,3,1,2,0,56,0,63,0,1,16,0,1,2,0,56,0,63,0,1,16,6,1,2,0,56,0,63,0,1,16,122,8,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,134,8,2,0,56,0,63,0,1,16,67,12,2,0,56,0,63,0,1,16,164,8,2,0,56,0,63,0,1,16,146,8,2,0,56,0,63,0,1,16,49,0,2,0,56,0,63,0,1,16,12,1,2,0,56,0,63,0,1,16,152,8,2,0,56,0,63,0,1,16,18,1,2,0,56,0,63,0,1,16,182,8,2,0,56,0,63,0,1,16,24,1,2,0,56,0,63,0,1,16,7,18,2,0,56,0,63,0,1,16,36,1,2,0,56,0,63,0,1,16,27,1,2,0,56,0,63,0,1,16,30,1,2,0,56,0,63,0,1,16,46,9,2,0,56,0,63,0,1,16,33,1,2,0,56,0,63,0,1,16,188,8,2,0,56,0,63,0,1,16,176,8,2,0,56,0,63,0,1,16,194,8,2,0,56,0,63,0,1,16,55,0,2,0,56,0,63,0,1,16,52,0,2,0,56,0,63,0,1,16,251,17,2,0,56,0,63,0,1,16,39,1,2,0,56,0,63,0,1,16,42,1,2,0,56,0,63,0,1,16,200,8,2,0,56,0,63,0,1,16,252,7,2,0,56,0,63,0,1,16,54,1,2,0,56,0,63,0,1,16,45,1,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,212,8,2,0,56,0,63,0,1,16,165,12,2,0,56,0,63,0,1,16,230,8,2,0,56,0,63,0,1,16,180,7,2,0,56,0,63,0,1,16,76,9,2,0,56,0,63,0,1,16,218,8,2,0,56,0,63,0,1,16,58,0,2,0,56,0,63,0,1,16,109,12,2,0,56,0,63,0,1,16,48,1,2,0,56,0,63,0,1,16,51,1,2,0,56,0,63,0,1,16,61,0,2,0,56,0,63,0,1,16,102,12,2,0,56,0,63,0,1,16,248,8,2,0,56,0,63,0,1,16,224,8,2,0,56,0,63,0,1,16,97,0,2,0,56,0,63,0,1,16,130,12,2,0,56,0,63,0,1,16,64,0,2,0,56,0,63,0,1,16,221,12,2,0,56,0,63,0,1,16,57,1,2,0,56,0,63,0,1,16,136,9,2,0,56,0,63,0,121,16,91,0,2,0,56,0,63,0,1,16,60,1,2,0,56,0,63,0,1,16,66,1,2,0,56,0,63,0,1,16,56,8,2,0,56,0,63,0,1,16,242,8,2,0,56,0,63,0,1,16,236,8,2,0,56,0,63,0,121,16,16,0,2,0,56,0,63,0,1,16,63,1,2,0,56,0,63,0,121,16,153,7,2,0,56,0,63,0,1,16,153,7,2,0,56,0,63,0,1,16,206,8,2,0,56,0,63,0,1,16,69,1,2,0,56,0,63,0,1,16,214,12,2,0,56,0,63,0,1,16,67,0,2,0,56,0,63,0,121,16,206,17,2,0,56,0,63,0,1,16,72,1,2,0,56,0,63,0,1,16,16,9,2,0,56,0,63,0,1,16,53,12,2,0,56,0,63,0,1,16,215,17,2,0,56,0,63,0,1,16,207,12,2,0,56,0,63,0,1,16,193,12,2,0,56,0,63,0,1,16,76,0,2,0,56,0,63,0,1,16,15,1,2,0,56,0,63,0,1,16,78,1,2,0,56,0,63,0,1,16,68,8,2,0,56,0,63,0,1,16,75,1,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,70,0,2,0,56,0,63,0,121,16,67,0,2,0,56,0,63,0,1,16,81,1,2,0,56,0,63,0,1,16,84,1,2,0,56,0,63,0,1,16,87,1,2,0,56,0,63,0,1,16,90,1,2,0,56,0,63,0,1,16,93,1,2,0,56,0,63,0,1,16,96,1,2,0,56,0,63,0,1,16,99,1,2,0,56,0,63,0,1,16,102,1,2,0,56,0,63,0,121,16,37,0,2,0,56,0,63,0,1,16,37,0,2,0,56,0,63,0,1,16,105,1,2,0,56,0,63,0,1,16,108,1,2,0,56,0,63,0,1,16,111,1,2,0,56,0,63,0,1,16,114,1,2,0,56,0,63,0,1,16,117,1,2,0,56,0,63,0,1,16,79,0,2,0,56,0,63,0,121,16,210,7,2,0,56,0,63,0,1,16,28,9,2,0,56,0,63,0,1,16,116,12,2,0,56,0,63,0,1,16,34,9,2,0,56,0,63,0,1,16,120,1,2,0,56,0,63,0,1,16,135,7,2,0,56,0,63,0,1,16,82,0,2,0,56,0,63,0,1,16,46,12,2,0,56,0,63,0,1,16,126,1,2,0,56,0,63,0,1,16,235,0,2,0,56,0,63,0,1,16,129,1,2,0,56,0,63,0,1,16,132,1,2,0,56,0,63,0,1,16,151,12,2,0,56,0,63,0,1,16,135,1,2,0,56,0,63,0,1,16,147,1,2,0,56,0,63,0,1,16,138,1,2,0,56,0,63,0,1,16,64,9,2,0,56,0,63,0,1,16,73,0,2,0,56,0,63,0,1,16,162,16,2,0,56,0,63,0,1,16,144,12,2,0,56,0,63,0,1,16,144,1,2,0,56,0,63,0,121,16,47,20,2,0,56,0,63,0,1,16,47,20,2,0,56,0,63,0,1,16,141,1,2,0,56,0,63,0,1,16,52,9,2,0,56,0,63,0,1,16,58,9,2,0,56,0,63,0,1,16,82,9,2,0,56,0,63,0,1,16,153,1,2,0,56,0,63,0,1,16,85,0,2,0,56,0,63,0,1,16,123,1,2,0,56,0,63,0,1,16,150,1,2,0,56,0,63,0,1,16,156,1,2,0,56,0,63,0,1,16,159,1,2,0,56,0,63,0,1,16,162,1,2,0,56,0,63,0,1,16,81,12,2,0,56,0,63,0,1,16,94,9,2,0,56,0,63,0,1,16,88,9,2,0,56,0,63,0,1,16,165,1,2,0,56,0,63,0,1,16,100,9,2,0,56,0,63,0,1,16,10,0,2,0,56,0,63,0,1,16,10,0,2,0,56,0,63,0,1,16,106,9,2,0,56,0,63,0,121,16,10,0,2,0,56,0,63,0,1,16,171,1,2,0,56,0,63,0,1,16,168,1,2,0,56,0,63,0,1,16,158,8,2,0,56,0,63,0,1,16,174,1,2,0,56,0,63,0,1,16,253,11,2,0,56,0,63,0,1,16,25,12,2,0,56,0,63,0,1,16,200,12,2,0,56,0,63,0,121,16,198,7,2,0,56,0,63,0,1,16,124,9,2,0,56,0,63,0,1,16,1,0,2,0,56,0,63,0,1,16,177,1,2,0,56,0,63,0,1,16,74,12,2,0,56,0,63,0,1,16,173,16,2,0,56,0,63,0,1,16,170,8,2,0,56,0,63,0,1,16,180,1,2,0,56,0,63,0,121,16,239,11,2,0,56,0,63,0,1,16,183,1,2,0,56,0,63,0,1,16,186,1,2,0,56,0,63,0,1,16,88,0,2,0,56,0,63,0,1,16,239,11,2,0,56,0,63,0,1,16,91,0,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,94,0,2,0,56,0,63,0,1,16,189,1,2,0,56,0,63,0,1,16,192,1,2,0,56,0,63,0,1,16,195,1,2,0,56,0,63,0,1,16,198,1,2,0,56,0,63,0,1,16,201,1,2,0,56,0,63,0,1,16,204,1,2,0,56,0,63,0,1,16,207,1,2,0,56,0,63,0,1,16,210,1,2,0,56,0,63,0,1,16,213,1,2,0,56,0,63,0,1,16,216,1,2,0,56,0,63,0,1,16,219,1,2,0,56,0,63,0,1,16,222,1,2,0,56,0,63,0,1,16,225,1,2,0,56,0,63,0,1,16,228,1,2,0,56,0,63,0,1,16,231,1,2,0,56,0,63,0,1,16,234,1,2,0,56,0,63,0,1,16,237,1,2,0,56,0,63,0,1,16,240,1,2,0,56,0,63,0,1,16,243,1,2,0,56,0,63,0,1,16,246,1,2,0,56,0,63,0,1,16,249,1,2,0,56,0,63,0,1,16,252,1,2,0,56,0,63,0,1,16,255,1,2,0,56,0,63,0,1,16,2,2,2,0,56,0,63,0,1,16,5,2,2,0,56,0,63,0,1,16,8,2,2,0,56,0,63,0,1,16,11,2,2,0,56,0,63,0,121,16,4,0,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,121,16,135,7,2,0,56,0,63,0,1,16,135,7,2,0,56,0,63,0,1,16,142,9,2,0,56,0,63,0,1,16,186,7,2,0,56,0,63,0,1,16,18,12,2,0,56,0,63,0,121,16,186,7,2,0,56,0,63,0,1,16,210,7,2,0,56,0,63,0,1,16,14,2,2,0,56,0,63,0,121,16,111,16,2,0,56,0,63,0,121,16,89,19,2,0,56,0,63,0,121,16,113,19,2,0,56,0,63,0,121,16,109,9,2,0,56,0,63,0,121,16,190,19,2,0,56,0,63,0,121,16,1,19,2,0,56,0,63,0,121,16,118,17,2,0,56,0,63,0,121,16,17,19,2,0,56,0,63,0,121,16,162,19,2,0,56,0,63,0,121,16,201,7,2,0,56,0,63,0,121,16,201,7,2,0,56,0,63,0,121,16,234,17,2,0,56,0,63,0,121,16,201,15,78,1,151,9,157,9,163,9,238,12,219,7,169,9,175,9,245,12,252,12,7,12,181,9,3,13,10,13,187,16,198,16,169,15,132,16,187,9,28,16,10,18,22,18,17,13,225,7,14,12,21,12,231,7,24,13,31,13,38,13,235,11,193,9,209,16,199,9,205,9,211,9,28,12,220,16,177,15,143,16,45,13,52,13,217,9,59,13,66,13,35,12,223,9,73,13,80,13,87,13,94,13,101,13,229,9,237,7,235,9,241,9,195,7,243,7,108,13,93,10,115,13,122,13,129,13,136,13,249,7,42,12,255,7,143,13,99,10,5,8,231,16,242,16,105,10,150,13,111,10,11,8,17,8,157,13,117,10,253,16,185,15,8,17,123,10,49,12,23,8,141,7,164,13,171,13,53,8,59,8,178,13,165,10,242,11,171,10,65,8,56,12,177,10,63,12,71,8,19,17,183,10,70,12,77,8,189,10,30,17,37,16,34,18,83,8,185,13,89,8,95,8,192,13,195,10,77,12,201,10,207,10,199,13,101,8,107,8,113,8,41,17,119,8,193,15,206,13,213,13,125,8,213,10,84,12,220,13,227,13,234,13,241,13,91,12,248,13,255,13,6,14,219,10,131,8,13,14,137,8,20,14,143,8,225,10,149,8,27,14,34,14,137,15,52,17,63,17,41,14,48,14,55,14,155,8,231,10,161,8,167,8,62,14,173,8,237,10,69,14,76,14,243,10,179,8,83,14,185,8,249,10,90,14,97,14,191,8,104,14,111,14,118,14,125,14,98,12,197,8,105,12,132,14,203,8,209,8,255,10,215,8,74,17,46,16,46,18,58,18,139,14,5,11,85,17,221,8,227,8,146,14,153,14,177,7,112,12,119,12,126,12,13,0,11,11,17,11,228,11,233,8,23,11,160,14,239,8,167,14,133,12,29,11,174,14,140,12,35,11,245,8,181,14,41,11,47,11,53,11,251,8,188,14,96,17,145,15,107,17,195,14,147,12,59,11,209,15,1,9,7,9,13,9,154,12,202,14,55,16,70,18,65,11,19,9,25,9,209,14,71,11,31,9,216,14,77,11,223,14,230,14,82,18,64,16,94,18,237,14,83,11,244,14,217,15,129,17,140,17,251,14,89,11,2,15,161,12,37,9,242,17,73,16,106,18,9,15,43,9,16,15,49,9,55,9,23,15,30,15,37,15,168,12,207,7,61,9,67,9,225,15,151,17,154,16,95,11,175,12,101,11,233,15,162,17,79,9,107,11,182,12,189,12,113,11,119,11,196,12,85,9,91,9,125,11,44,15,97,9,131,11,103,9,241,15,203,12,137,11,249,11,210,12,143,11,149,11,217,12,51,15,185,11,121,9,191,11,173,17,184,17,153,15,165,16,254,17,19,16,118,18,197,11,58,15,203,11,65,15,72,15,127,9,79,15,86,15,224,12,209,11,215,11,93,15,231,12,100,15,133,9,107,15,130,18,82,16,218,17,114,15,129,15,176,16,195,17,139,9,170,170,232,1,47,0,75,0,79,0,83,0,87,0,91,0,95,0,99,0,103,0,107,0,111,0,115,0,119,0,123,0,127,0,131,0,135,0,139,0,143,0,154,0,158,0,162,0,166,0,170,0,174,0,178,0,182,0,186,0,190,0,194,0,198,0,202,0,206,0,210,0,214,0,218,0,222,0,226,0,230,0,233,0,237,0,241,0,245,0,249,0,253,0,1,1,5,1,9,1,13,1,17,1,21,1,25,1,29,1,33,1,37,1,41,1,45,1,49,1,61,1,65,1,69,1,73,1,77,1,81,1,85,1,89,1,93,1,97,1,110,8,101,1,105,1,109,1,113,1,117,1,121,1,125,1,129,1,133,1,137,1,141,1,145,1,149,1,153,1,157,1,161,1,165,1,169,1,173,1,177,1,181,1,185,1,189,1,193,1,197,1,201,1,205,1,209,1,213,1,217,1,221,1,225,1,229,1,233,1,243,1,247,1,251,1,255,1,3,2,7,2,11,2,15,2,19,2,23,2,27,2,31,2,35,2,39,2,43,2,47,2,51,2,55,2,59,2,63,2,67,2,71,2,75,2,79,2,83,2,87,2,91,2,95,2,99,2,103,2,107,2,111,2,115,2,119,2,123,2,127,2,131,2,135,2,139,2,143,2,147,2,151,2,155,2,159,2,163,2,167,2,171,2,175,2,179,2,183,2,187,2,191,2,195,2,199,2,210,2,214,2,220,2,226,2,236,2,247,2,253,2,7,3,13,3,21,3,30,3,36,3,42,3,48,3,54,3,58,3,62,3,66,3,70,3,74,3,78,3,82,3,86,3,90,3,136,6,94,3,98,3,102,3,106,3,110,3,20,8,114,3,118,3,122,3,126,3,69,5,130,3,134,3,137,3,141,3,145,3,149,3,153,3,157,3,161,3,165,3,169,3,173,3,177,3,181,3,185,3,189,3,193,3,197,3,201,3,205,3,209,3,213,3,217,3,221,3,225,3,229,3,233,3,237,3,241,3,245,3,249,3,253,3,1,4,5,4,9,4,13,4,17,4,21,4,25,4,29,4,33,4,37,4,41,4,45,4,49,4,53,4,57,4,61,4,65,4,69,4,73,4,77,4,81,4,85,4,89,4,93,4,10,5,97,4,101,4,105,4,109,4,113,4,117,4,121,4,125,4,129,4,133,4,137,4,39,10,141,4,145,4,149,4,153,4,157,4,161,4,165,4,169,4,173,4,177,4,181,4,185,4,189,4,193,4,197,4,201,4,205,4,209,4,213,4,217,4,221,4,225,4,229,4,233,4,237,4,241,4,245,4,249,4,253,4,4,5,14,5,21,5,32,5,36,5,40,5,44,5,48,5,52,5,56,5,60,5,64,5,68,5,72,5,76,5,196,11,80,5,84,5,88,5,92,5,96,5,100,5,104,5,108,5,112,5,116,5,120,5,124,5,128,5,132,5,136,5,140,5,144,5,148,5,152,5,156,5,160,5,164,5,168,5,172,5,176,5,180,5,184,5,188,5,192,5,196,5,200,5,204,5,208,5,212,5,216,5,220,5,224,5,228,5,238,5,248,5,255,5,9,6,16,6,23,6,30,6,37,6,44,6,51,6,58,6,65,6,72,6,79,6,86,6,93,6,100,6,107,6,114,6,121,6,128,6,30,11,135,6,139,6,143,6,147,6,151,6,155,6,159,6,163,6,167,6,171,6,175,6,179,6,183,6,187,6,191,6,195,6,199,6,203,6,207,6,211,6,215,6,181,11,219,6,223,6,227,6,231,6,235,6,239,6,243,6,247,6,251,6,255,6,3,7,7,7,11,7,15,7,19,7,23,7,27,7,31,7,35,7,39,7,43,7,47,7,51,7,54,7,58,7,62,7,66,7,209,21,70,7,74,7,78,7,82,7,86,7,90,7,94,7,97,7,101,7,105,7,109,7,113,7,124,7,136,7,148,7,159,7,169,7,188,7,199,7,211,7,221,7,231,7,235,7,239,7,243,7,247,7,251,7,255,7,3,8,7,8,11,8,15,8,19,8,23,8,27,8,31,8,35,8,39,8,43,8,47,8,51,8,55,8,59,8,63,8,67,8,71,8,75,8,79,8,83,8,87,8,91,8,95,8,99,8,103,8,107,8,114,8,126,8,138,8,145,8,154,8,163,8,170,8,181,8,188,8,197,8,204,8,208,8,212,8,216,8,220,8,224,8,170,170,148,20,0,80,153,20,0,80,158,20,0,80,163,20,0,80,168,20,0,80,173,20,0,80,178,20,0,80,183,20,0,80,188,20,0,80,193,20,0,80,198,20,0,80,203,20,0,80,208,20,0,80,213,20,0,80,218,20,0,80,223,20,0,80,228,20,0,80,233,20,0,80,238,20,0,80,243,20,0,80,248,20,0,80,253,20,0,80,2,21,0,80,7,21,0,80,12,21,0,80,17,21,0,80,22,21,0,80,27,21,0,80,32,21,0,80,37,21,0,80,42,21,0,80,47,21,0,80,52,21,0,80,57,21,0,80,62,21,0,80,67,21,0,80,72,21,0,80,77,21,0,80,82,21,0,80,87,21,0,80,92,21,0,80,97,21,0,80,102,21,0,80,107,21,0,80,112,21,0,80,117,21,0,80,122,21,0,80,127,21,0,80,132,21,0,80,137,21,0,80,142,21,0,80,147,21,0,80,152,21,0,80,157,21,0,80,162,21,0,80,167,21,0,80,172,21,0,80,177,21,0,80,182,21,0,80,187,21,0,80,192,21,0,80,197,21,0,80,202,21,0,80,207,21,0,80,212,21,0,80,217,21,0,80,222,21,0,80,227,21,0,80,232,21,0,80,237,21,0,80,242,21,0,80,247,21,0,80,252,21,0,80,1,22,0,80,6,22,0,80,11,22,0,80,16,22,0,80,21,22,0,80,26,22,0,80,31,22,0,80,36,22,0,80,41,22,0,80,46,22,0,80,51,22,0,80,56,22,0,80,61,22,0,80,66,22,0,80,71,22,0,80,76,22,0,80,81,22,0,80,86,22,0,80,91,22,0,80,96,22,0,80,101,22,0,80,106,22,0,80,111,22,0,80,116,22,0,80,121,22,0,80,126,22,0,80,131,22,0,80,136,22,0,80,141,22,0,80,146,22,0,80,151,22,0,80,156,22,0,80,161,22,0,80,166,22,0,80,171,22,0,80,176,22,0,80,181,22,0,80,186,22,0,80,191,22,0,80,196,22,0,80,201,22,0,80,206,22,0,80,211,22,0,80,216,22,0,80,221,22,0,80,226,22,0,80,231,22,0,80,236,22,0,80,241,22,0,80,246,22,0,80,251,22,0,80,0,23,0,80,5,23,0,80,10,23,0,80,15,23,0,80,20,23,0,80,25,23,0,80,30,23,0,80,35,23,0,80,40,23,0,80,45,23,0,80,50,23,0,80,55,23,0,80,60,23,0,80,65,23,0,80,70,23,0,80,75,23,0,80,80,23,0,80,85,23,0,80,90,23,0,80,95,23,0,80,100,23,0,80,105,23,0,80,110,23,0,80,115,23,0,80,120,23,0,80,125,23,0,80,130,23,0,80,135,23,0,80,140,23,0,80,145,23,0,80,150,23,0,80,155,23,0,80,160,23,0,80,165,23,0,80,170,23,0,80,175,23,0,80,180,23,0,80,185,23,0,80,190,23,0,80,195,23,0,80,200,23,0,80,205,23,0,80,210,23,0,80,215,23,0,80,220,23,0,80,225,23,0,80,230,23,0,80,235,23,0,80,240,23,0,80,245,23,0,80,250,23,0,80,255,23,0,80,4,24,0,80,9,24,0,80,14,24,0,80,19,24,0,80,24,24,0,80,29,24,0,80,34,24,0,80,39,24,0,80,44,24,0,80,49,24,0,80,54,24,0,80,59,24,0,80,64,24,0,80,69,24,0,80,74,24,0,80,79,24,0,80,84,24,0,80,89,24,0,80,94,24,0,80,99,24,0,80,104,24,0,80,109,24,0,80,114,24,0,80,119,24,0,80,124,24,0,80,129,24,0,80,134,24,0,80,139,24,0,80,144,24,0,80,149,24,0,80,154,24,0,80,159,24,0,80,164,24,0,80,169,24,0,80,174,24,0,80,179,24,0,80,184,24,0,80,189,24,0,80,194,24,0,80,199,24,0,80,204,24,0,80,209,24,0,80,214,24,0,80,219,24,0,80,224,24,0,80,229,24,0,80,234,24,0,80,239,24,0,80,244,24,0,80,249,24,0,80,254,24,0,80,3,25,0,80,8,25,0,80,13,25,0,80,18,25,0,80,23,25,0,80,28,25,0,80,33,25,0,80,38,25,0,80,43,25,0,80,48,25,0,80,53,25,0,80,58,25,0,80,63,25,0,80,68,25,0,80,73,25,0,80,78,25,0,80,83,25,0,80,88,25,0,80,93,25,0,80,98,25,0,80,103,25,0,80,108,25,0,80,113,25,0,80,118,25,0,80,123,25,0,80,128,25,0,80,133,25,0,80,138,25,0,80,143,25,0,80,148,25,0,80,153,25,0,80,158,25,0,80,163,25,0,80,168,25,0,80,173,25,0,80,178,25,0,80,183,25,0,80,188,25,0,80,193,25,0,80,198,25,0,80,203,25,0,80,208,25,0,80,213,25,0,80,218,25,0,80,223,25,0,80,228,25,0,80,233,25,0,80,238,25,0,80,243,25,0,80,248,25,0,80,253,25,0,80,2,26,0,80,7,26,0,80,12,26,0,80,17,26,0,80,22,26,0,80,27,26,0,80,32,26,0,80,37,26,0,80,42,26,0,80,47,26,0,80,52,26,0,80,57,26,0,80,62,26,0,80,67,26,0,80,72,26,0,80,77,26,0,80,82,26,0,80,87,26,0,80,92,26,0,80,97,26,0,80,102,26,0,80,107,26,0,80,112,26,0,80,117,26,0,80,122,26,0,80,127,26,0,80,132,26,0,80,137,26,0,80,142,26,0,80,147,26,0,80,152,26,0,80,157,26,0,80,162,26,0,80,167,26,0,80,172,26,0,80,177,26,0,80,182,26,0,80,187,26,0,80,192,26,0,80,197,26,0,80,202,26,0,80,207,26,0,80,212,26,0,80,217,26,0,80,222,26,0,80,227,26,0,80,232,26,0,80,237,26,0,80,242,26,0,80,247,26,0,80,252,26,0,80,1,27,0,80,6,27,0,80,11,27,0,80,16,27,0,80,21,27,0,80,26,27,0,80,31,27,0,80,36,27,0,80,41,27,0,80,46,27,0,80,51,27,0,80,56,27,0,80,61,27,0,80,66,27,0,80,71,27,0,80,76,27,0,80,81,27,0,80,86,27,0,80,91,27,0,80,96,27,0,80,101,27,0,80,106,27,0,80,111,27,0,80,116,27,0,80,121,27,0,80,126,27,0,80,131,27,0,80,136,27,0,80,141,27,0,80,146,27,0,80,151,27,0,80,156,27,0,80,161,27,0,80,166,27,0,80,171,27,0,80,176,27,0,80,181,27,0,80,186,27,0,80,191,27,0,80,196,27,0,80,201,27,0,80,206,27,0,80,211,27,0,80,216,27,0,80,221,27,0,80,226,27,0,80,231,27,0,80,236,27,0,80,241,27,0,80,246,27,0,80,251,27,0,80,0,28,0,80,5,28,0,80,10,28,0,80,15,28,0,80,20,28,0,80,25,28,0,80,30,28,0,80,35,28,0,80,40,28,0,80,45,28,0,80,50,28,0,80,55,28,0,80,60,28,0,80,65,28,0,80,70,28,0,80,75,28,0,80,80,28,0,80,85,28,0,80,90,28,0,80,95,28,0,80,100,28,0,80,105,28,0,80,110,28,0,80,115,28,0,80,120,28,0,80,125,28,0,80,130,28,0,80,135,28,0,80,140,28,0,80,145,28,0,80,150,28,0,80,155,28,0,80,160,28,0,80,165,28,0,80,170,28,0,80,175,28,0,80,180,28,0,80,185,28,0,80,190,28,0,80,195,28,0,80,200,28,0,80,205,28,0,80,210,28,0,80,215,28,0,80,220,28,0,80,225,28,0,80,230,28,0,80,235,28,0,80,240,28,0,80,245,28,0,80,250,28,0,80,255,28,0,80,4,29,0,80,9,29,0,80,14,29,0,80,19,29,0,80,24,29,0,80,29,29,0,80,34,29,0,80,39,29,0,80,44,29,0,80,49,29,0,80,54,29,0,80,59,29,0,80,64,29,0,80,69,29,0,80,74,29,0,80,79,29,0,80,84,29,0,80,89,29,0,80,94,29,0,80,99,29,0,80,104,29,0,80,109,29,0,80,114,29,0,80,119,29,0,80,124,29,0,80,129,29,0,80,134,29,0,80,139,29,0,80,144,29,0,80,149,29,0,80,154,29,0,80,159,29,0,80,164,29,0,80,169,29,0,80,174,29,0,80,179,29,0,80,184,29,0,80,189,29,0,80,194,29,0,80,199,29,0,80,204,29,0,80,209,29,0,80,214,29,0,80,219,29,0,80,224,29,0,80,229,29,0,80,234,29,0,80,239,29,0,80,244,29,0,80,249,29,0,80,254,29,0,80,3,30,0,80,8,30,0,80,13,30,0,80,18,30,0,80,23,30,0,80,1,0,235,8,28,30,0,80,144,0,252,8,1,9,6,9,11,9,16,9,21,9,26,9,31,9,36,9,41,9,46,9,51,9,56,9,61,9,66,9,71,9,76,9,81,9,86,9,91,9,96,9,101,9,106,9,111,9,116,9,121,9,126,9,131,9,136,9,141,9,146,9,151,9,156,9,161,9,166,9,172,9,178,9,184,9,190,9,196,9,202,9,208,9,214,9,220,9,226,9,232,9,238,9,244,9,250,9,0,10,6,10,12,10,17,10,22,10,27,10,32,10,37,10,42,10,47,10,52,10,57,10,62,10,67,10,72,10,77,10,82,10,31,2,87,10,91,10,96,10,100,10,105,10,35,2,109,10,113,10,117,10,122,10,127,10,131,10,135,10,139,10,143,10,147,10,151,10,156,10,161,10,165,10,170,10,174,10,178,10,183,10,188,10,192,10,196,10,201,10,205,10,209,10,214,10,218,10,222,10,227,10,232,10,237,10,81,4,241,10,245,10,251,10,0,11,5,11,10,11,15,11,19,11,23,11,28,11,33,11,38,11,43,11,48,11,53,11,58,11,63,11,68,11,73,11,78,11,83,11,88,11,93,11,98,11,103,11,108,11,113,11,118,11,124,11,130,11,136,11,142,11,148,11,154,11,160,11,165,11,170,11,175,11,180,11,185,11,170,170,33,30,0,80,38,30,0,80,43,30,0,80,48,30,0,80,53,30,0,80,58,30,0,80,63,30,0,80,68,30,0,80,73,30,0,80,78,30,0,80,83,30,0,80,88,30,0,80,93,30,0,80,98,30,0,80,103,30,0,80,108,30,0,80,113,30,0,80,118,30,0,80,123,30,0,80,128,30,0,80,133,30,0,80,138,30,0,80,143,30,0,80,148,30,0,80,153,30,0,80,158,30,0,80,163,30,0,80,168,30,0,80,173,30,0,80,178,30,0,80,183,30,0,80,188,30,0,80,193,30,0,80,198,30,0,80,203,30,0,80,208,30,0,80,213,30,0,80,218,30,0,80,223,30,0,80,228,30,0,80,233,30,0,80,238,30,0,80,243,30,0,80,248,30,0,80,253,30,0,80,2,31,0,80,7,31,0,80,12,31,0,80,17,31,0,80,22,31,0,80,27,31,0,80,32,31,0,80,37,31,0,80,42,31,0,80,47,31,0,80,52,31,0,80,57,31,0,80,62,31,0,80,67,31,0,80,72,31,0,80,77,31,0,80,82,31,0,80,87,31,0,80,92,31,0,80,97,31,0,80,102,31,0,80,107,31,0,80,112,31,0,80,117,31,0,80,122,31,0,80,127,31,0,80,132,31,0,80,137,31,0,80,142,31,0,80,147,31,0,80,152,31,0,80,157,31,0,80,162,31,0,80,167,31,0,80,172,31,0,80,177,31,0,80,182,31,0,80,187,31,0,80,192,31,0,80,197,31,0,80,202,31,0,80,207,31,0,80,212,31,0,80,217,31,0,80,222,31,0,80,227,31,0,80,232,31,0,80,237,31,0,80,242,31,0,80,247,31,0,80,252,31,0,80,1,32,0,80,6,32,0,80,11,32,0,80,16,32,0,80,21,32,0,80,26,32,0,80,31,32,0,80,36,32,0,80,41,32,0,80,46,32,0,80,51,32,0,80,56,32,0,80,61,32,0,80,66,32,0,80,71,32,0,80,76,32,0,80,81,32,0,80,86,32,0,80,91,32,0,80,96,32,0,80,101,32,0,80,106,32,0,80,111,32,0,80,116,32,0,80,121,32,0,80,126,32,0,80,131,32,0,80,136,32,0,80,141,32,0,80,146,32,0,80,151,32,0,80,156,32,0,80,161,32,0,80,166,32,0,80,171,32,0,80,176,32,0,80,181,32,0,80,186,32,0,80,191,32,0,80,196,32,0,80,201,32,0,80,206,32,0,80,211,32,0,80,216,32,0,80,221,32,0,80,226,32,0,80,231,32,0,80,236,32,0,80,128,2,200,11,204,11,208,11,212,11,216,11,220,11,224,11,228,11,232,11,236,11,240,11,244,11,248,11,252,11,0,12,4,12,8,12,12,12,16,12,20,12,24,12,28,12,32,12,36,12,40,12,44,12,48,12,52,12,56,12,60,12,64,12,68,12,72,12,76,12,80,12,84,12,88,12,92,12,96,12,100,12,104,12,108,12,112,12,116,12,120,12,124,12,128,12,132,12,136,12,140,12,144,12,148,12,152,12,156,12,160,12,164,12,168,12,172,12,176,12,180,12,184,12,188,12,192,12,196,12,200,12,204,12,208,12,212,12,216,12,220,12,224,12,228,12,232,12,236,12,240,12,244,12,248,12,252,12,0,13,4,13,8,13,12,13,16,13,20,13,24,13,28,13,32,13,36,13,40,13,44,13,48,13,52,13,56,13,60,13,64,13,68,13,72,13,76,13,80,13,84,13,88,13,92,13,96,13,100,13,104,13,108,13,112,13,116,13,120,13,124,13,128,13,132,13,136,13,140,13,144,13,148,13,152,13,156,13,160,13,164,13,168,13,172,13,176,13,180,13,184,13,188,13,192,13,196,13,200,13,204,13,208,13,212,13,216,13,220,13,224,13,228,13,232,13,236,13,240,13,244,13,248,13,252,13,0,14,4,14,8,14,12,14,16,14,20,14,24,14,28,14,32,14,36,14,40,14,44,14,48,14,52,14,56,14,60,14,64,14,68,14,72,14,76,14,80,14,84,14,88,14,92,14,96,14,100,14,104,14,108,14,112,14,116,14,120,14,124,14,128,14,132,14,136,14,140,14,144,14,148,14,152,14,156,14,160,14,164,14,168,14,172,14,210,9,176,14,180,14,252,9,2,10,184,14,188,14,192,14,196,14,200,14,204,14,208,14,212,14,216,14,220,14,224,14,228,14,232,14,236,14,240,14,244,14,248,14,252,14,0,15,4,15,8,15,12,15,16,15,20,15,24,15,28,15,32,15,36,15,40,15,44,15,48,15,52,15,56,15,60,15,64,15,68,15,72,15,76,15,80,15,84,15,88,15,92,15,96,15,100,15,104,15,108,15,112,15,116,15,120,15,124,15,128,15,132,15,136,15,140,15,144,15,148,15,152,15,156,15,160,15,164,15,168,15,172,15,176,15,180,15,184,15,188,15,192,15,196,15,200,15,204,15,208,15,212,15,216,15,220,15,224,15,228,15,232,15,236,15,240,15,244,15,248,15,252,15,0,16,4,16,8,16,12,16,16,16,20,16,24,16,28,16,32,16,36,16,40,16,44,16,48,16,52,16,56,16,60,16,64,16,68,16,72,16,76,16,80,16,84,16,88,16,92,16,96,16,100,16,104,16,108,16,112,16,116,16,120,16,124,16,128,16,132,16,136,16,140,16,144,16,148,16,152,16,156,16,160,16,164,16,125,19,168,16,172,16,176,16,180,16,184,16,188,16,192,16,196,16,200,16,204,16,208,16,212,16,216,16,220,16,224,16,228,16,232,16,236,16,240,16,244,16,248,16,252,16,0,17,4,17,8,17,12,17,16,17,20,17,24,17,28,17,32,17,36,17,40,17,43,17,47,17,51,17,55,17,59,17,63,17,67,17,71,17,75,17,79,17,83,17,87,17,91,17,95,17,99,17,103,17,107,17,111,17,115,17,119,17,214,20,122,17,126,17,130,17,134,17,138,17,142,17,8,21,146,17,150,17,154,17,158,17,162,17,166,17,170,17,174,17,177,17,181,17,185,17,189,17,193,17,197,17,201,17,205,17,209,17,213,17,217,17,221,17,224,17,228,17,232,17,236,17,239,17,243,17,247,17,251,17,255,17,3,18,7,18,11,18,15,18,19,18,23,18,27,18,31,18,35,18,39,18,43,18,47,18,51,18,55,18,59,18,63,18,67,18,71,18,75,18,79,18,83,18,86,18,90,18,94,18,98,18,102,18,106,18,110,18,114,18,118,18,122,18,126,18,130,18,134,18,138,18,142,18,145,18,149,18,153,18,157,18,161,18,165,18,169,18,173,18,177,18,181,18,185,18,189,18,193,18,197,18,201,18,205,18,209,18,213,18,217,18,221,18,225,18,229,18,233,18,237,18,241,18,245,18,249,18,253,18,194,20,1,19,5,19,9,19,13,19,17,19,21,19,25,19,29,19,33,19,37,19,41,19,45,19,49,19,53,19,57,19,61,19,65,19,69,19,73,19,77,19,81,19,84,19,88,19,92,19,96,19,100,19,28,18,104,19,173,16,108,19,112,19,116,19,120,19,124,19,128,19,131,19,135,19,139,19,143,19,147,19,151,19,155,19,159,19,163,19,167,19,171,19,175,19,178,19,182,19,185,19,189,19,193,19,197,19,201,19,205,19,209,19,213,19,217,19,220,19,224,19,228,19,232,19,236,19,240,19,244,19,248,19,251,19,255,19,3,20,7,20,11,20,15,20,19,20,23,20,27,20,31,20,35,20,39,20,43,20,47,20,51,20,55,20,59,20,63,20,67,20,71,20,75,20,78,20,82,20,86,20,90,20,94,20,98,20,102,20,106,20,110,20,114,20,118,20,122,20,126,20,130,20,134,20,138,20,142,20,146,20,150,20,154,20,72,20,158,20,162,20,166,20,170,20,174,20,178,20,182,20,186,20,189,20,193,20,197,20,201,20,205,20,209,20,213,20,217,20,220,20,224,20,228,20,232,20,236,20,240,20,243,20,247,20,251,20,255,20,3,21,7,21,11,21,15,21,19,21,23,21,27,21,31,21,35,21,39,21,43,21,47,21,51,21,55,21,59,21,63,21,67,21,71,21,75,21,79,21,83,21,87,21,91,21,95,21,99,21,102,21,106,21,110,21,113,21,117,21,121,21,125,21,129,21,132,21,136,21,170,170,241,32,0,80,246,32,0,80,251,32,0,80,0,33,0,80,5,33,0,80,10,33,0,80,15,33,0,80,20,33,0,80,25,33,0,80,30,33,0,80,35,33,0,80,40,33,0,80,45,33,0,80,50,33,0,80,55,33,0,80,60,33,0,80,65,33,0,80,70,33,0,80,75,33,0,80,80,33,0,80,85,33,0,80,90,33,0,80,95,33,0,80,100,33,0,80,105,33,0,80,110,33,0,80,115,33,0,80,120,33,0,80,125,33,0,80,130,33,0,80,135,33,0,80,140,33,0,80,145,33,0,80,150,33,0,80,155,33,0,80,160,33,0,80,165,33,0,80,170,33,0,80,175,33,0,80,180,33,0,80,185,33,0,80,190,33,0,80,195,33,0,80,200,33,0,80,205,33,0,80,210,33,0,80,215,33,0,80,220,33,0,80,225,33,0,80,230,33,0,80,235,33,0,80,240,33,0,80,245,33,0,80,250,33,0,80,255,33,0,80,4,34,0,80,9,34,0,80,14,34,0,80,19,34,0,80,24,34,0,80,29,34,0,80,34,34,0,80,39,34,0,80,44,34,0,80,49,34,0,80,54,34,0,80,59,34,0,80,64,34,0,80,69,34,0,80,74,34,0,80,79,34,0,80,84,34,0,80,89,34,0,80,94,34,0,80,99,34,0,80,104,34,0,80,109,34,0,80,114,34,0,80,119,34,0,80,124,34,0,80,129,34,0,80,134,34,0,80,139,34,0,80,144,34,0,80,149,34,0,80,154,34,0,80,159,34,0,80,164,34,0,80,169,34,0,80,174,34,0,80,179,34,0,80,184,34,0,80,189,34,0,80,194,34,0,80,199,34,0,80,204,34,0,80,209,34,0,80,214,34,0,80,219,34,0,80,224,34,0,80,229,34,0,80,234,34,0,80,239,34,0,80,244,34,0,80,249,34,0,80,254,34,0,80,3,35,0,80,8,35,0,80,13,35,0,80,18,35,0,80,23,35,0,80,28,35,0,80,33,35,0,80,38,35,0,80,43,35,0,80,48,35,0,80,53,35,0,80,58,35,0,80,63,35,0,80,68,35,0,80,73,35,0,80,78,35,0,80,83,35,0,80,88,35,0,80,93,35,0,80,98,35,0,80,103,35,0,80,108,35,0,80,113,35,0,80,118,35,0,80,123,35,0,80,128,35,0,80,133,35,0,80,138,35,0,80,143,35,0,80,148,35,0,80,153,35,0,80,158,35,0,80,163,35,0,80,168,35,0,80,173,35,0,80,178,35,0,80,183,35,0,80,188,35,0,80,193,35,0,80,198,35,0,80,203,35,0,80,208,35,0,80,213,35,0,80,218,35,0,80,223,35,0,80,228,35,0,80,233,35,0,80,238,35,0,80,243,35,0,80,248,35,0,80,253,35,0,80,2,36,0,80,7,36,0,80,12,36,0,80,17,36,0,80,22,36,0,80,27,36,0,80,32,36,0,80,37,36,0,80,42,36,0,80,47,36,0,80,52,36,0,80,57,36,0,80,62,36,0,80,67,36,0,80,72,36,0,80,77,36,0,80,82,36,0,80,87,36,0,80,92,36,0,80,97,36,0,80,102,36,0,80,107,36,0,80,112,36,0,80,117,36,0,80,122,36,0,80,127,36,0,80,132,36,0,80,137,36,0,80,142,36,0,80,147,36,0,80,152,36,0,80,157,36,0,80,162,36,0,80,167,36,0,80,172,36,0,80,177,36,0,80,182,36,0,80,187,36,0,80,192,36,0,80,197,36,0,80,202,36,0,80,207,36,0,80,212,36,0,80,217,36,0,80,222,36,0,80,227,36,0,80,232,36,0,80,237,36,0,80,242,36,0,80,247,36,0,80,252,36,0,80,1,37,0,80,6,37,0,80,11,37,0,80,16,37,0,80,21,37,0,80,26,37,0,80,31,37,0,80,36,37,0,80,41,37,0,80,46,37,0,80,51,37,0,80,56,37,0,80,61,37,0,80,66,37,0,80,71,37,0,80,76,37,0,80,81,37,0,80,86,37,0,80,91,37,0,80,96,37,0,80,101,37,0,80,106,37,0,80,111,37,0,80,116,37,0,80,121,37,0,80,126,37,0,80,131,37,0,80,136,37,0,80,141,37,0,80,146,37,0,80,151,37,0,80,156,37,0,80,161,37,0,80,166,37,0,80,171,37,0,80,176,37,0,80,181,37,0,80,186,37,0,80,191,37,0,80,196,37,0,80,201,37,0,80,206,37,0,80,211,37,0,80,216,37,0,80,221,37,0,80,226,37,0,80,231,37,0,80,236,37,0,80,241,37,0,80,246,37,0,80,251,37,0,80,0,38,0,80,5,38,0,80,10,38,0,80,15,38,0,80,20,38,0,80,25,38,0,80,30,38,0,80,35,38,0,80,40,38,0,80,45,38,0,80,50,38,0,80,55,38,0,80,60,38,0,80,65,38,0,80,70,38,0,80,75,38,0,80,80,38,0,80,85,38,0,80,90,38,0,80,95,38,0,80,100,38,0,80,105,38,0,80,110,38,0,80,115,38,0,80,120,38,0,80,125,38,0,80,130,38,0,80,135,38,0,80,140,38,0,80,145,38,0,80,150,38,0,80,155,38,0,80,160,38,0,80,165,38,0,80,170,38,0,80,175,38,0,80,180,38,0,80,185,38,0,80,190,38,0,80,195,38,0,80,200,38,0,80,205,38,0,80,210,38,0,80,215,38,0,80,220,38,0,80,225,38,0,80,230,38,0,80,235,38,0,80,240,38,0,80,245,38,0,80,250,38,0,80,255,38,0,80,4,39,0,80,9,39,0,80,14,39,0,80,19,39,0,80,24,39,0,80,29,39,0,80,34,39,0,80,39,39,0,80,44,39,0,80,49,39,0,80,54,39,0,80,59,39,0,80,64,39,0,80,69,39,0,80,74,39,0,80,79,39,0,80,84,39,0,80,89,39,0,80,94,39,0,80,99,39,0,80,104,39,0,80,109,39,0,80,114,39,0,80,119,39,0,80,124,39,0,80,129,39,0,80,134,39,0,80,139,39,0,80,144,39,0,80,149,39,0,80,154,39,0,80,159,39,0,80,164,39,0,80,169,39,0,80,174,39,0,80,179,39,0,80,184,39,0,80,189,39,0,80,194,39,0,80,199,39,0,80,204,39,0,80,209,39,0,80,214,39,0,80,219,39,0,80,224,39,0,80,229,39,0,80,234,39,0,80,239,39,0,80,244,39,0,80,249,39,0,80,254,39,0,80,3,40,0,80,8,40,0,80,13,40,0,80,18,40,0,80,23,40,0,80,28,40,0,80,33,40,0,80,38,40,0,80,43,40,0,80,48,40,0,80,53,40,0,80,58,40,0,80,63,40,0,80,68,40,0,80,73,40,0,80,78,40,0,80,83,40,0,80,88,40,0,80,93,40,0,80,98,40,0,80,103,40,0,80,108,40,0,80,113,40,0,80,118,40,0,80,123,40,0,80,128,40,0,80,133,40,0,80,138,40,0,80,143,40,0,80,148,40,0,80,153,40,0,80,158,40,0,80,163,40,0,80,168,40,0,80,173,40,0,80,178,40,0,80,183,40,0,80,188,40,0,80,193,40,0,80,198,40,0,80,203,40,0,80,208,40,0,80,213,40,0,80,218,40,0,80,223,40,0,80,228,40,0,80,233,40,0,80,238,40,0,80,243,40,0,80,248,40,0,80,253,40,0,80,2,41,0,80,7,41,0,80,12,41,0,80,17,41,0,80,22,41,0,80,27,41,0,80,32,41,0,80,37,41,0,80,42,41,0,80,47,41,0,80,52,41,0,80,57,41,0,80,62,41,0,80,67,41,0,80,72,41,0,80,77,41,0,80,82,41,0,80,87,41,0,80,92,41,0,80,97,41,0,80,102,41,0,80,107,41,0,80,112,41,0,80,117,41,0,80,122,41,0,80,127,41,0,80,132,41,0,80,137,41,0,80,142,41,0,80,147,41,0,80,152,41,0,80,157,41,0,80,162,41,0,80,167,41,0,80,172,41,0,80,177,41,0,80,182,41,0,80,187,41,0,80,192,41,0,80,197,41,0,80,202,41,0,80,207,41,0,80,212,41,0,80,217,41,0,80,222,41,0,80,227,41,0,80,232,41,0,80,237,41,0,80,242,41,0,80,247,41,0,80,252,41,0,80,1,42,0,80,6,42,0,80,11,42,0,80,16,42,0,80,21,42,0,80,26,42,0,80,31,42,0,80,36,42,0,80,41,42,0,80,46,42,0,80,51,42,0,80,56,42,0,80,61,42,0,80,66,42,0,80,71,42,0,80,76,42,0,80,81,42,0,80,86,42,0,80,91,42,0,80,96,42,0,80,101,42,0,80,106,42,0,80,111,42,0,80,116,42,0,80,121,42,0,80,126,42,0,80,131,42,0,80,136,42,0,80,141,42,0,80,146,42,0,80,151,42,0,80,156,42,0,80,161,42,0,80,166,42,0,80,171,42,0,80,176,42,0,80,181,42,0,80,186,42,0,80,191,42,0,80,196,42,0,80,201,42,0,80,206,42,0,80,211,42,0,80,216,42,0,80,221,42,0,80,226,42,0,80,231,42,0,80,236,42,0,80,241,42,0,80,246,42,0,80,251,42,0,80,0,43,0,80,5,43,0,80,10,43,0,80,15,43,0,80,20,43,0,80,25,43,0,80,30,43,0,80,35,43,0,80,40,43,0,80,45,43,0,80,50,43,0,80,55,43,0,80,60,43,0,80,65,43,0,80,70,43,0,80,75,43,0,80,80,43,0,80,85,43,0,80,90,43,0,80,95,43,0,80,100,43,0,80,105,43,0,80,110,43,0,80,115,43,0,80,120,43,0,80,125,43,0,80,130,43,0,80,135,43,0,80,140,43,0,80,145,43,0,80,150,43,0,80,155,43,0,80,160,43,0,80,165,43,0,80,170,43,0,80,175,43,0,80,180,43,0,80,185,43,0,80,190,43,0,80,195,43,0,80,200,43,0,80,205,43,0,80,210,43,0,80,215,43,0,80,220,43,0,80,225,43,0,80,230,43,0,80,235,43,0,80,240,43,0,80,245,43,0,80,250,43,0,80,255,43,0,80,4,44,0,80,9,44,0,80,14,44,0,80,19,44,0,80,24,44,0,80,29,44,0,80,34,44,0,80,39,44,0,80,44,44,0,80,49,44,0,80,54,44,0,80,59,44,0,80,64,44,0,80,69,44,0,80,74,44,0,80,79,44,0,80,84,44,0,80,89,44,0,80,94,44,0,80,99,44,0,80,104,44,0,80,109,44,0,80,114,44,0,80,119,44,0,80,124,44,0,80,129,44,0,80,134,44,0,80,139,44,0,80,144,44,0,80,149,44,0,80,154,44,0,80,159,44,0,80,164,44,0,80,169,44,0,80,174,44,0,80,179,44,0,80,184,44,0,80,189,44,0,80,194,44,0,80,199,44,0,80,204,44,0,80,209,44,0,80,214,44,0,80,219,44,0,80,224,44,0,80,229,44,0,80,234,44,0,80,239,44,0,80,244,44,0,80,249,44,0,80,254,44,0,80,3,45,0,80,8,45,0,80,13,45,0,80,18,45,0,80,23,45,0,80,28,45,0,80,33,45,0,80,38,45,0,80,43,45,0,80,48,45,0,80,53,45,0,80,58,45,0,80,63,45,0,80,68,45,0,80,73,45,0,80,78,45,0,80,83,45,0,80,88,45,0,80,93,45,0,80,98,45,0,80,103,45,0,80,108,45,0,80,9,0,145,21,153,21,177,21,202,21,213,21,237,21,3,22,20,22,31,22,113,45,0,80,118,45,0,80,123,45,0,80,128,45,0,80,133,45,0,80,138,45,0,80,143,45,0,80,148,45,0,80,153,45,0,80,2,0,59,22,71,22,170,170,158,45,0,80,163,45,0,80,2,0,181,7,90,22,170,170,168,45,0,80,173,45,0,80,7,0,38,0,228,8,240,8,190,11,140,21,53,22,82,22,30,29,0,32,251,31,0,32,253,31,0,32,214,32,0,32,151,36,0,32,165,36,0,32,169,36,0,32,2,0,32,0,99,22,170,170,173,36,0,32,178,45,0,144,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,218,5,0,32,7,0,0,0,147,0,0,0,220,5,0,0,220,5,0,0,88,0,0,0,1,0,0,0,157,3,0,0,110,117,109,98,101,114,105,110,103,83,121,115,116,101,109,115,0,97,100,108,109,0,97,108,103,111,114,105,116,104,109,105,99,0,100,101,115,99,0,114,97,100,105,120,0,97,104,111,109,0,97,114,97,98,0,97,114,97,98,101,120,116,0,97,114,109,110,0,97,114,109,110,108,111,119,0,98,97,108,105,0,98,101,110,103,0,98,104,107,115,0,98,114,97,104,0,99,97,107,109,0,99,104,97,109,0,99,121,114,108,0,100,101,118,97,0,100,105,97,107,0,101,116,104,105,0,102,117,108,108,119,105,100,101,0,103,101,111,114,0,103,111,110,103,0,103,111,110,109,0,103,114,101,107,0,103,114,101,107,108,111,119,0,103,117,106,114,0,103,117,114,117,0,104,97,110,105,100,97,121,115,0,104,97,110,105,100,101,99,0,104,97,110,115,0,104,97,110,115,102,105,110,0,104,97,110,116,0,104,97,110,116,102,105,110,0,104,101,98,114,0,104,109,110,103,0,104,109,110,112,0,106,97,118,97,0,106,112,97,110,0,106,112,97,110,102,105,110,0,106,112,97,110,121,101,97,114,0,107,97,108,105,0,107,97,119,105,0,107,104,109,114,0,107,110,100,97,0,108,97,110,97,0,108,97,110,97,116,104,97,109,0,108,97,111,111,0,108,97,116,110,0,108,101,112,99,0,108,105,109,98,0,109,97,116,104,98,111,108,100,0,109,97,116,104,100,98,108,0,109,97,116,104,109,111,110,111,0,109,97,116,104,115,97,110,98,0,109,97,116,104,115,97,110,115,0,109,108,121,109,0,109,111,100,105,0,109,111,110,103,0,109,114,111,111,0,109,116,101,105,0,109,121,109,114,0,109,121,109,114,115,104,97,110,0,109,121,109,114,116,108,110,103,0,110,97,103,109,0,110,101,119,97,0,110,107,111,111,0,111,108,99,107,0,111,114,121,97,0,111,115,109,97,0,114,111,104,103,0,114,111,109,97,110,0,114,111,109,97,110,108,111,119,0,115,97,117,114,0,115,101,103,109,101,110,116,0,115,104,114,100,0,115,105,110,100,0,115,105,110,104,0,115,111,114,97,0,115,117,110,100,0,116,97,107,114,0,116,97,108,117,0,116,97,109,108,0,116,97,109,108,100,101,99,0,116,101,108,117,0,116,104,97,105,0,116,105,98,116,0,116,105,114,104,0,116,110,115,97,0,118,97,105,105,0,119,97,114,97,0,119,99,104,111,0,170,0,0,37,0,116,0,97,0,109,0,105,0,108,0,0,0,37,0,104,0,101,0,98,0,114,0,101,0,119,0,0,0,37,0,101,0,116,0,104,0,105,0,111,0,112,0,105,0,99,0,0,0,37,0,103,0,101,0,111,0,114,0,103,0,105,0,97,0,110,0,0,0,48,0,49,0,50,0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,0,0,96,6,97,6,98,6,99,6,100,6,101,6,102,6,103,6,104,6,105,6,0,0,240,6,241,6,242,6,243,6,244,6,245,6,246,6,247,6,248,6,249,6,0,0,192,7,193,7,194,7,195,7,196,7,197,7,198,7,199,7,200,7,201,7,0,0,102,9,103,9,104,9,105,9,106,9,107,9,108,9,109,9,110,9,111,9,0,0,230,9,231,9,232,9,233,9,234,9,235,9,236,9,237,9,238,9,239,9,0,0,102,10,103,10,104,10,105,10,106,10,107,10,108,10,109,10,110,10,111,10,0,0,230,10,231,10,232,10,233,10,234,10,235,10,236,10,237,10,238,10,239,10,0,0,102,11,103,11,104,11,105,11,106,11,107,11,108,11,109,11,110,11,111,11,0,0,230,11,231,11,232,11,233,11,234,11,235,11,236,11,237,11,238,11,239,11,0,0,102,12,103,12,104,12,105,12,106,12,107,12,108,12,109,12,110,12,111,12,0,0,230,12,231,12,232,12,233,12,234,12,235,12,236,12,237,12,238,12,239,12,0,0,102,13,103,13,104,13,105,13,106,13,107,13,108,13,109,13,110,13,111,13,0,0,230,13,231,13,232,13,233,13,234,13,235,13,236,13,237,13,238,13,239,13,0,0,80,14,81,14,82,14,83,14,84,14,85,14,86,14,87,14,88,14,89,14,0,0,208,14,209,14,210,14,211,14,212,14,213,14,214,14,215,14,216,14,217,14,0,0,32,15,33,15,34,15,35,15,36,15,37,15,38,15,39,15,40,15,41,15,0,0,64,16,65,16,66,16,67,16,68,16,69,16,70,16,71,16,72,16,73,16,0,0,144,16,145,16,146,16,147,16,148,16,149,16,150,16,151,16,152,16,153,16,0,0,224,23,225,23,226,23,227,23,228,23,229,23,230,23,231,23,232,23,233,23,0,0,16,24,17,24,18,24,19,24,20,24,21,24,22,24,23,24,24,24,25,24,0,0,70,25,71,25,72,25,73,25,74,25,75,25,76,25,77,25,78,25,79,25,0,0,208,25,209,25,210,25,211,25,212,25,213,25,214,25,215,25,216,25,217,25,0,0,128,26,129,26,130,26,131,26,132,26,133,26,134,26,135,26,136,26,137,26,0,0,144,26,145,26,146,26,147,26,148,26,149,26,150,26,151,26,152,26,153,26,0,0,80,27,81,27,82,27,83,27,84,27,85,27,86,27,87,27,88,27,89,27,0,0,176,27,177,27,178,27,179,27,180,27,181,27,182,27,183,27,184,27,185,27,0,0,64,28,65,28,66,28,67,28,68,28,69,28,70,28,71,28,72,28,73,28,0,0,80,28,81,28,82,28,83,28,84,28,85,28,86,28,87,28,88,28,89,28,0,0,7,48,0,78,140,78,9,78,219,86,148,78,109,81,3,78,107,81,93,78,0,0,32,166,33,166,34,166,35,166,36,166,37,166,38,166,39,166,40,166,41,166,0,0,208,168,209,168,210,168,211,168,212,168,213,168,214,168,215,168,216,168,217,168,0,0,0,169,1,169,2,169,3,169,4,169,5,169,6,169,7,169,8,169,9,169,0,0,208,169,209,169,210,169,211,169,212,169,213,169,214,169,215,169,216,169,217,169,0,0,240,169,241,169,242,169,243,169,244,169,245,169,246,169,247,169,248,169,249,169,0,0,80,170,81,170,82,170,83,170,84,170,85,170,86,170,87,170,88,170,89,170,0,0,240,171,241,171,242,171,243,171,244,171,245,171,246,171,247,171,248,171,249,171,0,0,16,255,17,255,18,255,19,255,20,255,21,255,22,255,23,255,24,255,25,255,0,0,37,0,103,0,114,0,101,0,101,0,107,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,37,0,103,0,114,0,101,0,101,0,107,0,45,0,117,0,112,0,112,0,101,0,114,0,0,0,37,0,114,0,111,0,109,0,97,0,110,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,37,0,114,0,111,0,109,0,97,0,110,0,45,0,117,0,112,0,112,0,101,0,114,0,0,0,37,0,97,0,114,0,109,0,101,0,110,0,105,0,97,0,110,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,37,0,97,0,114,0,109,0,101,0,110,0,105,0,97,0,110,0,45,0,117,0,112,0,112,0,101,0,114,0,0,0,37,0,99,0,121,0,114,0,105,0,108,0,108,0,105,0,99,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,1,216,160,220,1,216,161,220,1,216,162,220,1,216,163,220,1,216,164,220,1,216,165,220,1,216,166,220,1,216,167,220,1,216,168,220,1,216,169,220,0,0,3,216,48,221,3,216,49,221,3,216,50,221,3,216,51,221,3,216,52,221,3,216,53,221,3,216,54,221,3,216,55,221,3,216,56,221,3,216,57,221,0,0,4,216,102,220,4,216,103,220,4,216,104,220,4,216,105,220,4,216,106,220,4,216,107,220,4,216,108,220,4,216,109,220,4,216,110,220,4,216,111,220,0,0,4,216,240,220,4,216,241,220,4,216,242,220,4,216,243,220,4,216,244,220,4,216,245,220,4,216,246,220,4,216,247,220,4,216,248,220,4,216,249,220,0,0,4,216,54,221,4,216,55,221,4,216,56,221,4,216,57,221,4,216,58,221,4,216,59,221,4,216,60,221,4,216,61,221,4,216,62,221,4,216,63,221,0,0,4,216,208,221,4,216,209,221,4,216,210,221,4,216,211,221,4,216,212,221,4,216,213,221,4,216,214,221,4,216,215,221,4,216,216,221,4,216,217,221,0,0,4,216,240,222,4,216,241,222,4,216,242,222,4,216,243,222,4,216,244,222,4,216,245,222,4,216,246,222,4,216,247,222,4,216,248,222,4,216,249,222,0,0,5,216,80,220,5,216,81,220,5,216,82,220,5,216,83,220,5,216,84,220,5,216,85,220,5,216,86,220,5,216,87,220,5,216,88,220,5,216,89,220,0,0,5,216,208,220,5,216,209,220,5,216,210,220,5,216,211,220,5,216,212,220,5,216,213,220,5,216,214,220,5,216,215,220,5,216,216,220,5,216,217,220,0,0,5,216,80,222,5,216,81,222,5,216,82,222,5,216,83,222,5,216,84,222,5,216,85,222,5,216,86,222,5,216,87,222,5,216,88,222,5,216,89,222,0,0,5,216,192,222,5,216,193,222,5,216,194,222,5,216,195,222,5,216,196,222,5,216,197,222,5,216,198,222,5,216,199,222,5,216,200,222,5,216,201,222,0,0,5,216,48,223,5,216,49,223,5,216,50,223,5,216,51,223,5,216,52,223,5,216,53,223,5,216,54,223,5,216,55,223,5,216,56,223,5,216,57,223,0,0,6,216,224,220,6,216,225,220,6,216,226,220,6,216,227,220,6,216,228,220,6,216,229,220,6,216,230,220,6,216,231,220,6,216,232,220,6,216,233,220,0,0,6,216,80,221,6,216,81,221,6,216,82,221,6,216,83,221,6,216,84,221,6,216,85,221,6,216,86,221,6,216,87,221,6,216,88,221,6,216,89,221,0,0,7,216,80,220,7,216,81,220,7,216,82,220,7,216,83,220,7,216,84,220,7,216,85,220,7,216,86,220,7,216,87,220,7,216,88,220,7,216,89,220,0,0,7,216,80,221,7,216,81,221,7,216,82,221,7,216,83,221,7,216,84,221,7,216,85,221,7,216,86,221,7,216,87,221,7,216,88,221,7,216,89,221,0,0,7,216,160,221,7,216,161,221,7,216,162,221,7,216,163,221,7,216,164,221,7,216,165,221,7,216,166,221,7,216,167,221,7,216,168,221,7,216,169,221,0,0,7,216,80,223,7,216,81,223,7,216,82,223,7,216,83,223,7,216,84,223,7,216,85,223,7,216,86,223,7,216,87,223,7,216,88,223,7,216,89,223,0,0,26,216,96,222,26,216,97,222,26,216,98,222,26,216,99,222,26,216,100,222,26,216,101,222,26,216,102,222,26,216,103,222,26,216,104,222,26,216,105,222,0,0,26,216,192,222,26,216,193,222,26,216,194,222,26,216,195,222,26,216,196,222,26,216,197,222,26,216,198,222,26,216,199,222,26,216,200,222,26,216,201,222,0,0,26,216,80,223,26,216,81,223,26,216,82,223,26,216,83,223,26,216,84,223,26,216,85,223,26,216,86,223,26,216,87,223,26,216,88,223,26,216,89,223,0,0,53,216,206,223,53,216,207,223,53,216,208,223,53,216,209,223,53,216,210,223,53,216,211,223,53,216,212,223,53,216,213,223,53,216,214,223,53,216,215,223,0,0,53,216,216,223,53,216,217,223,53,216,218,223,53,216,219,223,53,216,220,223,53,216,221,223,53,216,222,223,53,216,223,223,53,216,224,223,53,216,225,223,0,0,53,216,226,223,53,216,227,223,53,216,228,223,53,216,229,223,53,216,230,223,53,216,231,223,53,216,232,223,53,216,233,223,53,216,234,223,53,216,235,223,0,0,53,216,236,223,53,216,237,223,53,216,238,223,53,216,239,223,53,216,240,223,53,216,241,223,53,216,242,223,53,216,243,223,53,216,244,223,53,216,245,223,0,0,53,216,246,223,53,216,247,223,53,216,248,223,53,216,249,223,53,216,250,223,53,216,251,223,53,216,252,223,53,216,253,223,53,216,254,223,53,216,255,223,0,0,56,216,64,221,56,216,65,221,56,216,66,221,56,216,67,221,56,216,68,221,56,216,69,221,56,216,70,221,56,216,71,221,56,216,72,221,56,216,73,221,0,0,56,216,240,222,56,216,241,222,56,216,242,222,56,216,243,222,56,216,244,222,56,216,245,222,56,216,246,222,56,216,247,222,56,216,248,222,56,216,249,222,0,0,57,216,240,220,57,216,241,220,57,216,242,220,57,216,243,220,57,216,244,220,57,216,245,220,57,216,246,220,57,216,247,220,57,216,248,220,57,216,249,220,0,0,58,216,80,221,58,216,81,221,58,216,82,221,58,216,83,221,58,216,84,221,58,216,85,221,58,216,86,221,58,216,87,221,58,216,88,221,58,216,89,221,0,0,62,216,240,223,62,216,241,223,62,216,242,223,62,216,243,223,62,216,244,223,62,216,245,223,62,216,246,223,62,216,247,223,62,216,248,223,62,216,249,223,0,0,106,0,97,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,0,0,122,0,104,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,0,0,41,220,122,0,104,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,110,0,117,0,109,0,98,0,101,0,114,0,105,0,110,0,103,0,45,0,100,0,97,0,121,0,115,0,0,0,45,220,106,0,97,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,45,0,102,0,105,0,110,0,97,0,110,0,99,0,105,0,97,0,108,0,0,0,45,220,122,0,104,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,45,0,102,0,105,0,110,0,97,0,110,0,99,0,105,0,97,0,108,0,0,0,46,220,106,0,97,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,110,0,117,0,109,0,98,0,101,0,114,0,105,0,110,0,103,0,45,0,121,0,101,0,97,0,114,0,45,0,108,0,97,0,116,0,110,0,0,0,50,220,122,0,104,0,95,0,72,0,97,0,110,0,116,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,45,0,102,0,105,0,110,0,97,0,110,0,99,0,105,0,97,0,108,0,0,0,170,170,3,0,54,0,66,0,71,0,0,0,0,112,139,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,17,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,47,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,58,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,10,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,250,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,55,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,91,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,80,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,84,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,126,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,165,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,26,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,80,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,59,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,16,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,187,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,26,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,122,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,101,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,211,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,198,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,113,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,102,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,38,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,99,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,217,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,128,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,253,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,223,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,8,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,206,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,76,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,143,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,181,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,81,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,175,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,132,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,143,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,245,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,157,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,33,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,44,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,201,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,36,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,77,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,11,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,227,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,248,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,55,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,34,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,13,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,168,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,231,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,0,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,164,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,176,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,223,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,234,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,154,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,118,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,189,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,69,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,88,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,124,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,42,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,63,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,237,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,224,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,121,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,160,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,147,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,168,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,179,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,105,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,66,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,252,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,22,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,1,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,135,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,146,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,190,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,212,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,210,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,185,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,110,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,38,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,97,4,0,96,10,0,0,112,88,0,49,0,77,0,82,0,87,0,95,0,100,0,108,0,113,0,118,0,123,0,128,0,133,0,138,0,143,0,148,0,153,0,158,0,167,0,172,0,177,0,182,0,187,0,195,0,200,0,205,0,214,0,222,0,227,0,235,0,240,0,248,0,253,0,2,1,7,1,12,1,17,1,25,1,34,1,39,1,44,1,49,1,54,1,59,1,68,1,73,1,78,1,83,1,88,1,97,1,105,1,114,1,123,1,132,1,137,1,142,1,147,1,152,1,157,1,162,1,171,1,180,1,185,1,190,1,195,1,200,1,205,1,210,1,215,1,221,1,230,1,235,1,243,1,248,1,253,1,2,2,7,2,12,2,17,2,22,2,27,2,35,2,40,2,45,2,50,2,55,2,60,2,65,2,70,2,170,170,157,3,0,32,162,3,0,32,167,3,0,32,172,3,0,32,177,3,0,32,182,3,0,32,187,3,0,32,192,3,0,32,197,3,0,32,202,3,0,32,207,3,0,32,212,3,0,32,217,3,0,32,222,3,0,32,227,3,0,32,232,3,0,32,237,3,0,32,242,3,0,32,247,3,0,32,252,3,0,32,1,4,0,32,6,4,0,32,11,4,0,32,16,4,0,32,21,4,0,32,26,4,0,32,31,4,0,32,36,4,0,32,41,4,0,32,46,4,0,32,51,4,0,32,56,4,0,32,61,4,0,32,66,4,0,32,71,4,0,32,76,4,0,32,81,4,0,32,86,4,0,32,91,4,0,32,96,4,0,32,101,4,0,32,106,4,0,32,111,4,0,32,116,4,0,32,121,4,0,32,126,4,0,32,131,4,0,32,136,4,0,32,141,4,0,32,146,4,0,32,151,4,0,32,156,4,0,32,161,4,0,32,166,4,0,32,171,4,0,32,176,4,0,32,181,4,0,32,186,4,0,32,191,4,0,32,196,4,0,32,201,4,0,32,206,4,0,32,211,4,0,32,216,4,0,32,221,4,0,32,226,4,0,32,231,4,0,32,236,4,0,32,241,4,0,32,246,4,0,32,251,4,0,32,0,5,0,32,5,5,0,32,10,5,0,32,15,5,0,32,20,5,0,32,25,5,0,32,30,5,0,32,35,5,0,32,40,5,0,32,45,5,0,32,50,5,0,32,55,5,0,32,60,5,0,32,65,5,0,32,70,5,0,32,75,5,0,32,80,5,0,32,1,0,32,0,85,5,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,98,3,0,32,7,0,0,0,113,0,0,0,102,3,0,0,102,3,0,0,91,0,0,0,1,0,0,0,123,2,0,0,108,111,99,97,108,101,115,0,97,102,0,97,107,0,97,109,0,97,110,0,97,114,0,97,115,0,97,122,0,98,101,0,98,103,0,98,110,0,98,115,0,99,97,0,99,115,0,99,121,0,100,97,0,100,101,0,101,108,0,101,110,0,101,116,0,101,117,0,102,97,0,102,105,0,102,105,108,0,102,114,0,103,97,0,103,108,0,103,115,119,0,103,117,0,104,101,0,104,105,0,104,114,0,104,117,0,104,121,0,105,97,0,105,100,0,105,111,0,105,115,0,105,116,0,106,97,0,107,97,0,107,107,0,107,109,0,107,110,0,107,111,0,107,121,0,108,105,106,0,108,111,0,108,116,0,108,118,0,109,107,0,109,108,0,109,110,0,109,114,0,109,115,0,109,121,0,110,98,0,110,101,0,110,108,0,110,111,0,111,114,0,112,97,0,112,99,109,0,112,108,0,112,115,0,112,116,0,114,111,0,114,117,0,115,99,0,115,99,110,0,115,100,0,115,105,0,115,107,0,115,108,0,115,113,0,115,114,0,115,118,0,116,97,0,116,101,0,116,104,0,116,107,0,116,114,0,117,103,0,117,107,0,117,114,0,117,122,0,118,105,0,121,117,101,0,122,104,0,122,117,0,114,117,108,101,115,0,115,101,116,48,48,0,115,101,116,48,49,0,115,101,116,48,50,0,115,101,116,48,51,0,115,101,116,48,52,0,115,101,116,48,53,0,115,101,116,48,54,0,115,101,116,48,55,0,115,101,116,48,56,0,115,101,116,48,57,0,115,101,116,49,48,0,115,101,116,49,49,0,115,101,116,49,50,0,115,101,116,49,51,0,115,101,116,49,52,0,115,101,116,49,53,0,115,101,116,49,54,0,115,101,116,49,55,0,115,101,116,49,56,0,115,101,116,49,57,0,115,101,116,50,48,0,115,101,116,50,49,0,170,0,0,111,0,110,0,101,0,0,0,102,0,101,0,119,0,0,0,116,0,119,0,111,0,0,0,109,0,97,0,110,0,121,0,0,0,122,0,101,0,114,0,111,0,0,0,111,0,116,0,104,0,101,0,114,0,0,0,115,0,101,0,116,0,48,0,51,0,0,0,115,0,101,0,116,0,48,0,52,0,0,0,115,0,101,0,116,0,48,0,48,0,0,0,115,0,101,0,116,0,48,0,49,0,0,0,115,0,101,0,116,0,48,0,53,0,0,0,115,0,101,0,116,0,48,0,55,0,0,0,115,0,101,0,116,0,49,0,56,0,0,0,115,0,101,0,116,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,55,0,0,0,115,0,101,0,116,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,53,0,0,0,115,0,101,0,116,0,48,0,50,0,0,0,115,0,101,0,116,0,48,0,54,0,0,0,115,0,101,0,116,0,48,0,56,0,0,0,115,0,101,0,116,0,48,0,57,0,0,0,115,0,101,0,116,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,57,0,0,0,115,0,101,0,116,0,50,0,48,0,0,0,115,0,101,0,116,0,50,0,49,0,0,0,91,0,40,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,67,0,70,0,73,0,76,0,79,0,82,0,85,0,88,0,91,0,60,1,94,0,97,0,100,0,103,0,106,0,110,0,113,0,116,0,119,0,123,0,126,0,129,0,132,0,135,0,138,0,141,0,144,0,147,0,150,0,153,0,156,0,159,0,162,0,165,0,168,0,171,0,174,0,177,0,181,0,184,0,187,0,190,0,193,0,196,0,199,0,202,0,205,0,208,0,211,0,214,0,217,0,220,0,223,0,226,0,230,0,233,0,236,0,239,0,242,0,245,0,248,0,252,0,255,0,2,1,5,1,8,1,11,1,14,1,120,0,17,1,20,1,23,1,26,1,29,1,32,1,35,1,38,1,41,1,44,1,47,1,51,1,54,1,35,0,59,0,47,0,35,0,155,0,47,0,29,0,65,0,35,0,47,0,71,0,89,0,77,0,149,0,53,0,29,0,29,0,35,0,89,0,35,0,35,0,59,0,35,0,53,0,83,0,143,0,29,0,29,0,47,0,119,0,47,0,71,0,29,0,47,0,35,0,41,0,35,0,53,0,131,0,41,0,95,0,29,0,41,0,47,0,41,0,29,0,29,0,41,0,65,0,113,0,107,0,29,0,29,0,47,0,41,0,41,0,35,0,29,0,29,0,35,0,59,0,53,0,35,0,77,0,47,0,83,0,125,0,65,0,29,0,29,0,59,0,101,0,77,0,137,0,29,0,71,0,35,0,29,0,29,0,29,0,41,0,29,0,29,0,29,0,65,0,35,0,29,0,41,0,41,0,41,0,47,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,1,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,18,0,18,0,23,0,3,0,18,0,1,0,1,0,3,0,18,0,23,0,23,0,3,0,1,0,18,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,18,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,9,0,23,0,3,0,1,0,23,0,23,0,3,0,9,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,9,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,5,0,5,0,3,0,1,0,23,0,23,0,3,0,5,0,1,0,5,0,3,0,5,0,5,0,5,0,3,0,5,0,23,0,23,0,3,0,23,0,5,0,5,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,5,0,5,0,3,0,1,0,23,0,23,0,3,0,5,0,1,0,1,0,3,0,5,0,5,0,5,0,3,0,5,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,5,0,5,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,5,0,3,0,1,0,9,0,9,0,3,0,1,0,5,0,5,0,3,0,1,0,23,0,23,0,3,0,9,0,1,0,5,0,3,0,9,0,9,0,9,0,3,0,9,0,5,0,5,0,3,0,9,0,23,0,23,0,3,0,5,0,1,0,5,0,3,0,5,0,9,0,9,0,3,0,5,0,5,0,5,0,3,0,5,0,23,0,23,0,3,0,23,0,1,0,5,0,3,0,23,0,9,0,9,0,3,0,23,0,5,0,5,0,3,0,23,0,23,0,23,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,1,0,1,0,3,0,13,0,5,0,5,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,5,0,1,0,1,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,1,0,1,0,3,0,13,0,5,0,5,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,1,0,9,0,9,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,9,0,5,0,5,0,3,0,9,0,13,0,13,0,3,0,9,0,23,0,23,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,9,0,9,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,18,0,1,0,1,0,3,0,18,0,9,0,9,0,3,0,18,0,5,0,5,0,3,0,18,0,13,0,13,0,3,0,18,0,23,0,23,0,3,0,1,0,9,0,9,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,9,0,5,0,5,0,3,0,9,0,13,0,13,0,3,0,9,0,23,0,23,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,9,0,9,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,18,0,1,0,18,0,3,0,18,0,9,0,18,0,3,0,18,0,5,0,5,0,3,0,18,0,13,0,13,0,3,0,18,0,23,0,23,0,3,0,1,0,9,0,23,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,9,0,5,0,5,0,3,0,9,0,13,0,13,0,3,0,9,0,23,0,23,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,5,0,5,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,9,0,23,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,1,0,0,0,88,1,0,144,3,0,0,0,92,1,0,144,96,1,0,144,100,1,0,144,3,0,0,0,104,1,0,144,108,1,0,144,112,1,0,144,3,0,0,0,116,1,0,144,120,1,0,144,124,1,0,144,3,0,0,0,128,1,0,144,132,1,0,144,136,1,0,144,4,0,0,0,140,1,0,144,144,1,0,144,148,1,0,144,152,1,0,144,4,0,0,0,156,1,0,144,160,1,0,144,164,1,0,144,168,1,0,144,4,0,0,0,172,1,0,144,176,1,0,144,180,1,0,144,184,1,0,144,4,0,0,0,188,1,0,144,192,1,0,144,196,1,0,144,200,1,0,144,9,0,0,0,204,1,0,144,208,1,0,144,212,1,0,144,216,1,0,144,220,1,0,144,224,1,0,144,228,1,0,144,232,1,0,144,236,1,0,144,6,0,0,0,240,1,0,144,244,1,0,144,248,1,0,144,252,1,0,144,0,2,0,144,4,2,0,144,7,0,0,0,8,2,0,144,12,2,0,144,16,2,0,144,20,2,0,144,24,2,0,144,28,2,0,144,32,2,0,144,9,0,0,0,36,2,0,144,40,2,0,144,44,2,0,144,48,2,0,144,52,2,0,144,56,2,0,144,60,2,0,144,64,2,0,144,68,2,0,144,3,0,0,0,72,2,0,144,76,2,0,144,80,2,0,144,3,0,0,0,84,2,0,144,88,2,0,144,92,2,0,144,3,0,0,0,96,2,0,144,100,2,0,144,104,2,0,144,16,0,0,0,108,2,0,144,112,2,0,144,116,2,0,144,120,2,0,144,124,2,0,144,128,2,0,144,132,2,0,144,136,2,0,144,140,2,0,144,144,2,0,144,148,2,0,144,152,2,0,144,156,2,0,144,160,2,0,144,164,2,0,144,168,2,0,144,14,0,0,0,172,2,0,144,176,2,0,144,180,2,0,144,184,2,0,144,188,2,0,144,192,2,0,144,196,2,0,144,200,2,0,144,204,2,0,144,208,2,0,144,212,2,0,144,216,2,0,144,220,2,0,144,224,2,0,144,16,0,0,0,228,2,0,144,232,2,0,144,236,2,0,144,240,2,0,144,244,2,0,144,248,2,0,144,252,2,0,144,0,3,0,144,4,3,0,144,8,3,0,144,12,3,0,144,16,3,0,144,20,3,0,144,24,3,0,144,28,3,0,144,32,3,0,144,17,0,0,0,36,3,0,144,40,3,0,144,44,3,0,144,48,3,0,144,52,3,0,144,56,3,0,144,60,3,0,144,64,3,0,144,68,3,0,144,72,3,0,144,76,3,0,144,80,3,0,144,84,3,0,144,88,3,0,144,92,3,0,144,96,3,0,144,100,3,0,144,20,0,0,0,104,3,0,144,108,3,0,144,112,3,0,144,116,3,0,144,120,3,0,144,124,3,0,144,128,3,0,144,132,3,0,144,136,3,0,144,140,3,0,144,144,3,0,144,148,3,0,144,152,3,0,144,156,3,0,144,160,3,0,144,164,3,0,144,168,3,0,144,172,3,0,144,176,3,0,144,180,3,0,144,23,0,0,0,184,3,0,144,188,3,0,144,192,3,0,144,196,3,0,144,200,3,0,144,204,3,0,144,208,3,0,144,212,3,0,144,216,3,0,144,220,3,0,144,224,3,0,144,228,3,0,144,232,3,0,144,236,3,0,144,240,3,0,144,244,3,0,144,248,3,0,144,252,3,0,144,0,4,0,144,4,4,0,144,8,4,0,144,12,4,0,144,16,4,0,144,22,0,63,1,69,1,75,1,81,1,87,1,93,1,99,1,105,1,111,1,117,1,123,1,129,1,135,1,141,1,147,1,153,1,159,1,165,1,171,1,177,1,183,1,189,1,170,170,123,2,0,128,125,2,0,128,129,2,0,128,133,2,0,128,137,2,0,128,141,2,0,128,146,2,0,128,151,2,0,128,156,2,0,128,161,2,0,128,171,2,0,128,178,2,0,128,186,2,0,128,196,2,0,128,200,2,0,128,204,2,0,128,208,2,0,128,225,2,0,128,240,2,0,128,1,3,0,128,19,3,0,128,40,3,0,128,2,0,32,0,57,1,170,170,161,0,0,80,64,3,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,107,34,0,32,7,0,0,0,29,1,0,0,112,34,0,0,112,34,0,0,219,0,0,0,1,0,0,0,12,34,0,0,108,111,99,97,108,101,115,0,97,102,0,97,107,0,97,109,0,97,110,0,97,114,0,97,114,115,0,97,115,97,0,97,115,116,0,97,122,0,98,97,108,0,98,101,0,98,101,109,0,98,101,122,0,98,103,0,98,104,111,0,98,109,0,98,110,0,98,114,0,98,114,120,0,98,115,0,99,97,0,99,101,0,99,101,98,0,99,103,103,0,99,104,114,0,99,107,98,0,99,115,0,99,121,0,100,97,0,100,111,105,0,100,115,98,0,100,118,0,100,122,0,101,101,0,101,108,0,101,110,0,101,116,0,101,117,0,102,97,0,102,102,0,102,105,0,102,105,108,0,102,111,0,102,114,0,102,117,114,0,102,121,0,103,97,0,103,100,0,103,108,0,103,115,119,0,103,117,0,103,117,119,0,103,118,0,104,97,0,104,97,119,0,104,101,0,104,110,106,0,104,115,98,0,104,117,0,104,121,0,105,97,0,105,100,0,105,105,0,105,110,0,105,111,0,105,115,0,105,116,0,105,117,0,105,119,0,106,97,0,106,98,111,0,106,103,111,0,106,105,0,106,109,99,0,106,118,0,106,119,0,107,97,0,107,97,98,0,107,97,106,0,107,99,103,0,107,100,101,0,107,101,97,0,107,107,0,107,107,106,0,107,108,0,107,109,0,107,110,0,107,111,0,107,115,0,107,115,98,0,107,115,104,0,107,117,0,107,119,0,107,121,0,108,97,103,0,108,98,0,108,103,0,108,105,106,0,108,107,116,0,108,110,0,108,111,0,108,116,0,108,118,0,109,97,115,0,109,103,0,109,103,111,0,109,107,0,109,108,0,109,111,0,109,114,0,109,116,0,109,121,0,110,97,104,0,110,97,113,0,110,98,0,110,100,0,110,108,0,110,110,0,110,110,104,0,110,111,0,110,113,111,0,110,114,0,110,115,111,0,110,121,110,0,111,109,0,111,114,0,111,115,0,111,115,97,0,112,97,0,112,97,112,0,112,99,109,0,112,108,0,112,114,103,0,112,115,0,112,116,0,112,116,95,80,84,0,114,109,0,114,111,102,0,114,111,111,116,0,114,117,0,114,119,107,0,115,97,104,0,115,97,113,0,115,97,116,0,115,99,0,115,99,110,0,115,100,0,115,100,104,0,115,101,0,115,101,104,0,115,101,115,0,115,103,0,115,104,105,0,115,105,0,115,107,0,115,108,0,115,109,97,0,115,109,105,0,115,109,106,0,115,109,110,0,115,109,115,0,115,110,0,115,113,0,115,114,0,115,115,0,115,115,121,0,115,117,0,115,118,0,115,121,114,0,116,97,0,116,101,0,116,101,111,0,116,104,0,116,105,0,116,105,103,0,116,107,0,116,108,0,116,110,0,116,111,0,116,112,105,0,116,114,0,116,115,0,116,122,109,0,117,103,0,117,107,0,117,122,0,118,101,0,118,101,99,0,118,105,0,118,111,0,118,117,110,0,119,97,0,119,97,101,0,120,104,0,120,111,103,0,121,105,0,121,111,0,121,117,101,0,122,104,0,122,117,0,108,111,99,97,108,101,115,95,111,114,100,105,110,97,108,115,0,114,117,108,101,115,0,115,101,116,48,0,111,116,104,101,114,0,115,101,116,49,0,111,110,101,0,115,101,116,49,48,0,115,101,116,49,49,0,115,101,116,49,50,0,122,101,114,111,0,115,101,116,49,51,0,115,101,116,49,52,0,115,101,116,49,53,0,116,119,111,0,115,101,116,49,54,0,115,101,116,49,55,0,102,101,119,0,115,101,116,49,56,0,115,101,116,49,57,0,115,101,116,50,0,115,101,116,50,48,0,109,97,110,121,0,115,101,116,50,49,0,115,101,116,50,50,0,115,101,116,50,51,0,115,101,116,50,52,0,115,101,116,50,53,0,115,101,116,50,54,0,115,101,116,50,55,0,115,101,116,50,56,0,115,101,116,50,57,0,115,101,116,51,0,115,101,116,51,48,0,115,101,116,51,49,0,115,101,116,51,50,0,115,101,116,51,51,0,115,101,116,51,52,0,115,101,116,51,53,0,115,101,116,51,54,0,115,101,116,51,55,0,115,101,116,51,56,0,115,101,116,51,57,0,115,101,116,52,0,115,101,116,52,48,0,115,101,116,52,49,0,115,101,116,52,50,0,115,101,116,52,51,0,115,101,116,52,52,0,115,101,116,52,53,0,115,101,116,52,54,0,115,101,116,52,55,0,115,101,116,52,56,0,115,101,116,52,57,0,115,101,116,53,0,115,101,116,53,48,0,115,101,116,53,49,0,115,101,116,53,50,0,115,101,116,53,51,0,115,101,116,53,52,0,115,101,116,53,53,0,115,101,116,53,54,0,115,101,116,53,55,0,115,101,116,53,56,0,115,101,116,53,57,0,115,101,116,54,0,115,101,116,54,48,0,115,101,116,54,49,0,115,101,116,54,50,0,115,101,116,55,0,115,101,116,56,0,115,101,116,57,0,170,170,170,0,0,115,0,101,0,116,0,55,0,0,0,115,0,101,0,116,0,48,0,0,0,115,0,101,0,116,0,51,0,0,0,115,0,101,0,116,0,49,0,0,0,115,0,101,0,116,0,53,0,0,0,115,0,101,0,116,0,50,0,0,0,115,0,101,0,116,0,52,0,0,0,115,0,101,0,116,0,54,0,0,0,115,0,101,0,116,0,56,0,0,0,115,0,101,0,116,0,57,0,0,0,115,0,101,0,116,0,51,0,57,0,0,0,115,0,101,0,116,0,52,0,49,0,0,0,115,0,101,0,116,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,57,0,0,0,115,0,101,0,116,0,50,0,50,0,0,0,115,0,101,0,116,0,52,0,56,0,0,0,115,0,101,0,116,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,53,0,0,0,115,0,101,0,116,0,49,0,56,0,0,0,115,0,101,0,116,0,50,0,54,0,0,0,115,0,101,0,116,0,50,0,55,0,0,0,115,0,101,0,116,0,51,0,49,0,0,0,115,0,101,0,116,0,51,0,55,0,0,0,115,0,101,0,116,0,53,0,57,0,0,0,115,0,101,0,116,0,54,0,48,0,0,0,115,0,101,0,116,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,55,0,0,0,115,0,101,0,116,0,50,0,48,0,0,0,115,0,101,0,116,0,50,0,49,0,0,0,115,0,101,0,116,0,50,0,51,0,0,0,115,0,101,0,116,0,50,0,52,0,0,0,115,0,101,0,116,0,50,0,53,0,0,0,115,0,101,0,116,0,50,0,56,0,0,0,115,0,101,0,116,0,50,0,57,0,0,0,115,0,101,0,116,0,51,0,48,0,0,0,115,0,101,0,116,0,51,0,50,0,0,0,115,0,101,0,116,0,51,0,51,0,0,0,115,0,101,0,116,0,51,0,52,0,0,0,115,0,101,0,116,0,51,0,53,0,0,0,115,0,101,0,116,0,51,0,54,0,0,0,115,0,101,0,116,0,51,0,56,0,0,0,115,0,101,0,116,0,52,0,48,0,0,0,115,0,101,0,116,0,52,0,50,0,0,0,115,0,101,0,116,0,52,0,51,0,0,0,115,0,101,0,116,0,52,0,52,0,0,0,115,0,101,0,116,0,52,0,53,0,0,0,115,0,101,0,116,0,52,0,54,0,0,0,115,0,101,0,116,0,52,0,55,0,0,0,115,0,101,0,116,0,52,0,57,0,0,0,115,0,101,0,116,0,53,0,48,0,0,0,115,0,101,0,116,0,53,0,49,0,0,0,115,0,101,0,116,0,53,0,50,0,0,0,115,0,101,0,116,0,53,0,51,0,0,0,115,0,101,0,116,0,53,0,52,0,0,0,115,0,101,0,116,0,53,0,53,0,0,0,115,0,101,0,116,0,53,0,54,0,0,0,115,0,101,0,116,0,53,0,55,0,0,0,115,0,101,0,116,0,53,0,56,0,0,0,115,0,101,0,116,0,54,0,49,0,0,0,115,0,101,0,116,0,54,0,50,0,0,0,110,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,0,0,110,0,32,0,61,0,32,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,0,0,110,0,32,0,61,0,32,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,0,0,110,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,0,0,105,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,0,0,110,0,32,0,61,0,32,0,50,0,44,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,51,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,51,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,53,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,53,0,0,0,110,0,32,0,61,0,32,0,49,0,46,0,46,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,126,0,52,0,0,0,110,0,32,0,61,0,32,0,51,0,44,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,0,0,110,0,32,0,61,0,32,0,53,0,44,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,53,0,44,0,32,0,54,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,49,0,0,0,110,0,32,0,61,0,32,0,50,0,44,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,50,0,0,0,110,0,32,0,61,0,32,0,51,0,44,0,49,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,49,0,51,0,0,0,105,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,0,0,105,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,0,0,110,0,32,0,61,0,32,0,48,0,44,0,55,0,44,0,56,0,44,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,55,0,126,0,57,0,0,0,105,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,53,0,44,0,55,0,46,0,46,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,57,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,53,0,44,0,55,0,44,0,56,0,44,0,57,0,44,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,49,0,48,0,0,0,105,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,0,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,51,0,126,0,49,0,57,0,44,0,32,0,50,0,51,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,0,0,105,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,0,0,110,0,32,0,61,0,32,0,49,0,49,0,44,0,56,0,44,0,56,0,48,0,44,0,56,0,48,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,56,0,44,0,32,0,49,0,49,0,44,0,32,0,56,0,48,0,44,0,32,0,56,0,48,0,48,0,0,0,46,220,105,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,49,0,46,0,54,0,0,0,50,220,110,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,54,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,48,0,0,0,52,220,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,52,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,49,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,52,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,49,0,126,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,53,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,126,0,50,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,53,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,48,0,126,0,51,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,53,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,49,0,126,0,51,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,52,0,126,0,49,0,56,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,54,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,110,0,32,0,61,0,32,0,49,0,32,0,111,0,114,0,32,0,116,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,49,0,46,0,54,0,0,0,55,220,110,0,32,0,61,0,32,0,49,0,49,0,44,0,56,0,44,0,56,0,48,0,46,0,46,0,56,0,57,0,44,0,56,0,48,0,48,0,46,0,46,0,56,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,56,0,44,0,32,0,49,0,49,0,44,0,32,0,56,0,48,0,126,0,56,0,57,0,44,0,32,0,56,0,48,0,48,0,126,0,56,0,48,0,51,0,0,0,56,220,105,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,126,0,48,0,46,0,48,0,52,0,0,0,56,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,48,0,126,0,50,0,52,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,56,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,49,0,126,0,50,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,57,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,50,0,44,0,32,0,52,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,58,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,44,0,32,0,52,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,58,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,58,220,102,0,32,0,33,0,61,0,32,0,48,0,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,60,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,52,0,44,0,32,0,54,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,60,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,54,0,44,0,32,0,57,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,61,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,44,0,32,0,51,0,44,0,32,0,53,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,62,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,52,0,126,0,49,0,48,0,44,0,32,0,49,0,52,0,126,0,50,0,49,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,64,220,105,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,50,0,48,0,44,0,52,0,48,0,44,0,54,0,48,0,44,0,56,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,65,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,55,0,44,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,73,220,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,73,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,73,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,74,220,105,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,105,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,48,0,46,0,48,0,48,0,126,0,48,0,46,0,48,0,53,0,0,0,75,220,110,0,32,0,61,0,32,0,53,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,53,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,53,0,44,0,32,0,49,0,48,0,53,0,44,0,32,0,50,0,48,0,53,0,44,0,32,0,51,0,48,0,53,0,44,0,32,0,52,0,48,0,53,0,44,0,32,0,53,0,48,0,53,0,44,0,32,0,54,0,48,0,53,0,44,0,32,0,55,0,48,0,53,0,44,0,32,0,49,0,48,0,48,0,53,0,44,0,32,0,38,32,0,0,76,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,49,0,126,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,76,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,50,0,48,0,49,0,44,0,32,0,51,0,48,0,49,0,44,0,32,0,52,0,48,0,49,0,44,0,32,0,53,0,48,0,49,0,44,0,32,0,54,0,48,0,49,0,44,0,32,0,55,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,76,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,50,0,48,0,50,0,44,0,32,0,51,0,48,0,50,0,44,0,32,0,52,0,48,0,50,0,44,0,32,0,53,0,48,0,50,0,44,0,32,0,54,0,48,0,50,0,44,0,32,0,55,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,78,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,54,0,44,0,57,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,44,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,54,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,54,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,54,0,44,0,32,0,51,0,57,0,44,0,32,0,49,0,48,0,54,0,44,0,32,0,49,0,48,0,48,0,54,0,44,0,32,0,38,32,0,0,78,220,110,0,32,0,61,0,32,0,49,0,44,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,78,220,110,0,32,0,61,0,32,0,50,0,44,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,50,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,48,0,0,0,79,220,118,0,32,0,33,0,61,0,32,0,48,0,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,51,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,50,0,51,0,44,0,32,0,51,0,51,0,44,0,32,0,52,0,51,0,44,0,32,0,53,0,51,0,44,0,32,0,54,0,51,0,44,0,32,0,55,0,51,0,44,0,32,0,56,0,51,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,0,0,81,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,81,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,52,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,44,0,32,0,50,0,52,0,44,0,32,0,51,0,52,0,44,0,32,0,52,0,52,0,44,0,32,0,53,0,52,0,44,0,32,0,54,0,52,0,44,0,32,0,55,0,52,0,44,0,32,0,56,0,52,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,52,0,44,0,32,0,38,32,0,0,82,220,110,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,84,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,57,0,44,0,32,0,50,0,50,0,126,0,50,0,57,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,57,0,44,0,32,0,49,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,50,0,44,0,32,0,38,32,0,0,85,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,48,0,44,0,32,0,51,0,57,0,44,0,32,0,52,0,57,0,44,0,32,0,53,0,57,0,44,0,32,0,54,0,57,0,44,0,32,0,55,0,57,0,44,0,32,0,49,0,48,0,57,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,91,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,93,220,105,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,54,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,52,0,48,0,44,0,54,0,48,0,44,0,57,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,54,0,44,0,32,0,49,0,54,0,44,0,32,0,50,0,54,0,44,0,32,0,51,0,54,0,44,0,32,0,52,0,48,0,44,0,32,0,52,0,54,0,44,0,32,0,53,0,54,0,44,0,32,0,49,0,48,0,54,0,44,0,32,0,49,0,48,0,48,0,54,0,44,0,32,0,38,32,0,0,98,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,102,220,110,0,32,0,61,0,32,0,49,0,46,0,46,0,52,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,46,0,46,0,52,0,44,0,50,0,49,0,46,0,46,0,50,0,52,0,44,0,52,0,49,0,46,0,46,0,52,0,52,0,44,0,54,0,49,0,46,0,46,0,54,0,52,0,44,0,56,0,49,0,46,0,46,0,56,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,126,0,52,0,44,0,32,0,50,0,49,0,126,0,50,0,52,0,44,0,32,0,52,0,49,0,126,0,52,0,52,0,44,0,32,0,54,0,49,0,126,0,54,0,52,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,104,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,44,0,32,0,50,0,50,0,126,0,50,0,52,0,44,0,32,0,51,0,50,0,126,0,51,0,52,0,44,0,32,0,52,0,50,0,126,0,52,0,52,0,44,0,32,0,53,0,50,0,126,0,53,0,52,0,44,0,32,0,54,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,107,220,110,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,108,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,48,0,44,0,50,0,48,0,44,0,52,0,48,0,44,0,54,0,48,0,44,0,56,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,48,0,44,0,32,0,52,0,48,0,44,0,32,0,54,0,48,0,44,0,32,0,56,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,50,0,48,0,44,0,32,0,49,0,52,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,111,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,44,0,50,0,44,0,53,0,44,0,55,0,44,0,56,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,48,0,44,0,53,0,48,0,44,0,55,0,48,0,44,0,56,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,44,0,32,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,49,0,44,0,32,0,49,0,50,0,44,0,32,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,48,0,126,0,50,0,50,0,44,0,32,0,50,0,53,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,114,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,48,0,51,0,126,0,49,0,49,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,117,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,55,0,44,0,56,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,55,0,44,0,49,0,56,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,50,0,55,0,44,0,32,0,50,0,56,0,44,0,32,0,51,0,55,0,44,0,32,0,51,0,56,0,44,0,32,0,52,0,55,0,44,0,32,0,52,0,56,0,44,0,32,0,53,0,55,0,44,0,32,0,53,0,56,0,44,0,32,0,54,0,55,0,44,0,32,0,54,0,56,0,44,0,32,0,55,0,55,0,44,0,32,0,55,0,56,0,44,0,32,0,56,0,55,0,44,0,32,0,56,0,56,0,44,0,32,0,49,0,48,0,55,0,44,0,32,0,49,0,48,0,48,0,55,0,44,0,32,0,38,32,0,0,117,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,44,0,50,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,44,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,44,0,32,0,50,0,49,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,49,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,49,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,49,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,49,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,49,0,44,0,32,0,55,0,50,0,44,0,32,0,56,0,49,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,117,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,44,0,51,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,44,0,49,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,51,0,44,0,32,0,50,0,50,0,44,0,32,0,50,0,51,0,44,0,32,0,51,0,50,0,44,0,32,0,51,0,51,0,44,0,32,0,52,0,50,0,44,0,32,0,52,0,51,0,44,0,32,0,53,0,50,0,44,0,32,0,53,0,51,0,44,0,32,0,54,0,50,0,44,0,32,0,54,0,51,0,44,0,32,0,55,0,50,0,44,0,32,0,55,0,51,0,44,0,32,0,56,0,50,0,44,0,32,0,56,0,51,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,119,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,49,0,126,0,50,0,54,0,44,0,32,0,49,0,49,0,49,0,44,0,32,0,49,0,48,0,49,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,119,220,110,0,32,0,61,0,32,0,50,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,48,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,0,0,121,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,56,0,44,0,32,0,49,0,48,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,126,0,51,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,49,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,49,0,126,0,50,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,44,0,32,0,54,0,44,0,32,0,57,0,44,0,32,0,49,0,52,0,44,0,32,0,49,0,54,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,52,0,44,0,32,0,50,0,54,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,52,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,52,0,44,0,32,0,48,0,46,0,54,0,44,0,32,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,52,0,44,0,32,0,49,0,46,0,54,0,44,0,32,0,49,0,46,0,57,0,44,0,32,0,50,0,46,0,52,0,44,0,32,0,50,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,52,0,44,0,32,0,49,0,48,0,48,0,46,0,52,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,52,0,44,0,32,0,38,32,0,0,123,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,49,0,126,0,49,0,57,0,44,0,32,0,49,0,49,0,49,0,126,0,49,0,49,0,55,0,44,0,32,0,49,0,48,0,49,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,126,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,126,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,126,0,50,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,126,220,110,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,111,0,114,0,32,0,105,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,49,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,49,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,49,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,131,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,126,0,51,0,46,0,52,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,131,220,110,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,48,0,51,0,126,0,49,0,48,0,57,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,132,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,132,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,56,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,132,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,53,0,46,0,46,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,133,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,49,0,126,0,50,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,57,0,44,0,32,0,50,0,46,0,49,0,126,0,50,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,133,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,48,0,126,0,51,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,133,220,110,0,32,0,61,0,32,0,51,0,46,0,46,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,54,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,48,0,0,0,134,220,110,0,32,0,61,0,32,0,51,0,46,0,46,0,49,0,48,0,44,0,49,0,51,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,51,0,126,0,49,0,57,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,57,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,0,0,135,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,135,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,136,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,49,0,126,0,50,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,136,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,48,0,126,0,51,0,52,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,136,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,48,0,44,0,32,0,49,0,48,0,48,0,126,0,49,0,48,0,54,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,138,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,139,220,110,0,32,0,61,0,32,0,55,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,55,0,126,0,49,0,48,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,44,0,32,0,57,0,46,0,48,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,48,0,44,0,32,0,57,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,57,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,48,0,48,0,48,0,0,0,140,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,56,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,140,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,50,0,126,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,141,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,57,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,57,0,44,0,32,0,50,0,50,0,126,0,50,0,57,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,50,0,46,0,48,0,44,0,32,0,38,32,0,0,141,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,54,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,57,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,44,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,54,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,48,0,44,0,32,0,50,0,54,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,48,0,44,0,32,0,51,0,54,0,44,0,32,0,51,0,57,0,44,0,32,0,52,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,143,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,44,0,50,0,51,0,44,0,52,0,51,0,44,0,54,0,51,0,44,0,56,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,50,0,51,0,44,0,32,0,52,0,51,0,44,0,32,0,54,0,51,0,44,0,32,0,56,0,51,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,50,0,51,0,44,0,32,0,49,0,52,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,52,0,51,0,46,0,48,0,44,0,32,0,54,0,51,0,46,0,48,0,44,0,32,0,56,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,50,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,145,220,110,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,44,0,32,0,49,0,49,0,126,0,50,0,52,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,57,0,46,0,48,0,44,0,32,0,50,0,48,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,50,0,52,0,46,0,48,0,0,0,146,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,51,0,44,0,52,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,32,0,61,0,32,0,49,0,48,0,48,0,44,0,50,0,48,0,48,0,44,0,51,0,48,0,48,0,44,0,52,0,48,0,48,0,44,0,53,0,48,0,48,0,44,0,54,0,48,0,48,0,44,0,55,0,48,0,48,0,44,0,56,0,48,0,48,0,44,0,57,0,48,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,49,0,51,0,44,0,32,0,49,0,52,0,44,0,32,0,50,0,51,0,44,0,32,0,50,0,52,0,44,0,32,0,51,0,51,0,44,0,32,0,51,0,52,0,44,0,32,0,52,0,51,0,44,0,32,0,52,0,52,0,44,0,32,0,53,0,51,0,44,0,32,0,53,0,52,0,44,0,32,0,54,0,51,0,44,0,32,0,54,0,52,0,44,0,32,0,55,0,51,0,44,0,32,0,55,0,52,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,0,0,146,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,33,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,53,0,46,0,46,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,147,220,118,0,32,0,33,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,33,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,149,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,53,0,126,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,53,0,126,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,53,0,126,0,50,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,150,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,44,0,55,0,49,0,44,0,57,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,51,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,53,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,150,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,44,0,55,0,50,0,44,0,57,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,51,0,50,0,46,0,48,0,44,0,32,0,52,0,50,0,46,0,48,0,44,0,32,0,53,0,50,0,46,0,48,0,44,0,32,0,54,0,50,0,46,0,48,0,44,0,32,0,56,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,50,0,46,0,48,0,44,0,32,0,38,32,0,0,154,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,51,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,53,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,55,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,158,220,110,0,32,0,33,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,44,0,50,0,49,0,44,0,52,0,49,0,44,0,54,0,49,0,44,0,56,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,50,0,49,0,44,0,32,0,49,0,52,0,49,0,44,0,32,0,49,0,54,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,49,0,46,0,48,0,44,0,32,0,49,0,52,0,49,0,46,0,48,0,44,0,32,0,49,0,54,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,158,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,51,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,53,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,55,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,163,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,50,0,48,0,49,0,44,0,32,0,51,0,48,0,49,0,44,0,32,0,52,0,48,0,49,0,44,0,32,0,53,0,48,0,49,0,44,0,32,0,54,0,48,0,49,0,44,0,32,0,55,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,163,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,50,0,48,0,50,0,44,0,32,0,51,0,48,0,50,0,44,0,32,0,52,0,48,0,50,0,44,0,32,0,53,0,48,0,50,0,44,0,32,0,54,0,48,0,50,0,44,0,32,0,55,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,44,0,32,0,49,0,46,0,50,0,44,0,32,0,50,0,46,0,50,0,44,0,32,0,51,0,46,0,50,0,44,0,32,0,52,0,46,0,50,0,44,0,32,0,53,0,46,0,50,0,44,0,32,0,54,0,46,0,50,0,44,0,32,0,55,0,46,0,50,0,44,0,32,0,49,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,50,0,44,0,32,0,38,32,0,0,165,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,44,0,32,0,50,0,50,0,126,0,50,0,52,0,44,0,32,0,51,0,50,0,126,0,51,0,52,0,44,0,32,0,52,0,50,0,126,0,52,0,52,0,44,0,32,0,53,0,50,0,126,0,53,0,52,0,44,0,32,0,54,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,50,0,52,0,46,0,48,0,44,0,32,0,51,0,50,0,46,0,48,0,44,0,32,0,51,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,50,0,46,0,48,0,44,0,32,0,38,32,0,0,171,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,48,0,126,0,49,0,48,0,50,0,44,0,32,0,50,0,48,0,48,0,126,0,50,0,48,0,50,0,44,0,32,0,51,0,48,0,48,0,126,0,51,0,48,0,50,0,44,0,32,0,52,0,48,0,48,0,126,0,52,0,48,0,50,0,44,0,32,0,53,0,48,0,48,0,126,0,53,0,48,0,50,0,44,0,32,0,54,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,175,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,48,0,126,0,50,0,48,0,44,0,32,0,51,0,48,0,44,0,32,0,52,0,48,0,44,0,32,0,53,0,48,0,44,0,32,0,54,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,180,220,101,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,101,0,32,0,33,0,61,0,32,0,48,0,46,0,46,0,53,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,54,0,44,0,32,0,50,0,99,0,54,0,44,0,32,0,51,0,99,0,54,0,44,0,32,0,52,0,99,0,54,0,44,0,32,0,53,0,99,0,54,0,44,0,32,0,54,0,99,0,54,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,99,0,54,0,44,0,32,0,49,0,46,0,49,0,99,0,54,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,99,0,54,0,44,0,32,0,50,0,46,0,49,0,99,0,54,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,99,0,54,0,44,0,32,0,51,0,46,0,49,0,99,0,54,0,44,0,32,0,38,32,0,0,189,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,44,0,57,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,48,0,46,0,46,0,49,0,57,0,44,0,55,0,48,0,46,0,46,0,55,0,57,0,44,0,57,0,48,0,46,0,46,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,57,0,44,0,32,0,50,0,51,0,44,0,32,0,50,0,52,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,51,0,44,0,32,0,51,0,52,0,44,0,32,0,51,0,57,0,44,0,32,0,52,0,51,0,44,0,32,0,52,0,52,0,44,0,32,0,52,0,57,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,50,0,52,0,46,0,48,0,44,0,32,0,50,0,57,0,46,0,48,0,44,0,32,0,51,0,51,0,46,0,48,0,44,0,32,0,51,0,52,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,195,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,51,0,44,0,32,0,50,0,99,0,51,0,44,0,32,0,51,0,99,0,51,0,44,0,32,0,52,0,99,0,51,0,44,0,32,0,53,0,99,0,51,0,44,0,32,0,54,0,99,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,126,0,51,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,49,0,46,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,49,0,99,0,51,0,44,0,32,0,38,32,0,0,195,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,198,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,51,0,44,0,32,0,50,0,99,0,51,0,44,0,32,0,51,0,99,0,51,0,44,0,32,0,52,0,99,0,51,0,44,0,32,0,53,0,99,0,51,0,44,0,32,0,54,0,99,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,49,0,46,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,49,0,99,0,51,0,44,0,32,0,38,32,0,0,198,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,32,0,111,0,114,0,32,0,118,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,50,0,48,0,51,0,44,0,32,0,50,0,48,0,52,0,44,0,32,0,51,0,48,0,51,0,44,0,32,0,51,0,48,0,52,0,44,0,32,0,52,0,48,0,51,0,44,0,32,0,52,0,48,0,52,0,44,0,32,0,53,0,48,0,51,0,44,0,32,0,53,0,48,0,52,0,44,0,32,0,54,0,48,0,51,0,44,0,32,0,54,0,48,0,52,0,44,0,32,0,55,0,48,0,51,0,44,0,32,0,55,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,200,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,53,0,46,0,46,0,57,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,200,220,116,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,116,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,116,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,207,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,51,0,44,0,32,0,50,0,99,0,51,0,44,0,32,0,51,0,99,0,51,0,44,0,32,0,52,0,99,0,51,0,44,0,32,0,53,0,99,0,51,0,44,0,32,0,54,0,99,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,49,0,46,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,49,0,99,0,51,0,44,0,32,0,38,32,0,0,225,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,118,0,32,0,33,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,225,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,44,0,32,0,50,0,50,0,126,0,50,0,52,0,44,0,32,0,51,0,50,0,126,0,51,0,52,0,44,0,32,0,52,0,50,0,126,0,52,0,52,0,44,0,32,0,53,0,50,0,126,0,53,0,52,0,44,0,32,0,54,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,52,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,52,0,44,0,32,0,50,0,46,0,50,0,126,0,50,0,46,0,52,0,44,0,32,0,51,0,46,0,50,0,126,0,51,0,46,0,52,0,44,0,32,0,52,0,46,0,50,0,126,0,52,0,46,0,52,0,44,0,32,0,53,0,46,0,50,0,44,0,32,0,49,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,50,0,44,0,32,0,38,32,0,0,235,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,48,0,126,0,50,0,48,0,44,0,32,0,51,0,48,0,44,0,32,0,52,0,48,0,44,0,32,0,53,0,48,0,44,0,32,0,54,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,247,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,50,0,48,0,51,0,44,0,32,0,50,0,48,0,52,0,44,0,32,0,51,0,48,0,51,0,44,0,32,0,51,0,48,0,52,0,44,0,32,0,52,0,48,0,51,0,44,0,32,0,52,0,48,0,52,0,44,0,32,0,53,0,48,0,51,0,44,0,32,0,53,0,48,0,52,0,44,0,32,0,54,0,48,0,51,0,44,0,32,0,54,0,48,0,52,0,44,0,32,0,55,0,48,0,51,0,44,0,32,0,55,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,51,0,44,0,32,0,48,0,46,0,52,0,44,0,32,0,49,0,46,0,51,0,44,0,32,0,49,0,46,0,52,0,44,0,32,0,50,0,46,0,51,0,44,0,32,0,50,0,46,0,52,0,44,0,32,0,51,0,46,0,51,0,44,0,32,0,51,0,46,0,52,0,44,0,32,0,52,0,46,0,51,0,44,0,32,0,52,0,46,0,52,0,44,0,32,0,53,0,46,0,51,0,44,0,32,0,53,0,46,0,52,0,44,0,32,0,54,0,46,0,51,0,44,0,32,0,54,0,46,0,52,0,44,0,32,0,55,0,46,0,51,0,44,0,32,0,55,0,46,0,52,0,44,0,32,0,49,0,48,0,46,0,51,0,44,0,32,0,49,0,48,0,48,0,46,0,51,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,51,0,44,0,32,0,38,32,0,0,19,221,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,44,0,50,0,50,0,44,0,52,0,50,0,44,0,54,0,50,0,44,0,56,0,50,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,49,0,48,0,48,0,48,0,46,0,46,0,50,0,48,0,48,0,48,0,48,0,44,0,52,0,48,0,48,0,48,0,48,0,44,0,54,0,48,0,48,0,48,0,48,0,44,0,56,0,48,0,48,0,48,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,50,0,50,0,44,0,32,0,49,0,52,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,52,0,50,0,46,0,48,0,44,0,32,0,54,0,50,0,46,0,48,0,44,0,32,0,56,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,50,0,50,0,46,0,48,0,44,0,32,0,49,0,52,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,29,221,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,61,0,32,0,49,0,44,0,50,0,44,0,51,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,33,0,61,0,32,0,52,0,44,0,54,0,44,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,33,0,61,0,32,0,52,0,44,0,54,0,44,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,51,0,44,0,32,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,48,0,126,0,49,0,51,0,44,0,32,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,48,0,44,0,32,0,50,0,49,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,51,0,44,0,32,0,48,0,46,0,53,0,44,0,32,0,48,0,46,0,55,0,44,0,32,0,48,0,46,0,56,0,44,0,32,0,49,0,46,0,48,0,126,0,49,0,46,0,51,0,44,0,32,0,49,0,46,0,53,0,44,0,32,0,49,0,46,0,55,0,44,0,32,0,49,0,46,0,56,0,44,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,219,0,40,0,43,0,46,0,49,0,52,0,55,0,129,1,59,0,63,0,67,0,70,0,74,0,77,0,81,0,85,0,88,0,92,0,95,0,16,1,98,0,101,0,105,0,108,0,111,0,114,0,118,0,122,0,126,0,130,0,133,0,136,0,52,1,139,0,143,0,147,0,150,0,153,0,156,0,159,0,111,2,39,2,162,0,165,0,168,0,171,0,174,0,177,0,181,0,184,0,187,0,191,0,194,0,197,0,200,0,203,0,207,0,210,0,214,0,217,0,220,0,224,0,46,2,227,0,123,0,231,0,235,0,238,0,241,0,244,0,121,2,247,0,250,0,253,0,0,1,3,1,6,1,9,1,12,1,15,1,19,1,23,1,26,1,30,1,33,1,36,1,39,1,43,1,47,1,51,1,55,1,59,1,62,1,66,1,69,1,72,1,75,1,78,1,81,1,85,1,89,1,92,1,95,1,98,1,102,1,105,1,108,1,112,1,116,1,119,1,122,1,125,1,128,1,132,1,135,1,139,1,142,1,71,2,145,1,148,1,75,2,151,1,154,1,157,1,161,1,165,1,168,1,246,2,171,1,174,1,177,1,181,1,184,1,188,1,191,1,79,3,195,1,199,1,202,1,205,1,208,1,212,1,215,1,219,1,223,1,226,1,230,1,233,1,236,1,242,1,13,3,245,1,249,1,254,1,1,2,5,2,9,2,13,2,17,2,20,2,24,2,27,2,31,2,34,2,38,2,42,2,86,1,45,2,49,2,52,2,55,2,58,2,62,2,66,2,70,2,74,2,78,2,192,1,81,2,84,2,87,2,90,2,64,0,94,2,97,2,204,0,100,2,104,2,107,2,110,2,114,2,117,2,120,2,124,2,127,2,130,2,133,2,136,2,140,2,143,2,146,2,150,2,153,2,188,0,156,2,159,2,162,2,166,2,169,2,172,2,176,2,179,2,35,3,183,2,186,2,190,2,193,2,196,2,200,2,203,2,1,0,21,0,16,0,1,0,129,0,129,0,16,0,1,0,11,0,1,0,1,0,207,0,1,0,1,0,1,0,21,0,6,0,16,0,6,0,219,0,1,0,69,0,75,0,1,0,87,0,1,0,1,0,1,0,117,0,249,0,41,0,11,0,16,0,111,0,1,0,6,0,1,0,1,0,11,0,1,0,183,0,11,0,1,0,16,0,26,0,11,0,87,0,1,0,171,0,1,0,11,0,231,0,189,0,11,0,1,0,16,0,21,0,237,0,1,0,1,0,99,0,16,0,6,0,69,0,111,0,1,0,26,0,11,0,6,0,6,0,6,0,6,0,11,0,46,0,75,0,63,0,99,0,6,0,6,0,1,0,11,0,1,0,6,0,6,0,1,0,26,0,1,0,1,0,6,0,6,0,1,0,1,0,1,0,6,0,16,0,6,0,1,0,1,0,159,0,1,0,243,0,1,0,153,0,1,0,1,0,11,0,6,0,21,0,6,0,213,0,93,0,1,0,21,0,1,0,147,0,1,0,1,0,105,0,1,0,6,0,225,0,6,0,1,0,63,0,1,0,1,0,1,0,11,0,1,0,1,0,1,0,6,0,1,0,21,0,1,0,1,0,1,0,1,0,1,0,6,0,21,0,1,0,16,0,201,0,93,0,1,0,177,0,75,0,1,0,105,0,1,0,6,0,123,0,1,0,6,0,1,0,63,0,11,0,11,0,1,0,1,0,63,0,1,0,6,0,6,0,69,0,165,0,31,0,117,0,195,0,63,0,63,0,63,0,63,0,63,0,1,0,1,0,1,0,69,0,1,0,1,0,1,0,6,0,11,0,11,0,1,0,1,0,1,0,1,0,6,0,21,0,1,0,1,0,87,0,1,0,6,0,6,0,1,0,1,0,36,0,1,0,123,0,11,0,1,0,1,0,75,0,6,0,1,0,1,0,21,0,1,0,6,0,1,0,1,0,11,0,6,0,6,0,6,0,16,0,104,0,40,0,46,0,49,0,52,0,129,1,63,0,67,0,70,0,74,0,85,0,95,0,105,0,108,0,111,0,130,0,133,0,136,0,52,1,143,0,156,0,159,0,39,2,162,0,165,0,168,0,174,0,177,0,184,0,191,0,194,0,197,0,200,0,203,0,207,0,224,0,46,2,123,0,231,0,235,0,238,0,241,0,244,0,250,0,0,1,3,1,9,1,12,1,36,1,59,1,69,1,72,1,75,1,92,1,95,1,108,1,119,1,122,1,125,1,139,1,142,1,71,2,145,1,148,1,75,2,154,1,165,1,246,2,171,1,181,1,202,1,212,1,223,1,226,1,230,1,233,1,13,3,249,1,254,1,17,2,20,2,24,2,86,1,49,2,52,2,55,2,81,2,84,2,97,2,204,0,104,2,107,2,114,2,124,2,127,2,136,2,140,2,153,2,188,0,156,2,162,2,166,2,196,2,200,2,203,2,51,0,51,0,51,0,51,0,141,0,51,0,95,1,57,0,17,1,51,0,141,0,51,0,83,1,51,0,51,0,107,1,51,0,51,0,51,0,51,0,65,1,51,0,51,0,51,0,51,0,51,0,57,0,57,0,51,0,57,0,77,1,51,0,51,0,135,0,51,0,135,0,51,0,51,0,5,1,57,0,51,0,51,0,51,0,51,0,81,0,51,0,51,0,47,1,35,1,51,0,51,0,51,0,59,1,51,0,41,1,57,0,51,0,51,0,89,1,51,0,51,0,57,0,71,1,57,0,51,0,51,0,11,1,51,0,51,0,101,1,51,0,51,0,51,0,51,0,51,0,57,0,51,0,51,0,81,0,81,0,51,0,51,0,51,0,51,0,51,0,53,1,51,0,255,0,51,0,51,0,51,0,51,0,29,1,57,0,51,0,51,0,23,1,51,0,51,0,81,0,57,0,51,0,51,0,51,0,1,0,234,2,168,24,2,0,245,2,234,2,242,7,37,25,2,0,245,2,234,2,229,50,44,37,2,0,245,2,234,2,96,60,162,25,3,0,245,2,234,2,11,3,159,55,250,16,101,57,3,0,245,2,234,2,11,3,232,3,43,24,76,4,3,0,245,2,234,2,11,3,24,4,38,29,76,4,3,0,245,2,234,2,34,3,240,11,28,27,173,2,3,0,245,2,234,2,34,3,24,4,94,33,128,4,3,0,50,3,245,2,234,2,55,23,242,7,184,30,3,0,50,3,245,2,234,2,36,41,146,2,245,5,3,0,50,3,245,2,234,2,130,56,229,50,185,41,2,0,245,2,234,2,73,3,43,24,3,0,77,3,245,2,234,2,171,48,73,3,32,50,3,0,77,3,245,2,234,2,171,48,152,3,32,50,3,0,77,3,245,2,234,2,171,48,146,2,170,51,3,0,77,3,245,2,234,2,171,48,24,4,206,54,4,0,50,3,245,2,234,2,34,3,77,32,195,13,113,34,19,14,4,0,50,3,245,2,234,2,34,3,114,52,215,12,14,7,37,13,4,0,50,3,245,2,234,2,34,3,82,58,92,45,185,41,1,46,4,0,50,3,77,3,245,2,234,2,228,2,99,14,146,2,14,7,4,0,50,3,77,3,245,2,234,2,47,19,144,40,146,2,15,11,4,0,50,3,77,3,245,2,234,2,166,46,58,53,128,43,28,5,2,0,245,2,234,2,146,2,156,26,4,0,50,3,77,3,245,2,234,2,186,37,83,9,188,44,250,47,4,0,50,3,77,3,245,2,234,2,47,19,50,30,167,17,15,11,5,0,50,3,77,3,245,2,234,2,34,3,97,49,153,19,80,42,176,23,232,42,5,0,50,3,77,3,245,2,234,2,34,3,161,28,31,26,24,4,63,31,128,4,5,0,50,3,77,3,245,2,234,2,34,3,198,31,17,36,24,4,231,33,128,4,5,0,50,3,77,3,245,2,234,2,34,3,6,20,99,14,90,11,112,3,165,11,6,0,50,3,77,3,245,2,234,2,34,3,11,3,216,38,28,44,24,4,99,18,75,59,76,4,6,0,50,3,77,3,245,2,234,2,34,3,11,3,229,20,190,22,24,4,77,47,128,4,76,4,6,0,50,3,77,3,245,2,234,2,34,3,11,3,180,4,232,4,24,4,133,35,128,4,76,4,1,0,234,2,82,5,2,0,245,2,234,2,156,27,172,29,2,0,245,2,234,2,208,21,156,6,2,0,245,2,234,2,113,1,99,6,2,0,245,2,234,2,242,1,143,9,2,0,245,2,234,2,8,2,14,7,2,0,50,3,234,2,71,22,219,8,2,0,50,3,234,2,180,14,160,8,2,0,50,3,234,2,115,13,137,12,2,0,77,3,234,2,73,38,136,5,2,0,77,3,234,2,192,3,204,10,2,0,77,3,234,2,185,7,204,10,2,0,245,2,234,2,166,16,38,29,3,0,77,3,245,2,234,2,138,10,181,1,44,6,3,0,77,3,245,2,234,2,83,16,113,1,11,10,3,0,77,3,245,2,234,2,60,12,199,18,71,7,4,0,50,3,245,2,234,2,34,3,180,14,173,15,213,6,0,16,4,0,50,3,245,2,234,2,34,3,130,1,113,1,14,7,198,1,4,0,50,3,245,2,234,2,34,3,122,2,74,2,74,10,98,2,4,0,50,3,245,2,234,2,34,3,130,1,220,1,14,7,164,1,4,0,77,3,245,2,234,2,34,3,89,21,7,15,205,9,90,15,4,0,50,3,77,3,245,2,234,2,252,39,4,18,116,20,80,17,5,0,50,3,77,3,245,2,234,2,34,3,130,1,147,1,113,1,23,9,198,1,2,0,245,2,234,2,105,39,251,34,5,0,50,3,77,3,245,2,234,2,34,3,130,1,147,1,36,3,102,8,198,1,5,0,50,3,77,3,245,2,234,2,34,3,130,1,147,1,4,3,44,8,198,1,6,0,50,3,77,3,245,2,234,2,34,3,11,3,30,2,52,2,113,1,190,5,164,1,200,2,2,0,245,2,234,2,24,4,213,32,2,0,245,2,234,2,128,7,28,28,2,0,245,2,234,2,4,54,158,36,63,0,229,2,240,2,249,2,255,2,5,3,16,3,22,3,28,3,38,3,44,3,54,3,60,3,66,3,71,3,82,3,88,3,94,3,100,3,106,3,112,3,118,3,124,3,130,3,136,3,141,3,147,3,153,3,159,3,165,3,171,3,177,3,183,3,189,3,195,3,201,3,206,3,212,3,218,3,224,3,230,3,236,3,242,3,248,3,254,3,4,4,10,4,15,4,21,4,27,4,33,4,39,4,45,4,51,4,57,4,63,4,69,4,75,4,80,4,86,4,92,4,98,4,103,4,108,4,7,64,0,80,10,64,0,80,15,64,0,80,20,64,0,80,25,64,0,80,32,64,0,80,39,64,0,80,46,64,0,80,53,64,0,80,60,64,0,80,67,64,0,80,74,64,0,80,81,64,0,80,86,64,0,80,93,64,0,80,100,64,0,80,107,64,0,80,114,64,0,80,123,64,0,80,132,64,0,80,141,64,0,80,150,64,0,80,159,64,0,80,168,64,0,80,173,64,0,80,182,64,0,80,191,64,0,80,202,64,0,80,213,64,0,80,224,64,0,80,235,64,0,80,248,64,0,80,5,65,0,80,18,65,0,80,21,65,0,80,26,65,0,80,31,65,0,80,36,65,0,80,41,65,0,80,46,65,0,80,51,65,0,80,56,65,0,80,61,65,0,80,66,65,0,80,71,65,0,80,76,65,0,80,81,65,0,80,88,65,0,80,95,65,0,80,102,65,0,80,111,65,0,80,120,65,0,80,129,65,0,80,138,65,0,80,147,65,0,80,156,65,0,80,167,65,0,80,172,65,0,80,183,65,0,80,194,65,0,80,207,65,0,80,212,65,0,80,217,65,0,80,3,0,32,0,206,2,223,2,127,61,0,80,54,63,0,80,12,34,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,131,235,0,32,7,0,0,0,48,6,0,0,160,235,0,0,160,235,0,0,23,3,0,0,1,0,0,0,129,161,0,0,99,97,108,101,110,100,97,114,68,97,116,97,0,98,117,100,100,104,105,115,116,0,101,114,97,115,0,115,116,97,114,116,0,115,121,115,116,101,109,0,99,104,105,110,101,115,101,0,99,111,112,116,105,99,0,101,110,100,0,100,97,110,103,105,0,101,116,104,105,111,112,105,99,0,101,116,104,105,111,112,105,99,45,97,109,101,116,101,45,97,108,101,109,0,103,114,101,103,111,114,105,97,110,0,104,101,98,114,101,119,0,105,110,100,105,97,110,0,105,115,108,97,109,105,99,0,105,115,108,97,109,105,99,45,99,105,118,105,108,0,105,115,108,97,109,105,99,45,114,103,115,97,0,105,115,108,97,109,105,99,45,116,98,108,97,0,105,115,108,97,109,105,99,45,117,109,97,108,113,117,114,97,0,106,97,112,97,110,101,115,101,0,49,48,48,0,49,48,49,0,49,48,50,0,49,48,51,0,49,48,52,0,49,48,53,0,49,48,54,0,49,48,55,0,49,48,56,0,49,48,57,0,49,49,48,0,49,49,49,0,49,49,50,0,49,49,51,0,49,49,52,0,49,49,53,0,49,49,54,0,49,49,55,0,49,49,56,0,49,49,57,0,49,50,48,0,49,50,49,0,49,50,50,0,49,50,51,0,49,50,52,0,49,50,53,0,49,50,54,0,49,50,55,0,49,50,56,0,49,50,57,0,49,51,48,0,49,51,49,0,49,51,50,0,49,51,51,0,49,51,52,0,49,51,53,0,49,51,54,0,49,51,55,0,49,51,56,0,49,51,57,0,49,52,48,0,49,52,49,0,49,52,50,0,49,52,51,0,49,52,52,0,49,52,53,0,49,52,54,0,49,52,55,0,49,52,56,0,49,52,57,0,49,53,49,0,49,53,50,0,49,53,51,0,49,53,52,0,49,53,53,0,49,53,54,0,49,53,55,0,49,53,56,0,49,53,57,0,49,54,48,0,49,54,49,0,49,54,50,0,49,54,51,0,49,54,52,0,49,54,53,0,49,54,54,0,49,54,55,0,49,54,56,0,49,54,57,0,49,55,48,0,49,55,49,0,49,55,50,0,49,55,51,0,49,55,52,0,49,55,53,0,49,55,54,0,49,55,55,0,49,55,56,0,49,55,57,0,49,56,48,0,49,56,49,0,49,56,50,0,49,56,51,0,49,56,52,0,49,56,53,0,49,56,54,0,49,56,55,0,49,56,56,0,49,56,57,0,49,57,48,0,49,57,49,0,49,57,50,0,49,57,51,0,49,57,52,0,49,57,53,0,49,57,54,0,49,57,55,0,49,57,56,0,49,57,57,0,50,48,48,0,50,48,49,0,50,48,50,0,50,48,51,0,50,48,52,0,50,48,53,0,50,48,54,0,50,48,55,0,50,48,56,0,50,48,57,0,50,49,48,0,50,49,49,0,50,49,50,0,50,49,51,0,50,49,52,0,50,49,53,0,50,49,54,0,50,49,55,0,50,49,56,0,50,49,57,0,50,50,48,0,50,50,49,0,50,50,50,0,50,50,51,0,50,50,52,0,50,50,53,0,50,50,54,0,50,50,55,0,50,50,56,0,50,50,57,0,50,51,48,0,50,51,49,0,50,51,50,0,50,51,51,0,50,51,52,0,50,51,53,0,50,51,54,0,112,101,114,115,105,97,110,0,114,111,99,0,99,97,108,101,110,100,97,114,80,114,101,102,101,114,101,110,99,101,68,97,116,97,0,65,69,0,65,70,0,65,76,0,65,90,0,66,68,0,66,72,0,67,78,0,67,88,0,68,74,0,68,90,0,69,71,0,69,72,0,69,82,0,69,84,0,73,68,0,73,76,0,73,81,0,73,82,0,74,79,0,74,80,0,75,77,0,75,82,0,75,87,0,76,66,0,76,89,0,77,65,0,77,79,0,77,82,0,77,86,0,77,89,0,78,69,0,79,77,0,80,75,0,80,83,0,81,65,0,83,65,0,83,68,0,83,71,0,83,89,0,84,68,0,84,72,0,84,74,0,84,77,0,84,78,0,84,82,0,85,90,0,88,75,0,89,69,0,99,108,100,114,86,101,114,115,105,111,110,0,99,111,100,101,77,97,112,112,105,110,103,115,0,99,111,100,101,77,97,112,112,105,110,103,115,67,117,114,114,101,110,99,121,0,105,100,86,97,108,105,100,105,116,121,0,99,117,114,114,101,110,99,121,0,100,101,112,114,101,99,97,116,101,100,0,114,101,103,117,108,97,114,0,117,110,107,110,111,119,110,0,108,97,110,103,117,97,103,101,0,112,114,105,118,97,116,101,95,117,115,101,0,114,101,115,101,114,118,101,100,0,115,112,101,99,105,97,108,0,109,97,99,114,111,114,101,103,105,111,110,0,115,99,114,105,112,116,0,115,117,98,100,105,118,105,115,105,111,110,0,117,110,105,116,0,108,97,110,103,117,97,103,101,68,97,116,97,0,112,114,105,109,97,114,121,0,115,99,114,105,112,116,115,0,115,101,99,111,110,100,97,114,121,0,116,101,114,114,105,116,111,114,105,101,115,0,97,98,113,0,97,98,114,0,97,99,101,0,97,99,104,0,97,100,97,0,97,100,121,0,97,101,98,0,97,103,113,0,97,105,105,0,97,105,110,0,97,107,107,0,97,107,122,0,97,108,101,0,97,108,110,0,97,108,116,0,97,109,111,0,97,110,103,0,97,110,110,0,97,110,112,0,97,111,122,0,97,114,99,0,97,114,110,0,97,114,111,0,97,114,112,0,97,114,113,0,97,114,115,0,97,114,119,0,97,114,122,0,97,115,97,0,97,115,116,0,97,116,106,0,97,118,107,0,97,119,97,0,98,97,108,0,98,97,110,0,98,97,112,0,98,97,114,0,98,97,115,0,98,97,120,0,98,98,99,0,98,98,106,0,98,99,105,0,98,101,106,0,98,101,109,0,98,101,119,0,98,101,122,0,98,102,100,0,98,102,113,0,98,102,116,0,98,102,121,0,98,103,0,98,103,99,0,98,103,110,0,98,103,120,0,98,104,98,0,98,104,105,0,98,104,111,0,98,105,0,98,105,107,0,98,105,110,0,98,106,106,0,98,106,110,0,98,106,116,0,98,107,109,0,98,107,117,0,98,108,116,0,98,109,113,0,98,110,0,98,112,121,0,98,113,105,0,98,113,118,0,98,114,97,0,98,114,104,0,98,114,120,0,98,115,0,98,115,99,0,98,115,115,0,98,116,111,0,98,116,118,0,98,117,97,0,98,117,99,0,98,117,103,0,98,117,109,0,98,118,98,0,98,121,110,0,98,121,118,0,98,122,101,0,98,122,120,0,99,97,100,0,99,97,114,0,99,97,121,0,99,99,104,0,99,99,112,0,99,101,98,0,99,103,103,0,99,104,107,0,99,104,109,0,99,104,110,0,99,104,111,0,99,104,112,0,99,104,114,0,99,104,121,0,99,105,99,0,99,106,97,0,99,106,109,0,99,106,115,0,99,107,98,0,99,107,116,0,99,108,99,0,99,111,112,0,99,112,115,0,99,114,103,0,99,114,104,0,99,114,106,0,99,114,107,0,99,114,108,0,99,114,109,0,99,114,115,0,99,115,98,0,99,115,119,0,99,116,100,0,99,117,0,99,118,0,100,97,107,0,100,97,114,0,100,97,118,0,100,99,99,0,100,101,108,0,100,101,110,0,100,103,114,0,100,105,110,0,100,106,101,0,100,110,103,0,100,110,106,0,100,111,105,0,100,115,98,0,100,116,109,0,100,116,112,0,100,116,121,0,100,117,97,0,100,117,109,0,100,118,0,100,121,111,0,100,121,117,0,100,122,0,101,98,117,0,101,102,105,0,101,103,108,0,101,103,121,0,101,107,97,0,101,107,121,0,101,110,109,0,101,115,117,0,101,116,116,0,101,118,110,0,101,119,111,0,101,120,116,0,102,97,110,0,102,98,108,0,102,102,0,102,102,109,0,102,105,97,0,102,105,108,0,102,105,116,0,102,106,0,102,111,110,0,102,114,99,0,102,114,109,0,102,114,111,0,102,114,112,0,102,114,114,0,102,114,115,0,102,117,100,0,102,117,113,0,102,117,114,0,102,117,118,0,102,118,114,0,103,97,97,0,103,97,103,0,103,97,110,0,103,97,121,0,103,98,97,0,103,98,109,0,103,98,122,0,103,99,114,0,103,100,0,103,101,122,0,103,105,108,0,103,106,107,0,103,106,117,0,103,108,100,0,103,108,107,0,103,109,104,0,103,111,104,0,103,111,109,0,103,111,110,0,103,111,114,0,103,111,115,0,103,111,116,0,103,114,98,0,103,114,99,0,103,114,116,0,103,115,119,0,103,117,0,103,117,98,0,103,117,99,0,103,117,114,0,103,117,122,0,103,118,0,103,118,114,0,103,119,105,0,104,97,105,0,104,97,107,0,104,97,122,0,104,105,102,0,104,105,108,0,104,105,116,0,104,109,100,0,104,109,110,0,104,110,100,0,104,110,101,0,104,110,106,0,104,110,110,0,104,110,111,0,104,111,99,0,104,111,106,0,104,111,112,0,104,115,98,0,104,115,110,0,104,117,0,104,117,112,0,104,117,114,0,104,122,0,105,98,97,0,105,98,98,0,105,102,101,0,105,107,116,0,105,108,111,0,105,110,104,0,105,122,104,0,106,97,109,0,106,103,111,0,106,109,99,0,106,109,108,0,106,112,114,0,106,114,98,0,106,117,116,0,106,118,0,107,97,97,0,107,97,98,0,107,97,99,0,107,97,106,0,107,97,109,0,107,97,111,0,107,98,100,0,107,99,97,0,107,99,103,0,107,99,107,0,107,100,101,0,107,100,116,0,107,101,97,0,107,102,111,0,107,102,114,0,107,102,121,0,107,103,0,107,103,101,0,107,103,112,0,107,104,97,0,107,104,98,0,107,104,110,0,107,104,113,0,107,104,116,0,107,104,119,0,107,105,117,0,107,106,103,0,107,106,104,0,107,107,106,0,107,108,110,0,107,109,98,0,107,110,0,107,110,102,0,107,111,105,0,107,111,107,0,107,111,115,0,107,112,101,0,107,112,121,0,107,114,99,0,107,114,105,0,107,114,106,0,107,114,108,0,107,114,117,0,107,115,0,107,115,98,0,107,115,102,0,107,115,104,0,107,117,109,0,107,117,116,0,107,118,0,107,118,114,0,107,118,120,0,107,119,0,107,119,107,0,107,120,109,0,107,120,112,0,107,121,117,0,108,97,98,0,108,97,100,0,108,97,103,0,108,97,104,0,108,97,106,0,108,97,109,0,108,98,0,108,98,101,0,108,98,119,0,108,99,112,0,108,101,112,0,108,101,122,0,108,102,110,0,108,105,102,0,108,105,106,0,108,105,108,0,108,105,115,0,108,105,118,0,108,106,112,0,108,107,105,0,108,107,116,0,108,109,110,0,108,109,111,0,108,111,108,0,108,111,122,0,108,114,99,0,108,116,103,0,108,117,0,108,117,97,0,108,117,105,0,108,117,110,0,108,117,111,0,108,117,115,0,108,117,116,0,108,117,121,0,108,117,122,0,108,118,0,108,119,108,0,108,122,104,0,108,122,122,0,109,97,100,0,109,97,102,0,109,97,103,0,109,97,105,0,109,97,107,0,109,97,110,0,109,97,115,0,109,97,122,0,109,100,102,0,109,100,104,0,109,100,114,0,109,100,116,0,109,101,110,0,109,101,114,0,109,101,121,0,109,102,97,0,109,102,101,0,109,102,118,0,109,103,104,0,109,103,111,0,109,103,112,0,109,103,121,0,109,105,110,0,109,107,0,109,108,115,0,109,110,99,0,109,110,105,0,109,110,115,0,109,110,119,0,109,111,101,0,109,111,104,0,109,111,115,0,109,114,100,0,109,114,106,0,109,114,111,0,109,116,114,0,109,117,97,0,109,117,115,0,109,118,121,0,109,119,107,0,109,119,108,0,109,119,114,0,109,119,118,0,109,120,99,0,109,121,0,109,121,118,0,109,121,120,0,109,121,122,0,109,122,110,0,110,97,110,0,110,97,112,0,110,99,104,0,110,100,99,0,110,100,115,0,110,101,119,0,110,103,108,0,110,104,101,0,110,104,119,0,110,105,97,0,110,105,106,0,110,105,117,0,110,106,111,0,110,109,103,0,110,110,104,0,110,111,100,0,110,111,101,0,110,111,103,0,110,111,110,0,110,111,118,0,110,113,111,0,110,115,107,0,110,115,111,0,110,117,115,0,110,118,0,110,120,113,0,110,121,0,110,121,109,0,110,121,110,0,110,121,111,0,110,122,105,0,111,106,115,0,111,107,97,0,111,115,97,0,111,115,99,0,111,116,107,0,112,97,0,112,97,103,0,112,97,108,0,112,97,109,0,112,97,112,0,112,97,117,0,112,99,100,0,112,99,109,0,112,100,99,0,112,100,116,0,112,101,111,0,112,102,108,0,112,104,110,0,112,105,115,0,112,107,111,0,112,108,0,112,109,115,0,112,110,116,0,112,111,110,0,112,113,109,0,112,114,100,0,112,114,103,0,112,114,111,0,112,117,117,0,113,117,0,113,117,99,0,113,117,103,0,114,97,106,0,114,97,112,0,114,97,114,0,114,99,102,0,114,101,106,0,114,103,110,0,114,104,103,0,114,105,97,0,114,105,102,0,114,106,115,0,114,107,116,0,114,109,102,0,114,109,111,0,114,109,116,0,114,109,117,0,114,110,103,0,114,111,98,0,114,111,102,0,114,111,109,0,114,116,109,0,114,117,101,0,114,117,103,0,114,117,112,0,114,119,107,0,114,121,117,0,115,97,100,0,115,97,102,0,115,97,104,0,115,97,109,0,115,97,113,0,115,97,116,0,115,97,118,0,115,97,122,0,115,98,112,0,115,99,107,0,115,99,111,0,115,99,115,0,115,100,99,0,115,100,104,0,115,101,101,0,115,101,102,0,115,101,104,0,115,101,105,0,115,101,108,0,115,101,115,0,115,103,115,0,115,104,105,0,115,104,110,0,115,105,100,0,115,107,114,0,115,108,105,0,115,108,121,0,115,109,97,0,115,109,106,0,115,109,110,0,115,109,112,0,115,109,115,0,115,110,102,0,115,110,107,0,115,111,117,0,115,113,0,115,114,98,0,115,114,110,0,115,114,114,0,115,114,120,0,115,115,121,0,115,116,113,0,115,117,107,0,115,117,115,0,115,118,0,115,119,98,0,115,119,103,0,115,119,118,0,115,120,110,0,115,121,105,0,115,121,108,0,115,121,114,0,115,122,108,0,116,97,98,0,116,97,106,0,116,98,119,0,116,99,121,0,116,100,100,0,116,100,103,0,116,100,104,0,116,101,111,0,116,101,114,0,116,101,116,0,116,104,0,116,104,108,0,116,104,113,0,116,104,114,0,116,105,0,116,105,103,0,116,105,118,0,116,107,114,0,116,107,116,0,116,108,105,0,116,108,121,0,116,109,104,0,116,110,114,0,116,111,103,0,116,111,107,0,116,112,105,0,116,114,117,0,116,114,118,0,116,114,119,0,116,115,100,0,116,115,103,0,116,115,105,0,116,115,106,0,116,116,106,0,116,116,115,0,116,116,116,0,116,117,109,0,116,119,113,0,116,121,118,0,116,122,109,0,117,100,101,0,117,100,109,0,117,103,97,0,117,108,105,0,117,109,98,0,117,110,100,0,117,110,114,0,117,110,120,0,118,97,105,0,118,101,0,118,101,99,0,118,101,112,0,118,105,0,118,105,99,0,118,108,115,0,118,109,102,0,118,109,119,0,118,111,116,0,118,114,111,0,118,117,110,0,119,97,101,0,119,97,114,0,119,97,115,0,119,98,112,0,119,98,113,0,119,98,114,0,119,110,105,0,119,116,109,0,119,117,117,0,120,97,108,0,120,97,118,0,120,99,114,0,120,104,0,120,108,99,0,120,108,100,0,120,109,102,0,120,109,110,0,120,109,114,0,120,110,97,0,120,110,114,0,120,111,103,0,120,112,114,0,120,115,97,0,120,115,114,0,120,117,109,0,121,97,111,0,121,97,112,0,121,97,118,0,121,98,98,0,121,114,107,0,121,117,97,0,121,117,101,0,122,97,103,0,122,97,112,0,122,100,106,0,122,101,97,0,122,101,110,0,122,103,104,0,122,109,105,0,122,117,0,122,117,110,0,122,122,97,0,108,97,110,103,117,97,103,101,77,97,116,99,104,105,110,103,73,110,102,111,0,119,114,105,116,116,101,110,0,109,97,116,99,104,86,97,114,105,97,98,108,101,0,97,109,101,114,105,99,97,115,0,99,110,115,97,114,0,101,110,85,83,0,109,97,103,104,114,101,98,0,112,97,114,97,100,105,103,109,76,111,99,97,108,101,115,0,108,97,110,103,117,97,103,101,77,97,116,99,104,105,110,103,78,101,119,0,109,101,97,115,117,114,101,109,101,110,116,68,97,116,97,0,77,101,97,115,117,114,101,109,101,110,116,83,121,115,116,101,109,0,80,97,112,101,114,83,105,122,101,0,66,83,0,77,101,97,115,117,114,101,109,101,110,116,83,121,115,116,101,109,67,97,116,101,103,111,114,121,0,116,101,109,112,101,114,97,116,117,114,101,0,66,90,0,67,76,0,67,79,0,67,82,0,71,66,0,71,84,0,75,89,0,76,82,0,77,77,0,77,88,0,78,73,0,80,65,0,80,72,0,80,82,0,80,87,0,83,86,0,86,69,0,112,97,114,101,110,116,76,111,99,97,108,101,115,0,101,110,95,48,48,49,0,101,110,95,49,53,48,0,101,110,95,73,78,0,101,115,95,52,49,57,0,102,114,95,72,84,0,112,116,95,80,84,0,114,111,111,116,0,122,104,95,72,97,110,116,95,72,75,0,112,101,114,115,111,110,78,97,109,101,115,68,101,102,97,117,108,116,115,0,110,97,109,101,79,114,100,101,114,76,111,99,97,108,101,115,68,101,102,97,117,108,116,0,103,105,118,101,110,70,105,114,115,116,0,115,117,114,110,97,109,101,70,105,114,115,116,0,115,117,98,100,105,118,105,115,105,111,110,67,111,110,116,97,105,110,109,101,110,116,0,65,68,0,65,71,0,65,77,0,65,79,0,65,82,0,65,84,0,65,85,0,66,65,0,66,66,0,66,69,0,66,70,0,66,71,0,66,73,0,66,74,0,66,78,0,66,81,0,66,84,0,66,87,0,66,89,0,67,68,0,67,70,0,67,71,0,67,73,0,67,77,0,67,85,0,67,86,0,67,89,0,67,90,0,68,69,0,68,75,0,68,77,0,68,79,0,69,69,0,70,73,0,70,74,0,70,77,0,70,82,0,71,65,0,71,68,0,71,69,0,71,72,0,71,76,0,71,77,0,71,78,0,71,82,0,71,87,0,71,89,0,72,78,0,72,82,0,72,85,0,73,69,0,73,83,0,74,77,0,75,69,0,75,71,0,75,72,0,75,73,0,75,78,0,75,80,0,75,90,0,76,65,0,76,67,0,76,73,0,76,75,0,76,83,0,76,84,0,76,85,0,76,86,0,77,67,0,77,68,0,77,69,0,77,71,0,77,72,0,77,75,0,77,76,0,77,78,0,77,84,0,77,85,0,77,87,0,77,90,0,78,65,0,78,71,0,78,76,0,78,79,0,78,80,0,78,82,0,78,90,0,80,71,0,80,76,0,80,89,0,82,79,0,82,83,0,82,85,0,82,87,0,83,66,0,83,67,0,83,69,0,83,72,0,83,73,0,83,75,0,83,76,0,83,77,0,83,78,0,83,79,0,83,82,0,83,83,0,83,84,0,83,90,0,84,71,0,84,76,0,84,79,0,84,84,0,84,86,0,84,90,0,85,65,0,85,71,0,85,77,0,85,89,0,86,67,0,86,78,0,86,85,0,87,70,0,87,83,0,90,77,0,90,87,0,97,122,110,120,0,98,100,97,0,98,100,98,0,98,100,99,0,98,100,100,0,98,100,101,0,98,100,102,0,98,100,103,0,98,100,104,0,98,101,118,108,103,0,98,101,119,97,108,0,98,102,48,49,0,98,102,48,50,0,98,102,48,51,0,98,102,48,52,0,98,102,48,53,0,98,102,48,54,0,98,102,48,55,0,98,102,48,56,0,98,102,48,57,0,98,102,49,48,0,98,102,49,49,0,98,102,49,50,0,98,102,49,51,0,99,118,98,0,99,118,115,0,99,122,50,48,0,99,122,51,49,0,99,122,51,50,0,99,122,52,49,0,99,122,52,50,0,99,122,53,49,0,99,122,53,50,0,99,122,53,51,0,99,122,54,51,0,99,122,54,52,0,99,122,55,49,0,99,122,55,50,0,99,122,56,48,0,100,111,51,51,0,100,111,51,52,0,100,111,51,53,0,100,111,51,54,0,100,111,51,55,0,100,111,51,56,0,100,111,51,57,0,100,111,52,48,0,100,111,52,49,0,100,111,52,50,0,101,101,51,55,0,101,101,51,57,0,101,101,52,53,0,101,101,53,48,0,101,101,53,50,0,101,101,53,54,0,101,101,54,48,0,101,101,54,52,0,101,101,54,56,0,101,101,55,49,0,101,101,55,52,0,101,101,55,57,0,101,101,56,49,0,101,101,56,52,0,101,101,56,55,0,101,115,97,110,0,101,115,97,114,0,101,115,97,115,0,101,115,99,98,0,101,115,99,108,0,101,115,99,109,0,101,115,99,110,0,101,115,99,116,0,101,115,101,120,0,101,115,103,97,0,101,115,105,98,0,101,115,109,99,0,101,115,109,100,0,101,115,110,99,0,101,115,112,118,0,101,115,114,105,0,101,115,118,99,0,102,106,99,0,102,106,101,0,102,106,110,0,102,106,119,0,102,114,50,48,114,0,102,114,97,114,97,0,102,114,98,102,99,0,102,114,98,114,101,0,102,114,99,118,108,0,102,114,103,101,115,0,102,114,104,100,102,0,102,114,105,100,102,0,102,114,110,97,113,0,102,114,110,111,114,0,102,114,111,99,99,0,102,114,112,97,99,0,102,114,112,100,108,0,103,98,101,110,103,0,103,98,110,105,114,0,103,98,115,99,116,0,103,98,119,108,115,0,103,110,98,0,103,110,100,0,103,110,102,0,103,110,107,0,103,110,108,0,103,110,109,0,103,110,110,0,103,113,99,0,103,113,105,0,103,119,108,0,103,119,110,0,103,119,115,0,105,100,106,119,0,105,100,107,97,0,105,100,109,108,0,105,100,110,117,0,105,100,112,112,0,105,100,115,108,0,105,100,115,109,0,105,101,99,0,105,101,108,0,105,101,109,0,105,101,117,0,105,113,107,114,0,105,115,49,0,105,115,50,0,105,115,51,0,105,115,52,0,105,115,53,0,105,115,54,0,105,115,55,0,105,115,56,0,105,116,50,49,0,105,116,50,53,0,105,116,51,50,0,105,116,51,52,0,105,116,51,54,0,105,116,52,50,0,105,116,52,53,0,105,116,53,50,0,105,116,53,53,0,105,116,53,55,0,105,116,54,50,0,105,116,54,53,0,105,116,54,55,0,105,116,55,50,0,105,116,55,53,0,105,116,55,55,0,105,116,55,56,0,105,116,56,50,0,105,116,56,56,0,107,110,107,0,107,110,110,0,108,107,49,0,108,107,50,0,108,107,51,0,108,107,52,0,108,107,53,0,108,107,54,0,108,107,55,0,108,107,56,0,108,107,57,0,108,116,97,108,0,108,116,107,108,0,108,116,107,117,0,108,116,109,114,0,108,116,112,110,0,108,116,115,97,0,108,116,116,97,0,108,116,116,101,0,108,116,117,116,0,108,116,118,108,0,109,97,48,49,0,109,97,48,50,0,109,97,48,51,0,109,97,48,52,0,109,97,48,53,0,109,97,48,54,0,109,97,48,55,0,109,97,48,56,0,109,97,48,57,0,109,97,49,48,0,109,97,49,49,0,109,97,49,50,0,109,104,108,0,109,104,116,0,109,119,99,0,109,119,110,0,109,119,115,0,110,112,49,0,110,112,50,0,110,112,51,0,110,112,52,0,110,112,53,0,112,104,48,49,0,112,104,48,50,0,112,104,48,51,0,112,104,48,53,0,112,104,48,54,0,112,104,48,55,0,112,104,48,56,0,112,104,48,57,0,112,104,49,48,0,112,104,49,49,0,112,104,49,50,0,112,104,49,51,0,112,104,49,52,0,112,104,49,53,0,112,104,52,48,0,112,104,52,49,0,114,115,107,109,0,114,115,118,111,0,117,103,99,0,117,103,101,0,117,103,110,0,117,103,119,0,116,101,114,114,105,116,111,114,121,67,111,110,116,97,105,110,109,101,110,116,0,48,48,50,0,48,48,53,0,48,48,57,0,48,49,49,0,48,49,51,0,48,49,52,0,48,49,53,0,48,49,55,0,48,49,56,0,48,49,57,0,48,50,49,0,48,50,57,0,48,51,48,0,48,51,52,0,48,51,53,0,48,51,57,0,48,53,51,0,48,53,52,0,48,53,55,0,48,54,49,0,81,79,0,99,111,110,116,97,105,110,101,100,71,114,111,117,112,105,110,103,115,0,103,114,111,117,112,105,110,103,0,48,48,51,0,69,85,0,69,90,0,85,78,0,116,101,114,114,105,116,111,114,121,73,110,102,111,0,65,67,0,112,111,112,117,108,97,116,105,111,110,83,104,97,114,101,70,0,116,101,114,114,105,116,111,114,121,70,0,111,102,102,105,99,105,97,108,83,116,97,116,117,115,0,119,114,105,116,105,110,103,83,104,97,114,101,70,0,107,107,95,65,114,97,98,0,117,122,95,65,114,97,98,0,65,73,0,108,105,116,101,114,97,99,121,83,104,97,114,101,70,0,65,81,0,65,83,0,122,104,95,72,97,110,116,0,65,87,0,65,88,0,97,122,95,67,121,114,108,0,98,115,95,67,121,114,108,0,115,114,95,76,97,116,110,0,102,102,95,65,100,108,109,0,66,76,0,66,77,0,109,115,95,65,114,97,98,0,66,86,0,105,117,95,76,97,116,110,0,67,67,0,67,75,0,104,97,95,65,114,97,98,0,107,101,110,0,107,121,95,65,114,97,98,0,109,110,95,77,111,110,103,0,117,122,95,67,121,114,108,0,121,117,101,95,72,97,110,115,0,67,80,0,67,87,0,68,71,0,69,65,0,70,75,0,70,79,0,101,110,95,83,104,97,119,0,71,70,0,71,71,0,71,73,0,109,97,110,95,78,107,111,111,0,71,80,0,71,83,0,71,85,0,72,77,0,73,67,0,73,77,0,115,100,95,68,101,118,97,0,73,79,0,97,122,95,65,114,97,98,0,74,69,0,117,103,95,67,121,114,108,0,107,117,95,65,114,97,98,0,118,97,105,95,76,97,116,110,0,114,105,102,95,76,97,116,110,0,115,104,105,95,76,97,116,110,0,77,70,0,98,109,95,78,107,111,111,0,77,80,0,77,81,0,77,83,0,78,67,0,78,70,0,117,110,114,95,68,101,118,97,0,78,85,0,80,70,0,112,97,95,65,114,97,98,0,116,103,95,65,114,97,98,0,80,77,0,80,78,0,82,69,0,83,74,0,83,88,0,84,65,0,84,67,0,84,70,0,84,75,0,107,121,95,76,97,116,110,0,105,111,0,106,98,111,0,86,65,0,86,71,0,86,73,0,89,84,0,90,90,0,116,105,109,101,68,97,116,97,0,97,108,108,111,119,101,100,0,112,114,101,102,101,114,114,101,100,0,97,102,95,90,65,0,97,114,95,48,48,49,0,99,97,95,69,83,0,101,115,95,66,79,0,101,115,95,66,82,0,101,115,95,69,67,0,101,115,95,69,83,0,101,115,95,71,81,0,101,115,95,80,69,0,102,114,95,67,65,0,103,108,95,69,83,0,103,117,95,73,78,0,104,105,95,73,78,0,105,116,95,67,72,0,105,116,95,73,84,0,107,110,95,73,78,0,109,108,95,73,78,0,109,114,95,73,78,0,112,97,95,73,78,0,116,97,95,73,78,0,116,101,95,73,78,0,122,117,95,90,65,0,119,101,101,107,68,97,116,97,0,65,78,0,119,101,101,107,68,97,116,97,37,118,97,114,105,97,110,116,0,119,101,101,107,79,102,80,114,101,102,101,114,101,110,99,101,0,105,119,0,122,104,95,84,87,0,170,0,0,104,0,66,0,0,0,73,0,68,0,0,0,80,0,72,0,0,0,69,0,84,0,0,0,68,0,90,0,0,0,102,0,102,0,0,0,67,0,90,0,0,0,84,0,82,0,0,0,66,0,71,0,0,0,67,0,73,0,0,0,68,0,74,0,0,0,72,0,85,0,0,0,73,0,81,0,0,0,75,0,90,0,0,0,77,0,76,0,0,0,78,0,79,0,0,0,66,0,70,0,0,0,66,0,73,0,0,0,69,0,71,0,0,0,71,0,69,0,0,0,83,0,89,0,0,0,88,0,75,0,0,0,89,0,69,0,0,0,65,0,69,0,0,0,66,0,74,0,0,0,72,0,84,0,0,0,74,0,79,0,0,0,75,0,87,0,0,0,76,0,89,0,0,0,77,0,72,0,0,0,81,0,65,0,0,0,84,0,74,0,0,0,85,0,90,0,0,0,65,0,83,0,0,0,65,0,87,0,0,0,66,0,72,0,0,0,66,0,81,0,0,0,66,0,84,0,0,0,67,0,87,0,0,0,71,0,85,0,0,0,73,0,83,0,0,0,74,0,80,0,0,0,75,0,72,0,0,0,77,0,67,0,0,0,77,0,69,0,0,0,78,0,67,0,0,0,65,0,81,0,0,0,65,0,88,0,0,0,66,0,76,0,0,0,66,0,85,0,0,0,66,0,86,0,0,0,69,0,65,0,0,0,70,0,88,0,0,0,71,0,76,0,0,0,77,0,81,0,0,0,80,0,83,0,0,0,81,0,79,0,0,0,81,0,85,0,0,0,84,0,87,0,0,0,90,0,82,0,0,0,67,0,80,0,0,0,69,0,90,0,0,0,81,0,77,0,0,0,81,0,78,0,0,0,81,0,80,0,0,0,81,0,82,0,0,0,81,0,83,0,0,0,81,0,84,0,0,0,81,0,86,0,0,0,81,0,87,0,0,0,81,0,88,0,0,0,81,0,89,0,0,0,81,0,90,0,0,0,88,0,65,0,0,0,88,0,66,0,0,0,88,0,67,0,0,0,88,0,68,0,0,0,88,0,69,0,0,0,88,0,70,0,0,0,88,0,71,0,0,0,88,0,72,0,0,0,88,0,73,0,0,0,88,0,74,0,0,0,88,0,76,0,0,0,88,0,79,0,0,0,88,0,81,0,0,0,88,0,83,0,0,0,88,0,84,0,0,0,88,0,85,0,0,0,88,0,87,0,0,0,88,0,89,0,0,0,88,0,90,0,0,0,104,0,122,0,0,0,107,0,106,0,0,0,122,0,104,0,98,0,0,0,122,0,101,0,110,0,0,0,78,0,82,0,85,0,0,0,105,0,115,0,48,0,0,0,120,0,122,0,104,0,0,0,85,0,83,0,78,0,0,0,80,0,67,0,78,0,0,0,86,0,73,0,82,0,0,0,108,0,117,0,121,0,0,0,86,0,69,0,83,0,0,0,65,0,82,0,83,0,0,0,68,0,77,0,65,0,0,0,84,0,67,0,65,0,0,0,77,0,82,0,79,0,0,0,69,0,84,0,72,0,0,0,73,0,83,0,75,0,0,0,75,0,72,0,82,0,0,0,88,0,67,0,68,0,0,0,78,0,80,0,76,0,0,0,83,0,73,0,84,0,0,0,88,0,69,0,69,0,0,0,107,0,108,0,110,0,0,0,78,0,71,0,78,0,0,0,88,0,85,0,65,0,0,0,77,0,76,0,84,0,0,0,77,0,78,0,69,0,0,0,83,0,76,0,86,0,0,0,90,0,65,0,70,0,0,0,82,0,87,0,70,0,0,0,83,0,84,0,78,0,0,0,66,0,71,0,82,0,0,0,70,0,76,0,75,0,0,0,77,0,78,0,80,0,0,0,84,0,75,0,77,0,0,0,88,0,66,0,65,0,0,0,88,0,66,0,68,0,0,0,70,0,75,0,80,0,0,0,72,0,84,0,71,0,0,0,78,0,65,0,68,0,0,0,84,0,84,0,68,0,0,0,75,0,65,0,90,0,0,0,77,0,76,0,73,0,0,0,77,0,89,0,84,0,0,0,83,0,86,0,78,0,0,0,122,0,104,0,105,0,0,0,88,0,80,0,70,0,0,0,72,0,75,0,71,0,0,0,76,0,66,0,89,0,0,0,76,0,83,0,79,0,0,0,76,0,86,0,65,0,0,0,77,0,67,0,70,0,0,0,77,0,83,0,82,0,0,0,83,0,76,0,66,0,0,0,83,0,79,0,77,0,0,0,85,0,75,0,82,0,0,0,85,0,83,0,65,0,0,0,88,0,77,0,77,0,0,0,88,0,82,0,69,0,0,0,90,0,77,0,75,0,0,0,122,0,111,0,109,0,0,0,75,0,77,0,70,0,0,0,76,0,89,0,68,0,0,0,77,0,78,0,84,0,0,0,85,0,89,0,85,0,0,0,88,0,83,0,85,0,0,0,65,0,76,0,65,0,0,0,71,0,84,0,77,0,0,0,71,0,85,0,77,0,0,0,73,0,83,0,74,0,0,0,76,0,66,0,78,0,0,0,77,0,71,0,70,0,0,0,78,0,65,0,77,0,0,0,79,0,77,0,78,0,0,0,83,0,67,0,71,0,0,0,83,0,77,0,82,0,0,0,85,0,71,0,65,0,0,0,87,0,83,0,77,0,0,0,88,0,70,0,79,0,0,0,89,0,77,0,68,0,0,0,90,0,65,0,76,0,0,0,121,0,100,0,97,0,0,0,88,0,88,0,88,0,0,0,78,0,73,0,67,0,0,0,113,0,120,0,104,0,0,0,65,0,84,0,70,0,0,0,69,0,67,0,83,0,0,0,73,0,84,0,65,0,0,0,75,0,72,0,77,0,0,0,80,0,65,0,78,0,0,0,83,0,71,0,80,0,0,0,83,0,80,0,77,0,0,0,83,0,84,0,80,0,0,0,84,0,77,0,80,0,0,0,85,0,71,0,83,0,0,0,88,0,69,0,85,0,0,0,89,0,68,0,68,0,0,0,119,0,121,0,105,0,0,0,120,0,117,0,114,0,0,0,122,0,116,0,101,0,0,0,57,0,54,0,55,0,0,0,66,0,84,0,78,0,0,0,67,0,72,0,69,0,0,0,77,0,75,0,68,0,0,0,90,0,65,0,82,0,0,0,103,0,113,0,105,0,0,0,105,0,108,0,109,0,0,0,107,0,110,0,110,0,0,0,117,0,103,0,101,0,0,0,77,0,88,0,78,0,0,0,77,0,88,0,86,0,0,0,77,0,65,0,67,0,0,0,84,0,85,0,78,0,0,0,88,0,65,0,65,0,0,0,90,0,90,0,90,0,0,0,99,0,106,0,118,0,0,0,105,0,102,0,121,0,0,0,110,0,122,0,117,0,0,0,116,0,109,0,108,0,0,0,117,0,105,0,115,0,0,0,117,0,116,0,114,0,0,0,118,0,97,0,97,0,0,0,118,0,101,0,111,0,0,0,118,0,101,0,117,0,0,0,119,0,104,0,117,0,0,0,119,0,105,0,116,0,0,0,119,0,110,0,121,0,0,0,119,0,115,0,107,0,0,0,120,0,97,0,121,0,0,0,120,0,103,0,100,0,0,0,120,0,117,0,103,0,0,0,120,0,119,0,111,0,0,0,121,0,101,0,101,0,0,0,121,0,103,0,117,0,0,0,121,0,105,0,97,0,0,0,121,0,107,0,103,0,0,0,121,0,107,0,121,0,0,0,121,0,108,0,103,0,0,0,121,0,109,0,116,0,0,0,121,0,114,0,119,0,0,0,122,0,98,0,101,0,0,0,122,0,99,0,97,0,0,0,122,0,107,0,107,0,0,0,122,0,111,0,99,0,0,0,122,0,116,0,103,0,0,0,122,0,122,0,97,0,0,0,49,0,52,0,53,0,0,0,50,0,51,0,56,0,0,0,50,0,52,0,50,0,0,0,50,0,54,0,50,0,0,0,50,0,55,0,48,0,0,0,50,0,57,0,50,0,0,0,51,0,52,0,48,0,0,0,51,0,52,0,52,0,0,0,51,0,52,0,56,0,0,0,51,0,53,0,50,0,0,0,51,0,53,0,54,0,0,0,51,0,54,0,48,0,0,0,51,0,54,0,52,0,0,0,51,0,54,0,56,0,0,0,51,0,55,0,54,0,0,0,51,0,56,0,56,0,0,0,51,0,57,0,50,0,0,0,51,0,57,0,56,0,0,0,52,0,48,0,48,0,0,0,52,0,52,0,48,0,0,0,52,0,53,0,52,0,0,0,52,0,53,0,56,0,0,0,52,0,54,0,50,0,0,0,52,0,56,0,52,0,0,0,52,0,57,0,54,0,0,0,52,0,57,0,56,0,0,0,53,0,49,0,54,0,0,0,53,0,52,0,56,0,0,0,53,0,53,0,52,0,0,0,53,0,53,0,56,0,0,0,53,0,54,0,54,0,0,0,53,0,55,0,56,0,0,0,53,0,57,0,56,0,0,0,54,0,48,0,48,0,0,0,54,0,50,0,54,0,0,0,54,0,53,0,52,0,0,0,54,0,55,0,56,0,0,0,54,0,56,0,50,0,0,0,54,0,57,0,48,0,0,0,54,0,57,0,52,0,0,0,55,0,49,0,48,0,0,0,55,0,50,0,56,0,0,0,55,0,52,0,56,0,0,0,55,0,53,0,50,0,0,0,55,0,53,0,54,0,0,0,55,0,54,0,48,0,0,0,55,0,54,0,52,0,0,0,55,0,55,0,54,0,0,0,55,0,56,0,48,0,0,0,55,0,56,0,56,0,0,0,56,0,48,0,48,0,0,0,56,0,49,0,56,0,0,0,56,0,50,0,54,0,0,0,56,0,52,0,48,0,0,0,56,0,53,0,56,0,0,0,56,0,54,0,48,0,0,0,56,0,56,0,50,0,0,0,56,0,57,0,49,0,0,0,57,0,53,0,56,0,0,0,57,0,53,0,57,0,0,0,57,0,54,0,48,0,0,0,57,0,54,0,49,0,0,0,57,0,54,0,50,0,0,0,57,0,54,0,51,0,0,0,57,0,54,0,52,0,0,0,57,0,54,0,53,0,0,0,57,0,54,0,56,0,0,0,57,0,54,0,57,0,0,0,57,0,55,0,48,0,0,0,57,0,55,0,53,0,0,0,57,0,55,0,55,0,0,0,57,0,55,0,56,0,0,0,57,0,55,0,57,0,0,0,57,0,56,0,48,0,0,0,57,0,56,0,49,0,0,0,57,0,56,0,52,0,0,0,57,0,56,0,53,0,0,0,57,0,56,0,54,0,0,0,57,0,57,0,55,0,0,0,57,0,57,0,57,0,0,0,65,0,69,0,68,0,0,0,65,0,70,0,78,0,0,0,65,0,76,0,76,0,0,0,65,0,77,0,68,0,0,0,65,0,78,0,71,0,0,0,65,0,79,0,65,0,0,0,65,0,85,0,68,0,0,0,65,0,87,0,71,0,0,0,65,0,90,0,78,0,0,0,66,0,65,0,77,0,0,0,66,0,66,0,68,0,0,0,66,0,68,0,84,0,0,0,66,0,69,0,76,0,0,0,66,0,71,0,78,0,0,0,66,0,72,0,68,0,0,0,66,0,73,0,70,0,0,0,66,0,77,0,68,0,0,0,66,0,78,0,68,0,0,0,66,0,79,0,66,0,0,0,66,0,79,0,76,0,0,0,66,0,79,0,86,0,0,0,66,0,82,0,76,0,0,0,66,0,82,0,78,0,0,0,66,0,83,0,68,0,0,0,66,0,87,0,80,0,0,0,66,0,89,0,82,0,0,0,66,0,90,0,68,0,0,0,67,0,65,0,68,0,0,0,67,0,68,0,70,0,0,0,67,0,72,0,70,0,0,0,67,0,72,0,87,0,0,0,67,0,76,0,80,0,0,0,67,0,78,0,72,0,0,0,67,0,78,0,89,0,0,0,67,0,79,0,80,0,0,0,67,0,79,0,85,0,0,0,67,0,82,0,67,0,0,0,67,0,85,0,67,0,0,0,67,0,85,0,80,0,0,0,67,0,86,0,69,0,0,0,67,0,89,0,80,0,0,0,67,0,90,0,75,0,0,0,68,0,74,0,70,0,0,0,68,0,75,0,75,0,0,0,68,0,79,0,80,0,0,0,68,0,90,0,68,0,0,0,69,0,71,0,80,0,0,0,69,0,82,0,78,0,0,0,69,0,83,0,80,0,0,0,69,0,84,0,66,0,0,0,69,0,85,0,82,0,0,0,70,0,74,0,68,0,0,0,71,0,66,0,80,0,0,0,71,0,69,0,76,0,0,0,71,0,72,0,83,0,0,0,71,0,73,0,80,0,0,0,71,0,77,0,68,0,0,0,71,0,78,0,70,0,0,0,71,0,82,0,68,0,0,0,71,0,84,0,81,0,0,0,71,0,89,0,68,0,0,0,72,0,75,0,68,0,0,0,72,0,78,0,76,0,0,0,72,0,82,0,75,0,0,0,72,0,85,0,70,0,0,0,73,0,68,0,82,0,0,0,73,0,76,0,83,0,0,0,73,0,78,0,82,0,0,0,73,0,81,0,68,0,0,0,73,0,82,0,82,0,0,0,74,0,77,0,68,0,0,0,74,0,79,0,68,0,0,0,74,0,80,0,89,0,0,0,75,0,69,0,83,0,0,0,75,0,71,0,83,0,0,0,75,0,80,0,87,0,0,0,75,0,82,0,87,0,0,0,75,0,87,0,68,0,0,0,75,0,89,0,68,0,0,0,75,0,90,0,84,0,0,0,76,0,65,0,75,0,0,0,76,0,66,0,80,0,0,0,76,0,75,0,82,0,0,0,76,0,82,0,68,0,0,0,76,0,83,0,76,0,0,0,76,0,84,0,76,0,0,0,77,0,65,0,68,0,0,0,77,0,65,0,70,0,0,0,77,0,68,0,76,0,0,0,77,0,71,0,65,0,0,0,77,0,77,0,75,0,0,0,77,0,79,0,80,0,0,0,77,0,82,0,85,0,0,0,77,0,85,0,82,0,0,0,77,0,86,0,82,0,0,0,77,0,87,0,75,0,0,0,77,0,89,0,82,0,0,0,77,0,90,0,78,0,0,0,78,0,73,0,79,0,0,0,78,0,79,0,75,0,0,0,78,0,80,0,82,0,0,0,78,0,90,0,68,0,0,0,79,0,77,0,82,0,0,0,80,0,65,0,66,0,0,0,80,0,69,0,78,0,0,0,80,0,71,0,75,0,0,0,80,0,72,0,80,0,0,0,80,0,75,0,82,0,0,0,80,0,76,0,78,0,0,0,80,0,89,0,71,0,0,0,81,0,65,0,82,0,0,0,81,0,85,0,85,0,0,0,82,0,79,0,78,0,0,0,82,0,83,0,68,0,0,0,82,0,85,0,66,0,0,0,83,0,65,0,82,0,0,0,83,0,66,0,68,0,0,0,83,0,67,0,82,0,0,0,83,0,68,0,71,0,0,0,83,0,69,0,75,0,0,0,83,0,71,0,68,0,0,0,83,0,72,0,80,0,0,0,83,0,76,0,69,0,0,0,83,0,76,0,76,0,0,0,83,0,79,0,83,0,0,0,83,0,82,0,68,0,0,0,83,0,83,0,80,0,0,0,83,0,84,0,68,0,0,0,83,0,85,0,82,0,0,0,83,0,89,0,80,0,0,0,83,0,90,0,76,0,0,0,84,0,72,0,66,0,0,0,84,0,74,0,83,0,0,0,84,0,77,0,84,0,0,0,84,0,78,0,68,0,0,0,84,0,79,0,80,0,0,0,84,0,82,0,89,0,0,0,84,0,87,0,68,0,0,0,84,0,90,0,83,0,0,0,85,0,65,0,72,0,0,0,85,0,71,0,88,0,0,0,85,0,83,0,68,0,0,0,85,0,89,0,73,0,0,0,85,0,89,0,87,0,0,0,85,0,90,0,83,0,0,0,86,0,69,0,68,0,0,0,86,0,69,0,70,0,0,0,86,0,78,0,68,0,0,0,86,0,85,0,86,0,0,0,87,0,83,0,84,0,0,0,88,0,65,0,70,0,0,0,88,0,65,0,71,0,0,0,88,0,65,0,85,0,0,0,88,0,66,0,66,0,0,0,88,0,68,0,82,0,0,0,88,0,79,0,70,0,0,0,88,0,80,0,68,0,0,0,88,0,80,0,84,0,0,0,88,0,84,0,83,0,0,0,89,0,69,0,82,0,0,0,90,0,77,0,87,0,0,0,97,0,106,0,112,0,0,0,97,0,114,0,113,0,0,0,97,0,114,0,115,0,0,0,97,0,114,0,121,0,0,0,97,0,114,0,122,0,0,0,98,0,98,0,122,0,0,0,98,0,106,0,113,0,0,0,99,0,103,0,50,0,0,0,99,0,103,0,53,0,0,0,99,0,106,0,121,0,0,0,99,0,107,0,98,0,0,0,99,0,114,0,97,0,0,0,99,0,114,0,99,0,0,0,99,0,114,0,108,0,0,0,99,0,114,0,112,0,0,0,99,0,118,0,98,0,0,0,99,0,118,0,115,0,0,0,99,0,122,0,104,0,0,0,100,0,116,0,121,0,0,0,101,0,99,0,121,0,0,0,101,0,103,0,99,0,0,0,101,0,115,0,98,0,0,0,101,0,115,0,99,0,0,0,101,0,115,0,112,0,0,0,101,0,115,0,118,0,0,0,101,0,121,0,111,0,0,0,102,0,102,0,109,0,0,0,102,0,105,0,108,0,0,0,102,0,106,0,99,0,0,0,102,0,106,0,101,0,0,0,102,0,106,0,110,0,0,0,102,0,106,0,114,0,0,0,102,0,106,0,119,0,0,0,102,0,114,0,109,0,0,0,102,0,117,0,98,0,0,0,103,0,109,0,98,0,0,0,103,0,109,0,117,0,0,0,103,0,109,0,119,0,0,0,103,0,110,0,98,0,0,0,103,0,110,0,99,0,0,0,103,0,110,0,100,0,0,0,103,0,110,0,102,0,0,0,103,0,110,0,107,0,0,0,103,0,110,0,108,0,0,0,103,0,110,0,109,0,0,0,103,0,110,0,110,0,0,0,103,0,113,0,99,0,0,0,103,0,114,0,109,0,0,0,103,0,115,0,119,0,0,0,103,0,119,0,108,0,0,0,103,0,119,0,115,0,0,0,104,0,106,0,105,0,0,0,104,0,115,0,110,0,0,0,105,0,101,0,99,0,0,0,105,0,101,0,100,0,0,0,105,0,101,0,103,0,0,0,105,0,101,0,108,0,0,0,105,0,101,0,109,0,0,0,105,0,101,0,117,0,0,0,105,0,108,0,100,0,0,0,105,0,108,0,122,0,0,0,107,0,103,0,106,0,0,0,107,0,103,0,116,0,0,0,107,0,103,0,121,0,0,0,107,0,104,0,49,0,0,0,107,0,104,0,50,0,0,0,107,0,105,0,103,0,0,0,107,0,105,0,112,0,0,0,107,0,109,0,97,0,0,0,107,0,109,0,103,0,0,0,107,0,109,0,109,0,0,0,107,0,110,0,107,0,0,0,108,0,107,0,49,0,0,0,108,0,107,0,50,0,0,0,108,0,107,0,51,0,0,0,108,0,107,0,52,0,0,0,108,0,107,0,53,0,0,0,108,0,107,0,54,0,0,0,108,0,107,0,55,0,0,0,108,0,107,0,56,0,0,0,108,0,107,0,57,0,0,0,108,0,114,0,105,0,0,0,108,0,115,0,103,0,0,0,108,0,116,0,115,0,0,0,109,0,103,0,97,0,0,0,109,0,103,0,100,0,0,0,109,0,103,0,102,0,0,0,109,0,103,0,109,0,0,0,109,0,104,0,108,0,0,0,109,0,104,0,116,0,0,0,109,0,108,0,49,0,0,0,109,0,110,0,49,0,0,0,109,0,119,0,99,0,0,0,109,0,119,0,110,0,0,0,109,0,119,0,115,0,0,0,109,0,122,0,103,0,0,0,109,0,122,0,105,0,0,0,109,0,122,0,108,0,0,0,109,0,122,0,110,0,0,0,110,0,122,0,115,0,0,0,111,0,114,0,99,0,0,0,112,0,97,0,49,0,0,0,112,0,121,0,49,0,0,0,113,0,118,0,97,0,0,0,113,0,118,0,99,0,0,0,113,0,118,0,101,0,0,0,113,0,118,0,115,0,0,0,113,0,118,0,119,0,0,0,113,0,119,0,99,0,0,0,113,0,119,0,104,0,0,0,113,0,120,0,97,0,0,0,113,0,120,0,99,0,0,0,113,0,120,0,108,0,0,0,113,0,120,0,119,0,0,0,114,0,111,0,98,0,0,0,115,0,101,0,107,0,0,0,115,0,108,0,110,0,0,0,115,0,108,0,115,0,0,0,115,0,108,0,119,0,0,0,115,0,116,0,112,0,0,0,116,0,103,0,99,0,0,0,116,0,103,0,107,0,0,0,116,0,103,0,109,0,0,0,116,0,103,0,112,0,0,0,116,0,103,0,115,0,0,0,116,0,104,0,115,0,0,0,116,0,109,0,100,0,0,0,117,0,103,0,99,0,0,0,117,0,103,0,110,0,0,0,117,0,103,0,119,0,0,0,117,0,122,0,115,0,0,0,118,0,114,0,111,0,0,0,121,0,117,0,101,0,0,0,67,0,88,0,82,0,0,0,77,0,88,0,80,0,0,0,83,0,88,0,77,0,0,0,88,0,81,0,81,0,0,0,106,0,105,0,111,0,0,0,107,0,111,0,106,0,0,0,115,0,100,0,122,0,0,0,116,0,100,0,118,0,0,0,117,0,98,0,105,0,0,0,117,0,102,0,105,0,0,0,117,0,112,0,105,0,0,0,120,0,98,0,103,0,0,0,120,0,99,0,101,0,0,0,120,0,99,0,114,0,0,0,120,0,105,0,105,0,0,0,120,0,110,0,100,0,0,0,120,0,115,0,108,0,0,0,120,0,118,0,101,0,0,0,121,0,101,0,108,0,0,0,121,0,107,0,105,0,0,0,121,0,111,0,115,0,0,0,121,0,115,0,103,0,0,0,121,0,116,0,108,0,0,0,121,0,116,0,119,0,0,0,121,0,116,0,121,0,0,0,122,0,99,0,104,0,0,0,122,0,105,0,119,0,0,0,122,0,119,0,97,0,0,0,50,0,51,0,57,0,0,0,50,0,52,0,54,0,0,0,50,0,52,0,56,0,0,0,50,0,52,0,57,0,0,0,50,0,53,0,48,0,0,0,50,0,53,0,52,0,0,0,50,0,53,0,56,0,0,0,50,0,54,0,48,0,0,0,50,0,54,0,54,0,0,0,50,0,54,0,56,0,0,0,50,0,55,0,53,0,0,0,50,0,55,0,54,0,0,0,50,0,55,0,56,0,0,0,50,0,56,0,56,0,0,0,51,0,48,0,48,0,0,0,51,0,55,0,50,0,0,0,51,0,56,0,48,0,0,0,51,0,56,0,52,0,0,0,52,0,51,0,56,0,0,0,52,0,53,0,48,0,0,0,52,0,54,0,54,0,0,0,52,0,55,0,48,0,0,0,52,0,55,0,52,0,0,0,52,0,57,0,50,0,0,0,52,0,57,0,57,0,0,0,53,0,48,0,48,0,0,0,53,0,50,0,48,0,0,0,53,0,51,0,48,0,0,0,53,0,51,0,53,0,0,0,53,0,51,0,54,0,0,0,53,0,52,0,48,0,0,0,53,0,54,0,50,0,0,0,53,0,55,0,48,0,0,0,53,0,55,0,52,0,0,0,53,0,56,0,48,0,0,0,53,0,56,0,49,0,0,0,53,0,56,0,51,0,0,0,53,0,56,0,52,0,0,0,53,0,56,0,53,0,0,0,53,0,57,0,48,0,0,0,53,0,57,0,49,0,0,0,54,0,49,0,50,0,0,0,54,0,49,0,54,0,0,0,54,0,50,0,48,0,0,0,54,0,51,0,48,0,0,0,54,0,53,0,50,0,0,0,54,0,53,0,57,0,0,0,54,0,54,0,48,0,0,0,54,0,54,0,50,0,0,0,54,0,54,0,54,0,0,0,54,0,55,0,48,0,0,0,54,0,55,0,52,0,0,0,54,0,56,0,54,0,0,0,54,0,56,0,56,0,0,0,55,0,49,0,54,0,0,0,55,0,50,0,48,0,0,0,55,0,50,0,57,0,0,0,55,0,52,0,48,0,0,0,55,0,52,0,52,0,0,0,55,0,54,0,50,0,0,0,55,0,54,0,56,0,0,0,55,0,55,0,50,0,0,0,55,0,57,0,53,0,0,0,55,0,57,0,56,0,0,0,56,0,51,0,49,0,0,0,56,0,51,0,50,0,0,0,56,0,51,0,51,0,0,0,56,0,53,0,48,0,0,0,56,0,53,0,52,0,0,0,56,0,54,0,50,0,0,0,56,0,55,0,54,0,0,0,56,0,56,0,54,0,0,0,56,0,56,0,55,0,0,0,56,0,57,0,52,0,0,0,57,0,50,0,55,0,0,0,57,0,50,0,57,0,0,0,57,0,51,0,48,0,0,0,57,0,51,0,49,0,0,0,57,0,51,0,52,0,0,0,57,0,51,0,54,0,0,0,57,0,51,0,55,0,0,0,57,0,51,0,56,0,0,0,57,0,52,0,48,0,0,0,57,0,52,0,49,0,0,0,57,0,52,0,52,0,0,0,57,0,52,0,54,0,0,0,57,0,52,0,55,0,0,0,57,0,52,0,56,0,0,0,57,0,52,0,57,0,0,0,57,0,53,0,48,0,0,0,57,0,53,0,49,0,0,0,57,0,53,0,50,0,0,0,57,0,53,0,51,0,0,0,57,0,53,0,53,0,0,0,57,0,53,0,54,0,0,0,57,0,53,0,55,0,0,0,57,0,54,0,54,0,0,0,57,0,56,0,50,0,0,0,57,0,56,0,51,0,0,0,57,0,56,0,55,0,0,0,57,0,56,0,56,0,0,0,57,0,56,0,57,0,0,0,57,0,57,0,49,0,0,0,57,0,57,0,50,0,0,0,57,0,57,0,51,0,0,0,57,0,57,0,53,0,0,0,57,0,57,0,56,0,0,0,65,0,65,0,65,0,0,0,65,0,66,0,87,0,0,0,65,0,68,0,80,0,0,0,65,0,70,0,65,0,0,0,65,0,70,0,71,0,0,0,65,0,71,0,79,0,0,0,65,0,73,0,65,0,0,0,65,0,76,0,66,0,0,0,65,0,76,0,75,0,0,0,65,0,78,0,68,0,0,0,65,0,78,0,84,0,0,0,65,0,79,0,75,0,0,0,65,0,79,0,78,0,0,0,65,0,79,0,82,0,0,0,65,0,82,0,65,0,0,0,65,0,82,0,69,0,0,0,65,0,82,0,71,0,0,0,65,0,82,0,77,0,0,0,65,0,82,0,80,0,0,0,65,0,83,0,77,0,0,0,65,0,84,0,65,0,0,0,65,0,84,0,71,0,0,0,65,0,84,0,83,0,0,0,65,0,85,0,83,0,0,0,65,0,85,0,84,0,0,0,65,0,90,0,69,0,0,0,65,0,90,0,77,0,0,0,66,0,65,0,68,0,0,0,66,0,65,0,78,0,0,0,66,0,68,0,73,0,0,0,66,0,69,0,67,0,0,0,66,0,69,0,70,0,0,0,66,0,69,0,78,0,0,0,66,0,69,0,83,0,0,0,66,0,70,0,65,0,0,0,66,0,71,0,68,0,0,0,66,0,71,0,79,0,0,0,66,0,72,0,82,0,0,0,66,0,72,0,83,0,0,0,66,0,73,0,72,0,0,0,66,0,76,0,77,0,0,0,66,0,76,0,82,0,0,0,66,0,76,0,90,0,0,0,66,0,77,0,85,0,0,0,66,0,79,0,80,0,0,0,66,0,82,0,65,0,0,0,66,0,82,0,66,0,0,0,66,0,82,0,69,0,0,0,66,0,82,0,82,0,0,0,66,0,82,0,90,0,0,0,66,0,85,0,75,0,0,0,66,0,85,0,82,0,0,0,66,0,86,0,84,0,0,0,66,0,87,0,65,0,0,0,66,0,89,0,66,0,0,0,66,0,89,0,78,0,0,0,67,0,65,0,70,0,0,0,67,0,65,0,78,0,0,0,67,0,67,0,75,0,0,0,67,0,72,0,76,0,0,0,67,0,72,0,78,0,0,0,67,0,73,0,86,0,0,0,67,0,76,0,70,0,0,0,67,0,77,0,82,0,0,0,67,0,78,0,88,0,0,0,67,0,79,0,68,0,0,0,67,0,79,0,71,0,0,0,67,0,79,0,75,0,0,0,67,0,79,0,76,0,0,0,67,0,79,0,77,0,0,0,67,0,80,0,86,0,0,0,67,0,82,0,73,0,0,0,67,0,83,0,68,0,0,0,67,0,83,0,75,0,0,0,67,0,85,0,66,0,0,0,67,0,85,0,87,0,0,0,67,0,89,0,77,0,0,0,67,0,90,0,69,0,0,0,68,0,68,0,77,0,0,0,68,0,68,0,82,0,0,0,68,0,69,0,77,0,0,0,68,0,69,0,85,0,0,0,68,0,74,0,73,0,0,0,68,0,78,0,75,0,0,0,68,0,79,0,77,0,0,0,68,0,90,0,65,0,0,0,69,0,67,0,85,0,0,0,69,0,67,0,86,0,0,0,69,0,69,0,75,0,0,0,69,0,71,0,89,0,0,0,69,0,82,0,73,0,0,0,69,0,83,0,72,0,0,0,69,0,83,0,84,0,0,0,70,0,73,0,77,0,0,0,70,0,73,0,78,0,0,0,70,0,74,0,73,0,0,0,70,0,82,0,65,0,0,0,70,0,82,0,70,0,0,0,70,0,82,0,79,0,0,0,70,0,83,0,77,0,0,0,70,0,88,0,88,0,0,0,71,0,65,0,66,0,0,0,71,0,66,0,82,0,0,0,71,0,69,0,75,0,0,0,71,0,69,0,79,0,0,0,71,0,71,0,89,0,0,0,71,0,72,0,65,0,0,0,71,0,72,0,67,0,0,0,71,0,73,0,66,0,0,0,71,0,73,0,78,0,0,0,71,0,76,0,80,0,0,0,71,0,77,0,66,0,0,0,71,0,78,0,66,0,0,0,71,0,78,0,81,0,0,0,71,0,78,0,83,0,0,0,71,0,81,0,69,0,0,0,71,0,82,0,67,0,0,0,71,0,82,0,76,0,0,0,71,0,85,0,70,0,0,0,71,0,85,0,89,0,0,0,71,0,87,0,69,0,0,0,71,0,87,0,80,0,0,0,72,0,77,0,68,0,0,0,72,0,78,0,68,0,0,0,72,0,82,0,68,0,0,0,72,0,82,0,86,0,0,0,72,0,84,0,73,0,0,0,72,0,85,0,78,0,0,0,73,0,68,0,78,0,0,0,73,0,69,0,80,0,0,0,73,0,76,0,80,0,0,0,73,0,76,0,82,0,0,0,73,0,77,0,78,0,0,0,73,0,78,0,68,0,0,0,73,0,79,0,84,0,0,0,73,0,82,0,76,0,0,0,73,0,82,0,78,0,0,0,73,0,82,0,81,0,0,0,73,0,83,0,76,0,0,0,73,0,83,0,82,0,0,0,73,0,84,0,76,0,0,0,74,0,65,0,77,0,0,0,74,0,69,0,89,0,0,0,74,0,79,0,82,0,0,0,74,0,80,0,78,0,0,0,75,0,69,0,78,0,0,0,75,0,71,0,90,0,0,0,75,0,73,0,82,0,0,0,75,0,78,0,65,0,0,0,75,0,79,0,82,0,0,0,75,0,82,0,72,0,0,0,75,0,82,0,79,0,0,0,75,0,87,0,84,0,0,0,76,0,65,0,79,0,0,0,76,0,66,0,82,0,0,0,76,0,67,0,65,0,0,0,76,0,73,0,69,0,0,0,76,0,75,0,65,0,0,0,76,0,84,0,84,0,0,0,76,0,84,0,85,0,0,0,76,0,85,0,67,0,0,0,76,0,85,0,70,0,0,0,76,0,85,0,76,0,0,0,76,0,85,0,88,0,0,0,76,0,86,0,76,0,0,0,76,0,86,0,82,0,0,0,77,0,65,0,82,0,0,0,77,0,67,0,79,0,0,0,77,0,68,0,65,0,0,0,77,0,68,0,67,0,0,0,77,0,68,0,71,0,0,0,77,0,68,0,86,0,0,0,77,0,69,0,88,0,0,0,77,0,72,0,76,0,0,0,77,0,75,0,78,0,0,0,77,0,76,0,70,0,0,0,77,0,77,0,82,0,0,0,77,0,78,0,71,0,0,0,77,0,79,0,90,0,0,0,77,0,82,0,84,0,0,0,77,0,84,0,76,0,0,0,77,0,84,0,80,0,0,0,77,0,84,0,81,0,0,0,77,0,85,0,83,0,0,0,77,0,86,0,80,0,0,0,77,0,87,0,73,0,0,0,77,0,89,0,83,0,0,0,77,0,90,0,69,0,0,0,77,0,90,0,77,0,0,0,78,0,67,0,76,0,0,0,78,0,69,0,82,0,0,0,78,0,70,0,75,0,0,0,78,0,71,0,65,0,0,0,78,0,73,0,85,0,0,0,78,0,76,0,68,0,0,0,78,0,76,0,71,0,0,0,78,0,79,0,82,0,0,0,78,0,84,0,90,0,0,0,78,0,90,0,76,0,0,0,80,0,65,0,75,0,0,0,80,0,69,0,73,0,0,0,80,0,69,0,82,0,0,0,80,0,69,0,83,0,0,0,80,0,72,0,76,0,0,0,80,0,76,0,87,0,0,0,80,0,76,0,90,0,0,0,80,0,78,0,71,0,0,0,80,0,79,0,76,0,0,0,80,0,82,0,73,0,0,0,80,0,82,0,75,0,0,0,80,0,82,0,84,0,0,0,80,0,82,0,89,0,0,0,80,0,83,0,69,0,0,0,80,0,84,0,69,0,0,0,80,0,89,0,70,0,0,0,81,0,65,0,84,0,0,0,81,0,77,0,77,0,0,0,81,0,78,0,78,0,0,0,81,0,79,0,79,0,0,0,81,0,80,0,80,0,0,0,81,0,81,0,81,0,0,0,81,0,82,0,82,0,0,0,81,0,83,0,83,0,0,0,81,0,84,0,84,0,0,0,81,0,86,0,86,0,0,0,81,0,87,0,87,0,0,0,81,0,88,0,88,0,0,0,81,0,89,0,89,0,0,0,81,0,90,0,90,0,0,0,82,0,69,0,85,0,0,0,82,0,72,0,68,0,0,0,82,0,79,0,76,0,0,0,82,0,79,0,85,0,0,0,82,0,85,0,82,0,0,0,82,0,85,0,83,0,0,0,82,0,87,0,65,0,0,0,83,0,65,0,85,0,0,0,83,0,68,0,68,0,0,0,83,0,68,0,78,0,0,0,83,0,68,0,80,0,0,0,83,0,69,0,78,0,0,0,83,0,71,0,83,0,0,0,83,0,72,0,78,0,0,0,83,0,74,0,77,0,0,0,83,0,75,0,75,0,0,0,83,0,82,0,66,0,0,0,83,0,82,0,71,0,0,0,83,0,83,0,68,0,0,0,83,0,85,0,78,0,0,0,83,0,86,0,67,0,0,0,83,0,86,0,75,0,0,0,83,0,87,0,69,0,0,0,83,0,87,0,90,0,0,0,83,0,89,0,67,0,0,0,83,0,89,0,82,0,0,0,84,0,67,0,68,0,0,0,84,0,71,0,79,0,0,0,84,0,72,0,65,0,0,0,84,0,74,0,75,0,0,0,84,0,74,0,82,0,0,0,84,0,75,0,76,0,0,0,84,0,76,0,83,0,0,0,84,0,77,0,77,0,0,0,84,0,79,0,78,0,0,0,84,0,80,0,69,0,0,0,84,0,82,0,76,0,0,0,84,0,84,0,79,0,0,0,84,0,85,0,82,0,0,0,84,0,85,0,86,0,0,0,84,0,87,0,78,0,0,0,84,0,90,0,65,0,0,0,85,0,65,0,75,0,0,0,85,0,77,0,73,0,0,0,85,0,82,0,89,0,0,0,85,0,83,0,83,0,0,0,85,0,89,0,80,0,0,0,85,0,90,0,66,0,0,0,86,0,65,0,84,0,0,0,86,0,67,0,84,0,0,0,86,0,69,0,66,0,0,0,86,0,69,0,78,0,0,0,86,0,71,0,66,0,0,0,86,0,78,0,77,0,0,0,86,0,78,0,78,0,0,0,86,0,85,0,84,0,0,0,87,0,76,0,70,0,0,0,88,0,66,0,67,0,0,0,88,0,67,0,67,0,0,0,88,0,68,0,68,0,0,0,88,0,70,0,70,0,0,0,88,0,70,0,85,0,0,0,88,0,71,0,71,0,0,0,88,0,72,0,72,0,0,0,88,0,73,0,73,0,0,0,88,0,74,0,74,0,0,0,88,0,75,0,75,0,0,0,88,0,76,0,76,0,0,0,88,0,78,0,78,0,0,0,88,0,79,0,79,0,0,0,88,0,80,0,80,0,0,0,88,0,82,0,82,0,0,0,88,0,83,0,83,0,0,0,88,0,84,0,84,0,0,0,88,0,85,0,85,0,0,0,88,0,86,0,86,0,0,0,88,0,87,0,87,0,0,0,88,0,89,0,89,0,0,0,88,0,90,0,90,0,0,0,89,0,69,0,77,0,0,0,89,0,85,0,68,0,0,0,89,0,85,0,71,0,0,0,89,0,85,0,82,0,0,0,90,0,77,0,66,0,0,0,90,0,82,0,78,0,0,0,90,0,82,0,90,0,0,0,90,0,87,0,68,0,0,0,90,0,87,0,69,0,0,0,90,0,87,0,76,0,0,0,90,0,87,0,82,0,0,0,97,0,97,0,101,0,0,0,97,0,97,0,109,0,0,0,97,0,97,0,111,0,0,0,97,0,97,0,122,0,0,0,97,0,98,0,104,0,0,0,97,0,98,0,118,0,0,0,97,0,99,0,109,0,0,0,97,0,99,0,113,0,0,0,97,0,99,0,119,0,0,0,97,0,99,0,120,0,0,0,97,0,99,0,121,0,0,0,97,0,100,0,102,0,0,0,97,0,100,0,108,0,0,0,97,0,100,0,112,0,0,0,97,0,101,0,98,0,0,0,97,0,101,0,117,0,0,0,97,0,101,0,119,0,0,0,97,0,102,0,98,0,0,0,97,0,102,0,107,0,0,0,97,0,102,0,122,0,0,0,97,0,105,0,115,0,0,0,97,0,105,0,116,0,0,0,97,0,106,0,97,0,0,0,97,0,106,0,103,0,0,0,97,0,106,0,105,0,0,0,97,0,106,0,110,0,0,0,97,0,106,0,115,0,0,0,97,0,106,0,119,0,0,0,97,0,106,0,122,0,0,0,97,0,108,0,110,0,0,0,97,0,108,0,115,0,0,0,97,0,111,0,120,0,0,0,97,0,111,0,122,0,0,0,97,0,112,0,99,0,0,0,97,0,112,0,100,0,0,0,97,0,113,0,97,0,0,0,97,0,113,0,103,0,0,0,97,0,113,0,112,0,0,0,97,0,113,0,114,0,0,0,97,0,113,0,116,0,0,0,97,0,113,0,122,0,0,0,97,0,114,0,102,0,0,0,97,0,114,0,103,0,0,0,97,0,114,0,104,0,0,0,97,0,114,0,106,0,0,0,97,0,114,0,108,0,0,0,97,0,114,0,112,0,0,0,97,0,114,0,114,0,0,0,97,0,114,0,117,0,0,0,97,0,114,0,118,0,0,0,97,0,114,0,119,0,0,0,97,0,114,0,120,0,0,0,97,0,115,0,100,0,0,0,97,0,116,0,49,0,0,0,97,0,116,0,50,0,0,0,97,0,116,0,51,0,0,0,97,0,116,0,52,0,0,0,97,0,116,0,53,0,0,0,97,0,116,0,54,0,0,0,97,0,116,0,55,0,0,0,97,0,116,0,56,0,0,0,97,0,116,0,57,0,0,0,97,0,117,0,101,0,0,0,97,0,117,0,122,0,0,0,97,0,118,0,98,0,0,0,97,0,118,0,100,0,0,0,97,0,118,0,108,0,0,0,97,0,119,0,107,0,0,0,97,0,120,0,98,0,0,0,97,0,120,0,103,0,0,0,97,0,120,0,120,0,0,0,97,0,121,0,104,0,0,0,97,0,121,0,108,0,0,0,97,0,121,0,110,0,0,0,97,0,121,0,112,0,0,0,97,0,121,0,114,0,0,0,97,0,121,0,122,0,0,0,97,0,122,0,98,0,0,0,97,0,122,0,103,0,0,0,97,0,122,0,106,0,0,0,97,0,122,0,116,0,0,0,97,0,122,0,122,0,0,0,98,0,99,0,99,0,0,0,98,0,99,0,108,0,0,0,98,0,100,0,97,0,0,0,98,0,100,0,98,0,0,0,98,0,100,0,99,0,0,0,98,0,100,0,100,0,0,0,98,0,100,0,101,0,0,0,98,0,100,0,104,0,0,0,98,0,103,0,109,0,0,0,98,0,104,0,107,0,0,0,98,0,104,0,114,0,0,0,98,0,105,0,99,0,0,0,98,0,105,0,106,0,0,0,98,0,106,0,100,0,0,0,98,0,106,0,110,0,0,0,98,0,107,0,97,0,0,0,98,0,107,0,98,0,0,0,98,0,109,0,109,0,0,0,98,0,109,0,121,0,0,0,98,0,109,0,122,0,0,0,98,0,111,0,98,0,0,0,98,0,111,0,99,0,0,0,98,0,111,0,110,0,0,0,98,0,111,0,111,0,0,0,98,0,111,0,115,0,0,0,98,0,111,0,116,0,0,0,98,0,112,0,97,0,0,0,98,0,112,0,98,0,0,0,98,0,116,0,97,0,0,0,98,0,116,0,98,0,0,0,98,0,116,0,106,0,0,0,98,0,116,0,108,0,0,0,98,0,118,0,101,0,0,0,98,0,118,0,117,0,0,0,98,0,120,0,107,0,0,0,98,0,120,0,114,0,0,0,98,0,120,0,115,0,0,0,98,0,120,0,120,0,0,0,98,0,120,0,122,0,0,0,98,0,121,0,121,0,0,0,98,0,121,0,122,0,0,0,98,0,122,0,99,0,0,0,99,0,98,0,101,0,0,0,99,0,98,0,103,0,0,0,99,0,98,0,104,0,0,0,99,0,98,0,121,0,0,0,99,0,99,0,97,0,0,0,99,0,99,0,106,0,0,0,99,0,99,0,113,0,0,0,99,0,100,0,97,0,0,0,99,0,100,0,103,0,0,0,99,0,100,0,111,0,0,0,99,0,101,0,103,0,0,0,99,0,101,0,110,0,0,0,99,0,101,0,116,0,0,0,99,0,101,0,121,0,0,0,99,0,102,0,97,0,0,0,99,0,102,0,100,0,0,0,99,0,102,0,103,0,0,0,99,0,102,0,109,0,0,0,99,0,103,0,55,0,0,0,99,0,103,0,56,0,0,0,99,0,103,0,57,0,0,0,99,0,103,0,99,0,0,0,99,0,103,0,103,0,0,0,99,0,103,0,107,0,0,0,99,0,104,0,114,0,0,0,99,0,105,0,104,0,0,0,99,0,105,0,107,0,0,0,99,0,105,0,112,0,0,0,99,0,105,0,114,0,0,0,99,0,105,0,119,0,0,0,99,0,105,0,121,0,0,0,99,0,106,0,97,0,0,0,99,0,106,0,107,0,0,0,99,0,106,0,114,0,0,0,99,0,106,0,115,0,0,0,99,0,107,0,97,0,0,0,99,0,107,0,104,0,0,0,99,0,108,0,99,0,0,0,99,0,108,0,101,0,0,0,99,0,108,0,111,0,0,0,99,0,108,0,119,0,0,0,99,0,108,0,121,0,0,0,99,0,109,0,101,0,0,0,99,0,109,0,105,0,0,0,99,0,109,0,107,0,0,0,99,0,110,0,114,0,0,0,99,0,111,0,121,0,0,0,99,0,111,0,122,0,0,0,99,0,112,0,105,0,0,0,99,0,112,0,115,0,0,0,99,0,112,0,117,0,0,0,99,0,112,0,120,0,0,0,99,0,113,0,100,0,0,0,99,0,113,0,117,0,0,0,99,0,114,0,103,0,0,0,99,0,114,0,104,0,0,0,99,0,114,0,115,0,0,0,99,0,116,0,97,0,0,0,99,0,117,0,103,0,0,0,99,0,117,0,109,0,0,0,99,0,118,0,103,0,0,0,99,0,118,0,110,0,0,0,99,0,119,0,100,0,0,0,99,0,119,0,101,0,0,0,99,0,119,0,103,0,0,0,99,0,119,0,116,0,0,0,99,0,121,0,111,0,0,0,99,0,122,0,107,0,0,0,99,0,122,0,111,0,0,0,99,0,122,0,116,0,0,0,100,0,97,0,97,0,0,0,100,0,97,0,102,0,0,0,100,0,97,0,112,0,0,0,100,0,99,0,99,0,0,0,100,0,100,0,97,0,0,0,100,0,100,0,103,0,0,0,100,0,101,0,122,0,0,0,100,0,103,0,117,0,0,0,100,0,104,0,100,0,0,0,100,0,104,0,103,0,0,0,100,0,105,0,107,0,0,0,100,0,105,0,113,0,0,0,100,0,105,0,117,0,0,0,100,0,106,0,108,0,0,0,100,0,106,0,114,0,0,0,100,0,107,0,107,0,0,0,100,0,107,0,120,0,0,0,100,0,108,0,103,0,0,0,100,0,108,0,107,0,0,0,100,0,110,0,97,0,0,0,100,0,110,0,103,0,0,0,100,0,110,0,121,0,0,0,100,0,114,0,103,0,0,0,100,0,114,0,104,0,0,0,100,0,114,0,108,0,0,0,100,0,114,0,113,0,0,0,100,0,114,0,114,0,0,0,100,0,114,0,119,0,0,0,100,0,115,0,101,0,0,0,100,0,115,0,113,0,0,0,100,0,115,0,122,0,0,0,100,0,116,0,100,0,0,0,100,0,116,0,107,0,0,0,100,0,117,0,106,0,0,0,100,0,117,0,112,0,0,0,100,0,118,0,97,0,0,0,100,0,119,0,97,0,0,0,100,0,119,0,107,0,0,0,100,0,119,0,108,0,0,0,100,0,119,0,117,0,0,0,100,0,119,0,119,0,0,0,100,0,121,0,100,0,0,0,100,0,121,0,103,0,0,0,100,0,121,0,105,0,0,0,100,0,121,0,117,0,0,0,100,0,121,0,121,0,0,0,100,0,122,0,97,0,0,0,100,0,122,0,100,0,0,0,100,0,122,0,101,0,0,0,100,0,122,0,103,0,0,0,100,0,122,0,108,0,0,0,100,0,122,0,110,0,0,0,101,0,97,0,97,0,0,0,101,0,98,0,99,0,0,0,101,0,98,0,103,0,0,0,101,0,98,0,107,0,0,0,101,0,98,0,117,0,0,0,101,0,99,0,97,0,0,0,101,0,99,0,98,0,0,0,101,0,99,0,99,0,0,0,101,0,99,0,100,0,0,0,101,0,99,0,102,0,0,0,101,0,99,0,103,0,0,0,101,0,99,0,104,0,0,0,101,0,99,0,105,0,0,0,101,0,99,0,108,0,0,0,101,0,99,0,109,0,0,0,101,0,99,0,112,0,0,0,101,0,99,0,114,0,0,0,101,0,99,0,115,0,0,0,101,0,99,0,116,0,0,0,101,0,99,0,117,0,0,0,101,0,99,0,120,0,0,0,101,0,99,0,122,0,0,0,101,0,101,0,101,0,0,0,101,0,102,0,97,0,0,0,101,0,102,0,101,0,0,0,101,0,102,0,105,0,0,0,101,0,103,0,97,0,0,0,101,0,103,0,111,0,0,0,101,0,104,0,115,0,0,0,101,0,105,0,112,0,0,0,101,0,105,0,118,0,0,0,101,0,107,0,99,0,0,0,101,0,107,0,103,0,0,0,101,0,107,0,105,0,0,0,101,0,107,0,114,0,0,0,101,0,108,0,101,0,0,0,101,0,108,0,111,0,0,0,101,0,108,0,112,0,0,0,101,0,108,0,120,0,0,0,101,0,109,0,101,0,0,0,101,0,109,0,103,0,0,0,101,0,109,0,105,0,0,0,101,0,109,0,107,0,0,0,101,0,109,0,115,0,0,0,101,0,109,0,117,0,0,0,101,0,110,0,98,0,0,0,101,0,110,0,104,0,0,0,101,0,111,0,116,0,0,0,101,0,112,0,105,0,0,0,101,0,115,0,113,0,0,0,101,0,116,0,120,0,0,0,101,0,116,0,122,0,0,0,101,0,118,0,101,0,0,0,101,0,118,0,104,0,0,0,101,0,118,0,110,0,0,0,101,0,119,0,111,0,0,0,101,0,120,0,116,0,0,0,101,0,121,0,97,0,0,0,101,0,122,0,97,0,0,0,101,0,122,0,101,0,0,0,102,0,97,0,100,0,0,0,102,0,97,0,112,0,0,0,102,0,97,0,114,0,0,0,102,0,97,0,116,0,0,0,102,0,97,0,117,0,0,0,102,0,98,0,108,0,0,0,102,0,99,0,115,0,0,0,102,0,102,0,105,0,0,0,102,0,103,0,114,0,0,0,102,0,105,0,97,0,0,0,102,0,105,0,112,0,0,0,102,0,105,0,114,0,0,0,102,0,105,0,119,0,0,0,102,0,107,0,107,0,0,0,102,0,107,0,118,0,0,0,102,0,108,0,108,0,0,0,102,0,108,0,121,0,0,0,102,0,109,0,117,0,0,0,102,0,110,0,98,0,0,0,102,0,110,0,105,0,0,0,102,0,111,0,100,0,0,0,102,0,111,0,105,0,0,0,102,0,111,0,120,0,0,0,102,0,112,0,101,0,0,0,102,0,113,0,115,0,0,0,102,0,114,0,99,0,0,0,102,0,114,0,107,0,0,0,102,0,114,0,110,0,0,0,102,0,115,0,108,0,0,0,102,0,115,0,115,0,0,0,102,0,117,0,99,0,0,0,102,0,117,0,101,0,0,0,102,0,117,0,102,0,0,0,102,0,117,0,104,0,0,0,102,0,117,0,105,0,0,0,102,0,117,0,113,0,0,0,102,0,117,0,121,0,0,0,102,0,118,0,114,0,0,0,102,0,119,0,97,0,0,0,102,0,119,0,101,0,0,0,103,0,97,0,49,0,0,0,103,0,97,0,50,0,0,0,103,0,97,0,51,0,0,0,103,0,97,0,52,0,0,0,103,0,97,0,53,0,0,0,103,0,97,0,54,0,0,0,103,0,97,0,55,0,0,0,103,0,97,0,56,0,0,0,103,0,97,0,57,0,0,0,103,0,97,0,97,0,0,0,103,0,97,0,118,0,0,0,103,0,97,0,120,0,0,0,103,0,97,0,122,0,0,0,103,0,98,0,99,0,0,0,103,0,99,0,108,0,0,0,103,0,99,0,110,0,0,0,103,0,99,0,116,0,0,0,103,0,100,0,120,0,0,0,103,0,101,0,113,0,0,0,103,0,102,0,107,0,0,0,103,0,102,0,116,0,0,0,103,0,102,0,120,0,0,0,103,0,103,0,103,0,0,0,103,0,103,0,114,0,0,0,103,0,103,0,119,0,0,0,103,0,104,0,99,0,0,0,103,0,104,0,101,0,0,0,103,0,104,0,104,0,0,0,103,0,105,0,111,0,0,0,103,0,106,0,107,0,0,0,103,0,106,0,114,0,0,0,103,0,106,0,117,0,0,0,103,0,107,0,97,0,0,0,103,0,107,0,112,0,0,0,103,0,107,0,117,0,0,0,103,0,108,0,104,0,0,0,103,0,108,0,105,0,0,0,103,0,108,0,111,0,0,0,103,0,108,0,114,0,0,0,103,0,108,0,117,0,0,0,103,0,108,0,119,0,0,0,103,0,108,0,121,0,0,0,103,0,109,0,108,0,0,0,103,0,109,0,109,0,0,0,103,0,110,0,111,0,0,0,103,0,110,0,122,0,0,0,103,0,111,0,109,0,0,0,103,0,112,0,97,0,0,0,103,0,112,0,101,0,0,0,103,0,112,0,110,0,0,0,103,0,113,0,97,0,0,0,103,0,113,0,110,0,0,0,103,0,113,0,114,0,0,0,103,0,113,0,117,0,0,0,103,0,114,0,97,0,0,0,103,0,114,0,98,0,0,0,103,0,114,0,99,0,0,0,103,0,114,0,100,0,0,0,103,0,114,0,102,0,0,0,103,0,114,0,103,0,0,0,103,0,114,0,104,0,0,0,103,0,114,0,106,0,0,0,103,0,114,0,107,0,0,0,103,0,114,0,108,0,0,0,103,0,115,0,101,0,0,0,103,0,115,0,103,0,0,0,103,0,115,0,115,0,0,0,103,0,116,0,105,0,0,0,103,0,116,0,117,0,0,0,103,0,117,0,103,0,0,0,103,0,117,0,110,0,0,0,103,0,117,0,122,0,0,0,103,0,118,0,97,0,0,0,103,0,118,0,99,0,0,0,103,0,118,0,106,0,0,0,103,0,118,0,121,0,0,0,103,0,119,0,114,0,0,0,103,0,120,0,120,0,0,0,103,0,121,0,97,0,0,0,103,0,121,0,98,0,0,0,103,0,121,0,105,0,0,0,103,0,121,0,114,0,0,0,103,0,122,0,105,0,0,0,103,0,122,0,110,0,0,0,104,0,97,0,101,0,0,0,104,0,97,0,107,0,0,0,104,0,98,0,117,0,0,0,104,0,99,0,97,0,0,0,104,0,99,0,104,0,0,0,104,0,100,0,110,0,0,0,104,0,100,0,115,0,0,0,104,0,100,0,121,0,0,0,104,0,101,0,97,0,0,0,104,0,101,0,100,0,0,0,104,0,101,0,109,0,0,0,104,0,103,0,109,0,0,0,104,0,103,0,119,0,0,0,104,0,104,0,105,0,0,0,104,0,104,0,114,0,0,0,104,0,104,0,121,0,0,0,104,0,105,0,109,0,0,0,104,0,105,0,111,0,0,0,104,0,105,0,114,0,0,0,104,0,105,0,116,0,0,0,104,0,107,0,97,0,0,0,104,0,107,0,101,0,0,0,104,0,107,0,104,0,0,0,104,0,107,0,107,0,0,0,104,0,107,0,110,0,0,0,104,0,110,0,97,0,0,0,104,0,110,0,117,0,0,0,104,0,112,0,111,0,0,0,104,0,112,0,115,0,0,0,104,0,114,0,97,0,0,0,104,0,114,0,99,0,0,0,104,0,114,0,101,0,0,0,104,0,114,0,107,0,0,0,104,0,114,0,109,0,0,0,104,0,114,0,114,0,0,0,104,0,114,0,122,0,0,0,104,0,115,0,98,0,0,0,104,0,115,0,108,0,0,0,104,0,115,0,115,0,0,0,104,0,116,0,111,0,0,0,104,0,116,0,115,0,0,0,104,0,116,0,117,0,0,0,104,0,116,0,120,0,0,0,104,0,118,0,99,0,0,0,104,0,118,0,107,0,0,0,104,0,118,0,110,0,0,0,104,0,118,0,118,0,0,0,104,0,119,0,97,0,0,0,104,0,119,0,99,0,0,0,104,0,119,0,111,0,0,0,104,0,121,0,97,0,0,0,105,0,97,0,105,0,0,0,105,0,97,0,112,0,0,0,105,0,97,0,114,0,0,0,105,0,98,0,105,0,0,0,105,0,98,0,117,0,0,0,105,0,98,0,121,0,0,0,105,0,99,0,104,0,0,0,105,0,99,0,108,0,0,0,105,0,99,0,114,0,0,0,105,0,100,0,97,0,0,0,105,0,100,0,105,0,0,0,105,0,102,0,107,0,0,0,105,0,102,0,109,0,0,0,105,0,103,0,98,0,0,0,105,0,103,0,101,0,0,0,105,0,103,0,103,0,0,0,105,0,103,0,115,0,0,0,105,0,103,0,119,0,0,0,105,0,104,0,98,0,0,0,105,0,104,0,105,0,0,0,105,0,104,0,112,0,0,0,105,0,104,0,119,0,0,0,105,0,105,0,110,0,0,0,105,0,105,0,114,0,0,0,105,0,106,0,99,0,0,0,105,0,106,0,101,0,0,0,105,0,106,0,106,0,0,0,105,0,106,0,115,0,0,0,105,0,107,0,101,0,0,0,105,0,107,0,116,0,0,0,105,0,107,0,122,0,0,0,105,0,108,0,107,0,0,0,105,0,108,0,108,0,0,0,105,0,108,0,119,0,0,0,105,0,109,0,101,0,0,0,105,0,109,0,108,0,0,0,105,0,110,0,106,0,0,0,105,0,110,0,122,0,0,0,105,0,111,0,114,0,0,0,105,0,111,0,117,0,0,0,105,0,112,0,105,0,0,0,105,0,112,0,111,0,0,0,105,0,113,0,117,0,0,0,105,0,113,0,119,0,0,0,105,0,114,0,101,0,0,0,105,0,114,0,114,0,0,0,105,0,114,0,117,0,0,0,105,0,115,0,49,0,0,0,105,0,115,0,50,0,0,0,105,0,115,0,51,0,0,0,105,0,115,0,52,0,0,0,105,0,115,0,53,0,0,0,105,0,115,0,54,0,0,0,105,0,115,0,55,0,0,0,105,0,115,0,56,0,0,0,105,0,115,0,107,0,0,0,105,0,115,0,114,0,0,0,105,0,116,0,105,0,0,0,105,0,116,0,111,0,0,0,105,0,117,0,109,0,0,0,105,0,118,0,118,0,0,0,105,0,119,0,107,0,0,0,105,0,119,0,109,0,0,0,105,0,119,0,111,0,0,0,105,0,119,0,115,0,0,0,105,0,120,0,99,0,0,0,105,0,120,0,108,0,0,0,105,0,121,0,97,0,0,0,105,0,121,0,111,0,0,0,105,0,121,0,120,0,0,0,105,0,122,0,104,0,0,0,105,0,122,0,105,0,0,0,105,0,122,0,114,0,0,0,106,0,97,0,104,0,0,0,106,0,97,0,120,0,0,0,106,0,98,0,101,0,0,0,106,0,98,0,114,0,0,0,106,0,98,0,119,0,0,0,106,0,100,0,97,0,0,0,106,0,100,0,103,0,0,0,106,0,100,0,116,0,0,0,106,0,101,0,98,0,0,0,106,0,101,0,101,0,0,0,106,0,101,0,103,0,0,0,106,0,101,0,114,0,0,0,106,0,103,0,101,0,0,0,106,0,103,0,107,0,0,0,106,0,103,0,111,0,0,0,106,0,104,0,105,0,0,0,106,0,104,0,115,0,0,0,106,0,105,0,113,0,0,0,106,0,105,0,121,0,0,0,106,0,106,0,101,0,0,0,106,0,106,0,114,0,0,0,106,0,107,0,97,0,0,0,106,0,107,0,109,0,0,0,106,0,107,0,117,0,0,0,106,0,108,0,101,0,0,0,106,0,108,0,115,0,0,0,106,0,109,0,105,0,0,0,106,0,109,0,108,0,0,0,106,0,109,0,110,0,0,0,106,0,110,0,97,0,0,0,106,0,110,0,100,0,0,0,106,0,110,0,108,0,0,0,106,0,110,0,115,0,0,0,106,0,111,0,100,0,0,0,106,0,111,0,103,0,0,0,106,0,112,0,97,0,0,0,106,0,112,0,114,0,0,0,106,0,112,0,120,0,0,0,106,0,113,0,114,0,0,0,106,0,114,0,114,0,0,0,106,0,115,0,108,0,0,0,106,0,117,0,119,0,0,0,106,0,117,0,121,0,0,0,106,0,118,0,100,0,0,0,106,0,118,0,110,0,0,0,106,0,119,0,105,0,0,0,106,0,121,0,97,0,0,0,106,0,121,0,101,0,0,0,106,0,121,0,121,0,0,0,107,0,98,0,102,0,0,0,107,0,100,0,118,0,0,0,107,0,103,0,99,0,0,0,107,0,103,0,104,0,0,0,107,0,103,0,111,0,0,0,107,0,104,0,51,0,0,0,107,0,104,0,52,0,0,0,107,0,104,0,53,0,0,0,107,0,104,0,54,0,0,0,107,0,104,0,55,0,0,0,107,0,104,0,56,0,0,0,107,0,104,0,57,0,0,0,107,0,104,0,107,0,0,0,107,0,106,0,102,0,0,0,107,0,109,0,114,0,0,0,107,0,110,0,99,0,0,0,107,0,110,0,103,0,0,0,107,0,111,0,97,0,0,0,107,0,111,0,107,0,0,0,107,0,111,0,120,0,0,0,107,0,112,0,101,0,0,0,107,0,112,0,112,0,0,0,107,0,114,0,105,0,0,0,107,0,114,0,109,0,0,0,107,0,116,0,114,0,0,0,107,0,118,0,98,0,0,0,107,0,118,0,114,0,0,0,107,0,118,0,115,0,0,0,107,0,119,0,113,0,0,0,107,0,120,0,100,0,0,0,107,0,120,0,101,0,0,0,107,0,120,0,102,0,0,0,107,0,120,0,108,0,0,0,107,0,120,0,117,0,0,0,107,0,122,0,104,0,0,0,107,0,122,0,106,0,0,0,107,0,122,0,116,0,0,0,108,0,97,0,107,0,0,0,108,0,97,0,117,0,0,0,108,0,98,0,107,0,0,0,108,0,99,0,102,0,0,0,108,0,99,0,104,0,0,0,108,0,99,0,115,0,0,0,108,0,100,0,100,0,0,0,108,0,101,0,103,0,0,0,108,0,102,0,97,0,0,0,108,0,102,0,110,0,0,0,108,0,103,0,122,0,0,0,108,0,104,0,112,0,0,0,108,0,105,0,105,0,0,0,108,0,105,0,119,0,0,0,108,0,106,0,97,0,0,0,108,0,106,0,101,0,0,0,108,0,106,0,105,0,0,0,108,0,106,0,108,0,0,0,108,0,106,0,112,0,0,0,108,0,107,0,98,0,0,0,108,0,107,0,115,0,0,0,108,0,107,0,121,0,0,0,108,0,108,0,115,0,0,0,108,0,108,0,120,0,0,0,108,0,110,0,115,0,0,0,108,0,110,0,117,0,0,0,108,0,110,0,122,0,0,0,108,0,111,0,122,0,0,0,108,0,112,0,97,0,0,0,108,0,112,0,101,0,0,0,108,0,113,0,114,0,0,0,108,0,114,0,97,0,0,0,108,0,114,0,99,0,0,0,108,0,114,0,103,0,0,0,108,0,114,0,114,0,0,0,108,0,114,0,116,0,0,0,108,0,114,0,118,0,0,0,108,0,114,0,122,0,0,0,108,0,115,0,97,0,0,0,108,0,115,0,99,0,0,0,108,0,115,0,100,0,0,0,108,0,115,0,101,0,0,0,108,0,115,0,102,0,0,0,108,0,115,0,106,0,0,0,108,0,115,0,121,0,0,0,108,0,116,0,99,0,0,0,108,0,116,0,103,0,0,0,108,0,116,0,111,0,0,0,108,0,116,0,117,0,0,0,108,0,117,0,100,0,0,0,108,0,117,0,103,0,0,0,108,0,117,0,108,0,0,0,108,0,118,0,97,0,0,0,108,0,118,0,107,0,0,0,108,0,118,0,117,0,0,0,108,0,119,0,97,0,0,0,108,0,119,0,101,0,0,0,108,0,119,0,103,0,0,0,108,0,119,0,111,0,0,0,108,0,119,0,119,0,0,0,108,0,120,0,109,0,0,0,108,0,121,0,97,0,0,0,108,0,121,0,103,0,0,0,108,0,121,0,110,0,0,0,108,0,122,0,108,0,0,0,108,0,122,0,110,0,0,0,108,0,122,0,122,0,0,0,109,0,97,0,105,0,0,0,109,0,97,0,120,0,0,0,109,0,97,0,122,0,0,0,109,0,101,0,103,0,0,0,109,0,101,0,111,0,0,0,109,0,102,0,97,0,0,0,109,0,102,0,98,0,0,0,109,0,102,0,101,0,0,0,109,0,103,0,116,0,0,0,109,0,103,0,117,0,0,0,109,0,103,0,120,0,0,0,109,0,104,0,104,0,0,0,109,0,104,0,114,0,0,0,109,0,105,0,110,0,0,0,109,0,105,0,115,0,0,0,109,0,106,0,97,0,0,0,109,0,108,0,50,0,0,0,109,0,108,0,51,0,0,0,109,0,108,0,52,0,0,0,109,0,108,0,53,0,0,0,109,0,108,0,54,0,0,0,109,0,108,0,55,0,0,0,109,0,108,0,56,0,0,0,109,0,108,0,57,0,0,0,109,0,108,0,100,0,0,0,109,0,108,0,122,0,0,0,109,0,110,0,107,0,0,0,109,0,110,0,116,0,0,0,109,0,111,0,97,0,0,0,109,0,111,0,102,0,0,0,109,0,111,0,109,0,0,0,109,0,113,0,103,0,0,0,109,0,115,0,105,0,0,0,109,0,115,0,116,0,0,0,109,0,117,0,105,0,0,0,109,0,117,0,112,0,0,0,109,0,118,0,102,0,0,0,109,0,118,0,109,0,0,0,109,0,119,0,100,0,0,0,109,0,119,0,106,0,0,0,109,0,119,0,122,0,0,0,109,0,121,0,100,0,0,0,109,0,121,0,105,0,0,0,109,0,121,0,113,0,0,0,109,0,121,0,116,0,0,0,109,0,122,0,98,0,0,0,109,0,122,0,112,0,0,0,109,0,122,0,113,0,0,0,109,0,122,0,115,0,0,0,109,0,122,0,116,0,0,0,110,0,98,0,120,0,0,0,110,0,98,0,121,0,0,0,110,0,99,0,120,0,0,0,110,0,99,0,122,0,0,0,110,0,101,0,49,0,0,0,110,0,101,0,50,0,0,0,110,0,101,0,51,0,0,0,110,0,101,0,52,0,0,0,110,0,101,0,53,0,0,0,110,0,101,0,54,0,0,0,110,0,101,0,55,0,0,0,110,0,101,0,56,0,0,0,110,0,102,0,100,0,0,0,110,0,102,0,108,0,0,0,110,0,102,0,117,0,0,0,110,0,103,0,111,0,0,0,110,0,104,0,100,0,0,0,110,0,105,0,113,0,0,0,110,0,106,0,100,0,0,0,110,0,107,0,122,0,0,0,110,0,108,0,99,0,0,0,110,0,108,0,113,0,0,0,110,0,108,0,114,0,0,0,110,0,110,0,115,0,0,0,110,0,111,0,97,0,0,0,110,0,111,0,111,0,0,0,110,0,112,0,49,0,0,0,110,0,112,0,50,0,0,0,110,0,112,0,51,0,0,0,110,0,112,0,52,0,0,0,110,0,112,0,53,0,0,0,110,0,112,0,108,0,0,0,110,0,112,0,115,0,0,0,110,0,112,0,117,0,0,0,110,0,113,0,103,0,0,0,110,0,113,0,113,0,0,0,110,0,113,0,116,0,0,0,110,0,113,0,121,0,0,0,110,0,114,0,105,0,0,0,110,0,114,0,112,0,0,0,110,0,114,0,114,0,0,0,110,0,114,0,120,0,0,0,110,0,114,0,122,0,0,0,110,0,115,0,111,0,0,0,110,0,116,0,109,0,0,0,110,0,116,0,115,0,0,0,110,0,118,0,104,0,0,0,110,0,118,0,109,0,0,0,110,0,118,0,111,0,0,0,110,0,119,0,101,0,0,0,110,0,119,0,103,0,0,0,110,0,119,0,105,0,0,0,110,0,119,0,111,0,0,0,110,0,119,0,114,0,0,0,110,0,120,0,97,0,0,0,110,0,120,0,103,0,0,0,110,0,120,0,105,0,0,0,110,0,120,0,117,0,0,0,110,0,120,0,120,0,0,0,110,0,121,0,100,0,0,0,110,0,122,0,100,0,0,0,110,0,122,0,105,0,0,0,110,0,122,0,107,0,0,0,110,0,122,0,109,0,0,0,110,0,122,0,110,0,0,0,111,0,97,0,97,0,0,0,111,0,97,0,99,0,0,0,111,0,97,0,118,0,0,0,111,0,98,0,105,0,0,0,111,0,98,0,111,0,0,0,111,0,99,0,97,0,0,0,111,0,99,0,104,0,0,0,111,0,99,0,109,0,0,0,111,0,99,0,111,0,0,0,111,0,99,0,117,0,0,0,111,0,100,0,97,0,0,0,111,0,100,0,107,0,0,0,111,0,102,0,111,0,0,0,111,0,102,0,115,0,0,0,111,0,102,0,117,0,0,0,111,0,103,0,103,0,0,0,111,0,105,0,97,0,0,0,111,0,105,0,101,0,0,0,111,0,105,0,110,0,0,0,111,0,106,0,103,0,0,0,111,0,106,0,112,0,0,0,111,0,107,0,105,0,0,0,111,0,107,0,120,0,0,0,111,0,107,0,122,0,0,0,111,0,108,0,97,0,0,0,111,0,108,0,107,0,0,0,111,0,108,0,111,0,0,0,111,0,108,0,114,0,0,0,111,0,109,0,101,0,0,0,111,0,109,0,103,0,0,0,111,0,109,0,105,0,0,0,111,0,111,0,100,0,0,0,111,0,111,0,103,0,0,0,111,0,112,0,97,0,0,0,111,0,112,0,107,0,0,0,111,0,112,0,109,0,0,0,111,0,112,0,121,0,0,0,111,0,114,0,110,0,0,0,111,0,114,0,115,0,0,0,111,0,114,0,121,0,0,0,111,0,114,0,122,0,0,0,111,0,115,0,99,0,0,0,111,0,115,0,105,0,0,0,111,0,115,0,120,0,0,0,111,0,116,0,105,0,0,0,111,0,117,0,101,0,0,0,111,0,117,0,105,0,0,0,111,0,117,0,109,0,0,0,111,0,117,0,110,0,0,0,111,0,118,0,100,0,0,0,111,0,119,0,105,0,0,0,111,0,119,0,108,0,0,0,111,0,121,0,98,0,0,0,111,0,121,0,100,0,0,0,111,0,121,0,109,0,0,0,111,0,121,0,121,0,0,0,111,0,122,0,109,0,0,0,112,0,97,0,50,0,0,0,112,0,97,0,51,0,0,0,112,0,97,0,52,0,0,0,112,0,97,0,53,0,0,0,112,0,97,0,54,0,0,0,112,0,97,0,55,0,0,0,112,0,97,0,56,0,0,0,112,0,97,0,57,0,0,0,112,0,97,0,116,0,0,0,112,0,98,0,116,0,0,0,112,0,98,0,117,0,0,0,112,0,98,0,118,0,0,0,112,0,98,0,121,0,0,0,112,0,98,0,122,0,0,0,112,0,99,0,109,0,0,0,112,0,99,0,112,0,0,0,112,0,99,0,114,0,0,0,112,0,99,0,119,0,0,0,112,0,100,0,97,0,0,0,112,0,100,0,99,0,0,0,112,0,100,0,105,0,0,0,112,0,101,0,108,0,0,0,112,0,101,0,115,0,0,0,112,0,101,0,118,0,0,0,112,0,102,0,97,0,0,0,112,0,102,0,101,0,0,0,112,0,102,0,108,0,0,0,112,0,103,0,100,0,0,0,112,0,103,0,103,0,0,0,112,0,103,0,105,0,0,0,112,0,103,0,110,0,0,0,112,0,103,0,115,0,0,0,112,0,103,0,117,0,0,0,112,0,103,0,121,0,0,0,112,0,103,0,122,0,0,0,112,0,104,0,97,0,0,0,112,0,104,0,100,0,0,0,112,0,105,0,105,0,0,0,112,0,105,0,106,0,0,0,112,0,106,0,116,0,0,0,112,0,108,0,112,0,0,0,112,0,108,0,116,0,0,0,112,0,109,0,99,0,0,0,112,0,109,0,117,0,0,0,112,0,110,0,98,0,0,0,112,0,111,0,99,0,0,0,112,0,111,0,100,0,0,0,112,0,111,0,107,0,0,0,112,0,112,0,97,0,0,0,112,0,112,0,101,0,0,0,112,0,112,0,105,0,0,0,112,0,112,0,114,0,0,0,112,0,113,0,97,0,0,0,112,0,113,0,101,0,0,0,112,0,113,0,109,0,0,0,112,0,113,0,119,0,0,0,112,0,114,0,98,0,0,0,112,0,114,0,115,0,0,0,112,0,114,0,121,0,0,0,112,0,114,0,122,0,0,0,112,0,115,0,116,0,0,0,112,0,115,0,119,0,0,0,112,0,115,0,121,0,0,0,112,0,116,0,97,0,0,0,112,0,116,0,121,0,0,0,112,0,117,0,107,0,0,0,112,0,117,0,109,0,0,0,112,0,117,0,122,0,0,0,112,0,119,0,103,0,0,0,112,0,119,0,105,0,0,0,112,0,119,0,114,0,0,0,112,0,119,0,119,0,0,0,112,0,120,0,109,0,0,0,112,0,121,0,50,0,0,0,112,0,121,0,51,0,0,0,112,0,121,0,52,0,0,0,112,0,121,0,53,0,0,0,112,0,121,0,54,0,0,0,112,0,121,0,55,0,0,0,112,0,121,0,56,0,0,0,112,0,121,0,57,0,0,0,112,0,121,0,101,0,0,0,112,0,121,0,115,0,0,0,112,0,121,0,117,0,0,0,112,0,122,0,104,0,0,0,112,0,122,0,110,0,0,0,113,0,102,0,122,0,0,0,113,0,117,0,98,0,0,0,113,0,117,0,100,0,0,0,113,0,117,0,102,0,0,0,113,0,117,0,103,0,0,0,113,0,117,0,104,0,0,0,113,0,117,0,107,0,0,0,113,0,117,0,108,0,0,0,113,0,117,0,112,0,0,0,113,0,117,0,114,0,0,0,113,0,117,0,119,0,0,0,113,0,117,0,120,0,0,0,113,0,117,0,121,0,0,0,113,0,117,0,122,0,0,0,113,0,118,0,104,0,0,0,113,0,118,0,105,0,0,0,113,0,118,0,106,0,0,0,113,0,118,0,108,0,0,0,113,0,118,0,109,0,0,0,113,0,118,0,110,0,0,0,113,0,118,0,111,0,0,0,113,0,118,0,112,0,0,0,113,0,118,0,122,0,0,0,113,0,119,0,101,0,0,0,113,0,119,0,109,0,0,0,113,0,119,0,115,0,0,0,113,0,120,0,110,0,0,0,113,0,120,0,111,0,0,0,113,0,120,0,112,0,0,0,113,0,120,0,114,0,0,0,113,0,120,0,116,0,0,0,113,0,120,0,117,0,0,0,113,0,121,0,97,0,0,0,113,0,121,0,112,0,0,0,114,0,97,0,103,0,0,0,114,0,98,0,98,0,0,0,114,0,98,0,112,0,0,0,114,0,99,0,102,0,0,0,114,0,101,0,103,0,0,0,114,0,101,0,121,0,0,0,114,0,103,0,97,0,0,0,114,0,103,0,110,0,0,0,114,0,103,0,117,0,0,0,114,0,104,0,103,0,0,0,114,0,104,0,112,0,0,0,114,0,105,0,102,0,0,0,114,0,105,0,114,0,0,0,114,0,106,0,103,0,0,0,114,0,106,0,105,0,0,0,114,0,106,0,115,0,0,0,114,0,107,0,109,0,0,0,114,0,107,0,119,0,0,0,114,0,109,0,114,0,0,0,114,0,109,0,122,0,0,0,114,0,110,0,97,0,0,0,114,0,110,0,98,0,0,0,114,0,110,0,100,0,0,0,114,0,110,0,103,0,0,0,114,0,110,0,108,0,0,0,114,0,110,0,110,0,0,0,114,0,110,0,112,0,0,0,114,0,110,0,114,0,0,0,114,0,110,0,119,0,0,0,114,0,111,0,99,0,0,0,114,0,111,0,114,0,0,0,114,0,111,0,117,0,0,0,114,0,111,0,119,0,0,0,114,0,112,0,110,0,0,0,114,0,112,0,116,0,0,0,114,0,114,0,116,0,0,0,114,0,115,0,98,0,0,0,114,0,116,0,99,0,0,0,114,0,116,0,104,0,0,0,114,0,116,0,109,0,0,0,114,0,116,0,115,0,0,0,114,0,116,0,119,0,0,0,114,0,117,0,107,0,0,0,114,0,119,0,111,0,0,0,114,0,119,0,114,0,0,0,114,0,120,0,100,0,0,0,114,0,120,0,119,0,0,0,114,0,121,0,110,0,0,0,114,0,121,0,115,0,0,0,114,0,121,0,117,0,0,0,114,0,122,0,104,0,0,0,115,0,97,0,111,0,0,0,115,0,100,0,109,0,0,0,115,0,100,0,120,0,0,0,115,0,101,0,100,0,0,0,115,0,101,0,104,0,0,0,115,0,101,0,105,0,0,0,115,0,101,0,109,0,0,0,115,0,101,0,111,0,0,0,115,0,101,0,115,0,0,0,115,0,101,0,117,0,0,0,115,0,101,0,122,0,0,0,115,0,102,0,98,0,0,0,115,0,102,0,101,0,0,0,115,0,102,0,109,0,0,0,115,0,102,0,115,0,0,0,115,0,102,0,119,0,0,0,115,0,103,0,108,0,0,0,115,0,103,0,111,0,0,0,115,0,103,0,112,0,0,0,115,0,106,0,119,0,0,0,115,0,107,0,107,0,0,0,115,0,110,0,98,0,0,0,115,0,112,0,103,0,0,0,115,0,112,0,105,0,0,0,115,0,112,0,120,0,0,0,115,0,112,0,121,0,0,0,115,0,113,0,97,0,0,0,115,0,113,0,104,0,0,0,115,0,113,0,120,0,0,0,115,0,114,0,111,0,0,0,115,0,115,0,104,0,0,0,115,0,115,0,121,0,0,0,115,0,117,0,101,0,0,0,115,0,117,0,103,0,0,0,115,0,117,0,111,0,0,0,115,0,118,0,107,0,0,0,115,0,118,0,109,0,0,0,115,0,118,0,114,0,0,0,115,0,118,0,120,0,0,0,115,0,119,0,98,0,0,0,115,0,119,0,99,0,0,0,115,0,119,0,104,0,0,0,115,0,120,0,101,0,0,0,115,0,120,0,103,0,0,0,115,0,120,0,117,0,0,0,115,0,120,0,119,0,0,0,115,0,121,0,105,0,0,0,115,0,121,0,114,0,0,0,115,0,122,0,103,0,0,0,115,0,122,0,108,0,0,0,115,0,122,0,110,0,0,0,115,0,122,0,112,0,0,0,115,0,122,0,115,0,0,0,115,0,122,0,121,0,0,0,116,0,98,0,98,0,0,0,116,0,100,0,117,0,0,0,116,0,100,0,120,0,0,0,116,0,101,0,99,0,0,0,116,0,101,0,107,0,0,0,116,0,102,0,116,0,0,0,116,0,103,0,103,0,0,0,116,0,104,0,99,0,0,0,116,0,105,0,97,0,0,0,116,0,106,0,103,0,0,0,116,0,106,0,115,0,0,0,116,0,106,0,119,0,0,0,116,0,107,0,103,0,0,0,116,0,107,0,107,0,0,0,116,0,107,0,122,0,0,0,116,0,108,0,104,0,0,0,116,0,108,0,119,0,0,0,116,0,109,0,97,0,0,0,116,0,109,0,109,0,0,0,116,0,109,0,112,0,0,0,116,0,109,0,119,0,0,0,116,0,111,0,101,0,0,0,116,0,113,0,98,0,0,0,116,0,113,0,119,0,0,0,116,0,115,0,102,0,0,0,116,0,116,0,113,0,0,0,116,0,117,0,121,0,0,0,116,0,120,0,101,0,0,0,116,0,120,0,121,0,0,0,116,0,121,0,97,0,0,0,116,0,121,0,101,0,0,0,116,0,121,0,108,0,0,0,116,0,121,0,110,0,0,0,116,0,121,0,112,0,0,0,116,0,122,0,104,0,0,0,116,0,122,0,106,0,0,0,116,0,122,0,120,0,0,0,117,0,97,0,114,0,0,0,117,0,98,0,121,0,0,0,117,0,100,0,103,0,0,0,117,0,103,0,104,0,0,0,117,0,104,0,97,0,0,0,117,0,104,0,110,0,0,0,117,0,105,0,118,0,0,0,117,0,106,0,105,0,0,0,117,0,107,0,115,0,0,0,117,0,107,0,121,0,0,0,117,0,108,0,105,0,0,0,117,0,108,0,119,0,0,0,117,0,109,0,103,0,0,0,117,0,109,0,117,0,0,0,117,0,110,0,97,0,0,0,117,0,110,0,101,0,0,0,117,0,110,0,105,0,0,0,117,0,110,0,112,0,0,0,117,0,110,0,117,0,0,0,117,0,110,0,120,0,0,0,117,0,110,0,122,0,0,0,117,0,111,0,107,0,0,0,117,0,111,0,110,0,0,0,117,0,112,0,118,0,0,0,117,0,114,0,107,0,0,0,117,0,115,0,112,0,0,0,117,0,115,0,117,0,0,0,117,0,116,0,104,0,0,0,117,0,116,0,112,0,0,0,117,0,116,0,117,0,0,0,117,0,117,0,109,0,0,0,117,0,117,0,110,0,0,0,117,0,117,0,114,0,0,0,117,0,117,0,117,0,0,0,117,0,118,0,104,0,0,0,117,0,118,0,108,0,0,0,117,0,121,0,97,0,0,0,117,0,122,0,110,0,0,0,118,0,97,0,121,0,0,0,118,0,98,0,98,0,0,0,118,0,98,0,107,0,0,0,118,0,101,0,97,0,0,0,118,0,101,0,98,0,0,0,118,0,101,0,99,0,0,0,118,0,101,0,100,0,0,0,118,0,101,0,101,0,0,0,118,0,101,0,102,0,0,0,118,0,101,0,103,0,0,0,118,0,101,0,104,0,0,0,118,0,101,0,105,0,0,0,118,0,101,0,106,0,0,0,118,0,101,0,107,0,0,0,118,0,101,0,108,0,0,0,118,0,101,0,112,0,0,0,118,0,101,0,115,0,0,0,118,0,101,0,116,0,0,0,118,0,101,0,118,0,0,0,118,0,101,0,119,0,0,0,118,0,101,0,120,0,0,0,118,0,101,0,121,0,0,0,118,0,101,0,122,0,0,0,118,0,103,0,114,0,0,0,118,0,103,0,116,0,0,0,118,0,105,0,118,0,0,0,118,0,107,0,97,0,0,0,118,0,107,0,105,0,0,0,118,0,107,0,107,0,0,0,118,0,107,0,116,0,0,0,118,0,107,0,122,0,0,0,118,0,108,0,112,0,0,0,118,0,108,0,115,0,0,0,118,0,110,0,107,0,0,0,118,0,110,0,109,0,0,0,118,0,110,0,112,0,0,0,118,0,111,0,116,0,0,0,118,0,114,0,97,0,0,0,118,0,115,0,105,0,0,0,118,0,116,0,111,0,0,0,118,0,117,0,116,0,0,0,118,0,119,0,97,0,0,0,119,0,99,0,105,0,0,0,119,0,100,0,100,0,0,0,119,0,100,0,103,0,0,0,119,0,100,0,121,0,0,0,119,0,101,0,97,0,0,0,119,0,101,0,119,0,0,0,119,0,102,0,103,0,0,0,119,0,103,0,103,0,0,0,119,0,103,0,105,0,0,0,119,0,103,0,111,0,0,0,119,0,103,0,117,0,0,0,119,0,103,0,119,0,0,0,119,0,103,0,121,0,0,0,119,0,104,0,103,0,0,0,119,0,104,0,107,0,0,0,119,0,105,0,114,0,0,0,119,0,105,0,119,0,0,0,119,0,105,0,121,0,0,0,119,0,106,0,105,0,0,0,119,0,107,0,100,0,0,0,119,0,107,0,121,0,0,0,119,0,108,0,97,0,0,0,119,0,108,0,99,0,0,0,119,0,108,0,101,0,0,0,119,0,110,0,103,0,0,0,119,0,111,0,119,0,0,0,119,0,111,0,121,0,0,0,119,0,112,0,99,0,0,0,119,0,114,0,97,0,0,0,119,0,114,0,98,0,0,0,119,0,114,0,100,0,0,0,119,0,115,0,103,0,0,0,119,0,115,0,105,0,0,0,119,0,116,0,102,0,0,0,119,0,116,0,107,0,0,0,119,0,116,0,109,0,0,0,119,0,116,0,119,0,0,0,119,0,117,0,100,0,0,0,119,0,117,0,104,0,0,0,119,0,117,0,114,0,0,0,119,0,117,0,117,0,0,0,119,0,119,0,111,0,0,0,119,0,119,0,114,0,0,0,119,0,119,0,119,0,0,0,119,0,120,0,97,0,0,0,119,0,120,0,119,0,0,0,119,0,121,0,97,0,0,0,119,0,121,0,98,0,0,0,119,0,121,0,114,0,0,0,119,0,121,0,121,0,0,0,120,0,97,0,103,0,0,0,120,0,98,0,97,0,0,0,120,0,98,0,114,0,0,0,120,0,98,0,119,0,0,0,120,0,98,0,120,0,0,0,120,0,98,0,121,0,0,0,120,0,99,0,121,0,0,0,120,0,100,0,97,0,0,0,120,0,100,0,99,0,0,0,120,0,100,0,107,0,0,0,120,0,100,0,109,0,0,0,120,0,100,0,111,0,0,0,120,0,100,0,113,0,0,0,120,0,100,0,121,0,0,0,120,0,101,0,98,0,0,0,120,0,101,0,100,0,0,0,120,0,101,0,103,0,0,0,120,0,101,0,112,0,0,0,120,0,102,0,97,0,0,0,120,0,103,0,105,0,0,0,120,0,103,0,114,0,0,0,120,0,103,0,117,0,0,0,120,0,103,0,119,0,0,0,120,0,104,0,97,0,0,0,120,0,104,0,109,0,0,0,120,0,104,0,114,0,0,0,120,0,105,0,97,0,0,0,120,0,105,0,98,0,0,0,120,0,105,0,108,0,0,0,120,0,105,0,110,0,0,0,120,0,105,0,112,0,0,0,120,0,105,0,118,0,0,0,120,0,105,0,121,0,0,0,120,0,106,0,98,0,0,0,120,0,106,0,116,0,0,0,120,0,107,0,104,0,0,0,120,0,108,0,103,0,0,0,120,0,108,0,105,0,0,0,120,0,108,0,115,0,0,0,120,0,108,0,117,0,0,0,120,0,108,0,121,0,0,0,120,0,109,0,109,0,0,0,120,0,109,0,118,0,0,0,120,0,109,0,119,0,0,0,120,0,111,0,103,0,0,0,120,0,111,0,105,0,0,0,120,0,111,0,107,0,0,0,120,0,111,0,114,0,0,0,120,0,111,0,119,0,0,0,120,0,112,0,101,0,0,0,120,0,113,0,97,0,0,0,120,0,113,0,116,0,0,0,120,0,114,0,103,0,0,0,120,0,114,0,105,0,0,0,120,0,114,0,113,0,0,0,120,0,114,0,114,0,0,0,120,0,114,0,119,0,0,0,120,0,115,0,106,0,0,0,120,0,115,0,121,0,0,0,120,0,116,0,121,0,0,0,120,0,116,0,122,0,0,0,120,0,117,0,100,0,0,0,120,0,117,0,106,0,0,0,120,0,118,0,105,0,0,0,120,0,118,0,115,0,0,0,120,0,119,0,97,0,0,0,120,0,119,0,103,0,0,0,120,0,119,0,114,0,0,0,120,0,119,0,116,0,0,0,120,0,119,0,119,0,0,0,120,0,120,0,98,0,0,0,120,0,120,0,107,0,0,0,120,0,120,0,109,0,0,0,120,0,120,0,114,0,0,0,120,0,120,0,116,0,0,0,120,0,121,0,116,0,0,0,120,0,121,0,121,0,0,0,120,0,122,0,109,0,0,0,120,0,122,0,112,0,0,0,121,0,98,0,100,0,0,0,121,0,98,0,101,0,0,0,121,0,99,0,104,0,0,0,121,0,99,0,110,0,0,0,121,0,99,0,112,0,0,0,121,0,100,0,100,0,0,0,121,0,100,0,103,0,0,0,121,0,100,0,107,0,0,0,121,0,100,0,115,0,0,0,121,0,101,0,97,0,0,0,121,0,101,0,99,0,0,0,121,0,101,0,110,0,0,0,121,0,101,0,121,0,0,0,121,0,103,0,97,0,0,0,121,0,103,0,105,0,0,0,121,0,103,0,112,0,0,0,121,0,103,0,119,0,0,0,121,0,104,0,100,0,0,0,121,0,104,0,115,0,0,0,121,0,105,0,104,0,0,0,121,0,105,0,120,0,0,0,121,0,105,0,121,0,0,0,121,0,105,0,122,0,0,0,121,0,107,0,97,0,0,0,121,0,107,0,114,0,0,0,121,0,108,0,101,0,0,0,121,0,108,0,105,0,0,0,121,0,108,0,114,0,0,0,121,0,108,0,117,0,0,0,121,0,108,0,121,0,0,0,121,0,109,0,120,0,0,0,121,0,109,0,122,0,0,0,121,0,110,0,97,0,0,0,121,0,110,0,103,0,0,0,121,0,110,0,104,0,0,0,121,0,110,0,115,0,0,0,121,0,110,0,117,0,0,0,121,0,111,0,98,0,0,0,121,0,111,0,103,0,0,0,121,0,111,0,105,0,0,0,121,0,111,0,116,0,0,0,121,0,112,0,107,0,0,0,121,0,112,0,122,0,0,0,121,0,114,0,101,0,0,0,121,0,114,0,105,0,0,0,121,0,114,0,115,0,0,0,121,0,114,0,121,0,0,0,121,0,115,0,121,0,0,0,121,0,116,0,112,0,0,0,121,0,117,0,117,0,0,0,121,0,118,0,97,0,0,0,121,0,118,0,116,0,0,0,121,0,119,0,103,0,0,0,121,0,119,0,108,0,0,0,121,0,119,0,110,0,0,0,121,0,119,0,119,0,0,0,121,0,120,0,97,0,0,0,121,0,120,0,103,0,0,0,121,0,120,0,117,0,0,0,121,0,120,0,121,0,0,0,121,0,121,0,114,0,0,0,121,0,121,0,117,0,0,0,121,0,121,0,122,0,0,0,121,0,122,0,103,0,0,0,121,0,122,0,107,0,0,0,122,0,98,0,99,0,0,0,122,0,98,0,108,0,0,0,122,0,98,0,119,0,0,0,122,0,99,0,100,0,0,0,122,0,100,0,106,0,0,0,122,0,101,0,97,0,0,0,122,0,103,0,104,0,0,0,122,0,103,0,114,0,0,0,122,0,104,0,100,0,0,0,122,0,104,0,110,0,0,0,122,0,105,0,122,0,0,0,122,0,107,0,100,0,0,0,122,0,107,0,122,0,0,0,122,0,108,0,101,0,0,0,122,0,108,0,106,0,0,0,122,0,108,0,109,0,0,0,122,0,108,0,113,0,0,0,122,0,108,0,115,0,0,0,122,0,108,0,119,0,0,0,122,0,110,0,107,0,0,0,122,0,110,0,115,0,0,0,122,0,111,0,104,0,0,0,122,0,111,0,111,0,0,0,122,0,113,0,101,0,0,0,122,0,114,0,97,0,0,0,122,0,114,0,103,0,0,0,122,0,114,0,115,0,0,0,122,0,117,0,97,0,0,0,122,0,117,0,104,0,0,0,122,0,117,0,121,0,0,0,122,0,120,0,120,0,0,0,122,0,121,0,98,0,0,0,122,0,121,0,103,0,0,0,122,0,121,0,106,0,0,0,122,0,121,0,110,0,0,0,122,0,121,0,112,0,0,0,122,0,122,0,106,0,0,0,69,0,71,0,126,0,72,0,0,0,116,0,122,0,49,0,48,0,0,0,116,0,122,0,51,0,48,0,0,0,116,0,122,0,50,0,48,0,0,0,115,0,121,0,113,0,117,0,0,0,122,0,119,0,109,0,115,0,0,0,67,0,97,0,110,0,115,0,0,0,109,0,119,0,114,0,117,0,0,0,98,0,119,0,102,0,114,0,0,0,84,0,104,0,97,0,105,0,0,0,109,0,119,0,109,0,103,0,0,0,71,0,114,0,101,0,107,0,0,0,84,0,102,0,110,0,103,0,0,0,103,0,121,0,101,0,115,0,0,0,103,0,121,0,100,0,101,0,0,0,83,0,121,0,114,0,99,0,0,0,109,0,119,0,110,0,98,0,0,0,115,0,121,0,105,0,100,0,0,0,117,0,121,0,116,0,97,0,0,0,82,0,117,0,110,0,114,0,0,0,98,0,122,0,115,0,99,0,0,0,104,0,117,0,112,0,115,0,0,0,115,0,122,0,115,0,104,0,0,0,122,0,119,0,109,0,110,0,0,0,66,0,117,0,103,0,105,0,0,0,73,0,116,0,97,0,108,0,0,0,97,0,122,0,108,0,97,0,0,0,97,0,122,0,109,0,105,0,0,0,97,0,122,0,115,0,114,0,0,0,107,0,119,0,107,0,117,0,0,0,108,0,114,0,109,0,121,0,0,0,117,0,122,0,115,0,97,0,0,0,117,0,122,0,115,0,117,0,0,0,98,0,121,0,104,0,114,0,0,0,103,0,119,0,98,0,115,0,0,0,104,0,117,0,107,0,109,0,0,0,108,0,121,0,110,0,108,0,0,0,109,0,119,0,110,0,101,0,0,0,117,0,122,0,115,0,105,0,0,0,83,0,97,0,114,0,98,0,0,0,100,0,101,0,115,0,108,0,0,0,100,0,101,0,115,0,116,0,0,0,103,0,101,0,115,0,122,0,0,0,105,0,101,0,115,0,111,0,0,0,105,0,113,0,119,0,97,0,0,0,110,0,108,0,122,0,104,0,0,0,110,0,112,0,103,0,97,0,0,0,121,0,101,0,115,0,97,0,0,0,121,0,101,0,115,0,104,0,0,0,97,0,122,0,98,0,97,0,0,0,97,0,122,0,110,0,97,0,0,0,97,0,122,0,115,0,109,0,0,0,98,0,119,0,107,0,108,0,0,0,98,0,119,0,107,0,119,0,0,0,109,0,118,0,110,0,111,0,0,0,115,0,118,0,115,0,118,0,0,0,117,0,122,0,110,0,103,0,0,0,83,0,121,0,108,0,111,0,0,0,97,0,122,0,103,0,97,0,0,0,98,0,115,0,115,0,119,0,0,0,98,0,121,0,98,0,114,0,0,0,98,0,121,0,118,0,105,0,0,0,98,0,122,0,99,0,121,0,0,0,99,0,118,0,115,0,100,0,0,0,101,0,116,0,97,0,102,0,0,0,104,0,117,0,99,0,115,0,0,0,108,0,117,0,114,0,109,0,0,0,108,0,121,0,106,0,97,0,0,0,117,0,121,0,99,0,111,0,0,0,117,0,121,0,115,0,111,0,0,0,117,0,121,0,116,0,116,0,0,0,117,0,122,0,116,0,107,0,0,0,117,0,122,0,116,0,111,0,0,0,67,0,104,0,97,0,109,0,0,0,75,0,97,0,108,0,105,0,0,0,80,0,104,0,97,0,103,0,0,0,83,0,97,0,109,0,114,0,0,0,88,0,115,0,117,0,120,0,0,0,66,0,111,0,112,0,111,0,0,0,67,0,111,0,112,0,116,0,0,0,82,0,106,0,110,0,103,0,0,0,83,0,111,0,114,0,97,0,0,0,86,0,97,0,105,0,105,0,0,0,97,0,101,0,114,0,107,0,0,0,97,0,101,0,117,0,113,0,0,0,97,0,117,0,119,0,97,0,0,0,98,0,105,0,98,0,114,0,0,0,98,0,105,0,107,0,105,0,0,0,98,0,105,0,109,0,97,0,0,0,98,0,105,0,109,0,121,0,0,0,98,0,106,0,97,0,113,0,0,0,98,0,110,0,116,0,117,0,0,0,98,0,115,0,101,0,103,0,0,0,98,0,115,0,114,0,99,0,0,0,98,0,119,0,108,0,111,0,0,0,98,0,119,0,110,0,119,0,0,0,99,0,100,0,105,0,116,0,0,0,99,0,100,0,107,0,103,0,0,0,99,0,100,0,107,0,108,0,0,0,99,0,102,0,109,0,112,0,0,0,99,0,102,0,115,0,101,0,0,0,99,0,104,0,116,0,105,0,0,0,99,0,105,0,108,0,103,0,0,0,99,0,105,0,118,0,98,0,0,0,99,0,105,0,122,0,122,0,0,0,99,0,108,0,114,0,109,0,0,0,99,0,108,0,118,0,115,0,0,0,99,0,110,0,108,0,110,0,0,0,99,0,110,0,110,0,120,0,0,0,99,0,110,0,121,0,110,0,0,0,100,0,101,0,116,0,104,0,0,0,100,0,106,0,111,0,98,0,0,0,101,0,103,0,109,0,110,0,0,0,101,0,115,0,101,0,120,0,0,0,101,0,115,0,103,0,99,0,0,0,101,0,115,0,104,0,117,0,0,0,101,0,115,0,112,0,118,0,0,0,103,0,101,0,107,0,97,0,0,0,103,0,108,0,115,0,109,0,0,0,103,0,110,0,102,0,97,0,0,0,103,0,110,0,102,0,114,0,0,0,103,0,110,0,108,0,111,0,0,0,103,0,110,0,112,0,105,0,0,0,103,0,119,0,99,0,97,0,0,0,103,0,119,0,111,0,105,0,0,0,103,0,121,0,117,0,116,0,0,0,104,0,110,0,99,0,112,0,0,0,104,0,117,0,100,0,101,0,0,0,104,0,117,0,100,0,117,0,0,0,104,0,117,0,103,0,121,0,0,0,104,0,117,0,109,0,105,0,0,0,104,0,117,0,110,0,107,0,0,0,104,0,117,0,115,0,107,0,0,0,104,0,117,0,118,0,101,0,0,0,105,0,100,0,103,0,111,0,0,0,105,0,100,0,106,0,119,0,0,0,105,0,100,0,112,0,112,0,0,0,105,0,101,0,99,0,101,0,0,0,105,0,101,0,99,0,119,0,0,0,105,0,101,0,107,0,101,0,0,0,105,0,101,0,107,0,107,0,0,0,105,0,101,0,107,0,121,0,0,0,105,0,101,0,108,0,107,0,0,0,105,0,101,0,108,0,109,0,0,0,105,0,108,0,104,0,97,0,0,0,105,0,110,0,108,0,97,0,0,0,105,0,110,0,116,0,103,0,0,0,105,0,110,0,116,0,114,0,0,0,105,0,116,0,98,0,97,0,0,0,105,0,116,0,102,0,105,0,0,0,105,0,116,0,102,0,114,0,0,0,105,0,116,0,112,0,97,0,0,0,107,0,119,0,106,0,97,0,0,0,108,0,97,0,97,0,116,0,0,0,108,0,97,0,99,0,104,0,0,0,108,0,97,0,118,0,105,0,0,0,108,0,97,0,120,0,101,0,0,0,108,0,114,0,103,0,107,0,0,0,108,0,114,0,114,0,105,0,0,0,108,0,117,0,101,0,115,0,0,0,108,0,117,0,108,0,117,0,0,0,108,0,121,0,110,0,113,0,0,0,108,0,121,0,119,0,97,0,0,0,109,0,99,0,103,0,97,0,0,0,109,0,99,0,106,0,101,0,0,0,109,0,99,0,108,0,97,0,0,0,109,0,99,0,109,0,97,0,0,0,109,0,99,0,109,0,99,0,0,0,109,0,99,0,109,0,103,0,0,0,109,0,99,0,109,0,111,0,0,0,109,0,100,0,104,0,105,0,0,0,109,0,100,0,114,0,105,0,0,0,109,0,117,0,98,0,108,0,0,0,109,0,117,0,114,0,114,0,0,0,109,0,119,0,110,0,105,0,0,0,109,0,119,0,110,0,107,0,0,0,109,0,119,0,110,0,117,0,0,0,109,0,119,0,115,0,97,0,0,0,110,0,97,0,111,0,104,0,0,0,110,0,103,0,97,0,110,0,0,0,110,0,103,0,98,0,111,0,0,0,110,0,103,0,99,0,114,0,0,0,110,0,103,0,106,0,105,0,0,0,110,0,103,0,114,0,105,0,0,0,110,0,103,0,116,0,97,0,0,0,110,0,105,0,99,0,97,0,0,0,110,0,112,0,107,0,111,0,0,0,110,0,112,0,110,0,97,0,0,0,110,0,112,0,114,0,97,0,0,0,110,0,112,0,115,0,97,0,0,0,110,0,112,0,115,0,101,0,0,0,111,0,109,0,122,0,97,0,0,0,112,0,107,0,103,0,98,0,0,0,114,0,111,0,97,0,114,0,0,0,114,0,117,0,98,0,97,0,0,0,114,0,117,0,98,0,117,0,0,0,114,0,117,0,100,0,97,0,0,0,114,0,117,0,115,0,97,0,0,0,114,0,117,0,116,0,97,0,0,0,115,0,100,0,100,0,119,0,0,0,115,0,100,0,103,0,122,0,0,0,115,0,100,0,110,0,114,0,0,0,115,0,107,0,112,0,118,0,0,0,115,0,107,0,122,0,105,0,0,0,115,0,108,0,110,0,119,0,0,0,115,0,110,0,108,0,103,0,0,0,115,0,111,0,98,0,114,0,0,0,115,0,111,0,103,0,101,0,0,0,115,0,111,0,115,0,97,0,0,0,115,0,114,0,115,0,105,0,0,0,115,0,114,0,119,0,97,0,0,0,115,0,115,0,101,0,99,0,0,0,115,0,115,0,101,0,119,0,0,0,115,0,115,0,106,0,103,0,0,0,115,0,121,0,104,0,97,0,0,0,116,0,100,0,107,0,97,0,0,0,116,0,106,0,103,0,98,0,0,0,116,0,108,0,98,0,97,0,0,0,116,0,108,0,118,0,105,0,0,0,117,0,115,0,99,0,97,0,0,0,117,0,115,0,100,0,99,0,0,0,117,0,115,0,108,0,97,0,0,0,117,0,115,0,110,0,104,0,0,0,117,0,121,0,99,0,108,0,0,0,117,0,121,0,109,0,97,0,0,0,119,0,102,0,117,0,118,0,0,0,119,0,115,0,118,0,115,0,0,0,121,0,101,0,104,0,117,0,0,0,121,0,101,0,106,0,97,0,0,0,121,0,101,0,114,0,97,0,0,0,121,0,101,0,115,0,117,0,0,0,122,0,97,0,101,0,99,0,0,0,122,0,97,0,103,0,112,0,0,0,122,0,119,0,104,0,97,0,0,0,49,0,57,0,57,0,52,0,0,0,83,0,103,0,110,0,119,0,0,0,97,0,122,0,110,0,118,0,0,0,98,0,119,0,106,0,119,0,0,0,98,0,119,0,115,0,101,0,0,0,98,0,121,0,104,0,111,0,0,0,99,0,110,0,102,0,106,0,0,0,99,0,118,0,116,0,115,0,0,0,99,0,122,0,53,0,49,0,0,0,99,0,122,0,53,0,50,0,0,0,99,0,122,0,54,0,52,0,0,0,99,0,122,0,55,0,50,0,0,0,99,0,122,0,56,0,48,0,0,0,103,0,101,0,115,0,106,0,0,0,103,0,121,0,99,0,117,0,0,0,103,0,121,0,112,0,116,0,0,0,104,0,117,0,104,0,101,0,0,0,104,0,117,0,107,0,118,0,0,0,105,0,116,0,109,0,115,0,0,0,109,0,119,0,116,0,104,0,0,0,114,0,111,0,99,0,118,0,0,0,114,0,115,0,118,0,111,0,0,0,115,0,118,0,115,0,115,0,0,0,115,0,122,0,108,0,117,0,0,0,117,0,122,0,102,0,97,0,0,0,117,0,122,0,106,0,105,0,0,0,99,0,122,0,107,0,114,0,0,0,83,0,111,0,121,0,111,0,0,0,99,0,122,0,107,0,97,0,0,0,99,0,122,0,112,0,97,0,0,0,99,0,122,0,115,0,116,0,0,0,104,0,117,0,115,0,110,0,0,0,105,0,116,0,98,0,110,0,0,0,105,0,116,0,98,0,111,0,0,0,105,0,116,0,116,0,110,0,0,0,109,0,116,0,53,0,48,0,0,0,112,0,108,0,108,0,98,0,0,0,117,0,121,0,114,0,110,0,0,0,65,0,103,0,104,0,98,0,0,0,65,0,114,0,109,0,105,0,0,0,65,0,118,0,115,0,116,0,0,0,66,0,97,0,108,0,105,0,0,0,66,0,97,0,109,0,117,0,0,0,66,0,97,0,116,0,107,0,0,0,66,0,117,0,104,0,100,0,0,0,67,0,97,0,107,0,109,0,0,0,67,0,97,0,114,0,105,0,0,0,67,0,104,0,101,0,114,0,0,0,67,0,112,0,114,0,116,0,0,0,68,0,117,0,112,0,108,0,0,0,69,0,103,0,121,0,112,0,0,0,69,0,108,0,98,0,97,0,0,0,71,0,111,0,116,0,104,0,0,0,71,0,114,0,97,0,110,0,0,0,72,0,97,0,110,0,111,0,0,0,72,0,109,0,110,0,103,0,0,0,74,0,97,0,118,0,97,0,0,0,76,0,97,0,110,0,97,0,0,0,76,0,101,0,112,0,99,0,0,0,76,0,105,0,109,0,98,0,0,0,76,0,105,0,115,0,117,0,0,0,76,0,121,0,99,0,105,0,0,0,76,0,121,0,100,0,105,0,0,0,77,0,97,0,104,0,106,0,0,0,77,0,97,0,110,0,100,0,0,0,77,0,97,0,110,0,105,0,0,0,77,0,101,0,110,0,100,0,0,0,77,0,101,0,114,0,99,0,0,0,77,0,111,0,100,0,105,0,0,0,77,0,114,0,111,0,111,0,0,0,78,0,97,0,114,0,98,0,0,0,78,0,98,0,97,0,116,0,0,0,79,0,103,0,97,0,109,0,0,0,79,0,108,0,99,0,107,0,0,0,79,0,114,0,107,0,104,0,0,0,79,0,115,0,103,0,101,0,0,0,79,0,115,0,109,0,97,0,0,0,80,0,97,0,108,0,109,0,0,0,80,0,101,0,114,0,109,0,0,0,80,0,104,0,108,0,105,0,0,0,80,0,104,0,108,0,112,0,0,0,80,0,104,0,110,0,120,0,0,0,80,0,108,0,114,0,100,0,0,0,80,0,114,0,116,0,105,0,0,0,82,0,111,0,104,0,103,0,0,0,83,0,97,0,117,0,114,0,0,0,83,0,104,0,114,0,100,0,0,0,83,0,105,0,100,0,100,0,0,0,83,0,117,0,110,0,100,0,0,0,84,0,97,0,103,0,98,0,0,0,84,0,97,0,107,0,114,0,0,0,84,0,97,0,108,0,101,0,0,0,84,0,97,0,108,0,117,0,0,0,84,0,97,0,118,0,116,0,0,0,84,0,103,0,108,0,103,0,0,0,84,0,104,0,97,0,97,0,0,0,84,0,105,0,114,0,104,0,0,0,85,0,103,0,97,0,114,0,0,0,87,0,97,0,114,0,97,0,0,0,88,0,112,0,101,0,111,0,0,0,89,0,105,0,105,0,105,0,0,0,97,0,101,0,97,0,106,0,0,0,97,0,101,0,97,0,122,0,0,0,97,0,101,0,100,0,117,0,0,0,97,0,101,0,102,0,117,0,0,0,97,0,101,0,115,0,104,0,0,0,97,0,109,0,97,0,103,0,0,0,97,0,109,0,97,0,118,0,0,0,97,0,109,0,101,0,114,0,0,0,97,0,109,0,103,0,114,0,0,0,97,0,109,0,107,0,116,0,0,0,97,0,109,0,108,0,111,0,0,0,97,0,109,0,115,0,104,0,0,0,97,0,109,0,115,0,117,0,0,0,97,0,109,0,116,0,118,0,0,0,97,0,109,0,118,0,100,0,0,0,97,0,117,0,110,0,116,0,0,0,97,0,117,0,115,0,97,0,0,0,97,0,122,0,110,0,120,0,0,0,97,0,122,0,115,0,97,0,0,0,97,0,122,0,120,0,97,0,0,0,97,0,122,0,121,0,101,0,0,0,98,0,104,0,49,0,55,0,0,0,98,0,105,0,98,0,98,0,0,0,98,0,105,0,99,0,97,0,0,0,98,0,105,0,99,0,105,0,0,0,98,0,105,0,103,0,105,0,0,0,98,0,105,0,107,0,114,0,0,0,98,0,105,0,107,0,121,0,0,0,98,0,105,0,109,0,117,0,0,0,98,0,105,0,109,0,119,0,0,0,98,0,105,0,110,0,103,0,0,0,98,0,105,0,114,0,109,0,0,0,98,0,105,0,114,0,116,0,0,0,98,0,105,0,114,0,121,0,0,0,98,0,106,0,98,0,111,0,0,0,98,0,106,0,99,0,111,0,0,0,98,0,106,0,100,0,111,0,0,0,98,0,106,0,107,0,111,0,0,0,98,0,106,0,108,0,105,0,0,0,98,0,106,0,109,0,111,0,0,0,98,0,106,0,111,0,117,0,0,0,98,0,106,0,112,0,108,0,0,0,98,0,106,0,122,0,111,0,0,0,98,0,110,0,98,0,101,0,0,0,98,0,110,0,98,0,109,0,0,0,98,0,110,0,116,0,101,0,0,0,98,0,113,0,98,0,111,0,0,0,98,0,113,0,115,0,97,0,0,0,98,0,113,0,115,0,101,0,0,0,98,0,114,0,97,0,99,0,0,0,98,0,114,0,97,0,112,0,0,0,98,0,114,0,98,0,97,0,0,0,98,0,114,0,99,0,101,0,0,0,98,0,114,0,100,0,102,0,0,0,98,0,114,0,101,0,115,0,0,0,98,0,114,0,103,0,111,0,0,0,98,0,114,0,109,0,97,0,0,0,98,0,114,0,109,0,103,0,0,0,98,0,114,0,112,0,101,0,0,0,98,0,114,0,112,0,105,0,0,0,98,0,114,0,112,0,114,0,0,0,98,0,114,0,114,0,106,0,0,0,98,0,114,0,115,0,99,0,0,0,98,0,114,0,115,0,101,0,0,0,98,0,114,0,115,0,112,0,0,0,98,0,114,0,116,0,111,0,0,0,98,0,115,0,97,0,107,0,0,0,98,0,115,0,98,0,105,0,0,0,98,0,115,0,98,0,112,0,0,0,98,0,115,0,98,0,121,0,0,0,98,0,115,0,99,0,101,0,0,0,98,0,115,0,99,0,105,0,0,0,98,0,115,0,99,0,107,0,0,0,98,0,115,0,99,0,111,0,0,0,98,0,115,0,99,0,115,0,0,0,98,0,115,0,101,0,120,0,0,0,98,0,115,0,102,0,112,0,0,0,98,0,115,0,104,0,105,0,0,0,98,0,115,0,104,0,116,0,0,0,98,0,115,0,105,0,110,0,0,0,98,0,115,0,108,0,105,0,0,0,98,0,115,0,109,0,99,0,0,0,98,0,115,0,109,0,103,0,0,0,98,0,115,0,109,0,105,0,0,0,98,0,115,0,110,0,101,0,0,0,98,0,115,0,110,0,115,0,0,0,98,0,115,0,114,0,105,0,0,0,98,0,115,0,115,0,97,0,0,0,98,0,115,0,115,0,101,0,0,0,98,0,115,0,115,0,111,0,0,0,98,0,115,0,115,0,115,0,0,0,98,0,115,0,119,0,103,0,0,0,98,0,116,0,103,0,97,0,0,0,98,0,116,0,116,0,121,0,0,0,98,0,119,0,99,0,101,0,0,0,98,0,119,0,99,0,104,0,0,0,98,0,119,0,103,0,97,0,0,0,98,0,119,0,103,0,104,0,0,0,98,0,119,0,107,0,103,0,0,0,98,0,119,0,110,0,101,0,0,0,98,0,119,0,115,0,116,0,0,0,98,0,121,0,104,0,109,0,0,0,98,0,121,0,109,0,97,0,0,0,98,0,121,0,109,0,105,0,0,0,98,0,122,0,98,0,122,0,0,0,98,0,122,0,111,0,119,0,0,0,99,0,97,0,97,0,98,0,0,0,99,0,97,0,98,0,99,0,0,0,99,0,97,0,109,0,98,0,0,0,99,0,97,0,110,0,98,0,0,0,99,0,97,0,110,0,108,0,0,0,99,0,97,0,111,0,110,0,0,0,99,0,97,0,112,0,101,0,0,0,99,0,97,0,113,0,99,0,0,0,99,0,97,0,115,0,107,0,0,0,99,0,97,0,121,0,116,0,0,0,99,0,100,0,98,0,99,0,0,0,99,0,100,0,98,0,117,0,0,0,99,0,100,0,101,0,113,0,0,0,99,0,100,0,104,0,117,0,0,0,99,0,100,0,107,0,99,0,0,0,99,0,100,0,107,0,101,0,0,0,99,0,100,0,107,0,110,0,0,0,99,0,100,0,107,0,115,0,0,0,99,0,100,0,108,0,111,0,0,0,99,0,100,0,108,0,117,0,0,0,99,0,100,0,109,0,97,0,0,0,99,0,100,0,110,0,107,0,0,0,99,0,100,0,110,0,117,0,0,0,99,0,100,0,115,0,97,0,0,0,99,0,100,0,115,0,107,0,0,0,99,0,100,0,115,0,117,0,0,0,99,0,100,0,116,0,97,0,0,0,99,0,100,0,116,0,111,0,0,0,99,0,100,0,116,0,117,0,0,0,99,0,102,0,97,0,99,0,0,0,99,0,102,0,98,0,98,0,0,0,99,0,102,0,98,0,107,0,0,0,99,0,102,0,104,0,107,0,0,0,99,0,102,0,104,0,109,0,0,0,99,0,102,0,104,0,115,0,0,0,99,0,102,0,107,0,98,0,0,0,99,0,102,0,107,0,103,0,0,0,99,0,102,0,108,0,98,0,0,0,99,0,102,0,109,0,98,0,0,0,99,0,102,0,110,0,109,0,0,0,99,0,102,0,111,0,112,0,0,0,99,0,102,0,117,0,107,0,0,0,99,0,102,0,118,0,107,0,0,0,99,0,104,0,97,0,103,0,0,0,99,0,104,0,97,0,105,0,0,0,99,0,104,0,97,0,114,0,0,0,99,0,104,0,98,0,101,0,0,0,99,0,104,0,98,0,108,0,0,0,99,0,104,0,98,0,115,0,0,0,99,0,104,0,102,0,114,0,0,0,99,0,104,0,103,0,101,0,0,0,99,0,104,0,103,0,108,0,0,0,99,0,104,0,103,0,114,0,0,0,99,0,104,0,106,0,117,0,0,0,99,0,104,0,108,0,117,0,0,0,99,0,104,0,110,0,101,0,0,0,99,0,104,0,110,0,119,0,0,0,99,0,104,0,111,0,119,0,0,0,99,0,104,0,115,0,111,0,0,0,99,0,104,0,115,0,122,0,0,0,99,0,104,0,116,0,103,0,0,0,99,0,104,0,117,0,114,0,0,0,99,0,104,0,118,0,100,0,0,0,99,0,104,0,118,0,115,0,0,0,99,0,105,0,97,0,98,0,0,0,99,0,105,0,98,0,115,0,0,0,99,0,105,0,99,0,109,0,0,0,99,0,105,0,100,0,110,0,0,0,99,0,105,0,103,0,100,0,0,0,99,0,105,0,108,0,99,0,0,0,99,0,105,0,109,0,103,0,0,0,99,0,105,0,115,0,109,0,0,0,99,0,105,0,115,0,118,0,0,0,99,0,105,0,119,0,114,0,0,0,99,0,105,0,121,0,109,0,0,0,99,0,108,0,97,0,105,0,0,0,99,0,108,0,97,0,110,0,0,0,99,0,108,0,97,0,112,0,0,0,99,0,108,0,97,0,114,0,0,0,99,0,108,0,97,0,116,0,0,0,99,0,108,0,98,0,105,0,0,0,99,0,108,0,99,0,111,0,0,0,99,0,108,0,108,0,105,0,0,0,99,0,108,0,108,0,108,0,0,0,99,0,108,0,108,0,114,0,0,0,99,0,108,0,109,0,97,0,0,0,99,0,108,0,109,0,108,0,0,0,99,0,108,0,110,0,98,0,0,0,99,0,108,0,116,0,97,0,0,0,99,0,109,0,97,0,100,0,0,0,99,0,109,0,99,0,101,0,0,0,99,0,109,0,101,0,110,0,0,0,99,0,109,0,101,0,115,0,0,0,99,0,109,0,108,0,116,0,0,0,99,0,109,0,110,0,111,0,0,0,99,0,109,0,110,0,119,0,0,0,99,0,109,0,111,0,117,0,0,0,99,0,109,0,115,0,117,0,0,0,99,0,109,0,115,0,119,0,0,0,99,0,110,0,97,0,104,0,0,0,99,0,110,0,98,0,106,0,0,0,99,0,110,0,99,0,113,0,0,0,99,0,110,0,103,0,100,0,0,0,99,0,110,0,103,0,115,0,0,0,99,0,110,0,103,0,120,0,0,0,99,0,110,0,103,0,122,0,0,0,99,0,110,0,104,0,101,0,0,0,99,0,110,0,104,0,105,0,0,0,99,0,110,0,104,0,110,0,0,0,99,0,110,0,106,0,108,0,0,0,99,0,110,0,106,0,115,0,0,0,99,0,110,0,106,0,120,0,0,0,99,0,110,0,109,0,111,0,0,0,99,0,110,0,110,0,109,0,0,0,99,0,110,0,113,0,104,0,0,0,99,0,110,0,115,0,104,0,0,0,99,0,110,0,115,0,110,0,0,0,99,0,110,0,115,0,120,0,0,0,99,0,110,0,116,0,106,0,0,0,99,0,110,0,116,0,119,0,0,0,99,0,110,0,120,0,106,0,0,0,99,0,110,0,120,0,122,0,0,0,99,0,110,0,122,0,106,0,0,0,99,0,111,0,100,0,99,0,0,0,99,0,114,0,115,0,106,0,0,0,99,0,117,0,48,0,49,0,0,0,99,0,117,0,57,0,57,0,0,0,99,0,118,0,98,0,114,0,0,0,99,0,118,0,98,0,118,0,0,0,99,0,118,0,99,0,97,0,0,0,99,0,118,0,99,0,102,0,0,0,99,0,118,0,99,0,114,0,0,0,99,0,118,0,109,0,97,0,0,0,99,0,118,0,109,0,111,0,0,0,99,0,118,0,112,0,97,0,0,0,99,0,118,0,112,0,110,0,0,0,99,0,118,0,112,0,114,0,0,0,99,0,118,0,114,0,98,0,0,0,99,0,118,0,114,0,103,0,0,0,99,0,118,0,114,0,115,0,0,0,99,0,118,0,115,0,102,0,0,0,99,0,118,0,115,0,111,0,0,0,99,0,118,0,115,0,115,0,0,0,99,0,118,0,115,0,118,0,0,0,99,0,118,0,116,0,97,0,0,0,99,0,122,0,49,0,48,0,0,0,99,0,122,0,50,0,48,0,0,0,99,0,122,0,51,0,49,0,0,0,99,0,122,0,51,0,50,0,0,0,99,0,122,0,52,0,49,0,0,0,99,0,122,0,52,0,50,0,0,0,99,0,122,0,53,0,51,0,0,0,99,0,122,0,54,0,51,0,0,0,99,0,122,0,55,0,49,0,0,0,100,0,101,0,98,0,98,0,0,0,100,0,101,0,98,0,101,0,0,0,100,0,101,0,98,0,119,0,0,0,100,0,101,0,98,0,121,0,0,0,100,0,101,0,104,0,98,0,0,0,100,0,101,0,104,0,101,0,0,0,100,0,101,0,104,0,104,0,0,0,100,0,101,0,109,0,118,0,0,0,100,0,101,0,110,0,105,0,0,0,100,0,101,0,110,0,119,0,0,0,100,0,101,0,114,0,112,0,0,0,100,0,101,0,115,0,104,0,0,0,100,0,101,0,115,0,110,0,0,0,100,0,106,0,116,0,97,0,0,0,101,0,101,0,51,0,55,0,0,0,101,0,101,0,51,0,57,0,0,0,101,0,101,0,52,0,53,0,0,0,101,0,101,0,53,0,48,0,0,0,101,0,101,0,53,0,50,0,0,0,101,0,101,0,53,0,54,0,0,0,101,0,101,0,54,0,48,0,0,0,101,0,101,0,54,0,52,0,0,0,101,0,101,0,54,0,56,0,0,0,101,0,101,0,55,0,49,0,0,0,101,0,101,0,55,0,52,0,0,0,101,0,101,0,55,0,57,0,0,0,101,0,101,0,56,0,49,0,0,0,101,0,101,0,56,0,52,0,0,0,101,0,101,0,56,0,55,0,0,0,101,0,103,0,98,0,97,0,0,0,101,0,103,0,98,0,104,0,0,0,101,0,103,0,100,0,107,0,0,0,101,0,103,0,100,0,116,0,0,0,101,0,103,0,103,0,104,0,0,0,101,0,103,0,103,0,122,0,0,0,101,0,103,0,105,0,115,0,0,0,101,0,103,0,106,0,115,0,0,0,101,0,103,0,107,0,98,0,0,0,101,0,103,0,107,0,110,0,0,0,101,0,103,0,108,0,120,0,0,0,101,0,103,0,109,0,116,0,0,0,101,0,114,0,97,0,110,0,0,0,101,0,114,0,100,0,107,0,0,0,101,0,114,0,100,0,117,0,0,0,101,0,114,0,103,0,98,0,0,0,101,0,114,0,109,0,97,0,0,0,101,0,114,0,115,0,107,0,0,0,101,0,115,0,97,0,98,0,0,0,101,0,115,0,97,0,108,0,0,0,101,0,115,0,97,0,110,0,0,0,101,0,115,0,97,0,118,0,0,0,101,0,115,0,98,0,97,0,0,0,101,0,115,0,98,0,105,0,0,0,101,0,115,0,98,0,117,0,0,0,101,0,115,0,99,0,101,0,0,0,101,0,115,0,103,0,97,0,0,0,101,0,115,0,103,0,105,0,0,0,101,0,115,0,103,0,114,0,0,0,101,0,115,0,103,0,117,0,0,0,101,0,115,0,105,0,98,0,0,0,101,0,115,0,108,0,101,0,0,0,101,0,115,0,108,0,111,0,0,0,101,0,115,0,108,0,117,0,0,0,101,0,115,0,109,0,97,0,0,0,101,0,115,0,109,0,108,0,0,0,101,0,115,0,109,0,117,0,0,0,101,0,115,0,110,0,97,0,0,0,101,0,115,0,110,0,99,0,0,0,101,0,115,0,111,0,114,0,0,0,101,0,115,0,112,0,109,0,0,0,101,0,115,0,112,0,111,0,0,0,101,0,115,0,114,0,105,0,0,0,101,0,115,0,115,0,97,0,0,0,101,0,115,0,115,0,101,0,0,0,101,0,115,0,115,0,103,0,0,0,101,0,115,0,115,0,111,0,0,0,101,0,115,0,115,0,115,0,0,0,101,0,115,0,116,0,111,0,0,0,101,0,115,0,118,0,97,0,0,0,101,0,115,0,118,0,99,0,0,0,101,0,115,0,118,0,105,0,0,0,101,0,115,0,122,0,97,0,0,0,101,0,116,0,97,0,97,0,0,0,101,0,116,0,97,0,109,0,0,0,101,0,116,0,98,0,101,0,0,0,101,0,116,0,100,0,100,0,0,0,101,0,116,0,103,0,97,0,0,0,101,0,116,0,104,0,97,0,0,0,101,0,116,0,111,0,114,0,0,0,101,0,116,0,115,0,105,0,0,0,101,0,116,0,116,0,105,0,0,0,102,0,105,0,48,0,49,0,0,0,102,0,114,0,98,0,108,0,0,0,102,0,114,0,99,0,112,0,0,0,102,0,114,0,109,0,102,0,0,0,102,0,114,0,110,0,99,0,0,0,102,0,114,0,112,0,102,0,0,0,102,0,114,0,112,0,109,0,0,0,102,0,114,0,116,0,102,0,0,0,102,0,114,0,119,0,102,0,0,0,103,0,100,0,49,0,48,0,0,0,103,0,101,0,97,0,98,0,0,0,103,0,101,0,97,0,106,0,0,0,103,0,101,0,103,0,117,0,0,0,103,0,101,0,105,0,109,0,0,0,103,0,101,0,107,0,107,0,0,0,103,0,101,0,109,0,109,0,0,0,103,0,101,0,114,0,108,0,0,0,103,0,101,0,116,0,98,0,0,0,103,0,104,0,97,0,97,0,0,0,103,0,104,0,97,0,102,0,0,0,103,0,104,0,97,0,104,0,0,0,103,0,104,0,98,0,101,0,0,0,103,0,104,0,98,0,111,0,0,0,103,0,104,0,99,0,112,0,0,0,103,0,104,0,101,0,112,0,0,0,103,0,104,0,110,0,101,0,0,0,103,0,104,0,110,0,112,0,0,0,103,0,104,0,111,0,116,0,0,0,103,0,104,0,115,0,118,0,0,0,103,0,104,0,116,0,118,0,0,0,103,0,104,0,117,0,101,0,0,0,103,0,104,0,117,0,119,0,0,0,103,0,104,0,119,0,110,0,0,0,103,0,104,0,119,0,112,0,0,0,103,0,108,0,97,0,118,0,0,0,103,0,108,0,107,0,117,0,0,0,103,0,108,0,113,0,101,0,0,0,103,0,108,0,113,0,116,0,0,0,103,0,110,0,98,0,107,0,0,0,103,0,110,0,99,0,111,0,0,0,103,0,110,0,100,0,98,0,0,0,103,0,110,0,100,0,105,0,0,0,103,0,110,0,100,0,108,0,0,0,103,0,110,0,100,0,117,0,0,0,103,0,110,0,102,0,111,0,0,0,103,0,110,0,103,0,97,0,0,0,103,0,110,0,103,0,117,0,0,0,103,0,110,0,107,0,115,0,0,0,103,0,110,0,108,0,97,0,0,0,103,0,110,0,108,0,101,0,0,0,103,0,110,0,110,0,122,0,0,0,103,0,110,0,115,0,105,0,0,0,103,0,110,0,116,0,101,0,0,0,103,0,110,0,116,0,111,0,0,0,103,0,110,0,121,0,111,0,0,0,103,0,113,0,97,0,110,0,0,0,103,0,113,0,98,0,110,0,0,0,103,0,113,0,98,0,115,0,0,0,103,0,113,0,99,0,115,0,0,0,103,0,113,0,100,0,106,0,0,0,103,0,113,0,107,0,110,0,0,0,103,0,113,0,108,0,105,0,0,0,103,0,113,0,119,0,110,0,0,0,103,0,114,0,54,0,57,0,0,0,103,0,119,0,98,0,97,0,0,0,103,0,119,0,103,0,97,0,0,0,103,0,119,0,113,0,117,0,0,0,103,0,119,0,116,0,111,0,0,0,103,0,121,0,98,0,97,0,0,0,103,0,121,0,101,0,98,0,0,0,103,0,121,0,109,0,97,0,0,0,103,0,121,0,112,0,109,0,0,0,103,0,121,0,117,0,100,0,0,0,104,0,110,0,97,0,116,0,0,0,104,0,110,0,99,0,104,0,0,0,104,0,110,0,99,0,114,0,0,0,104,0,110,0,101,0,112,0,0,0,104,0,110,0,102,0,109,0,0,0,104,0,110,0,103,0,100,0,0,0,104,0,110,0,105,0,98,0,0,0,104,0,110,0,105,0,110,0,0,0,104,0,110,0,108,0,101,0,0,0,104,0,110,0,108,0,112,0,0,0,104,0,110,0,111,0,99,0,0,0,104,0,110,0,111,0,108,0,0,0,104,0,110,0,115,0,98,0,0,0,104,0,110,0,118,0,97,0,0,0,104,0,110,0,121,0,111,0,0,0,104,0,116,0,99,0,101,0,0,0,104,0,116,0,103,0,97,0,0,0,104,0,116,0,110,0,105,0,0,0,104,0,116,0,110,0,111,0,0,0,104,0,116,0,111,0,117,0,0,0,104,0,117,0,98,0,97,0,0,0,104,0,117,0,98,0,99,0,0,0,104,0,117,0,98,0,101,0,0,0,104,0,117,0,98,0,107,0,0,0,104,0,117,0,98,0,117,0,0,0,104,0,117,0,98,0,122,0,0,0,104,0,117,0,101,0,103,0,0,0,104,0,117,0,101,0,114,0,0,0,104,0,117,0,102,0,101,0,0,0,104,0,117,0,103,0,115,0,0,0,104,0,117,0,104,0,98,0,0,0,104,0,117,0,104,0,118,0,0,0,104,0,117,0,106,0,110,0,0,0,104,0,117,0,107,0,101,0,0,0,104,0,117,0,110,0,111,0,0,0,104,0,117,0,110,0,121,0,0,0,104,0,117,0,112,0,101,0,0,0,104,0,117,0,115,0,100,0,0,0,104,0,117,0,115,0,102,0,0,0,104,0,117,0,115,0,104,0,0,0,104,0,117,0,115,0,122,0,0,0,104,0,117,0,116,0,98,0,0,0,104,0,117,0,116,0,111,0,0,0,104,0,117,0,118,0,97,0,0,0,104,0,117,0,118,0,109,0,0,0,104,0,117,0,122,0,97,0,0,0,104,0,117,0,122,0,101,0,0,0,105,0,100,0,97,0,99,0,0,0,105,0,100,0,98,0,101,0,0,0,105,0,100,0,98,0,116,0,0,0,105,0,100,0,106,0,105,0,0,0,105,0,100,0,106,0,107,0,0,0,105,0,100,0,106,0,116,0,0,0,105,0,100,0,107,0,105,0,0,0,105,0,100,0,108,0,97,0,0,0,105,0,100,0,109,0,97,0,0,0,105,0,100,0,109,0,108,0,0,0,105,0,100,0,109,0,117,0,0,0,105,0,100,0,110,0,98,0,0,0,105,0,100,0,114,0,105,0,0,0,105,0,100,0,115,0,103,0,0,0,105,0,100,0,121,0,111,0,0,0,105,0,101,0,100,0,108,0,0,0,105,0,101,0,108,0,100,0,0,0,105,0,101,0,108,0,104,0,0,0,105,0,101,0,108,0,115,0,0,0,105,0,101,0,109,0,104,0,0,0,105,0,101,0,111,0,121,0,0,0,105,0,101,0,114,0,110,0,0,0,105,0,101,0,116,0,97,0,0,0,105,0,101,0,119,0,100,0,0,0,105,0,101,0,119,0,104,0,0,0,105,0,108,0,106,0,109,0,0,0,105,0,108,0,116,0,97,0,0,0,105,0,110,0,97,0,110,0,0,0,105,0,110,0,97,0,112,0,0,0,105,0,110,0,98,0,114,0,0,0,105,0,110,0,99,0,116,0,0,0,105,0,110,0,100,0,104,0,0,0,105,0,110,0,100,0,108,0,0,0,105,0,110,0,103,0,97,0,0,0,105,0,110,0,103,0,106,0,0,0,105,0,110,0,104,0,112,0,0,0,105,0,110,0,104,0,114,0,0,0,105,0,110,0,106,0,104,0,0,0,105,0,110,0,106,0,107,0,0,0,105,0,110,0,107,0,97,0,0,0,105,0,110,0,107,0,108,0,0,0,105,0,110,0,108,0,100,0,0,0,105,0,110,0,109,0,104,0,0,0,105,0,110,0,109,0,108,0,0,0,105,0,110,0,109,0,110,0,0,0,105,0,110,0,109,0,112,0,0,0,105,0,110,0,109,0,122,0,0,0,105,0,110,0,110,0,108,0,0,0,105,0,110,0,111,0,114,0,0,0,105,0,110,0,112,0,98,0,0,0,105,0,110,0,112,0,121,0,0,0,105,0,110,0,114,0,106,0,0,0,105,0,110,0,115,0,107,0,0,0,105,0,110,0,116,0,110,0,0,0,105,0,110,0,117,0,112,0,0,0,105,0,110,0,117,0,116,0,0,0,105,0,110,0,119,0,98,0,0,0,105,0,113,0,97,0,110,0,0,0,105,0,113,0,97,0,114,0,0,0,105,0,113,0,98,0,103,0,0,0,105,0,113,0,100,0,97,0,0,0,105,0,113,0,100,0,105,0,0,0,105,0,113,0,100,0,113,0,0,0,105,0,113,0,107,0,97,0,0,0,105,0,113,0,107,0,105,0,0,0,105,0,113,0,107,0,114,0,0,0,105,0,113,0,109,0,97,0,0,0,105,0,113,0,109,0,117,0,0,0,105,0,113,0,110,0,97,0,0,0,105,0,113,0,110,0,105,0,0,0,105,0,113,0,113,0,97,0,0,0,105,0,113,0,115,0,100,0,0,0,105,0,113,0,115,0,117,0,0,0,105,0,114,0,51,0,48,0,0,0,105,0,116,0,50,0,49,0,0,0,105,0,116,0,50,0,51,0,0,0,105,0,116,0,50,0,53,0,0,0,105,0,116,0,51,0,50,0,0,0,105,0,116,0,51,0,52,0,0,0,105,0,116,0,51,0,54,0,0,0,105,0,116,0,52,0,50,0,0,0,105,0,116,0,52,0,53,0,0,0,105,0,116,0,53,0,50,0,0,0,105,0,116,0,53,0,53,0,0,0,105,0,116,0,53,0,55,0,0,0,105,0,116,0,54,0,50,0,0,0,105,0,116,0,54,0,53,0,0,0,105,0,116,0,54,0,55,0,0,0,105,0,116,0,55,0,50,0,0,0,105,0,116,0,55,0,53,0,0,0,105,0,116,0,56,0,50,0,0,0,105,0,116,0,56,0,56,0,0,0,105,0,116,0,97,0,103,0,0,0,105,0,116,0,97,0,110,0,0,0,105,0,116,0,97,0,116,0,0,0,105,0,116,0,97,0,118,0,0,0,105,0,116,0,98,0,103,0,0,0,105,0,116,0,98,0,105,0,0,0,105,0,116,0,98,0,108,0,0,0,105,0,116,0,98,0,122,0,0,0,105,0,116,0,99,0,101,0,0,0,105,0,116,0,99,0,104,0,0,0,105,0,116,0,99,0,108,0,0,0,105,0,116,0,99,0,122,0,0,0,105,0,116,0,101,0,110,0,0,0,105,0,116,0,102,0,99,0,0,0,105,0,116,0,102,0,101,0,0,0,105,0,116,0,102,0,103,0,0,0,105,0,116,0,102,0,109,0,0,0,105,0,116,0,103,0,101,0,0,0,105,0,116,0,103,0,111,0,0,0,105,0,116,0,103,0,114,0,0,0,105,0,116,0,105,0,109,0,0,0,105,0,116,0,105,0,115,0,0,0,105,0,116,0,107,0,114,0,0,0,105,0,116,0,108,0,99,0,0,0,105,0,116,0,108,0,101,0,0,0,105,0,116,0,108,0,105,0,0,0,105,0,116,0,108,0,111,0,0,0,105,0,116,0,109,0,101,0,0,0,105,0,116,0,109,0,105,0,0,0,105,0,116,0,110,0,97,0,0,0,105,0,116,0,110,0,111,0,0,0,105,0,116,0,110,0,117,0,0,0,105,0,116,0,111,0,114,0,0,0,105,0,116,0,112,0,103,0,0,0,105,0,116,0,112,0,105,0,0,0,105,0,116,0,112,0,114,0,0,0,105,0,116,0,112,0,122,0,0,0,105,0,116,0,114,0,97,0,0,0,105,0,116,0,114,0,99,0,0,0,105,0,116,0,114,0,101,0,0,0,105,0,116,0,114,0,103,0,0,0,105,0,116,0,114,0,105,0,0,0,105,0,116,0,115,0,97,0,0,0,105,0,116,0,115,0,105,0,0,0,105,0,116,0,116,0,97,0,0,0,105,0,116,0,116,0,101,0,0,0,105,0,116,0,116,0,118,0,0,0,105,0,116,0,117,0,100,0,0,0,105,0,116,0,118,0,101,0,0,0,105,0,116,0,118,0,105,0,0,0,105,0,116,0,118,0,114,0,0,0,105,0,116,0,118,0,116,0,0,0,105,0,116,0,118,0,118,0,0,0,106,0,111,0,97,0,106,0,0,0,106,0,111,0,97,0,109,0,0,0,106,0,111,0,97,0,113,0,0,0,106,0,111,0,97,0,116,0,0,0,106,0,111,0,97,0,122,0,0,0,106,0,111,0,98,0,97,0,0,0,106,0,111,0,105,0,114,0,0,0,106,0,111,0,106,0,97,0,0,0,106,0,111,0,107,0,97,0,0,0,106,0,111,0,109,0,97,0,0,0,106,0,111,0,109,0,100,0,0,0,106,0,111,0,109,0,110,0,0,0,107,0,103,0,103,0,98,0,0,0,107,0,103,0,103,0,111,0,0,0,107,0,110,0,49,0,53,0,0,0,107,0,112,0,49,0,48,0,0,0,107,0,114,0,49,0,49,0,0,0,107,0,114,0,53,0,48,0,0,0,107,0,119,0,97,0,104,0,0,0,107,0,119,0,102,0,97,0,0,0,107,0,119,0,104,0,97,0,0,0,107,0,119,0,109,0,117,0,0,0,108,0,97,0,104,0,111,0,0,0,108,0,97,0,107,0,104,0,0,0,108,0,97,0,108,0,109,0,0,0,108,0,97,0,108,0,112,0,0,0,108,0,97,0,111,0,117,0,0,0,108,0,97,0,112,0,104,0,0,0,108,0,97,0,115,0,108,0,0,0,108,0,97,0,115,0,118,0,0,0,108,0,97,0,118,0,116,0,0,0,108,0,97,0,120,0,97,0,0,0,108,0,97,0,120,0,105,0,0,0,108,0,97,0,120,0,115,0,0,0,108,0,98,0,97,0,107,0,0,0,108,0,98,0,97,0,115,0,0,0,108,0,98,0,98,0,97,0,0,0,108,0,98,0,106,0,97,0,0,0,108,0,98,0,106,0,108,0,0,0,108,0,98,0,110,0,97,0,0,0,108,0,114,0,98,0,103,0,0,0,108,0,114,0,98,0,109,0,0,0,108,0,114,0,99,0,109,0,0,0,108,0,114,0,103,0,98,0,0,0,108,0,114,0,103,0,103,0,0,0,108,0,114,0,103,0,112,0,0,0,108,0,114,0,108,0,111,0,0,0,108,0,114,0,109,0,103,0,0,0,108,0,114,0,109,0,111,0,0,0,108,0,114,0,110,0,105,0,0,0,108,0,114,0,114,0,103,0,0,0,108,0,114,0,115,0,105,0,0,0,108,0,116,0,54,0,48,0,0,0,108,0,116,0,97,0,108,0,0,0,108,0,116,0,107,0,108,0,0,0,108,0,116,0,107,0,117,0,0,0,108,0,116,0,109,0,114,0,0,0,108,0,116,0,112,0,110,0,0,0,108,0,116,0,115,0,97,0,0,0,108,0,116,0,116,0,97,0,0,0,108,0,116,0,116,0,101,0,0,0,108,0,116,0,117,0,116,0,0,0,108,0,116,0,118,0,108,0,0,0,108,0,117,0,99,0,97,0,0,0,108,0,117,0,99,0,108,0,0,0,108,0,117,0,100,0,105,0,0,0,108,0,117,0,101,0,99,0,0,0,108,0,117,0,103,0,114,0,0,0,108,0,117,0,109,0,101,0,0,0,108,0,117,0,114,0,100,0,0,0,108,0,117,0,118,0,100,0,0,0,108,0,117,0,119,0,105,0,0,0,108,0,121,0,98,0,97,0,0,0,108,0,121,0,98,0,117,0,0,0,108,0,121,0,100,0,114,0,0,0,108,0,121,0,103,0,116,0,0,0,108,0,121,0,106,0,103,0,0,0,108,0,121,0,106,0,105,0,0,0,108,0,121,0,106,0,117,0,0,0,108,0,121,0,107,0,102,0,0,0,108,0,121,0,109,0,98,0,0,0,108,0,121,0,109,0,113,0,0,0,108,0,121,0,115,0,98,0,0,0,108,0,121,0,115,0,114,0,0,0,108,0,121,0,116,0,98,0,0,0,108,0,121,0,119,0,100,0,0,0,108,0,121,0,119,0,115,0,0,0,108,0,121,0,122,0,97,0,0,0,109,0,99,0,99,0,108,0,0,0,109,0,99,0,99,0,111,0,0,0,109,0,99,0,102,0,111,0,0,0,109,0,99,0,109,0,117,0,0,0,109,0,99,0,112,0,104,0,0,0,109,0,99,0,115,0,100,0,0,0,109,0,99,0,115,0,114,0,0,0,109,0,99,0,118,0,114,0,0,0,109,0,100,0,97,0,110,0,0,0,109,0,100,0,98,0,97,0,0,0,109,0,100,0,98,0,100,0,0,0,109,0,100,0,99,0,97,0,0,0,109,0,100,0,100,0,111,0,0,0,109,0,100,0,100,0,114,0,0,0,109,0,100,0,100,0,117,0,0,0,109,0,100,0,101,0,100,0,0,0,109,0,100,0,102,0,97,0,0,0,109,0,100,0,102,0,108,0,0,0,109,0,100,0,103,0,97,0,0,0,109,0,100,0,103,0,108,0,0,0,109,0,100,0,105,0,97,0,0,0,109,0,100,0,108,0,101,0,0,0,109,0,100,0,110,0,105,0,0,0,109,0,100,0,111,0,99,0,0,0,109,0,100,0,111,0,114,0,0,0,109,0,100,0,114,0,101,0,0,0,109,0,100,0,115,0,100,0,0,0,109,0,100,0,115,0,105,0,0,0,109,0,100,0,115,0,116,0,0,0,109,0,100,0,115,0,118,0,0,0,109,0,100,0,116,0,97,0,0,0,109,0,100,0,116,0,101,0,0,0,109,0,100,0,117,0,110,0,0,0,109,0,108,0,49,0,48,0,0,0,109,0,117,0,97,0,103,0,0,0,109,0,117,0,99,0,99,0,0,0,109,0,117,0,102,0,108,0,0,0,109,0,117,0,103,0,112,0,0,0,109,0,117,0,109,0,111,0,0,0,109,0,117,0,112,0,97,0,0,0,109,0,117,0,112,0,108,0,0,0,109,0,117,0,112,0,119,0,0,0,109,0,117,0,114,0,111,0,0,0,109,0,117,0,115,0,97,0,0,0,109,0,118,0,49,0,55,0,0,0,109,0,118,0,50,0,48,0,0,0,109,0,119,0,98,0,97,0,0,0,109,0,119,0,98,0,108,0,0,0,109,0,119,0,99,0,107,0,0,0,109,0,119,0,99,0,114,0,0,0,109,0,119,0,99,0,116,0,0,0,109,0,119,0,100,0,101,0,0,0,109,0,119,0,100,0,111,0,0,0,109,0,119,0,108,0,105,0,0,0,109,0,119,0,108,0,107,0,0,0,109,0,119,0,109,0,99,0,0,0,109,0,119,0,109,0,117,0,0,0,109,0,119,0,109,0,119,0,0,0,109,0,119,0,109,0,122,0,0,0,109,0,119,0,110,0,115,0,0,0,109,0,119,0,112,0,104,0,0,0,109,0,119,0,122,0,111,0,0,0,110,0,97,0,99,0,97,0,0,0,110,0,97,0,101,0,114,0,0,0,110,0,97,0,104,0,97,0,0,0,110,0,97,0,107,0,97,0,0,0,110,0,97,0,107,0,101,0,0,0,110,0,97,0,107,0,104,0,0,0,110,0,97,0,107,0,117,0,0,0,110,0,97,0,107,0,119,0,0,0,110,0,97,0,111,0,100,0,0,0,110,0,97,0,111,0,110,0,0,0,110,0,97,0,111,0,119,0,0,0,110,0,103,0,97,0,98,0,0,0,110,0,103,0,97,0,100,0,0,0,110,0,103,0,97,0,107,0,0,0,110,0,103,0,98,0,97,0,0,0,110,0,103,0,98,0,101,0,0,0,110,0,103,0,98,0,121,0,0,0,110,0,103,0,100,0,101,0,0,0,110,0,103,0,101,0,98,0,0,0,110,0,103,0,101,0,100,0,0,0,110,0,103,0,101,0,107,0,0,0,110,0,103,0,101,0,110,0,0,0,110,0,103,0,102,0,99,0,0,0,110,0,103,0,103,0,111,0,0,0,110,0,103,0,105,0,109,0,0,0,110,0,103,0,107,0,116,0,0,0,110,0,103,0,107,0,119,0,0,0,110,0,103,0,108,0,97,0,0,0,110,0,103,0,110,0,97,0,0,0,110,0,103,0,110,0,105,0,0,0,110,0,103,0,111,0,103,0,0,0,110,0,103,0,111,0,110,0,0,0,110,0,103,0,111,0,115,0,0,0,110,0,103,0,111,0,121,0,0,0,110,0,103,0,112,0,108,0,0,0,110,0,103,0,115,0,111,0,0,0,110,0,103,0,121,0,111,0,0,0,110,0,103,0,122,0,97,0,0,0,110,0,105,0,97,0,110,0,0,0,110,0,105,0,97,0,115,0,0,0,110,0,105,0,98,0,111,0,0,0,110,0,105,0,99,0,105,0,0,0,110,0,105,0,99,0,111,0,0,0,110,0,105,0,101,0,115,0,0,0,110,0,105,0,103,0,114,0,0,0,110,0,105,0,106,0,105,0,0,0,110,0,105,0,108,0,101,0,0,0,110,0,105,0,109,0,100,0,0,0,110,0,105,0,109,0,110,0,0,0,110,0,105,0,110,0,115,0,0,0,110,0,105,0,114,0,105,0,0,0,110,0,105,0,115,0,106,0,0,0,110,0,108,0,97,0,119,0,0,0,110,0,108,0,99,0,119,0,0,0,110,0,108,0,100,0,114,0,0,0,110,0,108,0,102,0,108,0,0,0,110,0,108,0,102,0,114,0,0,0,110,0,108,0,103,0,101,0,0,0,110,0,108,0,103,0,114,0,0,0,110,0,108,0,108,0,105,0,0,0,110,0,108,0,110,0,98,0,0,0,110,0,108,0,110,0,104,0,0,0,110,0,108,0,111,0,118,0,0,0,110,0,108,0,115,0,120,0,0,0,110,0,108,0,117,0,116,0,0,0,110,0,108,0,122,0,101,0,0,0,110,0,111,0,48,0,51,0,0,0,110,0,111,0,49,0,49,0,0,0,110,0,111,0,49,0,53,0,0,0,110,0,111,0,49,0,56,0,0,0,110,0,111,0,51,0,48,0,0,0,110,0,111,0,51,0,52,0,0,0,110,0,111,0,51,0,56,0,0,0,110,0,111,0,52,0,50,0,0,0,110,0,111,0,52,0,54,0,0,0,110,0,111,0,53,0,48,0,0,0,110,0,111,0,53,0,52,0,0,0,110,0,112,0,98,0,97,0,0,0,110,0,112,0,98,0,104,0,0,0,110,0,112,0,100,0,104,0,0,0,110,0,112,0,106,0,97,0,0,0,110,0,112,0,107,0,97,0,0,0,110,0,112,0,108,0,117,0,0,0,110,0,112,0,109,0,97,0,0,0,110,0,112,0,109,0,101,0,0,0,111,0,109,0,98,0,106,0,0,0,111,0,109,0,98,0,115,0,0,0,111,0,109,0,98,0,117,0,0,0,111,0,109,0,100,0,97,0,0,0,111,0,109,0,109,0,97,0,0,0,111,0,109,0,109,0,117,0,0,0,111,0,109,0,115,0,106,0,0,0,111,0,109,0,115,0,115,0,0,0,111,0,109,0,119,0,117,0,0,0,111,0,109,0,122,0,117,0,0,0,112,0,97,0,49,0,48,0,0,0,112,0,97,0,101,0,109,0,0,0,112,0,97,0,107,0,121,0,0,0,112,0,97,0,110,0,98,0,0,0,112,0,97,0,110,0,116,0,0,0,112,0,107,0,98,0,97,0,0,0,112,0,107,0,105,0,115,0,0,0,112,0,107,0,106,0,107,0,0,0,112,0,107,0,107,0,112,0,0,0,112,0,107,0,112,0,98,0,0,0,112,0,107,0,115,0,100,0,0,0,112,0,108,0,48,0,50,0,0,0,112,0,108,0,48,0,52,0,0,0,112,0,108,0,48,0,54,0,0,0,112,0,108,0,48,0,56,0,0,0,112,0,108,0,49,0,48,0,0,0,112,0,108,0,49,0,50,0,0,0,112,0,108,0,49,0,52,0,0,0,112,0,108,0,49,0,54,0,0,0,112,0,108,0,49,0,56,0,0,0,112,0,108,0,50,0,48,0,0,0,112,0,108,0,50,0,50,0,0,0,112,0,108,0,50,0,52,0,0,0,112,0,108,0,50,0,54,0,0,0,112,0,108,0,50,0,56,0,0,0,112,0,108,0,51,0,48,0,0,0,112,0,108,0,51,0,50,0,0,0,112,0,116,0,50,0,48,0,0,0,112,0,116,0,51,0,48,0,0,0,112,0,121,0,49,0,57,0,0,0,113,0,97,0,100,0,97,0,0,0,113,0,97,0,107,0,104,0,0,0,113,0,97,0,109,0,115,0,0,0,113,0,97,0,114,0,97,0,0,0,113,0,97,0,115,0,104,0,0,0,113,0,97,0,117,0,115,0,0,0,113,0,97,0,119,0,97,0,0,0,113,0,97,0,122,0,97,0,0,0,114,0,111,0,97,0,98,0,0,0,114,0,111,0,97,0,103,0,0,0,114,0,111,0,98,0,99,0,0,0,114,0,111,0,98,0,104,0,0,0,114,0,111,0,98,0,110,0,0,0,114,0,111,0,98,0,114,0,0,0,114,0,111,0,98,0,116,0,0,0,114,0,111,0,98,0,118,0,0,0,114,0,111,0,98,0,122,0,0,0,114,0,111,0,99,0,106,0,0,0,114,0,111,0,99,0,108,0,0,0,114,0,111,0,100,0,98,0,0,0,114,0,111,0,100,0,106,0,0,0,114,0,111,0,103,0,106,0,0,0,114,0,111,0,103,0,108,0,0,0,114,0,111,0,103,0,114,0,0,0,114,0,111,0,104,0,100,0,0,0,114,0,111,0,104,0,114,0,0,0,114,0,111,0,105,0,102,0,0,0,114,0,111,0,105,0,108,0,0,0,114,0,111,0,105,0,115,0,0,0,114,0,111,0,109,0,104,0,0,0,114,0,111,0,109,0,109,0,0,0,114,0,111,0,109,0,115,0,0,0,114,0,111,0,110,0,116,0,0,0,114,0,111,0,111,0,116,0,0,0,114,0,111,0,112,0,104,0,0,0,114,0,111,0,115,0,98,0,0,0,114,0,111,0,115,0,106,0,0,0,114,0,111,0,115,0,109,0,0,0,114,0,111,0,115,0,118,0,0,0,114,0,111,0,116,0,114,0,0,0,114,0,111,0,118,0,108,0,0,0,114,0,111,0,118,0,110,0,0,0,114,0,111,0,118,0,115,0,0,0,114,0,115,0,107,0,109,0,0,0,114,0,117,0,97,0,100,0,0,0,114,0,117,0,97,0,108,0,0,0,114,0,117,0,99,0,101,0,0,0,114,0,117,0,99,0,117,0,0,0,114,0,117,0,105,0,110,0,0,0,114,0,117,0,107,0,111,0,0,0,114,0,117,0,107,0,114,0,0,0,114,0,117,0,109,0,101,0,0,0,114,0,117,0,109,0,111,0,0,0,114,0,117,0,115,0,101,0,0,0,114,0,117,0,116,0,121,0,0,0,114,0,117,0,117,0,100,0,0,0,115,0,97,0,49,0,52,0,0,0,115,0,98,0,99,0,101,0,0,0,115,0,98,0,99,0,104,0,0,0,115,0,98,0,99,0,116,0,0,0,115,0,98,0,103,0,117,0,0,0,115,0,98,0,105,0,115,0,0,0,115,0,98,0,114,0,98,0,0,0,115,0,98,0,116,0,101,0,0,0,115,0,98,0,119,0,101,0,0,0,115,0,100,0,100,0,99,0,0,0,115,0,100,0,100,0,101,0,0,0,115,0,100,0,100,0,110,0,0,0,115,0,100,0,100,0,115,0,0,0,115,0,100,0,103,0,100,0,0,0,115,0,100,0,103,0,107,0,0,0,115,0,100,0,107,0,97,0,0,0,115,0,100,0,107,0,104,0,0,0,115,0,100,0,107,0,110,0,0,0,115,0,100,0,107,0,115,0,0,0,115,0,100,0,110,0,98,0,0,0,115,0,100,0,110,0,111,0,0,0,115,0,100,0,110,0,119,0,0,0,115,0,100,0,114,0,115,0,0,0,115,0,100,0,115,0,105,0,0,0,115,0,101,0,98,0,100,0,0,0,115,0,104,0,97,0,99,0,0,0,115,0,104,0,104,0,108,0,0,0,115,0,104,0,116,0,97,0,0,0,115,0,107,0,98,0,99,0,0,0,115,0,107,0,98,0,108,0,0,0,115,0,107,0,107,0,105,0,0,0,115,0,107,0,110,0,105,0,0,0,115,0,107,0,116,0,97,0,0,0,115,0,107,0,116,0,99,0,0,0,115,0,110,0,100,0,98,0,0,0,115,0,110,0,100,0,107,0,0,0,115,0,110,0,102,0,107,0,0,0,115,0,110,0,107,0,97,0,0,0,115,0,110,0,107,0,108,0,0,0,115,0,110,0,109,0,116,0,0,0,115,0,110,0,115,0,101,0,0,0,115,0,110,0,115,0,108,0,0,0,115,0,110,0,116,0,99,0,0,0,115,0,110,0,116,0,104,0,0,0,115,0,110,0,122,0,103,0,0,0,115,0,111,0,97,0,119,0,0,0,115,0,111,0,98,0,107,0,0,0,115,0,111,0,98,0,110,0,0,0,115,0,111,0,98,0,121,0,0,0,115,0,111,0,103,0,97,0,0,0,115,0,111,0,104,0,105,0,0,0,115,0,111,0,106,0,100,0,0,0,115,0,111,0,106,0,104,0,0,0,115,0,111,0,109,0,117,0,0,0,115,0,111,0,110,0,117,0,0,0,115,0,111,0,115,0,100,0,0,0,115,0,111,0,115,0,104,0,0,0,115,0,111,0,115,0,111,0,0,0,115,0,111,0,116,0,111,0,0,0,115,0,111,0,119,0,111,0,0,0,115,0,114,0,98,0,114,0,0,0,115,0,114,0,99,0,109,0,0,0,115,0,114,0,99,0,114,0,0,0,115,0,114,0,109,0,97,0,0,0,115,0,114,0,110,0,105,0,0,0,115,0,114,0,112,0,109,0,0,0,115,0,114,0,112,0,114,0,0,0,115,0,114,0,115,0,97,0,0,0,115,0,115,0,98,0,110,0,0,0,115,0,115,0,98,0,119,0,0,0,115,0,115,0,101,0,101,0,0,0,115,0,115,0,108,0,107,0,0,0,115,0,115,0,110,0,117,0,0,0,115,0,115,0,117,0,121,0,0,0,115,0,115,0,119,0,114,0,0,0,115,0,118,0,97,0,104,0,0,0,115,0,118,0,99,0,97,0,0,0,115,0,118,0,99,0,104,0,0,0,115,0,118,0,99,0,117,0,0,0,115,0,118,0,108,0,105,0,0,0,115,0,118,0,109,0,111,0,0,0,115,0,118,0,112,0,97,0,0,0,115,0,118,0,115,0,97,0,0,0,115,0,118,0,115,0,109,0,0,0,115,0,118,0,115,0,111,0,0,0,115,0,118,0,117,0,110,0,0,0,115,0,118,0,117,0,115,0,0,0,115,0,121,0,100,0,105,0,0,0,115,0,121,0,100,0,114,0,0,0,115,0,121,0,100,0,121,0,0,0,115,0,121,0,104,0,105,0,0,0,115,0,121,0,108,0,97,0,0,0,115,0,121,0,114,0,97,0,0,0,115,0,121,0,114,0,100,0,0,0,115,0,121,0,115,0,117,0,0,0,115,0,121,0,116,0,97,0,0,0,115,0,122,0,104,0,104,0,0,0,115,0,122,0,109,0,97,0,0,0,116,0,100,0,98,0,97,0,0,0,116,0,100,0,98,0,103,0,0,0,116,0,100,0,98,0,111,0,0,0,116,0,100,0,99,0,98,0,0,0,116,0,100,0,101,0,101,0,0,0,116,0,100,0,101,0,111,0,0,0,116,0,100,0,103,0,114,0,0,0,116,0,100,0,104,0,108,0,0,0,116,0,100,0,108,0,99,0,0,0,116,0,100,0,108,0,111,0,0,0,116,0,100,0,108,0,114,0,0,0,116,0,100,0,109,0,97,0,0,0,116,0,100,0,109,0,99,0,0,0,116,0,100,0,109,0,101,0,0,0,116,0,100,0,109,0,111,0,0,0,116,0,100,0,110,0,100,0,0,0,116,0,100,0,111,0,100,0,0,0,116,0,100,0,115,0,97,0,0,0,116,0,100,0,115,0,105,0,0,0,116,0,100,0,116,0,97,0,0,0,116,0,100,0,116,0,105,0,0,0,116,0,100,0,119,0,102,0,0,0,116,0,106,0,100,0,117,0,0,0,116,0,106,0,107,0,116,0,0,0,116,0,106,0,114,0,97,0,0,0,116,0,106,0,115,0,117,0,0,0,116,0,108,0,97,0,108,0,0,0,116,0,108,0,97,0,110,0,0,0,116,0,108,0,98,0,111,0,0,0,116,0,108,0,99,0,111,0,0,0,116,0,108,0,100,0,105,0,0,0,116,0,108,0,101,0,114,0,0,0,116,0,108,0,108,0,97,0,0,0,116,0,108,0,108,0,105,0,0,0,116,0,108,0,109,0,102,0,0,0,116,0,108,0,109,0,116,0,0,0,116,0,108,0,111,0,101,0,0,0,116,0,110,0,54,0,49,0,0,0,117,0,97,0,48,0,53,0,0,0,117,0,97,0,48,0,55,0,0,0,117,0,97,0,48,0,57,0,0,0,117,0,97,0,49,0,50,0,0,0,117,0,97,0,49,0,52,0,0,0,117,0,97,0,49,0,56,0,0,0,117,0,97,0,50,0,49,0,0,0,117,0,97,0,50,0,51,0,0,0,117,0,97,0,50,0,54,0,0,0,117,0,97,0,51,0,48,0,0,0,117,0,97,0,51,0,50,0,0,0,117,0,97,0,51,0,53,0,0,0,117,0,97,0,52,0,48,0,0,0,117,0,97,0,52,0,51,0,0,0,117,0,97,0,52,0,54,0,0,0,117,0,97,0,52,0,56,0,0,0,117,0,97,0,53,0,49,0,0,0,117,0,97,0,53,0,51,0,0,0,117,0,97,0,53,0,54,0,0,0,117,0,97,0,53,0,57,0,0,0,117,0,97,0,54,0,49,0,0,0,117,0,97,0,54,0,51,0,0,0,117,0,97,0,54,0,53,0,0,0,117,0,97,0,54,0,56,0,0,0,117,0,97,0,55,0,49,0,0,0,117,0,97,0,55,0,52,0,0,0,117,0,97,0,55,0,55,0,0,0,117,0,109,0,54,0,55,0,0,0,117,0,109,0,55,0,49,0,0,0,117,0,109,0,55,0,54,0,0,0,117,0,109,0,55,0,57,0,0,0,117,0,109,0,56,0,49,0,0,0,117,0,109,0,56,0,52,0,0,0,117,0,109,0,56,0,54,0,0,0,117,0,109,0,56,0,57,0,0,0,117,0,109,0,57,0,53,0,0,0,117,0,115,0,97,0,115,0,0,0,117,0,115,0,97,0,122,0,0,0,117,0,115,0,99,0,111,0,0,0,117,0,115,0,99,0,116,0,0,0,117,0,115,0,100,0,101,0,0,0,117,0,115,0,102,0,108,0,0,0,117,0,115,0,103,0,97,0,0,0,117,0,115,0,103,0,117,0,0,0,117,0,115,0,104,0,105,0,0,0,117,0,115,0,105,0,97,0,0,0,117,0,115,0,105,0,100,0,0,0,117,0,115,0,105,0,108,0,0,0,117,0,115,0,105,0,110,0,0,0,117,0,115,0,107,0,115,0,0,0,117,0,115,0,107,0,121,0,0,0,117,0,115,0,109,0,97,0,0,0,117,0,115,0,109,0,105,0,0,0,117,0,115,0,109,0,112,0,0,0,117,0,115,0,110,0,106,0,0,0,117,0,115,0,110,0,109,0,0,0,117,0,115,0,110,0,118,0,0,0,117,0,115,0,110,0,121,0,0,0,117,0,115,0,111,0,104,0,0,0,117,0,115,0,111,0,107,0,0,0,117,0,115,0,111,0,114,0,0,0,117,0,115,0,112,0,97,0,0,0,117,0,115,0,112,0,114,0,0,0,117,0,115,0,114,0,105,0,0,0,117,0,115,0,116,0,110,0,0,0,117,0,115,0,116,0,120,0,0,0,117,0,115,0,117,0,109,0,0,0,117,0,115,0,117,0,116,0,0,0,117,0,115,0,118,0,97,0,0,0,117,0,115,0,118,0,105,0,0,0,117,0,115,0,118,0,116,0,0,0,117,0,115,0,119,0,97,0,0,0,117,0,115,0,119,0,105,0,0,0,117,0,115,0,119,0,118,0,0,0,117,0,115,0,119,0,121,0,0,0,117,0,121,0,99,0,97,0,0,0,117,0,121,0,100,0,117,0,0,0,117,0,121,0,102,0,100,0,0,0,117,0,121,0,102,0,115,0,0,0,117,0,121,0,108,0,97,0,0,0,117,0,121,0,109,0,111,0,0,0,117,0,121,0,112,0,97,0,0,0,117,0,121,0,114,0,118,0,0,0,117,0,121,0,115,0,97,0,0,0,117,0,121,0,115,0,106,0,0,0,117,0,122,0,97,0,110,0,0,0,117,0,122,0,98,0,117,0,0,0,117,0,122,0,110,0,119,0,0,0,117,0,122,0,113,0,97,0,0,0,117,0,122,0,113,0,114,0,0,0,117,0,122,0,120,0,111,0,0,0,118,0,110,0,48,0,57,0,0,0,118,0,110,0,49,0,56,0,0,0,118,0,110,0,51,0,57,0,0,0,118,0,110,0,52,0,57,0,0,0,118,0,110,0,54,0,49,0,0,0,118,0,110,0,54,0,51,0,0,0,118,0,110,0,99,0,116,0,0,0,118,0,110,0,100,0,110,0,0,0,118,0,110,0,104,0,110,0,0,0,118,0,110,0,104,0,112,0,0,0,118,0,110,0,115,0,103,0,0,0,119,0,102,0,97,0,108,0,0,0,119,0,102,0,115,0,103,0,0,0,119,0,115,0,97,0,97,0,0,0,119,0,115,0,97,0,108,0,0,0,119,0,115,0,97,0,116,0,0,0,119,0,115,0,102,0,97,0,0,0,119,0,115,0,103,0,101,0,0,0,119,0,115,0,103,0,105,0,0,0,119,0,115,0,112,0,97,0,0,0,119,0,115,0,115,0,97,0,0,0,119,0,115,0,116,0,117,0,0,0,119,0,115,0,118,0,102,0,0,0,121,0,101,0,97,0,98,0,0,0,121,0,101,0,97,0,100,0,0,0,121,0,101,0,97,0,109,0,0,0,121,0,101,0,98,0,97,0,0,0,121,0,101,0,100,0,97,0,0,0,121,0,101,0,100,0,104,0,0,0,121,0,101,0,104,0,100,0,0,0,121,0,101,0,104,0,106,0,0,0,121,0,101,0,105,0,98,0,0,0,121,0,101,0,108,0,97,0,0,0,121,0,101,0,109,0,97,0,0,0,121,0,101,0,109,0,114,0,0,0,121,0,101,0,109,0,119,0,0,0,121,0,101,0,115,0,100,0,0,0,121,0,101,0,115,0,110,0,0,0,121,0,101,0,116,0,97,0,0,0,122,0,97,0,102,0,115,0,0,0,122,0,97,0,108,0,112,0,0,0,122,0,97,0,109,0,112,0,0,0,122,0,97,0,110,0,99,0,0,0,122,0,97,0,110,0,119,0,0,0,122,0,97,0,119,0,99,0,0,0,122,0,109,0,49,0,48,0,0,0,122,0,119,0,98,0,117,0,0,0,122,0,119,0,109,0,97,0,0,0,122,0,119,0,109,0,99,0,0,0,122,0,119,0,109,0,101,0,0,0,122,0,119,0,109,0,105,0,0,0,49,0,57,0,57,0,54,0,0,0,66,0,104,0,107,0,115,0,0,0,72,0,109,0,110,0,112,0,0,0,72,0,117,0,110,0,103,0,0,0,77,0,97,0,114,0,99,0,0,0,77,0,101,0,114,0,111,0,0,0,83,0,111,0,103,0,111,0,0,0,97,0,108,0,109,0,109,0,0,0,97,0,108,0,115,0,104,0,0,0,97,0,108,0,115,0,107,0,0,0,98,0,106,0,97,0,107,0,0,0,98,0,114,0,114,0,111,0,0,0,99,0,104,0,115,0,104,0,0,0,99,0,110,0,104,0,107,0,0,0,99,0,118,0,115,0,108,0,0,0,100,0,106,0,97,0,114,0,0,0,101,0,115,0,99,0,98,0,0,0,103,0,101,0,115,0,107,0,0,0,103,0,110,0,98,0,102,0,0,0,103,0,116,0,106,0,97,0,0,0,103,0,116,0,106,0,117,0,0,0,103,0,116,0,122,0,97,0,0,0,104,0,117,0,115,0,115,0,0,0,105,0,100,0,115,0,98,0,0,0,105,0,100,0,115,0,108,0,0,0,105,0,101,0,99,0,110,0,0,0,105,0,101,0,99,0,111,0,0,0,105,0,116,0,109,0,98,0,0,0,105,0,116,0,112,0,99,0,0,0,105,0,116,0,118,0,97,0,0,0,109,0,100,0,99,0,114,0,0,0,109,0,117,0,98,0,114,0,0,0,109,0,119,0,107,0,114,0,0,0,111,0,109,0,115,0,104,0,0,0,112,0,108,0,108,0,117,0,0,0,112,0,108,0,109,0,122,0,0,0,115,0,121,0,104,0,108,0,0,0,117,0,115,0,109,0,100,0,0,0,117,0,115,0,110,0,99,0,0,0,77,0,117,0,108,0,116,0,0,0,99,0,122,0,108,0,105,0,0,0,99,0,122,0,109,0,111,0,0,0,99,0,122,0,112,0,108,0,0,0,100,0,122,0,51,0,50,0,0,0,100,0,122,0,51,0,54,0,0,0,100,0,122,0,52,0,50,0,0,0,100,0,122,0,52,0,52,0,0,0,100,0,122,0,52,0,56,0,0,0,102,0,114,0,56,0,52,0,0,0,102,0,114,0,57,0,48,0,0,0,103,0,119,0,98,0,109,0,0,0,109,0,116,0,54,0,48,0,0,0,109,0,116,0,54,0,56,0,0,0,109,0,119,0,107,0,115,0,0,0,109,0,119,0,109,0,104,0,0,0,116,0,104,0,57,0,54,0,0,0,116,0,122,0,49,0,50,0,0,0,117,0,121,0,114,0,111,0,0,0,68,0,74,0,126,0,75,0,0,0,49,0,57,0,48,0,49,0,0,0,65,0,67,0,126,0,71,0,0,0,65,0,76,0,126,0,77,0,0,0,65,0,81,0,126,0,85,0,0,0,65,0,87,0,126,0,88,0,0,0,65,0,104,0,111,0,109,0,0,0,65,0,114,0,97,0,110,0,0,0,66,0,65,0,126,0,66,0,0,0,66,0,68,0,126,0,74,0,0,0,66,0,76,0,126,0,79,0,0,0,66,0,81,0,126,0,84,0,0,0,66,0,86,0,126,0,87,0,0,0,66,0,89,0,126,0,90,0,0,0,66,0,97,0,115,0,115,0,0,0,67,0,67,0,126,0,68,0,0,0,67,0,70,0,126,0,73,0,0,0,67,0,75,0,126,0,80,0,0,0,67,0,85,0,126,0,90,0,0,0,67,0,104,0,114,0,115,0,0,0,67,0,112,0,109,0,110,0,0,0,68,0,105,0,97,0,107,0,0,0,68,0,111,0,103,0,114,0,0,0,69,0,82,0,126,0,84,0,0,0,69,0,108,0,121,0,109,0,0,0,70,0,73,0,126,0,75,0,0,0,71,0,65,0,126,0,66,0,0,0,71,0,68,0,126,0,73,0,0,0,71,0,76,0,126,0,78,0,0,0,71,0,80,0,126,0,85,0,0,0,71,0,111,0,110,0,103,0,0,0,71,0,111,0,110,0,109,0,0,0,72,0,77,0,126,0,78,0,0,0,72,0,84,0,126,0,85,0,0,0,72,0,97,0,110,0,98,0,0,0,72,0,97,0,116,0,114,0,0,0,72,0,108,0,117,0,119,0,0,0,73,0,67,0,126,0,69,0,0,0,73,0,76,0,126,0,79,0,0,0,73,0,81,0,126,0,84,0,0,0,74,0,79,0,126,0,80,0,0,0,75,0,71,0,126,0,73,0,0,0,75,0,77,0,126,0,78,0,0,0,75,0,89,0,126,0,90,0,0,0,75,0,97,0,119,0,105,0,0,0,75,0,104,0,97,0,114,0,0,0,75,0,105,0,116,0,115,0,0,0,75,0,116,0,104,0,105,0,0,0,76,0,65,0,126,0,67,0,0,0,76,0,82,0,126,0,86,0,0,0,76,0,105,0,110,0,97,0,0,0,76,0,105,0,110,0,98,0,0,0,77,0,67,0,126,0,72,0,0,0,77,0,75,0,126,0,90,0,0,0,77,0,97,0,107,0,97,0,0,0,77,0,101,0,100,0,102,0,0,0,78,0,69,0,126,0,71,0,0,0,78,0,79,0,126,0,80,0,0,0,78,0,97,0,103,0,109,0,0,0,78,0,97,0,110,0,100,0,0,0,78,0,101,0,119,0,97,0,0,0,78,0,115,0,104,0,117,0,0,0,79,0,117,0,103,0,114,0,0,0,80,0,69,0,126,0,72,0,0,0,80,0,75,0,126,0,78,0,0,0,80,0,82,0,126,0,84,0,0,0,80,0,97,0,117,0,99,0,0,0,81,0,77,0,126,0,78,0,0,0,81,0,80,0,126,0,84,0,0,0,81,0,86,0,126,0,90,0,0,0,81,0,97,0,97,0,103,0,0,0,81,0,97,0,97,0,104,0,0,0,81,0,97,0,97,0,105,0,0,0,83,0,65,0,126,0,69,0,0,0,83,0,71,0,126,0,79,0,0,0,83,0,82,0,126,0,84,0,0,0,83,0,88,0,126,0,90,0,0,0,83,0,111,0,103,0,100,0,0,0,84,0,67,0,126,0,68,0,0,0,84,0,70,0,126,0,72,0,0,0,84,0,74,0,126,0,79,0,0,0,84,0,86,0,126,0,87,0,0,0,84,0,97,0,110,0,103,0,0,0,84,0,110,0,115,0,97,0,0,0,84,0,111,0,116,0,111,0,0,0,85,0,89,0,126,0,90,0,0,0,86,0,105,0,116,0,104,0,0,0,87,0,99,0,104,0,111,0,0,0,88,0,65,0,126,0,66,0,0,0,88,0,67,0,126,0,74,0,0,0,88,0,76,0,126,0,90,0,0,0,89,0,101,0,122,0,105,0,0,0,90,0,97,0,110,0,98,0,0,0,90,0,105,0,110,0,104,0,0,0,90,0,109,0,116,0,104,0,0,0,90,0,115,0,121,0,101,0,0,0,90,0,115,0,121,0,109,0,0,0,90,0,120,0,120,0,120,0,0,0,90,0,121,0,121,0,121,0,0,0,90,0,122,0,122,0,122,0,0,0,97,0,100,0,48,0,50,0,0,0,97,0,100,0,48,0,51,0,0,0,97,0,100,0,48,0,52,0,0,0,97,0,100,0,48,0,53,0,0,0,97,0,100,0,48,0,54,0,0,0,97,0,100,0,48,0,55,0,0,0,97,0,100,0,48,0,56,0,0,0,97,0,103,0,48,0,51,0,0,0,97,0,103,0,48,0,52,0,0,0,97,0,103,0,48,0,53,0,0,0,97,0,103,0,48,0,54,0,0,0,97,0,103,0,48,0,55,0,0,0,97,0,103,0,48,0,56,0,0,0,97,0,103,0,49,0,48,0,0,0,97,0,103,0,49,0,49,0,0,0,97,0,108,0,48,0,49,0,0,0,97,0,108,0,48,0,50,0,0,0,97,0,108,0,48,0,51,0,0,0,97,0,108,0,48,0,52,0,0,0,97,0,108,0,48,0,53,0,0,0,97,0,108,0,48,0,54,0,0,0,97,0,108,0,48,0,55,0,0,0,97,0,108,0,48,0,56,0,0,0,97,0,108,0,48,0,57,0,0,0,97,0,108,0,49,0,48,0,0,0,97,0,108,0,49,0,49,0,0,0,97,0,108,0,49,0,50,0,0,0,97,0,108,0,98,0,114,0,0,0,97,0,108,0,98,0,117,0,0,0,97,0,108,0,100,0,105,0,0,0,97,0,108,0,100,0,108,0,0,0,97,0,108,0,100,0,114,0,0,0,97,0,108,0,100,0,118,0,0,0,97,0,108,0,101,0,108,0,0,0,97,0,108,0,101,0,114,0,0,0,97,0,108,0,102,0,114,0,0,0,97,0,108,0,103,0,106,0,0,0,97,0,108,0,103,0,114,0,0,0,97,0,108,0,104,0,97,0,0,0,97,0,108,0,107,0,111,0,0,0,97,0,108,0,107,0,114,0,0,0,97,0,108,0,107,0,117,0,0,0,97,0,108,0,108,0,98,0,0,0,97,0,108,0,108,0,101,0,0,0,97,0,108,0,108,0,117,0,0,0,97,0,108,0,109,0,107,0,0,0,97,0,108,0,109,0,114,0,0,0,97,0,108,0,109,0,116,0,0,0,97,0,108,0,112,0,103,0,0,0,97,0,108,0,112,0,117,0,0,0,97,0,108,0,115,0,114,0,0,0,97,0,108,0,116,0,101,0,0,0,97,0,108,0,116,0,112,0,0,0,97,0,108,0,116,0,114,0,0,0,97,0,108,0,118,0,108,0,0,0,98,0,97,0,49,0,48,0,0,0,98,0,98,0,48,0,49,0,0,0,98,0,98,0,48,0,50,0,0,0,98,0,98,0,48,0,51,0,0,0,98,0,98,0,48,0,52,0,0,0,98,0,98,0,48,0,53,0,0,0,98,0,98,0,48,0,54,0,0,0,98,0,98,0,48,0,55,0,0,0,98,0,98,0,48,0,56,0,0,0,98,0,98,0,48,0,57,0,0,0,98,0,98,0,49,0,48,0,0,0,98,0,98,0,49,0,49,0,0,0,98,0,100,0,48,0,49,0,0,0,98,0,100,0,48,0,50,0,0,0,98,0,100,0,48,0,51,0,0,0,98,0,100,0,48,0,52,0,0,0,98,0,100,0,48,0,53,0,0,0,98,0,100,0,48,0,54,0,0,0,98,0,100,0,48,0,55,0,0,0,98,0,100,0,48,0,56,0,0,0,98,0,100,0,48,0,57,0,0,0,98,0,100,0,49,0,48,0,0,0,98,0,100,0,49,0,49,0,0,0,98,0,100,0,49,0,50,0,0,0,98,0,100,0,49,0,51,0,0,0,98,0,100,0,49,0,52,0,0,0,98,0,100,0,49,0,53,0,0,0,98,0,100,0,49,0,54,0,0,0,98,0,100,0,49,0,55,0,0,0,98,0,100,0,49,0,56,0,0,0,98,0,100,0,49,0,57,0,0,0,98,0,100,0,50,0,48,0,0,0,98,0,100,0,50,0,49,0,0,0,98,0,100,0,50,0,50,0,0,0,98,0,100,0,50,0,51,0,0,0,98,0,100,0,50,0,52,0,0,0,98,0,100,0,50,0,53,0,0,0,98,0,100,0,50,0,54,0,0,0,98,0,100,0,50,0,55,0,0,0,98,0,100,0,50,0,56,0,0,0,98,0,100,0,50,0,57,0,0,0,98,0,100,0,51,0,48,0,0,0,98,0,100,0,51,0,49,0,0,0,98,0,100,0,51,0,50,0,0,0,98,0,100,0,51,0,51,0,0,0,98,0,100,0,51,0,52,0,0,0,98,0,100,0,51,0,53,0,0,0,98,0,100,0,51,0,54,0,0,0,98,0,100,0,51,0,55,0,0,0,98,0,100,0,51,0,56,0,0,0,98,0,100,0,51,0,57,0,0,0,98,0,100,0,52,0,48,0,0,0,98,0,100,0,52,0,49,0,0,0,98,0,100,0,52,0,50,0,0,0,98,0,100,0,52,0,51,0,0,0,98,0,100,0,52,0,52,0,0,0,98,0,100,0,52,0,53,0,0,0,98,0,100,0,52,0,54,0,0,0,98,0,100,0,52,0,55,0,0,0,98,0,100,0,52,0,56,0,0,0,98,0,100,0,52,0,57,0,0,0,98,0,100,0,53,0,48,0,0,0,98,0,100,0,53,0,49,0,0,0,98,0,100,0,53,0,50,0,0,0,98,0,100,0,53,0,51,0,0,0,98,0,100,0,53,0,52,0,0,0,98,0,100,0,53,0,53,0,0,0,98,0,100,0,53,0,54,0,0,0,98,0,100,0,53,0,55,0,0,0,98,0,100,0,53,0,56,0,0,0,98,0,100,0,53,0,57,0,0,0,98,0,100,0,54,0,48,0,0,0,98,0,100,0,54,0,49,0,0,0,98,0,100,0,54,0,50,0,0,0,98,0,100,0,54,0,51,0,0,0,98,0,100,0,54,0,52,0,0,0,98,0,102,0,48,0,49,0,0,0,98,0,102,0,48,0,50,0,0,0,98,0,102,0,48,0,51,0,0,0,98,0,102,0,48,0,52,0,0,0,98,0,102,0,48,0,53,0,0,0,98,0,102,0,48,0,54,0,0,0,98,0,102,0,48,0,55,0,0,0,98,0,102,0,48,0,56,0,0,0,98,0,102,0,48,0,57,0,0,0,98,0,102,0,49,0,48,0,0,0,98,0,102,0,49,0,49,0,0,0,98,0,102,0,49,0,50,0,0,0,98,0,102,0,49,0,51,0,0,0,98,0,103,0,48,0,49,0,0,0,98,0,103,0,48,0,50,0,0,0,98,0,103,0,48,0,51,0,0,0,98,0,103,0,48,0,52,0,0,0,98,0,103,0,48,0,53,0,0,0,98,0,103,0,48,0,54,0,0,0,98,0,103,0,48,0,55,0,0,0,98,0,103,0,48,0,56,0,0,0,98,0,103,0,48,0,57,0,0,0,98,0,103,0,49,0,48,0,0,0,98,0,103,0,49,0,49,0,0,0,98,0,103,0,49,0,50,0,0,0,98,0,103,0,49,0,51,0,0,0,98,0,103,0,49,0,52,0,0,0,98,0,103,0,49,0,53,0,0,0,98,0,103,0,49,0,54,0,0,0,98,0,103,0,49,0,55,0,0,0,98,0,103,0,49,0,56,0,0,0,98,0,103,0,49,0,57,0,0,0,98,0,103,0,50,0,48,0,0,0,98,0,103,0,50,0,49,0,0,0,98,0,103,0,50,0,50,0,0,0,98,0,103,0,50,0,51,0,0,0,98,0,103,0,50,0,52,0,0,0,98,0,103,0,50,0,53,0,0,0,98,0,103,0,50,0,54,0,0,0,98,0,103,0,50,0,55,0,0,0,98,0,103,0,50,0,56,0,0,0,98,0,104,0,49,0,51,0,0,0,98,0,104,0,49,0,52,0,0,0,98,0,104,0,49,0,53,0,0,0,98,0,104,0,49,0,54,0,0,0,98,0,105,0,98,0,108,0,0,0,98,0,105,0,98,0,109,0,0,0,98,0,106,0,97,0,108,0,0,0,98,0,114,0,97,0,108,0,0,0,98,0,114,0,97,0,109,0,0,0,98,0,114,0,109,0,115,0,0,0,98,0,114,0,109,0,116,0,0,0,98,0,114,0,112,0,97,0,0,0,98,0,114,0,112,0,98,0,0,0,98,0,114,0,114,0,110,0,0,0,98,0,114,0,114,0,114,0,0,0,98,0,114,0,114,0,115,0,0,0,98,0,115,0,110,0,111,0,0,0,98,0,115,0,110,0,112,0,0,0,98,0,116,0,49,0,49,0,0,0,98,0,116,0,49,0,50,0,0,0,98,0,116,0,49,0,51,0,0,0,98,0,116,0,49,0,52,0,0,0,98,0,116,0,49,0,53,0,0,0,98,0,116,0,50,0,49,0,0,0,98,0,116,0,50,0,50,0,0,0,98,0,116,0,50,0,51,0,0,0,98,0,116,0,50,0,52,0,0,0,98,0,116,0,51,0,49,0,0,0,98,0,116,0,51,0,50,0,0,0,98,0,116,0,51,0,51,0,0,0,98,0,116,0,51,0,52,0,0,0,98,0,116,0,52,0,49,0,0,0,98,0,116,0,52,0,50,0,0,0,98,0,116,0,52,0,51,0,0,0,98,0,116,0,52,0,52,0,0,0,98,0,116,0,52,0,53,0,0,0,98,0,119,0,115,0,111,0,0,0,98,0,119,0,115,0,112,0,0,0,99,0,97,0,110,0,115,0,0,0,99,0,97,0,110,0,116,0,0,0,99,0,97,0,110,0,117,0,0,0,99,0,100,0,98,0,110,0,0,0,99,0,100,0,104,0,107,0,0,0,99,0,100,0,104,0,108,0,0,0,99,0,100,0,107,0,97,0,0,0,99,0,100,0,107,0,119,0,0,0,99,0,100,0,109,0,110,0,0,0,99,0,100,0,109,0,111,0,0,0,99,0,100,0,111,0,114,0,0,0,99,0,103,0,49,0,49,0,0,0,99,0,103,0,49,0,50,0,0,0,99,0,103,0,49,0,51,0,0,0,99,0,103,0,49,0,52,0,0,0,99,0,103,0,49,0,53,0,0,0,99,0,103,0,49,0,54,0,0,0,99,0,104,0,115,0,103,0,0,0,99,0,104,0,122,0,103,0,0,0,99,0,104,0,122,0,104,0,0,0,99,0,110,0,55,0,49,0,0,0,99,0,110,0,104,0,97,0,0,0,99,0,110,0,104,0,98,0,0,0,99,0,110,0,104,0,108,0,0,0,99,0,110,0,115,0,99,0,0,0,99,0,110,0,115,0,100,0,0,0,99,0,117,0,48,0,51,0,0,0,99,0,117,0,48,0,52,0,0,0,99,0,117,0,48,0,53,0,0,0,99,0,117,0,48,0,54,0,0,0,99,0,117,0,48,0,55,0,0,0,99,0,117,0,48,0,56,0,0,0,99,0,117,0,48,0,57,0,0,0,99,0,117,0,49,0,48,0,0,0,99,0,117,0,49,0,49,0,0,0,99,0,117,0,49,0,50,0,0,0,99,0,117,0,49,0,51,0,0,0,99,0,117,0,49,0,52,0,0,0,99,0,117,0,49,0,53,0,0,0,99,0,117,0,49,0,54,0,0,0,99,0,118,0,115,0,109,0,0,0,99,0,121,0,48,0,49,0,0,0,99,0,121,0,48,0,50,0,0,0,99,0,121,0,48,0,51,0,0,0,99,0,121,0,48,0,52,0,0,0,99,0,121,0,48,0,53,0,0,0,99,0,121,0,48,0,54,0,0,0,99,0,122,0,106,0,99,0,0,0,99,0,122,0,106,0,109,0,0,0,99,0,122,0,111,0,108,0,0,0,99,0,122,0,112,0,114,0,0,0,99,0,122,0,117,0,115,0,0,0,99,0,122,0,118,0,121,0,0,0,99,0,122,0,122,0,108,0,0,0,100,0,106,0,97,0,115,0,0,0,100,0,106,0,100,0,105,0,0,0,100,0,106,0,100,0,106,0,0,0,100,0,107,0,56,0,49,0,0,0,100,0,107,0,56,0,50,0,0,0,100,0,107,0,56,0,51,0,0,0,100,0,107,0,56,0,52,0,0,0,100,0,107,0,56,0,53,0,0,0,100,0,109,0,48,0,50,0,0,0,100,0,109,0,48,0,51,0,0,0,100,0,109,0,48,0,52,0,0,0,100,0,109,0,48,0,53,0,0,0,100,0,109,0,48,0,54,0,0,0,100,0,109,0,48,0,55,0,0,0,100,0,109,0,48,0,56,0,0,0,100,0,109,0,48,0,57,0,0,0,100,0,109,0,49,0,48,0,0,0,100,0,109,0,49,0,49,0,0,0,100,0,111,0,48,0,49,0,0,0,100,0,111,0,48,0,50,0,0,0,100,0,111,0,48,0,51,0,0,0,100,0,111,0,48,0,52,0,0,0,100,0,111,0,48,0,53,0,0,0,100,0,111,0,48,0,54,0,0,0,100,0,111,0,48,0,55,0,0,0,100,0,111,0,48,0,56,0,0,0,100,0,111,0,48,0,57,0,0,0,100,0,111,0,49,0,48,0,0,0,100,0,111,0,49,0,49,0,0,0,100,0,111,0,49,0,50,0,0,0,100,0,111,0,49,0,51,0,0,0,100,0,111,0,49,0,52,0,0,0,100,0,111,0,49,0,53,0,0,0,100,0,111,0,49,0,54,0,0,0,100,0,111,0,49,0,55,0,0,0,100,0,111,0,49,0,56,0,0,0,100,0,111,0,49,0,57,0,0,0,100,0,111,0,50,0,48,0,0,0,100,0,111,0,50,0,49,0,0,0,100,0,111,0,50,0,50,0,0,0,100,0,111,0,50,0,51,0,0,0,100,0,111,0,50,0,52,0,0,0,100,0,111,0,50,0,53,0,0,0,100,0,111,0,50,0,54,0,0,0,100,0,111,0,50,0,55,0,0,0,100,0,111,0,50,0,56,0,0,0,100,0,111,0,50,0,57,0,0,0,100,0,111,0,51,0,48,0,0,0,100,0,111,0,51,0,49,0,0,0,100,0,111,0,51,0,50,0,0,0,100,0,111,0,51,0,51,0,0,0,100,0,111,0,51,0,52,0,0,0,100,0,111,0,51,0,53,0,0,0,100,0,111,0,51,0,54,0,0,0,100,0,111,0,51,0,55,0,0,0,100,0,111,0,51,0,56,0,0,0,100,0,111,0,51,0,57,0,0,0,100,0,111,0,52,0,48,0,0,0,100,0,111,0,52,0,49,0,0,0,100,0,111,0,52,0,50,0,0,0,100,0,122,0,48,0,49,0,0,0,100,0,122,0,48,0,50,0,0,0,100,0,122,0,48,0,51,0,0,0,100,0,122,0,48,0,52,0,0,0,100,0,122,0,48,0,53,0,0,0,100,0,122,0,48,0,54,0,0,0,100,0,122,0,48,0,55,0,0,0,100,0,122,0,48,0,56,0,0,0,100,0,122,0,48,0,57,0,0,0,100,0,122,0,49,0,48,0,0,0,100,0,122,0,49,0,49,0,0,0,100,0,122,0,49,0,50,0,0,0,100,0,122,0,49,0,51,0,0,0,100,0,122,0,49,0,52,0,0,0,100,0,122,0,49,0,53,0,0,0,100,0,122,0,49,0,54,0,0,0,100,0,122,0,49,0,55,0,0,0,100,0,122,0,49,0,56,0,0,0,100,0,122,0,49,0,57,0,0,0,100,0,122,0,50,0,48,0,0,0,100,0,122,0,50,0,49,0,0,0,100,0,122,0,50,0,50,0,0,0,100,0,122,0,50,0,51,0,0,0,100,0,122,0,50,0,52,0,0,0,100,0,122,0,50,0,53,0,0,0,100,0,122,0,50,0,54,0,0,0,100,0,122,0,50,0,55,0,0,0,100,0,122,0,50,0,56,0,0,0,100,0,122,0,50,0,57,0,0,0,100,0,122,0,51,0,48,0,0,0,100,0,122,0,51,0,49,0,0,0,100,0,122,0,51,0,51,0,0,0,100,0,122,0,51,0,52,0,0,0,100,0,122,0,51,0,53,0,0,0,100,0,122,0,51,0,55,0,0,0,100,0,122,0,51,0,56,0,0,0,100,0,122,0,51,0,57,0,0,0,100,0,122,0,52,0,48,0,0,0,100,0,122,0,52,0,49,0,0,0,100,0,122,0,52,0,51,0,0,0,100,0,122,0,52,0,53,0,0,0,100,0,122,0,52,0,54,0,0,0,100,0,122,0,52,0,55,0,0,0,101,0,99,0,115,0,100,0,0,0,101,0,99,0,115,0,101,0,0,0,101,0,101,0,52,0,52,0,0,0,101,0,101,0,52,0,57,0,0,0,101,0,101,0,53,0,49,0,0,0,101,0,101,0,53,0,55,0,0,0,101,0,101,0,53,0,57,0,0,0,101,0,101,0,54,0,53,0,0,0,101,0,101,0,54,0,55,0,0,0,101,0,101,0,55,0,48,0,0,0,101,0,101,0,55,0,56,0,0,0,101,0,101,0,56,0,50,0,0,0,101,0,101,0,56,0,54,0,0,0,101,0,115,0,97,0,114,0,0,0,101,0,115,0,97,0,115,0,0,0,101,0,115,0,99,0,97,0,0,0,101,0,115,0,99,0,99,0,0,0,101,0,115,0,99,0,108,0,0,0,101,0,115,0,99,0,109,0,0,0,101,0,115,0,99,0,110,0,0,0,101,0,115,0,99,0,111,0,0,0,101,0,115,0,99,0,114,0,0,0,101,0,115,0,99,0,115,0,0,0,101,0,115,0,99,0,116,0,0,0,101,0,115,0,99,0,117,0,0,0,101,0,115,0,109,0,99,0,0,0,101,0,115,0,109,0,100,0,0,0,101,0,115,0,116,0,101,0,0,0,101,0,115,0,116,0,102,0,0,0,101,0,116,0,115,0,110,0,0,0,101,0,116,0,115,0,111,0,0,0,102,0,105,0,48,0,50,0,0,0,102,0,105,0,48,0,51,0,0,0,102,0,105,0,48,0,52,0,0,0,102,0,105,0,48,0,53,0,0,0,102,0,105,0,48,0,54,0,0,0,102,0,105,0,48,0,55,0,0,0,102,0,105,0,48,0,56,0,0,0,102,0,105,0,48,0,57,0,0,0,102,0,105,0,49,0,48,0,0,0,102,0,105,0,49,0,49,0,0,0,102,0,105,0,49,0,50,0,0,0,102,0,105,0,49,0,51,0,0,0,102,0,105,0,49,0,52,0,0,0,102,0,105,0,49,0,53,0,0,0,102,0,105,0,49,0,54,0,0,0,102,0,105,0,49,0,55,0,0,0,102,0,105,0,49,0,56,0,0,0,102,0,105,0,49,0,57,0,0,0,102,0,106,0,48,0,49,0,0,0,102,0,106,0,48,0,50,0,0,0,102,0,106,0,48,0,51,0,0,0,102,0,106,0,48,0,52,0,0,0,102,0,106,0,48,0,53,0,0,0,102,0,106,0,48,0,54,0,0,0,102,0,106,0,48,0,55,0,0,0,102,0,106,0,48,0,56,0,0,0,102,0,106,0,48,0,57,0,0,0,102,0,106,0,49,0,48,0,0,0,102,0,106,0,49,0,49,0,0,0,102,0,106,0,49,0,50,0,0,0,102,0,106,0,49,0,51,0,0,0,102,0,106,0,49,0,52,0,0,0,102,0,114,0,48,0,49,0,0,0,102,0,114,0,48,0,50,0,0,0,102,0,114,0,48,0,51,0,0,0,102,0,114,0,48,0,52,0,0,0,102,0,114,0,48,0,53,0,0,0,102,0,114,0,48,0,54,0,0,0,102,0,114,0,48,0,55,0,0,0,102,0,114,0,48,0,56,0,0,0,102,0,114,0,48,0,57,0,0,0,102,0,114,0,49,0,48,0,0,0,102,0,114,0,49,0,49,0,0,0,102,0,114,0,49,0,50,0,0,0,102,0,114,0,49,0,51,0,0,0,102,0,114,0,49,0,52,0,0,0,102,0,114,0,49,0,53,0,0,0,102,0,114,0,49,0,54,0,0,0,102,0,114,0,49,0,55,0,0,0,102,0,114,0,49,0,56,0,0,0,102,0,114,0,49,0,57,0,0,0,102,0,114,0,50,0,49,0,0,0,102,0,114,0,50,0,50,0,0,0,102,0,114,0,50,0,51,0,0,0,102,0,114,0,50,0,52,0,0,0,102,0,114,0,50,0,53,0,0,0,102,0,114,0,50,0,54,0,0,0,102,0,114,0,50,0,55,0,0,0,102,0,114,0,50,0,56,0,0,0,102,0,114,0,50,0,57,0,0,0,102,0,114,0,50,0,97,0,0,0,102,0,114,0,50,0,98,0,0,0,102,0,114,0,51,0,48,0,0,0,102,0,114,0,51,0,49,0,0,0,102,0,114,0,51,0,50,0,0,0,102,0,114,0,51,0,51,0,0,0,102,0,114,0,51,0,52,0,0,0,102,0,114,0,51,0,53,0,0,0,102,0,114,0,51,0,54,0,0,0,102,0,114,0,51,0,55,0,0,0,102,0,114,0,51,0,56,0,0,0,102,0,114,0,51,0,57,0,0,0,102,0,114,0,52,0,48,0,0,0,102,0,114,0,52,0,49,0,0,0,102,0,114,0,52,0,50,0,0,0,102,0,114,0,52,0,51,0,0,0,102,0,114,0,52,0,52,0,0,0,102,0,114,0,52,0,53,0,0,0,102,0,114,0,52,0,54,0,0,0,102,0,114,0,52,0,55,0,0,0,102,0,114,0,52,0,56,0,0,0,102,0,114,0,52,0,57,0,0,0,102,0,114,0,53,0,48,0,0,0,102,0,114,0,53,0,49,0,0,0,102,0,114,0,53,0,50,0,0,0,102,0,114,0,53,0,51,0,0,0,102,0,114,0,53,0,52,0,0,0,102,0,114,0,53,0,53,0,0,0,102,0,114,0,53,0,54,0,0,0,102,0,114,0,53,0,55,0,0,0,102,0,114,0,53,0,56,0,0,0,102,0,114,0,53,0,57,0,0,0,102,0,114,0,54,0,48,0,0,0,102,0,114,0,54,0,49,0,0,0,102,0,114,0,54,0,50,0,0,0,102,0,114,0,54,0,51,0,0,0,102,0,114,0,54,0,52,0,0,0,102,0,114,0,54,0,53,0,0,0,102,0,114,0,54,0,54,0,0,0,102,0,114,0,54,0,55,0,0,0,102,0,114,0,54,0,56,0,0,0,102,0,114,0,54,0,57,0,0,0,102,0,114,0,55,0,48,0,0,0,102,0,114,0,55,0,49,0,0,0,102,0,114,0,55,0,50,0,0,0,102,0,114,0,55,0,51,0,0,0,102,0,114,0,55,0,52,0,0,0,102,0,114,0,55,0,53,0,0,0,102,0,114,0,55,0,54,0,0,0,102,0,114,0,55,0,55,0,0,0,102,0,114,0,55,0,56,0,0,0,102,0,114,0,55,0,57,0,0,0,102,0,114,0,56,0,48,0,0,0,102,0,114,0,56,0,49,0,0,0,102,0,114,0,56,0,50,0,0,0,102,0,114,0,56,0,51,0,0,0,102,0,114,0,56,0,53,0,0,0,102,0,114,0,56,0,54,0,0,0,102,0,114,0,56,0,55,0,0,0,102,0,114,0,56,0,56,0,0,0,102,0,114,0,56,0,57,0,0,0,102,0,114,0,57,0,49,0,0,0,102,0,114,0,57,0,50,0,0,0,102,0,114,0,57,0,51,0,0,0,102,0,114,0,57,0,52,0,0,0,102,0,114,0,57,0,53,0,0,0,102,0,114,0,103,0,102,0,0,0,102,0,114,0,103,0,112,0,0,0,102,0,114,0,109,0,113,0,0,0,102,0,114,0,114,0,101,0,0,0,102,0,114,0,121,0,116,0,0,0,103,0,100,0,48,0,49,0,0,0,103,0,100,0,48,0,50,0,0,0,103,0,100,0,48,0,51,0,0,0,103,0,100,0,48,0,52,0,0,0,103,0,100,0,48,0,53,0,0,0,103,0,100,0,48,0,54,0,0,0,103,0,104,0,98,0,97,0,0,0,103,0,108,0,113,0,97,0,0,0,103,0,110,0,98,0,101,0,0,0,103,0,110,0,107,0,97,0,0,0,103,0,110,0,107,0,98,0,0,0,103,0,110,0,107,0,100,0,0,0,103,0,110,0,107,0,101,0,0,0,103,0,110,0,107,0,110,0,0,0,103,0,110,0,107,0,111,0,0,0,103,0,110,0,109,0,99,0,0,0,103,0,110,0,109,0,100,0,0,0,103,0,110,0,109,0,108,0,0,0,103,0,110,0,109,0,109,0,0,0,103,0,114,0,48,0,49,0,0,0,103,0,114,0,97,0,49,0,0,0,103,0,116,0,48,0,49,0,0,0,103,0,116,0,48,0,50,0,0,0,103,0,116,0,48,0,51,0,0,0,103,0,116,0,48,0,52,0,0,0,103,0,116,0,48,0,53,0,0,0,103,0,116,0,48,0,54,0,0,0,103,0,116,0,48,0,55,0,0,0,103,0,116,0,48,0,56,0,0,0,103,0,116,0,48,0,57,0,0,0,103,0,116,0,49,0,48,0,0,0,103,0,116,0,49,0,49,0,0,0,103,0,116,0,49,0,50,0,0,0,103,0,116,0,49,0,51,0,0,0,103,0,116,0,49,0,52,0,0,0,103,0,116,0,49,0,53,0,0,0,103,0,116,0,49,0,54,0,0,0,103,0,116,0,49,0,55,0,0,0,103,0,116,0,49,0,56,0,0,0,103,0,116,0,49,0,57,0,0,0,103,0,116,0,50,0,48,0,0,0,103,0,116,0,50,0,49,0,0,0,103,0,116,0,50,0,50,0,0,0,103,0,116,0,97,0,118,0,0,0,103,0,116,0,98,0,118,0,0,0,103,0,116,0,99,0,109,0,0,0,103,0,116,0,99,0,113,0,0,0,103,0,116,0,101,0,115,0,0,0,103,0,116,0,103,0,117,0,0,0,103,0,116,0,104,0,117,0,0,0,103,0,116,0,105,0,122,0,0,0,103,0,116,0,112,0,101,0,0,0,103,0,116,0,112,0,114,0,0,0,103,0,116,0,113,0,99,0,0,0,103,0,116,0,113,0,122,0,0,0,103,0,116,0,114,0,101,0,0,0,103,0,116,0,115,0,97,0,0,0,103,0,116,0,115,0,109,0,0,0,103,0,116,0,115,0,111,0,0,0,103,0,116,0,115,0,114,0,0,0,103,0,116,0,115,0,117,0,0,0,103,0,116,0,116,0,111,0,0,0,103,0,119,0,98,0,108,0,0,0,104,0,110,0,99,0,108,0,0,0,104,0,110,0,99,0,109,0,0,0,104,0,114,0,48,0,49,0,0,0,104,0,114,0,48,0,50,0,0,0,104,0,114,0,48,0,51,0,0,0,104,0,114,0,48,0,52,0,0,0,104,0,114,0,48,0,53,0,0,0,104,0,114,0,48,0,54,0,0,0,104,0,114,0,48,0,55,0,0,0,104,0,114,0,48,0,56,0,0,0,104,0,114,0,48,0,57,0,0,0,104,0,114,0,49,0,48,0,0,0,104,0,114,0,49,0,49,0,0,0,104,0,114,0,49,0,50,0,0,0,104,0,114,0,49,0,51,0,0,0,104,0,114,0,49,0,52,0,0,0,104,0,114,0,49,0,53,0,0,0,104,0,114,0,49,0,54,0,0,0,104,0,114,0,49,0,55,0,0,0,104,0,114,0,49,0,56,0,0,0,104,0,114,0,49,0,57,0,0,0,104,0,114,0,50,0,48,0,0,0,104,0,114,0,50,0,49,0,0,0,104,0,116,0,110,0,100,0,0,0,104,0,116,0,110,0,101,0,0,0,104,0,116,0,115,0,100,0,0,0,104,0,116,0,115,0,101,0,0,0,104,0,117,0,115,0,111,0,0,0,104,0,117,0,115,0,116,0,0,0,105,0,100,0,98,0,97,0,0,0,105,0,100,0,98,0,98,0,0,0,105,0,100,0,106,0,97,0,0,0,105,0,100,0,106,0,98,0,0,0,105,0,100,0,107,0,97,0,0,0,105,0,100,0,107,0,98,0,0,0,105,0,100,0,107,0,114,0,0,0,105,0,100,0,107,0,115,0,0,0,105,0,100,0,107,0,116,0,0,0,105,0,100,0,107,0,117,0,0,0,105,0,100,0,110,0,116,0,0,0,105,0,100,0,110,0,117,0,0,0,105,0,100,0,112,0,97,0,0,0,105,0,100,0,112,0,98,0,0,0,105,0,100,0,115,0,97,0,0,0,105,0,100,0,115,0,109,0,0,0,105,0,100,0,115,0,110,0,0,0,105,0,100,0,115,0,114,0,0,0,105,0,100,0,115,0,115,0,0,0,105,0,100,0,115,0,116,0,0,0,105,0,100,0,115,0,117,0,0,0,105,0,101,0,109,0,110,0,0,0,105,0,101,0,109,0,111,0,0,0,105,0,101,0,119,0,119,0,0,0,105,0,101,0,119,0,120,0,0,0,105,0,110,0,97,0,114,0,0,0,105,0,110,0,97,0,115,0,0,0,105,0,110,0,100,0,100,0,0,0,105,0,110,0,100,0,110,0,0,0,105,0,113,0,98,0,97,0,0,0,105,0,113,0,98,0,98,0,0,0,105,0,114,0,48,0,48,0,0,0,105,0,114,0,48,0,49,0,0,0,105,0,114,0,48,0,50,0,0,0,105,0,114,0,48,0,51,0,0,0,105,0,114,0,48,0,52,0,0,0,105,0,114,0,48,0,53,0,0,0,105,0,114,0,48,0,54,0,0,0,105,0,114,0,48,0,55,0,0,0,105,0,114,0,48,0,56,0,0,0,105,0,114,0,48,0,57,0,0,0,105,0,114,0,49,0,48,0,0,0,105,0,114,0,49,0,49,0,0,0,105,0,114,0,49,0,50,0,0,0,105,0,114,0,49,0,51,0,0,0,105,0,114,0,49,0,52,0,0,0,105,0,114,0,49,0,53,0,0,0,105,0,114,0,49,0,54,0,0,0,105,0,114,0,49,0,55,0,0,0,105,0,114,0,49,0,56,0,0,0,105,0,114,0,49,0,57,0,0,0,105,0,114,0,50,0,48,0,0,0,105,0,114,0,50,0,49,0,0,0,105,0,114,0,50,0,50,0,0,0,105,0,114,0,50,0,51,0,0,0,105,0,114,0,50,0,52,0,0,0,105,0,114,0,50,0,53,0,0,0,105,0,114,0,50,0,54,0,0,0,105,0,114,0,50,0,55,0,0,0,105,0,114,0,50,0,56,0,0,0,105,0,114,0,50,0,57,0,0,0,105,0,116,0,55,0,55,0,0,0,105,0,116,0,55,0,56,0,0,0,105,0,116,0,97,0,111,0,0,0,105,0,116,0,97,0,112,0,0,0,105,0,116,0,97,0,113,0,0,0,105,0,116,0,97,0,114,0,0,0,105,0,116,0,98,0,114,0,0,0,105,0,116,0,98,0,115,0,0,0,105,0,116,0,98,0,116,0,0,0,105,0,116,0,99,0,97,0,0,0,105,0,116,0,99,0,98,0,0,0,105,0,116,0,99,0,105,0,0,0,105,0,116,0,99,0,110,0,0,0,105,0,116,0,99,0,111,0,0,0,105,0,116,0,99,0,114,0,0,0,105,0,116,0,99,0,115,0,0,0,105,0,116,0,99,0,116,0,0,0,105,0,116,0,108,0,116,0,0,0,105,0,116,0,108,0,117,0,0,0,105,0,116,0,109,0,99,0,0,0,105,0,116,0,109,0,110,0,0,0,105,0,116,0,109,0,111,0,0,0,105,0,116,0,109,0,116,0,0,0,105,0,116,0,111,0,103,0,0,0,105,0,116,0,111,0,116,0,0,0,105,0,116,0,112,0,100,0,0,0,105,0,116,0,112,0,101,0,0,0,105,0,116,0,112,0,110,0,0,0,105,0,116,0,112,0,111,0,0,0,105,0,116,0,112,0,116,0,0,0,105,0,116,0,112,0,117,0,0,0,105,0,116,0,112,0,118,0,0,0,105,0,116,0,114,0,109,0,0,0,105,0,116,0,114,0,110,0,0,0,105,0,116,0,114,0,111,0,0,0,105,0,116,0,115,0,100,0,0,0,105,0,116,0,115,0,111,0,0,0,105,0,116,0,115,0,112,0,0,0,105,0,116,0,115,0,114,0,0,0,105,0,116,0,115,0,115,0,0,0,105,0,116,0,115,0,117,0,0,0,105,0,116,0,115,0,118,0,0,0,105,0,116,0,116,0,111,0,0,0,105,0,116,0,116,0,112,0,0,0,105,0,116,0,116,0,114,0,0,0,105,0,116,0,116,0,115,0,0,0,105,0,116,0,118,0,98,0,0,0,105,0,116,0,118,0,99,0,0,0,105,0,116,0,118,0,115,0,0,0,106,0,109,0,48,0,49,0,0,0,106,0,109,0,48,0,50,0,0,0,106,0,109,0,48,0,51,0,0,0,106,0,109,0,48,0,52,0,0,0,106,0,109,0,48,0,53,0,0,0,106,0,109,0,48,0,54,0,0,0,106,0,109,0,48,0,55,0,0,0,106,0,109,0,48,0,56,0,0,0,106,0,109,0,48,0,57,0,0,0,106,0,109,0,49,0,48,0,0,0,106,0,109,0,49,0,49,0,0,0,106,0,109,0,49,0,50,0,0,0,106,0,109,0,49,0,51,0,0,0,106,0,109,0,49,0,52,0,0,0,106,0,112,0,48,0,49,0,0,0,106,0,112,0,48,0,50,0,0,0,106,0,112,0,48,0,51,0,0,0,106,0,112,0,48,0,52,0,0,0,106,0,112,0,48,0,53,0,0,0,106,0,112,0,48,0,54,0,0,0,106,0,112,0,48,0,55,0,0,0,106,0,112,0,48,0,56,0,0,0,106,0,112,0,48,0,57,0,0,0,106,0,112,0,49,0,48,0,0,0,106,0,112,0,49,0,49,0,0,0,106,0,112,0,49,0,50,0,0,0,106,0,112,0,49,0,51,0,0,0,106,0,112,0,49,0,52,0,0,0,106,0,112,0,49,0,53,0,0,0,106,0,112,0,49,0,54,0,0,0,106,0,112,0,49,0,55,0,0,0,106,0,112,0,49,0,56,0,0,0,106,0,112,0,49,0,57,0,0,0,106,0,112,0,50,0,48,0,0,0,106,0,112,0,50,0,49,0,0,0,106,0,112,0,50,0,50,0,0,0,106,0,112,0,50,0,51,0,0,0,106,0,112,0,50,0,52,0,0,0,106,0,112,0,50,0,53,0,0,0,106,0,112,0,50,0,54,0,0,0,106,0,112,0,50,0,55,0,0,0,106,0,112,0,50,0,56,0,0,0,106,0,112,0,50,0,57,0,0,0,106,0,112,0,51,0,48,0,0,0,106,0,112,0,51,0,49,0,0,0,106,0,112,0,51,0,50,0,0,0,106,0,112,0,51,0,51,0,0,0,106,0,112,0,51,0,52,0,0,0,106,0,112,0,51,0,53,0,0,0,106,0,112,0,51,0,54,0,0,0,106,0,112,0,51,0,55,0,0,0,106,0,112,0,51,0,56,0,0,0,106,0,112,0,51,0,57,0,0,0,106,0,112,0,52,0,48,0,0,0,106,0,112,0,52,0,49,0,0,0,106,0,112,0,52,0,50,0,0,0,106,0,112,0,52,0,51,0,0,0,106,0,112,0,52,0,52,0,0,0,106,0,112,0,52,0,53,0,0,0,106,0,112,0,52,0,54,0,0,0,106,0,112,0,52,0,55,0,0,0,107,0,101,0,48,0,49,0,0,0,107,0,101,0,48,0,50,0,0,0,107,0,101,0,48,0,51,0,0,0,107,0,101,0,48,0,52,0,0,0,107,0,101,0,48,0,53,0,0,0,107,0,101,0,48,0,54,0,0,0,107,0,101,0,48,0,55,0,0,0,107,0,101,0,48,0,56,0,0,0,107,0,101,0,48,0,57,0,0,0,107,0,101,0,49,0,48,0,0,0,107,0,101,0,49,0,49,0,0,0,107,0,101,0,49,0,50,0,0,0,107,0,101,0,49,0,51,0,0,0,107,0,101,0,49,0,52,0,0,0,107,0,101,0,49,0,53,0,0,0,107,0,101,0,49,0,54,0,0,0,107,0,101,0,49,0,55,0,0,0,107,0,101,0,49,0,56,0,0,0,107,0,101,0,49,0,57,0,0,0,107,0,101,0,50,0,48,0,0,0,107,0,101,0,50,0,49,0,0,0,107,0,101,0,50,0,50,0,0,0,107,0,101,0,50,0,51,0,0,0,107,0,101,0,50,0,52,0,0,0,107,0,101,0,50,0,53,0,0,0,107,0,101,0,50,0,54,0,0,0,107,0,101,0,50,0,55,0,0,0,107,0,101,0,50,0,56,0,0,0,107,0,101,0,50,0,57,0,0,0,107,0,101,0,51,0,48,0,0,0,107,0,101,0,51,0,49,0,0,0,107,0,101,0,51,0,50,0,0,0,107,0,101,0,51,0,51,0,0,0,107,0,101,0,51,0,52,0,0,0,107,0,101,0,51,0,53,0,0,0,107,0,101,0,51,0,54,0,0,0,107,0,101,0,51,0,55,0,0,0,107,0,101,0,51,0,56,0,0,0,107,0,101,0,51,0,57,0,0,0,107,0,101,0,52,0,48,0,0,0,107,0,101,0,52,0,49,0,0,0,107,0,101,0,52,0,50,0,0,0,107,0,101,0,52,0,51,0,0,0,107,0,101,0,52,0,52,0,0,0,107,0,101,0,52,0,53,0,0,0,107,0,101,0,52,0,54,0,0,0,107,0,101,0,52,0,55,0,0,0,107,0,104,0,49,0,48,0,0,0,107,0,104,0,49,0,49,0,0,0,107,0,104,0,49,0,50,0,0,0,107,0,104,0,49,0,51,0,0,0,107,0,104,0,49,0,52,0,0,0,107,0,104,0,49,0,53,0,0,0,107,0,104,0,49,0,54,0,0,0,107,0,104,0,49,0,55,0,0,0,107,0,104,0,49,0,56,0,0,0,107,0,104,0,49,0,57,0,0,0,107,0,104,0,50,0,48,0,0,0,107,0,104,0,50,0,49,0,0,0,107,0,104,0,50,0,50,0,0,0,107,0,104,0,50,0,51,0,0,0,107,0,104,0,50,0,52,0,0,0,107,0,104,0,50,0,53,0,0,0,107,0,110,0,48,0,49,0,0,0,107,0,110,0,48,0,50,0,0,0,107,0,110,0,48,0,51,0,0,0,107,0,110,0,48,0,52,0,0,0,107,0,110,0,48,0,53,0,0,0,107,0,110,0,48,0,54,0,0,0,107,0,110,0,48,0,55,0,0,0,107,0,110,0,48,0,56,0,0,0,107,0,110,0,48,0,57,0,0,0,107,0,110,0,49,0,48,0,0,0,107,0,110,0,49,0,49,0,0,0,107,0,110,0,49,0,50,0,0,0,107,0,110,0,49,0,51,0,0,0,107,0,112,0,48,0,49,0,0,0,107,0,112,0,48,0,50,0,0,0,107,0,112,0,48,0,51,0,0,0,107,0,112,0,48,0,52,0,0,0,107,0,112,0,48,0,53,0,0,0,107,0,112,0,48,0,54,0,0,0,107,0,112,0,48,0,55,0,0,0,107,0,112,0,48,0,56,0,0,0,107,0,112,0,48,0,57,0,0,0,107,0,112,0,49,0,51,0,0,0,107,0,112,0,49,0,52,0,0,0,107,0,114,0,50,0,54,0,0,0,107,0,114,0,50,0,55,0,0,0,107,0,114,0,50,0,56,0,0,0,107,0,114,0,50,0,57,0,0,0,107,0,114,0,51,0,48,0,0,0,107,0,114,0,51,0,49,0,0,0,107,0,114,0,52,0,49,0,0,0,107,0,114,0,52,0,50,0,0,0,107,0,114,0,52,0,51,0,0,0,107,0,114,0,52,0,52,0,0,0,107,0,114,0,52,0,53,0,0,0,107,0,114,0,52,0,54,0,0,0,107,0,114,0,52,0,55,0,0,0,107,0,114,0,52,0,56,0,0,0,107,0,114,0,52,0,57,0,0,0,108,0,97,0,98,0,107,0,0,0,108,0,97,0,98,0,108,0,0,0,108,0,97,0,120,0,110,0,0,0,108,0,98,0,98,0,104,0,0,0,108,0,98,0,98,0,105,0,0,0,108,0,99,0,48,0,49,0,0,0,108,0,99,0,48,0,50,0,0,0,108,0,99,0,48,0,51,0,0,0,108,0,99,0,48,0,53,0,0,0,108,0,99,0,48,0,54,0,0,0,108,0,99,0,48,0,55,0,0,0,108,0,99,0,48,0,56,0,0,0,108,0,99,0,49,0,48,0,0,0,108,0,99,0,49,0,49,0,0,0,108,0,99,0,49,0,50,0,0,0,108,0,105,0,48,0,49,0,0,0,108,0,105,0,48,0,50,0,0,0,108,0,105,0,48,0,51,0,0,0,108,0,105,0,48,0,52,0,0,0,108,0,105,0,48,0,53,0,0,0,108,0,105,0,48,0,54,0,0,0,108,0,105,0,48,0,55,0,0,0,108,0,105,0,48,0,56,0,0,0,108,0,105,0,48,0,57,0,0,0,108,0,105,0,49,0,48,0,0,0,108,0,105,0,49,0,49,0,0,0,108,0,107,0,49,0,49,0,0,0,108,0,107,0,49,0,50,0,0,0,108,0,107,0,49,0,51,0,0,0,108,0,107,0,50,0,49,0,0,0,108,0,107,0,50,0,50,0,0,0,108,0,107,0,50,0,51,0,0,0,108,0,107,0,51,0,49,0,0,0,108,0,107,0,51,0,50,0,0,0,108,0,107,0,51,0,51,0,0,0,108,0,107,0,52,0,49,0,0,0,108,0,107,0,52,0,50,0,0,0,108,0,107,0,52,0,51,0,0,0,108,0,107,0,52,0,52,0,0,0,108,0,107,0,52,0,53,0,0,0,108,0,107,0,53,0,49,0,0,0,108,0,107,0,53,0,50,0,0,0,108,0,107,0,53,0,51,0,0,0,108,0,107,0,54,0,49,0,0,0,108,0,107,0,54,0,50,0,0,0,108,0,107,0,55,0,49,0,0,0,108,0,107,0,55,0,50,0,0,0,108,0,107,0,56,0,49,0,0,0,108,0,107,0,56,0,50,0,0,0,108,0,107,0,57,0,49,0,0,0,108,0,107,0,57,0,50,0,0,0,108,0,116,0,48,0,49,0,0,0,108,0,116,0,48,0,50,0,0,0,108,0,116,0,48,0,51,0,0,0,108,0,116,0,48,0,52,0,0,0,108,0,116,0,48,0,53,0,0,0,108,0,116,0,48,0,54,0,0,0,108,0,116,0,48,0,55,0,0,0,108,0,116,0,48,0,56,0,0,0,108,0,116,0,48,0,57,0,0,0,108,0,116,0,49,0,48,0,0,0,108,0,116,0,49,0,49,0,0,0,108,0,116,0,49,0,50,0,0,0,108,0,116,0,49,0,51,0,0,0,108,0,116,0,49,0,52,0,0,0,108,0,116,0,49,0,53,0,0,0,108,0,116,0,49,0,54,0,0,0,108,0,116,0,49,0,55,0,0,0,108,0,116,0,49,0,56,0,0,0,108,0,116,0,49,0,57,0,0,0,108,0,116,0,50,0,48,0,0,0,108,0,116,0,50,0,49,0,0,0,108,0,116,0,50,0,50,0,0,0,108,0,116,0,50,0,51,0,0,0,108,0,116,0,50,0,52,0,0,0,108,0,116,0,50,0,53,0,0,0,108,0,116,0,50,0,54,0,0,0,108,0,116,0,50,0,55,0,0,0,108,0,116,0,50,0,56,0,0,0,108,0,116,0,50,0,57,0,0,0,108,0,116,0,51,0,48,0,0,0,108,0,116,0,51,0,49,0,0,0,108,0,116,0,51,0,50,0,0,0,108,0,116,0,51,0,51,0,0,0,108,0,116,0,51,0,52,0,0,0,108,0,116,0,51,0,53,0,0,0,108,0,116,0,51,0,54,0,0,0,108,0,116,0,51,0,55,0,0,0,108,0,116,0,51,0,56,0,0,0,108,0,116,0,51,0,57,0,0,0,108,0,116,0,52,0,48,0,0,0,108,0,116,0,52,0,49,0,0,0,108,0,116,0,52,0,50,0,0,0,108,0,116,0,52,0,51,0,0,0,108,0,116,0,52,0,52,0,0,0,108,0,116,0,52,0,53,0,0,0,108,0,116,0,52,0,54,0,0,0,108,0,116,0,52,0,55,0,0,0,108,0,116,0,52,0,56,0,0,0,108,0,116,0,52,0,57,0,0,0,108,0,116,0,53,0,48,0,0,0,108,0,116,0,53,0,49,0,0,0,108,0,116,0,53,0,50,0,0,0,108,0,116,0,53,0,51,0,0,0,108,0,116,0,53,0,52,0,0,0,108,0,116,0,53,0,53,0,0,0,108,0,116,0,53,0,54,0,0,0,108,0,116,0,53,0,55,0,0,0,108,0,116,0,53,0,56,0,0,0,108,0,116,0,53,0,57,0,0,0,108,0,121,0,109,0,105,0,0,0,108,0,121,0,109,0,106,0,0,0,109,0,97,0,48,0,49,0,0,0,109,0,97,0,48,0,50,0,0,0,109,0,97,0,48,0,51,0,0,0,109,0,97,0,48,0,52,0,0,0,109,0,97,0,48,0,53,0,0,0,109,0,97,0,48,0,54,0,0,0,109,0,97,0,48,0,55,0,0,0,109,0,97,0,48,0,56,0,0,0,109,0,97,0,48,0,57,0,0,0,109,0,97,0,49,0,48,0,0,0,109,0,97,0,49,0,49,0,0,0,109,0,97,0,49,0,50,0,0,0,109,0,99,0,115,0,111,0,0,0,109,0,99,0,115,0,112,0,0,0,109,0,100,0,98,0,114,0,0,0,109,0,100,0,98,0,115,0,0,0,109,0,100,0,99,0,108,0,0,0,109,0,100,0,99,0,109,0,0,0,109,0,100,0,99,0,115,0,0,0,109,0,100,0,99,0,116,0,0,0,109,0,100,0,99,0,117,0,0,0,109,0,100,0,115,0,110,0,0,0,109,0,100,0,115,0,111,0,0,0,109,0,101,0,48,0,49,0,0,0,109,0,101,0,48,0,50,0,0,0,109,0,101,0,48,0,51,0,0,0,109,0,101,0,48,0,52,0,0,0,109,0,101,0,48,0,53,0,0,0,109,0,101,0,48,0,54,0,0,0,109,0,101,0,48,0,55,0,0,0,109,0,101,0,48,0,56,0,0,0,109,0,101,0,48,0,57,0,0,0,109,0,101,0,49,0,48,0,0,0,109,0,101,0,49,0,49,0,0,0,109,0,101,0,49,0,50,0,0,0,109,0,101,0,49,0,51,0,0,0,109,0,101,0,49,0,52,0,0,0,109,0,101,0,49,0,53,0,0,0,109,0,101,0,49,0,54,0,0,0,109,0,101,0,49,0,55,0,0,0,109,0,101,0,49,0,56,0,0,0,109,0,101,0,49,0,57,0,0,0,109,0,101,0,50,0,48,0,0,0,109,0,101,0,50,0,49,0,0,0,109,0,101,0,50,0,50,0,0,0,109,0,101,0,50,0,51,0,0,0,109,0,101,0,50,0,52,0,0,0,109,0,109,0,48,0,49,0,0,0,109,0,109,0,48,0,50,0,0,0,109,0,109,0,48,0,51,0,0,0,109,0,109,0,48,0,52,0,0,0,109,0,109,0,48,0,53,0,0,0,109,0,109,0,48,0,54,0,0,0,109,0,109,0,48,0,55,0,0,0,109,0,109,0,49,0,49,0,0,0,109,0,109,0,49,0,50,0,0,0,109,0,109,0,49,0,51,0,0,0,109,0,109,0,49,0,52,0,0,0,109,0,109,0,49,0,53,0,0,0,109,0,109,0,49,0,54,0,0,0,109,0,109,0,49,0,55,0,0,0,109,0,109,0,49,0,56,0,0,0,109,0,114,0,48,0,49,0,0,0,109,0,114,0,48,0,50,0,0,0,109,0,114,0,48,0,51,0,0,0,109,0,114,0,48,0,52,0,0,0,109,0,114,0,48,0,53,0,0,0,109,0,114,0,48,0,54,0,0,0,109,0,114,0,48,0,55,0,0,0,109,0,114,0,48,0,56,0,0,0,109,0,114,0,48,0,57,0,0,0,109,0,114,0,49,0,48,0,0,0,109,0,114,0,49,0,49,0,0,0,109,0,114,0,49,0,50,0,0,0,109,0,114,0,49,0,51,0,0,0,109,0,114,0,49,0,52,0,0,0,109,0,114,0,49,0,53,0,0,0,109,0,116,0,48,0,49,0,0,0,109,0,116,0,48,0,50,0,0,0,109,0,116,0,48,0,51,0,0,0,109,0,116,0,48,0,52,0,0,0,109,0,116,0,48,0,53,0,0,0,109,0,116,0,48,0,54,0,0,0,109,0,116,0,48,0,55,0,0,0,109,0,116,0,48,0,56,0,0,0,109,0,116,0,48,0,57,0,0,0,109,0,116,0,49,0,48,0,0,0,109,0,116,0,49,0,49,0,0,0,109,0,116,0,49,0,50,0,0,0,109,0,116,0,49,0,51,0,0,0,109,0,116,0,49,0,52,0,0,0,109,0,116,0,49,0,53,0,0,0,109,0,116,0,49,0,54,0,0,0,109,0,116,0,49,0,55,0,0,0,109,0,116,0,49,0,56,0,0,0,109,0,116,0,49,0,57,0,0,0,109,0,116,0,50,0,48,0,0,0,109,0,116,0,50,0,49,0,0,0,109,0,116,0,50,0,50,0,0,0,109,0,116,0,50,0,51,0,0,0,109,0,116,0,50,0,52,0,0,0,109,0,116,0,50,0,53,0,0,0,109,0,116,0,50,0,54,0,0,0,109,0,116,0,50,0,55,0,0,0,109,0,116,0,50,0,56,0,0,0,109,0,116,0,50,0,57,0,0,0,109,0,116,0,51,0,48,0,0,0,109,0,116,0,51,0,49,0,0,0,109,0,116,0,51,0,50,0,0,0,109,0,116,0,51,0,51,0,0,0,109,0,116,0,51,0,52,0,0,0,109,0,116,0,51,0,53,0,0,0,109,0,116,0,51,0,54,0,0,0,109,0,116,0,51,0,55,0,0,0,109,0,116,0,51,0,56,0,0,0,109,0,116,0,51,0,57,0,0,0,109,0,116,0,52,0,48,0,0,0,109,0,116,0,52,0,49,0,0,0,109,0,116,0,52,0,50,0,0,0,109,0,116,0,52,0,51,0,0,0,109,0,116,0,52,0,52,0,0,0,109,0,116,0,52,0,53,0,0,0,109,0,116,0,52,0,54,0,0,0,109,0,116,0,52,0,55,0,0,0,109,0,116,0,52,0,56,0,0,0,109,0,116,0,52,0,57,0,0,0,109,0,116,0,53,0,49,0,0,0,109,0,116,0,53,0,50,0,0,0,109,0,116,0,53,0,51,0,0,0,109,0,116,0,53,0,52,0,0,0,109,0,116,0,53,0,53,0,0,0,109,0,116,0,53,0,54,0,0,0,109,0,116,0,53,0,55,0,0,0,109,0,116,0,53,0,56,0,0,0,109,0,116,0,53,0,57,0,0,0,109,0,116,0,54,0,49,0,0,0,109,0,116,0,54,0,50,0,0,0,109,0,116,0,54,0,51,0,0,0,109,0,116,0,54,0,52,0,0,0,109,0,116,0,54,0,53,0,0,0,109,0,116,0,54,0,54,0,0,0,109,0,116,0,54,0,55,0,0,0,109,0,117,0,99,0,117,0,0,0,109,0,117,0,112,0,117,0,0,0,109,0,117,0,113,0,98,0,0,0,109,0,117,0,118,0,112,0,0,0,109,0,118,0,48,0,48,0,0,0,109,0,118,0,48,0,49,0,0,0,109,0,118,0,48,0,50,0,0,0,109,0,118,0,48,0,51,0,0,0,109,0,118,0,48,0,52,0,0,0,109,0,118,0,48,0,53,0,0,0,109,0,118,0,48,0,55,0,0,0,109,0,118,0,48,0,56,0,0,0,109,0,118,0,49,0,50,0,0,0,109,0,118,0,49,0,51,0,0,0,109,0,118,0,49,0,52,0,0,0,109,0,118,0,50,0,51,0,0,0,109,0,118,0,50,0,52,0,0,0,109,0,118,0,50,0,53,0,0,0,109,0,118,0,50,0,54,0,0,0,109,0,118,0,50,0,55,0,0,0,109,0,118,0,50,0,56,0,0,0,109,0,118,0,50,0,57,0,0,0,109,0,118,0,99,0,101,0,0,0,109,0,118,0,110,0,99,0,0,0,109,0,118,0,115,0,99,0,0,0,109,0,118,0,115,0,117,0,0,0,109,0,118,0,117,0,110,0,0,0,109,0,118,0,117,0,115,0,0,0,109,0,121,0,48,0,49,0,0,0,109,0,121,0,48,0,50,0,0,0,109,0,121,0,48,0,51,0,0,0,109,0,121,0,48,0,52,0,0,0,109,0,121,0,48,0,53,0,0,0,109,0,121,0,48,0,54,0,0,0,109,0,121,0,48,0,55,0,0,0,109,0,121,0,48,0,56,0,0,0,109,0,121,0,48,0,57,0,0,0,109,0,121,0,49,0,48,0,0,0,109,0,121,0,49,0,49,0,0,0,109,0,121,0,49,0,50,0,0,0,109,0,121,0,49,0,51,0,0,0,109,0,121,0,49,0,52,0,0,0,109,0,121,0,49,0,53,0,0,0,109,0,121,0,49,0,54,0,0,0,110,0,97,0,111,0,115,0,0,0,110,0,97,0,111,0,116,0,0,0,110,0,103,0,107,0,100,0,0,0,110,0,103,0,107,0,101,0,0,0,110,0,103,0,107,0,110,0,0,0,110,0,103,0,107,0,111,0,0,0,110,0,105,0,109,0,115,0,0,0,110,0,105,0,109,0,116,0,0,0,110,0,111,0,49,0,48,0,0,0,110,0,111,0,49,0,50,0,0,0,110,0,111,0,49,0,52,0,0,0,110,0,111,0,49,0,57,0,0,0,110,0,111,0,50,0,48,0,0,0,110,0,111,0,50,0,49,0,0,0,110,0,111,0,50,0,50,0,0,0,110,0,111,0,50,0,51,0,0,0,110,0,112,0,112,0,49,0,0,0,110,0,112,0,112,0,50,0,0,0,110,0,112,0,112,0,51,0,0,0,110,0,112,0,112,0,52,0,0,0,110,0,112,0,112,0,53,0,0,0,110,0,112,0,112,0,54,0,0,0,110,0,112,0,112,0,55,0,0,0,110,0,114,0,48,0,49,0,0,0,110,0,114,0,48,0,50,0,0,0,110,0,114,0,48,0,51,0,0,0,110,0,114,0,48,0,52,0,0,0,110,0,114,0,48,0,53,0,0,0,110,0,114,0,48,0,54,0,0,0,110,0,114,0,48,0,55,0,0,0,110,0,114,0,48,0,56,0,0,0,110,0,114,0,48,0,57,0,0,0,110,0,114,0,49,0,48,0,0,0,110,0,114,0,49,0,49,0,0,0,110,0,114,0,49,0,50,0,0,0,110,0,114,0,49,0,51,0,0,0,110,0,114,0,49,0,52,0,0,0,111,0,109,0,98,0,97,0,0,0,112,0,104,0,48,0,48,0,0,0,112,0,104,0,48,0,49,0,0,0,112,0,104,0,48,0,50,0,0,0,112,0,104,0,48,0,51,0,0,0,112,0,104,0,48,0,53,0,0,0,112,0,104,0,48,0,54,0,0,0,112,0,104,0,48,0,55,0,0,0,112,0,104,0,48,0,56,0,0,0,112,0,104,0,48,0,57,0,0,0,112,0,104,0,49,0,48,0,0,0,112,0,104,0,49,0,49,0,0,0,112,0,104,0,49,0,50,0,0,0,112,0,104,0,49,0,51,0,0,0,112,0,104,0,49,0,52,0,0,0,112,0,104,0,49,0,53,0,0,0,112,0,104,0,52,0,48,0,0,0,112,0,104,0,52,0,49,0,0,0,112,0,107,0,116,0,97,0,0,0,112,0,108,0,100,0,115,0,0,0,112,0,108,0,107,0,112,0,0,0,112,0,108,0,108,0,100,0,0,0,112,0,108,0,109,0,97,0,0,0,112,0,108,0,111,0,112,0,0,0,112,0,108,0,112,0,100,0,0,0,112,0,108,0,112,0,107,0,0,0,112,0,108,0,112,0,109,0,0,0,112,0,108,0,119,0,110,0,0,0,112,0,108,0,119,0,112,0,0,0,112,0,108,0,122,0,112,0,0,0,112,0,116,0,48,0,49,0,0,0,112,0,116,0,48,0,50,0,0,0,112,0,116,0,48,0,51,0,0,0,112,0,116,0,48,0,52,0,0,0,112,0,116,0,48,0,53,0,0,0,112,0,116,0,48,0,54,0,0,0,112,0,116,0,48,0,55,0,0,0,112,0,116,0,48,0,56,0,0,0,112,0,116,0,48,0,57,0,0,0,112,0,116,0,49,0,48,0,0,0,112,0,116,0,49,0,49,0,0,0,112,0,116,0,49,0,50,0,0,0,112,0,116,0,49,0,51,0,0,0,112,0,116,0,49,0,52,0,0,0,112,0,116,0,49,0,53,0,0,0,112,0,116,0,49,0,54,0,0,0,112,0,116,0,49,0,55,0,0,0,112,0,116,0,49,0,56,0,0,0,112,0,121,0,49,0,48,0,0,0,112,0,121,0,49,0,49,0,0,0,112,0,121,0,49,0,50,0,0,0,112,0,121,0,49,0,51,0,0,0,112,0,121,0,49,0,52,0,0,0,112,0,121,0,49,0,53,0,0,0,112,0,121,0,49,0,54,0,0,0,114,0,111,0,99,0,115,0,0,0,114,0,111,0,99,0,116,0,0,0,114,0,111,0,116,0,108,0,0,0,114,0,111,0,116,0,109,0,0,0,114,0,115,0,48,0,48,0,0,0,114,0,115,0,48,0,49,0,0,0,114,0,115,0,48,0,50,0,0,0,114,0,115,0,48,0,51,0,0,0,114,0,115,0,48,0,52,0,0,0,114,0,115,0,48,0,53,0,0,0,114,0,115,0,48,0,54,0,0,0,114,0,115,0,48,0,55,0,0,0,114,0,115,0,48,0,56,0,0,0,114,0,115,0,48,0,57,0,0,0,114,0,115,0,49,0,48,0,0,0,114,0,115,0,49,0,49,0,0,0,114,0,115,0,49,0,50,0,0,0,114,0,115,0,49,0,51,0,0,0,114,0,115,0,49,0,52,0,0,0,114,0,115,0,49,0,53,0,0,0,114,0,115,0,49,0,54,0,0,0,114,0,115,0,49,0,55,0,0,0,114,0,115,0,49,0,56,0,0,0,114,0,115,0,49,0,57,0,0,0,114,0,115,0,50,0,48,0,0,0,114,0,115,0,50,0,49,0,0,0,114,0,115,0,50,0,50,0,0,0,114,0,115,0,50,0,51,0,0,0,114,0,115,0,50,0,52,0,0,0,114,0,115,0,50,0,53,0,0,0,114,0,115,0,50,0,54,0,0,0,114,0,115,0,50,0,55,0,0,0,114,0,115,0,50,0,56,0,0,0,114,0,115,0,50,0,57,0,0,0,114,0,117,0,107,0,98,0,0,0,114,0,117,0,107,0,99,0,0,0,114,0,117,0,107,0,107,0,0,0,114,0,117,0,107,0,108,0,0,0,114,0,119,0,48,0,49,0,0,0,114,0,119,0,48,0,50,0,0,0,114,0,119,0,48,0,51,0,0,0,114,0,119,0,48,0,52,0,0,0,114,0,119,0,48,0,53,0,0,0,115,0,97,0,48,0,49,0,0,0,115,0,97,0,48,0,50,0,0,0,115,0,97,0,48,0,51,0,0,0,115,0,97,0,48,0,52,0,0,0,115,0,97,0,48,0,53,0,0,0,115,0,97,0,48,0,54,0,0,0,115,0,97,0,48,0,55,0,0,0,115,0,97,0,48,0,56,0,0,0,115,0,97,0,48,0,57,0,0,0,115,0,97,0,49,0,48,0,0,0,115,0,97,0,49,0,49,0,0,0,115,0,97,0,49,0,50,0,0,0,115,0,98,0,109,0,107,0,0,0,115,0,98,0,109,0,108,0,0,0,115,0,99,0,48,0,49,0,0,0,115,0,99,0,48,0,50,0,0,0,115,0,99,0,48,0,51,0,0,0,115,0,99,0,48,0,52,0,0,0,115,0,99,0,48,0,53,0,0,0,115,0,99,0,48,0,54,0,0,0,115,0,99,0,48,0,55,0,0,0,115,0,99,0,48,0,56,0,0,0,115,0,99,0,48,0,57,0,0,0,115,0,99,0,49,0,48,0,0,0,115,0,99,0,49,0,49,0,0,0,115,0,99,0,49,0,50,0,0,0,115,0,99,0,49,0,51,0,0,0,115,0,99,0,49,0,52,0,0,0,115,0,99,0,49,0,53,0,0,0,115,0,99,0,49,0,54,0,0,0,115,0,99,0,49,0,55,0,0,0,115,0,99,0,49,0,56,0,0,0,115,0,99,0,49,0,57,0,0,0,115,0,99,0,50,0,48,0,0,0,115,0,99,0,50,0,49,0,0,0,115,0,99,0,50,0,50,0,0,0,115,0,99,0,50,0,51,0,0,0,115,0,99,0,50,0,52,0,0,0,115,0,99,0,50,0,53,0,0,0,115,0,99,0,50,0,54,0,0,0,115,0,99,0,50,0,55,0,0,0,115,0,101,0,97,0,98,0,0,0,115,0,101,0,97,0,99,0,0,0,115,0,103,0,48,0,49,0,0,0,115,0,103,0,48,0,50,0,0,0,115,0,103,0,48,0,51,0,0,0,115,0,103,0,48,0,52,0,0,0,115,0,103,0,48,0,53,0,0,0,115,0,109,0,48,0,49,0,0,0,115,0,109,0,48,0,50,0,0,0,115,0,109,0,48,0,51,0,0,0,115,0,109,0,48,0,52,0,0,0,115,0,109,0,48,0,53,0,0,0,115,0,109,0,48,0,54,0,0,0,115,0,109,0,48,0,55,0,0,0,115,0,109,0,48,0,56,0,0,0,115,0,109,0,48,0,57,0,0,0,115,0,110,0,107,0,100,0,0,0,115,0,110,0,107,0,101,0,0,0,115,0,116,0,48,0,49,0,0,0,115,0,116,0,48,0,50,0,0,0,115,0,116,0,48,0,51,0,0,0,115,0,116,0,48,0,52,0,0,0,115,0,116,0,48,0,53,0,0,0,115,0,116,0,48,0,54,0,0,0,115,0,121,0,104,0,109,0,0,0,116,0,104,0,49,0,48,0,0,0,116,0,104,0,49,0,49,0,0,0,116,0,104,0,49,0,50,0,0,0,116,0,104,0,49,0,51,0,0,0,116,0,104,0,49,0,52,0,0,0,116,0,104,0,49,0,53,0,0,0,116,0,104,0,49,0,54,0,0,0,116,0,104,0,49,0,55,0,0,0,116,0,104,0,49,0,56,0,0,0,116,0,104,0,49,0,57,0,0,0,116,0,104,0,50,0,48,0,0,0,116,0,104,0,50,0,49,0,0,0,116,0,104,0,50,0,50,0,0,0,116,0,104,0,50,0,51,0,0,0,116,0,104,0,50,0,52,0,0,0,116,0,104,0,50,0,53,0,0,0,116,0,104,0,50,0,54,0,0,0,116,0,104,0,50,0,55,0,0,0,116,0,104,0,51,0,48,0,0,0,116,0,104,0,51,0,49,0,0,0,116,0,104,0,51,0,50,0,0,0,116,0,104,0,51,0,51,0,0,0,116,0,104,0,51,0,52,0,0,0,116,0,104,0,51,0,53,0,0,0,116,0,104,0,51,0,54,0,0,0,116,0,104,0,51,0,55,0,0,0,116,0,104,0,51,0,56,0,0,0,116,0,104,0,51,0,57,0,0,0,116,0,104,0,52,0,48,0,0,0,116,0,104,0,52,0,49,0,0,0,116,0,104,0,52,0,50,0,0,0,116,0,104,0,52,0,51,0,0,0,116,0,104,0,52,0,52,0,0,0,116,0,104,0,52,0,53,0,0,0,116,0,104,0,52,0,54,0,0,0,116,0,104,0,52,0,55,0,0,0,116,0,104,0,52,0,56,0,0,0,116,0,104,0,52,0,57,0,0,0,116,0,104,0,53,0,48,0,0,0,116,0,104,0,53,0,49,0,0,0,116,0,104,0,53,0,50,0,0,0,116,0,104,0,53,0,51,0,0,0,116,0,104,0,53,0,52,0,0,0,116,0,104,0,53,0,53,0,0,0,116,0,104,0,53,0,54,0,0,0,116,0,104,0,53,0,55,0,0,0,116,0,104,0,53,0,56,0,0,0,116,0,104,0,54,0,48,0,0,0,116,0,104,0,54,0,49,0,0,0,116,0,104,0,54,0,50,0,0,0,116,0,104,0,54,0,51,0,0,0,116,0,104,0,54,0,52,0,0,0,116,0,104,0,54,0,53,0,0,0,116,0,104,0,54,0,54,0,0,0,116,0,104,0,54,0,55,0,0,0,116,0,104,0,55,0,48,0,0,0,116,0,104,0,55,0,49,0,0,0,116,0,104,0,55,0,50,0,0,0,116,0,104,0,55,0,51,0,0,0,116,0,104,0,55,0,52,0,0,0,116,0,104,0,55,0,53,0,0,0,116,0,104,0,55,0,54,0,0,0,116,0,104,0,55,0,55,0,0,0,116,0,104,0,56,0,48,0,0,0,116,0,104,0,56,0,49,0,0,0,116,0,104,0,56,0,50,0,0,0,116,0,104,0,56,0,51,0,0,0,116,0,104,0,56,0,52,0,0,0,116,0,104,0,56,0,53,0,0,0,116,0,104,0,56,0,54,0,0,0,116,0,104,0,57,0,48,0,0,0,116,0,104,0,57,0,49,0,0,0,116,0,104,0,57,0,50,0,0,0,116,0,104,0,57,0,51,0,0,0,116,0,104,0,57,0,52,0,0,0,116,0,104,0,57,0,53,0,0,0,116,0,110,0,49,0,49,0,0,0,116,0,110,0,49,0,50,0,0,0,116,0,110,0,49,0,51,0,0,0,116,0,110,0,49,0,52,0,0,0,116,0,110,0,50,0,49,0,0,0,116,0,110,0,50,0,50,0,0,0,116,0,110,0,50,0,51,0,0,0,116,0,110,0,51,0,49,0,0,0,116,0,110,0,51,0,50,0,0,0,116,0,110,0,51,0,51,0,0,0,116,0,110,0,51,0,52,0,0,0,116,0,110,0,52,0,49,0,0,0,116,0,110,0,52,0,50,0,0,0,116,0,110,0,52,0,51,0,0,0,116,0,110,0,53,0,49,0,0,0,116,0,110,0,53,0,50,0,0,0,116,0,110,0,53,0,51,0,0,0,116,0,110,0,55,0,49,0,0,0,116,0,110,0,55,0,50,0,0,0,116,0,110,0,55,0,51,0,0,0,116,0,110,0,56,0,49,0,0,0,116,0,110,0,56,0,50,0,0,0,116,0,110,0,56,0,51,0,0,0,116,0,111,0,48,0,49,0,0,0,116,0,111,0,48,0,50,0,0,0,116,0,111,0,48,0,51,0,0,0,116,0,111,0,48,0,52,0,0,0,116,0,111,0,48,0,53,0,0,0,116,0,114,0,48,0,49,0,0,0,116,0,114,0,48,0,50,0,0,0,116,0,114,0,48,0,51,0,0,0,116,0,114,0,48,0,52,0,0,0,116,0,114,0,48,0,53,0,0,0,116,0,114,0,48,0,54,0,0,0,116,0,114,0,48,0,55,0,0,0,116,0,114,0,48,0,56,0,0,0,116,0,114,0,48,0,57,0,0,0,116,0,114,0,49,0,48,0,0,0,116,0,114,0,49,0,49,0,0,0,116,0,114,0,49,0,50,0,0,0,116,0,114,0,49,0,51,0,0,0,116,0,114,0,49,0,52,0,0,0,116,0,114,0,49,0,53,0,0,0,116,0,114,0,49,0,54,0,0,0,116,0,114,0,49,0,55,0,0,0,116,0,114,0,49,0,56,0,0,0,116,0,114,0,49,0,57,0,0,0,116,0,114,0,50,0,48,0,0,0,116,0,114,0,50,0,49,0,0,0,116,0,114,0,50,0,50,0,0,0,116,0,114,0,50,0,51,0,0,0,116,0,114,0,50,0,52,0,0,0,116,0,114,0,50,0,53,0,0,0,116,0,114,0,50,0,54,0,0,0,116,0,114,0,50,0,55,0,0,0,116,0,114,0,50,0,56,0,0,0,116,0,114,0,50,0,57,0,0,0,116,0,114,0,51,0,48,0,0,0,116,0,114,0,51,0,49,0,0,0,116,0,114,0,51,0,50,0,0,0,116,0,114,0,51,0,51,0,0,0,116,0,114,0,51,0,52,0,0,0,116,0,114,0,51,0,53,0,0,0,116,0,114,0,51,0,54,0,0,0,116,0,114,0,51,0,55,0,0,0,116,0,114,0,51,0,56,0,0,0,116,0,114,0,51,0,57,0,0,0,116,0,114,0,52,0,48,0,0,0,116,0,114,0,52,0,49,0,0,0,116,0,114,0,52,0,50,0,0,0,116,0,114,0,52,0,51,0,0,0,116,0,114,0,52,0,52,0,0,0,116,0,114,0,52,0,53,0,0,0,116,0,114,0,52,0,54,0,0,0,116,0,114,0,52,0,55,0,0,0,116,0,114,0,52,0,56,0,0,0,116,0,114,0,52,0,57,0,0,0,116,0,114,0,53,0,48,0,0,0,116,0,114,0,53,0,49,0,0,0,116,0,114,0,53,0,50,0,0,0,116,0,114,0,53,0,51,0,0,0,116,0,114,0,53,0,52,0,0,0,116,0,114,0,53,0,53,0,0,0,116,0,114,0,53,0,54,0,0,0,116,0,114,0,53,0,55,0,0,0,116,0,114,0,53,0,56,0,0,0,116,0,114,0,53,0,57,0,0,0,116,0,114,0,54,0,48,0,0,0,116,0,114,0,54,0,49,0,0,0,116,0,114,0,54,0,50,0,0,0,116,0,114,0,54,0,51,0,0,0,116,0,114,0,54,0,52,0,0,0,116,0,114,0,54,0,53,0,0,0,116,0,114,0,54,0,54,0,0,0,116,0,114,0,54,0,55,0,0,0,116,0,114,0,54,0,56,0,0,0,116,0,114,0,54,0,57,0,0,0,116,0,114,0,55,0,48,0,0,0,116,0,114,0,55,0,49,0,0,0,116,0,114,0,55,0,50,0,0,0,116,0,114,0,55,0,51,0,0,0,116,0,114,0,55,0,52,0,0,0,116,0,114,0,55,0,53,0,0,0,116,0,114,0,55,0,54,0,0,0,116,0,114,0,55,0,55,0,0,0,116,0,114,0,55,0,56,0,0,0,116,0,114,0,55,0,57,0,0,0,116,0,114,0,56,0,48,0,0,0,116,0,114,0,56,0,49,0,0,0,116,0,122,0,48,0,49,0,0,0,116,0,122,0,48,0,50,0,0,0,116,0,122,0,48,0,51,0,0,0,116,0,122,0,48,0,52,0,0,0,116,0,122,0,48,0,53,0,0,0,116,0,122,0,48,0,54,0,0,0,116,0,122,0,48,0,55,0,0,0,116,0,122,0,48,0,56,0,0,0,116,0,122,0,48,0,57,0,0,0,116,0,122,0,49,0,49,0,0,0,116,0,122,0,49,0,51,0,0,0,116,0,122,0,49,0,52,0,0,0,116,0,122,0,49,0,53,0,0,0,116,0,122,0,49,0,54,0,0,0,116,0,122,0,49,0,55,0,0,0,116,0,122,0,49,0,56,0,0,0,116,0,122,0,49,0,57,0,0,0,116,0,122,0,50,0,49,0,0,0,116,0,122,0,50,0,50,0,0,0,116,0,122,0,50,0,51,0,0,0,116,0,122,0,50,0,52,0,0,0,116,0,122,0,50,0,53,0,0,0,116,0,122,0,50,0,54,0,0,0,116,0,122,0,50,0,55,0,0,0,116,0,122,0,50,0,56,0,0,0,116,0,122,0,50,0,57,0,0,0,116,0,122,0,51,0,49,0,0,0,117,0,115,0,97,0,108,0,0,0,117,0,115,0,109,0,101,0,0,0,117,0,115,0,109,0,110,0,0,0,117,0,115,0,109,0,115,0,0,0,117,0,115,0,109,0,116,0,0,0,117,0,115,0,110,0,100,0,0,0,117,0,115,0,110,0,101,0,0,0,117,0,115,0,115,0,99,0,0,0,117,0,115,0,115,0,100,0,0,0,118,0,99,0,48,0,49,0,0,0,118,0,99,0,48,0,50,0,0,0,118,0,99,0,48,0,51,0,0,0,118,0,99,0,48,0,52,0,0,0,118,0,99,0,48,0,53,0,0,0,118,0,99,0,48,0,54,0,0,0,118,0,110,0,48,0,49,0,0,0,118,0,110,0,48,0,50,0,0,0,118,0,110,0,48,0,51,0,0,0,118,0,110,0,48,0,52,0,0,0,118,0,110,0,48,0,53,0,0,0,118,0,110,0,48,0,54,0,0,0,118,0,110,0,48,0,55,0,0,0,118,0,110,0,49,0,51,0,0,0,118,0,110,0,49,0,52,0,0,0,118,0,110,0,50,0,48,0,0,0,118,0,110,0,50,0,49,0,0,0,118,0,110,0,50,0,50,0,0,0,118,0,110,0,50,0,51,0,0,0,118,0,110,0,50,0,52,0,0,0,118,0,110,0,50,0,53,0,0,0,118,0,110,0,50,0,54,0,0,0,118,0,110,0,50,0,55,0,0,0,118,0,110,0,50,0,56,0,0,0,118,0,110,0,50,0,57,0,0,0,118,0,110,0,51,0,48,0,0,0,118,0,110,0,51,0,49,0,0,0,118,0,110,0,51,0,50,0,0,0,118,0,110,0,51,0,51,0,0,0,118,0,110,0,51,0,52,0,0,0,118,0,110,0,51,0,53,0,0,0,118,0,110,0,51,0,54,0,0,0,118,0,110,0,51,0,55,0,0,0,118,0,110,0,52,0,48,0,0,0,118,0,110,0,52,0,49,0,0,0,118,0,110,0,52,0,51,0,0,0,118,0,110,0,52,0,52,0,0,0,118,0,110,0,52,0,53,0,0,0,118,0,110,0,52,0,54,0,0,0,118,0,110,0,52,0,55,0,0,0,118,0,110,0,53,0,48,0,0,0,118,0,110,0,53,0,49,0,0,0,118,0,110,0,53,0,50,0,0,0,118,0,110,0,53,0,51,0,0,0,118,0,110,0,53,0,52,0,0,0,118,0,110,0,53,0,53,0,0,0,118,0,110,0,53,0,54,0,0,0,118,0,110,0,53,0,55,0,0,0,118,0,110,0,53,0,56,0,0,0,118,0,110,0,53,0,57,0,0,0,118,0,110,0,54,0,54,0,0,0,118,0,110,0,54,0,55,0,0,0,118,0,110,0,54,0,56,0,0,0,118,0,110,0,54,0,57,0,0,0,118,0,110,0,55,0,48,0,0,0,118,0,110,0,55,0,49,0,0,0,118,0,110,0,55,0,50,0,0,0,118,0,110,0,55,0,51,0,0,0,122,0,97,0,103,0,116,0,0,0,122,0,97,0,110,0,108,0,0,0,122,0,109,0,48,0,49,0,0,0,122,0,109,0,48,0,50,0,0,0,122,0,109,0,48,0,51,0,0,0,122,0,109,0,48,0,52,0,0,0,122,0,109,0,48,0,53,0,0,0,122,0,109,0,48,0,54,0,0,0,122,0,109,0,48,0,55,0,0,0,122,0,109,0,48,0,56,0,0,0,122,0,109,0,48,0,57,0,0,0,122,0,119,0,109,0,118,0,0,0,122,0,119,0,109,0,119,0,0,0,101,0,110,0,95,0,73,0,78,0,0,0,97,0,122,0,122,0,97,0,114,0,0,0,101,0,110,0,95,0,68,0,69,0,0,0,101,0,110,0,95,0,71,0,66,0,0,0,101,0,110,0,95,0,90,0,65,0,0,0,101,0,110,0,95,0,80,0,75,0,0,0,101,0,110,0,95,0,85,0,71,0,0,0,101,0,110,0,95,0,75,0,69,0,0,0,101,0,110,0,95,0,78,0,71,0,0,0,101,0,110,0,95,0,78,0,76,0,0,0,112,0,116,0,95,0,70,0,82,0,0,0,49,0,53,0,52,0,126,0,53,0,0,0,101,0,110,0,95,0,65,0,84,0,0,0,112,0,116,0,95,0,77,0,90,0,0,0,101,0,110,0,95,0,66,0,69,0,0,0,101,0,110,0,95,0,70,0,73,0,0,0,101,0,110,0,95,0,83,0,73,0,0,0,101,0,110,0,95,0,71,0,72,0,0,0,101,0,110,0,95,0,84,0,90,0,0,0,112,0,116,0,95,0,67,0,72,0,0,0,112,0,116,0,95,0,76,0,85,0,0,0,112,0,116,0,95,0,80,0,84,0,0,0,101,0,110,0,95,0,67,0,89,0,0,0,101,0,110,0,95,0,68,0,75,0,0,0,101,0,110,0,95,0,77,0,84,0,0,0,101,0,110,0,95,0,78,0,65,0,0,0,101,0,110,0,95,0,90,0,77,0,0,0,108,0,117,0,110,0,97,0,114,0,0,0,110,0,122,0,119,0,103,0,110,0,0,0,101,0,110,0,95,0,69,0,82,0,0,0,101,0,110,0,95,0,70,0,74,0,0,0,101,0,110,0,95,0,70,0,77,0,0,0,101,0,110,0,95,0,73,0,69,0,0,0,101,0,110,0,95,0,77,0,85,0,0,0,101,0,110,0,95,0,77,0,89,0,0,0,101,0,110,0,95,0,82,0,87,0,0,0,101,0,110,0,95,0,83,0,68,0,0,0,101,0,110,0,95,0,83,0,69,0,0,0,101,0,110,0,95,0,83,0,71,0,0,0,101,0,110,0,95,0,83,0,76,0,0,0,101,0,110,0,95,0,86,0,85,0,0,0,101,0,110,0,95,0,90,0,87,0,0,0,112,0,116,0,95,0,65,0,79,0,0,0,112,0,116,0,95,0,66,0,82,0,0,0,112,0,116,0,95,0,71,0,81,0,0,0,116,0,119,0,104,0,115,0,113,0,0,0,101,0,110,0,95,0,67,0,77,0,0,0,101,0,110,0,95,0,72,0,75,0,0,0,101,0,110,0,95,0,73,0,76,0,0,0,101,0,110,0,95,0,74,0,77,0,0,0,101,0,110,0,95,0,77,0,71,0,0,0,101,0,110,0,95,0,77,0,87,0,0,0,101,0,110,0,95,0,78,0,82,0,0,0,101,0,110,0,95,0,78,0,90,0,0,0,101,0,110,0,95,0,80,0,71,0,0,0,101,0,110,0,95,0,80,0,87,0,0,0,101,0,110,0,95,0,83,0,67,0,0,0,101,0,110,0,95,0,87,0,83,0,0,0,101,0,115,0,95,0,66,0,79,0,0,0,101,0,115,0,95,0,69,0,67,0,0,0,101,0,115,0,95,0,77,0,88,0,0,0,101,0,115,0,95,0,80,0,89,0,0,0,103,0,98,0,101,0,115,0,115,0,0,0,108,0,118,0,48,0,49,0,49,0,0,0,116,0,119,0,116,0,110,0,110,0,0,0,103,0,98,0,115,0,103,0,99,0,0,0,109,0,97,0,109,0,97,0,114,0,0,0,112,0,104,0,116,0,97,0,114,0,0,0,114,0,117,0,115,0,97,0,114,0,0,0,114,0,117,0,121,0,97,0,114,0,0,0,115,0,105,0,48,0,50,0,57,0,0,0,98,0,101,0,119,0,104,0,116,0,0,0,101,0,110,0,95,0,66,0,87,0,0,0,101,0,110,0,95,0,68,0,77,0,0,0,101,0,110,0,95,0,71,0,77,0,0,0,101,0,110,0,95,0,71,0,89,0,0,0,101,0,110,0,95,0,75,0,73,0,0,0,101,0,110,0,95,0,76,0,83,0,0,0,101,0,110,0,95,0,77,0,86,0,0,0,101,0,110,0,95,0,78,0,85,0,0,0,101,0,110,0,95,0,83,0,66,0,0,0,101,0,110,0,95,0,83,0,83,0,0,0,101,0,110,0,95,0,83,0,90,0,0,0,101,0,110,0,95,0,84,0,79,0,0,0,101,0,110,0,95,0,84,0,84,0,0,0,101,0,110,0,95,0,84,0,86,0,0,0,101,0,110,0,95,0,86,0,67,0,0,0,101,0,115,0,95,0,65,0,82,0,0,0,101,0,115,0,95,0,66,0,90,0,0,0,101,0,115,0,95,0,67,0,76,0,0,0,101,0,115,0,95,0,67,0,82,0,0,0,101,0,115,0,95,0,68,0,79,0,0,0,101,0,115,0,95,0,71,0,84,0,0,0,101,0,115,0,95,0,78,0,73,0,0,0,101,0,115,0,95,0,80,0,65,0,0,0,101,0,115,0,95,0,80,0,69,0,0,0,101,0,115,0,95,0,83,0,86,0,0,0,101,0,115,0,95,0,86,0,69,0,0,0,103,0,98,0,121,0,111,0,114,0,0,0,107,0,122,0,121,0,117,0,122,0,0,0,109,0,97,0,116,0,97,0,122,0,0,0,112,0,116,0,95,0,67,0,86,0,0,0,112,0,116,0,95,0,71,0,87,0,0,0,112,0,116,0,95,0,84,0,76,0,0,0,97,0,111,0,108,0,117,0,97,0,0,0,97,0,122,0,98,0,97,0,108,0,0,0,101,0,101,0,52,0,52,0,54,0,0,0,101,0,101,0,52,0,55,0,56,0,0,0,101,0,101,0,52,0,56,0,48,0,0,0,101,0,101,0,53,0,56,0,54,0,0,0,101,0,101,0,55,0,56,0,52,0,0,0,101,0,101,0,56,0,51,0,52,0,0,0,102,0,114,0,57,0,55,0,54,0,0,0,103,0,98,0,103,0,119,0,110,0,0,0,105,0,115,0,98,0,111,0,108,0,0,0,109,0,97,0,98,0,101,0,109,0,0,0,109,0,97,0,101,0,115,0,109,0,0,0,109,0,104,0,107,0,105,0,108,0,0,0,109,0,107,0,52,0,49,0,48,0,0,0,109,0,110,0,48,0,51,0,57,0,0,0,109,0,110,0,48,0,54,0,49,0,0,0,109,0,120,0,110,0,108,0,101,0,0,0,109,0,120,0,118,0,101,0,114,0,0,0,112,0,104,0,98,0,111,0,104,0,0,0,112,0,104,0,115,0,108,0,101,0,0,0,112,0,119,0,50,0,49,0,52,0,0,0,97,0,102,0,116,0,97,0,107,0,0,0,97,0,111,0,117,0,105,0,103,0,0,0,101,0,110,0,95,0,65,0,71,0,0,0,101,0,110,0,95,0,65,0,73,0,0,0,101,0,110,0,95,0,65,0,85,0,0,0,101,0,110,0,95,0,66,0,66,0,0,0,101,0,110,0,95,0,66,0,83,0,0,0,101,0,110,0,95,0,67,0,67,0,0,0,101,0,110,0,95,0,71,0,68,0,0,0,101,0,110,0,95,0,71,0,73,0,0,0,101,0,110,0,95,0,73,0,77,0,0,0,101,0,110,0,95,0,74,0,69,0,0,0,101,0,110,0,95,0,75,0,78,0,0,0,101,0,110,0,95,0,76,0,67,0,0,0,101,0,110,0,95,0,76,0,82,0,0,0,101,0,110,0,95,0,83,0,88,0,0,0,101,0,110,0,95,0,84,0,75,0,0,0,101,0,110,0,95,0,86,0,71,0,0,0,101,0,115,0,95,0,67,0,79,0,0,0,101,0,115,0,95,0,67,0,85,0,0,0,101,0,115,0,95,0,72,0,78,0,0,0,101,0,115,0,95,0,80,0,82,0,0,0,101,0,115,0,95,0,85,0,89,0,0,0,103,0,98,0,118,0,103,0,108,0,0,0,103,0,98,0,119,0,108,0,110,0,0,0,103,0,98,0,119,0,108,0,118,0,0,0,103,0,98,0,122,0,101,0,116,0,0,0,105,0,115,0,114,0,107,0,110,0,0,0,105,0,115,0,115,0,98,0,104,0,0,0,107,0,122,0,115,0,104,0,121,0,0,0,107,0,122,0,122,0,104,0,97,0,0,0,109,0,104,0,117,0,116,0,105,0,0,0,109,0,107,0,49,0,48,0,52,0,0,0,109,0,120,0,116,0,97,0,109,0,0,0,110,0,122,0,119,0,107,0,111,0,0,0,112,0,101,0,112,0,105,0,117,0,0,0,112,0,104,0,115,0,117,0,107,0,0,0,112,0,116,0,95,0,77,0,79,0,0,0,112,0,116,0,95,0,83,0,84,0,0,0,114,0,117,0,122,0,97,0,98,0,0,0,115,0,105,0,48,0,48,0,53,0,0,0,115,0,105,0,48,0,49,0,51,0,0,0,115,0,105,0,48,0,50,0,49,0,0,0,115,0,105,0,49,0,53,0,54,0,0,0,116,0,116,0,115,0,102,0,111,0,0,0,114,0,117,0,115,0,97,0,107,0,0,0,114,0,117,0,115,0,109,0,111,0,0,0,97,0,102,0,98,0,100,0,103,0,0,0,97,0,102,0,103,0,104,0,97,0,0,0,97,0,102,0,106,0,111,0,119,0,0,0,97,0,111,0,108,0,110,0,111,0,0,0,97,0,111,0,122,0,97,0,105,0,0,0,97,0,122,0,105,0,109,0,105,0,0,0,97,0,122,0,111,0,103,0,117,0,0,0,97,0,122,0,113,0,117,0,115,0,0,0,98,0,102,0,98,0,97,0,122,0,0,0,98,0,102,0,98,0,108,0,103,0,0,0,98,0,102,0,115,0,101,0,110,0,0,0,98,0,102,0,122,0,105,0,114,0,0,0,99,0,111,0,103,0,117,0,118,0,0,0,99,0,111,0,115,0,97,0,112,0,0,0,101,0,101,0,50,0,57,0,54,0,0,0,101,0,101,0,53,0,50,0,56,0,0,0,101,0,101,0,54,0,50,0,52,0,0,0,101,0,101,0,54,0,51,0,56,0,0,0,101,0,101,0,54,0,54,0,51,0,0,0,101,0,101,0,55,0,51,0,50,0,0,0,101,0,101,0,55,0,57,0,54,0,0,0,101,0,101,0,57,0,48,0,49,0,0,0,101,0,101,0,57,0,50,0,56,0,0,0,102,0,114,0,97,0,114,0,97,0,0,0,102,0,114,0,103,0,101,0,115,0,0,0,103,0,98,0,99,0,108,0,100,0,0,0,103,0,98,0,99,0,109,0,110,0,0,0,103,0,98,0,100,0,98,0,121,0,0,0,103,0,98,0,100,0,101,0,118,0,0,0,103,0,98,0,100,0,117,0,100,0,0,0,103,0,98,0,101,0,114,0,119,0,0,0,103,0,98,0,102,0,108,0,110,0,0,0,103,0,98,0,103,0,114,0,101,0,0,0,103,0,98,0,104,0,110,0,115,0,0,0,103,0,98,0,105,0,111,0,119,0,0,0,103,0,98,0,107,0,104,0,108,0,0,0,103,0,98,0,108,0,99,0,101,0,0,0,103,0,98,0,108,0,110,0,100,0,0,0,103,0,98,0,110,0,119,0,109,0,0,0,103,0,98,0,114,0,100,0,98,0,0,0,103,0,98,0,119,0,111,0,107,0,0,0,105,0,115,0,97,0,114,0,110,0,0,0,105,0,115,0,102,0,108,0,97,0,0,0,105,0,115,0,102,0,108,0,114,0,0,0,105,0,115,0,104,0,118,0,101,0,0,0,105,0,115,0,105,0,115,0,97,0,0,0,105,0,115,0,109,0,117,0,108,0,0,0,105,0,115,0,114,0,103,0,101,0,0,0,105,0,115,0,115,0,100,0,110,0,0,0,105,0,115,0,115,0,116,0,121,0,0,0,105,0,115,0,118,0,101,0,109,0,0,0,107,0,122,0,97,0,108,0,97,0,0,0,108,0,118,0,48,0,53,0,50,0,0,0,108,0,118,0,48,0,53,0,52,0,0,0,108,0,118,0,48,0,53,0,54,0,0,0,108,0,118,0,108,0,112,0,120,0,0,0,108,0,118,0,118,0,101,0,110,0,0,0,109,0,97,0,99,0,104,0,116,0,0,0,109,0,97,0,105,0,110,0,101,0,0,0,109,0,97,0,110,0,97,0,100,0,0,0,109,0,97,0,115,0,101,0,102,0,0,0,109,0,97,0,115,0,101,0,116,0,0,0,109,0,104,0,101,0,98,0,111,0,0,0,109,0,110,0,48,0,51,0,53,0,0,0,109,0,120,0,99,0,111,0,97,0,0,0,109,0,120,0,103,0,114,0,111,0,0,0,109,0,120,0,104,0,105,0,100,0,0,0,110,0,122,0,98,0,111,0,112,0,0,0,112,0,101,0,116,0,117,0,109,0,0,0,112,0,103,0,101,0,98,0,114,0,0,0,112,0,104,0,99,0,101,0,98,0,0,0,112,0,104,0,100,0,97,0,111,0,0,0,112,0,104,0,103,0,117,0,105,0,0,0,112,0,104,0,105,0,102,0,117,0,0,0,112,0,104,0,105,0,108,0,105,0,0,0,112,0,104,0,105,0,108,0,115,0,0,0,112,0,115,0,103,0,122,0,97,0,0,0,112,0,119,0,48,0,48,0,50,0,0,0,112,0,119,0,48,0,48,0,52,0,0,0,112,0,119,0,48,0,49,0,48,0,0,0,112,0,119,0,48,0,53,0,48,0,0,0,112,0,119,0,49,0,48,0,48,0,0,0,112,0,119,0,49,0,53,0,48,0,0,0,112,0,119,0,50,0,49,0,50,0,0,0,112,0,119,0,50,0,49,0,56,0,0,0,112,0,119,0,50,0,50,0,50,0,0,0,114,0,117,0,97,0,114,0,107,0,0,0,114,0,117,0,105,0,114,0,107,0,0,0,114,0,117,0,107,0,97,0,109,0,0,0,114,0,117,0,107,0,100,0,97,0,0,0,114,0,117,0,107,0,103,0,110,0,0,0,114,0,117,0,111,0,114,0,101,0,0,0,114,0,117,0,115,0,118,0,101,0,0,0,114,0,117,0,118,0,111,0,114,0,0,0,116,0,119,0,110,0,97,0,110,0,0,0,118,0,117,0,115,0,101,0,101,0,0,0,97,0,122,0,122,0,97,0,110,0,0,0,101,0,110,0,95,0,66,0,77,0,0,0,101,0,110,0,95,0,67,0,75,0,0,0,101,0,110,0,95,0,67,0,88,0,0,0,101,0,110,0,95,0,68,0,71,0,0,0,101,0,110,0,95,0,70,0,75,0,0,0,101,0,110,0,95,0,71,0,71,0,0,0,101,0,110,0,95,0,73,0,79,0,0,0,101,0,110,0,95,0,75,0,89,0,0,0,101,0,110,0,95,0,77,0,83,0,0,0,101,0,110,0,95,0,78,0,70,0,0,0,101,0,110,0,95,0,80,0,78,0,0,0,101,0,110,0,95,0,83,0,72,0,0,0,101,0,110,0,95,0,84,0,67,0,0,0,108,0,118,0,100,0,103,0,118,0,0,0,109,0,104,0,110,0,109,0,107,0,0,0,112,0,104,0,122,0,97,0,115,0,0,0,118,0,117,0,116,0,97,0,101,0,0,0,99,0,122,0,50,0,48,0,50,0,0,0,99,0,122,0,50,0,48,0,51,0,0,0,99,0,122,0,50,0,48,0,56,0,0,0,99,0,122,0,51,0,50,0,52,0,0,0,99,0,122,0,52,0,50,0,50,0,0,0,99,0,122,0,52,0,50,0,54,0,0,0,99,0,122,0,53,0,49,0,50,0,0,0,99,0,122,0,53,0,50,0,52,0,0,0,99,0,122,0,53,0,51,0,51,0,0,0,99,0,122,0,54,0,51,0,52,0,0,0,99,0,122,0,54,0,52,0,51,0,0,0,99,0,122,0,54,0,52,0,54,0,0,0,102,0,114,0,57,0,55,0,49,0,0,0,102,0,114,0,57,0,55,0,50,0,0,0,102,0,114,0,57,0,55,0,51,0,0,0,102,0,114,0,57,0,55,0,52,0,0,0,108,0,118,0,48,0,53,0,55,0,0,0,109,0,107,0,49,0,48,0,56,0,0,0,109,0,107,0,52,0,48,0,52,0,0,0,109,0,107,0,52,0,48,0,56,0,0,0,109,0,107,0,53,0,48,0,52,0,0,0,109,0,107,0,54,0,48,0,52,0,0,0,109,0,107,0,54,0,48,0,56,0,0,0,109,0,107,0,55,0,48,0,50,0,0,0,109,0,107,0,55,0,48,0,52,0,0,0,109,0,107,0,55,0,48,0,54,0,0,0,109,0,107,0,56,0,48,0,55,0,0,0,115,0,105,0,48,0,48,0,57,0,0,0,115,0,105,0,48,0,49,0,52,0,0,0,115,0,105,0,48,0,49,0,55,0,0,0,115,0,105,0,48,0,49,0,56,0,0,0,115,0,105,0,48,0,49,0,57,0,0,0,115,0,105,0,48,0,51,0,48,0,0,0,115,0,105,0,49,0,49,0,54,0,0,0,115,0,105,0,49,0,50,0,52,0,0,0,115,0,105,0,49,0,51,0,50,0,0,0,115,0,105,0,49,0,51,0,54,0,0,0,115,0,105,0,49,0,52,0,52,0,0,0,115,0,105,0,49,0,53,0,50,0,0,0,115,0,105,0,49,0,55,0,48,0,0,0,115,0,105,0,49,0,55,0,52,0,0,0,115,0,105,0,49,0,56,0,48,0,0,0,115,0,105,0,49,0,56,0,56,0,0,0,115,0,105,0,49,0,57,0,49,0,0,0,115,0,105,0,49,0,57,0,50,0,0,0,117,0,103,0,50,0,51,0,50,0,0,0,117,0,103,0,51,0,50,0,48,0,0,0,117,0,103,0,51,0,50,0,56,0,0,0,117,0,103,0,51,0,51,0,50,0,0,0,117,0,103,0,52,0,49,0,52,0,0,0,117,0,103,0,52,0,49,0,55,0,0,0,117,0,103,0,52,0,49,0,56,0,0,0,117,0,103,0,52,0,49,0,57,0,0,0,117,0,103,0,52,0,51,0,48,0,0,0,117,0,103,0,52,0,51,0,52,0,0,0,42,0,95,0,42,0,95,0,42,0,0,0,97,0,102,0,98,0,100,0,115,0,0,0,97,0,102,0,98,0,103,0,108,0,0,0,97,0,102,0,100,0,97,0,121,0,0,0,97,0,102,0,102,0,114,0,97,0,0,0,97,0,102,0,102,0,121,0,98,0,0,0,97,0,102,0,103,0,104,0,111,0,0,0,97,0,102,0,104,0,101,0,108,0,0,0,97,0,102,0,104,0,101,0,114,0,0,0,97,0,102,0,107,0,97,0,98,0,0,0,97,0,102,0,107,0,97,0,110,0,0,0,97,0,102,0,107,0,97,0,112,0,0,0,97,0,102,0,107,0,100,0,122,0,0,0,97,0,102,0,107,0,104,0,111,0,0,0,97,0,102,0,107,0,110,0,114,0,0,0,97,0,102,0,108,0,97,0,103,0,0,0,97,0,102,0,108,0,111,0,103,0,0,0,97,0,102,0,110,0,97,0,110,0,0,0,97,0,102,0,110,0,105,0,109,0,0,0,97,0,102,0,110,0,117,0,114,0,0,0,97,0,102,0,112,0,97,0,110,0,0,0,97,0,102,0,112,0,97,0,114,0,0,0,97,0,102,0,112,0,105,0,97,0,0,0,97,0,102,0,112,0,107,0,97,0,0,0,97,0,102,0,115,0,97,0,109,0,0,0,97,0,102,0,115,0,97,0,114,0,0,0,97,0,102,0,117,0,114,0,117,0,0,0,97,0,102,0,119,0,97,0,114,0,0,0,97,0,102,0,122,0,97,0,98,0,0,0,97,0,111,0,98,0,103,0,111,0,0,0,97,0,111,0,98,0,103,0,117,0,0,0,97,0,111,0,98,0,105,0,101,0,0,0,97,0,111,0,99,0,97,0,98,0,0,0,97,0,111,0,99,0,99,0,117,0,0,0,97,0,111,0,99,0,117,0,115,0,0,0,97,0,111,0,104,0,117,0,97,0,0,0,97,0,111,0,104,0,117,0,105,0,0,0,97,0,111,0,108,0,115,0,117,0,0,0,97,0,111,0,109,0,97,0,108,0,0,0,97,0,111,0,109,0,111,0,120,0,0,0,97,0,111,0,110,0,97,0,109,0,0,0,97,0,117,0,97,0,99,0,116,0,0,0,97,0,117,0,110,0,115,0,119,0,0,0,97,0,117,0,113,0,108,0,100,0,0,0,97,0,117,0,116,0,97,0,115,0,0,0,97,0,117,0,118,0,105,0,99,0,0,0,97,0,122,0,97,0,98,0,115,0,0,0,97,0,122,0,97,0,103,0,97,0,0,0,97,0,122,0,97,0,103,0,99,0,0,0,97,0,122,0,97,0,103,0,109,0,0,0,97,0,122,0,97,0,103,0,115,0,0,0,97,0,122,0,97,0,103,0,117,0,0,0,97,0,122,0,97,0,115,0,116,0,0,0,97,0,122,0,98,0,97,0,98,0,0,0,97,0,122,0,98,0,97,0,114,0,0,0,97,0,122,0,98,0,101,0,121,0,0,0,97,0,122,0,98,0,105,0,108,0,0,0,97,0,122,0,99,0,97,0,98,0,0,0,97,0,122,0,99,0,97,0,108,0,0,0,97,0,122,0,99,0,117,0,108,0,0,0,97,0,122,0,100,0,97,0,115,0,0,0,97,0,122,0,102,0,117,0,122,0,0,0,97,0,122,0,103,0,97,0,100,0,0,0,97,0,122,0,103,0,111,0,114,0,0,0,97,0,122,0,103,0,111,0,121,0,0,0,97,0,122,0,103,0,121,0,103,0,0,0,97,0,122,0,104,0,97,0,99,0,0,0,97,0,122,0,105,0,115,0,109,0,0,0,97,0,122,0,107,0,97,0,108,0,0,0,97,0,122,0,107,0,97,0,110,0,0,0,97,0,122,0,107,0,117,0,114,0,0,0,97,0,122,0,108,0,97,0,99,0,0,0,97,0,122,0,108,0,97,0,110,0,0,0,97,0,122,0,108,0,101,0,114,0,0,0,97,0,122,0,109,0,97,0,115,0,0,0,97,0,122,0,110,0,101,0,102,0,0,0,97,0,122,0,111,0,114,0,100,0,0,0,97,0,122,0,113,0,97,0,98,0,0,0,97,0,122,0,113,0,97,0,120,0,0,0,97,0,122,0,113,0,97,0,122,0,0,0,97,0,122,0,113,0,98,0,97,0,0,0,97,0,122,0,113,0,98,0,105,0,0,0,97,0,122,0,113,0,111,0,98,0,0,0,97,0,122,0,115,0,97,0,98,0,0,0,97,0,122,0,115,0,97,0,100,0,0,0,97,0,122,0,115,0,97,0,104,0,0,0,97,0,122,0,115,0,97,0,114,0,0,0,97,0,122,0,115,0,97,0,116,0,0,0,97,0,122,0,115,0,98,0,110,0,0,0,97,0,122,0,115,0,105,0,121,0,0,0,97,0,122,0,115,0,107,0,114,0,0,0,97,0,122,0,115,0,109,0,105,0,0,0,97,0,122,0,115,0,109,0,120,0,0,0,97,0,122,0,115,0,117,0,115,0,0,0,97,0,122,0,116,0,97,0,114,0,0,0,97,0,122,0,116,0,111,0,118,0,0,0,97,0,122,0,117,0,99,0,97,0,0,0,97,0,122,0,120,0,97,0,99,0,0,0,97,0,122,0,120,0,99,0,105,0,0,0,97,0,122,0,120,0,105,0,122,0,0,0,97,0,122,0,120,0,118,0,100,0,0,0,97,0,122,0,121,0,97,0,114,0,0,0,97,0,122,0,121,0,101,0,118,0,0,0,98,0,97,0,98,0,105,0,104,0,0,0,98,0,97,0,98,0,114,0,99,0,0,0,98,0,97,0,115,0,114,0,112,0,0,0,98,0,101,0,98,0,114,0,117,0,0,0,98,0,101,0,118,0,97,0,110,0,0,0,98,0,101,0,118,0,98,0,114,0,0,0,98,0,101,0,118,0,108,0,103,0,0,0,98,0,101,0,118,0,108,0,105,0,0,0,98,0,101,0,118,0,111,0,118,0,0,0,98,0,101,0,118,0,119,0,118,0,0,0,98,0,101,0,119,0,97,0,108,0,0,0,98,0,101,0,119,0,98,0,114,0,0,0,98,0,101,0,119,0,108,0,103,0,0,0,98,0,101,0,119,0,108,0,120,0,0,0,98,0,101,0,119,0,110,0,97,0,0,0,98,0,102,0,98,0,103,0,114,0,0,0,98,0,102,0,98,0,108,0,107,0,0,0,98,0,102,0,99,0,111,0,109,0,0,0,98,0,102,0,103,0,97,0,110,0,0,0,98,0,102,0,103,0,110,0,97,0,0,0,98,0,102,0,103,0,111,0,117,0,0,0,98,0,102,0,104,0,111,0,117,0,0,0,98,0,102,0,105,0,111,0,98,0,0,0,98,0,102,0,107,0,97,0,100,0,0,0,98,0,102,0,107,0,101,0,110,0,0,0,98,0,102,0,107,0,109,0,100,0,0,0,98,0,102,0,107,0,109,0,112,0,0,0,98,0,102,0,107,0,111,0,112,0,0,0,98,0,102,0,107,0,111,0,119,0,0,0,98,0,102,0,108,0,101,0,114,0,0,0,98,0,102,0,108,0,111,0,114,0,0,0,98,0,102,0,109,0,111,0,117,0,0,0,98,0,102,0,110,0,97,0,109,0,0,0,98,0,102,0,110,0,97,0,111,0,0,0,98,0,102,0,110,0,97,0,121,0,0,0,98,0,102,0,110,0,111,0,117,0,0,0,98,0,102,0,111,0,117,0,98,0,0,0,98,0,102,0,111,0,117,0,100,0,0,0,98,0,102,0,112,0,97,0,115,0,0,0,98,0,102,0,112,0,111,0,110,0,0,0,98,0,102,0,115,0,105,0,115,0,0,0,98,0,102,0,115,0,109,0,116,0,0,0,98,0,102,0,115,0,110,0,103,0,0,0,98,0,102,0,115,0,111,0,109,0,0,0,98,0,102,0,115,0,111,0,114,0,0,0,98,0,102,0,116,0,97,0,112,0,0,0,98,0,102,0,116,0,117,0,105,0,0,0,98,0,102,0,121,0,97,0,103,0,0,0,98,0,102,0,121,0,97,0,116,0,0,0,98,0,102,0,122,0,111,0,110,0,0,0,98,0,102,0,122,0,111,0,117,0,0,0,98,0,122,0,99,0,122,0,108,0,0,0,98,0,122,0,116,0,111,0,108,0,0,0,99,0,102,0,98,0,103,0,102,0,0,0,99,0,103,0,98,0,122,0,118,0,0,0,99,0,111,0,97,0,109,0,97,0,0,0,99,0,111,0,97,0,110,0,116,0,0,0,99,0,111,0,97,0,114,0,97,0,0,0,99,0,111,0,97,0,116,0,108,0,0,0,99,0,111,0,98,0,111,0,108,0,0,0,99,0,111,0,98,0,111,0,121,0,0,0,99,0,111,0,99,0,97,0,108,0,0,0,99,0,111,0,99,0,97,0,113,0,0,0,99,0,111,0,99,0,97,0,115,0,0,0,99,0,111,0,99,0,97,0,117,0,0,0,99,0,111,0,99,0,101,0,115,0,0,0,99,0,111,0,99,0,104,0,111,0,0,0,99,0,111,0,99,0,111,0,114,0,0,0,99,0,111,0,99,0,117,0,110,0,0,0,99,0,111,0,103,0,117,0,97,0,0,0,99,0,111,0,104,0,117,0,105,0,0,0,99,0,111,0,108,0,97,0,103,0,0,0,99,0,111,0,109,0,97,0,103,0,0,0,99,0,111,0,109,0,101,0,116,0,0,0,99,0,111,0,110,0,97,0,114,0,0,0,99,0,111,0,110,0,115,0,97,0,0,0,99,0,111,0,112,0,117,0,116,0,0,0,99,0,111,0,113,0,117,0,105,0,0,0,99,0,111,0,114,0,105,0,115,0,0,0,99,0,111,0,115,0,97,0,110,0,0,0,99,0,111,0,115,0,117,0,99,0,0,0,99,0,111,0,116,0,111,0,108,0,0,0,99,0,111,0,118,0,97,0,99,0,0,0,99,0,111,0,118,0,97,0,117,0,0,0,99,0,111,0,118,0,105,0,100,0,0,0,101,0,99,0,114,0,126,0,115,0,0,0,101,0,101,0,49,0,51,0,48,0,0,0,101,0,101,0,49,0,55,0,49,0,0,0,101,0,101,0,49,0,56,0,52,0,0,0,101,0,101,0,49,0,57,0,49,0,0,0,101,0,101,0,49,0,57,0,56,0,0,0,101,0,101,0,50,0,48,0,53,0,0,0,101,0,101,0,50,0,49,0,52,0,0,0,101,0,101,0,50,0,52,0,53,0,0,0,101,0,101,0,50,0,52,0,55,0,0,0,101,0,101,0,50,0,53,0,49,0,0,0,101,0,101,0,50,0,53,0,53,0,0,0,101,0,101,0,50,0,55,0,50,0,0,0,101,0,101,0,50,0,57,0,49,0,0,0,101,0,101,0,50,0,57,0,51,0,0,0,101,0,101,0,51,0,48,0,51,0,0,0,101,0,101,0,51,0,48,0,53,0,0,0,101,0,101,0,51,0,49,0,55,0,0,0,101,0,101,0,51,0,50,0,49,0,0,0,101,0,101,0,51,0,51,0,56,0,0,0,101,0,101,0,51,0,53,0,51,0,0,0,101,0,101,0,52,0,50,0,52,0,0,0,101,0,101,0,52,0,56,0,54,0,0,0,101,0,101,0,53,0,48,0,51,0,0,0,101,0,101,0,53,0,49,0,49,0,0,0,101,0,101,0,53,0,49,0,52,0,0,0,101,0,101,0,53,0,53,0,55,0,0,0,101,0,101,0,53,0,54,0,55,0,0,0,101,0,101,0,54,0,49,0,53,0,0,0,101,0,101,0,54,0,49,0,56,0,0,0,101,0,101,0,54,0,50,0,50,0,0,0,101,0,101,0,54,0,53,0,49,0,0,0,101,0,101,0,54,0,53,0,51,0,0,0,101,0,101,0,54,0,54,0,49,0,0,0,101,0,101,0,54,0,54,0,56,0,0,0,101,0,101,0,54,0,56,0,57,0,0,0,101,0,101,0,54,0,57,0,56,0,0,0,101,0,101,0,55,0,48,0,56,0,0,0,101,0,101,0,55,0,49,0,50,0,0,0,101,0,101,0,55,0,49,0,52,0,0,0,101,0,101,0,55,0,49,0,57,0,0,0,101,0,101,0,55,0,50,0,54,0,0,0,101,0,101,0,55,0,51,0,53,0,0,0,101,0,101,0,56,0,48,0,51,0,0,0,101,0,101,0,56,0,48,0,57,0,0,0,101,0,101,0,56,0,50,0,52,0,0,0,101,0,101,0,56,0,53,0,53,0,0,0,101,0,101,0,56,0,57,0,48,0,0,0,101,0,101,0,56,0,57,0,55,0,0,0,101,0,101,0,56,0,57,0,57,0,0,0,101,0,101,0,57,0,48,0,51,0,0,0,101,0,101,0,57,0,48,0,55,0,0,0,101,0,101,0,57,0,49,0,55,0,0,0,101,0,101,0,57,0,49,0,57,0,0,0,101,0,103,0,97,0,108,0,120,0,0,0,101,0,103,0,97,0,115,0,110,0,0,0,101,0,103,0,97,0,115,0,116,0,0,0,101,0,103,0,98,0,110,0,115,0,0,0,101,0,103,0,102,0,121,0,109,0,0,0,101,0,103,0,107,0,102,0,115,0,0,0,101,0,103,0,109,0,110,0,102,0,0,0,101,0,103,0,112,0,116,0,115,0,0,0,101,0,103,0,115,0,104,0,103,0,0,0,101,0,103,0,115,0,104,0,114,0,0,0,101,0,103,0,115,0,105,0,110,0,0,0,101,0,103,0,115,0,117,0,122,0,0,0,101,0,103,0,119,0,97,0,100,0,0,0,102,0,109,0,107,0,115,0,97,0,0,0,102,0,109,0,112,0,110,0,105,0,0,0,102,0,109,0,116,0,114,0,107,0,0,0,102,0,109,0,121,0,97,0,112,0,0,0,102,0,114,0,50,0,48,0,114,0,0,0,102,0,114,0,54,0,57,0,109,0,0,0,102,0,114,0,54,0,97,0,101,0,0,0,102,0,114,0,55,0,53,0,99,0,0,0,102,0,114,0,98,0,102,0,99,0,0,0,102,0,114,0,98,0,114,0,101,0,0,0,102,0,114,0,99,0,118,0,108,0,0,0,102,0,114,0,104,0,100,0,102,0,0,0,102,0,114,0,105,0,100,0,102,0,0,0,102,0,114,0,110,0,97,0,113,0,0,0,102,0,114,0,110,0,111,0,114,0,0,0,102,0,114,0,111,0,99,0,99,0,0,0,102,0,114,0,112,0,97,0,99,0,0,0,102,0,114,0,112,0,100,0,108,0,0,0,103,0,98,0,97,0,103,0,98,0,0,0,103,0,98,0,97,0,103,0,121,0,0,0,103,0,98,0,97,0,110,0,100,0,0,0,103,0,98,0,97,0,110,0,110,0,0,0,103,0,98,0,97,0,110,0,115,0,0,0,103,0,98,0,98,0,97,0,115,0,0,0,103,0,98,0,98,0,98,0,100,0,0,0,103,0,98,0,98,0,99,0,112,0,0,0,103,0,98,0,98,0,101,0,110,0,0,0,103,0,98,0,98,0,101,0,120,0,0,0,103,0,98,0,98,0,102,0,115,0,0,0,103,0,98,0,98,0,103,0,101,0,0,0,103,0,98,0,98,0,103,0,119,0,0,0,103,0,98,0,98,0,105,0,114,0,0,0,103,0,98,0,98,0,107,0,109,0,0,0,103,0,98,0,98,0,110,0,101,0,0,0,103,0,98,0,98,0,110,0,104,0,0,0,103,0,98,0,98,0,110,0,115,0,0,0,103,0,98,0,98,0,111,0,108,0,0,0,103,0,98,0,98,0,112,0,108,0,0,0,103,0,98,0,98,0,114,0,121,0,0,0,103,0,98,0,98,0,115,0,116,0,0,0,103,0,98,0,98,0,117,0,114,0,0,0,103,0,98,0,99,0,97,0,109,0,0,0,103,0,98,0,99,0,97,0,121,0,0,0,103,0,98,0,99,0,98,0,102,0,0,0,103,0,98,0,99,0,99,0,103,0,0,0,103,0,98,0,99,0,103,0,110,0,0,0,103,0,98,0,99,0,104,0,101,0,0,0,103,0,98,0,99,0,104,0,119,0,0,0,103,0,98,0,99,0,108,0,107,0,0,0,103,0,98,0,99,0,109,0,97,0,0,0,103,0,98,0,99,0,109,0,100,0,0,0,103,0,98,0,99,0,111,0,110,0,0,0,103,0,98,0,99,0,111,0,118,0,0,0,103,0,98,0,99,0,114,0,102,0,0,0,103,0,98,0,99,0,114,0,121,0,0,0,103,0,98,0,99,0,119,0,121,0,0,0,103,0,98,0,100,0,97,0,108,0,0,0,103,0,98,0,100,0,101,0,110,0,0,0,103,0,98,0,100,0,101,0,114,0,0,0,103,0,98,0,100,0,103,0,121,0,0,0,103,0,98,0,100,0,111,0,114,0,0,0,103,0,98,0,100,0,114,0,115,0,0,0,103,0,98,0,100,0,117,0,114,0,0,0,103,0,98,0,101,0,97,0,108,0,0,0,103,0,98,0,101,0,97,0,121,0,0,0,103,0,98,0,101,0,100,0,104,0,0,0,103,0,98,0,101,0,100,0,117,0,0,0,103,0,98,0,101,0,108,0,110,0,0,0,103,0,98,0,101,0,108,0,115,0,0,0,103,0,98,0,101,0,114,0,121,0,0,0,103,0,98,0,101,0,115,0,120,0,0,0,103,0,98,0,102,0,97,0,108,0,0,0,103,0,98,0,102,0,105,0,102,0,0,0,103,0,98,0,102,0,109,0,111,0,0,0,103,0,98,0,103,0,97,0,116,0,0,0,103,0,98,0,103,0,108,0,103,0,0,0,103,0,98,0,103,0,108,0,115,0,0,0,103,0,98,0,104,0,97,0,118,0,0,0,103,0,98,0,104,0,99,0,107,0,0,0,103,0,98,0,104,0,101,0,102,0,0,0,103,0,98,0,104,0,105,0,108,0,0,0,103,0,98,0,104,0,108,0,100,0,0,0,103,0,98,0,104,0,109,0,102,0,0,0,103,0,98,0,104,0,112,0,108,0,0,0,103,0,98,0,104,0,114,0,116,0,0,0,103,0,98,0,104,0,114,0,119,0,0,0,103,0,98,0,104,0,114,0,121,0,0,0,103,0,98,0,105,0,111,0,115,0,0,0,103,0,98,0,105,0,115,0,108,0,0,0,103,0,98,0,105,0,118,0,99,0,0,0,103,0,98,0,107,0,101,0,99,0,0,0,103,0,98,0,107,0,101,0,110,0,0,0,103,0,98,0,107,0,105,0,114,0,0,0,103,0,98,0,107,0,116,0,116,0,0,0,103,0,98,0,107,0,119,0,108,0,0,0,103,0,98,0,108,0,97,0,110,0,0,0,103,0,98,0,108,0,98,0,99,0,0,0,103,0,98,0,108,0,98,0,104,0,0,0,103,0,98,0,108,0,100,0,115,0,0,0,103,0,98,0,108,0,101,0,99,0,0,0,103,0,98,0,108,0,101,0,119,0,0,0,103,0,98,0,108,0,105,0,110,0,0,0,103,0,98,0,108,0,105,0,118,0,0,0,103,0,98,0,108,0,117,0,116,0,0,0,103,0,98,0,109,0,97,0,110,0,0,0,103,0,98,0,109,0,100,0,98,0,0,0,103,0,98,0,109,0,100,0,119,0,0,0,103,0,98,0,109,0,101,0,97,0,0,0,103,0,98,0,109,0,105,0,107,0,0,0,103,0,98,0,109,0,108,0,110,0,0,0,103,0,98,0,109,0,111,0,110,0,0,0,103,0,98,0,109,0,114,0,116,0,0,0,103,0,98,0,109,0,114,0,121,0,0,0,103,0,98,0,109,0,116,0,121,0,0,0,103,0,98,0,109,0,117,0,108,0,0,0,103,0,98,0,110,0,97,0,121,0,0,0,103,0,98,0,110,0,98,0,108,0,0,0,103,0,98,0,110,0,101,0,108,0,0,0,103,0,98,0,110,0,101,0,116,0,0,0,103,0,98,0,110,0,102,0,107,0,0,0,103,0,98,0,110,0,103,0,109,0,0,0,103,0,98,0,110,0,105,0,114,0,0,0,103,0,98,0,110,0,108,0,107,0,0,0,103,0,98,0,110,0,108,0,110,0,0,0,103,0,98,0,110,0,109,0,100,0,0,0,103,0,98,0,110,0,115,0,109,0,0,0,103,0,98,0,110,0,116,0,104,0,0,0,103,0,98,0,110,0,116,0,108,0,0,0,103,0,98,0,110,0,116,0,116,0,0,0,103,0,98,0,110,0,116,0,121,0,0,0,103,0,98,0,110,0,119,0,112,0,0,0,103,0,98,0,110,0,121,0,107,0,0,0,103,0,98,0,111,0,108,0,100,0,0,0,103,0,98,0,111,0,114,0,107,0,0,0,103,0,98,0,111,0,120,0,102,0,0,0,103,0,98,0,112,0,101,0,109,0,0,0,103,0,98,0,112,0,107,0,110,0,0,0,103,0,98,0,112,0,108,0,121,0,0,0,103,0,98,0,112,0,111,0,114,0,0,0,103,0,98,0,112,0,111,0,119,0,0,0,103,0,98,0,112,0,116,0,101,0,0,0,103,0,98,0,114,0,99,0,99,0,0,0,103,0,98,0,114,0,99,0,104,0,0,0,103,0,98,0,114,0,99,0,116,0,0,0,103,0,98,0,114,0,100,0,103,0,0,0,103,0,98,0,114,0,102,0,119,0,0,0,103,0,98,0,114,0,105,0,99,0,0,0,103,0,98,0,114,0,111,0,116,0,0,0,103,0,98,0,114,0,117,0,116,0,0,0,103,0,98,0,115,0,97,0,119,0,0,0,103,0,98,0,115,0,97,0,121,0,0,0,103,0,98,0,115,0,99,0,98,0,0,0,103,0,98,0,115,0,99,0,116,0,0,0,103,0,98,0,115,0,102,0,107,0,0,0,103,0,98,0,115,0,102,0,116,0,0,0,103,0,98,0,115,0,104,0,102,0,0,0,103,0,98,0,115,0,104,0,110,0,0,0,103,0,98,0,115,0,104,0,114,0,0,0,103,0,98,0,115,0,107,0,112,0,0,0,103,0,98,0,115,0,108,0,107,0,0,0,103,0,98,0,115,0,110,0,100,0,0,0,103,0,98,0,115,0,111,0,115,0,0,0,103,0,98,0,115,0,114,0,121,0,0,0,103,0,98,0,115,0,116,0,101,0,0,0,103,0,98,0,115,0,116,0,110,0,0,0,103,0,98,0,115,0,116,0,121,0,0,0,103,0,98,0,115,0,119,0,97,0,0,0,103,0,98,0,115,0,119,0,100,0,0,0,103,0,98,0,115,0,119,0,107,0,0,0,103,0,98,0,116,0,97,0,109,0,0,0,103,0,98,0,116,0,102,0,119,0,0,0,103,0,98,0,116,0,104,0,114,0,0,0,103,0,98,0,116,0,111,0,98,0,0,0,103,0,98,0,116,0,111,0,102,0,0,0,103,0,98,0,116,0,114,0,102,0,0,0,103,0,98,0,116,0,119,0,104,0,0,0,103,0,98,0,119,0,97,0,114,0,0,0,103,0,98,0,119,0,98,0,107,0,0,0,103,0,98,0,119,0,100,0,117,0,0,0,103,0,98,0,119,0,102,0,116,0,0,0,103,0,98,0,119,0,103,0,110,0,0,0,103,0,98,0,119,0,105,0,108,0,0,0,103,0,98,0,119,0,107,0,102,0,0,0,103,0,98,0,119,0,108,0,108,0,0,0,103,0,98,0,119,0,108,0,115,0,0,0,103,0,98,0,119,0,110,0,100,0,0,0,103,0,98,0,119,0,110,0,109,0,0,0,103,0,98,0,119,0,111,0,114,0,0,0,103,0,98,0,119,0,114,0,108,0,0,0,103,0,98,0,119,0,114,0,116,0,0,0,103,0,98,0,119,0,114,0,120,0,0,0,103,0,98,0,119,0,115,0,109,0,0,0,103,0,98,0,119,0,115,0,120,0,0,0,103,0,109,0,108,0,126,0,110,0,0,0,105,0,115,0,97,0,107,0,104,0,0,0,105,0,115,0,97,0,107,0,110,0,0,0,105,0,115,0,97,0,107,0,117,0,0,0,105,0,115,0,97,0,115,0,97,0,0,0,105,0,115,0,98,0,108,0,97,0,0,0,105,0,115,0,98,0,108,0,111,0,0,0,105,0,115,0,98,0,111,0,103,0,0,0,105,0,115,0,100,0,97,0,98,0,0,0,105,0,115,0,100,0,97,0,118,0,0,0,105,0,115,0,101,0,111,0,109,0,0,0,105,0,115,0,101,0,121,0,102,0,0,0,105,0,115,0,102,0,106,0,100,0,0,0,105,0,115,0,102,0,106,0,108,0,0,0,105,0,115,0,103,0,97,0,114,0,0,0,105,0,115,0,103,0,111,0,103,0,0,0,105,0,115,0,103,0,114,0,110,0,0,0,105,0,115,0,103,0,114,0,117,0,0,0,105,0,115,0,103,0,114,0,121,0,0,0,105,0,115,0,104,0,97,0,102,0,0,0,105,0,115,0,104,0,101,0,108,0,0,0,105,0,115,0,104,0,114,0,103,0,0,0,105,0,115,0,104,0,114,0,117,0,0,0,105,0,115,0,104,0,117,0,116,0,0,0,105,0,115,0,104,0,117,0,118,0,0,0,105,0,115,0,104,0,118,0,97,0,0,0,105,0,115,0,107,0,97,0,108,0,0,0,105,0,115,0,107,0,106,0,111,0,0,0,105,0,115,0,107,0,111,0,112,0,0,0,105,0,115,0,108,0,97,0,110,0,0,0,105,0,115,0,109,0,111,0,115,0,0,0,105,0,115,0,109,0,121,0,114,0,0,0,105,0,115,0,110,0,111,0,114,0,0,0,105,0,115,0,114,0,103,0,121,0,0,0,105,0,115,0,114,0,104,0,104,0,0,0,105,0,115,0,114,0,107,0,118,0,0,0,105,0,115,0,115,0,98,0,116,0,0,0,105,0,115,0,115,0,100,0,118,0,0,0,105,0,115,0,115,0,101,0,108,0,0,0,105,0,115,0,115,0,102,0,97,0,0,0,105,0,115,0,115,0,104,0,102,0,0,0,105,0,115,0,115,0,107,0,111,0,0,0,105,0,115,0,115,0,107,0,117,0,0,0,105,0,115,0,115,0,110,0,102,0,0,0,105,0,115,0,115,0,111,0,103,0,0,0,105,0,115,0,115,0,111,0,108,0,0,0,105,0,115,0,115,0,115,0,102,0,0,0,105,0,115,0,115,0,115,0,115,0,0,0,105,0,115,0,115,0,116,0,114,0,0,0,105,0,115,0,115,0,118,0,103,0,0,0,105,0,115,0,116,0,97,0,108,0,0,0,105,0,115,0,116,0,104,0,103,0,0,0,105,0,115,0,116,0,106,0,111,0,0,0,105,0,115,0,118,0,101,0,114,0,0,0,105,0,115,0,118,0,111,0,112,0,0,0,107,0,122,0,97,0,107,0,109,0,0,0,107,0,122,0,97,0,107,0,116,0,0,0,107,0,122,0,97,0,108,0,109,0,0,0,107,0,122,0,97,0,115,0,116,0,0,0,107,0,122,0,97,0,116,0,121,0,0,0,107,0,122,0,107,0,97,0,114,0,0,0,107,0,122,0,107,0,117,0,115,0,0,0,107,0,122,0,107,0,122,0,121,0,0,0,107,0,122,0,109,0,97,0,110,0,0,0,107,0,122,0,112,0,97,0,118,0,0,0,107,0,122,0,115,0,101,0,118,0,0,0,107,0,122,0,118,0,111,0,115,0,0,0,107,0,122,0,122,0,97,0,112,0,0,0,108,0,118,0,48,0,48,0,50,0,0,0,108,0,118,0,48,0,48,0,55,0,0,0,108,0,118,0,48,0,50,0,50,0,0,0,108,0,118,0,48,0,50,0,54,0,0,0,108,0,118,0,48,0,51,0,51,0,0,0,108,0,118,0,48,0,52,0,55,0,0,0,108,0,118,0,48,0,53,0,48,0,0,0,108,0,118,0,48,0,54,0,50,0,0,0,108,0,118,0,48,0,55,0,51,0,0,0,108,0,118,0,48,0,55,0,55,0,0,0,108,0,118,0,48,0,56,0,48,0,0,0,108,0,118,0,48,0,57,0,49,0,0,0,108,0,118,0,48,0,57,0,52,0,0,0,108,0,118,0,48,0,57,0,55,0,0,0,108,0,118,0,48,0,57,0,57,0,0,0,108,0,118,0,49,0,48,0,54,0,0,0,108,0,118,0,106,0,101,0,108,0,0,0,108,0,118,0,106,0,117,0,114,0,0,0,108,0,118,0,114,0,101,0,122,0,0,0,108,0,118,0,114,0,105,0,120,0,0,0,109,0,97,0,97,0,103,0,100,0,0,0,109,0,97,0,97,0,111,0,117,0,0,0,109,0,97,0,97,0,115,0,122,0,0,0,109,0,97,0,97,0,122,0,105,0,0,0,109,0,97,0,98,0,111,0,100,0,0,0,109,0,97,0,98,0,111,0,109,0,0,0,109,0,97,0,98,0,114,0,114,0,0,0,109,0,97,0,99,0,97,0,115,0,0,0,109,0,97,0,99,0,104,0,101,0,0,0,109,0,97,0,99,0,104,0,105,0,0,0,109,0,97,0,100,0,114,0,105,0,0,0,109,0,97,0,101,0,114,0,114,0,0,0,109,0,97,0,101,0,115,0,105,0,0,0,109,0,97,0,102,0,97,0,104,0,0,0,109,0,97,0,102,0,101,0,115,0,0,0,109,0,97,0,102,0,105,0,103,0,0,0,109,0,97,0,102,0,113,0,104,0,0,0,109,0,97,0,104,0,97,0,106,0,0,0,109,0,97,0,104,0,97,0,111,0,0,0,109,0,97,0,104,0,111,0,99,0,0,0,109,0,97,0,105,0,102,0,114,0,0,0,109,0,97,0,106,0,100,0,105,0,0,0,109,0,97,0,106,0,114,0,97,0,0,0,109,0,97,0,107,0,101,0,110,0,0,0,109,0,97,0,107,0,101,0,115,0,0,0,109,0,97,0,107,0,104,0,101,0,0,0,109,0,97,0,108,0,97,0,97,0,0,0,109,0,97,0,108,0,97,0,114,0,0,0,109,0,97,0,109,0,100,0,102,0,0,0,109,0,97,0,109,0,101,0,100,0,0,0,109,0,97,0,109,0,101,0,107,0,0,0,109,0,97,0,109,0,105,0,100,0,0,0,109,0,97,0,109,0,111,0,104,0,0,0,109,0,97,0,109,0,111,0,117,0,0,0,109,0,97,0,110,0,111,0,117,0,0,0,109,0,97,0,111,0,117,0,97,0,0,0,109,0,97,0,111,0,117,0,100,0,0,0,109,0,97,0,111,0,117,0,106,0,0,0,109,0,97,0,111,0,117,0,122,0,0,0,109,0,97,0,114,0,97,0,98,0,0,0,109,0,97,0,114,0,101,0,104,0,0,0,109,0,97,0,115,0,97,0,102,0,0,0,109,0,97,0,115,0,97,0,108,0,0,0,109,0,97,0,115,0,105,0,98,0,0,0,109,0,97,0,115,0,105,0,102,0,0,0,109,0,97,0,115,0,107,0,104,0,0,0,109,0,97,0,116,0,97,0,102,0,0,0,109,0,97,0,116,0,97,0,105,0,0,0,109,0,97,0,116,0,97,0,111,0,0,0,109,0,97,0,116,0,97,0,114,0,0,0,109,0,97,0,116,0,97,0,116,0,0,0,109,0,97,0,116,0,101,0,116,0,0,0,109,0,97,0,116,0,105,0,110,0,0,0,109,0,97,0,116,0,105,0,122,0,0,0,109,0,97,0,116,0,110,0,103,0,0,0,109,0,97,0,116,0,110,0,116,0,0,0,109,0,97,0,121,0,117,0,115,0,0,0,109,0,97,0,122,0,97,0,103,0,0,0,109,0,104,0,97,0,114,0,110,0,0,0,109,0,104,0,97,0,117,0,114,0,0,0,109,0,104,0,101,0,110,0,105,0,0,0,109,0,104,0,106,0,97,0,98,0,0,0,109,0,104,0,106,0,97,0,108,0,0,0,109,0,104,0,107,0,119,0,97,0,0,0,109,0,104,0,108,0,97,0,101,0,0,0,109,0,104,0,108,0,105,0,98,0,0,0,109,0,104,0,108,0,105,0,107,0,0,0,109,0,104,0,109,0,97,0,106,0,0,0,109,0,104,0,109,0,97,0,108,0,0,0,109,0,104,0,109,0,101,0,106,0,0,0,109,0,104,0,109,0,105,0,108,0,0,0,109,0,104,0,110,0,109,0,117,0,0,0,109,0,104,0,114,0,111,0,110,0,0,0,109,0,104,0,117,0,106,0,97,0,0,0,109,0,104,0,119,0,116,0,104,0,0,0,109,0,104,0,119,0,116,0,106,0,0,0,109,0,107,0,51,0,48,0,49,0,0,0,109,0,108,0,98,0,107,0,111,0,0,0,109,0,110,0,48,0,51,0,55,0,0,0,109,0,110,0,48,0,52,0,49,0,0,0,109,0,110,0,48,0,52,0,51,0,0,0,109,0,110,0,48,0,52,0,57,0,0,0,109,0,110,0,48,0,53,0,49,0,0,0,109,0,110,0,48,0,53,0,51,0,0,0,109,0,110,0,48,0,53,0,53,0,0,0,109,0,110,0,48,0,53,0,55,0,0,0,109,0,110,0,48,0,53,0,57,0,0,0,109,0,110,0,48,0,54,0,55,0,0,0,109,0,110,0,48,0,54,0,57,0,0,0,109,0,110,0,48,0,55,0,49,0,0,0,109,0,110,0,48,0,55,0,51,0,0,0,109,0,118,0,109,0,108,0,101,0,0,0,109,0,120,0,97,0,103,0,117,0,0,0,109,0,120,0,98,0,99,0,110,0,0,0,109,0,120,0,98,0,99,0,115,0,0,0,109,0,120,0,99,0,97,0,109,0,0,0,109,0,120,0,99,0,104,0,104,0,0,0,109,0,120,0,99,0,104,0,112,0,0,0,109,0,120,0,99,0,109,0,120,0,0,0,109,0,120,0,99,0,111,0,108,0,0,0,109,0,120,0,100,0,117,0,114,0,0,0,109,0,120,0,103,0,117,0,97,0,0,0,109,0,120,0,106,0,97,0,108,0,0,0,109,0,120,0,109,0,101,0,120,0,0,0,109,0,120,0,109,0,105,0,99,0,0,0,109,0,120,0,109,0,111,0,114,0,0,0,109,0,120,0,110,0,97,0,121,0,0,0,109,0,120,0,111,0,97,0,120,0,0,0,109,0,120,0,112,0,117,0,101,0,0,0,109,0,120,0,113,0,117,0,101,0,0,0,109,0,120,0,114,0,111,0,111,0,0,0,109,0,120,0,115,0,105,0,110,0,0,0,109,0,120,0,115,0,108,0,112,0,0,0,109,0,120,0,115,0,111,0,110,0,0,0,109,0,120,0,116,0,97,0,98,0,0,0,109,0,120,0,116,0,108,0,97,0,0,0,109,0,120,0,121,0,117,0,99,0,0,0,109,0,120,0,122,0,97,0,99,0,0,0,109,0,122,0,109,0,112,0,109,0,0,0,110,0,122,0,97,0,117,0,107,0,0,0,110,0,122,0,99,0,97,0,110,0,0,0,110,0,122,0,99,0,105,0,116,0,0,0,110,0,122,0,103,0,105,0,115,0,0,0,110,0,122,0,104,0,107,0,98,0,0,0,110,0,122,0,109,0,98,0,104,0,0,0,110,0,122,0,109,0,119,0,116,0,0,0,110,0,122,0,110,0,115,0,110,0,0,0,110,0,122,0,110,0,116,0,108,0,0,0,110,0,122,0,111,0,116,0,97,0,0,0,110,0,122,0,115,0,116,0,108,0,0,0,110,0,122,0,116,0,97,0,115,0,0,0,110,0,122,0,116,0,107,0,105,0,0,0,110,0,122,0,119,0,116,0,99,0,0,0,111,0,116,0,104,0,101,0,114,0,0,0,112,0,101,0,97,0,109,0,97,0,0,0,112,0,101,0,97,0,110,0,99,0,0,0,112,0,101,0,97,0,112,0,117,0,0,0,112,0,101,0,97,0,114,0,101,0,0,0,112,0,101,0,97,0,121,0,97,0,0,0,112,0,101,0,99,0,97,0,106,0,0,0,112,0,101,0,99,0,97,0,108,0,0,0,112,0,101,0,99,0,117,0,115,0,0,0,112,0,101,0,104,0,117,0,99,0,0,0,112,0,101,0,104,0,117,0,118,0,0,0,112,0,101,0,105,0,99,0,97,0,0,0,112,0,101,0,106,0,117,0,110,0,0,0,112,0,101,0,108,0,105,0,109,0,0,0,112,0,101,0,108,0,109,0,97,0,0,0,112,0,101,0,108,0,111,0,114,0,0,0,112,0,101,0,109,0,100,0,100,0,0,0,112,0,101,0,109,0,111,0,113,0,0,0,112,0,101,0,112,0,97,0,115,0,0,0,112,0,101,0,112,0,117,0,110,0,0,0,112,0,101,0,115,0,97,0,109,0,0,0,112,0,101,0,116,0,97,0,99,0,0,0,112,0,101,0,117,0,99,0,97,0,0,0,112,0,103,0,99,0,112,0,107,0,0,0,112,0,103,0,99,0,112,0,109,0,0,0,112,0,103,0,101,0,104,0,103,0,0,0,112,0,103,0,101,0,112,0,119,0,0,0,112,0,103,0,101,0,115,0,119,0,0,0,112,0,103,0,103,0,112,0,107,0,0,0,112,0,103,0,104,0,108,0,97,0,0,0,112,0,103,0,106,0,119,0,107,0,0,0,112,0,103,0,109,0,98,0,97,0,0,0,112,0,103,0,109,0,114,0,108,0,0,0,112,0,103,0,110,0,99,0,100,0,0,0,112,0,103,0,110,0,105,0,107,0,0,0,112,0,103,0,110,0,112,0,112,0,0,0,112,0,103,0,110,0,115,0,98,0,0,0,112,0,103,0,115,0,97,0,110,0,0,0,112,0,103,0,115,0,104,0,109,0,0,0,112,0,103,0,119,0,98,0,107,0,0,0,112,0,103,0,119,0,104,0,109,0,0,0,112,0,103,0,119,0,112,0,100,0,0,0,112,0,104,0,97,0,98,0,114,0,0,0,112,0,104,0,97,0,103,0,110,0,0,0,112,0,104,0,97,0,103,0,115,0,0,0,112,0,104,0,97,0,107,0,108,0,0,0,112,0,104,0,97,0,108,0,98,0,0,0,112,0,104,0,97,0,110,0,116,0,0,0,112,0,104,0,97,0,112,0,97,0,0,0,112,0,104,0,97,0,117,0,114,0,0,0,112,0,104,0,98,0,97,0,110,0,0,0,112,0,104,0,98,0,97,0,115,0,0,0,112,0,104,0,98,0,101,0,110,0,0,0,112,0,104,0,98,0,105,0,108,0,0,0,112,0,104,0,98,0,116,0,103,0,0,0,112,0,104,0,98,0,116,0,110,0,0,0,112,0,104,0,99,0,97,0,103,0,0,0,112,0,104,0,99,0,97,0,112,0,0,0,112,0,104,0,99,0,97,0,118,0,0,0,112,0,104,0,99,0,111,0,109,0,0,0,112,0,104,0,100,0,97,0,115,0,0,0,112,0,104,0,100,0,97,0,118,0,0,0,112,0,104,0,100,0,105,0,110,0,0,0,112,0,104,0,100,0,118,0,111,0,0,0,112,0,104,0,101,0,97,0,115,0,0,0,112,0,104,0,105,0,108,0,110,0,0,0,112,0,104,0,105,0,115,0,97,0,0,0,112,0,104,0,107,0,97,0,108,0,0,0,112,0,104,0,108,0,97,0,103,0,0,0,112,0,104,0,108,0,97,0,110,0,0,0,112,0,104,0,108,0,97,0,115,0,0,0,112,0,104,0,108,0,101,0,121,0,0,0,112,0,104,0,108,0,117,0,110,0,0,0,112,0,104,0,109,0,97,0,100,0,0,0,112,0,104,0,109,0,97,0,103,0,0,0,112,0,104,0,109,0,97,0,115,0,0,0,112,0,104,0,109,0,100,0,99,0,0,0,112,0,104,0,109,0,100,0,114,0,0,0,112,0,104,0,109,0,111,0,117,0,0,0,112,0,104,0,109,0,115,0,99,0,0,0,112,0,104,0,109,0,115,0,114,0,0,0,112,0,104,0,110,0,99,0,111,0,0,0,112,0,104,0,110,0,101,0,99,0,0,0,112,0,104,0,110,0,101,0,114,0,0,0,112,0,104,0,110,0,115,0,97,0,0,0,112,0,104,0,110,0,117,0,101,0,0,0,112,0,104,0,110,0,117,0,118,0,0,0,112,0,104,0,112,0,108,0,119,0,0,0,112,0,104,0,113,0,117,0,101,0,0,0,112,0,104,0,113,0,117,0,105,0,0,0,112,0,104,0,114,0,105,0,122,0,0,0,112,0,104,0,114,0,111,0,109,0,0,0,112,0,104,0,115,0,97,0,114,0,0,0,112,0,104,0,115,0,99,0,111,0,0,0,112,0,104,0,115,0,105,0,103,0,0,0,112,0,104,0,115,0,108,0,117,0,0,0,112,0,104,0,115,0,111,0,114,0,0,0,112,0,104,0,115,0,117,0,110,0,0,0,112,0,104,0,115,0,117,0,114,0,0,0,112,0,104,0,116,0,97,0,119,0,0,0,112,0,104,0,119,0,115,0,97,0,0,0,112,0,104,0,122,0,97,0,110,0,0,0,112,0,104,0,122,0,109,0,98,0,0,0,112,0,104,0,122,0,115,0,105,0,0,0,112,0,115,0,98,0,116,0,104,0,0,0,112,0,115,0,100,0,101,0,98,0,0,0,112,0,115,0,104,0,98,0,110,0,0,0,112,0,115,0,106,0,114,0,104,0,0,0,112,0,115,0,107,0,121,0,115,0,0,0,112,0,115,0,110,0,98,0,115,0,0,0,112,0,115,0,110,0,103,0,122,0,0,0,112,0,115,0,113,0,113,0,97,0,0,0,112,0,115,0,114,0,98,0,104,0,0,0,112,0,115,0,114,0,102,0,104,0,0,0,112,0,115,0,115,0,108,0,116,0,0,0,112,0,115,0,116,0,98,0,115,0,0,0,112,0,115,0,116,0,107,0,109,0,0,0,112,0,119,0,50,0,50,0,52,0,0,0,112,0,119,0,51,0,53,0,48,0,0,0,112,0,119,0,51,0,55,0,48,0,0,0,112,0,121,0,97,0,115,0,117,0,0,0,114,0,117,0,97,0,108,0,116,0,0,0,114,0,117,0,97,0,109,0,117,0,0,0,114,0,117,0,97,0,115,0,116,0,0,0,114,0,117,0,98,0,101,0,108,0,0,0,114,0,117,0,98,0,114,0,121,0,0,0,114,0,117,0,99,0,104,0,101,0,0,0,114,0,117,0,99,0,104,0,117,0,0,0,114,0,117,0,105,0,118,0,97,0,0,0,114,0,117,0,107,0,101,0,109,0,0,0,114,0,117,0,107,0,103,0,100,0,0,0,114,0,117,0,107,0,104,0,97,0,0,0,114,0,117,0,107,0,104,0,109,0,0,0,114,0,117,0,107,0,105,0,114,0,0,0,114,0,117,0,107,0,108,0,117,0,0,0,114,0,117,0,107,0,111,0,115,0,0,0,114,0,117,0,107,0,114,0,115,0,0,0,114,0,117,0,107,0,121,0,97,0,0,0,114,0,117,0,108,0,101,0,110,0,0,0,114,0,117,0,108,0,105,0,112,0,0,0,114,0,117,0,109,0,97,0,103,0,0,0,114,0,117,0,109,0,111,0,115,0,0,0,114,0,117,0,109,0,111,0,119,0,0,0,114,0,117,0,109,0,117,0,114,0,0,0,114,0,117,0,110,0,101,0,110,0,0,0,114,0,117,0,110,0,103,0,114,0,0,0,114,0,117,0,110,0,105,0,122,0,0,0,114,0,117,0,110,0,118,0,115,0,0,0,114,0,117,0,111,0,109,0,115,0,0,0,114,0,117,0,111,0,114,0,108,0,0,0,114,0,117,0,112,0,101,0,114,0,0,0,114,0,117,0,112,0,110,0,122,0,0,0,114,0,117,0,112,0,114,0,105,0,0,0,114,0,117,0,112,0,115,0,107,0,0,0,114,0,117,0,114,0,111,0,115,0,0,0,114,0,117,0,114,0,121,0,97,0,0,0,114,0,117,0,115,0,97,0,109,0,0,0,114,0,117,0,115,0,112,0,101,0,0,0,114,0,117,0,115,0,116,0,97,0,0,0,114,0,117,0,116,0,97,0,109,0,0,0,114,0,117,0,116,0,111,0,109,0,0,0,114,0,117,0,116,0,117,0,108,0,0,0,114,0,117,0,116,0,118,0,101,0,0,0,114,0,117,0,116,0,121,0,117,0,0,0,114,0,117,0,117,0,108,0,121,0,0,0,114,0,117,0,118,0,103,0,103,0,0,0,114,0,117,0,118,0,108,0,97,0,0,0,114,0,117,0,118,0,108,0,103,0,0,0,114,0,117,0,121,0,97,0,110,0,0,0,114,0,117,0,121,0,101,0,118,0,0,0,116,0,116,0,97,0,114,0,105,0,0,0,116,0,116,0,99,0,104,0,97,0,0,0,116,0,116,0,99,0,116,0,116,0,0,0,116,0,116,0,100,0,109,0,110,0,0,0,116,0,116,0,109,0,114,0,99,0,0,0,116,0,116,0,112,0,101,0,100,0,0,0,116,0,116,0,112,0,111,0,115,0,0,0,116,0,116,0,112,0,114,0,116,0,0,0,116,0,116,0,112,0,116,0,102,0,0,0,116,0,116,0,115,0,103,0,101,0,0,0,116,0,116,0,115,0,105,0,112,0,0,0,116,0,116,0,115,0,106,0,108,0,0,0,116,0,116,0,116,0,111,0,98,0,0,0,116,0,116,0,116,0,117,0,112,0,0,0,116,0,118,0,102,0,117,0,110,0,0,0,116,0,118,0,110,0,105,0,116,0,0,0,116,0,118,0,110,0,107,0,102,0,0,0,116,0,118,0,110,0,107,0,108,0,0,0,116,0,118,0,110,0,109,0,97,0,0,0,116,0,118,0,110,0,109,0,103,0,0,0,116,0,118,0,110,0,117,0,105,0,0,0,116,0,118,0,118,0,97,0,105,0,0,0,116,0,119,0,99,0,104,0,97,0,0,0,116,0,119,0,99,0,121,0,105,0,0,0,116,0,119,0,99,0,121,0,113,0,0,0,116,0,119,0,104,0,115,0,122,0,0,0,116,0,119,0,104,0,117,0,97,0,0,0,116,0,119,0,105,0,108,0,97,0,0,0,116,0,119,0,107,0,101,0,101,0,0,0,116,0,119,0,107,0,104,0,104,0,0,0,116,0,119,0,107,0,105,0,110,0,0,0,116,0,119,0,108,0,105,0,101,0,0,0,116,0,119,0,109,0,105,0,97,0,0,0,116,0,119,0,110,0,119,0,116,0,0,0,116,0,119,0,112,0,101,0,110,0,0,0,116,0,119,0,112,0,105,0,102,0,0,0,116,0,119,0,116,0,97,0,111,0,0,0,116,0,119,0,116,0,112,0,101,0,0,0,116,0,119,0,116,0,116,0,116,0,0,0,116,0,119,0,116,0,120,0,103,0,0,0,116,0,119,0,121,0,117,0,110,0,0,0,118,0,117,0,109,0,97,0,112,0,0,0,118,0,117,0,112,0,97,0,109,0,0,0,118,0,117,0,115,0,97,0,109,0,0,0,118,0,117,0,116,0,111,0,98,0,0,0,122,0,97,0,107,0,122,0,110,0,0,0,99,0,122,0,50,0,48,0,52,0,0,0,99,0,122,0,51,0,49,0,50,0,0,0,99,0,122,0,51,0,49,0,54,0,0,0,99,0,122,0,53,0,51,0,49,0,0,0,99,0,122,0,53,0,51,0,50,0,0,0,99,0,122,0,53,0,51,0,52,0,0,0,99,0,122,0,54,0,52,0,50,0,0,0,99,0,122,0,55,0,50,0,52,0,0,0,99,0,122,0,56,0,48,0,52,0,0,0,101,0,101,0,52,0,52,0,50,0,0,0,101,0,101,0,55,0,57,0,50,0,0,0,102,0,114,0,108,0,114,0,101,0,0,0,103,0,97,0,108,0,108,0,111,0,0,0,103,0,98,0,97,0,114,0,109,0,0,0,103,0,98,0,98,0,100,0,102,0,0,0,103,0,98,0,100,0,103,0,110,0,0,0,103,0,98,0,100,0,114,0,121,0,0,0,103,0,98,0,101,0,110,0,102,0,0,0,103,0,98,0,102,0,101,0,114,0,0,0,103,0,98,0,108,0,115,0,98,0,0,0,103,0,98,0,115,0,116,0,115,0,0,0,105,0,115,0,100,0,106,0,117,0,0,0,105,0,115,0,115,0,101,0,121,0,0,0,105,0,115,0,115,0,107,0,103,0,0,0,108,0,118,0,48,0,49,0,53,0,0,0,108,0,118,0,48,0,49,0,54,0,0,0,108,0,118,0,48,0,52,0,48,0,0,0,108,0,118,0,48,0,53,0,49,0,0,0,108,0,118,0,48,0,53,0,51,0,0,0,108,0,118,0,48,0,54,0,56,0,0,0,108,0,118,0,48,0,57,0,48,0,0,0,108,0,118,0,49,0,49,0,50,0,0,0,109,0,107,0,51,0,48,0,52,0,0,0,109,0,107,0,51,0,48,0,56,0,0,0,109,0,107,0,53,0,48,0,56,0,0,0,109,0,107,0,55,0,48,0,51,0,0,0,109,0,107,0,55,0,48,0,53,0,0,0,109,0,107,0,56,0,49,0,48,0,0,0,109,0,110,0,48,0,54,0,52,0,0,0,111,0,115,0,111,0,106,0,115,0,0,0,112,0,115,0,106,0,101,0,110,0,0,0,112,0,119,0,50,0,50,0,54,0,0,0,115,0,105,0,48,0,48,0,51,0,0,0,115,0,105,0,48,0,48,0,56,0,0,0,115,0,105,0,48,0,49,0,50,0,0,0,115,0,105,0,48,0,50,0,48,0,0,0,115,0,105,0,48,0,50,0,52,0,0,0,115,0,105,0,48,0,50,0,56,0,0,0,115,0,105,0,48,0,51,0,49,0,0,0,115,0,105,0,48,0,51,0,50,0,0,0,115,0,105,0,48,0,51,0,52,0,0,0,115,0,105,0,48,0,51,0,54,0,0,0,115,0,105,0,48,0,52,0,52,0,0,0,115,0,105,0,48,0,52,0,56,0,0,0,115,0,105,0,48,0,54,0,48,0,0,0,115,0,105,0,48,0,55,0,48,0,0,0,115,0,105,0,48,0,55,0,50,0,0,0,115,0,105,0,48,0,55,0,52,0,0,0,115,0,105,0,48,0,55,0,54,0,0,0,115,0,105,0,48,0,56,0,52,0,0,0,115,0,105,0,48,0,56,0,54,0,0,0,115,0,105,0,48,0,57,0,50,0,0,0,115,0,105,0,48,0,57,0,54,0,0,0,115,0,105,0,49,0,50,0,48,0,0,0,115,0,105,0,49,0,52,0,48,0,0,0,115,0,105,0,49,0,52,0,50,0,0,0,115,0,105,0,49,0,52,0,51,0,0,0,115,0,105,0,49,0,52,0,56,0,0,0,115,0,105,0,49,0,53,0,49,0,0,0,115,0,105,0,49,0,53,0,52,0,0,0,115,0,105,0,49,0,53,0,53,0,0,0,115,0,105,0,49,0,53,0,56,0,0,0,115,0,105,0,49,0,54,0,50,0,0,0,115,0,105,0,49,0,54,0,54,0,0,0,115,0,105,0,49,0,55,0,53,0,0,0,115,0,105,0,49,0,55,0,56,0,0,0,115,0,105,0,49,0,56,0,52,0,0,0,115,0,105,0,49,0,57,0,54,0,0,0,117,0,103,0,50,0,51,0,48,0,0,0,117,0,103,0,50,0,51,0,49,0,0,0,117,0,103,0,50,0,51,0,51,0,0,0,117,0,103,0,50,0,51,0,52,0,0,0,117,0,103,0,51,0,51,0,52,0,0,0,117,0,103,0,51,0,51,0,54,0,0,0,117,0,103,0,52,0,50,0,56,0,0,0,109,0,97,0,115,0,105,0,107,0,0,0,115,0,111,0,116,0,97,0,118,0,0,0,48,0,48,0,49,0,126,0,51,0,0,0,48,0,49,0,51,0,126,0,53,0,0,0,48,0,51,0,52,0,126,0,53,0,0,0,48,0,53,0,51,0,126,0,52,0,0,0,49,0,52,0,50,0,126,0,51,0,0,0,49,0,53,0,48,0,126,0,49,0,0,0,65,0,82,0,76,0,126,0,77,0,0,0,66,0,71,0,76,0,126,0,77,0,0,0,66,0,82,0,66,0,126,0,67,0,0,0,67,0,76,0,69,0,126,0,70,0,0,0,69,0,83,0,65,0,126,0,66,0,0,0,72,0,75,0,43,0,77,0,79,0,0,0,88,0,66,0,65,0,126,0,68,0,0,0,89,0,85,0,77,0,126,0,78,0,0,0,97,0,97,0,97,0,126,0,105,0,0,0,97,0,97,0,107,0,126,0,108,0,0,0,97,0,97,0,110,0,126,0,113,0,0,0,97,0,97,0,115,0,126,0,120,0,0,0,97,0,98,0,97,0,126,0,106,0,0,0,97,0,98,0,108,0,126,0,122,0,0,0,97,0,99,0,97,0,126,0,98,0,0,0,97,0,99,0,100,0,126,0,102,0,0,0,97,0,99,0,104,0,126,0,105,0,0,0,97,0,99,0,107,0,126,0,110,0,0,0,97,0,99,0,112,0,126,0,122,0,0,0,97,0,100,0,97,0,126,0,98,0,0,0,97,0,100,0,100,0,126,0,106,0,0,0,97,0,100,0,110,0,126,0,111,0,0,0,97,0,100,0,113,0,126,0,117,0,0,0,97,0,100,0,119,0,126,0,122,0,0,0,97,0,101,0,97,0,126,0,101,0,0,0,97,0,101,0,107,0,126,0,110,0,0,0,97,0,101,0,113,0,126,0,115,0,0,0,97,0,101,0,121,0,126,0,122,0,0,0,97,0,102,0,97,0,126,0,98,0,0,0,97,0,102,0,98,0,97,0,108,0,0,0,97,0,102,0,98,0,97,0,109,0,0,0,97,0,102,0,100,0,126,0,101,0,0,0,97,0,102,0,103,0,126,0,105,0,0,0,97,0,102,0,110,0,126,0,112,0,0,0,97,0,102,0,115,0,126,0,117,0,0,0,97,0,103,0,97,0,126,0,111,0,0,0,97,0,103,0,113,0,126,0,122,0,0,0,97,0,104,0,97,0,126,0,98,0,0,0,97,0,104,0,103,0,126,0,105,0,0,0,97,0,104,0,107,0,126,0,112,0,0,0,97,0,104,0,114,0,126,0,116,0,0,0,97,0,105,0,97,0,126,0,114,0,0,0,97,0,105,0,119,0,126,0,121,0,0,0,97,0,106,0,116,0,126,0,117,0,0,0,97,0,107,0,98,0,126,0,109,0,0,0,97,0,107,0,111,0,126,0,122,0,0,0,97,0,108,0,99,0,126,0,114,0,0,0,97,0,108,0,116,0,126,0,122,0,0,0,97,0,108,0,117,0,107,0,117,0,0,0,97,0,109,0,97,0,126,0,99,0,0,0,97,0,109,0,101,0,126,0,103,0,0,0,97,0,109,0,105,0,126,0,122,0,0,0,97,0,110,0,97,0,126,0,122,0,0,0,97,0,111,0,97,0,126,0,103,0,0,0,97,0,111,0,99,0,110,0,110,0,0,0,97,0,111,0,99,0,110,0,111,0,0,0,97,0,111,0,105,0,126,0,110,0,0,0,97,0,111,0,114,0,126,0,117,0,0,0,97,0,112,0,97,0,126,0,122,0,0,0,97,0,113,0,99,0,126,0,100,0,0,0,97,0,113,0,107,0,126,0,110,0,0,0,97,0,114,0,97,0,126,0,104,0,0,0,97,0,114,0,99,0,126,0,101,0,0,0,97,0,114,0,104,0,126,0,108,0,0,0,97,0,114,0,106,0,126,0,110,0,0,0,97,0,114,0,110,0,126,0,122,0,0,0,97,0,114,0,112,0,126,0,122,0,0,0,97,0,115,0,97,0,126,0,99,0,0,0,97,0,115,0,101,0,126,0,108,0,0,0,97,0,115,0,110,0,126,0,122,0,0,0,97,0,116,0,49,0,126,0,57,0,0,0,97,0,116,0,97,0,126,0,101,0,0,0,97,0,116,0,103,0,126,0,122,0,0,0,97,0,117,0,97,0,126,0,100,0,0,0,97,0,117,0,102,0,126,0,117,0,0,0,97,0,117,0,119,0,126,0,122,0,0,0,97,0,118,0,107,0,126,0,111,0,0,0,97,0,118,0,115,0,126,0,118,0,0,0,97,0,119,0,97,0,126,0,101,0,0,0,97,0,119,0,103,0,126,0,105,0,0,0,97,0,119,0,109,0,126,0,111,0,0,0,97,0,119,0,114,0,126,0,121,0,0,0,97,0,120,0,107,0,126,0,109,0,0,0,97,0,121,0,97,0,126,0,101,0,0,0,97,0,121,0,103,0,126,0,105,0,0,0,97,0,121,0,107,0,126,0,108,0,0,0,97,0,121,0,110,0,126,0,113,0,0,0,97,0,121,0,115,0,126,0,117,0,0,0,97,0,121,0,120,0,126,0,121,0,0,0,97,0,122,0,97,0,126,0,100,0,0,0,97,0,122,0,109,0,126,0,111,0,0,0,97,0,122,0,115,0,97,0,107,0,0,0,97,0,122,0,115,0,97,0,108,0,0,0,97,0,122,0,122,0,97,0,113,0,0,0,98,0,97,0,97,0,126,0,106,0,0,0,98,0,97,0,110,0,126,0,112,0,0,0,98,0,97,0,114,0,108,0,97,0,0,0,98,0,97,0,114,0,126,0,121,0,0,0,98,0,98,0,97,0,126,0,121,0,0,0,98,0,99,0,97,0,126,0,98,0,0,0,98,0,99,0,100,0,126,0,107,0,0,0,98,0,99,0,109,0,126,0,119,0,0,0,98,0,99,0,121,0,126,0,122,0,0,0,98,0,100,0,97,0,126,0,104,0,0,0,98,0,100,0,97,0,126,0,122,0,0,0,98,0,101,0,97,0,126,0,107,0,0,0,98,0,101,0,111,0,126,0,122,0,0,0,98,0,102,0,97,0,126,0,117,0,0,0,98,0,102,0,98,0,97,0,108,0,0,0,98,0,102,0,98,0,97,0,109,0,0,0,98,0,102,0,98,0,97,0,110,0,0,0,98,0,102,0,107,0,111,0,115,0,0,0,98,0,102,0,107,0,111,0,116,0,0,0,98,0,102,0,119,0,126,0,122,0,0,0,98,0,103,0,97,0,126,0,103,0,0,0,98,0,103,0,105,0,126,0,108,0,0,0,98,0,103,0,110,0,126,0,122,0,0,0,98,0,104,0,97,0,126,0,106,0,0,0,98,0,104,0,108,0,126,0,122,0,0,0,98,0,105,0,97,0,126,0,98,0,0,0,98,0,105,0,100,0,126,0,103,0,0,0,98,0,105,0,107,0,126,0,114,0,0,0,98,0,105,0,115,0,107,0,101,0,0,0,98,0,105,0,116,0,126,0,122,0,0,0,98,0,106,0,97,0,126,0,99,0,0,0,98,0,106,0,101,0,126,0,112,0,0,0,98,0,106,0,114,0,126,0,122,0,0,0,98,0,107,0,99,0,126,0,100,0,0,0,98,0,107,0,102,0,126,0,122,0,0,0,98,0,108,0,97,0,126,0,102,0,0,0,98,0,108,0,104,0,126,0,116,0,0,0,98,0,108,0,118,0,126,0,122,0,0,0,98,0,109,0,97,0,126,0,120,0,0,0,98,0,110,0,97,0,126,0,103,0,0,0,98,0,110,0,105,0,126,0,122,0,0,0,98,0,111,0,97,0,126,0,98,0,0,0,98,0,111,0,98,0,126,0,99,0,0,0,98,0,111,0,101,0,126,0,114,0,0,0,98,0,111,0,110,0,126,0,112,0,0,0,98,0,111,0,111,0,110,0,116,0,0,0,98,0,111,0,115,0,126,0,116,0,0,0,98,0,111,0,116,0,126,0,122,0,0,0,98,0,112,0,99,0,126,0,101,0,0,0,98,0,112,0,103,0,126,0,122,0,0,0,98,0,113,0,97,0,126,0,100,0,0,0,98,0,113,0,102,0,126,0,122,0,0,0,98,0,114,0,97,0,126,0,100,0,0,0,98,0,114,0,102,0,126,0,122,0,0,0,98,0,115,0,97,0,126,0,99,0,0,0,98,0,115,0,101,0,126,0,121,0,0,0,98,0,116,0,99,0,126,0,107,0,0,0,98,0,116,0,109,0,126,0,122,0,0,0,98,0,117,0,97,0,126,0,107,0,0,0,98,0,117,0,109,0,126,0,113,0,0,0,98,0,117,0,115,0,126,0,122,0,0,0,98,0,118,0,97,0,126,0,114,0,0,0,98,0,118,0,116,0,126,0,122,0,0,0,98,0,119,0,97,0,126,0,117,0,0,0,98,0,119,0,119,0,126,0,122,0,0,0,98,0,120,0,97,0,126,0,106,0,0,0,98,0,120,0,108,0,126,0,113,0,0,0,98,0,120,0,117,0,126,0,119,0,0,0,98,0,121,0,97,0,126,0,116,0,0,0,98,0,121,0,118,0,126,0,120,0,0,0,98,0,122,0,97,0,126,0,122,0,0,0,99,0,97,0,97,0,126,0,115,0,0,0,99,0,97,0,117,0,126,0,122,0,0,0,99,0,98,0,97,0,126,0,100,0,0,0,99,0,98,0,105,0,126,0,108,0,0,0,99,0,98,0,110,0,126,0,111,0,0,0,99,0,98,0,113,0,126,0,119,0,0,0,99,0,99,0,99,0,126,0,101,0,0,0,99,0,99,0,103,0,126,0,104,0,0,0,99,0,99,0,108,0,126,0,112,0,0,0,99,0,99,0,114,0,126,0,115,0,0,0,99,0,100,0,99,0,126,0,102,0,0,0,99,0,100,0,104,0,126,0,106,0,0,0,99,0,100,0,109,0,126,0,111,0,0,0,99,0,100,0,114,0,126,0,115,0,0,0,99,0,100,0,121,0,126,0,122,0,0,0,99,0,101,0,97,0,126,0,98,0,0,0,99,0,101,0,107,0,126,0,108,0,0,0,99,0,103,0,55,0,126,0,57,0,0,0,99,0,104,0,98,0,126,0,100,0,0,0,99,0,104,0,102,0,126,0,104,0,0,0,99,0,104,0,106,0,126,0,114,0,0,0,99,0,104,0,119,0,126,0,122,0,0,0,99,0,105,0,97,0,126,0,101,0,0,0,99,0,105,0,109,0,126,0,110,0,0,0,99,0,106,0,104,0,126,0,105,0,0,0,99,0,106,0,109,0,126,0,112,0,0,0,99,0,107,0,108,0,126,0,111,0,0,0,99,0,107,0,113,0,126,0,118,0,0,0,99,0,107,0,120,0,126,0,122,0,0,0,99,0,108,0,104,0,126,0,109,0,0,0,99,0,108,0,116,0,126,0,117,0,0,0,99,0,109,0,108,0,126,0,109,0,0,0,99,0,109,0,114,0,126,0,116,0,0,0,99,0,110,0,97,0,126,0,99,0,0,0,99,0,110,0,103,0,126,0,105,0,0,0,99,0,110,0,107,0,126,0,108,0,0,0,99,0,110,0,111,0,126,0,113,0,0,0,99,0,110,0,115,0,126,0,117,0,0,0,99,0,110,0,119,0,126,0,120,0,0,0,99,0,111,0,97,0,126,0,104,0,0,0,99,0,111,0,106,0,126,0,113,0,0,0,99,0,111,0,114,0,110,0,117,0,0,0,99,0,111,0,116,0,126,0,120,0,0,0,99,0,112,0,97,0,126,0,99,0,0,0,99,0,112,0,101,0,126,0,103,0,0,0,99,0,112,0,110,0,126,0,112,0,0,0,99,0,112,0,120,0,126,0,121,0,0,0,99,0,114,0,97,0,126,0,100,0,0,0,99,0,114,0,102,0,126,0,116,0,0,0,99,0,114,0,103,0,126,0,104,0,0,0,99,0,114,0,118,0,126,0,122,0,0,0,99,0,115,0,97,0,126,0,122,0,0,0,99,0,116,0,99,0,126,0,101,0,0,0,99,0,116,0,103,0,126,0,104,0,0,0,99,0,116,0,108,0,126,0,112,0,0,0,99,0,116,0,115,0,126,0,117,0,0,0,99,0,116,0,121,0,126,0,122,0,0,0,99,0,117,0,97,0,126,0,99,0,0,0,99,0,117,0,104,0,126,0,108,0,0,0,99,0,117,0,111,0,126,0,121,0,0,0,99,0,119,0,97,0,126,0,98,0,0,0,99,0,121,0,97,0,126,0,98,0,0,0,99,0,122,0,50,0,48,0,49,0,0,0,99,0,122,0,50,0,48,0,53,0,0,0,99,0,122,0,50,0,48,0,54,0,0,0,99,0,122,0,50,0,48,0,55,0,0,0,99,0,122,0,50,0,48,0,57,0,0,0,99,0,122,0,50,0,48,0,97,0,0,0,99,0,122,0,50,0,48,0,98,0,0,0,99,0,122,0,50,0,48,0,99,0,0,0,99,0,122,0,51,0,49,0,49,0,0,0,99,0,122,0,51,0,49,0,51,0,0,0,99,0,122,0,51,0,49,0,52,0,0,0,99,0,122,0,51,0,49,0,53,0,0,0,99,0,122,0,51,0,49,0,55,0,0,0,99,0,122,0,51,0,50,0,49,0,0,0,99,0,122,0,51,0,50,0,50,0,0,0,99,0,122,0,51,0,50,0,51,0,0,0,99,0,122,0,51,0,50,0,53,0,0,0,99,0,122,0,51,0,50,0,54,0,0,0,99,0,122,0,51,0,50,0,55,0,0,0,99,0,122,0,52,0,49,0,49,0,0,0,99,0,122,0,52,0,49,0,50,0,0,0,99,0,122,0,52,0,49,0,51,0,0,0,99,0,122,0,52,0,50,0,49,0,0,0,99,0,122,0,52,0,50,0,51,0,0,0,99,0,122,0,52,0,50,0,52,0,0,0,99,0,122,0,52,0,50,0,53,0,0,0,99,0,122,0,52,0,50,0,55,0,0,0,99,0,122,0,53,0,49,0,49,0,0,0,99,0,122,0,53,0,49,0,51,0,0,0,99,0,122,0,53,0,49,0,52,0,0,0,99,0,122,0,53,0,50,0,49,0,0,0,99,0,122,0,53,0,50,0,50,0,0,0,99,0,122,0,53,0,50,0,51,0,0,0,99,0,122,0,53,0,50,0,53,0,0,0,99,0,122,0,54,0,51,0,49,0,0,0,99,0,122,0,54,0,51,0,50,0,0,0,99,0,122,0,54,0,51,0,51,0,0,0,99,0,122,0,54,0,51,0,53,0,0,0,99,0,122,0,54,0,52,0,49,0,0,0,99,0,122,0,54,0,52,0,52,0,0,0,99,0,122,0,54,0,52,0,53,0,0,0,99,0,122,0,54,0,52,0,55,0,0,0,99,0,122,0,55,0,49,0,49,0,0,0,99,0,122,0,55,0,49,0,50,0,0,0,99,0,122,0,55,0,49,0,51,0,0,0,99,0,122,0,55,0,49,0,52,0,0,0,99,0,122,0,55,0,49,0,53,0,0,0,99,0,122,0,55,0,50,0,49,0,0,0,99,0,122,0,55,0,50,0,50,0,0,0,99,0,122,0,55,0,50,0,51,0,0,0,99,0,122,0,56,0,48,0,49,0,0,0,99,0,122,0,56,0,48,0,50,0,0,0,99,0,122,0,56,0,48,0,51,0,0,0,99,0,122,0,56,0,48,0,53,0,0,0,99,0,122,0,56,0,48,0,54,0,0,0,99,0,122,0,110,0,126,0,111,0,0,0,100,0,97,0,99,0,126,0,101,0,0,0,100,0,97,0,103,0,126,0,109,0,0,0,100,0,97,0,110,0,103,0,105,0,0,0,100,0,97,0,113,0,126,0,115,0,0,0,100,0,97,0,117,0,126,0,122,0,0,0,100,0,98,0,100,0,126,0,103,0,0,0,100,0,98,0,105,0,126,0,106,0,0,0,100,0,98,0,108,0,126,0,114,0,0,0,100,0,98,0,116,0,126,0,119,0,0,0,100,0,100,0,100,0,126,0,101,0,0,0,100,0,100,0,105,0,126,0,106,0,0,0,100,0,100,0,110,0,126,0,111,0,0,0,100,0,100,0,114,0,126,0,115,0,0,0,100,0,101,0,99,0,126,0,105,0,0,0,100,0,101,0,107,0,126,0,110,0,0,0,100,0,101,0,112,0,126,0,115,0,0,0,100,0,103,0,97,0,126,0,101,0,0,0,100,0,103,0,103,0,126,0,105,0,0,0,100,0,103,0,107,0,126,0,108,0,0,0,100,0,103,0,114,0,126,0,116,0,0,0,100,0,103,0,119,0,126,0,120,0,0,0,100,0,104,0,108,0,126,0,111,0,0,0,100,0,104,0,114,0,126,0,115,0,0,0,100,0,104,0,117,0,126,0,120,0,0,0,100,0,105,0,97,0,126,0,100,0,0,0,100,0,105,0,102,0,126,0,106,0,0,0,100,0,105,0,108,0,126,0,112,0,0,0,100,0,105,0,114,0,126,0,115,0,0,0,100,0,105,0,119,0,126,0,122,0,0,0,100,0,106,0,97,0,126,0,102,0,0,0,100,0,106,0,105,0,126,0,107,0,0,0,100,0,106,0,109,0,126,0,111,0,0,0,100,0,107,0,114,0,126,0,115,0,0,0,100,0,108,0,109,0,126,0,110,0,0,0,100,0,109,0,97,0,126,0,103,0,0,0,100,0,109,0,107,0,126,0,111,0,0,0,100,0,109,0,114,0,126,0,115,0,0,0,100,0,109,0,117,0,126,0,121,0,0,0,100,0,110,0,100,0,126,0,101,0,0,0,100,0,110,0,105,0,126,0,107,0,0,0,100,0,110,0,110,0,126,0,111,0,0,0,100,0,110,0,116,0,126,0,119,0,0,0,100,0,111,0,97,0,126,0,99,0,0,0,100,0,111,0,101,0,126,0,102,0,0,0,100,0,111,0,104,0,126,0,105,0,0,0,100,0,111,0,107,0,126,0,108,0,0,0,100,0,111,0,110,0,126,0,116,0,0,0,100,0,111,0,118,0,126,0,122,0,0,0,100,0,114,0,97,0,126,0,101,0,0,0,100,0,114,0,110,0,126,0,111,0,0,0,100,0,114,0,115,0,126,0,117,0,0,0,100,0,115,0,104,0,126,0,105,0,0,0,100,0,116,0,97,0,126,0,98,0,0,0,100,0,116,0,104,0,126,0,105,0,0,0,100,0,116,0,109,0,126,0,112,0,0,0,100,0,116,0,114,0,126,0,117,0,0,0,100,0,117,0,97,0,126,0,99,0,0,0,100,0,117,0,101,0,126,0,105,0,0,0,100,0,117,0,107,0,126,0,115,0,0,0,100,0,117,0,117,0,126,0,122,0,0,0,100,0,119,0,114,0,126,0,115,0,0,0,100,0,119,0,121,0,126,0,122,0,0,0,100,0,121,0,97,0,126,0,98,0,0,0,100,0,121,0,109,0,126,0,111,0,0,0,101,0,99,0,97,0,126,0,105,0,0,0,101,0,99,0,108,0,126,0,112,0,0,0,101,0,99,0,116,0,126,0,117,0,0,0,101,0,99,0,119,0,126,0,122,0,0,0,101,0,101,0,49,0,52,0,49,0,0,0,101,0,101,0,49,0,52,0,50,0,0,0,101,0,101,0,50,0,56,0,51,0,0,0,101,0,101,0,50,0,56,0,52,0,0,0,101,0,101,0,52,0,51,0,48,0,0,0,101,0,101,0,52,0,51,0,49,0,0,0,101,0,101,0,52,0,51,0,50,0,0,0,101,0,101,0,52,0,52,0,49,0,0,0,101,0,101,0,55,0,57,0,51,0,0,0,101,0,103,0,108,0,126,0,109,0,0,0,101,0,103,0,120,0,126,0,121,0,0,0,101,0,107,0,108,0,126,0,109,0,0,0,101,0,107,0,111,0,126,0,112,0,0,0,101,0,108,0,104,0,126,0,105,0,0,0,101,0,109,0,97,0,126,0,98,0,0,0,101,0,109,0,109,0,126,0,110,0,0,0,101,0,109,0,112,0,126,0,113,0,0,0,101,0,109,0,119,0,126,0,122,0,0,0,101,0,110,0,95,0,66,0,90,0,0,0,101,0,110,0,95,0,67,0,72,0,0,0,101,0,110,0,95,0,77,0,79,0,0,0,101,0,110,0,97,0,126,0,100,0,0,0,101,0,110,0,108,0,126,0,111,0,0,0,101,0,110,0,113,0,126,0,114,0,0,0,101,0,110,0,117,0,126,0,120,0,0,0,101,0,114,0,103,0,126,0,105,0,0,0,101,0,114,0,114,0,126,0,116,0,0,0,101,0,115,0,95,0,66,0,82,0,0,0,101,0,115,0,95,0,85,0,83,0,0,0,101,0,115,0,103,0,126,0,105,0,0,0,101,0,115,0,108,0,126,0,111,0,0,0,101,0,115,0,120,0,126,0,121,0,0,0,101,0,116,0,98,0,126,0,99,0,0,0,101,0,116,0,110,0,126,0,111,0,0,0,101,0,116,0,114,0,126,0,117,0,0,0,102,0,97,0,97,0,126,0,98,0,0,0,102,0,97,0,102,0,126,0,110,0,0,0,102,0,97,0,120,0,126,0,122,0,0,0,102,0,105,0,101,0,126,0,102,0,0,0,102,0,105,0,116,0,126,0,117,0,0,0,102,0,108,0,104,0,126,0,105,0,0,0,102,0,111,0,109,0,126,0,110,0,0,0,102,0,111,0,114,0,126,0,115,0,0,0,102,0,114,0,97,0,126,0,98,0,0,0,102,0,114,0,99,0,111,0,114,0,0,0,102,0,114,0,99,0,126,0,100,0,0,0,102,0,114,0,100,0,126,0,103,0,0,0,102,0,114,0,103,0,117,0,97,0,0,0,102,0,114,0,104,0,126,0,108,0,0,0,102,0,114,0,109,0,97,0,121,0,0,0,102,0,114,0,111,0,126,0,112,0,0,0,102,0,114,0,111,0,126,0,116,0,0,0,102,0,114,0,113,0,126,0,114,0,0,0,102,0,114,0,115,0,126,0,116,0,0,0,102,0,114,0,117,0,126,0,118,0,0,0,102,0,117,0,100,0,126,0,102,0,0,0,102,0,117,0,104,0,126,0,106,0,0,0,102,0,117,0,109,0,126,0,110,0,0,0,102,0,117,0,113,0,126,0,114,0,0,0,102,0,117,0,116,0,126,0,118,0,0,0,103,0,97,0,49,0,126,0,57,0,0,0,103,0,97,0,97,0,126,0,117,0,0,0,103,0,97,0,119,0,126,0,121,0,0,0,103,0,98,0,97,0,98,0,99,0,0,0,103,0,98,0,97,0,98,0,100,0,0,0,103,0,98,0,97,0,98,0,101,0,0,0,103,0,98,0,97,0,110,0,116,0,0,0,103,0,98,0,97,0,114,0,100,0,0,0,103,0,98,0,97,0,126,0,98,0,0,0,103,0,98,0,98,0,100,0,103,0,0,0,103,0,98,0,98,0,108,0,97,0,0,0,103,0,98,0,98,0,108,0,121,0,0,0,103,0,98,0,98,0,109,0,104,0,0,0,103,0,98,0,98,0,110,0,98,0,0,0,103,0,98,0,98,0,114,0,99,0,0,0,103,0,98,0,98,0,114,0,100,0,0,0,103,0,98,0,99,0,103,0,118,0,0,0,103,0,98,0,99,0,107,0,102,0,0,0,103,0,98,0,99,0,107,0,116,0,0,0,103,0,98,0,99,0,108,0,114,0,0,0,103,0,98,0,99,0,115,0,114,0,0,0,103,0,98,0,100,0,110,0,99,0,0,0,103,0,98,0,100,0,110,0,100,0,0,0,103,0,98,0,100,0,111,0,119,0,0,0,103,0,98,0,100,0,126,0,110,0,0,0,103,0,98,0,101,0,97,0,119,0,0,0,103,0,98,0,101,0,110,0,103,0,0,0,103,0,98,0,103,0,98,0,110,0,0,0,103,0,98,0,104,0,97,0,108,0,0,0,103,0,98,0,104,0,97,0,109,0,0,0,103,0,98,0,108,0,109,0,118,0,0,0,103,0,98,0,108,0,114,0,110,0,0,0,103,0,98,0,109,0,102,0,116,0,0,0,103,0,98,0,109,0,121,0,108,0,0,0,103,0,98,0,110,0,100,0,110,0,0,0,103,0,98,0,110,0,116,0,97,0,0,0,103,0,98,0,110,0,121,0,109,0,0,0,103,0,98,0,111,0,109,0,104,0,0,0,103,0,98,0,112,0,111,0,108,0,0,0,103,0,98,0,112,0,126,0,115,0,0,0,103,0,98,0,115,0,108,0,102,0,0,0,103,0,98,0,115,0,108,0,103,0,0,0,103,0,98,0,115,0,111,0,108,0,0,0,103,0,98,0,115,0,111,0,109,0,0,0,103,0,98,0,115,0,116,0,98,0,0,0,103,0,98,0,115,0,116,0,103,0,0,0,103,0,98,0,115,0,116,0,104,0,0,0,103,0,98,0,115,0,116,0,116,0,0,0,103,0,98,0,117,0,107,0,109,0,0,0,103,0,98,0,117,0,126,0,122,0,0,0,103,0,99,0,99,0,126,0,102,0,0,0,103,0,100,0,97,0,126,0,111,0,0,0,103,0,100,0,113,0,126,0,117,0,0,0,103,0,101,0,97,0,126,0,100,0,0,0,103,0,101,0,102,0,126,0,109,0,0,0,103,0,101,0,118,0,126,0,122,0,0,0,103,0,103,0,97,0,126,0,98,0,0,0,103,0,103,0,100,0,126,0,101,0,0,0,103,0,103,0,107,0,126,0,108,0,0,0,103,0,103,0,110,0,126,0,111,0,0,0,103,0,103,0,116,0,126,0,117,0,0,0,103,0,104,0,107,0,126,0,108,0,0,0,103,0,104,0,110,0,126,0,111,0,0,0,103,0,104,0,114,0,126,0,116,0,0,0,103,0,105,0,97,0,126,0,101,0,0,0,103,0,105,0,103,0,126,0,105,0,0,0,103,0,105,0,108,0,126,0,110,0,0,0,103,0,105,0,112,0,126,0,117,0,0,0,103,0,105,0,119,0,126,0,122,0,0,0,103,0,106,0,109,0,126,0,110,0,0,0,103,0,107,0,110,0,126,0,112,0,0,0,103,0,108,0,98,0,126,0,100,0,0,0,103,0,108,0,106,0,126,0,108,0,0,0,103,0,109,0,97,0,126,0,98,0,0,0,103,0,109,0,100,0,126,0,101,0,0,0,103,0,109,0,103,0,126,0,104,0,0,0,103,0,109,0,113,0,126,0,114,0,0,0,103,0,109,0,117,0,126,0,122,0,0,0,103,0,110,0,97,0,126,0,101,0,0,0,103,0,110,0,103,0,126,0,110,0,0,0,103,0,110,0,113,0,126,0,114,0,0,0,103,0,110,0,116,0,126,0,117,0,0,0,103,0,111,0,97,0,126,0,122,0,0,0,103,0,114,0,97,0,126,0,100,0,0,0,103,0,114,0,97,0,126,0,109,0,0,0,103,0,114,0,103,0,126,0,107,0,0,0,103,0,114,0,113,0,126,0,122,0,0,0,103,0,115,0,108,0,126,0,112,0,0,0,103,0,117,0,97,0,126,0,102,0,0,0,103,0,117,0,104,0,126,0,105,0,0,0,103,0,117,0,107,0,126,0,117,0,0,0,103,0,117,0,119,0,126,0,120,0,0,0,103,0,118,0,101,0,126,0,102,0,0,0,103,0,118,0,108,0,126,0,112,0,0,0,103,0,118,0,114,0,126,0,115,0,0,0,103,0,119,0,97,0,126,0,103,0,0,0,103,0,119,0,105,0,126,0,106,0,0,0,103,0,119,0,109,0,126,0,110,0,0,0,103,0,119,0,116,0,126,0,117,0,0,0,103,0,119,0,119,0,126,0,120,0,0,0,103,0,121,0,100,0,126,0,103,0,0,0,103,0,121,0,108,0,126,0,111,0,0,0,103,0,121,0,121,0,126,0,122,0,0,0,104,0,97,0,97,0,126,0,115,0,0,0,104,0,97,0,118,0,126,0,122,0,0,0,104,0,98,0,97,0,126,0,98,0,0,0,104,0,98,0,110,0,126,0,111,0,0,0,104,0,101,0,103,0,126,0,105,0,0,0,104,0,105,0,97,0,126,0,98,0,0,0,104,0,105,0,102,0,126,0,108,0,0,0,104,0,105,0,119,0,126,0,120,0,0,0,104,0,108,0,97,0,126,0,98,0,0,0,104,0,108,0,100,0,126,0,101,0,0,0,104,0,108,0,116,0,126,0,117,0,0,0,104,0,109,0,97,0,126,0,110,0,0,0,104,0,109,0,112,0,126,0,122,0,0,0,104,0,110,0,100,0,126,0,101,0,0,0,104,0,110,0,103,0,126,0,106,0,0,0,104,0,110,0,110,0,126,0,111,0,0,0,104,0,111,0,97,0,126,0,101,0,0,0,104,0,111,0,104,0,126,0,109,0,0,0,104,0,111,0,111,0,126,0,112,0,0,0,104,0,111,0,114,0,126,0,116,0,0,0,104,0,111,0,118,0,126,0,119,0,0,0,104,0,111,0,121,0,126,0,122,0,0,0,104,0,114,0,111,0,126,0,112,0,0,0,104,0,114,0,116,0,126,0,117,0,0,0,104,0,114,0,119,0,126,0,120,0,0,0,104,0,117,0,98,0,126,0,109,0,0,0,104,0,117,0,111,0,126,0,122,0,0,0,104,0,121,0,119,0,126,0,120,0,0,0,105,0,98,0,97,0,126,0,98,0,0,0,105,0,98,0,100,0,126,0,101,0,0,0,105,0,98,0,103,0,126,0,104,0,0,0,105,0,98,0,108,0,126,0,110,0,0,0,105,0,100,0,97,0,126,0,101,0,0,0,105,0,100,0,114,0,126,0,117,0,0,0,105,0,102,0,97,0,126,0,98,0,0,0,105,0,102,0,101,0,126,0,102,0,0,0,105,0,103,0,108,0,126,0,111,0,0,0,105,0,106,0,110,0,126,0,111,0,0,0,105,0,107,0,107,0,126,0,108,0,0,0,105,0,107,0,111,0,126,0,112,0,0,0,105,0,107,0,114,0,126,0,116,0,0,0,105,0,107,0,118,0,126,0,120,0,0,0,105,0,108,0,97,0,126,0,98,0,0,0,105,0,108,0,111,0,126,0,112,0,0,0,105,0,108,0,117,0,126,0,118,0,0,0,105,0,109,0,110,0,126,0,111,0,0,0,105,0,109,0,114,0,126,0,116,0,0,0,105,0,110,0,98,0,126,0,99,0,0,0,105,0,110,0,103,0,126,0,104,0,0,0,105,0,110,0,108,0,126,0,112,0,0,0,105,0,110,0,115,0,126,0,116,0,0,0,105,0,114,0,104,0,126,0,105,0,0,0,105,0,114,0,110,0,126,0,111,0,0,0,105,0,114,0,120,0,126,0,121,0,0,0,105,0,115,0,49,0,126,0,56,0,0,0,105,0,115,0,98,0,102,0,106,0,0,0,105,0,115,0,99,0,126,0,101,0,0,0,105,0,115,0,102,0,108,0,100,0,0,0,105,0,115,0,103,0,126,0,105,0,0,0,105,0,115,0,109,0,126,0,111,0,0,0,105,0,115,0,115,0,107,0,102,0,0,0,105,0,115,0,116,0,126,0,117,0,0,0,105,0,116,0,98,0,126,0,101,0,0,0,105,0,116,0,107,0,126,0,109,0,0,0,105,0,116,0,114,0,126,0,116,0,0,0,105,0,116,0,118,0,126,0,122,0,0,0,106,0,97,0,97,0,126,0,102,0,0,0,106,0,97,0,106,0,126,0,111,0,0,0,106,0,97,0,115,0,126,0,117,0,0,0,106,0,97,0,117,0,101,0,114,0,0,0,106,0,97,0,120,0,126,0,122,0,0,0,106,0,98,0,105,0,126,0,107,0,0,0,106,0,98,0,109,0,126,0,111,0,0,0,106,0,98,0,116,0,126,0,117,0,0,0,106,0,99,0,115,0,126,0,116,0,0,0,106,0,101,0,104,0,126,0,105,0,0,0,106,0,101,0,107,0,126,0,108,0,0,0,106,0,101,0,116,0,126,0,117,0,0,0,106,0,105,0,97,0,126,0,101,0,0,0,106,0,105,0,103,0,126,0,105,0,0,0,106,0,105,0,108,0,126,0,109,0,0,0,106,0,105,0,116,0,126,0,118,0,0,0,106,0,107,0,111,0,126,0,112,0,0,0,106,0,107,0,114,0,126,0,115,0,0,0,106,0,109,0,97,0,126,0,100,0,0,0,106,0,109,0,114,0,126,0,115,0,0,0,106,0,109,0,119,0,126,0,120,0,0,0,106,0,110,0,105,0,126,0,106,0,0,0,106,0,111,0,114,0,126,0,115,0,0,0,106,0,114,0,97,0,126,0,98,0,0,0,106,0,114,0,116,0,126,0,117,0,0,0,106,0,117,0,97,0,126,0,100,0,0,0,106,0,117,0,104,0,126,0,105,0,0,0,106,0,117,0,107,0,126,0,112,0,0,0,106,0,117,0,114,0,126,0,117,0,0,0,107,0,97,0,97,0,126,0,107,0,0,0,107,0,97,0,111,0,126,0,114,0,0,0,107,0,97,0,118,0,126,0,121,0,0,0,107,0,98,0,97,0,126,0,101,0,0,0,107,0,98,0,103,0,126,0,122,0,0,0,107,0,99,0,97,0,126,0,122,0,0,0,107,0,100,0,99,0,126,0,114,0,0,0,107,0,100,0,116,0,126,0,117,0,0,0,107,0,100,0,119,0,126,0,122,0,0,0,107,0,101,0,97,0,126,0,122,0,0,0,107,0,102,0,97,0,126,0,122,0,0,0,107,0,103,0,97,0,126,0,98,0,0,0,107,0,103,0,98,0,126,0,99,0,0,0,107,0,103,0,99,0,126,0,100,0,0,0,107,0,103,0,101,0,126,0,103,0,0,0,107,0,103,0,105,0,126,0,121,0,0,0,107,0,103,0,110,0,126,0,111,0,0,0,107,0,104,0,51,0,126,0,57,0,0,0,107,0,104,0,97,0,126,0,106,0,0,0,107,0,104,0,110,0,126,0,122,0,0,0,107,0,105,0,97,0,126,0,106,0,0,0,107,0,105,0,108,0,126,0,109,0,0,0,107,0,105,0,111,0,126,0,113,0,0,0,107,0,105,0,115,0,126,0,122,0,0,0,107,0,106,0,97,0,126,0,101,0,0,0,107,0,106,0,103,0,126,0,118,0,0,0,107,0,106,0,120,0,126,0,122,0,0,0,107,0,107,0,97,0,126,0,122,0,0,0,107,0,107,0,99,0,111,0,114,0,0,0,107,0,108,0,97,0,126,0,122,0,0,0,107,0,109,0,97,0,126,0,113,0,0,0,107,0,109,0,115,0,126,0,122,0,0,0,107,0,110,0,97,0,126,0,98,0,0,0,107,0,110,0,100,0,126,0,102,0,0,0,107,0,110,0,105,0,126,0,109,0,0,0,107,0,110,0,111,0,126,0,122,0,0,0,107,0,111,0,99,0,126,0,105,0,0,0,107,0,111,0,107,0,126,0,108,0,0,0,107,0,111,0,111,0,126,0,113,0,0,0,107,0,111,0,115,0,126,0,119,0,0,0,107,0,111,0,121,0,126,0,122,0,0,0,107,0,112,0,97,0,126,0,111,0,0,0,107,0,112,0,113,0,126,0,117,0,0,0,107,0,112,0,119,0,126,0,122,0,0,0,107,0,113,0,97,0,126,0,122,0,0,0,107,0,114,0,97,0,126,0,102,0,0,0,107,0,114,0,104,0,126,0,108,0,0,0,107,0,114,0,110,0,126,0,112,0,0,0,107,0,114,0,114,0,126,0,122,0,0,0,107,0,115,0,97,0,126,0,122,0,0,0,107,0,115,0,99,0,111,0,114,0,0,0,107,0,116,0,97,0,126,0,113,0,0,0,107,0,116,0,115,0,126,0,122,0,0,0,107,0,117,0,98,0,126,0,113,0,0,0,107,0,117,0,115,0,126,0,122,0,0,0,107,0,118,0,97,0,126,0,114,0,0,0,107,0,118,0,116,0,126,0,122,0,0,0,107,0,119,0,97,0,126,0,112,0,0,0,107,0,119,0,114,0,126,0,122,0,0,0,107,0,120,0,97,0,126,0,100,0,0,0,107,0,120,0,104,0,126,0,107,0,0,0,107,0,120,0,109,0,126,0,116,0,0,0,107,0,120,0,118,0,126,0,122,0,0,0,107,0,121,0,97,0,126,0,122,0,0,0,107,0,122,0,97,0,126,0,103,0,0,0,107,0,122,0,98,0,97,0,121,0,0,0,107,0,122,0,107,0,126,0,115,0,0,0,107,0,122,0,117,0,126,0,122,0,0,0,108,0,97,0,97,0,126,0,106,0,0,0,108,0,97,0,108,0,126,0,110,0,0,0,108,0,97,0,112,0,126,0,115,0,0,0,108,0,97,0,119,0,126,0,122,0,0,0,108,0,98,0,98,0,126,0,99,0,0,0,108,0,98,0,101,0,126,0,103,0,0,0,108,0,98,0,105,0,126,0,106,0,0,0,108,0,98,0,108,0,126,0,111,0,0,0,108,0,98,0,113,0,126,0,122,0,0,0,108,0,99,0,99,0,126,0,102,0,0,0,108,0,99,0,108,0,126,0,109,0,0,0,108,0,99,0,112,0,126,0,113,0,0,0,108,0,100,0,97,0,126,0,98,0,0,0,108,0,100,0,103,0,126,0,113,0,0,0,108,0,101,0,97,0,126,0,102,0,0,0,108,0,101,0,104,0,126,0,122,0,0,0,108,0,103,0,97,0,126,0,98,0,0,0,108,0,103,0,103,0,126,0,105,0,0,0,108,0,103,0,107,0,126,0,111,0,0,0,108,0,103,0,113,0,126,0,114,0,0,0,108,0,103,0,116,0,126,0,117,0,0,0,108,0,104,0,104,0,126,0,105,0,0,0,108,0,104,0,108,0,126,0,110,0,0,0,108,0,104,0,115,0,126,0,117,0,0,0,108,0,105,0,97,0,126,0,104,0,0,0,108,0,105,0,106,0,126,0,108,0,0,0,108,0,105,0,111,0,126,0,115,0,0,0,108,0,105,0,112,0,97,0,119,0,0,0,108,0,105,0,117,0,126,0,122,0,0,0,108,0,106,0,119,0,126,0,120,0,0,0,108,0,107,0,97,0,126,0,101,0,0,0,108,0,107,0,104,0,126,0,106,0,0,0,108,0,107,0,108,0,126,0,111,0,0,0,108,0,107,0,114,0,126,0,117,0,0,0,108,0,108,0,97,0,126,0,110,0,0,0,108,0,108,0,112,0,126,0,113,0,0,0,108,0,109,0,97,0,126,0,108,0,0,0,108,0,109,0,110,0,126,0,114,0,0,0,108,0,109,0,117,0,126,0,121,0,0,0,108,0,110,0,97,0,126,0,98,0,0,0,108,0,110,0,103,0,126,0,106,0,0,0,108,0,110,0,108,0,126,0,110,0,0,0,108,0,111,0,97,0,126,0,99,0,0,0,108,0,111,0,101,0,126,0,122,0,0,0,108,0,112,0,110,0,126,0,111,0,0,0,108,0,114,0,107,0,126,0,111,0,0,0,108,0,115,0,97,0,126,0,101,0,0,0,108,0,115,0,97,0,126,0,104,0,0,0,108,0,115,0,104,0,126,0,105,0,0,0,108,0,115,0,106,0,126,0,107,0,0,0,108,0,115,0,108,0,126,0,112,0,0,0,108,0,115,0,114,0,126,0,116,0,0,0,108,0,115,0,118,0,126,0,119,0,0,0,108,0,116,0,103,0,126,0,105,0,0,0,108,0,116,0,110,0,126,0,111,0,0,0,108,0,117,0,99,0,126,0,102,0,0,0,108,0,117,0,105,0,126,0,119,0,0,0,108,0,117,0,121,0,126,0,122,0,0,0,108,0,118,0,48,0,48,0,49,0,0,0,108,0,118,0,48,0,49,0,48,0,0,0,108,0,118,0,48,0,52,0,49,0,0,0,108,0,118,0,48,0,52,0,50,0,0,0,108,0,118,0,48,0,53,0,53,0,0,0,108,0,118,0,48,0,53,0,56,0,0,0,108,0,118,0,48,0,53,0,57,0,0,0,108,0,118,0,48,0,54,0,55,0,0,0,108,0,118,0,48,0,54,0,57,0,0,0,108,0,118,0,48,0,56,0,55,0,0,0,108,0,118,0,48,0,56,0,56,0,0,0,108,0,118,0,48,0,56,0,57,0,0,0,108,0,118,0,48,0,57,0,56,0,0,0,108,0,118,0,49,0,48,0,48,0,0,0,108,0,118,0,49,0,48,0,49,0,0,0,108,0,118,0,49,0,48,0,50,0,0,0,108,0,118,0,49,0,49,0,48,0,0,0,108,0,118,0,49,0,49,0,49,0,0,0,108,0,118,0,49,0,49,0,51,0,0,0,108,0,118,0,106,0,107,0,98,0,0,0,108,0,118,0,118,0,109,0,114,0,0,0,108,0,119,0,103,0,126,0,104,0,0,0,108,0,119,0,108,0,126,0,109,0,0,0,108,0,119,0,115,0,126,0,117,0,0,0,109,0,97,0,97,0,126,0,98,0,0,0,109,0,97,0,98,0,101,0,114,0,0,0,109,0,97,0,98,0,101,0,115,0,0,0,109,0,97,0,100,0,126,0,103,0,0,0,109,0,97,0,103,0,117,0,101,0,0,0,109,0,97,0,103,0,117,0,102,0,0,0,109,0,97,0,105,0,126,0,107,0,0,0,109,0,97,0,107,0,104,0,110,0,0,0,109,0,97,0,107,0,104,0,111,0,0,0,109,0,97,0,109,0,109,0,100,0,0,0,109,0,97,0,109,0,109,0,110,0,0,0,109,0,97,0,109,0,126,0,110,0,0,0,109,0,97,0,112,0,126,0,113,0,0,0,109,0,97,0,115,0,105,0,108,0,0,0,109,0,97,0,115,0,121,0,98,0,0,0,109,0,97,0,115,0,126,0,120,0,0,0,109,0,98,0,97,0,126,0,102,0,0,0,109,0,98,0,104,0,126,0,122,0,0,0,109,0,99,0,97,0,126,0,122,0,0,0,109,0,100,0,97,0,126,0,110,0,0,0,109,0,100,0,112,0,126,0,122,0,0,0,109,0,101,0,97,0,126,0,102,0,0,0,109,0,101,0,104,0,126,0,119,0,0,0,109,0,101,0,121,0,126,0,122,0,0,0,109,0,102,0,97,0,126,0,122,0,0,0,109,0,103,0,97,0,126,0,119,0,0,0,109,0,103,0,116,0,126,0,117,0,0,0,109,0,103,0,121,0,126,0,122,0,0,0,109,0,104,0,97,0,108,0,107,0,0,0,109,0,104,0,97,0,108,0,108,0,0,0,109,0,104,0,97,0,126,0,103,0,0,0,109,0,104,0,105,0,126,0,113,0,0,0,109,0,104,0,115,0,126,0,117,0,0,0,109,0,104,0,119,0,126,0,122,0,0,0,109,0,105,0,97,0,126,0,114,0,0,0,109,0,105,0,116,0,126,0,117,0,0,0,109,0,105,0,119,0,126,0,122,0,0,0,109,0,106,0,98,0,126,0,101,0,0,0,109,0,106,0,103,0,126,0,122,0,0,0,109,0,107,0,49,0,48,0,49,0,0,0,109,0,107,0,49,0,48,0,50,0,0,0,109,0,107,0,49,0,48,0,51,0,0,0,109,0,107,0,49,0,48,0,53,0,0,0,109,0,107,0,49,0,48,0,54,0,0,0,109,0,107,0,49,0,48,0,55,0,0,0,109,0,107,0,49,0,48,0,57,0,0,0,109,0,107,0,50,0,48,0,49,0,0,0,109,0,107,0,50,0,48,0,50,0,0,0,109,0,107,0,50,0,48,0,51,0,0,0,109,0,107,0,50,0,48,0,52,0,0,0,109,0,107,0,50,0,48,0,53,0,0,0,109,0,107,0,50,0,48,0,54,0,0,0,109,0,107,0,50,0,48,0,55,0,0,0,109,0,107,0,50,0,48,0,56,0,0,0,109,0,107,0,50,0,48,0,57,0,0,0,109,0,107,0,50,0,49,0,48,0,0,0,109,0,107,0,50,0,49,0,49,0,0,0,109,0,107,0,51,0,48,0,51,0,0,0,109,0,107,0,51,0,48,0,55,0,0,0,109,0,107,0,51,0,49,0,48,0,0,0,109,0,107,0,51,0,49,0,49,0,0,0,109,0,107,0,51,0,49,0,50,0,0,0,109,0,107,0,51,0,49,0,51,0,0,0,109,0,107,0,52,0,48,0,49,0,0,0,109,0,107,0,52,0,48,0,50,0,0,0,109,0,107,0,52,0,48,0,51,0,0,0,109,0,107,0,52,0,48,0,53,0,0,0,109,0,107,0,52,0,48,0,54,0,0,0,109,0,107,0,52,0,48,0,55,0,0,0,109,0,107,0,52,0,48,0,57,0,0,0,109,0,107,0,53,0,48,0,49,0,0,0,109,0,107,0,53,0,48,0,50,0,0,0,109,0,107,0,53,0,48,0,51,0,0,0,109,0,107,0,53,0,48,0,53,0,0,0,109,0,107,0,53,0,48,0,54,0,0,0,109,0,107,0,53,0,48,0,55,0,0,0,109,0,107,0,53,0,48,0,57,0,0,0,109,0,107,0,54,0,48,0,49,0,0,0,109,0,107,0,54,0,48,0,50,0,0,0,109,0,107,0,54,0,48,0,51,0,0,0,109,0,107,0,54,0,48,0,53,0,0,0,109,0,107,0,54,0,48,0,54,0,0,0,109,0,107,0,54,0,48,0,55,0,0,0,109,0,107,0,54,0,48,0,57,0,0,0,109,0,107,0,55,0,48,0,49,0,0,0,109,0,107,0,56,0,48,0,49,0,0,0,109,0,107,0,56,0,48,0,50,0,0,0,109,0,107,0,56,0,48,0,51,0,0,0,109,0,107,0,56,0,48,0,52,0,0,0,109,0,107,0,56,0,48,0,53,0,0,0,109,0,107,0,56,0,48,0,54,0,0,0,109,0,107,0,56,0,48,0,56,0,0,0,109,0,107,0,56,0,48,0,57,0,0,0,109,0,107,0,56,0,49,0,49,0,0,0,109,0,107,0,56,0,49,0,50,0,0,0,109,0,107,0,56,0,49,0,51,0,0,0,109,0,107,0,56,0,49,0,52,0,0,0,109,0,107,0,56,0,49,0,53,0,0,0,109,0,107,0,56,0,49,0,54,0,0,0,109,0,107,0,56,0,49,0,55,0,0,0,109,0,107,0,97,0,126,0,99,0,0,0,109,0,107,0,101,0,126,0,122,0,0,0,109,0,108,0,50,0,126,0,57,0,0,0,109,0,108,0,97,0,126,0,99,0,0,0,109,0,108,0,101,0,126,0,102,0,0,0,109,0,108,0,104,0,126,0,115,0,0,0,109,0,108,0,117,0,126,0,120,0,0,0,109,0,109,0,97,0,126,0,114,0,0,0,109,0,109,0,116,0,126,0,122,0,0,0,109,0,110,0,48,0,52,0,54,0,0,0,109,0,110,0,48,0,52,0,55,0,0,0,109,0,110,0,48,0,54,0,51,0,0,0,109,0,110,0,48,0,54,0,53,0,0,0,109,0,110,0,97,0,126,0,106,0,0,0,109,0,110,0,108,0,126,0,115,0,0,0,109,0,110,0,117,0,126,0,122,0,0,0,109,0,111,0,99,0,126,0,101,0,0,0,109,0,111,0,103,0,126,0,107,0,0,0,109,0,111,0,111,0,126,0,122,0,0,0,109,0,112,0,97,0,126,0,101,0,0,0,109,0,112,0,103,0,126,0,122,0,0,0,109,0,113,0,97,0,126,0,99,0,0,0,109,0,113,0,101,0,126,0,122,0,0,0,109,0,114,0,97,0,126,0,104,0,0,0,109,0,114,0,106,0,126,0,122,0,0,0,109,0,114,0,110,0,107,0,99,0,0,0,109,0,115,0,98,0,126,0,115,0,0,0,109,0,115,0,117,0,126,0,122,0,0,0,109,0,116,0,97,0,126,0,121,0,0,0,109,0,117,0,97,0,126,0,101,0,0,0,109,0,117,0,103,0,126,0,107,0,0,0,109,0,117,0,109,0,126,0,111,0,0,0,109,0,117,0,113,0,126,0,118,0,0,0,109,0,117,0,120,0,126,0,122,0,0,0,109,0,118,0,97,0,126,0,98,0,0,0,109,0,118,0,100,0,126,0,105,0,0,0,109,0,118,0,107,0,126,0,108,0,0,0,109,0,118,0,110,0,126,0,122,0,0,0,109,0,119,0,97,0,126,0,99,0,0,0,109,0,119,0,101,0,126,0,105,0,0,0,109,0,119,0,107,0,126,0,119,0,0,0,109,0,119,0,120,0,126,0,121,0,0,0,109,0,120,0,97,0,126,0,122,0,0,0,109,0,120,0,100,0,105,0,102,0,0,0,109,0,121,0,98,0,126,0,99,0,0,0,109,0,121,0,101,0,126,0,104,0,0,0,109,0,121,0,106,0,126,0,112,0,0,0,109,0,121,0,114,0,126,0,115,0,0,0,109,0,121,0,117,0,126,0,122,0,0,0,109,0,122,0,97,0,126,0,98,0,0,0,109,0,122,0,97,0,126,0,101,0,0,0,109,0,122,0,103,0,126,0,122,0,0,0,109,0,122,0,112,0,126,0,113,0,0,0,109,0,122,0,115,0,126,0,116,0,0,0,110,0,97,0,97,0,126,0,99,0,0,0,110,0,97,0,101,0,126,0,116,0,0,0,110,0,97,0,119,0,126,0,122,0,0,0,110,0,98,0,97,0,126,0,101,0,0,0,110,0,98,0,103,0,126,0,107,0,0,0,110,0,98,0,109,0,126,0,119,0,0,0,110,0,99,0,97,0,126,0,111,0,0,0,110,0,99,0,113,0,126,0,117,0,0,0,110,0,100,0,97,0,126,0,100,0,0,0,110,0,100,0,102,0,126,0,110,0,0,0,110,0,100,0,112,0,126,0,122,0,0,0,110,0,101,0,49,0,126,0,56,0,0,0,110,0,101,0,97,0,126,0,107,0,0,0,110,0,101,0,100,0,105,0,115,0,0,0,110,0,101,0,109,0,126,0,111,0,0,0,110,0,101,0,113,0,126,0,122,0,0,0,110,0,103,0,97,0,126,0,110,0,0,0,110,0,103,0,112,0,126,0,122,0,0,0,110,0,104,0,97,0,126,0,105,0,0,0,110,0,104,0,109,0,126,0,114,0,0,0,110,0,104,0,116,0,126,0,122,0,0,0,110,0,105,0,97,0,126,0,111,0,0,0,110,0,105,0,113,0,126,0,122,0,0,0,110,0,106,0,97,0,126,0,98,0,0,0,110,0,106,0,104,0,126,0,106,0,0,0,110,0,106,0,105,0,118,0,97,0,0,0,110,0,106,0,108,0,126,0,111,0,0,0,110,0,106,0,114,0,126,0,117,0,0,0,110,0,106,0,120,0,126,0,122,0,0,0,110,0,107,0,97,0,126,0,107,0,0,0,110,0,107,0,109,0,126,0,120,0,0,0,110,0,108,0,98,0,113,0,49,0,0,0,110,0,108,0,98,0,113,0,50,0,0,0,110,0,108,0,98,0,113,0,51,0,0,0,110,0,108,0,105,0,126,0,109,0,0,0,110,0,108,0,117,0,126,0,122,0,0,0,110,0,109,0,97,0,126,0,122,0,0,0,110,0,110,0,97,0,126,0,110,0,0,0,110,0,110,0,112,0,126,0,114,0,0,0,110,0,110,0,116,0,126,0,119,0,0,0,110,0,110,0,121,0,126,0,122,0,0,0,110,0,111,0,99,0,126,0,110,0,0,0,110,0,111,0,112,0,126,0,113,0,0,0,110,0,111,0,115,0,126,0,119,0,0,0,110,0,111,0,121,0,126,0,122,0,0,0,110,0,112,0,49,0,126,0,53,0,0,0,110,0,112,0,97,0,126,0,98,0,0,0,110,0,112,0,103,0,126,0,104,0,0,0,110,0,112,0,110,0,126,0,111,0,0,0,110,0,112,0,120,0,126,0,121,0,0,0,110,0,113,0,107,0,126,0,111,0,0,0,110,0,114,0,97,0,126,0,99,0,0,0,110,0,114,0,101,0,126,0,103,0,0,0,110,0,114,0,107,0,126,0,110,0,0,0,110,0,114,0,116,0,126,0,117,0,0,0,110,0,115,0,97,0,126,0,105,0,0,0,110,0,115,0,107,0,126,0,122,0,0,0,110,0,116,0,100,0,126,0,101,0,0,0,110,0,116,0,105,0,126,0,107,0,0,0,110,0,116,0,111,0,126,0,112,0,0,0,110,0,116,0,119,0,126,0,122,0,0,0,110,0,117,0,97,0,126,0,122,0,0,0,110,0,117,0,108,0,105,0,107,0,0,0,110,0,119,0,97,0,126,0,99,0,0,0,110,0,119,0,119,0,126,0,121,0,0,0,110,0,120,0,100,0,126,0,101,0,0,0,110,0,120,0,107,0,126,0,111,0,0,0,110,0,120,0,113,0,126,0,114,0,0,0,110,0,121,0,98,0,126,0,121,0,0,0,110,0,122,0,97,0,126,0,98,0,0,0,110,0,122,0,121,0,126,0,122,0,0,0,111,0,98,0,107,0,126,0,109,0,0,0,111,0,98,0,116,0,126,0,117,0,0,0,111,0,100,0,116,0,126,0,117,0,0,0,111,0,103,0,98,0,126,0,99,0,0,0,111,0,104,0,116,0,126,0,117,0,0,0,111,0,106,0,98,0,126,0,99,0,0,0,111,0,106,0,118,0,126,0,119,0,0,0,111,0,107,0,97,0,126,0,101,0,0,0,111,0,107,0,103,0,126,0,111,0,0,0,111,0,107,0,114,0,126,0,115,0,0,0,111,0,107,0,117,0,126,0,118,0,0,0,111,0,108,0,100,0,126,0,101,0,0,0,111,0,108,0,116,0,126,0,117,0,0,0,111,0,109,0,97,0,126,0,99,0,0,0,111,0,109,0,107,0,126,0,108,0,0,0,111,0,109,0,110,0,126,0,114,0,0,0,111,0,109,0,116,0,126,0,121,0,0,0,111,0,110,0,97,0,126,0,98,0,0,0,111,0,110,0,105,0,126,0,107,0,0,0,111,0,110,0,110,0,126,0,112,0,0,0,111,0,110,0,114,0,126,0,117,0,0,0,111,0,110,0,119,0,126,0,120,0,0,0,111,0,111,0,114,0,126,0,115,0,0,0,111,0,114,0,103,0,126,0,104,0,0,0,111,0,114,0,110,0,126,0,111,0,0,0,111,0,114,0,114,0,126,0,120,0,0,0,111,0,115,0,110,0,126,0,112,0,0,0,111,0,115,0,116,0,126,0,117,0,0,0,111,0,116,0,97,0,126,0,98,0,0,0,111,0,116,0,100,0,126,0,101,0,0,0,111,0,116,0,107,0,126,0,111,0,0,0,111,0,116,0,113,0,126,0,117,0,0,0,111,0,116,0,119,0,126,0,122,0,0,0,111,0,117,0,97,0,126,0,98,0,0,0,112,0,97,0,50,0,126,0,57,0,0,0,112,0,97,0,97,0,126,0,105,0,0,0,112,0,97,0,107,0,126,0,109,0,0,0,112,0,97,0,111,0,126,0,115,0,0,0,112,0,97,0,117,0,126,0,122,0,0,0,112,0,98,0,98,0,126,0,99,0,0,0,112,0,98,0,101,0,126,0,105,0,0,0,112,0,98,0,108,0,126,0,112,0,0,0,112,0,98,0,114,0,126,0,116,0,0,0,112,0,99,0,97,0,126,0,110,0,0,0,112,0,100,0,110,0,126,0,111,0,0,0,112,0,100,0,116,0,126,0,117,0,0,0,112,0,101,0,97,0,110,0,111,0,0,0,112,0,101,0,97,0,126,0,98,0,0,0,112,0,101,0,100,0,126,0,109,0,0,0,112,0,101,0,108,0,97,0,108,0,0,0,112,0,101,0,108,0,97,0,109,0,0,0,112,0,101,0,111,0,126,0,113,0,0,0,112,0,101,0,120,0,126,0,122,0,0,0,112,0,103,0,107,0,126,0,108,0,0,0,112,0,103,0,109,0,112,0,108,0,0,0,112,0,103,0,109,0,112,0,109,0,0,0,112,0,104,0,98,0,117,0,107,0,0,0,112,0,104,0,98,0,117,0,108,0,0,0,112,0,104,0,99,0,97,0,109,0,0,0,112,0,104,0,99,0,97,0,110,0,0,0,112,0,104,0,99,0,97,0,115,0,0,0,112,0,104,0,99,0,97,0,116,0,0,0,112,0,104,0,103,0,126,0,111,0,0,0,112,0,104,0,112,0,97,0,109,0,0,0,112,0,104,0,112,0,97,0,110,0,0,0,112,0,104,0,113,0,126,0,114,0,0,0,112,0,104,0,116,0,126,0,119,0,0,0,112,0,105,0,97,0,126,0,104,0,0,0,112,0,105,0,108,0,126,0,112,0,0,0,112,0,105,0,114,0,126,0,122,0,0,0,112,0,107,0,97,0,126,0,99,0,0,0,112,0,107,0,103,0,126,0,104,0,0,0,112,0,107,0,110,0,126,0,112,0,0,0,112,0,107,0,114,0,126,0,117,0,0,0,112,0,108,0,97,0,126,0,104,0,0,0,112,0,108,0,106,0,126,0,108,0,0,0,112,0,108,0,110,0,126,0,111,0,0,0,112,0,108,0,113,0,126,0,115,0,0,0,112,0,108,0,117,0,126,0,119,0,0,0,112,0,108,0,121,0,126,0,122,0,0,0,112,0,109,0,97,0,126,0,98,0,0,0,112,0,109,0,100,0,126,0,102,0,0,0,112,0,109,0,104,0,126,0,111,0,0,0,112,0,109,0,113,0,126,0,116,0,0,0,112,0,109,0,119,0,126,0,122,0,0,0,112,0,110,0,99,0,126,0,101,0,0,0,112,0,110,0,103,0,126,0,122,0,0,0,112,0,111,0,101,0,126,0,105,0,0,0,112,0,111,0,109,0,126,0,113,0,0,0,112,0,111,0,115,0,126,0,116,0,0,0,112,0,111,0,118,0,126,0,122,0,0,0,112,0,112,0,107,0,126,0,113,0,0,0,112,0,112,0,115,0,126,0,117,0,0,0,112,0,114,0,99,0,126,0,105,0,0,0,112,0,114,0,107,0,126,0,114,0,0,0,112,0,114,0,116,0,126,0,117,0,0,0,112,0,114,0,119,0,126,0,120,0,0,0,112,0,115,0,99,0,126,0,101,0,0,0,112,0,115,0,103,0,126,0,105,0,0,0,112,0,115,0,106,0,101,0,109,0,0,0,112,0,115,0,108,0,126,0,117,0,0,0,112,0,116,0,104,0,126,0,105,0,0,0,112,0,116,0,110,0,126,0,114,0,0,0,112,0,116,0,116,0,126,0,119,0,0,0,112,0,117,0,97,0,126,0,103,0,0,0,112,0,117,0,105,0,126,0,106,0,0,0,112,0,117,0,111,0,126,0,114,0,0,0,112,0,117,0,116,0,101,0,114,0,0,0,112,0,117,0,116,0,126,0,117,0,0,0,112,0,117,0,119,0,126,0,121,0,0,0,112,0,119,0,50,0,50,0,55,0,0,0,112,0,119,0,50,0,50,0,56,0,0,0,112,0,119,0,97,0,126,0,98,0,0,0,112,0,119,0,109,0,126,0,111,0,0,0,112,0,121,0,50,0,126,0,57,0,0,0,112,0,121,0,109,0,126,0,110,0,0,0,112,0,121,0,120,0,126,0,121,0,0,0,113,0,97,0,97,0,126,0,122,0,0,0,113,0,98,0,97,0,126,0,122,0,0,0,113,0,99,0,97,0,126,0,122,0,0,0,113,0,100,0,97,0,126,0,122,0,0,0,113,0,101,0,97,0,126,0,122,0,0,0,113,0,102,0,97,0,126,0,121,0,0,0,113,0,103,0,97,0,126,0,122,0,0,0,113,0,104,0,97,0,126,0,122,0,0,0,113,0,105,0,97,0,126,0,122,0,0,0,113,0,106,0,97,0,126,0,122,0,0,0,113,0,107,0,97,0,126,0,122,0,0,0,113,0,108,0,97,0,126,0,122,0,0,0,113,0,109,0,97,0,126,0,122,0,0,0,113,0,110,0,97,0,126,0,122,0,0,0,113,0,111,0,97,0,126,0,122,0,0,0,113,0,112,0,97,0,126,0,122,0,0,0,113,0,113,0,97,0,126,0,122,0,0,0,113,0,114,0,97,0,126,0,122,0,0,0,113,0,115,0,97,0,126,0,122,0,0,0,113,0,116,0,97,0,126,0,122,0,0,0,113,0,117,0,97,0,126,0,100,0,0,0,113,0,117,0,102,0,126,0,105,0,0,0,113,0,117,0,107,0,126,0,110,0,0,0,113,0,117,0,112,0,126,0,115,0,0,0,113,0,117,0,118,0,126,0,121,0,0,0,113,0,118,0,104,0,126,0,106,0,0,0,113,0,118,0,108,0,126,0,112,0,0,0,113,0,118,0,121,0,126,0,122,0,0,0,113,0,119,0,115,0,126,0,116,0,0,0,113,0,120,0,110,0,126,0,117,0,0,0,114,0,97,0,97,0,126,0,100,0,0,0,114,0,97,0,102,0,126,0,122,0,0,0,114,0,98,0,107,0,126,0,108,0,0,0,114,0,101,0,97,0,126,0,98,0,0,0,114,0,101,0,105,0,126,0,106,0,0,0,114,0,101,0,108,0,126,0,110,0,0,0,114,0,101,0,114,0,126,0,116,0,0,0,114,0,103,0,114,0,126,0,115,0,0,0,114,0,105,0,97,0,126,0,98,0,0,0,114,0,105,0,103,0,105,0,107,0,0,0,114,0,105,0,108,0,126,0,110,0,0,0,114,0,105,0,116,0,126,0,117,0,0,0,114,0,107,0,97,0,126,0,98,0,0,0,114,0,107,0,104,0,126,0,105,0,0,0,114,0,109,0,97,0,126,0,105,0,0,0,114,0,109,0,107,0,126,0,113,0,0,0,114,0,109,0,115,0,126,0,120,0,0,0,114,0,111,0,97,0,126,0,103,0,0,0,114,0,111,0,108,0,126,0,109,0,0,0,114,0,111,0,111,0,126,0,112,0,0,0,114,0,111,0,122,0,97,0,106,0,0,0,114,0,115,0,107,0,126,0,110,0,0,0,114,0,117,0,98,0,126,0,99,0,0,0,114,0,117,0,101,0,126,0,105,0,0,0,114,0,117,0,109,0,103,0,114,0,0,0,114,0,117,0,111,0,126,0,113,0,0,0,114,0,117,0,116,0,126,0,117,0,0,0,114,0,117,0,121,0,126,0,122,0,0,0,114,0,119,0,107,0,126,0,109,0,0,0,115,0,97,0,97,0,126,0,102,0,0,0,115,0,97,0,104,0,126,0,109,0,0,0,115,0,97,0,113,0,126,0,122,0,0,0,115,0,98,0,97,0,126,0,122,0,0,0,115,0,99,0,101,0,126,0,105,0,0,0,115,0,99,0,107,0,126,0,108,0,0,0,115,0,99,0,110,0,126,0,113,0,0,0,115,0,99,0,115,0,126,0,120,0,0,0,115,0,100,0,97,0,126,0,99,0,0,0,115,0,100,0,101,0,126,0,104,0,0,0,115,0,100,0,106,0,126,0,108,0,0,0,115,0,100,0,110,0,126,0,118,0,0,0,115,0,101,0,97,0,126,0,119,0,0,0,115,0,101,0,99,0,126,0,105,0,0,0,115,0,101,0,109,0,126,0,111,0,0,0,115,0,101,0,115,0,126,0,117,0,0,0,115,0,101,0,119,0,126,0,122,0,0,0,115,0,101,0,121,0,126,0,122,0,0,0,115,0,103,0,97,0,126,0,101,0,0,0,115,0,103,0,103,0,126,0,107,0,0,0,115,0,103,0,109,0,126,0,110,0,0,0,115,0,103,0,114,0,126,0,117,0,0,0,115,0,103,0,119,0,126,0,122,0,0,0,115,0,104,0,97,0,126,0,101,0,0,0,115,0,104,0,103,0,126,0,122,0,0,0,115,0,105,0,48,0,48,0,49,0,0,0,115,0,105,0,48,0,48,0,50,0,0,0,115,0,105,0,48,0,48,0,52,0,0,0,115,0,105,0,48,0,48,0,54,0,0,0,115,0,105,0,48,0,48,0,55,0,0,0,115,0,105,0,48,0,49,0,48,0,0,0,115,0,105,0,48,0,49,0,49,0,0,0,115,0,105,0,48,0,49,0,53,0,0,0,115,0,105,0,48,0,49,0,54,0,0,0,115,0,105,0,48,0,50,0,50,0,0,0,115,0,105,0,48,0,50,0,51,0,0,0,115,0,105,0,48,0,50,0,53,0,0,0,115,0,105,0,48,0,50,0,54,0,0,0,115,0,105,0,48,0,50,0,55,0,0,0,115,0,105,0,48,0,51,0,51,0,0,0,115,0,105,0,48,0,51,0,53,0,0,0,115,0,105,0,48,0,51,0,55,0,0,0,115,0,105,0,48,0,51,0,56,0,0,0,115,0,105,0,48,0,51,0,57,0,0,0,115,0,105,0,48,0,52,0,48,0,0,0,115,0,105,0,48,0,52,0,49,0,0,0,115,0,105,0,48,0,52,0,50,0,0,0,115,0,105,0,48,0,52,0,51,0,0,0,115,0,105,0,48,0,52,0,53,0,0,0,115,0,105,0,48,0,52,0,54,0,0,0,115,0,105,0,48,0,52,0,55,0,0,0,115,0,105,0,48,0,52,0,57,0,0,0,115,0,105,0,48,0,53,0,48,0,0,0,115,0,105,0,48,0,53,0,49,0,0,0,115,0,105,0,48,0,53,0,50,0,0,0,115,0,105,0,48,0,53,0,51,0,0,0,115,0,105,0,48,0,53,0,52,0,0,0,115,0,105,0,48,0,53,0,53,0,0,0,115,0,105,0,48,0,53,0,54,0,0,0,115,0,105,0,48,0,53,0,55,0,0,0,115,0,105,0,48,0,53,0,56,0,0,0,115,0,105,0,48,0,53,0,57,0,0,0,115,0,105,0,48,0,54,0,49,0,0,0,115,0,105,0,48,0,54,0,50,0,0,0,115,0,105,0,48,0,54,0,51,0,0,0,115,0,105,0,48,0,54,0,52,0,0,0,115,0,105,0,48,0,54,0,53,0,0,0,115,0,105,0,48,0,54,0,54,0,0,0,115,0,105,0,48,0,54,0,55,0,0,0,115,0,105,0,48,0,54,0,56,0,0,0,115,0,105,0,48,0,54,0,57,0,0,0,115,0,105,0,48,0,55,0,49,0,0,0,115,0,105,0,48,0,55,0,51,0,0,0,115,0,105,0,48,0,55,0,53,0,0,0,115,0,105,0,48,0,55,0,55,0,0,0,115,0,105,0,48,0,55,0,56,0,0,0,115,0,105,0,48,0,55,0,57,0,0,0,115,0,105,0,48,0,56,0,48,0,0,0,115,0,105,0,48,0,56,0,49,0,0,0,115,0,105,0,48,0,56,0,50,0,0,0,115,0,105,0,48,0,56,0,51,0,0,0,115,0,105,0,48,0,56,0,53,0,0,0,115,0,105,0,48,0,56,0,55,0,0,0,115,0,105,0,48,0,56,0,56,0,0,0,115,0,105,0,48,0,56,0,57,0,0,0,115,0,105,0,48,0,57,0,48,0,0,0,115,0,105,0,48,0,57,0,49,0,0,0,115,0,105,0,48,0,57,0,51,0,0,0,115,0,105,0,48,0,57,0,52,0,0,0,115,0,105,0,48,0,57,0,53,0,0,0,115,0,105,0,48,0,57,0,55,0,0,0,115,0,105,0,48,0,57,0,56,0,0,0,115,0,105,0,48,0,57,0,57,0,0,0,115,0,105,0,49,0,48,0,48,0,0,0,115,0,105,0,49,0,48,0,49,0,0,0,115,0,105,0,49,0,48,0,50,0,0,0,115,0,105,0,49,0,48,0,51,0,0,0,115,0,105,0,49,0,48,0,52,0,0,0,115,0,105,0,49,0,48,0,53,0,0,0,115,0,105,0,49,0,48,0,54,0,0,0,115,0,105,0,49,0,48,0,55,0,0,0,115,0,105,0,49,0,48,0,56,0,0,0,115,0,105,0,49,0,48,0,57,0,0,0,115,0,105,0,49,0,49,0,48,0,0,0,115,0,105,0,49,0,49,0,49,0,0,0,115,0,105,0,49,0,49,0,50,0,0,0,115,0,105,0,49,0,49,0,51,0,0,0,115,0,105,0,49,0,49,0,52,0,0,0,115,0,105,0,49,0,49,0,53,0,0,0,115,0,105,0,49,0,49,0,55,0,0,0,115,0,105,0,49,0,49,0,56,0,0,0,115,0,105,0,49,0,49,0,57,0,0,0,115,0,105,0,49,0,50,0,49,0,0,0,115,0,105,0,49,0,50,0,50,0,0,0,115,0,105,0,49,0,50,0,51,0,0,0,115,0,105,0,49,0,50,0,53,0,0,0,115,0,105,0,49,0,50,0,54,0,0,0,115,0,105,0,49,0,50,0,55,0,0,0,115,0,105,0,49,0,50,0,56,0,0,0,115,0,105,0,49,0,50,0,57,0,0,0,115,0,105,0,49,0,51,0,48,0,0,0,115,0,105,0,49,0,51,0,49,0,0,0,115,0,105,0,49,0,51,0,51,0,0,0,115,0,105,0,49,0,51,0,52,0,0,0,115,0,105,0,49,0,51,0,53,0,0,0,115,0,105,0,49,0,51,0,55,0,0,0,115,0,105,0,49,0,51,0,56,0,0,0,115,0,105,0,49,0,51,0,57,0,0,0,115,0,105,0,49,0,52,0,49,0,0,0,115,0,105,0,49,0,52,0,54,0,0,0,115,0,105,0,49,0,52,0,55,0,0,0,115,0,105,0,49,0,52,0,57,0,0,0,115,0,105,0,49,0,53,0,48,0,0,0,115,0,105,0,49,0,53,0,51,0,0,0,115,0,105,0,49,0,53,0,55,0,0,0,115,0,105,0,49,0,53,0,57,0,0,0,115,0,105,0,49,0,54,0,48,0,0,0,115,0,105,0,49,0,54,0,49,0,0,0,115,0,105,0,49,0,54,0,51,0,0,0,115,0,105,0,49,0,54,0,52,0,0,0,115,0,105,0,49,0,54,0,53,0,0,0,115,0,105,0,49,0,54,0,55,0,0,0,115,0,105,0,49,0,54,0,56,0,0,0,115,0,105,0,49,0,54,0,57,0,0,0,115,0,105,0,49,0,55,0,49,0,0,0,115,0,105,0,49,0,55,0,50,0,0,0,115,0,105,0,49,0,55,0,51,0,0,0,115,0,105,0,49,0,55,0,54,0,0,0,115,0,105,0,49,0,55,0,55,0,0,0,115,0,105,0,49,0,55,0,57,0,0,0,115,0,105,0,49,0,56,0,49,0,0,0,115,0,105,0,49,0,56,0,50,0,0,0,115,0,105,0,49,0,56,0,51,0,0,0,115,0,105,0,49,0,56,0,53,0,0,0,115,0,105,0,49,0,56,0,54,0,0,0,115,0,105,0,49,0,56,0,55,0,0,0,115,0,105,0,49,0,56,0,57,0,0,0,115,0,105,0,49,0,57,0,48,0,0,0,115,0,105,0,49,0,57,0,51,0,0,0,115,0,105,0,49,0,57,0,52,0,0,0,115,0,105,0,49,0,57,0,53,0,0,0,115,0,105,0,49,0,57,0,55,0,0,0,115,0,105,0,49,0,57,0,56,0,0,0,115,0,105,0,49,0,57,0,57,0,0,0,115,0,105,0,50,0,48,0,48,0,0,0,115,0,105,0,50,0,48,0,49,0,0,0,115,0,105,0,50,0,48,0,50,0,0,0,115,0,105,0,50,0,48,0,51,0,0,0,115,0,105,0,50,0,48,0,52,0,0,0,115,0,105,0,50,0,48,0,53,0,0,0,115,0,105,0,50,0,48,0,54,0,0,0,115,0,105,0,50,0,48,0,55,0,0,0,115,0,105,0,50,0,48,0,56,0,0,0,115,0,105,0,50,0,48,0,57,0,0,0,115,0,105,0,50,0,49,0,48,0,0,0,115,0,105,0,50,0,49,0,49,0,0,0,115,0,105,0,50,0,49,0,50,0,0,0,115,0,105,0,50,0,49,0,51,0,0,0,115,0,105,0,97,0,126,0,98,0,0,0,115,0,105,0,100,0,126,0,109,0,0,0,115,0,105,0,111,0,126,0,122,0,0,0,115,0,106,0,97,0,126,0,98,0,0,0,115,0,106,0,100,0,126,0,101,0,0,0,115,0,106,0,107,0,126,0,112,0,0,0,115,0,106,0,114,0,126,0,117,0,0,0,115,0,107,0,97,0,126,0,106,0,0,0,115,0,107,0,109,0,126,0,122,0,0,0,115,0,108,0,99,0,126,0,106,0,0,0,115,0,108,0,108,0,126,0,110,0,0,0,115,0,108,0,112,0,126,0,117,0,0,0,115,0,108,0,119,0,126,0,122,0,0,0,115,0,109,0,97,0,126,0,99,0,0,0,115,0,109,0,102,0,126,0,110,0,0,0,115,0,109,0,112,0,126,0,122,0,0,0,115,0,110,0,101,0,126,0,103,0,0,0,115,0,110,0,105,0,126,0,115,0,0,0,115,0,110,0,117,0,126,0,122,0,0,0,115,0,111,0,97,0,126,0,101,0,0,0,115,0,111,0,103,0,126,0,108,0,0,0,115,0,111,0,108,0,98,0,97,0,0,0,115,0,111,0,110,0,126,0,115,0,0,0,115,0,111,0,117,0,126,0,122,0,0,0,115,0,112,0,98,0,126,0,101,0,0,0,115,0,112,0,107,0,126,0,118,0,0,0,115,0,113,0,106,0,126,0,107,0,0,0,115,0,113,0,109,0,126,0,111,0,0,0,115,0,113,0,113,0,126,0,117,0,0,0,115,0,114,0,97,0,126,0,98,0,0,0,115,0,114,0,101,0,126,0,105,0,0,0,115,0,114,0,107,0,126,0,111,0,0,0,115,0,114,0,113,0,126,0,122,0,0,0,115,0,115,0,97,0,126,0,118,0,0,0,115,0,115,0,120,0,126,0,122,0,0,0,115,0,116,0,97,0,126,0,98,0,0,0,115,0,116,0,100,0,126,0,119,0,0,0,115,0,117,0,97,0,126,0,99,0,0,0,115,0,117,0,105,0,126,0,107,0,0,0,115,0,117,0,108,0,126,0,109,0,0,0,115,0,117,0,113,0,126,0,116,0,0,0,115,0,117,0,118,0,126,0,122,0,0,0,115,0,118,0,97,0,126,0,99,0,0,0,115,0,119,0,102,0,126,0,103,0,0,0,115,0,119,0,105,0,126,0,121,0,0,0,115,0,120,0,98,0,126,0,99,0,0,0,115,0,120,0,107,0,126,0,111,0,0,0,115,0,120,0,114,0,126,0,115,0,0,0,115,0,121,0,97,0,126,0,100,0,0,0,115,0,121,0,107,0,126,0,111,0,0,0,115,0,121,0,114,0,126,0,115,0,0,0,115,0,121,0,119,0,126,0,121,0,0,0,115,0,122,0,97,0,126,0,101,0,0,0,115,0,122,0,118,0,126,0,119,0,0,0,116,0,97,0,97,0,126,0,103,0,0,0,116,0,97,0,105,0,126,0,108,0,0,0,116,0,97,0,110,0,126,0,115,0,0,0,116,0,97,0,117,0,126,0,122,0,0,0,116,0,98,0,99,0,126,0,122,0,0,0,116,0,99,0,97,0,126,0,105,0,0,0,116,0,99,0,107,0,126,0,113,0,0,0,116,0,99,0,115,0,126,0,117,0,0,0,116,0,99,0,119,0,126,0,122,0,0,0,116,0,100,0,97,0,126,0,111,0,0,0,116,0,100,0,113,0,126,0,116,0,0,0,116,0,100,0,120,0,126,0,121,0,0,0,116,0,101,0,97,0,126,0,105,0,0,0,116,0,101,0,109,0,126,0,122,0,0,0,116,0,102,0,110,0,126,0,111,0,0,0,116,0,103,0,97,0,126,0,102,0,0,0,116,0,103,0,104,0,126,0,106,0,0,0,116,0,103,0,110,0,126,0,122,0,0,0,116,0,104,0,100,0,126,0,102,0,0,0,116,0,104,0,104,0,126,0,105,0,0,0,116,0,104,0,107,0,126,0,110,0,0,0,116,0,104,0,112,0,126,0,118,0,0,0,116,0,104,0,119,0,126,0,120,0,0,0,116,0,104,0,121,0,126,0,122,0,0,0,116,0,105,0,100,0,126,0,101,0,0,0,116,0,105,0,102,0,126,0,113,0,0,0,116,0,105,0,115,0,126,0,122,0,0,0,116,0,106,0,105,0,126,0,106,0,0,0,116,0,106,0,108,0,126,0,112,0,0,0,116,0,107,0,97,0,126,0,98,0,0,0,116,0,107,0,100,0,126,0,103,0,0,0,116,0,107,0,108,0,126,0,110,0,0,0,116,0,107,0,112,0,126,0,120,0,0,0,116,0,108,0,97,0,126,0,100,0,0,0,116,0,108,0,102,0,126,0,118,0,0,0,116,0,108,0,120,0,126,0,121,0,0,0,116,0,109,0,97,0,126,0,98,0,0,0,116,0,109,0,97,0,126,0,111,0,0,0,116,0,109,0,108,0,126,0,109,0,0,0,116,0,109,0,113,0,126,0,119,0,0,0,116,0,109,0,121,0,126,0,122,0,0,0,116,0,110,0,97,0,126,0,100,0,0,0,116,0,110,0,101,0,126,0,102,0,0,0,116,0,110,0,103,0,126,0,105,0,0,0,116,0,110,0,107,0,126,0,122,0,0,0,116,0,111,0,98,0,126,0,100,0,0,0,116,0,111,0,102,0,126,0,109,0,0,0,116,0,111,0,111,0,126,0,115,0,0,0,116,0,111,0,117,0,126,0,122,0,0,0,116,0,112,0,101,0,126,0,103,0,0,0,116,0,112,0,105,0,126,0,114,0,0,0,116,0,112,0,116,0,126,0,122,0,0,0,116,0,113,0,108,0,126,0,114,0,0,0,116,0,113,0,116,0,126,0,117,0,0,0,116,0,114,0,97,0,126,0,122,0,0,0,116,0,115,0,97,0,126,0,101,0,0,0,116,0,115,0,103,0,126,0,109,0,0,0,116,0,115,0,112,0,126,0,122,0,0,0,116,0,116,0,97,0,126,0,112,0,0,0,116,0,116,0,101,0,116,0,111,0,0,0,116,0,116,0,114,0,99,0,109,0,0,0,116,0,116,0,114,0,126,0,119,0,0,0,116,0,116,0,119,0,116,0,111,0,0,0,116,0,116,0,121,0,126,0,122,0,0,0,116,0,117,0,97,0,126,0,106,0,0,0,116,0,117,0,108,0,126,0,113,0,0,0,116,0,117,0,115,0,126,0,122,0,0,0,116,0,118,0,100,0,126,0,101,0,0,0,116,0,118,0,107,0,126,0,111,0,0,0,116,0,118,0,115,0,126,0,117,0,0,0,116,0,118,0,119,0,126,0,121,0,0,0,116,0,119,0,97,0,126,0,104,0,0,0,116,0,119,0,107,0,104,0,113,0,0,0,116,0,119,0,108,0,126,0,114,0,0,0,116,0,119,0,116,0,110,0,113,0,0,0,116,0,119,0,116,0,112,0,113,0,0,0,116,0,119,0,116,0,120,0,113,0,0,0,116,0,119,0,116,0,126,0,117,0,0,0,116,0,119,0,119,0,126,0,121,0,0,0,116,0,120,0,97,0,126,0,99,0,0,0,116,0,120,0,103,0,126,0,106,0,0,0,116,0,120,0,109,0,126,0,111,0,0,0,116,0,120,0,113,0,126,0,117,0,0,0,116,0,120,0,120,0,126,0,121,0,0,0,116,0,121,0,104,0,126,0,106,0,0,0,116,0,121,0,114,0,126,0,118,0,0,0,116,0,121,0,120,0,126,0,122,0,0,0,116,0,122,0,108,0,126,0,111,0,0,0,117,0,97,0,109,0,126,0,110,0,0,0,117,0,99,0,99,0,111,0,114,0,0,0,117,0,100,0,105,0,126,0,106,0,0,0,117,0,100,0,108,0,126,0,109,0,0,0,117,0,103,0,49,0,48,0,49,0,0,0,117,0,103,0,49,0,48,0,50,0,0,0,117,0,103,0,49,0,48,0,51,0,0,0,117,0,103,0,49,0,48,0,52,0,0,0,117,0,103,0,49,0,48,0,53,0,0,0,117,0,103,0,49,0,48,0,54,0,0,0,117,0,103,0,49,0,48,0,55,0,0,0,117,0,103,0,49,0,48,0,56,0,0,0,117,0,103,0,49,0,48,0,57,0,0,0,117,0,103,0,49,0,49,0,48,0,0,0,117,0,103,0,49,0,49,0,49,0,0,0,117,0,103,0,49,0,49,0,50,0,0,0,117,0,103,0,49,0,49,0,51,0,0,0,117,0,103,0,49,0,49,0,52,0,0,0,117,0,103,0,49,0,49,0,53,0,0,0,117,0,103,0,49,0,49,0,54,0,0,0,117,0,103,0,49,0,49,0,55,0,0,0,117,0,103,0,49,0,49,0,56,0,0,0,117,0,103,0,49,0,49,0,57,0,0,0,117,0,103,0,49,0,50,0,48,0,0,0,117,0,103,0,49,0,50,0,49,0,0,0,117,0,103,0,49,0,50,0,50,0,0,0,117,0,103,0,49,0,50,0,51,0,0,0,117,0,103,0,49,0,50,0,52,0,0,0,117,0,103,0,49,0,50,0,53,0,0,0,117,0,103,0,49,0,50,0,54,0,0,0,117,0,103,0,50,0,48,0,49,0,0,0,117,0,103,0,50,0,48,0,50,0,0,0,117,0,103,0,50,0,48,0,51,0,0,0,117,0,103,0,50,0,48,0,52,0,0,0,117,0,103,0,50,0,48,0,53,0,0,0,117,0,103,0,50,0,48,0,54,0,0,0,117,0,103,0,50,0,48,0,55,0,0,0,117,0,103,0,50,0,48,0,56,0,0,0,117,0,103,0,50,0,48,0,57,0,0,0,117,0,103,0,50,0,49,0,48,0,0,0,117,0,103,0,50,0,49,0,49,0,0,0,117,0,103,0,50,0,49,0,50,0,0,0,117,0,103,0,50,0,49,0,51,0,0,0,117,0,103,0,50,0,49,0,52,0,0,0,117,0,103,0,50,0,49,0,53,0,0,0,117,0,103,0,50,0,49,0,54,0,0,0,117,0,103,0,50,0,49,0,55,0,0,0,117,0,103,0,50,0,49,0,56,0,0,0,117,0,103,0,50,0,49,0,57,0,0,0,117,0,103,0,50,0,50,0,48,0,0,0,117,0,103,0,50,0,50,0,49,0,0,0,117,0,103,0,50,0,50,0,50,0,0,0,117,0,103,0,50,0,50,0,51,0,0,0,117,0,103,0,50,0,50,0,52,0,0,0,117,0,103,0,50,0,50,0,53,0,0,0,117,0,103,0,50,0,50,0,54,0,0,0,117,0,103,0,50,0,50,0,55,0,0,0,117,0,103,0,50,0,50,0,56,0,0,0,117,0,103,0,50,0,50,0,57,0,0,0,117,0,103,0,50,0,51,0,53,0,0,0,117,0,103,0,50,0,51,0,54,0,0,0,117,0,103,0,50,0,51,0,55,0,0,0,117,0,103,0,51,0,48,0,49,0,0,0,117,0,103,0,51,0,48,0,50,0,0,0,117,0,103,0,51,0,48,0,51,0,0,0,117,0,103,0,51,0,48,0,52,0,0,0,117,0,103,0,51,0,48,0,53,0,0,0,117,0,103,0,51,0,48,0,54,0,0,0,117,0,103,0,51,0,48,0,55,0,0,0,117,0,103,0,51,0,48,0,56,0,0,0,117,0,103,0,51,0,48,0,57,0,0,0,117,0,103,0,51,0,49,0,48,0,0,0,117,0,103,0,51,0,49,0,49,0,0,0,117,0,103,0,51,0,49,0,50,0,0,0,117,0,103,0,51,0,49,0,51,0,0,0,117,0,103,0,51,0,49,0,52,0,0,0,117,0,103,0,51,0,49,0,53,0,0,0,117,0,103,0,51,0,49,0,54,0,0,0,117,0,103,0,51,0,49,0,55,0,0,0,117,0,103,0,51,0,49,0,56,0,0,0,117,0,103,0,51,0,49,0,57,0,0,0,117,0,103,0,51,0,50,0,49,0,0,0,117,0,103,0,51,0,50,0,50,0,0,0,117,0,103,0,51,0,50,0,51,0,0,0,117,0,103,0,51,0,50,0,52,0,0,0,117,0,103,0,51,0,50,0,53,0,0,0,117,0,103,0,51,0,50,0,54,0,0,0,117,0,103,0,51,0,50,0,55,0,0,0,117,0,103,0,51,0,50,0,57,0,0,0,117,0,103,0,51,0,51,0,48,0,0,0,117,0,103,0,51,0,51,0,49,0,0,0,117,0,103,0,51,0,51,0,51,0,0,0,117,0,103,0,51,0,51,0,53,0,0,0,117,0,103,0,51,0,51,0,55,0,0,0,117,0,103,0,52,0,48,0,49,0,0,0,117,0,103,0,52,0,48,0,50,0,0,0,117,0,103,0,52,0,48,0,51,0,0,0,117,0,103,0,52,0,48,0,52,0,0,0,117,0,103,0,52,0,48,0,53,0,0,0,117,0,103,0,52,0,48,0,54,0,0,0,117,0,103,0,52,0,48,0,55,0,0,0,117,0,103,0,52,0,48,0,56,0,0,0,117,0,103,0,52,0,48,0,57,0,0,0,117,0,103,0,52,0,49,0,48,0,0,0,117,0,103,0,52,0,49,0,49,0,0,0,117,0,103,0,52,0,49,0,50,0,0,0,117,0,103,0,52,0,49,0,51,0,0,0,117,0,103,0,52,0,49,0,53,0,0,0,117,0,103,0,52,0,49,0,54,0,0,0,117,0,103,0,52,0,50,0,48,0,0,0,117,0,103,0,52,0,50,0,49,0,0,0,117,0,103,0,52,0,50,0,50,0,0,0,117,0,103,0,52,0,50,0,51,0,0,0,117,0,103,0,52,0,50,0,52,0,0,0,117,0,103,0,52,0,50,0,53,0,0,0,117,0,103,0,52,0,50,0,54,0,0,0,117,0,103,0,52,0,50,0,55,0,0,0,117,0,103,0,52,0,50,0,57,0,0,0,117,0,103,0,52,0,51,0,49,0,0,0,117,0,103,0,52,0,51,0,50,0,0,0,117,0,103,0,52,0,51,0,51,0,0,0,117,0,103,0,52,0,51,0,53,0,0,0,117,0,103,0,97,0,126,0,98,0,0,0,117,0,103,0,110,0,126,0,111,0,0,0,117,0,107,0,103,0,126,0,105,0,0,0,117,0,107,0,112,0,126,0,113,0,0,0,117,0,107,0,117,0,126,0,119,0,0,0,117,0,108,0,97,0,126,0,99,0,0,0,117,0,108,0,101,0,126,0,102,0,0,0,117,0,108,0,107,0,126,0,110,0,0,0,117,0,109,0,97,0,126,0,100,0,0,0,117,0,109,0,109,0,126,0,112,0,0,0,117,0,109,0,114,0,126,0,115,0,0,0,117,0,110,0,109,0,126,0,110,0,0,0,117,0,114,0,97,0,126,0,99,0,0,0,117,0,114,0,101,0,126,0,112,0,0,0,117,0,114,0,116,0,126,0,122,0,0,0,117,0,115,0,104,0,126,0,105,0,0,0,118,0,97,0,101,0,126,0,106,0,0,0,118,0,97,0,108,0,126,0,112,0,0,0,118,0,97,0,114,0,126,0,115,0,0,0,118,0,97,0,117,0,126,0,118,0,0,0,118,0,101,0,97,0,126,0,112,0,0,0,118,0,101,0,99,0,126,0,100,0,0,0,118,0,101,0,108,0,126,0,109,0,0,0,118,0,101,0,111,0,126,0,112,0,0,0,118,0,101,0,114,0,126,0,122,0,0,0,118,0,105,0,99,0,126,0,100,0,0,0,118,0,105,0,102,0,126,0,103,0,0,0,118,0,105,0,115,0,126,0,116,0,0,0,118,0,107,0,106,0,126,0,112,0,0,0,118,0,107,0,116,0,126,0,117,0,0,0,118,0,109,0,97,0,126,0,109,0,0,0,118,0,109,0,112,0,126,0,115,0,0,0,118,0,109,0,117,0,126,0,122,0,0,0,118,0,114,0,115,0,126,0,116,0,0,0,118,0,117,0,109,0,126,0,110,0,0,0,119,0,97,0,97,0,126,0,122,0,0,0,119,0,98,0,97,0,126,0,98,0,0,0,119,0,98,0,101,0,126,0,102,0,0,0,119,0,98,0,104,0,126,0,109,0,0,0,119,0,98,0,112,0,126,0,116,0,0,0,119,0,98,0,118,0,126,0,119,0,0,0,119,0,100,0,106,0,126,0,107,0,0,0,119,0,100,0,116,0,126,0,117,0,0,0,119,0,101,0,99,0,126,0,100,0,0,0,119,0,101,0,103,0,126,0,105,0,0,0,119,0,101,0,109,0,126,0,112,0,0,0,119,0,101,0,114,0,126,0,117,0,0,0,119,0,103,0,97,0,126,0,98,0,0,0,119,0,105,0,98,0,126,0,99,0,0,0,119,0,105,0,101,0,126,0,110,0,0,0,119,0,105,0,117,0,126,0,118,0,0,0,119,0,107,0,97,0,126,0,98,0,0,0,119,0,108,0,103,0,126,0,105,0,0,0,119,0,108,0,107,0,126,0,109,0,0,0,119,0,108,0,114,0,126,0,115,0,0,0,119,0,108,0,117,0,126,0,121,0,0,0,119,0,109,0,97,0,126,0,101,0,0,0,119,0,109,0,103,0,126,0,105,0,0,0,119,0,109,0,109,0,126,0,111,0,0,0,119,0,109,0,115,0,126,0,116,0,0,0,119,0,109,0,119,0,126,0,120,0,0,0,119,0,110,0,98,0,126,0,101,0,0,0,119,0,110,0,109,0,126,0,112,0,0,0,119,0,111,0,97,0,126,0,103,0,0,0,119,0,111,0,109,0,126,0,111,0,0,0,119,0,111,0,114,0,126,0,115,0,0,0,119,0,114,0,103,0,126,0,105,0,0,0,119,0,114,0,107,0,126,0,112,0,0,0,119,0,114,0,114,0,126,0,115,0,0,0,119,0,114,0,117,0,126,0,122,0,0,0,119,0,115,0,114,0,126,0,115,0,0,0,119,0,115,0,117,0,126,0,118,0,0,0,119,0,116,0,104,0,126,0,105,0,0,0,119,0,117,0,97,0,126,0,98,0,0,0,119,0,117,0,108,0,126,0,110,0,0,0,119,0,117,0,116,0,126,0,118,0,0,0,119,0,117,0,120,0,126,0,121,0,0,0,119,0,119,0,97,0,126,0,98,0,0,0,119,0,121,0,109,0,126,0,110,0,0,0,120,0,97,0,97,0,126,0,101,0,0,0,120,0,97,0,105,0,126,0,119,0,0,0,120,0,98,0,98,0,126,0,101,0,0,0,120,0,98,0,105,0,126,0,106,0,0,0,120,0,98,0,109,0,126,0,112,0,0,0,120,0,99,0,98,0,126,0,99,0,0,0,120,0,99,0,103,0,126,0,104,0,0,0,120,0,99,0,108,0,126,0,111,0,0,0,120,0,99,0,116,0,126,0,119,0,0,0,120,0,101,0,108,0,126,0,109,0,0,0,120,0,101,0,114,0,126,0,117,0,0,0,120,0,103,0,97,0,126,0,98,0,0,0,120,0,103,0,102,0,126,0,103,0,0,0,120,0,103,0,108,0,126,0,110,0,0,0,120,0,104,0,99,0,126,0,101,0,0,0,120,0,104,0,116,0,126,0,118,0,0,0,120,0,105,0,114,0,126,0,115,0,0,0,120,0,107,0,97,0,126,0,103,0,0,0,120,0,107,0,105,0,126,0,108,0,0,0,120,0,107,0,110,0,126,0,122,0,0,0,120,0,108,0,97,0,126,0,101,0,0,0,120,0,108,0,110,0,126,0,112,0,0,0,120,0,109,0,97,0,126,0,104,0,0,0,120,0,109,0,106,0,126,0,122,0,0,0,120,0,110,0,97,0,126,0,98,0,0,0,120,0,110,0,103,0,126,0,107,0,0,0,120,0,110,0,109,0,126,0,111,0,0,0,120,0,110,0,113,0,126,0,117,0,0,0,120,0,110,0,121,0,126,0,122,0,0,0,120,0,111,0,99,0,126,0,100,0,0,0,120,0,111,0,109,0,126,0,112,0,0,0,120,0,112,0,97,0,126,0,100,0,0,0,120,0,112,0,102,0,126,0,122,0,0,0,120,0,114,0,97,0,126,0,98,0,0,0,120,0,114,0,100,0,126,0,101,0,0,0,120,0,114,0,109,0,126,0,110,0,0,0,120,0,114,0,116,0,126,0,117,0,0,0,120,0,115,0,97,0,126,0,101,0,0,0,120,0,115,0,104,0,126,0,105,0,0,0,120,0,115,0,109,0,126,0,115,0,0,0,120,0,115,0,117,0,126,0,118,0,0,0,120,0,116,0,97,0,126,0,101,0,0,0,120,0,116,0,103,0,126,0,106,0,0,0,120,0,116,0,108,0,126,0,119,0,0,0,120,0,117,0,97,0,126,0,98,0,0,0,120,0,117,0,108,0,126,0,112,0,0,0,120,0,117,0,116,0,126,0,117,0,0,0,120,0,118,0,110,0,126,0,111,0,0,0,120,0,119,0,99,0,126,0,101,0,0,0,120,0,119,0,106,0,126,0,108,0,0,0,120,0,121,0,97,0,126,0,98,0,0,0,120,0,121,0,106,0,126,0,108,0,0,0,121,0,97,0,97,0,126,0,122,0,0,0,121,0,98,0,97,0,126,0,98,0,0,0,121,0,98,0,104,0,126,0,111,0,0,0,121,0,98,0,120,0,126,0,121,0,0,0,121,0,101,0,105,0,126,0,106,0,0,0,121,0,101,0,114,0,126,0,118,0,0,0,121,0,103,0,108,0,126,0,109,0,0,0,121,0,103,0,114,0,126,0,115,0,0,0,121,0,105,0,102,0,126,0,110,0,0,0,121,0,105,0,112,0,126,0,118,0,0,0,121,0,107,0,107,0,126,0,111,0,0,0,121,0,107,0,116,0,126,0,117,0,0,0,121,0,108,0,97,0,126,0,98,0,0,0,121,0,108,0,108,0,126,0,111,0,0,0,121,0,109,0,98,0,126,0,101,0,0,0,121,0,109,0,103,0,126,0,105,0,0,0,121,0,109,0,107,0,126,0,115,0,0,0,121,0,110,0,100,0,126,0,101,0,0,0,121,0,110,0,107,0,126,0,108,0,0,0,121,0,110,0,110,0,126,0,111,0,0,0,121,0,111,0,107,0,126,0,110,0,0,0,121,0,111,0,120,0,126,0,121,0,0,0,121,0,112,0,97,0,126,0,98,0,0,0,121,0,112,0,103,0,126,0,104,0,0,0,121,0,112,0,109,0,126,0,112,0,0,0,121,0,114,0,97,0,126,0,98,0,0,0,121,0,114,0,107,0,126,0,111,0,0,0,121,0,115,0,99,0,126,0,100,0,0,0,121,0,115,0,108,0,126,0,112,0,0,0,121,0,115,0,114,0,126,0,115,0,0,0,121,0,117,0,97,0,126,0,103,0,0,0,121,0,117,0,105,0,126,0,110,0,0,0,121,0,117,0,112,0,126,0,114,0,0,0,121,0,117,0,119,0,126,0,122,0,0,0,121,0,119,0,113,0,126,0,114,0,0,0,121,0,119,0,116,0,126,0,117,0,0,0,121,0,120,0,108,0,126,0,109,0,0,0,122,0,97,0,97,0,126,0,104,0,0,0,122,0,97,0,106,0,126,0,109,0,0,0,122,0,97,0,111,0,126,0,122,0,0,0,122,0,98,0,116,0,126,0,117,0,0,0,122,0,101,0,103,0,126,0,104,0,0,0,122,0,103,0,97,0,126,0,98,0,0,0,122,0,103,0,109,0,126,0,110,0,0,0,122,0,104,0,119,0,126,0,120,0,0,0,122,0,105,0,97,0,126,0,98,0,0,0,122,0,105,0,107,0,126,0,110,0,0,0,122,0,107,0,97,0,126,0,98,0,0,0,122,0,107,0,103,0,126,0,104,0,0,0,122,0,107,0,110,0,126,0,112,0,0,0,122,0,107,0,116,0,126,0,118,0,0,0,122,0,108,0,109,0,126,0,110,0,0,0,122,0,109,0,97,0,126,0,122,0,0,0,122,0,110,0,100,0,126,0,101,0,0,0,122,0,111,0,113,0,126,0,115,0,0,0,122,0,112,0,97,0,126,0,122,0,0,0,122,0,114,0,110,0,126,0,112,0,0,0,122,0,115,0,107,0,126,0,108,0,0,0,122,0,116,0,108,0,126,0,110,0,0,0,122,0,116,0,112,0,126,0,113,0,0,0,122,0,116,0,115,0,126,0,117,0,0,0,122,0,116,0,120,0,126,0,121,0,0,0,122,0,117,0,109,0,126,0,110,0,0,0,116,0,114,0,56,0,48,0,126,0,49,0,0,0,99,0,104,0,122,0,103,0,126,0,104,0,0,0,112,0,116,0,95,0,42,0,95,0,42,0,0,0,103,0,114,0,105,0,116,0,97,0,108,0,0,0,97,0,111,0,49,0,57,0,57,0,48,0,0,0,97,0,114,0,95,0,42,0,95,0,42,0,0,0,101,0,110,0,95,0,42,0,95,0,42,0,0,0,101,0,115,0,95,0,42,0,95,0,42,0,0,0,105,0,100,0,98,0,97,0,126,0,98,0,0,0,105,0,116,0,55,0,55,0,126,0,56,0,0,0,109,0,100,0,115,0,110,0,126,0,111,0,0,0,110,0,103,0,107,0,100,0,126,0,101,0,0,0,114,0,117,0,107,0,107,0,126,0,108,0,0,0,99,0,111,0,112,0,116,0,105,0,99,0,0,0,110,0,100,0,121,0,117,0,107,0,97,0,0,0,112,0,105,0,110,0,121,0,105,0,110,0,0,0,66,0,114,0,97,0,104,0,126,0,105,0,0,0,72,0,97,0,110,0,115,0,126,0,116,0,0,0,76,0,105,0,110,0,97,0,126,0,98,0,0,0,81,0,97,0,97,0,97,0,126,0,102,0,0,0,81,0,97,0,97,0,106,0,126,0,112,0,0,0,81,0,97,0,97,0,113,0,126,0,122,0,0,0,81,0,97,0,98,0,97,0,126,0,120,0,0,0,97,0,99,0,122,0,122,0,122,0,122,0,0,0,97,0,100,0,48,0,50,0,126,0,56,0,0,0,97,0,100,0,122,0,122,0,122,0,122,0,0,0,97,0,101,0,122,0,122,0,122,0,122,0,0,0,97,0,102,0,122,0,122,0,122,0,122,0,0,0,97,0,103,0,48,0,51,0,126,0,56,0,0,0,97,0,103,0,49,0,48,0,126,0,49,0,0,0,97,0,103,0,122,0,122,0,122,0,122,0,0,0,97,0,105,0,122,0,122,0,122,0,122,0,0,0,97,0,108,0,48,0,49,0,126,0,57,0,0,0,97,0,108,0,49,0,48,0,126,0,50,0,0,0,97,0,108,0,107,0,97,0,126,0,99,0,0,0,97,0,108,0,112,0,113,0,126,0,114,0,0,0,97,0,108,0,122,0,122,0,122,0,122,0,0,0,97,0,109,0,122,0,122,0,122,0,122,0,0,0,97,0,111,0,122,0,122,0,122,0,122,0,0,0,97,0,113,0,122,0,122,0,122,0,122,0,0,0,97,0,114,0,97,0,110,0,101,0,115,0,0,0,97,0,114,0,122,0,122,0,122,0,122,0,0,0,97,0,115,0,97,0,110,0,116,0,101,0,0,0,97,0,115,0,122,0,122,0,122,0,122,0,0,0,97,0,116,0,122,0,122,0,122,0,122,0,0,0,97,0,117,0,118,0,101,0,114,0,110,0,0,0,97,0,117,0,122,0,122,0,122,0,122,0,0,0,97,0,119,0,122,0,122,0,122,0,122,0,0,0,97,0,120,0,122,0,122,0,122,0,122,0,0,0,97,0,122,0,122,0,122,0,122,0,122,0,0,0,98,0,97,0,48,0,49,0,126,0,57,0,0,0,98,0,97,0,122,0,122,0,122,0,122,0,0,0,98,0,98,0,48,0,49,0,126,0,57,0,0,0,98,0,98,0,49,0,48,0,126,0,49,0,0,0,98,0,98,0,122,0,122,0,122,0,122,0,0,0,98,0,100,0,48,0,49,0,126,0,57,0,0,0,98,0,100,0,49,0,48,0,126,0,57,0,0,0,98,0,100,0,50,0,48,0,126,0,57,0,0,0,98,0,100,0,51,0,48,0,126,0,57,0,0,0,98,0,100,0,52,0,48,0,126,0,57,0,0,0,98,0,100,0,53,0,48,0,126,0,57,0,0,0,98,0,100,0,54,0,48,0,126,0,52,0,0,0,98,0,100,0,122,0,122,0,122,0,122,0,0,0,98,0,101,0,122,0,122,0,122,0,122,0,0,0,98,0,102,0,48,0,49,0,126,0,57,0,0,0,98,0,102,0,49,0,48,0,126,0,51,0,0,0,98,0,102,0,122,0,122,0,122,0,122,0,0,0,98,0,103,0,48,0,49,0,126,0,57,0,0,0,98,0,103,0,49,0,48,0,126,0,57,0,0,0,98,0,103,0,50,0,48,0,126,0,56,0,0,0,98,0,103,0,122,0,122,0,122,0,122,0,0,0,98,0,104,0,49,0,51,0,126,0,53,0,0,0,98,0,104,0,122,0,122,0,122,0,122,0,0,0,98,0,105,0,98,0,108,0,126,0,109,0,0,0,98,0,105,0,122,0,122,0,122,0,122,0,0,0,98,0,106,0,97,0,107,0,126,0,108,0,0,0,98,0,106,0,122,0,122,0,122,0,122,0,0,0,98,0,108,0,122,0,122,0,122,0,122,0,0,0,98,0,109,0,122,0,122,0,122,0,122,0,0,0,98,0,110,0,122,0,122,0,122,0,122,0,0,0,98,0,111,0,122,0,122,0,122,0,122,0,0,0,98,0,113,0,122,0,122,0,122,0,122,0,0,0,98,0,114,0,97,0,108,0,126,0,109,0,0,0,98,0,114,0,109,0,115,0,126,0,116,0,0,0,98,0,114,0,112,0,97,0,126,0,98,0,0,0,98,0,114,0,114,0,110,0,126,0,111,0,0,0,98,0,114,0,114,0,114,0,126,0,115,0,0,0,98,0,114,0,122,0,122,0,122,0,122,0,0,0,98,0,115,0,110,0,111,0,126,0,112,0,0,0,98,0,115,0,122,0,122,0,122,0,122,0,0,0,98,0,116,0,49,0,49,0,126,0,53,0,0,0,98,0,116,0,50,0,49,0,126,0,52,0,0,0,98,0,116,0,51,0,49,0,126,0,52,0,0,0,98,0,116,0,52,0,49,0,126,0,53,0,0,0,98,0,116,0,122,0,122,0,122,0,122,0,0,0,98,0,118,0,122,0,122,0,122,0,122,0,0,0,98,0,119,0,115,0,111,0,126,0,112,0,0,0,98,0,119,0,122,0,122,0,122,0,122,0,0,0,98,0,121,0,122,0,122,0,122,0,122,0,0,0,98,0,122,0,122,0,122,0,122,0,122,0,0,0,99,0,97,0,110,0,115,0,126,0,117,0,0,0,99,0,97,0,122,0,122,0,122,0,122,0,0,0,99,0,99,0,122,0,122,0,122,0,122,0,0,0,99,0,100,0,104,0,107,0,126,0,108,0,0,0,99,0,100,0,109,0,110,0,126,0,111,0,0,0,99,0,100,0,122,0,122,0,122,0,122,0,0,0,99,0,102,0,122,0,122,0,122,0,122,0,0,0,99,0,103,0,49,0,49,0,126,0,54,0,0,0,99,0,103,0,122,0,122,0,122,0,122,0,0,0,99,0,104,0,115,0,103,0,126,0,104,0,0,0,99,0,104,0,122,0,122,0,122,0,122,0,0,0,99,0,105,0,48,0,49,0,126,0,57,0,0,0,99,0,105,0,49,0,48,0,126,0,57,0,0,0,99,0,105,0,115,0,97,0,117,0,112,0,0,0,99,0,105,0,122,0,122,0,122,0,122,0,0,0,99,0,107,0,122,0,122,0,122,0,122,0,0,0,99,0,108,0,122,0,122,0,122,0,122,0,0,0,99,0,109,0,122,0,122,0,122,0,122,0,0,0,99,0,110,0,49,0,49,0,126,0,53,0,0,0,99,0,110,0,50,0,49,0,126,0,51,0,0,0,99,0,110,0,51,0,49,0,126,0,55,0,0,0,99,0,110,0,52,0,49,0,126,0,54,0,0,0,99,0,110,0,53,0,48,0,126,0,52,0,0,0,99,0,110,0,54,0,49,0,126,0,53,0,0,0,99,0,110,0,57,0,49,0,126,0,50,0,0,0,99,0,110,0,104,0,97,0,126,0,98,0,0,0,99,0,110,0,104,0,107,0,126,0,108,0,0,0,99,0,110,0,115,0,99,0,126,0,100,0,0,0,99,0,110,0,122,0,122,0,122,0,122,0,0,0,99,0,111,0,122,0,122,0,122,0,122,0,0,0,99,0,112,0,122,0,122,0,122,0,122,0,0,0,99,0,114,0,101,0,105,0,115,0,115,0,0,0,99,0,114,0,122,0,122,0,122,0,122,0,0,0,99,0,117,0,48,0,51,0,126,0,57,0,0,0,99,0,117,0,49,0,48,0,126,0,54,0,0,0,99,0,117,0,122,0,122,0,122,0,122,0,0,0,99,0,118,0,115,0,108,0,126,0,109,0,0,0,99,0,118,0,122,0,122,0,122,0,122,0,0,0,99,0,119,0,122,0,122,0,122,0,122,0,0,0,99,0,120,0,122,0,122,0,122,0,122,0,0,0,99,0,121,0,48,0,49,0,126,0,54,0,0,0,99,0,121,0,122,0,122,0,122,0,122,0,0,0,99,0,122,0,122,0,122,0,122,0,122,0,0,0,100,0,97,0,106,0,110,0,107,0,111,0,0,0,100,0,101,0,122,0,122,0,122,0,122,0,0,0,100,0,103,0,122,0,122,0,122,0,122,0,0,0,100,0,106,0,97,0,114,0,126,0,115,0,0,0,100,0,106,0,100,0,105,0,126,0,106,0,0,0,100,0,106,0,122,0,122,0,122,0,122,0,0,0,100,0,107,0,56,0,49,0,126,0,53,0,0,0,100,0,107,0,122,0,122,0,122,0,122,0,0,0,100,0,109,0,48,0,50,0,126,0,57,0,0,0,100,0,109,0,49,0,48,0,126,0,49,0,0,0,100,0,109,0,122,0,122,0,122,0,122,0,0,0,100,0,111,0,48,0,49,0,126,0,57,0,0,0,100,0,111,0,49,0,48,0,126,0,57,0,0,0,100,0,111,0,50,0,48,0,126,0,57,0,0,0,100,0,111,0,51,0,48,0,126,0,57,0,0,0,100,0,111,0,52,0,48,0,126,0,50,0,0,0,100,0,111,0,122,0,122,0,122,0,122,0,0,0,100,0,122,0,48,0,49,0,126,0,57,0,0,0,100,0,122,0,49,0,48,0,126,0,57,0,0,0,100,0,122,0,50,0,48,0,126,0,57,0,0,0,100,0,122,0,51,0,48,0,126,0,57,0,0,0,100,0,122,0,52,0,48,0,126,0,56,0,0,0,100,0,122,0,122,0,122,0,122,0,122,0,0,0,101,0,97,0,122,0,122,0,122,0,122,0,0,0,101,0,99,0,115,0,100,0,126,0,101,0,0,0,101,0,99,0,122,0,122,0,122,0,122,0,0,0,101,0,101,0,122,0,122,0,122,0,122,0,0,0,101,0,103,0,122,0,122,0,122,0,122,0,0,0,101,0,104,0,122,0,122,0,122,0,122,0,0,0,101,0,110,0,95,0,49,0,53,0,48,0,0,0,101,0,114,0,122,0,122,0,122,0,122,0,0,0,101,0,115,0,95,0,52,0,49,0,57,0,0,0,101,0,115,0,97,0,114,0,126,0,115,0,0,0,101,0,115,0,99,0,97,0,126,0,99,0,0,0,101,0,115,0,99,0,108,0,126,0,111,0,0,0,101,0,115,0,99,0,114,0,126,0,117,0,0,0,101,0,115,0,109,0,99,0,126,0,100,0,0,0,101,0,115,0,116,0,101,0,126,0,102,0,0,0,101,0,115,0,122,0,122,0,122,0,122,0,0,0,101,0,116,0,115,0,110,0,126,0,111,0,0,0,101,0,116,0,122,0,122,0,122,0,122,0,0,0,102,0,105,0,48,0,50,0,126,0,57,0,0,0,102,0,105,0,49,0,48,0,126,0,57,0,0,0,102,0,105,0,122,0,122,0,122,0,122,0,0,0,102,0,106,0,48,0,49,0,126,0,57,0,0,0,102,0,106,0,49,0,48,0,126,0,52,0,0,0,102,0,106,0,122,0,122,0,122,0,122,0,0,0,102,0,107,0,122,0,122,0,122,0,122,0,0,0,102,0,109,0,122,0,122,0,122,0,122,0,0,0,102,0,111,0,110,0,105,0,112,0,97,0,0,0,102,0,111,0,110,0,117,0,112,0,97,0,0,0,102,0,111,0,122,0,122,0,122,0,122,0,0,0,102,0,114,0,48,0,49,0,126,0,57,0,0,0,102,0,114,0,49,0,48,0,126,0,57,0,0,0,102,0,114,0,50,0,49,0,126,0,57,0,0,0,102,0,114,0,50,0,97,0,126,0,98,0,0,0,102,0,114,0,51,0,48,0,126,0,57,0,0,0,102,0,114,0,52,0,48,0,126,0,57,0,0,0,102,0,114,0,53,0,48,0,126,0,57,0,0,0,102,0,114,0,54,0,48,0,126,0,57,0,0,0,102,0,114,0,55,0,48,0,126,0,52,0,0,0,102,0,114,0,55,0,54,0,126,0,57,0,0,0,102,0,114,0,56,0,48,0,126,0,57,0,0,0,102,0,114,0,57,0,48,0,126,0,53,0,0,0,102,0,114,0,122,0,122,0,122,0,122,0,0,0,103,0,97,0,115,0,99,0,111,0,110,0,0,0,103,0,97,0,122,0,122,0,122,0,122,0,0,0,103,0,98,0,122,0,122,0,122,0,122,0,0,0,103,0,100,0,48,0,49,0,126,0,54,0,0,0,103,0,100,0,122,0,122,0,122,0,122,0,0,0,103,0,101,0,115,0,106,0,126,0,107,0,0,0,103,0,101,0,122,0,122,0,122,0,122,0,0,0,103,0,102,0,122,0,122,0,122,0,122,0,0,0,103,0,103,0,122,0,122,0,122,0,122,0,0,0,103,0,104,0,122,0,122,0,122,0,122,0,0,0,103,0,105,0,122,0,122,0,122,0,122,0,0,0,103,0,108,0,122,0,122,0,122,0,122,0,0,0,103,0,109,0,122,0,122,0,122,0,122,0,0,0,103,0,110,0,98,0,101,0,126,0,102,0,0,0,103,0,110,0,107,0,97,0,126,0,98,0,0,0,103,0,110,0,107,0,100,0,126,0,101,0,0,0,103,0,110,0,107,0,110,0,126,0,111,0,0,0,103,0,110,0,109,0,99,0,126,0,100,0,0,0,103,0,110,0,109,0,108,0,126,0,109,0,0,0,103,0,110,0,122,0,122,0,122,0,122,0,0,0,103,0,112,0,122,0,122,0,122,0,122,0,0,0,103,0,113,0,122,0,122,0,122,0,122,0,0,0,103,0,114,0,48,0,51,0,126,0,55,0,0,0,103,0,114,0,49,0,49,0,126,0,55,0,0,0,103,0,114,0,50,0,49,0,126,0,52,0,0,0,103,0,114,0,51,0,49,0,126,0,52,0,0,0,103,0,114,0,52,0,49,0,126,0,52,0,0,0,103,0,114,0,53,0,49,0,126,0,57,0,0,0,103,0,114,0,54,0,49,0,126,0,52,0,0,0,103,0,114,0,55,0,49,0,126,0,51,0,0,0,103,0,114,0,56,0,49,0,126,0,53,0,0,0,103,0,114,0,57,0,49,0,126,0,52,0,0,0,103,0,114,0,122,0,122,0,122,0,122,0,0,0,103,0,115,0,122,0,122,0,122,0,122,0,0,0,103,0,116,0,48,0,49,0,126,0,57,0,0,0,103,0,116,0,49,0,48,0,126,0,57,0,0,0,103,0,116,0,50,0,48,0,126,0,50,0,0,0,103,0,116,0,122,0,122,0,122,0,122,0,0,0,103,0,117,0,122,0,122,0,122,0,122,0,0,0,103,0,119,0,98,0,108,0,126,0,109,0,0,0,103,0,119,0,122,0,122,0,122,0,122,0,0,0,103,0,121,0,122,0,122,0,122,0,122,0,0,0,104,0,101,0,98,0,114,0,101,0,119,0,0,0,104,0,101,0,112,0,108,0,111,0,99,0,0,0,104,0,107,0,122,0,122,0,122,0,122,0,0,0,104,0,109,0,122,0,122,0,122,0,122,0,0,0,104,0,110,0,99,0,108,0,126,0,109,0,0,0,104,0,110,0,122,0,122,0,122,0,122,0,0,0,104,0,114,0,48,0,49,0,126,0,57,0,0,0,104,0,114,0,49,0,48,0,126,0,57,0,0,0,104,0,114,0,50,0,48,0,126,0,49,0,0,0,104,0,114,0,122,0,122,0,122,0,122,0,0,0,104,0,116,0,110,0,100,0,126,0,101,0,0,0,104,0,116,0,115,0,100,0,126,0,101,0,0,0,104,0,116,0,122,0,122,0,122,0,122,0,0,0,104,0,117,0,115,0,110,0,126,0,111,0,0,0,104,0,117,0,115,0,115,0,126,0,116,0,0,0,104,0,117,0,122,0,122,0,122,0,122,0,0,0,105,0,99,0,122,0,122,0,122,0,122,0,0,0,105,0,100,0,106,0,97,0,126,0,98,0,0,0,105,0,100,0,107,0,97,0,126,0,98,0,0,0,105,0,100,0,107,0,114,0,126,0,117,0,0,0,105,0,100,0,110,0,116,0,126,0,117,0,0,0,105,0,100,0,112,0,97,0,126,0,98,0,0,0,105,0,100,0,115,0,97,0,126,0,98,0,0,0,105,0,100,0,115,0,108,0,126,0,110,0,0,0,105,0,100,0,115,0,114,0,126,0,117,0,0,0,105,0,100,0,122,0,122,0,122,0,122,0,0,0,105,0,101,0,99,0,110,0,126,0,111,0,0,0,105,0,101,0,109,0,110,0,126,0,111,0,0,0,105,0,101,0,119,0,119,0,126,0,120,0,0,0,105,0,101,0,122,0,122,0,122,0,122,0,0,0,105,0,108,0,122,0,122,0,122,0,122,0,0,0,105,0,109,0,122,0,122,0,122,0,122,0,0,0,105,0,110,0,97,0,114,0,126,0,115,0,0,0,105,0,110,0,100,0,105,0,97,0,110,0,0,0,105,0,110,0,122,0,122,0,122,0,122,0,0,0,105,0,111,0,122,0,122,0,122,0,122,0,0,0,105,0,113,0,98,0,97,0,126,0,98,0,0,0,105,0,113,0,122,0,122,0,122,0,122,0,0,0,105,0,114,0,48,0,48,0,126,0,57,0,0,0,105,0,114,0,49,0,48,0,126,0,57,0,0,0,105,0,114,0,50,0,48,0,126,0,57,0,0,0,105,0,114,0,51,0,49,0,126,0,50,0,0,0,105,0,114,0,122,0,122,0,122,0,122,0,0,0,105,0,115,0,122,0,122,0,122,0,122,0,0,0,105,0,116,0,97,0,112,0,126,0,114,0,0,0,105,0,116,0,98,0,110,0,126,0,111,0,0,0,105,0,116,0,98,0,114,0,126,0,116,0,0,0,105,0,116,0,99,0,97,0,126,0,98,0,0,0,105,0,116,0,99,0,110,0,126,0,111,0,0,0,105,0,116,0,99,0,114,0,126,0,116,0,0,0,105,0,116,0,108,0,116,0,126,0,117,0,0,0,105,0,116,0,109,0,98,0,126,0,99,0,0,0,105,0,116,0,109,0,110,0,126,0,111,0,0,0,105,0,116,0,109,0,115,0,126,0,116,0,0,0,105,0,116,0,112,0,99,0,126,0,101,0,0,0,105,0,116,0,112,0,110,0,126,0,111,0,0,0,105,0,116,0,112,0,116,0,126,0,118,0,0,0,105,0,116,0,114,0,109,0,126,0,111,0,0,0,105,0,116,0,115,0,111,0,126,0,112,0,0,0,105,0,116,0,115,0,114,0,126,0,115,0,0,0,105,0,116,0,115,0,117,0,126,0,118,0,0,0,105,0,116,0,116,0,110,0,126,0,112,0,0,0,105,0,116,0,116,0,114,0,126,0,115,0,0,0,105,0,116,0,118,0,97,0,126,0,99,0,0,0,105,0,116,0,122,0,122,0,122,0,122,0,0,0,106,0,101,0,122,0,122,0,122,0,122,0,0,0,106,0,109,0,48,0,49,0,126,0,57,0,0,0,106,0,109,0,49,0,48,0,126,0,52,0,0,0,106,0,109,0,122,0,122,0,122,0,122,0,0,0,106,0,111,0,122,0,122,0,122,0,122,0,0,0,106,0,112,0,48,0,49,0,126,0,57,0,0,0,106,0,112,0,49,0,48,0,126,0,57,0,0,0,106,0,112,0,50,0,48,0,126,0,57,0,0,0,106,0,112,0,51,0,48,0,126,0,57,0,0,0,106,0,112,0,52,0,48,0,126,0,55,0,0,0,106,0,112,0,122,0,122,0,122,0,122,0,0,0,107,0,101,0,48,0,49,0,126,0,57,0,0,0,107,0,101,0,49,0,48,0,126,0,57,0,0,0,107,0,101,0,50,0,48,0,126,0,57,0,0,0,107,0,101,0,51,0,48,0,126,0,57,0,0,0,107,0,101,0,52,0,48,0,126,0,55,0,0,0,107,0,101,0,122,0,122,0,122,0,122,0,0,0,107,0,103,0,122,0,122,0,122,0,122,0,0,0,107,0,104,0,49,0,48,0,126,0,57,0,0,0,107,0,104,0,50,0,48,0,126,0,53,0,0,0,107,0,104,0,122,0,122,0,122,0,122,0,0,0,107,0,105,0,122,0,122,0,122,0,122,0,0,0,107,0,109,0,122,0,122,0,122,0,122,0,0,0,107,0,110,0,48,0,49,0,126,0,57,0,0,0,107,0,110,0,49,0,48,0,126,0,51,0,0,0,107,0,110,0,122,0,122,0,122,0,122,0,0,0,107,0,112,0,48,0,49,0,126,0,57,0,0,0,107,0,112,0,49,0,51,0,126,0,52,0,0,0,107,0,112,0,122,0,122,0,122,0,122,0,0,0,107,0,114,0,50,0,54,0,126,0,57,0,0,0,107,0,114,0,51,0,48,0,126,0,49,0,0,0,107,0,114,0,52,0,49,0,126,0,57,0,0,0,107,0,114,0,122,0,122,0,122,0,122,0,0,0,107,0,119,0,122,0,122,0,122,0,122,0,0,0,107,0,121,0,122,0,122,0,122,0,122,0,0,0,107,0,122,0,122,0,122,0,122,0,122,0,0,0,108,0,97,0,98,0,107,0,126,0,108,0,0,0,108,0,97,0,122,0,122,0,122,0,122,0,0,0,108,0,98,0,98,0,104,0,126,0,105,0,0,0,108,0,98,0,122,0,122,0,122,0,122,0,0,0,108,0,99,0,48,0,49,0,126,0,51,0,0,0,108,0,99,0,48,0,53,0,126,0,56,0,0,0,108,0,99,0,49,0,48,0,126,0,50,0,0,0,108,0,99,0,122,0,122,0,122,0,122,0,0,0,108,0,105,0,48,0,49,0,126,0,57,0,0,0,108,0,105,0,49,0,48,0,126,0,49,0,0,0,108,0,105,0,122,0,122,0,122,0,122,0,0,0,108,0,107,0,49,0,49,0,126,0,51,0,0,0,108,0,107,0,50,0,49,0,126,0,51,0,0,0,108,0,107,0,51,0,49,0,126,0,51,0,0,0,108,0,107,0,52,0,49,0,126,0,53,0,0,0,108,0,107,0,53,0,49,0,126,0,51,0,0,0,108,0,107,0,54,0,49,0,126,0,50,0,0,0,108,0,107,0,55,0,49,0,126,0,50,0,0,0,108,0,107,0,56,0,49,0,126,0,50,0,0,0,108,0,107,0,57,0,49,0,126,0,50,0,0,0,108,0,107,0,122,0,122,0,122,0,122,0,0,0,108,0,114,0,122,0,122,0,122,0,122,0,0,0,108,0,115,0,122,0,122,0,122,0,122,0,0,0,108,0,116,0,48,0,49,0,126,0,57,0,0,0,108,0,116,0,49,0,48,0,126,0,57,0,0,0,108,0,116,0,50,0,48,0,126,0,57,0,0,0,108,0,116,0,51,0,48,0,126,0,57,0,0,0,108,0,116,0,52,0,48,0,126,0,57,0,0,0,108,0,116,0,53,0,48,0,126,0,57,0,0,0,108,0,116,0,122,0,122,0,122,0,122,0,0,0,108,0,117,0,122,0,122,0,122,0,122,0,0,0,108,0,118,0,122,0,122,0,122,0,122,0,0,0,108,0,121,0,109,0,105,0,126,0,106,0,0,0,108,0,121,0,122,0,122,0,122,0,122,0,0,0,109,0,97,0,48,0,49,0,126,0,57,0,0,0,109,0,97,0,49,0,48,0,126,0,50,0,0,0,109,0,97,0,49,0,51,0,126,0,54,0,0,0,109,0,97,0,122,0,122,0,122,0,122,0,0,0,109,0,99,0,115,0,111,0,126,0,112,0,0,0,109,0,99,0,122,0,122,0,122,0,122,0,0,0,109,0,100,0,98,0,114,0,126,0,115,0,0,0,109,0,100,0,99,0,108,0,126,0,109,0,0,0,109,0,100,0,99,0,114,0,126,0,117,0,0,0,109,0,100,0,122,0,122,0,122,0,122,0,0,0,109,0,101,0,48,0,49,0,126,0,57,0,0,0,109,0,101,0,49,0,48,0,126,0,57,0,0,0,109,0,101,0,50,0,48,0,126,0,52,0,0,0,109,0,101,0,122,0,122,0,122,0,122,0,0,0,109,0,102,0,122,0,122,0,122,0,122,0,0,0,109,0,103,0,122,0,122,0,122,0,122,0,0,0,109,0,104,0,122,0,122,0,122,0,122,0,0,0,109,0,107,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,49,0,48,0,126,0,57,0,0,0,109,0,107,0,50,0,48,0,126,0,57,0,0,0,109,0,107,0,51,0,48,0,126,0,57,0,0,0,109,0,107,0,52,0,48,0,126,0,57,0,0,0,109,0,107,0,53,0,48,0,126,0,57,0,0,0,109,0,107,0,54,0,48,0,126,0,57,0,0,0,109,0,107,0,55,0,48,0,126,0,57,0,0,0,109,0,107,0,56,0,48,0,126,0,53,0,0,0,109,0,107,0,122,0,122,0,122,0,122,0,0,0,109,0,108,0,122,0,122,0,122,0,122,0,0,0,109,0,109,0,48,0,49,0,126,0,55,0,0,0,109,0,109,0,49,0,49,0,126,0,56,0,0,0,109,0,109,0,122,0,122,0,122,0,122,0,0,0,109,0,110,0,122,0,122,0,122,0,122,0,0,0,109,0,111,0,122,0,122,0,122,0,122,0,0,0,109,0,112,0,122,0,122,0,122,0,122,0,0,0,109,0,113,0,122,0,122,0,122,0,122,0,0,0,109,0,114,0,48,0,49,0,126,0,57,0,0,0,109,0,114,0,49,0,48,0,126,0,53,0,0,0,109,0,114,0,122,0,122,0,122,0,122,0,0,0,109,0,115,0,122,0,122,0,122,0,122,0,0,0,109,0,116,0,48,0,49,0,126,0,57,0,0,0,109,0,116,0,49,0,48,0,126,0,57,0,0,0,109,0,116,0,50,0,48,0,126,0,57,0,0,0,109,0,116,0,51,0,48,0,126,0,57,0,0,0,109,0,116,0,52,0,48,0,126,0,57,0,0,0,109,0,116,0,53,0,48,0,126,0,57,0,0,0,109,0,116,0,54,0,48,0,126,0,56,0,0,0,109,0,116,0,122,0,122,0,122,0,122,0,0,0,109,0,117,0,122,0,122,0,122,0,122,0,0,0,109,0,118,0,48,0,48,0,126,0,53,0,0,0,109,0,118,0,48,0,55,0,126,0,56,0,0,0,109,0,118,0,49,0,50,0,126,0,52,0,0,0,109,0,118,0,50,0,51,0,126,0,57,0,0,0,109,0,118,0,122,0,122,0,122,0,122,0,0,0,109,0,119,0,107,0,114,0,126,0,115,0,0,0,109,0,119,0,109,0,103,0,126,0,104,0,0,0,109,0,119,0,122,0,122,0,122,0,122,0,0,0,109,0,120,0,122,0,122,0,122,0,122,0,0,0,109,0,121,0,48,0,49,0,126,0,57,0,0,0,109,0,121,0,49,0,48,0,126,0,54,0,0,0,109,0,121,0,122,0,122,0,122,0,122,0,0,0,109,0,122,0,122,0,122,0,122,0,122,0,0,0,110,0,97,0,111,0,115,0,126,0,116,0,0,0,110,0,97,0,122,0,122,0,122,0,122,0,0,0,110,0,99,0,122,0,122,0,122,0,122,0,0,0,110,0,101,0,122,0,122,0,122,0,122,0,0,0,110,0,102,0,122,0,122,0,122,0,122,0,0,0,110,0,103,0,107,0,110,0,126,0,111,0,0,0,110,0,103,0,122,0,122,0,122,0,122,0,0,0,110,0,105,0,99,0,97,0,114,0,100,0,0,0,110,0,105,0,109,0,115,0,126,0,116,0,0,0,110,0,105,0,122,0,122,0,122,0,122,0,0,0,110,0,108,0,122,0,122,0,122,0,122,0,0,0,110,0,111,0,48,0,49,0,126,0,50,0,0,0,110,0,111,0,48,0,52,0,126,0,57,0,0,0,110,0,111,0,49,0,54,0,126,0,55,0,0,0,110,0,111,0,50,0,49,0,126,0,50,0,0,0,110,0,111,0,122,0,122,0,122,0,122,0,0,0,110,0,112,0,112,0,49,0,126,0,55,0,0,0,110,0,112,0,122,0,122,0,122,0,122,0,0,0,110,0,114,0,48,0,49,0,126,0,57,0,0,0,110,0,114,0,49,0,48,0,126,0,52,0,0,0,110,0,114,0,122,0,122,0,122,0,122,0,0,0,110,0,117,0,122,0,122,0,122,0,122,0,0,0,110,0,122,0,122,0,122,0,122,0,122,0,0,0,111,0,109,0,122,0,122,0,122,0,122,0,0,0,112,0,97,0,109,0,97,0,107,0,97,0,0,0,112,0,97,0,122,0,122,0,122,0,122,0,0,0,112,0,101,0,122,0,122,0,122,0,122,0,0,0,112,0,102,0,122,0,122,0,122,0,122,0,0,0,112,0,103,0,122,0,122,0,122,0,122,0,0,0,112,0,104,0,48,0,48,0,126,0,51,0,0,0,112,0,104,0,48,0,53,0,126,0,57,0,0,0,112,0,104,0,49,0,48,0,126,0,53,0,0,0,112,0,104,0,52,0,48,0,126,0,49,0,0,0,112,0,104,0,122,0,122,0,122,0,122,0,0,0,112,0,107,0,122,0,122,0,122,0,122,0,0,0,112,0,108,0,115,0,107,0,126,0,108,0,0,0,112,0,108,0,122,0,122,0,122,0,122,0,0,0,112,0,109,0,122,0,122,0,122,0,122,0,0,0,112,0,110,0,122,0,122,0,122,0,122,0,0,0,112,0,114,0,122,0,122,0,122,0,122,0,0,0,112,0,115,0,122,0,122,0,122,0,122,0,0,0,112,0,116,0,48,0,49,0,126,0,57,0,0,0,112,0,116,0,49,0,48,0,126,0,56,0,0,0,112,0,116,0,122,0,122,0,122,0,122,0,0,0,112,0,119,0,122,0,122,0,122,0,122,0,0,0,112,0,121,0,49,0,48,0,126,0,54,0,0,0,112,0,121,0,122,0,122,0,122,0,122,0,0,0,113,0,97,0,122,0,122,0,122,0,122,0,0,0,114,0,101,0,122,0,122,0,122,0,122,0,0,0,114,0,111,0,99,0,115,0,126,0,116,0,0,0,114,0,111,0,116,0,108,0,126,0,109,0,0,0,114,0,111,0,122,0,122,0,122,0,122,0,0,0,114,0,115,0,48,0,48,0,126,0,57,0,0,0,114,0,115,0,49,0,48,0,126,0,57,0,0,0,114,0,115,0,50,0,48,0,126,0,57,0,0,0,114,0,115,0,122,0,122,0,122,0,122,0,0,0,114,0,117,0,107,0,98,0,126,0,99,0,0,0,114,0,117,0,122,0,122,0,122,0,122,0,0,0,114,0,119,0,48,0,49,0,126,0,53,0,0,0,114,0,119,0,122,0,122,0,122,0,122,0,0,0,115,0,97,0,48,0,49,0,126,0,57,0,0,0,115,0,97,0,49,0,48,0,126,0,50,0,0,0,115,0,97,0,122,0,122,0,122,0,122,0,0,0,115,0,98,0,109,0,107,0,126,0,108,0,0,0,115,0,98,0,122,0,122,0,122,0,122,0,0,0,115,0,99,0,48,0,49,0,126,0,57,0,0,0,115,0,99,0,49,0,48,0,126,0,57,0,0,0,115,0,99,0,50,0,48,0,126,0,55,0,0,0,115,0,99,0,111,0,117,0,115,0,101,0,0,0,115,0,99,0,122,0,122,0,122,0,122,0,0,0,115,0,100,0,122,0,122,0,122,0,122,0,0,0,115,0,101,0,97,0,98,0,126,0,99,0,0,0,115,0,101,0,122,0,122,0,122,0,122,0,0,0,115,0,103,0,48,0,49,0,126,0,53,0,0,0,115,0,103,0,122,0,122,0,122,0,122,0,0,0,115,0,104,0,122,0,122,0,122,0,122,0,0,0,115,0,105,0,109,0,112,0,108,0,101,0,0,0,115,0,105,0,122,0,122,0,122,0,122,0,0,0,115,0,106,0,122,0,122,0,122,0,122,0,0,0,115,0,107,0,122,0,122,0,122,0,122,0,0,0,115,0,108,0,122,0,122,0,122,0,122,0,0,0,115,0,109,0,48,0,49,0,126,0,57,0,0,0,115,0,109,0,122,0,122,0,122,0,122,0,0,0,115,0,110,0,107,0,100,0,126,0,101,0,0,0,115,0,110,0,122,0,122,0,122,0,122,0,0,0,115,0,111,0,122,0,122,0,122,0,122,0,0,0,115,0,114,0,122,0,122,0,122,0,122,0,0,0,115,0,115,0,122,0,122,0,122,0,122,0,0,0,115,0,116,0,48,0,49,0,126,0,54,0,0,0,115,0,116,0,122,0,122,0,122,0,122,0,0,0,115,0,118,0,122,0,122,0,122,0,122,0,0,0,115,0,120,0,122,0,122,0,122,0,122,0,0,0,115,0,121,0,104,0,108,0,126,0,109,0,0,0,115,0,121,0,122,0,122,0,122,0,122,0,0,0,115,0,122,0,122,0,122,0,122,0,122,0,0,0,116,0,97,0,114,0,97,0,115,0,107,0,0,0,116,0,97,0,122,0,122,0,122,0,122,0,0,0,116,0,99,0,122,0,122,0,122,0,122,0,0,0,116,0,100,0,122,0,122,0,122,0,122,0,0,0,116,0,102,0,122,0,122,0,122,0,122,0,0,0,116,0,103,0,122,0,122,0,122,0,122,0,0,0,116,0,104,0,49,0,48,0,126,0,57,0,0,0,116,0,104,0,50,0,48,0,126,0,55,0,0,0,116,0,104,0,51,0,48,0,126,0,57,0,0,0,116,0,104,0,52,0,48,0,126,0,57,0,0,0,116,0,104,0,53,0,48,0,126,0,56,0,0,0,116,0,104,0,54,0,48,0,126,0,55,0,0,0,116,0,104,0,55,0,48,0,126,0,55,0,0,0,116,0,104,0,56,0,48,0,126,0,54,0,0,0,116,0,104,0,57,0,48,0,126,0,54,0,0,0,116,0,104,0,122,0,122,0,122,0,122,0,0,0,116,0,106,0,122,0,122,0,122,0,122,0,0,0,116,0,107,0,122,0,122,0,122,0,122,0,0,0,116,0,108,0,122,0,122,0,122,0,122,0,0,0,116,0,109,0,122,0,122,0,122,0,122,0,0,0,116,0,110,0,49,0,49,0,126,0,52,0,0,0,116,0,110,0,50,0,49,0,126,0,51,0,0,0,116,0,110,0,51,0,49,0,126,0,52,0,0,0,116,0,110,0,52,0,49,0,126,0,51,0,0,0,116,0,110,0,53,0,49,0,126,0,51,0,0,0,116,0,110,0,55,0,49,0,126,0,51,0,0,0,116,0,110,0,56,0,49,0,126,0,51,0,0,0,116,0,110,0,122,0,122,0,122,0,122,0,0,0,116,0,111,0,48,0,49,0,126,0,53,0,0,0,116,0,111,0,122,0,122,0,122,0,122,0,0,0,116,0,114,0,48,0,49,0,126,0,57,0,0,0,116,0,114,0,49,0,48,0,126,0,57,0,0,0,116,0,114,0,50,0,48,0,126,0,57,0,0,0,116,0,114,0,51,0,48,0,126,0,57,0,0,0,116,0,114,0,52,0,48,0,126,0,57,0,0,0,116,0,114,0,53,0,48,0,126,0,57,0,0,0,116,0,114,0,54,0,48,0,126,0,57,0,0,0,116,0,114,0,55,0,48,0,126,0,57,0,0,0,116,0,114,0,122,0,122,0,122,0,122,0,0,0,116,0,116,0,122,0,122,0,122,0,122,0,0,0,116,0,118,0,122,0,122,0,122,0,122,0,0,0,116,0,119,0,122,0,122,0,122,0,122,0,0,0,116,0,122,0,48,0,49,0,126,0,57,0,0,0,116,0,122,0,49,0,48,0,126,0,57,0,0,0,116,0,122,0,50,0,48,0,126,0,57,0,0,0,116,0,122,0,51,0,48,0,126,0,49,0,0,0,116,0,122,0,122,0,122,0,122,0,122,0,0,0,117,0,97,0,122,0,122,0,122,0,122,0,0,0,117,0,99,0,114,0,99,0,111,0,114,0,0,0,117,0,103,0,122,0,122,0,122,0,122,0,0,0,117,0,108,0,115,0,116,0,101,0,114,0,0,0,117,0,109,0,122,0,122,0,122,0,122,0,0,0,117,0,110,0,105,0,102,0,111,0,110,0,0,0,117,0,115,0,97,0,107,0,126,0,108,0,0,0,117,0,115,0,109,0,100,0,126,0,101,0,0,0,117,0,115,0,109,0,110,0,126,0,111,0,0,0,117,0,115,0,109,0,115,0,126,0,116,0,0,0,117,0,115,0,110,0,99,0,126,0,101,0,0,0,117,0,115,0,115,0,99,0,126,0,100,0,0,0,117,0,115,0,122,0,122,0,122,0,122,0,0,0,117,0,121,0,114,0,110,0,126,0,111,0,0,0,117,0,121,0,122,0,122,0,122,0,122,0,0,0,117,0,122,0,122,0,122,0,122,0,122,0,0,0,118,0,97,0,122,0,122,0,122,0,122,0,0,0,118,0,99,0,48,0,49,0,126,0,54,0,0,0,118,0,99,0,122,0,122,0,122,0,122,0,0,0,118,0,101,0,122,0,122,0,122,0,122,0,0,0,118,0,103,0,122,0,122,0,122,0,122,0,0,0,118,0,105,0,122,0,122,0,122,0,122,0,0,0,118,0,110,0,48,0,49,0,126,0,55,0,0,0,118,0,110,0,49,0,51,0,126,0,52,0,0,0,118,0,110,0,50,0,48,0,126,0,57,0,0,0,118,0,110,0,51,0,48,0,126,0,55,0,0,0,118,0,110,0,52,0,48,0,126,0,49,0,0,0,118,0,110,0,52,0,51,0,126,0,55,0,0,0,118,0,110,0,53,0,48,0,126,0,57,0,0,0,118,0,110,0,54,0,54,0,126,0,57,0,0,0,118,0,110,0,55,0,48,0,126,0,51,0,0,0,118,0,110,0,122,0,122,0,122,0,122,0,0,0,118,0,117,0,122,0,122,0,122,0,122,0,0,0,119,0,102,0,122,0,122,0,122,0,122,0,0,0,119,0,115,0,122,0,122,0,122,0,122,0,0,0,120,0,107,0,122,0,122,0,122,0,122,0,0,0,121,0,101,0,122,0,122,0,122,0,122,0,0,0,121,0,116,0,122,0,122,0,122,0,122,0,0,0,122,0,97,0,122,0,122,0,122,0,122,0,0,0,122,0,109,0,48,0,49,0,126,0,57,0,0,0,122,0,109,0,122,0,122,0,122,0,122,0,0,0,122,0,119,0,109,0,118,0,126,0,119,0,0,0,122,0,119,0,122,0,122,0,122,0,122,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,117,0,122,0,95,0,67,0,121,0,114,0,108,0,0,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,110,0,95,0,66,0,101,0,110,0,103,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,99,0,104,0,105,0,110,0,101,0,115,0,101,0,0,0,106,0,97,0,95,0,74,0,112,0,97,0,110,0,0,0,97,0,109,0,95,0,69,0,116,0,104,0,105,0,0,0,116,0,101,0,95,0,84,0,101,0,108,0,117,0,0,0,101,0,101,0,50,0,56,0,51,0,126,0,52,0,0,0,98,0,111,0,95,0,84,0,105,0,98,0,116,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,0,0,109,0,121,0,95,0,77,0,121,0,109,0,114,0,0,0,107,0,111,0,95,0,75,0,111,0,114,0,101,0,0,0,106,0,97,0,95,0,72,0,114,0,107,0,116,0,0,0,114,0,117,0,95,0,67,0,121,0,114,0,108,0,0,0,106,0,97,0,95,0,75,0,97,0,110,0,97,0,0,0,107,0,110,0,95,0,75,0,110,0,100,0,97,0,0,0,116,0,97,0,95,0,84,0,97,0,109,0,108,0,0,0,98,0,109,0,95,0,78,0,107,0,111,0,111,0,0,0,107,0,97,0,95,0,71,0,101,0,111,0,114,0,0,0,108,0,111,0,95,0,76,0,97,0,111,0,111,0,0,0,115,0,105,0,95,0,83,0,105,0,110,0,104,0,0,0,109,0,108,0,95,0,77,0,108,0,121,0,109,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,106,0,97,0,95,0,72,0,105,0,114,0,97,0,0,0,109,0,110,0,95,0,77,0,111,0,110,0,103,0,0,0,111,0,114,0,95,0,79,0,114,0,121,0,97,0,0,0,101,0,110,0,95,0,83,0,104,0,97,0,119,0,0,0,107,0,111,0,95,0,72,0,97,0,110,0,103,0,0,0,107,0,111,0,95,0,74,0,97,0,109,0,111,0,0,0,101,0,110,0,95,0,68,0,115,0,114,0,116,0,0,0,102,0,102,0,95,0,65,0,100,0,108,0,109,0,0,0,103,0,117,0,95,0,71,0,117,0,106,0,114,0,0,0,104,0,121,0,95,0,65,0,114,0,109,0,110,0,0,0,107,0,109,0,95,0,75,0,104,0,109,0,114,0,0,0,107,0,111,0,95,0,72,0,97,0,110,0,105,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,0,0,115,0,100,0,95,0,75,0,104,0,111,0,106,0,0,0,115,0,100,0,95,0,83,0,105,0,110,0,100,0,0,0,112,0,101,0,114,0,115,0,105,0,97,0,110,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,105,0,0,0,108,0,118,0,48,0,49,0,55,0,126,0,57,0,0,0,99,0,117,0,95,0,71,0,108,0,97,0,103,0,0,0,97,0,98,0,108,0,49,0,57,0,52,0,51,0,0,0,98,0,97,0,117,0,100,0,100,0,104,0,97,0,0,0,109,0,101,0,116,0,101,0,108,0,107,0,111,0,0,0,101,0,101,0,55,0,57,0,50,0,126,0,51,0,0,0,97,0,102,0,98,0,97,0,108,0,126,0,109,0,0,0,97,0,107,0,117,0,97,0,112,0,101,0,109,0,0,0,97,0,108,0,97,0,108,0,99,0,57,0,55,0,0,0,97,0,111,0,99,0,110,0,110,0,126,0,111,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,0,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,97,0,114,0,101,0,118,0,101,0,108,0,97,0,0,0,97,0,114,0,101,0,118,0,109,0,100,0,97,0,0,0,97,0,114,0,107,0,97,0,105,0,107,0,97,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,0,0,97,0,122,0,95,0,67,0,121,0,114,0,108,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,97,0,122,0,115,0,97,0,107,0,126,0,108,0,0,0,97,0,122,0,122,0,97,0,113,0,126,0,114,0,0,0,98,0,97,0,108,0,97,0,110,0,107,0,97,0,0,0,98,0,102,0,98,0,97,0,108,0,126,0,110,0,0,0,98,0,102,0,107,0,111,0,115,0,126,0,116,0,0,0,98,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,111,0,104,0,111,0,114,0,105,0,99,0,0,0,98,0,115,0,95,0,67,0,121,0,114,0,108,0,0,0,99,0,122,0,49,0,48,0,49,0,126,0,57,0,0,0,99,0,122,0,49,0,48,0,97,0,126,0,102,0,0,0,99,0,122,0,49,0,49,0,48,0,126,0,57,0,0,0,99,0,122,0,49,0,50,0,48,0,126,0,50,0,0,0,99,0,122,0,50,0,48,0,49,0,126,0,57,0,0,0,99,0,122,0,50,0,48,0,97,0,126,0,99,0,0,0,99,0,122,0,51,0,49,0,49,0,126,0,55,0,0,0,99,0,122,0,51,0,50,0,49,0,126,0,55,0,0,0,99,0,122,0,52,0,49,0,49,0,126,0,51,0,0,0,99,0,122,0,52,0,50,0,49,0,126,0,55,0,0,0,99,0,122,0,53,0,49,0,49,0,126,0,52,0,0,0,99,0,122,0,53,0,50,0,49,0,126,0,53,0,0,0,99,0,122,0,53,0,51,0,49,0,126,0,52,0,0,0,99,0,122,0,54,0,49,0,49,0,126,0,53,0,0,0,99,0,122,0,54,0,50,0,49,0,126,0,55,0,0,0,99,0,122,0,54,0,51,0,49,0,126,0,53,0,0,0,99,0,122,0,54,0,52,0,49,0,126,0,55,0,0,0,99,0,122,0,55,0,49,0,49,0,126,0,53,0,0,0,99,0,122,0,55,0,50,0,49,0,126,0,52,0,0,0,99,0,122,0,56,0,48,0,49,0,126,0,54,0,0,0,101,0,101,0,49,0,52,0,49,0,126,0,50,0,0,0,101,0,101,0,52,0,51,0,48,0,126,0,50,0,0,0,101,0,101,0,52,0,52,0,49,0,126,0,50,0,0,0,101,0,109,0,111,0,100,0,101,0,110,0,103,0,0,0,101,0,110,0,95,0,42,0,95,0,71,0,66,0,0,0,102,0,102,0,95,0,65,0,114,0,97,0,98,0,0,0,102,0,111,0,110,0,110,0,97,0,112,0,97,0,0,0,102,0,114,0,57,0,55,0,49,0,126,0,52,0,0,0,103,0,98,0,97,0,98,0,99,0,126,0,101,0,0,0,103,0,98,0,98,0,100,0,102,0,126,0,103,0,0,0,103,0,98,0,98,0,114,0,99,0,126,0,100,0,0,0,103,0,98,0,100,0,110,0,99,0,126,0,100,0,0,0,103,0,98,0,101,0,110,0,102,0,126,0,103,0,0,0,103,0,98,0,104,0,97,0,108,0,126,0,109,0,0,0,103,0,98,0,115,0,108,0,102,0,126,0,103,0,0,0,103,0,98,0,115,0,111,0,108,0,126,0,109,0,0,0,103,0,98,0,115,0,116,0,103,0,126,0,104,0,0,0,103,0,98,0,115,0,116,0,115,0,126,0,116,0,0,0,103,0,114,0,99,0,108,0,97,0,115,0,115,0,0,0,103,0,114,0,109,0,105,0,115,0,116,0,114,0,0,0,103,0,117,0,95,0,76,0,97,0,116,0,110,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,0,0,104,0,101,0,112,0,98,0,117,0,114,0,110,0,0,0,104,0,105,0,95,0,68,0,101,0,118,0,97,0,0,0,105,0,115,0,115,0,107,0,102,0,126,0,103,0,0,0,105,0,116,0,105,0,104,0,97,0,115,0,97,0,0,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,0,0,106,0,97,0,95,0,72,0,97,0,110,0,105,0,0,0,106,0,97,0,95,0,76,0,97,0,116,0,110,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,0,0,107,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,107,0,115,0,95,0,68,0,101,0,118,0,97,0,0,0,107,0,117,0,95,0,65,0,114,0,97,0,98,0,0,0,107,0,121,0,95,0,65,0,114,0,97,0,98,0,0,0,107,0,121,0,95,0,76,0,97,0,116,0,110,0,0,0,108,0,97,0,117,0,107,0,105,0,107,0,97,0,0,0,108,0,101,0,109,0,111,0,115,0,105,0,110,0,0,0,108,0,118,0,48,0,48,0,51,0,126,0,54,0,0,0,108,0,118,0,48,0,48,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,49,0,50,0,126,0,52,0,0,0,108,0,118,0,48,0,49,0,53,0,126,0,54,0,0,0,108,0,118,0,48,0,50,0,48,0,126,0,49,0,0,0,108,0,118,0,48,0,50,0,51,0,126,0,53,0,0,0,108,0,118,0,48,0,50,0,55,0,126,0,57,0,0,0,108,0,118,0,48,0,51,0,48,0,126,0,50,0,0,0,108,0,118,0,48,0,51,0,52,0,126,0,57,0,0,0,108,0,118,0,48,0,52,0,49,0,126,0,50,0,0,0,108,0,118,0,48,0,52,0,51,0,126,0,54,0,0,0,108,0,118,0,48,0,52,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,53,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,54,0,48,0,126,0,49,0,0,0,108,0,118,0,48,0,54,0,51,0,126,0,54,0,0,0,108,0,118,0,48,0,54,0,55,0,126,0,56,0,0,0,108,0,118,0,48,0,55,0,48,0,126,0,50,0,0,0,108,0,118,0,48,0,55,0,52,0,126,0,54,0,0,0,108,0,118,0,48,0,55,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,56,0,49,0,126,0,54,0,0,0,108,0,118,0,48,0,56,0,55,0,126,0,57,0,0,0,108,0,118,0,48,0,57,0,50,0,126,0,51,0,0,0,108,0,118,0,48,0,57,0,53,0,126,0,54,0,0,0,108,0,118,0,49,0,48,0,49,0,126,0,50,0,0,0,108,0,118,0,49,0,48,0,51,0,126,0,53,0,0,0,108,0,118,0,49,0,48,0,55,0,126,0,57,0,0,0,108,0,118,0,49,0,49,0,49,0,126,0,51,0,0,0,109,0,97,0,98,0,101,0,114,0,126,0,115,0,0,0,109,0,97,0,103,0,117,0,101,0,126,0,102,0,0,0,109,0,97,0,107,0,104,0,110,0,126,0,111,0,0,0,109,0,97,0,115,0,105,0,107,0,126,0,108,0,0,0,109,0,104,0,97,0,108,0,107,0,126,0,108,0,0,0,109,0,107,0,49,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,50,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,50,0,49,0,48,0,126,0,49,0,0,0,109,0,107,0,51,0,48,0,51,0,126,0,52,0,0,0,109,0,107,0,51,0,48,0,55,0,126,0,56,0,0,0,109,0,107,0,51,0,49,0,48,0,126,0,51,0,0,0,109,0,107,0,52,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,53,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,54,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,55,0,48,0,49,0,126,0,54,0,0,0,109,0,107,0,56,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,56,0,49,0,48,0,126,0,55,0,0,0,109,0,108,0,95,0,65,0,114,0,97,0,98,0,0,0,109,0,108,0,95,0,76,0,97,0,116,0,110,0,0,0,109,0,110,0,48,0,52,0,54,0,126,0,55,0,0,0,109,0,110,0,48,0,54,0,51,0,126,0,53,0,0,0,109,0,111,0,110,0,111,0,116,0,111,0,110,0,0,0,109,0,114,0,95,0,68,0,101,0,118,0,97,0,0,0,109,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,0,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,0,0,110,0,108,0,98,0,113,0,49,0,126,0,51,0,0,0,112,0,97,0,95,0,65,0,114,0,97,0,98,0,0,0,112,0,101,0,108,0,97,0,108,0,126,0,109,0,0,0,112,0,103,0,109,0,112,0,108,0,126,0,109,0,0,0,112,0,104,0,98,0,117,0,107,0,126,0,108,0,0,0,112,0,104,0,99,0,97,0,109,0,126,0,110,0,0,0,112,0,104,0,99,0,97,0,115,0,126,0,116,0,0,0,112,0,104,0,112,0,97,0,109,0,126,0,110,0,0,0,112,0,111,0,108,0,121,0,116,0,111,0,110,0,0,0,112,0,114,0,111,0,118,0,101,0,110,0,99,0,0,0,112,0,115,0,95,0,65,0,114,0,97,0,98,0,0,0,112,0,115,0,106,0,101,0,109,0,126,0,110,0,0,0,112,0,119,0,50,0,50,0,54,0,126,0,56,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,0,0,115,0,100,0,95,0,68,0,101,0,118,0,97,0,0,0,115,0,105,0,48,0,48,0,49,0,126,0,57,0,0,0,115,0,105,0,48,0,49,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,50,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,51,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,52,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,53,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,54,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,55,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,56,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,57,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,48,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,49,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,50,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,51,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,52,0,48,0,126,0,52,0,0,0,115,0,105,0,49,0,52,0,54,0,126,0,57,0,0,0,115,0,105,0,49,0,53,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,54,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,55,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,56,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,57,0,48,0,126,0,57,0,0,0,115,0,105,0,50,0,48,0,48,0,126,0,57,0,0,0,115,0,105,0,50,0,49,0,48,0,126,0,51,0,0,0,115,0,111,0,95,0,65,0,114,0,97,0,98,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,0,0,115,0,117,0,114,0,115,0,105,0,108,0,118,0,0,0,115,0,117,0,116,0,115,0,105,0,108,0,118,0,0,0,115,0,119,0,95,0,65,0,114,0,97,0,98,0,0,0,116,0,97,0,95,0,76,0,97,0,116,0,110,0,0,0,116,0,101,0,95,0,76,0,97,0,116,0,110,0,0,0,116,0,103,0,95,0,65,0,114,0,97,0,98,0,0,0,116,0,105,0,95,0,69,0,116,0,104,0,105,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,0,0,117,0,103,0,49,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,49,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,49,0,50,0,48,0,126,0,54,0,0,0,117,0,103,0,50,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,50,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,50,0,50,0,48,0,126,0,57,0,0,0,117,0,103,0,50,0,51,0,48,0,126,0,55,0,0,0,117,0,103,0,51,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,51,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,51,0,50,0,48,0,126,0,57,0,0,0,117,0,103,0,51,0,51,0,48,0,126,0,55,0,0,0,117,0,103,0,52,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,52,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,52,0,50,0,48,0,126,0,57,0,0,0,117,0,103,0,52,0,51,0,48,0,126,0,53,0,0,0,117,0,103,0,95,0,67,0,121,0,114,0,108,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,0,0,118,0,97,0,105,0,100,0,105,0,107,0,97,0,0,0,119,0,111,0,95,0,65,0,114,0,97,0,98,0,0,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,0,0,122,0,104,0,95,0,76,0,97,0,116,0,110,0,0,0,115,0,97,0,116,0,95,0,68,0,101,0,118,0,97,0,0,0,115,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,0,0,109,0,110,0,105,0,95,0,77,0,116,0,101,0,105,0,0,0,100,0,121,0,111,0,95,0,65,0,114,0,97,0,98,0,0,0,105,0,106,0,101,0,107,0,97,0,118,0,115,0,107,0,0,0,98,0,97,0,107,0,117,0,49,0,57,0,50,0,54,0,0,0,98,0,111,0,114,0,110,0,104,0,111,0,108,0,109,0,0,0,116,0,111,0,110,0,103,0,121,0,111,0,110,0,103,0,0,0,120,0,115,0,105,0,115,0,116,0,101,0,109,0,111,0,0,0,107,0,111,0,99,0,105,0,101,0,119,0,105,0,101,0,0,0,49,0,54,0,48,0,54,0,110,0,105,0,99,0,116,0,0,0,49,0,54,0,57,0,52,0,97,0,99,0,97,0,100,0,0,0,49,0,57,0,53,0,57,0,97,0,99,0,97,0,100,0,0,0,98,0,97,0,108,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,97,0,115,0,105,0,99,0,101,0,110,0,103,0,0,0,98,0,105,0,115,0,99,0,97,0,121,0,97,0,110,0,0,0,98,0,108,0,116,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,117,0,100,0,100,0,104,0,105,0,115,0,116,0,0,0,98,0,121,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,99,0,111,0,108,0,98,0,49,0,57,0,52,0,53,0,0,0,100,0,106,0,101,0,95,0,65,0,114,0,97,0,98,0,0,0,101,0,116,0,104,0,105,0,111,0,112,0,105,0,99,0,0,0,102,0,111,0,110,0,107,0,105,0,114,0,115,0,104,0,0,0,102,0,111,0,110,0,120,0,115,0,97,0,109,0,112,0,0,0,104,0,111,0,103,0,110,0,111,0,114,0,115,0,107,0,0,0,104,0,115,0,105,0,115,0,116,0,101,0,109,0,111,0,0,0,105,0,118,0,97,0,110,0,99,0,104,0,111,0,118,0,0,0,106,0,97,0,112,0,97,0,110,0,101,0,115,0,101,0,0,0,106,0,121,0,117,0,116,0,112,0,105,0,110,0,103,0,0,0,108,0,101,0,110,0,103,0,97,0,100,0,111,0,99,0,0,0,108,0,117,0,110,0,97,0,49,0,57,0,49,0,56,0,0,0,109,0,97,0,115,0,115,0,45,0,116,0,111,0,110,0,0,0,110,0,101,0,119,0,102,0,111,0,117,0,110,0,100,0,0,0,111,0,120,0,101,0,110,0,100,0,105,0,99,0,116,0,0,0,112,0,101,0,116,0,114,0,49,0,55,0,48,0,56,0,0,0,115,0,99,0,111,0,116,0,108,0,97,0,110,0,100,0,0,0,115,0,112,0,97,0,110,0,103,0,108,0,105,0,115,0,0,0,115,0,117,0,114,0,109,0,105,0,114,0,97,0,110,0,0,0,115,0,121,0,110,0,110,0,101,0,106,0,121,0,108,0,0,0,116,0,117,0,110,0,117,0,109,0,105,0,105,0,116,0,0,0,118,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,0,0,118,0,97,0,108,0,101,0,110,0,99,0,105,0,97,0,0,0,118,0,97,0,108,0,108,0,97,0,100,0,101,0,114,0,0,0,118,0,101,0,99,0,100,0,114,0,117,0,107,0,97,0,0,0,118,0,105,0,118,0,97,0,114,0,97,0,117,0,112,0,0,0,119,0,97,0,100,0,101,0,103,0,105,0,108,0,101,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,115,0,0,0,103,0,114,0,101,0,103,0,111,0,114,0,105,0,97,0,110,0,0,0,108,0,117,0,110,0,105,0,115,0,111,0,108,0,97,0,114,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,42,0,0,0,97,0,114,0,101,0,97,0,45,0,97,0,99,0,114,0,101,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,108,0,117,0,120,0,0,0,109,0,97,0,115,0,115,0,45,0,103,0,114,0,97,0,109,0,0,0,112,0,97,0,104,0,97,0,119,0,104,0,50,0,126,0,52,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,89,0,101,0,97,0,114,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,68,0,97,0,116,0,101,0,0,0,101,0,110,0,95,0,42,0,95,0,36,0,101,0,110,0,85,0,83,0,0,0,109,0,97,0,115,0,115,0,45,0,112,0,111,0,117,0,110,0,100,0,0,0,109,0,97,0,115,0,115,0,45,0,115,0,116,0,111,0,110,0,101,0,0,0,97,0,114,0,101,0,97,0,45,0,100,0,117,0,110,0,97,0,109,0,0,0,109,0,97,0,115,0,115,0,45,0,99,0,97,0,114,0,97,0,116,0,0,0,109,0,97,0,115,0,115,0,45,0,103,0,114,0,97,0,105,0,110,0,0,0,109,0,97,0,115,0,115,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,109,0,97,0,115,0,115,0,45,0,116,0,111,0,110,0,110,0,101,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,119,0,97,0,116,0,116,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,107,0,110,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,112,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,77,0,79,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,77,0,111,0,110,0,116,0,104,0,0,0,101,0,110,0,95,0,42,0,95,0,36,0,33,0,101,0,110,0,85,0,83,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,121,0,97,0,114,0,100,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,98,0,105,0,116,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,101,0,109,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,102,0,111,0,111,0,116,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,105,0,110,0,99,0,104,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,108,0,101,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,108,0,117,0,109,0,101,0,110,0,0,0,109,0,97,0,115,0,115,0,45,0,100,0,97,0,108,0,116,0,111,0,110,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,114,0,97,0,109,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,114,0,111,0,112,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,112,0,105,0,110,0,116,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,116,0,98,0,108,0,97,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,112,0,105,0,110,0,99,0,104,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,100,0,101,0,103,0,114,0,101,0,101,0,0,0,97,0,114,0,101,0,97,0,45,0,104,0,101,0,99,0,116,0,97,0,114,0,101,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,113,0,117,0,97,0,114,0,116,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,114,0,97,0,100,0,105,0,97,0,110,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,98,0,121,0,116,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,100,0,97,0,121,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,111,0,104,0,109,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,106,0,111,0,117,0,108,0,101,0,0,0,102,0,111,0,114,0,99,0,101,0,45,0,110,0,101,0,119,0,116,0,111,0,110,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,100,0,111,0,116,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,114,0,103,0,115,0,97,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,112,0,111,0,105,0,110,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,98,0,97,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,108,0,105,0,116,0,101,0,114,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,99,0,105,0,118,0,105,0,108,0,0,0,97,0,114,0,95,0,42,0,95,0,36,0,109,0,97,0,103,0,104,0,114,0,101,0,98,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,105,0,116,0,101,0,109,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,111,0,108,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,104,0,111,0,117,0,114,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,119,0,101,0,101,0,107,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,121,0,101,0,97,0,114,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,118,0,111,0,108,0,116,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,102,0,97,0,116,0,104,0,111,0,109,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,112,0,97,0,114,0,115,0,101,0,99,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,0,0,109,0,97,0,115,0,115,0,45,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,111,0,102,0,104,0,103,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,98,0,97,0,114,0,114,0,101,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,98,0,117,0,115,0,104,0,101,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,106,0,105,0,103,0,103,0,101,0,114,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,73,0,110,0,116,0,101,0,114,0,118,0,97,0,108,0,0,0,97,0,114,0,95,0,42,0,95,0,36,0,33,0,109,0,97,0,103,0,104,0,114,0,101,0,98,0,0,0,101,0,115,0,95,0,42,0,95,0,36,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,112,0,116,0,95,0,42,0,95,0,36,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,36,0,99,0,110,0,115,0,97,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,107,0,97,0,114,0,97,0,116,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,111,0,110,0,116,0,104,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,112,0,105,0,120,0,101,0,108,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,102,0,117,0,114,0,108,0,111,0,110,0,103,0,0,0,109,0,97,0,115,0,115,0,45,0,109,0,105,0,99,0,114,0,111,0,103,0,114,0,97,0,109,0,0,0,109,0,97,0,115,0,115,0,45,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,103,0,105,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,109,0,101,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,101,0,115,0,95,0,42,0,95,0,36,0,33,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,112,0,116,0,95,0,42,0,95,0,36,0,33,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,36,0,33,0,99,0,110,0,115,0,97,0,114,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,110,0,117,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,103,0,105,0,103,0,97,0,98,0,105,0,116,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,107,0,105,0,108,0,111,0,98,0,105,0,116,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,109,0,101,0,103,0,97,0,98,0,105,0,116,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,116,0,101,0,114,0,97,0,98,0,105,0,116,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,100,0,101,0,99,0,97,0,100,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,116,0,104,0,101,0,114,0,109,0,45,0,117,0,115,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,104,0,101,0,114,0,116,0,122,0,0,0,109,0,97,0,115,0,115,0,45,0,101,0,97,0,114,0,116,0,104,0,45,0,109,0,97,0,115,0,115,0,0,0,109,0,97,0,115,0,115,0,45,0,109,0,101,0,116,0,114,0,105,0,99,0,45,0,116,0,111,0,110,0,0,0,109,0,97,0,115,0,115,0,45,0,111,0,117,0,110,0,99,0,101,0,45,0,116,0,114,0,111,0,121,0,0,0,109,0,97,0,115,0,115,0,45,0,115,0,111,0,108,0,97,0,114,0,45,0,109,0,97,0,115,0,115,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,119,0,97,0,116,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,116,0,101,0,97,0,115,0,112,0,111,0,111,0,110,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,117,0,109,0,97,0,108,0,113,0,117,0,114,0,97,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,97,0,114,0,99,0,45,0,109,0,105,0,110,0,117,0,116,0,101,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,97,0,114,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,114,0,101,0,118,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,105,0,108,0,101,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,121,0,97,0,114,0,100,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,99,0,101,0,110,0,116,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,111,0,114,0,116,0,105,0,111,0,110,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,103,0,105,0,103,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,107,0,105,0,108,0,111,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,109,0,101,0,103,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,112,0,101,0,116,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,116,0,101,0,114,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,99,0,101,0,110,0,116,0,117,0,114,0,121,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,113,0,117,0,97,0,114,0,116,0,101,0,114,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,107,0,105,0,108,0,111,0,106,0,111,0,117,0,108,0,101,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,100,0,101,0,99,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,110,0,97,0,110,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,112,0,105,0,99,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,104,0,111,0,114,0,115,0,101,0,112,0,111,0,119,0,101,0,114,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,45,0,104,0,103,0,0,0,112,0,114,0,111,0,112,0,111,0,114,0,116,0,105,0,111,0,110,0,45,0,107,0,97,0,114,0,97,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,97,0,99,0,114,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,109,0,101,0,103,0,97,0,108,0,105,0,116,0,101,0,114,0,0,0,100,0,101,0,95,0,102,0,97,0,99,0,116,0,111,0,95,0,111,0,102,0,102,0,105,0,99,0,105,0,97,0,108,0,0,0,111,0,102,0,102,0,105,0,99,0,105,0,97,0,108,0,95,0,114,0,101,0,103,0,105,0,111,0,110,0,97,0,108,0,0,0,77,0,65,0,43,0,68,0,90,0,43,0,84,0,78,0,43,0,76,0,89,0,43,0,77,0,82,0,43,0,69,0,72,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,116,0,97,0,98,0,108,0,101,0,115,0,112,0,111,0,111,0,110,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,109,0,105,0,108,0,108,0,101,0,0,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,108,0,105,0,103,0,104,0,116,0,45,0,121,0,101,0,97,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,99,0,114,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,98,0,97,0,114,0,0,0,116,0,111,0,114,0,113,0,117,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,101,0,110,0,116,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,105,0,110,0,99,0,104,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,105,0,108,0,101,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,121,0,97,0,114,0,100,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,112,0,45,0,109,0,101,0,116,0,114,0,105,0,99,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,104,0,101,0,99,0,116,0,111,0,108,0,105,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,107,0,105,0,108,0,111,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,107,0,101,0,108,0,118,0,105,0,110,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,109,0,121,0,114,0,105,0,97,0,100,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,102,0,111,0,111,0,100,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,109,0,101,0,103,0,97,0,112,0,105,0,120,0,101,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,45,0,111,0,102,0,104,0,103,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,112,0,105,0,110,0,116,0,45,0,109,0,101,0,116,0,114,0,105,0,99,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,109,0,105,0,108,0,108,0,105,0,111,0,110,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,100,0,97,0,121,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,110,0,97,0,110,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,101,0,108,0,101,0,99,0,116,0,114,0,111,0,110,0,118,0,111,0,108,0,116,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,103,0,105,0,103,0,97,0,104,0,101,0,114,0,116,0,122,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,107,0,105,0,108,0,111,0,104,0,101,0,114,0,116,0,122,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,109,0,101,0,103,0,97,0,104,0,101,0,114,0,116,0,122,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,101,0,97,0,114,0,116,0,104,0,45,0,114,0,97,0,100,0,105,0,117,0,115,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,115,0,111,0,108,0,97,0,114,0,45,0,114,0,97,0,100,0,105,0,117,0,115,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,97,0,116,0,109,0,111,0,115,0,112,0,104,0,101,0,114,0,101,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,107,0,105,0,108,0,111,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,101,0,103,0,97,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,99,0,101,0,108,0,115,0,105,0,117,0,115,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,103,0,101,0,110,0,101,0,114,0,105,0,99,0,0,0,116,0,111,0,114,0,113,0,117,0,101,0,45,0,110,0,101,0,119,0,116,0,111,0,110,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,103,0,45,0,102,0,111,0,114,0,99,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,99,0,114,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,108,0,108,0,105,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,119,0,101,0,101,0,107,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,121,0,101,0,97,0,114,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,109,0,105,0,108,0,108,0,105,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,45,0,104,0,111,0,117,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,110,0,97,0,117,0,116,0,105,0,99,0,97,0,108,0,45,0,109,0,105,0,108,0,101,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,104,0,101,0,99,0,116,0,111,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,101,0,115,0,115,0,101,0,114,0,116,0,45,0,115,0,112,0,111,0,111,0,110,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,111,0,110,0,116,0,104,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,100,0,111,0,116,0,45,0,112,0,101,0,114,0,45,0,105,0,110,0,99,0,104,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,113,0,117,0,97,0,114,0,116,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,102,0,97,0,104,0,114,0,101,0,110,0,104,0,101,0,105,0,116,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,115,0,111,0,108,0,97,0,114,0,45,0,108,0,117,0,109,0,105,0,110,0,111,0,115,0,105,0,116,0,121,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,112,0,105,0,120,0,101,0,108,0,45,0,112,0,101,0,114,0,45,0,105,0,110,0,99,0,104,0,0,0,116,0,111,0,114,0,113,0,117,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,108,0,101,0,45,0,115,0,99,0,97,0,110,0,100,0,105,0,110,0,97,0,118,0,105,0,97,0,110,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,97,0,115,0,116,0,114,0,111,0,110,0,111,0,109,0,105,0,99,0,97,0,108,0,45,0,117,0,110,0,105,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,104,0,103,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,97,0,114,0,116,0,45,0,112,0,101,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,111,0,110,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,98,0,114,0,105,0,116,0,105,0,115,0,104,0,45,0,116,0,104,0,101,0,114,0,109,0,97,0,108,0,45,0,117,0,110,0,105,0,116,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,100,0,111,0,116,0,45,0,112,0,101,0,114,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,111,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,108,0,105,0,116,0,101,0,114,0,0,0,65,0,83,0,43,0,67,0,65,0,43,0,71,0,85,0,43,0,77,0,72,0,43,0,77,0,80,0,43,0,80,0,72,0,43,0,80,0,82,0,43,0,85,0,77,0,43,0,85,0,83,0,43,0,86,0,73,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,112,0,105,0,120,0,101,0,108,0,45,0,112,0,101,0,114,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,101,0,115,0,115,0,101,0,114,0,116,0,45,0,115,0,112,0,111,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,45,0,109,0,101,0,114,0,99,0,117,0,114,0,121,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,115,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,100,0,0,0,102,0,111,0,114,0,99,0,101,0,45,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,45,0,104,0,111,0,117,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,42,220,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,1,0,54,205,5,0,54,205,158,210,215,195,143,207,178,206,5,0,15,197,54,205,215,195,143,207,178,206,3,0,54,205,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,5,0,54,205,158,210,215,195,143,207,178,206,2,0,54,205,247,195,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,5,0,54,205,217,178,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,54,205,76,204,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,5,0,54,205,84,185,215,195,143,207,178,206,2,0,54,205,59,186,4,0,54,205,215,195,143,207,178,206,5,0,15,197,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,54,205,130,204,4,0,54,205,215,195,143,207,178,206,2,0,54,205,20,143,5,0,54,205,158,210,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,5,0,54,205,158,210,215,195,143,207,178,206,4,0,158,210,54,205,215,195,78,207,4,0,54,205,215,195,143,207,178,206,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,40,204,54,205,3,0,54,205,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,3,0,54,205,143,207,178,206,3,0,54,205,95,32,247,195,3,0,54,205,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,3,0,220,2,71,4,83,11,3,0,180,1,72,135,119,11,3,0,70,0,12,108,143,11,3,0,136,1,90,111,99,11,3,0,121,108,84,135,167,11,3,0,127,108,99,10,107,11,3,0,88,2,60,135,111,11,3,0,56,2,220,134,151,11,3,0,124,2,19,10,123,11,3,0,117,106,78,135,103,11,3,0,139,0,96,111,163,11,3,0,131,107,96,135,147,11,3,0,100,0,208,134,159,11,3,0,193,105,214,134,179,11,3,0,133,108,108,135,175,11,3,0,103,0,98,112,87,11,3,0,142,0,175,9,31,2,3,0,188,1,90,135,183,11,3,0,164,1,132,135,239,11,3,0,139,108,190,110,11,12,3,0,168,1,102,111,223,11,3,0,205,105,202,110,207,4,3,0,49,0,183,10,219,11,3,0,25,0,108,111,147,1,3,0,106,0,120,135,231,11,3,0,52,0,152,112,199,11,3,0,73,0,58,134,211,11,3,0,145,0,91,10,243,11,3,0,205,111,126,135,255,11,3,0,48,2,174,135,247,4,3,0,213,106,232,134,235,4,3,0,109,0,23,10,215,11,3,0,123,106,150,135,7,12,3,0,145,108,114,135,235,11,3,0,112,0,30,135,171,2,3,0,148,0,44,109,31,12,3,0,151,0,144,135,35,12,3,0,41,107,138,135,39,12,3,0,216,1,244,134,247,11,3,0,137,107,156,135,251,11,3,0,76,1,254,112,55,12,3,0,151,108,240,135,59,12,3,0,96,1,40,113,87,12,3,0,228,1,186,135,51,12,3,0,64,2,252,135,91,12,3,0,235,105,15,4,175,2,3,0,28,0,235,9,71,12,3,0,211,111,2,136,95,12,3,0,143,107,22,113,63,12,3,0,141,106,180,135,79,12,3,0,52,1,110,109,67,12,3,0,217,108,28,113,99,12,3,0,149,107,46,113,111,12,3,0,112,2,67,4,63,2,3,0,223,108,58,113,123,12,3,0,215,107,4,113,107,12,3,0,115,0,76,134,127,12,3,0,217,111,234,135,55,9,3,0,253,105,8,136,63,5,3,0,19,0,56,112,135,12,3,0,152,2,215,9,143,12,3,0,133,105,211,9,151,12,3,0,31,0,107,3,155,12,3,0,3,106,62,112,159,12,3,0,47,107,120,111,71,1,3,0,155,107,102,108,163,12,3,0,13,0,66,135,167,12,3,0,219,106,126,111,171,12,3,0,108,1,26,136,195,12,3,0,55,0,43,4,183,12,3,0,173,212,248,109,191,12,3,0,39,106,64,113,187,12,3,0,64,1,100,134,95,5,3,0,10,0,20,136,83,1,3,0,148,2,167,2,91,6,3,0,211,105,171,9,203,12,3,0,45,106,103,3,207,12,3,0,229,111,99,3,151,1,3,0,51,106,55,10,223,12,3,0,80,2,32,136,219,12,3,0,181,105,183,9,211,12,3,0,157,0,179,9,227,12,3,0,72,2,199,9,231,12,3,0,139,105,47,4,235,12,3,0,157,108,0,135,135,5,3,0,58,0,203,9,243,12,3,0,52,2,187,9,43,13,3,0,235,111,167,10,247,12,3,0,223,105,219,9,251,12,3,0,163,108,115,3,3,13,3,0,160,0,250,134,39,13,3,0,53,107,111,3,15,13,3,0,116,1,68,112,7,13,3,0,128,2,64,134,11,13,3,0,129,106,48,135,23,13,3,0,148,1,223,9,35,13,3,0,144,2,167,9,23,15,3,0,161,107,70,113,35,2,3,0,118,0,70,134,39,2,3,0,221,107,230,109,19,13,3,0,59,107,76,113,47,13,3,0,147,106,123,3,211,1,3,0,120,2,38,136,59,13,3,0,229,108,119,3,63,13,3,0,92,1,52,113,71,13,3,0,76,0,82,113,75,13,3,0,34,0,127,3,79,13,3,0,4,0,139,3,83,13,3,0,57,106,227,9,111,13,3,0,153,106,151,3,127,13,3,0,169,108,175,10,99,13,3,0,121,105,135,3,103,13,3,0,241,111,162,135,107,13,3,0,37,0,147,3,119,13,3,0,56,1,143,3,115,13,3,0,121,0,131,3,123,13,3,0,104,1,231,9,115,2,3,0,175,108,171,10,139,13,3,0,159,106,155,3,135,13,3,0,79,0,167,3,143,13,3,0,124,0,159,3,147,13,3,0,163,105,158,112,151,13,3,0,212,1,94,113,155,13,3,0,127,0,248,112,119,2,3,0,65,107,218,109,159,13,3,0,160,1,34,113,103,12,3,0,181,108,95,10,163,13,3,0,172,1,164,112,151,14,3,0,244,1,60,108,167,13,3,0,82,0,88,113,179,13,3,0,247,111,10,113,131,12,3,0,40,0,163,3,187,1,3,0,32,2,100,113,183,13,3,0,236,1,74,112,47,2,3,0,187,108,103,10,191,13,3,0,192,1,239,9,195,13,3,0,152,1,16,113,199,13,3,0,193,108,112,113,187,13,3,0,71,107,80,112,219,1,3,0,124,1,171,3,207,13,3,0,241,105,112,134,223,13,3,0,132,1,50,136,223,1,3,0,85,0,118,113,215,1,3,0,72,1,170,112,235,13,3,0,130,0,3,10,239,13,3,0,84,2,195,3,243,13,3,0,133,0,7,10,127,1,3,0,12,2,242,109,251,5,3,0,165,106,243,9,251,13,3,0,88,0,59,10,7,14,3,0,4,2,206,112,179,2,3,0,43,0,247,9,191,1,3,0,252,1,44,109,19,14,3,0,60,2,191,3,23,14,3,0,75,109,244,107,211,2,3,0,140,2,47,10,155,1,3,0,163,0,255,9,43,14,3,0,68,2,250,107,31,14,3,0,253,111,11,10,231,1,3,0,9,106,251,9,123,1,3,0,63,106,0,108,47,14,3,0,77,107,183,3,255,13,3,0,171,106,175,3,55,14,3,0,225,106,187,3,3,14,3,0,69,106,179,3,59,14,3,0,199,105,6,135,27,14,3,0,15,106,199,3,55,2,3,0,136,0,31,10,71,14,3,0,128,1,35,10,75,14,3,0,3,112,43,10,79,14,3,0,169,105,215,3,83,14,3,0,167,107,211,3,99,2,3,0,175,105,224,109,91,14,3,0,46,0,219,3,99,14,3,0,156,1,92,112,99,1,3,0,177,106,15,10,35,1,3,0,20,2,27,10,103,14,3,0,83,107,39,10,87,14,3,0,183,106,207,3,107,14,3,0,240,1,86,112,59,2,3,0,173,107,71,10,123,2,3,0,179,107,176,112,119,14,3,0,208,1,191,9,171,14,3,0,189,106,223,3,139,14,3,0,7,0,182,112,127,14,3,0,151,105,6,108,111,14,3,0,100,1,79,10,143,14,3,0,132,2,107,10,131,2,3,0,9,112,75,10,51,1,3,0,235,108,87,10,147,14,3,0,166,0,207,9,163,14,3,0,247,105,83,10,155,14,3,0,195,106,63,10,131,14,3,0,231,106,227,3,159,14,3,0,91,0,104,112,175,14,3,0,187,0,75,4,179,14,3,0,190,0,79,4,183,14,3,0,169,0,83,4,187,14,3,0,193,0,87,4,191,14,3,0,68,9,91,4,195,14,3,0,196,0,95,4,199,14,3,0,199,0,99,4,203,14,3,0,202,0,39,11,207,14,3,0,172,0,167,2,91,6,3,0,205,0,103,4,211,14,3,0,208,0,107,4,215,14,3,0,211,0,111,4,219,14,3,0,214,0,122,112,223,14,3,0,217,0,128,112,227,14,3,0,0,2,236,109,231,14,3,0,80,1,94,134,243,14,3,0,68,1,123,10,39,15,3,0,36,1,110,112,251,14,3,0,75,106,116,112,255,14,3,0,248,1,243,3,3,15,3,0,89,107,238,134,235,1,3,0,201,106,247,3,71,15,3,0,81,106,135,10,11,15,3,0,87,106,11,4,63,15,3,0,93,106,188,112,127,2,3,0,15,112,235,3,27,15,3,0,217,105,18,135,199,1,3,0,44,2,143,10,31,15,3,0,88,1,12,135,59,15,3,0,99,106,251,3,135,6,3,0,76,2,115,10,67,2,3,0,48,1,119,10,19,15,3,0,220,1,200,112,239,1,3,0,232,1,139,10,159,6,3,0,95,107,3,4,47,15,3,0,81,109,239,3,135,2,3,0,28,2,24,135,51,15,3,0,185,107,132,111,131,1,3,0,199,108,88,134,63,9,3,0,61,0,19,4,75,15,3,0,101,107,7,4,67,15,3,0,21,112,254,109,75,1,3,0,184,1,204,135,79,15,3,0,108,2,195,9,107,2,3,0,176,1,151,10,83,15,3,0,84,1,23,4,87,15,3,0,94,0,147,10,91,15,3,0,205,108,155,10,99,15,3,0,227,107,231,3,103,15,3,0,36,2,159,10,159,1,3,0,144,1,35,4,215,2,3,0,107,107,27,4,111,15,3,0,136,2,231,3,139,2,3,0,22,0,118,134,127,15,3,0,113,107,31,4,123,15,3,0,119,107,163,10,131,15,3,0,175,0,228,135,135,15,3,0,229,105,18,108,139,15,3,0,120,1,106,134,243,1,3,0,157,105,39,4,71,2,3,0,40,2,51,10,147,15,3,0,154,205,51,4,247,1,3,0,241,108,55,4,151,15,3,0,97,0,59,4,163,15,3,0,224,1,44,136,167,15,3,0,125,107,111,10,171,15,3,0,191,107,187,10,179,15,3,0,211,108,168,135,183,15,3,0,41,219,179,10,55,1,3,0,200,1,194,112,187,15,3,0,105,106,203,3,195,15,3,0,140,1,191,10,199,15,3,0,207,106,63,4,75,2,3,0,220,0,134,112,219,2,3,0,223,0,140,112,3,7,3,0,226,0,115,4,207,15,3,0,229,0,24,108,211,15,3,0,232,0,119,4,107,1,3,0,235,0,123,4,215,15,3,0,238,0,127,4,223,15,3,0,241,0,131,4,227,15,3,0,244,0,135,4,231,15,3,0,247,0,43,11,235,15,3,0,64,0,47,11,239,15,3,0,250,0,139,4,243,15,3,0,64,9,143,4,251,1,3,0,204,2,147,4,247,15,3,0,253,0,51,11,251,15,3,0,60,9,55,11,255,15,3,0,0,1,59,11,67,9,3,0,56,9,157,178,3,16,3,0,3,1,63,11,7,16,3,0,6,1,67,11,11,16,3,0,9,1,71,11,15,16,3,0,208,2,146,43,19,16,3,0,12,1,75,11,23,16,3,0,96,2,120,69,95,2,3,0,15,1,151,4,27,16,3,0,18,1,79,11,31,16,3,0,16,2,131,10,83,2,3,0,67,0,199,10,35,16,3,0,196,1,246,135,195,1,3,0,24,2,67,4,43,16,3,0,145,105,255,3,135,1,3,0,21,106,203,10,51,16,3,0,178,0,40,113,183,2,3,0,111,106,127,10,67,16,3,0,224,2,155,4,223,2,2,0,159,4,12,108,2,0,163,4,122,112,2,0,167,4,194,178,2,0,171,4,187,43,2,0,175,4,82,134,2,0,179,4,134,112,2,0,67,1,80,70,2,0,183,4,85,70,2,0,187,4,98,112,2,0,191,4,247,10,2,0,195,4,119,4,2,0,199,4,192,43,2,0,203,4,66,44,2,0,211,4,115,4,2,0,215,4,100,70,2,0,219,4,152,112,2,0,223,4,120,70,2,0,227,4,140,70,2,0,231,4,125,70,2,0,239,4,139,4,2,0,243,4,147,4,2,0,251,4,95,70,2,0,171,2,197,43,2,0,255,4,202,43,2,0,3,5,140,112,2,0,7,5,105,70,2,0,11,5,254,112,2,0,15,5,24,108,2,0,175,2,255,10,2,0,19,5,15,4,2,0,23,5,3,11,2,0,75,12,157,178,2,0,27,5,22,113,2,0,31,5,110,109,2,0,35,5,110,109,2,0,39,5,28,113,2,0,43,5,111,4,2,0,47,5,46,113,2,0,51,5,219,10,2,0,55,5,58,113,2,0,59,5,4,113,2,0,67,5,56,112,2,0,71,5,107,3,2,0,75,5,62,112,2,0,79,5,102,108,2,0,83,5,145,70,2,0,87,5,43,4,2,0,91,5,64,113,2,0,99,5,14,136,2,0,103,5,123,4,2,0,107,5,103,3,2,0,171,1,99,3,2,0,111,5,47,4,2,0,115,5,135,4,2,0,119,5,227,10,2,0,123,5,115,3,2,0,127,5,111,3,2,0,131,5,68,112,2,0,139,5,70,113,2,0,143,5,76,113,2,0,147,5,123,3,2,0,151,5,119,3,2,0,155,5,52,113,2,0,175,1,82,113,2,0,159,5,127,3,2,0,163,5,139,3,2,0,167,5,151,3,2,0,171,5,135,3,2,0,175,5,147,3,2,0,179,5,143,3,2,0,87,1,131,3,2,0,183,5,155,3,2,0,187,5,167,3,2,0,191,5,159,3,2,0,195,5,158,112,2,0,199,5,94,113,2,0,91,1,248,112,2,0,11,2,34,113,2,0,203,5,164,112,2,0,207,5,60,108,2,0,211,5,88,113,2,0,215,5,10,113,2,0,219,5,163,3,2,0,223,5,100,113,2,0,227,5,74,112,2,0,231,5,16,113,2,0,235,5,112,113,2,0,239,5,80,112,2,0,243,5,171,3,2,0,15,2,118,113,2,0,247,5,170,112,2,0,255,5,195,3,2,0,3,6,107,4,2,0,179,2,206,112,2,0,7,6,44,109,2,0,19,2,191,3,2,0,11,6,244,107,2,0,79,1,250,107,2,0,15,6,211,10,2,0,19,6,0,108,2,0,23,6,183,3,2,0,27,6,175,3,2,0,203,2,187,3,2,0,207,2,127,4,2,0,31,6,179,3,2,0,35,6,59,197,2,0,179,1,199,3,2,0,115,1,215,3,2,0,39,6,211,3,2,0,43,6,219,3,2,0,47,6,92,112,2,0,51,6,207,3,2,0,55,6,86,112,2,0,59,6,67,10,2,0,63,6,176,112,2,0,67,6,223,3,2,0,71,6,182,112,2,0,75,6,6,108,2,0,79,6,143,4,2,0,83,6,227,3,2,0,87,6,104,112,2,0,95,6,251,10,2,0,99,6,243,10,2,0,103,6,110,112,2,0,139,1,116,112,2,0,107,6,243,3,2,0,111,6,110,70,2,0,115,6,247,3,2,0,119,6,235,10,2,0,123,6,11,4,2,0,127,6,188,112,2,0,131,6,235,3,2,0,139,6,251,3,2,0,143,6,200,112,2,0,147,6,103,4,2,0,151,6,3,4,2,0,155,6,239,3,2,0,143,1,215,10,2,0,163,6,19,4,2,0,167,6,7,4,2,0,171,6,23,4,2,0,175,6,128,112,2,0,179,6,223,10,2,0,183,6,35,4,2,0,187,6,27,4,2,0,191,6,7,11,2,0,183,1,31,4,2,0,195,6,4,110,2,0,199,6,18,108,2,0,203,6,131,4,2,0,207,6,39,4,2,0,211,6,51,4,2,0,47,1,151,4,2,0,215,6,239,10,2,0,23,2,55,4,2,0,219,6,207,10,2,0,223,6,59,4,2,0,227,6,193,203,2,0,231,6,231,10,2,0,63,1,10,110,2,0,235,6,194,112,2,0,239,6,203,3,2,0,243,6,63,4,2,0,247,6,11,11,2,0,251,6,83,4,2,0,255,6,75,4,2,0,163,1,27,11,2,0,3,7,31,11,2,0,203,15,35,11,2,0,167,1,71,4,2,0,95,1,15,11,2,0,7,7,79,4,2,0,11,7,19,11,2,0,15,7,95,4,2,0,207,1,23,11,2,0,19,7,87,4,2,0,27,2,146,43,2,0,23,7,91,4,2,0,119,1,99,4,2,0,95,2,155,4,2,0,27,7,195,10,2,0,183,2,255,3,2,0,31,7,167,2,139,0,91,11,95,11,115,11,127,11,131,11,135,11,139,11,102,136,155,11,171,11,187,11,191,11,195,11,203,11,207,11,207,4,108,136,227,11,235,4,3,12,239,4,114,136,15,12,247,4,19,12,23,12,27,12,43,12,3,5,175,2,23,5,120,136,31,5,83,12,43,5,115,12,119,12,63,5,139,12,147,12,111,2,175,12,179,12,126,136,95,5,199,12,215,12,239,12,255,12,27,13,31,13,135,5,51,13,55,13,67,13,87,13,91,13,95,13,43,2,131,13,171,13,175,13,243,5,203,13,211,13,215,13,219,13,227,13,231,13,251,5,227,1,247,13,51,2,11,14,15,14,79,1,35,14,39,14,51,14,59,9,207,2,63,14,67,14,99,2,95,14,115,14,123,14,135,14,167,14,235,14,239,14,247,14,7,15,15,15,103,1,35,15,43,15,155,6,159,6,55,15,95,15,107,15,115,15,119,15,143,15,143,2,47,1,155,15,215,6,159,15,219,6,175,15,227,6,231,6,191,15,251,6,255,6,138,136,7,7,147,2,79,2,219,15,15,7,19,7,255,1,27,2,23,7,119,1,151,2,39,16,144,136,47,16,87,2,3,2,55,16,59,16,63,16,71,16,75,16,156,0,159,4,163,4,167,4,171,4,175,4,179,4,67,1,183,4,187,4,191,4,195,4,199,4,203,4,211,4,215,4,219,4,223,4,227,4,231,4,243,4,251,4,171,2,255,4,47,12,7,5,11,5,15,5,19,5,27,5,35,5,39,5,47,5,51,5,55,5,59,5,67,5,71,5,75,5,79,5,83,5,87,5,91,5,99,5,103,5,107,5,171,1,111,5,115,5,119,5,123,5,127,5,131,5,139,5,143,5,147,5,151,5,155,5,175,1,159,5,163,5,167,5,171,5,175,5,179,5,87,1,183,5,187,5,191,5,195,5,199,5,91,1,11,2,203,5,207,5,211,5,215,5,219,5,223,5,227,5,231,5,235,5,239,5,15,2,247,5,255,5,3,6,179,2,7,6,19,2,11,6,15,6,19,6,23,6,27,6,203,2,31,6,35,6,179,1,115,1,39,6,43,6,47,6,51,6,55,6,59,6,63,6,67,6,71,6,75,6,79,6,83,6,87,6,95,6,99,6,103,6,139,1,107,6,111,6,115,6,119,6,123,6,127,6,131,6,135,6,139,6,143,6,147,6,151,6,143,1,163,6,167,6,171,6,175,6,179,6,183,6,187,6,191,6,183,1,195,6,199,6,203,6,207,6,211,6,23,2,223,6,63,1,235,6,239,6,243,6,247,6,95,1,11,7,207,1,27,7,183,2,31,7,18,1,83,16,131,16,136,43,159,16,104,137,199,16,122,42,195,39,31,17,71,17,123,17,118,138,139,17,182,109,55,7,151,17,155,17,183,17,21,109,187,17,195,17,199,17,203,17,59,7,215,17,188,109,223,17,3,18,11,18,19,18,31,18,35,18,43,18,51,18,63,18,71,18,79,18,87,18,95,18,195,18,203,18,28,110,239,18,34,110,243,18,247,18,19,19,39,19,43,19,55,19,91,19,95,19,158,41,115,19,67,197,119,19,127,19,131,19,224,40,139,19,234,40,179,19,191,19,195,19,52,110,219,19,239,19,19,20,163,20,188,41,187,20,207,20,220,203,205,69,35,21,143,21,223,21,231,21,235,21,132,42,11,22,106,147,19,22,39,22,142,42,71,22,103,22,195,22,203,22,206,109,239,22,27,23,39,23,71,23,143,23,215,23,223,23,67,24,83,24,87,24,91,24,235,178,160,9,239,24,195,69,31,25,16,44,162,43,187,25,191,25,250,150,199,25,235,25,239,25,243,25,247,25,251,25,195,2,75,9,7,26,15,26,242,42,23,26,27,26,39,26,43,26,51,26,59,26,63,26,67,26,71,26,75,26,79,26,61,43,87,26,107,26,127,26,130,134,155,69,39,70,152,109,107,8,18,41,103,27,131,27,135,27,139,27,151,27,187,27,195,27,199,27,70,70,207,27,223,27,231,27,239,27,243,27,247,27,126,157,255,27,3,28,7,28,11,28,232,110,210,69,35,28,118,41,95,28,23,41,123,28,127,28,28,41,135,28,98,41,215,28,7,29,115,29,151,29,195,29,231,29,43,30,51,30,63,30,75,30,99,30,143,30,159,30,171,30,175,30,179,30,183,30,187,30,195,30,203,30,215,30,235,30,239,30,243,30,15,31,23,31,151,31,3,214,51,32,150,39,59,32,21,43,212,109,71,43,187,32,247,32,251,32,111,39,7,33,49,70,11,33,86,43,27,33,209,40,172,168,75,33,87,33,91,33,143,33,147,33,167,33,171,33,138,169,150,169,195,33,144,9,207,33,219,33,2,170,227,33,239,33,243,33,148,9,87,34,103,34,119,34,159,34,183,34,39,35,143,35,11,3,163,35,211,35,219,35,27,36,47,36,59,36,147,36,163,36,183,36,239,36,3,37,15,37,119,9,27,37,103,37,123,37,135,37,147,37,187,37,96,43,63,3,239,37,135,9,23,38,43,38,158,109,200,109,255,39,231,38,15,0,99,31,88,162,94,162,100,162,106,162,112,162,118,162,124,162,130,162,136,162,142,162,148,162,154,162,160,162,166,162,41,10,252,2,150,136,156,136,162,136,168,136,91,16,87,109,174,136,180,136,186,136,192,136,198,136,204,136,210,136,216,136,222,136,127,16,228,136,234,136,240,136,45,112,246,136,252,136,2,137,139,16,143,16,8,137,65,40,14,137,32,137,38,137,151,16,44,137,50,137,155,16,56,137,62,137,68,137,74,137,80,137,86,137,92,137,163,16,98,137,167,16,171,16,175,16,179,16,35,7,183,16,187,16,191,16,109,108,110,137,116,137,184,110,122,137,128,137,51,109,140,137,146,137,152,137,199,111,158,137,164,137,182,137,188,137,203,16,207,16,194,137,219,16,200,137,223,16,206,137,227,16,231,16,235,16,239,16,127,105,218,137,224,137,236,137,39,112,248,137,254,137,4,138,16,138,22,138,28,138,34,138,40,138,63,136,79,17,83,17,7,42,46,138,52,138,58,138,64,138,91,17,70,138,76,138,95,17,12,42,99,17,82,138,103,17,24,3,88,138,94,138,100,138,106,138,112,138,127,17,209,107,124,138,135,17,130,138,143,17,147,17,246,39,154,138,238,107,160,138,172,138,178,138,184,138,190,138,196,138,202,138,214,138,72,3,220,138,42,108,226,138,232,138,12,139,100,9,18,139,24,139,30,139,36,139,42,139,88,9,48,139,54,139,60,139,72,139,78,139,84,139,90,139,211,17,96,139,102,139,108,139,114,139,120,139,115,70,126,139,227,17,51,44,132,139,138,139,56,44,144,139,156,139,180,139,255,17,186,139,192,139,198,139,204,139,45,40,210,139,216,139,171,39,222,139,228,139,7,18,234,139,240,139,246,139,252,139,2,140,8,140,14,140,20,140,26,140,32,140,38,140,39,18,44,140,47,18,50,140,56,140,55,18,62,140,76,3,68,140,74,140,80,140,67,18,86,140,92,140,98,140,75,18,104,140,110,140,83,18,116,140,122,140,91,18,128,140,134,140,140,140,146,140,152,140,104,9,158,140,103,18,164,140,107,18,111,18,115,18,119,18,123,18,127,18,131,18,47,42,147,18,151,18,155,18,156,9,176,140,182,140,188,140,220,110,194,140,200,140,163,18,167,18,206,140,171,18,175,18,179,18,183,18,187,18,52,42,212,140,191,18,218,140,199,18,227,2,71,7,75,7,207,18,224,140,230,140,236,140,57,42,211,18,215,18,242,140,219,18,248,140,223,18,227,18,62,42,67,42,231,18,72,42,235,18,254,140,77,42,4,141,10,141,16,141,22,141,28,141,34,141,40,141,85,40,46,141,52,141,64,141,251,18,70,141,76,141,255,18,82,141,3,19,7,19,88,141,15,19,108,9,94,141,100,141,112,141,70,40,118,141,35,19,124,141,130,141,136,141,142,141,148,141,217,43,154,141,160,141,166,141,247,43,47,19,51,19,172,141,59,19,63,19,67,19,55,40,178,141,71,19,103,7,75,19,2,143,83,19,92,2,87,19,8,143,14,143,48,111,26,143,32,143,183,178,38,143,44,143,50,143,56,143,40,110,99,19,14,70,103,19,62,143,107,19,68,143,74,143,80,143,227,42,71,39,86,143,92,143,98,143,46,110,111,19,104,143,110,143,116,143,148,134,122,143,128,143,232,42,123,19,82,42,134,143,140,143,146,143,152,143,158,143,164,143,170,143,135,19,176,143,182,143,188,143,194,143,143,19,184,134,163,41,51,43,229,40,147,19,200,143,151,19,155,19,159,19,206,143,212,143,218,143,224,143,230,143,163,19,236,143,167,19,242,143,248,143,237,42,254,143,171,19,4,144,10,144,16,144,22,144,28,144,34,144,168,41,40,144,175,19,87,42,183,19,46,144,187,19,52,144,154,134,235,69,199,19,58,144,240,69,197,178,203,19,207,19,64,144,211,19,70,144,215,19,76,144,82,144,107,7,88,144,94,144,100,144,106,144,84,9,227,19,231,19,235,19,112,144,243,19,247,19,118,144,124,144,251,19,255,19,3,20,130,144,7,20,11,20,80,9,15,20,23,20,27,20,31,20,35,20,39,20,43,20,47,20,51,20,250,110,36,111,55,20,226,117,111,7,40,3,127,20,131,20,135,20,139,20,143,20,214,144,147,20,220,144,151,20,111,43,155,20,68,217,159,20,116,43,73,41,183,41,167,20,171,20,226,144,232,144,175,20,193,41,128,9,179,20,238,144,198,41,203,41,183,20,19,196,191,20,244,144,195,20,199,20,203,20,250,144,0,145,211,20,215,20,6,145,32,1,30,145,160,134,223,20,36,145,42,145,48,145,0,3,227,20,231,20,121,43,54,145,159,40,145,69,60,145,58,110,66,39,251,195,78,145,84,145,235,20,236,106,126,43,90,145,9,109,96,145,38,41,102,145,108,145,239,20,243,20,4,3,164,40,247,20,251,20,255,20,3,21,7,21,11,21,135,7,15,21,19,21,11,44,114,145,23,21,120,145,27,21,31,21,39,21,126,145,43,21,47,21,166,134,16,0,51,21,139,7,55,21,92,9,59,21,132,145,143,7,63,21,67,21,138,145,71,21,177,43,75,21,79,21,130,110,144,145,83,21,64,110,136,110,87,21,239,40,91,21,95,21,60,39,99,21,117,109,103,21,107,21,150,145,156,145,111,21,115,21,119,21,41,39,174,145,127,21,167,7,210,145,244,40,135,21,139,21,171,7,234,145,240,145,246,145,252,145,2,146,167,21,171,21,175,21,179,21,232,2,35,40,14,146,20,146,56,146,152,146,242,146,46,147,52,147,239,21,243,21,137,42,247,21,28,3,58,147,64,147,251,21,70,147,76,147,255,21,22,110,82,147,3,22,7,22,88,147,94,147,15,22,100,147,112,147,23,22,140,109,27,22,31,22,35,22,118,147,124,147,130,147,136,147,142,147,148,147,154,147,160,147,43,22,166,147,47,22,51,22,55,22,204,178,172,147,63,22,247,108,178,147,67,22,184,147,75,22,79,22,83,22,87,22,91,22,190,147,196,147,202,147,250,123,208,147,214,147,33,106,220,147,226,147,232,147,238,147,151,43,107,22,244,147,115,22,119,22,123,22,127,22,187,2,131,22,135,22,139,22,250,147,6,148,223,7,12,111,12,148,183,22,187,22,18,148,191,22,227,7,152,42,199,22,44,3,24,148,30,148,36,148,42,148,211,22,27,112,215,22,219,22,48,148,223,22,54,148,60,148,227,22,66,148,72,148,78,148,231,22,84,148,90,148,235,22,243,22,96,148,247,22,102,148,251,22,108,148,78,111,255,22,3,23,33,109,114,148,120,148,126,148,132,148,15,23,19,23,23,23,31,23,35,23,227,43,43,23,138,148,47,23,51,23,55,23,59,23,63,23,67,23,204,1,144,148,18,111,150,148,75,23,79,23,83,23,156,148,239,7,87,23,91,23,95,23,99,23,103,23,125,69,162,148,168,148,174,148,180,148,186,148,107,23,192,148,198,148,204,148,76,110,111,23,172,43,210,148,216,148,222,148,228,148,234,148,240,148,115,23,119,23,166,39,123,23,127,23,131,23,135,23,139,23,246,148,252,148,2,149,147,23,151,23,180,69,155,23,243,7,159,23,35,107,249,40,163,23,167,23,171,23,175,23,8,3,8,149,14,149,179,23,142,110,183,23,187,23,191,23,195,23,199,23,203,23,27,109,207,23,20,149,21,1,48,3,211,23,24,218,219,23,26,149,32,149,38,149,44,149,174,40,227,23,231,23,157,42,235,23,239,23,243,23,86,39,50,149,251,23,56,149,230,203,62,149,68,149,255,23,3,24,60,111,231,2,115,108,7,24,11,24,15,24,74,149,19,24,23,24,27,24,31,24,35,24,39,24,112,9,43,24,47,24,51,24,55,24,59,24,80,149,63,24,57,136,179,40,86,149,92,149,98,149,104,149,75,24,110,149,254,40,66,111,79,24,191,2,116,149,72,111,122,149,184,40,164,109,95,24,128,149,134,149,189,40,140,149,226,110,146,149,99,24,152,149,158,149,103,24,72,9,107,24,111,24,82,110,115,24,119,24,123,24,127,24,155,196,131,24,164,149,144,111,170,149,135,24,139,24,176,149,244,2,148,110,194,149,206,149,175,24,212,149,179,24,224,149,12,3,230,149,183,24,236,149,187,24,242,149,248,149,63,109,191,24,3,41,195,24,199,24,203,24,207,24,211,24,215,24,219,24,223,24,227,24,231,24,235,24,243,24,8,41,80,40,254,149,247,24,4,150,194,40,10,150,22,150,255,24,28,150,34,150,3,25,40,150,7,25,46,150,11,25,15,25,19,25,23,25,27,25,52,150,58,150,42,135,35,25,64,150,56,43,39,25,43,25,47,25,51,25,55,25,70,150,76,150,82,150,71,9,59,25,88,150,63,25,67,25,71,25,75,25,79,25,94,150,100,150,83,25,87,25,91,25,106,150,95,25,99,25,103,25,112,150,118,150,107,25,111,25,144,40,124,150,115,25,119,25,43,41,123,25,127,25,130,150,146,109,131,25,135,25,139,25,143,25,136,150,147,25,142,150,151,25,148,150,154,150,160,150,166,150,155,25,159,25,228,2,163,25,167,25,171,25,175,25,179,25,183,25,31,44,172,150,150,111,178,150,184,150,190,150,196,150,202,150,156,111,208,150,214,150,220,150,226,150,232,150,52,3,238,150,0,151,6,151,24,151,88,110,30,151,132,9,36,151,42,151,48,151,54,151,24,1,60,151,66,151,72,151,80,3,78,151,5,40,90,151,176,39,96,151,102,151,15,109,108,151,114,151,120,151,126,151,57,109,255,25,132,151,138,151,144,151,150,151,156,151,162,151,168,151,174,151,180,151,21,44,186,151,192,151,198,151,204,151,130,70,210,151,222,151,228,151,146,39,234,151,240,151,232,43,246,151,252,151,10,40,2,152,8,152,14,152,55,26,20,152,26,152,32,152,56,3,38,152,44,152,247,42,56,152,62,152,131,39,68,152,74,152,80,152,83,26,86,152,71,44,92,152,98,152,104,152,110,152,116,152,122,152,95,26,128,152,134,152,99,26,140,152,103,26,146,152,152,152,158,152,111,26,115,26,60,3,164,152,170,152,176,152,182,152,188,152,119,26,208,41,194,152,200,152,123,26,206,152,65,70,212,152,218,152,224,152,236,152,135,26,139,26,143,26,147,26,151,26,242,152,248,152,254,152,4,153,10,153,163,26,16,153,22,153,167,26,34,70,171,26,28,153,34,153,40,153,253,108,46,153,100,110,52,153,58,153,175,26,179,26,252,42,183,26,30,40,64,153,70,153,191,26,195,26,76,153,208,110,199,26,203,26,207,26,124,134,211,26,103,8,82,153,215,26,219,26,223,26,227,26,88,153,100,153,112,153,118,153,124,153,255,26,60,70,3,27,130,153,136,153,111,8,15,27,6,44,232,107,142,153,148,153,154,153,3,109,31,27,66,43,35,27,39,27,43,27,47,27,30,154,36,154,55,27,42,154,59,27,63,27,67,27,71,27,75,27,225,39,79,27,83,27,87,27,48,154,66,154,84,154,114,154,120,154,138,154,99,27,144,154,150,154,156,154,162,154,168,154,174,154,180,154,186,154,192,154,51,39,198,154,210,154,135,70,228,154,234,154,240,154,246,154,136,39,252,154,2,155,8,155,14,155,20,155,33,112,136,156,142,156,240,2,154,156,160,156,166,156,172,156,191,27,178,156,184,156,116,39,214,156,220,156,226,156,203,27,232,156,238,156,211,27,244,156,250,156,0,157,6,157,12,157,52,196,18,157,24,157,26,39,36,157,42,157,64,3,48,157,54,157,60,157,66,157,72,157,78,157,84,157,90,157,96,157,102,157,108,157,114,157,120,157,251,27,132,157,151,39,144,157,150,157,156,157,162,157,168,157,180,157,186,157,251,39,204,157,210,157,216,157,81,39,222,157,228,157,234,157,39,28,240,157,246,157,43,28,47,28,116,9,252,157,2,158,8,158,186,39,20,158,32,158,38,158,83,41,83,28,87,28,88,41,91,28,25,40,44,158,50,158,56,158,185,69,62,158,68,158,74,158,80,158,86,158,107,28,92,158,104,158,110,158,116,158,122,158,128,158,111,28,181,39,213,41,115,28,78,108,1,43,152,158,93,41,119,28,158,158,164,158,249,106,170,158,176,158,182,158,188,158,15,40,131,28,194,158,200,158,206,158,212,158,224,158,230,158,159,28,236,158,163,28,167,28,242,158,171,28,248,158,175,28,179,28,183,28,96,39,254,158,4,159,187,28,10,159,191,28,195,28,16,159,199,28,203,28,22,159,28,159,34,159,218,41,40,159,211,28,46,159,223,41,199,40,52,159,58,159,157,43,219,28,223,28,227,28,70,159,231,28,235,28,239,28,106,110,243,28,247,28,76,159,251,28,82,159,255,28,3,29,88,159,94,159,11,29,16,3,100,159,106,159,19,29,23,29,27,29,31,29,175,8,235,2,112,159,39,29,43,29,197,42,47,29,51,29,118,159,55,29,6,43,124,159,84,3,59,29,63,29,67,29,71,29,75,29,79,29,83,29,130,159,87,29,91,29,95,29,136,159,11,43,99,29,150,69,170,109,142,159,103,29,107,29,111,29,76,9,148,159,119,29,36,135,154,159,160,159,166,159,172,159,178,159,127,29,131,29,135,29,184,159,139,29,202,203,143,29,147,29,190,159,8,2,196,159,155,29,159,29,202,159,208,159,214,159,220,159,175,205,211,203,226,159,232,159,238,159,244,159,163,29,167,29,190,212,250,159,171,29,175,29,179,29,134,40,139,40,183,29,197,107,149,40,179,8,168,111,0,160,6,160,12,160,199,29,136,9,16,43,203,29,207,29,18,160,24,160,211,29,30,160,36,160,215,29,42,160,48,160,54,160,60,160,219,29,223,29,227,29,235,29,239,29,243,29,247,29,251,29,255,29,3,30,7,30,36,44,72,160,78,160,84,160,90,160,96,160,102,160,108,160,114,160,55,30,59,30,120,160,71,30,79,30,83,30,87,30,91,30,126,160,132,160,144,160,150,160,168,160,103,30,174,160,107,30,111,30,115,30,230,39,119,30,123,30,127,30,180,160,131,30,135,30,139,30,147,30,151,30,155,30,234,160,252,160,2,161,96,9,8,161,163,30,14,161,20,161,167,30,26,161,32,161,38,161,44,161,75,70,50,161,56,161,62,161,68,161,74,161,80,161,86,161,92,161,98,161,104,161,110,161,167,42,116,161,122,161,191,30,128,161,199,30,134,161,140,161,146,161,207,30,211,30,152,161,158,161,219,30,223,30,227,30,231,30,172,42,164,161,170,161,176,161,182,161,247,30,106,39,177,42,188,161,194,161,206,161,255,30,3,31,222,43,7,31,212,161,218,161,224,161,11,31,230,161,236,161,19,31,242,161,254,161,4,162,22,162,27,31,31,31,28,162,35,31,39,31,43,31,79,31,40,162,83,31,87,31,46,162,91,31,95,31,21,39,172,162,178,162,184,162,190,162,196,162,191,8,195,8,199,8,202,162,208,162,203,8,207,8,214,162,220,39,211,8,191,31,215,8,195,31,220,162,219,8,223,8,103,2,227,8,226,162,231,8,227,31,231,31,232,162,238,162,239,31,244,162,243,31,247,31,112,110,250,162,213,206,251,31,0,163,6,163,12,163,255,31,3,32,160,110,17,42,7,32,18,163,11,32,15,32,19,32,24,163,23,32,36,163,27,32,42,163,31,32,35,32,39,32,48,163,54,163,43,32,67,196,47,32,75,40,60,163,66,163,72,163,55,32,76,44,63,32,67,32,71,32,75,32,79,32,83,32,87,32,91,32,150,70,78,163,84,163,90,163,99,32,103,32,107,32,111,32,115,32,22,42,175,69,119,32,123,32,102,163,127,32,131,32,135,32,139,32,143,32,36,39,108,163,114,163,147,32,126,163,132,163,138,163,68,3,26,43,144,163,151,32,155,32,159,32,163,32,167,32,171,32,175,32,179,32,156,39,150,163,156,163,183,32,162,163,168,163,101,39,200,69,174,163,180,163,186,163,192,163,60,40,198,163,204,163,210,163,216,163,191,32,79,9,167,43,222,163,252,163,227,32,231,32,235,32,239,32,243,32,140,9,2,164,8,164,14,164,255,32,20,164,26,164,32,164,38,164,191,39,194,167,200,167,206,167,212,167,218,167,41,43,224,167,230,167,3,33,20,3,236,167,242,167,120,9,81,43,248,167,254,167,4,168,10,168,0,40,16,168,22,168,28,168,46,44,54,70,34,168,40,168,46,168,90,40,52,168,58,168,70,168,76,168,82,168,15,33,19,33,88,168,23,33,135,106,31,33,35,33,94,168,100,168,106,168,39,33,141,39,112,168,118,168,124,168,130,168,1,44,136,168,142,168,41,44,148,168,154,168,172,110,161,39,160,168,55,33,59,33,166,168,63,33,178,168,184,168,20,40,190,168,174,111,67,33,71,33,106,43,79,33,40,40,83,33,196,168,202,168,208,168,95,33,99,33,214,168,220,168,103,33,107,33,226,168,111,33,232,168,238,168,244,168,250,168,119,33,123,33,127,33,131,33,135,33,0,169,139,33,91,39,6,169,12,169,18,169,24,169,228,41,30,169,36,169,42,169,48,169,54,169,60,169,66,169,83,9,72,169,164,2,78,169,159,33,84,169,233,41,90,169,238,41,163,33,88,3,96,169,102,169,108,169,242,43,114,169,120,169,126,169,132,169,144,169,39,109,175,33,220,178,156,169,162,169,215,69,179,33,168,169,174,169,183,33,220,69,187,33,100,40,180,169,186,169,192,169,198,169,199,33,204,169,210,169,216,169,228,169,240,169,246,169,61,44,252,169,8,170,14,170,105,40,20,170,26,170,32,170,38,170,243,41,4,70,44,170,50,170,56,170,231,33,62,170,68,170,235,33,248,2,74,170,182,43,80,170,86,170,92,170,95,40,98,170,116,170,128,170,134,170,140,170,146,170,9,70,152,170,158,170,164,170,170,170,176,170,188,170,212,170,218,170,224,170,251,33,230,170,236,170,242,170,248,170,152,9,3,34,7,34,254,170,11,34,15,34,19,34,4,171,10,171,225,69,23,34,27,34,16,171,31,34,22,171,35,34,202,42,87,9,92,42,19,70,207,42,39,34,212,42,123,41,43,34,34,171,40,171,128,41,27,42,91,9,32,3,242,173,199,2,47,34,248,173,133,41,51,34,55,34,243,2,59,34,63,34,69,109,227,178,254,173,211,178,4,174,67,34,10,174,71,34,16,174,22,174,75,34,28,174,32,42,79,34,34,174,83,34,138,41,40,174,46,174,91,34,95,34,135,69,99,34,143,41,52,174,95,39,107,34,111,34,115,34,123,34,95,9,127,34,160,2,58,174,64,174,97,42,70,174,217,42,76,174,148,41,135,34,230,69,139,34,222,42,154,209,143,34,147,34,247,2,151,34,155,34,163,34,167,34,153,41,171,34,175,34,169,40,179,34,203,107,43,9,251,2,82,174,88,174,94,174,100,174,187,34,191,34,195,34,124,9,112,174,118,174,124,174,84,108,23,35,27,35,50,40,136,174,142,174,153,207,22,214,148,174,31,35,35,35,154,174,160,174,51,35,55,35,59,35,166,174,172,174,178,174,63,35,67,35,71,35,252,43,180,111,75,35,79,35,47,9,184,174,83,35,190,69,19,40,87,35,190,174,91,35,95,35,164,9,196,174,202,174,208,174,214,174,220,174,226,174,103,41,99,35,103,35,107,35,232,174,238,174,111,35,115,35,244,174,250,174,0,175,6,175,119,35,123,35,12,175,127,35,131,35,135,35,139,35,147,35,141,43,151,35,155,35,7,3,18,175,24,175,159,35,30,175,167,35,248,41,171,35,36,175,175,35,4,40,24,70,145,39,9,40,179,35,183,35,187,35,191,35,42,175,48,175,214,40,54,175,60,175,66,175,72,175,78,175,84,175,90,175,96,175,195,35,102,42,107,42,102,175,112,42,219,40,15,3,36,3,108,175,108,41,118,110,114,175,120,175,199,35,203,35,207,35,215,35,126,175,132,175,138,175,144,175,117,42,223,35,227,35,19,3,150,175,156,175,231,35,162,175,235,35,239,35,243,35,168,175,247,35,251,35,174,175,255,35,180,175,186,175,192,175,7,36,11,36,15,36,19,36,23,36,31,36,155,2,198,175,35,36,39,36,204,175,43,36,210,175,23,3,216,175,99,9,222,175,228,175,51,36,55,36,63,36,234,175,103,9,240,175,246,175,107,9,252,175,67,36,71,36,75,36,79,36,83,36,87,36,91,36,95,36,99,36,103,36,107,36,2,176,111,36,8,176,115,36,14,176,27,3,20,176,119,36,26,176,123,36,127,36,131,36,104,2,135,36,32,176,139,36,143,36,38,176,151,36,111,9,155,36,159,36,44,176,167,36,171,36,175,36,179,36,50,176,56,176,62,176,68,176,187,36,191,36,74,176,195,36,199,36,203,36,80,176,86,176,92,176,115,9,98,176,104,176,110,176,116,176,122,176,219,36,223,36,227,36,128,176,231,36,235,36,134,176,140,176,243,36,247,36,146,176,152,176,251,36,255,36,158,176,7,37,164,176,11,37,170,176,176,176,182,176,188,176,19,37,194,176,200,176,206,176,23,37,212,176,31,37,31,3,35,37,218,176,159,2,224,176,123,9,39,37,230,176,43,37,47,37,236,176,51,37,242,176,35,3,55,37,59,37,63,37,67,37,71,37,75,37,79,37,83,37,248,176,254,176,87,37,91,37,43,1,95,37,99,37,4,177,10,177,107,37,16,177,22,177,111,37,91,43,115,37,119,37,91,2,70,39,127,37,131,37,139,37,143,37,39,3,28,177,127,9,34,177,151,37,155,37,159,37,40,177,163,37,46,177,43,3,167,37,46,43,171,37,44,70,175,37,156,2,47,3,52,177,58,177,183,37,191,37,195,37,51,3,131,9,64,177,199,37,70,177,55,3,76,177,203,37,59,3,207,37,82,177,211,37,215,37,219,37,88,177,94,177,100,177,223,37,227,37,231,37,106,177,235,37,112,177,118,177,37,42,243,37,247,37,26,44,251,37,255,37,3,38,124,177,7,38,130,177,136,177,142,177,11,38,148,177,15,38,154,177,19,38,160,177,27,38,67,3,31,38,166,177,139,9,172,177,178,177,35,38,90,39,143,9,39,38,147,9,151,9,184,177,190,177,196,177,113,41,202,177,47,38,51,38,42,42,55,38,59,38,63,38,208,177,214,177,67,38,71,38,75,38,220,177,79,38,83,38,87,38,91,38,95,38,99,38,103,38,92,3,226,177,232,177,238,177,245,39,107,38,71,3,111,38,244,177,115,38,75,3,119,38,155,9,123,38,127,38,250,177,31,1,0,178,131,38,6,178,135,38,44,1,27,1,139,38,203,1,143,38,12,178,18,178,24,178,159,9,147,38,30,178,151,38,36,178,79,3,42,178,20,44,48,178,155,38,130,39,159,38,163,38,54,178,171,38,175,38,179,38,60,178,250,39,66,178,24,40,183,38,187,38,83,3,191,38,7,2,195,38,72,178,78,178,199,38,203,38,207,38,84,178,211,38,155,39,90,178,140,39,160,39,163,2,87,3,96,178,102,178,108,178,114,178,236,2,215,38,219,38,120,178,223,38,163,9,235,38,239,38,243,38,247,38,91,3,251,38,6,0,52,162,58,162,64,162,70,162,76,162,82,162,3,0,147,27,154,110,227,38,12,0,124,2,148,0,112,2,152,2,157,0,20,2,172,0,28,2,136,2,16,2,24,2,178,0,24,0,66,136,92,109,212,112,242,106,72,136,41,197,104,109,28,107,242,112,78,136,66,108,84,136,146,112,72,108,90,136,95,3,96,136,184,105,50,112,106,113,148,2,184,0,169,0,216,2,2,0,86,72,91,72,120,0,163,70,127,108,168,70,117,106,173,70,178,70,188,1,193,70,198,70,203,70,208,70,213,70,218,70,76,1,228,70,233,70,238,70,149,107,243,70,133,105,223,111,153,70,47,107,155,107,13,0,154,0,219,106,108,1,255,38,12,71,22,71,51,106,80,2,181,105,27,71,32,71,37,71,42,71,221,107,59,107,147,106,57,71,92,1,62,71,82,71,87,71,92,71,175,108,159,106,97,71,163,105,102,71,107,71,172,1,244,1,82,0,112,71,137,71,192,1,152,1,142,71,85,0,72,1,157,71,162,71,15,106,136,0,177,71,167,107,175,105,182,71,177,106,83,107,183,106,240,1,173,107,212,71,217,71,222,71,195,106,231,106,91,0,0,2,80,1,68,1,36,1,75,106,6,72,11,72,16,72,185,107,21,72,116,2,31,72,36,72,41,72,22,0,113,107,46,72,229,105,120,1,157,105,40,2,154,205,66,72,224,1,125,107,191,107,211,108,41,219,200,1,105,106,140,1,207,106,64,0,67,0,196,1,145,105,21,106,111,106,4,0,220,2,232,71,237,71,242,71,2,0,17,179,24,179,164,0,210,196,79,44,183,70,210,195,84,44,226,196,89,44,94,44,99,44,223,70,104,44,234,195,124,69,133,40,238,178,119,39,109,44,114,44,29,39,119,44,108,40,124,44,248,70,138,40,253,70,129,44,202,195,147,203,2,71,7,71,202,196,134,44,139,44,144,44,17,71,10,196,114,196,50,197,47,71,52,71,149,44,154,44,54,39,218,196,250,196,67,71,186,196,242,196,159,44,245,178,72,71,42,196,154,196,77,71,164,44,129,69,66,196,134,69,124,39,194,196,169,44,2,196,113,40,82,196,117,71,122,71,234,196,2,197,127,71,90,196,58,196,132,71,174,44,122,196,194,195,179,44,184,44,252,178,189,44,194,44,199,44,204,44,167,71,209,44,214,44,139,69,172,71,219,44,224,44,144,69,138,196,229,44,162,196,234,44,165,203,58,70,50,196,187,71,192,71,239,44,244,44,197,71,106,196,202,71,249,44,254,44,3,45,170,196,8,45,13,45,207,71,18,45,227,71,23,45,118,40,28,45,33,45,38,45,43,45,48,45,143,40,53,45,94,39,123,40,194,39,58,45,150,43,178,196,63,45,68,45,10,197,130,196,26,72,149,69,148,40,24,44,73,45,28,40,74,39,78,45,83,45,88,45,93,45,98,196,51,72,98,45,18,196,59,39,103,45,108,45,44,39,34,196,113,45,56,72,61,72,118,45,153,40,71,72,123,45,76,72,128,45,128,40,96,72,133,45,3,0,3,179,252,71,10,179,9,0,188,70,247,71,101,72,106,72,111,72,116,72,121,72,126,72,131,72,50,1,20,73,25,73,30,73,35,73,40,73,45,73,50,73,55,73,60,73,65,73,70,73,75,73,108,179,80,73,85,73,90,73,95,73,100,73,105,73,110,73,154,69,115,73,120,73,125,73,115,179,130,73,159,69,164,69,135,73,140,73,145,73,150,73,155,73,220,179,160,73,248,75,182,76,197,76,202,76,217,76,135,181,142,181,184,181,191,181,198,181,205,181,212,181,219,181,11,77,226,181,247,197,255,197,7,198,15,198,95,198,103,198,146,77,151,77,29,44,19,44,63,70,68,70,156,77,34,44,73,70,161,77,39,44,166,77,171,77,176,77,194,79,199,79,204,79,209,79,214,79,219,79,224,79,229,79,234,79,239,79,244,79,101,52,106,82,162,145,106,52,123,21,168,145,111,52,180,145,201,82,206,82,186,145,192,145,122,134,167,7,198,145,116,52,211,82,131,21,121,52,204,145,126,52,131,52,216,145,216,82,222,145,136,52,228,145,141,52,221,82,44,146,50,146,134,134,68,146,74,146,80,146,86,146,104,146,110,146,116,146,122,146,128,146,146,134,146,146,152,134,158,146,164,134,170,146,188,146,194,146,170,134,200,146,206,146,212,146,218,146,224,146,230,146,236,146,16,147,40,147,0,83,5,83,65,83,200,184,207,184,214,184,221,184,228,184,235,184,242,184,249,184,0,185,7,185,70,83,185,83,190,83,195,83,200,83,205,83,210,83,215,83,220,83,214,69,219,69,225,83,230,83,235,83,240,83,245,83,250,83,255,83,4,84,9,84,14,84,19,84,224,69,53,85,58,85,115,186,39,1,188,149,182,134,200,149,188,134,233,85,22,86,82,86,87,86,142,86,207,86,50,152,13,90,19,27,23,27,27,27,160,153,191,199,199,199,166,153,207,199,39,197,223,199,231,199,239,199,247,199,255,199,212,134,15,200,23,200,218,134,224,134,184,153,144,112,39,200,47,200,208,153,63,200,71,200,79,200,87,200,236,134,103,200,111,200,232,153,238,153,127,200,135,200,0,154,18,154,24,154,19,189,102,154,108,154,132,154,124,189,131,189,138,189,145,189,152,189,159,189,166,189,173,189,180,189,30,157,18,70,249,94,254,94,3,95,8,95,103,95,108,95,13,40,113,95,118,95,123,95,128,95,138,157,132,61,137,61,187,61,253,190,4,191,253,95,2,96,7,96,11,191,12,96,17,96,32,96,35,29,175,8,142,96,28,70,232,96,237,96,242,96,69,44,247,96,33,70,252,96,38,70,1,97,6,97,11,97,16,97,165,191,21,97,26,97,31,97,144,64,178,134,104,170,110,170,122,170,182,170,194,170,200,170,206,170,101,67,136,67,186,67,231,67,251,67,10,68,53,105,58,105,227,11,38,179,138,45,143,45,148,45,153,45,158,40,158,45,163,40,87,197,132,109,128,113,134,113,140,113,146,113,152,113,138,109,158,113,164,113,170,113,144,109,176,113,182,113,188,113,194,113,200,113,206,113,212,113,218,113,224,113,230,113,236,113,242,113,248,113,254,113,4,114,10,114,16,114,106,108,22,114,28,114,34,114,66,179,73,179,94,179,101,179,163,45,3,107,168,45,173,45,178,45,183,45,188,45,193,45,198,45,203,45,208,45,40,114,46,114,52,114,58,114,64,114,111,197,70,114,76,114,82,114,150,109,88,114,230,107,94,114,100,114,106,114,112,108,156,109,212,137,230,137,242,137,10,138,112,114,118,114,213,45,124,114,218,45,130,114,136,114,168,40,142,114,148,114,154,114,160,114,166,114,172,114,178,114,244,39,184,114,236,107,190,114,196,114,202,114,208,114,214,114,220,114,226,114,232,114,33,40,238,114,244,114,250,114,0,115,6,115,162,109,12,115,18,115,24,115,30,115,129,39,36,115,42,115,48,115,54,115,134,39,249,39,60,115,155,43,223,45,168,109,66,115,72,115,78,115,84,115,90,115,96,115,102,115,174,109,228,45,108,115,114,115,120,115,183,197,126,115,132,115,138,115,144,115,150,115,254,39,156,115,162,115,139,39,168,115,174,115,180,115,186,115,233,45,192,115,198,115,204,115,210,115,216,115,238,45,222,115,196,111,191,197,228,115,234,115,240,115,234,179,241,179,255,179,6,180,13,180,20,180,27,180,34,180,41,180,208,138,246,115,252,115,2,116,8,116,14,116,20,116,26,116,32,116,38,116,32,107,44,116,50,116,56,116,62,180,69,180,207,197,180,109,62,116,186,109,68,116,74,116,80,116,86,116,92,116,98,116,104,116,110,116,116,116,122,116,128,116,134,116,215,197,140,116,146,116,152,116,158,116,164,116,170,116,176,116,182,116,188,116,194,116,200,116,206,116,192,109,212,116,218,116,224,116,230,116,236,116,242,116,248,116,254,116,4,117,198,109,10,117,16,117,83,180,90,180,97,180,111,180,243,45,248,45,125,180,173,40,253,45,2,46,7,46,178,40,12,46,17,46,183,40,22,46,27,46,188,40,32,46,37,46,42,46,47,46,139,180,193,40,52,46,57,46,62,46,67,46,72,46,77,46,82,46,87,46,92,46,97,46,102,46,107,46,198,40,150,139,90,108,36,108,162,139,174,139,112,46,117,46,122,46,127,46,188,180,132,46,137,46,142,46,147,46,152,46,157,46,162,46,167,46,195,180,202,180,172,46,177,46,182,46,187,46,209,180,216,180,192,46,197,46,202,46,207,46,212,46,217,46,222,46,227,46,232,46,237,46,242,46,247,46,252,46,203,40,1,47,6,47,253,106,11,47,16,47,21,47,26,47,31,47,36,47,41,47,46,47,230,180,51,47,208,40,56,47,61,47,66,47,71,47,76,47,38,40,81,47,244,180,251,180,2,181,9,181,86,47,91,47,96,47,101,47,39,39,106,47,111,47,160,43,116,47,3,40,8,40,213,40,121,47,218,40,165,43,30,181,126,47,43,40,131,47,170,43,164,39,136,47,141,47,48,40,146,47,53,40,22,117,151,47,99,39,28,117,156,47,161,47,166,47,171,47,176,47,58,181,181,47,186,47,191,47,196,47,201,47,206,47,211,47,216,47,79,181,221,47,223,40,226,47,231,47,228,40,233,40,236,47,241,47,246,47,251,47,0,48,86,181,5,48,10,48,15,48,20,48,25,48,30,48,35,48,40,48,45,48,50,48,34,117,55,48,60,48,65,48,70,48,75,48,80,48,85,48,90,48,238,40,95,48,100,48,243,40,105,48,110,48,107,181,63,7,67,7,170,140,40,117,115,48,120,48,125,48,130,48,135,48,140,48,145,48,150,48,155,48,160,48,165,48,170,48,175,48,180,48,185,48,121,181,190,48,195,48,200,48,248,40,205,48,210,48,215,48,133,178,220,48,225,48,230,48,235,48,240,48,245,48,253,40,250,48,255,48,4,49,2,41,9,49,14,49,7,41,19,49,24,49,29,49,34,49,39,49,44,49,49,49,54,49,59,49,64,49,69,49,74,49,79,49,12,41,84,49,17,41,89,49,94,49,99,49,104,49,109,49,114,49,119,49,124,49,129,49,134,49,139,49,144,49,149,49,175,43,154,49,159,49,164,49,169,49,233,181,174,49,179,49,240,181,184,49,189,49,194,49,199,49,22,41,204,49,209,49,27,41,214,49,247,181,219,49,224,49,229,49,234,49,239,49,244,49,249,49,32,41,254,49,46,117,52,117,58,117,64,117,70,117,76,117,82,117,88,117,94,117,100,117,106,117,112,117,118,117,124,117,3,50,130,117,204,109,136,117,142,117,148,117,154,117,160,117,166,117,172,117,178,117,184,117,190,117,210,109,196,117,202,117,208,117,214,117,220,117,79,7,83,7,106,141,87,7,91,7,8,50,13,50,33,182,40,182,18,50,95,7,23,50,28,50,33,50,38,50,43,50,48,50,53,50,58,50,63,50,68,50,73,50,78,50,83,50,99,7,58,40,88,50,54,182,93,50,98,50,103,50,108,50,180,43,82,182,113,50,118,50,23,198,31,198,123,50,39,198,128,50,47,198,133,50,55,198,138,50,63,198,185,43,71,198,190,43,79,198,143,50,87,198,148,50,111,198,195,43,119,198,153,50,127,198,200,43,135,198,205,43,143,198,158,50,163,50,168,50,173,50,178,50,183,50,188,50,193,50,198,50,203,50,208,50,213,50,199,39,218,50,204,39,37,41,124,182,131,182,42,41,223,50,145,182,159,182,166,182,180,182,187,182,194,182,201,182,208,182,222,182,229,182,236,182,243,182,250,182,136,144,142,144,226,117,15,183,148,144,154,144,232,117,151,198,238,117,244,117,250,117,0,118,6,118,12,118,18,118,24,118,30,118,36,118,42,118,23,196,48,118,54,118,216,109,60,118,66,118,72,118,78,118,84,118,90,118,228,50,233,50,96,118,159,198,167,198,242,107,238,50,248,107,254,107,102,118,243,50,108,118,114,118,120,118,248,50,222,109,126,118,253,50,132,118,4,108,2,51,138,118,144,118,150,118,228,109,234,109,7,51,156,118,162,118,168,118,240,109,174,118,12,51,180,118,186,118,192,118,17,51,198,118,204,118,210,118,216,118,246,109,222,118,22,51,10,108,27,51,79,197,252,109,228,118,234,118,32,51,240,118,16,108,37,51,246,118,42,51,252,118,2,119,8,119,2,110,14,119,20,119,26,119,32,119,8,110,38,119,44,119,50,119,47,51,52,51,56,119,115,7,57,51,62,51,62,119,67,51,72,51,77,51,82,51,87,51,68,119,92,51,97,51,47,41,74,119,102,51,80,119,86,119,92,119,98,119,104,119,110,119,107,51,112,51,117,51,122,51,127,51,132,51,235,39,137,51,142,51,147,51,71,183,152,51,119,7,157,51,162,51,167,51,123,7,78,183,172,51,85,183,92,183,52,41,177,51,57,41,182,51,187,51,192,51,240,39,62,41,197,51,211,43,200,39,202,51,207,51,212,51,48,108,217,51,99,183,222,51,227,51,232,51,237,51,215,39,242,51,127,7,247,51,252,51,67,41,1,52,236,106,6,52,11,52,16,52,21,52,26,52,205,39,106,183,31,52,131,7,36,52,41,52,46,52,210,39,51,52,56,52,63,40,61,52,66,52,71,52,76,52,81,52,86,52,91,52,120,183,96,52,134,183,141,183,155,183,162,183,147,7,151,7,155,7,159,7,163,7,116,119,122,119,128,119,134,119,211,183,218,183,140,119,225,183,232,183,239,183,246,183,253,183,4,184,146,119,152,119,11,184,158,119,18,184,25,184,32,184,207,198,22,108,14,110,164,119,170,119,176,119,20,110,182,119,188,119,194,119,200,119,206,119,212,119,218,119,8,146,215,198,224,119,230,119,236,119,242,119,248,119,254,119,4,120,10,120,223,198,16,120,22,120,28,120,34,120,40,120,46,120,52,120,58,120,64,120,70,120,76,120,82,120,231,198,88,120,94,120,100,120,106,120,112,120,118,120,124,120,130,120,136,120,142,120,26,110,148,120,154,120,160,120,32,110,166,120,172,120,178,120,184,120,190,120,196,120,38,110,202,120,208,120,44,110,214,120,239,198,220,120,226,120,50,110,232,120,238,120,244,120,250,120,0,121,6,121,12,121,247,198,56,110,18,121,234,106,24,121,30,121,36,121,62,110,42,121,48,121,54,121,60,121,68,110,28,108,255,198,66,121,72,121,78,121,84,121,90,121,96,121,74,110,102,121,108,121,114,121,120,121,126,121,80,110,132,121,138,121,144,121,150,121,86,110,156,121,162,121,168,121,174,121,180,121,186,121,92,110,192,121,198,121,204,121,210,121,216,121,98,110,222,121,228,121,234,121,240,121,246,121,252,121,2,122,8,122,14,122,20,122,26,122,32,122,38,122,44,122,50,122,56,122,62,122,68,122,74,122,80,122,86,122,92,122,98,122,104,122,110,122,116,122,122,122,104,110,128,122,134,122,140,122,146,122,152,122,158,122,164,122,170,122,176,122,182,122,188,122,194,122,200,122,206,122,110,110,212,122,218,122,224,122,230,122,236,122,242,122,248,122,254,122,4,123,10,123,16,123,252,106,22,123,28,123,34,123,40,123,7,199,46,123,52,123,15,199,58,123,64,123,70,123,23,199,76,123,31,199,82,123,88,123,94,123,100,123,106,123,112,123,118,123,124,123,130,123,136,123,142,123,244,108,148,123,154,123,160,123,166,123,172,123,178,123,184,123,190,123,250,108,196,123,0,109,202,123,208,123,116,110,214,123,220,123,226,123,232,123,238,123,244,123,194,107,6,109,67,184,146,52,151,52,156,52,161,52,166,52,72,41,171,52,176,52,181,52,81,184,209,39,186,52,191,52,196,52,201,52,206,52,211,52,216,52,221,52,226,52,231,52,236,52,241,52,246,52,251,52,0,53,5,53,10,53,15,53,20,53,25,53,30,53,77,41,175,7,250,123,179,7,183,7,187,7,137,184,35,53,191,7,40,53,195,7,45,53,50,53,55,53,60,53,199,7,82,41,65,53,87,41,70,53,75,53,203,7,144,184,151,184,158,184,80,53,207,7,85,53,90,53,92,41,211,7,165,184,172,184,215,7,95,53,97,41,100,53,105,53,110,53,115,53,120,53,125,53,130,53,219,7,135,53,140,53,187,2,145,53,150,53,155,53,160,53,0,148,28,185,35,185,42,185,165,53,63,185,169,39,102,41,170,53,231,7,30,108,107,41,175,53,235,7,180,53,185,53,215,43,69,39,190,53,64,39,195,53,200,53,220,43,205,53,112,41,210,53,215,53,112,185,117,41,220,53,225,53,230,53,235,53,240,53,245,53,250,53,255,53,4,54,9,54,14,54,19,54,24,54,126,185,133,185,140,185,9,107,29,54,34,54,154,185,39,54,44,54,49,54,161,185,54,54,59,54,64,54,69,54,74,54,79,54,68,40,122,41,127,41,84,54,89,54,94,54,99,54,132,41,104,54,225,43,109,54,114,54,119,54,174,39,230,43,137,41,142,41,124,54,129,54,134,54,104,39,139,54,144,54,149,54,147,41,175,185,182,185,154,54,159,54,164,54,169,54,152,41,174,54,179,54,184,54,189,54,182,178,194,54,199,54,157,41,203,185,204,54,209,54,214,54,162,41,210,185,219,54,217,185,224,54,229,54,234,54,239,54,244,54,224,185,231,185,167,41,249,54,238,185,254,54,245,185,252,185,3,55,247,7,172,41,10,186,177,41,251,7,8,55,255,7,182,41,187,41,192,41,3,8,13,55,18,55,197,41,202,41,23,55,7,8,28,55,17,186,33,55,38,55,214,39,43,55,11,8,48,55,53,55,24,186,15,8,207,41,58,55,191,2,63,55,19,8,68,55,73,55,52,186,78,55,199,206,83,55,88,55,93,55,98,55,103,55,108,55,113,55,118,55,123,55,128,55,133,55,212,41,138,55,143,55,148,55,153,55,158,55,163,55,168,55,173,55,178,55,183,55,188,55,193,55,217,41,198,55,222,41,203,55,208,55,213,55,218,55,223,55,80,186,228,55,233,55,238,55,243,55,248,55,253,55,2,56,7,56,12,56,17,56,22,56,27,56,32,56,37,56,219,39,94,186,101,186,108,186,42,56,182,149,0,124,6,124,12,124,122,110,18,124,24,124,30,124,36,124,34,108,42,124,48,124,54,124,60,124,66,124,72,124,128,110,134,110,78,124,84,124,90,124,96,124,102,124,108,124,114,124,120,124,126,124,132,124,138,124,144,124,140,110,146,110,150,124,156,124,162,124,168,124,174,124,152,110,180,124,186,124,158,110,192,124,198,124,12,109,204,124,18,109,210,124,164,110,216,124,222,124,228,124,234,124,87,199,240,124,246,124,252,124,2,125,8,125,14,125,20,125,26,125,170,110,32,125,38,125,44,125,50,125,176,110,56,125,62,125,47,56,52,56,57,56,62,56,67,56,72,56,77,56,82,56,87,56,92,56,97,56,102,56,107,56,112,56,117,56,122,56,189,178,127,56,132,56,137,56,149,178,142,56,136,186,147,56,152,56,227,41,157,56,162,56,167,56,143,186,150,186,172,56,157,186,177,56,182,56,187,56,164,186,171,186,192,56,197,56,202,56,207,56,212,56,232,41,217,56,237,41,222,56,227,56,232,56,237,56,242,56,247,56,252,56,1,57,6,57,11,57,178,186,185,186,16,57,21,57,192,186,199,186,26,57,31,57,36,57,41,57,242,41,206,186,46,57,51,57,213,186,56,57,220,186,61,57,66,57,71,57,76,57,81,57,86,57,227,186,91,57,96,57,234,186,241,186,248,186,101,57,106,57,255,186,6,187,111,57,116,57,13,187,121,57,126,57,131,57,136,57,141,57,34,187,41,187,146,57,151,57,156,57,161,57,166,57,171,57,176,57,181,57,186,57,191,57,196,57,201,57,62,187,69,187,76,187,83,187,90,187,104,187,111,187,118,187,125,187,132,187,244,150,206,57,211,57,23,8,12,151,27,8,31,8,35,8,153,187,39,8,160,187,18,151,43,8,54,108,47,8,51,8,55,8,59,8,188,187,195,187,216,57,63,8,195,2,209,187,221,57,216,187,226,57,230,187,237,187,244,187,231,57,236,57,241,57,246,57,247,41,144,39,251,57,68,125,74,125,182,110,80,125,86,125,92,125,98,125,104,125,110,125,116,125,122,125,128,125,24,109,134,125,200,107,140,125,30,109,252,41,23,188,1,42,0,58,5,58,10,58,15,58,20,58,25,58,30,58,35,58,6,42,40,58,45,58,11,42,50,58,55,58,60,58,65,58,70,58,37,188,75,58,80,58,85,58,51,188,58,188,65,188,79,188,86,188,67,8,100,188,71,8,107,188,75,8,114,188,79,8,121,188,83,8,128,188,87,8,135,188,91,8,142,188,95,8,149,188,99,8,156,188,90,58,95,58,100,58,105,58,110,58,16,42,115,58,120,58,125,58,130,58,149,39,135,58,140,58,21,42,145,58,94,153,106,153,184,188,191,188,198,188,205,188,212,188,219,188,150,58,155,58,160,58,165,58,170,58,175,58,180,58,185,58,190,58,195,58,200,58,205,58,210,58,215,58,220,58,26,42,225,58,31,42,230,58,235,58,73,40,240,58,245,58,146,125,152,125,240,106,215,199,158,125,164,125,170,125,7,200,176,125,182,125,188,110,194,110,200,110,31,200,188,125,55,200,194,125,200,125,206,125,95,200,212,125,218,125,224,125,230,125,119,200,236,125,143,200,24,112,242,125,248,125,206,110,254,125,4,126,212,110,250,58,255,58,4,59,9,59,78,40,14,59,19,59,24,59,29,59,34,59,247,188,39,59,179,39,36,42,44,59,49,59,54,59,41,42,59,59,64,59,69,59,5,189,12,189,10,126,16,126,22,126,28,126,40,108,151,200,34,126,40,126,46,126,52,126,58,126,64,126,218,110,70,126,76,126,82,126,46,108,88,126,94,126,100,126,106,126,159,200,112,126,118,126,124,126,130,126,224,110,136,126,142,126,148,126,154,126,160,126,167,200,166,126,172,126,2,107,178,126,184,126,190,126,196,126,202,126,208,126,230,110,214,126,220,126,226,126,232,126,238,126,244,126,250,126,0,127,6,127,236,110,242,110,12,127,18,127,175,200,24,127,30,127,36,127,42,127,48,127,54,127,206,107,60,127,66,127,72,127,78,127,84,127,90,127,96,127,74,59,79,59,84,59,46,42,51,42,56,42,61,42,66,42,71,42,76,42,89,59,94,59,99,59,33,189,104,59,109,59,114,59,119,59,124,59,47,189,129,59,54,189,61,189,134,59,139,59,144,59,149,59,154,59,159,59,164,59,169,59,81,42,174,59,179,59,184,59,189,59,194,59,199,59,86,42,204,59,209,59,196,178,214,59,219,59,224,59,229,59,234,59,75,189,82,189,89,189,115,8,119,8,123,8,127,8,204,154,183,200,102,127,108,127,248,110,114,127,120,127,126,127,52,108,132,127,131,8,138,127,144,127,150,127,156,127,162,127,168,127,174,127,30,112,180,127,186,127,135,8,192,127,36,109,198,127,204,127,191,200,199,200,207,200,210,127,215,200,223,200,231,200,239,200,58,108,247,200,255,200,7,201,15,201,23,201,139,8,239,59,148,156,216,127,201,189,208,189,254,110,222,127,64,108,228,127,234,127,47,201,240,127,246,127,252,127,2,128,8,128,14,128,70,108,55,201,20,128,26,128,32,128,38,128,143,8,250,189,1,190,22,190,29,190,36,190,43,190,50,190,57,190,64,190,244,59,91,42,249,59,254,59,3,60,8,60,13,60,18,60,23,60,28,60,96,42,33,60,85,190,92,190,99,190,38,60,43,60,106,190,44,128,48,60,53,60,147,8,58,60,63,60,68,60,73,60,78,60,120,190,83,60,88,60,93,60,127,190,98,60,103,60,108,60,151,8,79,39,184,39,101,42,106,42,113,60,111,42,118,60,34,39,155,8,116,42,240,43,123,60,50,128,56,128,62,128,68,128,74,128,80,128,86,128,4,111,92,128,98,128,10,111,104,128,16,111,110,128,116,128,122,128,128,128,134,128,76,108,140,128,146,128,152,128,158,128,164,128,170,128,176,128,182,128,48,109,188,128,82,108,194,128,200,128,148,190,155,190,174,157,159,8,163,8,167,8,206,128,171,8,192,157,198,157,128,60,133,60,138,60,143,60,148,60,153,60,158,60,163,60,168,60,121,42,173,60,176,190,178,60,14,158,183,60,188,60,193,60,126,42,198,60,203,60,131,42,208,60,136,42,213,60,218,60,223,60,228,60,233,60,238,60,243,60,248,60,141,42,203,178,211,190,253,60,2,61,7,61,12,61,17,61,22,61,27,61,32,61,37,61,42,61,146,42,47,61,151,42,52,61,57,61,62,61,67,61,72,61,156,42,77,61,82,61,87,61,92,61,97,61,102,61,107,61,112,61,232,190,117,61,122,61,127,61,103,201,142,61,147,61,152,61,157,61,162,61,167,61,172,61,177,61,182,61,192,61,197,61,224,39,202,61,207,61,212,61,217,61,18,191,222,61,227,61,232,61,237,61,242,61,247,61,252,61,218,158,1,62,6,62,11,62,229,39,16,62,21,62,161,42,26,62,31,62,36,62,166,42,32,191,171,42,176,42,181,42,46,191,53,191,212,128,22,111,218,128,224,128,230,128,236,128,242,128,248,128,254,128,4,129,10,129,16,129,22,129,28,129,30,106,54,109,34,129,41,62,46,62,51,62,56,62,61,62,66,62,71,62,76,62,81,62,186,42,86,62,183,8,91,62,66,160,96,62,101,62,106,62,111,62,46,129,52,129,58,129,64,129,70,129,76,129,82,129,88,129,94,129,100,129,106,129,112,129,119,201,118,129,124,129,130,129,136,129,142,129,148,129,60,109,154,129,160,129,166,129,28,111,172,129,178,129,184,129,34,111,190,129,196,129,202,129,208,129,214,129,220,129,226,129,127,201,232,129,238,129,244,129,250,129,0,130,6,130,12,130,18,130,24,130,30,130,123,191,130,191,137,191,144,191,36,130,42,130,48,130,54,130,60,130,66,130,72,130,78,130,84,130,90,130,96,130,102,130,88,108,108,130,114,130,135,201,120,130,143,201,126,130,151,201,132,130,40,111,138,130,46,111,144,130,150,130,156,130,162,130,168,130,52,111,58,111,64,111,174,130,70,111,180,130,186,130,192,130,198,130,204,130,210,130,216,130,222,130,228,130,234,130,240,130,246,130,252,130,2,131,8,131,14,131,20,131,26,131,32,131,38,131,44,131,159,201,50,131,56,131,62,131,68,131,74,131,80,131,86,131,92,131,94,108,98,131,104,131,66,109,110,131,116,131,8,107,122,131,128,131,134,131,36,112,140,131,146,131,116,62,191,42,121,62,126,62,131,62,136,62,141,62,146,62,151,62,156,62,161,62,166,62,171,62,176,62,181,62,186,62,191,62,196,62,201,62,206,62,211,62,216,62,221,62,152,131,158,131,76,111,164,131,191,201,170,131,176,131,182,131,188,131,194,131,200,131,206,131,212,131,218,131,224,131,207,191,214,191,226,62,231,62,82,111,88,111,94,111,100,111,106,111,112,111,118,111,100,108,124,111,130,111,230,131,199,201,236,131,242,131,187,8,235,191,236,62,34,162,248,131,241,62,246,62,251,62,0,63,5,63,10,63,15,63,20,63,25,63,30,63,196,42,235,8,35,63,40,63,45,63,50,63,55,63,60,63,65,63,70,63,75,63,7,192,245,43,80,63,85,63,90,63,95,63,100,63,105,63,110,63,115,63,120,63,125,63,130,63,135,63,140,63,145,63,150,63,155,63,160,63,165,63,170,63,175,63,14,192,180,63,185,63,190,63,195,63,28,192,35,192,42,192,200,63,250,43,205,63,210,63,254,131,4,132,136,111,10,132,201,42,16,132,22,132,206,42,215,63,28,132,34,132,220,63,211,42,225,63,142,111,40,132,148,111,56,192,154,111,46,132,52,132,160,111,58,132,64,132,70,132,210,178,76,132,230,63,82,132,235,63,88,132,94,132,100,132,106,132,112,132,240,63,245,63,118,132,124,132,130,132,136,132,142,132,148,132,154,132,160,132,166,111,166,132,172,132,178,132,184,132,190,132,196,132,202,132,216,42,120,109,208,132,14,107,250,63,126,109,214,132,220,132,172,111,221,42,226,132,232,132,238,132,244,132,255,63,250,132,4,64,0,133,6,133,12,133,18,133,178,111,24,133,20,107,30,133,84,109,70,192,84,192,91,192,9,64,14,64,19,64,24,64,29,64,34,64,105,192,39,64,44,64,49,64,119,192,126,192,133,192,54,64,59,64,64,64,69,64,226,42,74,64,79,64,231,42,84,64,89,64,94,64,99,64,104,64,109,64,236,42,114,64,119,64,124,64,161,192,129,64,228,163,239,8,234,163,240,163,246,163,175,192,134,64,139,64,223,201,231,201,239,201,247,201,255,201,7,202,15,202,23,202,31,202,39,202,47,202,55,202,63,202,71,202,79,202,87,202,95,202,103,202,111,202,119,202,127,202,135,202,143,202,149,64,154,64,159,64,164,64,241,42,169,64,174,64,246,42,96,108,243,8,251,42,247,8,251,8,231,192,179,64,184,64,189,64,194,64,245,192,199,64,0,43,204,64,209,64,214,64,219,64,224,64,229,64,234,64,239,64,244,64,5,43,249,64,254,64,10,43,3,65,8,65,13,65,18,65,23,65,15,43,28,65,33,65,38,65,43,65,48,65,53,65,58,65,63,65,68,65,73,65,78,65,83,65,88,65,20,43,25,43,93,65,98,65,30,43,103,65,35,43,40,43,108,65,113,65,118,65,123,65,24,193,255,8,128,65,133,65,138,65,143,65,148,65,153,65,158,65,163,65,168,65,173,65,255,43,18,40,178,65,183,65,188,65,193,65,198,65,45,43,203,65,52,193,84,39,208,65,19,39,213,65,218,65,223,65,228,65,233,65,4,44,238,65,109,39,243,65,248,65,253,65,2,66,7,66,12,66,17,66,22,66,50,43,27,66,32,66,37,66,42,66,47,66,52,66,57,66,62,66,67,66,72,66,77,66,82,66,87,66,92,66,3,9,7,9,11,9,15,9,19,9,115,193,122,193,129,193,136,193,143,193,150,193,157,193,164,193,171,193,23,9,97,66,55,43,102,66,107,66,112,66,117,66,122,66,60,43,127,66,132,66,137,66,142,66,147,66,152,66,157,66,162,66,167,66,65,43,222,169,27,9,234,169,236,43,213,193,220,193,227,193,234,193,241,193,172,66,248,193,255,193,13,194,27,194,34,194,41,194,48,194,55,194,62,194,69,194,76,194,126,178,36,133,42,133,48,133,54,133,60,133,66,133,72,133,78,133,84,133,114,109,90,133,96,133,102,133,108,133,114,133,120,133,126,133,132,133,138,133,144,133,150,133,156,133,162,133,168,133,174,133,180,133,132,106,186,133,192,133,198,133,204,133,210,133,216,133,222,133,228,133,184,111,234,133,240,133,246,133,252,133,246,106,2,134,8,134,14,134,20,134,111,194,118,194,125,194,132,194,177,66,182,66,187,66,192,66,197,66,202,66,207,66,212,66,217,66,222,66,227,66,232,66,237,66,242,66,247,66,252,66,1,67,6,67,11,67,16,67,21,67,26,67,31,67,36,67,41,67,46,67,51,67,231,202,239,202,247,202,255,202,7,203,15,203,23,203,31,203,39,203,47,203,55,203,63,203,71,203,79,203,87,203,31,9,199,2,35,9,39,9,56,67,61,67,66,67,71,67,76,67,81,67,86,67,91,67,96,67,188,194,15,107,106,67,70,43,111,67,116,67,75,43,121,67,126,67,131,67,141,67,146,67,151,67,156,67,161,67,166,67,171,67,80,43,176,67,195,194,181,67,202,194,209,194,216,194,85,43,191,67,196,67,201,67,206,67,211,67,216,67,221,67,226,67,236,67,223,194,241,67,246,67,0,68,5,68,15,68,20,68,25,68,30,68,35,68,21,107,40,68,90,43,83,40,45,68,50,68,55,68,60,68,95,43,65,68,70,68,237,194,75,68,80,68,85,68,88,40,89,39,93,40,90,68,95,68,9,44,14,44,23,40,100,68,105,68,110,68,154,39,189,39,159,39,98,40,103,40,115,68,9,195,106,174,130,174,44,195,120,68,51,195,125,68,58,195,65,195,130,68,72,195,79,195,135,68,86,195,140,68,145,68,93,195,100,195,150,68,155,68,160,68,165,68,170,68,26,134,32,134,38,134,190,111,42,112,44,134,175,68,180,68,100,43,185,68,190,68,195,68,200,68,205,68,210,68,215,68,220,68,225,68,230,68,105,43,235,68,240,68,245,68,250,68,255,68,4,69,9,69,14,69,110,43,19,69,115,43,24,69,29,69,34,69,39,69,120,43,234,39,44,69,239,39,49,69,125,43,54,69,130,43,59,69,135,43,50,134,64,69,69,69,74,69,79,69,84,69,163,195,89,69,94,69,140,43,99,69,104,69,109,69,114,69,114,39,24,39,177,195,0,1,31,179,45,179,52,179,59,179,80,179,87,179,122,179,129,179,136,179,143,179,157,179,171,179,178,179,192,179,199,179,206,179,213,179,227,179,248,179,48,180,55,180,76,180,104,180,118,180,132,180,146,180,153,180,160,180,167,180,174,180,181,180,223,180,237,180,16,181,23,181,37,181,44,181,51,181,65,181,72,181,93,181,100,181,114,181,128,181,156,181,163,181,170,181,177,181,254,181,5,182,12,182,26,182,47,182,61,182,68,182,75,182,89,182,96,182,110,182,117,182,138,182,152,182,173,182,215,182,1,183,8,183,22,183,29,183,36,183,43,183,57,183,113,183,127,183,148,183,169,183,176,183,183,183,204,183,39,184,53,184,60,184,74,184,88,184,95,184,102,184,109,184,116,184,123,184,130,184,179,184,186,184,193,184,14,185,21,185,49,185,56,185,70,185,77,185,98,185,105,185,119,185,147,185,168,185,189,185,196,185,3,186,31,186,38,186,45,186,66,186,73,186,87,186,122,186,129,186,20,187,27,187,48,187,55,187,97,187,139,187,146,187,167,187,174,187,181,187,202,187,223,187,251,187,2,188,9,188,16,188,30,188,44,188,72,188,93,188,163,188,170,188,177,188,226,188,233,188,240,188,254,188,26,189,40,189,68,189,96,189,103,189,110,189,117,189,187,189,194,189,215,189,222,189,229,189,236,189,243,189,8,190,15,190,71,190,78,190,113,190,134,190,141,190,162,190,169,190,183,190,190,190,197,190,204,190,218,190,239,190,246,190,25,191,39,191,60,191,67,191,74,191,81,191,95,191,102,191,109,191,116,191,151,191,158,191,172,191,179,191,186,191,193,191,200,191,221,191,228,191,242,191,249,191,0,192,21,192,49,192,63,192,77,192,98,192,112,192,147,192,154,192,168,192,182,192,189,192,203,192,210,192,217,192,224,192,238,192,252,192,3,193,10,193,17,193,31,193,38,193,45,193,59,193,66,193,80,193,87,193,94,193,101,193,108,193,178,193,185,193,192,193,199,193,206,193,6,194,20,194,83,194,90,194,97,194,104,194,139,194,146,194,160,194,174,194,230,194,244,194,251,194,2,195,16,195,23,195,30,195,37,195,107,195,114,195,121,195,128,195,135,195,142,195,149,195,156,195,170,195,184,195,10,0,158,220,11,220,103,218,37,212,135,219,104,219,54,212,82,213,198,219,62,210,191,0,242,215,47,220,175,210,192,210,204,206,243,206,209,210,84,205,217,206,72,217,226,210,243,210,217,216,194,212,4,211,21,211,179,205,200,208,234,220,241,218,38,211,212,212,45,214,178,214,185,207,171,207,55,211,26,214,231,219,166,219,129,218,84,220,58,206,0,207,158,209,72,211,174,209,89,211,190,209,106,211,123,211,206,209,140,211,157,211,222,209,13,207,198,214,199,207,7,216,28,216,142,209,215,208,239,216,218,214,174,211,238,209,213,207,49,216,227,207,70,216,254,209,91,216,26,207,241,207,230,208,64,214,39,207,244,213,191,211,112,216,238,214,14,210,157,218,230,212,52,207,196,220,2,215,30,210,22,215,42,215,65,207,185,218,5,217,70,206,83,214,245,208,44,219,187,217,133,216,28,218,248,212,208,211,255,207,82,206,4,209,94,206,225,211,10,213,91,207,28,213,106,206,3,218,46,213,242,211,154,216,13,208,3,212,104,207,46,206,62,215,82,215,27,208,118,206,94,205,95,217,190,205,201,205,104,205,41,208,223,205,19,209,34,209,212,205,78,210,157,205,168,205,166,204,130,206,46,210,94,210,49,209,20,212,64,209,79,209,110,210,234,205,102,215,175,216,102,214,117,207,64,213,53,218,121,220,126,210,122,215,142,215,55,208,78,218,245,205,118,217,162,215,182,215,49,217,202,215,7,214,211,217,222,215,71,212,83,208,100,213,235,217,118,213,136,213,141,217,121,214,154,213,172,213,0,206,190,213,88,212,196,216,74,219,154,206,142,206,111,208,191,206,27,217,140,214,213,218,97,208,164,217,208,213,130,207,105,212,226,213,166,206,159,214,230,206,176,212,142,210,69,208,3,0,135,197,143,197,91,185,103,0,233,203,242,203,158,70,251,203,145,43,119,69,55,197,95,197,103,197,134,137,154,178,150,179,151,197,164,179,185,179,188,203,199,197,166,138,13,204,63,197,22,204,66,139,231,197,168,139,197,203,149,181,58,204,58,141,19,182,103,182,181,203,175,198,190,183,85,204,199,198,197,183,94,204,128,134,46,184,39,199,147,178,47,199,71,199,103,204,112,204,179,203,95,199,121,204,16,150,139,204,84,151,224,203,216,151,175,199,183,199,148,204,230,152,157,204,71,197,63,201,224,178,26,158,175,204,225,190,98,158,64,159,34,135,184,204,114,205,88,191,138,160,193,204,231,178,167,201,175,201,248,161,30,163,96,163,120,163,202,204,140,192,196,192,64,168,60,136,211,204,220,204,167,202,175,202,229,204,73,193,206,203,238,204,28,171,153,194,167,194,181,194,111,203,0,205,9,205,18,205,27,205,36,205,215,203,1,0,111,4,194,195,2,0,31,0,10,0,1,0,111,4,202,195,1,0,129,4,58,0,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,89,44,1,0,111,4,210,195,1,0,129,4,144,1,1,0,111,4,194,195,2,0,15,106,145,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,74,39,2,0,82,196,194,195,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,128,40,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,64,0,1,0,111,4,202,195,2,0,111,4,129,4,10,196,10,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,194,195,26,0,70,0,106,0,31,0,13,0,55,0,173,212,39,106,153,106,37,0,79,0,160,1,82,0,236,1,85,0,72,1,68,2,240,1,166,0,91,0,248,1,81,106,220,1,61,0,184,1,144,1,67,0,2,0,56,1,95,107,3,0,84,44,244,44,18,45,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,13,0,1,0,111,4,210,195,1,0,129,4,248,1,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,72,1,1,0,111,4,210,195,1,0,129,4,55,0,1,0,111,4,234,195,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,64,1,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,2,0,111,4,129,4,194,195,213,106,3,0,210,195,202,195,194,195,3,0,37,0,56,1,36,1,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,210,195,2,0,56,1,151,105,1,0,111,4,194,195,2,0,111,4,129,4,94,44,4,0,1,0,111,4,147,203,1,0,111,4,194,195,2,0,193,105,133,105,1,0,111,4,194,195,1,0,111,4,99,44,1,0,111,4,194,195,2,0,111,4,129,4,104,44,4,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,28,0,2,0,111,4,129,4,202,195,216,1,1,0,111,4,210,195,1,0,129,4,81,106,1,0,111,4,194,195,1,0,129,4,21,106,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,98,196,1,0,111,4,210,195,1,0,111,4,34,196,1,0,111,4,147,203,2,0,111,4,129,4,202,195,25,0,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,210,195,1,0,129,4,151,105,1,0,111,4,54,39,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,147,203,3,0,121,105,63,106,156,1,2,0,111,4,129,4,194,195,105,106,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,4,0,1,0,129,4,48,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,109,44,1,0,111,4,194,195,1,0,111,4,98,45,2,0,194,195,106,196,1,0,129,4,43,0,1,0,111,4,194,195,2,0,111,4,129,4,234,195,168,1,1,0,129,4,121,105,1,0,111,4,34,196,1,0,129,4,52,1,1,0,111,4,234,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,210,195,2,0,111,4,129,4,194,195,151,105,1,0,111,4,147,203,1,0,129,4,121,105,2,0,202,195,194,195,1,0,129,4,48,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,196,1,1,0,111,4,194,195,2,0,111,4,129,4,119,39,4,0,1,0,111,4,194,195,1,0,129,4,141,106,1,0,111,4,194,195,1,0,111,4,10,196,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,180,1,1,0,129,4,64,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,234,195,114,44,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,129,4,157,105,2,0,111,4,129,4,194,195,118,0,1,0,111,4,194,195,1,0,129,4,51,106,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,29,39,76,1,1,0,111,4,124,44,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,108,40,1,0,111,4,108,40,1,0,111,4,210,195,1,0,111,4,202,195,1,0,111,4,210,195,2,0,37,0,56,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,3,0,210,195,138,40,54,39,1,0,111,4,194,195,2,0,29,39,194,195,1,0,129,4,76,1,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,29,39,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,29,39,1,0,111,4,194,195,1,0,129,4,201,106,2,0,111,4,129,4,194,195,19,0,1,0,129,4,88,1,2,0,111,4,129,4,194,195,100,1,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,139,105,2,0,111,4,129,4,194,195,3,106,1,0,129,4,133,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,121,105,6,0,193,105,205,105,235,105,133,105,192,1,241,105,13,0,123,106,19,0,3,106,211,105,181,105,139,105,34,0,40,0,175,105,100,1,217,105,88,1,154,205,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,29,39,76,1,1,0,111,4,194,195,1,0,129,4,76,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,128,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,28,0,1,0,111,4,147,203,2,0,210,195,83,45,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,108,45,77,107,1,0,111,4,194,195,2,0,111,4,129,4,210,195,48,1,1,0,111,4,194,195,1,0,129,4,49,0,2,0,111,4,129,4,34,196,112,0,1,0,111,4,194,195,1,0,111,4,194,195,2,0,223,105,176,1,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,194,195,1,0,111,4,139,44,1,0,111,4,194,195,1,0,111,4,113,40,2,0,253,105,148,1,89,0,121,108,127,108,100,0,133,108,139,108,52,0,205,111,145,108,41,107,137,107,76,1,151,108,211,111,141,106,217,111,223,111,47,107,39,106,45,106,229,111,51,106,139,105,157,108,235,111,223,105,163,108,53,107,118,0,59,107,147,106,57,106,169,108,121,105,241,111,175,108,159,106,163,105,65,107,181,108,247,111,187,108,193,108,71,107,165,106,88,0,140,2,253,111,9,106,63,106,171,106,15,106,3,112,169,105,177,106,83,107,183,106,189,106,7,0,151,105,9,112,235,108,195,106,75,106,89,107,201,106,81,106,93,106,15,112,99,106,95,107,199,108,101,107,21,112,205,108,107,107,113,107,119,107,229,105,157,105,40,2,154,205,125,107,211,108,41,219,105,106,207,106,145,105,21,106,111,106,2,0,202,196,178,196,50,0,212,2,70,0,131,107,193,105,164,1,168,1,205,105,25,0,123,106,235,105,143,107,253,105,19,0,133,105,3,106,13,0,108,1,55,0,64,1,10,0,211,105,181,105,148,1,92,1,34,0,153,106,37,0,104,1,79,0,40,0,236,1,152,1,124,1,241,105,132,1,72,1,77,107,225,106,69,106,175,105,100,1,247,105,80,1,87,106,217,105,88,1,116,2,84,1,22,0,67,0,1,0,111,4,194,195,1,0,111,4,194,195,23,0,131,107,213,106,143,107,217,108,149,107,223,108,155,107,154,0,219,106,64,1,129,106,161,107,229,108,100,2,225,106,167,107,173,107,179,107,235,108,231,106,185,107,241,108,191,107,10,0,180,1,137,107,133,105,181,105,139,105,163,108,7,0,247,105,80,1,154,205,1,0,111,4,194,195,2,0,111,4,129,4,194,195,108,1,2,0,124,39,194,195,1,0,111,4,194,195,1,0,129,4,64,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,136,1,56,1,1,0,129,4,151,105,1,0,111,4,194,195,1,0,129,4,129,106,1,0,129,4,7,0,1,0,111,4,194,195,2,0,116,1,48,1,1,0,111,4,194,195,1,0,129,4,43,0,2,0,111,4,129,4,194,195,211,105,2,0,108,1,87,106,1,0,111,4,210,195,2,0,111,4,129,4,194,195,7,0,2,0,111,4,129,4,103,45,154,205,1,0,111,4,194,195,2,0,111,4,129,4,194,195,45,106,2,0,111,4,129,4,194,195,80,2,1,0,111,4,194,195,1,0,129,4,73,0,45,0,205,105,49,0,52,0,73,0,145,0,76,1,96,1,228,1,64,2,235,105,28,0,141,106,31,0,13,0,181,105,72,2,52,2,116,1,128,2,129,106,76,0,160,1,241,105,72,1,130,0,12,2,165,106,43,0,163,0,63,106,136,0,128,1,208,1,132,2,0,2,75,106,201,106,48,1,61,0,184,1,176,1,144,1,105,106,140,1,196,1,8,0,133,105,139,105,104,1,175,105,247,105,80,1,108,2,154,205,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,133,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,140,1,1,0,111,4,194,195,1,0,129,4,128,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,194,195,1,0,129,4,81,106,1,0,111,4,194,195,1,0,129,4,175,105,2,0,111,4,129,4,194,195,57,106,1,0,129,4,139,105,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,52,2,1,0,111,4,194,195,1,0,129,4,139,105,1,0,111,4,10,196,2,0,111,4,129,4,194,195,65,107,1,0,111,4,210,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,64,1,1,0,111,4,202,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,2,0,111,4,129,4,194,195,231,106,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,2,0,147,203,18,196,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,111,4,149,44,1,0,111,4,194,195,3,0,129,44,54,39,152,71,1,0,111,4,234,195,2,0,235,105,192,1,1,0,129,4,133,105,1,0,111,4,218,196,2,0,139,105,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,194,195,1,0,129,4,163,105,2,0,111,4,129,4,194,195,169,108,1,0,111,4,147,203,1,0,111,4,194,195,1,0,129,4,76,1,2,0,210,195,194,195,2,0,128,1,169,105,1,0,111,4,194,195,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,194,195,1,0,129,4,154,205,1,0,111,4,210,195,1,0,129,4,136,1,2,0,111,4,129,4,42,196,153,106,2,0,111,4,129,4,147,203,121,105,2,0,194,195,204,44,3,0,45,106,121,105,145,105,2,0,147,203,194,195,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,128,40,1,0,111,4,43,45,1,0,111,4,194,195,1,0,111,4,164,44,1,0,111,4,210,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,122,196,1,0,111,4,194,195,1,0,111,4,159,44,1,0,111,4,210,195,1,0,129,4,151,105,2,0,111,4,129,4,194,195,189,106,1,0,111,4,147,203,2,0,111,4,129,4,123,45,121,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,2,0,164,1,92,1,3,0,193,105,68,1,217,105,1,0,111,4,194,195,1,0,111,4,242,195,1,0,129,4,52,1,2,0,111,4,129,4,194,195,76,0,2,0,111,4,129,4,194,195,34,0,3,0,193,105,80,1,68,1,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,226,196,56,2,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,2,0,111,4,129,4,194,195,4,0,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,133,45,2,0,111,4,129,4,194,195,52,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,202,195,2,0,210,195,194,195,2,0,111,4,129,4,194,195,121,0,4,0,235,105,104,1,76,2,224,1,5,0,133,105,181,105,92,1,9,106,154,205,2,0,29,39,194,195,1,0,129,4,76,1,1,0,111,4,194,195,2,0,111,4,129,4,2,196,124,0,1,0,111,4,194,195,1,0,129,4,159,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,42,196,1,0,111,4,42,196,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,169,44,4,0,2,0,111,4,129,4,114,196,58,0,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,13,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,229,105,1,0,111,4,44,39,1,0,111,4,194,195,1,0,129,4,215,107,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,96,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,234,195,121,105,1,0,111,4,93,45,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,50,196,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,15,106,1,0,111,4,122,196,1,0,111,4,194,195,1,0,111,4,202,195,2,0,210,195,202,195,1,0,129,4,52,1,1,0,111,4,194,195,2,0,111,4,129,4,194,195,160,0,1,0,129,4,3,106,1,0,111,4,194,195,1,0,129,4,163,105,2,0,111,4,129,4,234,196,127,0,1,0,111,4,194,195,1,0,129,4,117,106,1,0,111,4,90,196,1,0,129,4,121,105,1,0,129,4,48,1,2,0,172,1,244,1,2,0,52,1,154,205,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,99,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,2,0,210,195,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,3,0,210,195,202,195,194,195,2,0,61,0,22,0,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,202,195,2,0,111,4,129,4,23,45,36,1,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,44,39,1,0,129,4,84,1,1,0,111,4,210,195,3,0,210,195,202,195,194,195,1,0,111,4,113,40,2,0,111,4,129,4,194,195,224,1,1,0,111,4,147,71,1,0,111,4,42,196,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,151,105,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,241,105,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,44,39,1,0,111,4,179,44,1,0,111,4,202,195,2,0,111,4,129,4,79,44,36,1,2,0,202,195,194,195,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,2,0,147,203,184,44,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,189,44,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,18,196,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,96,1,2,0,111,4,129,4,122,196,32,2,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,21,106,1,0,111,4,210,195,1,0,129,4,56,1,2,0,111,4,129,4,194,195,124,1,1,0,129,4,100,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,96,1,1,0,111,4,194,195,1,0,129,4,96,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,234,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,210,195,1,0,129,4,56,1,2,0,111,4,129,4,194,195,132,1,1,0,111,4,44,39,1,0,111,4,242,195,2,0,114,196,194,195,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,147,203,2,0,121,105,156,1,1,0,111,4,194,195,2,0,111,4,129,4,119,39,4,0,2,0,194,195,106,196,2,0,53,107,116,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,111,4,119,39,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,219,44,99,106,1,0,111,4,194,195,1,0,129,4,163,105,1,0,129,4,48,1,1,0,111,4,210,195,1,0,129,4,84,1,1,0,111,4,194,195,1,0,129,4,63,106,1,0,129,4,48,1,2,0,111,4,129,4,194,195,165,106,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,194,195,2,0,111,4,129,4,194,195,88,0,2,0,111,4,129,4,194,195,183,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,4,0,2,0,111,4,129,4,202,195,4,2,1,0,111,4,138,196,1,0,129,4,121,105,1,0,111,4,194,195,2,0,111,4,129,4,202,195,60,2,2,0,162,196,118,40,1,0,111,4,162,196,1,0,111,4,234,195,2,0,111,4,129,4,165,203,121,105,1,0,111,4,202,195,1,0,111,4,50,196,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,49,0,1,0,111,4,147,203,2,0,111,4,129,4,229,44,121,105,1,0,111,4,147,203,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,234,44,2,0,210,195,194,195,3,0,48,2,69,106,93,106,2,0,151,108,4,0,2,0,111,4,129,4,194,195,9,106,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,50,196,252,1,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,209,44,1,0,111,4,210,195,1,0,129,4,56,1,2,0,111,4,129,4,194,195,177,106,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,194,195,1,0,111,4,194,195,2,0,46,0,44,2,1,0,111,4,194,195,2,0,111,4,129,4,194,195,111,106,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,2,0,133,105,175,105,2,0,111,4,129,4,147,203,156,1,1,0,129,4,121,105,1,0,111,4,147,203,1,0,129,4,156,1,1,0,111,4,194,195,1,0,129,4,15,106,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,83,107,1,0,111,4,194,195,7,0,103,0,205,105,109,0,115,0,175,105,232,1,199,108,1,0,129,4,133,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,46,0,1,0,111,4,194,195,2,0,111,4,129,4,194,195,46,0,1,0,111,4,174,44,1,0,129,4,84,1,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,202,195,1,0,111,4,94,39,1,0,111,4,194,195,1,0,111,4,106,196,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,171,106,1,0,129,4,21,106,1,0,111,4,194,195,1,0,129,4,229,105,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,64,1,181,105,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,10,196,10,0,1,0,111,4,170,196,1,0,129,4,121,105,1,0,111,4,202,195,1,0,129,4,58,0,1,0,111,4,8,45,1,0,111,4,194,195,2,0,124,39,194,195,1,0,111,4,3,45,2,0,210,195,250,196,3,0,139,105,121,105,151,105,1,0,111,4,194,195,1,0,129,4,7,0,2,0,28,45,33,45,1,0,111,4,194,195,1,0,129,4,7,0,2,0,103,0,115,0,1,0,129,4,109,0,2,0,111,4,129,4,194,195,195,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,128,45,1,0,111,4,194,195,1,0,111,4,38,45,3,0,147,203,130,196,44,39,1,0,111,4,194,195,1,0,129,4,89,107,1,0,111,4,194,195,2,0,111,4,129,4,194,195,100,1,2,0,139,105,120,1,1,0,111,4,194,195,3,0,202,195,54,39,194,195,1,0,111,4,194,195,1,0,129,4,51,106,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,210,195,136,1,1,0,129,4,151,105,10,0,117,106,123,106,215,107,129,106,221,107,75,109,199,105,247,105,81,109,227,107,1,0,111,4,194,195,3,0,213,106,219,106,179,107,1,0,111,4,194,195,1,0,129,4,161,107,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,0,2,1,0,111,4,194,195,2,0,111,4,129,4,143,40,4,0,1,0,111,4,194,195,1,0,111,4,53,45,2,0,210,195,194,195,1,0,111,4,194,195,2,0,194,195,59,39,1,0,129,4,72,1,1,0,111,4,147,203,1,0,111,4,234,195,2,0,168,1,121,105,1,0,111,4,194,195,1,0,129,4,235,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,2,0,111,4,129,4,194,195,52,0,1,0,111,4,194,195,1,0,129,4,199,105,2,0,84,2,80,1,2,0,111,4,129,4,202,195,68,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,5,0,216,1,212,1,40,0,36,1,120,1,9,0,25,0,133,105,108,1,124,1,132,1,100,1,44,2,94,0,97,0,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,75,106,1,0,111,4,194,195,1,0,111,4,82,196,5,0,147,203,154,44,63,45,68,45,130,196,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,2,0,42,196,123,40,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,254,44,4,0,234,195,147,203,194,195,170,196,1,0,129,4,48,1,1,0,111,4,58,45,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,104,1,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,139,105,1,0,111,4,194,195,2,0,210,195,147,203,2,0,2,197,10,197,2,0,121,105,151,105,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,2,0,111,4,129,4,202,195,46,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,28,0,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,228,1,2,0,194,195,249,44,1,0,111,4,194,195,3,0,210,195,194,195,59,39,1,0,129,4,72,1,1,0,111,4,50,196,1,0,129,4,252,1,2,0,111,4,129,4,130,196,152,1,1,0,111,4,194,195,1,0,129,4,10,0,2,0,111,4,129,4,194,195,88,1,2,0,19,0,68,1,1,0,111,4,210,195,1,0,129,4,151,105,2,0,111,4,129,4,194,195,217,105,1,0,129,4,193,105,1,0,111,4,194,195,1,0,111,4,194,195,2,0,100,0,207,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,123,40,1,0,111,4,194,195,1,0,129,4,211,105,2,0,111,4,129,4,194,195,111,106,1,0,129,4,48,1,1,0,111,4,194,195,1,0,129,4,43,0,2,0,111,4,129,4,194,195,220,1,2,0,210,195,13,45,2,0,31,0,10,0,1,0,111,4,44,39,1,0,129,4,84,1,2,0,88,2,64,0,2,0,4,2,68,1,2,0,202,195,194,195,4,0,164,1,133,0,68,1,64,0,1,0,111,4,194,195,1,0,111,4,148,40,1,0,111,4,194,195,1,0,129,4,232,1,1,0,111,4,194,195,1,0,129,4,48,1,1,0,111,4,147,203,2,0,111,4,129,4,194,195,101,107,1,0,129,4,145,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,71,107,1,0,129,4,145,105,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,73,45,4,0,1,0,111,4,194,195,1,0,129,4,229,105,1,0,111,4,194,195,2,0,111,4,129,4,210,195,116,1,3,0,142,0,211,105,87,106,3,0,163,105,229,105,157,105,1,0,129,4,96,1,1,0,111,4,210,195,2,0,111,4,129,4,194,195,196,1,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,234,195,2,0,111,4,129,4,28,40,168,1,1,0,111,4,74,39,1,0,111,4,194,195,2,0,152,1,93,106,3,0,139,105,121,105,69,106,1,0,111,4,202,195,1,0,111,4,147,203,1,0,111,4,34,196,1,0,111,4,194,195,1,0,111,4,78,45,1,0,111,4,90,196,1,0,129,4,121,105,1,0,111,4,88,45,1,0,111,4,147,203,1,0,111,4,34,196,1,0,111,4,147,203,1,0,111,4,18,196,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,99,106,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,227,107,3,0,210,195,202,195,194,195,2,0,111,4,129,4,44,39,84,1,1,0,111,4,147,203,1,0,111,4,147,203,1,0,111,4,147,203,2,0,111,4,129,4,10,196,39,106,1,0,129,4,10,0,1,0,111,4,10,196,1,0,129,4,39,106,1,0,111,4,194,195,1,0,129,4,169,105,3,0,210,195,202,195,194,195,2,0,136,1,56,1,2,0,111,4,129,4,194,195,205,108,2,0,202,195,194,195,1,0,111,4,147,203,1,0,111,4,194,195,3,0,210,195,202,195,194,195,1,0,129,4,188,1,1,0,111,4,194,195,1,0,129,4,128,1,2,0,111,4,129,4,194,195,41,107,1,0,129,4,145,105,1,0,129,4,48,1,2,0,111,4,129,4,194,195,107,107,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,189,106,2,0,253,105,22,0,2,0,111,4,129,4,210,195,133,105,1,0,111,4,194,195,1,0,111,4,74,39,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,2,0,199,105,145,105,1,0,111,4,54,39,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,111,4,34,196,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,44,39,1,0,129,4,84,1,2,0,202,195,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,171,106,2,0,111,4,129,4,194,195,119,107,1,0,111,4,194,195,2,0,111,4,129,4,194,195,208,1,1,0,111,4,202,195,1,0,129,4,36,1,2,0,194,195,59,39,1,0,111,4,202,195,1,0,111,4,202,195,2,0,111,4,129,4,194,195,36,1,2,0,210,195,202,195,2,0,111,4,129,4,194,195,52,1,1,0,111,4,118,45,2,0,111,4,129,4,202,195,120,1,1,0,129,4,68,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,117,106,5,0,139,0,151,0,181,0,144,2,120,2,2,0,234,195,147,203,1,0,129,4,121,105,2,0,234,195,147,203,2,0,111,4,129,4,210,195,151,105,2,0,139,105,121,105,3,0,210,195,202,195,194,195,1,0,129,4,136,1,2,0,194,195,153,40,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,195,5,0,123,106,92,1,104,1,225,106,217,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,200,1,2,0,111,4,129,4,242,196,154,205,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,205,105,1,0,111,4,194,195,1,0,129,4,133,105,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,10,196,1,0,129,4,10,0,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,18,196,1,0,129,4,121,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,140,1,2,0,111,4,129,4,210,195,160,1,2,0,111,4,129,4,194,195,48,1,1,0,111,4,210,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,119,44,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,44,1,0,111,4,199,44,1,0,111,4,114,196,1,0,111,4,214,44,1,0,111,4,224,44,1,0,111,4,239,44,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,48,45,1,0,111,4,194,39,1,0,111,4,147,203,2,0,124,39,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,42,196,2,0,111,4,129,4,194,195,169,105,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,242,195,146,196,2,0,52,1,147,106,1,0,111,4,194,195,2,0,111,4,129,4,242,195,52,1,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,210,195,160,1,1,0,111,4,194,195,1,0,111,4,59,39,1,0,111,4,59,39,1,0,129,4,72,1,2,0,242,195,146,196,5,0,52,1,147,106,75,109,93,106,175,0,2,0,133,40,118,40,5,0,4,0,69,106,84,1,154,205,200,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,22,0,4,0,133,14,142,14,148,14,153,14,236,112,132,136,14,219,158,212,6,0,32,1,136,105,66,39,64,183,120,106,244,105,4,0,81,39,15,40,131,178,41,1,4,0,166,39,171,39,29,196,41,1,4,0,111,39,171,39,29,196,41,1,4,0,111,39,166,39,29,196,41,1,4,0,111,39,141,39,29,196,41,1,4,0,51,33,252,2,29,196,41,1,4,0,227,7,71,39,29,196,131,178,4,0,71,44,71,39,29,196,131,178,4,0,92,2,15,40,194,178,41,1,4,0,92,2,81,39,194,178,41,1,4,0,87,109,36,39,11,39,131,178,4,0,2,42,32,1,11,39,131,178,4,0,65,40,181,39,16,39,131,178,4,0,109,108,32,1,11,39,131,178,4,0,51,109,32,1,11,39,131,178,4,0,24,3,66,39,16,39,131,178,4,0,209,107,36,39,11,39,131,178,4,0,238,107,160,2,16,39,131,178,4,0,72,3,36,39,16,39,131,178,4,0,42,108,32,1,11,39,131,178,4,0,21,109,204,1,11,39,131,178,4,0,51,44,32,1,11,39,131,178,4,0,56,44,44,1,16,39,131,178,4,0,45,40,41,39,16,39,131,178,4,0,76,3,66,39,16,39,131,178,4,0,42,111,143,7,11,39,131,178,4,0,159,18,32,1,16,39,131,178,4,0,75,7,127,105,11,39,131,178,4,0,85,40,41,39,16,39,131,178,4,0,31,19,41,39,16,39,131,178,4,0,70,40,20,3,16,39,41,1,4,0,55,40,32,1,16,39,131,178,4,0,40,3,32,1,11,39,131,178,4,0,0,3,32,1,11,39,131,178,4,0,4,3,66,39,16,39,131,178,4,0,117,109,92,2,16,39,131,178,4,0,232,2,181,39,16,39,131,178,4,0,35,40,32,1,16,39,131,178,4,0,219,21,32,1,11,39,131,178,4,0,28,3,32,1,16,39,131,178,4,0,247,108,66,39,16,39,131,178,4,0,33,106,66,39,16,39,131,178,4,0,44,3,204,1,11,39,131,178,4,0,33,109,32,1,11,39,131,178,4,0,179,196,32,1,16,39,131,178,4,0,35,107,41,39,16,39,131,178,4,0,27,109,36,39,11,39,131,178,4,0,48,3,32,1,11,39,131,178,4,0,115,108,32,1,11,39,131,178,4,0,244,2,32,1,16,39,131,178,4,0,228,2,86,39,16,39,131,178,4,0,31,44,32,1,11,39,131,178,4,0,52,3,41,39,11,39,131,178,4,0,80,3,36,39,11,39,131,178,4,0,176,39,32,1,11,39,131,178,4,0,15,109,32,1,11,39,131,178,4,0,19,26,32,1,11,39,131,178,4,0,146,39,248,2,11,39,131,178,4,0,56,3,36,39,11,39,131,178,4,0,131,39,12,3,16,39,131,178,4,0,60,3,32,1,11,39,131,178,4,0,253,108,41,39,11,39,131,178,4,0,30,40,32,1,11,39,131,178,4,0,187,26,32,1,11,39,131,178,4,0,232,107,41,39,11,39,131,178,4,0,91,27,204,1,16,39,131,178,4,0,119,27,32,1,11,39,131,178,4,0,51,39,41,39,11,39,131,178,4,0,136,39,32,1,16,39,131,178,4,0,240,2,32,1,11,39,131,178,4,0,116,39,36,39,11,39,131,178,4,0,52,196,204,1,11,39,131,178,4,0,26,39,86,39,11,39,131,178,4,0,64,3,32,1,11,39,131,178,4,0,151,39,32,1,11,39,131,178,4,0,186,39,32,1,11,39,131,178,4,0,249,106,81,39,16,39,41,1,4,0,249,106,15,40,16,39,41,1,4,0,207,28,32,1,11,39,131,178,4,0,16,3,32,1,11,39,131,178,4,0,33,41,32,1,11,39,131,178,4,0,84,3,41,39,16,39,131,178,4,0,8,2,32,1,11,39,131,178,4,0,197,107,32,1,11,39,131,178,4,0,36,44,32,1,11,39,131,178,4,0,67,30,32,1,16,39,131,178,4,0,106,39,32,1,11,39,131,178,4,0,21,39,66,39,11,39,131,178,4,0,75,40,71,39,16,39,131,178,4,0,76,44,32,1,11,39,131,178,4,0,68,3,41,39,11,39,131,178,4,0,156,39,204,1,11,39,131,178,4,0,60,40,32,1,11,39,131,178,4,0,191,39,32,1,11,39,131,178,4,0,46,44,32,1,11,39,131,178,4,0,90,40,32,1,11,39,131,178,4,0,135,106,32,1,11,39,131,178,4,0,41,44,32,1,11,39,131,178,4,0,161,39,86,39,16,39,131,178,4,0,40,40,32,1,11,39,131,178,4,0,91,39,32,1,11,39,131,178,4,0,164,2,32,1,11,39,131,178,4,0,88,3,36,39,11,39,131,178,4,0,39,109,32,1,11,39,131,178,4,0,100,40,36,39,11,39,131,178,4,0,203,33,32,1,11,39,131,178,4,0,61,44,32,1,11,39,131,178,4,0,105,40,32,1,11,39,131,178,4,0,95,40,36,39,11,39,131,178,4,0,30,111,32,1,11,39,131,178,4,0,32,3,44,1,16,39,131,178,4,0,69,109,36,39,16,39,131,178,4,0,160,2,32,1,11,39,131,178,4,0,203,107,36,39,11,39,131,178,4,0,36,3,41,39,11,39,131,178,4,0,104,2,32,1,11,39,131,178,4,0,156,2,32,1,11,39,131,178,4,0,26,44,32,1,11,39,131,178,4,0,92,3,44,1,16,39,131,178,4,0,236,2,32,1,11,39,131,178,4,0,87,16,127,105,6,39,131,178,4,0,95,16,127,105,6,39,131,178,4,0,99,16,127,105,6,39,131,178,4,0,103,16,127,105,6,39,131,178,4,0,107,16,127,105,6,39,131,178,4,0,111,16,127,105,6,39,131,178,4,0,115,16,127,105,6,39,131,178,4,0,119,16,127,105,6,39,131,178,4,0,123,16,127,105,6,39,131,178,4,0,135,16,127,105,6,39,131,178,4,0,131,43,127,105,6,39,131,178,4,0,147,16,127,105,6,39,131,178,4,0,35,7,127,105,6,39,131,178,4,0,211,16,127,105,6,39,131,178,4,0,215,16,127,105,6,39,131,178,4,0,39,7,127,105,6,39,131,178,4,0,43,7,127,105,6,39,131,178,4,0,47,7,127,105,6,39,131,178,4,0,51,7,127,105,6,39,131,178,4,0,75,17,127,105,6,39,131,178,4,0,87,17,127,105,6,39,131,178,4,0,107,17,127,105,6,39,131,178,4,0,111,17,127,105,6,39,131,178,4,0,115,17,127,105,6,39,131,178,4,0,119,17,127,105,6,39,131,178,4,0,55,7,127,105,6,39,131,178,4,0,230,39,127,105,6,39,131,178,4,0,63,41,127,105,6,39,131,178,4,0,47,33,127,105,6,39,131,178,4,0,131,17,209,107,6,39,131,178,4,0,47,9,9,109,6,39,131,178,4,0,139,7,16,0,6,39,131,178,4,0,171,7,16,0,6,39,131,178,4,0,147,21,16,0,6,39,131,178,4,0,151,21,16,0,6,39,131,178,4,0,155,21,16,0,6,39,131,178,4,0,159,21,16,0,6,39,131,178,4,0,163,21,16,0,6,39,131,178,4,0,101,43,16,0,6,39,131,178,4,0,151,43,33,106,6,39,131,178,4,0,54,111,33,106,6,39,131,178,4,0,207,22,33,106,6,39,131,178,4,0,99,28,33,106,6,39,131,178,4,0,71,24,63,109,6,39,131,178,4,0,219,20,111,1,6,39,131,178,4,0,135,7,111,1,6,39,131,178,4,0,103,28,111,1,6,39,131,178,4,0,123,29,111,1,6,39,131,178,4,0,162,42,111,1,6,39,131,178,4,0,58,41,111,1,6,39,131,178,4,0,155,33,111,1,6,39,131,178,4,0,247,33,111,1,6,39,131,178,4,0,111,22,3,26,6,39,131,178,4,0,59,22,11,26,6,39,131,178,4,0,247,23,59,1,6,39,131,178,4,0,155,26,59,1,6,39,131,178,4,0,75,197,59,1,6,39,131,178,4,0,159,26,59,1,6,39,131,178,4,0,103,8,59,1,6,39,131,178,4,0,13,41,59,1,6,39,131,178,4,0,78,41,59,1,6,39,131,178,4,0,11,27,59,1,6,39,131,178,4,0,111,8,59,1,6,39,131,178,4,0,51,27,59,1,6,39,131,178,4,0,78,108,59,1,6,39,131,178,4,0,15,29,59,1,6,39,131,178,4,0,235,31,59,1,6,39,131,178,4,0,7,27,3,109,6,39,131,178,4,0,191,17,51,39,6,39,131,178,4,0,59,7,51,39,6,39,131,178,4,0,219,17,51,39,6,39,131,178,4,0,59,18,51,39,6,39,131,178,4,0,29,70,51,39,6,39,131,178,4,0,196,134,51,39,6,39,131,178,4,0,151,33,51,39,6,39,131,178,4,0,191,33,51,39,6,39,131,178,4,0,255,33,51,39,6,39,131,178,4,0,211,36,51,39,6,39,131,178,4,0,215,36,51,39,6,39,131,178,4,0,235,27,116,39,6,39,131,178,4,0,207,17,26,39,6,39,131,178,4,0,15,18,26,39,6,39,131,178,4,0,23,18,26,39,6,39,131,178,4,0,27,18,26,39,6,39,131,178,4,0,6,111,26,39,6,39,131,178,4,0,223,19,26,39,6,39,131,178,4,0,239,7,26,39,6,39,131,178,4,0,86,39,26,39,6,39,131,178,4,0,170,69,26,39,6,39,131,178,4,0,251,24,26,39,6,39,131,178,4,0,31,26,26,39,6,39,131,178,4,0,35,26,26,39,6,39,131,178,4,0,47,26,26,39,6,39,131,178,4,0,94,110,26,39,6,39,131,178,4,0,91,26,26,39,6,39,131,178,4,0,131,26,26,39,6,39,131,178,4,0,95,27,26,39,6,39,131,178,4,0,107,27,26,39,6,39,131,178,4,0,111,27,26,39,6,39,131,178,4,0,115,27,26,39,6,39,131,178,4,0,143,27,26,39,6,39,131,178,4,0,215,27,26,39,6,39,131,178,4,0,219,27,26,39,6,39,131,178,4,0,227,27,26,39,6,39,131,178,4,0,187,29,26,39,6,39,131,178,4,0,191,29,26,39,6,39,131,178,4,0,95,30,26,39,6,39,131,178,4,0,182,42,26,39,6,39,131,178,4,0,223,33,26,39,6,39,131,178,4,0,131,34,26,39,6,39,131,178,4,0,43,35,26,39,6,39,131,178,4,0,47,35,26,39,6,39,131,178,4,0,207,36,26,39,6,39,131,178,4,0,167,38,26,39,6,39,131,178,4,0,135,39,26,39,6,39,131,178,4,0,107,7,186,39,6,39,131,178,4,0,227,21,8,2,6,39,131,178,4,0,7,23,8,2,6,39,131,178,4,0,179,8,8,2,6,39,131,178,4,0,68,41,197,107,6,39,131,178,4,0,47,30,106,39,6,39,131,178,4,0,251,30,106,39,6,39,131,178,4,0,103,31,21,39,6,39,131,178,4,0,107,31,21,39,6,39,131,178,4,0,111,31,21,39,6,39,131,178,4,0,115,31,21,39,6,39,131,178,4,0,119,31,21,39,6,39,131,178,4,0,123,31,21,39,6,39,131,178,4,0,127,31,21,39,6,39,131,178,4,0,131,31,21,39,6,39,131,178,4,0,135,31,21,39,6,39,131,178,4,0,176,109,21,39,6,39,131,178,4,0,139,31,21,39,6,39,131,178,4,0,143,31,21,39,6,39,131,178,4,0,147,31,21,39,6,39,131,178,4,0,191,8,21,39,6,39,131,178,4,0,195,8,21,39,6,39,131,178,4,0,199,8,21,39,6,39,131,178,4,0,155,31,21,39,6,39,131,178,4,0,159,31,21,39,6,39,131,178,4,0,163,31,21,39,6,39,131,178,4,0,167,31,21,39,6,39,131,178,4,0,171,31,21,39,6,39,131,178,4,0,175,31,21,39,6,39,131,178,4,0,179,31,21,39,6,39,131,178,4,0,183,31,21,39,6,39,131,178,4,0,203,8,21,39,6,39,131,178,4,0,207,8,21,39,6,39,131,178,4,0,187,31,21,39,6,39,131,178,4,0,220,39,21,39,6,39,131,178,4,0,211,8,21,39,6,39,131,178,4,0,215,8,21,39,6,39,131,178,4,0,199,31,21,39,6,39,131,178,4,0,219,8,21,39,6,39,131,178,4,0,223,8,21,39,6,39,131,178,4,0,103,2,21,39,6,39,131,178,4,0,227,8,21,39,6,39,131,178,4,0,203,31,21,39,6,39,131,178,4,0,207,31,21,39,6,39,131,178,4,0,211,31,21,39,6,39,131,178,4,0,215,31,21,39,6,39,131,178,4,0,219,31,21,39,6,39,131,178,4,0,223,31,21,39,6,39,131,178,4,0,231,8,21,39,6,39,131,178,4,0,76,43,101,39,6,39,131,178,4,0,166,110,101,39,6,39,131,178,4,0,43,33,101,39,6,39,131,178,4,0,79,16,135,106,6,39,131,178,4,0,253,41,135,106,6,39,131,178,4,0,195,16,135,106,6,39,131,178,4,0,154,40,115,33,6,39,131,178,4,0,43,9,203,107,6,39,131,178,4,0,179,37,156,2,6,39,131,178,4,0,99,18,44,1,6,39,131,178,4,0,71,7,44,1,6,39,131,178,4,0,11,19,44,1,6,39,131,178,4,0,103,7,44,1,6,39,131,178,4,0,79,19,44,1,6,39,131,178,4,0,127,42,44,1,6,39,131,178,4,0,11,23,44,1,6,39,131,178,4,0,243,7,44,1,6,39,131,178,4,0,225,39,44,1,6,39,131,178,4,0,130,69,44,1,6,39,131,178,4,0,186,111,44,1,6,39,131,178,4,0,3,36,44,1,6,39,131,178,4,0,51,9,44,1,6,39,131,178,4,0,82,205,82,205,207,43,41,1,4,0,7,196,223,195,6,39,131,178,4,0,175,197,71,196,6,39,131,178,4,0,231,195,223,195,6,39,131,178,4,0,31,196,239,195,6,39,131,178,4,0,223,196,71,196,6,39,131,178,4,0,111,196,223,195,6,39,131,178,4,0,231,196,223,195,6,39,131,178,4,0,87,196,223,195,6,39,131,178,4,0,119,196,223,195,6,39,131,178,4,0,135,196,223,195,6,39,131,178,4,0,47,196,223,195,6,39,131,178,4,0,95,201,223,195,6,39,131,178,4,0,167,196,223,195,6,39,131,178,4,0,247,196,223,195,6,39,131,178,4,0,183,201,223,195,6,39,131,178,4,0,207,201,223,195,6,39,131,178,4,0,127,196,223,195,6,39,131,178,4,0,95,196,223,195,6,39,131,178,4,0,15,196,223,195,6,39,131,178,4,0,215,202,223,195,6,39,131,178,4,0,223,202,71,196,6,39,131,178,4,0,103,203,223,195,6,39,131,178,4,0,191,195,71,196,6,39,131,178,4,0,39,196,223,195,6,39,131,178,4,0,23,197,159,202,188,105,41,1,4,0,127,203,239,195,6,39,131,178,4,0,31,197,239,195,16,39,131,178,4,0,31,197,143,196,16,39,131,178,4,0,127,197,119,197,16,39,131,178,4,0,223,197,231,195,16,39,131,178,4,0,55,199,215,196,16,39,131,178,4,0,153,203,79,199,16,39,131,178,4,0,135,199,87,196,16,39,131,178,4,0,39,201,135,196,16,39,131,178,4,0,79,201,71,201,16,39,131,178,4,0,191,202,95,196,16,39,131,178,4,0,199,202,15,196,16,39,131,178,4,0,135,203,239,195,16,39,131,178,4,0,119,199,255,195,188,105,131,178,4,0,111,199,255,195,188,105,131,178,4,0,151,196,255,195,188,105,131,178,4,0,79,196,255,195,188,105,131,178,4,0,63,196,255,195,188,105,131,178,4,0,151,196,63,196,188,105,131,178,4,0,79,196,63,196,188,105,131,178,4,0,239,196,55,196,188,105,131,178,4,0,183,196,55,196,188,105,131,178,4,0,191,196,55,196,188,105,131,178,4,0,191,196,183,196,188,105,131,178,4,0,143,178,143,178,66,44,41,1,4,0,157,207,157,207,29,196,41,1,4,0,140,208,140,208,29,196,41,1,4,0,161,178,161,178,188,105,41,1,4,0,146,205,146,205,29,196,41,1,4,0,34,206,183,198,85,197,41,1,4,0,34,206,34,206,29,196,41,1,4,0,168,178,168,178,188,105,41,1,4,0,155,208,155,208,29,196,41,1,4,0,94,209,94,209,29,196,41,1,4,0,175,178,175,178,188,105,41,1,4,0,170,208,170,208,29,196,41,1,4,0,110,209,110,209,29,196,41,1,4,0,140,178,140,178,188,105,41,1,4,0,185,208,185,208,29,196,41,1,4,0,126,209,126,209,29,196,41,1,4,0,74,205,74,205,188,105,41,1,4,0,122,113,122,113,29,196,41,1,84,0,50,183,118,108,124,108,130,108,136,108,202,111,142,108,38,107,12,145,148,108,208,111,138,106,214,111,250,105,220,111,44,107,36,106,42,106,226,111,48,106,136,105,154,108,232,111,220,105,160,108,50,107,56,107,144,106,54,106,150,106,166,108,118,105,238,111,172,108,156,106,160,105,62,107,178,108,244,111,184,108,190,108,68,107,162,106,24,145,250,111,6,106,60,106,74,107,168,106,66,106,12,106,0,112,166,105,174,106,80,107,180,106,186,106,148,105,6,112,192,106,72,106,86,107,198,106,78,106,90,106,12,112,96,106,92,107,196,108,98,107,18,112,202,108,104,107,110,107,116,107,226,105,154,105,122,107,208,108,102,106,204,106,142,105,18,106,108,106,9,0,190,105,202,105,18,145,130,105,0,106,208,105,172,105,84,106,214,105,22,0,128,107,210,106,66,145,134,107,140,107,214,108,146,107,220,108,152,107,216,106,158,107,226,108,222,106,164,107,170,107,176,107,232,108,228,106,182,107,72,145,238,108,188,107,2,0,81,39,249,106,11,0,114,106,232,105,212,107,178,105,126,106,218,107,238,105,72,109,196,105,78,109,224,107,43,0,159,197,167,197,4,204,31,204,103,196,239,197,49,204,47,197,67,204,170,203,199,196,175,196,207,196,191,198,63,199,103,199,127,199,143,199,151,199,159,199,167,199,31,201,159,196,161,203,87,201,111,201,143,203,215,201,255,196,7,197,152,203,151,202,23,197,183,202,207,202,95,203,207,195,199,195,247,204,119,203,171,203,45,205,143,196,11,0,8,3,80,40,176,39,57,109,116,39,191,39,91,39,164,2,50,40,51,9,44,1,7,0,141,72,146,72,151,72,156,72,161,72,166,72,171,72,7,0,138,45,143,45,148,45,153,45,158,40,158,45,163,40,34,0,20,137,26,137,132,109,128,113,134,113,140,113,146,113,152,113,138,109,158,113,164,113,170,113,144,109,176,113,182,113,188,113,194,113,200,113,206,113,212,113,218,113,224,113,230,113,236,113,242,113,248,113,254,113,4,114,10,114,16,114,106,108,22,114,28,114,34,114,8,0,176,72,181,72,186,72,191,72,196,72,201,72,206,72,211,72,12,0,216,72,221,72,226,72,231,72,236,72,241,72,246,72,251,72,0,73,5,73,10,73,15,73,11,0,163,45,3,107,168,45,173,45,178,45,183,45,188,45,193,45,198,45,203,45,208,45,18,0,40,114,46,114,52,114,58,114,64,114,170,137,176,137,70,114,76,114,82,114,150,109,88,114,230,107,94,114,100,114,106,114,112,108,156,109,24,0,16,110,195,39,140,69,54,206,226,206,243,16,247,16,251,16,255,16,138,111,3,17,136,134,124,110,7,17,39,7,11,17,43,7,239,206,15,17,19,17,23,17,27,17,47,7,51,7,9,0,35,17,39,17,43,17,47,17,51,17,55,17,59,17,63,17,67,17,8,0,112,114,118,114,213,45,124,114,218,45,130,114,136,114,168,40,70,0,142,114,148,114,154,114,160,114,166,114,172,114,178,114,244,39,236,107,190,114,196,114,202,114,208,114,214,114,226,114,232,114,33,40,238,114,244,114,250,114,0,115,6,115,162,109,12,115,18,115,30,115,129,39,36,115,42,115,48,115,54,115,134,39,249,39,60,115,223,45,168,109,72,115,78,115,84,115,90,115,96,115,102,115,174,109,228,45,108,115,136,138,142,138,132,115,138,115,144,115,150,115,254,39,156,115,162,115,139,39,168,115,174,115,180,115,186,115,233,45,192,115,198,115,204,115,210,115,216,115,238,45,222,115,196,111,148,138,124,105,3,0,228,115,234,115,240,115,11,0,165,73,170,73,175,73,180,73,185,73,190,73,195,73,200,73,205,73,210,73,215,73,8,0,159,17,163,17,167,17,171,17,175,17,142,134,134,109,179,17,3,0,246,115,8,116,32,116,13,0,28,75,33,75,38,75,43,75,48,75,53,75,58,75,63,75,68,75,73,75,78,75,83,75,88,75,28,0,93,75,98,75,103,75,108,75,113,75,118,75,123,75,128,75,133,75,138,75,143,75,148,75,153,75,158,75,163,75,168,75,173,75,178,75,183,75,188,75,193,75,198,75,203,75,208,75,213,75,218,75,223,75,228,75,4,0,233,75,238,75,243,75,243,45,18,0,248,45,253,75,2,76,173,40,253,45,2,46,7,46,178,40,12,46,17,46,183,40,22,46,27,46,188,40,32,46,37,46,42,46,47,46,12,0,169,69,7,76,193,40,52,46,57,46,62,46,67,46,72,46,77,46,82,46,87,46,92,46,4,0,97,46,102,46,107,46,198,40,9,0,231,17,235,17,90,108,36,108,239,17,243,17,24,111,247,17,251,17,3,0,112,46,117,46,122,46,27,0,127,46,12,76,17,76,132,46,137,46,142,46,147,46,152,46,157,46,162,46,167,46,22,76,27,76,32,76,37,76,172,46,177,46,182,46,187,46,42,76,174,69,47,76,52,76,192,46,197,46,202,46,207,46,32,0,212,46,217,46,222,46,227,46,232,46,237,46,242,46,247,46,252,46,203,40,1,47,6,47,253,106,11,47,16,47,21,47,26,47,31,47,36,47,41,47,46,47,57,76,62,76,51,47,208,40,56,47,61,47,66,47,71,47,76,47,38,40,81,47,20,0,67,76,72,76,77,76,82,76,87,76,92,76,97,76,102,76,107,76,112,76,117,76,122,76,127,76,132,76,137,76,142,76,147,76,152,76,86,47,91,47,16,0,96,47,101,47,39,39,106,47,111,47,160,43,116,47,3,40,8,40,213,40,121,47,218,40,165,43,157,76,162,76,126,47,7,0,43,40,131,47,170,43,164,39,136,47,141,47,48,40,6,0,146,47,53,40,22,117,151,47,99,39,28,117,13,0,156,47,161,47,166,47,171,47,176,47,167,76,172,76,177,76,181,47,186,47,191,47,196,47,201,47,26,0,206,47,211,47,216,47,187,76,192,76,221,47,223,40,226,47,231,47,228,40,233,40,236,47,241,47,246,47,251,47,0,48,207,76,212,76,5,48,10,48,15,48,20,48,25,48,30,48,35,48,40,48,17,0,45,48,50,48,34,117,55,48,60,48,65,48,70,48,75,48,80,48,85,48,90,48,238,40,95,48,100,48,243,40,105,48,110,48,12,0,63,7,67,7,135,18,139,18,143,18,222,76,227,76,232,76,237,76,242,76,247,76,40,117,26,0,115,48,120,48,125,48,130,48,135,48,140,48,145,48,150,48,155,48,160,48,165,48,170,48,175,48,180,48,185,48,252,76,179,69,190,48,195,48,200,48,248,40,205,48,210,48,215,48,1,77,6,77,14,0,220,48,225,48,230,48,235,48,240,48,245,48,253,40,250,48,255,48,4,49,2,41,9,49,14,49,7,41,16,0,19,49,24,49,29,49,34,49,39,49,44,49,49,49,54,49,59,49,64,49,69,49,74,49,79,49,12,41,84,49,17,41,10,0,89,49,94,49,99,49,104,49,109,49,114,49,119,49,124,49,129,49,134,49,34,0,139,49,144,49,149,49,175,43,154,49,159,49,164,49,169,49,16,77,21,77,174,49,179,49,184,69,26,77,184,49,189,49,194,49,199,49,22,41,204,49,209,49,27,41,214,49,31,77,36,77,219,49,224,49,229,49,234,49,239,49,244,49,249,49,32,41,254,49,33,0,46,117,52,117,58,117,64,117,70,117,76,117,82,117,88,117,94,117,100,117,106,117,112,117,118,117,124,117,3,50,130,117,204,109,136,117,142,117,148,117,154,117,160,117,166,117,172,117,178,117,184,117,190,117,210,109,196,117,202,117,208,117,214,117,220,117,7,0,79,7,83,7,23,19,27,19,87,7,91,7,8,50,16,0,13,50,41,77,46,77,51,77,56,77,61,77,66,77,71,77,76,77,81,77,86,77,91,77,96,77,101,77,106,77,18,50,2,0,95,7,99,7,6,0,116,77,121,77,126,77,131,77,136,77,141,77,14,0,113,50,118,50,123,50,128,50,133,50,138,50,185,43,190,43,143,50,148,50,195,43,153,50,200,43,205,43,16,0,158,50,163,50,168,50,173,50,178,50,183,50,188,50,193,50,198,50,203,50,208,50,213,50,199,39,218,50,204,39,37,41,6,0,194,69,181,77,186,77,191,77,42,41,223,50,5,0,196,77,201,77,206,77,211,77,216,77,10,0,221,77,226,77,231,77,236,77,241,77,246,77,251,77,0,78,5,78,10,78,10,0,175,78,180,78,185,78,190,78,195,78,200,78,205,78,210,78,215,78,220,78,48,0,225,78,230,78,235,78,240,78,245,78,250,78,255,78,4,79,9,79,14,79,19,79,24,79,29,79,34,79,39,79,44,79,49,79,54,79,59,79,64,79,69,79,74,79,79,79,84,79,89,79,94,79,99,79,104,79,109,79,114,79,119,79,78,70,124,79,129,79,134,79,83,70,139,79,144,79,149,79,154,79,159,79,88,70,164,79,93,70,169,79,174,79,179,79,98,70,24,0,59,20,63,20,67,20,71,20,173,41,75,20,79,20,83,20,87,20,91,20,95,20,245,69,250,69,99,20,103,20,107,20,184,79,189,79,111,20,115,20,178,41,119,20,111,7,123,20,15,0,228,50,233,50,238,50,243,50,248,50,253,50,2,51,7,51,12,51,17,51,22,51,27,51,32,51,37,51,42,51,27,0,38,119,44,119,50,119,47,51,52,51,56,119,115,7,57,51,62,51,62,119,67,51,72,51,77,51,82,51,87,51,68,119,92,51,97,51,47,41,74,119,102,51,80,119,86,119,92,119,98,119,104,119,110,119,6,0,107,51,112,51,117,51,122,51,127,51,132,51,19,0,147,51,249,79,254,79,199,69,172,51,13,80,18,80,23,80,43,80,52,41,177,51,197,51,53,80,58,80,222,51,237,51,67,41,1,52,41,52,12,0,56,52,63,40,61,52,66,52,71,52,76,52,81,52,86,52,91,52,73,80,78,80,96,52,19,0,101,52,83,80,88,80,93,80,98,80,103,80,108,80,113,80,118,80,123,80,128,80,133,80,138,80,143,80,148,80,153,80,158,80,163,80,168,80,5,0,147,7,151,7,155,7,159,7,163,7,4,0,116,119,122,119,128,119,134,119,26,0,140,119,120,112,126,112,132,112,138,112,22,108,14,110,164,119,106,52,170,119,111,52,176,119,20,110,182,119,188,119,116,52,194,119,121,52,200,119,206,119,212,119,218,119,126,52,131,52,136,52,141,52,9,0,183,21,187,21,191,21,195,21,199,21,203,21,207,21,211,21,215,21,4,0,164,146,74,122,4,123,196,123,7,0,226,82,231,82,236,82,241,82,246,82,251,82,146,52,12,0,151,52,156,52,161,52,166,52,72,41,171,52,176,52,181,52,210,43,204,69,209,39,186,52,16,0,191,52,196,52,201,52,206,52,211,52,216,52,221,52,226,52,231,52,236,52,241,52,246,52,251,52,0,53,5,53,10,53,5,0,15,53,20,53,25,53,30,53,77,41,6,0,175,7,95,22,99,22,48,41,179,7,183,7,8,0,187,7,191,7,195,7,199,7,203,7,207,7,211,7,215,7,2,0,219,7,187,2,14,0,160,53,143,22,147,22,151,22,155,22,70,110,159,22,163,22,167,22,147,42,171,22,175,22,179,22,223,7,22,0,75,83,80,83,85,83,90,83,95,83,100,83,105,83,110,83,115,83,120,83,125,83,130,83,135,83,140,83,145,83,150,83,155,83,160,83,165,83,170,83,175,83,180,83,4,0,169,39,231,7,30,108,235,7,10,0,185,53,215,43,69,39,190,53,64,39,195,53,200,53,220,43,205,53,112,41,18,0,210,53,215,53,29,84,34,84,117,41,220,53,225,53,230,53,235,53,240,53,245,53,250,53,255,53,4,54,9,54,14,54,19,54,24,54,21,0,39,84,44,84,49,84,54,84,59,84,64,84,69,84,74,84,79,84,84,84,89,84,94,84,99,84,104,84,109,84,114,84,119,84,124,84,129,84,134,84,139,84,10,0,9,107,29,54,34,54,144,84,149,84,39,54,44,54,49,54,154,84,159,84,43,0,54,54,59,54,64,54,69,54,74,54,79,54,68,40,122,41,127,41,84,54,89,54,94,54,99,54,132,41,104,54,225,43,109,54,114,54,119,54,174,39,230,43,137,41,142,41,124,54,129,54,134,54,104,39,139,54,144,54,149,54,147,41,44,44,164,84,229,69,169,84,154,54,159,54,164,54,169,54,152,41,174,54,179,54,184,54,7,0,162,41,194,84,234,54,229,84,167,41,239,69,249,84,4,0,247,7,3,8,7,8,11,8,6,0,15,8,207,41,58,55,191,2,63,55,19,8,36,0,68,55,73,55,43,85,48,85,78,55,199,206,83,55,88,55,93,55,98,55,103,55,108,55,113,55,118,55,123,55,128,55,133,55,212,41,138,55,143,55,148,55,153,55,158,55,163,55,168,55,173,55,178,55,183,55,188,55,193,55,217,41,198,55,222,41,203,55,208,55,213,55,16,0,218,55,63,85,68,85,228,55,238,55,243,55,248,55,253,55,2,56,7,56,12,56,17,56,22,56,27,56,32,56,219,39,31,0,73,85,78,85,83,85,88,85,93,85,98,85,103,85,108,85,113,85,118,85,123,85,128,85,133,85,138,85,143,85,148,85,153,85,158,85,163,85,168,85,173,85,178,85,183,85,188,85,193,85,198,85,203,85,208,85,213,85,218,85,42,56,8,0,143,24,147,24,151,24,155,24,159,24,163,24,167,24,171,24,20,0,47,56,52,56,57,56,62,56,67,56,72,56,77,56,82,56,87,56,92,56,97,56,102,56,107,56,112,56,117,56,122,56,223,85,228,85,127,56,132,56,14,0,212,86,217,86,222,86,227,86,232,86,237,86,242,86,247,86,252,86,1,87,6,87,11,87,16,87,21,87,12,0,146,57,151,57,156,57,161,57,166,57,171,57,176,57,181,57,186,57,191,57,196,57,201,57,47,0,26,87,31,87,36,87,41,87,46,87,51,87,56,87,61,87,66,87,71,87,76,87,81,87,86,87,91,87,96,87,101,87,106,87,111,87,116,87,121,87,126,87,131,87,136,87,141,87,146,87,151,87,156,87,161,87,166,87,171,87,176,87,181,87,186,87,191,87,196,87,201,87,206,87,211,87,216,87,221,87,226,87,231,87,236,87,241,87,246,87,251,87,0,88,47,0,5,88,10,88,15,88,20,88,25,88,30,88,35,88,40,88,45,88,50,88,55,88,60,88,65,88,70,88,75,88,80,88,85,88,90,88,95,88,100,88,105,88,110,88,115,88,120,88,125,88,130,88,135,88,140,88,145,88,150,88,155,88,160,88,165,88,170,88,175,88,180,88,185,88,190,88,195,88,200,88,205,88,210,88,215,88,220,88,225,88,230,88,235,88,9,0,192,42,195,25,206,57,211,57,23,8,162,111,203,25,27,8,31,8,25,0,35,8,39,8,207,25,211,25,215,25,219,25,223,25,227,25,231,25,240,88,245,88,250,88,255,88,4,89,9,89,14,89,19,89,24,89,29,89,34,89,39,89,44,89,49,89,54,89,59,89,3,0,43,8,54,108,47,8,3,0,51,8,55,8,59,8,2,0,63,8,195,2,12,0,129,89,134,89,139,89,144,89,149,89,154,89,159,89,164,89,169,89,221,57,174,89,179,89,17,0,226,57,184,89,189,89,194,89,199,89,204,89,209,89,214,89,219,89,224,89,229,89,234,89,239,89,244,89,249,89,254,89,231,57,6,0,236,57,241,57,246,57,247,41,144,39,251,57,17,0,68,125,74,125,182,110,80,125,86,125,92,125,98,125,104,125,110,125,116,125,122,125,128,125,24,109,134,125,200,107,140,125,30,109,18,0,252,41,3,90,8,90,1,42,0,58,5,58,10,58,15,58,20,58,25,58,30,58,35,58,6,42,40,58,45,58,11,42,50,58,55,58,8,0,60,58,65,58,70,58,18,90,23,90,75,58,80,58,85,58,10,0,28,90,33,90,38,90,43,90,48,90,53,90,58,90,63,90,68,90,73,90,11,0,78,90,83,90,88,90,93,90,98,90,103,90,108,90,113,90,118,90,123,90,128,90,9,0,67,8,71,8,75,8,79,8,83,8,87,8,91,8,95,8,99,8,15,0,90,58,95,58,100,58,105,58,110,58,16,42,115,58,120,58,125,58,130,58,149,39,135,58,140,58,21,42,145,58,10,0,231,26,172,134,235,26,239,26,243,26,247,26,107,8,160,69,251,26,165,69,10,0,155,58,160,58,165,58,170,58,175,58,180,58,185,58,190,58,195,58,200,58,12,0,205,58,210,58,215,58,220,58,26,42,225,58,31,42,230,58,235,58,73,40,240,58,245,58,43,0,146,125,152,125,240,106,200,134,206,134,158,125,164,125,170,125,172,153,178,153,176,125,182,125,188,110,194,110,200,110,190,153,196,153,188,125,202,153,230,134,194,125,200,125,206,125,214,153,220,153,226,153,212,125,218,125,224,125,230,125,244,153,250,153,236,125,6,154,242,134,12,154,24,112,242,125,248,125,206,110,254,125,4,126,212,110,22,0,250,58,255,58,4,59,9,59,78,40,14,59,19,59,24,59,29,59,34,59,41,92,46,92,39,59,179,39,36,42,44,59,49,59,54,59,41,42,59,59,64,59,69,59,12,0,51,92,56,92,61,92,66,92,71,92,76,92,81,92,86,92,91,92,96,92,101,92,106,92,17,0,74,59,79,59,84,59,46,42,51,42,56,42,61,42,66,42,71,42,76,42,89,59,94,59,99,59,111,92,116,92,104,59,109,59,37,0,114,59,119,59,124,59,121,92,126,92,129,59,131,92,136,92,13,70,141,92,146,92,151,92,134,59,139,59,144,59,149,59,154,59,159,59,164,59,169,59,81,42,174,59,179,59,184,59,189,59,194,59,199,59,86,42,204,59,209,59,156,92,161,92,214,59,219,59,224,59,229,59,234,59,24,0,166,92,171,92,176,92,181,92,186,92,191,92,196,92,201,92,206,92,211,92,216,92,221,92,226,92,231,92,236,92,241,92,246,92,251,92,0,93,5,93,10,93,15,93,20,93,25,93,6,0,115,8,119,8,123,8,127,8,123,27,127,27,2,0,131,8,135,8,80,0,26,155,32,155,38,155,42,109,44,155,50,155,56,155,150,112,62,155,68,155,74,155,80,155,86,155,92,155,98,155,104,155,110,155,116,155,122,155,128,155,210,127,134,155,248,134,140,155,254,134,146,155,152,155,158,155,164,155,170,155,176,155,182,155,156,112,188,155,194,155,200,155,162,112,206,155,58,108,212,155,218,155,224,155,168,112,230,155,236,155,242,155,4,135,248,155,254,155,4,156,10,156,174,112,16,156,22,156,28,156,180,112,34,156,40,156,186,112,10,135,192,112,16,135,198,112,46,156,52,156,58,156,64,156,70,156,76,156,204,112,82,156,88,156,22,135,94,156,100,156,106,156,112,156,118,156,124,156,130,156,11,0,139,8,155,27,159,27,163,27,167,27,171,27,175,27,179,27,183,27,239,59,216,127,15,0,30,93,35,93,40,93,45,93,50,93,55,93,60,93,65,93,70,93,75,93,80,93,85,93,90,93,95,93,100,93,22,0,143,8,254,110,222,127,64,108,228,127,234,127,190,156,196,156,240,127,246,127,252,127,2,128,8,128,14,128,70,108,202,156,28,135,208,156,20,128,26,128,32,128,38,128,15,0,105,93,110,93,115,93,120,93,125,93,130,93,135,93,140,93,145,93,150,93,155,93,160,93,165,93,170,93,175,93,68,0,180,93,185,93,190,93,195,93,200,93,205,93,210,93,215,93,220,93,225,93,230,93,235,93,240,93,245,93,250,93,255,93,4,94,9,94,14,94,19,94,24,94,29,94,34,94,39,94,44,94,49,94,54,94,59,94,64,94,69,94,74,94,79,94,84,94,89,94,94,94,99,94,104,94,109,94,114,94,119,94,124,94,129,94,134,94,139,94,144,94,149,94,154,94,159,94,164,94,64,44,169,94,174,94,179,94,184,94,189,94,194,94,199,94,204,94,209,94,118,70,214,94,219,94,224,94,229,94,234,94,239,94,244,94,123,70,12,0,244,59,91,42,249,59,254,59,3,60,8,60,13,60,18,60,23,60,28,60,96,42,33,60,21,0,13,95,18,95,23,95,28,95,33,95,38,95,43,95,48,95,53,95,58,95,63,95,38,60,43,60,68,95,73,95,78,95,83,95,88,95,93,95,98,95,44,128,3,0,147,8,151,8,155,8,32,0,50,128,56,128,62,128,68,128,74,128,80,128,86,128,4,111,92,128,98,128,10,111,104,128,16,111,110,128,116,128,122,128,128,128,134,128,76,108,140,128,146,128,152,128,158,128,164,128,170,128,176,128,182,128,48,109,188,128,82,108,194,128,200,128,16,0,133,95,138,95,143,95,148,95,153,95,158,95,163,95,168,95,173,95,178,95,183,95,188,95,193,95,198,95,203,95,208,95,11,0,187,42,15,28,159,8,163,8,167,8,206,128,171,8,19,28,23,28,27,28,31,28,14,0,128,60,133,60,138,60,143,60,148,60,153,60,158,60,163,60,168,60,121,42,173,60,213,95,218,95,178,60,8,0,51,28,55,28,59,28,63,28,67,28,71,28,75,28,79,28,37,0,183,60,188,60,193,60,126,42,198,60,203,60,131,42,208,60,136,42,213,60,218,60,223,60,228,60,233,60,238,60,243,60,248,60,141,42,223,95,228,95,233,95,238,95,253,60,2,61,7,61,12,61,17,61,22,61,27,61,32,61,37,61,42,61,146,42,47,61,151,42,52,61,57,61,17,0,62,61,67,61,72,61,156,42,77,61,82,61,87,61,92,61,97,61,102,61,107,61,112,61,243,95,248,95,117,61,122,61,127,61,18,0,132,61,134,158,140,158,146,158,137,61,142,61,147,61,152,61,157,61,162,61,167,61,172,61,177,61,182,61,187,61,192,61,197,61,224,39,13,0,202,61,207,61,212,61,217,61,22,96,27,96,222,61,227,61,232,61,237,61,242,61,247,61,252,61,12,0,139,28,143,28,147,28,151,28,155,28,37,96,42,96,47,96,52,96,57,96,62,96,67,96,14,0,72,96,77,96,82,96,87,96,92,96,97,96,102,96,107,96,112,96,117,96,122,96,127,96,132,96,137,96,17,0,212,128,22,111,218,128,224,128,230,128,236,128,242,128,248,128,254,128,4,129,10,129,16,129,22,129,28,129,30,106,54,109,34,129,11,0,41,62,46,62,51,62,56,62,61,62,66,62,71,62,76,62,81,62,186,42,86,62,14,0,183,8,11,30,15,30,19,30,23,30,27,30,31,30,35,30,39,30,91,62,96,62,101,62,106,62,111,62,26,0,46,129,52,129,58,129,64,129,70,129,76,129,82,129,88,129,94,129,100,129,106,129,112,129,156,160,162,160,118,129,124,129,130,129,136,129,142,129,148,129,60,109,154,129,160,129,166,129,28,111,172,129,22,0,178,129,184,129,34,111,190,129,196,129,202,129,208,129,214,129,220,129,226,129,186,160,192,160,232,129,238,129,244,129,250,129,0,130,6,130,12,130,18,130,24,130,30,130,17,0,147,96,152,96,157,96,162,96,167,96,172,96,177,96,182,96,187,96,192,96,197,96,202,96,207,96,212,96,217,96,222,96,227,96,7,0,116,62,191,42,121,62,126,62,131,62,136,62,141,62,16,0,146,62,151,62,156,62,161,62,166,62,171,62,176,62,181,62,186,62,191,62,196,62,201,62,206,62,211,62,216,62,221,62,16,0,152,131,158,131,76,111,164,131,200,161,40,135,170,131,176,131,182,131,188,131,194,131,200,131,206,131,212,131,218,131,224,131,20,0,36,97,41,97,46,97,51,97,56,97,61,97,66,97,71,97,76,97,81,97,86,97,91,97,96,97,101,97,106,97,111,97,116,97,121,97,226,62,231,62,16,0,82,111,88,111,94,111,100,111,106,111,112,111,118,111,100,108,124,111,130,111,230,131,46,135,10,162,16,162,236,131,242,131,18,0,187,8,47,31,51,31,55,31,59,31,63,31,67,31,71,31,75,31,126,97,131,97,136,97,141,97,146,97,151,97,156,97,236,62,248,131,8,0,241,62,246,62,251,62,0,63,5,63,10,63,15,63,20,63,42,0,25,63,30,63,196,42,235,8,35,63,40,63,45,63,50,63,55,63,60,63,65,63,70,63,75,63,161,97,166,97,245,43,80,63,85,63,90,63,95,63,100,63,105,63,110,63,115,63,120,63,125,63,130,63,135,63,140,63,145,63,150,63,155,63,160,63,165,63,170,63,175,63,171,97,176,97,180,63,185,63,190,63,195,63,20,0,181,97,221,97,226,97,231,97,236,97,241,97,246,97,251,97,0,98,5,98,10,98,15,98,20,98,25,98,30,98,35,98,40,98,45,98,200,63,250,43,83,0,205,63,210,63,254,131,4,132,136,111,10,132,201,42,16,132,22,132,206,42,215,63,28,132,34,132,220,63,211,42,225,63,142,111,40,132,148,111,75,98,80,98,154,111,46,132,52,132,160,111,58,132,64,132,70,132,85,98,90,98,76,132,230,63,82,132,235,63,88,132,94,132,100,132,106,132,112,132,240,63,245,63,118,132,124,132,130,132,136,132,142,132,148,132,154,132,160,132,166,111,166,132,172,132,178,132,184,132,190,132,196,132,202,132,216,42,120,109,208,132,14,107,250,63,126,109,214,132,220,132,172,111,221,42,226,132,232,132,238,132,244,132,255,63,250,132,4,64,0,133,6,133,12,133,18,133,178,111,24,133,20,107,30,133,84,109,5,0,95,98,100,98,105,98,110,98,115,98,13,0,120,98,125,98,130,98,135,98,140,98,145,98,150,98,155,98,160,98,165,98,170,98,175,98,9,64,10,0,14,64,19,64,24,64,29,64,34,64,180,98,185,98,39,64,44,64,49,64,27,0,190,98,195,98,200,98,205,98,210,98,215,98,220,98,225,98,230,98,235,98,240,98,245,98,250,98,255,98,4,99,9,99,14,99,19,99,24,99,29,99,34,99,39,99,44,99,49,99,54,99,59,99,64,99,18,0,54,64,59,64,64,64,69,64,226,42,74,64,79,64,231,42,84,64,89,64,94,64,99,64,104,64,109,64,236,42,114,64,119,64,124,64,21,0,69,99,74,99,129,64,31,43,195,32,192,111,238,110,204,40,199,32,203,32,239,8,207,32,194,109,211,32,215,32,244,110,219,32,36,43,53,41,190,134,223,32,5,0,79,99,84,99,89,99,94,99,99,99,3,0,134,64,139,64,144,64,212,0,44,164,50,164,52,135,56,164,90,109,62,164,68,164,58,135,210,112,74,164,80,164,64,135,96,109,216,112,86,164,92,164,222,112,228,112,234,112,70,135,102,109,98,164,104,164,76,135,110,164,116,164,122,164,82,135,26,107,240,112,88,135,94,135,128,164,100,135,134,164,106,135,140,164,146,164,152,164,158,164,164,164,170,164,176,164,112,135,182,164,188,164,194,164,118,135,200,164,206,164,212,164,218,164,224,164,230,164,236,164,242,164,248,164,254,164,4,165,124,135,10,165,16,165,22,165,28,165,34,165,40,165,46,165,52,165,58,165,130,135,64,165,136,135,70,165,142,135,76,165,148,135,82,165,88,165,94,165,100,165,106,165,112,165,118,165,154,135,124,165,160,135,130,165,136,165,142,165,148,165,154,165,166,135,160,165,166,165,172,165,172,135,178,165,184,165,190,165,196,165,202,165,208,165,214,165,220,165,226,165,232,165,238,165,244,165,250,165,0,166,6,166,12,166,18,166,24,166,30,166,246,112,36,166,42,166,48,166,178,135,54,166,60,166,66,166,252,112,72,166,78,166,84,166,90,166,96,166,102,166,108,166,2,113,114,166,120,166,126,166,8,113,132,166,138,166,144,166,184,135,150,166,190,135,196,135,14,113,156,166,162,166,202,135,168,166,174,166,208,135,20,113,180,166,214,135,220,135,108,109,186,166,226,135,192,166,198,166,204,166,232,135,210,166,216,166,222,166,238,135,228,166,234,166,240,166,26,113,246,166,252,166,2,167,32,113,244,135,8,167,14,167,250,135,20,167,38,113,26,167,32,167,38,167,0,136,44,167,50,167,56,167,44,113,62,167,68,167,50,113,56,113,74,167,80,167,86,167,6,136,92,167,98,167,104,167,110,167,116,167,122,167,128,167,134,167,140,167,146,167,152,167,158,167,164,167,170,167,176,167,182,167,188,167,8,0,149,64,154,64,159,64,164,64,241,42,169,64,174,64,246,42,5,0,96,108,243,8,251,42,247,8,251,8,9,0,104,99,109,99,114,99,119,99,124,99,129,99,134,99,139,99,144,99,14,0,179,64,184,64,189,64,194,64,149,99,154,99,199,64,0,43,204,64,209,64,214,64,219,64,224,64,229,64,18,0,234,64,239,64,244,64,5,43,249,64,254,64,10,43,3,65,8,65,13,65,18,65,23,65,15,43,28,65,33,65,38,65,43,65,48,65,10,0,53,65,58,65,63,65,68,65,73,65,78,65,83,65,88,65,20,43,25,43,10,0,93,65,98,65,30,43,103,65,35,43,40,43,108,65,113,65,118,65,123,65,7,0,159,99,164,99,169,99,174,99,179,99,184,99,255,8,14,0,128,65,133,65,138,65,143,65,148,65,153,65,158,65,163,65,168,65,173,65,255,43,18,40,178,65,183,65,14,0,188,65,193,65,198,65,45,43,203,65,43,70,189,99,84,39,208,65,19,39,213,65,218,65,223,65,228,65,4,0,233,65,4,44,238,65,109,39,23,0,243,65,248,65,253,65,2,66,7,66,12,66,17,66,22,66,50,43,27,66,32,66,37,66,42,66,47,66,52,66,57,66,62,66,67,66,72,66,77,66,82,66,87,66,92,66,5,0,3,9,7,9,11,9,15,9,19,9,78,0,194,99,199,99,204,99,209,99,214,99,219,99,224,99,229,99,234,99,239,99,244,99,249,99,254,99,3,100,8,100,13,100,18,100,23,100,28,100,33,100,38,100,43,100,48,100,53,100,58,100,63,100,68,100,73,100,78,100,83,100,88,100,93,100,98,100,103,100,108,100,113,100,118,100,123,100,128,100,133,100,138,100,143,100,148,100,153,100,158,100,163,100,168,100,173,100,178,100,183,100,188,100,193,100,198,100,203,100,208,100,213,100,218,100,223,100,228,100,233,100,238,100,243,100,248,100,253,100,2,101,7,101,12,101,17,101,22,101,27,101,32,101,37,101,42,101,47,101,52,101,57,101,138,70,23,9,5,0,97,66,55,43,102,66,107,66,112,66,13,0,117,66,122,66,60,43,127,66,132,66,137,66,142,66,147,66,152,66,157,66,162,66,167,66,65,43,6,0,211,33,255,69,27,9,239,2,215,33,236,43,24,0,62,101,67,101,72,101,77,101,82,101,87,101,92,101,97,101,102,101,107,101,112,101,117,101,122,101,127,101,132,101,137,101,142,101,172,66,147,101,152,101,157,101,162,101,167,101,172,101,5,0,177,101,182,101,187,101,192,101,197,101,81,0,202,101,207,101,212,101,217,101,222,101,227,101,232,101,237,101,242,101,247,101,252,101,1,102,6,102,11,102,16,102,21,102,26,102,31,102,36,102,41,102,46,102,51,102,56,102,61,102,66,102,71,102,76,102,81,102,86,102,91,102,96,102,101,102,106,102,111,102,116,102,121,102,126,102,131,102,136,102,141,102,146,102,151,102,156,102,161,102,166,102,171,102,176,102,181,102,186,102,191,102,196,102,201,102,206,102,211,102,216,102,221,102,226,102,231,102,236,102,241,102,246,102,251,102,0,103,5,103,10,103,15,103,20,103,25,103,30,103,35,103,40,103,45,103,50,103,55,103,60,103,65,103,70,103,75,103,80,103,85,103,90,103,15,0,36,133,42,133,48,133,54,133,60,133,66,133,72,133,78,133,84,133,114,109,90,133,96,133,102,133,108,133,114,133,8,0,120,133,126,133,132,133,138,133,144,133,150,133,156,133,162,133,22,0,168,133,174,133,180,133,132,106,186,133,192,133,198,133,204,133,210,133,216,133,222,133,228,133,184,111,234,133,240,133,246,133,252,133,246,106,2,134,8,134,14,134,20,134,31,0,95,103,100,103,105,103,110,103,115,103,120,103,125,103,130,103,135,103,4,39,140,103,143,70,145,103,150,103,155,103,160,103,165,103,170,103,175,103,14,39,180,103,185,103,190,103,195,103,200,103,205,103,210,103,215,103,220,103,9,39,225,103,27,0,177,66,182,66,187,66,192,66,197,66,202,66,207,66,212,66,217,66,222,66,227,66,232,66,237,66,242,66,247,66,252,66,1,67,6,67,11,67,16,67,21,67,26,67,31,67,36,67,41,67,46,67,51,67,4,0,31,9,199,2,35,9,39,9,9,0,56,67,61,67,66,67,71,67,76,67,81,67,86,67,91,67,96,67,57,0,121,109,230,103,15,107,101,67,106,67,70,43,111,67,116,67,75,43,121,67,126,67,131,67,136,67,141,67,146,67,151,67,156,67,161,67,166,67,171,67,80,43,176,67,48,70,235,103,181,67,240,103,127,109,186,67,245,103,250,103,53,70,255,103,4,104,85,43,191,67,196,67,201,67,206,67,211,67,216,67,221,67,226,67,231,67,236,67,9,104,14,104,241,67,246,67,251,67,0,68,5,68,10,68,15,68,20,68,25,68,30,68,35,68,19,0,21,107,40,68,90,43,83,40,45,68,50,68,55,68,60,68,95,43,65,68,70,68,74,44,148,70,75,68,80,68,85,68,88,40,89,39,93,40,14,0,90,68,95,68,9,44,14,44,23,40,100,68,105,68,110,68,154,39,189,39,159,39,98,40,103,40,115,68,6,0,19,104,24,104,29,104,34,104,39,104,44,104,25,0,199,34,203,34,207,34,211,34,215,34,219,34,223,34,227,34,231,34,235,34,239,34,243,34,178,110,214,110,255,2,247,34,84,108,251,34,255,34,3,3,3,35,7,35,11,35,15,35,19,35,63,0,49,104,54,104,59,104,64,104,69,104,74,104,79,104,120,68,84,104,89,104,125,68,94,104,99,104,104,104,109,104,114,104,119,104,124,104,129,104,134,104,139,104,144,104,149,104,154,104,159,104,164,104,169,104,174,104,179,104,130,68,184,104,189,104,194,104,199,104,204,104,209,104,214,104,135,68,219,104,224,104,229,104,234,104,239,104,244,104,249,104,254,104,3,105,8,105,140,68,145,68,13,105,18,105,23,105,28,105,33,105,38,105,43,105,48,105,150,68,155,68,160,68,165,68,170,68,6,0,26,134,32,134,38,134,190,111,42,112,44,134,3,0,175,68,180,68,100,43,11,0,185,68,190,68,195,68,200,68,205,68,210,68,215,68,220,68,225,68,230,68,105,43,22,0,235,68,240,68,245,68,250,68,255,68,4,69,9,69,14,69,110,43,19,69,115,43,24,69,29,69,34,69,39,69,120,43,234,39,44,69,239,39,49,69,125,43,54,69,9,0,130,43,59,69,135,43,50,134,64,69,69,69,74,69,79,69,84,69,10,0,63,105,68,105,73,105,78,105,83,105,88,105,93,105,98,105,103,105,89,69,10,0,94,69,140,43,99,69,104,69,109,69,114,69,114,39,24,39,108,105,113,105,8,0,184,114,220,114,24,115,155,43,66,115,114,115,120,115,126,115,6,0,225,73,245,73,250,73,84,74,209,74,214,74,11,0,220,73,235,73,255,73,4,74,9,74,14,74,39,74,104,74,114,74,194,74,239,74,13,0,24,74,34,74,44,74,49,74,89,74,124,74,134,74,139,74,159,74,169,74,224,74,13,75,18,75,10,0,240,73,19,74,69,74,74,74,94,74,109,74,144,74,154,74,174,74,249,74,8,0,230,73,79,74,179,74,184,74,199,74,204,74,229,74,254,74,8,0,29,74,54,74,99,74,119,74,189,74,219,74,234,74,23,75,4,0,59,74,149,74,3,75,8,75,4,0,64,74,129,74,164,74,244,74,5,0,252,115,2,116,14,116,20,116,26,116,5,0,38,116,32,107,44,116,50,116,56,116,6,0,238,138,250,138,0,139,158,116,176,116,236,116,2,0,74,116,146,116,3,0,186,109,134,116,6,139,3,0,244,138,164,116,218,116,4,0,68,116,212,116,224,116,198,109,3,0,180,109,170,116,16,117,5,0,86,116,92,116,122,116,128,116,242,116,3,0,98,116,116,116,248,116,4,0,152,116,200,116,4,117,10,117,3,0,80,116,140,116,188,116,4,0,194,116,192,109,230,116,254,116,4,0,62,116,104,116,182,116,206,116,8,0,28,50,58,50,63,50,73,50,78,50,189,69,103,50,180,43,14,0,23,50,33,50,38,50,43,50,48,50,53,50,68,50,83,50,58,40,88,50,111,77,93,50,98,50,108,50,12,0,214,141,220,141,226,141,184,141,48,112,54,112,56,134,190,141,196,141,202,141,60,112,208,141,7,0,232,141,62,134,238,141,244,141,250,141,68,134,0,142,7,0,6,142,12,142,18,142,66,112,24,142,30,142,36,142,3,0,42,142,48,142,54,142,7,0,60,142,72,112,66,142,72,142,78,142,78,112,84,142,4,0,90,142,84,112,96,142,102,142,5,0,108,142,114,142,120,142,90,112,126,142,4,0,74,134,80,134,96,112,86,134,5,0,132,142,138,142,144,142,102,112,150,142,7,0,156,142,92,134,108,112,162,142,168,142,114,112,174,142,5,0,180,142,186,142,192,142,198,142,204,142,4,0,210,142,216,142,222,142,98,134,6,0,228,142,234,142,240,142,104,134,246,142,252,142,4,0,40,78,80,78,105,78,110,78,4,0,35,78,85,78,140,78,145,78,3,0,55,78,100,78,135,78,3,0,75,78,130,78,150,78,2,0,45,78,120,78,4,0,25,78,30,78,60,78,90,78,3,0,125,78,155,78,160,78,2,0,15,78,170,78,4,0,20,78,95,78,115,78,165,78,3,0,50,78,65,78,70,78,16,0,160,144,0,118,18,118,216,109,66,118,84,118,90,118,96,118,190,144,242,107,156,118,162,118,210,118,216,118,10,108,252,118,8,0,232,117,30,118,78,118,110,134,114,118,120,118,222,118,228,118,3,0,24,118,102,118,144,118,3,0,36,118,132,118,16,108,3,0,244,117,202,144,20,119,8,0,250,117,42,118,168,118,240,109,116,134,2,110,14,119,8,110,3,0,178,144,150,118,192,118,7,0,12,118,60,118,184,144,228,109,234,109,198,118,234,118,4,0,54,118,72,118,108,118,174,118,3,0,248,107,180,118,204,118,8,0,238,117,172,144,48,118,196,144,222,109,4,108,208,144,252,109,3,0,126,118,240,118,246,118,4,0,254,107,138,118,2,119,8,119,5,0,166,144,186,118,246,109,26,119,32,119,8,0,142,51,3,80,28,80,187,51,240,39,211,43,217,51,11,52,3,0,62,41,63,80,210,39,9,0,152,51,167,51,202,51,127,7,6,52,16,52,21,52,36,52,51,52,5,0,137,51,33,80,48,80,192,51,31,52,2,0,57,41,68,80,4,0,119,7,182,51,200,39,205,39,2,0,157,51,8,80,4,0,123,7,212,51,242,51,252,51,3,0,162,51,26,52,46,52,3,0,235,39,38,80,131,7,5,0,213,80,218,80,228,80,233,80,238,80,3,0,188,80,193,80,198,80,3,0,178,80,183,80,203,80,3,0,173,80,208,80,223,80,2,0,127,81,132,81,13,0,243,80,253,80,17,81,57,81,107,81,177,81,197,81,202,81,46,82,76,82,146,119,96,82,101,82,8,0,82,81,102,81,182,81,21,82,81,82,86,82,171,82,108,70,4,0,87,81,122,81,162,81,11,82,6,0,72,81,117,81,167,81,172,81,192,81,212,81,11,0,152,119,22,81,32,81,242,81,247,81,1,82,6,82,16,82,66,82,71,82,166,82,5,0,248,80,26,82,31,82,41,82,131,82,8,0,158,119,116,82,121,82,176,82,181,82,186,82,191,82,196,82,12,0,62,81,67,81,77,81,92,81,97,81,152,81,187,81,222,81,51,82,126,82,156,82,161,82,5,0,52,81,112,81,237,81,36,82,111,82,13,0,27,81,37,81,42,81,137,81,142,81,147,81,157,81,217,81,227,81,56,82,61,82,136,82,141,82,6,0,2,81,7,81,12,81,47,81,146,82,103,70,5,0,207,81,232,81,252,81,91,82,151,82,151,0,254,119,4,120,10,120,140,134,62,146,16,120,22,120,46,120,52,120,58,120,64,120,70,120,76,120,82,120,92,146,98,146,88,120,94,120,100,120,106,120,118,120,136,120,142,120,26,110,154,120,160,120,166,120,172,120,184,120,196,120,38,110,208,120,44,110,134,146,220,120,50,110,232,120,238,120,158,134,18,121,234,106,24,121,48,121,60,121,68,110,176,146,182,146,66,121,72,121,78,121,84,121,96,121,74,110,102,121,108,121,114,121,120,121,126,121,80,110,132,121,144,121,150,121,86,110,156,121,162,121,168,121,174,121,186,121,92,110,192,121,198,121,204,121,210,121,216,121,98,110,222,121,228,121,234,121,240,121,252,121,14,122,44,122,50,122,56,122,62,122,68,122,86,122,98,122,104,122,116,122,122,122,104,110,134,122,140,122,152,122,170,122,176,122,188,122,194,122,200,122,110,110,212,122,224,122,230,122,236,122,242,122,10,123,16,123,252,106,22,123,28,123,34,123,40,123,248,146,254,146,52,123,4,147,10,147,58,123,64,123,70,123,28,147,76,123,176,134,34,147,82,123,94,123,100,123,106,123,112,123,118,123,124,123,136,123,142,123,148,123,154,123,166,123,172,123,178,123,184,123,190,123,0,109,202,123,208,123,116,110,214,123,220,123,226,123,238,123,244,123,194,107,11,0,26,146,236,119,242,119,28,120,124,120,226,120,42,121,180,121,246,121,32,122,92,122,32,0,32,146,38,146,224,119,248,119,148,120,214,120,140,146,244,120,250,120,0,121,6,121,12,121,56,110,30,121,36,121,54,121,90,121,138,121,2,122,20,122,38,122,80,122,146,122,164,122,218,122,248,122,254,122,46,123,22,147,160,123,250,108,6,109,22,0,230,119,34,120,40,120,112,120,130,120,32,110,178,120,190,120,202,120,62,110,28,108,8,122,26,122,110,122,128,122,158,122,182,122,206,122,88,123,130,123,244,108,232,123,5,0,209,69,35,53,87,41,70,53,35,83,5,0,40,53,60,53,65,53,25,83,105,53,4,0,45,53,50,53,82,41,80,53,5,0,15,83,30,83,40,83,50,83,100,53,5,0,20,83,85,53,90,53,55,83,110,53,3,0,55,53,60,83,97,41,6,0,10,83,75,53,92,41,45,83,95,53,115,53,5,0,135,53,140,53,145,53,150,53,155,53,3,0,120,53,125,53,130,53,2,0,165,53,170,53,3,0,113,70,102,41,107,41,3,0,24,84,175,53,180,53,6,0,199,54,189,84,204,54,209,54,214,54,3,55,5,0,199,84,219,54,209,84,214,84,219,84,2,0,229,54,239,54,3,0,174,84,244,54,224,84,2,0,234,84,239,84,6,0,157,41,244,84,254,54,254,84,3,85,13,85,10,0,189,54,179,84,194,54,184,84,204,84,224,54,249,54,234,69,8,85,18,85,5,0,255,7,202,41,28,85,38,55,214,39,12,0,177,41,251,7,182,41,187,41,13,55,18,55,23,55,28,55,33,55,53,55,33,85,38,85,6,0,172,41,249,69,192,41,197,41,43,55,48,55,3,0,244,69,8,55,23,85,3,0,223,55,233,55,37,56,7,0,78,124,108,124,156,124,162,124,174,124,204,124,222,124,4,0,90,124,12,109,164,110,32,125,10,0,6,124,36,124,42,124,54,124,96,124,114,124,144,124,240,124,252,124,170,110,9,0,122,110,34,108,146,110,150,124,198,124,216,124,26,125,38,125,56,125,7,0,0,124,30,124,132,124,138,124,194,134,14,125,20,125,13,0,12,124,48,124,60,124,72,124,102,124,120,124,168,124,186,124,18,109,210,124,246,124,44,125,50,125,5,0,66,124,134,110,152,110,234,124,62,125,14,0,18,124,24,124,128,110,84,124,126,124,140,110,180,124,158,110,192,124,228,124,218,149,2,125,8,125,176,110,8,0,149,178,147,56,162,56,27,86,31,57,177,86,197,86,202,86,12,0,157,56,2,86,32,86,37,86,252,56,11,57,254,69,21,57,67,86,122,86,147,86,8,70,2,0,172,56,59,44,7,0,167,56,92,86,137,86,111,57,121,57,126,57,131,57,4,0,227,56,102,86,192,86,116,57,4,0,222,56,237,56,152,86,172,86,9,0,54,44,202,56,207,56,72,86,3,70,56,57,66,57,76,57,132,86,10,0,248,85,232,41,232,56,6,57,57,86,235,43,51,57,107,86,112,86,96,57,2,0,46,57,187,86,5,0,142,56,238,85,217,56,62,86,117,86,5,0,237,41,52,86,86,57,127,86,136,57,4,0,243,85,182,56,97,86,106,57,2,0,17,86,242,56,5,0,152,56,49,44,177,56,26,57,91,57,6,0,227,41,253,85,7,86,212,56,1,57,101,57,2,0,77,86,61,57,5,0,42,86,192,56,247,56,71,57,141,57,9,0,137,56,187,56,47,86,197,56,16,57,242,41,81,57,157,86,182,86,5,0,12,86,36,57,41,57,162,86,167,86,9,0,64,89,69,89,74,89,89,89,99,89,104,89,114,89,124,89,216,57,5,0,79,89,84,89,94,89,109,89,119,89,3,0,133,90,138,90,143,90,3,0,148,90,153,90,158,90,3,0,163,90,168,90,173,90,5,0,178,90,183,90,188,90,193,90,198,90,3,0,203,90,208,90,213,90,2,0,218,90,223,90,2,0,228,90,233,90,2,0,238,90,243,90,2,0,248,90,253,90,5,0,7,91,12,91,32,91,117,91,16,92,7,0,97,91,102,91,107,91,137,91,152,91,227,91,237,91,8,0,22,91,47,91,62,91,72,91,77,91,87,91,177,91,187,91,5,0,67,91,82,91,122,91,202,91,21,92,6,0,27,91,112,91,157,91,162,91,167,91,197,91,7,0,2,91,52,91,92,91,147,91,182,91,212,91,217,91,4,0,57,91,142,91,222,91,247,91,4,0,127,91,172,91,192,91,252,91,6,0,17,91,42,91,132,91,11,92,36,92,150,58,8,0,37,91,207,91,232,91,242,91,1,92,6,92,26,92,31,92,8,0,58,126,88,126,124,126,172,126,178,126,238,126,60,127,78,127,8,0,54,154,70,126,100,126,78,154,142,126,230,110,232,126,36,127,9,0,40,126,94,126,112,126,130,126,190,126,208,126,236,110,42,127,206,107,8,0,148,126,160,126,214,126,244,126,6,127,54,136,126,154,24,127,5,0,28,126,40,108,106,126,90,154,96,154,9,0,60,154,46,126,52,126,218,110,136,126,184,126,202,126,242,110,12,127,8,0,64,126,82,126,118,126,154,126,2,107,250,126,0,127,90,127,5,0,76,126,196,126,220,126,66,127,96,127,5,0,10,126,224,110,48,127,54,127,72,127,4,0,22,126,72,154,18,127,84,127,4,0,34,126,46,108,166,126,30,127,2,0,16,126,226,126,14,0,222,154,248,110,114,127,120,127,126,127,52,108,132,127,138,127,144,127,30,112,180,127,186,127,192,127,198,127,10,0,216,154,102,127,108,127,150,127,156,127,162,127,168,127,174,127,36,109,204,127,9,0,73,60,78,60,128,70,83,60,93,60,101,42,106,42,111,42,116,42,6,0,68,60,23,70,88,60,108,60,79,39,34,39,13,0,48,60,53,60,58,60,63,60,49,39,133,70,98,60,103,60,184,39,113,60,118,60,240,43,123,60,3,0,1,62,16,62,166,42,3,0,6,62,21,62,171,42,3,0,11,62,229,39,26,62,3,0,161,42,36,62,176,42,2,0,31,62,181,42,4,0,174,130,70,111,216,130,246,160,5,0,114,130,120,130,180,130,44,131,62,131,7,0,78,130,84,130,204,160,38,131,240,160,8,107,140,131,6,0,60,130,216,160,222,160,228,160,234,130,104,131,6,0,54,130,66,130,126,130,52,111,64,111,20,131,4,0,88,108,40,111,26,131,92,131,6,0,102,130,168,130,210,130,32,131,94,108,128,131,4,0,90,130,134,131,36,112,146,131,4,0,198,160,210,160,2,131,8,131,7,0,138,130,46,111,144,130,150,130,162,130,80,131,86,131,3,0,198,130,14,131,66,109,5,0,42,130,48,130,156,130,110,131,116,131,4,0,204,130,228,130,98,131,122,131,6,0,36,130,72,130,96,130,58,111,186,130,252,130,5,0,108,130,132,130,192,130,56,131,68,131,5,0,222,130,240,130,246,130,50,131,74,131,5,0,50,98,55,98,60,98,65,98,70,98,7,0,186,97,191,97,196,97,201,97,206,97,211,97,216,97,26,0,46,171,52,171,58,171,64,171,70,171,76,171,82,171,88,171,94,171,100,171,106,171,112,171,118,171,124,171,130,171,136,171,142,171,148,171,154,171,160,171,166,171,172,171,178,171,184,171,190,171,196,171,37,0,202,171,208,171,214,171,220,171,226,171,232,171,238,171,244,171,250,171,0,172,6,172,12,172,18,172,24,172,30,172,36,172,42,172,48,172,54,172,60,172,66,172,72,172,78,172,84,172,90,172,96,172,102,172,108,172,114,172,12,136,18,136,62,113,24,136,30,136,120,172,126,172,132,172,37,0,138,172,144,172,150,172,156,172,162,172,168,172,174,172,180,172,186,172,192,172,198,172,204,172,210,172,216,172,222,172,228,172,234,172,240,172,246,172,68,113,252,172,2,173,8,173,14,173,20,173,26,173,32,173,74,113,38,173,44,173,50,173,80,113,56,173,36,136,62,173,42,136,68,173,35,0,74,173,80,173,86,173,92,173,98,173,104,173,110,173,116,173,122,173,128,173,134,173,140,173,146,173,86,113,152,173,158,173,92,113,98,113,104,113,164,173,170,173,176,173,182,173,188,173,194,173,200,173,206,173,48,136,212,173,110,113,218,173,224,173,230,173,116,113,236,173,5,0,236,112,84,111,114,111,192,135,212,112,5,0,202,134,242,106,224,112,218,112,230,112,16,0,131,107,213,106,123,106,151,0,143,107,217,108,219,106,229,111,52,2,144,2,59,107,179,107,231,106,232,1,241,108,191,107,5,0,226,134,196,110,146,112,72,108,169,0,17,0,49,0,73,0,28,0,215,107,223,105,53,107,116,1,221,107,193,108,43,0,68,2,128,1,169,105,15,112,99,106,48,1,176,1,8,0,137,107,149,107,161,107,229,108,225,106,167,107,173,107,185,107,22,0,52,0,31,0,39,106,10,0,241,111,163,105,160,1,165,106,63,106,171,106,199,105,0,2,75,106,201,106,220,1,95,107,108,2,229,105,157,105,196,1,21,106,111,106,9,0,13,0,55,0,173,212,85,0,72,1,81,106,144,1,154,0,100,2,9,0,117,106,96,1,228,1,64,2,141,106,72,2,129,106,81,109,184,1,5,0,41,107,71,107,15,106,101,107,145,105,4,0,104,109,98,109,28,107,92,109,5,0,205,111,76,1,160,0,132,2,154,205,28,0,121,108,127,108,103,0,139,108,145,0,109,0,145,108,223,108,115,0,47,107,155,107,157,108,128,2,76,0,159,106,181,108,247,111,187,108,12,2,163,0,253,111,235,108,199,108,21,112,113,107,125,107,211,108,41,219,8,0,52,1,147,106,124,0,172,1,244,1,60,2,75,109,175,0,9,0,136,1,168,1,112,0,121,105,56,1,152,1,77,107,156,1,151,105,11,0,48,2,4,0,127,0,32,2,252,1,69,106,7,0,93,106,84,1,227,107,200,1,17,0,180,1,88,2,164,1,64,1,163,108,148,1,92,1,104,1,133,0,4,2,9,106,68,1,247,105,217,105,76,2,224,1,64,0,6,0,133,108,151,108,217,111,120,2,3,112,183,106,5,0,45,106,136,0,189,106,89,107,105,106,8,0,51,106,118,0,65,107,88,0,140,2,177,106,195,106,40,2,10,0,100,0,211,111,83,107,208,1,9,112,205,108,107,107,119,107,140,1,207,106,5,0,95,3,198,135,242,112,102,135,0,111,5,0,36,2,94,0,212,1,40,0,97,0,18,0,70,0,56,2,188,1,106,0,253,105,58,0,153,106,37,0,79,0,82,0,236,1,240,1,166,0,91,0,248,1,61,0,22,0,67,0,4,0,216,135,222,135,210,135,66,108,10,0,25,0,216,1,19,0,34,0,84,2,100,1,80,1,36,1,88,1,120,1,16,0,235,111,169,108,175,108,142,0,3,106,108,1,211,105,80,2,139,105,57,106,121,0,124,1,132,1,46,0,87,106,44,2,9,0,193,105,205,105,235,105,133,105,181,105,192,1,241,105,130,0,175,105,5,0,139,0,212,2,181,0,223,111,116,2,3,0,148,2,184,0,216,2,2,0,54,135,106,113,2,0,148,0,136,2,2,0,112,2,24,2,2,0,20,2,16,2,2,0,152,2,157,0,3,0,104,109,98,109,28,107,4,0,242,106,224,112,218,112,230,112,3,0,98,109,28,107,92,109,27,0,193,105,205,105,253,105,19,0,133,105,3,106,108,1,64,1,211,105,181,105,148,1,92,1,34,0,57,106,104,1,124,1,241,105,132,1,9,106,175,105,100,1,247,105,87,106,217,105,88,1,25,0,80,1,19,0,193,105,205,105,253,105,133,105,108,1,64,1,211,105,181,105,148,1,57,106,104,1,124,1,241,105,132,1,9,106,175,105,247,105,217,105,88,1,193,0,180,1,70,0,136,1,121,108,88,2,56,2,117,106,131,107,193,105,133,108,188,1,164,1,139,108,168,1,205,105,49,0,25,0,106,0,52,0,73,0,48,2,213,106,123,106,145,108,112,0,41,107,216,1,137,107,76,1,96,1,228,1,64,2,235,105,28,0,143,107,141,106,52,1,217,108,149,107,223,108,215,107,253,105,19,0,133,105,31,0,3,106,47,107,155,107,13,0,219,106,108,1,55,0,39,106,64,1,10,0,211,105,45,106,51,106,181,105,72,2,139,105,157,108,58,0,223,105,53,107,116,1,129,106,148,1,161,107,221,107,59,107,229,108,92,1,76,0,34,0,4,0,57,106,153,106,121,105,37,0,56,1,121,0,104,1,159,106,79,0,124,0,163,105,212,1,127,0,65,107,160,1,181,108,172,1,244,1,82,0,40,0,32,2,236,1,187,108,192,1,152,1,193,108,71,107,124,1,241,105,132,1,85,0,72,1,130,0,84,2,133,0,165,106,88,0,4,2,43,0,252,1,60,2,68,2,9,106,63,106,77,107,225,106,171,106,69,106,199,105,15,106,128,1,169,105,167,107,175,105,46,0,177,106,156,1,183,106,240,1,173,107,179,107,189,106,7,0,151,105,100,1,247,105,195,106,231,106,91,0,80,1,68,1,36,1,75,106,248,1,89,107,201,106,81,106,87,106,93,106,217,105,88,1,99,106,76,2,48,1,220,1,232,1,95,107,81,109,185,107,61,0,101,107,184,1,176,1,84,1,94,0,227,107,36,2,144,1,107,107,22,0,113,107,119,107,229,105,120,1,157,105,154,205,241,108,97,0,125,107,191,107,200,1,105,106,207,106,67,0,145,105,21,106,111,106,2,0,2,39,138,178,4,0,2,39,138,178,28,1,1,0,2,0,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,2,39,28,1,1,0,138,178,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,3,0,138,178,2,39,1,0,2,0,2,39,1,0,2,0,2,39,1,0,4,0,2,39,138,178,1,0,28,1,2,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,2,0,241,23,249,23,2,39,2,39,3,0,2,39,1,0,138,178,3,0,2,39,1,0,138,178,4,0,138,178,28,1,2,39,1,0,3,0,138,178,1,0,2,39,2,0,2,39,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,4,0,138,178,1,0,28,1,2,39,2,0,2,39,138,178,2,0,2,39,1,0,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,28,1,1,0,138,178,2,39,4,0,2,39,1,0,138,178,28,1,2,0,241,23,249,23,2,39,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,138,178,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,1,0,2,39,3,0,2,39,138,178,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,1,0,28,1,3,0,2,39,138,178,1,0,4,0,2,39,1,0,28,1,138,178,4,0,138,178,2,39,1,0,28,1,2,0,241,23,249,23,2,39,2,39,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,2,39,28,1,1,0,2,0,241,23,249,23,2,39,2,39,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,138,178,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,1,0,28,1,4,0,2,39,1,0,138,178,28,1,2,0,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,1,0,28,1,2,39,2,0,138,178,2,39,4,0,2,39,1,0,138,178,28,1,4,0,1,0,28,1,138,178,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,138,178,2,0,2,39,1,0,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,3,0,2,39,1,0,138,178,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,138,178,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,2,0,2,39,1,0,4,0,2,39,1,0,138,178,28,1,4,0,138,178,2,39,28,1,1,0,4,0,2,39,138,178,1,0,28,1,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,2,0,2,39,138,178,4,0,2,39,138,178,1,0,28,1,2,0,241,23,249,23,2,39,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,4,0,138,178,1,0,28,1,2,39,2,0,1,0,2,39,2,0,241,23,249,23,2,39,2,39,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,1,0,28,1,2,39,3,0,2,39,156,70,138,178,4,0,1,0,28,1,2,39,138,178,4,0,2,39,138,178,1,0,28,1,4,0,1,0,138,178,2,39,28,1,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,138,178,28,1,2,39,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,2,39,1,0,28,1,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,2,39,28,1,1,0,138,178,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,3,0,2,39,1,0,138,178,4,0,2,39,138,178,1,0,28,1,4,0,138,178,28,1,2,39,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,3,0,2,39,138,178,1,0,4,0,2,39,1,0,28,1,138,178,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,2,0,2,39,1,0,2,0,2,39,138,178,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,241,23,249,23,2,39,2,39,4,0,1,0,28,1,2,39,138,178,4,0,2,39,138,178,28,1,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,138,178,2,0,2,39,138,178,2,0,2,39,138,178,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,28,1,1,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,2,39,1,0,28,1,2,0,2,39,1,0,2,0,241,23,249,23,2,39,2,39,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,2,0,2,39,138,178,3,0,2,39,138,178,1,0,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,2,39,1,0,28,1,4,0,2,39,1,0,138,178,28,1,3,0,2,39,138,178,1,0,2,0,138,178,2,39,4,0,138,178,1,0,28,1,2,39,3,0,138,178,1,0,2,39,2,0,2,39,138,178,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,1,0,28,1,2,39,2,0,2,39,1,0,2,0,138,178,2,39,4,0,2,39,138,178,1,0,28,1,4,0,138,178,1,0,28,1,2,39,2,0,2,39,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,2,0,241,23,249,23,2,39,2,39,2,0,2,39,138,178,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,3,0,2,39,138,178,1,0,4,0,138,178,1,0,28,1,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,2,39,1,0,2,0,241,23,249,23,2,39,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,3,0,2,39,138,178,1,0,3,0,2,39,138,178,1,0,2,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,28,1,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,3,0,138,178,2,39,1,0,3,0,2,39,138,178,1,0,2,0,2,39,1,0,2,0,2,39,138,178,2,0,2,39,138,178,4,0,2,39,1,0,28,1,138,178,2,0,2,39,138,178,4,0,138,178,1,0,28,1,2,39,2,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,1,0,28,1,138,178,2,39,4,0,1,0,28,1,2,39,138,178,3,0,2,39,1,0,138,178,4,0,1,0,28,1,2,39,138,178,4,0,138,178,28,1,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,3,0,2,39,1,0,138,178,3,0,2,39,138,178,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,28,1,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,138,178,2,0,138,178,2,39,2,0,2,39,1,0,2,0,138,178,2,39,3,0,2,39,1,0,138,178,4,0,138,178,1,0,28,1,2,39,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,138,178,4,0,2,39,138,178,1,0,28,1,4,0,138,178,1,0,28,1,2,39,3,0,2,39,138,178,1,0,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,3,0,2,39,138,178,1,0,3,0,2,39,138,178,1,0,4,0,1,0,28,1,138,178,2,39,3,0,1,0,138,178,2,39,3,0,2,39,138,178,1,0,3,0,2,39,138,178,1,0,3,0,1,0,138,178,2,39,3,0,1,0,138,178,2,39,4,0,1,0,28,1,138,178,2,39,4,0,1,0,28,1,138,178,2,39,4,0,1,0,138,178,28,1,2,39,3,0,1,0,138,178,2,39,4,0,2,39,1,0,28,1,138,178,3,0,135,205,125,208,22,206,2,0,124,205,22,206,2,0,124,205,22,206,2,0,125,208,22,206,3,0,135,205,22,206,125,208,2,0,135,205,22,206,2,0,124,205,22,206,2,0,124,205,22,206,2,0,124,205,22,206,2,0,124,205,22,206,3,0,135,205,22,206,125,208,2,0,124,205,22,206,2,0,135,205,22,206,2,0,124,205,22,206,2,0,22,206,135,205,2,0,22,206,125,208,3,0,124,205,135,205,22,206,2,0,124,205,22,206,2,0,22,206,125,208,3,0,124,205,22,206,125,208,2,0,22,206,125,208,3,0,135,205,22,206,125,208,2,0,135,205,22,206,2,0,135,205,22,206,2,0,22,206,124,205,3,0,22,206,135,205,124,205,2,0,124,205,22,206,4,0,22,206,125,208,135,205,124,205,2,0,124,205,22,206,2,0,22,206,125,208,2,0,124,205,22,206,3,0,22,206,135,205,124,205,3,0,124,205,22,206,125,208,2,0,22,206,124,205,4,0,22,206,124,205,125,208,135,205,3,0,124,205,22,206,125,208,3,0,135,205,124,205,22,206,3,0,124,205,22,206,125,208,3,0,22,206,135,205,124,205,2,0,22,206,125,208,3,0,135,205,22,206,125,208,2,0,125,208,22,206,2,0,125,208,22,206,2,0,22,206,125,208,2,0,124,205,22,206,4,0,22,206,125,208,135,205,124,205,2,0,22,206,125,208,3,0,124,205,22,206,125,208,3,0,22,206,125,208,124,205,2,0,124,205,22,206,3,0,22,206,125,208,124,205,2,0,124,205,22,206,4,0,22,206,124,205,125,208,135,205,2,0,22,206,125,208,3,0,135,205,22,206,125,208,2,0,22,206,125,208,3,0,124,205,22,206,125,208,3,0,135,205,22,206,125,208,3,0,124,205,135,205,22,206,2,0,124,205,125,208,3,0,0,0,226,253,255,255,1,0,0,0,1,0,0,0,1,0,59,0,129,161,0,224,1,0,70,2,133,161,0,32,2,0,54,0,65,0,170,170,135,161,0,32,68,205,0,96,3,0,0,0,180,245,255,255,1,0,0,0,1,0,0,0,1,0,59,0,141,161,0,224,1,0,70,2,145,161,0,32,2,0,54,0,65,0,170,170,147,161,0,32,64,205,0,96,3,0,0,0,28,1,0,0,8,0,0,0,28,0,0,0,1,0,87,0,153,161,0,224,3,0,0,0,28,1,0,0,8,0,0,0,29,0,0,0,1,0,59,0,159,161,0,224,2,0,70,2,209,19,170,170,157,161,0,32,163,161,0,32,2,0,54,0,65,0,170,170,165,161,0,32,40,129,0,96,3,0,0,0,228,246,255,255,1,0,0,0,1,0,0,0,1,0,59,0,173,161,0,224,1,0,70,2,177,161,0,32,2,0,54,0,65,0,170,170,179,161,0,32,64,205,0,96,3,0,0,0,8,0,0,0,8,0,0,0,28,0,0,0,1,0,87,0,185,161,0,224,3,0,0,0,8,0,0,0,8,0,0,0,29,0,0,0,1,0,59,0,191,161,0,224,2,0,70,2,209,19,170,170,189,161,0,32,195,161,0,32,2,0,54,0,65,0,170,170,197,161,0,32,40,129,0,96,3,0,0,0,140,234,255,255,8,0,0,0,29,0,0,0,1,0,87,0,205,161,0,224,1,0,70,2,209,161,0,32,1,0,54,0,211,161,0,32,3,0,0,0,0,0,0,0,12,0,0,0,31,0,0,0,1,0,87,0,215,161,0,224,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,59,0,221,161,0,224,2,0,70,2,209,19,170,170,219,161,0,32,225,161,0,32,2,0,54,0,65,0,170,170,227,161,0,32,68,205,0,96,3,0,0,0,80,241,255,255,10,0,0,0,7,0,0,0,1,0,59,0,235,161,0,224,1,0,70,2,239,161,0,32,2,0,54,0,65,0,170,170,241,161,0,32,64,205,0,96,3,0,0,0,79,0,0,0,1,0,0,0,1,0,0,0,1,0,59,0,247,161,0,224,1,0,70,2,251,161,0,32,1,0,54,0,253,161,0,32,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,1,162,0,224,1,0,70,2,5,162,0,32,2,0,54,0,65,0,170,170,7,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,16,0,0,0,1,0,59,0,13,162,0,224,1,0,70,2,17,162,0,32,2,0,54,0,65,0,170,170,19,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,25,162,0,224,1,0,70,2,29,162,0,32,2,0,54,0,65,0,170,170,31,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,37,162,0,224,1,0,70,2,41,162,0,32,2,0,54,0,65,0,170,170,43,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,49,162,0,224,1,0,70,2,53,162,0,32,2,0,54,0,65,0,170,170,55,162,0,32,24,106,0,96,3,0,0,0,133,2,0,0,6,0,0,0,19,0,0,0,1,0,59,0,61,162,0,224,3,0,0,0,138,2,0,0,2,0,0,0,15,0,0,0,1,0,59,0,67,162,0,224,3,0,0,0,217,2,0,0,8,0,0,0,5,0,0,0,1,0,59,0,73,162,0,224,3,0,0,0,145,4,0,0,4,0,0,0,8,0,0,0,1,0,59,0,79,162,0,224,3,0,0,0,147,4,0,0,4,0,0,0,21,0,0,0,1,0,59,0,85,162,0,224,3,0,0,0,151,4,0,0,7,0,0,0,28,0,0,0,1,0,59,0,91,162,0,224,3,0,0,0,153,4,0,0,8,0,0,0,4,0,0,0,1,0,59,0,97,162,0,224,3,0,0,0,157,4,0,0,7,0,0,0,14,0,0,0,1,0,59,0,103,162,0,224,3,0,0,0,158,4,0,0,5,0,0,0,27,0,0,0,1,0,59,0,109,162,0,224,3,0,0,0,160,4,0,0,4,0,0,0,16,0,0,0,1,0,59,0,115,162,0,224,3,0,0,0,161,4,0,0,8,0,0,0,14,0,0,0,1,0,59,0,121,162,0,224,3,0,0,0,166,4,0,0,4,0,0,0,11,0,0,0,1,0,59,0,127,162,0,224,3,0,0,0,175,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,133,162,0,224,3,0,0,0,237,2,0,0,4,0,0,0,14,0,0,0,1,0,59,0,139,162,0,224,3,0,0,0,177,4,0,0,2,0,0,0,13,0,0,0,1,0,59,0,145,162,0,224,3,0,0,0,180,4,0,0,2,0,0,0,20,0,0,0,1,0,59,0,151,162,0,224,3,0,0,0,182,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,157,162,0,224,3,0,0,0,183,4,0,0,10,0,0,0,25,0,0,0,1,0,59,0,163,162,0,224,3,0,0,0,187,4,0,0,3,0,0,0,9,0,0,0,1,0,59,0,169,162,0,224,3,0,0,0,189,4,0,0,12,0,0,0,6,0,0,0,1,0,59,0,175,162,0,224,3,0,0,0,195,4,0,0,4,0,0,0,12,0,0,0,1,0,59,0,181,162,0,224,3,0,0,0,198,4,0,0,4,0,0,0,13,0,0,0,1,0,59,0,187,162,0,224,3,0,0,0,200,4,0,0,11,0,0,0,20,0,0,0,1,0,59,0,193,162,0,224,3,0,0,0,201,4,0,0,4,0,0,0,20,0,0,0,1,0,59,0,199,162,0,224,3,0,0,0,237,2,0,0,7,0,0,0,2,0,0,0,1,0,59,0,205,162,0,224,3,0,0,0,203,4,0,0,12,0,0,0,10,0,0,0,1,0,59,0,211,162,0,224,3,0,0,0,205,4,0,0,3,0,0,0,5,0,0,0,1,0,59,0,217,162,0,224,3,0,0,0,208,4,0,0,4,0,0,0,2,0,0,0,1,0,59,0,223,162,0,224,3,0,0,0,209,4,0,0,4,0,0,0,15,0,0,0,1,0,59,0,229,162,0,224,3,0,0,0,210,4,0,0,11,0,0,0,5,0,0,0,1,0,59,0,235,162,0,224,3,0,0,0,211,4,0,0,9,0,0,0,19,0,0,0,1,0,59,0,241,162,0,224,3,0,0,0,214,4,0,0,11,0,0,0,23,0,0,0,1,0,59,0,247,162,0,224,3,0,0,0,215,4,0,0,2,0,0,0,7,0,0,0,1,0,59,0,253,162,0,224,3,0,0,0,216,4,0,0,7,0,0,0,16,0,0,0,1,0,59,0,3,163,0,224,3,0,0,0,219,4,0,0,2,0,0,0,26,0,0,0,1,0,59,0,9,163,0,224,3,0,0,0,245,2,0,0,8,0,0,0,18,0,0,0,1,0,59,0,15,163,0,224,3,0,0,0,223,4,0,0,2,0,0,0,28,0,0,0,1,0,59,0,21,163,0,224,3,0,0,0,225,4,0,0,3,0,0,0,18,0,0,0,1,0,59,0,27,163,0,224,3,0,0,0,232,4,0,0,10,0,0,0,5,0,0,0,1,0,59,0,33,163,0,224,3,0,0,0,233,4,0,0,3,0,0,0,14,0,0,0,1,0,59,0,39,163,0,224,3,0,0,0,235,4,0,0,3,0,0,0,26,0,0,0,1,0,59,0,45,163,0,224,3,0,0,0,236,4,0,0,4,0,0,0,13,0,0,0,1,0,59,0,51,163,0,224,3,0,0,0,237,4,0,0,2,0,0,0,20,0,0,0,1,0,59,0,57,163,0,224,3,0,0,0,240,4,0,0,2,0,0,0,28,0,0,0,1,0,59,0,63,163,0,224,3,0,0,0,251,4,0,0,4,0,0,0,25,0,0,0,1,0,59,0,69,163,0,224,3,0,0,0,254,4,0,0,2,0,0,0,29,0,0,0,1,0,59,0,75,163,0,224,3,0,0,0,253,2,0,0,1,0,0,0,7,0,0,0,1,0,59,0,81,163,0,224,3,0,0,0,8,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,87,163,0,224,3,0,0,0,13,5,0,0,8,0,0,0,5,0,0,0,1,0,59,0,93,163,0,224,3,0,0,0,19,5,0,0,4,0,0,0,25,0,0,0,1,0,59,0,99,163,0,224,3,0,0,0,22,5,0,0,11,0,0,0,21,0,0,0,1,0,59,0,105,163,0,224,3,0,0,0,23,5,0,0,8,0,0,0,5,0,0,0,1,0,59,0,111,163,0,224,3,0,0,0,26,5,0,0,12,0,0,0,14,0,0,0,1,0,59,0,117,163,0,224,3,0,0,0,28,5,0,0,10,0,0,0,9,0,0,0,1,0,59,0,123,163,0,224,3,0,0,0,31,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,129,163,0,224,3,0,0,0,32,5,0,0,3,0,0,0,20,0,0,0,1,0,59,0,135,163,0,224,3,0,0,0,37,5,0,0,2,0,0,0,3,0,0,0,1,0,59,0,141,163,0,224,3,0,0,0,255,2,0,0,8,0,0,0,16,0,0,0,1,0,59,0,147,163,0,224,3,0,0,0,39,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,153,163,0,224,3,0,0,0,41,5,0,0,2,0,0,0,23,0,0,0,1,0,59,0,159,163,0,224,3,0,0,0,44,5,0,0,12,0,0,0,9,0,0,0,1,0,59,0,165,163,0,224,3,0,0,0,46,5,0,0,4,0,0,0,26,0,0,0,1,0,59,0,171,163,0,224,3,0,0,0,49,5,0,0,8,0,0,0,29,0,0,0,1,0,59,0,177,163,0,224,3,0,0,0,51,5,0,0,8,0,0,0,9,0,0,0,1,0,59,0,183,163,0,224,3,0,0,0,54,5,0,0,1,0,0,0,29,0,0,0,1,0,59,0,189,163,0,224,3,0,0,0,56,5,0,0,2,0,0,0,29,0,0,0,1,0,59,0,195,163,0,224,3,0,0,0,60,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,201,163,0,224,3,0,0,0,66,5,0,0,12,0,0,0,8,0,0,0,1,0,59,0,207,163,0,224,3,0,0,0,2,3,0,0,10,0,0,0,1,0,0,0,1,0,59,0,213,163,0,224,3,0,0,0,90,5,0,0,7,0,0,0,24,0,0,0,1,0,59,0,219,163,0,224,3,0,0,0,92,5,0,0,4,0,0,0,1,0,0,0,1,0,59,0,225,163,0,224,3,0,0,0,95,5,0,0,5,0,0,0,27,0,0,0,1,0,59,0,231,163,0,224,3,0,0,0,99,5,0,0,3,0,0,0,22,0,0,0,1,0,59,0,237,163,0,224,3,0,0,0,101,5,0,0,2,0,0,0,10,0,0,0,1,0,59,0,243,163,0,224,3,0,0,0,104,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,249,163,0,224,3,0,0,0,107,5,0,0,8,0,0,0,22,0,0,0,1,0,59,0,255,163,0,224,3,0,0,0,107,5,0,0,8,0,0,0,23,0,0,0,1,0,59,0,5,164,0,224,3,0,0,0,109,5,0,0,2,0,0,0,9,0,0,0,1,0,59,0,11,164,0,224,3,0,0,0,110,5,0,0,3,0,0,0,26,0,0,0,1,0,59,0,17,164,0,224,3,0,0,0,13,3,0,0,1,0,0,0,1,0,0,0,1,0,59,0,23,164,0,224,3,0,0,0,114,5,0,0,7,0,0,0,5,0,0,0,1,0,59,0,29,164,0,224,3,0,0,0,148,5,0,0,4,0,0,0,27,0,0,0,1,0,59,0,35,164,0,224,3,0,0,0,149,5,0,0,9,0,0,0,5,0,0,0,1,0,59,0,41,164,0,224,3,0,0,0,161,5,0,0,2,0,0,0,17,0,0,0,1,0,59,0,47,164,0,224,3,0,0,0,164,5,0,0,2,0,0,0,5,0,0,0,1,0,59,0,53,164,0,224,3,0,0,0,169,5,0,0,7,0,0,0,28,0,0,0,1,0,59,0,59,164,0,224,3,0,0,0,172,5,0,0,7,0,0,0,25,0,0,0,1,0,59,0,65,164,0,224,3,0,0,0,175,5,0,0,7,0,0,0,25,0,0,0,1,0,59,0,71,164,0,224,3,0,0,0,177,5,0,0,9,0,0,0,28,0,0,0,1,0,59,0,77,164,0,224,3,0,0,0,180,5,0,0,12,0,0,0,21,0,0,0,1,0,59,0,83,164,0,224,3,0,0,0,14,3,0,0,8,0,0,0,19,0,0,0,1,0,59,0,89,164,0,224,3,0,0,0,186,5,0,0,2,0,0,0,28,0,0,0,1,0,59,0,95,164,0,224,3,0,0,0,187,5,0,0,3,0,0,0,3,0,0,0,1,0,59,0,101,164,0,224,3,0,0,0,189,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,107,164,0,224,3,0,0,0,207,5,0,0,7,0,0,0,29,0,0,0,1,0,59,0,113,164,0,224,3,0,0,0,209,5,0,0,8,0,0,0,21,0,0,0,1,0,59,0,119,164,0,224,3,0,0,0,212,5,0,0,7,0,0,0,19,0,0,0,1,0,59,0,125,164,0,224,3,0,0,0,221,5,0,0,2,0,0,0,29,0,0,0,1,0,59,0,131,164,0,224,3,0,0,0,224,5,0,0,2,0,0,0,30,0,0,0,1,0,59,0,137,164,0,224,3,0,0,0,241,5,0,0,8,0,0,0,23,0,0,0,1,0,59,0,143,164,0,224,3,0,0,0,248,5,0,0,8,0,0,0,20,0,0,0,1,0,59,0,149,164,0,224,3,0,0,0,38,3,0,0,5,0,0,0,18,0,0,0,1,0,59,0,155,164,0,224,3,0,0,0,252,5,0,0,7,0,0,0,29,0,0,0,1,0,59,0,161,164,0,224,3,0,0,0,19,6,0,0,10,0,0,0,23,0,0,0,1,0,59,0,167,164,0,224,3,0,0,0,22,6,0,0,2,0,0,0,28,0,0,0,1,0,59,0,173,164,0,224,3,0,0,0,34,6,0,0,4,0,0,0,23,0,0,0,1,0,59,0,179,164,0,224,3,0,0,0,37,6,0,0,7,0,0,0,28,0,0,0,1,0,59,0,185,164,0,224,3,0,0,0,56,6,0,0,12,0,0,0,8,0,0,0,1,0,59,0,191,164,0,224,3,0,0,0,60,6,0,0,10,0,0,0,27,0,0,0,1,0,59,0,197,164,0,224,3,0,0,0,79,6,0,0,7,0,0,0,13,0,0,0,1,0,59,0,203,164,0,224,3,0,0,0,88,6,0,0,2,0,0,0,30,0,0,0,1,0,59,0,209,164,0,224,3,0,0,0,108,6,0,0,12,0,0,0,16,0,0,0,1,0,59,0,215,164,0,224,3,0,0,0,160,2,0,0,1,0,0,0,1,0,0,0,1,0,59,0,221,164,0,224,3,0,0,0,42,3,0,0,9,0,0,0,19,0,0,0,1,0,59,0,227,164,0,224,3,0,0,0,112,6,0,0,2,0,0,0,15,0,0,0,1,0,59,0,233,164,0,224,3,0,0,0,116,6,0,0,9,0,0,0,18,0,0,0,1,0,59,0,239,164,0,224,3,0,0,0,119,6,0,0,4,0,0,0,13,0,0,0,1,0,59,0,245,164,0,224,3,0,0,0,122,6,0,0,7,0,0,0,23,0,0,0,1,0,59,0,251,164,0,224,3,0,0,0,125,6,0,0,4,0,0,0,25,0,0,0,1,0,59,0,1,165,0,224,3,0,0,0,137,6,0,0,9,0,0,0,21,0,0,0,1,0,59,0,7,165,0,224,3,0,0,0,145,6,0,0,9,0,0,0,29,0,0,0,1,0,59,0,13,165,0,224,3,0,0,0,148,6,0,0,2,0,0,0,21,0,0,0,1,0,59,0,19,165,0,224,3,0,0,0,152,6,0,0,9,0,0,0,30,0,0,0,1,0,59,0,25,165,0,224,3,0,0,0,168,6,0,0,3,0,0,0,13,0,0,0,1,0,59,0,31,165,0,224,3,0,0,0,56,3,0,0,1,0,0,0,5,0,0,0,1,0,59,0,37,165,0,224,3,0,0,0,175,6,0,0,4,0,0,0,25,0,0,0,1,0,59,0,43,165,0,224,3,0,0,0,180,6,0,0,6,0,0,0,22,0,0,0,1,0,59,0,49,165,0,224,3,0,0,0,200,6,0,0,4,0,0,0,28,0,0,0,1,0,59,0,55,165,0,224,3,0,0,0,205,6,0,0,2,0,0,0,27,0,0,0,1,0,59,0,61,165,0,224,3,0,0,0,208,6,0,0,2,0,0,0,21,0,0,0,1,0,59,0,67,165,0,224,3,0,0,0,212,6,0,0,7,0,0,0,12,0,0,0,1,0,59,0,73,165,0,224,3,0,0,0,215,6,0,0,10,0,0,0,27,0,0,0,1,0,59,0,79,165,0,224,3,0,0,0,228,6,0,0,6,0,0,0,2,0,0,0,1,0,59,0,85,165,0,224,3,0,0,0,236,6,0,0,11,0,0,0,16,0,0,0,1,0,59,0,91,165,0,224,3,0,0,0,245,6,0,0,4,0,0,0,2,0,0,0,1,0,59,0,97,165,0,224,3,0,0,0,66,3,0,0,1,0,0,0,3,0,0,0,1,0,59,0,103,165,0,224,3,0,0,0,253,6,0,0,1,0,0,0,25,0,0,0,1,0,59,0,109,165,0,224,3,0,0,0,9,7,0,0,2,0,0,0,5,0,0,0,1,0,59,0,115,165,0,224,3,0,0,0,12,7,0,0,2,0,0,0,11,0,0,0,1,0,59,0,121,165,0,224,3,0,0,0,26,7,0,0,4,0,0,0,22,0,0,0,1,0,59,0,127,165,0,224,3,0,0,0,38,7,0,0,12,0,0,0,10,0,0,0,1,0,59,0,133,165,0,224,3,0,0,0,52,7,0,0,12,0,0,0,2,0,0,0,1,0,59,0,139,165,0,224,3,0,0,0,56,7,0,0,2,0,0,0,28,0,0,0,1,0,59,0,145,165,0,224,3,0,0,0,62,7,0,0,11,0,0,0,27,0,0,0,1,0,59,0,151,165,0,224,3,0,0,0,68,7,0,0,3,0,0,0,18,0,0,0,1,0,59,0,157,165,0,224,3,0,0,0,69,7,0,0,2,0,0,0,19,0,0,0,1,0,59,0,163,165,0,224,3,0,0,0,80,3,0,0,6,0,0,0,13,0,0,0,1,0,59,0,169,165,0,224,3,0,0,0,72,7,0,0,2,0,0,0,20,0,0,0,1,0,59,0,175,165,0,224,3,0,0,0,73,7,0,0,4,0,0,0,7,0,0,0,1,0,59,0,181,165,0,224,3,0,0,0,76,7,0,0,9,0,0,0,8,0,0,0,1,0,59,0,187,165,0,224,3,0,0,0,120,7,0,0,7,0,0,0,30,0,0,0,1,0,59,0,193,165,0,224,3,0,0,0,134,7,0,0,12,0,0,0,25,0,0,0,1,0,59,0,199,165,0,224,3,0,0,0,197,7,0,0,1,0,0,0,8,0,0,0,1,0,59,0,205,165,0,224,3,0,0,0,227,7,0,0,5,0,0,0,1,0,0,0,1,0,59,0,211,165,0,224,3,0,0,0,83,3,0,0,4,0,0,0,28,0,0,0,1,0,59,0,217,165,0,224,3,0,0,0,86,3,0,0,11,0,0,0,30,0,0,0,1,0,59,0,223,165,0,224,3,0,0,0,89,3,0,0,2,0,0,0,21,0,0,0,1,0,59,0,229,165,0,224,3,0,0,0,91,3,0,0,4,0,0,0,15,0,0,0,1,0,59,0,235,165,0,224,3,0,0,0,109,3,0,0,4,0,0,0,16,0,0,0,1,0,59,0,241,165,0,224,3,0,0,0,117,3,0,0,2,0,0,0,21,0,0,0,1,0,59,0,247,165,0,224,3,0,0,0,174,2,0,0,7,0,0,0,20,0,0,0,1,0,59,0,253,165,0,224,3,0,0,0,121,3,0,0,4,0,0,0,27,0,0,0,1,0,59,0,3,166,0,224,3,0,0,0,130,3,0,0,4,0,0,0,26,0,0,0,1,0,59,0,9,166,0,224,3,0,0,0,133,3,0,0,7,0,0,0,15,0,0,0,1,0,59,0,15,166,0,224,3,0,0,0,155,3,0,0,4,0,0,0,11,0,0,0,1,0,59,0,21,166,0,224,3,0,0,0,163,3,0,0,4,0,0,0,26,0,0,0,1,0,59,0,27,166,0,224,3,0,0,0,170,3,0,0,5,0,0,0,22,0,0,0,1,0,59,0,33,166,0,224,3,0,0,0,179,3,0,0,4,0,0,0,22,0,0,0,1,0,59,0,39,166,0,224,3,0,0,0,189,3,0,0,10,0,0,0,27,0,0,0,1,0,59,0,45,166,0,224,3,0,0,0,193,3,0,0,2,0,0,0,16,0,0,0,1,0,59,0,51,166,0,224,3,0,0,0,196,3,0,0,7,0,0,0,10,0,0,0,1,0,59,0,57,166,0,224,3,0,0,0,189,2,0,0,3,0,0,0,21,0,0,0,1,0,59,0,63,166,0,224,3,0,0,0,200,3,0,0,8,0,0,0,13,0,0,0,1,0,59,0,69,166,0,224,3,0,0,0,202,3,0,0,3,0,0,0,25,0,0,0,1,0,59,0,75,166,0,224,3,0,0,0,205,3,0,0,12,0,0,0,20,0,0,0,1,0,59,0,81,166,0,224,3,0,0,0,208,3,0,0,7,0,0,0,13,0,0,0,1,0,59,0,87,166,0,224,3,0,0,0,210,3,0,0,11,0,0,0,29,0,0,0,1,0,59,0,93,166,0,224,3,0,0,0,215,3,0,0,4,0,0,0,15,0,0,0,1,0,59,0,99,166,0,224,3,0,0,0,217,3,0,0,4,0,0,0,27,0,0,0,1,0,59,0,105,166,0,224,3,0,0,0,219,3,0,0,4,0,0,0,5,0,0,0,1,0,59,0,111,166,0,224,3,0,0,0,221,3,0,0,8,0,0,0,8,0,0,0,1,0,59,0,117,166,0,224,3,0,0,0,222,3,0,0,11,0,0,0,7,0,0,0,1,0,59,0,123,166,0,224,3,0,0,0,192,2,0,0,5,0,0,0,10,0,0,0,1,0,59,0,129,166,0,224,3,0,0,0,227,3,0,0,2,0,0,0,22,0,0,0,1,0,59,0,135,166,0,224,3,0,0,0,231,3,0,0,1,0,0,0,13,0,0,0,1,0,59,0,141,166,0,224,3,0,0,0,236,3,0,0,7,0,0,0,20,0,0,0,1,0,59,0,147,166,0,224,3,0,0,0,244,3,0,0,12,0,0,0,25,0,0,0,1,0,59,0,153,166,0,224,3,0,0,0,249,3,0,0,4,0,0,0,23,0,0,0,1,0,59,0,159,166,0,224,3,0,0,0,253,3,0,0,2,0,0,0,2,0,0,0,1,0,59,0,165,166,0,224,3,0,0,0,0,4,0,0,7,0,0,0,13,0,0,0,1,0,59,0,171,166,0,224,3,0,0,0,4,4,0,0,7,0,0,0,25,0,0,0,1,0,59,0,177,166,0,224,3,0,0,0,13,4,0,0,4,0,0,0,21,0,0,0,1,0,59,0,183,166,0,224,3,0,0,0,16,4,0,0,11,0,0,0,10,0,0,0,1,0,59,0,189,166,0,224,3,0,0,0,196,2,0,0,1,0,0,0,11,0,0,0,1,0,59,0,195,166,0,224,3,0,0,0,20,4,0,0,11,0,0,0,24,0,0,0,1,0,59,0,201,166,0,224,3,0,0,0,22,4,0,0,4,0,0,0,14,0,0,0,1,0,59,0,207,166,0,224,3,0,0,0,29,4,0,0,1,0,0,0,11,0,0,0,1,0,59,0,213,166,0,224,3,0,0,0,34,4,0,0,8,0,0,0,29,0,0,0,1,0,59,0,219,166,0,224,3,0,0,0,41,4,0,0,8,0,0,0,2,0,0,0,1,0,59,0,225,166,0,224,3,0,0,0,45,4,0,0,4,0,0,0,13,0,0,0,1,0,59,0,231,166,0,224,3,0,0,0,50,4,0,0,8,0,0,0,23,0,0,0,1,0,59,0,237,166,0,224,3,0,0,0,53,4,0,0,11,0,0,0,17,0,0,0,1,0,59,0,243,166,0,224,3,0,0,0,57,4,0,0,2,0,0,0,10,0,0,0,1,0,59,0,249,166,0,224,3,0,0,0,60,4,0,0,2,0,0,0,7,0,0,0,1,0,59,0,255,166,0,224,3,0,0,0,203,2,0,0,9,0,0,0,2,0,0,0,1,0,59,0,5,167,0,224,3,0,0,0,63,4,0,0,4,0,0,0,7,0,0,0,1,0,59,0,11,167,0,224,3,0,0,0,70,4,0,0,12,0,0,0,15,0,0,0,1,0,59,0,17,167,0,224,3,0,0,0,72,4,0,0,12,0,0,0,17,0,0,0,1,0,59,0,23,167,0,224,3,0,0,0,73,4,0,0,11,0,0,0,21,0,0,0,1,0,59,0,29,167,0,224,3,0,0,0,75,4,0,0,8,0,0,0,28,0,0,0,1,0,59,0,35,167,0,224,3,0,0,0,80,4,0,0,2,0,0,0,10,0,0,0,1,0,59,0,41,167,0,224,3,0,0,0,82,4,0,0,4,0,0,0,9,0,0,0,1,0,59,0,47,167,0,224,3,0,0,0,84,4,0,0,8,0,0,0,3,0,0,0,1,0,59,0,53,167,0,224,3,0,0,0,86,4,0,0,7,0,0,0,13,0,0,0,1,0,59,0,59,167,0,224,3,0,0,0,89,4,0,0,7,0,0,0,13,0,0,0,1,0,59,0,65,167,0,224,3,0,0,0,205,2,0,0,11,0,0,0,17,0,0,0,1,0,59,0,71,167,0,224,3,0,0,0,94,4,0,0,4,0,0,0,3,0,0,0,1,0,59,0,77,167,0,224,3,0,0,0,96,4,0,0,4,0,0,0,10,0,0,0,1,0,59,0,83,167,0,224,3,0,0,0,100,4,0,0,4,0,0,0,3,0,0,0,1,0,59,0,89,167,0,224,3,0,0,0,102,4,0,0,1,0,0,0,22,0,0,0,1,0,59,0,95,167,0,224,3,0,0,0,107,4,0,0,1,0,0,0,29,0,0,0,1,0,59,0,101,167,0,224,3,0,0,0,108,4,0,0,8,0,0,0,11,0,0,0,1,0,59,0,107,167,0,224,3,0,0,0,111,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,113,167,0,224,3,0,0,0,117,4,0,0,7,0,0,0,10,0,0,0,1,0,59,0,119,167,0,224,3,0,0,0,118,4,0,0,4,0,0,0,28,0,0,0,1,0,59,0,125,167,0,224,3,0,0,0,120,4,0,0,2,0,0,0,23,0,0,0,1,0,59,0,131,167,0,224,3,0,0,0,212,2,0,0,2,0,0,0,4,0,0,0,1,0,59,0,137,167,0,224,3,0,0,0,121,4,0,0,7,0,0,0,22,0,0,0,1,0,59,0,143,167,0,224,3,0,0,0,127,4,0,0,1,0,0,0,26,0,0,0,1,0,59,0,149,167,0,224,3,0,0,0,130,4,0,0,10,0,0,0,28,0,0,0,1,0,59,0,155,167,0,224,3,0,0,0,132,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,161,167,0,224,3,0,0,0,135,4,0,0,4,0,0,0,20,0,0,0,1,0,59,0,167,167,0,224,3,0,0,0,136,4,0,0,1,0,0,0,10,0,0,0,1,0,59,0,173,167,0,224,3,0,0,0,137,4,0,0,9,0,0,0,4,0,0,0,1,0,59,0,179,167,0,224,3,0,0,0,139,4,0,0,3,0,0,0,29,0,0,0,1,0,59,0,185,167,0,224,3,0,0,0,141,4,0,0,6,0,0,0,5,0,0,0,1,0,59,0,191,167,0,224,3,0,0,0,142,4,0,0,8,0,0,0,27,0,0,0,1,0,59,0,197,167,0,224,237,0,70,2,209,19,58,21,224,0,228,0,232,0,236,0,240,0,244,0,248,0,252,0,0,1,4,1,63,21,8,1,12,1,16,1,20,1,24,1,28,1,32,1,36,1,40,1,44,1,68,21,48,1,52,1,56,1,60,1,64,1,68,1,72,1,76,1,80,1,84,1,73,21,88,1,92,1,96,1,100,1,104,1,108,1,112,1,116,1,120,1,124,1,78,21,128,1,132,1,136,1,140,1,144,1,148,1,152,1,156,1,160,1,164,1,83,21,101,15,168,1,172,1,176,1,180,1,184,1,188,1,192,1,196,1,200,1,173,2,204,1,208,1,212,1,216,1,220,1,224,1,228,1,232,1,236,1,240,1,177,2,244,1,248,1,252,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,181,2,28,2,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,115,15,68,2,72,2,76,2,80,2,84,2,88,2,92,2,96,2,100,2,104,2,213,19,224,17,108,2,112,2,116,2,120,2,124,2,128,2,132,2,136,2,140,2,144,2,241,19,148,2,152,2,156,2,160,2,164,2,168,2,172,2,176,2,180,2,184,2,197,2,188,2,192,2,196,2,200,2,204,2,208,2,212,2,216,2,220,2,224,2,201,2,228,2,232,2,236,2,240,2,244,2,248,2,252,2,205,2,246,19,213,2,217,2,221,2,225,2,217,19,229,2,229,17,234,17,33,18,0,20,43,18,5,20,53,18,58,18,63,18,221,19,68,18,239,17,244,17,141,1,145,1,15,20,153,1,157,1,161,1,165,1,225,19,98,18,249,17,254,17,3,18,181,1,25,20,108,18,30,20,197,1,201,1,229,19,113,18,209,1,35,20,8,18,13,18,40,20,229,1,45,20,123,18,241,1,233,19,245,1,18,18,23,18,1,2,133,18,55,20,13,2,60,20,65,20,138,18,237,19,28,18,143,18,70,20,41,2,148,18,49,2,53,2,153,18,75,20,65,2,120,20,69,2,73,2,77,2,81,2,85,2,89,2,93,2,97,2,101,2,105,2,65,162,0,32,71,162,0,32,77,162,0,32,83,162,0,32,89,162,0,32,95,162,0,32,101,162,0,32,107,162,0,32,113,162,0,32,119,162,0,32,125,162,0,32,131,162,0,32,137,162,0,32,143,162,0,32,149,162,0,32,155,162,0,32,161,162,0,32,167,162,0,32,173,162,0,32,179,162,0,32,185,162,0,32,191,162,0,32,197,162,0,32,203,162,0,32,209,162,0,32,215,162,0,32,221,162,0,32,227,162,0,32,233,162,0,32,239,162,0,32,245,162,0,32,251,162,0,32,1,163,0,32,7,163,0,32,13,163,0,32,19,163,0,32,25,163,0,32,31,163,0,32,37,163,0,32,43,163,0,32,49,163,0,32,55,163,0,32,61,163,0,32,67,163,0,32,73,163,0,32,79,163,0,32,85,163,0,32,91,163,0,32,97,163,0,32,103,163,0,32,109,163,0,32,115,163,0,32,121,163,0,32,127,163,0,32,133,163,0,32,139,163,0,32,145,163,0,32,151,163,0,32,157,163,0,32,163,163,0,32,169,163,0,32,175,163,0,32,181,163,0,32,187,163,0,32,193,163,0,32,199,163,0,32,205,163,0,32,211,163,0,32,217,163,0,32,223,163,0,32,229,163,0,32,235,163,0,32,241,163,0,32,247,163,0,32,253,163,0,32,3,164,0,32,9,164,0,32,15,164,0,32,21,164,0,32,27,164,0,32,33,164,0,32,39,164,0,32,45,164,0,32,51,164,0,32,57,164,0,32,63,164,0,32,69,164,0,32,75,164,0,32,81,164,0,32,87,164,0,32,93,164,0,32,99,164,0,32,105,164,0,32,111,164,0,32,117,164,0,32,123,164,0,32,129,164,0,32,135,164,0,32,141,164,0,32,147,164,0,32,153,164,0,32,159,164,0,32,165,164,0,32,171,164,0,32,177,164,0,32,183,164,0,32,189,164,0,32,195,164,0,32,201,164,0,32,207,164,0,32,213,164,0,32,219,164,0,32,225,164,0,32,231,164,0,32,237,164,0,32,243,164,0,32,249,164,0,32,255,164,0,32,5,165,0,32,11,165,0,32,17,165,0,32,23,165,0,32,29,165,0,32,35,165,0,32,41,165,0,32,47,165,0,32,53,165,0,32,59,165,0,32,65,165,0,32,71,165,0,32,77,165,0,32,83,165,0,32,89,165,0,32,95,165,0,32,101,165,0,32,107,165,0,32,113,165,0,32,119,165,0,32,125,165,0,32,131,165,0,32,137,165,0,32,143,165,0,32,149,165,0,32,155,165,0,32,161,165,0,32,167,165,0,32,173,165,0,32,179,165,0,32,185,165,0,32,191,165,0,32,197,165,0,32,203,165,0,32,209,165,0,32,215,165,0,32,221,165,0,32,227,165,0,32,233,165,0,32,239,165,0,32,245,165,0,32,251,165,0,32,1,166,0,32,7,166,0,32,13,166,0,32,19,166,0,32,25,166,0,32,31,166,0,32,37,166,0,32,43,166,0,32,49,166,0,32,55,166,0,32,61,166,0,32,67,166,0,32,73,166,0,32,79,166,0,32,85,166,0,32,91,166,0,32,97,166,0,32,103,166,0,32,109,166,0,32,115,166,0,32,121,166,0,32,127,166,0,32,133,166,0,32,139,166,0,32,145,166,0,32,151,166,0,32,157,166,0,32,163,166,0,32,169,166,0,32,175,166,0,32,181,166,0,32,187,166,0,32,193,166,0,32,199,166,0,32,205,166,0,32,211,166,0,32,217,166,0,32,223,166,0,32,229,166,0,32,235,166,0,32,241,166,0,32,247,166,0,32,253,166,0,32,3,167,0,32,9,167,0,32,15,167,0,32,21,167,0,32,27,167,0,32,33,167,0,32,39,167,0,32,45,167,0,32,51,167,0,32,57,167,0,32,63,167,0,32,69,167,0,32,75,167,0,32,81,167,0,32,87,167,0,32,93,167,0,32,99,167,0,32,105,167,0,32,111,167,0,32,117,167,0,32,123,167,0,32,129,167,0,32,135,167,0,32,141,167,0,32,147,167,0,32,153,167,0,32,159,167,0,32,165,167,0,32,171,167,0,32,177,167,0,32,183,167,0,32,189,167,0,32,195,167,0,32,201,167,0,32,2,0,54,0,65,0,170,170,203,167,0,32,68,205,0,96,3,0,0,0,110,2,0,0,1,0,0,0,1,0,0,0,1,0,59,0,51,169,0,224,1,0,70,2,55,169,0,32,2,0,54,0,65,0,170,170,57,169,0,32,68,205,0,96,3,0,0,0,119,7,0,0,12,0,0,0,31,0,0,0,1,0,87,0,63,169,0,224,3,0,0,0,120,7,0,0,1,0,0,0,1,0,0,0,1,0,59,0,69,169,0,224,2,0,70,2,209,19,170,170,67,169,0,32,73,169,0,32,1,0,54,0,75,169,0,32,17,0,45,0,72,0,80,0,91,0,97,0,106,0,126,0,136,0,143,0,150,0,158,0,172,0,185,0,198,0,215,0,0,3,8,3,137,161,0,32,149,161,0,32,169,161,0,32,181,161,0,32,201,161,0,32,213,161,0,32,231,161,0,32,243,161,0,32,255,161,0,32,9,162,0,32,21,162,0,32,33,162,0,32,45,162,0,32,57,162,0,32,47,169,0,32,59,169,0,32,79,169,0,32,52,0,12,24,35,3,38,3,41,3,44,3,47,3,50,3,53,3,56,3,59,3,62,3,65,3,68,3,71,3,74,3,143,15,77,3,80,3,73,24,83,3,86,3,89,3,92,3,95,3,98,3,101,3,104,3,107,3,110,3,113,3,116,3,119,3,122,3,125,3,128,3,131,3,134,3,137,3,140,3,143,3,146,3,149,3,152,3,155,3,158,3,161,3,164,3,167,3,188,24,170,3,173,3,176,3,170,170,22,221,0,144,24,221,0,144,30,221,0,144,36,221,0,144,40,221,0,144,44,221,0,144,49,221,0,144,55,221,0,144,58,221,0,144,61,221,0,144,66,221,0,144,71,221,0,144,77,221,0,144,82,221,0,144,87,221,0,144,90,221,0,144,93,221,0,144,98,221,0,144,104,221,0,144,107,221,0,144,112,221,0,144,118,221,0,144,123,221,0,144,126,221,0,144,131,221,0,144,134,221,0,144,140,221,0,144,145,221,0,144,150,221,0,144,155,221,0,144,158,221,0,144,163,221,0,144,167,221,0,144,172,221,0,144,177,221,0,144,182,221,0,144,187,221,0,144,192,221,0,144,198,221,0,144,203,221,0,144,208,221,0,144,211,221,0,144,216,221,0,144,221,221,0,144,224,221,0,144,228,221,0,144,232,221,0,144,237,221,0,144,241,221,0,144,245,221,0,144,249,221,0,144,253,221,0,144,47,1,0,0,2,222,0,144,6,222,0,144,10,222,0,144,14,222,0,144,18,222,0,144,22,222,0,144,26,222,0,144,30,222,0,144,34,222,0,144,38,222,0,144,42,222,0,144,46,222,0,144,50,222,0,144,54,222,0,144,58,222,0,144,62,222,0,144,66,222,0,144,70,222,0,144,74,222,0,144,78,222,0,144,82,222,0,144,86,222,0,144,90,222,0,144,94,222,0,144,98,222,0,144,102,222,0,144,106,222,0,144,110,222,0,144,114,222,0,144,118,222,0,144,122,222,0,144,126,222,0,144,130,222,0,144,134,222,0,144,138,222,0,144,142,222,0,144,146,222,0,144,150,222,0,144,154,222,0,144,158,222,0,144,162,222,0,144,166,222,0,144,170,222,0,144,174,222,0,144,178,222,0,144,182,222,0,144,186,222,0,144,190,222,0,144,194,222,0,144,198,222,0,144,202,222,0,144,206,222,0,144,210,222,0,144,214,222,0,144,218,222,0,144,222,222,0,144,226,222,0,144,230,222,0,144,234,222,0,144,238,222,0,144,242,222,0,144,246,222,0,144,250,222,0,144,254,222,0,144,2,223,0,144,6,223,0,144,10,223,0,144,14,223,0,144,18,223,0,144,22,223,0,144,26,223,0,144,30,223,0,144,34,223,0,144,38,223,0,144,42,223,0,144,46,223,0,144,50,223,0,144,54,223,0,144,58,223,0,144,62,223,0,144,66,223,0,144,70,223,0,144,74,223,0,144,78,223,0,144,82,223,0,144,86,223,0,144,90,223,0,144,94,223,0,144,98,223,0,144,102,223,0,144,106,223,0,144,110,223,0,144,114,223,0,144,118,223,0,144,122,223,0,144,126,223,0,144,130,223,0,144,134,223,0,144,138,223,0,144,142,223,0,144,146,223,0,144,150,223,0,144,154,223,0,144,158,223,0,144,162,223,0,144,166,223,0,144,170,223,0,144,174,223,0,144,178,223,0,144,182,223,0,144,186,223,0,144,190,223,0,144,194,223,0,144,198,223,0,144,202,223,0,144,206,223,0,144,210,223,0,144,214,223,0,144,218,223,0,144,222,223,0,144,226,223,0,144,230,223,0,144,234,223,0,144,238,223,0,144,242,223,0,144,246,223,0,144,250,223,0,144,254,223,0,144,2,224,0,144,6,224,0,144,10,224,0,144,14,224,0,144,18,224,0,144,22,224,0,144,26,224,0,144,30,224,0,144,34,224,0,144,38,224,0,144,42,224,0,144,46,224,0,144,50,224,0,144,54,224,0,144,58,224,0,144,62,224,0,144,66,224,0,144,70,224,0,144,74,224,0,144,78,224,0,144,82,224,0,144,86,224,0,144,90,224,0,144,94,224,0,144,98,224,0,144,102,224,0,144,106,224,0,144,110,224,0,144,114,224,0,144,118,224,0,144,122,224,0,144,126,224,0,144,130,224,0,144,134,224,0,144,138,224,0,144,142,224,0,144,146,224,0,144,150,224,0,144,154,224,0,144,158,224,0,144,162,224,0,144,166,224,0,144,170,224,0,144,174,224,0,144,178,224,0,144,182,224,0,144,186,224,0,144,190,224,0,144,194,224,0,144,198,224,0,144,202,224,0,144,206,224,0,144,210,224,0,144,214,224,0,144,218,224,0,144,222,224,0,144,226,224,0,144,230,224,0,144,234,224,0,144,238,224,0,144,242,224,0,144,246,224,0,144,250,224,0,144,254,224,0,144,2,225,0,144,6,225,0,144,10,225,0,144,14,225,0,144,18,225,0,144,22,225,0,144,26,225,0,144,30,225,0,144,34,225,0,144,38,225,0,144,42,225,0,144,46,225,0,144,50,225,0,144,54,225,0,144,58,225,0,144,62,225,0,144,66,225,0,144,70,225,0,144,74,225,0,144,78,225,0,144,82,225,0,144,86,225,0,144,90,225,0,144,94,225,0,144,98,225,0,144,102,225,0,144,106,225,0,144,110,225,0,144,114,225,0,144,118,225,0,144,122,225,0,144,126,225,0,144,130,225,0,144,134,225,0,144,138,225,0,144,142,225,0,144,146,225,0,144,150,225,0,144,154,225,0,144,158,225,0,144,162,225,0,144,166,225,0,144,170,225,0,144,174,225,0,144,178,225,0,144,182,225,0,144,186,225,0,144,190,225,0,144,194,225,0,144,198,225,0,144,202,225,0,144,206,225,0,144,210,225,0,144,214,225,0,144,218,225,0,144,222,225,0,144,226,225,0,144,230,225,0,144,234,225,0,144,238,225,0,144,242,225,0,144,246,225,0,144,250,225,0,144,254,225,0,144,2,226,0,144,6,226,0,144,10,226,0,144,14,226,0,144,18,226,0,144,22,226,0,144,26,226,0,144,30,226,0,144,34,226,0,144,38,226,0,144,42,226,0,144,46,226,0,144,50,226,0,144,54,226,0,144,58,226,0,144,62,226,0,144,66,226,0,144,70,226,0,144,74,226,0,144,78,226,0,144,82,226,0,144,86,226,0,144,90,226,0,144,94,226,0,144,98,226,0,144,102,226,0,144,106,226,0,144,110,226,0,144,114,226,0,144,118,226,0,144,122,226,0,144,126,226,0,144,130,226,0,144,134,226,0,144,138,226,0,144,142,226,0,144,146,226,0,144,150,226,0,144,154,226,0,144,158,226,0,144,162,226,0,144,166,226,0,144,170,226,0,144,174,226,0,144,178,226,0,144,182,226,0,144,186,226,0,144,183,0,0,0,190,226,0,144,193,226,0,144,196,226,0,144,199,226,0,144,202,226,0,144,205,226,0,144,208,226,0,144,211,226,0,144,214,226,0,144,217,226,0,144,220,226,0,144,223,226,0,144,226,226,0,144,229,226,0,144,232,226,0,144,235,226,0,144,238,226,0,144,241,226,0,144,244,226,0,144,247,226,0,144,250,226,0,144,253,226,0,144,0,227,0,144,3,227,0,144,6,227,0,144,9,227,0,144,12,227,0,144,15,227,0,144,18,227,0,144,21,227,0,144,24,227,0,144,27,227,0,144,30,227,0,144,33,227,0,144,36,227,0,144,39,227,0,144,42,227,0,144,45,227,0,144,48,227,0,144,51,227,0,144,54,227,0,144,57,227,0,144,60,227,0,144,63,227,0,144,66,227,0,144,69,227,0,144,72,227,0,144,75,227,0,144,78,227,0,144,81,227,0,144,84,227,0,144,87,227,0,144,90,227,0,144,93,227,0,144,96,227,0,144,99,227,0,144,102,227,0,144,105,227,0,144,108,227,0,144,111,227,0,144,114,227,0,144,117,227,0,144,120,227,0,144,123,227,0,144,126,227,0,144,129,227,0,144,132,227,0,144,135,227,0,144,138,227,0,144,141,227,0,144,144,227,0,144,147,227,0,144,150,227,0,144,153,227,0,144,156,227,0,144,159,227,0,144,162,227,0,144,165,227,0,144,168,227,0,144,171,227,0,144,174,227,0,144,177,227,0,144,180,227,0,144,183,227,0,144,186,227,0,144,189,227,0,144,192,227,0,144,195,227,0,144,198,227,0,144,201,227,0,144,204,227,0,144,207,227,0,144,210,227,0,144,213,227,0,144,216,227,0,144,219,227,0,144,222,227,0,144,225,227,0,144,228,227,0,144,231,227,0,144,234,227,0,144,237,227,0,144,240,227,0,144,243,227,0,144,246,227,0,144,249,227,0,144,252,227,0,144,255,227,0,144,2,228,0,144,5,228,0,144,8,228,0,144,11,228,0,144,14,228,0,144,17,228,0,144,20,228,0,144,23,228,0,144,26,228,0,144,29,228,0,144,32,228,0,144,35,228,0,144,38,228,0,144,41,228,0,144,44,228,0,144,47,228,0,144,50,228,0,144,53,228,0,144,56,228,0,144,59,228,0,144,62,228,0,144,65,228,0,144,68,228,0,144,71,228,0,144,74,228,0,144,77,228,0,144,80,228,0,144,83,228,0,144,86,228,0,144,89,228,0,144,92,228,0,144,95,228,0,144,98,228,0,144,101,228,0,144,104,228,0,144,107,228,0,144,110,228,0,144,113,228,0,144,116,228,0,144,119,228,0,144,122,228,0,144,125,228,0,144,128,228,0,144,131,228,0,144,134,228,0,144,137,228,0,144,140,228,0,144,143,228,0,144,146,228,0,144,149,228,0,144,152,228,0,144,155,228,0,144,158,228,0,144,161,228,0,144,164,228,0,144,167,228,0,144,170,228,0,144,173,228,0,144,176,228,0,144,179,228,0,144,182,228,0,144,185,228,0,144,188,228,0,144,191,228,0,144,194,228,0,144,197,228,0,144,200,228,0,144,203,228,0,144,206,228,0,144,209,228,0,144,212,228,0,144,215,228,0,144,218,228,0,144,221,228,0,144,224,228,0,144,3,0,245,3,0,4,8,4,227,228,0,144,111,229,0,144,95,2,0,96,6,0,245,3,25,4,0,4,37,4,46,4,8,4,170,170,12,230,0,144,31,231,0,144,47,231,0,144,89,241,0,144,96,241,0,144,164,205,0,96,7,0,245,3,54,4,25,4,0,4,37,4,46,4,8,4,100,241,0,144,113,241,0,144,138,241,0,144,141,241,0,144,6,242,0,144,81,72,0,96,224,2,0,96,6,0,245,3,25,4,0,4,37,4,46,4,8,4,170,170,1,72,0,96,11,242,0,144,14,242,0,144,179,242,0,144,183,242,0,144,136,72,0,96,3,0,245,3,0,4,8,4,193,242,0,144,244,243,0,144,216,255,0,144,2,0,245,3,0,4,170,170,217,0,1,144,228,0,1,144,2,0,245,3,0,4,170,170,164,1,1,144,168,1,1,144,7,0,236,3,16,4,59,4,66,4,73,4,85,4,157,24,162,171,0,32,167,171,0,32,177,171,0,32,188,171,0,32,198,171,0,32,203,171,0,32,207,171,0,32,1,0,129,4,19,2,1,144,2,0,103,4,119,4,170,170,16,2,1,80,222,171,0,32,2,0,103,4,119,4,170,170,22,2,1,80,25,2,1,80,1,0,103,4,28,2,1,80,2,0,103,4,119,4,170,170,31,2,1,80,34,2,1,80,2,0,103,4,119,4,170,170,37,2,1,80,40,2,1,80,2,0,103,4,119,4,170,170,43,2,1,80,46,2,1,80,1,0,103,4,49,2,1,80,2,0,103,4,119,4,170,170,52,2,1,80,55,2,1,80,1,0,119,4,58,2,1,80,2,0,103,4,119,4,170,170,61,2,1,80,64,2,1,80,1,0,129,4,70,2,1,144,2,0,103,4,119,4,170,170,67,2,1,80,2,172,0,32,1,0,103,4,73,2,1,80,2,0,103,4,119,4,170,170,76,2,1,80,79,2,1,80,1,0,111,4,82,2,1,144,1,0,119,4,14,172,0,32,2,0,103,4,119,4,170,170,85,2,1,80,88,2,1,80,1,0,119,4,91,2,1,80,1,0,103,4,94,2,1,80,1,0,103,4,97,2,1,80,2,0,103,4,119,4,170,170,100,2,1,80,103,2,1,80,1,0,103,4,106,2,1,80,1,0,103,4,109,2,1,80,1,0,103,4,114,2,1,80,1,0,103,4,117,2,1,80,1,0,119,4,120,2,1,80,1,0,103,4,123,2,1,80,1,0,103,4,126,2,1,80,1,0,103,4,129,2,1,80,2,0,111,4,129,4,170,170,210,195,0,96,132,2,1,144,2,0,111,4,129,4,170,170,74,39,0,96,159,2,1,144,2,0,103,4,119,4,170,170,48,172,0,32,52,172,0,32,1,0,111,4,162,2,1,144,1,0,119,4,60,172,0,32,1,0,103,4,166,2,1,80,1,0,103,4,169,2,1,80,1,0,103,4,172,2,1,80,2,0,103,4,119,4,170,170,175,2,1,80,178,2,1,80,2,0,103,4,119,4,170,170,181,2,1,80,184,2,1,80,1,0,119,4,187,2,1,80,2,0,103,4,119,4,170,170,190,2,1,80,193,2,1,80,2,0,103,4,119,4,170,170,196,2,1,80,199,2,1,80,2,0,103,4,119,4,170,170,202,2,1,80,205,2,1,80,1,0,103,4,208,2,1,80,2,0,103,4,119,4,170,170,211,2,1,80,214,2,1,80,1,0,103,4,217,2,1,80,2,0,103,4,119,4,170,170,220,2,1,80,223,2,1,80,1,0,119,4,226,2,1,80,2,0,103,4,119,4,170,170,229,2,1,80,232,2,1,80,1,0,103,4,235,2,1,80,2,0,111,4,129,4,170,170,240,2,1,144,188,1,0,96,1,0,129,4,244,2,1,144,2,0,103,4,119,4,170,170,112,172,0,32,116,172,0,32,2,0,103,4,119,4,170,170,248,2,1,80,251,2,1,80,2,0,111,4,129,4,170,170,194,195,0,96,1,3,1,144,2,0,103,4,119,4,170,170,254,2,1,80,126,172,0,32,2,0,103,4,119,4,170,170,4,3,1,80,7,3,1,80,1,0,103,4,12,3,1,80,1,0,129,4,18,3,1,144,2,0,103,4,119,4,170,170,15,3,1,80,140,172,0,32,1,0,103,4,21,3,1,80,1,0,103,4,24,3,1,80,2,0,103,4,119,4,170,170,27,3,1,80,30,3,1,80,1,0,103,4,35,3,1,80,2,0,103,4,119,4,170,170,38,3,1,80,41,3,1,80,1,0,103,4,44,3,1,80,2,0,103,4,119,4,170,170,49,3,1,80,52,3,1,80,2,0,103,4,119,4,170,170,55,3,1,80,58,3,1,80,2,0,103,4,119,4,170,170,61,3,1,80,64,3,1,80,1,0,103,4,67,3,1,80,1,0,103,4,70,3,1,80,1,0,103,4,73,3,1,80,2,0,103,4,119,4,170,170,76,3,1,80,79,3,1,80,1,0,103,4,82,3,1,80,1,0,103,4,85,3,1,80,2,0,103,4,119,4,170,170,90,3,1,80,93,3,1,80,2,0,103,4,119,4,170,170,96,3,1,80,99,3,1,80,1,0,103,4,102,3,1,80,2,0,103,4,119,4,170,170,105,3,1,80,108,3,1,80,2,0,103,4,119,4,170,170,111,3,1,80,114,3,1,80,1,0,129,4,120,3,1,144,2,0,103,4,119,4,170,170,117,3,1,80,206,172,0,32,1,0,103,4,124,3,1,80,2,0,103,4,119,4,170,170,129,3,1,80,132,3,1,80,2,0,103,4,119,4,170,170,135,3,1,80,138,3,1,80,2,0,103,4,119,4,170,170,141,3,1,80,144,3,1,80,2,0,103,4,119,4,170,170,147,3,1,80,150,3,1,80,1,0,119,4,153,3,1,80,1,0,103,4,156,3,1,80,2,0,103,4,119,4,170,170,159,3,1,80,162,3,1,80,1,0,103,4,165,3,1,80,1,0,103,4,168,3,1,80,1,0,111,4,171,3,1,144,2,0,103,4,119,4,170,170,242,172,0,32,174,3,1,80,1,0,103,4,177,3,1,80,2,0,103,4,119,4,170,170,180,3,1,80,185,3,1,80,2,0,103,4,119,4,170,170,188,3,1,80,191,3,1,80,1,0,103,4,194,3,1,80,2,0,103,4,119,4,170,170,197,3,1,80,200,3,1,80,1,0,103,4,203,3,1,80,1,0,103,4,206,3,1,80,1,0,103,4,209,3,1,80,2,0,103,4,119,4,170,170,212,3,1,80,215,3,1,80,2,0,103,4,119,4,170,170,220,3,1,80,223,3,1,80,2,0,111,4,129,4,170,170,226,3,1,144,164,1,0,96,1,0,103,4,22,173,0,32,1,0,119,4,229,3,1,80,1,0,103,4,232,3,1,80,1,0,103,4,235,3,1,80,1,0,103,4,238,3,1,80,1,0,103,4,241,3,1,80,2,0,103,4,119,4,170,170,244,3,1,80,247,3,1,80,2,0,103,4,119,4,170,170,250,3,1,80,253,3,1,80,2,0,103,4,119,4,170,170,2,4,1,80,5,4,1,80,1,0,103,4,8,4,1,80,1,0,103,4,11,4,1,80,1,0,103,4,14,4,1,80,1,0,103,4,17,4,1,80,1,0,103,4,20,4,1,80,2,0,103,4,119,4,170,170,23,4,1,80,28,4,1,80,1,0,103,4,31,4,1,80,1,0,103,4,34,4,1,80,1,0,103,4,37,4,1,80,1,0,103,4,40,4,1,80,1,0,111,4,43,4,1,144,1,0,103,4,72,173,0,32,2,0,103,4,119,4,170,170,46,4,1,80,49,4,1,80,2,0,103,4,119,4,170,170,52,4,1,80,55,4,1,80,2,0,103,4,119,4,170,170,58,4,1,80,61,4,1,80,1,0,103,4,64,4,1,80,2,0,103,4,119,4,170,170,69,4,1,80,72,4,1,80,1,0,103,4,75,4,1,80,1,0,119,4,78,4,1,80,1,0,103,4,81,4,1,80,2,0,103,4,119,4,170,170,84,4,1,80,87,4,1,80,1,0,103,4,92,4,1,80,1,0,103,4,95,4,1,80,1,0,103,4,98,4,1,80,2,0,103,4,119,4,170,170,101,4,1,80,104,4,1,80,2,0,103,4,119,4,170,170,107,4,1,80,110,4,1,80,1,0,103,4,113,4,1,80,1,0,129,4,119,4,1,144,2,0,103,4,119,4,170,170,116,4,1,80,120,173,0,32,1,0,103,4,122,4,1,80,1,0,103,4,125,4,1,80,1,0,103,4,128,4,1,80,1,0,111,4,131,4,1,144,1,0,119,4,132,173,0,32,1,0,103,4,135,4,1,80,1,0,111,4,138,4,1,144,2,0,103,4,119,4,170,170,138,173,0,32,141,4,1,80,1,0,103,4,144,4,1,80,1,0,103,4,147,4,1,80,2,0,103,4,119,4,170,170,150,4,1,80,153,4,1,80,1,0,103,4,156,4,1,80,2,0,103,4,119,4,170,170,159,4,1,80,162,4,1,80,1,0,103,4,165,4,1,80,2,0,103,4,119,4,170,170,168,4,1,80,171,4,1,80,2,0,103,4,119,4,170,170,174,4,1,80,179,4,1,80,1,0,119,4,182,4,1,80,1,0,103,4,187,4,1,80,1,0,103,4,190,4,1,80,1,0,119,4,193,4,1,80,2,0,103,4,119,4,170,170,196,4,1,80,199,4,1,80,2,0,103,4,119,4,170,170,202,4,1,80,205,4,1,80,2,0,103,4,119,4,170,170,208,4,1,80,213,4,1,80,1,0,103,4,216,4,1,80,1,0,103,4,219,4,1,80,1,0,103,4,222,4,1,80,2,0,103,4,119,4,170,170,225,4,1,80,228,4,1,80,2,0,111,4,129,4,170,170,194,195,0,96,231,4,1,144,2,0,111,4,129,4,170,170,94,39,0,96,238,4,1,144,2,0,103,4,119,4,170,170,198,173,0,32,202,173,0,32,1,0,103,4,252,4,1,80,2,0,103,4,119,4,170,170,255,4,1,80,2,5,1,80,2,0,103,4,119,4,170,170,7,5,1,80,10,5,1,80,1,0,103,4,13,5,1,80,2,0,103,4,119,4,170,170,16,5,1,80,19,5,1,80,1,0,103,4,22,5,1,80,2,0,103,4,119,4,170,170,25,5,1,80,28,5,1,80,2,0,111,4,129,4,170,170,34,5,1,144,121,105,0,96,2,0,103,4,119,4,170,170,31,5,1,80,232,173,0,32,1,0,103,4,37,5,1,80,1,0,103,4,40,5,1,80,1,0,103,4,43,5,1,80,1,0,103,4,46,5,1,80,1,0,103,4,49,5,1,80,1,0,119,4,52,5,1,80,1,0,103,4,55,5,1,80,2,0,103,4,119,4,170,170,60,5,1,80,63,5,1,80,2,0,103,4,119,4,170,170,68,5,1,80,71,5,1,80,1,0,103,4,74,5,1,80,1,0,103,4,79,5,1,80,1,0,129,4,85,5,1,144,2,0,103,4,119,4,170,170,82,5,1,80,10,174,0,32,2,0,103,4,119,4,170,170,88,5,1,80,91,5,1,80,1,0,103,4,94,5,1,80,1,0,119,4,97,5,1,80,1,0,103,4,100,5,1,80,1,0,103,4,103,5,1,80,2,0,111,4,129,4,170,170,54,39,0,96,106,5,1,144,1,0,103,4,28,174,0,32,2,0,111,4,129,4,170,170,194,195,0,96,109,5,1,144,2,0,111,4,129,4,170,170,199,5,1,144,202,5,1,144,2,0,103,4,119,4,170,170,34,174,0,32,38,174,0,32,1,0,119,4,253,5,1,80,1,0,103,4,0,6,1,80,2,0,111,4,129,4,170,170,194,195,0,96,3,6,1,144,1,0,129,4,27,6,1,144,2,0,103,4,119,4,170,170,50,174,0,32,54,174,0,32,1,0,103,4,38,6,1,80,1,0,103,4,41,6,1,80,1,0,111,4,46,6,1,144,1,0,119,4,64,174,0,32,2,0,103,4,119,4,170,170,49,6,1,80,52,6,1,80,1,0,103,4,55,6,1,80,1,0,103,4,58,6,1,80,1,0,103,4,61,6,1,80,2,0,111,4,129,4,170,170,210,195,0,96,64,6,1,144,2,0,103,4,119,4,170,170,78,174,0,32,67,6,1,80,2,0,103,4,119,4,170,170,70,6,1,80,73,6,1,80,1,0,119,4,76,6,1,80,2,0,111,4,129,4,170,170,210,196,0,96,82,6,1,144,2,0,103,4,119,4,170,170,79,6,1,80,92,174,0,32,2,0,103,4,119,4,170,170,85,6,1,80,88,6,1,80,1,0,129,4,96,6,1,144,2,0,103,4,119,4,170,170,91,6,1,80,104,174,0,32,1,0,103,4,99,6,1,80,2,0,103,4,119,4,170,170,102,6,1,80,107,6,1,80,1,0,103,4,112,6,1,80,1,0,103,4,115,6,1,80,1,0,103,4,120,6,1,80,2,0,103,4,119,4,170,170,125,6,1,80,128,6,1,80,2,0,111,4,129,4,170,170,194,195,0,96,131,6,1,144,2,0,111,4,129,4,170,170,134,44,0,96,177,6,1,144,2,0,103,4,119,4,170,170,126,174,0,32,130,174,0,32,1,0,103,4,186,6,1,80,1,0,119,4,189,6,1,80,1,0,119,4,192,6,1,80,1,0,103,4,195,6,1,80,2,0,103,4,119,4,170,170,198,6,1,80,201,6,1,80,1,0,103,4,204,6,1,80,2,0,103,4,119,4,170,170,207,6,1,80,210,6,1,80,2,0,103,4,119,4,170,170,213,6,1,80,216,6,1,80,1,0,103,4,219,6,1,80,2,0,103,4,119,4,170,170,222,6,1,80,225,6,1,80,2,0,103,4,119,4,170,170,228,6,1,80,231,6,1,80,2,0,103,4,119,4,170,170,234,6,1,80,237,6,1,80,2,0,103,4,119,4,170,170,240,6,1,80,245,6,1,80,2,0,103,4,119,4,170,170,248,6,1,80,251,6,1,80,2,0,103,4,119,4,170,170,254,6,1,80,1,7,1,80,2,0,103,4,119,4,170,170,4,7,1,80,7,7,1,80,1,0,103,4,10,7,1,80,1,0,103,4,13,7,1,80,2,0,103,4,119,4,170,170,16,7,1,80,19,7,1,80,1,0,103,4,22,7,1,80,2,0,103,4,119,4,170,170,25,7,1,80,28,7,1,80,2,0,103,4,119,4,170,170,31,7,1,80,34,7,1,80,1,0,119,4,37,7,1,80,1,0,103,4,40,7,1,80,1,0,103,4,45,7,1,80,1,0,103,4,48,7,1,80,2,0,103,4,119,4,170,170,51,7,1,80,54,7,1,80,1,0,103,4,57,7,1,80,2,0,103,4,119,4,170,170,60,7,1,80,63,7,1,80,1,0,119,4,66,7,1,80,1,0,103,4,69,7,1,80,1,0,119,4,74,7,1,80,2,0,103,4,119,4,170,170,77,7,1,80,80,7,1,80,1,0,111,4,83,7,1,144,2,0,103,4,119,4,170,170,236,174,0,32,86,7,1,80,2,0,103,4,119,4,170,170,89,7,1,80,92,7,1,80,1,0,103,4,95,7,1,80,1,0,119,4,98,7,1,80,1,0,103,4,101,7,1,80,1,0,111,4,104,7,1,144,1,0,119,4,252,174,0,32,1,0,103,4,108,7,1,80,2,0,111,4,129,4,170,170,194,195,0,96,111,7,1,144,2,0,103,4,119,4,170,170,2,175,0,32,114,7,1,80,1,0,129,4,120,7,1,144,2,0,103,4,119,4,170,170,117,7,1,80,10,175,0,32,1,0,103,4,123,7,1,80,1,0,103,4,126,7,1,80,2,0,103,4,119,4,170,170,129,7,1,80,132,7,1,80,2,0,103,4,119,4,170,170,135,7,1,80,138,7,1,80,1,0,103,4,141,7,1,80,1,0,103,4,146,7,1,80,2,0,103,4,119,4,170,170,149,7,1,80,152,7,1,80,1,0,111,4,155,7,1,144,1,0,129,4,158,7,1,144,2,0,103,4,119,4,170,170,36,175,0,32,38,175,0,32,1,0,103,4,161,7,1,80,2,0,103,4,119,4,170,170,164,7,1,80,167,7,1,80,2,0,103,4,119,4,170,170,170,7,1,80,173,7,1,80,2,0,103,4,119,4,170,170,176,7,1,80,179,7,1,80,1,0,103,4,182,7,1,80,2,0,111,4,129,4,170,170,192,7,1,144,195,7,1,144,2,0,103,4,119,4,170,170,187,7,1,80,60,175,0,32,2,0,111,4,129,4,170,170,199,7,1,144,45,106,0,96,1,0,103,4,68,175,0,32,2,0,103,4,119,4,170,170,202,7,1,80,205,7,1,80,1,0,119,4,208,7,1,80,1,0,103,4,211,7,1,80,2,0,103,4,119,4,170,170,214,7,1,80,217,7,1,80,1,0,103,4,220,7,1,80,2,0,103,4,119,4,170,170,223,7,1,80,226,7,1,80,1,0,103,4,229,7,1,80,2,0,103,4,119,4,170,170,232,7,1,80,235,7,1,80,2,0,103,4,119,4,170,170,238,7,1,80,241,7,1,80,1,0,103,4,244,7,1,80,2,0,103,4,119,4,170,170,249,7,1,80,252,7,1,80,2,0,103,4,119,4,170,170,1,8,1,80,4,8,1,80,1,0,103,4,7,8,1,80,2,0,111,4,129,4,170,170,194,195,0,96,10,8,1,144,1,0,129,4,13,8,1,144,2,0,103,4,119,4,170,170,114,175,0,32,118,175,0,32,1,0,103,4,17,8,1,80,2,0,103,4,119,4,170,170,20,8,1,80,23,8,1,80,1,0,103,4,26,8,1,80,1,0,129,4,36,8,1,144,2,0,103,4,119,4,170,170,31,8,1,80,132,175,0,32,1,0,103,4,40,8,1,80,1,0,103,4,43,8,1,80,2,0,103,4,119,4,170,170,46,8,1,80,51,8,1,80,1,0,103,4,54,8,1,80,1,0,119,4,57,8,1,80,1,0,103,4,60,8,1,80,2,0,103,4,119,4,170,170,63,8,1,80,66,8,1,80,2,0,103,4,119,4,170,170,69,8,1,80,74,8,1,80,1,0,103,4,77,8,1,80,2,0,103,4,119,4,170,170,80,8,1,80,83,8,1,80,2,0,103,4,119,4,170,170,86,8,1,80,89,8,1,80,1,0,103,4,94,8,1,80,1,0,103,4,97,8,1,80,2,0,103,4,119,4,170,170,100,8,1,80,103,8,1,80,2,0,111,4,129,4,170,170,109,8,1,144,36,1,0,96,2,0,103,4,119,4,170,170,106,8,1,80,178,175,0,32,1,0,103,4,112,8,1,80,2,0,111,4,129,4,170,170,194,195,0,96,117,8,1,144,1,0,129,4,122,8,1,144,2,0,103,4,119,4,170,170,188,175,0,32,192,175,0,32,1,0,111,4,128,8,1,144,2,0,103,4,119,4,170,170,198,175,0,32,131,8,1,80,1,0,103,4,134,8,1,80,1,0,103,4,137,8,1,80,2,0,103,4,119,4,170,170,142,8,1,80,145,8,1,80,1,0,103,4,148,8,1,80,1,0,103,4,151,8,1,80,1,0,103,4,154,8,1,80,1,0,103,4,157,8,1,80,1,0,103,4,160,8,1,80,1,0,119,4,163,8,1,80,2,0,103,4,119,4,170,170,166,8,1,80,169,8,1,80,1,0,103,4,174,8,1,80,1,0,103,4,179,8,1,80,2,0,103,4,119,4,170,170,182,8,1,80,185,8,1,80,1,0,103,4,188,8,1,80,1,0,103,4,191,8,1,80,2,0,103,4,119,4,170,170,194,8,1,80,197,8,1,80,1,0,103,4,200,8,1,80,2,0,103,4,119,4,170,170,203,8,1,80,206,8,1,80,1,0,103,4,209,8,1,80,1,0,103,4,212,8,1,80,1,0,103,4,215,8,1,80,2,0,103,4,119,4,170,170,218,8,1,80,221,8,1,80,1,0,103,4,224,8,1,80,2,0,103,4,119,4,170,170,227,8,1,80,230,8,1,80,1,0,103,4,233,8,1,80,1,0,103,4,236,8,1,80,2,0,103,4,119,4,170,170,239,8,1,80,242,8,1,80,2,0,103,4,119,4,170,170,245,8,1,80,248,8,1,80,1,0,103,4,251,8,1,80,1,0,103,4,254,8,1,80,2,0,103,4,119,4,170,170,1,9,1,80,4,9,1,80,1,0,103,4,9,9,1,80,2,0,103,4,119,4,170,170,12,9,1,80,15,9,1,80,1,0,103,4,18,9,1,80,1,0,103,4,21,9,1,80,1,0,103,4,24,9,1,80,2,0,103,4,119,4,170,170,27,9,1,80,30,9,1,80,1,0,103,4,33,9,1,80,2,0,103,4,119,4,170,170,36,9,1,80,39,9,1,80,2,0,103,4,119,4,170,170,42,9,1,80,45,9,1,80,1,0,103,4,48,9,1,80,2,0,111,4,129,4,170,170,51,9,1,144,40,0,0,96,2,0,103,4,119,4,170,170,58,176,0,32,54,9,1,80,1,0,103,4,57,9,1,80,2,0,103,4,119,4,170,170,60,9,1,80,65,9,1,80,2,0,103,4,119,4,170,170,68,9,1,80,71,9,1,80,1,0,103,4,74,9,1,80,2,0,103,4,119,4,170,170,79,9,1,80,82,9,1,80,2,0,103,4,119,4,170,170,85,9,1,80,88,9,1,80,1,0,119,4,91,9,1,80,2,0,111,4,129,4,170,170,58,196,0,96,94,9,1,144,1,0,129,4,97,9,1,144,2,0,103,4,119,4,170,170,88,176,0,32,92,176,0,32,2,0,103,4,119,4,170,170,100,9,1,80,103,9,1,80,2,0,103,4,119,4,170,170,106,9,1,80,109,9,1,80,1,0,103,4,112,9,1,80,1,0,103,4,115,9,1,80,1,0,103,4,118,9,1,80,1,0,103,4,121,9,1,80,2,0,103,4,119,4,170,170,124,9,1,80,127,9,1,80,2,0,103,4,119,4,170,170,130,9,1,80,133,9,1,80,1,0,103,4,136,9,1,80,1,0,103,4,139,9,1,80,2,0,103,4,119,4,170,170,142,9,1,80,145,9,1,80,1,0,111,4,148,9,1,144,2,0,103,4,119,4,170,170,130,176,0,32,151,9,1,80,1,0,103,4,154,9,1,80,1,0,103,4,157,9,1,80,1,0,103,4,160,9,1,80,1,0,111,4,163,9,1,144,1,0,129,4,167,9,1,144,2,0,103,4,119,4,170,170,142,176,0,32,144,176,0,32,2,0,103,4,119,4,170,170,170,9,1,80,173,9,1,80,1,0,103,4,176,9,1,80,2,0,103,4,119,4,170,170,179,9,1,80,182,9,1,80,1,0,103,4,187,9,1,80,1,0,103,4,190,9,1,80,1,0,103,4,193,9,1,80,1,0,103,4,196,9,1,80,2,0,103,4,119,4,170,170,199,9,1,80,202,9,1,80,1,0,103,4,205,9,1,80,2,0,111,4,129,4,170,170,208,9,1,144,212,1,0,96,1,0,103,4,174,176,0,32,1,0,103,4,212,9,1,80,1,0,119,4,215,9,1,80,1,0,119,4,220,9,1,80,1,0,103,4,223,9,1,80,1,0,103,4,226,9,1,80,2,0,103,4,119,4,170,170,229,9,1,80,232,9,1,80,2,0,103,4,119,4,170,170,235,9,1,80,238,9,1,80,1,0,103,4,241,9,1,80,1,0,103,4,244,9,1,80,2,0,103,4,119,4,170,170,249,9,1,80,252,9,1,80,1,0,103,4,255,9,1,80,1,0,103,4,2,10,1,80,1,0,103,4,5,10,1,80,2,0,103,4,119,4,170,170,8,10,1,80,11,10,1,80,1,0,111,4,16,10,1,144,1,0,119,4,216,176,0,32,2,0,103,4,119,4,170,170,19,10,1,80,22,10,1,80,1,0,103,4,25,10,1,80,1,0,111,4,28,10,1,144,1,0,103,4,226,176,0,32,1,0,103,4,31,10,1,80,1,0,103,4,34,10,1,80,1,0,103,4,37,10,1,80,1,0,119,4,40,10,1,80,2,0,103,4,119,4,170,170,43,10,1,80,46,10,1,80,1,0,103,4,49,10,1,80,1,0,103,4,52,10,1,80,2,0,103,4,119,4,170,170,55,10,1,80,58,10,1,80,1,0,103,4,61,10,1,80,2,0,103,4,119,4,170,170,64,10,1,80,67,10,1,80,1,0,103,4,70,10,1,80,1,0,103,4,75,10,1,80,2,0,103,4,119,4,170,170,78,10,1,80,81,10,1,80,2,0,103,4,119,4,170,170,84,10,1,80,87,10,1,80,2,0,103,4,119,4,170,170,90,10,1,80,95,10,1,80,1,0,103,4,98,10,1,80,2,0,103,4,119,4,170,170,101,10,1,80,104,10,1,80,2,0,103,4,119,4,170,170,107,10,1,80,110,10,1,80,1,0,119,4,113,10,1,80,1,0,103,4,116,10,1,80,2,0,103,4,119,4,170,170,119,10,1,80,122,10,1,80,1,0,103,4,125,10,1,80,1,0,119,4,128,10,1,80,2,0,103,4,119,4,170,170,131,10,1,80,134,10,1,80,2,0,103,4,119,4,170,170,137,10,1,80,140,10,1,80,1,0,103,4,143,10,1,80,1,0,103,4,148,10,1,80,1,0,119,4,151,10,1,80,1,0,111,4,154,10,1,144,1,0,103,4,52,177,0,32,2,0,103,4,119,4,170,170,157,10,1,80,160,10,1,80,1,0,103,4,163,10,1,80,2,0,103,4,119,4,170,170,166,10,1,80,169,10,1,80,2,0,111,4,129,4,170,170,113,45,0,96,175,10,1,144,2,0,103,4,119,4,170,170,172,10,1,80,66,177,0,32,2,0,103,4,119,4,170,170,178,10,1,80,181,10,1,80,1,0,111,4,186,10,1,144,1,0,129,4,189,10,1,144,2,0,103,4,119,4,170,170,78,177,0,32,80,177,0,32,1,0,103,4,192,10,1,80,1,0,103,4,195,10,1,80,2,0,103,4,119,4,170,170,198,10,1,80,201,10,1,80,2,0,103,4,119,4,170,170,204,10,1,80,207,10,1,80,2,0,103,4,119,4,170,170,210,10,1,80,213,10,1,80,1,0,103,4,216,10,1,80,2,0,103,4,119,4,170,170,219,10,1,80,222,10,1,80,2,0,103,4,119,4,170,170,227,10,1,80,230,10,1,80,1,0,119,4,233,10,1,80,2,0,103,4,119,4,170,170,236,10,1,80,239,10,1,80,2,0,103,4,119,4,170,170,242,10,1,80,245,10,1,80,1,0,119,4,248,10,1,80,1,0,103,4,251,10,1,80,2,0,103,4,119,4,170,170,0,11,1,80,3,11,1,80,1,0,103,4,6,11,1,80,1,0,103,4,9,11,1,80,1,0,103,4,12,11,1,80,1,0,103,4,15,11,1,80,1,0,103,4,20,11,1,80,1,0,103,4,25,11,1,80,2,0,103,4,119,4,170,170,28,11,1,80,31,11,1,80,1,0,103,4,34,11,1,80,2,0,103,4,119,4,170,170,39,11,1,80,42,11,1,80,1,0,103,4,45,11,1,80,2,0,111,4,129,4,170,170,53,11,1,144,52,1,0,96,2,0,103,4,119,4,170,170,48,11,1,80,154,177,0,32,1,0,119,4,56,11,1,80,2,0,103,4,119,4,170,170,59,11,1,80,62,11,1,80,1,0,103,4,67,11,1,80,1,0,103,4,70,11,1,80,1,0,103,4,73,11,1,80,1,0,103,4,76,11,1,80,2,0,103,4,119,4,170,170,79,11,1,80,82,11,1,80,2,0,103,4,119,4,170,170,85,11,1,80,88,11,1,80,1,0,103,4,93,11,1,80,1,0,103,4,96,11,1,80,2,0,103,4,119,4,170,170,99,11,1,80,102,11,1,80,2,0,111,4,129,4,170,170,105,11,1,144,108,11,1,144,1,0,129,4,112,11,1,144,2,0,103,4,119,4,170,170,192,177,0,32,196,177,0,32,1,0,103,4,115,11,1,80,2,0,103,4,119,4,170,170,120,11,1,80,123,11,1,80,1,0,103,4,126,11,1,80,1,0,103,4,129,11,1,80,1,0,103,4,132,11,1,80,1,0,103,4,135,11,1,80,1,0,103,4,138,11,1,80,2,0,103,4,119,4,170,170,141,11,1,80,144,11,1,80,1,0,103,4,147,11,1,80,1,0,103,4,150,11,1,80,1,0,103,4,153,11,1,80,2,0,103,4,119,4,170,170,158,11,1,80,161,11,1,80,2,0,103,4,119,4,170,170,164,11,1,80,167,11,1,80,1,0,119,4,170,11,1,80,2,0,103,4,119,4,170,170,173,11,1,80,176,11,1,80,1,0,103,4,179,11,1,80,2,0,103,4,119,4,170,170,184,11,1,80,187,11,1,80,1,0,103,4,190,11,1,80,1,0,103,4,193,11,1,80,2,0,111,4,129,4,170,170,194,195,0,96,196,11,1,144,1,0,103,4,252,177,0,32,1,0,103,4,199,11,1,80,1,0,103,4,202,11,1,80,2,0,103,4,119,4,170,170,207,11,1,80,210,11,1,80,1,0,129,4,216,11,1,144,2,0,103,4,119,4,170,170,213,11,1,80,10,178,0,32,2,0,103,4,119,4,170,170,219,11,1,80,224,11,1,80,2,0,103,4,119,4,170,170,227,11,1,80,230,11,1,80,2,0,103,4,119,4,170,170,233,11,1,80,236,11,1,80,2,0,103,4,119,4,170,170,239,11,1,80,242,11,1,80,1,0,103,4,245,11,1,80,1,0,103,4,248,11,1,80,1,0,103,4,251,11,1,80,1,0,103,4,254,11,1,80,1,0,103,4,1,12,1,80,1,0,103,4,6,12,1,80,2,0,111,4,129,4,170,170,194,195,0,96,9,12,1,144,2,0,103,4,119,4,170,170,44,178,0,32,17,12,1,80,1,0,103,4,20,12,1,80,1,0,103,4,23,12,1,80,1,0,103,4,28,12,1,80,1,0,103,4,31,12,1,80,2,0,103,4,119,4,170,170,36,12,1,80,39,12,1,80,2,0,103,4,119,4,170,170,42,12,1,80,45,12,1,80,1,0,103,4,48,12,1,80,1,0,119,4,51,12,1,80,1,0,119,4,54,12,1,80,1,0,103,4,57,12,1,80,2,0,103,4,119,4,170,170,60,12,1,80,63,12,1,80,2,0,103,4,119,4,170,170,66,12,1,80,69,12,1,80,2,0,103,4,119,4,170,170,72,12,1,80,75,12,1,80,1,0,103,4,78,12,1,80,1,0,103,4,81,12,1,80,1,0,103,4,84,12,1,80,2,0,103,4,119,4,170,170,87,12,1,80,92,12,1,80,2,0,103,4,119,4,170,170,95,12,1,80,98,12,1,80,2,0,103,4,119,4,170,170,101,12,1,80,104,12,1,80,1,0,103,4,107,12,1,80,1,0,103,4,110,12,1,80,1,0,129,4,116,12,1,144,2,0,103,4,119,4,170,170,113,12,1,80,110,178,0,32,2,0,103,4,119,4,170,170,119,12,1,80,122,12,1,80,1,0,103,4,125,12,1,80,1,0,103,4,128,12,1,80,2,0,103,4,119,4,170,170,131,12,1,80,134,12,1,80,2,0,103,4,119,4,170,170,139,12,1,80,142,12,1,80,2,0,103,4,119,4,170,170,145,12,1,80,148,12,1,80,2,0,103,4,119,4,170,170,151,12,1,80,154,12,1,80,1,0,111,4,157,12,1,144,1,0,119,4,140,178,0,32,1,0,119,4,160,12,1,80,1,0,111,4,163,12,1,144,1,0,129,4,166,12,1,144,2,0,103,4,119,4,170,170,146,178,0,32,148,178,0,32,2,0,103,4,119,4,170,170,170,12,1,80,173,12,1,80,1,0,111,4,176,12,1,144,1,0,119,4,158,178,0,32,2,0,103,4,119,4,170,170,179,12,1,80,182,12,1,80,2,0,111,4,129,4,170,170,194,195,0,96,185,12,1,144,2,0,103,4,119,4,170,170,166,178,0,32,188,12,1,80,1,0,103,4,191,12,1,80,1,0,103,4,196,12,1,80,2,0,103,4,119,4,170,170,199,12,1,80,202,12,1,80,1,0,103,4,205,12,1,80,1,0,103,4,208,12,1,80,1,0,119,4,211,12,1,80,1,0,103,4,214,12,1,80,1,0,119,4,217,12,1,80,1,0,111,4,220,12,1,144,1,0,119,4,192,178,0,32,2,0,103,4,119,4,170,170,224,12,1,80,227,12,1,80,1,0,103,4,230,12,1,80,1,0,129,4,238,12,1,144,2,0,103,4,119,4,170,170,233,12,1,80,202,178,0,32,1,0,103,4,241,12,1,80,1,0,111,4,244,12,1,144,1,0,103,4,210,178,0,32,2,0,103,4,119,4,170,170,248,12,1,80,251,12,1,80,1,0,103,4,254,12,1,80,1,0,103,4,1,13,1,80,1,0,119,4,4,13,1,80,1,0,119,4,7,13,1,80,2,0,103,4,119,4,170,170,10,13,1,80,15,13,1,80,2,0,111,4,129,4,170,170,194,195,0,96,18,13,1,144,1,0,103,4,230,178,0,32,1,0,103,4,29,13,1,80,2,0,111,4,129,4,170,170,194,195,0,96,32,13,1,144,1,0,103,4,238,178,0,32,2,0,103,4,119,4,170,170,36,13,1,80,39,13,1,80,1,0,103,4,42,13,1,80,2,0,103,4,119,4,170,170,45,13,1,80,48,13,1,80,1,0,103,4,51,13,1,80,1,0,103,4,54,13,1,80,2,0,103,4,119,4,170,170,57,13,1,80,60,13,1,80,2,0,103,4,119,4,170,170,63,13,1,80,66,13,1,80,1,0,103,4,71,13,1,80,1,0,111,4,77,13,1,144,2,0,103,4,119,4,170,170,74,13,1,80,12,179,0,32,1,0,103,4,80,13,1,80,1,0,111,4,83,13,1,144,2,0,103,4,119,4,170,170,20,179,0,32,86,13,1,80,1,0,103,4,89,13,1,80,1,0,129,4,95,13,1,144,2,0,103,4,119,4,170,170,92,13,1,80,28,179,0,32,2,0,103,4,119,4,170,170,98,13,1,80,101,13,1,80,1,0,103,4,104,13,1,80,1,0,103,4,107,13,1,80,2,0,103,4,119,4,170,170,110,13,1,80,113,13,1,80,1,0,103,4,116,13,1,80,1,0,103,4,119,13,1,80,2,0,103,4,119,4,170,170,124,13,1,80,127,13,1,80,2,0,111,4,129,4,170,170,194,195,0,96,130,13,1,144,2,0,103,4,119,4,170,170,54,179,0,32,133,13,1,80,1,0,103,4,138,13,1,80,1,0,103,4,141,13,1,80,2,0,103,4,119,4,170,170,144,13,1,80,147,13,1,80,1,0,103,4,150,13,1,80,2,0,111,4,129,4,170,170,202,195,0,96,153,13,1,144,1,0,129,4,159,13,1,144,2,0,103,4,119,4,170,170,72,179,0,32,76,179,0,32,1,0,103,4,169,13,1,80,1,0,103,4,172,13,1,80,1,0,103,4,175,13,1,80,1,0,103,4,178,13,1,80,1,0,103,4,183,13,1,80,1,0,103,4,186,13,1,80,2,0,111,4,129,4,170,170,189,13,1,144,121,105,0,96,1,0,119,4,94,179,0,32,1,0,103,4,195,13,1,80,1,0,103,4,198,13,1,80,2,0,103,4,119,4,170,170,201,13,1,80,204,13,1,80,1,0,111,4,207,13,1,144,1,0,119,4,108,179,0,32,1,0,103,4,210,13,1,80,2,0,103,4,119,4,170,170,213,13,1,80,216,13,1,80,2,0,111,4,129,4,170,170,222,13,1,144,121,105,0,96,2,0,103,4,119,4,170,170,219,13,1,80,118,179,0,32,1,0,119,4,227,13,1,80,1,0,103,4,230,13,1,80,1,0,103,4,233,13,1,80,2,0,103,4,119,4,170,170,236,13,1,80,239,13,1,80,2,0,103,4,119,4,170,170,242,13,1,80,245,13,1,80,1,0,103,4,248,13,1,80,2,0,103,4,119,4,170,170,251,13,1,80,254,13,1,80,1,0,103,4,1,14,1,80,1,0,111,4,4,14,1,144,2,0,111,4,129,4,170,170,7,14,1,144,10,14,1,144,2,0,103,4,119,4,170,170,148,179,0,32,150,179,0,32,1,0,103,4,13,14,1,80,2,0,103,4,119,4,170,170,16,14,1,80,19,14,1,80,2,0,103,4,119,4,170,170,22,14,1,80,25,14,1,80,1,0,103,4,30,14,1,80,2,0,103,4,119,4,170,170,33,14,1,80,36,14,1,80,2,0,103,4,119,4,170,170,39,14,1,80,42,14,1,80,1,0,103,4,45,14,1,80,1,0,119,4,48,14,1,80,1,0,103,4,51,14,1,80,1,0,103,4,54,14,1,80,1,0,111,4,59,14,1,144,1,0,119,4,186,179,0,32,1,0,103,4,62,14,1,80,1,0,111,4,65,14,1,144,2,0,103,4,119,4,170,170,192,179,0,32,69,14,1,80,2,0,103,4,119,4,170,170,72,14,1,80,75,14,1,80,1,0,103,4,78,14,1,80,2,0,103,4,119,4,170,170,83,14,1,80,86,14,1,80,1,0,129,4,94,14,1,144,2,0,103,4,119,4,170,170,89,14,1,80,208,179,0,32,2,0,103,4,119,4,170,170,97,14,1,80,100,14,1,80,2,0,103,4,119,4,170,170,103,14,1,80,108,14,1,80,1,0,103,4,111,14,1,80,1,0,103,4,114,14,1,80,2,0,111,4,129,4,170,170,194,195,0,96,117,14,1,144,1,0,103,4,226,179,0,32,1,0,103,4,120,14,1,80,1,0,103,4,123,14,1,80,1,0,103,4,126,14,1,80,1,0,119,4,129,14,1,80,2,0,103,4,119,4,170,170,132,14,1,80,135,14,1,80,1,0,103,4,138,14,1,80,1,0,119,4,143,14,1,80,2,0,103,4,119,4,170,170,146,14,1,80,149,14,1,80,2,0,111,4,129,4,170,170,157,14,1,144,160,14,1,144,2,0,103,4,119,4,170,170,152,14,1,80,252,179,0,32,2,0,103,4,119,4,170,170,163,14,1,80,166,14,1,80,2,0,111,4,129,4,170,170,194,195,0,96,169,14,1,144,2,0,111,4,129,4,170,170,144,44,0,96,172,14,1,144,2,0,103,4,119,4,170,170,8,180,0,32,12,180,0,32,2,0,111,4,129,4,170,170,175,14,1,144,178,14,1,144,1,0,103,4,20,180,0,32,2,0,103,4,119,4,170,170,183,14,1,80,186,14,1,80,2,0,103,4,119,4,170,170,189,14,1,80,192,14,1,80,2,0,103,4,119,4,170,170,195,14,1,80,198,14,1,80,1,0,103,4,201,14,1,80,2,0,103,4,119,4,170,170,204,14,1,80,209,14,1,80,1,0,103,4,212,14,1,80,2,0,103,4,119,4,170,170,215,14,1,80,220,14,1,80,1,0,103,4,223,14,1,80,2,0,103,4,119,4,170,170,226,14,1,80,229,14,1,80,2,0,103,4,119,4,170,170,234,14,1,80,237,14,1,80,2,0,103,4,119,4,170,170,240,14,1,80,243,14,1,80,2,0,111,4,129,4,170,170,194,195,0,96,248,14,1,144,1,0,103,4,64,180,0,32,2,0,111,4,129,4,170,170,194,195,0,96,252,14,1,144,2,0,103,4,119,4,170,170,70,180,0,32,0,15,1,80,2,0,103,4,119,4,170,170,3,15,1,80,6,15,1,80,1,0,103,4,11,15,1,80,2,0,103,4,119,4,170,170,14,15,1,80,17,15,1,80,1,0,103,4,20,15,1,80,1,0,103,4,23,15,1,80,2,0,103,4,119,4,170,170,26,15,1,80,29,15,1,80,1,0,119,4,34,15,1,80,1,0,103,4,37,15,1,80,2,0,111,4,129,4,170,170,98,196,0,96,40,15,1,144,1,0,129,4,43,15,1,144,2,0,103,4,119,4,170,170,100,180,0,32,104,180,0,32,1,0,103,4,47,15,1,80,2,0,103,4,119,4,170,170,50,15,1,80,53,15,1,80,2,0,103,4,119,4,170,170,56,15,1,80,59,15,1,80,2,0,103,4,119,4,170,170,62,15,1,80,65,15,1,80,1,0,103,4,68,15,1,80,2,0,103,4,119,4,170,170,71,15,1,80,74,15,1,80,1,0,103,4,77,15,1,80,2,0,103,4,119,4,170,170,80,15,1,80,83,15,1,80,2,0,103,4,119,4,170,170,86,15,1,80,89,15,1,80,2,0,103,4,119,4,170,170,92,15,1,80,95,15,1,80,1,0,103,4,98,15,1,80,1,0,103,4,101,15,1,80,2,0,111,4,129,4,170,170,106,15,1,144,94,0,0,96,1,0,103,4,148,180,0,32,1,0,103,4,110,15,1,80,1,0,103,4,115,15,1,80,1,0,103,4,118,15,1,80,1,0,103,4,121,15,1,80,2,0,103,4,119,4,170,170,124,15,1,80,129,15,1,80,2,0,103,4,119,4,170,170,132,15,1,80,135,15,1,80,2,0,103,4,119,4,170,170,138,15,1,80,141,15,1,80,2,0,111,4,129,4,170,170,144,15,1,144,36,2,0,96,1,0,129,4,148,15,1,144,2,0,103,4,119,4,170,170,174,180,0,32,178,180,0,32,1,0,103,4,151,15,1,80,1,0,111,4,156,15,1,144,1,0,103,4,186,180,0,32,1,0,103,4,159,15,1,80,1,0,103,4,162,15,1,80,1,0,111,4,165,15,1,144,2,0,103,4,119,4,170,170,194,180,0,32,169,15,1,80,2,0,103,4,119,4,170,170,172,15,1,80,175,15,1,80,2,0,103,4,119,4,170,170,178,15,1,80,183,15,1,80,1,0,119,4,186,15,1,80,1,0,103,4,189,15,1,80,1,0,103,4,194,15,1,80,1,0,119,4,197,15,1,80,1,0,103,4,200,15,1,80,2,0,111,4,129,4,170,170,194,195,0,96,205,15,1,144,2,0,103,4,119,4,170,170,218,180,0,32,208,15,1,80,2,0,103,4,119,4,170,170,213,15,1,80,216,15,1,80,1,0,103,4,219,15,1,80,1,0,103,4,222,15,1,80,1,0,129,4,228,15,1,144,2,0,103,4,119,4,170,170,225,15,1,80,234,180,0,32,1,0,103,4,231,15,1,80,2,0,103,4,119,4,170,170,234,15,1,80,237,15,1,80,1,0,103,4,240,15,1,80,1,0,103,4,243,15,1,80,2,0,103,4,119,4,170,170,246,15,1,80,249,15,1,80,1,0,103,4,252,15,1,80,2,0,103,4,119,4,170,170,255,15,1,80,2,16,1,80,1,0,111,4,5,16,1,144,2,0,103,4,119,4,170,170,4,181,0,32,8,16,1,80,2,0,103,4,119,4,170,170,11,16,1,80,14,16,1,80,1,0,103,4,17,16,1,80,1,0,103,4,22,16,1,80,1,0,103,4,25,16,1,80,2,0,103,4,119,4,170,170,30,16,1,80,33,16,1,80,2,0,111,4,129,4,170,170,36,16,1,144,72,1,0,96,1,0,103,4,24,181,0,32,1,0,103,4,39,16,1,80,2,0,103,4,119,4,170,170,42,16,1,80,45,16,1,80,1,0,111,4,50,16,1,144,2,0,103,4,119,4,170,170,36,181,0,32,53,16,1,80,1,0,119,4,58,16,1,80,2,0,103,4,119,4,170,170,61,16,1,80,66,16,1,80,1,0,103,4,69,16,1,80,2,0,103,4,119,4,170,170,72,16,1,80,75,16,1,80,1,0,129,4,78,16,1,144,1,0,119,4,54,181,0,32,1,0,111,4,84,16,1,144,2,0,103,4,119,4,170,170,58,181,0,32,87,16,1,80,1,0,111,4,90,16,1,144,1,0,103,4,64,181,0,32,1,0,129,4,98,16,1,144,2,0,103,4,119,4,170,170,93,16,1,80,68,181,0,32,2,0,111,4,129,4,170,170,101,16,1,144,97,0,0,96,2,0,103,4,119,4,170,170,74,181,0,32,105,16,1,80,1,0,111,4,108,16,1,144,1,0,103,4,82,181,0,32,2,0,103,4,119,4,170,170,111,16,1,80,114,16,1,80,1,0,129,4,120,16,1,144,2,0,103,4,119,4,170,170,117,16,1,80,90,181,0,32,1,0,103,4,126,16,1,80,2,0,103,4,119,4,170,170,129,16,1,80,134,16,1,80,1,0,103,4,139,16,1,80,2,0,103,4,119,4,170,170,142,16,1,80,145,16,1,80,2,0,103,4,119,4,170,170,148,16,1,80,151,16,1,80,2,0,103,4,119,4,170,170,154,16,1,80,157,16,1,80,1,0,119,4,160,16,1,80,1,0,119,4,163,16,1,80,1,0,103,4,166,16,1,80,1,0,103,4,169,16,1,80,1,0,103,4,172,16,1,80,1,0,103,4,175,16,1,80,2,0,103,4,119,4,170,170,178,16,1,80,181,16,1,80,2,0,103,4,119,4,170,170,184,16,1,80,187,16,1,80,1,0,103,4,190,16,1,80,1,0,103,4,193,16,1,80,2,0,103,4,119,4,170,170,196,16,1,80,199,16,1,80,2,0,103,4,119,4,170,170,202,16,1,80,205,16,1,80,2,0,103,4,119,4,170,170,208,16,1,80,211,16,1,80,1,0,103,4,214,16,1,80,2,0,103,4,119,4,170,170,219,16,1,80,224,16,1,80,2,0,103,4,119,4,170,170,227,16,1,80,230,16,1,80,2,0,103,4,119,4,170,170,233,16,1,80,236,16,1,80,1,0,103,4,239,16,1,80,1,0,103,4,242,16,1,80,1,0,119,4,245,16,1,80,2,0,103,4,119,4,170,170,248,16,1,80,251,16,1,80,1,0,119,4,254,16,1,80,1,0,119,4,1,17,1,80,1,0,103,4,4,17,1,80,1,0,119,4,7,17,1,80,1,0,119,4,10,17,1,80,1,0,119,4,13,17,1,80,2,0,103,4,119,4,170,170,16,17,1,80,19,17,1,80,2,0,103,4,119,4,170,170,22,17,1,80,25,17,1,80,1,0,119,4,28,17,1,80,1,0,119,4,31,17,1,80,1,0,103,4,34,17,1,80,1,0,111,4,37,17,1,144,1,0,119,4,202,181,0,32,1,0,103,4,40,17,1,80,1,0,103,4,43,17,1,80,1,0,103,4,46,17,1,80,1,0,103,4,49,17,1,80,1,0,103,4,52,17,1,80,1,0,103,4,55,17,1,80,1,0,103,4,60,17,1,80,1,0,103,4,63,17,1,80,1,0,103,4,66,17,1,80,1,0,111,4,69,17,1,144,1,0,129,4,72,17,1,144,2,0,103,4,119,4,170,170,224,181,0,32,226,181,0,32,2,0,103,4,119,4,170,170,75,17,1,80,78,17,1,80,1,0,103,4,83,17,1,80,1,0,103,4,86,17,1,80,1,0,103,4,89,17,1,80,1,0,103,4,94,17,1,80,1,0,119,4,97,17,1,80,2,0,103,4,119,4,170,170,100,17,1,80,103,17,1,80,2,0,111,4,129,4,170,170,106,17,1,144,109,17,1,144,2,0,111,4,129,4,170,170,115,17,1,144,118,17,1,144,2,0,103,4,119,4,170,170,250,181,0,32,254,181,0,32,1,0,103,4,124,17,1,80,2,0,103,4,119,4,170,170,127,17,1,80,130,17,1,80,1,0,103,4,133,17,1,80,2,0,103,4,119,4,170,170,136,17,1,80,139,17,1,80,23,3,94,8,201,12,141,4,145,4,149,4,153,4,157,4,161,4,181,13,165,4,251,11,169,4,173,4,177,4,234,9,181,4,185,4,189,4,193,4,197,4,3,12,201,4,158,18,205,4,209,4,213,4,217,4,185,13,221,4,225,4,229,4,233,4,237,4,241,4,245,4,107,4,249,4,189,13,253,4,1,5,5,5,32,14,9,5,13,5,84,7,19,12,35,8,17,5,21,5,25,5,29,5,33,5,37,5,41,5,45,5,49,5,88,9,53,5,57,5,61,5,65,5,69,5,73,5,77,5,81,5,85,5,88,5,92,5,96,5,100,5,104,5,108,5,112,5,115,5,119,5,123,5,127,5,131,5,135,5,139,5,194,0,143,5,92,7,147,5,151,5,214,23,154,5,158,5,162,5,201,13,166,5,170,5,174,5,178,5,181,5,185,5,189,5,193,5,197,5,201,5,205,5,209,5,213,5,217,5,221,5,225,5,229,5,122,8,233,5,237,5,241,5,245,5,249,5,179,24,253,5,1,6,164,10,5,6,9,6,13,6,17,6,21,6,25,6,29,6,33,6,37,6,41,6,45,6,49,6,53,6,57,6,31,12,61,6,65,6,225,13,69,6,73,6,77,6,81,6,85,6,89,6,93,6,35,12,97,6,101,6,105,6,109,6,112,6,213,12,106,17,115,6,119,6,123,6,127,6,103,13,131,6,135,6,139,6,143,6,147,6,151,6,155,6,159,6,163,6,167,6,171,6,175,6,179,6,183,6,187,6,190,6,194,6,198,6,201,6,47,12,205,6,209,6,213,6,217,6,221,6,63,12,68,14,225,6,229,12,67,12,229,6,237,12,233,6,199,19,237,6,241,6,245,6,22,10,249,6,253,6,1,7,4,7,206,6,8,7,12,7,16,7,20,7,22,22,23,7,150,8,27,7,31,7,35,7,39,7,43,7,47,7,51,7,55,7,59,7,63,7,67,7,154,8,111,13,71,7,75,7,79,7,83,7,87,7,91,7,95,7,99,7,103,7,106,7,110,7,114,7,118,7,180,10,122,7,126,7,130,7,115,21,134,7,138,7,142,7,146,7,150,7,154,7,158,7,162,7,166,7,170,7,174,7,177,7,181,7,185,7,189,7,193,7,196,7,200,7,169,8,204,7,208,7,13,23,212,7,184,10,75,12,216,7,220,7,224,7,228,7,232,7,236,7,240,7,244,7,248,7,252,7,18,6,0,8,4,8,8,8,252,12,12,8,16,8,237,20,20,8,23,8,27,8,30,6,31,8,175,11,34,8,38,8,83,12,42,8,3,13,174,4,116,5,46,8,50,8,54,8,93,11,87,4,200,10,58,8,38,6,62,8,66,8,70,8,74,8,78,8,82,8,86,8,90,8,26,11,93,8,97,8,101,8,105,8,109,8,113,8,117,8,121,8,125,8,129,8,133,8,137,8,141,8,145,8,149,8,153,8,157,8,160,8,164,8,168,8,172,8,176,8,180,8,184,8,188,8,136,9,192,8,205,8,196,8,200,8,182,4,204,8,129,20,208,8,98,21,212,8,216,8,219,8,97,11,223,8,227,8,231,8,235,8,239,8,11,13,243,8,247,8,251,8,255,8,3,9,7,9,10,9,14,9,18,9,134,20,22,9,26,9,30,9,33,9,37,9,41,9,44,9,48,9,52,9,222,6,56,9,195,0,60,9,64,9,68,9,72,9,76,9,80,9,84,9,87,9,91,9,95,9,99,9,103,9,107,9,140,17,115,13,111,9,115,9,119,9,123,9,127,9,131,9,135,9,139,9,143,9,147,9,209,8,51,8,151,9,155,9,159,9,187,15,163,9,167,9,170,9,174,9,178,9,182,9,186,9,190,9,194,9,198,9,202,9,205,9,209,9,213,9,217,9,221,9,225,9,229,9,233,9,237,9,241,9,245,9,249,9,253,9,1,10,5,10,9,10,13,10,17,10,21,10,25,10,29,10,208,10,33,10,37,10,41,10,45,10,27,13,76,14,154,0,49,10,53,10,75,8,56,10,244,13,60,10,64,10,68,10,72,10,76,10,80,10,84,10,248,13,88,10,92,10,96,10,115,12,199,11,100,10,104,10,108,10,112,10,116,10,120,10,124,10,128,10,132,10,136,10,139,10,143,10,147,10,151,10,252,13,155,10,159,10,51,19,104,19,163,10,123,13,167,10,171,10,241,7,175,10,207,11,179,10,183,10,187,10,191,10,195,10,199,10,203,10,120,19,207,10,83,20,211,10,253,7,215,10,219,10,223,10,227,10,231,10,235,10,0,14,239,10,243,10,247,10,251,10,254,10,2,11,5,11,9,11,13,11,17,11,9,3,5,8,21,11,25,11,219,11,58,19,85,10,29,11,33,11,37,11,41,11,44,11,48,11,52,11,56,11,60,11,64,11,68,11,72,11,76,11,80,11,84,11,88,11,43,13,92,11,96,11,100,11,103,11,107,11,111,11,115,11,119,11,123,11,127,11,66,6,70,4,131,11,135,11,138,11,142,11,146,11,150,11,154,11,158,11,162,11,166,11,170,11,174,11,178,11,182,11,186,11,32,7,190,11,194,11,198,11,202,11,138,12,206,11,173,13,210,11,214,11,218,11,222,11,47,13,226,11,230,11,234,11,55,13,238,11,242,11,12,14,246,11,250,11,254,11,2,12,6,12,167,18,10,12,14,12,18,12,22,12,34,11,26,12,187,18,30,12,34,12,59,13,38,12,42,12,34,4,46,12,50,12,54,12,58,12,62,12,66,12,63,13,202,18,70,12,74,12,78,12,67,13,82,12,240,10,86,12,178,19,90,12,94,12,183,19,98,12,102,12,106,12,110,12,114,12,17,8,118,12,122,12,244,10,126,12,130,12,16,14,133,12,137,12,141,12,145,12,186,5,149,12,198,15,153,12,230,6,157,12,161,12,165,12,171,7,168,12,172,12,176,12,180,12,184,12,188,12,192,12,196,12,154,20,200,12,204,12,208,12,212,12,216,12,220,12,224,12,159,20,68,0,228,12,232,12,236,12,164,9,240,12,243,12,247,12,251,12,255,12,2,13,6,13,38,11,128,20,10,13,14,13,18,13,22,13,26,13,207,23,30,13,190,5,34,13,38,13,42,13,101,10,46,13,50,13,54,13,79,13,58,13,62,13,66,13,70,13,83,13,74,13,78,13,82,13,86,13,168,20,90,13,233,3,94,13,98,13,102,13,106,13,231,11,110,13,158,12,114,13,118,13,122,13,126,13,130,13,28,8,199,9,134,13,138,13,141,13,145,13,149,13,152,13,156,13,160,13,164,13,103,21,168,13,172,13,176,13,14,5,180,13,145,17,184,13,188,13,192,13,196,13,200,13,99,19,204,13,242,6,208,13,212,13,216,13,220,13,224,13,228,13,231,13,235,13,239,13,243,13,247,13,251,13,255,13,3,14,7,14,11,14,15,14,19,14,23,14,27,14,31,14,35,14,185,12,14,11,39,14,234,22,43,14,47,14,87,14,51,14,55,14,59,14,63,14,67,14,71,14,210,9,75,14,79,14,82,14,86,14,224,171,0,32,228,171,0,32,232,171,0,32,234,171,0,32,238,171,0,32,242,171,0,32,246,171,0,32,248,171,0,32,252,171,0,32,254,171,0,32,4,172,0,32,8,172,0,32,10,172,0,32,16,172,0,32,18,172,0,32,22,172,0,32,24,172,0,32,26,172,0,32,28,172,0,32,32,172,0,32,34,172,0,32,36,172,0,32,38,172,0,32,40,172,0,32,42,172,0,32,44,172,0,32,46,172,0,32,56,172,0,32,62,172,0,32,64,172,0,32,66,172,0,32,68,172,0,32,70,172,0,32,74,172,0,32,78,172,0,32,80,172,0,32,84,172,0,32,88,172,0,32,92,172,0,32,94,172,0,32,98,172,0,32,100,172,0,32,104,172,0,32,106,172,0,32,110,172,0,32,118,172,0,32,122,172,0,32,130,172,0,32,134,172,0,32,138,172,0,32,142,172,0,32,146,172,0,32,148,172,0,32,150,172,0,32,154,172,0,32,156,172,0,32,160,172,0,32,162,172,0,32,166,172,0,32,170,172,0,32,174,172,0,32,176,172,0,32,178,172,0,32,180,172,0,32,184,172,0,32,186,172,0,32,188,172,0,32,192,172,0,32,196,172,0,32,198,172,0,32,202,172,0,32,208,172,0,32,212,172,0,32,214,172,0,32,218,172,0,32,222,172,0,32,226,172,0,32,230,172,0,32,232,172,0,32,234,172,0,32,238,172,0,32,240,172,0,32,244,172,0,32,248,172,0,32,250,172,0,32,254,172,0,32,2,173,0,32,4,173,0,32,8,173,0,32,10,173,0,32,12,173,0,32,14,173,0,32,18,173,0,32,26,173,0,32,28,173,0,32,30,173,0,32,32,173,0,32,34,173,0,32,36,173,0,32,38,173,0,32,42,173,0,32,46,173,0,32,50,173,0,32,52,173,0,32,54,173,0,32,56,173,0,32,58,173,0,32,60,173,0,32,64,173,0,32,66,173,0,32,68,173,0,32,70,173,0,32,74,173,0,32,76,173,0,32,80,173,0,32,84,173,0,32,88,173,0,32,90,173,0,32,94,173,0,32,96,173,0,32,98,173,0,32,100,173,0,32,104,173,0,32,106,173,0,32,108,173,0,32,110,173,0,32,114,173,0,32,118,173,0,32,122,173,0,32,126,173,0,32,128,173,0,32,130,173,0,32,134,173,0,32,136,173,0,32,140,173,0,32,144,173,0,32,146,173,0,32,148,173,0,32,152,173,0,32,154,173,0,32,158,173,0,32,160,173,0,32,164,173,0,32,168,173,0,32,170,173,0,32,172,173,0,32,174,173,0,32,176,173,0,32,180,173,0,32,184,173,0,32,188,173,0,32,190,173,0,32,192,173,0,32,194,173,0,32,206,173,0,32,210,173,0,32,212,173,0,32,216,173,0,32,220,173,0,32,222,173,0,32,226,173,0,32,228,173,0,32,236,173,0,32,240,173,0,32,242,173,0,32,244,173,0,32,246,173,0,32,248,173,0,32,250,173,0,32,252,173,0,32,254,173,0,32,2,174,0,32,6,174,0,32,8,174,0,32,12,174,0,32,16,174,0,32,20,174,0,32,22,174,0,32,24,174,0,32,26,174,0,32,32,174,0,32,42,174,0,32,46,174,0,32,48,174,0,32,56,174,0,32,60,174,0,32,62,174,0,32,66,174,0,32,68,174,0,32,72,174,0,32,74,174,0,32,76,174,0,32,82,174,0,32,86,174,0,32,90,174,0,32,96,174,0,32,100,174,0,32,106,174,0,32,110,174,0,32,112,174,0,32,116,174,0,32,118,174,0,32,120,174,0,32,122,174,0,32,134,174,0,32,138,174,0,32,140,174,0,32,142,174,0,32,144,174,0,32,146,174,0,32,150,174,0,32,152,174,0,32,156,174,0,32,160,174,0,32,162,174,0,32,166,174,0,32,170,174,0,32,174,174,0,32,178,174,0,32,182,174,0,32,186,174,0,32,190,174,0,32,192,174,0,32,194,174,0,32,198,174,0,32,200,174,0,32,204,174,0,32,208,174,0,32,210,174,0,32,212,174,0,32,214,174,0,32,216,174,0,32,220,174,0,32,222,174,0,32,226,174,0,32,228,174,0,32,230,174,0,32,232,174,0,32,238,174,0,32,242,174,0,32,246,174,0,32,248,174,0,32,250,174,0,32,254,174,0,32,0,175,0,32,6,175,0,32,12,175,0,32,16,175,0,32,18,175,0,32,20,175,0,32,24,175,0,32,28,175,0,32,30,175,0,32,32,175,0,32,40,175,0,32,44,175,0,32,46,175,0,32,50,175,0,32,54,175,0,32,58,175,0,32,64,175,0,32,72,175,0,32,74,175,0,32,78,175,0,32,80,175,0,32,82,175,0,32,86,175,0,32,88,175,0,32,92,175,0,32,94,175,0,32,98,175,0,32,102,175,0,32,104,175,0,32,108,175,0,32,112,175,0,32,120,175,0,32,124,175,0,32,126,175,0,32,130,175,0,32,134,175,0,32,138,175,0,32,140,175,0,32,142,175,0,32,146,175,0,32,148,175,0,32,150,175,0,32,152,175,0,32,156,175,0,32,160,175,0,32,162,175,0,32,166,175,0,32,170,175,0,32,172,175,0,32,174,175,0,32,182,175,0,32,186,175,0,32,194,175,0,32,200,175,0,32,204,175,0,32,206,175,0,32,208,175,0,32,212,175,0,32,214,175,0,32,216,175,0,32,218,175,0,32,220,175,0,32,222,175,0,32,224,175,0,32,228,175,0,32,230,175,0,32,232,175,0,32,236,175,0,32,238,175,0,32,240,175,0,32,244,175,0,32,246,175,0,32,250,175,0,32,252,175,0,32,254,175,0,32,0,176,0,32,4,176,0,32,6,176,0,32,10,176,0,32,12,176,0,32,14,176,0,32,18,176,0,32,22,176,0,32,24,176,0,32,26,176,0,32,30,176,0,32,32,176,0,32,36,176,0,32,38,176,0,32,40,176,0,32,42,176,0,32,46,176,0,32,48,176,0,32,52,176,0,32,56,176,0,32,62,176,0,32,66,176,0,32,68,176,0,32,72,176,0,32,76,176,0,32,78,176,0,32,82,176,0,32,86,176,0,32,94,176,0,32,98,176,0,32,102,176,0,32,106,176,0,32,108,176,0,32,110,176,0,32,112,176,0,32,114,176,0,32,118,176,0,32,122,176,0,32,124,176,0,32,126,176,0,32,132,176,0,32,136,176,0,32,138,176,0,32,140,176,0,32,146,176,0,32,150,176,0,32,154,176,0,32,156,176,0,32,160,176,0,32,162,176,0,32,164,176,0,32,166,176,0,32,168,176,0,32,172,176,0,32,178,176,0,32,180,176,0,32,182,176,0,32,184,176,0,32,186,176,0,32,188,176,0,32,190,176,0,32,194,176,0,32,198,176,0,32,200,176,0,32,202,176,0,32,206,176,0,32,208,176,0,32,210,176,0,32,212,176,0,32,218,176,0,32,220,176,0,32,224,176,0,32,228,176,0,32,230,176,0,32,232,176,0,32,234,176,0,32,236,176,0,32,238,176,0,32,242,176,0,32,244,176,0,32,246,176,0,32,250,176,0,32,252,176,0,32,0,177,0,32,2,177,0,32,4,177,0,32,8,177,0,32,12,177,0,32,16,177,0,32,18,177,0,32,22,177,0,32,26,177,0,32,28,177,0,32,30,177,0,32,34,177,0,32,36,177,0,32,38,177,0,32,42,177,0,32,46,177,0,32,48,177,0,32,50,177,0,32,54,177,0,32,56,177,0,32,60,177,0,32,62,177,0,32,70,177,0,32,74,177,0,32,82,177,0,32,86,177,0,32,88,177,0,32,90,177,0,32,94,177,0,32,98,177,0,32,102,177,0,32,104,177,0,32,108,177,0,32,112,177,0,32,114,177,0,32,118,177,0,32,122,177,0,32,124,177,0,32,126,177,0,32,130,177,0,32,132,177,0,32,134,177,0,32,136,177,0,32,138,177,0,32,140,177,0,32,142,177,0,32,146,177,0,32,148,177,0,32,152,177,0,32,158,177,0,32,162,177,0,32,164,177,0,32,168,177,0,32,170,177,0,32,172,177,0,32,174,177,0,32,176,177,0,32,180,177,0,32,184,177,0,32,186,177,0,32,188,177,0,32,198,177,0,32,202,177,0,32,204,177,0,32,208,177,0,32,210,177,0,32,212,177,0,32,214,177,0,32,216,177,0,32,218,177,0,32,222,177,0,32,224,177,0,32,226,177,0,32,228,177,0,32,232,177,0,32,236,177,0,32,238,177,0,32,242,177,0,32,244,177,0,32,248,177,0,32,250,177,0,32,0,178,0,32,2,178,0,32,4,178,0,32,6,178,0,32,12,178,0,32,16,178,0,32,20,178,0,32,24,178,0,32,28,178,0,32,32,178,0,32,34,178,0,32,36,178,0,32,38,178,0,32,40,178,0,32,42,178,0,32,48,178,0,32,52,178,0,32,54,178,0,32,56,178,0,32,58,178,0,32,60,178,0,32,64,178,0,32,68,178,0,32,70,178,0,32,72,178,0,32,74,178,0,32,76,178,0,32,80,178,0,32,84,178,0,32,88,178,0,32,90,178,0,32,92,178,0,32,94,178,0,32,98,178,0,32,102,178,0,32,106,178,0,32,108,178,0,32,112,178,0,32,116,178,0,32,120,178,0,32,122,178,0,32,124,178,0,32,128,178,0,32,132,178,0,32,136,178,0,32,142,178,0,32,144,178,0,32,150,178,0,32,154,178,0,32,160,178,0,32,162,178,0,32,170,178,0,32,174,178,0,32,176,178,0,32,178,178,0,32,182,178,0,32,184,178,0,32,186,178,0,32,188,178,0,32,190,178,0,32,194,178,0,32,196,178,0,32,200,178,0,32,204,178,0,32,208,178,0,32,212,178,0,32,214,178,0,32,218,178,0,32,220,178,0,32,222,178,0,32,224,178,0,32,226,178,0,32,234,178,0,32,236,178,0,32,242,178,0,32,244,178,0,32,248,178,0,32,250,178,0,32,254,178,0,32,0,179,0,32,2,179,0,32,6,179,0,32,10,179,0,32,14,179,0,32,18,179,0,32,22,179,0,32,26,179,0,32,30,179,0,32,34,179,0,32,38,179,0,32,40,179,0,32,42,179,0,32,46,179,0,32,48,179,0,32,50,179,0,32,58,179,0,32,62,179,0,32,64,179,0,32,66,179,0,32,70,179,0,32,78,179,0,32,82,179,0,32,84,179,0,32,86,179,0,32,88,179,0,32,90,179,0,32,92,179,0,32,98,179,0,32,100,179,0,32,102,179,0,32,104,179,0,32,110,179,0,32,112,179,0,32,114,179,0,32,122,179,0,32,126,179,0,32,128,179,0,32,130,179,0,32,132,179,0,32,136,179,0,32,140,179,0,32,142,179,0,32,146,179,0,32,154,179,0,32,158,179,0,32,160,179,0,32,164,179,0,32,168,179,0,32,170,179,0,32,174,179,0,32,178,179,0,32,180,179,0,32,182,179,0,32,184,179,0,32,188,179,0,32,190,179,0,32,194,179,0,32,198,179,0,32,202,179,0,32,204,179,0,32,210,179,0,32,214,179,0,32,218,179,0,32,222,179,0,32,224,179,0,32,230,179,0,32,232,179,0,32,234,179,0,32,236,179,0,32,238,179,0,32,240,179,0,32,244,179,0,32,246,179,0,32,248,179,0,32,0,180,0,32,4,180,0,32,16,180,0,32,24,180,0,32,26,180,0,32,30,180,0,32,34,180,0,32,38,180,0,32,40,180,0,32,44,180,0,32,46,180,0,32,50,180,0,32,52,180,0,32,56,180,0,32,60,180,0,32,68,180,0,32,74,180,0,32,78,180,0,32,82,180,0,32,84,180,0,32,88,180,0,32,90,180,0,32,92,180,0,32,96,180,0,32,98,180,0,32,106,180,0,32,110,180,0,32,112,180,0,32,116,180,0,32,120,180,0,32,124,180,0,32,126,180,0,32,130,180,0,32,132,180,0,32,136,180,0,32,140,180,0,32,144,180,0,32,146,180,0,32,152,180,0,32,154,180,0,32,156,180,0,32,158,180,0,32,160,180,0,32,162,180,0,32,166,180,0,32,170,180,0,32,180,180,0,32,184,180,0,32,188,180,0,32,190,180,0,32,192,180,0,32,196,180,0,32,200,180,0,32,204,180,0,32,208,180,0,32,210,180,0,32,212,180,0,32,214,180,0,32,216,180,0,32,222,180,0,32,226,180,0,32,230,180,0,32,232,180,0,32,236,180,0,32,240,180,0,32,242,180,0,32,246,180,0,32,248,180,0,32,250,180,0,32,254,180,0,32,0,181,0,32,6,181,0,32,10,181,0,32,14,181,0,32,16,181,0,32,18,181,0,32,20,181,0,32,28,181,0,32,30,181,0,32,32,181,0,32,38,181,0,32,42,181,0,32,44,181,0,32,48,181,0,32,50,181,0,32,56,181,0,32,60,181,0,32,66,181,0,32,70,181,0,32,78,181,0,32,84,181,0,32,86,181,0,32,92,181,0,32,96,181,0,32,98,181,0,32,102,181,0,32,104,181,0,32,108,181,0,32,112,181,0,32,116,181,0,32,118,181,0,32,120,181,0,32,122,181,0,32,124,181,0,32,126,181,0,32,128,181,0,32,132,181,0,32,136,181,0,32,138,181,0,32,140,181,0,32,144,181,0,32,148,181,0,32,152,181,0,32,154,181,0,32,158,181,0,32,162,181,0,32,166,181,0,32,168,181,0,32,170,181,0,32,172,181,0,32,176,181,0,32,178,181,0,32,180,181,0,32,182,181,0,32,184,181,0,32,186,181,0,32,188,181,0,32,192,181,0,32,196,181,0,32,198,181,0,32,200,181,0,32,204,181,0,32,206,181,0,32,208,181,0,32,210,181,0,32,212,181,0,32,214,181,0,32,216,181,0,32,218,181,0,32,220,181,0,32,222,181,0,32,228,181,0,32,232,181,0,32,236,181,0,32,238,181,0,32,240,181,0,32,242,181,0,32,244,181,0,32,246,181,0,32,2,182,0,32,6,182,0,32,8,182,0,32,12,182,0,32,14,182,0,32,2,0,119,14,161,14,170,170,142,17,1,80,151,17,1,144,1,0,111,14,181,186,0,32,118,1,0,0,158,17,1,144,163,17,1,144,168,17,1,144,173,17,1,144,178,17,1,144,183,17,1,144,188,17,1,144,193,17,1,144,198,17,1,144,203,17,1,144,208,17,1,144,213,17,1,144,218,17,1,144,223,17,1,144,228,17,1,144,233,17,1,144,238,17,1,144,243,17,1,144,248,17,1,144,253,17,1,144,2,18,1,144,7,18,1,144,12,18,1,144,17,18,1,144,22,18,1,144,27,18,1,144,32,18,1,144,37,18,1,144,42,18,1,144,47,18,1,144,52,18,1,144,57,18,1,144,62,18,1,144,67,18,1,144,72,18,1,144,77,18,1,144,82,18,1,144,87,18,1,144,92,18,1,144,97,18,1,144,102,18,1,144,107,18,1,144,112,18,1,144,117,18,1,144,122,18,1,144,127,18,1,144,132,18,1,144,137,18,1,144,142,18,1,144,147,18,1,144,152,18,1,144,157,18,1,144,162,18,1,144,167,18,1,144,172,18,1,144,177,18,1,144,182,18,1,144,187,18,1,144,192,18,1,144,197,18,1,144,202,18,1,144,207,18,1,144,212,18,1,144,217,18,1,144,222,18,1,144,227,18,1,144,232,18,1,144,237,18,1,144,242,18,1,144,247,18,1,144,252,18,1,144,1,19,1,144,6,19,1,144,11,19,1,144,16,19,1,144,21,19,1,144,26,19,1,144,31,19,1,144,36,19,1,144,41,19,1,144,46,19,1,144,51,19,1,144,56,19,1,144,61,19,1,144,66,19,1,144,71,19,1,144,76,19,1,144,81,19,1,144,86,19,1,144,91,19,1,144,96,19,1,144,101,19,1,144,106,19,1,144,111,19,1,144,116,19,1,144,121,19,1,144,126,19,1,144,131,19,1,144,136,19,1,144,141,19,1,144,146,19,1,144,151,19,1,144,156,19,1,144,161,19,1,144,166,19,1,144,171,19,1,144,176,19,1,144,181,19,1,144,186,19,1,144,191,19,1,144,196,19,1,144,201,19,1,144,206,19,1,144,211,19,1,144,216,19,1,144,221,19,1,144,226,19,1,144,231,19,1,144,236,19,1,144,241,19,1,144,246,19,1,144,251,19,1,144,0,20,1,144,5,20,1,144,10,20,1,144,15,20,1,144,20,20,1,144,25,20,1,144,30,20,1,144,35,20,1,144,40,20,1,144,45,20,1,144,50,20,1,144,55,20,1,144,60,20,1,144,65,20,1,144,70,20,1,144,75,20,1,144,80,20,1,144,85,20,1,144,90,20,1,144,95,20,1,144,100,20,1,144,105,20,1,144,110,20,1,144,115,20,1,144,120,20,1,144,125,20,1,144,130,20,1,144,135,20,1,144,140,20,1,144,145,20,1,144,150,20,1,144,155,20,1,144,160,20,1,144,165,20,1,144,170,20,1,144,175,20,1,144,180,20,1,144,185,20,1,144,190,20,1,144,195,20,1,144,200,20,1,144,205,20,1,144,210,20,1,144,215,20,1,144,220,20,1,144,225,20,1,144,230,20,1,144,235,20,1,144,240,20,1,144,245,20,1,144,250,20,1,144,255,20,1,144,4,21,1,144,9,21,1,144,14,21,1,144,19,21,1,144,24,21,1,144,29,21,1,144,34,21,1,144,39,21,1,144,44,21,1,144,49,21,1,144,54,21,1,144,59,21,1,144,64,21,1,144,69,21,1,144,74,21,1,144,79,21,1,144,84,21,1,144,89,21,1,144,94,21,1,144,99,21,1,144,104,21,1,144,109,21,1,144,114,21,1,144,119,21,1,144,124,21,1,144,129,21,1,144,134,21,1,144,139,21,1,144,144,21,1,144,149,21,1,144,154,21,1,144,159,21,1,144,164,21,1,144,169,21,1,144,174,21,1,144,179,21,1,144,184,21,1,144,189,21,1,144,194,21,1,144,199,21,1,144,204,21,1,144,209,21,1,144,214,21,1,144,219,21,1,144,224,21,1,144,229,21,1,144,234,21,1,144,239,21,1,144,244,21,1,144,249,21,1,144,254,21,1,144,3,22,1,144,8,22,1,144,13,22,1,144,18,22,1,144,23,22,1,144,28,22,1,144,33,22,1,144,38,22,1,144,43,22,1,144,48,22,1,144,53,22,1,144,58,22,1,144,63,22,1,144,68,22,1,144,73,22,1,144,78,22,1,144,83,22,1,144,88,22,1,144,93,22,1,144,98,22,1,144,103,22,1,144,108,22,1,144,113,22,1,144,118,22,1,144,123,22,1,144,128,22,1,144,133,22,1,144,138,22,1,144,143,22,1,144,148,22,1,144,153,22,1,144,158,22,1,144,163,22,1,144,168,22,1,144,173,22,1,144,178,22,1,144,183,22,1,144,188,22,1,144,193,22,1,144,198,22,1,144,203,22,1,144,208,22,1,144,213,22,1,144,218,22,1,144,223,22,1,144,228,22,1,144,233,22,1,144,238,22,1,144,243,22,1,144,248,22,1,144,253,22,1,144,2,23,1,144,7,23,1,144,12,23,1,144,17,23,1,144,22,23,1,144,27,23,1,144,32,23,1,144,37,23,1,144,42,23,1,144,47,23,1,144,52,23,1,144,57,23,1,144,62,23,1,144,67,23,1,144,72,23,1,144,77,23,1,144,82,23,1,144,87,23,1,144,92,23,1,144,97,23,1,144,102,23,1,144,107,23,1,144,112,23,1,144,117,23,1,144,122,23,1,144,127,23,1,144,132,23,1,144,137,23,1,144,142,23,1,144,147,23,1,144,152,23,1,144,157,23,1,144,162,23,1,144,167,23,1,144,172,23,1,144,177,23,1,144,182,23,1,144,187,23,1,144,192,23,1,144,197,23,1,144,202,23,1,144,207,23,1,144,212,23,1,144,217,23,1,144,222,23,1,144,227,23,1,144,232,23,1,144,237,23,1,144,242,23,1,144,247,23,1,144,252,23,1,144,1,24,1,144,6,24,1,144,11,24,1,144,16,24,1,144,21,24,1,144,26,24,1,144,31,24,1,144,36,24,1,144,41,24,1,144,46,24,1,144,51,24,1,144,56,24,1,144,61,24,1,144,66,24,1,144,71,24,1,144,76,24,1,144,81,24,1,144,86,24,1,144,91,24,1,144,96,24,1,144,101,24,1,144,106,24,1,144,111,24,1,144,116,24,1,144,121,24,1,144,126,24,1,144,131,24,1,144,136,24,1,144,141,24,1,144,146,24,1,144,151,24,1,144,156,24,1,144,161,24,1,144,166,24,1,144,171,24,1,144,176,24,1,144,181,24,1,144,186,24,1,144,191,24,1,144,196,24,1,144,201,24,1,144,206,24,1,144,211,24,1,144,216,24,1,144,221,24,1,144,226,24,1,144,231,24,1,144,1,0,111,14,187,186,0,128,2,0,0,0,41,1,0,0,210,0,0,0,2,0,213,14,231,14,170,170,0,0,0,112,52,188,0,224,1,0,14,15,1,0,0,112,1,0,244,14,59,188,0,32,1,0,14,15,1,0,0,112,2,0,0,0,23,1,0,0,216,0,0,0,2,0,244,14,231,14,170,170,63,188,0,32,65,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,72,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,77,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,82,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,87,188,0,224,1,0,213,14,2,0,0,112,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,94,188,0,224,1,0,14,15,1,0,0,112,1,0,244,14,99,188,0,32,1,0,14,15,0,0,0,112,2,0,213,14,244,14,170,170,1,0,0,112,103,188,0,32,1,0,14,15,0,0,0,112,2,0,213,14,244,14,170,170,2,0,0,112,109,188,0,32,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,115,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,120,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,125,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,130,188,0,224,1,0,14,15,1,0,0,112,2,0,0,0,23,1,0,0,216,0,0,0,2,0,244,14,231,14,170,170,135,188,0,32,137,188,0,224,1,0,14,15,1,0,0,112,1,0,244,14,144,188,0,32,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,148,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,2,0,213,14,231,14,170,170,1,0,0,112,153,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,160,188,0,224,21,0,12,24,241,14,26,15,61,24,29,15,32,15,35,15,38,15,41,15,44,15,47,15,50,15,53,15,56,15,59,15,62,15,65,15,68,15,71,15,150,14,74,15,55,188,0,32,61,188,0,32,68,188,0,32,75,188,0,32,80,188,0,32,85,188,0,32,90,188,0,32,92,188,0,32,97,188,0,32,101,188,0,32,105,188,0,32,111,188,0,32,118,188,0,32,123,188,0,32,128,188,0,32,133,188,0,32,140,188,0,32,146,188,0,32,151,188,0,32,156,188,0,32,163,188,0,32,9,0,91,15,98,15,105,15,111,15,118,15,253,7,124,15,130,15,135,15,236,24,1,144,65,25,1,144,153,203,0,96,75,25,1,144,35,107,0,96,98,25,1,144,101,25,1,144,113,25,1,144,11,206,0,96,2,0,190,15,201,15,170,170,164,205,0,96,157,25,1,144,1,0,166,15,211,188,0,32,162,1,237,15,35,3,38,3,240,15,41,3,243,15,246,15,249,15,252,15,255,15,44,3,2,16,5,16,47,3,8,16,11,16,14,16,50,3,17,16,20,16,23,16,25,24,26,16,31,24,241,14,29,16,32,16,35,16,26,15,61,24,38,16,41,16,44,16,85,24,47,16,29,15,50,16,53,3,32,15,35,15,53,16,56,16,59,16,62,16,65,16,59,3,68,16,71,16,74,16,62,3,37,24,77,16,65,3,71,3,43,24,74,3,80,16,83,16,86,16,89,16,92,16,38,15,95,16,98,16,101,16,104,16,107,16,110,16,49,24,113,16,41,15,116,16,119,16,122,16,125,16,121,15,128,16,77,3,131,16,80,3,73,24,83,3,86,3,134,16,91,24,137,16,89,3,92,3,140,16,143,16,146,16,149,16,95,3,152,16,155,16,98,3,101,3,158,16,161,16,104,3,164,16,167,16,170,16,47,15,173,16,176,16,179,16,182,16,107,3,110,3,185,16,188,16,191,16,194,16,197,16,200,16,203,16,50,15,206,16,116,3,209,16,212,16,119,3,215,16,53,15,122,3,218,16,221,16,125,3,224,16,56,15,227,16,230,16,233,16,236,16,239,16,128,3,59,15,55,24,242,16,62,15,131,3,245,16,134,3,127,15,68,15,248,16,137,3,251,16,254,16,1,17,4,17,140,3,7,17,10,17,143,3,13,17,146,3,16,17,19,17,22,17,25,17,28,17,31,17,34,17,37,17,40,17,43,17,71,15,149,3,46,17,152,3,49,17,155,3,158,3,52,17,161,3,164,3,55,17,167,3,58,17,61,17,188,24,64,17,67,17,70,17,73,17,150,14,76,17,170,3,79,17,74,15,82,17,85,17,88,17,91,17,176,3,133,24,94,17,97,17,100,17,105,17,109,17,113,17,117,17,121,17,125,17,129,17,133,17,137,17,143,17,149,17,154,17,159,17,164,17,169,17,174,17,179,17,184,17,189,17,194,17,199,17,204,17,209,17,214,17,218,17,222,17,227,17,232,17,237,17,242,17,247,17,252,17,1,18,6,18,11,18,16,18,21,18,26,18,31,18,36,18,41,18,46,18,51,18,56,18,61,18,66,18,71,18,76,18,81,18,86,18,91,18,96,18,101,18,106,18,111,18,116,18,121,18,126,18,131,18,136,18,141,18,146,18,151,18,156,18,161,18,166,18,171,18,176,18,181,18,186,18,191,18,196,18,201,18,206,18,211,18,216,18,221,18,226,18,231,18,236,18,241,18,245,18,249,18,253,18,1,19,7,19,13,19,19,19,25,19,31,19,37,19,43,19,49,19,55,19,61,19,67,19,73,19,79,19,85,19,91,19,97,19,103,19,107,19,111,19,115,19,119,19,123,19,127,19,131,19,135,19,139,19,143,19,147,19,151,19,156,19,161,19,166,19,171,19,176,19,181,19,186,19,190,19,194,19,198,19,202,19,207,19,211,19,215,19,219,19,223,19,227,19,231,19,235,19,239,19,244,19,249,19,254,19,3,20,8,20,13,20,18,20,23,20,28,20,33,20,38,20,43,20,48,20,53,20,58,20,63,20,68,20,73,20,78,20,82,20,86,20,90,20,94,20,98,20,102,20,106,20,110,20,114,20,118,20,122,20,127,20,132,20,137,20,142,20,147,20,152,20,157,20,162,20,167,20,172,20,177,20,182,20,187,20,192,20,197,20,202,20,207,20,212,20,217,20,222,20,227,20,232,20,236,20,240,20,244,20,248,20,252,20,0,21,4,21,8,21,12,21,16,21,21,21,26,21,31,21,36,21,41,21,46,21,51,21,56,21,61,21,66,21,71,21,76,21,81,21,86,21,91,21,96,21,101,21,106,21,110,21,114,21,118,21,170,170,169,25,1,144,177,25,1,144,185,25,1,144,220,25,1,144,229,25,1,144,242,25,1,144,254,25,1,144,17,26,1,144,42,26,1,144,52,26,1,144,61,26,1,144,132,26,1,144,136,26,1,144,148,26,1,144,157,26,1,144,161,26,1,144,175,26,1,144,204,26,1,144,209,26,1,144,228,26,1,144,241,26,1,144,246,26,1,144,0,27,1,144,4,27,1,144,32,27,1,144,65,27,1,144,86,27,1,144,103,27,1,144,111,27,1,144,118,27,1,144,132,27,1,144,159,27,1,144,177,27,1,144,190,27,1,144,217,27,1,144,232,27,1,144,249,27,1,144,4,28,1,144,39,28,1,144,73,28,1,144,81,28,1,144,98,28,1,144,101,28,1,144,108,28,1,144,123,28,1,144,140,28,1,144,147,28,1,144,153,28,1,144,164,28,1,144,175,28,1,144,224,28,1,144,249,28,1,144,9,29,1,144,37,29,1,144,44,29,1,144,64,29,1,144,77,29,1,144,97,29,1,144,103,29,1,144,108,29,1,144,135,29,1,144,145,29,1,144,150,29,1,144,158,29,1,144,171,29,1,144,188,29,1,144,194,29,1,144,201,29,1,144,210,29,1,144,213,29,1,144,228,29,1,144,251,29,1,144,0,30,1,144,11,30,1,144,30,30,1,144,52,30,1,144,63,30,1,144,107,30,1,144,115,30,1,144,120,30,1,144,127,30,1,144,164,30,1,144,181,30,1,144,213,30,1,144,222,30,1,144,243,30,1,144,2,31,1,144,15,31,1,144,63,31,1,144,111,31,1,144,121,31,1,144,147,31,1,144,151,31,1,144,155,31,1,144,158,31,1,144,171,31,1,144,189,31,1,144,196,31,1,144,214,31,1,144,233,31,1,144,242,31,1,144,253,31,1,144,9,32,1,144,19,32,1,144,35,32,1,144,46,32,1,144,57,32,1,144,70,32,1,144,114,32,1,144,137,32,1,144,150,32,1,144,168,32,1,144,206,32,1,144,231,32,1,144,238,32,1,144,241,32,1,144,66,33,1,144,78,33,1,144,94,33,1,144,117,33,1,144,133,33,1,144,202,33,1,144,215,33,1,144,237,33,1,144,241,33,1,144,18,34,1,144,35,34,1,144,47,34,1,144,62,34,1,144,71,34,1,144,109,34,1,144,127,34,1,144,146,34,1,144,160,34,1,144,173,34,1,144,188,34,1,144,206,34,1,144,218,34,1,144,233,34,1,144,4,35,1,144,27,35,1,144,45,35,1,144,53,35,1,144,70,35,1,144,87,35,1,144,108,35,1,144,125,35,1,144,144,35,1,144,153,35,1,144,196,35,1,144,217,35,1,144,45,36,1,144,51,36,1,144,65,36,1,144,76,36,1,144,104,36,1,144,123,36,1,144,145,36,1,144,151,36,1,144,155,36,1,144,112,37,1,144,121,37,1,144,127,37,1,144,137,37,1,144,152,37,1,144,171,37,1,144,182,37,1,144,193,37,1,144,201,37,1,144,216,37,1,144,231,37,1,144,236,37,1,144,4,38,1,144,10,38,1,144,89,38,1,144,95,38,1,144,109,38,1,144,116,38,1,144,141,38,1,144,147,38,1,144,229,38,1,144,245,38,1,144,254,38,1,144,21,39,1,144,53,39,1,144,81,39,1,144,86,39,1,144,96,39,1,144,154,39,1,144,174,39,1,144,189,39,1,144,196,39,1,144,222,39,1,144,30,40,1,144,37,40,1,144,41,40,1,144,53,40,1,144,76,40,1,144,86,40,1,144,97,40,1,144,108,40,1,144,117,40,1,144,124,40,1,144,136,40,1,144,150,40,1,144,161,40,1,144,170,40,1,144,179,40,1,144,184,40,1,144,189,40,1,144,195,40,1,144,201,40,1,144,208,40,1,144,110,116,0,96,211,40,1,144,215,40,1,144,219,40,1,144,224,40,1,144,228,40,1,144,234,40,1,144,238,40,1,144,243,40,1,144,247,40,1,144,252,40,1,144,1,41,1,144,10,41,1,144,25,41,1,144,38,41,1,144,46,41,1,144,54,41,1,144,58,41,1,144,66,41,1,144,71,41,1,144,77,41,1,144,82,41,1,144,88,41,1,144,96,41,1,144,102,41,1,144,107,41,1,144,114,41,1,144,119,41,1,144,124,41,1,144,128,41,1,144,132,41,1,144,135,41,1,144,140,41,1,144,144,41,1,144,147,41,1,144,152,41,1,144,156,41,1,144,6,118,0,96,173,41,1,144,182,41,1,144,186,41,1,144,190,41,1,144,194,41,1,144,203,41,1,144,207,41,1,144,215,41,1,144,220,41,1,144,224,41,1,144,233,41,1,144,237,41,1,144,242,41,1,144,248,41,1,144,1,42,1,144,215,39,0,96,236,106,0,96,5,42,1,144,15,42,1,144,21,42,1,144,24,42,1,144,29,42,1,144,32,42,1,144,247,51,0,96,227,51,0,96,48,108,0,96,232,51,0,96,37,42,1,144,207,51,0,96,41,42,1,144,45,42,1,144,51,42,1,144,55,42,1,144,59,42,1,144,63,42,1,144,66,42,1,144,80,42,1,144,89,42,1,144,94,42,1,144,101,42,1,144,113,42,1,144,119,42,1,144,128,42,1,144,141,42,1,144,147,42,1,144,161,42,1,144,168,42,1,144,174,42,1,144,70,43,1,144,82,43,1,144,115,43,1,144,138,43,1,144,144,43,1,144,150,43,1,144,155,43,1,144,161,43,1,144,167,43,1,144,171,43,1,144,178,43,1,144,184,43,1,144,188,43,1,144,191,43,1,144,195,43,1,144,199,43,1,144,206,43,1,144,212,43,1,144,215,43,1,144,219,43,1,144,222,43,1,144,229,43,1,144,240,43,1,144,246,43,1,144,3,44,1,144,10,44,1,144,14,44,1,144,18,44,1,144,26,44,1,144,31,44,1,144,42,44,1,144,52,44,1,144,60,44,1,144,74,44,1,144,80,44,1,144,95,44,1,144,104,44,1,144,117,44,1,144,120,44,1,144,128,44,1,144,133,44,1,144,138,44,1,144,148,44,1,144,159,44,1,144,162,44,1,144,168,44,1,144,174,44,1,144,179,44,1,144,182,44,1,144,188,44,1,144,195,44,1,144,198,44,1,144,204,44,1,144,214,44,1,144,220,44,1,144,230,44,1,144,236,44,1,144,240,44,1,144,244,44,1,144,248,44,1,144,254,44,1,144,2,45,1,144,5,45,1,144,8,45,1,144,11,45,1,144,14,45,1,144,20,45,1,144,28,45,1,144,37,45,1,144,43,45,1,144,50,45,1,144,58,45,1,144,63,45,1,144,68,45,1,144,75,45,1,144,84,45,1,144,93,45,1,144,102,45,1,144,112,45,1,144,121,45,1,144,127,45,1,144,137,45,1,144,146,45,1,144,152,45,1,144,158,45,1,144,163,45,1,144,168,45,1,144,171,45,1,144,186,45,1,144,197,45,1,144,207,45,1,144,214,45,1,144,228,45,1,144,232,45,1,144,236,45,1,144,240,45,1,144,244,45,1,144,247,45,1,144,252,45,1,144,2,46,1,144,10,46,1,144,17,46,1,144,24,46,1,144,29,46,1,144,36,46,1,144,41,46,1,144,46,46,1,144,54,46,1,144,58,46,1,144,64,46,1,144,69,46,1,144,76,46,1,144,82,46,1,144,88,46,1,144,94,46,1,144,102,46,1,144,129,46,1,144,167,46,1,144,205,46,1,144,3,0,12,24,143,21,179,21,42,48,1,144,50,112,0,96,46,48,1,144,8,0,12,24,171,21,187,21,199,21,203,21,148,1,168,1,184,1,170,170,172,0,0,96,178,0,0,96,124,2,0,96,49,48,1,144,52,48,1,144,55,48,1,144,28,2,0,96,58,48,1,144,6,0,254,21,116,2,114,15,2,22,5,22,8,22,170,170,61,48,1,144,65,48,1,144,70,48,1,144,74,48,1,144,102,48,1,144,122,48,1,144,32,0,12,24,143,21,147,21,151,21,155,21,159,21,163,21,167,21,171,21,175,21,179,21,183,21,187,21,191,21,195,21,199,21,203,21,207,21,211,21,215,21,219,21,136,1,140,1,148,1,101,15,168,1,180,1,184,1,223,21,226,21,245,3,245,21,170,170,241,46,1,144,247,46,1,144,253,46,1,144,14,47,1,144,20,47,1,144,38,47,1,144,47,47,1,144,70,47,1,144,80,47,1,144,90,47,1,144,96,47,1,144,101,47,1,144,107,47,1,144,136,47,1,144,145,47,1,144,155,47,1,144,167,47,1,144,185,47,1,144,192,47,1,144,198,47,1,144,207,47,1,144,218,47,1,144,224,47,1,144,230,47,1,144,249,47,1,144,254,47,1,144,9,48,1,144,26,48,1,144,36,48,1,144,77,191,0,32,82,191,0,32,95,191,0,32,1,0,28,22,112,201,250,114,3,0,0,0,116,33,108,3,112,201,250,2,224,204,39,3,2,0,68,14,45,22,170,170,154,191,0,32,156,191,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,118,243,114,1,0,28,22,240,61,242,114,1,0,28,22,176,221,231,114,3,0,0,0,92,88,137,3,32,119,252,2,80,185,67,3,4,0,122,8,67,12,150,8,45,22,170,170,164,191,0,32,168,191,0,32,170,191,0,32,172,191,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,1,0,28,22,112,238,223,114,1,0,28,22,96,79,243,114,1,0,28,22,48,82,223,114,1,0,28,22,96,26,231,114,1,0,28,22,208,216,224,114,3,0,0,0,0,104,173,3,224,105,249,2,40,189,101,3,7,0,185,13,17,5,68,14,22,10,75,8,66,6,45,22,183,191,0,32,187,191,0,32,189,191,0,32,191,191,0,32,193,191,0,32,195,191,0,32,197,191,0,224,2,0,28,22,71,22,170,170,176,198,214,114,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,1,0,28,22,176,108,229,114,1,0,28,22,176,9,183,114,1,0,28,22,192,64,222,114,2,0,56,22,28,22,170,170,131,212,0,96,240,61,242,114,3,0,0,0,228,31,158,3,232,247,239,2,166,87,107,3,2,0,56,22,28,22,170,170,140,212,0,96,16,4,223,114,1,0,28,22,96,40,187,114,2,0,56,22,28,22,170,170,140,212,0,96,240,151,227,114,10,0,92,5,22,10,212,7,85,22,119,11,66,6,45,22,38,11,231,11,93,22,170,170,212,191,0,32,216,191,0,32,220,191,0,32,222,191,0,32,224,191,0,32,226,191,0,32,230,191,0,224,234,191,0,32,238,191,0,32,240,191,0,32,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,0,221,222,114,3,0,0,0,120,237,135,3,112,201,250,2,158,244,70,3,3,0,68,14,70,4,45,22,4,192,0,32,8,192,0,32,10,192,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,168,175,119,3,48,45,250,2,36,188,58,3,2,0,68,14,45,22,170,170,19,192,0,32,23,192,0,224,1,0,28,22,48,82,223,114,1,0,28,22,176,85,212,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,164,5,153,3,128,115,250,2,2,47,91,3,4,0,63,12,53,10,130,12,45,22,170,170,31,192,0,32,33,192,0,32,35,192,0,32,39,192,0,224,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,16,117,225,114,3,0,0,0,8,218,151,3,224,224,250,2,52,26,91,3,4,0,19,12,30,6,134,20,45,22,170,170,50,192,0,32,52,192,0,32,56,192,0,32,58,192,0,224,2,0,104,22,28,22,170,170,224,52,237,114,208,126,239,114,1,0,28,22,240,98,215,114,2,0,56,22,28,22,170,170,131,212,0,96,112,231,245,114,3,0,0,0,128,189,165,3,64,108,246,2,167,182,106,3,1,0,28,22,16,27,240,114,5,0,212,8,209,8,70,4,45,22,118,13,69,192,0,32,73,192,0,32,75,192,0,32,79,192,0,224,83,192,0,32,3,0,0,0,248,110,104,3,112,201,250,2,224,8,30,3,1,0,28,22,32,119,252,114,2,0,45,22,122,13,170,170,93,192,0,224,97,192,0,32,1,0,28,22,160,249,199,114,1,0,28,22,96,26,231,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,112,19,197,114,3,0,0,0,52,219,176,3,120,158,250,2,199,176,108,3,5,0,213,12,68,14,67,12,115,21,45,22,103,192,0,32,105,192,0,32,107,192,0,32,111,192,0,32,113,192,0,224,2,0,56,22,28,22,170,170,122,212,0,96,80,123,250,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,0,0,208,12,127,3,80,123,250,2,162,132,63,3,3,0,68,14,183,19,45,22,125,192,0,32,129,192,0,32,133,192,0,224,1,0,28,22,48,45,250,114,2,0,56,22,28,22,170,170,131,212,0,96,80,123,250,114,1,0,28,22,208,209,246,114,1,0,28,22,240,91,237,114,2,0,56,22,28,22,170,170,140,212,0,96,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,96,33,209,114,1,0,28,22,160,39,234,114,2,0,56,22,28,22,170,170,140,212,0,96,16,207,210,114,3,0,0,0,232,131,169,3,96,162,250,2,185,2,100,3,9,0,29,5,103,13,68,14,150,8,252,12,20,8,87,4,178,19,45,22,142,192,0,32,144,192,0,32,148,192,0,32,150,192,0,32,152,192,0,32,156,192,0,32,160,192,0,32,162,192,0,32,166,192,0,224,2,0,56,22,28,22,170,170,122,212,0,96,64,84,250,114,1,0,28,22,160,196,187,114,1,0,28,22,48,82,223,114,3,0,0,0,0,243,179,3,112,201,250,2,9,163,105,3,1,0,28,22,96,153,189,114,1,0,28,22,80,160,223,114,6,0,68,14,244,7,87,4,45,22,192,13,125,22,170,170,184,192,0,32,188,192,0,32,190,192,0,32,192,192,0,224,196,192,0,32,198,192,0,32,1,0,28,22,144,60,224,114,2,0,56,22,28,22,170,170,131,212,0,96,80,123,250,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,3,0,0,0,248,156,138,3,128,115,250,2,68,14,73,3,4,0,68,14,120,19,56,11,45,22,170,170,210,192,0,32,212,192,0,32,216,192,0,32,220,192,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,0,0,136,50,131,3,32,119,252,2,240,248,59,3,2,0,165,12,45,22,170,170,231,192,0,32,235,192,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,2,0,56,22,28,22,170,170,131,212,0,96,48,135,235,114,1,0,28,22,64,211,208,114,3,0,0,0,232,105,165,3,176,232,250,2,234,78,103,3,1,0,28,22,192,154,207,114,1,0,28,22,32,96,235,114,1,0,28,22,32,133,208,114,7,0,19,12,139,22,134,20,45,22,10,13,22,13,82,13,243,192,0,32,247,192,0,32,251,192,0,32,253,192,0,224,1,193,0,32,3,193,0,32,5,193,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,56,22,28,22,71,22,131,212,0,96,112,201,250,114,32,13,228,114,1,0,28,22,16,140,242,114,2,0,56,22,28,22,170,170,131,212,0,96,0,131,237,114,2,0,56,22,28,22,170,170,131,212,0,96,224,52,237,114,3,0,56,22,28,22,71,22,131,212,0,96,224,52,237,114,32,13,228,114,3,0,0,0,44,94,154,3,96,162,250,2,71,88,92,3,7,0,178,5,147,22,68,14,252,12,16,14,155,22,45,22,18,193,0,32,22,193,0,32,27,193,0,32,29,193,0,32,33,193,0,32,37,193,0,32,42,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,8,59,140,3,200,228,250,2,96,186,75,3,2,0,68,14,45,22,170,170,57,193,0,32,61,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,32,133,208,114,1,0,28,22,96,109,238,114,1,0,28,22,16,11,201,114,1,0,28,22,48,149,191,114,1,0,28,22,160,166,192,114,1,0,28,22,16,94,208,114,1,0,28,22,16,64,213,114,2,0,104,22,28,22,170,170,128,187,238,114,16,87,230,114,2,0,104,22,28,22,170,170,112,5,241,114,32,13,228,114,3,0,0,0,188,81,173,3,40,124,244,2,219,125,119,3,11,0,151,5,249,5,68,14,166,7,64,10,96,10,136,10,170,11,186,11,188,12,45,22,69,193,0,32,73,193,0,32,75,193,0,32,77,193,0,32,79,193,0,32,81,193,0,32,83,193,0,32,85,193,0,32,87,193,0,32,91,193,0,32,95,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,1,0,28,22,240,174,244,114,2,0,56,22,28,22,170,170,131,212,0,96,160,122,241,114,2,0,56,22,28,22,170,170,131,212,0,96,176,18,244,114,3,0,0,0,112,220,170,3,112,201,250,2,23,138,103,3,1,0,28,22,224,52,237,114,2,0,28,22,71,22,170,170,160,69,229,114,32,13,228,114,7,0,103,13,68,14,150,8,120,19,45,22,156,13,14,5,116,193,0,32,120,193,0,32,122,193,0,32,126,193,0,32,130,193,0,224,134,193,0,32,136,193,0,32,1,0,28,22,64,144,240,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,1,0,28,22,192,200,241,114,3,0,0,0,100,255,152,3,88,15,240,2,34,238,104,3,6,0,194,6,1,7,163,22,150,8,84,10,45,22,170,170,151,193,0,32,153,193,0,32,155,193,0,32,157,193,0,32,161,193,0,32,163,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,0,161,232,114,1,0,28,22,208,126,239,114,1,0,28,22,176,48,239,114,3,0,0,0,220,32,165,3,0,178,250,2,114,31,97,3,1,0,28,22,240,91,237,114,6,0,85,5,103,13,68,14,47,13,45,22,101,10,170,170,177,193,0,32,181,193,0,32,183,193,0,32,185,193,0,32,187,193,0,224,191,193,0,32,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,1,0,28,22,16,117,225,114,3,0,0,0,20,99,158,3,144,29,250,2,228,201,88,3,3,0,185,13,75,8,45,22,203,193,0,32,207,193,0,32,209,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,253,197,114,2,0,56,22,28,22,170,170,131,212,0,96,240,174,244,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,224,36,198,114,3,0,0,0,124,124,144,3,64,239,245,2,194,143,103,3,5,0,68,14,150,8,138,12,171,7,45,22,218,193,0,32,222,193,0,32,226,193,0,32,230,193,0,32,232,193,0,224,1,0,28,22,208,126,239,114,2,0,56,22,28,22,170,170,131,212,0,96,112,5,241,114,3,0,0,0,204,102,151,3,128,38,242,2,198,182,103,3,1,0,28,22,48,165,230,114,4,0,23,7,150,8,45,22,14,11,170,170,244,193,0,32,246,193,0,32,250,193,0,224,254,193,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,152,230,120,3,112,201,250,2,72,149,51,3,2,0,150,8,45,22,170,170,7,194,0,32,11,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,184,249,114,3,0,0,0,28,158,141,3,96,162,250,2,60,236,66,3,2,0,68,14,45,22,170,170,19,194,0,32,23,194,0,224,1,0,28,22,16,4,223,114,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,3,0,0,0,12,178,152,3,208,60,250,2,30,82,78,3,1,0,28,22,240,91,237,114,5,0,68,14,115,12,177,22,45,22,125,22,31,194,0,32,33,194,0,32,37,194,0,32,41,194,0,224,45,194,0,32,1,0,28,22,160,30,173,114,2,0,56,22,28,22,170,170,131,212,0,96,128,187,238,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,144,7,212,114,2,0,56,22,28,22,170,170,131,212,0,96,64,144,240,114,3,0,0,0,80,77,160,3,192,152,249,2,239,134,103,3,6,0,229,4,84,7,67,12,115,21,135,11,45,22,170,170,55,194,0,32,57,194,0,32,61,194,0,32,65,194,0,32,67,194,0,32,71,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,161,232,114,1,0,28,22,80,10,248,114,3,0,0,0,88,81,123,3,64,84,250,2,192,6,59,3,3,0,120,19,56,11,45,22,85,194,0,32,89,194,0,32,91,194,0,224,1,0,28,22,0,251,217,114,1,0,28,22,0,161,232,114,1,0,28,22,192,101,195,114,1,0,28,22,128,118,187,114,1,0,28,22,128,111,209,114,1,0,28,22,16,94,208,114,1,0,28,22,0,145,193,114,1,0,28,22,208,27,193,114,2,0,56,22,28,22,170,170,131,212,0,96,240,144,249,114,3,0,0,0,64,0,183,3,128,121,249,2,132,61,120,3,2,0,56,22,28,22,170,170,140,212,0,96,64,211,208,114,1,0,28,22,48,209,181,114,1,0,28,22,32,110,191,114,13,0,103,13,68,14,67,12,177,7,87,4,38,6,164,8,97,11,70,4,45,22,141,13,220,13,234,22,100,194,0,32,102,194,0,32,104,194,0,32,106,194,0,32,108,194,0,32,110,194,0,32,112,194,0,32,114,194,0,32,116,194,0,32,120,194,0,224,124,194,0,32,128,194,0,32,130,194,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,24,94,149,3,160,68,250,2,249,98,76,3,2,0,68,14,45,22,170,170,152,194,0,32,156,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,218,242,114,1,0,28,22,240,91,237,114,1,0,28,22,112,95,226,114,1,0,28,22,80,70,238,114,3,0,0,0,52,67,143,3,192,188,243,2,174,43,83,3,1,0,28,22,48,248,237,114,6,0,198,6,68,14,99,9,241,7,45,22,70,13,170,170,164,194,0,32,168,194,0,32,170,194,0,32,172,194,0,32,174,194,0,224,178,194,0,32,3,0,0,0,0,195,62,3,112,201,250,2,32,119,252,2,1,0,28,22,32,119,252,114,2,0,45,22,122,13,170,170,190,194,0,224,194,194,0,32,1,0,28,22,96,33,209,114,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,3,0,0,0,212,122,153,3,120,170,248,2,43,7,90,3,2,0,56,22,28,22,170,170,131,212,0,96,32,36,245,114,4,0,251,11,68,14,45,22,207,23,170,170,200,194,0,32,202,194,0,32,206,194,0,224,210,194,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,0,131,237,114,3,0,0,0,8,134,165,3,224,224,250,2,80,244,100,3,3,0,88,9,47,13,45,22,221,194,0,32,225,194,0,32,229,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,0,244,239,114,3,0,0,0,200,45,137,3,40,106,247,2,174,84,77,3,3,0,68,14,67,12,45,22,238,194,0,32,242,194,0,32,244,194,0,224,1,0,28,22,240,181,222,114,1,0,28,22,144,127,192,114,1,0,28,22,80,227,191,114,1,0,28,22,64,211,208,114,2,0,56,22,28,22,170,170,140,212,0,96,160,23,195,114,1,0,28,22,176,39,178,114,2,0,56,22,28,22,170,170,140,212,0,96,0,145,193,114,1,0,28,22,96,100,177,114,1,0,28,22,48,149,191,114,1,0,28,22,224,43,176,114,1,0,28,22,64,248,181,114,1,0,28,22,64,135,179,114,1,0,28,22,160,16,217,114,2,0,56,22,28,22,170,170,140,212,0,96,16,244,183,114,2,0,56,22,28,22,170,170,140,212,0,96,192,48,183,114,1,0,28,22,208,50,210,114,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,0,221,222,114,1,0,28,22,208,20,215,114,1,0,28,22,240,181,222,114,2,0,56,22,28,22,170,170,131,212,0,96,32,66,240,114,1,0,28,22,0,168,210,114,2,0,56,22,28,22,170,170,140,212,0,96,0,152,171,114,1,0,28,22,224,202,212,114,1,0,28,22,128,254,206,114,1,0,28,22,144,37,207,114,1,0,28,22,112,139,177,114,1,0,28,22,112,12,219,114,3,0,104,22,56,22,28,22,32,66,240,114,140,212,0,96,128,254,206,114,3,0,104,22,56,22,28,22,32,66,240,114,140,212,0,96,128,254,206,114,1,0,28,22,160,76,207,114,1,0,28,22,144,7,212,114,1,0,28,22,224,43,176,114,1,0,28,22,32,200,176,114,1,0,28,22,208,27,193,114,1,0,28,22,128,201,194,114,1,0,28,22,48,209,181,114,1,0,28,22,176,115,207,114,1,0,28,22,144,74,180,114,1,0,28,22,112,132,199,114,1,0,28,22,0,2,196,114,1,0,28,22,16,161,176,114,1,0,28,22,0,221,222,114,1,0,28,22,64,211,208,114,1,0,28,22,160,46,212,114,1,0,28,22,16,161,176,114,1,0,28,22,144,120,214,114,1,0,28,22,112,72,209,114,1,0,28,22,64,181,213,114,1,0,28,22,144,37,207,114,1,0,28,22,208,193,207,114,1,0,28,22,208,163,212,114,3,0,0,0,120,192,180,3,112,201,250,2,173,128,107,3,1,0,28,22,96,176,206,114,1,0,28,22,0,55,208,114,1,0,28,22,128,194,216,114,1,0,28,22,208,163,212,114,1,0,28,22,96,100,177,114,1,0,28,22,16,4,223,114,1,0,28,22,32,43,223,114,60,0,185,13,5,5,194,0,151,5,21,6,57,6,225,13,69,6,81,6,85,6,101,6,115,6,103,13,135,6,139,6,63,12,68,14,67,12,22,10,12,7,150,8,174,7,200,7,75,12,252,12,20,8,27,8,87,4,200,10,188,22,38,6,97,11,44,9,119,9,154,0,76,10,80,10,120,19,239,10,5,8,21,11,25,11,41,11,76,11,100,11,115,11,70,4,173,13,47,13,244,10,16,14,154,20,45,22,101,10,158,12,28,8,149,13,184,13,47,14,210,9,170,170,253,194,0,32,255,194,0,32,1,195,0,32,3,195,0,32,5,195,0,32,9,195,0,32,11,195,0,32,15,195,0,32,17,195,0,32,19,195,0,32,21,195,0,32,23,195,0,32,25,195,0,32,27,195,0,32,31,195,0,32,35,195,0,32,37,195,0,32,41,195,0,32,43,195,0,32,45,195,0,32,47,195,0,32,51,195,0,32,53,195,0,32,57,195,0,32,59,195,0,32,61,195,0,32,63,195,0,32,65,195,0,32,67,195,0,32,72,195,0,32,77,195,0,32,79,195,0,32,81,195,0,32,83,195,0,32,85,195,0,32,87,195,0,32,89,195,0,32,91,195,0,32,93,195,0,32,95,195,0,32,97,195,0,32,99,195,0,32,101,195,0,32,103,195,0,32,105,195,0,32,107,195,0,32,109,195,0,32,111,195,0,32,113,195,0,32,115,195,0,32,117,195,0,32,119,195,0,32,121,195,0,224,125,195,0,32,127,195,0,32,129,195,0,32,131,195,0,32,133,195,0,32,135,195,0,32,137,195,0,32,2,0,56,22,28,22,170,170,122,212,0,96,80,70,238,114,1,0,28,22,112,88,248,114,3,0,0,0,68,53,106,3,112,201,250,2,32,141,34,3,3,0,68,14,177,22,45,22,230,195,0,32,234,195,0,32,236,195,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,56,226,114,2,0,56,22,28,22,170,170,140,212,0,96,240,181,222,114,2,0,56,22,28,22,170,170,140,212,0,96,240,38,225,114,1,0,28,22,144,120,214,114,1,0,28,22,112,238,223,114,2,0,56,22,28,22,170,170,140,212,0,96,0,18,235,114,1,0,28,22,32,246,210,114,2,0,56,22,28,22,170,170,140,212,0,96,96,79,243,114,3,0,0,0,176,254,157,3,160,223,245,2,20,144,118,3,9,0,150,8,157,8,209,8,151,9,167,9,170,9,55,13,171,7,45,22,245,195,0,32,249,195,0,32,253,195,0,32,1,196,0,32,3,196,0,32,5,196,0,32,9,196,0,32,11,196,0,32,15,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,80,40,243,114,1,0,28,22,64,211,208,114,2,0,56,22,28,22,170,170,131,212,0,96,80,40,243,114,3,0,0,0,248,112,137,3,48,81,244,2,46,162,95,3,4,0,150,8,209,8,63,13,45,22,170,170,33,196,0,32,37,196,0,32,39,196,0,32,43,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,128,127,248,114,1,0,28,22,128,21,224,114,3,0,0,0,12,3,152,3,176,119,248,2,155,145,94,3,3,0,150,8,209,8,45,22,54,196,0,32,58,196,0,32,60,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,209,246,114,1,0,28,22,16,253,244,114,2,0,56,22,28,22,170,170,131,212,0,96,144,226,238,114,3,0,56,22,28,22,71,22,122,212,0,96,80,153,245,114,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,176,251,226,114,2,0,28,22,71,22,170,170,144,173,226,114,32,13,228,114,1,0,28,22,32,156,225,114,2,0,56,22,28,22,170,170,140,212,0,96,224,202,212,114,1,0,28,22,144,150,209,114,3,0,0,0,156,196,170,3,112,201,250,2,207,80,99,3,1,0,28,22,128,254,206,114,11,0,103,13,68,14,150,8,170,7,87,4,147,9,70,4,32,7,194,11,45,22,180,13,69,196,0,32,73,196,0,32,75,196,0,32,79,196,0,32,84,196,0,32,88,196,0,32,92,196,0,32,94,196,0,32,98,196,0,32,100,196,0,224,104,196,0,32,2,0,104,22,28,22,170,170,224,52,237,114,240,91,237,114,2,0,104,22,28,22,170,170,224,52,237,114,208,193,207,114,2,0,104,22,28,22,170,170,160,242,221,114,128,134,226,114,2,0,56,22,28,22,170,170,131,212,0,96,80,40,243,114,1,0,28,22,48,172,208,114,2,0,28,22,71,22,170,170,176,251,226,114,32,13,228,114,3,0,0,0,80,90,162,3,232,92,244,2,187,241,105,3,7,0,49,5,162,5,155,6,150,8,145,8,50,12,45,22,123,196,0,32,127,196,0,32,131,196,0,32,135,196,0,32,139,196,0,32,141,196,0,32,145,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,252,149,121,3,48,45,250,2,120,204,53,3,2,0,68,14,45,22,170,170,160,196,0,32,164,196,0,224,1,0,28,22,240,181,222,114,1,0,28,22,240,234,234,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,68,175,169,3,208,185,250,2,172,134,104,3,4,0,225,4,68,14,67,12,45,22,170,170,172,196,0,32,174,196,0,32,176,196,0,32,180,196,0,224,2,0,104,22,28,22,170,170,128,187,238,114,160,76,207,114,1,0,28,22,48,29,211,114,2,0,104,22,28,22,170,170,208,126,239,114,192,64,222,114,1,0,28,22,192,64,222,114,2,0,104,22,28,22,170,170,208,126,239,114,224,142,222,114,2,0,104,22,28,22,170,170,32,66,240,114,80,220,213,114,2,0,28,22,71,22,170,170,208,103,222,114,32,13,228,114,2,0,104,22,28,22,170,170,32,66,240,114,32,103,213,114,1,0,28,22,224,112,227,114,2,0,104,22,28,22,170,170,48,248,237,114,176,25,222,114,2,0,104,22,28,22,170,170,208,126,239,114,192,124,212,114,2,0,56,22,28,22,170,170,131,212,0,96,160,122,241,114,2,0,104,22,28,22,170,170,48,248,237,114,240,38,225,114,1,0,28,22,64,234,225,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,1,0,28,22,160,76,207,114,2,0,104,22,28,22,170,170,32,66,240,114,224,89,210,114,1,0,28,22,80,250,208,114,1,0,28,22,32,103,213,114,1,0,28,22,192,11,210,114,1,0,28,22,96,116,216,114,2,0,28,22,71,22,170,170,176,85,212,114,32,13,228,114,1,0,28,22,160,242,221,114,2,0,104,22,28,22,170,170,224,52,237,114,128,201,194,114,2,0,104,22,28,22,170,170,0,161,232,114,224,142,222,114,3,0,0,0,168,48,161,3,104,143,246,2,10,252,105,3,1,0,28,22,112,79,187,114,2,0,104,22,28,22,170,170,64,121,223,114,0,221,222,114,29,0,169,4,185,13,33,5,37,5,45,5,69,5,135,5,185,5,209,5,221,5,179,6,68,14,241,6,1,7,163,22,150,8,202,22,66,8,210,22,204,8,14,9,221,9,37,10,104,10,207,10,211,10,45,22,31,14,35,14,191,196,0,32,195,196,0,32,197,196,0,32,201,196,0,32,203,196,0,32,207,196,0,32,211,196,0,32,215,196,0,32,219,196,0,32,221,196,0,32,225,196,0,32,229,196,0,32,233,196,0,32,237,196,0,32,239,196,0,32,241,196,0,32,245,196,0,32,247,196,0,32,251,196,0,32,253,196,0,32,255,196,0,32,1,197,0,32,3,197,0,32,7,197,0,32,9,197,0,32,13,197,0,32,17,197,0,224,21,197,0,32,23,197,0,32,2,0,56,22,28,22,170,170,140,212,0,96,0,55,208,114,1,0,28,22,16,131,181,114,1,0,28,22,16,4,223,114,1,0,28,22,112,238,223,114,1,0,28,22,192,191,180,114,1,0,28,22,208,216,224,114,2,0,104,22,28,22,170,170,0,214,244,114,128,81,214,114,1,0,28,22,176,205,192,114,1,0,28,22,208,223,202,114,2,0,56,22,28,22,170,170,140,212,0,96,176,115,207,114,1,0,28,22,160,23,195,114,1,0,28,22,224,126,183,114,1,0,28,22,80,197,196,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,140,212,0,96,96,33,209,114,1,0,28,22,48,82,223,114,1,0,28,22,0,145,193,114,1,0,28,22,224,43,176,114,1,0,28,22,176,205,192,114,3,0,0,0,96,44,197,3,24,49,250,2,74,101,134,3,2,0,56,22,28,22,170,170,140,212,0,96,48,142,213,114,1,0,28,22,128,125,165,114,1,0,28,22,32,4,167,114,1,0,28,22,192,147,229,114,1,0,28,22,64,91,228,114,2,0,56,22,28,22,170,170,140,212,0,96,176,228,209,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,27,0,214,23,68,14,79,7,208,7,244,7,16,8,174,4,172,8,85,22,97,11,214,22,95,9,123,9,209,9,222,22,155,10,254,10,47,13,216,12,45,22,231,11,230,22,149,13,212,13,238,22,87,14,210,9,71,197,0,32,75,197,0,32,77,197,0,32,79,197,0,32,81,197,0,32,83,197,0,32,85,197,0,32,89,197,0,32,91,197,0,32,93,197,0,32,97,197,0,32,99,197,0,32,101,197,0,32,103,197,0,32,105,197,0,32,109,197,0,32,111,197,0,32,113,197,0,32,115,197,0,32,117,197,0,224,121,197,0,32,125,197,0,32,127,197,0,32,129,197,0,32,131,197,0,32,133,197,0,32,137,197,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,112,72,209,114,3,0,0,0,240,164,173,3,128,246,249,2,160,61,109,3,1,0,28,22,16,244,183,114,4,0,67,12,181,7,45,22,234,22,170,170,182,197,0,32,186,197,0,32,188,197,0,224,192,197,0,32,3,0,0,0,164,101,62,3,112,201,250,2,32,119,252,2,1,0,28,22,32,119,252,114,2,0,45,22,122,13,170,170,201,197,0,224,205,197,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,232,85,160,3,248,95,250,2,103,69,94,3,2,0,67,12,45,22,170,170,211,197,0,32,215,197,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,104,224,164,3,176,232,250,2,63,112,103,3,2,0,67,12,45,22,170,170,223,197,0,32,227,197,0,224,1,0,28,22,240,144,249,114,2,0,56,22,28,22,170,170,131,212,0,96,0,71,247,114,3,0,0,0,36,8,138,3,168,162,248,2,23,34,80,3,3,0,141,8,70,4,45,22,235,197,0,32,237,197,0,32,241,197,0,224,1,0,28,22,96,56,226,114,2,0,56,22,28,22,170,170,131,212,0,96,0,161,232,114,2,0,56,22,28,22,170,170,122,212,0,96,80,10,248,114,3,0,0,0,160,10,137,3,64,84,250,2,241,138,73,3,4,0,67,12,120,19,56,11,45,22,170,170,250,197,0,32,252,197,0,32,0,198,0,32,4,198,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,3,0,0,0,196,168,118,3,112,201,250,2,148,20,44,3,2,0,68,14,45,22,170,170,15,198,0,32,19,198,0,224,1,0,28,22,96,176,206,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,1,0,28,22,208,209,246,114,1,0,28,22,96,26,231,114,1,0,28,22,32,133,208,114,3,0,0,0,104,96,152,3,184,189,250,2,204,108,88,3,2,0,56,22,28,22,170,170,131,212,0,96,176,48,239,114,7,0,185,13,63,12,68,14,150,8,30,6,45,22,101,10,27,198,0,32,29,198,0,32,33,198,0,32,35,198,0,32,37,198,0,32,39,198,0,224,43,198,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,48,248,237,114,1,0,28,22,240,204,239,114,1,0,28,22,208,163,212,114,1,0,28,22,64,31,238,114,3,0,0,0,156,133,168,3,112,201,250,2,81,98,103,3,6,0,35,12,103,13,68,14,100,11,240,10,45,22,170,170,58,198,0,32,62,198,0,32,64,198,0,32,66,198,0,32,68,198,0,32,70,198,0,224,2,0,28,22,71,22,170,170,80,70,238,114,32,13,228,114,1,0,28,22,64,121,223,114,2,0,56,22,28,22,170,170,131,212,0,96,240,144,249,114,2,0,28,22,71,22,170,170,176,235,187,114,32,13,228,114,1,0,28,22,32,246,210,114,1,0,28,22,64,114,245,114,1,0,28,22,192,147,229,114,1,0,28,22,96,109,238,114,2,0,56,22,28,22,170,170,140,212,0,96,64,188,191,114,1,0,28,22,208,117,178,114,2,0,28,22,71,22,170,170,112,238,223,114,32,13,228,114,1,0,28,22,176,55,217,114,2,0,28,22,71,22,170,170,128,88,192,114,32,13,228,114,1,0,28,22,96,26,231,114,1,0,28,22,160,189,209,114,1,0,28,22,224,59,215,114,2,0,28,22,71,22,170,170,0,131,237,114,32,13,228,114,1,0,28,22,160,39,234,114,1,0,28,22,0,0,0,112,1,0,28,22,144,150,209,114,1,0,28,22,192,147,229,114,1,0,28,22,0,122,176,114,2,0,28,22,71,22,170,170,160,242,221,114,32,13,228,114,3,0,0,0,188,115,184,3,112,201,250,2,125,251,113,3,1,0,28,22,144,60,224,114,1,0,28,22,192,147,229,114,26,0,29,5,106,17,103,13,163,6,63,12,68,14,67,12,150,8,43,7,47,7,170,7,252,12,12,8,87,4,18,9,134,20,171,10,120,19,84,11,100,11,47,13,153,12,172,12,45,22,101,10,160,13,170,170,84,198,0,32,88,198,0,32,90,198,0,32,94,198,0,32,98,198,0,32,100,198,0,32,102,198,0,32,104,198,0,32,106,198,0,32,110,198,0,32,112,198,0,32,116,198,0,32,118,198,0,32,122,198,0,32,124,198,0,32,126,198,0,32,128,198,0,32,132,198,0,32,134,198,0,32,136,198,0,32,138,198,0,32,140,198,0,32,142,198,0,32,146,198,0,224,150,198,0,32,152,198,0,32,2,0,56,22,28,22,170,170,122,212,0,96,112,201,250,114,3,0,0,0,0,37,105,3,112,201,250,2,32,22,33,3,2,0,68,14,45,22,170,170,194,198,0,32,198,198,0,224,1,0,28,22,224,22,242,114,2,0,56,22,28,22,170,170,131,212,0,96,144,143,231,114,2,0,56,22,28,22,170,170,131,212,0,96,80,160,223,114,1,0,28,22,208,239,241,114,3,0,0,0,160,210,137,3,152,10,246,2,140,76,85,3,5,0,94,8,185,13,150,8,244,10,45,22,206,198,0,32,208,198,0,32,212,198,0,32,216,198,0,32,218,198,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,140,212,0,96,48,218,242,114,1,0,28,22,160,205,248,114,1,0,28,22,32,246,210,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,140,212,0,96,128,254,206,114,1,0,28,22,16,170,237,114,3,0,0,0,120,45,167,3,112,201,250,2,189,114,95,3,8,0,106,17,103,13,68,14,22,22,86,8,129,20,165,12,45,22,170,170,230,198,0,32,234,198,0,32,238,198,0,32,240,198,0,32,242,198,0,32,244,198,0,32,248,198,0,32,250,198,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,3,0,0,0,24,245,128,3,32,6,250,2,158,77,67,3,2,0,68,14,45,22,170,170,11,199,0,32,15,199,0,224,1,0,28,22,64,128,201,114,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,8,109,165,3,200,109,249,2,101,90,103,3,3,0,68,14,67,12,45,22,23,199,0,32,25,199,0,32,29,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,1,0,28,22,112,88,248,114,1,0,28,22,96,26,231,114,2,0,56,22,28,22,170,170,131,212,0,96,128,187,238,114,2,0,104,22,28,22,170,170,224,52,237,114,224,82,232,114,3,0,0,0,48,102,172,3,48,194,246,2,225,78,108,3,6,0,185,13,237,4,68,14,150,8,97,8,45,22,170,170,38,199,0,32,42,199,0,32,44,199,0,32,46,199,0,32,50,199,0,32,54,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,144,103,140,3,168,150,250,2,176,133,73,3,2,0,67,12,45,22,170,170,68,199,0,32,72,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,2,0,56,22,28,22,170,170,131,212,0,96,80,70,238,114,1,0,28,22,144,30,229,114,3,0,0,0,40,187,165,3,96,168,249,2,153,84,104,3,4,0,67,12,135,11,142,11,45,22,170,170,80,199,0,32,84,199,0,32,88,199,0,32,90,199,0,224,1,0,28,22,96,79,243,114,2,0,56,22,28,22,170,170,131,212,0,96,176,131,246,114,1,0,28,22,144,226,238,114,1,0,28,22,192,57,244,114,3,0,0,0,244,225,153,3,176,232,250,2,238,93,88,3,1,0,28,22,144,30,229,114,6,0,68,14,237,12,206,6,47,13,45,22,172,13,170,170,101,199,0,32,103,199,0,32,107,199,0,32,109,199,0,32,111,199,0,224,115,199,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,1,0,28,22,64,114,245,114,1,0,28,22,80,54,199,114,1,0,28,22,112,5,241,114,3,0,0,0,208,225,179,3,248,244,246,2,60,153,118,3,5,0,185,13,249,4,63,12,68,14,45,22,127,199,0,32,131,199,0,32,133,199,0,32,135,199,0,32,137,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,132,215,130,3,96,79,243,2,175,47,81,3,2,0,185,13,45,22,170,170,149,199,0,32,153,199,0,224,1,0,28,22,64,234,225,114,3,0,56,22,28,22,71,22,131,212,0,96,16,230,227,114,32,13,228,114,1,0,28,22,208,103,222,114,2,0,56,22,28,22,170,170,131,212,0,96,240,174,244,114,1,0,28,22,64,234,225,114,3,0,0,0,104,157,146,3,168,49,246,2,120,197,95,3,2,0,56,22,28,22,170,170,122,212,0,96,0,214,244,114,1,0,28,22,96,109,238,114,8,0,94,8,185,13,217,5,68,14,149,12,45,22,255,12,2,13,170,170,161,199,0,32,163,199,0,32,168,199,0,32,170,199,0,32,174,199,0,32,176,199,0,224,180,199,0,32,184,199,0,32,1,0,28,22,192,214,197,114,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,2,0,56,22,28,22,170,170,140,212,0,96,80,70,238,114,1,0,28,22,192,87,239,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,2,0,56,22,28,22,170,170,140,212,0,96,64,121,223,114,1,0,28,22,208,163,212,114,2,0,56,22,28,22,170,170,140,212,0,96,96,26,231,114,2,0,56,22,28,22,170,170,140,212,0,96,112,192,189,114,3,0,0,0,8,194,180,3,168,150,250,2,254,97,109,3,10,0,158,18,1,5,122,8,68,14,67,12,199,19,245,6,180,10,9,3,45,22,170,170,199,199,0,32,201,199,0,32,205,199,0,32,209,199,0,32,211,199,0,32,215,199,0,32,219,199,0,32,221,199,0,32,225,199,0,32,229,199,0,224,1,0,28,22,224,142,222,114,2,0,56,22,28,22,170,170,131,212,0,96,80,183,240,114,1,0,28,22,240,61,242,114,1,0,28,22,0,0,0,112,1,0,28,22,64,144,240,114,1,0,28,22,48,195,225,114,1,0,28,22,192,147,229,114,3,0,0,0,216,216,165,3,176,161,241,2,209,168,118,3,1,0,28,22,192,147,229,114,1,0,28,22,32,43,223,114,10,0,94,8,3,12,68,14,106,7,219,11,82,12,244,10,45,22,255,12,145,17,170,170,249,199,0,32,251,199,0,32,255,199,0,32,1,200,0,32,3,200,0,32,5,200,0,32,7,200,0,32,9,200,0,224,13,200,0,32,15,200,0,32,1,0,28,22,96,109,238,114,1,0,28,22,160,92,246,114,1,0,28,22,112,215,206,114,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,1,0,28,22,32,163,203,114,1,0,28,22,208,133,217,114,1,0,28,22,192,101,195,114,1,0,28,22,48,149,191,114,2,0,56,22,28,22,170,170,140,212,0,96,48,149,191,114,2,0,56,22,28,22,170,170,131,212,0,96,0,101,242,114,3,0,0,0,228,133,166,3,32,119,252,2,111,254,94,3,11,0,103,13,68,14,237,12,206,6,190,11,47,13,34,4,106,12,114,12,165,12,45,22,33,200,0,32,35,200,0,32,37,200,0,32,39,200,0,32,43,200,0,32,45,200,0,32,47,200,0,32,49,200,0,32,51,200,0,32,55,200,0,32,59,200,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,2,0,56,22,28,22,170,170,131,212,0,96,176,161,241,114,1,0,28,22,0,101,242,114,2,0,56,22,28,22,170,170,131,212,0,96,208,239,241,114,1,0,28,22,112,72,209,114,3,0,0,0,116,111,145,3,104,250,249,2,230,131,85,3,6,0,68,14,20,7,75,12,216,7,222,11,45,22,170,170,80,200,0,32,84,200,0,32,88,200,0,32,90,200,0,32,94,200,0,32,96,200,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,3,0,0,0,192,40,120,3,112,201,250,2,120,152,45,3,2,0,68,14,45,22,170,170,110,200,0,32,114,200,0,224,1,0,28,22,32,66,240,114,2,0,56,22,28,22,170,170,131,212,0,96,208,96,244,114,1,0,28,22,224,82,232,114,1,0,28,22,176,48,239,114,3,0,0,0,224,81,122,3,208,66,249,2,228,203,72,3,1,0,28,22,208,216,224,114,1,0,28,22,0,48,230,114,7,0,5,6,68,14,231,8,111,11,45,22,114,13,27,14,122,200,0,32,124,200,0,32,128,200,0,32,130,200,0,32,132,200,0,224,136,200,0,32,138,200,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,100,82,135,3,112,201,250,2,56,218,63,3,2,0,22,22,45,22,170,170,151,200,0,32,155,200,0,224,2,0,104,22,28,22,170,170,224,255,224,114,240,211,217,114,1,0,28,22,208,193,207,114,2,0,28,22,71,22,170,170,64,211,208,114,32,13,228,114,1,0,28,22,32,13,228,114,1,0,28,22,176,161,241,114,1,0,28,22,16,170,237,114,1,0,28,22,144,37,207,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,1,0,28,22,96,63,204,114,2,0,28,22,71,22,170,170,112,12,219,114,32,13,228,114,1,0,28,22,240,15,208,114,1,0,28,22,64,112,162,114,1,0,28,22,16,4,223,114,1,0,28,22,144,37,207,114,2,0,28,22,71,22,170,170,224,255,224,114,32,13,228,114,1,0,28,22,176,25,222,114,1,0,28,22,208,103,222,114,3,0,0,0,32,103,182,3,112,201,250,2,146,26,112,3,18,0,201,13,122,8,31,12,103,13,68,14,67,12,199,19,150,8,39,7,170,7,244,7,175,11,87,4,120,19,9,3,64,11,70,4,45,22,170,170,163,200,0,32,167,200,0,32,169,200,0,32,173,200,0,32,175,200,0,32,177,200,0,32,179,200,0,32,181,200,0,32,185,200,0,32,187,200,0,32,191,200,0,32,193,200,0,32,195,200,0,32,197,200,0,32,199,200,0,32,203,200,0,32,205,200,0,32,207,200,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,160,39,234,114,3,0,0,0,8,31,153,3,208,66,249,2,115,229,89,3,3,0,150,8,131,11,45,22,239,200,0,32,243,200,0,32,245,200,0,224,1,0,28,22,160,189,209,114,1,0,28,22,64,68,211,114,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,1,0,28,22,160,39,234,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,0,0,0,112,1,0,28,22,0,161,232,114,1,0,28,22,176,48,239,114,2,0,56,22,28,22,170,170,140,212,0,96,176,115,207,114,3,0,56,22,28,22,71,22,140,212,0,96,112,215,206,114,32,13,228,114,1,0,28,22,208,216,224,114,1,0,28,22,0,55,208,114,1,0,28,22,32,57,179,114,1,0,28,22,0,55,208,114,1,0,28,22,64,234,225,114,1,0,28,22,128,134,226,114,1,0,28,22,0,55,208,114,2,0,28,22,71,22,170,170,144,60,224,114,32,13,228,114,1,0,28,22,0,55,208,114,1,0,28,22,0,78,225,114,3,0,0,0,20,130,182,3,112,201,250,2,11,201,111,3,1,0,28,22,0,55,208,114,1,0,28,22,48,195,225,114,1,0,28,22,160,189,209,114,24,0,185,13,151,5,213,12,103,13,68,14,9,23,67,12,150,8,111,13,103,7,174,7,87,4,41,9,187,15,41,11,100,11,70,4,30,12,244,10,154,20,45,22,101,10,28,8,125,22,170,170,254,200,0,32,0,201,0,32,2,201,0,32,6,201,0,32,8,201,0,32,12,201,0,32,14,201,0,32,16,201,0,32,18,201,0,32,22,201,0,32,27,201,0,32,29,201,0,32,31,201,0,32,33,201,0,32,35,201,0,32,37,201,0,32,39,201,0,32,41,201,0,32,45,201,0,32,47,201,0,32,49,201,0,224,53,201,0,32,55,201,0,32,57,201,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,8,195,134,3,64,84,250,2,134,245,72,3,2,0,68,14,45,22,170,170,96,201,0,32,100,201,0,224,2,0,56,22,28,22,170,170,140,212,0,96,96,199,223,114,1,0,28,22,96,26,231,114,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,80,190,218,114,2,0,56,22,28,22,170,170,140,212,0,96,96,199,223,114,1,0,28,22,160,39,234,114,3,0,0,0,164,155,153,3,200,228,250,2,84,151,92,3,1,0,28,22,240,91,237,114,8,0,201,12,30,6,26,11,134,20,85,10,47,13,45,22,239,13,170,170,108,201,0,32,112,201,0,32,114,201,0,32,118,201,0,32,120,201,0,32,124,201,0,32,126,201,0,224,130,201,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,110,247,114,1,0,28,22,224,165,239,114,1,0,28,22,128,21,224,114,3,0,0,0,156,162,134,3,112,88,248,2,21,71,74,3,1,0,28,22,144,60,224,114,5,0,150,8,99,7,244,7,45,22,125,22,145,201,0,32,149,201,0,32,151,201,0,32,153,201,0,224,157,201,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,68,142,137,3,32,119,252,2,184,52,66,3,2,0,68,14,45,22,170,170,167,201,0,32,171,201,0,224,1,0,28,22,32,13,228,114,1,0,28,22,224,255,224,114,2,0,56,22,28,22,170,170,140,212,0,96,176,161,241,114,2,0,56,22,28,22,170,170,140,212,0,96,240,91,237,114,2,0,56,22,28,22,170,170,131,212,0,96,144,226,238,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,140,212,0,96,192,177,224,114,1,0,28,22,48,195,225,114,1,0,28,22,32,73,218,114,1,0,28,22,160,242,221,114,1,0,28,22,96,10,192,114,3,0,0,0,176,212,164,3,56,151,246,2,90,58,106,3,13,0,145,4,157,4,234,9,47,12,68,14,1,7,163,22,71,7,185,7,169,8,17,11,250,11,45,22,179,201,0,32,181,201,0,32,183,201,0,32,187,201,0,32,191,201,0,32,195,201,0,32,197,201,0,32,199,201,0,32,203,201,0,32,205,201,0,32,207,201,0,32,209,201,0,32,211,201,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,1,0,28,22,96,79,243,114,3,0,0,0,48,99,135,3,64,227,247,2,2,125,60,3,3,0,68,14,67,12,45,22,235,201,0,32,239,201,0,32,241,201,0,224,1,0,28,22,32,209,237,114,2,0,56,22,28,22,170,170,131,212,0,96,128,127,248,114,3,0,0,0,84,243,135,3,32,119,252,2,32,196,64,3,3,0,106,17,129,20,45,22,250,201,0,32,252,201,0,32,0,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,200,241,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,1,0,28,22,16,27,240,114,3,0,0,0,16,191,140,3,88,122,243,2,56,207,89,3,5,0,68,14,1,7,163,22,237,9,45,22,9,202,0,32,13,202,0,32,15,202,0,32,17,202,0,32,19,202,0,224,1,0,28,22,224,165,239,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,16,27,240,114,1,0,28,22,96,56,226,114,1,0,28,22,176,48,239,114,1,0,28,22,32,13,228,114,1,0,28,22,240,91,237,114,3,0,0,0,148,203,151,3,208,239,241,2,154,169,103,3,8,0,1,7,163,22,150,8,235,8,26,23,235,10,161,12,45,22,170,170,31,202,0,32,33,202,0,32,35,202,0,32,39,202,0,32,41,202,0,32,43,202,0,32,45,202,0,32,47,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,4,161,137,3,224,105,249,2,104,36,78,3,2,0,150,8,45,22,170,170,64,202,0,32,68,202,0,224,1,0,28,22,240,121,232,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,1,0,28,22,112,118,243,114,2,0,56,22,28,22,170,170,131,212,0,96,128,217,233,114,2,0,56,22,28,22,170,170,131,212,0,96,160,233,160,114,3,0,0,0,64,86,152,3,240,13,250,2,18,254,83,3,6,0,213,5,67,12,249,6,150,8,70,4,45,22,170,170,76,202,0,32,78,202,0,32,82,202,0,32,84,202,0,32,88,202,0,32,92,202,0,224,1,0,28,22,112,72,209,114,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,1,0,28,22,112,118,243,114,1,0,28,22,160,39,234,114,1,0,28,22,0,221,222,114,1,0,28,22,80,17,226,114,1,0,28,22,96,63,204,114,3,0,0,0,100,90,167,3,8,135,250,2,151,94,103,3,1,0,28,22,192,64,222,114,1,0,28,22,112,139,177,114,11,0,85,5,103,13,63,12,68,14,150,8,53,10,107,11,130,12,45,22,101,10,58,13,106,202,0,32,108,202,0,32,110,202,0,32,114,202,0,32,116,202,0,32,118,202,0,32,120,202,0,32,122,202,0,32,124,202,0,224,128,202,0,32,130,202,0,32,3,0,0,0,192,206,84,3,112,201,250,2,0,64,13,3,2,0,104,22,28,22,170,170,32,119,252,114,32,119,252,114,2,0,45,22,122,13,170,170,149,202,0,224,153,202,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,140,212,0,96,96,26,231,114,3,0,0,0,180,228,164,3,24,67,247,2,77,94,104,3,3,0,67,12,138,11,45,22,161,202,0,32,165,202,0,32,169,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,2,0,56,22,28,22,170,170,122,212,0,96,240,144,249,114,3,0,0,0,164,27,141,3,112,201,250,2,229,205,73,3,3,0,164,10,68,14,45,22,178,202,0,32,182,202,0,32,186,202,0,224,1,0,28,22,160,233,160,114,1,0,28,22,160,233,160,114,1,0,28,22,160,99,224,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,108,27,137,3,104,30,244,2,198,110,89,3,5,0,1,7,163,22,219,8,70,4,45,22,195,202,0,32,197,202,0,32,199,202,0,32,201,202,0,32,205,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,20,226,141,3,48,176,249,2,60,174,82,3,2,0,68,14,45,22,170,170,217,202,0,32,221,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,118,243,114,3,0,0,0,52,30,170,3,152,242,249,2,255,141,97,3,1,0,28,22,224,105,249,114,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,5,0,68,14,45,22,47,14,210,9,125,22,229,202,0,32,233,202,0,224,237,202,0,32,239,202,0,32,241,202,0,32,3,0,0,0,244,115,63,3,112,201,250,2,32,119,252,2,2,0,104,22,28,22,170,170,32,119,252,114,32,119,252,114,2,0,45,22,122,13,170,170,253,202,0,224,1,203,0,32,1,0,28,22,128,224,211,114,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,152,151,154,3,120,170,248,2,142,149,100,3,3,0,68,14,67,12,45,22,9,203,0,32,11,203,0,32,15,203,0,224,1,0,28,22,80,40,243,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,2,0,56,22,28,22,170,170,140,212,0,96,0,221,222,114,3,0,0,0,20,88,164,3,136,197,250,2,119,241,92,3,2,0,56,22,28,22,170,170,140,212,0,96,32,216,215,114,5,0,68,14,252,12,87,4,45,22,141,13,24,203,0,32,26,203,0,32,30,203,0,32,34,203,0,224,38,203,0,32,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,240,151,227,114,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,3,0,0,0,20,147,150,3,152,28,243,2,150,112,103,3,3,0,150,8,237,20,45,22,50,203,0,32,55,203,0,32,59,203,0,224,1,0,28,22,96,109,238,114,1,0,28,22,128,187,238,114,1,0,28,22,224,255,224,114,1,0,28,22,192,11,210,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,240,68,220,114,1,0,28,22,128,254,206,114,1,0,28,22,176,175,197,114,3,0,0,0,128,52,167,3,112,201,250,2,31,103,101,3,9,0,103,13,68,14,150,8,252,12,20,8,173,13,240,10,178,19,45,22,68,203,0,32,70,203,0,32,72,203,0,32,74,203,0,32,76,203,0,32,80,203,0,32,82,203,0,32,84,203,0,32,86,203,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,16,233,158,3,168,150,250,2,195,177,89,3,2,0,67,12,45,22,170,170,104,203,0,32,108,203,0,224,1,0,28,22,224,142,222,114,1,0,28,22,112,72,209,114,2,0,104,22,28,22,170,170,224,52,237,114,32,43,223,114,1,0,28,22,128,51,219,114,1,0,28,22,80,160,223,114,2,0,104,22,28,22,170,170,224,52,237,114,240,181,222,114,2,0,104,22,28,22,170,170,224,52,237,114,0,221,222,114,1,0,28,22,128,254,206,114,1,0,28,22,80,107,211,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,2,0,104,22,28,22,170,170,224,52,237,114,96,222,240,114,1,0,28,22,192,11,210,114,1,0,28,22,160,76,207,114,1,0,28,22,144,37,207,114,1,0,28,22,16,177,215,114,2,0,104,22,28,22,170,170,192,200,241,114,240,8,230,114,1,0,28,22,80,77,216,114,1,0,28,22,64,241,203,114,2,0,104,22,28,22,170,170,224,52,237,114,224,255,224,114,1,0,28,22,32,156,225,114,1,0,28,22,192,64,222,114,1,0,28,22,0,145,193,114,1,0,28,22,16,207,210,114,1,0,28,22,160,46,212,114,1,0,28,22,112,215,206,114,1,0,28,22,208,246,219,114,1,0,28,22,224,36,198,114,1,0,28,22,0,131,237,114,1,0,28,22,64,241,203,114,3,0,0,0,8,1,183,3,64,215,249,2,146,21,121,3,1,0,28,22,128,51,219,114,31,0,149,4,217,4,21,5,41,5,61,5,127,5,205,5,83,7,146,7,83,12,90,8,160,8,33,9,91,9,131,9,217,9,233,9,1,10,49,10,115,12,177,22,128,10,195,10,162,11,210,11,167,18,94,12,230,6,180,12,45,22,125,22,116,203,0,32,118,203,0,32,120,203,0,32,124,203,0,32,126,203,0,32,128,203,0,32,132,203,0,32,136,203,0,32,138,203,0,32,140,203,0,32,144,203,0,32,148,203,0,32,150,203,0,32,152,203,0,32,154,203,0,32,156,203,0,32,160,203,0,32,162,203,0,32,164,203,0,32,168,203,0,32,170,203,0,32,172,203,0,32,174,203,0,32,176,203,0,32,178,203,0,32,180,203,0,32,182,203,0,32,184,203,0,32,186,203,0,32,188,203,0,224,192,203,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,80,70,238,114,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,3,0,0,0,84,45,168,3,112,201,250,2,25,100,94,3,4,0,68,14,150,8,111,13,45,22,170,170,241,203,0,32,245,203,0,32,247,203,0,32,251,203,0,224,1,0,28,22,112,42,214,114,2,0,56,22,28,22,170,170,131,212,0,96,128,187,238,114,1,0,28,22,144,166,248,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,160,242,221,114,1,0,28,22,208,103,222,114,1,0,28,22,64,241,203,114,1,0,28,22,240,181,222,114,1,0,28,22,80,17,226,114,1,0,28,22,240,91,237,114,3,0,0,0,236,159,167,3,56,127,250,2,220,186,99,3,1,0,28,22,128,254,206,114,1,0,28,22,224,255,224,114,13,0,3,12,185,13,68,14,184,10,20,8,64,9,75,8,100,11,173,13,47,13,45,22,255,12,185,12,6,204,0,32,8,204,0,32,12,204,0,32,14,204,0,32,18,204,0,32,20,204,0,32,22,204,0,32,24,204,0,32,26,204,0,32,28,204,0,32,30,204,0,224,34,204,0,32,36,204,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,48,82,223,114,3,0,0,0,224,161,142,3,112,201,250,2,158,200,69,3,3,0,68,14,193,7,45,22,58,204,0,32,62,204,0,32,66,204,0,224,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,2,0,28,22,71,22,170,170,48,82,223,114,32,13,228,114,1,0,28,22,240,105,193,114,1,0,28,22,32,27,184,114,1,0,28,22,208,140,195,114,2,0,104,22,28,22,170,170,176,18,244,114,192,64,222,114,1,0,28,22,128,254,206,114,1,0,28,22,64,241,203,114,2,0,104,22,28,22,170,170,32,66,240,114,112,238,223,114,2,0,104,22,28,22,170,170,0,214,244,114,64,181,213,114,2,0,56,22,28,22,170,170,140,212,0,96,16,200,232,114,1,0,28,22,48,149,191,114,1,0,28,22,128,5,185,114,1,0,28,22,208,230,180,114,1,0,28,22,160,76,207,114,1,0,28,22,224,156,178,114,1,0,28,22,64,45,194,114,1,0,28,22,240,68,220,114,1,0,28,22,0,55,208,114,1,0,28,22,224,246,163,114,1,0,28,22,64,112,162,114,2,0,56,22,28,22,170,170,131,212,0,96,112,148,238,114,1,0,28,22,112,72,209,114,1,0,28,22,192,11,210,114,1,0,28,22,64,211,208,114,1,0,28,22,208,253,197,114,2,0,56,22,28,22,170,170,140,212,0,96,208,73,227,114,2,0,56,22,28,22,170,170,131,212,0,96,208,239,241,114,1,0,28,22,96,176,206,114,1,0,28,22,176,25,222,114,1,0,28,22,176,2,205,114,1,0,28,22,160,106,202,114,1,0,28,22,48,89,201,114,1,0,28,22,32,133,208,114,3,0,104,22,56,22,28,22,16,27,240,114,140,212,0,96,128,28,202,114,1,0,28,22,176,115,207,114,1,0,28,22,96,17,170,114,2,0,56,22,28,22,170,170,140,212,0,96,80,17,226,114,2,0,56,22,28,22,170,170,140,212,0,96,16,207,210,114,1,0,28,22,240,15,208,114,2,0,56,22,28,22,170,170,140,212,0,96,80,107,211,114,1,0,28,22,208,117,178,114,1,0,28,22,112,252,179,114,1,0,28,22,224,156,178,114,1,0,28,22,112,72,209,114,2,0,104,22,28,22,170,170,32,66,240,114,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,0,78,225,114,1,0,28,22,112,215,206,114,2,0,56,22,28,22,170,170,140,212,0,96,96,26,231,114,1,0,28,22,144,180,204,114,1,0,28,22,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,64,181,213,114,1,0,28,22,240,105,193,114,1,0,28,22,144,37,207,114,2,0,56,22,28,22,170,170,140,212,0,96,0,78,225,114,2,0,56,22,28,22,170,170,140,212,0,96,192,177,224,114,1,0,28,22,96,176,206,114,1,0,28,22,80,227,191,114,2,0,104,22,28,22,170,170,128,187,238,114,112,185,211,114,2,0,56,22,28,22,170,170,140,212,0,96,0,122,176,114,2,0,56,22,28,22,170,170,140,212,0,96,48,142,213,114,1,0,28,22,80,84,194,114,1,0,28,22,224,232,207,114,2,0,56,22,28,22,170,170,140,212,0,96,96,33,209,114,2,0,56,22,28,22,170,170,140,212,0,96,160,76,207,114,1,0,28,22,176,62,195,114,1,0,28,22,128,111,209,114,2,0,56,22,28,22,170,170,140,212,0,96,176,108,229,114,1,0,28,22,176,115,207,114,2,0,56,22,28,22,170,170,140,212,0,96,128,104,231,114,3,0,0,0,72,128,192,3,96,67,245,2,193,74,134,3,1,0,28,22,96,63,204,114,1,0,28,22,128,58,197,114,2,0,56,22,28,22,170,170,140,212,0,96,32,13,228,114,1,0,28,22,224,232,207,114,1,0,28,22,176,115,207,114,2,0,104,22,28,22,170,170,208,126,239,114,160,46,212,114,1,0,28,22,192,154,207,114,79,0,189,13,13,5,73,5,77,5,81,5,88,5,100,5,104,5,108,5,123,5,151,5,214,23,154,5,166,5,174,5,193,5,249,5,127,6,159,6,187,6,198,6,68,14,91,7,138,7,142,7,166,7,174,7,75,12,110,23,240,7,0,8,4,8,149,8,153,8,168,8,176,8,184,8,216,8,227,8,3,9,7,9,72,9,99,9,111,9,143,9,225,9,229,9,75,8,64,10,248,13,100,10,124,10,241,7,203,10,219,10,58,19,41,11,146,11,174,11,186,11,12,14,10,12,18,12,26,12,59,13,53,23,145,12,176,12,154,20,212,12,159,20,45,22,126,13,130,13,28,8,196,13,200,13,208,13,255,13,75,204,0,32,79,204,0,32,83,204,0,32,85,204,0,32,87,204,0,32,89,204,0,32,93,204,0,32,95,204,0,32,97,204,0,32,101,204,0,32,105,204,0,32,109,204,0,32,111,204,0,32,113,204,0,32,115,204,0,32,117,204,0,32,119,204,0,32,121,204,0,32,123,204,0,32,125,204,0,32,127,204,0,32,129,204,0,32,133,204,0,32,135,204,0,32,137,204,0,32,139,204,0,32,141,204,0,32,145,204,0,32,149,204,0,32,151,204,0,32,153,204,0,32,155,204,0,32,157,204,0,32,159,204,0,32,161,204,0,32,166,204,0,32,168,204,0,32,170,204,0,32,174,204,0,32,178,204,0,32,180,204,0,32,184,204,0,32,186,204,0,32,188,204,0,32,190,204,0,32,192,204,0,32,196,204,0,32,200,204,0,32,204,204,0,32,206,204,0,32,210,204,0,32,212,204,0,32,214,204,0,32,218,204,0,32,220,204,0,32,222,204,0,32,226,204,0,32,230,204,0,32,232,204,0,32,234,204,0,32,238,204,0,32,242,204,0,32,246,204,0,32,248,204,0,32,250,204,0,32,254,204,0,32,2,205,0,32,4,205,0,32,6,205,0,32,10,205,0,32,12,205,0,32,16,205,0,224,20,205,0,32,22,205,0,32,24,205,0,32,28,205,0,32,30,205,0,32,32,205,0,32,36,205,0,32,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,32,119,252,114,3,0,0,0,180,98,119,3,112,201,250,2,112,14,46,3,2,0,68,14,45,22,170,170,157,205,0,32,162,205,0,224,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,2,0,56,22,28,22,170,170,140,212,0,96,32,43,223,114,2,0,56,22,28,22,170,170,140,212,0,96,128,187,238,114,1,0,28,22,112,5,241,114,1,0,28,22,48,112,218,114,1,0,28,22,144,120,214,114,1,0,28,22,224,202,212,114,3,0,0,0,148,177,172,3,168,168,247,2,183,174,107,3,8,0,185,13,64,23,49,6,68,14,22,10,159,9,192,12,45,22,170,170,170,205,0,32,174,205,0,32,178,205,0,32,182,205,0,32,184,205,0,32,186,205,0,32,188,205,0,32,190,205,0,224,1,0,28,22,64,121,223,114,1,0,28,22,192,87,239,114,1,0,28,22,64,121,223,114,2,0,28,22,71,22,170,170,64,181,213,114,32,13,228,114,1,0,28,22,224,142,222,114,1,0,28,22,112,95,226,114,2,0,56,22,28,22,170,170,131,212,0,96,240,31,247,114,1,0,28,22,32,253,188,114,1,0,28,22,224,112,227,114,1,0,28,22,64,211,208,114,1,0,28,22,240,188,200,114,1,0,28,22,112,252,179,114,1,0,28,22,128,194,216,114,2,0,104,22,28,22,170,170,224,52,237,114,80,160,223,114,1,0,28,22,192,64,222,114,1,0,28,22,32,13,228,114,1,0,28,22,224,202,212,114,1,0,28,22,192,154,207,114,2,0,104,22,28,22,170,170,160,242,221,114,48,82,223,114,1,0,28,22,80,17,226,114,3,0,0,0,32,140,180,3,144,166,248,2,145,181,114,3,1,0,28,22,192,177,224,114,22,0,185,13,64,23,17,5,92,5,158,5,49,6,22,10,95,7,126,7,30,6,26,11,85,22,135,9,159,9,198,9,151,10,119,11,66,6,198,11,42,12,45,22,38,11,170,170,207,205,0,32,209,205,0,32,211,205,0,32,213,205,0,32,217,205,0,32,219,205,0,32,221,205,0,32,225,205,0,32,227,205,0,32,229,205,0,32,231,205,0,32,233,205,0,32,235,205,0,32,237,205,0,32,241,205,0,32,243,205,0,32,245,205,0,32,247,205,0,32,249,205,0,32,253,205,0,32,255,205,0,224,3,206,0,32,1,0,28,22,192,237,214,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,40,77,150,3,112,201,250,2,206,149,76,3,3,0,106,17,93,11,45,22,39,206,0,32,41,206,0,32,45,206,0,224,1,0,28,22,176,62,195,114,1,0,28,22,0,221,222,114,1,0,28,22,160,136,197,114,1,0,28,22,176,62,195,114,1,0,28,22,96,222,240,114,2,0,56,22,28,22,170,170,140,212,0,96,240,8,230,114,2,0,28,22,71,22,170,170,64,15,199,114,32,13,228,114,1,0,28,22,192,48,183,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,1,0,28,22,32,73,218,114,1,0,28,22,96,123,194,114,2,0,28,22,71,22,170,170,208,246,219,114,32,13,228,114,1,0,28,22,112,192,189,114,1,0,28,22,0,0,0,112,1,0,28,22,16,4,223,114,2,0,28,22,71,22,170,170,224,172,217,114,32,13,228,114,1,0,28,22,208,193,207,114,1,0,28,22,208,193,207,114,3,0,0,0,148,148,181,3,112,201,250,2,219,69,111,3,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,20,0,122,8,103,13,209,6,63,12,68,14,150,8,59,7,252,12,87,4,115,9,147,9,159,10,103,11,166,11,34,11,187,18,38,12,178,19,45,22,141,13,170,170,54,206,0,32,56,206,0,32,58,206,0,32,60,206,0,32,62,206,0,32,64,206,0,32,68,206,0,32,72,206,0,32,74,206,0,32,78,206,0,32,80,206,0,32,82,206,0,32,86,206,0,32,88,206,0,32,90,206,0,32,92,206,0,32,96,206,0,32,98,206,0,32,100,206,0,224,104,206,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,36,196,140,3,112,201,250,2,145,198,72,3,2,0,68,14,45,22,170,170,139,206,0,32,143,206,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,48,45,250,114,3,0,0,0,248,128,151,3,176,244,248,2,25,199,90,3,3,0,68,14,62,8,45,22,151,206,0,32,155,206,0,32,157,206,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,16,140,242,114,3,0,0,0,144,27,161,3,88,80,250,2,238,102,103,3,3,0,185,13,68,14,45,22,166,206,0,32,170,206,0,32,172,206,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,1,0,28,22,0,25,213,114,2,0,28,22,71,22,170,170,144,233,216,114,32,13,228,114,3,0,0,0,172,89,186,3,112,201,250,2,195,236,118,3,4,0,38,6,97,11,242,11,45,22,170,170,181,206,0,32,185,206,0,32,187,206,0,32,191,206,0,224,1,0,28,22,96,236,196,114,2,0,28,22,71,22,170,170,224,172,217,114,32,13,228,114,2,0,104,22,28,22,170,170,160,242,221,114,240,181,222,114,2,0,56,22,28,22,170,170,131,212,0,96,112,148,238,114,1,0,28,22,16,214,188,114,1,0,28,22,16,230,227,114,1,0,28,22,192,4,232,114,1,0,28,22,80,70,238,114,1,0,28,22,192,4,232,114,1,0,28,22,32,96,235,114,1,0,28,22,240,91,237,114,2,0,104,22,28,22,170,170,96,79,243,114,0,221,222,114,1,0,28,22,128,134,226,114,1,0,28,22,176,85,212,114,1,0,28,22,176,205,192,114,2,0,104,22,28,22,170,170,160,242,221,114,16,177,215,114,2,0,104,22,28,22,170,170,160,242,221,114,160,46,212,114,1,0,28,22,208,103,222,114,2,0,56,22,28,22,170,170,131,212,0,96,96,192,245,114,1,0,28,22,96,116,216,114,3,0,0,0,180,72,165,3,80,4,249,2,47,235,109,3,21,0,185,13,123,6,201,6,68,14,174,7,189,7,109,8,136,9,208,8,182,9,194,9,241,9,13,10,219,11,41,11,96,11,6,12,244,10,171,7,228,12,45,22,202,206,0,32,204,206,0,32,208,206,0,32,212,206,0,32,216,206,0,32,218,206,0,32,220,206,0,32,222,206,0,32,224,206,0,32,226,206,0,32,228,206,0,32,230,206,0,32,234,206,0,32,236,206,0,32,238,206,0,32,240,206,0,32,244,206,0,32,248,206,0,32,250,206,0,32,254,206,0,32,0,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,1,243,114,2,0,56,22,28,22,170,170,131,212,0,96,128,44,241,114,3,0,0,0,76,15,151,3,64,209,250,2,10,152,95,3,3,0,222,6,47,13,45,22,36,207,0,32,40,207,0,32,44,207,0,224,1,0,28,22,0,221,222,114,1,0,28,22,112,215,206,114,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,3,0,0,0,52,83,157,3,248,244,246,2,118,85,104,3,4,0,37,6,137,8,98,21,45,22,170,170,53,207,0,32,55,207,0,32,57,207,0,32,61,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,0,214,244,114,3,0,0,0,56,121,120,3,224,105,249,2,116,240,72,3,3,0,68,14,110,7,45,22,72,207,0,32,76,207,0,32,80,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,192,245,114,2,0,56,22,28,22,170,170,131,212,0,96,192,57,244,114,3,0,0,0,252,71,134,3,120,51,247,2,137,37,84,3,2,0,56,22,28,22,170,170,131,212,0,96,96,222,240,114,2,0,56,22,28,22,170,170,131,212,0,96,144,83,241,114,5,0,185,13,150,8,45,22,204,13,59,14,89,207,0,32,93,207,0,32,97,207,0,224,101,207,0,32,105,207,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,56,162,134,3,144,154,250,2,226,47,64,3,2,0,68,14,45,22,170,170,117,207,0,32,121,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,3,0,0,0,128,161,153,3,32,119,252,2,243,169,105,3,2,0,97,11,45,22,170,170,129,207,0,32,133,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,108,38,181,3,120,158,250,2,15,169,109,3,2,0,97,11,45,22,170,170,141,207,0,32,145,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,228,52,167,3,56,2,250,2,107,15,91,3,2,0,185,13,45,22,170,170,153,207,0,32,157,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,12,24,136,3,136,197,250,2,48,109,65,3,2,0,68,14,45,22,170,170,165,207,0,32,169,207,0,224,1,0,28,22,0,48,230,114,1,0,28,22,48,248,237,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,2,0,56,22,28,22,170,170,131,212,0,96,192,170,246,114,3,0,0,0,200,22,170,3,200,228,250,2,7,170,104,3,1,0,28,22,64,121,223,114,6,0,103,13,68,14,182,4,47,13,45,22,75,23,170,170,177,207,0,32,179,207,0,32,181,207,0,32,185,207,0,32,189,207,0,224,193,207,0,32,1,0,28,22,224,255,224,114,1,0,28,22,192,207,219,114,1,0,28,22,160,69,229,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,3,0,0,0,88,14,155,3,24,198,246,2,36,219,97,3,5,0,244,7,137,8,196,8,51,8,45,22,205,207,0,32,207,207,0,32,209,207,0,32,211,207,0,32,215,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,192,200,241,114,1,0,28,22,16,207,210,114,1,0,28,22,64,91,228,114,1,0,28,22,16,4,223,114,3,0,0,0,68,254,160,3,64,90,249,2,145,214,94,3,6,0,185,13,68,14,150,8,30,6,83,23,45,22,170,170,227,207,0,32,231,207,0,32,233,207,0,32,235,207,0,32,237,207,0,32,239,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,184,37,136,3,200,109,249,2,23,198,73,3,2,0,68,14,45,22,170,170,253,207,0,32,1,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,56,22,28,22,71,22,122,212,0,96,144,166,248,114,32,13,228,114,3,0,0,0,72,221,139,3,32,119,252,2,74,242,61,3,1,0,28,22,16,117,225,114,4,0,103,13,170,7,45,22,180,13,170,170,9,208,0,32,13,208,0,32,18,208,0,224,22,208,0,32,1,0,28,22,224,52,237,114,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,3,0,0,0,152,254,166,3,192,152,249,2,92,62,105,3,4,0,68,14,67,13,154,20,45,22,170,170,31,208,0,32,33,208,0,32,37,208,0,32,41,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,88,248,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,1,0,28,22,32,209,237,114,1,0,28,22,192,124,212,114,3,0,0,0,64,152,141,3,64,245,244,2,194,59,94,3,1,0,28,22,160,99,224,114,1,0,28,22,0,0,0,112,8,0,68,14,1,7,163,22,235,8,9,10,45,22,134,13,91,23,170,170,52,208,0,32,56,208,0,32,58,208,0,32,60,208,0,32,62,208,0,32,64,208,0,224,68,208,0,32,70,208,0,32,2,0,56,22,28,22,170,170,131,212,0,96,240,204,239,114,1,0,28,22,128,21,224,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,192,108,142,3,64,90,249,2,69,127,89,3,1,0,28,22,240,68,220,114,1,0,28,22,32,209,237,114,6,0,68,14,186,5,198,15,45,22,228,13,79,14,170,170,85,208,0,32,89,208,0,32,91,208,0,32,95,208,0,224,99,208,0,32,101,208,0,32,1,0,28,22,32,209,237,114,1,0,28,22,160,122,241,114,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,64,227,247,114,1,0,28,22,0,0,0,112,3,0,0,0,12,124,161,3,200,228,250,2,250,168,90,3,6,0,103,13,68,14,187,15,47,13,70,12,45,22,170,170,113,208,0,32,115,208,0,32,117,208,0,32,121,208,0,32,123,208,0,32,125,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,192,57,244,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,56,22,28,22,71,22,131,212,0,96,112,231,245,114,32,13,228,114,1,0,28,22,64,31,238,114,3,0,0,0,44,1,157,3,32,119,252,2,93,210,80,3,6,0,103,13,68,14,150,8,84,9,70,4,45,22,170,170,139,208,0,32,143,208,0,32,145,208,0,32,149,208,0,32,154,208,0,32,156,208,0,224,1,0,28,22,32,179,242,114,1,0,28,22,144,0,234,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,160,122,241,114,3,0,0,0,40,197,155,3,176,232,250,2,219,92,89,3,5,0,68,14,163,9,202,9,47,13,45,22,170,208,0,32,172,208,0,32,174,208,0,32,178,208,0,32,180,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,3,0,0,0,180,251,156,3,88,86,249,2,158,1,97,3,2,0,185,13,45,22,170,170,192,208,0,32,196,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,36,245,114,1,0,28,22,176,244,248,114,1,0,28,22,32,209,237,114,1,0,28,22,144,210,199,114,2,0,56,22,28,22,170,170,122,212,0,96,128,187,238,114,2,0,28,22,71,22,170,170,16,230,227,114,32,13,228,114,2,0,28,22,71,22,170,170,16,230,227,114,32,13,228,114,1,0,28,22,112,178,233,114,1,0,28,22,112,178,233,114,3,0,0,0,168,87,167,3,88,235,245,2,97,45,107,3,3,0,104,22,56,22,28,22,208,126,239,114,131,212,0,96,32,96,235,114,1,0,28,22,160,9,239,114,12,0,185,13,107,4,68,14,67,12,150,8,178,11,100,23,74,12,109,23,45,22,98,13,71,14,170,170,204,208,0,32,208,208,0,32,210,208,0,32,212,208,0,32,214,208,0,32,218,208,0,32,222,208,0,32,226,208,0,32,228,208,0,32,230,208,0,224,234,208,0,32,239,208,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,0,0,160,249,143,3,112,201,250,2,240,236,61,3,2,0,150,8,45,22,170,170,4,209,0,32,8,209,0,224,1,0,28,22,224,195,234,114,1,0,28,22,16,117,225,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,224,255,224,114,3,0,0,0,144,37,151,3,112,201,250,2,66,160,91,3,1,0,28,22,32,209,237,114,6,0,85,5,75,7,173,13,47,13,45,22,158,12,170,170,16,209,0,32,18,209,0,32,20,209,0,32,24,209,0,32,26,209,0,224,30,209,0,32,1,0,28,22,240,121,232,114,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,208,55,149,3,232,181,250,2,3,138,80,3,4,0,130,12,16,14,155,22,45,22,170,170,42,209,0,32,44,209,0,32,46,209,0,32,50,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,220,147,125,3,112,201,250,2,56,241,60,3,2,0,150,8,45,22,170,170,61,209,0,32,65,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,109,238,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,164,155,153,3,200,133,245,2,53,221,105,3,4,0,68,14,150,8,208,10,45,22,170,170,73,209,0,32,77,209,0,32,81,209,0,32,85,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,131,212,0,96,208,209,246,114,3,0,0,0,32,0,120,3,104,250,249,2,34,221,67,3,3,0,68,14,27,13,45,22,96,209,0,32,100,209,0,32,104,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,231,245,114,2,0,56,22,28,22,170,170,140,212,0,96,208,126,239,114,3,0,0,0,28,67,152,3,240,138,250,2,117,188,89,3,1,0,28,22,48,195,225,114,4,0,53,10,130,12,45,22,101,10,170,170,113,209,0,32,117,209,0,32,121,209,0,224,125,209,0,32,1,0,28,22,96,229,218,114,1,0,28,22,32,179,242,114,1,0,28,22,64,121,223,114,1,0,28,22,32,73,218,114,1,0,28,22,16,34,218,114,1,0,28,22,176,25,222,114,1,0,28,22,208,43,232,114,2,0,56,22,28,22,170,170,131,212,0,96,32,179,242,114,1,0,28,22,160,242,221,114,1,0,28,22,16,4,223,114,1,0,28,22,32,13,228,114,1,0,28,22,32,156,225,114,1,0,28,22,176,108,229,114,3,0,0,0,40,209,153,3,240,198,240,2,14,188,104,3,1,0,28,22,80,160,223,114,15,0,185,13,92,7,121,23,147,5,225,5,167,6,4,7,150,8,113,8,180,8,116,10,66,12,122,12,45,22,26,13,134,209,0,32,136,209,0,32,138,209,0,32,140,209,0,32,142,209,0,32,144,209,0,32,146,209,0,32,148,209,0,32,152,209,0,32,154,209,0,32,156,209,0,32,158,209,0,32,160,209,0,32,162,209,0,224,166,209,0,32,1,0,28,22,224,66,193,114,1,0,28,22,16,4,223,114,1,0,28,22,240,22,186,114,1,0,28,22,240,181,222,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,1,0,28,22,16,4,223,114,1,0,28,22,0,48,230,114,3,0,0,0,136,209,167,3,88,211,249,2,205,98,110,3,8,0,244,7,101,8,184,8,72,10,136,10,170,11,78,12,45,22,170,170,191,209,0,32,193,209,0,32,195,209,0,32,197,209,0,32,199,209,0,32,203,209,0,32,205,209,0,32,207,209,0,224,1,0,28,22,128,104,231,114,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,144,37,207,114,3,0,0,0,200,43,154,3,240,138,250,2,131,83,91,3,1,0,28,22,128,201,194,114,1,0,28,22,224,142,222,114,6,0,85,22,244,13,47,13,45,22,75,23,210,9,170,170,224,209,0,32,226,209,0,32,230,209,0,32,232,209,0,224,236,209,0,32,238,209,0,32,1,0,28,22,112,238,223,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,3,0,0,0,180,83,159,3,160,68,250,2,250,155,80,3,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,5,0,68,14,70,4,45,22,210,9,125,22,250,209,0,32,252,209,0,32,0,210,0,224,4,210,0,32,6,210,0,32,1,0,28,22,96,109,238,114,2,0,56,22,28,22,170,170,122,212,0,96,80,123,250,114,3,0,0,0,232,41,134,3,80,123,250,2,154,210,63,3,3,0,164,10,68,14,45,22,18,210,0,32,20,210,0,32,24,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,52,154,141,3,96,162,250,2,99,227,77,3,2,0,150,8,45,22,170,170,33,210,0,32,37,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,1,0,28,22,144,30,229,114,1,0,28,22,0,0,0,112,1,0,28,22,80,70,238,114,3,0,0,0,0,42,150,3,80,159,244,2,164,154,92,3,1,0,28,22,80,250,208,114,6,0,185,13,1,7,163,22,150,8,45,22,242,6,170,170,45,210,0,32,49,210,0,32,51,210,0,32,53,210,0,32,55,210,0,224,59,210,0,32,2,0,56,22,28,22,170,170,131,212,0,96,80,153,245,114,3,0,0,0,104,144,119,3,80,123,250,2,20,234,48,3,2,0,68,14,45,22,170,170,71,210,0,32,75,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,1,0,28,22,240,91,237,114,1,0,28,22,192,57,244,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,88,119,150,3,160,199,249,2,243,53,78,3,5,0,68,14,150,8,87,4,199,11,45,22,83,210,0,32,87,210,0,32,89,210,0,32,91,210,0,32,95,210,0,224,1,0,28,22,240,204,239,114,2,0,56,22,28,22,170,170,131,212,0,96,192,170,246,114,2,0,56,22,28,22,170,170,131,212,0,96,224,255,224,114,1,0,28,22,224,105,249,114,1,0,28,22,144,60,224,114,3,0,0,0,76,215,151,3,0,59,249,2,209,152,88,3,1,0,28,22,64,91,228,114,7,0,108,5,68,14,150,8,25,10,154,20,45,22,28,8,107,210,0,32,109,210,0,32,113,210,0,32,117,210,0,32,119,210,0,32,121,210,0,224,125,210,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,240,31,247,114,3,0,0,0,116,204,142,3,0,178,250,2,160,54,77,3,3,0,187,6,68,14,45,22,138,210,0,32,142,210,0,32,144,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,3,0,0,0,200,242,150,3,32,24,247,2,62,252,104,3,1,0,28,22,224,29,220,114,1,0,28,22,64,61,233,114,1,0,28,22,208,50,210,114,6,0,68,14,2,11,45,22,34,13,86,13,79,14,170,170,153,210,0,32,157,210,0,32,161,210,0,224,165,210,0,32,167,210,0,32,169,210,0,32,1,0,28,22,16,170,237,114,2,0,56,22,28,22,170,170,122,212,0,96,112,88,248,114,1,0,28,22,224,89,210,114,1,0,28,22,240,15,208,114,1,0,28,22,48,29,211,114,1,0,28,22,48,29,211,114,1,0,28,22,96,17,170,114,3,0,0,0,156,205,181,3,152,242,249,2,10,249,118,3,2,0,56,22,28,22,170,170,140,212,0,96,112,139,177,114,1,0,28,22,240,98,215,114,10,0,68,14,67,12,245,9,163,10,183,10,187,10,58,12,45,22,141,13,43,14,170,170,181,210,0,32,183,210,0,32,187,210,0,32,189,210,0,32,191,210,0,32,193,210,0,32,195,210,0,32,197,210,0,224,201,210,0,32,205,210,0,32,1,0,28,22,112,49,192,114,1,0,28,22,112,245,201,114,1,0,28,22,64,181,213,114,1,0,28,22,144,226,238,114,1,0,28,22,144,60,224,114,1,0,28,22,192,64,222,114,1,0,28,22,176,115,207,114,2,0,56,22,28,22,170,170,131,212,0,96,240,31,247,114,1,0,28,22,160,212,226,114,3,0,0,0,244,6,177,3,248,226,249,2,185,187,106,3,1,0,28,22,80,70,238,114,1,0,28,22,192,64,222,114,12,0,127,5,205,5,171,6,68,14,34,8,90,8,75,8,115,12,154,20,45,22,210,9,75,14,170,170,223,210,0,32,225,210,0,32,227,210,0,32,229,210,0,32,231,210,0,32,233,210,0,32,235,210,0,32,237,210,0,32,241,210,0,32,243,210,0,224,247,210,0,32,249,210,0,32,1,0,28,22,208,73,227,114,1,0,28,22,48,135,235,114,1,0,28,22,64,204,230,114,1,0,28,22,160,99,224,114,2,0,56,22,28,22,170,170,131,212,0,96,240,204,239,114,1,0,28,22,32,156,225,114,1,0,28,22,224,112,227,114,1,0,28,22,112,162,194,114,3,0,0,0,212,47,153,3,168,61,244,2,246,87,106,3,1,0,28,22,240,121,232,114,1,0,28,22,16,170,237,114,1,0,28,22,128,21,224,114,1,0,28,22,0,205,183,114,13,0,33,10,167,10,179,10,2,11,70,4,206,11,54,12,171,7,45,22,79,13,164,13,23,14,79,14,14,211,0,32,16,211,0,32,18,211,0,32,20,211,0,32,22,211,0,32,26,211,0,32,28,211,0,32,30,211,0,32,32,211,0,224,36,211,0,32,38,211,0,32,40,211,0,32,42,211,0,32,1,0,28,22,240,31,247,114,1,0,28,22,96,229,218,114,2,0,56,22,28,22,170,170,131,212,0,96,96,26,231,114,1,0,28,22,176,78,234,114,1,0,28,22,112,5,241,114,1,0,28,22,240,91,237,114,1,0,28,22,144,226,238,114,3,0,0,0,16,150,151,3,0,59,249,2,95,129,90,3,1,0,28,22,64,181,213,114,9,0,251,11,103,13,68,14,31,8,205,8,51,19,207,11,45,22,207,23,64,211,0,32,66,211,0,32,68,211,0,32,72,211,0,32,74,211,0,32,76,211,0,32,78,211,0,32,80,211,0,224,84,211,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,252,56,149,3,16,92,250,2,153,168,75,3,2,0,150,8,45,22,170,170,100,211,0,32,104,211,0,224,1,0,28,22,16,94,208,114,1,0,28,22,80,70,238,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,16,27,240,114,1,0,28,22,96,26,231,114,1,0,28,22,208,239,241,114,3,0,0,0,232,220,150,3,88,15,240,2,204,57,105,3,1,0,28,22,192,147,229,114,1,0,28,22,176,62,195,114,10,0,185,13,147,6,1,7,163,22,150,8,55,7,169,8,45,22,26,13,90,13,170,170,112,211,0,32,114,211,0,32,116,211,0,32,118,211,0,32,120,211,0,32,124,211,0,32,126,211,0,32,128,211,0,224,132,211,0,32,134,211,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,88,210,114,3,112,201,250,2,16,98,43,3,2,0,68,14,45,22,170,170,152,211,0,32,156,211,0,224,1,0,28,22,176,235,187,114,1,0,28,22,0,0,0,112,1,0,28,22,240,188,200,114,1,0,28,22,48,255,215,114,1,0,28,22,208,27,193,114,1,0,28,22,224,142,222,114,2,0,56,22,28,22,170,170,131,212,0,96,144,196,243,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,104,22,28,22,170,170,128,187,238,114,48,165,230,114,1,0,28,22,16,170,237,114,1,0,28,22,160,242,221,114,1,0,28,22,224,142,222,114,1,0,28,22,16,170,237,114,1,0,28,22,16,94,208,114,1,0,28,22,80,24,204,114,1,0,28,22,144,226,238,114,3,0,0,0,100,193,179,3,200,8,245,2,140,70,120,3,2,0,104,22,28,22,170,170,208,126,239,114,0,221,222,114,2,0,56,22,28,22,170,170,131,212,0,96,16,170,237,114,20,0,201,4,209,4,185,13,119,5,245,5,205,6,68,14,1,7,163,22,63,7,169,8,202,22,38,8,3,13,105,8,125,8,68,11,45,22,6,13,14,11,170,170,164,211,0,32,166,211,0,32,168,211,0,32,170,211,0,32,172,211,0,32,174,211,0,32,176,211,0,32,180,211,0,32,182,211,0,32,184,211,0,32,188,211,0,32,190,211,0,32,192,211,0,32,194,211,0,32,196,211,0,32,198,211,0,32,200,211,0,32,202,211,0,224,206,211,0,32,210,211,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,224,20,153,3,32,149,247,2,56,245,95,3,2,0,67,12,45,22,170,170,245,211,0,32,249,211,0,224,2,0,28,22,71,22,170,170,176,131,246,114,32,13,228,114,1,0,28,22,224,105,249,114,1,0,28,22,16,27,240,114,2,0,56,22,28,22,170,170,140,212,0,96,176,251,226,114,2,0,28,22,71,22,170,170,64,234,225,114,32,13,228,114,1,0,28,22,32,43,223,114,2,0,28,22,71,22,170,170,112,208,228,114,32,13,228,114,2,0,28,22,71,22,170,170,240,91,237,114,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,192,64,222,114,3,0,0,0,48,228,176,3,112,201,250,2,68,99,104,3,1,0,28,22,192,64,222,114,1,0,28,22,224,142,222,114,13,0,103,13,68,14,150,8,154,8,150,7,83,12,115,13,171,10,120,19,100,23,45,22,101,10,63,14,1,212,0,32,5,212,0,32,7,212,0,32,9,212,0,32,13,212,0,32,17,212,0,32,19,212,0,32,23,212,0,32,27,212,0,32,31,212,0,32,33,212,0,224,37,212,0,32,39,212,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,208,126,239,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,140,212,0,96,144,150,209,114,3,0,0,0,80,154,168,3,32,119,252,2,184,213,94,3,5,0,104,19,83,20,253,7,34,4,45,22,61,212,0,32,65,212,0,32,69,212,0,32,73,212,0,32,77,212,0,224,1,0,28,22,96,199,223,114,1,0,28,22,240,181,222,114,1,0,28,22,32,103,213,114,1,0,28,22,64,204,230,114,1,0,28,22,96,63,204,114,1,0,28,22,64,211,208,114,1,0,28,22,144,60,224,114,1,0,28,22,224,255,224,114,1,0,28,22,144,150,209,114,1,0,28,22,96,146,211,114,1,0,28,22,0,78,225,114,1,0,28,22,16,214,188,114,1,0,28,22,176,25,222,114,1,0,28,22,240,91,237,114,1,0,28,22,176,25,222,114,1,0,28,22,240,211,217,114,2,0,56,22,28,22,170,170,131,212,0,96,0,101,242,114,1,0,28,22,16,117,225,114,2,0,104,22,28,22,170,170,112,231,245,114,128,224,211,114,1,0,28,22,112,185,211,114,1,0,28,22,208,103,222,114,1,0,28,22,128,254,206,114,3,0,0,0,92,156,159,3,112,112,244,2,239,96,106,3,1,0,28,22,64,121,223,114,1,0,28,22,160,242,221,114,1,0,28,22,192,64,222,114,1,0,28,22,64,211,208,114,1,0,28,22,176,205,192,114,1,0,28,22,0,25,213,114,29,0,13,5,25,5,81,5,108,5,151,5,214,23,175,6,68,14,196,7,75,12,74,8,99,9,111,9,229,9,41,10,88,10,241,7,175,10,182,11,204,12,220,12,224,12,45,22,243,12,247,12,251,12,14,13,144,23,15,14,89,212,0,32,91,212,0,32,93,212,0,32,95,212,0,32,97,212,0,32,99,212,0,32,101,212,0,32,103,212,0,32,105,212,0,32,107,212,0,32,109,212,0,32,111,212,0,32,113,212,0,32,115,212,0,32,117,212,0,32,119,212,0,32,121,212,0,32,125,212,0,32,127,212,0,32,131,212,0,32,133,212,0,32,135,212,0,32,137,212,0,224,141,212,0,32,143,212,0,32,145,212,0,32,147,212,0,32,149,212,0,32,151,212,0,32,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,3,0,0,0,128,115,119,3,112,201,250,2,48,167,57,3,3,0,68,14,252,13,45,22,197,212,0,32,201,212,0,32,205,212,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,57,244,114,2,0,56,22,28,22,170,170,131,212,0,96,192,57,244,114,3,0,0,0,68,71,103,3,48,45,250,2,128,196,43,3,3,0,68,14,199,10,45,22,214,212,0,32,218,212,0,32,222,212,0,224,2,0,56,22,28,22,170,170,122,212,0,96,96,162,250,114,2,0,56,22,28,22,170,170,131,212,0,96,192,177,224,114,3,0,0,0,136,171,165,3,112,201,250,2,4,2,94,3,3,0,68,14,76,14,45,22,231,212,0,32,235,212,0,32,239,212,0,224,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,1,0,28,22,16,230,227,114,1,0,28,22,160,129,219,114,3,0,0,0,212,175,165,3,200,240,248,2,52,156,93,3,4,0,185,13,17,5,22,10,45,22,170,170,248,212,0,32,252,212,0,32,254,212,0,32,0,213,0,224,1,0,28,22,32,209,237,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,3,0,0,0,228,95,164,3,8,10,250,2,32,111,92,3,1,0,28,22,176,115,207,114,4,0,68,14,67,12,45,22,125,22,170,170,11,213,0,32,13,213,0,32,17,213,0,224,21,213,0,32,1,0,28,22,0,221,222,114,2,0,56,22,28,22,170,170,131,212,0,96,208,209,246,114,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,3,0,0,0,28,90,169,3,64,90,249,2,238,158,106,3,4,0,84,7,67,12,135,11,45,22,170,170,30,213,0,32,32,213,0,32,36,213,0,32,40,213,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,3,0,0,0,72,165,140,3,96,162,250,2,145,188,75,3,2,0,56,22,28,22,170,170,131,212,0,96,48,105,240,114,1,0,28,22,224,82,232,114,4,0,150,8,45,22,233,3,125,22,170,170,51,213,0,32,55,213,0,224,59,213,0,32,63,213,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,3,0,56,22,28,22,71,22,131,212,0,96,80,160,223,114,32,13,228,114,3,0,0,0,76,34,152,3,192,51,245,2,186,145,97,3,3,0,104,22,56,22,28,22,16,140,242,114,131,212,0,96,176,131,246,114,4,0,68,14,18,6,45,22,42,13,170,170,72,213,0,32,76,213,0,32,81,213,0,224,85,213,0,32,1,0,28,22,224,255,224,114,1,0,28,22,208,200,185,114,1,0,28,22,128,111,209,114,3,0,104,22,56,22,28,22,16,170,237,114,140,212,0,96,192,87,239,114,1,0,28,22,224,59,215,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,1,0,28,22,48,105,240,114,1,0,28,22,112,238,223,114,2,0,56,22,28,22,170,170,131,212,0,96,0,214,244,114,3,0,104,22,56,22,28,22,0,161,232,114,140,212,0,96,64,61,233,114,1,0,28,22,128,88,192,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,0,18,235,114,1,0,28,22,48,29,211,114,2,0,56,22,28,22,170,170,140,212,0,96,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,224,142,222,114,1,0,28,22,112,238,223,114,2,0,104,22,28,22,170,170,128,44,241,114,0,175,188,114,3,0,0,0,208,43,176,3,208,60,250,2,253,172,118,3,2,0,56,22,28,22,170,170,140,212,0,96,176,25,222,114,2,0,56,22,28,22,170,170,140,212,0,96,208,216,224,114,1,0,28,22,80,77,216,114,21,0,115,5,139,5,189,5,253,5,65,6,68,14,67,12,253,6,12,7,220,7,248,7,50,8,251,8,253,9,44,11,52,11,208,12,45,22,62,13,184,13,125,22,97,213,0,32,99,213,0,32,101,213,0,32,103,213,0,32,108,213,0,32,110,213,0,32,114,213,0,32,116,213,0,32,118,213,0,32,122,213,0,32,127,213,0,32,129,213,0,32,134,213,0,32,136,213,0,32,140,213,0,32,144,213,0,32,146,213,0,32,150,213,0,224,154,213,0,32,158,213,0,32,162,213,0,32,1,0,28,22,160,99,224,114,1,0,28,22,224,232,207,114,2,0,28,22,71,22,170,170,80,220,213,114,32,13,228,114,1,0,28,22,208,103,222,114,1,0,28,22,176,205,192,114,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,1,0,28,22,224,59,215,114,1,0,28,22,112,215,206,114,1,0,28,22,0,55,208,114,1,0,28,22,80,107,211,114,1,0,28,22,16,4,223,114,1,0,28,22,176,115,207,114,1,0,28,22,208,110,200,114,1,0,28,22,192,154,207,114,1,0,28,22,112,215,206,114,1,0,28,22,192,200,241,114,1,0,28,22,160,76,207,114,1,0,28,22,160,92,246,114,1,0,28,22,64,31,238,114,1,0,28,22,48,248,237,114,2,0,104,22,28,22,170,170,160,242,221,114,0,131,237,114,3,0,0,0,244,169,179,3,200,14,244,2,157,146,120,3,1,0,28,22,208,50,210,114,1,0,28,22,208,253,197,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,25,0,17,5,77,5,92,5,170,5,193,5,68,14,22,10,114,7,118,7,236,7,252,7,188,8,7,9,37,9,52,9,72,9,112,10,159,23,66,6,59,13,86,12,45,22,167,23,54,13,28,8,196,213,0,32,198,213,0,32,200,213,0,32,204,213,0,32,206,213,0,32,208,213,0,32,212,213,0,32,214,213,0,32,216,213,0,32,218,213,0,32,220,213,0,32,222,213,0,32,224,213,0,32,226,213,0,32,228,213,0,32,230,213,0,32,232,213,0,32,234,213,0,32,236,213,0,32,238,213,0,32,240,213,0,32,244,213,0,224,248,213,0,32,250,213,0,32,252,213,0,32,1,0,28,22,96,3,214,114,2,0,56,22,28,22,170,170,140,212,0,96,144,37,207,114,2,0,56,22,28,22,170,170,140,212,0,96,112,148,238,114,1,0,28,22,80,183,240,114,2,0,56,22,28,22,170,170,140,212,0,96,208,27,193,114,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,1,0,28,22,160,233,160,114,1,0,28,22,96,109,238,114,1,0,28,22,112,162,194,114,1,0,28,22,208,103,222,114,3,0,0,0,88,195,179,3,200,228,250,2,167,151,107,3,1,0,28,22,48,29,211,114,12,0,88,9,97,6,103,13,68,14,187,15,100,11,123,11,47,13,90,12,196,12,45,22,158,12,170,170,38,214,0,32,40,214,0,32,44,214,0,32,48,214,0,32,50,214,0,32,54,214,0,32,58,214,0,32,60,214,0,32,62,214,0,32,64,214,0,32,66,214,0,224,70,214,0,32,1,0,28,22,48,195,225,114,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,52,255,120,3,112,201,250,2,236,223,48,3,3,0,68,14,150,8,45,22,91,214,0,32,93,214,0,32,97,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,184,249,114,3,0,0,0,192,226,89,3,112,201,250,2,224,211,17,3,2,0,68,14,45,22,170,170,106,214,0,32,110,214,0,224,2,0,56,22,28,22,170,170,122,212,0,96,80,40,243,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,0,0,16,197,164,3,152,117,249,2,187,91,91,3,3,0,68,14,67,12,45,22,118,214,0,32,122,214,0,32,126,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,232,195,150,3,232,56,250,2,34,216,93,3,2,0,185,13,45,22,170,170,135,214,0,32,139,214,0,224,1,0,28,22,240,204,239,114,1,0,28,22,224,52,237,114,1,0,28,22,48,248,237,114,1,0,28,22,160,76,207,114,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,52,148,167,3,208,60,250,2,179,82,103,3,6,0,68,14,67,12,150,8,180,10,70,4,45,22,170,170,147,214,0,32,149,214,0,32,151,214,0,32,153,214,0,32,155,214,0,32,159,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,178,233,114,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,3,0,0,0,192,9,121,3,0,184,249,2,146,72,59,3,3,0,68,14,60,11,45,22,173,214,0,32,177,214,0,32,181,214,0,224,1,0,28,22,208,216,224,114,2,0,56,22,28,22,170,170,131,212,0,96,0,78,225,114,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,3,0,0,0,12,24,161,3,56,2,250,2,65,119,97,3,4,0,103,13,67,12,115,21,45,22,170,170,190,214,0,32,192,214,0,32,196,214,0,32,200,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,1,0,28,22,240,91,237,114,1,0,28,22,112,72,209,114,3,0,0,0,108,247,167,3,248,95,250,2,193,56,90,3,4,0,185,13,22,10,75,8,45,22,170,170,211,214,0,32,215,214,0,32,217,214,0,32,219,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,1,0,28,22,176,131,246,114,1,0,28,22,48,248,237,114,3,0,0,0,60,148,139,3,192,27,249,2,64,64,83,3,4,0,150,8,158,11,154,20,45,22,170,170,230,214,0,32,234,214,0,32,236,214,0,32,238,214,0,224,1,0,28,22,128,201,194,114,1,0,28,22,16,94,208,114,1,0,28,22,176,205,192,114,1,0,28,22,48,105,240,114,1,0,28,22,224,52,237,114,1,0,28,22,80,70,238,114,1,0,28,22,32,126,230,114,1,0,28,22,80,227,191,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,1,0,28,22,128,254,206,114,3,0,0,0,136,41,170,3,168,150,250,2,101,0,105,3,1,0,28,22,144,37,207,114,12,0,85,5,103,13,63,12,68,14,67,12,150,8,20,8,100,11,173,13,155,22,45,22,101,10,170,170,249,214,0,32,251,214,0,32,253,214,0,32,255,214,0,32,1,215,0,32,3,215,0,32,5,215,0,32,7,215,0,32,9,215,0,32,13,215,0,32,15,215,0,224,19,215,0,32,2,0,56,22,28,22,170,170,140,212,0,96,144,90,219,114,2,0,56,22,28,22,170,170,140,212,0,96,0,191,227,114,2,0,56,22,28,22,170,170,140,212,0,96,80,160,223,114,2,0,56,22,28,22,170,170,140,212,0,96,16,34,218,114,1,0,28,22,112,148,238,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,56,22,28,22,71,22,131,212,0,96,112,201,250,114,32,13,228,114,3,0,0,0,36,102,164,3,96,162,250,2,33,49,97,3,2,0,56,22,28,22,170,170,140,212,0,96,0,0,0,112,9,0,252,12,20,8,173,13,240,10,130,12,16,14,155,22,45,22,158,12,40,215,0,32,44,215,0,32,48,215,0,32,52,215,0,32,56,215,0,32,58,215,0,32,62,215,0,32,67,215,0,224,71,215,0,32,2,0,56,22,28,22,170,170,140,212,0,96,0,85,203,114,1,0,28,22,96,10,192,114,2,0,56,22,28,22,170,170,140,212,0,96,48,29,211,114,2,0,56,22,28,22,170,170,140,212,0,96,80,24,204,114,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,1,0,28,22,32,133,208,114,2,0,56,22,28,22,170,170,140,212,0,96,224,59,215,114,1,0,28,22,16,207,210,114,1,0,28,22,0,0,0,112,1,0,28,22,208,103,222,114,1,0,28,22,96,33,209,114,1,0,28,22,64,188,191,114,2,0,104,22,28,22,170,170,96,79,243,114,0,251,217,114,2,0,56,22,28,22,170,170,140,212,0,96,192,154,207,114,1,0,28,22,160,233,160,114,2,0,56,22,28,22,170,170,140,212,0,96,176,228,209,114,2,0,56,22,28,22,170,170,140,212,0,96,80,197,196,114,2,0,56,22,28,22,170,170,140,212,0,96,208,193,207,114,1,0,28,22,160,106,202,114,2,0,56,22,28,22,170,170,140,212,0,96,0,55,208,114,2,0,56,22,28,22,170,170,140,212,0,96,224,232,207,114,2,0,56,22,28,22,170,170,140,212,0,96,96,206,201,114,2,0,56,22,28,22,170,170,140,212,0,96,224,232,207,114,2,0,56,22,28,22,170,170,140,212,0,96,16,94,208,114,1,0,28,22,48,239,176,114,1,0,28,22,208,27,193,114,2,0,56,22,28,22,170,170,140,212,0,96,176,228,209,114,1,0,28,22,192,11,210,114,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,2,0,56,22,28,22,170,170,140,212,0,96,192,11,210,114,1,0,28,22,112,252,179,114,3,0,0,0,64,44,184,3,200,228,250,2,26,44,119,3,2,0,56,22,28,22,170,170,140,212,0,96,224,142,222,114,2,0,56,22,28,22,170,170,140,212,0,96,144,37,207,114,2,0,56,22,28,22,170,170,140,212,0,96,32,246,210,114,1,0,28,22,208,117,178,114,1,0,28,22,0,0,0,112,37,0,161,4,197,4,32,14,139,22,35,8,197,5,179,24,9,6,109,6,112,6,119,6,206,6,30,6,54,8,58,8,117,8,223,8,243,8,255,8,22,9,30,9,87,9,103,9,249,9,244,13,92,10,139,10,85,10,47,13,254,11,155,22,45,22,83,13,94,13,106,13,145,13,168,13,89,215,0,32,93,215,0,32,95,215,0,32,99,215,0,32,103,215,0,32,107,215,0,32,109,215,0,32,113,215,0,32,115,215,0,32,117,215,0,32,119,215,0,32,121,215,0,32,123,215,0,32,127,215,0,32,131,215,0,32,133,215,0,32,137,215,0,32,141,215,0,32,145,215,0,32,147,215,0,32,151,215,0,32,155,215,0,32,159,215,0,32,163,215,0,32,167,215,0,32,169,215,0,32,171,215,0,32,175,215,0,32,177,215,0,32,181,215,0,32,185,215,0,32,187,215,0,224,191,215,0,32,195,215,0,32,199,215,0,32,203,215,0,32,205,215,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,2,0,56,22,28,22,170,170,131,212,0,96,160,166,192,114,2,0,56,22,28,22,170,170,131,212,0,96,16,110,247,114,3,0,0,0,16,75,151,3,152,135,246,2,212,176,103,3,4,0,68,14,150,8,55,13,45,22,170,170,7,216,0,32,11,216,0,32,15,216,0,32,19,216,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,28,22,71,22,170,170,224,255,224,114,32,13,228,114,3,0,0,0,220,192,180,3,128,252,248,2,39,247,106,3,3,0,185,13,241,4,45,22,30,216,0,32,34,216,0,32,38,216,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,96,49,248,114,1,0,28,22,224,142,222,114,3,0,0,0,72,76,134,3,104,131,248,2,233,175,81,3,4,0,68,14,92,11,230,11,45,22,170,170,47,216,0,32,51,216,0,32,53,216,0,32,55,216,0,224,1,0,28,22,96,162,250,114,2,0,56,22,28,22,170,170,131,212,0,96,160,122,241,114,2,0,56,22,28,22,170,170,131,212,0,96,0,214,244,114,3,0,0,0,248,118,136,3,48,176,249,2,194,158,70,3,4,0,93,6,68,14,150,8,45,22,170,170,66,216,0,32,68,216,0,32,72,216,0,32,76,216,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,96,169,228,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,240,211,217,114,1,0,28,22,176,138,224,114,1,0,28,22,32,43,223,114,1,0,28,22,240,68,220,114,3,0,0,0,56,126,165,3,216,166,246,2,0,180,108,3,1,0,28,22,240,241,212,114,9,0,185,13,53,5,68,14,8,7,67,7,202,22,56,10,45,22,51,14,87,216,0,32,91,216,0,32,93,216,0,32,97,216,0,32,99,216,0,32,101,216,0,32,103,216,0,32,105,216,0,224,109,216,0,32,1,0,28,22,160,205,248,114,2,0,56,22,28,22,170,170,140,212,0,96,96,199,223,114,1,0,28,22,48,142,213,114,1,0,28,22,0,0,0,112,1,0,28,22,80,24,204,114,1,0,28,22,208,50,210,114,2,0,104,22,28,22,170,170,240,31,247,114,16,18,179,114,1,0,28,22,112,49,192,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,176,176,170,3,112,201,250,2,201,78,103,3,1,0,28,22,80,84,194,114,11,0,68,14,206,6,16,7,175,11,202,11,34,4,98,12,102,12,165,12,45,22,185,12,125,216,0,32,127,216,0,32,131,216,0,32,133,216,0,32,135,216,0,32,137,216,0,32,139,216,0,32,143,216,0,32,145,216,0,32,149,216,0,224,153,216,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,192,154,207,114,2,0,56,22,28,22,170,170,131,212,0,96,32,209,237,114,1,0,28,22,176,115,207,114,2,0,56,22,28,22,170,170,131,212,0,96,80,160,223,114,3,0,0,0,36,216,170,3,88,80,250,2,166,247,95,3,2,0,56,22,28,22,170,170,131,212,0,96,16,110,247,114,7,0,68,14,75,8,115,12,41,11,154,20,45,22,210,9,172,216,0,32,176,216,0,32,178,216,0,32,182,216,0,32,184,216,0,32,188,216,0,224,192,216,0,32,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,3,0,0,0,24,127,106,3,80,123,250,2,88,182,52,3,2,0,68,14,45,22,170,170,207,216,0,32,211,216,0,224,1,0,28,22,224,22,242,114,1,0,28,22,240,174,244,114,1,0,28,22,16,253,244,114,1,0,28,22,128,224,211,114,1,0,28,22,240,15,208,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,0,0,108,101,158,3,200,228,250,2,92,179,89,3,2,0,56,22,28,22,170,170,140,212,0,96,224,142,222,114,8,0,103,13,68,14,252,12,20,8,87,4,178,19,45,22,141,13,170,170,219,216,0,32,221,216,0,32,223,216,0,32,225,216,0,32,227,216,0,32,229,216,0,32,233,216,0,224,237,216,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,118,243,114,1,0,28,22,208,239,241,114,3,0,0,0,96,31,120,3,32,119,252,2,56,46,45,3,3,0,104,19,47,13,45,22,254,216,0,32,2,217,0,32,4,217,0,224,1,0,28,22,48,218,242,114,1,0,28,22,160,9,239,114,1,0,28,22,224,165,239,114,1,0,28,22,240,91,237,114,1,0,28,22,144,90,219,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,52,135,165,3,224,224,250,2,60,203,94,3,1,0,28,22,48,82,223,114,8,0,35,12,103,13,68,14,20,8,100,11,240,10,45,22,158,12,170,170,13,217,0,32,15,217,0,32,17,217,0,32,19,217,0,32,21,217,0,32,23,217,0,32,27,217,0,224,31,217,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,5,241,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,1,0,28,22,48,45,250,114,1,0,28,22,240,204,239,114,2,0,104,22,28,22,170,170,192,147,229,114,224,165,239,114,3,0,0,0,44,74,149,3,168,73,242,2,221,153,96,3,7,0,68,14,1,7,163,22,247,8,9,10,68,0,45,22,46,217,0,32,50,217,0,32,52,217,0,32,54,217,0,32,56,217,0,32,58,217,0,32,62,217,0,224,1,0,28,22,64,151,218,114,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,3,0,0,0,0,107,135,3,64,84,250,2,176,50,61,3,3,0,229,12,87,4,45,22,77,217,0,32,79,217,0,32,83,217,0,224,3,0,104,22,56,22,28,22,32,119,252,114,140,212,0,96,144,120,214,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,144,180,204,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,160,99,224,114,2,0,56,22,28,22,170,170,140,212,0,96,144,226,238,114,1,0,28,22,0,0,0,112,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,176,161,241,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,16,94,208,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,96,236,196,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,144,233,216,114,2,0,56,22,28,22,170,170,140,212,0,96,240,181,222,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,64,211,208,114,2,0,56,22,28,22,170,170,140,212,0,96,240,91,237,114,3,0,0,0,160,227,155,3,168,67,243,2,244,38,104,3,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,208,27,193,114,2,0,56,22,28,22,170,170,122,212,0,96,160,92,246,114,15,0,131,5,181,5,190,6,1,7,163,22,150,8,219,8,17,10,29,10,14,12,118,12,141,12,45,22,30,13,242,6,92,217,0,32,97,217,0,32,102,217,0,32,107,217,0,32,111,217,0,32,113,217,0,32,118,217,0,32,123,217,0,32,128,217,0,32,133,217,0,32,137,217,0,32,142,217,0,32,146,217,0,224,150,217,0,32,155,217,0,32,3,0,104,22,56,22,28,22,112,201,250,114,131,212,0,96,96,222,240,114,1,0,28,22,96,146,211,114,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,1,0,28,22,64,121,223,114,3,0,0,0,112,165,150,3,208,114,241,2,131,139,103,3,5,0,185,13,219,11,244,10,171,7,45,22,182,217,0,32,187,217,0,32,189,217,0,32,193,217,0,32,195,217,0,224,1,0,28,22,32,246,210,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,2,0,104,22,28,22,170,170,240,31,247,114,128,14,246,114,3,0,0,0,128,134,145,3,120,33,250,2,225,136,80,3,1,0,28,22,176,25,222,114,5,0,244,7,120,19,137,12,45,22,125,22,207,217,0,32,209,217,0,32,213,217,0,32,217,217,0,224,221,217,0,32,1,0,28,22,240,204,239,114,2,0,56,22,28,22,170,170,131,212,0,96,240,204,239,114,1,0,28,22,128,247,228,114,3,0,0,0,164,148,150,3,240,204,239,2,204,92,103,3,4,0,185,13,68,14,247,10,45,22,170,170,231,217,0,32,233,217,0,32,237,217,0,32,239,217,0,224,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,3,0,0,0,48,122,127,3,24,73,246,2,114,116,74,3,2,0,70,4,45,22,170,170,250,217,0,32,254,217,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,3,0,0,0,212,85,155,3,8,147,248,2,174,97,96,3,2,0,67,12,45,22,170,170,6,218,0,32,10,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,1,0,28,22,240,91,237,114,2,0,56,22,28,22,170,170,131,212,0,96,64,234,225,114,3,0,0,0,104,151,122,3,112,201,250,2,70,170,62,3,1,0,28,22,112,65,231,114,5,0,68,14,67,12,120,19,45,22,152,13,18,218,0,32,22,218,0,32,24,218,0,32,28,218,0,224,32,218,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,2,0,56,22,28,22,170,170,131,212,0,96,176,108,229,114,1,0,28,22,32,43,223,114,1,0,28,22,0,161,232,114,2,0,28,22,71,22,170,170,192,184,202,114,32,13,228,114,3,0,0,0,16,51,155,3,104,131,248,2,0,182,104,3,6,0,185,13,150,8,30,6,134,20,192,12,45,22,170,170,42,218,0,32,46,218,0,32,50,218,0,32,52,218,0,32,54,218,0,32,58,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,2,0,56,22,28,22,170,170,131,212,0,96,224,135,244,114,3,0,0,0,32,76,149,3,240,19,249,2,112,45,88,3,1,0,28,22,16,4,223,114,1,0,28,22,64,204,230,114,5,0,68,14,186,5,45,22,79,13,79,14,72,218,0,32,76,218,0,32,80,218,0,224,84,218,0,32,86,218,0,32,1,0,28,22,112,201,250,114,3,0,0,0,252,157,103,3,112,201,250,2,56,167,29,3,2,0,68,14,45,22,170,170,96,218,0,32,98,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,64,167,126,3,96,162,250,2,28,130,64,3,2,0,68,14,45,22,170,170,106,218,0,32,110,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,80,70,238,114,2,0,56,22,28,22,170,170,131,212,0,96,224,165,239,114,3,0,0,0,248,228,151,3,16,21,241,2,134,83,104,3,3,0,185,13,150,8,45,22,118,218,0,32,122,218,0,32,126,218,0,224,2,0,104,22,28,22,170,170,32,119,252,114,32,119,252,114,3,0,0,0,244,123,95,3,112,201,250,2,224,151,27,3,2,0,150,8,45,22,170,170,135,218,0,32,139,218,0,224,1,0,28,22,80,70,238,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,2,0,104,22,28,22,170,170,48,248,237,114,208,103,222,114,3,0,0,0,164,129,149,3,160,229,244,2,172,160,99,3,4,0,47,12,150,8,42,8,45,22,170,170,147,218,0,32,149,218,0,32,153,218,0,32,157,218,0,224,1,0,28,22,240,204,239,114,1,0,28,22,160,219,204,114,2,0,104,22,28,22,170,170,96,79,243,114,192,124,212,114,1,0,28,22,16,4,223,114,2,0,104,22,28,22,170,170,208,126,239,114,32,110,191,114,1,0,28,22,32,110,191,114,1,0,28,22,32,13,228,114,1,0,28,22,208,193,207,114,2,0,28,22,71,22,170,170,0,18,235,114,32,13,228,114,1,0,28,22,128,141,204,114,2,0,28,22,71,22,170,170,0,161,232,114,32,13,228,114,3,0,0,0,80,238,179,3,152,242,249,2,174,70,112,3,3,0,104,22,56,22,28,22,16,223,249,114,131,212,0,96,64,227,247,114,2,0,28,22,71,22,170,170,192,87,239,114,32,13,228,114,1,0,28,22,32,43,223,114,15,0,68,14,244,7,137,8,48,9,95,9,205,9,21,10,72,10,215,10,78,12,126,12,45,22,240,12,78,13,125,22,168,218,0,32,170,218,0,32,172,218,0,32,176,218,0,32,178,218,0,32,182,218,0,32,184,218,0,32,186,218,0,32,188,218,0,32,192,218,0,32,194,218,0,32,198,218,0,224,202,218,0,32,207,218,0,32,211,218,0,32,1,0,28,22,48,149,191,114,1,0,28,22,160,16,217,114,1,0,28,22,0,131,237,114,3,0,0,0,140,221,151,3,200,228,250,2,71,8,100,3,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,5,0,185,13,22,10,47,13,45,22,164,9,236,218,0,32,238,218,0,32,240,218,0,32,242,218,0,224,246,218,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,240,199,88,3,32,6,250,2,156,58,43,3,3,0,56,22,28,22,71,22,131,212,0,96,32,149,247,114,32,13,228,114,3,0,68,14,45,22,128,20,2,219,0,32,6,219,0,224,10,219,0,32,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,240,174,244,114,3,0,0,0,136,153,143,3,152,147,244,2,132,154,88,3,2,0,56,22,28,22,170,170,131,212,0,96,240,174,244,114,3,0,70,4,45,22,236,12,20,219,0,32,25,219,0,224,29,219,0,32,1,0,28,22,64,68,211,114,1,0,28,22,0,131,237,114,3,0,0,0,84,94,164,3,224,224,250,2,159,237,94,3,2,0,56,22,28,22,170,170,131,212,0,96,160,92,246,114,1,0,28,22,160,39,234,114,5,0,134,20,47,13,45,22,38,11,199,9,38,219,0,32,40,219,0,32,42,219,0,224,46,219,0,32,50,219,0,32,1,0,28,22,224,105,249,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,3,0,0,0,36,227,164,3,24,192,247,2,28,138,103,3,4,0,165,4,185,13,150,8,45,22,170,170,60,219,0,32,62,219,0,32,66,219,0,32,70,219,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,244,239,114,3,0,0,0,24,7,126,3,112,201,250,2,47,218,72,3,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,68,14,45,22,190,5,81,219,0,32,85,219,0,224,89,219,0,32,1,0,28,22,80,31,182,114,1,0,28,22,48,29,211,114,1,0,28,22,64,181,213,114,1,0,28,22,96,116,216,114,1,0,28,22,208,20,215,114,1,0,28,22,96,146,211,114,1,0,28,22,160,46,212,114,1,0,28,22,80,31,182,114,1,0,28,22,80,70,238,114,1,0,28,22,0,115,198,114,1,0,28,22,0,115,198,114,1,0,28,22,144,233,216,114,1,0,28,22,240,15,208,114,1,0,28,22,96,17,170,114,1,0,28,22,112,208,228,114,1,0,28,22,32,200,176,114,1,0,28,22,64,45,194,114,1,0,28,22,208,27,193,114,2,0,28,22,71,22,170,170,64,45,194,114,32,13,228,114,3,0,0,0,104,97,181,3,8,10,250,2,15,68,114,3,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,144,74,180,114,1,0,28,22,192,78,178,114,1,0,28,22,224,142,222,114,24,0,201,12,161,4,185,13,19,12,64,23,85,5,96,5,63,12,68,14,30,6,26,11,117,8,192,8,182,4,134,20,202,23,213,9,130,12,155,22,45,22,101,10,46,13,199,9,86,14,170,170,98,219,0,32,100,219,0,32,102,219,0,32,104,219,0,32,106,219,0,32,108,219,0,32,110,219,0,32,112,219,0,32,114,219,0,32,116,219,0,32,118,219,0,32,120,219,0,32,122,219,0,32,124,219,0,32,126,219,0,32,128,219,0,32,130,219,0,32,132,219,0,32,134,219,0,32,138,219,0,224,142,219,0,32,146,219,0,32,148,219,0,32,150,219,0,32,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,1,0,28,22,224,89,210,114,3,0,0,0,212,16,154,3,160,193,250,2,47,86,88,3,3,0,68,14,67,12,45,22,189,219,0,32,193,219,0,32,195,219,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,195,234,114,3,0,0,0,224,40,108,3,48,45,250,2,140,180,57,3,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,68,14,45,22,168,20,204,219,0,32,208,219,0,224,212,219,0,32,3,0,0,0,244,219,179,3,40,88,250,2,62,90,105,3,1,0,28,22,192,244,192,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,45,22,50,13,125,22,221,219,0,224,225,219,0,32,227,219,0,32,1,0,28,22,192,64,222,114,1,0,28,22,16,4,223,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,1,0,28,22,96,116,216,114,1,0,28,22,144,60,224,114,1,0,28,22,16,4,223,114,1,0,28,22,48,112,218,114,2,0,104,22,28,22,170,170,96,79,243,114,240,181,222,114,1,0,28,22,224,142,222,114,1,0,28,22,16,117,225,114,1,0,28,22,96,116,216,114,1,0,28,22,32,133,208,114,2,0,104,22,28,22,170,170,160,242,221,114,0,55,208,114,1,0,28,22,112,178,233,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,4,68,165,3,176,6,246,2,120,175,110,3,1,0,28,22,96,116,216,114,17,0,253,4,65,5,68,14,70,8,133,8,10,9,68,9,241,9,45,10,5,11,214,11,238,11,22,12,157,12,171,7,45,22,176,13,236,219,0,32,238,219,0,32,240,219,0,32,244,219,0,32,246,219,0,32,248,219,0,32,250,219,0,32,252,219,0,32,0,220,0,32,2,220,0,32,4,220,0,32,6,220,0,32,8,220,0,32,12,220,0,32,14,220,0,32,18,220,0,224,22,220,0,32,1,0,28,22,240,211,217,114,1,0,28,22,208,163,212,114,1,0,28,22,64,181,213,114,1,0,28,22,128,88,192,114,1,0,28,22,16,207,210,114,1,0,28,22,128,21,224,114,1,0,28,22,0,25,213,114,2,0,56,22,28,22,170,170,122,212,0,96,32,179,242,114,1,0,28,22,192,64,222,114,3,0,0,0,0,109,168,3,200,228,250,2,253,115,108,3,1,0,28,22,96,146,211,114,2,0,56,22,28,22,170,170,131,212,0,96,80,153,245,114,1,0,28,22,208,103,222,114,13,0,88,9,85,5,73,6,63,12,20,8,100,11,173,13,47,13,226,11,45,22,101,10,158,12,185,12,50,220,0,32,52,220,0,32,54,220,0,32,56,220,0,32,58,220,0,32,60,220,0,32,62,220,0,32,64,220,0,32,68,220,0,32,70,220,0,224,74,220,0,32,76,220,0,32,80,220,0,32,1,0,28,22,80,17,226,114,1,0,28,22,96,169,228,114,2,0,56,22,28,22,170,170,131,212,0,96,112,95,226,114,1,0,28,22,112,109,182,114,1,0,28,22,96,56,226,114,1,0,28,22,16,170,237,114,1,0,28,22,208,216,224,114,1,0,28,22,240,8,230,114,1,0,28,22,80,160,223,114,2,0,56,22,28,22,170,170,131,212,0,96,240,31,247,114,1,0,28,22,112,95,226,114,3,0,0,0,252,34,161,3,160,217,246,2,210,89,108,3,1,0,28,22,48,82,223,114,1,0,28,22,80,130,228,114,14,0,153,4,1,6,68,14,75,12,76,9,140,17,143,10,9,11,55,13,171,7,228,12,45,22,74,13,3,14,170,170,102,220,0,32,104,220,0,32,106,220,0,32,110,220,0,32,112,220,0,32,114,220,0,32,116,220,0,32,118,220,0,32,120,220,0,32,122,220,0,32,126,220,0,32,128,220,0,224,132,220,0,32,134,220,0,32,2,0,56,22,28,22,170,170,122,212,0,96,32,119,252,114,3,0,0,0,176,147,104,3,112,201,250,2,96,71,30,3,2,0,68,14,45,22,170,170,158,220,0,32,162,220,0,224,1,0,28,22,0,0,0,112,1,0,28,22,80,174,179,114,2,0,28,22,71,22,170,170,16,101,186,114,32,13,228,114,1,0,28,22,0,0,0,112,1,0,28,22,240,165,183,114,1,0,28,22,176,85,212,114,2,0,56,22,28,22,170,170,122,212,0,96,64,84,250,114,2,0,56,22,28,22,170,170,140,212,0,96,0,18,235,114,1,0,28,22,48,66,184,114,1,0,28,22,96,146,211,114,1,0,28,22,64,181,213,114,1,0,28,22,128,118,187,114,2,0,56,22,28,22,170,170,140,212,0,96,208,57,188,114,1,0,28,22,176,62,195,114,2,0,28,22,71,22,170,170,192,78,178,114,32,13,228,114,1,0,28,22,0,0,0,112,1,0,28,22,224,89,210,114,1,0,28,22,0,0,0,112,1,0,28,22,160,189,209,114,1,0,28,22,208,117,178,114,1,0,28,22,0,122,176,114,1,0,28,22,160,136,197,114,1,0,28,22,0,0,0,112,1,0,28,22,240,218,195,114,1,0,28,22,64,211,208,114,3,0,0,0,20,71,196,3,112,201,250,2,223,21,122,3,1,0,28,22,224,89,210,114,1,0,28,22,144,97,197,114,1,0,28,22,16,177,215,114,29,0,233,5,17,6,25,6,33,6,115,6,103,13,68,14,67,12,229,6,12,7,150,8,27,7,13,23,244,7,116,5,210,23,87,4,213,23,97,11,139,9,108,10,251,10,29,11,72,11,47,13,45,22,149,13,185,12,125,22,170,220,0,32,172,220,0,32,174,220,0,32,178,220,0,32,180,220,0,32,182,220,0,32,184,220,0,32,188,220,0,32,192,220,0,32,194,220,0,32,196,220,0,32,198,220,0,32,200,220,0,32,204,220,0,32,206,220,0,32,210,220,0,32,212,220,0,32,214,220,0,32,216,220,0,32,218,220,0,32,220,220,0,32,222,220,0,32,224,220,0,32,226,220,0,32,228,220,0,32,230,220,0,224,234,220,0,32,236,220,0,32,238,220,0,32,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,3,0,0,0,32,116,159,3,72,166,250,2,73,169,91,3,2,0,67,12,45,22,170,170,28,221,0,32,32,221,0,224,1,0,28,22,0,221,222,114,1,0,28,22,32,209,237,114,3,0,0,0,88,48,166,3,16,217,250,2,54,106,106,3,1,0,28,22,128,194,216,114,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,6,0,93,8,47,13,45,22,101,10,199,9,230,22,170,170,40,221,0,32,42,221,0,32,44,221,0,224,48,221,0,32,50,221,0,32,54,221,0,32,2,0,56,22,28,22,170,170,122,212,0,96,96,49,248,114,1,0,28,22,96,49,248,114,3,0,0,0,164,106,107,3,32,119,252,2,224,61,42,3,3,0,87,4,195,0,45,22,68,221,0,32,72,221,0,32,74,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,228,50,134,3,64,84,250,2,206,199,72,3,2,0,68,14,45,22,170,170,83,221,0,32,87,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,49,248,114,3,0,0,0,224,155,168,3,184,64,250,2,46,31,106,3,1,0,28,22,160,83,185,114,3,0,67,12,45,22,234,22,95,221,0,32,99,221,0,224,103,221,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,160,163,124,3,144,154,250,2,178,173,61,3,2,0,68,14,45,22,170,170,110,221,0,32,114,221,0,224,2,0,56,22,28,22,170,170,122,212,0,96,240,31,247,114,3,0,0,0,64,45,138,3,112,201,250,2,187,218,72,3,2,0,68,14,45,22,170,170,122,221,0,32,126,221,0,224,1,0,28,22,16,177,215,114,2,0,104,22,28,22,170,170,0,214,244,114,16,124,203,114,1,0,28,22,208,193,207,114,3,0,0,0,60,175,172,3,176,238,249,2,141,208,116,3,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,176,25,222,114,6,0,143,5,41,6,244,7,45,22,149,13,125,22,170,170,134,221,0,32,136,221,0,32,140,221,0,32,142,221,0,224,146,221,0,32,150,221,0,32,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,2,0,56,22,28,22,170,170,131,212,0,96,112,88,248,114,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,3,0,0,0,32,202,128,3,64,96,248,2,29,201,75,3,4,0,112,5,68,14,150,8,45,22,170,170,162,221,0,32,166,221,0,32,170,221,0,32,174,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,1,243,114,1,0,28,22,32,66,240,114,3,0,0,0,0,232,110,3,96,79,243,2,204,100,58,3,1,0,28,22,0,214,244,114,4,0,150,8,51,7,45,22,99,19,170,170,185,221,0,32,189,221,0,32,191,221,0,224,195,221,0,32,2,0,56,22,28,22,170,170,131,212,0,96,80,160,223,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,228,0,134,3,160,193,250,2,190,87,74,3,3,0,68,14,183,19,45,22,204,221,0,32,208,221,0,32,212,221,0,224,1,0,28,22,224,248,246,114,2,0,56,22,28,22,170,170,131,212,0,96,0,184,249,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,3,0,0,0,160,132,150,3,24,180,249,2,253,112,89,3,5,0,193,4,130,12,16,14,155,22,45,22,221,221,0,32,223,221,0,32,227,221,0,32,231,221,0,32,235,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,1,0,28,22,160,39,234,114,3,0,0,0,44,195,158,3,8,165,245,2,156,79,106,3,3,0,185,13,68,14,45,22,247,221,0,32,251,221,0,32,253,221,0,224,1,0,28,22,176,48,239,114,2,0,56,22,28,22,170,170,131,212,0,96,208,96,244,114,1,0,28,22,224,142,222,114,1,0,28,22,192,27,249,114,3,0,0,0,128,143,131,3,0,184,249,2,144,49,74,3,5,0,201,5,150,8,171,7,168,12,45,22,6,222,0,32,8,222,0,32,12,222,0,32,14,222,0,32,16,222,0,224,3,0,104,22,56,22,28,22,112,201,250,114,140,212,0,96,16,170,237,114,3,0,104,22,56,22,28,22,112,201,250,114,131,212,0,96,48,105,240,114,2,0,104,22,28,22,170,170,144,53,246,114,64,121,223,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,0,221,222,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,224,195,234,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,176,138,224,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,240,121,232,114,2,0,104,22,28,22,170,170,96,79,243,114,96,100,177,114,3,0,0,0,32,126,174,3,16,223,249,2,220,93,110,3,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,32,239,232,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,192,34,227,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,112,238,223,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,96,109,238,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,192,87,239,114,14,0,251,11,68,14,75,12,0,14,243,10,186,5,198,15,171,7,45,22,207,23,79,13,138,13,228,13,79,14,170,170,28,222,0,32,33,222,0,32,38,222,0,32,42,222,0,32,47,222,0,32,52,222,0,32,57,222,0,32,62,222,0,32,66,222,0,224,70,222,0,32,75,222,0,32,80,222,0,32,85,222,0,32,90,222,0,32,1,0,28,22,48,105,240,114,2,0,56,22,28,22,170,170,131,212,0,96,64,31,238,114,1,0,28,22,192,147,229,114,1,0,28,22,48,248,237,114,3,0,0,0,148,11,158,3,176,12,245,2,250,104,104,3,5,0,57,5,68,14,155,9,2,11,45,22,117,222,0,32,119,222,0,32,123,222,0,32,125,222,0,32,127,222,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,22,242,114,1,0,28,22,80,130,228,114,1,0,28,22,16,87,230,114,2,0,56,22,28,22,170,170,131,212,0,96,0,131,237,114,1,0,28,22,208,186,229,114,1,0,28,22,48,82,223,114,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,3,0,0,0,172,193,152,3,224,111,248,2,119,248,103,3,1,0,28,22,32,133,208,114,1,0,28,22,192,237,214,114,10,0,68,14,129,8,132,10,123,13,167,10,2,11,17,8,45,22,207,23,138,13,170,170,139,222,0,32,143,222,0,32,145,222,0,32,147,222,0,32,151,222,0,32,153,222,0,32,155,222,0,32,159,222,0,224,163,222,0,32,165,222,0,32,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,45,22,183,222,0,224,1,1,25,22,237,15,35,3,38,3,240,15,101,22,41,3,243,15,246,15,119,22,249,15,122,22,252,15,255,15,133,22,136,22,44,3,2,16,5,16,47,3,8,16,11,16,14,16,50,3,17,16,20,16,171,22,174,22,23,16,25,24,26,16,31,24,241,14,29,16,185,22,32,16,35,16,26,15,61,24,196,22,38,16,41,16,44,16,85,24,47,16,199,22,29,15,50,16,53,3,32,15,247,22,35,15,53,16,56,16,250,22,56,3,59,16,62,16,65,16,253,22,59,3,68,16,71,16,74,16,62,3,0,23,37,24,77,16,65,3,68,3,71,3,43,24,74,3,80,16,83,16,3,23,86,16,6,23,89,16,92,16,38,15,95,16,98,16,17,23,20,23,101,16,23,23,104,16,107,16,110,16,35,23,49,24,113,16,38,23,41,15,41,23,116,16,119,16,143,15,44,23,122,16,125,16,121,15,128,16,47,23,77,3,131,16,80,3,50,23,73,24,61,23,83,3,86,3,134,16,91,24,72,23,137,16,89,3,92,3,140,16,143,16,146,16,149,16,95,3,152,16,155,16,98,3,101,3,44,15,158,16,161,16,104,3,164,16,167,16,170,16,47,15,173,16,176,16,179,16,182,16,107,3,110,3,185,16,188,16,191,16,118,23,194,16,197,16,200,16,203,16,50,15,206,16,113,3,129,23,132,23,116,3,135,23,209,16,212,16,119,3,215,16,53,15,122,3,218,16,221,16,138,23,125,3,141,23,224,16,56,15,227,16,230,16,233,16,236,16,153,23,239,16,128,3,59,15,55,24,156,23,242,16,62,15,131,3,245,16,175,23,178,23,65,15,134,3,127,15,68,15,248,16,137,3,181,23,251,16,254,16,1,17,4,17,140,3,7,17,10,17,143,3,13,17,146,3,16,17,19,17,184,23,22,17,25,17,28,17,31,17,34,17,37,17,40,17,43,17,71,15,187,23,149,3,46,17,190,23,193,23,152,3,196,23,49,17,155,3,158,3,199,23,52,17,161,3,164,3,55,17,167,3,58,17,61,17,188,24,64,17,67,17,70,17,73,17,150,14,76,17,170,3,217,23,79,17,74,15,220,23,223,23,82,17,85,17,88,17,91,17,173,3,176,3,226,23,133,24,94,17,97,17,229,23,160,191,0,32,176,191,0,32,201,191,0,32,244,191,0,32,14,192,0,32,27,192,0,32,43,192,0,32,62,192,0,32,85,192,0,32,99,192,0,32,117,192,0,32,137,192,0,32,170,192,0,32,200,192,0,32,224,192,0,32,239,192,0,32,7,193,0,32,46,193,0,32,65,193,0,32,99,193,0,32,140,193,0,32,167,193,0,32,193,193,0,32,213,193,0,32,236,193,0,32,0,194,0,32,15,194,0,32,27,194,0,32,47,194,0,32,75,194,0,32,95,194,0,32,132,194,0,32,160,194,0,32,180,194,0,32,196,194,0,32,214,194,0,32,233,194,0,32,248,194,0,32,139,195,0,32,240,195,0,32,19,196,0,32,47,196,0,32,64,196,0,32,106,196,0,32,149,196,0,32,168,196,0,32,184,196,0,32,27,197,0,32,141,197,0,32,194,197,0,32,207,197,0,32,219,197,0,32,231,197,0,32,245,197,0,32,8,198,0,32,23,198,0,32,47,198,0,32,74,198,0,32,154,198,0,32,202,198,0,32,222,198,0,32,254,198,0,32,19,199,0,32,33,199,0,32,58,199,0,32,76,199,0,32,94,199,0,32,117,199,0,32,141,199,0,32,157,199,0,32,186,199,0,32,233,199,0,32,17,200,0,32,63,200,0,32,100,200,0,32,118,200,0,32,140,200,0,32,159,200,0,32,211,200,0,32,249,200,0,32,59,201,0,32,104,201,0,32,132,201,0,32,159,201,0,32,175,201,0,32,215,201,0,32,245,201,0,32,4,202,0,32,23,202,0,32,51,202,0,32,72,202,0,32,96,202,0,32,132,202,0,32,157,202,0,32,173,202,0,32,190,202,0,32,209,202,0,32,225,202,0,32,245,202,0,32,5,203,0,32,19,203,0,32,42,203,0,32,63,203,0,32,90,203,0,32,112,203,0,32,194,203,0,32,255,203,0,32,38,204,0,32,70,204,0,32,38,205,0,32,166,205,0,32,194,205,0,32,5,206,0,32,49,206,0,32,108,206,0,32,147,206,0,32,161,206,0,32,176,206,0,32,195,206,0,32,4,207,0,32,48,207,0,32,65,207,0,32,84,207,0,32,109,207,0,32,125,207,0,32,137,207,0,32,149,207,0,32,161,207,0,32,173,207,0,32,195,207,0,32,219,207,0,32,243,207,0,32,5,208,0,32,24,208,0,32,45,208,0,32,72,208,0,32,103,208,0,32,129,208,0,32,160,208,0,32,184,208,0,32,200,208,0,32,241,208,0,32,12,209,0,32,32,209,0,32,54,209,0,32,69,209,0,32,89,209,0,32,108,209,0,32,127,209,0,32,168,209,0,32,211,209,0,32,240,209,0,32,10,210,0,32,28,210,0,32,41,210,0,32,61,210,0,32,79,210,0,32,99,210,0,32,127,210,0,32,148,210,0,32,171,210,0,32,207,210,0,32,251,210,0,32,44,211,0,32,86,211,0,32,108,211,0,32,136,211,0,32,160,211,0,32,214,211,0,32,253,211,0,32,41,212,0,32,81,212,0,32,153,212,0,32,209,212,0,32,226,212,0,32,243,212,0,32,4,213,0,32,23,213,0,32,44,213,0,32,65,213,0,32,90,213,0,32,164,213,0,32,0,214,0,32,72,214,0,32,101,214,0,32,114,214,0,32,130,214,0,32,143,214,0,32,163,214,0,32,185,214,0,32,204,214,0,32,223,214,0,32,242,214,0,32,21,215,0,32,75,215,0,32,207,215,0,32,23,216,0,32,42,216,0,32,59,216,0,32,80,216,0,32,111,216,0,32,155,216,0,32,196,216,0,32,215,216,0,32,241,216,0,32,8,217,0,32,33,217,0,32,66,217,0,32,87,217,0,32,159,217,0,32,199,217,0,32,223,217,0,32,243,217,0,32,2,218,0,32,14,218,0,32,34,218,0,32,62,218,0,32,88,218,0,32,102,218,0,32,114,218,0,32,130,218,0,32,143,218,0,32,161,218,0,32,213,218,0,32,250,218,0,32,15,219,0,32,33,219,0,32,52,219,0,32,74,219,0,32,93,219,0,32,152,219,0,32,199,219,0,32,216,219,0,32,231,219,0,32,24,220,0,32,82,220,0,32,136,220,0,32,166,220,0,32,240,220,0,32,36,221,0,32,58,221,0,32,78,221,0,32,91,221,0,32,105,221,0,32,118,221,0,32,130,221,0,32,152,221,0,32,178,221,0,32,197,221,0,32,216,221,0,32,239,221,0,32,1,222,0,32,20,222,0,32,95,222,0,32,131,222,0,32,167,222,0,32,187,222,0,32,2,0,241,23,249,23,170,170,60,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,63,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,68,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,71,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,76,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,81,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,86,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,91,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,95,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,98,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,101,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,106,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,109,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,112,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,117,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,125,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,129,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,133,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,138,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,142,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,145,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,148,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,152,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,157,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,160,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,163,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,166,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,171,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,176,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,186,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,189,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,194,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,197,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,202,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,205,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,210,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,215,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,220,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,223,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,227,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,230,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,234,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,237,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,242,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,247,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,251,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,0,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,10,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,15,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,20,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,23,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,28,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,38,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,41,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,46,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,54,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,59,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,64,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,69,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,74,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,79,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,82,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,87,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,92,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,95,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,100,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,110,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,115,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,120,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,125,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,128,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,131,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,134,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,139,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,144,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,148,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,151,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,156,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,159,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,164,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,167,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,172,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,175,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,178,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,183,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,188,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,193,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,198,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,201,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,206,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,211,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,216,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,219,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,222,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,232,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,237,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,240,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,245,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,248,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,253,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,2,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,10,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,13,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,18,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,23,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,28,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,32,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,37,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,42,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,47,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,52,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,57,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,62,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,67,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,72,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,77,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,82,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,85,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,90,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,95,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,100,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,104,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,109,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,114,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,117,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,122,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,126,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,131,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,136,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,141,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,144,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,147,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,151,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,154,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,157,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,162,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,172,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,177,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,182,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,187,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,192,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,195,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,200,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,205,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,208,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,211,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,214,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,219,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,224,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,229,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,232,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,237,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,245,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,250,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,255,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,4,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,7,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,10,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,14,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,19,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,24,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,29,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,34,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,39,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,44,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,48,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,51,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,56,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,60,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,63,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,66,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,71,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,76,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,81,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,84,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,87,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,92,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,97,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,100,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,103,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,112,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,115,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,120,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,125,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,129,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,139,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,144,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,149,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,162,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,167,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,171,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,175,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,178,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,181,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,186,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,189,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,194,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,199,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,204,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,209,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,214,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,219,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,223,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,227,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,230,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,233,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,236,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,241,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,244,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,249,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,252,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,255,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,4,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,9,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,14,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,18,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,23,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,28,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,33,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,38,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,42,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,46,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,51,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,56,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,61,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,66,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,69,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,72,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,75,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,78,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,82,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,87,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,90,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,95,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,100,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,103,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,108,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,113,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,117,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,122,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,127,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,132,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,137,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,142,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,147,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,152,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,156,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,160,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,165,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,169,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,173,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,177,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,181,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,185,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,190,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,195,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,200,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,204,53,1,144,2,39,0,96,16,1,12,24,25,22,237,15,35,3,38,3,240,15,101,22,41,3,243,15,246,15,249,15,122,22,252,15,255,15,133,22,136,22,44,3,2,16,5,16,47,3,8,16,11,16,14,16,50,3,17,16,20,16,171,22,174,22,23,16,25,24,26,16,31,24,241,14,29,16,32,16,35,16,26,15,61,24,196,22,38,16,41,16,44,16,85,24,47,16,199,22,29,15,50,16,53,3,32,15,247,22,35,15,53,16,56,16,56,3,59,16,62,16,65,16,253,22,59,3,68,16,71,16,74,16,62,3,0,23,37,24,77,16,65,3,68,3,71,3,43,24,74,3,80,16,83,16,3,23,86,16,6,23,89,16,92,16,38,15,95,16,98,16,17,23,20,23,101,16,23,23,104,16,107,16,110,16,35,23,49,24,113,16,41,15,41,23,116,16,119,16,143,15,122,16,125,16,128,16,47,23,77,3,131,16,80,3,50,23,73,24,61,23,83,3,86,3,134,16,91,24,72,23,137,16,89,3,92,3,140,16,143,16,146,16,149,16,95,3,152,16,155,16,98,3,101,3,44,15,158,16,161,16,104,3,164,16,167,16,170,16,47,15,173,16,176,16,179,16,182,16,107,3,110,3,185,16,188,16,191,16,118,23,194,16,197,16,200,16,203,16,50,15,206,16,113,3,129,23,132,23,116,3,135,23,209,16,212,16,119,3,215,16,53,15,122,3,218,16,221,16,138,23,125,3,141,23,224,16,56,15,227,16,230,16,233,16,236,16,153,23,239,16,128,3,59,15,55,24,156,23,242,16,62,15,131,3,245,16,175,23,178,23,65,15,134,3,127,15,68,15,248,16,137,3,181,23,251,16,254,16,1,17,4,17,140,3,7,17,10,17,143,3,13,17,146,3,16,17,19,17,184,23,22,17,25,17,28,17,31,17,34,17,37,17,40,17,43,17,71,15,187,23,149,3,46,17,190,23,193,23,152,3,196,23,49,17,155,3,158,3,52,17,161,3,164,3,55,17,167,3,58,17,188,24,64,17,67,17,70,17,73,17,150,14,76,17,170,3,217,23,79,17,74,15,220,23,223,23,82,17,85,17,88,17,91,17,173,3,176,3,226,23,133,24,94,17,97,17,3,24,9,24,16,24,91,15,22,24,28,24,34,24,40,24,46,24,52,24,58,24,64,24,70,24,76,24,82,24,88,24,94,24,100,24,106,24,112,24,118,24,124,24,130,24,170,170,63,224,0,32,67,224,0,32,71,224,0,32,75,224,0,32,79,224,0,32,83,224,0,32,87,224,0,32,91,224,0,32,95,224,0,32,99,224,0,32,103,224,0,32,107,224,0,32,111,224,0,32,115,224,0,32,119,224,0,32,120,49,1,80,123,224,0,32,127,224,0,32,131,224,0,32,135,224,0,32,139,224,0,32,143,224,0,32,147,224,0,32,151,224,0,32,155,224,0,32,159,224,0,32,163,224,0,32,167,224,0,32,171,224,0,32,175,224,0,32,181,49,1,80,179,224,0,32,183,224,0,32,187,224,0,32,191,224,0,32,195,224,0,32,199,224,0,32,203,224,0,32,207,224,0,32,211,224,0,32,215,224,0,32,219,224,0,32,223,224,0,32,227,224,0,32,231,224,0,32,235,224,0,32,239,224,0,32,243,224,0,32,247,224,0,32,5,50,1,80,251,224,0,32,255,224,0,32,3,225,0,32,7,225,0,32,11,225,0,32,33,50,1,80,15,225,0,32,19,225,0,32,23,225,0,32,49,50,1,80,27,225,0,32,31,225,0,32,35,225,0,32,39,225,0,32,43,225,0,32,47,225,0,32,51,225,0,32,55,225,0,32,59,225,0,32,63,225,0,32,67,225,0,32,105,50,1,80,71,225,0,32,75,225,0,32,79,225,0,32,83,225,0,32,87,225,0,32,91,225,0,32,95,225,0,32,99,225,0,32,103,225,0,32,107,225,0,32,111,225,0,32,115,225,0,32,119,225,0,32,123,225,0,32,127,225,0,32,131,225,0,32,135,225,0,32,139,225,0,32,143,225,0,32,147,225,0,32,151,225,0,32,155,225,0,32,159,225,0,32,163,225,0,32,167,225,0,32,171,225,0,32,175,225,0,32,179,225,0,32,227,50,1,80,183,225,0,32,187,225,0,32,191,225,0,32,195,225,0,32,199,225,0,32,203,225,0,32,207,225,0,32,5,51,1,80,211,225,0,32,215,225,0,32,219,225,0,32,223,225,0,32,227,225,0,32,231,225,0,32,235,225,0,32,239,225,0,32,243,225,0,32,247,225,0,32,251,225,0,32,255,225,0,32,3,226,0,32,7,226,0,32,11,226,0,32,15,226,0,32,19,226,0,32,23,226,0,32,27,226,0,32,31,226,0,32,35,226,0,32,39,226,0,32,43,226,0,32,47,226,0,32,51,226,0,32,55,226,0,32,59,226,0,32,63,226,0,32,67,226,0,32,71,226,0,32,75,226,0,32,79,226,0,32,83,226,0,32,87,226,0,32,91,226,0,32,167,51,1,80,95,226,0,32,99,226,0,32,103,226,0,32,107,226,0,32,111,226,0,32,115,226,0,32,119,226,0,32,123,226,0,32,127,226,0,32,131,226,0,32,135,226,0,32,139,226,0,32,143,226,0,32,147,226,0,32,151,226,0,32,155,226,0,32,240,51,1,80,159,226,0,32,163,226,0,32,167,226,0,32,171,226,0,32,175,226,0,32,179,226,0,32,183,226,0,32,187,226,0,32,191,226,0,32,195,226,0,32,199,226,0,32,203,226,0,32,207,226,0,32,211,226,0,32,215,226,0,32,219,226,0,32,223,226,0,32,227,226,0,32,231,226,0,32,235,226,0,32,239,226,0,32,243,226,0,32,247,226,0,32,251,226,0,32,255,226,0,32,3,227,0,32,7,227,0,32,11,227,0,32,107,52,1,80,15,227,0,32,19,227,0,32,23,227,0,32,27,227,0,32,31,227,0,32,134,52,1,80,35,227,0,32,39,227,0,32,43,227,0,32,152,52,1,80,157,52,1,80,47,227,0,32,51,227,0,32,55,227,0,32,59,227,0,32,63,227,0,32,67,227,0,32,71,227,0,32,75,227,0,32,79,227,0,32,83,227,0,32,87,227,0,32,91,227,0,32,95,227,0,32,99,227,0,32,103,227,0,32,107,227,0,32,111,227,0,32,115,227,0,32,119,227,0,32,123,227,0,32,127,227,0,32,131,227,0,32,135,227,0,32,139,227,0,32,143,227,0,32,147,227,0,32,151,227,0,32,155,227,0,32,159,227,0,32,163,227,0,32,167,227,0,32,171,227,0,32,175,227,0,32,179,227,0,32,183,227,0,32,187,227,0,32,191,227,0,32,195,227,0,32,199,227,0,32,203,227,0,32,207,227,0,32,211,227,0,32,215,227,0,32,219,227,0,32,223,227,0,32,227,227,0,32,231,227,0,32,235,227,0,32,239,227,0,32,243,227,0,32,247,227,0,32,251,227,0,32,255,227,0,32,3,228,0,32,7,228,0,32,11,228,0,32,15,228,0,32,19,228,0,32,23,228,0,32,27,228,0,32,31,228,0,32,35,228,0,32,39,228,0,32,43,228,0,32,47,228,0,32,51,228,0,32,55,228,0,32,59,228,0,32,63,228,0,32,67,228,0,32,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,6,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,156,0,12,24,237,15,35,3,38,3,240,15,101,22,41,3,243,15,145,24,249,15,122,22,252,15,255,15,136,22,44,3,2,16,47,3,8,16,14,16,50,3,174,22,23,16,31,24,241,14,29,16,32,16,35,16,26,15,61,24,85,24,29,15,50,16,53,3,32,15,35,15,59,16,62,16,65,16,59,3,68,16,71,16,74,16,62,3,37,24,77,16,65,3,43,24,74,3,80,16,83,16,6,23,89,16,38,15,98,16,17,23,20,23,23,23,35,23,113,16,41,15,41,23,143,15,122,16,125,16,128,16,77,3,131,16,80,3,50,23,73,24,83,3,86,3,134,16,91,24,72,23,137,16,89,3,92,3,140,16,143,16,146,16,98,3,101,3,158,16,161,16,104,3,167,16,170,16,176,16,179,16,182,16,107,3,185,16,188,16,191,16,197,16,200,16,50,15,206,16,113,3,132,23,209,16,119,3,53,15,122,3,218,16,56,15,227,16,230,16,233,16,239,16,128,3,59,15,55,24,62,15,131,3,245,16,65,15,127,15,248,16,137,3,181,23,251,16,254,16,1,17,140,3,143,3,13,17,146,3,19,17,184,23,22,17,28,17,71,15,149,3,155,3,158,3,161,3,167,3,58,17,188,24,67,17,70,17,73,17,150,14,76,17,170,3,217,23,74,15,223,23,82,17,91,17,173,3,176,3,133,24,97,17,170,170,224,229,0,224,231,229,0,224,238,229,0,224,245,229,0,224,252,229,0,224,3,230,0,224,10,230,0,224,17,230,0,224,24,230,0,224,31,230,0,224,38,230,0,224,45,230,0,224,52,230,0,224,59,230,0,224,66,230,0,224,73,230,0,224,80,230,0,224,87,230,0,224,94,230,0,224,101,230,0,224,108,230,0,224,115,230,0,224,122,230,0,224,129,230,0,224,136,230,0,224,143,230,0,224,150,230,0,224,157,230,0,224,164,230,0,224,171,230,0,224,178,230,0,224,185,230,0,224,192,230,0,224,199,230,0,224,206,230,0,224,213,230,0,224,220,230,0,224,227,230,0,224,234,230,0,224,241,230,0,224,248,230,0,224,255,230,0,224,6,231,0,224,13,231,0,224,20,231,0,224,27,231,0,224,34,231,0,224,41,231,0,224,48,231,0,224,55,231,0,224,62,231,0,224,69,231,0,224,76,231,0,224,83,231,0,224,90,231,0,224,97,231,0,224,104,231,0,224,111,231,0,224,118,231,0,224,125,231,0,224,132,231,0,224,139,231,0,224,146,231,0,224,153,231,0,224,160,231,0,224,167,231,0,224,174,231,0,224,181,231,0,224,188,231,0,224,195,231,0,224,202,231,0,224,209,231,0,224,216,231,0,224,223,231,0,224,230,231,0,224,237,231,0,224,244,231,0,224,251,231,0,224,2,232,0,224,9,232,0,224,16,232,0,224,23,232,0,224,30,232,0,224,37,232,0,224,44,232,0,224,51,232,0,224,58,232,0,224,65,232,0,224,72,232,0,224,79,232,0,224,86,232,0,224,93,232,0,224,100,232,0,224,107,232,0,224,114,232,0,224,121,232,0,224,128,232,0,224,135,232,0,224,142,232,0,224,149,232,0,224,156,232,0,224,163,232,0,224,170,232,0,224,177,232,0,224,184,232,0,224,191,232,0,224,198,232,0,224,205,232,0,224,212,232,0,224,219,232,0,224,226,232,0,224,233,232,0,224,240,232,0,224,247,232,0,224,254,232,0,224,5,233,0,224,12,233,0,224,19,233,0,224,26,233,0,224,33,233,0,224,40,233,0,224,47,233,0,224,54,233,0,224,61,233,0,224,68,233,0,224,75,233,0,224,82,233,0,224,89,233,0,224,96,233,0,224,103,233,0,224,110,233,0,224,117,233,0,224,124,233,0,224,131,233,0,224,138,233,0,224,145,233,0,224,152,233,0,224,159,233,0,224,166,233,0,224,173,233,0,224,180,233,0,224,187,233,0,224,194,233,0,224,201,233,0,224,208,233,0,224,215,233,0,224,222,233,0,224,229,233,0,224,236,233,0,224,243,233,0,224,250,233,0,224,1,234,0,224,8,234,0,224,15,234,0,224,22,234,0,224,29,234,0,224,1,0,0,0,1,0,0,0,1,0,38,15,15,235,0,224,74,0,251,11,3,12,185,13,19,12,88,9,85,5,151,5,178,5,122,8,35,12,213,12,106,17,103,13,63,12,68,14,67,12,237,12,199,19,22,10,206,6,12,7,150,8,180,10,174,7,75,12,252,12,20,8,30,6,83,12,93,11,87,4,182,24,38,6,26,11,182,4,98,21,216,8,97,11,222,6,51,8,187,15,202,9,53,10,75,8,244,13,248,13,115,12,104,19,120,19,253,7,41,11,100,11,70,4,173,13,47,13,67,13,240,10,178,19,130,12,16,14,165,12,171,7,154,20,159,20,240,12,101,10,158,12,122,13,28,8,199,9,149,13,210,9,185,24,79,14,170,170,209,53,1,144,213,53,1,144,22,206,0,96,216,53,1,144,219,53,1,144,222,53,1,144,226,53,1,144,229,53,1,144,135,205,0,96,232,53,1,144,235,53,1,144,238,53,1,144,241,53,1,144,245,53,1,144,248,53,1,144,135,205,0,96,251,53,1,144,254,53,1,144,1,54,1,144,4,54,1,144,22,206,0,96,135,205,0,96,135,205,0,96,22,206,0,96,8,54,1,144,11,54,1,144,22,206,0,96,22,206,0,96,22,206,0,96,14,54,1,144,18,54,1,144,21,54,1,144,25,54,1,144,28,54,1,144,22,206,0,96,31,54,1,144,34,54,1,144,22,206,0,96,38,54,1,144,41,54,1,144,46,54,1,144,49,54,1,144,52,54,1,144,55,54,1,144,59,54,1,144,63,54,1,144,66,54,1,144,71,54,1,144,75,54,1,144,79,54,1,144,83,54,1,144,87,54,1,144,90,54,1,144,94,54,1,144,97,54,1,144,100,54,1,144,103,54,1,144,125,208,0,96,106,54,1,144,111,54,1,144,114,54,1,144,118,54,1,144,122,54,1,144,125,54,1,144,129,54,1,144,132,54,1,144,137,54,1,144,124,205,0,96,140,54,1,144,144,54,1,144,147,54,1,144,151,54,1,144,155,54,1,144,159,54,1,144,19,0,32,0,12,3,179,3,191,3,204,3,225,3,90,4,90,14,177,14,197,14,77,15,146,15,214,15,122,21,11,22,232,23,136,24,148,24,165,24,81,169,0,32,107,169,0,32,90,70,0,96,186,169,0,128,234,170,0,128,211,171,0,32,18,182,0,32,185,186,0,32,50,188,0,32,165,188,0,32,197,188,0,32,215,188,0,32,217,188,0,32,105,191,0,32,189,222,0,32,71,228,0,32,36,234,0,32,17,235,0,32,19,235,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,138,20,0,32,7,0,0,0,0,9,0,0,145,20,0,0,145,20,0,0,195,1,0,0,1,0,0,0,130,20,0,0,98,99,112,84,121,112,101,65,108,105,97,115,0,116,122,0,97,113,97,109,115,0,97,117,107,110,115,0,99,97,102,102,115,0,99,97,109,116,114,0,99,97,110,112,103,0,99,97,112,110,116,0,99,97,116,104,117,0,99,97,121,122,102,0,99,110,99,107,103,0,99,110,104,114,98,0,99,110,107,104,103,0,103,97,122,97,0,109,120,115,116,105,115,0,117,97,111,122,104,0,117,97,117,122,104,0,117,109,106,111,110,0,117,115,110,97,118,97,106,111,0,105,97,110,97,77,97,112,0,116,105,109,101,122,111,110,101,0,65,102,114,105,99,97,58,65,115,109,101,114,97,0,65,109,101,114,105,99,97,58,66,117,101,110,111,115,95,65,105,114,101,115,0,65,109,101,114,105,99,97,58,67,97,116,97,109,97,114,99,97,0,65,109,101,114,105,99,97,58,67,111,114,97,108,95,72,97,114,98,111,117,114,0,65,109,101,114,105,99,97,58,67,111,114,100,111,98,97,0,65,109,101,114,105,99,97,58,71,111,100,116,104,97,98,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,112,111,108,105,115,0,65,109,101,114,105,99,97,58,74,117,106,117,121,0,65,109,101,114,105,99,97,58,76,111,117,105,115,118,105,108,108,101,0,65,109,101,114,105,99,97,58,77,101,110,100,111,122,97,0,65,115,105,97,58,67,97,108,99,117,116,116,97,0,65,115,105,97,58,75,97,116,109,97,110,100,117,0,65,115,105,97,58,82,97,110,103,111,111,110,0,65,115,105,97,58,83,97,105,103,111,110,0,65,116,108,97,110,116,105,99,58,70,97,101,114,111,101,0,69,117,114,111,112,101,58,75,105,101,118,0,80,97,99,105,102,105,99,58,69,110,100,101,114,98,117,114,121,0,80,97,99,105,102,105,99,58,80,111,110,97,112,101,0,80,97,99,105,102,105,99,58,84,114,117,107,0,116,121,112,101,65,108,105,97,115,0,65,102,114,105,99,97,58,65,115,109,97,114,97,0,65,102,114,105,99,97,58,84,105,109,98,117,107,116,117,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,66,117,101,110,111,115,95,65,105,114,101,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,67,97,116,97,109,97,114,99,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,67,111,109,111,100,82,105,118,97,100,97,118,105,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,67,111,114,100,111,98,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,74,117,106,117,121,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,77,101,110,100,111,122,97,0,65,109,101,114,105,99,97,58,65,116,105,107,111,107,97,110,0,65,109,101,114,105,99,97,58,65,116,107,97,0,65,109,101,114,105,99,97,58,69,110,115,101,110,97,100,97,0,65,109,101,114,105,99,97,58,70,111,114,116,95,87,97,121,110,101,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,73,110,100,105,97,110,97,112,111,108,105,115,0,65,109,101,114,105,99,97,58,75,101,110,116,117,99,107,121,58,76,111,117,105,115,118,105,108,108,101,0,65,109,101,114,105,99,97,58,75,110,111,120,95,73,78,0,65,109,101,114,105,99,97,58,77,111,110,116,114,101,97,108,0,65,109,101,114,105,99,97,58,78,105,112,105,103,111,110,0,65,109,101,114,105,99,97,58,78,117,117,107,0,65,109,101,114,105,99,97,58,80,97,110,103,110,105,114,116,117,110,103,0,65,109,101,114,105,99,97,58,80,111,114,116,111,95,65,99,114,101,0,65,109,101,114,105,99,97,58,82,97,105,110,121,95,82,105,118,101,114,0,65,109,101,114,105,99,97,58,82,111,115,97,114,105,111,0,65,109,101,114,105,99,97,58,83,97,110,116,97,95,73,115,97,98,101,108,0,65,109,101,114,105,99,97,58,83,104,105,112,114,111,99,107,0,65,109,101,114,105,99,97,58,84,104,117,110,100,101,114,95,66,97,121,0,65,109,101,114,105,99,97,58,86,105,114,103,105,110,0,65,109,101,114,105,99,97,58,89,101,108,108,111,119,107,110,105,102,101,0,65,110,116,97,114,99,116,105,99,97,58,83,111,117,116,104,95,80,111,108,101,0,65,115,105,97,58,65,115,104,107,104,97,98,97,100,0,65,115,105,97,58,67,104,111,110,103,113,105,110,103,0,65,115,105,97,58,67,104,117,110,103,107,105,110,103,0,65,115,105,97,58,68,97,99,99,97,0,65,115,105,97,58,72,97,114,98,105,110,0,65,115,105,97,58,72,111,95,67,104,105,95,77,105,110,104,0,65,115,105,97,58,73,115,116,97,110,98,117,108,0,65,115,105,97,58,75,97,115,104,103,97,114,0,65,115,105,97,58,75,97,116,104,109,97,110,100,117,0,65,115,105,97,58,75,111,108,107,97,116,97,0,65,115,105,97,58,77,97,99,97,111,0,65,115,105,97,58,84,101,108,95,65,118,105,118,0,65,115,105,97,58,84,104,105,109,98,117,0,65,115,105,97,58,85,106,117,110,103,95,80,97,110,100,97,110,103,0,65,115,105,97,58,85,108,97,110,95,66,97,116,111,114,0,65,115,105,97,58,89,97,110,103,111,110,0,65,116,108,97,110,116,105,99,58,70,97,114,111,101,0,65,116,108,97,110,116,105,99,58,74,97,110,95,77,97,121,101,110,0,65,117,115,116,114,97,108,105,97,58,65,67,84,0,65,117,115,116,114,97,108,105,97,58,67,97,110,98,101,114,114,97,0,65,117,115,116,114,97,108,105,97,58,67,117,114,114,105,101,0,65,117,115,116,114,97,108,105,97,58,76,72,73,0,65,117,115,116,114,97,108,105,97,58,78,83,87,0,65,117,115,116,114,97,108,105,97,58,78,111,114,116,104,0,65,117,115,116,114,97,108,105,97,58,81,117,101,101,110,115,108,97,110,100,0,65,117,115,116,114,97,108,105,97,58,83,111,117,116,104,0,65,117,115,116,114,97,108,105,97,58,84,97,115,109,97,110,105,97,0,65,117,115,116,114,97,108,105,97,58,86,105,99,116,111,114,105,97,0,65,117,115,116,114,97,108,105,97,58,87,101,115,116,0,65,117,115,116,114,97,108,105,97,58,89,97,110,99,111,119,105,110,110,97,0,66,114,97,122,105,108,58,65,99,114,101,0,66,114,97,122,105,108,58,68,101,78,111,114,111,110,104,97,0,66,114,97,122,105,108,58,69,97,115,116,0,66,114,97,122,105,108,58,87,101,115,116,0,67,97,110,97,100,97,58,65,116,108,97,110,116,105,99,0,67,97,110,97,100,97,58,67,101,110,116,114,97,108,0,67,97,110,97,100,97,58,69,97,115,116,45,83,97,115,107,97,116,99,104,101,119,97,110,0,67,97,110,97,100,97,58,69,97,115,116,101,114,110,0,67,97,110,97,100,97,58,77,111,117,110,116,97,105,110,0,67,97,110,97,100,97,58,78,101,119,102,111,117,110,100,108,97,110,100,0,67,97,110,97,100,97,58,80,97,99,105,102,105,99,0,67,97,110,97,100,97,58,83,97,115,107,97,116,99,104,101,119,97,110,0,67,97,110,97,100,97,58,89,117,107,111,110,0,67,104,105,108,101,58,67,111,110,116,105,110,101,110,116,97,108,0,67,104,105,108,101,58,69,97,115,116,101,114,73,115,108,97,110,100,0,69,116,99,58,71,77,84,43,48,0,69,116,99,58,71,77,84,45,48,0,69,116,99,58,71,77,84,48,0,69,116,99,58,71,114,101,101,110,119,105,99,104,0,69,116,99,58,85,67,84,0,69,116,99,58,85,110,105,118,101,114,115,97,108,0,69,116,99,58,90,117,108,117,0,69,117,114,111,112,101,58,66,101,108,102,97,115,116,0,69,117,114,111,112,101,58,75,121,105,118,0,69,117,114,111,112,101,58,78,105,99,111,115,105,97,0,69,117,114,111,112,101,58,84,105,114,97,115,112,111,108,0,69,117,114,111,112,101,58,85,122,104,103,111,114,111,100,0,69,117,114,111,112,101,58,90,97,112,111,114,111,122,104,121,101,0,77,101,120,105,99,111,58,66,97,106,97,78,111,114,116,101,0,77,101,120,105,99,111,58,66,97,106,97,83,117,114,0,77,101,120,105,99,111,58,71,101,110,101,114,97,108,0,80,97,99,105,102,105,99,58,67,104,117,117,107,0,80,97,99,105,102,105,99,58,74,111,104,110,115,116,111,110,0,80,97,99,105,102,105,99,58,75,97,110,116,111,110,0,80,97,99,105,102,105,99,58,80,111,104,110,112,101,105,0,80,97,99,105,102,105,99,58,83,97,109,111,97,0,80,97,99,105,102,105,99,58,89,97,112,0,85,83,58,65,108,97,115,107,97,0,85,83,58,65,108,101,117,116,105,97,110,0,85,83,58,65,114,105,122,111,110,97,0,85,83,58,67,101,110,116,114,97,108,0,85,83,58,69,97,115,116,45,73,110,100,105,97,110,97,0,85,83,58,69,97,115,116,101,114,110,0,85,83,58,72,97,119,97,105,105,0,85,83,58,73,110,100,105,97,110,97,45,83,116,97,114,107,101,0,85,83,58,77,105,99,104,105,103,97,110,0,85,83,58,77,111,117,110,116,97,105,110,0,85,83,58,80,97,99,105,102,105,99,0,85,83,58,80,97,99,105,102,105,99,45,78,101,119,0,85,83,58,83,97,109,111,97,0,67,117,98,97,0,69,83,84,0,69,103,121,112,116,0,71,66,0,71,66,45,69,105,114,101,0,72,83,84,0,72,111,110,103,107,111,110,103,0,73,99,101,108,97,110,100,0,73,114,97,110,0,73,115,114,97,101,108,0,74,97,112,97,110,0,76,105,98,121,97,0,77,83,84,0,78,90,0,78,90,45,67,72,65,84,0,78,97,118,97,106,111,0,80,82,67,0,80,111,108,97,110,100,0,80,111,114,116,117,103,97,108,0,82,79,67,0,82,79,75,0,84,117,114,107,101,121,0,87,45,83,85,0,116,121,112,101,77,97,112,0,65,102,114,105,99,97,58,65,98,105,100,106,97,110,0,65,102,114,105,99,97,58,65,99,99,114,97,0,65,102,114,105,99,97,58,65,100,100,105,115,95,65,98,97,98,97,0,65,102,114,105,99,97,58,65,108,103,105,101,114,115,0,65,102,114,105,99,97,58,66,97,109,97,107,111,0,65,102,114,105,99,97,58,66,97,110,103,117,105,0,65,102,114,105,99,97,58,66,97,110,106,117,108,0,65,102,114,105,99,97,58,66,105,115,115,97,117,0,65,102,114,105,99,97,58,66,108,97,110,116,121,114,101,0,65,102,114,105,99,97,58,66,114,97,122,122,97,118,105,108,108,101,0,65,102,114,105,99,97,58,66,117,106,117,109,98,117,114,97,0,65,102,114,105,99,97,58,67,97,105,114,111,0,65,102,114,105,99,97,58,67,97,115,97,98,108,97,110,99,97,0,65,102,114,105,99,97,58,67,101,117,116,97,0,65,102,114,105,99,97,58,67,111,110,97,107,114,121,0,65,102,114,105,99,97,58,68,97,107,97,114,0,65,102,114,105,99,97,58,68,97,114,95,101,115,95,83,97,108,97,97,109,0,65,102,114,105,99,97,58,68,106,105,98,111,117,116,105,0,65,102,114,105,99,97,58,68,111,117,97,108,97,0,65,102,114,105,99,97,58,69,108,95,65,97,105,117,110,0,65,102,114,105,99,97,58,70,114,101,101,116,111,119,110,0,65,102,114,105,99,97,58,71,97,98,111,114,111,110,101,0,65,102,114,105,99,97,58,72,97,114,97,114,101,0,65,102,114,105,99,97,58,74,111,104,97,110,110,101,115,98,117,114,103,0,65,102,114,105,99,97,58,74,117,98,97,0,65,102,114,105,99,97,58,75,97,109,112,97,108,97,0,65,102,114,105,99,97,58,75,104,97,114,116,111,117,109,0,65,102,114,105,99,97,58,75,105,103,97,108,105,0,65,102,114,105,99,97,58,75,105,110,115,104,97,115,97,0,65,102,114,105,99,97,58,76,97,103,111,115,0,65,102,114,105,99,97,58,76,105,98,114,101,118,105,108,108,101,0,65,102,114,105,99,97,58,76,111,109,101,0,65,102,114,105,99,97,58,76,117,97,110,100,97,0,65,102,114,105,99,97,58,76,117,98,117,109,98,97,115,104,105,0,65,102,114,105,99,97,58,76,117,115,97,107,97,0,65,102,114,105,99,97,58,77,97,108,97,98,111,0,65,102,114,105,99,97,58,77,97,112,117,116,111,0,65,102,114,105,99,97,58,77,97,115,101,114,117,0,65,102,114,105,99,97,58,77,98,97,98,97,110,101,0,65,102,114,105,99,97,58,77,111,103,97,100,105,115,104,117,0,65,102,114,105,99,97,58,77,111,110,114,111,118,105,97,0,65,102,114,105,99,97,58,78,97,105,114,111,98,105,0,65,102,114,105,99,97,58,78,100,106,97,109,101,110,97,0,65,102,114,105,99,97,58,78,105,97,109,101,121,0,65,102,114,105,99,97,58,78,111,117,97,107,99,104,111,116,116,0,65,102,114,105,99,97,58,79,117,97,103,97,100,111,117,103,111,117,0,65,102,114,105,99,97,58,80,111,114,116,111,45,78,111,118,111,0,65,102,114,105,99,97,58,83,97,111,95,84,111,109,101,0,65,102,114,105,99,97,58,84,114,105,112,111,108,105,0,65,102,114,105,99,97,58,84,117,110,105,115,0,65,102,114,105,99,97,58,87,105,110,100,104,111,101,107,0,65,109,101,114,105,99,97,58,65,100,97,107,0,65,109,101,114,105,99,97,58,65,110,99,104,111,114,97,103,101,0,65,109,101,114,105,99,97,58,65,110,103,117,105,108,108,97,0,65,109,101,114,105,99,97,58,65,110,116,105,103,117,97,0,65,109,101,114,105,99,97,58,65,114,97,103,117,97,105,110,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,76,97,95,82,105,111,106,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,82,105,111,95,71,97,108,108,101,103,111,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,108,116,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,74,117,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,76,117,105,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,84,117,99,117,109,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,85,115,104,117,97,105,97,0,65,109,101,114,105,99,97,58,65,114,117,98,97,0,65,109,101,114,105,99,97,58,65,115,117,110,99,105,111,110,0,65,109,101,114,105,99,97,58,66,97,104,105,97,0,65,109,101,114,105,99,97,58,66,97,104,105,97,95,66,97,110,100,101,114,97,115,0,65,109,101,114,105,99,97,58,66,97,114,98,97,100,111,115,0,65,109,101,114,105,99,97,58,66,101,108,101,109,0,65,109,101,114,105,99,97,58,66,101,108,105,122,101,0,65,109,101,114,105,99,97,58,66,108,97,110,99,45,83,97,98,108,111,110,0,65,109,101,114,105,99,97,58,66,111,97,95,86,105,115,116,97,0,65,109,101,114,105,99,97,58,66,111,103,111,116,97,0,65,109,101,114,105,99,97,58,66,111,105,115,101,0,65,109,101,114,105,99,97,58,67,97,109,98,114,105,100,103,101,95,66,97,121,0,65,109,101,114,105,99,97,58,67,97,109,112,111,95,71,114,97,110,100,101,0,65,109,101,114,105,99,97,58,67,97,110,99,117,110,0,65,109,101,114,105,99,97,58,67,97,114,97,99,97,115,0,65,109,101,114,105,99,97,58,67,97,121,101,110,110,101,0,65,109,101,114,105,99,97,58,67,97,121,109,97,110,0,65,109,101,114,105,99,97,58,67,104,105,99,97,103,111,0,65,109,101,114,105,99,97,58,67,104,105,104,117,97,104,117,97,0,65,109,101,114,105,99,97,58,67,105,117,100,97,100,95,74,117,97,114,101,122,0,65,109,101,114,105,99,97,58,67,111,115,116,97,95,82,105,99,97,0,65,109,101,114,105,99,97,58,67,114,101,115,116,111,110,0,65,109,101,114,105,99,97,58,67,117,105,97,98,97,0,65,109,101,114,105,99,97,58,67,117,114,97,99,97,111,0,65,109,101,114,105,99,97,58,68,97,110,109,97,114,107,115,104,97,118,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,95,67,114,101,101,107,0,65,109,101,114,105,99,97,58,68,101,110,118,101,114,0,65,109,101,114,105,99,97,58,68,101,116,114,111,105,116,0,65,109,101,114,105,99,97,58,68,111,109,105,110,105,99,97,0,65,109,101,114,105,99,97,58,69,100,109,111,110,116,111,110,0,65,109,101,114,105,99,97,58,69,105,114,117,110,101,112,101,0,65,109,101,114,105,99,97,58,69,108,95,83,97,108,118,97,100,111,114,0,65,109,101,114,105,99,97,58,70,111,114,116,95,78,101,108,115,111,110,0,65,109,101,114,105,99,97,58,70,111,114,116,97,108,101,122,97,0,65,109,101,114,105,99,97,58,71,108,97,99,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,111,111,115,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,114,97,110,100,95,84,117,114,107,0,65,109,101,114,105,99,97,58,71,114,101,110,97,100,97,0,65,109,101,114,105,99,97,58,71,117,97,100,101,108,111,117,112,101,0,65,109,101,114,105,99,97,58,71,117,97,116,101,109,97,108,97,0,65,109,101,114,105,99,97,58,71,117,97,121,97,113,117,105,108,0,65,109,101,114,105,99,97,58,71,117,121,97,110,97,0,65,109,101,114,105,99,97,58,72,97,108,105,102,97,120,0,65,109,101,114,105,99,97,58,72,97,118,97,110,97,0,65,109,101,114,105,99,97,58,72,101,114,109,111,115,105,108,108,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,75,110,111,120,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,77,97,114,101,110,103,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,80,101,116,101,114,115,98,117,114,103,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,84,101,108,108,95,67,105,116,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,101,118,97,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,105,110,99,101,110,110,101,115,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,87,105,110,97,109,97,99,0,65,109,101,114,105,99,97,58,73,110,117,118,105,107,0,65,109,101,114,105,99,97,58,73,113,97,108,117,105,116,0,65,109,101,114,105,99,97,58,74,97,109,97,105,99,97,0,65,109,101,114,105,99,97,58,74,117,110,101,97,117,0,65,109,101,114,105,99,97,58,75,101,110,116,117,99,107,121,58,77,111,110,116,105,99,101,108,108,111,0,65,109,101,114,105,99,97,58,75,114,97,108,101,110,100,105,106,107,0,65,109,101,114,105,99,97,58,76,97,95,80,97,122,0,65,109,101,114,105,99,97,58,76,105,109,97,0,65,109,101,114,105,99,97,58,76,111,115,95,65,110,103,101,108,101,115,0,65,109,101,114,105,99,97,58,76,111,119,101,114,95,80,114,105,110,99,101,115,0,65,109,101,114,105,99,97,58,77,97,99,101,105,111,0,65,109,101,114,105,99,97,58,77,97,110,97,103,117,97,0,65,109,101,114,105,99,97,58,77,97,110,97,117,115,0,65,109,101,114,105,99,97,58,77,97,114,105,103,111,116,0,65,109,101,114,105,99,97,58,77,97,114,116,105,110,105,113,117,101,0,65,109,101,114,105,99,97,58,77,97,116,97,109,111,114,111,115,0,65,109,101,114,105,99,97,58,77,97,122,97,116,108,97,110,0,65,109,101,114,105,99,97,58,77,101,110,111,109,105,110,101,101,0,65,109,101,114,105,99,97,58,77,101,114,105,100,97,0,65,109,101,114,105,99,97,58,77,101,116,108,97,107,97,116,108,97,0,65,109,101,114,105,99,97,58,77,101,120,105,99,111,95,67,105,116,121,0,65,109,101,114,105,99,97,58,77,105,113,117,101,108,111,110,0,65,109,101,114,105,99,97,58,77,111,110,99,116,111,110,0,65,109,101,114,105,99,97,58,77,111,110,116,101,114,114,101,121,0,65,109,101,114,105,99,97,58,77,111,110,116,101,118,105,100,101,111,0,65,109,101,114,105,99,97,58,77,111,110,116,115,101,114,114,97,116,0,65,109,101,114,105,99,97,58,78,97,115,115,97,117,0,65,109,101,114,105,99,97,58,78,101,119,95,89,111,114,107,0,65,109,101,114,105,99,97,58,78,111,109,101,0,65,109,101,114,105,99,97,58,78,111,114,111,110,104,97,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,66,101,117,108,97,104,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,67,101,110,116,101,114,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,78,101,119,95,83,97,108,101,109,0,65,109,101,114,105,99,97,58,79,106,105,110,97,103,97,0,65,109,101,114,105,99,97,58,80,97,110,97,109,97,0,65,109,101,114,105,99,97,58,80,97,114,97,109,97,114,105,98,111,0,65,109,101,114,105,99,97,58,80,104,111,101,110,105,120,0,65,109,101,114,105,99,97,58,80,111,114,116,45,97,117,45,80,114,105,110,99,101,0,65,109,101,114,105,99,97,58,80,111,114,116,95,111,102,95,83,112,97,105,110,0,65,109,101,114,105,99,97,58,80,111,114,116,111,95,86,101,108,104,111,0,65,109,101,114,105,99,97,58,80,117,101,114,116,111,95,82,105,99,111,0,65,109,101,114,105,99,97,58,80,117,110,116,97,95,65,114,101,110,97,115,0,65,109,101,114,105,99,97,58,82,97,110,107,105,110,95,73,110,108,101,116,0,65,109,101,114,105,99,97,58,82,101,99,105,102,101,0,65,109,101,114,105,99,97,58,82,101,103,105,110,97,0,65,109,101,114,105,99,97,58,82,101,115,111,108,117,116,101,0,65,109,101,114,105,99,97,58,82,105,111,95,66,114,97,110,99,111,0,65,109,101,114,105,99,97,58,83,97,110,116,97,114,101,109,0,65,109,101,114,105,99,97,58,83,97,110,116,105,97,103,111,0,65,109,101,114,105,99,97,58,83,97,110,116,111,95,68,111,109,105,110,103,111,0,65,109,101,114,105,99,97,58,83,97,111,95,80,97,117,108,111,0,65,109,101,114,105,99,97,58,83,99,111,114,101,115,98,121,115,117,110,100,0,65,109,101,114,105,99,97,58,83,105,116,107,97,0,65,109,101,114,105,99,97,58,83,116,95,66,97,114,116,104,101,108,101,109,121,0,65,109,101,114,105,99,97,58,83,116,95,74,111,104,110,115,0,65,109,101,114,105,99,97,58,83,116,95,75,105,116,116,115,0,65,109,101,114,105,99,97,58,83,116,95,76,117,99,105,97,0,65,109,101,114,105,99,97,58,83,116,95,84,104,111,109,97,115,0,65,109,101,114,105,99,97,58,83,116,95,86,105,110,99,101,110,116,0,65,109,101,114,105,99,97,58,83,119,105,102,116,95,67,117,114,114,101,110,116,0,65,109,101,114,105,99,97,58,84,101,103,117,99,105,103,97,108,112,97,0,65,109,101,114,105,99,97,58,84,104,117,108,101,0,65,109,101,114,105,99,97,58,84,105,106,117,97,110,97,0,65,109,101,114,105,99,97,58,84,111,114,111,110,116,111,0,65,109,101,114,105,99,97,58,84,111,114,116,111,108,97,0,65,109,101,114,105,99,97,58,86,97,110,99,111,117,118,101,114,0,65,109,101,114,105,99,97,58,87,104,105,116,101,104,111,114,115,101,0,65,109,101,114,105,99,97,58,87,105,110,110,105,112,101,103,0,65,109,101,114,105,99,97,58,89,97,107,117,116,97,116,0,65,110,116,97,114,99,116,105,99,97,58,67,97,115,101,121,0,65,110,116,97,114,99,116,105,99,97,58,68,97,118,105,115,0,65,110,116,97,114,99,116,105,99,97,58,68,117,109,111,110,116,68,85,114,118,105,108,108,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,99,113,117,97,114,105,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,119,115,111,110,0,65,110,116,97,114,99,116,105,99,97,58,77,99,77,117,114,100,111,0,65,110,116,97,114,99,116,105,99,97,58,80,97,108,109,101,114,0,65,110,116,97,114,99,116,105,99,97,58,82,111,116,104,101,114,97,0,65,110,116,97,114,99,116,105,99,97,58,83,121,111,119,97,0,65,110,116,97,114,99,116,105,99,97,58,84,114,111,108,108,0,65,110,116,97,114,99,116,105,99,97,58,86,111,115,116,111,107,0,65,114,99,116,105,99,58,76,111,110,103,121,101,97,114,98,121,101,110,0,65,115,105,97,58,65,100,101,110,0,65,115,105,97,58,65,108,109,97,116,121,0,65,115,105,97,58,65,109,109,97,110,0,65,115,105,97,58,65,110,97,100,121,114,0,65,115,105,97,58,65,113,116,97,117,0,65,115,105,97,58,65,113,116,111,98,101,0,65,115,105,97,58,65,115,104,103,97,98,97,116,0,65,115,105,97,58,65,116,121,114,97,117,0,65,115,105,97,58,66,97,103,104,100,97,100,0,65,115,105,97,58,66,97,104,114,97,105,110,0,65,115,105,97,58,66,97,107,117,0,65,115,105,97,58,66,97,110,103,107,111,107,0,65,115,105,97,58,66,97,114,110,97,117,108,0,65,115,105,97,58,66,101,105,114,117,116,0,65,115,105,97,58,66,105,115,104,107,101,107,0,65,115,105,97,58,66,114,117,110,101,105,0,65,115,105,97,58,67,104,105,116,97,0,65,115,105,97,58,67,104,111,105,98,97,108,115,97,110,0,65,115,105,97,58,67,111,108,111,109,98,111,0,65,115,105,97,58,68,97,109,97,115,99,117,115,0,65,115,105,97,58,68,104,97,107,97,0,65,115,105,97,58,68,105,108,105,0,65,115,105,97,58,68,117,98,97,105,0,65,115,105,97,58,68,117,115,104,97,110,98,101,0,65,115,105,97,58,70,97,109,97,103,117,115,116,97,0,65,115,105,97,58,71,97,122,97,0,65,115,105,97,58,72,101,98,114,111,110,0,65,115,105,97,58,72,111,110,103,95,75,111,110,103,0,65,115,105,97,58,72,111,118,100,0,65,115,105,97,58,73,114,107,117,116,115,107,0,65,115,105,97,58,74,97,107,97,114,116,97,0,65,115,105,97,58,74,97,121,97,112,117,114,97,0,65,115,105,97,58,74,101,114,117,115,97,108,101,109,0,65,115,105,97,58,75,97,98,117,108,0,65,115,105,97,58,75,97,109,99,104,97,116,107,97,0,65,115,105,97,58,75,97,114,97,99,104,105,0,65,115,105,97,58,75,104,97,110,100,121,103,97,0,65,115,105,97,58,75,114,97,115,110,111,121,97,114,115,107,0,65,115,105,97,58,75,117,97,108,97,95,76,117,109,112,117,114,0,65,115,105,97,58,75,117,99,104,105,110,103,0,65,115,105,97,58,75,117,119,97,105,116,0,65,115,105,97,58,77,97,99,97,117,0,65,115,105,97,58,77,97,103,97,100,97,110,0,65,115,105,97,58,77,97,107,97,115,115,97,114,0,65,115,105,97,58,77,97,110,105,108,97,0,65,115,105,97,58,77,117,115,99,97,116,0,65,115,105,97,58,78,105,99,111,115,105,97,0,65,115,105,97,58,78,111,118,111,107,117,122,110,101,116,115,107,0,65,115,105,97,58,78,111,118,111,115,105,98,105,114,115,107,0,65,115,105,97,58,79,109,115,107,0,65,115,105,97,58,79,114,97,108,0,65,115,105,97,58,80,104,110,111,109,95,80,101,110,104,0,65,115,105,97,58,80,111,110,116,105,97,110,97,107,0,65,115,105,97,58,80,121,111,110,103,121,97,110,103,0,65,115,105,97,58,81,97,116,97,114,0,65,115,105,97,58,81,111,115,116,97,110,97,121,0,65,115,105,97,58,81,121,122,121,108,111,114,100,97,0,65,115,105,97,58,82,105,121,97,100,104,0,65,115,105,97,58,83,97,107,104,97,108,105,110,0,65,115,105,97,58,83,97,109,97,114,107,97,110,100,0,65,115,105,97,58,83,101,111,117,108,0,65,115,105,97,58,83,104,97,110,103,104,97,105,0,65,115,105,97,58,83,105,110,103,97,112,111,114,101,0,65,115,105,97,58,83,114,101,100,110,101,107,111,108,121,109,115,107,0,65,115,105,97,58,84,97,105,112,101,105,0,65,115,105,97,58,84,97,115,104,107,101,110,116,0,65,115,105,97,58,84,98,105,108,105,115,105,0,65,115,105,97,58,84,101,104,114,97,110,0,65,115,105,97,58,84,104,105,109,112,104,117,0,65,115,105,97,58,84,111,107,121,111,0,65,115,105,97,58,84,111,109,115,107,0,65,115,105,97,58,85,108,97,97,110,98,97,97,116,97,114,0,65,115,105,97,58,85,114,117,109,113,105,0,65,115,105,97,58,85,115,116,45,78,101,114,97,0,65,115,105,97,58,86,105,101,110,116,105,97,110,101,0,65,115,105,97,58,86,108,97,100,105,118,111,115,116,111,107,0,65,115,105,97,58,89,97,107,117,116,115,107,0,65,115,105,97,58,89,101,107,97,116,101,114,105,110,98,117,114,103,0,65,115,105,97,58,89,101,114,101,118,97,110,0,65,116,108,97,110,116,105,99,58,65,122,111,114,101,115,0,65,116,108,97,110,116,105,99,58,66,101,114,109,117,100,97,0,65,116,108,97,110,116,105,99,58,67,97,110,97,114,121,0,65,116,108,97,110,116,105,99,58,67,97,112,101,95,86,101,114,100,101,0,65,116,108,97,110,116,105,99,58,77,97,100,101,105,114,97,0,65,116,108,97,110,116,105,99,58,82,101,121,107,106,97,118,105,107,0,65,116,108,97,110,116,105,99,58,83,111,117,116,104,95,71,101,111,114,103,105,97,0,65,116,108,97,110,116,105,99,58,83,116,95,72,101,108,101,110,97,0,65,116,108,97,110,116,105,99,58,83,116,97,110,108,101,121,0,65,117,115,116,114,97,108,105,97,58,65,100,101,108,97,105,100,101,0,65,117,115,116,114,97,108,105,97,58,66,114,105,115,98,97,110,101,0,65,117,115,116,114,97,108,105,97,58,66,114,111,107,101,110,95,72,105,108,108,0,65,117,115,116,114,97,108,105,97,58,68,97,114,119,105,110,0,65,117,115,116,114,97,108,105,97,58,69,117,99,108,97,0,65,117,115,116,114,97,108,105,97,58,72,111,98,97,114,116,0,65,117,115,116,114,97,108,105,97,58,76,105,110,100,101,109,97,110,0,65,117,115,116,114,97,108,105,97,58,76,111,114,100,95,72,111,119,101,0,65,117,115,116,114,97,108,105,97,58,77,101,108,98,111,117,114,110,101,0,65,117,115,116,114,97,108,105,97,58,80,101,114,116,104,0,65,117,115,116,114,97,108,105,97,58,83,121,100,110,101,121,0,69,116,99,58,71,77,84,0,69,116,99,58,71,77,84,43,49,0,69,116,99,58,71,77,84,43,49,48,0,69,116,99,58,71,77,84,43,49,49,0,69,116,99,58,71,77,84,43,49,50,0,69,116,99,58,71,77,84,43,50,0,69,116,99,58,71,77,84,43,51,0,69,116,99,58,71,77,84,43,52,0,69,116,99,58,71,77,84,43,53,0,69,116,99,58,71,77,84,43,54,0,69,116,99,58,71,77,84,43,55,0,69,116,99,58,71,77,84,43,56,0,69,116,99,58,71,77,84,43,57,0,69,116,99,58,71,77,84,45,49,0,69,116,99,58,71,77,84,45,49,48,0,69,116,99,58,71,77,84,45,49,49,0,69,116,99,58,71,77,84,45,49,50,0,69,116,99,58,71,77,84,45,49,51,0,69,116,99,58,71,77,84,45,49,52,0,69,116,99,58,71,77,84,45,50,0,69,116,99,58,71,77,84,45,51,0,69,116,99,58,71,77,84,45,52,0,69,116,99,58,71,77,84,45,53,0,69,116,99,58,71,77,84,45,54,0,69,116,99,58,71,77,84,45,55,0,69,116,99,58,71,77,84,45,56,0,69,116,99,58,71,77,84,45,57,0,69,116,99,58,85,84,67,0,69,116,99,58,85,110,107,110,111,119,110,0,69,117,114,111,112,101,58,65,109,115,116,101,114,100,97,109,0,69,117,114,111,112,101,58,65,110,100,111,114,114,97,0,69,117,114,111,112,101,58,65,115,116,114,97,107,104,97,110,0,69,117,114,111,112,101,58,65,116,104,101,110,115,0,69,117,114,111,112,101,58,66,101,108,103,114,97,100,101,0,69,117,114,111,112,101,58,66,101,114,108,105,110,0,69,117,114,111,112,101,58,66,114,97,116,105,115,108,97,118,97,0,69,117,114,111,112,101,58,66,114,117,115,115,101,108,115,0,69,117,114,111,112,101,58,66,117,99,104,97,114,101,115,116,0,69,117,114,111,112,101,58,66,117,100,97,112,101,115,116,0,69,117,114,111,112,101,58,66,117,115,105,110,103,101,110,0,69,117,114,111,112,101,58,67,104,105,115,105,110,97,117,0,69,117,114,111,112,101,58,67,111,112,101,110,104,97,103,101,110,0,69,117,114,111,112,101,58,68,117,98,108,105,110,0,69,117,114,111,112,101,58,71,105,98,114,97,108,116,97,114,0,69,117,114,111,112,101,58,71,117,101,114,110,115,101,121,0,69,117,114,111,112,101,58,72,101,108,115,105,110,107,105,0,69,117,114,111,112,101,58,73,115,108,101,95,111,102,95,77,97,110,0,69,117,114,111,112,101,58,73,115,116,97,110,98,117,108,0,69,117,114,111,112,101,58,74,101,114,115,101,121,0,69,117,114,111,112,101,58,75,97,108,105,110,105,110,103,114,97,100,0,69,117,114,111,112,101,58,75,105,114,111,118,0,69,117,114,111,112,101,58,76,105,115,98,111,110,0,69,117,114,111,112,101,58,76,106,117,98,108,106,97,110,97,0,69,117,114,111,112,101,58,76,111,110,100,111,110,0,69,117,114,111,112,101,58,76,117,120,101,109,98,111,117,114,103,0,69,117,114,111,112,101,58,77,97,100,114,105,100,0,69,117,114,111,112,101,58,77,97,108,116,97,0,69,117,114,111,112,101,58,77,97,114,105,101,104,97,109,110,0,69,117,114,111,112,101,58,77,105,110,115,107,0,69,117,114,111,112,101,58,77,111,110,97,99,111,0,69,117,114,111,112,101,58,77,111,115,99,111,119,0,69,117,114,111,112,101,58,79,115,108,111,0,69,117,114,111,112,101,58,80,97,114,105,115,0,69,117,114,111,112,101,58,80,111,100,103,111,114,105,99,97,0,69,117,114,111,112,101,58,80,114,97,103,117,101,0,69,117,114,111,112,101,58,82,105,103,97,0,69,117,114,111,112,101,58,82,111,109,101,0,69,117,114,111,112,101,58,83,97,109,97,114,97,0,69,117,114,111,112,101,58,83,97,110,95,77,97,114,105,110,111,0,69,117,114,111,112,101,58,83,97,114,97,106,101,118,111,0,69,117,114,111,112,101,58,83,97,114,97,116,111,118,0,69,117,114,111,112,101,58,83,105,109,102,101,114,111,112,111,108,0,69,117,114,111,112,101,58,83,107,111,112,106,101,0,69,117,114,111,112,101,58,83,111,102,105,97,0,69,117,114,111,112,101,58,83,116,111,99,107,104,111,108,109,0,69,117,114,111,112,101,58,84,97,108,108,105,110,110,0,69,117,114,111,112,101,58,84,105,114,97,110,101,0,69,117,114,111,112,101,58,85,108,121,97,110,111,118,115,107,0,69,117,114,111,112,101,58,86,97,100,117,122,0,69,117,114,111,112,101,58,86,97,116,105,99,97,110,0,69,117,114,111,112,101,58,86,105,101,110,110,97,0,69,117,114,111,112,101,58,86,105,108,110,105,117,115,0,69,117,114,111,112,101,58,86,111,108,103,111,103,114,97,100,0,69,117,114,111,112,101,58,87,97,114,115,97,119,0,69,117,114,111,112,101,58,90,97,103,114,101,98,0,69,117,114,111,112,101,58,90,117,114,105,99,104,0,73,110,100,105,97,110,58,65,110,116,97,110,97,110,97,114,105,118,111,0,73,110,100,105,97,110,58,67,104,97,103,111,115,0,73,110,100,105,97,110,58,67,104,114,105,115,116,109,97,115,0,73,110,100,105,97,110,58,67,111,99,111,115,0,73,110,100,105,97,110,58,67,111,109,111,114,111,0,73,110,100,105,97,110,58,75,101,114,103,117,101,108,101,110,0,73,110,100,105,97,110,58,77,97,104,101,0,73,110,100,105,97,110,58,77,97,108,100,105,118,101,115,0,73,110,100,105,97,110,58,77,97,117,114,105,116,105,117,115,0,73,110,100,105,97,110,58,77,97,121,111,116,116,101,0,73,110,100,105,97,110,58,82,101,117,110,105,111,110,0,80,97,99,105,102,105,99,58,65,112,105,97,0,80,97,99,105,102,105,99,58,65,117,99,107,108,97,110,100,0,80,97,99,105,102,105,99,58,66,111,117,103,97,105,110,118,105,108,108,101,0,80,97,99,105,102,105,99,58,67,104,97,116,104,97,109,0,80,97,99,105,102,105,99,58,69,97,115,116,101,114,0,80,97,99,105,102,105,99,58,69,102,97,116,101,0,80,97,99,105,102,105,99,58,70,97,107,97,111,102,111,0,80,97,99,105,102,105,99,58,70,105,106,105,0,80,97,99,105,102,105,99,58,70,117,110,97,102,117,116,105,0,80,97,99,105,102,105,99,58,71,97,108,97,112,97,103,111,115,0,80,97,99,105,102,105,99,58,71,97,109,98,105,101,114,0,80,97,99,105,102,105,99,58,71,117,97,100,97,108,99,97,110,97,108,0,80,97,99,105,102,105,99,58,71,117,97,109,0,80,97,99,105,102,105,99,58,72,111,110,111,108,117,108,117,0,80,97,99,105,102,105,99,58,75,105,114,105,116,105,109,97,116,105,0,80,97,99,105,102,105,99,58,75,111,115,114,97,101,0,80,97,99,105,102,105,99,58,75,119,97,106,97,108,101,105,110,0,80,97,99,105,102,105,99,58,77,97,106,117,114,111,0,80,97,99,105,102,105,99,58,77,97,114,113,117,101,115,97,115,0,80,97,99,105,102,105,99,58,77,105,100,119,97,121,0,80,97,99,105,102,105,99,58,78,97,117,114,117,0,80,97,99,105,102,105,99,58,78,105,117,101,0,80,97,99,105,102,105,99,58,78,111,114,102,111,108,107,0,80,97,99,105,102,105,99,58,78,111,117,109,101,97,0,80,97,99,105,102,105,99,58,80,97,103,111,95,80,97,103,111,0,80,97,99,105,102,105,99,58,80,97,108,97,117,0,80,97,99,105,102,105,99,58,80,105,116,99,97,105,114,110,0,80,97,99,105,102,105,99,58,80,111,114,116,95,77,111,114,101,115,98,121,0,80,97,99,105,102,105,99,58,82,97,114,111,116,111,110,103,97,0,80,97,99,105,102,105,99,58,83,97,105,112,97,110,0,80,97,99,105,102,105,99,58,84,97,104,105,116,105,0,80,97,99,105,102,105,99,58,84,97,114,97,119,97,0,80,97,99,105,102,105,99,58,84,111,110,103,97,116,97,112,117,0,80,97,99,105,102,105,99,58,87,97,107,101,0,80,97,99,105,102,105,99,58,87,97,108,108,105,115,0,67,83,84,54,67,68,84,0,69,83,84,53,69,68,84,0,77,83,84,55,77,68,84,0,80,83,84,56,80,68,84,0,170,170,170,0,0,103,0,109,0,116,0,0,0,117,0,110,0,107,0,0,0,117,0,116,0,99,0,0,0,99,0,97,0,116,0,111,0,114,0,0,0,99,0,110,0,115,0,104,0,97,0,0,0,117,0,97,0,105,0,101,0,118,0,0,0,97,0,117,0,104,0,98,0,97,0,0,0,99,0,97,0,101,0,100,0,109,0,0,0,99,0,97,0,105,0,113,0,108,0,0,0,99,0,97,0,119,0,110,0,112,0,0,0,99,0,110,0,117,0,114,0,99,0,0,0,109,0,120,0,116,0,105,0,106,0,0,0,110,0,122,0,97,0,107,0,108,0,0,0,117,0,115,0,100,0,101,0,110,0,0,0,117,0,115,0,104,0,110,0,108,0,0,0,97,0,100,0,97,0,108,0,118,0,0,0,97,0,101,0,100,0,120,0,98,0,0,0,97,0,102,0,107,0,98,0,108,0,0,0,97,0,103,0,97,0,110,0,117,0,0,0,97,0,105,0,97,0,120,0,97,0,0,0,97,0,108,0,116,0,105,0,97,0,0,0,97,0,109,0,101,0,118,0,110,0,0,0,97,0,110,0,99,0,117,0,114,0,0,0,97,0,111,0,108,0,97,0,100,0,0,0,97,0,113,0,99,0,97,0,115,0,0,0,97,0,113,0,100,0,97,0,118,0,0,0,97,0,113,0,100,0,100,0,117,0,0,0,97,0,113,0,109,0,97,0,119,0,0,0,97,0,113,0,109,0,99,0,109,0,0,0,97,0,113,0,112,0,108,0,109,0,0,0,97,0,113,0,114,0,111,0,116,0,0,0,97,0,113,0,115,0,121,0,119,0,0,0,97,0,113,0,116,0,114,0,108,0,0,0,97,0,113,0,118,0,111,0,115,0,0,0,97,0,114,0,98,0,117,0,101,0,0,0,97,0,114,0,99,0,111,0,114,0,0,0,97,0,114,0,99,0,116,0,99,0,0,0,97,0,114,0,105,0,114,0,106,0,0,0,97,0,114,0,106,0,117,0,106,0,0,0,97,0,114,0,108,0,117,0,113,0,0,0,97,0,114,0,109,0,100,0,122,0,0,0,97,0,114,0,114,0,103,0,108,0,0,0,97,0,114,0,115,0,108,0,97,0,0,0,97,0,114,0,116,0,117,0,99,0,0,0,97,0,114,0,117,0,97,0,113,0,0,0,97,0,114,0,117,0,115,0,104,0,0,0,97,0,115,0,112,0,112,0,103,0,0,0,97,0,116,0,118,0,105,0,101,0,0,0,97,0,117,0,97,0,100,0,108,0,0,0,97,0,117,0,98,0,104,0,113,0,0,0,97,0,117,0,98,0,110,0,101,0,0,0,97,0,117,0,100,0,114,0,119,0,0,0,97,0,117,0,101,0,117,0,99,0,0,0,97,0,117,0,108,0,100,0,99,0,0,0,97,0,117,0,108,0,100,0,104,0,0,0,97,0,117,0,109,0,101,0,108,0,0,0,97,0,117,0,109,0,113,0,105,0,0,0,97,0,117,0,112,0,101,0,114,0,0,0,97,0,117,0,115,0,121,0,100,0,0,0,97,0,119,0,97,0,117,0,97,0,0,0,97,0,122,0,98,0,97,0,107,0,0,0,98,0,97,0,115,0,106,0,106,0,0,0,98,0,98,0,98,0,103,0,105,0,0,0,98,0,100,0,100,0,97,0,99,0,0,0,98,0,101,0,98,0,114,0,117,0,0,0,98,0,102,0,111,0,117,0,97,0,0,0,98,0,103,0,115,0,111,0,102,0,0,0,98,0,104,0,98,0,97,0,104,0,0,0,98,0,105,0,98,0,106,0,109,0,0,0,98,0,106,0,112,0,116,0,110,0,0,0,98,0,109,0,98,0,100,0,97,0,0,0,98,0,110,0,98,0,119,0,110,0,0,0,98,0,111,0,108,0,112,0,98,0,0,0,98,0,113,0,107,0,114,0,97,0,0,0,98,0,114,0,97,0,117,0,120,0,0,0,98,0,114,0,98,0,101,0,108,0,0,0,98,0,114,0,98,0,118,0,98,0,0,0,98,0,114,0,99,0,103,0,98,0,0,0,98,0,114,0,99,0,103,0,114,0,0,0,98,0,114,0,101,0,114,0,110,0,0,0,98,0,114,0,102,0,101,0,110,0,0,0,98,0,114,0,102,0,111,0,114,0,0,0,98,0,114,0,109,0,97,0,111,0,0,0,98,0,114,0,109,0,99,0,122,0,0,0,98,0,114,0,112,0,118,0,104,0,0,0,98,0,114,0,114,0,98,0,114,0,0,0,98,0,114,0,114,0,101,0,99,0,0,0,98,0,114,0,115,0,97,0,111,0,0,0,98,0,114,0,115,0,115,0,97,0,0,0,98,0,114,0,115,0,116,0,109,0,0,0,98,0,115,0,110,0,97,0,115,0,0,0,98,0,116,0,116,0,104,0,105,0,0,0,98,0,119,0,103,0,98,0,101,0,0,0,98,0,121,0,109,0,115,0,113,0,0,0,98,0,122,0,98,0,122,0,101,0,0,0,99,0,97,0,99,0,102,0,113,0,0,0,99,0,97,0,102,0,110,0,101,0,0,0,99,0,97,0,103,0,108,0,98,0,0,0,99,0,97,0,103,0,111,0,111,0,0,0,99,0,97,0,104,0,97,0,108,0,0,0,99,0,97,0,109,0,111,0,110,0,0,0,99,0,97,0,114,0,101,0,98,0,0,0,99,0,97,0,114,0,101,0,103,0,0,0,99,0,97,0,115,0,106,0,102,0,0,0,99,0,97,0,118,0,97,0,110,0,0,0,99,0,97,0,121,0,98,0,120,0,0,0,99,0,97,0,121,0,99,0,98,0,0,0,99,0,97,0,121,0,100,0,97,0,0,0,99,0,97,0,121,0,100,0,113,0,0,0,99,0,97,0,121,0,101,0,107,0,0,0,99,0,97,0,121,0,101,0,118,0,0,0,99,0,97,0,121,0,120,0,121,0,0,0,99,0,97,0,121,0,121,0,110,0,0,0,99,0,97,0,121,0,122,0,115,0,0,0,99,0,99,0,99,0,99,0,107,0,0,0,99,0,100,0,102,0,98,0,109,0,0,0,99,0,100,0,102,0,105,0,104,0,0,0,99,0,102,0,98,0,103,0,102,0,0,0,99,0,103,0,98,0,122,0,118,0,0,0,99,0,104,0,122,0,114,0,104,0,0,0,99,0,105,0,97,0,98,0,106,0,0,0,99,0,107,0,114,0,97,0,114,0,0,0,99,0,108,0,105,0,112,0,99,0,0,0,99,0,108,0,112,0,117,0,113,0,0,0,99,0,108,0,115,0,99,0,108,0,0,0,99,0,109,0,100,0,108,0,97,0,0,0,99,0,111,0,98,0,111,0,103,0,0,0,99,0,114,0,115,0,106,0,111,0,0,0,99,0,117,0,104,0,97,0,118,0,0,0,99,0,118,0,114,0,97,0,105,0,0,0,99,0,120,0,120,0,99,0,104,0,0,0,99,0,121,0,102,0,109,0,103,0,0,0,99,0,121,0,110,0,105,0,99,0,0,0,99,0,122,0,112,0,114,0,103,0,0,0,100,0,101,0,98,0,101,0,114,0,0,0,100,0,106,0,106,0,105,0,98,0,0,0,100,0,107,0,99,0,112,0,104,0,0,0,100,0,109,0,100,0,111,0,109,0,0,0,100,0,111,0,115,0,100,0,113,0,0,0,100,0,122,0,97,0,108,0,103,0,0,0,101,0,99,0,103,0,112,0,115,0,0,0,101,0,99,0,103,0,121,0,101,0,0,0,101,0,101,0,116,0,108,0,108,0,0,0,101,0,103,0,99,0,97,0,105,0,0,0,101,0,104,0,101,0,97,0,105,0,0,0,101,0,114,0,97,0,115,0,109,0,0,0,101,0,115,0,99,0,101,0,117,0,0,0,101,0,115,0,108,0,112,0,97,0,0,0,101,0,115,0,109,0,97,0,100,0,0,0,101,0,116,0,97,0,100,0,100,0,0,0,102,0,105,0,104,0,101,0,108,0,0,0,102,0,105,0,109,0,104,0,113,0,0,0,102,0,106,0,115,0,117,0,118,0,0,0,102,0,107,0,112,0,115,0,121,0,0,0,102,0,109,0,107,0,115,0,97,0,0,0,102,0,109,0,112,0,110,0,105,0,0,0,102,0,109,0,116,0,107,0,107,0,0,0,102,0,111,0,116,0,104,0,111,0,0,0,102,0,114,0,112,0,97,0,114,0,0,0,103,0,97,0,108,0,98,0,118,0,0,0,103,0,98,0,108,0,111,0,110,0,0,0,103,0,100,0,103,0,110,0,100,0,0,0,103,0,101,0,116,0,98,0,115,0,0,0,103,0,102,0,99,0,97,0,121,0,0,0,103,0,103,0,103,0,99,0,105,0,0,0,103,0,104,0,97,0,99,0,99,0,0,0,103,0,105,0,103,0,105,0,98,0,0,0,103,0,108,0,103,0,111,0,104,0,0,0,103,0,108,0,111,0,98,0,121,0,0,0,103,0,108,0,116,0,104,0,117,0,0,0,103,0,109,0,98,0,106,0,108,0,0,0,103,0,110,0,99,0,107,0,121,0,0,0,103,0,112,0,98,0,98,0,114,0,0,0,103,0,112,0,109,0,115,0,98,0,0,0,103,0,112,0,115,0,98,0,104,0,0,0,103,0,113,0,115,0,115,0,103,0,0,0,103,0,114,0,97,0,116,0,104,0,0,0,103,0,115,0,103,0,114,0,118,0,0,0,103,0,116,0,103,0,117,0,97,0,0,0,103,0,117,0,103,0,117,0,109,0,0,0,103,0,119,0,111,0,120,0,98,0,0,0,103,0,121,0,103,0,101,0,111,0,0,0,104,0,107,0,104,0,107,0,103,0,0,0,104,0,110,0,116,0,103,0,117,0,0,0,104,0,114,0,122,0,97,0,103,0,0,0,104,0,116,0,112,0,97,0,112,0,0,0,104,0,117,0,98,0,117,0,100,0,0,0,105,0,100,0,100,0,106,0,106,0,0,0,105,0,100,0,106,0,107,0,116,0,0,0,105,0,100,0,109,0,97,0,107,0,0,0,105,0,100,0,112,0,110,0,107,0,0,0,105,0,101,0,100,0,117,0,98,0,0,0,105,0,109,0,100,0,103,0,115,0,0,0,105,0,110,0,99,0,99,0,117,0,0,0,105,0,111,0,100,0,103,0,97,0,0,0,105,0,113,0,98,0,103,0,119,0,0,0,105,0,114,0,116,0,104,0,114,0,0,0,105,0,115,0,114,0,101,0,121,0,0,0,105,0,116,0,114,0,111,0,109,0,0,0,106,0,101,0,115,0,116,0,104,0,0,0,106,0,109,0,107,0,105,0,110,0,0,0,106,0,111,0,97,0,109,0,109,0,0,0,106,0,112,0,116,0,121,0,111,0,0,0,107,0,101,0,110,0,98,0,111,0,0,0,107,0,103,0,102,0,114,0,117,0,0,0,107,0,104,0,112,0,110,0,104,0,0,0,107,0,105,0,99,0,120,0,105,0,0,0,107,0,105,0,112,0,104,0,111,0,0,0,107,0,105,0,116,0,114,0,119,0,0,0,107,0,109,0,121,0,118,0,97,0,0,0,107,0,110,0,98,0,97,0,115,0,0,0,107,0,112,0,102,0,110,0,106,0,0,0,107,0,114,0,115,0,101,0,108,0,0,0,107,0,119,0,107,0,119,0,105,0,0,0,107,0,121,0,103,0,101,0,99,0,0,0,107,0,122,0,97,0,97,0,117,0,0,0,107,0,122,0,97,0,107,0,120,0,0,0,107,0,122,0,97,0,108,0,97,0,0,0,107,0,122,0,103,0,117,0,119,0,0,0,107,0,122,0,107,0,115,0,110,0,0,0,107,0,122,0,107,0,122,0,111,0,0,0,107,0,122,0,117,0,114,0,97,0,0,0,108,0,97,0,118,0,116,0,101,0,0,0,108,0,98,0,98,0,101,0,121,0,0,0,108,0,99,0,99,0,97,0,115,0,0,0,108,0,105,0,118,0,100,0,122,0,0,0,108,0,107,0,99,0,109,0,98,0,0,0,108,0,114,0,109,0,108,0,119,0,0,0,108,0,115,0,109,0,115,0,117,0,0,0,108,0,116,0,118,0,110,0,111,0,0,0,108,0,117,0,108,0,117,0,120,0,0,0,108,0,118,0,114,0,105,0,120,0,0,0,108,0,121,0,116,0,105,0,112,0,0,0,109,0,97,0,99,0,97,0,115,0,0,0,109,0,99,0,109,0,111,0,110,0,0,0,109,0,100,0,107,0,105,0,118,0,0,0,109,0,101,0,116,0,103,0,100,0,0,0,109,0,103,0,116,0,110,0,114,0,0,0,109,0,104,0,107,0,119,0,97,0,0,0,109,0,104,0,109,0,97,0,106,0,0,0,109,0,107,0,115,0,107,0,112,0,0,0,109,0,108,0,98,0,107,0,111,0,0,0,109,0,109,0,114,0,103,0,110,0,0,0,109,0,110,0,99,0,111,0,113,0,0,0,109,0,110,0,104,0,118,0,100,0,0,0,109,0,110,0,117,0,108,0,110,0,0,0,109,0,111,0,109,0,102,0,109,0,0,0,109,0,112,0,115,0,112,0,110,0,0,0,109,0,113,0,102,0,100,0,102,0,0,0,109,0,114,0,110,0,107,0,99,0,0,0,109,0,115,0,109,0,110,0,105,0,0,0,109,0,116,0,109,0,108,0,97,0,0,0,109,0,117,0,112,0,108,0,117,0,0,0,109,0,118,0,109,0,108,0,101,0,0,0,109,0,119,0,98,0,108,0,122,0,0,0,109,0,120,0,99,0,104,0,105,0,0,0,109,0,120,0,99,0,106,0,115,0,0,0,109,0,120,0,99,0,117,0,110,0,0,0,109,0,120,0,104,0,109,0,111,0,0,0,109,0,120,0,109,0,97,0,109,0,0,0,109,0,120,0,109,0,101,0,120,0,0,0,109,0,120,0,109,0,105,0,100,0,0,0,109,0,120,0,109,0,116,0,121,0,0,0,109,0,120,0,109,0,122,0,116,0,0,0,109,0,120,0,111,0,106,0,105,0,0,0,109,0,120,0,112,0,118,0,114,0,0,0,109,0,121,0,107,0,99,0,104,0,0,0,109,0,121,0,107,0,117,0,108,0,0,0,109,0,122,0,109,0,112,0,109,0,0,0,110,0,97,0,119,0,100,0,104,0,0,0,110,0,99,0,110,0,111,0,117,0,0,0,110,0,101,0,110,0,105,0,109,0,0,0,110,0,102,0,110,0,108,0,107,0,0,0,110,0,103,0,108,0,111,0,115,0,0,0,110,0,105,0,109,0,103,0,97,0,0,0,110,0,108,0,97,0,109,0,115,0,0,0,110,0,111,0,111,0,115,0,108,0,0,0,110,0,112,0,107,0,116,0,109,0,0,0,110,0,114,0,105,0,110,0,117,0,0,0,110,0,117,0,105,0,117,0,101,0,0,0,110,0,122,0,99,0,104,0,116,0,0,0,111,0,109,0,109,0,99,0,116,0,0,0,112,0,97,0,112,0,116,0,121,0,0,0,112,0,101,0,108,0,105,0,109,0,0,0,112,0,102,0,103,0,109,0,114,0,0,0,112,0,102,0,110,0,104,0,118,0,0,0,112,0,102,0,112,0,112,0,116,0,0,0,112,0,103,0,112,0,111,0,109,0,0,0,112,0,103,0,114,0,97,0,119,0,0,0,112,0,104,0,109,0,110,0,108,0,0,0,112,0,107,0,107,0,104,0,105,0,0,0,112,0,108,0,119,0,97,0,119,0,0,0,112,0,109,0,109,0,113,0,99,0,0,0,112,0,110,0,112,0,99,0,110,0,0,0,112,0,114,0,115,0,106,0,117,0,0,0,112,0,116,0,102,0,110,0,99,0,0,0,112,0,116,0,108,0,105,0,115,0,0,0,112,0,116,0,112,0,100,0,108,0,0,0,112,0,119,0,114,0,111,0,114,0,0,0,112,0,121,0,97,0,115,0,117,0,0,0,113,0,97,0,100,0,111,0,104,0,0,0,114,0,101,0,114,0,101,0,117,0,0,0,114,0,111,0,98,0,117,0,104,0,0,0,114,0,115,0,98,0,101,0,103,0,0,0,114,0,117,0,97,0,115,0,102,0,0,0,114,0,117,0,98,0,97,0,120,0,0,0,114,0,117,0,100,0,121,0,114,0,0,0,114,0,117,0,103,0,100,0,120,0,0,0,114,0,117,0,105,0,107,0,116,0,0,0,114,0,117,0,107,0,103,0,100,0,0,0,114,0,117,0,107,0,114,0,97,0,0,0,114,0,117,0,107,0,117,0,102,0,0,0,114,0,117,0,107,0,118,0,120,0,0,0,114,0,117,0,109,0,111,0,119,0,0,0,114,0,117,0,110,0,111,0,122,0,0,0,114,0,117,0,111,0,109,0,115,0,0,0,114,0,117,0,111,0,118,0,98,0,0,0,114,0,117,0,112,0,107,0,99,0,0,0,114,0,117,0,114,0,116,0,119,0,0,0,114,0,117,0,116,0,111,0,102,0,0,0,114,0,117,0,117,0,108,0,121,0,0,0,114,0,117,0,117,0,117,0,115,0,0,0,114,0,117,0,118,0,111,0,103,0,0,0,114,0,117,0,118,0,118,0,111,0,0,0,114,0,117,0,121,0,101,0,107,0,0,0,114,0,117,0,121,0,107,0,115,0,0,0,114,0,119,0,107,0,103,0,108,0,0,0,115,0,97,0,114,0,117,0,104,0,0,0,115,0,98,0,104,0,105,0,114,0,0,0,115,0,99,0,109,0,97,0,119,0,0,0,115,0,100,0,107,0,114,0,116,0,0,0,115,0,101,0,115,0,116,0,111,0,0,0,115,0,103,0,115,0,105,0,110,0,0,0,115,0,104,0,115,0,104,0,110,0,0,0,115,0,105,0,108,0,106,0,117,0,0,0,115,0,106,0,108,0,121,0,114,0,0,0,115,0,107,0,98,0,116,0,115,0,0,0,115,0,108,0,102,0,110,0,97,0,0,0,115,0,109,0,115,0,97,0,105,0,0,0,115,0,110,0,100,0,107,0,114,0,0,0,115,0,111,0,109,0,103,0,113,0,0,0,115,0,114,0,112,0,98,0,109,0,0,0,115,0,115,0,106,0,117,0,98,0,0,0,115,0,116,0,116,0,109,0,115,0,0,0,115,0,118,0,115,0,97,0,108,0,0,0,115,0,120,0,112,0,104,0,105,0,0,0,115,0,121,0,100,0,97,0,109,0,0,0,115,0,122,0,113,0,109,0,110,0,0,0,116,0,99,0,103,0,100,0,116,0,0,0,116,0,100,0,110,0,100,0,106,0,0,0,116,0,102,0,112,0,102,0,114,0,0,0,116,0,103,0,108,0,102,0,119,0,0,0,116,0,104,0,98,0,107,0,107,0,0,0,116,0,106,0,100,0,121,0,117,0,0,0,116,0,107,0,102,0,107,0,111,0,0,0,116,0,108,0,100,0,105,0,108,0,0,0,116,0,109,0,97,0,115,0,98,0,0,0,116,0,110,0,116,0,117,0,110,0,0,0,116,0,111,0,116,0,98,0,117,0,0,0,116,0,114,0,105,0,115,0,116,0,0,0,116,0,116,0,112,0,111,0,115,0,0,0,116,0,118,0,102,0,117,0,110,0,0,0,116,0,119,0,116,0,112,0,101,0,0,0,116,0,122,0,100,0,97,0,114,0,0,0,117,0,97,0,115,0,105,0,112,0,0,0,117,0,103,0,107,0,108,0,97,0,0,0,117,0,109,0,97,0,119,0,107,0,0,0,117,0,109,0,109,0,100,0,121,0,0,0,117,0,115,0,97,0,100,0,107,0,0,0,117,0,115,0,97,0,101,0,103,0,0,0,117,0,115,0,97,0,110,0,99,0,0,0,117,0,115,0,98,0,111,0,105,0,0,0,117,0,115,0,99,0,104,0,105,0,0,0,117,0,115,0,100,0,101,0,116,0,0,0,117,0,115,0,105,0,110,0,100,0,0,0,117,0,115,0,106,0,110,0,117,0,0,0,117,0,115,0,107,0,110,0,120,0,0,0,117,0,115,0,108,0,97,0,120,0,0,0,117,0,115,0,108,0,117,0,105,0,0,0,117,0,115,0,109,0,110,0,109,0,0,0,117,0,115,0,109,0,111,0,99,0,0,0,117,0,115,0,109,0,116,0,109,0,0,0,117,0,115,0,110,0,121,0,99,0,0,0,117,0,115,0,111,0,101,0,97,0,0,0,117,0,115,0,111,0,109,0,101,0,0,0,117,0,115,0,112,0,104,0,120,0,0,0,117,0,115,0,115,0,105,0,116,0,0,0,117,0,115,0,116,0,101,0,108,0,0,0,117,0,115,0,119,0,108,0,122,0,0,0,117,0,115,0,119,0,115,0,113,0,0,0,117,0,115,0,120,0,117,0,108,0,0,0,117,0,115,0,121,0,97,0,107,0,0,0,117,0,121,0,109,0,118,0,100,0,0,0,117,0,122,0,115,0,107,0,100,0,0,0,117,0,122,0,116,0,97,0,115,0,0,0,118,0,97,0,118,0,97,0,116,0,0,0,118,0,99,0,115,0,118,0,100,0,0,0,118,0,101,0,99,0,99,0,115,0,0,0,118,0,103,0,116,0,111,0,118,0,0,0,118,0,105,0,115,0,116,0,116,0,0,0,118,0,110,0,115,0,103,0,110,0,0,0,118,0,117,0,118,0,108,0,105,0,0,0,119,0,102,0,109,0,97,0,117,0,0,0,119,0,115,0,97,0,112,0,119,0,0,0,121,0,101,0,97,0,100,0,101,0,0,0,121,0,116,0,109,0,97,0,109,0,0,0,122,0,97,0,106,0,110,0,98,0,0,0,122,0,109,0,108,0,117,0,110,0,0,0,122,0,119,0,104,0,114,0,101,0,0,0,104,0,101,0,98,0,114,0,111,0,110,0,0,0,114,0,117,0,115,0,114,0,101,0,100,0,0,0,117,0,116,0,99,0,101,0,48,0,49,0,0,0,117,0,116,0,99,0,101,0,48,0,50,0,0,0,117,0,116,0,99,0,101,0,48,0,51,0,0,0,117,0,116,0,99,0,101,0,48,0,52,0,0,0,117,0,116,0,99,0,101,0,48,0,53,0,0,0,117,0,116,0,99,0,101,0,48,0,54,0,0,0,117,0,116,0,99,0,101,0,48,0,55,0,0,0,117,0,116,0,99,0,101,0,48,0,56,0,0,0,117,0,116,0,99,0,101,0,48,0,57,0,0,0,117,0,116,0,99,0,101,0,49,0,48,0,0,0,117,0,116,0,99,0,101,0,49,0,49,0,0,0,117,0,116,0,99,0,101,0,49,0,50,0,0,0,117,0,116,0,99,0,101,0,49,0,51,0,0,0,117,0,116,0,99,0,101,0,49,0,52,0,0,0,117,0,116,0,99,0,119,0,48,0,49,0,0,0,117,0,116,0,99,0,119,0,48,0,50,0,0,0,117,0,116,0,99,0,119,0,48,0,51,0,0,0,117,0,116,0,99,0,119,0,48,0,52,0,0,0,117,0,116,0,99,0,119,0,48,0,53,0,0,0,117,0,116,0,99,0,119,0,48,0,54,0,0,0,117,0,116,0,99,0,119,0,48,0,55,0,0,0,117,0,116,0,99,0,119,0,48,0,56,0,0,0,117,0,116,0,99,0,119,0,48,0,57,0,0,0,117,0,116,0,99,0,119,0,49,0,48,0,0,0,117,0,116,0,99,0,119,0,49,0,49,0,0,0,117,0,116,0,99,0,119,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,0,0,99,0,115,0,116,0,54,0,99,0,100,0,116,0,0,0,100,0,101,0,98,0,115,0,110,0,103,0,110,0,0,0,101,0,115,0,116,0,53,0,101,0,100,0,116,0,0,0,106,0,101,0,114,0,117,0,115,0,108,0,109,0,0,0,109,0,115,0,116,0,55,0,109,0,100,0,116,0,0,0,112,0,115,0,116,0,56,0,112,0,100,0,116,0,0,0,114,0,117,0,99,0,104,0,105,0,116,0,97,0,0,0,114,0,117,0,107,0,104,0,110,0,100,0,103,0,0,0,114,0,117,0,117,0,110,0,101,0,114,0,97,0,0,0,117,0,115,0,105,0,110,0,118,0,101,0,118,0,0,0,117,0,115,0,110,0,100,0,99,0,110,0,116,0,0,0,117,0,115,0,110,0,100,0,110,0,115,0,108,0,0,0,103,0,97,0,122,0,97,0,115,0,116,0,114,0,112,0,0,0,103,0,108,0,100,0,107,0,115,0,104,0,118,0,110,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,55,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,48,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,105,0,103,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,110,0,103,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,121,0,105,0,118,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,117,0,117,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,111,0,108,0,107,0,97,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,97,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,117,0,117,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,114,0,105,0,112,0,111,0,108,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,104,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,114,0,111,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,97,0,110,0,116,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,116,0,114,0,111,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,113,0,97,0,108,0,117,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,104,0,105,0,115,0,105,0,110,0,97,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,104,0,110,0,112,0,101,0,105,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,116,0,105,0,107,0,111,0,107,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,95,0,67,0,104,0,105,0,95,0,77,0,105,0,110,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,68,0,97,0,114,0,119,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,77,0,101,0,108,0,98,0,111,0,117,0,114,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,75,0,110,0,111,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,97,0,108,0,95,0,72,0,97,0,114,0,98,0,111,0,117,0,114,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,111,0,107,0,101,0,110,0,95,0,72,0,105,0,108,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,17,0,48,0,54,0,60,0,66,0,72,0,78,0,84,0,90,0,96,0,102,0,108,0,114,0,119,0,126,0,132,0,138,0,144,0,67,0,31,0,49,0,13,0,13,0,43,0,13,0,37,0,19,0,19,0,55,0,197,10,61,0,25,0,25,0,79,0,73,0,19,0,170,0,184,0,205,0,223,0,245,0,5,1,21,1,42,1,56,1,75,1,91,1,105,1,119,1,132,1,144,1,160,1,172,1,190,1,205,1,250,11,243,17,158,17,249,14,106,17,157,11,214,17,82,17,186,17,132,17,170,11,25,13,94,11,78,15,55,13,106,11,85,13,131,14,162,12,144,0,228,1,242,1,2,2,33,2,61,2,94,2,120,2,144,2,170,2,187,2,200,2,217,2,236,2,9,3,37,3,53,3,70,3,86,3,99,3,119,3,138,3,158,3,174,3,195,3,212,3,232,3,247,3,11,4,33,4,48,4,63,4,78,4,89,4,101,4,118,4,132,4,145,4,160,4,173,4,184,4,198,4,210,4,229,4,245,4,1,5,16,5,35,5,49,5,68,5,85,5,99,5,113,5,129,5,150,5,166,5,185,5,204,5,219,5,240,5,252,5,13,6,25,6,37,6,53,6,68,6,93,6,108,6,124,6,144,6,159,6,179,6,192,6,210,6,176,8,181,8,185,8,197,8,229,6,239,6,249,6,2,7,16,7,24,7,38,7,47,7,62,7,74,7,89,7,105,7,121,7,191,8,194,8,119,28,233,6,243,6,253,6,6,7,202,8,206,8,215,8,223,8,228,8,76,17,235,8,182,34,241,8,247,8,139,7,156,7,171,7,251,8,254,8,6,9,13,9,186,7,200,7,217,7,232,7,248,7,6,8,17,9,24,9,33,9,37,9,26,26,41,9,20,7,18,8,28,8,40,8,51,8,62,8,78,8,89,8,99,8,117,8,129,8,141,8,152,8,167,8,139,29,28,7,48,9,42,7,8,12,22,12,17,17,129,15,129,15,147,13,36,12,19,14,38,17,118,11,131,13,231,16,231,16,36,16,252,16,115,13,115,13,211,13,243,13,17,16,181,14,147,13,131,13,176,12,115,13,201,15,164,14,215,14,50,12,222,11,222,11,235,10,222,11,46,11,163,13,82,11,78,12,64,12,246,10,206,12,209,11,92,12,95,15,196,11,67,14,171,16,147,14,147,14,198,14,191,16,147,14,112,15,112,16,93,16,198,14,211,16,83,14,60,17,17,16,35,14,183,15,251,12,227,13,181,14,191,12,115,13,164,14,61,15,219,15,191,12,55,16,44,15,70,13,236,12,215,10,144,11,106,12,85,10,85,10,85,10,85,10,93,10,93,10,93,10,236,11,34,11,183,11,99,14,34,11,34,11,236,11,236,11,85,10,85,10,85,10,85,10,85,10,23,11,10,13,74,16,70,11,206,12,3,14,12,11,255,15,221,12,225,10,131,13,10,15,151,16,215,14,115,14,176,12,222,11,131,11,232,14,237,15,100,13,147,15,131,11,148,12,120,12,58,11,1,11,40,13,163,13,93,10,165,15,118,11,51,14,179,13,231,16,27,15,232,14,252,16,195,13,176,12,131,16,131,16,147,15,93,10,93,10,134,12,93,10,195,1,61,9,76,9,89,9,108,9,170,0,123,9,137,9,151,9,165,9,179,9,195,9,214,9,231,9,244,9,6,10,19,10,34,10,47,10,68,10,84,10,98,10,114,10,130,10,146,10,160,10,180,10,192,10,207,10,223,10,237,10,253,10,10,11,28,11,40,11,54,11,72,11,86,11,100,11,114,11,128,11,143,11,160,11,176,11,191,11,207,11,221,11,239,11,2,12,20,12,36,12,51,12,64,12,80,12,93,12,111,12,128,12,144,12,162,12,189,12,220,12,244,12,15,13,42,13,68,13,94,13,108,13,125,13,139,13,162,13,179,13,193,13,208,13,229,13,247,13,6,14,184,0,20,14,42,14,63,14,78,14,205,0,94,14,110,14,125,14,141,14,159,14,223,0,245,0,181,14,200,14,216,14,231,14,247,14,12,15,27,15,48,15,63,15,79,15,96,15,113,15,130,15,150,15,170,15,188,15,5,1,206,15,224,15,243,15,3,16,22,16,40,16,58,16,73,16,89,16,104,16,123,16,144,16,168,16,195,16,221,16,243,16,13,17,21,1,37,17,52,17,68,17,42,1,84,17,99,17,127,17,146,17,161,17,174,17,56,1,194,17,216,17,231,17,247,17,6,18,22,18,41,18,59,18,75,1,76,18,94,18,109,18,128,18,148,18,165,18,181,18,199,18,218,18,237,18,252,18,13,19,26,19,42,19,70,19,98,19,129,19,145,19,160,19,179,19,195,19,218,19,240,19,4,20,24,20,45,20,66,20,81,20,96,20,113,20,132,20,149,20,166,20,188,20,206,20,227,20,241,20,7,21,24,21,41,21,58,21,76,21,95,21,117,21,137,21,151,21,167,21,183,21,199,21,217,21,236,21,253,21,13,22,30,22,47,22,73,22,94,22,112,22,131,22,149,22,168,22,185,22,202,22,220,22,240,22,250,22,6,23,17,23,29,23,40,23,52,23,66,23,78,23,91,23,104,23,114,23,127,23,140,23,152,23,165,23,91,1,177,23,188,23,204,23,217,23,231,23,242,23,252,23,7,24,21,24,36,24,46,24,58,24,73,24,83,24,96,24,109,24,123,24,138,24,149,24,164,24,105,1,177,24,191,24,208,24,226,24,239,24,251,24,6,25,19,25,33,25,45,25,57,25,70,25,88,25,105,25,115,25,125,25,141,25,156,25,171,25,182,25,196,25,119,1,211,25,132,1,223,25,237,25,252,25,7,26,21,26,36,26,55,26,67,26,81,26,94,26,106,26,119,26,130,26,141,26,158,26,170,26,184,26,199,26,216,26,229,26,248,26,5,27,21,27,38,27,54,27,144,1,74,27,91,27,110,27,133,27,152,27,169,27,188,27,207,27,229,27,246,27,6,28,23,28,42,28,62,28,82,28,98,28,221,35,229,35,115,28,123,28,133,28,144,28,155,28,166,28,176,28,186,28,196,28,206,28,216,28,226,28,236,28,246,28,0,29,11,29,22,29,33,29,44,29,55,29,65,29,75,29,85,29,95,29,105,29,115,29,125,29,135,29,143,29,155,29,172,29,187,29,204,29,218,29,234,29,248,29,10,30,26,30,43,30,59,30,75,30,91,30,109,30,123,30,140,30,156,30,172,30,191,30,207,30,221,30,160,1,240,30,253,30,11,31,28,31,42,31,60,31,74,31,87,31,104,31,117,31,131,31,145,31,157,31,170,31,187,31,201,31,213,31,225,31,239,31,1,32,17,32,32,32,50,32,64,32,77,32,94,32,109,32,123,32,140,32,153,32,168,32,182,32,197,32,214,32,228,32,242,32,0,33,20,33,34,33,51,33,64,33,78,33,95,33,107,33,123,33,140,33,155,33,237,35,245,35,170,33,183,33,200,33,221,33,237,33,252,33,172,1,10,34,26,34,39,34,56,34,74,34,90,34,110,34,123,34,140,34,159,34,174,34,192,34,207,34,225,34,240,34,254,34,11,35,27,35,42,35,60,35,74,35,190,1,91,35,112,35,130,35,145,35,160,35,175,35,205,1,193,35,206,35,203,2,217,3,121,3,61,3,97,3,161,5,185,2,247,3,51,4,239,5,191,2,147,1,85,3,113,5,103,3,253,3,237,7,125,8,37,3,233,2,91,3,225,7,35,2,139,9,127,9,255,7,137,8,183,7,159,7,179,2,97,6,181,3,53,8,133,0,173,2,133,9,21,4,67,6,83,5,29,8,243,7,77,5,189,4,41,8,85,6,209,5,129,1,153,1,5,8,107,5,89,8,73,6,155,8,167,8,109,0,103,0,183,1,217,0,241,0,247,0,3,1,229,0,253,0,9,1,93,1,253,6,11,2,49,6,111,1,189,1,47,2,113,2,195,1,239,2,173,8,199,0,119,2,207,1,1,6,73,9,211,0,205,3,255,4,179,8,245,5,251,5,161,2,205,0,245,2,53,2,201,1,127,0,206,10,125,2,131,2,73,0,185,8,49,3,37,0,213,1,11,8,59,2,225,1,65,2,229,3,71,2,35,8,193,3,3,4,39,4,73,3,57,4,77,2,251,2,7,6,203,8,161,8,25,9,13,9,173,10,245,8,19,9,191,8,143,2,43,0,171,4,223,0,197,8,227,8,177,1,171,1,157,6,209,8,215,8,17,8,237,1,103,6,231,1,9,4,203,5,13,6,37,6,235,0,221,8,25,6,233,8,19,6,211,6,83,2,31,6,43,9,215,5,23,2,239,8,251,8,219,1,31,9,181,10,189,10,43,6,151,6,249,7,1,9,81,4,107,8,243,1,223,6,221,2,137,2,255,1,95,2,89,2,249,1,17,2,227,2,55,3,5,2,235,3,7,9,15,4,101,2,231,4,59,5,85,9,67,9,155,2,69,4,241,3,61,0,13,0,79,9,107,2,149,2,49,0,37,9,139,0,145,0,151,0,75,1,157,0,163,0,169,0,175,0,181,0,187,0,193,0,213,7,115,9,17,5,177,4,39,7,5,5,11,5,83,8,23,5,141,4,141,1,99,1,59,8,33,7,53,5,195,4,165,1,129,4,149,10,173,5,71,5,23,8,117,1,77,8,91,0,65,8,13,3,197,10,145,9,63,4,179,5,51,7,99,4,93,4,125,10,97,0,105,7,199,6,121,6,157,10,63,7,61,6,55,6,249,4,191,5,45,7,105,4,193,6,145,6,19,3,87,7,99,7,93,7,41,5,201,4,111,4,237,4,3,7,29,5,35,5,167,5,165,7,91,9,129,7,49,9,243,4,19,0,195,7,152,9,119,8,55,9,199,3,147,4,29,2,183,4,117,7,185,5,55,0,165,10,47,5,141,7,153,7,147,7,121,0,241,6,159,1,109,3,1,3,169,3,229,6,153,4,33,4,201,7,145,3,27,1,39,1,33,1,45,1,51,1,31,0,57,1,63,1,69,1,81,1,87,1,101,10,117,10,1,0,1,10,64,10,71,10,78,10,8,10,15,10,22,10,29,10,36,10,43,10,50,10,57,10,159,9,222,9,229,9,236,9,243,9,250,9,166,9,173,9,180,9,187,9,194,9,201,9,208,9,215,9,9,0,5,0,109,6,85,0,27,7,27,4,21,7,31,3,219,7,123,1,15,7,87,4,109,10,125,5,43,3,117,4,223,3,211,3,127,3,123,4,101,8,165,4,57,7,25,0,75,7,235,6,207,7,187,3,95,5,115,3,221,5,133,3,41,2,119,5,81,7,115,6,175,3,131,5,25,3,101,5,159,4,69,7,231,7,105,1,111,7,131,8,155,5,135,1,189,7,79,3,115,0,123,7,65,5,61,9,21,1,89,5,135,7,205,6,75,4,197,2,137,5,135,4,7,3,167,2,225,4,47,8,177,7,233,5,227,5,121,9,9,7,133,10,141,10,109,9,67,0,187,6,139,6,215,2,97,9,213,4,71,8,139,3,113,8,67,3,163,6,171,7,45,4,79,0,207,4,151,3,143,5,149,5,169,6,149,8,127,6,133,6,91,6,79,6,15,1,247,6,217,6,157,3,181,6,209,2,197,5,175,6,219,4,95,8,163,3,143,8,103,9,1,0,45,0,18,18,0,80,1,0,161,0,53,18,0,80,1,0,161,0,92,18,0,80,1,0,161,0,125,19,0,80,4,0,32,0,153,0,218,1,53,9,170,170,130,20,0,32,132,20,0,32,134,20,0,32,136,20,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,238,15,0,32,7,0,0,0,136,2,0,0,246,15,0,0,246,15,0,0,113,0,0,0,1,0,0,0,158,11,0,0,99,108,100,114,86,101,114,115,105,111,110,0,99,111,110,118,101,114,116,85,110,105,116,115,0,49,48,48,45,107,105,108,111,109,101,116,101,114,0,102,97,99,116,111,114,0,116,97,114,103,101,116,0,97,99,114,101,0,97,114,99,45,109,105,110,117,116,101,0,97,114,99,45,115,101,99,111,110,100,0,97,115,116,114,111,110,111,109,105,99,97,108,45,117,110,105,116,0,97,116,109,111,115,112,104,101,114,101,0,98,97,114,0,98,97,114,114,101,108,0,98,105,116,0,98,114,105,116,105,115,104,45,116,104,101,114,109,97,108,45,117,110,105,116,0,98,117,115,104,101,108,0,98,121,116,101,0,99,97,110,100,101,108,97,0,99,97,114,97,116,0,99,101,108,115,105,117,115,0,111,102,102,115,101,116,0,99,101,110,116,117,114,121,0,99,117,112,0,99,117,112,45,109,101,116,114,105,99,0,100,97,108,116,111,110,0,100,97,121,0,100,97,121,45,112,101,114,115,111,110,0,100,101,99,97,100,101,0,100,101,103,114,101,101,0,100,101,115,115,101,114,116,45,115,112,111,111,110,0,100,101,115,115,101,114,116,45,115,112,111,111,110,45,105,109,112,101,114,105,97,108,0,100,111,116,0,100,114,97,109,0,100,114,111,112,0,100,117,110,97,109,0,101,97,114,116,104,45,109,97,115,115,0,101,97,114,116,104,45,114,97,100,105,117,115,0,101,108,101,99,116,114,111,110,118,111,108,116,0,102,97,104,114,101,110,104,101,105,116,0,102,97,116,104,111,109,0,102,108,117,105,100,45,111,117,110,99,101,0,102,108,117,105,100,45,111,117,110,99,101,45,105,109,112,101,114,105,97,108,0,102,111,111,100,99,97,108,111,114,105,101,0,102,111,111,116,0,102,117,114,108,111,110,103,0,103,45,102,111,114,99,101,0,103,97,108,108,111,110,0,103,97,108,108,111,110,45,105,109,112,101,114,105,97,108,0,103,114,97,105,110,0,104,101,99,116,97,114,101,0,104,101,114,116,122,0,104,111,114,115,101,112,111,119,101,114,0,104,111,117,114,0,105,116,101,109,0,106,105,103,103,101,114,0,106,111,117,108,101,0,107,97,114,97,116,0,107,101,108,118,105,110,0,107,110,111,116,0,108,105,103,104,116,45,121,101,97,114,0,108,105,116,101,114,0,108,117,109,101,110,0,108,117,120,0,109,105,108,101,45,115,99,97,110,100,105,110,97,118,105,97,110,0,109,111,110,116,104,0,109,111,110,116,104,45,112,101,114,115,111,110,0,110,97,117,116,105,99,97,108,45,109,105,108,101,0,110,101,119,116,111,110,0,111,102,103,108,117,99,111,115,101,0,111,102,104,103,0,111,104,109,0,111,117,110,99,101,45,116,114,111,121,0,112,97,114,115,101,99,0,112,97,115,99,97,108,0,112,101,114,99,101,110,116,0,112,101,114,109,105,108,108,101,0,112,101,114,109,105,108,108,105,111,110,0,112,101,114,109,121,114,105,97,100,0,112,105,110,99,104,0,112,105,110,116,0,112,105,110,116,45,109,101,116,114,105,99,0,112,105,120,101,108,0,112,111,105,110,116,0,112,111,114,116,105,111,110,0,112,111,117,110,100,0,112,111,117,110,100,45,102,111,114,99,101,0,113,117,97,114,116,0,113,117,97,114,116,45,105,109,112,101,114,105,97,108,0,113,117,97,114,116,101,114,0,114,97,100,105,97,110,0,115,111,108,97,114,45,108,117,109,105,110,111,115,105,116,121,0,115,111,108,97,114,45,109,97,115,115,0,115,111,108,97,114,45,114,97,100,105,117,115,0,115,116,111,110,101,0,116,97,98,108,101,115,112,111,111,110,0,116,101,97,115,112,111,111,110,0,116,104,101,114,109,45,117,115,0,116,111,110,110,101,0,119,97,116,116,0,119,101,101,107,0,119,101,101,107,45,112,101,114,115,111,110,0,121,97,114,100,0,121,101,97,114,45,112,101,114,115,111,110,0,117,110,105,116,67,111,110,115,116,97,110,116,115,0,80,73,0,102,116,50,95,116,111,95,109,50,0,102,116,51,95,116,111,95,109,51,0,102,116,95,116,111,95,109,0,103,97,108,95,105,109,112,95,116,111,95,109,51,0,103,97,108,95,116,111,95,109,51,0,103,108,117,99,111,115,101,95,109,111,108,97,114,95,109,97,115,115,0,103,114,97,118,105,116,121,0,105,110,51,95,116,111,95,109,51,0,105,116,101,109,95,112,101,114,95,109,111,108,101,0,108,98,95,116,111,95,107,103,0,109,101,116,101,114,115,95,112,101,114,95,65,85,0,115,101,99,95,112,101,114,95,106,117,108,105,97,110,95,121,101,97,114,0,115,112,101,101,100,95,111,102,95,108,105,103,104,116,95,109,101,116,101,114,115,95,112,101,114,95,115,101,99,111,110,100,0,117,110,105,116,80,114,101,102,101,114,101,110,99,101,68,97,116,97,0,97,114,101,97,0,100,101,102,97,117,108,116,0,48,48,49,0,71,66,0,85,83,0,103,101,111,103,114,97,112,104,0,108,97,110,100,0,99,111,110,99,101,110,116,114,97,116,105,111,110,0,98,108,111,111,100,45,103,108,117,99,111,115,101,0,65,71,0,65,73,0,65,79,0,66,65,0,66,71,0,66,72,0,66,77,0,66,78,0,66,87,0,66,89,0,67,65,0,67,72,0,67,77,0,67,78,0,67,90,0,68,75,0,68,77,0,69,69,0,70,73,0,70,74,0,71,68,0,72,75,0,72,82,0,72,85,0,73,69,0,73,77,0,73,83,0,75,69,0,75,78,0,75,87,0,75,90,0,76,67,0,76,73,0,76,84,0,76,85,0,76,86,0,77,69,0,77,71,0,77,75,0,77,79,0,77,83,0,77,84,0,77,85,0,77,89,0,77,90,0,78,65,0,78,76,0,78,79,0,78,90,0,79,77,0,80,71,0,82,83,0,82,85,0,83,69,0,83,71,0,83,73,0,83,75,0,84,67,0,84,79,0,85,65,0,85,71,0,86,67,0,86,71,0,86,78,0,86,85,0,90,65,0,99,111,110,115,117,109,112,116,105,111,110,0,118,101,104,105,99,108,101,45,102,117,101,108,0,66,82,0,73,84,0,74,80,0,75,82,0,77,88,0,84,72,0,84,82,0,109,101,100,105,97,0,101,110,101,114,103,121,0,102,111,111,100,0,102,111,99,97,108,45,108,101,110,103,116,104,0,73,78,0,112,101,114,115,111,110,45,104,101,105,103,104,116,0,65,84,0,66,69,0,103,101,113,0,68,90,0,69,71,0,69,83,0,70,82,0,73,68,0,73,76,0,74,79,0,83,65,0,114,97,105,110,102,97,108,108,0,114,111,97,100,0,115,107,101,108,101,116,111,110,0,115,110,111,119,102,97,108,108,0,118,101,104,105,99,108,101,0,118,105,115,105,98,108,116,121,0,68,69,0,109,97,115,115,45,100,101,110,115,105,116,121,0,101,110,103,105,110,101,0,112,114,101,115,115,117,114,101,0,98,97,114,111,109,116,114,99,0,115,112,101,101,100,0,119,105,110,100,0,80,76,0,116,101,109,112,101,114,97,116,117,114,101,0,119,101,97,116,104,101,114,0,66,83,0,66,90,0,75,89,0,80,82,0,80,87,0,118,111,108,117,109,101,0,102,108,117,105,100,0,111,105,108,0,121,101,97,114,45,100,117,114,97,116,105,111,110,0,112,101,114,115,111,110,45,97,103,101,0,117,110,105,116,81,117,97,110,116,105,116,105,101,115,0,99,97,110,100,101,108,97,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,0,99,97,110,100,101,108,97,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,0,107,105,108,111,103,114,97,109,45,112,101,114,45,107,105,108,111,103,114,97,109,0,107,105,108,111,103,114,97,109,45,112,101,114,45,99,117,98,105,99,45,109,101,116,101,114,0,107,105,108,111,103,114,97,109,45,112,101,114,45,109,101,116,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,99,117,98,105,99,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,99,117,98,105,99,45,115,101,99,111,110,100,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,99,117,98,105,99,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,0,99,117,98,105,99,45,109,101,116,101,114,45,112,101,114,45,107,105,108,111,103,114,97,109,0,99,117,98,105,99,45,109,101,116,101,114,45,112,101,114,45,109,101,116,101,114,0,109,101,116,101,114,45,112,101,114,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,112,111,119,52,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,45,112,101,114,45,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,0,99,117,98,105,99,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,45,112,101,114,45,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,0,97,109,112,101,114,101,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,0,97,109,112,101,114,101,45,112,101,114,45,109,101,116,101,114,0,115,113,117,97,114,101,45,114,101,118,111,108,117,116,105,111,110,0,114,101,118,111,108,117,116,105,111,110,45,112,101,114,45,109,101,116,101,114,0,114,101,118,111,108,117,116,105,111,110,45,112,101,114,45,115,101,99,111,110,100,0,105,116,101,109,45,112,101,114,45,107,105,108,111,103,114,97,109,0,105,116,101,109,45,112,101,114,45,99,117,98,105,99,45,109,101,116,101,114,0,112,105,120,101,108,45,112,101,114,45,109,101,116,101,114,0,0,0,52,0,50,0,0,0,51,0,46,0,48,0,0,0,48,0,46,0,53,0,0,0,98,0,105,0,116,0,0,0,116,0,111,0,110,0,0,0,48,0,46,0,49,0,0,0,48,0,46,0,57,0,0,0,49,0,47,0,52,0,0,0,50,0,46,0,53,0,0,0,99,0,117,0,112,0,0,0,100,0,97,0,121,0,0,0,97,0,99,0,114,0,101,0,0,0,121,0,97,0,114,0,100,0,0,0,105,0,116,0,101,0,109,0,0,0,49,0,47,0,49,0,50,0,0,0,49,0,47,0,50,0,52,0,0,0,49,0,56,0,53,0,50,0,0,0,52,0,49,0,56,0,52,0,0,0,97,0,114,0,101,0,97,0,0,0,100,0,111,0,115,0,101,0,0,0,112,0,105,0,110,0,116,0,0,0,48,0,46,0,48,0,48,0,49,0,0,0,49,0,48,0,48,0,46,0,48,0,0,0,51,0,48,0,48,0,46,0,48,0,0,0,56,0,54,0,52,0,48,0,48,0,0,0,112,0,105,0,120,0,101,0,108,0,0,0,49,0,47,0,49,0,48,0,48,0,0,0,49,0,47,0,51,0,54,0,48,0,0,0,52,0,46,0,49,0,56,0,52,0,0,0,102,0,111,0,114,0,99,0,101,0,0,0,109,0,111,0,110,0,116,0,104,0,0,0,113,0,117,0,97,0,114,0,116,0,0,0,115,0,112,0,101,0,101,0,100,0,0,0,116,0,111,0,110,0,110,0,101,0,0,0,107,0,101,0,108,0,118,0,105,0,110,0,0,0,49,0,47,0,49,0,48,0,48,0,48,0,0,0,49,0,48,0,48,0,48,0,48,0,48,0,0,0,54,0,48,0,52,0,56,0,48,0,48,0,0,0,48,0,46,0,48,0,48,0,48,0,50,0,0,0,48,0,46,0,48,0,48,0,48,0,53,0,0,0,48,0,46,0,51,0,48,0,52,0,56,0,0,0,49,0,47,0,50,0,42,0,80,0,73,0,0,0,49,0,48,0,49,0,51,0,50,0,53,0,0,0,50,0,55,0,51,0,46,0,49,0,53,0,0,0,98,0,97,0,114,0,114,0,101,0,108,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,0,0,109,0,105,0,110,0,117,0,116,0,101,0,0,0,112,0,111,0,114,0,116,0,105,0,111,0,110,0,0,0,49,0,47,0,49,0,48,0,48,0,48,0,48,0,0,0,99,0,101,0,108,0,115,0,105,0,117,0,115,0,0,0,104,0,101,0,99,0,116,0,97,0,114,0,101,0,0,0,48,0,46,0,48,0,48,0,48,0,50,0,53,0,0,0,57,0,46,0,56,0,48,0,54,0,54,0,53,0,0,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,0,0,118,0,111,0,108,0,116,0,97,0,103,0,101,0,0,0,109,0,105,0,108,0,108,0,105,0,98,0,97,0,114,0,0,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,0,0,49,0,47,0,51,0,54,0,48,0,42,0,54,0,48,0,0,0,49,0,56,0,48,0,46,0,49,0,53,0,53,0,55,0,0,0,51,0,49,0,53,0,53,0,55,0,54,0,48,0,48,0,0,0,54,0,46,0,51,0,55,0,56,0,49,0,69,0,54,0,0,0,103,0,105,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,0,0,109,0,101,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,0,0,116,0,101,0,97,0,115,0,112,0,111,0,111,0,110,0,0,0,105,0,110,0,99,0,104,0,45,0,111,0,102,0,104,0,103,0,0,0,109,0,105,0,99,0,114,0,111,0,103,0,114,0,97,0,109,0,0,0,49,0,56,0,53,0,50,0,47,0,51,0,54,0,48,0,48,0,0,0,50,0,57,0,57,0,55,0,57,0,50,0,52,0,53,0,56,0,0,0,49,0,47,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,0,0,49,0,48,0,53,0,52,0,56,0,48,0,52,0,48,0,48,0,0,0,50,0,50,0,57,0,56,0,46,0,51,0,53,0,47,0,57,0,0,0,51,0,46,0,56,0,50,0,56,0,69,0,43,0,50,0,54,0,0,0,54,0,57,0,53,0,55,0,48,0,48,0,48,0,48,0,48,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,51,0,0,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,0,0,109,0,105,0,108,0,108,0,105,0,119,0,97,0,116,0,116,0,0,0,116,0,121,0,112,0,101,0,119,0,105,0,100,0,116,0,104,0,0,0,102,0,97,0,104,0,114,0,101,0,110,0,104,0,101,0,105,0,116,0,0,0,114,0,101,0,118,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,0,0,104,0,111,0,114,0,115,0,101,0,112,0,111,0,119,0,101,0,114,0,0,0,109,0,105,0,108,0,108,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,99,0,117,0,98,0,105,0,99,0,45,0,102,0,111,0,111,0,116,0,0,0,99,0,117,0,98,0,105,0,99,0,45,0,105,0,110,0,99,0,104,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,48,0,46,0,48,0,48,0,52,0,53,0,52,0,54,0,48,0,57,0,0,0,48,0,46,0,48,0,51,0,49,0,49,0,48,0,51,0,52,0,56,0,0,0,48,0,46,0,52,0,53,0,51,0,53,0,57,0,50,0,51,0,55,0,0,0,53,0,46,0,57,0,55,0,50,0,50,0,69,0,43,0,50,0,52,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,47,0,49,0,50,0,0,0,109,0,101,0,103,0,97,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,110,0,97,0,110,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,114,0,101,0,115,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,0,0,116,0,97,0,98,0,108,0,101,0,115,0,112,0,111,0,111,0,110,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,105,0,108,0,101,0,0,0,109,0,105,0,99,0,114,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,54,0,46,0,54,0,55,0,52,0,48,0,56,0,69,0,45,0,49,0,49,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,104,0,101,0,99,0,116,0,111,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,115,0,111,0,108,0,105,0,100,0,45,0,97,0,110,0,103,0,108,0,101,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,54,0,54,0,48,0,0,0,49,0,46,0,57,0,56,0,56,0,52,0,55,0,69,0,43,0,51,0,48,0,0,0,49,0,47,0,51,0,54,0,48,0,42,0,54,0,48,0,42,0,54,0,48,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,0,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,102,0,111,0,111,0,100,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,32,0,42,0,32,0,54,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,47,0,56,0,54,0,52,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,52,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,56,0,0,0,105,0,108,0,108,0,117,0,109,0,105,0,110,0,97,0,110,0,99,0,101,0,0,0,107,0,105,0,108,0,111,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,42,0,49,0,52,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,47,0,49,0,54,0,0,0,109,0,105,0,108,0,108,0,105,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,0,0,119,0,97,0,118,0,101,0,45,0,110,0,117,0,109,0,98,0,101,0,114,0,0,0,121,0,101,0,97,0,114,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,52,0,50,0,42,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,49,0,46,0,54,0,48,0,50,0,49,0,55,0,55,0,69,0,45,0,49,0,57,0,0,0,49,0,52,0,57,0,53,0,57,0,55,0,56,0,55,0,48,0,55,0,48,0,48,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,53,0,50,0,56,0,48,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,0,0,109,0,97,0,115,0,115,0,45,0,100,0,101,0,110,0,115,0,105,0,116,0,121,0,0,0,102,0,111,0,111,0,116,0,45,0,97,0,110,0,100,0,45,0,105,0,110,0,99,0,104,0,0,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,121,0,101,0,97,0,114,0,45,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,0,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,45,0,104,0,111,0,117,0,114,0,0,0,50,0,51,0,49,0,42,0,105,0,110,0,51,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,97,0,116,0,105,0,111,0,110,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,50,0,53,0,54,0,0,0,105,0,116,0,101,0,109,0,95,0,112,0,101,0,114,0,95,0,109,0,111,0,108,0,101,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,42,0,50,0,48,0,48,0,48,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,47,0,55,0,48,0,48,0,48,0,0,0,108,0,117,0,109,0,105,0,110,0,111,0,117,0,115,0,45,0,102,0,108,0,117,0,120,0,0,0,109,0,97,0,103,0,110,0,101,0,116,0,105,0,99,0,45,0,102,0,108,0,117,0,120,0,0,0,109,0,97,0,115,0,115,0,45,0,102,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,0,0,109,0,101,0,116,0,101,0,114,0,115,0,95,0,112,0,101,0,114,0,95,0,65,0,85,0,0,0,54,0,46,0,48,0,50,0,50,0,49,0,52,0,48,0,55,0,54,0,69,0,43,0,50,0,51,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,97,0,110,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,115,0,116,0,111,0,110,0,101,0,45,0,97,0,110,0,100,0,45,0,112,0,111,0,117,0,110,0,100,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,104,0,103,0,0,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,0,0,49,0,51,0,53,0,57,0,53,0,46,0,49,0,42,0,103,0,114,0,97,0,118,0,105,0,116,0,121,0,0,0,115,0,112,0,101,0,99,0,105,0,102,0,105,0,99,0,45,0,118,0,111,0,108,0,117,0,109,0,101,0,0,0,99,0,117,0,114,0,114,0,101,0,110,0,116,0,45,0,100,0,101,0,110,0,115,0,105,0,116,0,121,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,104,0,97,0,114,0,103,0,101,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,52,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,42,0,56,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,42,0,52,0,56,0,0,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,117,0,98,0,105,0,99,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,117,0,114,0,114,0,101,0,110,0,116,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,42,0,49,0,50,0,56,0,0,0,115,0,117,0,98,0,115,0,116,0,97,0,110,0,99,0,101,0,45,0,97,0,109,0,111,0,117,0,110,0,116,0,0,0,105,0,116,0,101,0,109,0,45,0,112,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,49,0,46,0,52,0,57,0,50,0,52,0,49,0,56,0,48,0,56,0,53,0,54,0,48,0,69,0,45,0,49,0,48,0,0,0,50,0,49,0,53,0,48,0,46,0,52,0,50,0,42,0,105,0,110,0,51,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,102,0,116,0,50,0,95,0,116,0,111,0,95,0,109,0,50,0,32,0,42,0,32,0,52,0,51,0,53,0,54,0,48,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,48,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,42,0,51,0,47,0,49,0,50,0,56,0,42,0,50,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,42,0,49,0,50,0,56,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,42,0,53,0,55,0,54,0,0,0,109,0,105,0,108,0,101,0,45,0,115,0,99,0,97,0,110,0,100,0,105,0,110,0,97,0,118,0,105,0,97,0,110,0,0,0,109,0,105,0,110,0,117,0,116,0,101,0,45,0,97,0,110,0,100,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,52,0,46,0,49,0,56,0,52,0,42,0,50,0,50,0,54,0,55,0,46,0,57,0,54,0,49,0,56,0,53,0,47,0,57,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,97,0,115,0,115,0,0,0,102,0,116,0,51,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,42,0,49,0,50,0,42,0,49,0,50,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,32,0,42,0,32,0,103,0,114,0,97,0,118,0,105,0,116,0,121,0,0,0,108,0,117,0,109,0,105,0,110,0,111,0,117,0,115,0,45,0,105,0,110,0,116,0,101,0,110,0,115,0,105,0,116,0,121,0,0,0,109,0,97,0,103,0,110,0,101,0,116,0,105,0,99,0,45,0,105,0,110,0,100,0,117,0,99,0,116,0,105,0,111,0,110,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,111,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,108,0,105,0,116,0,101,0,114,0,0,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,101,0,114,0,45,0,108,0,101,0,110,0,103,0,116,0,104,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,105,0,110,0,100,0,117,0,99,0,116,0,97,0,110,0,99,0,101,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,114,0,101,0,115,0,105,0,115,0,116,0,97,0,110,0,99,0,101,0,0,0,109,0,101,0,116,0,101,0,114,0,45,0,97,0,110,0,100,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,105,0,116,0,101,0,109,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,97,0,112,0,97,0,99,0,105,0,116,0,97,0,110,0,99,0,101,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,111,0,110,0,100,0,117,0,99,0,116,0,97,0,110,0,99,0,101,0,0,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,42,0,49,0,50,0,56,0,0,0,112,0,114,0,101,0,99,0,105,0,115,0,105,0,111,0,110,0,45,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,47,0,49,0,0,0,52,0,49,0,49,0,53,0,53,0,55,0,57,0,56,0,55,0,32,0,47,0,32,0,49,0,51,0,49,0,48,0,48,0,50,0,57,0,55,0,54,0,0,0,114,0,101,0,118,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,112,0,114,0,101,0,99,0,105,0,115,0,105,0,111,0,110,0,45,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,47,0,49,0,48,0,0,0,112,0,114,0,101,0,99,0,105,0,115,0,105,0,111,0,110,0,45,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,47,0,53,0,48,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,0,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,109,0,97,0,103,0,110,0,101,0,116,0,105,0,99,0,45,0,102,0,105,0,101,0,108,0,100,0,45,0,115,0,116,0,114,0,101,0,110,0,103,0,116,0,104,0,0,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,109,0,101,0,116,0,101,0,114,0,115,0,95,0,112,0,101,0,114,0,95,0,65,0,85,0,42,0,54,0,48,0,42,0,54,0,48,0,42,0,49,0,56,0,48,0,47,0,80,0,73,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,121,0,101,0,97,0,114,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,45,0,97,0,110,0,100,0,45,0,109,0,111,0,110,0,116,0,104,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,32,0,42,0,32,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,32,0,42,0,32,0,103,0,114,0,97,0,118,0,105,0,116,0,121,0,32,0,42,0,32,0,53,0,53,0,48,0,0,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,49,0,48,0,48,0,48,0,42,0,105,0,116,0,101,0,109,0,95,0,112,0,101,0,114,0,95,0,109,0,111,0,108,0,101,0,47,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,95,0,109,0,111,0,108,0,97,0,114,0,95,0,109,0,97,0,115,0,115,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,45,220,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,45,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,52,220,115,0,112,0,101,0,101,0,100,0,95,0,111,0,102,0,95,0,108,0,105,0,103,0,104,0,116,0,95,0,109,0,101,0,116,0,101,0,114,0,115,0,95,0,112,0,101,0,114,0,95,0,115,0,101,0,99,0,111,0,110,0,100,0,42,0,115,0,101,0,99,0,95,0,112,0,101,0,114,0,95,0,106,0,117,0,108,0,105,0,97,0,110,0,95,0,121,0,101,0,97,0,114,0,0,0,52,220,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,2,0,71,0,78,0,186,0,228,7,2,0,71,0,78,0,191,6,155,10,2,0,71,0,78,0,25,3,217,11,2,0,71,0,78,0,97,1,82,2,2,0,71,0,78,0,87,3,82,2,2,0,71,0,78,0,68,5,228,7,2,0,71,0,78,0,228,0,251,9,2,0,71,0,78,0,186,0,251,9,2,0,71,0,78,0,23,4,68,8,2,0,71,0,78,0,25,3,12,0,2,0,71,0,78,0,80,7,245,10,2,0,71,0,78,0,173,6,68,8,2,0,71,0,78,0,225,1,12,0,2,0,71,0,78,0,136,0,245,10,2,0,71,0,78,0,25,3,55,1,2,0,71,0,78,0,200,0,128,6,3,0,71,0,211,0,78,0,25,3,235,0,172,0,2,0,71,0,78,0,126,0,165,11,2,0,71,0,78,0,88,4,68,8,2,0,71,0,78,0,39,1,68,8,2,0,71,0,78,0,155,6,245,10,2,0,71,0,78,0,112,0,8,3,2,0,71,0,78,0,112,0,8,3,2,0,71,0,78,0,250,8,165,11,2,0,71,0,78,0,130,0,82,2,2,0,71,0,78,0,85,6,68,8,2,0,71,0,78,0,143,8,68,8,2,0,71,0,78,0,25,3,118,0,2,0,71,0,78,0,241,5,68,8,2,0,71,0,78,0,7,7,68,8,2,0,71,0,78,0,181,0,155,10,2,0,71,0,78,0,181,2,128,6,2,0,71,0,78,0,124,1,228,7,2,0,71,0,78,0,36,4,245,10,2,0,71,0,78,0,25,3,56,0,3,0,71,0,211,0,78,0,95,7,247,1,172,0,2,0,71,0,78,0,135,3,228,7,2,0,71,0,78,0,212,4,68,8,2,0,71,0,78,0,209,6,68,8,2,0,71,0,78,0,74,0,245,10,2,0,71,0,78,0,36,9,228,7,2,0,71,0,78,0,63,3,228,7,2,0,71,0,78,0,169,5,37,10,2,0,71,0,78,0,26,4,68,8,2,0,71,0,78,0,198,4,68,8,2,0,71,0,78,0,12,5,128,6,2,0,71,0,78,0,94,0,128,6,2,0,71,0,78,0,17,1,155,10,2,0,71,0,78,0,25,3,208,8,2,0,71,0,78,0,95,10,206,10,2,0,71,0,78,0,212,1,8,3,2,0,71,0,78,0,192,2,228,7,2,0,71,0,78,0,25,3,54,0,2,0,71,0,78,0,227,6,68,8,2,0,71,0,78,0,25,3,245,10,2,0,71,0,78,0,64,0,7,1,2,0,71,0,78,0,25,3,172,0,2,0,71,0,78,0,25,3,128,6,2,0,71,0,78,0,207,1,17,6,2,0,71,0,78,0,116,11,228,7,2,0,71,0,78,0,94,0,68,8,2,0,71,0,78,0,25,3,130,10,2,0,71,0,78,0,25,3,117,9,2,0,71,0,78,0,25,3,228,7,2,0,71,0,78,0,75,4,228,7,2,0,71,0,78,0,17,1,228,7,2,0,71,0,78,0,72,3,8,3,2,0,71,0,78,0,240,4,54,0,2,0,71,0,78,0,59,0,165,11,2,0,71,0,78,0,59,0,165,11,2,0,71,0,78,0,69,0,228,7,2,0,71,0,78,0,25,3,28,10,2,0,71,0,78,0,168,10,119,6,2,0,71,0,78,0,161,5,29,11,2,0,71,0,78,0,25,3,170,11,2,0,71,0,78,0,219,3,128,6,2,0,71,0,78,0,159,2,128,6,2,0,71,0,78,0,167,9,228,7,2,0,71,0,78,0,25,3,251,9,2,0,71,0,78,0,124,0,7,1,2,0,71,0,78,0,179,0,7,1,2,0,71,0,78,0,227,1,7,1,2,0,71,0,78,0,15,1,7,1,2,0,71,0,78,0,245,6,68,8,2,0,71,0,78,0,171,3,68,8,2,0,71,0,78,0,207,0,68,8,2,0,71,0,78,0,25,3,118,0,2,0,71,0,78,0,147,3,228,7,2,0,71,0,78,0,25,3,7,1,2,0,71,0,78,0,151,1,128,6,2,0,71,0,78,0,137,7,28,10,2,0,71,0,78,0,159,3,68,8,2,0,71,0,78,0,225,5,68,8,2,0,71,0,78,0,28,0,165,11,2,0,71,0,78,0,221,0,82,2,2,0,71,0,78,0,25,3,82,2,2,0,71,0,78,0,25,3,8,3,2,0,71,0,78,0,1,2,206,10,2,0,71,0,78,0,75,3,128,6,2,0,71,0,78,0,11,2,228,7,2,0,71,0,78,0,207,3,128,6,2,0,71,0,78,0,226,4,68,8,2,0,71,0,78,0,1,6,68,8,2,0,71,0,78,0,237,1,245,10,2,0,71,0,78,0,254,4,128,6,2,0,71,0,78,0,181,0,128,6,2,0,71,0,78,0,25,3,69,11,2,0,71,0,78,0,25,3,206,10,2,0,71,0,78,0,193,0,8,3,2,0,71,0,78,0,193,0,8,3,2,0,71,0,78,0,31,2,228,7,2,0,71,0,78,0,25,3,165,11,2,0,71,0,78,0,25,3,165,11,15,0,122,5,181,3,184,3,194,3,204,3,212,3,226,3,236,3,255,3,7,4,17,4,31,4,40,4,54,4,74,4,15,3,186,8,28,9,20,9,214,0,148,2,170,4,106,1,47,1,118,7,82,5,170,2,49,4,115,1,217,1,1,0,172,0,34,6,1,0,172,0,31,1,1,0,172,0,155,10,1,0,172,0,137,6,1,0,172,0,247,2,1,0,172,0,44,0,1,0,172,0,27,3,1,0,172,0,210,9,1,0,172,0,247,2,1,0,172,0,44,0,1,0,172,0,27,3,1,0,172,0,210,9,1,0,172,0,34,6,1,0,172,0,247,2,1,0,172,0,247,2,1,0,172,0,31,1,1,0,172,0,44,0,1,0,172,0,44,0,1,0,172,0,61,10,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,59,8,1,0,172,0,44,9,1,0,172,0,44,9,1,0,172,0,214,7,1,0,172,0,92,9,1,0,172,0,92,9,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,145,5,1,0,172,0,40,0,1,0,172,0,165,4,1,0,172,0,0,1,1,0,172,0,8,3,1,0,172,0,231,3,1,0,172,0,3,3,1,0,172,0,214,2,1,0,172,0,43,7,1,0,172,0,8,3,1,0,172,0,156,4,1,0,172,0,195,3,1,0,172,0,123,3,1,0,172,0,224,7,1,0,172,0,228,7,1,0,172,0,144,6,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,217,9,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,217,9,1,0,172,0,137,2,1,0,172,0,144,6,1,0,172,0,217,9,1,0,172,0,217,9,1,0,172,0,217,9,1,0,172,0,217,9,1,0,172,0,144,6,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,137,2,1,0,172,0,144,6,1,0,172,0,217,9,2,0,233,5,172,0,24,0,224,7,3,0,233,5,19,6,172,0,106,0,253,8,228,7,3,0,233,5,19,6,172,0,250,8,230,8,228,7,2,0,19,6,172,0,164,8,228,7,2,0,233,5,172,0,8,0,254,2,3,0,233,5,19,6,172,0,100,0,253,8,49,0,3,0,233,5,19,6,172,0,250,8,230,8,49,0,2,0,19,6,172,0,164,8,49,0,1,0,172,0,25,7,1,0,172,0,224,7,3,0,233,5,19,6,172,0,106,0,253,8,228,7,3,0,233,5,19,6,172,0,250,8,230,8,228,7,2,0,19,6,172,0,164,8,228,7,2,0,233,5,172,0,8,0,254,2,3,0,233,5,19,6,172,0,100,0,253,8,34,3,3,0,233,5,19,6,172,0,250,8,230,8,34,3,2,0,19,6,172,0,164,8,34,3,1,0,172,0,144,6,1,0,172,0,217,9,1,0,172,0,228,7,1,0,172,0,114,4,1,0,172,0,114,4,2,0,233,5,172,0,20,0,224,7,1,0,172,0,228,7,1,0,172,0,228,7,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,228,7,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,166,0,1,0,172,0,128,6,1,0,172,0,202,1,1,0,172,0,41,2,1,0,172,0,197,1,1,0,172,0,16,0,1,0,172,0,123,5,1,0,172,0,107,5,1,0,172,0,16,0,1,0,172,0,123,5,1,0,172,0,107,5,1,0,172,0,128,6,1,0,172,0,202,1,1,0,172,0,113,5,1,0,172,0,97,5,1,0,172,0,97,5,1,0,172,0,123,5,1,0,172,0,97,5,1,0,172,0,142,9,1,0,172,0,133,1,1,0,172,0,160,1,1,0,172,0,88,1,1,0,172,0,92,1,1,0,172,0,51,2,1,0,172,0,88,1,1,0,172,0,93,2,1,0,172,0,93,2,1,0,172,0,39,3,1,0,172,0,79,1,1,0,172,0,79,1,1,0,172,0,79,1,1,0,172,0,79,1,1,0,172,0,187,1,1,0,172,0,129,5,1,0,172,0,129,5,1,0,172,0,79,1,1,0,172,0,187,1,1,0,172,0,203,2,1,0,172,0,44,3,1,0,172,0,194,9,1,0,172,0,194,9,1,0,172,0,61,7,1,0,172,0,128,4,1,0,172,0,128,4,1,0,172,0,61,7,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,128,4,1,0,172,0,23,1,1,0,172,0,71,2,1,0,172,0,23,1,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,68,8,1,0,172,0,51,6,1,0,172,0,115,2,1,0,172,0,126,2,1,0,172,0,115,2,1,0,172,0,126,2,1,0,172,0,109,2,1,0,172,0,104,2,1,0,172,0,101,9,1,0,172,0,122,8,1,0,172,0,154,5,1,0,172,0,154,0,1,0,172,0,89,0,1,0,172,0,36,0,1,0,172,0,111,3,1,0,172,0,236,2,1,0,172,0,178,1,1,0,172,0,242,0,1,0,172,0,109,2,1,0,172,0,154,5,1,0,172,0,165,11,1,0,172,0,148,0,2,0,233,5,172,0,32,0,11,4,1,0,172,0,222,9,1,0,172,0,238,9,1,0,189,0,156,7,1,0,201,6,183,3,1,0,226,6,26,5,1,0,194,8,201,10,1,0,8,7,54,5,1,0,30,7,101,4,1,0,55,7,169,1,1,0,88,7,175,7,1,0,122,7,142,0,1,0,155,7,98,2,1,0,194,7,71,1,1,0,240,7,18,8,1,0,37,8,249,0,1,0,77,8,40,5,1,0,124,8,254,7,1,0,4,10,186,5,1,0,178,8,177,5,1,0,203,8,99,3,1,0,251,6,79,0,1,0,46,8,84,0,1,0,65,0,247,7,1,0,225,8,160,0,1,0,131,7,62,4,1,0,242,8,234,7,1,0,26,9,80,8,1,0,78,9,101,8,1,0,100,4,147,4,1,0,110,8,209,5,1,0,69,4,142,4,1,0,171,8,68,6,1,0,131,9,193,5,1,0,155,9,68,9,1,0,26,2,243,3,1,0,172,9,51,3,1,0,179,9,57,3,1,0,190,9,255,3,1,0,211,9,21,2,1,0,2,2,102,6,1,0,233,9,99,7,1,0,251,9,184,4,1,0,240,2,7,1,1,0,152,0,63,1,1,0,228,2,142,1,1,0,16,10,225,2,1,0,4,2,61,2,113,0,57,0,85,0,171,8,90,0,101,0,112,0,130,0,141,0,145,0,152,0,156,0,177,0,184,0,170,1,189,0,197,0,203,0,218,0,226,0,230,0,241,0,248,0,252,0,7,1,14,1,21,1,35,1,58,1,62,1,67,1,72,1,78,1,89,1,102,1,4,2,115,1,126,1,133,1,145,1,166,1,178,1,183,1,191,1,199,1,206,1,222,1,198,8,228,1,236,1,242,1,253,1,206,2,2,2,7,2,14,2,20,2,26,2,194,8,33,2,38,2,49,2,55,2,61,2,65,0,111,2,65,2,94,0,26,4,83,2,89,2,102,2,116,2,123,2,133,2,138,2,139,1,142,2,153,2,160,2,167,2,175,2,184,2,195,2,205,2,211,2,216,2,228,2,234,2,240,2,248,2,254,2,10,3,16,3,31,3,39,3,179,9,100,4,46,3,63,3,74,3,87,3,93,3,104,3,113,3,119,2,122,3,110,1,128,3,133,3,138,3,150,3,69,4,155,3,224,11,0,80,229,11,0,80,234,11,0,80,239,11,0,80,244,11,0,80,249,11,0,80,254,11,0,80,3,12,0,80,8,12,0,80,13,12,0,80,18,12,0,80,23,12,0,80,28,12,0,80,33,12,0,80,38,12,0,80,43,12,0,80,48,12,0,80,55,12,0,80,60,12,0,80,65,12,0,80,70,12,0,80,75,12,0,80,80,12,0,80,85,12,0,80,90,12,0,80,95,12,0,80,100,12,0,80,105,12,0,80,110,12,0,80,115,12,0,80,120,12,0,80,125,12,0,80,130,12,0,80,135,12,0,80,140,12,0,80,145,12,0,80,152,12,0,80,157,12,0,80,162,12,0,80,167,12,0,80,172,12,0,80,177,12,0,80,182,12,0,80,187,12,0,80,192,12,0,80,197,12,0,80,202,12,0,80,207,12,0,80,212,12,0,80,217,12,0,80,222,12,0,80,227,12,0,80,232,12,0,80,237,12,0,80,242,12,0,80,247,12,0,80,252,12,0,80,1,13,0,80,6,13,0,80,11,13,0,80,16,13,0,80,21,13,0,80,26,13,0,80,31,13,0,80,36,13,0,80,41,13,0,80,46,13,0,80,51,13,0,80,56,13,0,80,61,13,0,80,66,13,0,80,71,13,0,80,76,13,0,80,81,13,0,80,86,13,0,80,91,13,0,80,96,13,0,80,101,13,0,80,106,13,0,80,111,13,0,80,116,13,0,80,121,13,0,80,126,13,0,80,131,13,0,80,136,13,0,80,141,13,0,80,146,13,0,80,151,13,0,80,156,13,0,80,161,13,0,80,166,13,0,80,171,13,0,80,176,13,0,80,181,13,0,80,186,13,0,80,191,13,0,80,196,13,0,80,201,13,0,80,206,13,0,80,211,13,0,80,216,13,0,80,221,13,0,80,226,13,0,80,231,13,0,80,236,13,0,80,241,13,0,80,246,13,0,80,251,13,0,80,0,14,0,80,5,14,0,80,10,14,0,80,15,14,0,80,20,14,0,80,4,0,0,0,56,14,0,80,59,14,0,80,62,14,0,80,65,14,0,80,4,0,0,0,68,14,0,80,71,14,0,80,74,14,0,80,77,14,0,80,4,0,0,0,80,14,0,80,83,14,0,80,86,14,0,80,89,14,0,80,3,0,139,4,143,4,146,4,72,12,0,128,77,12,0,128,82,12,0,128,1,0,0,0,92,14,0,80,1,0,0,0,95,14,0,80,1,0,0,0,98,14,0,80,3,0,139,4,143,4,146,4,92,12,0,128,94,12,0,128,96,12,0,128,1,0,0,0,101,14,0,80,1,0,0,0,104,14,0,80,1,0,0,0,107,14,0,80,3,0,139,4,143,4,146,4,103,12,0,128,105,12,0,128,107,12,0,128,3,0,131,4,149,4,158,4,87,12,0,32,98,12,0,32,109,12,0,32,1,0,0,0,110,14,0,80,1,0,0,0,113,14,0,80,1,0,0,0,116,14,0,80,1,0,0,0,119,14,0,80,1,0,0,0,122,14,0,80,1,0,0,0,125,14,0,80,1,0,0,0,128,14,0,80,1,0,0,0,131,14,0,80,1,0,0,0,134,14,0,80,1,0,0,0,137,14,0,80,1,0,0,0,140,14,0,80,1,0,0,0,143,14,0,80,1,0,0,0,146,14,0,80,1,0,0,0,149,14,0,80,1,0,0,0,152,14,0,80,1,0,0,0,155,14,0,80,1,0,0,0,158,14,0,80,1,0,0,0,161,14,0,80,1,0,0,0,164,14,0,80,1,0,0,0,167,14,0,80,1,0,0,0,170,14,0,80,1,0,0,0,173,14,0,80,1,0,0,0,176,14,0,80,1,0,0,0,179,14,0,80,1,0,0,0,182,14,0,80,1,0,0,0,185,14,0,80,1,0,0,0,188,14,0,80,1,0,0,0,191,14,0,80,1,0,0,0,194,14,0,80,1,0,0,0,197,14,0,80,1,0,0,0,200,14,0,80,1,0,0,0,203,14,0,80,1,0,0,0,206,14,0,80,1,0,0,0,209,14,0,80,1,0,0,0,212,14,0,80,1,0,0,0,215,14,0,80,1,0,0,0,218,14,0,80,1,0,0,0,221,14,0,80,1,0,0,0,224,14,0,80,1,0,0,0,227,14,0,80,1,0,0,0,230,14,0,80,1,0,0,0,233,14,0,80,1,0,0,0,236,14,0,80,1,0,0,0,239,14,0,80,1,0,0,0,242,14,0,80,1,0,0,0,245,14,0,80,1,0,0,0,248,14,0,80,1,0,0,0,251,14,0,80,1,0,0,0,254,14,0,80,1,0,0,0,1,15,0,80,1,0,0,0,4,15,0,80,1,0,0,0,7,15,0,80,1,0,0,0,10,15,0,80,1,0,0,0,13,15,0,80,1,0,0,0,16,15,0,80,1,0,0,0,19,15,0,80,1,0,0,0,22,15,0,80,1,0,0,0,25,15,0,80,1,0,0,0,28,15,0,80,1,0,0,0,31,15,0,80,1,0,0,0,34,15,0,80,1,0,0,0,37,15,0,80,1,0,0,0,40,15,0,80,1,0,0,0,43,15,0,80,1,0,0,0,46,15,0,80,1,0,0,0,49,15,0,80,1,0,0,0,52,15,0,80,1,0,0,0,55,15,0,80,1,0,0,0,58,15,0,80,69,0,139,4,191,4,194,4,197,4,51,4,200,4,203,4,206,4,209,4,212,4,215,4,218,4,221,4,224,4,227,4,230,4,233,4,236,4,239,4,242,4,245,4,248,4,143,4,251,4,254,4,1,5,4,5,7,5,10,5,13,5,16,5,19,5,22,5,25,5,28,5,31,5,34,5,37,5,40,5,43,5,46,5,49,5,52,5,55,5,58,5,61,5,64,5,67,5,70,5,73,5,76,5,79,5,82,5,85,5,88,5,91,5,94,5,97,5,100,5,103,5,106,5,109,5,112,5,115,5,118,5,121,5,124,5,127,5,130,5,119,12,0,128,121,12,0,128,123,12,0,128,125,12,0,128,127,12,0,128,129,12,0,128,131,12,0,128,133,12,0,128,135,12,0,128,137,12,0,128,139,12,0,128,141,12,0,128,143,12,0,128,145,12,0,128,147,12,0,128,149,12,0,128,151,12,0,128,153,12,0,128,155,12,0,128,157,12,0,128,159,12,0,128,161,12,0,128,163,12,0,128,165,12,0,128,167,12,0,128,169,12,0,128,171,12,0,128,173,12,0,128,175,12,0,128,177,12,0,128,179,12,0,128,181,12,0,128,183,12,0,128,185,12,0,128,187,12,0,128,189,12,0,128,191,12,0,128,193,12,0,128,195,12,0,128,197,12,0,128,199,12,0,128,201,12,0,128,203,12,0,128,205,12,0,128,207,12,0,128,209,12,0,128,211,12,0,128,213,12,0,128,215,12,0,128,217,12,0,128,219,12,0,128,221,12,0,128,223,12,0,128,225,12,0,128,227,12,0,128,229,12,0,128,231,12,0,128,233,12,0,128,235,12,0,128,237,12,0,128,239,12,0,128,241,12,0,128,243,12,0,128,245,12,0,128,247,12,0,128,249,12,0,128,251,12,0,128,253,12,0,128,255,12,0,128,1,0,0,0,61,15,0,80,1,0,139,4,105,13,0,128,2,0,177,4,131,4,170,170,1,13,0,32,107,13,0,32,1,0,0,0,64,15,0,80,1,0,139,4,113,13,0,128,1,0,0,0,67,15,0,80,1,0,0,0,70,15,0,80,1,0,0,0,73,15,0,80,1,0,0,0,76,15,0,80,1,0,0,0,79,15,0,80,1,0,0,0,82,15,0,80,1,0,0,0,85,15,0,80,1,0,0,0,88,15,0,80,1,0,0,0,91,15,0,80,1,0,0,0,94,15,0,80,1,0,0,0,97,15,0,80,1,0,0,0,100,15,0,80,1,0,0,0,103,15,0,80,13,0,139,4,158,5,221,4,143,4,161,5,164,5,167,5,170,5,64,5,73,5,173,5,176,5,146,4,117,13,0,128,119,13,0,128,121,13,0,128,123,13,0,128,125,13,0,128,127,13,0,128,129,13,0,128,131,13,0,128,133,13,0,128,135,13,0,128,137,13,0,128,139,13,0,128,141,13,0,128,2,0,131,4,145,5,170,170,115,13,0,32,143,13,0,32,7,0,0,0,106,15,0,80,109,15,0,80,112,15,0,80,115,15,0,80,118,15,0,80,121,15,0,80,124,15,0,80,1,0,139,4,167,13,0,128,2,0,0,0,127,15,0,80,130,15,0,80,1,0,139,4,177,13,0,128,2,0,131,4,179,5,170,170,175,13,0,32,180,13,0,32,1,0,0,0,133,15,0,80,1,0,139,4,186,13,0,128,1,0,0,0,136,15,0,80,1,0,0,0,139,15,0,80,2,0,139,4,146,4,170,170,190,13,0,128,192,13,0,128,2,0,131,4,192,5,170,170,188,13,0,32,194,13,0,32,3,0,0,0,142,15,0,80,145,15,0,80,148,15,0,80,3,0,0,0,151,15,0,80,154,15,0,80,157,15,0,80,3,0,0,0,160,15,0,80,163,15,0,80,166,15,0,80,3,0,139,4,143,4,146,4,202,13,0,128,206,13,0,128,210,13,0,128,1,0,0,0,169,15,0,80,1,0,139,4,219,13,0,128,1,0,0,0,172,15,0,80,1,0,0,0,175,15,0,80,1,0,0,0,178,15,0,80,1,0,0,0,181,15,0,80,1,0,0,0,184,15,0,80,5,0,139,4,221,4,143,4,210,5,146,4,223,13,0,128,225,13,0,128,227,13,0,128,229,13,0,128,231,13,0,128,1,0,0,0,187,15,0,80,1,0,0,0,190,15,0,80,1,0,0,0,193,15,0,80,2,0,0,0,196,15,0,80,201,15,0,80,1,0,0,0,204,15,0,80,1,0,0,0,207,15,0,80,1,0,0,0,210,15,0,80,1,0,0,0,213,15,0,80,2,0,0,0,216,15,0,80,221,15,0,80,1,0,0,0,224,15,0,80,1,0,0,0,227,15,0,80,1,0,0,0,230,15,0,80,2,0,0,0,233,15,0,80,238,15,0,80,1,0,0,0,241,15,0,80,1,0,0,0,244,15,0,80,1,0,0,0,247,15,0,80,1,0,0,0,250,15,0,80,1,0,0,0,253,15,0,80,1,0,0,0,0,16,0,80,2,0,0,0,3,16,0,80,8,16,0,80,1,0,0,0,11,16,0,80,21,0,139,4,227,5,230,5,221,4,237,5,240,5,243,5,246,5,143,4,254,4,249,5,252,5,210,5,161,5,255,5,64,5,2,6,94,5,176,5,146,4,124,5,241,13,0,128,243,13,0,128,245,13,0,128,247,13,0,128,250,13,0,128,252,13,0,128,254,13,0,128,0,14,0,128,2,14,0,128,5,14,0,128,7,14,0,128,9,14,0,128,11,14,0,128,14,14,0,128,16,14,0,128,18,14,0,128,20,14,0,128,22,14,0,128,24,14,0,128,26,14,0,128,29,14,0,128,1,0,0,0,14,16,0,80,1,0,0,0,17,16,0,80,1,0,0,0,20,16,0,80,3,0,139,4,158,5,146,4,63,14,0,128,65,14,0,128,67,14,0,128,4,0,0,0,23,16,0,80,28,16,0,80,35,16,0,80,42,16,0,80,4,0,0,0,47,16,0,80,52,16,0,80,59,16,0,80,66,16,0,80,5,0,0,0,71,16,0,80,74,16,0,80,77,16,0,80,84,16,0,80,91,16,0,80,4,0,0,0,96,16,0,80,101,16,0,80,108,16,0,80,115,16,0,80,4,0,139,4,143,4,94,5,146,4,170,170,74,14,0,128,79,14,0,128,84,14,0,128,90,14,0,128,1,0,0,0,120,16,0,80,1,0,0,0,123,16,0,80,2,0,139,4,146,4,170,170,102,14,0,128,104,14,0,128,1,0,0,0,126,16,0,80,1,0,0,0,129,16,0,80,1,0,0,0,132,16,0,80,3,0,139,4,143,4,146,4,110,14,0,128,112,14,0,128,114,14,0,128,2,0,0,0,135,16,0,80,140,16,0,80,1,0,0,0,143,16,0,80,2,0,0,0,146,16,0,80,149,16,0,80,1,0,0,0,152,16,0,80,2,0,0,0,155,16,0,80,158,16,0,80,5,0,139,4,54,6,143,4,73,5,146,4,121,14,0,128,124,14,0,128,126,14,0,128,129,14,0,128,131,14,0,128,9,0,131,4,197,5,0,1,213,5,5,6,14,6,28,6,37,6,45,6,214,13,0,32,221,13,0,32,233,13,0,32,31,14,0,32,69,14,0,32,95,14,0,32,106,14,0,32,116,14,0,32,134,14,0,32,5,0,0,0,161,16,0,80,164,16,0,80,167,16,0,80,170,16,0,80,173,16,0,80,3,0,0,0,176,16,0,80,179,16,0,80,182,16,0,80,3,0,0,0,185,16,0,80,188,16,0,80,191,16,0,80,3,0,139,4,143,4,146,4,156,14,0,128,162,14,0,128,166,14,0,128,2,0,0,0,194,16,0,80,197,16,0,80,2,0,0,0,200,16,0,80,203,16,0,80,1,0,0,0,206,16,0,80,2,0,0,0,209,16,0,80,212,16,0,80,4,0,139,4,143,4,254,4,146,4,170,170,175,14,0,128,178,14,0,128,181,14,0,128,183,14,0,128,2,0,131,4,0,1,170,170,170,14,0,32,186,14,0,32,1,0,0,0,215,16,0,80,1,0,139,4,197,14,0,128,1,0,131,4,199,14,0,32,5,0,0,0,218,16,0,80,221,16,0,80,224,16,0,80,227,16,0,80,230,16,0,80,1,0,139,4,203,14,0,128,1,0,0,0,233,16,0,80,1,0,0,0,236,16,0,80,1,0,0,0,239,16,0,80,3,0,139,4,143,4,146,4,211,14,0,128,213,14,0,128,215,14,0,128,2,0,131,4,70,6,170,170,209,14,0,32,217,14,0,32,1,0,0,0,242,16,0,80,1,0,0,0,245,16,0,80,1,0,0,0,248,16,0,80,1,0,0,0,251,16,0,80,1,0,0,0,254,16,0,80,1,0,0,0,1,17,0,80,1,0,0,0,4,17,0,80,1,0,0,0,7,17,0,80,1,0,0,0,10,17,0,80,1,0,0,0,13,17,0,80,10,0,139,4,158,5,240,5,143,4,252,5,210,5,170,5,91,5,173,5,146,4,170,170,226,14,0,128,228,14,0,128,230,14,0,128,232,14,0,128,234,14,0,128,236,14,0,128,238,14,0,128,240,14,0,128,242,14,0,128,244,14,0,128,2,0,0,0,16,17,0,80,19,17,0,80,1,0,0,0,22,17,0,80,1,0,0,0,25,17,0,80,3,0,139,4,143,4,146,4,6,15,0,128,9,15,0,128,11,15,0,128,2,0,86,6,131,4,170,170,246,14,0,32,13,15,0,32,1,0,0,0,28,17,0,80,1,0,0,0,31,17,0,80,1,0,0,0,34,17,0,80,3,0,139,4,143,4,146,4,22,15,0,128,24,15,0,128,26,15,0,128,1,0,0,0,37,17,0,80,1,0,0,0,40,17,0,80,1,0,0,0,43,17,0,80,1,0,0,0,46,17,0,80,1,0,0,0,49,17,0,80,1,0,0,0,52,17,0,80,1,0,0,0,55,17,0,80,1,0,0,0,58,17,0,80,8,0,139,4,245,4,167,5,76,5,106,6,91,5,94,5,146,4,170,170,33,15,0,128,35,15,0,128,37,15,0,128,39,15,0,128,41,15,0,128,43,15,0,128,45,15,0,128,47,15,0,128,2,0,131,4,101,6,170,170,28,15,0,32,49,15,0,32,1,0,0,0,61,17,0,80,1,0,0,0,64,17,0,80,2,0,139,4,146,4,170,170,66,15,0,128,68,15,0,128,1,0,0,0,67,17,0,80,1,0,0,0,70,17,0,80,1,0,0,0,73,17,0,80,1,0,0,0,76,17,0,80,1,0,0,0,79,17,0,80,1,0,0,0,82,17,0,80,1,0,0,0,85,17,0,80,7,0,139,4,129,6,132,6,135,6,138,6,141,6,146,4,74,15,0,128,76,15,0,128,78,15,0,128,80,15,0,128,82,15,0,128,84,15,0,128,86,15,0,128,2,0,131,4,121,6,170,170,70,15,0,32,88,15,0,32,2,0,0,0,88,17,0,80,91,17,0,80,2,0,0,0,94,17,0,80,97,17,0,80,2,0,0,0,100,17,0,80,103,17,0,80,3,0,139,4,143,4,146,4,103,15,0,128,106,15,0,128,109,15,0,128,2,0,0,0,106,17,0,80,109,17,0,80,2,0,0,0,112,17,0,80,115,17,0,80,7,0,0,0,118,17,0,80,121,17,0,80,124,17,0,80,127,17,0,80,130,17,0,80,133,17,0,80,136,17,0,80,3,0,139,4,143,4,146,4,117,15,0,128,120,15,0,128,123,15,0,128,1,0,0,0,139,17,0,80,1,0,139,4,136,15,0,128,1,0,0,0,142,17,0,80,1,0,0,0,145,17,0,80,2,0,139,4,146,4,170,170,140,15,0,128,142,15,0,128,4,0,131,4,151,6,157,6,37,6,170,170,112,15,0,32,131,15,0,32,138,15,0,32,144,15,0,32,2,0,0,0,148,17,0,80,151,17,0,80,1,0,139,4,155,15,0,128,3,0,0,0,154,17,0,80,159,17,0,80,162,17,0,80,1,0,139,4,160,15,0,128,2,0,131,4,175,6,170,170,158,15,0,32,164,15,0,32,14,0,126,4,163,4,133,5,166,6,185,5,203,5,250,3,57,6,247,1,77,6,95,6,109,6,144,6,161,6,170,170,114,12,0,32,109,13,0,32,163,13,0,32,182,13,0,32,198,13,0,32,142,14,0,32,193,14,0,32,201,14,0,32,222,14,0,32,18,15,0,32,62,15,0,32,99,15,0,32,148,15,0,32,166,15,0,32,45,0,0,0,165,17,0,80,168,17,0,80,171,17,0,80,174,17,0,80,177,17,0,80,180,17,0,80,183,17,0,80,186,17,0,80,189,17,0,80,192,17,0,80,195,17,0,80,198,17,0,80,201,17,0,80,204,17,0,80,207,17,0,80,210,17,0,80,213,17,0,80,216,17,0,80,219,17,0,80,222,17,0,80,225,17,0,80,228,17,0,80,231,17,0,80,234,17,0,80,237,17,0,80,240,17,0,80,243,17,0,80,246,17,0,80,249,17,0,80,252,17,0,80,255,17,0,80,2,18,0,80,5,18,0,80,8,18,0,80,11,18,0,80,14,18,0,80,17,18,0,80,20,18,0,80,23,18,0,80,26,18,0,80,29,18,0,80,32,18,0,80,35,18,0,80,38,18,0,80,41,18,0,80,5,0,32,0,44,0,167,3,107,4,186,6,1,0,0,96,158,11,0,32,25,14,0,80,170,15,0,32,192,15,0,128,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,144,21,0,32,7,0,0,0,189,3,0,0,146,21,0,0,146,21,0,0,139,0,0,0,1,0,0,0,191,20,0,0,109,97,112,84,105,109,101,122,111,110,101,115,0,65,85,83,32,67,101,110,116,114,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,48,48,49,0,65,85,0,65,85,83,32,69,97,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,102,103,104,97,110,105,115,116,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,70,0,65,108,97,115,107,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,83,0,65,108,101,117,116,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,108,116,97,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,82,85,0,65,114,97,98,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,72,0,75,87,0,81,65,0,83,65,0,89,69,0,65,114,97,98,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,69,0,79,77,0,90,90,0,65,114,97,98,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,81,0,65,114,103,101,110,116,105,110,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,82,0,65,115,116,114,97,107,104,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,116,108,97,110,116,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,77,0,67,65,0,71,76,0,65,117,115,32,67,101,110,116,114,97,108,32,87,46,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,122,101,114,98,97,105,106,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,90,0,65,122,111,114,101,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,84,0,66,97,104,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,82,0,66,97,110,103,108,97,100,101,115,104,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,68,0,66,84,0,66,101,108,97,114,117,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,89,0,66,111,117,103,97,105,110,118,105,108,108,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,71,0,67,97,110,97,100,97,32,67,101,110,116,114,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,97,112,101,32,86,101,114,100,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,86,0,67,97,117,99,97,115,117,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,77,0,67,101,110,46,32,65,117,115,116,114,97,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,101,110,116,114,97,108,32,65,109,101,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,90,0,67,82,0,69,67,0,71,84,0,72,78,0,78,73,0,83,86,0,65,81,0,67,78,0,73,79,0,75,71,0,67,101,110,116,114,97,108,32,66,114,97,122,105,108,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,101,110,116,114,97,108,32,69,117,114,111,112,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,76,0,67,90,0,72,85,0,77,69,0,82,83,0,83,73,0,83,75,0,67,101,110,116,114,97,108,32,69,117,114,111,112,101,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,65,0,72,82,0,77,75,0,80,76,0,67,101,110,116,114,97,108,32,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,77,0,78,67,0,83,66,0,86,85,0,67,101,110,116,114,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,77,88,0,67,104,97,116,104,97,109,32,73,115,108,97,110,100,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,90,0,67,104,105,110,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,72,75,0,77,79,0,67,117,98,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,85,0,68,97,116,101,108,105,110,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,46,32,65,102,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,68,74,0,69,82,0,69,84,0,75,69,0,75,77,0,77,71,0,83,79,0,84,90,0,85,71,0,89,84,0,69,46,32,65,117,115,116,114,97,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,46,32,69,117,114,111,112,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,68,0,69,46,32,83,111,117,116,104,32,65,109,101,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,97,115,116,101,114,32,73,115,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,76,0,69,97,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,66,83,0,69,103,121,112,116,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,71,0,69,107,97,116,101,114,105,110,98,117,114,103,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,76,69,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,88,0,66,71,0,69,69,0,70,73,0,76,84,0,76,86,0,85,65,0,70,105,106,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,74,0,71,77,84,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,83,0,70,79,0,71,66,0,71,71,0,73,69,0,73,77,0,74,69,0,71,84,66,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,89,0,71,82,0,82,79,0,71,101,111,114,103,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,71,69,0,71,114,101,101,110,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,71,114,101,101,110,119,105,99,104,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,70,0,67,73,0,71,72,0,71,77,0,71,78,0,71,87,0,73,83,0,76,82,0,77,76,0,77,82,0,83,72,0,83,76,0,83,78,0,84,71,0,72,97,105,116,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,72,84,0,72,97,119,97,105,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,75,0,80,70,0,73,110,100,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,78,0,73,114,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,82,0,73,115,114,97,101,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,76,0,74,111,114,100,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,74,79,0,75,97,108,105,110,105,110,103,114,97,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,82,0,76,105,98,121,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,76,89,0,76,105,110,101,32,73,115,108,97,110,100,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,73,0,76,111,114,100,32,72,111,119,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,103,97,100,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,103,97,108,108,97,110,101,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,114,113,117,101,115,97,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,117,114,105,116,105,117,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,85,0,82,69,0,83,67,0,77,105,100,100,108,101,32,69,97,115,116,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,76,66,0,77,111,110,116,101,118,105,100,101,111,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,89,0,77,111,114,111,99,99,111,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,72,0,77,65,0,77,111,117,110,116,97,105,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,77,121,97,110,109,97,114,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,67,0,77,77,0,78,46,32,67,101,110,116,114,97,108,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,97,109,105,98,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,65,0,78,101,112,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,80,0,78,101,119,32,90,101,97,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,101,119,102,111,117,110,100,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,111,114,102,111,108,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,70,0,78,111,114,116,104,32,65,115,105,97,32,69,97,115,116,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,111,114,116,104,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,111,114,116,104,32,75,111,114,101,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,80,0,79,109,115,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,97,99,105,102,105,99,32,83,65,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,80,97,107,105,115,116,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,75,0,80,97,114,97,103,117,97,121,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,89,0,81,121,122,121,108,111,114,100,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,90,0,82,111,109,97,110,99,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,69,0,68,75,0,70,82,0,82,117,115,115,105,97,32,84,105,109,101,32,90,111,110,101,32,49,48,0,82,117,115,115,105,97,32,84,105,109,101,32,90,111,110,101,32,49,49,0,82,117,115,115,105,97,32,84,105,109,101,32,90,111,110,101,32,51,0,82,117,115,115,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,65,32,69,97,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,75,0,71,70,0,83,82,0,83,65,32,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,79,0,74,77,0,75,89,0,80,65,0,80,69,0,83,65,32,87,101,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,71,0,65,73,0,65,87,0,66,66,0,66,76,0,66,79,0,66,81,0,67,87,0,68,77,0,68,79,0,71,68,0,71,80,0,71,89,0,75,78,0,76,67,0,77,70,0,77,81,0,77,83,0,80,82,0,83,88,0,84,84,0,86,67,0,86,71,0,86,73,0,83,69,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,88,0,73,68,0,75,72,0,76,65,0,84,72,0,86,78,0,83,97,105,110,116,32,80,105,101,114,114,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,77,0,83,97,107,104,97,108,105,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,97,109,111,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,83,0,83,97,111,32,84,111,109,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,84,0,83,97,114,97,116,111,118,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,105,110,103,97,112,111,114,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,78,0,77,89,0,80,72,0,83,71,0,83,111,117,116,104,32,65,102,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,73,0,66,87,0,67,68,0,76,83,0,77,87,0,77,90,0,82,87,0,83,90,0,90,65,0,90,77,0,90,87,0,83,111,117,116,104,32,83,117,100,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,83,0,83,114,105,32,76,97,110,107,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,76,75,0,83,68,0,83,121,114,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,89,0,84,97,105,112,101,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,87,0,84,97,115,109,97,110,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,111,99,97,110,116,105,110,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,111,107,121,111,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,74,80,0,80,87,0,84,76,0,84,111,109,115,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,111,110,103,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,79,0,84,114,97,110,115,98,97,105,107,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,117,114,107,101,121,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,82,0,84,117,114,107,115,32,65,110,100,32,67,97,105,99,111,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,83,32,77,111,117,110,116,97,105,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,84,67,0,85,84,67,43,49,50,0,77,72,0,78,82,0,84,86,0,85,77,0,87,70,0,85,84,67,43,49,51,0,84,75,0,85,84,67,45,48,50,0,71,83,0,85,84,67,45,48,56,0,80,78,0,85,84,67,45,48,57,0,85,84,67,45,49,49,0,65,83,0,78,85,0,85,108,97,97,110,98,97,97,116,97,114,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,78,0,86,101,110,101,122,117,101,108,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,86,69,0,86,108,97,100,105,118,111,115,116,111,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,86,111,108,103,111,103,114,97,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,46,32,65,117,115,116,114,97,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,46,32,67,101,110,116,114,97,108,32,65,102,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,79,0,66,74,0,67,70,0,67,71,0,67,77,0,68,90,0,71,65,0,71,81,0,78,69,0,78,71,0,84,68,0,84,78,0,87,46,32,69,117,114,111,112,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,68,0,65,84,0,67,72,0,68,69,0,71,73,0,73,84,0,76,73,0,76,85,0,77,67,0,77,84,0,78,76,0,78,79,0,83,69,0,83,74,0,83,77,0,86,65,0,87,46,32,77,111,110,103,111,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,101,115,116,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,86,0,84,70,0,84,74,0,84,77,0,85,90,0,87,101,115,116,32,66,97,110,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,83,0,87,101,115,116,32,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,71,85,0,77,80,0,89,97,107,117,116,115,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,89,117,107,111,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,0,0,67,0,83,0,84,0,54,0,67,0,68,0,84,0,0,0,69,0,83,0,84,0,53,0,69,0,68,0,84,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,0,0,77,0,83,0,84,0,55,0,77,0,68,0,84,0,0,0,80,0,83,0,84,0,56,0,80,0,68,0,84,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,107,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,118,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,109,0,115,0,107,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,57,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,100,0,101,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,105,0,108,0,105,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,57,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,109,0,109,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,105,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,98,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,109,0,115,0,107,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,51,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,97,0,116,0,97,0,114,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,52,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,98,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,101,0,105,0,114,0,117,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,105,0,121,0,97,0,100,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,109,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,114,0,117,0,110,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,101,0,98,0,114,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,119,0,97,0,105,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,110,0,105,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,117,0,115,0,99,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,105,0,103,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,79,0,115,0,108,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,105,0,103,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,111,0,109,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,104,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,103,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,103,0,104,0,100,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,110,0,103,0,107,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,114,0,110,0,97,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,105,0,115,0,104,0,107,0,101,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,111,0,108,0,111,0,109,0,98,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,114,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,114,0,97,0,99,0,104,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,103,0,97,0,100,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,98,0,105,0,108,0,105,0,115,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,114,0,101,0,118,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,105,0,110,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,97,0,114,0,105,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,112,0,105,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,105,0,106,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,99,0,99,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,107,0,97,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,117,0,110,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,109,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,104,0,114,0,97,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,108,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,111,0,102,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,100,0,117,0,122,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,99,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,105,0,117,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,107,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,97,0,109,0,97,0,115,0,99,0,117,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,107,0,104,0,97,0,108,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,109,0,97,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,103,0,117,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,106,0,117,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,105,0,115,0,115,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,117,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,114,0,97,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,103,0,97,0,108,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,97,0,110,0,100,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,115,0,97,0,107,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,108,0,97,0,98,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,112,0,117,0,116,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,115,0,101,0,114,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,97,0,109,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,117,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,108,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,115,0,104,0,97,0,110,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,121,0,97,0,112,0,117,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,116,0,104,0,101,0,110,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,74,0,101,0,114,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,110,0,97,0,99,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,114,0,97,0,103,0,117,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,107,0,111,0,112,0,106,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,101,0,110,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,103,0,114,0,101,0,98,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,117,0,114,0,105,0,99,0,104,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,97,0,103,0,111,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,109,0,111,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,102,0,97,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,97,0,117,0,114,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,108,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,105,0,114,0,111,0,98,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,114,0,105,0,112,0,111,0,108,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,103,0,111,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,110,0,99,0,117,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,95,0,80,0,97,0,122,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,121,0,111,0,110,0,103,0,121,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,121,0,122,0,121,0,108,0,111,0,114,0,100,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,116,0,111,0,118,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,98,0,105,0,100,0,106,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,108,0,103,0,105,0,101,0,114,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,110,0,97,0,107,0,114,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,97,0,109,0,112,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,98,0,97,0,98,0,97,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,105,0,122,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,105,0,97,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,121,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,115,0,115,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,97,0,109,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,105,0,101,0,110,0,116,0,105,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,110,0,100,0,111,0,114,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,97,0,108,0,108,0,105,0,110,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,116,0,105,0,99,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,108,0,110,0,105,0,117,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,121,0,111,0,116,0,116,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,82,0,101,0,117,0,110,0,105,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,105,0,100,0,119,0,97,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,117,0,109,0,101,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,105,0,112,0,97,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,104,0,105,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,114,0,97,0,119,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,108,0,108,0,105,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,104,0,97,0,114,0,116,0,111,0,117,0,109,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,84,0,111,0,109,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,100,0,104,0,111,0,101,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,114,0,97,0,99,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,101,0,110,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,65,0,122,0,111,0,114,0,101,0,115,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,69,0,117,0,99,0,108,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,100,0,97,0,112,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,104,0,105,0,115,0,105,0,110,0,97,0,117,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,114,0,102,0,111,0,108,0,107,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,116,0,121,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,106,0,105,0,98,0,111,0,117,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,65,0,97,0,105,0,117,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,70,0,114,0,101,0,101,0,116,0,111,0,119,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,71,0,97,0,98,0,111,0,114,0,111,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,110,0,115,0,104,0,97,0,115,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,114,0,111,0,118,0,105,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,100,0,106,0,97,0,109,0,101,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,116,0,105,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,114,0,97,0,99,0,97,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,105,0,103,0,111,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,116,0,111,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,104,0,110,0,111,0,109,0,95,0,80,0,101,0,110,0,104,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,110,0,97,0,114,0,121,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,32,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,103,0,114,0,97,0,100,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,117,0,115,0,115,0,101,0,108,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,117,0,101,0,114,0,110,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,72,0,101,0,108,0,115,0,105,0,110,0,107,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,106,0,101,0,118,0,111,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,108,0,100,0,105,0,118,0,101,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,97,0,107,0,97,0,111,0,102,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,109,0,98,0,105,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,117,0,110,0,99,0,105,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,115,0,105,0,98,0,105,0,114,0,115,0,107,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,68,0,97,0,114,0,119,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,99,0,104,0,97,0,114,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,111,0,108,0,103,0,111,0,103,0,114,0,97,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,117,0,114,0,105,0,116,0,105,0,117,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,106,0,117,0,109,0,98,0,117,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,103,0,97,0,100,0,105,0,115,0,104,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,103,0,117,0,105,0,108,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,114,0,98,0,97,0,100,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,75,0,105,0,116,0,116,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,76,0,117,0,99,0,105,0,97,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,101,0,121,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,97,0,118,0,105,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,121,0,111,0,119,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,66,0,101,0,114,0,109,0,117,0,100,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,97,0,110,0,108,0,101,0,121,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,109,0,115,0,116,0,101,0,114,0,100,0,97,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,115,0,116,0,114,0,97,0,107,0,104,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,105,0,98,0,114,0,97,0,108,0,116,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,106,0,117,0,98,0,108,0,106,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,114,0,105,0,101,0,104,0,97,0,109,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,111,0,100,0,103,0,111,0,114,0,105,0,99,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,116,0,111,0,99,0,107,0,104,0,111,0,108,0,109,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,114,0,105,0,115,0,116,0,109,0,97,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,75,0,101,0,114,0,103,0,117,0,101,0,108,0,101,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,117,0,110,0,97,0,102,0,117,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,105,0,116,0,99,0,97,0,105,0,114,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,97,0,98,0,108,0,97,0,110,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,97,0,103,0,117,0,97,0,105,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,116,0,101,0,109,0,97,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,114,0,113,0,117,0,101,0,115,0,97,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,111,0,110,0,103,0,97,0,116,0,97,0,112,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,98,0,114,0,101,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,98,0,117,0,109,0,98,0,97,0,115,0,104,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,117,0,97,0,107,0,99,0,104,0,111,0,116,0,116,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,45,0,78,0,111,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,121,0,97,0,113,0,117,0,105,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,86,0,111,0,115,0,116,0,111,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,97,0,116,0,105,0,115,0,108,0,97,0,118,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,111,0,112,0,101,0,110,0,104,0,97,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,117,0,120,0,101,0,109,0,98,0,111,0,117,0,114,0,103,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,110,0,95,0,77,0,97,0,114,0,105,0,110,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,105,0,109,0,102,0,101,0,114,0,111,0,112,0,111,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,108,0,97,0,112,0,97,0,103,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,82,0,97,0,114,0,111,0,116,0,111,0,110,0,103,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,97,0,110,0,100,0,95,0,84,0,117,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,118,0,105,0,100,0,101,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,114,0,101,0,100,0,110,0,101,0,107,0,111,0,108,0,121,0,109,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,107,0,97,0,116,0,101,0,114,0,105,0,110,0,98,0,117,0,114,0,103,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,97,0,108,0,105,0,110,0,105,0,110,0,103,0,114,0,97,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,105,0,114,0,105,0,116,0,105,0,109,0,97,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,100,0,105,0,115,0,95,0,65,0,98,0,97,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,114,0,97,0,122,0,122,0,97,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,79,0,117,0,97,0,103,0,97,0,100,0,111,0,117,0,103,0,111,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,115,0,116,0,97,0,95,0,82,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,100,0,101,0,108,0,111,0,117,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,101,0,114,0,109,0,111,0,115,0,105,0,108,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,114,0,97,0,108,0,101,0,110,0,100,0,105,0,106,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,116,0,105,0,110,0,105,0,113,0,117,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,115,0,101,0,114,0,114,0,97,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,114,0,97,0,109,0,97,0,114,0,105,0,98,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,86,0,105,0,110,0,99,0,101,0,110,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,99,0,77,0,117,0,114,0,100,0,111,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,95,0,72,0,101,0,108,0,101,0,110,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,108,0,101,0,95,0,111,0,102,0,95,0,77,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,111,0,104,0,97,0,110,0,110,0,101,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,112,0,101,0,95,0,86,0,101,0,114,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,100,0,97,0,108,0,99,0,97,0,110,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,83,0,97,0,108,0,118,0,97,0,100,0,111,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,101,0,114,0,116,0,111,0,95,0,82,0,105,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,101,0,103,0,117,0,99,0,105,0,103,0,97,0,108,0,112,0,97,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,65,0,110,0,116,0,97,0,110,0,97,0,110,0,97,0,114,0,105,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,110,0,116,0,97,0,95,0,65,0,114,0,101,0,110,0,97,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,66,0,111,0,117,0,103,0,97,0,105,0,110,0,118,0,105,0,108,0,108,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,114,0,116,0,95,0,77,0,111,0,114,0,101,0,115,0,98,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,114,0,95,0,101,0,115,0,95,0,83,0,97,0,108,0,97,0,97,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,99,0,45,0,83,0,97,0,98,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,110,0,109,0,97,0,114,0,107,0,115,0,104,0,97,0,118,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,99,0,111,0,114,0,101,0,115,0,98,0,121,0,115,0,117,0,110,0,100,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,105,0,117,0,100,0,97,0,100,0,95,0,74,0,117,0,97,0,114,0,101,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,97,0,108,0,95,0,72,0,97,0,114,0,98,0,111,0,117,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,119,0,101,0,114,0,95,0,80,0,114,0,105,0,110,0,99,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,95,0,111,0,102,0,95,0,83,0,112,0,97,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,111,0,95,0,68,0,111,0,109,0,105,0,110,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,66,0,97,0,114,0,116,0,104,0,101,0,108,0,101,0,109,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,101,0,98,0,114,0,111,0,110,0,32,0,65,0,115,0,105,0,97,0,47,0,71,0,97,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,45,0,97,0,117,0,45,0,80,0,114,0,105,0,110,0,99,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,71,0,101,0,111,0,114,0,103,0,105,0,97,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,117,0,109,0,111,0,110,0,116,0,68,0,85,0,114,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,110,0,97,0,100,0,121,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,32,0,65,0,115,0,105,0,97,0,47,0,75,0,104,0,97,0,110,0,100,0,121,0,103,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,100,0,114,0,105,0,100,0,32,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,101,0,117,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,32,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,114,0,111,0,118,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,107,0,97,0,114,0,116,0,97,0,32,0,65,0,115,0,105,0,97,0,47,0,80,0,111,0,110,0,116,0,105,0,97,0,110,0,97,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,32,0,65,0,115,0,105,0,97,0,47,0,70,0,97,0,109,0,97,0,103,0,117,0,115,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,105,0,115,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,32,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,109,0,97,0,114,0,107,0,97,0,110,0,100,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,32,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,115,0,105,0,110,0,103,0,101,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,32,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,111,0,115,0,114,0,97,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,97,0,108,0,97,0,95,0,76,0,117,0,109,0,112,0,117,0,114,0,32,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,99,0,104,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,32,0,65,0,115,0,105,0,97,0,47,0,85,0,115,0,116,0,45,0,78,0,101,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,32,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,77,0,97,0,100,0,101,0,105,0,114,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,113,0,97,0,108,0,117,0,105,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,32,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,111,0,105,0,98,0,97,0,108,0,115,0,97,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,106,0,117,0,114,0,111,0,32,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,116,0,97,0,109,0,111,0,114,0,111,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,79,0,106,0,105,0,110,0,97,0,103,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,115,0,116,0,114,0,97,0,107,0,104,0,97,0,110,0,32,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,85,0,108,0,121,0,97,0,110,0,111,0,118,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,32,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,107,0,117,0,122,0,110,0,101,0,116,0,115,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,105,0,97,0,98,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,112,0,111,0,95,0,71,0,114,0,97,0,110,0,100,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,105,0,114,0,117,0,110,0,101,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,119,0,105,0,102,0,116,0,95,0,67,0,117,0,114,0,114,0,101,0,110,0,116,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,82,0,111,0,116,0,104,0,101,0,114,0,97,0,32,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,80,0,97,0,108,0,109,0,101,0,114,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,32,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,77,0,101,0,108,0,98,0,111,0,117,0,114,0,110,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,32,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,105,0,110,0,100,0,101,0,109,0,97,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,32,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,113,0,117,0,97,0,114,0,105,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,32,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,111,0,107,0,101,0,110,0,95,0,72,0,105,0,108,0,108,0,0,0,52,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,97,0,95,0,86,0,105,0,115,0,116,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,95,0,86,0,101,0,108,0,104,0,111,0,0,0,53,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,98,0,114,0,105,0,100,0,103,0,101,0,95,0,66,0,97,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,117,0,118,0,105,0,107,0,0,0,54,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,97,0,110,0,107,0,105,0,110,0,95,0,73,0,110,0,108,0,101,0,116,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,115,0,111,0,108,0,117,0,116,0,101,0,0,0,56,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,114,0,101,0,115,0,116,0,111,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,95,0,67,0,114,0,101,0,101,0,107,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,95,0,78,0,101,0,108,0,115,0,111,0,110,0,0,0,66,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,77,0,97,0,114,0,101,0,110,0,103,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,101,0,118,0,97,0,121,0,0,0,67,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,108,0,97,0,99,0,101,0,95,0,66,0,97,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,111,0,115,0,101,0,95,0,66,0,97,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,99,0,116,0,111,0,110,0,0,0,70,220,65,0,115,0,105,0,97,0,47,0,79,0,114,0,97,0,108,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,108,0,109,0,97,0,116,0,121,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,97,0,117,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,111,0,98,0,101,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,116,0,121,0,114,0,97,0,117,0,32,0,65,0,115,0,105,0,97,0,47,0,81,0,111,0,115,0,116,0,97,0,110,0,97,0,121,0,0,0,78,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,97,0,108,0,101,0,122,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,101,0,109,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,101,0,105,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,99,0,105,0,102,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,97,0,114,0,101,0,109,0,0,0,94,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,110,0,101,0,97,0,117,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,116,0,108,0,97,0,107,0,97,0,116,0,108,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,109,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,105,0,116,0,107,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,97,0,116,0,0,0,94,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,95,0,66,0,97,0,110,0,100,0,101,0,114,0,97,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,114,0,105,0,100,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,114,0,114,0,101,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,104,0,117,0,97,0,104,0,117,0,97,0,32,0,0,0,156,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,116,0,114,0,111,0,105,0,116,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,80,0,101,0,116,0,101,0,114,0,115,0,98,0,117,0,114,0,103,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,105,0,110,0,99,0,101,0,110,0,110,0,101,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,87,0,105,0,110,0,97,0,109,0,97,0,99,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,77,0,111,0,110,0,116,0,105,0,99,0,101,0,108,0,108,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,167,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,75,0,110,0,111,0,120,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,84,0,101,0,108,0,108,0,95,0,67,0,105,0,116,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,111,0,109,0,105,0,110,0,101,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,66,0,101,0,117,0,108,0,97,0,104,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,67,0,101,0,110,0,116,0,101,0,114,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,78,0,101,0,119,0,95,0,83,0,97,0,108,0,101,0,109,0,0,0,16,221,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,76,0,97,0,95,0,82,0,105,0,111,0,106,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,82,0,105,0,111,0,95,0,71,0,97,0,108,0,108,0,101,0,103,0,111,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,108,0,116,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,74,0,117,0,97,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,76,0,117,0,105,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,84,0,117,0,99,0,117,0,109,0,97,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,85,0,115,0,104,0,117,0,97,0,105,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,2,0,71,0,75,0,138,12,138,12,2,0,71,0,75,0,17,14,214,23,2,0,71,0,130,0,59,1,59,1,2,0,71,0,155,0,145,15,112,26,2,0,71,0,155,0,199,2,199,2,2,0,71,0,201,0,238,2,238,2,6,0,71,0,223,0,226,0,229,0,232,0,235,0,237,1,203,3,65,2,158,1,237,1,101,0,4,0,71,0,4,1,7,1,10,1,48,1,48,1,89,2,211,0,2,0,71,0,34,1,212,2,212,2,2,0,71,0,61,1,172,19,119,28,2,0,71,0,201,0,51,14,255,22,4,0,71,0,111,1,114,1,117,1,4,11,222,13,147,25,170,5,2,0,71,0,75,0,212,9,212,9,2,0,71,0,174,1,41,0,41,0,3,0,71,0,117,1,198,1,196,9,235,19,196,9,2,0,71,0,221,1,90,4,90,4,3,0,71,0,249,1,252,1,37,1,37,1,216,3,2,0,71,0,21,2,99,3,99,3,2,0,71,0,51,2,88,19,88,19,2,0,71,0,114,1,84,8,140,23,3,0,71,0,108,2,10,1,143,18,143,18,121,0,2,0,71,0,134,2,86,3,86,3,2,0,71,0,75,0,46,18,71,24,9,0,71,0,196,2,199,2,202,2,205,2,208,2,211,2,214,2,10,1,1,15,235,7,93,17,105,16,1,15,7,19,36,11,203,18,161,0,6,0,71,0,217,2,220,2,223,2,226,2,10,1,251,2,235,15,113,2,166,6,251,2,231,0,2,0,71,0,221,1,9,8,68,23,8,0,71,0,34,3,37,3,40,3,43,3,46,3,49,3,52,3,244,9,110,6,82,6,244,9,119,14,164,11,85,14,253,15,5,0,71,0,86,3,89,3,92,3,95,3,202,4,228,11,138,6,96,6,202,4,7,0,71,0,217,2,128,3,131,3,134,3,137,3,10,1,183,18,120,13,222,21,249,8,183,18,194,6,191,1,5,0,71,0,114,1,171,3,155,0,10,1,212,10,221,24,187,22,206,27,1,0,2,0,71,0,171,3,223,18,208,26,2,0,71,0,204,3,36,10,36,10,4,0,71,0,220,2,227,3,230,3,160,4,160,4,99,8,147,1,2,0,71,0,252,3,40,7,40,7,2,0,71,0,10,1,114,1,114,1,13,0,71,0,217,2,46,4,49,4,52,4,55,4,58,4,61,4,64,4,67,4,70,4,73,4,10,1,236,6,154,13,84,10,216,4,36,17,236,6,180,6,47,19,1,13,130,19,205,7,204,8,201,0,2,0,71,0,75,0,65,18,251,23,2,0,71,0,127,4,4,10,4,10,2,0,71,0,221,1,19,15,19,15,2,0,71,0,189,4,145,7,145,7,5,0,71,0,223,4,114,1,155,0,10,1,69,13,54,8,89,22,48,27,9,0,2,0,71,0,171,3,25,7,25,7,2,0,71,0,246,4,173,2,173,2,2,0,71,0,201,0,216,16,216,16,8,0,71,0,38,5,41,5,44,5,47,5,50,5,53,5,56,5,17,2,102,14,255,3,159,8,212,11,189,8,137,2,17,2,2,0,71,0,78,5,138,3,138,3,9,0,71,0,99,5,102,5,105,5,108,5,111,5,114,5,117,5,198,1,174,4,116,11,132,11,174,4,196,11,26,6,84,18,40,6,58,22,4,0,71,0,138,5,141,5,144,5,155,12,106,21,254,5,155,12,2,0,71,0,170,5,73,3,73,3,2,0,71,0,117,1,148,9,148,9,16,0,71,0,221,5,224,5,227,5,117,1,230,5,233,5,236,5,239,5,242,5,245,5,248,5,251,5,254,5,1,6,4,6,235,16,74,17,160,7,151,3,193,19,2,5,190,7,16,5,235,16,164,10,230,4,109,15,27,18,116,10,164,3,29,2,2,0,71,0,27,6,154,20,154,20,5,0,71,0,53,6,56,6,155,0,10,1,223,12,141,16,23,9,223,12,169,1,2,0,71,0,79,6,104,4,104,4,2,0,71,0,101,6,5,2,5,2,2,0,71,0,125,6,70,7,70,7,2,0,71,0,149,6,15,1,15,1,2,0,71,0,201,0,254,16,254,16,2,0,71,0,178,6,70,1,70,1,2,0,71,0,201,6,251,6,251,6,3,0,71,0,231,6,10,1,17,17,17,17,202,1,2,0,71,0,75,0,163,18,163,18,2,0,71,0,201,0,47,3,47,3,2,0,71,0,189,4,67,19,67,19,2,0,71,0,56,6,37,15,37,15,4,0,71,0,97,7,100,7,103,7,189,12,189,12,219,8,161,2,2,0,71,0,132,7,225,1,225,1,2,0,71,0,160,7,178,16,178,16,3,0,71,0,185,7,188,7,221,14,100,10,221,14,5,0,71,0,114,1,171,3,155,0,10,1,24,8,166,24,0,20,134,21,25,0,2,0,71,0,171,3,53,12,53,12,3,0,71,0,245,7,248,7,60,3,25,4,60,3,2,0,71,0,201,0,121,12,121,12,2,0,71,0,47,8,100,9,100,9,2,0,71,0,70,8,132,4,132,4,3,0,71,0,217,2,204,3,206,12,8,18,206,12,2,0,71,0,114,1,104,12,104,12,2,0,71,0,148,8,52,10,52,10,2,0,71,0,201,0,21,3,21,3,2,0,71,0,201,0,171,13,33,23,2,0,71,0,232,8,85,7,85,7,2,0,71,0,201,0,61,0,61,0,2,0,71,0,189,4,87,12,87,12,4,0,71,0,114,1,155,0,10,1,123,18,199,15,123,18,33,0,2,0,71,0,171,3,180,9,180,9,2,0,71,0,77,9,34,3,34,3,2,0,71,0,103,9,36,12,36,12,2,0,71,0,130,9,100,7,100,7,5,0,71,0,155,9,158,9,99,5,161,9,112,3,180,11,15,16,24,21,112,3,2,0,71,0,201,0,197,16,197,16,2,0,71,0,201,0,114,8,226,20,2,0,71,0,201,0,188,4,188,4,3,0,71,0,201,0,56,5,68,6,51,21,69,16,7,0,71,0,217,2,221,1,14,10,17,10,20,10,10,1,132,9,177,23,32,26,239,13,132,9,207,17,131,0,10,0,71,0,221,1,114,1,48,10,202,2,51,10,54,10,57,10,60,10,10,1,10,7,104,23,22,20,10,7,163,15,20,11,250,7,69,8,190,3,151,0,28,0,71,0,88,10,91,10,94,10,97,10,100,10,103,10,106,10,221,1,114,1,109,10,112,10,115,10,118,10,121,10,124,10,127,10,130,10,133,10,136,10,139,10,142,10,145,10,148,10,151,10,154,10,157,10,10,1,55,7,196,10,18,13,156,5,35,13,110,20,55,7,150,17,112,24,151,19,228,10,52,13,88,20,244,10,112,17,39,8,86,13,103,13,52,11,169,17,188,17,243,18,44,20,66,20,226,17,84,11,181,15,141,0,9,0,71,0,217,2,182,10,185,10,188,10,191,10,194,10,197,10,10,1,225,2,137,13,153,14,78,21,100,11,129,8,225,2,101,2,241,0,2,0,71,0,227,10,70,12,70,12,2,0,71,0,201,0,146,4,146,4,2,0,71,0,17,11,125,3,125,3,2,0,71,0,43,11,84,9,84,9,2,0,71,0,201,0,130,7,130,7,7,0,71,0,92,11,185,10,95,11,98,11,101,11,10,1,115,7,41,2,226,5,252,21,77,2,115,7,251,0,13,0,71,0,131,11,134,11,137,11,140,11,143,11,146,11,149,11,152,11,155,11,158,11,161,11,10,1,103,18,240,12,132,10,91,15,128,5,68,10,114,5,58,5,220,7,103,18,86,5,44,5,191,0,2,0,71,0,190,11,213,1,213,1,2,0,71,0,217,11,8,3,8,3,2,0,71,0,220,11,68,9,68,9,2,0,71,0,243,11,118,4,118,4,2,0,71,0,11,12,249,1,249,1,2,0,71,0,75,0,0,14,33,24,2,0,71,0,221,1,239,14,239,14,6,0,71,0,185,10,81,12,84,12,87,12,10,1,81,1,212,5,81,1,222,6,111,0,5,1,2,0,71,0,201,0,92,1,92,1,2,0,71,0,130,12,55,15,55,15,2,0,71,0,201,0,26,1,26,1,2,0,71,0,180,12,20,10,20,10,2,0,71,0,241,12,159,16,159,16,2,0,71,0,155,0,214,19,79,25,5,0,71,0,114,1,171,3,155,0,10,1,164,9,21,25,131,17,164,9,171,0,2,0,71,0,10,1,17,0,148,11,8,0,71,0,231,6,251,12,254,12,1,13,4,13,7,13,10,1,125,1,38,9,154,22,208,6,187,14,77,4,53,9,125,1,4,0,71,0,231,6,17,13,10,1,136,1,87,16,4,12,136,1,4,0,71,0,221,1,27,13,10,1,71,0,68,11,177,20,71,0,3,0,71,0,37,13,10,1,81,0,204,14,81,0,3,0,71,0,56,6,10,1,91,0,20,12,91,0,5,0,71,0,54,13,57,13,4,13,10,1,103,1,123,16,51,4,234,8,103,1,2,0,71,0,86,13,188,13,121,22,2,0,71,0,113,13,116,9,116,9,2,0,71,0,201,0,205,13,27,22,2,0,71,0,201,0,172,12,172,12,2,0,71,0,75,0,228,9,228,9,15,0,71,0,225,13,228,13,137,11,231,13,234,13,237,13,240,13,243,13,246,13,249,13,252,13,255,13,2,14,10,1,186,2,72,5,127,15,148,10,244,4,55,17,30,5,175,7,73,15,100,5,142,5,186,2,180,10,177,3,181,0,17,0,71,0,29,14,32,14,35,14,38,14,41,14,44,14,47,14,50,14,53,14,56,14,59,14,62,14,65,14,68,14,71,14,74,14,12,6,144,8,124,6,152,6,192,21,68,14,149,2,12,4,33,16,54,6,242,3,34,14,125,2,136,14,27,19,51,16,174,8,2,0,71,0,86,13,51,0,51,0,9,0,71,0,217,2,130,9,127,14,130,14,133,14,136,14,139,14,10,1,240,5,217,15,216,25,244,11,170,14,198,5,184,5,163,21,221,0,2,0,71,0,166,14,53,2,132,20,7,0,71,0,217,2,128,3,196,14,199,14,51,2,10,1,109,19,200,20,64,4,38,4,8,9,109,19,180,1,2,0,71,0,201,0,229,3,253,20,2,0,71,0,114,1,245,17,221,22,139,0,45,0,78,0,104,0,133,0,158,0,181,0,204,0,238,0,13,1,37,1,64,1,88,1,120,1,149,1,177,1,201,1,224,1,255,1,24,2,54,2,83,2,111,2,137,2,166,2,254,7,229,2,5,3,55,3,98,3,61,2,140,3,174,3,207,3,233,3,255,3,22,4,76,4,103,4,130,4,161,4,82,0,192,4,226,4,249,4,20,5,59,5,81,5,120,5,147,5,173,5,197,5,7,6,30,6,59,6,82,6,104,6,128,6,152,6,212,8,181,6,204,6,234,6,2,7,24,7,49,7,73,7,106,7,135,7,163,7,217,12,191,7,223,7,251,7,25,8,50,8,73,8,99,8,126,8,151,8,181,8,206,8,235,8,254,8,174,14,23,9,54,9,80,9,106,9,133,9,164,9,184,9,204,9,223,9,245,9,23,10,63,10,160,10,200,10,230,10,253,10,20,11,46,11,68,11,104,11,164,11,193,11,170,11,223,11,246,11,14,12,37,12,61,12,90,12,110,12,133,12,159,12,183,12,79,0,214,12,240,12,244,12,10,13,20,13,30,13,40,13,47,13,60,13,89,13,116,13,142,13,166,13,193,13,5,14,77,14,103,14,142,14,169,14,202,14,224,14,137,29,0,80,142,29,0,80,147,29,0,80,152,29,0,80,157,29,0,80,162,29,0,80,167,29,0,80,180,29,0,80,189,29,0,80,194,29,0,80,199,29,0,80,204,29,0,80,213,29,0,80,218,29,0,80,223,29,0,80,230,29,0,80,235,29,0,80,242,29,0,80,247,29,0,80,252,29,0,80,1,30,0,80,8,30,0,80,13,30,0,80,18,30,0,80,37,30,0,80,50,30,0,80,55,30,0,80,72,30,0,80,83,30,0,80,98,30,0,80,109,30,0,80,114,30,0,80,119,30,0,80,128,30,0,80,133,30,0,80,138,30,0,80,165,30,0,80,170,30,0,80,175,30,0,80,180,30,0,80,185,30,0,80,196,30,0,80,201,30,0,80,206,30,0,80,211,30,0,80,228,30,0,80,233,30,0,80,252,30,0,80,5,31,0,80,10,31,0,80,15,31,0,80,48,31,0,80,53,31,0,80,64,31,0,80,69,31,0,80,74,31,0,80,79,31,0,80,84,31,0,80,89,31,0,80,94,31,0,80,99,31,0,80,106,31,0,80,111,31,0,80,116,31,0,80,121,31,0,80,126,31,0,80,135,31,0,80,140,31,0,80,145,31,0,80,152,31,0,80,163,31,0,80,168,31,0,80,175,31,0,80,180,31,0,80,185,31,0,80,190,31,0,80,197,31,0,80,202,31,0,80,207,31,0,80,212,31,0,80,217,31,0,80,222,31,0,80,227,31,0,80,232,31,0,80,241,31,0,80,246,31,0,80,251,31,0,80,0,32,0,80,5,32,0,80,16,32,0,80,21,32,0,80,26,32,0,80,31,32,0,80,38,32,0,80,53,32,0,80,74,32,0,80,131,32,0,80,150,32,0,80,155,32,0,80,160,32,0,80,165,32,0,80,170,32,0,80,175,32,0,80,190,32,0,80,217,32,0,80,222,32,0,80,227,32,0,80,232,32,0,80,237,32,0,80,242,32,0,80,247,32,0,80,252,32,0,80,9,33,0,80,14,33,0,80,19,33,0,80,24,33,0,80,29,33,0,80,34,33,0,80,39,33,0,80,50,33,0,80,55,33,0,80,72,33,0,80,81,33,0,80,90,33,0,80,97,33,0,80,104,33,0,80,115,33,0,80,120,33,0,80,125,33,0,80,130,33,0,80,135,33,0,80,140,33,0,80,171,33,0,80,206,33,0,80,211,33,0,80,230,33,0,80,235,33,0,80,250,33,0,80,255,33,0,80,1,0,32,0,191,20,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,228,147,0,32,7,0,0,0,71,0,0,0,236,147,0,0,236,147,0,0,24,0,0,0,1,0,0,0,131,22,0,0,84,90,86,101,114,115,105,111,110,0,90,111,110,101,115,0,116,114,97,110,115,0,116,121,112,101,79,102,102,115,101,116,115,0,116,121,112,101,77,97,112,0,108,105,110,107,115,0,116,114,97,110,115,80,114,101,51,50,0,102,105,110,97,108,82,117,108,101,0,102,105,110,97,108,82,97,119,0,102,105,110,97,108,89,101,97,114,0,116,114,97,110,115,80,111,115,116,51,50,0,78,97,109,101,115,0,82,117,108,101,115,0,65,78,0,65,83,0,65,84,0,65,86,0,67,45,69,117,114,0,67,97,110,97,100,97,0,67,104,97,116,104,97,109,0,67,104,105,108,101,0,67,117,98,97,0,69,85,0,69,85,65,115,105,97,0,69,103,121,112,116,0,72,97,105,116,105,0,76,72,0,76,101,98,97,110,111,110,0,77,111,108,100,111,118,97,0,78,90,0,80,97,108,101,115,116,105,110,101,0,80,97,114,97,0,83,121,115,116,101,109,86,0,84,104,117,108,101,0,84,114,111,108,108,0,85,83,0,90,105,111,110,0,82,101,103,105,111,110,115,0,170,0,0,85,0,83,0,0,0,67,0,65,0,0,0,69,0,85,0,0,0,82,0,85,0,0,0,65,0,85,0,0,0,66,0,82,0,0,0,65,0,82,0,0,0,77,0,88,0,0,0,65,0,81,0,0,0,67,0,78,0,0,0,75,0,90,0,0,0,78,0,90,0,0,0,70,0,77,0,0,0,65,0,83,0,0,0,67,0,76,0,0,0,71,0,66,0,0,0,71,0,76,0,0,0,73,0,68,0,0,0,85,0,65,0,0,0,75,0,73,0,0,0,77,0,78,0,0,0,80,0,84,0,0,0,66,0,68,0,0,0,67,0,89,0,0,0,69,0,71,0,0,0,69,0,83,0,0,0,73,0,76,0,0,0,74,0,80,0,0,0,77,0,72,0,0,0,80,0,70,0,0,0,84,0,82,0,0,0,85,0,77,0,0,0,86,0,78,0,0,0,65,0,77,0,0,0,65,0,78,0,0,0,66,0,84,0,0,0,67,0,68,0,0,0,67,0,73,0,0,0,67,0,85,0,0,0,68,0,69,0,0,0,69,0,67,0,0,0,69,0,82,0,0,0,70,0,79,0,0,0,70,0,82,0,0,0,72,0,75,0,0,0,73,0,69,0,0,0,73,0,82,0,0,0,74,0,77,0,0,0,75,0,69,0,0,0,75,0,82,0,0,0,76,0,89,0,0,0,77,0,68,0,0,0,77,0,76,0,0,0,77,0,77,0,0,0,77,0,79,0,0,0,77,0,89,0,0,0,77,0,90,0,0,0,78,0,80,0,0,0,80,0,71,0,0,0,80,0,75,0,0,0,80,0,76,0,0,0,80,0,82,0,0,0,80,0,83,0,0,0,83,0,66,0,0,0,83,0,71,0,0,0,83,0,74,0,0,0,84,0,77,0,0,0,84,0,87,0,0,0,85,0,90,0,0,0,86,0,73,0,0,0,87,0,83,0,0,0,65,0,68,0,0,0,65,0,69,0,0,0,65,0,70,0,0,0,65,0,71,0,0,0,65,0,73,0,0,0,65,0,76,0,0,0,65,0,79,0,0,0,65,0,86,0,0,0,65,0,87,0,0,0,65,0,88,0,0,0,65,0,90,0,0,0,66,0,65,0,0,0,66,0,66,0,0,0,66,0,69,0,0,0,66,0,70,0,0,0,66,0,71,0,0,0,66,0,72,0,0,0,66,0,73,0,0,0,66,0,74,0,0,0,66,0,76,0,0,0,66,0,77,0,0,0,66,0,78,0,0,0,66,0,79,0,0,0,66,0,81,0,0,0,66,0,83,0,0,0,66,0,87,0,0,0,66,0,89,0,0,0,66,0,90,0,0,0,67,0,67,0,0,0,67,0,70,0,0,0,67,0,71,0,0,0,67,0,72,0,0,0,67,0,75,0,0,0,67,0,77,0,0,0,67,0,79,0,0,0,67,0,82,0,0,0,67,0,86,0,0,0,67,0,87,0,0,0,67,0,88,0,0,0,67,0,90,0,0,0,68,0,74,0,0,0,68,0,75,0,0,0,68,0,77,0,0,0,68,0,79,0,0,0,68,0,90,0,0,0,69,0,69,0,0,0,69,0,72,0,0,0,70,0,73,0,0,0,70,0,74,0,0,0,70,0,75,0,0,0,71,0,65,0,0,0,71,0,68,0,0,0,71,0,69,0,0,0,71,0,70,0,0,0,71,0,71,0,0,0,71,0,72,0,0,0,71,0,73,0,0,0,71,0,77,0,0,0,71,0,78,0,0,0,71,0,80,0,0,0,71,0,81,0,0,0,71,0,82,0,0,0,71,0,83,0,0,0,71,0,85,0,0,0,71,0,87,0,0,0,71,0,89,0,0,0,72,0,78,0,0,0,72,0,82,0,0,0,72,0,84,0,0,0,72,0,85,0,0,0,73,0,77,0,0,0,73,0,79,0,0,0,73,0,81,0,0,0,73,0,83,0,0,0,74,0,69,0,0,0,74,0,79,0,0,0,75,0,71,0,0,0,75,0,72,0,0,0,75,0,77,0,0,0,75,0,78,0,0,0,75,0,80,0,0,0,75,0,87,0,0,0,75,0,89,0,0,0,76,0,65,0,0,0,76,0,66,0,0,0,76,0,67,0,0,0,76,0,72,0,0,0,76,0,73,0,0,0,76,0,75,0,0,0,76,0,82,0,0,0,76,0,83,0,0,0,76,0,85,0,0,0,76,0,86,0,0,0,77,0,65,0,0,0,77,0,67,0,0,0,77,0,69,0,0,0,77,0,70,0,0,0,77,0,71,0,0,0,77,0,75,0,0,0,77,0,80,0,0,0,77,0,81,0,0,0,77,0,82,0,0,0,77,0,83,0,0,0,77,0,85,0,0,0,77,0,86,0,0,0,77,0,87,0,0,0,78,0,65,0,0,0,78,0,67,0,0,0,78,0,69,0,0,0,78,0,70,0,0,0,78,0,71,0,0,0,78,0,73,0,0,0,78,0,76,0,0,0,78,0,79,0,0,0,78,0,82,0,0,0,78,0,85,0,0,0,79,0,77,0,0,0,80,0,65,0,0,0,80,0,69,0,0,0,80,0,72,0,0,0,80,0,77,0,0,0,80,0,78,0,0,0,80,0,87,0,0,0,80,0,89,0,0,0,81,0,65,0,0,0,82,0,69,0,0,0,82,0,79,0,0,0,82,0,83,0,0,0,82,0,87,0,0,0,83,0,65,0,0,0,83,0,67,0,0,0,83,0,68,0,0,0,83,0,69,0,0,0,83,0,72,0,0,0,83,0,73,0,0,0,83,0,75,0,0,0,83,0,76,0,0,0,83,0,77,0,0,0,83,0,78,0,0,0,83,0,79,0,0,0,83,0,82,0,0,0,83,0,83,0,0,0,83,0,86,0,0,0,83,0,88,0,0,0,83,0,89,0,0,0,83,0,90,0,0,0,84,0,68,0,0,0,84,0,70,0,0,0,84,0,71,0,0,0,84,0,72,0,0,0,84,0,74,0,0,0,84,0,75,0,0,0,84,0,76,0,0,0,84,0,78,0,0,0,84,0,79,0,0,0,84,0,86,0,0,0,84,0,90,0,0,0,85,0,71,0,0,0,85,0,89,0,0,0,86,0,65,0,0,0,86,0,67,0,0,0,86,0,69,0,0,0,86,0,71,0,0,0,86,0,85,0,0,0,87,0,70,0,0,0,89,0,69,0,0,0,89,0,84,0,0,0,90,0,65,0,0,0,90,0,77,0,0,0,90,0,87,0,0,0,48,0,48,0,49,0,0,0,65,0,71,0,84,0,0,0,67,0,84,0,84,0,0,0,77,0,73,0,84,0,0,0,80,0,76,0,84,0,0,0,86,0,83,0,84,0,0,0,87,0,69,0,84,0,0,0,65,0,69,0,84,0,0,0,65,0,82,0,84,0,0,0,65,0,83,0,84,0,0,0,66,0,69,0,84,0,0,0,66,0,83,0,84,0,0,0,67,0,65,0,84,0,0,0,67,0,69,0,84,0,0,0,67,0,78,0,84,0,0,0,67,0,83,0,84,0,0,0,69,0,65,0,84,0,0,0,69,0,67,0,84,0,0,0,69,0,69,0,84,0,0,0,69,0,83,0,84,0,0,0,72,0,83,0,84,0,0,0,73,0,69,0,84,0,0,0,73,0,83,0,84,0,0,0,74,0,83,0,84,0,0,0,77,0,69,0,84,0,0,0,77,0,83,0,84,0,0,0,78,0,69,0,84,0,0,0,78,0,83,0,84,0,0,0,80,0,78,0,84,0,0,0,80,0,82,0,67,0,0,0,80,0,82,0,84,0,0,0,80,0,83,0,84,0,0,0,82,0,79,0,67,0,0,0,82,0,79,0,75,0,0,0,83,0,83,0,84,0,0,0,67,0,117,0,98,0,97,0,0,0,73,0,114,0,97,0,110,0,0,0,80,0,97,0,114,0,97,0,0,0,87,0,45,0,83,0,85,0,0,0,90,0,105,0,111,0,110,0,0,0,67,0,45,0,69,0,117,0,114,0,0,0,67,0,104,0,105,0,108,0,101,0,0,0,69,0,103,0,121,0,112,0,116,0,0,0,50,0,48,0,50,0,52,0,97,0,0,0,72,0,97,0,105,0,116,0,105,0,0,0,74,0,97,0,112,0,97,0,110,0,0,0,76,0,105,0,98,0,121,0,97,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,0,0,69,0,85,0,65,0,115,0,105,0,97,0,0,0,73,0,115,0,114,0,97,0,101,0,108,0,0,0,78,0,97,0,118,0,97,0,106,0,111,0,0,0,80,0,111,0,108,0,97,0,110,0,100,0,0,0,84,0,117,0,114,0,107,0,101,0,121,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,0,0,78,0,90,0,45,0,67,0,72,0,65,0,84,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,0,0,71,0,66,0,45,0,69,0,105,0,114,0,101,0,0,0,69,0,116,0,99,0,47,0,85,0,67,0,84,0,0,0,70,0,97,0,99,0,116,0,111,0,114,0,121,0,0,0,73,0,99,0,101,0,108,0,97,0,110,0,100,0,0,0,76,0,101,0,98,0,97,0,110,0,111,0,110,0,0,0,77,0,111,0,108,0,100,0,111,0,118,0,97,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,48,0,0,0,69,0,116,0,99,0,47,0,90,0,117,0,108,0,117,0,0,0,72,0,111,0,110,0,103,0,107,0,111,0,110,0,103,0,0,0,80,0,111,0,114,0,116,0,117,0,103,0,97,0,108,0,0,0,85,0,83,0,47,0,83,0,97,0,109,0,111,0,97,0,0,0,80,0,97,0,108,0,101,0,115,0,116,0,105,0,110,0,101,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,48,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,100,0,101,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,107,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,105,0,108,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,71,0,97,0,122,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,118,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,109,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,114,0,97,0,108,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,57,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,57,0,0,0,85,0,83,0,47,0,65,0,108,0,97,0,115,0,107,0,97,0,0,0,85,0,83,0,47,0,72,0,97,0,119,0,97,0,105,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,109,0,109,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,105,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,97,0,99,0,99,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,98,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,97,0,116,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,109,0,115,0,107,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,52,0,0,0,85,0,83,0,47,0,65,0,114,0,105,0,122,0,111,0,110,0,97,0,0,0,85,0,83,0,47,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,85,0,83,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,85,0,83,0,47,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,109,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,108,0,109,0,97,0,116,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,110,0,97,0,100,0,121,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,111,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,116,0,121,0,114,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,101,0,105,0,114,0,117,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,114,0,117,0,110,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,97,0,114,0,98,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,101,0,98,0,114,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,119,0,97,0,105,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,110,0,105,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,117,0,115,0,99,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,105,0,121,0,97,0,100,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,105,0,103,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,98,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,110,0,103,0,111,0,110,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,65,0,99,0,114,0,101,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,69,0,97,0,115,0,116,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,87,0,101,0,115,0,116,0,0,0,69,0,116,0,99,0,47,0,85,0,110,0,107,0,110,0,111,0,119,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,121,0,105,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,79,0,115,0,108,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,105,0,103,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,111,0,109,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,104,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,89,0,97,0,112,0,0,0,85,0,83,0,47,0,65,0,108,0,101,0,117,0,116,0,105,0,97,0,110,0,0,0,85,0,83,0,47,0,77,0,105,0,99,0,104,0,105,0,103,0,97,0,110,0,0,0,85,0,83,0,47,0,77,0,111,0,117,0,110,0,116,0,97,0,105,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,99,0,99,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,101,0,117,0,116,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,107,0,97,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,103,0,111,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,117,0,110,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,116,0,107,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,109,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,109,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,117,0,117,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,103,0,104,0,100,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,104,0,114,0,97,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,110,0,103,0,107,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,114,0,110,0,97,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,105,0,115,0,104,0,107,0,101,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,111,0,108,0,111,0,109,0,98,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,114,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,107,0,97,0,114,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,114,0,97,0,99,0,104,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,115,0,104,0,103,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,111,0,108,0,107,0,97,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,99,0,104,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,103,0,97,0,100,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,98,0,105,0,108,0,105,0,115,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,114,0,101,0,118,0,97,0,110,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,89,0,117,0,107,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,114,0,111,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,108,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,105,0,110,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,97,0,114,0,105,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,111,0,102,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,100,0,117,0,122,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,99,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,112,0,105,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,105,0,106,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,105,0,117,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,107,0,101,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,65,0,83,0,84,0,52,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,67,0,83,0,84,0,54,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,69,0,83,0,84,0,53,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,77,0,83,0,84,0,55,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,80,0,83,0,84,0,56,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,89,0,83,0,84,0,57,0,0,0,69,0,116,0,99,0,47,0,71,0,114,0,101,0,101,0,110,0,119,0,105,0,99,0,104,0,0,0,69,0,116,0,99,0,47,0,85,0,110,0,105,0,118,0,101,0,114,0,115,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,108,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,67,0,84,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,97,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,103,0,117,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,106,0,117,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,105,0,115,0,115,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,117,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,114,0,97,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,103,0,97,0,108,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,97,0,110,0,100,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,115,0,97,0,107,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,108,0,97,0,98,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,112,0,117,0,116,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,115,0,101,0,114,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,97,0,109,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,117,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,101,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,105,0,115,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,105,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,97,0,109,0,97,0,115,0,99,0,117,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,115,0,104,0,97,0,110,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,121,0,97,0,112,0,117,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,104,0,97,0,110,0,100,0,121,0,103,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,111,0,115,0,116,0,97,0,110,0,97,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,107,0,104,0,97,0,108,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,108,0,95,0,65,0,118,0,105,0,118,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,115,0,116,0,45,0,78,0,101,0,114,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,72,0,73,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,78,0,83,0,87,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,116,0,104,0,101,0,110,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,74,0,101,0,114,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,100,0,114,0,105,0,100,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,110,0,97,0,99,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,114,0,97,0,103,0,117,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,109,0,97,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,107,0,111,0,112,0,106,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,101,0,110,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,103,0,114,0,101,0,98,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,117,0,114,0,105,0,99,0,104,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,97,0,103,0,111,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,109,0,111,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,117,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,102,0,97,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,97,0,117,0,114,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,108,0,97,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,109,0,111,0,97,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,72,0,83,0,84,0,49,0,48,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,98,0,105,0,100,0,106,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,108,0,103,0,105,0,101,0,114,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,110,0,97,0,107,0,114,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,97,0,109,0,112,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,98,0,97,0,98,0,97,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,105,0,114,0,111,0,98,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,114,0,105,0,112,0,111,0,108,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,105,0,122,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,103,0,111,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,110,0,99,0,117,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,105,0,97,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,121,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,117,0,118,0,105,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,110,0,101,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,95,0,80,0,97,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,101,0,105,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,114,0,105,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,115,0,115,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,97,0,109,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,99,0,105,0,102,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,105,0,114,0,103,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,107,0,104,0,97,0,98,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,111,0,110,0,103,0,113,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,117,0,110,0,103,0,107,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,70,0,97,0,109,0,97,0,103,0,117,0,115,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,104,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,111,0,110,0,116,0,105,0,97,0,110,0,97,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,121,0,111,0,110,0,103,0,121,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,121,0,122,0,121,0,108,0,111,0,114,0,100,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,109,0,97,0,114,0,107,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,105,0,101,0,110,0,116,0,105,0,97,0,110,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,87,0,101,0,115,0,116,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,110,0,100,0,111,0,114,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,102,0,97,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,116,0,111,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,97,0,108,0,108,0,105,0,110,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,116,0,105,0,99,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,108,0,110,0,105,0,117,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,121,0,111,0,116,0,116,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,82,0,101,0,117,0,110,0,105,0,111,0,110,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,47,0,66,0,97,0,106,0,97,0,83,0,117,0,114,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,47,0,71,0,101,0,110,0,101,0,114,0,97,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,97,0,110,0,116,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,111,0,115,0,114,0,97,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,106,0,117,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,105,0,100,0,119,0,97,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,117,0,109,0,101,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,105,0,112,0,97,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,104,0,105,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,114,0,97,0,119,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,108,0,108,0,105,0,115,0,0,0,85,0,83,0,47,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,45,0,78,0,101,0,119,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,110,0,111,0,120,0,95,0,73,0,78,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,67,0,83,0,84,0,54,0,67,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,69,0,83,0,84,0,53,0,69,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,77,0,83,0,84,0,55,0,77,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,80,0,83,0,84,0,56,0,80,0,68,0,84,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,116,0,121,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,106,0,105,0,98,0,111,0,117,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,65,0,97,0,105,0,117,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,70,0,114,0,101,0,101,0,116,0,111,0,119,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,71,0,97,0,98,0,111,0,114,0,111,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,104,0,97,0,114,0,116,0,111,0,117,0,109,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,110,0,115,0,104,0,97,0,115,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,114,0,111,0,118,0,105,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,100,0,106,0,97,0,109,0,101,0,110,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,84,0,111,0,109,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,109,0,98,0,117,0,107,0,116,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,100,0,104,0,111,0,101,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,116,0,105,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,114,0,97,0,99,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,101,0,110,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,114,0,101,0,115,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,114,0,97,0,99,0,97,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,116,0,114,0,111,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,113,0,97,0,108,0,117,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,105,0,103,0,111,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,99,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,112,0,105,0,103,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,79,0,106,0,105,0,110,0,97,0,103,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,111,0,115,0,97,0,114,0,105,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,116,0,111,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,111,0,105,0,98,0,97,0,108,0,115,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,104,0,110,0,111,0,109,0,95,0,80,0,101,0,110,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,110,0,95,0,66,0,97,0,116,0,111,0,114,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,65,0,122,0,111,0,114,0,101,0,115,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,110,0,97,0,114,0,121,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,69,0,117,0,99,0,108,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,111,0,117,0,116,0,104,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,77,0,111,0,117,0,110,0,116,0,97,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,103,0,114,0,97,0,100,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,117,0,115,0,115,0,101,0,108,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,100,0,97,0,112,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,115,0,105,0,110,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,104,0,105,0,115,0,105,0,110,0,97,0,117,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,117,0,101,0,114,0,110,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,72,0,101,0,108,0,115,0,105,0,110,0,107,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,106,0,101,0,118,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,115,0,112,0,111,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,85,0,122,0,104,0,103,0,111,0,114,0,111,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,108,0,100,0,105,0,118,0,101,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,97,0,107,0,97,0,111,0,102,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,109,0,98,0,105,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,114,0,102,0,111,0,108,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,104,0,110,0,112,0,101,0,105,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,65,0,83,0,84,0,52,0,65,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,89,0,83,0,84,0,57,0,89,0,68,0,84,0,0,0,85,0,83,0,47,0,69,0,97,0,115,0,116,0,45,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,84,0,114,0,111,0,108,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,106,0,117,0,109,0,98,0,117,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,103,0,97,0,100,0,105,0,115,0,104,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,103,0,117,0,105,0,108,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,117,0,110,0,99,0,105,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,116,0,105,0,107,0,111,0,107,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,114,0,98,0,97,0,100,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,105,0,114,0,117,0,110,0,101,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,110,0,115,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,114,0,101,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,115,0,111,0,108,0,117,0,116,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,97,0,114,0,101,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,104,0,105,0,112,0,114,0,111,0,99,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,75,0,105,0,116,0,116,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,76,0,117,0,99,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,101,0,121,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,97,0,118,0,105,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,121,0,111,0,119,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,95,0,67,0,104,0,105,0,95,0,77,0,105,0,110,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,115,0,105,0,98,0,105,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,66,0,101,0,114,0,109,0,117,0,100,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,77,0,97,0,100,0,101,0,105,0,114,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,97,0,110,0,108,0,101,0,121,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,67,0,117,0,114,0,114,0,105,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,68,0,97,0,114,0,119,0,105,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,68,0,101,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,109,0,115,0,116,0,101,0,114,0,100,0,97,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,115,0,116,0,114,0,97,0,107,0,104,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,99,0,104,0,97,0,114,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,105,0,98,0,114,0,97,0,108,0,116,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,106,0,117,0,98,0,108,0,106,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,114,0,105,0,101,0,104,0,97,0,109,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,111,0,100,0,103,0,111,0,114,0,105,0,99,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,116,0,111,0,99,0,107,0,104,0,111,0,108,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,85,0,108,0,121,0,97,0,110,0,111,0,118,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,111,0,108,0,103,0,111,0,103,0,114,0,97,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,114,0,105,0,115,0,116,0,109,0,97,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,75,0,101,0,114,0,103,0,117,0,101,0,108,0,101,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,117,0,114,0,105,0,116,0,105,0,117,0,115,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,47,0,66,0,97,0,106,0,97,0,78,0,111,0,114,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,117,0,110,0,97,0,102,0,117,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,74,0,111,0,104,0,110,0,115,0,116,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,105,0,116,0,99,0,97,0,105,0,114,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,97,0,98,0,108,0,97,0,110,0,99,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,98,0,114,0,101,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,98,0,117,0,109,0,98,0,97,0,115,0,104,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,117,0,97,0,107,0,99,0,104,0,111,0,116,0,116,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,45,0,78,0,111,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,97,0,103,0,117,0,97,0,105,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,97,0,95,0,86,0,105,0,115,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,104,0,117,0,97,0,104,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,97,0,108,0,101,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,108,0,97,0,99,0,101,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,111,0,115,0,101,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,116,0,101,0,109,0,97,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,121,0,97,0,113,0,117,0,105,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,116,0,97,0,109,0,111,0,114,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,111,0,109,0,105,0,110,0,101,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,114,0,114,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,80,0,97,0,108,0,109,0,101,0,114,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,86,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,97,0,108,0,97,0,95,0,76,0,117,0,109,0,112,0,117,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,107,0,117,0,122,0,110,0,101,0,116,0,115,0,107,0,0,0,67,0,104,0,105,0,108,0,101,0,47,0,67,0,111,0,110,0,116,0,105,0,110,0,101,0,110,0,116,0,97,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,97,0,116,0,105,0,115,0,108,0,97,0,118,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,111,0,112,0,101,0,110,0,104,0,97,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,117,0,120,0,101,0,109,0,98,0,111,0,117,0,114,0,103,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,110,0,95,0,77,0,97,0,114,0,105,0,110,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,105,0,109,0,102,0,101,0,114,0,111,0,112,0,111,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,112,0,111,0,114,0,111,0,122,0,104,0,121,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,108,0,97,0,112,0,97,0,103,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,114,0,113,0,117,0,101,0,115,0,97,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,82,0,97,0,114,0,111,0,116,0,111,0,110,0,103,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,111,0,110,0,103,0,97,0,116,0,97,0,112,0,117,0,0,0,85,0,83,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,45,0,83,0,116,0,97,0,114,0,107,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,100,0,105,0,115,0,95,0,65,0,98,0,97,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,114,0,97,0,122,0,122,0,97,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,79,0,117,0,97,0,103,0,97,0,100,0,111,0,117,0,103,0,111,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,115,0,116,0,97,0,95,0,82,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,95,0,87,0,97,0,121,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,97,0,110,0,100,0,95,0,84,0,117,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,100,0,101,0,108,0,111,0,117,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,101,0,114,0,109,0,111,0,115,0,105,0,108,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,114,0,97,0,108,0,101,0,110,0,100,0,105,0,106,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,116,0,105,0,110,0,105,0,113,0,117,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,116,0,108,0,97,0,107,0,97,0,116,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,118,0,105,0,100,0,101,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,115,0,101,0,114,0,114,0,97,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,114,0,97,0,109,0,97,0,114,0,105,0,98,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,95,0,65,0,99,0,114,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,86,0,105,0,110,0,99,0,101,0,110,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,99,0,77,0,117,0,114,0,100,0,111,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,82,0,111,0,116,0,104,0,101,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,114,0,101,0,100,0,110,0,101,0,107,0,111,0,108,0,121,0,109,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,106,0,117,0,110,0,103,0,95,0,80,0,97,0,110,0,100,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,107,0,97,0,116,0,101,0,114,0,105,0,110,0,98,0,117,0,114,0,103,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,74,0,97,0,110,0,95,0,77,0,97,0,121,0,101,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,95,0,72,0,101,0,108,0,101,0,110,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,67,0,97,0,110,0,98,0,101,0,114,0,114,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,105,0,110,0,100,0,101,0,109,0,97,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,84,0,97,0,115,0,109,0,97,0,110,0,105,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,86,0,105,0,99,0,116,0,111,0,114,0,105,0,97,0,0,0,67,0,104,0,105,0,108,0,101,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,73,0,115,0,108,0,97,0,110,0,100,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,108,0,101,0,95,0,111,0,102,0,95,0,77,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,97,0,108,0,105,0,110,0,105,0,110,0,103,0,114,0,97,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,105,0,114,0,105,0,116,0,105,0,109,0,97,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,111,0,104,0,97,0,110,0,110,0,101,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,83,0,97,0,108,0,118,0,97,0,100,0,111,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,95,0,78,0,101,0,108,0,115,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,103,0,110,0,105,0,114,0,116,0,117,0,110,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,95,0,86,0,101,0,108,0,104,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,101,0,114,0,116,0,111,0,95,0,82,0,105,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,97,0,105,0,110,0,121,0,95,0,82,0,105,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,101,0,103,0,117,0,99,0,105,0,103,0,97,0,108,0,112,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,110,0,100,0,101,0,114,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,89,0,101,0,108,0,108,0,111,0,119,0,107,0,110,0,105,0,102,0,101,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,112,0,101,0,95,0,86,0,101,0,114,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,77,0,101,0,108,0,98,0,111,0,117,0,114,0,110,0,101,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,78,0,101,0,119,0,102,0,111,0,117,0,110,0,100,0,108,0,97,0,110,0,100,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,83,0,97,0,115,0,107,0,97,0,116,0,99,0,104,0,101,0,119,0,97,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,65,0,110,0,116,0,97,0,110,0,97,0,110,0,97,0,114,0,105,0,118,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,100,0,97,0,108,0,99,0,97,0,110,0,97,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,114,0,95,0,101,0,115,0,95,0,83,0,97,0,108,0,97,0,97,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,99,0,45,0,83,0,97,0,98,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,112,0,111,0,95,0,71,0,114,0,97,0,110,0,100,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,110,0,109,0,97,0,114,0,107,0,115,0,104,0,97,0,118,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,95,0,67,0,114,0,101,0,101,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,75,0,110,0,111,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,110,0,116,0,97,0,95,0,65,0,114,0,101,0,110,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,97,0,110,0,107,0,105,0,110,0,95,0,73,0,110,0,108,0,101,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,97,0,95,0,73,0,115,0,97,0,98,0,101,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,99,0,111,0,114,0,101,0,115,0,98,0,121,0,115,0,117,0,110,0,100,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,113,0,117,0,97,0,114,0,105,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,81,0,117,0,101,0,101,0,110,0,115,0,108,0,97,0,110,0,100,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,89,0,97,0,110,0,99,0,111,0,119,0,105,0,110,0,110,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,66,0,111,0,117,0,103,0,97,0,105,0,110,0,118,0,105,0,108,0,108,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,114,0,116,0,95,0,77,0,111,0,114,0,101,0,115,0,98,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,98,0,114,0,105,0,100,0,103,0,101,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,105,0,117,0,100,0,97,0,100,0,95,0,74,0,117,0,97,0,114,0,101,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,97,0,108,0,95,0,72,0,97,0,114,0,98,0,111,0,117,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,101,0,118,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,119,0,101,0,114,0,95,0,80,0,114,0,105,0,110,0,99,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,95,0,111,0,102,0,95,0,83,0,112,0,97,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,111,0,95,0,68,0,111,0,109,0,105,0,110,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,66,0,97,0,114,0,116,0,104,0,101,0,108,0,101,0,109,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,119,0,105,0,102,0,116,0,95,0,67,0,117,0,114,0,114,0,101,0,110,0,116,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,80,0,111,0,108,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,111,0,107,0,101,0,110,0,95,0,72,0,105,0,108,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,95,0,66,0,97,0,110,0,100,0,101,0,114,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,45,0,97,0,117,0,45,0,80,0,114,0,105,0,110,0,99,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,71,0,101,0,111,0,114,0,103,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,108,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,77,0,97,0,114,0,101,0,110,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,87,0,105,0,110,0,97,0,109,0,97,0,99,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,69,0,97,0,115,0,116,0,45,0,83,0,97,0,115,0,107,0,97,0,116,0,99,0,104,0,101,0,119,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,84,0,117,0,99,0,117,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,85,0,115,0,104,0,117,0,97,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,84,0,101,0,108,0,108,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,105,0,110,0,99,0,101,0,110,0,110,0,101,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,117,0,109,0,111,0,110,0,116,0,68,0,85,0,114,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,76,0,97,0,95,0,82,0,105,0,111,0,106,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,74,0,117,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,76,0,117,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,80,0,101,0,116,0,101,0,114,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,77,0,111,0,110,0,116,0,105,0,99,0,101,0,108,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,66,0,101,0,117,0,108,0,97,0,104,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,67,0,101,0,110,0,116,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,82,0,105,0,111,0,95,0,71,0,97,0,108,0,108,0,101,0,103,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,78,0,101,0,119,0,95,0,83,0,97,0,108,0,101,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,111,0,109,0,111,0,100,0,82,0,105,0,118,0,97,0,100,0,97,0,118,0,105,0,97,0,0,0,126,2,223,10,240,2,216,2,244,2,248,2,100,14,33,8,204,29,115,14,227,10,241,10,255,10,13,11,27,11,41,11,208,18,223,29,33,23,46,8,252,26,59,8,130,14,72,8,27,34,224,18,55,11,240,18,0,19,16,19,69,11,139,32,137,6,145,14,32,19,83,11,48,19,85,8,14,27,149,6,97,11,32,27,111,11,125,11,139,11,153,11,160,14,50,23,64,19,175,14,80,19,167,11,50,27,242,29,68,27,96,19,112,19,190,14,98,8,128,19,111,8,86,27,67,23,144,19,104,27,251,38,82,38,88,39,48,37,183,36,230,37,74,37,26,39,207,36,1,38,28,38,100,37,126,37,181,11,84,23,101,23,124,8,195,11,114,36,118,23,209,11,205,14,48,34,122,27,220,14,223,11,69,34,128,35,90,34,235,14,160,19,140,27,176,19,250,14,192,19,158,27,150,35,172,35,208,19,5,30,224,19,9,15,240,19,111,34,24,15,132,34,39,15,0,20,135,23,152,23,169,23,159,32,186,23,179,32,24,30,176,27,194,27,16,20,212,27,43,30,32,20,62,30,230,27,248,27,54,15,48,20,69,15,81,30,222,38,153,34,231,36,55,38,152,37,194,35,178,37,255,36,174,34,84,15,64,20,112,18,237,11,99,15,110,38,138,38,96,18,100,30,114,15,137,8,199,32,119,30,216,35,129,15,80,20,144,15,96,20,138,30,10,28,203,23,112,20,28,28,159,15,157,30,219,32,220,23,128,20,46,28,176,30,237,23,195,30,174,15,254,23,144,20,150,8,160,20,166,38,194,38,57,39,163,8,176,20,189,15,239,32,214,30,192,20,137,36,238,35,233,30,3,33,23,33,195,34,43,33,216,34,204,15,219,15,15,24,252,30,208,20,237,34,32,24,49,24,4,36,64,28,2,35,66,24,251,11,26,36,83,24,100,24,117,24,82,28,15,31,48,36,63,33,199,10,83,33,224,20,240,20,0,21,100,28,234,15,34,31,134,24,16,21,103,33,151,24,168,24,204,37,23,35,118,28,53,31,136,28,72,31,70,36,185,24,16,23,154,28,123,33,104,4,161,6,118,5,173,6,129,5,185,6,9,12,249,15,197,6,176,8,189,8,114,4,202,8,215,8,209,6,228,8,221,6,23,12,140,5,32,21,8,16,23,16,241,8,151,5,37,12,162,5,124,4,173,5,51,12,38,16,134,4,233,6,245,6,202,24,53,16,144,4,254,8,65,12,11,9,79,12,68,16,184,5,83,16,24,9,37,9,98,16,93,12,107,12,50,9,219,24,172,28,63,9,1,7,195,5,206,5,76,9,121,12,13,7,25,7,89,9,190,28,236,24,154,4,164,4,48,21,113,16,128,16,217,5,135,12,143,16,102,9,37,7,49,7,149,12,158,16,228,5,163,12,85,14,91,31,61,7,177,12,115,9,73,7,191,12,85,7,128,9,239,5,250,5,110,31,253,24,64,21,97,7,205,12,173,16,14,25,141,9,109,7,129,31,154,9,80,21,31,25,96,21,143,33,112,21,188,16,148,31,48,25,167,31,160,36,186,31,65,25,213,10,205,31,224,31,92,36,243,31,82,25,99,25,128,21,116,25,219,12,6,32,163,33,183,33,233,12,144,21,160,21,44,35,176,21,133,25,25,32,44,32,203,16,65,35,252,2,0,3,121,7,150,25,133,7,145,7,4,3,8,3,12,3,16,3,152,18,220,2,192,21,218,16,23,37,233,16,208,21,203,33,248,16,223,33,167,9,208,28,63,32,96,3,20,3,24,3,28,3,32,3,168,18,133,3,240,3,221,3,84,4,174,4,5,6,16,6,27,6,184,4,194,4,204,4,214,4,224,4,234,4,244,4,254,4,94,4,8,5,38,6,49,6,60,6,71,6,82,6,18,5,28,5,38,5,48,5,58,5,68,5,78,5,88,5,29,4,171,10,245,3,229,3,185,10,157,7,38,4,167,25,7,17,184,25,247,12,22,17,224,21,5,13,226,28,240,21,201,25,0,22,16,22,32,22,244,28,19,13,218,25,48,22,64,22,82,32,80,22,33,13,101,32,169,7,180,9,181,7,47,13,235,25,61,13,6,29,75,13,193,9,252,25,206,9,89,13,103,13,37,17,193,7,219,9,13,26,117,13,205,7,217,7,131,13,24,29,96,22,52,17,42,29,145,13,232,9,30,26,67,17,159,13,112,22,47,26,128,22,245,9,82,17,173,13,97,17,64,26,187,13,201,13,60,29,215,13,253,3,46,0,237,3,225,3,88,4,98,4,33,4,175,10,36,3,47,4,40,3,44,3,5,4,243,33,229,13,81,26,2,10,243,13,98,26,229,7,144,22,115,26,112,17,127,17,101,3,177,3,48,3,120,18,151,3,242,26,157,3,52,3,224,2,56,3,184,18,132,26,142,17,157,17,60,3,64,3,34,0,213,3,184,3,228,2,68,3,72,3,76,3,80,3,200,18,15,10,149,26,86,35,128,18,1,14,172,17,15,14,78,29,160,22,28,10,166,26,96,29,176,22,7,34,41,10,183,26,200,26,187,17,120,32,202,17,234,26,217,17,114,29,232,17,29,14,54,10,192,22,247,17,132,29,43,14,217,26,208,22,6,18,107,35,150,29,21,18,57,14,36,18,51,18,168,29,67,10,80,10,66,18,241,7,191,3,56,4,84,3,88,3,92,3,90,14,93,10,224,22,106,10,144,18,119,10,160,18,71,14,132,10,176,18,145,10,192,18,158,10,240,22,198,3,249,3,98,5,253,7,93,6,104,6,0,23,115,6,108,5,186,29,9,8,21,8,126,6,81,18,65,4,233,3,189,10,232,2,111,3,236,2,42,4,126,2,13,0,13,0,19,0,73,0,1,0,112,0,123,1,237,2,90,1,124,0,124,0,157,0,45,1,129,1,150,1,17,2,48,1,9,1,73,0,237,1,76,0,132,1,116,2,170,2,78,1,57,1,96,1,110,2,33,1,209,2,203,2,125,2,173,2,95,2,86,2,109,0,32,2,108,1,146,2,232,0,109,0,206,2,138,1,169,0,228,1,137,2,119,2,225,1,145,0,140,2,26,2,5,2,0,1,12,1,233,2,157,0,151,0,161,2,20,2,1,0,1,0,226,0,223,0,16,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,238,0,71,2,4,0,1,0,16,0,22,0,250,0,16,0,39,1,4,0,16,0,60,1,1,0,19,0,4,0,16,0,22,0,185,2,19,0,117,1,204,1,1,0,22,0,22,0,4,0,19,0,63,1,4,0,16,0,69,1,49,0,4,0,4,0,1,0,1,0,84,1,4,0,16,0,128,2,22,0,4,0,1,0,16,0,4,0,49,0,4,0,234,3,111,1,135,1,217,2,121,0,153,1,4,0,115,0,22,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,4,0,142,0,19,0,1,0,1,0,1,0,1,0,27,1,24,1,56,2,1,0,1,0,131,2,16,0,35,2,16,0,246,1,2,2,22,0,22,0,19,0,1,0,22,0,1,0,22,0,62,2,4,0,22,0,176,2,4,0,8,2,30,1,1,0,4,0,1,0,16,0,1,0,1,0,1,0,49,0,22,0,53,2,4,0,122,2,1,0,162,1,221,2,16,0,16,0,184,0,43,0,4,0,4,0,16,0,4,0,4,0,16,0,19,0,22,0,16,0,43,0,87,1,16,0,49,0,1,0,1,0,15,1,4,0,195,1,213,1,208,0,182,2,4,0,156,1,49,0,4,0,22,0,4,0,188,2,4,0,208,0,4,0,4,0,1,0,4,0,25,0,25,0,25,0,13,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,196,0,197,2,31,0,183,1,10,0,31,0,31,0,199,0,199,0,31,0,174,1,6,1,244,0,149,2,10,0,210,1,186,1,21,1,109,18,10,0,61,0,28,0,28,0,222,1,67,0,134,2,67,0,158,2,217,0,152,2,70,0,187,0,28,0,187,0,97,0,133,0,61,0,10,0,91,0,52,0,52,0,79,0,220,0,10,0,178,0,28,0,172,0,172,0,10,0,109,18,10,0,166,0,166,0,201,1,163,0,163,0,10,0,52,0,59,2,50,2,70,0,10,0,10,0,10,0,31,0,189,1,52,0,198,1,74,2,31,0,31,0,160,0,89,2,97,0,10,0,205,0,148,0,28,0,193,0,10,0,202,0,205,0,114,1,139,0,79,0,106,0,106,0,82,0,10,0,52,0,61,0,61,0,28,0,10,0,207,1,10,0,10,0,160,0,10,0,100,0,64,0,18,1,76,0,66,1,127,0,127,0,196,0,64,0,177,1,144,1,101,2,105,1,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,16,0,67,0,16,0,16,0,16,0,16,0,169,0,212,2,4,0,1,0,212,2,28,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,43,0,43,0,115,0,145,0,130,0,212,2,212,2,212,2,73,0,136,0,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,38,2,214,0,10,0,141,1,46,0,83,2,118,0,107,2,253,0,80,2,165,1,118,0,154,0,81,1,136,0,126,1,120,1,99,1,168,1,91,0,180,1,10,0,55,0,10,0,55,0,64,0,104,2,46,0,231,1,76,0,226,3,241,0,36,1,240,1,10,0,70,0,41,2,130,0,243,1,75,1,234,1,225,2,10,0,113,2,247,0,10,0,55,0,252,1,3,1,98,2,93,1,229,0,154,0,10,0,55,0,219,1,179,2,218,3,229,2,10,0,181,0,159,1,55,0,51,1,212,2,46,0,46,0,212,2,212,2,212,2,212,2,212,2,212,2,133,0,1,0,109,18,112,0,249,1,171,1,72,1,42,1,192,1,143,2,92,2,14,2,11,2,200,2,77,2,139,0,79,0,82,0,142,0,82,0,85,0,151,0,212,2,211,0,212,2,212,2,22,0,22,0,22,0,100,0,34,0,34,0,34,0,1,0,178,0,1,0,28,0,184,0,1,0,212,2,211,0,34,0,175,0,34,0,37,0,43,0,191,2,58,0,155,2,102,1,167,2,121,0,88,0,190,0,147,1,1,0,94,0,58,0,58,0,37,0,85,0,85,0,88,0,94,0,44,2,47,2,29,2,23,2,40,0,68,2,65,2,37,0,37,0,175,0,54,1,255,1,40,0,88,0,58,0,164,2,37,0,94,0,194,2,37,0,181,0,64,0,202,0,148,0,190,0,193,0,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,91,0,212,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,40,0,212,2,212,2,97,0,10,0,212,2,212,2,170,170,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,1,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,8,0,0,0,226,255,255,255,255,255,255,255,172,38,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,172,38,0,0,1,0,0,0,16,14,0,0,11,0,0,0,8,0,0,0,2,0,0,0,255,255,255,255,64,56,0,0,2,0,0,0,3,0,0,0,2,0,0,0,255,255,255,255,48,42,0,0,2,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,16,14,0,0,11,0,0,0,3,0,0,0,226,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,9,0,0,0,225,255,255,255,251,255,255,255,128,81,1,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,8,7,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,48,42,0,0,0,0,0,0,16,14,0,0,11,0,0,0,8,0,0,0,226,255,255,255,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,226,255,255,255,249,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,226,255,255,255,249,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,2,0,0,0,22,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,16,14,0,0,11,0,0,0,3,0,0,0,226,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,32,28,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,23,0,0,0,250,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,24,0,144,0,147,0,150,0,153,0,156,0,162,0,169,0,177,0,183,0,188,0,191,0,198,0,204,0,210,0,213,0,221,0,229,0,232,0,242,0,247,0,255,0,5,1,11,1,14,1,170,170,131,22,0,224,143,22,0,224,155,22,0,224,167,22,0,224,179,22,0,224,191,22,0,224,203,22,0,224,215,22,0,224,227,22,0,224,239,22,0,224,251,22,0,224,7,23,0,224,19,23,0,224,31,23,0,224,43,23,0,224,55,23,0,224,67,23,0,224,79,23,0,224,91,23,0,224,103,23,0,224,115,23,0,224,127,23,0,224,139,23,0,224,151,23,0,224,14,0,0,0,5,0,0,0,6,0,0,0,11,0,0,0,13,0,0,0,21,0,0,0,22,0,0,0,27,0,0,0,38,0,0,0,51,0,0,0,52,0,0,0,55,0,0,0,91,1,0,0,93,1,0,0,5,2,0,0,1,0,0,0,72,146,230,146,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,56,252,255,255,0,0,0,0,0,0,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,200,23,0,224,215,23,0,224,219,23,0,16,221,23,0,224,33,0,0,0,79,80,96,145,240,120,71,155,112,44,215,155,112,145,188,156,240,72,192,157,112,254,137,158,240,42,160,159,240,165,96,160,240,12,128,161,240,18,46,162,240,76,122,163,240,129,53,164,112,6,184,164,112,6,255,198,128,186,88,199,160,9,218,199,16,52,146,207,0,0,138,208,16,22,114,209,112,36,78,210,112,7,75,212,0,211,206,229,240,176,92,243,240,193,120,2,240,200,67,3,0,215,207,13,240,68,173,14,0,90,120,15,16,89,104,16,112,67,118,18,128,66,102,19,16,124,95,20,0,95,79,21,2,0,0,0,255,255,255,255,36,155,201,107,170,170,170,170,34,0,0,0,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,5,4,5,4,1,4,1,2,1,2,4,5,4,1,2,1,4,170,170,12,0,0,0,220,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,49,2,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,233,23,0,224,11,24,0,224,15,24,0,16,25,24,0,224,2,0,0,0,144,156,230,146,16,97,103,9,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,100,241,255,255,0,0,0,0,240,241,255,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,48,0,66,0,54,0,45,24,0,224,51,24,0,16,53,24,0,224,3,0,0,0,3,0,0,0,18,0,0,0,147,1,0,0,128,0,0,0,224,180,147,200,208,123,250,200,224,239,252,201,208,232,199,202,96,174,203,203,208,41,223,204,224,225,172,205,208,244,198,206,224,102,143,207,208,121,169,208,224,96,132,209,80,173,138,210,96,99,54,232,80,45,244,232,96,185,11,234,208,96,213,234,240,250,236,235,0,109,181,236,240,127,207,237,0,242,151,238,112,179,176,239,128,37,121,240,240,230,145,241,0,89,90,242,112,26,115,243,128,140,59,244,112,159,85,245,128,17,30,246,240,210,54,247,0,69,255,247,112,6,24,249,0,202,225,249,240,57,249,250,128,253,194,251,240,190,219,252,128,130,165,253,112,242,188,254,0,182,134,255,240,37,158,0,128,233,103,1,112,89,127,2,0,29,73,3,112,222,97,4,0,162,43,5,240,17,67,6,128,213,12,7,112,69,36,8,0,9,238,8,240,120,5,10,128,60,207,10,240,253,231,11,128,193,177,12,112,49,201,13,0,245,146,14,240,100,170,15,128,40,116,16,112,152,139,17,0,92,85,18,112,29,110,19,0,225,55,20,240,80,79,21,128,20,25,22,240,147,160,23,0,72,250,23,240,163,112,25,128,123,219,25,240,60,244,26,128,0,190,27,112,112,213,28,0,52,159,29,240,163,182,30,128,103,128,31,112,215,151,32,0,155,97,33,112,92,122,34,0,32,68,35,112,39,98,36,128,83,37,37,112,195,60,38,0,135,6,39,240,246,29,40,128,186,231,40,240,123,0,42,128,63,202,42,112,175,225,43,0,115,171,44,240,226,194,45,128,166,140,46,224,19,160,47,208,12,107,48,224,245,127,49,208,238,74,50,224,215,95,51,208,208,42,52,224,185,63,53,208,178,10,54,96,214,40,55,80,207,243,55,96,184,8,57,80,177,211,57,96,154,232,58,80,147,179,59,96,124,200,60,80,117,147,61,96,94,168,62,80,87,115,63,224,122,145,64,208,115,92,65,224,92,113,66,208,85,60,67,224,62,81,68,80,253,18,69,224,32,49,70,80,106,224,70,224,2,17,72,208,17,183,72,224,228,240,73,80,185,141,74,96,1,218,75,208,189,97,76,224,88,137,76,80,250,164,76,224,56,117,83,208,137,172,83,96,188,218,83,80,130,36,84,96,240,74,100,80,211,58,101,2,0,0,0,255,255,255,255,171,77,189,125,170,170,170,170,170,170,170,170,129,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,85,29,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,32,28,0,112,133,3,0,96,232,7,0,112,65,24,0,224,69,24,0,224,198,24,0,224,203,24,0,16,237,24,0,224,94,0,0,0,156,249,81,150,128,20,255,198,112,172,88,199,128,237,217,199,240,50,161,210,0,164,53,219,240,39,238,219,64,114,37,251,112,239,194,251,128,132,107,8,240,109,198,8,0,12,232,11,240,71,97,12,128,63,201,13,112,242,142,14,128,81,211,15,112,163,39,16,0,166,183,26,240,111,24,30,128,230,65,72,112,34,187,72,0,26,35,74,112,213,141,74,128,192,220,75,112,229,93,76,128,184,151,77,240,140,52,78,160,160,156,79,160,187,8,80,32,154,49,80,160,167,103,80,160,130,124,81,160,203,216,81,160,158,5,82,160,115,108,82,160,122,55,83,160,33,174,83,32,70,220,83,160,85,76,84,160,92,23,85,32,224,124,85,160,4,171,85,160,55,44,86,160,62,247,86,160,135,83,87,32,172,129,87,32,84,21,88,160,32,215,88,160,244,32,89,160,83,88,89,32,54,245,89,160,2,183,90,32,156,247,90,160,192,37,91,160,67,206,92,32,104,252,92,160,176,155,94,160,15,211,94,32,88,114,96,160,124,160,96,32,197,63,98,32,36,119,98,160,108,22,100,32,145,68,100,32,20,237,101,160,56,27,102,32,129,186,103,32,224,241,103,160,40,145,105,32,77,191,105,32,208,103,107,160,244,149,107,32,61,53,109,32,156,108,109,160,228,11,111,32,9,58,111,160,81,217,112,160,176,16,113,32,249,175,114,160,29,222,114,160,160,134,116,32,197,180,116,160,13,84,118,160,108,139,118,32,181,42,120,160,217,88,120,32,34,248,121,32,129,47,122,160,201,206,123,160,40,6,124,32,113,165,125,160,149,211,125,32,222,114,127,32,61,170,127,204,0,0,0,0,0,0,0,160,133,73,129,0,0,0,0,32,170,119,129,0,0,0,0,32,45,32,131,0,0,0,0,160,81,78,131,0,0,0,0,32,154,237,132,0,0,0,0,32,249,36,133,0,0,0,0,160,65,196,134,0,0,0,0,32,102,242,134,0,0,0,0,160,174,145,136,0,0,0,0,160,13,201,136,0,0,0,0,32,86,104,138,0,0,0,0,32,181,159,138,0,0,0,0,160,253,62,140,0,0,0,0,32,34,109,140,0,0,0,0,160,106,12,142,0,0,0,0,160,201,67,142,0,0,0,0,32,18,227,143,0,0,0,0,160,54,17,144,0,0,0,0,160,185,185,145,0,0,0,0,32,222,231,145,0,0,0,0,160,38,135,147,0,0,0,0,160,133,190,147,0,0,0,0,32,206,93,149,0,0,0,0,160,242,139,149,0,0,0,0,32,59,43,151,0,0,0,0,32,154,98,151,0,0,0,0,160,226,1,153,0,0,0,0,160,65,57,153,0,0,0,0,32,138,216,154,0,0,0,0,160,174,6,155,0,0,0,0,32,247,165,156,0,0,0,0,32,86,221,156,0,0,0,0,160,158,124,158,0,0,0,0,32,195,170,158,0,0,0,0,32,70,83,160,0,0,0,0,160,106,129,160,0,0,0,0,32,179,32,162,0,0,0,0,32,18,88,162,0,0,0,0,160,90,247,163,0,0,0,0,32,127,37,164,0,0,0,0,160,199,196,165,0,0,0,0,160,38,252,165,0,0,0,0,32,111,155,167,0,0,0,0,32,206,210,167,0,0,0,0,160,22,114,169,0,0,0,0,32,59,160,169,0,0,0,0,160,131,63,171,0,0,0,0,160,226,118,171,0,0,0,0,32,43,22,173,0,0,0,0,160,79,68,173,0,0,0,0,160,210,236,174,0,0,0,0,32,247,26,175,0,0,0,0,160,63,186,176,0,0,0,0,160,158,241,176,0,0,0,0,32,231,144,178,0,0,0,0,160,11,191,178,0,0,0,0,32,84,94,180,0,0,0,0,32,179,149,180,0,0,0,0,160,251,52,182,0,0,0,0,160,90,108,182,0,0,0,0,32,163,11,184,0,0,0,0,160,199,57,184,0,0,0,0,32,16,217,185,0,0,0,0,32,111,16,186,0,0,0,0,160,183,175,187,0,0,0,0,32,220,221,187,0,0,0,0,32,95,134,189,0,0,0,0,160,131,180,189,0,0,0,0,32,204,83,191,0,0,0,0,32,43,139,191,0,0,0,0,160,115,42,193,0,0,0,0,32,152,88,193,0,0,0,0,160,224,247,194,0,0,0,0,160,63,47,195,0,0,0,0,32,136,206,196,0,0,0,0,32,231,5,197,0,0,0,0,160,47,165,198,0,0,0,0,32,84,211,198,0,0,0,0,160,156,114,200,0,0,0,0,160,251,169,200,0,0,0,0,32,68,73,202,0,0,0,0,160,104,119,202,0,0,0,0,160,235,31,204,0,0,0,0,32,16,78,204,0,0,0,0,160,88,237,205,0,0,0,0,160,183,36,206,0,0,0,0,32,0,196,207,0,0,0,0,160,36,242,207,0,0,0,0,32,109,145,209,0,0,0,0,32,204,200,209,0,0,0,0,160,20,104,211,0,0,0,0,32,57,150,211,0,0,0,0,32,188,62,213,0,0,0,0,160,224,108,213,0,0,0,0,32,41,12,215,0,0,0,0,32,136,67,215,0,0,0,0,160,208,226,216,0,0,0,0,32,245,16,217,0,0,0,0,32,120,185,218,0,0,0,0,160,156,231,218,0,0,0,0,32,229,134,220,0,0,0,0,32,68,190,220,170,170,170,170,170,170,170,170,196,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,8,0,0,0,228,248,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,4,0,48,0,120,0,66,0,54,0,170,170,1,25,0,224,96,25,0,224,47,26,0,16,97,26,0,224,43,0,0,0,112,117,214,158,96,110,161,159,112,239,5,170,0,110,231,170,240,167,201,173,0,50,167,174,112,79,160,175,0,20,135,176,0,122,137,177,128,48,112,178,64,114,37,251,112,239,194,251,128,132,107,8,240,109,198,8,0,12,232,11,240,71,97,12,128,63,201,13,112,242,142,14,128,81,211,15,112,163,39,16,0,166,183,26,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,0,181,54,126,170,170,170,170,170,170,170,170,170,170,170,170,44,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,4,251,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,113,26,0,224,157,26,0,224,163,26,0,16,175,26,0,224,83,0,0,0,224,240,72,188,144,176,209,11,0,12,232,11,240,71,97,12,128,63,201,13,112,242,142,14,128,81,211,15,112,163,39,16,128,230,65,72,112,34,187,72,0,26,35,74,112,213,141,74,128,192,220,75,112,229,93,76,128,184,151,77,240,140,52,78,160,160,156,79,160,187,8,80,32,154,49,80,160,167,103,80,160,130,124,81,160,203,216,81,160,158,5,82,160,115,108,82,160,122,55,83,160,33,174,83,32,70,220,83,160,85,76,84,160,92,23,85,32,224,124,85,160,4,171,85,160,55,44,86,160,62,247,86,160,135,83,87,32,172,129,87,32,84,21,88,160,32,215,88,160,244,32,89,160,83,88,89,32,54,245,89,160,2,183,90,32,156,247,90,160,192,37,91,160,67,206,92,32,104,252,92,160,176,155,94,160,15,211,94,32,88,114,96,160,124,160,96,32,197,63,98,32,36,119,98,160,108,22,100,32,145,68,100,32,20,237,101,160,56,27,102,32,129,186,103,32,224,241,103,160,40,145,105,32,77,191,105,32,208,103,107,160,244,149,107,32,61,53,109,32,156,108,109,160,228,11,111,32,9,58,111,160,81,217,112,160,176,16,113,32,249,175,114,160,29,222,114,160,160,134,116,32,197,180,116,160,13,84,118,160,108,139,118,32,181,42,120,160,217,88,120,32,34,248,121,32,129,47,122,160,201,206,123,160,40,6,124,32,113,165,125,160,149,211,125,32,222,114,127,32,61,170,127,204,0,0,0,0,0,0,0,160,133,73,129,0,0,0,0,32,170,119,129,0,0,0,0,32,45,32,131,0,0,0,0,160,81,78,131,0,0,0,0,32,154,237,132,0,0,0,0,32,249,36,133,0,0,0,0,160,65,196,134,0,0,0,0,32,102,242,134,0,0,0,0,160,174,145,136,0,0,0,0,160,13,201,136,0,0,0,0,32,86,104,138,0,0,0,0,32,181,159,138,0,0,0,0,160,253,62,140,0,0,0,0,32,34,109,140,0,0,0,0,160,106,12,142,0,0,0,0,160,201,67,142,0,0,0,0,32,18,227,143,0,0,0,0,160,54,17,144,0,0,0,0,160,185,185,145,0,0,0,0,32,222,231,145,0,0,0,0,160,38,135,147,0,0,0,0,160,133,190,147,0,0,0,0,32,206,93,149,0,0,0,0,160,242,139,149,0,0,0,0,32,59,43,151,0,0,0,0,32,154,98,151,0,0,0,0,160,226,1,153,0,0,0,0,160,65,57,153,0,0,0,0,32,138,216,154,0,0,0,0,160,174,6,155,0,0,0,0,32,247,165,156,0,0,0,0,32,86,221,156,0,0,0,0,160,158,124,158,0,0,0,0,32,195,170,158,0,0,0,0,32,70,83,160,0,0,0,0,160,106,129,160,0,0,0,0,32,179,32,162,0,0,0,0,32,18,88,162,0,0,0,0,160,90,247,163,0,0,0,0,32,127,37,164,0,0,0,0,160,199,196,165,0,0,0,0,160,38,252,165,0,0,0,0,32,111,155,167,0,0,0,0,32,206,210,167,0,0,0,0,160,22,114,169,0,0,0,0,32,59,160,169,0,0,0,0,160,131,63,171,0,0,0,0,160,226,118,171,0,0,0,0,32,43,22,173,0,0,0,0,160,79,68,173,0,0,0,0,160,210,236,174,0,0,0,0,32,247,26,175,0,0,0,0,160,63,186,176,0,0,0,0,160,158,241,176,0,0,0,0,32,231,144,178,0,0,0,0,160,11,191,178,0,0,0,0,32,84,94,180,0,0,0,0,32,179,149,180,0,0,0,0,160,251,52,182,0,0,0,0,160,90,108,182,0,0,0,0,32,163,11,184,0,0,0,0,160,199,57,184,0,0,0,0,32,16,217,185,0,0,0,0,32,111,16,186,0,0,0,0,160,183,175,187,0,0,0,0,32,220,221,187,0,0,0,0,32,95,134,189,0,0,0,0,160,131,180,189,0,0,0,0,32,204,83,191,0,0,0,0,32,43,139,191,0,0,0,0,160,115,42,193,0,0,0,0,32,152,88,193,0,0,0,0,160,224,247,194,0,0,0,0,160,63,47,195,0,0,0,0,32,136,206,196,0,0,0,0,32,231,5,197,0,0,0,0,160,47,165,198,0,0,0,0,32,84,211,198,0,0,0,0,160,156,114,200,0,0,0,0,160,251,169,200,0,0,0,0,32,68,73,202,0,0,0,0,160,104,119,202,0,0,0,0,160,235,31,204,0,0,0,0,32,16,78,204,0,0,0,0,160,88,237,205,0,0,0,0,160,183,36,206,0,0,0,0,32,0,196,207,0,0,0,0,160,36,242,207,0,0,0,0,32,109,145,209,0,0,0,0,32,204,200,209,0,0,0,0,160,20,104,211,0,0,0,0,32,57,150,211,0,0,0,0,32,188,62,213,0,0,0,0,160,224,108,213,0,0,0,0,32,41,12,215,0,0,0,0,32,136,67,215,0,0,0,0,160,208,226,216,0,0,0,0,32,245,16,217,0,0,0,0,32,120,185,218,0,0,0,0,160,156,231,218,0,0,0,0,32,229,134,220,0,0,0,0,32,68,190,220,170,170,170,170,185,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,170,8,0,0,0,160,243,255,255,0,0,0,0,240,241,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,4,0,48,0,120,0,66,0,54,0,170,170,197,26,0,224,25,27,0,224,231,27,0,16,23,28,0,224,3,0,0,0,30,0,0,0,44,0,0,0,45,0,0,0,5,0,0,0,104,207,70,130,128,140,174,204,112,111,158,205,128,110,142,206,112,81,126,207,2,0,0,0,255,255,255,255,64,65,123,109,170,170,170,170,170,170,170,170,170,170,170,170,6,0,0,0,1,2,3,2,3,2,170,170,8,0,0,0,64,26,0,0,0,0,0,0,24,21,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,39,28,0,224,43,28,0,224,49,28,0,224,55,28,0,16,58,28,0,224,35,0,0,0,220,218,163,182,224,23,158,0,80,52,122,1,224,249,125,2,208,103,91,3,224,126,96,4,208,236,61,5,224,96,64,6,80,32,31,7,224,66,32,8,208,83,0,9,224,36,0,10,80,135,225,10,224,6,224,11,80,12,196,12,224,232,191,13,208,63,165,14,96,5,169,15,80,115,134,16,96,231,136,17,208,166,103,18,96,201,104,19,208,43,74,20,96,171,72,21,80,95,43,22,96,141,40,23,208,146,12,24,96,111,8,25,80,198,237,25,224,139,241,26,80,75,208,27,224,109,209,28,208,126,177,29,32,69,128,56,80,26,23,96,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,8,0,0,0,164,29,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,75,28,0,224,111,28,0,16,121,28,0,224,35,0,0,0,0,218,163,182,224,23,158,0,80,52,122,1,224,249,125,2,208,103,91,3,224,126,96,4,208,236,61,5,224,96,64,6,80,32,31,7,224,66,32,8,208,83,0,9,224,36,0,10,80,135,225,10,224,6,224,11,80,12,196,12,224,232,191,13,208,63,165,14,96,5,169,15,80,115,134,16,96,231,136,17,208,166,103,18,96,201,104,19,208,43,74,20,96,171,72,21,80,95,43,22,96,141,40,23,208,146,12,24,96,111,8,25,80,198,237,25,224,139,241,26,80,75,208,27,224,109,209,28,208,126,177,29,32,69,128,56,80,228,248,89,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,8,0,0,0,128,30,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,135,28,0,224,171,28,0,16,181,28,0,224,10,0,0,0,12,0,0,0,16,0,0,0,25,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,39,0,0,0,42,0,0,0,50,0,0,0,53,0,0,0,4,0,0,0,209,112,171,134,0,96,80,140,209,67,170,150,120,239,81,161,4,0,0,0,1,0,2,3,8,0,0,0,47,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,0,0,16,14,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,195,28,0,224,206,28,0,224,211,28,0,16,213,28,0,224,9,0,0,0,15,0,0,0,17,0,0,0,28,0,0,0,29,0,0,0,34,0,0,0,40,0,0,0,41,0,0,0,43,0,0,0,124,1,0,0,1,0,0,0,244,197,70,130,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,140,30,0,0,0,0,0,0,32,28,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,229,28,0,224,239,28,0,224,243,28,0,16,245,28,0,224,2,0,0,0,156,108,95,160,110,90,202,3,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,228,245,255,255,0,0,0,0,146,245,255,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,48,0,66,0,54,0,1,29,0,224,7,29,0,16,9,29,0,224,12,0,0,0,7,0,0,0,9,0,0,0,10,0,0,0,23,0,0,0,24,0,0,0,32,0,0,0,46,0,0,0,48,0,0,0,142,1,0,0,6,2,0,0,10,2,0,0,15,2,0,0,5,0,0,0,252,209,255,139,88,218,238,177,208,224,199,180,88,173,237,193,212,122,108,204,170,170,170,170,170,170,170,170,170,170,170,170,5,0,0,0,1,3,1,2,3,170,170,170,8,0,0,0,132,34,0,0,0,0,0,0,40,35,0,0,0,0,0,0,172,38,0,0,0,0,0,0,48,42,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,21,29,0,224,34,29,0,224,43,29,0,16,46,29,0,224,3,0,0,0,100,128,230,146,112,113,102,18,96,222,38,19,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,28,14,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,3,0,48,0,66,0,54,0,62,29,0,224,67,29,0,16,69,29,0,224,3,0,0,0,128,142,230,146,16,136,73,90,144,187,42,92,2,0,0,0,255,255,255,255,48,253,60,94,170,170,170,170,170,170,170,170,170,170,170,170,4,0,0,0,1,2,3,2,8,0,0,0,80,6,0,0,0,0,0,0,99,247,255,255,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,81,29,0,224,85,29,0,224,91,29,0,16,93,29,0,224,2,0,0,0,56,0,0,0,23,2,0,0,32,0,0,0,36,193,242,161,16,177,187,221,96,173,35,222,16,210,120,225,224,101,231,225,112,63,47,229,224,204,169,229,240,198,78,235,96,66,146,22,112,247,8,23,224,43,250,23,240,42,234,24,96,95,219,25,240,175,204,26,96,228,189,27,240,122,180,28,224,23,159,29,112,11,147,30,96,238,130,31,112,74,112,32,224,126,97,33,112,207,82,34,224,3,68,35,240,2,52,36,96,55,37,37,240,183,64,38,96,241,78,50,112,54,68,51,224,106,53,52,0,153,157,80,128,217,84,81,128,180,105,82,170,170,170,170,170,170,170,170,32,0,0,0,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,3,1,2,3,8,0,0,0,92,12,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,109,29,0,224,112,29,0,224,147,29,0,16,156,29,0,224,33,0,0,0,79,80,96,145,224,136,58,198,96,158,88,199,224,34,219,199,224,84,226,202,240,105,173,203,16,75,231,204,144,23,169,205,0,22,194,205,16,176,204,205,0,53,162,206,16,52,146,207,224,227,137,208,16,22,114,209,96,22,78,210,240,223,199,13,112,172,137,14,240,100,170,15,112,26,116,16,240,58,163,34,240,40,60,35,240,25,44,36,240,10,28,37,112,195,60,38,112,39,5,39,240,13,116,66,0,128,60,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,2,0,0,0,255,255,255,255,244,19,70,89,170,170,170,170,170,170,170,170,34,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,140,9,0,0,0,0,0,0,49,2,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,172,29,0,224,206,29,0,224,211,29,0,16,221,29,0,224,52,0,0,0,104,207,70,130,128,140,174,204,112,111,158,205,96,199,140,45,16,28,105,46,0,233,125,47,16,254,72,48,128,5,103,49,16,224,40,50,128,231,70,51,144,252,17,52,128,201,38,53,144,222,241,53,128,171,6,55,144,192,209,55,128,141,230,56,144,162,177,57,128,111,198,58,144,132,145,59,0,140,175,60,144,102,113,61,0,110,143,62,16,131,90,63,0,80,111,64,16,101,58,65,0,50,79,66,16,71,26,67,0,20,47,68,16,41,250,68,0,246,14,70,16,11,218,70,128,18,248,71,144,39,195,72,128,244,215,73,144,9,163,74,128,214,183,75,144,235,130,76,128,184,151,77,144,205,98,78,128,154,119,79,144,175,66,80,0,183,96,81,144,145,34,82,0,153,64,83,16,174,11,84,0,123,32,85,16,144,235,85,0,93,0,87,16,114,203,87,0,63,224,88,16,84,171,89,96,102,238,89,2,0,0,0,255,255,255,255,120,75,123,109,170,170,170,170,170,170,170,170,53,0,0,0,3,4,5,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,170,170,170,12,0,0,0,8,16,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,24,21,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,237,29,0,224,34,30,0,224,39,30,0,16,54,30,0,224,3,0,0,0,59,0,0,0,80,0,0,0,108,2,0,0,80,0,0,0,208,68,137,203,64,80,97,210,80,113,184,254,64,84,168,255,80,83,152,0,64,54,136,1,80,53,120,2,192,82,113,3,208,81,97,4,192,52,81,5,208,51,65,6,192,22,49,7,208,109,141,7,192,248,16,9,80,233,173,9,192,218,240,10,208,217,224,11,64,247,217,12,208,187,192,13,64,217,185,14,80,216,169,15,64,187,153,16,80,186,137,17,64,157,121,18,80,156,105,19,64,127,89,20,80,126,73,21,64,97,57,22,80,96,41,23,192,125,34,24,80,66,9,25,192,95,2,26,192,80,242,26,176,51,226,27,192,50,210,28,176,21,194,29,192,20,178,30,176,247,161,31,64,71,118,32,176,217,129,33,64,41,86,34,48,246,106,35,64,11,54,36,48,216,74,37,64,237,21,38,48,186,42,39,192,9,255,39,48,156,10,41,192,235,222,41,48,126,234,42,192,205,190,43,176,154,211,44,192,175,158,45,176,124,179,46,192,145,126,47,176,94,147,48,64,174,103,49,176,64,115,50,64,144,71,51,176,34,83,52,64,114,39,53,176,4,51,54,64,84,7,55,48,33,28,56,64,54,231,56,48,3,252,57,64,24,199,58,48,229,219,59,192,52,176,60,48,199,187,61,192,22,144,62,48,169,155,63,192,248,111,64,176,197,132,65,192,218,79,66,176,167,100,67,192,188,47,68,176,137,68,69,64,239,243,69,48,166,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,94,90,135,125,170,170,170,170,170,170,170,170,170,170,170,170,82,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,226,171,0,0,0,0,0,0,98,90,255,255,0,0,0,0,80,101,255,255,0,0,0,0,80,101,255,255,16,14,0,0,96,115,255,255,0,0,0,0,96,115,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,96,115,255,127,1,0,0,96,216,7,0,112,74,30,0,224,78,30,0,224,159,30,0,224,167,30,0,16,189,30,0,224,3,0,0,0,4,0,0,0,60,0,0,0,107,2,0,0,80,0,0,0,192,54,137,203,48,66,97,210,64,99,184,254,48,70,168,255,64,69,152,0,48,40,136,1,64,39,120,2,176,68,113,3,192,67,97,4,176,38,81,5,192,37,65,6,176,8,49,7,192,95,141,7,176,234,16,9,64,219,173,9,176,204,240,10,192,203,224,11,48,233,217,12,192,173,192,13,48,203,185,14,64,202,169,15,48,173,153,16,64,172,137,17,48,143,121,18,64,142,105,19,48,113,89,20,64,112,73,21,48,83,57,22,64,82,41,23,176,111,34,24,64,52,9,25,176,81,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,72,65,135,125,170,170,170,170,170,170,170,170,82,0,0,0,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,248,196,0,0,0,0,0,0,96,115,255,255,0,0,0,0,96,115,255,255,16,14,0,0,120,115,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,112,129,255,127,1,0,0,96,216,7,0,112,215,30,0,224,219,30,0,224,44,31,0,224,51,31,0,16,73,31,0,224,51,0,0,0,48,116,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,121,128,48,160,77,29,49,176,32,87,50,32,106,6,51,48,84,56,52,32,193,248,52,48,31,32,54,160,104,207,54,176,198,246,55,32,133,184,56,48,227,223,57,160,44,143,58,176,255,200,59,160,14,111,60,48,145,196,61,160,240,78,62,48,101,131,80,160,57,32,81,51,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,208,210,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,99,31,0,224,151,31,0,16,165,31,0,224,3,0,0,0,2,0,0,0,64,0,0,0,90,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,176,162,250,72,32,97,188,73,2,0,0,0,255,255,255,255,76,168,156,114,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,3,4,5,4,5,4,170,170,170,12,0,0,0,52,201,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,177,31,0,224,181,31,0,224,242,31,0,224,247,31,0,16,8,32,0,224,3,0,0,0,65,0,0,0,66,0,0,0,95,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,44,175,156,114,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,5,4,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,84,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,29,32,0,224,33,32,0,224,94,32,0,224,99,32,0,16,116,32,0,224,3,0,0,0,67,0,0,0,102,0,0,0,199,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,176,162,250,72,32,97,188,73,170,170,170,170,60,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,1,4,3,4,3,2,3,4,3,4,3,10,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,137,32,0,224,141,32,0,224,203,32,0,16,219,32,0,224,2,0,0,0,68,0,0,0,144,0,0,0,58,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,192,87,42,39,176,219,226,39,64,138,238,40,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,184,174,156,114,170,170,170,170,59,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,2,3,2,5,4,5,4,3,4,5,4,170,12,0,0,0,200,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,237,32,0,224,240,32,0,224,43,33,0,224,47,33,0,16,63,33,0,224,61,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,181,205,39,64,38,38,40,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,44,176,156,114,170,170,170,170,170,170,170,170,62,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,4,5,4,5,4,3,4,2,4,5,4,170,170,12,0,0,0,84,193,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,84,33,0,224,146,33,0,224,151,33,0,16,168,33,0,224,2,0,0,0,70,0,0,0,162,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,64,52,25,39,176,195,205,39,192,103,250,40,176,72,176,41,64,225,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,19,176,64,192,62,86,65,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,4,178,156,114,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,2,3,2,3,2,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,124,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,188,33,0,224,191,33,0,224,252,33,0,224,255,33,0,16,16,34,0,224,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,100,178,156,114,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,28,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,37,34,0,224,98,34,0,224,103,34,0,16,120,34,0,224,58,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,212,174,156,114,170,170,170,170,59,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,5,4,5,4,3,4,5,4,170,12,0,0,0,172,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,140,34,0,224,199,34,0,224,203,34,0,16,219,34,0,224,61,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,181,205,39,64,38,38,40,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,159,186,64,64,48,3,65,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,188,177,156,114,170,170,170,170,170,170,170,170,170,170,170,170,62,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,4,5,4,5,4,3,4,2,4,5,4,170,170,12,0,0,0,196,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,239,34,0,224,45,35,0,224,51,35,0,16,68,35,0,224,61,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,165,253,37,64,52,25,39,176,195,205,39,192,27,71,40,176,198,246,55,176,42,191,56,176,159,186,64,64,48,3,65,176,9,119,71,160,252,147,71,176,82,211,71,64,118,241,72,176,52,179,73,64,88,209,74,2,0,0,0,255,255,255,255,180,175,156,114,170,170,170,170,170,170,170,170,62,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,2,3,2,4,3,4,2,4,5,3,2,3,2,4,170,170,12,0,0,0,204,193,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,88,35,0,224,150,35,0,224,155,35,0,16,172,35,0,224,62,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,64,209,203,64,176,9,119,71,32,127,220,71,176,162,250,72,32,97,188,73,2,0,0,0,255,255,255,255,164,174,156,114,170,170,170,170,63,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,5,4,5,4,3,4,2,4,5,4,5,4,170,12,0,0,0,220,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,192,35,0,224,255,35,0,224,3,36,0,16,20,36,0,224,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,78,185,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,136,177,156,114,170,170,170,170,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,248,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,40,36,0,224,101,36,0,224,107,36,0,16,124,36,0,224,80,0,0,0,144,245,23,184,64,218,43,5,176,240,252,7,192,116,207,10,176,202,151,11,192,249,177,12,48,254,120,13,64,45,147,14,176,49,90,15,192,96,116,16,176,67,100,17,64,148,85,18,176,200,70,19,64,25,56,20,48,252,39,21,192,76,25,22,176,47,9,23,64,128,250,23,48,99,234,24,192,179,219,25,48,232,204,26,192,56,190,27,176,27,174,28,64,108,159,29,48,79,143,30,192,159,128,31,176,130,112,32,64,211,97,33,176,7,83,34,64,88,68,35,48,59,52,36,64,59,65,37,176,110,21,38,64,191,6,39,48,162,246,39,64,138,238,40,176,72,176,41,192,189,207,42,48,9,185,43,64,171,171,44,176,12,112,45,192,222,140,46,176,238,79,47,64,18,110,48,48,104,54,49,192,46,87,50,176,178,15,51,192,16,55,52,48,207,248,52,192,242,22,54,176,235,225,54,192,212,246,55,176,205,193,56,192,182,214,57,176,175,161,58,64,211,191,59,48,182,175,60,192,144,113,61,48,152,143,62,64,173,90,63,48,122,111,64,64,238,113,65,176,172,51,66,64,208,81,67,176,142,19,68,64,178,49,69,176,112,243,69,192,206,26,71,176,82,211,71,192,176,250,72,176,52,179,73,192,146,218,74,48,59,193,75,192,255,167,76,48,29,161,77,192,225,135,78,48,255,128,79,64,254,112,80,48,108,78,81,64,224,80,82,170,170,170,170,170,170,170,170,80,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,8,0,0,0,240,201,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,106,3,0,96,222,7,0,112,144,36,0,224,227,36,0,16,248,36,0,224,61,0,0,0,28,107,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,15,33,39,160,227,189,39,48,241,0,41,32,139,148,41,176,13,234,42,160,50,107,43,48,181,192,44,32,196,102,45,48,151,160,46,32,166,70,47,48,121,128,48,160,77,29,49,176,32,87,50,32,106,6,51,48,84,56,52,32,193,248,52,48,31,32,54,160,104,207,54,176,198,246,55,32,133,184,56,48,227,223,57,160,44,143,58,176,255,200,59,160,14,111,60,48,145,196,61,160,240,78,62,176,72,154,78,32,146,73,79,170,170,170,170,170,170,170,170,61,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,228,219,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,11,37,0,224,75,37,0,16,92,37,0,224,63,0,0,0,112,232,182,165,224,110,242,175,96,86,102,182,96,210,67,183,96,54,12,184,240,134,253,184,96,113,234,203,240,180,145,216,128,112,0,0,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,16,85,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,170,170,170,170,170,170,170,170,170,170,170,170,63,0,0,0,2,4,2,3,2,4,2,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,12,0,0,0,84,157,255,255,0,0,0,0,128,143,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,104,37,0,224,171,37,0,16,188,37,0,224,15,0,0,0,101,169,64,146,208,203,227,203,224,130,148,204,208,34,214,205,224,77,124,206,208,166,155,207,96,106,101,208,224,242,0,14,208,140,148,14,224,0,151,15,208,110,116,16,224,226,118,17,208,80,84,18,96,255,95,19,80,62,48,20,170,170,170,170,15,0,0,0,1,3,1,3,1,2,1,3,1,3,1,3,1,3,1,170,8,0,0,0,27,200,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,8,7,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,206,37,0,224,223,37,0,16,228,37,0,224,29,0,0,0,116,116,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,170,170,170,170,170,170,170,170,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,140,210,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,242,37,0,224,19,38,0,16,28,38,0,224,97,0,0,0,176,217,94,147,224,59,159,159,216,81,69,160,224,29,127,161,88,110,46,162,224,255,94,163,88,80,14,164,224,225,62,165,88,50,238,165,96,254,39,167,88,20,206,167,96,224,7,169,88,246,173,169,96,194,231,170,216,18,151,171,96,164,199,172,216,244,118,173,96,134,167,174,216,214,86,175,96,104,135,176,216,184,54,177,224,132,112,178,216,154,22,179,224,102,80,180,216,124,246,180,224,72,48,182,88,153,223,182,224,42,16,184,88,123,191,184,224,12,240,185,88,93,159,186,96,41,217,187,88,63,127,188,96,11,185,189,88,33,95,190,96,237,152,191,88,3,63,192,96,207,120,193,216,31,40,194,96,177,88,195,216,1,8,196,96,147,56,197,216,227,231,197,224,175,33,199,216,197,199,199,224,145,1,201,216,167,167,201,224,115,225,202,88,196,144,203,224,34,64,204,80,113,198,210,96,250,41,214,216,74,217,214,96,220,9,216,216,44,185,216,96,190,233,217,216,14,153,218,224,218,210,219,216,240,120,220,224,188,178,221,216,210,88,222,224,158,146,223,88,239,65,224,224,128,114,225,88,209,33,226,224,98,82,227,88,179,1,228,224,68,50,229,88,149,225,229,96,97,27,231,88,119,193,231,96,67,251,232,88,89,161,233,96,37,219,234,216,117,138,235,96,7,187,236,216,87,106,237,96,233,154,238,216,57,74,239,224,5,132,240,216,27,42,241,224,231,99,242,216,253,9,243,224,201,67,244,216,223,233,244,224,171,35,246,88,252,210,246,224,141,3,248,88,222,178,248,224,111,227,249,88,192,146,250,96,140,204,251,88,162,114,252,96,219,98,7,80,208,185,7,96,113,97,24,80,55,171,24,170,170,170,170,97,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,170,170,170,8,0,0,0,80,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,8,7,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,40,38,0,224,139,38,0,16,165,38,0,224,33,0,0,0,224,127,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,192,212,246,55,48,147,184,56,64,241,223,57,176,29,233,57,170,170,170,170,170,170,170,170,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,32,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,179,38,0,224,215,38,0,16,225,38,0,224,3,0,0,0,112,85,88,152,80,115,3,42,64,137,116,43,170,170,170,170,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,144,186,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,3,0,48,0,66,0,54,0,237,38,0,224,243,38,0,16,245,38,0,224,89,0,0,0,160,72,166,158,144,21,187,159,160,42,134,160,144,247,154,161,32,76,70,168,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,31,178,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,2,0,0,0,255,255,255,255,192,26,4,94,170,170,170,170,90,0,0,0,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,15,147,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,144,157,255,127,1,0,0,96,216,7,0,112,1,39,0,224,91,39,0,224,95,39,0,16,119,39,0,224,76,0,0,0,128,205,242,161,144,12,137,203,0,24,97,210,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,221,32,8,128,192,16,9,144,191,0,10,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,0,254,230,56,240,202,251,57,80,233,4,58,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,170,170,170,170,76,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,5,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,12,0,0,0,0,0,0,0,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,163,3,0,96,216,7,0,112,141,39,0,224,219,39,0,16,239,39,0,224,91,0,0,0,52,122,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,192,30,88,35,48,126,226,35,192,0,56,37,48,213,212,37,64,29,33,39,176,241,189,39,64,255,0,41,48,153,148,41,192,27,234,42,176,64,107,43,64,195,192,44,48,210,102,45,64,165,160,46,48,180,70,47,64,135,128,48,176,91,29,49,192,46,87,50,48,120,6,51,64,98,56,52,48,207,248,52,64,45,32,54,176,118,207,54,192,212,246,55,48,147,184,56,64,241,223,57,176,58,143,58,192,13,201,59,176,28,111,60,64,159,196,61,176,254,78,62,64,12,146,63,176,224,46,64,64,6,135,65,48,253,23,66,64,208,81,67,48,223,247,67,192,97,77,69,176,251,224,69,64,148,17,71,48,163,183,71,192,176,250,72,48,133,151,73,192,146,218,74,176,161,128,75,192,116,186,76,176,131,96,77,192,86,154,78,48,160,73,79,64,115,131,80,176,71,32,81,64,85,99,82,176,41,0,83,64,55,67,84,48,70,233,84,64,25,35,86,48,40,201,86,64,251,2,88,48,10,169,88,64,221,226,89,48,236,136,90,192,110,222,91,48,206,104,92,170,170,170,170,91,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,204,204,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,6,40,0,224,99,40,0,16,123,40,0,224,42,0,0,0,96,218,182,165,96,213,134,22,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,0,196,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,0,221,205,84,170,170,170,170,42,0,0,0,1,3,4,3,4,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,10,0,0,0,168,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,3,0,48,0,66,0,54,0,135,40,0,224,179,40,0,16,191,40,0,224,4,0,0,0,60,44,30,147,72,236,152,246,112,146,91,71,112,169,37,87,2,0,0,0,255,255,255,255,64,26,135,105,5,0,0,0,2,1,3,1,3,170,170,170,8,0,0,0,64,193,255,255,0,0,0,0,184,192,255,255,0,0,0,0,68,193,255,255,0,0,0,0,192,199,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,207,40,0,224,212,40,0,224,215,40,0,16,218,40,0,224,2,0,0,0,144,43,244,145,192,53,195,251,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,240,206,255,255,0,0,0,0,192,199,255,255,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,234,40,0,224,239,40,0,16,241,40,0,224,3,0,0,0,98,0,0,0,127,1,0,0,110,2,0,0,174,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,0,116,203,162,240,247,131,163,128,210,69,164,240,217,99,165,0,217,83,166,112,151,21,167,0,187,51,168,240,179,254,168,0,157,19,170,240,149,222,170,0,127,243,171,240,119,190,172,0,97,211,173,240,89,158,174,0,67,179,175,240,59,126,176,128,95,156,177,112,88,103,178,128,65,124,179,112,58,71,180,128,35,92,181,112,28,39,182,128,5,60,183,112,254,6,184,128,231,27,185,112,224,230,185,0,4,5,187,112,194,198,187,0,230,228,188,240,222,175,189,0,200,196,190,240,192,143,191,0,214,90,192,112,60,176,193,0,140,132,194,240,132,79,195,0,110,100,196,240,102,47,197,128,138,77,198,240,72,15,199,128,108,45,200,112,101,248,200,128,78,13,202,112,71,216,202,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,0,23,233,0,0,7,234,240,226,246,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,112,105,63,246,128,104,47,247,240,133,40,248,128,74,15,249,240,103,8,250,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,160,254,3,94,175,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,8,0,0,0,212,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,216,7,0,112,253,40,0,224,1,41,0,224,176,41,0,224,179,41,0,16,224,41,0,224,60,0,0,0,112,232,182,165,224,110,242,175,96,86,102,182,96,210,67,183,96,54,12,184,240,134,253,184,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,16,85,184,75,0,34,205,76,16,55,152,77,0,4,173,78,16,25,120,79,0,230,140,80,144,53,97,81,0,200,108,82,144,23,65,83,0,170,76,84,144,249,32,85,0,140,44,86,144,219,0,87,128,168,21,88,144,189,224,88,128,138,245,89,144,159,192,90,128,108,213,91,16,188,169,92,128,78,181,93,16,158,137,94,128,48,149,95,16,128,105,96,0,77,126,97,16,98,73,98,0,47,94,99,60,0,0,0,1,3,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,10,0,0,0,140,156,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,246,41,0,224,51,42,0,16,67,42,0,224,63,0,0,0,112,232,182,165,224,110,242,175,96,86,102,182,96,210,67,183,96,54,12,184,240,134,253,184,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,144,165,156,75,128,92,214,76,144,135,124,77,128,62,182,78,144,105,92,79,128,32,150,80,144,75,60,81,128,2,118,82,144,45,28,83,128,228,85,84,144,15,252,84,128,198,53,86,16,44,229,86,0,227,30,88,16,14,197,88,0,197,254,89,16,240,164,90,0,167,222,91,16,210,132,92,0,137,190,93,16,180,100,94,0,107,158,95,144,208,77,96,128,135,135,97,144,178,45,98,0,47,94,99,96,241,134,99,144,148,13,100,128,75,71,101,63,0,0,0,1,3,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,1,2,1,170,10,0,0,0,44,156,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,1,0,0,96,232,7,0,112,83,42,0,224,147,42,0,16,164,42,0,224,9,0,0,0,77,22,232,163,96,73,54,17,80,110,183,17,96,43,22,19,80,80,151,19,96,224,151,39,208,182,110,40,96,194,119,41,208,217,194,41,9,0,0,0,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,51,177,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,185,42,0,224,195,42,0,16,199,42,0,224,89,0,0,0,148,123,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,192,30,88,35,48,126,226,35,192,0,56,37,48,213,212,37,64,29,33,39,176,241,189,39,64,255,0,41,48,153,148,41,192,27,234,42,176,64,107,43,64,195,192,44,48,210,102,45,64,165,160,46,48,180,70,47,64,135,128,48,176,91,29,49,192,46,87,50,48,120,6,51,64,98,56,52,48,207,248,52,64,45,32,54,176,118,207,54,192,212,246,55,48,147,184,56,64,241,223,57,176,58,143,58,192,13,201,59,176,28,111,60,64,159,196,61,176,254,78,62,64,6,135,65,48,253,23,66,64,208,81,67,48,223,247,67,192,97,77,69,176,251,224,69,64,148,17,71,48,163,183,71,192,176,250,72,48,133,151,73,192,146,218,74,176,161,128,75,192,116,186,76,176,131,96,77,192,86,154,78,48,160,73,79,64,115,131,80,176,71,32,81,64,85,99,82,176,41,0,83,64,55,67,84,48,70,233,84,64,25,35,86,48,40,201,86,64,251,2,88,48,10,169,88,64,221,226,89,48,236,136,90,192,110,222,91,48,206,104,92,170,170,170,170,170,170,170,170,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,108,203,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,211,42,0,224,47,43,0,16,71,43,0,224,34,0,0,0,0,73,128,155,80,124,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,48,78,231,48,170,170,170,170,34,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,128,238,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,0,0,0,0,0,0,0,0,3,0,48,0,66,0,54,0,83,43,0,224,119,43,0,16,129,43,0,224,91,0,0,0,176,203,184,158,160,35,187,159,176,12,208,160,128,210,162,161,176,40,137,203,32,52,97,210,144,118,47,247,16,162,40,248,144,236,48,7,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,32,181,211,71,16,108,13,73,32,151,179,73,16,78,237,74,160,179,156,75,144,106,214,76,160,149,124,77,144,76,182,78,160,119,92,79,144,46,150,80,160,89,60,81,144,16,118,82,160,59,28,83,144,242,85,84,160,29,252,84,144,212,53,86,32,58,229,86,16,241,30,88,32,28,197,88,16,211,254,89,32,254,164,90,16,181,222,91,32,224,132,92,16,151,190,93,32,194,100,94,240,92,158,95,2,0,0,0,255,255,255,255,180,142,134,125,170,170,170,170,92,0,0,0,1,2,1,2,1,2,1,3,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,6,14,0,0,0,76,125,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,112,129,255,255,32,28,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,143,43,0,224,235,43,0,224,239,43,0,16,7,44,0,224,56,0,0,0,160,189,184,158,144,21,187,159,160,26,137,203,16,38,97,210,32,241,85,213,16,234,32,214,32,211,53,215,16,204,0,216,32,181,21,217,16,174,224,217,160,209,254,218,16,144,192,219,160,179,222,220,144,172,169,221,160,149,190,222,144,142,137,223,160,119,158,224,144,112,105,225,160,89,126,226,144,82,73,227,160,59,94,228,144,52,41,229,32,88,71,230,16,81,18,231,32,58,39,232,16,51,242,232,32,28,7,234,16,21,210,234,32,254,230,235,16,247,177,236,32,224,198,237,16,217,145,238,160,252,175,239,16,187,113,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,240,1,5,2,0,0,0,255,255,255,255,56,116,61,94,170,170,170,170,170,170,170,170,57,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,170,8,0,0,0,72,143,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,29,44,0,224,86,44,0,224,91,44,0,16,107,44,0,224,4,0,0,0,110,0,0,0,206,0,0,0,35,2,0,0,116,2,0,0,96,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,254,101,162,0,6,132,163,144,224,69,164,128,166,143,164,144,12,137,203,0,24,97,210,144,118,47,247,0,148,40,248,144,88,15,249,0,118,8,250,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,170,170,170,170,97,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,148,157,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,144,157,255,127,1,0,0,96,216,7,0,112,123,44,0,224,128,44,0,224,225,44,0,224,231,44,0,16,1,45,0,224,2,0,0,0,111,0,0,0,115,2,0,0,80,0,0,0,91,34,189,133,0,148,60,153,112,240,136,203,224,251,96,210,240,168,53,215,224,161,0,216,140,144,51,251,224,59,232,251,240,58,216,252,224,29,200,253,112,223,64,6,96,194,48,7,112,25,141,7,96,164,16,9,112,163,0,10,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,170,170,170,170,170,170,170,170,80,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,37,178,255,255,0,0,0,0,160,171,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,21,45,0,224,24,45,0,224,107,45,0,16,128,45,0,224,3,0,0,0,113,0,0,0,226,0,0,0,134,1,0,0,89,0,0,0,224,206,222,136,144,175,184,158,128,7,187,159,144,145,152,160,128,133,210,160,144,232,138,162,0,6,132,163,144,202,106,164,128,195,53,165,16,231,83,166,128,165,21,167,16,201,51,168,0,194,254,168,144,12,137,203,0,24,97,210,16,227,85,213,0,220,32,214,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,221,32,8,128,192,16,9,144,191,0,10,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,170,170,170,170,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,160,149,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,144,157,255,127,163,3,0,96,216,7,0,112,148,45,0,224,152,45,0,224,243,45,0,16,11,46,0,224,33,0,0,0,128,136,170,150,0,102,15,184,192,92,253,184,80,80,241,185,64,144,222,186,80,202,56,218,80,22,236,218,208,253,25,220,64,117,185,220,80,49,251,221,64,250,155,222,80,182,221,223,64,79,84,224,208,27,152,244,64,122,5,245,80,128,192,246,192,58,14,247,80,72,81,248,64,225,199,248,208,238,10,250,192,20,169,250,80,34,236,251,192,153,139,252,80,170,201,29,192,243,120,30,208,81,160,31,192,235,51,32,80,133,129,33,192,228,11,34,80,209,192,44,64,224,102,45,80,127,96,72,192,4,127,82,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,170,170,8,0,0,0,128,190,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,3,0,48,0,66,0,54,0,29,46,0,224,63,46,0,16,73,46,0,224,5,0,0,0,32,166,213,163,224,220,154,32,80,155,92,33,224,190,122,34,80,125,60,35,170,170,170,170,170,170,170,170,5,0,0,0,1,2,1,2,1,170,170,170,6,0,0,0,96,172,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,87,46,0,224,95,46,0,16,98,46,0,224,141,0,0,0,160,189,184,158,144,21,187,159,160,26,137,203,16,38,97,210,32,241,85,213,16,234,32,214,32,211,53,215,16,204,0,216,32,181,21,217,16,174,224,217,160,209,254,218,16,144,192,219,160,179,222,220,144,172,169,221,160,149,190,222,144,142,137,223,160,119,158,224,144,112,105,225,160,89,126,226,144,82,73,227,160,59,94,228,144,52,41,229,32,88,71,230,16,81,18,231,32,58,39,232,16,51,242,232,32,28,7,234,16,21,210,234,32,254,230,235,16,247,177,236,32,224,198,237,16,217,145,238,160,252,175,239,16,187,113,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,235,32,8,144,206,16,9,160,205,0,10,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,32,181,211,71,16,108,13,73,32,151,179,73,16,78,237,74,160,179,156,75,144,106,214,76,160,149,124,77,144,76,182,78,160,119,92,79,144,46,150,80,160,89,60,81,144,16,118,82,160,59,28,83,144,242,85,84,160,29,252,84,2,0,0,0,255,255,255,255,135,118,61,94,142,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,249,140,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,110,46,0,224,252,46,0,224,255,46,0,16,36,47,0,224,39,0,0,0,24,107,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,176,198,246,55,32,133,184,56,48,227,223,57,32,74,242,57,176,255,200,59,160,14,111,60,170,170,170,170,170,170,170,170,170,170,170,170,39,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,232,219,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,52,47,0,224,95,47,0,16,106,47,0,224,79,0,0,0,52,168,241,128,96,133,184,158,80,221,186,159,96,226,136,203,208,237,96,210,96,63,158,224,80,56,105,225,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,79,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,204,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,163,3,0,96,216,7,0,112,118,47,0,224,199,47,0,16,220,47,0,224,152,0,0,0,140,126,184,158,124,214,186,159,108,77,158,190,56,49,184,192,168,239,121,193,56,19,152,194,168,209,89,195,56,245,119,196,168,179,57,197,184,17,97,198,168,149,25,199,184,243,64,200,40,178,2,201,184,213,32,202,40,148,226,202,184,183,0,204,200,230,96,210,216,68,136,211,72,3,74,212,216,38,104,213,72,229,41,214,216,8,72,215,72,199,9,216,216,234,39,217,72,169,233,217,88,7,17,219,200,197,210,219,88,116,222,220,72,109,169,221,88,86,190,222,72,79,137,223,88,56,158,224,72,49,105,225,88,26,126,226,72,19,73,227,88,252,93,228,72,245,40,229,216,24,71,230,200,17,18,231,216,250,38,232,200,243,241,232,216,220,6,234,200,213,209,234,216,190,230,235,200,183,177,236,216,160,198,237,72,190,191,238,88,189,175,239,72,160,159,240,88,159,143,241,72,130,127,242,88,129,111,243,72,100,95,244,88,99,79,245,72,70,63,246,88,69,47,247,200,98,40,248,88,107,218,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,252,214,117,32,108,105,129,33,252,184,85,34,220,119,106,35,252,154,53,36,236,103,74,37,252,124,21,38,236,73,42,39,124,153,254,39,236,43,10,41,124,123,222,41,236,13,234,42,124,93,190,43,108,42,211,44,124,63,158,45,108,12,179,46,124,33,126,47,108,238,146,48,252,61,103,49,108,208,114,50,252,31,71,51,108,178,82,52,252,1,39,53,108,148,50,54,252,227,6,55,236,176,27,56,252,197,230,56,236,146,251,57,252,167,198,58,236,116,219,59,124,196,175,60,236,86,187,61,124,166,143,62,236,56,155,63,124,136,111,64,108,85,132,65,124,106,79,66,108,55,100,67,124,76,47,68,108,25,68,69,252,126,243,69,236,53,45,71,252,96,211,71,236,23,13,73,252,66,179,73,236,249,236,74,124,95,156,75,108,22,214,76,124,65,124,77,80,20,182,78,96,63,92,79,80,246,149,80,2,0,0,0,255,255,255,255,36,60,61,94,170,170,170,170,170,170,170,170,153,0,0,0,4,5,4,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,16,0,0,0,92,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,192,199,255,255,32,28,0,0,148,206,255,255,0,0,0,0,148,206,255,255,16,14,0,0,200,206,255,255,0,0,0,0,200,206,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,192,199,255,127,163,3,0,96,221,7,0,112,237,47,0,224,134,48,0,224,139,48,0,16,179,48,0,224,76,0,0,0,254,180,15,147,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,240,138,211,71,224,65,13,73,240,108,179,73,224,35,237,74,112,137,156,75,96,64,214,76,112,107,124,77,96,34,182,78,112,77,92,79,96,4,150,80,112,47,60,81,96,230,117,82,112,17,28,83,96,200,85,84,112,243,251,84,240,211,164,90,224,138,222,91,2,0,0,0,255,255,255,255,48,30,135,105,77,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,3,2,170,170,170,10,0,0,0,80,189,255,255,0,0,0,0,2,184,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,227,7,0,112,207,48,0,224,28,49,0,224,31,49,0,16,52,49,0,224,9,0,0,0,220,234,157,159,96,172,85,7,208,150,205,7,96,120,44,25,80,228,207,25,224,238,234,39,208,92,200,40,96,82,84,68,80,75,31,69,170,170,170,170,170,170,170,170,170,170,170,170,9,0,0,0,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,36,171,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,74,49,0,224,87,49,0,16,91,49,0,224,3,0,0,0,24,66,164,182,208,252,22,43,64,230,113,43,2,0,0,0,255,255,255,255,88,38,135,105,170,170,170,170,4,0,0,0,1,2,3,2,8,0,0,0,40,181,255,255,0,0,0,0,104,182,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,103,49,0,224,107,49,0,224,111,49,0,16,113,49,0,224,4,0,0,0,135,15,29,146,64,123,217,152,188,5,127,10,192,64,213,41,170,170,170,170,4,0,0,0,1,2,3,1,8,0,0,0,121,201,255,255,0,0,0,0,192,199,255,255,0,0,0,0,68,203,255,255,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,129,49,0,224,135,49,0,16,137,49,0,224,2,0,0,0,129,0,0,0,130,1,0,0,167,0,0,0,160,171,241,128,192,222,228,154,48,19,214,155,96,133,184,158,80,221,186,159,64,23,157,162,48,177,48,163,64,86,122,164,48,31,27,165,192,160,83,166,176,82,252,166,64,189,60,168,176,52,220,168,64,159,28,170,48,58,205,170,64,129,252,171,48,145,191,172,64,216,238,173,48,254,140,174,64,69,188,175,48,85,127,176,64,156,174,177,176,112,75,178,64,126,142,179,48,187,36,180,64,96,110,181,176,192,21,182,64,66,78,183,176,23,8,184,192,233,36,185,176,249,231,185,192,203,4,187,48,22,209,187,64,93,0,189,176,49,157,189,64,180,242,190,48,218,144,191,192,231,211,192,48,71,94,193,64,142,141,194,48,158,80,195,64,112,109,196,48,128,48,197,64,60,114,198,48,98,16,199,192,110,54,200,176,126,249,200,192,80,22,202,176,96,217,202,96,226,136,203,208,237,96,210,224,214,117,211,208,207,64,212,224,184,85,213,208,177,32,214,224,154,53,215,208,147,0,216,224,124,21,217,208,117,224,217,96,123,222,220,80,116,169,221,96,93,190,222,80,86,137,223,96,63,158,224,80,56,105,225,96,33,126,226,80,26,73,227,224,31,71,230,208,24,18,231,224,1,39,232,208,250,241,232,224,227,6,234,208,220,209,234,224,197,230,235,208,190,177,236,96,166,143,241,80,137,127,242,96,136,111,243,80,107,95,244,96,106,79,245,80,77,63,246,96,76,47,247,208,105,40,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,167,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,96,196,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,192,199,255,127,163,3,0,96,216,7,0,112,151,49,0,224,154,49,0,224,67,50,0,16,110,50,0,224,2,0,0,0,130,0,0,0,141,1,0,0,107,0,0,0,128,194,98,172,80,148,211,177,64,93,116,178,208,102,91,200,64,81,211,200,208,72,59,202,192,109,188,202,80,101,36,204,192,79,156,204,80,11,196,209,192,245,59,210,80,237,163,211,192,215,27,212,208,5,96,247,64,125,255,247,208,68,61,249,192,83,227,249,208,59,219,250,64,134,167,251,208,169,197,252,64,104,135,253,208,0,184,254,192,227,167,255,208,226,151,0,192,197,135,1,208,196,119,2,64,226,112,3,80,225,96,4,192,20,53,5,80,195,64,6,64,72,22,7,80,165,32,8,192,123,247,8,80,135,0,10,64,106,240,10,80,105,224,11,192,134,217,12,80,75,192,13,192,104,185,14,80,162,178,15,64,155,125,16,208,234,81,17,192,183,102,18,208,204,49,19,192,153,70,20,208,130,91,21,192,123,38,22,208,100,59,23,192,93,6,24,208,70,27,25,192,63,230,25,208,40,251,26,64,92,207,27,208,10,219,28,64,62,175,29,80,83,122,30,64,32,143,31,80,53,90,32,64,2,111,33,208,81,67,34,64,228,78,35,208,51,35,36,64,198,46,37,208,138,21,38,192,226,23,39,80,167,254,39,208,210,247,40,80,137,222,41,208,180,215,42,80,107,190,43,208,150,183,44,80,77,158,45,208,120,151,46,80,47,126,47,208,90,119,48,208,75,103,49,208,60,87,50,208,45,71,51,80,89,64,52,80,213,29,53,80,176,50,54,80,183,253,54,208,204,27,56,208,211,230,56,208,174,251,57,208,181,198,58,208,144,219,59,80,210,175,60,208,114,187,61,80,180,143,62,208,84,155,63,208,91,102,64,80,53,68,69,208,140,243,69,80,23,36,71,80,169,220,71,80,249,3,73,208,80,179,73,80,219,227,74,80,109,156,75,208,247,204,76,208,137,133,77,208,78,191,78,208,224,119,79,80,246,149,80,80,19,60,81,80,216,117,82,2,0,0,0,255,255,255,255,184,40,135,105,170,170,170,170,108,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,200,178,255,255,0,0,0,0,192,178,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,96,3,0,96,222,7,0,112,128,50,0,224,131,50,0,224,239,50,0,224,243,50,0,16,15,51,0,224,15,0,0,0,112,232,182,165,224,110,242,175,96,86,102,182,96,210,67,183,96,54,12,184,240,134,253,184,96,113,234,203,240,180,145,216,128,112,0,0,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,170,170,170,170,170,170,170,170,15,0,0,0,2,4,2,3,2,4,2,1,2,3,2,3,2,3,2,170,10,0,0,0,248,151,255,255,0,0,0,0,128,143,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,3,0,48,0,66,0,54,0,37,51,0,224,55,51,0,16,60,51,0,224,5,0,0,0,118,0,0,0,132,0,0,0,140,0,0,0,3,2,0,0,111,2,0,0,37,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,34,87,202,112,71,216,202,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,22,242,232,0,0,7,234,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,38,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,58,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,1,0,0,96,216,7,0,112,76,51,0,224,82,51,0,224,120,51,0,224,123,51,0,16,134,51,0,224,3,0,0,0,133,0,0,0,148,0,0,0,114,2,0,0,92,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,195,159,240,128,194,143,241,112,135,95,244,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,93,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,170,170,170,8,0,0,0,202,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,216,7,0,112,158,51,0,224,162,51,0,224,255,51,0,224,3,52,0,16,28,52,0,224,41,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,128,151,222,220,112,144,169,221,128,61,126,226,112,54,73,227,128,31,94,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,112,178,16,9,240,148,173,9,96,134,240,10,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,42,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,2,3,4,3,4,3,4,3,170,170,10,0,0,0,13,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,50,52,0,224,92,52,0,224,95,52,0,16,107,52,0,224,56,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,224,61,103,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,112,105,63,246,128,104,47,247,240,103,8,250,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,240,138,211,71,224,65,13,73,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,57,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,4,3,170,170,170,10,0,0,0,45,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,217,7,0,112,129,52,0,224,186,52,0,224,191,52,0,16,207,52,0,224,36,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,224,61,103,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,37,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,4,3,4,3,2,1,2,1,170,170,170,10,0,0,0,169,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,229,52,0,224,10,53,0,224,15,53,0,16,26,53,0,224,19,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,128,61,126,226,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,20,0,0,0,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,64,176,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,48,53,0,224,68,53,0,224,71,53,0,16,77,53,0,224,41,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,224,61,103,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,112,225,191,238,128,224,175,239,240,158,113,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,240,138,211,71,224,65,13,73,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,42,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,2,1,2,3,4,3,170,170,10,0,0,0,241,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,217,7,0,112,99,53,0,224,141,53,0,224,147,53,0,16,159,53,0,224,47,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,112,81,68,69,0,183,243,69,224,95,45,71,240,138,211,71,224,65,13,73,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,48,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,2,1,4,3,4,3,10,0,0,0,207,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,217,7,0,112,181,53,0,224,229,53,0,224,235,53,0,16,248,53,0,224,73,0,0,0,128,78,6,224,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,235,32,8,144,206,16,9,160,205,0,10,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,170,170,170,170,170,170,170,170,170,170,170,170,73,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,0,0,0,0,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,163,3,0,96,216,7,0,112,14,54,0,224,91,54,0,16,111,54,0,224,2,0,0,0,142,0,0,0,184,0,0,0,74,0,0,0,128,161,108,204,224,251,96,210,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,193,32,8,96,164,16,9,112,163,0,10,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,0,254,230,56,240,202,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,170,170,170,170,74,0,0,0,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,0,0,0,0,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,176,185,255,127,163,3,0,96,216,7,0,112,132,54,0,224,135,54,0,224,211,54,0,16,231,54,0,224,2,0,0,0,143,0,0,0,20,2,0,0,21,0,0,0,254,180,15,147,112,25,141,7,96,164,16,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,170,170,170,170,21,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,2,184,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,253,54,0,224,0,55,0,224,23,55,0,16,30,55,0,224,80,0,0,0,160,26,137,203,16,38,97,210,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,32,99,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,197,50,135,125,170,170,170,170,82,0,0,0,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,2,4,5,4,5,4,5,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,12,0,0,0,123,211,0,0,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,251,129,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,44,55,0,224,125,55,0,224,131,55,0,16,153,55,0,224,2,0,0,0,146,0,0,0,153,0,0,0,116,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,0,247,115,164,112,17,22,165,128,78,13,202,112,71,216,202,128,254,136,203,240,9,97,210,28,215,117,211,112,9,164,211,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,112,24,41,229,0,60,71,230,240,30,55,231,0,30,39,232,240,0,23,233,0,0,7,234,240,226,246,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,144,30,240,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,112,178,16,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,117,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,154,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,1,0,0,96,216,7,0,112,177,55,0,224,180,55,0,224,41,56,0,224,47,56,0,16,78,56,0,224,86,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,10,0,0,0,116,176,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,102,56,0,224,189,56,0,224,195,56,0,16,218,56,0,224,2,0,0,0,228,150,30,184,212,213,238,184,2,0,0,0,1,2,170,170,6,0,0,0,28,192,255,255,0,0,0,0,28,192,255,255,16,14,0,0,192,199,255,255,0,0,0,0,3,0,48,0,66,0,54,0,240,56,0,224,243,56,0,16,245,56,0,224,15,0,0,0,212,64,116,140,80,74,207,195,64,227,69,196,208,74,47,197,192,45,31,198,208,44,15,199,192,15,255,199,80,196,24,30,64,93,143,30,208,247,249,31,192,144,112,32,208,227,158,37,192,124,21,38,80,3,37,45,64,156,155,45,2,0,0,0,255,255,255,255,188,35,135,105,170,170,170,170,170,170,170,170,170,170,170,170,16,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,196,183,255,255,0,0,0,0,172,183,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,1,57,0,224,17,57,0,224,23,57,0,16,28,57,0,224,4,0,0,0,152,0,0,0,40,2,0,0,117,2,0,0,118,2,0,0,124,0,0,0,160,72,166,158,144,21,187,159,160,42,134,160,144,247,154,161,160,26,137,203,16,38,97,210,92,116,254,214,144,173,128,216,144,195,254,218,16,144,192,219,144,165,222,220,144,172,169,221,144,135,190,222,144,142,137,223,144,105,158,224,144,112,105,225,144,75,126,226,144,82,73,227,144,45,94,228,144,52,41,229,16,74,71,230,16,81,18,231,16,44,39,232,16,51,242,232,16,14,7,234,16,21,210,234,16,240,230,235,16,247,177,236,16,210,198,237,16,217,145,238,144,238,175,239,16,187,113,240,144,208,143,241,144,193,127,242,144,178,111,243,144,163,95,244,144,148,79,245,144,133,63,246,144,118,47,247,16,162,40,248,144,88,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,2,0,0,0,255,255,255,255,192,26,4,94,170,170,170,170,170,170,170,170,125,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,38,145,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,128,143,255,127,1,0,0,96,216,7,0,112,44,57,0,224,49,57,0,224,174,57,0,224,179,57,0,16,212,57,0,224,41,0,0,0,124,104,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,121,128,48,160,77,29,49,176,198,246,55,32,133,184,56,48,227,223,57,32,74,242,57,176,255,200,59,160,14,111,60,170,170,170,170,41,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,132,222,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,232,57,0,224,19,58,0,16,31,58,0,224,15,0,0,0,232,72,45,189,96,116,67,6,80,62,164,9,224,248,81,17,80,111,212,17,224,218,49,19,80,81,180,19,32,145,97,41,80,75,193,42,224,221,67,43,80,239,201,50,224,192,88,66,80,105,63,67,128,110,84,68,96,89,31,69,2,0,0,0,255,255,255,255,100,44,135,105,170,170,170,170,16,0,0,0,3,1,4,1,2,1,2,1,4,1,4,1,2,1,2,1,10,0,0,0,28,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,24,175,255,255,0,0,0,0,176,185,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,43,58,0,224,59,58,0,224,63,58,0,16,68,58,0,224,2,0,0,0,157,0,0,0,123,1,0,0,31,0,0,0,68,127,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,64,195,192,44,48,210,102,45,170,170,170,170,170,170,170,170,31,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,188,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,86,58,0,224,89,58,0,224,123,58,0,16,132,58,0,224,3,0,0,0,68,200,163,145,64,110,77,19,176,22,52,20,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,188,198,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,146,58,0,224,151,58,0,16,153,58,0,224,33,0,0,0,96,218,182,165,0,241,85,34,240,189,106,35,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,128,151,156,75,112,78,214,76,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,152,164,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,219,7,0,112,165,58,0,224,199,58,0,16,209,58,0,224,2,0,0,0,161,0,0,0,29,2,0,0,63,0,0,0,112,232,182,165,224,110,242,175,96,86,102,182,96,210,67,183,96,54,12,184,240,134,253,184,96,113,234,203,240,180,145,216,128,112,0,0,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,16,85,184,75,0,34,205,76,16,55,152,77,0,4,173,78,16,25,120,79,0,230,140,80,144,53,97,81,0,200,108,82,144,23,65,83,0,170,76,84,144,249,32,85,0,140,44,86,144,219,0,87,128,168,21,88,144,189,224,88,128,138,245,89,144,159,192,90,128,108,213,91,16,188,169,92,128,78,181,93,16,158,137,94,128,48,149,95,16,128,105,96,0,77,126,97,16,98,73,98,0,47,94,99,170,170,170,170,170,170,170,170,63,0,0,0,2,4,2,3,2,4,2,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,10,0,0,0,60,156,255,255,0,0,0,0,128,143,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,226,58,0,224,229,58,0,224,39,59,0,16,56,59,0,224,81,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,128,74,15,249,240,103,8,250,0,43,184,254,112,223,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,99,73,119,97,82,0,0,0,1,2,1,2,1,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,8,0,0,0,221,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,74,59,0,224,156,59,0,224,159,59,0,16,181,59,0,224,57,0,0,0,96,218,182,165,96,213,134,22,80,75,76,24,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,57,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,252,171,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,3,0,48,0,66,0,54,0,201,59,0,224,3,60,0,16,19,60,0,224,42,0,0,0,160,26,137,203,16,38,97,210,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,226,53,86,48,72,229,86,32,255,30,88,48,42,197,88,32,225,254,89,48,12,165,90,32,195,222,91,160,70,68,92,48,238,132,92,32,165,190,93,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,26,48,135,125,170,170,170,170,170,170,170,170,44,0,0,0,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,1,2,1,2,1,2,4,1,2,1,12,0,0,0,38,214,0,0,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,166,132,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,228,7,0,112,33,60,0,224,76,60,0,224,83,60,0,16,95,60,0,224,2,0,0,0,166,0,0,0,30,2,0,0,68,0,0,0,112,232,182,165,224,110,242,175,96,86,102,182,96,210,67,183,96,54,12,184,240,134,253,184,96,176,222,197,80,52,151,198,224,241,85,201,80,221,234,201,224,198,2,207,80,86,183,207,224,21,153,218,208,131,118,219,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,68,0,0,0,1,3,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,12,163,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,119,60,0,224,122,60,0,224,191,60,0,16,209,60,0,224,44,0,0,0,40,23,223,145,192,99,110,19,208,228,117,32,64,119,129,33,208,198,85,34,192,147,106,35,208,168,53,36,192,117,74,37,208,138,21,38,192,87,42,39,80,167,254,39,192,57,10,41,80,137,222,41,192,27,234,42,80,107,190,43,64,56,211,44,80,77,158,45,64,26,179,46,80,47,126,47,64,252,146,48,208,75,103,49,64,222,114,50,208,45,71,51,64,192,82,52,208,15,39,53,64,162,50,54,208,241,6,55,192,190,27,56,208,211,230,56,192,160,251,57,208,181,198,58,192,130,219,59,80,210,175,60,192,100,187,61,80,180,143,62,192,70,155,63,80,150,111,64,64,99,132,65,80,120,79,66,64,69,100,67,80,90,47,68,64,39,68,69,208,140,243,69,192,67,45,71,170,170,170,170,170,170,170,170,170,170,170,170,44,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,88,203,255,255,0,0,0,0,192,199,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,208,213,255,127,163,3,0,96,216,7,0,112,227,60,0,224,19,61,0,16,31,61,0,224,145,0,0,0,80,182,241,128,96,133,184,158,80,221,186,159,208,56,60,187,64,35,180,187,208,26,28,189,64,5,148,189,208,252,251,190,64,231,115,191,208,222,219,192,64,201,83,193,208,192,187,194,64,171,51,195,208,162,155,196,64,141,19,197,208,248,112,198,64,205,13,199,208,241,72,200,64,175,237,200,208,94,22,202,192,203,214,202,96,226,136,203,208,237,96,210,224,214,117,211,208,207,64,212,224,184,85,213,208,177,32,214,224,154,53,215,208,147,0,216,224,124,21,217,208,117,224,217,96,153,254,218,208,87,192,219,96,123,222,220,80,116,169,221,96,93,190,222,80,86,137,223,96,63,158,224,80,56,105,225,96,33,126,226,80,26,73,227,96,3,94,228,80,252,40,229,224,31,71,230,208,24,18,231,224,1,39,232,208,228,22,233,224,227,6,234,208,198,246,234,224,197,230,235,208,168,214,236,224,167,198,237,80,197,191,238,96,196,175,239,80,167,159,240,96,166,143,241,80,137,127,242,96,136,111,243,80,107,95,244,96,106,79,245,80,77,63,246,96,76,47,247,208,105,40,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,124,93,190,43,108,42,211,44,124,63,158,45,108,12,179,46,124,33,126,47,108,238,146,48,252,61,103,49,108,208,114,50,252,31,71,51,108,178,82,52,252,1,39,53,108,148,50,54,252,227,6,55,236,176,27,56,252,197,230,56,236,146,251,57,252,167,198,58,236,116,219,59,124,196,175,60,236,86,187,61,124,166,143,62,236,56,155,63,124,136,111,64,108,85,132,65,124,106,79,66,108,55,100,67,124,76,47,68,108,25,68,69,224,154,243,69,208,81,45,71,2,0,0,0,255,255,255,255,188,237,30,94,146,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,68,195,255,255,0,0,0,0,176,185,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,192,199,255,127,163,3,0,96,216,7,0,112,50,61,0,224,196,61,0,224,199,61,0,16,237,61,0,224,57,0,0,0,96,218,182,165,0,241,85,34,240,189,106,35,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,57,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,244,161,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,1,62,0,224,59,62,0,16,75,62,0,224,85,0,0,0,179,135,146,162,64,219,255,168,176,15,241,169,56,89,226,170,48,67,210,171,184,140,195,172,176,118,179,173,184,181,244,187,176,181,191,188,184,151,212,189,176,151,159,190,184,121,180,191,176,121,127,192,184,91,148,193,176,91,95,194,56,120,125,195,176,61,63,196,56,90,93,197,176,31,31,198,56,82,24,199,48,60,8,200,56,30,29,201,48,30,232,201,56,159,139,202,48,198,30,205,40,102,149,205,176,133,11,236,40,53,242,236,176,74,69,237,32,214,133,237,176,114,19,247,32,27,250,247,48,62,254,252,40,17,246,253,48,117,150,0,32,82,216,0,176,138,87,4,160,58,198,4,176,27,150,7,152,218,223,7,40,159,198,8,48,78,90,9,32,115,219,9,48,18,26,13,160,135,127,13,48,127,231,14,160,105,95,15,48,214,217,16,160,75,63,17,176,45,137,17,160,162,49,19,48,84,195,33,32,120,39,34,176,228,161,35,160,148,16,36,176,103,74,37,32,60,231,37,48,15,33,39,160,88,208,39,176,43,10,41,160,58,176,41,48,211,224,42,160,28,144,43,48,246,76,65,192,47,70,66,208,163,72,67,192,156,19,68,80,75,31,69,192,126,243,69,208,103,8,71,192,96,211,71,208,73,232,72,192,66,179,73,208,43,200,74,64,95,156,75,208,13,168,76,64,65,124,77,208,239,135,78,64,35,92,79,80,12,113,80,64,5,60,81,80,238,80,82,64,231,27,83,80,208,48,84,64,201,251,84,170,170,170,170,170,170,170,170,85,0,0,0,1,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,5,4,5,4,6,4,6,4,5,4,6,4,6,4,7,5,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,170,170,170,16,0,0,0,77,203,255,255,0,0,0,0,192,199,255,255,0,0,0,0,200,206,255,255,0,0,0,0,200,206,255,255,8,7,0,0,208,213,255,255,0,0,0,0,208,213,255,255,8,7,0,0,208,213,255,255,16,14,0,0,208,213,255,255,24,21,0,0,3,0,48,0,66,0,54,0,87,62,0,224,175,62,0,16,198,62,0,224,2,0,0,0,174,0,0,0,112,2,0,0,174,0,0,0,112,30,166,158,96,235,186,159,112,0,134,160,96,205,154,161,112,226,101,162,224,233,131,163,112,174,106,164,96,167,53,165,240,202,83,166,96,137,21,167,240,172,51,168,224,165,254,168,240,142,19,170,224,135,222,170,240,112,243,171,224,105,190,172,240,82,211,173,224,75,158,174,240,52,179,175,224,45,126,176,112,81,156,177,96,74,103,178,112,51,124,179,96,44,71,180,112,21,92,181,96,14,39,182,112,247,59,183,96,240,6,184,112,217,27,185,96,210,230,185,240,245,4,187,96,180,198,187,240,215,228,188,224,208,175,189,240,185,196,190,224,178,143,191,240,155,164,192,224,148,111,193,240,125,132,194,224,118,79,195,240,95,100,196,224,88,47,197,112,124,77,198,224,58,15,199,112,94,45,200,96,87,248,200,112,64,13,202,96,57,216,202,112,240,136,203,224,251,96,210,240,228,117,211,224,221,64,212,240,198,85,213,224,191,32,214,240,168,53,215,224,161,0,216,240,138,21,217,224,131,224,217,112,167,254,218,224,101,192,219,112,137,222,220,96,130,169,221,112,107,190,222,96,100,137,223,112,77,158,224,96,70,105,225,112,47,126,226,96,40,73,227,112,17,94,228,224,46,87,229,240,45,71,230,224,16,55,231,240,15,39,232,224,242,22,233,240,241,6,234,224,212,246,234,240,211,230,235,224,182,214,236,240,181,198,237,96,211,191,238,112,210,175,239,96,181,159,240,112,180,143,241,96,151,127,242,112,150,111,243,96,121,95,244,112,120,79,245,96,91,63,246,112,90,47,247,224,119,40,248,112,60,15,249,224,89,8,250,240,88,248,250,224,59,232,251,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,96,164,16,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,144,240,3,94,170,170,170,170,170,170,170,170,175,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,158,186,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,1,0,0,96,216,7,0,112,220,62,0,224,223,62,0,224,142,63,0,224,147,63,0,16,192,63,0,224,80,0,0,0,208,68,137,203,64,80,97,210,80,113,184,254,64,84,168,255,80,83,152,0,64,54,136,1,80,53,120,2,192,82,113,3,208,81,97,4,192,52,81,5,208,51,65,6,192,22,49,7,208,109,141,7,192,248,16,9,80,233,173,9,192,218,240,10,208,217,224,11,64,247,217,12,208,187,192,13,64,217,185,14,80,216,169,15,64,187,153,16,80,186,137,17,64,157,121,18,80,156,105,19,64,127,89,20,80,126,73,21,64,97,57,22,80,96,41,23,192,125,34,24,80,66,9,25,192,95,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,210,79,135,125,170,170,170,170,82,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,110,182,0,0,0,0,0,0,238,100,255,255,0,0,0,0,80,101,255,255,0,0,0,0,80,101,255,255,16,14,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,212,63,0,224,37,64,0,224,43,64,0,16,65,64,0,224,2,0,0,0,177,0,0,0,121,1,0,0,39,0,0,0,100,101,170,150,208,59,15,184,144,50,253,184,32,38,241,185,16,102,222,186,32,160,56,218,32,236,235,218,160,211,25,220,16,75,185,220,32,7,251,221,16,208,155,222,32,140,221,223,16,37,84,224,160,241,151,244,16,80,5,245,32,86,192,246,144,16,14,247,32,30,81,248,16,183,199,248,160,196,10,250,144,234,168,250,32,248,235,251,144,111,139,252,32,128,201,29,144,201,120,30,160,39,160,31,144,193,51,32,32,91,129,33,144,186,11,34,160,2,88,35,16,98,226,35,160,228,55,37,16,185,212,37,160,184,246,55,16,119,184,56,32,213,223,57,144,1,233,57,160,241,200,59,144,0,111,60,170,170,170,170,170,170,170,170,170,170,170,170,39,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,156,225,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,89,64,0,224,92,64,0,224,135,64,0,16,146,64,0,224,96,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,16,167,211,71,0,94,13,73,16,137,179,73,0,64,237,74,144,165,156,75,128,92,214,76,128,121,124,77,112,48,182,78,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,170,170,170,170,97,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,170,170,170,10,0,0,0,149,160,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,220,7,0,112,160,64,0,224,1,65,0,224,7,65,0,16,33,65,0,224,88,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,176,12,4,94,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,8,161,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,55,65,0,224,144,65,0,224,147,65,0,16,171,65,0,224,88,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,237,160,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,193,65,0,224,26,66,0,224,31,66,0,16,55,66,0,224,2,0,0,0,121,0,0,0,181,0,0,0,90,0,0,0,0,104,128,155,80,124,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,144,108,55,83,144,71,76,84,144,78,23,85,144,41,44,86,144,48,247,86,16,70,21,88,144,18,215,88,16,40,245,89,144,244,182,90,16,10,213,91,16,17,160,92,16,236,180,93,16,243,127,94,16,206,148,95,16,213,95,96,144,234,125,97,16,183,63,98,144,204,93,99,16,153,31,100,144,181,8,102,144,144,29,103,90,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,170,170,10,0,0,0,128,207,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,224,227,255,127,7,0,0,96,233,7,0,112,77,66,0,224,80,66,0,224,171,66,0,16,195,66,0,224,62,0,0,0,112,232,182,165,224,110,242,175,96,86,102,182,96,210,67,183,96,54,12,184,240,134,253,184,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,144,165,156,75,128,92,214,76,144,135,124,77,128,62,182,78,144,105,92,79,128,32,150,80,144,75,60,81,128,2,118,82,144,45,28,83,128,228,85,84,144,15,252,84,128,198,53,86,16,44,229,86,0,227,30,88,16,14,197,88,0,197,254,89,16,240,164,90,0,167,222,91,16,210,132,92,0,137,190,93,16,180,100,94,0,107,158,95,144,208,77,96,128,135,135,97,144,178,45,98,0,47,94,99,128,134,13,100,112,61,71,101,170,170,170,170,170,170,170,170,170,170,170,170,62,0,0,0,1,3,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,170,170,10,0,0,0,28,158,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,232,7,0,112,217,66,0,224,27,67,0,16,44,67,0,224,4,0,0,0,79,0,0,0,97,0,0,0,101,0,0,0,183,0,0,0,1,0,0,0,232,97,244,139,2,0,0,0,255,255,255,255,16,38,135,105,2,0,0,0,1,2,170,170,6,0,0,0,112,181,255,255,0,0,0,0,24,181,255,255,0,0,0,0,176,185,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,65,67,0,224,70,67,0,224,72,67,0,224,75,67,0,16,77,67,0,224,4,0,0,0,184,142,5,145,196,75,42,190,180,44,98,210,184,49,190,27,170,170,170,170,170,170,170,170,4,0,0,0,1,2,3,4,10,0,0,0,72,204,255,255,0,0,0,0,60,204,255,255,0,0,0,0,76,204,255,255,0,0,0,0,200,206,255,255,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,92,67,0,224,99,67,0,16,101,67,0,224,4,0,0,0,104,0,0,0,186,0,0,0,37,2,0,0,109,2,0,0,10,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,28,223,23,207,172,229,143,207,28,26,129,208,16,117,248,250,0,88,232,251,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,170,170,170,170,11,0,0,0,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,238,150,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,117,67,0,224,122,67,0,224,133,67,0,224,139,67,0,16,143,67,0,224,45,0,0,0,252,113,110,156,208,70,27,25,64,239,1,26,80,238,241,26,64,209,225,27,80,208,209,28,64,179,193,29,80,178,177,30,64,149,161,31,80,148,145,32,64,119,129,33,224,212,85,34,224,175,106,35,224,182,53,36,224,145,74,37,224,152,21,38,224,115,42,39,96,181,254,39,224,85,10,41,96,151,222,41,224,55,234,42,96,121,190,43,96,84,211,44,96,91,158,45,96,54,179,46,96,61,126,47,96,24,147,48,224,89,103,49,96,250,114,50,224,59,71,51,96,220,82,52,80,120,79,66,64,69,100,67,80,90,47,68,64,39,68,69,112,77,92,79,96,4,150,80,112,47,60,81,96,230,117,82,112,17,28,83,96,200,85,84,112,243,251,84,96,170,53,86,240,241,196,88,224,168,254,89,2,0,0,0,255,255,255,255,80,31,135,105,46,0,0,0,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,8,0,0,0,48,188,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,68,188,255,255,0,0,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,145,3,0,96,226,7,0,112,158,67,0,224,204,67,0,224,207,67,0,16,220,67,0,224,29,0,0,0,232,130,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,24,196,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,240,67,0,224,15,68,0,16,24,68,0,224,22,0,0,0,61,0,0,0,62,0,0,0,77,0,0,0,86,0,0,0,106,0,0,0,112,0,0,0,124,0,0,0,125,0,0,0,149,0,0,0,154,0,0,0,158,0,0,0,172,0,0,0,188,0,0,0,191,0,0,0,208,0,0,0,210,0,0,0,211,0,0,0,212,0,0,0,213,0,0,0,220,0,0,0,222,0,0,0,39,2,0,0,2,0,0,0,192,50,246,203,208,237,96,210,2,0,0,0,255,255,255,255,185,149,230,122,170,170,170,170,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,7,194,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,36,68,0,224,59,68,0,224,62,68,0,224,67,68,0,16,69,68,0,224,116,0,0,0,69,71,48,143,80,229,92,155,197,226,124,159,192,113,0,161,197,119,94,176,64,61,119,177,208,0,65,178,192,112,88,179,80,52,34,180,64,164,57,181,208,103,3,182,192,215,26,183,80,155,228,183,192,92,253,184,80,32,199,185,64,110,28,204,208,231,108,204,64,227,23,212,192,85,51,213,64,146,118,213,64,60,209,253,176,250,146,254,192,205,204,255,176,220,114,0,192,80,117,1,176,73,64,2,192,50,85,3,176,43,32,4,64,79,62,5,176,13,0,6,64,188,11,7,176,239,223,7,64,19,254,8,176,209,191,9,64,245,221,10,48,238,168,11,64,215,189,12,48,208,136,13,64,185,157,14,48,178,104,15,192,213,134,16,48,148,72,17,192,183,102,18,48,118,40,19,192,153,70,20,176,146,17,21,192,123,38,22,176,116,241,22,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,176,134,67,88,2,0,0,0,255,255,255,255,252,29,135,105,170,170,170,170,170,170,170,170,170,170,170,170,117,0,0,0,3,1,3,4,3,2,1,2,1,2,1,2,1,2,1,4,1,4,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,6,170,170,170,14,0,0,0,132,189,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,187,189,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,84,68,0,224,201,68,0,224,207,68,0,16,238,68,0,224,73,0,0,0,0,110,140,231,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,207,32,8,112,178,16,9,128,177,0,10,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,170,170,170,170,73,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,0,0,0,0,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,163,3,0,96,216,7,0,112,4,69,0,224,79,69,0,16,99,69,0,224,39,0,0,0,184,103,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,176,198,246,55,32,133,184,56,48,227,223,57,160,15,233,57,176,255,200,59,160,14,111,60,170,170,170,170,39,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,72,223,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,118,69,0,224,159,69,0,16,170,69,0,224,3,0,0,0,196,0,0,0,132,1,0,0,137,1,0,0,52,0,0,0,28,147,253,134,144,175,184,158,128,7,187,159,240,79,101,181,224,72,48,182,240,49,69,183,224,42,16,184,240,19,37,185,224,12,240,185,112,48,14,187,224,238,207,187,112,18,238,188,96,11,185,189,240,8,114,194,224,235,97,195,240,234,81,196,96,147,56,197,240,204,49,198,224,175,33,199,112,233,26,200,96,204,10,201,112,203,250,201,96,174,234,202,144,12,137,203,0,24,97,210,16,140,99,211,0,111,83,212,16,227,85,213,0,220,32,214,16,197,53,215,0,190,0,216,16,167,21,217,0,160,224,217,144,195,254,218,0,130,192,219,144,165,222,220,128,158,169,221,144,135,190,222,128,128,137,223,144,105,158,224,128,98,105,225,144,75,126,226,128,68,73,227,144,45,94,228,128,38,41,229,16,74,71,230,0,67,18,231,16,44,39,232,0,37,242,232,16,240,230,235,0,211,214,236,16,210,198,237,52,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,8,0,0,0,228,157,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,182,69,0,224,186,69,0,224,239,69,0,16,253,69,0,224,73,0,0,0,128,129,251,213,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,207,32,8,112,178,16,9,128,177,0,10,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,73,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,3,2,1,170,170,170,8,0,0,0,0,0,0,0,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,163,3,0,96,216,7,0,112,13,70,0,224,87,70,0,16,107,70,0,224,3,0,0,0,189,0,0,0,198,0,0,0,120,1,0,0,31,0,0,0,144,134,170,150,0,102,15,184,192,92,253,184,80,80,241,185,64,144,222,186,80,202,56,218,80,22,236,218,208,253,25,220,64,117,185,220,80,49,251,221,64,250,155,222,80,182,221,223,64,79,84,224,208,27,152,244,64,122,5,245,80,128,192,246,192,58,14,247,80,72,81,248,64,225,199,248,208,238,10,250,192,20,169,250,80,34,236,251,192,153,139,252,80,170,201,29,192,243,120,30,208,81,160,31,192,235,51,32,80,133,129,33,192,228,11,34,80,127,96,72,192,4,127,82,170,170,170,170,31,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,8,0,0,0,112,192,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,126,70,0,224,130,70,0,224,163,70,0,16,172,70,0,224,30,0,0,0,72,122,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,64,113,96,72,30,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,184,204,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,188,70,0,224,219,70,0,16,228,70,0,224,2,0,0,0,202,0,0,0,139,1,0,0,130,0,0,0,69,71,48,143,80,229,92,155,197,226,124,159,192,113,0,161,197,119,94,176,64,61,119,177,208,0,65,178,192,112,88,179,80,52,34,180,64,164,57,181,208,103,3,182,192,215,26,183,80,155,228,183,192,92,253,184,80,32,199,185,64,110,28,204,208,231,108,204,192,143,220,211,48,213,23,212,192,85,51,213,64,146,118,213,64,60,209,253,176,250,146,254,192,205,204,255,176,220,114,0,192,80,117,1,176,73,64,2,192,50,85,3,176,43,32,4,64,79,62,5,176,13,0,6,64,188,11,7,176,239,223,7,64,19,254,8,176,209,191,9,64,245,221,10,48,238,168,11,64,215,189,12,48,208,136,13,64,185,157,14,48,178,104,15,192,213,134,16,48,148,72,17,192,183,102,18,48,118,40,19,192,153,70,20,176,146,17,21,192,123,38,22,176,116,241,22,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,48,200,23,89,192,206,143,89,48,170,247,90,192,176,111,91,176,103,169,92,192,124,116,93,176,73,137,94,192,94,84,95,176,43,105,96,192,64,52,97,176,13,73,98,64,93,29,99,176,239,40,100,192,4,244,100,170,170,170,170,170,170,170,170,170,170,170,170,130,0,0,0,1,0,3,0,2,1,2,1,2,1,2,1,2,1,3,1,3,4,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,170,170,10,0,0,0,187,189,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,192,199,255,127,127,3,0,96,232,7,0,112,242,70,0,224,245,70,0,224,123,71,0,16,157,71,0,224,16,0,0,0,96,66,223,186,208,75,8,250,64,195,167,250,208,241,167,255,200,123,67,0,208,211,135,1,72,127,250,1,80,240,112,3,72,4,221,3,80,210,80,5,72,137,191,5,80,180,48,7,200,188,160,7,80,150,16,9,224,188,251,57,96,225,41,58,2,0,0,0,255,255,255,255,8,29,135,105,17,0,0,0,4,1,3,1,2,1,2,1,2,1,2,1,2,1,5,1,5,170,170,170,12,0,0,0,120,190,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,8,7,0,0,176,185,255,255,16,14,0,0,96,190,255,255,0,0,0,0,192,199,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,179,71,0,224,196,71,0,224,199,71,0,16,205,71,0,224,3,0,0,0,204,0,0,0,118,1,0,0,122,1,0,0,91,0,0,0,180,114,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,48,9,90,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,15,33,39,160,227,189,39,48,241,0,41,32,139,148,41,176,13,234,42,160,50,107,43,48,181,192,44,32,196,102,45,48,151,160,46,32,166,70,47,48,121,128,48,160,77,29,49,176,32,87,50,32,106,6,51,48,84,56,52,32,193,248,52,48,31,32,54,160,104,207,54,176,198,246,55,32,133,184,56,48,227,223,57,160,44,143,58,176,255,200,59,160,14,111,60,48,145,196,61,160,240,78,62,48,254,145,63,160,210,46,64,48,248,134,65,32,239,23,66,48,194,81,67,32,209,247,67,176,83,77,69,160,237,224,69,48,134,17,71,32,149,183,71,176,162,250,72,32,119,151,73,176,132,218,74,160,147,128,75,176,102,186,76,160,117,96,77,176,72,154,78,32,146,73,79,48,101,131,80,160,57,32,81,48,71,99,82,160,27,0,83,48,41,67,84,32,56,233,84,48,11,35,86,32,26,201,86,48,237,2,88,32,252,168,88,48,207,226,89,32,222,136,90,176,96,222,91,32,192,104,92,170,170,170,170,170,170,170,170,91,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,76,212,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,225,71,0,224,229,71,0,224,67,72,0,16,91,72,0,224,91,0,0,0,24,76,128,155,64,110,77,19,192,36,52,20,160,249,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,144,108,55,83,144,71,76,84,144,78,23,85,144,41,44,86,144,48,247,86,16,70,21,88,144,18,215,88,16,40,245,89,144,244,182,90,16,10,213,91,16,17,160,92,16,236,180,93,16,243,127,94,16,206,148,95,16,213,95,96,144,234,125,97,16,183,63,98,144,204,93,99,16,153,31,100,144,174,61,101,144,181,8,102,144,144,29,103,170,170,170,170,170,170,170,170,91,0,0,0,1,2,1,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,170,10,0,0,0,104,235,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,240,241,255,255,0,0,0,0,240,241,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,224,227,255,127,7,0,0,96,233,7,0,112,105,72,0,224,199,72,0,16,223,72,0,224,80,0,0,0,160,26,137,203,16,38,97,210,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,153,51,135,125,170,170,170,170,82,0,0,0,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,12,0,0,0,167,210,0,0,0,0,0,0,39,129,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,244,72,0,224,69,73,0,224,75,73,0,16,97,73,0,224,3,0,0,0,209,0,0,0,126,1,0,0,135,1,0,0,187,0,0,0,12,98,207,156,252,230,164,157,140,126,184,158,124,214,186,159,220,136,182,160,76,255,56,161,92,25,149,162,76,252,132,163,92,251,116,164,76,222,100,165,220,23,94,166,76,192,68,167,220,249,61,168,76,162,36,169,220,219,29,170,76,132,4,171,220,189,253,171,76,102,228,172,220,159,221,173,204,130,205,174,220,129,189,175,204,100,173,176,92,158,166,177,204,70,141,178,92,128,134,179,204,40,109,180,92,98,102,181,204,10,77,182,92,68,70,183,204,236,44,184,92,38,38,185,76,9,22,186,220,66,15,187,76,235,245,187,220,36,239,188,76,205,213,189,108,77,158,190,168,6,207,190,24,175,181,191,56,49,184,192,168,239,121,193,56,19,152,194,168,209,89,195,56,245,119,196,168,179,57,197,184,17,97,198,168,149,25,199,184,243,64,200,40,178,2,201,184,213,32,202,40,148,226,202,184,183,0,204,200,230,96,210,216,68,136,211,72,3,74,212,216,38,104,213,72,229,41,214,216,8,72,215,72,199,9,216,216,234,39,217,72,169,233,217,88,7,17,219,200,197,210,219,88,116,222,220,72,109,169,221,88,86,190,222,72,79,137,223,88,56,158,224,72,49,105,225,88,26,126,226,72,19,73,227,88,252,93,228,72,245,40,229,216,24,71,230,200,17,18,231,216,250,38,232,200,243,241,232,216,220,6,234,200,213,209,234,216,190,230,235,200,183,177,236,216,160,198,237,72,190,191,238,88,189,175,239,72,160,159,240,88,159,143,241,72,130,127,242,88,129,111,243,72,100,95,244,88,99,79,245,72,70,63,246,88,69,47,247,200,98,40,248,88,39,15,249,200,68,8,250,216,67,248,250,200,38,232,251,216,37,216,252,200,8,200,253,216,7,184,254,200,234,167,255,216,233,151,0,200,204,135,1,216,203,119,2,72,233,112,3,88,232,96,4,72,203,80,5,88,202,64,6,72,173,48,7,88,172,32,8,72,143,16,9,88,142,0,10,72,113,240,10,88,112,224,11,200,141,217,12,88,82,192,13,200,111,185,14,216,110,169,15,200,81,153,16,216,80,137,17,200,51,121,18,216,50,105,19,200,21,89,20,216,20,73,21,200,247,56,22,216,246,40,23,72,20,34,24,216,216,8,25,72,246,1,26,88,245,241,26,72,216,225,27,88,215,209,28,72,186,193,29,88,185,177,30,72,156,161,31,244,207,117,32,100,98,129,33,244,177,85,34,212,112,106,35,244,147,53,36,228,96,74,37,244,117,21,38,228,66,42,39,116,146,254,39,228,36,10,41,116,116,222,41,228,6,234,42,116,86,190,43,100,35,211,44,116,56,158,45,100,5,179,46,116,26,126,47,100,231,146,48,244,54,103,49,100,201,114,50,244,24,71,51,100,171,82,52,244,250,38,53,100,141,50,54,244,220,6,55,228,169,27,56,244,190,230,56,228,139,251,57,244,160,198,58,228,109,219,59,116,189,175,60,228,79,187,61,116,159,143,62,228,49,155,63,116,129,111,64,100,78,132,65,116,99,79,66,100,48,100,67,116,69,47,68,100,18,68,69,244,119,243,69,228,46,45,71,244,89,211,71,228,16,13,73,244,59,179,73,228,242,236,74,116,88,156,75,100,15,214,76,116,58,124,77,72,13,182,78,88,56,92,79,72,239,149,80,170,170,170,170,170,170,170,170,187,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,10,0,0,0,148,206,255,255,0,0,0,0,148,206,255,255,16,14,0,0,200,206,255,255,0,0,0,0,200,206,255,255,16,14,0,0,200,206,255,255,32,28,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,200,206,255,127,163,3,0,96,221,7,0,112,121,73,0,224,125,73,0,224,59,74,0,16,107,74,0,224,22,0,0,0,24,150,253,134,144,175,184,158,128,7,187,159,144,12,137,203,0,24,97,210,16,1,118,211,0,111,83,212,16,227,85,213,0,220,32,214,16,197,53,215,0,190,0,216,16,167,21,217,0,160,224,217,16,44,39,232,0,15,23,233,16,240,230,235,0,211,214,236,16,210,198,237,0,203,145,238,144,238,175,239,0,173,113,240,144,25,97,4,170,170,170,170,170,170,170,170,170,170,170,170,22,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,232,154,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,3,0,48,0,66,0,54,0,129,74,0,224,155,74,0,16,162,74,0,224,7,0,0,0,68,75,76,164,224,220,154,32,80,155,92,33,224,190,122,34,80,125,60,35,224,140,93,68,208,200,214,68,170,170,170,170,170,170,170,170,170,170,170,170,7,0,0,0,1,2,1,2,1,2,1,170,6,0,0,0,60,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,176,74,0,224,187,74,0,16,190,74,0,224,35,0,0,0,252,119,128,155,224,122,245,39,208,93,229,40,224,92,213,41,208,63,197,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,132,191,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,207,10,0,96,216,7,0,112,202,74,0,224,239,74,0,16,249,74,0,224,4,0,0,0,116,0,0,0,200,0,0,0,218,0,0,0,28,2,0,0,94,0,0,0,112,232,182,165,112,79,121,169,240,124,242,175,112,100,102,182,0,16,27,183,240,242,10,184,128,141,234,203,112,186,153,210,0,89,27,215,240,180,145,216,144,75,126,226,144,82,73,227,144,45,94,228,144,52,41,229,16,74,71,230,16,81,18,231,16,44,39,232,16,51,242,232,16,14,7,234,16,21,210,234,16,240,230,235,16,247,177,236,16,210,198,237,16,217,145,238,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,160,130,15,70,144,79,36,71,32,159,248,71,144,49,4,73,32,129,216,73,144,19,228,74,160,179,156,75,144,106,214,76,170,170,170,170,94,0,0,0,3,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,8,0,0,0,76,146,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,128,143,255,127,1,0,0,96,219,7,0,112,10,75,0,224,15,75,0,224,111,75,0,16,136,75,0,224,6,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,217,0,0,0,219,0,0,0,133,1,0,0,170,0,0,0,112,147,184,158,96,235,186,159,200,46,135,160,64,177,154,161,240,6,148,162,64,169,85,163,240,93,134,164,96,120,40,165,240,63,102,166,224,78,12,167,240,33,70,168,224,48,236,168,112,201,28,170,96,77,213,170,112,171,252,171,96,47,181,172,112,141,220,173,96,17,149,174,112,111,188,175,224,45,126,176,112,81,156,177,96,74,103,178,112,51,124,179,96,44,71,180,112,21,92,181,96,14,39,182,112,247,59,183,96,240,6,184,240,19,37,185,96,210,230,185,240,245,4,187,224,238,207,187,240,215,228,188,224,208,175,189,240,185,196,190,224,178,143,191,240,155,164,192,224,148,111,193,240,125,132,194,224,118,79,195,240,95,100,196,224,88,47,197,112,124,77,198,224,58,15,199,112,94,45,200,224,251,96,210,240,228,117,211,224,221,64,212,240,198,85,213,224,191,32,214,240,168,53,215,224,161,0,216,240,138,21,217,96,146,51,218,112,167,254,218,96,116,19,220,112,137,222,220,96,130,169,221,112,107,190,222,96,100,137,223,112,77,158,224,96,70,105,225,112,47,126,226,96,40,73,227,112,17,94,228,96,10,41,229,240,45,71,230,224,38,18,231,240,15,39,232,224,242,22,233,240,241,6,234,224,212,246,234,240,211,230,235,224,182,214,236,240,181,198,237,96,211,191,238,112,210,175,239,96,181,159,240,112,180,143,241,96,151,127,242,112,150,111,243,96,121,95,244,112,120,79,245,96,91,63,246,112,90,47,247,224,119,40,248,112,60,15,249,224,89,8,250,240,88,248,250,224,59,232,251,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,193,32,8,96,164,16,9,112,163,0,10,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,236,120,238,114,170,170,170,170,170,170,170,170,171,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,148,181,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,163,3,0,96,216,7,0,112,156,75,0,224,163,75,0,224,78,76,0,224,83,76,0,16,127,76,0,224,2,0,0,0,221,0,0,0,136,1,0,0,128,0,0,0,160,189,184,158,144,21,187,159,160,26,137,203,16,38,97,210,32,15,118,211,16,8,65,212,32,241,85,213,16,234,32,214,32,211,53,215,16,204,0,216,32,181,21,217,16,174,224,217,160,209,254,218,16,144,192,219,160,179,222,220,144,172,169,221,160,149,190,222,144,142,137,223,160,119,158,224,144,112,105,225,160,89,126,226,144,82,73,227,160,59,94,228,144,52,41,229,32,88,71,230,16,81,18,231,32,58,39,232,16,51,242,232,32,28,7,234,16,21,210,234,32,254,230,235,16,247,177,236,32,224,198,237,16,217,145,238,160,252,175,239,16,187,113,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,235,32,8,144,206,16,9,160,205,0,10,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,2,0,0,0,255,255,255,255,236,118,61,94,170,170,170,170,129,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,148,140,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,128,143,255,127,163,3,0,96,216,7,0,112,147,76,0,224,150,76,0,224,23,77,0,224,27,77,0,16,61,77,0,224,2,0,0,0,223,0,0,0,138,1,0,0,91,0,0,0,176,203,184,158,160,35,187,159,176,12,208,160,128,210,162,161,176,40,137,203,32,52,97,210,144,118,47,247,16,162,40,248,144,132,197,248,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,32,181,211,71,16,108,13,73,32,151,179,73,16,78,237,74,160,179,156,75,144,106,214,76,160,149,124,77,144,76,182,78,160,119,92,79,144,46,150,80,160,89,60,81,144,16,118,82,160,59,28,83,144,242,85,84,160,29,252,84,144,212,53,86,32,58,229,86,16,241,30,88,32,28,197,88,16,211,254,89,32,254,164,90,16,181,222,91,32,224,132,92,16,151,190,93,32,194,100,94,240,92,158,95,2,0,0,0,255,255,255,255,156,138,134,125,92,0,0,0,1,2,1,2,1,2,1,3,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,6,14,0,0,0,100,129,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,112,129,255,255,32,28,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,81,77,0,224,84,77,0,224,176,77,0,224,179,77,0,16,203,77,0,224,3,0,0,0,193,0,0,0,224,0,0,0,131,1,0,0,124,0,0,0,224,251,1,155,80,186,195,155,128,161,184,158,112,249,186,159,128,59,160,194,240,132,79,195,128,254,136,203,240,9,97,210,0,104,136,211,240,96,83,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,0,7,0,219,240,92,200,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,196,214,236,0,196,198,237,240,188,145,238,128,164,111,243,240,98,49,244,128,74,15,249,0,118,8,250,0,103,248,250,0,88,232,251,0,73,216,252,0,58,200,253,0,43,184,254,0,28,168,255,0,13,152,0,0,254,135,1,0,239,119,2,128,26,113,3,128,11,97,4,128,252,80,5,128,237,64,6,128,222,48,7,128,207,32,8,128,192,16,9,128,177,0,10,128,162,240,10,128,147,224,11,0,191,217,12,128,117,192,13,0,161,185,14,0,146,169,15,0,131,153,16,0,116,137,17,0,101,121,18,0,86,105,19,0,71,89,20,0,56,73,21,0,41,57,22,0,26,41,23,128,69,34,24,0,252,8,25,128,39,2,26,128,24,242,26,128,9,226,27,128,250,209,28,128,235,193,29,128,220,177,30,128,205,161,31,0,15,118,32,128,175,129,33,0,241,85,34,0,204,106,35,0,211,53,36,0,174,74,37,0,181,21,38,0,144,42,39,128,209,254,39,0,114,10,41,128,179,222,41,0,84,234,42,128,149,190,43,128,112,211,44,128,119,158,45,128,82,179,46,128,89,126,47,128,52,147,48,0,118,103,49,128,22,115,50,0,88,71,51,128,248,82,52,0,58,39,53,128,218,50,54,0,28,7,55,0,247,27,56,0,254,230,56,0,217,251,57,0,224,198,58,0,187,219,59,128,252,175,60,0,157,187,61,128,222,143,62,0,127,155,63,128,192,111,64,128,155,132,65,128,162,79,66,128,125,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,148,176,228,100,170,170,170,170,125,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,236,164,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,171,255,127,163,3,0,96,216,7,0,112,226,77,0,224,230,77,0,224,99,78,0,224,103,78,0,16,136,78,0,224,80,0,0,0,176,40,137,203,32,52,97,210,48,85,184,254,32,56,168,255,48,55,152,0,32,26,136,1,48,25,120,2,160,54,113,3,176,53,97,4,160,24,81,5,176,23,65,6,160,250,48,7,176,81,141,7,160,220,16,9,48,205,173,9,160,190,240,10,176,189,224,11,32,219,217,12,176,159,192,13,32,189,185,14,48,188,169,15,32,159,153,16,48,158,137,17,32,129,121,18,48,128,105,19,32,99,89,20,48,98,73,21,32,69,57,22,48,68,41,23,160,97,34,24,48,38,9,25,160,67,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,191,55,135,125,170,170,170,170,82,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,129,206,0,0,0,0,0,0,1,125,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,156,78,0,224,237,78,0,224,243,78,0,16,9,79,0,224,17,0,0,0,128,204,30,254,32,6,218,74,240,202,143,75,32,156,169,78,144,205,67,79,128,59,10,88,16,15,164,90,64,20,185,91,128,29,141,92,48,69,150,93,0,197,99,94,60,160,120,95,80,183,76,96,60,130,88,97,80,153,44,98,60,100,56,99,0,177,8,100,17,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,0,0,0,0,0,0,0,0,128,112,0,0,0,0,0,0,176,154,0,0,0,0,0,0,3,0,48,0,66,0,54,0,29,79,0,224,47,79,0,16,53,79,0,224,7,0,0,0,0,64,156,231,16,223,71,246,0,171,71,254,48,20,218,74,64,250,151,75,48,170,169,78,192,247,67,79,170,170,170,170,170,170,170,170,7,0,0,0,2,0,2,1,2,1,2,170,6,0,0,0,0,0,0,0,0,0,0,0,80,70,0,0,0,0,0,0,112,98,0,0,0,0,0,0,3,0,48,0,66,0,54,0,65,79,0,224,75,79,0,16,78,79,0,224,91,0,0,0,128,120,213,155,0,47,188,156,96,180,135,160,0,104,12,215,0,141,194,251,0,126,178,252,0,89,199,253,128,176,118,254,0,59,167,255,128,146,86,0,0,29,135,1,0,175,63,2,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,0,79,3,23,128,100,33,24,0,49,227,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,39,103,30,0,178,151,31,128,126,89,32,128,206,128,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,95,2,38,0,175,41,39,0,182,244,39,128,225,237,40,0,152,212,41,128,195,205,42,0,122,180,43,128,165,173,44,0,92,148,45,128,135,141,46,0,62,116,47,128,105,109,48,128,90,93,49,0,134,86,50,128,60,61,51,0,104,54,52,128,30,29,53,0,74,22,54,128,0,253,54,0,44,246,55,128,226,220,56,128,233,167,57,128,196,188,58,128,42,191,59,0,225,165,60,128,12,159,61,0,195,133,62,128,238,126,63,0,165,101,64,128,208,94,65,0,135,69,66,128,178,62,67,128,163,46,68,128,148,30,69,0,75,5,70,0,177,7,71,0,162,247,71,0,147,231,72,0,132,215,73,0,117,199,74,0,72,151,77,0,57,135,78,2,0,0,0,255,255,255,255,0,22,5,124,170,170,170,170,170,170,170,170,92,0,0,0,1,2,1,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,0,0,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,140,0,112,218,3,0,96,220,7,0,112,90,79,0,224,182,79,0,224,187,79,0,16,211,79,0,224,2,0,0,0,128,50,32,226,64,34,218,74,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,2,1,170,170,6,0,0,0,0,0,0,0,0,0,0,0,80,70,0,0,0,0,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,229,79,0,224,235,79,0,16,237,79,0,224,82,0,0,0,0,173,152,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,188,48,23,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,176,134,67,88,170,170,170,170,170,170,170,170,170,170,170,170,82,0,0,0,2,1,2,1,2,1,2,1,2,1,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,10,0,0,0,0,0,0,0,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,249,79,0,224,79,80,0,16,101,80,0,224,1,0,0,0,0,45,2,13,1,0,0,0,1,170,170,170,4,0,0,0,0,0,0,0,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,117,80,0,224,119,80,0,16,121,80,0,224,2,0,0,0,144,5,70,66,16,27,100,67,170,170,170,170,2,0,0,0,1,0,170,170,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,28,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,0,0,0,112,27,23,0,96,214,7,0,112,131,80,0,224,135,80,0,16,137,80,0,224,4,0,0,0,128,137,88,233,16,57,77,45,0,133,181,46,48,69,127,101,170,170,170,170,170,170,170,170,4,0,0,0,2,0,2,1,6,0,0,0,0,0,0,0,0,0,0,0,80,70,0,0,0,0,0,0,112,98,0,0,0,0,0,0,3,0,48,0,66,0,54,0,152,80,0,224,159,80,0,16,161,80,0,224,52,0,0,0,220,123,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,237,228,40,80,149,120,41,64,208,212,41,64,193,196,42,64,178,180,43,64,163,164,44,64,148,148,45,64,133,132,46,64,118,116,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,32,198,224,101,170,170,170,170,52,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,1,10,0,0,0,36,72,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,173,80,0,224,227,80,0,16,241,80,0,224,87,0,0,0,208,214,163,182,224,121,114,6,80,171,12,7,96,55,36,8,208,222,237,8,224,106,5,10,80,18,207,10,224,239,231,11,208,117,218,12,96,35,201,13,208,202,146,14,96,5,169,15,208,172,114,16,96,213,173,28,208,9,159,29,96,253,146,30,80,224,130,31,96,223,114,32,80,194,98,33,96,193,82,34,208,222,75,35,96,188,100,36,208,192,43,37,96,111,55,38,208,162,11,39,224,115,11,40,80,74,226,40,96,190,228,41,208,102,203,42,224,101,187,43,208,72,171,44,224,71,155,45,208,181,120,46,96,100,132,47,224,165,88,48,96,70,100,49,96,194,65,50,96,40,68,51,96,164,33,52,96,10,36,53,96,134,1,54,96,147,122,55,224,162,234,55,224,124,226,56,96,191,211,57,224,94,194,58,96,161,179,59,96,146,163,60,96,131,147,61,96,116,131,62,96,79,152,63,96,86,99,64,224,246,110,65,224,114,76,66,224,99,60,67,224,84,44,68,224,47,65,69,224,54,12,70,224,17,33,71,224,24,236,71,96,46,10,73,224,250,203,73,96,16,234,74,224,220,171,75,96,242,201,76,96,249,148,77,96,212,169,78,96,219,116,79,80,94,179,82,96,159,52,83,224,180,82,84,96,129,20,85,224,150,50,86,224,157,253,86,224,120,18,88,224,127,221,88,224,90,242,89,224,97,189,90,224,60,210,91,224,67,157,92,224,30,178,93,224,37,125,94,96,59,155,95,224,7,93,96,96,29,123,97,224,255,23,98,96,255,90,99,170,170,170,170,170,170,170,170,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,8,0,0,0,176,33,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,1,81,0,224,91,81,0,16,114,81,0,224,64,0,0,0,156,29,25,170,192,140,163,181,48,27,39,21,160,79,24,22,176,78,8,23,48,145,249,23,64,144,233,24,176,196,218,25,64,21,204,26,96,34,188,27,96,19,172,28,96,4,156,29,96,245,139,30,96,230,123,31,96,215,107,32,96,200,91,33,96,185,75,34,96,170,59,35,96,155,43,36,96,140,27,37,96,125,11,38,224,168,4,39,224,153,244,39,240,152,228,40,240,64,120,41,224,123,212,41,224,108,196,42,224,93,180,43,224,78,164,44,224,63,148,45,224,48,132,46,224,33,116,47,224,18,100,48,96,62,93,49,96,25,114,50,96,32,61,51,96,251,81,52,96,2,29,53,96,221,49,54,96,228,252,54,224,249,26,56,96,198,220,56,224,219,250,57,96,168,188,58,224,189,218,59,224,196,165,60,224,159,186,61,224,166,133,62,224,129,154,63,224,136,101,64,96,158,131,65,224,106,69,66,96,128,99,67,224,76,37,68,96,98,67,69,224,46,5,70,96,68,35,71,96,75,238,71,96,38,3,73,96,45,206,73,96,8,227,74,96,15,174,75,240,50,204,76,112,255,141,77,170,170,170,170,170,170,170,170,64,0,0,0,3,5,6,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,14,0,0,0,100,166,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,208,182,0,0,0,0,0,0,208,182,0,0,16,14,0,0,3,0,48,0,66,0,54,0,128,81,0,224,195,81,0,16,212,81,0,224,50,0,0,0,224,148,25,170,64,253,163,181,48,206,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,96,146,116,47,96,131,100,48,224,174,93,49,224,137,114,50,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,50,0,0,0,1,3,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,12,0,0,0,32,47,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,232,81,0,224,27,82,0,16,41,82,0,224,51,0,0,0,104,142,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,51,0,0,0,1,3,4,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,12,0,0,0,152,53,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,59,82,0,224,111,82,0,16,125,82,0,224,2,0,0,0,246,0,0,0,247,0,0,0,25,0,0,0,68,141,25,170,64,253,163,181,176,139,39,21,32,192,24,22,48,191,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,170,170,170,170,170,170,170,170,170,170,170,170,25,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,170,170,170,10,0,0,0,188,54,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,143,82,0,224,146,82,0,224,175,82,0,16,183,82,0,224,50,0,0,0,80,147,25,170,80,11,164,181,48,206,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,170,170,170,170,170,170,170,170,170,170,170,170,50,0,0,0,1,4,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,3,2,3,2,3,2,3,4,170,170,14,0,0,0,176,48,0,0,0,0,0,0,48,42,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,201,82,0,224,255,82,0,16,13,83,0,224,53,0,0,0,224,60,48,158,80,104,48,23,192,15,250,23,80,189,232,24,64,67,219,25,208,147,204,26,64,200,189,27,80,199,173,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,0,120,246,39,128,186,231,40,0,253,216,41,128,63,202,42,128,48,186,43,0,115,171,44,0,100,155,45,128,166,140,46,128,151,124,47,0,218,109,48,128,28,95,49,0,95,80,50,0,80,64,51,128,146,49,52,128,131,33,53,0,198,18,54,0,183,2,55,128,249,243,55,0,60,229,56,128,126,214,57,128,111,198,58,0,178,183,59,0,163,167,60,128,229,152,61,128,214,136,62,0,25,122,63,128,91,107,64,0,158,92,65,0,143,76,66,128,209,61,67,128,194,45,68,0,5,31,69,0,246,14,70,128,56,0,71,2,0,0,0,255,255,255,255,220,177,134,105,170,170,170,170,54,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,164,41,0,0,0,0,0,0,160,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,33,83,0,224,87,83,0,224,91,83,0,16,106,83,0,224,66,0,0,0,68,149,25,170,80,12,218,231,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,112,9,229,40,112,250,212,41,112,235,196,42,16,217,93,49,16,180,114,50,0,173,61,51,0,136,82,52,0,143,29,53,0,106,50,54,0,113,253,54,128,134,27,56,0,83,221,56,128,104,251,57,0,53,189,58,128,74,219,59,128,81,166,60,128,44,187,61,128,51,134,62,128,14,155,63,128,21,102,64,0,43,132,65,128,247,69,66,0,13,100,67,128,217,37,68,0,239,67,69,128,187,5,70,0,209,35,71,0,216,238,71,0,179,3,73,0,186,206,73,0,149,227,74,0,156,174,75,128,177,204,76,0,126,142,77,128,147,172,78,0,96,110,79,128,117,140,80,128,124,87,81,128,87,108,82,128,94,55,83,128,57,76,84,128,64,23,85,128,27,44,86,170,170,170,170,170,170,170,170,66,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,188,46,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,122,83,0,224,191,83,0,16,209,83,0,224,4,0,0,0,252,0,0,0,48,1,0,0,77,1,0,0,8,2,0,0,1,0,0,0,196,103,106,162,170,170,170,170,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,60,94,0,0,0,0,0,0,112,98,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,225,83,0,224,230,83,0,224,235,83,0,16,237,83,0,224,67,0,0,0,252,125,213,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,128,76,199,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,64,234,246,86,170,170,170,170,170,170,170,170,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,170,10,0,0,0,132,78,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,249,83,0,224,63,84,0,16,81,84,0,224,64,0,0,0,224,99,101,162,80,130,123,163,96,128,78,164,208,180,63,165,224,39,37,166,208,127,39,167,224,243,41,168,80,178,235,168,224,133,42,232,80,45,244,232,96,185,11,234,208,96,213,234,224,236,236,235,80,148,182,236,224,113,207,237,80,25,153,238,96,165,176,239,208,76,122,240,96,94,166,4,208,119,43,5,224,3,67,6,80,171,12,7,96,55,36,8,208,222,237,8,224,106,5,10,80,18,207,10,224,239,231,11,80,151,177,12,96,35,201,13,208,202,146,14,96,5,169,15,208,172,114,16,224,46,244,26,208,156,209,27,96,98,213,28,80,208,178,29,224,149,182,30,208,3,148,31,96,201,151,32,80,55,117,33,224,44,163,34,80,188,87,35,96,95,103,36,208,239,56,37,96,181,60,38,80,35,26,39,224,232,29,40,208,86,251,40,224,109,0,42,208,9,206,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,145,77,50,224,144,61,51,208,115,45,52,224,114,29,53,208,85,13,54,224,84,253,54,80,92,27,56,2,0,0,0,255,255,255,255,184,194,182,86,170,170,170,170,170,170,170,170,65,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,72,33,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,32,28,0,112,13,4,0,96,208,7,0,112,97,84,0,224,162,84,0,224,167,84,0,16,185,84,0,224,52,0,0,0,16,126,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,192,163,190,40,48,55,231,41,32,165,196,42,48,25,199,43,32,135,164,44,48,251,166,45,32,105,132,46,48,221,134,47,32,75,100,48,48,191,102,49,160,103,77,50,216,137,61,51,200,86,82,52,216,107,29,53,200,56,50,54,216,77,253,54,72,85,27,56,216,47,221,56,72,55,251,57,216,17,189,58,72,25,219,59,88,46,166,60,72,251,186,61,88,16,134,62,72,221,154,63,88,242,101,64,200,249,131,65,88,212,69,66,32,146,251,66,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,10,0,0,0,240,69,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,203,84,0,224,3,85,0,16,17,85,0,224,66,0,0,0,160,249,219,161,0,197,163,181,112,83,39,21,224,135,24,22,240,134,8,23,96,187,249,23,112,186,233,24,224,238,218,25,112,63,204,26,144,76,188,27,144,61,172,28,144,46,156,29,144,31,140,30,144,16,124,31,144,1,108,32,144,242,91,33,144,227,75,34,144,212,59,35,144,197,43,36,144,182,27,37,144,167,11,38,16,211,4,39,16,196,244,39,32,195,228,40,32,107,120,41,16,166,212,41,16,151,196,42,16,136,180,43,16,121,164,44,16,106,148,45,16,91,132,46,16,76,116,47,16,61,100,48,144,104,93,49,144,67,114,50,144,74,61,51,144,37,82,52,144,44,29,53,144,7,50,54,144,14,253,54,16,36,27,56,144,240,220,56,16,6,251,57,144,210,188,58,16,232,218,59,16,239,165,60,16,202,186,61,16,209,133,62,16,172,154,63,16,179,101,64,144,200,131,65,16,149,69,66,144,170,99,67,16,119,37,68,144,140,67,69,16,89,5,70,144,110,35,71,144,117,238,71,144,80,3,73,144,87,206,73,144,50,227,74,144,57,174,75,16,79,204,76,144,27,142,77,0,201,75,84,32,206,246,86,170,170,170,170,170,170,170,170,170,170,170,170,66,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,1,3,170,170,12,0,0,0,96,106,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,3,0,48,0,66,0,54,0,33,85,0,224,103,85,0,16,121,85,0,224,51,0,0,0,40,231,211,134,144,220,11,15,128,200,233,24,224,238,218,25,112,63,204,26,96,34,188,27,112,33,172,28,96,4,156,29,112,3,140,30,96,230,123,31,112,229,107,32,96,200,91,33,112,199,75,34,96,170,59,35,112,169,43,36,96,140,27,37,112,139,11,38,224,168,4,39,240,167,244,39,224,138,228,40,240,137,212,41,224,108,196,42,240,107,180,43,224,78,164,44,240,77,148,45,224,48,132,46,240,47,116,47,224,18,100,48,112,76,93,49,96,47,77,50,112,46,61,51,96,17,45,52,112,16,29,53,96,243,12,54,144,165,233,58,128,158,180,59,144,157,164,60,128,128,148,61,144,127,132,62,128,98,116,63,144,97,100,64,128,68,84,65,144,67,68,66,128,38,52,67,144,37,36,68,0,67,29,69,240,170,239,71,160,154,21,85,112,97,5,86,160,124,245,86,112,67,229,87,51,0,0,0,1,2,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,2,3,2,3,2,170,12,0,0,0,88,107,0,0,0,0,0,0,112,98,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,3,0,48,0,66,0,54,0,139,85,0,224,191,85,0,16,205,85,0,224,7,0,0,0,28,189,157,135,40,28,90,203,160,43,149,204,56,128,117,210,40,0,166,49,32,0,113,50,40,234,63,68,2,0,0,0,255,255,255,255,36,153,182,86,170,170,170,170,8,0,0,0,1,2,3,4,2,6,5,2,14,0,0,0,220,74,0,0,0,0,0,0,228,74,0,0,0,0,0,0,88,77,0,0,0,0,0,0,88,77,0,0,8,7,0,0,88,77,0,0,16,14,0,0,96,84,0,0,0,0,0,0,104,91,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,223,85,0,224,231,85,0,224,235,85,0,16,238,85,0,224,121,0,0,0,120,171,242,161,128,47,129,162,112,157,94,163,128,17,97,164,112,127,62,165,128,243,64,166,112,97,30,167,128,213,32,168,240,125,7,169,0,82,143,241,112,156,91,242,128,40,115,243,112,126,59,244,128,173,85,245,240,84,31,246,0,225,54,247,240,54,255,247,0,218,14,249,240,187,225,249,0,72,249,250,112,239,194,251,0,205,219,252,112,116,165,253,128,0,189,254,240,167,134,255,0,52,158,0,112,219,103,1,128,103,127,2,240,14,73,3,128,236,97,4,240,147,43,5,0,32,67,6,112,199,12,7,128,83,36,8,240,250,237,8,0,135,5,10,112,46,207,10,0,12,232,11,112,179,177,12,128,63,201,13,240,89,107,14,0,115,170,15,112,141,76,16,0,197,244,24,112,109,219,25,0,74,215,26,112,242,189,27,0,35,85,30,112,229,138,31,0,122,71,32,240,25,137,33,0,116,60,34,240,158,107,35,128,191,50,36,112,69,37,37,128,68,21,38,112,39,5,39,224,91,246,39,80,144,231,40,96,27,226,41,80,21,202,42,96,43,178,43,208,95,163,44,224,71,155,45,80,124,140,46,96,123,124,47,208,175,109,48,96,0,95,49,208,52,80,50,96,226,62,51,80,104,49,52,96,196,30,53,208,155,18,54,224,154,2,55,80,207,243,55,224,31,229,56,80,84,214,57,96,83,198,58,208,135,183,59,224,134,167,60,80,187,152,61,96,186,136,62,208,238,121,63,96,63,107,64,208,115,92,65,224,114,76,66,80,167,61,67,96,166,45,68,80,253,18,69,224,54,12,70,80,62,42,71,96,83,245,71,208,113,11,73,224,250,203,73,80,2,234,74,96,23,181,75,80,228,201,76,96,249,148,77,80,198,169,78,96,219,116,79,80,168,137,80,96,189,84,81,80,138,105,82,96,159,52,83,208,166,82,84,96,129,20,85,208,136,50,86,96,99,244,86,208,106,18,88,224,127,221,88,208,76,242,89,224,97,189,90,208,46,210,91,224,67,157,92,208,16,178,93,224,37,125,94,80,45,155,95,224,7,93,96,80,15,123,97,224,233,60,98,80,241,90,99,170,170,170,170,121,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,170,8,0,0,0,8,34,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,4,86,0,224,127,86,0,16,159,86,0,224,3,0,0,0,7,1,0,0,9,1,0,0,119,1,0,0,6,0,0,0,176,134,219,202,24,113,5,204,168,50,149,204,152,210,168,221,16,196,59,74,144,216,60,75,2,0,0,0,255,255,255,255,188,134,134,105,7,0,0,0,2,5,1,5,3,4,3,170,12,0,0,0,196,84,0,0,0,0,0,0,88,77,0,0,0,0,0,0,208,82,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,104,91,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,173,86,0,224,177,86,0,224,184,86,0,224,187,86,0,16,190,86,0,224,4,0,0,0,196,24,230,146,240,50,153,203,112,48,234,11,0,153,195,57,170,170,170,170,170,170,170,170,170,170,170,170,4,0,0,0,1,2,1,2,6,0,0,0,188,117,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,211,86,0,224,219,86,0,16,221,86,0,224,4,0,0,0,11,1,0,0,42,1,0,0,12,2,0,0,16,2,0,0,1,0,0,0,168,153,242,161,170,170,170,170,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,216,51,0,0,0,0,0,0,64,56,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,233,86,0,224,238,86,0,224,243,86,0,16,245,86,0,224,24,0,0,0,128,131,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,143,202,40,170,170,170,170,24,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,10,0,0,0,128,64,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,1,87,0,224,27,87,0,16,34,87,0,224,88,0,0,0,44,30,119,165,224,175,237,9,208,146,221,10,224,100,250,11,80,198,190,12,96,57,164,13,208,225,138,14,96,27,132,15,208,79,117,16,96,253,99,17,80,224,83,18,224,25,77,19,80,194,51,20,96,193,35,21,80,164,19,22,96,163,3,23,80,134,243,23,96,133,227,24,80,104,211,25,96,103,195,26,208,132,188,27,224,131,172,28,208,102,156,29,224,101,140,30,208,72,124,31,224,71,108,32,208,42,92,33,224,41,76,34,208,12,60,35,224,11,44,36,208,238,27,37,224,237,11,38,80,11,5,39,96,10,245,39,80,237,228,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,145,77,50,224,144,61,51,208,115,45,52,224,114,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,144,108,55,83,144,71,76,84,144,78,23,85,144,41,44,86,144,48,247,86,208,127,208,87,16,40,245,89,144,244,182,90,16,10,213,91,88,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,1,2,1,8,0,0,0,212,31,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,170,3,0,96,227,7,0,112,50,87,0,224,139,87,0,16,162,87,0,224,148,0,0,0,0,207,89,200,0,166,250,200,128,156,56,201,128,235,229,204,0,254,172,205,0,31,199,206,0,131,143,207,0,164,169,208,0,125,132,209,128,215,138,210,128,176,101,211,0,11,108,212,96,99,54,232,80,45,244,232,96,185,11,234,208,96,213,234,240,250,236,235,0,109,181,236,240,127,207,237,0,242,151,238,112,179,176,239,128,37,121,240,240,230,145,241,0,89,90,242,112,26,115,243,128,140,59,244,112,159,85,245,128,17,30,246,240,210,54,247,0,69,255,247,112,6,24,249,0,202,225,249,240,57,249,250,80,66,39,251,224,139,124,8,208,176,253,8,96,234,246,9,208,51,166,10,96,252,233,19,96,91,33,20,96,198,250,26,96,110,142,27,224,248,190,28,208,124,119,29,96,255,204,30,80,153,96,31,96,177,130,32,208,181,73,33,224,158,94,34,80,93,32,35,96,48,90,36,80,63,0,37,224,237,11,38,208,230,214,38,224,207,235,39,80,3,192,40,96,236,212,41,208,31,169,42,224,101,187,43,208,1,137,44,224,71,155,45,80,169,95,46,224,41,123,47,208,197,72,48,96,70,100,49,96,194,65,50,96,40,68,51,96,164,33,52,96,10,36,53,96,134,1,54,96,97,22,55,80,68,6,56,224,125,255,56,208,96,239,57,224,95,223,58,208,66,207,59,224,65,191,60,208,36,175,61,224,35,159,62,208,6,143,63,224,5,127,64,224,129,92,65,224,231,94,66,240,183,65,67,96,166,45,68,80,253,18,69,224,217,14,70,112,111,232,70,224,24,236,71,208,17,183,72,224,250,203,73,96,60,160,74,156,46,173,75,208,189,97,76,156,249,148,77,80,194,53,78,96,219,116,79,224,145,91,80,96,189,84,81,80,160,68,82,96,159,52,83,80,108,73,84,224,210,21,85,96,92,41,86,240,194,245,86,96,202,19,88,240,164,213,88,96,172,243,89,240,134,181,90,96,142,211,91,224,67,157,92,80,98,179,93,96,119,126,94,96,82,147,95,96,89,94,96,96,29,123,97,224,140,63,98,240,94,92,99,0,94,76,100,240,64,60,101,128,5,35,102,240,34,28,103,0,173,249,103,240,4,252,104,0,26,199,105,240,230,219,106,0,252,166,107,112,3,197,108,0,222,134,109,112,229,164,110,0,192,102,111,112,199,132,112,128,220,79,113,112,169,100,114,128,190,47,115,112,139,68,116,128,160,15,117,240,167,45,118,128,130,239,118,240,137,13,120,128,100,207,120,240,107,237,121,128,70,175,122,240,77,205,123,0,99,152,124,112,245,163,125,0,69,120,126,240,156,122,127,64,1,0,0,0,0,0,0,0,39,88,128,0,0,0,0,240,9,72,129,0,0,0,0,0,9,56,130,0,0,0,0,112,177,30,131,0,0,0,0,0,235,23,132,0,0,0,0,112,30,236,132,0,0,0,0,0,198,44,133,0,0,0,0,112,242,53,133,0,0,0,0,128,7,1,134,0,0,0,0,240,197,194,134,0,0,0,0,0,51,250,134,0,0,0,0,112,212,21,135,0,0,0,0,128,233,224,135,0,0,0,0,112,109,153,136,0,0,0,0,128,218,208,136,0,0,0,0,112,182,245,136,0,0,0,0,128,203,192,137,0,0,0,0,112,218,102,138,0,0,0,0,0,130,167,138,0,0,0,0,112,152,213,138,0,0,0,0,128,173,160,139,0,0,0,0,240,129,61,140,0,0,0,0,0,239,116,140,0,0,0,0,240,180,190,140,0,0,0,0,128,143,128,141,0,0,0,0,112,41,20,142,0,0,0,0,128,150,75,142,0,0,0,0,240,150,158,142,0,0,0,0,128,113,96,143,0,0,0,0,112,150,225,143,0,0,0,0,0,62,34,144,0,0,0,0,240,120,126,144,0,0,0,0,0,142,73,145,0,0,0,0,240,61,184,145,0,0,0,0,0,171,239,145,0,0,0,0,240,90,94,146,0,0,0,0,0,112,41,147,0,0,0,0,240,170,133,147,0,0,0,0,128,82,198,147,0,0,0,0,240,60,62,148,0,0,0,0,0,82,9,149,0,0,0,0,112,82,92,149,0,0,0,0,128,191,147,149,0,0,0,0,112,89,39,150,0,0,0,0,0,52,233,150,0,0,0,0,240,249,50,151,0,0,0,0,0,103,106,151,0,0,0,0,112,59,7,152,0,0,0,0,0,22,201,152,0,0,0,0,240,102,0,153,0,0,0,0,128,14,65,153,0,0,0,0,112,29,231,153,0,0,0,0,128,50,178,154,0,0,0,0,112,14,215,154,0,0,0,0,128,123,14,155,0,0,0,0,112,255,198,155,0,0,0,0,128,20,146,156,0,0,0,0,112,123,164,156,0,0,0,0,0,35,229,156,0,0,0,0,112,225,166,157,0,0,0,0,128,246,113,158,0,0,0,0,240,34,123,158,0,0,0,0,128,202,187,158,0,0,0,0,112,195,134,159,0,0,0,0,128,55,137,160,0,0,0,0,240,223,111,161,0,0,0,0,0,223,95,162,0,0,0,0,240,193,79,163,0,0,0,0,0,76,45,164,0,0,0,0,240,163,47,165,0,0,0,0,128,243,3,166,0,0,0,0,240,133,15,167,0,0,0,0,0,155,218,167,0,0,0,0,240,103,239,168,0,0,0,0,0,125,186,169,0,0,0,0,112,132,216,170,0,0,0,0,0,95,154,171,0,0,0,0,112,102,184,172,0,0,0,0,0,65,122,173,0,0,0,0,112,72,152,174,0,0,0,0,0,35,90,175,0,0,0,0,112,42,120,176,0,0,0,0,128,63,67,177,0,0,0,0,112,12,88,178,0,0,0,0,128,33,35,179,0,0,0,0,112,238,55,180,0,0,0,0,128,3,3,181,0,0,0,0,240,10,33,182,0,0,0,0,128,229,226,182,0,0,0,0,240,236,0,184,0,0,0,0,128,199,194,184,0,0,0,0,112,148,215,185,0,0,0,0,0,228,171,186,0,0,0,0,240,59,174,187,0,0,0,0,0,198,139,188,0,0,0,0,112,227,132,189,0,0,0,0,0,168,107,190,0,0,0,0,112,80,82,191,0,0,0,0,0,138,75,192,0,0,0,0,240,247,40,193,0,0,0,0,0,101,96,193,0,0,0,0,112,145,105,193,0,0,0,0,0,108,43,194,0,0,0,0,112,159,255,194,0,0,0,0,128,12,55,195,0,0,0,0,112,115,73,195,0,0,0,0,0,78,11,196,0,0,0,0,112,12,205,196,0,0,0,0,0,180,13,197,0,0,0,0,112,85,41,197,0,0,0,0,128,106,244,197,0,0,0,0,240,179,163,198,0,0,0,0,0,33,219,198,0,0,0,0,112,55,9,199,0,0,0,0,128,76,212,199,0,0,0,0,240,32,113,200,0,0,0,0,128,200,177,200,0,0,0,0,112,25,233,200,0,0,0,0,128,46,180,201,0,0,0,0,112,200,71,202,0,0,0,0,0,112,136,202,0,0,0,0,240,53,210,202,0,0,0,0,128,16,148,203,0,0,0,0,240,111,30,204,0,0,0,0,0,221,85,204,0,0,0,0,240,23,178,204,0,0,0,0,128,242,115,205,0,0,0,0,240,220,235,205,0,0,0,0,128,132,44,206,0,0,0,0,240,249,145,206,0,0,0,0,0,15,93,207,0,0,0,0,112,132,194,207,0,0,0,0,128,241,249,207,0,0,0,0,240,219,113,208,0,0,0,0,0,241,60,209,0,0,0,0,240,43,153,209,0,0,0,0,0,153,208,209,0,0,0,0,240,189,81,210,0,0,0,0,0,211,28,211,0,0,0,0,240,152,102,211,0,0,0,0,128,64,167,211,0,0,0,0,240,159,49,212,0,0,0,0,0,181,252,212,0,0,0,0,112,64,61,213,0,0,0,0,128,173,116,213,0,0,0,0,112,188,26,214,0,0,0,0,0,151,220,214,0,0,0,0,112,173,10,215,0,0,0,0,0,85,75,215,0,0,0,0,112,158,250,215,0,0,0,0,0,121,188,216,0,0,0,0,240,84,225,216,0,0,0,0,128,252,33,217,0,0,0,0,112,128,218,217,0,0,0,0,128,149,165,218,0,0,0,0,112,252,183,218,0,0,0,0,128,105,239,218,0,0,0,0,112,98,186,219,0,0,0,0,128,119,133,220,0,0,0,0,112,68,154,221,2,0,0,0,255,255,255,255,176,74,189,125,170,170,170,170,53,1,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,80,32,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,8,0,101,0,91,0,110,0,48,0,120,0,80,0,66,0,54,0,170,170,32,28,0,112,74,4,0,96,40,8,0,112,181,87,0,224,74,88,0,224,139,89,0,224,143,89,0,16,222,89,0,224,150,0,0,0,0,207,89,200,0,166,250,200,128,156,56,201,128,235,229,204,0,254,172,205,0,31,199,206,0,131,143,207,0,164,169,208,0,125,132,209,128,215,138,210,128,176,101,211,0,11,108,212,96,99,54,232,80,45,244,232,96,185,11,234,208,96,213,234,240,250,236,235,0,109,181,236,240,127,207,237,0,242,151,238,112,179,176,239,128,37,121,240,240,230,145,241,0,89,90,242,112,26,115,243,128,140,59,244,112,159,85,245,128,17,30,246,240,210,54,247,0,69,255,247,112,6,24,249,0,202,225,249,240,57,249,250,80,66,39,251,224,139,124,8,208,176,253,8,96,234,246,9,208,51,166,10,96,252,233,19,96,91,33,20,96,198,250,26,96,110,142,27,224,248,190,28,208,124,119,29,96,255,204,30,80,153,96,31,96,177,130,32,208,181,73,33,224,158,94,34,80,93,32,35,96,48,90,36,80,63,0,37,224,237,11,38,208,230,214,38,224,207,235,39,80,3,192,40,96,236,212,41,208,31,169,42,224,101,187,43,208,1,137,44,224,71,155,45,80,169,95,46,224,41,123,47,208,197,72,48,96,70,100,49,96,194,65,50,96,40,68,51,96,164,33,52,96,10,36,53,96,134,1,54,96,97,22,55,80,68,6,56,224,125,255,56,208,96,239,57,224,95,223,58,208,66,207,59,224,65,191,60,208,36,175,61,224,35,159,62,208,6,143,63,224,5,127,64,224,129,92,65,224,231,94,66,240,183,65,67,96,166,45,68,80,253,18,69,224,217,14,70,112,111,232,70,224,24,236,71,80,6,187,72,224,250,203,73,96,60,160,74,224,220,171,75,208,189,97,76,156,249,148,77,80,194,53,78,224,11,92,78,80,220,132,78,96,219,116,79,224,145,91,80,96,189,84,81,80,160,68,82,96,159,52,83,80,108,73,84,224,210,21,85,96,92,41,86,240,194,245,86,96,202,19,88,240,164,213,88,96,172,243,89,240,134,181,90,96,142,211,91,224,67,157,92,80,98,179,93,96,119,126,94,96,82,147,95,96,89,94,96,96,29,123,97,224,140,63,98,240,94,92,99,0,94,76,100,240,64,60,101,128,5,35,102,240,34,28,103,0,173,249,103,240,4,252,104,0,26,199,105,240,230,219,106,0,252,166,107,112,3,197,108,0,222,134,109,112,229,164,110,0,192,102,111,112,199,132,112,128,220,79,113,112,169,100,114,128,190,47,115,112,139,68,116,128,160,15,117,240,167,45,118,128,130,239,118,240,137,13,120,128,100,207,120,240,107,237,121,128,70,175,122,240,77,205,123,0,99,152,124,112,245,163,125,0,69,120,126,240,156,122,127,64,1,0,0,0,0,0,0,0,39,88,128,0,0,0,0,240,9,72,129,0,0,0,0,0,9,56,130,0,0,0,0,112,177,30,131,0,0,0,0,0,235,23,132,0,0,0,0,112,30,236,132,0,0,0,0,0,198,44,133,0,0,0,0,112,242,53,133,0,0,0,0,128,7,1,134,0,0,0,0,240,197,194,134,0,0,0,0,0,51,250,134,0,0,0,0,112,212,21,135,0,0,0,0,128,233,224,135,0,0,0,0,112,109,153,136,0,0,0,0,128,218,208,136,0,0,0,0,112,182,245,136,0,0,0,0,128,203,192,137,0,0,0,0,112,218,102,138,0,0,0,0,0,130,167,138,0,0,0,0,112,152,213,138,0,0,0,0,128,173,160,139,0,0,0,0,240,129,61,140,0,0,0,0,0,239,116,140,0,0,0,0,240,180,190,140,0,0,0,0,128,143,128,141,0,0,0,0,112,41,20,142,0,0,0,0,128,150,75,142,0,0,0,0,240,150,158,142,0,0,0,0,128,113,96,143,0,0,0,0,112,150,225,143,0,0,0,0,0,62,34,144,0,0,0,0,240,120,126,144,0,0,0,0,0,142,73,145,0,0,0,0,240,61,184,145,0,0,0,0,0,171,239,145,0,0,0,0,240,90,94,146,0,0,0,0,0,112,41,147,0,0,0,0,240,170,133,147,0,0,0,0,128,82,198,147,0,0,0,0,240,60,62,148,0,0,0,0,0,82,9,149,0,0,0,0,112,82,92,149,0,0,0,0,128,191,147,149,0,0,0,0,112,89,39,150,0,0,0,0,0,52,233,150,0,0,0,0,240,249,50,151,0,0,0,0,0,103,106,151,0,0,0,0,112,59,7,152,0,0,0,0,0,22,201,152,0,0,0,0,240,102,0,153,0,0,0,0,128,14,65,153,0,0,0,0,112,29,231,153,0,0,0,0,128,50,178,154,0,0,0,0,112,14,215,154,0,0,0,0,128,123,14,155,0,0,0,0,112,255,198,155,0,0,0,0,128,20,146,156,0,0,0,0,112,123,164,156,0,0,0,0,0,35,229,156,0,0,0,0,112,225,166,157,0,0,0,0,128,246,113,158,0,0,0,0,240,34,123,158,0,0,0,0,128,202,187,158,0,0,0,0,112,195,134,159,0,0,0,0,128,55,137,160,0,0,0,0,240,223,111,161,0,0,0,0,0,223,95,162,0,0,0,0,240,193,79,163,0,0,0,0,0,76,45,164,0,0,0,0,240,163,47,165,0,0,0,0,128,243,3,166,0,0,0,0,240,133,15,167,0,0,0,0,0,155,218,167,0,0,0,0,240,103,239,168,0,0,0,0,0,125,186,169,0,0,0,0,112,132,216,170,0,0,0,0,0,95,154,171,0,0,0,0,112,102,184,172,0,0,0,0,0,65,122,173,0,0,0,0,112,72,152,174,0,0,0,0,0,35,90,175,0,0,0,0,112,42,120,176,0,0,0,0,128,63,67,177,0,0,0,0,112,12,88,178,0,0,0,0,128,33,35,179,0,0,0,0,112,238,55,180,0,0,0,0,128,3,3,181,0,0,0,0,240,10,33,182,0,0,0,0,128,229,226,182,0,0,0,0,240,236,0,184,0,0,0,0,128,199,194,184,0,0,0,0,112,148,215,185,0,0,0,0,0,228,171,186,0,0,0,0,240,59,174,187,0,0,0,0,0,198,139,188,0,0,0,0,112,227,132,189,0,0,0,0,0,168,107,190,0,0,0,0,112,80,82,191,0,0,0,0,0,138,75,192,0,0,0,0,240,247,40,193,0,0,0,0,0,101,96,193,0,0,0,0,112,145,105,193,0,0,0,0,0,108,43,194,0,0,0,0,112,159,255,194,0,0,0,0,128,12,55,195,0,0,0,0,112,115,73,195,0,0,0,0,0,78,11,196,0,0,0,0,112,12,205,196,0,0,0,0,0,180,13,197,0,0,0,0,112,85,41,197,0,0,0,0,128,106,244,197,0,0,0,0,240,179,163,198,0,0,0,0,0,33,219,198,0,0,0,0,112,55,9,199,0,0,0,0,128,76,212,199,0,0,0,0,240,32,113,200,0,0,0,0,128,200,177,200,0,0,0,0,112,25,233,200,0,0,0,0,128,46,180,201,0,0,0,0,112,200,71,202,0,0,0,0,0,112,136,202,0,0,0,0,240,53,210,202,0,0,0,0,128,16,148,203,0,0,0,0,240,111,30,204,0,0,0,0,0,221,85,204,0,0,0,0,240,23,178,204,0,0,0,0,128,242,115,205,0,0,0,0,240,220,235,205,0,0,0,0,128,132,44,206,0,0,0,0,240,249,145,206,0,0,0,0,0,15,93,207,0,0,0,0,112,132,194,207,0,0,0,0,128,241,249,207,0,0,0,0,240,219,113,208,0,0,0,0,0,241,60,209,0,0,0,0,240,43,153,209,0,0,0,0,0,153,208,209,0,0,0,0,240,189,81,210,0,0,0,0,0,211,28,211,0,0,0,0,240,152,102,211,0,0,0,0,128,64,167,211,0,0,0,0,240,159,49,212,0,0,0,0,0,181,252,212,0,0,0,0,112,64,61,213,0,0,0,0,128,173,116,213,0,0,0,0,112,188,26,214,0,0,0,0,0,151,220,214,0,0,0,0,112,173,10,215,0,0,0,0,0,85,75,215,0,0,0,0,112,158,250,215,0,0,0,0,0,121,188,216,0,0,0,0,240,84,225,216,0,0,0,0,128,252,33,217,0,0,0,0,112,128,218,217,0,0,0,0,128,149,165,218,0,0,0,0,112,252,183,218,0,0,0,0,128,105,239,218,0,0,0,0,112,98,186,219,0,0,0,0,128,119,133,220,0,0,0,0,112,68,154,221,2,0,0,0,255,255,255,255,25,74,189,125,170,170,170,170,170,170,170,170,55,1,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,231,32,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,8,0,101,0,91,0,110,0,48,0,120,0,80,0,66,0,54,0,170,170,32,28,0,112,74,4,0,96,40,8,0,112,242,89,0,224,137,90,0,224,202,91,0,224,207,91,0,16,30,92,0,224,3,0,0,0,17,1,0,0,56,1,0,0,122,2,0,0,8,0,0,0,10,43,163,145,128,230,53,205,112,206,89,209,240,62,59,210,16,187,50,213,144,242,182,228,0,152,47,237,0,199,61,10,8,0,0,0,1,2,3,1,2,1,2,1,8,0,0,0,246,99,0,0,0,0,0,0,112,98,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,50,92,0,224,54,92,0,224,63,92,0,16,66,92,0,224,2,0,0,0,18,1,0,0,2,2,0,0,69,0,0,0,144,99,105,133,48,49,77,202,48,147,219,202,120,113,75,203,144,222,160,210,128,215,107,211,184,88,147,212,56,176,66,213,184,58,115,214,184,65,62,215,184,50,46,216,184,57,249,216,184,20,14,218,184,27,217,218,184,246,237,219,184,253,184,220,184,216,205,221,56,26,162,222,56,245,182,223,56,252,129,224,40,201,150,225,56,105,79,226,40,171,118,227,56,75,47,228,168,199,95,229,56,45,15,230,168,169,63,231,184,73,248,231,168,139,31,233,184,43,216,233,168,109,255,234,184,13,184,235,168,79,223,236,184,239,151,237,40,108,200,238,184,209,119,239,40,78,168,240,184,179,87,241,40,48,136,242,56,208,64,243,40,18,104,244,56,178,32,245,40,244,71,246,56,126,37,247,40,97,21,248,56,96,5,249,40,67,245,249,56,66,229,250,168,95,222,251,184,94,206,252,168,65,190,253,184,64,174,254,168,35,158,255,184,34,142,0,168,5,126,1,184,4,110,2,168,231,93,3,184,230,77,4,40,4,71,5,56,3,55,6,40,230,38,7,56,61,131,7,40,200,6,9,56,199,246,9,40,170,230,10,56,169,214,11,40,140,198,12,56,57,155,17,168,108,111,18,69,0,0,0,1,3,2,4,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,170,170,170,10,0,0,0,10,107,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,8,7,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,82,92,0,224,85,92,0,224,155,92,0,16,174,92,0,224,50,0,0,0,148,252,211,134,160,234,11,15,144,214,233,24,0,11,219,25,144,91,204,26,128,62,188,27,144,61,172,28,128,32,156,29,144,31,140,30,128,2,124,31,144,1,108,32,128,228,91,33,144,227,75,34,128,198,59,35,144,197,43,36,128,168,27,37,144,167,11,38,0,197,4,39,16,196,244,39,0,167,228,40,16,166,212,41,0,137,196,42,16,136,180,43,0,107,164,44,16,106,148,45,0,77,132,46,16,76,116,47,0,47,100,48,144,104,93,49,128,75,77,50,144,74,61,51,128,45,45,52,144,44,29,53,128,15,13,54,176,193,233,58,160,186,180,59,176,185,164,60,160,156,148,61,176,155,132,62,160,126,116,63,176,125,100,64,160,96,84,65,176,95,68,66,160,66,52,67,176,65,36,68,32,95,29,69,176,168,21,85,128,111,5,86,176,138,245,86,128,81,229,87,50,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,236,85,0,0,0,0,0,0,96,84,0,0,0,0,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,192,92,0,224,243,92,0,16,1,93,0,224,65,0,0,0,191,15,18,162,16,211,163,181,128,97,39,21,240,149,24,22,0,149,8,23,112,201,249,23,128,200,233,24,240,252,218,25,128,77,204,26,160,90,188,27,160,75,172,28,160,60,156,29,160,45,140,30,160,30,124,31,160,15,108,32,160,0,92,33,160,241,75,34,160,226,59,35,160,211,43,36,160,196,27,37,160,181,11,38,32,225,4,39,32,210,244,39,48,209,228,40,48,121,120,41,32,180,212,41,32,165,196,42,32,150,180,43,32,135,164,44,32,120,148,45,32,105,132,46,32,90,116,47,32,75,100,48,160,118,93,49,160,81,114,50,160,88,61,51,160,51,82,52,160,58,29,53,160,21,50,54,160,28,253,54,32,50,27,56,160,254,220,56,32,20,251,57,160,224,188,58,32,246,218,59,32,253,165,60,32,216,186,61,32,223,133,62,32,186,154,63,32,193,101,64,160,214,131,65,32,163,69,66,160,184,99,67,32,133,37,68,160,154,67,69,32,103,5,70,160,124,35,71,160,131,238,71,160,94,3,73,160,101,206,73,160,64,227,74,160,71,174,75,32,93,204,76,160,41,142,77,16,215,75,84,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,193,97,0,0,0,0,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,15,93,0,224,83,93,0,16,101,93,0,224,7,0,0,0,224,133,120,169,96,222,22,186,136,131,191,203,112,238,86,210,8,198,60,215,0,38,255,218,136,190,181,244,7,0,0,0,2,3,5,3,4,3,1,170,12,0,0,0,32,100,0,0,0,0,0,0,112,98,0,0,0,0,0,0,32,103,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,119,93,0,224,127,93,0,16,130,93,0,224,3,0,0,0,152,193,22,186,240,185,88,208,104,162,181,244,170,170,170,170,170,170,170,170,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,232,131,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,3,0,48,0,66,0,54,0,148,93,0,224,155,93,0,16,157,93,0,224,3,0,0,0,24,1,0,0,67,1,0,0,18,2,0,0,100,0,0,0,136,69,48,158,0,207,89,200,0,166,250,200,128,156,56,201,128,235,229,204,0,254,172,205,0,31,199,206,0,131,143,207,0,164,169,208,0,125,132,209,128,215,138,210,128,176,101,211,0,11,108,212,128,48,90,215,0,88,223,215,128,195,47,216,0,99,30,217,0,247,16,218,0,208,235,218,0,52,180,219,0,61,185,220,0,141,224,221,128,206,180,222,128,191,164,223,0,118,139,224,0,125,86,225,128,102,190,226,0,95,54,227,128,72,158,228,0,65,22,229,0,240,116,230,128,210,17,231,128,173,38,232,0,122,232,232,224,139,124,8,208,176,253,8,96,234,246,9,208,51,166,10,96,252,233,19,96,91,33,20,96,198,250,26,96,110,142,27,224,248,190,28,208,124,119,29,96,255,204,30,80,153,96,31,96,177,130,32,208,181,73,33,224,158,94,34,80,93,32,35,96,48,90,36,80,63,0,37,224,237,11,38,208,230,214,38,224,207,235,39,80,3,192,40,96,236,212,41,208,31,169,42,224,101,187,43,208,1,137,44,224,71,155,45,80,169,95,46,224,41,123,47,208,197,72,48,224,150,72,49,80,110,60,50,96,179,49,51,208,254,26,52,96,149,17,53,80,166,241,53,128,8,4,55,112,1,207,55,128,95,246,56,224,249,220,57,112,237,208,58,96,91,174,59,112,160,163,60,96,178,160,61,112,130,131,62,224,159,124,63,112,54,115,64,96,164,80,65,0,143,76,66,112,79,72,67,0,113,44,68,240,246,30,69,0,83,12,70,240,99,236,70,0,53,236,71,112,245,231,72,0,23,204,73,240,156,190,74,0,249,171,75,240,9,140,76,128,21,149,77,112,155,135,78,128,247,116,79,240,66,94,80,128,217,84,81,112,73,108,82,2,0,0,0,255,255,255,255,250,194,182,86,170,170,170,170,170,170,170,170,101,0,0,0,4,1,2,1,2,1,2,1,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,10,0,0,0,6,33,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,32,28,0,0,32,28,0,0,248,32,0,0,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,32,28,0,112,116,3,0,96,222,7,0,112,169,93,0,224,173,93,0,224,18,94,0,224,23,94,0,16,50,94,0,224,1,0,0,0,64,215,249,208,2,0,0,0,255,255,255,255,160,154,134,105,2,0,0,0,1,2,170,170,6,0,0,0,224,64,0,0,0,0,0,0,64,56,0,0,0,0,0,0,72,63,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,74,94,0,224,76,94,0,224,79,94,0,16,81,94,0,224,64,0,0,0,196,150,82,167,208,154,163,181,64,41,39,21,176,93,24,22,192,92,8,23,48,145,249,23,64,144,233,24,176,196,218,25,64,21,204,26,96,34,188,27,96,19,172,28,96,4,156,29,96,245,139,30,96,230,123,31,96,215,107,32,96,200,91,33,96,185,75,34,96,170,59,35,96,155,43,36,96,140,27,37,96,125,11,38,224,168,4,39,224,153,244,39,240,152,228,40,240,64,120,41,224,123,212,41,224,108,196,42,224,93,180,43,224,78,164,44,224,63,148,45,224,48,132,46,224,33,116,47,224,18,100,48,96,62,93,49,96,25,114,50,96,32,61,51,96,251,81,52,96,2,29,53,96,221,49,54,96,228,252,54,224,249,26,56,96,198,220,56,224,219,250,57,96,168,188,58,224,189,218,59,224,196,165,60,224,159,186,61,224,166,133,62,224,129,154,63,224,136,101,64,96,158,131,65,224,106,69,66,96,128,99,67,224,76,37,68,96,98,67,69,224,46,5,70,96,68,35,71,96,75,238,71,96,38,3,73,96,45,206,73,96,8,227,74,96,15,174,75,240,50,204,76,112,255,141,77,170,170,170,170,170,170,170,170,170,170,170,170,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,10,0,0,0,188,148,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,3,0,48,0,66,0,54,0,95,94,0,224,163,94,0,16,180,94,0,224,2,0,0,0,27,1,0,0,36,2,0,0,10,0,0,0,164,252,126,137,168,50,149,204,152,18,116,210,168,224,168,221,176,69,175,60,160,40,159,61,48,160,65,72,160,71,11,73,48,221,228,73,32,123,236,74,170,170,170,170,10,0,0,0,3,4,3,1,2,1,2,1,2,1,170,170,10,0,0,0,220,62,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,88,77,0,0,0,0,0,0,88,77,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,196,94,0,224,199,94,0,224,211,94,0,16,215,94,0,224,2,0,0,0,29,1,0,0,30,1,0,0,2,0,0,0,132,125,242,161,168,48,24,30,2,0,0,0,1,2,170,170,6,0,0,0,252,79,0,0,0,0,0,0,88,77,0,0,0,0,0,0,220,80,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,233,94,0,224,236,94,0,224,239,94,0,16,241,94,0,224,67,0,0,0,235,228,219,161,0,197,163,181,112,83,39,21,224,135,24,22,240,134,8,23,96,187,249,23,112,186,233,24,224,238,218,25,112,63,204,26,144,76,188,27,144,61,172,28,144,46,156,29,144,31,140,30,144,16,124,31,144,1,108,32,144,242,91,33,144,227,75,34,144,212,59,35,144,197,43,36,144,182,27,37,144,167,11,38,16,211,4,39,16,196,244,39,32,195,228,40,32,107,120,41,16,166,212,41,16,151,196,42,16,136,180,43,16,121,164,44,16,106,148,45,16,91,132,46,16,76,116,47,16,61,100,48,144,104,93,49,144,67,114,50,144,74,61,51,144,37,82,52,144,44,29,53,144,7,50,54,144,14,253,54,16,36,27,56,144,240,220,56,16,6,251,57,144,210,188,58,16,232,218,59,16,239,165,60,16,202,186,61,16,209,133,62,16,172,154,63,112,228,242,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,0,105,37,68,128,126,67,69,0,75,5,70,128,96,35,71,128,103,238,71,128,66,3,73,128,73,206,73,128,36,227,74,128,43,174,75,0,65,204,76,128,13,142,77,80,2,110,78,0,201,75,84,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,3,170,16,0,0,0,21,127,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,3,0,48,0,66,0,54,0,255,94,0,224,67,95,0,16,85,95,0,224,3,0,0,0,1,1,0,0,32,1,0,0,4,2,0,0,5,0,0,0,186,188,157,135,40,140,219,202,24,113,5,204,168,50,149,204,152,18,116,210,4,0,0,0,255,255,255,255,40,24,186,38,255,255,255,255,48,235,231,67,170,170,170,170,7,0,0,0,4,1,2,3,2,3,2,170,10,0,0,0,216,82,0,0,0,0,0,0,70,75,0,0,0,0,0,0,88,77,0,0,0,0,0,0,88,77,0,0,16,14,0,0,208,82,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,107,95,0,224,111,95,0,224,117,95,0,224,123,95,0,16,126,95,0,224,65,0,0,0,242,13,249,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,48,89,100,48,176,132,93,49,176,95,114,50,176,102,61,51,176,65,82,52,176,72,29,53,176,35,50,54,176,42,253,54,48,64,27,56,176,12,221,56,48,34,251,57,176,238,188,58,48,4,219,59,48,11,166,60,48,230,186,61,48,237,133,62,48,200,154,63,48,207,101,64,176,228,131,65,48,177,69,66,176,198,99,67,48,147,37,68,176,168,67,69,48,117,5,70,176,138,35,71,176,145,238,71,176,108,3,73,176,115,206,73,176,78,227,74,176,85,174,75,48,107,204,76,176,55,142,77,32,229,75,84,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,14,87,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,128,112,0,0,0,0,0,0,3,0,48,0,66,0,54,0,145,95,0,224,211,95,0,16,229,95,0,224,2,0,0,0,0,1,0,0,35,1,0,0,18,0,0,0,144,6,138,173,136,71,103,186,128,39,123,191,80,27,243,191,128,172,93,193,80,160,213,193,0,224,62,195,208,211,182,195,128,19,32,197,80,7,152,197,0,71,1,199,208,58,121,199,0,204,227,200,208,191,91,201,128,255,196,202,80,243,60,203,0,88,145,203,240,109,72,210,170,170,170,170,170,170,170,170,18,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,2,170,170,10,0,0,0,112,103,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,176,4,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,247,95,0,224,250,95,0,224,15,96,0,16,21,96,0,224,2,0,0,0,37,1,0,0,38,1,0,0,71,0,0,0,142,91,105,133,240,117,71,203,224,202,242,203,80,186,251,204,96,254,211,205,208,165,157,206,112,122,97,210,112,248,120,211,240,173,66,212,112,171,75,213,240,76,116,214,240,83,63,215,240,68,47,216,112,250,248,216,112,213,13,218,112,220,216,218,112,183,237,219,112,190,184,220,240,234,206,221,240,218,161,222,240,181,182,223,240,188,129,224,240,151,150,225,240,41,79,226,240,121,118,227,240,11,47,228,112,150,95,229,240,237,14,230,168,169,63,231,184,73,248,231,168,139,31,233,184,43,216,233,168,109,255,234,184,13,184,235,168,79,223,236,184,239,151,237,40,108,200,238,184,209,119,239,40,78,168,240,184,179,87,241,40,48,136,242,56,208,64,243,40,18,104,244,56,178,32,245,40,244,71,246,56,126,37,247,24,83,21,248,56,96,5,249,24,53,245,249,56,66,229,250,168,95,222,251,184,94,206,252,168,65,190,253,184,64,174,254,168,35,158,255,184,34,142,0,168,5,126,1,184,4,110,2,168,231,93,3,184,230,77,4,40,4,71,5,56,3,55,6,40,230,38,7,56,61,131,7,40,200,6,9,56,199,246,9,40,170,230,10,56,169,214,11,40,140,198,12,56,57,155,17,168,108,111,18,170,170,170,170,71,0,0,0,1,3,4,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,10,0,0,0,114,106,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,39,96,0,224,42,96,0,224,115,96,0,16,134,96,0,224,66,0,0,0,160,54,25,170,224,168,163,181,80,55,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,112,9,82,52,112,16,29,53,112,235,49,54,112,242,252,54,240,7,27,56,112,212,220,56,240,233,250,57,112,182,188,58,240,203,218,59,240,210,165,60,240,173,186,61,240,180,133,62,240,143,154,63,240,150,101,64,112,172,131,65,240,120,69,66,112,142,99,67,240,90,37,68,112,112,67,69,240,60,5,70,112,82,35,71,112,89,238,71,112,52,3,73,112,59,206,73,112,22,227,74,112,29,174,75,240,50,204,76,112,255,141,77,224,172,75,84,0,156,27,87,66,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,1,3,170,170,12,0,0,0,96,141,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,152,96,0,224,219,96,0,16,237,96,0,224,2,0,0,0,40,1,0,0,72,1,0,0,3,0,0,0,144,213,22,186,128,29,136,203,112,238,86,210,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,240,111,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,255,96,0,224,2,97,0,224,7,97,0,16,9,97,0,224,8,0,0,0,128,244,156,193,112,48,22,194,0,231,242,203,112,37,169,208,0,57,108,226,240,162,213,226,128,70,117,15,240,122,102,16,4,0,0,0,255,255,255,255,16,220,225,20,255,255,255,255,144,63,31,123,170,170,170,170,170,170,170,170,10,0,0,0,3,1,2,1,4,1,2,1,2,1,170,170,10,0,0,0,240,31,255,255,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,112,113,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,23,97,0,224,32,97,0,224,39,97,0,16,43,97,0,224,2,0,0,0,43,1,0,0,220,1,0,0,51,0,0,0,184,30,119,165,224,175,237,9,208,146,221,10,224,100,250,11,80,198,190,12,96,57,164,13,208,225,138,14,96,27,132,15,208,79,117,16,96,253,99,17,80,224,83,18,224,25,77,19,80,194,51,20,96,193,35,21,80,164,19,22,96,163,3,23,80,134,243,23,96,133,227,24,80,104,211,25,96,103,195,26,208,132,188,27,224,131,172,28,208,102,156,29,224,101,140,30,208,72,124,31,224,71,108,32,208,42,92,33,224,41,76,34,208,12,60,35,224,11,44,36,208,238,27,37,224,237,11,38,80,11,5,39,96,10,245,39,80,237,228,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,145,77,50,224,144,61,51,208,115,45,52,224,114,29,53,16,120,50,54,16,127,253,54,144,148,27,56,170,170,170,170,170,170,170,170,170,170,170,170,51,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,72,31,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,32,28,0,112,170,3,0,96,208,7,0,112,61,97,0,224,64,97,0,224,119,97,0,16,133,97,0,224,64,0,0,0,192,32,24,170,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,48,89,100,48,176,132,93,49,176,95,114,50,176,102,61,51,176,65,82,52,176,72,29,53,176,35,50,54,176,42,253,54,48,64,27,56,176,12,221,56,48,34,251,57,176,238,188,58,48,4,219,59,48,11,166,60,48,230,186,61,48,237,133,62,48,200,154,63,48,207,101,64,176,228,131,65,48,177,69,66,176,198,99,67,48,147,37,68,176,168,67,69,48,117,5,70,176,138,35,71,176,145,238,71,176,108,3,73,176,115,206,73,176,78,227,74,176,85,174,75,64,121,204,76,192,69,142,77,170,170,170,170,170,170,170,170,170,170,170,170,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,10,0,0,0,192,81,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,151,97,0,224,219,97,0,16,236,97,0,224,67,0,0,0,36,25,219,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,0,78,254,43,64,163,164,44,64,148,148,45,64,133,132,46,64,118,116,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,192,204,147,87,170,170,170,170,170,170,170,170,170,170,170,170,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,170,10,0,0,0,188,77,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,252,97,0,224,67,98,0,16,85,98,0,224,65,0,0,0,182,64,179,161,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,237,228,40,80,149,120,41,64,208,212,41,64,193,196,42,64,178,180,43,64,163,164,44,64,148,148,45,64,133,132,46,64,118,116,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,202,68,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,3,0,48,0,66,0,54,0,101,98,0,224,167,98,0,16,185,98,0,224,51,0,0,0,220,147,25,170,80,11,164,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,96,251,228,40,96,163,120,41,80,222,212,41,96,221,196,42,96,206,180,43,96,191,164,44,96,176,148,45,96,161,132,46,96,146,116,47,96,131,100,48,224,174,93,49,224,137,114,50,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,51,0,0,0,1,4,5,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,3,2,4,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,170,14,0,0,0,36,48,0,0,0,0,0,0,48,42,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,203,98,0,224,255,98,0,16,13,99,0,224,7,0,0,0,0,223,22,186,8,164,121,203,112,238,86,210,8,198,60,215,0,38,255,218,136,190,181,244,128,116,218,33,170,170,170,170,170,170,170,170,7,0,0,0,2,4,2,3,2,3,1,170,10,0,0,0,128,102,0,0,0,0,0,0,112,98,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,33,99,0,224,43,99,0,16,46,99,0,224,4,0,0,0,156,241,215,139,248,22,230,146,112,2,206,85,112,117,236,90,4,0,0,0,1,2,1,2,6,0,0,0,228,117,0,0,0,0,0,0,136,119,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,62,99,0,224,67,99,0,16,69,99,0,224,2,0,0,0,250,0,0,0,51,1,0,0,2,0,0,0,48,157,242,161,192,146,138,4,2,0,0,0,2,1,170,170,6,0,0,0,80,48,0,0,0,0,0,0,48,42,0,0,0,0,0,0,64,56,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,81,99,0,224,84,99,0,224,87,99,0,16,89,99,0,224,52,0,0,0,92,136,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,32,198,224,101,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,1,3,4,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,5,3,12,0,0,0,164,59,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,103,99,0,224,159,99,0,16,173,99,0,224,52,0,0,0,160,134,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,80,149,120,41,64,208,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,160,216,27,92,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,1,3,4,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,3,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,5,3,12,0,0,0,96,61,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,191,99,0,224,247,99,0,16,5,100,0,224,4,0,0,0,236,0,0,0,240,0,0,0,36,1,0,0,55,1,0,0,1,0,0,0,180,54,27,213,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,204,43,0,0,0,0,0,0,48,42,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,23,100,0,224,28,100,0,224,31,100,0,16,33,100,0,224,66,0,0,0,184,205,240,134,240,178,48,210,80,55,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,0,248,250,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,0,105,37,68,128,126,67,69,0,75,5,70,128,96,35,71,128,103,238,71,128,66,3,73,128,73,206,73,128,36,227,74,128,43,174,75,0,65,204,76,128,13,142,77,240,186,75,84,0,178,246,86,170,170,170,170,170,170,170,170,170,170,170,170,66,0,0,0,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,2,4,170,170,12,0,0,0,200,133,0,0,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,3,0,48,0,66,0,54,0,45,100,0,224,115,100,0,16,133,100,0,224,24,0,0,0,55,133,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,80,237,228,40,170,170,170,170,170,170,170,170,170,170,170,170,24,0,0,0,1,2,3,4,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,0,0,0,201,62,0,0,0,0,0,0,64,56,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,151,100,0,224,179,100,0,16,186,100,0,224,2,0,0,0,59,1,0,0,89,2,0,0,28,0,0,0,120,240,215,139,248,22,230,146,112,143,101,215,96,157,238,215,112,250,248,216,224,45,205,217,240,138,215,218,224,15,173,219,240,226,230,220,224,241,140,221,240,41,79,226,248,183,107,228,104,24,19,229,120,3,98,230,232,76,17,231,120,112,47,232,104,244,231,232,120,82,15,234,104,214,199,234,120,52,239,235,104,184,167,236,120,22,207,237,104,154,135,238,120,113,53,240,144,96,163,32,144,103,110,33,144,66,131,34,144,73,78,35,170,170,170,170,28,0,0,0,1,3,4,3,4,3,4,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,10,0,0,0,8,119,0,0,0,0,0,0,136,119,0,0,0,0,0,0,136,119,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,202,100,0,224,205,100,0,224,235,100,0,16,243,100,0,224,6,0,0,0,4,1,0,0,5,1,0,0,15,1,0,0,60,1,0,0,129,1,0,0,38,2,0,0,28,0,0,0,128,162,151,160,240,4,121,161,128,94,89,200,112,249,9,201,0,189,211,201,240,138,5,203,0,64,124,203,240,62,59,210,128,123,139,211,240,173,66,212,0,34,69,213,240,191,76,214,0,191,60,215,112,102,6,216,128,242,29,217,240,124,65,217,32,82,186,30,144,155,105,31,160,132,126,32,144,125,73,33,32,161,103,34,144,95,41,35,32,131,71,36,16,124,18,37,32,101,39,38,16,94,242,38,32,71,7,40,16,64,210,40,2,0,0,0,255,255,255,255,41,67,54,126,170,170,170,170,170,170,170,170,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,215,113,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,5,101,0,224,12,101,0,224,41,101,0,224,47,101,0,16,56,101,0,224,3,0,0,0,34,1,0,0,61,1,0,0,91,2,0,0,7,0,0,0,163,133,131,134,144,78,103,186,96,228,10,192,96,229,179,202,8,95,145,203,240,109,72,210,0,238,145,22,7,0,0,0,1,2,3,4,6,4,5,170,14,0,0,0,93,97,0,0,0,0,0,0,112,98,0,0,0,0,0,0,112,98,0,0,176,4,0,0,32,103,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,71,101,0,224,75,101,0,224,83,101,0,16,86,101,0,224,65,0,0,0,228,51,25,170,224,168,163,181,80,55,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,112,9,82,52,112,16,29,53,112,235,49,54,112,242,252,54,240,7,27,56,112,212,220,56,240,233,250,57,112,182,188,58,240,203,218,59,240,210,165,60,240,173,186,61,240,180,133,62,240,143,154,63,240,150,101,64,112,172,131,65,240,120,69,66,112,142,99,67,240,90,37,68,112,112,67,69,240,60,5,70,112,82,35,71,112,89,238,71,112,52,3,73,112,59,206,73,112,22,227,74,112,29,174,75,240,50,204,76,112,255,141,77,224,172,75,84,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,28,144,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,108,101,0,224,175,101,0,16,193,101,0,224,2,0,0,0,63,1,0,0,88,2,0,0,40,0,0,0,128,73,85,195,128,89,84,210,128,123,139,211,240,173,66,212,0,34,69,213,240,191,76,214,0,191,60,215,112,102,6,216,128,242,29,217,240,153,231,217,0,38,255,218,112,205,200,219,128,89,224,220,240,0,170,221,0,115,114,222,112,100,181,223,0,133,124,224,240,151,150,225,128,184,93,226,112,203,119,227,0,236,62,228,112,32,48,229,0,113,33,230,112,165,18,231,128,164,2,232,240,216,243,232,0,216,227,233,112,12,213,234,128,11,197,235,240,63,182,236,0,252,247,237,240,196,152,238,128,47,217,239,112,248,121,240,0,86,252,7,112,138,237,8,128,137,221,9,240,189,206,10,128,161,219,17,112,221,84,18,2,0,0,0,255,255,255,255,24,240,206,116,170,170,170,170,41,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,232,113,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,211,101,0,224,214,101,0,224,255,101,0,224,3,102,0,16,15,102,0,224,24,0,0,0,9,131,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,237,228,40,170,170,170,170,170,170,170,170,24,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,10,0,0,0,247,64,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,32,102,0,224,59,102,0,16,66,102,0,224,50,0,0,0,1,154,25,170,80,12,218,231,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,112,9,229,40,80,222,212,41,64,193,196,42,80,192,180,43,64,163,164,44,80,162,148,45,64,133,132,46,64,118,116,47,48,89,100,48,192,146,93,49,176,65,82,52,192,86,29,53,176,35,50,54,192,56,253,54,48,64,27,56,192,26,221,56,48,34,251,57,192,252,188,58,48,4,219,59,64,25,166,60,48,230,186,61,64,251,133,62,48,200,154,63,64,221,101,64,176,199,221,64,240,28,132,65,112,233,69,66,170,170,170,170,170,170,170,170,50,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,2,1,3,170,170,10,0,0,0,255,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,82,102,0,224,135,102,0,16,149,102,0,224,2,0,0,0,66,1,0,0,17,2,0,0,70,0,0,0,72,204,0,191,56,68,148,13,184,19,173,14,64,115,121,15,192,202,40,16,64,58,237,16,72,188,173,17,184,74,69,18,200,236,55,19,184,21,45,20,200,118,32,40,184,157,219,40,200,156,203,41,184,34,190,42,72,208,172,43,56,86,159,44,200,3,142,45,184,137,128,46,72,55,111,47,56,189,97,48,200,106,80,49,184,240,66,50,200,239,50,51,184,117,37,52,72,35,20,53,56,169,6,54,200,86,245,54,184,220,231,55,72,138,214,56,56,16,201,57,72,15,185,58,56,149,171,59,200,66,154,60,184,200,140,61,72,118,123,62,56,252,109,63,200,169,92,64,184,47,79,65,200,46,63,66,184,180,49,67,72,201,226,71,56,79,213,72,72,78,197,73,56,212,183,74,200,129,166,75,184,7,153,76,72,181,135,77,56,59,122,78,200,232,104,79,184,110,91,80,200,109,75,81,184,243,61,82,72,161,44,83,56,39,31,84,200,212,13,85,184,90,0,86,72,8,239,86,56,142,225,87,72,141,209,88,56,19,196,89,200,192,178,90,184,70,165,91,72,244,147,92,56,122,134,93,200,39,117,94,184,173,103,95,200,172,87,96,184,50,74,97,72,224,56,98,56,102,43,99,70,0,0,0,1,2,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,10,0,0,0,56,48,0,0,0,0,0,0,56,49,0,0,0,0,0,0,56,49,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,165,102,0,224,168,102,0,224,239,102,0,16,2,103,0,224,2,0,0,0,68,1,0,0,69,1,0,0,2,0,0,0,116,21,230,213,168,77,97,33,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,12,84,0,0,0,0,0,0,88,77,0,0,0,0,0,0,96,84,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,20,103,0,224,23,103,0,224,27,103,0,16,29,103,0,224,3,0,0,0,70,1,0,0,19,2,0,0,21,2,0,0,8,0,0,0,112,2,62,215,240,89,237,215,112,250,248,216,240,59,205,217,240,0,7,219,240,29,173,219,240,226,230,220,240,255,140,221,2,0,0,0,255,255,255,255,112,164,194,101,9,0,0,0,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,3,131,0,0,0,0,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,43,103,0,224,47,103,0,224,56,103,0,224,59,103,0,16,63,103,0,224,67,0,0,0,217,78,229,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,48,89,100,48,176,132,93,49,176,95,114,50,176,102,61,51,176,65,82,52,176,72,29,53,176,35,50,54,176,42,253,54,48,64,27,56,176,12,221,56,48,34,251,57,176,238,188,58,48,4,219,59,48,11,166,60,176,233,206,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,192,248,73,87,170,170,170,170,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,170,10,0,0,0,167,79,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,78,103,0,224,147,103,0,16,165,103,0,224,2,0,0,0,73,1,0,0,74,1,0,0,50,0,0,0,76,238,211,134,144,220,11,15,128,200,233,24,240,252,218,25,128,77,204,26,112,48,188,27,128,47,172,28,112,18,156,29,128,17,140,30,112,244,123,31,128,243,107,32,112,214,91,33,128,213,75,34,112,184,59,35,128,183,43,36,112,154,27,37,128,153,11,38,240,182,4,39,0,182,244,39,240,152,228,40,0,152,212,41,240,122,196,42,0,122,180,43,240,92,164,44,0,92,148,45,240,62,132,46,0,62,116,47,240,32,100,48,128,90,93,49,112,61,77,50,128,60,61,51,112,31,45,52,128,30,29,53,112,1,13,54,160,179,233,58,144,172,180,59,160,171,164,60,144,142,148,61,160,141,132,62,144,112,116,63,160,111,100,64,144,82,84,65,160,81,68,66,144,52,52,67,160,51,36,68,16,81,29,69,160,154,21,85,112,97,5,86,160,124,245,86,112,67,229,87,50,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,52,100,0,0,0,0,0,0,112,98,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,181,103,0,224,184,103,0,224,235,103,0,16,249,103,0,224,2,0,0,0,28,1,0,0,75,1,0,0,1,0,0,0,100,186,254,176,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,28,82,0,0,0,0,0,0,96,84,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,9,104,0,224,12,104,0,224,15,104,0,16,17,104,0,224,66,0,0,0,186,221,219,161,0,197,163,181,112,83,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,112,9,82,52,112,16,29,53,112,235,49,54,112,242,252,54,240,7,27,56,112,212,220,56,240,233,250,57,112,182,188,58,240,203,218,59,240,210,165,60,240,173,186,61,240,180,133,62,240,143,154,63,240,150,101,64,112,172,131,65,240,120,69,66,112,142,99,67,240,90,37,68,112,112,67,69,240,60,5,70,112,82,35,71,112,89,238,71,112,52,3,73,112,59,206,73,112,22,227,74,112,29,174,75,240,50,204,76,112,255,141,77,64,244,109,78,240,186,75,84,170,170,170,170,170,170,170,170,170,170,170,170,66,0,0,0,1,2,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,3,170,170,16,0,0,0,70,134,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,29,104,0,224,99,104,0,16,117,104,0,224,65,0,0,0,93,71,89,167,240,182,163,181,96,69,39,21,208,121,24,22,224,120,8,23,80,173,249,23,96,172,233,24,208,224,218,25,96,49,204,26,128,62,188,27,128,47,172,28,128,32,156,29,128,17,140,30,128,2,124,31,128,243,107,32,128,228,91,33,128,213,75,34,128,198,59,35,128,183,43,36,128,168,27,37,128,153,11,38,0,197,4,39,0,182,244,39,16,181,228,40,16,93,120,41,0,152,212,41,0,137,196,42,0,122,180,43,0,107,164,44,0,92,148,45,0,77,132,46,0,62,116,47,0,47,100,48,128,90,93,49,128,53,114,50,128,60,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,0,248,250,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,0,105,37,68,128,126,67,69,0,75,5,70,128,96,35,71,128,103,238,71,128,66,3,73,128,73,206,73,128,36,227,74,128,43,174,75,0,65,204,76,128,13,142,77,240,186,75,84,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,163,123,0,0,0,0,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,3,0,48,0,66,0,54,0,139,104,0,224,207,104,0,16,225,104,0,224,65,0,0,0,94,234,219,161,0,197,163,181,112,83,39,21,224,135,24,22,240,134,8,23,96,187,249,23,112,186,233,24,224,238,218,25,112,63,204,26,144,76,188,27,144,61,172,28,144,46,156,29,144,31,140,30,144,16,124,31,144,1,108,32,144,242,91,33,144,227,75,34,144,212,59,35,144,197,43,36,144,182,27,37,144,167,11,38,16,211,4,39,16,196,244,39,32,195,228,40,32,107,120,41,16,166,212,41,16,151,196,42,16,136,180,43,16,121,164,44,16,106,148,45,16,91,132,46,16,76,116,47,16,61,100,48,144,104,93,49,144,67,114,50,144,74,61,51,144,37,82,52,144,44,29,53,144,7,50,54,144,14,253,54,16,36,27,56,144,240,220,56,16,6,251,57,144,210,188,58,16,232,218,59,16,239,165,60,16,202,186,61,16,209,133,62,16,172,154,63,16,179,101,64,144,200,131,65,16,149,69,66,144,170,99,67,16,119,37,68,144,140,67,69,16,89,5,70,144,110,35,71,144,117,238,71,144,80,3,73,144,87,206,73,144,50,227,74,144,57,174,75,16,79,204,76,144,27,142,77,0,201,75,84,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,162,121,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,3,0,48,0,66,0,54,0,243,104,0,224,55,105,0,16,73,105,0,224,3,0,0,0,54,1,0,0,80,1,0,0,9,2,0,0,3,0,0,0,81,115,242,161,24,252,242,203,240,103,154,209,3,0,0,0,1,2,1,170,6,0,0,0,47,90,0,0,0,0,0,0,104,91,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,91,105,0,224,95,105,0,224,99,105,0,16,101,105,0,224,66,0,0,0,39,9,95,155,255,177,18,161,64,253,163,181,176,139,39,21,32,192,24,22,48,191,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,80,205,69,66,208,226,99,67,80,175,37,68,208,196,67,69,80,145,5,70,208,166,35,71,208,173,238,71,208,136,3,73,208,143,206,73,208,106,227,74,208,113,174,75,80,135,204,76,208,83,142,77,64,1,76,84,170,170,170,170,66,0,0,0,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,6,4,170,170,14,0,0,0,217,56,0,0,0,0,0,0,193,52,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,115,105,0,224,183,105,0,16,201,105,0,224,2,0,0,0,82,1,0,0,31,2,0,0,62,0,0,0,72,154,25,170,80,12,218,231,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,112,9,229,40,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,96,219,69,66,224,240,99,67,96,189,37,68,224,210,67,69,96,159,5,70,224,180,35,71,224,187,238,71,224,150,3,73,224,157,206,73,224,120,227,74,224,127,174,75,96,149,204,76,224,97,142,77,96,119,172,78,62,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,184,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,221,105,0,224,224,105,0,224,31,106,0,16,48,106,0,224,140,0,0,0,160,170,230,146,144,137,75,155,160,227,254,155,144,9,157,156,144,159,201,157,144,142,127,158,16,211,170,159,144,112,95,160,144,6,140,161,144,245,65,162,144,139,110,163,16,41,35,164,16,191,79,165,144,11,6,170,16,171,244,170,16,196,201,173,16,64,167,174,144,107,160,175,16,34,135,176,16,136,137,177,144,62,112,178,144,164,114,179,144,32,80,180,144,104,50,183,144,228,15,184,144,213,255,184,144,198,239,185,16,212,200,188,16,197,184,189,144,123,159,190,16,167,152,191,16,13,155,192,16,137,120,193,16,122,104,194,16,107,88,195,144,33,63,196,16,77,56,197,16,179,58,198,144,200,88,199,144,251,217,199,144,75,1,201,144,60,241,201,16,127,226,202,16,111,181,203,0,192,236,203,0,104,128,204,16,191,220,204,16,81,149,205,128,103,195,205,0,191,114,206,144,219,197,206,16,51,117,207,0,132,172,207,0,161,82,208,144,189,165,208,16,21,85,209,0,102,140,209,0,131,50,210,144,159,133,210,16,225,89,211,16,210,73,212,64,237,57,213,64,222,41,214,64,207,25,215,64,192,9,216,64,177,249,216,64,162,233,217,64,147,217,218,64,132,201,219,64,117,185,220,192,160,178,221,192,145,162,222,192,130,146,223,192,115,130,224,192,100,114,225,192,85,98,226,192,70,82,227,192,55,66,228,192,40,50,229,192,25,34,230,64,69,27,231,64,54,11,232,64,39,251,232,64,24,235,233,64,9,219,234,64,250,202,235,64,235,186,236,64,220,170,237,64,205,154,238,64,190,138,239,64,175,122,240,64,160,106,241,192,203,99,242,192,188,83,243,192,173,67,244,192,158,51,245,192,143,35,246,192,128,19,247,192,113,3,248,192,98,243,248,16,41,155,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,160,38,84,18,144,9,68,19,160,8,52,20,160,249,35,21,160,234,19,22,160,219,3,23,160,204,243,23,176,203,227,24,160,174,211,25,160,159,195,26,32,203,188,27,32,188,172,28,32,173,156,29,32,158,140,30,32,143,124,31,32,128,108,32,32,113,92,33,32,98,76,34,32,83,60,35,32,68,44,36,32,53,28,37,32,38,12,38,160,81,5,39,160,66,245,39,160,51,229,40,160,36,213,41,160,21,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,144,27,61,94,170,170,170,170,141,0,0,0,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,7,6,5,6,5,6,5,6,5,170,170,170,16,0,0,0,240,231,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,224,227,255,255,32,28,0,0,40,229,255,255,0,0,0,0,240,241,255,255,0,0,0,0,240,241,255,255,16,14,0,0,0,0,0,0,0,0,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,240,241,255,127,7,0,0,96,205,7,0,112,66,106,0,224,207,106,0,224,211,106,0,16,248,106,0,224,95,0,0,0,70,174,204,156,54,75,183,157,198,109,184,158,54,184,132,159,230,29,195,180,224,166,98,203,208,188,211,204,224,209,158,205,208,19,198,206,96,121,117,207,80,48,175,208,96,91,85,209,80,18,143,210,96,104,113,213,208,60,14,214,224,132,90,215,80,228,228,215,224,102,58,217,80,198,196,217,96,131,35,219,80,168,164,219,96,101,3,221,80,138,132,221,96,71,227,222,208,166,109,223,224,9,108,230,208,2,55,231,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,170,170,170,170,170,170,170,170,95,0,0,0,1,0,1,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,8,0,0,0,58,195,255,255,0,0,0,0,58,195,255,255,16,14,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,1,0,0,96,216,7,0,112,20,107,0,224,119,107,0,16,144,107,0,224,36,0,0,0,240,92,4,166,32,247,65,212,0,54,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,36,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,144,241,255,255,0,0,0,0,240,241,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,0,0,0,112,7,0,0,96,205,7,0,112,163,107,0,224,203,107,0,16,213,107,0,224,4,0,0,0,160,170,230,146,32,156,149,204,16,124,116,210,64,247,23,11,170,170,170,170,170,170,170,170,4,0,0,0,1,2,1,3,8,0,0,0,244,233,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,240,241,255,255,0,0,0,0,3,0,48,0,66,0,54,0,232,107,0,224,239,107,0,16,241,107,0,224,2,0,0,0,87,1,0,0,88,1,0,0,33,0,0,0,88,164,109,139,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,168,249,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,0,0,0,112,7,0,0,96,205,7,0,112,255,107,0,224,2,108,0,224,39,108,0,16,49,108,0,224,140,0,0,0,144,156,230,146,128,123,75,155,144,213,254,155,128,251,156,156,128,145,201,157,128,128,127,158,0,197,170,159,128,98,95,160,128,248,139,161,128,231,65,162,128,125,110,163,0,27,35,164,0,177,79,165,128,253,5,170,0,157,244,170,0,182,201,173,0,50,167,174,128,93,160,175,0,20,135,176,0,122,137,177,128,48,112,178,128,150,114,179,128,18,80,180,128,90,50,183,128,214,15,184,128,199,255,184,128,184,239,185,0,198,200,188,0,183,184,189,128,109,159,190,0,153,152,191,0,255,154,192,0,123,120,193,0,108,104,194,0,93,88,195,128,19,63,196,0,63,56,197,0,165,58,198,128,186,88,199,128,237,217,199,128,61,1,201,128,46,241,201,0,113,226,202,0,97,181,203,240,177,236,203,240,89,128,204,0,177,220,204,0,67,149,205,112,89,195,205,240,176,114,206,128,205,197,206,0,37,117,207,240,117,172,207,240,146,82,208,128,175,165,208,0,7,85,209,240,87,140,209,240,116,50,210,128,145,133,210,0,211,89,211,0,196,73,212,48,223,57,213,48,208,41,214,48,193,25,215,48,178,9,216,48,163,249,216,48,148,233,217,48,133,217,218,48,118,201,219,48,103,185,220,176,146,178,221,176,131,162,222,176,116,146,223,176,101,130,224,176,86,114,225,176,71,98,226,176,56,82,227,176,41,66,228,176,26,50,229,176,11,34,230,48,55,27,231,48,40,11,232,48,25,251,232,48,10,235,233,48,251,218,234,48,236,202,235,48,221,186,236,48,206,170,237,48,191,154,238,48,176,138,239,48,161,122,240,48,146,106,241,176,189,99,242,176,174,83,243,176,159,67,244,176,144,51,245,176,129,35,246,176,114,19,247,176,99,3,248,176,84,243,248,0,27,155,13,0,12,139,14,128,55,132,15,128,40,116,16,128,25,100,17,144,24,84,18,128,251,67,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,160,189,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,140,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,12,0,0,0,40,240,255,255,0,0,0,0,240,241,255,255,0,0,0,0,240,241,255,255,16,14,0,0,240,241,255,255,32,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,0,0,0,112,7,0,0,96,205,7,0,112,67,108,0,224,211,108,0,16,247,108,0,224,2,0,0,0,255,255,255,255,192,253,134,105,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,192,221,255,255,0,0,0,0,224,227,255,255,0,0,0,0,3,0,80,0,66,0,54,0,14,109,0,224,19,109,0,16,21,109,0,224,69,0,0,0,60,95,68,147,192,90,79,195,48,3,54,196,192,60,47,197,48,229,21,198,64,89,24,199,176,1,255,199,64,59,248,200,176,227,222,201,64,29,216,202,176,197,190,203,64,255,183,204,48,129,54,205,64,254,17,25,176,188,211,25,32,196,241,26,48,100,170,27,32,166,209,28,48,70,138,29,176,91,168,30,64,54,106,31,176,61,136,32,64,24,74,33,176,31,104,34,64,250,41,35,176,1,72,36,64,220,9,37,48,30,49,38,64,190,233,38,48,0,17,40,192,218,210,40,48,226,240,41,192,188,178,42,48,196,208,43,192,158,146,44,48,166,176,45,192,128,114,46,48,136,144,47,192,98,82,48,176,164,121,49,64,127,59,50,176,134,89,51,64,97,27,52,176,104,57,53,64,67,251,53,176,74,25,55,64,37,219,55,176,44,249,56,64,7,187,57,208,42,217,58,224,202,145,59,80,71,194,60,224,172,113,61,80,41,162,62,96,201,90,63,80,11,130,64,96,171,58,65,80,237,97,66,96,141,26,67,80,207,65,68,96,111,250,68,80,177,33,70,96,81,218,70,208,205,10,72,224,109,195,72,208,175,234,73,224,79,163,74,208,145,202,75,224,49,131,76,170,170,170,170,170,170,170,170,69,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,170,10,0,0,0,196,201,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,31,109,0,224,103,109,0,16,122,109,0,224,2,0,0,0,96,1,0,0,112,1,0,0,83,0,0,0,136,201,78,156,8,54,188,156,8,186,84,203,136,108,199,203,136,93,183,204,136,78,167,205,8,122,160,206,136,48,135,207,136,64,112,3,8,35,13,4,136,34,80,5,136,63,246,5,136,4,48,7,136,33,214,7,136,230,15,9,136,3,182,9,136,200,239,10,8,32,159,11,8,229,216,12,8,2,127,13,8,199,184,14,8,228,94,15,8,169,152,16,8,198,62,17,8,139,120,18,8,168,30,19,8,109,88,20,8,138,254,20,8,79,56,22,136,166,231,22,136,107,33,24,136,136,199,24,136,77,1,26,136,106,167,26,136,47,225,27,136,76,135,28,136,17,193,29,136,163,121,30,8,185,151,31,136,133,89,32,136,213,128,33,8,162,66,34,8,242,105,35,8,132,34,36,8,212,73,37,8,102,2,38,8,182,41,39,8,211,207,39,8,152,9,41,136,100,203,41,8,122,233,42,136,209,152,43,136,150,210,44,136,40,139,45,136,120,178,46,8,69,116,47,136,90,146,48,136,97,93,49,136,60,114,50,136,67,61,51,136,30,82,52,136,37,29,53,136,0,50,54,136,7,253,54,8,29,27,56,136,233,220,56,8,255,250,57,136,203,188,58,8,225,218,59,8,232,165,60,8,195,186,61,8,202,133,62,8,165,154,63,8,172,101,64,136,193,131,65,8,142,69,66,136,163,99,67,136,170,46,68,136,133,67,69,8,82,5,70,136,103,35,71,8,169,247,71,8,154,231,72,4,0,0,0,255,255,255,255,20,139,22,115,255,255,255,255,112,3,18,123,170,170,170,170,85,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,170,8,0,0,0,236,129,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,152,133,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,152,133,0,112,40,0,0,96,217,7,0,112,138,109,0,224,141,109,0,224,225,109,0,224,231,109,0,16,254,109,0,224,2,0,0,0,97,1,0,0,111,1,0,0,16,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,0,205,73,37,0,234,239,37,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,2,0,0,0,255,255,255,255,8,159,237,114,17,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,120,143,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,20,110,0,224,23,110,0,224,40,110,0,224,43,110,0,16,49,110,0,224,2,0,0,0,98,1,0,0,117,1,0,0,83,0,0,0,136,201,78,156,8,54,188,156,8,186,84,203,136,108,199,203,136,93,183,204,136,78,167,205,8,122,160,206,136,48,135,207,136,64,112,3,8,35,13,4,136,34,80,5,136,63,246,5,136,4,48,7,136,33,214,7,136,230,15,9,136,3,182,9,136,200,239,10,8,32,159,11,8,229,216,12,8,2,127,13,8,199,184,14,8,228,94,15,8,169,152,16,8,198,62,17,8,139,120,18,8,168,30,19,8,109,88,20,8,138,254,20,8,79,56,22,136,144,12,23,136,107,33,24,136,136,199,24,136,77,1,26,136,106,167,26,136,47,225,27,136,76,135,28,136,17,193,29,136,163,121,30,8,185,151,31,136,133,89,32,136,213,128,33,8,162,66,34,8,242,105,35,8,132,34,36,8,212,73,37,8,241,239,37,8,182,41,39,8,211,207,39,8,152,9,41,8,181,175,41,8,122,233,42,136,209,152,43,136,150,210,44,136,179,120,45,136,120,178,46,136,149,88,47,136,90,146,48,136,97,93,49,136,60,114,50,136,67,61,51,136,30,82,52,136,37,29,53,136,0,50,54,136,7,253,54,8,29,27,56,136,233,220,56,8,255,250,57,136,203,188,58,8,225,218,59,8,232,165,60,8,195,186,61,8,202,133,62,8,165,154,63,8,172,101,64,136,193,131,65,8,142,69,66,136,163,99,67,136,170,46,68,136,133,67,69,8,82,5,70,136,103,35,71,8,169,247,71,8,154,231,72,6,0,0,0,255,255,255,255,100,136,22,115,255,255,255,255,224,165,4,118,255,255,255,255,112,3,18,123,170,170,170,170,86,0,0,0,4,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,10,0,0,0,156,132,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,152,133,0,0,16,14,0,0,160,140,0,0,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,152,133,0,112,40,0,0,96,217,7,0,112,64,110,0,224,67,110,0,224,151,110,0,224,159,110,0,16,182,110,0,224,3,0,0,0,0,0,0,0,101,1,0,0,109,1,0,0,8,0,0,0,136,201,78,156,8,54,188,156,8,186,84,203,136,108,199,203,136,93,183,204,136,78,167,205,8,122,160,206,136,48,135,207,4,0,0,0,255,255,255,255,88,146,22,115,255,255,255,255,112,3,18,123,170,170,170,170,170,170,170,170,170,170,170,170,10,0,0,0,1,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,168,122,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,152,133,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,206,110,0,224,210,110,0,224,219,110,0,224,227,110,0,16,231,110,0,224,18,0,0,0,20,212,78,156,148,64,188,156,148,196,84,203,20,119,199,203,20,104,183,204,20,89,167,205,20,241,15,9,20,14,182,9,20,88,1,26,20,117,167,26,20,82,37,41,148,191,175,41,148,180,113,69,148,92,5,70,20,114,35,71,20,121,238,71,20,84,3,73,20,91,206,73,2,0,0,0,255,255,255,255,176,10,166,116,170,170,170,170,19,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,208,120,0,0,0,0,0,0,12,123,0,0,0,0,0,0,12,123,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,248,110,0,224,11,111,0,224,15,111,0,16,21,111,0,224,3,0,0,0,100,1,0,0,103,1,0,0,114,1,0,0,95,0,0,0,128,120,213,155,0,47,188,156,128,68,218,157,128,97,128,158,128,38,186,159,128,67,96,160,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,0,141,194,251,0,126,178,252,0,89,199,253,128,176,118,254,0,59,167,255,128,146,86,0,0,29,135,1,0,175,63,2,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,0,79,3,23,128,100,33,24,0,49,227,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,39,103,30,0,178,151,31,128,126,89,32,128,206,128,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,95,2,38,0,175,41,39,0,182,244,39,128,225,237,40,0,152,212,41,128,195,205,42,0,122,180,43,128,165,173,44,0,92,148,45,128,135,141,46,0,62,116,47,128,105,109,48,128,90,93,49,0,134,86,50,128,60,61,51,0,104,54,52,128,30,29,53,0,74,22,54,128,0,253,54,0,44,246,55,128,226,220,56,128,233,167,57,128,196,188,58,128,42,191,59,0,225,165,60,128,12,159,61,0,195,133,62,128,238,126,63,0,165,101,64,128,208,94,65,0,135,69,66,128,178,62,67,128,163,46,68,128,148,30,69,0,75,5,70,0,177,7,71,0,162,247,71,0,147,231,72,2,0,0,0,255,255,255,255,228,0,46,116,170,170,170,170,96,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,28,138,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,140,0,112,218,3,0,96,217,7,0,112,35,111,0,224,39,111,0,224,135,111,0,224,139,111,0,16,164,111,0,224,20,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,0,205,73,37,0,234,239,37,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,0,115,233,42,128,202,152,43,128,143,210,44,128,172,120,45,2,0,0,0,255,255,255,255,212,162,237,114,170,170,170,170,170,170,170,170,170,170,170,170,21,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,172,139,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,184,111,0,224,205,111,0,224,211,111,0,16,218,111,0,224,2,0,0,0,104,1,0,0,106,1,0,0,56,0,0,0,224,102,254,20,248,64,56,22,104,138,231,22,120,93,33,24,104,108,199,24,120,63,1,26,104,78,167,26,120,33,225,27,104,48,135,28,120,3,193,29,112,142,121,30,248,170,151,31,112,112,89,32,120,199,128,33,240,140,66,34,248,227,105,35,240,110,34,36,248,197,73,37,240,219,239,37,248,167,41,39,240,189,207,39,248,137,9,41,240,159,175,41,248,107,233,42,112,188,152,43,120,136,210,44,112,158,120,45,120,106,178,46,112,128,88,47,120,76,146,48,112,76,93,49,120,46,114,50,112,46,61,51,120,16,82,52,112,16,29,53,120,242,49,54,112,242,252,54,248,14,27,56,112,212,220,56,120,226,167,57,112,182,188,58,248,210,218,59,240,210,165,60,248,180,186,61,240,180,133,62,248,150,154,63,240,150,101,64,120,179,131,65,240,120,69,66,120,149,99,67,112,149,46,68,120,119,67,69,240,60,5,70,120,89,35,71,240,147,247,71,248,139,231,72,2,0,0,0,255,255,255,255,220,119,22,115,57,0,0,0,1,2,4,2,4,2,4,2,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,170,10,0,0,0,36,149,0,0,0,0,0,0,160,140,0,0,0,0,0,0,168,147,0,0,0,0,0,0,168,147,0,0,8,7,0,0,168,147,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,168,147,0,112,216,1,0,96,217,7,0,112,232,111,0,224,235,111,0,224,36,112,0,224,39,112,0,16,55,112,0,224,2,0,0,0,107,1,0,0,115,1,0,0,83,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,128,159,231,22,128,100,33,24,128,129,199,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,156,121,30,0,178,151,31,128,126,89,32,0,148,119,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,95,2,38,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,0,115,233,42,128,202,152,43,128,143,210,44,128,172,120,45,128,113,178,46,0,62,116,47,128,83,146,48,128,90,93,49,128,53,114,50,128,60,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,128,233,167,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,128,163,46,68,128,126,67,69,0,75,5,70,128,96,35,71,0,162,247,71,0,147,231,72,2,0,0,0,255,255,255,255,24,133,22,115,170,170,170,170,170,170,170,170,84,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,232,135,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,140,0,112,235,0,0,96,217,7,0,112,79,112,0,224,82,112,0,224,166,112,0,224,171,112,0,16,193,112,0,224,2,0,0,0,110,1,0,0,116,1,0,0,18,0,0,0,160,222,78,156,32,75,188,156,32,207,84,203,160,129,199,203,160,114,183,204,160,99,167,205,160,251,15,9,160,24,182,9,160,98,1,26,160,127,167,26,160,92,37,41,32,202,175,41,32,191,113,69,32,103,5,70,160,124,35,71,160,131,238,71,160,94,3,73,160,101,206,73,2,0,0,0,255,255,255,255,228,22,166,116,170,170,170,170,19,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,156,108,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,213,112,0,224,216,112,0,224,235,112,0,224,239,112,0,16,245,112,0,224,5,0,0,0,1,0,0,0,95,1,0,0,99,1,0,0,108,1,0,0,113,1,0,0,83,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,128,137,12,23,128,100,33,24,128,129,199,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,156,121,30,0,178,151,31,128,126,89,32,128,206,128,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,234,239,37,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,0,115,233,42,128,202,152,43,128,143,210,44,128,172,120,45,128,113,178,46,128,142,88,47,128,83,146,48,128,90,93,49,128,53,114,50,128,60,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,128,233,167,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,128,163,46,68,128,126,67,69,0,75,5,70,128,96,35,71,0,162,247,71,0,147,231,72,2,0,0,0,255,255,255,255,60,127,22,115,170,170,170,170,170,170,170,170,84,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,196,141,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,140,0,112,103,0,0,96,217,7,0,112,4,113,0,224,10,113,0,224,94,113,0,224,99,113,0,16,121,113,0,224,54,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,144,64,78,210,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,54,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,16,14,0,112,121,3,0,96,205,7,0,112,141,113,0,224,199,113,0,16,214,113,0,224,88,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,170,170,170,170,88,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,216,7,0,112,229,113,0,224,63,114,0,16,86,114,0,224,40,0,0,0,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,40,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,205,7,0,112,101,114,0,224,143,114,0,16,154,114,0,224,2,0,0,0,176,185,255,255,0,0,0,0,1,0,54,0,169,114,0,224,88,0,0,0,112,30,166,158,96,235,186,159,112,0,134,160,96,205,154,161,112,240,136,203,224,251,96,210,240,88,248,250,224,59,232,251,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,96,164,16,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,88,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,176,185,255,127,1,0,0,96,216,7,0,112,174,114,0,224,7,115,0,16,30,115,0,224,10,0,0,0,149,1,0,0,150,1,0,0,163,1,0,0,178,1,0,0,179,1,0,0,252,1,0,0,253,1,0,0,254,1,0,0,255,1,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,74,0,54,0,170,170,45,115,0,224,56,115,0,224,2,0,0,0,240,241,255,255,0,0,0,0,1,0,54,0,63,115,0,224,2,0,0,0,96,115,255,255,0,0,0,0,1,0,54,0,68,115,0,224,2,0,0,0,80,101,255,255,0,0,0,0,1,0,54,0,73,115,0,224,2,0,0,0,64,87,255,255,0,0,0,0,1,0,54,0,78,115,0,224,2,0,0,0,224,227,255,255,0,0,0,0,1,0,54,0,83,115,0,224,2,0,0,0,208,213,255,255,0,0,0,0,1,0,54,0,88,115,0,224,2,0,0,0,192,199,255,255,0,0,0,0,1,0,54,0,93,115,0,224,2,0,0,0,176,185,255,255,0,0,0,0,1,0,54,0,98,115,0,224,2,0,0,0,160,171,255,255,0,0,0,0,1,0,54,0,103,115,0,224,2,0,0,0,144,157,255,255,0,0,0,0,1,0,54,0,108,115,0,224,2,0,0,0,128,143,255,255,0,0,0,0,1,0,54,0,113,115,0,224,2,0,0,0,112,129,255,255,0,0,0,0,1,0,54,0,118,115,0,224,2,0,0,0,16,14,0,0,0,0,0,0,1,0,54,0,123,115,0,224,2,0,0,0,160,140,0,0,0,0,0,0,1,0,54,0,128,115,0,224,2,0,0,0,176,154,0,0,0,0,0,0,1,0,54,0,133,115,0,224,2,0,0,0,192,168,0,0,0,0,0,0,1,0,54,0,138,115,0,224,2,0,0,0,208,182,0,0,0,0,0,0,1,0,54,0,143,115,0,224,2,0,0,0,224,196,0,0,0,0,0,0,1,0,54,0,148,115,0,224,2,0,0,0,32,28,0,0,0,0,0,0,1,0,54,0,153,115,0,224,2,0,0,0,48,42,0,0,0,0,0,0,1,0,54,0,158,115,0,224,2,0,0,0,64,56,0,0,0,0,0,0,1,0,54,0,163,115,0,224,2,0,0,0,80,70,0,0,0,0,0,0,1,0,54,0,168,115,0,224,2,0,0,0,96,84,0,0,0,0,0,0,1,0,54,0,173,115,0,224,2,0,0,0,112,98,0,0,0,0,0,0,1,0,54,0,178,115,0,224,2,0,0,0,128,112,0,0,0,0,0,0,1,0,54,0,183,115,0,224,2,0,0,0,144,126,0,0,0,0,0,0,1,0,54,0,188,115,0,224,8,0,0,0,180,1,0,0,181,1,0,0,182,1,0,0,184,1,0,0,106,2,0,0,120,2,0,0,121,2,0,0,125,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,74,0,54,0,170,170,193,115,0,224,202,115,0,224,2,0,0,0,0,0,0,0,0,0,0,0,1,0,54,0,209,115,0,224,25,0,0,0,0,219,65,212,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,148,179,54,126,26,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,108,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,214,115,0,224,240,115,0,224,243,115,0,16,251,115,0,224,64,0,0,0,116,69,24,170,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,112,20,247,86,170,170,170,170,170,170,170,170,170,170,170,170,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,10,0,0,0,12,45,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,15,116,0,224,83,116,0,16,100,116,0,224,55,0,0,0,128,33,128,155,224,233,124,185,208,175,198,185,224,99,242,201,80,168,16,202,16,75,231,204,240,76,170,205,224,24,162,206,112,105,147,207,96,158,19,223,80,10,183,223,96,94,236,9,96,244,24,11,0,174,205,11,0,159,189,12,128,85,164,13,128,93,140,14,128,55,132,15,16,252,106,16,240,123,100,17,240,170,82,18,96,130,70,19,80,194,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,55,0,0,0,3,4,3,4,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,10,0,0,0,60,22,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,205,7,0,112,116,116,0,224,175,116,0,16,190,116,0,224,6,0,0,0,190,1,0,0,211,1,0,0,223,1,0,0,229,1,0,0,232,1,0,0,246,1,0,0,36,0,0,0,224,53,2,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,140,161,209,144,64,78,210,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,72,240,60,94,170,170,170,170,37,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,56,19,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,211,116,0,224,218,116,0,224,255,116,0,224,3,117,0,16,14,117,0,224,6,0,0,0,239,0,0,0,89,1,0,0,191,1,0,0,198,1,0,0,221,1,0,0,234,1,0,0,60,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,0,150,182,209,128,190,88,210,16,79,161,210,144,27,99,211,144,35,75,212,32,209,57,213,144,231,103,213,0,115,168,213,16,180,41,214,16,26,44,215,16,150,9,216,144,193,2,217,16,120,233,217,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,248,97,162,111,170,170,170,170,170,170,170,170,61,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,136,12,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,16,14,0,0,32,28,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,34,117,0,224,41,117,0,224,102,117,0,224,107,117,0,16,124,117,0,224,3,0,0,0,185,1,0,0,193,1,0,0,213,1,0,0,101,0,0,0,128,73,68,152,112,37,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,48,248,206,159,240,165,96,160,112,187,126,161,240,18,46,162,240,76,122,163,240,129,53,164,112,35,94,165,240,53,37,166,240,155,39,167,240,1,42,168,240,125,7,169,112,52,238,169,240,95,231,170,240,80,215,171,240,65,199,172,240,167,201,173,240,35,167,174,112,79,160,175,240,5,135,176,240,107,137,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,227,255,184,160,212,239,185,32,139,214,186,32,241,216,187,32,226,200,188,32,211,184,189,160,137,159,190,32,181,152,191,32,27,155,192,32,151,120,193,32,136,104,194,32,121,88,195,160,47,63,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,32,25,74,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,144,94,110,208,16,22,114,209,144,64,78,210,16,64,145,211,144,35,75,212,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,0,200,232,109,102,0,0,0,1,3,4,3,4,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,146,117,0,224,150,117,0,224,252,117,0,224,255,117,0,16,26,118,0,224,55,0,0,0,8,210,176,183,96,243,62,185,96,156,239,185,96,141,223,186,96,126,207,187,224,169,200,188,224,154,184,189,224,139,168,190,224,124,152,191,224,109,136,192,224,94,120,193,224,79,104,194,224,64,88,195,224,49,72,196,224,34,56,197,224,19,40,198,224,4,24,199,96,209,173,17,80,224,83,18,208,11,77,19,96,208,51,20,128,221,35,21,128,206,19,22,128,191,3,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,0,130,140,30,0,115,124,31,0,100,108,32,0,85,92,33,0,70,76,34,0,55,60,35,0,40,44,36,0,25,28,37,0,10,12,38,128,53,5,39,96,10,245,39,96,251,228,40,96,236,212,41,96,221,196,42,96,206,180,43,96,191,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,123,114,50,16,187,61,51,16,150,82,52,170,170,170,170,55,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,120,24,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,206,7,0,112,50,118,0,224,107,118,0,16,122,118,0,224,68,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,16,196,154,160,144,121,100,161,16,26,112,162,16,150,77,163,96,181,243,201,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,224,120,153,209,112,201,138,210,144,166,80,211,128,21,75,212,16,195,57,213,16,180,41,214,16,165,25,215,16,150,9,216,144,193,2,217,16,120,233,217,240,168,162,226,96,242,81,227,16,167,130,228,144,254,49,229,16,254,116,230,144,224,17,231,16,224,84,232,144,194,241,232,240,39,77,19,112,222,51,20,112,207,35,21,112,192,19,22,112,177,3,23,112,162,243,23,112,147,227,24,112,132,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,156,145,23,107,69,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,228,17,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,139,118,0,224,208,118,0,224,211,118,0,16,230,118,0,224,2,0,0,0,197,1,0,0,237,1,0,0,60,0,0,0,12,159,107,158,8,210,176,183,96,243,62,185,96,156,239,185,96,141,223,186,96,126,207,187,224,169,200,188,224,154,184,189,224,139,168,190,224,124,152,191,224,109,136,192,224,94,120,193,224,79,104,194,224,64,88,195,224,49,72,196,224,34,56,197,224,19,40,198,224,4,24,199,96,147,188,200,80,125,119,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,96,144,78,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,224,76,67,38,128,53,5,39,128,38,245,39,128,23,229,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,123,114,50,0,173,61,51,0,136,82,52,2,0,0,0,255,255,255,255,248,200,182,86,61,0,0,0,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,2,1,2,1,2,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,170,170,170,18,0,0,0,8,27,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,120,24,0,0,0,0,0,0,244,26,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,32,28,0,112,21,4,0,96,206,7,0,112,248,118,0,224,251,118,0,224,56,119,0,224,59,119,0,16,76,119,0,224,2,0,0,0,148,1,0,0,199,1,0,0,145,0,0,0,145,179,38,155,17,11,214,155,160,48,207,156,160,195,164,157,160,157,156,158,160,26,151,159,32,186,133,160,160,252,118,161,32,156,101,162,160,200,123,163,160,184,78,164,32,251,63,165,32,96,37,166,32,198,39,167,32,44,42,168,160,248,235,168,160,211,0,170,32,21,213,170,32,240,233,171,32,108,199,172,32,210,201,173,32,78,167,174,160,121,160,175,32,48,135,176,160,208,146,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,88,18,185,160,212,239,185,32,0,233,186,32,241,216,187,32,87,219,188,32,211,184,189,160,254,177,190,32,181,152,191,32,27,155,192,32,151,120,193,32,253,122,194,32,121,88,195,160,164,81,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,32,224,73,212,160,33,30,213,32,172,78,214,32,40,44,215,32,142,46,216,32,149,249,216,32,112,14,218,32,236,235,218,160,23,229,219,32,206,203,220,160,249,196,221,160,234,180,222,32,22,174,223,160,204,148,224,160,72,114,225,32,116,107,226,160,42,82,227,160,144,84,228,160,12,50,229,32,173,61,230,32,41,27,231,160,84,20,232,32,11,251,232,32,113,253,233,32,237,218,234,32,83,221,235,32,207,186,236,160,250,179,237,32,177,154,238,160,103,129,239,32,125,159,240,160,73,97,241,32,95,127,242,32,102,74,243,32,65,95,244,160,13,33,245,32,35,63,246,160,239,0,247,32,5,31,248,160,209,224,248,32,231,254,249,160,179,192,250,160,3,232,251,160,171,123,252,112,187,199,253,32,198,112,3,32,88,41,4,32,168,80,5,32,58,9,6,32,138,48,7,32,28,233,7,32,108,16,9,32,254,200,9,32,78,240,10,160,26,178,11,32,48,208,12,160,252,145,13,32,18,176,14,160,222,113,15,160,46,153,16,160,192,81,17,160,16,121,18,160,162,49,19,160,242,88,20,144,235,35,21,144,198,56,22,144,205,3,23,144,168,24,24,144,175,227,24,144,138,248,25,144,145,195,26,16,167,225,27,16,174,172,28,16,137,193,29,16,144,140,30,16,107,161,31,16,114,108,32,16,77,129,33,16,84,76,34,16,47,97,35,16,54,44,36,144,75,74,37,16,24,12,38,144,45,42,39,144,52,245,39,144,15,10,41,144,22,213,41,144,241,233,42,144,248,180,43,144,211,201,44,144,218,148,45,144,181,169,46,144,188,116,47,144,151,137,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,145,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,170,10,0,0,0,15,250,255,255,0,0,0,0,15,250,255,255,16,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,0,0,0,112,7,0,0,96,205,7,0,112,108,119,0,224,111,119,0,224,3,120,0,16,41,120,0,224,115,0,0,0,160,173,38,155,32,5,214,155,160,48,207,156,160,195,164,157,160,157,156,158,160,26,151,159,32,186,133,160,160,252,118,161,32,156,101,162,160,200,123,163,160,184,78,164,32,251,63,165,32,96,37,166,32,198,39,167,32,44,42,168,160,248,235,168,160,211,0,170,32,21,213,170,32,240,233,171,32,108,199,172,32,210,201,173,32,78,167,174,160,121,160,175,32,48,135,176,160,208,146,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,88,18,185,160,212,239,185,32,0,233,186,32,241,216,187,32,87,219,188,32,211,184,189,160,254,177,190,32,181,152,191,32,27,155,192,32,151,120,193,32,253,122,194,32,121,88,195,160,164,81,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,144,38,22,202,144,89,151,202,144,30,209,203,144,59,119,204,144,0,177,205,16,88,96,206,144,226,144,207,144,94,110,208,16,22,114,209,16,50,251,209,32,254,105,210,160,41,99,211,32,224,73,212,160,33,30,213,144,253,66,213,16,224,223,213,32,172,78,214,160,3,254,214,32,142,46,216,32,149,249,216,32,112,14,218,32,236,235,218,160,23,229,219,32,206,203,220,160,249,196,221,160,234,180,222,32,22,174,223,160,204,148,224,160,72,114,225,32,116,107,226,160,42,82,227,160,144,84,228,160,12,50,229,32,173,61,230,32,41,27,231,160,84,20,232,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,4,10,209,87,170,170,170,170,116,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,3,2,3,2,3,2,3,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,12,0,0,0,252,250,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,63,120,0,224,179,120,0,224,183,120,0,16,213,120,0,224,2,0,0,0,202,1,0,0,216,1,0,0,35,0,0,0,27,111,115,164,96,81,206,203,96,229,192,204,128,221,35,21,128,206,19,22,128,191,3,23,128,176,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,101,23,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,32,28,0,112,7,0,0,96,205,7,0,112,237,120,0,224,240,120,0,224,23,121,0,16,33,121,0,224,3,0,0,0,21,1,0,0,204,1,0,0,105,2,0,0,114,0,0,0,152,245,139,144,96,23,12,155,208,190,213,155,224,99,101,162,80,130,123,163,96,128,78,164,208,180,63,165,224,39,37,166,208,127,39,167,96,40,40,170,208,253,225,170,224,137,249,171,80,49,195,172,224,63,129,200,80,19,1,201,96,245,74,201,80,128,206,202,96,174,203,203,80,9,107,210,96,57,162,211,80,2,67,212,224,13,76,213,208,123,41,214,224,239,43,215,208,93,9,216,96,151,2,217,208,63,233,217,224,179,235,218,80,92,210,219,96,208,212,220,80,62,178,221,96,185,244,241,80,239,98,244,96,6,104,245,208,56,31,246,112,147,110,6,112,154,57,7,0,117,251,7,112,124,25,9,0,203,208,9,112,94,249,10,128,254,177,11,112,64,217,12,128,85,164,13,112,173,166,14,128,55,132,15,80,17,248,15,112,176,137,25,224,176,220,25,240,208,230,27,240,239,198,28,112,49,155,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,112,9,229,40,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,240,131,139,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,144,221,143,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,16,190,56,83,144,71,76,84,144,78,23,85,144,158,62,86,144,48,247,86,80,46,207,87,2,0,0,0,255,255,255,255,216,200,182,86,170,170,170,170,170,170,170,170,115,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,5,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,170,12,0,0,0,40,27,0,0,0,0,0,0,104,27,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,51,121,0,224,55,121,0,224,170,121,0,224,175,121,0,16,205,121,0,224,79,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,224,119,124,209,96,132,149,209,80,173,138,210,224,182,89,211,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,0,143,29,53,0,106,50,54,0,113,253,54,128,134,27,56,0,83,221,56,128,104,251,57,0,53,189,58,128,74,219,59,128,81,166,60,128,44,187,61,128,51,134,62,128,14,155,63,128,21,102,64,0,43,132,65,128,247,69,66,0,13,100,67,128,217,37,68,0,239,67,69,128,187,5,70,0,209,35,71,0,216,238,71,0,179,3,73,0,186,206,73,0,149,227,74,0,156,174,75,128,177,204,76,0,126,142,77,112,43,76,84,2,0,0,0,255,255,255,255,72,91,162,111,170,170,170,170,170,170,170,170,80,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,14,0,0,0,56,19,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,226,121,0,224,50,122,0,224,55,122,0,16,76,122,0,224,63,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,170,170,170,170,63,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,10,0,0,0,152,46,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,98,122,0,224,163,122,0,16,180,122,0,224,4,0,0,0,207,1,0,0,209,1,0,0,239,1,0,0,247,1,0,0,40,0,0,0,100,167,25,170,96,25,164,181,208,46,205,202,16,75,231,204,144,23,169,205,16,67,162,206,112,168,205,206,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,224,32,141,38,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,16,180,114,50,16,187,61,51,16,150,82,52,170,170,170,170,40,0,0,0,3,5,2,1,2,1,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,4,3,4,3,4,3,4,3,4,3,4,3,4,3,14,0,0,0,156,28,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,32,28,0,112,7,0,0,96,206,7,0,112,196,122,0,224,201,122,0,224,243,122,0,16,254,122,0,224,2,0,0,0,210,1,0,0,87,2,0,0,141,0,0,0,128,142,230,146,112,109,75,155,128,199,254,155,112,237,156,156,112,131,201,157,112,114,127,158,240,182,170,159,112,84,95,160,112,234,139,161,112,217,65,162,112,111,110,163,240,12,35,164,240,162,79,165,112,239,5,170,240,142,244,170,240,167,201,173,240,35,167,174,112,79,160,175,240,5,135,176,240,107,137,177,112,34,112,178,112,136,114,179,112,4,80,180,112,76,50,183,112,200,15,184,112,185,255,184,112,170,239,185,240,183,200,188,240,168,184,189,112,95,159,190,240,138,152,191,240,240,154,192,240,108,120,193,240,93,104,194,240,78,88,195,112,5,63,196,240,48,56,197,240,150,58,198,112,172,88,199,112,223,217,199,112,47,1,201,112,32,241,201,240,98,226,202,240,82,181,203,224,163,236,203,224,75,128,204,240,162,220,204,240,52,149,205,96,75,195,205,224,162,114,206,112,191,197,206,240,22,117,207,224,103,172,207,224,132,82,208,112,161,165,208,240,248,84,209,224,73,140,209,224,102,50,210,112,131,133,210,240,196,89,211,240,181,73,212,32,209,57,213,32,194,41,214,32,179,25,215,32,164,9,216,32,149,249,216,32,134,233,217,32,119,217,218,32,104,201,219,32,89,185,220,160,132,178,221,160,117,162,222,160,102,146,223,160,87,130,224,160,72,114,225,160,57,98,226,160,42,82,227,160,27,66,228,160,12,50,229,160,253,33,230,32,41,27,231,32,26,11,232,32,11,251,232,32,252,234,233,32,237,218,234,32,222,202,235,32,207,186,236,32,192,170,237,32,177,154,238,32,162,138,239,32,147,122,240,32,132,106,241,160,175,99,242,160,160,83,243,160,145,67,244,160,130,51,245,160,115,35,246,160,100,19,247,160,85,3,248,160,70,243,248,0,42,171,12,0,27,155,13,0,12,139,14,128,55,132,15,128,40,116,16,128,25,100,17,144,24,84,18,128,251,67,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,160,189,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,141,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,5,4,5,4,5,4,2,1,170,170,170,12,0,0,0,99,247,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,0,0,0,112,7,0,0,96,205,7,0,112,24,123,0,224,27,123,0,224,171,123,0,16,208,123,0,224,7,0,0,0,189,1,0,0,201,1,0,0,203,1,0,0,205,1,0,0,212,1,0,0,250,1,0,0,251,1,0,0,159,0,0,0,160,173,38,155,32,5,214,155,160,48,207,156,160,195,164,157,160,157,156,158,160,26,151,159,32,186,133,160,160,252,118,161,32,156,101,162,160,200,123,163,160,184,78,164,32,251,63,165,32,96,37,166,32,198,39,167,32,44,42,168,160,248,235,168,160,211,0,170,32,21,213,170,32,240,233,171,32,108,199,172,32,210,201,173,32,78,167,174,160,121,160,175,32,48,135,176,160,208,146,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,88,18,185,160,212,239,185,32,0,233,186,32,241,216,187,32,87,219,188,32,211,184,189,160,254,177,190,32,181,152,191,32,27,155,192,32,151,120,193,32,253,122,194,32,121,88,195,160,164,81,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,144,38,22,202,144,89,151,202,144,30,209,203,144,59,119,204,144,0,177,205,16,88,96,206,144,226,144,207,144,94,110,208,16,22,114,209,16,50,251,209,32,254,105,210,160,41,99,211,32,224,73,212,160,33,30,213,144,253,66,213,16,224,223,213,32,172,78,214,160,3,254,214,32,142,46,216,32,149,249,216,32,112,14,218,32,236,235,218,160,23,229,219,32,206,203,220,160,249,196,221,160,234,180,222,32,22,174,223,160,204,148,224,160,72,114,225,32,116,107,226,160,42,82,227,160,144,84,228,160,12,50,229,32,173,61,230,32,41,27,231,160,84,20,232,32,11,251,232,32,113,253,233,32,237,218,234,32,83,221,235,32,207,186,236,160,250,179,237,32,177,154,238,160,103,129,239,32,125,159,240,160,73,97,241,32,95,127,242,32,102,74,243,32,65,95,244,160,13,33,245,32,35,63,246,160,239,0,247,32,5,31,248,160,209,224,248,32,231,254,249,160,179,192,250,160,3,232,251,160,171,123,252,112,187,199,253,32,198,112,3,32,88,41,4,32,168,80,5,32,58,9,6,32,138,48,7,32,28,233,7,32,108,16,9,32,254,200,9,32,78,240,10,160,26,178,11,32,48,208,12,160,252,145,13,32,18,176,14,160,222,113,15,160,46,153,16,160,192,81,17,160,16,121,18,160,162,49,19,160,242,88,20,144,235,35,21,144,198,56,22,144,205,3,23,144,168,24,24,144,175,227,24,144,138,248,25,144,145,195,26,16,167,225,27,16,174,172,28,16,137,193,29,16,144,140,30,16,107,161,31,16,114,108,32,16,77,129,33,16,84,76,34,16,47,97,35,16,54,44,36,144,75,74,37,16,24,12,38,144,45,42,39,144,52,245,39,144,15,10,41,144,22,213,41,144,241,233,42,144,248,180,43,144,211,201,44,144,218,148,45,144,181,169,46,144,188,116,47,144,151,137,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,203,9,93,26,160,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,3,2,3,2,3,2,3,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,10,0,0,0,181,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,0,0,0,112,7,0,0,96,205,7,0,112,232,123,0,224,240,123,0,224,144,124,0,224,147,124,0,16,188,124,0,224,79,0,0,0,240,197,186,158,0,57,160,159,240,27,144,160,128,108,129,161,112,239,5,170,0,110,231,170,240,167,201,173,0,50,167,174,112,79,160,175,0,20,135,176,0,122,137,177,128,48,112,178,112,136,114,179,128,18,80,180,240,236,201,194,0,93,88,195,240,63,72,196,224,27,109,196,96,116,57,197,128,91,33,199,240,142,245,199,96,222,245,203,240,113,149,204,96,75,195,205,112,213,160,206,96,45,163,207,112,183,128,208,96,15,131,209,112,153,96,210,96,241,98,211,112,123,64,212,224,70,30,217,240,91,233,217,224,205,13,8,112,146,244,8,224,175,237,9,112,116,212,10,224,28,187,11,240,27,171,12,96,57,164,13,240,253,138,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,0,181,54,126,80,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,12,0,0,0,140,252,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,212,124,0,224,36,125,0,224,39,125,0,16,60,125,0,224,86,0,0,0,112,248,56,155,224,204,213,155,240,203,197,156,96,0,183,157,112,254,137,158,224,28,160,159,240,165,96,160,96,173,126,161,112,55,92,162,96,26,76,163,240,53,108,200,16,75,231,204,144,23,169,205,16,67,162,206,144,226,144,207,144,94,110,208,16,22,114,209,240,210,76,210,144,49,62,211,16,210,73,212,112,247,29,213,240,151,41,214,144,128,235,214,16,150,9,216,240,181,51,249,224,196,217,249,112,210,28,251,240,180,185,251,112,180,252,252,240,150,153,253,240,208,229,254,112,179,130,255,240,178,197,0,112,149,98,1,112,90,156,2,112,119,66,3,240,118,133,4,240,147,43,5,112,51,26,6,112,36,10,7,112,22,23,8,112,52,218,8,144,20,247,9,128,13,194,10,144,246,214,11,128,239,161,12,144,216,182,13,128,209,129,14,144,186,150,15,128,179,97,16,144,156,118,17,128,149,65,18,16,91,69,19,0,178,42,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,100,211,189,112,170,170,170,170,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,156,13,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,84,125,0,224,171,125,0,224,175,125,0,16,198,125,0,224,67,0,0,0,56,170,25,170,96,25,164,181,208,112,94,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,96,2,10,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,112,24,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,0,143,29,53,0,106,50,54,0,113,253,54,128,134,27,56,0,83,221,56,128,104,251,57,0,53,189,58,128,74,219,59,128,81,166,60,128,44,187,61,128,51,134,62,128,14,155,63,128,21,102,64,0,43,132,65,128,247,69,66,0,13,100,67,128,217,37,68,0,239,67,69,128,187,5,70,0,209,35,71,0,216,238,71,0,179,3,73,0,186,206,73,0,149,227,74,0,156,174,75,128,177,204,76,0,126,142,77,2,0,0,0,255,255,255,255,40,202,182,86,68,0,0,0,3,4,6,2,1,2,1,2,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,6,16,0,0,0,216,25,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,200,25,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,216,125,0,224,28,126,0,224,31,126,0,16,49,126,0,224,2,0,0,0,219,1,0,0,123,2,0,0,77,0,0,0,199,30,95,155,121,242,62,157,249,238,42,158,105,57,247,158,249,87,132,159,233,108,216,160,128,57,0,161,64,166,60,161,192,109,16,164,176,50,61,164,176,104,21,165,192,3,61,165,80,69,30,167,96,25,164,181,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,128,23,229,40,128,191,120,41,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,170,170,170,170,77,0,0,0,3,4,3,5,4,5,7,6,7,8,7,6,1,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,2,1,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,9,6,170,170,170,20,0,0,0,57,35,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,119,35,0,0,0,0,0,0,119,35,0,0,16,14,0,0,119,35,0,0,32,28,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,48,42,0,0,32,28,0,0,64,56,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,73,126,0,224,76,126,0,224,155,126,0,16,176,126,0,224,3,0,0,0,143,1,0,0,218,1,0,0,222,1,0,0,101,0,0,0,79,80,96,145,240,120,71,155,112,44,215,155,112,145,188,156,240,72,192,157,112,254,137,158,240,42,160,159,240,165,96,160,240,12,128,161,240,18,46,162,240,76,122,163,240,129,53,164,112,35,94,165,240,53,37,166,240,155,39,167,112,38,88,168,240,125,7,169,112,52,238,169,240,95,231,170,240,80,215,171,240,65,199,172,240,167,201,173,240,35,167,174,112,79,160,175,240,5,135,176,240,107,137,177,112,34,112,178,112,136,114,179,112,4,80,180,240,47,73,181,112,230,47,182,112,76,50,183,112,200,15,184,112,185,255,184,112,170,239,185,240,96,214,186,240,198,216,187,240,183,200,188,240,168,184,189,112,95,159,190,240,138,152,191,240,240,154,192,240,108,120,193,240,93,104,194,240,78,88,195,112,5,63,196,240,48,56,197,240,150,58,198,112,172,88,199,160,9,218,199,224,39,108,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,225,79,208,240,241,137,208,16,22,114,209,144,64,78,210,0,57,187,11,240,27,171,12,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,101,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,4,5,4,5,3,2,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,170,12,0,0,0,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,204,126,0,224,208,126,0,224,55,127,0,16,82,127,0,224,2,0,0,0,192,1,0,0,224,1,0,0,60,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,16,7,98,210,144,28,128,211,16,210,73,212,32,180,147,212,32,114,2,213,16,56,76,213,16,180,41,214,16,26,44,215,16,150,9,216,16,112,1,217,16,120,233,217,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,248,234,207,108,170,170,170,170,170,170,170,170,61,0,0,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,170,8,0,0,0,136,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,106,127,0,224,109,127,0,224,170,127,0,224,175,127,0,16,192,127,0,224,53,0,0,0,254,135,185,158,254,142,132,159,126,70,136,160,254,130,203,160,222,241,231,173,96,100,175,200,80,101,98,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,112,137,144,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,188,77,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,67,189,58,144,88,219,59,170,170,170,170,170,170,170,170,170,170,170,170,53,0,0,0,3,0,3,0,4,6,2,1,2,1,2,1,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,170,16,0,0,0,162,22,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,162,22,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,210,7,0,112,214,127,0,224,15,128,0,16,30,128,0,224,3,0,0,0,226,1,0,0,228,1,0,0,241,1,0,0,86,0,0,0,112,248,56,155,224,204,213,155,240,203,197,156,96,0,183,157,112,254,137,158,224,28,160,159,240,165,96,160,96,173,126,161,112,55,92,162,96,26,76,163,240,53,108,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,144,94,110,208,16,22,114,209,240,210,76,210,144,49,62,211,16,210,73,212,112,247,29,213,240,151,41,214,144,128,235,214,16,150,9,216,240,181,51,249,224,196,217,249,112,210,28,251,240,180,185,251,112,180,252,252,240,150,153,253,240,208,229,254,112,179,130,255,240,178,197,0,112,149,98,1,112,90,156,2,112,119,66,3,240,118,133,4,240,147,43,5,112,147,110,6,240,117,11,7,240,58,69,8,240,87,235,8,112,87,46,10,240,57,203,10,112,57,14,12,240,27,171,12,240,224,228,13,240,253,138,14,112,253,205,15,112,26,116,16,112,223,173,17,112,252,83,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,112,129,188,112,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,180,11,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,57,128,0,224,61,128,0,224,148,128,0,224,151,128,0,16,174,128,0,224,64,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,128,23,229,40,0,199,0,41,96,236,212,41,96,221,196,42,96,206,180,43,96,191,164,44,96,176,148,45,96,161,132,46,96,146,116,47,96,131,100,48,224,174,93,49,224,137,114,50,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,96,219,69,66,224,240,99,67,96,189,37,68,224,210,67,69,96,159,5,70,224,180,35,71,224,187,238,71,224,150,3,73,224,157,206,73,224,120,227,74,224,127,174,75,112,163,204,76,240,111,142,77,64,0,0,0,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,12,0,0,0,244,46,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,194,128,0,224,3,129,0,16,20,129,0,224,64,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,112,78,67,88,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,10,0,0,0,50,43,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,38,129,0,224,103,129,0,16,120,129,0,224,74,0,0,0,32,164,25,170,96,25,164,181,208,141,4,203,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,56,159,207,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,46,141,38,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,208,198,194,45,112,175,132,46,112,160,116,47,112,145,100,48,208,160,93,49,0,166,114,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,128,94,55,83,96,29,76,84,2,0,0,0,255,255,255,255,8,196,182,86,170,170,170,170,75,0,0,0,5,3,6,2,1,2,1,2,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,3,4,3,4,3,4,7,6,7,6,7,6,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,8,6,170,18,0,0,0,248,31,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,224,31,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,136,129,0,224,211,129,0,224,215,129,0,16,235,129,0,224,44,0,0,0,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,32,36,114,209,80,239,99,17,224,63,85,18,208,11,77,19,224,33,53,20,208,237,44,21,112,192,19,22,208,207,12,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,0,130,140,30,0,115,124,31,0,100,108,32,0,85,92,33,0,70,76,34,0,55,60,35,0,40,44,36,0,25,28,37,0,10,12,38,128,53,5,39,96,10,245,39,80,237,228,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,123,114,50,16,187,61,51,16,150,82,52,4,0,0,0,255,255,255,255,36,206,182,86,255,255,255,255,24,227,195,114,46,0,0,0,3,4,1,2,1,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,220,21,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,104,27,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,32,28,0,112,7,0,0,96,206,7,0,112,5,130,0,224,50,130,0,224,55,130,0,16,68,130,0,224,52,0,0,0,204,45,89,158,144,144,185,158,144,151,132,159,112,43,0,161,76,111,115,164,224,181,176,200,80,151,198,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,203,116,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,0,143,29,53,16,120,50,54,16,127,253,54,144,148,27,56,144,95,166,60,144,58,187,61,170,170,170,170,170,170,170,170,52,0,0,0,1,2,1,0,3,5,2,1,2,1,2,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,14,0,0,0,52,23,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,211,7,0,112,92,130,0,224,147,130,0,16,161,130,0,224,51,0,0,0,104,52,170,150,112,135,109,200,16,75,231,204,144,23,169,205,144,233,184,205,240,57,40,8,96,62,239,8,240,120,5,10,224,113,208,10,112,79,233,11,96,72,180,12,240,107,210,13,96,42,148,14,112,252,176,15,96,12,116,16,112,222,144,17,96,238,83,18,112,192,112,19,96,185,59,20,112,185,72,21,96,178,19,22,240,213,49,23,224,206,252,23,112,148,0,25,96,95,219,25,240,175,204,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,51,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,152,18,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,186,130,0,224,239,130,0,16,253,130,0,224,66,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,128,23,229,40,128,191,120,41,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,112,20,247,86,170,170,170,170,170,170,170,170,66,0,0,0,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,5,170,170,14,0,0,0,96,45,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,14,131,0,224,83,131,0,16,101,131,0,224,56,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,16,26,112,162,144,91,68,163,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,16,69,127,209,144,27,99,211,144,35,75,212,16,195,57,213,16,180,41,214,16,26,44,215,16,150,9,216,240,39,77,19,96,208,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,47,95,162,111,170,170,170,170,170,170,170,170,57,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,81,15,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,121,131,0,224,178,131,0,224,183,131,0,16,199,131,0,224,51,0,0,0,80,31,79,156,152,74,133,161,240,48,241,162,96,120,102,163,112,207,172,200,208,42,89,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,61,48,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,144,65,134,62,144,28,155,63,2,0,0,0,255,255,255,255,68,204,182,86,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,3,4,1,5,1,7,2,1,2,1,2,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,2,1,2,5,6,5,18,0,0,0,188,23,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,176,19,0,0,0,0,0,0,104,22,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,32,28,0,112,7,0,0,96,212,7,0,112,217,131,0,224,13,132,0,224,19,132,0,16,33,132,0,224,65,0,0,0,220,70,245,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,240,237,212,91,96,178,231,95,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,170,170,170,10,0,0,0,164,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,63,132,0,224,131,132,0,16,149,132,0,224,2,0,0,0,245,1,0,0,86,2,0,0,82,0,0,0,208,42,168,153,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,0,182,154,160,0,189,101,161,96,124,125,166,16,222,118,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,0,186,132,208,112,146,149,209,96,187,138,210,112,255,98,211,144,35,75,212,16,173,94,213,16,180,41,214,16,26,44,215,16,150,9,216,144,193,2,217,16,120,233,217,0,210,84,232,128,180,241,232,128,165,225,233,128,150,209,234,0,150,20,236,0,179,186,236,0,164,170,237,0,149,154,238,0,90,212,239,0,119,122,240,0,60,180,241,0,89,90,242,0,30,148,243,0,59,58,244,128,58,125,245,0,29,26,246,128,85,164,13,0,12,139,14,128,55,132,15,128,40,116,16,128,25,100,17,128,10,84,18,0,54,77,19,128,236,51,20,128,221,35,21,128,206,19,22,128,191,3,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,0,130,140,30,0,115,124,31,0,100,108,32,0,85,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,82,0,0,0,1,2,1,2,1,2,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,10,0,0,0,176,19,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,165,132,0,224,168,132,0,224,251,132,0,16,17,133,0,224,3,0,0,0,196,1,0,0,240,1,0,0,248,1,0,0,36,0,0,0,0,106,23,202,0,113,226,202,0,76,247,203,0,83,194,204,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,4,0,0,0,255,255,255,255,128,234,240,36,255,255,255,255,134,6,212,113,170,170,170,170,170,170,170,170,38,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,0,8,0,0,0,0,0,0,250,6,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,39,133,0,224,43,133,0,224,80,133,0,224,87,133,0,16,98,133,0,224,2,0,0,0,0,0,0,0,0,0,0,0,1,0,54,0,120,133,0,224,2,0,0,0,96,115,255,255,0,0,0,0,1,0,54,0,125,133,0,224,2,0,0,0,156,247,126,137,176,221,230,48,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,228,67,0,0,0,0,0,0,80,70,0,0,0,0,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,130,133,0,224,135,133,0,16,137,133,0,224,2,0,0,0,11,2,0,0,13,2,0,0,1,0,0,0,152,195,47,237,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,232,68,0,0,0,0,0,0,80,70,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,149,133,0,224,152,133,0,224,155,133,0,16,157,133,0,224,5,0,0,0,152,5,127,137,64,237,5,24,48,114,219,24,224,150,3,73,208,143,206,73,5,0,0,0,1,2,1,2,1,170,170,170,6,0,0,0,232,53,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,169,133,0,224,175,133,0,16,178,133,0,224,54,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,144,64,78,210,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,54,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,16,14,0,112,121,3,0,96,205,7,0,112,190,133,0,224,247,133,0,16,6,134,0,224,2,0,0,0,144,157,255,255,0,0,0,0,1,0,54,0,21,134,0,224,88,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,88,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,1,0,0,96,216,7,0,112,26,134,0,224,115,134,0,16,138,134,0,224,88,0,0,0,160,72,166,158,144,21,187,159,160,42,134,160,144,247,154,161,160,26,137,203,16,38,97,210,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,170,170,170,170,88,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,128,143,255,127,1,0,0,96,216,7,0,112,153,134,0,224,243,134,0,16,10,135,0,224,2,0,0,0,25,2,0,0,42,2,0,0,25,0,0,0,0,252,5,145,56,4,98,218,176,39,159,76,224,43,151,77,96,226,125,78,160,139,253,78,224,13,119,79,224,254,102,80,96,42,96,81,224,224,70,82,96,12,64,83,224,194,38,84,96,238,31,85,224,164,6,86,96,208,255,86,224,134,230,87,96,178,223,88,224,104,198,89,96,148,191,90,96,133,175,91,224,176,168,92,96,103,143,93,224,146,136,94,96,73,111,95,224,116,104,96,2,0,0,0,255,255,255,255,0,201,61,110,170,170,170,170,170,170,170,170,26,0,0,0,2,1,3,4,3,4,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,170,170,14,0,0,0,128,176,0,0,0,0,0,0,72,94,255,255,0,0,0,0,0,95,255,255,0,0,0,0,80,101,255,255,0,0,0,0,80,101,255,255,16,14,0,0,208,182,0,0,0,0,0,0,208,182,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,25,135,0,224,28,135,0,224,54,135,0,224,59,135,0,16,67,135,0,224,5,0,0,0,232,0,0,0,235,0,0,0,32,2,0,0,33,2,0,0,43,2,0,0,97,0,0,0,232,178,180,176,88,135,81,177,104,229,120,178,96,229,67,179,104,199,88,180,96,199,35,181,104,169,56,182,96,169,3,183,104,139,24,184,224,197,236,184,104,109,248,185,224,167,204,186,104,79,216,187,224,232,227,188,232,246,174,189,224,202,195,190,232,216,142,191,224,172,163,192,232,186,110,193,224,142,131,194,232,156,78,195,224,112,99,196,232,126,46,197,96,141,76,198,232,96,14,199,96,111,44,200,104,125,247,200,64,154,218,210,224,253,24,9,224,165,172,9,96,165,239,10,224,252,158,11,224,193,216,12,224,222,126,13,224,163,184,14,224,192,94,15,224,133,152,16,224,162,62,17,224,103,120,18,224,132,30,19,224,73,88,20,224,102,254,20,224,43,56,22,96,131,231,22,96,72,33,24,96,101,199,24,96,42,1,26,96,71,167,26,96,12,225,27,96,41,135,28,96,238,192,29,96,11,103,30,96,208,160,31,96,237,70,32,96,178,128,33,224,9,48,34,224,206,105,35,224,235,15,36,96,1,46,37,224,66,2,38,96,227,13,39,224,36,226,39,96,197,237,40,224,6,194,41,96,167,205,42,96,35,171,43,96,137,173,44,96,5,139,45,96,107,141,46,96,231,106,47,96,77,109,48,96,201,74,49,224,105,86,50,96,171,42,51,224,75,54,52,96,141,10,53,224,45,22,54,224,169,243,54,224,15,246,55,224,139,211,56,224,241,213,57,224,109,179,58,96,14,191,59,224,79,147,60,96,240,158,61,224,49,115,62,96,210,126,63,96,78,92,64,96,180,94,65,96,48,60,66,96,150,62,67,96,18,28,68,96,120,30,69,96,244,251,69,96,90,254,70,224,133,247,71,96,60,222,72,2,0,0,0,255,255,255,255,168,76,183,65,170,170,170,170,170,170,170,170,98,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,170,170,12,0,0,0,216,163,0,0,0,0,0,0,184,161,0,0,0,0,0,0,184,161,0,0,8,7,0,0,184,161,0,0,16,14,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,192,168,0,112,34,0,0,96,217,7,0,112,90,135,0,224,96,135,0,224,194,135,0,224,199,135,0,16,225,135,0,224,3,0,0,0,96,54,67,204,240,108,43,210,128,215,158,84,4,0,0,0,255,255,255,255,40,82,182,86,255,255,255,255,144,164,237,114,170,170,170,170,170,170,170,170,170,170,170,170,5,0,0,0,2,3,1,3,4,170,170,170,10,0,0,0,216,145,0,0,0,0,0,0,144,126,0,0,0,0,0,0,240,137,0,0,0,0,0,0,160,140,0,0,0,0,0,0,176,154,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,251,135,0,224,255,135,0,224,7,136,0,16,10,136,0,224,2,0,0,0,34,2,0,0,45,2,0,0,70,0,0,0,188,150,218,210,224,253,24,9,224,165,172,9,96,165,239,10,224,252,158,11,224,193,216,12,224,222,126,13,224,163,184,14,224,192,94,15,224,133,152,16,224,162,62,17,224,103,120,18,224,132,30,19,224,73,88,20,224,102,254,20,224,43,56,22,96,131,231,22,96,72,33,24,96,101,199,24,96,42,1,26,96,71,167,26,96,12,225,27,96,41,135,28,96,238,192,29,96,11,103,30,96,208,160,31,96,237,70,32,96,178,128,33,224,9,48,34,224,206,105,35,224,235,15,36,96,1,46,37,224,66,2,38,96,227,13,39,224,36,226,39,96,197,237,40,224,6,194,41,96,167,205,42,96,35,171,43,96,137,173,44,96,5,139,45,96,107,141,46,96,231,106,47,96,77,109,48,96,201,74,49,224,105,86,50,96,171,42,51,224,75,54,52,96,141,10,53,224,45,22,54,224,169,243,54,224,15,246,55,224,139,211,56,224,241,213,57,224,109,179,58,96,14,191,59,224,79,147,60,96,240,158,61,224,49,115,62,96,210,126,63,96,78,92,64,96,180,94,65,96,48,60,66,96,150,62,67,96,18,28,68,96,120,30,69,96,244,251,69,96,90,254,70,224,133,247,71,96,60,222,72,2,0,0,0,255,255,255,255,132,68,183,65,170,170,170,170,170,170,170,170,71,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,8,0,0,0,252,171,0,0,0,0,0,0,68,172,0,0,0,0,0,0,76,179,0,0,0,0,0,0,76,179,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,76,179,0,112,136,18,0,96,217,7,0,112,28,136,0,224,31,136,0,224,102,136,0,224,107,136,0,16,126,136,0,224,2,0,0,0,140,1,0,0,47,2,0,0,110,0,0,0,136,64,199,185,64,60,209,253,176,250,146,254,192,205,204,255,176,220,114,0,192,80,117,1,176,73,64,2,192,50,85,3,176,43,32,4,64,79,62,5,176,13,0,6,64,188,11,7,176,239,223,7,64,19,254,8,176,209,191,9,64,245,221,10,48,238,168,11,64,215,189,12,48,208,136,13,64,185,157,14,48,178,104,15,192,213,134,16,48,148,72,17,192,183,102,18,48,118,40,19,192,153,70,20,176,146,17,21,192,123,38,22,176,116,241,22,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,48,200,23,89,192,206,143,89,48,170,247,90,192,176,111,91,176,103,169,92,192,124,116,93,176,73,137,94,192,94,84,95,176,43,105,96,192,64,52,97,176,13,73,98,64,93,29,99,176,239,40,100,192,4,244,100,170,170,170,170,110,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,170,170,10,0,0,0,120,153,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,160,171,255,127,127,3,0,96,232,7,0,112,148,136,0,224,151,136,0,224,7,137,0,16,36,137,0,224,23,0,0,0,180,194,245,146,64,153,121,7,64,204,250,7,208,247,210,25,192,218,194,26,208,217,178,27,192,188,162,28,80,246,155,29,192,158,130,30,80,216,123,31,64,187,107,32,80,186,91,33,64,157,75,34,80,156,59,35,64,127,43,36,80,126,27,37,64,97,11,38,80,96,251,38,64,67,235,39,208,124,228,40,64,81,129,41,208,72,233,42,64,51,97,43,170,170,170,170,23,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,204,157,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,3,0,48,0,66,0,54,0,58,137,0,224,83,137,0,16,90,137,0,224,1,0,0,0,176,153,253,78,2,0,0,0,255,255,255,255,136,85,55,126,2,0,0,0,1,2,170,170,6,0,0,0,120,95,255,255,0,0,0,0,80,101,255,255,0,0,0,0,208,182,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,102,137,0,224,104,137,0,224,107,137,0,16,109,137,0,224,29,0,0,0,192,177,19,154,224,23,59,54,96,250,215,54,96,52,36,56,96,220,183,56,224,44,17,75,96,15,174,75,96,234,194,76,224,65,114,77,96,204,162,78,224,196,26,79,96,174,130,80,224,166,250,80,224,202,107,82,208,122,218,82,96,231,84,84,224,106,186,84,96,201,52,86,224,76,154,86,224,229,29,88,224,46,122,88,224,199,253,89,224,16,90,90,224,169,221,91,224,242,57,92,96,198,198,93,224,212,25,94,96,7,222,95,96,241,2,96,170,170,170,170,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,192,167,0,0,0,0,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,3,0,48,0,66,0,54,0,123,137,0,224,155,137,0,16,164,137,0,224,4,0,0,0,128,76,164,182,80,196,24,30,224,10,23,43,80,244,113,43,170,170,170,170,170,170,170,170,4,0,0,0,3,1,2,1,8,0,0,0,0,172,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,3,0,48,0,66,0,54,0,176,137,0,224,183,137,0,16,185,137,0,224,1,0,0,0,4,72,80,148,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,124,129,255,255,0,0,0,0,112,129,255,255,0,0,0,0,3,0,48,0,66,0,54,0,199,137,0,224,203,137,0,16,205,137,0,224,4,0,0,0,55,2,0,0,73,2,0,0,74,2,0,0,90,2,0,0,1,0,0,0,140,51,79,148,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,244,149,0,0,0,0,0,0,176,154,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,215,137,0,224,220,137,0,224,223,137,0,16,225,137,0,224,2,0,0,0,56,2,0,0,77,2,0,0,18,0,0,0,224,149,55,203,240,137,46,208,0,190,55,236,240,248,54,239,0,0,155,251,140,39,63,254,0,30,1,255,240,88,93,255,0,44,151,0,112,117,70,1,0,14,119,2,112,87,38,3,0,151,112,7,240,209,204,7,0,145,8,12,44,135,124,12,128,148,191,13,112,163,101,14,4,0,0,0,255,255,255,255,204,197,225,20,255,255,255,255,76,45,54,126,170,170,170,170,170,170,170,170,170,170,170,170,20,0,0,0,2,3,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,52,54,255,255,0,0,0,0,144,126,0,0,0,0,0,0,180,135,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,237,137,0,224,240,137,0,224,3,138,0,224,11,138,0,16,17,138,0,224,3,0,0,0,57,2,0,0,58,2,0,0,113,2,0,0,5,0,0,0,72,67,5,187,88,113,33,187,200,61,137,203,56,73,97,210,72,115,141,213,2,0,0,0,255,255,255,255,190,112,224,116,170,170,170,170,170,170,170,170,6,0,0,0,1,2,1,2,1,3,170,170,8,0,0,0,2,108,255,255,0,0,0,0,88,108,255,255,0,0,0,0,88,108,255,255,16,14,0,0,96,115,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,36,138,0,224,40,138,0,224,46,138,0,224,51,138,0,16,54,138,0,224,2,0,0,0,49,2,0,0,59,2,0,0,3,0,0,0,128,219,44,195,192,4,86,18,176,57,5,47,170,170,170,170,3,0,0,0,1,2,3,170,8,0,0,0,0,0,0,0,0,0,0,0,64,87,255,255,0,0,0,0,80,101,255,255,0,0,0,0,208,182,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,71,138,0,224,74,138,0,224,79,138,0,16,81,138,0,224,2,0,0,0,0,242,85,18,160,43,5,47,2,0,0,0,255,255,255,255,128,72,55,126,3,0,0,0,1,2,3,170,8,0,0,0,128,108,255,255,0,0,0,0,0,106,255,255,0,0,0,0,96,115,255,255,0,0,0,0,224,196,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,97,138,0,224,100,138,0,224,103,138,0,16,105,138,0,224,7,0,0,0,208,149,17,152,240,249,57,160,208,53,237,193,96,10,234,201,240,14,17,210,80,27,134,255,64,103,139,54,4,0,0,0,255,255,255,255,180,180,225,20,255,255,255,255,52,28,54,126,170,170,170,170,9,0,0,0,3,4,1,4,2,1,4,5,4,170,170,170,12,0,0,0,76,71,255,255,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,204,152,0,0,0,0,0,0,176,154,0,0,0,0,0,0,192,168,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,121,138,0,224,129,138,0,224,135,138,0,16,139,138,0,224,2,0,0,0,22,2,0,0,62,2,0,0,5,0,0,0,208,53,237,193,96,10,234,201,240,129,70,207,80,27,134,255,64,14,118,44,2,0,0,0,255,255,255,255,32,24,54,126,6,0,0,0,4,3,2,4,1,5,170,170,12,0,0,0,224,156,0,0,0,0,0,0,64,87,255,255,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,176,154,0,0,0,0,0,0,192,168,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,159,138,0,224,162,138,0,224,168,138,0,224,171,138,0,16,174,138,0,224,1,0,0,0,72,76,80,148,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,56,125,255,255,0,0,0,0,104,122,255,255,0,0,0,0,3,0,48,0,66,0,54,0,195,138,0,224,199,138,0,16,201,138,0,224,4,0,0,0,4,43,231,163,200,233,144,204,240,39,67,210,232,168,33,17,170,170,170,170,170,170,170,170,170,170,170,170,4,0,0,0,2,1,2,3,8,0,0,0,124,156,0,0,0,0,0,0,144,126,0,0,0,0,0,0,184,161,0,0,0,0,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,211,138,0,224,219,138,0,16,221,138,0,224,2,0,0,0,76,106,161,223,96,184,166,245,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,180,96,255,255,0,0,0,0,160,96,255,255,0,0,0,0,80,101,255,255,0,0,0,0,3,0,48,0,66,0,54,0,235,138,0,224,239,138,0,16,241,138,0,224,7,0,0,0,128,248,65,220,104,202,15,9,104,231,181,9,104,230,15,86,240,175,152,93,240,160,136,94,240,145,120,95,2,0,0,0,255,255,255,255,136,23,54,126,170,170,170,170,170,170,170,170,170,170,170,170,8,0,0,0,3,4,5,4,1,2,1,2,12,0,0,0,120,157,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,128,157,0,0,0,0,0,0,184,161,0,0,0,0,0,0,184,161,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,154,0,112,103,0,0,96,229,7,0,112,253,138,0,224,5,139,0,224,11,139,0,16,14,139,0,224,7,0,0,0,116,196,245,146,80,186,230,14,192,187,86,15,80,156,198,16,64,239,55,17,240,75,160,50,112,68,24,51,170,170,170,170,7,0,0,0,1,2,1,2,1,2,1,170,6,0,0,0,12,156,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,3,0,48,0,66,0,54,0,38,139,0,224,47,139,0,16,50,139,0,224,4,0,0,0,65,2,0,0,70,2,0,0,78,2,0,0,119,2,0,0,1,0,0,0,8,251,5,145,2,0,0,0,255,255,255,255,8,200,61,110,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,120,177,0,0,0,0,0,0,248,95,255,255,0,0,0,0,80,101,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,62,139,0,224,67,139,0,224,69,139,0,224,75,139,0,16,77,139,0,224,4,0,0,0,255,255,255,255,108,207,225,20,255,255,255,255,236,54,54,126,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,148,44,255,255,0,0,0,0,20,126,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,80,0,66,0,54,0,92,139,0,224,99,139,0,16,101,139,0,224,1,0,0,0,8,66,68,53,2,0,0,0,255,255,255,255,244,46,55,126,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,12,134,255,255,0,0,0,0,120,136,255,255,0,0,0,0,128,143,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,113,139,0,224,115,139,0,224,119,139,0,16,121,139,0,224,5,0,0,0,229,0,0,0,46,2,0,0,75,2,0,0,82,2,0,0,85,2,0,0,4,0,0,0,255,255,255,255,8,90,182,86,255,255,255,255,144,164,237,114,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,248,137,0,0,0,0,0,0,240,137,0,0,0,0,0,0,160,140,0,0,0,0,0,0,4,0,74,0,80,0,66,0,54,0,170,170,135,139,0,224,141,139,0,224,147,139,0,16,149,139,0,224,27,0,0,0,200,96,161,223,40,27,172,16,24,181,63,17,32,129,121,18,24,151,31,19,32,99,89,20,24,121,255,20,32,69,57,22,152,149,232,22,160,97,34,24,152,119,200,24,160,67,2,26,152,89,168,26,160,37,226,27,152,59,136,28,160,7,194,29,152,29,104,30,160,233,161,31,152,255,71,32,160,203,129,33,24,28,49,34,32,232,106,35,24,254,16,36,32,202,74,37,24,224,240,37,32,172,42,39,24,194,208,39,2,0,0,0,255,255,255,255,200,220,76,124,170,170,170,170,28,0,0,0,1,2,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,184,187,0,0,0,0,0,0,56,106,255,255,0,0,0,0,88,108,255,255,0,0,0,0,96,115,255,255,0,0,0,0,96,115,255,255,8,7,0,0,4,0,48,0,80,0,66,0,54,0,170,170,163,139,0,224,191,139,0,224,195,139,0,16,203,139,0,224,1,0,0,0,184,85,80,148,1,0,0,0,1,170,170,170,4,0,0,0,200,115,255,255,0,0,0,0,96,115,255,255,0,0,0,0,3,0,48,0,66,0,54,0,221,139,0,224,223,139,0,16,225,139,0,224,5,0,0,0,52,2,0,0,63,2,0,0,80,2,0,0,83,2,0,0,84,2,0,0,2,0,0,0,255,255,255,255,204,18,54,126,170,170,170,170,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,52,162,0,0,0,0,0,0,192,168,0,0,0,0,0,0,4,0,74,0,80,0,66,0,54,0,170,170,235,139,0,224,241,139,0,224,247,139,0,16,249,139,0,224,10,0,0,0,64,156,69,210,16,224,17,239,208,71,251,55,208,125,211,56,80,8,4,58,64,184,114,58,80,234,227,59,64,154,82,60,208,215,29,88,208,32,122,88,170,170,170,170,170,170,170,170,170,170,170,170,10,0,0,0,1,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,64,173,0,0,0,0,0,0,112,173,0,0,0,0,0,0,208,182,0,0,0,0,0,0,208,182,0,0,16,14,0,0,3,0,48,0,66,0,54,0,5,140,0,224,19,140,0,16,23,140,0,224,2,0,0,0,192,199,255,255,0,0,0,0,1,0,54,0,37,140,0,224,150,0,0,0,224,42,177,128,208,13,161,129,224,12,145,130,208,239,128,131,224,238,112,132,80,12,106,133,96,11,90,134,80,238,73,135,96,237,57,136,80,208,41,137,96,207,25,138,80,178,9,139,96,177,249,139,80,148,233,140,96,147,217,141,208,176,210,142,96,117,185,143,208,146,178,144,224,145,162,145,208,116,146,146,224,115,130,147,208,86,114,148,224,85,98,149,208,56,82,150,224,55,66,151,208,26,50,152,224,25,34,153,80,55,27,154,96,54,11,155,80,25,251,155,96,24,235,156,80,251,218,157,96,250,202,158,80,221,186,159,96,220,170,160,80,191,154,161,96,190,138,162,208,219,131,163,96,160,106,164,208,189,99,165,224,188,83,166,208,159,67,167,224,158,51,168,208,129,35,169,224,128,19,170,208,99,3,171,224,98,243,171,208,69,227,172,224,68,211,173,80,98,204,174,224,38,179,175,80,68,172,176,96,67,156,177,80,38,140,178,96,37,124,179,80,8,108,180,96,7,92,181,80,234,75,182,96,233,59,183,80,204,43,184,96,203,27,185,208,232,20,186,224,231,4,187,208,202,244,187,224,201,228,188,208,172,212,189,224,171,196,190,208,142,180,191,224,141,164,192,208,112,148,193,224,111,132,194,80,141,125,195,224,81,100,196,80,111,93,197,96,110,77,198,80,81,61,199,96,80,45,200,80,51,29,201,96,50,13,202,80,21,253,202,96,20,237,203,80,247,220,204,96,246,204,205,208,19,198,206,224,18,182,207,208,245,165,208,224,244,149,209,208,215,133,210,224,214,117,211,208,185,101,212,224,184,85,213,208,155,69,214,224,154,53,215,80,184,46,216,224,124,21,217,80,154,14,218,96,153,254,218,80,124,238,219,96,123,222,220,80,94,206,221,96,93,190,222,80,64,174,223,96,63,158,224,80,34,142,225,96,33,126,226,208,62,119,227,96,3,94,228,208,32,87,229,224,31,71,230,208,2,55,231,224,1,39,232,208,228,22,233,224,227,6,234,208,198,246,234,224,197,230,235,208,168,214,236,224,167,198,237,80,197,191,238,96,196,175,239,80,167,159,240,96,166,143,241,80,137,127,242,96,136,111,243,80,107,95,244,96,106,79,245,80,77,63,246,96,76,47,247,208,105,40,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,11,141,7,80,128,53,9,224,134,173,9,80,120,240,10,96,119,224,11,208,148,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,205,3,0,96,185,7,0,112,42,140,0,224,195,140,0,16,234,140,0,224,2,0,0,0,160,171,255,255,0,0,0,0,1,0,54,0,249,140,0,224,150,0,0,0,0,71,177,128,240,41,161,129,0,41,145,130,240,11,129,131,0,11,113,132,112,40,106,133,128,39,90,134,112,10,74,135,128,9,58,136,112,236,41,137,128,235,25,138,112,206,9,139,128,205,249,139,112,176,233,140,128,175,217,141,240,204,210,142,128,145,185,143,240,174,178,144,0,174,162,145,240,144,146,146,0,144,130,147,240,114,114,148,0,114,98,149,240,84,82,150,0,84,66,151,240,54,50,152,0,54,34,153,112,83,27,154,128,82,11,155,112,53,251,155,128,52,235,156,112,23,219,157,128,22,203,158,112,249,186,159,128,248,170,160,112,219,154,161,128,218,138,162,240,247,131,163,128,188,106,164,240,217,99,165,0,217,83,166,240,187,67,167,0,187,51,168,240,157,35,169,0,157,19,170,240,127,3,171,0,127,243,171,240,97,227,172,0,97,211,173,112,126,204,174,0,67,179,175,112,96,172,176,128,95,156,177,112,66,140,178,128,65,124,179,112,36,108,180,128,35,92,181,112,6,76,182,128,5,60,183,112,232,43,184,128,231,27,185,240,4,21,186,0,4,5,187,240,230,244,187,0,230,228,188,240,200,212,189,0,200,196,190,240,170,180,191,0,170,164,192,240,140,148,193,0,140,132,194,112,169,125,195,0,110,100,196,112,139,93,197,128,138,77,198,112,109,61,199,128,108,45,200,112,79,29,201,128,78,13,202,112,49,253,202,128,48,237,203,112,19,221,204,128,18,205,205,240,47,198,206,0,47,182,207,240,17,166,208,0,17,150,209,240,243,133,210,0,243,117,211,240,213,101,212,0,213,85,213,240,183,69,214,0,183,53,215,112,212,46,216,0,153,21,217,112,182,14,218,128,181,254,218,112,152,238,219,128,151,222,220,112,122,206,221,128,121,190,222,112,92,174,223,128,91,158,224,112,62,142,225,128,61,126,226,240,90,119,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,0,23,233,0,0,7,234,240,226,246,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,112,105,63,246,128,104,47,247,240,133,40,248,128,74,15,249,240,103,8,250,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,156,53,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,205,3,0,96,185,7,0,112,254,140,0,224,151,141,0,16,190,141,0,224,2,0,0,0,176,185,255,255,0,0,0,0,1,0,54,0,205,141,0,224,150,0,0,0,240,56,177,128,224,27,161,129,240,26,145,130,224,253,128,131,240,252,112,132,96,26,106,133,112,25,90,134,96,252,73,135,112,251,57,136,96,222,41,137,112,221,25,138,96,192,9,139,112,191,249,139,96,162,233,140,112,161,217,141,224,190,210,142,112,131,185,143,224,160,178,144,240,159,162,145,224,130,146,146,240,129,130,147,224,100,114,148,240,99,98,149,224,70,82,150,240,69,66,151,224,40,50,152,240,39,34,153,96,69,27,154,112,68,11,155,96,39,251,155,112,38,235,156,96,9,219,157,112,8,203,158,96,235,186,159,112,234,170,160,96,205,154,161,112,204,138,162,224,233,131,163,112,174,106,164,224,203,99,165,240,202,83,166,224,173,67,167,240,172,51,168,224,143,35,169,240,142,19,170,224,113,3,171,240,112,243,171,224,83,227,172,240,82,211,173,96,112,204,174,240,52,179,175,96,82,172,176,112,81,156,177,96,52,140,178,112,51,124,179,96,22,108,180,112,21,92,181,96,248,75,182,112,247,59,183,96,218,43,184,112,217,27,185,224,246,20,186,240,245,4,187,224,216,244,187,240,215,228,188,224,186,212,189,240,185,196,190,224,156,180,191,240,155,164,192,224,126,148,193,240,125,132,194,96,155,125,195,240,95,100,196,96,125,93,197,112,124,77,198,96,95,61,199,112,94,45,200,96,65,29,201,112,64,13,202,96,35,253,202,112,34,237,203,96,5,221,204,112,4,205,205,224,33,198,206,240,32,182,207,224,3,166,208,240,2,150,209,224,229,133,210,240,228,117,211,224,199,101,212,240,198,85,213,224,169,69,214,240,168,53,215,96,198,46,216,240,138,21,217,96,168,14,218,112,167,254,218,96,138,238,219,112,137,222,220,96,108,206,221,112,107,190,222,96,78,174,223,112,77,158,224,96,48,142,225,112,47,126,226,224,76,119,227,112,17,94,228,224,46,87,229,240,45,71,230,224,16,55,231,240,15,39,232,224,242,22,233,240,241,6,234,224,212,246,234,240,211,230,235,224,182,214,236,240,181,198,237,96,211,191,238,112,210,175,239,96,181,159,240,112,180,143,241,96,151,127,242,112,150,111,243,96,121,95,244,112,120,79,245,96,91,63,246,112,90,47,247,224,119,40,248,112,60,15,249,224,89,8,250,240,88,248,250,224,59,232,251,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,96,142,53,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,176,185,255,127,205,3,0,96,185,7,0,112,210,141,0,224,107,142,0,16,146,142,0,224,2,0,0,0,96,115,255,255,0,0,0,0,1,0,54,0,161,142,0,224,2,0,0,0,144,157,255,255,0,0,0,0,1,0,54,0,166,142,0,224,150,0,0,0,16,85,177,128,0,56,161,129,16,55,145,130,0,26,129,131,16,25,113,132,128,54,106,133,144,53,90,134,128,24,74,135,144,23,58,136,128,250,41,137,144,249,25,138,128,220,9,139,144,219,249,139,128,190,233,140,144,189,217,141,0,219,210,142,144,159,185,143,0,189,178,144,16,188,162,145,0,159,146,146,16,158,130,147,0,129,114,148,16,128,98,149,0,99,82,150,16,98,66,151,0,69,50,152,16,68,34,153,128,97,27,154,144,96,11,155,128,67,251,155,144,66,235,156,128,37,219,157,144,36,203,158,128,7,187,159,144,6,171,160,128,233,154,161,144,232,138,162,0,6,132,163,144,202,106,164,0,232,99,165,16,231,83,166,0,202,67,167,16,201,51,168,0,172,35,169,16,171,19,170,0,142,3,171,16,141,243,171,0,112,227,172,16,111,211,173,128,140,204,174,16,81,179,175,128,110,172,176,144,109,156,177,128,80,140,178,144,79,124,179,128,50,108,180,144,49,92,181,128,20,76,182,144,19,60,183,128,246,43,184,144,245,27,185,0,19,21,186,16,18,5,187,0,245,244,187,16,244,228,188,0,215,212,189,16,214,196,190,0,185,180,191,16,184,164,192,0,155,148,193,16,154,132,194,128,183,125,195,16,124,100,196,128,153,93,197,144,152,77,198,128,123,61,199,144,122,45,200,128,93,29,201,144,92,13,202,128,63,253,202,144,62,237,203,128,33,221,204,144,32,205,205,0,62,198,206,16,61,182,207,0,32,166,208,16,31,150,209,0,2,134,210,16,1,118,211,0,228,101,212,16,227,85,213,0,198,69,214,16,197,53,215,128,226,46,216,16,167,21,217,128,196,14,218,144,195,254,218,128,166,238,219,144,165,222,220,128,136,206,221,144,135,190,222,128,106,174,223,144,105,158,224,128,76,142,225,144,75,126,226,0,105,119,227,144,45,94,228,0,75,87,229,16,74,71,230,0,45,55,231,16,44,39,232,0,15,23,233,16,14,7,234,0,241,246,234,16,240,230,235,0,211,214,236,16,210,198,237,128,239,191,238,144,238,175,239,128,209,159,240,144,208,143,241,128,179,127,242,144,178,111,243,128,149,95,244,144,148,79,245,128,119,63,246,144,118,47,247,0,148,40,248,144,88,15,249,0,118,8,250,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,170,53,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,205,3,0,96,185,7,0,112,171,142,0,224,67,143,0,16,106,143,0,224,2,0,0,0,128,143,255,255,0,0,0,0,1,0,54,0,121,143,0,224,150,0,0,0,32,99,177,128,16,70,161,129,32,69,145,130,16,40,129,131,32,39,113,132,144,68,106,133,160,67,90,134,144,38,74,135,160,37,58,136,144,8,42,137,160,7,26,138,144,234,9,139,160,233,249,139,144,204,233,140,160,203,217,141,16,233,210,142,160,173,185,143,16,203,178,144,32,202,162,145,16,173,146,146,32,172,130,147,16,143,114,148,32,142,98,149,16,113,82,150,32,112,66,151,16,83,50,152,32,82,34,153,144,111,27,154,160,110,11,155,144,81,251,155,160,80,235,156,144,51,219,157,160,50,203,158,144,21,187,159,160,20,171,160,144,247,154,161,160,246,138,162,16,20,132,163,160,216,106,164,16,246,99,165,32,245,83,166,16,216,67,167,32,215,51,168,16,186,35,169,32,185,19,170,16,156,3,171,32,155,243,171,16,126,227,172,32,125,211,173,144,154,204,174,32,95,179,175,144,124,172,176,160,123,156,177,144,94,140,178,160,93,124,179,144,64,108,180,160,63,92,181,144,34,76,182,160,33,60,183,144,4,44,184,160,3,28,185,16,33,21,186,32,32,5,187,16,3,245,187,32,2,229,188,16,229,212,189,32,228,196,190,16,199,180,191,32,198,164,192,16,169,148,193,32,168,132,194,144,197,125,195,32,138,100,196,144,167,93,197,160,166,77,198,144,137,61,199,160,136,45,200,144,107,29,201,160,106,13,202,144,77,253,202,160,76,237,203,144,47,221,204,160,46,205,205,16,76,198,206,32,75,182,207,16,46,166,208,32,45,150,209,16,16,134,210,32,15,118,211,16,242,101,212,32,241,85,213,16,212,69,214,32,211,53,215,144,240,46,216,32,181,21,217,144,210,14,218,160,209,254,218,144,180,238,219,160,179,222,220,144,150,206,221,160,149,190,222,144,120,174,223,160,119,158,224,144,90,142,225,160,89,126,226,16,119,119,227,160,59,94,228,16,89,87,229,32,88,71,230,16,59,55,231,32,58,39,232,16,29,23,233,32,28,7,234,16,255,246,234,32,254,230,235,16,225,214,236,32,224,198,237,144,253,191,238,160,252,175,239,144,223,159,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,184,53,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,128,143,255,127,205,3,0,96,185,7,0,112,126,143,0,224,23,144,0,16,62,144,0,224,2,0,0,0,112,129,255,255,0,0,0,0,1,0,54,0,77,144,0,224,150,0,0,0,48,113,177,128,32,84,161,129,48,83,145,130,32,54,129,131,48,53,113,132,160,82,106,133,176,81,90,134,160,52,74,135,176,51,58,136,160,22,42,137,176,21,26,138,160,248,9,139,176,247,249,139,160,218,233,140,176,217,217,141,32,247,210,142,176,187,185,143,32,217,178,144,48,216,162,145,32,187,146,146,48,186,130,147,32,157,114,148,48,156,98,149,32,127,82,150,48,126,66,151,32,97,50,152,48,96,34,153,160,125,27,154,176,124,11,155,160,95,251,155,176,94,235,156,160,65,219,157,176,64,203,158,160,35,187,159,176,34,171,160,160,5,155,161,176,4,139,162,32,34,132,163,176,230,106,164,32,4,100,165,48,3,84,166,32,230,67,167,48,229,51,168,32,200,35,169,48,199,19,170,32,170,3,171,48,169,243,171,32,140,227,172,48,139,211,173,160,168,204,174,48,109,179,175,160,138,172,176,176,137,156,177,160,108,140,178,176,107,124,179,160,78,108,180,176,77,92,181,160,48,76,182,176,47,60,183,160,18,44,184,176,17,28,185,32,47,21,186,48,46,5,187,32,17,245,187,48,16,229,188,32,243,212,189,48,242,196,190,32,213,180,191,48,212,164,192,32,183,148,193,48,182,132,194,160,211,125,195,48,152,100,196,160,181,93,197,176,180,77,198,160,151,61,199,176,150,45,200,160,121,29,201,176,120,13,202,160,91,253,202,176,90,237,203,160,61,221,204,176,60,205,205,32,90,198,206,48,89,182,207,32,60,166,208,48,59,150,209,32,30,134,210,48,29,118,211,32,0,102,212,48,255,85,213,32,226,69,214,48,225,53,215,160,254,46,216,48,195,21,217,160,224,14,218,176,223,254,218,160,194,238,219,176,193,222,220,160,164,206,221,176,163,190,222,160,134,174,223,176,133,158,224,160,104,142,225,176,103,126,226,32,133,119,227,176,73,94,228,32,103,87,229,48,102,71,230,32,73,55,231,48,72,39,232,32,43,23,233,48,42,7,234,32,13,247,234,48,12,231,235,32,239,214,236,48,238,198,237,160,11,192,238,176,10,176,239,160,237,159,240,176,236,143,241,160,207,127,242,176,206,111,243,160,177,95,244,176,176,79,245,160,147,63,246,176,146,47,247,32,176,40,248,176,116,15,249,32,146,8,250,48,145,248,250,32,116,232,251,48,115,216,252,32,86,200,253,48,85,184,254,32,56,168,255,48,55,152,0,32,26,136,1,48,25,120,2,160,54,113,3,176,53,97,4,160,24,81,5,176,23,65,6,160,250,48,7,176,81,141,7,160,198,53,9,48,205,173,9,160,190,240,10,176,189,224,11,32,219,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,112,129,255,127,205,3,0,96,185,7,0,112,82,144,0,224,235,144,0,16,18,145,0,224,40,0,0,0,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,40,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,0,0,0,112,7,0,0,96,205,7,0,112,33,145,0,224,75,145,0,16,86,145,0,224,126,2,0,0,101,1,0,112,113,1,0,112,64,0,0,112,18,0,0,112,60,0,0,112,226,23,0,32,5,0,0,112,48,0,0,112,38,24,0,32,48,0,0,112,48,0,0,112,5,0,0,112,36,0,0,112,5,0,0,112,60,24,0,32,43,0,0,112,36,0,0,112,43,0,0,112,244,24,0,32,106,26,0,32,186,26,0,32,5,0,0,112,5,0,0,112,48,0,0,112,48,0,0,112,36,0,0,112,32,28,0,32,5,0,0,112,43,0,0,112,43,0,0,112,67,28,0,32,130,28,0,32,48,0,0,112,190,28,0,32,43,0,0,112,36,0,0,112,222,28,0,32,36,0,0,112,5,0,0,112,36,0,0,112,43,0,0,112,43,0,0,112,36,0,0,112,250,28,0,32,30,0,0,112,30,0,0,112,48,0,0,112,16,29,0,32,55,29,0,32,76,29,0,32,36,0,0,112,5,0,0,112,5,0,0,112,36,0,0,112,102,29,0,32,5,0,0,112,165,29,0,32,230,29,0,32,67,30,0,32,202,30,0,32,86,31,0,32,191,0,0,112,191,0,0,112,172,31,0,32,21,32,0,32,129,32,0,32,65,0,0,112,230,32,0,32,76,33,0,32,181,33,0,32,29,34,0,32,133,34,0,32,232,34,0,32,81,35,0,32,185,35,0,32,33,36,0,32,137,36,0,32,191,0,0,112,1,37,0,32,183,0,0,112,59,0,0,112,99,37,0,32,201,37,0,32,237,37,0,32,35,38,0,32,174,38,0,32,191,0,0,112,232,38,0,32,252,38,0,32,130,39,0,32,64,0,0,112,252,39,0,32,130,40,0,32,202,40,0,32,227,40,0,32,65,0,0,112,248,40,0,32,183,0,0,112,233,41,0,32,78,42,0,32,175,42,0,32,183,0,0,112,67,0,0,112,206,42,0,32,186,0,0,112,78,43,0,32,191,0,0,112,138,43,0,32,22,44,0,32,116,44,0,32,8,45,0,32,137,45,0,32,191,0,0,112,18,46,0,32,82,46,0,32,105,46,0,32,218,0,0,112,45,47,0,32,132,0,0,112,113,47,0,32,227,47,0,32,181,0,0,112,196,48,0,32,63,49,0,32,191,0,0,112,191,0,0,112,98,49,0,32,122,49,0,32,146,49,0,32,117,50,0,32,24,51,0,32,71,51,0,32,145,51,0,32,37,52,0,32,118,52,0,32,218,52,0,32,37,53,0,32,88,53,0,32,170,53,0,32,3,54,0,32,132,0,0,112,122,54,0,32,242,54,0,32,37,55,0,32,68,0,0,112,166,55,0,32,89,56,0,32,229,56,0,32,133,0,0,112,191,0,0,112,252,56,0,32,37,57,0,32,219,57,0,32,146,0,0,112,191,0,0,112,38,58,0,32,79,58,0,32,139,58,0,32,191,0,0,112,160,58,0,32,216,58,0,32,67,59,0,32,70,0,0,112,190,59,0,32,28,60,0,32,108,60,0,32,220,60,0,32,40,61,0,32,246,61,0,32,82,62,0,32,215,62,0,32,219,0,0,112,191,0,0,112,219,0,0,112,199,63,0,32,219,0,0,112,78,64,0,32,153,64,0,32,44,65,0,32,182,65,0,32,66,66,0,32,206,66,0,32,55,67,0,32,84,67,0,32,142,0,0,112,112,67,0,32,150,67,0,32,229,67,0,32,191,0,0,112,198,0,0,112,31,68,0,32,76,68,0,32,253,68,0,32,224,0,0,112,108,69,0,32,177,69,0,32,6,70,0,32,116,70,0,32,181,70,0,32,67,0,0,112,218,0,0,112,237,70,0,32,168,71,0,32,218,71,0,32,98,72,0,32,234,72,0,32,110,0,0,112,110,73,0,32,191,0,0,112,118,74,0,32,191,0,0,112,191,0,0,112,191,0,0,112,191,0,0,112,171,74,0,32,197,74,0,32,0,75,0,32,219,0,0,112,145,75,0,32,134,76,0,32,191,0,0,112,68,77,0,32,191,0,0,112,218,77,0,32,143,78,0,32,18,79,0,32,113,0,0,112,60,79,0,32,85,79,0,32,75,2,0,112,218,79,0,32,244,79,0,32,43,2,0,112,112,80,0,32,126,80,0,32,43,2,0,112,55,1,0,112,142,80,0,32,168,80,0,32,191,1,0,112,55,1,0,112,252,80,0,32,123,81,0,32,227,81,0,32,54,82,0,32,138,82,0,32,194,82,0,32,246,0,0,112,28,83,0,32,115,83,0,32,51,1,0,112,220,83,0,32,242,83,0,32,92,84,0,32,192,84,0,32,28,85,0,32,35,1,0,112,32,1,0,112,134,85,0,32,218,85,0,32,60,1,0,112,60,1,0,112,253,85,0,32,9,1,0,112,168,86,0,32,203,86,0,32,228,86,0,32,250,86,0,32,45,87,0,32,171,87,0,32,229,89,0,32,60,1,0,112,37,92,0,32,75,92,0,32,185,92,0,32,10,93,0,32,114,93,0,32,204,1,0,112,143,93,0,32,164,93,0,32,61,94,0,32,88,94,0,32,191,94,0,32,226,94,0,32,75,1,0,112,248,94,0,32,29,1,0,112,102,95,0,32,137,95,0,32,242,95,0,32,61,1,0,112,32,96,0,32,55,1,0,112,38,1,0,112,145,96,0,32,250,96,0,32,16,97,0,32,54,97,0,32,11,1,0,112,140,97,0,32,247,97,0,32,96,98,0,32,198,98,0,32,28,99,0,32,252,0,0,112,57,99,0,32,76,99,0,32,96,99,0,32,186,99,0,32,18,100,0,32,80,1,0,112,38,100,0,32,17,1,0,112,146,100,0,32,197,100,0,32,254,100,0,32,63,101,0,32,101,101,0,32,206,101,0,32,24,102,0,32,77,102,0,32,160,102,0,32,13,103,0,32,24,1,0,112,69,1,0,112,36,103,0,32,70,103,0,32,176,103,0,32,40,1,0,112,2,104,0,32,73,1,0,112,22,104,0,32,134,104,0,32,252,0,0,112,238,104,0,32,86,105,0,32,108,105,0,32,216,105,0,32,59,106,0,32,9,107,0,32,153,107,0,32,222,107,0,32,250,107,0,32,88,1,0,112,56,108,0,32,191,1,0,112,4,109,0,32,5,0,0,112,26,109,0,32,5,0,0,112,133,109,0,32,113,1,0,112,7,110,0,32,56,110,0,32,193,110,0,32,113,1,0,112,103,1,0,112,240,110,0,32,28,111,0,32,171,111,0,32,106,1,0,112,225,111,0,32,66,112,0,32,200,112,0,32,113,1,0,112,101,1,0,112,252,112,0,32,97,1,0,112,96,1,0,112,128,113,0,32,103,1,0,112,107,1,0,112,110,1,0,112,98,1,0,112,204,0,0,112,9,1,0,112,198,0,0,112,177,0,0,112,204,0,0,112,157,0,0,112,43,0,0,112,219,113,0,32,209,0,0,112,98,0,0,112,91,114,0,32,60,1,0,112,129,0,0,112,224,0,0,112,196,0,0,112,219,0,0,112,113,0,0,112,209,0,0,112,221,0,0,112,196,0,0,112,223,0,0,112,202,0,0,112,47,2,0,112,130,0,0,112,48,0,0,112,222,1,0,112,159,114,0,32,172,114,0,32,35,115,0,32,18,0,0,112,199,1,0,112,59,115,0,32,149,1,0,112,66,115,0,32,71,115,0,32,76,115,0,32,81,115,0,32,86,115,0,32,91,115,0,32,96,115,0,32,101,115,0,32,106,115,0,32,111,115,0,32,116,115,0,32,121,115,0,32,149,1,0,112,126,115,0,32,131,115,0,32,136,115,0,32,141,115,0,32,146,115,0,32,151,115,0,32,156,115,0,32,161,115,0,32,166,115,0,32,171,115,0,32,176,115,0,32,181,115,0,32,186,115,0,32,191,115,0,32,149,1,0,112,149,1,0,112,181,1,0,112,205,115,0,32,181,1,0,112,212,115,0,32,181,1,0,112,193,1,0,112,4,116,0,32,111,116,0,32,201,116,0,32,212,1,0,112,21,117,0,32,133,117,0,32,224,1,0,112,37,118,0,32,129,118,0,32,237,118,0,32,248,1,0,112,95,119,0,32,191,1,0,112,52,120,0,32,226,120,0,32,212,1,0,112,40,121,0,32,212,1,0,112,218,121,0,32,212,1,0,112,91,122,0,32,209,1,0,112,191,122,0,32,13,123,0,32,221,123,0,32,190,1,0,112,199,124,0,32,193,1,0,112,73,125,0,32,205,125,0,32,202,1,0,112,66,126,0,32,222,1,0,112,197,126,0,32,43,1,0,112,191,1,0,112,95,127,0,32,190,1,0,112,201,127,0,32,47,128,0,32,181,128,0,32,33,129,0,32,226,1,0,112,190,1,0,112,131,129,0,32,254,129,0,32,190,1,0,112,81,130,0,32,191,1,0,112,176,130,0,32,4,131,0,32,197,1,0,112,116,131,0,32,209,1,0,112,248,1,0,112,226,1,0,112,206,131,0,32,52,132,0,32,160,132,0,32,28,133,0,32,190,1,0,112,209,1,0,112,107,133,0,32,123,133,0,32,212,1,0,112,212,1,0,112,149,1,0,112,149,1,0,112,149,1,0,112,149,1,0,112,149,1,0,112,128,133,0,32,18,1,0,112,132,0,0,112,32,1,0,112,5,0,0,112,48,0,0,112,144,133,0,32,252,0,0,112,80,1,0,112,48,0,0,112,13,2,0,112,11,1,0,112,162,133,0,32,185,133,0,32,48,0,0,112,11,1,0,112,66,1,0,112,24,1,0,112,70,1,0,112,143,0,0,112,70,1,0,112,62,2,0,112,56,0,0,112,11,134,0,32,42,2,0,112,24,134,0,32,143,134,0,32,218,0,0,112,161,0,0,112,166,0,0,112,82,1,0,112,43,2,0,112,43,2,0,112,45,2,0,112,110,0,0,112,27,1,0,112,186,0,0,112,60,1,0,112,191,0,0,112,152,0,0,112,15,135,0,32,82,135,0,32,238,135,0,32,21,136,0,32,135,136,0,32,75,2,0,112,47,137,0,32,97,137,0,32,59,2,0,112,116,137,0,32,171,137,0,32,80,2,0,112,194,137,0,32,210,137,0,32,230,137,0,32,28,138,0,32,63,138,0,32,57,2,0,112,90,138,0,32,114,138,0,32,152,138,0,32,187,138,0,32,80,2,0,112,206,138,0,32,70,2,0,112,230,138,0,32,248,138,0,32,27,139,0,32,57,139,0,32,84,139,0,32,108,139,0,32,128,139,0,32,55,2,0,112,55,2,0,112,156,139,0,32,214,139,0,32,56,2,0,112,70,2,0,112,230,139,0,32,254,139,0,32,32,140,0,32,75,2,0,112,80,2,0,112,80,2,0,112,75,2,0,112,245,1,0,112,210,1,0,112,63,1,0,112,59,1,0,112,55,2,0,112,61,1,0,112,40,140,0,32,239,140,0,32,252,140,0,32,195,141,0,32,208,141,0,32,151,142,0,32,164,142,0,32,169,142,0,32,111,143,0,32,124,143,0,32,67,144,0,32,80,144,0,32,23,145,0,32,204,1,0,112,181,1,0,112,60,0,0,112,59,0,0,112,186,0,0,112,98,0,0,112,132,0,0,112,174,0,0,112,57,2,0,112,133,0,0,112,111,0,0,112,110,0,0,112,152,0,0,112,152,0,0,112,70,2,0,112,181,1,0,112,181,1,0,112,17,1,0,112,219,1,0,112,91,145,0,32,181,1,0,112,5,0,132,0,19,1,138,0,32,0,42,0,121,39,0,144,248,41,0,144,163,23,0,32,139,3,0,96,101,145,0,128
+	144,0,218,39,20,0,0,0,0,0,2,0,67,109,110,68,1,0,0,0,3,0,0,0,32,67,111,112,121,114,105,103,104,116,32,40,67,41,32,50,48,49,54,32,97,110,100,32,108,97,116,101,114,58,32,85,110,105,99,111,100,101,44,32,73,110,99,46,32,97,110,100,32,111,116,104,101,114,115,46,32,76,105,99,101,110,115,101,32,38,32,116,101,114,109,115,32,111,102,32,117,115,101,58,32,104,116,116,112,58,47,47,119,119,119,46,117,110,105,99,111,100,101,46,111,114,103,47,99,111,112,121,114,105,103,104,116,46,104,116,109,108,32,0,190,0,0,0,244,5,0,0,240,22,0,0,9,6,0,0,32,52,0,0,30,6,0,0,48,54,0,0,51,6,0,0,16,169,0,0,75,6,0,0,96,169,0,0,97,6,0,0,192,169,0,0,118,6,0,0,176,197,0,0,139,6,0,0,48,30,1,0,160,6,0,0,16,58,1,0,181,6,0,0,16,60,1,0,202,6,0,0,128,191,1,0,223,6,0,0,80,2,2,0,244,6,0,0,128,34,2,0,9,7,0,0,192,112,2,0,35,7,0,0,80,139,2,0,56,7,0,0,48,176,2,0,78,7,0,0,112,208,2,0,100,7,0,0,128,210,2,0,121,7,0,0,224,246,2,0,142,7,0,0,112,31,3,0,163,7,0,0,176,141,3,0,184,7,0,0,48,224,3,0,206,7,0,0,128,224,3,0,230,7,0,0,80,6,4,0,6,8,0,0,208,6,4,0,28,8,0,0,128,48,4,0,49,8,0,0,208,48,4,0,70,8,0,0,48,94,4,0,91,8,0,0,112,96,4,0,112,8,0,0,192,96,4,0,136,8,0,0,16,97,4,0,166,8,0,0,144,159,4,0,187,8,0,0,224,196,4,0,208,8,0,0,32,41,5,0,230,8,0,0,112,41,5,0,8,9,0,0,240,41,5,0,29,9,0,0,64,83,5,0,50,9,0,0,80,114,5,0,74,9,0,0,128,148,5,0,95,9,0,0,208,148,5,0,121,9,0,0,112,193,5,0,142,9,0,0,160,74,6,0,164,9,0,0,224,106,6,0,185,9,0,0,64,217,6,0,206,9,0,0,144,217,6,0,230,9,0,0,128,218,6,0,251,9,0,0,48,250,6,0,16,10,0,0,128,250,6,0,37,10,0,0,48,61,7,0,58,10,0,0,0,88,7,0,79,10,0,0,208,125,7,0,101,10,0,0,224,169,7,0,122,10,0,0,192,231,7,0,146,10,0,0,16,232,7,0,167,10,0,0,224,2,8,0,188,10,0,0,128,82,8,0,210,10,0,0,32,122,8,0,231,10,0,0,224,195,8,0,252,10,0,0,112,222,8,0,17,11,0,0,192,222,8,0,41,11,0,0,16,223,8,0,62,11,0,0,80,16,9,0,83,11,0,0,176,16,9,0,107,11,0,0,16,17,9,0,128,11,0,0,240,112,9,0,149,11,0,0,64,113,9,0,170,11,0,0,160,113,9,0,194,11,0,0,0,114,9,0,215,11,0,0,0,174,11,0,236,11,0,0,0,176,11,0,1,12,0,0,64,204,11,0,22,12,0,0,0,40,12,0,43,12,0,0,192,75,12,0,64,12,0,0,192,209,12,0,85,12,0,0,96,61,17,0,107,12,0,0,192,88,17,0,128,12,0,0,240,131,17,0,149,12,0,0,128,159,17,0,170,12,0,0,208,159,17,0,192,12,0,0,48,195,17,0,213,12,0,0,80,28,18,0,234,12,0,0,96,30,18,0,255,12,0,0,112,70,18,0,20,13,0,0,96,107,18,0,41,13,0,0,160,135,18,0,62,13,0,0,112,165,18,0,83,13,0,0,160,167,18,0,104,13,0,0,0,168,18,0,125,13,0,0,176,195,18,0,146,13,0,0,0,196,18,0,167,13,0,0,80,228,18,0,188,13,0,0,208,125,19,0,209,13,0,0,48,126,19,0,233,13,0,0,128,126,19,0,254,13,0,0,128,128,19,0,19,14,0,0,208,128,19,0,40,14,0,0,48,129,19,0,61,14,0,0,192,239,19,0,85,14,0,0,32,240,19,0,106,14,0,0,112,24,20,0,127,14,0,0,224,51,20,0,148,14,0,0,64,80,20,0,174,14,0,0,144,80,20,0,203,14,0,0,224,80,20,0,227,14,0,0,80,81,20,0,248,14,0,0,96,121,20,0,13,15,0,0,0,157,20,0,34,15,0,0,80,157,20,0,62,15,0,0,48,163,20,0,83,15,0,0,80,198,20,0,106,15,0,0,176,97,25,0,127,15,0,0,176,99,25,0,148,15,0,0,0,100,25,0,169,15,0,0,192,213,25,0,190,15,0,0,32,214,25,0,214,15,0,0,144,214,25,0,238,15,0,0,0,215,25,0,6,16,0,0,112,215,25,0,27,16,0,0,128,13,26,0,48,16,0,0,176,113,26,0,69,16,0,0,144,147,26,0,91,16,0,0,96,243,26,0,112,16,0,0,208,33,27,0,133,16,0,0,160,60,27,0,157,16,0,0,16,61,27,0,183,16,0,0,96,61,27,0,212,16,0,0,176,61,27,0,241,16,0,0,0,62,27,0,14,17,0,0,80,62,27,0,40,17,0,0,144,140,27,0,69,17,0,0,224,140,27,0,98,17,0,0,48,141,27,0,122,17,0,0,160,141,27,0,146,17,0,0,16,142,27,0,167,17,0,0,80,24,28,0,188,17,0,0,160,24,28,0,209,17,0,0,48,56,28,0,230,17,0,0,0,83,28,0,251,17,0,0,80,110,28,0,16,18,0,0,160,151,28,0,37,18,0,0,32,199,28,0,58,18,0,0,160,26,29,0,84,18,0,0,192,112,37,0,105,18,0,0,240,141,37,0,126,18,0,0,96,170,37,0,147,18,0,0,112,203,37,0,168,18,0,0,80,237,37,0,189,18,0,0,48,126,38,0,211,18,0,0,128,126,38,0,232,18,0,0,192,165,38,0,253,18,0,0,16,166,38,0,18,19,0,0,112,231,38,0,39,19,0,0,64,11,39,0,61,19,0,0,160,11,39,0,86,19,0,0,0,12,39,0,113,19,0,0,96,12,39,0,143,19,0,0,192,12,39,0,170,19,0,0,32,13,39,0,191,19,0,0,176,17,53,0,215,19,0,0,32,18,53,0,239,19,0,0,144,18,53,0,9,20,0,0,224,18,53,0,38,20,0,0,48,19,53,0,67,20,0,0,128,19,53,0,93,20,0,0,0,20,53,0,122,20,0,0,80,20,53,0,151,20,0,0,160,20,53,0,180,20,0,0,240,20,53,0,204,20,0,0,96,21,53,0,228,20,0,0,208,21,53,0,252,20,0,0,64,22,53,0,17,21,0,0,144,22,53,0,51,21,0,0,176,34,53,0,75,21,0,0,176,111,53,0,99,21,0,0,208,113,53,0,132,21,0,0,96,133,53,0,152,21,0,0,192,133,53,0,172,21,0,0,80,134,53,0,197,21,0,0,144,162,53,0,219,21,0,0,176,65,54,0,246,21,0,0,160,23,55,0,13,22,0,0,0,191,55,0,35,22,0,0,16,82,56,0,65,22,0,0,160,105,56,0,91,22,0,0,96,119,56,0,112,22,0,0,64,1,57,0,142,22,0,0,224,175,60,0,169,22,0,0,144,2,61,0,188,22,0,0,144,66,61,0,214,22,0,0,112,152,61,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,102,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,114,95,83,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,114,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,97,122,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,103,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,98,115,95,67,121,114,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,101,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,104,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,99,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,95,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,95,65,84,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,101,95,95,80,72,79,78,69,66,79,79,75,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,115,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,100,122,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,110,95,85,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,110,95,85,83,95,80,79,83,73,88,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,115,95,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,115,95,95,84,82,65,68,73,84,73,79,78,65,76,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,101,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,97,95,65,70,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,102,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,102,95,65,100,108,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,105,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,114,95,67,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,102,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,103,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,103,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,103,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,97,119,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,101,95,73,76,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,115,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,104,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,100,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,100,95,73,68,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,103,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,110,95,73,68,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,119,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,105,119,95,73,76,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,106,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,111,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,107,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,107,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,108,118,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,109,121,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,98,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,98,95,78,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,110,111,95,78,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,111,109,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,111,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,95,71,117,114,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,95,71,117,114,117,95,73,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,97,95,73,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,112,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,101,115,95,105,110,100,101,120,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,111,111,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,114,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,95,67,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,104,95,89,85,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,109,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,113,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,95,77,69,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,67,121,114,108,95,82,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,76,97,116,110,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,76,97,116,110,95,66,65,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,76,97,116,110,95,82,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,77,69,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,114,95,82,83,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,118,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,115,119,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,116,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,99,97,100,97,116,97,46,105,99,117,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,103,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,107,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,117,122,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,118,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,119,97,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,119,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,120,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,105,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,72,97,110,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,72,97,110,115,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,121,117,101,95,72,97,110,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,75,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,115,95,67,78,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,115,95,83,71,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,95,72,75,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,95,77,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,72,97,110,116,95,84,87,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,77,79,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,83,71,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,104,95,84,87,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,111,108,108,47,122,117,46,114,101,115,0,105,99,117,100,116,54,54,108,47,99,117,114,114,101,110,99,121,78,117,109,101,114,105,99,67,111,100,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,100,97,121,80,101,114,105,111,100,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,103,101,110,100,101,114,76,105,115,116,46,114,101,115,0,105,99,117,100,116,54,54,108,47,103,114,97,109,109,97,116,105,99,97,108,70,101,97,116,117,114,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,105,99,117,115,116,100,46,114,101,115,0,105,99,117,100,116,54,54,108,47,105,99,117,118,101,114,46,114,101,115,0,105,99,117,100,116,54,54,108,47,107,101,121,84,121,112,101,68,97,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,108,97,110,103,73,110,102,111,46,114,101,115,0,105,99,117,100,116,54,54,108,47,108,105,107,101,108,121,83,117,98,116,97,103,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,109,101,116,97,90,111,110,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,109,101,116,97,100,97,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,110,117,109,98,101,114,105,110,103,83,121,115,116,101,109,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,112,108,117,114,97,108,82,97,110,103,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,112,108,117,114,97,108,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,115,117,112,112,108,101,109,101,110,116,97,108,68,97,116,97,46,114,101,115,0,105,99,117,100,116,54,54,108,47,116,105,109,101,122,111,110,101,84,121,112,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,117,110,105,116,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,119,105,110,100,111,119,115,90,111,110,101,115,46,114,101,115,0,105,99,117,100,116,54,54,108,47,122,111,110,101,105,110,102,111,54,52,46,114,101,115,0,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,66,7,0,32,7,0,0,0,21,0,0,0,68,7,0,0,68,7,0,0,3,0,0,0,0,0,0,0,27,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,78,0,60,0,60,0,60,0,73,1,0,0,170,170,124,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,24,0,0,100,24,0,0,100,24,0,0,100,24,0,0,168,24,0,0,168,24,0,0,168,24,0,0,168,24,0,0,100,28,0,0,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,29,5,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,2,64,12,32,14,192,14,232,14,22,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,185,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,153,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,153,113,136,113,249,114,232,114,25,114,8,114,170,112,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,10,8,12,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,14,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,16,8,1,0,8,14,18,8,1,0,16,14,0,13,8,13,24,14,20,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,27,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,59,7,0,32,1,0,32,0,64,7,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,0,0,32,7,0,0,0,21,0,0,0,122,0,0,0,122,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,69,0,116,0,104,0,105,0,93,0,0,0,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,11,0,0,0,0,0,143,103,192,255,0,104,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,0,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,113,0,0,32,1,0,32,0,118,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,174,28,0,32,7,0,0,0,23,0,0,0,176,28,0,0,176,28,0,0,3,0,0,0,0,0,0,0,48,8,0,0,99,111,108,108,97,116,105,111,110,115,0,99,111,109,112,97,116,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,56,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,42,6,60,0,60,0,41,6,60,0,60,0,60,0,148,254,60,0,60,0,60,0,147,254,38,0,74,6,60,0,60,0,73,6,60,0,60,0,60,0,232,251,60,0,60,0,60,0,233,251,60,0,60,0,60,0,240,254,60,0,60,0,60,0,239,254,60,0,60,0,60,0,144,252,60,0,60,0,60,0,93,252,0,0,239,223,241,15,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,42,6,60,0,60,0,14,32,41,6,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,14,32,74,6,14,32,60,0,60,0,204,6,60,0,60,0,14,32,73,6,38,0,14,32,33,6,60,0,60,0,14,32,35,6,60,0,60,0,14,32,36,6,60,0,60,0,14,32,37,6,60,0,60,0,14,32,38,6,60,0,60,0,14,32,73,6,85,6,60,0,60,0,14,32,39,6,14,32,38,0,33,6,39,6,14,32,60,0,60,0,14,32,34,6,14,32,38,0,91,0,108,0,97,0,115,0,116,0,32,0,115,0,101,0,99,0,111,0,110,0,100,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,60,0,75,6,60,0,60,0,60,0,240,8,60,0,60,0,60,0,231,8,60,0,60,0,60,0,76,6,60,0,60,0,60,0,241,8,60,0,60,0,60,0,232,8,60,0,60,0,60,0,77,6,60,0,60,0,60,0,242,8,60,0,60,0,60,0,233,8,60,0,60,0,60,0,78,6,60,0,60,0,60,0,228,8,60,0,60,0,60,0,244,8,60,0,60,0,60,0,245,8,60,0,60,0,60,0,79,6,60,0,60,0,60,0,229,8,60,0,60,0,60,0,254,8,60,0,60,0,60,0,80,6,60,0,60,0,60,0,230,8,60,0,60,0,60,0,246,8,60,0,60,0,60,0,81,6,60,0,60,0,60,0,82,6,60,0,60,0,60,0,83,6,60,0,60,0,60,0,223,6,60,0,60,0,60,0,225,6,60,0,60,0,60,0,95,6,60,0,60,0,60,0,86,6,60,0,60,0,60,0,87,6,60,0,60,0,60,0,88,6,60,0,60,0,60,0,255,8,60,0,60,0,60,0,89,6,60,0,60,0,60,0,90,6,60,0,60,0,60,0,91,6,60,0,60,0,60,0,92,6,60,0,60,0,60,0,93,6,60,0,60,0,60,0,94,6,60,0,60,0,60,0,247,8,60,0,60,0,60,0,248,8,60,0,60,0,60,0,253,8,60,0,60,0,60,0,251,8,60,0,60,0,60,0,252,8,60,0,60,0,60,0,249,8,60,0,60,0,60,0,250,8,60,0,60,0,60,0,112,6,38,0,14,32,39,0,40,6,51,6,69,6,32,0,39,6,68,6,68,6,71,6,32,0,39,6,68,6,49,6,45,6,69,6,70,6,32,0,39,6,68,6,49,6,45,6,74,6,69,6,39,0,60,0,60,0,60,0,14,32,253,253,14,32,38,0,33,6,14,32,61,0,128,254,14,32,38,0,39,6,14,32,61,0,141,254,14,32,61,0,142,254,14,32,38,0,39,6,67,6,40,6,49,6,14,32,60,0,60,0,60,0,243,253,14,32,38,0,39,6,68,6,68,6,71,6,14,32,60,0,60,0,60,0,242,253,14,32,38,0,39,6,75,6,14,32,61,0,60,253,14,32,61,0,61,253,14,32,38,0,34,6,14,32,61,0,129,254,14,32,61,0,130,254,14,32,38,0,35,6,14,32,61,0,131,254,14,32,61,0,132,254,14,32,38,0,37,6,14,32,61,0,135,254,14,32,61,0,136,254,14,32,38,0,40,6,14,32,61,0,143,254,14,32,61,0,144,254,14,32,61,0,145,254,14,32,61,0,146,254,14,32,38,0,40,6,44,6,14,32,61,0,5,252,14,32,61,0,156,252,14,32,38,0,40,6,45,6,14,32,61,0,6,252,14,32,61,0,157,252,14,32,38,0,40,6,45,6,74,6,14,32,61,0,194,253,14,32,38,0,40,6,46,6,14,32,61,0,7,252,14,32,61,0,158,252,14,32,38,0,40,6,46,6,74,6,14,32,61,0,158,253,14,32,38,0,40,6,49,6,14,32,61,0,106,252,14,32,38,0,40,6,50,6,14,32,61,0,107,252,14,32,38,0,40,6,69,6,14,32,61,0,8,252,14,32,61,0,108,252,14,32,61,0,159,252,14,32,61,0,225,252,14,32,38,0,40,6,70,6,14,32,61,0,109,252,14,32,38,0,40,6,71,6,14,32,61,0,160,252,14,32,61,0,226,252,14,32,38,0,40,6,73,6,14,32,61,0,9,252,14,32,61,0,110,252,14,32,38,0,40,6,74,6,14,32,61,0,10,252,14,32,61,0,111,252,14,32,38,0,41,6,14,32,61,0,147,254,14,32,61,0,148,254,14,32,38,0,42,6,14,32,61,0,149,254,14,32,61,0,150,254,14,32,61,0,151,254,14,32,61,0,152,254,14,32,38,0,42,6,44,6,14,32,61,0,11,252,14,32,61,0,161,252,14,32,38,0,42,6,44,6,69,6,14,32,61,0,80,253,14,32,38,0,42,6,44,6,73,6,14,32,61,0,160,253,14,32,38,0,42,6,44,6,74,6,14,32,61,0,159,253,14,32,38,0,42,6,45,6,14,32,61,0,12,252,14,32,61,0,162,252,14,32,38,0,42,6,45,6,44,6,14,32,61,0,81,253,14,32,61,0,82,253,14,32,38,0,42,6,45,6,69,6,14,32,61,0,83,253,14,32,38,0,42,6,46,6,14,32,61,0,13,252,14,32,61,0,163,252,14,32,38,0,42,6,46,6,69,6,14,32,61,0,84,253,14,32,38,0,42,6,46,6,73,6,14,32,61,0,162,253,14,32,38,0,42,6,46,6,74,6,14,32,61,0,161,253,14,32,38,0,42,6,49,6,14,32,61,0,112,252,14,32,38,0,42,6,50,6,14,32,61,0,113,252,14,32,38,0,42,6,69,6,14,32,61,0,14,252,14,32,61,0,114,252,14,32,61,0,164,252,14,32,61,0,227,252,14,32,38,0,42,6,69,6,44,6,14,32,61,0,85,253,14,32,38,0,42,6,69,6,45,6,14,32,61,0,86,253,14,32,38,0,42,6,69,6,46,6,14,32,61,0,87,253,14,32,38,0,42,6,69,6,73,6,14,32,61,0,164,253,14,32,38,0,42,6,69,6,74,6,14,32,61,0,163,253,14,32,38,0,42,6,70,6,14,32,61,0,115,252,14,32,38,0,42,6,71,6,14,32,61,0,165,252,14,32,61,0,228,252,14,32,38,0,42,6,73,6,14,32,61,0,15,252,14,32,61,0,116,252,14,32,38,0,42,6,74,6,14,32,61,0,16,252,14,32,61,0,117,252,14,32,38,0,43,6,14,32,61,0,153,254,14,32,61,0,154,254,14,32,61,0,155,254,14,32,61,0,156,254,14,32,38,0,43,6,44,6,14,32,61,0,17,252,14,32,38,0,43,6,49,6,14,32,61,0,118,252,14,32,38,0,43,6,50,6,14,32,61,0,119,252,14,32,38,0,43,6,69,6,14,32,61,0,18,252,14,32,61,0,120,252,14,32,61,0,166,252,14,32,61,0,229,252,14,32,38,0,43,6,70,6,14,32,61,0,121,252,14,32,38,0,43,6,71,6,14,32,61,0,230,252,14,32,38,0,43,6,73,6,14,32,61,0,19,252,14,32,61,0,122,252,14,32,38,0,43,6,74,6,14,32,61,0,20,252,14,32,61,0,123,252,14,32,38,0,44,6,14,32,61,0,157,254,14,32,61,0,158,254,14,32,61,0,159,254,14,32,61,0,160,254,14,32,38,0,44,6,45,6,14,32,61,0,21,252,14,32,61,0,167,252,14,32,38,0,44,6,45,6,73,6,14,32,61,0,166,253,14,32,38,0,44,6,45,6,74,6,14,32,61,0,190,253,14,32,38,0,39,0,44,6,68,6,32,0,44,6,68,6,39,6,68,6,71,6,39,0,14,32,60,0,60,0,60,0,251,253,14,32,38,0,44,6,69,6,14,32,61,0,22,252,14,32,61,0,168,252,14,32,38,0,44,6,69,6,45,6,14,32,61,0,88,253,14,32,61,0,89,253,14,32,38,0,44,6,69,6,73,6,14,32,61,0,167,253,14,32,38,0,44,6,69,6,74,6,14,32,61,0,165,253,14,32,38,0,44,6,73,6,14,32,61,0,1,253,14,32,61,0,29,253,14,32,38,0,44,6,74,6,14,32,61,0,2,253,14,32,61,0,30,253,14,32,38,0,45,6,14,32,61,0,161,254,14,32,61,0,162,254,14,32,61,0,163,254,14,32,61,0,164,254,14,32,38,0,45,6,44,6,14,32,61,0,23,252,14,32,61,0,169,252,14,32,38,0,45,6,44,6,74,6,14,32,61,0,191,253,14,32,38,0,45,6,69,6,14,32,61,0,24,252,14,32,61,0,170,252,14,32,38,0,45,6,69,6,73,6,14,32,61,0,91,253,14,32,38,0,45,6,69,6,74,6,14,32,61,0,90,253,14,32,38,0,45,6,73,6,14,32,61,0,255,252,14,32,61,0,27,253,14,32,38,0,45,6,74,6,14,32,61,0,0,253,14,32,61,0,28,253,14,32,38,0,46,6,14,32,61,0,165,254,14,32,61,0,166,254,14,32,61,0,167,254,14,32,61,0,168,254,14,32,38,0,46,6,44,6,14,32,61,0,25,252,14,32,61,0,171,252,14,32,38,0,46,6,45,6,14,32,61,0,26,252,14,32,38,0,46,6,69,6,14,32,61,0,27,252,14,32,61,0,172,252,14,32,38,0,46,6,73,6,14,32,61,0,3,253,14,32,61,0,31,253,14,32,38,0,46,6,74,6,14,32,61,0,4,253,14,32,61,0,32,253,14,32,38,0,47,6,14,32,61,0,169,254,14,32,61,0,170,254,14,32,38,0,48,6,14,32,61,0,171,254,14,32,61,0,172,254,14,32,38,0,48,6,112,6,14,32,61,0,91,252,14,32,38,0,49,6,14,32,61,0,173,254,14,32,61,0,174,254,14,32,38,0,49,6,51,6,72,6,68,6,14,32,60,0,60,0,60,0,246,253,14,32,38,0,49,6,112,6,14,32,61,0,92,252,14,32,38,0,49,6,204,6,39,6,68,6,14,32,60,0,60,0,60,0,252,253,14,32,38,0,50,6,14,32,61,0,175,254,14,32,61,0,176,254,14,32,38,0,51,6,14,32,61,0,177,254,14,32,61,0,178,254,14,32,61,0,179,254,14,32,61,0,180,254,14,32,38,0,51,6,44,6,14,32,61,0,28,252,14,32,61,0,173,252,14,32,61,0,52,253,14,32,38,0,51,6,44,6,45,6,14,32,61,0,93,253,14,32,38,0,51,6,44,6,73,6,14,32,61,0,94,253,14,32,38,0,51,6,45,6,14,32,61,0,29,252,14,32,61,0,174,252,14,32,61,0,53,253,14,32,38,0,51,6,45,6,44,6,14,32,61,0,92,253,14,32,38,0,51,6,46,6,14,32,61,0,30,252,14,32,61,0,175,252,14,32,61,0,54,253,14,32,38,0,51,6,46,6,73,6,14,32,61,0,168,253,14,32,38,0,51,6,46,6,74,6,14,32,61,0,198,253,14,32,38,0,51,6,49,6,14,32,61,0,14,253,14,32,61,0,42,253,14,32,38,0,51,6,69,6,14,32,61,0,31,252,14,32,61,0,176,252,14,32,61,0,231,252,14,32,38,0,51,6,69,6,44,6,14,32,61,0,97,253,14,32,38,0,51,6,69,6,45,6,14,32,61,0,95,253,14,32,61,0,96,253,14,32,38,0,51,6,69,6,69,6,14,32,61,0,98,253,14,32,61,0,99,253,14,32,38,0,51,6,71,6,14,32,61,0,232,252,14,32,61,0,49,253,14,32,38,0,51,6,73,6,14,32,61,0,251,252,14,32,61,0,23,253,14,32,38,0,51,6,74,6,14,32,61,0,252,252,14,32,61,0,24,253,14,32,38,0,52,6,14,32,61,0,181,254,14,32,61,0,182,254,14,32,61,0,183,254,14,32,61,0,184,254,14,32,38,0,52,6,44,6,14,32,61,0,9,253,14,32,61,0,37,253,14,32,61,0,45,253,14,32,61,0,55,253,14,32,38,0,52,6,44,6,74,6,14,32,61,0,105,253,14,32,38,0,52,6,45,6,14,32,61,0,10,253,14,32,61,0,38,253,14,32,61,0,46,253,14,32,61,0,56,253,14,32,38,0,52,6,45,6,69,6,14,32,61,0,103,253,14,32,61,0,104,253,14,32,38,0,52,6,45,6,74,6,14,32,61,0,170,253,14,32,38,0,52,6,46,6,14,32,61,0,11,253,14,32,61,0,39,253,14,32,61,0,47,253,14,32,61,0,57,253,14,32,38,0,52,6,49,6,14,32,61,0,13,253,14,32,61,0,41,253,14,32,38,0,52,6,69,6,14,32,61,0,233,252,14,32,61,0,12,253,14,32,61,0,40,253,14,32,61,0,48,253,14,32,38,0,52,6,69,6,46,6,14,32,61,0,106,253,14,32,61,0,107,253,14,32,38,0,52,6,69,6,69,6,14,32,61,0,108,253,14,32,61,0,109,253,14,32,38,0,52,6,71,6,14,32,61,0,234,252,14,32,61,0,50,253,14,32,38,0,52,6,73,6,14,32,61,0,253,252,14,32,61,0,25,253,14,32,38,0,52,6,74,6,14,32,61,0,254,252,14,32,61,0,26,253,14,32,38,0,53,6,14,32,61,0,185,254,14,32,61,0,186,254,14,32,61,0,187,254,14,32,61,0,188,254,14,32,38,0,53,6,45,6,14,32,61,0,32,252,14,32,61,0,177,252,14,32,38,0,53,6,45,6,45,6,14,32,61,0,100,253,14,32,61,0,101,253,14,32,38,0,53,6,45,6,74,6,14,32,61,0,169,253,14,32,38,0,53,6,46,6,14,32,61,0,178,252,14,32,38,0,53,6,49,6,14,32,61,0,15,253,14,32,61,0,43,253,14,32,38,0,53,6,68,6,57,6,69,6,14,32,60,0,60,0,60,0,245,253,14,32,38,0,53,6,68,6,73,6,14,32,60,0,60,0,60,0,249,253,14,32,38,0,39,0,53,6,68,6,73,6,32,0,39,6,68,6,68,6,71,6,32,0,57,6,68,6,74,6,71,6,32,0,72,6,51,6,68,6,69,6,39,0,14,32,60,0,60,0,60,0,250,253,14,32,38,0,53,6,68,6,210,6,14,32,60,0,60,0,60,0,240,253,14,32,38,0,53,6,69,6,14,32,61,0,33,252,14,32,61,0,179,252,14,32,38,0,53,6,69,6,69,6,14,32,61,0,102,253,14,32,61,0,197,253,14,32,38,0,53,6,73,6,14,32,61,0,5,253,14,32,61,0,33,253,14,32,38,0,53,6,74,6,14,32,61,0,6,253,14,32,61,0,34,253,14,32,38,0,54,6,14,32,61,0,189,254,14,32,61,0,190,254,14,32,61,0,191,254,14,32,61,0,192,254,14,32,38,0,54,6,44,6,14,32,61,0,34,252,14,32,61,0,180,252,14,32,38,0,54,6,45,6,14,32,61,0,35,252,14,32,61,0,181,252,14,32,38,0,54,6,45,6,73,6,14,32,61,0,110,253,14,32,38,0,54,6,45,6,74,6,14,32,61,0,171,253,14,32,38,0,54,6,46,6,14,32,61,0,36,252,14,32,61,0,182,252,14,32,38,0,54,6,46,6,69,6,14,32,61,0,111,253,14,32,61,0,112,253,14,32,38,0,54,6,49,6,14,32,61,0,16,253,14,32,61,0,44,253,14,32,38,0,54,6,69,6,14,32,61,0,37,252,14,32,61,0,183,252,14,32,38,0,54,6,73,6,14,32,61,0,7,253,14,32,61,0,35,253,14,32,38,0,54,6,74,6,14,32,61,0,8,253,14,32,61,0,36,253,14,32,38,0,55,6,14,32,61,0,193,254,14,32,61,0,194,254,14,32,61,0,195,254,14,32,61,0,196,254,14,32,38,0,55,6,45,6,14,32,61,0,38,252,14,32,61,0,184,252,14,32,38,0,55,6,69,6,14,32,61,0,39,252,14,32,61,0,51,253,14,32,61,0,58,253,14,32,38,0,55,6,69,6,45,6,14,32,61,0,113,253,14,32,61,0,114,253,14,32,38,0,55,6,69,6,69,6,14,32,61,0,115,253,14,32,38,0,55,6,69,6,74,6,14,32,61,0,116,253,14,32,38,0,55,6,73,6,14,32,61,0,245,252,14,32,61,0,17,253,14,32,38,0,55,6,74,6,14,32,61,0,246,252,14,32,61,0,18,253,14,32,38,0,56,6,14,32,61,0,197,254,14,32,61,0,198,254,14,32,61,0,199,254,14,32,61,0,200,254,14,32,38,0,56,6,69,6,14,32,61,0,40,252,14,32,61,0,185,252,14,32,61,0,59,253,14,32,38,0,57,6,14,32,61,0,201,254,14,32,61,0,202,254,14,32,61,0,203,254,14,32,61,0,204,254,14,32,38,0,57,6,44,6,14,32,61,0,41,252,14,32,61,0,186,252,14,32,38,0,57,6,44,6,69,6,14,32,61,0,117,253,14,32,61,0,196,253,14,32,38,0,57,6,68,6,74,6,71,6,14,32,60,0,60,0,60,0,247,253,14,32,38,0,57,6,69,6,14,32,61,0,42,252,14,32,61,0,187,252,14,32,38,0,57,6,69,6,69,6,14,32,61,0,118,253,14,32,61,0,119,253,14,32,38,0,57,6,69,6,73,6,14,32,61,0,120,253,14,32,38,0,57,6,69,6,74,6,14,32,61,0,182,253,14,32,38,0,57,6,73,6,14,32,61,0,247,252,14,32,61,0,19,253,14,32,38,0,57,6,74,6,14,32,61,0,248,252,14,32,61,0,20,253,14,32,38,0,58,6,14,32,61,0,205,254,14,32,61,0,206,254,14,32,61,0,207,254,14,32,61,0,208,254,14,32,38,0,58,6,44,6,14,32,61,0,43,252,14,32,61,0,188,252,14,32,38,0,58,6,69,6,14,32,61,0,44,252,14,32,61,0,189,252,14,32,38,0,58,6,69,6,69,6,14,32,61,0,121,253,14,32,38,0,58,6,69,6,73,6,14,32,61,0,123,253,14,32,38,0,58,6,69,6,74,6,14,32,61,0,122,253,14,32,38,0,58,6,73,6,14,32,61,0,249,252,14,32,61,0,21,253,14,32,38,0,58,6,74,6,14,32,61,0,250,252,14,32,61,0,22,253,14,32,38,0,64,6,75,6,14,32,61,0,113,254,14,32,38,0,64,6,78,6,14,32,61,0,119,254,14,32,38,0,64,6,78,6,81,6,14,32,61,0,242,252,14,32,38,0,64,6,79,6,14,32,61,0,121,254,14,32,38,0,64,6,79,6,81,6,14,32,61,0,243,252,14,32,38,0,64,6,80,6,14,32,61,0,123,254,14,32,38,0,64,6,80,6,81,6,14,32,61,0,244,252,14,32,38,0,64,6,81,6,14,32,61,0,125,254,14,32,38,0,64,6,82,6,14,32,61,0,127,254,14,32,38,0,65,6,14,32,61,0,209,254,14,32,61,0,210,254,14,32,61,0,211,254,14,32,61,0,212,254,14,32,38,0,65,6,44,6,14,32,61,0,45,252,14,32,61,0,190,252,14,32,38,0,65,6,45,6,14,32,61,0,46,252,14,32,61,0,191,252,14,32,38,0,65,6,46,6,14,32,61,0,47,252,14,32,61,0,192,252,14,32,38,0,65,6,46,6,69,6,14,32,61,0,124,253,14,32,61,0,125,253,14,32,38,0,65,6,69,6,14,32,61,0,48,252,14,32,61,0,193,252,14,32,38,0,65,6,69,6,74,6,14,32,61,0,193,253,14,32,38,0,65,6,73,6,14,32,61,0,49,252,14,32,61,0,124,252,14,32,38,0,65,6,74,6,14,32,61,0,50,252,14,32,61,0,125,252,14,32,38,0,66,6,14,32,61,0,213,254,14,32,61,0,214,254,14,32,61,0,215,254,14,32,61,0,216,254,14,32,38,0,66,6,45,6,14,32,61,0,51,252,14,32,61,0,194,252,14,32,38,0,66,6,68,6,210,6,14,32,60,0,60,0,60,0,241,253,14,32,38,0,66,6,69,6,14,32,61,0,52,252,14,32,61,0,195,252,14,32,38,0,66,6,69,6,45,6,14,32,61,0,126,253,14,32,61,0,180,253,14,32,38,0,66,6,69,6,69,6,14,32,61,0,127,253,14,32,38,0,66,6,69,6,74,6,14,32,61,0,178,253,14,32,38,0,66,6,73,6,14,32,61,0,53,252,14,32,61,0,126,252,14,32,38,0,66,6,74,6,14,32,61,0,54,252,14,32,61,0,127,252,14,32,38,0,67,6,14,32,61,0,217,254,14,32,61,0,218,254,14,32,61,0,219,254,14,32,61,0,220,254,14,32,38,0,67,6,39,6,14,32,61,0,55,252,14,32,61,0,128,252,14,32,38,0,67,6,44,6,14,32,61,0,56,252,14,32,61,0,196,252,14,32,38,0,67,6,45,6,14,32,61,0,57,252,14,32,61,0,197,252,14,32,38,0,67,6,46,6,14,32,61,0,58,252,14,32,61,0,198,252,14,32,38,0,67,6,68,6,14,32,61,0,59,252,14,32,61,0,129,252,14,32,61,0,199,252,14,32,61,0,235,252,14,32,38,0,67,6,69,6,14,32,61,0,60,252,14,32,61,0,130,252,14,32,61,0,200,252,14,32,61,0,236,252,14,32,38,0,67,6,69,6,69,6,14,32,61,0,187,253,14,32,61,0,195,253,14,32,38,0,67,6,69,6,74,6,14,32,61,0,183,253,14,32,38,0,67,6,73,6,14,32,61,0,61,252,14,32,61,0,131,252,14,32,38,0,67,6,74,6,14,32,61,0,62,252,14,32,61,0,132,252,14,32,38,0,68,6,14,32,61,0,221,254,14,32,61,0,222,254,14,32,61,0,223,254,14,32,61,0,224,254,14,32,38,0,68,6,39,6,14,32,61,0,251,254,14,32,61,0,252,254,14,32,38,0,68,6,34,6,14,32,61,0,245,254,14,32,61,0,246,254,14,32,38,0,68,6,35,6,14,32,61,0,247,254,14,32,61,0,248,254,14,32,38,0,68,6,37,6,14,32,61,0,249,254,14,32,61,0,250,254,14,32,38,0,68,6,44,6,14,32,61,0,63,252,14,32,61,0,201,252,14,32,38,0,68,6,44,6,44,6,14,32,61,0,131,253,14,32,61,0,132,253,14,32,38,0,68,6,44,6,69,6,14,32,61,0,186,253,14,32,61,0,188,253,14,32,38,0,68,6,44,6,74,6,14,32,61,0,172,253,14,32,38,0,68,6,45,6,14,32,61,0,64,252,14,32,61,0,202,252,14,32,38,0,68,6,45,6,69,6,14,32,61,0,128,253,14,32,61,0,181,253,14,32,38,0,68,6,45,6,73,6,14,32,61,0,130,253,14,32,38,0,68,6,45,6,74,6,14,32,61,0,129,253,14,32,38,0,68,6,46,6,14,32,61,0,65,252,14,32,61,0,203,252,14,32,38,0,68,6,46,6,69,6,14,32,61,0,133,253,14,32,61,0,134,253,14,32,38,0,68,6,69,6,14,32,61,0,66,252,14,32,61,0,133,252,14,32,61,0,204,252,14,32,61,0,237,252,14,32,38,0,68,6,69,6,45,6,14,32,61,0,135,253,14,32,61,0,136,253,14,32,38,0,68,6,69,6,74,6,14,32,61,0,173,253,14,32,38,0,68,6,71,6,14,32,61,0,205,252,14,32,38,0,68,6,73,6,14,32,61,0,67,252,14,32,61,0,134,252,14,32,38,0,68,6,74,6,14,32,61,0,68,252,14,32,61,0,135,252,14,32,38,0,69,6,14,32,61,0,225,254,14,32,61,0,226,254,14,32,61,0,227,254,14,32,61,0,228,254,14,32,38,0,69,6,39,6,14,32,61,0,136,252,14,32,38,0,69,6,44,6,14,32,61,0,69,252,14,32,61,0,206,252,14,32,38,0,69,6,44,6,45,6,14,32,61,0,140,253,14,32,38,0,69,6,44,6,46,6,14,32,61,0,146,253,14,32,38,0,69,6,44,6,69,6,14,32,61,0,141,253,14,32,38,0,69,6,44,6,74,6,14,32,61,0,192,253,14,32,38,0,69,6,45,6,14,32,61,0,70,252,14,32,61,0,207,252,14,32,38,0,69,6,45,6,44,6,14,32,61,0,137,253,14,32,38,0,69,6,45,6,69,6,14,32,61,0,138,253,14,32,38,0,69,6,45,6,69,6,47,6,14,32,60,0,60,0,60,0,244,253,14,32,38,0,69,6,45,6,74,6,14,32,61,0,139,253,14,32,38,0,69,6,46,6,14,32,61,0,71,252,14,32,61,0,208,252,14,32,38,0,69,6,46,6,44,6,14,32,61,0,142,253,14,32,38,0,69,6,46,6,69,6,14,32,61,0,143,253,14,32,38,0,69,6,46,6,74,6,14,32,61,0,185,253,14,32,38,0,69,6,69,6,14,32,61,0,72,252,14,32,61,0,137,252,14,32,61,0,209,252,14,32,38,0,69,6,69,6,74,6,14,32,61,0,177,253,14,32,38,0,69,6,73,6,14,32,61,0,73,252,14,32,38,0,69,6,74,6,14,32,61,0,74,252,14,32,38,0,70,6,14,32,61,0,229,254,14,32,61,0,230,254,14,32,61,0,231,254,14,32,61,0,232,254,14,32,38,0,70,6,44,6,14,32,61,0,75,252,14,32,61,0,210,252,14,32,38,0,70,6,44,6,45,6,14,32,61,0,184,253,14,32,61,0,189,253,14,32,38,0,70,6,44,6,69,6,14,32,61,0,151,253,14,32,61,0,152,253,14,32,38,0,70,6,44,6,73,6,14,32,61,0,153,253,14,32,38,0,70,6,44,6,74,6,14,32,61,0,199,253,14,32,38,0,70,6,45,6,14,32,61,0,76,252,14,32,61,0,211,252,14,32,38,0,70,6,45,6,69,6,14,32,61,0,149,253,14,32,38,0,70,6,45,6,73,6,14,32,61,0,150,253,14,32,38,0,70,6,45,6,74,6,14,32,61,0,179,253,14,32,38,0,70,6,46,6,14,32,61,0,77,252,14,32,61,0,212,252,14,32,38,0,70,6,49,6,14,32,61,0,138,252,14,32,38,0,70,6,50,6,14,32,61,0,139,252,14,32,38,0,70,6,69,6,14,32,61,0,78,252,14,32,61,0,140,252,14,32,61,0,213,252,14,32,61,0,238,252,14,32,38,0,70,6,69,6,73,6,14,32,61,0,155,253,14,32,38,0,70,6,69,6,74,6,14,32,61,0,154,253,14,32,38,0,70,6,70,6,14,32,61,0,141,252,14,32,38,0,70,6,71,6,14,32,61,0,214,252,14,32,61,0,239,252,14,32,38,0,70,6,73,6,14,32,61,0,79,252,14,32,61,0,142,252,14,32,38,0,70,6,74,6,14,32,61,0,80,252,14,32,61,0,143,252,14,32,38,0,71,6,14,32,61,0,233,254,14,32,61,0,234,254,14,32,61,0,235,254,14,32,61,0,236,254,14,32,38,0,71,6,44,6,14,32,61,0,81,252,14,32,61,0,215,252,14,32,38,0,71,6,69,6,14,32,61,0,82,252,14,32,61,0,216,252,14,32,38,0,71,6,69,6,44,6,14,32,61,0,147,253,14,32,38,0,71,6,69,6,69,6,14,32,61,0,148,253,14,32,38,0,71,6,73,6,14,32,61,0,83,252,14,32,38,0,71,6,74,6,14,32,61,0,84,252,14,32,38,0,71,6,112,6,14,32,61,0,217,252,14,32,38,0,72,6,14,32,61,0,237,254,14,32,61,0,238,254,14,32,38,0,72,6,51,6,68,6,69,6,14,32,60,0,60,0,60,0,248,253,14,32,38,0,36,6,14,32,61,0,133,254,14,32,61,0,134,254,14,32,38,0,73,6,14,32,61,0,232,251,14,32,61,0,233,251,14,32,61,0,239,254,14,32,61,0,240,254,14,32,38,0,73,6,112,6,14,32,61,0,93,252,14,32,61,0,144,252,14,32,38,0,74,6,14,32,61,0,241,254,14,32,61,0,242,254,14,32,61,0,243,254,14,32,61,0,244,254,14,32,38,0,74,6,44,6,14,32,61,0,85,252,14,32,61,0,218,252,14,32,38,0,74,6,44,6,74,6,14,32,61,0,175,253,14,32,38,0,74,6,45,6,14,32,61,0,86,252,14,32,61,0,219,252,14,32,38,0,74,6,45,6,74,6,14,32,61,0,174,253,14,32,38,0,74,6,46,6,14,32,61,0,87,252,14,32,61,0,220,252,14,32,38,0,74,6,49,6,14,32,61,0,145,252,14,32,38,0,74,6,50,6,14,32,61,0,146,252,14,32,38,0,74,6,69,6,14,32,61,0,88,252,14,32,61,0,147,252,14,32,61,0,221,252,14,32,61,0,240,252,14,32,38,0,74,6,69,6,69,6,14,32,61,0,156,253,14,32,61,0,157,253,14,32,38,0,74,6,69,6,74,6,14,32,61,0,176,253,14,32,38,0,74,6,70,6,14,32,61,0,148,252,14,32,38,0,74,6,71,6,14,32,61,0,222,252,14,32,61,0,241,252,14,32,38,0,74,6,73,6,14,32,61,0,89,252,14,32,61,0,149,252,14,32,38,0,74,6,74,6,14,32,61,0,90,252,14,32,61,0,150,252,14,32,38,0,38,6,14,32,61,0,137,254,14,32,61,0,138,254,14,32,61,0,139,254,14,32,61,0,140,254,14,32,38,0,38,6,39,6,14,32,61,0,234,251,14,32,61,0,235,251,14,32,38,0,38,6,44,6,14,32,61,0,0,252,14,32,61,0,151,252,14,32,38,0,38,6,45,6,14,32,61,0,1,252,14,32,61,0,152,252,14,32,38,0,38,6,46,6,14,32,61,0,153,252,14,32,38,0,38,6,49,6,14,32,61,0,100,252,14,32,38,0,38,6,50,6,14,32,61,0,101,252,14,32,38,0,38,6,69,6,14,32,61,0,2,252,14,32,61,0,102,252,14,32,61,0,154,252,14,32,61,0,223,252,14,32,38,0,38,6,70,6,14,32,61,0,103,252,14,32,38,0,38,6,71,6,14,32,61,0,155,252,14,32,61,0,224,252,14,32,38,0,38,6,72,6,14,32,61,0,238,251,14,32,61,0,239,251,14,32,38,0,38,6,73,6,14,32,61,0,249,251,14,32,61,0,250,251,14,32,61,0,251,251,14,32,61,0,3,252,14,32,61,0,104,252,14,32,38,0,38,6,74,6,14,32,61,0,4,252,14,32,61,0,105,252,14,32,38,0,38,6,198,6,14,32,61,0,242,251,14,32,61,0,243,251,14,32,38,0,38,6,199,6,14,32,61,0,240,251,14,32,61,0,241,251,14,32,38,0,38,6,200,6,14,32,61,0,244,251,14,32,61,0,245,251,14,32,38,0,38,6,208,6,14,32,61,0,246,251,14,32,61,0,247,251,14,32,61,0,248,251,14,32,38,0,38,6,213,6,14,32,61,0,236,251,14,32,61,0,237,251,14,32,38,0,75,6,14,32,61,0,112,254,14,32,38,0,76,6,14,32,61,0,114,254,14,32,38,0,76,6,81,6,14,32,61,0,94,252,14,32,38,0,77,6,14,32,61,0,116,254,14,32,38,0,77,6,81,6,14,32,61,0,95,252,14,32,38,0,78,6,14,32,61,0,118,254,14,32,38,0,78,6,81,6,14,32,61,0,96,252,14,32,38,0,79,6,14,32,61,0,120,254,14,32,38,0,79,6,81,6,14,32,61,0,97,252,14,32,38,0,80,6,14,32,61,0,122,254,14,32,38,0,80,6,81,6,14,32,61,0,98,252,14,32,38,0,81,6,14,32,61,0,124,254,14,32,38,0,81,6,112,6,14,32,61,0,99,252,14,32,38,0,82,6,14,32,61,0,126,254,14,32,38,0,113,6,14,32,61,0,80,251,14,32,61,0,81,251,14,32,38,0,121,6,14,32,61,0,102,251,14,32,61,0,103,251,14,32,61,0,104,251,14,32,61,0,105,251,14,32,38,0,122,6,14,32,61,0,94,251,14,32,61,0,95,251,14,32,61,0,96,251,14,32,61,0,97,251,14,32,38,0,123,6,14,32,61,0,82,251,14,32,61,0,83,251,14,32,61,0,84,251,14,32,61,0,85,251,14,32,38,0,126,6,14,32,61,0,86,251,14,32,61,0,87,251,14,32,61,0,88,251,14,32,61,0,89,251,14,32,38,0,127,6,14,32,61,0,98,251,14,32,61,0,99,251,14,32,61,0,100,251,14,32,61,0,101,251,14,32,38,0,128,6,14,32,61,0,90,251,14,32,61,0,91,251,14,32,61,0,92,251,14,32,61,0,93,251,14,32,38,0,131,6,14,32,61,0,118,251,14,32,61,0,119,251,14,32,61,0,120,251,14,32,61,0,121,251,14,32,38,0,132,6,14,32,61,0,114,251,14,32,61,0,115,251,14,32,61,0,116,251,14,32,61,0,117,251,14,32,38,0,134,6,14,32,61,0,122,251,14,32,61,0,123,251,14,32,61,0,124,251,14,32,61,0,125,251,14,32,38,0,135,6,14,32,61,0,126,251,14,32,61,0,127,251,14,32,61,0,128,251,14,32,61,0,129,251,14,32,38,0,136,6,14,32,61,0,136,251,14,32,61,0,137,251,14,32,38,0,140,6,14,32,61,0,132,251,14,32,61,0,133,251,14,32,38,0,141,6,14,32,61,0,130,251,14,32,61,0,131,251,14,32,38,0,142,6,14,32,61,0,134,251,14,32,61,0,135,251,14,32,38,0,145,6,14,32,61,0,140,251,14,32,61,0,141,251,14,32,38,0,152,6,14,32,61,0,138,251,14,32,61,0,139,251,14,32,38,0,164,6,14,32,61,0,106,251,14,32,61,0,107,251,14,32,61,0,108,251,14,32,61,0,109,251,14,32,38,0,166,6,14,32,61,0,110,251,14,32,61,0,111,251,14,32,61,0,112,251,14,32,61,0,113,251,14,32,38,0,169,6,14,32,61,0,142,251,14,32,61,0,143,251,14,32,61,0,144,251,14,32,61,0,145,251,14,32,38,0,173,6,14,32,61,0,211,251,14,32,61,0,212,251,14,32,61,0,213,251,14,32,61,0,214,251,14,32,38,0,175,6,14,32,61,0,146,251,14,32,61,0,147,251,14,32,61,0,148,251,14,32,61,0,149,251,14,32,38,0,177,6,14,32,61,0,154,251,14,32,61,0,155,251,14,32,61,0,156,251,14,32,61,0,157,251,14,32,38,0,179,6,14,32,61,0,150,251,14,32,61,0,151,251,14,32,61,0,152,251,14,32,61,0,153,251,14,32,38,0,186,6,14,32,61,0,158,251,14,32,61,0,159,251,14,32,38,0,187,6,14,32,61,0,160,251,14,32,61,0,161,251,14,32,61,0,162,251,14,32,61,0,163,251,14,32,38,0,190,6,14,32,61,0,170,251,14,32,61,0,171,251,14,32,61,0,172,251,14,32,61,0,173,251,14,32,38,0,193,6,14,32,61,0,166,251,14,32,61,0,167,251,14,32,61,0,168,251,14,32,61,0,169,251,14,32,38,0,197,6,14,32,61,0,224,251,14,32,61,0,225,251,14,32,38,0,198,6,14,32,61,0,217,251,14,32,61,0,218,251,14,32,38,0,199,6,14,32,61,0,215,251,14,32,61,0,216,251,14,32,38,0,199,6,116,6,14,32,61,0,221,251,14,32,38,0,200,6,14,32,61,0,219,251,14,32,61,0,220,251,14,32,38,0,201,6,14,32,61,0,226,251,14,32,61,0,227,251,14,32,38,0,203,6,14,32,61,0,222,251,14,32,61,0,223,251,14,32,38,0,204,6,14,32,61,0,252,251,14,32,61,0,253,251,14,32,61,0,254,251,14,32,61,0,255,251,14,32,38,0,208,6,14,32,61,0,228,251,14,32,61,0,229,251,14,32,61,0,230,251,14,32,61,0,231,251,14,32,38,0,210,6,14,32,61,0,174,251,14,32,61,0,175,251,14,32,38,0,211,6,14,32,61,0,176,251,14,32,61,0,177,251,14,32,38,0,192,6,14,32,61,0,164,251,14,32,61,0,165,251,0,0,170,170,170,170,170,170,170,170,170,170,170,170,84,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,248,27,0,0,248,27,0,0,248,27,0,0,248,27,0,0,60,28,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,163,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,154,0,118,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,124,0,48,0,48,0,127,0,48,0,135,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,140,0,48,0,48,0,146,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,42,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,70,238,102,7,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,11,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,10,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,42,102,6,70,42,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,70,238,102,8,70,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,67,0,50,0,59,0,51,8,0,16,4,0,0,96,1,0,0,96,170,170,170,170,84,53,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,144,40,0,0,144,40,0,0,56,42,0,0,56,42,0,0,248,52,0,0,248,52,0,0,60,53,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,108,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,48,0,56,0,107,0,115,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,138,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,99,1,131,0,48,0,48,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,154,0,162,0,170,0,175,0,183,0,191,0,199,0,207,0,215,0,223,0,231,0,239,0,247,0,255,0,7,1,15,1,23,1,31,1,39,1,47,1,51,1,48,0,48,0,48,0,59,1,67,1,75,1,83,1,91,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,192,0,172,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,84,0,202,225,84,0,202,2,85,0,202,35,85,0,202,68,85,0,202,101,85,0,202,134,85,0,202,167,85,0,202,200,85,0,202,233,85,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,84,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,66,84,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,84,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,5,70,6,102,5,71,6,102,5,72,6,102,5,73,6,102,201,6,0,0,192,0,0,0,5,2,42,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,1,0,201,134,2,0,201,102,3,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,192,0,0,0,192,0,0,0,198,33,1,0,198,65,1,0,198,97,1,0,198,129,1,0,198,161,1,0,198,193,1,0,198,225,1,0,198,1,2,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,191,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,2,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,2,0,192,0,0,0,198,129,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,2,0,198,193,2,0,198,225,2,0,198,1,3,0,198,33,3,0,198,65,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,3,0,198,129,3,0,198,161,3,0,192,0,0,0,198,193,3,0,198,225,3,0,198,1,4,0,198,33,4,0,198,65,4,0,198,97,4,0,190,0,0,0,198,129,4,0,198,161,4,0,198,193,4,0,198,225,4,0,198,1,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,102,5,5,14,102,5,5,32,102,5,5,32,102,5,5,32,102,5,5,32,102,5,5,34,102,5,5,34,102,5,5,34,102,5,5,34,102,5,5,36,102,5,5,36,102,5,5,36,102,5,5,36,102,5,5,48,102,5,5,48,102,5,5,48,102,5,5,48,102,5,5,54,102,5,5,54,102,5,5,54,102,5,5,54,102,5,5,46,102,5,5,46,102,5,5,46,102,5,5,46,102,193,30,176,102,193,30,176,102,193,30,176,102,193,30,176,102,193,51,176,102,193,51,176,102,193,51,176,102,193,51,176,102,5,5,62,102,5,5,62,102,5,5,62,102,5,5,62,102,5,5,60,102,5,5,60,102,5,5,60,102,5,5,60,102,5,5,64,102,5,5,64,102,5,5,64,102,5,5,64,102,5,5,68,102,5,5,68,102,5,5,68,102,5,5,68,102,5,5,98,102,5,5,98,102,5,5,96,102,5,5,96,102,5,5,102,102,5,5,102,102,5,5,88,102,5,5,88,102,5,5,128,102,5,5,128,102,5,5,114,102,5,5,114,102,5,5,184,102,5,5,184,102,5,5,184,102,5,5,184,102,5,5,192,102,5,5,192,102,5,5,192,102,5,5,192,102,193,30,194,102,193,30,194,102,193,30,194,102,193,30,194,102,193,16,194,102,193,16,194,102,193,16,194,102,193,16,194,102,5,5,206,102,5,5,206,102,193,9,208,102,193,9,208,102,193,9,208,102,193,9,208,102,197,98,0,0,197,98,0,0,5,5,218,102,5,5,218,102,5,5,218,102,5,5,218,102,5,5,216,102,5,5,216,102,5,5,216,102,5,5,216,102,5,5,250,102,5,5,250,102,197,162,0,0,197,162,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,16,190,102,193,16,190,102,193,16,190,102,193,16,190,102,5,5,228,102,5,5,228,102,193,9,226,102,193,9,226,102,5,5,230,102,5,5,230,102,197,226,0,0,193,9,234,102,193,9,234,102,193,2,226,102,193,2,226,102,5,5,232,102,5,5,232,102,5,5,246,102,5,5,246,102,5,5,246,102,5,5,246,102,5,3,238,102,5,3,238,102,197,34,1,0,197,34,1,0,197,98,1,0,197,98,1,0,197,162,1,0,197,162,1,0,197,226,1,0,197,226,1,0,197,34,2,0,197,34,2,0,197,98,2,0,197,98,2,0,197,162,2,0,197,162,2,0,197,162,2,0,197,226,2,0,197,226,2,0,197,226,2,0,5,2,238,102,5,2,238,102,5,2,238,102,5,2,238,102,197,34,3,0,197,98,3,0,197,162,3,0,197,226,2,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,197,98,8,0,197,66,8,0,197,162,8,0,197,226,8,0,197,34,9,0,197,98,9,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,197,130,8,0,197,194,8,0,197,34,20,0,197,98,20,0,197,162,20,0,197,226,20,0,197,34,21,0,197,98,21,0,197,162,21,0,197,226,21,0,197,34,22,0,197,98,22,0,197,162,22,0,197,226,22,0,197,34,23,0,197,2,8,0,197,98,23,0,197,162,23,0,197,194,19,0,197,226,23,0,197,66,23,0,197,34,24,0,197,98,24,0,197,162,24,0,198,34,5,0,198,98,5,0,198,162,5,0,198,226,5,0,198,162,0,0,198,34,6,0,197,226,24,0,197,34,25,0,197,162,3,0,197,98,25,0,197,226,2,0,197,226,3,0,197,162,25,0,197,226,25,0,197,226,4,0,197,34,26,0,197,34,5,0,197,98,5,0,197,98,26,0,197,162,26,0,197,98,6,0,197,226,26,0,197,162,6,0,197,226,6,0,197,34,27,0,197,98,27,0,197,98,7,0,197,162,27,0,197,162,7,0,197,226,7,0,197,226,14,0,197,34,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,27,0,197,34,20,0,197,34,28,0,197,98,28,0,197,162,21,0,197,162,28,0,197,226,21,0,197,34,22,0,197,162,24,0,197,226,28,0,197,34,29,0,197,194,19,0,197,194,20,0,197,226,23,0,197,66,23,0,197,34,3,0,197,98,3,0,197,98,29,0,197,162,3,0,197,162,29,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,226,29,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,34,30,0,197,98,7,0,197,34,8,0,197,98,8,0,197,66,8,0,197,162,8,0,197,226,8,0,197,98,9,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,98,30,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,98,15,0,197,162,15,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,162,30,0,197,226,19,0,197,130,8,0,197,194,8,0,197,34,20,0,197,226,20,0,197,34,21,0,197,98,21,0,197,162,21,0,197,226,30,0,197,98,22,0,197,162,22,0,197,34,31,0,197,2,8,0,197,98,23,0,197,162,23,0,197,194,19,0,197,66,22,0,197,162,3,0,197,162,29,0,197,226,4,0,197,226,29,0,197,98,6,0,197,34,30,0,197,98,7,0,197,98,31,0,197,98,10,0,197,162,31,0,197,226,31,0,197,34,32,0,197,98,17,0,197,162,17,0,197,34,19,0,197,162,21,0,197,226,30,0,197,194,19,0,197,66,22,0,198,162,5,0,198,226,5,0,198,162,0,0,197,98,32,0,197,162,32,0,197,226,32,0,197,34,33,0,197,98,33,0,197,162,33,0,197,226,33,0,197,34,34,0,197,98,34,0,197,162,34,0,197,226,34,0,197,130,23,0,197,34,35,0,197,98,35,0,197,162,35,0,197,194,23,0,197,226,35,0,197,34,36,0,197,98,36,0,197,162,36,0,197,226,36,0,197,34,37,0,197,98,37,0,197,226,31,0,197,162,37,0,197,226,37,0,197,34,38,0,197,98,38,0,197,98,32,0,197,162,32,0,197,226,32,0,197,34,33,0,197,98,33,0,197,162,33,0,197,226,33,0,197,34,34,0,197,98,34,0,197,162,34,0,197,226,34,0,197,130,23,0,197,34,35,0,197,98,35,0,197,162,35,0,197,194,23,0,197,226,35,0,197,34,36,0,197,98,36,0,197,162,36,0,197,226,36,0,197,34,37,0,197,98,37,0,197,226,31,0,197,162,37,0,197,226,37,0,197,34,38,0,197,98,38,0,197,226,36,0,197,34,37,0,197,98,37,0,197,226,31,0,197,162,31,0,197,34,32,0,197,98,12,0,197,162,9,0,197,226,9,0,197,34,10,0,197,226,36,0,197,34,37,0,197,98,37,0,197,98,12,0,197,162,12,0,198,98,6,0,198,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,38,0,197,3,39,0,197,3,39,0,197,99,39,0,197,195,39,0,197,35,40,0,197,131,40,0,197,227,40,0,197,99,8,0,197,99,8,0,197,67,41,0,197,163,41,0,197,3,42,0,197,99,42,0,197,195,42,0,197,35,43,0,197,35,43,0,197,131,43,0,197,227,43,0,197,227,43,0,197,67,44,0,197,67,44,0,197,163,44,0,197,3,45,0,197,3,45,0,197,99,45,0,197,195,45,0,197,195,45,0,197,35,46,0,197,35,46,0,197,131,46,0,197,227,46,0,197,227,46,0,197,67,47,0,197,67,47,0,197,163,47,0,197,3,48,0,197,99,48,0,197,195,48,0,197,195,48,0,197,35,49,0,197,131,49,0,197,227,49,0,197,67,50,0,197,163,50,0,197,163,50,0,197,3,51,0,197,99,51,0,197,195,51,0,197,35,52,0,197,131,52,0,197,227,52,0,197,227,52,0,197,67,53,0,197,67,53,0,197,163,53,0,197,163,53,0,197,3,54,0,197,131,8,0,197,99,54,0,197,195,54,0,197,227,19,0,197,195,8,0,197,35,55,0,192,0,0,0,192,0,0,0,197,131,55,0,197,227,55,0,197,67,56,0,197,163,56,0,197,3,57,0,197,99,57,0,197,99,57,0,197,195,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,197,227,61,0,197,67,62,0,197,163,62,0,197,3,63,0,197,99,63,0,197,195,63,0,197,35,64,0,197,131,64,0,197,227,64,0,197,99,23,0,197,67,65,0,197,163,65,0,197,3,66,0,197,99,66,0,197,195,66,0,197,3,51,0,197,195,51,0,197,35,67,0,197,131,67,0,197,227,67,0,197,67,68,0,197,163,68,0,197,3,69,0,197,163,68,0,197,227,67,0,197,99,69,0,197,195,69,0,197,35,70,0,197,131,70,0,197,227,70,0,197,3,69,0,197,99,48,0,197,163,44,0,197,67,71,0,197,163,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,72,0,197,99,72,0,197,196,72,0,197,68,73,0,197,196,73,0,197,68,74,0,197,196,74,0,197,68,75,0,197,196,75,0,197,67,76,0,197,178,76,0,197,232,78,0,197,228,79,0,197,118,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,198,1,0,0,198,33,0,0,192,0,0,0,198,65,0,0,192,0,0,0,198,97,0,0,198,97,0,0,198,129,0,0,198,129,0,0,198,161,0,0,198,161,0,0,198,193,0,0,198,193,0,0,198,225,0,0,198,225,0,0,5,5,6,102,197,34,0,0,197,34,0,0,5,70,6,102,5,70,6,102,5,71,6,102,5,71,6,102,5,72,6,102,5,72,6,102,5,73,6,102,5,73,6,102,5,73,6,102,5,73,6,102,5,75,6,102,5,75,6,102,5,5,30,102,5,5,30,102,5,5,30,102,5,5,30,102,5,2,42,102,5,2,42,102,5,5,42,102,5,5,42,102,5,5,42,102,5,5,42,102,5,5,44,102,5,5,44,102,5,5,44,102,5,5,44,102,5,5,58,102,5,5,58,102,5,5,58,102,5,5,58,102,5,5,72,102,5,5,72,102,5,5,72,102,5,5,72,102,5,5,74,102,5,5,74,102,5,5,74,102,5,5,74,102,5,5,84,102,5,5,84,102,5,5,86,102,5,5,86,102,5,5,110,102,5,5,110,102,5,5,112,102,5,5,112,102,5,5,134,102,5,5,134,102,5,5,134,102,5,5,134,102,5,5,136,102,5,5,136,102,5,5,136,102,5,5,136,102,5,5,146,102,5,5,146,102,5,5,146,102,5,5,146,102,5,5,148,102,5,5,148,102,5,5,148,102,5,5,148,102,5,5,158,102,5,5,158,102,5,5,158,102,5,5,158,102,5,5,160,102,5,5,160,102,5,5,160,102,5,5,160,102,5,5,166,102,5,5,166,102,5,5,166,102,5,5,166,102,5,5,168,102,5,5,168,102,5,5,168,102,5,5,168,102,5,5,174,102,5,5,174,102,5,5,174,102,5,5,174,102,5,5,178,102,5,5,178,102,5,5,178,102,5,5,178,102,5,5,182,102,5,5,182,102,5,5,182,102,5,5,182,102,5,5,196,102,5,5,196,102,5,5,196,102,5,5,196,102,5,5,200,102,5,5,200,102,5,5,200,102,5,5,200,102,5,5,204,102,5,5,204,102,5,5,204,102,5,5,204,102,5,5,214,102,5,5,214,102,5,5,214,102,5,5,214,102,5,5,222,102,5,5,222,102,5,3,238,102,5,3,238,102,5,5,238,102,5,5,238,102,5,5,238,102,5,5,238,102,197,35,83,0,197,35,83,0,197,130,83,0,197,130,83,0,197,194,83,0,197,194,83,0,197,98,79,0,197,98,79,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,3,189,0,0,0,0,0,0,6,189,0,0,0,0,0,0,9,189,0,0,0,0,0,0,12,189,0,0,0,0,0,0,16,189,0,0,0,0,0,0,19,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,23,189,0,0,0,0,0,0,24,189,0,0,0,0,0,0,28,189,0,0,0,0,0,0,29,189,0,0,0,0,0,0,30,189,0,0,0,0,0,0,32,189,0,0,0,0,0,0,33,189,0,0,0,0,0,0,34,189,0,0,0,0,0,0,35,189,0,0,0,0,0,0,36,189,0,0,0,0,0,0,37,189,0,0,0,0,0,0,27,189,0,0,0,0,0,0,25,189,0,0,0,0,0,0,26,189,0,0,0,0,0,0,13,189,0,0,0,0,0,0,17,189,0,0,0,0,0,0,20,189,0,0,0,0,0,0,5,189,0,0,0,0,0,0,8,189,0,0,0,0,0,0,11,189,0,0,0,0,0,0,4,189,0,0,0,0,0,0,7,189,0,0,0,0,0,0,10,189,0,0,0,0,0,0,14,189,0,0,0,0,0,0,15,189,0,0,0,0,0,0,21,189,0,0,0,0,0,0,38,189,0,0,0,0,0,0,39,189,0,0,0,0,0,0,43,189,0,0,0,0,0,0,41,189,0,0,0,0,0,0,42,189,0,0,0,0,0,0,40,189,0,0,0,0,0,0,18,189,0,0,0,0,0,0,31,189,0,0,0,0,0,0,6,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,9,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,12,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,16,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,22,189,0,0,0,0,0,0,0,191,0,0,0,0,0,0,0,5,0,75,0,0,6,102,3,189,0,0,0,0,0,0,0,0,0,0,5,5,6,102,5,76,6,102,193,16,220,102,194,5,128,232,5,5,250,102,194,5,128,232,5,5,228,102,32,5,6,102,5,73,6,102,5,75,6,102,5,73,6,102,193,16,220,102,5,73,6,102,5,5,222,102,5,73,6,102,5,5,228,102,5,73,6,102,193,9,226,102,5,73,6,102,5,5,230,102,5,73,6,102,5,5,246,102,5,73,6,102,5,3,238,102,5,73,6,102,5,5,58,102,5,73,6,102,5,5,72,102,5,73,6,102,5,5,200,102,5,73,6,102,5,5,238,102,5,5,30,102,5,5,58,102,5,5,30,102,5,5,72,102,5,5,30,102,5,5,74,102,5,5,30,102,5,5,200,102,5,5,30,102,5,3,238,102,5,5,30,102,5,5,238,102,5,5,42,102,5,5,58,102,5,5,42,102,5,5,72,102,5,5,42,102,5,5,74,102,5,5,42,102,5,5,200,102,5,5,42,102,5,3,238,102,5,5,42,102,5,5,238,102,5,5,44,102,5,5,58,102,5,5,44,102,5,5,200,102,5,5,44,102,5,3,238,102,5,5,44,102,5,5,238,102,5,5,58,102,5,5,72,102,5,5,58,102,5,5,200,102,5,5,72,102,5,5,200,102,5,5,74,102,5,5,58,102,5,5,74,102,5,5,72,102,5,5,74,102,5,5,200,102,5,5,134,102,5,5,58,102,5,5,134,102,5,5,72,102,5,5,134,102,5,5,74,102,5,5,134,102,5,5,200,102,5,5,146,102,5,5,72,102,5,5,146,102,5,5,200,102,5,5,148,102,5,5,58,102,5,5,148,102,5,5,72,102,5,5,148,102,5,5,74,102,5,5,148,102,5,5,200,102,5,5,158,102,5,5,72,102,5,5,158,102,5,5,200,102,5,5,160,102,5,5,200,102,5,5,166,102,5,5,58,102,5,5,166,102,5,5,200,102,5,5,168,102,5,5,58,102,5,5,168,102,5,5,200,102,5,5,174,102,5,5,58,102,5,5,174,102,5,5,72,102,5,5,174,102,5,5,74,102,5,5,174,102,5,5,200,102,5,5,174,102,5,3,238,102,5,5,174,102,5,5,238,102,5,5,178,102,5,5,72,102,5,5,178,102,5,5,200,102,5,5,178,102,5,3,238,102,5,5,178,102,5,5,238,102,5,5,182,102,5,75,6,102,5,5,182,102,5,5,58,102,5,5,182,102,5,5,72,102,5,5,182,102,5,5,74,102,5,5,182,102,5,5,196,102,5,5,182,102,5,5,200,102,5,5,182,102,5,3,238,102,5,5,182,102,5,5,238,102,5,5,196,102,5,5,58,102,5,5,196,102,5,5,72,102,5,5,196,102,5,5,74,102,5,5,196,102,5,5,200,102,5,5,196,102,5,3,238,102,5,5,196,102,5,5,238,102,5,5,200,102,5,5,58,102,5,5,200,102,5,5,200,102,5,5,200,102,5,3,238,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,58,102,5,5,204,102,5,5,72,102,5,5,204,102,5,5,74,102,5,5,204,102,5,5,200,102,5,5,204,102,5,3,238,102,5,5,204,102,5,5,238,102,5,5,214,102,5,5,58,102,5,5,214,102,5,5,200,102,5,5,214,102,5,3,238,102,5,5,214,102,5,5,238,102,5,5,238,102,5,5,72,102,5,5,238,102,5,5,74,102,5,5,238,102,5,3,238,102,5,5,86,102,191,0,0,0,5,5,110,102,191,0,0,0,5,3,238,102,191,0,0,0,5,73,6,102,5,5,110,102,5,73,6,102,5,5,112,102,5,73,6,102,5,5,204,102,5,5,30,102,5,5,110,102,5,5,30,102,5,5,112,102,5,5,30,102,5,5,204,102,5,5,42,102,5,5,110,102,5,5,42,102,5,5,112,102,5,5,42,102,5,5,204,102,5,5,44,102,5,5,110,102,5,5,44,102,5,5,112,102,5,5,44,102,5,5,204,102,5,5,200,102,5,75,6,102,5,5,204,102,5,5,110,102,5,5,204,102,5,5,112,102,5,5,204,102,5,5,204,102,5,5,238,102,5,5,110,102,5,5,238,102,5,5,112,102,5,73,6,102,5,5,74,102,5,73,6,102,5,5,214,102,5,5,30,102,5,5,214,102,5,5,42,102,5,5,214,102,5,5,146,102,5,5,74,102,5,5,196,102,5,5,214,102,5,5,204,102,5,5,214,102,5,5,214,102,191,0,0,0,5,5,44,102,5,5,214,102,5,5,134,102,5,5,214,102,5,5,136,102,5,5,200,102,5,5,136,102,5,5,214,102,5,5,158,102,5,3,238,102,5,5,158,102,5,5,238,102,5,5,166,102,5,3,238,102,5,5,166,102,5,5,238,102,5,5,168,102,5,3,238,102,5,5,168,102,5,5,238,102,5,5,134,102,5,3,238,102,5,5,134,102,5,5,238,102,5,5,136,102,5,3,238,102,5,5,136,102,5,5,238,102,5,5,72,102,5,3,238,102,5,5,58,102,5,3,238,102,5,5,58,102,5,5,238,102,5,5,74,102,5,3,238,102,5,5,146,102,5,3,238,102,5,5,146,102,5,5,238,102,5,5,148,102,5,3,238,102,5,5,148,102,5,5,238,102,5,5,136,102,5,5,58,102,5,5,136,102,5,5,72,102,5,5,136,102,5,5,74,102,5,5,136,102,5,5,110,102,5,5,134,102,5,5,110,102,5,5,146,102,5,5,110,102,5,5,148,102,5,5,110,102,5,5,42,102,5,5,58,102,5,5,200,102,5,5,42,102,5,5,72,102,5,5,58,102,5,5,42,102,5,5,72,102,5,5,200,102,5,5,42,102,5,5,74,102,5,5,200,102,5,5,42,102,5,5,200,102,5,5,58,102,5,5,42,102,5,5,200,102,5,5,72,102,5,5,42,102,5,5,200,102,5,5,74,102,5,5,72,102,5,5,200,102,5,5,238,102,5,5,72,102,5,5,200,102,5,3,238,102,5,5,134,102,5,5,72,102,5,5,58,102,5,5,134,102,5,5,58,102,5,5,72,102,5,5,134,102,5,5,58,102,5,3,238,102,5,5,134,102,5,5,200,102,5,5,72,102,5,5,134,102,5,5,200,102,5,5,58,102,5,5,134,102,5,5,200,102,5,5,200,102,5,5,146,102,5,5,72,102,5,5,72,102,5,5,146,102,5,5,200,102,5,5,200,102,5,5,136,102,5,5,72,102,5,5,200,102,5,5,136,102,5,5,58,102,5,5,238,102,5,5,136,102,5,5,200,102,5,5,74,102,5,5,136,102,5,5,200,102,5,5,200,102,5,5,148,102,5,5,72,102,5,3,238,102,5,5,148,102,5,5,74,102,5,5,200,102,5,5,158,102,5,5,200,102,5,5,72,102,5,5,158,102,5,5,200,102,5,5,200,102,5,5,158,102,5,5,200,102,5,5,238,102,5,5,166,102,5,5,58,102,5,5,200,102,5,5,166,102,5,5,200,102,5,5,200,102,5,5,166,102,5,5,200,102,5,3,238,102,5,5,168,102,5,5,200,102,5,5,200,102,5,5,168,102,5,5,200,102,5,5,238,102,5,5,168,102,5,5,200,102,5,3,238,102,5,5,174,102,5,5,74,102,5,5,200,102,5,5,178,102,5,5,200,102,5,5,72,102,5,5,178,102,5,5,200,102,5,5,200,102,5,5,196,102,5,5,72,102,5,5,200,102,5,5,196,102,5,5,72,102,5,5,238,102,5,5,196,102,5,5,72,102,5,3,238,102,5,5,196,102,5,5,58,102,5,5,58,102,5,5,196,102,5,5,74,102,5,5,200,102,5,5,196,102,5,5,200,102,5,5,72,102,5,5,200,102,5,5,72,102,5,5,58,102,5,5,200,102,5,5,72,102,5,5,238,102,5,5,200,102,5,5,58,102,5,5,72,102,5,5,200,102,5,5,74,102,5,5,200,102,5,5,200,102,5,5,58,102,5,5,74,102,5,5,214,102,5,5,200,102,5,5,58,102,5,5,214,102,5,5,200,102,5,5,200,102,5,5,204,102,5,5,72,102,5,5,200,102,5,5,204,102,5,5,72,102,5,3,238,102,5,5,204,102,5,5,58,102,5,5,200,102,5,5,204,102,5,5,58,102,5,3,238,102,5,5,204,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,200,102,5,3,238,102,5,5,238,102,5,5,200,102,5,5,200,102,5,5,30,102,5,5,74,102,5,5,238,102,5,5,42,102,5,5,58,102,5,5,238,102,5,5,42,102,5,5,58,102,5,3,238,102,5,5,42,102,5,5,74,102,5,5,238,102,5,5,42,102,5,5,74,102,5,3,238,102,5,5,42,102,5,5,200,102,5,5,238,102,5,5,42,102,5,5,200,102,5,3,238,102,5,5,58,102,5,5,200,102,5,5,238,102,5,5,58,102,5,5,72,102,5,3,238,102,5,5,58,102,5,5,200,102,5,3,238,102,5,5,134,102,5,5,74,102,5,3,238,102,5,5,146,102,5,5,72,102,5,5,238,102,5,5,136,102,5,5,72,102,5,5,238,102,5,5,148,102,5,5,72,102,5,5,238,102,5,5,196,102,5,5,58,102,5,5,238,102,5,5,196,102,5,5,200,102,5,5,238,102,5,5,238,102,5,5,58,102,5,5,238,102,5,5,238,102,5,5,200,102,5,5,238,102,5,5,200,102,5,5,200,102,5,5,238,102,5,5,178,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,72,102,5,5,238,102,5,5,166,102,5,5,200,102,5,5,238,102,5,5,182,102,5,5,200,102,5,5,238,102,5,5,204,102,5,5,58,102,5,5,72,102,5,5,200,102,5,5,74,102,5,5,238,102,5,5,196,102,5,5,58,102,5,5,200,102,5,5,182,102,5,5,200,102,5,5,200,102,5,5,58,102,5,5,72,102,5,5,238,102,5,5,72,102,5,5,58,102,5,5,238,102,5,5,200,102,5,5,58,102,5,5,238,102,5,5,174,102,5,5,200,102,5,5,238,102,5,5,30,102,5,5,72,102,5,5,238,102,5,5,134,102,5,5,74,102,5,5,238,102,5,5,204,102,5,5,58,102,5,5,238,102,5,5,146,102,5,5,196,102,7,5,250,102,5,5,178,102,5,5,196,102,6,5,250,102,5,75,6,102,5,5,196,102,5,5,196,102,8,5,214,102,5,75,6,102,5,5,182,102,5,5,30,102,6,5,110,102,5,5,200,102,5,5,72,102,5,5,200,102,6,5,84,102,5,5,146,102,5,5,196,102,5,5,166,102,8,5,200,102,5,5,110,102,5,5,134,102,5,5,222,102,7,5,196,102,5,5,166,102,5,5,196,102,5,5,238,102,6,5,214,102,5,5,222,102,5,5,134,102,5,5,196,102,6,5,200,102,5,5,146,102,5,5,196,102,6,3,238,102,5,5,146,102,5,5,196,102,5,3,238,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,196,102,5,5,214,102,5,5,0,4,5,5,166,102,5,5,196,102,5,5,238,102,5,5,214,102,5,5,0,4,5,5,222,102,5,5,134,102,5,5,196,102,7,5,200,102,5,5,58,102,5,5,196,102,5,5,0,4,5,5,58,102,5,5,196,102,5,75,6,102,5,5,196,102,7,5,214,102,5,5,110,102,5,2,238,102,5,75,6,102,6,5,196,102,5,5,30,102,5,5,134,102,5,5,200,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,196,102,5,5,214,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,110,102,5,5,72,102,5,5,200,102,5,5,204,102,5,5,0,4,5,75,6,102,5,5,196,102,5,5,110,102,5,5,72,102,5,5,238,102,9,5,200,102,5,5,196,102,5,5,6,102,5,76,6,102,5,5,196,102,5,70,6,102,5,5,196,102,5,72,6,102,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,6,102,5,75,2,0,83,6,197,162,84,6,255,255,6,102,5,70,85,6,255,255,6,102,5,72,222,102,5,5,48,0,84,6,255,255,6,102,5,71,238,102,5,3,48,0,85,6,255,255,6,102,5,74,238,102,5,5,48,0,84,6,255,255,6,102,5,73,3,0,67,0,50,0,59,0,79,15,0,16,62,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,73,15,0,32,165,28,0,32,1,0,32,0,170,28,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,0,0,80,7,0,0,0,10,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,65,76,73,65,83,0,0,0,97,0,114,0,95,0,83,0,65,0,0,0,1,0,32,0,1,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,241,6,0,32,7,0,0,0,21,0,0,0,243,6,0,0,243,6,0,0,3,0,0,0,0,0,0,0,79,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,109,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,66,0,101,0,110,0,103,0,32,0,68,0,101,0,118,0,97,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,9,60,0,130,9,60,0,129,9,60,0,131,9,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,164,9,60,0,206,9,61,0,164,9,205,9,13,32,38,0,185,9,60,0,149,9,205,9,183,9,0,0,170,170,102,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,224,25,0,0,224,25,0,0,224,25,0,0,224,25,0,0,36,26,0,0,36,26,0,0,68,26,0,0,78,26,0,0,4,0,0,0,10,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,105,190,255,0,106,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,39,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,125,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,103,0,108,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,3,35,105,193,2,35,105,193,4,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,36,105,5,5,49,0,205,9,183,9,255,255,103,105,5,5,66,105,5,5,49,0,205,9,13,32,255,255,65,105,5,5,4,0,183,9,184,9,13,32,14,32,170,170,3,0,69,0,52,0,61,0,79,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,234,6,0,32,1,0,32,0,239,6,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,20,22,0,32,7,0,0,0,23,0,0,0,22,22,0,0,22,22,0,0,3,0,0,0,0,0,0,0,122,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,65,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,97,0,122,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,111,0,116,0,104,0,101,0,114,0,115,0,93,0,0,0,125,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,67,0,60,0,99,0,39,3,60,0,60,0,60,0,67,0,39,3,38,0,71,0,60,0,103,0,6,3,60,0,60,0,60,0,71,0,6,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,105,0,60,0,49,1,60,0,60,0,60,0,73,0,38,0,105,0,60,0,60,0,60,0,48,1,38,0,79,0,60,0,111,0,8,3,60,0,60,0,60,0,79,0,8,3,38,0,83,0,60,0,115,0,39,3,60,0,60,0,60,0,83,0,39,3,38,0,85,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,38,0,75,0,60,0,113,0,60,0,60,0,60,0,81,0,38,0,69,0,60,0,89,2,60,0,60,0,60,0,143,1,38,0,72,0,60,0,120,0,60,0,60,0,60,0,88,0,38,0,90,0,60,0,119,0,60,0,60,0,60,0,87,0,0,0,170,170,170,170,156,45,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,214,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,212,38,0,0,212,38,0,0,212,38,0,0,212,38,0,0,96,43,0,0,96,43,0,0,132,45,0,0,132,45,0,0,132,45,0,0,50,105,114,84,1,0,64,8,96,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,107,0,115,0,120,0,128,0,134,0,142,0,145,0,153,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,152,0,160,0,166,0,174,0,182,0,190,0,48,0,56,0,189,0,197,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,214,0,222,0,48,0,48,0,48,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,246,0,48,0,252,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,14,1,19,1,48,0,23,1,31,1,48,0,38,1,46,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,54,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,212,0,48,0,48,0,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,87,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,65,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,73,1,48,0,48,0,79,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,172,1,224,1,24,2,68,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,96,2,152,2,216,2,192,0,244,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,35,0,202,65,35,0,202,98,35,0,202,131,35,0,202,164,35,0,202,197,35,0,202,230,35,0,202,7,36,0,202,40,36,0,202,73,36,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,134,1,0,156,5,0,56,201,70,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,6,3,0,156,5,0,72,134,5,2,63,156,5,0,76,201,230,3,0,156,5,0,80,201,198,4,0,156,5,0,84,134,5,2,93,134,5,2,57,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,230,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,166,6,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,7,0,5,5,0,72,5,5,2,63,5,5,0,76,201,70,8,0,5,5,0,80,201,38,9,0,5,5,0,84,5,5,2,93,5,5,2,57,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,26,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,66,26,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,26,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,230,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,12,0,201,102,13,0,197,162,3,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,14,0,201,230,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,15,0,201,102,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,197,34,0,0,197,98,0,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,166,18,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,20,0,5,71,238,102,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,8,0,192,0,0,0,197,34,9,0,192,0,0,0,192,0,0,0,197,98,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,0,192,0,0,0,197,226,9,0,192,0,0,0,197,34,10,0,192,0,0,0,197,98,10,0,192,0,0,0,197,162,10,0,197,227,10,0,197,66,11,0,192,0,0,0,192,0,0,0,197,130,11,0,197,195,11,0,197,34,12,0,192,0,0,0,192,0,0,0,197,98,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,8,0,197,162,12,0,5,5,10,121,197,226,12,0,197,34,13,0,5,5,12,121,5,5,16,121,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,226,14,0,5,5,18,121,5,5,20,121,197,2,9,0,5,5,24,121,197,34,9,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,15,0,197,98,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,22,0,192,0,0,0,197,227,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,198,23,0,201,134,24,0,201,70,25,0,201,6,26,0,201,198,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,17,0,197,2,18,0,197,66,18,0,197,130,18,0,197,194,18,0,197,2,19,0,197,66,19,0,197,130,19,0,197,194,19,0,197,2,20,0,197,66,20,0,197,130,20,0,197,194,20,0,197,2,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,21,0,192,0,0,0,201,134,27,0,192,0,0,0,201,70,28,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,29,0,201,134,30,0,201,70,31,0,201,6,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,134,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,93,5,142,0,0,5,5,2,93,5,142,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,2,93,5,138,0,0,5,5,2,93,5,138,0,0,134,5,2,93,5,136,0,0,5,5,2,93,5,136,0,0,134,5,2,93,5,150,0,0,5,5,2,93,5,150,0,0,134,5,2,93,5,156,0,0,5,5,2,93,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,134,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,5,5,2,93,5,146,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,98,8,0,5,5,10,121,5,5,12,121,197,162,8,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,8,0,5,5,24,121,197,34,9,0,5,5,28,121,5,5,30,121,197,98,9,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,9,0,5,5,107,121,197,226,9,0,5,5,111,121,197,34,10,0,5,5,115,121,197,98,10,0,5,5,119,121,197,162,10,0,197,227,10,0,197,66,11,0,5,5,127,121,5,5,129,121,197,130,11,0,197,195,11,0,197,34,12,0,5,5,137,121,5,5,139,121,197,98,12,0,5,5,143,121,5,5,6,121,197,98,8,0,197,162,12,0,5,5,10,121,197,226,12,0,197,34,13,0,5,5,12,121,5,5,16,121,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,197,226,14,0,5,5,18,121,5,5,20,121,197,2,9,0,5,5,24,121,197,34,9,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,4,192,197,34,5,70,196,190,48,0,8,3,4,192,197,98,156,82,196,190,48,0,8,3,4,192,197,162,5,82,196,190,48,0,8,3,4,192,197,226,156,70,196,162,48,0,8,3,6,192,197,226,5,70,196,162,48,0,8,3,7,192,197,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,15,0,197,162,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,16,192,197,66,5,82,196,198,48,0,8,3,16,192,197,130,156,82,196,208,48,0,8,3,16,192,197,194,5,82,196,208,48,0,8,3,17,192,197,2,156,82,196,204,48,0,8,3,17,192,197,66,5,82,196,204,48,0,8,3,17,192,197,130,21,0,197,194,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,22,192,197,2,5,70,196,196,48,0,8,3,22,192,197,66,22,0,197,131,48,0,8,3,22,192,197,227,23,0,197,67,48,0,8,3,23,192,197,163,156,82,196,196,48,0,8,3,24,192,197,2,5,82,196,196,48,0,8,3,24,192,197,66,24,0,197,131,48,0,8,3,24,192,197,227,25,0,197,67,48,0,8,3,25,192,197,163,3,0,67,0,50,0,59,0,123,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,122,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,220,31,0,0,220,31,0,0,220,31,0,0,220,31,0,0,132,34,0,0,132,34,0,0,98,36,0,0,98,36,0,0,98,40,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,224,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,107,0,115,0,120,0,128,0,134,0,142,0,145,0,153,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,180,0,48,0,184,0,192,0,48,0,199,0,207,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,215,0,169,0,48,0,48,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,172,1,224,1,24,2,68,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,20,0,202,33,20,0,202,66,20,0,202,99,20,0,202,132,20,0,202,165,20,0,202,198,20,0,202,231,20,0,202,8,21,0,202,41,21,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,156,5,0,56,201,134,1,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,70,2,0,156,5,0,72,134,5,2,63,156,5,0,76,201,38,3,0,156,5,0,80,201,6,4,0,156,5,0,84,134,5,2,93,134,5,2,57,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,38,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,230,5,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,6,0,5,5,0,72,5,5,2,63,5,5,0,76,201,134,7,0,5,5,0,80,201,102,8,0,5,5,0,84,5,5,2,93,5,5,2,57,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,66,19,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,130,19,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,194,19,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,166,9,0,201,102,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,38,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,197,162,3,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,197,34,0,0,197,98,0,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,17,0,192,0,0,0,197,35,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,102,19,0,201,38,20,0,201,230,20,0,201,166,21,0,201,102,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,11,0,197,66,11,0,197,130,11,0,197,194,11,0,197,2,12,0,197,66,12,0,197,130,12,0,197,194,12,0,197,2,13,0,197,66,13,0,197,130,13,0,197,194,13,0,197,2,14,0,197,66,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,14,0,192,0,0,0,201,38,23,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,93,5,142,0,0,5,5,2,93,5,142,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,2,93,5,138,0,0,5,5,2,93,5,138,0,0,134,5,2,93,5,136,0,0,5,5,2,93,5,136,0,0,134,5,2,93,5,150,0,0,5,5,2,93,5,150,0,0,134,5,2,93,5,156,0,0,5,5,2,93,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,134,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,5,5,2,93,5,146,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,4,192,197,34,5,70,196,190,48,0,8,3,4,192,197,98,156,82,196,190,48,0,8,3,4,192,197,162,5,82,196,190,48,0,8,3,4,192,197,226,156,70,196,162,48,0,8,3,6,192,197,226,5,70,196,162,48,0,8,3,7,192,197,34,8,0,197,226,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,9,192,197,130,5,82,196,198,48,0,8,3,9,192,197,194,156,82,196,208,48,0,8,3,10,192,197,2,5,82,196,208,48,0,8,3,10,192,197,66,156,82,196,204,48,0,8,3,10,192,197,130,5,82,196,204,48,0,8,3,10,192,197,194,15,0,197,2,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,15,192,197,66,5,70,196,196,48,0,8,3,15,192,197,130,15,0,197,195,48,0,8,3,16,192,197,35,16,0,197,131,48,0,8,3,16,192,197,227,156,82,196,196,48,0,8,3,17,192,197,66,5,82,196,196,48,0,8,3,17,192,197,130,17,0,197,195,48,0,8,3,18,192,197,35,18,0,197,131,48,0,8,3,18,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,185,92,30,4,186,108,185,112,185,120,185,124,186,128,32,4,185,144,185,116,185,152,34,4,185,164,36,4,185,180,185,192,185,96,185,184,185,188,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,40,4,168,92,168,104,168,108,168,112,168,120,168,124,168,128,42,4,168,144,168,116,168,152,44,4,168,164,46,4,168,180,168,192,168,96,168,184,168,188,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,77,154,77,250,77,90,78,185,101,153,101,249,101,89,102,217,72,154,130,185,137,153,137,249,137,153,138,185,140,136,14,217,138,185,173,153,173,249,173,185,176,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,77,136,77,232,77,72,78,168,105,136,105,232,105,72,106,200,72,136,130,168,137,136,137,232,137,136,138,168,140,128,14,200,138,168,173,136,173,232,173,168,176,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,185,88,168,88,185,86,168,86,48,4,50,4,249,93,232,93,89,95,72,95,153,102,136,106,57,103,40,107,217,101,200,105,52,4,8,107,185,104,168,100,6,8,8,8,250,109,232,109,249,114,232,114,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,250,157,232,157,185,160,168,160,26,158,8,158,249,166,232,166,25,166,8,166,185,168,168,168,153,174,136,174,57,175,40,175,217,173,200,173,57,174,40,174,121,174,104,174,54,4,56,4,249,193,232,193,249,185,232,185,89,186,153,189,136,189,185,190,168,190,25,190,8,190,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,156,169,156,200,56,169,76,187,104,187,108,170,104,169,108,169,200,169,128,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,100,255,5,185,136,255,5,186,156,255,5,185,172,255,5,168,64,255,5,168,84,255,5,168,136,255,5,168,156,255,5,168,172,255,5,249,86,255,5,232,86,255,5,25,103,255,5,25,175,255,5,8,175,255,1,170,170,3,0,67,0,50,0,59,0,235,11,0,16,71,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,227,11,0,32,11,22,0,32,1,0,32,0,16,22,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,236,6,0,32,7,0,0,0,21,0,0,0,238,6,0,0,238,6,0,0,3,0,0,0,0,0,0,0,39,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,21,4,60,0,81,4,60,0,60,0,60,0,1,4,38,0,67,4,60,0,94,4,60,0,60,0,60,0,14,4,0,0,170,170,244,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,96,26,0,0,96,26,0,0,96,26,0,0,96,26,0,0,164,26,0,0,164,26,0,0,220,26,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,137,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,120,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,173,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,97,174,5,48,0,8,3,255,255,41,97,134,5,172,97,174,5,48,0,6,3,255,255,173,97,134,5,40,97,5,5,48,0,8,3,255,255,41,97,5,5,172,97,5,5,48,0,6,3,255,255,173,97,5,5,3,0,69,0,52,0,61,0,39,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,229,6,0,32,1,0,32,0,234,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,208,32,0,32,7,0,0,0,24,0,0,0,210,32,0,0,210,32,0,0,3,0,0,0,0,0,0,0,112,9,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,116,114,97,100,105,116,105,111,110,97,108,0,0,0,52,0,50,0,0,0,85,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,66,0,101,0,110,0,103,0,32,0,68,0,101,0,118,0,97,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,9,60,0,130,9,60,0,131,9,60,0,129,9,0,0,239,223,81,18,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,66,0,101,0,110,0,103,0,32,0,68,0,101,0,118,0,97,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,9,60,0,130,9,60,0,131,9,60,0,129,9,60,0,149,9,205,9,60,0,150,9,205,9,60,0,151,9,205,9,60,0,152,9,205,9,60,0,153,9,205,9,60,0,154,9,205,9,60,0,155,9,205,9,60,0,156,9,205,9,60,0,157,9,205,9,60,0,158,9,205,9,60,0,159,9,205,9,60,0,160,9,205,9,60,0,161,9,205,9,60,0,162,9,205,9,60,0,163,9,205,9,60,0,206,9,61,0,164,9,205,9,13,32,60,0,60,0,164,9,205,9,60,0,165,9,205,9,60,0,166,9,205,9,60,0,167,9,205,9,60,0,168,9,205,9,60,0,170,9,205,9,60,0,171,9,205,9,60,0,172,9,205,9,60,0,173,9,205,9,60,0,174,9,205,9,60,0,175,9,205,9,60,0,176,9,205,9,60,0,240,9,205,9,60,0,178,9,205,9,60,0,241,9,205,9,60,0,182,9,205,9,60,0,183,9,205,9,60,0,184,9,205,9,60,0,185,9,205,9,38,0,149,9,205,9,133,9,61,0,149,9,38,0,149,9,205,9,134,9,61,0,149,9,190,9,38,0,149,9,205,9,135,9,61,0,149,9,191,9,38,0,149,9,205,9,136,9,61,0,149,9,192,9,38,0,149,9,205,9,137,9,61,0,149,9,193,9,38,0,149,9,205,9,138,9,61,0,149,9,194,9,38,0,149,9,205,9,139,9,61,0,149,9,195,9,38,0,149,9,205,9,224,9,61,0,149,9,196,9,38,0,149,9,205,9,140,9,61,0,149,9,226,9,38,0,149,9,205,9,225,9,61,0,149,9,227,9,38,0,149,9,205,9,143,9,61,0,149,9,199,9,38,0,149,9,205,9,144,9,61,0,149,9,200,9,38,0,149,9,205,9,147,9,61,0,149,9,203,9,38,0,149,9,205,9,148,9,61,0,149,9,204,9,38,0,150,9,205,9,133,9,61,0,150,9,38,0,150,9,205,9,134,9,61,0,150,9,190,9,38,0,150,9,205,9,135,9,61,0,150,9,191,9,38,0,150,9,205,9,136,9,61,0,150,9,192,9,38,0,150,9,205,9,137,9,61,0,150,9,193,9,38,0,150,9,205,9,138,9,61,0,150,9,194,9,38,0,150,9,205,9,139,9,61,0,150,9,195,9,38,0,150,9,205,9,224,9,61,0,150,9,196,9,38,0,150,9,205,9,140,9,61,0,150,9,226,9,38,0,150,9,205,9,225,9,61,0,150,9,227,9,38,0,150,9,205,9,143,9,61,0,150,9,199,9,38,0,150,9,205,9,144,9,61,0,150,9,200,9,38,0,150,9,205,9,147,9,61,0,150,9,203,9,38,0,150,9,205,9,148,9,61,0,150,9,204,9,38,0,151,9,205,9,133,9,61,0,151,9,38,0,151,9,205,9,134,9,61,0,151,9,190,9,38,0,151,9,205,9,135,9,61,0,151,9,191,9,38,0,151,9,205,9,136,9,61,0,151,9,192,9,38,0,151,9,205,9,137,9,61,0,151,9,193,9,38,0,151,9,205,9,138,9,61,0,151,9,194,9,38,0,151,9,205,9,139,9,61,0,151,9,195,9,38,0,151,9,205,9,224,9,61,0,151,9,196,9,38,0,151,9,205,9,140,9,61,0,151,9,226,9,38,0,151,9,205,9,225,9,61,0,151,9,227,9,38,0,151,9,205,9,143,9,61,0,151,9,199,9,38,0,151,9,205,9,144,9,61,0,151,9,200,9,38,0,151,9,205,9,147,9,61,0,151,9,203,9,38,0,151,9,205,9,148,9,61,0,151,9,204,9,38,0,152,9,205,9,133,9,61,0,152,9,38,0,152,9,205,9,134,9,61,0,152,9,190,9,38,0,152,9,205,9,135,9,61,0,152,9,191,9,38,0,152,9,205,9,136,9,61,0,152,9,192,9,38,0,152,9,205,9,137,9,61,0,152,9,193,9,38,0,152,9,205,9,138,9,61,0,152,9,194,9,38,0,152,9,205,9,139,9,61,0,152,9,195,9,38,0,152,9,205,9,224,9,61,0,152,9,196,9,38,0,152,9,205,9,140,9,61,0,152,9,226,9,38,0,152,9,205,9,225,9,61,0,152,9,227,9,38,0,152,9,205,9,143,9,61,0,152,9,199,9,38,0,152,9,205,9,144,9,61,0,152,9,200,9,38,0,152,9,205,9,147,9,61,0,152,9,203,9,38,0,152,9,205,9,148,9,61,0,152,9,204,9,38,0,153,9,205,9,133,9,61,0,153,9,38,0,153,9,205,9,134,9,61,0,153,9,190,9,38,0,153,9,205,9,135,9,61,0,153,9,191,9,38,0,153,9,205,9,136,9,61,0,153,9,192,9,38,0,153,9,205,9,137,9,61,0,153,9,193,9,38,0,153,9,205,9,138,9,61,0,153,9,194,9,38,0,153,9,205,9,139,9,61,0,153,9,195,9,38,0,153,9,205,9,224,9,61,0,153,9,196,9,38,0,153,9,205,9,140,9,61,0,153,9,226,9,38,0,153,9,205,9,225,9,61,0,153,9,227,9,38,0,153,9,205,9,143,9,61,0,153,9,199,9,38,0,153,9,205,9,144,9,61,0,153,9,200,9,38,0,153,9,205,9,147,9,61,0,153,9,203,9,38,0,153,9,205,9,148,9,61,0,153,9,204,9,38,0,154,9,205,9,133,9,61,0,154,9,38,0,154,9,205,9,134,9,61,0,154,9,190,9,38,0,154,9,205,9,135,9,61,0,154,9,191,9,38,0,154,9,205,9,136,9,61,0,154,9,192,9,38,0,154,9,205,9,137,9,61,0,154,9,193,9,38,0,154,9,205,9,138,9,61,0,154,9,194,9,38,0,154,9,205,9,139,9,61,0,154,9,195,9,38,0,154,9,205,9,224,9,61,0,154,9,196,9,38,0,154,9,205,9,140,9,61,0,154,9,226,9,38,0,154,9,205,9,225,9,61,0,154,9,227,9,38,0,154,9,205,9,143,9,61,0,154,9,199,9,38,0,154,9,205,9,144,9,61,0,154,9,200,9,38,0,154,9,205,9,147,9,61,0,154,9,203,9,38,0,154,9,205,9,148,9,61,0,154,9,204,9,38,0,155,9,205,9,133,9,61,0,155,9,38,0,155,9,205,9,134,9,61,0,155,9,190,9,38,0,155,9,205,9,135,9,61,0,155,9,191,9,38,0,155,9,205,9,136,9,61,0,155,9,192,9,38,0,155,9,205,9,137,9,61,0,155,9,193,9,38,0,155,9,205,9,138,9,61,0,155,9,194,9,38,0,155,9,205,9,139,9,61,0,155,9,195,9,38,0,155,9,205,9,224,9,61,0,155,9,196,9,38,0,155,9,205,9,140,9,61,0,155,9,226,9,38,0,155,9,205,9,225,9,61,0,155,9,227,9,38,0,155,9,205,9,143,9,61,0,155,9,199,9,38,0,155,9,205,9,144,9,61,0,155,9,200,9,38,0,155,9,205,9,147,9,61,0,155,9,203,9,38,0,155,9,205,9,148,9,61,0,155,9,204,9,38,0,156,9,205,9,133,9,61,0,156,9,38,0,156,9,205,9,134,9,61,0,156,9,190,9,38,0,156,9,205,9,135,9,61,0,156,9,191,9,38,0,156,9,205,9,136,9,61,0,156,9,192,9,38,0,156,9,205,9,137,9,61,0,156,9,193,9,38,0,156,9,205,9,138,9,61,0,156,9,194,9,38,0,156,9,205,9,139,9,61,0,156,9,195,9,38,0,156,9,205,9,224,9,61,0,156,9,196,9,38,0,156,9,205,9,140,9,61,0,156,9,226,9,38,0,156,9,205,9,225,9,61,0,156,9,227,9,38,0,156,9,205,9,143,9,61,0,156,9,199,9,38,0,156,9,205,9,144,9,61,0,156,9,200,9,38,0,156,9,205,9,147,9,61,0,156,9,203,9,38,0,156,9,205,9,148,9,61,0,156,9,204,9,38,0,157,9,205,9,133,9,61,0,157,9,38,0,157,9,205,9,134,9,61,0,157,9,190,9,38,0,157,9,205,9,135,9,61,0,157,9,191,9,38,0,157,9,205,9,136,9,61,0,157,9,192,9,38,0,157,9,205,9,137,9,61,0,157,9,193,9,38,0,157,9,205,9,138,9,61,0,157,9,194,9,38,0,157,9,205,9,139,9,61,0,157,9,195,9,38,0,157,9,205,9,224,9,61,0,157,9,196,9,38,0,157,9,205,9,140,9,61,0,157,9,226,9,38,0,157,9,205,9,225,9,61,0,157,9,227,9,38,0,157,9,205,9,143,9,61,0,157,9,199,9,38,0,157,9,205,9,144,9,61,0,157,9,200,9,38,0,157,9,205,9,147,9,61,0,157,9,203,9,38,0,157,9,205,9,148,9,61,0,157,9,204,9,38,0,158,9,205,9,133,9,61,0,158,9,38,0,158,9,205,9,134,9,61,0,158,9,190,9,38,0,158,9,205,9,135,9,61,0,158,9,191,9,38,0,158,9,205,9,136,9,61,0,158,9,192,9,38,0,158,9,205,9,137,9,61,0,158,9,193,9,38,0,158,9,205,9,138,9,61,0,158,9,194,9,38,0,158,9,205,9,139,9,61,0,158,9,195,9,38,0,158,9,205,9,224,9,61,0,158,9,196,9,38,0,158,9,205,9,140,9,61,0,158,9,226,9,38,0,158,9,205,9,225,9,61,0,158,9,227,9,38,0,158,9,205,9,143,9,61,0,158,9,199,9,38,0,158,9,205,9,144,9,61,0,158,9,200,9,38,0,158,9,205,9,147,9,61,0,158,9,203,9,38,0,158,9,205,9,148,9,61,0,158,9,204,9,38,0,159,9,205,9,133,9,61,0,159,9,38,0,159,9,205,9,134,9,61,0,159,9,190,9,38,0,159,9,205,9,135,9,61,0,159,9,191,9,38,0,159,9,205,9,136,9,61,0,159,9,192,9,38,0,159,9,205,9,137,9,61,0,159,9,193,9,38,0,159,9,205,9,138,9,61,0,159,9,194,9,38,0,159,9,205,9,139,9,61,0,159,9,195,9,38,0,159,9,205,9,224,9,61,0,159,9,196,9,38,0,159,9,205,9,140,9,61,0,159,9,226,9,38,0,159,9,205,9,225,9,61,0,159,9,227,9,38,0,159,9,205,9,143,9,61,0,159,9,199,9,38,0,159,9,205,9,144,9,61,0,159,9,200,9,38,0,159,9,205,9,147,9,61,0,159,9,203,9,38,0,159,9,205,9,148,9,61,0,159,9,204,9,38,0,160,9,205,9,133,9,61,0,160,9,38,0,160,9,205,9,134,9,61,0,160,9,190,9,38,0,160,9,205,9,135,9,61,0,160,9,191,9,38,0,160,9,205,9,136,9,61,0,160,9,192,9,38,0,160,9,205,9,137,9,61,0,160,9,193,9,38,0,160,9,205,9,138,9,61,0,160,9,194,9,38,0,160,9,205,9,139,9,61,0,160,9,195,9,38,0,160,9,205,9,224,9,61,0,160,9,196,9,38,0,160,9,205,9,140,9,61,0,160,9,226,9,38,0,160,9,205,9,225,9,61,0,160,9,227,9,38,0,160,9,205,9,143,9,61,0,160,9,199,9,38,0,160,9,205,9,144,9,61,0,160,9,200,9,38,0,160,9,205,9,147,9,61,0,160,9,203,9,38,0,160,9,205,9,148,9,61,0,160,9,204,9,38,0,161,9,205,9,133,9,61,0,161,9,38,0,161,9,205,9,134,9,61,0,161,9,190,9,38,0,161,9,205,9,135,9,61,0,161,9,191,9,38,0,161,9,205,9,136,9,61,0,161,9,192,9,38,0,161,9,205,9,137,9,61,0,161,9,193,9,38,0,161,9,205,9,138,9,61,0,161,9,194,9,38,0,161,9,205,9,139,9,61,0,161,9,195,9,38,0,161,9,205,9,224,9,61,0,161,9,196,9,38,0,161,9,205,9,140,9,61,0,161,9,226,9,38,0,161,9,205,9,225,9,61,0,161,9,227,9,38,0,161,9,205,9,143,9,61,0,161,9,199,9,38,0,161,9,205,9,144,9,61,0,161,9,200,9,38,0,161,9,205,9,147,9,61,0,161,9,203,9,38,0,161,9,205,9,148,9,61,0,161,9,204,9,38,0,162,9,205,9,133,9,61,0,162,9,38,0,162,9,205,9,134,9,61,0,162,9,190,9,38,0,162,9,205,9,135,9,61,0,162,9,191,9,38,0,162,9,205,9,136,9,61,0,162,9,192,9,38,0,162,9,205,9,137,9,61,0,162,9,193,9,38,0,162,9,205,9,138,9,61,0,162,9,194,9,38,0,162,9,205,9,139,9,61,0,162,9,195,9,38,0,162,9,205,9,224,9,61,0,162,9,196,9,38,0,162,9,205,9,140,9,61,0,162,9,226,9,38,0,162,9,205,9,225,9,61,0,162,9,227,9,38,0,162,9,205,9,143,9,61,0,162,9,199,9,38,0,162,9,205,9,144,9,61,0,162,9,200,9,38,0,162,9,205,9,147,9,61,0,162,9,203,9,38,0,162,9,205,9,148,9,61,0,162,9,204,9,38,0,163,9,205,9,133,9,61,0,163,9,38,0,163,9,205,9,134,9,61,0,163,9,190,9,38,0,163,9,205,9,135,9,61,0,163,9,191,9,38,0,163,9,205,9,136,9,61,0,163,9,192,9,38,0,163,9,205,9,137,9,61,0,163,9,193,9,38,0,163,9,205,9,138,9,61,0,163,9,194,9,38,0,163,9,205,9,139,9,61,0,163,9,195,9,38,0,163,9,205,9,224,9,61,0,163,9,196,9,38,0,163,9,205,9,140,9,61,0,163,9,226,9,38,0,163,9,205,9,225,9,61,0,163,9,227,9,38,0,163,9,205,9,143,9,61,0,163,9,199,9,38,0,163,9,205,9,144,9,61,0,163,9,200,9,38,0,163,9,205,9,147,9,61,0,163,9,203,9,38,0,163,9,205,9,148,9,61,0,163,9,204,9,38,0,164,9,205,9,133,9,61,0,164,9,38,0,164,9,205,9,134,9,61,0,164,9,190,9,38,0,164,9,205,9,135,9,61,0,164,9,191,9,38,0,164,9,205,9,136,9,61,0,164,9,192,9,38,0,164,9,205,9,137,9,61,0,164,9,193,9,38,0,164,9,205,9,138,9,61,0,164,9,194,9,38,0,164,9,205,9,139,9,61,0,164,9,195,9,38,0,164,9,205,9,224,9,61,0,164,9,196,9,38,0,164,9,205,9,140,9,61,0,164,9,226,9,38,0,164,9,205,9,225,9,61,0,164,9,227,9,38,0,164,9,205,9,143,9,61,0,164,9,199,9,38,0,164,9,205,9,144,9,61,0,164,9,200,9,38,0,164,9,205,9,147,9,61,0,164,9,203,9,38,0,164,9,205,9,148,9,61,0,164,9,204,9,38,0,165,9,205,9,133,9,61,0,165,9,38,0,165,9,205,9,134,9,61,0,165,9,190,9,38,0,165,9,205,9,135,9,61,0,165,9,191,9,38,0,165,9,205,9,136,9,61,0,165,9,192,9,38,0,165,9,205,9,137,9,61,0,165,9,193,9,38,0,165,9,205,9,138,9,61,0,165,9,194,9,38,0,165,9,205,9,139,9,61,0,165,9,195,9,38,0,165,9,205,9,224,9,61,0,165,9,196,9,38,0,165,9,205,9,140,9,61,0,165,9,226,9,38,0,165,9,205,9,225,9,61,0,165,9,227,9,38,0,165,9,205,9,143,9,61,0,165,9,199,9,38,0,165,9,205,9,144,9,61,0,165,9,200,9,38,0,165,9,205,9,147,9,61,0,165,9,203,9,38,0,165,9,205,9,148,9,61,0,165,9,204,9,38,0,166,9,205,9,133,9,61,0,166,9,38,0,166,9,205,9,134,9,61,0,166,9,190,9,38,0,166,9,205,9,135,9,61,0,166,9,191,9,38,0,166,9,205,9,136,9,61,0,166,9,192,9,38,0,166,9,205,9,137,9,61,0,166,9,193,9,38,0,166,9,205,9,138,9,61,0,166,9,194,9,38,0,166,9,205,9,139,9,61,0,166,9,195,9,38,0,166,9,205,9,224,9,61,0,166,9,196,9,38,0,166,9,205,9,140,9,61,0,166,9,226,9,38,0,166,9,205,9,225,9,61,0,166,9,227,9,38,0,166,9,205,9,143,9,61,0,166,9,199,9,38,0,166,9,205,9,144,9,61,0,166,9,200,9,38,0,166,9,205,9,147,9,61,0,166,9,203,9,38,0,166,9,205,9,148,9,61,0,166,9,204,9,38,0,167,9,205,9,133,9,61,0,167,9,38,0,167,9,205,9,134,9,61,0,167,9,190,9,38,0,167,9,205,9,135,9,61,0,167,9,191,9,38,0,167,9,205,9,136,9,61,0,167,9,192,9,38,0,167,9,205,9,137,9,61,0,167,9,193,9,38,0,167,9,205,9,138,9,61,0,167,9,194,9,38,0,167,9,205,9,139,9,61,0,167,9,195,9,38,0,167,9,205,9,224,9,61,0,167,9,196,9,38,0,167,9,205,9,140,9,61,0,167,9,226,9,38,0,167,9,205,9,225,9,61,0,167,9,227,9,38,0,167,9,205,9,143,9,61,0,167,9,199,9,38,0,167,9,205,9,144,9,61,0,167,9,200,9,38,0,167,9,205,9,147,9,61,0,167,9,203,9,38,0,167,9,205,9,148,9,61,0,167,9,204,9,38,0,168,9,205,9,133,9,61,0,168,9,38,0,168,9,205,9,134,9,61,0,168,9,190,9,38,0,168,9,205,9,135,9,61,0,168,9,191,9,38,0,168,9,205,9,136,9,61,0,168,9,192,9,38,0,168,9,205,9,137,9,61,0,168,9,193,9,38,0,168,9,205,9,138,9,61,0,168,9,194,9,38,0,168,9,205,9,139,9,61,0,168,9,195,9,38,0,168,9,205,9,224,9,61,0,168,9,196,9,38,0,168,9,205,9,140,9,61,0,168,9,226,9,38,0,168,9,205,9,225,9,61,0,168,9,227,9,38,0,168,9,205,9,143,9,61,0,168,9,199,9,38,0,168,9,205,9,144,9,61,0,168,9,200,9,38,0,168,9,205,9,147,9,61,0,168,9,203,9,38,0,168,9,205,9,148,9,61,0,168,9,204,9,38,0,170,9,205,9,133,9,61,0,170,9,38,0,170,9,205,9,134,9,61,0,170,9,190,9,38,0,170,9,205,9,135,9,61,0,170,9,191,9,38,0,170,9,205,9,136,9,61,0,170,9,192,9,38,0,170,9,205,9,137,9,61,0,170,9,193,9,38,0,170,9,205,9,138,9,61,0,170,9,194,9,38,0,170,9,205,9,139,9,61,0,170,9,195,9,38,0,170,9,205,9,224,9,61,0,170,9,196,9,38,0,170,9,205,9,140,9,61,0,170,9,226,9,38,0,170,9,205,9,225,9,61,0,170,9,227,9,38,0,170,9,205,9,143,9,61,0,170,9,199,9,38,0,170,9,205,9,144,9,61,0,170,9,200,9,38,0,170,9,205,9,147,9,61,0,170,9,203,9,38,0,170,9,205,9,148,9,61,0,170,9,204,9,38,0,171,9,205,9,133,9,61,0,171,9,38,0,171,9,205,9,134,9,61,0,171,9,190,9,38,0,171,9,205,9,135,9,61,0,171,9,191,9,38,0,171,9,205,9,136,9,61,0,171,9,192,9,38,0,171,9,205,9,137,9,61,0,171,9,193,9,38,0,171,9,205,9,138,9,61,0,171,9,194,9,38,0,171,9,205,9,139,9,61,0,171,9,195,9,38,0,171,9,205,9,224,9,61,0,171,9,196,9,38,0,171,9,205,9,140,9,61,0,171,9,226,9,38,0,171,9,205,9,225,9,61,0,171,9,227,9,38,0,171,9,205,9,143,9,61,0,171,9,199,9,38,0,171,9,205,9,144,9,61,0,171,9,200,9,38,0,171,9,205,9,147,9,61,0,171,9,203,9,38,0,171,9,205,9,148,9,61,0,171,9,204,9,38,0,172,9,205,9,133,9,61,0,172,9,38,0,172,9,205,9,134,9,61,0,172,9,190,9,38,0,172,9,205,9,135,9,61,0,172,9,191,9,38,0,172,9,205,9,136,9,61,0,172,9,192,9,38,0,172,9,205,9,137,9,61,0,172,9,193,9,38,0,172,9,205,9,138,9,61,0,172,9,194,9,38,0,172,9,205,9,139,9,61,0,172,9,195,9,38,0,172,9,205,9,224,9,61,0,172,9,196,9,38,0,172,9,205,9,140,9,61,0,172,9,226,9,38,0,172,9,205,9,225,9,61,0,172,9,227,9,38,0,172,9,205,9,143,9,61,0,172,9,199,9,38,0,172,9,205,9,144,9,61,0,172,9,200,9,38,0,172,9,205,9,147,9,61,0,172,9,203,9,38,0,172,9,205,9,148,9,61,0,172,9,204,9,38,0,173,9,205,9,133,9,61,0,173,9,38,0,173,9,205,9,134,9,61,0,173,9,190,9,38,0,173,9,205,9,135,9,61,0,173,9,191,9,38,0,173,9,205,9,136,9,61,0,173,9,192,9,38,0,173,9,205,9,137,9,61,0,173,9,193,9,38,0,173,9,205,9,138,9,61,0,173,9,194,9,38,0,173,9,205,9,139,9,61,0,173,9,195,9,38,0,173,9,205,9,224,9,61,0,173,9,196,9,38,0,173,9,205,9,140,9,61,0,173,9,226,9,38,0,173,9,205,9,225,9,61,0,173,9,227,9,38,0,173,9,205,9,143,9,61,0,173,9,199,9,38,0,173,9,205,9,144,9,61,0,173,9,200,9,38,0,173,9,205,9,147,9,61,0,173,9,203,9,38,0,173,9,205,9,148,9,61,0,173,9,204,9,38,0,174,9,205,9,133,9,61,0,174,9,38,0,174,9,205,9,134,9,61,0,174,9,190,9,38,0,174,9,205,9,135,9,61,0,174,9,191,9,38,0,174,9,205,9,136,9,61,0,174,9,192,9,38,0,174,9,205,9,137,9,61,0,174,9,193,9,38,0,174,9,205,9,138,9,61,0,174,9,194,9,38,0,174,9,205,9,139,9,61,0,174,9,195,9,38,0,174,9,205,9,224,9,61,0,174,9,196,9,38,0,174,9,205,9,140,9,61,0,174,9,226,9,38,0,174,9,205,9,225,9,61,0,174,9,227,9,38,0,174,9,205,9,143,9,61,0,174,9,199,9,38,0,174,9,205,9,144,9,61,0,174,9,200,9,38,0,174,9,205,9,147,9,61,0,174,9,203,9,38,0,174,9,205,9,148,9,61,0,174,9,204,9,38,0,175,9,205,9,133,9,61,0,175,9,38,0,175,9,205,9,134,9,61,0,175,9,190,9,38,0,175,9,205,9,135,9,61,0,175,9,191,9,38,0,175,9,205,9,136,9,61,0,175,9,192,9,38,0,175,9,205,9,137,9,61,0,175,9,193,9,38,0,175,9,205,9,138,9,61,0,175,9,194,9,38,0,175,9,205,9,139,9,61,0,175,9,195,9,38,0,175,9,205,9,224,9,61,0,175,9,196,9,38,0,175,9,205,9,140,9,61,0,175,9,226,9,38,0,175,9,205,9,225,9,61,0,175,9,227,9,38,0,175,9,205,9,143,9,61,0,175,9,199,9,38,0,175,9,205,9,144,9,61,0,175,9,200,9,38,0,175,9,205,9,147,9,61,0,175,9,203,9,38,0,175,9,205,9,148,9,61,0,175,9,204,9,38,0,176,9,205,9,133,9,61,0,176,9,38,0,176,9,205,9,134,9,61,0,176,9,190,9,38,0,176,9,205,9,135,9,61,0,176,9,191,9,38,0,176,9,205,9,136,9,61,0,176,9,192,9,38,0,176,9,205,9,137,9,61,0,176,9,193,9,38,0,176,9,205,9,138,9,61,0,176,9,194,9,38,0,176,9,205,9,139,9,61,0,176,9,195,9,38,0,176,9,205,9,224,9,61,0,176,9,196,9,38,0,176,9,205,9,140,9,61,0,176,9,226,9,38,0,176,9,205,9,225,9,61,0,176,9,227,9,38,0,176,9,205,9,143,9,61,0,176,9,199,9,38,0,176,9,205,9,144,9,61,0,176,9,200,9,38,0,176,9,205,9,147,9,61,0,176,9,203,9,38,0,176,9,205,9,148,9,61,0,176,9,204,9,38,0,240,9,205,9,133,9,61,0,240,9,38,0,240,9,205,9,134,9,61,0,240,9,190,9,38,0,240,9,205,9,135,9,61,0,240,9,191,9,38,0,240,9,205,9,136,9,61,0,240,9,192,9,38,0,240,9,205,9,137,9,61,0,240,9,193,9,38,0,240,9,205,9,138,9,61,0,240,9,194,9,38,0,240,9,205,9,139,9,61,0,240,9,195,9,38,0,240,9,205,9,224,9,61,0,240,9,196,9,38,0,240,9,205,9,140,9,61,0,240,9,226,9,38,0,240,9,205,9,225,9,61,0,240,9,227,9,38,0,240,9,205,9,143,9,61,0,240,9,199,9,38,0,240,9,205,9,144,9,61,0,240,9,200,9,38,0,240,9,205,9,147,9,61,0,240,9,203,9,38,0,240,9,205,9,148,9,61,0,240,9,204,9,38,0,178,9,205,9,133,9,61,0,178,9,38,0,178,9,205,9,134,9,61,0,178,9,190,9,38,0,178,9,205,9,135,9,61,0,178,9,191,9,38,0,178,9,205,9,136,9,61,0,178,9,192,9,38,0,178,9,205,9,137,9,61,0,178,9,193,9,38,0,178,9,205,9,138,9,61,0,178,9,194,9,38,0,178,9,205,9,139,9,61,0,178,9,195,9,38,0,178,9,205,9,224,9,61,0,178,9,196,9,38,0,178,9,205,9,140,9,61,0,178,9,226,9,38,0,178,9,205,9,225,9,61,0,178,9,227,9,38,0,178,9,205,9,143,9,61,0,178,9,199,9,38,0,178,9,205,9,144,9,61,0,178,9,200,9,38,0,178,9,205,9,147,9,61,0,178,9,203,9,38,0,178,9,205,9,148,9,61,0,178,9,204,9,38,0,241,9,205,9,133,9,61,0,241,9,38,0,241,9,205,9,134,9,61,0,241,9,190,9,38,0,241,9,205,9,135,9,61,0,241,9,191,9,38,0,241,9,205,9,136,9,61,0,241,9,192,9,38,0,241,9,205,9,137,9,61,0,241,9,193,9,38,0,241,9,205,9,138,9,61,0,241,9,194,9,38,0,241,9,205,9,139,9,61,0,241,9,195,9,38,0,241,9,205,9,224,9,61,0,241,9,196,9,38,0,241,9,205,9,140,9,61,0,241,9,226,9,38,0,241,9,205,9,225,9,61,0,241,9,227,9,38,0,241,9,205,9,143,9,61,0,241,9,199,9,38,0,241,9,205,9,144,9,61,0,241,9,200,9,38,0,241,9,205,9,147,9,61,0,241,9,203,9,38,0,241,9,205,9,148,9,61,0,241,9,204,9,38,0,182,9,205,9,133,9,61,0,182,9,38,0,182,9,205,9,134,9,61,0,182,9,190,9,38,0,182,9,205,9,135,9,61,0,182,9,191,9,38,0,182,9,205,9,136,9,61,0,182,9,192,9,38,0,182,9,205,9,137,9,61,0,182,9,193,9,38,0,182,9,205,9,138,9,61,0,182,9,194,9,38,0,182,9,205,9,139,9,61,0,182,9,195,9,38,0,182,9,205,9,224,9,61,0,182,9,196,9,38,0,182,9,205,9,140,9,61,0,182,9,226,9,38,0,182,9,205,9,225,9,61,0,182,9,227,9,38,0,182,9,205,9,143,9,61,0,182,9,199,9,38,0,182,9,205,9,144,9,61,0,182,9,200,9,38,0,182,9,205,9,147,9,61,0,182,9,203,9,38,0,182,9,205,9,148,9,61,0,182,9,204,9,38,0,183,9,205,9,133,9,61,0,183,9,38,0,183,9,205,9,134,9,61,0,183,9,190,9,38,0,183,9,205,9,135,9,61,0,183,9,191,9,38,0,183,9,205,9,136,9,61,0,183,9,192,9,38,0,183,9,205,9,137,9,61,0,183,9,193,9,38,0,183,9,205,9,138,9,61,0,183,9,194,9,38,0,183,9,205,9,139,9,61,0,183,9,195,9,38,0,183,9,205,9,224,9,61,0,183,9,196,9,38,0,183,9,205,9,140,9,61,0,183,9,226,9,38,0,183,9,205,9,225,9,61,0,183,9,227,9,38,0,183,9,205,9,143,9,61,0,183,9,199,9,38,0,183,9,205,9,144,9,61,0,183,9,200,9,38,0,183,9,205,9,147,9,61,0,183,9,203,9,38,0,183,9,205,9,148,9,61,0,183,9,204,9,38,0,184,9,205,9,133,9,61,0,184,9,38,0,184,9,205,9,134,9,61,0,184,9,190,9,38,0,184,9,205,9,135,9,61,0,184,9,191,9,38,0,184,9,205,9,136,9,61,0,184,9,192,9,38,0,184,9,205,9,137,9,61,0,184,9,193,9,38,0,184,9,205,9,138,9,61,0,184,9,194,9,38,0,184,9,205,9,139,9,61,0,184,9,195,9,38,0,184,9,205,9,224,9,61,0,184,9,196,9,38,0,184,9,205,9,140,9,61,0,184,9,226,9,38,0,184,9,205,9,225,9,61,0,184,9,227,9,38,0,184,9,205,9,143,9,61,0,184,9,199,9,38,0,184,9,205,9,144,9,61,0,184,9,200,9,38,0,184,9,205,9,147,9,61,0,184,9,203,9,38,0,184,9,205,9,148,9,61,0,184,9,204,9,38,0,185,9,205,9,133,9,61,0,185,9,38,0,185,9,205,9,134,9,61,0,185,9,190,9,38,0,185,9,205,9,135,9,61,0,185,9,191,9,38,0,185,9,205,9,136,9,61,0,185,9,192,9,38,0,185,9,205,9,137,9,61,0,185,9,193,9,38,0,185,9,205,9,138,9,61,0,185,9,194,9,38,0,185,9,205,9,139,9,61,0,185,9,195,9,38,0,185,9,205,9,224,9,61,0,185,9,196,9,38,0,185,9,205,9,140,9,61,0,185,9,226,9,38,0,185,9,205,9,225,9,61,0,185,9,227,9,38,0,185,9,205,9,143,9,61,0,185,9,199,9,38,0,185,9,205,9,144,9,61,0,185,9,200,9,38,0,185,9,205,9,147,9,61,0,185,9,203,9,38,0,185,9,205,9,148,9,61,0,185,9,204,9,38,0,149,9,60,0,60,0,60,0,149,9,188,9,38,0,149,9,190,9,60,0,60,0,60,0,149,9,188,9,190,9,38,0,149,9,191,9,60,0,60,0,60,0,149,9,188,9,191,9,38,0,149,9,192,9,60,0,60,0,60,0,149,9,188,9,192,9,38,0,149,9,193,9,60,0,60,0,60,0,149,9,188,9,193,9,38,0,149,9,194,9,60,0,60,0,60,0,149,9,188,9,194,9,38,0,149,9,195,9,60,0,60,0,60,0,149,9,188,9,195,9,38,0,149,9,196,9,60,0,60,0,60,0,149,9,188,9,196,9,38,0,149,9,226,9,60,0,60,0,60,0,149,9,188,9,226,9,38,0,149,9,227,9,60,0,60,0,60,0,149,9,188,9,227,9,38,0,149,9,199,9,60,0,60,0,60,0,149,9,188,9,199,9,38,0,149,9,200,9,60,0,60,0,60,0,149,9,188,9,200,9,38,0,149,9,203,9,60,0,60,0,60,0,149,9,188,9,203,9,38,0,149,9,204,9,60,0,60,0,60,0,149,9,188,9,204,9,38,0,149,9,205,9,60,0,60,0,60,0,149,9,188,9,205,9,38,0,150,9,60,0,60,0,60,0,150,9,188,9,38,0,150,9,190,9,60,0,60,0,60,0,150,9,188,9,190,9,38,0,150,9,191,9,60,0,60,0,60,0,150,9,188,9,191,9,38,0,150,9,192,9,60,0,60,0,60,0,150,9,188,9,192,9,38,0,150,9,193,9,60,0,60,0,60,0,150,9,188,9,193,9,38,0,150,9,194,9,60,0,60,0,60,0,150,9,188,9,194,9,38,0,150,9,195,9,60,0,60,0,60,0,150,9,188,9,195,9,38,0,150,9,196,9,60,0,60,0,60,0,150,9,188,9,196,9,38,0,150,9,226,9,60,0,60,0,60,0,150,9,188,9,226,9,38,0,150,9,227,9,60,0,60,0,60,0,150,9,188,9,227,9,38,0,150,9,199,9,60,0,60,0,60,0,150,9,188,9,199,9,38,0,150,9,200,9,60,0,60,0,60,0,150,9,188,9,200,9,38,0,150,9,203,9,60,0,60,0,60,0,150,9,188,9,203,9,38,0,150,9,204,9,60,0,60,0,60,0,150,9,188,9,204,9,38,0,150,9,205,9,60,0,60,0,60,0,150,9,188,9,205,9,38,0,151,9,60,0,60,0,60,0,151,9,188,9,38,0,151,9,190,9,60,0,60,0,60,0,151,9,188,9,190,9,38,0,151,9,191,9,60,0,60,0,60,0,151,9,188,9,191,9,38,0,151,9,192,9,60,0,60,0,60,0,151,9,188,9,192,9,38,0,151,9,193,9,60,0,60,0,60,0,151,9,188,9,193,9,38,0,151,9,194,9,60,0,60,0,60,0,151,9,188,9,194,9,38,0,151,9,195,9,60,0,60,0,60,0,151,9,188,9,195,9,38,0,151,9,196,9,60,0,60,0,60,0,151,9,188,9,196,9,38,0,151,9,226,9,60,0,60,0,60,0,151,9,188,9,226,9,38,0,151,9,227,9,60,0,60,0,60,0,151,9,188,9,227,9,38,0,151,9,199,9,60,0,60,0,60,0,151,9,188,9,199,9,38,0,151,9,200,9,60,0,60,0,60,0,151,9,188,9,200,9,38,0,151,9,203,9,60,0,60,0,60,0,151,9,188,9,203,9,38,0,151,9,204,9,60,0,60,0,60,0,151,9,188,9,204,9,38,0,151,9,205,9,60,0,60,0,60,0,151,9,188,9,205,9,38,0,156,9,60,0,60,0,60,0,156,9,188,9,38,0,156,9,190,9,60,0,60,0,60,0,156,9,188,9,190,9,38,0,156,9,191,9,60,0,60,0,60,0,156,9,188,9,191,9,38,0,156,9,192,9,60,0,60,0,60,0,156,9,188,9,192,9,38,0,156,9,193,9,60,0,60,0,60,0,156,9,188,9,193,9,38,0,156,9,194,9,60,0,60,0,60,0,156,9,188,9,194,9,38,0,156,9,195,9,60,0,60,0,60,0,156,9,188,9,195,9,38,0,156,9,196,9,60,0,60,0,60,0,156,9,188,9,196,9,38,0,156,9,226,9,60,0,60,0,60,0,156,9,188,9,226,9,38,0,156,9,227,9,60,0,60,0,60,0,156,9,188,9,227,9,38,0,156,9,199,9,60,0,60,0,60,0,156,9,188,9,199,9,38,0,156,9,200,9,60,0,60,0,60,0,156,9,188,9,200,9,38,0,156,9,203,9,60,0,60,0,60,0,156,9,188,9,203,9,38,0,156,9,204,9,60,0,60,0,60,0,156,9,188,9,204,9,38,0,156,9,205,9,60,0,60,0,60,0,156,9,188,9,205,9,38,0,161,9,60,0,60,0,60,0,161,9,188,9,38,0,161,9,190,9,60,0,60,0,60,0,161,9,188,9,190,9,38,0,161,9,191,9,60,0,60,0,60,0,161,9,188,9,191,9,38,0,161,9,192,9,60,0,60,0,60,0,161,9,188,9,192,9,38,0,161,9,193,9,60,0,60,0,60,0,161,9,188,9,193,9,38,0,161,9,194,9,60,0,60,0,60,0,161,9,188,9,194,9,38,0,161,9,195,9,60,0,60,0,60,0,161,9,188,9,195,9,38,0,161,9,196,9,60,0,60,0,60,0,161,9,188,9,196,9,38,0,161,9,226,9,60,0,60,0,60,0,161,9,188,9,226,9,38,0,161,9,227,9,60,0,60,0,60,0,161,9,188,9,227,9,38,0,161,9,199,9,60,0,60,0,60,0,161,9,188,9,199,9,38,0,161,9,200,9,60,0,60,0,60,0,161,9,188,9,200,9,38,0,161,9,203,9,60,0,60,0,60,0,161,9,188,9,203,9,38,0,161,9,204,9,60,0,60,0,60,0,161,9,188,9,204,9,38,0,161,9,205,9,60,0,60,0,60,0,161,9,188,9,205,9,38,0,162,9,60,0,60,0,60,0,162,9,188,9,38,0,162,9,190,9,60,0,60,0,60,0,162,9,188,9,190,9,38,0,162,9,191,9,60,0,60,0,60,0,162,9,188,9,191,9,38,0,162,9,192,9,60,0,60,0,60,0,162,9,188,9,192,9,38,0,162,9,193,9,60,0,60,0,60,0,162,9,188,9,193,9,38,0,162,9,194,9,60,0,60,0,60,0,162,9,188,9,194,9,38,0,162,9,195,9,60,0,60,0,60,0,162,9,188,9,195,9,38,0,162,9,196,9,60,0,60,0,60,0,162,9,188,9,196,9,38,0,162,9,226,9,60,0,60,0,60,0,162,9,188,9,226,9,38,0,162,9,227,9,60,0,60,0,60,0,162,9,188,9,227,9,38,0,162,9,199,9,60,0,60,0,60,0,162,9,188,9,199,9,38,0,162,9,200,9,60,0,60,0,60,0,162,9,188,9,200,9,38,0,162,9,203,9,60,0,60,0,60,0,162,9,188,9,203,9,38,0,162,9,204,9,60,0,60,0,60,0,162,9,188,9,204,9,38,0,162,9,205,9,60,0,60,0,60,0,162,9,188,9,205,9,38,0,171,9,60,0,60,0,60,0,171,9,188,9,38,0,171,9,190,9,60,0,60,0,60,0,171,9,188,9,190,9,38,0,171,9,191,9,60,0,60,0,60,0,171,9,188,9,191,9,38,0,171,9,192,9,60,0,60,0,60,0,171,9,188,9,192,9,38,0,171,9,193,9,60,0,60,0,60,0,171,9,188,9,193,9,38,0,171,9,194,9,60,0,60,0,60,0,171,9,188,9,194,9,38,0,171,9,195,9,60,0,60,0,60,0,171,9,188,9,195,9,38,0,171,9,196,9,60,0,60,0,60,0,171,9,188,9,196,9,38,0,171,9,226,9,60,0,60,0,60,0,171,9,188,9,226,9,38,0,171,9,227,9,60,0,60,0,60,0,171,9,188,9,227,9,38,0,171,9,199,9,60,0,60,0,60,0,171,9,188,9,199,9,38,0,171,9,200,9,60,0,60,0,60,0,171,9,188,9,200,9,38,0,171,9,203,9,60,0,60,0,60,0,171,9,188,9,203,9,38,0,171,9,204,9,60,0,60,0,60,0,171,9,188,9,204,9,38,0,171,9,205,9,60,0,60,0,60,0,171,9,188,9,205,9,38,0,172,9,60,0,60,0,60,0,172,9,188,9,38,0,172,9,190,9,60,0,60,0,60,0,172,9,188,9,190,9,38,0,172,9,191,9,60,0,60,0,60,0,172,9,188,9,191,9,38,0,172,9,192,9,60,0,60,0,60,0,172,9,188,9,192,9,38,0,172,9,193,9,60,0,60,0,60,0,172,9,188,9,193,9,38,0,172,9,194,9,60,0,60,0,60,0,172,9,188,9,194,9,38,0,172,9,195,9,60,0,60,0,60,0,172,9,188,9,195,9,38,0,172,9,196,9,60,0,60,0,60,0,172,9,188,9,196,9,38,0,172,9,226,9,60,0,60,0,60,0,172,9,188,9,226,9,38,0,172,9,227,9,60,0,60,0,60,0,172,9,188,9,227,9,38,0,172,9,199,9,60,0,60,0,60,0,172,9,188,9,199,9,38,0,172,9,200,9,60,0,60,0,60,0,172,9,188,9,200,9,38,0,172,9,203,9,60,0,60,0,60,0,172,9,188,9,203,9,38,0,172,9,204,9,60,0,60,0,60,0,172,9,188,9,204,9,38,0,172,9,205,9,60,0,60,0,60,0,172,9,188,9,205,9,38,0,175,9,60,0,60,0,60,0,175,9,188,9,38,0,175,9,190,9,60,0,60,0,60,0,175,9,188,9,190,9,38,0,175,9,191,9,60,0,60,0,60,0,175,9,188,9,191,9,38,0,175,9,192,9,60,0,60,0,60,0,175,9,188,9,192,9,38,0,175,9,193,9,60,0,60,0,60,0,175,9,188,9,193,9,38,0,175,9,194,9,60,0,60,0,60,0,175,9,188,9,194,9,38,0,175,9,195,9,60,0,60,0,60,0,175,9,188,9,195,9,38,0,175,9,196,9,60,0,60,0,60,0,175,9,188,9,196,9,38,0,175,9,226,9,60,0,60,0,60,0,175,9,188,9,226,9,38,0,175,9,227,9,60,0,60,0,60,0,175,9,188,9,227,9,38,0,175,9,199,9,60,0,60,0,60,0,175,9,188,9,199,9,38,0,175,9,200,9,60,0,60,0,60,0,175,9,188,9,200,9,38,0,175,9,203,9,60,0,60,0,60,0,175,9,188,9,203,9,38,0,175,9,204,9,60,0,60,0,60,0,175,9,188,9,204,9,38,0,175,9,205,9,60,0,60,0,60,0,175,9,188,9,205,9,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,112,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,20,25,0,0,20,25,0,0,20,25,0,0,20,25,0,0,88,25,0,0,4,0,0,0,10,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,105,190,255,0,106,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,39,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,35,105,193,2,35,105,193,3,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,115,9,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,188,67,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,144,26,0,0,144,26,0,0,184,27,0,0,184,27,0,0,92,46,0,0,92,46,0,0,142,67,0,0,164,67,0,0,4,0,0,0,10,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,105,190,255,0,106,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,39,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,136,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,111,0,119,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,147,0,202,1,148,0,202,34,148,0,202,67,148,0,202,100,148,0,202,133,148,0,202,166,148,0,202,199,148,0,202,232,148,0,202,9,149,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,147,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,147,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,147,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,35,105,193,2,35,105,193,3,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,4,0,0,201,164,14,0,201,68,29,0,201,4,44,0,201,100,51,0,201,196,58,0,201,36,66,0,201,132,73,0,201,68,88,0,201,164,95,0,201,4,103,0,201,100,110,0,201,196,117,0,201,132,132,0,201,68,147,0,201,164,154,0,201,132,162,0,201,228,169,0,201,68,177,0,201,164,184,0,192,0,0,0,201,4,192,0,201,100,199,0,201,36,214,0,201,228,228,0,201,68,236,0,201,164,243,0,201,100,2,1,192,0,0,0,201,196,9,1,192,0,0,0,192,0,0,0,192,0,0,0,201,36,17,1,201,132,24,1,201,228,31,1,201,68,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,20,35,105,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,164,46,1,201,228,53,1,192,0,0,0,201,36,61,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,68,1,201,196,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,6,0,5,0,5,35,105,0,6,0,5,0,6,35,105,0,6,0,5,0,7,35,105,0,6,0,5,0,12,35,105,0,6,0,5,0,17,35,105,0,6,0,5,0,18,35,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,8,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,10,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,12,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,14,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,16,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,18,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,20,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,22,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,28,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,32,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,34,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,30,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,24,105,0,5,0,70,0,20,35,105,0,5,0,5,0,0,26,105,0,6,0,5,0,26,35,105,0,6,0,5,0,27,35,105,0,6,0,5,0,30,35,105,0,0,0,0,193,5,35,105,5,5,8,105,193,5,35,105,14,5,8,105,193,5,35,105,14,5,10,105,193,5,35,105,14,5,12,105,193,5,35,105,14,5,14,105,193,5,35,105,14,5,16,105,193,5,35,105,14,5,18,105,193,5,35,105,14,5,20,105,193,5,35,105,14,5,22,105,193,5,35,105,14,5,28,105,193,5,35,105,14,5,32,105,193,5,35,105,14,5,34,105,193,5,35,105,14,5,30,105,193,5,35,105,14,5,24,105,193,5,35,105,14,5,26,105,193,5,35,105,5,5,10,105,193,5,35,105,5,5,12,105,193,5,35,105,5,5,14,105,193,5,35,105,5,5,16,105,193,5,35,105,5,5,18,105,193,5,35,105,5,5,20,105,193,5,35,105,5,5,22,105,193,5,35,105,5,5,28,105,193,5,35,105,5,5,32,105,193,5,35,105,5,5,34,105,193,5,35,105,5,5,30,105,193,5,35,105,5,5,24,105,193,5,35,105,5,5,26,105,193,6,35,105,5,5,8,105,193,6,35,105,13,5,8,105,193,6,35,105,13,5,10,105,193,6,35,105,13,5,12,105,193,6,35,105,13,5,14,105,193,6,35,105,13,5,16,105,193,6,35,105,13,5,18,105,193,6,35,105,13,5,20,105,193,6,35,105,13,5,22,105,193,6,35,105,13,5,28,105,193,6,35,105,13,5,32,105,193,6,35,105,13,5,34,105,193,6,35,105,13,5,30,105,193,6,35,105,13,5,24,105,193,6,35,105,13,5,26,105,193,6,35,105,5,5,10,105,193,6,35,105,5,5,12,105,193,6,35,105,5,5,14,105,193,6,35,105,5,5,16,105,193,6,35,105,5,5,18,105,193,6,35,105,5,5,20,105,193,6,35,105,5,5,22,105,193,6,35,105,5,5,28,105,193,6,35,105,5,5,32,105,193,6,35,105,5,5,34,105,193,6,35,105,5,5,30,105,193,6,35,105,5,5,24,105,193,6,35,105,5,5,26,105,193,7,35,105,5,5,8,105,193,7,35,105,12,5,8,105,193,7,35,105,12,5,10,105,193,7,35,105,12,5,12,105,193,7,35,105,12,5,14,105,193,7,35,105,12,5,16,105,193,7,35,105,12,5,18,105,193,7,35,105,12,5,20,105,193,7,35,105,12,5,22,105,193,7,35,105,12,5,28,105,193,7,35,105,12,5,32,105,193,7,35,105,12,5,34,105,193,7,35,105,12,5,30,105,193,7,35,105,12,5,24,105,193,7,35,105,12,5,26,105,193,7,35,105,5,5,10,105,193,7,35,105,5,5,12,105,193,7,35,105,5,5,14,105,193,7,35,105,5,5,16,105,193,7,35,105,5,5,18,105,193,7,35,105,5,5,20,105,193,7,35,105,5,5,22,105,193,7,35,105,5,5,28,105,193,7,35,105,5,5,32,105,193,7,35,105,5,5,34,105,193,7,35,105,5,5,30,105,193,7,35,105,5,5,24,105,193,7,35,105,5,5,26,105,193,8,35,105,5,5,8,105,193,8,35,105,5,5,10,105,193,8,35,105,5,5,12,105,193,8,35,105,5,5,14,105,193,8,35,105,5,5,16,105,193,8,35,105,5,5,18,105,193,8,35,105,5,5,20,105,193,8,35,105,5,5,22,105,193,8,35,105,5,5,28,105,193,8,35,105,5,5,32,105,193,8,35,105,5,5,34,105,193,8,35,105,5,5,30,105,193,8,35,105,5,5,24,105,193,8,35,105,5,5,26,105,193,9,35,105,5,5,8,105,193,9,35,105,5,5,10,105,193,9,35,105,5,5,12,105,193,9,35,105,5,5,14,105,193,9,35,105,5,5,16,105,193,9,35,105,5,5,18,105,193,9,35,105,5,5,20,105,193,9,35,105,5,5,22,105,193,9,35,105,5,5,28,105,193,9,35,105,5,5,32,105,193,9,35,105,5,5,34,105,193,9,35,105,5,5,30,105,193,9,35,105,5,5,24,105,193,9,35,105,5,5,26,105,193,10,35,105,5,5,8,105,193,10,35,105,5,5,10,105,193,10,35,105,5,5,12,105,193,10,35,105,5,5,14,105,193,10,35,105,5,5,16,105,193,10,35,105,5,5,18,105,193,10,35,105,5,5,20,105,193,10,35,105,5,5,22,105,193,10,35,105,5,5,28,105,193,10,35,105,5,5,32,105,193,10,35,105,5,5,34,105,193,10,35,105,5,5,30,105,193,10,35,105,5,5,24,105,193,10,35,105,5,5,26,105,193,11,35,105,5,5,8,105,193,11,35,105,5,5,10,105,193,11,35,105,5,5,12,105,193,11,35,105,5,5,14,105,193,11,35,105,5,5,16,105,193,11,35,105,5,5,18,105,193,11,35,105,5,5,20,105,193,11,35,105,5,5,22,105,193,11,35,105,5,5,28,105,193,11,35,105,5,5,32,105,193,11,35,105,5,5,34,105,193,11,35,105,5,5,30,105,193,11,35,105,5,5,24,105,193,11,35,105,5,5,26,105,193,12,35,105,5,5,8,105,193,12,35,105,11,5,8,105,193,12,35,105,11,5,10,105,193,12,35,105,11,5,12,105,193,12,35,105,11,5,14,105,193,12,35,105,11,5,16,105,193,12,35,105,11,5,18,105,193,12,35,105,11,5,20,105,193,12,35,105,11,5,22,105,193,12,35,105,11,5,28,105,193,12,35,105,11,5,32,105,193,12,35,105,11,5,34,105,193,12,35,105,11,5,30,105,193,12,35,105,11,5,24,105,193,12,35,105,11,5,26,105,193,12,35,105,5,5,10,105,193,12,35,105,5,5,12,105,193,12,35,105,5,5,14,105,193,12,35,105,5,5,16,105,193,12,35,105,5,5,18,105,193,12,35,105,5,5,20,105,193,12,35,105,5,5,22,105,193,12,35,105,5,5,28,105,193,12,35,105,5,5,32,105,193,12,35,105,5,5,34,105,193,12,35,105,5,5,30,105,193,12,35,105,5,5,24,105,193,12,35,105,5,5,26,105,193,13,35,105,5,5,8,105,193,13,35,105,5,5,10,105,193,13,35,105,5,5,12,105,193,13,35,105,5,5,14,105,193,13,35,105,5,5,16,105,193,13,35,105,5,5,18,105,193,13,35,105,5,5,20,105,193,13,35,105,5,5,22,105,193,13,35,105,5,5,28,105,193,13,35,105,5,5,32,105,193,13,35,105,5,5,34,105,193,13,35,105,5,5,30,105,193,13,35,105,5,5,24,105,193,13,35,105,5,5,26,105,193,14,35,105,5,5,8,105,193,14,35,105,5,5,10,105,193,14,35,105,5,5,12,105,193,14,35,105,5,5,14,105,193,14,35,105,5,5,16,105,193,14,35,105,5,5,18,105,193,14,35,105,5,5,20,105,193,14,35,105,5,5,22,105,193,14,35,105,5,5,28,105,193,14,35,105,5,5,32,105,193,14,35,105,5,5,34,105,193,14,35,105,5,5,30,105,193,14,35,105,5,5,24,105,193,14,35,105,5,5,26,105,193,15,35,105,5,5,8,105,193,15,35,105,5,5,10,105,193,15,35,105,5,5,12,105,193,15,35,105,5,5,14,105,193,15,35,105,5,5,16,105,193,15,35,105,5,5,18,105,193,15,35,105,5,5,20,105,193,15,35,105,5,5,22,105,193,15,35,105,5,5,28,105,193,15,35,105,5,5,32,105,193,15,35,105,5,5,34,105,193,15,35,105,5,5,30,105,193,15,35,105,5,5,24,105,193,15,35,105,5,5,26,105,193,16,35,105,5,5,8,105,193,16,35,105,5,5,10,105,193,16,35,105,5,5,12,105,193,16,35,105,5,5,14,105,193,16,35,105,5,5,16,105,193,16,35,105,5,5,18,105,193,16,35,105,5,5,20,105,193,16,35,105,5,5,22,105,193,16,35,105,5,5,28,105,193,16,35,105,5,5,32,105,193,16,35,105,5,5,34,105,193,16,35,105,5,5,30,105,193,16,35,105,5,5,24,105,193,16,35,105,5,5,26,105,193,17,35,105,5,5,8,105,193,17,35,105,10,5,8,105,193,17,35,105,10,5,10,105,193,17,35,105,10,5,12,105,193,17,35,105,10,5,14,105,193,17,35,105,10,5,16,105,193,17,35,105,10,5,18,105,193,17,35,105,10,5,20,105,193,17,35,105,10,5,22,105,193,17,35,105,10,5,28,105,193,17,35,105,10,5,32,105,193,17,35,105,10,5,34,105,193,17,35,105,10,5,30,105,193,17,35,105,10,5,24,105,193,17,35,105,10,5,26,105,193,17,35,105,5,5,10,105,193,17,35,105,5,5,12,105,193,17,35,105,5,5,14,105,193,17,35,105,5,5,16,105,193,17,35,105,5,5,18,105,193,17,35,105,5,5,20,105,193,17,35,105,5,5,22,105,193,17,35,105,5,5,28,105,193,17,35,105,5,5,32,105,193,17,35,105,5,5,34,105,193,17,35,105,5,5,30,105,193,17,35,105,5,5,24,105,193,17,35,105,5,5,26,105,193,18,35,105,5,5,8,105,193,18,35,105,9,5,8,105,193,18,35,105,9,5,10,105,193,18,35,105,9,5,12,105,193,18,35,105,9,5,14,105,193,18,35,105,9,5,16,105,193,18,35,105,9,5,18,105,193,18,35,105,9,5,20,105,193,18,35,105,9,5,22,105,193,18,35,105,9,5,28,105,193,18,35,105,9,5,32,105,193,18,35,105,9,5,34,105,193,18,35,105,9,5,30,105,193,18,35,105,9,5,24,105,193,18,35,105,9,5,26,105,193,18,35,105,5,5,10,105,193,18,35,105,5,5,12,105,193,18,35,105,5,5,14,105,193,18,35,105,5,5,16,105,193,18,35,105,5,5,18,105,193,18,35,105,5,5,20,105,193,18,35,105,5,5,22,105,193,18,35,105,5,5,28,105,193,18,35,105,5,5,32,105,193,18,35,105,5,5,34,105,193,18,35,105,5,5,30,105,193,18,35,105,5,5,24,105,193,18,35,105,5,5,26,105,193,19,35,105,5,5,8,105,193,19,35,105,5,5,10,105,193,19,35,105,5,5,12,105,193,19,35,105,5,5,14,105,193,19,35,105,5,5,16,105,193,19,35,105,5,5,18,105,193,19,35,105,5,5,20,105,193,19,35,105,5,5,22,105,193,19,35,105,5,5,28,105,193,19,35,105,5,5,32,105,193,19,35,105,5,5,34,105,193,19,35,105,5,5,30,105,193,19,35,105,5,5,24,105,193,19,35,105,5,5,26,105,193,21,35,105,5,5,8,105,193,21,35,105,5,5,10,105,193,21,35,105,5,5,12,105,193,21,35,105,5,5,14,105,193,21,35,105,5,5,16,105,193,21,35,105,5,5,18,105,193,21,35,105,5,5,20,105,193,21,35,105,5,5,22,105,193,21,35,105,5,5,28,105,193,21,35,105,5,5,32,105,193,21,35,105,5,5,34,105,193,21,35,105,5,5,30,105,193,21,35,105,5,5,24,105,193,21,35,105,5,5,26,105,193,22,35,105,5,5,8,105,193,22,35,105,5,5,10,105,193,22,35,105,5,5,12,105,193,22,35,105,5,5,14,105,193,22,35,105,5,5,16,105,193,22,35,105,5,5,18,105,193,22,35,105,5,5,20,105,193,22,35,105,5,5,22,105,193,22,35,105,5,5,28,105,193,22,35,105,5,5,32,105,193,22,35,105,5,5,34,105,193,22,35,105,5,5,30,105,193,22,35,105,5,5,24,105,193,22,35,105,5,5,26,105,193,23,35,105,5,5,8,105,193,23,35,105,5,5,10,105,193,23,35,105,5,5,12,105,193,23,35,105,5,5,14,105,193,23,35,105,5,5,16,105,193,23,35,105,5,5,18,105,193,23,35,105,5,5,20,105,193,23,35,105,5,5,22,105,193,23,35,105,5,5,28,105,193,23,35,105,5,5,32,105,193,23,35,105,5,5,34,105,193,23,35,105,5,5,30,105,193,23,35,105,5,5,24,105,193,23,35,105,5,5,26,105,193,24,35,105,5,5,8,105,193,24,35,105,5,5,10,105,193,24,35,105,5,5,12,105,193,24,35,105,5,5,14,105,193,24,35,105,5,5,16,105,193,24,35,105,5,5,18,105,193,24,35,105,5,5,20,105,193,24,35,105,5,5,22,105,193,24,35,105,5,5,28,105,193,24,35,105,5,5,32,105,193,24,35,105,5,5,34,105,193,24,35,105,5,5,30,105,193,24,35,105,5,5,24,105,193,24,35,105,5,5,26,105,193,25,35,105,5,5,8,105,193,25,35,105,5,5,10,105,193,25,35,105,5,5,12,105,193,25,35,105,5,5,14,105,193,25,35,105,5,5,16,105,193,25,35,105,5,5,18,105,193,25,35,105,5,5,20,105,193,25,35,105,5,5,22,105,193,25,35,105,5,5,28,105,193,25,35,105,5,5,32,105,193,25,35,105,5,5,34,105,193,25,35,105,5,5,30,105,193,25,35,105,5,5,24,105,193,25,35,105,5,5,26,105,193,26,35,105,5,5,8,105,193,26,35,105,8,5,8,105,193,26,35,105,8,5,10,105,193,26,35,105,8,5,12,105,193,26,35,105,8,5,14,105,193,26,35,105,8,5,16,105,193,26,35,105,8,5,18,105,193,26,35,105,8,5,20,105,193,26,35,105,8,5,22,105,193,26,35,105,8,5,28,105,193,26,35,105,8,5,32,105,193,26,35,105,8,5,34,105,193,26,35,105,8,5,30,105,193,26,35,105,8,5,24,105,193,26,35,105,8,5,26,105,193,26,35,105,5,5,10,105,193,26,35,105,5,5,12,105,193,26,35,105,5,5,14,105,193,26,35,105,5,5,16,105,193,26,35,105,5,5,18,105,193,26,35,105,5,5,20,105,193,26,35,105,5,5,22,105,193,26,35,105,5,5,28,105,193,26,35,105,5,5,32,105,193,26,35,105,5,5,34,105,193,26,35,105,5,5,30,105,193,26,35,105,5,5,24,105,193,26,35,105,5,5,26,105,193,27,35,105,5,5,8,105,193,27,35,105,7,5,8,105,193,27,35,105,7,5,10,105,193,27,35,105,7,5,12,105,193,27,35,105,7,5,14,105,193,27,35,105,7,5,16,105,193,27,35,105,7,5,18,105,193,27,35,105,7,5,20,105,193,27,35,105,7,5,22,105,193,27,35,105,7,5,28,105,193,27,35,105,7,5,32,105,193,27,35,105,7,5,34,105,193,27,35,105,7,5,30,105,193,27,35,105,7,5,24,105,193,27,35,105,7,5,26,105,193,27,35,105,5,5,10,105,193,27,35,105,5,5,12,105,193,27,35,105,5,5,14,105,193,27,35,105,5,5,16,105,193,27,35,105,5,5,18,105,193,27,35,105,5,5,20,105,193,27,35,105,5,5,22,105,193,27,35,105,5,5,28,105,193,27,35,105,5,5,32,105,193,27,35,105,5,5,34,105,193,27,35,105,5,5,30,105,193,27,35,105,5,5,24,105,193,27,35,105,5,5,26,105,193,28,35,105,5,5,8,105,193,28,35,105,5,5,10,105,193,28,35,105,5,5,12,105,193,28,35,105,5,5,14,105,193,28,35,105,5,5,16,105,193,28,35,105,5,5,18,105,193,28,35,105,5,5,20,105,193,28,35,105,5,5,22,105,193,28,35,105,5,5,28,105,193,28,35,105,5,5,32,105,193,28,35,105,5,5,34,105,193,28,35,105,5,5,30,105,193,28,35,105,5,5,24,105,193,28,35,105,5,5,26,105,193,29,35,105,5,5,8,105,193,29,35,105,5,5,10,105,193,29,35,105,5,5,12,105,193,29,35,105,5,5,14,105,193,29,35,105,5,5,16,105,193,29,35,105,5,5,18,105,193,29,35,105,5,5,20,105,193,29,35,105,5,5,22,105,193,29,35,105,5,5,28,105,193,29,35,105,5,5,32,105,193,29,35,105,5,5,34,105,193,29,35,105,5,5,30,105,193,29,35,105,5,5,24,105,193,29,35,105,5,5,26,105,193,30,35,105,5,5,8,105,193,30,35,105,6,5,8,105,193,30,35,105,6,5,10,105,193,30,35,105,6,5,12,105,193,30,35,105,6,5,14,105,193,30,35,105,6,5,16,105,193,30,35,105,6,5,18,105,193,30,35,105,6,5,20,105,193,30,35,105,6,5,22,105,193,30,35,105,6,5,28,105,193,30,35,105,6,5,32,105,193,30,35,105,6,5,34,105,193,30,35,105,6,5,30,105,193,30,35,105,6,5,24,105,193,30,35,105,6,5,26,105,193,30,35,105,5,5,10,105,193,30,35,105,5,5,12,105,193,30,35,105,5,5,14,105,193,30,35,105,5,5,16,105,193,30,35,105,5,5,18,105,193,30,35,105,5,5,20,105,193,30,35,105,5,5,22,105,193,30,35,105,5,5,28,105,193,30,35,105,5,5,32,105,193,30,35,105,5,5,34,105,193,30,35,105,5,5,30,105,193,30,35,105,5,5,24,105,193,30,35,105,5,5,26,105,193,31,35,105,5,5,8,105,193,31,35,105,5,5,10,105,193,31,35,105,5,5,12,105,193,31,35,105,5,5,14,105,193,31,35,105,5,5,16,105,193,31,35,105,5,5,18,105,193,31,35,105,5,5,20,105,193,31,35,105,5,5,22,105,193,31,35,105,5,5,28,105,193,31,35,105,5,5,32,105,193,31,35,105,5,5,34,105,193,31,35,105,5,5,30,105,193,31,35,105,5,5,24,105,193,31,35,105,5,5,26,105,193,33,35,105,5,5,8,105,193,33,35,105,5,5,10,105,193,33,35,105,5,5,12,105,193,33,35,105,5,5,14,105,193,33,35,105,5,5,16,105,193,33,35,105,5,5,18,105,193,33,35,105,5,5,20,105,193,33,35,105,5,5,22,105,193,33,35,105,5,5,28,105,193,33,35,105,5,5,32,105,193,33,35,105,5,5,34,105,193,33,35,105,5,5,30,105,193,33,35,105,5,5,24,105,193,33,35,105,5,5,26,105,193,35,35,105,5,5,8,105,193,35,35,105,5,5,10,105,193,35,35,105,5,5,12,105,193,35,35,105,5,5,14,105,193,35,35,105,5,5,16,105,193,35,35,105,5,5,18,105,193,35,35,105,5,5,20,105,193,35,35,105,5,5,22,105,193,35,35,105,5,5,28,105,193,35,35,105,5,5,32,105,193,35,35,105,5,5,34,105,193,35,35,105,5,5,30,105,193,35,35,105,5,5,24,105,193,35,35,105,5,5,26,105,193,36,35,105,5,5,8,105,193,36,35,105,5,5,10,105,193,36,35,105,5,5,12,105,193,36,35,105,5,5,14,105,193,36,35,105,5,5,16,105,193,36,35,105,5,5,18,105,193,36,35,105,5,5,20,105,193,36,35,105,5,5,22,105,193,36,35,105,5,5,28,105,193,36,35,105,5,5,32,105,193,36,35,105,5,5,34,105,193,36,35,105,5,5,30,105,193,36,35,105,5,5,24,105,193,36,35,105,5,5,26,105,193,37,35,105,5,5,8,105,193,37,35,105,5,5,10,105,193,37,35,105,5,5,12,105,193,37,35,105,5,5,14,105,193,37,35,105,5,5,16,105,193,37,35,105,5,5,18,105,193,37,35,105,5,5,20,105,193,37,35,105,5,5,22,105,193,37,35,105,5,5,28,105,193,37,35,105,5,5,32,105,193,37,35,105,5,5,34,105,193,37,35,105,5,5,30,105,193,37,35,105,5,5,24,105,193,37,35,105,5,5,26,105,193,38,35,105,5,5,8,105,193,38,35,105,5,5,10,105,193,38,35,105,5,5,12,105,193,38,35,105,5,5,14,105,193,38,35,105,5,5,16,105,193,38,35,105,5,5,18,105,193,38,35,105,5,5,20,105,193,38,35,105,5,5,22,105,193,38,35,105,5,5,28,105,193,38,35,105,5,5,32,105,193,38,35,105,5,5,34,105,193,38,35,105,5,5,30,105,193,38,35,105,5,5,24,105,193,38,35,105,5,5,26,105,193,32,35,105,5,5,8,105,193,32,35,105,5,5,10,105,193,32,35,105,5,5,12,105,193,32,35,105,5,5,14,105,193,32,35,105,5,5,16,105,193,32,35,105,5,5,18,105,193,32,35,105,5,5,20,105,193,32,35,105,5,5,22,105,193,32,35,105,5,5,28,105,193,32,35,105,5,5,32,105,193,32,35,105,5,5,34,105,193,32,35,105,5,5,30,105,193,32,35,105,5,5,24,105,193,32,35,105,5,5,26,105,193,34,35,105,5,5,8,105,193,34,35,105,5,5,10,105,193,34,35,105,5,5,12,105,193,34,35,105,5,5,14,105,193,34,35,105,5,5,16,105,193,34,35,105,5,5,18,105,193,34,35,105,5,5,20,105,193,34,35,105,5,5,22,105,193,34,35,105,5,5,28,105,193,34,35,105,5,5,32,105,193,34,35,105,5,5,34,105,193,34,35,105,5,5,30,105,193,34,35,105,5,5,24,105,193,34,35,105,5,5,26,105,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,6,192,197,34,205,9,255,255,35,105,193,5,226,9,6,192,197,162,227,9,6,192,197,226,196,9,5,192,197,98,199,9,6,0,200,9,6,192,197,98,203,9,5,192,197,226,129,65,197,162,190,9,5,192,197,226,215,9,6,192,197,34,192,9,12,0,192,9,4,192,197,98,193,9,4,192,197,162,194,9,4,192,197,226,195,9,5,192,197,34,188,9,6,0,190,9,3,192,197,226,191,9,4,192,197,34,77,64,197,98,199,9,29,0,204,9,11,0,204,9,2,192,197,226,205,9,198,129,226,9,3,192,197,98,227,9,3,192,197,162,199,9,6,0,200,9,3,192,197,34,203,9,2,192,197,162,193,64,197,98,190,9,2,192,197,162,215,9,2,192,197,226,193,9,12,0,193,9,1,192,197,98,194,9,1,192,197,162,195,9,1,192,197,226,196,9,2,192,197,34,190,9,0,192,197,162,191,9,0,192,197,226,192,9,1,192,197,34,7,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,13,192,197,34,205,9,255,255,35,105,193,6,226,9,13,192,197,162,227,9,13,192,197,226,196,9,12,192,197,98,199,9,6,0,200,9,13,192,197,98,203,9,12,192,197,226,65,67,197,162,190,9,12,192,197,226,215,9,13,192,197,34,192,9,12,0,192,9,11,192,197,98,193,9,11,192,197,162,194,9,11,192,197,226,195,9,12,192,197,34,188,9,6,0,190,9,10,192,197,226,191,9,11,192,197,34,13,66,197,98,199,9,29,0,204,9,11,0,204,9,9,192,197,226,205,9,198,161,226,9,10,192,197,98,227,9,10,192,197,162,199,9,6,0,200,9,10,192,197,34,203,9,9,192,197,162,129,66,197,98,190,9,9,192,197,162,215,9,9,192,197,226,193,9,12,0,193,9,8,192,197,98,194,9,8,192,197,162,195,9,8,192,197,226,196,9,9,192,197,34,190,9,7,192,197,162,191,9,7,192,197,226,192,9,8,192,197,34,14,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,20,192,197,34,205,9,255,255,35,105,193,7,226,9,20,192,197,162,227,9,20,192,197,226,196,9,19,192,197,98,199,9,6,0,200,9,20,192,197,98,203,9,19,192,197,226,1,69,197,162,190,9,19,192,197,226,215,9,20,192,197,34,192,9,12,0,192,9,18,192,197,98,193,9,18,192,197,162,194,9,18,192,197,226,195,9,19,192,197,34,188,9,6,0,190,9,17,192,197,226,191,9,18,192,197,34,205,67,197,98,199,9,30,0,204,9,12,0,204,9,16,192,197,226,205,9,0,192,198,65,226,9,17,192,197,98,227,9,17,192,197,162,199,9,6,0,200,9,17,192,197,34,203,9,16,192,197,162,65,68,197,98,190,9,16,192,197,162,215,9,16,192,197,226,193,9,12,0,193,9,15,192,197,98,194,9,15,192,197,162,195,9,15,192,197,226,196,9,16,192,197,34,190,9,14,192,197,162,191,9,14,192,197,226,192,9,15,192,197,34,21,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,23,192,197,162,205,9,255,255,35,105,193,8,226,9,24,192,197,34,227,9,24,192,197,98,199,9,6,0,200,9,23,192,197,226,203,9,23,192,197,98,1,70,197,34,190,9,23,192,197,98,215,9,23,192,197,162,193,9,12,0,193,9,22,192,197,34,194,9,22,192,197,98,195,9,22,192,197,162,196,9,22,192,197,226,190,9,21,192,197,98,191,9,21,192,197,162,192,9,21,192,197,226,24,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,27,192,197,34,205,9,255,255,35,105,193,9,226,9,27,192,197,162,227,9,27,192,197,226,199,9,6,0,200,9,27,192,197,98,203,9,26,192,197,226,193,70,197,162,190,9,26,192,197,226,215,9,27,192,197,34,193,9,12,0,193,9,25,192,197,162,194,9,25,192,197,226,195,9,26,192,197,34,196,9,26,192,197,98,190,9,24,192,197,226,191,9,25,192,197,34,192,9,25,192,197,98,28,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,30,192,197,162,205,9,255,255,35,105,193,10,226,9,31,192,197,34,227,9,31,192,197,98,199,9,6,0,200,9,30,192,197,226,203,9,30,192,197,98,193,71,197,34,190,9,30,192,197,98,215,9,30,192,197,162,193,9,12,0,193,9,29,192,197,34,194,9,29,192,197,98,195,9,29,192,197,162,196,9,29,192,197,226,190,9,28,192,197,98,191,9,28,192,197,162,192,9,28,192,197,226,31,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,34,192,197,34,205,9,255,255,35,105,193,11,226,9,34,192,197,162,227,9,34,192,197,226,199,9,6,0,200,9,34,192,197,98,203,9,33,192,197,226,129,72,197,162,190,9,33,192,197,226,215,9,34,192,197,34,193,9,12,0,193,9,32,192,197,162,194,9,32,192,197,226,195,9,33,192,197,34,196,9,33,192,197,98,190,9,31,192,197,226,191,9,32,192,197,34,192,9,32,192,197,98,35,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,41,192,197,34,205,9,255,255,35,105,193,12,226,9,41,192,197,162,227,9,41,192,197,226,196,9,40,192,197,98,199,9,6,0,200,9,41,192,197,98,203,9,40,192,197,226,65,74,197,162,190,9,40,192,197,226,215,9,41,192,197,34,192,9,12,0,192,9,39,192,197,98,193,9,39,192,197,162,194,9,39,192,197,226,195,9,40,192,197,34,188,9,6,0,190,9,38,192,197,226,191,9,39,192,197,34,13,73,197,98,199,9,30,0,204,9,12,0,204,9,37,192,197,226,205,9,0,192,198,97,226,9,38,192,197,98,227,9,38,192,197,162,199,9,6,0,200,9,38,192,197,34,203,9,37,192,197,162,129,73,197,98,190,9,37,192,197,162,215,9,37,192,197,226,193,9,12,0,193,9,36,192,197,98,194,9,36,192,197,162,195,9,36,192,197,226,196,9,37,192,197,34,190,9,35,192,197,162,191,9,35,192,197,226,192,9,36,192,197,34,42,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,44,192,197,162,205,9,255,255,35,105,193,13,226,9,45,192,197,34,227,9,45,192,197,98,199,9,6,0,200,9,44,192,197,226,203,9,44,192,197,98,65,75,197,34,190,9,44,192,197,98,215,9,44,192,197,162,193,9,12,0,193,9,43,192,197,34,194,9,43,192,197,98,195,9,43,192,197,162,196,9,43,192,197,226,190,9,42,192,197,98,191,9,42,192,197,162,192,9,42,192,197,226,45,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,48,192,197,34,205,9,255,255,35,105,193,14,226,9,48,192,197,162,227,9,48,192,197,226,199,9,6,0,200,9,48,192,197,98,203,9,47,192,197,226,1,76,197,162,190,9,47,192,197,226,215,9,48,192,197,34,193,9,12,0,193,9,46,192,197,162,194,9,46,192,197,226,195,9,47,192,197,34,196,9,47,192,197,98,190,9,45,192,197,226,191,9,46,192,197,34,192,9,46,192,197,98,49,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,51,192,197,162,205,9,255,255,35,105,193,15,226,9,52,192,197,34,227,9,52,192,197,98,199,9,6,0,200,9,51,192,197,226,203,9,51,192,197,98,1,77,197,34,190,9,51,192,197,98,215,9,51,192,197,162,193,9,12,0,193,9,50,192,197,34,194,9,50,192,197,98,195,9,50,192,197,162,196,9,50,192,197,226,190,9,49,192,197,98,191,9,49,192,197,162,192,9,49,192,197,226,52,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,55,192,197,34,205,9,255,255,35,105,193,16,226,9,55,192,197,162,227,9,55,192,197,226,199,9,6,0,200,9,55,192,197,98,203,9,54,192,197,226,193,77,197,162,190,9,54,192,197,226,215,9,55,192,197,34,193,9,12,0,193,9,53,192,197,162,194,9,53,192,197,226,195,9,54,192,197,34,196,9,54,192,197,98,190,9,52,192,197,226,191,9,53,192,197,34,192,9,53,192,197,98,56,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,62,192,197,34,205,9,255,255,35,105,193,17,226,9,62,192,197,162,227,9,62,192,197,226,196,9,61,192,197,98,199,9,6,0,200,9,62,192,197,98,203,9,61,192,197,226,129,79,197,162,190,9,61,192,197,226,215,9,62,192,197,34,192,9,12,0,192,9,60,192,197,98,193,9,60,192,197,162,194,9,60,192,197,226,195,9,61,192,197,34,188,9,6,0,190,9,59,192,197,226,191,9,60,192,197,34,77,78,197,98,199,9,30,0,204,9,12,0,204,9,58,192,197,226,205,9,0,192,198,129,226,9,59,192,197,98,227,9,59,192,197,162,199,9,6,0,200,9,59,192,197,34,203,9,58,192,197,162,193,78,197,98,190,9,58,192,197,162,215,9,58,192,197,226,193,9,12,0,193,9,57,192,197,98,194,9,57,192,197,162,195,9,57,192,197,226,196,9,58,192,197,34,190,9,56,192,197,162,191,9,56,192,197,226,192,9,57,192,197,34,63,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,69,192,197,34,205,9,255,255,35,105,193,18,226,9,69,192,197,162,227,9,69,192,197,226,196,9,68,192,197,98,199,9,6,0,200,9,69,192,197,98,203,9,68,192,197,226,65,81,197,162,190,9,68,192,197,226,215,9,69,192,197,34,192,9,12,0,192,9,67,192,197,98,193,9,67,192,197,162,194,9,67,192,197,226,195,9,68,192,197,34,188,9,6,0,190,9,66,192,197,226,191,9,67,192,197,34,13,80,197,98,199,9,30,0,204,9,12,0,204,9,65,192,197,226,205,9,0,192,198,161,226,9,66,192,197,98,227,9,66,192,197,162,199,9,6,0,200,9,66,192,197,34,203,9,65,192,197,162,129,80,197,98,190,9,65,192,197,162,215,9,65,192,197,226,193,9,12,0,193,9,64,192,197,98,194,9,64,192,197,162,195,9,64,192,197,226,196,9,65,192,197,34,190,9,63,192,197,162,191,9,63,192,197,226,192,9,64,192,197,34,70,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,72,192,197,162,205,9,255,255,35,105,193,19,226,9,73,192,197,34,227,9,73,192,197,98,199,9,6,0,200,9,72,192,197,226,203,9,72,192,197,98,65,82,197,34,190,9,72,192,197,98,215,9,72,192,197,162,193,9,12,0,193,9,71,192,197,34,194,9,71,192,197,98,195,9,71,192,197,162,196,9,71,192,197,226,190,9,70,192,197,98,191,9,70,192,197,162,192,9,70,192,197,226,0,0,198,194,13,0,199,9,35,0,204,9,17,0,204,9,3,192,198,66,205,9,6,0,226,9,3,192,198,194,227,9,4,192,198,2,112,64,198,193,13,32,255,255,35,105,193,20,199,9,6,0,200,9,3,192,198,130,203,9,3,192,198,2,193,64,198,194,190,9,3,192,198,2,215,9,3,192,198,66,193,9,12,0,193,9,1,192,198,194,194,9,2,192,198,2,195,9,2,192,198,66,196,9,2,192,198,130,190,9,1,192,198,2,191,9,1,192,198,66,192,9,1,192,198,130,73,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,76,192,197,34,205,9,255,255,35,105,193,21,226,9,76,192,197,162,227,9,76,192,197,226,199,9,6,0,200,9,76,192,197,98,203,9,75,192,197,226,1,83,197,162,190,9,75,192,197,226,215,9,76,192,197,34,193,9,12,0,193,9,74,192,197,162,194,9,74,192,197,226,195,9,75,192,197,34,196,9,75,192,197,98,190,9,73,192,197,226,191,9,74,192,197,34,192,9,74,192,197,98,77,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,79,192,197,162,205,9,255,255,35,105,193,22,226,9,80,192,197,34,227,9,80,192,197,98,199,9,6,0,200,9,79,192,197,226,203,9,79,192,197,98,1,84,197,34,190,9,79,192,197,98,215,9,79,192,197,162,193,9,12,0,193,9,78,192,197,34,194,9,78,192,197,98,195,9,78,192,197,162,196,9,78,192,197,226,190,9,77,192,197,98,191,9,77,192,197,162,192,9,77,192,197,226,80,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,83,192,197,34,205,9,255,255,35,105,193,23,226,9,83,192,197,162,227,9,83,192,197,226,199,9,6,0,200,9,83,192,197,98,203,9,82,192,197,226,193,84,197,162,190,9,82,192,197,226,215,9,83,192,197,34,193,9,12,0,193,9,81,192,197,162,194,9,81,192,197,226,195,9,82,192,197,34,196,9,82,192,197,98,190,9,80,192,197,226,191,9,81,192,197,34,192,9,81,192,197,98,84,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,86,192,197,162,205,9,255,255,35,105,193,24,226,9,87,192,197,34,227,9,87,192,197,98,199,9,6,0,200,9,86,192,197,226,203,9,86,192,197,98,193,85,197,34,190,9,86,192,197,98,215,9,86,192,197,162,193,9,12,0,193,9,85,192,197,34,194,9,85,192,197,98,195,9,85,192,197,162,196,9,85,192,197,226,190,9,84,192,197,98,191,9,84,192,197,162,192,9,84,192,197,226,87,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,90,192,197,34,205,9,255,255,35,105,193,25,226,9,90,192,197,162,227,9,90,192,197,226,199,9,6,0,200,9,90,192,197,98,203,9,89,192,197,226,129,86,197,162,190,9,89,192,197,226,215,9,90,192,197,34,193,9,12,0,193,9,88,192,197,162,194,9,88,192,197,226,195,9,89,192,197,34,196,9,89,192,197,98,190,9,87,192,197,226,191,9,88,192,197,34,192,9,88,192,197,98,91,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,97,192,197,34,205,9,255,255,35,105,193,26,226,9,97,192,197,162,227,9,97,192,197,226,196,9,96,192,197,98,199,9,6,0,200,9,97,192,197,98,203,9,96,192,197,226,65,88,197,162,190,9,96,192,197,226,215,9,97,192,197,34,192,9,12,0,192,9,95,192,197,98,193,9,95,192,197,162,194,9,95,192,197,226,195,9,96,192,197,34,188,9,6,0,190,9,94,192,197,226,191,9,95,192,197,34,13,87,197,98,199,9,30,0,204,9,12,0,204,9,93,192,197,226,205,9,4,192,198,65,226,9,94,192,197,98,227,9,94,192,197,162,199,9,6,0,200,9,94,192,197,34,203,9,93,192,197,162,129,87,197,98,190,9,93,192,197,162,215,9,93,192,197,226,193,9,12,0,193,9,92,192,197,98,194,9,92,192,197,162,195,9,92,192,197,226,196,9,93,192,197,34,190,9,91,192,197,162,191,9,91,192,197,226,192,9,92,192,197,34,98,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,104,192,197,34,205,9,255,255,35,105,193,27,226,9,104,192,197,162,227,9,104,192,197,226,196,9,103,192,197,98,199,9,6,0,200,9,104,192,197,98,203,9,103,192,197,226,1,90,197,162,190,9,103,192,197,226,215,9,104,192,197,34,192,9,12,0,192,9,102,192,197,98,193,9,102,192,197,162,194,9,102,192,197,226,195,9,103,192,197,34,188,9,6,0,190,9,101,192,197,226,191,9,102,192,197,34,205,88,197,98,199,9,30,0,204,9,12,0,204,9,100,192,197,226,205,9,4,192,198,97,226,9,101,192,197,98,227,9,101,192,197,162,199,9,6,0,200,9,101,192,197,34,203,9,100,192,197,162,65,89,197,98,190,9,100,192,197,162,215,9,100,192,197,226,193,9,12,0,193,9,99,192,197,98,194,9,99,192,197,162,195,9,99,192,197,226,196,9,100,192,197,34,190,9,98,192,197,162,191,9,98,192,197,226,192,9,99,192,197,34,105,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,107,192,197,162,205,9,255,255,35,105,193,28,226,9,108,192,197,34,227,9,108,192,197,98,199,9,6,0,200,9,107,192,197,226,203,9,107,192,197,98,1,91,197,34,190,9,107,192,197,98,215,9,107,192,197,162,193,9,12,0,193,9,106,192,197,34,194,9,106,192,197,98,195,9,106,192,197,162,196,9,106,192,197,226,190,9,105,192,197,98,191,9,105,192,197,162,192,9,105,192,197,226,108,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,111,192,197,34,205,9,255,255,35,105,193,29,226,9,111,192,197,162,227,9,111,192,197,226,199,9,6,0,200,9,111,192,197,98,203,9,110,192,197,226,193,91,197,162,190,9,110,192,197,226,215,9,111,192,197,34,193,9,12,0,193,9,109,192,197,162,194,9,109,192,197,226,195,9,110,192,197,34,196,9,110,192,197,98,190,9,108,192,197,226,191,9,109,192,197,34,192,9,109,192,197,98,112,0,197,34,14,0,196,9,34,0,204,9,13,0,204,9,118,192,197,34,205,9,255,255,35,105,193,30,226,9,118,192,197,162,227,9,118,192,197,226,196,9,117,192,197,98,199,9,6,0,200,9,118,192,197,98,203,9,117,192,197,226,129,93,197,162,190,9,117,192,197,226,215,9,118,192,197,34,192,9,12,0,192,9,116,192,197,98,193,9,116,192,197,162,194,9,116,192,197,226,195,9,117,192,197,34,188,9,6,0,190,9,115,192,197,226,191,9,116,192,197,34,77,92,197,98,199,9,30,0,204,9,12,0,204,9,114,192,197,226,205,9,4,192,198,129,226,9,115,192,197,98,227,9,115,192,197,162,199,9,6,0,200,9,115,192,197,34,203,9,114,192,197,162,193,92,197,98,190,9,114,192,197,162,215,9,114,192,197,226,193,9,12,0,193,9,113,192,197,98,194,9,113,192,197,162,195,9,113,192,197,226,196,9,114,192,197,34,190,9,112,192,197,162,191,9,112,192,197,226,192,9,113,192,197,34,119,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,121,192,197,162,205,9,255,255,35,105,193,31,226,9,122,192,197,34,227,9,122,192,197,98,199,9,6,0,200,9,121,192,197,226,203,9,121,192,197,98,129,94,197,34,190,9,121,192,197,98,215,9,121,192,197,162,193,9,12,0,193,9,120,192,197,34,194,9,120,192,197,98,195,9,120,192,197,162,196,9,120,192,197,226,190,9,119,192,197,98,191,9,119,192,197,162,192,9,119,192,197,226,122,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,125,192,197,34,205,9,255,255,35,105,193,33,226,9,125,192,197,162,227,9,125,192,197,226,199,9,6,0,200,9,125,192,197,98,203,9,124,192,197,226,65,95,197,162,190,9,124,192,197,226,215,9,125,192,197,34,193,9,12,0,193,9,123,192,197,162,194,9,123,192,197,226,195,9,124,192,197,34,196,9,124,192,197,98,190,9,122,192,197,226,191,9,123,192,197,34,192,9,123,192,197,98,126,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,128,192,197,162,205,9,255,255,35,105,193,35,226,9,129,192,197,34,227,9,129,192,197,98,199,9,6,0,200,9,128,192,197,226,203,9,128,192,197,98,65,96,197,34,190,9,128,192,197,98,215,9,128,192,197,162,193,9,12,0,193,9,127,192,197,34,194,9,127,192,197,98,195,9,127,192,197,162,196,9,127,192,197,226,190,9,126,192,197,98,191,9,126,192,197,162,192,9,126,192,197,226,129,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,132,192,197,34,205,9,255,255,35,105,193,36,226,9,132,192,197,162,227,9,132,192,197,226,199,9,6,0,200,9,132,192,197,98,203,9,131,192,197,226,1,97,197,162,190,9,131,192,197,226,215,9,132,192,197,34,193,9,12,0,193,9,130,192,197,162,194,9,130,192,197,226,195,9,131,192,197,34,196,9,131,192,197,98,190,9,129,192,197,226,191,9,130,192,197,34,192,9,130,192,197,98,133,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,135,192,197,162,205,9,255,255,35,105,193,37,226,9,136,192,197,34,227,9,136,192,197,98,199,9,6,0,200,9,135,192,197,226,203,9,135,192,197,98,1,98,197,34,190,9,135,192,197,98,215,9,135,192,197,162,193,9,12,0,193,9,134,192,197,34,194,9,134,192,197,98,195,9,134,192,197,162,196,9,134,192,197,226,190,9,133,192,197,98,191,9,133,192,197,162,192,9,133,192,197,226,136,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,139,192,197,34,205,9,255,255,35,105,193,38,226,9,139,192,197,162,227,9,139,192,197,226,199,9,6,0,200,9,139,192,197,98,203,9,138,192,197,226,193,98,197,162,190,9,138,192,197,226,215,9,139,192,197,34,193,9,12,0,193,9,137,192,197,162,194,9,137,192,197,226,195,9,138,192,197,34,196,9,138,192,197,98,190,9,136,192,197,226,191,9,137,192,197,34,192,9,137,192,197,98,56,0,197,98,13,0,199,9,30,0,204,9,12,0,204,9,58,192,197,226,205,9,0,192,198,129,226,9,59,192,197,98,227,9,59,192,197,162,199,9,6,0,200,9,59,192,197,34,203,9,58,192,197,162,193,78,197,98,190,9,58,192,197,162,215,9,58,192,197,226,193,9,12,0,193,9,57,192,197,98,194,9,57,192,197,162,195,9,57,192,197,226,196,9,58,192,197,34,190,9,56,192,197,162,191,9,56,192,197,226,192,9,57,192,197,34,63,0,197,98,13,0,199,9,30,0,204,9,12,0,204,9,65,192,197,226,205,9,0,192,198,161,226,9,66,192,197,98,227,9,66,192,197,162,199,9,6,0,200,9,66,192,197,34,203,9,65,192,197,162,129,80,197,98,190,9,65,192,197,162,215,9,65,192,197,226,193,9,12,0,193,9,64,192,197,98,194,9,64,192,197,162,195,9,64,192,197,226,196,9,65,192,197,34,190,9,63,192,197,162,191,9,63,192,197,226,192,9,64,192,197,34,112,0,197,98,13,0,199,9,30,0,204,9,12,0,204,9,114,192,197,226,205,9,4,192,198,129,226,9,115,192,197,98,227,9,115,192,197,162,199,9,6,0,200,9,115,192,197,34,203,9,114,192,197,162,193,92,197,98,190,9,114,192,197,162,215,9,114,192,197,226,193,9,12,0,193,9,113,192,197,98,194,9,113,192,197,162,195,9,113,192,197,226,196,9,114,192,197,34,190,9,112,192,197,162,191,9,112,192,197,226,192,9,113,192,197,34,140,0,197,34,13,0,199,9,31,0,204,9,13,0,204,9,142,192,197,162,205,9,255,255,35,105,193,32,226,9,143,192,197,34,227,9,143,192,197,98,199,9,6,0,200,9,142,192,197,226,203,9,142,192,197,98,193,99,197,34,190,9,142,192,197,98,215,9,142,192,197,162,193,9,12,0,193,9,141,192,197,34,194,9,141,192,197,98,195,9,141,192,197,162,196,9,141,192,197,226,190,9,140,192,197,98,191,9,140,192,197,162,192,9,140,192,197,226,143,0,197,162,13,0,199,9,31,0,204,9,13,0,204,9,146,192,197,34,205,9,255,255,35,105,193,34,226,9,146,192,197,162,227,9,146,192,197,226,199,9,6,0,200,9,146,192,197,98,203,9,145,192,197,226,129,100,197,162,190,9,145,192,197,226,215,9,146,192,197,34,193,9,12,0,193,9,144,192,197,162,194,9,144,192,197,226,195,9,145,192,197,34,196,9,145,192,197,98,190,9,143,192,197,226,191,9,144,192,197,34,192,9,144,192,197,98,10,0,191,9,197,9,199,9,201,9,203,9,205,9,226,9,228,9,13,32,14,32,3,0,69,0,52,0,61,0,215,15,0,16,91,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,208,15,0,32,199,32,0,32,1,0,32,0,204,32,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,170,16,0,32,7,0,0,0,21,0,0,0,172,16,0,0,172,16,0,0,3,0,0,0,0,0,0,0,213,3,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,239,223,120,7,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,105,0,98,0,116,0,93,0,38,0,64,15,98,15,60,0,64,15,98,15,144,15,60,0,64,15,98,15,159,15,60,0,64,15,98,15,158,15,60,0,64,15,98,15,168,15,60,0,64,15,98,15,180,15,60,0,64,15,98,15,181,15,38,0,64,15,99,15,60,0,64,15,99,15,144,15,60,0,64,15,99,15,164,15,38,0,64,15,102,15,60,0,64,15,102,15,168,15,38,0,66,15,73,15,60,0,66,15,73,15,171,15,38,0,80,15,98,15,60,0,80,15,98,15,144,15,38,0,84,15,116,15,102,15,60,0,84,15,116,15,102,15,159,15,114,15,38,0,85,15,99,15,60,0,85,15,99,15,146,15,38,0,86,15,114,15,99,15,60,0,86,15,114,15,99,15,166,15,38,0,88,15,73,15,60,0,88,15,73,15,171,15,38,0,88,15,98,15,60,0,88,15,98,15,146,15,38,0,93,15,98,15,60,0,93,15,98,15,159,15,38,0,100,15,102,15,60,0,100,15,102,15,159,15,38,0,102,15,98,15,60,0,102,15,98,15,146,15,38,0,104,15,98,15,60,0,104,15,98,15,146,15,60,0,104,15,98,15,177,15,61,0,104,15,106,15,177,15,38,0,104,15,102,15,60,0,104,15,102,15,168,15,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,64,15,60,0,13,15,60,0,60,0,14,15,60,0,60,0,15,15,60,0,60,0,16,15,60,0,60,0,17,15,60,0,60,0,20,15,60,0,60,0,52,15,60,0,11,15,61,0,12,15,38,0,64,15,60,0,60,0,136,15,144,15,60,0,107,15,60,0,81,15,64,15,60,0,86,15,64,15,60,0,98,15,144,15,60,0,99,15,144,15,60,0,102,15,144,15,60,0,86,15,98,15,144,15,60,0,86,15,102,15,144,15,38,0,65,15,60,0,60,0,136,15,145,15,60,0,88,15,65,15,60,0,96,15,65,15,38,0,66,15,60,0,81,15,66,15,66,15,60,0,81,15,66,15,68,15,60,0,81,15,66,15,81,15,60,0,81,15,66,15,83,15,60,0,81,15,66,15,86,15,60,0,81,15,66,15,93,15,60,0,81,15,66,15,96,15,60,0,81,15,66,15,98,15,60,0,81,15,66,15,99,15,60,0,81,15,66,15,102,15,60,0,81,15,66,15,114,15,60,0,81,15,66,15,116,15,60,0,81,15,66,15,122,15,60,0,81,15,66,15,124,15,60,0,81,15,66,15,173,15,60,0,81,15,66,15,177,15,60,0,81,15,66,15,178,15,60,0,86,15,66,15,66,15,60,0,86,15,66,15,68,15,60,0,86,15,66,15,81,15,60,0,86,15,66,15,86,15,60,0,86,15,66,15,88,15,60,0,60,0,60,0,86,15,66,15,126,15,60,0,86,15,66,15,93,15,60,0,86,15,66,15,96,15,60,0,86,15,66,15,98,15,60,0,86,15,66,15,99,15,60,0,86,15,66,15,114,15,60,0,86,15,66,15,116,15,60,0,86,15,66,15,122,15,60,0,86,15,66,15,124,15,60,0,86,15,66,15,173,15,60,0,86,15,66,15,177,15,60,0,86,15,66,15,178,15,60,0,86,15,66,15,179,15,60,0,88,15,66,15,66,15,60,0,88,15,66,15,68,15,60,0,88,15,66,15,81,15,60,0,88,15,66,15,86,15,60,0,88,15,66,15,96,15,60,0,88,15,66,15,98,15,60,0,88,15,66,15,99,15,60,0,88,15,66,15,114,15,60,0,88,15,66,15,116,15,60,0,88,15,66,15,122,15,60,0,88,15,66,15,124,15,60,0,88,15,66,15,173,15,60,0,88,15,66,15,177,15,60,0,88,15,66,15,178,15,60,0,96,15,66,15,66,15,60,0,96,15,66,15,68,15,60,0,96,15,66,15,81,15,60,0,96,15,66,15,83,15,60,0,96,15,66,15,86,15,60,0,96,15,66,15,88,15,60,0,60,0,60,0,96,15,66,15,126,15,60,0,96,15,66,15,96,15,60,0,96,15,66,15,98,15,60,0,96,15,66,15,99,15,60,0,96,15,66,15,102,15,60,0,96,15,66,15,114,15,60,0,96,15,66,15,116,15,60,0,96,15,66,15,122,15,60,0,96,15,66,15,124,15,60,0,96,15,66,15,173,15,60,0,96,15,66,15,177,15,60,0,96,15,66,15,178,15,60,0,98,15,146,15,60,0,99,15,146,15,60,0,102,15,146,15,60,0,86,15,98,15,146,15,60,0,86,15,102,15,146,15,38,0,68,15,60,0,60,0,60,0,130,15,60,0,60,0,60,0,131,15,60,0,81,15,68,15,66,15,60,0,81,15,68,15,68,15,60,0,81,15,68,15,81,15,60,0,81,15,68,15,83,15,60,0,81,15,68,15,86,15,60,0,81,15,68,15,96,15,60,0,81,15,68,15,98,15,60,0,81,15,68,15,99,15,60,0,81,15,68,15,114,15,60,0,81,15,68,15,116,15,60,0,81,15,68,15,122,15,60,0,81,15,68,15,124,15,60,0,88,15,68,15,66,15,60,0,88,15,68,15,68,15,60,0,88,15,68,15,81,15,60,0,88,15,68,15,83,15,60,0,88,15,68,15,86,15,60,0,88,15,68,15,96,15,60,0,88,15,68,15,98,15,60,0,88,15,68,15,99,15,60,0,88,15,68,15,114,15,60,0,88,15,68,15,116,15,60,0,88,15,68,15,122,15,60,0,88,15,68,15,124,15,60,0,98,15,148,15,60,0,99,15,148,15,60,0,102,15,148,15,60,0,86,15,98,15,148,15,60,0,86,15,102,15,148,15,38,0,69,15,60,0,66,15,69,15,60,0,86,15,69,15,60,0,99,15,149,15,60,0,86,15,99,15,149,15,38,0,70,15,60,0,88,15,70,15,60,0,96,15,70,15,38,0,71,15,60,0,88,15,71,15,60,0,96,15,71,15,60,0,98,15,151,15,60,0,99,15,151,15,60,0,86,15,98,15,151,15,38,0,73,15,60,0,60,0,139,15,153,15,60,0,66,15,73,15,60,0,88,15,73,15,60,0,98,15,153,15,61,0,106,15,153,15,60,0,102,15,153,15,60,0,86,15,98,15,153,15,61,0,86,15,106,15,153,15,60,0,86,15,102,15,153,15,38,0,79,15,60,0,74,15,60,0,79,15,173,15,60,0,79,15,178,15,60,0,66,15,79,15,60,0,86,15,79,15,60,0,98,15,159,15,60,0,99,15,159,15,60,0,102,15,159,15,60,0,86,15,98,15,159,15,60,0,86,15,99,15,159,15,60,0,86,15,102,15,159,15,38,0,80,15,60,0,75,15,60,0,88,15,80,15,60,0,96,15,80,15,38,0,81,15,60,0,76,15,60,0,66,15,81,15,66,15,60,0,66,15,81,15,68,15,60,0,66,15,81,15,81,15,60,0,66,15,81,15,83,15,60,0,66,15,81,15,86,15,60,0,66,15,81,15,88,15,60,0,60,0,60,0,66,15,81,15,126,15,60,0,66,15,81,15,96,15,60,0,66,15,81,15,98,15,60,0,66,15,81,15,99,15,60,0,66,15,81,15,102,15,60,0,66,15,81,15,114,15,60,0,66,15,81,15,116,15,60,0,66,15,81,15,122,15,60,0,66,15,81,15,124,15,60,0,66,15,81,15,173,15,60,0,86,15,81,15,66,15,60,0,86,15,81,15,68,15,60,0,86,15,81,15,81,15,60,0,86,15,81,15,86,15,60,0,86,15,81,15,88,15,60,0,60,0,60,0,86,15,81,15,126,15,60,0,86,15,81,15,96,15,60,0,86,15,81,15,98,15,60,0,86,15,81,15,99,15,60,0,86,15,81,15,102,15,60,0,86,15,81,15,114,15,60,0,86,15,81,15,116,15,60,0,86,15,81,15,122,15,60,0,86,15,81,15,124,15,60,0,86,15,81,15,173,15,60,0,88,15,81,15,66,15,60,0,88,15,81,15,68,15,60,0,88,15,81,15,81,15,60,0,88,15,81,15,83,15,60,0,88,15,81,15,86,15,60,0,88,15,81,15,96,15,60,0,88,15,81,15,98,15,60,0,88,15,81,15,99,15,60,0,88,15,81,15,102,15,60,0,88,15,81,15,114,15,60,0,88,15,81,15,116,15,60,0,88,15,81,15,122,15,60,0,88,15,81,15,124,15,60,0,88,15,81,15,173,15,60,0,96,15,81,15,66,15,60,0,96,15,81,15,68,15,60,0,96,15,81,15,81,15,60,0,96,15,81,15,83,15,60,0,96,15,81,15,86,15,60,0,96,15,81,15,88,15,60,0,60,0,60,0,96,15,81,15,126,15,60,0,96,15,81,15,93,15,60,0,96,15,81,15,96,15,60,0,96,15,81,15,98,15,60,0,96,15,81,15,99,15,60,0,96,15,81,15,102,15,60,0,96,15,81,15,114,15,60,0,96,15,81,15,116,15,60,0,96,15,81,15,122,15,60,0,96,15,81,15,124,15,60,0,96,15,81,15,173,15,60,0,96,15,81,15,178,15,60,0,98,15,161,15,60,0,99,15,161,15,60,0,102,15,161,15,60,0,86,15,98,15,161,15,60,0,86,15,99,15,161,15,60,0,86,15,102,15,161,15,38,0,83,15,60,0,78,15,60,0,66,15,83,15,66,15,60,0,66,15,83,15,68,15,60,0,66,15,83,15,81,15,60,0,66,15,83,15,83,15,60,0,66,15,83,15,86,15,60,0,66,15,83,15,88,15,60,0,60,0,60,0,66,15,83,15,126,15,60,0,66,15,83,15,93,15,60,0,66,15,83,15,96,15,60,0,66,15,83,15,98,15,60,0,66,15,83,15,99,15,60,0,66,15,83,15,102,15,60,0,66,15,83,15,114,15,60,0,66,15,83,15,116,15,60,0,66,15,83,15,122,15,60,0,66,15,83,15,124,15,60,0,66,15,83,15,173,15,60,0,88,15,83,15,66,15,60,0,88,15,83,15,68,15,60,0,88,15,83,15,81,15,60,0,88,15,83,15,83,15,60,0,88,15,83,15,86,15,60,0,88,15,83,15,88,15,60,0,60,0,60,0,88,15,83,15,126,15,60,0,88,15,83,15,96,15,60,0,88,15,83,15,98,15,60,0,88,15,83,15,99,15,60,0,88,15,83,15,102,15,60,0,88,15,83,15,114,15,60,0,88,15,83,15,116,15,60,0,88,15,83,15,122,15,60,0,88,15,83,15,124,15,60,0,88,15,83,15,173,15,60,0,98,15,163,15,60,0,102,15,163,15,60,0,86,15,98,15,163,15,60,0,86,15,102,15,163,15,38,0,84,15,60,0,60,0,137,15,164,15,60,0,81,15,84,15,66,15,60,0,81,15,84,15,68,15,60,0,81,15,84,15,81,15,60,0,81,15,84,15,86,15,60,0,81,15,84,15,96,15,60,0,81,15,84,15,98,15,60,0,81,15,84,15,99,15,60,0,81,15,84,15,102,15,60,0,81,15,84,15,114,15,60,0,81,15,84,15,116,15,60,0,81,15,84,15,122,15,60,0,81,15,84,15,124,15,60,0,81,15,84,15,177,15,60,0,81,15,84,15,178,15,60,0,99,15,164,15,60,0,102,15,164,15,38,0,85,15,60,0,60,0,137,15,165,15,60,0,96,15,85,15,38,0,86,15,60,0,81,15,86,15,66,15,60,0,81,15,86,15,68,15,60,0,81,15,86,15,81,15,60,0,81,15,86,15,83,15,60,0,81,15,86,15,86,15,60,0,81,15,86,15,96,15,60,0,81,15,86,15,98,15,60,0,81,15,86,15,99,15,60,0,81,15,86,15,102,15,60,0,81,15,86,15,114,15,60,0,81,15,86,15,116,15,60,0,81,15,86,15,122,15,60,0,81,15,86,15,124,15,60,0,81,15,86,15,177,15,60,0,81,15,86,15,178,15,60,0,96,15,86,15,66,15,60,0,96,15,86,15,68,15,60,0,96,15,86,15,81,15,60,0,96,15,86,15,83,15,60,0,96,15,86,15,86,15,60,0,96,15,86,15,88,15,60,0,60,0,60,0,96,15,86,15,126,15,60,0,96,15,86,15,96,15,60,0,96,15,86,15,98,15,60,0,96,15,86,15,99,15,60,0,96,15,86,15,102,15,60,0,96,15,86,15,114,15,60,0,96,15,86,15,116,15,60,0,96,15,86,15,122,15,60,0,96,15,86,15,124,15,60,0,96,15,86,15,177,15,60,0,96,15,86,15,178,15,60,0,98,15,166,15,60,0,99,15,166,15,60,0,102,15,166,15,38,0,88,15,60,0,60,0,60,0,126,15,60,0,81,15,88,15,66,15,60,0,81,15,88,15,68,15,60,0,81,15,88,15,81,15,60,0,81,15,88,15,83,15,60,0,81,15,88,15,86,15,60,0,81,15,88,15,93,15,60,0,81,15,88,15,96,15,60,0,81,15,88,15,98,15,60,0,81,15,88,15,99,15,60,0,81,15,88,15,102,15,60,0,81,15,88,15,114,15,60,0,81,15,88,15,116,15,60,0,81,15,88,15,122,15,60,0,81,15,88,15,124,15,60,0,81,15,88,15,173,15,60,0,81,15,88,15,177,15,60,0,98,15,168,15,60,0,102,15,168,15,38,0,89,15,60,0,66,15,89,15,60,0,86,15,89,15,60,0,98,15,169,15,60,0,102,15,169,15,60,0,86,15,98,15,169,15,60,0,86,15,102,15,169,15,38,0,90,15,60,0,88,15,90,15,60,0,96,15,90,15,38,0,91,15,60,0,88,15,91,15,60,0,96,15,91,15,60,0,98,15,171,15,60,0,86,15,98,15,171,15,38,0,94,15,60,0,66,15,94,15,60,0,86,15,94,15,38,0,95,15,60,0,66,15,95,15,60,0,86,15,95,15,38,0,97,15,60,0,66,15,97,15,38,0,98,15,60,0,60,0,60,0,106,15,60,0,108,15,60,0,86,15,98,15,179,15,61,0,86,15,106,15,179,15,38,0,100,15,60,0,101,15,60,0,66,15,100,15,60,0,86,15,100,15,38,0,102,15,60,0,66,15,102,15,66,15,60,0,66,15,102,15,68,15,60,0,66,15,102,15,81,15,60,0,66,15,102,15,83,15,60,0,66,15,102,15,86,15,60,0,66,15,102,15,96,15,60,0,66,15,102,15,98,15,60,0,66,15,102,15,99,15,60,0,66,15,102,15,102,15,60,0,66,15,102,15,114,15,60,0,66,15,102,15,116,15,60,0,66,15,102,15,122,15,60,0,66,15,102,15,124,15,60,0,66,15,102,15,173,15,60,0,86,15,102,15,66,15,60,0,86,15,102,15,68,15,60,0,86,15,102,15,81,15,60,0,86,15,102,15,86,15,60,0,86,15,102,15,88,15,60,0,60,0,60,0,86,15,102,15,126,15,60,0,86,15,102,15,96,15,60,0,86,15,102,15,98,15,60,0,86,15,102,15,99,15,60,0,86,15,102,15,102,15,60,0,86,15,102,15,114,15,60,0,86,15,102,15,116,15,60,0,86,15,102,15,122,15,60,0,86,15,102,15,124,15,60,0,86,15,102,15,173,15,60,0,86,15,102,15,178,15,60,0,86,15,102,15,179,15,38,0,103,15,60,0,99,15,183,15,38,0,104,15,60,0,113,15,60,0,114,15,60,0,113,15,114,15,60,0,128,15,60,0,113,15,128,15,60,0,116,15,60,0,113,15,116,15,60,0,122,15,60,0,123,15,61,0,122,15,122,15,60,0,124,15,60,0,125,15,61,0,124,15,124,15,60,0,144,15,60,0,145,15,60,0,146,15,60,0,148,15,60,0,149,15,60,0,150,15,60,0,151,15,60,0,153,15,60,0,159,15,60,0,154,15,60,0,160,15,60,0,155,15,60,0,161,15,60,0,156,15,60,0,163,15,60,0,158,15,60,0,164,15,60,0,165,15,60,0,166,15,60,0,168,15,60,0,169,15,60,0,170,15,60,0,171,15,60,0,173,15,60,0,60,0,60,0,186,15,60,0,174,15,60,0,175,15,60,0,176,15,60,0,177,15,60,0,60,0,60,0,187,15,60,0,178,15,60,0,60,0,60,0,188,15,60,0,179,15,60,0,180,15,60,0,181,15,60,0,182,15,60,0,183,15,60,0,184,15,38,0,57,15,60,0,60,0,132,15,60,0,60,0,127,15,60,0,60,0,133,15,60,0,60,0,136,15,60,0,60,0,137,15,60,0,60,0,138,15,60,0,60,0,139,15,60,0,60,0,140,15,60,0,60,0,141,15,60,0,60,0,142,15,60,0,60,0,143,15,38,0,104,15,124,15,126,15,61,0,0,15,38,0,178,15,113,15,128,15,61,0,119,15,38,0,179,15,113,15,128,15,61,0,121,15,0,0,170,170,170,170,170,170,170,170,170,170,44,51,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,76,27,0,0,76,27,0,0,220,27,0,0,220,27,0,0,216,32,0,0,216,32,0,0,202,50,0,0,16,51,0,0,39,0,0,0,0,0,0,116,179,255,198,116,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,0,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,151,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,102,0,110,0,118,0,126,0,134,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,142,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,38,0,202,193,38,0,202,226,38,0,202,3,39,0,202,36,39,0,202,69,39,0,202,102,39,0,202,135,39,0,202,168,39,0,202,201,39,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,37,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,38,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,38,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,116,5,5,5,116,193,3,4,116,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,192,0,0,0,192,0,0,0,198,129,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,192,0,0,0,201,196,5,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,57,116,193,2,61,116,193,2,65,116,197,162,6,0,193,2,69,116,201,64,41,0,201,0,43,0,201,100,44,0,197,130,12,0,192,0,0,0,201,102,95,0,201,128,96,0,201,228,97,0,197,98,20,0,201,100,156,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,25,0,201,32,200,0,192,0,0,0,192,0,0,0,201,4,201,0,192,0,0,0,201,224,240,0,201,224,249,0,201,128,1,1,193,2,131,116,201,96,2,1,192,0,0,0,201,160,11,1,197,98,34,0,201,224,14,1,193,2,7,116,193,2,121,116,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,15,1,193,3,147,116,193,4,147,116,193,7,147,116,193,8,147,116,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,17,1,193,10,147,116,201,134,18,1,193,12,147,116,6,5,84,116,194,5,250,244,193,5,147,116,193,6,147,116,6,5,20,116,7,5,20,116,194,5,249,244,194,5,251,244,192,0,0,0,192,0,0,0,201,96,19,1,201,32,21,1,194,5,254,244,201,128,22,1,194,5,2,245,194,5,3,245,194,5,4,245,194,5,5,245,193,13,147,116,193,14,147,116,193,15,147,116,197,226,34,0,193,16,147,116,193,17,147,116,193,18,147,116,193,19,147,116,192,0,0,0,193,20,147,116,193,22,147,116,193,24,147,116,193,26,147,116,197,34,35,0,193,28,147,116,193,21,147,116,193,23,147,116,193,25,147,116,197,98,35,0,193,27,147,116,193,29,147,116,193,30,147,116,193,31,147,116,197,162,35,0,193,32,147,116,193,33,147,116,193,34,147,116,193,35,147,116,197,226,35,0,193,36,147,116,193,37,147,116,193,38,147,116,193,39,147,116,193,40,147,116,201,102,23,1,201,70,27,1,193,43,147,116,193,44,147,116,193,45,147,116,193,46,147,116,193,47,147,116,197,162,37,0,198,225,1,0,198,1,2,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,3,4,116,0,5,0,71,0,3,4,116,0,5,0,72,0,3,4,116,0,5,0,73,0,3,4,116,0,5,0,74,0,3,4,116,0,5,0,75,0,3,4,116,0,6,0,5,0,8,65,116,0,6,0,5,0,8,69,116,0,6,0,5,0,23,17,116,0,6,0,5,0,22,65,116,0,6,0,5,0,20,139,116,0,6,0,5,0,24,69,116,0,6,0,5,0,55,17,116,0,6,0,5,0,51,65,116,0,6,0,5,0,22,81,116,0,6,0,5,0,36,147,116,0,6,0,5,0,40,147,116,0,6,0,5,0,41,147,116,0,0,0,0,5,5,146,116,193,11,147,116,6,5,84,116,5,5,6,116,193,10,121,116,5,5,6,116,193,12,121,116,5,5,6,116,193,11,121,116,5,5,6,116,193,13,121,116,5,5,6,116,193,14,121,116,5,5,6,116,193,15,121,116,5,5,6,116,193,10,121,116,5,5,136,116,5,5,6,116,193,4,127,116,5,5,6,116,193,5,127,116,5,5,6,116,193,4,127,116,5,5,136,116,5,5,6,116,193,35,139,116,5,5,16,116,193,9,37,116,5,5,16,116,193,9,37,116,5,5,144,116,193,3,65,116,5,5,144,116,193,5,65,116,5,5,144,116,193,7,65,116,5,5,144,116,193,3,69,116,5,5,144,116,193,5,69,116,5,5,144,116,193,7,69,116,5,5,144,116,193,2,139,116,5,5,144,116,193,4,139,116,5,5,144,116,193,6,139,116,5,5,144,116,5,5,16,116,193,46,147,116,193,2,65,116,193,46,147,116,193,4,57,116,5,5,172,116,5,5,60,116,193,9,121,116,5,5,60,116,193,9,121,116,5,5,136,116,193,2,17,116,5,5,144,116,193,4,17,116,5,5,144,116,193,6,17,116,5,5,144,116,193,18,17,116,5,5,172,116,193,2,21,116,5,5,144,116,193,4,21,116,5,5,144,116,193,6,21,116,5,5,144,116,193,2,73,116,5,5,144,116,193,4,73,116,5,5,144,116,193,5,73,116,5,5,144,116,193,15,73,116,5,5,172,116,193,2,81,116,5,5,144,116,193,4,81,116,5,5,144,116,193,6,81,116,5,5,144,116,193,16,81,116,5,5,172,116,193,2,85,116,5,5,144,116,193,4,85,116,5,5,144,116,193,6,85,116,5,5,144,116,193,3,7,116,5,5,136,116,5,5,64,116,193,46,147,116,5,5,72,116,5,5,176,116,193,34,139,116,5,5,76,116,193,3,127,116,5,5,76,116,193,3,127,116,5,5,144,116,193,19,17,116,5,5,144,116,193,21,17,116,5,5,144,116,193,22,17,116,5,5,144,116,193,34,17,116,5,5,172,116,193,35,17,116,5,5,172,116,193,18,65,116,5,5,144,116,193,20,65,116,5,5,144,116,193,21,65,116,5,5,144,116,193,3,121,116,5,5,172,116,193,70,17,116,5,5,144,116,193,66,65,116,5,5,144,116,193,5,97,116,5,5,144,116,193,8,7,116,5,5,136,116,193,67,65,116,5,5,144,116,193,16,139,116,5,5,144,116,193,18,139,116,5,5,144,116,193,19,139,116,5,5,144,116,193,30,139,116,5,5,172,116,193,31,139,116,5,5,172,116,193,71,17,116,5,5,144,116,193,68,65,116,5,5,144,116,193,9,7,116,5,5,136,116,193,4,7,116,5,5,136,116,5,5,80,116,5,5,168,116,193,2,127,116,5,5,80,116,5,5,168,116,193,2,127,116,5,5,144,116,5,5,80,116,193,46,147,116,193,36,17,116,5,5,144,116,193,38,17,116,5,5,144,116,193,39,17,116,5,5,144,116,193,49,17,116,5,5,172,116,193,14,21,116,5,5,144,116,193,16,21,116,5,5,144,116,193,18,21,116,5,5,144,116,5,5,84,116,193,8,37,116,5,5,84,116,193,8,37,116,5,5,144,116,193,32,65,116,5,5,144,116,193,34,65,116,5,5,144,116,193,36,65,116,5,5,144,116,193,19,69,116,5,5,144,116,193,21,69,116,5,5,144,116,193,23,69,116,5,5,144,116,193,2,97,116,5,5,144,116,5,5,84,116,193,8,121,116,5,5,84,116,193,8,121,116,5,5,144,116,5,5,96,116,193,46,147,116,5,5,100,116,193,7,121,116,193,50,17,116,5,5,144,116,193,52,17,116,5,5,144,116,193,54,17,116,5,5,144,116,193,66,17,116,5,5,172,116,193,46,65,116,5,5,144,116,193,48,65,116,5,5,144,116,193,50,65,116,5,5,144,116,193,62,65,116,5,5,172,116,193,17,81,116,5,5,144,116,193,19,81,116,5,5,144,116,193,21,81,116,5,5,144,116,193,32,81,116,5,5,172,116,193,3,97,116,5,5,144,116,193,67,17,116,5,5,144,116,193,63,65,116,5,5,144,116,193,33,81,116,5,5,144,116,193,4,97,116,5,5,144,116,193,5,7,116,5,5,136,116,193,68,17,116,5,5,144,116,193,64,65,116,5,5,144,116,193,34,81,116,5,5,144,116,193,6,7,116,5,5,136,116,5,5,130,116,193,33,139,116,5,5,138,116,193,6,121,116,5,5,138,116,193,6,121,116,5,5,144,116,193,69,17,116,5,5,144,116,193,65,65,116,5,5,144,116,193,35,81,116,5,5,144,116,193,7,7,116,5,5,136,116,5,5,146,116,193,4,121,116,5,5,146,116,193,4,121,116,5,5,144,116,5,5,146,116,193,5,121,116,5,5,146,116,193,32,139,116,5,5,6,116,193,44,147,116,5,70,6,116,5,5,136,116,193,15,147,116,193,46,147,116,193,26,147,116,193,46,147,116,193,25,147,116,193,46,147,116,193,31,147,116,193,46,147,116,193,35,147,116,193,46,147,116,5,5,122,116,5,5,166,116,5,5,122,116,5,5,170,116,5,5,122,116,5,5,178,116,5,5,128,116,5,5,166,116,5,5,128,116,5,5,170,116,5,5,128,116,5,5,178,116,193,13,147,116,193,44,147,116,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,6,116,5,5,2,0,98,15,7,0,99,15,29,0,102,15,48,0,168,15,3,192,197,66,6,0,168,15,12,0,168,15,1,192,197,66,180,15,1,192,197,130,181,15,1,192,197,194,185,15,2,192,197,3,144,15,0,192,197,130,158,15,0,192,197,194,159,15,1,192,197,2,2,0,144,15,2,192,197,98,164,15,2,192,197,162,185,15,2,192,197,227,16,116,5,5,10,0,89,15,95,0,97,15,81,0,97,15,255,255,117,116,5,5,100,15,255,255,131,116,193,3,102,15,16,0,96,15,38,0,114,15,20,0,114,15,255,255,139,116,193,11,116,15,255,255,139,116,193,12,122,15,255,255,139,116,193,13,124,15,255,255,139,116,193,14,173,15,255,255,139,116,193,15,96,15,255,255,139,116,193,7,98,15,255,255,139,116,193,8,99,15,255,255,139,116,193,9,102,15,255,255,139,116,193,10,82,15,14,0,82,15,5,192,197,226,83,15,255,255,139,116,193,5,86,15,255,255,139,116,193,6,87,15,6,192,197,34,66,15,255,255,139,116,193,2,67,15,5,192,197,162,68,15,255,255,139,116,193,3,81,15,255,255,139,116,193,4,89,15,255,255,89,116,193,2,94,15,255,255,105,116,193,2,95,15,255,255,109,116,193,2,69,15,255,255,25,116,193,2,73,15,90,0,79,15,255,255,57,116,193,5,81,15,93,0,83,15,19,0,96,15,41,0,116,15,19,0,116,15,255,255,69,116,193,15,122,15,255,255,69,116,193,16,124,15,255,255,69,116,193,17,126,15,0,192,198,225,173,15,255,255,69,116,193,18,96,15,255,255,69,116,193,10,98,15,255,255,69,116,193,11,99,15,255,255,69,116,193,12,102,15,255,255,69,116,193,13,114,15,255,255,69,116,193,14,83,15,19,0,83,15,255,255,69,116,193,6,86,15,255,255,69,116,193,7,87,15,5,192,197,98,88,15,255,255,69,116,193,8,93,15,255,255,69,116,193,9,66,15,255,255,69,116,193,3,67,15,4,192,197,226,68,15,255,255,69,116,193,4,81,15,255,255,69,116,193,5,82,15,5,192,197,34,193,127,37,116,193,2,171,15,3,192,197,130,172,15,3,192,197,195,18,0,96,15,41,0,116,15,19,0,116,15,255,255,65,116,193,14,122,15,255,255,65,116,193,15,124,15,255,255,65,116,193,16,126,15,0,192,198,193,173,15,255,255,65,116,193,17,96,15,255,255,65,116,193,9,98,15,255,255,65,116,193,10,99,15,255,255,65,116,193,11,102,15,255,255,65,116,193,12,114,15,255,255,65,116,193,13,82,15,18,0,82,15,4,192,197,98,83,15,255,255,65,116,193,6,86,15,255,255,65,116,193,7,87,15,4,192,197,162,88,15,255,255,65,116,193,8,66,15,255,255,65,116,193,3,67,15,4,192,197,34,68,15,255,255,65,116,193,4,81,15,255,255,65,116,193,5,56,116,5,5,2,0,118,15,6,192,197,226,173,15,255,255,57,116,193,3,178,15,255,255,57,116,193,4,60,116,5,5,48,0,98,15,1,0,144,15,7,192,197,34,185,15,7,192,197,99,64,116,5,5,6,0,84,15,243,0,84,15,7,0,86,15,80,0,88,15,157,0,105,15,12,192,197,66,17,0,99,15,37,0,118,15,19,0,118,15,10,192,197,66,122,15,255,255,73,116,193,12,124,15,255,255,73,116,193,13,177,15,255,255,73,116,193,14,178,15,255,255,73,116,193,15,99,15,255,255,73,116,193,8,102,15,255,255,73,116,193,9,114,15,255,255,73,116,193,10,116,15,255,255,73,116,193,11,82,15,18,0,82,15,9,192,197,194,86,15,255,255,73,116,193,5,87,15,10,192,197,2,96,15,255,255,73,116,193,6,98,15,255,255,73,116,193,7,66,15,255,255,73,116,193,2,67,15,9,192,197,130,68,15,255,255,73,116,193,3,81,15,255,255,73,116,193,4,18,0,98,15,41,0,118,15,19,0,118,15,11,192,197,66,122,15,255,255,81,116,193,13,124,15,255,255,81,116,193,14,177,15,255,255,81,116,193,15,178,15,255,255,81,116,193,16,98,15,255,255,81,116,193,8,99,15,255,255,81,116,193,9,102,15,255,255,81,116,193,10,114,15,255,255,81,116,193,11,116,15,255,255,81,116,193,12,82,15,18,0,82,15,10,192,197,194,83,15,255,255,81,116,193,5,86,15,255,255,81,116,193,6,87,15,11,192,197,2,96,15,255,255,81,116,193,7,66,15,255,255,81,116,193,2,67,15,10,192,197,130,68,15,255,255,81,116,193,3,81,15,255,255,81,116,193,4,18,0,96,15,42,0,116,15,20,0,116,15,255,255,85,116,193,13,122,15,255,255,85,116,193,14,124,15,255,255,85,116,193,15,173,15,255,255,85,116,193,16,177,15,255,255,85,116,193,17,96,15,255,255,85,116,193,8,98,15,255,255,85,116,193,9,99,15,255,255,85,116,193,10,102,15,255,255,85,116,193,11,114,15,255,255,85,116,193,12,82,15,18,0,82,15,11,192,197,194,83,15,255,255,85,116,193,5,86,15,255,255,85,116,193,6,87,15,12,192,197,2,93,15,255,255,85,116,193,7,66,15,255,255,85,116,193,2,67,15,11,192,197,130,68,15,255,255,85,116,193,3,81,15,255,255,85,116,193,4,64,15,255,255,7,116,193,3,66,15,65,0,68,15,14,0,87,15,33,0,114,15,16,0,114,15,255,255,21,116,193,10,116,15,255,255,21,116,193,11,122,15,255,255,21,116,193,12,124,15,255,255,21,116,193,13,87,15,9,192,197,66,96,15,255,255,21,116,193,7,98,15,255,255,21,116,193,8,99,15,255,255,21,116,193,9,81,15,15,0,81,15,255,255,21,116,193,4,82,15,9,192,197,2,83,15,255,255,21,116,193,5,86,15,255,255,21,116,193,6,66,15,255,255,21,116,193,2,67,15,8,192,197,194,68,15,255,255,21,116,193,3,20,0,98,15,47,0,118,15,25,0,173,15,12,0,173,15,255,255,17,116,193,16,177,15,255,255,17,116,193,17,178,15,255,255,17,116,193,18,118,15,8,192,197,130,122,15,255,255,17,116,193,14,124,15,255,255,17,116,193,15,98,15,255,255,17,116,193,9,99,15,255,255,17,116,193,10,102,15,255,255,17,116,193,11,114,15,255,255,17,116,193,12,116,15,255,255,17,116,193,13,83,15,19,0,83,15,255,255,17,116,193,5,86,15,255,255,17,116,193,6,87,15,8,192,197,66,93,15,255,255,17,116,193,7,96,15,255,255,17,116,193,8,66,15,255,255,17,116,193,2,67,15,7,192,197,194,68,15,255,255,17,116,193,3,81,15,255,255,17,116,193,4,82,15,8,192,197,2,72,116,5,5,51,0,116,15,102,15,159,15,114,15,12,192,197,195,76,116,5,5,48,0,99,15,1,0,146,15,13,192,197,34,147,15,13,192,197,99,80,116,5,5,14,0,95,15,7,1,102,15,167,0,102,15,15,0,105,15,19,192,197,66,106,15,148,0,114,15,48,0,99,15,1,0,166,15,19,192,197,131,167,15,19,192,197,228,32,0,122,15,70,0,159,15,36,0,169,15,19,0,169,15,255,255,89,116,193,7,173,15,255,255,139,116,193,29,178,15,255,255,139,116,193,30,179,15,255,255,139,116,193,31,185,15,19,192,197,2,159,15,255,255,57,116,193,12,161,15,255,255,65,116,193,68,162,15,18,192,197,194,163,15,255,255,69,116,193,37,146,15,15,0,146,15,255,255,17,116,193,71,147,15,18,192,197,130,148,15,255,255,21,116,193,30,153,15,255,255,37,116,193,7,122,15,255,255,139,116,193,27,124,15,255,255,139,116,193,28,126,15,1,192,198,65,144,15,255,255,7,116,193,9,96,15,32,0,114,15,14,0,114,15,255,255,139,116,193,25,116,15,255,255,139,116,193,26,118,15,18,192,197,2,120,15,18,192,197,66,96,15,255,255,139,116,193,21,98,15,255,255,139,116,193,22,99,15,255,255,139,116,193,23,102,15,255,255,139,116,193,24,82,15,14,0,82,15,17,192,197,130,86,15,255,255,139,116,193,19,87,15,17,192,197,194,88,15,255,255,139,116,193,20,66,15,255,255,139,116,193,16,67,15,17,192,197,66,68,15,255,255,139,116,193,17,81,15,255,255,139,116,193,18,2,0,120,15,15,192,197,194,153,15,255,255,37,116,193,6,179,15,255,255,121,116,193,3,95,15,255,255,109,116,193,3,98,15,6,0,99,15,70,0,100,15,255,255,131,116,193,4,15,0,161,15,31,0,171,15,14,0,171,15,255,255,97,116,193,5,172,15,16,192,197,130,179,15,255,255,121,116,193,3,185,15,16,192,197,194,161,15,255,255,65,116,193,66,162,15,16,192,197,66,163,15,255,255,69,116,193,36,169,15,255,255,89,116,193,6,148,15,16,0,148,15,255,255,21,116,193,29,151,15,255,255,33,116,193,6,153,15,255,255,37,116,193,6,159,15,255,255,57,116,193,10,120,15,15,192,197,194,144,15,255,255,7,116,193,8,146,15,255,255,17,116,193,70,147,15,16,192,197,2,3,0,149,15,255,255,25,116,193,5,159,15,255,255,57,116,193,11,161,15,255,255,65,116,193,67,162,15,17,192,197,2,79,15,89,0,79,15,255,255,57,116,193,6,81,15,8,0,89,15,255,255,89,116,193,3,94,15,255,255,105,116,193,3,17,0,98,15,37,0,116,15,19,0,116,15,255,255,65,116,193,28,122,15,255,255,65,116,193,29,124,15,255,255,65,116,193,30,126,15,1,192,198,33,173,15,255,255,65,116,193,31,98,15,255,255,65,116,193,24,99,15,255,255,65,116,193,25,102,15,255,255,65,116,193,26,114,15,255,255,65,116,193,27,82,15,18,0,82,15,15,192,197,66,86,15,255,255,65,116,193,21,87,15,15,192,197,130,88,15,255,255,65,116,193,22,96,15,255,255,65,116,193,23,66,15,255,255,65,116,193,18,67,15,15,192,197,2,68,15,255,255,65,116,193,19,81,15,255,255,65,116,193,20,64,15,255,255,7,116,193,4,66,15,4,0,69,15,255,255,25,116,193,3,22,0,99,15,51,0,124,15,25,0,177,15,12,0,177,15,255,255,17,116,193,33,178,15,255,255,17,116,193,34,179,15,255,255,17,116,193,35,124,15,255,255,17,116,193,31,126,15,1,192,198,1,173,15,255,255,17,116,193,32,118,15,10,0,118,15,14,192,197,130,120,15,14,192,197,194,122,15,255,255,17,116,193,30,99,15,255,255,17,116,193,27,114,15,255,255,17,116,193,28,116,15,255,255,17,116,193,29,86,15,25,0,93,15,12,0,93,15,255,255,17,116,193,24,96,15,255,255,17,116,193,25,98,15,255,255,17,116,193,26,86,15,255,255,17,116,193,22,87,15,14,192,197,66,88,15,255,255,17,116,193,23,66,15,255,255,17,116,193,19,67,15,13,192,197,194,68,15,255,255,17,116,193,20,81,15,255,255,17,116,193,21,82,15,14,192,197,2,84,116,5,5,12,0,80,15,179,0,90,15,19,0,90,15,255,255,93,116,193,2,91,15,255,255,97,116,193,2,92,15,24,192,197,130,98,15,1,0,146,15,24,192,197,194,147,15,25,192,197,3,80,15,255,255,61,116,193,3,81,15,80,0,83,15,18,0,96,15,41,0,116,15,19,0,116,15,255,255,69,116,193,30,122,15,255,255,69,116,193,31,124,15,255,255,69,116,193,32,126,15,1,192,198,97,173,15,255,255,69,116,193,33,96,15,255,255,69,116,193,25,98,15,255,255,69,116,193,26,99,15,255,255,69,116,193,27,102,15,255,255,69,116,193,28,114,15,255,255,69,116,193,29,82,15,18,0,82,15,24,192,197,2,83,15,255,255,69,116,193,22,86,15,255,255,69,116,193,23,87,15,24,192,197,66,88,15,255,255,69,116,193,24,66,15,255,255,69,116,193,19,67,15,23,192,197,194,68,15,255,255,69,116,193,20,81,15,255,255,69,116,193,21,16,0,96,15,38,0,114,15,20,0,114,15,255,255,65,116,193,41,116,15,255,255,65,116,193,42,122,15,255,255,65,116,193,43,124,15,255,255,65,116,193,44,173,15,255,255,65,116,193,45,96,15,255,255,65,116,193,37,98,15,255,255,65,116,193,38,99,15,255,255,65,116,193,39,102,15,255,255,65,116,193,40,82,15,14,0,82,15,23,192,197,66,83,15,255,255,65,116,193,35,86,15,255,255,65,116,193,36,87,15,23,192,197,130,66,15,255,255,65,116,193,32,67,15,23,192,197,2,68,15,255,255,65,116,193,33,81,15,255,255,65,116,193,34,70,15,18,0,70,15,255,255,29,116,193,2,71,15,255,255,33,116,193,2,73,15,193,127,37,116,193,3,171,15,22,192,197,98,172,15,22,192,197,163,65,15,255,255,13,116,193,2,66,15,65,0,68,15,14,0,87,15,33,0,114,15,16,0,114,15,255,255,21,116,193,22,116,15,255,255,21,116,193,23,122,15,255,255,21,116,193,24,124,15,255,255,21,116,193,25,87,15,22,192,197,34,96,15,255,255,21,116,193,19,98,15,255,255,21,116,193,20,99,15,255,255,21,116,193,21,81,15,15,0,81,15,255,255,21,116,193,16,82,15,21,192,197,226,83,15,255,255,21,116,193,17,86,15,255,255,21,116,193,18,66,15,255,255,21,116,193,14,67,15,21,192,197,162,68,15,255,255,21,116,193,15,17,0,99,15,37,0,122,15,20,0,122,15,255,255,17,116,193,45,124,15,255,255,17,116,193,46,173,15,255,255,17,116,193,47,177,15,255,255,17,116,193,48,178,15,255,255,17,116,193,49,99,15,255,255,17,116,193,42,114,15,255,255,17,116,193,43,116,15,255,255,17,116,193,44,118,15,21,192,197,98,82,15,18,0,82,15,20,192,197,226,86,15,255,255,17,116,193,39,87,15,21,192,197,34,96,15,255,255,17,116,193,40,98,15,255,255,17,116,193,41,66,15,255,255,17,116,193,36,67,15,20,192,197,162,68,15,255,255,17,116,193,37,81,15,255,255,17,116,193,38,100,116,5,5,49,0,98,15,159,15,25,192,197,162,112,116,5,5,10,0,81,15,202,0,90,15,11,0,90,15,255,255,93,116,193,3,91,15,255,255,97,116,193,3,92,15,28,192,197,226,81,15,93,0,85,15,255,255,77,116,5,5,86,15,20,0,98,15,46,0,118,15,24,0,126,15,11,0,126,15,1,192,198,193,177,15,255,255,81,116,193,31,178,15,255,255,81,116,193,32,118,15,28,192,197,162,122,15,255,255,81,116,193,29,124,15,255,255,81,116,193,30,98,15,255,255,81,116,193,24,99,15,255,255,81,116,193,25,102,15,255,255,81,116,193,26,114,15,255,255,81,116,193,27,116,15,255,255,81,116,193,28,83,15,19,0,83,15,255,255,81,116,193,20,86,15,255,255,81,116,193,21,87,15,28,192,197,98,88,15,255,255,81,116,193,22,96,15,255,255,81,116,193,23,66,15,255,255,81,116,193,17,67,15,27,192,197,226,68,15,255,255,81,116,193,18,81,15,255,255,81,116,193,19,82,15,28,192,197,34,21,0,98,15,46,0,118,15,24,0,126,15,11,0,126,15,1,192,198,161,173,15,255,255,65,116,193,61,178,15,255,255,65,116,193,62,118,15,27,192,197,162,122,15,255,255,65,116,193,59,124,15,255,255,65,116,193,60,98,15,255,255,65,116,193,54,99,15,255,255,65,116,193,55,102,15,255,255,65,116,193,56,114,15,255,255,65,116,193,57,116,15,255,255,65,116,193,58,83,15,25,0,88,15,12,0,88,15,255,255,65,116,193,51,93,15,255,255,65,116,193,52,96,15,255,255,65,116,193,53,83,15,255,255,65,116,193,49,86,15,255,255,65,116,193,50,87,15,27,192,197,98,66,15,255,255,65,116,193,46,67,15,26,192,197,226,68,15,255,255,65,116,193,47,81,15,255,255,65,116,193,48,82,15,27,192,197,34,65,15,255,255,13,116,193,3,66,15,12,0,70,15,255,255,29,116,193,3,71,15,255,255,33,116,193,3,80,15,255,255,61,116,193,4,21,0,99,15,46,0,122,15,25,0,173,15,12,0,173,15,255,255,17,116,193,64,177,15,255,255,17,116,193,65,178,15,255,255,17,116,193,66,122,15,255,255,17,116,193,62,124,15,255,255,17,116,193,63,126,15,1,192,198,129,99,15,255,255,17,116,193,58,102,15,255,255,17,116,193,59,114,15,255,255,17,116,193,60,116,15,255,255,17,116,193,61,118,15,26,192,197,162,83,15,25,0,88,15,12,0,88,15,255,255,17,116,193,55,96,15,255,255,17,116,193,56,98,15,255,255,17,116,193,57,83,15,255,255,17,116,193,53,86,15,255,255,17,116,193,54,87,15,26,192,197,98,66,15,255,255,17,116,193,50,67,15,25,192,197,226,68,15,255,255,17,116,193,51,81,15,255,255,17,116,193,52,82,15,26,192,197,34,120,116,5,5,16,0,162,15,34,0,168,15,18,0,168,15,255,255,85,116,193,18,169,15,255,255,89,116,193,4,171,15,255,255,97,116,193,4,172,15,29,192,197,226,185,15,30,192,197,34,162,15,29,192,197,98,163,15,255,255,69,116,193,34,166,15,255,255,81,116,193,33,167,15,29,192,197,162,151,15,16,0,151,15,255,255,33,116,193,4,153,15,255,255,37,116,193,4,159,15,255,255,57,116,193,7,161,15,255,255,65,116,193,63,144,15,255,255,7,116,193,5,146,15,255,255,17,116,193,67,147,15,29,192,197,34,148,15,255,255,21,116,193,26,126,116,5,5,13,0,161,15,27,0,166,15,14,0,166,15,255,255,81,116,193,34,167,15,30,192,197,226,183,15,255,255,143,116,5,5,185,15,31,192,197,34,161,15,255,255,65,116,193,64,162,15,30,192,197,162,164,15,255,255,73,116,193,16,148,15,16,0,148,15,255,255,21,116,193,27,149,15,255,255,25,116,193,4,151,15,255,255,33,116,193,5,159,15,255,255,57,116,193,8,144,15,255,255,7,116,193,6,146,15,255,255,17,116,193,68,147,15,30,192,197,98,130,116,5,5,49,0,102,15,159,15,31,192,197,98,138,116,5,5,15,0,162,15,31,0,167,15,14,0,167,15,32,192,197,194,168,15,255,255,85,116,193,19,169,15,255,255,89,116,193,5,185,15,33,192,197,2,162,15,32,192,197,130,163,15,255,255,69,116,193,35,164,15,255,255,73,116,193,17,166,15,255,255,81,116,193,35,148,15,16,0,148,15,255,255,21,116,193,28,153,15,255,255,37,116,193,5,159,15,255,255,57,116,193,9,161,15,255,255,65,116,193,65,98,15,11,0,144,15,255,255,7,116,193,7,146,15,255,255,17,116,193,69,147,15,32,192,197,66,1,0,146,15,31,192,197,162,147,15,31,192,197,227,146,116,5,5,2,0,98,15,7,0,102,15,15,0,106,15,48,0,177,15,33,192,197,226,2,0,146,15,33,192,197,66,147,15,33,192,197,131,177,15,33,192,197,226,48,0,168,15,34,192,197,34,120,116,6,5,48,0,153,15,255,255,37,116,193,4,147,116,193,2,2,0,114,15,255,255,147,116,193,4,116,15,255,255,147,116,193,8,128,15,255,255,147,116,193,6,147,116,193,9,48,0,122,15,255,255,147,116,193,10,147,116,193,11,48,0,124,15,255,255,147,116,193,12,252,244,194,5,2,0,144,15,255,255,6,116,5,70,145,15,255,255,12,116,5,70,185,15,34,192,197,162,253,244,194,5,1,0,164,15,255,255,72,116,5,70,165,15,255,255,76,116,5,70,255,244,194,5,48,0,153,15,255,255,36,116,5,70,147,116,193,41,4,0,113,15,14,0,115,15,36,192,197,98,117,15,36,192,197,162,128,15,255,255,180,116,5,5,129,15,255,255,182,116,5,5,66,73,197,34,114,15,36,192,197,98,116,15,36,192,197,162,128,15,255,255,182,116,5,5,147,116,193,42,4,0,113,15,14,0,115,15,37,192,197,34,117,15,37,192,197,98,128,15,255,255,184,116,5,5,129,15,255,255,186,116,5,5,66,73,197,226,114,15,37,192,197,34,116,15,37,192,197,98,128,15,255,255,186,116,5,5,34,0,65,15,72,15,73,15,74,15,79,15,101,15,102,15,103,15,105,15,107,15,118,15,119,15,120,15,121,15,126,15,127,15,144,15,150,15,151,15,152,15,153,15,154,15,158,15,160,15,161,15,170,15,171,15,174,15,177,15,182,15,183,15,184,15,185,15,186,15,3,0,69,0,52,0,61,0,215,3,0,16,4,0,0,96,1,0,0,96,1,0,43,0,163,16,0,32,1,0,32,0,168,16,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,2,8,0,32,7,0,0,0,21,0,0,0,4,8,0,0,4,8,0,0,3,0,0,0,0,0,0,0,53,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,58,220,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,60,0,99,0,39,0,39,0,104,0,61,0,99,0,188,2,104,0,61,0,99,0,25,32,104,0,60,0,60,0,60,0,67,0,39,0,39,0,104,0,61,0,67,0,188,2,104,0,61,0,67,0,25,32,104,0,60,0,60,0,60,0,67,0,39,0,39,0,72,0,61,0,67,0,188,2,72,0,61,0,67,0,25,32,72,0,0,0,170,170,170,170,170,170,170,170,12,31,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,23,0,0,100,23,0,0,100,23,0,0,100,23,0,0,24,25,0,0,24,25,0,0,230,26,0,0,12,27,0,0,244,30,0,0,50,105,114,84,1,0,64,8,105,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,12,0,202,129,12,0,202,162,12,0,202,195,12,0,202,228,12,0,202,5,13,0,202,38,13,0,202,71,13,0,202,104,13,0,202,137,13,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,192,17,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,11,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,11,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,12,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,71,5,3,47,5,142,0,0,70,5,3,47,5,142,0,0,71,5,3,47,5,144,0,0,70,5,3,47,5,144,0,0,71,5,3,47,5,156,0,0,70,5,3,47,5,156,0,0,71,5,3,47,5,196,0,0,70,5,3,47,5,196,0,0,71,5,3,47,5,150,0,0,70,5,3,47,5,150,0,0,71,5,3,47,5,160,0,0,70,5,3,47,5,160,0,0,71,5,3,47,5,206,0,0,70,5,3,47,5,206,0,0,70,5,3,47,5,210,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,5,196,0,0,70,5,2,47,5,196,0,0,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,5,5,3,47,5,142,0,0,5,5,3,47,5,144,0,0,5,5,3,47,5,156,0,0,5,5,3,47,5,196,0,0,5,5,3,47,5,150,0,0,5,5,3,47,5,160,0,0,5,5,3,47,5,206,0,0,5,5,3,47,5,210,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,5,196,0,0,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,19,0,36,30,50,0,41,30,33,0,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,25,32,16,0,36,30,94,0,40,30,80,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,40,30,6,192,197,98,30,2,14,0,30,2,4,192,197,98,31,2,4,192,197,162,188,2,20,0,34,30,4,192,197,226,35,30,5,192,197,34,39,0,12,0,72,0,2,239,135,5,104,0,2,239,70,5,36,1,3,192,197,226,37,1,4,192,197,34,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,3,239,71,5,104,0,3,239,70,5,36,1,197,162,37,1,0,192,197,98,0,46,5,5,11,0,37,30,36,0,43,30,25,0,43,30,11,192,197,34,150,30,11,192,197,98,25,32,8,0,37,30,60,0,37,30,8,192,197,98,39,30,8,192,197,162,41,30,8,192,197,226,43,30,9,192,197,34,150,30,9,192,197,98,37,30,10,192,197,98,39,30,10,192,197,162,41,30,10,192,197,226,31,2,8,0,31,2,9,192,197,226,188,2,11,0,35,30,10,192,197,34,39,0,6,0,104,0,2,239,5,5,37,1,9,192,197,162,8,0,37,30,15,0,37,30,8,192,197,98,39,30,8,192,197,162,41,30,8,192,197,226,43,30,9,192,197,34,150,30,9,192,197,98,104,0,3,239,5,5,37,1,7,192,197,162,31,2,7,192,197,226,35,30,8,192,197,34,18,0,39,0,40,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,188,2,189,2,34,30,44,30,150,30,151,30,25,32,26,32,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,185,84,185,88,186,92,186,100,185,104,185,108,185,112,186,116,185,124,185,128,185,132,185,140,186,144,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,168,84,168,88,168,92,168,100,168,104,168,108,168,112,168,116,168,124,168,128,168,132,168,140,168,144,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,250,146,232,146,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,144,169,144,200,56,169,76,187,92,187,100,169,92,169,100,169,184,169,116,217,124,187,76,200,124,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,39,2,72,4,186,68,104,4,177,68,36,5,250,69,37,5,241,69,153,3,255,5,168,64,39,2,104,4,168,68,37,5,232,69,153,3,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,251,7,0,32,1,0,32,0,0,8,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,132,19,0,32,7,0,0,0,23,0,0,0,134,19,0,0,134,19,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,93,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,0,0,252,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,113,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,180,35,0,0,180,35,0,0,180,35,0,0,180,35,0,0,172,38,0,0,172,38,0,0,198,40,0,0,228,40,0,0,228,40,0,0,50,105,114,84,1,0,64,8,46,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,152,0,160,0,48,0,56,0,159,0,167,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,192,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,48,0,48,0,216,0,48,0,222,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,240,0,48,0,48,0,248,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,182,0,48,0,48,0,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,23,1,48,0,48,0,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,232,1,32,2,96,2,192,0,124,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,22,0,202,161,22,0,202,194,22,0,202,227,22,0,202,4,23,0,202,37,23,0,202,70,23,0,202,103,23,0,202,136,23,0,202,169,23,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,201,68,2,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,224,4,0,156,5,0,66,201,64,7,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,166,10,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,11,0,201,4,13,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,128,14,0,5,5,0,66,201,32,16,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,18,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,13,0,201,134,19,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,13,0,201,6,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,22,0,201,70,23,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,198,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,25,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,5,71,238,102,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,197,98,5,0,192,0,0,0,192,0,0,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,197,34,6,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,197,226,6,0,197,35,7,0,197,130,7,0,192,0,0,0,192,0,0,0,197,194,7,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,29,0,201,230,29,0,192,0,0,0,192,0,0,0,197,226,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,4,0,5,5,10,121,5,5,12,121,197,226,4,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,197,162,5,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,5,0,5,5,107,121,197,34,6,0,5,5,111,121,197,98,6,0,5,5,115,121,197,162,6,0,5,5,119,121,197,226,6,0,197,35,7,0,197,130,7,0,5,5,127,121,5,5,129,121,197,194,7,0,197,3,8,0,197,98,8,0,5,5,137,121,5,5,139,121,197,162,8,0,5,5,143,121,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,78,196,196,48,0,12,3,11,192,197,98,5,78,196,196,48,0,12,3,11,192,197,162,156,92,196,196,48,0,12,3,12,192,197,98,5,92,196,196,48,0,12,3,12,192,197,162,156,92,196,210,48,0,12,3,12,192,197,226,5,92,196,210,48,0,12,3,13,192,197,34,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,3,0,67,0,50,0,59,0,43,0,0,16,16,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,28,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,188,28,0,0,188,28,0,0,188,28,0,0,188,28,0,0,208,29,0,0,208,29,0,0,164,31,0,0,194,31,0,0,4,36,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,153,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,7,0,202,129,7,0,202,162,7,0,202,195,7,0,202,228,7,0,202,5,8,0,202,38,8,0,202,71,8,0,202,104,8,0,202,137,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,132,1,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,4,0,156,5,0,66,201,128,6,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,10,0,201,68,12,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,13,0,5,5,0,66,201,96,15,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,6,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,230,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,6,0,201,198,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,7,0,201,70,20,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,21,0,201,134,22,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,23,0,201,6,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,24,0,201,134,25,0,192,0,0,0,192,0,0,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,26,0,201,6,27,0,201,198,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,156,78,196,196,48,0,12,3,4,192,197,162,5,78,196,196,48,0,12,3,4,192,197,226,156,92,196,196,48,0,12,3,5,192,197,162,5,92,196,196,48,0,12,3,5,192,197,226,156,92,196,210,48,0,12,3,6,192,197,34,5,92,196,210,48,0,12,3,6,192,197,98,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,186,88,185,92,185,96,185,100,186,104,186,112,185,116,36,4,185,128,46,4,185,144,185,148,185,152,185,160,56,4,185,172,185,180,185,184,185,188,185,192,185,196,58,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,60,4,62,4,168,88,168,92,168,96,168,100,168,104,168,112,168,116,67,4,168,128,73,4,168,144,168,148,168,152,168,160,79,4,168,172,168,180,168,184,168,188,168,192,168,196,81,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,83,4,186,89,154,89,250,89,90,90,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,181,153,181,249,181,89,182,153,197,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,85,4,168,89,136,89,232,89,72,90,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,181,136,181,232,181,72,182,136,197,168,208,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,84,168,84,58,91,40,91,218,89,200,89,186,90,168,90,26,91,8,91,26,90,8,90,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,165,136,165,250,165,232,165,87,4,89,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,153,201,136,201,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,164,169,164,200,56,169,88,187,104,187,112,169,104,169,112,169,212,169,132,217,144,187,88,200,144,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,76,90,2,122,2,125,5,186,80,126,5,177,80,255,5,185,120,74,4,186,124,106,4,177,124,52,5,250,125,53,5,241,125,255,5,186,132,74,4,186,136,106,4,177,136,52,5,250,137,53,5,241,137,255,5,186,164,255,5,185,200,255,5,168,64,255,5,168,76,122,2,126,5,168,80,255,5,168,120,106,4,168,124,53,5,232,125,255,5,168,132,106,4,168,136,53,5,232,137,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,3,0,67,0,50,0,59,0,115,10,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,107,10,0,32,123,19,0,32,1,0,32,0,128,19,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,152,6,0,32,7,0,0,0,21,0,0,0,154,6,0,0,154,6,0,0,3,0,0,0,0,0,0,0,29,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,114,0,93,0,0,0,170,170,170,170,170,170,170,170,196,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,88,25,0,0,88,25,0,0,88,25,0,0,88,25,0,0,172,25,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,174,5,70,97,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,97,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,174,5,70,97,5,140,0,0,5,5,70,97,5,140,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,145,6,0,32,1,0,32,0,150,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,43,9,0,32,7,0,0,0,21,0,0,0,45,9,0,0,45,9,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,170,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,76,0,60,0,64,1,61,0,108,0,183,0,60,0,60,0,60,0,63,1,61,0,76,0,183,0,0,0,170,170,224,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,36,33,0,0,36,33,0,0,36,33,0,0,36,33,0,0,76,35,0,0,76,35,0,0,190,35,0,0,200,35,0,0,200,35,0,0,50,105,114,84,1,0,64,8,5,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,100,0,108,0,114,0,122,0,130,0,138,0,48,0,56,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,0,170,0,48,0,48,0,48,0,178,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,48,0,48,0,194,0,48,0,200,0,208,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,211,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,219,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,222,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,160,0,48,0,48,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,244,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,144,1,200,1,8,2,192,0,36,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,192,0,0,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,32,2,0,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,65,5,5,2,65,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,3,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,5,0,5,71,238,102,201,70,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,64,156,5,1,0,183,0,255,255,2,65,134,5,135,3,255,255,2,65,134,5,0,64,5,5,1,0,183,0,255,255,2,65,5,5,135,3,255,255,2,65,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,4,0,183,0,184,0,135,3,136,3,3,0,67,0,50,0,59,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,36,9,0,32,1,0,32,0,41,9,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,3,8,0,32,7,0,0,0,21,0,0,0,5,8,0,0,5,8,0,0,3,0,0,0,0,0,0,0,34,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,78,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,0,0,170,170,170,170,94,31,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,0,26,0,0,0,26,0,0,32,27,0,0,58,27,0,0,70,31,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,8,0,202,65,8,0,202,98,8,0,202,131,8,0,202,164,8,0,202,197,8,0,202,230,8,0,202,7,9,0,202,40,9,0,202,73,9,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,4,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,196,7,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,7,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,12,0,201,198,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,13,0,201,70,14,0,201,6,15,0,201,198,15,0,201,134,16,0,201,70,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,3,69,5,140,0,0,70,5,3,69,5,140,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,160,0,0,70,5,3,69,5,160,0,0,135,5,3,69,5,144,0,0,70,5,3,69,5,144,0,0,135,5,3,69,5,136,0,0,70,5,3,69,5,136,0,0,135,5,3,69,5,164,0,0,70,5,3,69,5,164,0,0,5,5,3,69,5,142,0,0,5,5,3,69,5,140,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,160,0,0,5,5,3,69,5,144,0,0,5,5,3,69,5,136,0,0,5,5,3,69,5,164,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,16,0,34,1,30,0,244,1,16,0,244,1,2,192,197,162,245,1,2,192,197,226,3,3,255,255,2,69,134,5,32,30,3,192,197,34,33,30,3,192,197,98,34,1,1,192,197,162,35,1,1,192,197,226,230,1,2,192,197,34,231,1,2,192,197,98,30,1,12,0,30,1,0,192,197,162,31,1,0,192,197,226,32,1,1,192,197,34,33,1,1,192,197,98,71,0,255,255,3,69,135,5,103,0,255,255,3,69,70,5,28,1,197,162,29,1,0,192,197,98,0,68,5,5,8,0,35,1,16,0,35,1,4,192,197,98,231,1,4,192,197,162,245,1,4,192,197,226,3,3,255,255,2,69,5,5,33,30,5,192,197,34,103,0,255,255,3,69,5,5,29,1,3,192,197,162,31,1,3,192,197,226,33,1,4,192,197,34,156,68,196,160,48,0,3,3,5,192,197,98,5,68,196,160,48,0,3,3,5,192,197,162,156,68,196,196,48,0,3,3,5,192,197,226,5,68,196,196,48,0,3,3,6,192,197,34,156,68,196,210,48,0,3,3,6,192,197,98,5,68,196,210,48,0,3,3,6,192,197,162,156,68,196,204,48,0,3,3,6,192,197,226,5,68,196,204,48,0,3,3,7,192,197,34,12,0,71,0,72,0,103,0,104,0,28,1,36,1,230,1,232,1,244,1,246,1,32,30,34,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,128,185,132,185,136,185,144,186,148,185,152,185,160,185,164,185,168,185,172,185,176,185,180,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,48,4,168,128,168,132,168,136,168,144,168,148,168,152,168,160,168,164,168,168,168,172,168,176,168,180,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,129,153,129,249,129,153,130,89,130,136,14,217,130,185,161,153,161,249,161,89,162,153,177,185,184,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,129,136,129,232,129,136,130,72,130,128,14,200,130,168,161,136,161,232,161,72,162,136,177,168,184,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,140,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,60,4,62,4,26,114,8,114,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,145,136,145,249,146,232,146,25,146,8,146,154,149,136,149,250,149,232,149,250,150,232,150,26,150,8,150,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,181,136,181,185,182,168,182,25,182,8,182,232,148,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,148,169,148,200,56,169,72,187,88,187,96,169,88,169,96,169,188,169,112,217,128,187,72,200,128,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,71,4,186,120,103,4,177,120,28,5,250,121,29,5,241,121,30,5,218,121,31,5,209,121,32,5,186,122,33,5,177,122,34,5,250,122,35,5,241,122,255,5,168,112,103,4,168,120,29,5,232,121,31,5,200,121,33,5,168,122,35,5,232,122,255,5,250,114,255,5,232,114,255,1,170,170,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,252,7,0,32,1,0,32,0,1,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,0,0,32,7,0,0,0,21,0,0,0,122,0,0,0,122,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,104,0,101,0,114,0,93,0,0,0,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,6,0,0,0,0,0,58,118,177,255,232,118,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,113,0,0,32,1,0,32,0,118,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,13,9,0,32,7,0,0,0,21,0,0,0,15,9,0,0,15,9,0,0,3,0,0,0,0,0,0,0,54,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,60,220,38,0,67,0,60,0,99,0,12,3,60,0,60,0,60,0,67,0,12,3,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,82,0,60,0,114,0,12,3,60,0,60,0,60,0,82,0,12,3,38,0,83,0,60,0,115,0,12,3,60,0,60,0,60,0,83,0,12,3,38,0,90,0,60,0,122,0,12,3,60,0,60,0,60,0,90,0,12,3,0,0,170,170,170,170,56,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,244,26,0,0,244,26,0,0,244,26,0,0,244,26,0,0,200,28,0,0,200,28,0,0,238,30,0,0,8,31,0,0,32,35,0,0,50,105,114,84,1,0,64,8,162,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,91,0,99,0,48,0,56,0,48,0,56,0,107,0,115,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,141,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,131,0,48,0,48,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,108,1,192,0,192,0,172,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,13,0,202,129,13,0,202,162,13,0,202,195,13,0,202,228,13,0,202,5,14,0,202,38,14,0,202,71,14,0,202,104,14,0,202,137,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,4,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,201,198,7,0,201,166,8,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,134,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,100,10,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,201,70,18,0,201,38,19,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,6,20,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,12,0,201,230,20,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,12,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,13,0,201,166,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,22,0,201,38,23,0,134,5,2,77,5,5,2,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,23,0,201,166,24,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,26,0,201,166,27,0,192,0,0,0,192,0,0,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,201,230,29,0,201,166,30,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,31,0,201,38,32,0,201,230,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,17,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,15,0,30,2,0,192,197,162,31,2,0,192,197,226,12,3,2,239,134,5,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,0,76,156,5,48,0,12,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,17,0,36,30,29,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,30,2,15,0,30,2,4,192,197,98,31,2,4,192,197,162,12,3,2,239,5,5,34,30,4,192,197,226,35,30,5,192,197,34,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,0,76,5,5,48,0,12,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,7,192,197,162,5,46,196,160,48,0,12,3,7,192,197,226,156,76,196,160,48,0,12,3,8,192,197,34,5,76,196,160,48,0,12,3,8,192,197,98,156,78,196,160,48,0,12,3,8,192,197,162,5,78,196,160,48,0,12,3,8,192,197,226,156,78,196,202,48,0,12,3,9,192,197,34,5,78,196,202,48,0,12,3,9,192,197,98,156,76,196,196,48,0,12,3,9,192,197,162,5,76,196,196,48,0,12,3,9,192,197,226,156,76,196,210,48,0,12,3,10,192,197,34,5,76,196,210,48,0,12,3,10,192,197,98,156,78,196,196,48,0,12,3,10,192,197,162,5,78,196,196,48,0,12,3,10,192,197,226,156,92,196,196,48,0,12,3,11,192,197,162,5,92,196,196,48,0,12,3,11,192,197,226,156,92,196,210,48,0,12,3,12,192,197,34,5,92,196,210,48,0,12,3,12,192,197,98,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,185,84,185,88,186,96,186,104,185,108,185,112,185,116,186,120,185,128,185,132,185,136,36,4,38,4,185,160,185,168,185,172,185,176,185,180,185,184,40,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,42,4,168,72,168,76,168,80,168,84,168,88,168,96,168,104,168,108,168,112,168,116,168,120,168,128,168,132,168,136,52,4,54,4,168,160,168,168,168,172,168,176,168,180,168,184,56,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,58,4,186,77,154,77,250,77,90,78,186,97,154,97,250,97,90,98,217,72,154,122,185,129,153,129,249,129,153,130,89,130,136,14,217,130,185,169,153,169,249,169,89,170,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,60,4,168,77,136,77,232,77,72,78,168,97,136,97,232,97,72,98,200,72,136,122,168,129,136,129,232,129,136,130,72,130,128,14,200,130,168,169,136,169,232,169,72,170,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,98,136,98,58,99,40,99,218,97,200,97,26,99,8,99,186,98,168,100,6,8,8,8,250,105,232,105,249,110,232,110,168,140,153,113,136,113,249,114,232,114,25,114,8,114,121,115,104,115,89,115,72,115,154,121,136,121,250,122,232,122,26,122,8,122,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,145,136,145,62,4,64,4,185,148,168,148,154,153,136,153,250,153,232,153,66,4,68,4,185,156,168,156,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,25,171,8,171,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,185,192,168,192,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,96,187,104,169,96,169,104,169,200,169,120,217,128,187,76,200,128,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,187,92,104,4,178,92,36,5,251,93,37,5,242,93,255,5,185,144,255,5,186,152,255,5,185,188,255,5,168,64,72,4,177,92,104,4,168,92,36,5,241,93,37,5,232,93,255,5,168,144,255,5,168,152,255,5,168,188,255,5,249,66,255,5,232,66,255,5,249,146,255,5,232,146,255,5,250,154,255,5,232,154,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,6,9,0,32,1,0,32,0,11,9,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,26,10,0,32,7,0,0,0,21,0,0,0,28,10,0,0,28,10,0,0,3,0,0,0,0,0,0,0,84,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,120,220,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,68,0,60,0,100,0,100,0,60,0,60,0,60,0,68,0,100,0,60,0,60,0,60,0,68,0,68,0,38,0,70,0,60,0,102,0,102,0,60,0,60,0,60,0,70,0,102,0,60,0,60,0,60,0,70,0,70,0,38,0,71,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,38,0,76,0,60,0,108,0,108,0,60,0,60,0,60,0,76,0,108,0,60,0,60,0,60,0,76,0,76,0,38,0,80,0,60,0,112,0,104,0,60,0,60,0,60,0,80,0,104,0,60,0,60,0,60,0,80,0,72,0,38,0,82,0,60,0,114,0,104,0,60,0,60,0,60,0,82,0,104,0,60,0,60,0,60,0,82,0,72,0,38,0,84,0,60,0,116,0,104,0,60,0,60,0,60,0,84,0,104,0,60,0,60,0,60,0,84,0,72,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,234,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,23,0,0,100,23,0,0,100,23,0,0,100,23,0,0,140,28,0,0,140,28,0,0,164,33,0,0,226,33,0,0,210,38,0,0,50,105,114,84,1,0,64,8,105,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,40,0,202,33,40,0,202,66,40,0,202,99,40,0,202,132,40,0,202,165,40,0,202,198,40,0,202,231,40,0,202,8,41,0,202,41,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,201,96,7,0,156,5,0,50,201,192,13,0,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,160,15,0,156,5,0,66,201,0,23,0,156,5,0,70,201,32,30,0,160,5,0,74,201,224,37,0,156,5,0,78,201,160,45,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,96,53,0,201,96,57,0,5,5,0,50,201,160,60,0,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,61,0,5,5,0,66,201,128,65,0,5,5,0,70,201,32,69,0,5,5,0,74,201,64,73,0,5,5,0,78,201,96,77,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,66,39,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,130,39,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,194,39,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,5,196,0,0,70,5,2,47,5,196,0,0,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,135,5,2,49,5,144,0,0,70,5,2,49,5,144,0,0,135,5,2,49,5,156,0,0,70,5,2,49,5,156,0,0,135,5,2,49,5,196,0,0,70,5,2,49,5,196,0,0,135,5,2,49,5,210,0,0,70,5,2,49,5,210,0,0,135,5,2,49,5,160,0,0,70,5,2,49,5,160,0,0,135,5,2,49,5,204,0,0,70,5,2,49,5,204,0,0,135,5,2,53,5,156,0,0,70,5,2,53,5,156,0,0,135,5,2,65,5,136,0,0,70,5,2,65,5,136,0,0,135,5,2,65,5,160,0,0,70,5,2,65,5,160,0,0,135,5,2,65,5,144,0,0,70,5,2,65,5,144,0,0,135,5,2,65,5,196,0,0,70,5,2,65,5,196,0,0,135,5,2,65,5,196,0,0,5,164,0,0,70,5,2,65,5,196,0,0,5,164,0,0,135,5,2,65,5,210,0,0,70,5,2,65,5,210,0,0,135,5,2,65,5,204,0,0,70,5,2,65,5,204,0,0,135,5,2,55,5,142,0,0,70,5,2,55,5,142,0,0,135,5,2,55,5,140,0,0,70,5,2,55,5,140,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,160,0,0,70,5,2,55,5,160,0,0,135,5,2,55,5,144,0,0,70,5,2,55,5,144,0,0,135,5,2,55,5,136,0,0,70,5,2,55,5,136,0,0,135,5,2,55,5,164,0,0,70,5,2,55,5,164,0,0,135,5,2,73,5,142,0,0,70,5,2,73,5,142,0,0,135,5,2,73,5,144,0,0,70,5,2,73,5,144,0,0,135,5,2,73,5,156,0,0,70,5,2,73,5,156,0,0,135,5,2,73,5,196,0,0,70,5,2,73,5,196,0,0,135,5,2,73,5,150,0,0,70,5,2,73,5,150,0,0,135,5,2,73,5,160,0,0,70,5,2,73,5,160,0,0,135,5,2,73,5,206,0,0,70,5,2,73,5,206,0,0,70,5,2,73,5,210,0,0,135,5,2,77,5,142,0,0,70,5,2,77,5,142,0,0,135,5,2,77,5,144,0,0,70,5,2,77,5,144,0,0,135,5,2,77,5,156,0,0,70,5,2,77,5,156,0,0,135,5,2,77,5,196,0,0,70,5,2,77,5,196,0,0,135,5,2,77,5,150,0,0,70,5,2,77,5,150,0,0,135,5,2,77,5,160,0,0,70,5,2,77,5,160,0,0,135,5,2,77,5,206,0,0,70,5,2,77,5,206,0,0,70,5,2,77,5,210,0,0,135,5,2,81,5,142,0,0,70,5,2,81,5,142,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,5,196,0,0,70,5,2,81,5,196,0,0,135,5,2,81,5,150,0,0,70,5,2,81,5,150,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,206,0,0,70,5,2,81,5,206,0,0,70,5,2,81,5,210,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,5,196,0,0,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,5,5,2,49,5,144,0,0,5,5,2,49,5,156,0,0,5,5,2,49,5,196,0,0,5,5,2,49,5,210,0,0,5,5,2,49,5,160,0,0,5,5,2,49,5,204,0,0,5,5,2,53,5,156,0,0,5,5,2,65,5,136,0,0,5,5,2,65,5,160,0,0,5,5,2,65,5,144,0,0,5,5,2,65,5,196,0,0,5,5,2,65,5,196,0,0,5,164,0,0,5,5,2,65,5,210,0,0,5,5,2,65,5,204,0,0,5,5,2,55,5,142,0,0,5,5,2,55,5,140,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,160,0,0,5,5,2,55,5,144,0,0,5,5,2,55,5,136,0,0,5,5,2,55,5,164,0,0,5,5,2,73,5,142,0,0,5,5,2,73,5,144,0,0,5,5,2,73,5,156,0,0,5,5,2,73,5,196,0,0,5,5,2,73,5,150,0,0,5,5,2,73,5,160,0,0,5,5,2,73,5,206,0,0,5,5,2,73,5,210,0,0,5,5,2,77,5,142,0,0,5,5,2,77,5,144,0,0,5,5,2,77,5,156,0,0,5,5,2,77,5,196,0,0,5,5,2,77,5,150,0,0,5,5,2,77,5,160,0,0,5,5,2,77,5,206,0,0,5,5,2,77,5,210,0,0,5,5,2,81,5,142,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,156,0,0,5,5,2,81,5,196,0,0,5,5,2,81,5,150,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,206,0,0,5,5,2,81,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,239,135,5,104,0,2,239,70,5,36,1,197,162,37,1,0,192,197,98,0,48,156,5,13,0,13,30,23,0,16,30,12,0,16,30,5,192,197,226,17,30,6,192,197,34,18,30,6,192,197,98,19,30,6,192,197,162,13,30,5,192,197,34,14,30,5,192,197,98,15,30,5,192,197,162,15,1,12,0,15,1,4,192,197,34,10,30,4,192,197,98,11,30,4,192,197,162,12,30,4,192,197,226,68,0,2,241,135,5,100,0,2,241,70,5,14,1,3,192,197,226,0,52,156,5,3,0,70,0,2,245,135,5,102,0,2,245,70,5,30,30,6,192,197,226,31,30,7,192,197,34,0,64,156,5,15,0,54,30,26,0,58,30,12,0,58,30,10,192,197,34,59,30,10,192,197,98,60,30,10,192,197,162,61,30,10,192,197,226,54,30,8,192,197,226,55,30,9,192,197,34,56,30,9,192,197,99,57,30,9,192,197,195,59,1,12,0,59,1,7,192,197,226,60,1,8,192,197,34,61,1,8,192,197,98,62,1,8,192,197,162,76,0,255,255,2,65,135,5,108,0,255,255,2,65,70,5,57,1,7,192,197,98,58,1,7,192,197,162,0,68,156,5,15,0,34,1,26,0,244,1,12,0,244,1,13,192,197,162,245,1,13,192,197,226,32,30,14,192,197,34,33,30,14,192,197,98,34,1,12,192,197,162,35,1,12,192,197,226,230,1,13,192,197,34,231,1,13,192,197,98,30,1,12,0,30,1,11,192,197,162,31,1,11,192,197,226,32,1,12,192,197,34,33,1,12,192,197,98,71,0,2,247,135,5,103,0,2,247,70,5,28,1,11,192,197,34,29,1,11,192,197,98,0,72,156,5,16,0,36,30,29,0,40,30,15,0,40,30,17,192,197,34,41,30,17,192,197,98,42,30,17,192,197,162,43,30,17,192,197,226,150,30,18,192,197,34,36,30,16,192,197,34,37,30,16,192,197,98,38,30,16,192,197,162,39,30,16,192,197,226,30,2,12,0,30,2,15,192,197,34,31,2,15,192,197,98,34,30,15,192,197,162,35,30,15,192,197,226,72,0,255,255,2,73,135,5,104,0,255,255,2,73,70,5,36,1,14,192,197,162,37,1,14,192,197,226,0,76,156,5,16,0,36,30,29,0,40,30,15,0,40,30,20,192,197,226,41,30,21,192,197,34,42,30,21,192,197,98,43,30,21,192,197,162,150,30,21,192,197,226,36,30,19,192,197,226,37,30,20,192,197,34,38,30,20,192,197,98,39,30,20,192,197,162,30,2,12,0,30,2,18,192,197,226,31,2,19,192,197,34,34,30,19,192,197,98,35,30,19,192,197,162,72,0,255,255,2,77,135,5,104,0,255,255,2,77,70,5,36,1,18,192,197,98,37,1,18,192,197,162,0,80,156,5,16,0,36,30,29,0,40,30,15,0,40,30,24,192,197,162,41,30,24,192,197,226,42,30,25,192,197,34,43,30,25,192,197,98,150,30,25,192,197,162,36,30,23,192,197,162,37,30,23,192,197,226,38,30,24,192,197,34,39,30,24,192,197,98,30,2,12,0,30,2,22,192,197,162,31,2,22,192,197,226,34,30,23,192,197,34,35,30,23,192,197,98,72,0,255,255,2,81,135,5,104,0,255,255,2,81,70,5,36,1,22,192,197,34,37,1,22,192,197,98,0,46,5,5,8,0,37,30,15,0,37,30,26,192,197,162,39,30,26,192,197,226,41,30,27,192,197,34,43,30,27,192,197,98,150,30,27,192,197,162,104,0,2,239,5,5,37,1,25,192,197,226,31,2,26,192,197,34,35,30,26,192,197,98,0,48,5,5,6,0,13,30,12,0,13,30,28,192,197,98,15,30,28,192,197,162,17,30,28,192,197,226,19,30,29,192,197,34,100,0,2,241,5,5,15,1,27,192,197,226,11,30,28,192,197,34,0,52,5,5,1,0,102,0,2,245,5,5,31,30,29,192,197,98,0,64,5,5,7,0,55,30,12,0,55,30,30,192,197,98,57,30,30,192,197,163,59,30,31,192,197,2,61,30,31,192,197,66,108,0,255,255,2,65,5,5,58,1,29,192,197,162,60,1,29,192,197,226,62,1,30,192,197,34,0,68,5,5,7,0,35,1,12,0,35,1,32,192,197,66,231,1,32,192,197,130,245,1,32,192,197,194,33,30,33,192,197,2,103,0,2,247,5,5,29,1,31,192,197,130,31,1,31,192,197,194,33,1,32,192,197,2,0,72,5,5,8,0,37,30,15,0,37,30,34,192,197,2,39,30,34,192,197,66,41,30,34,192,197,130,43,30,34,192,197,194,150,30,35,192,197,2,104,0,255,255,2,73,5,5,37,1,33,192,197,66,31,2,33,192,197,130,35,30,33,192,197,194,0,76,5,5,8,0,37,30,15,0,37,30,36,192,197,2,39,30,36,192,197,66,41,30,36,192,197,130,43,30,36,192,197,194,150,30,37,192,197,2,104,0,255,255,2,77,5,5,37,1,35,192,197,66,31,2,35,192,197,130,35,30,35,192,197,194,0,80,5,5,8,0,37,30,15,0,37,30,38,192,197,2,39,30,38,192,197,66,41,30,38,192,197,130,43,30,38,192,197,194,150,30,39,192,197,2,104,0,255,255,2,81,5,5,37,1,37,192,197,66,31,2,37,192,197,130,35,30,37,192,197,194,30,0,68,0,69,0,70,0,73,0,100,0,101,0,102,0,105,0,108,0,109,0,14,1,16,1,28,1,38,1,57,1,63,1,230,1,232,1,244,1,246,1,30,2,32,2,10,30,20,30,30,30,44,30,54,30,62,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,36,4,186,80,46,4,185,92,185,100,186,104,186,112,185,116,52,4,185,128,70,4,185,140,92,4,185,152,102,4,186,168,112,4,185,184,185,188,185,192,185,196,185,200,185,204,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,122,4,128,4,168,80,134,4,168,92,168,100,168,104,168,112,168,116,138,4,168,128,148,4,168,140,160,4,168,152,166,4,168,168,172,4,168,184,168,188,168,192,168,196,168,200,168,204,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,81,154,81,250,81,90,82,186,105,154,105,250,105,90,106,217,72,154,134,185,141,153,141,249,141,153,142,89,142,136,14,217,142,185,185,153,185,249,185,89,186,153,201,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,81,136,81,232,81,72,82,168,105,136,105,232,105,72,106,200,72,136,134,168,141,136,141,232,141,136,142,72,142,128,14,200,142,168,185,136,185,232,185,72,186,136,201,168,208,72,202,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,83,40,83,218,81,200,81,186,82,168,82,26,83,8,83,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,169,136,169,250,169,232,169,250,170,232,170,26,170,8,170,249,174,232,174,25,174,8,174,185,180,168,180,153,186,136,186,57,187,40,187,217,185,200,185,57,186,40,186,121,186,104,186,25,187,8,187,249,193,232,193,249,201,232,201,89,202,153,205,136,205,185,206,168,206,25,206,8,206,232,168,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,168,169,168,200,56,169,80,187,104,187,112,169,104,169,112,169,212,169,132,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,68,104,4,177,68,36,5,250,69,37,5,241,69,255,5,185,72,68,4,186,76,100,4,177,76,14,5,26,78,15,5,17,78,255,5,185,84,70,4,186,88,102,4,177,88,255,5,185,120,76,4,186,124,108,4,177,124,57,5,154,125,58,5,145,125,59,5,250,126,60,5,241,126,61,5,26,126,62,5,17,126,255,5,186,132,71,4,186,96,103,4,177,96,28,5,250,97,29,5,241,97,30,5,218,97,31,5,209,97,32,5,186,98,33,5,177,98,34,5,250,98,35,5,241,98,255,5,185,144,72,4,186,148,104,4,177,148,36,5,250,149,37,5,241,149,255,5,185,160,72,4,186,164,104,4,177,164,36,5,250,165,37,5,241,165,255,5,185,172,72,4,186,176,104,4,177,176,36,5,250,177,37,5,241,177,255,5,168,64,104,4,168,68,37,5,232,69,255,5,168,72,100,4,168,76,15,5,8,78,255,5,168,84,102,4,168,88,255,5,168,120,108,4,168,124,58,5,136,125,60,5,232,126,62,5,8,126,255,5,168,132,103,4,168,96,29,5,232,97,31,5,200,97,33,5,168,98,35,5,232,98,255,5,168,144,104,4,168,148,37,5,232,149,255,5,168,160,104,4,168,164,37,5,232,165,255,5,168,172,104,4,168,176,37,5,232,177,255,1,170,170,3,0,69,0,52,0,61,0,87,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,19,10,0,32,1,0,32,0,24,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,134,27,0,32,7,0,0,0,23,0,0,0,136,27,0,0,136,27,0,0,3,0,0,0,0,0,0,0,131,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,64,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,100,0,97,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,91,0,99,0,97,0,115,0,101,0,70,0,105,0,114,0,115,0,116,0,32,0,111,0,102,0,102,0,93,0,0,0,143,220,91,0,99,0,97,0,115,0,101,0,70,0,105,0,114,0,115,0,116,0,32,0,117,0,112,0,112,0,101,0,114,0,93,0,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,104,0,60,0,60,0,60,0,254,0,38,0,84,0,72,0,60,0,60,0,60,0,222,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,60,0,97,0,97,0,60,0,60,0,60,0,65,0,97,0,60,0,60,0,60,0,65,0,65,0,38,0,111,0,101,0,60,0,60,0,83,1,60,0,60,0,60,0,82,1,0,0,170,170,220,56,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,167,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,108,47,0,0,108,47,0,0,60,51,0,0,60,51,0,0,138,56,0,0,192,56,0,0,192,56,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,29,0,202,97,29,0,202,130,29,0,202,163,29,0,202,196,29,0,202,229,29,0,202,6,30,0,202,39,30,0,202,72,30,0,202,105,30,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,196,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,29,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,134,30,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,36,32,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,230,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,48,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,33,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,193,17,0,5,5,127,12,198,65,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,162,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,65,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,26,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,49,0,201,230,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,17,0,198,1,27,0,197,98,1,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,6,52,0,201,38,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,54,0,201,102,55,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,56,0,201,166,57,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,34,29,0,198,98,29,0,192,0,0,0,192,0,0,0,198,162,29,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,58,0,201,230,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,30,0,197,162,5,0,198,34,31,0,197,226,5,0,198,98,31,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,31,0,198,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,6,61,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,62,0,5,71,238,102,201,198,63,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,197,227,8,0,197,66,9,0,192,0,0,0,192,0,0,0,197,130,9,0,197,195,9,0,197,34,10,0,192,0,0,0,192,0,0,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,64,0,201,198,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,66,0,201,6,68,0,201,38,69,0,201,70,70,0,201,102,71,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,73,0,201,198,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,75,0,201,6,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,78,0,201,70,79,0,201,102,80,0,201,134,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,82,0,201,198,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,156,5,0,80,29,5,0,56,5,5,0,80,6,5,0,56,193,4,111,93,5,162,0,0,133,5,0,70,134,70,0,50,5,5,0,70,5,70,0,50,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,98,6,0,5,5,10,121,5,5,12,121,197,162,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,6,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,197,98,7,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,7,0,5,5,107,121,197,226,7,0,5,5,111,121,197,34,8,0,5,5,115,121,197,98,8,0,5,5,119,121,197,162,8,0,197,227,8,0,197,66,9,0,5,5,127,121,5,5,129,121,197,130,9,0,197,195,9,0,197,34,10,0,5,5,137,121,5,5,139,121,197,98,10,0,5,5,143,121,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,70,156,5,1,0,8,3,17,192,198,193,11,3,17,192,198,225,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,99,179,30,25,192,198,195,181,30,26,192,198,35,183,30,26,192,198,131,169,30,23,192,198,227,171,30,24,192,198,67,173,30,24,192,198,163,175,30,25,192,198,3,161,30,12,0,161,30,22,192,198,162,163,30,22,192,198,226,165,30,23,192,198,35,167,30,23,192,198,131,39,2,10,0,8,3,22,192,198,65,10,3,255,255,111,93,193,4,1,30,22,192,198,98,176,69,198,2,4,3,21,192,198,3,3,1,26,0,225,1,12,0,225,1,21,192,198,3,251,1,21,192,198,99,1,2,21,192,198,194,3,2,22,192,198,2,3,1,19,192,198,226,5,1,20,192,198,34,206,1,20,192,198,98,223,1,20,192,198,163,227,0,12,0,227,0,18,192,198,226,228,0,19,192,198,34,229,0,19,192,198,98,1,1,19,192,198,162,97,0,18,192,198,1,224,0,18,192,198,34,225,0,18,192,198,98,226,0,18,192,198,162,0,70,5,5,1,0,8,3,26,192,198,225,11,3,27,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,98,10,3,27,192,198,162,5,42,196,162,1,0,8,3,27,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,5,82,196,162,1,0,8,3,2,192,197,98,11,3,2,192,197,162,156,70,196,190,1,0,8,3,28,192,198,34,11,3,28,192,198,98,5,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,1,0,8,3,29,192,198,226,11,3,30,192,198,34,5,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,32,192,198,34,10,3,32,192,198,98,5,42,196,200,1,0,8,3,32,192,198,162,10,3,13,192,197,34,156,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,5,82,196,198,1,0,8,3,13,192,197,226,11,3,14,192,197,34,156,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,5,82,196,208,1,0,8,3,14,192,197,226,11,3,15,192,197,34,156,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,5,82,196,204,1,0,8,3,15,192,197,226,11,3,16,192,197,34,156,42,196,196,1,0,8,3,32,192,198,226,10,3,33,192,198,34,5,42,196,196,1,0,8,3,33,192,198,98,10,3,16,192,197,98,156,70,196,196,1,0,8,3,33,192,198,162,11,3,33,192,198,226,5,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,16,0,197,163,1,0,8,3,34,192,198,163,11,3,35,192,198,3,17,0,197,3,1,0,8,3,35,192,198,99,11,3,35,192,198,195,156,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,5,82,196,196,1,0,8,3,17,192,197,226,11,3,18,192,197,34,18,0,197,99,1,0,8,3,18,192,197,195,11,3,19,192,197,35,19,0,197,131,1,0,8,3,19,192,197,227,11,3,20,192,197,67,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,3,0,67,0,50,0,59,0,131,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,226,50,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,35,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,60,39,0,0,60,39,0,0,40,41,0,0,40,41,0,0,48,46,0,0,102,46,0,0,198,50,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,14,0,202,65,14,0,202,98,14,0,202,131,14,0,202,164,14,0,202,197,14,0,202,230,14,0,202,7,15,0,202,40,15,0,202,73,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,4,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,28,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,29,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,100,31,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,70,47,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,33,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,193,17,0,5,5,127,12,198,65,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,226,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,65,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,26,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,49,0,201,38,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,17,0,198,1,27,0,197,98,1,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,70,51,0,201,102,52,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,55,0,201,230,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,34,29,0,198,98,29,0,192,0,0,0,192,0,0,0,198,162,29,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,58,0,201,38,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,30,0,197,162,5,0,198,34,31,0,197,226,5,0,198,98,31,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,31,0,198,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,60,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,62,0,201,166,63,0,201,198,64,0,201,230,65,0,201,6,67,0,201,38,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,69,0,201,102,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,71,0,201,166,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,73,0,201,230,74,0,201,6,76,0,201,38,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,78,0,201,102,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,156,5,0,80,29,5,0,56,5,5,0,80,6,5,0,56,193,4,111,93,5,162,0,0,133,5,0,70,134,70,0,50,5,5,0,70,5,70,0,50,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,70,156,5,1,0,8,3,17,192,198,193,11,3,17,192,198,225,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,99,179,30,25,192,198,195,181,30,26,192,198,35,183,30,26,192,198,131,169,30,23,192,198,227,171,30,24,192,198,67,173,30,24,192,198,163,175,30,25,192,198,3,161,30,12,0,161,30,22,192,198,162,163,30,22,192,198,226,165,30,23,192,198,35,167,30,23,192,198,131,39,2,10,0,8,3,22,192,198,65,10,3,255,255,111,93,193,4,1,30,22,192,198,98,176,69,198,2,4,3,21,192,198,3,3,1,26,0,225,1,12,0,225,1,21,192,198,3,251,1,21,192,198,99,1,2,21,192,198,194,3,2,22,192,198,2,3,1,19,192,198,226,5,1,20,192,198,34,206,1,20,192,198,98,223,1,20,192,198,163,227,0,12,0,227,0,18,192,198,226,228,0,19,192,198,34,229,0,19,192,198,98,1,1,19,192,198,162,97,0,18,192,198,1,224,0,18,192,198,34,225,0,18,192,198,98,226,0,18,192,198,162,0,70,5,5,1,0,8,3,26,192,198,225,11,3,27,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,98,10,3,27,192,198,162,5,42,196,162,1,0,8,3,27,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,5,82,196,162,1,0,8,3,2,192,197,98,11,3,2,192,197,162,156,70,196,190,1,0,8,3,28,192,198,34,11,3,28,192,198,98,5,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,1,0,8,3,29,192,198,226,11,3,30,192,198,34,5,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,156,42,196,200,1,0,8,3,32,192,198,34,10,3,32,192,198,98,5,42,196,200,1,0,8,3,32,192,198,162,10,3,6,192,197,98,156,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,5,82,196,198,1,0,8,3,7,192,197,34,11,3,7,192,197,98,156,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,5,82,196,208,1,0,8,3,8,192,197,34,11,3,8,192,197,98,156,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,5,82,196,204,1,0,8,3,9,192,197,34,11,3,9,192,197,98,156,42,196,196,1,0,8,3,32,192,198,226,10,3,33,192,198,34,5,42,196,196,1,0,8,3,33,192,198,98,10,3,9,192,197,162,156,70,196,196,1,0,8,3,33,192,198,162,11,3,33,192,198,226,5,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,9,0,197,227,1,0,8,3,34,192,198,163,11,3,35,192,198,3,10,0,197,67,1,0,8,3,35,192,198,99,11,3,35,192,198,195,156,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,5,82,196,196,1,0,8,3,11,192,197,34,11,3,11,192,197,98,11,0,197,163,1,0,8,3,12,192,197,3,11,3,12,192,197,99,12,0,197,195,1,0,8,3,13,192,197,35,11,3,13,192,197,131,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,185,72,185,76,185,80,186,84,186,88,186,96,185,100,185,104,185,108,186,112,68,4,185,124,185,128,185,136,186,140,185,144,70,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,72,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,94,4,168,124,168,128,168,136,168,140,168,144,96,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,180,185,188,185,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,184,136,14,185,184,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,200,180,168,188,168,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,184,128,14,168,184,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,98,4,100,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,217,74,200,74,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,250,85,232,85,26,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,12,8,14,8,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,185,146,168,146,25,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,102,4,104,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,185,144,171,84,200,140,169,140,168,144,169,84,187,88,187,96,169,88,169,96,169,176,169,112,184,120,217,72,168,120,200,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,65,4,188,188,97,4,179,188,192,4,188,189,193,4,156,189,194,4,252,189,195,4,124,190,196,4,92,190,197,4,60,190,224,4,179,189,225,4,147,189,226,4,243,189,227,4,115,190,228,4,83,190,229,4,51,190,0,5,252,190,1,5,243,190,2,5,220,189,3,5,211,189,4,5,220,190,5,5,211,190,255,5,185,120,255,5,185,152,255,5,168,56,97,4,170,188,224,4,170,189,225,4,138,189,226,4,234,189,227,4,106,190,228,4,74,190,229,4,42,190,1,5,234,190,3,5,202,189,5,5,202,190,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,170,170,3,0,67,0,50,0,59,0,195,14,0,16,70,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,187,14,0,32,125,27,0,32,1,0,32,0,130,27,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,148,20,0,32,7,0,0,0,23,0,0,0,150,20,0,0,150,20,0,0,3,0,0,0,0,0,0,0,66,0,0,0,99,111,108,108,97,116,105,111,110,115,0,112,104,111,110,101,98,111,111,107,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,101,97,114,99,104,0,0,0,52,0,50,0,0,0,38,0,65,0,69,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,79,0,69,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,38,0,85,0,69,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,0,0,48,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,100,0,101,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,104,0,111,0,110,0,101,0,98,0,107,0,93,0,0,0,170,170,170,170,170,170,82,37,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,4,29,0,0,4,29,0,0,4,29,0,0,4,29,0,0,152,31,0,0,152,31,0,0,58,33,0,0,58,33,0,0,58,37,0,0,50,105,114,84,1,0,64,8,195,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,84,0,92,0,97,0,105,0,110,0,118,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,48,0,48,0,157,0,48,0,165,0,170,0,178,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,186,0,145,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,80,1,132,1,184,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,19,0,202,129,19,0,202,162,19,0,202,195,19,0,202,228,19,0,202,5,20,0,202,38,20,0,202,71,20,0,202,104,20,0,202,137,20,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,1,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,2,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,70,3,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,4,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,197,34,0,0,196,146,156,42,197,162,18,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,197,98,0,0,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,197,162,0,0,196,136,156,90,160,5,38,93,197,226,18,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,197,66,1,0,196,146,5,42,197,34,19,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,197,130,1,0,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,197,194,1,0,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,5,0,201,230,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,6,0,201,102,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,8,0,201,230,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,9,0,201,102,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,5,0,197,195,5,0,197,227,0,0,197,3,2,0,197,35,6,0,197,131,6,0,197,227,6,0,197,67,7,0,192,0,0,0,197,163,7,0,197,3,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,11,0,201,230,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,9,0,197,131,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,12,0,201,102,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,14,0,201,230,14,0,201,166,15,0,201,102,16,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,102,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,20,0,201,230,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,21,0,201,102,22,0,201,38,23,0,201,230,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,24,0,201,102,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,156,5,0,42,6,72,0,50,156,5,0,70,6,71,0,50,156,5,0,82,6,70,0,50,156,5,0,82,6,70,0,50,5,136,0,0,28,5,0,42,5,72,0,50,28,5,0,70,5,71,0,50,28,5,0,82,5,70,0,50,28,5,0,82,5,70,0,50,5,136,0,0,156,5,0,42,6,72,0,50,5,162,0,0,28,5,0,42,5,72,0,50,5,162,0,0,156,5,0,82,6,70,0,50,5,162,0,0,28,5,0,82,5,70,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,190,0,0,28,5,0,70,5,71,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,190,0,0,28,5,0,82,5,70,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,164,0,0,28,5,0,82,5,70,0,50,5,164,0,0,156,5,0,82,6,70,0,50,5,144,0,0,28,5,0,82,5,70,0,50,5,144,0,0,156,5,0,82,6,70,0,50,5,138,0,0,28,5,0,82,5,70,0,50,5,138,0,0,156,5,0,42,6,72,0,50,5,164,0,0,28,5,0,42,5,72,0,50,5,164,0,0,156,5,0,70,6,71,0,50,5,162,0,0,28,5,0,70,5,71,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,164,0,0,28,5,0,70,5,71,0,50,5,164,0,0,156,5,0,42,6,72,0,50,5,200,0,0,28,5,0,42,5,72,0,50,5,200,0,0,156,5,0,82,6,70,0,50,5,198,0,0,28,5,0,82,5,70,0,50,5,198,0,0,156,5,0,82,6,70,0,50,5,208,0,0,28,5,0,82,5,70,0,50,5,208,0,0,156,5,0,82,6,70,0,50,5,204,0,0,28,5,0,82,5,70,0,50,5,204,0,0,156,5,0,42,6,72,0,50,5,196,0,0,28,5,0,42,5,72,0,50,5,196,0,0,156,5,0,70,6,71,0,50,5,196,0,0,28,5,0,70,5,71,0,50,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,156,5,0,70,6,71,0,50,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,28,5,0,70,5,71,0,50,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,196,0,0,28,5,0,82,5,70,0,50,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,28,5,0,82,5,70,0,50,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,197,162,0,70,156,5,48,0,8,3,0,192,197,98,0,82,156,5,1,0,8,3,0,192,197,162,68,3,0,192,197,227,0,42,5,5,48,0,8,3,1,192,197,66,0,70,5,5,48,0,8,3,1,192,197,130,0,82,5,5,1,0,8,3,1,192,197,194,68,3,2,192,197,3,156,42,196,162,48,0,8,3,2,192,197,99,5,42,196,162,48,0,8,3,2,192,197,195,156,82,196,162,48,0,8,3,3,192,197,35,5,82,196,162,48,0,8,3,3,192,197,131,156,70,196,190,48,0,8,3,3,192,197,227,5,70,196,190,48,0,8,3,4,192,197,67,156,82,196,190,48,0,8,3,4,192,197,163,5,82,196,190,48,0,8,3,5,192,197,3,156,70,196,162,48,0,8,3,8,192,197,99,5,70,196,162,48,0,8,3,8,192,197,195,156,42,196,200,48,0,8,3,9,192,197,227,5,42,196,200,48,0,8,3,10,192,197,67,156,82,196,198,48,0,8,3,10,192,197,163,5,82,196,198,48,0,8,3,11,192,197,3,156,82,196,208,48,0,8,3,11,192,197,99,5,82,196,208,48,0,8,3,11,192,197,195,156,82,196,204,48,0,8,3,12,192,197,35,5,82,196,204,48,0,8,3,12,192,197,131,156,42,196,196,48,0,8,3,12,192,197,227,5,42,196,196,48,0,8,3,13,192,197,67,156,70,196,196,48,0,8,3,13,192,197,163,5,70,196,196,48,0,8,3,14,192,197,3,14,0,197,99,48,0,8,3,14,192,197,196,15,0,197,67,48,0,8,3,15,192,197,164,156,82,196,196,48,0,8,3,16,192,197,35,5,82,196,196,48,0,8,3,16,192,197,131,16,0,197,227,48,0,8,3,17,192,197,68,17,0,197,195,48,0,8,3,18,192,197,36,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,38,4,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,40,4,185,124,185,128,185,136,186,140,185,144,42,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,44,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,46,4,168,124,168,128,168,136,168,140,168,144,48,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,0,8,57,58,2,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,4,8,136,14,217,122,185,153,153,153,249,153,6,8,153,169,185,176,8,8,168,57,136,57,232,57,136,58,10,8,40,58,12,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,14,8,128,14,200,122,168,153,136,153,232,153,16,8,136,169,168,176,72,170,57,59,40,59,217,57,200,57,50,4,52,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,18,8,20,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,22,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,24,8,26,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,54,4,56,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,185,56,9,73,217,56,187,72,185,120,233,72,185,152,201,72,200,140,169,140,169,56,8,73,200,56,169,72,169,120,232,72,169,152,200,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,120,255,5,168,152,255,5,25,59,255,5,8,59,255,5,25,155,255,5,8,155,255,1,170,170,3,0,70,0,53,0,62,0,67,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,172,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,209,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,52,37,0,0,52,37,0,0,52,37,0,0,52,37,0,0,172,41,0,0,172,41,0,0,148,43,0,0,148,43,0,0,148,43,0,0,50,105,114,84,1,0,64,8,70,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,84,0,92,0,97,0,105,0,110,0,118,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,132,0,140,0,146,0,154,0,162,0,170,0,48,0,56,0,169,0,177,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,194,0,202,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,226,0,48,0,232,0,240,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,243,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,251,0,48,0,48,0,255,0,48,0,7,1,12,1,20,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,28,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,31,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,185,0,192,0,48,0,48,0,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,61,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,53,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,80,1,132,1,184,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,16,2,72,2,136,2,192,0,164,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,34,0,202,161,34,0,202,194,34,0,202,227,34,0,202,4,35,0,202,37,35,0,202,70,35,0,202,103,35,0,202,136,35,0,202,169,35,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,2,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,3,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,4,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,4,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,197,34,0,0,196,146,156,42,197,98,25,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,197,98,0,0,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,197,162,0,0,196,136,156,90,160,5,38,93,197,162,25,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,197,66,1,0,196,146,5,42,197,226,25,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,197,130,1,0,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,197,194,1,0,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,5,0,201,166,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,7,0,201,38,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,8,0,201,166,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,5,0,197,195,5,0,197,227,0,0,197,3,2,0,197,35,6,0,197,131,6,0,197,227,6,0,197,67,7,0,192,0,0,0,197,163,7,0,197,3,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,9,0,197,131,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,102,13,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,15,0,5,71,238,102,201,38,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,197,34,10,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,10,0,192,0,0,0,197,162,10,0,192,0,0,0,192,0,0,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,192,0,0,0,197,98,11,0,192,0,0,0,197,162,11,0,192,0,0,0,197,226,11,0,192,0,0,0,197,34,12,0,197,99,12,0,197,194,12,0,192,0,0,0,192,0,0,0,197,2,13,0,197,67,13,0,197,162,13,0,192,0,0,0,192,0,0,0,197,226,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,9,0,197,34,14,0,5,5,10,121,197,98,14,0,197,162,14,0,5,5,12,121,5,5,16,121,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,5,5,18,121,5,5,20,121,197,130,10,0,5,5,24,121,197,162,10,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,17,0,201,198,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,70,19,0,201,6,20,0,201,198,20,0,201,134,21,0,201,70,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,198,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,24,0,201,70,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,198,26,0,201,134,27,0,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,29,0,201,198,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,156,5,0,42,6,72,0,50,156,5,0,70,6,71,0,50,156,5,0,82,6,70,0,50,156,5,0,82,6,70,0,50,5,136,0,0,28,5,0,42,5,72,0,50,28,5,0,70,5,71,0,50,28,5,0,82,5,70,0,50,28,5,0,82,5,70,0,50,5,136,0,0,156,5,0,42,6,72,0,50,5,162,0,0,28,5,0,42,5,72,0,50,5,162,0,0,156,5,0,82,6,70,0,50,5,162,0,0,28,5,0,82,5,70,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,190,0,0,28,5,0,70,5,71,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,190,0,0,28,5,0,82,5,70,0,50,5,190,0,0,156,5,0,82,6,70,0,50,5,164,0,0,28,5,0,82,5,70,0,50,5,164,0,0,156,5,0,82,6,70,0,50,5,144,0,0,28,5,0,82,5,70,0,50,5,144,0,0,156,5,0,82,6,70,0,50,5,138,0,0,28,5,0,82,5,70,0,50,5,138,0,0,156,5,0,42,6,72,0,50,5,164,0,0,28,5,0,42,5,72,0,50,5,164,0,0,156,5,0,70,6,71,0,50,5,162,0,0,28,5,0,70,5,71,0,50,5,162,0,0,156,5,0,70,6,71,0,50,5,164,0,0,28,5,0,70,5,71,0,50,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,156,5,0,42,6,72,0,50,5,200,0,0,28,5,0,42,5,72,0,50,5,200,0,0,156,5,0,82,6,70,0,50,5,198,0,0,28,5,0,82,5,70,0,50,5,198,0,0,156,5,0,82,6,70,0,50,5,208,0,0,28,5,0,82,5,70,0,50,5,208,0,0,156,5,0,82,6,70,0,50,5,204,0,0,28,5,0,82,5,70,0,50,5,204,0,0,156,5,0,42,6,72,0,50,5,196,0,0,28,5,0,42,5,72,0,50,5,196,0,0,156,5,0,70,6,71,0,50,5,196,0,0,28,5,0,70,5,71,0,50,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,156,5,0,70,6,71,0,50,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,28,5,0,70,5,71,0,50,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,196,0,0,28,5,0,82,5,70,0,50,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,156,5,0,82,6,70,0,50,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,28,5,0,82,5,70,0,50,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,226,9,0,5,5,10,121,5,5,12,121,197,34,10,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,10,0,5,5,24,121,197,162,10,0,5,5,28,121,5,5,30,121,197,226,10,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,11,0,5,5,107,121,197,98,11,0,5,5,111,121,197,162,11,0,5,5,115,121,197,226,11,0,5,5,119,121,197,34,12,0,197,99,12,0,197,194,12,0,5,5,127,121,5,5,129,121,197,2,13,0,197,67,13,0,197,162,13,0,5,5,137,121,5,5,139,121,197,226,13,0,5,5,143,121,5,5,6,121,197,226,9,0,197,34,14,0,5,5,10,121,197,98,14,0,197,162,14,0,5,5,12,121,5,5,16,121,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,5,5,18,121,5,5,20,121,197,130,10,0,5,5,24,121,197,162,10,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,48,0,8,3,197,162,0,70,156,5,48,0,8,3,0,192,197,98,0,82,156,5,1,0,8,3,0,192,197,162,68,3,0,192,197,227,0,42,5,5,48,0,8,3,1,192,197,66,0,70,5,5,48,0,8,3,1,192,197,130,0,82,5,5,1,0,8,3,1,192,197,194,68,3,2,192,197,3,156,42,196,162,48,0,8,3,2,192,197,99,5,42,196,162,48,0,8,3,2,192,197,195,156,82,196,162,48,0,8,3,3,192,197,35,5,82,196,162,48,0,8,3,3,192,197,131,156,70,196,190,48,0,8,3,3,192,197,227,5,70,196,190,48,0,8,3,4,192,197,67,156,82,196,190,48,0,8,3,4,192,197,163,5,82,196,190,48,0,8,3,5,192,197,3,156,70,196,162,48,0,8,3,8,192,197,99,5,70,196,162,48,0,8,3,8,192,197,195,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,48,0,8,3,16,192,197,163,5,42,196,200,48,0,8,3,17,192,197,3,156,82,196,198,48,0,8,3,17,192,197,99,5,82,196,198,48,0,8,3,17,192,197,195,156,82,196,208,48,0,8,3,18,192,197,35,5,82,196,208,48,0,8,3,18,192,197,131,156,82,196,204,48,0,8,3,18,192,197,227,5,82,196,204,48,0,8,3,19,192,197,67,156,42,196,196,48,0,8,3,19,192,197,163,5,42,196,196,48,0,8,3,20,192,197,3,156,70,196,196,48,0,8,3,20,192,197,99,5,70,196,196,48,0,8,3,20,192,197,195,21,0,197,35,48,0,8,3,21,192,197,132,22,0,197,3,48,0,8,3,22,192,197,100,156,82,196,196,48,0,8,3,22,192,197,227,5,82,196,196,48,0,8,3,23,192,197,67,23,0,197,163,48,0,8,3,24,192,197,4,24,0,197,131,48,0,8,3,24,192,197,228,3,0,70,0,53,0,62,0,159,9,0,16,35,0,0,96,1,0,0,96,2,0,43,0,85,0,170,170,153,9,0,32,139,20,0,32,1,0,32,0,144,20,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,106,9,0,32,7,0,0,0,22,0,0,0,108,9,0,0,108,9,0,0,3,0,0,0,0,0,0,0,41,0,0,0,99,111,108,108,97,116,105,111,110,115,0,112,104,111,110,101,98,111,111,107,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,170,170,170,0,0,52,0,50,0,0,0,38,0,97,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,111,0,60,0,246,0,60,0,60,0,60,0,214,0,38,0,117,0,60,0,252,0,60,0,60,0,60,0,220,0,38,0,115,0,115,0,60,0,223,0,60,0,60,0,60,0,158,30,0,0,170,170,170,170,170,170,170,170,218,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,29,0,0,100,29,0,0,100,29,0,0,100,29,0,0,48,31,0,0,48,31,0,0,218,32,0,0,218,32,0,0,194,36,0,0,50,105,114,84,1,0,64,8,201,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,84,0,92,0,97,0,105,0,110,0,118,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,153,0,48,0,48,0,157,0,163,0,171,0,176,0,184,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,145,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,80,1,132,1,184,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,13,0,202,65,13,0,202,98,13,0,202,131,13,0,202,164,13,0,202,197,13,0,202,230,13,0,202,7,14,0,202,40,14,0,202,73,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,198,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,1,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,2,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,134,3,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,4,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,2,43,196,146,156,42,197,162,12,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,2,43,196,146,5,42,197,226,12,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,5,0,201,102,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,7,0,201,230,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,8,0,201,102,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,10,0,201,230,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,2,0,197,34,3,0,197,34,0,0,197,98,0,0,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,192,0,0,0,197,98,4,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,11,0,201,102,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,13,0,201,230,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,14,0,201,102,15,0,201,38,16,0,201,230,16,0,201,166,17,0,201,102,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,201,38,19,0,201,230,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,20,0,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,22,0,201,230,22,0,201,166,23,0,201,102,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,25,0,201,230,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,5,5,0,78,5,5,2,79,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,43,5,164,0,0,5,5,2,43,5,164,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,133,5,0,78,134,5,2,79,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,2,235,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,42,5,5,48,0,8,3,2,235,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,42,196,162,48,0,8,3,0,192,197,226,5,42,196,162,48,0,8,3,1,192,197,34,156,82,196,162,48,0,8,3,1,192,197,98,5,82,196,162,48,0,8,3,1,192,197,162,156,70,196,190,48,0,8,3,1,192,197,226,5,70,196,190,48,0,8,3,2,192,197,34,156,82,196,190,48,0,8,3,2,192,197,98,5,82,196,190,48,0,8,3,2,192,197,162,156,70,196,162,48,0,8,3,4,192,197,226,5,70,196,162,48,0,8,3,5,192,197,34,156,42,196,200,48,0,8,3,5,192,197,226,5,42,196,200,48,0,8,3,6,192,197,34,156,82,196,198,48,0,8,3,6,192,197,98,5,82,196,198,48,0,8,3,6,192,197,162,156,82,196,208,48,0,8,3,6,192,197,226,5,82,196,208,48,0,8,3,7,192,197,34,156,82,196,204,48,0,8,3,7,192,197,98,5,82,196,204,48,0,8,3,7,192,197,162,156,42,196,196,48,0,8,3,8,192,197,34,5,42,196,196,48,0,8,3,8,192,197,98,156,70,196,196,48,0,8,3,8,192,197,162,5,70,196,196,48,0,8,3,8,192,197,226,9,0,197,35,48,0,8,3,9,192,197,131,9,0,197,227,48,0,8,3,10,192,197,67,156,82,196,196,48,0,8,3,10,192,197,162,5,82,196,196,48,0,8,3,10,192,197,226,11,0,197,35,48,0,8,3,11,192,197,131,11,0,197,227,48,0,8,3,12,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,185,68,185,72,186,76,185,80,185,84,185,88,186,92,186,100,185,104,185,108,185,112,186,116,28,4,185,132,185,136,185,144,185,148,185,156,30,4,185,172,185,176,185,180,185,184,185,188,88,13,168,13,96,13,56,14,80,12,40,14,32,4,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,92,168,100,168,104,168,108,168,112,168,116,34,4,168,132,168,136,168,144,168,148,168,156,36,4,168,172,168,176,168,180,168,184,168,188,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,60,57,58,0,8,249,70,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,185,128,136,14,217,126,185,165,153,165,249,165,185,168,153,185,185,192,2,8,168,57,136,57,232,57,136,58,168,60,40,58,4,8,232,70,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,168,128,128,14,200,126,168,165,136,165,232,165,168,168,136,185,168,192,72,186,57,59,40,59,217,57,200,57,38,4,40,4,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,140,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,145,136,145,249,146,232,146,25,146,8,146,153,149,136,149,249,149,232,149,249,150,232,150,25,150,8,150,249,158,232,158,25,158,8,158,185,160,168,160,153,166,136,166,57,167,40,167,217,165,200,165,57,166,40,166,121,166,104,166,42,4,44,4,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,25,190,8,190,200,148,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,168,148,168,152,200,56,169,76,187,92,187,100,169,92,169,100,169,196,169,116,217,124,187,76,200,124,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,124,255,5,185,164,255,5,168,56,255,5,168,124,255,5,168,164,255,5,25,59,255,5,8,59,255,5,25,167,255,5,8,167,255,1,170,170,3,0,70,0,53,0,62,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,99,9,0,32,1,0,32,0,104,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,20,0,0,32,7,0,0,0,13,0,0,0,22,0,0,0,22,0,0,0,1,0,0,0,0,0,0,0,20,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,170,0,0,112,0,104,0,111,0,110,0,101,0,98,0,111,0,111,0,107,0,0,0,1,0,43,0,1,0,1,0,32,0,11,0,0,80,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,95,10,0,32,7,0,0,0,21,0,0,0,97,10,0,0,97,10,0,0,3,0,0,0,0,0,0,0,77,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,105,220,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,69,0,60,0,27,1,60,0,60,0,60,0,26,1,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,32,0,76,0,60,0,66,1,60,0,60,0,60,0,65,1,38,0,78,0,60,0,68,1,60,0,60,0,60,0,67,1,38,0,82,0,60,0,85,1,60,0,60,0,60,0,84,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,60,0,91,1,60,0,60,0,60,0,90,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,60,0,122,1,60,0,60,0,60,0,121,1,0,0,170,170,170,170,170,170,170,170,170,170,32,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,28,0,0,84,28,0,0,84,28,0,0,84,28,0,0,40,31,0,0,40,31,0,0,182,35,0,0,208,35,0,0,8,40,0,0,50,105,114,84,1,0,64,8,184,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,112,0,120,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,48,0,149,0,157,0,161,0,167,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,136,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,21,0,202,129,21,0,202,162,21,0,202,195,21,0,202,228,21,0,202,5,22,0,202,38,22,0,202,71,22,0,202,104,22,0,202,137,22,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,4,0,0,156,5,0,48,201,134,8,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,70,9,0,156,5,0,70,156,5,0,72,160,5,0,74,201,166,10,0,201,6,12,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,13,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,196,15,0,5,5,0,48,201,102,24,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,38,25,0,5,5,0,70,5,5,0,72,5,5,0,74,201,134,26,0,201,230,27,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,198,29,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,20,0,201,166,31,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,21,0,201,38,33,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,34,0,201,102,35,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,63,5,5,21,63,134,5,2,69,5,5,2,69,201,38,36,0,201,70,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,77,5,5,2,77,201,102,38,0,201,134,39,0,192,0,0,0,192,0,0,0,134,5,3,79,5,5,3,79,192,0,0,0,192,0,0,0,201,166,40,0,201,38,42,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,93,5,5,3,93,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,43,0,201,38,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,46,0,201,102,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,48,0,201,230,48,0,201,166,49,0,201,102,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,51,0,201,70,52,0,201,102,53,0,201,134,54,0,201,166,55,0,201,198,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,57,0,201,6,59,0,192,0,0,0,192,0,0,0,201,38,60,0,201,70,61,0,192,0,0,0,192,0,0,0,201,102,62,0,201,230,63,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,65,0,201,230,66,0,201,102,68,0,201,230,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,71,0,201,38,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,3,79,5,160,0,0,134,5,2,79,5,160,0,0,5,5,3,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,3,79,5,202,0,0,134,5,2,79,5,202,0,0,5,5,3,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,3,79,5,196,0,0,134,5,2,79,5,196,0,0,5,5,3,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,3,79,5,156,0,0,5,5,3,79,5,156,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,3,93,5,196,0,0,134,5,2,93,5,196,0,0,5,5,3,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,3,93,5,210,0,0,134,5,2,93,5,210,0,0,5,5,3,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,51,5,196,0,0,5,5,2,51,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,19,0,35,30,32,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,35,30,1,192,197,98,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,31,2,15,0,31,2,0,192,197,226,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,34,30,1,192,197,34,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,30,2,0,192,197,162,0,50,156,5,48,0,12,3,2,243,134,5,0,68,156,5,1,0,1,3,255,255,2,69,134,5,65,3,255,255,2,69,134,5,0,76,156,5,1,0,1,3,255,255,2,77,134,5,65,3,255,255,2,77,134,5,0,78,156,5,2,0,1,3,255,255,3,79,134,5,12,3,255,255,2,79,134,5,65,3,255,255,3,79,134,5,0,92,156,5,2,0,1,3,255,255,3,93,134,5,12,3,255,255,2,93,134,5,65,3,255,255,3,93,134,5,0,46,5,5,19,0,35,30,32,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,35,30,5,192,197,34,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,31,2,15,0,31,2,4,192,197,162,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,34,30,4,192,197,226,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,30,2,4,192,197,98,0,50,5,5,48,0,12,3,2,243,5,5,0,68,5,5,1,0,1,3,255,255,2,69,5,5,65,3,255,255,2,69,5,5,0,76,5,5,1,0,1,3,255,255,2,77,5,5,65,3,255,255,2,77,5,5,0,78,5,5,2,0,1,3,255,255,3,79,5,5,12,3,255,255,2,79,5,5,65,3,255,255,3,79,5,5,0,92,5,5,2,0,1,3,255,255,3,93,5,5,12,3,255,255,2,93,5,5,65,3,255,255,3,93,5,5,156,46,196,160,2,0,1,3,7,192,197,162,12,3,7,192,197,226,65,3,7,192,197,162,5,46,196,160,2,0,1,3,8,192,197,34,12,3,8,192,197,98,65,3,8,192,197,34,156,50,196,162,48,0,12,3,8,192,197,162,5,50,196,162,48,0,12,3,8,192,197,226,156,68,196,160,1,0,1,3,9,192,197,34,65,3,9,192,197,34,5,68,196,160,1,0,1,3,9,192,197,98,65,3,9,192,197,98,156,76,196,160,1,0,1,3,9,192,197,162,65,3,9,192,197,162,5,76,196,160,1,0,1,3,9,192,197,226,65,3,9,192,197,226,156,78,196,160,2,0,1,3,10,192,197,34,12,3,10,192,197,98,65,3,10,192,197,34,5,78,196,160,2,0,1,3,10,192,197,162,12,3,10,192,197,226,65,3,10,192,197,162,156,78,196,202,2,0,1,3,11,192,197,34,12,3,11,192,197,98,65,3,11,192,197,34,5,78,196,202,2,0,1,3,11,192,197,162,12,3,11,192,197,226,65,3,11,192,197,162,156,50,196,160,48,0,12,3,12,192,197,34,5,50,196,160,48,0,12,3,12,192,197,98,156,50,196,204,48,0,12,3,12,192,197,162,5,50,196,204,48,0,12,3,12,192,197,226,156,50,196,208,48,0,12,3,13,192,197,34,5,50,196,208,48,0,12,3,13,192,197,98,156,68,196,196,1,0,1,3,13,192,197,162,65,3,13,192,197,162,5,68,196,196,1,0,1,3,13,192,197,226,65,3,13,192,197,226,156,68,196,210,1,0,1,3,14,192,197,34,65,3,14,192,197,34,5,68,196,210,1,0,1,3,14,192,197,98,65,3,14,192,197,98,156,68,196,204,1,0,1,3,14,192,197,162,65,3,14,192,197,162,5,68,196,204,1,0,1,3,14,192,197,226,65,3,14,192,197,226,156,76,196,196,1,0,1,3,15,192,197,34,65,3,15,192,197,34,5,76,196,196,1,0,1,3,15,192,197,98,65,3,15,192,197,98,156,76,196,210,1,0,1,3,15,192,197,162,65,3,15,192,197,162,5,76,196,210,1,0,1,3,15,192,197,226,65,3,15,192,197,226,156,78,196,196,2,0,1,3,16,192,197,34,12,3,16,192,197,98,65,3,16,192,197,34,5,78,196,196,2,0,1,3,16,192,197,162,12,3,16,192,197,226,65,3,16,192,197,162,156,92,196,196,2,0,1,3,18,192,197,34,12,3,18,192,197,98,65,3,18,192,197,34,5,92,196,196,2,0,1,3,18,192,197,162,12,3,18,192,197,226,65,3,18,192,197,162,156,92,196,210,2,0,1,3,19,192,197,34,12,3,19,192,197,98,65,3,19,192,197,34,5,92,196,210,2,0,1,3,19,192,197,162,12,3,19,192,197,226,65,3,19,192,197,162,156,50,196,196,48,0,12,3,20,192,197,34,5,50,196,196,48,0,12,3,20,192,197,98,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,76,36,4,185,88,185,92,185,96,186,104,186,112,185,116,185,124,185,128,38,4,185,144,185,148,185,152,40,4,42,4,185,180,185,188,185,192,185,196,185,200,185,204,44,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,46,4,168,76,56,4,168,88,168,92,168,96,168,104,168,112,168,116,168,124,168,128,58,4,168,144,168,148,168,152,60,4,62,4,168,180,168,188,168,192,168,196,168,200,168,204,64,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,66,4,186,81,154,81,250,81,90,82,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,189,153,189,249,189,89,190,153,205,185,220,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,68,4,168,81,136,81,232,81,72,82,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,189,136,189,232,189,72,190,136,205,168,220,72,206,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,70,4,72,4,185,84,168,84,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,125,136,125,249,126,232,126,25,126,8,126,121,127,104,127,185,120,168,120,185,136,168,136,74,4,76,4,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,185,164,168,164,78,4,80,4,25,162,8,162,185,176,168,176,250,169,232,169,82,4,84,4,185,172,168,172,249,182,232,182,25,182,8,182,185,184,168,184,153,190,136,190,57,191,40,191,217,189,200,189,57,190,40,190,121,190,104,190,25,191,8,191,249,197,232,197,249,205,232,205,89,206,185,216,168,216,185,210,168,210,185,212,168,212,232,168,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,168,169,168,200,56,169,80,187,104,187,112,169,104,169,112,169,224,169,132,217,144,187,80,200,144,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,187,100,104,4,178,100,36,5,251,101,37,5,242,101,255,5,186,80,255,5,186,132,255,5,185,160,255,5,186,168,255,5,185,208,255,5,168,64,72,4,177,100,104,4,168,100,36,5,241,101,37,5,232,101,255,5,168,80,255,5,168,132,255,5,168,160,255,5,168,168,255,5,168,208,255,5,249,66,255,5,232,66,255,5,26,83,255,5,8,83,255,5,250,134,255,5,232,134,255,5,249,162,255,5,232,162,255,5,250,170,255,5,232,170,255,1,3,0,69,0,52,0,61,0,79,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,88,10,0,32,1,0,32,0,93,10,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,76,11,0,32,7,0,0,0,21,0,0,0,78,11,0,0,78,11,0,0,3,0,0,0,0,0,0,0,93,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,138,220,38,0,12,3,60,0,60,0,2,3,38,0,68,0,60,0,100,0,122,0,60,0,60,0,60,0,68,0,122,0,60,0,60,0,60,0,68,0,90,0,60,0,86,2,60,0,60,0,60,0,137,1,38,0,69,0,60,0,91,2,60,0,60,0,60,0,144,1,38,0,70,0,60,0,146,1,60,0,60,0,60,0,145,1,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,60,0,99,2,60,0,60,0,60,0,148,1,38,0,72,0,60,0,120,0,60,0,60,0,60,0,88,0,38,0,75,0,60,0,107,0,112,0,60,0,60,0,60,0,75,0,112,0,60,0,60,0,60,0,75,0,80,0,38,0,78,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,79,0,60,0,84,2,60,0,60,0,60,0,134,1,38,0,84,0,60,0,116,0,115,0,60,0,60,0,60,0,84,0,115,0,60,0,60,0,60,0,84,0,83,0,38,0,86,0,60,0,139,2,60,0,60,0,60,0,178,1,0,0,170,170,170,170,170,170,170,170,146,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,30,0,0,164,30,0,0,164,30,0,0,164,30,0,0,116,35,0,0,116,35,0,0,136,38,0,0,222,38,0,0,122,43,0,0,50,105,114,84,1,0,64,8,221,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,109,0,117,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,48,0,56,0,152,0,160,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,182,0,189,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,204,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,176,0,48,0,48,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,180,1,192,0,192,0,232,1,32,2,192,0,96,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,37,0,202,97,37,0,202,130,37,0,202,163,37,0,202,196,37,0,202,229,37,0,202,6,38,0,202,39,38,0,202,72,38,0,202,105,38,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,201,0,0,0,156,5,0,50,156,5,0,52,201,64,6,0,156,5,0,56,156,5,0,58,156,5,0,60,201,224,9,0,156,5,0,64,156,5,0,66,201,192,12,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,201,64,22,0,156,5,0,82,156,5,0,84,160,5,0,86,134,5,2,57,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,201,96,32,0,5,5,0,50,5,5,0,52,201,160,35,0,5,5,0,56,5,5,0,58,5,5,0,60,201,128,37,0,5,5,0,64,5,5,0,66,201,0,39,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,201,32,44,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,2,57,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,145,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,36,0,196,160,156,46,196,138,156,50,196,136,156,50,196,145,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,145,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,145,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,145,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,36,0,196,138,5,42,196,136,5,42,196,145,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,37,0,196,160,5,46,196,138,5,50,196,136,5,50,196,145,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,145,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,145,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,145,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,46,196,145,5,46,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,54,196,145,5,54,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,56,196,145,5,56,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,60,196,145,5,60,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,69,5,5,3,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,156,78,196,145,5,78,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,145,160,86,196,145,5,86,196,145,156,90,196,145,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,71,192,0,0,0,192,0,0,0,134,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,134,5,2,53,5,5,2,53,192,0,0,0,134,5,3,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,85,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,71,192,0,0,0,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,85,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,145,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,24,0,197,130,24,0,197,194,24,0,197,2,25,0,192,0,0,0,192,0,0,0,196,145,156,92,196,145,5,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,25,0,197,163,25,0,197,3,26,0,197,99,26,0,197,195,26,0,197,35,27,0,197,131,27,0,197,227,27,0,197,67,28,0,197,163,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,29,0,197,99,29,0,197,195,29,0,197,35,30,0,197,131,30,0,197,227,30,0,197,67,31,0,197,163,31,0,197,3,32,0,197,99,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,32,0,197,35,33,0,197,131,33,0,197,227,33,0,197,67,34,0,197,163,34,0,197,3,35,0,197,99,35,0,197,195,35,0,197,35,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,224,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,49,5,136,0,0,70,5,2,49,5,136,0,0,135,5,2,49,5,156,0,0,70,5,2,49,5,156,0,0,135,5,2,49,5,144,0,0,70,5,2,49,5,144,0,0,135,5,2,49,5,145,0,0,70,5,2,49,5,145,0,0,135,5,2,49,5,196,0,0,70,5,2,49,5,196,0,0,135,5,2,49,5,210,0,0,70,5,2,49,5,210,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,196,0,0,70,5,2,55,5,196,0,0,135,5,2,55,5,210,0,0,70,5,2,55,5,210,0,0,135,5,2,63,5,136,0,0,70,5,2,63,5,136,0,0,135,5,2,63,5,156,0,0,70,5,2,63,5,156,0,0,135,5,2,69,5,136,0,0,70,5,2,69,5,136,0,0,70,5,2,69,5,150,0,0,135,5,2,69,5,145,0,0,70,5,2,69,5,145,0,0,135,5,2,69,5,150,0,0,135,5,2,69,5,164,0,0,70,5,2,69,5,164,0,0,135,5,2,69,5,156,0,0,70,5,2,69,5,156,0,0,70,5,2,69,5,146,0,0,135,5,2,69,5,138,0,0,70,5,2,69,5,138,0,0,135,5,2,69,5,196,0,0,70,5,2,69,5,196,0,0,135,5,2,69,5,182,0,0,70,5,2,69,5,182,0,0,135,5,2,69,5,154,0,0,70,5,2,69,5,154,0,0,135,5,2,81,5,136,0,0,70,5,2,81,5,136,0,0,135,5,2,81,5,145,0,0,70,5,2,81,5,145,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,202,0,0,70,5,2,81,5,202,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,5,196,0,0,70,5,2,81,5,196,0,0,135,5,2,81,5,136,0,0,5,156,0,0,70,5,2,81,5,136,0,0,5,156,0,0,135,5,2,81,5,144,0,0,5,156,0,0,70,5,2,81,5,144,0,0,5,156,0,0,135,5,2,81,5,196,0,0,5,156,0,0,70,5,2,81,5,196,0,0,5,156,0,0,5,5,2,49,5,136,0,0,5,5,2,49,5,156,0,0,5,5,2,49,5,144,0,0,5,5,2,49,5,145,0,0,5,5,2,49,5,196,0,0,5,5,2,49,5,210,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,196,0,0,5,5,2,55,5,210,0,0,5,5,2,63,5,136,0,0,5,5,2,63,5,156,0,0,5,5,2,69,5,136,0,0,5,5,2,69,5,150,0,0,5,5,2,69,5,145,0,0,5,5,2,69,5,164,0,0,5,5,2,69,5,156,0,0,5,5,2,69,5,146,0,0,5,5,2,69,5,138,0,0,5,5,2,69,5,196,0,0,5,5,2,69,5,182,0,0,5,5,2,69,5,154,0,0,5,5,2,81,5,136,0,0,5,5,2,81,5,145,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,202,0,0,5,5,2,81,5,156,0,0,5,5,2,81,5,196,0,0,5,5,2,81,5,136,0,0,5,156,0,0,5,5,2,81,5,144,0,0,5,156,0,0,5,5,2,81,5,196,0,0,5,156,0,0,134,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,134,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,156,5,0,42,5,145,0,0,5,136,0,0,5,5,0,42,5,145,0,0,5,136,0,0,156,5,0,42,5,145,0,0,5,138,0,0,5,5,0,42,5,145,0,0,5,138,0,0,156,5,0,42,5,145,0,0,5,182,0,0,5,5,0,42,5,145,0,0,5,182,0,0,156,5,0,42,5,145,0,0,5,154,0,0,5,5,0,42,5,145,0,0,5,154,0,0,156,5,0,42,5,196,0,0,5,145,0,0,5,5,0,42,5,196,0,0,5,145,0,0,156,5,0,50,5,145,0,0,5,136,0,0,5,5,0,50,5,145,0,0,5,136,0,0,156,5,0,50,5,145,0,0,5,138,0,0,5,5,0,50,5,145,0,0,5,138,0,0,156,5,0,50,5,145,0,0,5,182,0,0,5,5,0,50,5,145,0,0,5,182,0,0,156,5,0,50,5,145,0,0,5,154,0,0,5,5,0,50,5,145,0,0,5,154,0,0,156,5,0,50,5,196,0,0,5,145,0,0,5,5,0,50,5,196,0,0,5,145,0,0,156,5,0,70,5,145,0,0,5,136,0,0,5,5,0,70,5,145,0,0,5,136,0,0,156,5,0,70,5,145,0,0,5,138,0,0,5,5,0,70,5,145,0,0,5,138,0,0,156,5,0,70,5,145,0,0,5,182,0,0,5,5,0,70,5,145,0,0,5,182,0,0,156,5,0,70,5,145,0,0,5,154,0,0,5,5,0,70,5,145,0,0,5,154,0,0,156,5,0,70,5,196,0,0,5,145,0,0,5,5,0,70,5,196,0,0,5,145,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,48,156,5,13,0,126,1,23,0,146,30,12,0,146,30,2,192,197,34,147,30,2,192,197,98,148,30,2,192,197,162,149,30,2,192,197,226,126,1,1,192,197,98,144,30,1,192,197,162,145,30,1,192,197,226,122,1,12,0,122,1,0,192,197,98,123,1,0,192,197,162,124,1,0,192,197,226,125,1,1,192,197,34,90,0,2,241,135,5,122,0,2,241,70,5,121,1,197,162,0,54,156,5,7,0,4,30,12,0,4,30,3,192,197,162,5,30,3,192,197,226,6,30,4,192,197,34,7,30,4,192,197,98,66,0,2,247,135,5,98,0,2,247,70,5,2,30,3,192,197,34,3,30,3,192,197,98,0,62,156,5,5,0,85,30,9,0,85,30,4,192,197,226,86,30,5,192,197,34,87,30,5,192,197,98,80,0,2,255,135,5,112,0,2,255,70,5,84,30,4,192,197,162,0,68,156,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,9,192,197,162,248,30,9,192,197,226,249,30,10,192,197,34,244,30,8,192,197,226,245,30,9,192,197,34,246,30,9,192,197,98,142,30,7,192,197,162,143,30,7,192,197,226,153,30,8,192,197,34,242,30,8,192,197,98,243,30,8,192,197,162,118,1,15,0,118,1,6,192,197,98,119,1,6,192,197,162,120,1,6,192,197,226,50,2,7,192,197,34,51,2,7,192,197,98,89,0,255,255,2,69,135,5,121,0,255,255,2,69,70,5,221,0,5,192,197,162,253,0,5,192,197,226,255,0,6,192,197,34,0,80,156,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,15,192,197,3,104,30,15,192,197,99,105,30,15,192,197,195,100,30,13,192,197,227,101,30,14,192,197,67,102,30,14,192,197,163,25,2,12,192,197,162,96,30,12,192,197,226,97,30,13,192,197,34,98,30,13,192,197,98,99,30,13,192,197,162,93,1,20,0,96,1,9,0,96,1,11,192,197,226,97,1,12,192,197,34,24,2,12,192,197,98,93,1,11,192,197,34,94,1,11,192,197,98,95,1,11,192,197,162,83,0,255,255,2,81,135,5,115,0,255,255,2,81,70,5,90,1,10,192,197,98,91,1,10,192,197,162,92,1,10,192,197,226,0,48,5,5,6,0,126,1,12,0,126,1,16,192,197,162,145,30,16,192,197,226,147,30,17,192,197,34,149,30,17,192,197,98,122,0,2,241,5,5,122,1,16,192,197,34,124,1,16,192,197,98,0,54,5,5,3,0,98,0,2,247,5,5,3,30,17,192,197,162,5,30,17,192,197,226,7,30,18,192,197,34,0,62,5,5,2,0,112,0,2,255,5,5,85,30,18,192,197,98,87,30,18,192,197,162,0,68,5,5,10,0,143,30,20,0,245,30,9,0,245,30,20,192,197,162,247,30,20,192,197,226,249,30,21,192,197,34,143,30,19,192,197,226,153,30,20,192,197,34,243,30,20,192,197,98,121,0,255,255,2,69,5,5,253,0,18,192,197,226,255,0,19,192,197,34,119,1,19,192,197,98,51,2,19,192,197,162,0,80,5,5,10,0,25,2,20,0,101,30,9,0,101,30,23,192,197,35,103,30,23,192,197,131,105,30,23,192,197,227,25,2,22,192,197,98,97,30,22,192,197,162,99,30,22,192,197,226,115,0,255,255,2,81,5,5,91,1,21,192,197,98,93,1,21,192,197,162,95,1,21,192,197,226,97,1,22,192,197,34,42,0,66,0,67,0,80,0,81,0,83,0,84,0,89,0,91,0,98,0,99,0,112,0,113,0,115,0,116,0,121,0,123,0,221,0,222,0,253,0,254,0,255,0,0,1,90,1,98,1,118,1,127,1,24,2,26,2,50,2,52,2,2,30,8,30,84,30,88,30,96,30,106,30,142,30,150,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,26,4,186,76,185,80,44,4,185,92,186,100,186,108,50,4,185,120,185,124,56,4,185,140,185,144,185,148,185,156,186,160,74,4,185,176,185,180,185,184,185,96,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,96,4,168,76,168,80,106,4,168,92,168,100,168,108,110,4,168,120,168,124,114,4,168,140,168,144,168,148,168,156,168,160,124,4,168,176,168,180,168,184,168,96,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,25,58,153,58,89,58,57,58,0,8,249,66,186,77,154,77,26,78,90,78,186,101,154,101,26,102,90,102,217,68,154,130,185,141,153,141,25,142,153,142,89,142,136,14,217,142,185,177,153,177,25,178,89,178,153,189,185,196,2,8,168,57,136,57,8,58,136,58,72,58,40,58,4,8,232,66,168,77,136,77,8,78,72,78,168,101,136,101,8,102,72,102,200,68,136,130,168,141,136,141,8,142,136,142,72,142,128,14,200,142,168,177,136,177,8,178,72,178,136,189,168,196,72,190,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,25,66,8,66,185,66,168,66,249,65,232,65,249,69,232,69,89,71,72,71,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,250,77,232,77,25,86,8,86,217,85,200,85,185,86,168,86,249,86,232,86,25,94,8,94,89,95,72,95,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,26,110,8,110,249,114,232,114,168,152,153,121,136,121,249,122,232,122,249,121,232,121,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,250,129,232,129,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,157,136,157,249,158,232,158,249,157,232,157,154,161,136,161,26,162,8,162,250,162,232,162,250,161,232,161,249,166,232,166,249,165,232,165,185,172,168,172,153,178,136,178,57,179,40,179,217,177,200,177,57,178,40,178,121,178,104,178,25,179,8,179,25,186,8,186,25,190,8,190,89,190,153,193,136,193,185,194,168,194,249,193,232,193,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,160,169,160,200,56,169,76,187,100,187,108,169,100,169,108,169,200,169,128,217,140,187,76,200,140,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,68,90,4,186,72,122,4,177,72,121,5,154,73,122,5,145,73,123,5,186,74,124,5,177,74,125,5,250,73,126,5,241,73,255,5,185,84,66,4,186,88,98,4,177,88,255,5,185,112,80,4,186,116,112,4,177,116,255,5,186,128,89,4,186,132,121,4,177,132,221,4,154,133,253,4,145,133,255,4,81,134,118,5,26,134,119,5,17,134,120,5,90,134,255,5,185,164,83,4,186,168,115,4,177,168,90,5,154,169,91,5,145,169,92,5,26,170,93,5,17,170,94,5,250,170,95,5,241,170,96,5,250,169,97,5,241,169,255,5,168,68,122,4,168,72,122,5,136,73,124,5,168,74,126,5,232,73,255,5,168,84,98,4,168,88,255,5,168,112,112,4,168,116,255,5,168,128,121,4,168,132,253,4,136,133,255,4,72,134,119,5,8,134,255,5,168,164,115,4,168,168,91,5,136,169,93,5,8,170,95,5,232,170,97,5,232,169,255,1,170,170,3,0,69,0,52,0,61,0,95,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,69,11,0,32,1,0,32,0,74,11,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,132,0,0,32,7,0,0,0,21,0,0,0,134,0,0,0,134,0,0,0,3,0,0,0,0,0,0,0,40,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,114,0,101,0,107,0,93,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,14,0,0,0,0,0,0,96,199,255,96,96,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,0,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,125,0,0,32,1,0,32,0,130,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,149,15,0,32,7,0,0,0,21,0,0,0,151,15,0,0,151,15,0,0,3,0,0,0,0,0,0,0,70,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,92,220,38,0,65,0,60,0,42,0,39,0,32,0,39,0,45,0,39,0,47,0,39,0,60,0,42,0,48,0,45,0,39,0,64,0,39,0,60,0,42,0,65,0,66,0,67,0,68,0,69,0,70,0,71,0,72,0,73,0,74,0,75,0,76,0,77,0,78,0,79,0,80,0,81,0,82,0,83,0,84,0,85,0,86,0,87,0,88,0,89,0,90,0,60,0,42,0,39,0,91,0,39,0,45,0,39,0,96,0,39,0,60,0,42,0,97,0,98,0,99,0,100,0,101,0,102,0,103,0,104,0,105,0,106,0,107,0,108,0,109,0,110,0,111,0,112,0,113,0,114,0,115,0,116,0,117,0,118,0,119,0,120,0,121,0,122,0,60,0,42,0,39,0,123,0,39,0,45,0,39,0,127,0,39,0,0,0,170,170,170,170,24,61,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,0,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,34,0,0,84,34,0,0,252,51,0,0,252,51,0,0,228,60,0,0,228,60,0,0,252,60,0,0,252,60,0,0,252,60,0,0,50,105,114,84,1,0,64,8,24,1,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,125,0,133,0,141,0,149,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,154,0,162,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,194,0,202,0,210,0,218,0,226,0,234,0,242,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,249,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,178,0,48,0,48,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,244,1,52,2,192,0,192,0,192,0,192,0,104,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,2,43,5,5,3,43,5,5,4,43,193,2,5,43,193,3,5,43,193,4,5,43,193,5,5,43,193,6,5,43,193,7,5,43,193,8,5,43,193,9,5,43,193,10,5,43,193,11,5,43,193,12,5,43,193,13,5,43,193,14,5,43,202,0,70,0,202,33,70,0,202,66,70,0,202,99,70,0,202,132,70,0,202,165,70,0,202,198,70,0,202,231,70,0,202,8,71,0,202,41,71,0,193,25,5,43,193,26,5,43,193,27,5,43,193,28,5,43,193,29,5,43,193,30,5,43,193,31,5,43,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,198,33,1,0,198,65,1,0,198,97,1,0,198,129,1,0,198,161,1,0,198,193,1,0,198,225,1,0,198,1,2,0,198,33,2,0,198,65,2,0,198,97,2,0,198,129,2,0,198,161,2,0,198,193,2,0,198,225,2,0,198,1,3,0,198,33,3,0,193,58,5,43,193,59,5,43,193,60,5,43,193,61,5,43,193,62,5,43,193,63,5,43,193,64,5,43,193,65,5,43,193,66,5,43,193,67,5,43,193,68,5,43,193,69,5,43,193,70,5,43,193,71,5,43,193,72,5,43,193,73,5,43,193,74,5,43,193,75,5,43,193,76,5,43,193,77,5,43,193,78,5,43,193,79,5,43,193,80,5,43,193,81,5,43,193,82,5,43,193,83,5,43,193,84,5,43,193,85,5,43,193,86,5,43,193,87,5,43,193,88,5,43,193,89,5,43,193,90,5,43,193,91,5,43,193,92,5,43,193,93,5,43,193,94,5,43,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,3,0,198,130,3,0,198,194,3,0,198,2,4,0,198,66,4,0,198,130,4,0,197,66,69,0,198,194,4,0,198,2,5,0,198,66,5,0,198,130,5,0,198,194,5,0,198,2,6,0,198,66,6,0,198,130,6,0,198,194,6,0,160,112,0,48,198,2,7,0,198,66,7,0,198,130,7,0,198,194,7,0,198,2,8,0,198,66,8,0,5,5,127,12,196,158,156,70,198,130,8,0,198,194,8,0,198,2,9,0,198,66,9,0,198,130,9,0,160,5,38,93,197,130,69,0,197,34,0,0,197,98,0,0,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,197,194,69,0,197,162,1,0,197,226,1,0,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,197,34,3,0,197,98,3,0,197,162,3,0,5,112,0,48,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,5,5,125,12,196,158,5,70,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,5,5,38,93,197,162,6,0,198,194,9,0,197,226,6,0,198,2,10,0,197,34,7,0,198,66,10,0,197,98,7,0,198,130,10,0,197,162,7,0,198,194,10,0,197,226,7,0,198,2,11,0,197,34,8,0,198,66,11,0,197,98,8,0,198,130,11,0,197,162,8,0,192,0,0,0,192,0,0,0,198,194,11,0,197,226,8,0,198,2,12,0,197,34,9,0,198,66,12,0,197,98,9,0,198,130,12,0,197,162,9,0,198,194,12,0,197,226,9,0,198,2,13,0,197,34,10,0,198,66,13,0,197,98,10,0,198,130,13,0,197,162,10,0,198,194,13,0,197,226,10,0,198,2,14,0,197,34,11,0,192,0,0,0,192,0,0,0,198,66,14,0,197,98,11,0,198,130,14,0,197,162,11,0,198,194,14,0,197,226,11,0,198,2,15,0,197,34,12,0,198,66,15,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,15,0,197,98,12,0,198,194,15,0,197,162,12,0,192,0,0,0,198,2,16,0,197,226,12,0,198,66,16,0,197,34,13,0,198,130,16,0,197,98,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,16,0,197,162,13,0,198,2,17,0,197,226,13,0,198,66,17,0,197,34,14,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,17,0,197,98,14,0,198,194,17,0,197,162,14,0,198,2,18,0,197,226,14,0,192,0,0,0,192,0,0,0,198,66,18,0,197,34,15,0,198,130,18,0,197,98,15,0,198,194,18,0,197,162,15,0,198,2,19,0,197,226,15,0,198,66,19,0,197,34,16,0,198,130,19,0,197,98,16,0,198,194,19,0,197,162,16,0,198,2,20,0,197,226,16,0,198,66,20,0,197,34,17,0,192,0,0,0,192,0,0,0,198,130,20,0,197,98,17,0,198,194,20,0,197,162,17,0,198,2,21,0,197,226,17,0,198,66,21,0,197,34,18,0,198,130,21,0,197,98,18,0,198,194,21,0,197,162,18,0,198,2,22,0,197,226,18,0,198,66,22,0,197,34,19,0,198,130,22,0,198,194,22,0,197,98,19,0,198,2,23,0,197,162,19,0,198,66,23,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,23,0,197,34,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,23,0,197,98,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,24,0,197,162,20,0,198,66,24,0,197,226,20,0,198,130,24,0,197,34,21,0,198,194,24,0,197,98,21,0,198,3,25,0,197,163,21,0,198,99,25,0,197,3,22,0,198,195,25,0,197,99,22,0,198,35,26,0,197,195,22,0,192,0,0,0,198,131,26,0,197,35,23,0,198,227,26,0,197,131,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,27,0,197,226,23,0,198,130,27,0,197,34,24,0,198,194,27,0,197,98,24,0,198,3,28,0,197,163,24,0,192,0,0,0,192,0,0,0,197,2,25,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,28,0,197,66,25,0,192,0,0,0,192,0,0,0,198,162,28,0,197,130,25,0,198,227,28,0,197,195,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,29,0,197,34,26,0,198,130,29,0,197,98,26,0,198,194,29,0,197,162,26,0,198,2,30,0,197,226,26,0,198,66,30,0,197,34,27,0,198,130,30,0,197,98,27,0,198,194,30,0,197,162,27,0,198,2,31,0,197,226,27,0,198,66,31,0,197,34,28,0,198,130,31,0,197,98,28,0,198,194,31,0,197,162,28,0,198,2,32,0,197,226,28,0,198,66,32,0,197,34,29,0,198,130,32,0,197,98,29,0,192,0,0,0,192,0,0,0,198,194,32,0,197,162,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,201,198,0,0,198,2,33,0,197,226,29,0,198,67,33,0,197,35,30,0,198,163,33,0,197,131,30,0,198,2,34,0,197,226,30,0,198,67,34,0,197,35,31,0,198,162,34,0,197,130,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,26,5,43,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,34,0,197,194,31,0,198,34,35,0,197,2,32,0,198,98,35,0,197,66,32,0,198,162,35,0,197,130,32,0,198,227,35,0,197,195,32,0,198,66,36,0,197,34,33,0,198,130,36,0,197,98,33,0,198,194,36,0,197,162,33,0,198,2,37,0,197,226,33,0,198,66,37,0,197,34,34,0,198,131,37,0,197,99,34,0,198,227,37,0,197,195,34,0,198,66,38,0,197,34,35,0,198,130,38,0,197,98,35,0,198,195,38,0,197,163,35,0,198,34,39,0,197,2,36,0,198,98,39,0,197,66,36,0,198,162,39,0,197,130,36,0,198,226,39,0,197,194,36,0,198,34,40,0,197,2,37,0,198,98,40,0,197,66,37,0,198,162,40,0,197,130,37,0,198,226,40,0,197,194,37,0,198,35,41,0,197,3,38,0,198,130,41,0,197,98,38,0,198,194,41,0,197,162,38,0,198,2,42,0,197,226,38,0,198,66,42,0,197,34,39,0,198,131,42,0,197,99,39,0,198,226,42,0,197,194,39,0,198,34,43,0,197,2,40,0,198,98,43,0,197,66,40,0,198,162,43,0,197,130,40,0,198,226,43,0,197,194,40,0,198,34,44,0,197,2,41,0,198,98,44,0,197,66,41,0,198,162,44,0,197,130,41,0,198,226,44,0,197,194,41,0,198,35,45,0,197,3,42,0,198,131,45,0,197,99,42,0,198,227,45,0,197,195,42,0,198,67,46,0,197,35,43,0,198,162,46,0,197,130,43,0,198,226,46,0,197,194,43,0,198,34,47,0,197,2,44,0,198,98,47,0,197,66,44,0,198,163,47,0,197,131,44,0,198,2,48,0,197,226,44,0,198,66,48,0,197,34,45,0,198,130,48,0,197,98,45,0,198,195,48,0,197,163,45,0,198,35,49,0,197,3,46,0,198,131,49,0,197,99,46,0,198,226,49,0,197,194,46,0,198,34,50,0,197,2,47,0,198,98,50,0,197,66,47,0,198,162,50,0,197,130,47,0,198,226,50,0,197,194,47,0,198,34,51,0,197,2,48,0,198,98,51,0,197,66,48,0,198,163,51,0,197,131,48,0,198,3,52,0,197,227,48,0,198,98,52,0,197,66,49,0,198,162,52,0,197,130,49,0,198,226,52,0,197,194,49,0,198,34,53,0,197,2,50,0,198,98,53,0,197,66,50,0,198,162,53,0,197,130,50,0,198,226,53,0,197,194,50,0,198,34,54,0,197,2,51,0,198,98,54,0,197,66,51,0,198,162,54,0,197,130,51,0,198,226,54,0,197,194,51,0,198,34,55,0,197,2,52,0,198,98,55,0,197,66,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,55,0,197,130,53,0,198,226,55,0,197,194,53,0,198,35,56,0,197,3,54,0,198,131,56,0,197,99,54,0,198,227,56,0,197,195,54,0,198,67,57,0,197,35,55,0,198,163,57,0,197,131,55,0,198,3,58,0,197,227,55,0,198,99,58,0,197,67,56,0,198,195,58,0,197,163,56,0,198,35,59,0,197,3,57,0,198,131,59,0,197,99,57,0,198,226,59,0,197,194,57,0,198,34,60,0,197,2,58,0,198,98,60,0,197,66,58,0,198,163,60,0,197,131,58,0,198,3,61,0,197,227,58,0,198,99,61,0,197,67,59,0,198,195,61,0,197,163,59,0,198,35,62,0,197,3,60,0,198,130,62,0,197,98,60,0,198,194,62,0,197,162,60,0,198,2,63,0,197,226,60,0,198,66,63,0,197,34,61,0,198,131,63,0,197,99,61,0,198,227,63,0,197,195,61,0,198,67,64,0,197,35,62,0,198,163,64,0,197,131,62,0,198,3,65,0,197,227,62,0,198,99,65,0,197,67,63,0,198,195,65,0,197,163,63,0,198,35,66,0,197,3,64,0,198,131,66,0,197,99,64,0,198,227,66,0,197,195,64,0,198,66,67,0,197,34,65,0,198,130,67,0,197,98,65,0,198,195,67,0,197,163,65,0,198,35,68,0,197,3,66,0,198,131,68,0,197,99,66,0,198,227,68,0,197,195,66,0,198,67,69,0,197,35,67,0,198,162,69,0,197,130,67,0,198,226,69,0,197,194,67,0,198,34,70,0,197,2,68,0,198,98,70,0,197,66,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,63,5,43,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,1,0,198,130,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,68,0,197,2,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,133,0,5,0,32,5,43,0,133,0,5,0,33,5,43,0,133,0,5,0,34,5,43,0,133,0,5,0,35,5,43,0,133,0,5,0,36,5,43,0,133,0,5,0,37,5,43,0,133,0,5,0,38,5,43,0,133,0,5,0,39,5,43,0,133,0,5,0,40,5,43,0,133,0,5,0,41,5,43,0,133,0,5,0,42,5,43,0,133,0,5,0,43,5,43,0,133,0,5,0,44,5,43,0,133,0,5,0,45,5,43,0,133,0,5,0,46,5,43,0,133,0,5,0,47,5,43,0,133,0,5,0,48,5,43,0,133,0,5,0,49,5,43,0,133,0,5,0,50,5,43,0,133,0,5,0,51,5,43,0,133,0,5,0,52,5,43,0,133,0,5,0,53,5,43,0,133,0,5,0,54,5,43,0,133,0,5,0,55,5,43,0,133,0,5,0,56,5,43,0,133,0,5,0,57,5,43,0,133,0,5,0,32,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,146,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,41,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,152,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,140,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,146,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,152,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,144,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,150,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,162,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,162,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,184,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,188,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,202,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,202,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,144,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,200,0,0,0,0,0,133,0,5,0,33,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,33,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,33,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,34,5,43,0,5,0,160,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,35,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,164,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,164,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,208,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,160,0,0,0,0,0,5,0,140,0,0,0,0,0,133,0,5,0,37,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,38,5,43,0,5,0,164,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,160,0,0,0,0,0,133,0,5,0,39,5,43,0,5,0,206,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,208,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,150,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,42,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,196,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,43,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,44,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,44,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,44,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,45,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,154,0,0,0,0,0,5,0,150,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,164,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,164,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,47,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,47,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,196,0,0,0,0,0,5,0,164,0,0,0,0,0,133,0,5,0,49,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,133,0,5,0,50,5,43,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,51,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,198,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,208,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,204,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,154,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,164,0,0,0,0,0,5,0,150,0,0,0,0,0,133,0,5,0,53,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,53,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,136,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,54,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,55,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,55,5,43,0,5,0,150,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,156,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,142,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,57,5,43,0,5,0,210,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,32,5,43,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,154,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,36,5,43,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,40,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,46,5,43,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,136,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,138,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,182,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,154,0,0,0,0,0,133,0,5,0,52,5,43,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,138,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,196,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,182,0,0,0,0,0,133,0,5,0,56,5,43,0,5,0,154,0,0,0,0,0,0,0,0,193,64,5,43,5,138,0,0,193,64,5,43,5,136,0,0,193,64,5,43,5,142,0,0,193,64,5,43,5,154,0,0,193,64,5,43,5,150,0,0,193,64,5,43,5,146,0,0,193,66,5,43,5,160,0,0,193,68,5,43,5,138,0,0,193,68,5,43,5,136,0,0,193,68,5,43,5,142,0,0,193,68,5,43,5,150,0,0,193,72,5,43,5,138,0,0,193,72,5,43,5,136,0,0,193,72,5,43,5,142,0,0,193,72,5,43,5,150,0,0,193,77,5,43,5,154,0,0,193,78,5,43,5,138,0,0,193,78,5,43,5,136,0,0,193,78,5,43,5,142,0,0,193,78,5,43,5,154,0,0,193,78,5,43,5,150,0,0,193,84,5,43,5,138,0,0,193,84,5,43,5,136,0,0,193,84,5,43,5,142,0,0,193,84,5,43,5,150,0,0,193,88,5,43,5,136,0,0,193,88,5,43,5,150,0,0,193,64,5,43,5,164,0,0,193,64,5,43,5,140,0,0,193,64,5,43,5,162,0,0,193,66,5,43,5,136,0,0,193,66,5,43,5,142,0,0,193,66,5,43,5,156,0,0,193,66,5,43,5,144,0,0,193,67,5,43,5,144,0,0,193,68,5,43,5,164,0,0,193,68,5,43,5,140,0,0,193,68,5,43,5,156,0,0,193,68,5,43,5,162,0,0,193,68,5,43,5,144,0,0,193,70,5,43,5,142,0,0,193,70,5,43,5,140,0,0,193,70,5,43,5,156,0,0,193,70,5,43,5,160,0,0,193,71,5,43,5,142,0,0,193,72,5,43,5,154,0,0,193,72,5,43,5,164,0,0,193,72,5,43,5,140,0,0,193,72,5,43,5,162,0,0,193,73,5,43,5,142,0,0,193,74,5,43,5,160,0,0,193,75,5,43,5,136,0,0,193,75,5,43,5,160,0,0,193,75,5,43,5,144,0,0,193,77,5,43,5,136,0,0,193,77,5,43,5,160,0,0,193,77,5,43,5,144,0,0,193,78,5,43,5,164,0,0,193,78,5,43,5,140,0,0,193,78,5,43,5,152,0,0,193,81,5,43,5,136,0,0,193,81,5,43,5,160,0,0,193,81,5,43,5,144,0,0,193,82,5,43,5,136,0,0,193,82,5,43,5,142,0,0,193,82,5,43,5,160,0,0,193,82,5,43,5,144,0,0,193,83,5,43,5,160,0,0,193,83,5,43,5,144,0,0,193,84,5,43,5,154,0,0,193,84,5,43,5,164,0,0,193,84,5,43,5,140,0,0,193,84,5,43,5,146,0,0,193,84,5,43,5,152,0,0,193,84,5,43,5,162,0,0,193,86,5,43,5,142,0,0,193,88,5,43,5,142,0,0,193,89,5,43,5,136,0,0,193,89,5,43,5,156,0,0,193,89,5,43,5,144,0,0,193,78,5,43,5,190,0,0,193,84,5,43,5,190,0,0,193,64,5,43,5,144,0,0,193,72,5,43,5,144,0,0,193,78,5,43,5,144,0,0,193,84,5,43,5,144,0,0,193,84,5,43,5,150,0,0,5,164,0,0,193,84,5,43,5,150,0,0,5,136,0,0,193,84,5,43,5,150,0,0,5,144,0,0,193,84,5,43,5,150,0,0,5,138,0,0,193,64,5,43,5,150,0,0,5,164,0,0,193,64,5,43,5,156,0,0,5,164,0,0,193,70,5,43,5,144,0,0,193,74,5,43,5,144,0,0,193,78,5,43,5,162,0,0,193,78,5,43,5,162,0,0,5,164,0,0,193,73,5,43,5,144,0,0,193,70,5,43,5,136,0,0,193,77,5,43,5,138,0,0,193,64,5,43,5,146,0,0,5,136,0,0,193,64,5,43,5,184,0,0,193,64,5,43,5,188,0,0,193,68,5,43,5,184,0,0,193,68,5,43,5,188,0,0,193,72,5,43,5,184,0,0,193,72,5,43,5,188,0,0,193,78,5,43,5,184,0,0,193,78,5,43,5,188,0,0,193,81,5,43,5,184,0,0,193,81,5,43,5,188,0,0,193,84,5,43,5,184,0,0,193,84,5,43,5,188,0,0,193,82,5,43,5,202,0,0,193,83,5,43,5,202,0,0,193,71,5,43,5,144,0,0,193,68,5,43,5,160,0,0,193,78,5,43,5,150,0,0,5,164,0,0,193,78,5,43,5,154,0,0,5,164,0,0,193,78,5,43,5,156,0,0,193,78,5,43,5,156,0,0,5,164,0,0,193,88,5,43,5,164,0,0,193,64,5,43,5,200,0,0,193,65,5,43,5,156,0,0,193,65,5,43,5,196,0,0,193,65,5,43,5,210,0,0,193,66,5,43,5,160,0,0,5,136,0,0,193,67,5,43,5,156,0,0,193,67,5,43,5,196,0,0,193,67,5,43,5,210,0,0,193,67,5,43,5,160,0,0,193,67,5,43,5,204,0,0,193,68,5,43,5,164,0,0,5,138,0,0,193,68,5,43,5,164,0,0,5,136,0,0,193,68,5,43,5,204,0,0,193,68,5,43,5,208,0,0,193,68,5,43,5,160,0,0,5,140,0,0,193,69,5,43,5,156,0,0,193,70,5,43,5,164,0,0,193,71,5,43,5,156,0,0,193,71,5,43,5,196,0,0,193,71,5,43,5,150,0,0,193,71,5,43,5,160,0,0,193,71,5,43,5,206,0,0,193,72,5,43,5,208,0,0,193,72,5,43,5,150,0,0,5,136,0,0,193,74,5,43,5,136,0,0,193,74,5,43,5,196,0,0,193,74,5,43,5,210,0,0,193,75,5,43,5,196,0,0,193,75,5,43,5,196,0,0,5,164,0,0,193,75,5,43,5,210,0,0,193,75,5,43,5,204,0,0,193,76,5,43,5,136,0,0,193,76,5,43,5,156,0,0,193,76,5,43,5,196,0,0,193,77,5,43,5,156,0,0,193,77,5,43,5,196,0,0,193,77,5,43,5,210,0,0,193,77,5,43,5,204,0,0,193,78,5,43,5,154,0,0,5,136,0,0,193,78,5,43,5,154,0,0,5,150,0,0,193,78,5,43,5,164,0,0,5,138,0,0,193,78,5,43,5,164,0,0,5,136,0,0,193,79,5,43,5,136,0,0,193,79,5,43,5,156,0,0,193,81,5,43,5,156,0,0,193,81,5,43,5,196,0,0,193,81,5,43,5,196,0,0,5,164,0,0,193,81,5,43,5,210,0,0,193,82,5,43,5,156,0,0,193,82,5,43,5,196,0,0,193,82,5,43,5,136,0,0,5,156,0,0,193,82,5,43,5,144,0,0,5,156,0,0,193,82,5,43,5,196,0,0,5,156,0,0,193,83,5,43,5,156,0,0,193,83,5,43,5,196,0,0,193,83,5,43,5,210,0,0,193,83,5,43,5,204,0,0,193,84,5,43,5,198,0,0,193,84,5,43,5,208,0,0,193,84,5,43,5,204,0,0,193,84,5,43,5,154,0,0,5,136,0,0,193,84,5,43,5,164,0,0,5,150,0,0,193,85,5,43,5,154,0,0,193,85,5,43,5,196,0,0,193,86,5,43,5,138,0,0,193,86,5,43,5,136,0,0,193,86,5,43,5,150,0,0,193,86,5,43,5,156,0,0,193,86,5,43,5,196,0,0,193,87,5,43,5,156,0,0,193,87,5,43,5,150,0,0,193,88,5,43,5,156,0,0,193,89,5,43,5,142,0,0,193,89,5,43,5,196,0,0,193,89,5,43,5,210,0,0,193,71,5,43,5,210,0,0,193,83,5,43,5,150,0,0,193,86,5,43,5,146,0,0,193,88,5,43,5,146,0,0,193,64,5,43,5,196,0,0,193,64,5,43,5,182,0,0,193,64,5,43,5,142,0,0,5,136,0,0,193,64,5,43,5,142,0,0,5,138,0,0,193,64,5,43,5,142,0,0,5,182,0,0,193,64,5,43,5,142,0,0,5,154,0,0,193,64,5,43,5,196,0,0,5,142,0,0,193,64,5,43,5,140,0,0,5,136,0,0,193,64,5,43,5,140,0,0,5,138,0,0,193,64,5,43,5,140,0,0,5,182,0,0,193,64,5,43,5,140,0,0,5,154,0,0,193,64,5,43,5,196,0,0,5,140,0,0,193,68,5,43,5,196,0,0,193,68,5,43,5,182,0,0,193,68,5,43,5,154,0,0,193,68,5,43,5,142,0,0,5,136,0,0,193,68,5,43,5,142,0,0,5,138,0,0,193,68,5,43,5,142,0,0,5,182,0,0,193,68,5,43,5,142,0,0,5,154,0,0,193,68,5,43,5,196,0,0,5,142,0,0,193,72,5,43,5,182,0,0,193,72,5,43,5,196,0,0,193,78,5,43,5,196,0,0,193,78,5,43,5,182,0,0,193,78,5,43,5,142,0,0,5,136,0,0,193,78,5,43,5,142,0,0,5,138,0,0,193,78,5,43,5,142,0,0,5,182,0,0,193,78,5,43,5,142,0,0,5,154,0,0,193,78,5,43,5,196,0,0,5,142,0,0,193,78,5,43,5,190,0,0,5,136,0,0,193,78,5,43,5,190,0,0,5,138,0,0,193,78,5,43,5,190,0,0,5,182,0,0,193,78,5,43,5,190,0,0,5,154,0,0,193,78,5,43,5,190,0,0,5,196,0,0,193,84,5,43,5,196,0,0,193,84,5,43,5,182,0,0,193,84,5,43,5,190,0,0,5,136,0,0,193,84,5,43,5,190,0,0,5,138,0,0,193,84,5,43,5,190,0,0,5,182,0,0,193,84,5,43,5,190,0,0,5,154,0,0,193,84,5,43,5,190,0,0,5,196,0,0,193,88,5,43,5,138,0,0,193,88,5,43,5,196,0,0,193,88,5,43,5,182,0,0,193,88,5,43,5,154,0,0,193,28,5,43,5,158,0,0,193,27,5,43,5,158,0,0,193,29,5,43,5,158,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,193,15,5,43,193,16,5,43,193,17,5,43,193,18,5,43,193,19,5,43,193,20,5,43,193,21,5,43,193,22,5,43,193,23,5,43,193,24,5,43,26,0,198,226,48,0,4,3,26,192,198,227,23,0,197,130,48,0,4,3,23,192,197,131,3,0,69,0,52,0,61,0,71,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,142,15,0,32,1,0,32,0,147,15,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,72,9,0,32,7,0,0,0,21,0,0,0,74,9,0,0,74,9,0,0,3,0,0,0,0,0,0,0,48,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,48,220,38,0,67,0,60,0,9,1,60,0,60,0,60,0,8,1,38,0,71,0,60,0,29,1,60,0,60,0,60,0,28,1,38,0,72,0,60,0,37,1,60,0,60,0,60,0,36,1,38,0,74,0,60,0,53,1,60,0,60,0,60,0,52,1,38,0,83,0,60,0,93,1,60,0,60,0,60,0,92,1,38,0,85,0,60,0,109,1,60,0,60,0,60,0,108,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,50,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,28,0,0,164,28,0,0,164,28,0,0,164,28,0,0,0,30,0,0,0,30,0,0,10,32,0,0,10,32,0,0,26,36,0,0,50,105,114,84,1,0,64,8,189,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,107,0,115,0,48,0,56,0,120,0,128,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,151,0,48,0,159,0,165,0,48,0,48,0,172,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,144,0,48,0,48,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,172,1,192,0,224,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,9,0,202,193,9,0,202,226,9,0,202,3,10,0,202,36,10,0,202,69,10,0,202,102,10,0,202,135,10,0,202,168,10,0,202,201,10,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,201,134,1,0,156,5,0,58,201,70,2,0,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,3,0,156,5,0,80,201,230,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,4,0,5,5,0,48,5,5,0,50,5,5,0,52,201,134,5,0,201,70,6,0,5,5,0,58,201,6,7,0,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,7,0,5,5,0,80,201,166,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,8,0,201,134,9,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,9,0,201,38,10,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,201,166,11,0,134,5,2,57,5,5,2,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,61,5,5,2,61,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,201,102,12,0,201,38,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,13,0,201,166,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,15,0,201,38,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,16,0,201,166,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,18,0,201,38,19,0,192,0,0,0,192,0,0,0,201,230,19,0,201,166,20,0,201,102,21,0,201,38,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,22,0,201,166,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,24,0,201,38,25,0,201,230,25,0,201,166,26,0,201,102,27,0,201,38,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,29,0,201,102,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,31,0,201,230,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,134,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,134,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,5,5,2,57,5,210,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,2,3,2,239,134,5,0,54,156,5,48,0,2,3,2,247,134,5,0,56,156,5,48,0,2,3,2,249,134,5,0,60,156,5,48,0,2,3,2,253,134,5,0,78,156,5,48,0,2,3,255,255,2,79,134,5,0,82,156,5,48,0,6,3,255,255,2,83,134,5,0,46,5,5,48,0,2,3,2,239,5,5,0,54,5,5,48,0,2,3,2,247,5,5,0,56,5,5,48,0,2,3,2,249,5,5,0,60,5,5,48,0,2,3,2,253,5,5,0,78,5,5,48,0,2,3,255,255,2,79,5,5,0,82,5,5,48,0,6,3,255,255,2,83,5,5,156,46,196,160,48,0,2,3,197,162,5,46,196,160,48,0,2,3,0,192,197,98,156,54,196,160,48,0,2,3,0,192,197,162,5,54,196,160,48,0,2,3,0,192,197,226,156,78,196,160,48,0,2,3,1,192,197,34,5,78,196,160,48,0,2,3,1,192,197,98,156,82,196,162,48,0,6,3,1,192,197,162,5,82,196,162,48,0,6,3,1,192,197,226,156,82,196,190,48,0,6,3,2,192,197,34,5,82,196,190,48,0,6,3,2,192,197,98,156,78,196,202,48,0,2,3,2,192,197,162,5,78,196,202,48,0,2,3,2,192,197,226,156,56,196,196,48,0,2,3,3,192,197,34,5,56,196,196,48,0,2,3,3,192,197,98,156,56,196,160,48,0,2,3,3,192,197,162,5,56,196,160,48,0,2,3,3,192,197,226,156,56,196,206,48,0,2,3,4,192,197,34,5,56,196,206,48,0,2,3,4,192,197,98,156,78,196,196,48,0,2,3,4,192,197,162,5,78,196,196,48,0,2,3,4,192,197,226,156,82,196,198,48,0,6,3,5,192,197,34,5,82,196,198,48,0,6,3,5,192,197,98,156,82,196,208,48,0,6,3,5,192,197,162,5,82,196,208,48,0,6,3,5,192,197,226,156,82,196,204,48,0,6,3,6,192,197,34,5,82,196,204,48,0,6,3,6,192,197,98,5,56,196,210,48,0,2,3,6,192,197,162,156,82,196,196,48,0,6,3,6,192,197,226,5,82,196,196,48,0,6,3,7,192,197,34,7,0,197,99,48,0,6,3,7,192,197,195,8,0,197,35,48,0,6,3,8,192,197,131,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,30,4,186,100,32,4,185,116,185,120,185,124,186,128,185,136,185,140,185,144,185,152,34,4,185,164,36,4,185,180,185,184,185,188,185,192,185,196,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,40,4,42,4,168,100,44,4,168,116,168,120,168,124,168,128,168,136,168,140,168,144,168,152,46,4,168,164,48,4,168,180,168,184,168,188,168,192,168,196,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,50,4,186,77,154,77,250,77,90,78,186,101,154,101,250,101,90,102,217,72,154,130,185,137,153,137,249,137,153,138,89,138,136,14,217,138,185,173,153,173,249,173,89,174,153,193,185,200,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,52,4,168,77,136,77,232,77,72,78,168,101,136,101,232,101,72,102,200,72,136,130,168,137,136,137,232,137,136,138,72,138,128,14,200,138,168,173,136,173,232,173,72,174,136,193,168,200,72,194,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,185,68,168,68,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,185,88,168,88,217,85,200,85,185,86,168,86,54,4,56,4,185,96,168,96,89,95,72,95,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,185,112,168,112,249,118,232,118,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,185,160,168,160,58,4,60,4,26,158,8,158,249,166,232,166,25,166,8,166,185,168,168,168,153,174,136,174,57,175,40,175,185,176,168,176,57,174,40,174,121,174,104,174,62,4,64,4,249,185,232,185,249,193,232,193,89,194,153,197,136,197,185,198,168,198,25,198,8,198,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,156,169,156,200,56,169,76,187,100,187,108,169,100,169,108,169,204,169,128,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,92,255,5,186,108,255,5,186,156,255,5,185,172,255,5,168,64,255,5,168,84,255,5,168,92,255,5,168,108,255,5,168,156,255,5,168,172,255,5,249,66,255,5,232,66,255,5,249,86,255,5,232,86,255,5,250,158,255,5,232,158,255,5,25,175,255,5,8,175,255,1,170,170,3,0,69,0,52,0,61,0,51,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,65,9,0,32,1,0,32,0,70,9,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,6,25,0,32,7,0,0,0,26,0,0,0,8,25,0,0,8,25,0,0,3,0,0,0,0,0,0,0,66,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,116,114,97,100,105,116,105,111,110,97,108,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,78,0,60,0,110,0,3,3,60,0,60,0,60,0,78,0,3,3,0,0,38,0,78,0,60,0,110,0,3,3,60,0,60,0,60,0,78,0,3,3,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,108,0,60,0,108,0,108,0,60,0,60,0,60,0,76,0,108,0,60,0,60,0,60,0,76,0,76,0,0,0,170,170,170,170,212,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,77,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,32,0,0,148,32,0,0,148,32,0,0,148,32,0,0,252,34,0,0,252,34,0,0,188,35,0,0,188,35,0,0,188,35,0,0,50,105,114,84,1,0,64,8,252,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,84,0,92,0,98,0,106,0,114,0,122,0,48,0,56,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,154,0,48,0,48,0,48,0,162,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,170,0,48,0,48,0,178,0,48,0,184,0,192,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,195,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,144,0,48,0,48,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,229,0,48,0,48,0,235,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,1,136,1,200,1,192,0,228,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,18,0,202,33,18,0,202,66,18,0,202,99,18,0,202,132,18,0,202,165,18,0,202,198,18,0,202,231,18,0,202,8,19,0,202,41,19,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,198,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,166,1,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,8,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,9,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,2,0,201,38,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,3,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,5,0,5,71,238,102,201,166,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,197,226,2,0,197,35,3,0,197,130,3,0,192,0,0,0,192,0,0,0,197,194,3,0,197,3,4,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,7,0,201,70,8,0,201,6,9,0,201,198,9,0,201,134,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,0,0,5,5,10,121,5,5,12,121,197,226,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,197,162,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,1,0,5,5,107,121,197,34,2,0,5,5,111,121,197,98,2,0,5,5,115,121,197,162,2,0,5,5,119,121,197,226,2,0,197,35,3,0,197,130,3,0,5,5,127,121,5,5,129,121,197,194,3,0,197,3,4,0,197,98,4,0,5,5,137,121,5,5,139,121,197,162,4,0,5,5,143,121,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,68,196,196,48,0,3,3,7,192,197,98,5,68,196,196,48,0,3,3,7,192,197,162,156,68,196,210,48,0,3,3,7,192,197,226,5,68,196,210,48,0,3,3,8,192,197,34,156,68,196,204,48,0,3,3,8,192,197,98,5,68,196,204,48,0,3,3,8,192,197,162,3,0,67,0,50,0,59,0,67,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,186,29,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,88,25,0,0,88,25,0,0,210,25,0,0,210,25,0,0,162,29,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,2,0,202,1,3,0,202,34,3,0,202,67,3,0,202,100,3,0,202,133,3,0,202,166,3,0,202,199,3,0,202,232,3,0,202,9,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,6,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,230,0,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,2,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,2,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,201,102,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,3,0,201,230,3,0,201,166,4,0,201,102,5,0,201,38,6,0,201,230,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,156,68,196,196,48,0,3,3,0,192,197,162,5,68,196,196,48,0,3,3,0,192,197,226,156,68,196,210,48,0,3,3,1,192,197,34,5,68,196,210,48,0,3,3,1,192,197,98,156,68,196,204,48,0,3,3,1,192,197,162,5,68,196,204,48,0,3,3,1,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,124,185,128,185,132,185,140,186,144,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,28,4,168,124,168,128,168,132,168,140,168,144,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,136,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,30,4,32,4,26,114,8,114,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,250,146,232,146,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,144,169,144,200,56,169,72,187,88,187,96,169,88,169,96,169,184,169,112,217,124,187,72,200,124,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,255,5,168,112,255,5,250,114,255,5,232,114,255,1,170,170,3,0,67,0,50,0,59,0,63,9,0,16,28,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,14,33,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,196,26,0,0,196,26,0,0,168,28,0,0,206,28,0,0,246,32,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,14,0,202,97,14,0,202,130,14,0,202,163,14,0,202,196,14,0,202,229,14,0,202,6,15,0,202,39,15,0,202,72,15,0,202,105,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,96,7,0,156,5,0,66,201,198,14,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,160,15,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,160,19,0,5,5,0,66,201,102,23,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,13,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,14,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,24,0,201,6,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,25,0,201,134,26,0,201,70,27,0,201,6,28,0,201,198,28,0,201,134,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,5,196,0,0,70,5,2,47,5,196,0,0,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,135,5,2,65,5,136,0,0,70,5,2,65,5,136,0,0,135,5,2,65,5,160,0,0,70,5,2,65,5,160,0,0,135,5,2,65,5,144,0,0,70,5,2,65,5,144,0,0,135,5,2,65,5,196,0,0,70,5,2,65,5,196,0,0,135,5,2,65,5,196,0,0,5,164,0,0,70,5,2,65,5,196,0,0,5,164,0,0,135,5,2,65,5,210,0,0,70,5,2,65,5,210,0,0,135,5,2,65,5,204,0,0,70,5,2,65,5,204,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,5,196,0,0,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,5,5,2,65,5,136,0,0,5,5,2,65,5,160,0,0,5,5,2,65,5,144,0,0,5,5,2,65,5,196,0,0,5,5,2,65,5,196,0,0,5,164,0,0,5,5,2,65,5,210,0,0,5,5,2,65,5,204,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,239,135,5,104,0,2,239,70,5,36,1,197,162,37,1,0,192,197,98,0,64,156,5,15,0,54,30,26,0,58,30,12,0,58,30,6,192,197,162,59,30,6,192,197,226,60,30,7,192,197,34,61,30,7,192,197,98,54,30,5,192,197,98,55,30,5,192,197,162,56,30,5,192,197,227,57,30,6,192,197,67,59,1,12,0,59,1,4,192,197,98,60,1,4,192,197,162,61,1,4,192,197,226,62,1,5,192,197,34,76,0,255,255,2,65,135,5,108,0,255,255,2,65,70,5,57,1,3,192,197,226,58,1,4,192,197,34,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,46,5,5,8,0,37,30,15,0,37,30,8,192,197,98,39,30,8,192,197,162,41,30,8,192,197,226,43,30,9,192,197,34,150,30,9,192,197,98,104,0,2,239,5,5,37,1,7,192,197,162,31,2,7,192,197,226,35,30,8,192,197,34,0,64,5,5,7,0,55,30,12,0,55,30,10,192,197,98,57,30,10,192,197,163,59,30,11,192,197,2,61,30,11,192,197,66,108,0,255,255,2,65,5,5,58,1,9,192,197,162,60,1,9,192,197,226,62,1,10,192,197,34,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,11,192,197,130,5,68,196,160,48,0,3,3,11,192,197,194,156,68,196,196,48,0,3,3,12,192,197,2,5,68,196,196,48,0,3,3,12,192,197,66,156,68,196,210,48,0,3,3,12,192,197,130,5,68,196,210,48,0,3,3,12,192,197,194,156,68,196,204,48,0,3,3,13,192,197,2,5,68,196,204,48,0,3,3,13,192,197,66,18,0,72,0,73,0,104,0,105,0,108,0,109,0,36,1,38,1,57,1,63,1,30,2,32,2,34,30,44,30,54,30,62,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,185,84,185,88,186,92,186,100,185,104,36,4,185,116,54,4,185,132,185,136,185,140,185,148,186,152,185,156,185,164,185,168,185,172,185,176,185,180,185,184,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,56,4,168,72,168,76,168,80,168,84,168,88,168,92,168,100,168,104,62,4,168,116,72,4,168,132,168,136,168,140,168,148,168,152,168,156,168,164,168,168,168,172,168,176,168,180,168,184,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,185,124,185,133,153,133,249,133,153,134,89,134,136,14,217,134,185,165,153,165,249,165,89,166,153,181,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,168,124,168,133,136,133,232,133,136,134,72,134,128,14,200,134,168,165,136,165,232,165,72,166,136,181,168,188,72,182,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,144,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,121,136,121,74,4,76,4,26,122,8,122,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,250,154,232,154,26,154,8,154,249,158,232,158,25,158,8,158,185,160,168,160,153,166,136,166,57,167,40,167,217,165,200,165,57,166,40,166,121,166,104,166,25,167,8,167,249,173,232,173,249,181,232,181,89,182,153,185,136,185,185,186,168,186,25,186,8,186,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,92,187,100,169,92,169,100,169,192,169,120,217,132,187,76,200,132,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,68,104,4,177,68,36,5,250,69,37,5,241,69,255,5,185,108,76,4,186,112,108,4,177,112,57,5,154,113,58,5,145,113,59,5,250,114,60,5,241,114,61,5,26,114,62,5,17,114,255,5,186,120,255,5,168,64,104,4,168,68,37,5,232,69,255,5,168,108,108,4,168,112,58,5,136,113,60,5,232,114,62,5,8,114,255,5,168,120,255,5,250,122,255,5,232,122,255,1,170,170,3,0,67,0,50,0,59,0,183,16,0,16,39,0,0,96,1,0,0,96,3,0,43,0,82,0,91,0,57,9,0,32,175,16,0,32,252,24,0,32,1,0,32,0,1,25,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,21,0,0,32,7,0,0,0,13,0,0,0,23,0,0,0,23,0,0,0,1,0,0,0,0,0,0,0,21,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,170,0,0,116,0,114,0,97,0,100,0,105,0,116,0,105,0,111,0,110,0,97,0,108,0,0,0,1,0,43,0,1,0,1,0,32,0,13,0,0,80,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,73,10,0,32,7,0,0,0,21,0,0,0,75,10,0,0,75,10,0,0,3,0,0,0,0,0,0,0,57,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,66,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,84,0,60,0,97,1,60,0,60,0,60,0,96,1,60,0,122,0,60,0,60,0,60,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,88,0,60,0,245,0,60,0,60,0,60,0,213,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,252,0,60,0,60,0,60,0,220,0,0,0,170,170,170,170,170,170,170,170,22,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,30,0,0,116,30,0,0,116,30,0,0,116,30,0,0,96,33,0,0,96,33,0,0,254,35,0,0,254,35,0,0,254,39,0,0,50,105,114,84,1,0,64,8,218,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,105,0,113,0,118,0,126,0,129,0,137,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,161,0,48,0,166,0,174,0,180,0,188,0,193,0,201,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,209,0,153,0,48,0,48,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,164,1,216,1,4,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,22,0,202,65,22,0,202,98,22,0,202,131,22,0,202,164,22,0,202,197,22,0,202,230,22,0,202,7,23,0,202,40,23,0,202,73,23,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,0,0,156,5,0,72,160,5,0,74,156,5,0,76,201,70,2,0,156,5,0,80,201,38,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,4,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,5,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,6,0,5,5,0,72,5,5,0,74,5,5,0,76,201,102,7,0,5,5,0,80,201,70,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,134,9,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,14,87,196,146,156,42,197,98,21,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,134,5,13,87,134,5,15,87,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,16,87,196,136,156,90,160,5,38,93,197,162,21,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,14,87,196,146,5,42,197,226,21,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,5,5,13,87,5,5,15,87,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,16,87,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,134,5,37,79,5,5,37,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,6,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,197,34,0,0,197,98,0,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,192,0,0,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,198,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,20,0,201,166,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,8,0,197,98,8,0,197,162,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,22,0,201,38,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,13,0,197,98,13,0,201,230,29,0,201,166,30,0,201,102,31,0,201,38,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,34,0,201,134,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,3,0,197,162,3,0,201,166,36,0,201,198,37,0,201,230,38,0,201,166,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,40,0,201,38,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,16,87,5,136,0,0,5,5,16,87,5,136,0,0,134,5,14,87,5,162,0,0,5,5,14,87,5,162,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,5,16,87,5,162,0,0,5,5,16,87,5,162,0,0,134,5,36,79,5,136,0,0,5,5,36,79,5,136,0,0,134,5,36,79,5,156,0,0,5,5,36,79,5,156,0,0,134,5,13,87,5,190,0,0,134,5,15,87,5,190,0,0,5,5,13,87,5,190,0,0,5,5,15,87,5,190,0,0,134,5,16,87,5,190,0,0,5,5,16,87,5,190,0,0,134,5,16,87,5,164,0,0,5,5,16,87,5,164,0,0,134,5,16,87,5,144,0,0,5,5,16,87,5,144,0,0,134,5,16,87,5,138,0,0,5,5,16,87,5,138,0,0,134,5,14,87,5,164,0,0,5,5,14,87,5,164,0,0,134,5,13,87,5,162,0,0,134,5,15,87,5,162,0,0,5,5,13,87,5,162,0,0,5,5,15,87,5,162,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,134,5,15,87,5,164,0,0,5,5,15,87,5,164,0,0,134,5,13,87,5,164,0,0,5,5,13,87,5,164,0,0,134,5,14,87,5,200,0,0,5,5,14,87,5,200,0,0,134,5,13,87,5,136,0,0,5,5,13,87,5,136,0,0,134,5,13,87,5,150,0,0,5,5,13,87,5,150,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,5,16,87,5,198,0,0,5,5,16,87,5,198,0,0,134,5,16,87,5,208,0,0,5,5,16,87,5,208,0,0,134,5,16,87,5,204,0,0,5,5,16,87,5,204,0,0,134,5,36,79,5,142,0,0,5,5,36,79,5,142,0,0,134,5,36,79,5,196,0,0,134,5,37,79,5,196,0,0,5,5,36,79,5,196,0,0,5,5,37,79,5,196,0,0,134,5,36,79,5,210,0,0,134,5,37,79,5,210,0,0,5,5,36,79,5,210,0,0,5,5,37,79,5,210,0,0,134,5,14,87,5,196,0,0,5,5,14,87,5,196,0,0,134,5,13,87,5,196,0,0,134,5,15,87,5,196,0,0,5,5,13,87,5,196,0,0,5,5,15,87,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,13,87,5,190,0,0,5,196,0,0,134,5,15,87,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,13,87,5,190,0,0,5,196,0,0,5,5,15,87,5,190,0,0,5,196,0,0,134,5,16,87,5,196,0,0,5,5,16,87,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,16,87,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,16,87,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,255,255,14,87,134,5,0,70,156,5,1,0,3,3,255,255,13,87,134,5,8,3,255,255,15,87,134,5,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,82,156,5,1,0,8,3,255,255,16,87,134,5,68,3,197,162,36,79,134,5,48,0,12,3,255,255,37,79,134,5,0,42,5,5,48,0,8,3,255,255,14,87,5,5,0,70,5,5,1,0,3,3,255,255,13,87,5,5,8,3,255,255,15,87,5,5,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,82,5,5,1,0,8,3,255,255,16,87,5,5,68,3,0,192,197,98,36,79,5,5,48,0,12,3,255,255,37,79,5,5,156,42,196,162,48,0,8,3,0,192,197,162,5,42,196,162,48,0,8,3,0,192,197,226,156,78,196,160,48,0,12,3,1,192,197,34,5,78,196,160,48,0,12,3,1,192,197,98,156,82,196,162,48,0,8,3,1,192,197,162,5,82,196,162,48,0,8,3,1,192,197,226,156,70,196,190,1,0,3,3,3,192,197,34,8,3,3,192,197,98,5,70,196,190,1,0,3,3,3,192,197,162,8,3,3,192,197,226,156,82,196,190,48,0,8,3,4,192,197,34,5,82,196,190,48,0,8,3,4,192,197,98,156,70,196,162,1,0,3,3,6,192,197,162,8,3,6,192,197,226,5,70,196,162,1,0,3,3,7,192,197,34,8,3,7,192,197,98,156,78,196,202,48,0,12,3,7,192,197,162,5,78,196,202,48,0,12,3,7,192,197,226,156,42,196,200,48,0,8,3,9,192,197,34,5,42,196,200,48,0,8,3,9,192,197,98,156,78,196,196,48,0,12,3,10,192,197,162,5,78,196,196,48,0,12,3,10,192,197,226,156,82,196,198,48,0,8,3,11,192,197,162,5,82,196,198,48,0,8,3,11,192,197,226,156,82,196,208,48,0,8,3,12,192,197,34,5,82,196,208,48,0,8,3,12,192,197,98,156,82,196,204,48,0,8,3,12,192,197,162,5,82,196,204,48,0,8,3,12,192,197,226,13,0,197,162,48,0,12,3,13,192,197,226,14,0,197,34,48,0,12,3,14,192,197,98,14,0,197,162,48,0,12,3,14,192,197,226,15,0,197,34,48,0,12,3,15,192,197,98,156,42,196,196,48,0,8,3,15,192,197,162,5,42,196,196,48,0,8,3,15,192,197,226,156,70,196,196,1,0,3,3,16,192,197,34,8,3,16,192,197,98,5,70,196,196,1,0,3,3,16,192,197,162,8,3,16,192,197,226,17,0,197,35,1,0,3,3,17,192,197,131,8,3,17,192,197,227,18,0,197,67,1,0,3,3,18,192,197,163,8,3,19,192,197,3,156,82,196,196,48,0,8,3,19,192,197,98,5,82,196,196,48,0,8,3,19,192,197,162,19,0,197,227,48,0,8,3,20,192,197,67,20,0,197,163,48,0,8,3,21,192,197,3,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,28,4,185,124,185,128,185,136,30,4,185,156,32,4,185,168,185,172,185,192,185,196,34,4,88,13,168,13,96,13,56,14,80,12,40,14,36,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,38,4,168,124,168,128,168,136,40,4,168,156,42,4,168,168,168,172,168,192,168,196,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,180,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,185,176,185,184,136,14,217,122,185,165,153,165,249,165,185,188,153,197,185,200,2,8,168,57,136,57,232,57,136,58,168,180,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,168,176,168,184,128,14,200,122,168,165,136,165,232,165,168,188,136,197,168,200,72,198,57,59,40,59,217,57,200,57,46,4,48,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,50,4,52,4,185,144,168,144,249,158,232,158,25,158,8,158,185,160,168,160,153,166,136,166,57,167,40,167,217,165,200,165,57,166,40,166,121,166,104,166,54,4,56,4,249,173,232,173,249,197,232,197,89,198,153,149,136,149,185,150,168,150,185,152,168,152,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,204,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,120,255,5,186,140,255,5,185,164,255,5,185,148,255,5,168,56,255,5,168,120,255,5,168,140,255,5,168,164,255,5,168,148,255,5,25,59,255,5,8,59,255,5,250,142,255,5,232,142,255,5,25,167,255,5,8,167,255,1,170,170,3,0,69,0,52,0,61,0,59,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,66,10,0,32,1,0,32,0,71,10,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,185,7,0,32,7,0,0,0,21,0,0,0,187,7,0,0,187,7,0,0,3,0,0,0,0,0,0,0,96,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,143,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,78,6,60,0,60,0,80,6,60,0,60,0,79,6,60,0,60,0,75,6,60,0,60,0,77,6,60,0,60,0,76,6,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,39,6,60,0,34,6,38,0,39,6,60,0,60,0,113,6,60,0,33,6,60,0,60,0,35,6,60,0,60,0,114,6,60,0,60,0,37,6,60,0,60,0,115,6,60,0,60,0,36,6,60,0,60,0,204,6,84,6,60,0,60,0,60,0,73,6,84,6,60,0,60,0,60,0,38,6,38,0,169,6,60,0,60,0,42,0,170,6,171,6,67,6,172,6,173,6,174,6,38,0,207,6,60,0,71,6,60,0,60,0,213,6,60,0,60,0,193,6,60,0,60,0,41,6,60,0,60,0,195,6,60,0,60,0,192,6,60,0,60,0,190,6,38,0,204,6,60,0,60,0,42,0,73,6,210,6,74,6,208,6,209,6,205,6,206,6,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,54,29,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,48,28,0,0,48,28,0,0,112,28,0,0,112,28,0,0,188,28,0,0,188,28,0,0,30,29,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,166,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,109,0,117,0,125,0,133,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,157,0,149,0,48,0,48,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,141,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,180,1,244,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,102,5,5,25,102,5,70,27,102,5,74,27,102,5,72,27,102,7,75,27,102,201,6,0,0,192,0,0,0,198,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,184,102,192,0,0,0,192,0,0,0,192,0,0,0,193,24,234,102,201,230,1,0,201,198,2,0,201,166,3,0,194,5,210,230,194,5,212,230,194,5,211,230,192,0,0,0,194,5,209,230,194,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,27,102,5,73,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,184,102,5,71,184,102,5,73,184,102,5,74,184,102,5,75,184,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,198,65,0,0,198,97,0,0,198,130,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,4,0,5,75,240,102,5,76,240,102,192,0,0,0,5,73,240,102,5,74,240,102,5,71,240,102,197,34,0,0,192,0,0,0,201,102,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,72,0,24,234,102,0,5,0,75,0,24,234,102,0,5,0,74,0,24,234,102,0,5,0,71,0,24,234,102,0,5,0,71,0,24,234,102,0,5,128,232,0,0,0,0,0,5,0,73,0,24,234,102,0,5,0,70,0,24,234,102,0,0,0,0,5,71,240,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,25,102,5,5,84,6,255,255,27,102,5,70,85,6,255,255,27,102,5,72,222,102,5,5,48,0,84,6,255,255,27,102,5,74,240,102,5,70,48,0,84,6,255,255,27,102,6,75,240,102,5,72,48,0,84,6,255,255,27,102,7,75,240,102,5,5,48,0,84,6,255,255,27,102,5,75,0,0,198,225,48,0,84,6,0,192,198,65,170,170,3,0,69,0,52,0,61,0,99,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,178,7,0,32,1,0,32,0,183,7,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,128,8,0,32,7,0,0,0,21,0,0,0,130,8,0,0,130,8,0,0,3,0,0,0,0,0,0,0,29,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,112,0,115,0,93,0,0,0,170,170,170,170,170,170,170,170,100,33,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,72,0,0,0,72,1,0,0,184,28,0,0,184,28,0,0,184,28,0,0,184,28,0,0,12,29,0,0,12,29,0,0,140,29,0,0,140,29,0,0,76,33,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,152,0,48,0,48,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,1,0,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,102,5,5,25,102,5,70,26,102,5,70,222,102,5,73,26,102,7,75,240,102,201,6,0,0,192,0,0,0,5,73,214,102,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,71,184,102,192,0,0,0,192,0,0,0,192,0,0,0,201,198,2,0,201,166,3,0,201,134,4,0,201,102,5,0,194,5,210,230,194,5,212,230,194,5,211,230,192,0,0,0,194,5,209,230,194,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,26,102,5,71,26,102,5,74,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,43,102,192,0,0,0,192,0,0,0,5,5,43,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,102,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,102,192,0,0,0,192,0,0,0,5,70,85,102,5,5,85,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,111,102,192,0,0,0,5,5,111,102,192,0,0,0,192,0,0,0,5,5,129,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,184,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,188,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,210,102,192,0,0,0,192,0,0,0,5,72,214,102,192,0,0,0,6,5,214,102,5,71,214,102,197,34,0,0,5,74,214,102,192,0,0,0,192,0,0,0,192,0,0,0,5,71,222,102,192,0,0,0,5,72,222,102,192,0,0,0,192,0,0,0,201,70,6,0,5,74,240,102,192,0,0,0,192,0,0,0,5,73,240,102,192,0,0,0,5,71,240,102,197,98,0,0,192,0,0,0,201,38,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,4,5,71,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,71,214,102,194,5,128,232,5,71,240,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,25,102,5,5,84,6,255,255,26,102,5,70,85,6,255,255,26,102,5,73,72,102,5,5,48,0,84,6,255,255,59,102,5,70,214,102,5,5,48,0,84,6,255,255,214,102,7,5,222,102,5,5,48,0,84,6,255,255,222,102,5,70,240,102,5,70,48,0,84,6,255,255,240,102,6,75,240,102,5,72,48,0,84,6,255,255,240,102,7,75,240,102,5,5,48,0,84,6,255,255,240,102,5,75,214,102,5,70,48,0,84,6,255,255,214,102,6,5,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,1,0,1,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,121,8,0,32,1,0,32,0,126,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,27,11,0,32,7,0,0,0,24,0,0,0,31,11,0,0,31,11,0,0,3,0,0,0,0,0,0,0,134,2,0,0,37,37,80,97,114,101,110,116,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,170,170,170,0,0,52,0,50,0,0,0,114,0,111,0,111,0,116,0,0,0,239,223,208,4,38,0,58,216,0,221,60,0,58,216,0,221,58,216,68,221,38,0,58,216,0,221,58,216,68,221,61,0,58,216,0,221,58,216,0,221,38,0,58,216,34,221,60,0,58,216,34,221,58,216,68,221,38,0,58,216,34,221,58,216,68,221,61,0,58,216,34,221,58,216,34,221,38,0,58,216,1,221,60,0,58,216,1,221,58,216,70,221,38,0,58,216,1,221,58,216,70,221,61,0,58,216,1,221,58,216,1,221,38,0,58,216,35,221,60,0,58,216,35,221,58,216,70,221,38,0,58,216,35,221,58,216,70,221,61,0,58,216,35,221,58,216,35,221,38,0,58,216,2,221,60,0,58,216,2,221,58,216,70,221,38,0,58,216,2,221,58,216,70,221,61,0,58,216,2,221,58,216,2,221,38,0,58,216,36,221,60,0,58,216,36,221,58,216,70,221,38,0,58,216,36,221,58,216,70,221,61,0,58,216,36,221,58,216,36,221,38,0,58,216,3,221,60,0,58,216,3,221,58,216,70,221,38,0,58,216,3,221,58,216,70,221,61,0,58,216,3,221,58,216,3,221,38,0,58,216,37,221,60,0,58,216,37,221,58,216,70,221,38,0,58,216,37,221,58,216,70,221,61,0,58,216,37,221,58,216,37,221,38,0,58,216,4,221,60,0,58,216,4,221,58,216,70,221,38,0,58,216,4,221,58,216,70,221,61,0,58,216,4,221,58,216,4,221,38,0,58,216,38,221,60,0,58,216,38,221,58,216,70,221,38,0,58,216,38,221,58,216,70,221,61,0,58,216,38,221,58,216,38,221,38,0,58,216,5,221,60,0,58,216,5,221,58,216,70,221,38,0,58,216,5,221,58,216,70,221,61,0,58,216,5,221,58,216,5,221,38,0,58,216,39,221,60,0,58,216,39,221,58,216,70,221,38,0,58,216,39,221,58,216,70,221,61,0,58,216,39,221,58,216,39,221,38,0,58,216,6,221,60,0,58,216,6,221,58,216,70,221,38,0,58,216,6,221,58,216,70,221,61,0,58,216,6,221,58,216,6,221,38,0,58,216,40,221,60,0,58,216,40,221,58,216,70,221,38,0,58,216,40,221,58,216,70,221,61,0,58,216,40,221,58,216,40,221,38,0,58,216,7,221,60,0,58,216,7,221,58,216,70,221,38,0,58,216,7,221,58,216,70,221,61,0,58,216,7,221,58,216,7,221,38,0,58,216,41,221,60,0,58,216,41,221,58,216,70,221,38,0,58,216,41,221,58,216,70,221,61,0,58,216,41,221,58,216,41,221,38,0,58,216,8,221,60,0,58,216,8,221,58,216,70,221,38,0,58,216,8,221,58,216,70,221,61,0,58,216,8,221,58,216,8,221,38,0,58,216,42,221,60,0,58,216,42,221,58,216,70,221,38,0,58,216,42,221,58,216,70,221,61,0,58,216,42,221,58,216,42,221,38,0,58,216,10,221,60,0,58,216,10,221,58,216,70,221,38,0,58,216,10,221,58,216,70,221,61,0,58,216,10,221,58,216,10,221,38,0,58,216,44,221,60,0,58,216,44,221,58,216,70,221,38,0,58,216,44,221,58,216,70,221,61,0,58,216,44,221,58,216,44,221,38,0,58,216,13,221,60,0,58,216,13,221,58,216,70,221,38,0,58,216,13,221,58,216,70,221,61,0,58,216,13,221,58,216,13,221,38,0,58,216,47,221,60,0,58,216,47,221,58,216,70,221,38,0,58,216,47,221,58,216,70,221,61,0,58,216,47,221,58,216,47,221,38,0,58,216,14,221,60,0,58,216,14,221,58,216,70,221,38,0,58,216,14,221,58,216,70,221,61,0,58,216,14,221,58,216,14,221,38,0,58,216,48,221,60,0,58,216,48,221,58,216,70,221,38,0,58,216,48,221,58,216,70,221,61,0,58,216,48,221,58,216,48,221,38,0,58,216,15,221,60,0,58,216,15,221,58,216,70,221,38,0,58,216,15,221,58,216,70,221,61,0,58,216,15,221,58,216,15,221,38,0,58,216,49,221,60,0,58,216,49,221,58,216,70,221,38,0,58,216,49,221,58,216,70,221,61,0,58,216,49,221,58,216,49,221,38,0,58,216,16,221,60,0,58,216,16,221,58,216,70,221,38,0,58,216,16,221,58,216,70,221,61,0,58,216,16,221,58,216,16,221,38,0,58,216,50,221,60,0,58,216,50,221,58,216,70,221,38,0,58,216,50,221,58,216,70,221,61,0,58,216,50,221,58,216,50,221,38,0,58,216,17,221,60,0,58,216,17,221,58,216,70,221,38,0,58,216,17,221,58,216,70,221,61,0,58,216,17,221,58,216,17,221,38,0,58,216,51,221,60,0,58,216,51,221,58,216,70,221,38,0,58,216,51,221,58,216,70,221,61,0,58,216,51,221,58,216,51,221,38,0,58,216,18,221,60,0,58,216,18,221,58,216,70,221,38,0,58,216,18,221,58,216,70,221,61,0,58,216,18,221,58,216,18,221,38,0,58,216,52,221,60,0,58,216,52,221,58,216,70,221,38,0,58,216,52,221,58,216,70,221,61,0,58,216,52,221,58,216,52,221,38,0,58,216,20,221,60,0,58,216,20,221,58,216,70,221,38,0,58,216,20,221,58,216,70,221,61,0,58,216,20,221,58,216,20,221,38,0,58,216,54,221,60,0,58,216,54,221,58,216,70,221,38,0,58,216,54,221,58,216,70,221,61,0,58,216,54,221,58,216,54,221,38,0,58,216,21,221,60,0,58,216,21,221,58,216,70,221,38,0,58,216,21,221,58,216,70,221,61,0,58,216,21,221,58,216,21,221,38,0,58,216,55,221,60,0,58,216,55,221,58,216,70,221,38,0,58,216,55,221,58,216,70,221,61,0,58,216,55,221,58,216,55,221,38,0,58,216,22,221,60,0,58,216,22,221,58,216,70,221,38,0,58,216,22,221,58,216,70,221,61,0,58,216,22,221,58,216,22,221,38,0,58,216,56,221,60,0,58,216,56,221,58,216,70,221,38,0,58,216,56,221,58,216,70,221,61,0,58,216,56,221,58,216,56,221,38,0,58,216,23,221,60,0,58,216,23,221,58,216,70,221,38,0,58,216,23,221,58,216,70,221,61,0,58,216,23,221,58,216,23,221,38,0,58,216,57,221,60,0,58,216,57,221,58,216,70,221,38,0,58,216,57,221,58,216,70,221,61,0,58,216,57,221,58,216,57,221,38,0,58,216,24,221,60,0,58,216,24,221,58,216,70,221,38,0,58,216,24,221,58,216,70,221,61,0,58,216,24,221,58,216,24,221,38,0,58,216,58,221,60,0,58,216,58,221,58,216,70,221,38,0,58,216,58,221,58,216,70,221,61,0,58,216,58,221,58,216,58,221,38,0,58,216,25,221,60,0,58,216,25,221,58,216,70,221,38,0,58,216,25,221,58,216,70,221,61,0,58,216,25,221,58,216,25,221,38,0,58,216,59,221,60,0,58,216,59,221,58,216,70,221,38,0,58,216,59,221,58,216,70,221,61,0,58,216,59,221,58,216,59,221,38,0,58,216,26,221,60,0,58,216,26,221,58,216,70,221,38,0,58,216,26,221,58,216,70,221,61,0,58,216,26,221,58,216,26,221,38,0,58,216,60,221,60,0,58,216,60,221,58,216,70,221,38,0,58,216,60,221,58,216,70,221,61,0,58,216,60,221,58,216,60,221,38,0,58,216,27,221,60,0,58,216,27,221,58,216,70,221,38,0,58,216,27,221,58,216,70,221,61,0,58,216,27,221,58,216,27,221,38,0,58,216,61,221,60,0,58,216,61,221,58,216,70,221,38,0,58,216,61,221,58,216,70,221,61,0,58,216,61,221,58,216,61,221,38,0,58,216,28,221,60,0,58,216,28,221,58,216,70,221,38,0,58,216,28,221,58,216,70,221,61,0,58,216,28,221,58,216,28,221,38,0,58,216,62,221,60,0,58,216,62,221,58,216,70,221,38,0,58,216,62,221,58,216,70,221,61,0,58,216,62,221,58,216,62,221,38,0,58,216,29,221,60,0,58,216,29,221,58,216,70,221,38,0,58,216,29,221,58,216,70,221,61,0,58,216,29,221,58,216,29,221,38,0,58,216,63,221,60,0,58,216,63,221,58,216,70,221,38,0,58,216,63,221,58,216,70,221,61,0,58,216,63,221,58,216,63,221,38,0,58,216,30,221,60,0,58,216,30,221,58,216,70,221,38,0,58,216,30,221,58,216,70,221,61,0,58,216,30,221,58,216,30,221,38,0,58,216,64,221,60,0,58,216,64,221,58,216,70,221,38,0,58,216,64,221,58,216,70,221,61,0,58,216,64,221,58,216,64,221,38,0,58,216,31,221,60,0,58,216,31,221,58,216,70,221,38,0,58,216,31,221,58,216,70,221,61,0,58,216,31,221,58,216,31,221,38,0,58,216,65,221,60,0,58,216,65,221,58,216,70,221,38,0,58,216,65,221,58,216,70,221,61,0,58,216,65,221,58,216,65,221,38,0,58,216,32,221,60,0,58,216,32,221,58,216,70,221,38,0,58,216,32,221,58,216,70,221,61,0,58,216,32,221,58,216,32,221,38,0,58,216,66,221,60,0,58,216,66,221,58,216,70,221,38,0,58,216,66,221,58,216,70,221,61,0,58,216,66,221,58,216,66,221,38,0,58,216,33,221,60,0,58,216,33,221,58,216,70,221,38,0,58,216,33,221,58,216,70,221,61,0,58,216,33,221,58,216,33,221,38,0,58,216,67,221,60,0,58,216,67,221,58,216,70,221,38,0,58,216,67,221,58,216,70,221,61,0,58,216,67,221,58,216,67,221,38,0,58,216,9,221,60,0,58,216,9,221,58,216,69,221,38,0,58,216,9,221,58,216,69,221,60,0,60,0,58,216,9,221,58,216,9,221,38,0,58,216,43,221,60,0,58,216,43,221,58,216,69,221,38,0,58,216,43,221,58,216,69,221,60,0,60,0,58,216,43,221,58,216,43,221,38,0,58,216,11,221,60,0,58,216,11,221,58,216,69,221,38,0,58,216,11,221,58,216,69,221,60,0,60,0,58,216,11,221,58,216,11,221,38,0,58,216,45,221,60,0,58,216,45,221,58,216,69,221,38,0,58,216,45,221,58,216,69,221,60,0,60,0,58,216,45,221,58,216,45,221,38,0,58,216,12,221,60,0,58,216,12,221,58,216,69,221,38,0,58,216,12,221,58,216,69,221,60,0,60,0,58,216,12,221,58,216,12,221,38,0,58,216,46,221,60,0,58,216,46,221,58,216,69,221,38,0,58,216,46,221,58,216,69,221,60,0,60,0,58,216,46,221,58,216,46,221,38,0,58,216,19,221,60,0,58,216,19,221,58,216,69,221,38,0,58,216,19,221,58,216,69,221,60,0,60,0,58,216,19,221,58,216,19,221,38,0,58,216,53,221,60,0,58,216,53,221,58,216,69,221,38,0,58,216,53,221,58,216,69,221,60,0,60,0,58,216,53,221,58,216,53,221,0,0,170,170,170,170,48,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,64,0,0,0,64,0,0,0,32,26,0,0,32,26,0,0,112,27,0,0,112,27,0,0,180,27,0,0,180,27,0,0,4,34,0,0,24,34,0,0,50,105,114,84,1,0,160,8,137,0,64,0,192,0,62,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,88,0,48,0,48,0,80,0,128,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,94,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,4,0,0,201,36,1,0,201,68,2,0,201,164,3,0,201,4,5,0,201,100,6,0,201,196,7,0,201,36,9,0,201,132,10,0,201,228,11,0,201,68,13,0,201,164,14,0,201,4,16,0,201,100,17,0,201,196,18,0,201,36,20,0,201,132,21,0,201,228,22,0,201,68,24,0,201,164,25,0,201,4,27,0,201,100,28,0,201,196,29,0,201,36,31,0,201,132,32,0,201,228,33,0,201,68,35,0,201,164,36,0,201,4,38,0,201,100,39,0,201,196,40,0,201,36,42,0,201,132,43,0,201,228,44,0,201,68,46,0,201,228,47,0,201,132,49,0,201,36,51,0,201,196,52,0,201,100,54,0,201,4,56,0,201,164,57,0,201,68,59,0,201,228,60,0,201,100,62,0,201,4,64,0,201,132,65,0,201,4,67,0,201,164,68,0,201,68,70,0,201,228,71,0,201,132,73,0,201,36,75,0,201,196,76,0,201,68,78,0,201,228,79,0,201,132,81,0,201,36,83,0,201,196,84,0,201,100,86,0,201,4,88,0,201,164,89,0,201,68,91,0,201,228,92,0,201,132,94,0,201,36,96,0,201,196,97,0,201,100,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,133,0,5,0,3,170,120,0,133,0,5,0,3,172,120,0,133,0,5,0,3,174,120,0,133,0,5,0,3,176,120,0,133,0,5,0,3,178,120,0,133,0,5,0,3,180,120,0,133,0,5,0,3,182,120,0,133,0,5,0,3,184,120,0,133,0,5,0,3,186,120,0,133,0,70,0,3,188,120,0,133,0,5,0,3,188,120,0,133,0,5,0,3,190,120,0,133,0,70,0,3,192,120,0,133,0,5,0,3,192,120,0,133,0,70,0,3,194,120,0,133,0,5,0,3,194,120,0,133,0,5,0,3,196,120,0,133,0,5,0,3,198,120,0,133,0,5,0,3,200,120,0,133,0,5,0,3,202,120,0,133,0,5,0,3,204,120,0,133,0,5,0,3,206,120,0,133,0,70,0,3,208,120,0,133,0,5,0,3,208,120,0,133,0,5,0,3,210,120,0,133,0,5,0,3,212,120,0,133,0,5,0,3,214,120,0,133,0,5,0,3,216,120,0,133,0,5,0,3,218,120,0,133,0,5,0,3,220,120,0,133,0,5,0,3,222,120,0,133,0,5,0,3,224,120,0,133,0,5,0,3,226,120,0,133,0,5,0,3,228,120,0,133,0,5,0,3,230,120,0,133,0,5,0,3,232,120,0,133,0,5,0,3,234,120,0,133,0,5,0,3,236,120,0,5,0,70,0,2,188,120,0,5,0,70,0,2,192,120,0,5,0,70,0,2,194,120,0,5,0,70,0,2,208,120,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,169,120,160,5,48,0,58,216,1,0,0,221,198,129,68,221,198,129,171,120,160,5,48,0,58,216,1,0,1,221,198,161,70,221,198,161,173,120,160,5,48,0,58,216,1,0,2,221,0,192,198,65,70,221,0,192,198,65,175,120,160,5,48,0,58,216,1,0,3,221,0,192,198,97,70,221,0,192,198,97,177,120,160,5,48,0,58,216,1,0,4,221,0,192,198,129,70,221,0,192,198,129,179,120,160,5,48,0,58,216,1,0,5,221,0,192,198,161,70,221,0,192,198,161,181,120,160,5,48,0,58,216,1,0,6,221,0,192,198,193,70,221,0,192,198,193,183,120,160,5,48,0,58,216,1,0,7,221,0,192,198,225,70,221,0,192,198,225,185,120,160,5,48,0,58,216,1,0,8,221,1,192,198,1,70,221,1,192,198,1,187,120,160,5,48,0,58,216,1,0,9,221,1,192,198,33,69,221,1,192,198,65,189,120,160,5,48,0,58,216,1,0,10,221,1,192,198,97,70,221,1,192,198,97,191,120,160,5,48,0,58,216,1,0,11,221,1,192,198,129,69,221,1,192,198,161,193,120,160,5,48,0,58,216,1,0,12,221,1,192,198,193,69,221,1,192,198,225,195,120,160,5,48,0,58,216,1,0,13,221,2,192,198,1,70,221,2,192,198,1,197,120,160,5,48,0,58,216,1,0,14,221,2,192,198,33,70,221,2,192,198,33,199,120,160,5,48,0,58,216,1,0,15,221,2,192,198,65,70,221,2,192,198,65,201,120,160,5,48,0,58,216,1,0,16,221,2,192,198,97,70,221,2,192,198,97,203,120,160,5,48,0,58,216,1,0,17,221,2,192,198,129,70,221,2,192,198,129,205,120,160,5,48,0,58,216,1,0,18,221,2,192,198,161,70,221,2,192,198,161,207,120,160,5,48,0,58,216,1,0,19,221,2,192,198,193,69,221,2,192,198,225,209,120,160,5,48,0,58,216,1,0,20,221,3,192,198,1,70,221,3,192,198,1,211,120,160,5,48,0,58,216,1,0,21,221,3,192,198,33,70,221,3,192,198,33,213,120,160,5,48,0,58,216,1,0,22,221,3,192,198,65,70,221,3,192,198,65,215,120,160,5,48,0,58,216,1,0,23,221,3,192,198,97,70,221,3,192,198,97,217,120,160,5,48,0,58,216,1,0,24,221,3,192,198,129,70,221,3,192,198,129,219,120,160,5,48,0,58,216,1,0,25,221,3,192,198,161,70,221,3,192,198,161,221,120,160,5,48,0,58,216,1,0,26,221,3,192,198,193,70,221,3,192,198,193,223,120,160,5,48,0,58,216,1,0,27,221,3,192,198,225,70,221,3,192,198,225,225,120,160,5,48,0,58,216,1,0,28,221,4,192,198,1,70,221,4,192,198,1,227,120,160,5,48,0,58,216,1,0,29,221,4,192,198,33,70,221,4,192,198,33,229,120,160,5,48,0,58,216,1,0,30,221,4,192,198,65,70,221,4,192,198,65,231,120,160,5,48,0,58,216,1,0,31,221,4,192,198,97,70,221,4,192,198,97,233,120,160,5,48,0,58,216,1,0,32,221,4,192,198,129,70,221,4,192,198,129,235,120,160,5,48,0,58,216,1,0,33,221,4,192,198,161,70,221,4,192,198,161,169,120,5,5,48,0,58,216,1,0,34,221,255,255,170,120,193,2,68,221,255,255,170,120,193,2,171,120,5,5,48,0,58,216,1,0,35,221,255,255,172,120,193,2,70,221,255,255,172,120,193,2,173,120,5,5,48,0,58,216,1,0,36,221,255,255,174,120,193,2,70,221,255,255,174,120,193,2,175,120,5,5,48,0,58,216,1,0,37,221,255,255,176,120,193,2,70,221,255,255,176,120,193,2,177,120,5,5,48,0,58,216,1,0,38,221,255,255,178,120,193,2,70,221,255,255,178,120,193,2,179,120,5,5,48,0,58,216,1,0,39,221,255,255,180,120,193,2,70,221,255,255,180,120,193,2,181,120,5,5,48,0,58,216,1,0,40,221,255,255,182,120,193,2,70,221,255,255,182,120,193,2,183,120,5,5,48,0,58,216,1,0,41,221,255,255,184,120,193,2,70,221,255,255,184,120,193,2,185,120,5,5,48,0,58,216,1,0,42,221,255,255,186,120,193,2,70,221,255,255,186,120,193,2,187,120,5,5,48,0,58,216,1,0,43,221,4,192,198,193,69,221,255,255,188,120,193,2,189,120,5,5,48,0,58,216,1,0,44,221,255,255,190,120,193,2,70,221,255,255,190,120,193,2,191,120,5,5,48,0,58,216,1,0,45,221,4,192,198,225,69,221,255,255,192,120,193,2,193,120,5,5,48,0,58,216,1,0,46,221,5,192,198,1,69,221,255,255,194,120,193,2,195,120,5,5,48,0,58,216,1,0,47,221,255,255,196,120,193,2,70,221,255,255,196,120,193,2,197,120,5,5,48,0,58,216,1,0,48,221,255,255,198,120,193,2,70,221,255,255,198,120,193,2,199,120,5,5,48,0,58,216,1,0,49,221,255,255,200,120,193,2,70,221,255,255,200,120,193,2,201,120,5,5,48,0,58,216,1,0,50,221,255,255,202,120,193,2,70,221,255,255,202,120,193,2,203,120,5,5,48,0,58,216,1,0,51,221,255,255,204,120,193,2,70,221,255,255,204,120,193,2,205,120,5,5,48,0,58,216,1,0,52,221,255,255,206,120,193,2,70,221,255,255,206,120,193,2,207,120,5,5,48,0,58,216,1,0,53,221,5,192,198,33,69,221,255,255,208,120,193,2,209,120,5,5,48,0,58,216,1,0,54,221,255,255,210,120,193,2,70,221,255,255,210,120,193,2,211,120,5,5,48,0,58,216,1,0,55,221,255,255,212,120,193,2,70,221,255,255,212,120,193,2,213,120,5,5,48,0,58,216,1,0,56,221,255,255,214,120,193,2,70,221,255,255,214,120,193,2,215,120,5,5,48,0,58,216,1,0,57,221,255,255,216,120,193,2,70,221,255,255,216,120,193,2,217,120,5,5,48,0,58,216,1,0,58,221,255,255,218,120,193,2,70,221,255,255,218,120,193,2,219,120,5,5,48,0,58,216,1,0,59,221,255,255,220,120,193,2,70,221,255,255,220,120,193,2,221,120,5,5,48,0,58,216,1,0,60,221,255,255,222,120,193,2,70,221,255,255,222,120,193,2,223,120,5,5,48,0,58,216,1,0,61,221,255,255,224,120,193,2,70,221,255,255,224,120,193,2,225,120,5,5,48,0,58,216,1,0,62,221,255,255,226,120,193,2,70,221,255,255,226,120,193,2,227,120,5,5,48,0,58,216,1,0,63,221,255,255,228,120,193,2,70,221,255,255,228,120,193,2,229,120,5,5,48,0,58,216,1,0,64,221,255,255,230,120,193,2,70,221,255,255,230,120,193,2,231,120,5,5,48,0,58,216,1,0,65,221,255,255,232,120,193,2,70,221,255,255,232,120,193,2,233,120,5,5,48,0,58,216,1,0,66,221,255,255,234,120,193,2,70,221,255,255,234,120,193,2,235,120,5,5,48,0,58,216,1,0,67,221,255,255,236,120,193,2,70,221,255,255,236,120,193,2,8,128,0,0,1,0,0,233,1,0,9,233,1,0,10,233,1,0,71,233,3,0,78,0,61,0,70,0,135,2,0,16,9,0,0,96,1,0,0,96,1,0,52,0,20,11,0,32,2,0,32,0,41,0,170,170,4,0,0,96,25,11,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,63,34,0,32,7,0,0,0,26,0,0,0,65,34,0,0,65,34,0,0,3,0,0,0,0,0,0,0,169,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,116,114,97,100,105,116,105,111,110,97,108,0,170,0,0,52,0,50,0,0,0,45,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,102,0,105,0,45,0,117,0,45,0,99,0,111,0,45,0,116,0,114,0,97,0,100,0,93,0,0,0,103,220,38,0,68,0,53,3,60,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,71,0,53,3,60,0,60,0,229,1,60,0,60,0,60,0,228,1,38,0,78,0,53,3,60,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,84,0,53,3,60,0,60,0,103,1,60,0,60,0,60,0,102,1,38,0,89,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,38,0,90,0,53,3,60,0,60,0,146,2,60,0,60,0,60,0,183,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,0,0,128,220,38,0,68,0,60,0,60,0,240,0,60,0,60,0,60,0,208,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,78,0,60,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,84,0,60,0,60,0,254,0,47,0,104,0,60,0,60,0,60,0,222,0,47,0,104,0,38,0,86,0,60,0,60,0,119,0,60,0,60,0,60,0,87,0,38,0,89,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,60,0,60,0,113,1,60,0,60,0,60,0,112,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,245,0,60,0,60,0,60,0,213,0,60,0,60,0,83,1,60,0,60,0,60,0,82,1,0,0,170,170,170,170,170,170,170,170,6,50,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,202,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,116,39,0,0,116,39,0,0,148,42,0,0,148,42,0,0,240,46,0,0,240,46,0,0,234,49,0,0,234,49,0,0,234,49,0,0,50,105,114,84,1,0,64,8,106,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,149,0,157,0,163,0,171,0,179,0,187,0,48,0,56,0,186,0,194,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,211,0,219,0,48,0,48,0,48,0,227,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,235,0,48,0,48,0,243,0,48,0,249,0,1,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,12,1,48,0,17,1,21,1,29,1,37,1,42,1,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,64,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,209,0,48,0,48,0,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,97,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,75,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,83,1,48,0,48,0,89,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,84,2,140,2,204,2,192,0,232,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,33,0,202,193,33,0,202,226,33,0,202,3,34,0,202,36,34,0,202,69,34,0,202,102,34,0,202,135,34,0,202,168,34,0,202,201,34,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,3,0,156,5,0,84,134,70,0,84,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,4,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,38,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,7,0,5,5,0,84,5,70,0,84,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,225,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,198,65,0,0,198,97,0,0,5,5,127,12,198,1,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,2,25,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,33,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,198,161,0,0,193,4,111,93,5,5,125,12,198,65,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,9,0,201,166,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,48,5,71,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,68,5,70,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,193,0,0,198,225,1,0,198,1,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,198,11,0,201,230,12,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,14,0,201,134,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,17,0,201,38,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,0,197,162,4,0,197,34,0,0,197,98,0,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,192,0,0,0,198,98,3,0,197,226,5,0,192,0,0,0,192,0,0,0,198,162,3,0,198,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,19,0,201,198,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,5,0,197,98,6,0,198,162,5,0,198,226,5,0,198,34,6,0,198,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,6,0,197,162,6,0,198,226,6,0,198,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,70,22,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,24,0,5,71,238,102,201,6,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,8,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,192,0,0,0,197,226,8,0,192,0,0,0,197,34,9,0,197,99,9,0,197,194,9,0,192,0,0,0,192,0,0,0,197,2,10,0,197,67,10,0,197,162,10,0,192,0,0,0,192,0,0,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,6,0,197,34,11,0,5,5,10,121,197,98,11,0,197,162,11,0,5,5,12,121,5,5,16,121,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,5,5,18,121,5,5,20,121,197,130,7,0,5,5,24,121,197,162,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,25,0,201,6,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,7,0,198,34,8,0,198,98,8,0,198,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,28,0,201,70,29,0,201,102,30,0,201,134,31,0,201,166,32,0,201,198,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,6,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,37,0,201,166,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,2,0,198,226,2,0,201,38,40,0,201,166,41,0,201,38,43,0,201,70,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,45,0,201,134,46,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,72,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,72,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,73,0,4,111,93,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,70,0,80,5,5,0,56,5,70,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,84,5,142,0,0,5,70,0,84,5,142,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,134,70,0,84,5,138,0,0,5,70,0,84,5,138,0,0,134,70,0,84,5,136,0,0,5,70,0,84,5,136,0,0,134,70,0,84,5,150,0,0,5,70,0,84,5,150,0,0,134,70,0,84,5,156,0,0,5,70,0,84,5,156,0,0,134,70,0,84,5,196,0,0,5,70,0,84,5,196,0,0,5,70,0,84,5,146,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,6,0,5,5,10,121,5,5,12,121,197,34,7,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,7,0,5,5,24,121,197,162,7,0,5,5,28,121,5,5,30,121,197,226,7,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,8,0,5,5,107,121,197,98,8,0,5,5,111,121,197,162,8,0,5,5,115,121,197,226,8,0,5,5,119,121,197,34,9,0,197,99,9,0,197,194,9,0,5,5,127,121,5,5,129,121,197,2,10,0,197,67,10,0,197,162,10,0,5,5,137,121,5,5,139,121,197,226,10,0,5,5,143,121,5,5,6,121,197,226,6,0,197,34,11,0,5,5,10,121,197,98,11,0,197,162,11,0,5,5,12,121,5,5,16,121,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,5,5,18,121,5,5,20,121,197,130,7,0,5,5,24,121,197,162,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,70,156,5,2,0,3,3,0,192,198,65,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,70,5,5,2,0,3,3,0,192,198,161,8,3,255,255,111,93,193,4,11,3,0,192,198,193,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,3,3,2,192,198,34,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,2,0,3,3,2,192,198,226,8,3,3,192,197,34,11,3,3,192,198,34,156,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,5,82,196,190,1,0,8,3,3,192,197,226,11,3,4,192,197,34,156,70,196,162,2,0,3,3,4,192,198,34,8,3,4,192,198,98,11,3,4,192,198,162,5,70,196,162,2,0,3,3,4,192,198,226,8,3,6,192,197,34,11,3,5,192,198,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,7,192,198,98,10,3,7,192,198,162,5,42,196,200,1,0,8,3,13,192,197,162,10,3,13,192,197,226,156,82,196,198,1,0,8,3,14,192,197,34,11,3,14,192,197,98,5,82,196,198,1,0,8,3,14,192,197,162,11,3,14,192,197,226,156,82,196,208,1,0,8,3,15,192,197,34,11,3,15,192,197,98,5,82,196,208,1,0,8,3,15,192,197,162,11,3,15,192,197,226,156,82,196,204,1,0,8,3,16,192,197,34,11,3,16,192,197,98,5,82,196,204,1,0,8,3,16,192,197,162,11,3,16,192,197,226,156,42,196,196,1,0,8,3,8,192,198,226,10,3,9,192,198,34,5,42,196,196,1,0,8,3,19,192,197,226,10,3,20,192,197,34,156,70,196,196,2,0,3,3,9,192,198,98,8,3,9,192,198,162,11,3,9,192,198,226,5,70,196,196,2,0,3,3,10,192,198,34,8,3,20,192,197,98,11,3,10,192,198,98,20,0,197,163,2,0,3,3,10,192,198,163,8,3,11,192,198,3,11,3,11,192,198,99,21,0,197,3,2,0,3,3,11,192,198,195,8,3,21,192,197,99,11,3,12,192,198,35,156,82,196,196,1,0,8,3,21,192,197,194,11,3,22,192,197,2,5,82,196,196,1,0,8,3,22,192,197,66,11,3,22,192,197,130,22,0,197,195,1,0,8,3,23,192,197,35,11,3,23,192,197,131,23,0,197,227,1,0,8,3,24,192,197,67,11,3,24,192,197,163,170,170,3,0,67,0,50,0,59,0,171,0,0,16,4,0,0,96,1,0,0,96,92,40,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,36,31,0,0,36,31,0,0,148,32,0,0,148,32,0,0,124,34,0,0,124,34,0,0,84,36,0,0,84,36,0,0,64,40,0,0,50,105,114,84,1,0,64,8,229,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,107,0,115,0,121,0,129,0,137,0,145,0,48,0,56,0,149,0,157,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,181,0,48,0,48,0,185,0,48,0,193,0,198,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,212,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,220,0,173,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,172,1,228,1,36,2,192,0,84,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,14,0,202,33,14,0,202,66,14,0,202,99,14,0,202,132,14,0,202,165,14,0,202,198,14,0,202,231,14,0,202,8,15,0,202,41,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,1,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,2,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,38,4,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,5,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,97,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,65,0,0,5,5,127,12,198,129,0,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,160,5,38,93,197,194,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,161,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,193,4,111,93,5,5,125,12,198,193,0,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,6,0,201,102,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,197,226,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,8,0,201,70,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,10,0,201,198,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,11,0,201,70,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,197,34,0,0,197,98,0,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,192,0,0,0,198,162,1,0,197,162,5,0,192,0,0,0,192,0,0,0,198,226,1,0,198,34,2,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,13,0,201,198,13,0,192,0,0,0,192,0,0,0,197,163,6,0,197,3,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,0,197,98,7,0,198,226,2,0,198,34,3,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,3,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,16,0,201,134,17,0,201,70,18,0,201,6,19,0,201,198,19,0,201,134,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,21,0,201,102,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,23,0,201,70,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,25,0,201,198,25,0,201,134,26,0,201,70,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,28,0,201,198,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,156,5,0,48,194,6,6,179,28,5,0,48,194,5,6,179,156,5,0,68,194,6,4,179,28,5,0,68,194,5,4,179,156,5,0,80,194,6,3,179,28,5,0,80,194,5,3,179,134,70,0,90,5,162,0,0,5,70,0,90,5,162,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,5,70,0,90,5,190,0,0,156,5,0,92,194,6,2,179,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,156,5,0,54,194,6,5,179,28,5,0,54,194,5,5,179,193,4,111,93,5,162,0,0,156,5,0,92,194,6,2,179,5,144,0,0,28,5,0,92,194,5,2,179,5,144,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,5,70,0,90,5,198,0,0,134,70,0,90,5,208,0,0,5,70,0,90,5,208,0,0,134,70,0,90,5,204,0,0,5,70,0,90,5,204,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,5,70,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,70,156,5,48,0,8,3,0,192,198,65,0,82,156,5,1,0,8,3,255,255,0,90,134,70,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,70,5,5,48,0,8,3,255,255,111,93,193,4,0,82,5,5,1,0,8,3,255,255,0,90,5,70,68,3,0,192,197,98,156,42,196,162,1,0,8,3,0,192,198,226,10,3,1,192,198,34,5,42,196,162,1,0,8,3,0,192,197,162,10,3,0,192,197,226,156,82,196,162,48,0,8,3,2,192,197,162,5,82,196,162,48,0,8,3,2,192,197,226,156,70,196,190,48,0,8,3,1,192,198,98,5,70,196,190,48,0,8,3,3,192,197,34,156,82,196,190,48,0,8,3,3,192,197,98,5,82,196,190,48,0,8,3,3,192,197,162,156,70,196,162,48,0,8,3,2,192,198,98,5,70,196,162,48,0,8,3,6,192,197,98,156,42,196,200,1,0,8,3,4,192,198,34,10,3,4,192,198,98,5,42,196,200,1,0,8,3,7,192,197,226,10,3,8,192,197,34,156,82,196,198,48,0,8,3,8,192,197,98,5,82,196,198,48,0,8,3,8,192,197,162,156,82,196,208,48,0,8,3,8,192,197,226,5,82,196,208,48,0,8,3,9,192,197,34,156,82,196,204,48,0,8,3,9,192,197,98,5,82,196,204,48,0,8,3,9,192,197,162,156,42,196,196,1,0,8,3,4,192,198,162,10,3,4,192,198,226,5,42,196,196,1,0,8,3,9,192,197,226,10,3,10,192,197,34,156,70,196,196,48,0,8,3,5,192,198,34,5,70,196,196,48,0,8,3,10,192,197,98,10,0,197,163,48,0,8,3,5,192,198,99,11,0,197,3,48,0,8,3,11,192,197,99,156,82,196,196,48,0,8,3,11,192,197,194,5,82,196,196,48,0,8,3,12,192,197,2,12,0,197,67,48,0,8,3,12,192,197,163,13,0,197,3,48,0,8,3,13,192,197,99,5,2,64,12,32,14,192,14,232,14,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,28,4,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,30,4,185,120,185,124,185,132,186,136,185,140,32,4,185,148,185,152,185,156,185,160,185,164,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,36,4,168,120,168,124,168,132,168,136,168,140,38,4,168,148,168,152,168,156,168,160,168,164,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,116,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,180,185,176,217,180,217,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,117,153,117,249,117,153,118,185,184,136,14,217,184,185,145,153,145,249,145,217,160,153,161,185,168,0,8,168,57,136,57,232,57,136,58,168,180,168,176,200,180,200,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,117,136,117,232,117,136,118,168,184,128,14,200,184,168,145,136,145,232,145,200,160,136,161,168,168,72,162,25,59,8,59,217,57,200,57,40,4,42,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,2,8,137,71,26,75,8,75,218,73,200,73,186,74,168,74,250,74,232,74,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,217,82,200,82,249,85,232,85,57,87,40,87,154,90,136,90,26,91,8,91,218,89,200,89,250,90,232,90,186,90,168,92,4,8,6,8,250,97,232,97,217,102,200,102,168,128,153,105,136,105,217,106,200,106,25,106,8,106,185,107,168,107,57,107,40,107,154,113,136,113,218,114,200,114,26,114,8,114,8,8,10,8,106,115,25,119,8,119,217,117,200,117,121,118,104,118,12,8,14,8,153,133,136,133,217,134,200,134,25,134,8,134,154,137,136,137,250,137,232,137,218,138,200,138,26,138,8,138,217,142,200,142,25,142,8,142,16,8,73,143,153,146,136,146,25,147,8,147,217,145,200,145,57,146,40,146,121,146,104,146,44,4,46,4,249,153,232,153,249,161,232,161,89,162,153,165,136,165,185,166,168,166,25,166,8,166,232,136,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,18,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,20,8,1,0,8,14,22,8,1,0,16,14,0,13,8,13,24,14,24,8,200,12,72,12,32,14,200,136,169,136,185,68,137,3,187,88,187,96,169,88,169,96,169,172,169,112,186,112,105,3,217,116,187,72,200,116,169,72,185,140,73,3,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,116,255,5,185,144,255,5,168,56,255,5,168,116,255,5,168,144,255,5,249,58,255,5,232,58,255,5,249,146,255,5,232,146,255,1,3,0,67,0,50,0,59,0,51,13,0,16,51,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,132,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,31,0,0,52,31,0,0,84,34,0,0,84,34,0,0,204,36,0,0,204,36,0,0,128,39,0,0,128,39,0,0,104,43,0,0,50,105,114,84,1,0,64,8,230,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,48,0,174,0,178,0,186,0,194,0,199,0,207,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,221,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,18,0,202,161,18,0,202,194,18,0,202,227,18,0,202,4,19,0,202,37,19,0,202,70,19,0,202,103,19,0,202,136,19,0,202,169,19,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,0,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,2,0,156,5,0,84,134,70,0,84,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,4,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,5,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,6,7,0,5,5,0,84,5,70,0,84,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,225,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,198,65,0,0,198,97,0,0,5,5,127,12,198,1,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,66,18,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,33,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,198,161,0,0,193,4,111,93,5,5,125,12,198,65,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,8,0,201,230,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,48,5,71,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,68,5,70,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,193,0,0,198,225,1,0,198,1,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,6,11,0,201,38,12,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,13,0,201,198,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,16,0,201,102,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,0,197,162,4,0,197,34,0,0,197,98,0,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,192,0,0,0,198,98,3,0,197,226,5,0,192,0,0,0,192,0,0,0,198,162,3,0,198,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,6,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,5,0,197,98,6,0,198,162,5,0,198,226,5,0,198,34,6,0,198,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,6,0,197,162,6,0,198,226,6,0,198,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,21,0,201,166,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,7,0,198,34,8,0,198,98,8,0,198,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,201,6,26,0,201,38,27,0,201,70,28,0,201,102,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,166,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,70,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,2,0,198,226,2,0,201,198,35,0,201,70,37,0,201,198,38,0,201,230,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,41,0,201,38,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,72,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,72,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,73,0,4,111,93,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,70,0,80,5,5,0,56,5,70,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,84,5,142,0,0,5,70,0,84,5,142,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,134,70,0,84,5,138,0,0,5,70,0,84,5,138,0,0,134,70,0,84,5,136,0,0,5,70,0,84,5,136,0,0,134,70,0,84,5,150,0,0,5,70,0,84,5,150,0,0,134,70,0,84,5,156,0,0,5,70,0,84,5,156,0,0,134,70,0,84,5,196,0,0,5,70,0,84,5,196,0,0,5,70,0,84,5,146,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,70,156,5,2,0,3,3,0,192,198,65,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,70,5,5,2,0,3,3,0,192,198,161,8,3,255,255,111,93,193,4,11,3,0,192,198,193,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,3,3,2,192,198,34,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,2,0,3,3,2,192,198,226,8,3,3,192,197,34,11,3,3,192,198,34,156,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,5,82,196,190,1,0,8,3,3,192,197,226,11,3,4,192,197,34,156,70,196,162,2,0,3,3,4,192,198,34,8,3,4,192,198,98,11,3,4,192,198,162,5,70,196,162,2,0,3,3,4,192,198,226,8,3,6,192,197,34,11,3,5,192,198,34,156,42,196,200,1,0,8,3,7,192,198,98,10,3,7,192,198,162,5,42,196,200,1,0,8,3,6,192,197,226,10,3,7,192,197,34,156,82,196,198,1,0,8,3,7,192,197,98,11,3,7,192,197,162,5,82,196,198,1,0,8,3,7,192,197,226,11,3,8,192,197,34,156,82,196,208,1,0,8,3,8,192,197,98,11,3,8,192,197,162,5,82,196,208,1,0,8,3,8,192,197,226,11,3,9,192,197,34,156,82,196,204,1,0,8,3,9,192,197,98,11,3,9,192,197,162,5,82,196,204,1,0,8,3,9,192,197,226,11,3,10,192,197,34,156,42,196,196,1,0,8,3,8,192,198,226,10,3,9,192,198,34,5,42,196,196,1,0,8,3,13,192,197,34,10,3,13,192,197,98,156,70,196,196,2,0,3,3,9,192,198,98,8,3,9,192,198,162,11,3,9,192,198,226,5,70,196,196,2,0,3,3,10,192,198,34,8,3,13,192,197,162,11,3,10,192,198,98,13,0,197,227,2,0,3,3,10,192,198,163,8,3,11,192,198,3,11,3,11,192,198,99,14,0,197,67,2,0,3,3,11,192,198,195,8,3,14,192,197,163,11,3,12,192,198,35,156,82,196,196,1,0,8,3,15,192,197,2,11,3,15,192,197,66,5,82,196,196,1,0,8,3,15,192,197,130,11,3,15,192,197,194,16,0,197,3,1,0,8,3,16,192,197,99,11,3,16,192,197,195,17,0,197,35,1,0,8,3,17,192,197,131,11,3,17,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,185,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,28,4,185,120,185,124,185,132,186,136,185,140,30,4,185,152,217,152,185,156,185,160,185,164,88,13,168,13,96,13,56,14,80,12,40,14,32,4,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,34,4,168,120,168,124,168,132,168,136,168,140,36,4,168,152,200,152,168,156,168,160,168,164,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,116,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,185,176,185,172,217,176,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,217,68,122,114,185,117,153,117,249,117,25,181,185,180,136,14,217,180,185,149,153,149,249,149,217,160,153,161,0,8,2,8,168,57,136,57,232,57,104,58,168,176,168,172,200,176,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,104,114,168,117,136,117,232,117,8,181,168,180,128,14,200,180,168,149,136,149,232,149,200,160,136,161,4,8,72,162,249,58,232,58,217,57,200,57,38,4,40,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,249,68,232,68,249,74,232,74,217,73,200,73,153,74,136,74,217,74,200,74,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,128,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,217,112,200,112,249,118,232,118,217,117,200,117,249,180,232,180,57,181,40,181,153,133,136,133,185,134,168,134,25,134,8,134,154,137,136,137,250,137,232,137,186,138,168,138,26,138,8,138,185,142,168,142,25,142,8,142,185,144,168,144,121,150,104,150,249,150,232,150,217,149,200,149,57,150,40,150,249,160,232,160,42,4,44,4,12,8,14,8,249,161,232,161,89,162,153,165,136,165,153,166,136,166,25,166,8,166,232,136,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,140,168,84,200,136,169,136,200,140,168,84,187,88,187,96,169,88,169,96,169,168,169,112,217,152,232,1,200,152,232,1,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,116,255,5,185,148,255,5,168,56,255,5,168,116,255,5,168,148,255,5,217,58,255,5,200,58,255,5,217,150,255,5,200,150,255,1,3,0,67,0,50,0,59,0,83,23,0,16,156,0,0,96,1,0,0,96,3,0,43,0,82,0,91,0,46,13,0,32,75,23,0,32,53,34,0,32,1,0,32,0,58,34,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,3,8,0,32,7,0,0,0,21,0,0,0,5,8,0,0,5,8,0,0,3,0,0,0,0,0,0,0,34,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,78,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,0,0,170,170,170,170,94,31,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,0,26,0,0,0,26,0,0,32,27,0,0,58,27,0,0,70,31,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,8,0,202,65,8,0,202,98,8,0,202,131,8,0,202,164,8,0,202,197,8,0,202,230,8,0,202,7,9,0,202,40,9,0,202,73,9,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,4,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,196,7,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,7,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,12,0,201,198,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,13,0,201,70,14,0,201,6,15,0,201,198,15,0,201,134,16,0,201,70,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,3,69,5,140,0,0,70,5,3,69,5,140,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,160,0,0,70,5,3,69,5,160,0,0,135,5,3,69,5,144,0,0,70,5,3,69,5,144,0,0,135,5,3,69,5,136,0,0,70,5,3,69,5,136,0,0,135,5,3,69,5,164,0,0,70,5,3,69,5,164,0,0,5,5,3,69,5,142,0,0,5,5,3,69,5,140,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,160,0,0,5,5,3,69,5,144,0,0,5,5,3,69,5,136,0,0,5,5,3,69,5,164,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,16,0,34,1,30,0,244,1,16,0,244,1,2,192,197,162,245,1,2,192,197,226,3,3,255,255,2,69,134,5,32,30,3,192,197,34,33,30,3,192,197,98,34,1,1,192,197,162,35,1,1,192,197,226,230,1,2,192,197,34,231,1,2,192,197,98,30,1,12,0,30,1,0,192,197,162,31,1,0,192,197,226,32,1,1,192,197,34,33,1,1,192,197,98,71,0,255,255,3,69,135,5,103,0,255,255,3,69,70,5,28,1,197,162,29,1,0,192,197,98,0,68,5,5,8,0,35,1,16,0,35,1,4,192,197,98,231,1,4,192,197,162,245,1,4,192,197,226,3,3,255,255,2,69,5,5,33,30,5,192,197,34,103,0,255,255,3,69,5,5,29,1,3,192,197,162,31,1,3,192,197,226,33,1,4,192,197,34,156,68,196,160,48,0,3,3,5,192,197,98,5,68,196,160,48,0,3,3,5,192,197,162,156,68,196,196,48,0,3,3,5,192,197,226,5,68,196,196,48,0,3,3,6,192,197,34,156,68,196,210,48,0,3,3,6,192,197,98,5,68,196,210,48,0,3,3,6,192,197,162,156,68,196,204,48,0,3,3,6,192,197,226,5,68,196,204,48,0,3,3,7,192,197,34,12,0,71,0,72,0,103,0,104,0,28,1,36,1,230,1,232,1,244,1,246,1,32,30,34,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,128,185,132,185,136,185,144,186,148,185,152,185,160,185,164,185,168,185,172,185,176,185,180,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,48,4,168,128,168,132,168,136,168,144,168,148,168,152,168,160,168,164,168,168,168,172,168,176,168,180,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,129,153,129,249,129,153,130,89,130,136,14,217,130,185,161,153,161,249,161,89,162,153,177,185,184,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,129,136,129,232,129,136,130,72,130,128,14,200,130,168,161,136,161,232,161,72,162,136,177,168,184,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,140,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,60,4,62,4,26,114,8,114,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,145,136,145,249,146,232,146,25,146,8,146,154,149,136,149,250,149,232,149,250,150,232,150,26,150,8,150,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,181,136,181,185,182,168,182,25,182,8,182,232,148,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,148,169,148,200,56,169,72,187,88,187,96,169,88,169,96,169,188,169,112,217,128,187,72,200,128,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,71,4,186,120,103,4,177,120,28,5,250,121,29,5,241,121,30,5,218,121,31,5,209,121,32,5,186,122,33,5,177,122,34,5,250,122,35,5,241,122,255,5,168,112,103,4,168,120,29,5,232,121,31,5,200,121,33,5,168,122,35,5,232,122,255,5,250,114,255,5,232,114,255,1,170,170,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,252,7,0,32,1,0,32,0,1,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,140,27,0,32,7,0,0,0,23,0,0,0,142,27,0,0,142,27,0,0,3,0,0,0,0,0,0,0,119,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,102,0,111,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,134,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,60,0,97,0,97,0,60,0,60,0,60,0,65,0,97,0,60,0,60,0,60,0,65,0,65,0,0,0,170,170,4,57,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,163,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,140,47,0,0,140,47,0,0,76,51,0,0,76,51,0,0,178,56,0,0,232,56,0,0,232,56,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,28,0,202,225,28,0,202,2,29,0,202,35,29,0,202,68,29,0,202,101,29,0,202,134,29,0,202,167,29,0,202,200,29,0,202,233,29,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,196,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,102,29,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,38,30,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,70,31,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,228,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,166,47,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,48,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,34,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,51,0,201,102,52,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,55,0,201,230,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,58,0,201,38,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,60,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,62,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,64,0,5,71,238,102,201,70,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,66,0,201,70,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,68,0,201,134,69,0,201,166,70,0,201,198,71,0,201,230,72,0,201,6,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,75,0,201,70,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,77,0,201,134,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,79,0,201,198,80,0,201,230,81,0,201,6,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,84,0,201,70,85,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,12,192,197,162,156,82,196,198,1,0,8,3,12,192,197,226,11,3,13,192,197,34,5,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,156,82,196,208,1,0,8,3,13,192,197,226,11,3,14,192,197,34,5,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,156,82,196,204,1,0,8,3,14,192,197,226,11,3,15,192,197,34,5,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,15,192,197,226,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,16,0,197,35,1,0,8,3,35,192,198,35,11,3,35,192,198,131,16,0,197,131,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,16,192,197,226,11,3,17,192,197,34,5,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,17,0,197,227,1,0,8,3,18,192,197,67,11,3,18,192,197,163,19,0,197,3,1,0,8,3,19,192,197,99,11,3,19,192,197,195,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,3,0,67,0,50,0,59,0,119,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,10,51,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,92,39,0,0,92,39,0,0,56,41,0,0,56,41,0,0,88,46,0,0,142,46,0,0,238,50,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,13,0,202,193,13,0,202,226,13,0,202,3,14,0,202,36,14,0,202,69,14,0,202,102,14,0,202,135,14,0,202,168,14,0,202,201,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,4,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,28,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,29,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,134,30,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,36,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,230,46,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,47,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,48,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,98,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,50,0,201,166,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,198,52,0,201,230,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,55,0,201,38,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,57,0,201,102,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,59,0,201,166,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,61,0,201,230,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,64,0,201,38,65,0,201,70,66,0,201,102,67,0,201,134,68,0,201,166,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,70,0,201,230,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,73,0,201,38,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,75,0,201,102,76,0,201,134,77,0,201,166,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,79,0,201,230,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,137,0,5,0,4,111,93,0,72,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,137,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,137,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,72,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,7,0,5,0,4,111,93,0,7,0,5,0,4,111,93,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,144,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,184,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,7,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,7,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,5,192,197,226,156,82,196,198,1,0,8,3,6,192,197,34,11,3,6,192,197,98,5,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,156,82,196,208,1,0,8,3,7,192,197,34,11,3,7,192,197,98,5,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,156,82,196,204,1,0,8,3,8,192,197,34,11,3,8,192,197,98,5,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,9,192,197,34,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,9,0,197,99,1,0,8,3,35,192,198,35,11,3,35,192,198,131,9,0,197,195,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,10,192,197,34,11,3,10,192,197,98,5,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,11,0,197,35,1,0,8,3,11,192,197,131,11,3,11,192,197,227,12,0,197,67,1,0,8,3,12,192,197,163,11,3,13,192,197,3,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,64,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,66,4,185,124,185,128,185,136,186,140,186,144,68,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,70,4,168,60,168,64,168,68,92,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,94,4,168,124,168,128,168,136,168,140,168,144,96,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,180,185,188,185,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,184,136,14,185,184,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,200,180,168,188,168,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,184,128,14,168,184,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,98,4,100,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,180,232,180,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,25,185,8,185,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,102,4,104,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,176,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,65,4,188,188,97,4,179,188,192,4,188,189,193,4,156,189,194,4,252,189,195,4,124,190,196,4,92,190,197,4,60,190,224,4,179,189,225,4,147,189,226,4,243,189,227,4,115,190,228,4,83,190,229,4,51,190,0,5,252,190,1,5,243,190,2,5,220,189,3,5,211,189,4,5,220,190,5,5,211,190,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,97,4,170,188,224,4,170,189,225,4,138,189,226,4,234,189,227,4,106,190,228,4,74,190,229,4,42,190,1,5,234,190,3,5,202,189,5,5,202,190,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,170,170,3,0,67,0,50,0,59,0,191,14,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,185,14,0,32,131,27,0,32,1,0,32,0,136,27,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,47,0,0,32,7,0,0,0,21,0,0,0,49,0,0,0,49,0,0,0,3,0,0,0,0,0,0,0,30,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,98,0,97,0,99,0,107,0,119,0,97,0,114,0,100,0,115,0,32,0,50,0,93,0,0,0,170,170,170,170,32,0,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,2,0,0,0,16,40,2,15,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,40,0,0,32,1,0,32,0,45,0,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,223,7,0,32,7,0,0,0,21,0,0,0,225,7,0,0,225,7,0,0,3,0,0,0,0,0,0,0,28,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,73,0,60,0,60,0,121,0,60,0,60,0,60,0,89,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,224,30,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,26,0,0,20,26,0,0,20,26,0,0,20,26,0,0,240,26,0,0,240,26,0,0,240,26,0,0,240,26,0,0,200,30,0,0,50,105,114,84,1,0,64,8,148,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,95,0,103,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,124,0,48,0,48,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,119,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,124,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,5,0,202,193,5,0,202,226,5,0,202,3,6,0,202,36,6,0,202,69,6,0,202,102,6,0,202,135,6,0,202,168,6,0,202,201,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,134,70,0,58,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,70,0,58,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,4,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,197,34,0,0,160,5,38,93,197,34,5,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,5,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,197,98,0,0,5,5,38,93,197,162,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,0,0,197,34,1,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,197,226,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,2,0,197,34,3,0,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,70,0,58,5,136,0,0,5,70,0,58,5,136,0,0,5,70,0,58,5,150,0,0,134,70,0,58,5,142,0,0,5,70,0,58,5,142,0,0,134,70,0,58,5,150,0,0,134,70,0,58,5,164,0,0,5,70,0,58,5,164,0,0,134,70,0,58,5,156,0,0,5,70,0,58,5,156,0,0,5,70,0,58,5,146,0,0,134,70,0,58,5,138,0,0,5,70,0,58,5,138,0,0,134,70,0,58,5,196,0,0,5,70,0,58,5,196,0,0,134,70,0,58,5,182,0,0,5,70,0,58,5,182,0,0,134,70,0,58,5,154,0,0,5,70,0,58,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,217,88,185,168,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,200,88,168,168,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,2,8,185,172,4,8,168,57,136,57,232,57,136,58,72,58,40,58,6,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,8,8,168,172,10,8,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,12,8,14,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,16,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,18,8,20,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,22,8,24,8,26,8,153,169,136,169,185,170,168,170,25,170,8,170,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,217,56,187,72,217,88,136,1,200,140,169,140,200,56,169,72,200,88,136,1,200,88,72,2,187,88,187,96,169,88,169,96,169,176,169,112,217,120,187,72,200,120,169,72,217,88,232,1,200,88,232,1,217,88,72,2,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,216,7,0,32,1,0,32,0,221,7,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,160,16,0,32,7,0,0,0,23,0,0,0,162,16,0,0,162,16,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,101,0,115,0,93,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,101,0,115,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,0,0,212,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,77,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,32,0,0,148,32,0,0,148,32,0,0,148,32,0,0,252,34,0,0,252,34,0,0,188,35,0,0,188,35,0,0,188,35,0,0,50,105,114,84,1,0,64,8,252,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,84,0,92,0,98,0,106,0,114,0,122,0,48,0,56,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,154,0,48,0,48,0,48,0,162,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,170,0,48,0,48,0,178,0,48,0,184,0,192,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,195,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,144,0,48,0,48,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,243,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,229,0,48,0,48,0,235,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,1,136,1,200,1,192,0,228,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,18,0,202,33,18,0,202,66,18,0,202,99,18,0,202,132,18,0,202,165,18,0,202,198,18,0,202,231,18,0,202,8,19,0,202,41,19,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,198,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,166,1,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,8,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,9,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,2,0,201,38,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,3,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,5,0,5,71,238,102,201,166,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,197,226,2,0,197,35,3,0,197,130,3,0,192,0,0,0,192,0,0,0,197,194,3,0,197,3,4,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,7,0,201,70,8,0,201,6,9,0,201,198,9,0,201,134,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,0,0,5,5,10,121,5,5,12,121,197,226,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,197,162,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,1,0,5,5,107,121,197,34,2,0,5,5,111,121,197,98,2,0,5,5,115,121,197,162,2,0,5,5,119,121,197,226,2,0,197,35,3,0,197,130,3,0,5,5,127,121,5,5,129,121,197,194,3,0,197,3,4,0,197,98,4,0,5,5,137,121,5,5,139,121,197,162,4,0,5,5,143,121,5,5,6,121,197,162,0,0,197,226,4,0,5,5,10,121,197,34,5,0,197,98,5,0,5,5,12,121,5,5,16,121,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,5,5,18,121,5,5,20,121,197,66,1,0,5,5,24,121,197,98,1,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,68,196,196,48,0,3,3,7,192,197,98,5,68,196,196,48,0,3,3,7,192,197,162,156,68,196,210,48,0,3,3,7,192,197,226,5,68,196,210,48,0,3,3,8,192,197,34,156,68,196,204,48,0,3,3,8,192,197,98,5,68,196,204,48,0,3,3,8,192,197,162,3,0,67,0,50,0,59,0,43,0,0,16,16,0,0,96,1,0,0,96,170,170,170,170,186,29,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,24,0,0,212,24,0,0,212,24,0,0,212,24,0,0,88,25,0,0,88,25,0,0,210,25,0,0,210,25,0,0,162,29,0,0,50,105,114,84,1,0,64,8,128,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,2,0,202,1,3,0,202,34,3,0,202,67,3,0,202,100,3,0,202,133,3,0,202,166,3,0,202,199,3,0,202,232,3,0,202,9,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,6,0,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,230,0,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,2,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,2,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,201,102,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,3,0,201,230,3,0,201,166,4,0,201,102,5,0,201,38,6,0,201,230,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,156,68,196,160,48,0,3,3,197,162,5,68,196,160,48,0,3,3,0,192,197,98,156,68,196,196,48,0,3,3,0,192,197,162,5,68,196,196,48,0,3,3,0,192,197,226,156,68,196,210,48,0,3,3,1,192,197,34,5,68,196,210,48,0,3,3,1,192,197,98,156,68,196,204,48,0,3,3,1,192,197,162,5,68,196,204,48,0,3,3,1,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,26,4,185,124,185,128,185,132,185,140,186,144,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,28,4,168,124,168,128,168,132,168,140,168,144,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,185,116,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,168,116,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,136,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,30,4,32,4,26,114,8,114,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,250,146,232,146,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,144,169,144,200,56,169,72,187,88,187,96,169,88,169,96,169,184,169,112,217,124,187,72,200,124,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,112,255,5,168,112,255,5,250,114,255,5,232,114,255,1,170,170,3,0,67,0,50,0,59,0,39,9,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,33,9,0,32,151,16,0,32,1,0,32,0,156,16,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,170,6,0,32,7,0,0,0,21,0,0,0,172,6,0,0,172,6,0,0,3,0,0,0,0,0,0,0,67,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,86,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,117,0,106,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,208,10,60,0,130,10,60,0,60,0,129,10,60,0,131,10,0,0,124,25,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,20,25,0,0,20,25,0,0,28,25,0,0,28,25,0,0,96,25,0,0,15,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,107,188,255,0,108,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,39,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,107,193,3,7,107,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,107,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,163,6,0,32,1,0,32,0,168,6,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,106,9,0,32,7,0,0,0,21,0,0,0,108,9,0,0,108,9,0,0,3,0,0,0,0,0,0,0,66,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,84,220,38,0,66,0,60,0,83,2,60,0,60,0,60,0,129,1,38,0,68,0,60,0,87,2,60,0,60,0,60,0,138,1,38,0,75,0,60,0,153,1,60,0,60,0,60,0,152,1,38,0,83,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,84,0,60,0,116,0,115,0,60,0,60,0,60,0,84,0,115,0,60,0,60,0,60,0,84,0,83,0,38,0,89,0,60,0,180,1,60,0,60,0,60,0,188,2,121,0,60,0,60,0,60,0,39,0,39,0,121,0,60,0,60,0,60,0,179,1,60,0,60,0,60,0,188,2,89,0,60,0,60,0,60,0,39,0,39,0,89,0,0,0,170,170,170,170,122,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,25,0,0,164,25,0,0,164,25,0,0,164,25,0,0,228,28,0,0,228,28,0,0,196,31,0,0,26,32,0,0,98,36,0,0,50,105,114,84,1,0,64,8,141,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,94,0,102,0,100,0,108,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,124,0,48,0,48,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,64,1,192,0,192,0,120,1,144,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,201,0,0,0,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,24,0,202,225,24,0,202,2,25,0,202,35,25,0,202,68,25,0,202,101,25,0,202,134,25,0,202,167,25,0,202,200,25,0,202,233,25,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,96,9,0,201,32,17,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,64,27,0,201,96,31,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,24,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,66,24,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,24,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,2,45,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,63,5,5,2,63,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,136,5,2,91,5,5,2,91,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,45,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,128,36,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,74,5,2,91,5,136,0,0,7,5,2,91,5,136,0,0,7,5,2,91,5,150,0,0,74,5,2,91,5,142,0,0,7,5,2,91,5,142,0,0,74,5,2,91,5,150,0,0,74,5,2,91,5,164,0,0,7,5,2,91,5,164,0,0,74,5,2,91,5,156,0,0,7,5,2,91,5,156,0,0,7,5,2,91,5,146,0,0,74,5,2,91,5,138,0,0,7,5,2,91,5,138,0,0,74,5,2,91,5,196,0,0,7,5,2,91,5,196,0,0,74,5,2,91,5,182,0,0,7,5,2,91,5,182,0,0,74,5,2,91,5,154,0,0,7,5,2,91,5,154,0,0,135,5,2,79,5,142,0,0,70,5,2,79,5,142,0,0,135,5,2,79,5,144,0,0,70,5,2,79,5,144,0,0,135,5,2,79,5,156,0,0,70,5,2,79,5,156,0,0,135,5,2,79,5,196,0,0,70,5,2,79,5,196,0,0,135,5,2,79,5,150,0,0,70,5,2,79,5,150,0,0,135,5,2,79,5,160,0,0,70,5,2,79,5,160,0,0,135,5,2,79,5,206,0,0,70,5,2,79,5,206,0,0,70,5,2,79,5,210,0,0,135,5,2,81,5,136,0,0,70,5,2,81,5,136,0,0,135,5,2,81,5,142,0,0,70,5,2,81,5,142,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,202,0,0,70,5,2,81,5,202,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,5,196,0,0,70,5,2,81,5,196,0,0,135,5,2,81,5,136,0,0,5,156,0,0,70,5,2,81,5,136,0,0,5,156,0,0,135,5,2,81,5,144,0,0,5,156,0,0,70,5,2,81,5,144,0,0,5,156,0,0,135,5,2,81,5,196,0,0,5,156,0,0,70,5,2,81,5,196,0,0,5,156,0,0,5,5,2,79,5,142,0,0,5,5,2,79,5,144,0,0,5,5,2,79,5,156,0,0,5,5,2,79,5,196,0,0,5,5,2,79,5,150,0,0,5,5,2,79,5,160,0,0,5,5,2,79,5,206,0,0,5,5,2,79,5,210,0,0,5,5,2,81,5,136,0,0,5,5,2,81,5,142,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,202,0,0,5,5,2,81,5,156,0,0,5,5,2,81,5,196,0,0,5,5,2,81,5,136,0,0,5,156,0,0,5,5,2,81,5,144,0,0,5,156,0,0,5,5,2,81,5,196,0,0,5,156,0,0,73,5,2,91,5,136,0,0,6,5,2,91,5,136,0,0,6,5,2,91,5,150,0,0,73,5,2,91,5,142,0,0,6,5,2,91,5,142,0,0,73,5,2,91,5,150,0,0,73,5,2,91,5,164,0,0,6,5,2,91,5,164,0,0,73,5,2,91,5,156,0,0,6,5,2,91,5,156,0,0,6,5,2,91,5,146,0,0,73,5,2,91,5,138,0,0,6,5,2,91,5,138,0,0,73,5,2,91,5,196,0,0,6,5,2,91,5,196,0,0,73,5,2,91,5,182,0,0,6,5,2,91,5,182,0,0,73,5,2,91,5,154,0,0,6,5,2,91,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,106,9,5,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,4,192,197,34,248,30,4,192,197,98,249,30,4,192,197,162,244,30,3,192,197,98,245,30,3,192,197,162,246,30,3,192,197,226,142,30,2,192,197,34,143,30,2,192,197,98,153,30,2,192,197,162,242,30,2,192,197,226,243,30,3,192,197,34,118,1,15,0,118,1,0,192,197,226,119,1,1,192,197,34,120,1,1,192,197,98,50,2,1,192,197,162,51,2,1,192,197,226,89,0,255,255,2,91,74,5,121,0,255,255,2,91,7,5,221,0,197,162,253,0,0,192,197,98,255,0,0,192,197,162,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,7,192,197,98,41,30,7,192,197,162,42,30,7,192,197,226,43,30,8,192,197,34,150,30,8,192,197,98,36,30,6,192,197,98,37,30,6,192,197,162,38,30,6,192,197,226,39,30,7,192,197,34,30,2,12,0,30,2,5,192,197,98,31,2,5,192,197,162,34,30,5,192,197,226,35,30,6,192,197,34,72,0,255,255,2,79,135,5,104,0,255,255,2,79,70,5,36,1,4,192,197,226,37,1,5,192,197,34,0,80,156,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,13,192,197,67,104,30,13,192,197,163,105,30,14,192,197,3,100,30,12,192,197,35,101,30,12,192,197,131,102,30,12,192,197,227,25,2,10,192,197,226,96,30,11,192,197,34,97,30,11,192,197,98,98,30,11,192,197,162,99,30,11,192,197,226,93,1,20,0,96,1,9,0,96,1,10,192,197,34,97,1,10,192,197,98,24,2,10,192,197,162,93,1,9,192,197,98,94,1,9,192,197,162,95,1,9,192,197,226,83,0,255,255,2,81,135,5,115,0,255,255,2,81,70,5,90,1,8,192,197,162,91,1,8,192,197,226,92,1,9,192,197,34,0,78,5,5,8,0,37,30,15,0,37,30,15,192,197,34,39,30,15,192,197,98,41,30,15,192,197,162,43,30,15,192,197,226,150,30,16,192,197,34,104,0,255,255,2,79,5,5,37,1,14,192,197,98,31,2,14,192,197,162,35,30,14,192,197,226,0,80,5,5,10,0,25,2,20,0,101,30,9,0,101,30,18,192,197,35,103,30,18,192,197,131,105,30,18,192,197,227,25,2,17,192,197,98,97,30,17,192,197,162,99,30,17,192,197,226,115,0,255,255,2,81,5,5,91,1,16,192,197,98,93,1,16,192,197,162,95,1,16,192,197,226,97,1,17,192,197,34,82,93,5,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,23,192,197,66,248,30,23,192,197,130,249,30,23,192,197,194,244,30,22,192,197,130,245,30,22,192,197,194,246,30,23,192,197,2,142,30,21,192,197,66,143,30,21,192,197,130,153,30,21,192,197,194,242,30,22,192,197,2,243,30,22,192,197,66,118,1,15,0,118,1,20,192,197,2,119,1,20,192,197,66,120,1,20,192,197,130,50,2,20,192,197,194,51,2,21,192,197,2,89,0,255,255,2,91,73,5,121,0,255,255,2,91,6,5,221,0,19,192,197,66,253,0,19,192,197,130,255,0,19,192,197,194,42,0,72,0,73,0,83,0,84,0,89,0,90,0,104,0,105,0,115,0,116,0,121,0,122,0,221,0,222,0,253,0,254,0,255,0,0,1,36,1,38,1,90,1,98,1,118,1,121,1,24,2,26,2,30,2,32,2,50,2,52,2,34,30,44,30,96,30,106,30,142,30,144,30,150,30,151,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,26,4,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,44,4,54,4,185,160,185,164,185,168,185,172,185,176,185,184,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,76,4,82,4,168,160,168,164,168,168,168,172,168,176,168,184,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,161,153,161,249,161,89,162,153,177,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,161,136,161,232,161,72,162,136,177,168,188,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,150,232,150,25,150,8,150,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,185,136,185,185,186,168,186,25,186,8,186,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,192,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,216,12,89,4,178,180,121,4,169,180,221,4,146,181,253,4,137,181,255,4,73,182,118,5,242,181,119,5,233,181,120,5,82,182,255,5,186,140,72,4,186,144,104,4,177,144,36,5,250,145,37,5,241,145,255,5,185,148,83,4,186,152,115,4,177,152,90,5,154,153,91,5,145,153,92,5,250,153,93,5,241,153,94,5,250,154,95,5,241,154,96,5,26,154,97,5,17,154,255,5,168,140,104,4,168,144,37,5,232,145,255,5,168,148,115,4,168,152,91,5,136,153,93,5,232,153,95,5,232,154,97,5,8,154,255,1,170,170,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,99,9,0,32,1,0,32,0,104,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,249,10,0,32,7,0,0,0,21,0,0,0,251,10,0,0,251,10,0,0,3,0,0,0,0,0,0,0,39,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,97,0,60,0,101,0,60,0,60,0,60,0,69,0,60,0,105,0,60,0,60,0,60,0,73,0,60,0,111,0,60,0,60,0,60,0,79,0,60,0,117,0,60,0,60,0,60,0,85,0,38,0,119,0,60,0,187,2,0,0,170,170,40,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,31,0,0,84,31,0,0,84,31,0,0,84,31,0,0,80,39,0,0,80,39,0,0,80,39,0,0,80,39,0,0,16,43,0,0,50,105,114,84,1,0,64,8,232,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,106,0,114,0,119,0,127,0,134,0,142,0,48,0,56,0,147,0,155,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,174,0,182,0,187,0,192,0,48,0,199,0,207,0,215,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,171,0,48,0,48,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,163,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,168,1,220,1,24,2,192,0,76,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,62,0,202,193,62,0,202,226,62,0,202,3,63,0,202,36,63,0,202,69,63,0,202,102,63,0,202,135,63,0,202,168,63,0,202,201,63,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,134,5,2,43,156,5,0,52,156,5,0,54,156,5,0,56,134,5,3,43,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,134,5,4,43,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,134,5,5,43,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,2,43,5,5,0,52,5,5,0,54,5,5,0,56,5,5,3,43,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,4,43,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,5,43,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,61,0,196,160,156,46,197,34,0,0,197,98,0,0,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,197,162,1,0,197,226,1,0,160,112,0,48,196,154,156,68,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,197,34,3,0,5,5,127,12,196,158,156,70,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,196,136,156,90,160,5,38,93,197,34,62,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,62,0,196,160,5,46,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,5,112,0,48,196,154,5,68,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,5,5,125,12,196,158,5,70,197,162,7,0,197,226,7,0,197,34,8,0,197,98,8,0,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,197,226,8,0,197,34,9,0,197,98,9,0,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,14,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,17,0,197,34,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,0,197,162,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,197,34,20,0,197,99,20,0,197,195,20,0,197,35,21,0,197,131,21,0,197,227,21,0,197,67,22,0,197,163,22,0,197,3,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,23,0,197,162,23,0,197,227,23,0,197,67,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,197,34,25,0,197,98,25,0,197,162,25,0,197,226,25,0,197,34,26,0,197,98,26,0,197,162,26,0,197,226,26,0,197,34,27,0,197,98,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,27,0,197,226,27,0,197,34,28,0,197,98,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,28,0,197,226,28,0,197,35,29,0,197,131,29,0,197,227,29,0,197,67,30,0,197,162,30,0,197,226,30,0,197,35,31,0,197,131,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,87,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,31,0,197,67,32,0,197,163,32,0,197,3,33,0,197,98,33,0,197,162,33,0,197,226,33,0,197,34,34,0,197,99,34,0,197,195,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,35,0,197,98,35,0,197,163,35,0,197,3,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,36,0,197,195,36,0,197,35,37,0,197,131,37,0,197,227,37,0,197,67,38,0,197,163,38,0,197,3,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,39,0,197,162,39,0,197,226,39,0,197,34,40,0,197,98,40,0,197,162,40,0,197,227,40,0,197,67,41,0,197,163,41,0,197,3,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,42,0,197,162,42,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,227,43,0,197,67,44,0,197,163,44,0,197,3,45,0,197,99,45,0,197,195,45,0,197,35,46,0,197,131,46,0,197,227,46,0,197,67,47,0,197,162,47,0,197,226,47,0,197,34,48,0,197,98,48,0,197,162,48,0,197,226,48,0,197,34,49,0,197,98,49,0,197,163,49,0,197,3,50,0,197,99,50,0,197,195,50,0,197,35,51,0,197,131,51,0,197,227,51,0,197,67,52,0,197,163,52,0,197,3,53,0,197,99,53,0,197,195,53,0,197,35,54,0,197,131,54,0,197,227,54,0,197,67,55,0,197,163,55,0,197,3,56,0,197,99,56,0,197,195,56,0,197,34,57,0,197,98,57,0,197,162,57,0,197,226,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,43,5,138,0,0,134,5,2,43,5,136,0,0,134,5,2,43,5,142,0,0,134,5,2,43,5,150,0,0,134,5,3,43,5,138,0,0,134,5,3,43,5,136,0,0,134,5,3,43,5,142,0,0,134,5,3,43,5,150,0,0,134,5,4,43,5,138,0,0,134,5,4,43,5,136,0,0,134,5,4,43,5,142,0,0,134,5,4,43,5,154,0,0,134,5,4,43,5,150,0,0,134,5,5,43,5,138,0,0,134,5,5,43,5,136,0,0,134,5,5,43,5,142,0,0,134,5,5,43,5,150,0,0,5,5,2,43,5,138,0,0,5,5,2,43,5,136,0,0,5,5,2,43,5,142,0,0,5,5,2,43,5,150,0,0,5,5,3,43,5,138,0,0,5,5,3,43,5,136,0,0,5,5,3,43,5,142,0,0,5,5,3,43,5,150,0,0,5,5,4,43,5,138,0,0,5,5,4,43,5,136,0,0,5,5,4,43,5,142,0,0,5,5,4,43,5,154,0,0,5,5,4,43,5,150,0,0,5,5,5,43,5,138,0,0,5,5,5,43,5,136,0,0,5,5,5,43,5,142,0,0,5,5,5,43,5,150,0,0,134,5,2,43,5,164,0,0,5,5,2,43,5,164,0,0,134,5,2,43,5,140,0,0,5,5,2,43,5,140,0,0,134,5,2,43,5,156,0,0,5,5,2,43,5,156,0,0,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,43,5,144,0,0,5,5,2,43,5,144,0,0,134,5,3,43,5,154,0,0,5,5,3,43,5,154,0,0,134,5,3,43,5,164,0,0,5,5,3,43,5,164,0,0,134,5,3,43,5,140,0,0,5,5,3,43,5,140,0,0,134,5,3,43,5,162,0,0,5,5,3,43,5,162,0,0,134,5,3,43,5,156,0,0,134,5,4,43,5,164,0,0,5,5,4,43,5,164,0,0,134,5,4,43,5,140,0,0,5,5,4,43,5,140,0,0,134,5,4,43,5,152,0,0,5,5,4,43,5,152,0,0,134,5,5,43,5,154,0,0,5,5,5,43,5,154,0,0,134,5,5,43,5,164,0,0,5,5,5,43,5,164,0,0,134,5,5,43,5,140,0,0,5,5,5,43,5,140,0,0,134,5,5,43,5,146,0,0,5,5,5,43,5,146,0,0,134,5,5,43,5,152,0,0,5,5,5,43,5,152,0,0,134,5,5,43,5,162,0,0,5,5,5,43,5,162,0,0,134,5,4,43,5,190,0,0,5,5,4,43,5,190,0,0,134,5,5,43,5,190,0,0,5,5,5,43,5,190,0,0,134,5,3,43,5,144,0,0,5,5,3,43,5,144,0,0,134,5,4,43,5,144,0,0,5,5,4,43,5,144,0,0,134,5,5,43,5,144,0,0,5,5,5,43,5,144,0,0,134,5,5,43,5,150,0,0,5,164,0,0,5,5,5,43,5,150,0,0,5,164,0,0,134,5,5,43,5,150,0,0,5,136,0,0,5,5,5,43,5,150,0,0,5,136,0,0,134,5,5,43,5,150,0,0,5,144,0,0,5,5,5,43,5,150,0,0,5,144,0,0,134,5,5,43,5,150,0,0,5,138,0,0,5,5,5,43,5,150,0,0,5,138,0,0,134,5,4,43,5,162,0,0,5,5,4,43,5,162,0,0,134,5,4,43,5,162,0,0,5,164,0,0,5,5,4,43,5,162,0,0,5,164,0,0,134,5,2,43,5,184,0,0,5,5,2,43,5,184,0,0,134,5,2,43,5,188,0,0,5,5,2,43,5,188,0,0,134,5,3,43,5,184,0,0,5,5,3,43,5,184,0,0,134,5,3,43,5,188,0,0,5,5,3,43,5,188,0,0,134,5,4,43,5,184,0,0,5,5,4,43,5,184,0,0,134,5,4,43,5,188,0,0,5,5,4,43,5,188,0,0,134,5,5,43,5,184,0,0,5,5,5,43,5,184,0,0,134,5,5,43,5,188,0,0,5,5,5,43,5,188,0,0,134,5,2,43,5,160,0,0,5,5,2,43,5,160,0,0,134,5,4,43,5,150,0,0,5,164,0,0,5,5,4,43,5,150,0,0,5,164,0,0,134,5,4,43,5,154,0,0,5,164,0,0,5,5,4,43,5,154,0,0,5,164,0,0,134,5,4,43,5,156,0,0,5,5,4,43,5,156,0,0,134,5,4,43,5,156,0,0,5,164,0,0,5,5,4,43,5,156,0,0,5,164,0,0,134,5,2,43,5,164,0,0,5,138,0,0,5,5,2,43,5,164,0,0,5,138,0,0,134,5,2,43,5,164,0,0,5,136,0,0,5,5,2,43,5,164,0,0,5,136,0,0,134,5,2,43,5,204,0,0,5,5,2,43,5,204,0,0,134,5,2,43,5,208,0,0,5,5,2,43,5,208,0,0,134,5,2,43,5,160,0,0,5,140,0,0,5,5,2,43,5,160,0,0,5,140,0,0,134,5,3,43,5,208,0,0,5,5,3,43,5,208,0,0,134,5,3,43,5,150,0,0,5,136,0,0,5,5,3,43,5,150,0,0,5,136,0,0,134,5,4,43,5,154,0,0,5,136,0,0,5,5,4,43,5,154,0,0,5,136,0,0,134,5,4,43,5,154,0,0,5,150,0,0,5,5,4,43,5,154,0,0,5,150,0,0,134,5,4,43,5,164,0,0,5,138,0,0,5,5,4,43,5,164,0,0,5,138,0,0,134,5,4,43,5,164,0,0,5,136,0,0,5,5,4,43,5,164,0,0,5,136,0,0,134,5,5,43,5,198,0,0,5,5,5,43,5,198,0,0,134,5,5,43,5,208,0,0,5,5,5,43,5,208,0,0,134,5,5,43,5,204,0,0,5,5,5,43,5,204,0,0,134,5,5,43,5,154,0,0,5,136,0,0,5,5,5,43,5,154,0,0,5,136,0,0,134,5,5,43,5,164,0,0,5,150,0,0,5,5,5,43,5,164,0,0,5,150,0,0,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,134,5,2,43,5,142,0,0,5,136,0,0,5,5,2,43,5,142,0,0,5,136,0,0,134,5,2,43,5,142,0,0,5,138,0,0,5,5,2,43,5,142,0,0,5,138,0,0,134,5,2,43,5,142,0,0,5,182,0,0,5,5,2,43,5,142,0,0,5,182,0,0,134,5,2,43,5,142,0,0,5,154,0,0,5,5,2,43,5,142,0,0,5,154,0,0,134,5,2,43,5,196,0,0,5,142,0,0,5,5,2,43,5,196,0,0,5,142,0,0,134,5,3,43,5,182,0,0,5,5,3,43,5,182,0,0,134,5,3,43,5,196,0,0,5,5,3,43,5,196,0,0,134,5,4,43,5,196,0,0,5,5,4,43,5,196,0,0,134,5,4,43,5,182,0,0,5,5,4,43,5,182,0,0,134,5,4,43,5,142,0,0,5,136,0,0,5,5,4,43,5,142,0,0,5,136,0,0,134,5,4,43,5,142,0,0,5,138,0,0,5,5,4,43,5,142,0,0,5,138,0,0,134,5,4,43,5,142,0,0,5,182,0,0,5,5,4,43,5,142,0,0,5,182,0,0,134,5,4,43,5,142,0,0,5,154,0,0,5,5,4,43,5,142,0,0,5,154,0,0,134,5,4,43,5,196,0,0,5,142,0,0,5,5,4,43,5,196,0,0,5,142,0,0,134,5,4,43,5,190,0,0,5,136,0,0,5,5,4,43,5,190,0,0,5,136,0,0,134,5,4,43,5,190,0,0,5,138,0,0,5,5,4,43,5,190,0,0,5,138,0,0,134,5,4,43,5,190,0,0,5,182,0,0,5,5,4,43,5,190,0,0,5,182,0,0,134,5,4,43,5,190,0,0,5,154,0,0,5,5,4,43,5,190,0,0,5,154,0,0,134,5,4,43,5,190,0,0,5,196,0,0,5,5,4,43,5,190,0,0,5,196,0,0,134,5,5,43,5,196,0,0,5,5,5,43,5,196,0,0,134,5,5,43,5,182,0,0,5,5,5,43,5,182,0,0,134,5,5,43,5,190,0,0,5,136,0,0,5,5,5,43,5,190,0,0,5,136,0,0,134,5,5,43,5,190,0,0,5,138,0,0,5,5,5,43,5,190,0,0,5,138,0,0,134,5,5,43,5,190,0,0,5,182,0,0,5,5,5,43,5,190,0,0,5,182,0,0,134,5,5,43,5,190,0,0,5,154,0,0,5,5,5,43,5,190,0,0,5,154,0,0,134,5,5,43,5,190,0,0,5,196,0,0,5,5,5,43,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,76,185,80,185,84,185,60,185,92,185,96,185,100,185,64,186,112,185,116,185,120,185,124,186,128,185,68,185,140,185,144,185,152,186,156,185,160,185,72,185,168,185,172,185,176,185,180,185,184,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,76,168,80,168,84,168,60,168,92,168,96,168,100,168,64,168,112,168,116,168,120,168,124,168,128,168,68,168,140,168,144,168,152,168,156,168,160,168,72,168,168,168,172,168,176,168,180,168,184,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,82,185,61,153,61,249,61,89,62,185,65,153,65,249,65,89,66,217,84,154,130,185,69,153,69,249,69,153,70,89,70,136,14,217,138,185,73,153,73,249,73,89,74,153,181,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,82,168,61,136,61,232,61,72,62,168,65,136,65,232,65,72,66,200,84,136,130,168,69,136,69,232,69,136,70,72,70,128,14,200,138,168,73,136,73,232,73,72,74,136,181,168,188,72,182,57,59,40,59,217,57,200,57,25,59,8,59,153,81,136,81,249,81,232,81,185,82,168,82,25,82,8,82,25,86,8,86,89,87,72,87,57,63,40,63,217,61,200,61,185,62,168,62,25,63,8,63,25,62,8,62,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,153,66,136,66,57,67,40,67,217,65,200,65,25,67,8,67,185,66,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,71,40,71,217,69,200,69,121,70,104,70,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,250,157,232,157,250,158,232,158,26,158,8,158,249,162,232,162,25,162,8,162,185,164,168,164,153,74,136,74,57,75,40,75,217,73,200,73,57,74,40,74,121,74,104,74,25,75,8,75,249,173,232,173,249,181,232,181,89,182,153,185,136,185,185,186,168,186,25,186,8,186,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,186,88,200,156,169,156,200,56,169,88,186,104,187,112,169,104,169,112,169,192,169,128,217,136,186,88,200,136,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,39,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,242,10,0,32,1,0,32,0,247,10,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,108,15,0,32,7,0,0,0,23,0,0,0,110,15,0,0,110,15,0,0,3,0,0,0,0,0,0,0,79,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,14,32,38,0,243,5,60,0,60,0,39,0,39,0,14,32,38,0,244,5,60,0,60,0,39,0,34,0,39,0,0,0,65,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,101,0,98,0,114,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,39,0,60,0,60,0,243,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,34,0,39,0,60,0,60,0,244,5,0,0,170,170,106,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,228,31,0,0,228,31,0,0,228,31,0,0,228,31,0,0,12,34,0,0,12,34,0,0,82,34,0,0,82,34,0,0,82,34,0,0,50,105,114,84,1,0,64,8,241,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,224,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,253,0,0,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,194,5,221,251,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,220,251,5,252,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,67,0,50,0,59,0,79,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,188,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,64,0,0,0,64,1,0,0,96,25,0,0,96,25,0,0,96,25,0,0,96,25,0,0,164,25,0,0,19,0,0,0,0,0,0,101,194,255,50,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,0,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,2,106,9,5,2,120,9,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,67,0,50,0,59,0,243,8,0,16,44,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,235,8,0,32,99,15,0,32,1,0,32,0,104,15,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,168,6,0,32,7,0,0,0,21,0,0,0,170,6,0,0,170,6,0,0,3,0,0,0,0,0,0,0,67,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,86,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,80,9,60,0,2,9,60,0,60,0,1,9,60,0,3,9,0,0,116,25,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,108,0,0,0,108,1,0,0,12,25,0,0,12,25,0,0,20,25,0,0,20,25,0,0,88,25,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,39,40,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,104,193,3,7,104,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,104,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,161,6,0,32,1,0,32,0,166,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,220,19,0,32,7,0,0,0,23,0,0,0,222,19,0,0,222,19,0,0,3,0,0,0,0,0,0,0,128,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,65,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,111,0,116,0,104,0,101,0,114,0,115,0,93,0,0,0,136,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,68,0,60,0,100,0,126,1,60,0,60,0,60,0,198,1,60,0,60,0,60,0,68,0,126,1,60,0,60,0,60,0,197,1,60,0,60,0,60,0,68,0,125,1,60,0,60,0,60,0,196,1,60,0,17,1,60,0,60,0,60,0,16,1,38,0,76,0,60,0,108,0,106,0,60,0,60,0,60,0,201,1,60,0,60,0,60,0,76,0,106,0,60,0,60,0,60,0,200,1,60,0,60,0,60,0,76,0,74,0,60,0,60,0,60,0,199,1,38,0,78,0,60,0,110,0,106,0,60,0,60,0,60,0,204,1,60,0,60,0,60,0,78,0,106,0,60,0,60,0,60,0,203,1,60,0,60,0,60,0,78,0,74,0,60,0,60,0,60,0,202,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,252,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,113,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,180,35,0,0,180,35,0,0,180,35,0,0,180,35,0,0,172,38,0,0,172,38,0,0,198,40,0,0,228,40,0,0,228,40,0,0,50,105,114,84,1,0,64,8,46,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,152,0,160,0,48,0,56,0,159,0,167,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,192,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,48,0,48,0,216,0,48,0,222,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,240,0,48,0,48,0,248,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,182,0,48,0,48,0,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,23,1,48,0,48,0,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,232,1,32,2,96,2,192,0,124,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,22,0,202,161,22,0,202,194,22,0,202,227,22,0,202,4,23,0,202,37,23,0,202,70,23,0,202,103,23,0,202,136,23,0,202,169,23,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,201,68,2,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,224,4,0,156,5,0,66,201,64,7,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,166,10,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,11,0,201,4,13,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,128,14,0,5,5,0,66,201,32,16,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,18,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,13,0,201,134,19,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,13,0,201,6,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,22,0,201,70,23,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,198,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,25,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,5,71,238,102,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,197,98,5,0,192,0,0,0,192,0,0,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,197,34,6,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,197,226,6,0,197,35,7,0,197,130,7,0,192,0,0,0,192,0,0,0,197,194,7,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,29,0,201,230,29,0,192,0,0,0,192,0,0,0,197,226,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,4,0,5,5,10,121,5,5,12,121,197,226,4,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,197,162,5,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,5,0,5,5,107,121,197,34,6,0,5,5,111,121,197,98,6,0,5,5,115,121,197,162,6,0,5,5,119,121,197,226,6,0,197,35,7,0,197,130,7,0,5,5,127,121,5,5,129,121,197,194,7,0,197,3,8,0,197,98,8,0,5,5,137,121,5,5,139,121,197,162,8,0,5,5,143,121,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,78,196,196,48,0,12,3,11,192,197,98,5,78,196,196,48,0,12,3,11,192,197,162,156,92,196,196,48,0,12,3,12,192,197,98,5,92,196,196,48,0,12,3,12,192,197,162,156,92,196,210,48,0,12,3,12,192,197,226,5,92,196,210,48,0,12,3,13,192,197,34,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,3,0,67,0,50,0,59,0,131,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,28,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,188,28,0,0,188,28,0,0,188,28,0,0,188,28,0,0,208,29,0,0,208,29,0,0,164,31,0,0,194,31,0,0,4,36,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,153,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,7,0,202,129,7,0,202,162,7,0,202,195,7,0,202,228,7,0,202,5,8,0,202,38,8,0,202,71,8,0,202,104,8,0,202,137,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,132,1,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,4,0,156,5,0,66,201,128,6,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,10,0,201,68,12,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,13,0,5,5,0,66,201,96,15,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,6,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,230,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,6,0,201,198,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,7,0,201,70,20,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,21,0,201,134,22,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,23,0,201,6,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,24,0,201,134,25,0,192,0,0,0,192,0,0,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,26,0,201,6,27,0,201,198,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,156,78,196,196,48,0,12,3,4,192,197,162,5,78,196,196,48,0,12,3,4,192,197,226,156,92,196,196,48,0,12,3,5,192,197,162,5,92,196,196,48,0,12,3,5,192,197,226,156,92,196,210,48,0,12,3,6,192,197,34,5,92,196,210,48,0,12,3,6,192,197,98,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,186,88,185,92,185,96,185,100,186,104,186,112,185,116,36,4,185,128,46,4,185,144,185,148,185,152,185,160,56,4,185,172,185,180,185,184,185,188,185,192,185,196,58,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,60,4,62,4,168,88,168,92,168,96,168,100,168,104,168,112,168,116,67,4,168,128,73,4,168,144,168,148,168,152,168,160,79,4,168,172,168,180,168,184,168,188,168,192,168,196,81,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,83,4,186,89,154,89,250,89,90,90,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,181,153,181,249,181,89,182,153,197,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,85,4,168,89,136,89,232,89,72,90,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,181,136,181,232,181,72,182,136,197,168,208,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,84,168,84,58,91,40,91,218,89,200,89,186,90,168,90,26,91,8,91,26,90,8,90,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,165,136,165,250,165,232,165,87,4,89,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,153,201,136,201,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,164,169,164,200,56,169,88,187,104,187,112,169,104,169,112,169,212,169,132,217,144,187,88,200,144,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,76,90,2,122,2,125,5,186,80,126,5,177,80,255,5,185,120,74,4,186,124,106,4,177,124,52,5,250,125,53,5,241,125,255,5,186,132,74,4,186,136,106,4,177,136,52,5,250,137,53,5,241,137,255,5,186,164,255,5,185,200,255,5,168,64,255,5,168,76,122,2,126,5,168,80,255,5,168,120,106,4,168,124,53,5,232,125,255,5,168,132,106,4,168,136,53,5,232,137,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,3,0,67,0,50,0,59,0,203,10,0,16,71,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,195,10,0,32,211,19,0,32,1,0,32,0,216,19,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,221,9,0,32,7,0,0,0,21,0,0,0,223,9,0,0,223,9,0,0,3,0,0,0,0,0,0,0,70,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,220,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,69,0,60,0,27,1,60,0,60,0,60,0,26,1,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,32,0,76,0,60,0,66,1,60,0,60,0,60,0,65,1,38,0,82,0,60,0,89,1,60,0,60,0,60,0,88,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,60,0,122,1,60,0,60,0,60,0,121,1,0,0,170,170,170,170,170,170,56,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,28,0,0,84,28,0,0,84,28,0,0,84,28,0,0,168,30,0,0,168,30,0,0,222,33,0,0,248,33,0,0,32,38,0,0,50,105,114,84,1,0,64,8,184,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,112,0,120,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,48,0,149,0,157,0,161,0,167,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,136,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,17,0,202,129,17,0,202,162,17,0,202,195,17,0,202,228,17,0,202,5,18,0,202,38,18,0,202,71,18,0,202,104,18,0,202,137,18,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,4,0,0,156,5,0,48,201,134,8,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,201,70,9,0,201,38,10,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,6,11,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,228,12,0,5,5,0,48,201,134,21,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,201,70,22,0,201,38,23,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,6,24,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,16,0,201,230,25,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,16,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,17,0,201,102,27,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,28,0,201,166,29,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,63,5,5,21,63,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,30,0,201,38,31,0,134,5,2,77,5,5,2,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,31,0,201,166,32,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,93,5,5,3,93,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,33,0,201,38,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,166,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,36,0,201,38,37,0,201,230,37,0,201,166,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,39,0,201,38,40,0,192,0,0,0,192,0,0,0,201,230,40,0,201,166,41,0,192,0,0,0,192,0,0,0,201,102,42,0,201,38,43,0,192,0,0,0,192,0,0,0,197,162,13,0,197,226,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,43,0,201,102,45,0,201,230,46,0,201,102,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,49,0,201,166,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,3,93,5,196,0,0,134,5,2,93,5,196,0,0,5,5,3,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,3,93,5,210,0,0,134,5,2,93,5,210,0,0,5,5,3,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,51,5,196,0,0,5,5,2,51,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,19,0,35,30,32,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,35,30,1,192,197,98,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,31,2,15,0,31,2,0,192,197,226,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,34,30,1,192,197,34,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,30,2,0,192,197,162,0,50,156,5,48,0,12,3,2,243,134,5,0,76,156,5,48,0,12,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,2,0,1,3,255,255,3,93,134,5,12,3,255,255,2,93,134,5,65,3,255,255,3,93,134,5,0,46,5,5,19,0,35,30,32,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,35,30,5,192,197,34,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,31,2,15,0,31,2,4,192,197,162,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,34,30,4,192,197,226,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,30,2,4,192,197,98,0,50,5,5,48,0,12,3,2,243,5,5,0,76,5,5,48,0,12,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,2,0,1,3,255,255,3,93,5,5,12,3,255,255,2,93,5,5,65,3,255,255,3,93,5,5,156,46,196,160,2,0,1,3,7,192,197,162,12,3,7,192,197,226,65,3,7,192,197,162,5,46,196,160,2,0,1,3,8,192,197,34,12,3,8,192,197,98,65,3,8,192,197,34,156,50,196,162,48,0,12,3,8,192,197,162,5,50,196,162,48,0,12,3,8,192,197,226,156,76,196,160,48,0,12,3,9,192,197,34,5,76,196,160,48,0,12,3,9,192,197,98,156,78,196,160,48,0,12,3,9,192,197,162,5,78,196,160,48,0,12,3,9,192,197,226,156,78,196,202,48,0,12,3,10,192,197,34,5,78,196,202,48,0,12,3,10,192,197,98,156,50,196,160,48,0,12,3,10,192,197,162,5,50,196,160,48,0,12,3,10,192,197,226,156,50,196,204,48,0,12,3,11,192,197,34,5,50,196,204,48,0,12,3,11,192,197,98,156,50,196,208,48,0,12,3,11,192,197,162,5,50,196,208,48,0,12,3,11,192,197,226,156,76,196,196,48,0,12,3,12,192,197,34,5,76,196,196,48,0,12,3,12,192,197,98,156,76,196,210,48,0,12,3,12,192,197,162,5,76,196,210,48,0,12,3,12,192,197,226,156,78,196,196,48,0,12,3,13,192,197,34,5,78,196,196,48,0,12,3,13,192,197,98,156,92,196,196,2,0,1,3,14,192,197,34,12,3,14,192,197,98,65,3,14,192,197,34,5,92,196,196,2,0,1,3,14,192,197,162,12,3,14,192,197,226,65,3,14,192,197,162,156,92,196,210,2,0,1,3,15,192,197,34,12,3,15,192,197,98,65,3,15,192,197,34,5,92,196,210,2,0,1,3,15,192,197,162,12,3,15,192,197,226,65,3,15,192,197,162,156,50,196,196,48,0,12,3,16,192,197,34,5,50,196,196,48,0,12,3,16,192,197,98,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,76,36,4,185,88,185,92,185,96,186,104,186,112,185,116,185,124,185,128,186,132,185,140,185,144,185,148,38,4,40,4,185,172,185,180,185,184,185,188,185,192,185,196,42,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,44,4,168,76,54,4,168,88,168,92,168,96,168,104,168,112,168,116,168,124,168,128,168,132,168,140,168,144,168,148,56,4,58,4,168,172,168,180,168,184,168,188,168,192,168,196,60,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,62,4,186,81,154,81,250,81,90,82,186,105,154,105,250,105,90,106,217,76,154,134,185,141,153,141,249,141,153,142,89,142,136,14,217,142,185,181,153,181,249,181,89,182,153,197,185,212,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,64,4,168,81,136,81,232,81,72,82,168,105,136,105,232,105,72,106,200,76,136,134,168,141,136,141,232,141,136,142,72,142,128,14,200,142,168,181,136,181,232,181,72,182,136,197,168,212,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,66,4,68,4,185,84,168,84,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,152,153,125,136,125,249,126,232,126,25,126,8,126,121,127,104,127,185,120,168,120,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,157,136,157,70,4,72,4,185,160,168,160,154,165,136,165,250,165,232,165,74,4,76,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,185,208,168,208,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,164,169,164,200,56,169,80,187,104,187,112,169,104,169,112,169,216,169,132,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,187,100,104,4,178,100,36,5,251,101,37,5,242,101,255,5,186,80,255,5,185,156,255,5,186,164,255,5,185,200,255,5,168,64,72,4,177,100,104,4,168,100,36,5,241,101,37,5,232,101,255,5,168,80,255,5,168,156,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,26,83,255,5,8,83,255,5,249,158,255,5,232,158,255,5,250,166,255,5,232,166,255,1,3,0,69,0,52,0,61,0,71,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,214,9,0,32,1,0,32,0,219,9,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,100,18,0,32,7,0,0,0,21,0,0,0,102,18,0,0,102,18,0,0,3,0,0,0,0,0,0,0,19,1,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,246,221,38,0,67,0,60,0,99,0,115,0,60,0,60,0,60,0,67,0,115,0,60,0,60,0,60,0,67,0,83,0,38,0,68,0,60,0,100,0,122,0,60,0,60,0,60,0,68,0,122,0,60,0,60,0,60,0,68,0,90,0,38,0,68,0,90,0,60,0,100,0,122,0,115,0,60,0,60,0,60,0,68,0,122,0,115,0,60,0,60,0,60,0,68,0,90,0,83,0,38,0,71,0,60,0,103,0,121,0,60,0,60,0,60,0,71,0,121,0,60,0,60,0,60,0,71,0,89,0,38,0,76,0,60,0,108,0,121,0,60,0,60,0,60,0,76,0,121,0,60,0,60,0,60,0,76,0,89,0,38,0,78,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,38,0,83,0,60,0,115,0,122,0,60,0,60,0,60,0,83,0,122,0,60,0,60,0,60,0,83,0,90,0,38,0,84,0,60,0,116,0,121,0,60,0,60,0,60,0,84,0,121,0,60,0,60,0,60,0,84,0,89,0,38,0,90,0,60,0,122,0,115,0,60,0,60,0,60,0,90,0,115,0,60,0,60,0,60,0,90,0,83,0,38,0,79,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,38,0,85,0,60,0,252,0,60,0,60,0,60,0,220,0,60,0,60,0,113,1,60,0,60,0,60,0,112,1,38,0,99,0,115,0,60,0,60,0,60,0,99,0,99,0,115,0,47,0,99,0,115,0,38,0,67,0,115,0,60,0,60,0,60,0,67,0,99,0,115,0,47,0,99,0,115,0,38,0,67,0,83,0,60,0,60,0,60,0,67,0,67,0,83,0,47,0,67,0,83,0,38,0,100,0,122,0,60,0,60,0,60,0,100,0,100,0,122,0,47,0,100,0,122,0,38,0,68,0,122,0,60,0,60,0,60,0,68,0,100,0,122,0,47,0,100,0,122,0,38,0,68,0,90,0,60,0,60,0,60,0,68,0,68,0,90,0,47,0,68,0,90,0,38,0,100,0,122,0,115,0,60,0,60,0,60,0,100,0,100,0,122,0,115,0,47,0,100,0,122,0,115,0,38,0,68,0,122,0,115,0,60,0,60,0,60,0,68,0,100,0,122,0,115,0,47,0,100,0,122,0,115,0,38,0,68,0,90,0,83,0,60,0,60,0,60,0,68,0,68,0,90,0,83,0,47,0,68,0,90,0,83,0,38,0,103,0,121,0,60,0,60,0,60,0,103,0,103,0,121,0,47,0,103,0,121,0,38,0,71,0,121,0,60,0,60,0,60,0,71,0,103,0,121,0,47,0,103,0,121,0,38,0,71,0,89,0,60,0,60,0,60,0,71,0,71,0,89,0,47,0,71,0,89,0,38,0,108,0,121,0,60,0,60,0,60,0,108,0,108,0,121,0,47,0,108,0,121,0,38,0,76,0,121,0,60,0,60,0,60,0,76,0,108,0,121,0,47,0,108,0,121,0,38,0,76,0,89,0,60,0,60,0,60,0,76,0,76,0,89,0,47,0,76,0,89,0,38,0,110,0,121,0,60,0,60,0,60,0,110,0,110,0,121,0,47,0,110,0,121,0,38,0,78,0,121,0,60,0,60,0,60,0,78,0,110,0,121,0,47,0,110,0,121,0,38,0,78,0,89,0,60,0,60,0,60,0,78,0,78,0,89,0,47,0,78,0,89,0,38,0,115,0,122,0,60,0,60,0,60,0,115,0,115,0,122,0,47,0,115,0,122,0,38,0,83,0,122,0,60,0,60,0,60,0,83,0,115,0,122,0,47,0,115,0,122,0,38,0,83,0,90,0,60,0,60,0,60,0,83,0,83,0,90,0,47,0,83,0,90,0,38,0,116,0,121,0,60,0,60,0,60,0,116,0,116,0,121,0,47,0,116,0,121,0,38,0,84,0,121,0,60,0,60,0,60,0,84,0,116,0,121,0,47,0,116,0,121,0,38,0,84,0,89,0,60,0,60,0,60,0,84,0,84,0,89,0,47,0,84,0,89,0,38,0,122,0,115,0,60,0,60,0,60,0,122,0,122,0,115,0,47,0,122,0,115,0,38,0,90,0,115,0,60,0,60,0,60,0,90,0,122,0,115,0,47,0,122,0,115,0,38,0,90,0,83,0,60,0,60,0,60,0,90,0,90,0,83,0,47,0,90,0,83,0,0,0,34,69,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,27,0,0,212,27,0,0,212,27,0,0,212,27,0,0,104,45,0,0,104,45,0,0,214,62,0,0,48,63,0,0,10,69,0,0,50,105,114,84,1,0,64,8,176,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,80,0,88,0,93,0,101,0,106,0,114,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,151,0,159,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,167,0,141,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,64,1,116,1,168,1,212,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,139,0,202,129,139,0,202,162,139,0,202,195,139,0,202,228,139,0,202,5,140,0,202,38,140,0,202,71,140,0,202,104,140,0,202,137,140,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,201,32,20,0,156,5,0,50,156,5,0,52,201,32,52,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,64,71,0,156,5,0,66,201,160,90,0,201,6,110,0,156,5,0,72,160,5,0,74,156,5,0,76,201,96,111,0,201,128,124,0,201,230,143,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,160,145,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,64,166,0,201,128,176,0,5,5,0,50,5,5,0,52,201,160,192,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,224,202,0,5,5,0,66,201,64,213,0,201,166,223,0,5,5,0,72,5,5,0,74,5,5,0,76,201,0,225,0,201,160,231,0,201,6,242,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,192,243,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,138,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,226,138,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,139,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,71,5,70,2,71,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,83,5,70,2,83,201,38,254,0,201,70,255,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,0,1,201,134,1,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,1,201,198,3,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,126,0,197,98,126,0,197,226,76,0,197,130,118,0,197,162,126,0,197,226,126,0,197,34,127,0,197,98,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,4,1,201,6,6,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,128,0,197,226,128,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,7,1,201,70,8,1,201,102,9,1,201,134,10,1,201,166,11,1,201,198,12,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,13,1,201,6,15,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,16,1,201,70,17,1,201,102,18,1,201,134,19,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,20,1,201,198,21,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,138,5,2,47,137,5,2,47,138,5,2,47,137,5,2,47,5,136,0,0,138,5,2,47,137,5,2,47,5,142,0,0,138,5,2,47,137,5,2,47,5,160,0,0,138,5,2,47,137,5,2,47,5,144,0,0,138,5,2,47,137,5,2,47,5,202,0,0,138,5,2,47,137,5,2,47,5,156,0,0,138,5,2,47,137,5,2,47,5,196,0,0,138,5,2,47,137,5,2,47,5,136,0,0,5,156,0,0,138,5,2,47,137,5,2,47,5,144,0,0,5,156,0,0,138,5,2,47,137,5,2,47,5,196,0,0,5,156,0,0,72,5,2,47,5,5,2,47,72,5,2,47,5,5,2,47,5,136,0,0,72,5,2,47,5,5,2,47,5,142,0,0,72,5,2,47,5,5,2,47,5,160,0,0,72,5,2,47,5,5,2,47,5,144,0,0,72,5,2,47,5,5,2,47,5,202,0,0,72,5,2,47,5,5,2,47,5,156,0,0,72,5,2,47,5,5,2,47,5,196,0,0,72,5,2,47,5,5,2,47,5,136,0,0,5,156,0,0,72,5,2,47,5,5,2,47,5,144,0,0,5,156,0,0,72,5,2,47,5,5,2,47,5,196,0,0,5,156,0,0,71,5,2,47,5,136,0,0,71,5,2,47,5,142,0,0,71,5,2,47,5,160,0,0,71,5,2,47,5,144,0,0,71,5,2,47,5,202,0,0,71,5,2,47,5,156,0,0,71,5,2,47,5,196,0,0,71,5,2,47,5,136,0,0,5,156,0,0,71,5,2,47,5,144,0,0,5,156,0,0,71,5,2,47,5,196,0,0,5,156,0,0,138,5,2,49,137,5,2,49,138,5,3,49,137,5,3,49,138,5,3,49,137,5,3,49,5,136,0,0,138,5,3,49,137,5,3,49,5,142,0,0,138,5,3,49,137,5,3,49,5,160,0,0,138,5,3,49,137,5,3,49,5,144,0,0,138,5,3,49,137,5,3,49,5,202,0,0,138,5,3,49,137,5,3,49,5,156,0,0,138,5,3,49,137,5,3,49,5,196,0,0,138,5,3,49,137,5,3,49,5,136,0,0,5,156,0,0,138,5,3,49,137,5,3,49,5,144,0,0,5,156,0,0,138,5,3,49,137,5,3,49,5,196,0,0,5,156,0,0,138,5,2,49,137,5,2,49,5,136,0,0,138,5,2,49,137,5,2,49,5,156,0,0,138,5,2,49,137,5,2,49,5,144,0,0,138,5,2,49,137,5,2,49,5,142,0,0,138,5,2,49,137,5,2,49,5,196,0,0,138,5,2,49,137,5,2,49,5,210,0,0,72,5,2,49,5,5,2,49,72,5,3,49,5,5,3,49,72,5,3,49,5,5,3,49,5,136,0,0,72,5,3,49,5,5,3,49,5,142,0,0,72,5,3,49,5,5,3,49,5,160,0,0,72,5,3,49,5,5,3,49,5,144,0,0,72,5,3,49,5,5,3,49,5,202,0,0,72,5,3,49,5,5,3,49,5,156,0,0,72,5,3,49,5,5,3,49,5,196,0,0,72,5,3,49,5,5,3,49,5,136,0,0,5,156,0,0,72,5,3,49,5,5,3,49,5,144,0,0,5,156,0,0,72,5,3,49,5,5,3,49,5,196,0,0,5,156,0,0,72,5,2,49,5,5,2,49,5,136,0,0,72,5,2,49,5,5,2,49,5,156,0,0,72,5,2,49,5,5,2,49,5,144,0,0,72,5,2,49,5,5,2,49,5,142,0,0,72,5,2,49,5,5,2,49,5,196,0,0,72,5,2,49,5,5,2,49,5,210,0,0,71,5,3,49,5,136,0,0,71,5,3,49,5,142,0,0,71,5,3,49,5,160,0,0,71,5,3,49,5,144,0,0,71,5,3,49,5,202,0,0,71,5,3,49,5,156,0,0,71,5,3,49,5,196,0,0,71,5,3,49,5,136,0,0,5,156,0,0,71,5,3,49,5,144,0,0,5,156,0,0,71,5,3,49,5,196,0,0,5,156,0,0,71,5,2,49,5,136,0,0,71,5,2,49,5,156,0,0,71,5,2,49,5,144,0,0,71,5,2,49,5,142,0,0,71,5,2,49,5,196,0,0,71,5,2,49,5,210,0,0,138,5,2,55,137,5,2,55,138,5,2,55,137,5,2,55,5,136,0,0,138,5,2,55,137,5,2,55,5,142,0,0,138,5,2,55,137,5,2,55,5,150,0,0,138,5,2,55,137,5,2,55,5,164,0,0,138,5,2,55,137,5,2,55,5,156,0,0,138,5,2,55,137,5,2,55,5,138,0,0,138,5,2,55,137,5,2,55,5,196,0,0,138,5,2,55,137,5,2,55,5,182,0,0,138,5,2,55,137,5,2,55,5,154,0,0,72,5,2,55,5,5,2,55,72,5,2,55,5,5,2,55,5,136,0,0,72,5,2,55,5,5,2,55,5,150,0,0,72,5,2,55,5,5,2,55,5,142,0,0,72,5,2,55,5,5,2,55,5,164,0,0,72,5,2,55,5,5,2,55,5,156,0,0,72,5,2,55,5,5,2,55,5,146,0,0,72,5,2,55,5,5,2,55,5,138,0,0,72,5,2,55,5,5,2,55,5,196,0,0,72,5,2,55,5,5,2,55,5,182,0,0,72,5,2,55,5,5,2,55,5,154,0,0,71,5,2,55,5,136,0,0,71,5,2,55,5,150,0,0,71,5,2,55,5,142,0,0,71,5,2,55,5,164,0,0,71,5,2,55,5,156,0,0,71,5,2,55,5,146,0,0,71,5,2,55,5,138,0,0,71,5,2,55,5,196,0,0,71,5,2,55,5,182,0,0,71,5,2,55,5,154,0,0,138,5,2,65,137,5,2,65,138,5,2,65,137,5,2,65,5,136,0,0,138,5,2,65,137,5,2,65,5,142,0,0,138,5,2,65,137,5,2,65,5,150,0,0,138,5,2,65,137,5,2,65,5,164,0,0,138,5,2,65,137,5,2,65,5,156,0,0,138,5,2,65,137,5,2,65,5,138,0,0,138,5,2,65,137,5,2,65,5,196,0,0,138,5,2,65,137,5,2,65,5,182,0,0,138,5,2,65,137,5,2,65,5,154,0,0,72,5,2,65,5,5,2,65,72,5,2,65,5,5,2,65,5,136,0,0,72,5,2,65,5,5,2,65,5,150,0,0,72,5,2,65,5,5,2,65,5,142,0,0,72,5,2,65,5,5,2,65,5,164,0,0,72,5,2,65,5,5,2,65,5,156,0,0,72,5,2,65,5,5,2,65,5,146,0,0,72,5,2,65,5,5,2,65,5,138,0,0,72,5,2,65,5,5,2,65,5,196,0,0,72,5,2,65,5,5,2,65,5,182,0,0,72,5,2,65,5,5,2,65,5,154,0,0,71,5,2,65,5,136,0,0,71,5,2,65,5,150,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,164,0,0,71,5,2,65,5,156,0,0,71,5,2,65,5,146,0,0,71,5,2,65,5,138,0,0,71,5,2,65,5,196,0,0,71,5,2,65,5,182,0,0,71,5,2,65,5,154,0,0,138,5,2,69,137,5,2,69,138,5,2,69,137,5,2,69,5,136,0,0,138,5,2,69,137,5,2,69,5,142,0,0,138,5,2,69,137,5,2,69,5,150,0,0,138,5,2,69,137,5,2,69,5,164,0,0,138,5,2,69,137,5,2,69,5,156,0,0,138,5,2,69,137,5,2,69,5,138,0,0,138,5,2,69,137,5,2,69,5,196,0,0,138,5,2,69,137,5,2,69,5,182,0,0,138,5,2,69,137,5,2,69,5,154,0,0,72,5,2,69,5,5,2,69,72,5,2,69,5,5,2,69,5,136,0,0,72,5,2,69,5,5,2,69,5,150,0,0,72,5,2,69,5,5,2,69,5,142,0,0,72,5,2,69,5,5,2,69,5,164,0,0,72,5,2,69,5,5,2,69,5,156,0,0,72,5,2,69,5,5,2,69,5,146,0,0,72,5,2,69,5,5,2,69,5,138,0,0,72,5,2,69,5,5,2,69,5,196,0,0,72,5,2,69,5,5,2,69,5,182,0,0,72,5,2,69,5,5,2,69,5,154,0,0,71,5,2,69,5,136,0,0,71,5,2,69,5,150,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,164,0,0,71,5,2,69,5,156,0,0,71,5,2,69,5,146,0,0,71,5,2,69,5,138,0,0,71,5,2,69,5,196,0,0,71,5,2,69,5,182,0,0,71,5,2,69,5,154,0,0,138,5,2,79,137,5,2,79,138,5,2,79,137,5,2,79,5,136,0,0,138,5,2,79,137,5,2,79,5,156,0,0,138,5,2,79,137,5,2,79,5,144,0,0,138,5,2,79,137,5,2,79,5,142,0,0,138,5,2,79,137,5,2,79,5,196,0,0,138,5,2,79,137,5,2,79,5,210,0,0,72,5,2,79,5,5,2,79,72,5,2,79,5,5,2,79,5,136,0,0,72,5,2,79,5,5,2,79,5,156,0,0,72,5,2,79,5,5,2,79,5,144,0,0,72,5,2,79,5,5,2,79,5,142,0,0,72,5,2,79,5,5,2,79,5,196,0,0,72,5,2,79,5,5,2,79,5,210,0,0,71,5,2,79,5,136,0,0,71,5,2,79,5,156,0,0,71,5,2,79,5,144,0,0,71,5,2,79,5,142,0,0,71,5,2,79,5,196,0,0,71,5,2,79,5,210,0,0,138,5,2,81,137,5,2,81,138,5,2,81,137,5,2,81,5,136,0,0,138,5,2,81,137,5,2,81,5,142,0,0,138,5,2,81,137,5,2,81,5,150,0,0,138,5,2,81,137,5,2,81,5,164,0,0,138,5,2,81,137,5,2,81,5,156,0,0,138,5,2,81,137,5,2,81,5,138,0,0,138,5,2,81,137,5,2,81,5,196,0,0,138,5,2,81,137,5,2,81,5,182,0,0,138,5,2,81,137,5,2,81,5,154,0,0,72,5,2,81,5,5,2,81,72,5,2,81,5,5,2,81,5,136,0,0,72,5,2,81,5,5,2,81,5,150,0,0,72,5,2,81,5,5,2,81,5,142,0,0,72,5,2,81,5,5,2,81,5,164,0,0,72,5,2,81,5,5,2,81,5,156,0,0,72,5,2,81,5,5,2,81,5,146,0,0,72,5,2,81,5,5,2,81,5,138,0,0,72,5,2,81,5,5,2,81,5,196,0,0,72,5,2,81,5,5,2,81,5,182,0,0,72,5,2,81,5,5,2,81,5,154,0,0,71,5,2,81,5,136,0,0,71,5,2,81,5,150,0,0,71,5,2,81,5,142,0,0,71,5,2,81,5,164,0,0,71,5,2,81,5,156,0,0,71,5,2,81,5,146,0,0,71,5,2,81,5,138,0,0,71,5,2,81,5,196,0,0,71,5,2,81,5,182,0,0,71,5,2,81,5,154,0,0,134,5,2,83,5,136,0,0,138,5,2,93,137,5,2,93,138,5,2,93,137,5,2,93,5,136,0,0,138,5,2,93,137,5,2,93,5,142,0,0,138,5,2,93,137,5,2,93,5,160,0,0,138,5,2,93,137,5,2,93,5,144,0,0,138,5,2,93,137,5,2,93,5,202,0,0,138,5,2,93,137,5,2,93,5,156,0,0,138,5,2,93,137,5,2,93,5,196,0,0,138,5,2,93,137,5,2,93,5,136,0,0,5,156,0,0,138,5,2,93,137,5,2,93,5,144,0,0,5,156,0,0,138,5,2,93,137,5,2,93,5,196,0,0,5,156,0,0,72,5,2,93,5,5,2,93,72,5,2,93,5,5,2,93,5,136,0,0,72,5,2,93,5,5,2,93,5,142,0,0,72,5,2,93,5,5,2,93,5,160,0,0,72,5,2,93,5,5,2,93,5,144,0,0,72,5,2,93,5,5,2,93,5,202,0,0,72,5,2,93,5,5,2,93,5,156,0,0,72,5,2,93,5,5,2,93,5,196,0,0,72,5,2,93,5,5,2,93,5,136,0,0,5,156,0,0,72,5,2,93,5,5,2,93,5,144,0,0,5,156,0,0,72,5,2,93,5,5,2,93,5,196,0,0,5,156,0,0,71,5,2,93,5,136,0,0,71,5,2,93,5,142,0,0,71,5,2,93,5,160,0,0,71,5,2,93,5,144,0,0,71,5,2,93,5,202,0,0,71,5,2,93,5,156,0,0,71,5,2,93,5,196,0,0,71,5,2,93,5,136,0,0,5,156,0,0,71,5,2,93,5,144,0,0,5,156,0,0,71,5,2,93,5,196,0,0,5,156,0,0,6,5,2,47,5,5,2,47,6,5,2,47,5,5,2,47,5,136,0,0,6,5,2,47,5,5,2,47,5,142,0,0,6,5,2,47,5,5,2,47,5,160,0,0,6,5,2,47,5,5,2,47,5,144,0,0,6,5,2,47,5,5,2,47,5,202,0,0,6,5,2,47,5,5,2,47,5,156,0,0,6,5,2,47,5,5,2,47,5,196,0,0,6,5,2,47,5,5,2,47,5,136,0,0,5,156,0,0,6,5,2,47,5,5,2,47,5,144,0,0,5,156,0,0,6,5,2,47,5,5,2,47,5,196,0,0,5,156,0,0,6,5,2,49,5,5,2,49,6,5,3,49,5,5,3,49,6,5,3,49,5,5,3,49,5,136,0,0,6,5,3,49,5,5,3,49,5,142,0,0,6,5,3,49,5,5,3,49,5,160,0,0,6,5,3,49,5,5,3,49,5,144,0,0,6,5,3,49,5,5,3,49,5,202,0,0,6,5,3,49,5,5,3,49,5,156,0,0,6,5,3,49,5,5,3,49,5,196,0,0,6,5,3,49,5,5,3,49,5,136,0,0,5,156,0,0,6,5,3,49,5,5,3,49,5,144,0,0,5,156,0,0,6,5,3,49,5,5,3,49,5,196,0,0,5,156,0,0,6,5,2,49,5,5,2,49,5,136,0,0,6,5,2,49,5,5,2,49,5,156,0,0,6,5,2,49,5,5,2,49,5,144,0,0,6,5,2,49,5,5,2,49,5,142,0,0,6,5,2,49,5,5,2,49,5,196,0,0,6,5,2,49,5,5,2,49,5,210,0,0,6,5,2,55,5,5,2,55,6,5,2,55,5,5,2,55,5,136,0,0,6,5,2,55,5,5,2,55,5,150,0,0,6,5,2,55,5,5,2,55,5,142,0,0,6,5,2,55,5,5,2,55,5,164,0,0,6,5,2,55,5,5,2,55,5,156,0,0,6,5,2,55,5,5,2,55,5,146,0,0,6,5,2,55,5,5,2,55,5,138,0,0,6,5,2,55,5,5,2,55,5,196,0,0,6,5,2,55,5,5,2,55,5,182,0,0,6,5,2,55,5,5,2,55,5,154,0,0,6,5,2,65,5,5,2,65,6,5,2,65,5,5,2,65,5,136,0,0,6,5,2,65,5,5,2,65,5,150,0,0,6,5,2,65,5,5,2,65,5,142,0,0,6,5,2,65,5,5,2,65,5,164,0,0,6,5,2,65,5,5,2,65,5,156,0,0,6,5,2,65,5,5,2,65,5,146,0,0,6,5,2,65,5,5,2,65,5,138,0,0,6,5,2,65,5,5,2,65,5,196,0,0,6,5,2,65,5,5,2,65,5,182,0,0,6,5,2,65,5,5,2,65,5,154,0,0,6,5,2,69,5,5,2,69,6,5,2,69,5,5,2,69,5,136,0,0,6,5,2,69,5,5,2,69,5,150,0,0,6,5,2,69,5,5,2,69,5,142,0,0,6,5,2,69,5,5,2,69,5,164,0,0,6,5,2,69,5,5,2,69,5,156,0,0,6,5,2,69,5,5,2,69,5,146,0,0,6,5,2,69,5,5,2,69,5,138,0,0,6,5,2,69,5,5,2,69,5,196,0,0,6,5,2,69,5,5,2,69,5,182,0,0,6,5,2,69,5,5,2,69,5,154,0,0,6,5,2,79,5,5,2,79,6,5,2,79,5,5,2,79,5,136,0,0,6,5,2,79,5,5,2,79,5,156,0,0,6,5,2,79,5,5,2,79,5,144,0,0,6,5,2,79,5,5,2,79,5,142,0,0,6,5,2,79,5,5,2,79,5,196,0,0,6,5,2,79,5,5,2,79,5,210,0,0,6,5,2,81,5,5,2,81,6,5,2,81,5,5,2,81,5,136,0,0,6,5,2,81,5,5,2,81,5,150,0,0,6,5,2,81,5,5,2,81,5,142,0,0,6,5,2,81,5,5,2,81,5,164,0,0,6,5,2,81,5,5,2,81,5,156,0,0,6,5,2,81,5,5,2,81,5,146,0,0,6,5,2,81,5,5,2,81,5,138,0,0,6,5,2,81,5,5,2,81,5,196,0,0,6,5,2,81,5,5,2,81,5,182,0,0,6,5,2,81,5,5,2,81,5,154,0,0,5,5,2,83,5,136,0,0,6,5,2,93,5,5,2,93,6,5,2,93,5,5,2,93,5,136,0,0,6,5,2,93,5,5,2,93,5,142,0,0,6,5,2,93,5,5,2,93,5,160,0,0,6,5,2,93,5,5,2,93,5,144,0,0,6,5,2,93,5,5,2,93,5,202,0,0,6,5,2,93,5,5,2,93,5,156,0,0,6,5,2,93,5,5,2,93,5,196,0,0,6,5,2,93,5,5,2,93,5,136,0,0,5,156,0,0,6,5,2,93,5,5,2,93,5,144,0,0,5,156,0,0,6,5,2,93,5,5,2,93,5,196,0,0,5,156,0,0,134,5,2,83,5,162,0,0,134,70,2,83,5,162,0,0,5,5,2,83,5,162,0,0,5,70,2,83,5,162,0,0,134,5,2,71,5,190,0,0,134,70,2,71,5,190,0,0,5,5,2,71,5,190,0,0,5,70,2,71,5,190,0,0,134,5,2,83,5,190,0,0,134,70,2,83,5,190,0,0,5,5,2,83,5,190,0,0,5,70,2,83,5,190,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,134,70,2,71,5,162,0,0,5,5,2,71,5,162,0,0,5,70,2,71,5,162,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,83,5,198,0,0,134,70,2,83,5,198,0,0,5,5,2,83,5,198,0,0,5,70,2,83,5,198,0,0,134,5,2,83,5,208,0,0,134,70,2,83,5,208,0,0,5,5,2,83,5,208,0,0,5,70,2,83,5,208,0,0,134,5,2,83,5,204,0,0,134,70,2,83,5,204,0,0,5,5,2,83,5,204,0,0,5,70,2,83,5,204,0,0,134,5,2,71,5,196,0,0,134,70,2,71,5,196,0,0,5,5,2,71,5,196,0,0,5,70,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,134,70,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,5,70,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,134,70,2,83,5,196,0,0,5,5,2,83,5,196,0,0,5,70,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,134,70,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,5,70,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,23,0,24,2,42,0,100,30,20,0,103,30,9,0,103,30,11,192,197,3,104,30,4,192,197,35,105,30,11,192,197,99,100,30,3,192,197,35,101,30,10,192,197,163,102,30,3,192,197,163,97,30,9,0,97,30,10,192,197,34,98,30,2,192,197,194,99,30,10,192,197,98,24,2,2,192,197,2,25,2,9,192,197,226,96,30,2,192,197,98,92,1,20,0,95,1,9,0,95,1,9,192,197,98,96,1,1,192,197,162,97,1,9,192,197,162,92,1,0,192,197,226,93,1,9,192,197,34,94,1,1,192,197,66,115,0,9,0,115,0,2,239,71,5,90,1,0,192,197,130,91,1,8,192,197,226,67,0,42,0,83,0,2,239,137,5,99,0,10,0,25,2,20,0,101,30,9,0,101,30,7,192,197,100,103,30,7,192,197,228,105,30,8,192,197,100,25,2,6,192,197,67,97,30,6,192,197,163,99,30,7,192,197,3,115,0,4,192,197,130,91,1,4,192,197,195,93,1,5,192,197,35,95,1,5,192,197,131,97,1,5,192,197,227,10,0,24,2,20,0,100,30,9,0,100,30,3,192,197,4,102,30,3,192,197,132,104,30,4,192,197,4,24,2,1,192,197,227,96,30,2,192,197,67,98,30,2,192,197,163,83,0,197,162,90,1,0,192,197,99,92,1,0,192,197,195,94,1,1,192,197,35,96,1,1,192,197,131,0,48,156,5,15,0,125,1,26,0,146,30,12,0,146,30,18,192,197,2,147,30,29,192,197,98,148,30,18,192,197,98,149,30,29,192,197,162,125,1,17,192,197,66,126,1,28,192,197,226,144,30,17,192,197,162,145,30,29,192,197,34,121,1,12,0,121,1,16,192,197,130,122,1,28,192,197,98,123,1,16,192,197,226,124,1,28,192,197,162,68,0,45,0,90,0,105,0,100,0,143,0,122,0,202,127,2,49,71,5,25,2,20,0,101,30,9,0,101,30,27,192,197,67,103,30,27,192,197,163,105,30,28,192,197,3,25,2,26,192,197,130,97,30,26,192,197,194,99,30,27,192,197,2,115,0,3,241,71,5,91,1,25,192,197,130,93,1,25,192,197,194,95,1,26,192,197,2,97,1,26,192,197,66,6,0,125,1,12,0,125,1,17,192,197,35,144,30,17,192,197,131,146,30,17,192,197,227,148,30,18,192,197,67,90,0,6,0,121,1,16,192,197,99,123,1,16,192,197,195,10,67,197,194,24,2,20,0,100,30,9,0,100,30,14,192,197,228,102,30,15,192,197,100,104,30,15,192,197,228,24,2,13,192,197,195,96,30,14,192,197,35,98,30,14,192,197,131,83,0,12,192,197,2,90,1,12,192,197,67,92,1,12,192,197,163,94,1,13,192,197,3,96,1,13,192,197,99,202,127,2,49,137,5,24,2,20,0,100,30,9,0,100,30,15,192,197,3,102,30,15,192,197,131,104,30,16,192,197,3,24,2,13,192,197,226,96,30,14,192,197,66,98,30,14,192,197,162,83,0,3,241,137,5,90,1,12,192,197,98,92,1,12,192,197,194,94,1,13,192,197,34,96,1,13,192,197,130,6,0,126,1,12,0,126,1,24,192,197,3,145,30,24,192,197,99,147,30,24,192,197,195,149,30,25,192,197,35,122,0,6,0,122,1,23,192,197,67,124,1,23,192,197,163,202,68,197,162,25,2,20,0,101,30,9,0,101,30,21,192,197,196,103,30,22,192,197,68,105,30,22,192,197,196,25,2,20,192,197,163,97,30,21,192,197,3,99,30,21,192,197,99,115,0,18,192,197,226,91,1,19,192,197,35,93,1,19,192,197,131,95,1,19,192,197,227,97,1,20,192,197,67,0,54,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,39,192,197,130,248,30,33,192,197,66,249,30,39,192,197,194,244,30,32,192,197,130,245,30,39,192,197,66,246,30,32,192,197,226,153,30,9,0,153,30,38,192,197,194,242,30,32,192,197,34,243,30,39,192,197,2,51,2,38,192,197,66,142,30,31,192,197,194,143,30,38,192,197,130,253,0,20,0,119,1,9,0,119,1,38,192,197,2,120,1,31,192,197,2,50,2,31,192,197,98,253,0,37,192,197,130,255,0,37,192,197,194,118,1,30,192,197,162,71,0,11,0,89,0,2,247,137,5,103,0,39,0,121,0,2,247,71,5,221,0,30,192,197,66,9,0,142,30,15,0,142,30,31,192,197,163,242,30,32,192,197,3,244,30,32,192,197,99,246,30,32,192,197,195,248,30,33,192,197,35,89,0,29,192,197,226,221,0,30,192,197,35,118,1,30,192,197,131,120,1,30,192,197,227,50,2,31,192,197,67,10,0,143,30,20,0,245,30,9,0,245,30,36,192,197,99,247,30,36,192,197,195,249,30,37,192,197,35,143,30,35,192,197,67,153,30,35,192,197,163,243,30,36,192,197,3,121,0,33,192,197,130,253,0,33,192,197,195,255,0,34,192,197,35,119,1,34,192,197,131,51,2,34,192,197,227,0,64,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,49,192,197,162,248,30,43,192,197,98,249,30,49,192,197,226,244,30,42,192,197,162,245,30,49,192,197,98,246,30,43,192,197,2,153,30,9,0,153,30,48,192,197,226,242,30,42,192,197,66,243,30,49,192,197,34,51,2,48,192,197,98,142,30,41,192,197,226,143,30,48,192,197,162,253,0,20,0,119,1,9,0,119,1,48,192,197,34,120,1,41,192,197,34,50,2,41,192,197,130,253,0,47,192,197,162,255,0,47,192,197,226,118,1,40,192,197,194,76,0,13,0,89,0,255,255,2,65,137,5,108,0,40,0,121,0,255,255,2,65,71,5,221,0,40,192,197,98,9,0,142,30,15,0,142,30,41,192,197,195,242,30,42,192,197,35,244,30,42,192,197,131,246,30,42,192,197,227,248,30,43,192,197,67,89,0,40,192,197,2,221,0,40,192,197,67,118,1,40,192,197,163,120,1,41,192,197,3,50,2,41,192,197,99,10,0,143,30,20,0,245,30,9,0,245,30,46,192,197,131,247,30,46,192,197,227,249,30,47,192,197,67,143,30,45,192,197,99,153,30,45,192,197,195,243,30,46,192,197,35,121,0,43,192,197,162,253,0,43,192,197,227,255,0,44,192,197,67,119,1,44,192,197,163,51,2,45,192,197,3,0,68,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,59,192,197,194,248,30,53,192,197,130,249,30,60,192,197,2,244,30,52,192,197,194,245,30,59,192,197,130,246,30,53,192,197,34,153,30,9,0,153,30,59,192,197,2,242,30,52,192,197,98,243,30,59,192,197,66,51,2,58,192,197,130,142,30,52,192,197,2,143,30,58,192,197,194,253,0,20,0,119,1,9,0,119,1,58,192,197,66,120,1,51,192,197,66,50,2,51,192,197,162,253,0,57,192,197,194,255,0,58,192,197,2,118,1,50,192,197,226,78,0,13,0,89,0,255,255,2,69,137,5,110,0,40,0,121,0,255,255,2,69,71,5,221,0,50,192,197,130,9,0,142,30,15,0,142,30,51,192,197,227,242,30,52,192,197,67,244,30,52,192,197,163,246,30,53,192,197,3,248,30,53,192,197,99,89,0,50,192,197,34,221,0,50,192,197,99,118,1,50,192,197,195,120,1,51,192,197,35,50,2,51,192,197,131,10,0,143,30,20,0,245,30,9,0,245,30,56,192,197,163,247,30,57,192,197,3,249,30,57,192,197,99,143,30,55,192,197,131,153,30,55,192,197,227,243,30,56,192,197,67,121,0,53,192,197,194,253,0,54,192,197,3,255,0,54,192,197,99,119,1,54,192,197,195,51,2,55,192,197,35,0,70,156,5,1,0,8,3,255,255,2,71,134,5,11,3,255,255,2,71,134,70,0,78,156,5,15,0,125,1,26,0,146,30,12,0,146,30,62,192,197,34,147,30,66,192,197,66,148,30,62,192,197,130,149,30,66,192,197,130,125,1,61,192,197,98,126,1,65,192,197,194,144,30,61,192,197,194,145,30,66,192,197,2,121,1,12,0,121,1,60,192,197,162,122,1,65,192,197,66,123,1,61,192,197,2,124,1,65,192,197,130,83,0,10,0,90,0,255,255,2,79,137,5,115,0,28,0,122,0,255,255,2,79,71,5,6,0,125,1,12,0,125,1,61,192,197,67,144,30,61,192,197,163,146,30,62,192,197,3,148,30,62,192,197,99,90,0,60,192,197,66,121,1,60,192,197,131,123,1,60,192,197,227,6,0,126,1,12,0,126,1,63,192,197,195,145,30,64,192,197,35,147,30,64,192,197,131,149,30,64,192,197,227,122,0,62,192,197,194,122,1,63,192,197,3,124,1,63,192,197,99,0,80,156,5,22,0,51,2,42,0,244,30,20,0,247,30,9,0,247,30,76,192,197,98,248,30,70,192,197,34,249,30,76,192,197,162,244,30,69,192,197,98,245,30,76,192,197,34,246,30,69,192,197,194,153,30,9,0,153,30,75,192,197,162,242,30,69,192,197,2,243,30,75,192,197,226,51,2,75,192,197,34,142,30,68,192,197,162,143,30,75,192,197,98,253,0,20,0,119,1,9,0,119,1,74,192,197,226,120,1,67,192,197,226,50,2,68,192,197,66,253,0,74,192,197,98,255,0,74,192,197,162,118,1,67,192,197,130,84,0,13,0,89,0,255,255,2,81,137,5,116,0,40,0,121,0,255,255,2,81,71,5,221,0,67,192,197,34,9,0,142,30,15,0,142,30,68,192,197,131,242,30,68,192,197,227,244,30,69,192,197,67,246,30,69,192,197,163,248,30,70,192,197,3,89,0,66,192,197,194,221,0,67,192,197,3,118,1,67,192,197,99,120,1,67,192,197,195,50,2,68,192,197,35,10,0,143,30,20,0,245,30,9,0,245,30,73,192,197,67,247,30,73,192,197,163,249,30,74,192,197,3,143,30,72,192,197,35,153,30,72,192,197,131,243,30,72,192,197,227,121,0,70,192,197,98,253,0,70,192,197,163,255,0,71,192,197,3,119,1,71,192,197,99,51,2,71,192,197,195,0,82,156,5,2,0,8,3,255,255,2,83,134,5,11,3,255,255,2,83,134,70,68,3,76,192,197,226,0,92,156,5,23,0,24,2,42,0,100,30,20,0,103,30,9,0,103,30,88,192,197,3,104,30,81,192,197,35,105,30,88,192,197,99,100,30,80,192,197,35,101,30,87,192,197,163,102,30,80,192,197,163,97,30,9,0,97,30,87,192,197,34,98,30,79,192,197,194,99,30,87,192,197,98,24,2,79,192,197,2,25,2,86,192,197,226,96,30,79,192,197,98,92,1,20,0,95,1,9,0,95,1,86,192,197,98,96,1,78,192,197,162,97,1,86,192,197,162,92,1,77,192,197,226,93,1,86,192,197,34,94,1,78,192,197,66,122,0,46,0,122,0,6,0,90,1,77,192,197,130,91,1,85,192,197,226,10,0,25,2,20,0,101,30,9,0,101,30,84,192,197,100,103,30,84,192,197,228,105,30,85,192,197,100,25,2,83,192,197,67,97,30,83,192,197,163,99,30,84,192,197,3,115,0,81,192,197,130,91,1,81,192,197,195,93,1,82,192,197,35,95,1,82,192,197,131,97,1,82,192,197,227,83,0,255,255,2,93,137,5,90,0,4,0,115,0,255,255,2,93,71,5,10,0,24,2,20,0,100,30,9,0,100,30,80,192,197,4,102,30,80,192,197,132,104,30,81,192,197,4,24,2,78,192,197,227,96,30,79,192,197,67,98,30,79,192,197,163,83,0,77,192,197,34,90,1,77,192,197,99,92,1,77,192,197,195,94,1,78,192,197,35,96,1,78,192,197,131,0,46,5,5,11,0,25,2,20,0,101,30,9,0,101,30,7,192,197,131,103,30,8,192,197,3,105,30,8,192,197,131,25,2,6,192,197,98,97,30,6,192,197,194,99,30,7,192,197,34,93,1,9,0,93,1,5,192,197,66,95,1,5,192,197,162,97,1,6,192,197,2,99,0,6,0,115,0,2,239,5,5,91,1,4,192,197,226,10,0,25,2,20,0,101,30,9,0,101,30,91,192,197,164,103,30,92,192,197,36,105,30,92,192,197,164,25,2,90,192,197,131,97,30,90,192,197,227,99,30,91,192,197,67,115,0,88,192,197,194,91,1,89,192,197,3,93,1,89,192,197,99,95,1,89,192,197,195,97,1,90,192,197,35,0,48,5,5,7,0,126,1,12,0,126,1,24,192,197,34,145,30,24,192,197,130,147,30,24,192,197,226,149,30,25,192,197,66,100,0,8,0,122,0,68,0,122,1,23,192,197,98,124,1,23,192,197,194,6,0,126,1,12,0,126,1,98,192,197,131,145,30,98,192,197,227,147,30,99,192,197,67,149,30,99,192,197,163,122,0,6,0,122,1,97,192,197,195,124,1,98,192,197,35,138,87,197,34,25,2,20,0,101,30,9,0,101,30,96,192,197,68,103,30,96,192,197,196,105,30,97,192,197,68,25,2,95,192,197,35,97,30,95,192,197,131,99,30,95,192,197,227,115,0,93,192,197,98,91,1,93,192,197,163,93,1,94,192,197,3,95,1,94,192,197,99,97,1,94,192,197,195,202,127,2,49,5,5,25,2,20,0,101,30,9,0,101,30,21,192,197,227,103,30,22,192,197,99,105,30,22,192,197,227,25,2,20,192,197,194,97,30,21,192,197,34,99,30,21,192,197,130,115,0,3,241,5,5,91,1,19,192,197,66,93,1,19,192,197,162,95,1,20,192,197,2,97,1,20,192,197,98,0,54,5,5,11,0,143,30,20,0,245,30,9,0,245,30,36,192,197,130,247,30,36,192,197,226,249,30,37,192,197,66,143,30,35,192,197,98,153,30,35,192,197,194,243,30,36,192,197,34,255,0,9,0,255,0,34,192,197,66,119,1,34,192,197,162,51,2,35,192,197,2,103,0,6,0,121,0,2,247,5,5,253,0,33,192,197,226,10,0,143,30,20,0,245,30,9,0,245,30,102,192,197,227,247,30,103,192,197,67,249,30,103,192,197,163,143,30,101,192,197,195,153,30,102,192,197,35,243,30,102,192,197,131,121,0,100,192,197,2,253,0,100,192,197,67,255,0,100,192,197,163,119,1,101,192,197,3,51,2,101,192,197,99,0,64,5,5,11,0,143,30,20,0,245,30,9,0,245,30,46,192,197,162,247,30,47,192,197,2,249,30,47,192,197,98,143,30,45,192,197,130,153,30,45,192,197,226,243,30,46,192,197,66,255,0,9,0,255,0,44,192,197,98,119,1,44,192,197,194,51,2,45,192,197,34,108,0,7,0,121,0,255,255,2,65,5,5,253,0,44,192,197,2,10,0,143,30,20,0,245,30,9,0,245,30,106,192,197,227,247,30,107,192,197,67,249,30,107,192,197,163,143,30,105,192,197,195,153,30,106,192,197,35,243,30,106,192,197,131,121,0,104,192,197,2,253,0,104,192,197,67,255,0,104,192,197,163,119,1,105,192,197,3,51,2,105,192,197,99,0,68,5,5,11,0,143,30,20,0,245,30,9,0,245,30,56,192,197,194,247,30,57,192,197,34,249,30,57,192,197,130,143,30,55,192,197,162,153,30,56,192,197,2,243,30,56,192,197,98,255,0,9,0,255,0,54,192,197,130,119,1,54,192,197,226,51,2,55,192,197,66,110,0,7,0,121,0,255,255,2,69,5,5,253,0,54,192,197,34,10,0,143,30,20,0,245,30,9,0,245,30,110,192,197,227,247,30,111,192,197,67,249,30,111,192,197,163,143,30,109,192,197,195,153,30,110,192,197,35,243,30,110,192,197,131,121,0,108,192,197,2,253,0,108,192,197,67,255,0,108,192,197,163,119,1,109,192,197,3,51,2,109,192,197,99,0,70,5,5,1,0,8,3,255,255,2,71,5,5,11,3,255,255,2,71,5,70,0,78,5,5,7,0,126,1,12,0,126,1,63,192,197,226,145,30,64,192,197,66,147,30,64,192,197,162,149,30,65,192,197,2,115,0,10,0,122,0,255,255,2,79,5,5,122,1,63,192,197,34,124,1,63,192,197,130,6,0,126,1,12,0,126,1,113,192,197,3,145,30,113,192,197,99,147,30,113,192,197,195,149,30,114,192,197,35,122,0,112,192,197,2,122,1,112,192,197,67,124,1,112,192,197,163,0,80,5,5,11,0,143,30,20,0,245,30,9,0,245,30,73,192,197,98,247,30,73,192,197,194,249,30,74,192,197,34,143,30,72,192,197,66,153,30,72,192,197,162,243,30,73,192,197,2,255,0,9,0,255,0,71,192,197,34,119,1,71,192,197,130,51,2,71,192,197,226,116,0,7,0,121,0,255,255,2,81,5,5,253,0,70,192,197,194,10,0,143,30,20,0,245,30,9,0,245,30,117,192,197,99,247,30,117,192,197,195,249,30,118,192,197,35,143,30,116,192,197,67,153,30,116,192,197,163,243,30,117,192,197,3,121,0,114,192,197,130,253,0,114,192,197,195,255,0,115,192,197,35,119,1,115,192,197,131,51,2,115,192,197,227,0,82,5,5,2,0,8,3,255,255,2,83,5,5,11,3,255,255,2,83,5,70,68,3,118,192,197,130,0,92,5,5,11,0,25,2,20,0,101,30,9,0,101,30,84,192,197,131,103,30,85,192,197,3,105,30,85,192,197,131,25,2,83,192,197,98,97,30,83,192,197,194,99,30,84,192,197,34,93,1,9,0,93,1,82,192,197,66,95,1,82,192,197,162,97,1,83,192,197,2,115,0,255,255,2,93,5,5,122,0,3,0,91,1,81,192,197,226,10,0,25,2,20,0,101,30,9,0,101,30,121,192,197,164,103,30,122,192,197,36,105,30,122,192,197,164,25,2,120,192,197,131,97,30,120,192,197,227,99,30,121,192,197,67,115,0,118,192,197,194,91,1,119,192,197,3,93,1,119,192,197,99,95,1,119,192,197,195,97,1,120,192,197,35,156,82,196,162,1,0,8,3,123,192,197,34,11,3,123,192,197,98,5,82,196,162,1,0,8,3,123,192,197,162,11,3,123,192,197,226,156,70,196,190,1,0,8,3,124,192,197,34,11,3,124,192,197,98,5,70,196,190,1,0,8,3,124,192,197,162,11,3,124,192,197,226,156,82,196,190,1,0,8,3,125,192,197,34,11,3,125,192,197,98,5,82,196,190,1,0,8,3,125,192,197,162,11,3,125,192,197,226,156,70,196,162,1,0,8,3,127,192,197,162,11,3,127,192,197,226,5,70,196,162,1,0,8,3,128,192,197,34,11,3,128,192,197,98,156,82,196,198,1,0,8,3,129,192,197,34,11,3,129,192,197,98,5,82,196,198,1,0,8,3,129,192,197,162,11,3,129,192,197,226,156,82,196,208,1,0,8,3,130,192,197,34,11,3,130,192,197,98,5,82,196,208,1,0,8,3,130,192,197,162,11,3,130,192,197,226,156,82,196,204,1,0,8,3,131,192,197,34,11,3,131,192,197,98,5,82,196,204,1,0,8,3,131,192,197,162,11,3,131,192,197,226,156,70,196,196,1,0,8,3,132,192,197,34,11,3,132,192,197,98,5,70,196,196,1,0,8,3,132,192,197,162,11,3,132,192,197,226,133,0,197,35,1,0,8,3,133,192,197,131,11,3,133,192,197,227,134,0,197,67,1,0,8,3,134,192,197,163,11,3,135,192,197,3,156,82,196,196,1,0,8,3,135,192,197,98,11,3,135,192,197,162,5,82,196,196,1,0,8,3,135,192,197,226,11,3,136,192,197,34,136,0,197,99,1,0,8,3,136,192,197,195,11,3,137,192,197,35,137,0,197,131,1,0,8,3,137,192,197,227,11,3,138,192,197,67,44,0,67,0,69,0,71,0,72,0,78,0,79,0,83,0,85,0,89,0,91,0,99,0,101,0,103,0,104,0,108,0,109,0,110,0,111,0,115,0,117,0,121,0,123,0,221,0,222,0,253,0,254,0,255,0,0,1,90,1,98,1,118,1,127,1,24,2,26,2,50,2,52,2,96,30,106,30,142,30,150,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,50,4,186,80,185,84,68,4,185,96,186,100,186,108,185,112,88,4,185,124,108,4,128,4,185,148,185,152,185,160,130,4,150,4,170,4,185,192,185,196,185,200,185,204,172,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,196,4,209,4,168,80,168,84,219,4,168,96,168,100,168,108,168,112,230,4,168,124,241,4,252,4,168,148,168,152,168,160,254,4,9,5,20,5,168,192,168,196,168,200,168,204,22,5,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,89,58,57,58,0,8,217,66,186,81,154,81,250,81,90,82,186,101,154,101,250,101,90,102,217,72,122,130,185,141,153,141,249,141,121,142,185,144,136,14,185,142,185,185,153,185,249,185,185,188,153,205,185,216,2,8,168,57,136,57,232,57,104,58,72,58,40,58,4,8,200,66,168,81,136,81,232,81,72,82,168,101,136,101,232,101,72,102,200,72,104,130,168,141,136,141,232,141,104,142,168,144,128,14,168,142,168,185,136,185,232,185,168,188,136,205,168,216,72,206,25,59,8,59,217,57,200,57,249,58,232,58,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,74,8,74,57,75,40,75,26,83,8,83,218,81,200,81,154,82,136,82,250,82,232,82,26,82,8,82,249,89,232,89,217,89,200,89,153,90,136,90,217,90,200,90,249,97,232,97,57,99,40,99,122,102,104,102,26,103,8,103,218,101,200,101,250,102,232,102,154,102,168,104,6,8,8,8,250,109,232,109,217,114,200,114,168,156,153,117,136,117,217,118,200,118,25,118,8,118,89,119,72,119,57,119,40,119,154,129,136,129,218,130,200,130,26,130,8,130,10,8,185,136,168,136,25,143,8,143,217,141,200,141,217,144,200,144,12,8,14,8,153,161,136,161,217,162,200,162,25,162,8,162,154,165,136,165,250,165,232,165,218,166,200,166,26,166,8,166,217,174,200,174,25,174,8,174,185,180,168,180,121,186,104,186,25,187,8,187,217,185,200,185,57,186,40,186,217,188,200,188,35,5,37,5,249,197,232,197,249,205,232,205,89,206,153,209,136,209,153,210,136,210,25,210,8,210,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,164,169,164,200,56,169,80,187,100,187,108,169,100,169,108,169,220,169,128,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,67,2,83,4,186,68,99,2,115,4,177,68,90,5,154,69,91,5,145,69,92,5,250,69,93,5,241,69,94,5,218,70,95,5,209,70,96,5,26,70,97,5,17,70,255,5,185,72,68,2,90,2,100,2,122,2,121,5,154,77,122,5,145,77,123,5,154,78,124,5,145,78,125,5,26,78,126,5,17,78,255,5,185,88,71,2,89,4,186,92,103,2,121,4,177,92,221,4,154,93,253,4,145,93,255,4,81,94,118,5,250,93,119,5,241,93,120,5,90,94,255,5,185,116,76,2,89,4,186,120,108,2,121,4,177,120,221,4,154,121,253,4,145,121,255,4,81,122,118,5,250,121,119,5,241,121,120,5,90,122,255,5,186,128,78,2,89,4,186,132,110,2,121,4,177,132,221,4,154,133,253,4,145,133,255,4,81,134,118,5,250,133,119,5,241,133,120,5,90,134,255,5,185,140,255,5,186,164,83,2,90,4,186,168,115,2,122,4,177,168,121,5,154,169,122,5,145,169,123,5,154,170,124,5,145,170,125,5,26,170,126,5,17,170,255,5,185,172,84,2,89,4,186,176,116,2,121,4,177,176,221,4,154,177,253,4,145,177,255,4,81,178,118,5,250,177,119,5,241,177,120,5,90,178,255,5,185,184,255,5,185,208,83,4,186,212,90,2,115,4,177,212,122,2,90,5,154,213,91,5,145,213,92,5,250,213,93,5,241,213,94,5,218,214,95,5,209,214,96,5,26,214,97,5,17,214,255,5,168,64,99,2,115,4,168,68,91,5,136,69,93,5,232,69,95,5,200,70,97,5,8,70,255,5,168,72,100,2,122,2,122,5,136,77,124,5,136,78,126,5,8,78,255,5,168,88,103,2,121,4,168,92,253,4,136,93,255,4,72,94,119,5,232,93,255,5,168,116,108,2,121,4,168,120,253,4,136,121,255,4,72,122,119,5,232,121,255,5,168,128,110,2,121,4,168,132,253,4,136,133,255,4,72,134,119,5,232,133,255,5,168,140,255,5,168,164,115,2,122,4,168,168,122,5,136,169,124,5,136,170,126,5,8,170,255,5,168,172,116,2,121,4,168,176,253,4,136,177,255,4,72,178,119,5,232,177,255,5,168,184,255,5,168,208,115,4,168,212,122,2,91,5,136,213,93,5,232,213,95,5,200,214,97,5,8,214,255,5,249,186,255,5,232,186,255,1,170,170,3,0,69,0,52,0,61,0,19,1,0,16,4,0,0,96,1,0,0,96,1,0,43,0,93,18,0,32,1,0,32,0,98,18,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,154,6,0,32,7,0,0,0,21,0,0,0,156,6,0,0,156,6,0,0,3,0,0,0,0,0,0,0,34,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,109,0,110,0,93,0,38,0,101,5,126,5,60,0,60,0,60,0,135,5,0,0,170,170,170,170,188,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,88,25,0,0,88,25,0,0,88,25,0,0,88,25,0,0,164,25,0,0,3,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,39,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,16,100,6,5,68,100,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,147,6,0,32,1,0,32,0,152,6,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,67,12,0,32,7,0,0,0,21,0,0,0,69,12,0,0,69,12,0,0,3,0,0,0,0,0,0,0,112,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,175,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,66,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,60,0,103,0,104,0,60,0,60,0,60,0,71,0,104,0,60,0,60,0,60,0,71,0,72,0,60,0,103,0,119,0,60,0,60,0,60,0,71,0,119,0,60,0,60,0,60,0,71,0,87,0,38,0,73,0,60,0,203,30,60,0,60,0,60,0,202,30,38,0,75,0,60,0,107,0,112,0,60,0,60,0,60,0,75,0,112,0,60,0,60,0,60,0,75,0,80,0,60,0,107,0,119,0,60,0,60,0,60,0,75,0,119,0,60,0,60,0,60,0,75,0,87,0,38,0,78,0,60,0,69,30,60,0,60,0,60,0,68,30,60,0,110,0,119,0,60,0,60,0,60,0,78,0,119,0,60,0,60,0,60,0,78,0,87,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,38,0,79,0,60,0,205,30,60,0,60,0,60,0,204,30,38,0,83,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,85,0,60,0,229,30,60,0,60,0,60,0,228,30,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,30,47,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,28,0,0,164,28,0,0,164,28,0,0,164,28,0,0,240,34,0,0,240,34,0,0,176,41,0,0,22,42,0,0,6,47,0,0,50,105,114,84,1,0,64,8,189,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,108,0,116,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,152,0,48,0,48,0,48,0,158,0,166,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,172,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,180,0,145,0,48,0,48,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,137,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,176,1,228,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,49,0,202,65,49,0,202,98,49,0,202,131,49,0,202,164,49,0,202,197,49,0,202,230,49,0,202,7,50,0,202,40,50,0,202,73,50,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,96,7,0,156,5,0,56,201,134,24,0,156,5,0,60,201,64,25,0,156,5,0,64,156,5,0,66,201,132,34,0,201,38,51,0,156,5,0,72,160,5,0,74,156,5,0,76,201,0,52,0,156,5,0,80,201,198,59,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,160,60,0,5,5,0,48,5,5,0,50,5,5,0,52,201,160,64,0,5,5,0,56,201,230,73,0,5,5,0,60,201,160,74,0,5,5,0,64,5,5,0,66,201,164,79,0,201,166,88,0,5,5,0,72,5,5,0,74,5,5,0,76,201,128,89,0,5,5,0,80,201,166,93,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,48,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,48,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,48,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,94,0,201,70,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,96,0,201,198,96,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,97,0,201,70,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,99,0,201,198,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,100,0,201,70,101,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,102,0,201,198,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,69,5,5,2,69,201,134,103,0,201,70,104,0,201,6,105,0,201,198,105,0,201,134,106,0,201,70,107,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,59,5,5,2,59,134,5,2,71,5,5,2,71,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,47,0,197,34,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,44,0,197,34,45,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,45,0,197,162,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,64,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,45,5,142,0,0,70,5,2,45,5,142,0,0,135,5,2,45,5,144,0,0,70,5,2,45,5,144,0,0,135,5,2,45,5,156,0,0,70,5,2,45,5,156,0,0,135,5,2,45,5,196,0,0,70,5,2,45,5,196,0,0,135,5,2,45,5,150,0,0,70,5,2,45,5,150,0,0,135,5,2,45,5,160,0,0,70,5,2,45,5,160,0,0,135,5,2,45,5,206,0,0,70,5,2,45,5,206,0,0,70,5,2,45,5,210,0,0,135,5,3,55,5,142,0,0,70,5,3,55,5,142,0,0,135,5,4,55,5,142,0,0,70,5,4,55,5,142,0,0,135,5,3,55,5,144,0,0,70,5,3,55,5,144,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,196,0,0,70,5,2,55,5,196,0,0,135,5,2,55,5,210,0,0,70,5,2,55,5,210,0,0,135,5,3,55,5,156,0,0,70,5,3,55,5,156,0,0,135,5,3,55,5,196,0,0,70,5,3,55,5,196,0,0,135,5,3,55,5,150,0,0,70,5,3,55,5,150,0,0,135,5,3,55,5,160,0,0,70,5,3,55,5,160,0,0,135,5,3,55,5,206,0,0,70,5,3,55,5,206,0,0,135,5,4,55,5,138,0,0,70,5,4,55,5,138,0,0,135,5,4,55,5,136,0,0,70,5,4,55,5,136,0,0,135,5,4,55,5,150,0,0,70,5,4,55,5,150,0,0,135,5,4,55,5,156,0,0,70,5,4,55,5,156,0,0,135,5,4,55,5,196,0,0,70,5,4,55,5,196,0,0,70,5,3,55,5,210,0,0,70,5,4,55,5,146,0,0,135,5,3,63,5,142,0,0,70,5,3,63,5,142,0,0,135,5,2,63,5,136,0,0,70,5,2,63,5,136,0,0,135,5,2,63,5,156,0,0,70,5,2,63,5,156,0,0,135,5,3,63,5,138,0,0,70,5,3,63,5,138,0,0,135,5,3,63,5,136,0,0,70,5,3,63,5,136,0,0,135,5,3,63,5,150,0,0,70,5,3,63,5,150,0,0,135,5,3,63,5,156,0,0,70,5,3,63,5,156,0,0,135,5,3,63,5,196,0,0,70,5,3,63,5,196,0,0,70,5,3,63,5,146,0,0,135,5,4,69,5,136,0,0,70,5,4,69,5,136,0,0,70,5,4,69,5,150,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,4,69,5,142,0,0,70,5,4,69,5,142,0,0,135,5,4,69,5,150,0,0,135,5,4,69,5,164,0,0,70,5,4,69,5,164,0,0,135,5,3,69,5,138,0,0,70,5,3,69,5,138,0,0,135,5,3,69,5,136,0,0,70,5,3,69,5,136,0,0,135,5,3,69,5,150,0,0,70,5,3,69,5,150,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,196,0,0,70,5,3,69,5,196,0,0,135,5,4,69,5,156,0,0,70,5,4,69,5,156,0,0,70,5,3,69,5,146,0,0,70,5,4,69,5,146,0,0,135,5,4,69,5,138,0,0,70,5,4,69,5,138,0,0,135,5,4,69,5,196,0,0,70,5,4,69,5,196,0,0,135,5,4,69,5,182,0,0,70,5,4,69,5,182,0,0,135,5,4,69,5,154,0,0,70,5,4,69,5,154,0,0,135,5,2,79,5,142,0,0,70,5,2,79,5,142,0,0,135,5,2,79,5,144,0,0,70,5,2,79,5,144,0,0,135,5,2,79,5,156,0,0,70,5,2,79,5,156,0,0,135,5,2,79,5,196,0,0,70,5,2,79,5,196,0,0,135,5,2,79,5,150,0,0,70,5,2,79,5,150,0,0,135,5,2,79,5,160,0,0,70,5,2,79,5,160,0,0,135,5,2,79,5,206,0,0,70,5,2,79,5,206,0,0,70,5,2,79,5,210,0,0,5,5,2,45,5,142,0,0,5,5,2,45,5,144,0,0,5,5,2,45,5,156,0,0,5,5,2,45,5,196,0,0,5,5,2,45,5,150,0,0,5,5,2,45,5,160,0,0,5,5,2,45,5,206,0,0,5,5,2,45,5,210,0,0,5,5,3,55,5,142,0,0,5,5,4,55,5,142,0,0,5,5,3,55,5,144,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,196,0,0,5,5,2,55,5,210,0,0,5,5,3,55,5,156,0,0,5,5,3,55,5,196,0,0,5,5,3,55,5,150,0,0,5,5,3,55,5,160,0,0,5,5,3,55,5,206,0,0,5,5,4,55,5,138,0,0,5,5,4,55,5,136,0,0,5,5,4,55,5,150,0,0,5,5,4,55,5,156,0,0,5,5,4,55,5,196,0,0,5,5,3,55,5,210,0,0,5,5,4,55,5,146,0,0,5,5,3,63,5,142,0,0,5,5,2,63,5,136,0,0,5,5,2,63,5,156,0,0,5,5,3,63,5,138,0,0,5,5,3,63,5,136,0,0,5,5,3,63,5,150,0,0,5,5,3,63,5,156,0,0,5,5,3,63,5,196,0,0,5,5,3,63,5,146,0,0,5,5,4,69,5,136,0,0,5,5,4,69,5,150,0,0,5,5,3,69,5,142,0,0,5,5,4,69,5,142,0,0,5,5,4,69,5,164,0,0,5,5,3,69,5,138,0,0,5,5,3,69,5,136,0,0,5,5,3,69,5,150,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,196,0,0,5,5,4,69,5,156,0,0,5,5,3,69,5,146,0,0,5,5,4,69,5,146,0,0,5,5,4,69,5,138,0,0,5,5,4,69,5,196,0,0,5,5,4,69,5,182,0,0,5,5,4,69,5,154,0,0,5,5,2,79,5,142,0,0,5,5,2,79,5,144,0,0,5,5,2,79,5,156,0,0,5,5,2,79,5,196,0,0,5,5,2,79,5,150,0,0,5,5,2,79,5,160,0,0,5,5,2,79,5,206,0,0,5,5,2,79,5,210,0,0,134,5,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,71,5,142,0,0,5,5,2,71,5,142,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,237,135,5,104,0,2,237,70,5,36,1,197,162,37,1,0,192,197,98,0,54,156,5,39,0,36,30,66,0,130,30,32,0,135,30,15,0,135,30,11,192,197,34,136,30,11,192,197,98,137,30,11,192,197,162,150,30,11,192,197,226,152,30,12,192,197,34,130,30,9,192,197,226,131,30,10,192,197,34,132,30,10,192,197,98,133,30,10,192,197,162,134,30,10,192,197,226,41,30,15,0,41,30,8,192,197,162,42,30,8,192,197,226,43,30,9,192,197,34,128,30,9,192,197,98,129,30,9,192,197,162,36,30,7,192,197,98,37,30,7,192,197,162,38,30,7,192,197,226,39,30,8,192,197,34,40,30,8,192,197,98,30,2,32,0,5,30,15,0,5,30,6,192,197,34,6,30,6,192,197,98,7,30,6,192,197,162,34,30,6,192,197,226,35,30,7,192,197,34,30,2,4,192,197,226,31,2,5,192,197,34,2,30,5,192,197,98,3,30,5,192,197,162,4,30,5,192,197,226,119,0,15,0,119,0,4,247,70,5,36,1,3,192,197,226,37,1,4,192,197,34,116,1,4,192,197,98,117,1,4,192,197,162,66,0,2,247,135,5,72,0,3,247,135,5,87,0,4,247,135,5,98,0,2,247,70,5,104,0,3,247,70,5,0,58,156,5,48,0,35,3,2,251,134,5,0,62,156,5,20,0,128,30,37,0,133,30,20,0,136,30,9,0,136,30,15,192,197,226,137,30,16,192,197,34,152,30,16,192,197,98,133,30,15,192,197,34,134,30,15,192,197,98,135,30,15,192,197,162,128,30,13,192,197,226,129,30,14,192,197,34,130,30,14,192,197,98,131,30,14,192,197,162,132,30,14,192,197,226,117,1,15,0,117,1,12,192,197,162,84,30,12,192,197,226,85,30,13,192,197,34,86,30,13,192,197,98,87,30,13,192,197,162,80,0,2,255,135,5,87,0,3,255,135,5,112,0,2,255,70,5,119,0,3,255,70,5,116,1,12,192,197,98,0,68,156,5,36,0,131,30,63,0,152,30,32,0,245,30,15,0,245,30,23,192,197,98,246,30,23,192,197,162,247,30,23,192,197,226,248,30,24,192,197,34,249,30,24,192,197,98,152,30,22,192,197,34,153,30,22,192,197,98,242,30,22,192,197,162,243,30,22,192,197,226,244,30,23,192,197,34,135,30,15,0,135,30,20,192,197,226,136,30,21,192,197,34,137,30,21,192,197,98,142,30,21,192,197,162,143,30,21,192,197,226,131,30,19,192,197,226,132,30,20,192,197,34,133,30,20,192,197,98,134,30,20,192,197,162,118,1,30,0,51,2,16,0,51,2,18,192,197,226,7,3,255,255,2,69,134,5,128,30,19,192,197,34,129,30,19,192,197,98,130,30,19,192,197,162,118,1,17,192,197,226,119,1,18,192,197,34,120,1,18,192,197,98,50,2,18,192,197,162,221,0,15,0,221,0,16,192,197,162,253,0,16,192,197,226,255,0,17,192,197,34,116,1,17,192,197,98,117,1,17,192,197,162,87,0,255,255,3,69,135,5,89,0,255,255,4,69,135,5,119,0,255,255,3,69,70,5,121,0,255,255,4,69,70,5,0,70,156,5,48,0,35,3,255,255,2,71,134,5,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,27,192,197,34,41,30,27,192,197,98,42,30,27,192,197,162,43,30,27,192,197,226,150,30,28,192,197,34,36,30,26,192,197,34,37,30,26,192,197,98,38,30,26,192,197,162,39,30,26,192,197,226,30,2,12,0,30,2,25,192,197,34,31,2,25,192,197,98,34,30,25,192,197,162,35,30,25,192,197,226,72,0,255,255,2,79,135,5,104,0,255,255,2,79,70,5,36,1,24,192,197,162,37,1,24,192,197,226,0,82,156,5,48,0,35,3,255,255,2,83,134,5,0,46,5,5,8,0,37,30,15,0,37,30,29,192,197,34,39,30,29,192,197,98,41,30,29,192,197,162,43,30,29,192,197,226,150,30,30,192,197,34,104,0,2,237,5,5,37,1,28,192,197,98,31,2,28,192,197,162,35,30,28,192,197,226,0,54,5,5,20,0,37,30,37,0,131,30,20,0,137,30,9,0,137,30,34,192,197,34,150,30,34,192,197,98,152,30,34,192,197,162,131,30,33,192,197,98,133,30,33,192,197,162,135,30,33,192,197,226,37,30,32,192,197,34,39,30,32,192,197,98,41,30,32,192,197,162,43,30,32,192,197,226,129,30,33,192,197,34,31,2,15,0,31,2,30,192,197,226,3,30,31,192,197,34,5,30,31,192,197,98,7,30,31,192,197,162,35,30,31,192,197,226,98,0,2,247,5,5,104,0,3,247,5,5,119,0,4,247,5,5,37,1,30,192,197,98,117,1,30,192,197,162,0,58,5,5,48,0,35,3,2,251,5,5,0,62,5,5,10,0,129,30,20,0,135,30,9,0,135,30,36,192,197,98,137,30,36,192,197,162,152,30,36,192,197,226,129,30,35,192,197,162,131,30,35,192,197,226,133,30,36,192,197,34,112,0,2,255,5,5,119,0,3,255,5,5,117,1,34,192,197,226,85,30,35,192,197,34,87,30,35,192,197,98,0,68,5,5,19,0,133,30,32,0,153,30,15,0,153,30,40,192,197,34,243,30,40,192,197,98,245,30,40,192,197,162,247,30,40,192,197,226,249,30,41,192,197,34,133,30,38,192,197,226,135,30,39,192,197,34,137,30,39,192,197,98,143,30,39,192,197,162,152,30,39,192,197,226,119,1,16,0,119,1,37,192,197,226,51,2,38,192,197,34,7,3,255,255,2,69,5,5,129,30,38,192,197,98,131,30,38,192,197,162,119,0,255,255,3,69,5,5,121,0,255,255,4,69,5,5,253,0,37,192,197,34,255,0,37,192,197,98,117,1,37,192,197,162,0,70,5,5,48,0,35,3,255,255,2,71,5,5,0,78,5,5,8,0,37,30,15,0,37,30,42,192,197,34,39,30,42,192,197,98,41,30,42,192,197,162,43,30,42,192,197,226,150,30,43,192,197,34,104,0,255,255,2,79,5,5,37,1,41,192,197,98,31,2,41,192,197,162,35,30,41,192,197,226,0,82,5,5,48,0,35,3,255,255,2,83,5,5,156,58,196,162,48,0,35,3,43,192,197,98,5,58,196,162,48,0,35,3,43,192,197,162,156,68,196,160,48,0,7,3,43,192,197,226,5,68,196,160,48,0,7,3,44,192,197,34,156,82,196,162,48,0,35,3,44,192,197,98,5,82,196,162,48,0,35,3,44,192,197,162,156,70,196,190,48,0,35,3,44,192,197,226,5,70,196,190,48,0,35,3,45,192,197,34,156,82,196,190,48,0,35,3,45,192,197,98,5,82,196,190,48,0,35,3,45,192,197,162,156,70,196,162,48,0,35,3,45,192,197,226,5,70,196,162,48,0,35,3,46,192,197,34,156,68,196,196,48,0,7,3,46,192,197,98,5,68,196,196,48,0,7,3,46,192,197,162,156,68,196,210,48,0,7,3,46,192,197,226,5,68,196,210,48,0,7,3,47,192,197,34,156,68,196,204,48,0,7,3,47,192,197,98,5,68,196,204,48,0,7,3,47,192,197,162,50,0,66,0,67,0,72,0,73,0,80,0,81,0,87,0,88,0,89,0,90,0,98,0,99,0,104,0,105,0,112,0,113,0,119,0,120,0,121,0,122,0,221,0,222,0,253,0,254,0,255,0,0,1,36,1,38,1,116,1,121,1,30,2,32,2,50,2,52,2,2,30,8,30,34,30,44,30,84,30,88,30,128,30,138,30,142,30,144,30,150,30,151,30,152,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,36,4,185,100,58,4,186,112,60,4,185,128,185,132,74,4,100,4,185,156,185,160,185,168,102,4,185,180,112,4,185,192,185,196,185,200,185,204,185,208,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,114,4,168,72,168,76,168,80,120,4,168,100,132,4,168,112,134,4,168,128,168,132,142,4,156,4,168,156,168,160,168,168,158,4,168,180,164,4,168,192,168,196,168,200,168,204,168,208,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,152,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,70,186,77,154,77,250,77,90,78,186,105,154,105,250,105,90,106,217,72,154,138,185,153,153,153,249,153,153,154,89,154,136,14,217,154,185,189,153,189,249,189,89,190,153,205,185,212,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,70,168,77,136,77,232,77,72,78,168,105,136,105,232,105,72,106,200,72,136,138,168,153,136,153,232,153,136,154,72,154,128,14,200,154,168,189,136,189,232,189,72,190,136,205,168,212,72,206,57,59,40,59,217,57,200,57,25,59,8,59,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,166,4,168,4,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,164,153,129,136,129,249,130,232,130,25,130,8,130,121,131,104,131,89,131,72,131,154,137,136,137,170,4,172,4,26,138,8,138,10,8,185,148,168,148,57,155,40,155,217,153,200,153,121,154,104,154,12,8,14,8,153,169,136,169,249,170,232,170,25,170,8,170,154,173,136,173,250,173,232,173,250,174,232,174,26,174,8,174,249,182,232,182,25,182,8,182,185,184,168,184,153,190,136,190,57,191,40,191,217,189,200,189,57,190,40,190,121,190,104,190,174,4,176,4,249,197,232,197,249,205,232,205,89,206,153,209,136,209,185,210,168,210,25,210,8,210,232,172,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,172,169,172,200,56,169,76,187,104,187,112,169,104,169,112,169,216,169,136,217,152,187,76,200,152,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,68,72,4,186,64,104,4,177,64,36,5,250,65,37,5,241,65,255,5,185,84,66,4,186,88,72,4,186,92,87,4,186,96,98,4,177,88,104,4,177,92,119,4,177,96,36,5,250,93,37,5,241,93,116,5,250,97,117,5,241,97,255,5,186,104,255,5,185,116,80,4,186,120,87,4,186,124,112,4,177,120,119,4,177,124,116,5,250,125,117,5,241,125,255,5,186,136,87,4,186,140,89,4,186,144,119,4,177,140,121,4,177,144,221,4,154,145,253,4,145,145,255,4,81,146,116,5,250,141,117,5,241,141,118,5,250,145,119,5,241,145,120,5,90,146,255,5,185,152,255,5,186,172,72,4,186,176,104,4,177,176,36,5,250,177,37,5,241,177,255,5,185,188,255,5,168,68,104,4,168,64,37,5,232,65,255,5,168,84,98,4,168,88,104,4,168,92,119,4,168,96,37,5,232,93,117,5,232,97,255,5,168,104,255,5,168,116,112,4,168,120,119,4,168,124,117,5,232,125,255,5,168,136,119,4,168,140,121,4,168,144,253,4,136,145,255,4,72,146,117,5,232,141,119,5,232,145,255,5,168,152,255,5,168,172,104,4,168,176,37,5,232,177,255,5,168,188,255,5,26,107,255,5,8,107,255,5,250,138,255,5,232,138,255,5,25,191,255,5,8,191,255,1,170,170,3,0,69,0,52,0,61,0,115,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,60,12,0,32,1,0,32,0,65,12,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,105,0,100,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,0,0,80,7,0,0,0,10,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,65,76,73,65,83,0,0,0,105,0,100,0,95,0,73,0,68,0,0,0,1,0,32,0,1,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,236,23,0,32,7,0,0,0,23,0,0,0,238,23,0,0,238,23,0,0,3,0,0,0,0,0,0,0,135,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,105,0,115,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,167,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,98,0,60,0,225,0,60,0,60,0,60,0,193,0,38,0,100,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,240,0,60,0,60,0,60,0,208,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,102,0,60,0,233,0,60,0,60,0,60,0,201,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,106,0,60,0,237,0,60,0,60,0,60,0,205,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,112,0,60,0,243,0,60,0,60,0,60,0,211,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,118,0,60,0,250,0,60,0,60,0,60,0,218,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,122,0,60,0,253,0,60,0,60,0,60,0,221,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,229,0,60,0,60,0,60,0,197,0,0,0,206,49,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,188,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,244,38,0,0,244,38,0,0,132,40,0,0,132,40,0,0,168,44,0,0,168,44,0,0,178,49,0,0,178,49,0,0,178,49,0,0,50,105,114,84,1,0,64,8,98,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,15,1,48,0,19,1,48,0,27,1,34,1,42,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,59,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,89,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,75,1,48,0,48,0,81,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,31,0,202,1,32,0,202,34,32,0,202,67,32,0,202,100,32,0,202,133,32,0,202,166,32,0,202,199,32,0,202,232,32,0,202,9,33,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,102,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,134,3,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,4,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,6,0,156,5,0,84,160,5,0,86,156,5,0,88,201,198,7,0,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,9,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,11,0,5,5,0,52,5,5,0,54,5,5,0,56,201,70,12,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,13,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,70,15,0,5,5,0,84,5,5,0,86,5,5,0,88,201,166,16,0,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,129,0,0,196,160,156,46,196,138,156,50,134,5,49,51,196,142,156,50,196,150,156,50,196,138,156,58,134,5,27,59,196,142,156,58,196,150,156,58,134,5,2,49,196,154,156,68,196,138,156,70,134,5,61,71,196,142,156,70,196,154,156,70,198,65,0,0,5,5,127,12,198,161,0,0,196,138,156,82,134,5,51,83,196,142,156,82,196,150,156,82,134,5,17,91,160,5,38,93,197,66,23,0,196,138,5,42,5,5,31,43,196,142,5,42,196,154,5,42,198,97,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,5,5,49,51,196,142,5,50,196,150,5,50,196,138,5,58,5,5,27,59,196,142,5,58,196,150,5,58,5,5,2,49,196,154,5,68,196,138,5,70,5,5,61,71,196,142,5,70,196,154,5,70,193,3,111,93,5,5,125,12,198,193,0,0,196,138,5,82,5,5,51,83,196,142,5,82,196,150,5,82,5,5,17,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,21,0,201,166,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,38,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,28,0,201,198,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,31,0,201,102,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,198,34,2,0,192,0,0,0,192,0,0,0,198,98,2,0,197,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,33,0,201,6,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,2,0,197,162,4,0,198,34,3,0,197,226,4,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,36,0,201,166,37,0,198,226,3,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,38,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,40,0,5,71,238,102,201,134,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,42,0,201,70,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,46,0,201,70,47,0,201,102,48,0,201,134,49,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,50,0,201,198,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,52,0,201,6,54,0,201,38,55,0,201,70,56,0,201,102,57,0,201,134,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,59,0,201,134,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,63,0,201,134,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,65,0,201,198,66,0,201,230,67,0,201,102,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,2,0,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,70,0,201,102,72,0,201,230,73,0,201,6,75,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,76,0,201,70,77,0,192,0,0,0,192,0,0,0,201,102,78,0,201,134,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,70,0,2,111,93,0,134,0,5,0,2,111,93,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,4,111,93,5,162,0,0,134,5,49,51,5,162,0,0,5,5,49,51,5,162,0,0,134,5,27,59,5,162,0,0,5,5,27,59,5,162,0,0,134,5,51,83,5,162,0,0,5,5,51,83,5,162,0,0,134,5,61,71,5,190,0,0,5,5,61,71,5,190,0,0,193,3,111,93,5,190,0,0,134,5,51,83,5,190,0,0,5,5,51,83,5,190,0,0,193,2,111,93,5,164,0,0,134,5,61,71,5,162,0,0,5,5,61,71,5,162,0,0,193,3,111,93,5,162,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,134,5,49,51,5,160,0,0,5,5,49,51,5,160,0,0,193,3,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,4,111,93,5,200,0,0,134,5,49,51,5,204,0,0,5,5,49,51,5,204,0,0,134,5,49,51,5,208,0,0,5,5,49,51,5,208,0,0,134,5,27,59,5,208,0,0,5,5,27,59,5,208,0,0,134,5,51,83,5,198,0,0,5,5,51,83,5,198,0,0,134,5,51,83,5,208,0,0,5,5,51,83,5,208,0,0,134,5,51,83,5,204,0,0,5,5,51,83,5,204,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,4,111,93,5,196,0,0,134,5,49,51,5,196,0,0,5,5,49,51,5,196,0,0,134,5,27,59,5,196,0,0,5,5,27,59,5,196,0,0,134,5,61,71,5,196,0,0,5,5,61,71,5,196,0,0,193,3,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,61,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,61,71,5,190,0,0,5,196,0,0,193,3,111,93,5,190,0,0,5,196,0,0,134,5,51,83,5,196,0,0,5,5,51,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,51,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,51,83,5,190,0,0,5,196,0,0,134,5,17,91,5,196,0,0,5,5,17,91,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,3,0,1,3,31,235,134,5,8,3,198,129,10,3,198,161,65,3,31,235,134,5,0,50,156,5,1,0,1,3,49,243,134,5,65,3,49,243,134,5,0,58,156,5,1,0,1,3,27,251,134,5,65,3,27,251,134,5,0,70,156,5,2,0,1,3,255,255,61,71,134,5,8,3,0,192,198,65,65,3,255,255,61,71,134,5,0,82,156,5,1,0,1,3,255,255,51,83,134,5,65,3,255,255,51,83,134,5,0,90,156,5,1,0,1,3,255,255,17,91,134,5,65,3,255,255,17,91,134,5,0,42,5,5,3,0,1,3,31,235,5,5,8,3,0,192,198,97,10,3,255,255,111,93,193,4,65,3,31,235,5,5,0,50,5,5,1,0,1,3,49,243,5,5,65,3,49,243,5,5,0,58,5,5,1,0,1,3,27,251,5,5,65,3,27,251,5,5,0,70,5,5,2,0,1,3,255,255,61,71,5,5,8,3,255,255,111,93,193,3,65,3,255,255,61,71,5,5,0,82,5,5,1,0,1,3,255,255,51,83,5,5,65,3,255,255,51,83,5,5,0,90,5,5,1,0,1,3,255,255,17,91,5,5,65,3,255,255,17,91,5,5,156,42,196,162,3,0,1,3,197,162,8,3,0,192,198,226,10,3,1,192,198,34,65,3,197,162,5,42,196,162,3,0,1,3,0,192,197,98,8,3,1,192,198,98,10,3,0,192,197,162,65,3,0,192,197,98,156,50,196,162,1,0,1,3,0,192,197,226,65,3,0,192,197,226,5,50,196,162,1,0,1,3,1,192,197,34,65,3,1,192,197,34,156,58,196,162,1,0,1,3,1,192,197,98,65,3,1,192,197,98,5,58,196,162,1,0,1,3,1,192,197,162,65,3,1,192,197,162,156,82,196,162,1,0,1,3,1,192,197,226,65,3,1,192,197,226,5,82,196,162,1,0,1,3,2,192,197,34,65,3,2,192,197,34,156,70,196,190,2,0,1,3,2,192,197,98,8,3,1,192,198,162,65,3,2,192,197,98,5,70,196,190,2,0,1,3,2,192,197,162,8,3,2,192,197,226,65,3,2,192,197,162,156,82,196,190,1,0,1,3,3,192,197,34,65,3,3,192,197,34,5,82,196,190,1,0,1,3,3,192,197,98,65,3,3,192,197,98,156,70,196,162,2,0,1,3,3,192,197,226,8,3,2,192,198,162,65,3,3,192,197,226,5,70,196,162,2,0,1,3,4,192,197,34,8,3,4,192,197,98,65,3,4,192,197,34,156,50,196,160,1,0,1,3,5,192,197,34,65,3,5,192,197,34,5,50,196,160,1,0,1,3,5,192,197,98,65,3,5,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,3,0,1,3,12,192,197,162,8,3,4,192,198,34,10,3,4,192,198,98,65,3,12,192,197,162,5,42,196,200,3,0,1,3,12,192,197,226,8,3,4,192,198,162,10,3,13,192,197,34,65,3,12,192,197,226,156,50,196,204,1,0,1,3,13,192,197,98,65,3,13,192,197,98,5,50,196,204,1,0,1,3,13,192,197,162,65,3,13,192,197,162,156,50,196,208,1,0,1,3,13,192,197,226,65,3,13,192,197,226,5,50,196,208,1,0,1,3,14,192,197,34,65,3,14,192,197,34,156,58,196,208,1,0,1,3,14,192,197,98,65,3,14,192,197,98,5,58,196,208,1,0,1,3,14,192,197,162,65,3,14,192,197,162,156,82,196,198,1,0,1,3,14,192,197,226,65,3,14,192,197,226,5,82,196,198,1,0,1,3,15,192,197,34,65,3,15,192,197,34,156,82,196,208,1,0,1,3,15,192,197,98,65,3,15,192,197,98,5,82,196,208,1,0,1,3,15,192,197,162,65,3,15,192,197,162,156,82,196,204,1,0,1,3,15,192,197,226,65,3,15,192,197,226,5,82,196,204,1,0,1,3,16,192,197,34,65,3,16,192,197,34,156,42,196,196,3,0,1,3,16,192,197,98,8,3,4,192,198,226,10,3,5,192,198,34,65,3,16,192,197,98,5,42,196,196,3,0,1,3,16,192,197,162,8,3,5,192,198,98,10,3,16,192,197,226,65,3,16,192,197,162,156,50,196,196,1,0,1,3,17,192,197,34,65,3,17,192,197,34,5,50,196,196,1,0,1,3,17,192,197,98,65,3,17,192,197,98,156,58,196,196,1,0,1,3,17,192,197,162,65,3,17,192,197,162,5,58,196,196,1,0,1,3,17,192,197,226,65,3,17,192,197,226,156,70,196,196,2,0,1,3,18,192,197,34,8,3,5,192,198,162,65,3,18,192,197,34,5,70,196,196,2,0,1,3,18,192,197,98,8,3,18,192,197,162,65,3,18,192,197,98,18,0,197,227,2,0,1,3,19,192,197,67,8,3,5,192,198,227,65,3,19,192,197,67,19,0,197,163,2,0,1,3,20,192,197,3,8,3,20,192,197,99,65,3,20,192,197,3,156,82,196,196,1,0,1,3,20,192,197,194,65,3,20,192,197,194,5,82,196,196,1,0,1,3,21,192,197,2,65,3,21,192,197,2,21,0,197,67,1,0,1,3,21,192,197,163,65,3,21,192,197,163,22,0,197,3,1,0,1,3,22,192,197,99,65,3,22,192,197,99,156,90,196,196,1,0,1,3,22,192,197,194,65,3,22,192,197,194,5,90,196,196,1,0,1,3,23,192,197,2,65,3,23,192,197,2,170,170,3,0,67,0,50,0,59,0,135,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,124,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,30,0,0,196,30,0,0,84,32,0,0,84,32,0,0,148,34,0,0,148,34,0,0,88,39,0,0,88,39,0,0,96,43,0,0,50,105,114,84,1,0,64,8,223,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,173,0,48,0,177,0,48,0,185,0,192,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,16,0,202,225,16,0,202,2,17,0,202,35,17,0,202,68,17,0,202,101,17,0,202,134,17,0,202,167,17,0,202,200,17,0,202,233,17,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,1,0,156,5,0,52,156,5,0,54,156,5,0,56,201,198,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,3,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,5,0,156,5,0,84,160,5,0,86,156,5,0,88,201,6,7,0,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,102,8,0,5,5,0,44,5,5,0,46,5,5,0,48,201,102,10,0,5,5,0,52,5,5,0,54,5,5,0,56,201,134,11,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,12,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,14,0,5,5,0,84,5,5,0,86,5,5,0,88,201,230,15,0,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,129,0,0,196,160,156,46,196,138,156,50,134,5,49,51,196,142,156,50,196,150,156,50,196,138,156,58,134,5,27,59,196,142,156,58,196,150,156,58,134,5,2,49,196,154,156,68,196,138,156,70,134,5,61,71,196,142,156,70,196,154,156,70,198,65,0,0,5,5,127,12,198,161,0,0,196,138,156,82,134,5,51,83,196,142,156,82,196,150,156,82,134,5,17,91,160,5,38,93,197,130,16,0,196,138,5,42,5,5,31,43,196,142,5,42,196,154,5,42,198,97,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,5,5,49,51,196,142,5,50,196,150,5,50,196,138,5,58,5,5,27,59,196,142,5,58,196,150,5,58,5,5,2,49,196,154,5,68,196,138,5,70,5,5,61,71,196,142,5,70,196,154,5,70,193,3,111,93,5,5,125,12,198,193,0,0,196,138,5,82,5,5,51,83,196,142,5,82,196,150,5,82,5,5,17,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,17,0,201,230,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,230,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,38,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,102,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,27,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,166,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,198,34,2,0,192,0,0,0,192,0,0,0,198,98,2,0,197,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,70,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,2,0,197,162,4,0,198,34,3,0,197,226,4,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,35,0,201,230,36,0,198,226,3,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,38,0,201,230,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,41,0,201,230,42,0,201,6,44,0,201,38,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,46,0,201,102,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,48,0,201,166,49,0,201,198,50,0,201,230,51,0,201,6,53,0,201,38,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,55,0,201,38,57,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,59,0,201,38,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,61,0,201,102,62,0,201,134,63,0,201,6,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,2,0,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,66,0,201,6,68,0,201,134,69,0,201,166,70,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,71,0,201,230,72,0,192,0,0,0,192,0,0,0,201,6,74,0,201,38,75,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,70,0,2,111,93,0,134,0,5,0,2,111,93,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,4,111,93,5,162,0,0,134,5,49,51,5,162,0,0,5,5,49,51,5,162,0,0,134,5,27,59,5,162,0,0,5,5,27,59,5,162,0,0,134,5,51,83,5,162,0,0,5,5,51,83,5,162,0,0,134,5,61,71,5,190,0,0,5,5,61,71,5,190,0,0,193,3,111,93,5,190,0,0,134,5,51,83,5,190,0,0,5,5,51,83,5,190,0,0,193,2,111,93,5,164,0,0,134,5,61,71,5,162,0,0,5,5,61,71,5,162,0,0,193,3,111,93,5,162,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,134,5,49,51,5,160,0,0,5,5,49,51,5,160,0,0,193,3,111,93,5,164,0,0,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,4,111,93,5,200,0,0,134,5,49,51,5,204,0,0,5,5,49,51,5,204,0,0,134,5,49,51,5,208,0,0,5,5,49,51,5,208,0,0,134,5,27,59,5,208,0,0,5,5,27,59,5,208,0,0,134,5,51,83,5,198,0,0,5,5,51,83,5,198,0,0,134,5,51,83,5,208,0,0,5,5,51,83,5,208,0,0,134,5,51,83,5,204,0,0,5,5,51,83,5,204,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,4,111,93,5,196,0,0,134,5,49,51,5,196,0,0,5,5,49,51,5,196,0,0,134,5,27,59,5,196,0,0,5,5,27,59,5,196,0,0,134,5,61,71,5,196,0,0,5,5,61,71,5,196,0,0,193,3,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,61,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,61,71,5,190,0,0,5,196,0,0,193,3,111,93,5,190,0,0,5,196,0,0,134,5,51,83,5,196,0,0,5,5,51,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,51,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,51,83,5,190,0,0,5,196,0,0,134,5,17,91,5,196,0,0,5,5,17,91,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,3,0,1,3,31,235,134,5,8,3,198,129,10,3,198,161,65,3,31,235,134,5,0,50,156,5,1,0,1,3,49,243,134,5,65,3,49,243,134,5,0,58,156,5,1,0,1,3,27,251,134,5,65,3,27,251,134,5,0,70,156,5,2,0,1,3,255,255,61,71,134,5,8,3,0,192,198,65,65,3,255,255,61,71,134,5,0,82,156,5,1,0,1,3,255,255,51,83,134,5,65,3,255,255,51,83,134,5,0,90,156,5,1,0,1,3,255,255,17,91,134,5,65,3,255,255,17,91,134,5,0,42,5,5,3,0,1,3,31,235,5,5,8,3,0,192,198,97,10,3,255,255,111,93,193,4,65,3,31,235,5,5,0,50,5,5,1,0,1,3,49,243,5,5,65,3,49,243,5,5,0,58,5,5,1,0,1,3,27,251,5,5,65,3,27,251,5,5,0,70,5,5,2,0,1,3,255,255,61,71,5,5,8,3,255,255,111,93,193,3,65,3,255,255,61,71,5,5,0,82,5,5,1,0,1,3,255,255,51,83,5,5,65,3,255,255,51,83,5,5,0,90,5,5,1,0,1,3,255,255,17,91,5,5,65,3,255,255,17,91,5,5,156,42,196,162,3,0,1,3,197,162,8,3,0,192,198,226,10,3,1,192,198,34,65,3,197,162,5,42,196,162,3,0,1,3,0,192,197,98,8,3,1,192,198,98,10,3,0,192,197,162,65,3,0,192,197,98,156,50,196,162,1,0,1,3,0,192,197,226,65,3,0,192,197,226,5,50,196,162,1,0,1,3,1,192,197,34,65,3,1,192,197,34,156,58,196,162,1,0,1,3,1,192,197,98,65,3,1,192,197,98,5,58,196,162,1,0,1,3,1,192,197,162,65,3,1,192,197,162,156,82,196,162,1,0,1,3,1,192,197,226,65,3,1,192,197,226,5,82,196,162,1,0,1,3,2,192,197,34,65,3,2,192,197,34,156,70,196,190,2,0,1,3,2,192,197,98,8,3,1,192,198,162,65,3,2,192,197,98,5,70,196,190,2,0,1,3,2,192,197,162,8,3,2,192,197,226,65,3,2,192,197,162,156,82,196,190,1,0,1,3,3,192,197,34,65,3,3,192,197,34,5,82,196,190,1,0,1,3,3,192,197,98,65,3,3,192,197,98,156,70,196,162,2,0,1,3,3,192,197,226,8,3,2,192,198,162,65,3,3,192,197,226,5,70,196,162,2,0,1,3,4,192,197,34,8,3,4,192,197,98,65,3,4,192,197,34,156,50,196,160,1,0,1,3,5,192,197,34,65,3,5,192,197,34,5,50,196,160,1,0,1,3,5,192,197,98,65,3,5,192,197,98,156,42,196,200,3,0,1,3,5,192,197,226,8,3,4,192,198,34,10,3,4,192,198,98,65,3,5,192,197,226,5,42,196,200,3,0,1,3,6,192,197,34,8,3,4,192,198,162,10,3,6,192,197,98,65,3,6,192,197,34,156,50,196,204,1,0,1,3,6,192,197,162,65,3,6,192,197,162,5,50,196,204,1,0,1,3,6,192,197,226,65,3,6,192,197,226,156,50,196,208,1,0,1,3,7,192,197,34,65,3,7,192,197,34,5,50,196,208,1,0,1,3,7,192,197,98,65,3,7,192,197,98,156,58,196,208,1,0,1,3,7,192,197,162,65,3,7,192,197,162,5,58,196,208,1,0,1,3,7,192,197,226,65,3,7,192,197,226,156,82,196,198,1,0,1,3,8,192,197,34,65,3,8,192,197,34,5,82,196,198,1,0,1,3,8,192,197,98,65,3,8,192,197,98,156,82,196,208,1,0,1,3,8,192,197,162,65,3,8,192,197,162,5,82,196,208,1,0,1,3,8,192,197,226,65,3,8,192,197,226,156,82,196,204,1,0,1,3,9,192,197,34,65,3,9,192,197,34,5,82,196,204,1,0,1,3,9,192,197,98,65,3,9,192,197,98,156,42,196,196,3,0,1,3,9,192,197,162,8,3,4,192,198,226,10,3,5,192,198,34,65,3,9,192,197,162,5,42,196,196,3,0,1,3,9,192,197,226,8,3,5,192,198,98,10,3,10,192,197,34,65,3,9,192,197,226,156,50,196,196,1,0,1,3,10,192,197,98,65,3,10,192,197,98,5,50,196,196,1,0,1,3,10,192,197,162,65,3,10,192,197,162,156,58,196,196,1,0,1,3,10,192,197,226,65,3,10,192,197,226,5,58,196,196,1,0,1,3,11,192,197,34,65,3,11,192,197,34,156,70,196,196,2,0,1,3,11,192,197,98,8,3,5,192,198,162,65,3,11,192,197,98,5,70,196,196,2,0,1,3,11,192,197,162,8,3,11,192,197,226,65,3,11,192,197,162,12,0,197,35,2,0,1,3,12,192,197,131,8,3,5,192,198,227,65,3,12,192,197,131,12,0,197,227,2,0,1,3,13,192,197,67,8,3,13,192,197,163,65,3,13,192,197,67,156,82,196,196,1,0,1,3,14,192,197,2,65,3,14,192,197,2,5,82,196,196,1,0,1,3,14,192,197,66,65,3,14,192,197,66,14,0,197,131,1,0,1,3,14,192,197,227,65,3,14,192,197,227,15,0,197,67,1,0,1,3,15,192,197,163,65,3,15,192,197,163,156,90,196,196,1,0,1,3,16,192,197,2,65,3,16,192,197,2,5,90,196,196,1,0,1,3,16,192,197,66,65,3,16,192,197,66,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,64,185,68,185,72,24,4,185,88,185,92,185,96,26,4,186,112,185,116,185,120,185,124,186,128,28,4,185,144,185,148,185,156,186,160,185,164,30,4,185,180,185,184,185,188,32,4,185,200,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,64,168,68,168,72,36,4,168,88,168,92,168,96,38,4,168,112,168,116,168,120,168,124,168,128,40,4,168,144,168,148,168,156,168,160,168,164,42,4,168,180,168,184,168,188,44,4,168,200,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,185,60,249,57,153,58,217,212,185,220,185,212,217,70,186,81,185,84,250,81,90,82,186,101,185,108,250,101,90,102,185,76,154,130,185,137,185,140,249,137,153,138,185,216,136,14,217,216,185,173,185,176,249,173,89,174,185,196,185,204,0,8,168,57,168,60,232,57,136,58,200,212,168,220,168,212,200,70,168,81,168,84,232,81,72,82,168,101,168,108,232,101,72,102,168,76,136,130,168,137,168,140,232,137,136,138,168,216,128,14,200,216,168,173,168,176,232,173,72,174,168,196,168,204,72,194,25,59,8,59,217,57,200,57,46,4,48,4,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,217,72,200,72,26,83,8,83,218,81,200,81,186,82,168,82,50,4,52,4,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,217,94,200,94,249,97,232,97,57,99,40,99,154,102,136,102,26,103,8,103,218,101,200,101,54,4,56,4,186,102,168,104,2,8,4,8,250,113,232,113,217,118,200,118,168,152,153,121,136,121,217,122,200,122,25,122,8,122,89,123,72,123,57,123,40,123,154,129,136,129,218,130,200,130,26,130,8,130,6,8,185,132,168,132,25,139,8,139,217,137,200,137,121,138,104,138,8,8,10,8,153,157,136,157,217,158,200,158,25,158,8,158,154,161,136,161,250,161,232,161,218,162,200,162,26,162,8,162,217,166,200,166,25,166,8,166,185,168,168,168,153,174,136,174,25,175,8,175,217,173,200,173,57,174,40,174,121,174,104,174,58,4,60,4,249,185,232,185,249,193,232,193,89,194,153,201,136,201,185,202,168,202,25,202,8,202,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,200,160,169,160,187,100,187,112,169,100,169,112,169,208,169,128,217,136,187,80,200,136,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,80,255,5,186,100,255,5,185,136,255,5,185,172,255,5,185,192,255,5,168,56,255,5,168,80,255,5,168,100,255,5,168,136,255,5,168,172,255,5,168,192,255,5,249,58,255,5,232,58,255,5,250,82,255,5,232,82,255,5,250,102,255,5,232,102,255,5,249,174,255,5,232,174,255,1,3,0,67,0,50,0,59,0,3,13,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,252,12,0,32,227,23,0,32,1,0,32,0,232,23,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,104,0,101,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,0,0,80,7,0,0,0,10,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,65,76,73,65,83,0,0,0,104,0,101,0,95,0,73,0,76,0,0,0,1,0,32,0,1,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,245,142,0,32,7,0,0,0,26,0,0,0,247,142,0,0,247,142,0,0,3,0,0,0,0,0,0,0,218,22,0,0,99,111,108,108,97,116,105,111,110,115,0,112,114,105,118,97,116,101,45,107,97,110,97,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,115,116,97,110,100,97,114,100,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,117,110,105,104,97,110,0,0,0,52,0,50,0,0,0,61,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,117,0,110,0,105,0,104,0,97,0,110,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,106,0,97,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,107,0,97,0,110,0,97,0,93,0,0,0,239,223,39,20,91,0,115,0,116,0,114,0,101,0,110,0,103,0,116,0,104,0,32,0,51,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,75,0,97,0,110,0,97,0,32,0,72,0,97,0,110,0,105,0,93,0,38,0,157,48,60,0,60,0,60,0,60,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,65,48,60,0,60,0,60,0,65,48,124,0,252,48,61,0,66,48,124,0,252,48,61,0,75,48,124,0,252,48,61,0,149,48,124,0,252,48,61,0,76,48,124,0,252,48,61,0,85,48,124,0,252,48,61,0,86,48,124,0,252,48,61,0,95,48,124,0,252,48,61,0,96,48,124,0,252,48,61,0,106,48,124,0,252,48,61,0,111,48,124,0,252,48,61,0,112,48,124,0,252,48,61,0,113,48,124,0,252,48,61,0,126,48,124,0,252,48,61,0,131,48,124,0,252,48,61,0,132,48,124,0,252,48,61,0,137,48,124,0,252,48,61,0,142,48,124,0,252,48,61,0,143,48,124,0,252,48,60,0,60,0,60,0,60,0,161,48,124,0,252,48,61,0,103,255,124,0,252,48,61,0,162,48,124,0,252,48,61,0,113,255,124,0,252,48,61,0,171,48,124,0,252,48,61,0,118,255,124,0,252,48,61,0,172,48,124,0,252,48,61,0,181,48,124,0,252,48,61,0,123,255,124,0,252,48,61,0,182,48,124,0,252,48,61,0,191,48,124,0,252,48,61,0,128,255,124,0,252,48,61,0,192,48,124,0,252,48,61,0,202,48,124,0,252,48,61,0,133,255,124,0,252,48,61,0,207,48,124,0,252,48,61,0,138,255,124,0,252,48,61,0,245,49,124,0,252,48,61,0,208,48,124,0,252,48,61,0,209,48,124,0,252,48,61,0,222,48,124,0,252,48,61,0,143,255,124,0,252,48,61,0,227,48,124,0,252,48,61,0,108,255,124,0,252,48,61,0,228,48,124,0,252,48,61,0,148,255,124,0,252,48,61,0,233,48,124,0,252,48,61,0,151,255,124,0,252,48,61,0,251,49,124,0,252,48,61,0,238,48,124,0,252,48,61,0,239,48,124,0,252,48,61,0,156,255,124,0,252,48,61,0,245,48,124,0,252,48,61,0,247,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,67,48,60,0,60,0,60,0,67,48,124,0,252,48,61,0,68,48,124,0,252,48,61,0,77,48,124,0,252,48,61,0,78,48,124,0,252,48,61,0,87,48,124,0,252,48,61,0,88,48,124,0,252,48,61,0,97,48,124,0,252,48,61,0,98,48,124,0,252,48,61,0,107,48,124,0,252,48,61,0,114,48,124,0,252,48,61,0,115,48,124,0,252,48,61,0,116,48,124,0,252,48,61,0,127,48,124,0,252,48,61,0,138,48,124,0,252,48,61,0,144,48,124,0,252,48,60,0,60,0,60,0,60,0,163,48,124,0,252,48,61,0,104,255,124,0,252,48,61,0,164,48,124,0,252,48,61,0,114,255,124,0,252,48,61,0,173,48,124,0,252,48,61,0,119,255,124,0,252,48,61,0,174,48,124,0,252,48,61,0,183,48,124,0,252,48,61,0,124,255,124,0,252,48,61,0,241,49,124,0,252,48,61,0,184,48,124,0,252,48,61,0,193,48,124,0,252,48,61,0,129,255,124,0,252,48,61,0,194,48,124,0,252,48,61,0,203,48,124,0,252,48,61,0,134,255,124,0,252,48,61,0,210,48,124,0,252,48,61,0,139,255,124,0,252,48,61,0,246,49,124,0,252,48,61,0,211,48,124,0,252,48,61,0,212,48,124,0,252,48,61,0,223,48,124,0,252,48,61,0,144,255,124,0,252,48,61,0,234,48,124,0,252,48,61,0,152,255,124,0,252,48,61,0,252,49,124,0,252,48,61,0,240,48,124,0,252,48,61,0,248,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,69,48,60,0,60,0,60,0,69,48,124,0,252,48,61,0,70,48,124,0,252,48,61,0,79,48,124,0,252,48,61,0,80,48,124,0,252,48,61,0,89,48,124,0,252,48,61,0,90,48,124,0,252,48,61,0,99,48,124,0,252,48,61,0,100,48,124,0,252,48,61,0,101,48,124,0,252,48,61,0,108,48,124,0,252,48,61,0,117,48,124,0,252,48,61,0,118,48,124,0,252,48,61,0,119,48,124,0,252,48,61,0,128,48,124,0,252,48,61,0,133,48,124,0,252,48,61,0,134,48,124,0,252,48,61,0,139,48,124,0,252,48,61,0,148,48,124,0,252,48,60,0,60,0,60,0,60,0,165,48,124,0,252,48,61,0,105,255,124,0,252,48,61,0,166,48,124,0,252,48,61,0,115,255,124,0,252,48,61,0,175,48,124,0,252,48,61,0,120,255,124,0,252,48,61,0,240,49,124,0,252,48,61,0,176,48,124,0,252,48,61,0,185,48,124,0,252,48,61,0,125,255,124,0,252,48,61,0,242,49,124,0,252,48,61,0,186,48,124,0,252,48,61,0,195,48,124,0,252,48,61,0,111,255,124,0,252,48,61,0,196,48,124,0,252,48,61,0,130,255,124,0,252,48,61,0,197,48,124,0,252,48,61,0,204,48,124,0,252,48,61,0,135,255,124,0,252,48,61,0,244,49,124,0,252,48,61,0,213,48,124,0,252,48,61,0,140,255,124,0,252,48,61,0,247,49,124,0,252,48,61,0,214,48,124,0,252,48,61,0,215,48,124,0,252,48,61,0,224,48,124,0,252,48,61,0,145,255,124,0,252,48,61,0,250,49,124,0,252,48,61,0,229,48,124,0,252,48,61,0,109,255,124,0,252,48,61,0,230,48,124,0,252,48,61,0,149,255,124,0,252,48,61,0,235,48,124,0,252,48,61,0,153,255,124,0,252,48,61,0,253,49,124,0,252,48,61,0,244,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,71,48,60,0,60,0,60,0,71,48,124,0,252,48,61,0,72,48,124,0,252,48,61,0,81,48,124,0,252,48,61,0,150,48,124,0,252,48,61,0,82,48,124,0,252,48,61,0,91,48,124,0,252,48,61,0,92,48,124,0,252,48,61,0,102,48,124,0,252,48,61,0,103,48,124,0,252,48,61,0,109,48,124,0,252,48,61,0,120,48,124,0,252,48,61,0,121,48,124,0,252,48,61,0,122,48,124,0,252,48,61,0,129,48,124,0,252,48,61,0,140,48,124,0,252,48,61,0,145,48,124,0,252,48,60,0,60,0,60,0,60,0,167,48,124,0,252,48,61,0,106,255,124,0,252,48,61,0,168,48,124,0,252,48,61,0,116,255,124,0,252,48,61,0,177,48,124,0,252,48,61,0,121,255,124,0,252,48,61,0,178,48,124,0,252,48,61,0,187,48,124,0,252,48,61,0,126,255,124,0,252,48,61,0,188,48,124,0,252,48,61,0,198,48,124,0,252,48,61,0,131,255,124,0,252,48,61,0,199,48,124,0,252,48,61,0,205,48,124,0,252,48,61,0,136,255,124,0,252,48,61,0,216,48,124,0,252,48,61,0,141,255,124,0,252,48,61,0,248,49,124,0,252,48,61,0,217,48,124,0,252,48,61,0,218,48,124,0,252,48,61,0,225,48,124,0,252,48,61,0,146,255,124,0,252,48,61,0,236,48,124,0,252,48,61,0,154,255,124,0,252,48,61,0,254,49,124,0,252,48,61,0,241,48,124,0,252,48,61,0,246,48,124,0,252,48,61,0,249,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,73,48,60,0,60,0,60,0,73,48,124,0,252,48,61,0,74,48,124,0,252,48,61,0,83,48,124,0,252,48,61,0,84,48,124,0,252,48,61,0,93,48,124,0,252,48,61,0,94,48,124,0,252,48,61,0,104,48,124,0,252,48,61,0,105,48,124,0,252,48,61,0,110,48,124,0,252,48,61,0,123,48,124,0,252,48,61,0,124,48,124,0,252,48,61,0,125,48,124,0,252,48,61,0,130,48,124,0,252,48,61,0,135,48,124,0,252,48,61,0,136,48,124,0,252,48,61,0,141,48,124,0,252,48,61,0,146,48,124,0,252,48,60,0,60,0,60,0,60,0,169,48,124,0,252,48,61,0,107,255,124,0,252,48,61,0,170,48,124,0,252,48,61,0,117,255,124,0,252,48,61,0,179,48,124,0,252,48,61,0,122,255,124,0,252,48,61,0,180,48,124,0,252,48,61,0,189,48,124,0,252,48,61,0,127,255,124,0,252,48,61,0,190,48,124,0,252,48,61,0,200,48,124,0,252,48,61,0,132,255,124,0,252,48,61,0,243,49,124,0,252,48,61,0,201,48,124,0,252,48,61,0,206,48,124,0,252,48,61,0,137,255,124,0,252,48,61,0,219,48,124,0,252,48,61,0,142,255,124,0,252,48,61,0,249,49,124,0,252,48,61,0,220,48,124,0,252,48,61,0,221,48,124,0,252,48,61,0,226,48,124,0,252,48,61,0,147,255,124,0,252,48,61,0,231,48,124,0,252,48,61,0,110,255,124,0,252,48,61,0,232,48,124,0,252,48,61,0,150,255,124,0,252,48,61,0,237,48,124,0,252,48,61,0,155,255,124,0,252,48,61,0,255,49,124,0,252,48,61,0,242,48,124,0,252,48,61,0,102,255,124,0,252,48,61,0,250,48,124,0,252,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,66,48,60,0,60,0,60,0,66,48,124,0,157,48,61,0,65,48,124,0,157,48,60,0,60,0,60,0,60,0,162,48,124,0,253,48,61,0,113,255,124,0,253,48,61,0,161,48,124,0,253,48,61,0,103,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,68,48,60,0,60,0,60,0,68,48,124,0,157,48,61,0,67,48,124,0,157,48,60,0,60,0,60,0,60,0,164,48,124,0,253,48,61,0,114,255,124,0,253,48,61,0,163,48,124,0,253,48,61,0,104,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,70,48,60,0,60,0,60,0,70,48,124,0,157,48,61,0,69,48,124,0,157,48,61,0,148,48,124,0,157,48,61,0,70,48,124,0,158,48,47,0,153,48,61,0,69,48,124,0,158,48,47,0,153,48,61,0,148,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,166,48,124,0,253,48,61,0,115,255,124,0,253,48,61,0,165,48,124,0,253,48,61,0,105,255,124,0,253,48,61,0,244,48,124,0,253,48,61,0,166,48,124,0,254,48,47,0,153,48,61,0,115,255,124,0,254,48,47,0,153,48,61,0,165,48,124,0,254,48,47,0,153,48,61,0,105,255,124,0,254,48,47,0,153,48,61,0,244,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,72,48,60,0,60,0,60,0,72,48,124,0,157,48,61,0,71,48,124,0,157,48,60,0,60,0,60,0,60,0,168,48,124,0,253,48,61,0,116,255,124,0,253,48,61,0,167,48,124,0,253,48,61,0,106,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,74,48,60,0,60,0,60,0,74,48,124,0,157,48,61,0,73,48,124,0,157,48,60,0,60,0,60,0,60,0,170,48,124,0,253,48,61,0,117,255,124,0,253,48,61,0,169,48,124,0,253,48,61,0,107,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,75,48,60,0,60,0,60,0,75,48,124,0,157,48,61,0,149,48,124,0,157,48,60,0,60,0,60,0,60,0,171,48,124,0,253,48,61,0,118,255,124,0,253,48,61,0,245,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,76,48,60,0,60,0,60,0,76,48,124,0,157,48,60,0,60,0,60,0,60,0,172,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,77,48,60,0,60,0,60,0,77,48,124,0,157,48,61,0,78,48,124,0,157,48,61,0,77,48,124,0,158,48,47,0,153,48,61,0,78,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,173,48,124,0,253,48,61,0,119,255,124,0,253,48,61,0,174,48,124,0,253,48,61,0,173,48,124,0,254,48,47,0,153,48,61,0,119,255,124,0,254,48,47,0,153,48,61,0,174,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,79,48,60,0,60,0,60,0,79,48,124,0,157,48,61,0,80,48,124,0,157,48,61,0,79,48,124,0,158,48,47,0,153,48,61,0,80,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,175,48,124,0,253,48,61,0,120,255,124,0,253,48,61,0,240,49,124,0,253,48,61,0,176,48,124,0,253,48,61,0,175,48,124,0,254,48,47,0,153,48,61,0,120,255,124,0,254,48,47,0,153,48,61,0,240,49,124,0,254,48,47,0,153,48,61,0,176,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,81,48,60,0,60,0,60,0,81,48,124,0,157,48,61,0,150,48,124,0,157,48,60,0,60,0,60,0,60,0,177,48,124,0,253,48,61,0,121,255,124,0,253,48,61,0,246,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,82,48,60,0,60,0,60,0,82,48,124,0,157,48,60,0,60,0,60,0,60,0,178,48,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,83,48,60,0,60,0,60,0,83,48,124,0,157,48,61,0,84,48,124,0,157,48,61,0,83,48,124,0,158,48,47,0,153,48,61,0,84,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,179,48,124,0,253,48,61,0,122,255,124,0,253,48,61,0,180,48,124,0,253,48,61,0,179,48,124,0,254,48,47,0,153,48,61,0,122,255,124,0,254,48,47,0,153,48,61,0,180,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,85,48,60,0,60,0,60,0,85,48,124,0,157,48,61,0,86,48,124,0,157,48,61,0,85,48,124,0,158,48,47,0,153,48,61,0,86,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,181,48,124,0,253,48,61,0,123,255,124,0,253,48,61,0,182,48,124,0,253,48,61,0,181,48,124,0,254,48,47,0,153,48,61,0,123,255,124,0,254,48,47,0,153,48,61,0,182,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,87,48,60,0,60,0,60,0,87,48,124,0,157,48,61,0,88,48,124,0,157,48,61,0,87,48,124,0,158,48,47,0,153,48,61,0,88,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,183,48,124,0,253,48,61,0,124,255,124,0,253,48,61,0,241,49,124,0,253,48,61,0,184,48,124,0,253,48,61,0,183,48,124,0,254,48,47,0,153,48,61,0,124,255,124,0,254,48,47,0,153,48,61,0,241,49,124,0,254,48,47,0,153,48,61,0,184,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,89,48,60,0,60,0,60,0,89,48,124,0,157,48,61,0,90,48,124,0,157,48,61,0,89,48,124,0,158,48,47,0,153,48,61,0,90,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,185,48,124,0,253,48,61,0,125,255,124,0,253,48,61,0,242,49,124,0,253,48,61,0,186,48,124,0,253,48,61,0,185,48,124,0,254,48,47,0,153,48,61,0,125,255,124,0,254,48,47,0,153,48,61,0,242,49,124,0,254,48,47,0,153,48,61,0,186,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,91,48,60,0,60,0,60,0,91,48,124,0,157,48,61,0,92,48,124,0,157,48,61,0,91,48,124,0,158,48,47,0,153,48,61,0,92,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,187,48,124,0,253,48,61,0,126,255,124,0,253,48,61,0,188,48,124,0,253,48,61,0,187,48,124,0,254,48,47,0,153,48,61,0,126,255,124,0,254,48,47,0,153,48,61,0,188,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,93,48,60,0,60,0,60,0,93,48,124,0,157,48,61,0,94,48,124,0,157,48,61,0,93,48,124,0,158,48,47,0,153,48,61,0,94,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,189,48,124,0,253,48,61,0,127,255,124,0,253,48,61,0,190,48,124,0,253,48,61,0,189,48,124,0,254,48,47,0,153,48,61,0,127,255,124,0,254,48,47,0,153,48,61,0,190,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,95,48,60,0,60,0,60,0,95,48,124,0,157,48,61,0,96,48,124,0,157,48,61,0,95,48,124,0,158,48,47,0,153,48,61,0,96,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,191,48,124,0,253,48,61,0,128,255,124,0,253,48,61,0,192,48,124,0,253,48,61,0,191,48,124,0,254,48,47,0,153,48,61,0,128,255,124,0,254,48,47,0,153,48,61,0,192,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,97,48,60,0,60,0,60,0,97,48,124,0,157,48,61,0,98,48,124,0,157,48,61,0,97,48,124,0,158,48,47,0,153,48,61,0,98,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,193,48,124,0,253,48,61,0,129,255,124,0,253,48,61,0,194,48,124,0,253,48,61,0,193,48,124,0,254,48,47,0,153,48,61,0,129,255,124,0,254,48,47,0,153,48,61,0,194,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,100,48,60,0,60,0,60,0,100,48,124,0,157,48,61,0,99,48,124,0,157,48,61,0,101,48,124,0,157,48,61,0,100,48,124,0,158,48,47,0,153,48,61,0,101,48,124,0,158,48,47,0,153,48,61,0,100,48,124,0,157,48,61,0,99,48,124,0,158,48,47,0,153,48,61,0,100,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,196,48,124,0,253,48,61,0,130,255,124,0,253,48,61,0,195,48,124,0,253,48,61,0,111,255,124,0,253,48,61,0,197,48,124,0,253,48,61,0,196,48,124,0,254,48,47,0,153,48,61,0,130,255,124,0,254,48,47,0,153,48,61,0,197,48,124,0,254,48,47,0,153,48,61,0,196,48,124,0,253,48,61,0,130,255,124,0,253,48,61,0,195,48,124,0,254,48,47,0,153,48,61,0,111,255,124,0,254,48,47,0,153,48,61,0,196,48,124,0,254,48,47,0,153,48,61,0,130,255,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,102,48,60,0,60,0,60,0,102,48,124,0,157,48,61,0,103,48,124,0,157,48,61,0,102,48,124,0,158,48,47,0,153,48,61,0,103,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,198,48,124,0,253,48,61,0,131,255,124,0,253,48,61,0,199,48,124,0,253,48,61,0,198,48,124,0,254,48,47,0,153,48,61,0,131,255,124,0,254,48,47,0,153,48,61,0,199,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,104,48,60,0,60,0,60,0,104,48,124,0,157,48,61,0,105,48,124,0,157,48,61,0,104,48,124,0,158,48,47,0,153,48,61,0,105,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,200,48,124,0,253,48,61,0,132,255,124,0,253,48,61,0,243,49,124,0,253,48,61,0,201,48,124,0,253,48,61,0,200,48,124,0,254,48,47,0,153,48,61,0,132,255,124,0,254,48,47,0,153,48,61,0,243,49,124,0,254,48,47,0,153,48,61,0,201,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,106,48,60,0,60,0,60,0,106,48,124,0,157,48,60,0,60,0,60,0,60,0,202,48,124,0,253,48,61,0,133,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,107,48,60,0,60,0,60,0,107,48,124,0,157,48,60,0,60,0,60,0,60,0,203,48,124,0,253,48,61,0,134,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,108,48,60,0,60,0,60,0,108,48,124,0,157,48,60,0,60,0,60,0,60,0,204,48,124,0,253,48,61,0,135,255,124,0,253,48,61,0,244,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,109,48,60,0,60,0,60,0,109,48,124,0,157,48,60,0,60,0,60,0,60,0,205,48,124,0,253,48,61,0,136,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,110,48,60,0,60,0,60,0,110,48,124,0,157,48,60,0,60,0,60,0,60,0,206,48,124,0,253,48,61,0,137,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,111,48,60,0,60,0,60,0,111,48,124,0,157,48,61,0,112,48,124,0,157,48,61,0,111,48,124,0,158,48,47,0,153,48,61,0,112,48,124,0,158,48,47,0,153,48,61,0,113,48,124,0,157,48,61,0,113,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,207,48,124,0,253,48,61,0,138,255,124,0,253,48,61,0,245,49,124,0,253,48,61,0,208,48,124,0,253,48,61,0,207,48,124,0,254,48,47,0,153,48,61,0,138,255,124,0,254,48,47,0,153,48,61,0,245,49,124,0,254,48,47,0,153,48,61,0,208,48,124,0,254,48,47,0,153,48,61,0,209,48,124,0,253,48,61,0,209,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,114,48,60,0,60,0,60,0,114,48,124,0,157,48,61,0,115,48,124,0,157,48,61,0,114,48,124,0,158,48,47,0,153,48,61,0,115,48,124,0,158,48,47,0,153,48,61,0,116,48,124,0,157,48,61,0,116,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,210,48,124,0,253,48,61,0,139,255,124,0,253,48,61,0,246,49,124,0,253,48,61,0,211,48,124,0,253,48,61,0,210,48,124,0,254,48,47,0,153,48,61,0,139,255,124,0,254,48,47,0,153,48,61,0,246,49,124,0,254,48,47,0,153,48,61,0,211,48,124,0,254,48,47,0,153,48,61,0,212,48,124,0,253,48,61,0,212,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,117,48,60,0,60,0,60,0,117,48,124,0,157,48,61,0,118,48,124,0,157,48,61,0,117,48,124,0,158,48,47,0,153,48,61,0,118,48,124,0,158,48,47,0,153,48,61,0,119,48,124,0,157,48,61,0,119,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,213,48,124,0,253,48,61,0,140,255,124,0,253,48,61,0,247,49,124,0,253,48,61,0,214,48,124,0,253,48,61,0,213,48,124,0,254,48,47,0,153,48,61,0,140,255,124,0,254,48,47,0,153,48,61,0,247,49,124,0,254,48,47,0,153,48,61,0,214,48,124,0,254,48,47,0,153,48,61,0,215,48,124,0,253,48,61,0,215,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,120,48,60,0,60,0,60,0,120,48,124,0,157,48,61,0,121,48,124,0,157,48,61,0,120,48,124,0,158,48,47,0,153,48,61,0,121,48,124,0,158,48,47,0,153,48,61,0,122,48,124,0,157,48,61,0,122,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,216,48,124,0,253,48,61,0,141,255,124,0,253,48,61,0,248,49,124,0,253,48,61,0,217,48,124,0,253,48,61,0,216,48,124,0,254,48,47,0,153,48,61,0,141,255,124,0,254,48,47,0,153,48,61,0,248,49,124,0,254,48,47,0,153,48,61,0,217,48,124,0,254,48,47,0,153,48,61,0,218,48,124,0,253,48,61,0,218,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,123,48,60,0,60,0,60,0,123,48,124,0,157,48,61,0,124,48,124,0,157,48,61,0,123,48,124,0,158,48,47,0,153,48,61,0,124,48,124,0,158,48,47,0,153,48,61,0,125,48,124,0,157,48,61,0,125,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,219,48,124,0,253,48,61,0,142,255,124,0,253,48,61,0,249,49,124,0,253,48,61,0,220,48,124,0,253,48,61,0,219,48,124,0,254,48,47,0,153,48,61,0,142,255,124,0,254,48,47,0,153,48,61,0,249,49,124,0,254,48,47,0,153,48,61,0,220,48,124,0,254,48,47,0,153,48,61,0,221,48,124,0,253,48,61,0,221,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,126,48,60,0,60,0,60,0,126,48,124,0,157,48,60,0,60,0,60,0,60,0,222,48,124,0,253,48,61,0,143,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,127,48,60,0,60,0,60,0,127,48,124,0,157,48,60,0,60,0,60,0,60,0,223,48,124,0,253,48,61,0,144,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,128,48,60,0,60,0,60,0,128,48,124,0,157,48,60,0,60,0,60,0,60,0,224,48,124,0,253,48,61,0,145,255,124,0,253,48,61,0,250,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,129,48,60,0,60,0,60,0,129,48,124,0,157,48,60,0,60,0,60,0,60,0,225,48,124,0,253,48,61,0,146,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,130,48,60,0,60,0,60,0,130,48,124,0,157,48,60,0,60,0,60,0,60,0,226,48,124,0,253,48,61,0,147,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,132,48,60,0,60,0,60,0,132,48,124,0,157,48,61,0,131,48,124,0,157,48,60,0,60,0,60,0,60,0,228,48,124,0,253,48,61,0,148,255,124,0,253,48,61,0,227,48,124,0,253,48,61,0,108,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,134,48,60,0,60,0,60,0,134,48,124,0,157,48,61,0,133,48,124,0,157,48,60,0,60,0,60,0,60,0,230,48,124,0,253,48,61,0,149,255,124,0,253,48,61,0,229,48,124,0,253,48,61,0,109,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,136,48,60,0,60,0,60,0,136,48,124,0,157,48,61,0,135,48,124,0,157,48,60,0,60,0,60,0,60,0,232,48,124,0,253,48,61,0,150,255,124,0,253,48,61,0,231,48,124,0,253,48,61,0,110,255,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,137,48,60,0,60,0,60,0,137,48,124,0,157,48,60,0,60,0,60,0,60,0,233,48,124,0,253,48,61,0,151,255,124,0,253,48,61,0,251,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,138,48,60,0,60,0,60,0,138,48,124,0,157,48,60,0,60,0,60,0,60,0,234,48,124,0,253,48,61,0,152,255,124,0,253,48,61,0,252,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,139,48,60,0,60,0,60,0,139,48,124,0,157,48,60,0,60,0,60,0,60,0,235,48,124,0,253,48,61,0,153,255,124,0,253,48,61,0,253,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,140,48,60,0,60,0,60,0,140,48,124,0,157,48,60,0,60,0,60,0,60,0,236,48,124,0,253,48,61,0,154,255,124,0,253,48,61,0,254,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,141,48,60,0,60,0,60,0,141,48,124,0,157,48,60,0,60,0,60,0,60,0,237,48,124,0,253,48,61,0,155,255,124,0,253,48,61,0,255,49,124,0,253,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,143,48,60,0,60,0,60,0,143,48,124,0,157,48,61,0,142,48,124,0,157,48,61,0,143,48,124,0,158,48,47,0,153,48,61,0,142,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,239,48,124,0,253,48,61,0,156,255,124,0,253,48,61,0,238,48,124,0,253,48,61,0,247,48,124,0,253,48,61,0,239,48,124,0,254,48,47,0,153,48,61,0,156,255,124,0,254,48,47,0,153,48,61,0,247,48,124,0,254,48,47,0,153,48,61,0,238,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,144,48,60,0,60,0,60,0,144,48,124,0,157,48,61,0,144,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,240,48,124,0,253,48,61,0,248,48,124,0,253,48,61,0,240,48,124,0,254,48,47,0,153,48,61,0,248,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,145,48,60,0,60,0,60,0,145,48,124,0,157,48,61,0,145,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,241,48,124,0,253,48,61,0,249,48,124,0,253,48,61,0,241,48,124,0,254,48,47,0,153,48,61,0,249,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,146,48,60,0,60,0,60,0,146,48,124,0,157,48,61,0,146,48,124,0,158,48,47,0,153,48,60,0,60,0,60,0,60,0,242,48,124,0,253,48,61,0,102,255,124,0,253,48,61,0,250,48,124,0,253,48,61,0,242,48,124,0,254,48,47,0,153,48,61,0,102,255,124,0,254,48,47,0,153,48,61,0,250,48,124,0,254,48,47,0,153,48,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,51,0,93,0,147,48,60,0,60,0,60,0,147,48,124,0,157,48,60,0,60,0,60,0,60,0,243,48,124,0,253,48,61,0,157,255,124,0,253,48,38,0,65,48,60,0,60,0,60,0,60,0,161,48,61,0,103,255,38,0,66,48,60,0,60,0,60,0,60,0,162,48,61,0,113,255,38,0,67,48,60,0,60,0,60,0,60,0,163,48,61,0,104,255,38,0,68,48,60,0,60,0,60,0,60,0,164,48,61,0,114,255,38,0,69,48,60,0,60,0,60,0,60,0,165,48,61,0,105,255,38,0,70,48,60,0,60,0,60,0,60,0,166,48,61,0,115,255,38,0,71,48,60,0,60,0,60,0,60,0,167,48,61,0,106,255,38,0,72,48,60,0,60,0,60,0,60,0,168,48,61,0,116,255,38,0,73,48,60,0,60,0,60,0,60,0,169,48,61,0,107,255,38,0,74,48,60,0,60,0,60,0,60,0,170,48,61,0,117,255,38,0,75,48,60,0,60,0,60,0,60,0,171,48,61,0,118,255,38,0,77,48,60,0,60,0,60,0,60,0,173,48,61,0,119,255,38,0,79,48,60,0,60,0,60,0,60,0,175,48,61,0,120,255,38,0,81,48,60,0,60,0,60,0,60,0,177,48,61,0,121,255,38,0,83,48,60,0,60,0,60,0,60,0,179,48,61,0,122,255,38,0,85,48,60,0,60,0,60,0,60,0,181,48,61,0,123,255,38,0,87,48,60,0,60,0,60,0,60,0,183,48,61,0,124,255,38,0,89,48,60,0,60,0,60,0,60,0,185,48,61,0,125,255,38,0,91,48,60,0,60,0,60,0,60,0,187,48,61,0,126,255,38,0,93,48,60,0,60,0,60,0,60,0,189,48,61,0,127,255,38,0,95,48,60,0,60,0,60,0,60,0,191,48,61,0,128,255,38,0,97,48,60,0,60,0,60,0,60,0,193,48,61,0,129,255,38,0,99,48,60,0,60,0,60,0,60,0,195,48,61,0,111,255,38,0,100,48,60,0,60,0,60,0,60,0,196,48,61,0,130,255,38,0,102,48,60,0,60,0,60,0,60,0,198,48,61,0,131,255,38,0,104,48,60,0,60,0,60,0,60,0,200,48,61,0,132,255,38,0,106,48,60,0,60,0,60,0,60,0,202,48,61,0,133,255,38,0,107,48,60,0,60,0,60,0,60,0,203,48,61,0,134,255,38,0,108,48,60,0,60,0,60,0,60,0,204,48,61,0,135,255,38,0,109,48,60,0,60,0,60,0,60,0,205,48,61,0,136,255,38,0,110,48,60,0,60,0,60,0,60,0,206,48,61,0,137,255,38,0,111,48,60,0,60,0,60,0,60,0,207,48,61,0,138,255,38,0,114,48,60,0,60,0,60,0,60,0,210,48,61,0,139,255,38,0,117,48,60,0,60,0,60,0,60,0,213,48,61,0,140,255,38,0,120,48,60,0,60,0,60,0,60,0,216,48,61,0,141,255,38,0,123,48,60,0,60,0,60,0,60,0,219,48,61,0,142,255,38,0,126,48,60,0,60,0,60,0,60,0,222,48,61,0,143,255,38,0,127,48,60,0,60,0,60,0,60,0,223,48,61,0,144,255,38,0,128,48,60,0,60,0,60,0,60,0,224,48,61,0,145,255,38,0,129,48,60,0,60,0,60,0,60,0,225,48,61,0,146,255,38,0,130,48,60,0,60,0,60,0,60,0,226,48,61,0,147,255,38,0,131,48,60,0,60,0,60,0,60,0,227,48,61,0,108,255,38,0,132,48,60,0,60,0,60,0,60,0,228,48,61,0,148,255,38,0,133,48,60,0,60,0,60,0,60,0,229,48,61,0,109,255,38,0,134,48,60,0,60,0,60,0,60,0,230,48,61,0,149,255,38,0,135,48,60,0,60,0,60,0,60,0,231,48,61,0,110,255,38,0,136,48,60,0,60,0,60,0,60,0,232,48,61,0,150,255,38,0,137,48,60,0,60,0,60,0,60,0,233,48,61,0,151,255,38,0,138,48,60,0,60,0,60,0,60,0,234,48,61,0,152,255,38,0,139,48,60,0,60,0,60,0,60,0,235,48,61,0,153,255,38,0,140,48,60,0,60,0,60,0,60,0,236,48,61,0,154,255,38,0,141,48,60,0,60,0,60,0,60,0,237,48,61,0,155,255,38,0,142,48,60,0,60,0,60,0,60,0,238,48,38,0,143,48,60,0,60,0,60,0,60,0,239,48,61,0,156,255,38,0,144,48,60,0,60,0,60,0,60,0,240,48,38,0,145,48,60,0,60,0,60,0,60,0,241,48,38,0,146,48,60,0,60,0,60,0,60,0,242,48,61,0,102,255,38,0,147,48,60,0,60,0,60,0,60,0,243,48,61,0,157,255,38,0,149,48,60,0,60,0,60,0,60,0,245,48,38,0,150,48,60,0,60,0,60,0,60,0,246,48,38,0,136,48,138,48,60,0,60,0,159,48,38,0,179,48,200,48,60,0,60,0,255,48,38,0,39,0,32,0,39,0,61,0,42,0,39,0,0,48,39,0,227,255,38,0,39,0,33,0,39,0,61,0,1,255,38,0,39,0,34,0,39,0,61,0,2,255,38,0,39,0,35,0,39,0,61,0,3,255,38,0,39,0,36,0,39,0,61,0,4,255,38,0,39,0,37,0,39,0,61,0,5,255,38,0,39,0,38,0,39,0,61,0,6,255,38,0,39,0,39,0,61,0,7,255,38,0,39,0,40,0,39,0,61,0,8,255,38,0,39,0,41,0,39,0,61,0,9,255,38,0,39,0,42,0,39,0,61,0,10,255,38,0,39,0,43,0,39,0,61,0,11,255,38,0,39,0,44,0,39,0,61,0,12,255,38,0,39,0,45,0,39,0,61,0,13,255,38,0,39,0,46,0,39,0,61,0,14,255,38,0,39,0,47,0,39,0,61,0,15,255,38,0,48,0,61,0,16,255,38,0,49,0,61,0,17,255,38,0,50,0,61,0,18,255,38,0,51,0,61,0,19,255,38,0,52,0,61,0,20,255,38,0,53,0,61,0,21,255,38,0,54,0,61,0,22,255,38,0,55,0,61,0,23,255,38,0,56,0,61,0,24,255,38,0,57,0,61,0,25,255,38,0,39,0,58,0,39,0,61,0,26,255,38,0,39,0,59,0,39,0,61,0,27,255,38,0,39,0,60,0,39,0,61,0,28,255,38,0,39,0,61,0,39,0,61,0,29,255,38,0,39,0,62,0,39,0,61,0,30,255,38,0,39,0,63,0,39,0,61,0,31,255,38,0,39,0,64,0,39,0,61,0,32,255,38,0,65,0,61,0,33,255,38,0,66,0,61,0,34,255,38,0,67,0,61,0,35,255,38,0,68,0,61,0,36,255,38,0,69,0,61,0,37,255,38,0,70,0,61,0,38,255,38,0,71,0,61,0,39,255,38,0,72,0,61,0,40,255,38,0,73,0,61,0,41,255,38,0,74,0,61,0,42,255,38,0,75,0,61,0,43,255,38,0,76,0,61,0,44,255,38,0,77,0,61,0,45,255,38,0,78,0,61,0,46,255,38,0,79,0,61,0,47,255,38,0,80,0,61,0,48,255,38,0,81,0,61,0,49,255,38,0,82,0,61,0,50,255,38,0,83,0,61,0,51,255,38,0,84,0,61,0,52,255,38,0,85,0,61,0,53,255,38,0,86,0,61,0,54,255,38,0,87,0,61,0,55,255,38,0,88,0,61,0,56,255,38,0,89,0,61,0,57,255,38,0,90,0,61,0,58,255,38,0,39,0,91,0,39,0,61,0,59,255,38,0,39,0,92,0,39,0,61,0,60,255,38,0,39,0,93,0,39,0,61,0,61,255,38,0,39,0,94,0,39,0,61,0,62,255,38,0,39,0,95,0,39,0,61,0,63,255,38,0,39,0,96,0,39,0,61,0,64,255,38,0,97,0,61,0,65,255,38,0,98,0,61,0,66,255,38,0,99,0,61,0,67,255,38,0,100,0,61,0,68,255,38,0,101,0,61,0,69,255,38,0,102,0,61,0,70,255,38,0,103,0,61,0,71,255,38,0,104,0,61,0,72,255,38,0,105,0,61,0,73,255,38,0,106,0,61,0,74,255,38,0,107,0,61,0,75,255,38,0,108,0,61,0,76,255,38,0,109,0,61,0,77,255,38,0,110,0,61,0,78,255,38,0,111,0,61,0,79,255,38,0,112,0,61,0,80,255,38,0,113,0,61,0,81,255,38,0,114,0,61,0,82,255,38,0,115,0,61,0,83,255,38,0,116,0,61,0,84,255,38,0,117,0,61,0,85,255,38,0,118,0,61,0,86,255,38,0,119,0,61,0,87,255,38,0,120,0,61,0,88,255,38,0,121,0,61,0,89,255,38,0,122,0,61,0,90,255,38,0,39,0,123,0,39,0,61,0,91,255,38,0,39,0,124,0,39,0,61,0,92,255,38,0,39,0,125,0,39,0,61,0,93,255,38,0,39,0,126,0,39,0,61,0,94,255,38,0,162,0,61,0,224,255,38,0,163,0,61,0,225,255,38,0,165,0,61,0,229,255,38,0,166,0,61,0,228,255,38,0,172,0,61,0,226,255,38,0,0,17,61,0,161,255,61,0,49,49,38,0,1,17,61,0,162,255,61,0,50,49,38,0,2,17,61,0,164,255,61,0,52,49,38,0,3,17,61,0,167,255,61,0,55,49,38,0,4,17,61,0,168,255,61,0,56,49,38,0,5,17,61,0,169,255,61,0,57,49,38,0,6,17,61,0,177,255,61,0,65,49,38,0,7,17,61,0,178,255,61,0,66,49,38,0,8,17,61,0,179,255,61,0,67,49,38,0,9,17,61,0,181,255,61,0,69,49,38,0,10,17,61,0,182,255,61,0,70,49,38,0,11,17,61,0,183,255,61,0,71,49,38,0,12,17,61,0,184,255,61,0,72,49,38,0,13,17,61,0,185,255,61,0,73,49,38,0,14,17,61,0,186,255,61,0,74,49,38,0,15,17,61,0,187,255,61,0,75,49,38,0,16,17,61,0,188,255,61,0,76,49,38,0,17,17,61,0,189,255,61,0,77,49,38,0,18,17,61,0,190,255,61,0,78,49,38,0,26,17,61,0,176,255,61,0,64,49,38,0,33,17,61,0,180,255,61,0,68,49,38,0,96,17,61,0,160,255,61,0,100,49,38,0,97,17,61,0,194,255,61,0,79,49,38,0,98,17,61,0,195,255,61,0,80,49,38,0,99,17,61,0,196,255,61,0,81,49,38,0,100,17,61,0,197,255,61,0,82,49,38,0,101,17,61,0,198,255,61,0,83,49,38,0,102,17,61,0,199,255,61,0,84,49,38,0,103,17,61,0,202,255,61,0,85,49,38,0,104,17,61,0,203,255,61,0,86,49,38,0,105,17,61,0,204,255,61,0,87,49,38,0,106,17,61,0,205,255,61,0,88,49,38,0,107,17,61,0,206,255,61,0,89,49,38,0,108,17,61,0,207,255,61,0,90,49,38,0,109,17,61,0,210,255,61,0,91,49,38,0,110,17,61,0,211,255,61,0,92,49,38,0,111,17,61,0,212,255,61,0,93,49,38,0,112,17,61,0,213,255,61,0,94,49,38,0,113,17,61,0,214,255,61,0,95,49,38,0,114,17,61,0,215,255,61,0,96,49,38,0,115,17,61,0,218,255,61,0,97,49,38,0,116,17,61,0,219,255,61,0,98,49,38,0,117,17,61,0,220,255,61,0,99,49,38,0,170,17,61,0,163,255,61,0,51,49,38,0,172,17,61,0,165,255,61,0,53,49,38,0,173,17,61,0,166,255,61,0,54,49,38,0,176,17,61,0,170,255,61,0,58,49,38,0,177,17,61,0,171,255,61,0,59,49,38,0,178,17,61,0,172,255,61,0,60,49,38,0,179,17,61,0,173,255,61,0,61,49,38,0,180,17,61,0,174,255,61,0,62,49,38,0,181,17,61,0,175,255,61,0,63,49,38,0,169,32,61,0,230,255,38,0,144,33,61,0,233,255,38,0,145,33,61,0,234,255,38,0,146,33,61,0,235,255,38,0,147,33,61,0,236,255,38,0,2,37,61,0,232,255,38,0,160,37,61,0,237,255,38,0,203,37,61,0,238,255,38,0,1,48,61,0,100,255,38,0,2,48,61,0,97,255,38,0,12,48,61,0,98,255,38,0,13,48,61,0,99,255,0,0,239,223,10,25,38,0,253,48,60,0,42,0,126,51,125,51,124,51,123,51,255,50,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,106,0,97,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,107,0,97,0,110,0,97,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,42,0,156,78,22,85,3,90,63,150,192,84,27,97,40,99,246,89,34,144,117,132,28,131,80,122,170,96,225,99,37,110,237,101,102,132,166,130,245,155,147,104,39,87,161,101,113,98,155,91,208,89,123,134,244,152,98,125,190,125,142,155,22,98,159,124,183,136,137,91,181,94,9,99,151,102,72,104,199,149,141,151,79,103,229,78,10,79,77,79,157,79,73,80,242,86,55,89,212,89,1,90,9,92,223,96,15,97,112,97,19,102,5,105,186,112,79,117,112,117,251,121,173,125,239,125,195,128,14,132,99,136,2,139,85,144,122,144,59,83,149,78,165,78,223,87,178,128,193,144,239,120,0,78,241,88,162,110,56,144,50,122,40,131,139,130,47,156,65,81,112,83,189,84,225,84,224,86,251,89,21,95,242,152,235,109,228,128,45,133,98,150,112,150,160,150,251,151,11,84,243,83,135,91,207,112,189,127,194,143,232,150,111,83,92,157,186,122,17,78,147,120,252,129,38,110,24,86,4,85,29,107,26,133,59,156,229,89,169,83,102,109,220,116,143,149,66,86,145,78,75,144,242,150,79,131,12,153,225,83,182,85,48,91,113,95,32,102,243,102,4,104,56,108,243,108,41,109,91,116,200,118,78,122,52,152,241,130,91,136,96,138,237,146,178,109,171,117,202,118,197,153,166,96,1,139,138,141,178,149,142,105,173,83,134,81,18,87,48,88,68,89,180,91,246,94,40,96,169,99,244,99,191,108,20,111,142,112,20,113,89,113,213,113,63,115,1,126,118,130,209,130,151,133,96,144,91,146,27,157,105,88,188,101,90,108,37,117,249,81,46,89,101,89,128,95,220,95,188,98,250,101,42,106,39,107,180,107,139,115,193,127,86,137,44,157,14,157,196,158,161,92,150,108,123,131,4,81,75,92,182,97,198,129,118,104,97,114,89,78,250,79,120,83,105,96,41,110,79,122,243,151,11,78,22,83,238,78,85,79,61,79,161,79,115,79,160,82,239,83,9,86,15,89,193,90,182,91,225,91,209,121,135,102,156,103,182,103,76,107,179,108,107,112,194,115,141,121,190,121,60,122,135,123,177,130,219,130,4,131,119,131,239,131,211,131,102,135,178,138,41,86,168,140,230,143,78,144,30,151,138,134,196,79,232,92,17,98,89,114,59,117,229,129,189,130,254,134,192,140,197,150,19,153,213,153,203,78,26,79,227,137,222,86,74,88,202,88,251,94,235,95,42,96,148,96,98,96,208,97,18,98,208,98,57,101,65,155,102,102,176,104,119,109,112,112,76,117,134,118,117,125,165,130,249,135,139,149,142,150,157,140,241,81,190,82,22,89,179,84,179,91,22,93,104,97,130,105,175,109,141,120,203,132,87,136,114,138,167,147,184,154,108,109,168,153,217,134,163,87,255,103,206,134,14,146,131,82,135,86,4,84,211,94,225,98,185,100,60,104,56,104,187,107,114,115,186,120,107,122,154,137,210,137,107,141,3,143,237,144,163,149,148,150,105,151,102,91,179,92,125,105,77,152,78,152,155,99,32,123,43,106,127,106,182,104,13,156,95,111,114,82,157,85,112,96,236,98,59,109,7,110,209,110,91,132,16,137,68,143,20,78,57,156,246,83,27,105,58,106,132,151,42,104,92,81,195,122,178,132,220,145,140,147,91,86,40,157,34,104,5,131,49,132,165,124,8,82,197,130,230,116,126,78,131,79,160,81,210,91,10,82,216,82,231,82,251,93,154,85,42,88,230,89,140,91,152,91,219,91,114,94,121,94,163,96,31,97,99,97,190,97,219,99,98,101,209,103,83,104,250,104,62,107,83,107,87,108,34,111,151,111,69,111,176,116,24,117,227,118,11,119,255,122,161,123,33,124,233,125,54,127,240,127,157,128,102,130,158,131,179,137,204,138,171,140,132,144,81,148,147,149,145,149,162,149,101,150,211,151,40,153,24,130,56,78,43,84,184,92,204,93,169,115,76,118,60,119,169,92,235,127,11,141,193,150,17,152,84,152,88,152,1,79,14,79,113,83,156,85,104,86,250,87,71,89,9,91,196,91,144,92,12,94,126,94,204,95,238,99,58,103,215,101,226,101,31,103,203,104,196,104,95,106,48,94,197,107,23,108,125,108,127,117,72,121,99,91,0,122,0,125,189,95,143,137,24,138,180,140,119,141,204,142,29,143,226,152,14,154,60,155,128,78,125,80,0,81,147,89,156,91,47,98,128,98,236,100,58,107,160,114,145,117,71,121,169,127,251,135,188,138,112,139,172,99,202,131,160,151,9,84,3,84,171,85,84,104,88,106,112,138,39,120,117,103,205,158,116,83,162,91,26,129,80,134,6,144,24,78,69,78,199,78,17,79,202,83,56,84,174,91,19,95,37,96,81,101,61,103,66,108,114,108,227,108,120,112,3,116,118,122,174,122,8,123,26,125,254,124,102,125,231,101,91,114,187,83,69,92,232,93,210,98,224,98,25,99,32,110,90,134,49,138,221,141,248,146,1,111,166,121,90,155,168,78,171,78,172,78,155,79,160,79,209,80,71,81,246,122,113,81,246,81,84,83,33,83,127,83,235,83,172,85,131,88,225,92,55,95,74,95,47,96,80,96,109,96,31,99,89,101,75,106,193,108,194,114,237,114,239,119,248,128,5,129,8,130,78,133,247,144,225,147,255,151,87,153,90,154,240,78,221,81,45,92,129,102,109,105,64,92,242,102,117,105,137,115,80,104,129,124,197,80,228,82,71,87,254,93,38,147,164,101,35,107,61,107,52,116,129,121,189,121,75,123,202,125,185,130,204,131,127,136,95,137,57,139,209,143,209,145,31,84,128,146,93,78,54,80,229,83,58,83,215,114,150,115,233,119,230,130,175,142,198,153,200,153,210,153,119,81,26,97,94,134,176,85,122,122,118,80,211,91,71,144,133,150,50,78,219,106,231,145,81,92,72,92,152,99,159,122,147,108,116,151,97,143,170,122,138,113,136,150,130,124,23,104,112,126,81,104,108,147,242,82,27,84,171,133,19,138,164,127,205,142,225,144,102,83,136,136,65,121,194,79,190,80,17,82,68,81,83,85,45,87,234,115,139,87,81,89,98,95,132,95,117,96,118,97,103,97,169,97,178,99,58,100,108,101,111,102,66,104,19,110,102,117,61,122,251,124,76,125,153,125,75,126,107,127,14,131,74,131,205,134,8,138,99,138,102,139,253,142,26,152,143,157,184,130,206,143,232,155,135,82,31,98,131,100,192,111,153,150,65,104,145,80,32,107,122,108,84,111,116,122,80,125,64,136,35,138,8,103,246,78,57,80,38,80,101,80,124,81,56,82,99,82,167,85,15,87,5,88,204,90,250,94,178,97,248,97,243,98,114,99,28,105,41,106,125,114,172,114,46,115,20,120,111,120,121,125,12,119,169,128,139,137,25,139,226,140,210,142,99,144,117,147,122,150,85,152,19,154,120,158,67,81,159,83,179,83,123,94,38,95,27,110,144,110,132,115,254,115,67,125,55,130,0,138,250,138,80,150,78,78,11,80,228,83,124,84,250,86,209,89,100,91,241,93,171,94,39,95,56,98,69,101,175,103,86,110,208,114,202,124,180,136,161,128,225,128,240,131,78,134,135,138,232,141,55,146,199,150,103,152,19,159,148,78,146,78,13,79,72,83,73,84,62,84,47,90,140,95,161,95,159,96,167,104,142,106,90,116,129,120,158,138,164,138,119,139,144,145,94,78,201,155,164,78,124,79,175,79,25,80,22,80,73,81,108,81,159,82,185,82,254,82,154,83,227,83,17,84,14,84,137,85,81,87,162,87,125,89,84,91,93,91,143,91,229,93,231,93,247,93,120,94,131,94,154,94,183,94,24,95,82,96,76,97,151,98,216,98,167,99,59,101,2,102,67,102,244,102,109,103,33,104,151,104,203,105,95,108,42,109,105,109,47,110,157,110,50,117,135,118,108,120,63,122,224,124,5,125,24,125,94,125,177,125,21,128,3,128,175,128,177,128,84,129,143,129,42,130,82,131,76,136,97,136,27,139,162,140,252,140,202,144,117,145,113,146,63,120,252,146,164,149,77,150,5,152,153,153,216,154,59,157,91,82,171,82,247,83,8,84,213,88,247,98,224,111,106,140,95,143,185,158,75,81,59,82,74,84,253,86,64,122,119,145,96,157,210,158,68,115,9,111,112,129,17,117,253,95,218,96,168,154,219,114,188,143,100,107,3,152,202,78,240,86,100,87,190,88,90,90,104,96,199,97,15,102,6,102,57,104,177,104,247,109,213,117,58,125,110,130,66,155,155,78,80,79,201,83,6,85,111,93,230,93,238,93,251,103,153,108,115,116,2,120,80,138,150,147,223,136,80,87,167,94,43,99,181,80,172,80,141,81,0,103,201,84,94,88,187,89,176,91,105,95,77,98,161,99,61,104,115,107,8,110,125,112,199,145,128,114,21,120,38,120,109,121,142,101,48,125,220,131,193,136,9,143,155,150,100,82,40,87,80,103,106,127,161,140,180,81,66,87,42,150,58,88,138,105,180,128,178,84,14,93,252,87,149,120,250,157,92,79,74,82,139,84,62,100,40,102,20,103,245,103,132,122,86,123,34,125,47,147,92,104,173,155,57,123,25,83,138,81,55,82,223,91,246,98,174,100,230,100,45,103,186,107,169,133,209,150,144,118,214,155,76,99,6,147,171,155,191,118,82,102,9,78,152,80,194,83,113,92,232,96,146,100,99,101,95,104,230,113,202,115,35,117,151,123,130,126,149,134,131,139,219,140,120,145,16,153,172,101,171,102,139,107,213,78,212,78,58,79,127,79,58,82,248,83,242,83,227,85,219,86,235,88,203,89,201,89,255,89,80,91,77,92,2,94,43,94,215,95,29,96,7,99,47,101,92,91,175,101,189,101,232,101,157,103,98,107,123,107,15,108,69,115,73,121,193,121,248,124,25,125,43,125,162,128,2,129,243,129,150,137,94,138,105,138,102,138,140,138,238,138,199,140,220,140,204,150,252,152,111,107,139,78,60,79,141,79,80,81,87,91,250,91,72,97,1,99,66,102,33,107,203,110,187,108,62,114,189,116,212,117,193,120,58,121,12,128,51,128,234,129,148,132,158,143,80,108,127,158,15,95,88,139,43,157,250,122,248,142,141,91,235,150,3,78,241,83,247,87,49,89,201,90,164,91,137,96,127,110,6,111,190,117,234,140,159,91,0,133,224,123,114,80,244,103,157,130,97,92,74,133,30,126,14,130,153,81,4,92,104,99,102,141,156,101,110,113,62,121,23,125,5,128,29,139,202,142,110,144,199,134,170,144,31,80,250,82,58,92,83,103,124,112,53,114,76,145,200,145,43,147,229,130,194,91,49,95,249,96,59,78,214,83,136,91,75,98,49,103,138,107,233,114,224,115,46,122,107,129,163,141,82,145,150,153,18,81,215,83,106,84,255,91,136,99,57,106,172,125,0,151,218,86,206,83,104,84,151,91,49,92,222,93,238,79,1,97,254,98,50,109,192,121,203,121,66,125,77,126,210,127,237,129,31,130,144,132,70,136,114,137,144,139,116,142,47,143,49,144,75,145,108,145,198,150,156,145,192,78,79,79,69,81,65,83,147,95,14,98,212,103,65,108,11,110,99,115,38,126,205,145,131,146,212,83,25,89,191,91,209,109,93,121,46,126,155,124,126,88,159,113,250,81,83,136,240,143,202,79,251,92,37,102,172,119,227,122,28,130,255,153,198,81,170,95,236,101,111,105,137,107,243,109,150,110,100,111,254,118,20,125,225,93,117,144,135,145,6,152,230,81,29,82,64,98,145,102,217,102,26,110,182,94,210,125,114,127,248,102,175,133,247,133,248,138,169,82,217,83,115,89,143,94,144,95,85,96,228,146,100,150,183,80,31,81,221,82,32,83,71,83,236,83,232,84,70,85,49,85,23,86,104,89,190,89,60,90,181,91,6,92,15,92,17,92,26,92,132,94,138,94,224,94,112,95,127,98,132,98,219,98,140,99,119,99,7,102,12,102,45,102,118,102,126,103,162,104,31,106,53,106,188,108,136,109,9,110,88,110,60,113,38,113,103,113,199,117,1,119,93,120,1,121,101,121,240,121,224,122,17,123,167,124,57,125,150,128,214,131,139,132,73,133,93,136,243,136,31,138,60,138,84,138,115,138,97,140,222,140,164,145,102,146,126,147,24,148,156,150,152,151,10,78,8,78,30,78,87,78,151,81,112,82,206,87,52,88,204,88,34,91,56,94,197,96,254,100,97,103,86,103,68,109,182,114,115,117,99,122,184,132,114,139,184,145,32,147,49,86,244,87,254,152,237,98,13,105,150,107,237,113,84,126,119,128,114,130,230,137,223,152,85,135,177,143,59,92,56,79,225,79,181,79,7,85,32,90,221,91,233,91,195,95,78,97,47,99,176,101,75,102,238,104,155,105,120,109,241,109,51,117,185,117,31,119,94,121,230,121,51,125,227,129,175,130,170,133,170,137,58,138,171,142,155,143,50,144,221,145,7,151,186,78,193,78,3,82,117,88,236,88,11,92,26,117,61,92,78,129,10,138,197,143,99,150,109,151,37,123,207,138,8,152,98,145,243,86,168,83,23,144,57,84,130,87,37,94,168,99,52,108,138,112,97,119,139,124,224,127,112,136,66,144,84,145,16,147,24,147,143,150,94,116,196,154,7,93,105,93,112,101,162,103,168,141,219,150,110,99,73,103,25,105,197,131,23,152,192,150,254,136,132,111,122,100,248,91,22,78,44,112,93,117,47,102,196,81,54,82,226,82,211,89,129,95,39,96,16,98,63,101,116,101,31,102,116,102,242,104,22,104,99,107,5,110,114,114,31,117,219,118,190,124,86,128,240,88,253,136,127,137,160,138,147,138,203,138,29,144,146,145,82,151,89,151,137,101,14,122,6,129,187,150,45,94,220,96,26,98,165,101,20,102,144,103,243,119,77,122,77,124,62,126,10,129,172,140,100,141,225,141,95,142,169,120,7,82,217,98,165,99,66,100,152,98,45,138,131,122,192,123,172,138,234,150,118,125,12,130,73,135,217,78,72,81,67,83,96,83,163,91,2,92,22,92,221,93,38,98,71,98,176,100,19,104,52,104,201,108,69,109,23,109,211,103,92,111,78,113,125,113,203,101,127,122,173,123,218,125,74,126,168,127,122,129,27,130,57,130,166,133,110,138,206,140,245,141,120,144,119,144,173,146,145,146,131,149,174,155,77,82,132,85,56,111,54,113,104,81,133,121,85,126,179,129,206,124,76,86,81,88,168,92,170,99,254,102,253,102,90,105,217,114,143,117,142,117,14,121,86,121,223,121,151,124,32,125,68,125,7,134,52,138,59,150,97,144,32,159,231,80,117,82,204,83,226,83,9,80,170,85,238,88,79,89,61,114,139,91,100,92,29,83,227,96,243,96,92,99,131,99,63,99,187,99,205,100,233,101,249,102,227,93,205,105,253,105,21,111,229,113,137,78,233,117,248,118,147,122,223,124,207,125,156,125,97,128,73,131,88,131,108,132,188,132,251,133,197,136,112,141,1,144,109,144,151,147,28,151,18,154,207,80,151,88,142,97,211,129,53,133,8,141,32,144,195,79,116,80,71,82,115,83,111,96,73,99,95,103,44,110,179,141,31,144,215,79,94,92,202,140,207,101,154,125,82,83,150,136,118,81,195,99,88,91,107,91,10,92,13,100,81,103,92,144,214,78,26,89,42,89,112,108,81,138,62,85,21,88,165,89,240,96,83,98,193,103,53,130,85,105,64,150,196,153,40,154,83,79,6,88,254,91,16,128,177,92,47,94,133,95,32,96,75,97,52,98,255,102,240,108,222,110,206,128,127,129,212,130,139,136,184,140,0,144,46,144,138,150,219,158,219,155,227,78,240,83,39,89,44,123,141,145,76,152,249,157,221,110,39,112,83,83,68,85,133,91,88,98,158,98,211,98,162,108,239,111,34,116,23,138,56,148,193,111,254,138,56,131,231,81,248,134,234,83,233,83,70,79,84,144,176,143,106,89,49,129,253,93,234,122,191,143,218,104,55,140,248,114,72,156,61,106,176,138,57,78,88,83,6,86,102,87,197,98,162,99,230,101,78,107,225,109,91,110,173,112,237,119,239,122,170,123,187,125,61,128,198,128,203,134,149,138,91,147,227,86,199,88,62,95,173,101,150,102,128,106,181,107,55,117,199,138,36,80,229,119,48,87,27,95,101,96,122,102,96,108,244,117,26,122,110,127,244,129,24,135,69,144,179,153,201,123,92,117,249,122,81,123,196,132,16,144,233,121,146,122,54,131,225,90,64,119,45,78,242,78,153,91,224,95,189,98,60,102,241,103,232,108,107,134,119,136,59,138,78,145,243,146,208,153,23,106,38,112,42,115,231,130,87,132,175,140,1,78,70,81,203,81,139,85,245,91,22,94,51,94,129,94,20,95,53,95,107,95,180,95,242,97,17,99,162,102,29,103,110,111,82,114,58,117,58,119,116,128,57,129,120,129,118,135,191,138,220,138,133,141,243,141,154,146,119,149,2,152,229,156,197,82,87,99,244,118,21,103,136,108,205,115,195,140,174,147,115,150,37,109,156,88,14,105,204,105,253,143,154,147,219,117,26,144,90,88,2,104,180,99,251,105,67,79,44,111,216,103,187,143,38,133,180,125,84,147,63,105,112,111,106,87,247,88,44,91,44,125,42,114,10,84,227,145,180,157,173,78,78,79,92,80,117,80,67,82,158,140,72,84,36,88,154,91,29,94,149,94,173,94,247,94,31,95,140,96,181,98,58,99,208,99,175,104,64,108,135,120,142,121,11,122,224,125,71,130,2,138,230,138,68,142,19,144,184,144,45,145,216,145,14,159,229,108,88,100,226,100,117,101,244,110,132,118,27,123,105,144,209,147,186,110,242,84,185,95,164,100,77,143,237,143,68,146,120,81,107,88,41,89,85,92,151,94,251,109,143,126,28,117,188,140,226,142,91,152,185,112,29,79,191,107,177,111,48,117,251,150,78,81,16,84,53,88,87,88,172,89,96,92,146,95,151,101,92,103,33,110,123,118,223,131,237,140,20,144,253,144,77,147,37,120,58,120,170,82,166,94,31,87,116,89,18,96,18,80,90,81,172,81,205,81,0,82,16,85,84,88,88,88,87,89,149,91,246,92,139,93,188,96,149,98,45,100,113,103,67,104,188,104,223,104,215,118,216,109,111,110,155,109,111,112,200,113,83,95,216,117,119,121,73,123,84,123,82,123,214,124,113,125,48,82,99,132,105,133,228,133,14,138,4,139,70,140,15,142,3,144,15,144,25,148,118,150,45,152,48,154,216,149,205,80,213,82,12,84,2,88,14,92,167,97,158,100,30,109,179,119,229,122,244,128,4,132,83,144,133,146,224,92,7,157,63,83,151,95,179,95,156,109,121,114,99,119,191,121,228,123,210,107,236,114,173,138,3,104,97,106,248,81,129,122,52,105,74,92,246,156,235,130,197,91,73,145,30,112,120,86,111,92,199,96,102,101,140,108,90,140,65,144,19,152,81,84,199,102,13,146,72,89,163,144,133,81,77,78,234,81,153,133,14,139,88,112,122,99,75,147,98,105,180,153,4,126,119,117,87,83,96,105,223,142,227,150,93,108,140,78,60,92,16,95,233,143,2,83,209,140,137,128,121,134,255,94,229,101,115,78,101,81,130,89,63,92,238,151,251,78,138,89,205,95,141,138,225,111,176,121,98,121,231,91,113,132,43,115,177,113,116,94,245,95,123,99,154,100,195,113,152,124,67,78,252,94,75,78,220,87,162,86,169,96,195,111,13,125,253,128,51,129,191,129,178,143,151,137,164,134,244,93,138,98,173,100,135,137,119,103,226,108,62,109,54,116,52,120,70,90,117,127,173,130,172,153,243,79,195,94,221,98,146,99,87,101,111,103,195,118,76,114,204,128,186,128,41,143,77,145,13,80,249,87,146,90,133,104,115,105,100,113,253,114,183,140,242,88,224,140,106,150,25,144,127,135,228,121,231,119,41,132,47,79,101,82,90,83,205,98,207,103,202,108,125,118,148,123,149,124,54,130,132,133,235,143,221,102,32,111,6,114,27,126,171,131,193,153,166,158,253,81,177,123,114,120,184,123,135,128,72,123,232,106,97,94,140,128,81,117,96,117,107,81,98,146,140,110,122,118,151,145,234,154,16,79,112,127,156,98,79,123,165,149,233,156,122,86,89,88,228,134,188,150,52,79,36,82,74,83,205,83,219,83,6,94,44,100,145,101,127,103,62,108,78,108,72,114,175,114,237,115,84,117,65,126,44,130,233,133,169,140,196,123,198,145,105,113,18,152,239,152,61,99,105,102,106,117,228,118,208,120,67,133,238,134,42,83,81,83,38,84,131,89,135,94,124,95,178,96,73,98,121,98,171,98,144,101,212,107,204,108,178,117,174,118,145,120,216,121,203,125,119,127,165,128,171,136,185,138,187,140,127,144,94,151,219,152,11,106,56,124,153,80,62,92,174,95,135,103,216,107,53,116,9,119,142,127,59,159,202,103,23,122,57,83,139,117,237,154,102,95,157,129,241,131,152,128,60,95,197,95,98,117,70,123,60,144,103,104,235,89,155,90,16,125,126,118,44,139,245,79,106,95,25,106,55,108,2,111,226,116,104,121,104,136,85,138,121,140,223,94,207,99,197,117,210,121,215,130,40,147,242,146,156,132,237,134,45,156,193,84,108,95,140,101,92,109,21,112,167,140,211,140,59,152,79,101,246,116,13,78,216,78,224,87,43,89,102,90,204,91,168,81,3,94,156,94,22,96,118,98,119,101,167,101,110,102,110,109,54,114,38,123,80,129,154,129,153,130,92,139,160,140,230,140,116,141,28,150,68,150,174,79,171,100,102,107,30,130,97,132,106,133,232,144,1,92,83,105,168,152,122,132,87,133,15,79,111,82,169,95,69,94,13,103,143,121,121,129,7,137,134,137,245,109,23,95,85,98,184,108,207,78,105,114,146,155,6,82,59,84,116,86,179,88,164,97,110,98,26,113,110,89,137,124,222,124,27,125,240,150,135,101,94,128,25,78,117,79,117,81,64,88,99,94,115,94,10,95,196,103,38,78,61,133,137,149,91,150,115,124,1,152,251,80,193,88,86,118,167,120,37,82,165,119,17,133,134,123,79,80,9,89,71,114,199,123,232,125,186,143,212,143,77,144,191,79,201,82,41,90,1,95,173,151,221,79,23,130,234,146,3,87,85,99,105,107,43,117,220,136,20,143,66,122,223,82,147,88,85,97,10,98,174,102,205,107,63,124,233,131,35,80,248,79,5,83,70,84,49,88,73,89,157,91,240,92,239,92,41,93,150,94,177,98,103,99,62,101,185,101,11,103,213,108,225,108,249,112,50,120,43,126,222,128,179,130,12,132,236,132,2,135,18,137,42,138,74,140,166,144,210,146,253,152,243,156,108,157,79,78,161,78,141,80,86,82,74,87,168,89,61,94,216,95,217,95,63,98,180,102,27,103,208,103,210,104,146,81,33,125,170,128,168,129,0,139,140,140,191,140,126,146,50,150,32,84,44,152,23,83,213,80,92,83,168,88,178,100,52,103,103,114,102,119,70,122,230,145,195,82,161,108,134,107,0,88,76,94,84,89,44,103,251,127,225,81,198,118,105,100,232,120,84,155,187,158,203,87,185,89,39,102,154,103,206,107,233,84,217,105,85,94,156,129,149,103,170,155,254,103,82,156,93,104,166,78,227,79,200,83,185,98,43,103,171,108,196,143,173,79,109,126,191,158,7,78,98,97,128,110,43,111,19,133,115,84,42,103,69,155,243,93,149,123,172,92,198,91,28,135,74,110,209,132,20,122,8,129,153,89,141,124,17,108,32,119,217,82,34,89,33,113,95,114,219,119,39,151,97,157,11,105,127,90,24,90,165,81,13,84,125,84,14,102,223,118,247,143,152,146,244,156,234,89,93,114,197,110,77,81,201,104,191,125,236,125,98,151,186,158,120,100,33,106,2,131,132,89,95,91,219,107,27,115,242,118,178,125,23,128,153,132,50,81,40,103,217,158,238,118,98,103,255,82,5,153,36,92,59,98,126,124,176,140,79,85,182,96,11,125,128,149,1,83,95,78,182,81,28,89,58,114,54,128,206,145,37,95,226,119,132,83,121,95,4,125,172,133,51,138,141,142,86,151,243,103,174,133,83,148,9,97,8,97,185,108,82,118,237,138,56,143,47,85,81,79,42,81,199,82,203,83,165,91,125,94,160,96,130,97,214,99,9,103,218,103,103,110,140,109,54,115,55,115,49,117,80,121,213,136,152,138,74,144,145,144,245,144,196,150,141,135,21,89,136,78,89,79,14,78,137,138,63,143,16,152,173,80,124,94,150,89,185,91,184,94,218,99,250,99,193,100,220,102,74,105,216,105,11,109,182,110,148,113,40,117,175,122,138,127,0,128,73,132,201,132,129,137,33,139,10,142,101,144,125,150,10,153,126,97,145,98,50,107,131,108,116,109,204,127,252,127,192,109,133,127,186,135,248,136,101,103,177,131,60,152,247,150,27,109,97,125,61,132,106,145,113,78,117,83,80,93,4,107,235,111,205,133,45,134,167,137,41,82,15,84,101,92,78,103,168,104,6,116,131,116,226,117,207,136,225,136,204,145,226,150,120,150,139,95,135,115,203,122,78,132,160,99,101,117,137,82,65,109,156,110,9,116,89,117,107,120,146,124,134,150,220,122,141,159,182,79,110,97,197,101,92,134,134,78,174,78,218,80,33,78,204,81,238,91,153,101,129,104,188,109,31,115,66,118,173,119,28,122,231,124,111,130,210,138,124,144,207,145,117,150,24,152,155,82,209,125,43,80,152,83,151,103,203,109,208,113,51,116,232,129,42,143,163,150,87,156,159,158,96,116,65,88,153,109,47,125,94,152,228,78,54,79,139,79,183,81,177,82,186,93,28,96,178,115,60,121,211,130,52,146,183,150,246,150,10,151,151,158,98,159,166,102,116,107,23,82,163,82,200,112,194,136,201,94,75,96,144,97,35,111,73,113,62,124,244,125,111,128,238,132,35,144,44,147,66,84,111,155,211,106,137,112,194,140,239,141,50,151,180,82,65,90,202,94,4,95,23,103,124,105,148,105,106,109,15,111,98,114,252,114,237,123,1,128,126,128,75,135,206,144,109,81,147,158,132,121,139,128,50,147,214,138,45,80,140,84,113,138,106,107,196,140,7,129,209,96,160,103,242,157,153,78,152,78,16,156,107,138,193,133,104,133,0,105,126,110,151,120,85,129,12,95,16,78,21,78,42,78,49,78,54,78,60,78,63,78,66,78,86,78,88,78,130,78,133,78,107,140,138,78,18,130,13,95,142,78,158,78,159,78,160,78,162,78,176,78,179,78,182,78,206,78,205,78,196,78,198,78,194,78,215,78,222,78,237,78,223,78,247,78,9,79,90,79,48,79,91,79,93,79,87,79,71,79,118,79,136,79,143,79,152,79,123,79,105,79,112,79,145,79,111,79,134,79,150,79,24,81,212,79,223,79,206,79,216,79,219,79,209,79,218,79,208,79,228,79,229,79,26,80,40,80,20,80,42,80,37,80,5,80,28,79,246,79,33,80,41,80,44,80,254,79,239,79,17,80,6,80,67,80,71,80,3,103,85,80,80,80,72,80,90,80,86,80,108,80,120,80,128,80,154,80,133,80,180,80,178,80,201,80,202,80,179,80,194,80,214,80,222,80,229,80,237,80,227,80,238,80,249,80,245,80,9,81,1,81,2,81,22,81,21,81,20,81,26,81,33,81,58,81,55,81,60,81,59,81,63,81,64,81,82,81,76,81,84,81,98,81,248,122,105,81,106,81,110,81,128,81,130,81,216,86,140,81,137,81,143,81,145,81,147,81,149,81,150,81,164,81,166,81,162,81,169,81,170,81,171,81,179,81,177,81,178,81,176,81,181,81,189,81,197,81,201,81,219,81,224,81,85,134,233,81,237,81,240,81,245,81,254,81,4,82,11,82,20,82,14,82,39,82,42,82,46,82,51,82,57,82,79,82,68,82,75,82,76,82,94,82,84,82,106,82,116,82,105,82,115,82,127,82,125,82,141,82,148,82,146,82,113,82,136,82,145,82,168,143,167,143,172,82,173,82,188,82,181,82,193,82,205,82,215,82,222,82,227,82,230,82,237,152,224,82,243,82,245,82,248,82,249,82,6,83,8,83,56,117,13,83,16,83,15,83,21,83,26,83,35,83,47,83,49,83,51,83,56,83,64,83,70,83,69,83,23,78,73,83,77,83,214,81,94,83,105,83,110,83,24,89,123,83,119,83,130,83,150,83,160,83,166,83,165,83,174,83,176,83,182,83,195,83,18,124,217,150,223,83,252,102,238,113,238,83,232,83,237,83,250,83,1,84,61,84,64,84,44,84,45,84,60,84,46,84,54,84,41,84,29,84,78,84,143,84,117,84,142,84,95,84,113,84,119,84,112,84,146,84,123,84,128,84,118,84,132,84,144,84,134,84,199,84,162,84,184,84,165,84,172,84,196,84,200,84,168,84,171,84,194,84,164,84,190,84,188,84,216,84,229,84,230,84,15,85,20,85,253,84,238,84,237,84,250,84,226,84,57,85,64,85,99,85,76,85,46,85,92,85,69,85,86,85,87,85,56,85,51,85,93,85,153,85,128,85,175,84,138,85,159,85,123,85,126,85,152,85,158,85,174,85,124,85,131,85,169,85,135,85,168,85,218,85,197,85,223,85,196,85,220,85,228,85,212,85,20,86,247,85,22,86,254,85,253,85,27,86,249,85,78,86,80,86,223,113,52,86,54,86,50,86,56,86,107,86,100,86,47,86,108,86,106,86,134,86,128,86,138,86,160,86,148,86,143,86,165,86,174,86,182,86,180,86,194,86,188,86,193,86,195,86,192,86,200,86,206,86,209,86,211,86,215,86,238,86,249,86,0,87,255,86,4,87,9,87,8,87,11,87,13,87,19,87,24,87,22,87,199,85,28,87,38,87,55,87,56,87,78,87,59,87,64,87,79,87,105,87,192,87,136,87,97,87,127,87,137,87,147,87,160,87,179,87,164,87,170,87,176,87,195,87,198,87,212,87,210,87,211,87,10,88,214,87,227,87,11,88,25,88,29,88,114,88,33,88,98,88,75,88,112,88,192,107,82,88,61,88,121,88,133,88,185,88,159,88,171,88,186,88,222,88,187,88,184,88,174,88,197,88,211,88,209,88,215,88,217,88,216,88,229,88,220,88,228,88,223,88,239,88,250,88,249,88,251,88,252,88,253,88,2,89,10,89,16,89,27,89,166,104,37,89,44,89,45,89,50,89,56,89,62,89,210,122,85,89,80,89,78,89,90,89,88,89,98,89,96,89,103,89,108,89,105,89,120,89,129,89,157,89,94,79,171,79,163,89,178,89,198,89,232,89,220,89,141,89,217,89,218,89,37,90,31,90,17,90,28,90,9,90,26,90,64,90,108,90,73,90,53,90,54,90,98,90,106,90,154,90,188,90,190,90,203,90,194,90,189,90,227,90,215,90,230,90,233,90,214,90,250,90,251,90,12,91,11,91,22,91,50,91,208,90,42,91,54,91,62,91,67,91,69,91,64,91,81,91,85,91,90,91,91,91,101,91,105,91,112,91,115,91,117,91,120,91,136,101,122,91,128,91,131,91,166,91,184,91,195,91,199,91,201,91,212,91,208,91,228,91,230,91,226,91,222,91,229,91,235,91,240,91,246,91,243,91,5,92,7,92,8,92,13,92,19,92,32,92,34,92,40,92,56,92,57,92,65,92,70,92,78,92,83,92,80,92,79,92,113,91,108,92,110,92,98,78,118,92,121,92,140,92,145,92,148,92,155,89,171,92,187,92,182,92,188,92,183,92,197,92,190,92,199,92,217,92,233,92,253,92,250,92,237,92,140,93,234,92,11,93,21,93,23,93,92,93,31,93,27,93,17,93,20,93,34,93,26,93,25,93,24,93,76,93,82,93,78,93,75,93,108,93,115,93,118,93,135,93,132,93,130,93,162,93,157,93,172,93,174,93,189,93,144,93,183,93,188,93,201,93,205,93,211,93,210,93,214,93,219,93,235,93,242,93,245,93,11,94,26,94,25,94,17,94,27,94,54,94,55,94,68,94,67,94,64,94,78,94,87,94,84,94,95,94,98,94,100,94,71,94,117,94,118,94,122,94,188,158,127,94,160,94,193,94,194,94,200,94,208,94,207,94,214,94,227,94,221,94,218,94,219,94,226,94,225,94,232,94,233,94,236,94,241,94,243,94,240,94,244,94,248,94,254,94,3,95,9,95,93,95,92,95,11,95,17,95,22,95,41,95,45,95,56,95,65,95,72,95,76,95,78,95,47,95,81,95,86,95,87,95,89,95,97,95,109,95,115,95,119,95,131,95,130,95,127,95,138,95,136,95,145,95,135,95,158,95,153,95,152,95,160,95,168,95,173,95,188,95,214,95,251,95,228,95,248,95,241,95,221,95,179,96,255,95,33,96,96,96,25,96,16,96,41,96,14,96,49,96,27,96,21,96,43,96,38,96,15,96,58,96,90,96,65,96,106,96,119,96,95,96,74,96,70,96,77,96,99,96,67,96,100,96,66,96,108,96,107,96,89,96,129,96,141,96,231,96,131,96,154,96,132,96,155,96,150,96,151,96,146,96,167,96,139,96,225,96,184,96,224,96,211,96,180,96,240,95,189,96,198,96,181,96,216,96,77,97,21,97,6,97,246,96,247,96,0,97,244,96,250,96,3,97,33,97,251,96,241,96,13,97,14,97,71,97,62,97,40,97,39,97,74,97,63,97,60,97,44,97,52,97,61,97,66,97,68,97,115,97,119,97,88,97,89,97,90,97,107,97,116,97,111,97,101,97,113,97,95,97,93,97,83,97,117,97,153,97,150,97,135,97,172,97,148,97,154,97,138,97,145,97,171,97,174,97,204,97,202,97,201,97,247,97,200,97,195,97,198,97,186,97,203,97,121,127,205,97,230,97,227,97,246,97,250,97,244,97,255,97,253,97,252,97,254,97,0,98,8,98,9,98,13,98,12,98,20,98,27,98,30,98,33,98,42,98,46,98,48,98,50,98,51,98,65,98,78,98,94,98,99,98,91,98,96,98,104,98,124,98,130,98,137,98,126,98,146,98,147,98,150,98,212,98,131,98,148,98,215,98,209,98,187,98,207,98,255,98,198,98,212,100,200,98,220,98,204,98,202,98,194,98,199,98,155,98,201,98,12,99,238,98,241,98,39,99,2,99,8,99,239,98,245,98,80,99,62,99,77,99,28,100,79,99,150,99,142,99,128,99,171,99,118,99,163,99,143,99,137,99,159,99,181,99,107,99,105,99,190,99,233,99,192,99,198,99,227,99,201,99,210,99,246,99,196,99,22,100,52,100,6,100,19,100,38,100,54,100,29,101,23,100,40,100,15,100,103,100,111,100,118,100,78,100,42,101,149,100,147,100,165,100,169,100,136,100,188,100,218,100,210,100,197,100,199,100,187,100,216,100,194,100,241,100,231,100,9,130,224,100,225,100,172,98,227,100,239,100,44,101,246,100,244,100,242,100,250,100,0,101,253,100,24,101,28,101,5,101,36,101,35,101,43,101,52,101,53,101,55,101,54,101,56,101,75,117,72,101,86,101,85,101,77,101,88,101,94,101,93,101,114,101,120,101,130,101,131,101,138,139,155,101,159,101,171,101,183,101,195,101,198,101,193,101,196,101,204,101,210,101,219,101,217,101,224,101,225,101,241,101,114,103,10,102,3,102,251,101,115,103,53,102,54,102,52,102,28,102,79,102,68,102,73,102,65,102,94,102,93,102,100,102,103,102,104,102,95,102,98,102,112,102,131,102,136,102,142,102,137,102,132,102,152,102,157,102,193,102,185,102,201,102,190,102,188,102,196,102,184,102,214,102,218,102,224,102,63,102,230,102,233,102,240,102,245,102,247,102,15,103,22,103,30,103,38,103,39,103,56,151,46,103,63,103,54,103,65,103,56,103,55,103,70,103,94,103,96,103,89,103,99,103,100,103,137,103,112,103,169,103,124,103,106,103,140,103,139,103,166,103,161,103,133,103,183,103,239,103,180,103,236,103,179,103,233,103,184,103,228,103,222,103,221,103,226,103,238,103,185,103,206,103,198,103,231,103,156,106,30,104,70,104,41,104,64,104,77,104,50,104,78,104,179,104,43,104,89,104,99,104,119,104,127,104,159,104,143,104,173,104,148,104,157,104,155,104,131,104,174,106,185,104,116,104,181,104,160,104,186,104,15,105,141,104,126,104,1,105,202,104,8,105,216,104,34,105,38,105,225,104,12,105,205,104,212,104,231,104,213,104,54,105,18,105,4,105,215,104,227,104,37,105,249,104,224,104,239,104,40,105,42,105,26,105,35,105,33,105,198,104,121,105,119,105,92,105,120,105,107,105,84,105,126,105,110,105,57,105,116,105,61,105,89,105,48,105,97,105,94,105,93,105,129,105,106,105,178,105,174,105,208,105,191,105,193,105,211,105,190,105,206,105,232,91,202,105,221,105,187,105,195,105,167,105,46,106,145,105,160,105,156,105,149,105,180,105,222,105,232,105,2,106,27,106,255,105,10,107,249,105,242,105,231,105,5,106,177,105,30,106,237,105,20,106,235,105,10,106,18,106,193,106,35,106,19,106,68,106,12,106,114,106,54,106,120,106,71,106,98,106,89,106,102,106,72,106,56,106,34,106,144,106,141,106,160,106,132,106,162,106,163,106,151,106,23,134,187,106,195,106,194,106,184,106,179,106,172,106,222,106,209,106,223,106,170,106,218,106,234,106,251,106,5,107,22,134,250,106,18,107,22,107,49,155,31,107,56,107,55,107,220,118,57,107,238,152,71,107,67,107,73,107,80,107,89,107,84,107,91,107,95,107,97,107,120,107,121,107,127,107,128,107,132,107,131,107,141,107,152,107,149,107,158,107,164,107,170,107,171,107,175,107,178,107,177,107,179,107,183,107,188,107,198,107,203,107,211,107,223,107,236,107,235,107,243,107,239,107,190,158,8,108,19,108,20,108,27,108,36,108,35,108,94,108,85,108,98,108,106,108,130,108,141,108,154,108,129,108,155,108,126,108,104,108,115,108,146,108,144,108,196,108,241,108,211,108,189,108,215,108,197,108,221,108,174,108,177,108,190,108,186,108,219,108,239,108,217,108,234,108,31,109,77,136,54,109,43,109,61,109,56,109,25,109,53,109,51,109,18,109,12,109,99,109,147,109,100,109,90,109,121,109,89,109,142,109,149,109,228,111,133,109,249,109,21,110,10,110,181,109,199,109,230,109,184,109,198,109,236,109,222,109,204,109,232,109,210,109,197,109,250,109,217,109,228,109,213,109,234,109,238,109,45,110,110,110,46,110,25,110,114,110,95,110,62,110,35,110,107,110,43,110,118,110,77,110,31,110,67,110,58,110,78,110,36,110,255,110,29,110,56,110,130,110,170,110,152,110,201,110,183,110,211,110,189,110,175,110,196,110,178,110,212,110,213,110,143,110,165,110,194,110,159,110,65,111,17,111,76,112,236,110,248,110,254,110,63,111,242,110,49,111,239,110,50,111,204,110,62,111,19,111,247,110,134,111,122,111,120,111,129,111,128,111,111,111,91,111,243,111,109,111,130,111,124,111,88,111,142,111,145,111,194,111,102,111,179,111,163,111,161,111,164,111,185,111,198,111,170,111,223,111,213,111,236,111,212,111,216,111,241,111,238,111,219,111,9,112,11,112,250,111,17,112,1,112,15,112,254,111,27,112,26,112,116,111,29,112,24,112,31,112,48,112,62,112,50,112,81,112,99,112,153,112,146,112,175,112,241,112,172,112,184,112,179,112,174,112,223,112,203,112,221,112,217,112,9,113,253,112,28,113,25,113,101,113,85,113,136,113,102,113,98,113,76,113,86,113,108,113,143,113,251,113,132,113,149,113,168,113,172,113,215,113,185,113,190,113,210,113,201,113,212,113,206,113,224,113,236,113,231,113,245,113,252,113,249,113,255,113,13,114,16,114,27,114,40,114,45,114,44,114,48,114,50,114,59,114,60,114,63,114,64,114,70,114,75,114,88,114,116,114,126,114,130,114,129,114,135,114,146,114,150,114,162,114,167,114,185,114,178,114,195,114,198,114,196,114,206,114,210,114,226,114,224,114,225,114,249,114,247,114,15,80,23,115,10,115,28,115,22,115,29,115,52,115,47,115,41,115,37,115,62,115,78,115,79,115,216,158,87,115,106,115,104,115,112,115,120,115,117,115,123,115,122,115,200,115,179,115,206,115,187,115,192,115,229,115,238,115,222,115,162,116,5,116,111,116,37,116,248,115,50,116,58,116,85,116,63,116,95,116,89,116,65,116,92,116,105,116,112,116,99,116,106,116,118,116,126,116,139,116,158,116,167,116,202,116,207,116,212,116,241,115,224,116,227,116,231,116,233,116,238,116,242,116,240,116,241,116,248,116,247,116,4,117,3,117,5,117,12,117,14,117,13,117,21,117,19,117,30,117,38,117,44,117,60,117,68,117,77,117,74,117,73,117,91,117,70,117,90,117,105,117,100,117,103,117,107,117,109,117,120,117,118,117,134,117,135,117,116,117,138,117,137,117,130,117,148,117,154,117,157,117,165,117,163,117,194,117,179,117,195,117,181,117,189,117,184,117,188,117,177,117,205,117,202,117,210,117,217,117,227,117,222,117,254,117,255,117,252,117,1,118,240,117,250,117,242,117,243,117,11,118,13,118,9,118,31,118,39,118,32,118,33,118,34,118,36,118,52,118,48,118,59,118,71,118,72,118,70,118,92,118,88,118,97,118,98,118,104,118,105,118,106,118,103,118,108,118,112,118,114,118,118,118,120,118,124,118,128,118,131,118,136,118,139,118,142,118,150,118,147,118,153,118,154,118,176,118,180,118,184,118,185,118,186,118,194,118,205,118,214,118,210,118,222,118,225,118,229,118,231,118,234,118,47,134,251,118,8,119,7,119,4,119,41,119,36,119,30,119,37,119,38,119,27,119,55,119,56,119,71,119,90,119,104,119,107,119,91,119,101,119,127,119,126,119,121,119,142,119,139,119,145,119,160,119,158,119,176,119,182,119,185,119,191,119,188,119,189,119,187,119,199,119,205,119,215,119,218,119,220,119,227,119,238,119,252,119,12,120,18,120,38,121,32,120,42,121,69,120,142,120,116,120,134,120,124,120,154,120,140,120,163,120,181,120,170,120,175,120,209,120,198,120,203,120,212,120,190,120,188,120,197,120,202,120,236,120,231,120,218,120,253,120,244,120,7,121,18,121,17,121,25,121,44,121,43,121,64,121,96,121,87,121,95,121,90,121,85,121,83,121,122,121,127,121,138,121,157,121,167,121,75,159,170,121,174,121,179,121,185,121,186,121,201,121,213,121,231,121,236,121,225,121,227,121,8,122,13,122,24,122,25,122,32,122,31,122,128,121,49,122,59,122,62,122,55,122,67,122,87,122,73,122,97,122,98,122,105,122,157,159,112,122,121,122,125,122,136,122,151,122,149,122,152,122,150,122,169,122,200,122,176,122,182,122,197,122,196,122,191,122,131,144,199,122,202,122,205,122,207,122,213,122,211,122,217,122,218,122,221,122,225,122,226,122,230,122,237,122,240,122,2,123,15,123,10,123,6,123,51,123,24,123,25,123,30,123,53,123,40,123,54,123,80,123,122,123,4,123,77,123,11,123,76,123,69,123,117,123,101,123,116,123,103,123,112,123,113,123,108,123,110,123,157,123,152,123,159,123,141,123,156,123,154,123,139,123,146,123,143,123,93,123,153,123,203,123,193,123,204,123,207,123,180,123,198,123,221,123,233,123,17,124,20,124,230,123,229,123,96,124,0,124,7,124,19,124,243,123,247,123,23,124,13,124,246,123,35,124,39,124,42,124,31,124,55,124,43,124,61,124,76,124,67,124,84,124,79,124,64,124,80,124,88,124,95,124,100,124,86,124,101,124,108,124,117,124,131,124,144,124,164,124,173,124,162,124,171,124,161,124,168,124,179,124,178,124,177,124,174,124,185,124,189,124,192,124,197,124,194,124,216,124,210,124,220,124,226,124,59,155,239,124,242,124,244,124,246,124,250,124,6,125,2,125,28,125,21,125,10,125,69,125,75,125,46,125,50,125,63,125,53,125,70,125,115,125,86,125,78,125,114,125,104,125,110,125,79,125,99,125,147,125,137,125,91,125,143,125,125,125,155,125,186,125,174,125,163,125,181,125,199,125,189,125,171,125,61,126,162,125,175,125,220,125,184,125,159,125,176,125,216,125,221,125,228,125,222,125,251,125,242,125,225,125,5,126,10,126,35,126,33,126,18,126,49,126,31,126,9,126,11,126,34,126,70,126,102,126,59,126,53,126,57,126,67,126,55,126,50,126,58,126,103,126,93,126,86,126,94,126,89,126,90,126,121,126,106,126,105,126,124,126,123,126,131,126,213,125,125,126,174,143,127,126,136,126,137,126,140,126,146,126,144,126,147,126,148,126,150,126,142,126,155,126,156,126,56,127,58,127,69,127,76,127,77,127,78,127,80,127,81,127,85,127,84,127,88,127,95,127,96,127,104,127,105,127,103,127,120,127,130,127,134,127,131,127,136,127,135,127,140,127,148,127,158,127,157,127,154,127,163,127,175,127,178,127,185,127,174,127,182,127,184,127,113,139,197,127,198,127,202,127,213,127,212,127,225,127,230,127,233,127,243,127,249,127,220,152,6,128,4,128,11,128,18,128,24,128,25,128,28,128,33,128,40,128,63,128,59,128,74,128,70,128,82,128,88,128,90,128,95,128,98,128,104,128,115,128,114,128,112,128,118,128,121,128,125,128,127,128,132,128,134,128,133,128,155,128,147,128,154,128,173,128,144,81,172,128,219,128,229,128,217,128,221,128,196,128,218,128,214,128,9,129,239,128,241,128,27,129,41,129,35,129,47,129,75,129,139,150,70,129,62,129,83,129,81,129,252,128,113,129,110,129,101,129,102,129,116,129,131,129,136,129,138,129,128,129,130,129,160,129,149,129,164,129,163,129,95,129,147,129,169,129,176,129,181,129,190,129,184,129,189,129,192,129,194,129,186,129,201,129,205,129,209,129,217,129,216,129,200,129,218,129,223,129,224,129,231,129,250,129,251,129,254,129,1,130,2,130,5,130,7,130,10,130,13,130,16,130,22,130,41,130,43,130,56,130,51,130,64,130,89,130,88,130,93,130,90,130,95,130,100,130,98,130,104,130,106,130,107,130,46,130,113,130,119,130,120,130,126,130,141,130,146,130,171,130,159,130,187,130,172,130,225,130,227,130,223,130,210,130,244,130,243,130,250,130,147,131,3,131,251,130,249,130,222,130,6,131,220,130,9,131,217,130,53,131,52,131,22,131,50,131,49,131,64,131,57,131,80,131,69,131,47,131,43,131,23,131,24,131,133,131,154,131,170,131,159,131,162,131,150,131,35,131,142,131,135,131,138,131,124,131,181,131,115,131,117,131,160,131,137,131,168,131,244,131,19,132,235,131,206,131,253,131,3,132,216,131,11,132,193,131,247,131,7,132,224,131,242,131,13,132,34,132,32,132,189,131,56,132,6,133,251,131,109,132,42,132,60,132,90,133,132,132,119,132,107,132,173,132,110,132,130,132,105,132,70,132,44,132,111,132,121,132,53,132,202,132,98,132,185,132,191,132,159,132,217,132,205,132,187,132,218,132,208,132,193,132,198,132,214,132,161,132,33,133,255,132,244,132,23,133,24,133,44,133,31,133,21,133,20,133,252,132,64,133,99,133,88,133,72,133,65,133,2,134,75,133,85,133,128,133,164,133,136,133,145,133,138,133,168,133,109,133,148,133,155,133,234,133,135,133,156,133,119,133,126,133,144,133,201,133,186,133,207,133,185,133,208,133,213,133,221,133,229,133,220,133,249,133,10,134,19,134,11,134,254,133,250,133,6,134,34,134,26,134,48,134,63,134,77,134,85,78,84,134,95,134,103,134,113,134,147,134,163,134,169,134,170,134,139,134,140,134,182,134,175,134,196,134,198,134,176,134,201,134,35,136,171,134,212,134,222,134,233,134,236,134,223,134,219,134,239,134,18,135,6,135,8,135,0,135,3,135,251,134,17,135,9,135,13,135,249,134,10,135,52,135,63,135,55,135,59,135,37,135,41,135,26,135,96,135,95,135,120,135,76,135,78,135,116,135,87,135,104,135,110,135,89,135,83,135,99,135,106,135,5,136,162,135,159,135,130,135,175,135,203,135,189,135,192,135,208,135,214,150,171,135,196,135,179,135,199,135,198,135,187,135,239,135,242,135,224,135,15,136,13,136,254,135,246,135,247,135,14,136,210,135,17,136,22,136,21,136,34,136,33,136,49,136,54,136,57,136,39,136,59,136,68,136,66,136,82,136,89,136,94,136,98,136,107,136,129,136,126,136,158,136,117,136,125,136,181,136,114,136,130,136,151,136,146,136,174,136,153,136,162,136,141,136,164,136,176,136,191,136,177,136,195,136,196,136,212,136,216,136,217,136,221,136,249,136,2,137,252,136,244,136,232,136,242,136,4,137,12,137,10,137,19,137,67,137,30,137,37,137,42,137,43,137,65,137,68,137,59,137,54,137,56,137,76,137,29,137,96,137,94,137,102,137,100,137,109,137,106,137,111,137,116,137,119,137,126,137,131,137,136,137,138,137,147,137,152,137,161,137,169,137,166,137,172,137,175,137,178,137,186,137,189,137,191,137,192,137,218,137,220,137,221,137,231,137,244,137,248,137,3,138,22,138,16,138,12,138,27,138,29,138,37,138,54,138,65,138,91,138,82,138,70,138,72,138,124,138,109,138,108,138,98,138,133,138,130,138,132,138,168,138,161,138,145,138,165,138,166,138,154,138,163,138,196,138,205,138,194,138,218,138,235,138,243,138,231,138,228,138,241,138,20,139,224,138,226,138,247,138,222,138,219,138,12,139,7,139,26,139,225,138,22,139,16,139,23,139,32,139,51,139,171,151,38,139,43,139,62,139,40,139,65,139,76,139,79,139,78,139,73,139,86,139,91,139,90,139,107,139,95,139,108,139,111,139,116,139,125,139,128,139,140,139,142,139,146,139,147,139,150,139,153,139,154,139,58,140,65,140,63,140,72,140,76,140,78,140,80,140,85,140,98,140,108,140,120,140,122,140,130,140,137,140,133,140,138,140,141,140,142,140,148,140,124,140,152,140,29,98,173,140,170,140,189,140,178,140,179,140,174,140,182,140,200,140,193,140,228,140,227,140,218,140,253,140,250,140,251,140,4,141,5,141,10,141,7,141,15,141,13,141,16,141,78,159,19,141,205,140,20,141,22,141,103,141,109,141,113,141,115,141,129,141,153,141,194,141,190,141,186,141,207,141,218,141,214,141,204,141,219,141,203,141,234,141,235,141,223,141,227,141,252,141,8,142,9,142,255,141,29,142,30,142,16,142,31,142,66,142,53,142,48,142,52,142,74,142,71,142,73,142,76,142,80,142,72,142,89,142,100,142,96,142,42,142,99,142,85,142,118,142,114,142,124,142,129,142,135,142,133,142,132,142,139,142,138,142,147,142,145,142,148,142,153,142,170,142,161,142,172,142,176,142,198,142,177,142,190,142,197,142,200,142,203,142,219,142,227,142,252,142,251,142,235,142,254,142,10,143,5,143,21,143,18,143,25,143,19,143,28,143,31,143,27,143,12,143,38,143,51,143,59,143,57,143,69,143,66,143,62,143,76,143,73,143,70,143,78,143,87,143,92,143,98,143,99,143,100,143,156,143,159,143,163,143,173,143,175,143,183,143,218,143,229,143,226,143,234,143,239,143,135,144,244,143,5,144,249,143,250,143,17,144,21,144,33,144,13,144,30,144,22,144,11,144,39,144,54,144,53,144,57,144,248,143,79,144,80,144,81,144,82,144,14,144,73,144,62,144,86,144,88,144,94,144,104,144,111,144,118,144,168,150,114,144,130,144,125,144,129,144,128,144,138,144,137,144,143,144,168,144,175,144,177,144,181,144,226,144,228,144,72,98,219,144,2,145,18,145,25,145,50,145,48,145,74,145,86,145,88,145,99,145,101,145,105,145,115,145,114,145,139,145,137,145,130,145,162,145,171,145,175,145,170,145,181,145,180,145,186,145,192,145,193,145,201,145,203,145,208,145,214,145,223,145,225,145,219,145,252,145,245,145,246,145,30,146,255,145,20,146,44,146,21,146,17,146,94,146,87,146,69,146,73,146,100,146,72,146,149,146,63,146,75,146,80,146,156,146,150,146,147,146,155,146,90,146,207,146,185,146,183,146,233,146,15,147,250,146,68,147,46,147,25,147,34,147,26,147,35,147,58,147,53,147,59,147,92,147,96,147,124,147,110,147,86,147,176,147,172,147,173,147,148,147,185,147,214,147,215,147,232,147,229,147,216,147,195,147,221,147,208,147,200,147,228,147,26,148,20,148,19,148,3,148,7,148,16,148,54,148,43,148,53,148,33,148,58,148,65,148,82,148,68,148,91,148,96,148,98,148,94,148,106,148,41,146,112,148,117,148,119,148,125,148,90,148,124,148,126,148,129,148,127,148,130,149,135,149,138,149,148,149,150,149,152,149,153,149,160,149,168,149,167,149,173,149,188,149,187,149,185,149,190,149,202,149,246,111,195,149,205,149,204,149,213,149,212,149,214,149,220,149,225,149,229,149,226,149,33,150,40,150,46,150,47,150,66,150,76,150,79,150,75,150,119,150,92,150,94,150,93,150,95,150,102,150,114,150,108,150,141,150,152,150,149,150,151,150,170,150,167,150,177,150,178,150,176,150,180,150,182,150,184,150,185,150,206,150,203,150,201,150,205,150,77,137,220,150,13,151,213,150,249,150,4,151,6,151,8,151,19,151,14,151,17,151,15,151,22,151,25,151,36,151,42,151,48,151,57,151,61,151,62,151,68,151,70,151,72,151,66,151,73,151,92,151,96,151,100,151,102,151,104,151,210,82,107,151,113,151,121,151,133,151,124,151,129,151,122,151,134,151,139,151,143,151,144,151,156,151,168,151,166,151,163,151,179,151,180,151,195,151,198,151,200,151,203,151,220,151,237,151,79,159,242,151,223,122,246,151,245,151,15,152,12,152,56,152,36,152,33,152,55,152,61,152,70,152,79,152,75,152,107,152,111,152,112,152,113,152,116,152,115,152,170,152,175,152,177,152,182,152,196,152,195,152,198,152,233,152,235,152,3,153,9,153,18,153,20,153,24,153,33,153,29,153,30,153,36,153,32,153,44,153,46,153,61,153,62,153,66,153,73,153,69,153,80,153,75,153,81,153,82,153,76,153,85,153,151,153,152,153,165,153,173,153,174,153,188,153,223,153,219,153,221,153,216,153,209,153,237,153,238,153,241,153,242,153,251,153,248,153,1,154,15,154,5,154,226,153,25,154,43,154,55,154,69,154,66,154,64,154,67,154,62,154,85,154,77,154,91,154,87,154,95,154,98,154,101,154,100,154,105,154,107,154,106,154,173,154,176,154,188,154,192,154,207,154,209,154,211,154,212,154,222,154,223,154,226,154,227,154,230,154,239,154,235,154,238,154,244,154,241,154,247,154,251,154,6,155,24,155,26,155,31,155,34,155,35,155,37,155,39,155,40,155,41,155,42,155,46,155,47,155,50,155,68,155,67,155,79,155,77,155,78,155,81,155,88,155,116,155,147,155,131,155,145,155,150,155,151,155,159,155,160,155,168,155,180,155,192,155,202,155,185,155,198,155,207,155,209,155,210,155,227,155,226,155,228,155,212,155,225,155,58,156,242,155,241,155,240,155,21,156,20,156,9,156,19,156,12,156,6,156,8,156,18,156,10,156,4,156,46,156,27,156,37,156,36,156,33,156,48,156,71,156,50,156,70,156,62,156,90,156,96,156,103,156,118,156,120,156,231,156,236,156,240,156,9,157,8,157,235,156,3,157,6,157,42,157,38,157,175,157,35,157,31,157,68,157,21,157,18,157,65,157,63,157,62,157,70,157,72,157,93,157,94,157,100,157,81,157,80,157,89,157,114,157,137,157,135,157,171,157,111,157,122,157,154,157,164,157,169,157,178,157,196,157,193,157,187,157,184,157,186,157,198,157,207,157,194,157,217,157,211,157,248,157,230,157,237,157,239,157,253,157,26,158,27,158,30,158,117,158,121,158,125,158,129,158,136,158,139,158,140,158,146,158,149,158,145,158,157,158,165,158,169,158,184,158,170,158,173,158,97,151,204,158,206,158,207,158,208,158,212,158,220,158,222,158,221,158,224,158,229,158,232,158,239,158,244,158,246,158,247,158,249,158,251,158,252,158,253,158,7,159,8,159,183,118,21,159,33,159,44,159,62,159,74,159,82,159,84,159,99,159,95,159,96,159,97,159,102,159,103,159,108,159,106,159,119,159,114,159,118,159,149,159,156,159,160,159,47,88,199,105,89,144,100,116,220,81,153,113,0,0,2,0,56,0,65,0,67,0,1,0,170,170,170,170,170,170,38,141,1,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,72,0,0,0,72,1,0,0,136,103,1,0,136,103,1,0,112,112,1,0,112,112,1,0,108,114,1,0,108,114,1,0,14,141,1,0,25,0,0,0,22,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,94,249,250,251,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,254,255,50,105,114,84,1,0,192,8,75,21,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,97,0,105,0,113,0,121,0,48,0,129,0,137,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,147,0,48,0,48,0,48,0,155,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,163,0,171,0,179,0,187,0,195,0,203,0,211,0,219,0,227,0,235,0,243,0,251,0,3,1,11,1,19,1,27,1,35,1,43,1,51,1,59,1,67,1,74,1,82,1,90,1,98,1,106,1,114,1,122,1,130,1,138,1,146,1,154,1,162,1,170,1,178,1,186,1,194,1,202,1,210,1,218,1,226,1,234,1,242,1,250,1,2,2,10,2,18,2,26,2,34,2,42,2,50,2,58,2,66,2,74,2,82,2,90,2,98,2,104,2,112,2,120,2,128,2,136,2,143,2,151,2,159,2,166,2,174,2,181,2,189,2,197,2,205,2,213,2,221,2,229,2,237,2,245,2,253,2,5,3,13,3,21,3,29,3,37,3,45,3,53,3,61,3,69,3,77,3,85,3,93,3,101,3,109,3,117,3,125,3,133,3,141,3,149,3,157,3,165,3,173,3,181,3,189,3,196,3,204,3,212,3,219,3,227,3,235,3,243,3,251,3,3,4,11,4,19,4,27,4,35,4,43,4,51,4,58,4,66,4,74,4,82,4,90,4,98,4,104,4,112,4,120,4,128,4,136,4,144,4,152,4,160,4,168,4,176,4,184,4,192,4,200,4,208,4,216,4,224,4,232,4,240,4,248,4,0,5,8,5,16,5,24,5,32,5,40,5,48,5,56,5,64,5,72,5,80,5,88,5,96,5,104,5,112,5,120,5,127,5,135,5,143,5,151,5,159,5,167,5,175,5,183,5,191,5,199,5,207,5,215,5,223,5,231,5,239,5,247,5,255,5,7,6,15,6,22,6,30,6,38,6,45,6,53,6,61,6,69,6,77,6,85,6,93,6,101,6,109,6,117,6,125,6,133,6,141,6,149,6,157,6,165,6,173,6,181,6,189,6,197,6,205,6,213,6,221,6,229,6,237,6,245,6,253,6,5,7,13,7,21,7,29,7,37,7,45,7,53,7,61,7,69,7,77,7,85,7,93,7,101,7,109,7,117,7,125,7,133,7,141,7,149,7,157,7,165,7,173,7,181,7,189,7,197,7,205,7,212,7,220,7,228,7,236,7,244,7,252,7,4,8,12,8,18,8,26,8,34,8,42,8,50,8,58,8,66,8,74,8,80,8,88,8,96,8,104,8,111,8,119,8,127,8,135,8,142,8,150,8,158,8,166,8,174,8,182,8,190,8,198,8,206,8,214,8,222,8,230,8,238,8,246,8,254,8,6,9,14,9,22,9,30,9,38,9,46,9,53,9,60,9,68,9,76,9,84,9,92,9,100,9,108,9,116,9,124,9,132,9,140,9,147,9,155,9,163,9,171,9,179,9,187,9,195,9,203,9,211,9,219,9,227,9,234,9,240,9,248,9,0,10,8,10,16,10,24,10,32,10,40,10,48,10,56,10,64,10,72,10,80,10,88,10,96,10,104,10,112,10,120,10,128,10,136,10,144,10,152,10,160,10,168,10,175,10,183,10,191,10,199,10,207,10,215,10,223,10,231,10,239,10,247,10,255,10,7,11,15,11,23,11,31,11,39,11,47,11,55,11,62,11,70,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,141,11,149,11,157,11,165,11,173,11,181,11,189,11,197,11,205,11,212,11,220,11,227,11,235,11,243,11,251,11,3,12,11,12,19,12,27,12,35,12,43,12,51,12,59,12,67,12,75,12,83,12,91,12,99,12,107,12,115,12,123,12,131,12,139,12,147,12,155,12,163,12,48,0,48,0,48,0,48,0,171,12,178,12,186,12,194,12,202,12,210,12,218,12,226,12,234,12,242,12,250,12,2,13,10,13,18,13,26,13,34,13,42,13,50,13,58,13,66,13,74,13,82,13,90,13,98,13,106,13,114,13,122,13,130,13,138,13,146,13,154,13,162,13,170,13,178,13,185,13,193,13,201,13,209,13,217,13,225,13,233,13,241,13,249,13,1,14,9,14,17,14,24,14,32,14,40,14,48,14,56,14,64,14,72,14,80,14,88,14,96,14,104,14,112,14,120,14,127,14,135,14,142,14,150,14,158,14,166,14,174,14,182,14,190,14,198,14,206,14,214,14,222,14,230,14,238,14,246,14,254,14,6,15,14,15,22,15,30,15,38,15,46,15,54,15,62,15,70,15,78,15,86,15,94,15,102,15,110,15,118,15,126,15,134,15,142,15,150,15,158,15,166,15,174,15,182,15,190,15,48,0,48,0,48,0,48,0,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,48,0,48,0,4,16,12,16,20,16,28,16,36,16,44,16,52,16,60,16,68,16,76,16,84,16,92,16,100,16,108,16,116,16,124,16,132,16,134,16,142,16,150,16,158,16,166,16,174,16,182,16,190,16,198,16,206,16,214,16,222,16,230,16,237,16,243,16,251,16,3,17,11,17,19,17,27,17,35,17,43,17,51,17,59,17,67,17,75,17,82,17,89,17,97,17,105,17,112,17,120,17,128,17,135,17,143,17,151,17,159,17,167,17,175,17,183,17,191,17,48,0,48,0,48,0,48,0,48,0,48,0,194,17,202,17,210,17,218,17,226,17,228,17,236,17,244,17,252,17,4,18,12,18,20,18,28,18,36,18,44,18,52,18,60,18,68,18,76,18,84,18,92,18,100,18,108,18,116,18,124,18,48,0,130,18,138,18,146,18,154,18,162,18,170,18,48,0,176,18,183,18,191,18,199,18,207,18,214,18,222,18,230,18,48,0,236,18,244,18,252,18,3,19,11,19,19,19,26,19,34,19,42,19,50,19,58,19,65,19,73,19,81,19,89,19,48,0,48,0,48,0,96,19,104,19,112,19,120,19,128,19,135,19,142,19,150,19,157,19,165,19,48,0,48,0,173,19,181,19,189,19,197,19,205,19,213,19,221,19,229,19,237,19,243,19,251,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,58,21,88,0,48,0,48,0,80,0,80,0,80,0,66,21,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,3,20,11,20,19,20,27,20,35,20,43,20,51,20,59,20,67,20,75,20,83,20,91,20,99,20,107,20,115,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,123,20,16,0,131,20,139,20,147,20,155,20,163,20,171,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,179,20,187,20,195,20,203,20,211,20,219,20,227,20,235,20,243,20,251,20,3,21,11,21,19,21,27,21,34,21,42,21,50,21,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,13,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,14,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,14,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,200,0,0,0,200,32,63,0,197,162,13,0,192,0,0,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,198,33,1,0,198,65,1,0,198,98,1,0,198,161,1,0,198,194,1,0,198,1,2,0,198,34,2,0,198,97,2,0,198,130,2,0,198,193,2,0,198,226,2,0,198,33,3,0,198,66,3,0,198,129,3,0,198,162,3,0,198,225,3,0,198,2,4,0,198,65,4,0,198,98,4,0,198,161,4,0,198,194,4,0,198,1,5,0,198,34,5,0,198,97,5,0,198,130,5,0,198,193,5,0,198,225,5,0,198,2,6,0,198,65,6,0,198,98,6,0,198,161,6,0,198,194,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,194,7,0,198,2,8,0,198,65,8,0,198,98,8,0,198,162,8,0,198,225,8,0,198,2,9,0,198,66,9,0,198,129,9,0,198,162,9,0,198,226,9,0,198,33,10,0,198,66,10,0,198,130,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,97,11,0,198,129,11,0,198,161,11,0,198,193,11,0,198,225,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,193,12,0,198,225,12,0,198,1,13,0,198,33,13,0,198,65,13,0,198,97,13,0,198,130,13,0,198,193,13,0,198,225,13,0,198,2,14,0,198,66,14,0,198,130,14,0,198,194,14,0,192,0,0,0,200,0,113,0,200,224,3,1,200,0,87,1,198,66,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,5,5,8,121,5,5,183,121,5,5,10,121,5,5,187,121,5,5,189,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,52,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,66,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,193,247,101,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,13,5,5,123,13,5,5,122,13,5,5,121,13,192,0,0,0,5,5,0,202,5,5,254,232,192,0,0,0,5,5,37,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,235,5,5,18,231,5,5,190,229,5,5,17,231,5,5,118,226,192,0,0,0,5,5,18,235,5,5,119,236,192,0,0,0,5,5,75,237,5,5,11,226,192,0,0,0,192,0,0,0,5,5,8,227,5,5,76,237,5,5,140,231,5,5,41,238,5,5,172,227,5,5,86,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,231,192,0,0,0,192,0,0,0,5,5,212,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,237,192,0,0,0,192,0,0,0,5,5,234,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,237,5,5,48,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,237,192,0,0,0,5,5,85,227,5,5,180,232,192,0,0,0,5,5,85,230,5,5,80,237,192,0,0,0,192,0,0,0,5,5,81,237,192,0,0,0,192,0,0,0,5,5,82,237,5,5,53,234,192,0,0,0,5,5,173,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,234,192,0,0,0,5,5,5,234,5,5,181,228,5,5,173,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,246,5,5,83,237,5,5,20,231,5,5,84,237,5,5,111,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,228,5,5,226,228,5,5,67,236,192,0,0,0,192,0,0,0,5,5,135,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,236,192,0,0,0,5,5,31,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,227,192,0,0,0,5,5,139,227,192,0,0,0,5,5,85,237,192,0,0,0,192,0,0,0,5,5,86,237,5,5,209,236,192,0,0,0,5,5,117,236,5,5,48,232,5,5,88,237,5,5,6,230,5,5,21,234,192,0,0,0,5,5,91,237,192,0,0,0,192,0,0,0,5,5,26,226,5,5,209,228,192,0,0,0,5,5,208,228,5,5,0,196,192,0,0,0,192,0,0,0,5,5,65,237,5,5,64,237,192,0,0,0,5,5,99,229,5,5,0,127,192,0,0,0,5,5,92,237,5,5,93,237,5,5,94,237,5,5,174,235,5,5,95,237,192,0,0,0,5,5,228,228,5,5,0,197,5,5,236,235,192,0,0,0,5,5,210,227,192,0,0,0,192,0,0,0,5,5,211,227,5,5,212,227,5,5,70,233,5,5,210,236,192,0,0,0,5,5,96,237,192,0,0,0,192,0,0,0,5,5,97,237,192,0,0,0,192,0,0,0,5,5,98,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,230,5,5,88,231,5,5,103,237,192,0,0,0,5,5,101,237,192,0,0,0,5,5,102,237,5,5,174,227,192,0,0,0,192,0,0,0,5,5,83,229,5,5,170,226,192,0,0,0,5,5,100,237,5,5,99,237,5,5,69,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,229,5,5,211,229,5,5,100,232,5,5,104,237,5,5,19,235,5,5,207,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,237,5,5,107,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,232,5,5,247,236,5,5,0,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,237,5,5,120,226,192,0,0,0,5,5,248,227,192,0,0,0,5,5,235,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,228,5,5,108,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,237,5,5,0,169,192,0,0,0,192,0,0,0,5,5,210,228,5,5,100,227,5,5,56,235,5,5,144,234,5,5,175,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,226,192,0,0,0,5,5,144,237,5,5,131,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,234,5,5,111,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,234,192,0,0,0,5,5,248,236,192,0,0,0,5,5,55,231,192,0,0,0,5,5,213,229,192,0,0,0,5,5,7,230,5,5,122,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,233,192,0,0,0,192,0,0,0,5,5,166,232,5,5,115,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,170,5,5,71,233,5,5,135,230,5,5,100,229,5,5,92,236,192,0,0,0,5,5,116,232,192,0,0,0,5,5,121,226,192,0,0,0,5,5,114,237,192,0,0,0,5,5,118,236,5,5,110,237,5,5,112,237,5,5,158,229,5,5,113,237,5,5,39,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,237,5,5,122,237,192,0,0,0,192,0,0,0,5,5,124,226,192,0,0,0,5,5,87,235,5,5,116,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,237,5,5,229,228,192,0,0,0,192,0,0,0,5,5,214,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,5,5,125,237,192,0,0,0,5,5,117,237,192,0,0,0,192,0,0,0,5,5,249,236,192,0,0,0,5,5,8,230,192,0,0,0,5,5,118,237,192,0,0,0,5,5,123,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,237,192,0,0,0,5,5,119,237,192,0,0,0,192,0,0,0,5,5,213,227,192,0,0,0,5,5,0,171,192,0,0,0,192,0,0,0,5,5,214,227,5,5,123,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,239,192,0,0,0,5,5,243,235,5,5,44,235,5,5,230,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,231,5,5,205,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,235,192,0,0,0,192,0,0,0,5,5,76,228,5,5,75,232,5,5,158,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,237,192,0,0,0,5,5,135,237,5,5,133,237,192,0,0,0,192,0,0,0,5,5,128,237,192,0,0,0,192,0,0,0,5,5,85,232,5,5,131,237,192,0,0,0,5,5,134,237,5,5,132,237,192,0,0,0,5,5,121,235,192,0,0,0,5,5,129,237,192,0,0,0,5,5,56,231,192,0,0,0,5,5,237,235,5,5,136,237,5,5,137,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,230,5,5,150,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,5,5,242,234,5,5,145,237,192,0,0,0,5,5,140,235,192,0,0,0,5,5,112,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,237,5,5,152,237,192,0,0,0,192,0,0,0,5,5,26,232,192,0,0,0,5,5,182,228,192,0,0,0,5,5,92,234,192,0,0,0,5,5,92,243,192,0,0,0,5,5,151,237,5,5,159,233,192,0,0,0,5,5,140,237,192,0,0,0,5,5,232,228,192,0,0,0,192,0,0,0,5,5,231,228,5,5,138,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,230,192,0,0,0,5,5,146,237,192,0,0,0,5,5,139,235,5,5,209,232,5,5,142,237,5,5,133,228,192,0,0,0,5,5,139,237,5,5,147,237,5,5,141,237,5,5,231,236,5,5,148,237,5,5,55,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,228,192,0,0,0,192,0,0,0,5,5,132,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,237,5,5,158,237,5,5,0,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,235,5,5,157,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,237,5,5,160,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,237,192,0,0,0,5,5,72,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,230,192,0,0,0,5,5,76,232,5,5,73,233,5,5,44,228,192,0,0,0,5,5,162,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,227,192,0,0,0,192,0,0,0,5,5,163,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,229,5,5,213,234,5,5,164,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,229,5,5,123,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,237,5,5,170,237,5,5,166,237,5,5,116,229,192,0,0,0,5,5,201,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,237,192,0,0,0,192,0,0,0,5,5,5,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,237,5,5,169,237,192,0,0,0,192,0,0,0,5,5,207,233,192,0,0,0,5,5,68,232,192,0,0,0,5,5,215,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,235,5,5,172,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,237,192,0,0,0,5,5,174,237,192,0,0,0,5,5,22,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,237,5,5,177,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,237,192,0,0,0,5,5,100,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,227,5,5,181,237,5,5,182,237,192,0,0,0,5,5,105,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,230,192,0,0,0,5,5,185,237,5,5,184,237,5,5,183,237,192,0,0,0,5,5,127,237,192,0,0,0,5,5,186,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,230,192,0,0,0,5,5,187,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,237,192,0,0,0,192,0,0,0,5,5,188,237,5,5,191,237,5,5,190,237,192,0,0,0,192,0,0,0,5,5,192,237,5,5,193,237,5,5,0,210,192,0,0,0,5,5,167,228,5,5,79,228,5,5,136,230,5,5,255,232,5,5,216,227,5,5,208,231,5,5,233,228,192,0,0,0,5,5,64,229,5,5,195,237,5,5,34,236,5,5,136,233,192,0,0,0,5,5,9,230,192,0,0,0,5,5,194,237,192,0,0,0,5,5,196,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,233,192,0,0,0,5,5,15,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,237,192,0,0,0,192,0,0,0,5,5,32,234,192,0,0,0,192,0,0,0,5,5,250,231,5,5,199,237,5,5,200,237,5,5,138,234,5,5,234,228,5,5,49,237,5,5,201,237,192,0,0,0,192,0,0,0,5,5,218,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,235,5,5,92,232,5,5,39,228,5,5,119,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,237,192,0,0,0,5,5,203,237,192,0,0,0,192,0,0,0,5,5,4,234,5,5,59,226,192,0,0,0,192,0,0,0,5,5,206,237,5,5,173,229,192,0,0,0,5,5,205,237,5,5,118,229,192,0,0,0,5,5,207,237,5,5,187,245,5,5,208,237,5,5,187,235,5,5,209,237,192,0,0,0,5,5,210,237,5,5,211,237,5,5,21,231,192,0,0,0,5,5,58,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,227,192,0,0,0,5,5,214,237,192,0,0,0,5,5,212,237,5,5,23,236,5,5,213,237,192,0,0,0,5,5,24,235,5,5,215,237,5,5,216,237,5,5,217,237,5,5,161,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,237,5,5,219,237,5,5,220,237,5,5,218,237,5,5,147,229,5,5,222,237,5,5,68,236,5,5,250,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,231,5,5,224,237,5,5,166,230,192,0,0,0,192,0,0,0,5,5,225,237,192,0,0,0,5,5,2,233,5,5,213,236,5,5,162,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,237,5,5,160,250,5,5,249,227,192,0,0,0,192,0,0,0,5,5,227,237,5,5,216,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,230,5,5,162,232,192,0,0,0,5,5,229,237,5,5,6,234,192,0,0,0,192,0,0,0,5,5,230,237,192,0,0,0,192,0,0,0,5,5,231,237,5,5,198,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,237,5,5,219,227,192,0,0,0,5,5,236,233,5,5,86,226,5,5,156,230,192,0,0,0,192,0,0,0,5,5,127,234,5,5,233,237,192,0,0,0,5,5,163,233,192,0,0,0,192,0,0,0,5,5,89,231,5,5,234,237,192,0,0,0,5,5,72,235,5,5,194,231,5,5,26,227,192,0,0,0,5,5,33,227,5,5,235,237,192,0,0,0,192,0,0,0,5,5,237,237,192,0,0,0,192,0,0,0,5,5,78,228,192,0,0,0,192,0,0,0,5,5,236,237,192,0,0,0,192,0,0,0,5,5,11,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,234,5,5,104,235,192,0,0,0,5,5,238,237,192,0,0,0,5,5,176,236,5,5,239,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,237,192,0,0,0,5,5,192,233,192,0,0,0,192,0,0,0,5,5,241,237,192,0,0,0,192,0,0,0,5,5,145,231,5,5,174,229,5,5,136,228,5,5,242,237,5,5,215,229,5,5,65,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,233,5,5,244,237,192,0,0,0,192,0,0,0,5,5,77,232,192,0,0,0,192,0,0,0,5,5,159,229,5,5,245,237,5,5,246,237,5,5,246,231,192,0,0,0,5,5,243,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,237,192,0,0,0,5,5,176,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,229,192,0,0,0,192,0,0,0,5,5,247,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,228,5,5,142,229,5,5,109,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,237,5,5,249,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,235,5,5,22,231,5,5,4,238,5,5,252,226,5,5,252,237,5,5,250,237,5,5,23,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,237,192,0,0,0,5,5,253,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,228,5,5,5,238,5,5,195,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,238,5,5,3,238,192,0,0,0,5,5,2,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,228,5,5,125,226,192,0,0,0,192,0,0,0,5,5,12,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,230,5,5,154,233,5,5,55,229,5,5,9,238,5,5,10,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,236,192,0,0,0,192,0,0,0,5,5,33,237,5,5,12,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,228,192,0,0,0,192,0,0,0,5,5,11,238,192,0,0,0,5,5,199,226,192,0,0,0,192,0,0,0,5,5,13,238,192,0,0,0,5,5,208,235,192,0,0,0,5,5,32,233,192,0,0,0,5,5,94,236,192,0,0,0,5,5,117,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,249,192,0,0,0,192,0,0,0,5,5,208,233,192,0,0,0,5,5,15,238,5,5,34,227,5,5,13,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,230,5,5,16,238,5,5,131,235,5,5,20,238,192,0,0,0,5,5,146,231,5,5,17,238,5,5,6,228,192,0,0,0,5,5,18,238,5,5,35,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,228,5,5,21,238,192,0,0,0,5,5,22,238,192,0,0,0,192,0,0,0,5,5,23,238,5,5,24,238,5,5,73,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,228,5,5,56,236,192,0,0,0,5,5,66,236,5,5,25,234,192,0,0,0,192,0,0,0,5,5,141,235,5,5,25,238,192,0,0,0,5,5,26,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,238,192,0,0,0,5,5,30,238,5,5,29,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,238,5,5,119,226,5,5,198,235,192,0,0,0,5,5,172,229,5,5,32,238,192,0,0,0,192,0,0,0,5,5,33,232,192,0,0,0,192,0,0,0,5,5,204,230,5,5,221,227,192,0,0,0,5,5,33,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,238,192,0,0,0,5,5,35,238,192,0,0,0,5,5,36,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,238,5,5,224,234,5,5,30,228,5,5,0,195,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,233,5,5,38,238,5,5,137,230,192,0,0,0,5,5,209,231,192,0,0,0,5,5,40,238,5,5,39,238,5,5,205,230,5,5,211,228,5,5,42,238,5,5,156,234,192,0,0,0,192,0,0,0,5,5,43,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,234,5,5,90,232,5,5,148,232,5,5,220,227,192,0,0,0,192,0,0,0,5,5,16,234,5,5,181,232,192,0,0,0,5,5,110,234,192,0,0,0,5,5,200,235,192,0,0,0,5,5,45,238,192,0,0,0,5,5,210,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,228,192,0,0,0,192,0,0,0,5,5,46,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,238,5,5,8,226,5,5,0,211,5,5,101,227,192,0,0,0,5,5,78,232,5,5,167,227,5,5,169,236,192,0,0,0,5,5,50,238,5,5,113,226,192,0,0,0,192,0,0,0,5,5,49,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,227,192,0,0,0,192,0,0,0,5,5,51,238,192,0,0,0,5,5,75,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,238,192,0,0,0,5,5,232,236,192,0,0,0,5,5,238,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,228,5,5,53,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,238,5,5,54,238,192,0,0,0,5,5,105,231,5,5,21,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,226,5,5,56,238,192,0,0,0,5,5,57,238,192,0,0,0,192,0,0,0,5,5,169,228,192,0,0,0,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,229,5,5,59,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,235,5,5,101,229,5,5,176,227,5,5,95,236,5,5,24,232,5,5,157,234,5,5,107,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,230,192,0,0,0,5,5,86,230,5,5,99,230,192,0,0,0,5,5,194,230,192,0,0,0,5,5,158,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,238,192,0,0,0,5,5,31,226,5,5,25,232,5,5,239,228,5,5,183,228,5,5,29,228,192,0,0,0,192,0,0,0,5,5,66,238,5,5,165,232,5,5,164,232,5,5,223,227,5,5,206,230,5,5,67,238,5,5,65,238,5,5,126,226,5,5,140,232,5,5,38,230,5,5,217,229,5,5,2,226,192,0,0,0,192,0,0,0,5,5,10,227,5,5,56,229,5,5,216,229,192,0,0,0,5,5,68,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,238,192,0,0,0,5,5,159,227,5,5,222,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,229,5,5,158,227,5,5,67,233,5,5,0,225,5,5,209,233,5,5,24,236,5,5,241,228,5,5,177,236,5,5,137,233,5,5,240,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,228,192,0,0,0,5,5,78,238,192,0,0,0,5,5,25,228,5,5,196,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,234,192,0,0,0,192,0,0,0,5,5,77,238,192,0,0,0,5,5,86,227,5,5,72,238,5,5,73,238,5,5,75,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,238,192,0,0,0,5,5,177,227,5,5,107,231,192,0,0,0,5,5,73,235,5,5,74,238,5,5,70,238,5,5,213,228,192,0,0,0,5,5,71,238,192,0,0,0,5,5,26,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,235,192,0,0,0,5,5,76,233,5,5,212,228,5,5,66,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,238,192,0,0,0,192,0,0,0,5,5,253,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,230,192,0,0,0,5,5,100,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,238,5,5,84,238,192,0,0,0,5,5,251,235,192,0,0,0,5,5,81,238,5,5,90,238,5,5,85,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,238,5,5,184,228,5,5,25,236,192,0,0,0,192,0,0,0,5,5,89,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,238,192,0,0,0,5,5,93,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,229,5,5,56,237,192,0,0,0,5,5,82,238,5,5,80,238,5,5,92,238,192,0,0,0,5,5,87,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,238,192,0,0,0,5,5,104,238,5,5,97,238,192,0,0,0,192,0,0,0,5,5,101,238,192,0,0,0,192,0,0,0,5,5,102,238,5,5,98,238,192,0,0,0,192,0,0,0,5,5,131,238,192,0,0,0,192,0,0,0,5,5,153,229,5,5,201,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,238,5,5,0,212,5,5,105,238,192,0,0,0,5,5,0,131,5,5,8,235,5,5,103,238,192,0,0,0,5,5,99,238,192,0,0,0,192,0,0,0,5,5,94,238,5,5,100,238,5,5,120,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,213,5,5,116,238,192,0,0,0,192,0,0,0,5,5,108,238,5,5,109,238,192,0,0,0,5,5,207,230,5,5,227,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,238,5,5,113,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,238,192,0,0,0,192,0,0,0,5,5,112,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,226,192,0,0,0,5,5,102,229,5,5,58,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,238,5,5,164,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,238,192,0,0,0,5,5,0,128,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,238,5,5,91,236,192,0,0,0,5,5,209,230,192,0,0,0,5,5,127,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,238,5,5,117,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,232,192,0,0,0,5,5,118,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,232,5,5,123,238,5,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,238,192,0,0,0,192,0,0,0,5,5,62,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,228,192,0,0,0,192,0,0,0,5,5,124,238,5,5,125,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,238,5,5,128,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,238,5,5,139,238,192,0,0,0,5,5,135,238,192,0,0,0,5,5,130,238,192,0,0,0,192,0,0,0,5,5,140,238,5,5,247,231,192,0,0,0,192,0,0,0,5,5,142,238,192,0,0,0,5,5,242,228,5,5,132,238,5,5,3,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,238,5,5,129,238,5,5,37,227,192,0,0,0,5,5,102,227,5,5,253,226,5,5,137,238,5,5,133,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,228,5,5,143,238,5,5,141,238,5,5,27,232,5,5,160,227,5,5,224,227,192,0,0,0,5,5,138,238,192,0,0,0,5,5,42,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,238,5,5,145,238,192,0,0,0,5,5,202,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,238,192,0,0,0,5,5,148,238,192,0,0,0,192,0,0,0,5,5,146,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,229,5,5,149,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,238,192,0,0,0,5,5,157,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,238,5,5,154,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,232,192,0,0,0,192,0,0,0,5,5,127,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,238,192,0,0,0,5,5,153,238,5,5,210,230,5,5,15,226,192,0,0,0,192,0,0,0,5,5,156,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,238,192,0,0,0,5,5,40,231,5,5,163,238,192,0,0,0,5,5,161,238,192,0,0,0,5,5,162,238,192,0,0,0,5,5,164,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,231,192,0,0,0,5,5,158,238,192,0,0,0,5,5,159,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,227,192,0,0,0,5,5,169,238,5,5,165,238,5,5,168,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,233,192,0,0,0,5,5,150,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,238,5,5,221,226,192,0,0,0,192,0,0,0,5,5,172,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,238,192,0,0,0,5,5,57,234,192,0,0,0,192,0,0,0,5,5,176,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,238,192,0,0,0,5,5,178,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,238,5,5,182,238,5,5,180,238,5,5,183,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,238,192,0,0,0,192,0,0,0,5,5,187,238,192,0,0,0,5,5,188,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,238,5,5,204,237,192,0,0,0,5,5,106,230,5,5,219,229,192,0,0,0,192,0,0,0,5,5,173,226,192,0,0,0,5,5,0,214,192,0,0,0,192,0,0,0,5,5,200,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,238,192,0,0,0,5,5,84,229,192,0,0,0,5,5,0,173,5,5,104,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,238,5,5,185,228,192,0,0,0,192,0,0,0,5,5,67,229,192,0,0,0,5,5,193,238,5,5,192,238,192,0,0,0,192,0,0,0,5,5,124,235,5,5,194,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,238,5,5,195,238,192,0,0,0,5,5,197,238,192,0,0,0,5,5,198,238,192,0,0,0,5,5,139,228,192,0,0,0,192,0,0,0,5,5,60,226,5,5,199,238,192,0,0,0,192,0,0,0,5,5,201,238,192,0,0,0,5,5,200,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,238,192,0,0,0,192,0,0,0,5,5,156,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,238,5,5,0,147,5,5,143,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,228,192,0,0,0,192,0,0,0,5,5,211,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,238,5,5,206,238,192,0,0,0,192,0,0,0,5,5,208,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,238,192,0,0,0,5,5,148,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,228,192,0,0,0,192,0,0,0,5,5,177,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,238,5,5,210,238,5,5,113,229,5,5,243,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,238,192,0,0,0,192,0,0,0,5,5,85,229,192,0,0,0,5,5,183,232,192,0,0,0,192,0,0,0,5,5,211,238,5,5,62,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,238,192,0,0,0,192,0,0,0,5,5,108,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,238,5,5,216,238,192,0,0,0,5,5,83,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,238,192,0,0,0,5,5,244,228,5,5,216,226,5,5,220,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,238,192,0,0,0,192,0,0,0,5,5,219,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,238,192,0,0,0,192,0,0,0,5,5,223,238,192,0,0,0,192,0,0,0,5,5,224,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,235,192,0,0,0,192,0,0,0,5,5,23,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,238,5,5,227,238,5,5,225,238,192,0,0,0,5,5,229,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,234,192,0,0,0,192,0,0,0,5,5,0,198,5,5,20,235,192,0,0,0,192,0,0,0,5,5,230,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,231,192,0,0,0,192,0,0,0,5,5,39,230,192,0,0,0,5,5,93,234,5,5,104,227,192,0,0,0,5,5,155,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,235,192,0,0,0,5,5,210,233,192,0,0,0,192,0,0,0,5,5,140,228,5,5,117,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,238,5,5,231,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,238,192,0,0,0,192,0,0,0,5,5,77,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,250,5,5,61,226,5,5,143,235,192,0,0,0,192,0,0,0,5,5,24,231,5,5,138,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,229,192,0,0,0,192,0,0,0,5,5,241,238,192,0,0,0,192,0,0,0,5,5,89,235,5,5,243,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,226,5,5,237,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,232,5,5,240,238,192,0,0,0,5,5,165,233,192,0,0,0,192,0,0,0,5,5,139,233,5,5,166,233,5,5,151,234,5,5,49,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,226,192,0,0,0,5,5,120,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,238,192,0,0,0,5,5,234,238,192,0,0,0,192,0,0,0,5,5,90,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,227,192,0,0,0,5,5,243,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,233,192,0,0,0,192,0,0,0,5,5,245,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,235,192,0,0,0,192,0,0,0,5,5,246,238,192,0,0,0,192,0,0,0,5,5,251,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,238,5,5,244,238,5,5,247,238,5,5,249,238,192,0,0,0,192,0,0,0,5,5,86,229,192,0,0,0,192,0,0,0,5,5,101,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,238,192,0,0,0,5,5,201,232,192,0,0,0,192,0,0,0,5,5,175,226,192,0,0,0,5,5,25,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,238,192,0,0,0,5,5,253,238,192,0,0,0,5,5,58,229,192,0,0,0,5,5,255,238,5,5,3,239,5,5,2,239,192,0,0,0,192,0,0,0,5,5,5,239,192,0,0,0,5,5,248,238,5,5,7,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,239,5,5,4,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,229,5,5,91,231,192,0,0,0,5,5,28,232,5,5,8,239,5,5,164,231,5,5,0,203,5,5,100,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,233,192,0,0,0,5,5,10,239,5,5,9,239,5,5,11,239,5,5,12,239,5,5,13,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,235,5,5,15,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,226,5,5,16,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,236,5,5,200,226,192,0,0,0,5,5,48,238,5,5,148,230,5,5,101,232,5,5,17,239,5,5,69,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,236,192,0,0,0,192,0,0,0,5,5,19,239,192,0,0,0,5,5,141,232,192,0,0,0,5,5,121,233,5,5,102,232,5,5,21,235,5,5,20,239,5,5,21,239,5,5,87,226,192,0,0,0,192,0,0,0,5,5,40,230,5,5,22,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,174,5,5,23,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,226,192,0,0,0,192,0,0,0,5,5,105,227,5,5,2,234,5,5,144,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,239,5,5,29,232,5,5,27,239,5,5,84,228,192,0,0,0,192,0,0,0,5,5,213,235,5,5,26,239,192,0,0,0,5,5,167,233,5,5,30,239,192,0,0,0,5,5,29,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,239,192,0,0,0,5,5,31,239,192,0,0,0,192,0,0,0,5,5,88,226,192,0,0,0,5,5,33,239,5,5,211,230,5,5,35,239,5,5,169,232,192,0,0,0,5,5,34,239,192,0,0,0,5,5,79,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,230,5,5,157,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,239,5,5,33,234,5,5,188,234,5,5,43,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,234,192,0,0,0,192,0,0,0,5,5,46,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,227,192,0,0,0,192,0,0,0,5,5,125,236,192,0,0,0,192,0,0,0,5,5,9,236,192,0,0,0,5,5,141,239,192,0,0,0,5,5,38,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,239,192,0,0,0,5,5,107,232,192,0,0,0,192,0,0,0,5,5,178,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,235,192,0,0,0,5,5,122,229,192,0,0,0,192,0,0,0,5,5,212,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,239,192,0,0,0,192,0,0,0,5,5,222,229,192,0,0,0,5,5,221,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,151,5,5,186,228,192,0,0,0,5,5,147,231,5,5,0,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,239,5,5,48,239,192,0,0,0,5,5,45,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,226,5,5,39,227,192,0,0,0,5,5,44,239,192,0,0,0,5,5,31,236,5,5,237,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,134,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,229,192,0,0,0,5,5,0,176,192,0,0,0,5,5,0,129,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,236,192,0,0,0,5,5,54,239,192,0,0,0,5,5,52,239,192,0,0,0,192,0,0,0,5,5,50,239,5,5,59,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,239,5,5,59,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,239,5,5,34,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,234,192,0,0,0,192,0,0,0,5,5,57,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,239,192,0,0,0,5,5,56,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,239,5,5,238,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,239,5,5,67,239,5,5,64,239,192,0,0,0,192,0,0,0,5,5,129,226,5,5,66,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,230,192,0,0,0,5,5,65,239,5,5,141,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,239,5,5,69,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,232,192,0,0,0,5,5,68,239,192,0,0,0,192,0,0,0,5,5,70,239,192,0,0,0,192,0,0,0,5,5,71,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,239,5,5,74,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,227,192,0,0,0,5,5,76,239,5,5,75,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,239,192,0,0,0,5,5,64,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,226,192,0,0,0,5,5,78,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,192,0,0,0,5,5,85,239,192,0,0,0,192,0,0,0,5,5,83,239,192,0,0,0,5,5,84,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,229,5,5,86,239,192,0,0,0,192,0,0,0,5,5,246,228,5,5,87,239,192,0,0,0,5,5,10,230,5,5,94,232,192,0,0,0,5,5,88,239,5,5,89,239,5,5,232,229,5,5,247,228,192,0,0,0,5,5,44,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,227,5,5,187,228,5,5,90,239,5,5,240,226,192,0,0,0,192,0,0,0,5,5,91,239,192,0,0,0,5,5,95,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,239,5,5,132,239,192,0,0,0,5,5,93,239,192,0,0,0,5,5,94,239,192,0,0,0,192,0,0,0,5,5,95,239,192,0,0,0,5,5,97,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,239,192,0,0,0,192,0,0,0,5,5,99,239,192,0,0,0,5,5,150,232,192,0,0,0,5,5,3,226,5,5,87,230,5,5,0,160,192,0,0,0,5,5,31,232,5,5,40,227,5,5,35,230,192,0,0,0,5,5,248,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,233,192,0,0,0,5,5,109,230,5,5,41,227,5,5,236,232,5,5,78,233,5,5,0,150,5,5,143,227,5,5,145,235,192,0,0,0,5,5,48,230,192,0,0,0,192,0,0,0,5,5,168,227,5,5,211,231,5,5,42,230,5,5,96,236,5,5,100,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,227,192,0,0,0,5,5,123,229,192,0,0,0,192,0,0,0,5,5,202,226,5,5,63,226,5,5,214,230,5,5,130,226,192,0,0,0,5,5,101,239,5,5,126,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,230,192,0,0,0,192,0,0,0,5,5,82,230,5,5,102,239,5,5,107,227,5,5,242,233,5,5,3,236,5,5,103,239,192,0,0,0,5,5,104,239,192,0,0,0,192,0,0,0,5,5,23,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,239,192,0,0,0,5,5,32,227,5,5,45,228,5,5,105,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,227,192,0,0,0,5,5,60,231,5,5,110,239,5,5,175,229,192,0,0,0,5,5,131,226,5,5,109,239,192,0,0,0,5,5,107,239,5,5,111,239,5,5,108,239,5,5,43,234,5,5,230,241,5,5,61,231,192,0,0,0,5,5,112,239,192,0,0,0,192,0,0,0,5,5,214,236,192,0,0,0,5,5,113,239,192,0,0,0,192,0,0,0,5,5,115,239,192,0,0,0,5,5,4,233,5,5,114,239,192,0,0,0,5,5,139,231,192,0,0,0,5,5,11,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,232,5,5,101,230,192,0,0,0,5,5,51,235,5,5,212,231,192,0,0,0,5,5,59,230,5,5,116,239,5,5,215,230,5,5,117,239,5,5,118,239,5,5,0,177,5,5,96,232,5,5,92,231,192,0,0,0,5,5,119,239,5,5,211,233,5,5,216,230,192,0,0,0,5,5,217,230,192,0,0,0,5,5,120,239,192,0,0,0,192,0,0,0,5,5,213,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,239,192,0,0,0,5,5,122,239,192,0,0,0,5,5,58,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,239,5,5,125,239,5,5,74,230,5,5,54,231,5,5,22,234,5,5,94,231,5,5,214,234,5,5,34,234,5,5,253,227,5,5,126,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,227,5,5,127,239,192,0,0,0,5,5,52,228,192,0,0,0,5,5,239,233,5,5,106,226,192,0,0,0,5,5,225,229,5,5,128,239,5,5,131,239,5,5,130,239,5,5,51,228,192,0,0,0,5,5,129,239,192,0,0,0,5,5,122,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,232,192,0,0,0,5,5,141,233,5,5,54,230,192,0,0,0,192,0,0,0,5,5,32,232,5,5,178,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,239,192,0,0,0,5,5,134,239,5,5,246,233,192,0,0,0,5,5,193,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,239,192,0,0,0,192,0,0,0,5,5,137,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,227,5,5,139,239,192,0,0,0,192,0,0,0,5,5,140,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,232,5,5,92,227,192,0,0,0,5,5,142,239,5,5,2,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,232,192,0,0,0,5,5,241,226,192,0,0,0,192,0,0,0,5,5,144,239,5,5,146,239,5,5,87,227,192,0,0,0,192,0,0,0,5,5,143,239,5,5,145,239,192,0,0,0,5,5,148,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,239,192,0,0,0,5,5,149,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,233,5,5,226,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,226,5,5,151,239,5,5,156,239,192,0,0,0,192,0,0,0,5,5,154,239,192,0,0,0,5,5,147,235,5,5,146,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,239,5,5,160,230,192,0,0,0,5,5,152,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,239,192,0,0,0,192,0,0,0,5,5,154,229,192,0,0,0,192,0,0,0,5,5,163,239,192,0,0,0,192,0,0,0,5,5,164,239,5,5,158,239,5,5,203,226,5,5,159,239,5,5,168,239,5,5,167,239,5,5,166,239,5,5,162,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,239,192,0,0,0,192,0,0,0,5,5,165,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,239,5,5,169,239,192,0,0,0,5,5,171,239,192,0,0,0,5,5,170,236,192,0,0,0,5,5,170,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,231,192,0,0,0,192,0,0,0,5,5,173,239,192,0,0,0,192,0,0,0,5,5,103,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,239,192,0,0,0,192,0,0,0,5,5,175,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,239,192,0,0,0,5,5,177,239,192,0,0,0,192,0,0,0,5,5,176,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,233,5,5,155,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,239,192,0,0,0,5,5,182,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,239,192,0,0,0,192,0,0,0,5,5,252,236,192,0,0,0,5,5,186,239,5,5,183,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,239,192,0,0,0,192,0,0,0,5,5,88,227,5,5,188,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,239,5,5,189,239,192,0,0,0,192,0,0,0,5,5,191,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,239,192,0,0,0,5,5,214,231,5,5,111,230,192,0,0,0,192,0,0,0,5,5,176,230,192,0,0,0,5,5,43,232,192,0,0,0,5,5,249,228,5,5,104,229,5,5,250,228,5,5,198,227,192,0,0,0,192,0,0,0,5,5,193,239,192,0,0,0,192,0,0,0,5,5,105,229,192,0,0,0,192,0,0,0,5,5,188,228,5,5,194,239,5,5,254,235,5,5,67,234,5,5,195,239,192,0,0,0,5,5,251,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,227,192,0,0,0,5,5,171,232,5,5,8,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,229,5,5,25,235,192,0,0,0,192,0,0,0,5,5,159,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,239,5,5,109,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,233,192,0,0,0,192,0,0,0,5,5,198,239,5,5,197,239,5,5,200,239,192,0,0,0,5,5,79,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,229,192,0,0,0,5,5,178,231,192,0,0,0,5,5,121,232,5,5,120,227,192,0,0,0,192,0,0,0,5,5,6,233,192,0,0,0,192,0,0,0,5,5,201,239,5,5,202,239,5,5,27,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,235,192,0,0,0,192,0,0,0,5,5,205,239,192,0,0,0,192,0,0,0,5,5,204,239,5,5,203,239,5,5,59,235,192,0,0,0,5,5,212,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,235,192,0,0,0,5,5,206,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,239,5,5,229,235,192,0,0,0,5,5,207,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,239,192,0,0,0,5,5,134,234,5,5,210,239,5,5,90,235,5,5,211,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,227,5,5,91,235,5,5,47,234,5,5,213,239,5,5,214,239,192,0,0,0,5,5,252,228,5,5,44,227,5,5,215,239,5,5,170,228,5,5,124,236,5,5,97,236,5,5,110,227,5,5,217,239,192,0,0,0,5,5,7,233,192,0,0,0,5,5,253,228,5,5,219,230,192,0,0,0,192,0,0,0,5,5,189,234,192,0,0,0,192,0,0,0,5,5,220,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,233,5,5,149,235,5,5,123,233,192,0,0,0,192,0,0,0,5,5,254,228,192,0,0,0,5,5,26,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,233,5,5,114,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,228,192,0,0,0,5,5,81,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,161,5,5,186,230,5,5,255,228,5,5,127,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,239,5,5,220,239,5,5,81,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,239,5,5,15,237,5,5,35,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,239,5,5,222,239,192,0,0,0,192,0,0,0,5,5,223,226,192,0,0,0,192,0,0,0,5,5,224,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,239,5,5,228,239,192,0,0,0,5,5,226,239,192,0,0,0,5,5,252,234,5,5,221,230,5,5,230,239,5,5,229,239,5,5,225,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,239,5,5,232,239,192,0,0,0,192,0,0,0,5,5,233,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,239,5,5,234,239,192,0,0,0,5,5,235,239,5,5,237,239,192,0,0,0,5,5,64,226,5,5,82,233,5,5,238,239,192,0,0,0,5,5,142,228,5,5,176,226,5,5,54,234,192,0,0,0,5,5,239,239,5,5,29,234,192,0,0,0,5,5,119,235,192,0,0,0,5,5,240,239,5,5,36,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,239,5,5,92,235,5,5,244,239,5,5,74,237,5,5,90,237,192,0,0,0,5,5,30,230,5,5,23,234,5,5,245,239,192,0,0,0,5,5,179,227,5,5,8,233,5,5,0,216,5,5,246,239,5,5,66,235,5,5,2,229,192,0,0,0,192,0,0,0,5,5,212,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,236,5,5,171,228,5,5,190,228,192,0,0,0,5,5,247,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,239,192,0,0,0,5,5,254,239,192,0,0,0,5,5,83,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,233,192,0,0,0,5,5,227,227,5,5,249,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,234,192,0,0,0,5,5,202,232,192,0,0,0,192,0,0,0,5,5,250,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,239,192,0,0,0,5,5,228,227,192,0,0,0,5,5,252,239,192,0,0,0,5,5,253,239,192,0,0,0,192,0,0,0,5,5,255,239,192,0,0,0,5,5,184,233,192,0,0,0,192,0,0,0,5,5,2,240,5,5,3,240,192,0,0,0,5,5,4,240,192,0,0,0,192,0,0,0,5,5,243,239,5,5,242,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,240,5,5,85,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,234,192,0,0,0,192,0,0,0,5,5,124,229,5,5,243,234,5,5,10,233,5,5,9,235,5,5,6,240,192,0,0,0,192,0,0,0,5,5,222,230,5,5,34,226,192,0,0,0,5,5,7,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,240,192,0,0,0,5,5,76,236,192,0,0,0,192,0,0,0,5,5,190,234,192,0,0,0,192,0,0,0,5,5,11,240,5,5,89,226,5,5,148,231,5,5,10,240,5,5,9,240,5,5,86,228,5,5,122,232,192,0,0,0,5,5,15,240,5,5,13,240,192,0,0,0,5,5,12,240,5,5,189,236,5,5,215,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,230,5,5,14,240,5,5,142,233,5,5,138,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,233,5,5,18,240,5,5,17,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,240,192,0,0,0,5,5,19,240,5,5,216,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,240,5,5,58,235,5,5,167,230,192,0,0,0,192,0,0,0,5,5,21,240,5,5,215,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,233,5,5,11,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,233,192,0,0,0,192,0,0,0,5,5,22,240,5,5,129,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,231,192,0,0,0,5,5,232,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,227,5,5,38,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,240,5,5,228,229,5,5,180,235,5,5,181,235,192,0,0,0,192,0,0,0,5,5,90,226,5,5,28,240,192,0,0,0,192,0,0,0,5,5,237,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,240,5,5,27,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,234,192,0,0,0,192,0,0,0,5,5,26,240,192,0,0,0,192,0,0,0,5,5,24,240,192,0,0,0,5,5,76,229,192,0,0,0,5,5,30,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,240,5,5,42,240,5,5,34,240,192,0,0,0,5,5,158,233,192,0,0,0,192,0,0,0,5,5,39,240,5,5,27,235,192,0,0,0,192,0,0,0,5,5,33,240,192,0,0,0,5,5,38,240,5,5,253,236,5,5,229,229,192,0,0,0,192,0,0,0,5,5,123,232,5,5,31,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,227,5,5,41,240,5,5,149,231,5,5,65,226,5,5,35,240,5,5,178,226,5,5,40,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,227,192,0,0,0,5,5,37,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,240,5,5,55,240,5,5,53,240,192,0,0,0,192,0,0,0,5,5,50,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,240,5,5,16,237,192,0,0,0,5,5,51,240,192,0,0,0,192,0,0,0,5,5,230,227,192,0,0,0,5,5,3,229,192,0,0,0,192,0,0,0,5,5,198,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,240,5,5,44,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,240,5,5,32,240,192,0,0,0,5,5,180,226,5,5,52,240,5,5,54,240,5,5,213,232,192,0,0,0,192,0,0,0,5,5,88,229,5,5,114,226,5,5,46,240,5,5,57,240,5,5,56,240,5,5,231,227,192,0,0,0,5,5,79,232,5,5,254,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,228,192,0,0,0,5,5,47,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,240,192,0,0,0,5,5,62,240,5,5,64,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,230,192,0,0,0,5,5,70,240,5,5,84,233,5,5,60,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,240,192,0,0,0,5,5,179,226,192,0,0,0,5,5,66,240,5,5,67,240,192,0,0,0,192,0,0,0,5,5,63,240,5,5,65,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,228,5,5,98,236,192,0,0,0,192,0,0,0,5,5,45,227,192,0,0,0,192,0,0,0,5,5,53,226,5,5,69,240,192,0,0,0,5,5,58,234,5,5,0,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,234,5,5,29,240,5,5,75,240,5,5,79,240,5,5,63,236,192,0,0,0,5,5,72,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,233,5,5,77,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,231,5,5,78,240,5,5,247,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,237,192,0,0,0,5,5,74,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,240,192,0,0,0,5,5,77,229,192,0,0,0,5,5,179,231,192,0,0,0,192,0,0,0,5,5,0,178,5,5,73,240,5,5,71,240,192,0,0,0,5,5,34,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,240,5,5,194,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,232,5,5,92,240,192,0,0,0,5,5,35,232,5,5,87,240,192,0,0,0,5,5,84,240,5,5,85,240,192,0,0,0,5,5,84,230,5,5,88,240,5,5,91,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,240,5,5,113,230,192,0,0,0,5,5,89,240,192,0,0,0,192,0,0,0,5,5,83,240,192,0,0,0,5,5,86,236,5,5,85,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,240,5,5,94,240,5,5,0,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,228,5,5,0,132,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,227,192,0,0,0,5,5,90,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,240,5,5,97,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,240,5,5,104,240,5,5,96,240,5,5,100,240,192,0,0,0,192,0,0,0,5,5,105,240,192,0,0,0,5,5,106,240,192,0,0,0,192,0,0,0,5,5,95,240,5,5,12,230,192,0,0,0,5,5,99,240,5,5,124,232,5,5,4,229,5,5,81,240,5,5,63,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,240,192,0,0,0,5,5,133,235,192,0,0,0,192,0,0,0,5,5,109,240,5,5,110,240,5,5,111,240,192,0,0,0,192,0,0,0,5,5,118,240,192,0,0,0,5,5,117,240,192,0,0,0,192,0,0,0,5,5,247,235,5,5,47,227,192,0,0,0,5,5,115,240,192,0,0,0,5,5,89,228,5,5,204,226,192,0,0,0,192,0,0,0,5,5,112,240,192,0,0,0,192,0,0,0,5,5,206,236,5,5,114,240,5,5,0,180,5,5,116,240,192,0,0,0,5,5,107,240,5,5,113,240,5,5,120,240,5,5,88,228,5,5,108,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,240,192,0,0,0,192,0,0,0,5,5,127,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,232,192,0,0,0,5,5,17,237,5,5,128,240,192,0,0,0,192,0,0,0,5,5,125,240,192,0,0,0,5,5,122,240,192,0,0,0,192,0,0,0,5,5,121,240,5,5,126,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,235,192,0,0,0,192,0,0,0,5,5,212,233,192,0,0,0,5,5,90,228,192,0,0,0,5,5,129,240,5,5,124,240,192,0,0,0,5,5,130,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,240,192,0,0,0,192,0,0,0,5,5,137,240,5,5,89,229,5,5,135,240,5,5,133,240,5,5,132,240,5,5,139,240,5,5,131,240,5,5,141,240,192,0,0,0,192,0,0,0,5,5,181,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,240,192,0,0,0,192,0,0,0,5,5,142,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,233,192,0,0,0,5,5,146,240,192,0,0,0,5,5,144,240,5,5,134,240,5,5,144,228,192,0,0,0,5,5,145,240,192,0,0,0,5,5,149,240,5,5,148,240,5,5,150,240,5,5,147,240,5,5,151,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,240,5,5,153,240,5,5,134,235,192,0,0,0,5,5,155,240,5,5,154,240,5,5,139,230,192,0,0,0,5,5,150,231,5,5,160,226,5,5,182,226,192,0,0,0,5,5,156,240,192,0,0,0,5,5,0,157,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,231,5,5,157,240,192,0,0,0,5,5,200,247,5,5,158,240,5,5,117,228,192,0,0,0,5,5,159,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,240,5,5,144,227,5,5,162,240,192,0,0,0,5,5,163,240,5,5,164,240,5,5,125,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,228,192,0,0,0,192,0,0,0,5,5,59,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,235,5,5,182,230,5,5,165,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,231,5,5,128,248,5,5,192,234,192,0,0,0,5,5,88,230,192,0,0,0,5,5,125,229,5,5,166,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,232,192,0,0,0,5,5,67,235,192,0,0,0,192,0,0,0,5,5,151,232,192,0,0,0,192,0,0,0,5,5,169,240,192,0,0,0,192,0,0,0,5,5,167,240,192,0,0,0,5,5,170,240,192,0,0,0,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,235,192,0,0,0,192,0,0,0,5,5,0,149,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,235,192,0,0,0,192,0,0,0,5,5,193,234,192,0,0,0,192,0,0,0,5,5,172,240,192,0,0,0,5,5,175,240,5,5,223,230,5,5,145,227,192,0,0,0,5,5,173,240,5,5,180,240,5,5,224,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,240,5,5,68,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,236,5,5,176,240,5,5,177,240,5,5,181,240,5,5,172,233,5,5,178,240,5,5,5,229,5,5,198,231,192,0,0,0,192,0,0,0,5,5,195,240,5,5,146,234,192,0,0,0,5,5,152,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,234,5,5,10,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,235,192,0,0,0,5,5,184,240,5,5,91,226,5,5,238,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,240,192,0,0,0,192,0,0,0,5,5,184,232,5,5,187,240,5,5,194,240,5,5,189,240,5,5,196,240,5,5,192,240,192,0,0,0,5,5,191,240,5,5,111,234,192,0,0,0,5,5,185,240,5,5,183,226,5,5,183,240,5,5,199,227,5,5,153,232,5,5,179,240,192,0,0,0,192,0,0,0,5,5,182,240,5,5,6,229,5,5,195,231,192,0,0,0,5,5,225,230,5,5,190,240,5,5,82,234,192,0,0,0,192,0,0,0,5,5,200,227,5,5,224,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,226,5,5,43,231,5,5,198,240,5,5,203,240,192,0,0,0,5,5,199,240,192,0,0,0,5,5,145,228,192,0,0,0,5,5,204,240,5,5,176,229,5,5,59,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,230,5,5,186,240,192,0,0,0,5,5,13,230,5,5,201,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,229,5,5,202,240,5,5,0,162,192,0,0,0,192,0,0,0,5,5,197,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,240,5,5,0,133,192,0,0,0,192,0,0,0,5,5,115,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,233,192,0,0,0,192,0,0,0,5,5,178,234,5,5,206,240,5,5,38,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,232,192,0,0,0,192,0,0,0,5,5,185,229,5,5,207,240,192,0,0,0,5,5,209,240,5,5,205,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,235,192,0,0,0,5,5,33,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,235,5,5,60,230,5,5,221,240,192,0,0,0,5,5,220,240,192,0,0,0,192,0,0,0,5,5,130,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,240,5,5,227,230,192,0,0,0,192,0,0,0,5,5,10,234,5,5,49,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,240,192,0,0,0,192,0,0,0,5,5,37,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,230,5,5,217,240,192,0,0,0,192,0,0,0,5,5,226,230,192,0,0,0,5,5,211,240,5,5,216,240,192,0,0,0,192,0,0,0,5,5,83,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,240,192,0,0,0,5,5,53,228,192,0,0,0,192,0,0,0,5,5,245,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,240,5,5,193,236,5,5,126,229,5,5,185,232,5,5,215,240,192,0,0,0,5,5,196,231,192,0,0,0,5,5,7,229,5,5,110,231,5,5,66,226,5,5,4,232,5,5,213,240,5,5,155,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,228,192,0,0,0,5,5,51,233,5,5,219,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,232,192,0,0,0,192,0,0,0,5,5,222,240,192,0,0,0,5,5,224,240,192,0,0,0,192,0,0,0,5,5,93,232,5,5,230,240,192,0,0,0,5,5,225,240,192,0,0,0,192,0,0,0,5,5,227,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,234,5,5,87,233,192,0,0,0,5,5,228,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,236,5,5,49,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,140,192,0,0,0,5,5,226,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,226,192,0,0,0,5,5,229,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,232,192,0,0,0,5,5,240,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,240,192,0,0,0,192,0,0,0,5,5,231,240,5,5,238,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,240,192,0,0,0,5,5,239,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,234,5,5,173,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,240,192,0,0,0,5,5,236,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,240,192,0,0,0,5,5,218,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,240,192,0,0,0,5,5,40,236,192,0,0,0,5,5,138,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,229,5,5,247,240,192,0,0,0,5,5,246,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,233,5,5,248,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,240,192,0,0,0,5,5,45,235,192,0,0,0,5,5,69,234,5,5,177,229,192,0,0,0,5,5,217,231,192,0,0,0,5,5,202,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,226,192,0,0,0,5,5,2,241,5,5,251,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,236,5,5,4,241,192,0,0,0,192,0,0,0,5,5,254,240,192,0,0,0,5,5,255,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,240,192,0,0,0,5,5,188,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,241,192,0,0,0,5,5,252,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,241,5,5,9,241,5,5,105,233,5,5,11,241,192,0,0,0,192,0,0,0,5,5,178,229,5,5,6,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,227,192,0,0,0,192,0,0,0,5,5,12,241,192,0,0,0,5,5,5,241,5,5,16,241,192,0,0,0,5,5,15,241,192,0,0,0,5,5,14,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,241,192,0,0,0,192,0,0,0,5,5,19,241,5,5,29,231,192,0,0,0,5,5,18,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,241,5,5,237,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,241,5,5,23,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,240,5,5,25,241,5,5,13,241,192,0,0,0,192,0,0,0,5,5,231,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,241,5,5,27,241,5,5,29,241,5,5,28,241,5,5,30,241,5,5,184,226,192,0,0,0,5,5,8,229,192,0,0,0,192,0,0,0,5,5,152,235,5,5,151,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,228,192,0,0,0,192,0,0,0,5,5,32,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,241,192,0,0,0,5,5,16,235,192,0,0,0,5,5,181,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,241,5,5,33,241,5,5,84,234,5,5,36,241,5,5,233,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,241,5,5,37,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,227,5,5,196,229,192,0,0,0,192,0,0,0,5,5,248,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,231,192,0,0,0,5,5,39,241,192,0,0,0,5,5,152,231,5,5,106,233,192,0,0,0,5,5,29,235,5,5,40,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,241,5,5,42,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,235,5,5,96,239,5,5,174,231,192,0,0,0,192,0,0,0,5,5,10,235,192,0,0,0,5,5,136,229,192,0,0,0,5,5,195,234,5,5,161,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,233,192,0,0,0,5,5,215,236,192,0,0,0,5,5,44,241,5,5,62,230,192,0,0,0,192,0,0,0,5,5,45,241,192,0,0,0,5,5,0,148,192,0,0,0,192,0,0,0,5,5,10,228,5,5,181,231,192,0,0,0,5,5,30,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,241,5,5,208,229,5,5,203,232,192,0,0,0,5,5,233,229,5,5,65,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,241,192,0,0,0,5,5,153,235,192,0,0,0,192,0,0,0,5,5,83,226,5,5,234,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,241,192,0,0,0,5,5,48,241,5,5,51,241,5,5,207,236,5,5,49,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,231,5,5,52,241,192,0,0,0,192,0,0,0,5,5,88,232,192,0,0,0,192,0,0,0,5,5,53,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,227,192,0,0,0,5,5,55,241,192,0,0,0,5,5,54,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,241,5,5,57,241,5,5,115,227,192,0,0,0,192,0,0,0,5,5,30,234,5,5,186,232,5,5,194,227,5,5,235,229,5,5,41,232,192,0,0,0,192,0,0,0,5,5,168,230,5,5,0,142,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,226,5,5,62,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,229,5,5,61,241,192,0,0,0,192,0,0,0,5,5,91,229,5,5,228,230,192,0,0,0,192,0,0,0,5,5,60,241,192,0,0,0,5,5,229,230,192,0,0,0,5,5,26,236,5,5,90,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,181,5,5,182,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,241,192,0,0,0,192,0,0,0,5,5,153,231,5,5,35,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,230,192,0,0,0,5,5,224,235,5,5,162,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,230,192,0,0,0,5,5,143,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,241,5,5,64,241,5,5,65,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,232,192,0,0,0,192,0,0,0,5,5,97,241,192,0,0,0,5,5,71,241,5,5,14,230,5,5,10,229,5,5,69,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,241,192,0,0,0,5,5,66,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,241,192,0,0,0,192,0,0,0,5,5,189,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,241,5,5,72,241,5,5,77,241,192,0,0,0,192,0,0,0,5,5,78,241,192,0,0,0,5,5,74,241,192,0,0,0,5,5,186,226,5,5,75,241,5,5,76,241,5,5,179,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,235,5,5,94,228,5,5,79,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,231,192,0,0,0,5,5,231,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,227,192,0,0,0,5,5,80,241,5,5,84,241,192,0,0,0,192,0,0,0,5,5,133,226,5,5,81,241,5,5,83,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,241,192,0,0,0,192,0,0,0,5,5,183,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,232,5,5,0,163,5,5,85,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,229,192,0,0,0,192,0,0,0,5,5,135,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,241,5,5,88,241,192,0,0,0,192,0,0,0,5,5,91,241,192,0,0,0,5,5,90,241,192,0,0,0,192,0,0,0,5,5,87,241,192,0,0,0,192,0,0,0,5,5,92,241,192,0,0,0,192,0,0,0,5,5,254,233,192,0,0,0,5,5,89,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,241,192,0,0,0,192,0,0,0,5,5,184,230,5,5,95,241,192,0,0,0,5,5,131,236,5,5,120,234,192,0,0,0,192,0,0,0,5,5,96,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,241,192,0,0,0,192,0,0,0,5,5,99,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,241,192,0,0,0,5,5,254,227,5,5,36,226,5,5,11,229,5,5,101,241,192,0,0,0,5,5,102,241,5,5,189,230,5,5,42,232,192,0,0,0,192,0,0,0,5,5,63,238,5,5,6,232,5,5,5,232,5,5,126,232,5,5,119,229,192,0,0,0,192,0,0,0,5,5,155,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,228,5,5,101,236,192,0,0,0,5,5,154,235,192,0,0,0,5,5,60,235,192,0,0,0,5,5,103,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,229,5,5,35,233,5,5,104,241,5,5,37,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,235,192,0,0,0,5,5,15,233,5,5,105,241,5,5,116,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,241,5,5,107,241,5,5,52,236,192,0,0,0,5,5,252,235,5,5,240,235,5,5,214,235,5,5,179,229,5,5,109,241,192,0,0,0,192,0,0,0,5,5,89,230,192,0,0,0,192,0,0,0,5,5,203,235,192,0,0,0,5,5,111,241,5,5,114,241,5,5,113,241,192,0,0,0,5,5,113,227,192,0,0,0,192,0,0,0,5,5,182,227,192,0,0,0,5,5,110,241,192,0,0,0,5,5,112,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,241,192,0,0,0,192,0,0,0,5,5,131,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,236,5,5,0,167,5,5,144,229,5,5,98,232,192,0,0,0,5,5,75,230,192,0,0,0,192,0,0,0,5,5,31,231,192,0,0,0,192,0,0,0,5,5,118,241,192,0,0,0,192,0,0,0,5,5,144,233,192,0,0,0,5,5,116,241,5,5,81,232,5,5,117,241,5,5,30,231,5,5,55,236,5,5,119,241,5,5,120,241,5,5,160,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,241,192,0,0,0,192,0,0,0,5,5,12,229,192,0,0,0,5,5,85,234,5,5,122,241,5,5,174,233,5,5,59,241,5,5,63,241,192,0,0,0,5,5,165,227,192,0,0,0,5,5,71,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,241,192,0,0,0,5,5,232,230,5,5,162,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,241,192,0,0,0,5,5,216,234,192,0,0,0,5,5,121,241,192,0,0,0,5,5,127,241,5,5,126,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,235,192,0,0,0,5,5,233,236,192,0,0,0,192,0,0,0,5,5,225,235,192,0,0,0,5,5,134,226,5,5,236,229,192,0,0,0,192,0,0,0,5,5,62,237,5,5,129,241,5,5,127,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,241,192,0,0,0,192,0,0,0,5,5,123,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,241,5,5,133,241,192,0,0,0,5,5,135,226,5,5,131,241,5,5,137,241,5,5,143,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,232,192,0,0,0,192,0,0,0,5,5,93,235,192,0,0,0,5,5,145,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,241,5,5,112,234,5,5,185,235,5,5,51,227,192,0,0,0,5,5,223,231,5,5,140,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,233,192,0,0,0,5,5,102,236,192,0,0,0,192,0,0,0,5,5,140,241,5,5,139,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,241,192,0,0,0,5,5,138,241,192,0,0,0,192,0,0,0,5,5,146,241,192,0,0,0,5,5,136,241,192,0,0,0,192,0,0,0,5,5,134,241,192,0,0,0,5,5,142,241,5,5,132,241,192,0,0,0,5,5,240,232,192,0,0,0,5,5,82,236,5,5,52,230,5,5,164,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,229,192,0,0,0,192,0,0,0,5,5,233,235,5,5,217,226,192,0,0,0,192,0,0,0,5,5,50,233,5,5,234,233,5,5,37,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,231,192,0,0,0,192,0,0,0,5,5,156,231,5,5,62,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,241,192,0,0,0,192,0,0,0,5,5,13,229,5,5,22,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,241,5,5,14,227,5,5,156,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,241,192,0,0,0,5,5,219,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,226,5,5,92,229,192,0,0,0,192,0,0,0,5,5,226,226,5,5,127,229,192,0,0,0,192,0,0,0,5,5,151,241,5,5,121,228,5,5,95,228,5,5,175,233,192,0,0,0,192,0,0,0,5,5,149,241,192,0,0,0,5,5,0,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,241,5,5,154,241,192,0,0,0,5,5,3,228,5,5,64,228,192,0,0,0,5,5,52,227,5,5,161,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,241,192,0,0,0,192,0,0,0,5,5,169,229,5,5,235,235,192,0,0,0,5,5,197,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,241,192,0,0,0,5,5,109,226,5,5,159,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,241,5,5,160,241,192,0,0,0,5,5,216,236,192,0,0,0,5,5,167,241,192,0,0,0,5,5,95,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,241,192,0,0,0,5,5,162,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,146,5,5,164,241,192,0,0,0,192,0,0,0,5,5,14,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,241,192,0,0,0,5,5,165,241,192,0,0,0,5,5,161,241,5,5,172,241,192,0,0,0,5,5,233,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,239,5,5,218,228,5,5,180,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,241,192,0,0,0,5,5,88,233,5,5,187,226,5,5,93,229,192,0,0,0,5,5,155,241,192,0,0,0,5,5,171,241,5,5,249,226,192,0,0,0,192,0,0,0,5,5,169,241,5,5,173,241,192,0,0,0,5,5,176,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,227,192,0,0,0,5,5,203,241,192,0,0,0,192,0,0,0,5,5,35,236,5,5,178,241,5,5,117,227,192,0,0,0,5,5,185,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,235,192,0,0,0,5,5,186,241,5,5,188,241,192,0,0,0,5,5,192,241,5,5,180,241,192,0,0,0,5,5,174,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,233,5,5,196,241,5,5,183,241,192,0,0,0,5,5,193,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,231,5,5,197,241,192,0,0,0,192,0,0,0,5,5,155,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,241,5,5,53,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,237,5,5,177,241,192,0,0,0,192,0,0,0,5,5,191,241,5,5,0,182,192,0,0,0,192,0,0,0,5,5,179,241,192,0,0,0,192,0,0,0,5,5,20,236,5,5,184,241,5,5,44,231,5,5,43,233,5,5,174,241,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,231,5,5,200,241,5,5,11,227,5,5,147,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,241,5,5,181,241,5,5,201,241,192,0,0,0,5,5,194,241,5,5,182,241,192,0,0,0,5,5,198,241,192,0,0,0,5,5,199,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,233,192,0,0,0,5,5,189,241,192,0,0,0,192,0,0,0,5,5,212,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,241,192,0,0,0,5,5,60,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,235,5,5,209,241,5,5,112,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,241,5,5,7,232,192,0,0,0,5,5,206,241,5,5,219,241,5,5,218,241,192,0,0,0,5,5,17,234,5,5,217,241,5,5,12,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,241,5,5,208,241,192,0,0,0,5,5,252,227,5,5,211,241,5,5,169,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,234,5,5,213,241,5,5,255,227,192,0,0,0,5,5,205,241,5,5,207,241,5,5,204,241,192,0,0,0,192,0,0,0,5,5,38,237,5,5,242,226,5,5,210,241,192,0,0,0,192,0,0,0,5,5,220,241,5,5,205,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,226,192,0,0,0,192,0,0,0,5,5,237,241,192,0,0,0,192,0,0,0,5,5,39,237,5,5,240,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,231,5,5,239,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,241,192,0,0,0,192,0,0,0,5,5,252,241,5,5,222,241,192,0,0,0,5,5,241,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,241,192,0,0,0,192,0,0,0,5,5,228,241,5,5,225,241,192,0,0,0,5,5,226,241,192,0,0,0,5,5,234,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,250,192,0,0,0,192,0,0,0,5,5,231,241,5,5,15,229,5,5,44,233,5,5,44,232,5,5,229,241,192,0,0,0,5,5,224,241,192,0,0,0,192,0,0,0,5,5,227,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,236,5,5,228,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,241,5,5,242,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,241,5,5,243,241,192,0,0,0,192,0,0,0,5,5,2,242,192,0,0,0,5,5,254,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,241,192,0,0,0,5,5,52,233,192,0,0,0,5,5,45,232,192,0,0,0,5,5,246,241,192,0,0,0,192,0,0,0,5,5,244,241,192,0,0,0,192,0,0,0,5,5,251,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,242,5,5,211,234,5,5,9,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,242,5,5,7,242,5,5,255,241,192,0,0,0,192,0,0,0,5,5,248,232,192,0,0,0,5,5,244,234,192,0,0,0,5,5,245,241,192,0,0,0,192,0,0,0,5,5,253,241,5,5,234,230,192,0,0,0,5,5,41,236,5,5,19,242,5,5,6,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,228,5,5,93,226,5,5,247,226,192,0,0,0,192,0,0,0,5,5,236,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,230,5,5,11,242,192,0,0,0,5,5,18,242,5,5,103,230,5,5,12,227,192,0,0,0,192,0,0,0,5,5,178,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,242,192,0,0,0,192,0,0,0,5,5,13,242,5,5,17,242,192,0,0,0,192,0,0,0,5,5,234,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,227,5,5,15,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,227,192,0,0,0,5,5,235,233,5,5,14,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,226,5,5,205,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,242,5,5,219,228,192,0,0,0,5,5,20,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,242,192,0,0,0,5,5,24,242,5,5,25,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,242,192,0,0,0,5,5,33,242,192,0,0,0,5,5,168,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,242,192,0,0,0,192,0,0,0,5,5,28,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,242,5,5,30,242,5,5,29,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,242,192,0,0,0,5,5,28,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,242,5,5,49,228,192,0,0,0,192,0,0,0,5,5,34,242,5,5,36,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,234,192,0,0,0,5,5,39,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,242,5,5,40,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,236,5,5,41,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,226,192,0,0,0,5,5,47,242,5,5,123,228,5,5,15,230,192,0,0,0,5,5,11,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,242,5,5,48,242,5,5,51,242,5,5,147,227,192,0,0,0,192,0,0,0,5,5,12,228,5,5,54,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,242,192,0,0,0,5,5,55,242,192,0,0,0,192,0,0,0,5,5,136,226,192,0,0,0,5,5,187,232,192,0,0,0,5,5,56,242,192,0,0,0,192,0,0,0,5,5,55,227,5,5,58,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,242,192,0,0,0,5,5,59,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,242,192,0,0,0,5,5,61,242,5,5,237,229,5,5,157,231,5,5,81,229,192,0,0,0,5,5,46,235,192,0,0,0,192,0,0,0,5,5,126,235,5,5,58,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,229,5,5,10,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,242,5,5,63,242,192,0,0,0,5,5,238,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,242,5,5,65,242,192,0,0,0,192,0,0,0,5,5,67,242,5,5,66,242,192,0,0,0,5,5,210,235,192,0,0,0,192,0,0,0,5,5,170,230,5,5,90,230,5,5,210,229,192,0,0,0,5,5,68,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,242,5,5,45,231,192,0,0,0,5,5,69,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,242,5,5,74,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,242,192,0,0,0,5,5,77,242,5,5,76,242,5,5,78,242,5,5,95,226,5,5,206,232,192,0,0,0,5,5,79,242,192,0,0,0,192,0,0,0,5,5,180,229,5,5,228,226,5,5,80,242,192,0,0,0,192,0,0,0,5,5,132,233,5,5,239,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,227,5,5,81,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,242,192,0,0,0,5,5,136,235,5,5,226,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,233,5,5,83,242,5,5,196,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,234,192,0,0,0,192,0,0,0,5,5,45,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,242,5,5,85,242,192,0,0,0,192,0,0,0,5,5,88,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,229,192,0,0,0,5,5,11,236,192,0,0,0,5,5,91,242,5,5,92,242,192,0,0,0,192,0,0,0,5,5,122,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,242,5,5,94,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,231,192,0,0,0,192,0,0,0,5,5,245,234,5,5,38,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,234,192,0,0,0,5,5,89,233,5,5,141,230,5,5,183,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,234,192,0,0,0,5,5,28,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,242,192,0,0,0,5,5,56,227,192,0,0,0,192,0,0,0,5,5,84,226,192,0,0,0,192,0,0,0,5,5,20,234,5,5,96,242,5,5,16,229,5,5,215,232,192,0,0,0,5,5,98,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,242,192,0,0,0,5,5,99,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,232,192,0,0,0,5,5,184,227,5,5,107,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,228,192,0,0,0,192,0,0,0,5,5,123,227,5,5,105,242,192,0,0,0,192,0,0,0,5,5,103,242,5,5,100,242,5,5,152,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,233,5,5,101,242,192,0,0,0,192,0,0,0,5,5,109,242,192,0,0,0,5,5,108,242,5,5,55,228,192,0,0,0,192,0,0,0,5,5,103,226,192,0,0,0,192,0,0,0,5,5,107,229,5,5,102,242,5,5,104,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,235,5,5,154,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,235,192,0,0,0,192,0,0,0,5,5,117,242,192,0,0,0,192,0,0,0,5,5,118,242,192,0,0,0,5,5,137,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,235,5,5,87,236,5,5,120,242,5,5,17,230,5,5,236,230,5,5,113,242,5,5,119,242,5,5,68,226,192,0,0,0,5,5,235,227,192,0,0,0,192,0,0,0,5,5,110,242,5,5,115,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,231,5,5,113,234,192,0,0,0,5,5,197,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,242,192,0,0,0,5,5,155,235,192,0,0,0,5,5,114,242,192,0,0,0,5,5,123,242,192,0,0,0,5,5,121,242,192,0,0,0,5,5,116,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,235,5,5,72,234,5,5,185,227,192,0,0,0,5,5,103,233,192,0,0,0,192,0,0,0,5,5,241,232,192,0,0,0,5,5,124,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,242,5,5,127,232,5,5,111,242,192,0,0,0,5,5,39,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,236,5,5,135,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,231,192,0,0,0,5,5,131,242,192,0,0,0,5,5,164,236,192,0,0,0,192,0,0,0,5,5,214,233,5,5,125,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,226,5,5,17,229,5,5,128,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,230,5,5,133,242,192,0,0,0,5,5,132,242,5,5,127,242,192,0,0,0,5,5,130,242,192,0,0,0,192,0,0,0,5,5,2,227,192,0,0,0,5,5,129,242,5,5,73,234,192,0,0,0,192,0,0,0,5,5,196,236,192,0,0,0,192,0,0,0,5,5,32,231,5,5,221,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,242,5,5,139,242,192,0,0,0,5,5,11,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,242,5,5,138,242,192,0,0,0,5,5,22,226,192,0,0,0,192,0,0,0,5,5,18,229,5,5,40,237,192,0,0,0,5,5,213,226,192,0,0,0,5,5,32,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,236,192,0,0,0,192,0,0,0,5,5,188,226,5,5,69,231,5,5,140,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,242,192,0,0,0,192,0,0,0,5,5,237,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,236,192,0,0,0,5,5,142,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,242,192,0,0,0,5,5,143,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,236,192,0,0,0,5,5,181,233,5,5,226,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,226,192,0,0,0,192,0,0,0,5,5,49,226,192,0,0,0,192,0,0,0,5,5,149,242,192,0,0,0,192,0,0,0,5,5,152,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,242,5,5,153,242,5,5,150,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,236,5,5,156,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,230,5,5,158,242,192,0,0,0,192,0,0,0,5,5,163,242,192,0,0,0,192,0,0,0,5,5,179,233,5,5,161,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,242,192,0,0,0,192,0,0,0,5,5,188,232,192,0,0,0,192,0,0,0,5,5,162,242,192,0,0,0,5,5,151,242,192,0,0,0,5,5,157,242,192,0,0,0,5,5,164,242,5,5,0,218,5,5,154,242,192,0,0,0,5,5,165,242,192,0,0,0,192,0,0,0,5,5,70,231,192,0,0,0,5,5,171,230,192,0,0,0,5,5,65,235,192,0,0,0,5,5,94,229,192,0,0,0,5,5,146,242,5,5,160,242,5,5,124,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,231,192,0,0,0,5,5,3,227,5,5,129,229,5,5,238,230,5,5,148,242,5,5,142,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,228,192,0,0,0,5,5,147,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,242,5,5,185,230,5,5,172,228,192,0,0,0,5,5,184,242,192,0,0,0,5,5,178,242,5,5,202,227,5,5,145,233,192,0,0,0,5,5,173,242,5,5,182,242,5,5,0,141,5,5,14,226,192,0,0,0,192,0,0,0,5,5,115,226,192,0,0,0,5,5,175,242,5,5,82,232,5,5,166,242,5,5,168,242,5,5,19,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,242,192,0,0,0,5,5,180,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,236,192,0,0,0,192,0,0,0,5,5,177,242,5,5,181,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,228,192,0,0,0,5,5,239,230,192,0,0,0,192,0,0,0,5,5,189,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,242,192,0,0,0,192,0,0,0,5,5,167,242,5,5,180,233,192,0,0,0,192,0,0,0,5,5,170,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,237,5,5,44,230,5,5,248,235,192,0,0,0,5,5,186,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,234,192,0,0,0,192,0,0,0,5,5,198,242,5,5,173,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,230,192,0,0,0,5,5,188,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,236,5,5,20,229,192,0,0,0,5,5,201,242,192,0,0,0,192,0,0,0,5,5,0,204,192,0,0,0,192,0,0,0,5,5,199,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,242,192,0,0,0,192,0,0,0,5,5,195,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,236,5,5,190,242,192,0,0,0,192,0,0,0,5,5,112,233,192,0,0,0,192,0,0,0,5,5,192,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,242,192,0,0,0,5,5,194,242,5,5,33,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,242,192,0,0,0,5,5,16,230,5,5,213,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,227,192,0,0,0,5,5,191,242,5,5,196,242,5,5,197,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,232,5,5,128,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,242,192,0,0,0,192,0,0,0,5,5,211,242,192,0,0,0,192,0,0,0,5,5,209,242,192,0,0,0,5,5,107,233,192,0,0,0,192,0,0,0,5,5,216,242,5,5,206,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,242,5,5,183,242,192,0,0,0,5,5,207,227,5,5,246,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,230,192,0,0,0,192,0,0,0,5,5,73,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,237,192,0,0,0,5,5,203,242,192,0,0,0,5,5,215,242,5,5,69,226,5,5,46,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,234,192,0,0,0,5,5,57,227,5,5,18,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,235,5,5,54,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,242,5,5,212,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,242,5,5,208,242,192,0,0,0,5,5,202,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,242,192,0,0,0,192,0,0,0,5,5,223,242,5,5,224,231,192,0,0,0,192,0,0,0,5,5,251,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,230,192,0,0,0,5,5,232,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,242,5,5,16,233,5,5,222,242,5,5,61,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,242,192,0,0,0,5,5,218,242,192,0,0,0,5,5,227,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,242,5,5,220,242,5,5,226,242,192,0,0,0,5,5,137,231,192,0,0,0,5,5,217,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,242,192,0,0,0,192,0,0,0,5,5,230,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,242,192,0,0,0,5,5,234,242,5,5,236,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,233,192,0,0,0,5,5,233,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,228,5,5,159,232,5,5,231,242,5,5,59,234,192,0,0,0,192,0,0,0,5,5,238,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,242,5,5,241,242,192,0,0,0,192,0,0,0,5,5,244,242,192,0,0,0,192,0,0,0,5,5,247,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,242,5,5,60,229,5,5,40,234,192,0,0,0,192,0,0,0,5,5,144,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,236,5,5,242,242,192,0,0,0,5,5,246,242,5,5,155,232,192,0,0,0,5,5,245,242,192,0,0,0,5,5,224,242,192,0,0,0,192,0,0,0,5,5,12,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,242,192,0,0,0,192,0,0,0,5,5,252,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,242,192,0,0,0,5,5,249,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,242,192,0,0,0,5,5,251,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,235,192,0,0,0,192,0,0,0,5,5,5,243,192,0,0,0,5,5,2,243,5,5,255,242,192,0,0,0,5,5,4,243,5,5,244,233,5,5,6,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,232,5,5,147,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,243,192,0,0,0,5,5,9,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,233,5,5,189,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,230,5,5,130,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,237,5,5,112,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,243,5,5,190,232,5,5,19,243,5,5,14,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,243,5,5,130,233,5,5,0,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,237,192,0,0,0,192,0,0,0,5,5,21,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,243,192,0,0,0,5,5,20,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,243,5,5,78,235,192,0,0,0,5,5,26,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,237,192,0,0,0,192,0,0,0,5,5,33,243,192,0,0,0,5,5,225,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,243,5,5,34,243,192,0,0,0,192,0,0,0,5,5,72,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,243,192,0,0,0,5,5,97,234,5,5,28,243,5,5,31,243,5,5,242,230,192,0,0,0,5,5,175,234,192,0,0,0,192,0,0,0,5,5,35,243,192,0,0,0,5,5,63,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,243,192,0,0,0,5,5,59,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,236,5,5,39,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,233,5,5,46,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,243,192,0,0,0,5,5,235,236,192,0,0,0,5,5,45,243,192,0,0,0,5,5,47,243,5,5,73,226,192,0,0,0,5,5,42,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,238,5,5,49,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,232,5,5,198,229,5,5,51,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,243,5,5,46,231,5,5,64,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,243,192,0,0,0,5,5,37,243,5,5,53,243,192,0,0,0,192,0,0,0,5,5,55,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,243,192,0,0,0,192,0,0,0,5,5,57,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,243,192,0,0,0,5,5,66,233,192,0,0,0,5,5,61,243,5,5,60,243,192,0,0,0,192,0,0,0,5,5,62,243,192,0,0,0,5,5,63,243,192,0,0,0,192,0,0,0,5,5,77,230,5,5,33,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,236,5,5,64,243,5,5,65,243,5,5,30,232,5,5,18,230,5,5,66,243,5,5,67,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,243,5,5,110,235,5,5,165,234,192,0,0,0,192,0,0,0,5,5,69,243,5,5,87,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,243,5,5,161,226,192,0,0,0,5,5,195,227,192,0,0,0,5,5,32,236,192,0,0,0,5,5,16,236,192,0,0,0,5,5,110,226,5,5,42,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,235,192,0,0,0,5,5,70,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,231,192,0,0,0,5,5,71,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,228,5,5,72,243,192,0,0,0,5,5,132,229,5,5,74,243,5,5,73,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,227,192,0,0,0,5,5,78,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,228,192,0,0,0,192,0,0,0,5,5,166,234,192,0,0,0,192,0,0,0,5,5,81,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,231,192,0,0,0,192,0,0,0,5,5,80,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,227,5,5,82,243,5,5,84,243,192,0,0,0,5,5,83,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,243,192,0,0,0,5,5,195,228,192,0,0,0,5,5,86,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,228,192,0,0,0,5,5,8,232,192,0,0,0,5,5,79,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,243,5,5,89,243,5,5,87,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,230,192,0,0,0,192,0,0,0,5,5,232,233,5,5,237,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,243,5,5,176,232,5,5,90,243,192,0,0,0,192,0,0,0,5,5,43,237,5,5,98,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,243,5,5,93,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,236,5,5,95,243,5,5,97,243,192,0,0,0,5,5,218,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,243,5,5,250,232,5,5,45,234,192,0,0,0,192,0,0,0,5,5,151,228,5,5,99,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,243,192,0,0,0,5,5,105,236,5,5,106,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,243,5,5,74,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,229,5,5,240,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,243,5,5,104,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,243,192,0,0,0,5,5,107,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,243,192,0,0,0,5,5,229,226,192,0,0,0,192,0,0,0,5,5,111,243,192,0,0,0,192,0,0,0,5,5,110,243,192,0,0,0,5,5,113,243,5,5,112,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,5,5,190,236,192,0,0,0,5,5,2,228,192,0,0,0,5,5,96,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,236,5,5,115,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,243,192,0,0,0,5,5,139,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,243,192,0,0,0,5,5,199,229,192,0,0,0,192,0,0,0,5,5,37,233,5,5,116,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,243,192,0,0,0,5,5,92,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,228,192,0,0,0,192,0,0,0,5,5,167,234,5,5,120,243,192,0,0,0,192,0,0,0,5,5,147,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,227,192,0,0,0,5,5,123,243,5,5,181,236,192,0,0,0,192,0,0,0,5,5,198,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,232,192,0,0,0,192,0,0,0,5,5,125,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,243,5,5,236,236,5,5,13,228,5,5,218,234,5,5,74,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,243,192,0,0,0,5,5,133,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,243,5,5,220,228,5,5,41,226,5,5,134,243,192,0,0,0,5,5,122,231,5,5,131,243,5,5,242,236,192,0,0,0,192,0,0,0,5,5,137,243,5,5,159,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,243,5,5,138,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,243,5,5,136,243,192,0,0,0,192,0,0,0,5,5,108,229,192,0,0,0,192,0,0,0,5,5,139,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,243,192,0,0,0,5,5,247,234,5,5,149,243,192,0,0,0,192,0,0,0,5,5,28,227,5,5,150,243,192,0,0,0,5,5,151,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,243,192,0,0,0,5,5,154,243,5,5,155,243,5,5,153,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,235,5,5,157,243,5,5,156,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,243,5,5,158,243,5,5,160,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,243,5,5,163,243,5,5,162,243,192,0,0,0,192,0,0,0,5,5,75,229,192,0,0,0,5,5,165,243,192,0,0,0,5,5,164,243,192,0,0,0,192,0,0,0,5,5,61,227,192,0,0,0,5,5,93,231,192,0,0,0,5,5,126,233,192,0,0,0,5,5,166,243,5,5,160,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,229,192,0,0,0,5,5,85,226,5,5,167,243,192,0,0,0,5,5,137,236,192,0,0,0,192,0,0,0,5,5,127,235,5,5,168,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,233,5,5,107,236,5,5,21,229,5,5,71,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,232,5,5,27,238,192,0,0,0,5,5,18,233,5,5,162,226,5,5,169,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,243,192,0,0,0,5,5,175,243,192,0,0,0,192,0,0,0,5,5,173,243,5,5,172,243,5,5,31,241,5,5,190,226,5,5,171,243,192,0,0,0,5,5,0,184,192,0,0,0,5,5,136,234,192,0,0,0,192,0,0,0,5,5,168,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,236,5,5,176,243,5,5,174,243,5,5,224,232,5,5,142,231,192,0,0,0,192,0,0,0,5,5,137,234,192,0,0,0,5,5,233,234,192,0,0,0,5,5,178,243,5,5,194,236,5,5,97,228,5,5,179,243,192,0,0,0,5,5,177,243,5,5,180,234,5,5,180,243,192,0,0,0,5,5,181,243,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,192,0,0,0,5,5,34,231,5,5,186,243,192,0,0,0,5,5,183,243,5,5,15,234,5,5,182,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,227,192,0,0,0,192,0,0,0,5,5,189,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,243,5,5,185,243,192,0,0,0,5,5,188,243,5,5,187,243,5,5,225,234,192,0,0,0,192,0,0,0,5,5,10,232,5,5,9,232,192,0,0,0,5,5,149,227,192,0,0,0,192,0,0,0,5,5,190,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,243,192,0,0,0,192,0,0,0,5,5,192,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,243,192,0,0,0,5,5,193,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,243,5,5,198,234,5,5,196,243,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,5,5,200,243,5,5,72,231,192,0,0,0,192,0,0,0,5,5,201,243,5,5,199,243,5,5,46,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,243,5,5,197,243,192,0,0,0,5,5,254,234,192,0,0,0,5,5,243,230,192,0,0,0,192,0,0,0,5,5,204,243,192,0,0,0,192,0,0,0,5,5,203,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,243,192,0,0,0,5,5,20,230,5,5,95,229,192,0,0,0,192,0,0,0,5,5,185,233,5,5,206,243,192,0,0,0,5,5,47,233,192,0,0,0,192,0,0,0,5,5,208,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,236,5,5,207,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,243,192,0,0,0,5,5,215,243,5,5,216,243,5,5,216,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,243,192,0,0,0,5,5,211,243,192,0,0,0,5,5,209,243,5,5,210,243,192,0,0,0,5,5,212,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,243,192,0,0,0,5,5,217,243,192,0,0,0,5,5,218,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,243,5,5,222,243,5,5,223,243,5,5,224,243,192,0,0,0,5,5,225,243,192,0,0,0,192,0,0,0,5,5,221,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,243,5,5,229,243,5,5,230,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,235,192,0,0,0,5,5,233,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,243,5,5,235,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,243,5,5,236,243,5,5,237,243,5,5,238,243,192,0,0,0,5,5,240,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,243,192,0,0,0,5,5,242,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,243,192,0,0,0,5,5,244,243,192,0,0,0,5,5,141,234,5,5,146,233,5,5,245,243,5,5,114,234,5,5,240,234,192,0,0,0,5,5,246,243,192,0,0,0,192,0,0,0,5,5,247,243,5,5,108,233,192,0,0,0,5,5,191,226,5,5,22,229,5,5,248,243,192,0,0,0,192,0,0,0,5,5,249,243,192,0,0,0,192,0,0,0,5,5,250,243,192,0,0,0,5,5,183,229,192,0,0,0,192,0,0,0,5,5,252,243,192,0,0,0,192,0,0,0,5,5,251,243,192,0,0,0,192,0,0,0,5,5,253,243,5,5,254,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,234,192,0,0,0,5,5,255,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,244,192,0,0,0,192,0,0,0,5,5,134,250,5,5,3,244,5,5,4,244,5,5,5,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,229,192,0,0,0,192,0,0,0,5,5,6,244,5,5,86,234,192,0,0,0,192,0,0,0,5,5,217,235,192,0,0,0,5,5,42,226,192,0,0,0,5,5,51,226,192,0,0,0,192,0,0,0,5,5,7,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,244,5,5,178,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,231,5,5,50,242,192,0,0,0,5,5,10,244,5,5,27,236,192,0,0,0,5,5,11,244,192,0,0,0,5,5,62,227,5,5,181,234,5,5,12,244,192,0,0,0,5,5,13,244,192,0,0,0,192,0,0,0,5,5,14,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,236,192,0,0,0,5,5,34,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,232,192,0,0,0,192,0,0,0,5,5,16,244,192,0,0,0,192,0,0,0,5,5,174,230,192,0,0,0,192,0,0,0,5,5,244,230,192,0,0,0,192,0,0,0,5,5,19,244,192,0,0,0,192,0,0,0,5,5,18,244,5,5,17,244,5,5,219,234,192,0,0,0,5,5,63,227,5,5,155,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,244,192,0,0,0,192,0,0,0,5,5,22,244,5,5,73,231,5,5,12,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,244,5,5,23,244,5,5,24,244,192,0,0,0,192,0,0,0,5,5,20,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,244,5,5,27,244,192,0,0,0,5,5,19,233,192,0,0,0,5,5,91,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,244,5,5,32,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,231,192,0,0,0,5,5,228,233,192,0,0,0,5,5,33,244,5,5,205,235,192,0,0,0,5,5,30,244,192,0,0,0,192,0,0,0,5,5,31,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,244,5,5,34,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,244,192,0,0,0,192,0,0,0,5,5,37,244,192,0,0,0,192,0,0,0,5,5,39,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,244,192,0,0,0,5,5,40,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,230,5,5,220,236,192,0,0,0,192,0,0,0,5,5,42,244,192,0,0,0,192,0,0,0,5,5,215,233,192,0,0,0,192,0,0,0,5,5,43,244,192,0,0,0,192,0,0,0,5,5,44,244,192,0,0,0,5,5,48,244,5,5,46,244,5,5,47,244,192,0,0,0,5,5,45,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,244,192,0,0,0,192,0,0,0,5,5,52,244,5,5,17,236,5,5,53,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,236,5,5,54,244,192,0,0,0,5,5,210,232,192,0,0,0,5,5,106,234,192,0,0,0,5,5,33,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,232,5,5,55,244,5,5,238,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,244,192,0,0,0,5,5,152,228,5,5,133,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,233,5,5,134,229,5,5,164,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,235,192,0,0,0,5,5,75,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,236,5,5,23,229,192,0,0,0,192,0,0,0,5,5,153,228,192,0,0,0,192,0,0,0,5,5,129,234,192,0,0,0,5,5,64,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,244,5,5,90,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,244,5,5,207,226,5,5,63,244,192,0,0,0,192,0,0,0,5,5,200,234,192,0,0,0,5,5,12,226,192,0,0,0,5,5,156,229,192,0,0,0,5,5,72,237,192,0,0,0,192,0,0,0,5,5,67,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,235,192,0,0,0,5,5,193,231,5,5,71,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,226,192,0,0,0,5,5,78,244,192,0,0,0,5,5,77,244,192,0,0,0,192,0,0,0,5,5,21,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,244,5,5,74,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,244,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,234,5,5,73,244,192,0,0,0,192,0,0,0,5,5,76,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,244,5,5,219,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,244,192,0,0,0,192,0,0,0,5,5,0,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,232,192,0,0,0,192,0,0,0,5,5,88,244,5,5,87,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,244,5,5,91,244,5,5,90,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,230,192,0,0,0,5,5,255,236,192,0,0,0,5,5,64,230,192,0,0,0,5,5,92,244,5,5,75,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,227,5,5,125,227,5,5,241,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,236,192,0,0,0,192,0,0,0,5,5,98,244,192,0,0,0,5,5,97,244,5,5,12,232,5,5,94,244,192,0,0,0,192,0,0,0,5,5,96,244,192,0,0,0,192,0,0,0,5,5,151,230,5,5,74,231,5,5,95,244,5,5,93,244,192,0,0,0,5,5,42,234,192,0,0,0,192,0,0,0,5,5,247,230,192,0,0,0,192,0,0,0,5,5,248,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,233,192,0,0,0,192,0,0,0,5,5,99,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,244,5,5,122,244,5,5,14,228,192,0,0,0,192,0,0,0,5,5,51,237,5,5,251,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,244,192,0,0,0,192,0,0,0,5,5,140,226,5,5,91,233,5,5,61,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,227,5,5,103,244,192,0,0,0,192,0,0,0,5,5,105,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,244,192,0,0,0,5,5,41,234,192,0,0,0,192,0,0,0,5,5,107,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,244,5,5,109,244,192,0,0,0,192,0,0,0,5,5,15,228,5,5,141,226,5,5,229,233,5,5,116,230,5,5,242,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,244,192,0,0,0,5,5,117,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,226,5,5,255,234,192,0,0,0,192,0,0,0,5,5,111,244,192,0,0,0,192,0,0,0,5,5,201,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,232,192,0,0,0,5,5,114,244,192,0,0,0,5,5,115,244,5,5,105,234,192,0,0,0,5,5,75,231,5,5,112,244,192,0,0,0,5,5,229,232,192,0,0,0,192,0,0,0,5,5,113,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,244,192,0,0,0,192,0,0,0,5,5,92,233,192,0,0,0,5,5,117,244,5,5,175,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,236,192,0,0,0,192,0,0,0,5,5,223,234,5,5,118,244,5,5,119,244,5,5,217,232,192,0,0,0,5,5,221,236,192,0,0,0,192,0,0,0,5,5,121,244,5,5,120,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,230,192,0,0,0,192,0,0,0,5,5,123,244,5,5,0,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,244,5,5,142,226,5,5,98,228,5,5,125,244,5,5,24,229,5,5,68,229,192,0,0,0,5,5,130,235,5,5,127,244,192,0,0,0,192,0,0,0,5,5,206,235,192,0,0,0,192,0,0,0,5,5,129,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,231,5,5,43,226,5,5,116,226,5,5,0,138,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,244,5,5,131,244,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,244,192,0,0,0,5,5,231,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,228,192,0,0,0,5,5,188,227,192,0,0,0,192,0,0,0,5,5,135,244,5,5,43,228,192,0,0,0,192,0,0,0,5,5,136,244,192,0,0,0,5,5,228,231,192,0,0,0,5,5,237,233,192,0,0,0,5,5,200,231,5,5,165,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,232,5,5,51,232,192,0,0,0,5,5,139,244,5,5,141,244,5,5,138,244,5,5,140,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,244,5,5,58,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,227,5,5,138,236,5,5,144,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,227,5,5,147,244,5,5,146,244,192,0,0,0,5,5,150,244,5,5,143,244,192,0,0,0,5,5,151,244,5,5,191,236,192,0,0,0,5,5,152,244,192,0,0,0,5,5,153,244,192,0,0,0,192,0,0,0,5,5,25,239,5,5,155,244,192,0,0,0,5,5,154,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,244,5,5,157,244,192,0,0,0,5,5,203,236,5,5,158,244,192,0,0,0,5,5,112,249,5,5,249,230,5,5,159,244,5,5,160,244,5,5,163,230,192,0,0,0,5,5,216,233,5,5,161,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,232,192,0,0,0,192,0,0,0,5,5,162,244,192,0,0,0,5,5,192,232,5,5,163,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,227,192,0,0,0,5,5,198,237,5,5,225,232,5,5,33,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,227,192,0,0,0,192,0,0,0,5,5,164,244,192,0,0,0,5,5,177,244,192,0,0,0,5,5,167,244,192,0,0,0,5,5,190,227,192,0,0,0,5,5,166,244,5,5,179,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,244,192,0,0,0,5,5,250,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,244,5,5,170,244,192,0,0,0,5,5,109,233,192,0,0,0,192,0,0,0,5,5,171,244,192,0,0,0,5,5,246,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,231,5,5,34,235,192,0,0,0,5,5,173,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,244,192,0,0,0,5,5,172,244,5,5,174,244,192,0,0,0,192,0,0,0,5,5,171,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,244,5,5,234,234,192,0,0,0,5,5,132,234,5,5,187,233,192,0,0,0,5,5,16,228,5,5,180,244,5,5,178,244,192,0,0,0,5,5,147,234,5,5,175,244,5,5,226,232,5,5,189,233,192,0,0,0,5,5,188,233,192,0,0,0,5,5,166,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,244,192,0,0,0,5,5,185,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,244,192,0,0,0,5,5,189,244,192,0,0,0,5,5,186,244,5,5,187,244,192,0,0,0,192,0,0,0,5,5,184,244,5,5,182,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,235,5,5,143,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,244,192,0,0,0,5,5,193,244,192,0,0,0,5,5,198,244,192,0,0,0,192,0,0,0,5,5,197,244,192,0,0,0,5,5,115,234,5,5,255,235,192,0,0,0,5,5,201,229,5,5,191,244,5,5,200,244,5,5,195,244,192,0,0,0,5,5,194,244,5,5,190,244,192,0,0,0,5,5,192,244,192,0,0,0,5,5,65,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,232,192,0,0,0,192,0,0,0,5,5,229,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,234,192,0,0,0,192,0,0,0,5,5,205,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,231,5,5,202,244,192,0,0,0,192,0,0,0,5,5,173,234,192,0,0,0,5,5,206,244,5,5,111,235,192,0,0,0,5,5,223,232,192,0,0,0,5,5,201,244,5,5,203,244,192,0,0,0,192,0,0,0,5,5,204,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,244,192,0,0,0,192,0,0,0,5,5,50,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,233,5,5,212,244,5,5,211,244,192,0,0,0,192,0,0,0,5,5,208,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,244,192,0,0,0,192,0,0,0,5,5,221,244,5,5,218,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,244,5,5,60,238,5,5,216,244,5,5,210,244,192,0,0,0,192,0,0,0,5,5,219,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,244,192,0,0,0,5,5,66,227,192,0,0,0,5,5,222,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,244,192,0,0,0,192,0,0,0,5,5,224,244,5,5,227,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,244,5,5,212,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,244,5,5,20,237,5,5,137,235,5,5,233,244,192,0,0,0,192,0,0,0,5,5,230,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,244,5,5,186,231,192,0,0,0,5,5,232,244,5,5,234,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,244,192,0,0,0,5,5,238,244,192,0,0,0,5,5,235,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,244,5,5,213,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,244,5,5,239,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,235,192,0,0,0,5,5,241,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,236,192,0,0,0,192,0,0,0,5,5,4,228,5,5,61,228,5,5,242,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,235,192,0,0,0,5,5,114,231,192,0,0,0,5,5,10,236,192,0,0,0,192,0,0,0,5,5,243,244,192,0,0,0,5,5,201,236,192,0,0,0,192,0,0,0,5,5,116,234,192,0,0,0,5,5,14,232,5,5,52,234,192,0,0,0,192,0,0,0,5,5,153,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,158,192,0,0,0,5,5,248,244,5,5,246,244,192,0,0,0,5,5,244,244,5,5,25,227,192,0,0,0,5,5,251,230,5,5,249,244,192,0,0,0,192,0,0,0,5,5,247,244,192,0,0,0,5,5,245,244,5,5,253,244,192,0,0,0,192,0,0,0,5,5,252,244,5,5,251,244,5,5,250,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,244,5,5,162,231,192,0,0,0,5,5,2,245,192,0,0,0,5,5,4,245,192,0,0,0,192,0,0,0,5,5,3,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,233,192,0,0,0,5,5,5,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,245,192,0,0,0,5,5,81,235,5,5,52,232,5,5,25,229,192,0,0,0,5,5,8,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,245,192,0,0,0,192,0,0,0,5,5,11,245,192,0,0,0,5,5,12,245,192,0,0,0,5,5,13,245,192,0,0,0,5,5,243,229,192,0,0,0,5,5,14,245,5,5,99,228,192,0,0,0,192,0,0,0,5,5,192,227,192,0,0,0,5,5,128,227,192,0,0,0,5,5,16,245,192,0,0,0,5,5,77,236,5,5,26,229,5,5,15,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,245,5,5,64,236,192,0,0,0,5,5,60,234,192,0,0,0,192,0,0,0,5,5,239,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,230,5,5,18,245,192,0,0,0,5,5,65,230,5,5,27,229,5,5,244,229,5,5,191,227,5,5,82,235,5,5,17,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,232,5,5,188,235,5,5,167,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,229,5,5,65,233,192,0,0,0,5,5,22,245,5,5,245,236,5,5,137,229,192,0,0,0,5,5,23,245,5,5,76,231,192,0,0,0,5,5,25,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,230,5,5,96,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,245,192,0,0,0,192,0,0,0,5,5,118,230,5,5,176,228,5,5,16,232,5,5,20,245,5,5,26,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,245,5,5,100,228,192,0,0,0,5,5,29,245,5,5,33,245,5,5,127,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,245,192,0,0,0,192,0,0,0,5,5,28,229,192,0,0,0,192,0,0,0,5,5,165,236,5,5,0,154,5,5,34,245,192,0,0,0,192,0,0,0,5,5,193,227,192,0,0,0,5,5,31,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,245,192,0,0,0,192,0,0,0,5,5,191,233,5,5,30,245,5,5,27,245,192,0,0,0,5,5,192,226,5,5,204,231,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,228,5,5,89,232,5,5,40,245,5,5,54,232,192,0,0,0,192,0,0,0,5,5,53,245,192,0,0,0,192,0,0,0,5,5,49,245,5,5,43,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,245,5,5,104,230,5,5,0,187,5,5,42,245,5,5,50,245,5,5,54,245,5,5,29,229,5,5,48,236,192,0,0,0,5,5,58,233,5,5,44,245,192,0,0,0,192,0,0,0,5,5,52,245,192,0,0,0,5,5,41,245,5,5,194,232,192,0,0,0,5,5,46,245,5,5,0,155,5,5,36,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,245,192,0,0,0,192,0,0,0,5,5,17,228,5,5,202,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,232,192,0,0,0,5,5,230,236,5,5,187,230,192,0,0,0,192,0,0,0,5,5,93,245,192,0,0,0,192,0,0,0,5,5,55,245,192,0,0,0,5,5,230,231,192,0,0,0,5,5,51,245,5,5,56,245,5,5,58,245,192,0,0,0,5,5,93,233,5,5,61,245,192,0,0,0,192,0,0,0,5,5,57,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,235,5,5,67,227,192,0,0,0,192,0,0,0,5,5,37,236,192,0,0,0,192,0,0,0,5,5,0,188,192,0,0,0,192,0,0,0,5,5,60,245,192,0,0,0,5,5,21,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,226,192,0,0,0,192,0,0,0,5,5,14,234,5,5,62,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,245,5,5,63,245,5,5,70,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,234,192,0,0,0,192,0,0,0,5,5,56,230,5,5,68,245,192,0,0,0,5,5,65,245,5,5,71,245,5,5,64,245,192,0,0,0,192,0,0,0,5,5,144,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,235,192,0,0,0,192,0,0,0,5,5,152,230,192,0,0,0,192,0,0,0,5,5,67,245,5,5,79,245,192,0,0,0,192,0,0,0,5,5,75,245,192,0,0,0,5,5,78,245,192,0,0,0,5,5,76,245,5,5,80,245,5,5,74,245,192,0,0,0,5,5,48,245,5,5,187,231,192,0,0,0,192,0,0,0,5,5,169,234,192,0,0,0,5,5,77,245,192,0,0,0,192,0,0,0,5,5,72,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,231,5,5,102,228,192,0,0,0,5,5,119,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,231,5,5,252,231,5,5,83,245,192,0,0,0,192,0,0,0,5,5,85,245,5,5,86,245,192,0,0,0,192,0,0,0,5,5,82,245,5,5,84,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,245,5,5,81,245,192,0,0,0,5,5,89,245,5,5,88,245,192,0,0,0,192,0,0,0,5,5,244,235,192,0,0,0,192,0,0,0,5,5,63,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,245,192,0,0,0,5,5,91,245,5,5,90,245,5,5,94,245,192,0,0,0,5,5,96,245,192,0,0,0,192,0,0,0,5,5,202,229,5,5,92,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,245,5,5,98,245,192,0,0,0,192,0,0,0,5,5,99,245,192,0,0,0,5,5,105,245,5,5,125,233,5,5,101,245,192,0,0,0,5,5,100,245,5,5,102,245,5,5,103,245,192,0,0,0,5,5,104,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,245,5,5,107,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,227,192,0,0,0,5,5,108,245,192,0,0,0,5,5,109,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,245,5,5,112,245,5,5,113,245,192,0,0,0,5,5,114,245,5,5,115,245,192,0,0,0,192,0,0,0,5,5,117,245,5,5,116,245,192,0,0,0,192,0,0,0,5,5,118,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,245,5,5,120,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,245,5,5,121,245,5,5,122,245,5,5,145,229,5,5,103,228,192,0,0,0,192,0,0,0,5,5,218,232,192,0,0,0,5,5,145,234,192,0,0,0,5,5,188,230,192,0,0,0,192,0,0,0,5,5,77,234,192,0,0,0,5,5,203,234,5,5,124,245,5,5,140,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,245,5,5,127,245,192,0,0,0,5,5,157,236,5,5,126,245,5,5,129,245,5,5,128,245,192,0,0,0,5,5,139,236,192,0,0,0,5,5,130,245,192,0,0,0,5,5,220,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,245,192,0,0,0,192,0,0,0,5,5,133,245,5,5,132,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,245,5,5,70,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,231,5,5,151,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,245,5,5,136,245,192,0,0,0,192,0,0,0,5,5,137,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,245,192,0,0,0,5,5,141,245,5,5,138,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,245,5,5,144,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,245,192,0,0,0,5,5,154,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,230,192,0,0,0,5,5,147,245,5,5,146,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,231,5,5,148,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,245,192,0,0,0,192,0,0,0,5,5,150,245,192,0,0,0,5,5,93,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,227,192,0,0,0,192,0,0,0,5,5,151,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,245,192,0,0,0,5,5,215,235,5,5,155,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,236,5,5,45,237,192,0,0,0,5,5,31,229,5,5,155,245,5,5,66,230,5,5,154,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,245,5,5,23,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,232,192,0,0,0,5,5,157,245,192,0,0,0,192,0,0,0,5,5,30,229,192,0,0,0,5,5,49,236,5,5,158,245,5,5,159,245,192,0,0,0,192,0,0,0,5,5,160,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,230,192,0,0,0,192,0,0,0,5,5,71,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,245,192,0,0,0,5,5,195,232,192,0,0,0,5,5,163,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,231,192,0,0,0,5,5,168,245,192,0,0,0,5,5,169,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,235,5,5,170,245,192,0,0,0,5,5,55,232,5,5,171,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,237,5,5,175,245,192,0,0,0,5,5,174,245,5,5,173,245,5,5,20,233,192,0,0,0,5,5,176,245,5,5,48,231,192,0,0,0,5,5,177,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,245,5,5,46,237,5,5,179,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,245,5,5,182,245,5,5,181,245,5,5,131,234,192,0,0,0,5,5,27,234,192,0,0,0,5,5,52,237,5,5,135,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,245,192,0,0,0,192,0,0,0,5,5,253,230,192,0,0,0,5,5,230,234,192,0,0,0,5,5,185,245,5,5,183,245,192,0,0,0,5,5,70,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,228,5,5,246,229,192,0,0,0,192,0,0,0,5,5,204,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,228,5,5,189,235,192,0,0,0,5,5,188,245,5,5,186,245,192,0,0,0,5,5,32,229,192,0,0,0,5,5,33,229,5,5,0,199,192,0,0,0,5,5,152,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,189,5,5,193,245,192,0,0,0,5,5,196,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,234,192,0,0,0,5,5,129,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,245,192,0,0,0,192,0,0,0,5,5,191,245,5,5,194,245,5,5,189,245,192,0,0,0,5,5,192,245,5,5,160,235,192,0,0,0,192,0,0,0,5,5,199,228,192,0,0,0,192,0,0,0,5,5,0,219,5,5,190,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,245,192,0,0,0,5,5,198,245,192,0,0,0,192,0,0,0,5,5,217,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,245,5,5,61,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,229,192,0,0,0,192,0,0,0,5,5,240,227,5,5,176,231,5,5,60,237,5,5,8,236,5,5,196,245,5,5,188,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,227,5,5,199,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,245,192,0,0,0,5,5,170,232,192,0,0,0,5,5,62,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,245,192,0,0,0,192,0,0,0,5,5,95,231,192,0,0,0,5,5,35,235,5,5,208,245,192,0,0,0,5,5,207,245,5,5,34,229,5,5,73,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,245,5,5,213,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,230,192,0,0,0,192,0,0,0,5,5,211,245,192,0,0,0,5,5,74,229,5,5,210,245,192,0,0,0,192,0,0,0,5,5,214,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,233,5,5,62,235,5,5,233,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,232,5,5,218,245,192,0,0,0,5,5,219,245,5,5,215,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,245,192,0,0,0,5,5,217,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,245,192,0,0,0,5,5,221,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,235,192,0,0,0,5,5,230,235,5,5,228,234,192,0,0,0,192,0,0,0,5,5,220,245,192,0,0,0,192,0,0,0,5,5,223,245,5,5,222,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,235,5,5,226,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,245,192,0,0,0,192,0,0,0,5,5,253,231,192,0,0,0,5,5,228,245,192,0,0,0,192,0,0,0,5,5,230,245,192,0,0,0,5,5,234,245,192,0,0,0,192,0,0,0,5,5,231,245,5,5,229,245,5,5,63,234,5,5,232,245,192,0,0,0,5,5,233,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,226,192,0,0,0,5,5,240,245,5,5,235,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,245,192,0,0,0,5,5,71,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,245,5,5,238,245,5,5,241,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,245,5,5,243,245,192,0,0,0,192,0,0,0,5,5,77,231,192,0,0,0,5,5,163,226,192,0,0,0,5,5,244,245,5,5,237,236,192,0,0,0,5,5,25,230,192,0,0,0,192,0,0,0,5,5,121,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,229,5,5,219,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,245,5,5,246,245,5,5,13,226,192,0,0,0,5,5,247,245,192,0,0,0,192,0,0,0,5,5,248,245,5,5,249,245,192,0,0,0,192,0,0,0,5,5,250,245,192,0,0,0,5,5,251,245,5,5,241,227,5,5,7,241,5,5,252,245,192,0,0,0,5,5,205,231,5,5,253,245,5,5,57,230,192,0,0,0,5,5,254,245,192,0,0,0,5,5,89,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,245,5,5,122,235,5,5,84,227,192,0,0,0,192,0,0,0,5,5,234,231,5,5,164,230,192,0,0,0,5,5,47,235,5,5,122,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,246,5,5,36,229,5,5,3,246,5,5,170,234,192,0,0,0,5,5,17,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,246,192,0,0,0,5,5,111,232,5,5,117,234,5,5,177,228,5,5,4,246,5,5,235,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,246,5,5,7,246,5,5,10,246,192,0,0,0,192,0,0,0,5,5,9,246,192,0,0,0,5,5,11,246,192,0,0,0,192,0,0,0,5,5,13,246,192,0,0,0,5,5,12,246,192,0,0,0,5,5,71,227,192,0,0,0,5,5,14,246,192,0,0,0,5,5,15,246,5,5,16,246,192,0,0,0,192,0,0,0,5,5,97,229,5,5,223,236,192,0,0,0,5,5,18,246,5,5,49,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,226,5,5,19,246,5,5,20,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,208,192,0,0,0,5,5,22,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,230,192,0,0,0,5,5,25,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,226,5,5,0,144,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,246,5,5,27,246,5,5,78,234,192,0,0,0,5,5,78,231,192,0,0,0,5,5,144,226,192,0,0,0,5,5,161,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,228,5,5,18,228,192,0,0,0,5,5,26,246,192,0,0,0,5,5,164,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,226,5,5,31,246,5,5,2,237,5,5,131,232,192,0,0,0,192,0,0,0,5,5,2,235,192,0,0,0,5,5,43,246,192,0,0,0,5,5,145,226,5,5,41,246,192,0,0,0,5,5,39,246,5,5,30,246,192,0,0,0,5,5,28,246,192,0,0,0,5,5,29,246,192,0,0,0,5,5,81,230,5,5,34,228,5,5,251,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,226,192,0,0,0,5,5,33,246,5,5,32,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,246,5,5,34,246,5,5,37,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,236,5,5,36,246,5,5,146,226,5,5,23,227,5,5,40,246,192,0,0,0,192,0,0,0,5,5,42,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,246,5,5,55,246,5,5,56,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,137,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,207,192,0,0,0,192,0,0,0,5,5,54,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,246,192,0,0,0,5,5,48,246,5,5,47,246,192,0,0,0,5,5,45,246,5,5,44,246,5,5,231,232,192,0,0,0,5,5,161,232,5,5,50,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,232,5,5,105,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,226,5,5,51,246,192,0,0,0,5,5,37,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,246,192,0,0,0,5,5,70,246,192,0,0,0,5,5,147,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,226,5,5,67,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,246,192,0,0,0,5,5,65,246,192,0,0,0,5,5,72,246,5,5,66,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,246,192,0,0,0,192,0,0,0,5,5,62,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,227,5,5,60,246,5,5,71,246,192,0,0,0,5,5,61,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,246,192,0,0,0,5,5,59,246,5,5,124,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,227,192,0,0,0,5,5,19,228,192,0,0,0,5,5,77,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,226,192,0,0,0,192,0,0,0,5,5,254,230,192,0,0,0,5,5,80,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,229,192,0,0,0,192,0,0,0,5,5,147,233,5,5,85,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,235,192,0,0,0,5,5,76,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,226,5,5,200,228,5,5,229,234,5,5,86,246,192,0,0,0,5,5,74,246,192,0,0,0,192,0,0,0,5,5,83,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,246,192,0,0,0,5,5,78,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,246,5,5,218,233,192,0,0,0,192,0,0,0,5,5,84,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,246,5,5,162,235,5,5,87,246,5,5,0,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,246,192,0,0,0,5,5,88,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,234,5,5,95,246,192,0,0,0,5,5,106,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,246,192,0,0,0,192,0,0,0,5,5,91,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,246,5,5,166,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,246,192,0,0,0,192,0,0,0,5,5,141,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,235,5,5,111,246,5,5,193,233,192,0,0,0,192,0,0,0,5,5,0,143,192,0,0,0,192,0,0,0,5,5,104,246,192,0,0,0,5,5,100,246,5,5,58,232,5,5,94,246,5,5,102,246,5,5,107,246,192,0,0,0,5,5,44,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,136,192,0,0,0,5,5,99,246,192,0,0,0,5,5,108,246,5,5,54,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,246,192,0,0,0,5,5,98,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,236,192,0,0,0,192,0,0,0,5,5,5,235,192,0,0,0,192,0,0,0,5,5,114,246,192,0,0,0,5,5,123,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,231,5,5,112,246,192,0,0,0,5,5,117,246,5,5,59,232,192,0,0,0,192,0,0,0,5,5,113,246,192,0,0,0,5,5,120,246,192,0,0,0,192,0,0,0,5,5,227,232,192,0,0,0,5,5,121,246,192,0,0,0,192,0,0,0,5,5,142,236,5,5,110,246,5,5,208,226,192,0,0,0,5,5,116,246,192,0,0,0,192,0,0,0,5,5,119,246,5,5,6,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,246,192,0,0,0,192,0,0,0,5,5,115,246,5,5,118,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,235,192,0,0,0,5,5,23,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,246,192,0,0,0,192,0,0,0,5,5,125,246,5,5,49,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,235,192,0,0,0,5,5,250,235,5,5,132,246,5,5,131,246,192,0,0,0,5,5,127,246,5,5,128,246,192,0,0,0,5,5,18,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,246,192,0,0,0,5,5,124,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,246,5,5,0,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,235,192,0,0,0,192,0,0,0,5,5,134,246,5,5,138,246,192,0,0,0,5,5,183,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,246,5,5,2,231,5,5,55,230,5,5,140,246,192,0,0,0,192,0,0,0,5,5,242,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,246,192,0,0,0,5,5,55,235,5,5,136,246,192,0,0,0,5,5,97,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,237,5,5,194,233,5,5,49,235,192,0,0,0,192,0,0,0,5,5,148,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,246,192,0,0,0,5,5,142,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,234,192,0,0,0,192,0,0,0,5,5,152,246,5,5,144,246,192,0,0,0,5,5,146,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,246,5,5,145,246,192,0,0,0,192,0,0,0,5,5,149,246,192,0,0,0,192,0,0,0,5,5,78,226,192,0,0,0,5,5,7,234,192,0,0,0,5,5,150,246,5,5,153,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,246,192,0,0,0,5,5,236,231,192,0,0,0,5,5,147,246,5,5,181,229,5,5,79,231,5,5,68,228,5,5,78,236,192,0,0,0,5,5,83,236,5,5,190,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,246,5,5,158,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,236,192,0,0,0,5,5,159,246,5,5,161,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,246,5,5,163,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,233,5,5,164,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,234,5,5,151,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,230,192,0,0,0,5,5,166,246,5,5,171,246,5,5,60,232,192,0,0,0,192,0,0,0,5,5,170,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,246,5,5,17,232,192,0,0,0,192,0,0,0,5,5,167,246,5,5,169,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,246,192,0,0,0,192,0,0,0,5,5,42,242,5,5,27,242,192,0,0,0,192,0,0,0,5,5,174,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,236,192,0,0,0,5,5,15,244,5,5,175,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,246,5,5,201,228,192,0,0,0,5,5,170,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,246,5,5,228,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,227,192,0,0,0,5,5,208,236,192,0,0,0,5,5,41,228,5,5,180,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,234,192,0,0,0,5,5,0,152,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,226,5,5,187,246,5,5,188,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,246,192,0,0,0,5,5,203,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,246,5,5,66,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,246,5,5,186,246,5,5,196,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,246,5,5,193,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,246,192,0,0,0,5,5,192,246,5,5,70,230,192,0,0,0,5,5,194,246,192,0,0,0,5,5,197,232,192,0,0,0,5,5,106,228,5,5,218,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,226,192,0,0,0,5,5,202,246,192,0,0,0,192,0,0,0,5,5,198,246,5,5,201,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,246,192,0,0,0,192,0,0,0,5,5,200,246,5,5,6,235,5,5,184,234,5,5,203,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,232,5,5,213,246,192,0,0,0,5,5,209,246,192,0,0,0,192,0,0,0,5,5,165,226,192,0,0,0,5,5,207,246,192,0,0,0,5,5,164,235,5,5,208,246,192,0,0,0,192,0,0,0,5,5,205,246,192,0,0,0,5,5,206,246,5,5,211,246,5,5,214,246,192,0,0,0,192,0,0,0,5,5,212,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,246,5,5,204,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,232,192,0,0,0,5,5,221,246,192,0,0,0,5,5,4,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,246,192,0,0,0,192,0,0,0,5,5,217,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,231,192,0,0,0,5,5,47,237,5,5,225,246,192,0,0,0,5,5,226,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,246,192,0,0,0,5,5,52,231,192,0,0,0,5,5,228,246,192,0,0,0,5,5,231,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,246,5,5,222,246,192,0,0,0,192,0,0,0,5,5,233,246,192,0,0,0,192,0,0,0,5,5,150,226,192,0,0,0,5,5,229,246,192,0,0,0,5,5,234,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,246,192,0,0,0,5,5,23,233,192,0,0,0,5,5,224,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,234,192,0,0,0,192,0,0,0,5,5,238,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,246,192,0,0,0,192,0,0,0,5,5,236,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,236,5,5,250,246,192,0,0,0,5,5,241,246,192,0,0,0,192,0,0,0,5,5,242,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,246,192,0,0,0,5,5,249,246,5,5,248,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,246,192,0,0,0,5,5,6,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,246,192,0,0,0,192,0,0,0,5,5,252,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,247,5,5,4,247,192,0,0,0,5,5,194,226,192,0,0,0,5,5,152,227,192,0,0,0,192,0,0,0,5,5,2,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,246,5,5,5,247,5,5,254,246,192,0,0,0,5,5,7,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,247,5,5,8,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,247,5,5,10,247,5,5,195,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,247,192,0,0,0,192,0,0,0,5,5,14,247,192,0,0,0,5,5,16,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,228,192,0,0,0,5,5,18,247,192,0,0,0,5,5,17,247,192,0,0,0,5,5,124,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,229,5,5,126,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,247,5,5,157,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,226,192,0,0,0,5,5,20,247,192,0,0,0,5,5,46,226,192,0,0,0,5,5,3,231,5,5,21,247,192,0,0,0,192,0,0,0,5,5,39,229,5,5,22,247,5,5,0,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,234,192,0,0,0,192,0,0,0,5,5,23,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,231,192,0,0,0,5,5,30,247,192,0,0,0,192,0,0,0,5,5,27,247,192,0,0,0,5,5,243,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,247,5,5,25,247,5,5,20,228,192,0,0,0,5,5,24,247,5,5,31,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,228,192,0,0,0,192,0,0,0,5,5,132,232,192,0,0,0,5,5,37,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,232,5,5,32,247,192,0,0,0,5,5,35,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,247,192,0,0,0,5,5,38,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,234,192,0,0,0,192,0,0,0,5,5,34,247,192,0,0,0,5,5,39,247,5,5,41,247,192,0,0,0,192,0,0,0,5,5,197,228,5,5,29,247,192,0,0,0,5,5,0,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,247,192,0,0,0,5,5,139,229,5,5,14,237,5,5,42,247,5,5,43,247,5,5,61,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,247,5,5,109,236,192,0,0,0,192,0,0,0,5,5,45,247,5,5,46,247,192,0,0,0,192,0,0,0,5,5,128,235,5,5,47,247,192,0,0,0,5,5,112,229,192,0,0,0,5,5,185,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,247,5,5,4,231,5,5,51,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,236,5,5,48,247,192,0,0,0,192,0,0,0,5,5,50,247,5,5,165,231,5,5,136,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,247,192,0,0,0,5,5,54,247,192,0,0,0,192,0,0,0,5,5,63,235,192,0,0,0,192,0,0,0,5,5,56,247,192,0,0,0,5,5,55,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,227,192,0,0,0,5,5,165,235,5,5,57,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,247,5,5,59,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,247,5,5,62,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,247,192,0,0,0,5,5,67,247,192,0,0,0,192,0,0,0,5,5,65,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,247,192,0,0,0,5,5,58,247,5,5,64,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,247,5,5,56,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,247,5,5,21,228,5,5,70,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,247,192,0,0,0,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,247,192,0,0,0,192,0,0,0,5,5,74,247,192,0,0,0,5,5,76,247,192,0,0,0,192,0,0,0,5,5,125,230,192,0,0,0,5,5,77,247,192,0,0,0,192,0,0,0,5,5,78,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,247,5,5,166,231,192,0,0,0,5,5,143,236,192,0,0,0,5,5,80,247,192,0,0,0,192,0,0,0,5,5,64,235,5,5,70,234,5,5,81,247,192,0,0,0,5,5,82,247,5,5,157,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,247,192,0,0,0,192,0,0,0,5,5,249,229,5,5,65,234,5,5,84,247,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,247,5,5,175,236,192,0,0,0,5,5,86,247,5,5,80,231,192,0,0,0,5,5,88,247,192,0,0,0,192,0,0,0,5,5,89,247,192,0,0,0,192,0,0,0,5,5,90,247,5,5,73,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,247,192,0,0,0,192,0,0,0,5,5,92,247,192,0,0,0,5,5,93,247,5,5,94,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,247,192,0,0,0,5,5,96,247,5,5,97,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,226,192,0,0,0,192,0,0,0,5,5,50,231,5,5,98,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,228,192,0,0,0,5,5,95,233,5,5,101,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,228,192,0,0,0,5,5,96,231,192,0,0,0,5,5,104,247,192,0,0,0,5,5,196,233,192,0,0,0,5,5,103,247,192,0,0,0,192,0,0,0,5,5,69,228,192,0,0,0,192,0,0,0,5,5,102,247,5,5,157,232,5,5,131,227,192,0,0,0,192,0,0,0,5,5,105,247,192,0,0,0,5,5,106,247,192,0,0,0,5,5,5,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,228,192,0,0,0,5,5,107,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,235,192,0,0,0,192,0,0,0,5,5,199,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,227,192,0,0,0,5,5,79,236,5,5,18,232,192,0,0,0,5,5,108,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,231,5,5,244,232,5,5,6,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,247,192,0,0,0,5,5,113,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,229,5,5,104,232,5,5,111,247,192,0,0,0,5,5,7,231,5,5,250,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,247,192,0,0,0,192,0,0,0,5,5,250,229,192,0,0,0,5,5,47,226,192,0,0,0,5,5,117,247,5,5,108,228,192,0,0,0,192,0,0,0,5,5,252,229,192,0,0,0,192,0,0,0,5,5,251,229,192,0,0,0,5,5,67,237,5,5,116,247,5,5,115,247,5,5,237,231,192,0,0,0,5,5,163,227,5,5,57,237,5,5,210,226,5,5,8,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,247,192,0,0,0,5,5,120,247,5,5,118,247,192,0,0,0,5,5,202,228,192,0,0,0,5,5,120,236,192,0,0,0,192,0,0,0,5,5,253,229,5,5,39,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,247,192,0,0,0,5,5,168,231,192,0,0,0,5,5,198,232,192,0,0,0,192,0,0,0,5,5,110,236,192,0,0,0,5,5,126,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,228,192,0,0,0,5,5,167,231,5,5,122,247,192,0,0,0,5,5,127,247,5,5,223,228,5,5,124,247,5,5,125,247,192,0,0,0,5,5,121,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,231,5,5,233,233,192,0,0,0,192,0,0,0,5,5,179,232,192,0,0,0,5,5,151,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,234,192,0,0,0,192,0,0,0,5,5,153,227,192,0,0,0,192,0,0,0,5,5,24,233,192,0,0,0,192,0,0,0,5,5,130,247,192,0,0,0,5,5,128,247,192,0,0,0,192,0,0,0,5,5,208,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,231,5,5,74,227,5,5,129,247,192,0,0,0,5,5,101,231,192,0,0,0,192,0,0,0,5,5,224,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,247,5,5,142,247,5,5,25,233,192,0,0,0,5,5,141,247,192,0,0,0,5,5,138,247,5,5,146,247,5,5,139,247,192,0,0,0,5,5,135,247,192,0,0,0,5,5,96,233,5,5,134,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,247,192,0,0,0,5,5,89,236,5,5,254,229,192,0,0,0,192,0,0,0,5,5,136,247,192,0,0,0,5,5,133,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,247,5,5,192,230,192,0,0,0,5,5,179,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,232,192,0,0,0,5,5,191,235,5,5,54,226,5,5,0,192,192,0,0,0,5,5,197,233,192,0,0,0,192,0,0,0,5,5,144,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,247,192,0,0,0,5,5,8,234,192,0,0,0,5,5,148,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,247,192,0,0,0,5,5,147,247,5,5,149,247,192,0,0,0,5,5,158,228,5,5,145,247,5,5,40,229,192,0,0,0,5,5,67,230,192,0,0,0,192,0,0,0,5,5,150,247,5,5,144,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,247,192,0,0,0,5,5,156,247,192,0,0,0,192,0,0,0,5,5,154,247,5,5,241,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,247,192,0,0,0,192,0,0,0,5,5,157,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,247,192,0,0,0,192,0,0,0,5,5,158,247,192,0,0,0,5,5,160,247,5,5,159,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,247,192,0,0,0,5,5,31,230,192,0,0,0,5,5,164,247,5,5,163,247,5,5,38,235,192,0,0,0,192,0,0,0,5,5,166,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,247,5,5,167,247,192,0,0,0,192,0,0,0,5,5,168,247,5,5,154,227,5,5,142,245,5,5,37,231,192,0,0,0,5,5,169,247,192,0,0,0,192,0,0,0,5,5,224,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,247,192,0,0,0,192,0,0,0,5,5,171,247,192,0,0,0,192,0,0,0,5,5,204,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,241,192,0,0,0,5,5,172,247,192,0,0,0,5,5,173,247,192,0,0,0,5,5,126,230,192,0,0,0,5,5,174,247,5,5,175,247,192,0,0,0,192,0,0,0,5,5,176,247,192,0,0,0,192,0,0,0,5,5,177,247,5,5,178,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,232,192,0,0,0,192,0,0,0,5,5,179,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,247,192,0,0,0,5,5,180,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,233,192,0,0,0,5,5,182,247,192,0,0,0,5,5,167,235,192,0,0,0,5,5,183,247,192,0,0,0,5,5,184,247,192,0,0,0,5,5,185,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,231,5,5,187,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,229,5,5,87,237,5,5,188,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,247,5,5,251,234,5,5,190,247,192,0,0,0,5,5,198,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,247,192,0,0,0,192,0,0,0,5,5,193,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,247,5,5,194,247,192,0,0,0,5,5,192,235,5,5,195,247,5,5,196,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,226,5,5,75,233,192,0,0,0,5,5,39,235,5,5,146,229,5,5,41,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,235,5,5,153,226,5,5,172,234,5,5,202,247,5,5,75,227,5,5,189,231,5,5,201,247,5,5,206,247,5,5,253,232,5,5,61,236,192,0,0,0,5,5,204,247,5,5,205,247,5,5,132,227,192,0,0,0,5,5,207,247,5,5,99,234,5,5,133,232,192,0,0,0,192,0,0,0,5,5,207,234,5,5,127,233,5,5,203,247,192,0,0,0,5,5,193,235,5,5,166,226,5,5,209,247,5,5,30,237,5,5,38,233,5,5,59,237,192,0,0,0,192,0,0,0,5,5,255,229,5,5,208,247,192,0,0,0,5,5,87,232,192,0,0,0,192,0,0,0,5,5,225,247,5,5,238,231,192,0,0,0,192,0,0,0,5,5,26,234,192,0,0,0,5,5,14,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,247,5,5,205,229,5,5,2,230,192,0,0,0,5,5,10,231,192,0,0,0,5,5,101,234,192,0,0,0,5,5,159,228,5,5,211,247,5,5,210,247,192,0,0,0,5,5,40,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,230,192,0,0,0,192,0,0,0,5,5,148,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,247,5,5,215,247,5,5,42,229,5,5,213,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,247,5,5,217,247,192,0,0,0,5,5,219,247,5,5,73,232,192,0,0,0,5,5,218,247,5,5,94,227,192,0,0,0,5,5,221,247,192,0,0,0,5,5,220,247,5,5,222,247,192,0,0,0,192,0,0,0,5,5,224,247,5,5,226,247,192,0,0,0,5,5,227,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,231,192,0,0,0,5,5,61,230,5,5,228,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,226,192,0,0,0,5,5,229,247,192,0,0,0,192,0,0,0,5,5,62,232,5,5,230,247,192,0,0,0,5,5,231,247,5,5,41,235,192,0,0,0,192,0,0,0,5,5,133,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,247,5,5,240,247,192,0,0,0,192,0,0,0,5,5,237,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,247,5,5,241,247,192,0,0,0,5,5,205,227,192,0,0,0,5,5,245,247,192,0,0,0,5,5,191,231,192,0,0,0,5,5,246,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,228,192,0,0,0,5,5,243,247,5,5,244,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,233,192,0,0,0,5,5,239,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,247,192,0,0,0,192,0,0,0,5,5,250,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,247,5,5,249,247,5,5,145,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,233,5,5,253,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,247,5,5,252,247,5,5,254,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,248,5,5,2,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,247,192,0,0,0,5,5,97,233,192,0,0,0,192,0,0,0,5,5,6,248,5,5,10,248,5,5,7,248,5,5,5,248,192,0,0,0,5,5,8,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,231,5,5,13,248,192,0,0,0,192,0,0,0,5,5,15,248,5,5,12,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,248,192,0,0,0,5,5,127,230,192,0,0,0,5,5,17,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,248,192,0,0,0,192,0,0,0,5,5,23,248,5,5,22,248,192,0,0,0,5,5,21,248,192,0,0,0,192,0,0,0,5,5,25,248,5,5,24,248,192,0,0,0,5,5,80,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,248,192,0,0,0,5,5,26,248,5,5,28,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,248,5,5,82,231,5,5,32,248,192,0,0,0,192,0,0,0,5,5,35,228,5,5,33,248,5,5,35,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,248,5,5,34,248,192,0,0,0,5,5,38,248,192,0,0,0,5,5,68,230,5,5,39,248,5,5,134,227,5,5,71,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,234,192,0,0,0,192,0,0,0,5,5,128,233,5,5,41,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,230,192,0,0,0,192,0,0,0,5,5,43,248,5,5,42,248,5,5,110,228,5,5,45,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,226,192,0,0,0,5,5,47,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,229,5,5,46,248,192,0,0,0,5,5,55,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,248,5,5,51,248,5,5,129,235,5,5,48,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,248,192,0,0,0,5,5,54,248,5,5,52,248,5,5,135,227,192,0,0,0,5,5,53,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,248,192,0,0,0,192,0,0,0,5,5,90,234,5,5,238,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,236,5,5,59,248,192,0,0,0,5,5,58,248,192,0,0,0,192,0,0,0,5,5,62,248,5,5,121,236,192,0,0,0,192,0,0,0,5,5,61,248,192,0,0,0,5,5,7,227,5,5,60,248,5,5,65,248,192,0,0,0,192,0,0,0,5,5,64,248,192,0,0,0,192,0,0,0,5,5,63,248,5,5,116,233,5,5,66,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,248,192,0,0,0,192,0,0,0,5,5,62,229,192,0,0,0,5,5,57,228,5,5,69,248,5,5,70,248,5,5,71,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,231,5,5,72,248,192,0,0,0,5,5,27,230,5,5,73,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,238,5,5,7,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,248,5,5,95,245,5,5,76,248,5,5,168,232,5,5,53,231,5,5,64,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,248,192,0,0,0,192,0,0,0,5,5,113,235,5,5,56,233,5,5,80,229,192,0,0,0,192,0,0,0,5,5,173,232,192,0,0,0,192,0,0,0,5,5,6,226,192,0,0,0,5,5,242,235,5,5,97,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,228,192,0,0,0,192,0,0,0,5,5,23,228,192,0,0,0,192,0,0,0,5,5,114,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,248,192,0,0,0,192,0,0,0,5,5,79,248,5,5,154,226,192,0,0,0,192,0,0,0,5,5,24,234,5,5,81,248,5,5,119,234,192,0,0,0,5,5,117,233,192,0,0,0,5,5,82,248,5,5,158,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,248,192,0,0,0,192,0,0,0,5,5,28,236,5,5,99,248,5,5,86,248,5,5,87,248,192,0,0,0,192,0,0,0,5,5,45,233,192,0,0,0,192,0,0,0,5,5,134,232,5,5,63,232,192,0,0,0,5,5,200,233,192,0,0,0,5,5,85,248,5,5,171,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,248,192,0,0,0,5,5,91,248,5,5,104,248,5,5,201,233,5,5,228,232,5,5,88,248,192,0,0,0,5,5,98,233,5,5,149,233,5,5,89,248,5,5,93,248,5,5,106,231,192,0,0,0,5,5,103,234,5,5,48,233,192,0,0,0,192,0,0,0,5,5,170,231,5,5,92,248,5,5,84,232,5,5,74,232,5,5,90,248,5,5,0,135,5,5,24,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,232,192,0,0,0,192,0,0,0,5,5,129,230,5,5,84,231,192,0,0,0,192,0,0,0,5,5,97,248,5,5,96,248,192,0,0,0,5,5,0,205,5,5,98,248,192,0,0,0,192,0,0,0,5,5,235,234,192,0,0,0,5,5,106,248,192,0,0,0,192,0,0,0,5,5,251,233,5,5,117,231,192,0,0,0,192,0,0,0,5,5,221,232,192,0,0,0,5,5,46,228,192,0,0,0,5,5,105,248,5,5,111,236,5,5,27,226,192,0,0,0,5,5,115,235,5,5,155,226,5,5,100,248,5,5,101,248,5,5,102,248,5,5,103,248,5,5,219,233,5,5,167,232,5,5,0,193,5,5,107,248,192,0,0,0,5,5,108,248,5,5,158,250,192,0,0,0,192,0,0,0,5,5,99,232,192,0,0,0,5,5,109,248,192,0,0,0,5,5,79,226,5,5,20,232,192,0,0,0,5,5,161,228,192,0,0,0,5,5,146,236,192,0,0,0,192,0,0,0,5,5,110,248,5,5,110,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,232,5,5,69,230,5,5,111,248,192,0,0,0,192,0,0,0,5,5,114,248,192,0,0,0,192,0,0,0,5,5,177,230,5,5,112,248,5,5,241,231,5,5,240,231,192,0,0,0,5,5,0,194,192,0,0,0,5,5,225,236,5,5,116,248,192,0,0,0,5,5,208,234,5,5,118,248,5,5,117,248,5,5,115,248,5,5,149,244,5,5,76,227,192,0,0,0,192,0,0,0,5,5,83,248,192,0,0,0,5,5,120,248,5,5,119,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,248,192,0,0,0,5,5,112,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,234,192,0,0,0,192,0,0,0,5,5,168,235,192,0,0,0,5,5,122,248,192,0,0,0,5,5,71,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,248,192,0,0,0,5,5,124,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,248,192,0,0,0,192,0,0,0,5,5,99,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,228,5,5,126,248,192,0,0,0,5,5,127,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,236,192,0,0,0,5,5,243,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,233,192,0,0,0,192,0,0,0,5,5,134,248,192,0,0,0,5,5,133,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,233,5,5,135,248,5,5,130,230,5,5,78,230,5,5,91,234,5,5,245,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,230,192,0,0,0,5,5,118,231,192,0,0,0,5,5,136,248,192,0,0,0,5,5,137,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,231,5,5,138,248,192,0,0,0,5,5,139,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,248,5,5,167,236,192,0,0,0,5,5,131,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,248,5,5,141,248,192,0,0,0,5,5,44,229,192,0,0,0,5,5,69,229,5,5,206,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,230,192,0,0,0,5,5,144,248,192,0,0,0,5,5,143,248,192,0,0,0,5,5,143,232,192,0,0,0,192,0,0,0,5,5,225,228,192,0,0,0,5,5,171,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,248,192,0,0,0,5,5,11,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,248,5,5,147,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,248,5,5,150,248,192,0,0,0,192,0,0,0,5,5,38,231,192,0,0,0,5,5,152,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,248,5,5,154,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,234,5,5,131,229,5,5,79,230,5,5,155,248,192,0,0,0,5,5,156,248,5,5,186,236,5,5,145,230,5,5,72,236,5,5,226,236,5,5,157,248,5,5,24,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,248,192,0,0,0,5,5,101,233,192,0,0,0,192,0,0,0,5,5,161,248,5,5,18,227,5,5,85,231,192,0,0,0,5,5,159,248,192,0,0,0,5,5,160,248,192,0,0,0,5,5,68,233,192,0,0,0,192,0,0,0,5,5,207,235,5,5,50,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,248,5,5,164,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,248,192,0,0,0,192,0,0,0,5,5,166,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,233,5,5,219,226,192,0,0,0,192,0,0,0,5,5,170,248,192,0,0,0,192,0,0,0,5,5,167,248,5,5,169,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,248,192,0,0,0,192,0,0,0,5,5,168,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,237,192,0,0,0,192,0,0,0,5,5,204,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,233,5,5,173,248,192,0,0,0,192,0,0,0,5,5,176,248,5,5,174,248,192,0,0,0,5,5,179,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,248,192,0,0,0,192,0,0,0,5,5,185,248,5,5,80,226,192,0,0,0,192,0,0,0,5,5,171,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,234,192,0,0,0,5,5,175,248,192,0,0,0,5,5,12,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,235,192,0,0,0,5,5,26,228,192,0,0,0,192,0,0,0,5,5,146,230,192,0,0,0,5,5,220,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,231,192,0,0,0,5,5,183,248,192,0,0,0,5,5,177,248,5,5,182,248,192,0,0,0,5,5,29,236,192,0,0,0,5,5,28,233,5,5,184,248,5,5,181,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,248,192,0,0,0,5,5,187,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,248,192,0,0,0,192,0,0,0,5,5,169,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,248,5,5,123,235,192,0,0,0,192,0,0,0,5,5,48,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,235,5,5,246,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,227,192,0,0,0,5,5,191,248,192,0,0,0,5,5,47,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,248,5,5,119,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,231,5,5,194,248,5,5,196,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,231,192,0,0,0,5,5,195,248,5,5,197,248,192,0,0,0,192,0,0,0,5,5,9,228,192,0,0,0,5,5,3,235,192,0,0,0,192,0,0,0,5,5,80,230,5,5,25,237,192,0,0,0,5,5,193,248,5,5,168,229,192,0,0,0,192,0,0,0,5,5,53,237,192,0,0,0,192,0,0,0,5,5,199,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,248,5,5,200,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,234,192,0,0,0,5,5,151,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,233,192,0,0,0,5,5,205,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,232,5,5,201,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,228,192,0,0,0,5,5,204,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,248,192,0,0,0,5,5,13,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,248,192,0,0,0,5,5,111,229,5,5,65,232,192,0,0,0,192,0,0,0,5,5,46,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,248,5,5,208,248,5,5,39,233,192,0,0,0,5,5,206,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,248,5,5,111,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,248,5,5,212,248,5,5,215,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,227,192,0,0,0,192,0,0,0,5,5,220,248,5,5,214,248,192,0,0,0,192,0,0,0,5,5,213,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,248,192,0,0,0,192,0,0,0,5,5,223,248,5,5,222,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,231,5,5,202,233,5,5,221,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,248,5,5,227,248,192,0,0,0,5,5,158,232,192,0,0,0,5,5,231,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,248,192,0,0,0,192,0,0,0,5,5,234,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,227,5,5,233,248,5,5,84,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,248,5,5,235,248,192,0,0,0,192,0,0,0,5,5,238,248,192,0,0,0,5,5,236,248,192,0,0,0,5,5,237,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,248,192,0,0,0,5,5,243,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,248,5,5,244,248,5,5,247,248,5,5,249,248,192,0,0,0,5,5,248,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,236,192,0,0,0,5,5,250,248,5,5,244,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,248,192,0,0,0,5,5,96,235,5,5,252,248,5,5,195,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,226,192,0,0,0,5,5,79,227,192,0,0,0,5,5,78,227,5,5,253,248,192,0,0,0,5,5,254,248,192,0,0,0,5,5,255,248,5,5,2,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,249,192,0,0,0,5,5,80,227,5,5,237,226,5,5,48,229,5,5,148,234,192,0,0,0,5,5,5,249,5,5,4,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,249,192,0,0,0,5,5,8,249,5,5,7,249,192,0,0,0,5,5,10,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,165,192,0,0,0,192,0,0,0,5,5,11,249,192,0,0,0,5,5,15,249,5,5,14,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,249,5,5,16,249,5,5,18,249,192,0,0,0,5,5,206,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,249,5,5,22,249,192,0,0,0,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,249,192,0,0,0,5,5,149,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,249,5,5,26,249,192,0,0,0,192,0,0,0,5,5,195,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,130,5,5,113,232,192,0,0,0,5,5,27,249,192,0,0,0,5,5,43,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,249,5,5,28,249,5,5,49,229,192,0,0,0,5,5,29,249,5,5,180,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,235,5,5,32,249,5,5,34,249,5,5,33,249,5,5,35,249,192,0,0,0,192,0,0,0,5,5,0,221,5,5,98,231,5,5,200,230,5,5,81,227,5,5,36,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,234,192,0,0,0,5,5,38,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,222,192,0,0,0,5,5,37,249,5,5,40,233,192,0,0,0,5,5,227,236,5,5,203,233,5,5,31,249,5,5,188,236,192,0,0,0,5,5,163,228,192,0,0,0,192,0,0,0,5,5,147,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,228,5,5,202,236,192,0,0,0,5,5,60,228,192,0,0,0,5,5,136,232,5,5,204,245,192,0,0,0,5,5,39,249,5,5,196,226,5,5,121,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,226,5,5,41,249,192,0,0,0,5,5,42,249,5,5,40,249,5,5,120,228,192,0,0,0,5,5,141,229,5,5,15,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,223,192,0,0,0,192,0,0,0,5,5,239,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,249,5,5,113,248,192,0,0,0,5,5,43,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,249,5,5,45,249,5,5,46,249,192,0,0,0,5,5,48,249,192,0,0,0,5,5,49,249,5,5,4,237,5,5,50,249,5,5,51,249,192,0,0,0,5,5,177,231,5,5,153,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,231,5,5,95,227,192,0,0,0,192,0,0,0,5,5,114,236,5,5,167,226,5,5,132,230,5,5,205,228,192,0,0,0,5,5,54,249,192,0,0,0,5,5,53,249,5,5,3,230,5,5,55,249,5,5,52,249,192,0,0,0,192,0,0,0,5,5,182,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,249,5,5,244,246,192,0,0,0,192,0,0,0,5,5,61,238,192,0,0,0,5,5,129,231,5,5,57,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,236,5,5,19,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,226,192,0,0,0,5,5,203,231,5,5,36,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,235,192,0,0,0,5,5,28,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,237,5,5,163,236,192,0,0,0,5,5,60,249,192,0,0,0,5,5,135,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,249,192,0,0,0,5,5,62,249,5,5,86,231,5,5,63,249,192,0,0,0,5,5,6,237,192,0,0,0,192,0,0,0,5,5,58,249,5,5,65,249,5,5,67,249,192,0,0,0,5,5,66,249,192,0,0,0,5,5,64,249,192,0,0,0,192,0,0,0,5,5,68,249,192,0,0,0,192,0,0,0,5,5,69,249,192,0,0,0,192,0,0,0,5,5,66,232,192,0,0,0,5,5,156,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,249,192,0,0,0,192,0,0,0,5,5,18,236,192,0,0,0,192,0,0,0,5,5,71,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,249,192,0,0,0,5,5,32,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,241,5,5,73,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,249,5,5,75,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,249,192,0,0,0,5,5,76,249,192,0,0,0,5,5,77,249,192,0,0,0,5,5,78,249,5,5,80,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,236,192,0,0,0,192,0,0,0,5,5,173,231,192,0,0,0,192,0,0,0,5,5,81,249,192,0,0,0,5,5,209,234,192,0,0,0,5,5,82,249,5,5,112,250,5,5,38,236,192,0,0,0,5,5,83,249,192,0,0,0,5,5,84,249,192,0,0,0,5,5,85,249,5,5,239,226,192,0,0,0,5,5,87,249,192,0,0,0,5,5,99,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,249,192,0,0,0,192,0,0,0,5,5,56,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,249,5,5,93,249,192,0,0,0,5,5,91,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,249,192,0,0,0,192,0,0,0,5,5,13,227,5,5,90,249,5,5,94,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,249,192,0,0,0,5,5,0,166,192,0,0,0,5,5,96,249,5,5,97,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,227,192,0,0,0,192,0,0,0,5,5,101,249,192,0,0,0,192,0,0,0,5,5,100,249,192,0,0,0,5,5,99,249,192,0,0,0,192,0,0,0,5,5,152,247,192,0,0,0,5,5,120,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,249,5,5,103,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,249,192,0,0,0,192,0,0,0,5,5,105,249,192,0,0,0,5,5,106,249,192,0,0,0,192,0,0,0,5,5,107,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,249,5,5,35,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,249,5,5,117,226,192,0,0,0,5,5,114,249,5,5,113,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,227,192,0,0,0,5,5,99,235,5,5,30,233,5,5,82,229,192,0,0,0,5,5,50,229,5,5,179,230,192,0,0,0,5,5,102,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,249,192,0,0,0,192,0,0,0,5,5,115,249,5,5,122,236,5,5,96,227,5,5,176,234,5,5,252,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,231,5,5,228,236,192,0,0,0,5,5,111,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,249,192,0,0,0,192,0,0,0,5,5,118,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,235,5,5,204,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,226,192,0,0,0,192,0,0,0,5,5,120,249,5,5,117,249,192,0,0,0,192,0,0,0,5,5,15,235,5,5,162,236,5,5,121,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,249,5,5,144,232,5,5,243,226,5,5,244,226,5,5,123,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,227,5,5,164,228,192,0,0,0,192,0,0,0,5,5,98,227,192,0,0,0,192,0,0,0,5,5,129,233,192,0,0,0,192,0,0,0,5,5,246,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,249,5,5,127,249,5,5,128,249,192,0,0,0,5,5,130,249,5,5,129,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,235,192,0,0,0,5,5,131,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,249,192,0,0,0,5,5,133,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,249,5,5,135,249,192,0,0,0,5,5,137,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,234,5,5,153,245,192,0,0,0,192,0,0,0,5,5,51,231,192,0,0,0,192,0,0,0,5,5,136,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,249,192,0,0,0,5,5,139,249,192,0,0,0,5,5,19,238,5,5,52,242,5,5,177,234,192,0,0,0,192,0,0,0,5,5,0,217,192,0,0,0,5,5,0,153,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,230,5,5,170,235,5,5,42,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,249,192,0,0,0,5,5,57,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,249,5,5,148,236,192,0,0,0,5,5,30,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,229,192,0,0,0,5,5,142,249,5,5,168,226,5,5,143,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,249,5,5,147,249,192,0,0,0,5,5,149,249,5,5,145,249,192,0,0,0,192,0,0,0,5,5,148,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,249,192,0,0,0,5,5,151,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,249,5,5,153,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,249,192,0,0,0,192,0,0,0,5,5,156,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,249,192,0,0,0,5,5,158,249,5,5,161,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,249,5,5,159,249,5,5,160,249,192,0,0,0,192,0,0,0,5,5,162,249,192,0,0,0,5,5,246,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,230,5,5,163,249,5,5,164,249,5,5,51,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,249,192,0,0,0,192,0,0,0,5,5,214,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,234,5,5,166,249,5,5,167,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,232,5,5,13,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,234,192,0,0,0,192,0,0,0,5,5,114,232,5,5,52,226,5,5,36,228,192,0,0,0,5,5,37,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,232,5,5,173,249,5,5,38,228,192,0,0,0,192,0,0,0,5,5,169,226,192,0,0,0,192,0,0,0,5,5,172,249,192,0,0,0,192,0,0,0,5,5,170,249,192,0,0,0,5,5,171,249,192,0,0,0,5,5,169,249,192,0,0,0,192,0,0,0,5,5,183,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,249,5,5,175,249,192,0,0,0,192,0,0,0,5,5,176,249,5,5,177,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,249,192,0,0,0,192,0,0,0,5,5,178,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,230,192,0,0,0,5,5,180,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,227,5,5,181,249,192,0,0,0,192,0,0,0,5,5,67,232,5,5,165,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,232,192,0,0,0,192,0,0,0,5,5,185,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,249,192,0,0,0,5,5,189,249,192,0,0,0,5,5,188,249,5,5,190,249,192,0,0,0,5,5,187,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,249,192,0,0,0,5,5,195,249,192,0,0,0,192,0,0,0,5,5,247,227,5,5,194,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,249,192,0,0,0,192,0,0,0,5,5,197,249,192,0,0,0,5,5,199,249,5,5,198,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,249,5,5,202,249,5,5,201,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,249,192,0,0,0,192,0,0,0,5,5,204,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,249,192,0,0,0,5,5,208,249,192,0,0,0,5,5,209,249,5,5,210,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,249,5,5,212,249,192,0,0,0,192,0,0,0,5,5,213,249,5,5,214,249,192,0,0,0,192,0,0,0,5,5,215,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,234,5,5,217,249,192,0,0,0,5,5,226,234,5,5,218,249,5,5,216,249,192,0,0,0,5,5,220,249,192,0,0,0,192,0,0,0,5,5,219,249,192,0,0,0,192,0,0,0,5,5,221,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,249,192,0,0,0,5,5,225,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,249,192,0,0,0,192,0,0,0,5,5,227,249,5,5,228,249,192,0,0,0,5,5,229,249,192,0,0,0,5,5,230,249,5,5,231,249,5,5,232,249,5,5,233,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,249,5,5,235,249,192,0,0,0,5,5,46,242,5,5,236,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,245,5,5,138,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,226,5,5,98,229,5,5,238,249,5,5,237,249,5,5,253,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,249,5,5,241,249,5,5,239,249,192,0,0,0,5,5,242,249,192,0,0,0,192,0,0,0,5,5,220,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,249,192,0,0,0,5,5,209,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,156,192,0,0,0,192,0,0,0,5,5,247,249,5,5,71,235,5,5,245,249,192,0,0,0,192,0,0,0,5,5,248,249,5,5,249,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,249,5,5,251,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,249,192,0,0,0,5,5,232,235,5,5,187,229,192,0,0,0,5,5,170,229,5,5,245,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,250,192,0,0,0,192,0,0,0,5,5,227,228,5,5,255,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,250,192,0,0,0,5,5,5,250,5,5,6,250,192,0,0,0,5,5,10,250,192,0,0,0,5,5,184,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,250,5,5,8,250,5,5,7,250,5,5,9,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,250,5,5,14,250,5,5,13,250,192,0,0,0,192,0,0,0,5,5,0,145,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,250,192,0,0,0,5,5,21,250,192,0,0,0,5,5,22,250,5,5,18,250,5,5,24,250,192,0,0,0,5,5,20,250,5,5,250,226,192,0,0,0,192,0,0,0,5,5,66,237,192,0,0,0,5,5,23,250,5,5,19,250,5,5,17,250,5,5,16,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,250,192,0,0,0,192,0,0,0,5,5,29,250,5,5,28,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,235,5,5,26,250,5,5,0,209,5,5,31,250,192,0,0,0,5,5,33,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,227,5,5,12,250,5,5,19,226,192,0,0,0,192,0,0,0,5,5,35,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,250,5,5,32,250,5,5,177,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,236,192,0,0,0,192,0,0,0,5,5,36,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,250,192,0,0,0,5,5,40,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,233,192,0,0,0,5,5,41,250,192,0,0,0,5,5,149,234,192,0,0,0,5,5,46,250,5,5,42,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,250,192,0,0,0,192,0,0,0,5,5,171,235,5,5,30,236,192,0,0,0,5,5,240,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,250,192,0,0,0,192,0,0,0,5,5,48,250,5,5,222,233,5,5,45,250,5,5,44,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,250,192,0,0,0,192,0,0,0,5,5,55,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,250,192,0,0,0,192,0,0,0,5,5,50,250,192,0,0,0,5,5,21,227,192,0,0,0,5,5,49,250,5,5,32,230,5,5,99,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,229,192,0,0,0,192,0,0,0,5,5,59,250,5,5,58,250,192,0,0,0,5,5,57,250,192,0,0,0,192,0,0,0,5,5,54,250,192,0,0,0,5,5,60,250,192,0,0,0,5,5,61,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,250,5,5,65,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,250,192,0,0,0,192,0,0,0,5,5,9,226,5,5,62,250,5,5,63,250,192,0,0,0,5,5,70,229,5,5,19,236,192,0,0,0,192,0,0,0,5,5,64,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,235,192,0,0,0,192,0,0,0,5,5,72,250,192,0,0,0,192,0,0,0,5,5,68,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,250,192,0,0,0,5,5,69,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,250,192,0,0,0,5,5,71,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,250,192,0,0,0,192,0,0,0,5,5,77,250,192,0,0,0,5,5,69,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,250,192,0,0,0,5,5,82,250,5,5,80,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,250,5,5,85,250,192,0,0,0,5,5,78,250,192,0,0,0,5,5,83,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,250,192,0,0,0,5,5,91,250,192,0,0,0,192,0,0,0,5,5,63,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,250,5,5,145,232,5,5,157,229,192,0,0,0,192,0,0,0,5,5,92,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,250,5,5,94,250,192,0,0,0,192,0,0,0,5,5,95,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,250,192,0,0,0,192,0,0,0,5,5,166,228,5,5,97,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,250,192,0,0,0,5,5,29,230,192,0,0,0,5,5,99,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,250,192,0,0,0,192,0,0,0,5,5,101,250,5,5,102,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,250,5,5,103,250,5,5,50,237,192,0,0,0,5,5,104,250,192,0,0,0,5,5,7,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,250,192,0,0,0,5,5,241,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,250,5,5,126,234,192,0,0,0,192,0,0,0,5,5,108,250,5,5,110,250,192,0,0,0,192,0,0,0,5,5,111,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,250,5,5,63,229,5,5,39,236,5,5,221,235,5,5,216,239,192,0,0,0,5,5,89,242,5,5,245,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,250,5,5,166,227,5,5,114,250,5,5,115,250,5,5,116,250,192,0,0,0,5,5,71,229,192,0,0,0,5,5,117,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,243,5,5,53,236,192,0,0,0,5,5,137,232,5,5,118,250,5,5,120,250,5,5,119,250,192,0,0,0,5,5,121,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,250,192,0,0,0,192,0,0,0,5,5,123,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,250,192,0,0,0,5,5,126,250,5,5,127,250,192,0,0,0,5,5,128,250,192,0,0,0,5,5,129,250,5,5,130,250,5,5,131,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,250,5,5,133,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,228,192,0,0,0,5,5,135,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,232,5,5,136,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,234,192,0,0,0,192,0,0,0,5,5,138,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,250,5,5,104,244,192,0,0,0,192,0,0,0,5,5,223,247,5,5,110,249,192,0,0,0,192,0,0,0,5,5,140,250,192,0,0,0,5,5,141,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,250,5,5,144,250,5,5,145,250,5,5,8,237,5,5,142,250,192,0,0,0,192,0,0,0,5,5,146,250,5,5,147,250,192,0,0,0,192,0,0,0,5,5,149,250,192,0,0,0,5,5,148,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,250,5,5,150,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,250,5,5,133,244,192,0,0,0,192,0,0,0,5,5,155,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,247,5,5,11,229,5,5,68,230,5,5,208,247,5,5,4,227,5,5,48,228,5,5,29,228,5,5,154,250,5,5,154,250,5,5,84,228,5,5,24,228,5,5,142,238,5,5,2,234,5,5,144,240,5,5,237,243,5,5,157,236,5,5,176,246,5,5,158,236,5,5,159,236,5,5,121,248,5,5,244,241,5,5,164,236,5,5,23,243,5,5,121,243,5,5,166,236,5,5,167,236,5,5,176,249,5,5,85,237,5,5,169,236,5,5,171,236,5,5,58,243,5,5,174,236,5,5,95,250,5,5,170,236,5,5,172,236,5,5,173,236,5,5,73,247,5,5,196,240,5,5,239,245,192,0,0,0,5,5,35,237,5,5,37,237,5,5,40,237,5,5,43,237,5,5,48,237,5,5,125,237,5,5,250,236,5,5,16,238,192,0,0,0,5,5,28,237,5,5,57,243,5,5,13,244,5,5,45,237,5,5,172,246,5,5,208,236,5,5,31,237,5,5,32,237,5,5,27,237,5,5,157,229,5,5,68,244,5,5,100,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,230,5,5,54,237,5,5,7,239,5,5,36,237,5,5,213,244,5,5,46,237,5,5,42,237,5,5,80,244,5,5,30,237,5,5,163,236,5,5,3,239,192,0,0,0,5,5,7,242,192,0,0,0,5,5,41,237,5,5,245,236,5,5,78,245,5,5,30,249,5,5,86,249,5,5,52,237,5,5,160,250,5,5,213,236,5,5,221,236,5,5,0,155,5,5,229,234,5,5,227,236,5,5,171,247,5,5,185,240,5,5,244,241,5,5,160,232,5,5,180,232,5,5,43,234,5,5,158,233,5,5,190,236,5,5,0,185,5,5,198,235,192,0,0,0,5,5,116,235,5,5,58,235,5,5,18,235,5,5,197,234,5,5,40,241,5,5,167,229,5,5,59,238,5,5,121,229,5,5,244,230,5,5,141,236,192,0,0,0,5,5,180,229,5,5,168,232,5,5,36,233,5,5,114,230,5,5,81,230,5,5,193,236,5,5,194,236,5,5,210,236,5,5,199,237,5,5,225,237,5,5,216,236,5,5,222,236,5,5,223,236,5,5,224,236,5,5,226,236,5,5,22,238,5,5,26,237,5,5,195,230,5,5,233,239,5,5,207,236,5,5,254,242,5,5,61,244,5,5,6,249,5,5,202,249,5,5,7,237,5,5,114,250,5,5,229,236,192,0,0,0,192,0,0,0,5,5,69,248,5,5,47,234,5,5,17,237,5,5,151,240,5,5,50,234,5,5,18,237,5,5,19,237,192,0,0,0,192,0,0,0,5,5,21,237,5,5,22,237,5,5,56,248,5,5,23,237,5,5,24,237,192,0,0,0,5,5,11,237,5,5,12,237,5,5,0,212,5,5,13,237,5,5,14,237,192,0,0,0,5,5,15,237,5,5,48,234,5,5,49,234,192,0,0,0,5,5,20,237,5,5,111,243,5,5,247,236,5,5,191,238,5,5,43,234,5,5,252,236,5,5,253,236,5,5,254,236,5,5,135,243,5,5,134,245,5,5,166,245,5,5,3,237,5,5,5,237,5,5,78,249,5,5,228,236,5,5,249,236,5,5,106,244,5,5,151,248,5,5,50,249,5,5,71,240,5,5,209,236,5,5,211,236,5,5,214,236,5,5,34,234,5,5,215,236,5,5,244,241,5,5,48,243,5,5,219,236,5,5,133,246,5,5,225,236,5,5,204,236,5,5,81,241,5,5,25,249,5,5,195,236,192,0,0,0,5,5,82,236,5,5,196,236,5,5,197,236,5,5,198,236,5,5,199,236,5,5,200,236,5,5,239,234,5,5,246,236,5,5,49,237,5,5,161,240,5,5,188,236,5,5,231,236,5,5,167,239,5,5,164,242,5,5,238,236,5,5,189,236,5,5,106,240,5,5,62,228,5,5,190,236,5,5,202,236,5,5,176,236,5,5,177,236,5,5,178,236,5,5,0,181,5,5,179,236,5,5,180,236,5,5,103,233,5,5,181,236,5,5,183,236,5,5,140,240,5,5,184,236,5,5,185,236,5,5,186,236,5,5,187,236,5,5,223,233,5,5,112,233,5,5,78,238,5,5,235,236,192,0,0,0,5,5,171,246,5,5,239,236,5,5,240,236,5,5,241,236,5,5,233,236,5,5,234,236,5,5,237,236,5,5,191,236,5,5,246,226,5,5,201,236,192,0,0,0,5,5,12,243,5,5,31,230,5,5,134,230,5,5,231,232,5,5,215,229,5,5,194,231,5,5,155,233,5,5,153,232,5,5,190,233,5,5,150,232,5,5,214,233,5,5,183,235,5,5,58,248,5,5,38,229,5,5,49,229,5,5,157,228,5,5,223,226,5,5,193,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,233,192,0,0,0,5,5,154,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,232,5,5,51,226,5,5,255,236,5,5,74,231,5,5,247,230,5,5,61,235,5,5,81,236,5,5,162,231,5,5,5,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,230,192,0,0,0,192,0,0,0,5,5,0,205,5,5,150,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,234,5,5,4,230,5,5,83,227,5,5,69,233,192,0,0,0,5,5,4,237,5,5,44,235,5,5,22,232,5,5,34,236,5,5,117,235,5,5,6,228,5,5,186,234,5,5,253,226,5,5,182,232,5,5,103,227,5,5,89,235,5,5,201,235,5,5,32,232,5,5,134,239,5,5,179,226,5,5,204,226,5,5,70,232,5,5,12,233,5,5,16,235,5,5,115,227,5,5,183,230,5,5,95,234,5,5,188,226,5,5,185,230,5,5,57,227,5,5,63,230,192,0,0,0,5,5,156,232,5,5,200,234,5,5,64,230,5,5,241,229,5,5,125,227,5,5,108,236,5,5,12,232,5,5,151,230,5,5,140,226,5,5,91,233,5,5,68,229,5,5,237,233,5,5,201,231,5,5,21,237,5,5,69,245,5,5,169,234,5,5,188,230,5,5,66,230,5,5,121,230,192,0,0,0,192,0,0,0,5,5,252,232,5,5,6,227,5,5,249,229,5,5,54,226,5,5,22,228,5,5,14,235,5,5,73,232,192,0,0,0,5,5,0,205,5,5,19,234,5,5,245,227,5,5,15,235,5,5,87,228,192,0,0,0,5,5,84,227,192,0,0,0,192,0,0,0,5,5,94,235,5,5,222,237,5,5,250,231,192,0,0,0,5,5,136,230,5,5,202,237,5,5,94,236,5,5,73,230,5,5,253,226,192,0,0,0,5,5,129,238,192,0,0,0,5,5,49,233,5,5,75,235,5,5,62,226,5,5,213,235,5,5,60,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,229,5,5,21,240,5,5,80,240,5,5,63,231,5,5,86,236,5,5,70,232,192,0,0,0,5,5,12,233,5,5,125,232,5,5,230,240,5,5,208,240,192,0,0,0,5,5,33,241,5,5,154,231,5,5,37,237,5,5,184,235,5,5,31,231,5,5,63,242,5,5,180,229,5,5,196,236,192,0,0,0,5,5,16,230,5,5,57,227,5,5,244,233,5,5,63,230,192,0,0,0,5,5,77,230,5,5,166,234,5,5,250,232,192,0,0,0,192,0,0,0,5,5,162,226,192,0,0,0,5,5,220,243,5,5,51,226,5,5,161,231,5,5,34,233,192,0,0,0,5,5,233,232,192,0,0,0,192,0,0,0,5,5,201,231,192,0,0,0,5,5,37,245,5,5,21,237,192,0,0,0,5,5,66,230,5,5,37,229,5,5,148,226,192,0,0,0,5,5,63,247,5,5,64,235,5,5,249,229,5,5,24,233,5,5,192,230,5,5,169,231,5,5,54,226,5,5,160,232,5,5,89,236,5,5,22,228,5,5,43,241,5,5,73,232,5,5,90,236,5,5,114,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,234,5,5,81,236,192,0,0,0,5,5,245,227,192,0,0,0,5,5,15,235,192,0,0,0,5,5,154,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,192,0,0,0,192,0,0,0,133,5,24,9,133,5,70,10,133,5,72,10,133,5,34,7,192,0,0,0,198,65,13,0,198,1,0,0,198,65,0,0,198,129,0,0,198,193,0,0,198,1,1,0,198,97,11,0,198,161,11,0,198,225,11,0,198,193,5,0,192,0,0,0,198,33,0,0,198,97,0,0,198,161,0,0,198,225,0,0,198,33,1,0,198,65,1,0,198,161,1,0,198,1,2,0,198,97,2,0,198,193,2,0,198,33,3,0,198,129,3,0,198,225,3,0,198,65,4,0,198,161,4,0,198,1,5,0,198,97,5,0,198,225,5,0,198,65,6,0,198,161,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,65,8,0,198,225,8,0,198,129,9,0,198,33,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,129,11,0,198,193,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,225,12,0,198,97,13,0,192,0,0,0,192,0,0,0,198,129,35,0,133,5,6,121,133,5,8,121,133,5,183,121,133,5,10,121,133,5,187,121,133,5,189,121,133,5,12,121,133,5,14,121,133,5,16,121,133,5,195,121,133,5,197,121,133,5,199,121,133,5,201,121,133,5,203,121,133,5,205,121,133,5,52,121,133,5,18,121,133,5,20,121,133,5,22,121,133,5,66,121,133,5,24,121,133,5,26,121,133,5,28,121,133,5,30,121,133,5,32,121,133,5,34,121,133,5,36,121,133,5,38,121,133,5,40,121,133,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,133,5,103,121,133,5,105,121,133,5,107,121,133,5,109,121,133,5,111,121,133,5,113,121,192,0,0,0,192,0,0,0,133,5,115,121,133,5,117,121,133,5,119,121,133,5,121,121,133,5,123,121,133,5,125,121,192,0,0,0,192,0,0,0,133,5,127,121,133,5,129,121,133,5,131,121,133,5,133,121,133,5,135,121,133,5,137,121,192,0,0,0,192,0,0,0,133,5,139,121,133,5,141,121,133,5,143,121,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,13,5,5,140,13,5,5,135,12,5,5,0,4,5,5,139,12,5,5,142,13,5,5,192,13,192,0,0,0,133,5,172,12,133,5,99,12,133,5,103,12,133,5,101,12,133,5,105,12,133,5,180,12,133,5,185,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,234,5,5,22,232,5,5,68,232,192,0,0,0,192,0,0,0,5,5,34,236,5,5,196,237,192,0,0,0,5,5,39,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,229,192,0,0,0,5,5,21,231,5,5,212,237,192,0,0,0,5,5,161,233,5,5,222,237,192,0,0,0,5,5,232,237,5,5,89,231,192,0,0,0,5,5,65,229,192,0,0,0,5,5,252,226,192,0,0,0,192,0,0,0,5,5,94,236,5,5,117,235,5,5,6,228,5,5,73,230,5,5,141,235,5,5,25,238,5,5,198,235,5,5,42,238,5,5,186,234,5,5,110,234,5,5,78,232,192,0,0,0,5,5,222,227,5,5,222,227,5,5,222,227,192,0,0,0,5,5,189,226,5,5,176,227,5,5,62,238,192,0,0,0,5,5,223,227,5,5,38,230,192,0,0,0,192,0,0,0,5,5,177,227,5,5,76,233,5,5,108,230,5,5,95,238,192,0,0,0,5,5,164,233,5,5,80,228,5,5,119,238,5,5,247,231,5,5,247,231,5,5,129,238,5,5,160,227,192,0,0,0,192,0,0,0,5,5,201,238,5,5,182,232,192,0,0,0,192,0,0,0,5,5,74,235,5,5,194,231,5,5,28,232,5,5,23,231,5,5,41,231,192,0,0,0,5,5,83,228,192,0,0,0,5,5,143,235,192,0,0,0,192,0,0,0,5,5,100,234,5,5,63,233,192,0,0,0,5,5,101,232,5,5,14,236,5,5,31,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,5,5,82,239,192,0,0,0,5,5,102,239,192,0,0,0,5,5,43,234,5,5,115,239,192,0,0,0,5,5,101,230,5,5,215,230,5,5,184,233,5,5,122,239,192,0,0,0,5,5,141,233,5,5,134,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,230,192,0,0,0,192,0,0,0,5,5,171,232,192,0,0,0,5,5,179,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,230,5,5,35,237,192,0,0,0,5,5,239,239,192,0,0,0,192,0,0,0,5,5,248,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,228,5,5,10,233,192,0,0,0,192,0,0,0,5,5,38,234,5,5,228,229,192,0,0,0,5,5,59,240,192,0,0,0,192,0,0,0,5,5,179,226,192,0,0,0,5,5,247,233,5,5,12,230,5,5,4,229,5,5,63,231,5,5,4,229,192,0,0,0,5,5,70,232,5,5,143,228,5,5,76,235,192,0,0,0,192,0,0,0,5,5,12,233,5,5,144,240,5,5,150,231,5,5,157,240,192,0,0,0,5,5,150,235,5,5,179,240,5,5,205,240,192,0,0,0,5,5,178,234,192,0,0,0,5,5,60,230,5,5,37,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,226,192,0,0,0,5,5,218,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,235,5,5,93,228,192,0,0,0,192,0,0,0,5,5,189,230,5,5,70,241,192,0,0,0,5,5,183,230,192,0,0,0,192,0,0,0,5,5,187,235,5,5,210,237,5,5,119,229,192,0,0,0,5,5,186,245,192,0,0,0,5,5,37,237,5,5,184,235,192,0,0,0,5,5,116,241,5,5,75,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,241,192,0,0,0,5,5,95,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,228,192,0,0,0,5,5,15,230,192,0,0,0,5,5,58,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,229,5,5,228,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,234,192,0,0,0,5,5,68,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,234,5,5,188,226,5,5,196,236,5,5,18,229,5,5,69,231,5,5,145,242,192,0,0,0,192,0,0,0,5,5,19,229,5,5,167,242,192,0,0,0,5,5,16,230,192,0,0,0,192,0,0,0,5,5,146,242,5,5,16,233,192,0,0,0,192,0,0,0,5,5,238,242,192,0,0,0,5,5,244,233,5,5,255,242,192,0,0,0,192,0,0,0,5,5,130,229,192,0,0,0,5,5,190,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,243,5,5,77,230,192,0,0,0,192,0,0,0,5,5,132,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,243,5,5,96,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,243,192,0,0,0,192,0,0,0,5,5,144,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,244,5,5,73,231,5,5,73,231,192,0,0,0,192,0,0,0,5,5,38,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,232,192,0,0,0,192,0,0,0,5,5,61,235,192,0,0,0,192,0,0,0,5,5,68,229,192,0,0,0,5,5,116,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,244,5,5,223,232,192,0,0,0,192,0,0,0,5,5,6,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,227,192,0,0,0,5,5,34,245,192,0,0,0,5,5,45,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,245,192,0,0,0,192,0,0,0,5,5,0,199,192,0,0,0,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,245,192,0,0,0,5,5,27,230,192,0,0,0,192,0,0,0,5,5,0,208,5,5,53,230,192,0,0,0,5,5,144,226,5,5,161,235,5,5,164,226,5,5,34,228,192,0,0,0,5,5,81,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,246,5,5,90,246,192,0,0,0,5,5,252,232,192,0,0,0,5,5,156,227,5,5,19,228,5,5,138,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,227,5,5,208,236,5,5,181,246,192,0,0,0,5,5,185,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,231,5,5,89,236,5,5,43,241,5,5,186,247,192,0,0,0,5,5,75,227,5,5,209,247,192,0,0,0,5,5,133,227,192,0,0,0,192,0,0,0,5,5,242,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,235,192,0,0,0,5,5,128,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,234,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,64,3,0,5,0,0,6,122,64,133,0,5,0,0,6,122,64,3,0,5,0,0,8,122,64,133,0,5,0,0,8,122,64,3,0,5,0,0,10,122,64,133,0,5,0,0,10,122,64,3,0,5,0,0,14,122,64,133,0,5,0,0,14,122,64,3,0,5,0,0,16,122,64,133,0,5,0,0,16,122,64,133,0,5,0,0,18,122,64,133,0,5,0,0,18,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,20,122,64,133,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,22,122,64,133,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,24,122,64,133,0,5,0,0,24,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,26,122,64,133,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,28,122,64,133,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,30,122,64,133,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,32,122,64,133,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,34,122,64,133,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,36,122,64,133,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,38,122,64,133,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,40,122,64,133,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,42,122,64,133,0,5,0,0,42,122,64,133,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,44,122,64,133,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,46,122,64,133,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,48,122,64,133,0,5,0,0,50,122,64,133,0,5,0,0,52,122,64,133,0,5,0,0,54,122,64,133,0,5,0,0,56,122,64,133,0,5,0,0,58,122,64,133,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,58,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,60,122,64,133,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,60,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,62,122,64,133,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,62,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,64,122,64,133,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,64,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,66,122,64,133,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,66,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,68,122,64,133,0,5,0,0,70,122,64,133,0,5,0,0,72,122,64,133,0,5,0,0,74,122,64,133,0,5,0,0,76,122,64,3,0,5,0,0,78,122,64,133,0,5,0,0,78,122,64,3,0,5,0,0,80,122,64,133,0,5,0,0,80,122,64,3,0,5,0,0,82,122,64,133,0,5,0,0,82,122,64,133,0,5,0,0,84,122,64,133,0,5,0,0,86,122,64,133,0,5,0,0,88,122,64,133,0,5,0,0,90,122,64,133,0,5,0,0,92,122,64,3,0,5,0,0,94,122,64,133,0,5,0,0,94,122,64,133,0,5,0,0,96,122,64,133,0,5,0,0,98,122,64,133,0,5,0,0,100,122,64,133,0,5,0,0,102,122,64,133,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,18,122,64,3,0,5,0,0,24,122,64,133,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,6,122,64,2,0,5,0,0,8,122,64,2,0,5,0,0,10,122,64,2,0,5,0,0,14,122,64,2,0,5,0,0,16,122,64,5,0,5,0,0,116,13,64,4,0,5,0,0,6,122,64,4,0,5,0,0,8,122,64,4,0,5,0,0,10,122,64,4,0,5,0,0,14,122,64,4,0,5,0,0,16,122,64,4,0,5,0,0,18,122,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,64,2,0,5,0,0,20,122,64,2,0,5,0,0,22,122,64,4,0,5,0,0,24,122,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,64,2,0,5,0,0,26,122,64,2,0,5,0,0,28,122,64,4,0,5,0,0,30,122,64,4,0,5,0,0,32,122,64,2,0,5,0,0,34,122,64,2,0,5,0,0,36,122,64,2,0,5,0,0,38,122,64,2,0,5,0,0,40,122,64,4,0,5,0,0,42,122,64,2,0,5,0,0,44,122,64,2,0,5,0,0,46,122,64,2,0,5,0,0,48,122,64,2,0,5,0,0,50,122,64,2,0,5,0,0,52,122,64,2,0,5,0,0,54,122,64,2,0,5,0,0,56,122,64,2,0,5,0,0,58,122,64,2,0,5,0,0,60,122,64,2,0,5,0,0,62,122,64,2,0,5,0,0,64,122,64,2,0,5,0,0,66,122,64,4,0,5,0,0,68,122,64,2,0,5,0,0,70,122,64,2,0,5,0,0,72,122,64,4,0,5,0,0,74,122,64,2,0,5,0,0,76,122,64,4,0,5,0,0,78,122,64,4,0,5,0,0,80,122,64,4,0,5,0,0,82,122,64,2,0,5,0,0,84,122,64,2,0,5,0,0,86,122,64,2,0,5,0,0,88,122,64,2,0,5,0,0,90,122,64,2,0,5,0,0,92,122,64,4,0,5,0,0,94,122,64,4,0,5,0,0,96,122,64,4,0,5,0,0,98,122,64,4,0,5,0,0,100,122,64,2,0,5,0,0,102,122,64,5,0,5,0,0,116,13,0,5,0,174,0,0,0,0,64,4,0,5,0,0,6,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,8,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,14,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,16,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,18,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,24,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,48,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,50,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,52,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,54,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,56,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,68,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,70,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,72,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,74,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,76,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,78,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,80,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,82,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,84,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,86,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,88,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,90,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,92,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,102,122,0,5,0,174,0,0,0,0,64,5,0,5,0,0,26,122,0,5,0,70,0,0,46,122,0,133,0,5,0,247,101,121,0,0,0,0,5,5,18,122,2,174,0,0,5,5,24,122,3,174,0,0,5,5,116,13,5,174,0,0,4,5,6,122,5,174,0,0,4,5,8,122,5,174,0,0,4,5,10,122,5,174,0,0,4,5,14,122,5,174,0,0,4,5,16,122,5,174,0,0,4,5,18,122,5,174,0,0,5,5,18,122,2,174,0,0,5,174,0,0,2,5,20,122,5,174,0,0,2,5,22,122,5,174,0,0,4,5,24,122,5,174,0,0,5,5,24,122,3,174,0,0,5,174,0,0,2,5,26,122,5,174,0,0,2,5,28,122,5,174,0,0,4,5,30,122,5,174,0,0,4,5,32,122,5,174,0,0,2,5,34,122,5,174,0,0,2,5,36,122,5,174,0,0,2,5,38,122,5,174,0,0,2,5,40,122,5,174,0,0,4,5,42,122,5,174,0,0,2,5,44,122,5,174,0,0,2,5,46,122,5,174,0,0,2,5,48,122,5,174,0,0,2,5,50,122,5,174,0,0,2,5,52,122,5,174,0,0,2,5,54,122,5,174,0,0,2,5,56,122,5,174,0,0,2,5,58,122,5,174,0,0,2,5,60,122,5,174,0,0,2,5,62,122,5,174,0,0,2,5,64,122,5,174,0,0,2,5,66,122,5,174,0,0,4,5,68,122,5,174,0,0,2,5,70,122,5,174,0,0,2,5,72,122,5,174,0,0,4,5,74,122,5,174,0,0,2,5,76,122,5,174,0,0,4,5,78,122,5,174,0,0,4,5,80,122,5,174,0,0,4,5,82,122,5,174,0,0,2,5,84,122,5,174,0,0,2,5,86,122,5,174,0,0,2,5,88,122,5,174,0,0,2,5,90,122,5,174,0,0,2,5,92,122,5,174,0,0,4,5,94,122,5,174,0,0,4,5,96,122,5,174,0,0,4,5,98,122,5,174,0,0,4,5,100,122,5,174,0,0,2,5,102,122,5,174,0,0,5,5,82,122,5,70,86,122,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,116,13,5,5,0,0,87,0,109,48,48,1,131,48,204,0,142,48,154,0,147,48,132,0,150,48,118,0,150,48,255,255,24,122,4,5,153,48,22,0,154,48,4,0,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,20,0,93,48,48,0,104,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,104,48,255,255,46,122,2,5,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,93,48,255,255,36,122,2,5,95,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,100,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,83,48,20,0,83,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,87,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,70,48,255,255,10,122,4,5,75,48,197,162,77,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,81,48,0,192,197,98,147,48,255,255,102,122,2,5,148,48,255,255,10,122,4,5,149,48,255,255,18,122,4,5,142,48,255,255,94,122,4,5,143,48,255,255,94,122,4,5,144,48,255,255,96,122,4,5,145,48,255,255,98,122,4,5,146,48,255,255,100,122,4,5,136,48,26,0,139,48,12,0,139,48,255,255,88,122,2,5,140,48,255,255,90,122,2,5,141,48,255,255,92,122,2,5,136,48,255,255,82,122,4,5,137,48,255,255,84,122,2,5,138,48,255,255,86,122,2,5,131,48,255,255,78,122,4,5,132,48,255,255,78,122,4,5,133,48,255,255,80,122,4,5,134,48,255,255,80,122,4,5,135,48,255,255,82,122,4,5,120,48,48,0,125,48,26,0,128,48,12,0,128,48,255,255,72,122,2,5,129,48,255,255,74,122,4,5,130,48,255,255,76,122,2,5,125,48,255,255,66,122,2,5,126,48,255,255,68,122,4,5,127,48,255,255,70,122,2,5,120,48,255,255,64,122,2,5,121,48,255,255,64,122,2,5,122,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,124,48,255,255,66,122,2,5,114,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,118,48,255,255,62,122,2,5,119,48,255,255,62,122,2,5,114,48,255,255,60,122,2,5,115,48,255,255,60,122,2,5,116,48,255,255,60,122,2,5,109,48,255,255,54,122,2,5,110,48,255,255,56,122,2,5,111,48,255,255,58,122,2,5,112,48,255,255,58,122,2,5,113,48,255,255,58,122,2,5,87,48,98,0,98,48,48,0,103,48,26,0,106,48,12,0,106,48,255,255,48,122,2,5,107,48,255,255,50,122,2,5,108,48,255,255,52,122,2,5,103,48,255,255,44,122,2,5,104,48,255,255,46,122,2,5,105,48,255,255,46,122,2,5,98,48,255,255,40,122,2,5,99,48,255,255,42,122,4,5,100,48,255,255,42,122,4,5,101,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,92,48,26,0,95,48,12,0,95,48,255,255,38,122,2,5,96,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,92,48,255,255,34,122,2,5,93,48,255,255,36,122,2,5,94,48,255,255,36,122,2,5,87,48,255,255,30,122,4,5,88,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,90,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,76,48,45,0,81,48,25,0,84,48,12,0,84,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,86,48,255,255,28,122,2,5,81,48,255,255,24,122,4,5,82,48,0,192,197,98,83,48,255,255,26,122,2,5,76,48,197,162,77,48,255,255,20,122,2,5,78,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,80,48,255,255,22,122,2,5,70,48,26,0,73,48,12,0,73,48,255,255,16,122,4,5,74,48,255,255,16,122,4,5,75,48,255,255,18,122,4,5,70,48,255,255,10,122,4,5,71,48,255,255,14,122,4,5,72,48,255,255,14,122,4,5,65,48,255,255,6,122,4,5,66,48,255,255,6,122,4,5,67,48,255,255,8,122,4,5,68,48,255,255,8,122,4,5,69,48,255,255,10,122,4,5,0,0,197,162,0,0,87,0,109,48,239,0,131,48,161,0,142,48,122,0,147,48,105,0,150,48,94,0,150,48,3,192,197,66,153,48,17,0,154,48,4,0,111,48,7,192,197,226,114,48,8,192,197,34,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,20,0,93,48,37,0,104,48,20,0,117,48,9,0,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,104,48,6,192,197,98,111,48,7,192,197,226,114,48,8,192,197,34,93,48,5,192,197,34,95,48,5,192,197,98,97,48,5,192,197,162,100,48,5,192,197,226,102,48,6,192,197,34,83,48,15,0,83,48,3,192,197,226,85,48,4,192,197,34,87,48,4,192,197,98,89,48,4,192,197,162,91,48,4,192,197,226,70,48,1,192,197,98,75,48,2,192,197,99,77,48,2,192,197,194,79,48,3,192,197,2,81,48,3,192,197,131,147,48,13,192,197,98,148,48,1,192,197,98,149,48,2,192,197,34,142,48,12,192,197,98,143,48,12,192,197,98,144,48,12,192,197,162,145,48,12,192,197,226,146,48,13,192,197,34,136,48,20,0,139,48,9,0,139,48,11,192,197,162,140,48,11,192,197,226,141,48,12,192,197,34,136,48,10,192,197,226,137,48,11,192,197,34,138,48,11,192,197,98,131,48,10,192,197,98,132,48,10,192,197,98,133,48,10,192,197,162,134,48,10,192,197,162,135,48,10,192,197,226,120,48,37,0,125,48,20,0,128,48,9,0,128,48,9,192,197,162,129,48,9,192,197,226,130,48,10,192,197,34,125,48,8,192,197,226,126,48,9,192,197,34,127,48,9,192,197,98,120,48,8,192,197,162,121,48,8,192,197,162,122,48,8,192,197,162,123,48,8,192,197,226,124,48,8,192,197,226,114,48,20,0,117,48,9,0,117,48,8,192,197,98,118,48,8,192,197,98,119,48,8,192,197,98,114,48,8,192,197,34,115,48,8,192,197,34,116,48,8,192,197,34,109,48,7,192,197,98,110,48,7,192,197,162,111,48,7,192,197,226,112,48,7,192,197,226,113,48,7,192,197,226,87,48,76,0,98,48,37,0,103,48,20,0,106,48,9,0,106,48,6,192,197,162,107,48,6,192,197,226,108,48,7,192,197,34,103,48,6,192,197,34,104,48,6,192,197,98,105,48,6,192,197,98,98,48,5,192,197,162,99,48,5,192,197,226,100,48,5,192,197,226,101,48,5,192,197,226,102,48,6,192,197,34,92,48,20,0,95,48,9,0,95,48,5,192,197,98,96,48,5,192,197,98,97,48,5,192,197,162,92,48,4,192,197,226,93,48,5,192,197,34,94,48,5,192,197,34,87,48,4,192,197,98,88,48,4,192,197,98,89,48,4,192,197,162,90,48,4,192,197,162,91,48,4,192,197,226,76,48,37,0,81,48,20,0,84,48,9,0,84,48,3,192,197,226,85,48,4,192,197,34,86,48,4,192,197,34,81,48,3,192,197,66,82,48,3,192,197,131,83,48,3,192,197,226,76,48,2,192,197,99,77,48,2,192,197,194,78,48,2,192,197,194,79,48,3,192,197,2,80,48,3,192,197,2,70,48,20,0,73,48,9,0,73,48,1,192,197,226,74,48,1,192,197,226,75,48,2,192,197,34,70,48,1,192,197,98,71,48,1,192,197,162,72,48,1,192,197,162,65,48,0,192,197,226,66,48,0,192,197,226,67,48,1,192,197,34,68,48,1,192,197,34,69,48,1,192,197,98,118,13,5,5,0,0,245,0,197,48,175,1,248,49,216,0,126,255,107,0,141,255,54,0,149,255,26,0,153,255,12,0,153,255,15,192,198,65,154,255,15,192,198,97,155,255,15,192,198,129,156,255,15,192,198,1,149,255,15,192,198,65,150,255,15,192,198,129,151,255,15,192,198,1,152,255,15,192,198,33,145,255,12,0,145,255,15,192,198,65,146,255,15,192,198,97,147,255,15,192,198,129,148,255,15,192,198,1,141,255,15,192,198,97,142,255,15,192,198,129,143,255,15,192,198,1,144,255,15,192,198,33,133,255,26,0,137,255,12,0,137,255,15,192,198,129,138,255,15,192,198,1,139,255,15,192,198,33,140,255,15,192,198,65,133,255,15,192,198,1,134,255,15,192,198,33,135,255,15,192,198,65,136,255,15,192,198,97,129,255,12,0,129,255,15,192,198,33,130,255,15,192,198,65,131,255,15,192,198,97,132,255,15,192,198,129,126,255,15,192,198,97,127,255,15,192,198,129,128,255,15,192,198,1,109,255,54,0,118,255,26,0,122,255,12,0,122,255,15,192,198,129,123,255,15,192,198,1,124,255,15,192,198,33,125,255,15,192,198,65,118,255,15,192,198,1,119,255,15,192,198,33,120,255,15,192,198,65,121,255,15,192,198,97,114,255,12,0,114,255,15,192,198,33,115,255,15,192,198,65,116,255,15,192,198,97,117,255,15,192,198,129,109,255,15,192,198,65,110,255,15,192,198,129,111,255,15,192,198,65,113,255,15,192,198,1,255,49,26,0,105,255,12,0,105,255,15,192,198,65,106,255,15,192,198,97,107,255,15,192,198,129,108,255,15,192,198,1,255,49,15,192,198,129,102,255,15,192,198,129,103,255,15,192,198,1,104,255,15,192,198,33,251,49,12,0,251,49,15,192,198,1,252,49,15,192,198,33,253,49,15,192,198,65,254,49,15,192,198,97,248,49,15,192,198,97,249,49,15,192,198,129,250,49,15,192,198,65,227,48,107,0,242,48,54,0,240,49,26,0,244,49,12,0,244,49,15,192,198,65,245,49,15,192,198,1,246,49,15,192,198,33,247,49,15,192,198,65,240,49,15,192,198,65,241,49,15,192,198,33,242,49,15,192,198,65,243,49,15,192,198,129,247,48,12,0,247,48,15,192,198,1,248,48,15,192,198,33,249,48,15,192,198,97,250,48,15,192,198,129,242,48,15,192,198,129,244,48,15,192,198,65,245,48,15,192,198,1,246,48,15,192,198,97,234,48,26,0,238,48,12,0,238,48,15,192,198,1,239,48,15,192,198,1,240,48,15,192,198,33,241,48,15,192,198,97,234,48,15,192,198,33,235,48,15,192,198,65,236,48,15,192,198,97,237,48,15,192,198,129,230,48,12,0,230,48,15,192,198,65,231,48,15,192,198,129,232,48,15,192,198,129,233,48,15,192,198,1,227,48,15,192,198,1,228,48,15,192,198,1,229,48,15,192,198,65,212,48,51,0,219,48,26,0,223,48,12,0,223,48,15,192,198,33,224,48,15,192,198,65,225,48,15,192,198,97,226,48,15,192,198,129,219,48,15,192,198,129,220,48,15,192,198,129,221,48,15,192,198,129,222,48,15,192,198,1,215,48,12,0,215,48,15,192,198,65,216,48,15,192,198,97,217,48,15,192,198,97,218,48,15,192,198,97,212,48,15,192,198,33,213,48,15,192,198,65,214,48,15,192,198,65,204,48,26,0,208,48,12,0,208,48,15,192,198,1,209,48,15,192,198,1,210,48,15,192,198,33,211,48,15,192,198,33,204,48,15,192,198,65,205,48,15,192,198,97,206,48,15,192,198,129,207,48,15,192,198,1,200,48,12,0,200,48,15,192,198,129,201,48,15,192,198,129,202,48,15,192,198,1,203,48,15,192,198,33,197,48,15,192,198,65,198,48,15,192,198,97,199,48,15,192,198,97,126,48,206,1,166,48,107,0,181,48,54,0,189,48,26,0,193,48,12,0,193,48,15,192,198,33,194,48,15,192,198,33,195,48,15,192,198,65,196,48,15,192,198,65,189,48,15,192,198,129,190,48,15,192,198,129,191,48,15,192,198,1,192,48,15,192,198,1,185,48,12,0,185,48,15,192,198,65,186,48,15,192,198,65,187,48,15,192,198,97,188,48,15,192,198,97,181,48,15,192,198,1,182,48,15,192,198,1,183,48,15,192,198,33,184,48,15,192,198,33,173,48,26,0,177,48,12,0,177,48,15,192,198,97,178,48,15,192,198,97,179,48,15,192,198,129,180,48,15,192,198,129,173,48,15,192,198,33,174,48,15,192,198,33,175,48,15,192,198,65,176,48,15,192,198,65,169,48,12,0,169,48,15,192,198,129,170,48,15,192,198,129,171,48,15,192,198,1,172,48,15,192,198,1,166,48,15,192,198,65,167,48,15,192,198,97,168,48,15,192,198,97,141,48,29,1,150,48,249,0,162,48,12,0,162,48,15,192,198,1,163,48,15,192,198,33,164,48,15,192,198,33,165,48,15,192,198,65,150,48,255,255,14,122,2,5,153,48,5,0,154,48,189,0,161,48,15,192,198,1,45,0,173,48,81,0,196,48,42,0,216,48,20,0,240,48,9,0,240,48,15,192,198,33,241,48,15,192,198,97,242,48,15,192,198,129,216,48,15,192,198,97,219,48,15,192,198,129,239,48,15,192,198,1,207,48,9,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,196,48,15,192,198,65,198,48,15,192,198,97,200,48,15,192,198,129,183,48,20,0,189,48,9,0,189,48,15,192,198,129,191,48,15,192,198,1,193,48,15,192,198,33,183,48,15,192,198,33,185,48,15,192,198,65,187,48,15,192,198,97,173,48,15,192,198,33,175,48,15,192,198,65,177,48,15,192,198,97,179,48,15,192,198,129,181,48,15,192,198,1,95,48,52,0,114,48,24,0,123,48,10,0,123,48,255,255,16,122,2,5,166,48,15,192,198,65,171,48,15,192,198,1,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,102,48,12,0,102,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,95,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,100,48,255,255,10,122,2,5,83,48,26,0,89,48,12,0,89,48,255,255,10,122,2,5,91,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,83,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,87,48,255,255,8,122,2,5,70,48,255,255,10,122,2,5,75,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,9,0,207,48,15,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,216,48,15,192,198,97,219,48,15,192,198,129,111,48,255,255,6,122,2,5,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,145,48,16,0,145,48,255,255,14,122,2,5,146,48,255,255,16,122,2,5,148,48,255,255,10,122,2,5,149,48,255,255,6,122,2,5,141,48,255,255,16,122,2,5,142,48,255,255,6,122,2,5,143,48,255,255,6,122,2,5,144,48,255,255,8,122,2,5,133,48,34,0,137,48,16,0,137,48,255,255,6,122,2,5,138,48,255,255,8,122,2,5,139,48,255,255,10,122,2,5,140,48,255,255,14,122,2,5,133,48,255,255,10,122,2,5,134,48,255,255,10,122,2,5,135,48,255,255,16,122,2,5,136,48,255,255,16,122,2,5,129,48,16,0,129,48,255,255,14,122,2,5,130,48,255,255,16,122,2,5,131,48,255,255,6,122,2,5,132,48,255,255,6,122,2,5,126,48,255,255,6,122,2,5,127,48,255,255,8,122,2,5,128,48,255,255,10,122,2,5,95,48,138,0,110,48,70,0,118,48,34,0,122,48,16,0,122,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,124,48,255,255,16,122,2,5,125,48,255,255,16,122,2,5,118,48,255,255,10,122,2,5,119,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,121,48,255,255,14,122,2,5,114,48,16,0,114,48,255,255,8,122,2,5,115,48,255,255,8,122,2,5,116,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,110,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,112,48,255,255,6,122,2,5,113,48,255,255,6,122,2,5,102,48,34,0,106,48,16,0,106,48,255,255,6,122,2,5,107,48,255,255,8,122,2,5,108,48,255,255,10,122,2,5,109,48,255,255,14,122,2,5,102,48,255,255,14,122,2,5,103,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,105,48,255,255,16,122,2,5,98,48,16,0,98,48,255,255,8,122,2,5,99,48,255,255,10,122,2,5,100,48,255,255,10,122,2,5,101,48,255,255,10,122,2,5,95,48,255,255,6,122,2,5,96,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,80,48,66,0,87,48,34,0,91,48,16,0,91,48,255,255,14,122,2,5,92,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,94,48,255,255,16,122,2,5,87,48,255,255,8,122,2,5,88,48,255,255,8,122,2,5,89,48,255,255,10,122,2,5,90,48,255,255,10,122,2,5,83,48,16,0,83,48,255,255,16,122,2,5,84,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,86,48,255,255,6,122,2,5,80,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,82,48,255,255,14,122,2,5,72,48,34,0,76,48,16,0,76,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,78,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,72,48,255,255,14,122,2,5,73,48,255,255,16,122,2,5,74,48,255,255,16,122,2,5,75,48,255,255,6,122,2,5,68,48,16,0,68,48,255,255,8,122,2,5,69,48,255,255,10,122,2,5,70,48,255,255,10,122,2,5,71,48,255,255,14,122,2,5,65,48,255,255,6,122,2,5,66,48,255,255,6,122,2,5,67,48,255,255,8,122,2,5,15,0,198,161,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,21,192,198,129,156,255,21,192,198,161,157,255,22,192,198,33,152,255,21,192,198,33,153,255,21,192,198,65,154,255,21,192,198,97,147,255,20,192,198,129,148,255,20,192,198,161,149,255,20,192,198,193,150,255,20,192,198,225,151,255,21,192,198,1,142,255,15,0,142,255,19,192,198,225,143,255,20,192,198,1,144,255,20,192,198,33,145,255,20,192,198,65,146,255,20,192,198,97,137,255,19,192,198,65,138,255,19,192,198,97,139,255,19,192,198,129,140,255,19,192,198,161,141,255,19,192,198,193,127,255,32,0,132,255,15,0,132,255,18,192,198,161,133,255,18,192,198,193,134,255,18,192,198,225,135,255,19,192,198,1,136,255,19,192,198,33,127,255,18,192,198,1,128,255,18,192,198,33,129,255,18,192,198,65,130,255,18,192,198,97,131,255,18,192,198,129,122,255,15,0,122,255,17,192,198,97,123,255,17,192,198,129,124,255,17,192,198,161,125,255,17,192,198,193,126,255,17,192,198,225,117,255,16,192,198,65,118,255,16,192,198,97,119,255,16,192,198,193,120,255,16,192,198,225,121,255,17,192,198,1,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,15,192,198,225,115,255,16,192,198,1,116,255,16,192,198,33,110,255,20,192,198,225,111,255,18,192,198,97,113,255,15,192,198,193,105,255,16,192,198,1,106,255,16,192,198,33,107,255,16,192,198,65,108,255,20,192,198,161,109,255,20,192,198,193,254,49,15,0,254,49,21,192,198,97,255,49,21,192,198,129,102,255,22,192,198,1,103,255,15,192,198,193,104,255,15,192,198,225,249,49,19,192,198,225,250,49,20,192,198,65,251,49,21,192,198,1,252,49,21,192,198,33,253,49,21,192,198,65,250,48,32,0,244,49,15,0,244,49,19,192,198,1,245,49,19,192,198,97,246,49,19,192,198,129,247,49,19,192,198,161,248,49,19,192,198,193,250,48,22,192,198,1,240,49,16,192,198,225,241,49,17,192,198,161,242,49,17,192,198,193,243,49,18,192,198,161,245,48,15,0,245,48,16,192,198,97,246,48,17,192,198,1,247,48,21,192,198,161,248,48,21,192,198,193,249,48,21,192,198,225,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,243,48,22,192,198,33,244,48,16,192,198,1,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,21,192,198,129,238,48,21,192,198,161,239,48,21,192,198,161,234,48,21,192,198,33,235,48,21,192,198,65,236,48,21,192,198,97,229,48,20,192,198,193,230,48,20,192,198,193,231,48,20,192,198,225,232,48,20,192,198,225,233,48,21,192,198,1,224,48,15,0,224,48,20,192,198,65,225,48,20,192,198,97,226,48,20,192,198,129,227,48,20,192,198,161,228,48,20,192,198,161,219,48,19,192,198,225,220,48,19,192,198,225,221,48,19,192,198,225,222,48,20,192,198,1,223,48,20,192,198,33,209,48,32,0,214,48,15,0,214,48,19,192,198,161,215,48,19,192,198,161,216,48,19,192,198,193,217,48,19,192,198,193,218,48,19,192,198,193,209,48,19,192,198,97,210,48,19,192,198,129,211,48,19,192,198,129,212,48,19,192,198,129,213,48,19,192,198,161,204,48,15,0,204,48,19,192,198,1,205,48,19,192,198,33,206,48,19,192,198,65,207,48,19,192,198,97,208,48,19,192,198,97,199,48,18,192,198,129,200,48,18,192,198,161,201,48,18,192,198,161,202,48,18,192,198,193,203,48,18,192,198,225,179,48,66,0,189,48,32,0,194,48,15,0,194,48,18,192,198,65,195,48,18,192,198,97,196,48,18,192,198,97,197,48,18,192,198,97,198,48,18,192,198,129,189,48,18,192,198,1,190,48,18,192,198,1,191,48,18,192,198,33,192,48,18,192,198,33,193,48,18,192,198,65,184,48,15,0,184,48,17,192,198,161,185,48,17,192,198,193,186,48,17,192,198,193,187,48,17,192,198,225,188,48,17,192,198,225,179,48,17,192,198,97,180,48,17,192,198,97,181,48,17,192,198,129,182,48,17,192,198,129,183,48,17,192,198,161,169,48,32,0,174,48,15,0,174,48,16,192,198,193,175,48,16,192,198,225,176,48,16,192,198,225,177,48,17,192,198,1,178,48,17,192,198,34,169,48,16,192,198,65,170,48,16,192,198,65,171,48,16,192,198,97,172,48,16,192,198,130,173,48,16,192,198,193,164,48,15,0,164,48,15,192,198,225,165,48,16,192,198,1,166,48,16,192,198,1,167,48,16,192,198,33,168,48,16,192,198,33,153,48,11,0,154,48,99,0,161,48,15,192,198,193,162,48,15,192,198,193,163,48,15,192,198,225,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,21,192,198,161,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,200,48,9,0,200,48,18,192,198,161,207,48,19,192,198,97,210,48,19,192,198,129,193,48,18,192,198,65,196,48,18,192,198,97,198,48,18,192,198,129,181,48,20,0,187,48,9,0,187,48,17,192,198,225,189,48,18,192,198,1,191,48,18,192,198,33,181,48,17,192,198,129,183,48,17,192,198,161,185,48,17,192,198,193,175,48,9,0,175,48,16,192,198,225,177,48,17,192,198,34,179,48,17,192,198,97,166,48,16,192,198,1,171,48,16,192,198,130,173,48,16,192,198,193,4,0,207,48,19,192,198,97,210,48,19,192,198,129,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,22,0,198,66,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,33,192,198,194,156,255,34,192,198,2,157,255,35,192,198,2,152,255,33,192,198,2,153,255,33,192,198,66,154,255,33,192,198,130,147,255,31,192,198,194,148,255,32,192,198,2,149,255,32,192,198,66,150,255,32,192,198,130,151,255,32,192,198,194,142,255,15,0,142,255,30,192,198,130,143,255,30,192,198,194,144,255,31,192,198,2,145,255,31,192,198,66,146,255,31,192,198,130,137,255,29,192,198,66,138,255,29,192,198,130,139,255,29,192,198,194,140,255,30,192,198,2,141,255,30,192,198,66,127,255,32,0,132,255,15,0,132,255,28,192,198,2,133,255,28,192,198,66,134,255,28,192,198,130,135,255,28,192,198,194,136,255,29,192,198,2,127,255,26,192,198,194,128,255,27,192,198,2,129,255,27,192,198,66,130,255,27,192,198,130,131,255,27,192,198,194,122,255,15,0,122,255,25,192,198,130,123,255,25,192,198,194,124,255,26,192,198,2,125,255,26,192,198,66,126,255,26,192,198,130,117,255,23,192,198,130,118,255,23,192,198,194,119,255,24,192,198,98,120,255,24,192,198,162,121,255,24,192,198,226,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,22,192,198,194,115,255,23,192,198,2,116,255,23,192,198,66,110,255,32,192,198,130,111,255,27,192,198,130,113,255,22,192,198,130,105,255,23,192,198,2,106,255,23,192,198,66,107,255,23,192,198,130,108,255,32,192,198,2,109,255,32,192,198,66,254,49,15,0,254,49,33,192,198,130,255,49,33,192,198,194,102,255,34,192,198,194,103,255,22,192,198,130,104,255,22,192,198,194,249,49,30,192,198,130,250,49,31,192,198,66,251,49,32,192,198,194,252,49,33,192,198,2,253,49,33,192,198,66,250,48,32,0,244,49,15,0,244,49,28,192,198,194,245,49,29,192,198,130,246,49,29,192,198,194,247,49,30,192,198,2,248,49,30,192,198,66,250,48,34,192,198,194,240,49,24,192,198,162,241,49,26,192,198,2,242,49,26,192,198,66,243,49,28,192,198,2,245,48,15,0,245,48,23,192,198,194,246,48,24,192,198,226,247,48,34,192,198,2,248,48,34,192,198,66,249,48,34,192,198,130,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,243,48,35,192,198,2,244,48,23,192,198,2,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,33,192,198,194,238,48,34,192,198,2,239,48,34,192,198,2,234,48,33,192,198,2,235,48,33,192,198,66,236,48,33,192,198,130,229,48,32,192,198,66,230,48,32,192,198,66,231,48,32,192,198,130,232,48,32,192,198,130,233,48,32,192,198,194,224,48,15,0,224,48,31,192,198,66,225,48,31,192,198,130,226,48,31,192,198,194,227,48,32,192,198,2,228,48,32,192,198,2,219,48,30,192,198,130,220,48,30,192,198,130,221,48,30,192,198,130,222,48,30,192,198,194,223,48,31,192,198,2,209,48,32,0,214,48,15,0,214,48,30,192,198,2,215,48,30,192,198,2,216,48,30,192,198,66,217,48,30,192,198,66,218,48,30,192,198,66,209,48,29,192,198,130,210,48,29,192,198,194,211,48,29,192,198,194,212,48,29,192,198,194,213,48,30,192,198,2,204,48,15,0,204,48,28,192,198,194,205,48,29,192,198,2,206,48,29,192,198,66,207,48,29,192,198,130,208,48,29,192,198,130,199,48,27,192,198,194,200,48,28,192,198,2,201,48,28,192,198,2,202,48,28,192,198,66,203,48,28,192,198,130,179,48,66,0,189,48,32,0,194,48,15,0,194,48,27,192,198,66,195,48,27,192,198,130,196,48,27,192,198,130,197,48,27,192,198,130,198,48,27,192,198,194,189,48,26,192,198,194,190,48,26,192,198,194,191,48,27,192,198,2,192,48,27,192,198,2,193,48,27,192,198,66,184,48,15,0,184,48,26,192,198,2,185,48,26,192,198,66,186,48,26,192,198,66,187,48,26,192,198,130,188,48,26,192,198,130,179,48,25,192,198,130,180,48,25,192,198,130,181,48,25,192,198,194,182,48,25,192,198,194,183,48,26,192,198,2,169,48,32,0,174,48,15,0,174,48,24,192,198,98,175,48,24,192,198,162,176,48,24,192,198,162,177,48,24,192,198,226,178,48,25,192,198,35,169,48,23,192,198,130,170,48,23,192,198,130,171,48,23,192,198,194,172,48,24,192,198,3,173,48,24,192,198,98,164,48,15,0,164,48,22,192,198,194,165,48,23,192,198,2,166,48,23,192,198,2,167,48,23,192,198,66,168,48,23,192,198,66,153,48,11,0,154,48,99,0,161,48,22,192,198,130,162,48,22,192,198,130,163,48,22,192,198,194,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,34,192,198,2,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,200,48,9,0,200,48,28,192,198,2,207,48,29,192,198,130,210,48,29,192,198,194,193,48,27,192,198,66,196,48,27,192,198,130,198,48,27,192,198,194,181,48,20,0,187,48,9,0,187,48,26,192,198,130,189,48,26,192,198,194,191,48,27,192,198,2,181,48,25,192,198,194,183,48,26,192,198,2,185,48,26,192,198,66,175,48,9,0,175,48,24,192,198,162,177,48,25,192,198,35,179,48,25,192,198,130,166,48,23,192,198,2,171,48,24,192,198,3,173,48,24,192,198,98,4,0,207,48,29,192,198,130,210,48,29,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,170,170,3,0,82,0,56,0,65,0,219,22,0,16,109,20,0,96,1,0,0,96,252,82,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,188,31,0,0,188,31,0,0,172,40,0,0,172,40,0,0,168,42,0,0,168,42,0,0,168,78,0,0,224,82,0,0,25,0,0,0,22,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,94,249,250,251,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,254,255,50,105,114,84,1,0,64,8,222,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,97,0,105,0,113,0,121,0,48,0,129,0,137,0,145,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,149,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,16,0,165,0,173,0,181,0,189,0,197,0,205,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,13,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,14,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,14,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,200,0,0,0,200,32,63,0,197,162,13,0,192,0,0,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,198,161,0,0,198,193,0,0,198,225,0,0,198,1,1,0,198,33,1,0,198,65,1,0,198,98,1,0,198,161,1,0,198,194,1,0,198,1,2,0,198,34,2,0,198,97,2,0,198,130,2,0,198,193,2,0,198,226,2,0,198,33,3,0,198,66,3,0,198,129,3,0,198,162,3,0,198,225,3,0,198,2,4,0,198,65,4,0,198,98,4,0,198,161,4,0,198,194,4,0,198,1,5,0,198,34,5,0,198,97,5,0,198,130,5,0,198,193,5,0,198,225,5,0,198,2,6,0,198,65,6,0,198,98,6,0,198,161,6,0,198,194,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,194,7,0,198,2,8,0,198,65,8,0,198,98,8,0,198,162,8,0,198,225,8,0,198,2,9,0,198,66,9,0,198,129,9,0,198,162,9,0,198,226,9,0,198,33,10,0,198,66,10,0,198,130,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,97,11,0,198,129,11,0,198,161,11,0,198,193,11,0,198,225,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,193,12,0,198,225,12,0,198,1,13,0,198,33,13,0,198,65,13,0,198,97,13,0,198,130,13,0,198,193,13,0,198,225,13,0,198,2,14,0,198,66,14,0,198,130,14,0,198,194,14,0,192,0,0,0,200,0,113,0,200,224,3,1,200,0,87,1,198,66,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,5,5,8,121,5,5,183,121,5,5,10,121,5,5,187,121,5,5,189,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,52,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,66,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,193,247,101,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,170,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,14,0,202,193,14,0,202,226,14,0,202,3,15,0,202,36,15,0,202,69,15,0,202,102,15,0,202,135,15,0,202,168,15,0,202,201,15,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,192,0,0,0,192,0,0,0,133,5,24,9,133,5,70,10,133,5,72,10,133,5,34,7,192,0,0,0,198,65,13,0,198,1,0,0,198,65,0,0,198,129,0,0,198,193,0,0,198,1,1,0,198,97,11,0,198,161,11,0,198,225,11,0,198,193,5,0,192,0,0,0,198,33,0,0,198,97,0,0,198,161,0,0,198,225,0,0,198,33,1,0,198,65,1,0,198,161,1,0,198,1,2,0,198,97,2,0,198,193,2,0,198,33,3,0,198,129,3,0,198,225,3,0,198,65,4,0,198,161,4,0,198,1,5,0,198,97,5,0,198,225,5,0,198,65,6,0,198,161,6,0,198,1,7,0,198,33,7,0,198,65,7,0,198,97,7,0,198,129,7,0,198,161,7,0,198,65,8,0,198,225,8,0,198,129,9,0,198,33,10,0,198,193,10,0,198,225,10,0,198,1,11,0,198,33,11,0,198,65,11,0,198,129,11,0,198,193,11,0,198,1,12,0,198,33,12,0,198,65,12,0,198,97,12,0,198,129,12,0,198,161,12,0,198,225,12,0,198,97,13,0,192,0,0,0,192,0,0,0,198,161,35,0,133,5,6,121,133,5,8,121,133,5,183,121,133,5,10,121,133,5,187,121,133,5,189,121,133,5,12,121,133,5,14,121,133,5,16,121,133,5,195,121,133,5,197,121,133,5,199,121,133,5,201,121,133,5,203,121,133,5,205,121,133,5,52,121,133,5,18,121,133,5,20,121,133,5,22,121,133,5,66,121,133,5,24,121,133,5,26,121,133,5,28,121,133,5,30,121,133,5,32,121,133,5,34,121,133,5,36,121,133,5,38,121,133,5,40,121,133,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,133,5,103,121,133,5,105,121,133,5,107,121,133,5,109,121,133,5,111,121,133,5,113,121,192,0,0,0,192,0,0,0,133,5,115,121,133,5,117,121,133,5,119,121,133,5,121,121,133,5,123,121,133,5,125,121,192,0,0,0,192,0,0,0,133,5,127,121,133,5,129,121,133,5,131,121,133,5,133,121,133,5,135,121,133,5,137,121,192,0,0,0,192,0,0,0,133,5,139,121,133,5,141,121,133,5,143,121,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,13,5,5,140,13,5,5,135,12,5,5,0,4,5,5,139,12,5,5,142,13,5,5,192,13,192,0,0,0,133,5,172,12,133,5,99,12,133,5,103,12,133,5,101,12,133,5,105,12,133,5,180,12,133,5,185,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,64,3,0,5,0,0,6,122,64,133,0,5,0,0,6,122,64,3,0,5,0,0,8,122,64,133,0,5,0,0,8,122,64,3,0,5,0,0,10,122,64,133,0,5,0,0,10,122,64,3,0,5,0,0,14,122,64,133,0,5,0,0,14,122,64,3,0,5,0,0,16,122,64,133,0,5,0,0,16,122,64,133,0,5,0,0,18,122,64,133,0,5,0,0,18,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,20,122,64,133,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,22,122,64,133,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,24,122,64,133,0,5,0,0,24,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,26,122,64,133,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,28,122,64,133,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,30,122,64,133,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,32,122,64,133,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,34,122,64,133,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,36,122,64,133,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,38,122,64,133,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,40,122,64,133,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,42,122,64,133,0,5,0,0,42,122,64,133,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,44,122,64,133,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,46,122,64,133,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,48,122,64,133,0,5,0,0,50,122,64,133,0,5,0,0,52,122,64,133,0,5,0,0,54,122,64,133,0,5,0,0,56,122,64,133,0,5,0,0,58,122,64,133,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,58,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,60,122,64,133,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,60,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,62,122,64,133,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,62,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,64,122,64,133,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,64,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,66,122,64,133,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,66,122,0,5,0,176,0,0,0,0,64,133,0,5,0,0,68,122,64,133,0,5,0,0,70,122,64,133,0,5,0,0,72,122,64,133,0,5,0,0,74,122,64,133,0,5,0,0,76,122,64,3,0,5,0,0,78,122,64,133,0,5,0,0,78,122,64,3,0,5,0,0,80,122,64,133,0,5,0,0,80,122,64,3,0,5,0,0,82,122,64,133,0,5,0,0,82,122,64,133,0,5,0,0,84,122,64,133,0,5,0,0,86,122,64,133,0,5,0,0,88,122,64,133,0,5,0,0,90,122,64,133,0,5,0,0,92,122,64,3,0,5,0,0,94,122,64,133,0,5,0,0,94,122,64,133,0,5,0,0,96,122,64,133,0,5,0,0,98,122,64,133,0,5,0,0,100,122,64,133,0,5,0,0,102,122,64,133,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,3,0,5,0,0,18,122,64,3,0,5,0,0,24,122,64,133,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,133,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,6,122,64,2,0,5,0,0,8,122,64,2,0,5,0,0,10,122,64,2,0,5,0,0,14,122,64,2,0,5,0,0,16,122,64,5,0,5,0,0,116,13,64,4,0,5,0,0,6,122,64,4,0,5,0,0,8,122,64,4,0,5,0,0,10,122,64,4,0,5,0,0,14,122,64,4,0,5,0,0,16,122,64,4,0,5,0,0,18,122,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,64,2,0,5,0,0,20,122,64,2,0,5,0,0,22,122,64,4,0,5,0,0,24,122,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,64,2,0,5,0,0,26,122,64,2,0,5,0,0,28,122,64,4,0,5,0,0,30,122,64,4,0,5,0,0,32,122,64,2,0,5,0,0,34,122,64,2,0,5,0,0,36,122,64,2,0,5,0,0,38,122,64,2,0,5,0,0,40,122,64,4,0,5,0,0,42,122,64,2,0,5,0,0,44,122,64,2,0,5,0,0,46,122,64,2,0,5,0,0,48,122,64,2,0,5,0,0,50,122,64,2,0,5,0,0,52,122,64,2,0,5,0,0,54,122,64,2,0,5,0,0,56,122,64,2,0,5,0,0,58,122,64,2,0,5,0,0,60,122,64,2,0,5,0,0,62,122,64,2,0,5,0,0,64,122,64,2,0,5,0,0,66,122,64,4,0,5,0,0,68,122,64,2,0,5,0,0,70,122,64,2,0,5,0,0,72,122,64,4,0,5,0,0,74,122,64,2,0,5,0,0,76,122,64,4,0,5,0,0,78,122,64,4,0,5,0,0,80,122,64,4,0,5,0,0,82,122,64,2,0,5,0,0,84,122,64,2,0,5,0,0,86,122,64,2,0,5,0,0,88,122,64,2,0,5,0,0,90,122,64,2,0,5,0,0,92,122,64,4,0,5,0,0,94,122,64,4,0,5,0,0,96,122,64,4,0,5,0,0,98,122,64,4,0,5,0,0,100,122,64,2,0,5,0,0,102,122,64,5,0,5,0,0,116,13,0,5,0,174,0,0,0,0,64,4,0,5,0,0,6,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,8,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,10,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,14,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,16,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,18,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,18,122,64,2,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,20,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,22,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,24,122,0,5,0,174,0,0,0,0,0,5,0,5,0,0,24,122,64,3,0,174,0,0,0,0,0,5,0,174,0,0,0,0,64,2,0,5,0,0,26,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,28,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,30,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,32,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,34,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,36,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,38,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,40,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,42,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,44,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,46,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,48,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,50,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,52,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,54,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,56,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,58,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,60,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,62,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,64,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,66,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,68,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,70,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,72,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,74,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,76,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,78,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,80,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,82,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,84,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,86,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,88,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,90,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,92,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,94,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,96,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,98,122,0,5,0,174,0,0,0,0,64,4,0,5,0,0,100,122,0,5,0,174,0,0,0,0,64,2,0,5,0,0,102,122,0,5,0,174,0,0,0,0,64,5,0,5,0,0,26,122,0,5,0,70,0,0,46,122,0,5,0,5,212,55,18,254,0,133,0,5,0,247,101,121,0,0,0,0,5,5,18,122,2,174,0,0,5,5,24,122,3,174,0,0,5,5,116,13,5,174,0,0,4,5,6,122,5,174,0,0,4,5,8,122,5,174,0,0,4,5,10,122,5,174,0,0,4,5,14,122,5,174,0,0,4,5,16,122,5,174,0,0,4,5,18,122,5,174,0,0,5,5,18,122,2,174,0,0,5,174,0,0,2,5,20,122,5,174,0,0,2,5,22,122,5,174,0,0,4,5,24,122,5,174,0,0,5,5,24,122,3,174,0,0,5,174,0,0,2,5,26,122,5,174,0,0,2,5,28,122,5,174,0,0,4,5,30,122,5,174,0,0,4,5,32,122,5,174,0,0,2,5,34,122,5,174,0,0,2,5,36,122,5,174,0,0,2,5,38,122,5,174,0,0,2,5,40,122,5,174,0,0,4,5,42,122,5,174,0,0,2,5,44,122,5,174,0,0,2,5,46,122,5,174,0,0,2,5,48,122,5,174,0,0,2,5,50,122,5,174,0,0,2,5,52,122,5,174,0,0,2,5,54,122,5,174,0,0,2,5,56,122,5,174,0,0,2,5,58,122,5,174,0,0,2,5,60,122,5,174,0,0,2,5,62,122,5,174,0,0,2,5,64,122,5,174,0,0,2,5,66,122,5,174,0,0,4,5,68,122,5,174,0,0,2,5,70,122,5,174,0,0,2,5,72,122,5,174,0,0,4,5,74,122,5,174,0,0,2,5,76,122,5,174,0,0,4,5,78,122,5,174,0,0,4,5,80,122,5,174,0,0,4,5,82,122,5,174,0,0,2,5,84,122,5,174,0,0,2,5,86,122,5,174,0,0,2,5,88,122,5,174,0,0,2,5,90,122,5,174,0,0,2,5,92,122,5,174,0,0,4,5,94,122,5,174,0,0,4,5,96,122,5,174,0,0,4,5,98,122,5,174,0,0,4,5,100,122,5,174,0,0,2,5,102,122,5,174,0,0,5,5,82,122,5,70,86,122,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,116,13,5,5,0,0,87,0,109,48,48,1,131,48,204,0,142,48,154,0,147,48,132,0,150,48,118,0,150,48,255,255,24,122,4,5,153,48,22,0,154,48,4,0,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,20,0,93,48,48,0,104,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,120,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,104,48,255,255,46,122,2,5,111,48,255,255,58,122,2,5,114,48,255,255,60,122,2,5,93,48,255,255,36,122,2,5,95,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,100,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,83,48,20,0,83,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,87,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,70,48,255,255,10,122,4,5,75,48,197,162,77,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,81,48,0,192,197,98,147,48,255,255,102,122,2,5,148,48,255,255,10,122,4,5,149,48,255,255,18,122,4,5,142,48,255,255,94,122,4,5,143,48,255,255,94,122,4,5,144,48,255,255,96,122,4,5,145,48,255,255,98,122,4,5,146,48,255,255,100,122,4,5,136,48,26,0,139,48,12,0,139,48,255,255,88,122,2,5,140,48,255,255,90,122,2,5,141,48,255,255,92,122,2,5,136,48,255,255,82,122,4,5,137,48,255,255,84,122,2,5,138,48,255,255,86,122,2,5,131,48,255,255,78,122,4,5,132,48,255,255,78,122,4,5,133,48,255,255,80,122,4,5,134,48,255,255,80,122,4,5,135,48,255,255,82,122,4,5,120,48,48,0,125,48,26,0,128,48,12,0,128,48,255,255,72,122,2,5,129,48,255,255,74,122,4,5,130,48,255,255,76,122,2,5,125,48,255,255,66,122,2,5,126,48,255,255,68,122,4,5,127,48,255,255,70,122,2,5,120,48,255,255,64,122,2,5,121,48,255,255,64,122,2,5,122,48,255,255,64,122,2,5,123,48,255,255,66,122,2,5,124,48,255,255,66,122,2,5,114,48,26,0,117,48,12,0,117,48,255,255,62,122,2,5,118,48,255,255,62,122,2,5,119,48,255,255,62,122,2,5,114,48,255,255,60,122,2,5,115,48,255,255,60,122,2,5,116,48,255,255,60,122,2,5,109,48,255,255,54,122,2,5,110,48,255,255,56,122,2,5,111,48,255,255,58,122,2,5,112,48,255,255,58,122,2,5,113,48,255,255,58,122,2,5,87,48,98,0,98,48,48,0,103,48,26,0,106,48,12,0,106,48,255,255,48,122,2,5,107,48,255,255,50,122,2,5,108,48,255,255,52,122,2,5,103,48,255,255,44,122,2,5,104,48,255,255,46,122,2,5,105,48,255,255,46,122,2,5,98,48,255,255,40,122,2,5,99,48,255,255,42,122,4,5,100,48,255,255,42,122,4,5,101,48,255,255,42,122,4,5,102,48,255,255,44,122,2,5,92,48,26,0,95,48,12,0,95,48,255,255,38,122,2,5,96,48,255,255,38,122,2,5,97,48,255,255,40,122,2,5,92,48,255,255,34,122,2,5,93,48,255,255,36,122,2,5,94,48,255,255,36,122,2,5,87,48,255,255,30,122,4,5,88,48,255,255,30,122,4,5,89,48,255,255,32,122,4,5,90,48,255,255,32,122,4,5,91,48,255,255,34,122,2,5,76,48,45,0,81,48,25,0,84,48,12,0,84,48,255,255,26,122,2,5,85,48,255,255,28,122,2,5,86,48,255,255,28,122,2,5,81,48,255,255,24,122,4,5,82,48,0,192,197,98,83,48,255,255,26,122,2,5,76,48,197,162,77,48,255,255,20,122,2,5,78,48,255,255,20,122,2,5,79,48,255,255,22,122,2,5,80,48,255,255,22,122,2,5,70,48,26,0,73,48,12,0,73,48,255,255,16,122,4,5,74,48,255,255,16,122,4,5,75,48,255,255,18,122,4,5,70,48,255,255,10,122,4,5,71,48,255,255,14,122,4,5,72,48,255,255,14,122,4,5,65,48,255,255,6,122,4,5,66,48,255,255,6,122,4,5,67,48,255,255,8,122,4,5,68,48,255,255,8,122,4,5,69,48,255,255,10,122,4,5,0,0,197,162,0,0,87,0,109,48,239,0,131,48,161,0,142,48,122,0,147,48,105,0,150,48,94,0,150,48,3,192,197,66,153,48,17,0,154,48,4,0,111,48,7,192,197,226,114,48,8,192,197,34,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,20,0,93,48,37,0,104,48,20,0,117,48,9,0,117,48,8,192,197,98,120,48,8,192,197,162,123,48,8,192,197,226,104,48,6,192,197,98,111,48,7,192,197,226,114,48,8,192,197,34,93,48,5,192,197,34,95,48,5,192,197,98,97,48,5,192,197,162,100,48,5,192,197,226,102,48,6,192,197,34,83,48,15,0,83,48,3,192,197,226,85,48,4,192,197,34,87,48,4,192,197,98,89,48,4,192,197,162,91,48,4,192,197,226,70,48,1,192,197,98,75,48,2,192,197,99,77,48,2,192,197,194,79,48,3,192,197,2,81,48,3,192,197,131,147,48,13,192,197,98,148,48,1,192,197,98,149,48,2,192,197,34,142,48,12,192,197,98,143,48,12,192,197,98,144,48,12,192,197,162,145,48,12,192,197,226,146,48,13,192,197,34,136,48,20,0,139,48,9,0,139,48,11,192,197,162,140,48,11,192,197,226,141,48,12,192,197,34,136,48,10,192,197,226,137,48,11,192,197,34,138,48,11,192,197,98,131,48,10,192,197,98,132,48,10,192,197,98,133,48,10,192,197,162,134,48,10,192,197,162,135,48,10,192,197,226,120,48,37,0,125,48,20,0,128,48,9,0,128,48,9,192,197,162,129,48,9,192,197,226,130,48,10,192,197,34,125,48,8,192,197,226,126,48,9,192,197,34,127,48,9,192,197,98,120,48,8,192,197,162,121,48,8,192,197,162,122,48,8,192,197,162,123,48,8,192,197,226,124,48,8,192,197,226,114,48,20,0,117,48,9,0,117,48,8,192,197,98,118,48,8,192,197,98,119,48,8,192,197,98,114,48,8,192,197,34,115,48,8,192,197,34,116,48,8,192,197,34,109,48,7,192,197,98,110,48,7,192,197,162,111,48,7,192,197,226,112,48,7,192,197,226,113,48,7,192,197,226,87,48,76,0,98,48,37,0,103,48,20,0,106,48,9,0,106,48,6,192,197,162,107,48,6,192,197,226,108,48,7,192,197,34,103,48,6,192,197,34,104,48,6,192,197,98,105,48,6,192,197,98,98,48,5,192,197,162,99,48,5,192,197,226,100,48,5,192,197,226,101,48,5,192,197,226,102,48,6,192,197,34,92,48,20,0,95,48,9,0,95,48,5,192,197,98,96,48,5,192,197,98,97,48,5,192,197,162,92,48,4,192,197,226,93,48,5,192,197,34,94,48,5,192,197,34,87,48,4,192,197,98,88,48,4,192,197,98,89,48,4,192,197,162,90,48,4,192,197,162,91,48,4,192,197,226,76,48,37,0,81,48,20,0,84,48,9,0,84,48,3,192,197,226,85,48,4,192,197,34,86,48,4,192,197,34,81,48,3,192,197,66,82,48,3,192,197,131,83,48,3,192,197,226,76,48,2,192,197,99,77,48,2,192,197,194,78,48,2,192,197,194,79,48,3,192,197,2,80,48,3,192,197,2,70,48,20,0,73,48,9,0,73,48,1,192,197,226,74,48,1,192,197,226,75,48,2,192,197,34,70,48,1,192,197,98,71,48,1,192,197,162,72,48,1,192,197,162,65,48,0,192,197,226,66,48,0,192,197,226,67,48,1,192,197,34,68,48,1,192,197,34,69,48,1,192,197,98,118,13,5,5,0,0,245,0,197,48,175,1,248,49,216,0,126,255,107,0,141,255,54,0,149,255,26,0,153,255,12,0,153,255,15,192,198,65,154,255,15,192,198,97,155,255,15,192,198,129,156,255,15,192,198,1,149,255,15,192,198,65,150,255,15,192,198,129,151,255,15,192,198,1,152,255,15,192,198,33,145,255,12,0,145,255,15,192,198,65,146,255,15,192,198,97,147,255,15,192,198,129,148,255,15,192,198,1,141,255,15,192,198,97,142,255,15,192,198,129,143,255,15,192,198,1,144,255,15,192,198,33,133,255,26,0,137,255,12,0,137,255,15,192,198,129,138,255,15,192,198,1,139,255,15,192,198,33,140,255,15,192,198,65,133,255,15,192,198,1,134,255,15,192,198,33,135,255,15,192,198,65,136,255,15,192,198,97,129,255,12,0,129,255,15,192,198,33,130,255,15,192,198,65,131,255,15,192,198,97,132,255,15,192,198,129,126,255,15,192,198,97,127,255,15,192,198,129,128,255,15,192,198,1,109,255,54,0,118,255,26,0,122,255,12,0,122,255,15,192,198,129,123,255,15,192,198,1,124,255,15,192,198,33,125,255,15,192,198,65,118,255,15,192,198,1,119,255,15,192,198,33,120,255,15,192,198,65,121,255,15,192,198,97,114,255,12,0,114,255,15,192,198,33,115,255,15,192,198,65,116,255,15,192,198,97,117,255,15,192,198,129,109,255,15,192,198,65,110,255,15,192,198,129,111,255,15,192,198,65,113,255,15,192,198,1,255,49,26,0,105,255,12,0,105,255,15,192,198,65,106,255,15,192,198,97,107,255,15,192,198,129,108,255,15,192,198,1,255,49,15,192,198,129,102,255,15,192,198,129,103,255,15,192,198,1,104,255,15,192,198,33,251,49,12,0,251,49,15,192,198,1,252,49,15,192,198,33,253,49,15,192,198,65,254,49,15,192,198,97,248,49,15,192,198,97,249,49,15,192,198,129,250,49,15,192,198,65,227,48,107,0,242,48,54,0,240,49,26,0,244,49,12,0,244,49,15,192,198,65,245,49,15,192,198,1,246,49,15,192,198,33,247,49,15,192,198,65,240,49,15,192,198,65,241,49,15,192,198,33,242,49,15,192,198,65,243,49,15,192,198,129,247,48,12,0,247,48,15,192,198,1,248,48,15,192,198,33,249,48,15,192,198,97,250,48,15,192,198,129,242,48,15,192,198,129,244,48,15,192,198,65,245,48,15,192,198,1,246,48,15,192,198,97,234,48,26,0,238,48,12,0,238,48,15,192,198,1,239,48,15,192,198,1,240,48,15,192,198,33,241,48,15,192,198,97,234,48,15,192,198,33,235,48,15,192,198,65,236,48,15,192,198,97,237,48,15,192,198,129,230,48,12,0,230,48,15,192,198,65,231,48,15,192,198,129,232,48,15,192,198,129,233,48,15,192,198,1,227,48,15,192,198,1,228,48,15,192,198,1,229,48,15,192,198,65,212,48,51,0,219,48,26,0,223,48,12,0,223,48,15,192,198,33,224,48,15,192,198,65,225,48,15,192,198,97,226,48,15,192,198,129,219,48,15,192,198,129,220,48,15,192,198,129,221,48,15,192,198,129,222,48,15,192,198,1,215,48,12,0,215,48,15,192,198,65,216,48,15,192,198,97,217,48,15,192,198,97,218,48,15,192,198,97,212,48,15,192,198,33,213,48,15,192,198,65,214,48,15,192,198,65,204,48,26,0,208,48,12,0,208,48,15,192,198,1,209,48,15,192,198,1,210,48,15,192,198,33,211,48,15,192,198,33,204,48,15,192,198,65,205,48,15,192,198,97,206,48,15,192,198,129,207,48,15,192,198,1,200,48,12,0,200,48,15,192,198,129,201,48,15,192,198,129,202,48,15,192,198,1,203,48,15,192,198,33,197,48,15,192,198,65,198,48,15,192,198,97,199,48,15,192,198,97,126,48,206,1,166,48,107,0,181,48,54,0,189,48,26,0,193,48,12,0,193,48,15,192,198,33,194,48,15,192,198,33,195,48,15,192,198,65,196,48,15,192,198,65,189,48,15,192,198,129,190,48,15,192,198,129,191,48,15,192,198,1,192,48,15,192,198,1,185,48,12,0,185,48,15,192,198,65,186,48,15,192,198,65,187,48,15,192,198,97,188,48,15,192,198,97,181,48,15,192,198,1,182,48,15,192,198,1,183,48,15,192,198,33,184,48,15,192,198,33,173,48,26,0,177,48,12,0,177,48,15,192,198,97,178,48,15,192,198,97,179,48,15,192,198,129,180,48,15,192,198,129,173,48,15,192,198,33,174,48,15,192,198,33,175,48,15,192,198,65,176,48,15,192,198,65,169,48,12,0,169,48,15,192,198,129,170,48,15,192,198,129,171,48,15,192,198,1,172,48,15,192,198,1,166,48,15,192,198,65,167,48,15,192,198,97,168,48,15,192,198,97,141,48,29,1,150,48,249,0,162,48,12,0,162,48,15,192,198,1,163,48,15,192,198,33,164,48,15,192,198,33,165,48,15,192,198,65,150,48,255,255,14,122,2,5,153,48,5,0,154,48,189,0,161,48,15,192,198,1,45,0,173,48,81,0,196,48,42,0,216,48,20,0,240,48,9,0,240,48,15,192,198,33,241,48,15,192,198,97,242,48,15,192,198,129,216,48,15,192,198,97,219,48,15,192,198,129,239,48,15,192,198,1,207,48,9,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,196,48,15,192,198,65,198,48,15,192,198,97,200,48,15,192,198,129,183,48,20,0,189,48,9,0,189,48,15,192,198,129,191,48,15,192,198,1,193,48,15,192,198,33,183,48,15,192,198,33,185,48,15,192,198,65,187,48,15,192,198,97,173,48,15,192,198,33,175,48,15,192,198,65,177,48,15,192,198,97,179,48,15,192,198,129,181,48,15,192,198,1,95,48,52,0,114,48,24,0,123,48,10,0,123,48,255,255,16,122,2,5,166,48,15,192,198,65,171,48,15,192,198,1,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,102,48,12,0,102,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,95,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,100,48,255,255,10,122,2,5,83,48,26,0,89,48,12,0,89,48,255,255,10,122,2,5,91,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,83,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,87,48,255,255,8,122,2,5,70,48,255,255,10,122,2,5,75,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,9,0,207,48,15,0,207,48,15,192,198,1,210,48,15,192,198,33,213,48,15,192,198,65,216,48,15,192,198,97,219,48,15,192,198,129,111,48,255,255,6,122,2,5,114,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,145,48,16,0,145,48,255,255,14,122,2,5,146,48,255,255,16,122,2,5,148,48,255,255,10,122,2,5,149,48,255,255,6,122,2,5,141,48,255,255,16,122,2,5,142,48,255,255,6,122,2,5,143,48,255,255,6,122,2,5,144,48,255,255,8,122,2,5,133,48,34,0,137,48,16,0,137,48,255,255,6,122,2,5,138,48,255,255,8,122,2,5,139,48,255,255,10,122,2,5,140,48,255,255,14,122,2,5,133,48,255,255,10,122,2,5,134,48,255,255,10,122,2,5,135,48,255,255,16,122,2,5,136,48,255,255,16,122,2,5,129,48,16,0,129,48,255,255,14,122,2,5,130,48,255,255,16,122,2,5,131,48,255,255,6,122,2,5,132,48,255,255,6,122,2,5,126,48,255,255,6,122,2,5,127,48,255,255,8,122,2,5,128,48,255,255,10,122,2,5,95,48,138,0,110,48,70,0,118,48,34,0,122,48,16,0,122,48,255,255,14,122,2,5,123,48,255,255,16,122,2,5,124,48,255,255,16,122,2,5,125,48,255,255,16,122,2,5,118,48,255,255,10,122,2,5,119,48,255,255,10,122,2,5,120,48,255,255,14,122,2,5,121,48,255,255,14,122,2,5,114,48,16,0,114,48,255,255,8,122,2,5,115,48,255,255,8,122,2,5,116,48,255,255,8,122,2,5,117,48,255,255,10,122,2,5,110,48,255,255,16,122,2,5,111,48,255,255,6,122,2,5,112,48,255,255,6,122,2,5,113,48,255,255,6,122,2,5,102,48,34,0,106,48,16,0,106,48,255,255,6,122,2,5,107,48,255,255,8,122,2,5,108,48,255,255,10,122,2,5,109,48,255,255,14,122,2,5,102,48,255,255,14,122,2,5,103,48,255,255,14,122,2,5,104,48,255,255,16,122,2,5,105,48,255,255,16,122,2,5,98,48,16,0,98,48,255,255,8,122,2,5,99,48,255,255,10,122,2,5,100,48,255,255,10,122,2,5,101,48,255,255,10,122,2,5,95,48,255,255,6,122,2,5,96,48,255,255,6,122,2,5,97,48,255,255,8,122,2,5,80,48,66,0,87,48,34,0,91,48,16,0,91,48,255,255,14,122,2,5,92,48,255,255,14,122,2,5,93,48,255,255,16,122,2,5,94,48,255,255,16,122,2,5,87,48,255,255,8,122,2,5,88,48,255,255,8,122,2,5,89,48,255,255,10,122,2,5,90,48,255,255,10,122,2,5,83,48,16,0,83,48,255,255,16,122,2,5,84,48,255,255,16,122,2,5,85,48,255,255,6,122,2,5,86,48,255,255,6,122,2,5,80,48,255,255,10,122,2,5,81,48,255,255,14,122,2,5,82,48,255,255,14,122,2,5,72,48,34,0,76,48,16,0,76,48,255,255,6,122,2,5,77,48,255,255,8,122,2,5,78,48,255,255,8,122,2,5,79,48,255,255,10,122,2,5,72,48,255,255,14,122,2,5,73,48,255,255,16,122,2,5,74,48,255,255,16,122,2,5,75,48,255,255,6,122,2,5,68,48,16,0,68,48,255,255,8,122,2,5,69,48,255,255,10,122,2,5,70,48,255,255,10,122,2,5,71,48,255,255,14,122,2,5,65,48,255,255,6,122,2,5,66,48,255,255,6,122,2,5,67,48,255,255,8,122,2,5,15,0,198,161,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,21,192,198,129,156,255,21,192,198,161,157,255,22,192,198,33,152,255,21,192,198,33,153,255,21,192,198,65,154,255,21,192,198,97,147,255,20,192,198,129,148,255,20,192,198,161,149,255,20,192,198,193,150,255,20,192,198,225,151,255,21,192,198,1,142,255,15,0,142,255,19,192,198,225,143,255,20,192,198,1,144,255,20,192,198,33,145,255,20,192,198,65,146,255,20,192,198,97,137,255,19,192,198,65,138,255,19,192,198,97,139,255,19,192,198,129,140,255,19,192,198,161,141,255,19,192,198,193,127,255,32,0,132,255,15,0,132,255,18,192,198,161,133,255,18,192,198,193,134,255,18,192,198,225,135,255,19,192,198,1,136,255,19,192,198,33,127,255,18,192,198,1,128,255,18,192,198,33,129,255,18,192,198,65,130,255,18,192,198,97,131,255,18,192,198,129,122,255,15,0,122,255,17,192,198,97,123,255,17,192,198,129,124,255,17,192,198,161,125,255,17,192,198,193,126,255,17,192,198,225,117,255,16,192,198,65,118,255,16,192,198,97,119,255,16,192,198,193,120,255,16,192,198,225,121,255,17,192,198,1,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,15,192,198,225,115,255,16,192,198,1,116,255,16,192,198,33,110,255,20,192,198,225,111,255,18,192,198,97,113,255,15,192,198,193,105,255,16,192,198,1,106,255,16,192,198,33,107,255,16,192,198,65,108,255,20,192,198,161,109,255,20,192,198,193,254,49,15,0,254,49,21,192,198,97,255,49,21,192,198,129,102,255,22,192,198,1,103,255,15,192,198,193,104,255,15,192,198,225,249,49,19,192,198,225,250,49,20,192,198,65,251,49,21,192,198,1,252,49,21,192,198,33,253,49,21,192,198,65,250,48,32,0,244,49,15,0,244,49,19,192,198,1,245,49,19,192,198,97,246,49,19,192,198,129,247,49,19,192,198,161,248,49,19,192,198,193,250,48,22,192,198,1,240,49,16,192,198,225,241,49,17,192,198,161,242,49,17,192,198,193,243,49,18,192,198,161,245,48,15,0,245,48,16,192,198,97,246,48,17,192,198,1,247,48,21,192,198,161,248,48,21,192,198,193,249,48,21,192,198,225,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,243,48,22,192,198,33,244,48,16,192,198,1,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,21,192,198,129,238,48,21,192,198,161,239,48,21,192,198,161,234,48,21,192,198,33,235,48,21,192,198,65,236,48,21,192,198,97,229,48,20,192,198,193,230,48,20,192,198,193,231,48,20,192,198,225,232,48,20,192,198,225,233,48,21,192,198,1,224,48,15,0,224,48,20,192,198,65,225,48,20,192,198,97,226,48,20,192,198,129,227,48,20,192,198,161,228,48,20,192,198,161,219,48,19,192,198,225,220,48,19,192,198,225,221,48,19,192,198,225,222,48,20,192,198,1,223,48,20,192,198,33,209,48,32,0,214,48,15,0,214,48,19,192,198,161,215,48,19,192,198,161,216,48,19,192,198,193,217,48,19,192,198,193,218,48,19,192,198,193,209,48,19,192,198,97,210,48,19,192,198,129,211,48,19,192,198,129,212,48,19,192,198,129,213,48,19,192,198,161,204,48,15,0,204,48,19,192,198,1,205,48,19,192,198,33,206,48,19,192,198,65,207,48,19,192,198,97,208,48,19,192,198,97,199,48,18,192,198,129,200,48,18,192,198,161,201,48,18,192,198,161,202,48,18,192,198,193,203,48,18,192,198,225,179,48,66,0,189,48,32,0,194,48,15,0,194,48,18,192,198,65,195,48,18,192,198,97,196,48,18,192,198,97,197,48,18,192,198,97,198,48,18,192,198,129,189,48,18,192,198,1,190,48,18,192,198,1,191,48,18,192,198,33,192,48,18,192,198,33,193,48,18,192,198,65,184,48,15,0,184,48,17,192,198,161,185,48,17,192,198,193,186,48,17,192,198,193,187,48,17,192,198,225,188,48,17,192,198,225,179,48,17,192,198,97,180,48,17,192,198,97,181,48,17,192,198,129,182,48,17,192,198,129,183,48,17,192,198,161,169,48,32,0,174,48,15,0,174,48,16,192,198,193,175,48,16,192,198,225,176,48,16,192,198,225,177,48,17,192,198,1,178,48,17,192,198,34,169,48,16,192,198,65,170,48,16,192,198,65,171,48,16,192,198,97,172,48,16,192,198,130,173,48,16,192,198,193,164,48,15,0,164,48,15,192,198,225,165,48,16,192,198,1,166,48,16,192,198,1,167,48,16,192,198,33,168,48,16,192,198,33,153,48,11,0,154,48,99,0,161,48,15,192,198,193,162,48,15,192,198,193,163,48,15,192,198,225,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,21,192,198,161,240,48,21,192,198,193,241,48,21,192,198,225,242,48,22,192,198,1,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,200,48,9,0,200,48,18,192,198,161,207,48,19,192,198,97,210,48,19,192,198,129,193,48,18,192,198,65,196,48,18,192,198,97,198,48,18,192,198,129,181,48,20,0,187,48,9,0,187,48,17,192,198,225,189,48,18,192,198,1,191,48,18,192,198,33,181,48,17,192,198,129,183,48,17,192,198,161,185,48,17,192,198,193,175,48,9,0,175,48,16,192,198,225,177,48,17,192,198,34,179,48,17,192,198,97,166,48,16,192,198,1,171,48,16,192,198,130,173,48,16,192,198,193,4,0,207,48,19,192,198,97,210,48,19,192,198,129,213,48,19,192,198,161,216,48,19,192,198,193,219,48,19,192,198,225,22,0,198,66,0,0,162,0,240,48,24,1,117,255,139,0,137,255,71,0,147,255,37,0,152,255,20,0,155,255,9,0,155,255,33,192,198,194,156,255,34,192,198,2,157,255,35,192,198,2,152,255,33,192,198,2,153,255,33,192,198,66,154,255,33,192,198,130,147,255,31,192,198,194,148,255,32,192,198,2,149,255,32,192,198,66,150,255,32,192,198,130,151,255,32,192,198,194,142,255,15,0,142,255,30,192,198,130,143,255,30,192,198,194,144,255,31,192,198,2,145,255,31,192,198,66,146,255,31,192,198,130,137,255,29,192,198,66,138,255,29,192,198,130,139,255,29,192,198,194,140,255,30,192,198,2,141,255,30,192,198,66,127,255,32,0,132,255,15,0,132,255,28,192,198,2,133,255,28,192,198,66,134,255,28,192,198,130,135,255,28,192,198,194,136,255,29,192,198,2,127,255,26,192,198,194,128,255,27,192,198,2,129,255,27,192,198,66,130,255,27,192,198,130,131,255,27,192,198,194,122,255,15,0,122,255,25,192,198,130,123,255,25,192,198,194,124,255,26,192,198,2,125,255,26,192,198,66,126,255,26,192,198,130,117,255,23,192,198,130,118,255,23,192,198,194,119,255,24,192,198,98,120,255,24,192,198,162,121,255,24,192,198,226,249,49,71,0,105,255,37,0,110,255,20,0,114,255,9,0,114,255,22,192,198,194,115,255,23,192,198,2,116,255,23,192,198,66,110,255,32,192,198,130,111,255,27,192,198,130,113,255,22,192,198,130,105,255,23,192,198,2,106,255,23,192,198,66,107,255,23,192,198,130,108,255,32,192,198,2,109,255,32,192,198,66,254,49,15,0,254,49,33,192,198,130,255,49,33,192,198,194,102,255,34,192,198,194,103,255,22,192,198,130,104,255,22,192,198,194,249,49,30,192,198,130,250,49,31,192,198,66,251,49,32,192,198,194,252,49,33,192,198,2,253,49,33,192,198,66,250,48,32,0,244,49,15,0,244,49,28,192,198,194,245,49,29,192,198,130,246,49,29,192,198,194,247,49,30,192,198,2,248,49,30,192,198,66,250,48,34,192,198,194,240,49,24,192,198,162,241,49,26,192,198,2,242,49,26,192,198,66,243,49,28,192,198,2,245,48,15,0,245,48,23,192,198,194,246,48,24,192,198,226,247,48,34,192,198,2,248,48,34,192,198,66,249,48,34,192,198,130,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,243,48,35,192,198,2,244,48,23,192,198,2,199,48,139,0,219,48,71,0,229,48,37,0,234,48,20,0,237,48,9,0,237,48,33,192,198,194,238,48,34,192,198,2,239,48,34,192,198,2,234,48,33,192,198,2,235,48,33,192,198,66,236,48,33,192,198,130,229,48,32,192,198,66,230,48,32,192,198,66,231,48,32,192,198,130,232,48,32,192,198,130,233,48,32,192,198,194,224,48,15,0,224,48,31,192,198,66,225,48,31,192,198,130,226,48,31,192,198,194,227,48,32,192,198,2,228,48,32,192,198,2,219,48,30,192,198,130,220,48,30,192,198,130,221,48,30,192,198,130,222,48,30,192,198,194,223,48,31,192,198,2,209,48,32,0,214,48,15,0,214,48,30,192,198,2,215,48,30,192,198,2,216,48,30,192,198,66,217,48,30,192,198,66,218,48,30,192,198,66,209,48,29,192,198,130,210,48,29,192,198,194,211,48,29,192,198,194,212,48,29,192,198,194,213,48,30,192,198,2,204,48,15,0,204,48,28,192,198,194,205,48,29,192,198,2,206,48,29,192,198,66,207,48,29,192,198,130,208,48,29,192,198,130,199,48,27,192,198,194,200,48,28,192,198,2,201,48,28,192,198,2,202,48,28,192,198,66,203,48,28,192,198,130,179,48,66,0,189,48,32,0,194,48,15,0,194,48,27,192,198,66,195,48,27,192,198,130,196,48,27,192,198,130,197,48,27,192,198,130,198,48,27,192,198,194,189,48,26,192,198,194,190,48,26,192,198,194,191,48,27,192,198,2,192,48,27,192,198,2,193,48,27,192,198,66,184,48,15,0,184,48,26,192,198,2,185,48,26,192,198,66,186,48,26,192,198,66,187,48,26,192,198,130,188,48,26,192,198,130,179,48,25,192,198,130,180,48,25,192,198,130,181,48,25,192,198,194,182,48,25,192,198,194,183,48,26,192,198,2,169,48,32,0,174,48,15,0,174,48,24,192,198,98,175,48,24,192,198,162,176,48,24,192,198,162,177,48,24,192,198,226,178,48,25,192,198,35,169,48,23,192,198,130,170,48,23,192,198,130,171,48,23,192,198,194,172,48,24,192,198,3,173,48,24,192,198,98,164,48,15,0,164,48,22,192,198,194,165,48,23,192,198,2,166,48,23,192,198,2,167,48,23,192,198,66,168,48,23,192,198,66,153,48,11,0,154,48,99,0,161,48,22,192,198,130,162,48,22,192,198,130,163,48,22,192,198,194,24,0,193,48,45,0,213,48,23,0,239,48,12,0,239,48,34,192,198,2,240,48,34,192,198,66,241,48,34,192,198,130,242,48,34,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,200,48,9,0,200,48,28,192,198,2,207,48,29,192,198,130,210,48,29,192,198,194,193,48,27,192,198,66,196,48,27,192,198,130,198,48,27,192,198,194,181,48,20,0,187,48,9,0,187,48,26,192,198,130,189,48,26,192,198,194,191,48,27,192,198,2,181,48,25,192,198,194,183,48,26,192,198,2,185,48,26,192,198,66,175,48,9,0,175,48,24,192,198,162,177,48,25,192,198,35,179,48,25,192,198,130,166,48,23,192,198,2,171,48,24,192,198,3,173,48,24,192,198,98,4,0,207,48,29,192,198,130,210,48,29,192,198,194,213,48,30,192,198,2,216,48,30,192,198,66,219,48,30,192,198,130,35,0,198,129,0,0,0,1,12,128,107,2,117,152,75,1,254,158,187,0,7,249,74,0,196,249,38,0,10,250,20,0,10,250,255,255,25,253,193,42,30,250,255,255,195,252,193,136,60,250,255,255,135,251,193,8,149,250,255,255,11,252,193,192,206,250,255,255,224,253,193,118,196,249,255,255,224,253,193,12,233,249,255,255,98,253,193,98,247,249,255,255,152,252,193,118,8,250,255,255,15,253,193,118,64,249,16,0,64,249,255,255,209,253,193,178,113,249,255,255,78,253,193,128,129,249,255,255,106,251,193,100,138,249,255,255,42,251,193,8,7,249,255,255,224,253,193,118,8,249,255,255,224,253,193,118,10,249,255,255,98,253,193,242,52,249,255,255,198,252,193,84,127,159,75,0,159,159,57,0,159,159,255,255,224,253,193,218,160,159,255,255,224,253,193,236,126,216,4,0,2,249,255,255,70,253,193,218,9,0,210,221,20,0,210,221,255,255,45,253,193,112,21,222,255,255,213,253,193,94,23,222,255,255,217,253,193,36,24,222,255,255,217,253,193,222,28,222,255,255,219,253,193,240,29,220,255,255,34,251,193,200,117,220,255,255,130,251,193,144,120,220,255,255,135,251,193,8,144,220,255,255,160,251,193,102,196,221,255,255,16,253,193,52,127,159,255,255,223,253,193,110,141,159,255,255,224,253,193,12,153,159,255,255,224,253,193,96,156,159,255,255,224,253,193,118,59,159,16,0,59,159,255,255,219,253,193,240,74,159,255,255,220,253,193,176,80,159,255,255,220,253,193,236,82,159,255,255,220,253,193,248,254,158,255,255,217,253,193,222,14,159,255,255,218,253,193,6,19,159,255,255,218,253,193,62,32,159,255,255,218,253,193,220,50,155,70,0,165,158,34,0,205,158,16,0,205,158,255,255,214,253,193,124,209,158,255,255,214,253,193,252,249,158,255,255,217,253,193,36,253,158,255,255,217,253,193,62,165,158,255,255,211,253,193,56,166,158,255,255,212,253,193,196,187,158,255,255,213,253,193,94,195,158,255,255,213,253,193,210,229,156,16,0,229,156,255,255,195,253,193,218,31,158,255,255,206,253,193,72,117,158,255,255,208,253,193,240,127,158,255,255,209,253,193,178,50,155,255,255,180,253,193,172,60,155,255,255,181,253,193,166,90,155,255,255,184,253,193,2,124,156,255,255,193,253,193,64,153,153,34,0,216,154,16,0,216,154,255,255,175,253,193,232,223,154,255,255,176,253,193,186,37,155,255,255,180,253,193,58,47,155,255,255,180,253,193,136,153,153,255,255,164,253,193,252,172,153,255,255,165,253,193,208,108,154,255,255,171,253,193,244,168,154,255,255,173,253,193,168,222,152,16,0,222,152,255,255,157,253,193,164,223,152,255,255,157,253,193,170,99,153,255,255,163,253,193,20,150,153,255,255,164,253,193,110,117,152,255,255,153,253,193,70,168,152,255,255,154,253,193,82,206,152,255,255,156,253,193,242,219,152,255,255,157,253,193,122,100,141,142,0,127,149,70,0,94,151,34,0,230,151,16,0,230,151,255,255,147,253,193,30,237,151,255,255,147,253,193,108,243,151,255,255,147,253,193,184,1,152,255,255,148,253,193,142,94,151,255,255,140,253,193,44,98,151,255,255,140,253,193,152,105,151,255,255,141,253,193,160,203,151,255,255,145,253,193,196,182,150,16,0,182,150,255,255,131,253,193,186,185,150,255,255,131,253,193,228,232,150,255,255,134,253,193,178,81,151,255,255,139,253,193,216,127,149,255,255,120,253,193,2,128,149,255,255,120,253,193,6,232,149,255,255,124,253,193,84,28,150,255,255,125,253,193,154,181,143,34,0,204,145,16,0,204,145,255,255,98,253,193,98,209,145,255,255,98,253,193,242,133,148,255,255,114,253,193,86,119,149,255,255,118,253,193,200,181,143,255,255,78,253,193,176,145,144,255,255,87,253,193,98,73,145,255,255,93,253,193,148,198,145,255,255,98,253,193,30,202,142,16,0,202,142,255,255,70,253,193,218,102,143,255,255,76,253,193,100,155,143,255,255,77,253,193,186,176,143,255,255,78,253,193,128,100,141,255,255,54,253,193,190,112,141,255,255,55,253,193,84,179,141,255,255,59,253,193,84,171,142,255,255,68,253,193,230,107,134,70,0,0,138,34,0,85,140,16,0,85,140,255,255,45,253,193,112,120,140,255,255,47,253,193,36,157,140,255,255,48,253,193,190,29,141,255,255,53,253,193,202,0,138,255,255,30,253,193,38,160,139,255,255,40,253,193,192,55,140,255,255,43,253,193,160,70,140,255,255,44,253,193,90,126,137,16,0,126,137,255,255,24,253,193,136,139,137,255,255,25,253,193,42,193,137,255,255,27,253,193,148,210,137,255,255,27,253,193,240,107,134,255,255,254,252,193,150,64,136,255,255,14,253,193,202,76,136,255,255,15,253,193,118,99,136,255,255,16,253,193,52,252,129,34,0,110,130,16,0,110,130,255,255,222,252,193,106,114,130,255,255,222,252,193,140,120,130,255,255,223,252,193,6,77,134,255,255,252,252,193,174,252,129,255,255,217,252,193,10,12,130,255,255,218,252,193,106,27,130,255,255,219,252,193,90,31,130,255,255,219,252,193,128,137,128,16,0,137,128,255,255,203,252,193,226,227,129,255,255,215,252,193,90,234,129,255,255,215,252,193,222,243,129,255,255,216,252,193,152,12,128,255,255,198,252,193,214,18,128,255,255,199,252,193,40,51,128,255,255,200,252,193,74,127,128,255,255,203,252,193,128,54,98,30,1,132,115,142,0,226,119,70,0,115,124,34,0,81,127,16,0,81,127,255,255,189,252,193,238,138,127,255,255,193,252,193,14,189,127,255,255,195,252,193,136,1,128,255,255,198,252,193,84,115,124,255,255,168,252,193,76,248,124,255,255,174,252,193,70,159,126,255,255,185,252,193,220,54,127,255,255,188,252,193,198,190,121,16,0,190,121,255,255,140,252,193,156,116,122,255,255,148,252,193,22,203,122,255,255,152,252,193,118,249,122,255,255,154,252,193,154,226,119,255,255,124,252,193,16,243,119,255,255,125,252,193,134,58,121,255,255,134,252,193,210,184,121,255,255,140,252,193,88,139,117,34,0,174,118,16,0,174,118,255,255,109,252,193,26,191,118,255,255,110,252,193,184,238,118,255,255,113,252,193,128,219,119,255,255,123,252,193,54,139,117,255,255,98,252,193,100,146,117,255,255,98,252,193,176,118,118,255,255,106,252,193,156,125,118,255,255,106,252,193,250,24,117,16,0,24,117,255,255,92,252,193,188,31,117,255,255,93,252,193,36,40,117,255,255,93,252,193,208,48,117,255,255,94,252,193,32,132,115,255,255,79,252,193,112,137,115,255,255,79,252,193,132,220,116,255,255,89,252,193,158,230,116,255,255,90,252,193,104,179,107,70,0,42,114,34,0,71,114,16,0,71,114,255,255,66,252,193,252,89,114,255,255,68,252,193,28,91,114,255,255,68,252,193,94,172,114,255,255,72,252,193,46,42,114,255,255,64,252,193,48,54,114,255,255,65,252,193,150,59,114,255,255,65,252,193,218,63,114,255,255,66,252,193,14,15,108,16,0,15,108,255,255,20,252,193,236,20,108,255,255,21,252,193,54,52,108,255,255,21,252,193,230,107,112,255,255,48,252,193,142,179,107,255,255,14,252,193,174,203,107,255,255,16,252,193,104,212,107,255,255,16,252,193,180,219,107,255,255,17,252,193,22,224,101,34,0,40,103,16,0,40,103,255,255,235,251,193,114,32,107,255,255,6,252,193,188,98,107,255,255,9,252,193,190,121,107,255,255,11,252,193,192,224,101,255,255,222,251,193,42,229,101,255,255,222,251,193,86,240,102,255,255,232,251,193,90,8,103,255,255,233,251,193,86,135,101,16,0,135,101,255,255,217,251,193,254,151,101,255,255,218,251,193,178,164,101,255,255,219,251,193,74,185,101,255,255,220,251,193,68,54,98,255,255,190,251,193,162,75,98,255,255,191,251,193,156,47,101,255,255,212,251,193,60,52,101,255,255,212,251,193,230,215,86,142,0,219,93,70,0,254,94,34,0,97,95,16,0,97,95,255,255,165,251,193,122,115,95,255,255,166,251,193,88,195,95,255,255,169,251,193,252,8,98,255,255,188,251,193,76,254,94,255,255,160,251,193,102,11,95,255,255,161,251,193,108,19,95,255,255,161,251,193,216,80,95,255,255,164,251,193,210,114,94,16,0,114,94,255,255,153,251,193,170,122,94,255,255,154,251,193,90,127,94,255,255,154,251,193,218,244,94,255,255,159,251,193,254,219,93,255,255,147,251,193,66,229,93,255,255,147,251,193,210,241,93,255,255,148,251,193,132,254,93,255,255,149,251,193,20,80,91,34,0,34,92,16,0,34,92,255,255,130,251,193,144,56,92,255,255,131,251,193,192,110,92,255,255,135,251,193,8,113,92,255,255,135,251,193,128,80,91,255,255,119,251,193,108,128,91,255,255,121,251,193,174,248,91,255,255,128,251,193,22,15,92,255,255,129,251,193,34,10,89,16,0,10,89,255,255,100,251,193,232,21,89,255,255,101,251,193,136,39,89,255,255,102,251,193,204,115,89,255,255,106,251,193,100,215,86,255,255,83,251,193,76,31,87,255,255,85,251,193,186,235,88,255,255,99,251,193,220,2,89,255,255,100,251,193,178,224,81,70,0,65,83,34,0,130,83,16,0,130,83,255,255,50,251,193,178,182,83,255,255,53,251,193,120,200,83,255,255,54,251,193,122,227,83,255,255,56,251,193,112,65,83,255,255,47,251,193,180,92,83,255,255,49,251,193,44,100,83,255,255,209,253,193,152,105,83,255,255,49,251,193,240,249,82,16,0,249,82,255,255,44,251,193,244,21,83,255,255,45,251,193,234,26,83,255,255,46,251,193,82,56,83,255,255,47,251,193,118,224,81,255,255,33,251,193,196,245,81,255,255,34,251,193,200,0,82,255,255,35,251,193,132,155,82,255,255,42,251,193,8,160,78,34,0,107,81,16,0,107,81,255,255,28,251,193,74,130,81,255,255,29,251,193,104,150,81,255,255,30,251,193,74,171,81,255,255,31,251,193,62,160,78,255,255,8,251,193,232,186,78,255,255,10,251,193,68,63,81,255,255,26,251,193,4,101,81,255,255,27,251,193,188,63,78,16,0,63,78,255,255,4,251,193,252,89,78,255,255,6,251,193,26,133,78,255,255,7,251,193,248,140,78,255,255,8,251,193,74,0,78,255,255,2,251,193,2,40,78,255,255,4,251,193,60,44,78,255,255,66,252,193,246,54,78,255,255,4,251,193,200,26,130,246,1,0,78,1,78,40,78,41,78,44,78,45,78,54,78,55,78,63,78,64,78,89,78,90,78,133,78,134,78,140,78,141,78,160,78,161,78,186,78,187,78,63,81,64,81,101,81,102,81,107,81,108,81,130,81,131,81,150,81,151,81,171,81,172,81,224,81,225,81,245,81,246,81,0,82,1,82,155,82,156,82,249,82,250,82,21,83,22,83,26,83,27,83,56,83,57,83,65,83,66,83,92,83,93,83,100,83,101,83,105,83,106,83,130,83,131,83,182,83,183,83,200,83,201,83,227,83,228,83,215,86,216,86,31,87,32,87,235,88,236,88,2,89,3,89,10,89,11,89,21,89,22,89,39,89,40,89,115,89,116,89,80,91,81,91,128,91,129,91,248,91,249,91,15,92,16,92,34,92,35,92,56,92,57,92,110,92,111,92,113,92,114,92,219,93,220,93,229,93,230,93,241,93,242,93,254,93,255,93,114,94,115,94,122,94,123,94,127,94,128,94,244,94,245,94,254,94,255,94,11,95,12,95,19,95,20,95,80,95,81,95,97,95,98,95,115,95,116,95,195,95,196,95,8,98,9,98,54,98,55,98,75,98,76,98,47,101,48,101,52,101,53,101,135,101,136,101,151,101,152,101,164,101,165,101,185,101,186,101,224,101,225,101,229,101,230,101,240,102,241,102,8,103,9,103,40,103,41,103,32,107,33,107,98,107,99,107,121,107,122,107,179,107,180,107,203,107,204,107,212,107,213,107,219,107,220,107,15,108,16,108,20,108,21,108,52,108,53,108,107,112,108,112,42,114,43,114,54,114,55,114,59,114,60,114,63,114,64,114,71,114,72,114,89,114,90,114,91,114,92,114,172,114,173,114,132,115,133,115,137,115,138,115,220,116,221,116,230,116,231,116,24,117,25,117,31,117,32,117,40,117,41,117,48,117,49,117,139,117,140,117,146,117,147,117,118,118,119,118,125,118,126,118,174,118,175,118,191,118,192,118,238,118,239,118,219,119,220,119,226,119,227,119,243,119,244,119,58,121,59,121,184,121,185,121,190,121,191,121,116,122,117,122,203,122,204,122,249,122,250,122,115,124,116,124,248,124,249,124,159,126,160,126,54,127,55,127,81,127,82,127,138,127,139,127,189,127,190,127,1,128,2,128,12,128,13,128,18,128,19,128,51,128,52,128,127,128,128,128,137,128,138,128,227,129,228,129,234,129,235,129,243,129,244,129,252,129,253,129,12,130,13,130,27,130,28,130,31,130,32,130,110,130,111,130,114,130,115,130,120,130,121,130,77,134,78,134,107,134,108,134,64,136,65,136,76,136,77,136,99,136,100,136,126,137,127,137,139,137,140,137,193,137,194,137,210,137,211,137,0,138,1,138,160,139,161,139,55,140,56,140,70,140,71,140,85,140,86,140,120,140,121,140,157,140,158,140,29,141,30,141,100,141,101,141,112,141,113,141,179,141,180,141,171,142,172,142,202,142,203,142,102,143,103,143,155,143,156,143,176,143,177,143,181,143,182,143,145,144,146,144,73,145,74,145,198,145,199,145,204,145,205,145,209,145,210,145,133,148,134,148,119,149,120,149,127,149,129,149,232,149,233,149,28,150,29,150,182,150,183,150,185,150,186,150,232,150,233,150,81,151,82,151,94,151,95,151,98,151,99,151,105,151,106,151,203,151,204,151,230,151,231,151,237,151,238,151,243,151,244,151,1,152,2,152,117,152,118,152,168,152,169,152,206,152,207,152,219,152,220,152,222,152,224,152,99,153,100,153,150,153,151,153,153,153,154,153,172,153,173,153,108,154,109,154,168,154,169,154,216,154,217,154,223,154,224,154,37,155,38,155,47,155,48,155,50,155,51,155,60,155,61,155,90,155,91,155,124,156,125,156,229,156,230,156,31,158,32,158,117,158,118,158,127,158,128,158,165,158,167,158,187,158,188,158,195,158,196,158,205,158,206,158,209,158,210,158,249,158,250,158,253,158,255,158,14,159,15,159,19,159,20,159,32,159,33,159,59,159,60,159,74,159,75,159,80,159,81,159,82,159,83,159,127,159,128,159,141,159,142,159,153,159,154,159,156,159,157,159,159,159,161,159,126,216,127,216,2,249,3,249,7,249,9,249,10,249,11,249,52,249,53,249,64,249,65,249,113,249,114,249,129,249,130,249,138,249,139,249,196,249,197,249,233,249,234,249,247,249,248,249,8,250,9,250,10,250,11,250,30,250,31,250,60,250,61,250,149,250,150,250,206,250,207,250,2,0,29,248,2,0,30,248,2,0,117,248,2,0,118,248,2,0,120,248,2,0,121,248,2,0,144,248,2,0,145,248,2,0,196,249,2,0,197,249,2,0,210,249,2,0,211,249,2,0,21,250,2,0,22,250,2,0,23,250,2,0,25,250,2,0,28,250,2,0,29,250,3,0,82,0,56,0,65,0,43,122,0,16,4,0,0,96,1,0,0,96,3,0,43,0,73,0,97,0,122,45,0,80,38,122,0,32,235,142,0,32,1,0,32,0,240,142,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,101,0,111,0,114,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,12,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,39,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,5,7,0,32,7,0,0,0,21,0,0,0,7,7,0,0,7,7,0,0,3,0,0,0,0,0,0,0,48,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,48,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,21,4,60,0,81,4,60,0,60,0,60,0,1,4,38,0,176,4,60,0,175,4,60,0,60,0,60,0,174,4,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,76,4,60,0,86,4,60,0,60,0,60,0,6,4,0,0,170,170,170,170,170,170,170,170,170,170,170,170,40,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,160,26,0,0,160,26,0,0,160,26,0,0,160,26,0,0,244,26,0,0,244,26,0,0,16,27,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,141,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,100,0,108,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,124,0,48,0,48,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,116,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,144,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,231,97,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,97,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,177,97,5,5,177,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,231,97,5,150,0,0,5,5,231,97,5,150,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,97,174,5,48,0,8,3,255,255,41,97,134,5,40,97,5,5,48,0,8,3,255,255,41,97,5,5,3,0,69,0,52,0,61,0,51,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,254,6,0,32,1,0,32,0,3,7,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,230,22,0,32,7,0,0,0,23,0,0,0,232,22,0,0,232,22,0,0,3,0,0,0,0,0,0,0,117,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,107,0,108,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,130,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,81,0,60,0,60,0,56,1,60,0,60,0,60,0,75,0,39,0,39,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,229,0,60,0,60,0,60,0,197,0,0,0,170,170,170,170,170,170,170,170,170,170,238,47,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,163,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,38,0,0,148,38,0,0,44,41,0,0,44,41,0,0,236,44,0,0,236,44,0,0,204,47,0,0,210,47,0,0,210,47,0,0,50,105,114,84,1,0,64,8,92,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,148,0,156,0,162,0,170,0,178,0,186,0,48,0,56,0,185,0,193,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,218,0,48,0,48,0,48,0,226,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,234,0,48,0,48,0,242,0,48,0,248,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,3,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,11,1,48,0,48,0,15,1,48,0,23,1,28,1,36,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,42,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,53,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,208,0,48,0,48,0,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,61,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,69,1,48,0,48,0,75,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,2,136,2,200,2,192,0,228,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,28,0,202,225,28,0,202,2,29,0,202,35,29,0,202,68,29,0,202,101,29,0,202,134,29,0,202,167,29,0,202,200,29,0,202,233,29,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,201,96,2,0,156,5,0,64,156,5,0,66,156,5,0,68,201,70,3,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,102,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,6,0,5,5,0,44,5,5,0,46,5,5,0,48,201,70,7,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,8,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,38,9,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,97,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,34,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,161,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,0,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,201,6,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,74,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,38,13,0,201,70,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,15,0,201,134,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,17,0,201,198,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,198,226,3,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,19,0,201,6,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,5,0,197,34,5,0,198,98,5,0,197,98,5,0,198,162,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,5,0,198,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,38,22,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,5,71,238,102,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,25,0,201,230,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,28,0,201,38,29,0,201,70,30,0,201,102,31,0,201,134,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,34,0,201,230,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,37,0,201,38,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,39,0,201,102,40,0,201,134,41,0,201,166,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,43,0,201,230,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,96,2,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,2,111,93,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,62,156,5,48,0,39,0,255,255,0,74,70,70,0,70,156,5,1,0,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,0,192,198,161,10,3,255,255,111,93,193,4,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,1,0,8,3,0,192,198,225,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,1,0,8,3,2,192,198,226,11,3,3,192,198,34,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,4,192,198,34,11,3,4,192,198,98,5,70,196,162,1,0,8,3,4,192,198,162,11,3,4,192,198,226,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,6,192,198,98,10,3,6,192,198,162,5,42,196,200,1,0,8,3,6,192,198,226,10,3,12,192,197,162,156,82,196,198,1,0,8,3,12,192,197,226,11,3,13,192,197,34,5,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,156,82,196,208,1,0,8,3,13,192,197,226,11,3,14,192,197,34,5,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,156,82,196,204,1,0,8,3,14,192,197,226,11,3,15,192,197,34,5,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,156,42,196,196,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,196,1,0,8,3,7,192,198,162,10,3,15,192,197,226,156,70,196,196,1,0,8,3,7,192,198,226,11,3,8,192,198,34,5,70,196,196,1,0,8,3,8,192,198,98,11,3,8,192,198,162,16,0,197,35,1,0,8,3,8,192,198,227,11,3,9,192,198,67,16,0,197,131,1,0,8,3,9,192,198,163,11,3,10,192,198,3,156,82,196,196,1,0,8,3,16,192,197,226,11,3,17,192,197,34,5,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,17,0,197,227,1,0,8,3,18,192,197,67,11,3,18,192,197,163,19,0,197,3,1,0,8,3,19,192,197,99,11,3,19,192,197,195,2,0,39,0,40,0,170,170,3,0,67,0,50,0,59,0,119,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,132,41,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,30,0,0,100,30,0,0,252,32,0,0,252,32,0,0,216,34,0,0,216,34,0,0,114,37,0,0,120,37,0,0,104,41,0,0,50,105,114,84,1,0,64,8,217,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,108,0,116,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,48,0,48,0,173,0,48,0,181,0,186,0,194,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,208,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,176,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,13,0,202,193,13,0,202,226,13,0,202,3,14,0,202,36,14,0,202,69,14,0,202,102,14,0,202,135,14,0,202,168,14,0,202,201,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,230,0,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,201,160,1,0,156,5,0,64,156,5,0,66,156,5,0,68,201,134,2,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,5,0,5,5,0,44,5,5,0,46,5,5,0,48,201,134,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,70,7,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,97,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,98,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,161,0,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,225,0,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,74,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,129,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,102,12,0,201,134,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,14,0,201,198,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,16,0,201,6,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,98,3,0,198,162,3,0,192,0,0,0,192,0,0,0,198,226,3,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,19,0,201,70,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,5,0,197,34,5,0,198,98,5,0,197,98,5,0,198,162,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,5,0,198,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,21,0,201,134,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,23,0,201,198,24,0,201,230,25,0,201,6,27,0,201,38,28,0,201,70,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,30,0,201,134,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,32,0,201,198,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,6,36,0,201,38,37,0,201,70,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,39,0,201,134,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,160,1,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,2,111,93,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,62,156,5,48,0,39,0,255,255,0,74,70,70,0,70,156,5,1,0,8,3,0,192,198,97,11,3,0,192,198,129,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,0,192,198,161,10,3,255,255,111,93,193,4,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,1,0,8,3,0,192,198,225,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,98,10,3,1,192,198,162,5,42,196,162,1,0,8,3,1,192,198,226,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,2,192,198,98,11,3,2,192,198,162,5,70,196,190,1,0,8,3,2,192,198,226,11,3,3,192,198,34,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,4,192,198,34,11,3,4,192,198,98,5,70,196,162,1,0,8,3,4,192,198,162,11,3,4,192,198,226,156,42,196,200,1,0,8,3,6,192,198,98,10,3,6,192,198,162,5,42,196,200,1,0,8,3,6,192,198,226,10,3,5,192,197,226,156,82,196,198,1,0,8,3,6,192,197,34,11,3,6,192,197,98,5,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,156,82,196,208,1,0,8,3,7,192,197,34,11,3,7,192,197,98,5,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,156,82,196,204,1,0,8,3,8,192,197,34,11,3,8,192,197,98,5,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,156,42,196,196,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,196,1,0,8,3,7,192,198,162,10,3,9,192,197,34,156,70,196,196,1,0,8,3,7,192,198,226,11,3,8,192,198,34,5,70,196,196,1,0,8,3,8,192,198,98,11,3,8,192,198,162,9,0,197,99,1,0,8,3,8,192,198,227,11,3,9,192,198,67,9,0,197,195,1,0,8,3,9,192,198,163,11,3,10,192,198,3,156,82,196,196,1,0,8,3,10,192,197,34,11,3,10,192,197,98,5,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,11,0,197,35,1,0,8,3,11,192,197,131,11,3,11,192,197,227,12,0,197,67,1,0,8,3,12,192,197,163,11,3,13,192,197,3,2,0,39,0,40,0,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,24,4,185,76,185,80,185,84,186,88,186,96,26,4,185,104,185,108,186,112,30,4,185,124,185,128,185,132,186,136,186,140,32,4,185,152,185,156,185,160,185,164,185,168,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,60,168,64,168,68,36,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,38,4,168,124,168,128,168,132,168,136,168,140,40,4,168,152,168,156,168,160,168,164,168,168,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,176,185,184,185,176,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,180,136,14,185,180,185,149,153,149,249,149,217,164,153,165,0,8,2,8,168,57,136,57,232,57,104,58,200,176,168,184,168,176,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,180,128,14,168,180,168,149,136,149,232,149,200,164,136,165,4,8,72,166,249,58,232,58,217,57,200,57,42,4,44,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,176,232,176,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,200,128,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,180,232,180,25,181,8,181,153,133,136,133,185,134,168,134,25,134,8,134,154,137,136,137,250,137,232,137,186,138,168,138,26,138,8,138,186,142,168,142,26,142,8,142,185,144,168,144,121,150,104,150,249,150,232,150,217,149,200,149,57,150,40,150,249,164,232,164,46,4,48,4,249,157,232,157,249,165,232,165,89,166,153,169,136,169,153,170,136,170,25,170,8,170,232,136,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,140,185,84,200,136,169,136,169,140,168,84,187,88,187,96,169,88,169,96,169,172,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,255,5,185,100,39,4,209,128,255,5,185,120,255,5,185,148,255,5,168,56,255,5,168,72,255,5,168,120,255,5,168,148,255,5,217,58,255,5,200,58,255,5,217,150,255,5,200,150,255,1,3,0,67,0,50,0,59,0,123,12,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,116,12,0,32,221,22,0,32,1,0,32,0,226,22,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,230,8,0,32,7,0,0,0,21,0,0,0,232,8,0,0,232,8,0,0,3,0,0,0,0,0,0,0,33,1,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,18,222,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,75,0,104,0,109,0,114,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,180,23,61,0,181,23,38,0,212,23,155,23,212,23,60,0,60,0,60,0,216,23,38,0,200,23,60,0,60,0,206,23,60,0,60,0,207,23,60,0,60,0,209,23,60,0,60,0,208,23,60,0,60,0,200,23,60,0,60,0,221,23,60,0,60,0,203,23,60,0,60,0,201,23,60,0,60,0,202,23,60,0,60,0,205,23,38,0,154,23,60,0,171,23,60,0,172,23,38,0,155,23,60,0,173,23,60,0,174,23,38,0,154,23,210,23,128,23,60,0,60,0,128,23,204,23,38,0,154,23,210,23,129,23,60,0,60,0,129,23,204,23,38,0,154,23,210,23,130,23,60,0,60,0,130,23,204,23,38,0,154,23,210,23,131,23,60,0,60,0,131,23,204,23,38,0,154,23,210,23,132,23,60,0,60,0,132,23,204,23,38,0,154,23,210,23,133,23,60,0,60,0,133,23,204,23,38,0,154,23,210,23,134,23,60,0,60,0,134,23,204,23,38,0,154,23,210,23,135,23,60,0,60,0,135,23,204,23,38,0,154,23,210,23,136,23,60,0,60,0,136,23,204,23,38,0,154,23,210,23,137,23,60,0,60,0,137,23,204,23,38,0,154,23,210,23,138,23,60,0,60,0,138,23,204,23,38,0,154,23,210,23,139,23,60,0,60,0,139,23,204,23,38,0,154,23,210,23,140,23,60,0,60,0,140,23,204,23,38,0,154,23,210,23,141,23,60,0,60,0,141,23,204,23,38,0,154,23,210,23,142,23,60,0,60,0,142,23,204,23,38,0,154,23,210,23,143,23,60,0,60,0,143,23,204,23,38,0,154,23,210,23,144,23,60,0,60,0,144,23,204,23,38,0,154,23,210,23,145,23,60,0,60,0,145,23,204,23,38,0,154,23,210,23,146,23,60,0,60,0,146,23,204,23,38,0,154,23,210,23,147,23,60,0,60,0,147,23,204,23,38,0,154,23,210,23,148,23,60,0,60,0,148,23,204,23,38,0,154,23,210,23,149,23,60,0,60,0,149,23,204,23,38,0,154,23,210,23,150,23,60,0,60,0,150,23,204,23,38,0,154,23,210,23,151,23,60,0,60,0,151,23,204,23,38,0,154,23,210,23,152,23,60,0,60,0,152,23,204,23,38,0,154,23,210,23,153,23,60,0,60,0,153,23,204,23,38,0,154,23,210,23,154,23,60,0,60,0,154,23,204,23,38,0,154,23,210,23,171,23,60,0,60,0,171,23,204,23,38,0,154,23,210,23,172,23,60,0,60,0,172,23,204,23,38,0,154,23,210,23,155,23,60,0,60,0,155,23,204,23,38,0,154,23,210,23,173,23,60,0,60,0,173,23,204,23,38,0,154,23,210,23,174,23,60,0,60,0,174,23,204,23,38,0,154,23,210,23,156,23,60,0,60,0,156,23,204,23,38,0,154,23,210,23,157,23,60,0,60,0,157,23,204,23,38,0,154,23,210,23,158,23,60,0,60,0,158,23,204,23,38,0,154,23,210,23,159,23,60,0,60,0,159,23,204,23,38,0,154,23,210,23,160,23,60,0,60,0,160,23,204,23,38,0,154,23,210,23,161,23,60,0,60,0,161,23,204,23,38,0,154,23,210,23,162,23,60,0,60,0,162,23,204,23,61,0,163,23,204,23,38,0,162,23,61,0,163,23,38,0,162,23,182,23,61,0,164,23,38,0,162,23,183,23,60,0,60,0,165,23,38,0,162,23,184,23,60,0,60,0,166,23,38,0,162,23,187,23,60,0,60,0,167,23,38,0,162,23,188,23,60,0,60,0,169,23,38,0,162,23,194,23,60,0,60,0,175,23,38,0,162,23,195,23,60,0,60,0,176,23,38,0,162,23,196,23,60,0,60,0,177,23,38,0,162,23,197,23,60,0,60,0,179,23,38,0,167,23,128,23,60,0,60,0,60,0,168,23,38,0,169,23,156,23,60,0,60,0,60,0,170,23,38,0,177,23,60,0,60,0,60,0,178,23,38,0,197,23,60,0,187,23,198,23,60,0,198,23,60,0,182,23,198,23,60,0,199,23,60,0,183,23,199,23,60,0,187,23,199,23,60,0,193,23,199,23,60,0,196,23,199,23,0,0,170,170,170,170,170,170,170,170,236,30,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,236,25,0,0,236,25,0,0,76,26,0,0,76,26,0,0,168,28,0,0,168,28,0,0,198,30,0,0,208,30,0,0,23,0,0,0,0,0,98,117,178,255,0,118,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,0,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,129,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,120,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,17,0,202,193,17,0,202,226,17,0,202,3,18,0,202,36,18,0,202,69,18,0,202,102,18,0,202,135,18,0,202,168,18,0,202,201,18,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,16,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,17,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,17,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,201,160,0,0,201,96,1,0,201,32,2,0,201,224,2,0,201,160,3,0,201,96,4,0,201,32,5,0,201,224,5,0,201,160,6,0,201,96,7,0,201,32,8,0,201,224,8,0,201,160,9,0,201,96,10,0,201,32,11,0,201,224,11,0,201,160,12,0,201,96,13,0,201,32,14,0,201,224,14,0,201,160,15,0,201,96,16,0,201,32,17,0,201,224,17,0,201,160,18,0,201,96,19,0,201,32,20,0,201,224,20,0,201,160,21,0,201,96,22,0,201,32,23,0,201,224,23,0,201,160,24,0,201,96,25,0,201,96,25,0,197,66,13,0,197,130,13,0,197,194,13,0,197,2,14,0,197,67,14,0,197,162,14,0,197,227,14,0,201,32,26,0,201,192,26,0,201,128,27,0,201,64,28,0,197,66,15,0,197,130,15,0,197,194,15,0,197,2,16,0,197,66,16,0,0,0,0,0,0,0,0,0,201,0,29,0,201,224,29,0,192,0,0,0,192,0,0,0,192,0,0,0,201,192,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,32,0,192,0,0,0,192,0,0,0,201,0,33,0,192,0,0,0,193,3,237,117,193,5,237,117,194,5,164,245,194,5,167,245,194,5,168,245,194,5,166,245,192,0,0,0,194,5,169,245,194,5,160,245,194,5,161,245,194,5,163,245,194,5,162,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,165,245,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,2,153,117,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,3,153,117,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,2,155,117,0,5,0,5,0,0,152,117,0,5,0,5,0,0,238,117,0,5,0,70,0,3,155,117,0,0,0,0,5,5,152,117,5,5,238,117,5,70,100,117,5,5,152,117,5,5,238,117,5,70,102,117,5,5,152,117,5,5,238,117,5,70,104,117,5,5,152,117,5,5,238,117,5,70,106,117,5,5,152,117,5,5,238,117,5,70,108,117,5,5,152,117,5,5,238,117,5,70,110,117,5,5,152,117,5,5,238,117,5,70,112,117,5,5,152,117,5,5,238,117,5,70,114,117,5,5,152,117,5,5,238,117,5,70,116,117,5,5,152,117,5,5,238,117,5,70,118,117,5,5,152,117,5,5,238,117,5,70,120,117,5,5,152,117,5,5,238,117,5,70,122,117,5,5,152,117,5,5,238,117,5,70,124,117,5,5,152,117,5,5,238,117,5,70,126,117,5,5,152,117,5,5,238,117,5,70,128,117,5,5,152,117,5,5,238,117,5,70,130,117,5,5,152,117,5,5,238,117,5,70,132,117,5,5,152,117,5,5,238,117,5,70,134,117,5,5,152,117,5,5,238,117,5,70,136,117,5,5,152,117,5,5,238,117,5,70,138,117,5,5,152,117,5,5,238,117,5,70,140,117,5,5,152,117,5,5,238,117,5,70,142,117,5,5,152,117,5,5,238,117,5,70,144,117,5,5,152,117,5,5,238,117,5,70,146,117,5,5,152,117,5,5,238,117,5,70,148,117,5,5,152,117,5,5,238,117,5,70,150,117,5,5,152,117,5,5,238,117,5,70,152,117,5,5,152,117,5,5,238,117,5,70,154,117,5,5,152,117,5,5,238,117,5,70,156,117,5,5,152,117,5,5,238,117,5,70,158,117,5,5,152,117,5,5,238,117,5,70,160,117,5,5,152,117,5,5,238,117,5,70,162,117,5,5,152,117,5,5,238,117,5,70,164,117,5,5,152,117,5,5,238,117,5,70,166,117,5,5,152,117,5,5,238,117,5,70,168,117,5,5,168,117,5,5,206,117,5,5,168,117,5,70,208,117,5,5,168,117,5,70,210,117,5,5,168,117,5,70,216,117,5,5,168,117,5,70,216,117,6,5,100,117,5,5,168,117,5,70,218,117,5,5,168,117,5,70,218,117,6,5,156,117,5,5,168,117,5,70,230,117,5,5,168,117,5,70,232,117,5,5,168,117,5,70,234,117,5,5,168,117,6,70,234,117,5,5,168,117,5,70,236,117,5,5,48,9,5,5,154,117,6,5,48,9,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,100,117,5,5,48,0,204,23,197,163,102,117,5,5,48,0,204,23,0,192,197,131,104,117,5,5,48,0,204,23,0,192,197,227,106,117,5,5,48,0,204,23,1,192,197,67,108,117,5,5,48,0,204,23,1,192,197,163,110,117,5,5,48,0,204,23,2,192,197,3,112,117,5,5,48,0,204,23,2,192,197,99,114,117,5,5,48,0,204,23,2,192,197,195,116,117,5,5,48,0,204,23,3,192,197,35,118,117,5,5,48,0,204,23,3,192,197,131,120,117,5,5,48,0,204,23,3,192,197,227,122,117,5,5,48,0,204,23,4,192,197,67,124,117,5,5,48,0,204,23,4,192,197,163,126,117,5,5,48,0,204,23,5,192,197,3,128,117,5,5,48,0,204,23,5,192,197,99,130,117,5,5,48,0,204,23,5,192,197,195,132,117,5,5,48,0,204,23,6,192,197,35,134,117,5,5,48,0,204,23,6,192,197,131,136,117,5,5,48,0,204,23,6,192,197,227,138,117,5,5,48,0,204,23,7,192,197,67,140,117,5,5,48,0,204,23,7,192,197,163,142,117,5,5,48,0,204,23,8,192,197,3,144,117,5,5,48,0,204,23,8,192,197,99,146,117,5,5,48,0,204,23,8,192,197,195,148,117,5,5,48,0,204,23,9,192,197,35,150,117,5,5,48,0,204,23,9,192,197,131,152,117,5,5,48,0,204,23,9,192,197,227,154,117,5,5,48,0,204,23,10,192,197,67,156,117,5,5,48,0,204,23,10,192,197,163,158,117,5,5,48,0,204,23,11,192,197,3,160,117,5,5,48,0,204,23,11,192,197,99,162,117,5,5,48,0,204,23,11,192,197,195,164,117,5,5,48,0,204,23,12,192,197,35,166,117,5,5,48,0,204,23,12,192,197,131,168,117,5,5,48,0,204,23,12,192,197,227,153,117,193,2,48,0,204,23,198,131,153,117,193,3,48,0,204,23,0,192,198,99,155,117,193,2,48,0,204,23,0,192,198,195,155,117,193,3,48,0,204,23,1,192,198,35,206,117,5,5,48,0,198,23,255,255,237,117,193,4,208,117,5,5,48,0,199,23,255,255,237,117,193,6,216,117,5,5,1,0,198,23,255,255,237,117,193,2,199,23,255,255,237,117,193,7,228,117,5,5,48,0,199,23,255,255,237,117,193,8,234,117,5,5,48,0,199,23,255,255,237,117,193,9,4,0,198,23,200,23,204,23,205,23,3,0,69,0,52,0,61,0,35,1,0,16,4,0,0,96,1,0,0,96,1,0,43,0,223,8,0,32,1,0,32,0,228,8,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,117,33,0,32,7,0,0,0,24,0,0,0,119,33,0,0,119,33,0,0,3,0,0,0,0,0,0,0,118,9,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,116,114,97,100,105,116,105,111,110,97,108,0,0,0,52,0,50,0,0,0,87,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,75,0,110,0,100,0,97,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,12,60,0,130,12,60,0,131,12,60,0,241,12,60,0,242,12,0,0,239,223,92,18,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,75,0,110,0,100,0,97,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,12,60,0,130,12,60,0,131,12,60,0,241,12,60,0,242,12,60,0,149,12,205,12,60,0,150,12,205,12,60,0,151,12,205,12,60,0,152,12,205,12,60,0,153,12,205,12,60,0,154,12,205,12,60,0,155,12,205,12,60,0,156,12,205,12,60,0,157,12,205,12,60,0,158,12,205,12,60,0,159,12,205,12,60,0,160,12,205,12,60,0,161,12,205,12,60,0,162,12,205,12,60,0,163,12,205,12,60,0,164,12,205,12,60,0,165,12,205,12,60,0,166,12,205,12,60,0,167,12,205,12,60,0,168,12,205,12,60,0,170,12,205,12,60,0,171,12,205,12,60,0,172,12,205,12,60,0,173,12,205,12,60,0,174,12,205,12,60,0,175,12,205,12,60,0,176,12,205,12,60,0,177,12,205,12,60,0,178,12,205,12,60,0,181,12,205,12,60,0,182,12,205,12,60,0,183,12,205,12,60,0,184,12,205,12,60,0,185,12,205,12,60,0,179,12,205,12,60,0,222,12,205,12,38,0,149,12,205,12,133,12,61,0,149,12,38,0,149,12,205,12,134,12,61,0,149,12,190,12,38,0,149,12,205,12,135,12,61,0,149,12,191,12,38,0,149,12,205,12,136,12,61,0,149,12,192,12,38,0,149,12,205,12,137,12,61,0,149,12,193,12,38,0,149,12,205,12,138,12,61,0,149,12,194,12,38,0,149,12,205,12,139,12,61,0,149,12,195,12,38,0,149,12,205,12,224,12,61,0,149,12,196,12,38,0,149,12,205,12,140,12,61,0,149,12,226,12,38,0,149,12,205,12,225,12,61,0,149,12,227,12,38,0,149,12,205,12,142,12,61,0,149,12,198,12,38,0,149,12,205,12,143,12,61,0,149,12,199,12,38,0,149,12,205,12,144,12,61,0,149,12,200,12,38,0,149,12,205,12,146,12,61,0,149,12,202,12,38,0,149,12,205,12,147,12,61,0,149,12,203,12,38,0,149,12,205,12,148,12,61,0,149,12,204,12,38,0,150,12,205,12,133,12,61,0,150,12,38,0,150,12,205,12,134,12,61,0,150,12,190,12,38,0,150,12,205,12,135,12,61,0,150,12,191,12,38,0,150,12,205,12,136,12,61,0,150,12,192,12,38,0,150,12,205,12,137,12,61,0,150,12,193,12,38,0,150,12,205,12,138,12,61,0,150,12,194,12,38,0,150,12,205,12,139,12,61,0,150,12,195,12,38,0,150,12,205,12,224,12,61,0,150,12,196,12,38,0,150,12,205,12,140,12,61,0,150,12,226,12,38,0,150,12,205,12,225,12,61,0,150,12,227,12,38,0,150,12,205,12,142,12,61,0,150,12,198,12,38,0,150,12,205,12,143,12,61,0,150,12,199,12,38,0,150,12,205,12,144,12,61,0,150,12,200,12,38,0,150,12,205,12,146,12,61,0,150,12,202,12,38,0,150,12,205,12,147,12,61,0,150,12,203,12,38,0,150,12,205,12,148,12,61,0,150,12,204,12,38,0,151,12,205,12,133,12,61,0,151,12,38,0,151,12,205,12,134,12,61,0,151,12,190,12,38,0,151,12,205,12,135,12,61,0,151,12,191,12,38,0,151,12,205,12,136,12,61,0,151,12,192,12,38,0,151,12,205,12,137,12,61,0,151,12,193,12,38,0,151,12,205,12,138,12,61,0,151,12,194,12,38,0,151,12,205,12,139,12,61,0,151,12,195,12,38,0,151,12,205,12,224,12,61,0,151,12,196,12,38,0,151,12,205,12,140,12,61,0,151,12,226,12,38,0,151,12,205,12,225,12,61,0,151,12,227,12,38,0,151,12,205,12,142,12,61,0,151,12,198,12,38,0,151,12,205,12,143,12,61,0,151,12,199,12,38,0,151,12,205,12,144,12,61,0,151,12,200,12,38,0,151,12,205,12,146,12,61,0,151,12,202,12,38,0,151,12,205,12,147,12,61,0,151,12,203,12,38,0,151,12,205,12,148,12,61,0,151,12,204,12,38,0,152,12,205,12,133,12,61,0,152,12,38,0,152,12,205,12,134,12,61,0,152,12,190,12,38,0,152,12,205,12,135,12,61,0,152,12,191,12,38,0,152,12,205,12,136,12,61,0,152,12,192,12,38,0,152,12,205,12,137,12,61,0,152,12,193,12,38,0,152,12,205,12,138,12,61,0,152,12,194,12,38,0,152,12,205,12,139,12,61,0,152,12,195,12,38,0,152,12,205,12,224,12,61,0,152,12,196,12,38,0,152,12,205,12,140,12,61,0,152,12,226,12,38,0,152,12,205,12,225,12,61,0,152,12,227,12,38,0,152,12,205,12,142,12,61,0,152,12,198,12,38,0,152,12,205,12,143,12,61,0,152,12,199,12,38,0,152,12,205,12,144,12,61,0,152,12,200,12,38,0,152,12,205,12,146,12,61,0,152,12,202,12,38,0,152,12,205,12,147,12,61,0,152,12,203,12,38,0,152,12,205,12,148,12,61,0,152,12,204,12,38,0,153,12,205,12,133,12,61,0,153,12,38,0,153,12,205,12,134,12,61,0,153,12,190,12,38,0,153,12,205,12,135,12,61,0,153,12,191,12,38,0,153,12,205,12,136,12,61,0,153,12,192,12,38,0,153,12,205,12,137,12,61,0,153,12,193,12,38,0,153,12,205,12,138,12,61,0,153,12,194,12,38,0,153,12,205,12,139,12,61,0,153,12,195,12,38,0,153,12,205,12,224,12,61,0,153,12,196,12,38,0,153,12,205,12,140,12,61,0,153,12,226,12,38,0,153,12,205,12,225,12,61,0,153,12,227,12,38,0,153,12,205,12,142,12,61,0,153,12,198,12,38,0,153,12,205,12,143,12,61,0,153,12,199,12,38,0,153,12,205,12,144,12,61,0,153,12,200,12,38,0,153,12,205,12,146,12,61,0,153,12,202,12,38,0,153,12,205,12,147,12,61,0,153,12,203,12,38,0,153,12,205,12,148,12,61,0,153,12,204,12,38,0,154,12,205,12,133,12,61,0,154,12,38,0,154,12,205,12,134,12,61,0,154,12,190,12,38,0,154,12,205,12,135,12,61,0,154,12,191,12,38,0,154,12,205,12,136,12,61,0,154,12,192,12,38,0,154,12,205,12,137,12,61,0,154,12,193,12,38,0,154,12,205,12,138,12,61,0,154,12,194,12,38,0,154,12,205,12,139,12,61,0,154,12,195,12,38,0,154,12,205,12,224,12,61,0,154,12,196,12,38,0,154,12,205,12,140,12,61,0,154,12,226,12,38,0,154,12,205,12,225,12,61,0,154,12,227,12,38,0,154,12,205,12,142,12,61,0,154,12,198,12,38,0,154,12,205,12,143,12,61,0,154,12,199,12,38,0,154,12,205,12,144,12,61,0,154,12,200,12,38,0,154,12,205,12,146,12,61,0,154,12,202,12,38,0,154,12,205,12,147,12,61,0,154,12,203,12,38,0,154,12,205,12,148,12,61,0,154,12,204,12,38,0,155,12,205,12,133,12,61,0,155,12,38,0,155,12,205,12,134,12,61,0,155,12,190,12,38,0,155,12,205,12,135,12,61,0,155,12,191,12,38,0,155,12,205,12,136,12,61,0,155,12,192,12,38,0,155,12,205,12,137,12,61,0,155,12,193,12,38,0,155,12,205,12,138,12,61,0,155,12,194,12,38,0,155,12,205,12,139,12,61,0,155,12,195,12,38,0,155,12,205,12,224,12,61,0,155,12,196,12,38,0,155,12,205,12,140,12,61,0,155,12,226,12,38,0,155,12,205,12,225,12,61,0,155,12,227,12,38,0,155,12,205,12,142,12,61,0,155,12,198,12,38,0,155,12,205,12,143,12,61,0,155,12,199,12,38,0,155,12,205,12,144,12,61,0,155,12,200,12,38,0,155,12,205,12,146,12,61,0,155,12,202,12,38,0,155,12,205,12,147,12,61,0,155,12,203,12,38,0,155,12,205,12,148,12,61,0,155,12,204,12,38,0,156,12,205,12,133,12,61,0,156,12,38,0,156,12,205,12,134,12,61,0,156,12,190,12,38,0,156,12,205,12,135,12,61,0,156,12,191,12,38,0,156,12,205,12,136,12,61,0,156,12,192,12,38,0,156,12,205,12,137,12,61,0,156,12,193,12,38,0,156,12,205,12,138,12,61,0,156,12,194,12,38,0,156,12,205,12,139,12,61,0,156,12,195,12,38,0,156,12,205,12,224,12,61,0,156,12,196,12,38,0,156,12,205,12,140,12,61,0,156,12,226,12,38,0,156,12,205,12,225,12,61,0,156,12,227,12,38,0,156,12,205,12,142,12,61,0,156,12,198,12,38,0,156,12,205,12,143,12,61,0,156,12,199,12,38,0,156,12,205,12,144,12,61,0,156,12,200,12,38,0,156,12,205,12,146,12,61,0,156,12,202,12,38,0,156,12,205,12,147,12,61,0,156,12,203,12,38,0,156,12,205,12,148,12,61,0,156,12,204,12,38,0,157,12,205,12,133,12,61,0,157,12,38,0,157,12,205,12,134,12,61,0,157,12,190,12,38,0,157,12,205,12,135,12,61,0,157,12,191,12,38,0,157,12,205,12,136,12,61,0,157,12,192,12,38,0,157,12,205,12,137,12,61,0,157,12,193,12,38,0,157,12,205,12,138,12,61,0,157,12,194,12,38,0,157,12,205,12,139,12,61,0,157,12,195,12,38,0,157,12,205,12,224,12,61,0,157,12,196,12,38,0,157,12,205,12,140,12,61,0,157,12,226,12,38,0,157,12,205,12,225,12,61,0,157,12,227,12,38,0,157,12,205,12,142,12,61,0,157,12,198,12,38,0,157,12,205,12,143,12,61,0,157,12,199,12,38,0,157,12,205,12,144,12,61,0,157,12,200,12,38,0,157,12,205,12,146,12,61,0,157,12,202,12,38,0,157,12,205,12,147,12,61,0,157,12,203,12,38,0,157,12,205,12,148,12,61,0,157,12,204,12,38,0,158,12,205,12,133,12,61,0,158,12,38,0,158,12,205,12,134,12,61,0,158,12,190,12,38,0,158,12,205,12,135,12,61,0,158,12,191,12,38,0,158,12,205,12,136,12,61,0,158,12,192,12,38,0,158,12,205,12,137,12,61,0,158,12,193,12,38,0,158,12,205,12,138,12,61,0,158,12,194,12,38,0,158,12,205,12,139,12,61,0,158,12,195,12,38,0,158,12,205,12,224,12,61,0,158,12,196,12,38,0,158,12,205,12,140,12,61,0,158,12,226,12,38,0,158,12,205,12,225,12,61,0,158,12,227,12,38,0,158,12,205,12,142,12,61,0,158,12,198,12,38,0,158,12,205,12,143,12,61,0,158,12,199,12,38,0,158,12,205,12,144,12,61,0,158,12,200,12,38,0,158,12,205,12,146,12,61,0,158,12,202,12,38,0,158,12,205,12,147,12,61,0,158,12,203,12,38,0,158,12,205,12,148,12,61,0,158,12,204,12,38,0,159,12,205,12,133,12,61,0,159,12,38,0,159,12,205,12,134,12,61,0,159,12,190,12,38,0,159,12,205,12,135,12,61,0,159,12,191,12,38,0,159,12,205,12,136,12,61,0,159,12,192,12,38,0,159,12,205,12,137,12,61,0,159,12,193,12,38,0,159,12,205,12,138,12,61,0,159,12,194,12,38,0,159,12,205,12,139,12,61,0,159,12,195,12,38,0,159,12,205,12,224,12,61,0,159,12,196,12,38,0,159,12,205,12,140,12,61,0,159,12,226,12,38,0,159,12,205,12,225,12,61,0,159,12,227,12,38,0,159,12,205,12,142,12,61,0,159,12,198,12,38,0,159,12,205,12,143,12,61,0,159,12,199,12,38,0,159,12,205,12,144,12,61,0,159,12,200,12,38,0,159,12,205,12,146,12,61,0,159,12,202,12,38,0,159,12,205,12,147,12,61,0,159,12,203,12,38,0,159,12,205,12,148,12,61,0,159,12,204,12,38,0,160,12,205,12,133,12,61,0,160,12,38,0,160,12,205,12,134,12,61,0,160,12,190,12,38,0,160,12,205,12,135,12,61,0,160,12,191,12,38,0,160,12,205,12,136,12,61,0,160,12,192,12,38,0,160,12,205,12,137,12,61,0,160,12,193,12,38,0,160,12,205,12,138,12,61,0,160,12,194,12,38,0,160,12,205,12,139,12,61,0,160,12,195,12,38,0,160,12,205,12,224,12,61,0,160,12,196,12,38,0,160,12,205,12,140,12,61,0,160,12,226,12,38,0,160,12,205,12,225,12,61,0,160,12,227,12,38,0,160,12,205,12,142,12,61,0,160,12,198,12,38,0,160,12,205,12,143,12,61,0,160,12,199,12,38,0,160,12,205,12,144,12,61,0,160,12,200,12,38,0,160,12,205,12,146,12,61,0,160,12,202,12,38,0,160,12,205,12,147,12,61,0,160,12,203,12,38,0,160,12,205,12,148,12,61,0,160,12,204,12,38,0,161,12,205,12,133,12,61,0,161,12,38,0,161,12,205,12,134,12,61,0,161,12,190,12,38,0,161,12,205,12,135,12,61,0,161,12,191,12,38,0,161,12,205,12,136,12,61,0,161,12,192,12,38,0,161,12,205,12,137,12,61,0,161,12,193,12,38,0,161,12,205,12,138,12,61,0,161,12,194,12,38,0,161,12,205,12,139,12,61,0,161,12,195,12,38,0,161,12,205,12,224,12,61,0,161,12,196,12,38,0,161,12,205,12,140,12,61,0,161,12,226,12,38,0,161,12,205,12,225,12,61,0,161,12,227,12,38,0,161,12,205,12,142,12,61,0,161,12,198,12,38,0,161,12,205,12,143,12,61,0,161,12,199,12,38,0,161,12,205,12,144,12,61,0,161,12,200,12,38,0,161,12,205,12,146,12,61,0,161,12,202,12,38,0,161,12,205,12,147,12,61,0,161,12,203,12,38,0,161,12,205,12,148,12,61,0,161,12,204,12,38,0,162,12,205,12,133,12,61,0,162,12,38,0,162,12,205,12,134,12,61,0,162,12,190,12,38,0,162,12,205,12,135,12,61,0,162,12,191,12,38,0,162,12,205,12,136,12,61,0,162,12,192,12,38,0,162,12,205,12,137,12,61,0,162,12,193,12,38,0,162,12,205,12,138,12,61,0,162,12,194,12,38,0,162,12,205,12,139,12,61,0,162,12,195,12,38,0,162,12,205,12,224,12,61,0,162,12,196,12,38,0,162,12,205,12,140,12,61,0,162,12,226,12,38,0,162,12,205,12,225,12,61,0,162,12,227,12,38,0,162,12,205,12,142,12,61,0,162,12,198,12,38,0,162,12,205,12,143,12,61,0,162,12,199,12,38,0,162,12,205,12,144,12,61,0,162,12,200,12,38,0,162,12,205,12,146,12,61,0,162,12,202,12,38,0,162,12,205,12,147,12,61,0,162,12,203,12,38,0,162,12,205,12,148,12,61,0,162,12,204,12,38,0,163,12,205,12,133,12,61,0,163,12,38,0,163,12,205,12,134,12,61,0,163,12,190,12,38,0,163,12,205,12,135,12,61,0,163,12,191,12,38,0,163,12,205,12,136,12,61,0,163,12,192,12,38,0,163,12,205,12,137,12,61,0,163,12,193,12,38,0,163,12,205,12,138,12,61,0,163,12,194,12,38,0,163,12,205,12,139,12,61,0,163,12,195,12,38,0,163,12,205,12,224,12,61,0,163,12,196,12,38,0,163,12,205,12,140,12,61,0,163,12,226,12,38,0,163,12,205,12,225,12,61,0,163,12,227,12,38,0,163,12,205,12,142,12,61,0,163,12,198,12,38,0,163,12,205,12,143,12,61,0,163,12,199,12,38,0,163,12,205,12,144,12,61,0,163,12,200,12,38,0,163,12,205,12,146,12,61,0,163,12,202,12,38,0,163,12,205,12,147,12,61,0,163,12,203,12,38,0,163,12,205,12,148,12,61,0,163,12,204,12,38,0,164,12,205,12,133,12,61,0,164,12,38,0,164,12,205,12,134,12,61,0,164,12,190,12,38,0,164,12,205,12,135,12,61,0,164,12,191,12,38,0,164,12,205,12,136,12,61,0,164,12,192,12,38,0,164,12,205,12,137,12,61,0,164,12,193,12,38,0,164,12,205,12,138,12,61,0,164,12,194,12,38,0,164,12,205,12,139,12,61,0,164,12,195,12,38,0,164,12,205,12,224,12,61,0,164,12,196,12,38,0,164,12,205,12,140,12,61,0,164,12,226,12,38,0,164,12,205,12,225,12,61,0,164,12,227,12,38,0,164,12,205,12,142,12,61,0,164,12,198,12,38,0,164,12,205,12,143,12,61,0,164,12,199,12,38,0,164,12,205,12,144,12,61,0,164,12,200,12,38,0,164,12,205,12,146,12,61,0,164,12,202,12,38,0,164,12,205,12,147,12,61,0,164,12,203,12,38,0,164,12,205,12,148,12,61,0,164,12,204,12,38,0,165,12,205,12,133,12,61,0,165,12,38,0,165,12,205,12,134,12,61,0,165,12,190,12,38,0,165,12,205,12,135,12,61,0,165,12,191,12,38,0,165,12,205,12,136,12,61,0,165,12,192,12,38,0,165,12,205,12,137,12,61,0,165,12,193,12,38,0,165,12,205,12,138,12,61,0,165,12,194,12,38,0,165,12,205,12,139,12,61,0,165,12,195,12,38,0,165,12,205,12,224,12,61,0,165,12,196,12,38,0,165,12,205,12,140,12,61,0,165,12,226,12,38,0,165,12,205,12,225,12,61,0,165,12,227,12,38,0,165,12,205,12,142,12,61,0,165,12,198,12,38,0,165,12,205,12,143,12,61,0,165,12,199,12,38,0,165,12,205,12,144,12,61,0,165,12,200,12,38,0,165,12,205,12,146,12,61,0,165,12,202,12,38,0,165,12,205,12,147,12,61,0,165,12,203,12,38,0,165,12,205,12,148,12,61,0,165,12,204,12,38,0,166,12,205,12,133,12,61,0,166,12,38,0,166,12,205,12,134,12,61,0,166,12,190,12,38,0,166,12,205,12,135,12,61,0,166,12,191,12,38,0,166,12,205,12,136,12,61,0,166,12,192,12,38,0,166,12,205,12,137,12,61,0,166,12,193,12,38,0,166,12,205,12,138,12,61,0,166,12,194,12,38,0,166,12,205,12,139,12,61,0,166,12,195,12,38,0,166,12,205,12,224,12,61,0,166,12,196,12,38,0,166,12,205,12,140,12,61,0,166,12,226,12,38,0,166,12,205,12,225,12,61,0,166,12,227,12,38,0,166,12,205,12,142,12,61,0,166,12,198,12,38,0,166,12,205,12,143,12,61,0,166,12,199,12,38,0,166,12,205,12,144,12,61,0,166,12,200,12,38,0,166,12,205,12,146,12,61,0,166,12,202,12,38,0,166,12,205,12,147,12,61,0,166,12,203,12,38,0,166,12,205,12,148,12,61,0,166,12,204,12,38,0,167,12,205,12,133,12,61,0,167,12,38,0,167,12,205,12,134,12,61,0,167,12,190,12,38,0,167,12,205,12,135,12,61,0,167,12,191,12,38,0,167,12,205,12,136,12,61,0,167,12,192,12,38,0,167,12,205,12,137,12,61,0,167,12,193,12,38,0,167,12,205,12,138,12,61,0,167,12,194,12,38,0,167,12,205,12,139,12,61,0,167,12,195,12,38,0,167,12,205,12,224,12,61,0,167,12,196,12,38,0,167,12,205,12,140,12,61,0,167,12,226,12,38,0,167,12,205,12,225,12,61,0,167,12,227,12,38,0,167,12,205,12,142,12,61,0,167,12,198,12,38,0,167,12,205,12,143,12,61,0,167,12,199,12,38,0,167,12,205,12,144,12,61,0,167,12,200,12,38,0,167,12,205,12,146,12,61,0,167,12,202,12,38,0,167,12,205,12,147,12,61,0,167,12,203,12,38,0,167,12,205,12,148,12,61,0,167,12,204,12,38,0,168,12,205,12,133,12,61,0,168,12,38,0,168,12,205,12,134,12,61,0,168,12,190,12,38,0,168,12,205,12,135,12,61,0,168,12,191,12,38,0,168,12,205,12,136,12,61,0,168,12,192,12,38,0,168,12,205,12,137,12,61,0,168,12,193,12,38,0,168,12,205,12,138,12,61,0,168,12,194,12,38,0,168,12,205,12,139,12,61,0,168,12,195,12,38,0,168,12,205,12,224,12,61,0,168,12,196,12,38,0,168,12,205,12,140,12,61,0,168,12,226,12,38,0,168,12,205,12,225,12,61,0,168,12,227,12,38,0,168,12,205,12,142,12,61,0,168,12,198,12,38,0,168,12,205,12,143,12,61,0,168,12,199,12,38,0,168,12,205,12,144,12,61,0,168,12,200,12,38,0,168,12,205,12,146,12,61,0,168,12,202,12,38,0,168,12,205,12,147,12,61,0,168,12,203,12,38,0,168,12,205,12,148,12,61,0,168,12,204,12,38,0,170,12,205,12,133,12,61,0,170,12,38,0,170,12,205,12,134,12,61,0,170,12,190,12,38,0,170,12,205,12,135,12,61,0,170,12,191,12,38,0,170,12,205,12,136,12,61,0,170,12,192,12,38,0,170,12,205,12,137,12,61,0,170,12,193,12,38,0,170,12,205,12,138,12,61,0,170,12,194,12,38,0,170,12,205,12,139,12,61,0,170,12,195,12,38,0,170,12,205,12,224,12,61,0,170,12,196,12,38,0,170,12,205,12,140,12,61,0,170,12,226,12,38,0,170,12,205,12,225,12,61,0,170,12,227,12,38,0,170,12,205,12,142,12,61,0,170,12,198,12,38,0,170,12,205,12,143,12,61,0,170,12,199,12,38,0,170,12,205,12,144,12,61,0,170,12,200,12,38,0,170,12,205,12,146,12,61,0,170,12,202,12,38,0,170,12,205,12,147,12,61,0,170,12,203,12,38,0,170,12,205,12,148,12,61,0,170,12,204,12,38,0,171,12,205,12,133,12,61,0,171,12,38,0,171,12,205,12,134,12,61,0,171,12,190,12,38,0,171,12,205,12,135,12,61,0,171,12,191,12,38,0,171,12,205,12,136,12,61,0,171,12,192,12,38,0,171,12,205,12,137,12,61,0,171,12,193,12,38,0,171,12,205,12,138,12,61,0,171,12,194,12,38,0,171,12,205,12,139,12,61,0,171,12,195,12,38,0,171,12,205,12,224,12,61,0,171,12,196,12,38,0,171,12,205,12,140,12,61,0,171,12,226,12,38,0,171,12,205,12,225,12,61,0,171,12,227,12,38,0,171,12,205,12,142,12,61,0,171,12,198,12,38,0,171,12,205,12,143,12,61,0,171,12,199,12,38,0,171,12,205,12,144,12,61,0,171,12,200,12,38,0,171,12,205,12,146,12,61,0,171,12,202,12,38,0,171,12,205,12,147,12,61,0,171,12,203,12,38,0,171,12,205,12,148,12,61,0,171,12,204,12,38,0,172,12,205,12,133,12,61,0,172,12,38,0,172,12,205,12,134,12,61,0,172,12,190,12,38,0,172,12,205,12,135,12,61,0,172,12,191,12,38,0,172,12,205,12,136,12,61,0,172,12,192,12,38,0,172,12,205,12,137,12,61,0,172,12,193,12,38,0,172,12,205,12,138,12,61,0,172,12,194,12,38,0,172,12,205,12,139,12,61,0,172,12,195,12,38,0,172,12,205,12,224,12,61,0,172,12,196,12,38,0,172,12,205,12,140,12,61,0,172,12,226,12,38,0,172,12,205,12,225,12,61,0,172,12,227,12,38,0,172,12,205,12,142,12,61,0,172,12,198,12,38,0,172,12,205,12,143,12,61,0,172,12,199,12,38,0,172,12,205,12,144,12,61,0,172,12,200,12,38,0,172,12,205,12,146,12,61,0,172,12,202,12,38,0,172,12,205,12,147,12,61,0,172,12,203,12,38,0,172,12,205,12,148,12,61,0,172,12,204,12,38,0,173,12,205,12,133,12,61,0,173,12,38,0,173,12,205,12,134,12,61,0,173,12,190,12,38,0,173,12,205,12,135,12,61,0,173,12,191,12,38,0,173,12,205,12,136,12,61,0,173,12,192,12,38,0,173,12,205,12,137,12,61,0,173,12,193,12,38,0,173,12,205,12,138,12,61,0,173,12,194,12,38,0,173,12,205,12,139,12,61,0,173,12,195,12,38,0,173,12,205,12,224,12,61,0,173,12,196,12,38,0,173,12,205,12,140,12,61,0,173,12,226,12,38,0,173,12,205,12,225,12,61,0,173,12,227,12,38,0,173,12,205,12,142,12,61,0,173,12,198,12,38,0,173,12,205,12,143,12,61,0,173,12,199,12,38,0,173,12,205,12,144,12,61,0,173,12,200,12,38,0,173,12,205,12,146,12,61,0,173,12,202,12,38,0,173,12,205,12,147,12,61,0,173,12,203,12,38,0,173,12,205,12,148,12,61,0,173,12,204,12,38,0,174,12,205,12,133,12,61,0,174,12,38,0,174,12,205,12,134,12,61,0,174,12,190,12,38,0,174,12,205,12,135,12,61,0,174,12,191,12,38,0,174,12,205,12,136,12,61,0,174,12,192,12,38,0,174,12,205,12,137,12,61,0,174,12,193,12,38,0,174,12,205,12,138,12,61,0,174,12,194,12,38,0,174,12,205,12,139,12,61,0,174,12,195,12,38,0,174,12,205,12,224,12,61,0,174,12,196,12,38,0,174,12,205,12,140,12,61,0,174,12,226,12,38,0,174,12,205,12,225,12,61,0,174,12,227,12,38,0,174,12,205,12,142,12,61,0,174,12,198,12,38,0,174,12,205,12,143,12,61,0,174,12,199,12,38,0,174,12,205,12,144,12,61,0,174,12,200,12,38,0,174,12,205,12,146,12,61,0,174,12,202,12,38,0,174,12,205,12,147,12,61,0,174,12,203,12,38,0,174,12,205,12,148,12,61,0,174,12,204,12,38,0,175,12,205,12,133,12,61,0,175,12,38,0,175,12,205,12,134,12,61,0,175,12,190,12,38,0,175,12,205,12,135,12,61,0,175,12,191,12,38,0,175,12,205,12,136,12,61,0,175,12,192,12,38,0,175,12,205,12,137,12,61,0,175,12,193,12,38,0,175,12,205,12,138,12,61,0,175,12,194,12,38,0,175,12,205,12,139,12,61,0,175,12,195,12,38,0,175,12,205,12,224,12,61,0,175,12,196,12,38,0,175,12,205,12,140,12,61,0,175,12,226,12,38,0,175,12,205,12,225,12,61,0,175,12,227,12,38,0,175,12,205,12,142,12,61,0,175,12,198,12,38,0,175,12,205,12,143,12,61,0,175,12,199,12,38,0,175,12,205,12,144,12,61,0,175,12,200,12,38,0,175,12,205,12,146,12,61,0,175,12,202,12,38,0,175,12,205,12,147,12,61,0,175,12,203,12,38,0,175,12,205,12,148,12,61,0,175,12,204,12,38,0,176,12,205,12,133,12,61,0,176,12,38,0,176,12,205,12,134,12,61,0,176,12,190,12,38,0,176,12,205,12,135,12,61,0,176,12,191,12,38,0,176,12,205,12,136,12,61,0,176,12,192,12,38,0,176,12,205,12,137,12,61,0,176,12,193,12,38,0,176,12,205,12,138,12,61,0,176,12,194,12,38,0,176,12,205,12,139,12,61,0,176,12,195,12,38,0,176,12,205,12,224,12,61,0,176,12,196,12,38,0,176,12,205,12,140,12,61,0,176,12,226,12,38,0,176,12,205,12,225,12,61,0,176,12,227,12,38,0,176,12,205,12,142,12,61,0,176,12,198,12,38,0,176,12,205,12,143,12,61,0,176,12,199,12,38,0,176,12,205,12,144,12,61,0,176,12,200,12,38,0,176,12,205,12,146,12,61,0,176,12,202,12,38,0,176,12,205,12,147,12,61,0,176,12,203,12,38,0,176,12,205,12,148,12,61,0,176,12,204,12,38,0,177,12,205,12,133,12,61,0,177,12,38,0,177,12,205,12,134,12,61,0,177,12,190,12,38,0,177,12,205,12,135,12,61,0,177,12,191,12,38,0,177,12,205,12,136,12,61,0,177,12,192,12,38,0,177,12,205,12,137,12,61,0,177,12,193,12,38,0,177,12,205,12,138,12,61,0,177,12,194,12,38,0,177,12,205,12,139,12,61,0,177,12,195,12,38,0,177,12,205,12,224,12,61,0,177,12,196,12,38,0,177,12,205,12,140,12,61,0,177,12,226,12,38,0,177,12,205,12,225,12,61,0,177,12,227,12,38,0,177,12,205,12,142,12,61,0,177,12,198,12,38,0,177,12,205,12,143,12,61,0,177,12,199,12,38,0,177,12,205,12,144,12,61,0,177,12,200,12,38,0,177,12,205,12,146,12,61,0,177,12,202,12,38,0,177,12,205,12,147,12,61,0,177,12,203,12,38,0,177,12,205,12,148,12,61,0,177,12,204,12,38,0,178,12,205,12,133,12,61,0,178,12,38,0,178,12,205,12,134,12,61,0,178,12,190,12,38,0,178,12,205,12,135,12,61,0,178,12,191,12,38,0,178,12,205,12,136,12,61,0,178,12,192,12,38,0,178,12,205,12,137,12,61,0,178,12,193,12,38,0,178,12,205,12,138,12,61,0,178,12,194,12,38,0,178,12,205,12,139,12,61,0,178,12,195,12,38,0,178,12,205,12,224,12,61,0,178,12,196,12,38,0,178,12,205,12,140,12,61,0,178,12,226,12,38,0,178,12,205,12,225,12,61,0,178,12,227,12,38,0,178,12,205,12,142,12,61,0,178,12,198,12,38,0,178,12,205,12,143,12,61,0,178,12,199,12,38,0,178,12,205,12,144,12,61,0,178,12,200,12,38,0,178,12,205,12,146,12,61,0,178,12,202,12,38,0,178,12,205,12,147,12,61,0,178,12,203,12,38,0,178,12,205,12,148,12,61,0,178,12,204,12,38,0,181,12,205,12,133,12,61,0,181,12,38,0,181,12,205,12,134,12,61,0,181,12,190,12,38,0,181,12,205,12,135,12,61,0,181,12,191,12,38,0,181,12,205,12,136,12,61,0,181,12,192,12,38,0,181,12,205,12,137,12,61,0,181,12,193,12,38,0,181,12,205,12,138,12,61,0,181,12,194,12,38,0,181,12,205,12,139,12,61,0,181,12,195,12,38,0,181,12,205,12,224,12,61,0,181,12,196,12,38,0,181,12,205,12,140,12,61,0,181,12,226,12,38,0,181,12,205,12,225,12,61,0,181,12,227,12,38,0,181,12,205,12,142,12,61,0,181,12,198,12,38,0,181,12,205,12,143,12,61,0,181,12,199,12,38,0,181,12,205,12,144,12,61,0,181,12,200,12,38,0,181,12,205,12,146,12,61,0,181,12,202,12,38,0,181,12,205,12,147,12,61,0,181,12,203,12,38,0,181,12,205,12,148,12,61,0,181,12,204,12,38,0,182,12,205,12,133,12,61,0,182,12,38,0,182,12,205,12,134,12,61,0,182,12,190,12,38,0,182,12,205,12,135,12,61,0,182,12,191,12,38,0,182,12,205,12,136,12,61,0,182,12,192,12,38,0,182,12,205,12,137,12,61,0,182,12,193,12,38,0,182,12,205,12,138,12,61,0,182,12,194,12,38,0,182,12,205,12,139,12,61,0,182,12,195,12,38,0,182,12,205,12,224,12,61,0,182,12,196,12,38,0,182,12,205,12,140,12,61,0,182,12,226,12,38,0,182,12,205,12,225,12,61,0,182,12,227,12,38,0,182,12,205,12,142,12,61,0,182,12,198,12,38,0,182,12,205,12,143,12,61,0,182,12,199,12,38,0,182,12,205,12,144,12,61,0,182,12,200,12,38,0,182,12,205,12,146,12,61,0,182,12,202,12,38,0,182,12,205,12,147,12,61,0,182,12,203,12,38,0,182,12,205,12,148,12,61,0,182,12,204,12,38,0,183,12,205,12,133,12,61,0,183,12,38,0,183,12,205,12,134,12,61,0,183,12,190,12,38,0,183,12,205,12,135,12,61,0,183,12,191,12,38,0,183,12,205,12,136,12,61,0,183,12,192,12,38,0,183,12,205,12,137,12,61,0,183,12,193,12,38,0,183,12,205,12,138,12,61,0,183,12,194,12,38,0,183,12,205,12,139,12,61,0,183,12,195,12,38,0,183,12,205,12,224,12,61,0,183,12,196,12,38,0,183,12,205,12,140,12,61,0,183,12,226,12,38,0,183,12,205,12,225,12,61,0,183,12,227,12,38,0,183,12,205,12,142,12,61,0,183,12,198,12,38,0,183,12,205,12,143,12,61,0,183,12,199,12,38,0,183,12,205,12,144,12,61,0,183,12,200,12,38,0,183,12,205,12,146,12,61,0,183,12,202,12,38,0,183,12,205,12,147,12,61,0,183,12,203,12,38,0,183,12,205,12,148,12,61,0,183,12,204,12,38,0,184,12,205,12,133,12,61,0,184,12,38,0,184,12,205,12,134,12,61,0,184,12,190,12,38,0,184,12,205,12,135,12,61,0,184,12,191,12,38,0,184,12,205,12,136,12,61,0,184,12,192,12,38,0,184,12,205,12,137,12,61,0,184,12,193,12,38,0,184,12,205,12,138,12,61,0,184,12,194,12,38,0,184,12,205,12,139,12,61,0,184,12,195,12,38,0,184,12,205,12,224,12,61,0,184,12,196,12,38,0,184,12,205,12,140,12,61,0,184,12,226,12,38,0,184,12,205,12,225,12,61,0,184,12,227,12,38,0,184,12,205,12,142,12,61,0,184,12,198,12,38,0,184,12,205,12,143,12,61,0,184,12,199,12,38,0,184,12,205,12,144,12,61,0,184,12,200,12,38,0,184,12,205,12,146,12,61,0,184,12,202,12,38,0,184,12,205,12,147,12,61,0,184,12,203,12,38,0,184,12,205,12,148,12,61,0,184,12,204,12,38,0,185,12,205,12,133,12,61,0,185,12,38,0,185,12,205,12,134,12,61,0,185,12,190,12,38,0,185,12,205,12,135,12,61,0,185,12,191,12,38,0,185,12,205,12,136,12,61,0,185,12,192,12,38,0,185,12,205,12,137,12,61,0,185,12,193,12,38,0,185,12,205,12,138,12,61,0,185,12,194,12,38,0,185,12,205,12,139,12,61,0,185,12,195,12,38,0,185,12,205,12,224,12,61,0,185,12,196,12,38,0,185,12,205,12,140,12,61,0,185,12,226,12,38,0,185,12,205,12,225,12,61,0,185,12,227,12,38,0,185,12,205,12,142,12,61,0,185,12,198,12,38,0,185,12,205,12,143,12,61,0,185,12,199,12,38,0,185,12,205,12,144,12,61,0,185,12,200,12,38,0,185,12,205,12,146,12,61,0,185,12,202,12,38,0,185,12,205,12,147,12,61,0,185,12,203,12,38,0,185,12,205,12,148,12,61,0,185,12,204,12,38,0,179,12,205,12,133,12,61,0,179,12,38,0,179,12,205,12,134,12,61,0,179,12,190,12,38,0,179,12,205,12,135,12,61,0,179,12,191,12,38,0,179,12,205,12,136,12,61,0,179,12,192,12,38,0,179,12,205,12,137,12,61,0,179,12,193,12,38,0,179,12,205,12,138,12,61,0,179,12,194,12,38,0,179,12,205,12,139,12,61,0,179,12,195,12,38,0,179,12,205,12,224,12,61,0,179,12,196,12,38,0,179,12,205,12,140,12,61,0,179,12,226,12,38,0,179,12,205,12,225,12,61,0,179,12,227,12,38,0,179,12,205,12,142,12,61,0,179,12,198,12,38,0,179,12,205,12,143,12,61,0,179,12,199,12,38,0,179,12,205,12,144,12,61,0,179,12,200,12,38,0,179,12,205,12,146,12,61,0,179,12,202,12,38,0,179,12,205,12,147,12,61,0,179,12,203,12,38,0,179,12,205,12,148,12,61,0,179,12,204,12,38,0,222,12,205,12,133,12,61,0,222,12,38,0,222,12,205,12,134,12,61,0,222,12,190,12,38,0,222,12,205,12,135,12,61,0,222,12,191,12,38,0,222,12,205,12,136,12,61,0,222,12,192,12,38,0,222,12,205,12,137,12,61,0,222,12,193,12,38,0,222,12,205,12,138,12,61,0,222,12,194,12,38,0,222,12,205,12,139,12,61,0,222,12,195,12,38,0,222,12,205,12,224,12,61,0,222,12,196,12,38,0,222,12,205,12,140,12,61,0,222,12,226,12,38,0,222,12,205,12,225,12,61,0,222,12,227,12,38,0,222,12,205,12,142,12,61,0,222,12,198,12,38,0,222,12,205,12,143,12,61,0,222,12,199,12,38,0,222,12,205,12,144,12,61,0,222,12,200,12,38,0,222,12,205,12,146,12,61,0,222,12,202,12,38,0,222,12,205,12,147,12,61,0,222,12,203,12,38,0,222,12,205,12,148,12,61,0,222,12,204,12,38,0,153,12,205,12,149,12,60,0,60,0,60,0,130,12,149,12,38,0,153,12,205,12,150,12,60,0,60,0,60,0,130,12,150,12,38,0,153,12,205,12,151,12,60,0,60,0,60,0,130,12,151,12,38,0,153,12,205,12,152,12,60,0,60,0,60,0,130,12,152,12,38,0,153,12,205,12,153,12,60,0,60,0,60,0,130,12,153,12,38,0,158,12,205,12,154,12,60,0,60,0,60,0,130,12,154,12,38,0,158,12,205,12,155,12,60,0,60,0,60,0,130,12,155,12,38,0,158,12,205,12,156,12,60,0,60,0,60,0,130,12,156,12,38,0,158,12,205,12,157,12,60,0,60,0,60,0,130,12,157,12,38,0,158,12,205,12,158,12,60,0,60,0,60,0,130,12,158,12,38,0,163,12,205,12,159,12,60,0,60,0,60,0,130,12,159,12,38,0,163,12,205,12,160,12,60,0,60,0,60,0,130,12,160,12,38,0,163,12,205,12,161,12,60,0,60,0,60,0,130,12,161,12,38,0,163,12,205,12,162,12,60,0,60,0,60,0,130,12,162,12,38,0,163,12,205,12,163,12,60,0,60,0,60,0,130,12,163,12,38,0,168,12,205,12,164,12,60,0,60,0,60,0,130,12,164,12,38,0,168,12,205,12,165,12,60,0,60,0,60,0,130,12,165,12,38,0,168,12,205,12,166,12,60,0,60,0,60,0,130,12,166,12,38,0,168,12,205,12,167,12,60,0,60,0,60,0,130,12,167,12,38,0,168,12,205,12,168,12,60,0,60,0,60,0,130,12,168,12,38,0,174,12,205,12,170,12,60,0,60,0,60,0,130,12,170,12,38,0,174,12,205,12,171,12,60,0,60,0,60,0,130,12,171,12,38,0,174,12,205,12,172,12,60,0,60,0,60,0,130,12,172,12,38,0,174,12,205,12,173,12,60,0,60,0,60,0,130,12,173,12,38,0,174,12,205,12,174,12,60,0,60,0,60,0,130,12,174,12,38,0,156,12,60,0,60,0,60,0,156,12,188,12,38,0,156,12,190,12,60,0,60,0,60,0,156,12,188,12,190,12,38,0,156,12,191,12,60,0,60,0,60,0,156,12,188,12,191,12,38,0,156,12,192,12,60,0,60,0,60,0,156,12,188,12,192,12,38,0,156,12,193,12,60,0,60,0,60,0,156,12,188,12,193,12,38,0,156,12,194,12,60,0,60,0,60,0,156,12,188,12,194,12,38,0,156,12,195,12,60,0,60,0,60,0,156,12,188,12,195,12,38,0,156,12,196,12,60,0,60,0,60,0,156,12,188,12,196,12,38,0,156,12,226,12,60,0,60,0,60,0,156,12,188,12,226,12,38,0,156,12,227,12,60,0,60,0,60,0,156,12,188,12,227,12,38,0,156,12,198,12,60,0,60,0,60,0,156,12,188,12,198,12,38,0,156,12,199,12,60,0,60,0,60,0,156,12,188,12,199,12,38,0,156,12,200,12,60,0,60,0,60,0,156,12,188,12,200,12,38,0,156,12,202,12,60,0,60,0,60,0,156,12,188,12,202,12,38,0,156,12,203,12,60,0,60,0,60,0,156,12,188,12,203,12,38,0,156,12,204,12,60,0,60,0,60,0,156,12,188,12,204,12,38,0,171,12,60,0,60,0,60,0,171,12,188,12,38,0,171,12,190,12,60,0,60,0,60,0,171,12,188,12,190,12,38,0,171,12,191,12,60,0,60,0,60,0,171,12,188,12,191,12,38,0,171,12,192,12,60,0,60,0,60,0,171,12,188,12,192,12,38,0,171,12,193,12,60,0,60,0,60,0,171,12,188,12,193,12,38,0,171,12,194,12,60,0,60,0,60,0,171,12,188,12,194,12,38,0,171,12,195,12,60,0,60,0,60,0,171,12,188,12,195,12,38,0,171,12,196,12,60,0,60,0,60,0,171,12,188,12,196,12,38,0,171,12,226,12,60,0,60,0,60,0,171,12,188,12,226,12,38,0,171,12,227,12,60,0,60,0,60,0,171,12,188,12,227,12,38,0,171,12,198,12,60,0,60,0,60,0,171,12,188,12,198,12,38,0,171,12,199,12,60,0,60,0,60,0,171,12,188,12,199,12,38,0,171,12,200,12,60,0,60,0,60,0,171,12,188,12,200,12,38,0,171,12,202,12,60,0,60,0,60,0,171,12,188,12,202,12,38,0,171,12,203,12,60,0,60,0,60,0,171,12,188,12,203,12,38,0,171,12,204,12,60,0,60,0,60,0,171,12,188,12,204,12,0,0,170,170,170,170,176,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,84,25,0,0,84,25,0,0,84,25,0,0,84,25,0,0,152,25,0,0,21,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,111,184,255,0,112,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,39,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,117,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,100,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,37,111,193,3,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,37,111,193,5,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,119,9,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,0,70,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,144,26,0,0,144,26,0,0,144,26,0,0,144,26,0,0,0,47,0,0,0,47,0,0,202,69,0,0,232,69,0,0,21,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,111,184,255,0,112,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,39,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,136,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,111,0,119,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,162,0,202,97,162,0,202,130,162,0,202,163,162,0,202,196,162,0,202,229,162,0,202,6,163,0,202,39,163,0,202,72,163,0,202,105,163,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,161,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,161,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,162,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,193,3,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,11,0,201,164,20,0,201,228,29,0,201,36,39,0,201,100,48,0,201,164,57,0,201,228,66,0,201,36,76,0,201,132,95,0,201,196,104,0,201,4,114,0,201,68,123,0,201,132,132,0,201,196,141,0,201,4,151,0,201,68,160,0,201,132,169,0,201,196,178,0,201,4,188,0,201,68,197,0,192,0,0,0,201,132,206,0,201,196,215,0,201,36,235,0,201,100,244,0,201,164,253,0,201,228,6,1,201,36,16,1,201,100,25,1,201,164,34,1,201,228,43,1,192,0,0,0,201,36,53,1,201,100,62,1,201,164,71,1,201,228,80,1,201,36,90,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,99,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,37,111,193,5,37,111,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,193,10,37,111,193,6,37,111,32,5,6,111,193,10,37,111,193,7,37,111,31,5,6,111,193,10,37,111,193,8,37,111,30,5,6,111,193,10,37,111,193,9,37,111,29,5,6,111,193,10,37,111,193,10,37,111,28,5,6,111,193,15,37,111,193,11,37,111,27,5,6,111,193,15,37,111,193,12,37,111,26,5,6,111,193,15,37,111,193,13,37,111,25,5,6,111,193,15,37,111,193,14,37,111,24,5,6,111,193,15,37,111,193,15,37,111,23,5,6,111,193,20,37,111,193,16,37,111,22,5,6,111,193,20,37,111,193,17,37,111,21,5,6,111,193,20,37,111,193,18,37,111,20,5,6,111,193,20,37,111,193,19,37,111,19,5,6,111,193,20,37,111,193,20,37,111,18,5,6,111,193,25,37,111,193,21,37,111,17,5,6,111,193,25,37,111,193,22,37,111,16,5,6,111,193,25,37,111,193,23,37,111,15,5,6,111,193,25,37,111,193,24,37,111,14,5,6,111,193,25,37,111,193,25,37,111,13,5,6,111,193,30,37,111,193,26,37,111,12,5,6,111,193,30,37,111,193,27,37,111,11,5,6,111,193,30,37,111,193,28,37,111,10,5,6,111,193,30,37,111,193,29,37,111,9,5,6,111,193,30,37,111,193,30,37,111,8,5,6,111,193,6,37,111,5,5,6,111,193,6,37,111,5,5,8,111,193,6,37,111,5,5,10,111,193,6,37,111,5,5,12,111,193,6,37,111,5,5,14,111,193,6,37,111,5,5,16,111,193,6,37,111,5,5,18,111,193,6,37,111,5,5,20,111,193,6,37,111,5,5,26,111,193,6,37,111,5,5,32,111,193,6,37,111,5,5,34,111,193,6,37,111,5,5,28,111,193,6,37,111,5,5,30,111,193,6,37,111,5,5,36,111,193,6,37,111,5,5,22,111,193,6,37,111,5,5,24,111,193,7,37,111,5,5,6,111,193,7,37,111,5,5,8,111,193,7,37,111,5,5,10,111,193,7,37,111,5,5,12,111,193,7,37,111,5,5,14,111,193,7,37,111,5,5,16,111,193,7,37,111,5,5,18,111,193,7,37,111,5,5,20,111,193,7,37,111,5,5,26,111,193,7,37,111,5,5,32,111,193,7,37,111,5,5,34,111,193,7,37,111,5,5,28,111,193,7,37,111,5,5,30,111,193,7,37,111,5,5,36,111,193,7,37,111,5,5,22,111,193,7,37,111,5,5,24,111,193,8,37,111,5,5,6,111,193,8,37,111,5,5,8,111,193,8,37,111,5,5,10,111,193,8,37,111,5,5,12,111,193,8,37,111,5,5,14,111,193,8,37,111,5,5,16,111,193,8,37,111,5,5,18,111,193,8,37,111,5,5,20,111,193,8,37,111,5,5,26,111,193,8,37,111,5,5,32,111,193,8,37,111,5,5,34,111,193,8,37,111,5,5,28,111,193,8,37,111,5,5,30,111,193,8,37,111,5,5,36,111,193,8,37,111,5,5,22,111,193,8,37,111,5,5,24,111,193,9,37,111,5,5,6,111,193,9,37,111,5,5,8,111,193,9,37,111,5,5,10,111,193,9,37,111,5,5,12,111,193,9,37,111,5,5,14,111,193,9,37,111,5,5,16,111,193,9,37,111,5,5,18,111,193,9,37,111,5,5,20,111,193,9,37,111,5,5,26,111,193,9,37,111,5,5,32,111,193,9,37,111,5,5,34,111,193,9,37,111,5,5,28,111,193,9,37,111,5,5,30,111,193,9,37,111,5,5,36,111,193,9,37,111,5,5,22,111,193,9,37,111,5,5,24,111,193,10,37,111,5,5,6,111,193,10,37,111,5,5,8,111,193,10,37,111,5,5,10,111,193,10,37,111,5,5,12,111,193,10,37,111,5,5,14,111,193,10,37,111,5,5,16,111,193,10,37,111,5,5,18,111,193,10,37,111,5,5,20,111,193,10,37,111,5,5,26,111,193,10,37,111,5,5,32,111,193,10,37,111,5,5,34,111,193,10,37,111,5,5,28,111,193,10,37,111,5,5,30,111,193,10,37,111,5,5,36,111,193,10,37,111,5,5,22,111,193,10,37,111,5,5,24,111,193,11,37,111,5,5,6,111,193,11,37,111,5,5,8,111,193,11,37,111,5,5,10,111,193,11,37,111,5,5,12,111,193,11,37,111,5,5,14,111,193,11,37,111,5,5,16,111,193,11,37,111,5,5,18,111,193,11,37,111,5,5,20,111,193,11,37,111,5,5,26,111,193,11,37,111,5,5,32,111,193,11,37,111,5,5,34,111,193,11,37,111,5,5,28,111,193,11,37,111,5,5,30,111,193,11,37,111,5,5,36,111,193,11,37,111,5,5,22,111,193,11,37,111,5,5,24,111,193,12,37,111,5,5,6,111,193,12,37,111,5,5,8,111,193,12,37,111,5,5,10,111,193,12,37,111,5,5,12,111,193,12,37,111,5,5,14,111,193,12,37,111,5,5,16,111,193,12,37,111,5,5,18,111,193,12,37,111,5,5,20,111,193,12,37,111,5,5,26,111,193,12,37,111,5,5,32,111,193,12,37,111,5,5,34,111,193,12,37,111,5,5,28,111,193,12,37,111,5,5,30,111,193,12,37,111,5,5,36,111,193,12,37,111,5,5,22,111,193,12,37,111,5,5,24,111,193,13,37,111,5,5,6,111,193,13,37,111,7,5,6,111,193,13,37,111,7,5,8,111,193,13,37,111,7,5,10,111,193,13,37,111,7,5,12,111,193,13,37,111,7,5,14,111,193,13,37,111,7,5,16,111,193,13,37,111,7,5,18,111,193,13,37,111,7,5,20,111,193,13,37,111,7,5,26,111,193,13,37,111,7,5,32,111,193,13,37,111,7,5,34,111,193,13,37,111,7,5,28,111,193,13,37,111,7,5,30,111,193,13,37,111,7,5,36,111,193,13,37,111,7,5,22,111,193,13,37,111,7,5,24,111,193,13,37,111,5,5,8,111,193,13,37,111,5,5,10,111,193,13,37,111,5,5,12,111,193,13,37,111,5,5,14,111,193,13,37,111,5,5,16,111,193,13,37,111,5,5,18,111,193,13,37,111,5,5,20,111,193,13,37,111,5,5,26,111,193,13,37,111,5,5,32,111,193,13,37,111,5,5,34,111,193,13,37,111,5,5,28,111,193,13,37,111,5,5,30,111,193,13,37,111,5,5,36,111,193,13,37,111,5,5,22,111,193,13,37,111,5,5,24,111,193,14,37,111,5,5,6,111,193,14,37,111,5,5,8,111,193,14,37,111,5,5,10,111,193,14,37,111,5,5,12,111,193,14,37,111,5,5,14,111,193,14,37,111,5,5,16,111,193,14,37,111,5,5,18,111,193,14,37,111,5,5,20,111,193,14,37,111,5,5,26,111,193,14,37,111,5,5,32,111,193,14,37,111,5,5,34,111,193,14,37,111,5,5,28,111,193,14,37,111,5,5,30,111,193,14,37,111,5,5,36,111,193,14,37,111,5,5,22,111,193,14,37,111,5,5,24,111,193,15,37,111,5,5,6,111,193,15,37,111,5,5,8,111,193,15,37,111,5,5,10,111,193,15,37,111,5,5,12,111,193,15,37,111,5,5,14,111,193,15,37,111,5,5,16,111,193,15,37,111,5,5,18,111,193,15,37,111,5,5,20,111,193,15,37,111,5,5,26,111,193,15,37,111,5,5,32,111,193,15,37,111,5,5,34,111,193,15,37,111,5,5,28,111,193,15,37,111,5,5,30,111,193,15,37,111,5,5,36,111,193,15,37,111,5,5,22,111,193,15,37,111,5,5,24,111,193,16,37,111,5,5,6,111,193,16,37,111,5,5,8,111,193,16,37,111,5,5,10,111,193,16,37,111,5,5,12,111,193,16,37,111,5,5,14,111,193,16,37,111,5,5,16,111,193,16,37,111,5,5,18,111,193,16,37,111,5,5,20,111,193,16,37,111,5,5,26,111,193,16,37,111,5,5,32,111,193,16,37,111,5,5,34,111,193,16,37,111,5,5,28,111,193,16,37,111,5,5,30,111,193,16,37,111,5,5,36,111,193,16,37,111,5,5,22,111,193,16,37,111,5,5,24,111,193,17,37,111,5,5,6,111,193,17,37,111,5,5,8,111,193,17,37,111,5,5,10,111,193,17,37,111,5,5,12,111,193,17,37,111,5,5,14,111,193,17,37,111,5,5,16,111,193,17,37,111,5,5,18,111,193,17,37,111,5,5,20,111,193,17,37,111,5,5,26,111,193,17,37,111,5,5,32,111,193,17,37,111,5,5,34,111,193,17,37,111,5,5,28,111,193,17,37,111,5,5,30,111,193,17,37,111,5,5,36,111,193,17,37,111,5,5,22,111,193,17,37,111,5,5,24,111,193,18,37,111,5,5,6,111,193,18,37,111,5,5,8,111,193,18,37,111,5,5,10,111,193,18,37,111,5,5,12,111,193,18,37,111,5,5,14,111,193,18,37,111,5,5,16,111,193,18,37,111,5,5,18,111,193,18,37,111,5,5,20,111,193,18,37,111,5,5,26,111,193,18,37,111,5,5,32,111,193,18,37,111,5,5,34,111,193,18,37,111,5,5,28,111,193,18,37,111,5,5,30,111,193,18,37,111,5,5,36,111,193,18,37,111,5,5,22,111,193,18,37,111,5,5,24,111,193,19,37,111,5,5,6,111,193,19,37,111,5,5,8,111,193,19,37,111,5,5,10,111,193,19,37,111,5,5,12,111,193,19,37,111,5,5,14,111,193,19,37,111,5,5,16,111,193,19,37,111,5,5,18,111,193,19,37,111,5,5,20,111,193,19,37,111,5,5,26,111,193,19,37,111,5,5,32,111,193,19,37,111,5,5,34,111,193,19,37,111,5,5,28,111,193,19,37,111,5,5,30,111,193,19,37,111,5,5,36,111,193,19,37,111,5,5,22,111,193,19,37,111,5,5,24,111,193,20,37,111,5,5,6,111,193,20,37,111,5,5,8,111,193,20,37,111,5,5,10,111,193,20,37,111,5,5,12,111,193,20,37,111,5,5,14,111,193,20,37,111,5,5,16,111,193,20,37,111,5,5,18,111,193,20,37,111,5,5,20,111,193,20,37,111,5,5,26,111,193,20,37,111,5,5,32,111,193,20,37,111,5,5,34,111,193,20,37,111,5,5,28,111,193,20,37,111,5,5,30,111,193,20,37,111,5,5,36,111,193,20,37,111,5,5,22,111,193,20,37,111,5,5,24,111,193,21,37,111,5,5,6,111,193,21,37,111,5,5,8,111,193,21,37,111,5,5,10,111,193,21,37,111,5,5,12,111,193,21,37,111,5,5,14,111,193,21,37,111,5,5,16,111,193,21,37,111,5,5,18,111,193,21,37,111,5,5,20,111,193,21,37,111,5,5,26,111,193,21,37,111,5,5,32,111,193,21,37,111,5,5,34,111,193,21,37,111,5,5,28,111,193,21,37,111,5,5,30,111,193,21,37,111,5,5,36,111,193,21,37,111,5,5,22,111,193,21,37,111,5,5,24,111,193,22,37,111,5,5,6,111,193,22,37,111,5,5,8,111,193,22,37,111,5,5,10,111,193,22,37,111,5,5,12,111,193,22,37,111,5,5,14,111,193,22,37,111,5,5,16,111,193,22,37,111,5,5,18,111,193,22,37,111,5,5,20,111,193,22,37,111,5,5,26,111,193,22,37,111,5,5,32,111,193,22,37,111,5,5,34,111,193,22,37,111,5,5,28,111,193,22,37,111,5,5,30,111,193,22,37,111,5,5,36,111,193,22,37,111,5,5,22,111,193,22,37,111,5,5,24,111,193,23,37,111,5,5,6,111,193,23,37,111,5,5,8,111,193,23,37,111,5,5,10,111,193,23,37,111,5,5,12,111,193,23,37,111,5,5,14,111,193,23,37,111,5,5,16,111,193,23,37,111,5,5,18,111,193,23,37,111,5,5,20,111,193,23,37,111,5,5,26,111,193,23,37,111,5,5,32,111,193,23,37,111,5,5,34,111,193,23,37,111,5,5,28,111,193,23,37,111,5,5,30,111,193,23,37,111,5,5,36,111,193,23,37,111,5,5,22,111,193,23,37,111,5,5,24,111,193,24,37,111,5,5,6,111,193,24,37,111,5,5,8,111,193,24,37,111,5,5,10,111,193,24,37,111,5,5,12,111,193,24,37,111,5,5,14,111,193,24,37,111,5,5,16,111,193,24,37,111,5,5,18,111,193,24,37,111,5,5,20,111,193,24,37,111,5,5,26,111,193,24,37,111,5,5,32,111,193,24,37,111,5,5,34,111,193,24,37,111,5,5,28,111,193,24,37,111,5,5,30,111,193,24,37,111,5,5,36,111,193,24,37,111,5,5,22,111,193,24,37,111,5,5,24,111,193,25,37,111,5,5,6,111,193,25,37,111,5,5,8,111,193,25,37,111,5,5,10,111,193,25,37,111,5,5,12,111,193,25,37,111,5,5,14,111,193,25,37,111,5,5,16,111,193,25,37,111,5,5,18,111,193,25,37,111,5,5,20,111,193,25,37,111,5,5,26,111,193,25,37,111,5,5,32,111,193,25,37,111,5,5,34,111,193,25,37,111,5,5,28,111,193,25,37,111,5,5,30,111,193,25,37,111,5,5,36,111,193,25,37,111,5,5,22,111,193,25,37,111,5,5,24,111,193,26,37,111,5,5,6,111,193,26,37,111,5,5,8,111,193,26,37,111,5,5,10,111,193,26,37,111,5,5,12,111,193,26,37,111,5,5,14,111,193,26,37,111,5,5,16,111,193,26,37,111,5,5,18,111,193,26,37,111,5,5,20,111,193,26,37,111,5,5,26,111,193,26,37,111,5,5,32,111,193,26,37,111,5,5,34,111,193,26,37,111,5,5,28,111,193,26,37,111,5,5,30,111,193,26,37,111,5,5,36,111,193,26,37,111,5,5,22,111,193,26,37,111,5,5,24,111,193,27,37,111,5,5,6,111,193,27,37,111,6,5,6,111,193,27,37,111,6,5,8,111,193,27,37,111,6,5,10,111,193,27,37,111,6,5,12,111,193,27,37,111,6,5,14,111,193,27,37,111,6,5,16,111,193,27,37,111,6,5,18,111,193,27,37,111,6,5,20,111,193,27,37,111,6,5,26,111,193,27,37,111,6,5,32,111,193,27,37,111,6,5,34,111,193,27,37,111,6,5,28,111,193,27,37,111,6,5,30,111,193,27,37,111,6,5,36,111,193,27,37,111,6,5,22,111,193,27,37,111,6,5,24,111,193,27,37,111,5,5,8,111,193,27,37,111,5,5,10,111,193,27,37,111,5,5,12,111,193,27,37,111,5,5,14,111,193,27,37,111,5,5,16,111,193,27,37,111,5,5,18,111,193,27,37,111,5,5,20,111,193,27,37,111,5,5,26,111,193,27,37,111,5,5,32,111,193,27,37,111,5,5,34,111,193,27,37,111,5,5,28,111,193,27,37,111,5,5,30,111,193,27,37,111,5,5,36,111,193,27,37,111,5,5,22,111,193,27,37,111,5,5,24,111,193,28,37,111,5,5,6,111,193,28,37,111,5,5,8,111,193,28,37,111,5,5,10,111,193,28,37,111,5,5,12,111,193,28,37,111,5,5,14,111,193,28,37,111,5,5,16,111,193,28,37,111,5,5,18,111,193,28,37,111,5,5,20,111,193,28,37,111,5,5,26,111,193,28,37,111,5,5,32,111,193,28,37,111,5,5,34,111,193,28,37,111,5,5,28,111,193,28,37,111,5,5,30,111,193,28,37,111,5,5,36,111,193,28,37,111,5,5,22,111,193,28,37,111,5,5,24,111,193,29,37,111,5,5,6,111,193,29,37,111,5,5,8,111,193,29,37,111,5,5,10,111,193,29,37,111,5,5,12,111,193,29,37,111,5,5,14,111,193,29,37,111,5,5,16,111,193,29,37,111,5,5,18,111,193,29,37,111,5,5,20,111,193,29,37,111,5,5,26,111,193,29,37,111,5,5,32,111,193,29,37,111,5,5,34,111,193,29,37,111,5,5,28,111,193,29,37,111,5,5,30,111,193,29,37,111,5,5,36,111,193,29,37,111,5,5,22,111,193,29,37,111,5,5,24,111,193,30,37,111,5,5,6,111,193,30,37,111,5,5,8,111,193,30,37,111,5,5,10,111,193,30,37,111,5,5,12,111,193,30,37,111,5,5,14,111,193,30,37,111,5,5,16,111,193,30,37,111,5,5,18,111,193,30,37,111,5,5,20,111,193,30,37,111,5,5,26,111,193,30,37,111,5,5,32,111,193,30,37,111,5,5,34,111,193,30,37,111,5,5,28,111,193,30,37,111,5,5,30,111,193,30,37,111,5,5,36,111,193,30,37,111,5,5,22,111,193,30,37,111,5,5,24,111,193,31,37,111,5,5,6,111,193,31,37,111,5,5,8,111,193,31,37,111,5,5,10,111,193,31,37,111,5,5,12,111,193,31,37,111,5,5,14,111,193,31,37,111,5,5,16,111,193,31,37,111,5,5,18,111,193,31,37,111,5,5,20,111,193,31,37,111,5,5,26,111,193,31,37,111,5,5,32,111,193,31,37,111,5,5,34,111,193,31,37,111,5,5,28,111,193,31,37,111,5,5,30,111,193,31,37,111,5,5,36,111,193,31,37,111,5,5,22,111,193,31,37,111,5,5,24,111,193,32,37,111,5,5,6,111,193,32,37,111,5,5,8,111,193,32,37,111,5,5,10,111,193,32,37,111,5,5,12,111,193,32,37,111,5,5,14,111,193,32,37,111,5,5,16,111,193,32,37,111,5,5,18,111,193,32,37,111,5,5,20,111,193,32,37,111,5,5,26,111,193,32,37,111,5,5,32,111,193,32,37,111,5,5,34,111,193,32,37,111,5,5,28,111,193,32,37,111,5,5,30,111,193,32,37,111,5,5,36,111,193,32,37,111,5,5,22,111,193,32,37,111,5,5,24,111,193,33,37,111,5,5,6,111,193,33,37,111,5,5,8,111,193,33,37,111,5,5,10,111,193,33,37,111,5,5,12,111,193,33,37,111,5,5,14,111,193,33,37,111,5,5,16,111,193,33,37,111,5,5,18,111,193,33,37,111,5,5,20,111,193,33,37,111,5,5,26,111,193,33,37,111,5,5,32,111,193,33,37,111,5,5,34,111,193,33,37,111,5,5,28,111,193,33,37,111,5,5,30,111,193,33,37,111,5,5,36,111,193,33,37,111,5,5,22,111,193,33,37,111,5,5,24,111,193,34,37,111,5,5,6,111,193,34,37,111,5,5,8,111,193,34,37,111,5,5,10,111,193,34,37,111,5,5,12,111,193,34,37,111,5,5,14,111,193,34,37,111,5,5,16,111,193,34,37,111,5,5,18,111,193,34,37,111,5,5,20,111,193,34,37,111,5,5,26,111,193,34,37,111,5,5,32,111,193,34,37,111,5,5,34,111,193,34,37,111,5,5,28,111,193,34,37,111,5,5,30,111,193,34,37,111,5,5,36,111,193,34,37,111,5,5,22,111,193,34,37,111,5,5,24,111,193,40,37,111,5,5,6,111,193,40,37,111,5,5,8,111,193,40,37,111,5,5,10,111,193,40,37,111,5,5,12,111,193,40,37,111,5,5,14,111,193,40,37,111,5,5,16,111,193,40,37,111,5,5,18,111,193,40,37,111,5,5,20,111,193,40,37,111,5,5,26,111,193,40,37,111,5,5,32,111,193,40,37,111,5,5,34,111,193,40,37,111,5,5,28,111,193,40,37,111,5,5,30,111,193,40,37,111,5,5,36,111,193,40,37,111,5,5,22,111,193,40,37,111,5,5,24,111,193,35,37,111,5,5,6,111,193,35,37,111,5,5,8,111,193,35,37,111,5,5,10,111,193,35,37,111,5,5,12,111,193,35,37,111,5,5,14,111,193,35,37,111,5,5,16,111,193,35,37,111,5,5,18,111,193,35,37,111,5,5,20,111,193,35,37,111,5,5,26,111,193,35,37,111,5,5,32,111,193,35,37,111,5,5,34,111,193,35,37,111,5,5,28,111,193,35,37,111,5,5,30,111,193,35,37,111,5,5,36,111,193,35,37,111,5,5,22,111,193,35,37,111,5,5,24,111,193,36,37,111,5,5,6,111,193,36,37,111,5,5,8,111,193,36,37,111,5,5,10,111,193,36,37,111,5,5,12,111,193,36,37,111,5,5,14,111,193,36,37,111,5,5,16,111,193,36,37,111,5,5,18,111,193,36,37,111,5,5,20,111,193,36,37,111,5,5,26,111,193,36,37,111,5,5,32,111,193,36,37,111,5,5,34,111,193,36,37,111,5,5,28,111,193,36,37,111,5,5,30,111,193,36,37,111,5,5,36,111,193,36,37,111,5,5,22,111,193,36,37,111,5,5,24,111,193,37,37,111,5,5,6,111,193,37,37,111,5,5,8,111,193,37,37,111,5,5,10,111,193,37,37,111,5,5,12,111,193,37,37,111,5,5,14,111,193,37,37,111,5,5,16,111,193,37,37,111,5,5,18,111,193,37,37,111,5,5,20,111,193,37,37,111,5,5,26,111,193,37,37,111,5,5,32,111,193,37,37,111,5,5,34,111,193,37,37,111,5,5,28,111,193,37,37,111,5,5,30,111,193,37,37,111,5,5,36,111,193,37,37,111,5,5,22,111,193,37,37,111,5,5,24,111,193,38,37,111,5,5,6,111,193,38,37,111,5,5,8,111,193,38,37,111,5,5,10,111,193,38,37,111,5,5,12,111,193,38,37,111,5,5,14,111,193,38,37,111,5,5,16,111,193,38,37,111,5,5,18,111,193,38,37,111,5,5,20,111,193,38,37,111,5,5,26,111,193,38,37,111,5,5,32,111,193,38,37,111,5,5,34,111,193,38,37,111,5,5,28,111,193,38,37,111,5,5,30,111,193,38,37,111,5,5,36,111,193,38,37,111,5,5,22,111,193,38,37,111,5,5,24,111,193,39,37,111,5,5,6,111,193,39,37,111,5,5,8,111,193,39,37,111,5,5,10,111,193,39,37,111,5,5,12,111,193,39,37,111,5,5,14,111,193,39,37,111,5,5,16,111,193,39,37,111,5,5,18,111,193,39,37,111,5,5,20,111,193,39,37,111,5,5,26,111,193,39,37,111,5,5,32,111,193,39,37,111,5,5,34,111,193,39,37,111,5,5,28,111,193,39,37,111,5,5,30,111,193,39,37,111,5,5,36,111,193,39,37,111,5,5,22,111,193,39,37,111,5,5,24,111,193,41,37,111,5,5,6,111,193,41,37,111,5,5,8,111,193,41,37,111,5,5,10,111,193,41,37,111,5,5,12,111,193,41,37,111,5,5,14,111,193,41,37,111,5,5,16,111,193,41,37,111,5,5,18,111,193,41,37,111,5,5,20,111,193,41,37,111,5,5,26,111,193,41,37,111,5,5,32,111,193,41,37,111,5,5,34,111,193,41,37,111,5,5,28,111,193,41,37,111,5,5,30,111,193,41,37,111,5,5,36,111,193,41,37,111,5,5,22,111,193,41,37,111,5,5,24,111,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,37,111,193,2,24,0,161,12,45,0,167,12,23,0,171,12,12,0,171,12,8,192,197,3,172,12,8,192,197,99,173,12,8,192,197,195,174,12,9,192,197,35,167,12,6,192,197,227,168,12,7,192,197,67,170,12,7,192,197,163,164,12,9,0,164,12,5,192,197,195,165,12,6,192,197,35,166,12,6,192,197,131,161,12,4,192,197,163,162,12,5,192,197,3,163,12,5,192,197,99,155,12,20,0,158,12,9,0,158,12,3,192,197,131,159,12,3,192,197,227,160,12,4,192,197,67,155,12,2,192,197,99,156,12,2,192,197,195,157,12,3,192,197,35,152,12,9,0,152,12,1,192,197,67,153,12,1,192,197,163,154,12,2,192,197,3,149,12,197,163,150,12,0,192,197,131,151,12,0,192,197,227,9,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,12,192,197,194,205,12,255,255,37,111,193,6,226,12,13,192,197,2,227,12,13,192,197,66,199,12,12,192,197,66,200,12,12,192,197,130,202,12,25,0,203,12,12,192,197,2,194,12,25,0,194,12,10,192,197,194,195,12,11,192,197,2,196,12,11,192,197,66,198,12,2,67,197,130,194,12,6,0,213,12,12,192,197,66,214,12,12,192,197,130,48,67,197,194,213,12,12,192,197,2,190,12,9,192,197,194,191,12,6,0,192,12,10,192,197,66,193,12,10,192,197,130,240,66,197,2,213,12,10,192,197,66,13,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,16,192,197,194,205,12,255,255,37,111,193,7,226,12,17,192,197,2,227,12,17,192,197,66,199,12,16,192,197,66,200,12,16,192,197,130,202,12,25,0,203,12,16,192,197,2,194,12,25,0,194,12,14,192,197,194,195,12,15,192,197,2,196,12,15,192,197,66,198,12,2,68,197,130,194,12,6,0,213,12,16,192,197,66,214,12,16,192,197,130,48,68,197,194,213,12,16,192,197,2,190,12,13,192,197,194,191,12,6,0,192,12,14,192,197,66,193,12,14,192,197,130,240,67,197,2,213,12,14,192,197,66,17,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,20,192,197,194,205,12,255,255,37,111,193,8,226,12,21,192,197,2,227,12,21,192,197,66,199,12,20,192,197,66,200,12,20,192,197,130,202,12,25,0,203,12,20,192,197,2,194,12,25,0,194,12,18,192,197,194,195,12,19,192,197,2,196,12,19,192,197,66,198,12,2,69,197,130,194,12,6,0,213,12,20,192,197,66,214,12,20,192,197,130,48,69,197,194,213,12,20,192,197,2,190,12,17,192,197,194,191,12,6,0,192,12,18,192,197,66,193,12,18,192,197,130,240,68,197,2,213,12,18,192,197,66,21,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,24,192,197,194,205,12,255,255,37,111,193,9,226,12,25,192,197,2,227,12,25,192,197,66,199,12,24,192,197,66,200,12,24,192,197,130,202,12,25,0,203,12,24,192,197,2,194,12,25,0,194,12,22,192,197,194,195,12,23,192,197,2,196,12,23,192,197,66,198,12,2,70,197,130,194,12,6,0,213,12,24,192,197,66,214,12,24,192,197,130,48,70,197,194,213,12,24,192,197,2,190,12,21,192,197,194,191,12,6,0,192,12,22,192,197,66,193,12,22,192,197,130,240,69,197,2,213,12,22,192,197,66,25,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,28,192,197,194,205,12,255,255,37,111,193,10,226,12,29,192,197,2,227,12,29,192,197,66,199,12,28,192,197,66,200,12,28,192,197,130,202,12,25,0,203,12,28,192,197,2,194,12,25,0,194,12,26,192,197,194,195,12,27,192,197,2,196,12,27,192,197,66,198,12,2,71,197,130,194,12,6,0,213,12,28,192,197,66,214,12,28,192,197,130,48,71,197,194,213,12,28,192,197,2,190,12,25,192,197,194,191,12,6,0,192,12,26,192,197,66,193,12,26,192,197,130,240,70,197,2,213,12,26,192,197,66,29,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,32,192,197,194,205,12,255,255,37,111,193,11,226,12,33,192,197,2,227,12,33,192,197,66,199,12,32,192,197,66,200,12,32,192,197,130,202,12,25,0,203,12,32,192,197,2,194,12,25,0,194,12,30,192,197,194,195,12,31,192,197,2,196,12,31,192,197,66,198,12,2,72,197,130,194,12,6,0,213,12,32,192,197,66,214,12,32,192,197,130,48,72,197,194,213,12,32,192,197,2,190,12,29,192,197,194,191,12,6,0,192,12,30,192,197,66,193,12,30,192,197,130,240,71,197,2,213,12,30,192,197,66,33,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,36,192,197,194,205,12,255,255,37,111,193,12,226,12,37,192,197,2,227,12,37,192,197,66,199,12,36,192,197,66,200,12,36,192,197,130,202,12,25,0,203,12,36,192,197,2,194,12,25,0,194,12,34,192,197,194,195,12,35,192,197,2,196,12,35,192,197,66,198,12,2,73,197,130,194,12,6,0,213,12,36,192,197,66,214,12,36,192,197,130,48,73,197,194,213,12,36,192,197,2,190,12,33,192,197,194,191,12,6,0,192,12,34,192,197,66,193,12,34,192,197,130,240,72,197,2,213,12,34,192,197,66,37,0,197,130,16,0,198,12,47,0,203,12,16,0,203,12,44,192,197,2,204,12,44,192,197,194,205,12,255,255,37,111,193,13,226,12,45,192,197,2,227,12,45,192,197,66,198,12,12,0,199,12,44,192,197,66,200,12,44,192,197,130,202,12,48,75,197,194,213,12,44,192,197,2,2,75,197,130,194,12,6,0,213,12,44,192,197,66,214,12,44,192,197,130,48,75,197,194,213,12,44,192,197,2,193,12,12,0,193,12,42,192,197,130,194,12,42,192,197,194,195,12,43,192,197,2,196,12,43,192,197,66,188,12,8,0,190,12,41,192,197,194,191,12,77,0,192,12,42,192,197,66,142,73,197,194,198,12,43,0,203,12,12,0,203,12,40,192,197,66,204,12,41,192,197,2,226,12,41,192,197,66,227,12,41,192,197,130,198,12,12,0,199,12,40,192,197,130,200,12,40,192,197,194,202,12,112,74,197,2,213,12,40,192,197,66,2,74,197,194,194,12,6,0,213,12,40,192,197,130,214,12,40,192,197,194,112,74,197,2,213,12,40,192,197,66,193,12,12,0,193,12,38,192,197,194,194,12,39,192,197,2,195,12,39,192,197,66,196,12,39,192,197,130,190,12,38,192,197,2,191,12,3,0,192,12,38,192,197,130,240,73,197,66,213,12,38,192,197,130,240,74,197,2,213,12,42,192,197,66,45,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,48,192,197,194,205,12,255,255,37,111,193,14,226,12,49,192,197,2,227,12,49,192,197,66,199,12,48,192,197,66,200,12,48,192,197,130,202,12,25,0,203,12,48,192,197,2,194,12,25,0,194,12,46,192,197,194,195,12,47,192,197,2,196,12,47,192,197,66,198,12,2,76,197,130,194,12,6,0,213,12,48,192,197,66,214,12,48,192,197,130,48,76,197,194,213,12,48,192,197,2,190,12,45,192,197,194,191,12,6,0,192,12,46,192,197,66,193,12,46,192,197,130,240,75,197,2,213,12,46,192,197,66,49,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,52,192,197,194,205,12,255,255,37,111,193,15,226,12,53,192,197,2,227,12,53,192,197,66,199,12,52,192,197,66,200,12,52,192,197,130,202,12,25,0,203,12,52,192,197,2,194,12,25,0,194,12,50,192,197,194,195,12,51,192,197,2,196,12,51,192,197,66,198,12,2,77,197,130,194,12,6,0,213,12,52,192,197,66,214,12,52,192,197,130,48,77,197,194,213,12,52,192,197,2,190,12,49,192,197,194,191,12,6,0,192,12,50,192,197,66,193,12,50,192,197,130,240,76,197,2,213,12,50,192,197,66,53,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,56,192,197,194,205,12,255,255,37,111,193,16,226,12,57,192,197,2,227,12,57,192,197,66,199,12,56,192,197,66,200,12,56,192,197,130,202,12,25,0,203,12,56,192,197,2,194,12,25,0,194,12,54,192,197,194,195,12,55,192,197,2,196,12,55,192,197,66,198,12,2,78,197,130,194,12,6,0,213,12,56,192,197,66,214,12,56,192,197,130,48,78,197,194,213,12,56,192,197,2,190,12,53,192,197,194,191,12,6,0,192,12,54,192,197,66,193,12,54,192,197,130,240,77,197,2,213,12,54,192,197,66,57,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,60,192,197,194,205,12,255,255,37,111,193,17,226,12,61,192,197,2,227,12,61,192,197,66,199,12,60,192,197,66,200,12,60,192,197,130,202,12,25,0,203,12,60,192,197,2,194,12,25,0,194,12,58,192,197,194,195,12,59,192,197,2,196,12,59,192,197,66,198,12,2,79,197,130,194,12,6,0,213,12,60,192,197,66,214,12,60,192,197,130,48,79,197,194,213,12,60,192,197,2,190,12,57,192,197,194,191,12,6,0,192,12,58,192,197,66,193,12,58,192,197,130,240,78,197,2,213,12,58,192,197,66,61,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,64,192,197,194,205,12,255,255,37,111,193,18,226,12,65,192,197,2,227,12,65,192,197,66,199,12,64,192,197,66,200,12,64,192,197,130,202,12,25,0,203,12,64,192,197,2,194,12,25,0,194,12,62,192,197,194,195,12,63,192,197,2,196,12,63,192,197,66,198,12,2,80,197,130,194,12,6,0,213,12,64,192,197,66,214,12,64,192,197,130,48,80,197,194,213,12,64,192,197,2,190,12,61,192,197,194,191,12,6,0,192,12,62,192,197,66,193,12,62,192,197,130,240,79,197,2,213,12,62,192,197,66,65,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,68,192,197,194,205,12,255,255,37,111,193,19,226,12,69,192,197,2,227,12,69,192,197,66,199,12,68,192,197,66,200,12,68,192,197,130,202,12,25,0,203,12,68,192,197,2,194,12,25,0,194,12,66,192,197,194,195,12,67,192,197,2,196,12,67,192,197,66,198,12,2,81,197,130,194,12,6,0,213,12,68,192,197,66,214,12,68,192,197,130,48,81,197,194,213,12,68,192,197,2,190,12,65,192,197,194,191,12,6,0,192,12,66,192,197,66,193,12,66,192,197,130,240,80,197,2,213,12,66,192,197,66,69,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,72,192,197,194,205,12,255,255,37,111,193,20,226,12,73,192,197,2,227,12,73,192,197,66,199,12,72,192,197,66,200,12,72,192,197,130,202,12,25,0,203,12,72,192,197,2,194,12,25,0,194,12,70,192,197,194,195,12,71,192,197,2,196,12,71,192,197,66,198,12,2,82,197,130,194,12,6,0,213,12,72,192,197,66,214,12,72,192,197,130,48,82,197,194,213,12,72,192,197,2,190,12,69,192,197,194,191,12,6,0,192,12,70,192,197,66,193,12,70,192,197,130,240,81,197,2,213,12,70,192,197,66,73,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,76,192,197,194,205,12,255,255,37,111,193,21,226,12,77,192,197,2,227,12,77,192,197,66,199,12,76,192,197,66,200,12,76,192,197,130,202,12,25,0,203,12,76,192,197,2,194,12,25,0,194,12,74,192,197,194,195,12,75,192,197,2,196,12,75,192,197,66,198,12,2,83,197,130,194,12,6,0,213,12,76,192,197,66,214,12,76,192,197,130,48,83,197,194,213,12,76,192,197,2,190,12,73,192,197,194,191,12,6,0,192,12,74,192,197,66,193,12,74,192,197,130,240,82,197,2,213,12,74,192,197,66,77,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,80,192,197,194,205,12,255,255,37,111,193,22,226,12,81,192,197,2,227,12,81,192,197,66,199,12,80,192,197,66,200,12,80,192,197,130,202,12,25,0,203,12,80,192,197,2,194,12,25,0,194,12,78,192,197,194,195,12,79,192,197,2,196,12,79,192,197,66,198,12,2,84,197,130,194,12,6,0,213,12,80,192,197,66,214,12,80,192,197,130,48,84,197,194,213,12,80,192,197,2,190,12,77,192,197,194,191,12,6,0,192,12,78,192,197,66,193,12,78,192,197,130,240,83,197,2,213,12,78,192,197,66,81,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,84,192,197,194,205,12,255,255,37,111,193,23,226,12,85,192,197,2,227,12,85,192,197,66,199,12,84,192,197,66,200,12,84,192,197,130,202,12,25,0,203,12,84,192,197,2,194,12,25,0,194,12,82,192,197,194,195,12,83,192,197,2,196,12,83,192,197,66,198,12,2,85,197,130,194,12,6,0,213,12,84,192,197,66,214,12,84,192,197,130,48,85,197,194,213,12,84,192,197,2,190,12,81,192,197,194,191,12,6,0,192,12,82,192,197,66,193,12,82,192,197,130,240,84,197,2,213,12,82,192,197,66,85,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,88,192,197,194,205,12,255,255,37,111,193,24,226,12,89,192,197,2,227,12,89,192,197,66,199,12,88,192,197,66,200,12,88,192,197,130,202,12,25,0,203,12,88,192,197,2,194,12,25,0,194,12,86,192,197,194,195,12,87,192,197,2,196,12,87,192,197,66,198,12,2,86,197,130,194,12,6,0,213,12,88,192,197,66,214,12,88,192,197,130,48,86,197,194,213,12,88,192,197,2,190,12,85,192,197,194,191,12,6,0,192,12,86,192,197,66,193,12,86,192,197,130,240,85,197,2,213,12,86,192,197,66,89,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,92,192,197,194,205,12,255,255,37,111,193,25,226,12,93,192,197,2,227,12,93,192,197,66,199,12,92,192,197,66,200,12,92,192,197,130,202,12,25,0,203,12,92,192,197,2,194,12,25,0,194,12,90,192,197,194,195,12,91,192,197,2,196,12,91,192,197,66,198,12,2,87,197,130,194,12,6,0,213,12,92,192,197,66,214,12,92,192,197,130,48,87,197,194,213,12,92,192,197,2,190,12,89,192,197,194,191,12,6,0,192,12,90,192,197,66,193,12,90,192,197,130,240,86,197,2,213,12,90,192,197,66,93,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,96,192,197,194,205,12,255,255,37,111,193,26,226,12,97,192,197,2,227,12,97,192,197,66,199,12,96,192,197,66,200,12,96,192,197,130,202,12,25,0,203,12,96,192,197,2,194,12,25,0,194,12,94,192,197,194,195,12,95,192,197,2,196,12,95,192,197,66,198,12,2,88,197,130,194,12,6,0,213,12,96,192,197,66,214,12,96,192,197,130,48,88,197,194,213,12,96,192,197,2,190,12,93,192,197,194,191,12,6,0,192,12,94,192,197,66,193,12,94,192,197,130,240,87,197,2,213,12,94,192,197,66,97,0,197,130,16,0,198,12,47,0,203,12,16,0,203,12,104,192,197,2,204,12,104,192,197,194,205,12,255,255,37,111,193,27,226,12,105,192,197,2,227,12,105,192,197,66,198,12,12,0,199,12,104,192,197,66,200,12,104,192,197,130,202,12,48,90,197,194,213,12,104,192,197,2,2,90,197,130,194,12,6,0,213,12,104,192,197,66,214,12,104,192,197,130,48,90,197,194,213,12,104,192,197,2,193,12,12,0,193,12,102,192,197,130,194,12,102,192,197,194,195,12,103,192,197,2,196,12,103,192,197,66,188,12,8,0,190,12,101,192,197,194,191,12,77,0,192,12,102,192,197,66,142,88,197,194,198,12,43,0,203,12,12,0,203,12,100,192,197,66,204,12,101,192,197,2,226,12,101,192,197,66,227,12,101,192,197,130,198,12,12,0,199,12,100,192,197,130,200,12,100,192,197,194,202,12,112,89,197,2,213,12,100,192,197,66,2,89,197,194,194,12,6,0,213,12,100,192,197,130,214,12,100,192,197,194,112,89,197,2,213,12,100,192,197,66,193,12,12,0,193,12,98,192,197,194,194,12,99,192,197,2,195,12,99,192,197,66,196,12,99,192,197,130,190,12,98,192,197,2,191,12,3,0,192,12,98,192,197,130,240,88,197,66,213,12,98,192,197,130,240,89,197,2,213,12,102,192,197,66,105,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,108,192,197,194,205,12,255,255,37,111,193,28,226,12,109,192,197,2,227,12,109,192,197,66,199,12,108,192,197,66,200,12,108,192,197,130,202,12,25,0,203,12,108,192,197,2,194,12,25,0,194,12,106,192,197,194,195,12,107,192,197,2,196,12,107,192,197,66,198,12,2,91,197,130,194,12,6,0,213,12,108,192,197,66,214,12,108,192,197,130,48,91,197,194,213,12,108,192,197,2,190,12,105,192,197,194,191,12,6,0,192,12,106,192,197,66,193,12,106,192,197,130,240,90,197,2,213,12,106,192,197,66,109,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,112,192,197,194,205,12,255,255,37,111,193,29,226,12,113,192,197,2,227,12,113,192,197,66,199,12,112,192,197,66,200,12,112,192,197,130,202,12,25,0,203,12,112,192,197,2,194,12,25,0,194,12,110,192,197,194,195,12,111,192,197,2,196,12,111,192,197,66,198,12,2,92,197,130,194,12,6,0,213,12,112,192,197,66,214,12,112,192,197,130,48,92,197,194,213,12,112,192,197,2,190,12,109,192,197,194,191,12,6,0,192,12,110,192,197,66,193,12,110,192,197,130,240,91,197,2,213,12,110,192,197,66,113,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,116,192,197,194,205,12,255,255,37,111,193,30,226,12,117,192,197,2,227,12,117,192,197,66,199,12,116,192,197,66,200,12,116,192,197,130,202,12,25,0,203,12,116,192,197,2,194,12,25,0,194,12,114,192,197,194,195,12,115,192,197,2,196,12,115,192,197,66,198,12,2,93,197,130,194,12,6,0,213,12,116,192,197,66,214,12,116,192,197,130,48,93,197,194,213,12,116,192,197,2,190,12,113,192,197,194,191,12,6,0,192,12,114,192,197,66,193,12,114,192,197,130,240,92,197,2,213,12,114,192,197,66,117,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,120,192,197,194,205,12,255,255,37,111,193,31,226,12,121,192,197,2,227,12,121,192,197,66,199,12,120,192,197,66,200,12,120,192,197,130,202,12,25,0,203,12,120,192,197,2,194,12,25,0,194,12,118,192,197,194,195,12,119,192,197,2,196,12,119,192,197,66,198,12,2,94,197,130,194,12,6,0,213,12,120,192,197,66,214,12,120,192,197,130,48,94,197,194,213,12,120,192,197,2,190,12,117,192,197,194,191,12,6,0,192,12,118,192,197,66,193,12,118,192,197,130,240,93,197,2,213,12,118,192,197,66,121,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,124,192,197,194,205,12,255,255,37,111,193,32,226,12,125,192,197,2,227,12,125,192,197,66,199,12,124,192,197,66,200,12,124,192,197,130,202,12,25,0,203,12,124,192,197,2,194,12,25,0,194,12,122,192,197,194,195,12,123,192,197,2,196,12,123,192,197,66,198,12,2,95,197,130,194,12,6,0,213,12,124,192,197,66,214,12,124,192,197,130,48,95,197,194,213,12,124,192,197,2,190,12,121,192,197,194,191,12,6,0,192,12,122,192,197,66,193,12,122,192,197,130,240,94,197,2,213,12,122,192,197,66,125,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,128,192,197,194,205,12,255,255,37,111,193,33,226,12,129,192,197,2,227,12,129,192,197,66,199,12,128,192,197,66,200,12,128,192,197,130,202,12,25,0,203,12,128,192,197,2,194,12,25,0,194,12,126,192,197,194,195,12,127,192,197,2,196,12,127,192,197,66,198,12,2,96,197,130,194,12,6,0,213,12,128,192,197,66,214,12,128,192,197,130,48,96,197,194,213,12,128,192,197,2,190,12,125,192,197,194,191,12,6,0,192,12,126,192,197,66,193,12,126,192,197,130,240,95,197,2,213,12,126,192,197,66,129,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,132,192,197,194,205,12,255,255,37,111,193,34,226,12,133,192,197,2,227,12,133,192,197,66,199,12,132,192,197,66,200,12,132,192,197,130,202,12,25,0,203,12,132,192,197,2,194,12,25,0,194,12,130,192,197,194,195,12,131,192,197,2,196,12,131,192,197,66,198,12,2,97,197,130,194,12,6,0,213,12,132,192,197,66,214,12,132,192,197,130,48,97,197,194,213,12,132,192,197,2,190,12,129,192,197,194,191,12,6,0,192,12,130,192,197,66,193,12,130,192,197,130,240,96,197,2,213,12,130,192,197,66,133,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,136,192,197,194,205,12,255,255,37,111,193,40,226,12,137,192,197,2,227,12,137,192,197,66,199,12,136,192,197,66,200,12,136,192,197,130,202,12,25,0,203,12,136,192,197,2,194,12,25,0,194,12,134,192,197,194,195,12,135,192,197,2,196,12,135,192,197,66,198,12,2,98,197,130,194,12,6,0,213,12,136,192,197,66,214,12,136,192,197,130,48,98,197,194,213,12,136,192,197,2,190,12,133,192,197,194,191,12,6,0,192,12,134,192,197,66,193,12,134,192,197,130,240,97,197,2,213,12,134,192,197,66,137,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,140,192,197,194,205,12,255,255,37,111,193,35,226,12,141,192,197,2,227,12,141,192,197,66,199,12,140,192,197,66,200,12,140,192,197,130,202,12,25,0,203,12,140,192,197,2,194,12,25,0,194,12,138,192,197,194,195,12,139,192,197,2,196,12,139,192,197,66,198,12,2,99,197,130,194,12,6,0,213,12,140,192,197,66,214,12,140,192,197,130,48,99,197,194,213,12,140,192,197,2,190,12,137,192,197,194,191,12,6,0,192,12,138,192,197,66,193,12,138,192,197,130,240,98,197,2,213,12,138,192,197,66,141,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,144,192,197,194,205,12,255,255,37,111,193,36,226,12,145,192,197,2,227,12,145,192,197,66,199,12,144,192,197,66,200,12,144,192,197,130,202,12,25,0,203,12,144,192,197,2,194,12,25,0,194,12,142,192,197,194,195,12,143,192,197,2,196,12,143,192,197,66,198,12,2,100,197,130,194,12,6,0,213,12,144,192,197,66,214,12,144,192,197,130,48,100,197,194,213,12,144,192,197,2,190,12,141,192,197,194,191,12,6,0,192,12,142,192,197,66,193,12,142,192,197,130,240,99,197,2,213,12,142,192,197,66,145,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,148,192,197,194,205,12,255,255,37,111,193,37,226,12,149,192,197,2,227,12,149,192,197,66,199,12,148,192,197,66,200,12,148,192,197,130,202,12,25,0,203,12,148,192,197,2,194,12,25,0,194,12,146,192,197,194,195,12,147,192,197,2,196,12,147,192,197,66,198,12,2,101,197,130,194,12,6,0,213,12,148,192,197,66,214,12,148,192,197,130,48,101,197,194,213,12,148,192,197,2,190,12,145,192,197,194,191,12,6,0,192,12,146,192,197,66,193,12,146,192,197,130,240,100,197,2,213,12,146,192,197,66,149,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,152,192,197,194,205,12,255,255,37,111,193,38,226,12,153,192,197,2,227,12,153,192,197,66,199,12,152,192,197,66,200,12,152,192,197,130,202,12,25,0,203,12,152,192,197,2,194,12,25,0,194,12,150,192,197,194,195,12,151,192,197,2,196,12,151,192,197,66,198,12,2,102,197,130,194,12,6,0,213,12,152,192,197,66,214,12,152,192,197,130,48,102,197,194,213,12,152,192,197,2,190,12,149,192,197,194,191,12,6,0,192,12,150,192,197,66,193,12,150,192,197,130,240,101,197,2,213,12,150,192,197,66,153,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,156,192,197,194,205,12,255,255,37,111,193,39,226,12,157,192,197,2,227,12,157,192,197,66,199,12,156,192,197,66,200,12,156,192,197,130,202,12,25,0,203,12,156,192,197,2,194,12,25,0,194,12,154,192,197,194,195,12,155,192,197,2,196,12,155,192,197,66,198,12,2,103,197,130,194,12,6,0,213,12,156,192,197,66,214,12,156,192,197,130,48,103,197,194,213,12,156,192,197,2,190,12,153,192,197,194,191,12,6,0,192,12,154,192,197,66,193,12,154,192,197,130,240,102,197,2,213,12,154,192,197,66,157,0,197,130,15,0,199,12,26,0,204,12,13,0,204,12,160,192,197,194,205,12,255,255,37,111,193,41,226,12,161,192,197,2,227,12,161,192,197,66,199,12,160,192,197,66,200,12,160,192,197,130,202,12,25,0,203,12,160,192,197,2,194,12,25,0,194,12,158,192,197,194,195,12,159,192,197,2,196,12,159,192,197,66,198,12,2,104,197,130,194,12,6,0,213,12,160,192,197,66,214,12,160,192,197,130,48,104,197,194,213,12,160,192,197,2,190,12,157,192,197,194,191,12,6,0,192,12,158,192,197,66,193,12,158,192,197,130,240,103,197,2,213,12,158,192,197,66,14,0,150,12,169,12,170,12,175,12,190,12,194,12,195,12,197,12,198,12,201,12,202,12,205,12,226,12,228,12,3,0,69,0,52,0,61,0,235,15,0,16,93,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,228,15,0,32,108,33,0,32,1,0,32,0,113,33,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,221,26,1,32,7,0,0,0,27,0,0,0,223,26,1,0,223,26,1,0,4,0,0,0,0,0,0,0,73,27,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,101,97,114,99,104,106,108,0,115,116,97,110,100,97,114,100,0,117,110,105,104,97,110,0,170,0,0,52,0,50,0,0,0,51,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,117,0,110,0,105,0,104,0,97,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,103,0,32,0,72,0,97,0,110,0,105,0,93,0,0,0,237,221,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,64,14,45,0,68,14,32,0,192,14,45,0,196,14,32,0,181,170,32,0,182,170,32,0,185,170,32,0,187,170,32,0,188,170,181,25,45,0,183,25,186,25,93,0,93,0,38,0,39,6,60,0,60,0,60,0,142,254,60,0,60,0,60,0,141,254,60,0,60,0,34,6,60,0,60,0,60,0,130,254,60,0,60,0,60,0,129,254,60,0,60,0,35,6,60,0,60,0,60,0,132,254,60,0,60,0,60,0,131,254,60,0,60,0,37,6,60,0,60,0,60,0,136,254,60,0,60,0,60,0,135,254,38,0,72,6,60,0,60,0,60,0,229,6,60,0,60,0,60,0,238,254,60,0,60,0,60,0,237,254,60,0,60,0,36,6,60,0,60,0,60,0,134,254,60,0,60,0,60,0,133,254,38,0,74,6,60,0,60,0,60,0,230,6,60,0,60,0,60,0,243,254,60,0,60,0,60,0,244,254,60,0,60,0,60,0,242,254,60,0,60,0,60,0,241,254,60,0,60,0,38,6,60,0,60,0,60,0,139,254,60,0,60,0,60,0,140,254,60,0,60,0,60,0,138,254,60,0,60,0,60,0,137,254,60,0,60,0,73,6,60,0,60,0,60,0,232,251,60,0,60,0,60,0,233,251,60,0,60,0,60,0,240,254,60,0,60,0,60,0,239,254,38,0,71,6,60,0,60,0,60,0,235,254,60,0,60,0,60,0,236,254,60,0,60,0,60,0,234,254,60,0,60,0,60,0,233,254,60,0,60,0,41,6,60,0,60,0,60,0,148,254,60,0,60,0,60,0,147,254,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,243,5,60,0,60,0,244,5,60,0,60,0,64,6,60,0,60,0,58,14,60,0,60,0,97,17,60,0,60,0,98,17,60,0,60,0,99,17,60,0,60,0,100,17,60,0,60,0,101,17,60,0,60,0,102,17,60,0,60,0,103,17,60,0,60,0,104,17,60,0,60,0,105,17,60,0,60,0,106,17,60,0,60,0,107,17,60,0,60,0,108,17,60,0,60,0,109,17,60,0,60,0,110,17,60,0,60,0,111,17,60,0,60,0,112,17,60,0,60,0,113,17,60,0,60,0,114,17,60,0,60,0,115,17,60,0,60,0,116,17,60,0,60,0,117,17,60,0,60,0,168,17,60,0,60,0,169,17,60,0,60,0,170,17,60,0,60,0,171,17,60,0,60,0,172,17,60,0,60,0,173,17,60,0,60,0,174,17,60,0,60,0,175,17,60,0,60,0,176,17,60,0,60,0,177,17,60,0,60,0,178,17,60,0,60,0,179,17,60,0,60,0,180,17,60,0,60,0,181,17,60,0,60,0,182,17,60,0,60,0,183,17,60,0,60,0,184,17,60,0,60,0,185,17,60,0,60,0,186,17,60,0,60,0,187,17,60,0,60,0,188,17,60,0,60,0,189,17,60,0,60,0,190,17,60,0,60,0,191,17,60,0,60,0,192,17,60,0,60,0,193,17,60,0,60,0,194,17,38,0,91,0,102,0,105,0,114,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,0,17,124,0,0,17,61,0,3,17,124,0,3,17,61,0,7,17,124,0,7,17,61,0,9,17,124,0,9,17,61,0,12,17,124,0,12,17,38,0,0,17,0,17,61,0,1,17,60,0,60,0,60,0,50,49,38,0,3,17,3,17,61,0,4,17,60,0,60,0,60,0,56,49,38,0,7,17,7,17,61,0,8,17,60,0,60,0,60,0,67,49,38,0,9,17,9,17,61,0,10,17,60,0,60,0,60,0,70,49,38,0,12,17,12,17,61,0,13,17,60,0,60,0,60,0,73,49,0,0,14,223,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,0,17,2,17,61,0,250,17,38,0,0,17,3,17,61,0,90,17,38,0,0,17,5,17,61,0,195,17,38,0,0,17,7,17,61,0,251,17,38,0,0,17,9,17,0,17,61,0,196,17,38,0,0,17,14,17,61,0,252,17,38,0,0,17,15,17,61,0,253,17,38,0,0,17,18,17,61,0,254,17,38,0,2,17,0,17,61,0,19,17,61,0,197,17,38,0,2,17,2,17,61,0,20,17,61,0,255,17,38,0,2,17,3,17,61,0,21,17,61,0,198,17,38,0,2,17,7,17,61,0,22,17,38,0,2,17,9,17,61,0,91,17,61,0,199,17,38,0,2,17,12,17,61,0,92,17,38,0,2,17,16,17,61,0,201,17,38,0,2,17,18,17,61,0,93,17,38,0,3,17,0,17,61,0,23,17,61,0,202,17,38,0,3,17,5,17,61,0,94,17,61,0,203,17,38,0,5,17,0,17,9,17,61,0,204,17,38,0,5,17,2,17,61,0,24,17,61,0,205,17,38,0,5,17,3,17,61,0,206,17,38,0,5,17,3,17,18,17,61,0,207,17,38,0,5,17,5,17,61,0,25,17,61,0,208,17,38,0,5,17,6,17,0,17,61,0,209,17,38,0,5,17,6,17,9,17,61,0,210,17,38,0,5,17,7,17,9,17,61,0,211,17,38,0,5,17,7,17,11,17,61,0,213,17,38,0,5,17,7,17,18,17,61,0,212,17,38,0,5,17,9,17,9,17,61,0,214,17,38,0,5,17,11,17,61,0,27,17,38,0,5,17,15,17,61,0,216,17,38,0,5,17,18,17,61,0,26,17,38,0,6,17,0,17,61,0,218,17,38,0,6,17,5,17,61,0,219,17,38,0,6,17,7,17,61,0,28,17,61,0,220,17,38,0,6,17,9,17,61,0,221,17,38,0,6,17,9,17,9,17,61,0,222,17,38,0,6,17,11,17,61,0,29,17,61,0,226,17,38,0,6,17,14,17,61,0,224,17,38,0,6,17,18,17,61,0,225,17,38,0,7,17,0,17,61,0,30,17,38,0,7,17,2,17,61,0,31,17,38,0,7,17,3,17,61,0,32,17,38,0,7,17,5,17,61,0,227,17,38,0,7,17,7,17,11,17,61,0,44,17,38,0,7,17,9,17,61,0,33,17,38,0,7,17,9,17,0,17,61,0,34,17,38,0,7,17,9,17,3,17,61,0,35,17,38,0,7,17,9,17,7,17,61,0,36,17,38,0,7,17,9,17,9,17,61,0,37,17,38,0,7,17,9,17,12,17,61,0,38,17,38,0,7,17,11,17,61,0,43,17,61,0,230,17,38,0,7,17,12,17,61,0,39,17,38,0,7,17,14,17,61,0,40,17,38,0,7,17,16,17,61,0,41,17,38,0,7,17,17,17,61,0,42,17,61,0,228,17,38,0,7,17,18,17,61,0,229,17,38,0,9,17,0,17,61,0,45,17,61,0,231,17,38,0,9,17,2,17,61,0,46,17,38,0,9,17,3,17,61,0,47,17,61,0,232,17,38,0,9,17,5,17,61,0,48,17,61,0,233,17,38,0,9,17,6,17,61,0,49,17,38,0,9,17,7,17,61,0,50,17,61,0,234,17,38,0,9,17,7,17,0,17,61,0,51,17,38,0,9,17,9,17,9,17,61,0,52,17,38,0,9,17,11,17,61,0,53,17,38,0,9,17,12,17,61,0,54,17,38,0,9,17,14,17,61,0,55,17,38,0,9,17,15,17,61,0,56,17,38,0,9,17,16,17,61,0,57,17,38,0,9,17,17,17,61,0,58,17,38,0,9,17,18,17,61,0,59,17,38,0,11,17,0,17,61,0,65,17,61,0,236,17,38,0,11,17,0,17,0,17,61,0,237,17,38,0,11,17,3,17,61,0,66,17,38,0,11,17,6,17,61,0,67,17,38,0,11,17,7,17,61,0,68,17,38,0,11,17,9,17,61,0,69,17,38,0,11,17,11,17,61,0,71,17,61,0,238,17,38,0,11,17,12,17,61,0,72,17,38,0,11,17,14,17,61,0,73,17,38,0,11,17,15,17,61,0,239,17,38,0,11,17,16,17,61,0,74,17,38,0,11,17,17,17,61,0,75,17,38,0,12,17,11,17,61,0,77,17,38,0,14,17,15,17,61,0,82,17,38,0,14,17,18,17,61,0,83,17,38,0,17,17,7,17,61,0,86,17,61,0,243,17,38,0,17,17,11,17,61,0,87,17,61,0,244,17,38,0,18,17,2,17,61,0,245,17,38,0,18,17,5,17,61,0,246,17,38,0,18,17,6,17,61,0,247,17,38,0,18,17,7,17,61,0,248,17,38,0,18,17,18,17,61,0,88,17,38,0,97,17,105,17,61,0,118,17,38,0,97,17,110,17,61,0,119,17,38,0,99,17,105,17,61,0,120,17,38,0,99,17,109,17,61,0,121,17,38,0,101,17,105,17,61,0,122,17,38,0,101,17,110,17,61,0,123,17,38,0,101,17,115,17,61,0,124,17,38,0,103,17,105,17,61,0,125,17,38,0,103,17,110,17,61,0,126,17,38,0,105,17,101,17,61,0,127,17,38,0,105,17,101,17,117,17,61,0,128,17,38,0,105,17,103,17,117,17,61,0,129,17,38,0,105,17,105,17,61,0,130,17,38,0,105,17,110,17,61,0,131,17,38,0,109,17,99,17,61,0,132,17,38,0,109,17,99,17,117,17,61,0,133,17,38,0,109,17,103,17,61,0,134,17,38,0,109,17,105,17,61,0,135,17,38,0,109,17,117,17,61,0,136,17,38,0,110,17,97,17,61,0,137,17,38,0,110,17,97,17,117,17,61,0,138,17,38,0,110,17,101,17,115,17,61,0,139,17,38,0,110,17,103,17,117,17,61,0,140,17,38,0,110,17,110,17,61,0,141,17,38,0,114,17,97,17,61,0,142,17,38,0,114,17,101,17,61,0,143,17,38,0,114,17,101,17,117,17,61,0,144,17,38,0,114,17,103,17,61,0,145,17,38,0,114,17,103,17,117,17,61,0,146,17,38,0,114,17,110,17,61,0,147,17,38,0,114,17,117,17,61,0,148,17,38,0,115,17,110,17,61,0,149,17,38,0,115,17,115,17,61,0,150,17,38,0,116,17,110,17,61,0,151,17,38,0,117,17,97,17,61,0,152,17,38,0,117,17,99,17,61,0,153,17,38,0,117,17,105,17,61,0,154,17,38,0,117,17,110,17,61,0,155,17,38,0,117,17,115,17,61,0,156,17,38,0,97,17,115,17,61,0,163,17,38,0,99,17,110,17,61,0,164,17,38,0,103,17,99,17,61,0,165,17,38,0,105,17,99,17,61,0,166,17,38,0,105,17,99,17,117,17,61,0,167,17,0,0,239,223,33,49,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,103,0,32,0,72,0,97,0,110,0,105,0,93,0,91,0,111,0,112,0,116,0,105,0,109,0,105,0,122,0,101,0,32,0,91,0,0,172,45,0,1,172,4,172,7,172,45,0,10,172,16,172,45,0,23,172,25,172,45,0,29,172,32,172,36,172,44,172,45,0,45,172,47,172,45,0,49,172,56,172,45,0,57,172,60,172,64,172,75,172,77,172,84,172,88,172,92,172,112,172,45,0,113,172,116,172,119,172,45,0,120,172,122,172,128,172,45,0,129,172,131,172,45,0,134,172,137,172,45,0,140,172,144,172,148,172,156,172,45,0,157,172,159,172,45,0,161,172,168,172,45,0,170,172,172,172,175,172,45,0,176,172,184,172,45,0,185,172,187,172,45,0,189,172,193,172,196,172,200,172,204,172,213,172,215,172,224,172,45,0,225,172,228,172,231,172,45,0,232,172,234,172,236,172,239,172,45,0,241,172,243,172,245,172,45,0,246,172,252,172,45,0,253,172,0,173,4,173,6,173,12,173,45,0,13,173,15,173,17,173,24,173,28,173,32,173,41,173,44,173,45,0,45,173,52,173,45,0,53,173,56,173,60,173,68,173,45,0,69,173,71,173,73,173,80,173,84,173,88,173,97,173,99,173,108,173,45,0,109,173,112,173,115,173,45,0,118,173,123,173,45,0,125,173,127,173,129,173,45,0,130,173,136,173,45,0,137,173,140,173,144,173,156,173,45,0,157,173,164,173,183,173,192,173,45,0,193,173,196,173,200,173,208,173,45,0,209,173,211,173,220,173,224,173,228,173,248,173,45,0,249,173,252,173,255,173,45,0,1,174,8,174,45,0,9,174,11,174,13,174,20,174,48,174,45,0,49,174,52,174,55,174,45,0,56,174,58,174,64,174,45,0,65,174,67,174,69,174,45,0,70,174,74,174,76,174,45,0,78,174,80,174,84,174,86,174,92,174,45,0,93,174,95,174,45,0,97,174,101,174,104,174,45,0,105,174,108,174,112,174,120,174,45,0,121,174,123,174,45,0,125,174,132,174,45,0,133,174,140,174,188,174,45,0,190,174,192,174,196,174,204,174,45,0,205,174,207,174,45,0,209,174,216,174,45,0,217,174,220,174,232,174,235,174,237,174,244,174,248,174,252,174,7,175,45,0,8,175,13,175,16,175,44,175,45,0,45,175,48,175,50,175,52,175,60,175,45,0,61,175,63,175,65,175,45,0,67,175,72,175,45,0,73,175,80,175,92,175,45,0,93,175,100,175,45,0,101,175,121,175,128,175,132,175,136,175,144,175,45,0,145,175,149,175,156,175,184,175,45,0,185,175,188,175,192,175,199,175,45,0,201,175,203,175,205,175,45,0,206,175,212,175,220,175,232,175,45,0,233,175,240,175,45,0,241,175,244,175,248,175,0,176,45,0,1,176,4,176,12,176,16,176,20,176,28,176,45,0,29,176,40,176,68,176,45,0,69,176,72,176,74,176,76,176,78,176,83,176,45,0,85,176,87,176,89,176,93,176,124,176,45,0,125,176,128,176,132,176,140,176,45,0,141,176,143,176,145,176,152,176,45,0,154,176,156,176,159,176,45,0,162,176,168,176,45,0,169,176,171,176,45,0,175,176,177,176,179,176,45,0,181,176,184,176,188,176,196,176,45,0,197,176,199,176,45,0,201,176,208,176,45,0,209,176,212,176,216,176,224,176,229,176,8,177,45,0,9,177,11,177,45,0,12,177,16,177,18,177,45,0,19,177,24,177,45,0,25,177,27,177,45,0,29,177,35,177,45,0,37,177,40,177,44,177,52,177,45,0,53,177,55,177,45,0,57,177,64,177,45,0,65,177,68,177,72,177,80,177,45,0,81,177,84,177,45,0,85,177,88,177,92,177,96,177,120,177,45,0,121,177,124,177,128,177,130,177,136,177,45,0,137,177,139,177,141,177,146,177,45,0,148,177,152,177,156,177,168,177,204,177,208,177,212,177,220,177,45,0,221,177,223,177,232,177,45,0,233,177,236,177,240,177,249,177,251,177,253,177,4,178,45,0,5,178,8,178,11,178,45,0,12,178,20,178,45,0,21,178,23,178,25,178,32,178,52,178,60,178,88,178,92,178,96,178,104,178,45,0,105,178,116,178,45,0,117,178,124,178,132,178,45,0,133,178,137,178,144,178,45,0,145,178,148,178,152,178,45,0,154,178,160,178,45,0,161,178,163,178,165,178,45,0,166,178,170,178,172,178,176,178,180,178,200,178,45,0,201,178,204,178,208,178,214,178,216,178,45,0,217,178,219,178,221,178,226,178,228,178,45,0,230,178,232,178,235,178,45,0,239,178,243,178,45,0,245,178,247,178,45,0,251,178,255,178,45,0,1,179,4,179,8,179,16,179,45,0,17,179,19,179,45,0,21,179,28,179,84,179,45,0,86,179,88,179,91,179,45,0,92,179,94,179,45,0,95,179,100,179,45,0,101,179,103,179,105,179,107,179,110,179,112,179,45,0,113,179,116,179,120,179,128,179,45,0,129,179,131,179,45,0,133,179,140,179,144,179,148,179,160,179,45,0,161,179,168,179,172,179,196,179,45,0,197,179,200,179,203,179,45,0,204,179,206,179,208,179,212,179,45,0,213,179,215,179,217,179,219,179,221,179,224,179,228,179,232,179,252,179,16,180,24,180,28,180,32,180,40,180,45,0,41,180,43,180,52,180,80,180,45,0,81,180,84,180,88,180,96,180,45,0,97,180,99,180,101,180,108,180,128,180,136,180,157,180,164,180,168,180,172,180,181,180,183,180,185,180,192,180,196,180,200,180,208,180,213,180,220,180,45,0,221,180,224,180,227,180,45,0,228,180,230,180,236,180,45,0,237,180,239,180,241,180,248,180,20,181,45,0,21,181,24,181,27,181,45,0,28,181,36,181,45,0,37,181,39,181,45,0,42,181,48,181,45,0,49,181,52,181,56,181,64,181,45,0,65,181,67,181,45,0,69,181,75,181,45,0,77,181,80,181,84,181,92,181,45,0,93,181,95,181,45,0,97,181,160,181,45,0,161,181,164,181,168,181,170,181,45,0,171,181,176,181,45,0,177,181,179,181,45,0,181,181,187,181,45,0,189,181,192,181,196,181,204,181,45,0,205,181,207,181,45,0,209,181,216,181,236,181,16,182,45,0,17,182,20,182,24,182,37,182,44,182,52,182,72,182,100,182,104,182,156,182,45,0,157,182,160,182,164,182,171,182,45,0,172,182,177,182,212,182,240,182,244,182,248,182,0,183,45,0,1,183,5,183,40,183,45,0,41,183,44,183,47,183,45,0,48,183,56,183,45,0,57,183,59,183,68,183,72,183,76,183,84,183,45,0,85,183,96,183,100,183,104,183,112,183,45,0,113,183,115,183,117,183,124,183,45,0,125,183,128,183,132,183,140,183,45,0,141,183,143,183,45,0,146,183,150,183,45,0,153,183,156,183,160,183,168,183,45,0,169,183,171,183,45,0,173,183,180,183,45,0,181,183,184,183,199,183,201,183,236,183,45,0,237,183,240,183,244,183,252,183,45,0,253,183,255,183,45,0,1,184,7,184,45,0,9,184,12,184,16,184,24,184,45,0,25,184,27,184,29,184,36,184,45,0,37,184,40,184,44,184,52,184,45,0,53,184,55,184,45,0,57,184,64,184,68,184,81,184,83,184,92,184,45,0,93,184,96,184,100,184,108,184,45,0,109,184,111,184,113,184,120,184,124,184,141,184,168,184,176,184,180,184,184,184,192,184,45,0,193,184,195,184,197,184,204,184,208,184,212,184,221,184,223,184,225,184,232,184,45,0,233,184,236,184,240,184,248,184,45,0,249,184,251,184,253,184,4,185,24,185,32,185,60,185,45,0,61,185,64,185,68,185,76,185,79,185,81,185,88,185,45,0,89,185,92,185,96,185,104,185,45,0,105,185,107,185,109,185,116,185,45,0,117,185,120,185,124,185,132,185,45,0,133,185,135,185,137,185,45,0,138,185,141,185,45,0,142,185,172,185,45,0,173,185,176,185,180,185,188,185,45,0,189,185,191,185,193,185,200,185,45,0,201,185,204,185,206,185,45,0,210,185,216,185,45,0,217,185,219,185,221,185,45,0,222,185,225,185,227,185,45,0,229,185,232,185,236,185,244,185,45,0,245,185,247,185,45,0,250,185,0,186,45,0,1,186,8,186,21,186,56,186,45,0,57,186,60,186,64,186,66,186,72,186,45,0,73,186,75,186,77,186,45,0,78,186,83,186,45,0,85,186,88,186,92,186,100,186,45,0,101,186,103,186,45,0,105,186,112,186,45,0,113,186,116,186,120,186,131,186,45,0,133,186,135,186,140,186,168,186,45,0,169,186,171,186,45,0,172,186,176,186,178,186,184,186,45,0,185,186,187,186,189,186,196,186,200,186,216,186,45,0,217,186,252,186,0,187,4,187,13,187,15,187,17,187,24,187,28,187,32,187,41,187,43,187,52,187,45,0,54,187,56,187,59,187,45,0,62,187,68,187,45,0,69,187,71,187,73,187,77,187,79,187,45,0,80,187,84,187,88,187,97,187,99,187,108,187,136,187,140,187,144,187,164,187,168,187,172,187,180,187,183,187,192,187,196,187,200,187,208,187,211,187,248,187,45,0,249,187,252,187,255,187,45,0,0,188,2,188,8,188,45,0,9,188,11,188,45,0,13,188,15,188,17,188,20,188,45,0,24,188,27,188,45,0,31,188,36,188,45,0,37,188,39,188,41,188,45,188,48,188,45,0,49,188,52,188,56,188,64,188,45,0,65,188,67,188,45,0,69,188,73,188,76,188,45,0,77,188,80,188,93,188,132,188,45,0,133,188,136,188,139,188,45,0,140,188,142,188,148,188,45,0,149,188,151,188,153,188,45,0,154,188,160,188,45,0,161,188,164,188,167,188,45,0,168,188,176,188,45,0,177,188,179,188,45,0,181,188,188,188,45,0,189,188,192,188,196,188,205,188,207,188,45,0,209,188,213,188,216,188,220,188,244,188,45,0,246,188,248,188,252,188,4,189,45,0,5,189,7,189,9,189,16,189,20,189,36,189,44,189,64,189,72,189,45,0,73,189,76,189,80,189,88,189,45,0,89,189,100,189,104,189,128,189,45,0,129,189,132,189,135,189,45,0,138,189,144,189,45,0,145,189,147,189,149,189,153,189,45,0,154,189,156,189,164,189,176,189,184,189,212,189,45,0,213,189,216,189,220,189,233,189,240,189,244,189,248,189,0,190,3,190,5,190,12,190,45,0,13,190,16,190,20,190,28,190,45,0,29,190,31,190,68,190,45,0,69,190,72,190,76,190,78,190,84,190,45,0,85,190,87,190,89,190,45,0,91,190,96,190,45,0,97,190,100,190,104,190,106,190,112,190,45,0,113,190,115,190,45,0,117,190,123,190,45,0,125,190,128,190,132,190,140,190,45,0,141,190,143,190,45,0,145,190,152,190,45,0,153,190,168,190,208,190,45,0,209,190,212,190,215,190,45,0,216,190,224,190,227,190,45,0,229,190,236,190,1,191,8,191,45,0,9,191,24,191,45,0,25,191,27,191,45,0,29,191,64,191,45,0,65,191,68,191,72,191,80,191,45,0,81,191,85,191,148,191,176,191,197,191,204,191,45,0,205,191,208,191,212,191,220,191,223,191,225,191,60,192,81,192,88,192,92,192,96,192,104,192,45,0,105,192,144,192,45,0,145,192,148,192,152,192,160,192,45,0,161,192,163,192,165,192,172,192,45,0,173,192,175,192,45,0,176,192,179,192,45,0,182,192,188,192,45,0,189,192,191,192,45,0,193,192,197,192,200,192,45,0,201,192,204,192,208,192,216,192,45,0,217,192,219,192,45,0,221,192,228,192,45,0,229,192,232,192,236,192,244,192,45,0,245,192,247,192,249,192,0,193,4,193,8,193,16,193,21,193,28,193,45,0,32,193,35,193,45,0,36,193,38,193,45,0,39,193,44,193,45,0,45,193,47,193,45,0,49,193,54,193,56,193,45,0,57,193,60,193,64,193,72,193,45,0,73,193,75,193,45,0,77,193,84,193,45,0,85,193,88,193,92,193,100,193,45,0,101,193,103,193,45,0,105,193,112,193,116,193,120,193,133,193,140,193,45,0,142,193,144,193,148,193,150,193,156,193,45,0,157,193,159,193,161,193,165,193,168,193,45,0,169,193,172,193,176,193,189,193,196,193,200,193,204,193,212,193,215,193,45,0,216,193,224,193,228,193,232,193,240,193,45,0,241,193,243,193,252,193,45,0,253,193,0,194,4,194,12,194,45,0,13,194,15,194,17,194,24,194,45,0,25,194,28,194,31,194,45,0,32,194,40,194,45,0,41,194,43,194,45,194,47,194,49,194,45,0,50,194,52,194,72,194,80,194,45,0,81,194,84,194,88,194,96,194,101,194,108,194,45,0,109,194,112,194,116,194,124,194,45,0,125,194,127,194,129,194,136,194,45,0,137,194,144,194,152,194,155,194,157,194,164,194,45,0,165,194,168,194,172,194,45,0,173,194,180,194,45,0,181,194,183,194,185,194,220,194,45,0,221,194,224,194,227,194,45,0,228,194,235,194,45,0,237,194,239,194,241,194,246,194,248,194,45,0,249,194,251,194,45,0,252,194,0,195,8,195,45,0,9,195,12,195,45,0,13,195,19,195,45,0,21,195,24,195,28,195,36,195,45,0,37,195,40,195,45,0,41,195,69,195,104,195,45,0,105,195,108,195,112,195,114,195,120,195,45,0,121,195,124,195,45,0,125,195,132,195,136,195,140,195,192,195,216,195,45,0,217,195,220,195,223,195,45,0,224,195,226,195,232,195,45,0,233,195,237,195,244,195,45,0,245,195,248,195,8,196,16,196,36,196,44,196,48,196,52,196,60,196,45,0,61,196,72,196,100,196,45,0,101,196,104,196,108,196,116,196,45,0,117,196,121,196,128,196,148,196,156,196,184,196,188,196,233,196,240,196,45,0,241,196,244,196,248,196,250,196,255,196,45,0,1,197,12,197,16,197,20,197,28,197,40,197,45,0,41,197,44,197,48,197,56,197,45,0,57,197,59,197,61,197,68,197,45,0,69,197,72,197,45,0,74,197,76,197,45,0,78,197,83,197,45,0,85,197,87,197,45,0,89,197,93,197,45,0,94,197,96,197,45,0,97,197,100,197,104,197,112,197,45,0,113,197,115,197,45,0,117,197,124,197,45,0,125,197,128,197,132,197,135,197,140,197,45,0,141,197,143,197,145,197,149,197,151,197,45,0,152,197,156,197,160,197,169,197,180,197,45,0,181,197,184,197,45,0,185,197,187,197,45,0,190,197,196,197,45,0,202,197,204,197,206,197,208,197,45,0,209,197,212,197,216,197,224,197,45,0,225,197,227,197,229,197,236,197,45,0,238,197,240,197,244,197,246,197,45,0,247,197,252,197,45,0,1,198,5,198,45,0,8,198,12,198,16,198,24,198,45,0,25,198,27,198,45,0,28,198,36,198,45,0,37,198,40,198,44,198,45,0,46,198,48,198,51,198,45,0,53,198,55,198,57,198,59,198,64,198,45,0,65,198,68,198,72,198,80,198,45,0,81,198,83,198,45,0,85,198,92,198,45,0,93,198,96,198,108,198,111,198,113,198,120,198,45,0,121,198,124,198,128,198,136,198,45,0,137,198,139,198,141,198,148,198,45,0,149,198,152,198,156,198,164,198,45,0,165,198,167,198,169,198,176,198,45,0,177,198,180,198,184,198,45,0,186,198,192,198,45,0,193,198,195,198,197,198,204,198,45,0,205,198,208,198,212,198,220,198,45,0,221,198,224,198,45,0,225,198,232,198,45,0,233,198,236,198,240,198,248,198,45,0,249,198,253,198,4,199,45,0,5,199,8,199,12,199,20,199,45,0,21,199,23,199,25,199,32,199,45,0,33,199,36,199,40,199,48,199,45,0,49,199,51,199,53,199,55,199,60,199,45,0,61,199,64,199,68,199,74,199,76,199,45,0,77,199,79,199,81,199,45,0,88,199,92,199,96,199,104,199,107,199,116,199,45,0,117,199,120,199,124,199,45,0,126,199,131,199,45,0,133,199,135,199,45,0,138,199,142,199,144,199,45,0,145,199,148,199,150,199,45,0,152,199,154,199,160,199,45,0,161,199,163,199,45,0,166,199,172,199,45,0,173,199,176,199,180,199,188,199,45,0,189,199,191,199,45,0,193,199,200,199,45,0,201,199,204,199,206,199,208,199,216,199,221,199,228,199,232,199,236,199,0,200,45,0,1,200,4,200,8,200,10,200,16,200,45,0,17,200,19,200,21,200,45,0,22,200,28,200,45,0,29,200,32,200,36,200,44,200,45,0,45,200,47,200,49,200,56,200,60,200,64,200,72,200,45,0,73,200,76,200,45,0,77,200,84,200,112,200,45,0,113,200,116,200,120,200,122,200,128,200,45,0,129,200,131,200,133,200,45,0,135,200,139,200,45,0,141,200,148,200,157,200,159,200,161,200,168,200,188,200,45,0,189,200,196,200,200,200,204,200,212,200,45,0,213,200,215,200,217,200,224,200,45,0,225,200,228,200,245,200,252,200,45,0,253,200,0,201,4,201,45,0,6,201,12,201,45,0,13,201,15,201,17,201,24,201,44,201,52,201,80,201,45,0,81,201,84,201,88,201,96,201,45,0,97,201,99,201,108,201,112,201,116,201,124,201,136,201,45,0,137,201,140,201,144,201,152,201,45,0,153,201,155,201,157,201,192,201,45,0,193,201,196,201,199,201,45,0,200,201,202,201,208,201,45,0,209,201,211,201,213,201,45,0,214,201,217,201,45,0,218,201,220,201,45,0,221,201,224,201,226,201,228,201,231,201,236,201,45,0,237,201,239,201,45,0,241,201,248,201,45,0,249,201,252,201,0,202,8,202,45,0,9,202,11,202,45,0,13,202,20,202,24,202,41,202,76,202,45,0,77,202,80,202,84,202,92,202,45,0,93,202,95,202,45,0,97,202,104,202,125,202,132,202,152,202,188,202,45,0,189,202,192,202,196,202,204,202,45,0,205,202,207,202,209,202,211,202,216,202,45,0,217,202,224,202,236,202,244,202,8,203,16,203,20,203,24,203,32,203,45,0,33,203,65,203,72,203,45,0,73,203,76,203,80,203,88,203,45,0,89,203,93,203,100,203,120,203,45,0,121,203,156,203,184,203,212,203,228,203,231,203,233,203,12,204,45,0,13,204,16,204,20,204,28,204,45,0,29,204,33,204,45,0,34,204,39,204,45,0,41,204,44,204,46,204,48,204,56,204,45,0,57,204,59,204,45,0,62,204,68,204,45,0,69,204,72,204,76,204,84,204,45,0,85,204,87,204,45,0,89,204,96,204,100,204,102,204,104,204,112,204,117,204,152,204,45,0,153,204,156,204,160,204,168,204,45,0,169,204,171,204,45,0,173,204,180,204,45,0,181,204,184,204,188,204,196,204,45,0,197,204,199,204,201,204,208,204,212,204,228,204,236,204,240,204,1,205,8,205,45,0,9,205,12,205,16,205,24,205,45,0,25,205,27,205,29,205,36,205,40,205,44,205,57,205,92,205,96,205,100,205,108,205,45,0,109,205,111,205,113,205,120,205,136,205,148,205,45,0,149,205,152,205,156,205,164,205,45,0,165,205,167,205,169,205,176,205,196,205,204,205,208,205,232,205,236,205,240,205,248,205,45,0,249,205,251,205,253,205,4,206,8,206,12,206,20,206,25,206,32,206,45,0,33,206,36,206,40,206,48,206,45,0,49,206,51,206,53,206,88,206,45,0,89,206,92,206,95,206,45,0,97,206,104,206,45,0,105,206,107,206,109,206,116,206,45,0,117,206,120,206,124,206,132,206,45,0,133,206,135,206,137,206,144,206,45,0,145,206,148,206,152,206,160,206,45,0,161,206,163,206,45,0,165,206,172,206,45,0,173,206,193,206,228,206,45,0,229,206,232,206,235,206,45,0,236,206,244,206,45,0,245,206,247,206,45,0,249,206,0,207,45,0,1,207,4,207,8,207,16,207,45,0,17,207,19,207,21,207,28,207,32,207,36,207,44,207,45,0,45,207,47,207,45,0,49,207,56,207,84,207,45,0,85,207,88,207,92,207,100,207,45,0,101,207,103,207,105,207,112,207,45,0,113,207,116,207,120,207,128,207,133,207,140,207,161,207,168,207,176,207,196,207,224,207,45,0,225,207,228,207,232,207,240,207,45,0,241,207,243,207,245,207,252,207,0,208,4,208,17,208,24,208,45,208,52,208,45,0,53,208,56,208,60,208,68,208,45,0,69,208,71,208,73,208,80,208,84,208,88,208,96,208,108,208,45,0,109,208,112,208,116,208,124,208,45,0,125,208,129,208,164,208,45,0,165,208,168,208,172,208,180,208,45,0,181,208,183,208,185,208,192,208,45,0,193,208,196,208,200,208,45,0,201,208,208,208,45,0,209,208,211,208,45,0,213,208,220,208,45,0,221,208,224,208,228,208,236,208,45,0,237,208,239,208,45,0,241,208,248,208,13,209,48,209,45,0,49,209,52,209,56,209,58,209,64,209,45,0,65,209,67,209,45,0,69,209,76,209,45,0,77,209,80,209,84,209,92,209,45,0,93,209,95,209,97,209,104,209,108,209,124,209,132,209,136,209,160,209,45,0,161,209,164,209,168,209,176,209,45,0,177,209,179,209,181,209,186,209,188,209,192,209,216,209,244,209,248,209,7,210,9,210,16,210,44,210,45,0,45,210,48,210,52,210,60,210,45,0,61,210,63,210,65,210,72,210,92,210,100,210,128,210,45,0,129,210,132,210,136,210,144,210,45,0,145,210,149,210,156,210,160,210,164,210,172,210,177,210,184,210,45,0,185,210,188,210,191,210,45,0,192,210,194,210,200,210,45,0,201,210,203,210,212,210,216,210,220,210,228,210,45,0,229,210,240,210,45,0,241,210,244,210,248,210,0,211,45,0,1,211,3,211,5,211,12,211,45,0,14,211,16,211,20,211,22,211,28,211,45,0,29,211,31,211,45,0,33,211,37,211,40,211,45,0,41,211,44,211,48,211,56,211,45,0,57,211,59,211,45,0,61,211,68,211,45,0,69,211,124,211,45,0,125,211,128,211,132,211,140,211,45,0,141,211,143,211,45,0,145,211,152,211,45,0,153,211,156,211,160,211,168,211,45,0,169,211,171,211,173,211,180,211,184,211,188,211,196,211,45,0,197,211,200,211,45,0,201,211,208,211,216,211,225,211,227,211,236,211,45,0,237,211,240,211,244,211,252,211,45,0,253,211,255,211,1,212,8,212,29,212,64,212,68,212,92,212,96,212,100,212,109,212,111,212,120,212,45,0,121,212,124,212,127,212,45,0,128,212,130,212,136,212,45,0,137,212,139,212,141,212,148,212,169,212,204,212,208,212,212,212,220,212,223,212,232,212,236,212,240,212,248,212,251,212,253,212,4,213,8,213,12,213,20,213,45,0,21,213,23,213,60,213,45,0,61,213,64,213,68,213,76,213,45,0,77,213,79,213,81,213,88,213,45,0,89,213,92,213,96,213,101,213,104,213,45,0,105,213,107,213,109,213,116,213,45,0,117,213,120,213,124,213,132,213,45,0,133,213,135,213,45,0,137,213,144,213,165,213,200,213,45,0,201,213,204,213,208,213,210,213,216,213,45,0,217,213,219,213,221,213,228,213,45,0,229,213,232,213,236,213,244,213,45,0,245,213,247,213,249,213,0,214,45,0,1,214,4,214,8,214,16,214,45,0,17,214,19,214,45,0,21,214,28,214,32,214,36,214,45,214,56,214,45,0,57,214,60,214,64,214,69,214,72,214,45,0,73,214,75,214,77,214,81,214,84,214,45,0,85,214,88,214,92,214,103,214,105,214,112,214,45,0,113,214,116,214,131,214,133,214,140,214,45,0,141,214,144,214,148,214,157,214,159,214,161,214,168,214,172,214,176,214,185,214,187,214,196,214,45,0,197,214,200,214,204,214,209,214,212,214,215,214,217,214,224,214,228,214,232,214,240,214,245,214,252,214,45,0,253,214,0,215,4,215,17,215,24,215,45,0,25,215,28,215,32,215,40,215,45,0,41,215,43,215,45,215,52,215,45,0,53,215,56,215,60,215,68,215,71,215,73,215,80,215,45,0,81,215,84,215,86,215,45,0,89,215,96,215,45,0,97,215,99,215,101,215,105,215,108,215,112,215,116,215,124,215,45,0,125,215,129,215,136,215,45,0,137,215,140,215,144,215,152,215,45,0,153,215,155,215,157,215,93,0,93,0,38,0,0,172,60,0,60,0,42,0,61,79,115,79,71,80,249,80,160,82,239,83,117,84,229,84,9,86,193,90,182,91,135,102,182,103,183,103,239,103,76,107,194,115,194,117,60,122,219,130,4,131,87,136,136,136,54,138,200,140,207,141,251,142,230,143,213,153,238,78,162,80,150,84,255,84,119,87,138,91,157,101,142,105,159,106,200,115,51,123,30,128,56,130,109,132,12,139,38,0,1,172,60,0,60,0,42,0,59,82,116,83,4,84,106,96,100,97,188,107,207,115,26,129,186,137,210,137,163,149,123,83,175,84,198,87,9,100,241,100,119,104,38,0,4,172,60,0,60,0,42,0,131,79,10,82,190,88,120,89,230,89,114,94,121,94,199,97,192,99,70,103,236,103,127,104,151,111,78,118,11,119,245,120,8,122,255,122,33,124,157,128,110,130,113,130,235,138,147,149,88,80,115,97,30,104,166,105,149,115,198,121,27,131,78,136,118,141,192,143,102,159,38,0,8,172,60,0,60,0,42,0,107,78,157,85,247,102,52,110,163,120,237,122,91,132,16,137,78,135,168,151,118,86,108,105,248,121,175,127,13,136,161,157,38,0,16,172,60,0,60,0,42,0,216,82,78,87,42,88,76,93,31,97,190,97,33,98,98,101,209,103,68,106,27,110,24,117,179,117,227,118,176,119,58,125,175,144,81,148,82,148,149,159,105,87,243,87,65,93,7,95,168,97,188,100,63,107,91,107,212,108,230,109,137,111,217,119,87,143,99,145,123,158,38,0,17,172,60,0,60,0,42,0,35,83,172,92,50,117,219,128,64,146,152,149,208,151,38,0,21,172,60,0,60,0,42,0,91,82,8,88,220,89,161,92,23,93,183,94,58,95,74,95,119,97,95,108,122,117,134,117,224,124,115,125,177,125,140,127,84,129,33,130,145,133,65,137,27,139,252,146,77,150,71,156,139,80,245,80,195,88,252,95,91,98,96,103,127,106,173,107,252,119,69,122,72,126,97,127,151,127,171,127,51,131,71,140,193,151,38,0,28,172,60,0,60,0,42,0,203,78,247,78,11,80,241,81,79,88,55,97,62,97,104,97,57,101,234,105,17,111,165,117,134,118,214,118,135,123,165,130,203,132,167,147,139,149,116,82,3,83,233,99,233,105,160,115,213,120,211,149,38,0,29,172,60,0,60,0,42,0,128,85,162,91,38,0,49,172,60,0,60,0,42,0,81,87,179,124,185,127,92,120,225,140,215,147,38,0,57,172,60,0,60,0,181,145,38,0,112,172,60,0,60,0,42,0,40,80,187,83,69,92,232,93,210,98,110,99,218,100,231,100,32,110,172,112,91,121,221,141,30,142,125,144,69,146,248,146,127,84,27,102,236,121,101,123,103,124,224,128,82,129,227,130,146,131,86,133,39,134,170,136,254,136,207,153,38,0,116,172,60,0,60,0,42,0,126,78,246,78,101,80,254,93,250,94,6,97,87,105,113,129,84,134,71,142,117,147,43,154,245,99,141,114,119,119,48,137,7,139,172,151,38,0,120,172,60,0,60,0,42,0,94,78,145,80,112,103,64,104,108,78,5,103,164,105,38,0,128,172,60,0,60,0,42,0,9,81,141,82,146,82,162,106,188,119,16,146,212,158,191,100,161,130,38,0,129,172,60,0,60,0,42,0,171,82,47,96,242,143,38,82,39,82,38,0,140,172,60,0,60,0,42,0,72,80,169,97,237,99,38,0,169,172,60,0,60,0,42,0,202,100,60,104,132,106,192,111,136,129,161,137,148,150,12,99,196,107,195,149,188,154,50,155,3,157,38,0,172,172,60,0,60,0,42,0,5,88,125,114,172,114,4,117,121,125,109,126,169,128,139,137,116,139,99,144,81,157,43,106,247,114,78,117,103,123,51,126,126,126,130,127,50,136,57,156,38,0,176,172,60,0,60,0,42,0,137,98,122,108,84,111,80,125,58,127,35,138,166,115,214,137,203,149,38,0,184,172,60,0,60,0,42,0,124,81,74,97,157,123,25,139,87,146,140,147,148,80,219,85,146,92,209,98,73,107,17,126,185,132,218,158,56,159,38,0,189,172,60,0,60,0,42,0,172,78,211,79,30,80,190,80,6,81,193,82,205,82,127,83,112,87,131,88,154,94,145,95,118,97,172,97,206,100,108,101,111,102,187,102,244,102,151,104,135,109,133,112,241,112,159,116,165,116,202,116,217,117,108,120,236,120,223,122,246,122,69,125,147,125,21,128,63,128,27,129,150,131,102,139,21,143,21,144,225,147,3,152,56,152,90,154,232,155,143,81,68,82,253,84,248,96,188,97,67,98,160,106,98,113,45,113,178,113,74,117,248,122,134,125,72,152,68,127,39,137,38,139,201,153,193,155,229,158,38,0,196,172,60,0,60,0,42,0,194,79,83,85,58,88,81,89,99,91,70,92,184,96,18,98,66,104,176,104,232,104,170,110,76,117,120,118,206,120,61,122,251,124,107,126,124,126,8,138,161,138,63,140,142,150,196,157,38,88,211,112,8,118,138,121,83,123,174,125,24,126,125,127,106,132,138,133,222,150,251,154,38,0,224,172,60,0,60,0,42,0,228,83,233,83,74,84,113,84,250,86,209,89,100,91,59,92,171,94,247,98,55,101,69,101,114,101,160,102,175,103,193,105,189,108,252,117,144,118,126,119,63,122,148,127,3,128,161,128,143,129,230,130,253,130,240,131,193,133,49,136,180,136,165,138,156,143,46,147,199,150,103,152,216,154,19,159,48,79,197,81,51,82,89,88,114,103,50,104,192,105,249,105,220,106,111,114,139,118,236,118,189,119,1,122,141,123,217,123,213,124,95,127,150,127,250,127,239,128,218,137,65,138,220,144,100,145,55,146,96,151,35,157,241,157,38,0,225,172,60,0,60,0,42,0,237,84,155,101,242,102,143,104,64,122,55,140,96,157,179,86,242,105,32,126,243,137,66,143,38,0,228,172,60,0,60,0,42,0,240,86,100,87,17,93,6,102,177,104,205,104,254,110,40,116,158,136,228,155,3,88,16,93,131,96,70,99,196,125,110,136,205,136,12,137,21,147,171,149,225,154,126,157,164,157,107,159,38,0,232,172,60,0,60,0,42,0,104,108,168,154,48,100,190,105,251,119,187,157,38,0,245,172,60,0,60,0,42,0,155,79,108,81,113,81,159,82,84,91,229,93,80,96,109,96,241,98,167,99,59,101,217,115,122,122,163,134,162,140,143,151,37,80,6,93,190,96,49,104,211,105,156,123,233,134,236,134,27,141,235,141,237,145,148,159,38,0,246,172,60,0,60,0,50,78,38,0,252,172,60,0,60,0,42,0,225,91,8,98,156,103,220,116,209,121,211,131,135,138,178,138,232,141,78,144,75,147,70,152,137,79,29,88,37,89,56,89,190,100,19,115,30,122,160,122,76,135,249,136,29,142,153,146,13,154,38,0,253,172,60,0,60,0,42,0,211,94,232,105,255,133,237,144,1,105,104,118,169,142,13,151,185,151,38,0,0,173,60,0,60,0,42,0,160,81,152,91,236,91,99,97,250,104,62,107,76,112,47,116,216,116,161,123,80,127,197,131,192,137,171,140,220,149,40,153,49,78,171,109,31,114,229,118,124,121,190,122,102,123,176,125,40,143,39,147,117,148,218,150,116,152,214,154,27,158,38,0,4,173,60,0,60,0,42,0,46,82,93,96,236,98,2,144,120,79,29,104,72,123,82,128,250,154,48,157,38,0,17,173,60,0,60,0,42,0,138,79,73,81,33,83,217,88,227,94,224,102,56,109,154,112,194,114,214,115,80,123,241,128,91,148,71,96,68,104,70,104,12,114,119,115,250,120,86,125,138,126,42,131,134,138,145,138,38,0,24,173,60,0,60,0,42,0,102,83,155,99,107,127,188,84,2,99,99,127,127,138,38,0,52,173,60,0,60,0,42,0,86,78,128,80,74,88,222,88,42,96,39,97,208,98,208,105,65,155,191,90,229,94,96,96,112,116,157,116,175,132,88,137,38,0,53,173,60,0,60,0,152,153,38,0,73,173,60,0,60,0,42,0,143,91,24,125,177,128,95,143,100,109,229,137,7,138,142,149,38,0,80,173,60,0,60,0,42,0,164,78,209,80,172,84,172,85,12,91,160,93,231,93,42,101,78,101,33,104,75,106,225,114,142,118,239,119,94,125,249,127,160,129,78,133,223,134,3,143,78,143,202,144,3,153,85,154,171,155,124,79,4,86,16,86,109,86,153,86,227,89,141,97,159,100,72,102,158,102,183,105,253,120,150,122,171,141,123,142,120,146,185,154,65,157,105,159,38,0,108,173,60,0,60,0,42,0,24,78,69,78,93,78,199,78,241,79,119,81,254,82,64,83,227,83,229,83,142,84,20,86,117,87,162,87,199,91,135,93,208,94,252,97,216,98,81,101,184,103,233,103,203,105,80,107,198,107,236,107,66,108,157,110,120,112,215,114,150,115,3,116,191,119,233,119,118,122,127,125,9,128,252,129,5,130,10,130,223,130,98,136,51,139,252,140,192,142,17,144,177,144,100,146,182,146,210,153,69,154,233,156,215,157,156,159,73,79,93,79,197,79,180,80,147,81,172,82,54,83,185,83,244,83,120,87,228,89,190,90,215,90,104,92,163,92,64,95,53,98,99,98,68,99,6,100,115,100,43,102,152,105,26,111,134,116,12,117,154,117,192,117,111,118,155,122,182,122,221,123,215,124,202,128,159,132,175,134,216,136,175,137,108,138,88,144,230,145,221,151,237,151,238,151,182,152,200,153,46,155,199,157,28,158,38,0,109,173,60,0,60,0,42,0,11,87,64,92,202,131,160,151,171,151,180,158,10,83,172,99,252,141,175,158,38,0,112,173,60,0,60,0,42,0,27,84,152,122,164,127,217,136,205,142,225,144,67,99,126,104,184,118,38,0,116,173,60,0,60,0,42,0,0,88,72,92,152,99,159,122,20,80,27,93,200,109,88,138,38,0,129,173,60,0,60,0,42,0,174,91,19,95,121,122,174,122,142,130,172,142,179,142,38,0,140,173,60,0,60,0,42,0,38,80,56,82,248,82,119,83,8,87,243,98,114,99,10,107,195,109,55,119,204,82,211,96,236,104,96,119,163,125,55,135,38,0,144,173,60,0,60,0,42,0,165,83,87,115,104,133,118,142,213,149,38,0,164,173,60,0,60,0,42,0,58,103,195,106,112,111,109,138,204,142,75,153,121,79,224,81,130,82,49,83,146,97,133,100,59,106,63,108,11,124,98,126,234,141,224,149,61,153,130,158,38,0,192,173,60,0,60,0,42,0,119,102,120,107,180,140,60,155,38,0,220,173,60,0,60,0,42,0,235,83,45,87,78,89,198,99,251,105,234,115,69,120,186,122,197,122,254,124,117,132,143,137,115,141,53,144,168,149,50,82,226,90,0,91,203,93,140,102,79,105,27,106,89,111,125,119,250,124,108,134,111,134,236,141,189,144,218,149,13,152,151,153,38,0,224,173,60,0,60,0,42,0,251,82,71,87,71,117,96,123,204,131,30,146,247,86,143,158,38,0,228,173,60,0,60,0,88,106,38,0,249,173,60,0,60,0,42,0,75,81,75,82,135,82,31,98,216,104,117,105,153,150,159,78,5,92,80,92,196,144,38,0,252,173,60,0,60,0,42,0,197,80,164,82,228,82,195,97,164,101,57,104,255,105,126,116,75,123,185,130,235,131,178,137,57,139,209,143,73,153,122,83,170,83,144,88,249,93,209,94,12,111,212,137,223,141,255,145,115,151,38,0,8,174,60,0,60,0,42,0,202,78,151,89,210,100,17,102,142,106,52,116,129,121,189,121,169,130,126,136,127,136,95,137,38,147,43,85,100,86,148,93,18,123,197,158,38,0,9,174,60,0,60,0,42,0,11,79,202,83,37,96,113,98,114,108,26,125,102,125,62,87,140,92,128,118,15,121,8,123,168,130,38,0,13,174,60,0,60,0,42,0,152,78,98,81,220,119,175,128,153,78,145,107,38,0,48,174,60,0,60,0,42,0,1,79,14,79,118,81,128,81,220,85,104,86,59,87,250,87,252,87,20,89,71,89,147,89,196,91,144,92,14,93,241,93,126,94,204,95,128,98,215,101,227,101,30,103,31,103,94,103,203,104,196,104,95,106,58,107,35,108,125,108,130,108,199,109,152,115,38,116,42,116,130,116,163,116,120,117,127,117,129,120,239,120,65,121,71,121,72,121,122,121,149,123,0,125,186,125,136,127,6,128,45,128,140,128,24,138,79,139,72,140,119,141,33,147,36,147,226,152,81,153,14,154,15,154,101,154,146,158,219,80,94,82,141,88,122,92,139,94,3,95,238,95,45,97,142,99,50,101,194,101,163,102,193,102,202,104,103,107,129,112,9,115,168,121,165,125,166,125,135,127,181,128,170,130,176,130,4,134,65,134,29,135,227,135,137,137,172,137,194,141,145,150,14,152,16,155,45,156,214,158,38,0,52,174,60,0,60,0,202,125,38,0,56,174,60,0,60,0,42,0,118,79,9,84,238,98,84,104,222,89,227,134,38,0,64,174,60,0,60,0,209,145,38,0,125,176,60,0,60,0,171,85,38,0,152,176,60,0,60,0,42,0,58,81,28,90,230,97,207,98,255,98,163,144,16,99,42,99,155,104,229,124,239,124,38,0,153,176,60,0,60,0,254,138,38,0,156,176,60,0,60,0,42,0,150,102,86,113,227,150,68,80,87,113,103,141,42,153,38,0,160,176,60,0,60,0,42,0,79,99,122,99,38,0,168,176,60,0,60,0,42,0,87,83,143,103,96,105,115,110,55,117,131,85,223,103,38,0,169,176,60,0,60,0,42,0,13,125,114,136,38,0,173,176,60,0,60,0,42,0,202,86,24,90,233,102,38,0,180,176,60,0,60,0,42,0,67,78,103,81,72,89,240,103,16,128,2,83,118,89,45,91,250,143,16,159,38,0,64,177,60,0,60,0,115,89,38,0,65,177,60,0,60,0,196,96,38,0,68,177,60,0,60,0,42,0,116,94,154,100,202,121,190,120,38,0,80,177,60,0,60,0,42,0,245,95,108,96,200,98,123,99,38,0,85,177,60,0,60,0,42,0,231,91,215,91,94,79,28,81,128,86,216,111,38,0,120,177,60,0,60,0,42,0,170,82,116,89,41,95,18,96,89,116,209,153,118,84,101,91,241,92,49,115,47,123,209,129,38,0,141,177,60,0,60,0,42,0,195,111,191,129,178,143,2,81,101,86,96,122,178,145,38,0,204,177,60,0,60,0,42,0,241,96,102,129,18,153,38,0,232,177,60,0,60,0,42,0,63,92,203,90,50,91,214,109,224,120,202,136,3,148,38,0,4,178,60,0,60,0,42,0,66,85,40,128,38,0,8,178,60,0,60,0,233,90,38,0,12,178,60,0,60,0,42,0,37,138,54,84,173,128,38,0,116,178,60,0,60,0,42,0,123,103,16,125,248,95,117,151,38,0,117,178,60,0,60,0,68,136,38,0,165,178,60,0,60,0,253,128,38,0,200,178,60,0,60,0,42,0,60,92,229,108,98,84,41,96,197,103,98,121,176,121,169,129,38,0,201,178,60,0,60,0,42,0,63,83,186,110,53,102,177,102,38,0,228,178,60,0,60,0,42,0,26,89,54,131,57,114,38,0,232,178,60,0,60,0,42,0,57,78,182,78,70,79,174,85,24,87,199,88,86,95,183,101,230,101,128,106,181,107,77,110,237,119,239,122,30,124,222,125,203,134,146,136,50,145,91,147,113,97,197,98,52,105,25,111,73,118,17,128,198,128,118,129,17,135,38,0,236,178,60,0,60,0,42,0,187,100,190,111,122,115,184,117,84,144,178,89,27,96,229,149,124,151,195,151,38,0,244,178,60,0,60,0,42,0,86,85,77,87,186,97,212,100,199,102,225,109,91,110,109,111,185,111,240,117,67,128,189,129,65,133,131,137,199,138,90,139,31,147,11,81,87,85,73,86,176,88,220,88,239,107,171,121,78,127,157,133,239,144,238,158,245,158,38,0,245,178,60,0,60,0,42,0,147,108,83,117,84,123,15,142,93,144,38,0,249,178,60,0,60,0,42,0,16,85,2,88,88,88,98,94,7,98,158,100,224,104,118,117,214,124,179,135,232,158,24,80,59,81,90,81,42,100,148,106,143,110,109,116,171,116,160,119,17,121,247,135,96,137,156,139,220,147,58,148,51,153,57,153,38,0,0,179,60,0,60,0,42,0,227,78,136,87,110,87,39,89,13,92,177,92,54,94,133,95,52,98,225,100,179,115,250,129,139,136,184,140,138,150,219,158,19,81,223,97,242,101,79,108,147,120,19,148,38,0,1,179,60,0,60,0,133,91,38,0,85,179,60,0,60,0,42,0,183,95,179,96,38,0,196,179,60,0,60,0,42,0,18,80,0,82,48,82,22,87,53,88,87,88,14,92,96,92,246,92,139,93,166,94,146,95,188,96,17,99,137,99,23,100,67,104,249,104,194,106,216,109,33,110,212,110,228,111,254,113,220,118,121,119,177,121,59,122,4,132,169,137,237,140,243,141,72,142,3,144,20,144,83,144,253,144,77,147,118,150,220,151,232,83,212,88,34,95,201,95,70,97,143,99,47,100,227,100,174,106,46,109,130,109,12,122,223,131,116,145,205,149,128,151,177,151,85,153,23,159,38,0,197,179,60,0,60,0,42,0,210,107,6,112,88,114,162,114,104,115,99,119,191,121,228,123,155,126,128,139,221,106,247,158,38,0,200,179,60,0,60,0,42,0,169,88,199,96,102,101,253,101,190,102,140,108,30,113,201,113,90,140,19,152,52,95,97,111,137,142,38,0,204,179,60,0,60,0,42,0,109,78,129,122,132,84,23,88,38,0,217,179,60,0,60,0,42,0,221,78,172,81,205,81,213,82,12,84,167,97,113,103,80,104,223,104,30,109,124,111,188,117,179,119,229,122,244,128,99,132,133,146,151,79,238,80,195,84,140,87,210,92,100,95,35,103,102,106,183,109,95,130,243,130,60,131,107,133,64,135,44,147,151,155,38,0,80,180,60,0,60,0,42,0,92,81,151,101,92,103,147,103,216,117,199,122,115,131,70,140,23,144,45,152,150,98,129,101,154,128,48,129,170,134,57,136,97,150,38,0,84,180,60,0,60,0,42,0,111,92,192,129,154,130,65,144,111,144,13,146,128,122,205,143,38,0,88,180,60,0,60,0,103,78,38,0,221,180,60,0,60,0,151,95,38,0,241,180,60,0,60,0,42,0,157,93,89,106,200,113,123,118,73,123,228,133,4,139,39,145,48,154,243,81,177,88,213,110,244,120,80,124,34,126,163,135,25,148,38,0,124,183,60,0,60,0,42,0,135,85,246,97,105,118,133,127,63,134,186,135,248,136,143,144,46,80,201,86,234,102,48,118,34,120,221,129,124,148,62,154,88,154,38,0,125,183,60,0,60,0,42,0,27,109,217,112,222,115,97,125,61,132,106,145,241,153,224,85,150,114,38,0,128,183,60,0,60,0,42,0,130,78,117,83,4,107,18,107,62,112,27,114,45,134,30,158,62,91,113,94,20,101,83,112,116,137,126,148,204,149,38,0,132,183,60,0,60,0,42,0,76,82,163,143,210,87,162,143,38,0,140,183,60,0,60,0,42,0,80,93,229,100,44,101,22,107,235,111,67,124,156,126,205,133,100,137,189,137,106,90,207,96,38,0,141,183,60,0,60,0,42,0,201,98,216,129,31,136,94,148,38,0,145,183,60,0,60,0,42,0,202,94,23,103,106,109,252,114,5,116,111,116,130,135,222,144,148,105,96,120,2,122,168,131,11,135,172,149,38,0,152,183,60,0,60,0,42,0,134,79,13,93,160,95,10,132,246,109,11,154,38,0,173,183,60,0,60,0,183,81,38,0,181,183,60,0,60,0,42,0,160,99,101,117,103,117,38,0,201,183,60,0,60,0,42,0,174,78,6,80,105,81,201,81,129,104,17,106,174,124,177,124,231,124,111,130,210,138,27,143,207,145,168,85,162,96,11,105,188,109,9,142,78,155,38,0,36,184,60,0,60,0,42,0,182,79,55,81,245,82,66,84,236,94,110,97,62,98,197,101,218,106,254,111,42,121,220,133,35,136,173,149,98,154,106,154,151,158,206,158,34,81,178,83,51,85,160,104,88,118,242,124,130,129,218,129,33,136,140,144,98,148,38,0,37,184,60,0,60,0,42,0,155,82,198,102,119,107,29,112,43,121,98,143,66,151,10,101,223,106,234,106,103,118,99,143,72,145,38,0,40,184,60,0,60,0,42,0,144,97,0,98,35,101,35,111,73,113,137,116,244,125,111,128,238,132,38,143,35,144,74,147,76,91,93,105,69,110,224,129,200,147,10,156,49,156,38,0,44,184,60,0,60,0,42,0,189,81,23,82,163,82,12,109,200,112,194,136,18,99,105,99,178,152,38,0,52,184,60,0,60,0,42,0,201,94,130,101,174,107,194,111,62,124,105,89,50,112,207,120,38,0,53,184,60,0,60,0,42,0,117,115,144,142,35,155,38,0,57,184,60,0,60,0,42,0,228,78,54,79,249,86,186,92,186,93,28,96,178,115,45,123,154,127,206,127,70,128,30,144,52,146,246,150,72,151,24,152,97,159,230,83,100,84,200,89,173,92,36,102,30,107,224,108,226,121,211,130,201,134,232,142,18,157,119,158,38,0,64,184,60,0,60,0,42,0,139,79,167,111,174,121,180,145,183,150,184,150,103,156,38,0,92,184,60,0,60,0,42,0,222,82,136,100,196,100,211,106,94,111,24,112,16,114,231,118,1,128,6,134,92,134,239,141,5,143,50,151,111,155,250,157,117,158,218,88,247,110,136,115,70,118,130,122,106,130,107,130,100,143,42,148,106,148,113,152,215,154,120,156,21,158,38,0,93,184,60,0,60,0,42,0,140,120,127,121,160,125,201,131,4,147,127,158,147,158,37,87,84,95,229,109,9,111,15,124,70,143,4,154,38,0,96,184,60,0,60,0,214,138,38,0,113,184,60,0,60,0,42,0,223,88,4,95,39,103,39,112,207,116,96,124,126,128,49,81,15,101,232,102,49,121,34,134,180,150,142,159,38,0,176,184,60,0,60,0,42,0,33,81,40,112,98,114,202,120,194,140,218,140,244,140,247,150,2,101,12,121,39,121,95,124,135,126,77,127,18,128,126,133,132,138,121,145,66,152,38,0,204,184,60,0,60,0,42,0,134,78,218,80,238,91,214,94,153,101,206,113,66,118,173,119,74,128,252,132,124,144,39,155,57,86,253,90,169,100,184,102,102,111,96,115,90,126,139,129,170,145,16,148,194,152,201,152,38,0,225,184,60,0,60,0,42,0,141,159,146,159,38,0,232,184,60,0,60,0,42,0,216,88,65,90,98,92,19,106,218,109,15,111,59,118,47,125,55,126,30,133,56,137,228,147,75,150,194,80,13,86,129,93,122,97,44,128,187,135,207,154,38,0,88,185,60,0,60,0,42,0,137,82,210,101,243,103,180,105,65,109,156,110,15,112,9,116,96,116,89,117,36,118,107,120,44,139,94,152,74,106,50,126,141,126,91,144,185,157,38,0,89,185,60,0,60,0,42,0,109,81,46,98,120,150,224,82,38,0,92,185,60,0,60,0,42,0,150,79,43,80,25,93,234,109,184,125,42,143,132,99,38,0,96,185,60,0,60,0,42,0,139,95,68,97,23,104,66,93,167,110,38,0,109,185,60,0,60,0,42,0,134,150,67,118,191,122,38,0,117,185,60,0,60,0,42,0,210,82,139,128,208,108,38,0,132,185,60,0,60,0,42,0,220,81,219,81,233,94,159,111,38,0,137,185,60,0,60,0,42,0,204,81,94,105,28,122,190,125,241,131,117,150,48,80,6,133,38,0,172,185,60,0,60,0,42,0,218,79,41,82,152,83,15,84,14,85,101,92,167,96,78,103,168,104,108,109,129,114,248,114,6,116,131,116,226,117,108,124,121,127,184,127,137,131,207,136,225,136,204,145,208,145,226,150,201,155,208,79,122,82,233,84,224,90,150,109,19,111,187,121,133,131,10,135,173,135,141,140,144,144,81,155,208,158,38,0,176,185,60,0,60,0,42,0,29,84,126,111,208,113,152,116,250,133,170,142,163,150,87,156,159,158,153,93,139,96,92,115,247,120,166,124,188,124,87,126,153,142,84,143,48,145,251,147,78,154,38,0,188,185,60,0,60,0,42,0,151,103,203,109,51,116,232,129,22,151,243,117,38,0,189,185,60,0,60,0,42,0,44,120,203,122,32,123,146,124,166,92,38,0,200,185,60,0,60,0,42,0,105,100,106,116,242,117,188,120,232,120,172,153,84,155,187,158,152,82,189,90,158,135,199,135,189,158,191,158,38,0,201,185,60,0,60,0,42,0,222,91,85,94,32,111,156,129,171,131,136,144,153,119,204,147,38,0,204,185,60,0,60,0,42,0,7,78,77,83,41,90,210,93,78,95,98,97,61,99,105,102,252,102,255,110,43,111,99,112,158,119,44,132,19,133,59,136,19,143,69,153,59,156,129,88,218,90,84,94,53,126,62,139,99,142,203,147,221,147,24,155,38,0,208,185,60,0,60,0,42,0,28,85,185,98,43,103,171,108,9,131,106,137,122,151,21,94,227,121,38,0,221,185,60,0,60,0,42,0,161,78,132,89,216,95,217,95,27,103,178,125,84,127,146,130,43,131,189,131,30,143,153,144,216,96,82,108,45,111,190,131,210,135,77,155,38,0,228,185,60,0,60,0,42,0,203,87,185,89,146,90,208,91,39,102,154,103,133,104,207,107,100,113,117,127,183,140,227,140,129,144,69,155,70,84,115,105,172,108,171,115,27,119,250,130,147,131,118,145,9,151,38,0,229,185,60,0,60,0,42,0,8,129,138,140,76,150,64,154,165,158,9,129,131,140,152,140,38,0,249,185,60,0,60,0,42,0,95,91,19,108,27,115,242,118,223,118,12,132,26,81,13,117,63,117,123,134,38,0,113,186,60,0,60,0,42,0,170,81,147,137,78,94,248,124,38,0,116,186,60,0,60,0,42,0,77,81,149,81,201,82,201,104,148,108,4,119,32,119,191,125,236,125,98,151,181,158,219,79,78,110,198,124,220,125,170,158,38,0,120,186,60,0,60,0,42,0,197,110,17,133,254,123,74,136,38,0,133,186,60,0,60,0,42,0,165,81,13,84,125,84,14,102,157,102,39,105,159,110,191,118,145,119,23,131,194,132,159,135,105,145,152,146,244,156,58,109,38,0,140,186,60,0,60,0,130,136,38,0,168,186,60,0,60,0,42,0,174,79,146,81,223,82,198,89,61,94,85,97,120,100,121,100,174,102,208,103,33,106,205,107,219,107,95,114,97,114,65,116,56,119,219,119,23,128,188,130,5,131,0,139,40,139,140,140,148,79,229,89,162,90,235,90,72,96,196,101,131,118,10,119,141,124,226,124,4,128,101,135,202,135,126,146,230,154,38,0,169,186,60,0,60,0,42,0,40,103,144,108,103,114,238,118,102,119,70,122,169,157,233,81,220,130,38,0,176,186,60,0,60,0,42,0,127,107,146,108,38,0,189,186,60,0,60,0,42,0,34,89,38,103,153,132,106,94,222,97,218,102,149,110,219,111,162,119,199,119,104,130,250,150,15,158,38,0,24,187,60,0,60,0,42,0,111,83,147,88,153,89,223,94,207,99,52,102,115,103,58,110,43,115,215,122,215,130,40,147,252,109,7,119,208,133,147,140,38,0,52,187,60,0,60,0,42,0,217,82,235,93,174,97,203,97,10,98,199,98,171,100,224,101,89,105,102,107,203,107,33,113,247,115,93,117,70,126,30,130,2,131,106,133,163,138,191,140,39,151,97,157,27,81,56,86,225,94,180,129,22,154,38,0,53,187,60,0,60,0,42,0,168,88,216,158,63,86,38,0,56,187,60,0,60,0,42,0,17,80,14,82,59,84,79,85,135,101,118,108,10,125,11,125,94,128,138,134,128,149,239,150,1,83,151,96,227,97,134,98,107,99,134,112,138,116,38,0,60,187,60,0,60,0,42,0,255,82,149,108,105,114,38,0,248,187,60,0,60,0,42,0,115,84,154,90,62,92,75,93,76,95,174,95,42,103,182,104,99,105,60,110,68,110,9,119,115,124,142,127,135,133,14,139,247,143,97,151,244,158,185,78,19,90,132,90,186,90,37,95,45,95,73,101,48,112,124,115,220,124,59,126,255,130,60,134,139,158,38,0,252,187,60,0,60,0,42,0,183,92,182,96,13,97,171,97,79,101,251,101,252,101,17,108,239,108,159,115,201,115,225,125,148,149,222,95,223,95,139,102,99,110,205,125,96,127,224,130,169,149,53,156,253,158,38,0,0,188,60,0,60,0,42,0,198,91,28,135,16,139,18,106,245,110,38,0,21,188,60,0,60,0,42,0,93,82,90,83,205,98,15,100,178,100,52,103,56,106,202,108,192,115,158,116,148,123,149,124,27,126,138,129,54,130,132,133,235,143,249,150,193,153,179,78,2,107,84,114,155,147,238,153,198,154,38,0,24,188,60,0,60,0,42,0,52,79,74,83,205,83,219,83,204,98,44,100,0,101,145,101,195,105,238,108,88,111,237,115,84,117,34,118,228,118,252,118,208,120,251,120,44,121,70,125,44,130,224,135,212,143,18,152,239,152,187,90,115,98,43,100,61,101,12,103,214,128,140,135,22,152,38,0,28,188,60,0,60,0,42,0,195,82,212,98,165,100,36,110,81,111,124,118,203,141,177,145,98,146,238,154,67,155,241,84,97,109,22,129,56,146,83,157,38,0,41,188,60,0,60,0,42,0,35,80,141,80,74,87,168,89,40,92,71,94,119,95,63,98,62,101,185,101,193,101,9,102,139,103,156,105,194,110,197,120,33,125,170,128,128,129,43,130,179,130,161,132,140,134,42,138,23,139,166,144,50,150,144,159,255,78,150,83,107,94,172,95,18,100,202,101,134,104,83,114,61,130,131,135,138,147,227,154,116,155,38,0,48,188,60,0,60,0,42,0,13,80,243,79,249,87,152,95,220,98,146,99,111,103,67,110,25,113,195,118,204,128,218,128,244,136,245,136,25,137,224,140,41,143,77,145,106,150,79,87,111,87,82,98,50,116,211,132,38,0,49,188,60,0,60,0,42,0,47,79,112,79,27,94,207,103,34,104,125,118,126,118,68,155,168,124,38,0,136,188,60,0,60,0,42,0,97,94,10,106,105,113,212,113,106,117,65,126,67,133,233,133,220,152,89,126,251,127,176,129,41,134,162,136,38,0,140,188,60,0,60,0,42,0,16,79,79,123,112,127,165,149,67,106,120,127,38,0,148,188,60,0,60,0,42,0,225,81,6,94,181,104,62,108,78,108,219,108,175,114,196,123,3,131,53,123,9,138,191,152,38,0,149,188,60,0,60,0,42,0,213,108,58,116,38,0,189,188,60,0,60,0,42,0,251,80,136,82,193,88,216,100,151,106,167,116,86,118,167,120,23,134,226,149,57,151,215,100,19,117,136,117,94,137,255,157,10,159,38,0,192,188,60,0,60,0,42,0,94,83,1,95,138,139,168,143,175,143,138,144,237,95,131,98,105,124,174,143,65,129,198,140,226,153,191,154,24,157,38,0,196,188,60,0,60,0,42,0,37,82,165,119,73,156,8,159,70,95,233,157,38,0,209,188,60,0,60,0,42,0,25,78,2,80,117,81,91,92,119,94,30,102,58,102,196,103,197,104,179,112,1,117,197,117,201,121,221,122,39,143,32,153,8,154,38,78,64,88,99,125,62,127,248,143,53,146,242,146,124,146,38,0,244,188,60,0,60,0,42,0,221,79,33,88,49,88,246,91,110,102,101,107,17,109,122,110,125,111,228,115,43,117,233,131,220,136,19,137,92,139,20,143,204,79,217,118,32,124,70,132,76,151,7,157,252,158,38,0,245,188,60,0,60,0,42,0,15,79,213,80,16,83,92,83,147,91,169,95,13,103,143,121,121,129,47,131,20,133,7,137,134,137,57,143,59,143,165,153,18,156,163,88,94,94,81,98,238,111,153,123,212,131,96,135,110,135,105,157,38,0,248,188,60,0,60,0,44,103,38,0,252,188,60,0,60,0,118,78,38,0,9,189,60,0,60,0,42,0,248,79,73,89,1,92,239,92,240,92,103,99,210,104,253,112,162,113,43,116,43,126,236,132,2,135,34,144,210,146,243,156,48,78,6,89,247,123,152,125,246,131,12,157,38,0,128,189,60,0,60,0,42,0,13,78,216,78,239,79,133,80,86,82,111,82,38,84,144,84,224,87,43,89,102,90,90,91,117,91,204,91,156,94,118,98,119,101,167,101,110,109,165,110,54,114,38,123,63,124,54,127,80,129,81,129,154,129,64,130,153,130,169,131,3,138,160,140,230,140,251,140,116,141,186,141,232,144,220,145,28,150,68,150,217,153,231,156,198,78,216,79,141,90,148,98,202,98,138,99,116,104,145,105,170,109,158,115,84,121,95,123,88,127,102,127,213,128,163,130,251,130,0,133,168,134,9,135,157,136,210,136,215,141,7,146,43,152,146,155,169,158,38,0,129,189,60,0,60,0,23,83,38,0,132,189,60,0,60,0,42,0,6,82,41,84,116,86,179,88,84,89,110,89,255,95,164,97,110,98,16,102,126,108,26,113,198,118,137,124,222,124,27,125,172,130,193,140,240,150,83,79,76,87,9,94,140,103,251,104,252,104,27,108,83,110,198,111,135,114,90,117,15,120,40,123,166,128,185,129,97,133,82,143,250,158,34,159,38,0,136,189,60,0,60,0,42,0,91,79,23,95,127,95,194,98,170,92,83,121,49,125,116,130,0,131,205,151,244,154,251,158,38,0,149,189,60,0,60,0,42,0,41,93,11,103,218,104,124,120,67,126,108,157,11,88,48,111,5,155,38,0,68,190,60,0,60,0,42,0,21,78,153,80,21,83,42,83,81,83,131,89,98,90,135,94,178,96,138,97,73,98,121,98,144,101,135,103,167,105,212,107,214,107,215,107,216,107,184,108,53,116,250,117,18,120,145,120,213,121,216,121,131,124,203,125,225,127,165,128,62,129,194,129,242,131,26,135,232,136,185,138,108,139,187,140,25,145,94,151,219,152,59,159,243,78,254,79,85,82,46,87,228,87,163,89,65,92,179,94,177,96,208,104,17,105,152,108,221,109,224,109,222,111,201,114,210,114,222,117,249,117,101,119,85,121,230,123,21,125,134,127,83,129,152,130,190,130,6,132,214,132,141,134,148,140,20,141,97,143,179,144,235,144,159,149,116,150,15,151,180,151,17,154,27,154,192,154,25,159,38,0,72,190,60,0,60,0,42,0,172,86,42,91,108,95,140,101,179,106,175,107,92,109,241,111,21,112,93,114,173,115,167,140,211,140,59,152,16,81,239,100,201,119,125,126,207,129,11,134,115,140,160,144,76,148,38,151,112,152,2,155,34,155,38,0,89,190,60,0,60,0,42,0,145,97,55,108,88,128,1,154,176,81,237,81,244,81,9,90,38,0,172,192,60,0,60,0,42,0,77,78,139,78,155,78,213,78,58,79,60,79,127,79,223,79,255,80,242,83,248,83,6,85,227,85,219,86,235,88,98,89,17,90,235,91,250,91,4,92,243,93,43,94,153,95,29,96,104,99,156,101,175,101,246,103,251,103,173,104,123,107,153,108,215,108,35,110,9,112,69,115,2,120,62,121,64,121,96,121,193,121,233,123,23,125,114,125,134,128,13,130,142,131,209,132,199,134,223,136,80,138,94,138,29,139,220,140,102,141,173,143,170,144,252,152,223,153,157,158,158,80,90,82,120,83,139,84,210,89,66,105,173,105,92,108,231,117,182,118,226,122,37,123,55,127,33,135,151,137,219,153,102,155,202,155,36,156,38,0,173,192,60,0,60,0,42,0,74,82,20,103,202,105,13,114,180,132,96,148,38,0,176,192,60,0,60,0,42,0,152,80,42,82,113,92,99,101,85,108,202,115,35,117,157,117,151,123,156,132,120,145,48,151,119,82,205,89,127,91,117,106,120,111,152,111,251,114,86,126,21,138,223,147,138,149,255,107,38,0,180,192,60,0,60,0,42,0,119,78,146,100,186,107,94,113,169,133,38,0,188,192,60,0,60,0,42,0,9,78,73,103,238,104,23,110,159,130,24,133,107,136,221,124,228,145,22,155,38,0,189,192,60,0,60,0,42,0,247,99,129,111,18,146,175,152,69,83,60,85,67,107,227,127,100,147,5,151,14,151,38,0,193,192,60,0,60,0,42,0,10,78,183,80,207,80,31,81,70,85,170,85,23,86,64,91,25,92,224,92,56,94,138,94,160,94,194,94,243,96,81,104,97,106,88,110,61,114,64,114,192,114,248,118,101,121,177,123,212,127,243,136,244,137,115,138,97,140,222,140,28,151,125,88,156,95,76,102,164,107,30,117,215,125,159,147,89,152,58,155,38,0,200,192,60,0,60,0,42,0,94,88,189,116,253,140,19,156,38,0,201,192,60,0,60,0,42,0,199,85,97,122,34,125,114,130,237,105,199,111,18,112,38,0,221,192,60,0,60,0,42,0,114,114,31,117,37,117,25,123,26,119,78,146,38,0,28,193,60,0,60,0,42,0,133,88,251,88,188,93,143,94,182,94,144,95,85,96,146,98,127,99,77,101,145,102,217,102,248,102,22,104,242,104,128,114,94,116,110,123,110,125,214,125,114,127,229,128,18,130,175,133,127,137,147,138,29,144,228,146,205,158,32,159,108,86,127,90,223,99,149,100,81,110,168,111,19,125,33,128,167,130,79,146,38,0,29,193,60,0,60,0,42,0,21,89,109,89,45,94,220,96,20,102,115,102,144,103,80,108,197,109,95,111,243,119,169,120,198,132,203,145,43,147,112,102,253,119,74,129,3,130,37,135,80,146,43,159,38,0,32,193,60,0,60,0,42,0,217,78,202,80,72,81,132,85,11,91,163,91,71,98,126,101,203,101,50,110,125,113,1,116,68,116,135,116,191,116,108,118,170,121,218,125,85,126,168,127,122,129,179,129,57,130,26,134,236,135,117,138,227,141,120,144,145,146,37,148,77,153,174,155,161,88,217,90,31,92,32,92,115,92,3,97,90,107,175,113,69,123,171,125,84,139,113,139,199,147,56,154,83,156,123,156,38,0,36,193,60,0,60,0,42,0,104,83,81,92,84,105,196,108,41,109,43,110,12,130,155,133,59,137,45,138,170,138,234,150,103,159,112,80,159,90,242,99,172,102,7,114,159,120,39,122,50,125,38,0,44,193,60,0,60,0,42,0,97,82,185,102,178,107,150,126,254,135,13,141,131,149,93,150,69,91,184,97,123,100,82,119,107,139,155,146,241,151,38,0,45,193,60,0,60,0,42,0,29,101,137,109,238,113,193,86,254,97,68,112,118,128,161,142,119,148,115,152,38,0,49,193,60,0,60,0,42,0,206,87,211,89,172,91,39,96,250,96,16,98,31,102,95,102,41,115,249,115,219,118,1,119,108,123,86,128,114,128,101,129,160,138,146,145,70,116,2,154,38,0,56,193,60,0,60,0,42,0,22,78,226,82,114,107,23,109,5,122,57,123,48,125,176,140,40,94,18,109,80,126,251,134,38,0,140,193,60,0,60,0,42,0,236,83,47,86,81,88,181,91,15,92,17,92,226,93,64,98,131,99,20,100,45,102,179,104,188,108,136,109,175,110,31,112,164,112,210,113,38,117,143,117,142,117,25,118,17,123,224,123,43,124,32,125,57,125,44,133,109,133,7,134,52,138,13,144,97,144,181,144,183,146,246,151,55,154,75,79,207,79,114,83,201,85,253,87,80,88,44,97,78,99,20,106,221,108,113,123,190,123,69,126,219,127,134,129,88,130,248,134,8,142,101,145,4,151,72,155,185,155,58,156,38,0,141,193,60,0,60,0,42,0,215,79,108,92,95,103,145,109,159,124,140,126,22,139,22,141,31,144,44,109,108,144,38,0,144,193,60,0,60,0,42,0,107,91,253,93,13,100,192,132,92,144,225,152,231,152,241,152,38,0,148,193,60,0,60,0,42,0,135,115,163,122,192,135,38,0,161,193,60,0,60,0,42,0,139,91,154,96,126,103,222,109,31,138,166,138,1,144,12,152,215,103,230,122,6,155,38,0,196,193,60,0,60,0,42,0,55,82,81,112,142,120,150,147,226,96,236,102,99,116,38,0,224,193,60,0,60,0,42,0,112,136,215,145,38,0,24,194,60,0,60,0,42,0,238,79,215,83,253,85,218,86,130,87,253,88,194,90,136,91,171,92,192,92,37,94,1,97,13,98,75,98,136,99,28,100,54,101,120,101,57,106,138,107,52,108,25,109,49,111,231,113,233,114,120,115,7,116,178,116,38,118,97,119,192,121,87,122,234,122,185,124,143,125,172,125,97,126,158,127,41,129,49,131,144,132,218,132,234,133,150,136,176,138,144,139,56,143,66,144,131,144,108,145,150,146,185,146,139,150,167,150,168,150,214,150,0,151,8,152,150,153,211,154,26,155,223,83,46,85,203,94,108,102,179,107,197,108,178,110,201,111,95,119,98,119,141,119,95,121,84,124,58,129,132,129,184,129,142,139,78,140,114,150,188,152,72,153,38,0,25,194,60,0,60,0,42,0,212,83,126,88,25,89,112,91,191,91,209,109,90,111,159,113,33,116,185,116,133,128,253,131,246,79,15,80,53,81,76,90,90,106,76,154,235,157,38,0,28,194,60,0,60,0,42,0,225,93,135,95,170,95,66,96,236,101,18,104,111,105,83,106,137,107,53,109,243,109,227,115,254,118,172,119,77,123,20,125,35,129,28,130,64,131,244,132,99,133,98,138,196,138,135,145,30,147,6,152,180,153,154,79,229,114,249,118,52,119,3,125,171,128,232,153,10,155,137,157,38,0,32,194,60,0,60,0,42,0,12,98,83,136,240,143,101,146,73,125,38,0,45,194,60,0,60,0,42,0,7,93,39,93,105,93,216,131,38,0,108,194,60,0,60,0,42,0,5,80,236,109,32,113,38,0,172,194,60,0,60,0,42,0,95,116,157,129,104,135,113,134,38,0,181,194,60,0,60,0,42,0,213,111,254,98,210,127,54,137,114,137,116,97,160,113,176,150,38,0,185,194,60,0,60,0,42,0,30,78,88,78,231,80,221,82,71,83,127,98,7,102,105,126,5,136,94,150,77,88,25,155,38,0,220,194,60,0,60,0,42,0,141,79,25,83,54,86,203,89,164,90,56,92,78,92,77,92,2,94,17,95,67,96,189,101,47,102,66,102,190,103,244,103,28,115,226,119,58,121,197,127,148,132,205,132,150,137,102,138,105,138,225,138,85,140,122,140,114,80,85,81,174,83,123,85,82,88,221,94,178,103,249,103,140,111,230,125,228,127,223,138,240,138,73,140,195,145,73,147,75,152,38,0,221,194,60,0,60,0,42,0,244,87,212,91,15,95,111,96,237,98,13,105,150,107,92,110,132,113,210,123,85,135,88,139,254,142,223,152,254,152,176,85,179,90,59,104,38,0,224,194,60,0,60,0,42,0,56,79,129,79,225,79,123,84,32,90,184,91,60,97,176,101,104,102,252,113,51,117,94,121,51,125,78,129,227,129,152,131,170,133,206,133,3,135,10,138,171,142,155,143,197,143,194,84,122,86,223,86,250,89,91,108,231,119,36,129,16,141,35,152,234,153,38,0,228,194,60,0,60,0,42,0,49,89,164,91,230,91,137,96,203,135,203,152,38,0,236,194,60,0,60,0,42,0,233,91,11,92,195,95,129,108,241,109,11,112,26,117,175,130,246,138,163,104,111,111,214,113,90,132,20,148,79,156,38,0,237,194,60,0,60,0,42,0,192,78,65,83,187,143,38,0,13,195,60,0,60,0,217,150,38,0,40,197,60,0,60,0,15,108,38,0,68,197,60,0,60,0,42,0,158,78,196,79,82,81,94,85,37,90,232,92,17,98,89,114,189,130,170,131,254,134,89,136,29,138,63,150,197,150,19,153,9,157,93,157,43,78,230,84,63,90,64,90,233,92,180,117,17,120,12,123,211,143,15,147,94,157,38,0,69,197,60,0,60,0,42,0,10,88,179,92,189,93,68,94,225,96,21,97,225,99,2,106,37,110,2,145,84,147,78,152,16,156,119,159,83,80,126,83,162,84,148,85,105,86,109,129,60,132,168,137,228,138,154,157,118,159,38,0,72,197,60,0,60,0,42,0,137,91,184,92,9,99,79,102,72,104,60,119,193,150,141,151,84,152,159,155,73,104,180,114,11,141,8,157,38,0,76,197,60,0,60,0,42,0,161,101,1,139,203,142,188,149,14,86,30,98,224,99,117,122,16,138,79,144,30,152,54,157,38,0,84,197,60,0,60,0,42,0,53,85,169,92,214,93,181,94,151,102,76,118,244,131,199,149,125,85,149,90,83,93,123,102,100,129,74,132,237,132,243,138,55,152,163,153,239,158,38,0,85,197,60,0,60,0,42,0,211,88,188,98,206,114,40,157,38,0,89,197,60,0,60,0,42,0,240,78,46,89,15,96,59,102,131,107,231,121,38,157,108,83,113,87,241,108,206,118,133,151,38,0,96,197,60,0,60,0,42,0,147,83,192,84,195,87,22,93,27,97,214,102,175,109,141,120,126,130,152,150,68,151,254,80,9,85,64,85,111,86,45,90,21,93,40,99,113,99,56,107,4,111,67,115,154,118,90,119,185,119,209,120,25,121,134,133,249,133,73,151,3,154,38,0,97,197,60,0,60,0,42,0,132,83,124,98,150,99,178,109,10,126,75,129,77,152,93,84,57,98,36,100,40,150,38,0,117,197,60,0,60,0,42,0,251,106,76,127,175,157,26,158,182,86,200,90,67,127,234,157,38,0,124,197,60,0,60,0,42,0,95,78,59,80,182,81,28,89,249,96,246,99,48,105,58,114,54,128,206,145,220,87,38,0,125,197,60,0,60,0,42,0,49,95,4,125,229,130,111,132,187,132,229,133,141,142,26,114,180,121,219,123,101,124,112,148,47,156,184,157,160,159,38,0,145,197,60,0,60,0,42,0,111,79,228,88,67,91,89,96,218,99,24,101,109,101,152,102,74,105,35,106,11,109,1,112,108,113,210,117,13,118,179,121,112,122,138,127,68,137,147,139,192,145,125,150,10,153,137,95,62,111,60,112,202,112,98,118,59,119,24,134,48,143,114,148,186,152,100,154,38,0,180,197,60,0,60,0,42,0,4,87,161,95,188,101,1,111,0,118,166,121,158,138,173,153,90,155,108,159,9,87,84,101,228,109,235,152,38,0,181,197,60,0,60,0,42,0,4,81,182,97,145,98,141,106,198,129,118,126,38,0,184,197,60,0,60,0,42,0,67,80,48,88,102,95,9,113,0,138,250,138,191,80,61,83,227,90,158,139,34,145,52,159,57,159,38,0,188,197,60,0,60,0,42,0,124,91,22,134,236,129,38,0,196,197,60,0,60,0,42,0,250,79,60,81,180,86,68,89,169,99,249,109,38,93,127,94,238,102,104,127,131,145,185,149,38,0,197,197,60,0,60,0,42,0,170,93,109,105,171,93,52,145,38,0,208,197,60,0,60,0,42,0,90,96,192,102,38,0,212,197,60,0,60,0,134,81,38,0,236,197,60,0,60,0,42,0,136,78,89,79,130,89,95,107,93,108,181,116,22,121,7,130,69,130,57,131,63,143,93,143,24,153,1,130,38,0,237,197,60,0,60,0,42,0,166,78,223,87,121,95,19,102,171,117,121,126,111,139,6,144,91,154,167,93,204,97,226,109,190,149,38,0,240,197,60,0,60,0,42,0,165,86,39,88,248,89,31,90,180,91,246,94,80,99,59,99,61,105,135,108,191,108,142,109,147,109,245,109,20,111,223,112,54,113,89,113,195,113,213,113,79,120,111,120,117,123,227,125,47,126,77,136,223,142,91,146,246,156,87,81,230,86,207,87,63,91,129,96,190,99,227,102,222,106,55,110,217,129,154,131,53,135,21,136,140,139,240,157,38,0,244,197,60,0,60,0,42,0,133,96,133,109,177,113,177,149,78,86,38,0,252,197,60,0,60,0,42,0,173,83,211,103,142,112,48,113,48,116,118,130,210,130,187,149,229,154,125,158,137,81,105,88,213,97,74,98,191,106,182,106,78,112,105,112,197,145,92,153,88,155,246,158,38,0,253,197,60,0,60,0,42,0,196,102,193,113,73,132,197,102,128,113,23,114,104,151,38,0,1,198,60,0,60,0,42,0,75,88,184,93,113,95,32,102,142,102,121,105,174,105,56,108,243,108,54,110,65,111,218,111,27,112,47,112,80,113,223,113,112,115,91,116,212,116,200,118,78,122,147,126,241,130,96,138,206,143,72,147,25,151,143,84,52,91,48,91,103,109,244,111,109,118,164,120,8,126,17,136,15,141,226,144,250,151,38,0,8,198,60,0,60,0,42,0,66,78,42,80,8,82,225,83,243,102,109,108,202,111,10,115,127,119,98,122,174,130,221,133,2,134,212,136,99,138,125,139,107,140,179,146,19,151,16,152,200,86,219,90,253,98,156,99,152,103,105,115,104,119,150,119,68,126,243,127,197,130,74,133,75,133,137,133,139,134,58,135,226,155,214,157,145,158,38,0,36,198,60,0,60,0,42,0,148,78,13,79,201,79,178,80,72,83,62,84,51,84,218,85,98,88,186,88,103,89,27,90,228,91,159,96,202,97,86,101,255,101,100,102,167,104,90,108,179,111,207,112,172,113,82,115,125,123,8,135,164,138,50,156,7,159,245,78,227,79,20,85,247,85,65,86,44,87,170,90,239,90,228,95,96,97,66,99,89,108,185,122,113,128,35,131,86,137,55,139,195,143,213,143,104,144,202,147,214,147,169,150,65,154,47,159,38,0,37,198,60,0,60,0,42,0,75,92,131,108,68,115,137,115,58,146,38,0,40,198,60,0,60,0,42,0,171,110,101,116,31,118,105,122,21,126,10,134,188,90,77,97,55,102,51,108,133,113,128,133,64,143,158,145,222,151,66,153,46,156,38,0,44,198,60,0,60,0,42,0,64,81,226,85,131,129,38,0,57,198,60,0,60,0,42,0,197,88,193,100,238,116,21,117,112,118,193,127,149,144,205,150,84,153,129,85,241,94,195,110,85,118,186,121,75,127,202,132,221,150,82,152,38,0,64,198,60,0,60,0,42,0,38,110,230,116,169,122,170,122,229,129,217,134,120,135,27,138,199,84,238,86,80,90,153,103,60,109,39,115,138,122,53,132,76,139,38,0,68,198,60,0,60,0,42,0,73,90,140,91,155,91,161,104,0,105,99,109,169,115,19,116,44,116,151,120,233,125,235,127,24,129,85,129,158,131,76,140,46,150,17,152,19,82,184,87,167,89,143,92,232,95,203,96,180,109,204,118,38,0,72,198,60,0,60,0,240,102,38,0,85,198,60,0,60,0,42,0,128,95,250,101,137,103,106,108,139,115,43,92,7,112,236,143,38,0,92,198,60,0,60,0,42,0,45,80,3,90,106,107,238,119,167,90,38,0,120,198,60,0,60,0,42,0,22,89,108,93,205,93,37,115,79,117,78,80,52,93,84,93,40,110,104,113,168,120,200,120,117,128,151,150,38,0,148,198,60,0,60,0,42,0,229,80,249,81,47,88,45,89,150,89,218,89,229,91,162,93,215,98,22,100,147,100,254,100,220,102,72,106,255,113,100,116,136,122,175,122,71,126,94,126,0,128,112,129,239,135,129,137,32,139,89,144,128,144,82,153,96,80,147,85,115,87,157,88,8,91,122,94,173,95,188,95,128,107,134,111,69,121,126,122,133,122,88,133,118,144,194,157,38,0,149,198,60,0,60,0,42,0,126,97,50,107,116,109,31,126,37,137,177,143,189,110,208,132,38,0,169,198,60,0,60,0,42,0,209,79,173,80,151,81,199,82,199,87,137,88,185,91,184,94,66,97,149,105,140,109,103,110,182,110,148,113,98,116,40,117,44,117,115,128,56,131,201,132,10,142,148,147,222,147,155,80,130,91,113,93,117,97,131,97,230,105,103,120,2,130,249,134,52,142,38,0,176,198,60,0,60,0,42,0,142,78,81,79,118,80,42,81,200,83,203,83,243,83,135,91,211,91,36,92,26,97,130,97,244,101,91,114,151,115,64,116,194,118,80,121,145,121,185,121,6,125,189,127,139,130,213,133,94,134,194,143,71,144,245,144,234,145,133,150,232,150,233,150,143,78,180,78,193,79,74,80,1,84,35,88,78,93,189,94,69,103,163,117,241,118,253,122,38,128,48,128,35,139,61,142,93,147,128,158,140,158,114,159,38,0,177,198,60,0,60,0,42,0,214,82,103,95,237,101,49,102,47,104,92,113,54,122,193,144,10,152,224,113,38,0,180,198,60,0,60,0,42,0,145,78,82,106,158,107,144,111,137,113,24,128,184,130,83,133,75,144,149,150,242,150,251,151,242,96,132,108,212,123,28,125,35,151,245,151,38,0,184,198,60,0,60,0,42,0,26,133,49,155,144,78,38,0,197,198,60,0,60,0,42,0,138,113,196,150,38,0,208,198,60,0,60,0,42,0,67,81,159,83,225,84,19,87,18,87,163,87,155,90,196,90,195,91,40,96,63,97,244,99,133,108,57,109,114,110,144,110,48,114,63,115,87,116,209,130,129,136,69,143,96,144,98,150,88,152,27,157,164,81,28,87,108,103,101,105,40,115,169,125,171,130,151,133,63,135,28,139,250,146,53,154,119,157,255,158,38,0,212,198,60,0,60,0,42,0,8,103,138,141,94,146,22,82,164,124,38,0,4,199,60,0,60,0,42,0,77,79,73,80,222,80,113,83,13,87,212,89,1,90,9,92,112,97,144,102,45,110,50,114,75,116,239,125,195,128,14,132,102,132,63,133,95,135,91,136,24,137,2,139,85,144,203,151,79,155,159,85,67,94,82,113,168,113,255,117,115,132,94,136,201,138,54,144,200,149,217,151,225,151,39,153,170,154,38,0,32,199,60,0,60,0,42,0,115,78,145,79,18,81,106,81,47,85,169,85,122,91,165,91,124,94,125,94,190,94,160,96,223,96,8,97,9,97,196,99,56,101,9,103,212,103,218,103,97,105,98,105,185,108,39,109,56,110,225,111,54,115,55,115,92,116,49,117,82,118,173,125,254,129,56,132,213,136,152,138,219,138,237,138,48,142,66,142,74,144,62,144,122,144,73,145,201,145,110,147,152,81,102,84,255,86,221,88,55,94,201,99,191,101,209,108,86,114,9,118,16,118,172,122,179,122,114,124,197,124,204,125,116,129,160,131,85,133,100,133,176,134,180,134,100,135,21,137,137,139,12,144,163,151,170,155,221,158,44,159,165,159,38,0,33,199,60,0,60,0,42,0,9,88,211,107,137,128,178,128,37,81,38,0,36,199,60,0,60,0,42,0,65,81,107,89,57,92,100,111,167,115,228,128,7,141,23,146,143,149,0,102,198,146,38,0,40,199,60,0,60,0,42,0,127,128,79,111,222,119,38,0,53,199,60,0,60,0,42,0,14,98,28,112,104,125,141,135,232,114,38,0,64,199,60,0,60,0,42,0,160,87,105,96,71,97,183,107,190,138,128,146,177,150,44,84,154,86,1,87,189,87,150,97,188,106,181,110,250,114,226,115,110,118,20,138,30,145,87,159,38,0,68,199,60,0,60,0,42,0,89,78,230,156,38,0,76,199,60,0,60,0,42,0,31,84,235,109,45,133,112,150,243,151,238,152,145,85,31,93,213,94,20,97,42,151,38,0,77,199,60,0,60,0,42,0,214,99,227,108,145,144,146,96,57,99,101,109,38,0,81,199,60,0,60,0,42,0,221,81,201,97,186,129,249,157,38,0,88,199,60,0,60,0,42,0,157,79,26,80,0,81,156,91,15,97,255,97,236,100,5,105,197,107,145,117,227,119,169,127,100,130,143,133,251,135,99,136,188,138,112,139,171,145,23,81,210,81,147,82,183,93,57,107,42,111,23,115,18,121,152,135,80,153,38,0,116,199,60,0,60,0,42,0,140,78,229,78,10,79,55,89,232,89,242,93,27,95,91,95,33,96,62,114,229,115,112,117,205,117,251,121,12,128,51,128,132,128,225,130,81,131,189,140,179,140,135,144,244,152,12,153,191,84,104,87,20,92,93,95,46,104,31,109,198,115,17,138,81,138,228,143,182,150,38,0,117,199,60,0,60,0,42,0,55,112,202,118,202,127,204,127,252,127,26,139,11,95,164,113,193,157,38,0,120,199,60,0,60,0,42,0,186,78,193,78,3,82,112,83,189,84,224,86,251,89,197,91,21,95,205,95,110,110,106,125,53,131,147,134,141,138,109,151,119,151,222,78,25,88,36,89,99,90,104,98,36,108,7,109,139,121,126,124,162,130,192,136,38,0,124,199,60,0,60,0,42,0,0,78,90,79,126,79,249,88,229,101,162,110,56,144,176,147,185,153,198,108,252,142,38,0,132,199,60,0,60,0,42,0,251,78,236,88,138,89,217,89,65,96,20,122,79,131,195,140,77,125,125,136,139,146,234,152,38,0,133,199,60,0,60,0,42,0,101,81,68,83,255,94,38,0,137,199,60,0,60,0,42,0,205,78,105,82,85,91,191,130,181,90,38,0,144,199,60,0,60,0,42,0,212,78,58,82,168,84,201,89,255,89,80,91,87,91,92,91,99,96,72,97,203,110,153,112,110,113,134,115,247,116,181,117,193,120,43,125,5,128,234,129,40,131,23,133,201,133,238,138,199,140,204,150,112,84,40,91,86,91,118,91,216,103,218,108,120,114,37,119,38,119,162,124,20,128,254,128,8,131,50,131,191,131,120,134,220,137,62,138,178,140,109,141,161,147,63,152,237,154,147,155,191,157,211,157,38,0,145,199,60,0,60,0,42,0,92,79,250,82,188,86,171,101,40,102,124,112,184,112,53,114,189,125,141,130,76,145,192,150,114,157,157,92,13,96,177,101,222,103,75,108,47,113,179,114,143,120,38,0,148,199,60,0,60,0,42,0,113,91,231,104,152,107,122,111,222,118,87,82,20,98,79,154,38,0,160,199,60,0,60,0,42,0,145,92,171,102,91,111,180,123,42,124,54,136,148,109,92,111,243,111,38,0,161,199,60,0,60,0,42,0,220,150,97,83,195,86,40,119,252,120,77,137,38,0,165,199,60,0,60,0,42,0,8,78,215,78,32,83,52,88,187,88,239,88,108,89,7,92,51,94,132,94,53,95,140,99,178,102,86,103,31,106,163,106,12,107,63,111,70,114,80,115,139,116,224,122,167,124,120,129,223,129,231,129,138,131,108,132,35,133,148,133,207,133,221,136,19,141,172,145,119,149,156,150,189,80,88,89,157,89,25,91,130,93,231,94,21,98,51,111,66,114,52,118,218,124,152,127,7,132,197,136,236,140,35,145,216,147,38,153,158,158,38,0,172,199,60,0,60,0,42,0,141,81,201,84,40,87,176,91,77,98,80,103,61,104,147,104,61,110,211,110,125,112,33,126,193,136,161,140,9,143,75,159,78,159,8,89,61,93,87,98,159,105,126,112,148,126,38,0,193,199,60,0,60,0,42,0,45,114,143,123,205,138,26,147,34,93,25,115,36,116,151,147,38,0,0,200,60,0,60,0,42,0,71,79,78,79,50,81,128,84,208,89,149,94,181,98,117,103,110,105,23,106,174,108,26,110,217,114,42,115,189,117,184,123,53,125,231,130,249,131,87,132,247,133,91,138,175,140,135,142,25,144,184,144,206,150,95,159,129,91,168,92,124,103,226,103,16,108,116,111,38,112,116,114,93,127,157,127,244,130,198,134,155,136,26,137,221,137,70,138,108,140,124,150,38,0,1,200,60,0,60,0,42,0,227,82,10,84,225,90,194,91,88,100,117,101,244,110,196,114,132,118,77,122,27,123,77,124,62,126,223,127,123,131,43,139,202,140,100,141,225,141,95,142,234,143,249,143,105,144,209,147,0,106,231,120,244,124,194,131,191,137,22,144,176,153,38,0,4,200,60,0,60,0,42,0,67,79,122,79,179,80,104,81,120,81,77,82,106,82,97,88,124,88,96,89,8,92,85,92,219,94,155,96,48,98,19,104,191,107,8,108,177,111,78,113,32,116,48,117,56,117,81,117,114,118,76,123,139,123,173,123,198,123,143,126,110,138,62,143,73,143,63,146,147,146,34,147,43,148,251,150,90,152,107,152,30,153,46,84,192,86,229,90,71,92,211,93,41,98,195,99,195,101,52,104,199,105,84,110,182,111,75,114,113,116,14,117,75,117,96,117,202,117,92,118,218,120,91,124,182,127,230,127,70,129,158,129,67,131,148,142,7,143,133,144,61,145,209,146,42,147,91,151,102,151,83,152,230,152,48,153,11,155,99,156,7,158,38,0,8,200,60,0,60,0,42,0,7,82,42,98,152,98,89,109,100,118,202,122,192,123,118,125,138,92,98,102,131,122,38,0,16,200,60,0,60,0,42,0,96,83,190,92,151,94,56,111,185,112,152,124,17,151,142,155,222,158,84,79,138,88,183,115,24,123,31,124,235,130,42,133,197,134,152,137,173,152,207,158,38,0,17,200,60,0,60,0,42,0,165,99,122,100,118,135,4,105,106,105,40,135,213,141,64,142,8,156,38,0,21,200,60,0,60,0,42,0,1,78,149,78,173,78,92,80,117,80,72,84,195,89,154,91,64,94,173,94,247,94,129,95,197,96,58,99,63,101,116,101,204,101,118,102,120,102,254,103,104,105,137,106,99,107,64,108,192,109,232,109,31,110,94,110,30,112,161,112,142,115,253,115,58,117,91,119,135,120,142,121,11,122,125,122,190,124,142,125,71,130,2,138,234,138,158,140,45,145,74,145,216,145,102,146,204,146,32,147,6,151,86,151,92,151,2,152,14,159,66,79,238,83,103,90,119,90,20,96,159,99,111,104,131,104,214,104,111,112,245,115,148,117,115,123,155,131,60,138,73,144,114,145,229,146,90,151,38,0,28,200,60,0,60,0,42,0,54,82,145,82,124,85,36,88,29,94,31,95,140,96,208,99,175,104,223,111,109,121,44,123,205,129,186,133,253,136,248,138,68,142,141,145,100,150,155,150,61,151,76,152,74,159,21,81,35,90,224,100,24,115,69,116,71,119,148,121,10,122,249,125,54,142,79,142,139,142,87,147,132,150,242,151,167,155,247,155,38,0,112,200,60,0,60,0,42,0,206,79,70,81,203,81,169,82,50,86,20,95,107,95,170,99,205,100,233,101,65,102,250,102,249,102,29,103,157,104,215,104,253,105,21,111,110,111,103,113,229,113,42,114,170,116,58,119,86,121,90,121,223,121,32,122,149,122,151,124,223,124,68,125,112,126,135,128,251,133,164,134,84,138,191,138,153,141,129,142,32,144,109,144,227,145,59,150,213,150,229,156,123,79,174,80,1,82,157,83,8,86,106,86,37,91,130,95,198,97,126,98,130,107,161,111,49,116,129,118,103,121,200,122,10,123,217,124,246,124,105,125,91,125,217,128,202,129,90,130,38,133,41,135,130,138,95,139,31,146,154,146,253,146,219,155,112,157,2,159,38,0,113,200,60,0,60,0,42,0,207,101,7,124,179,141,195,147,47,118,38,0,116,200,60,0,60,0,42,0,88,91,10,92,245,98,38,0,120,200,60,0,60,0,42,0,82,83,217,98,29,115,38,0,133,200,60,0,60,0,42,0,39,80,151,91,158,95,176,96,107,97,213,104,217,109,46,116,46,122,66,125,156,125,49,126,107,129,42,142,53,142,126,147,24,148,0,79,82,97,202,103,54,105,5,106,125,116,7,118,189,124,189,135,100,142,38,0,140,200,60,0,60,0,42,0,80,79,80,87,230,93,167,94,43,99,73,82,228,117,157,131,253,154,38,0,196,200,60,0,60,0,106,127,38,0,252,200,60,0,60,0,42,0,59,78,79,79,143,79,90,80,221,89,196,128,106,84,104,84,254,85,79,89,153,91,222,93,218,94,93,102,49,103,241,103,42,104,232,108,50,109,74,110,141,111,183,112,224,115,135,117,76,124,2,125,44,125,162,125,31,130,219,134,59,138,133,138,112,141,138,142,51,143,49,144,78,145,82,145,68,148,208,153,31,78,156,79,20,81,12,92,108,94,196,98,67,120,82,124,152,128,96,129,31,133,192,134,239,136,75,138,217,140,142,141,8,143,82,144,82,146,12,151,20,151,4,159,38,0,253,200,60,0,60,0,42,0,249,122,165,124,38,0,0,201,60,0,60,0,42,0,202,79,1,81,198,81,200,87,239,91,251,92,89,102,61,106,90,109,150,110,236,111,12,113,111,117,227,122,34,136,33,144,117,144,203,150,255,153,66,86,251,87,171,88,247,96,153,100,180,118,167,125,71,127,6,142,114,142,15,148,188,150,21,153,82,156,84,157,38,0,4,201,60,0,60,0,42,0,1,131,124,78,38,0,17,201,60,0,60,0,42,0,45,78,242,78,70,136,205,145,62,119,38,0,137,201,60,0,60,0,42,0,125,83,115,83,158,85,38,0,144,201,60,0,60,0,42,0,219,106,45,154,38,0,153,201,60,0,60,0,42,0,107,105,65,108,122,132,157,106,122,133,38,0,157,201,60,0,60,0,42,0,158,88,142,97,254,102,239,98,221,112,17,117,199,117,82,126,184,132,73,139,8,141,146,93,240,119,126,127,38,0,192,201,60,0,60,0,42,0,75,78,234,83,171,84,48,87,64,87,215,95,1,99,7,99,111,100,47,101,232,101,122,102,157,103,179,103,98,107,96,108,154,108,44,111,229,119,37,120,73,121,87,121,25,125,162,128,2,129,243,129,157,130,183,130,24,135,140,138,4,141,190,141,114,144,123,87,128,88,122,98,176,105,220,108,227,117,234,121,234,123,16,130,31,142,147,142,249,142,47,150,168,155,217,157,38,0,193,201,60,0,60,0,42,0,244,118,25,122,55,122,84,126,119,128,157,121,38,0,196,201,60,0,60,0,42,0,7,85,212,85,117,88,47,99,34,100,73,102,75,102,109,104,155,105,132,107,37,109,177,110,205,115,104,116,161,116,91,117,185,117,225,118,30,119,139,119,230,121,9,126,29,126,251,129,47,133,151,136,58,138,209,140,235,142,176,143,50,144,173,147,99,150,115,150,7,151,178,79,24,81,210,115,57,122,193,132,180,135,129,141,65,146,18,155,38,0,200,201,60,0,60,0,42,0,132,79,241,83,234,89,201,90,25,94,78,104,198,116,190,117,233,121,146,122,163,129,237,134,234,140,204,141,237,143,164,87,112,125,186,132,197,144,85,148,38,0,208,201,60,0,60,0,42,0,159,101,21,103,6,157,38,0,209,201,60,0,60,0,42,0,247,87,87,111,221,125,47,143,246,147,198,150,160,84,34,98,38,0,213,201,60,0,60,0,42,0,181,95,242,97,132,111,130,111,19,112,101,118,170,119,38,0,40,204,60,0,60,0,42,0,20,78,152,79,31,80,201,83,223,85,111,93,238,93,33,107,100,107,203,120,154,123,73,142,202,142,110,144,125,79,86,80,83,89,148,92,163,95,206,105,115,116,104,120,38,0,41,204,60,0,60,0,42,0,73,99,62,100,64,119,132,122,47,147,127,148,106,159,51,98,201,100,178,101,38,0,44,204,60,0,60,0,42,0,176,100,175,111,230,113,168,116,218,116,196,122,18,124,130,126,178,124,152,126,154,139,10,141,125,148,16,153,76,153,39,81,57,81,151,82,209,93,34,101,17,107,40,114,178,141,38,0,48,204,60,0,60,0,42,0,57,82,223,91,230,100,45,103,46,125,78,98,246,98,38,0,56,204,60,0,60,0,42,0,237,80,195,83,121,88,88,97,89,97,250,97,172,101,217,122,146,139,150,139,51,81,197,83,132,93,201,93,90,97,175,97,25,101,231,105,3,107,218,107,86,139,232,147,113,148,94,153,66,154,242,158,38,0,61,204,60,0,60,0,42,0,9,80,33,80,117,82,49,85,60,90,224,94,112,95,52,97,94,101,12,102,54,102,162,102,205,105,196,110,50,111,22,115,33,118,147,122,57,129,89,130,214,131,188,132,0,80,150,80,212,81,49,82,181,96,221,96,39,98,54,100,25,105,5,108,114,116,151,122,187,122,76,142,249,146,6,147,182,149,47,155,172,157,38,0,68,204,60,0,60,0,42,0,181,80,240,87,192,91,232,91,105,95,161,99,38,120,181,125,220,131,33,133,199,145,245,145,204,104,29,131,38,0,69,204,60,0,60,0,42,0,138,81,245,103,86,123,172,140,22,86,88,94,212,120,39,123,0,124,177,134,38,0,152,204,60,0,60,0,42,0,196,81,187,89,189,96,85,134,210,109,11,132,4,137,183,137,234,144,38,0,153,204,60,0,60,0,42,0,28,80,84,82,58,92,125,97,26,98,211,98,242,100,165,101,204,110,32,118,10,129,96,142,95,150,187,150,78,84,103,87,73,88,213,96,87,99,109,100,52,135,214,141,145,142,38,0,156,204,60,0,60,0,42,0,223,78,67,83,152,85,41,89,221,93,197,100,201,108,250,109,148,115,127,122,27,130,166,133,228,140,16,142,119,144,231,145,225,149,33,150,198,151,244,79,41,80,226,80,3,81,10,109,250,111,233,116,70,121,129,124,246,129,138,130,28,131,80,131,168,132,70,133,149,134,191,143,93,151,38,0,160,204,60,0,60,0,42,0,248,81,242,84,134,85,185,95,164,100,136,111,180,125,31,143,77,143,53,148,95,82,92,85,209,87,217,96,135,99,96,107,149,146,35,147,251,152,46,153,38,0,168,204,60,0,60,0,42,0,201,80,22,92,190,108,251,109,27,117,187,119,61,124,100,124,121,138,194,138,104,94,221,95,201,96,144,106,252,106,56,112,55,124,92,137,38,0,169,204,60,0,60,0,42,0,30,88,190,89,22,94,119,99,82,114,138,117,107,119,220,138,188,140,18,143,34,80,107,84,139,85,23,96,58,137,38,0,173,204,60,0,60,0,42,0,243,94,116,102,248,109,125,128,193,131,203,138,81,151,214,155,202,81,10,87,59,135,132,157,38,0,180,204,60,0,60,0,42,0,67,82,255,102,149,109,239,110,224,125,230,138,46,144,94,144,212,154,143,86,88,95,227,104,162,107,12,120,130,132,21,133,94,133,198,142,70,151,240,154,38,0,8,205,60,0,60,0,42,0,29,82,127,82,232,84,148,97,132,98,219,98,162,104,18,105,90,105,53,106,146,112,38,113,93,120,1,121,14,121,210,121,13,122,150,128,120,130,213,130,73,131,73,133,130,140,133,141,98,145,139,145,174,145,98,80,236,80,173,82,230,82,77,86,246,90,167,92,237,92,149,93,10,96,132,96,0,97,106,103,203,113,131,125,22,128,154,138,89,139,160,141,250,142,226,143,20,146,107,147,108,147,152,151,102,152,235,154,230,157,96,159,38,0,9,205,60,0,60,0,42,0,195,79,209,86,237,113,215,119,0,135,248,137,239,102,37,114,218,119,165,133,133,142,209,154,38,0,12,205,60,0,60,0,42,0,248,91,214,95,81,103,168,144,11,84,38,0,29,205,60,0,60,0,42,0,226,83,90,88,245,91,164,96,129,97,96,100,61,126,112,128,37,133,131,146,113,132,239,132,230,147,24,154,68,154,38,0,44,205,60,0,60,0,174,100,38,0,92,205,60,0,60,0,42,0,172,80,20,93,0,103,44,86,103,100,177,105,60,111,128,116,234,120,23,126,39,129,38,0,148,205,60,0,60,0,42,0,156,88,189,98,168,99,14,105,120,105,30,106,107,110,186,118,203,121,187,130,41,132,207,138,168,141,253,143,18,145,75,145,156,145,16,147,24,147,154,147,219,150,54,154,13,156,230,80,126,85,53,90,26,94,198,96,118,99,235,99,37,100,3,117,51,118,157,159,146,123,160,123,9,124,11,126,16,126,173,132,108,150,185,150,166,151,5,154,75,155,12,156,123,157,150,157,181,157,132,158,164,158,38,0,149,205,60,0,60,0,42,0,17,78,92,117,93,121,250,122,81,123,201,123,46,126,196,132,89,142,116,142,248,142,16,144,175,89,51,130,86,140,92,142,0,159,38,0,152,205,60,0,60,0,42,0,37,102,63,105,67,116,38,0,156,205,60,0,60,0,42,0,250,81,46,103,220,158,235,121,38,0,169,205,60,0,60,0,42,0,69,81,224,95,150,108,242,135,93,136,119,136,178,81,225,95,235,115,38,0,204,205,60,0,60,0,42,0,180,96,181,129,3,132,5,141,244,96,227,99,169,117,1,118,71,152,38,0,232,205,60,0,60,0,42,0,214,83,57,84,52,86,54,90,49,92,138,112,224,127,90,128,6,129,237,129,163,141,137,145,95,154,242,157,163,81,71,106,243,107,38,0,33,206,60,0,60,0,42,0,116,80,196,78,160,83,251,96,44,110,193,94,3,102,38,0,53,206,60,0,60,0,100,92,38,0,88,206,60,0,60,0,42,0,136,79,36,80,228,85,217,92,95,94,101,96,148,104,187,108,196,109,190,113,212,117,244,117,97,118,26,122,73,122,199,125,251,125,110,127,244,129,169,134,28,143,201,150,179,153,82,159,110,83,198,84,216,91,245,93,100,117,211,117,122,125,209,131,153,133,43,137,120,140,241,141,25,147,36,150,212,155,25,157,31,157,68,157,38,0,89,206,60,0,60,0,42,0,71,82,197,82,237,152,85,101,38,0,92,206,60,0,60,0,42,0,170,137,236,106,253,133,111,137,84,159,38,0,96,206,60,0,60,0,42,0,3,78,210,103,6,111,38,0,104,206,60,0,60,0,42,0,181,79,226,91,149,103,136,108,120,109,27,116,39,120,221,145,124,147,214,91,241,95,57,105,137,108,244,144,223,146,248,153,38,0,105,206,60,0,60,0,196,135,38,0,109,206,60,0,60,0,42,0,228,121,49,122,38,0,140,207,60,0,60,0,42,0,235,95,114,86,44,89,38,0,192,208,60,0,60,0,42,0,214,78,164,84,62,85,174,88,165,89,240,96,83,98,214,98,54,103,85,105,53,130,64,150,177,153,221,153,87,79,158,87,213,98,193,103,98,106,177,108,107,138,206,141,177,142,222,153,128,155,21,157,9,159,38,0,193,208,60,0,60,0,42,0,44,80,83,83,68,85,124,87,88,98,226,100,107,102,221,103,193,111,239,111,34,116,56,116,23,138,56,148,198,98,80,106,176,108,191,109,250,119,92,124,0,134,20,142,52,144,38,0,196,208,60,0,60,0,42,0,81,84,6,86,102,87,72,95,154,97,78,107,88,112,173,112,187,125,149,138,187,97,36,101,171,107,113,118,82,154,38,0,200,208,60,0,60,0,42,0,106,89,43,129,187,79,38,0,208,208,60,0,60,0,42,0,162,99,8,119,61,128,170,140,255,85,208,95,86,145,38,0,209,208,60,0,60,0,42,0,84,88,45,100,187,105,157,80,76,88,40,100,38,0,213,208,60,0,60,0,42,0,149,91,17,94,111,110,105,133,217,113,234,118,173,120,47,134,38,0,220,208,60,0,60,0,42,0,76,81,240,83,42,89,32,96,75,97,134,107,112,108,240,108,30,123,206,128,212,130,198,141,176,144,177,152,237,87,39,90,97,91,172,98,232,143,196,153,216,153,38,0,221,208,60,0,60,0,42,0,199,100,164,111,38,0,241,208,60,0,60,0,42,0,145,100,144,100,90,114,38,0,48,209,60,0,60,0,4,101,38,0,160,209,60,0,60,0,42,0,78,81,16,84,31,87,14,138,38,0,164,209,60,0,60,0,42,0,75,86,120,86,242,116,38,0,181,209,60,0,60,0,42,0,95,97,118,104,219,117,82,123,113,125,26,144,107,96,11,106,105,123,38,0,244,209,60,0,60,0,42,0,6,88,204,105,127,129,42,137,0,144,57,152,164,150,38,0,44,210,60,0,60,0,42,0,120,80,87,89,172,89,149,98,15,144,42,155,146,89,29,110,176,154,38,0,65,210,60,0,60,0,95,79,38,0,185,210,60,0,60,0,42,0,93,97,121,114,210,95,38,0,200,210,60,0,60,0,214,149,38,0,12,211,60,0,60,0,42,0,97,87,70,90,244,93,138,98,173,100,250,100,119,103,226,108,62,109,44,114,54,116,52,120,119,127,173,130,219,141,23,152,245,83,145,89,165,92,21,96,94,112,56,114,187,115,164,118,6,123,56,124,25,128,224,131,105,132,49,145,38,0,16,211,60,0,60,0,42,0,36,82,66,87,127,103,72,114,227,116,169,140,166,143,17,146,42,150,116,108,38,0,20,211,60,0,60,0,42,0,107,81,237,83,76,99,51,103,67,108,38,0,40,211,60,0,60,0,42,0,105,79,4,85,150,96,87,101,155,108,127,109,76,114,253,114,23,122,135,137,157,140,91,91,198,101,238,115,8,151,56,151,38,0,61,211,60,0,60,0,42,0,109,95,142,111,249,112,168,129,48,120,74,121,218,135,219,135,38,0,69,211,60,0,60,0,14,97,38,0,184,211,60,0,60,0,42,0,191,79,79,80,65,98,71,114,199,123,232,125,233,127,77,144,173,151,25,154,62,83,167,95,252,96,246,125,81,130,57,132,89,135,10,137,222,138,38,0,196,211,60,0,60,0,42,0,182,140,45,120,134,122,38,0,201,211,60,0,60,0,42,0,106,87,115,94,176,103,13,132,85,138,38,96,168,98,217,108,249,130,241,132,131,155,38,0,208,211,60,0,60,0,42,0,32,84,22,91,99,94,226,94,10,95,131,101,186,128,61,133,137,149,91,150,93,101,244,114,88,115,72,118,38,0,236,211,60,0,60,0,42,0,72,79,5,83,13,83,15,83,134,84,250,84,3,87,3,94,22,96,155,98,177,98,85,99,225,108,102,109,177,117,50,120,222,128,47,129,222,130,97,132,178,132,141,136,18,137,11,144,234,146,253,152,145,155,36,81,150,94,97,102,211,102,174,112,176,112,22,130,167,138,75,146,132,151,20,153,198,155,38,0,237,211,60,0,60,0,42,0,69,94,180,102,221,102,17,112,6,114,38,0,92,212,60,0,60,0,42,0,245,79,125,82,106,95,83,97,83,103,25,106,2,111,226,116,104,121,104,136,121,140,199,152,196,152,67,154,196,80,225,82,12,86,214,90,125,100,141,107,155,113,57,126,241,136,226,147,99,148,223,154,62,156,38,0,136,212,60,0,60,0,42,0,193,84,31,122,128,121,38,0,141,212,60,0,60,0,42,0,83,105,247,138,74,140,168,152,174,153,11,118,81,132,38,0,60,213,60,0,60,0,42,0,124,95,171,98,178,117,174,118,171,136,127,144,66,150,86,138,159,143,129,151,242,154,38,0,61,213,60,0,60,0,119,129,38,0,68,213,60,0,60,0,42,0,57,83,60,95,197,95,204,108,204,115,98,117,139,117,70,123,254,130,157,153,86,79,135,84,237,110,243,123,124,127,253,132,241,137,85,142,184,151,224,151,220,153,111,157,38,0,77,213,60,0,60,0,42,0,79,78,60,144,106,80,38,0,88,213,60,0,60,0,42,0,11,78,85,79,166,83,15,89,200,94,48,102,179,108,85,116,119,131,102,135,192,140,80,144,30,151,21,156,64,84,135,86,136,92,215,97,70,113,21,118,69,127,92,147,38,0,89,213,60,0,60,0,42,0,209,88,120,91,80,134,20,139,180,157,226,114,39,118,172,118,110,120,221,144,253,157,38,0,92,213,60,0,60,0,42,0,210,91,104,96,141,96,241,101,87,108,34,111,163,111,26,112,85,127,240,127,145,149,146,149,80,150,211,151,233,80,250,90,251,90,77,99,181,102,136,149,251,153,243,157,62,159,38,0,96,213,60,0,60,0,42,0,114,82,68,143,142,119,38,0,104,213,60,0,60,0,42,0,253,81,43,84,184,84,99,85,138,85,187,106,181,109,216,125,102,130,156,146,119,150,121,158,159,131,225,131,244,138,94,143,222,149,38,0,105,213,60,0,60,0,42,0,8,84,200,84,210,118,228,134,164,149,212,149,92,150,12,83,209,85,217,103,188,105,152,110,205,118,195,144,38,0,109,213,60,0,60,0,42,0,162,78,9,79,238,89,230,90,247,93,82,96,151,98,109,103,65,104,134,108,47,110,56,127,155,128,42,130,5,152,47,89,70,96,149,112,63,127,15,152,38,0,116,213,60,0,60,0,42,0,165,78,85,80,179,84,147,87,90,89,105,91,179,91,200,97,119,105,119,109,35,112,249,135,227,137,114,138,231,138,130,144,237,153,184,154,141,84,176,93,232,94,44,107,108,115,78,116,206,117,164,133,162,145,38,152,173,155,38,0,117,213,60,0,60,0,42,0,190,82,56,104,238,127,136,137,38,0,137,213,60,0,60,0,42,0,22,80,120,94,79,103,71,131,76,136,187,96,38,0,165,213,60,0,60,0,42,0,171,78,17,84,174,86,230,115,21,145,255,151,9,153,87,153,153,153,140,133,38,0,200,213,60,0,60,0,42,0,83,86,159,88,91,134,49,138,84,107,38,0,204,213,60,0,60,0,42,0,178,97,246,106,123,115,210,142,218,93,112,94,7,101,38,0,208,213,60,0,60,0,71,107,38,0,216,213,60,0,60,0,42,0,170,150,87,154,174,93,107,115,129,115,38,0,1,214,60,0,60,0,42,0,85,89,0,114,107,141,105,151,8,95,43,109,49,113,41,155,38,0,4,214,60,0,60,0,42,0,212,79,244,92,38,95,248,97,91,102,235,108,171,112,132,115,185,115,254,115,41,119,77,119,67,125,98,125,35,126,55,130,82,136,226,140,73,146,111,152,7,81,27,91,33,102,4,116,195,117,12,119,111,126,254,127,6,135,162,138,215,146,253,153,38,0,8,214,60,0,60,0,42,0,81,91,116,122,64,136,1,152,92,125,144,141,38,0,16,214,60,0,60,0,204,90,38,0,17,214,60,0,60,0,42,0,224,79,84,83,62,89,253,92,62,99,121,109,249,114,5,129,7,129,162,131,207,146,48,152,39,83,246,83,201,87,74,96,143,96,28,97,203,123,38,0,21,214,60,0,60,0,42,0,168,78,68,81,17,82,139,87,98,95,194,108,206,110,5,112,80,112,175,112,146,113,233,115,105,116,74,131,162,135,97,136,8,144,162,144,163,147,168,153,16,89,25,90,87,138,229,143,88,150,38,0,28,214,60,0,60,0,42,0,110,81,87,95,224,96,103,97,179,102,89,133,74,142,175,145,139,151,146,80,18,86,237,91,175,95,229,105,251,118,17,139,127,139,38,0,56,214,60,0,60,0,42,0,78,78,146,78,124,84,213,88,250,88,125,89,181,92,39,95,54,98,72,98,10,102,103,102,235,107,105,109,207,109,86,110,248,110,148,111,224,111,233,111,93,112,208,114,37,116,90,116,224,116,147,118,92,121,202,124,30,126,225,128,166,130,107,132,191,132,78,134,95,134,116,135,119,139,106,140,172,147,0,152,101,152,43,81,177,81,55,86,237,90,238,90,25,96,141,108,200,110,236,110,146,114,34,115,156,118,158,118,142,123,85,128,144,145,44,153,13,155,38,0,57,214,60,0,60,0,42,0,209,96,22,98,119,145,38,0,60,214,60,0,60,0,42,0,90,90,15,102,247,109,62,110,63,116,66,155,2,87,219,96,183,110,28,113,189,149,38,0,64,214,60,0,60,0,42,0,253,95,218,96,15,123,235,86,38,0,77,214,60,0,60,0,42,0,196,84,24,95,94,108,211,108,42,109,216,112,5,125,121,134,12,138,59,157,78,102,146,111,202,123,119,146,40,155,38,0,84,214,60,0,60,0,42,0,22,83,140,84,5,91,58,106,107,112,117,117,141,121,190,121,177,130,239,131,113,138,65,139,168,140,116,151,240,79,41,86,114,90,237,100,107,117,74,154,162,159,38,0,85,214,60,0,60,0,42,0,244,100,43,101,186,120,187,120,107,122,205,119,225,119,45,121,74,148,38,0,88,214,60,0,60,0,42,0,56,78,154,85,80,89,166,91,123,94,163,96,219,99,97,107,101,102,83,104,25,110,101,113,176,116,8,125,132,144,105,154,37,156,240,91,253,97,208,100,219,116,150,118,70,119,89,125,98,140,88,143,112,147,54,148,31,155,38,0,92,214,60,0,60,0,42,0,59,109,209,110,62,115,65,140,202,149,222,134,38,0,105,214,60,0,60,0,42,0,240,81,76,94,168,95,77,96,246,96,48,97,76,97,67,102,68,102,165,105,193,108,95,110,201,110,98,111,76,113,156,116,135,118,193,123,39,124,82,131,87,135,81,144,141,150,195,158,164,85,147,90,51,96,93,116,147,128,186,140,164,147,38,0,140,214,60,0,60,0,42,0,47,83,222,86,251,94,138,95,98,96,148,96,247,97,102,102,3,103,156,106,238,109,174,111,112,112,106,115,106,126,190,129,52,131,212,134,168,138,196,140,106,79,3,104,4,109,217,110,212,118,124,138,244,143,46,152,96,156,38,0,141,214,60,0,60,0,42,0,131,82,114,115,132,86,38,0,161,214,60,0,60,0,42,0,150,91,107,106,4,148,139,111,28,146,204,158,38,0,168,214,60,0,60,0,42,0,238,84,134,86,93,91,72,101,133,101,201,102,159,104,141,109,198,109,59,114,180,128,117,145,77,154,154,80,194,86,36,93,189,107,135,113,155,118,83,134,26,153,38,0,196,214,60,0,60,0,42,0,175,79,25,80,154,83,14,84,60,84,137,85,197,85,63,94,140,95,61,103,102,113,221,115,5,144,61,84,163,85,149,87,32,88,184,109,52,115,204,123,97,138,67,139,87,145,49,153,38,0,200,214,60,0,60,0,42,0,219,82,243,82,100,88,206,88,4,113,143,113,251,113,176,133,19,138,136,102,219,102,11,114,111,115,129,126,119,132,66,148,38,0,204,214,60,0,60,0,59,107,38,0,217,214,60,0,60,0,168,133,38,0,228,214,60,0,60,0,42,0,167,85,132,102,74,113,49,132,220,112,224,138,252,138,38,0,252,214,60,0,60,0,42,0,73,83,153,85,193,107,236,113,148,130,107,134,122,134,38,0,24,215,60,0,60,0,42,0,89,95,189,95,238,99,137,102,71,113,241,138,29,143,190,158,157,100,236,127,38,0,52,215,60,0,60,0,42,0,17,79,58,100,203,112,102,117,103,134,187,84,213,100,179,150,249,154,66,157,38,0,60,215,60,0,60,0,42,0,100,96,78,139,248,157,121,83,38,0,73,215,60,0,60,0,42,0,71,81,246,81,8,83,54,109,248,128,95,96,247,128,38,0,81,215,60,0,60,0,209,158,38,0,84,215,60,0,60,0,42,0,21,102,35,107,152,112,213,117,136,95,251,95,128,99,46,113,34,138,193,145,38,0,88,215,60,0,60,0,42,0,3,84,121,92,7,125,22,138,225,78,84,108,153,117,196,143,85,159,38,0,96,215,60,0,60,0,42,0,32,107,61,107,70,107,222,94,38,0,97,215,60,0,60,0,42,0,56,84,112,96,61,109,213,127,79,86,89,107,93,111,214,127,38,0,101,215,60,0,60,0,8,130,38,0,108,215,60,0,60,0,42,0,214,80,222,81,156,85,107,86,205,86,236,89,9,91,12,94,153,97,152,97,49,98,94,102,230,102,153,113,185,113,186,113,167,114,167,121,0,122,178,127,165,84,15,85,59,86,149,96,50,98,191,102,55,107,249,113,20,114,104,140,60,153,38,0,144,215,60,0,60,0,42,0,112,138,181,114,136,126,109,137,33,152,224,158,0,0,170,170,170,170,170,170,170,170,98,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,31,1,0,0,68,0,0,0,68,0,0,0,68,0,0,0,84,34,0,0,84,34,0,0,84,34,0,0,84,34,0,0,4,40,0,0,4,40,0,0,74,40,0,0,74,40,0,0,74,40,0,0,50,105,114,84,1,0,64,8,24,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,174,0,182,0,190,0,198,0,206,0,214,0,222,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,241,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,249,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,1,1,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,44,0,202,97,44,0,202,130,44,0,202,163,44,0,202,196,44,0,202,229,44,0,202,6,45,0,202,39,45,0,202,72,45,0,202,105,45,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,35,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,35,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,35,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,197,162,1,0,197,226,1,0,197,34,2,0,197,98,2,0,197,162,2,0,197,226,2,0,197,34,3,0,197,98,3,0,197,162,3,0,197,226,3,0,197,34,4,0,197,98,4,0,197,66,2,0,197,194,0,0,197,163,4,0,197,3,5,0,197,99,5,0,197,195,0,0,197,195,5,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,99,7,0,197,194,4,0,197,194,7,0,197,34,5,0,197,2,8,0,197,66,8,0,197,130,5,0,197,131,8,0,197,227,8,0,197,66,9,0,197,2,1,0,197,130,9,0,197,194,9,0,197,2,10,0,197,66,10,0,197,130,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,10,0,197,2,11,0,197,130,3,0,197,2,4,0,197,162,7,0,192,0,0,0,197,66,11,0,197,130,11,0,197,194,11,0,197,2,12,0,197,66,12,0,192,0,0,0,197,162,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,12,0,197,194,12,0,192,0,0,0,192,0,0,0,197,2,7,0,197,2,13,0,197,66,13,0,192,0,0,0,197,66,0,0,197,226,7,0,197,130,13,0,197,194,13,0,197,2,14,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,14,0,192,0,0,0,197,130,14,0,192,0,0,0,197,194,14,0,192,0,0,0,197,2,15,0,192,0,0,0,197,66,15,0,197,131,15,0,197,226,15,0,192,0,0,0,192,0,0,0,197,34,16,0,197,99,16,0,197,194,16,0,192,0,0,0,192,0,0,0,197,2,17,0,192,0,0,0,197,98,15,0,197,66,17,0,197,130,17,0,197,194,17,0,197,2,18,0,197,66,16,0,197,66,18,0,197,130,18,0,197,194,18,0,197,34,18,0,197,3,19,0,197,99,19,0,197,194,19,0,197,2,20,0,197,66,20,0,197,131,20,0,197,226,20,0,197,34,21,0,197,98,21,0,197,162,21,0,197,227,21,0,197,67,22,0,197,163,22,0,197,2,23,0,197,66,23,0,197,130,23,0,197,195,23,0,197,34,24,0,197,99,24,0,197,194,24,0,197,2,25,0,197,130,22,0,197,66,25,0,197,131,25,0,197,34,17,0,197,98,14,0,197,34,15,0,197,2,16,0,197,226,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,25,0,197,34,26,0,197,98,26,0,197,162,17,0,197,163,26,0,5,5,6,121,197,34,0,0,197,194,8,0,5,5,10,121,197,130,13,0,197,194,13,0,5,5,12,121,5,5,16,121,197,2,27,0,197,66,27,0,197,130,27,0,197,34,8,0,197,194,27,0,197,2,28,0,197,34,3,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,197,130,2,0,197,67,28,0,197,98,1,0,197,226,1,0,197,226,7,0,192,0,0,0,197,162,28,0,197,98,2,0,197,2,14,0,197,227,28,0,197,162,2,0,197,66,29,0,197,131,29,0,197,226,2,0,197,227,29,0,197,67,30,0,197,163,30,0,197,3,31,0,197,99,31,0,197,195,31,0,192,0,0,0,197,34,32,0,192,0,0,0,197,2,30,0,197,98,27,0,197,162,3,0,197,98,8,0,197,99,32,0,192,0,0,0,197,194,32,0,197,2,33,0,197,226,3,0,197,162,27,0,197,226,6,0,197,34,31,0,197,34,7,0,197,194,4,0,197,34,5,0,197,2,8,0,197,130,5,0,192,0,0,0,197,194,10,0,197,67,33,0,197,66,11,0,197,162,33,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,7,0,197,2,13,0,197,98,13,0,197,66,3,0,197,226,33,0,197,34,34,0,192,0,0,0,197,130,1,0,197,66,4,0,197,98,34,0,197,162,34,0,197,226,34,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,10,121,5,5,6,121,5,5,10,121,5,5,10,121,5,5,10,121,5,5,12,121,5,5,10,121,5,5,20,121,5,5,12,121,5,5,6,121,5,5,16,121,5,5,10,121,5,5,16,121,5,5,16,121,5,5,16,121,5,5,42,121,5,5,16,121,5,5,28,121,5,5,18,121,5,5,20,121,5,5,18,121,5,5,28,121,5,5,20,121,5,5,6,121,5,5,20,121,5,5,10,121,5,5,20,121,5,5,24,121,5,5,6,121,5,5,20,121,5,5,24,121,5,5,12,121,5,5,20,121,5,5,24,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,30,121,5,5,20,121,5,5,30,121,5,5,20,121,5,5,34,121,5,5,20,121,5,5,38,121,5,5,20,121,5,5,40,121,5,5,20,121,5,5,28,121,5,5,20,121,5,5,20,121,5,5,28,121,5,5,24,121,5,5,10,121,5,5,24,121,5,5,16,121,5,5,24,121,5,5,18,121,5,5,24,121,5,5,20,121,5,5,6,121,5,5,24,121,5,5,24,121,5,5,24,121,5,5,24,121,5,5,28,121,5,5,24,121,5,5,34,121,5,5,24,121,5,5,36,121,5,5,24,121,5,5,38,121,5,5,24,121,5,5,40,121,5,5,24,121,5,5,42,121,5,5,28,121,5,5,6,121,5,5,28,121,5,5,12,121,5,5,28,121,5,5,28,121,5,5,28,121,5,5,30,121,5,5,28,121,5,5,34,121,5,5,28,121,5,5,38,121,5,5,28,121,5,5,40,121,5,5,34,121,5,5,36,121,5,5,34,121,5,5,42,121,5,5,40,121,5,5,28,121,5,5,42,121,5,5,42,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,12,121,5,5,16,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,103,121,5,5,129,121,5,5,107,121,5,5,119,121,5,5,107,121,5,5,127,121,5,5,111,121,5,5,119,121,5,5,111,121,5,5,139,121,5,5,115,121,5,5,119,121,5,5,115,121,5,5,129,121,5,5,119,121,5,5,111,121,5,5,143,121,5,5,119,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,119,121,5,5,119,121,5,5,129,121,5,5,127,121,5,5,107,121,5,5,127,121,5,5,107,121,5,5,143,121,5,5,127,121,5,5,115,121,5,5,127,121,5,5,119,121,5,5,127,121,5,5,143,121,5,5,129,121,5,5,103,121,5,5,129,121,5,5,103,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,139,121,5,5,129,121,5,5,115,121,5,5,143,121,5,5,129,121,5,5,129,121,5,5,137,121,5,5,103,121,5,5,137,121,5,5,111,121,5,5,137,121,5,5,111,121,5,5,143,121,5,5,137,121,5,5,115,121,5,5,137,121,5,5,115,121,5,5,143,121,5,5,137,121,5,5,129,121,5,5,137,121,5,5,143,121,5,5,139,121,5,5,139,121,5,5,139,121,5,5,143,121,5,5,129,121,5,5,103,121,5,5,139,121,5,5,107,121,5,5,129,121,5,5,115,121,5,5,107,121,5,5,119,121,5,5,107,121,5,5,143,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,6,121,5,5,24,121,5,5,6,121,5,5,10,121,5,5,38,121,5,5,16,121,5,5,6,121,5,5,24,121,5,5,16,121,5,5,12,121,5,5,16,121,5,5,12,121,5,5,42,121,5,5,16,121,5,5,18,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,24,121,5,5,16,121,5,5,20,121,5,5,24,121,5,5,16,121,5,5,20,121,5,5,42,121,5,5,16,121,5,5,20,121,5,5,28,121,5,5,16,121,5,5,24,121,5,5,24,121,5,5,16,121,5,5,36,121,5,5,18,121,5,5,24,121,5,5,24,121,5,5,18,121,5,5,34,121,5,5,18,121,5,5,42,121,5,5,28,121,5,5,6,121,5,5,6,121,5,5,28,121,5,5,36,121,5,5,42,121,5,5,18,121,5,5,42,121,5,5,20,121,5,5,6,121,5,5,34,121,5,5,6,121,5,5,36,121,5,5,6,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,66,14,0,5,5,107,121,197,130,14,0,5,5,111,121,197,194,14,0,5,5,115,121,197,2,15,0,5,5,119,121,197,66,15,0,197,131,15,0,197,226,15,0,5,5,127,121,5,5,129,121,197,34,16,0,197,99,16,0,197,194,16,0,5,5,137,121,5,5,139,121,197,2,17,0,5,5,143,121,5,5,6,121,197,34,0,0,197,194,8,0,5,5,10,121,197,130,13,0,197,194,13,0,5,5,12,121,5,5,16,121,197,2,27,0,197,66,27,0,197,130,27,0,197,34,8,0,197,194,27,0,197,2,28,0,197,34,3,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,67,0,50,0,59,0,75,27,0,16,40,2,0,96,1,0,0,96,170,170,170,170,130,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,27,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,84,32,0,0,84,32,0,0,84,32,0,0,84,32,0,0,244,33,0,0,244,33,0,0,106,34,0,0,106,34,0,0,106,34,0,0,50,105,114,84,1,0,64,8,248,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,209,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,239,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,217,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,225,0,48,0,48,0,231,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,11,0,202,225,11,0,202,2,12,0,202,35,12,0,202,68,12,0,202,101,12,0,202,134,12,0,202,167,12,0,202,200,12,0,202,233,12,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,2,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,3,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,6,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,5,71,238,102,201,198,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,2,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,200,160,3,0,197,34,0,0,192,0,0,0,200,96,4,0,197,98,0,0,192,0,0,0,192,0,0,0,200,32,5,0,197,162,0,0,200,224,5,0,197,226,0,0,192,0,0,0,200,160,6,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,3,255,194,5,4,255,194,5,5,255,194,5,6,255,194,5,7,255,194,5,8,255,194,5,9,255,194,5,10,255,194,5,11,255,194,5,12,255,194,5,13,255,194,5,14,255,194,5,15,255,194,5,16,255,194,5,17,255,194,5,18,255,194,5,19,255,194,5,20,255,194,5,21,255,194,5,22,255,194,5,23,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,24,255,194,5,25,255,194,5,26,255,194,5,27,255,194,5,28,255,194,5,29,255,194,5,30,255,194,5,31,255,194,5,32,255,194,5,33,255,194,5,34,255,194,5,35,255,194,5,36,255,194,5,37,255,194,5,38,255,194,5,39,255,194,5,40,255,194,5,41,255,194,5,42,255,194,5,43,255,194,5,44,255,194,5,45,255,194,5,46,255,194,5,47,255,194,5,48,255,194,5,49,255,194,5,50,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,192,0,0,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,130,0,0,5,5,12,121,5,130,0,0,5,5,20,121,5,130,0,0,5,5,24,121,5,130,0,0,5,5,30,121,5,130,0,0,5,5,6,121,10,130,0,0,5,5,12,121,9,130,0,0,5,5,20,121,8,130,0,0,5,5,24,121,7,130,0,0,5,5,30,121,6,130,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,200,160,3,0,197,34,0,0,5,5,10,121,200,96,4,0,197,98,0,0,5,5,16,121,5,5,18,121,200,32,5,0,197,162,0,0,200,224,5,0,197,226,0,0,5,5,28,121,200,160,6,0,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,194,5,3,255,194,5,4,255,194,5,5,255,194,5,6,255,194,5,7,255,194,5,8,255,194,5,9,255,194,5,10,255,194,5,11,255,194,5,12,255,194,5,13,255,194,5,14,255,194,5,15,255,194,5,16,255,194,5,17,255,194,5,18,255,194,5,19,255,194,5,20,255,194,5,21,255,194,5,22,255,194,5,23,255,194,5,24,255,194,5,25,255,194,5,26,255,194,5,27,255,194,5,28,255,194,5,29,255,194,5,30,255,194,5,31,255,194,5,32,255,194,5,33,255,194,5,34,255,194,5,35,255,194,5,36,255,194,5,37,255,194,5,38,255,194,5,39,255,194,5,40,255,194,5,41,255,194,5,42,255,194,5,43,255,194,5,44,255,194,5,45,255,194,5,46,255,194,5,47,255,194,5,48,255,194,5,49,255,194,5,50,255,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,6,121,5,5,48,0,0,17,0,192,5,130,12,121,5,5,48,0,3,17,0,192,5,130,20,121,5,5,48,0,7,17,0,192,5,130,24,121,5,5,48,0,9,17,0,192,5,130,30,121,5,5,48,0,12,17,0,192,5,130,170,170,3,0,67,0,50,0,59,0,107,37,0,16,57,0,0,96,1,0,0,96,170,170,170,170,52,140,3,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,60,0,0,0,60,1,0,0,156,95,1,0,156,95,1,0,12,96,3,0,12,96,3,0,24,140,3,0,18,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,39,246,247,248,249,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,254,255,50,105,114,84,1,0,192,8,205,20,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,120,0,128,0,136,0,144,0,152,0,160,0,165,0,173,0,181,0,189,0,197,0,205,0,213,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,53,1,61,1,69,1,77,1,85,1,93,1,101,1,109,1,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,21,2,29,2,37,2,45,2,53,2,61,2,69,2,76,2,84,2,92,2,98,2,106,2,113,2,121,2,128,2,136,2,144,2,152,2,160,2,168,2,176,2,184,2,192,2,200,2,208,2,216,2,224,2,232,2,240,2,248,2,0,3,8,3,16,3,24,3,32,3,40,3,48,3,56,3,64,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,128,3,136,3,144,3,152,3,159,3,167,3,175,3,183,3,191,3,199,3,207,3,215,3,223,3,231,3,239,3,246,3,254,3,6,4,14,4,22,4,30,4,38,4,44,4,52,4,60,4,68,4,76,4,84,4,92,4,100,4,108,4,116,4,124,4,132,4,140,4,148,4,156,4,164,4,172,4,180,4,188,4,196,4,204,4,212,4,220,4,228,4,236,4,244,4,252,4,4,5,12,5,20,5,28,5,36,5,44,5,52,5,59,5,67,5,75,5,83,5,91,5,99,5,107,5,115,5,122,5,130,5,138,5,146,5,152,5,160,5,167,5,175,5,183,5,191,5,199,5,206,5,214,5,222,5,230,5,238,5,246,5,254,5,6,6,14,6,22,6,30,6,38,6,46,6,54,6,62,6,70,6,78,6,86,6,94,6,102,6,109,6,117,6,125,6,133,6,141,6,149,6,157,6,165,6,173,6,181,6,189,6,197,6,205,6,213,6,221,6,227,6,235,6,243,6,250,6,2,7,10,7,17,7,25,7,33,7,40,7,48,7,56,7,63,7,71,7,79,7,87,7,95,7,103,7,111,7,119,7,127,7,135,7,143,7,151,7,159,7,167,7,175,7,183,7,190,7,198,7,206,7,214,7,222,7,230,7,237,7,245,7,253,7,4,8,12,8,20,8,28,8,36,8,42,8,50,8,58,8,66,8,74,8,82,8,90,8,97,8,105,8,113,8,120,8,128,8,136,8,144,8,152,8,160,8,168,8,176,8,184,8,192,8,200,8,208,8,216,8,224,8,232,8,239,8,247,8,255,8,7,9,14,9,22,9,30,9,38,9,46,9,54,9,62,9,70,9,78,9,86,9,94,9,102,9,110,9,118,9,126,9,134,9,142,9,150,9,158,9,166,9,174,9,182,9,190,9,198,9,206,9,214,9,222,9,230,9,238,9,246,9,254,9,6,10,14,10,22,10,30,10,38,10,46,10,54,10,62,10,70,10,78,10,86,10,94,10,102,10,110,10,118,10,126,10,134,10,142,10,150,10,158,10,166,10,174,10,182,10,190,10,198,10,206,10,214,10,222,10,230,10,238,10,246,10,254,10,5,11,13,11,21,11,29,11,37,11,45,11,53,11,61,11,69,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,140,11,148,11,156,11,164,11,172,11,180,11,188,11,196,11,204,11,212,11,220,11,228,11,236,11,244,11,252,11,4,12,12,12,20,12,28,12,36,12,44,12,52,12,59,12,67,12,75,12,83,12,91,12,48,0,48,0,48,0,48,0,99,12,107,12,115,12,123,12,131,12,139,12,147,12,155,12,163,12,171,12,179,12,187,12,195,12,203,12,211,12,219,12,227,12,235,12,243,12,251,12,3,13,11,13,19,13,27,13,35,13,43,13,51,13,59,13,67,13,75,13,83,13,91,13,99,13,107,13,112,13,119,13,127,13,135,13,143,13,151,13,157,13,165,13,173,13,181,13,189,13,197,13,204,13,212,13,220,13,228,13,236,13,244,13,252,13,4,14,12,14,20,14,28,14,36,14,44,14,51,14,59,14,67,14,75,14,83,14,91,14,99,14,107,14,115,14,123,14,131,14,139,14,147,14,155,14,163,14,171,14,179,14,187,14,195,14,203,14,211,14,218,14,226,14,234,14,242,14,250,14,2,15,10,15,18,15,26,15,34,15,42,15,50,15,58,15,66,15,74,15,82,15,90,15,98,15,106,15,114,15,48,0,48,0,48,0,48,0,122,15,130,15,138,15,146,15,154,15,162,15,170,15,178,15,48,0,48,0,185,15,193,15,201,15,209,15,217,15,225,15,233,15,241,15,249,15,1,16,9,16,17,16,25,16,33,16,41,16,49,16,57,16,59,16,67,16,75,16,83,16,91,16,99,16,107,16,115,16,123,16,131,16,139,16,147,16,155,16,163,16,171,16,179,16,187,16,195,16,203,16,211,16,219,16,227,16,235,16,243,16,251,16,3,17,10,17,18,17,26,17,34,17,40,17,48,17,56,17,64,17,72,17,80,17,88,17,95,17,103,17,111,17,48,0,48,0,48,0,48,0,48,0,48,0,48,0,119,17,127,17,135,17,143,17,151,17,153,17,161,17,169,17,177,17,185,17,193,17,201,17,209,17,217,17,225,17,233,17,241,17,249,17,1,18,9,18,17,18,25,18,33,18,41,18,49,18,48,0,55,18,63,18,71,18,79,18,87,18,95,18,48,0,103,18,111,18,119,18,127,18,135,18,142,18,150,18,158,18,48,0,164,18,172,18,180,18,188,18,196,18,204,18,211,18,219,18,227,18,235,18,243,18,249,18,0,19,8,19,16,19,48,0,48,0,48,0,23,19,31,19,39,19,47,19,55,19,63,19,71,19,79,19,86,19,94,19,48,0,48,0,102,19,110,19,118,19,126,19,134,19,142,19,150,19,158,19,166,19,172,19,180,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,188,20,88,0,48,0,48,0,80,0,80,0,80,0,196,20,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,188,19,196,19,204,19,212,19,220,19,228,19,236,19,244,19,252,19,4,20,12,20,20,20,28,20,36,20,44,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,52,20,60,20,68,20,76,20,84,20,92,20,100,20,108,20,116,20,124,20,132,20,140,20,148,20,156,20,164,20,172,20,180,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,95,1,202,65,95,1,202,98,95,1,202,131,95,1,202,164,95,1,202,197,95,1,202,230,95,1,202,7,96,1,202,40,96,1,202,73,96,1,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,94,1,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,94,1,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,94,1,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,0,0,198,99,0,0,192,0,0,0,198,195,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,1,0,198,131,1,0,198,227,1,0,198,67,2,0,197,34,0,0,192,0,0,0,198,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,2,0,192,0,0,0,192,0,0,0,198,66,3,0,198,130,3,0,198,194,3,0,192,0,0,0,198,2,4,0,198,67,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,4,0,198,2,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,192,0,0,0,198,227,5,0,192,0,0,0,192,0,0,0,198,67,6,0,198,163,6,0,197,99,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,0,0,198,3,7,0,192,0,0,0,198,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,1,0,198,162,7,0,192,0,0,0,198,226,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,198,34,8,0,197,162,1,0,197,227,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,8,0,192,0,0,0,198,163,8,0,198,3,9,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,9,0,198,163,9,0,197,66,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,10,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,10,0,198,195,10,0,198,35,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,2,0,192,0,0,0,192,0,0,0,198,131,11,0,198,227,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,12,0,192,0,0,0,198,163,12,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,13,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,13,0,192,0,0,0,197,194,2,0,192,0,0,0,192,0,0,0,198,162,13,0,198,226,13,0,192,0,0,0,198,34,14,0,198,98,14,0,198,163,14,0,198,3,15,0,197,2,3,0,192,0,0,0,198,98,15,0,198,163,15,0,192,0,0,0,192,0,0,0,198,3,16,0,198,99,16,0,192,0,0,0,198,194,16,0,192,0,0,0,192,0,0,0,198,2,17,0,198,67,17,0,192,0,0,0,198,163,17,0,198,3,18,0,192,0,0,0,198,98,18,0,197,66,3,0,198,163,18,0,192,0,0,0,198,3,19,0,192,0,0,0,192,0,0,0,198,99,19,0,198,195,19,0,198,35,20,0,198,131,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,20,0,198,66,21,0,192,0,0,0,198,131,21,0,192,0,0,0,192,0,0,0,198,226,21,0,198,35,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,22,0,198,227,22,0,192,0,0,0,192,0,0,0,198,67,23,0,192,0,0,0,198,162,23,0,198,226,23,0,192,0,0,0,192,0,0,0,198,35,24,0,198,130,24,0,192,0,0,0,198,195,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,25,0,198,98,25,0,197,130,3,0,198,163,25,0,198,2,26,0,198,67,26,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,26,0,198,3,27,0,198,99,27,0,192,0,0,0,197,195,3,0,192,0,0,0,198,194,27,0,198,3,28,0,198,98,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,28,0,192,0,0,0,198,227,28,0,192,0,0,0,198,67,29,0,198,162,29,0,192,0,0,0,198,226,29,0,198,35,30,0,198,130,30,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,30,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,31,0,198,131,31,0,198,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,32,0,198,130,32,0,198,195,32,0,192,0,0,0,198,34,33,0,198,98,33,0,198,163,33,0,198,3,34,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,34,0,198,194,34,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,35,0,192,0,0,0,198,99,35,0,192,0,0,0,198,195,35,0,192,0,0,0,198,34,36,0,192,0,0,0,198,98,36,0,198,162,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,36,0,198,67,37,0,192,0,0,0,192,0,0,0,198,163,37,0,197,98,4,0,198,2,38,0,198,66,38,0,192,0,0,0,198,130,38,0,192,0,0,0,197,162,4,0,197,226,4,0,198,194,38,0,197,34,5,0,198,2,39,0,192,0,0,0,198,67,39,0,198,163,39,0,197,98,5,0,197,163,5,0,198,2,40,0,192,0,0,0,197,2,6,0,198,67,40,0,198,163,40,0,198,3,41,0,198,98,41,0,198,163,41,0,198,3,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,6,0,197,130,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,42,0,198,195,42,0,192,0,0,0,192,0,0,0,198,34,43,0,192,0,0,0,192,0,0,0,198,99,43,0,192,0,0,0,198,195,43,0,197,194,6,0,198,35,44,0,198,130,44,0,198,194,44,0,198,2,45,0,198,67,45,0,198,162,45,0,192,0,0,0,198,227,45,0,192,0,0,0,198,67,46,0,198,163,46,0,192,0,0,0,198,2,47,0,192,0,0,0,197,2,7,0,198,66,47,0,198,131,47,0,198,226,47,0,192,0,0,0,198,34,48,0,192,0,0,0,198,98,48,0,192,0,0,0,197,66,7,0,192,0,0,0,192,0,0,0,198,162,48,0,192,0,0,0,198,227,48,0,198,67,49,0,198,162,49,0,192,0,0,0,198,227,49,0,198,67,50,0,198,162,50,0,197,130,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,50,0,197,194,7,0,192,0,0,0,192,0,0,0,198,35,51,0,192,0,0,0,192,0,0,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,51,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,51,0,192,0,0,0,198,66,52,0,198,130,52,0,198,195,52,0,198,34,53,0,198,98,53,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,53,0,198,227,53,0,192,0,0,0,198,66,54,0,192,0,0,0,198,130,54,0,198,194,54,0,198,2,55,0,198,67,55,0,192,0,0,0,198,163,55,0,198,3,56,0,192,0,0,0,192,0,0,0,198,99,56,0,198,194,56,0,192,0,0,0,198,2,57,0,198,67,57,0,192,0,0,0,198,162,57,0,192,0,0,0,198,226,57,0,197,163,8,0,198,35,58,0,192,0,0,0,198,130,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,58,0,198,2,59,0,197,2,9,0,198,66,59,0,192,0,0,0,198,130,59,0,198,195,59,0,197,66,9,0,198,35,60,0,192,0,0,0,198,131,60,0,192,0,0,0,198,227,60,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,61,0,192,0,0,0,198,131,61,0,192,0,0,0,198,227,61,0,192,0,0,0,192,0,0,0,198,66,62,0,198,131,62,0,192,0,0,0,192,0,0,0,198,227,62,0,192,0,0,0,198,66,63,0,192,0,0,0,198,130,63,0,192,0,0,0,198,195,63,0,192,0,0,0,198,35,64,0,198,130,64,0,192,0,0,0,198,195,64,0,192,0,0,0,198,35,65,0,192,0,0,0,198,131,65,0,197,130,9,0,197,194,9,0,192,0,0,0,198,227,65,0,192,0,0,0,198,67,66,0,198,162,66,0,192,0,0,0,198,227,66,0,198,67,67,0,198,163,67,0,197,2,10,0,198,3,68,0,198,99,68,0,198,195,68,0,198,34,69,0,198,99,69,0,197,66,10,0,198,195,69,0,197,131,10,0,197,226,10,0,198,34,70,0,192,0,0,0,198,99,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,70,0,198,35,71,0,192,0,0,0,192,0,0,0,198,130,71,0,198,194,71,0,197,98,11,0,198,2,72,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,11,0,198,67,72,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,72,0,192,0,0,0,197,226,11,0,198,2,73,0,192,0,0,0,198,67,73,0,192,0,0,0,198,162,73,0,192,0,0,0,198,227,73,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,74,0,192,0,0,0,198,130,74,0,192,0,0,0,192,0,0,0,198,195,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,75,0,192,0,0,0,198,130,75,0,192,0,0,0,198,195,75,0,198,35,76,0,198,130,76,0,192,0,0,0,197,130,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,77,0,192,0,0,0,198,163,77,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,78,0,197,194,12,0,192,0,0,0,198,99,78,0,192,0,0,0,198,195,78,0,192,0,0,0,198,35,79,0,198,130,79,0,197,2,13,0,198,195,79,0,192,0,0,0,197,67,13,0,198,34,80,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,13,0,198,163,80,0,198,2,81,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,81,0,198,131,81,0,198,226,81,0,198,34,82,0,192,0,0,0,198,99,82,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,82,0,198,35,83,0,198,131,83,0,192,0,0,0,192,0,0,0,198,226,83,0,192,0,0,0,197,226,13,0,198,35,84,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,84,0,198,227,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,85,0,192,0,0,0,198,162,85,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,85,0,197,34,14,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,86,0,198,130,86,0,192,0,0,0,192,0,0,0,197,98,14,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,86,0,192,0,0,0,192,0,0,0,197,162,14,0,198,34,87,0,198,99,87,0,192,0,0,0,198,195,87,0,192,0,0,0,192,0,0,0,198,34,88,0,198,99,88,0,198,195,88,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,89,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,89,0,192,0,0,0,198,195,89,0,192,0,0,0,192,0,0,0,198,34,90,0,198,98,90,0,197,226,14,0,198,163,90,0,198,3,91,0,198,99,91,0,198,195,91,0,192,0,0,0,198,35,92,0,198,131,92,0,192,0,0,0,198,227,92,0,192,0,0,0,198,67,93,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,93,0,192,0,0,0,197,34,15,0,198,2,94,0,198,66,94,0,197,98,15,0,192,0,0,0,197,162,15,0,198,131,94,0,192,0,0,0,198,227,94,0,198,66,95,0,198,131,95,0,192,0,0,0,192,0,0,0,198,227,95,0,192,0,0,0,198,66,96,0,197,226,15,0,192,0,0,0,198,130,96,0,198,195,96,0,192,0,0,0,198,35,97,0,192,0,0,0,192,0,0,0,198,130,97,0,197,34,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,97,0,197,98,16,0,198,35,98,0,192,0,0,0,198,131,98,0,192,0,0,0,197,162,16,0,192,0,0,0,198,227,98,0,198,66,99,0,198,131,99,0,198,227,99,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,100,0,198,163,100,0,192,0,0,0,198,3,101,0,198,99,101,0,198,195,101,0,198,34,102,0,197,227,16,0,198,99,102,0,198,195,102,0,192,0,0,0,198,35,103,0,197,66,17,0,198,131,103,0,198,226,103,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,104,0,192,0,0,0,192,0,0,0,198,98,104,0,192,0,0,0,198,163,104,0,192,0,0,0,192,0,0,0,198,3,105,0,192,0,0,0,198,98,105,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,105,0,192,0,0,0,192,0,0,0,198,3,106,0,192,0,0,0,198,98,106,0,198,163,106,0,198,3,107,0,197,130,17,0,198,99,107,0,198,195,107,0,198,35,108,0,197,194,17,0,192,0,0,0,192,0,0,0,198,131,108,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,108,0,198,66,109,0,198,130,109,0,198,195,109,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,110,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,110,0,192,0,0,0,192,0,0,0,198,35,111,0,198,131,111,0,192,0,0,0,192,0,0,0,198,226,111,0,192,0,0,0,198,35,112,0,192,0,0,0,192,0,0,0,198,130,112,0,198,194,112,0,192,0,0,0,198,3,113,0,192,0,0,0,198,99,113,0,197,2,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,113,0,192,0,0,0,192,0,0,0,197,66,18,0,198,35,114,0,198,131,114,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,114,0,192,0,0,0,198,67,115,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,115,0,197,130,18,0,198,3,116,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,18,0,198,99,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,19,0,198,34,117,0,198,99,117,0,192,0,0,0,192,0,0,0,198,195,117,0,198,35,118,0,198,130,118,0,198,195,118,0,198,35,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,19,0,192,0,0,0,198,131,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,119,0,198,67,120,0,198,163,120,0,197,130,19,0,192,0,0,0,197,194,19,0,198,3,121,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,121,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,121,0,192,0,0,0,192,0,0,0,197,3,20,0,198,34,122,0,192,0,0,0,198,99,122,0,198,195,122,0,192,0,0,0,197,99,20,0,192,0,0,0,198,35,123,0,197,194,20,0,198,131,123,0,192,0,0,0,192,0,0,0,197,3,21,0,192,0,0,0,192,0,0,0,198,226,123,0,198,34,124,0,192,0,0,0,198,99,124,0,192,0,0,0,192,0,0,0,198,195,124,0,198,35,125,0,197,98,21,0,192,0,0,0,198,131,125,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,125,0,192,0,0,0,192,0,0,0,198,67,126,0,192,0,0,0,198,163,126,0,192,0,0,0,192,0,0,0,198,3,127,0,198,99,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,128,0,198,99,128,0,198,195,128,0,198,35,129,0,192,0,0,0,198,130,129,0,198,195,129,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,130,0,192,0,0,0,198,130,130,0,198,195,130,0,198,34,131,0,198,98,131,0,192,0,0,0,192,0,0,0,197,162,21,0,197,226,21,0,198,163,131,0,198,3,132,0,198,98,132,0,198,163,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,22,0,198,3,133,0,192,0,0,0,192,0,0,0,198,99,133,0,192,0,0,0,197,98,22,0,198,195,133,0,198,35,134,0,198,131,134,0,198,227,134,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,135,0,198,162,135,0,198,226,135,0,198,35,136,0,192,0,0,0,192,0,0,0,198,130,136,0,198,195,136,0,192,0,0,0,198,35,137,0,198,130,137,0,198,195,137,0,192,0,0,0,198,35,138,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,138,0,198,227,138,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,139,0,192,0,0,0,192,0,0,0,197,163,22,0,192,0,0,0,198,130,139,0,198,195,139,0,192,0,0,0,198,35,140,0,192,0,0,0,192,0,0,0,198,130,140,0,192,0,0,0,192,0,0,0,197,2,23,0,192,0,0,0,198,194,140,0,192,0,0,0,192,0,0,0,197,66,23,0,197,131,23,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,141,0,198,99,141,0,198,194,141,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,142,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,23,0,198,99,142,0,197,34,24,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,142,0,198,34,143,0,192,0,0,0,192,0,0,0,198,99,143,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,143,0,198,34,144,0,192,0,0,0,192,0,0,0,198,99,144,0,198,195,144,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,145,0,198,98,145,0,198,163,145,0,198,2,146,0,198,66,146,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,24,0,192,0,0,0,192,0,0,0,198,131,146,0,192,0,0,0,198,227,146,0,192,0,0,0,198,67,147,0,192,0,0,0,198,163,147,0,192,0,0,0,198,3,148,0,192,0,0,0,192,0,0,0,198,99,148,0,198,195,148,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,149,0,192,0,0,0,192,0,0,0,198,131,149,0,198,227,149,0,192,0,0,0,198,67,150,0,198,162,150,0,192,0,0,0,197,195,24,0,192,0,0,0,198,227,150,0,198,66,151,0,198,130,151,0,198,195,151,0,197,34,25,0,198,34,152,0,198,99,152,0,198,195,152,0,192,0,0,0,198,34,153,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,25,0,192,0,0,0,197,194,25,0,192,0,0,0,192,0,0,0,198,99,153,0,192,0,0,0,198,195,153,0,198,35,154,0,192,0,0,0,192,0,0,0,198,130,154,0,198,195,154,0,192,0,0,0,198,35,155,0,198,130,155,0,198,194,155,0,192,0,0,0,198,2,156,0,192,0,0,0,192,0,0,0,197,3,26,0,192,0,0,0,198,67,156,0,192,0,0,0,197,99,26,0,198,162,156,0,192,0,0,0,198,226,156,0,198,35,157,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,157,0,197,194,26,0,198,195,157,0,192,0,0,0,198,34,158,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,158,0,198,195,158,0,192,0,0,0,198,35,159,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,27,0,192,0,0,0,192,0,0,0,198,130,159,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,27,0,192,0,0,0,197,162,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,159,0,192,0,0,0,192,0,0,0,197,227,27,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,160,0,198,99,160,0,198,195,160,0,198,34,161,0,198,99,161,0,192,0,0,0,198,195,161,0,198,35,162,0,198,131,162,0,192,0,0,0,198,227,162,0,198,66,163,0,197,66,28,0,198,131,163,0,192,0,0,0,192,0,0,0,198,227,163,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,164,0,198,131,164,0,197,131,28,0,197,227,28,0,192,0,0,0,192,0,0,0,198,227,164,0,192,0,0,0,192,0,0,0,198,67,165,0,192,0,0,0,198,163,165,0,192,0,0,0,198,3,166,0,192,0,0,0,198,99,166,0,198,195,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,29,0,192,0,0,0,198,35,167,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,167,0,192,0,0,0,197,130,29,0,198,226,167,0,198,35,168,0,197,194,29,0,198,130,168,0,198,195,168,0,198,35,169,0,198,131,169,0,192,0,0,0,198,227,169,0,198,66,170,0,197,3,30,0,198,131,170,0,198,227,170,0,192,0,0,0,198,67,171,0,198,163,171,0,198,3,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,172,0,192,0,0,0,192,0,0,0,198,3,173,0,192,0,0,0,198,98,173,0,192,0,0,0,197,98,30,0,192,0,0,0,192,0,0,0,198,162,173,0,192,0,0,0,198,227,173,0,198,67,174,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,174,0,197,162,30,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,175,0,192,0,0,0,192,0,0,0,198,99,175,0,198,194,175,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,176,0,192,0,0,0,198,66,176,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,176,0,192,0,0,0,198,227,176,0,192,0,0,0,192,0,0,0,198,66,177,0,198,130,177,0,198,195,177,0,198,34,178,0,192,0,0,0,198,99,178,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,178,0,192,0,0,0,197,34,31,0,198,34,179,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,179,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,179,0,192,0,0,0,197,98,31,0,198,3,180,0,198,98,180,0,198,162,180,0,198,226,180,0,198,35,181,0,192,0,0,0,198,130,181,0,198,194,181,0,197,162,31,0,198,2,182,0,198,66,182,0,198,131,182,0,198,227,182,0,198,66,183,0,197,226,31,0,198,131,183,0,198,226,183,0,198,34,184,0,198,98,184,0,197,34,32,0,197,99,32,0,192,0,0,0,198,162,184,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,184,0,192,0,0,0,197,195,32,0,198,35,185,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,33,0,198,131,185,0,198,227,185,0,198,67,186,0,198,163,186,0,198,3,187,0,197,130,33,0,198,98,187,0,198,162,187,0,198,227,187,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,188,0,192,0,0,0,198,163,188,0,192,0,0,0,198,3,189,0,197,194,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,189,0,192,0,0,0,192,0,0,0,198,163,189,0,192,0,0,0,197,3,34,0,198,3,190,0,192,0,0,0,198,99,190,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,190,0,192,0,0,0,192,0,0,0,198,3,191,0,192,0,0,0,197,99,34,0,197,194,34,0,192,0,0,0,198,99,191,0,197,2,35,0,197,66,35,0,198,194,191,0,192,0,0,0,197,130,35,0,192,0,0,0,197,194,35,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,192,0,192,0,0,0,198,67,192,0,192,0,0,0,198,162,192,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,192,0,192,0,0,0,192,0,0,0,198,67,193,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,193,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,194,0,192,0,0,0,198,67,194,0,192,0,0,0,198,162,194,0,192,0,0,0,198,226,194,0,192,0,0,0,198,34,195,0,198,99,195,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,195,0,198,2,196,0,192,0,0,0,198,66,196,0,192,0,0,0,198,130,196,0,198,194,196,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,197,0,197,2,36,0,198,99,197,0,192,0,0,0,198,194,197,0,197,66,36,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,198,0,192,0,0,0,198,98,198,0,197,131,36,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,198,0,197,226,36,0,197,34,37,0,198,226,198,0,198,35,199,0,198,130,199,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,199,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,200,0,192,0,0,0,198,99,200,0,192,0,0,0,197,98,37,0,197,162,37,0,192,0,0,0,192,0,0,0,198,194,200,0,192,0,0,0,192,0,0,0,197,226,37,0,198,2,201,0,192,0,0,0,192,0,0,0,198,67,201,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,38,0,192,0,0,0,192,0,0,0,197,194,38,0,197,2,39,0,198,163,201,0,192,0,0,0,198,2,202,0,198,66,202,0,197,67,39,0,198,131,202,0,198,227,202,0,197,163,39,0,192,0,0,0,197,2,40,0,197,66,40,0,197,131,40,0,198,66,203,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,203,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,203,0,198,34,204,0,192,0,0,0,198,98,204,0,198,162,204,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,204,0,197,226,40,0,192,0,0,0,192,0,0,0,198,67,205,0,198,163,205,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,206,0,192,0,0,0,192,0,0,0,198,67,206,0,192,0,0,0,198,162,206,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,41,0,192,0,0,0,198,226,206,0,198,35,207,0,192,0,0,0,198,130,207,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,207,0,197,98,41,0,198,3,208,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,209,0,192,0,0,0,192,0,0,0,198,98,209,0,197,162,41,0,192,0,0,0,198,163,209,0,192,0,0,0,197,226,41,0,192,0,0,0,198,3,210,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,210,0,192,0,0,0,197,34,42,0,192,0,0,0,198,194,210,0,192,0,0,0,198,2,211,0,192,0,0,0,197,99,42,0,192,0,0,0,198,67,211,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,211,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,212,0,192,0,0,0,192,0,0,0,198,67,212,0,198,163,212,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,213,0,192,0,0,0,198,98,213,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,213,0,197,34,43,0,198,227,213,0,198,66,214,0,192,0,0,0,198,131,214,0,198,227,214,0,192,0,0,0,198,67,215,0,198,163,215,0,192,0,0,0,198,3,216,0,198,98,216,0,192,0,0,0,197,98,43,0,197,163,43,0,198,163,216,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,217,0,192,0,0,0,198,98,217,0,198,163,217,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,218,0,197,2,44,0,197,67,44,0,192,0,0,0,197,162,44,0,198,99,218,0,198,195,218,0,197,226,44,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,45,0,197,99,45,0,192,0,0,0,192,0,0,0,197,195,45,0,198,35,219,0,197,34,46,0,198,131,219,0,198,227,219,0,198,66,220,0,192,0,0,0,198,131,220,0,192,0,0,0,198,227,220,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,46,0,192,0,0,0,198,67,221,0,192,0,0,0,198,162,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,46,0,192,0,0,0,192,0,0,0,198,227,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,222,0,198,131,222,0,198,226,222,0,192,0,0,0,192,0,0,0,198,34,223,0,198,99,223,0,192,0,0,0,198,195,223,0,198,34,224,0,197,2,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,224,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,224,0,198,226,224,0,197,67,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,225,0,192,0,0,0,198,99,225,0,192,0,0,0,198,194,225,0,198,2,226,0,192,0,0,0,192,0,0,0,197,162,47,0,198,66,226,0,198,131,226,0,192,0,0,0,198,226,226,0,192,0,0,0,197,226,47,0,192,0,0,0,198,34,227,0,192,0,0,0,198,99,227,0,198,195,227,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,48,0,192,0,0,0,192,0,0,0,197,98,48,0,192,0,0,0,192,0,0,0,198,34,228,0,192,0,0,0,192,0,0,0,198,98,228,0,192,0,0,0,197,162,48,0,192,0,0,0,198,162,228,0,197,226,48,0,198,226,228,0,198,34,229,0,192,0,0,0,197,34,49,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,229,0,192,0,0,0,198,194,229,0,198,3,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,230,0,192,0,0,0,198,195,230,0,192,0,0,0,198,34,231,0,198,99,231,0,197,99,49,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,49,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,231,0,198,35,232,0,192,0,0,0,192,0,0,0,198,130,232,0,198,195,232,0,198,34,233,0,197,2,50,0,198,98,233,0,198,162,233,0,192,0,0,0,198,226,233,0,192,0,0,0,192,0,0,0,197,66,50,0,192,0,0,0,198,35,234,0,192,0,0,0,198,131,234,0,192,0,0,0,198,227,234,0,192,0,0,0,198,67,235,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,235,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,50,0,192,0,0,0,197,226,50,0,197,34,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,236,0,198,67,236,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,236,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,237,0,192,0,0,0,198,99,237,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,237,0,198,35,238,0,192,0,0,0,198,131,238,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,238,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,239,0,198,163,239,0,197,162,51,0,198,3,240,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,51,0,198,98,240,0,198,163,240,0,192,0,0,0,192,0,0,0,197,34,52,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,241,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,241,0,198,162,241,0,192,0,0,0,192,0,0,0,197,98,52,0,198,227,241,0,198,67,242,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,242,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,52,0,192,0,0,0,192,0,0,0,197,2,53,0,192,0,0,0,198,3,243,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,243,0,192,0,0,0,198,195,243,0,198,34,244,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,244,0,192,0,0,0,198,163,244,0,198,3,245,0,198,98,245,0,198,162,245,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,245,0,198,66,246,0,198,131,246,0,198,227,246,0,192,0,0,0,197,66,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,247,0,198,163,247,0,192,0,0,0,192,0,0,0,198,2,248,0,192,0,0,0,198,67,248,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,248,0,192,0,0,0,192,0,0,0,198,2,249,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,249,0,192,0,0,0,192,0,0,0,198,162,249,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,249,0,198,34,250,0,198,98,250,0,192,0,0,0,198,162,250,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,250,0,192,0,0,0,192,0,0,0,198,35,251,0,192,0,0,0,198,130,251,0,192,0,0,0,198,195,251,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,252,0,192,0,0,0,192,0,0,0,198,131,252,0,192,0,0,0,198,227,252,0,198,67,253,0,198,163,253,0,198,2,254,0,197,130,53,0,198,67,254,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,53,0,192,0,0,0,192,0,0,0,198,163,254,0,192,0,0,0,198,3,255,0,198,99,255,0,198,194,255,0,198,3,0,1,198,99,0,1,192,0,0,0,192,0,0,0,192,0,0,0,198,194,0,1,198,2,1,1,198,67,1,1,198,163,1,1,192,0,0,0,198,2,2,1,192,0,0,0,198,66,2,1,192,0,0,0,198,130,2,1,198,194,2,1,192,0,0,0,192,0,0,0,198,2,3,1,197,3,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,3,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,3,1,192,0,0,0,192,0,0,0,198,195,3,1,198,35,4,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,54,0,192,0,0,0,197,162,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,4,1,192,0,0,0,198,195,4,1,192,0,0,0,198,34,5,1,198,99,5,1,198,195,5,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,6,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,6,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,1,192,0,0,0,192,0,0,0,198,35,7,1,198,131,7,1,198,227,7,1,197,227,54,0,192,0,0,0,198,66,8,1,192,0,0,0,192,0,0,0,198,131,8,1,198,227,8,1,192,0,0,0,198,67,9,1,198,163,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,55,0,192,0,0,0,192,0,0,0,198,3,10,1,198,98,10,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,10,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,10,1,192,0,0,0,192,0,0,0,198,34,11,1,192,0,0,0,192,0,0,0,198,99,11,1,198,195,11,1,192,0,0,0,192,0,0,0,198,35,12,1,192,0,0,0,198,130,12,1,198,194,12,1,198,3,13,1,198,98,13,1,198,162,13,1,192,0,0,0,192,0,0,0,198,227,13,1,192,0,0,0,198,67,14,1,198,163,14,1,192,0,0,0,198,3,15,1,197,130,55,0,192,0,0,0,198,99,15,1,198,195,15,1,198,35,16,1,198,131,16,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,16,1,192,0,0,0,198,67,17,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,17,1,197,195,55,0,192,0,0,0,197,34,56,0,198,226,17,1,192,0,0,0,198,34,18,1,197,98,56,0,192,0,0,0,198,98,18,1,198,163,18,1,192,0,0,0,192,0,0,0,198,3,19,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,56,0,198,99,19,1,198,194,19,1,192,0,0,0,192,0,0,0,198,3,20,1,198,98,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,21,1,198,162,21,1,198,227,21,1,197,227,56,0,198,67,22,1,192,0,0,0,198,162,22,1,198,226,22,1,198,34,23,1,198,98,23,1,192,0,0,0,197,67,57,0,192,0,0,0,192,0,0,0,198,162,23,1,198,227,23,1,198,66,24,1,198,131,24,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,24,1,192,0,0,0,192,0,0,0,198,35,25,1,198,130,25,1,192,0,0,0,197,163,57,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,25,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,26,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,26,1,192,0,0,0,192,0,0,0,198,227,26,1,198,67,27,1,198,163,27,1,192,0,0,0,198,2,28,1,198,67,28,1,192,0,0,0,198,163,28,1,192,0,0,0,198,2,29,1,192,0,0,0,192,0,0,0,192,0,0,0,198,67,29,1,198,163,29,1,192,0,0,0,192,0,0,0,198,2,30,1,192,0,0,0,192,0,0,0,198,67,30,1,192,0,0,0,192,0,0,0,198,162,30,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,58,0,198,226,30,1,198,35,31,1,197,66,58,0,192,0,0,0,198,131,31,1,192,0,0,0,198,227,31,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,32,1,198,163,32,1,192,0,0,0,198,3,33,1,192,0,0,0,192,0,0,0,197,130,58,0,192,0,0,0,198,99,33,1,198,195,33,1,192,0,0,0,198,35,34,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,34,1,198,195,34,1,192,0,0,0,192,0,0,0,198,35,35,1,192,0,0,0,192,0,0,0,198,131,35,1,192,0,0,0,198,227,35,1,192,0,0,0,198,67,36,1,192,0,0,0,198,163,36,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,58,0,192,0,0,0,192,0,0,0,197,35,59,0,192,0,0,0,198,3,37,1,198,98,37,1,197,130,59,0,192,0,0,0,192,0,0,0,198,162,37,1,198,227,37,1,198,66,38,1,192,0,0,0,198,131,38,1,198,226,38,1,198,34,39,1,198,99,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,40,1,198,99,40,1,192,0,0,0,192,0,0,0,198,195,40,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,41,1,197,194,59,0,198,130,41,1,192,0,0,0,198,194,41,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,42,1,192,0,0,0,198,98,42,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,60,0,198,163,42,1,192,0,0,0,192,0,0,0,192,0,0,0,198,2,43,1,198,67,43,1,197,66,60,0,192,0,0,0,192,0,0,0,198,163,43,1,198,2,44,1,192,0,0,0,197,130,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,44,1,192,0,0,0,198,163,44,1,198,2,45,1,192,0,0,0,198,66,45,1,192,0,0,0,198,131,45,1,197,194,60,0,198,226,45,1,197,2,61,0,197,66,61,0,198,35,46,1,198,131,46,1,192,0,0,0,198,227,46,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,47,1,198,130,47,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,47,1,192,0,0,0,192,0,0,0,198,34,48,1,198,98,48,1,198,163,48,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,49,1,198,66,49,1,197,227,61,0,198,130,49,1,192,0,0,0,198,194,49,1,198,3,50,1,197,67,62,0,192,0,0,0,197,162,62,0,198,99,50,1,192,0,0,0,197,226,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,50,1,192,0,0,0,198,34,51,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,51,1,192,0,0,0,198,163,51,1,198,3,52,1,198,99,52,1,198,195,52,1,198,35,53,1,198,131,53,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,63,0,198,226,53,1,192,0,0,0,198,34,54,1,192,0,0,0,198,99,54,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,63,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,63,0,198,194,54,1,198,3,55,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,55,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,63,0,197,34,64,0,198,194,55,1,192,0,0,0,192,0,0,0,197,98,64,0,198,3,56,1,192,0,0,0,198,98,56,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,56,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,57,1,192,0,0,0,198,66,57,1,192,0,0,0,198,131,57,1,198,227,57,1,192,0,0,0,192,0,0,0,192,0,0,0,197,162,64,0,192,0,0,0,192,0,0,0,198,67,58,1,192,0,0,0,192,0,0,0,198,163,58,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,59,1,192,0,0,0,197,226,64,0,192,0,0,0,192,0,0,0,197,35,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,59,1,192,0,0,0,192,0,0,0,198,162,59,1,192,0,0,0,198,227,59,1,198,66,60,1,192,0,0,0,198,130,60,1,192,0,0,0,198,195,60,1,192,0,0,0,192,0,0,0,197,130,65,0,198,34,61,1,198,98,61,1,198,163,61,1,197,194,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,62,1,197,2,66,0,192,0,0,0,198,99,62,1,198,194,62,1,198,3,63,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,63,1,198,162,63,1,198,226,63,1,198,35,64,1,192,0,0,0,198,130,64,1,192,0,0,0,198,195,64,1,192,0,0,0,197,66,66,0,192,0,0,0,198,35,65,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,65,1,192,0,0,0,198,227,65,1,198,67,66,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,66,1,192,0,0,0,197,130,66,0,192,0,0,0,197,194,66,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,66,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,67,1,192,0,0,0,198,130,67,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,67,1,198,35,68,1,192,0,0,0,198,130,68,1,198,194,68,1,192,0,0,0,192,0,0,0,198,3,69,1,198,99,69,1,192,0,0,0,192,0,0,0,197,2,67,0,192,0,0,0,198,194,69,1,192,0,0,0,198,2,70,1,192,0,0,0,198,67,70,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,70,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,70,1,197,66,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,71,1,192,0,0,0,192,0,0,0,198,130,71,1,198,194,71,1,198,2,72,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,67,0,192,0,0,0,192,0,0,0,198,67,72,1,192,0,0,0,192,0,0,0,198,163,72,1,192,0,0,0,192,0,0,0,192,0,0,0,197,194,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,73,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,73,1,198,163,73,1,192,0,0,0,192,0,0,0,198,2,74,1,198,67,74,1,192,0,0,0,192,0,0,0,198,163,74,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,76,1,197,67,68,0,192,0,0,0,198,99,76,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,76,1,198,3,77,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,77,1,192,0,0,0,192,0,0,0,198,194,77,1,192,0,0,0,198,2,78,1,192,0,0,0,192,0,0,0,197,162,68,0,192,0,0,0,192,0,0,0,198,66,78,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,78,1,192,0,0,0,198,227,78,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,79,1,198,131,79,1,198,227,79,1,198,66,80,1,198,130,80,1,198,194,80,1,192,0,0,0,198,2,81,1,198,66,81,1,192,0,0,0,198,131,81,1,192,0,0,0,192,0,0,0,192,0,0,0,198,227,81,1,198,67,82,1,192,0,0,0,198,162,82,1,197,227,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,69,0,198,226,82,1,192,0,0,0,198,35,83,1,198,131,83,1,197,130,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,83,1,198,35,84,1,198,130,84,1,198,195,84,1,192,0,0,0,198,35,85,1,198,131,85,1,192,0,0,0,192,0,0,0,198,227,85,1,192,0,0,0,198,66,86,1,192,0,0,0,197,194,69,0,197,2,70,0,198,130,86,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,86,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,87,1,198,99,87,1,192,0,0,0,198,194,87,1,192,0,0,0,192,0,0,0,198,2,88,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,70,0,192,0,0,0,192,0,0,0,198,66,88,1,197,130,70,0,192,0,0,0,198,131,88,1,198,226,88,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,70,0,192,0,0,0,192,0,0,0,198,35,89,1,192,0,0,0,198,131,89,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,89,1,192,0,0,0,192,0,0,0,198,34,90,1,192,0,0,0,198,99,90,1,192,0,0,0,192,0,0,0,198,194,90,1,192,0,0,0,192,0,0,0,198,3,91,1,192,0,0,0,198,98,91,1,192,0,0,0,198,163,91,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,92,1,198,99,92,1,198,195,92,1,192,0,0,0,192,0,0,0,198,35,93,1,192,0,0,0,198,131,93,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,93,1,192,0,0,0,192,0,0,0,192,0,0,0,198,66,94,1,197,3,71,0,192,0,0,0,192,0,0,0,198,131,94,1,198,227,94,1,198,66,95,1,198,130,95,1,198,195,95,1,192,0,0,0,198,34,96,1,197,98,71,0,198,98,96,1,197,162,71,0,192,0,0,0,198,163,96,1,192,0,0,0,198,2,97,1,192,0,0,0,198,66,97,1,198,130,97,1,198,194,97,1,192,0,0,0,192,0,0,0,192,0,0,0,197,226,71,0,192,0,0,0,198,3,98,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,98,1,198,195,98,1,192,0,0,0,192,0,0,0,192,0,0,0,198,34,99,1,198,98,99,1,192,0,0,0,197,35,72,0,192,0,0,0,197,130,72,0,192,0,0,0,198,163,99,1,192,0,0,0,192,0,0,0,198,3,100,1,192,0,0,0,197,194,72,0,198,99,100,1,192,0,0,0,192,0,0,0,198,195,100,1,192,0,0,0,198,34,101,1,198,98,101,1,198,163,101,1,198,2,102,1,198,67,102,1,198,163,102,1,192,0,0,0,192,0,0,0,198,3,103,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,103,1,192,0,0,0,198,195,103,1,197,3,73,0,198,35,104,1,198,131,104,1,198,226,104,1,198,35,105,1,198,131,105,1,197,98,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,105,1,198,67,106,1,198,163,106,1,197,162,73,0,197,227,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,107,1,192,0,0,0,198,99,107,1,192,0,0,0,198,194,107,1,192,0,0,0,192,0,0,0,197,66,74,0,198,3,108,1,198,98,108,1,198,162,108,1,192,0,0,0,198,227,108,1,198,67,109,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,109,1,198,2,110,1,192,0,0,0,198,67,110,1,198,163,110,1,198,2,111,1,198,67,111,1,198,163,111,1,198,2,112,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,112,1,192,0,0,0,192,0,0,0,192,0,0,0,198,130,112,1,192,0,0,0,198,195,112,1,198,34,113,1,198,99,113,1,192,0,0,0,197,131,74,0,198,195,113,1,197,226,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,114,1,198,131,114,1,192,0,0,0,197,34,75,0,197,99,75,0,192,0,0,0,198,226,114,1,197,194,75,0,198,35,115,1,198,131,115,1,198,226,115,1,198,35,116,1,192,0,0,0,198,130,116,1,198,195,116,1,197,2,76,0,198,34,117,1,198,99,117,1,197,67,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,117,1,198,34,118,1,192,0,0,0,198,99,118,1,192,0,0,0,198,194,118,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,119,1,192,0,0,0,192,0,0,0,198,98,119,1,198,163,119,1,192,0,0,0,198,3,120,1,198,99,120,1,197,162,76,0,198,195,120,1,198,35,121,1,198,130,121,1,198,194,121,1,198,2,122,1,198,66,122,1,192,0,0,0,198,130,122,1,192,0,0,0,192,0,0,0,198,194,122,1,192,0,0,0,198,3,123,1,192,0,0,0,192,0,0,0,198,99,123,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,123,1,198,35,124,1,192,0,0,0,192,0,0,0,192,0,0,0,198,130,124,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,124,1,192,0,0,0,192,0,0,0,198,35,125,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,125,1,198,195,125,1,198,35,126,1,198,130,126,1,198,194,126,1,192,0,0,0,198,2,127,1,198,66,127,1,198,131,127,1,198,226,127,1,192,0,0,0,192,0,0,0,192,0,0,0,198,34,128,1,198,98,128,1,198,163,128,1,198,3,129,1,192,0,0,0,192,0,0,0,198,99,129,1,192,0,0,0,198,194,129,1,198,2,130,1,192,0,0,0,198,67,130,1,198,163,130,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,131,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,131,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,131,1,192,0,0,0,198,2,132,1,192,0,0,0,198,67,132,1,198,162,132,1,192,0,0,0,192,0,0,0,198,226,132,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,133,1,192,0,0,0,192,0,0,0,198,131,133,1,192,0,0,0,198,227,133,1,192,0,0,0,198,67,134,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,77,0,198,162,134,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,77,0,192,0,0,0,198,227,134,1,192,0,0,0,198,67,135,1,192,0,0,0,192,0,0,0,198,163,135,1,198,2,136,1,198,67,136,1,198,163,136,1,192,0,0,0,198,2,137,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,137,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,137,1,192,0,0,0,198,2,138,1,192,0,0,0,197,194,77,0,198,67,138,1,198,162,138,1,197,2,78,0,198,227,138,1,198,67,139,1,198,162,139,1,198,227,139,1,198,67,140,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,140,1,192,0,0,0,198,227,140,1,192,0,0,0,197,66,78,0,192,0,0,0,198,67,141,1,198,163,141,1,192,0,0,0,198,3,142,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,142,1,192,0,0,0,198,194,142,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,143,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,143,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,143,1,198,2,144,1,192,0,0,0,192,0,0,0,192,0,0,0,198,66,144,1,192,0,0,0,198,131,144,1,198,227,144,1,198,66,145,1,192,0,0,0,192,0,0,0,198,131,145,1,192,0,0,0,198,226,145,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,146,1,192,0,0,0,197,195,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,146,1,198,227,146,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,147,1,198,130,147,1,192,0,0,0,198,195,147,1,198,35,148,1,192,0,0,0,192,0,0,0,197,34,79,0,198,130,148,1,198,194,148,1,198,3,149,1,192,0,0,0,198,99,149,1,192,0,0,0,198,195,149,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,150,1,192,0,0,0,192,0,0,0,198,131,150,1,192,0,0,0,197,98,79,0,192,0,0,0,198,227,150,1,198,67,151,1,192,0,0,0,198,163,151,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,152,1,192,0,0,0,192,0,0,0,192,0,0,0,198,67,152,1,198,163,152,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,153,1,198,67,153,1,192,0,0,0,198,162,153,1,192,0,0,0,198,227,153,1,192,0,0,0,192,0,0,0,198,67,154,1,197,226,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,154,1,192,0,0,0,192,0,0,0,197,34,80,0,192,0,0,0,192,0,0,0,198,2,155,1,192,0,0,0,198,67,155,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,155,1,198,227,155,1,192,0,0,0,198,67,156,1,192,0,0,0,192,0,0,0,198,162,156,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,156,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,157,1,192,0,0,0,198,131,157,1,198,226,157,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,158,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,158,1,192,0,0,0,192,0,0,0,198,226,158,1,192,0,0,0,197,98,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,159,1,192,0,0,0,192,0,0,0,198,131,159,1,198,227,159,1,192,0,0,0,192,0,0,0,197,163,80,0,192,0,0,0,197,2,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,81,0,198,67,160,1,192,0,0,0,198,163,160,1,192,0,0,0,198,2,161,1,198,67,161,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,161,1,192,0,0,0,198,2,162,1,192,0,0,0,197,130,81,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,162,1,198,163,162,1,198,3,163,1,192,0,0,0,192,0,0,0,198,99,163,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,163,1,192,0,0,0,192,0,0,0,198,35,164,1,198,130,164,1,192,0,0,0,192,0,0,0,198,195,164,1,198,34,165,1,192,0,0,0,192,0,0,0,198,99,165,1,197,194,81,0,198,194,165,1,198,2,166,1,192,0,0,0,192,0,0,0,198,66,166,1,192,0,0,0,192,0,0,0,198,130,166,1,192,0,0,0,192,0,0,0,198,194,166,1,198,2,167,1,198,66,167,1,197,2,82,0,197,66,82,0,192,0,0,0,198,131,167,1,192,0,0,0,198,227,167,1,192,0,0,0,192,0,0,0,192,0,0,0,198,67,168,1,198,163,168,1,192,0,0,0,192,0,0,0,192,0,0,0,198,2,169,1,198,66,169,1,192,0,0,0,192,0,0,0,198,131,169,1,192,0,0,0,192,0,0,0,198,227,169,1,192,0,0,0,192,0,0,0,197,130,82,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,170,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,170,1,197,195,82,0,192,0,0,0,192,0,0,0,198,3,171,1,198,98,171,1,198,163,171,1,192,0,0,0,197,34,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,172,1,192,0,0,0,192,0,0,0,198,66,172,1,192,0,0,0,192,0,0,0,198,130,172,1,192,0,0,0,198,195,172,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,173,1,192,0,0,0,192,0,0,0,198,130,173,1,198,194,173,1,198,3,174,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,174,1,192,0,0,0,197,98,83,0,198,163,174,1,192,0,0,0,192,0,0,0,197,162,83,0,198,3,175,1,197,227,83,0,192,0,0,0,198,99,175,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,84,0,192,0,0,0,198,195,175,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,176,1,198,131,176,1,192,0,0,0,192,0,0,0,198,227,176,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,177,1,197,162,84,0,192,0,0,0,198,163,177,1,198,3,178,1,197,226,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,178,1,192,0,0,0,198,195,178,1,198,35,179,1,198,130,179,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,179,1,198,35,180,1,198,131,180,1,198,227,180,1,198,67,181,1,192,0,0,0,192,0,0,0,198,163,181,1,198,3,182,1,198,99,182,1,198,194,182,1,197,35,85,0,197,130,85,0,197,194,85,0,198,2,183,1,198,67,183,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,183,1,192,0,0,0,192,0,0,0,198,2,184,1,192,0,0,0,192,0,0,0,198,67,184,1,198,162,184,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,184,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,86,0,198,34,185,1,198,99,185,1,192,0,0,0,192,0,0,0,198,195,185,1,192,0,0,0,198,34,186,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,186,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,186,1,197,66,86,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,187,1,192,0,0,0,198,67,187,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,187,1,192,0,0,0,198,227,187,1,198,66,188,1,198,131,188,1,198,227,188,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,189,1,197,130,86,0,192,0,0,0,192,0,0,0,198,131,189,1,198,227,189,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,86,0,198,67,190,1,198,163,190,1,198,2,191,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,191,1,198,131,191,1,192,0,0,0,198,227,191,1,192,0,0,0,198,67,192,1,198,162,192,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,192,1,198,35,193,1,192,0,0,0,198,130,193,1,197,3,87,0,198,194,193,1,198,3,194,1,198,98,194,1,197,98,87,0,198,163,194,1,192,0,0,0,198,2,195,1,192,0,0,0,198,67,195,1,197,162,87,0,198,163,195,1,192,0,0,0,192,0,0,0,197,226,87,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,196,1,192,0,0,0,198,99,196,1,192,0,0,0,192,0,0,0,198,195,196,1,198,35,197,1,192,0,0,0,192,0,0,0,198,131,197,1,197,34,88,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,197,1,192,0,0,0,198,67,198,1,192,0,0,0,198,162,198,1,198,227,198,1,192,0,0,0,192,0,0,0,198,67,199,1,197,99,88,0,192,0,0,0,197,194,88,0,198,163,199,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,200,1,192,0,0,0,198,98,200,1,192,0,0,0,198,163,200,1,198,2,201,1,198,67,201,1,192,0,0,0,198,163,201,1,197,3,89,0,192,0,0,0,192,0,0,0,198,2,202,1,192,0,0,0,192,0,0,0,192,0,0,0,197,98,89,0,192,0,0,0,192,0,0,0,198,66,202,1,192,0,0,0,192,0,0,0,198,130,202,1,198,195,202,1,197,162,89,0,192,0,0,0,198,34,203,1,192,0,0,0,192,0,0,0,192,0,0,0,198,98,203,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,203,1,192,0,0,0,192,0,0,0,198,3,204,1,198,99,204,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,204,1,192,0,0,0,197,227,89,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,205,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,205,1,192,0,0,0,198,195,205,1,192,0,0,0,198,35,206,1,192,0,0,0,198,130,206,1,192,0,0,0,198,195,206,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,207,1,192,0,0,0,198,131,207,1,197,66,90,0,197,130,90,0,197,194,90,0,192,0,0,0,198,226,207,1,192,0,0,0,198,34,208,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,208,1,192,0,0,0,198,195,208,1,192,0,0,0,198,35,209,1,198,131,209,1,192,0,0,0,198,226,209,1,197,2,91,0,198,34,210,1,198,99,210,1,198,195,210,1,192,0,0,0,192,0,0,0,198,35,211,1,198,131,211,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,211,1,192,0,0,0,198,67,212,1,192,0,0,0,192,0,0,0,197,66,91,0,192,0,0,0,192,0,0,0,198,163,212,1,198,3,213,1,198,99,213,1,198,194,213,1,192,0,0,0,192,0,0,0,198,2,214,1,192,0,0,0,198,67,214,1,197,131,91,0,198,163,214,1,197,226,91,0,198,3,215,1,197,34,92,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,215,1,198,163,215,1,198,2,216,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,216,1,198,162,216,1,198,226,216,1,192,0,0,0,192,0,0,0,198,35,217,1,192,0,0,0,198,131,217,1,192,0,0,0,198,226,217,1,198,34,218,1,192,0,0,0,198,98,218,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,218,1,197,99,92,0,198,3,219,1,198,99,219,1,192,0,0,0,198,195,219,1,198,34,220,1,198,98,220,1,197,194,92,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,220,1,192,0,0,0,198,3,221,1,192,0,0,0,198,99,221,1,192,0,0,0,192,0,0,0,198,194,221,1,197,2,93,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,222,1,192,0,0,0,197,67,93,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,222,1,192,0,0,0,192,0,0,0,198,162,222,1,198,227,222,1,192,0,0,0,192,0,0,0,197,163,93,0,192,0,0,0,197,3,94,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,223,1,198,162,223,1,198,227,223,1,198,67,224,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,224,1,198,3,225,1,198,99,225,1,198,195,225,1,198,35,226,1,192,0,0,0,192,0,0,0,198,130,226,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,226,1,192,0,0,0,192,0,0,0,197,98,94,0,192,0,0,0,198,35,227,1,198,130,227,1,192,0,0,0,192,0,0,0,197,163,94,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,227,1,192,0,0,0,192,0,0,0,198,34,228,1,192,0,0,0,192,0,0,0,197,3,95,0,198,99,228,1,197,99,95,0,192,0,0,0,198,195,228,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,229,1,192,0,0,0,192,0,0,0,198,99,229,1,192,0,0,0,198,195,229,1,192,0,0,0,192,0,0,0,198,34,230,1,192,0,0,0,198,99,230,1,197,194,95,0,198,194,230,1,198,3,231,1,192,0,0,0,197,2,96,0,192,0,0,0,198,99,231,1,198,195,231,1,198,34,232,1,192,0,0,0,192,0,0,0,197,66,96,0,198,98,232,1,192,0,0,0,192,0,0,0,192,0,0,0,198,163,232,1,198,3,233,1,198,99,233,1,198,195,233,1,198,34,234,1,198,98,234,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,234,1,192,0,0,0,192,0,0,0,192,0,0,0,197,131,96,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,235,1,198,99,235,1,198,194,235,1,192,0,0,0,192,0,0,0,198,3,236,1,198,99,236,1,198,194,236,1,192,0,0,0,197,227,96,0,192,0,0,0,192,0,0,0,197,67,97,0,192,0,0,0,192,0,0,0,198,3,237,1,192,0,0,0,198,99,237,1,192,0,0,0,192,0,0,0,198,194,237,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,238,1,198,98,238,1,192,0,0,0,192,0,0,0,198,163,238,1,192,0,0,0,197,163,97,0,198,2,239,1,192,0,0,0,197,2,98,0,198,66,239,1,197,67,98,0,197,162,98,0,192,0,0,0,192,0,0,0,198,131,239,1,198,227,239,1,198,67,240,1,198,163,240,1,198,3,241,1,198,99,241,1,192,0,0,0,198,195,241,1,197,227,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,242,1,192,0,0,0,198,131,242,1,198,226,242,1,198,35,243,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,243,1,192,0,0,0,198,227,243,1,197,66,99,0,198,67,244,1,192,0,0,0,197,131,99,0,192,0,0,0,192,0,0,0,198,163,244,1,192,0,0,0,197,226,99,0,197,34,100,0,197,98,100,0,198,3,245,1,192,0,0,0,192,0,0,0,198,99,245,1,198,195,245,1,192,0,0,0,192,0,0,0,192,0,0,0,198,34,246,1,197,162,100,0,192,0,0,0,198,99,246,1,197,227,100,0,198,195,246,1,192,0,0,0,192,0,0,0,198,34,247,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,247,1,198,194,247,1,198,2,248,1,198,67,248,1,197,66,101,0,198,163,248,1,198,3,249,1,192,0,0,0,198,98,249,1,192,0,0,0,192,0,0,0,198,163,249,1,198,2,250,1,197,130,101,0,198,67,250,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,250,1,198,3,251,1,198,98,251,1,198,163,251,1,192,0,0,0,198,3,252,1,192,0,0,0,198,99,252,1,192,0,0,0,192,0,0,0,192,0,0,0,198,195,252,1,192,0,0,0,197,195,101,0,192,0,0,0,198,35,253,1,192,0,0,0,198,131,253,1,192,0,0,0,192,0,0,0,198,227,253,1,198,67,254,1,197,35,102,0,198,163,254,1,198,3,255,1,198,99,255,1,192,0,0,0,197,130,102,0,197,194,102,0,198,195,255,1,197,2,103,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,0,2,198,98,0,2,198,163,0,2,198,3,1,2,197,66,103,0,192,0,0,0,197,131,103,0,198,99,1,2,198,195,1,2,197,226,103,0,198,35,2,2,198,131,2,2,198,227,2,2,192,0,0,0,192,0,0,0,192,0,0,0,198,66,3,2,198,130,3,2,192,0,0,0,198,195,3,2,192,0,0,0,192,0,0,0,198,35,4,2,192,0,0,0,197,34,104,0,197,98,104,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,4,2,197,163,104,0,197,2,105,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,4,2,198,67,5,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,2,198,226,5,2,197,67,105,0,192,0,0,0,192,0,0,0,198,35,6,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,6,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,6,2,198,2,7,2,192,0,0,0,192,0,0,0,197,163,105,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,7,2,192,0,0,0,192,0,0,0,198,162,7,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,7,2,192,0,0,0,198,66,8,2,198,131,8,2,192,0,0,0,192,0,0,0,198,227,8,2,192,0,0,0,198,67,9,2,192,0,0,0,198,162,9,2,198,227,9,2,198,66,10,2,192,0,0,0,198,131,10,2,197,2,106,0,197,67,106,0,198,227,10,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,11,2,197,162,106,0,192,0,0,0,198,162,11,2,192,0,0,0,192,0,0,0,198,227,11,2,198,67,12,2,198,163,12,2,192,0,0,0,192,0,0,0,197,227,106,0,192,0,0,0,198,3,13,2,198,98,13,2,192,0,0,0,198,163,13,2,198,3,14,2,198,99,14,2,192,0,0,0,192,0,0,0,197,66,107,0,198,194,14,2,192,0,0,0,192,0,0,0,198,3,15,2,192,0,0,0,192,0,0,0,197,130,107,0,192,0,0,0,197,194,107,0,198,99,15,2,192,0,0,0,198,195,15,2,198,35,16,2,198,131,16,2,198,227,16,2,198,67,17,2,192,0,0,0,192,0,0,0,198,162,17,2,192,0,0,0,192,0,0,0,198,227,17,2,198,67,18,2,192,0,0,0,192,0,0,0,198,163,18,2,198,2,19,2,198,67,19,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,19,2,192,0,0,0,192,0,0,0,198,226,19,2,198,35,20,2,192,0,0,0,198,131,20,2,198,227,20,2,197,2,108,0,192,0,0,0,198,66,21,2,192,0,0,0,198,131,21,2,192,0,0,0,197,66,108,0,197,130,108,0,198,227,21,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,22,2,192,0,0,0,192,0,0,0,198,163,22,2,198,3,23,2,198,98,23,2,192,0,0,0,198,163,23,2,198,3,24,2,192,0,0,0,198,98,24,2,198,163,24,2,192,0,0,0,192,0,0,0,198,3,25,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,25,2,192,0,0,0,198,195,25,2,192,0,0,0,198,35,26,2,198,131,26,2,198,227,26,2,192,0,0,0,198,67,27,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,27,2,192,0,0,0,192,0,0,0,198,2,28,2,198,67,28,2,197,194,108,0,198,163,28,2,198,2,29,2,198,66,29,2,198,131,29,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,29,2,192,0,0,0,197,2,109,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,30,2,198,162,30,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,30,2,192,0,0,0,192,0,0,0,198,66,31,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,31,2,192,0,0,0,192,0,0,0,192,0,0,0,198,226,31,2,197,66,109,0,198,35,32,2,192,0,0,0,198,131,32,2,192,0,0,0,198,226,32,2,197,131,109,0,198,35,33,2,197,226,109,0,198,131,33,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,33,2,197,34,110,0,192,0,0,0,198,66,34,2,192,0,0,0,198,131,34,2,198,226,34,2,198,35,35,2,192,0,0,0,198,131,35,2,198,226,35,2,198,34,36,2,192,0,0,0,198,99,36,2,198,195,36,2,197,99,110,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,37,2,192,0,0,0,192,0,0,0,192,0,0,0,198,131,37,2,198,227,37,2,192,0,0,0,198,67,38,2,198,163,38,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,39,2,192,0,0,0,198,99,39,2,198,195,39,2,192,0,0,0,192,0,0,0,192,0,0,0,198,35,40,2,192,0,0,0,198,131,40,2,197,194,110,0,197,2,111,0,198,227,40,2,198,66,41,2,198,130,41,2,197,66,111,0,192,0,0,0,192,0,0,0,198,195,41,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,111,0,198,35,42,2,198,130,42,2,198,195,42,2,192,0,0,0,198,35,43,2,192,0,0,0,192,0,0,0,192,0,0,0,198,131,43,2,197,194,111,0,198,226,43,2,198,35,44,2,198,130,44,2,192,0,0,0,198,194,44,2,198,3,45,2,192,0,0,0,192,0,0,0,198,99,45,2,198,194,45,2,198,2,46,2,192,0,0,0,192,0,0,0,192,0,0,0,198,66,46,2,198,131,46,2,192,0,0,0,192,0,0,0,198,227,46,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,47,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,47,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,47,2,192,0,0,0,192,0,0,0,198,67,48,2,192,0,0,0,198,163,48,2,192,0,0,0,192,0,0,0,198,2,49,2,192,0,0,0,192,0,0,0,198,66,49,2,198,130,49,2,192,0,0,0,198,195,49,2,192,0,0,0,198,34,50,2,198,99,50,2,198,194,50,2,192,0,0,0,192,0,0,0,198,3,51,2,198,98,51,2,192,0,0,0,198,163,51,2,192,0,0,0,192,0,0,0,198,3,52,2,197,2,112,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,52,2,198,194,52,2,192,0,0,0,198,2,53,2,197,66,112,0,198,66,53,2,198,131,53,2,198,227,53,2,192,0,0,0,192,0,0,0,198,66,54,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,54,2,192,0,0,0,192,0,0,0,197,130,112,0,198,226,54,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,55,2,192,0,0,0,192,0,0,0,192,0,0,0,197,194,112,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,55,2,192,0,0,0,192,0,0,0,198,195,55,2,197,2,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,56,2,192,0,0,0,198,130,56,2,198,195,56,2,198,35,57,2,198,130,57,2,198,195,57,2,198,35,58,2,198,130,58,2,192,0,0,0,198,195,58,2,198,35,59,2,192,0,0,0,198,130,59,2,198,194,59,2,198,3,60,2,198,98,60,2,198,163,60,2,198,3,61,2,198,98,61,2,198,162,61,2,197,66,113,0,198,226,61,2,198,35,62,2,192,0,0,0,198,130,62,2,198,194,62,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,63,2,198,99,63,2,198,195,63,2,198,35,64,2,192,0,0,0,198,131,64,2,192,0,0,0,198,227,64,2,192,0,0,0,198,67,65,2,198,163,65,2,198,2,66,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,113,0,198,67,66,2,198,162,66,2,192,0,0,0,198,226,66,2,197,194,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,67,2,192,0,0,0,198,99,67,2,192,0,0,0,192,0,0,0,198,195,67,2,192,0,0,0,192,0,0,0,192,0,0,0,198,34,68,2,198,98,68,2,198,163,68,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,69,2,192,0,0,0,198,66,69,2,197,2,114,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,69,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,69,2,198,67,70,2,198,163,70,2,192,0,0,0,198,3,71,2,197,67,114,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,71,2,198,163,71,2,198,2,72,2,192,0,0,0,198,67,72,2,192,0,0,0,192,0,0,0,198,163,72,2,192,0,0,0,192,0,0,0,198,3,73,2,198,99,73,2,198,194,73,2,198,3,74,2,198,99,74,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,74,2,192,0,0,0,198,3,75,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,75,2,198,194,75,2,198,3,76,2,192,0,0,0,198,99,76,2,192,0,0,0,192,0,0,0,198,194,76,2,192,0,0,0,192,0,0,0,198,2,77,2,198,67,77,2,192,0,0,0,192,0,0,0,192,0,0,0,198,162,77,2,197,163,114,0,192,0,0,0,192,0,0,0,198,227,77,2,198,67,78,2,192,0,0,0,192,0,0,0,192,0,0,0,198,162,78,2,197,3,115,0,192,0,0,0,192,0,0,0,198,226,78,2,198,35,79,2,192,0,0,0,192,0,0,0,198,131,79,2,198,226,79,2,198,34,80,2,198,98,80,2,192,0,0,0,198,163,80,2,192,0,0,0,198,2,81,2,198,66,81,2,192,0,0,0,192,0,0,0,198,130,81,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,81,2,192,0,0,0,198,35,82,2,192,0,0,0,192,0,0,0,197,98,115,0,197,162,115,0,192,0,0,0,192,0,0,0,198,131,82,2,198,227,82,2,198,66,83,2,197,227,115,0,192,0,0,0,192,0,0,0,198,131,83,2,192,0,0,0,198,227,83,2,197,66,116,0,198,67,84,2,198,162,84,2,192,0,0,0,198,227,84,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,85,2,192,0,0,0,198,163,85,2,192,0,0,0,192,0,0,0,198,3,86,2,197,130,116,0,192,0,0,0,198,98,86,2,192,0,0,0,192,0,0,0,198,162,86,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,86,2,197,194,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,87,2,192,0,0,0,192,0,0,0,192,0,0,0,198,131,87,2,197,3,117,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,87,2,198,35,88,2,198,131,88,2,192,0,0,0,197,98,117,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,88,2,192,0,0,0,198,34,89,2,192,0,0,0,198,98,89,2,197,162,117,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,89,2,192,0,0,0,198,3,90,2,198,99,90,2,197,226,117,0,198,195,90,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,91,2,192,0,0,0,192,0,0,0,198,99,91,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,91,2,192,0,0,0,198,35,92,2,192,0,0,0,192,0,0,0,198,131,92,2,192,0,0,0,198,226,92,2,192,0,0,0,198,34,93,2,198,98,93,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,93,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,93,2,192,0,0,0,198,67,94,2,198,162,94,2,192,0,0,0,192,0,0,0,197,35,118,0,192,0,0,0,198,227,94,2,198,67,95,2,198,163,95,2,197,131,118,0,192,0,0,0,198,2,96,2,198,67,96,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,96,2,192,0,0,0,192,0,0,0,192,0,0,0,197,226,118,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,97,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,97,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,97,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,119,0,192,0,0,0,198,34,98,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,98,2,192,0,0,0,198,194,98,2,192,0,0,0,192,0,0,0,192,0,0,0,198,2,99,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,99,2,198,130,99,2,198,195,99,2,198,35,100,2,192,0,0,0,197,98,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,119,0,192,0,0,0,192,0,0,0,198,130,100,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,100,2,198,35,101,2,198,131,101,2,198,226,101,2,192,0,0,0,198,34,102,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,102,2,198,195,102,2,192,0,0,0,192,0,0,0,197,226,119,0,198,35,103,2,198,130,103,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,103,2,198,35,104,2,192,0,0,0,192,0,0,0,192,0,0,0,198,130,104,2,192,0,0,0,198,194,104,2,192,0,0,0,197,34,120,0,198,3,105,2,192,0,0,0,198,99,105,2,192,0,0,0,198,195,105,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,106,2,198,131,106,2,192,0,0,0,198,226,106,2,198,35,107,2,192,0,0,0,198,131,107,2,192,0,0,0,192,0,0,0,198,226,107,2,198,35,108,2,192,0,0,0,197,99,120,0,192,0,0,0,198,131,108,2,198,227,108,2,192,0,0,0,192,0,0,0,198,66,109,2,198,131,109,2,192,0,0,0,198,227,109,2,192,0,0,0,198,67,110,2,192,0,0,0,198,163,110,2,197,194,120,0,192,0,0,0,198,3,111,2,198,99,111,2,192,0,0,0,198,194,111,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,121,0,198,2,112,2,198,67,112,2,198,162,112,2,192,0,0,0,198,227,112,2,198,67,113,2,198,162,113,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,121,0,197,130,121,0,192,0,0,0,198,227,113,2,192,0,0,0,198,67,114,2,198,163,114,2,192,0,0,0,197,195,121,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,122,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,115,2,192,0,0,0,198,67,115,2,192,0,0,0,198,162,115,2,192,0,0,0,197,98,122,0,192,0,0,0,192,0,0,0,198,227,115,2,192,0,0,0,192,0,0,0,198,67,116,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,116,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,117,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,117,2,198,195,117,2,192,0,0,0,192,0,0,0,192,0,0,0,198,35,118,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,118,2,198,227,118,2,198,67,119,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,119,2,197,163,122,0,198,227,119,2,192,0,0,0,192,0,0,0,198,66,120,2,192,0,0,0,192,0,0,0,198,130,120,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,120,2,198,2,121,2,197,2,123,0,198,66,121,2,192,0,0,0,198,131,121,2,192,0,0,0,198,227,121,2,198,67,122,2,198,163,122,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,123,2,192,0,0,0,192,0,0,0,197,66,123,0,198,66,123,2,192,0,0,0,192,0,0,0,192,0,0,0,198,130,123,2,198,194,123,2,198,3,124,2,192,0,0,0,198,98,124,2,192,0,0,0,192,0,0,0,198,162,124,2,198,227,124,2,198,66,125,2,197,130,123,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,123,0,198,131,125,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,125,2,198,67,126,2,192,0,0,0,192,0,0,0,198,163,126,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,127,2,198,99,127,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,127,2,192,0,0,0,198,3,128,2,198,99,128,2,192,0,0,0,198,194,128,2,198,2,129,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,129,2,192,0,0,0,192,0,0,0,198,162,129,2,198,227,129,2,197,2,124,0,192,0,0,0,197,66,124,0,192,0,0,0,198,67,130,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,130,2,192,0,0,0,192,0,0,0,192,0,0,0,198,2,131,2,198,67,131,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,131,2,192,0,0,0,198,226,131,2,192,0,0,0,198,35,132,2,198,130,132,2,198,194,132,2,192,0,0,0,198,3,133,2,192,0,0,0,198,99,133,2,192,0,0,0,192,0,0,0,198,195,133,2,198,35,134,2,192,0,0,0,198,130,134,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,134,2,198,35,135,2,192,0,0,0,192,0,0,0,198,130,135,2,198,195,135,2,198,35,136,2,198,131,136,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,136,2,192,0,0,0,198,67,137,2,192,0,0,0,192,0,0,0,198,162,137,2,198,226,137,2,192,0,0,0,198,34,138,2,192,0,0,0,198,99,138,2,198,194,138,2,198,3,139,2,198,98,139,2,197,130,124,0,197,194,124,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,139,2,198,3,140,2,198,99,140,2,192,0,0,0,192,0,0,0,198,195,140,2,192,0,0,0,192,0,0,0,198,34,141,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,141,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,141,2,192,0,0,0,192,0,0,0,198,226,141,2,192,0,0,0,198,35,142,2,198,131,142,2,192,0,0,0,198,226,142,2,198,34,143,2,192,0,0,0,192,0,0,0,198,99,143,2,198,195,143,2,192,0,0,0,192,0,0,0,192,0,0,0,198,35,144,2,198,130,144,2,192,0,0,0,198,194,144,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,145,2,198,99,145,2,198,195,145,2,198,35,146,2,192,0,0,0,198,130,146,2,198,195,146,2,192,0,0,0,192,0,0,0,198,35,147,2,192,0,0,0,192,0,0,0,198,131,147,2,198,227,147,2,192,0,0,0,198,67,148,2,197,2,125,0,192,0,0,0,198,163,148,2,192,0,0,0,198,3,149,2,198,99,149,2,198,195,149,2,198,35,150,2,192,0,0,0,198,131,150,2,198,227,150,2,197,67,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,151,2,192,0,0,0,192,0,0,0,198,131,151,2,198,227,151,2,198,67,152,2,198,163,152,2,192,0,0,0,192,0,0,0,198,3,153,2,198,99,153,2,192,0,0,0,198,194,153,2,198,3,154,2,192,0,0,0,192,0,0,0,198,98,154,2,192,0,0,0,198,162,154,2,192,0,0,0,198,226,154,2,197,162,125,0,198,35,155,2,192,0,0,0,192,0,0,0,198,130,155,2,198,195,155,2,198,35,156,2,198,131,156,2,192,0,0,0,192,0,0,0,198,227,156,2,198,67,157,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,157,2,198,226,157,2,197,227,125,0,197,67,126,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,158,2,198,99,158,2,192,0,0,0,198,195,158,2,198,35,159,2,192,0,0,0,198,131,159,2,198,227,159,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,160,2,192,0,0,0,198,163,160,2,192,0,0,0,198,2,161,2,197,162,126,0,198,67,161,2,192,0,0,0,198,162,161,2,198,227,161,2,192,0,0,0,198,66,162,2,197,227,126,0,197,66,127,0,197,130,127,0,198,131,162,2,198,227,162,2,192,0,0,0,198,67,163,2,198,162,163,2,192,0,0,0,198,226,163,2,198,35,164,2,198,131,164,2,192,0,0,0,192,0,0,0,198,227,164,2,198,67,165,2,192,0,0,0,198,163,165,2,198,2,166,2,198,67,166,2,192,0,0,0,198,162,166,2,198,227,166,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,127,0,192,0,0,0,192,0,0,0,198,66,167,2,197,35,128,0,197,130,128,0,192,0,0,0,198,131,167,2,198,226,167,2,192,0,0,0,198,35,168,2,192,0,0,0,197,194,128,0,198,130,168,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,168,2,198,35,169,2,198,131,169,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,169,2,198,66,170,2,192,0,0,0,198,130,170,2,192,0,0,0,198,195,170,2,198,34,171,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,171,2,198,195,171,2,192,0,0,0,198,34,172,2,192,0,0,0,192,0,0,0,198,99,172,2,198,195,172,2,197,2,129,0,197,67,129,0,198,35,173,2,192,0,0,0,192,0,0,0,198,130,173,2,198,195,173,2,192,0,0,0,198,35,174,2,192,0,0,0,192,0,0,0,198,131,174,2,197,162,129,0,198,226,174,2,198,34,175,2,192,0,0,0,192,0,0,0,198,99,175,2,198,195,175,2,198,35,176,2,198,131,176,2,192,0,0,0,197,226,129,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,176,2,192,0,0,0,192,0,0,0,198,34,177,2,192,0,0,0,192,0,0,0,198,98,177,2,198,163,177,2,197,35,130,0,198,2,178,2,197,131,130,0,192,0,0,0,192,0,0,0,198,67,178,2,192,0,0,0,192,0,0,0,198,163,178,2,192,0,0,0,192,0,0,0,197,226,130,0,192,0,0,0,198,3,179,2,198,99,179,2,198,194,179,2,192,0,0,0,197,34,131,0,192,0,0,0,198,3,180,2,198,99,180,2,198,195,180,2,192,0,0,0,198,35,181,2,197,98,131,0,198,131,181,2,192,0,0,0,192,0,0,0,198,227,181,2,198,66,182,2,198,130,182,2,198,194,182,2,192,0,0,0,198,3,183,2,192,0,0,0,198,99,183,2,197,162,131,0,197,226,131,0,192,0,0,0,192,0,0,0,197,34,132,0,192,0,0,0,198,195,183,2,192,0,0,0,192,0,0,0,198,35,184,2,197,98,132,0,192,0,0,0,198,131,184,2,198,227,184,2,198,67,185,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,185,2,198,3,186,2,192,0,0,0,198,99,186,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,186,2,192,0,0,0,198,34,187,2,198,98,187,2,198,162,187,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,187,2,192,0,0,0,192,0,0,0,198,67,188,2,198,163,188,2,198,3,189,2,192,0,0,0,198,98,189,2,198,163,189,2,198,3,190,2,198,99,190,2,198,195,190,2,192,0,0,0,192,0,0,0,198,34,191,2,192,0,0,0,198,99,191,2,198,195,191,2,192,0,0,0,198,34,192,2,192,0,0,0,192,0,0,0,192,0,0,0,197,162,132,0,192,0,0,0,192,0,0,0,197,226,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,192,2,198,163,192,2,192,0,0,0,192,0,0,0,198,3,193,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,193,2,198,163,193,2,198,2,194,2,198,67,194,2,192,0,0,0,197,34,133,0,192,0,0,0,192,0,0,0,198,163,194,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,195,2,192,0,0,0,198,66,195,2,198,131,195,2,198,227,195,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,196,2,192,0,0,0,198,131,196,2,198,227,196,2,192,0,0,0,198,66,197,2,198,131,197,2,198,227,197,2,198,66,198,2,198,130,198,2,192,0,0,0,197,98,133,0,192,0,0,0,197,162,133,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,198,2,197,226,133,0,192,0,0,0,198,3,199,2,198,99,199,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,199,2,192,0,0,0,198,3,200,2,192,0,0,0,198,99,200,2,198,195,200,2,192,0,0,0,192,0,0,0,198,35,201,2,198,131,201,2,192,0,0,0,192,0,0,0,198,226,201,2,192,0,0,0,197,35,134,0,192,0,0,0,198,35,202,2,197,130,134,0,197,194,134,0,198,130,202,2,192,0,0,0,197,2,135,0,198,194,202,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,203,2,198,67,203,2,192,0,0,0,198,162,203,2,198,226,203,2,192,0,0,0,192,0,0,0,198,34,204,2,198,98,204,2,198,162,204,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,204,2,192,0,0,0,192,0,0,0,198,34,205,2,192,0,0,0,192,0,0,0,198,99,205,2,198,194,205,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,206,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,206,2,198,194,206,2,198,3,207,2,198,99,207,2,198,195,207,2,197,66,135,0,192,0,0,0,192,0,0,0,198,35,208,2,198,130,208,2,197,131,135,0,197,226,135,0,192,0,0,0,192,0,0,0,198,195,208,2,198,35,209,2,198,131,209,2,192,0,0,0,192,0,0,0,197,34,136,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,209,2,192,0,0,0,192,0,0,0,198,35,210,2,192,0,0,0,192,0,0,0,198,130,210,2,198,194,210,2,198,2,211,2,192,0,0,0,198,66,211,2,198,130,211,2,198,195,211,2,198,34,212,2,192,0,0,0,192,0,0,0,198,98,212,2,192,0,0,0,198,162,212,2,192,0,0,0,192,0,0,0,198,227,212,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,136,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,213,2,198,163,213,2,192,0,0,0,192,0,0,0,198,2,214,2,198,67,214,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,214,2,198,3,215,2,192,0,0,0,192,0,0,0,198,98,215,2,198,163,215,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,216,2,192,0,0,0,192,0,0,0,192,0,0,0,198,66,216,2,198,131,216,2,192,0,0,0,198,227,216,2,198,66,217,2,192,0,0,0,198,131,217,2,192,0,0,0,192,0,0,0,192,0,0,0,197,163,136,0,198,227,217,2,192,0,0,0,198,67,218,2,198,163,218,2,198,2,219,2,192,0,0,0,192,0,0,0,198,67,219,2,198,163,219,2,198,2,220,2,198,66,220,2,198,131,220,2,192,0,0,0,198,227,220,2,192,0,0,0,198,67,221,2,198,163,221,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,222,2,192,0,0,0,198,99,222,2,198,195,222,2,192,0,0,0,197,3,137,0,198,35,223,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,223,2,192,0,0,0,198,227,223,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,224,2,192,0,0,0,198,131,224,2,198,227,224,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,225,2,198,163,225,2,192,0,0,0,198,3,226,2,192,0,0,0,198,99,226,2,192,0,0,0,198,194,226,2,198,3,227,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,227,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,227,2,197,98,137,0,192,0,0,0,192,0,0,0,198,3,228,2,192,0,0,0,192,0,0,0,192,0,0,0,198,98,228,2,192,0,0,0,198,162,228,2,192,0,0,0,197,162,137,0,197,226,137,0,198,227,228,2,198,66,229,2,198,131,229,2,192,0,0,0,192,0,0,0,192,0,0,0,198,226,229,2,198,34,230,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,230,2,192,0,0,0,197,34,138,0,198,162,230,2,198,227,230,2,192,0,0,0,198,66,231,2,192,0,0,0,198,131,231,2,198,226,231,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,232,2,198,99,232,2,192,0,0,0,192,0,0,0,192,0,0,0,198,195,232,2,198,34,233,2,198,98,233,2,198,162,233,2,198,227,233,2,192,0,0,0,192,0,0,0,198,66,234,2,192,0,0,0,198,131,234,2,192,0,0,0,192,0,0,0,198,227,234,2,198,67,235,2,198,162,235,2,198,227,235,2,192,0,0,0,198,67,236,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,236,2,198,3,237,2,192,0,0,0,192,0,0,0,197,98,138,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,237,2,198,194,237,2,192,0,0,0,192,0,0,0,192,0,0,0,198,3,238,2,192,0,0,0,198,99,238,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,238,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,239,2,198,67,239,2,198,163,239,2,198,3,240,2,192,0,0,0,192,0,0,0,192,0,0,0,198,99,240,2,198,195,240,2,192,0,0,0,192,0,0,0,198,35,241,2,197,162,138,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,241,2,192,0,0,0,198,227,241,2,197,226,138,0,192,0,0,0,192,0,0,0,198,66,242,2,198,130,242,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,242,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,243,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,139,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,243,2,192,0,0,0,198,227,243,2,192,0,0,0,192,0,0,0,197,99,139,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,244,2,192,0,0,0,198,163,244,2,192,0,0,0,192,0,0,0,198,2,245,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,245,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,245,2,192,0,0,0,192,0,0,0,192,0,0,0,198,227,245,2,198,67,246,2,198,162,246,2,192,0,0,0,198,227,246,2,192,0,0,0,198,66,247,2,198,130,247,2,192,0,0,0,192,0,0,0,198,195,247,2,198,35,248,2,192,0,0,0,198,131,248,2,197,194,139,0,197,2,140,0,198,226,248,2,192,0,0,0,198,35,249,2,192,0,0,0,192,0,0,0,198,131,249,2,192,0,0,0,198,227,249,2,198,67,250,2,198,163,250,2,198,3,251,2,197,66,140,0,198,99,251,2,192,0,0,0,192,0,0,0,192,0,0,0,198,194,251,2,192,0,0,0,198,3,252,2,192,0,0,0,197,130,140,0,197,194,140,0,198,99,252,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,252,2,192,0,0,0,192,0,0,0,198,2,253,2,192,0,0,0,192,0,0,0,198,67,253,2,198,163,253,2,192,0,0,0,192,0,0,0,198,2,254,2,192,0,0,0,192,0,0,0,198,67,254,2,198,163,254,2,192,0,0,0,192,0,0,0,198,2,255,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,255,2,197,3,141,0,198,163,255,2,198,2,0,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,0,3,198,131,0,3,192,0,0,0,198,226,0,3,197,98,141,0,192,0,0,0,192,0,0,0,198,34,1,3,192,0,0,0,192,0,0,0,198,98,1,3,192,0,0,0,192,0,0,0,192,0,0,0,197,163,141,0,197,3,142,0,192,0,0,0,198,163,1,3,192,0,0,0,198,2,2,3,198,66,2,3,192,0,0,0,198,131,2,3,192,0,0,0,192,0,0,0,192,0,0,0,198,227,2,3,192,0,0,0,192,0,0,0,198,67,3,3,198,162,3,3,197,98,142,0,198,227,3,3,198,66,4,3,192,0,0,0,198,130,4,3,192,0,0,0,192,0,0,0,198,195,4,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,142,0,198,35,5,3,198,131,5,3,198,227,5,3,198,66,6,3,198,130,6,3,192,0,0,0,192,0,0,0,198,195,6,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,7,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,7,3,192,0,0,0,198,194,7,3,192,0,0,0,198,2,8,3,192,0,0,0,198,67,8,3,198,163,8,3,192,0,0,0,198,3,9,3,192,0,0,0,192,0,0,0,198,99,9,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,9,3,198,35,10,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,10,3,198,227,10,3,198,66,11,3,198,130,11,3,192,0,0,0,192,0,0,0,197,226,142,0,192,0,0,0,197,34,143,0,192,0,0,0,198,194,11,3,192,0,0,0,192,0,0,0,197,98,143,0,198,3,12,3,192,0,0,0,198,98,12,3,192,0,0,0,198,163,12,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,13,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,13,3,192,0,0,0,192,0,0,0,198,163,13,3,198,2,14,3,197,162,143,0,197,226,143,0,192,0,0,0,198,67,14,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,14,3,198,3,15,3,192,0,0,0,192,0,0,0,197,34,144,0,198,98,15,3,192,0,0,0,198,162,15,3,198,226,15,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,16,3,192,0,0,0,198,131,16,3,198,227,16,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,17,3,198,163,17,3,198,3,18,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,18,3,192,0,0,0,198,163,18,3,198,2,19,3,192,0,0,0,192,0,0,0,192,0,0,0,198,67,19,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,144,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,19,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,20,3,198,99,20,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,20,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,21,3,192,0,0,0,192,0,0,0,192,0,0,0,198,131,21,3,198,227,21,3,192,0,0,0,198,67,22,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,22,3,192,0,0,0,192,0,0,0,198,3,23,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,144,0,198,99,23,3,192,0,0,0,198,194,23,3,198,3,24,3,192,0,0,0,198,99,24,3,198,195,24,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,25,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,25,3,192,0,0,0,192,0,0,0,198,195,25,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,145,0,198,35,26,3,192,0,0,0,192,0,0,0,198,131,26,3,192,0,0,0,192,0,0,0,198,226,26,3,197,98,145,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,27,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,145,0,198,99,27,3,198,194,27,3,198,3,28,3,198,99,28,3,198,195,28,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,29,3,192,0,0,0,198,131,29,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,29,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,30,3,198,163,30,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,31,3,198,99,31,3,198,195,31,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,32,3,192,0,0,0,198,131,32,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,32,3,198,67,33,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,33,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,34,3,192,0,0,0,197,227,145,0,198,98,34,3,192,0,0,0,197,67,146,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,146,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,146,0,198,2,35,3,197,34,147,0,198,66,35,3,197,99,147,0,192,0,0,0,197,195,147,0,198,131,35,3,198,227,35,3,192,0,0,0,192,0,0,0,192,0,0,0,198,67,36,3,192,0,0,0,192,0,0,0,197,35,148,0,197,131,148,0,192,0,0,0,198,163,36,3,192,0,0,0,192,0,0,0,198,2,37,3,192,0,0,0,198,67,37,3,192,0,0,0,198,162,37,3,192,0,0,0,192,0,0,0,192,0,0,0,197,226,148,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,149,0,198,227,37,3,198,67,38,3,192,0,0,0,192,0,0,0,192,0,0,0,197,130,149,0,198,163,38,3,197,195,149,0,198,2,39,3,198,67,39,3,198,162,39,3,198,226,39,3,198,34,40,3,198,98,40,3,192,0,0,0,192,0,0,0,197,34,150,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,40,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,40,3,198,66,41,3,192,0,0,0,192,0,0,0,198,130,41,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,41,3,198,34,42,3,192,0,0,0,198,98,42,3,198,163,42,3,198,3,43,3,192,0,0,0,197,98,150,0,192,0,0,0,192,0,0,0,198,99,43,3,198,194,43,3,192,0,0,0,192,0,0,0,197,162,150,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,44,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,44,3,192,0,0,0,198,195,44,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,45,3,192,0,0,0,192,0,0,0,192,0,0,0,197,226,150,0,192,0,0,0,198,131,45,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,45,3,192,0,0,0,198,67,46,3,198,163,46,3,198,3,47,3,192,0,0,0,192,0,0,0,198,99,47,3,198,194,47,3,192,0,0,0,198,3,48,3,192,0,0,0,198,99,48,3,192,0,0,0,192,0,0,0,198,195,48,3,192,0,0,0,198,35,49,3,197,34,151,0,192,0,0,0,198,131,49,3,192,0,0,0,197,98,151,0,192,0,0,0,192,0,0,0,198,227,49,3,197,162,151,0,198,66,50,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,50,3,192,0,0,0,198,194,50,3,192,0,0,0,198,2,51,3,192,0,0,0,192,0,0,0,198,67,51,3,198,163,51,3,198,2,52,3,192,0,0,0,198,66,52,3,198,130,52,3,198,194,52,3,192,0,0,0,198,3,53,3,198,98,53,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,151,0,198,162,53,3,192,0,0,0,192,0,0,0,198,227,53,3,192,0,0,0,192,0,0,0,192,0,0,0,197,34,152,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,54,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,54,3,192,0,0,0,192,0,0,0,198,3,55,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,55,3,197,98,152,0,198,163,55,3,192,0,0,0,198,3,56,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,56,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,56,3,198,3,57,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,57,3,198,194,57,3,192,0,0,0,192,0,0,0,198,3,58,3,198,99,58,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,58,3,197,162,152,0,198,35,59,3,198,131,59,3,198,226,59,3,198,35,60,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,60,3,192,0,0,0,192,0,0,0,198,227,60,3,198,66,61,3,198,131,61,3,192,0,0,0,198,227,61,3,192,0,0,0,197,227,152,0,198,67,62,3,192,0,0,0,198,163,62,3,192,0,0,0,198,2,63,3,198,66,63,3,198,131,63,3,198,226,63,3,197,66,153,0,197,131,153,0,198,35,64,3,198,130,64,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,64,3,192,0,0,0,198,35,65,3,192,0,0,0,192,0,0,0,197,226,153,0,192,0,0,0,192,0,0,0,197,34,154,0,192,0,0,0,198,131,65,3,192,0,0,0,198,227,65,3,192,0,0,0,198,67,66,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,66,3,192,0,0,0,192,0,0,0,198,2,67,3,198,67,67,3,192,0,0,0,192,0,0,0,198,163,67,3,198,2,68,3,198,67,68,3,198,163,68,3,198,3,69,3,198,99,69,3,198,195,69,3,197,99,154,0,197,195,154,0,192,0,0,0,192,0,0,0,198,35,70,3,197,34,155,0,192,0,0,0,192,0,0,0,198,131,70,3,192,0,0,0,198,227,70,3,198,67,71,3,198,163,71,3,198,3,72,3,198,99,72,3,192,0,0,0,198,194,72,3,198,2,73,3,198,66,73,3,197,98,155,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,73,3,198,226,73,3,192,0,0,0,197,162,155,0,192,0,0,0,198,35,74,3,198,130,74,3,192,0,0,0,197,226,155,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,74,3,197,34,156,0,192,0,0,0,197,98,156,0,198,2,75,3,198,66,75,3,198,131,75,3,198,227,75,3,192,0,0,0,197,163,156,0,198,67,76,3,192,0,0,0,198,163,76,3,198,2,77,3,198,67,77,3,192,0,0,0,192,0,0,0,198,163,77,3,198,3,78,3,192,0,0,0,197,3,157,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,78,3,198,194,78,3,192,0,0,0,197,99,157,0,198,3,79,3,198,99,79,3,192,0,0,0,198,194,79,3,192,0,0,0,198,3,80,3,198,98,80,3,198,163,80,3,198,2,81,3,198,66,81,3,192,0,0,0,192,0,0,0,198,131,81,3,198,226,81,3,197,194,157,0,198,35,82,3,192,0,0,0,198,130,82,3,192,0,0,0,192,0,0,0,198,194,82,3,192,0,0,0,192,0,0,0,198,3,83,3,192,0,0,0,192,0,0,0,198,99,83,3,198,195,83,3,197,2,158,0,198,35,84,3,192,0,0,0,198,131,84,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,158,0,192,0,0,0,192,0,0,0,198,227,84,3,192,0,0,0,192,0,0,0,198,67,85,3,198,163,85,3,198,3,86,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,86,3,198,162,86,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,86,3,192,0,0,0,198,34,87,3,192,0,0,0,198,99,87,3,192,0,0,0,192,0,0,0,198,195,87,3,198,34,88,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,88,3,192,0,0,0,197,130,158,0,192,0,0,0,198,195,88,3,197,195,158,0,197,35,159,0,198,35,89,3,192,0,0,0,198,130,89,3,192,0,0,0,192,0,0,0,192,0,0,0,198,194,89,3,192,0,0,0,192,0,0,0,198,3,90,3,197,131,159,0,192,0,0,0,198,99,90,3,198,195,90,3,198,35,91,3,197,227,159,0,197,66,160,0,197,131,160,0,197,226,160,0,192,0,0,0,192,0,0,0,198,130,91,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,91,3,198,35,92,3,192,0,0,0,198,131,92,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,92,3,192,0,0,0,198,67,93,3,198,163,93,3,198,3,94,3,198,98,94,3,198,163,94,3,192,0,0,0,197,34,161,0,198,3,95,3,192,0,0,0,198,98,95,3,192,0,0,0,198,162,95,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,95,3,192,0,0,0,192,0,0,0,197,98,161,0,197,163,161,0,197,3,162,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,162,0,192,0,0,0,192,0,0,0,198,66,96,3,192,0,0,0,192,0,0,0,198,131,96,3,192,0,0,0,198,227,96,3,198,66,97,3,198,131,97,3,192,0,0,0,192,0,0,0,198,227,97,3,197,162,162,0,198,67,98,3,192,0,0,0,192,0,0,0,198,163,98,3,192,0,0,0,198,3,99,3,198,99,99,3,197,226,162,0,198,194,99,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,100,3,198,67,100,3,192,0,0,0,192,0,0,0,192,0,0,0,198,162,100,3,192,0,0,0,192,0,0,0,198,227,100,3,192,0,0,0,198,67,101,3,197,35,163,0,192,0,0,0,198,163,101,3,197,130,163,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,102,3,192,0,0,0,192,0,0,0,198,99,102,3,198,195,102,3,192,0,0,0,192,0,0,0,198,35,103,3,197,194,163,0,198,131,103,3,197,2,164,0,198,226,103,3,198,35,104,3,192,0,0,0,192,0,0,0,198,131,104,3,192,0,0,0,192,0,0,0,192,0,0,0,197,66,164,0,192,0,0,0,198,227,104,3,197,130,164,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,105,3,192,0,0,0,198,130,105,3,198,195,105,3,198,34,106,3,192,0,0,0,192,0,0,0,198,98,106,3,198,163,106,3,192,0,0,0,198,2,107,3,198,67,107,3,198,163,107,3,192,0,0,0,198,2,108,3,198,67,108,3,198,163,108,3,192,0,0,0,198,3,109,3,192,0,0,0,198,99,109,3,198,195,109,3,198,34,110,3,192,0,0,0,197,194,164,0,192,0,0,0,192,0,0,0,198,99,110,3,192,0,0,0,198,195,110,3,192,0,0,0,198,35,111,3,198,130,111,3,198,195,111,3,198,35,112,3,198,131,112,3,198,227,112,3,198,67,113,3,198,162,113,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,113,3,192,0,0,0,197,3,165,0,197,98,165,0,198,67,114,3,192,0,0,0,197,162,165,0,192,0,0,0,198,163,114,3,198,2,115,3,198,66,115,3,192,0,0,0,198,130,115,3,198,195,115,3,198,35,116,3,197,226,165,0,192,0,0,0,197,34,166,0,192,0,0,0,192,0,0,0,198,131,116,3,198,227,116,3,197,98,166,0,192,0,0,0,198,67,117,3,192,0,0,0,192,0,0,0,198,163,117,3,192,0,0,0,198,3,118,3,192,0,0,0,198,99,118,3,198,195,118,3,197,162,166,0,192,0,0,0,198,34,119,3,192,0,0,0,198,98,119,3,198,162,119,3,198,227,119,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,120,3,198,130,120,3,198,195,120,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,121,3,192,0,0,0,192,0,0,0,198,99,121,3,198,195,121,3,192,0,0,0,192,0,0,0,198,34,122,3,192,0,0,0,198,99,122,3,198,195,122,3,192,0,0,0,197,226,166,0,192,0,0,0,198,35,123,3,192,0,0,0,192,0,0,0,198,131,123,3,198,227,123,3,192,0,0,0,198,67,124,3,197,35,167,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,124,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,125,3,192,0,0,0,192,0,0,0,192,0,0,0,197,130,167,0,192,0,0,0,192,0,0,0,198,99,125,3,198,195,125,3,192,0,0,0,192,0,0,0,198,35,126,3,198,131,126,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,126,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,127,3,198,131,127,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,127,3,198,67,128,3,192,0,0,0,197,195,167,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,128,3,198,226,128,3,192,0,0,0,198,35,129,3,192,0,0,0,192,0,0,0,198,131,129,3,192,0,0,0,192,0,0,0,198,226,129,3,192,0,0,0,198,35,130,3,192,0,0,0,192,0,0,0,198,130,130,3,198,195,130,3,192,0,0,0,192,0,0,0,192,0,0,0,198,34,131,3,192,0,0,0,198,99,131,3,198,194,131,3,192,0,0,0,192,0,0,0,198,3,132,3,198,99,132,3,198,195,132,3,192,0,0,0,192,0,0,0,198,35,133,3,192,0,0,0,192,0,0,0,198,131,133,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,133,3,198,67,134,3,198,163,134,3,198,3,135,3,192,0,0,0,192,0,0,0,197,34,168,0,197,99,168,0,192,0,0,0,198,98,135,3,198,163,135,3,192,0,0,0,198,3,136,3,192,0,0,0,192,0,0,0,197,195,168,0,192,0,0,0,198,98,136,3,198,162,136,3,198,227,136,3,192,0,0,0,192,0,0,0,192,0,0,0,197,34,169,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,169,0,197,163,169,0,192,0,0,0,197,2,170,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,137,3,198,163,137,3,192,0,0,0,198,2,138,3,197,66,170,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,138,3,198,163,138,3,192,0,0,0,198,2,139,3,197,130,170,0,192,0,0,0,198,66,139,3,192,0,0,0,198,131,139,3,192,0,0,0,192,0,0,0,198,227,139,3,192,0,0,0,192,0,0,0,198,67,140,3,192,0,0,0,192,0,0,0,198,162,140,3,192,0,0,0,198,226,140,3,192,0,0,0,198,34,141,3,198,99,141,3,198,194,141,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,142,3,198,98,142,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,142,3,192,0,0,0,198,3,143,3,198,99,143,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,170,0,198,195,143,3,198,34,144,3,198,99,144,3,192,0,0,0,192,0,0,0,198,195,144,3,198,34,145,3,198,99,145,3,198,195,145,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,146,3,192,0,0,0,192,0,0,0,192,0,0,0,197,2,171,0,192,0,0,0,198,131,146,3,198,227,146,3,192,0,0,0,198,67,147,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,147,3,192,0,0,0,198,3,148,3,192,0,0,0,192,0,0,0,198,99,148,3,192,0,0,0,192,0,0,0,198,195,148,3,198,35,149,3,198,130,149,3,198,195,149,3,198,35,150,3,198,131,150,3,197,67,171,0,198,226,150,3,198,35,151,3,192,0,0,0,198,131,151,3,197,163,171,0,192,0,0,0,198,227,151,3,192,0,0,0,198,66,152,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,152,3,198,226,152,3,198,35,153,3,197,2,172,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,172,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,153,3,192,0,0,0,198,227,153,3,192,0,0,0,198,67,154,3,198,162,154,3,198,227,154,3,192,0,0,0,192,0,0,0,198,67,155,3,198,163,155,3,192,0,0,0,198,3,156,3,192,0,0,0,198,98,156,3,192,0,0,0,198,163,156,3,198,3,157,3,192,0,0,0,197,131,172,0,198,98,157,3,198,162,157,3,198,227,157,3,192,0,0,0,198,67,158,3,192,0,0,0,198,163,158,3,192,0,0,0,197,226,172,0,192,0,0,0,192,0,0,0,198,3,159,3,198,99,159,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,159,3,192,0,0,0,198,34,160,3,192,0,0,0,198,99,160,3,197,35,173,0,192,0,0,0,192,0,0,0,198,194,160,3,198,2,161,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,173,0,198,67,161,3,192,0,0,0,198,163,161,3,192,0,0,0,198,2,162,3,192,0,0,0,192,0,0,0,198,67,162,3,192,0,0,0,192,0,0,0,198,163,162,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,163,3,192,0,0,0,198,99,163,3,198,195,163,3,198,35,164,3,198,131,164,3,192,0,0,0,192,0,0,0,198,227,164,3,198,67,165,3,192,0,0,0,198,162,165,3,197,194,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,165,3,192,0,0,0,192,0,0,0,198,67,166,3,192,0,0,0,198,163,166,3,198,3,167,3,192,0,0,0,192,0,0,0,198,98,167,3,197,2,174,0,197,66,174,0,197,130,174,0,192,0,0,0,192,0,0,0,198,162,167,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,174,0,192,0,0,0,198,227,167,3,198,67,168,3,192,0,0,0,198,163,168,3,198,3,169,3,192,0,0,0,198,99,169,3,192,0,0,0,198,195,169,3,198,35,170,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,170,3,192,0,0,0,192,0,0,0,192,0,0,0,197,2,175,0,192,0,0,0,192,0,0,0,198,227,170,3,192,0,0,0,192,0,0,0,192,0,0,0,198,67,171,3,198,163,171,3,198,3,172,3,192,0,0,0,198,98,172,3,192,0,0,0,198,163,172,3,192,0,0,0,192,0,0,0,192,0,0,0,198,2,173,3,192,0,0,0,197,67,175,0,198,67,173,3,198,163,173,3,192,0,0,0,198,3,174,3,192,0,0,0,192,0,0,0,198,98,174,3,192,0,0,0,198,163,174,3,198,3,175,3,198,99,175,3,198,195,175,3,198,35,176,3,198,130,176,3,192,0,0,0,192,0,0,0,192,0,0,0,197,162,175,0,192,0,0,0,192,0,0,0,197,226,175,0,198,195,176,3,198,34,177,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,177,3,198,194,177,3,192,0,0,0,198,3,178,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,178,3,198,195,178,3,192,0,0,0,192,0,0,0,192,0,0,0,198,35,179,3,192,0,0,0,198,131,179,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,179,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,180,3,192,0,0,0,198,163,180,3,192,0,0,0,198,3,181,3,197,34,176,0,192,0,0,0,198,99,181,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,181,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,176,0,197,162,176,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,182,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,182,3,192,0,0,0,197,226,176,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,182,3,197,34,177,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,183,3,192,0,0,0,192,0,0,0,192,0,0,0,198,131,183,3,198,226,183,3,198,34,184,3,192,0,0,0,192,0,0,0,198,98,184,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,184,3,198,3,185,3,192,0,0,0,192,0,0,0,192,0,0,0,197,98,177,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,185,3,192,0,0,0,192,0,0,0,192,0,0,0,198,194,185,3,192,0,0,0,192,0,0,0,198,3,186,3,192,0,0,0,192,0,0,0,197,163,177,0,198,98,186,3,198,163,186,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,187,3,192,0,0,0,192,0,0,0,198,98,187,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,187,3,198,2,188,3,198,67,188,3,198,162,188,3,198,227,188,3,198,66,189,3,192,0,0,0,192,0,0,0,198,131,189,3,192,0,0,0,192,0,0,0,192,0,0,0,198,226,189,3,198,35,190,3,198,131,190,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,190,3,192,0,0,0,198,67,191,3,197,2,178,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,191,3,192,0,0,0,192,0,0,0,192,0,0,0,198,226,191,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,178,0,198,35,192,3,192,0,0,0,192,0,0,0,197,163,178,0,198,131,192,3,192,0,0,0,198,227,192,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,193,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,193,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,194,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,179,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,194,3,192,0,0,0,192,0,0,0,198,195,194,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,195,3,198,99,195,3,192,0,0,0,198,195,195,3,192,0,0,0,198,35,196,3,192,0,0,0,198,130,196,3,198,194,196,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,197,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,197,3,197,99,179,0,198,163,197,3,198,3,198,3,197,195,179,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,198,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,180,0,197,98,180,0,192,0,0,0,198,195,198,3,197,163,180,0,192,0,0,0,197,3,181,0,192,0,0,0,198,35,199,3,192,0,0,0,198,131,199,3,192,0,0,0,197,98,181,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,199,3,198,67,200,3,192,0,0,0,198,163,200,3,192,0,0,0,192,0,0,0,198,3,201,3,192,0,0,0,198,99,201,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,201,3,192,0,0,0,198,34,202,3,197,163,181,0,197,2,182,0,198,98,202,3,198,162,202,3,198,227,202,3,192,0,0,0,192,0,0,0,198,67,203,3,192,0,0,0,198,162,203,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,203,3,192,0,0,0,192,0,0,0,198,67,204,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,204,3,198,3,205,3,192,0,0,0,197,66,182,0,192,0,0,0,198,99,205,3,198,195,205,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,182,0,192,0,0,0,192,0,0,0,198,35,206,3,192,0,0,0,198,131,206,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,182,0,192,0,0,0,197,34,183,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,206,3,198,67,207,3,192,0,0,0,198,163,207,3,192,0,0,0,198,3,208,3,192,0,0,0,192,0,0,0,192,0,0,0,197,98,183,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,208,3,192,0,0,0,192,0,0,0,198,163,208,3,192,0,0,0,198,3,209,3,198,99,209,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,183,0,197,226,183,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,184,0,192,0,0,0,192,0,0,0,198,195,209,3,192,0,0,0,198,35,210,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,210,3,198,227,210,3,192,0,0,0,198,66,211,3,192,0,0,0,192,0,0,0,198,130,211,3,192,0,0,0,198,195,211,3,192,0,0,0,198,34,212,3,192,0,0,0,198,99,212,3,198,195,212,3,198,35,213,3,192,0,0,0,192,0,0,0,198,131,213,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,213,3,198,67,214,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,214,3,198,227,214,3,198,66,215,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,184,0,198,131,215,3,198,227,215,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,184,0,192,0,0,0,197,227,184,0,198,67,216,3,192,0,0,0,198,162,216,3,198,226,216,3,197,67,185,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,185,0,198,35,217,3,192,0,0,0,192,0,0,0,192,0,0,0,197,3,186,0,198,131,217,3,198,227,217,3,192,0,0,0,192,0,0,0,198,66,218,3,192,0,0,0,192,0,0,0,192,0,0,0,197,98,186,0,192,0,0,0,192,0,0,0,198,131,218,3,192,0,0,0,192,0,0,0,198,227,218,3,198,67,219,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,219,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,220,3,192,0,0,0,192,0,0,0,198,99,220,3,192,0,0,0,198,194,220,3,192,0,0,0,197,162,186,0,198,3,221,3,192,0,0,0,192,0,0,0,198,99,221,3,192,0,0,0,197,226,186,0,192,0,0,0,192,0,0,0,198,195,221,3,198,34,222,3,192,0,0,0,197,34,187,0,198,98,222,3,197,98,187,0,197,162,187,0,192,0,0,0,198,163,222,3,198,2,223,3,192,0,0,0,198,67,223,3,192,0,0,0,198,163,223,3,192,0,0,0,192,0,0,0,192,0,0,0,198,3,224,3,198,99,224,3,198,195,224,3,192,0,0,0,192,0,0,0,198,35,225,3,197,226,187,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,188,0,198,131,225,3,198,227,225,3,192,0,0,0,198,66,226,3,192,0,0,0,198,131,226,3,198,226,226,3,198,35,227,3,198,130,227,3,192,0,0,0,198,195,227,3,192,0,0,0,198,34,228,3,192,0,0,0,198,98,228,3,198,162,228,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,228,3,192,0,0,0,198,67,229,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,229,3,192,0,0,0,192,0,0,0,198,227,229,3,192,0,0,0,197,130,188,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,230,3,197,195,188,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,230,3,192,0,0,0,192,0,0,0,198,226,230,3,198,34,231,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,231,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,231,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,189,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,232,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,232,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,189,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,232,3,192,0,0,0,192,0,0,0,198,67,233,3,192,0,0,0,192,0,0,0,192,0,0,0,198,163,233,3,198,3,234,3,197,163,189,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,234,3,192,0,0,0,198,195,234,3,192,0,0,0,198,35,235,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,235,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,235,3,192,0,0,0,197,2,190,0,192,0,0,0,198,34,236,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,236,3,192,0,0,0,197,66,190,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,236,3,197,131,190,0,192,0,0,0,192,0,0,0,198,227,236,3,192,0,0,0,192,0,0,0,198,67,237,3,198,162,237,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,190,0,192,0,0,0,192,0,0,0,198,227,237,3,198,66,238,3,197,35,191,0,198,131,238,3,198,227,238,3,198,67,239,3,197,130,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,239,3,197,194,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,239,3,192,0,0,0,192,0,0,0,198,35,240,3,197,2,192,0,197,66,192,0,198,131,240,3,192,0,0,0,198,227,240,3,198,66,241,3,198,131,241,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,192,0,192,0,0,0,192,0,0,0,197,194,192,0,192,0,0,0,197,2,193,0,198,227,241,3,198,67,242,3,197,66,193,0,198,162,242,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,242,3,192,0,0,0,192,0,0,0,197,130,193,0,192,0,0,0,197,194,193,0,197,2,194,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,194,0,198,35,243,3,192,0,0,0,192,0,0,0,192,0,0,0,198,130,243,3,198,195,243,3,198,34,244,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,244,3,192,0,0,0,198,194,244,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,245,3,197,162,194,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,245,3,192,0,0,0,192,0,0,0,192,0,0,0,198,194,245,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,246,3,197,226,194,0,197,34,195,0,197,99,195,0,197,194,195,0,192,0,0,0,192,0,0,0,197,3,196,0,198,99,246,3,192,0,0,0,197,99,196,0,192,0,0,0,192,0,0,0,198,195,246,3,192,0,0,0,198,35,247,3,198,130,247,3,192,0,0,0,198,195,247,3,198,35,248,3,198,130,248,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,196,0,192,0,0,0,192,0,0,0,198,195,248,3,192,0,0,0,198,34,249,3,198,99,249,3,198,194,249,3,198,3,250,3,192,0,0,0,198,99,250,3,192,0,0,0,192,0,0,0,198,195,250,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,251,3,198,131,251,3,198,226,251,3,198,34,252,3,198,98,252,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,252,3,198,227,252,3,198,66,253,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,253,3,198,227,253,3,192,0,0,0,198,67,254,3,192,0,0,0,198,162,254,3,192,0,0,0,198,227,254,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,255,3,198,162,255,3,192,0,0,0,192,0,0,0,192,0,0,0,198,227,255,3,192,0,0,0,198,67,0,4,192,0,0,0,197,34,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,0,4,192,0,0,0,198,2,1,4,192,0,0,0,192,0,0,0,192,0,0,0,198,66,1,4,192,0,0,0,198,130,1,4,198,195,1,4,198,35,2,4,192,0,0,0,197,99,197,0,198,131,2,4,192,0,0,0,198,227,2,4,192,0,0,0,192,0,0,0,198,67,3,4,192,0,0,0,192,0,0,0,192,0,0,0,198,163,3,4,192,0,0,0,192,0,0,0,198,3,4,4,192,0,0,0,192,0,0,0,192,0,0,0,197,194,197,0,198,99,4,4,192,0,0,0,198,194,4,4,192,0,0,0,198,3,5,4,198,99,5,4,198,194,5,4,198,2,6,4,198,67,6,4,192,0,0,0,192,0,0,0,198,163,6,4,198,2,7,4,198,67,7,4,192,0,0,0,198,163,7,4,197,2,198,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,8,4,192,0,0,0,198,98,8,4,192,0,0,0,198,163,8,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,9,4,198,99,9,4,192,0,0,0,192,0,0,0,198,195,9,4,192,0,0,0,198,34,10,4,198,99,10,4,198,195,10,4,198,34,11,4,198,98,11,4,192,0,0,0,198,162,11,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,11,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,198,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,12,4,198,163,12,4,198,3,13,4,192,0,0,0,198,99,13,4,197,162,198,0,198,194,13,4,192,0,0,0,198,3,14,4,192,0,0,0,198,98,14,4,198,163,14,4,198,3,15,4,192,0,0,0,198,99,15,4,198,195,15,4,198,35,16,4,198,130,16,4,198,194,16,4,198,3,17,4,198,99,17,4,198,194,17,4,197,226,198,0,192,0,0,0,198,3,18,4,192,0,0,0,198,99,18,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,18,4,198,34,19,4,198,98,19,4,192,0,0,0,198,163,19,4,198,3,20,4,197,34,199,0,198,99,20,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,199,0,192,0,0,0,192,0,0,0,197,162,199,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,199,0,192,0,0,0,198,195,20,4,192,0,0,0,198,34,21,4,197,34,200,0,198,99,21,4,197,98,200,0,197,163,200,0,198,194,21,4,198,3,22,4,198,98,22,4,192,0,0,0,198,163,22,4,197,2,201,0,198,2,23,4,198,67,23,4,192,0,0,0,192,0,0,0,198,163,23,4,198,3,24,4,198,98,24,4,192,0,0,0,192,0,0,0,198,163,24,4,192,0,0,0,198,3,25,4,198,98,25,4,198,163,25,4,198,3,26,4,198,98,26,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,26,4,198,3,27,4,192,0,0,0,197,66,201,0,192,0,0,0,198,98,27,4,198,162,27,4,192,0,0,0,192,0,0,0,198,226,27,4,198,35,28,4,192,0,0,0,198,131,28,4,198,227,28,4,198,67,29,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,29,4,192,0,0,0,192,0,0,0,192,0,0,0,197,131,201,0,198,2,30,4,198,67,30,4,198,163,30,4,192,0,0,0,198,3,31,4,192,0,0,0,198,98,31,4,192,0,0,0,198,163,31,4,192,0,0,0,198,3,32,4,198,99,32,4,192,0,0,0,198,194,32,4,198,3,33,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,201,0,192,0,0,0,198,98,33,4,192,0,0,0,192,0,0,0,197,66,202,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,33,4,192,0,0,0,192,0,0,0,192,0,0,0,198,2,34,4,192,0,0,0,198,67,34,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,35,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,35,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,35,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,36,4,192,0,0,0,198,131,36,4,198,227,36,4,197,130,202,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,202,0,192,0,0,0,197,2,203,0,198,67,37,4,192,0,0,0,192,0,0,0,197,66,203,0,192,0,0,0,192,0,0,0,198,163,37,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,38,4,192,0,0,0,192,0,0,0,192,0,0,0,198,99,38,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,38,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,39,4,192,0,0,0,198,98,39,4,198,163,39,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,40,4,198,67,40,4,198,163,40,4,192,0,0,0,192,0,0,0,198,3,41,4,192,0,0,0,198,99,41,4,192,0,0,0,198,195,41,4,192,0,0,0,192,0,0,0,198,35,42,4,192,0,0,0,198,131,42,4,198,227,42,4,192,0,0,0,192,0,0,0,198,67,43,4,198,163,43,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,44,4,192,0,0,0,198,99,44,4,198,194,44,4,192,0,0,0,198,3,45,4,192,0,0,0,192,0,0,0,198,98,45,4,198,163,45,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,46,4,197,130,203,0,198,99,46,4,198,195,46,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,47,4,198,131,47,4,192,0,0,0,198,227,47,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,48,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,48,4,192,0,0,0,192,0,0,0,198,3,49,4,198,99,49,4,198,194,49,4,192,0,0,0,198,3,50,4,197,194,203,0,192,0,0,0,198,99,50,4,192,0,0,0,198,195,50,4,198,35,51,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,51,4,198,195,51,4,198,35,52,4,198,131,52,4,198,226,52,4,192,0,0,0,192,0,0,0,198,35,53,4,192,0,0,0,197,3,204,0,192,0,0,0,197,98,204,0,198,131,53,4,197,162,204,0,198,227,53,4,192,0,0,0,192,0,0,0,198,67,54,4,197,226,204,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,54,4,198,2,55,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,205,0,198,67,55,4,192,0,0,0,198,162,55,4,192,0,0,0,198,227,55,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,56,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,56,4,198,226,56,4,198,35,57,4,192,0,0,0,197,99,205,0,197,195,205,0,192,0,0,0,192,0,0,0,198,130,57,4,198,194,57,4,192,0,0,0,197,34,206,0,192,0,0,0,192,0,0,0,198,3,58,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,206,0,198,98,58,4,192,0,0,0,192,0,0,0,198,163,58,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,59,4,192,0,0,0,198,66,59,4,192,0,0,0,192,0,0,0,192,0,0,0,197,194,206,0,192,0,0,0,198,131,59,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,59,4,197,2,207,0,198,35,60,4,198,130,60,4,198,194,60,4,192,0,0,0,192,0,0,0,198,3,61,4,198,99,61,4,192,0,0,0,192,0,0,0,198,195,61,4,197,66,207,0,198,35,62,4,192,0,0,0,198,130,62,4,192,0,0,0,198,194,62,4,198,3,63,4,192,0,0,0,198,99,63,4,192,0,0,0,198,195,63,4,192,0,0,0,192,0,0,0,198,35,64,4,192,0,0,0,192,0,0,0,198,130,64,4,197,130,207,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,64,4,197,194,207,0,197,2,208,0,197,67,208,0,192,0,0,0,192,0,0,0,198,34,65,4,198,99,65,4,192,0,0,0,198,195,65,4,192,0,0,0,192,0,0,0,198,34,66,4,192,0,0,0,192,0,0,0,192,0,0,0,198,98,66,4,198,162,66,4,197,162,208,0,192,0,0,0,192,0,0,0,198,226,66,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,67,4,192,0,0,0,198,130,67,4,198,195,67,4,197,226,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,68,4,198,98,68,4,192,0,0,0,198,162,68,4,192,0,0,0,192,0,0,0,197,34,209,0,198,226,68,4,197,98,209,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,69,4,198,130,69,4,198,194,69,4,192,0,0,0,198,3,70,4,192,0,0,0,198,99,70,4,192,0,0,0,192,0,0,0,198,194,70,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,209,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,71,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,71,4,198,163,71,4,198,3,72,4,198,99,72,4,192,0,0,0,198,194,72,4,192,0,0,0,198,2,73,4,197,227,209,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,73,4,198,162,73,4,192,0,0,0,192,0,0,0,198,226,73,4,198,35,74,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,74,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,74,4,198,3,75,4,192,0,0,0,192,0,0,0,198,98,75,4,192,0,0,0,197,66,210,0,198,163,75,4,192,0,0,0,192,0,0,0,198,3,76,4,192,0,0,0,198,99,76,4,192,0,0,0,192,0,0,0,192,0,0,0,197,130,210,0,192,0,0,0,192,0,0,0,198,195,76,4,198,35,77,4,192,0,0,0,197,194,210,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,77,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,211,0,198,227,77,4,192,0,0,0,198,67,78,4,198,163,78,4,192,0,0,0,198,3,79,4,198,99,79,4,198,194,79,4,192,0,0,0,192,0,0,0,198,3,80,4,198,99,80,4,198,195,80,4,198,34,81,4,198,99,81,4,198,195,81,4,198,35,82,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,82,4,192,0,0,0,192,0,0,0,198,195,82,4,198,35,83,4,198,131,83,4,198,227,83,4,192,0,0,0,198,67,84,4,198,162,84,4,192,0,0,0,198,226,84,4,198,35,85,4,192,0,0,0,198,130,85,4,197,67,211,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,85,4,192,0,0,0,192,0,0,0,198,2,86,4,192,0,0,0,198,66,86,4,192,0,0,0,192,0,0,0,197,162,211,0,192,0,0,0,192,0,0,0,198,131,86,4,192,0,0,0,192,0,0,0,192,0,0,0,198,226,86,4,197,226,211,0,197,34,212,0,192,0,0,0,197,98,212,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,212,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,212,0,192,0,0,0,197,66,213,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,87,4,192,0,0,0,198,130,87,4,192,0,0,0,198,195,87,4,192,0,0,0,197,130,213,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,88,4,192,0,0,0,192,0,0,0,198,130,88,4,198,194,88,4,192,0,0,0,192,0,0,0,198,3,89,4,192,0,0,0,198,99,89,4,192,0,0,0,198,195,89,4,192,0,0,0,198,35,90,4,197,195,213,0,198,131,90,4,192,0,0,0,192,0,0,0,192,0,0,0,197,35,214,0,192,0,0,0,197,130,214,0,192,0,0,0,198,226,90,4,192,0,0,0,192,0,0,0,198,34,91,4,192,0,0,0,198,99,91,4,198,194,91,4,192,0,0,0,198,3,92,4,198,99,92,4,192,0,0,0,198,195,92,4,192,0,0,0,198,35,93,4,198,131,93,4,198,227,93,4,192,0,0,0,198,66,94,4,192,0,0,0,192,0,0,0,198,131,94,4,192,0,0,0,198,226,94,4,192,0,0,0,198,35,95,4,192,0,0,0,192,0,0,0,198,130,95,4,198,195,95,4,192,0,0,0,198,35,96,4,192,0,0,0,192,0,0,0,192,0,0,0,198,131,96,4,198,227,96,4,192,0,0,0,197,194,214,0,198,67,97,4,192,0,0,0,198,163,97,4,192,0,0,0,192,0,0,0,198,3,98,4,192,0,0,0,192,0,0,0,198,99,98,4,192,0,0,0,192,0,0,0,198,194,98,4,197,3,215,0,198,2,99,4,198,66,99,4,198,131,99,4,198,227,99,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,100,4,198,162,100,4,192,0,0,0,192,0,0,0,198,227,100,4,192,0,0,0,198,67,101,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,101,4,198,226,101,4,192,0,0,0,198,35,102,4,198,131,102,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,102,4,192,0,0,0,192,0,0,0,198,67,103,4,198,162,103,4,192,0,0,0,198,226,103,4,198,35,104,4,198,131,104,4,192,0,0,0,198,227,104,4,192,0,0,0,198,67,105,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,105,4,197,98,215,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,106,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,106,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,106,4,198,3,107,4,192,0,0,0,192,0,0,0,192,0,0,0,198,98,107,4,198,163,107,4,198,2,108,4,198,66,108,4,198,131,108,4,192,0,0,0,198,226,108,4,198,35,109,4,192,0,0,0,198,130,109,4,192,0,0,0,192,0,0,0,198,195,109,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,110,4,192,0,0,0,198,130,110,4,192,0,0,0,192,0,0,0,192,0,0,0,198,194,110,4,198,2,111,4,197,162,215,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,111,4,192,0,0,0,198,162,111,4,197,227,215,0,192,0,0,0,192,0,0,0,198,227,111,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,112,4,192,0,0,0,192,0,0,0,198,131,112,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,112,4,192,0,0,0,198,67,113,4,192,0,0,0,198,163,113,4,192,0,0,0,192,0,0,0,198,3,114,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,114,4,192,0,0,0,198,195,114,4,198,34,115,4,192,0,0,0,192,0,0,0,198,99,115,4,192,0,0,0,192,0,0,0,198,195,115,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,116,4,192,0,0,0,198,99,116,4,198,195,116,4,198,34,117,4,192,0,0,0,198,98,117,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,117,4,192,0,0,0,198,3,118,4,192,0,0,0,192,0,0,0,192,0,0,0,197,67,216,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,118,4,192,0,0,0,198,195,118,4,198,35,119,4,198,130,119,4,198,195,119,4,192,0,0,0,198,35,120,4,192,0,0,0,192,0,0,0,197,163,216,0,198,130,120,4,197,2,217,0,192,0,0,0,198,194,120,4,192,0,0,0,198,3,121,4,192,0,0,0,198,98,121,4,192,0,0,0,192,0,0,0,192,0,0,0,198,163,121,4,197,66,217,0,198,2,122,4,198,67,122,4,192,0,0,0,192,0,0,0,198,163,122,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,123,4,198,99,123,4,198,195,123,4,198,35,124,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,124,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,217,0,192,0,0,0,192,0,0,0,198,195,124,4,192,0,0,0,198,34,125,4,198,98,125,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,125,4,192,0,0,0,192,0,0,0,198,226,125,4,198,34,126,4,197,195,217,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,126,4,197,35,218,0,192,0,0,0,192,0,0,0,198,195,126,4,192,0,0,0,198,34,127,4,192,0,0,0,197,130,218,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,127,4,192,0,0,0,198,162,127,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,127,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,128,4,198,162,128,4,192,0,0,0,192,0,0,0,198,227,128,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,129,4,198,162,129,4,192,0,0,0,192,0,0,0,198,226,129,4,198,35,130,4,192,0,0,0,197,195,218,0,198,131,130,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,130,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,131,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,131,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,131,4,198,66,132,4,197,34,219,0,198,131,132,4,192,0,0,0,198,226,132,4,192,0,0,0,198,34,133,4,192,0,0,0,192,0,0,0,192,0,0,0,198,99,133,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,133,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,134,4,198,131,134,4,192,0,0,0,192,0,0,0,198,227,134,4,198,66,135,4,198,131,135,4,192,0,0,0,192,0,0,0,192,0,0,0,198,227,135,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,219,0,197,195,219,0,198,66,136,4,192,0,0,0,198,131,136,4,192,0,0,0,192,0,0,0,198,226,136,4,192,0,0,0,192,0,0,0,192,0,0,0,198,35,137,4,192,0,0,0,192,0,0,0,198,130,137,4,192,0,0,0,198,194,137,4,198,2,138,4,192,0,0,0,192,0,0,0,198,66,138,4,198,131,138,4,198,227,138,4,198,66,139,4,192,0,0,0,192,0,0,0,198,131,139,4,198,226,139,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,140,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,140,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,140,4,198,34,141,4,192,0,0,0,197,34,220,0,192,0,0,0,198,99,141,4,192,0,0,0,192,0,0,0,198,194,141,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,142,4,198,99,142,4,192,0,0,0,198,195,142,4,192,0,0,0,192,0,0,0,198,35,143,4,198,131,143,4,198,227,143,4,198,66,144,4,192,0,0,0,192,0,0,0,192,0,0,0,198,130,144,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,144,4,192,0,0,0,198,2,145,4,198,67,145,4,192,0,0,0,198,163,145,4,198,2,146,4,192,0,0,0,192,0,0,0,192,0,0,0,197,98,220,0,192,0,0,0,192,0,0,0,198,66,146,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,146,4,192,0,0,0,192,0,0,0,197,162,220,0,198,195,146,4,198,35,147,4,197,227,220,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,147,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,147,4,192,0,0,0,192,0,0,0,192,0,0,0,198,34,148,4,192,0,0,0,198,98,148,4,198,162,148,4,192,0,0,0,192,0,0,0,192,0,0,0,198,226,148,4,198,35,149,4,198,130,149,4,198,194,149,4,198,2,150,4,198,67,150,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,150,4,192,0,0,0,192,0,0,0,198,227,150,4,198,66,151,4,198,130,151,4,198,194,151,4,198,2,152,4,192,0,0,0,192,0,0,0,198,66,152,4,198,130,152,4,197,66,221,0,198,195,152,4,198,35,153,4,198,130,153,4,198,194,153,4,192,0,0,0,198,2,154,4,192,0,0,0,192,0,0,0,198,67,154,4,192,0,0,0,198,162,154,4,197,130,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,221,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,154,4,192,0,0,0,198,35,155,4,192,0,0,0,192,0,0,0,198,131,155,4,197,3,222,0,198,227,155,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,156,4,198,131,156,4,192,0,0,0,197,98,222,0,198,227,156,4,198,67,157,4,192,0,0,0,198,162,157,4,192,0,0,0,192,0,0,0,197,162,222,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,157,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,158,4,197,226,222,0,198,130,158,4,192,0,0,0,198,195,158,4,198,35,159,4,192,0,0,0,192,0,0,0,198,130,159,4,192,0,0,0,198,194,159,4,198,2,160,4,192,0,0,0,198,67,160,4,198,163,160,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,161,4,198,67,161,4,198,162,161,4,192,0,0,0,198,227,161,4,197,34,223,0,198,67,162,4,198,162,162,4,198,226,162,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,163,4,192,0,0,0,192,0,0,0,198,131,163,4,198,227,163,4,197,98,223,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,223,0,198,66,164,4,192,0,0,0,192,0,0,0,198,130,164,4,192,0,0,0,192,0,0,0,198,194,164,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,165,4,192,0,0,0,192,0,0,0,198,67,165,4,198,163,165,4,198,3,166,4,192,0,0,0,198,99,166,4,198,195,166,4,192,0,0,0,198,35,167,4,198,130,167,4,198,195,167,4,198,34,168,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,168,4,192,0,0,0,192,0,0,0,198,194,168,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,223,0,198,2,169,4,198,67,169,4,192,0,0,0,192,0,0,0,198,162,169,4,192,0,0,0,192,0,0,0,198,227,169,4,192,0,0,0,197,34,224,0,198,67,170,4,198,162,170,4,198,226,170,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,171,4,192,0,0,0,192,0,0,0,197,98,224,0,192,0,0,0,198,131,171,4,197,162,224,0,192,0,0,0,198,227,171,4,192,0,0,0,198,66,172,4,197,227,224,0,198,130,172,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,172,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,173,4,192,0,0,0,192,0,0,0,198,131,173,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,173,4,198,67,174,4,192,0,0,0,198,163,174,4,192,0,0,0,198,2,175,4,198,66,175,4,198,130,175,4,192,0,0,0,198,194,175,4,198,3,176,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,176,4,198,195,176,4,192,0,0,0,192,0,0,0,197,66,225,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,177,4,198,131,177,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,177,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,178,4,198,131,178,4,197,130,225,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,178,4,192,0,0,0,197,195,225,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,179,4,192,0,0,0,192,0,0,0,192,0,0,0,197,35,226,0,198,163,179,4,198,2,180,4,192,0,0,0,192,0,0,0,198,67,180,4,198,163,180,4,192,0,0,0,192,0,0,0,198,3,181,4,198,98,181,4,198,163,181,4,198,3,182,4,198,99,182,4,198,194,182,4,198,3,183,4,198,99,183,4,198,194,183,4,197,131,226,0,192,0,0,0,198,2,184,4,192,0,0,0,197,226,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,184,4,198,163,184,4,192,0,0,0,198,2,185,4,198,66,185,4,198,131,185,4,198,227,185,4,192,0,0,0,192,0,0,0,198,66,186,4,192,0,0,0,192,0,0,0,192,0,0,0,198,131,186,4,198,226,186,4,192,0,0,0,192,0,0,0,198,35,187,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,227,0,197,98,227,0,192,0,0,0,198,130,187,4,192,0,0,0,198,195,187,4,198,34,188,4,192,0,0,0,192,0,0,0,192,0,0,0,198,98,188,4,192,0,0,0,192,0,0,0,198,162,188,4,192,0,0,0,192,0,0,0,198,226,188,4,198,34,189,4,198,99,189,4,192,0,0,0,192,0,0,0,198,195,189,4,198,35,190,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,190,4,198,226,190,4,192,0,0,0,198,34,191,4,198,98,191,4,192,0,0,0,198,163,191,4,198,3,192,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,192,4,192,0,0,0,198,163,192,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,193,4,192,0,0,0,198,99,193,4,198,195,193,4,192,0,0,0,198,34,194,4,198,99,194,4,192,0,0,0,198,195,194,4,198,35,195,4,192,0,0,0,192,0,0,0,192,0,0,0,198,130,195,4,192,0,0,0,192,0,0,0,198,195,195,4,192,0,0,0,198,35,196,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,196,4,192,0,0,0,198,227,196,4,198,67,197,4,198,163,197,4,192,0,0,0,192,0,0,0,198,2,198,4,192,0,0,0,198,67,198,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,227,0,192,0,0,0,198,163,198,4,192,0,0,0,198,2,199,4,192,0,0,0,198,66,199,4,192,0,0,0,192,0,0,0,197,227,227,0,192,0,0,0,198,130,199,4,198,195,199,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,200,4,198,131,200,4,192,0,0,0,198,227,200,4,192,0,0,0,192,0,0,0,197,66,228,0,192,0,0,0,198,67,201,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,201,4,198,226,201,4,198,35,202,4,198,131,202,4,192,0,0,0,192,0,0,0,192,0,0,0,197,130,228,0,198,227,202,4,192,0,0,0,198,66,203,4,192,0,0,0,192,0,0,0,192,0,0,0,198,130,203,4,192,0,0,0,198,195,203,4,192,0,0,0,192,0,0,0,192,0,0,0,198,34,204,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,204,4,197,195,228,0,192,0,0,0,198,195,204,4,198,35,205,4,192,0,0,0,198,131,205,4,198,227,205,4,198,67,206,4,192,0,0,0,198,163,206,4,198,3,207,4,198,99,207,4,198,195,207,4,198,34,208,4,198,99,208,4,192,0,0,0,198,195,208,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,209,4,198,99,209,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,209,4,198,3,210,4,198,99,210,4,192,0,0,0,198,195,210,4,192,0,0,0,192,0,0,0,198,35,211,4,192,0,0,0,198,130,211,4,192,0,0,0,192,0,0,0,198,194,211,4,192,0,0,0,198,3,212,4,192,0,0,0,198,99,212,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,212,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,213,4,192,0,0,0,192,0,0,0,192,0,0,0,198,67,213,4,192,0,0,0,198,162,213,4,197,34,229,0,198,227,213,4,192,0,0,0,192,0,0,0,198,66,214,4,192,0,0,0,198,131,214,4,198,226,214,4,192,0,0,0,198,35,215,4,192,0,0,0,198,131,215,4,198,226,215,4,192,0,0,0,198,35,216,4,198,131,216,4,192,0,0,0,192,0,0,0,198,226,216,4,198,35,217,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,217,4,192,0,0,0,192,0,0,0,192,0,0,0,198,227,217,4,192,0,0,0,192,0,0,0,198,67,218,4,192,0,0,0,192,0,0,0,192,0,0,0,197,98,229,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,218,4,192,0,0,0,198,227,218,4,197,163,229,0,192,0,0,0,192,0,0,0,198,67,219,4,192,0,0,0,198,163,219,4,198,3,220,4,192,0,0,0,198,99,220,4,198,195,220,4,197,3,230,0,197,98,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,221,4,192,0,0,0,198,131,221,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,221,4,192,0,0,0,198,35,222,4,192,0,0,0,198,130,222,4,192,0,0,0,192,0,0,0,198,194,222,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,223,4,192,0,0,0,198,98,223,4,192,0,0,0,192,0,0,0,198,162,223,4,198,226,223,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,230,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,224,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,224,4,192,0,0,0,198,227,224,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,225,4,192,0,0,0,198,162,225,4,192,0,0,0,197,2,231,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,225,4,192,0,0,0,192,0,0,0,198,67,226,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,226,4,198,3,227,4,198,98,227,4,198,163,227,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,231,0,192,0,0,0,192,0,0,0,198,3,228,4,198,98,228,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,228,4,197,162,231,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,229,4,198,99,229,4,198,194,229,4,192,0,0,0,192,0,0,0,192,0,0,0,198,3,230,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,230,4,198,163,230,4,192,0,0,0,192,0,0,0,198,3,231,4,192,0,0,0,198,98,231,4,192,0,0,0,198,162,231,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,231,4,198,67,232,4,192,0,0,0,192,0,0,0,198,162,232,4,198,227,232,4,192,0,0,0,192,0,0,0,192,0,0,0,198,67,233,4,198,163,233,4,192,0,0,0,198,2,234,4,192,0,0,0,198,67,234,4,192,0,0,0,192,0,0,0,198,162,234,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,234,4,198,34,235,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,235,4,192,0,0,0,192,0,0,0,198,195,235,4,192,0,0,0,198,34,236,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,236,4,192,0,0,0,192,0,0,0,192,0,0,0,198,194,236,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,237,4,192,0,0,0,192,0,0,0,198,99,237,4,192,0,0,0,198,194,237,4,198,3,238,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,238,4,192,0,0,0,192,0,0,0,198,194,238,4,192,0,0,0,198,3,239,4,198,99,239,4,198,195,239,4,198,35,240,4,198,131,240,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,240,4,192,0,0,0,192,0,0,0,198,67,241,4,198,163,241,4,198,3,242,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,242,4,192,0,0,0,192,0,0,0,198,163,242,4,198,3,243,4,198,99,243,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,243,4,198,3,244,4,192,0,0,0,192,0,0,0,192,0,0,0,197,226,231,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,244,4,198,163,244,4,198,2,245,4,192,0,0,0,198,66,245,4,198,131,245,4,192,0,0,0,198,226,245,4,198,35,246,4,198,131,246,4,198,226,246,4,198,35,247,4,192,0,0,0,198,130,247,4,192,0,0,0,192,0,0,0,198,194,247,4,192,0,0,0,198,3,248,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,248,4,192,0,0,0,192,0,0,0,197,34,232,0,192,0,0,0,198,163,248,4,192,0,0,0,198,2,249,4,192,0,0,0,198,67,249,4,192,0,0,0,198,162,249,4,198,226,249,4,192,0,0,0,192,0,0,0,198,34,250,4,192,0,0,0,198,98,250,4,192,0,0,0,198,162,250,4,198,227,250,4,198,67,251,4,197,99,232,0,198,162,251,4,197,195,232,0,197,35,233,0,192,0,0,0,198,227,251,4,198,67,252,4,192,0,0,0,198,163,252,4,192,0,0,0,192,0,0,0,198,2,253,4,192,0,0,0,192,0,0,0,198,66,253,4,198,131,253,4,198,226,253,4,192,0,0,0,198,34,254,4,198,99,254,4,198,194,254,4,198,3,255,4,198,99,255,4,198,195,255,4,192,0,0,0,192,0,0,0,192,0,0,0,198,34,0,5,198,99,0,5,198,195,0,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,1,5,198,98,1,5,192,0,0,0,198,163,1,5,198,2,2,5,198,66,2,5,198,131,2,5,198,227,2,5,198,67,3,5,192,0,0,0,197,130,233,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,3,5,198,227,3,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,4,5,198,163,4,5,198,2,5,5,198,67,5,5,198,163,5,5,192,0,0,0,192,0,0,0,198,3,6,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,6,5,192,0,0,0,192,0,0,0,198,195,6,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,7,5,192,0,0,0,192,0,0,0,198,131,7,5,192,0,0,0,198,226,7,5,197,195,233,0,192,0,0,0,198,34,8,5,192,0,0,0,192,0,0,0,198,99,8,5,198,195,8,5,198,35,9,5,192,0,0,0,192,0,0,0,198,131,9,5,192,0,0,0,198,227,9,5,198,66,10,5,198,131,10,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,10,5,192,0,0,0,198,35,11,5,198,131,11,5,198,226,11,5,198,35,12,5,192,0,0,0,192,0,0,0,198,131,12,5,192,0,0,0,192,0,0,0,198,227,12,5,197,34,234,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,13,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,13,5,192,0,0,0,192,0,0,0,198,195,13,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,14,5,198,130,14,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,14,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,15,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,15,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,15,5,192,0,0,0,198,66,16,5,198,131,16,5,192,0,0,0,198,226,16,5,198,34,17,5,198,99,17,5,192,0,0,0,198,195,17,5,192,0,0,0,198,35,18,5,198,130,18,5,197,98,234,0,198,194,18,5,192,0,0,0,198,3,19,5,198,99,19,5,198,195,19,5,192,0,0,0,198,35,20,5,198,130,20,5,192,0,0,0,192,0,0,0,198,195,20,5,192,0,0,0,198,34,21,5,198,99,21,5,192,0,0,0,198,195,21,5,198,35,22,5,198,131,22,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,22,5,192,0,0,0,192,0,0,0,197,162,234,0,192,0,0,0,192,0,0,0,198,67,23,5,198,162,23,5,198,226,23,5,198,35,24,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,24,5,198,195,24,5,197,227,234,0,192,0,0,0,198,35,25,5,192,0,0,0,198,131,25,5,198,227,25,5,198,67,26,5,192,0,0,0,197,66,235,0,198,163,26,5,192,0,0,0,198,3,27,5,192,0,0,0,192,0,0,0,198,98,27,5,192,0,0,0,198,163,27,5,198,3,28,5,192,0,0,0,192,0,0,0,198,99,28,5,192,0,0,0,192,0,0,0,197,130,235,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,28,5,192,0,0,0,198,35,29,5,192,0,0,0,192,0,0,0,197,194,235,0,192,0,0,0,197,2,236,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,29,5,198,227,29,5,198,67,30,5,198,162,30,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,30,5,198,35,31,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,31,5,192,0,0,0,197,66,236,0,198,226,31,5,192,0,0,0,192,0,0,0,198,35,32,5,192,0,0,0,198,131,32,5,197,130,236,0,198,227,32,5,198,67,33,5,198,162,33,5,198,227,33,5,198,67,34,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,5,192,0,0,0,192,0,0,0,198,3,35,5,198,99,35,5,192,0,0,0,198,195,35,5,198,34,36,5,198,99,36,5,192,0,0,0,198,195,36,5,192,0,0,0,198,34,37,5,192,0,0,0,197,194,236,0,192,0,0,0,198,98,37,5,192,0,0,0,198,163,37,5,198,3,38,5,192,0,0,0,192,0,0,0,198,99,38,5,192,0,0,0,198,195,38,5,198,34,39,5,198,98,39,5,198,162,39,5,198,226,39,5,198,35,40,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,40,5,192,0,0,0,198,195,40,5,192,0,0,0,198,35,41,5,198,131,41,5,198,227,41,5,198,67,42,5,192,0,0,0,198,163,42,5,198,2,43,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,43,5,192,0,0,0,192,0,0,0,198,130,43,5,197,2,237,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,43,5,197,66,237,0,198,34,44,5,192,0,0,0,198,99,44,5,192,0,0,0,198,195,44,5,198,34,45,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,45,5,192,0,0,0,192,0,0,0,198,195,45,5,192,0,0,0,192,0,0,0,198,34,46,5,198,99,46,5,198,195,46,5,192,0,0,0,192,0,0,0,197,131,237,0,198,35,47,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,47,5,197,227,237,0,192,0,0,0,198,195,47,5,192,0,0,0,198,35,48,5,198,130,48,5,192,0,0,0,198,195,48,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,49,5,198,130,49,5,192,0,0,0,198,195,49,5,192,0,0,0,198,35,50,5,192,0,0,0,192,0,0,0,198,131,50,5,198,227,50,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,51,5,198,130,51,5,198,195,51,5,192,0,0,0,198,35,52,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,52,5,198,227,52,5,192,0,0,0,192,0,0,0,192,0,0,0,198,67,53,5,198,163,53,5,197,66,238,0,192,0,0,0,198,3,54,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,54,5,198,195,54,5,198,34,55,5,198,99,55,5,192,0,0,0,198,195,55,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,56,5,198,131,56,5,192,0,0,0,192,0,0,0,198,226,56,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,238,0,192,0,0,0,198,34,57,5,198,99,57,5,198,195,57,5,192,0,0,0,197,194,238,0,192,0,0,0,192,0,0,0,198,34,58,5,192,0,0,0,198,99,58,5,192,0,0,0,197,2,239,0,197,66,239,0,192,0,0,0,192,0,0,0,197,130,239,0,192,0,0,0,198,195,58,5,192,0,0,0,198,34,59,5,192,0,0,0,192,0,0,0,198,98,59,5,192,0,0,0,197,194,239,0,198,163,59,5,198,2,60,5,192,0,0,0,192,0,0,0,197,3,240,0,198,66,60,5,198,131,60,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,60,5,192,0,0,0,192,0,0,0,198,66,61,5,198,130,61,5,198,194,61,5,198,2,62,5,192,0,0,0,198,67,62,5,192,0,0,0,198,163,62,5,192,0,0,0,198,2,63,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,63,5,192,0,0,0,198,130,63,5,198,195,63,5,198,35,64,5,192,0,0,0,198,131,64,5,192,0,0,0,192,0,0,0,197,98,240,0,198,226,64,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,65,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,65,5,197,162,240,0,192,0,0,0,198,227,65,5,192,0,0,0,192,0,0,0,192,0,0,0,198,67,66,5,192,0,0,0,192,0,0,0,197,226,240,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,66,5,192,0,0,0,198,2,67,5,198,67,67,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,67,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,67,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,68,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,68,5,192,0,0,0,198,227,68,5,192,0,0,0,198,67,69,5,192,0,0,0,192,0,0,0,192,0,0,0,198,163,69,5,192,0,0,0,198,3,70,5,197,35,241,0,197,131,241,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,70,5,192,0,0,0,192,0,0,0,192,0,0,0,198,163,70,5,197,226,241,0,198,2,71,5,192,0,0,0,198,67,71,5,198,162,71,5,192,0,0,0,198,227,71,5,192,0,0,0,192,0,0,0,198,67,72,5,192,0,0,0,198,163,72,5,197,34,242,0,192,0,0,0,197,99,242,0,192,0,0,0,198,3,73,5,192,0,0,0,192,0,0,0,198,98,73,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,73,5,198,226,73,5,198,35,74,5,198,131,74,5,192,0,0,0,198,227,74,5,192,0,0,0,198,66,75,5,198,130,75,5,192,0,0,0,198,194,75,5,198,2,76,5,198,66,76,5,198,130,76,5,192,0,0,0,192,0,0,0,198,194,76,5,192,0,0,0,192,0,0,0,198,2,77,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,77,5,198,131,77,5,198,226,77,5,192,0,0,0,198,34,78,5,198,99,78,5,198,194,78,5,198,2,79,5,198,67,79,5,197,194,242,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,79,5,192,0,0,0,192,0,0,0,198,226,79,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,80,5,192,0,0,0,198,98,80,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,80,5,198,226,80,5,192,0,0,0,192,0,0,0,198,34,81,5,192,0,0,0,192,0,0,0,198,98,81,5,192,0,0,0,192,0,0,0,197,2,243,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,243,0,192,0,0,0,198,163,81,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,82,5,192,0,0,0,192,0,0,0,198,99,82,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,82,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,83,5,192,0,0,0,192,0,0,0,198,98,83,5,198,163,83,5,192,0,0,0,198,3,84,5,192,0,0,0,197,162,243,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,84,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,84,5,198,35,85,5,198,130,85,5,198,195,85,5,198,35,86,5,192,0,0,0,198,130,86,5,198,195,86,5,198,35,87,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,87,5,198,227,87,5,198,67,88,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,88,5,198,227,88,5,198,66,89,5,198,130,89,5,192,0,0,0,198,195,89,5,192,0,0,0,198,35,90,5,198,130,90,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,243,0,192,0,0,0,192,0,0,0,198,194,90,5,192,0,0,0,198,2,91,5,192,0,0,0,198,66,91,5,198,131,91,5,192,0,0,0,198,227,91,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,92,5,198,130,92,5,192,0,0,0,192,0,0,0,198,194,92,5,198,3,93,5,192,0,0,0,192,0,0,0,198,99,93,5,198,195,93,5,198,35,94,5,192,0,0,0,198,131,94,5,192,0,0,0,198,227,94,5,192,0,0,0,198,67,95,5,198,163,95,5,192,0,0,0,197,66,244,0,198,2,96,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,244,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,244,0,198,66,96,5,192,0,0,0,198,131,96,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,96,5,192,0,0,0,198,34,97,5,192,0,0,0,197,2,245,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,97,5,198,163,97,5,192,0,0,0,192,0,0,0,198,2,98,5,198,66,98,5,198,131,98,5,192,0,0,0,192,0,0,0,198,226,98,5,192,0,0,0,198,34,99,5,197,66,245,0,192,0,0,0,192,0,0,0,198,99,99,5,198,194,99,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,100,5,192,0,0,0,198,67,100,5,192,0,0,0,192,0,0,0,198,163,100,5,192,0,0,0,192,0,0,0,197,131,245,0,197,227,245,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,101,5,198,98,101,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,101,5,192,0,0,0,192,0,0,0,197,67,246,0,197,162,246,0,197,227,246,0,198,227,101,5,198,67,102,5,198,163,102,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,103,5,192,0,0,0,198,99,103,5,192,0,0,0,198,195,103,5,198,35,104,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,104,5,198,227,104,5,192,0,0,0,192,0,0,0,197,66,247,0,192,0,0,0,198,66,105,5,192,0,0,0,198,131,105,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,105,5,198,34,106,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,106,5,198,194,106,5,192,0,0,0,192,0,0,0,192,0,0,0,198,2,107,5,192,0,0,0,192,0,0,0,198,67,107,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,107,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,108,5,198,99,108,5,192,0,0,0,192,0,0,0,198,195,108,5,192,0,0,0,198,34,109,5,198,98,109,5,198,162,109,5,198,226,109,5,198,35,110,5,198,131,110,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,110,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,111,5,198,131,111,5,198,226,111,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,112,5,192,0,0,0,198,131,112,5,192,0,0,0,192,0,0,0,198,226,112,5,198,35,113,5,192,0,0,0,192,0,0,0,198,130,113,5,192,0,0,0,198,195,113,5,197,131,247,0,198,35,114,5,198,131,114,5,198,227,114,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,247,0,198,67,115,5,192,0,0,0,197,34,248,0,198,163,115,5,198,2,116,5,192,0,0,0,198,66,116,5,192,0,0,0,198,131,116,5,192,0,0,0,198,227,116,5,198,66,117,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,117,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,117,5,192,0,0,0,198,3,118,5,198,99,118,5,198,195,118,5,192,0,0,0,198,34,119,5,192,0,0,0,192,0,0,0,198,99,119,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,119,5,198,34,120,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,120,5,192,0,0,0,192,0,0,0,198,195,120,5,198,34,121,5,197,98,248,0,192,0,0,0,192,0,0,0,198,98,121,5,198,163,121,5,198,3,122,5,192,0,0,0,192,0,0,0,198,99,122,5,197,162,248,0,198,195,122,5,198,35,123,5,192,0,0,0,198,130,123,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,123,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,124,5,192,0,0,0,192,0,0,0,197,226,248,0,192,0,0,0,198,99,124,5,192,0,0,0,198,194,124,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,125,5,198,99,125,5,197,34,249,0,192,0,0,0,192,0,0,0,198,194,125,5,192,0,0,0,198,3,126,5,198,99,126,5,192,0,0,0,192,0,0,0,198,195,126,5,192,0,0,0,197,98,249,0,192,0,0,0,198,35,127,5,198,131,127,5,192,0,0,0,198,226,127,5,192,0,0,0,198,35,128,5,197,162,249,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,128,5,197,226,249,0,192,0,0,0,198,195,128,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,129,5,198,99,129,5,198,194,129,5,192,0,0,0,197,34,250,0,192,0,0,0,192,0,0,0,197,98,250,0,198,3,130,5,198,99,130,5,192,0,0,0,198,194,130,5,192,0,0,0,197,162,250,0,197,227,250,0,192,0,0,0,198,2,131,5,192,0,0,0,198,67,131,5,198,162,131,5,192,0,0,0,192,0,0,0,198,226,131,5,192,0,0,0,198,34,132,5,192,0,0,0,192,0,0,0,192,0,0,0,198,98,132,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,132,5,198,3,133,5,192,0,0,0,198,98,133,5,198,162,133,5,192,0,0,0,198,227,133,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,134,5,198,163,134,5,198,3,135,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,135,5,192,0,0,0,198,194,135,5,198,3,136,5,198,99,136,5,198,194,136,5,198,3,137,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,137,5,192,0,0,0,192,0,0,0,198,194,137,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,251,0,192,0,0,0,198,3,138,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,138,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,138,5,198,3,139,5,198,98,139,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,139,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,251,0,192,0,0,0,197,195,251,0,192,0,0,0,198,3,140,5,192,0,0,0,198,98,140,5,198,162,140,5,192,0,0,0,192,0,0,0,198,227,140,5,198,67,141,5,192,0,0,0,198,163,141,5,198,3,142,5,192,0,0,0,198,99,142,5,192,0,0,0,198,195,142,5,192,0,0,0,198,34,143,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,143,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,143,5,198,2,144,5,192,0,0,0,198,67,144,5,198,163,144,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,145,5,192,0,0,0,197,34,252,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,145,5,198,162,145,5,198,227,145,5,192,0,0,0,192,0,0,0,198,66,146,5,192,0,0,0,198,131,146,5,192,0,0,0,198,227,146,5,198,67,147,5,198,162,147,5,192,0,0,0,198,226,147,5,197,98,252,0,198,34,148,5,198,99,148,5,198,195,148,5,198,34,149,5,198,99,149,5,198,195,149,5,197,162,252,0,197,226,252,0,198,35,150,5,198,130,150,5,197,34,253,0,192,0,0,0,198,195,150,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,151,5,198,99,151,5,198,195,151,5,192,0,0,0,197,98,253,0,198,34,152,5,198,98,152,5,198,162,152,5,198,227,152,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,153,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,153,5,198,227,153,5,198,67,154,5,197,162,253,0,198,162,154,5,192,0,0,0,198,226,154,5,192,0,0,0,192,0,0,0,192,0,0,0,198,34,155,5,198,99,155,5,192,0,0,0,198,194,155,5,198,2,156,5,198,67,156,5,198,162,156,5,192,0,0,0,198,226,156,5,192,0,0,0,198,35,157,5,198,130,157,5,197,226,253,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,157,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,158,5,192,0,0,0,198,131,158,5,197,34,254,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,158,5,198,66,159,5,198,130,159,5,192,0,0,0,198,194,159,5,197,99,254,0,198,2,160,5,198,67,160,5,198,163,160,5,198,2,161,5,198,67,161,5,198,162,161,5,198,226,161,5,192,0,0,0,192,0,0,0,198,34,162,5,198,99,162,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,162,5,192,0,0,0,192,0,0,0,192,0,0,0,198,35,163,5,198,131,163,5,198,226,163,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,164,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,164,5,192,0,0,0,198,163,164,5,198,3,165,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,165,5,192,0,0,0,198,194,165,5,198,2,166,5,198,67,166,5,197,194,254,0,198,163,166,5,198,2,167,5,192,0,0,0,198,67,167,5,197,2,255,0,192,0,0,0,192,0,0,0,198,163,167,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,168,5,192,0,0,0,192,0,0,0,198,99,168,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,168,5,192,0,0,0,198,34,169,5,198,99,169,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,169,5,198,35,170,5,198,130,170,5,197,67,255,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,170,5,192,0,0,0,192,0,0,0,192,0,0,0,197,162,255,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,171,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,171,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,171,5,198,227,171,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,172,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,172,5,198,194,172,5,192,0,0,0,192,0,0,0,198,3,173,5,192,0,0,0,198,99,173,5,192,0,0,0,198,195,173,5,198,35,174,5,192,0,0,0,197,226,255,0,198,131,174,5,197,35,0,1,198,226,174,5,192,0,0,0,197,131,0,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,175,5,198,130,175,5,198,194,175,5,198,3,176,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,176,5,198,195,176,5,198,34,177,5,192,0,0,0,198,99,177,5,198,195,177,5,192,0,0,0,192,0,0,0,198,35,178,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,178,5,198,227,178,5,192,0,0,0,198,67,179,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,0,1,192,0,0,0,197,34,1,1,198,163,179,5,192,0,0,0,198,3,180,5,192,0,0,0,198,99,180,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,180,5,192,0,0,0,192,0,0,0,198,2,181,5,197,98,1,1,197,163,1,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,181,5,192,0,0,0,198,131,181,5,192,0,0,0,192,0,0,0,192,0,0,0,197,2,2,1,198,226,181,5,198,35,182,5,198,130,182,5,192,0,0,0,198,195,182,5,192,0,0,0,198,35,183,5,192,0,0,0,192,0,0,0,197,66,2,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,183,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,2,1,198,226,183,5,192,0,0,0,198,34,184,5,198,99,184,5,192,0,0,0,192,0,0,0,198,194,184,5,197,194,2,1,198,3,185,5,198,99,185,5,197,2,3,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,3,1,192,0,0,0,192,0,0,0,198,195,185,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,3,1,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,1,192,0,0,0,192,0,0,0,197,34,4,1,198,35,186,5,192,0,0,0,192,0,0,0,198,131,186,5,198,227,186,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,187,5,192,0,0,0,192,0,0,0,198,131,187,5,198,227,187,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,188,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,1,192,0,0,0,192,0,0,0,198,163,188,5,198,3,189,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,189,5,192,0,0,0,198,163,189,5,192,0,0,0,192,0,0,0,197,162,4,1,192,0,0,0,192,0,0,0,197,226,4,1,198,2,190,5,197,34,5,1,198,67,190,5,198,162,190,5,192,0,0,0,198,227,190,5,192,0,0,0,198,67,191,5,192,0,0,0,198,162,191,5,192,0,0,0,198,226,191,5,192,0,0,0,197,99,5,1,192,0,0,0,192,0,0,0,198,35,192,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,5,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,192,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,192,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,193,5,192,0,0,0,192,0,0,0,198,99,193,5,192,0,0,0,192,0,0,0,198,194,193,5,192,0,0,0,198,3,194,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,194,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,194,5,192,0,0,0,198,2,195,5,192,0,0,0,192,0,0,0,198,66,195,5,192,0,0,0,198,131,195,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,195,5,198,67,196,5,198,163,196,5,198,3,197,5,198,99,197,5,192,0,0,0,192,0,0,0,197,2,6,1,198,195,197,5,198,35,198,5,198,131,198,5,192,0,0,0,198,227,198,5,192,0,0,0,198,67,199,5,192,0,0,0,192,0,0,0,198,163,199,5,198,3,200,5,198,98,200,5,192,0,0,0,198,162,200,5,192,0,0,0,192,0,0,0,198,227,200,5,198,66,201,5,192,0,0,0,198,130,201,5,192,0,0,0,192,0,0,0,198,194,201,5,192,0,0,0,192,0,0,0,192,0,0,0,198,2,202,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,202,5,198,163,202,5,198,3,203,5,198,99,203,5,192,0,0,0,198,195,203,5,192,0,0,0,192,0,0,0,198,35,204,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,204,5,197,67,6,1,192,0,0,0,192,0,0,0,198,194,204,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,205,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,205,5,192,0,0,0,198,195,205,5,198,35,206,5,197,162,6,1,192,0,0,0,198,130,206,5,198,195,206,5,192,0,0,0,198,35,207,5,192,0,0,0,192,0,0,0,192,0,0,0,198,130,207,5,198,194,207,5,192,0,0,0,198,2,208,5,192,0,0,0,198,67,208,5,192,0,0,0,198,163,208,5,198,2,209,5,192,0,0,0,192,0,0,0,192,0,0,0,198,67,209,5,192,0,0,0,198,162,209,5,198,227,209,5,192,0,0,0,198,67,210,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,1,192,0,0,0,197,34,7,1,192,0,0,0,198,163,210,5,192,0,0,0,198,3,211,5,192,0,0,0,192,0,0,0,198,99,211,5,192,0,0,0,192,0,0,0,198,194,211,5,198,2,212,5,198,66,212,5,192,0,0,0,192,0,0,0,198,130,212,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,212,5,192,0,0,0,198,34,213,5,198,98,213,5,192,0,0,0,198,162,213,5,197,98,7,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,1,192,0,0,0,192,0,0,0,198,227,213,5,192,0,0,0,198,67,214,5,198,162,214,5,192,0,0,0,192,0,0,0,192,0,0,0,198,227,214,5,198,67,215,5,198,162,215,5,198,227,215,5,192,0,0,0,198,66,216,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,216,5,192,0,0,0,192,0,0,0,192,0,0,0,198,226,216,5,192,0,0,0,198,35,217,5,192,0,0,0,192,0,0,0,192,0,0,0,198,131,217,5,192,0,0,0,198,226,217,5,198,34,218,5,192,0,0,0,198,98,218,5,198,162,218,5,192,0,0,0,198,227,218,5,192,0,0,0,192,0,0,0,197,226,7,1,192,0,0,0,198,67,219,5,192,0,0,0,192,0,0,0,198,163,219,5,192,0,0,0,192,0,0,0,198,3,220,5,192,0,0,0,197,34,8,1,192,0,0,0,198,99,220,5,192,0,0,0,198,195,220,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,1,198,35,221,5,198,131,221,5,192,0,0,0,197,163,8,1,198,227,221,5,198,67,222,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,222,5,197,3,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,222,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,223,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,223,5,198,195,223,5,198,35,224,5,198,130,224,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,224,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,1,197,226,9,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,225,5,198,99,225,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,225,5,198,34,226,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,1,192,0,0,0,198,98,226,5,198,163,226,5,198,2,227,5,192,0,0,0,198,67,227,5,192,0,0,0,198,163,227,5,198,3,228,5,192,0,0,0,197,98,10,1,192,0,0,0,198,98,228,5,192,0,0,0,198,162,228,5,198,226,228,5,192,0,0,0,192,0,0,0,198,35,229,5,198,131,229,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,229,5,198,67,230,5,198,163,230,5,192,0,0,0,198,3,231,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,231,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,231,5,192,0,0,0,198,3,232,5,192,0,0,0,192,0,0,0,192,0,0,0,198,99,232,5,192,0,0,0,198,195,232,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,233,5,192,0,0,0,192,0,0,0,198,98,233,5,192,0,0,0,198,162,233,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,10,1,192,0,0,0,197,227,10,1,192,0,0,0,192,0,0,0,197,66,11,1,198,227,233,5,197,130,11,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,11,1,198,66,234,5,192,0,0,0,198,130,234,5,197,2,12,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,12,1,192,0,0,0,192,0,0,0,192,0,0,0,197,130,12,1,198,194,234,5,192,0,0,0,192,0,0,0,198,2,235,5,192,0,0,0,198,67,235,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,235,5,198,227,235,5,197,194,12,1,198,67,236,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,236,5,198,2,237,5,198,67,237,5,198,162,237,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,237,5,192,0,0,0,198,67,238,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,238,5,198,2,239,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,239,5,197,2,13,1,198,130,239,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,239,5,198,2,240,5,198,67,240,5,192,0,0,0,192,0,0,0,198,162,240,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,240,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,241,5,197,66,13,1,198,130,241,5,192,0,0,0,198,195,241,5,192,0,0,0,198,35,242,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,13,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,13,1,192,0,0,0,198,130,242,5,192,0,0,0,192,0,0,0,197,3,14,1,198,194,242,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,243,5,197,99,14,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,243,5,192,0,0,0,192,0,0,0,198,195,243,5,198,35,244,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,244,5,198,195,244,5,192,0,0,0,198,34,245,5,192,0,0,0,192,0,0,0,198,98,245,5,192,0,0,0,198,163,245,5,192,0,0,0,198,3,246,5,198,99,246,5,192,0,0,0,192,0,0,0,198,195,246,5,192,0,0,0,198,34,247,5,198,98,247,5,198,162,247,5,198,227,247,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,248,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,248,5,192,0,0,0,198,226,248,5,192,0,0,0,198,35,249,5,198,130,249,5,192,0,0,0,192,0,0,0,192,0,0,0,198,194,249,5,192,0,0,0,192,0,0,0,192,0,0,0,198,3,250,5,192,0,0,0,192,0,0,0,198,99,250,5,198,194,250,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,251,5,198,99,251,5,192,0,0,0,198,195,251,5,192,0,0,0,192,0,0,0,198,34,252,5,198,99,252,5,192,0,0,0,192,0,0,0,192,0,0,0,198,195,252,5,198,35,253,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,253,5,192,0,0,0,198,195,253,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,254,5,192,0,0,0,197,195,14,1,192,0,0,0,198,131,254,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,15,1,198,227,254,5,192,0,0,0,192,0,0,0,192,0,0,0,198,66,255,5,198,130,255,5,197,98,15,1,192,0,0,0,198,195,255,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,0,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,15,1,192,0,0,0,198,131,0,6,192,0,0,0,197,226,15,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,0,6,198,67,1,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,1,6,198,3,2,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,2,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,6,198,227,2,6,192,0,0,0,192,0,0,0,198,67,3,6,198,163,3,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,4,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,4,6,198,163,4,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,5,6,198,66,5,6,192,0,0,0,198,131,5,6,192,0,0,0,192,0,0,0,198,227,5,6,192,0,0,0,192,0,0,0,192,0,0,0,197,35,16,1,192,0,0,0,192,0,0,0,198,66,6,6,192,0,0,0,192,0,0,0,198,130,6,6,198,195,6,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,7,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,7,6,198,227,7,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,8,6,192,0,0,0,192,0,0,0,198,162,8,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,8,6,192,0,0,0,192,0,0,0,198,66,9,6,192,0,0,0,192,0,0,0,198,131,9,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,9,6,192,0,0,0,197,130,16,1,192,0,0,0,197,194,16,1,192,0,0,0,192,0,0,0,198,67,10,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,10,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,11,6,192,0,0,0,192,0,0,0,192,0,0,0,198,99,11,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,11,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,12,6,192,0,0,0,197,2,17,1,198,131,12,6,197,66,17,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,12,6,198,35,13,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,13,6,192,0,0,0,192,0,0,0,198,226,13,6,192,0,0,0,198,35,14,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,17,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,14,6,192,0,0,0,198,227,14,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,15,6,192,0,0,0,198,163,15,6,198,3,16,6,198,99,16,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,16,6,198,35,17,6,192,0,0,0,192,0,0,0,192,0,0,0,198,130,17,6,192,0,0,0,198,194,17,6,192,0,0,0,197,226,17,1,192,0,0,0,198,3,18,6,198,98,18,6,192,0,0,0,192,0,0,0,198,163,18,6,198,2,19,6,197,34,18,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,1,192,0,0,0,192,0,0,0,198,67,19,6,192,0,0,0,192,0,0,0,198,163,19,6,192,0,0,0,198,2,20,6,192,0,0,0,198,67,20,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,20,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,21,6,198,99,21,6,198,195,21,6,192,0,0,0,198,35,22,6,198,130,22,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,22,6,192,0,0,0,192,0,0,0,198,2,23,6,192,0,0,0,198,66,23,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,23,6,192,0,0,0,192,0,0,0,192,0,0,0,198,226,23,6,198,35,24,6,192,0,0,0,192,0,0,0,192,0,0,0,197,162,18,1,192,0,0,0,198,130,24,6,198,195,24,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,25,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,25,6,197,226,18,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,25,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,26,6,198,98,26,6,198,163,26,6,192,0,0,0,192,0,0,0,198,3,27,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,27,6,192,0,0,0,192,0,0,0,198,163,27,6,192,0,0,0,198,2,28,6,192,0,0,0,192,0,0,0,198,66,28,6,192,0,0,0,197,34,19,1,197,98,19,1,192,0,0,0,192,0,0,0,198,130,28,6,198,195,28,6,192,0,0,0,192,0,0,0,198,34,29,6,198,99,29,6,192,0,0,0,198,194,29,6,192,0,0,0,198,2,30,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,30,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,30,6,192,0,0,0,197,162,19,1,192,0,0,0,198,195,30,6,198,34,31,6,198,98,31,6,192,0,0,0,192,0,0,0,198,162,31,6,198,226,31,6,192,0,0,0,192,0,0,0,192,0,0,0,197,226,19,1,198,34,32,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,20,1,192,0,0,0,192,0,0,0,198,99,32,6,192,0,0,0,192,0,0,0,198,195,32,6,192,0,0,0,198,35,33,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,33,6,192,0,0,0,198,226,33,6,198,34,34,6,192,0,0,0,198,98,34,6,192,0,0,0,192,0,0,0,197,98,20,1,198,162,34,6,197,162,20,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,34,6,192,0,0,0,198,67,35,6,192,0,0,0,192,0,0,0,197,226,20,1,197,34,21,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,35,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,36,6,192,0,0,0,198,98,36,6,192,0,0,0,198,163,36,6,198,3,37,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,37,6,192,0,0,0,192,0,0,0,198,195,37,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,38,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,38,6,192,0,0,0,198,194,38,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,39,6,192,0,0,0,198,99,39,6,198,195,39,6,198,35,40,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,40,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,40,6,192,0,0,0,192,0,0,0,197,99,21,1,192,0,0,0,198,67,41,6,192,0,0,0,192,0,0,0,198,163,41,6,192,0,0,0,198,3,42,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,42,6,192,0,0,0,198,162,42,6,192,0,0,0,198,227,42,6,192,0,0,0,192,0,0,0,198,67,43,6,197,194,21,1,197,3,22,1,198,162,43,6,192,0,0,0,198,227,43,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,44,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,44,6,192,0,0,0,192,0,0,0,198,226,44,6,198,34,45,6,198,99,45,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,45,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,46,6,198,130,46,6,198,195,46,6,192,0,0,0,198,34,47,6,192,0,0,0,192,0,0,0,198,98,47,6,192,0,0,0,192,0,0,0,198,163,47,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,22,1,192,0,0,0,192,0,0,0,198,3,48,6,192,0,0,0,192,0,0,0,198,99,48,6,192,0,0,0,198,195,48,6,198,35,49,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,49,6,192,0,0,0,198,227,49,6,192,0,0,0,198,67,50,6,192,0,0,0,192,0,0,0,192,0,0,0,198,162,50,6,192,0,0,0,198,226,50,6,198,34,51,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,22,1,192,0,0,0,198,99,51,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,51,6,192,0,0,0,198,35,52,6,198,131,52,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,52,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,53,6,192,0,0,0,198,163,53,6,198,2,54,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,54,6,198,162,54,6,198,227,54,6,198,67,55,6,192,0,0,0,198,163,55,6,192,0,0,0,198,2,56,6,192,0,0,0,198,67,56,6,198,162,56,6,192,0,0,0,197,227,22,1,198,227,56,6,198,67,57,6,197,67,23,1,198,163,57,6,198,2,58,6,192,0,0,0,192,0,0,0,197,162,23,1,192,0,0,0,198,66,58,6,192,0,0,0,198,131,58,6,192,0,0,0,192,0,0,0,197,227,23,1,198,227,58,6,192,0,0,0,198,67,59,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,59,6,192,0,0,0,192,0,0,0,198,3,60,6,192,0,0,0,192,0,0,0,192,0,0,0,197,66,24,1,192,0,0,0,192,0,0,0,198,98,60,6,192,0,0,0,198,162,60,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,60,6,198,66,61,6,198,131,61,6,192,0,0,0,198,226,61,6,192,0,0,0,192,0,0,0,198,34,62,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,62,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,62,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,62,6,198,34,63,6,192,0,0,0,192,0,0,0,198,98,63,6,198,163,63,6,197,130,24,1,198,3,64,6,198,99,64,6,192,0,0,0,192,0,0,0,197,194,24,1,192,0,0,0,192,0,0,0,198,194,64,6,192,0,0,0,198,3,65,6,197,2,25,1,198,99,65,6,197,66,25,1,192,0,0,0,192,0,0,0,198,194,65,6,192,0,0,0,192,0,0,0,198,2,66,6,192,0,0,0,198,66,66,6,198,130,66,6,197,130,25,1,198,195,66,6,192,0,0,0,197,195,25,1,197,34,26,1,197,98,26,1,198,35,67,6,192,0,0,0,198,131,67,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,67,6,192,0,0,0,192,0,0,0,197,162,26,1,192,0,0,0,192,0,0,0,197,226,26,1,192,0,0,0,192,0,0,0,198,66,68,6,192,0,0,0,198,130,68,6,198,194,68,6,198,3,69,6,197,34,27,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,69,6,198,163,69,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,70,6,192,0,0,0,198,98,70,6,192,0,0,0,198,163,70,6,192,0,0,0,192,0,0,0,197,98,27,1,192,0,0,0,198,2,71,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,71,6,192,0,0,0,198,131,71,6,198,226,71,6,198,35,72,6,198,130,72,6,198,194,72,6,198,2,73,6,198,67,73,6,198,162,73,6,197,162,27,1,192,0,0,0,198,227,73,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,74,6,192,0,0,0,197,226,27,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,74,6,192,0,0,0,192,0,0,0,197,34,28,1,192,0,0,0,198,195,74,6,198,34,75,6,192,0,0,0,192,0,0,0,198,99,75,6,192,0,0,0,198,195,75,6,192,0,0,0,192,0,0,0,198,35,76,6,192,0,0,0,198,130,76,6,192,0,0,0,198,195,76,6,192,0,0,0,198,35,77,6,192,0,0,0,197,98,28,1,192,0,0,0,192,0,0,0,198,131,77,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,77,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,28,1,198,67,78,6,192,0,0,0,198,163,78,6,198,2,79,6,197,227,28,1,198,66,79,6,192,0,0,0,192,0,0,0,198,131,79,6,192,0,0,0,197,66,29,1,197,130,29,1,192,0,0,0,192,0,0,0,198,227,79,6,198,67,80,6,192,0,0,0,197,194,29,1,198,162,80,6,192,0,0,0,198,226,80,6,197,2,30,1,192,0,0,0,198,35,81,6,197,67,30,1,192,0,0,0,198,131,81,6,198,227,81,6,197,162,30,1,192,0,0,0,198,67,82,6,192,0,0,0,197,227,30,1,192,0,0,0,198,163,82,6,192,0,0,0,198,2,83,6,198,67,83,6,197,66,31,1,192,0,0,0,198,163,83,6,192,0,0,0,192,0,0,0,198,3,84,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,84,6,192,0,0,0,198,162,84,6,192,0,0,0,198,227,84,6,197,130,31,1,192,0,0,0,192,0,0,0,197,195,31,1,192,0,0,0,198,67,85,6,198,163,85,6,192,0,0,0,198,3,86,6,198,99,86,6,198,195,86,6,198,35,87,6,198,130,87,6,192,0,0,0,192,0,0,0,198,194,87,6,192,0,0,0,192,0,0,0,198,2,88,6,192,0,0,0,192,0,0,0,198,67,88,6,192,0,0,0,198,162,88,6,192,0,0,0,192,0,0,0,198,227,88,6,198,66,89,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,89,6,192,0,0,0,192,0,0,0,192,0,0,0,198,194,89,6,192,0,0,0,198,3,90,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,90,6,192,0,0,0,192,0,0,0,197,34,32,1,192,0,0,0,197,98,32,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,90,6,192,0,0,0,192,0,0,0,197,162,32,1,192,0,0,0,197,227,32,1,198,34,91,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,91,6,192,0,0,0,198,195,91,6,192,0,0,0,198,35,92,6,198,130,92,6,198,195,92,6,192,0,0,0,198,34,93,6,192,0,0,0,192,0,0,0,198,98,93,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,93,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,94,6,198,98,94,6,192,0,0,0,192,0,0,0,198,163,94,6,197,66,33,1,198,3,95,6,192,0,0,0,192,0,0,0,198,99,95,6,192,0,0,0,192,0,0,0,197,130,33,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,33,1,192,0,0,0,197,2,34,1,198,195,95,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,96,6,198,99,96,6,192,0,0,0,198,195,96,6,192,0,0,0,198,34,97,6,192,0,0,0,198,98,97,6,192,0,0,0,198,163,97,6,198,3,98,6,192,0,0,0,192,0,0,0,198,99,98,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,98,6,192,0,0,0,198,35,99,6,192,0,0,0,198,131,99,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,99,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,100,6,192,0,0,0,197,67,34,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,100,6,198,195,100,6,198,34,101,6,198,98,101,6,198,163,101,6,192,0,0,0,198,3,102,6,192,0,0,0,198,98,102,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,102,6,198,227,102,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,103,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,103,6,198,3,104,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,34,1,192,0,0,0,197,226,34,1,197,34,35,1,198,98,104,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,104,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,35,1,197,162,35,1,198,2,105,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,105,6,198,131,105,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,105,6,192,0,0,0,198,66,106,6,198,130,106,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,106,6,198,2,107,6,192,0,0,0,192,0,0,0,192,0,0,0,198,67,107,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,35,1,198,163,107,6,192,0,0,0,198,2,108,6,198,66,108,6,198,131,108,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,108,6,197,34,36,1,198,67,109,6,197,99,36,1,198,163,109,6,198,3,110,6,192,0,0,0,192,0,0,0,197,194,36,1,198,98,110,6,192,0,0,0,198,162,110,6,198,226,110,6,198,34,111,6,192,0,0,0,197,3,37,1,198,98,111,6,198,162,111,6,192,0,0,0,197,99,37,1,198,226,111,6,198,35,112,6,198,130,112,6,192,0,0,0,198,194,112,6,197,194,37,1,198,3,113,6,198,98,113,6,198,163,113,6,197,2,38,1,192,0,0,0,198,3,114,6,198,98,114,6,198,162,114,6,192,0,0,0,198,227,114,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,115,6,192,0,0,0,198,163,115,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,116,6,198,66,116,6,192,0,0,0,198,130,116,6,192,0,0,0,198,195,116,6,192,0,0,0,198,34,117,6,198,99,117,6,198,195,117,6,198,34,118,6,198,99,118,6,192,0,0,0,198,194,118,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,119,6,192,0,0,0,198,99,119,6,198,194,119,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,120,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,120,6,198,130,120,6,198,194,120,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,121,6,197,66,38,1,192,0,0,0,198,67,121,6,198,163,121,6,192,0,0,0,198,3,122,6,198,99,122,6,192,0,0,0,198,195,122,6,192,0,0,0,198,35,123,6,198,131,123,6,192,0,0,0,192,0,0,0,198,227,123,6,198,66,124,6,192,0,0,0,198,131,124,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,124,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,125,6,192,0,0,0,198,162,125,6,198,227,125,6,192,0,0,0,192,0,0,0,192,0,0,0,197,131,38,1,192,0,0,0,198,66,126,6,192,0,0,0,192,0,0,0,198,130,126,6,192,0,0,0,192,0,0,0,198,194,126,6,198,2,127,6,192,0,0,0,198,67,127,6,198,162,127,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,127,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,128,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,128,6,192,0,0,0,192,0,0,0,192,0,0,0,198,226,128,6,192,0,0,0,197,227,38,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,129,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,129,6,192,0,0,0,192,0,0,0,197,66,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,39,1,192,0,0,0,192,0,0,0,198,162,129,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,129,6,198,67,130,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,130,6,192,0,0,0,192,0,0,0,192,0,0,0,198,226,130,6,192,0,0,0,192,0,0,0,192,0,0,0,198,34,131,6,192,0,0,0,192,0,0,0,192,0,0,0,197,194,39,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,131,6,198,195,131,6,192,0,0,0,198,34,132,6,198,98,132,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,132,6,198,3,133,6,198,98,133,6,192,0,0,0,192,0,0,0,192,0,0,0,197,2,40,1,192,0,0,0,198,162,133,6,192,0,0,0,198,227,133,6,192,0,0,0,198,67,134,6,192,0,0,0,198,163,134,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,40,1,192,0,0,0,197,130,40,1,198,3,135,6,198,98,135,6,192,0,0,0,192,0,0,0,198,162,135,6,192,0,0,0,197,194,40,1,192,0,0,0,198,226,135,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,136,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,136,6,192,0,0,0,198,226,136,6,198,35,137,6,198,131,137,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,137,6,198,67,138,6,192,0,0,0,192,0,0,0,192,0,0,0,198,163,138,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,139,6,198,66,139,6,198,130,139,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,139,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,41,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,140,6,198,131,140,6,197,66,41,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,140,6,192,0,0,0,192,0,0,0,198,35,141,6,192,0,0,0,197,130,41,1,192,0,0,0,197,194,41,1,192,0,0,0,192,0,0,0,198,131,141,6,198,226,141,6,198,34,142,6,197,2,42,1,192,0,0,0,198,99,142,6,192,0,0,0,192,0,0,0,197,66,42,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,142,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,143,6,192,0,0,0,192,0,0,0,198,131,143,6,192,0,0,0,192,0,0,0,198,227,143,6,198,67,144,6,192,0,0,0,192,0,0,0,198,163,144,6,198,3,145,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,145,6,192,0,0,0,198,195,145,6,192,0,0,0,198,35,146,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,146,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,146,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,147,6,192,0,0,0,197,130,42,1,192,0,0,0,198,99,147,6,198,194,147,6,197,194,42,1,192,0,0,0,198,3,148,6,192,0,0,0,192,0,0,0,198,99,148,6,198,195,148,6,192,0,0,0,198,34,149,6,198,99,149,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,149,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,150,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,150,6,198,227,150,6,198,67,151,6,198,163,151,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,152,6,192,0,0,0,198,67,152,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,152,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,43,1,192,0,0,0,192,0,0,0,192,0,0,0,198,226,152,6,198,35,153,6,197,66,43,1,198,131,153,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,153,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,154,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,154,6,192,0,0,0,192,0,0,0,198,3,155,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,155,6,198,194,155,6,198,2,156,6,198,66,156,6,198,131,156,6,192,0,0,0,198,227,156,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,157,6,192,0,0,0,198,130,157,6,192,0,0,0,198,195,157,6,198,34,158,6,198,98,158,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,158,6,198,3,159,6,198,98,159,6,198,163,159,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,160,6,197,130,43,1,197,194,43,1,198,99,160,6,198,195,160,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,161,6,198,131,161,6,198,227,161,6,198,66,162,6,198,131,162,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,162,6,198,67,163,6,192,0,0,0,192,0,0,0,198,162,163,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,163,6,198,35,164,6,192,0,0,0,198,131,164,6,192,0,0,0,192,0,0,0,198,227,164,6,197,2,44,1,198,67,165,6,192,0,0,0,198,163,165,6,192,0,0,0,197,67,44,1,198,3,166,6,198,99,166,6,192,0,0,0,192,0,0,0,198,195,166,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,167,6,198,130,167,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,167,6,192,0,0,0,198,35,168,6,192,0,0,0,192,0,0,0,198,131,168,6,198,227,168,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,44,1,197,227,44,1,198,67,169,6,192,0,0,0,198,162,169,6,198,227,169,6,198,67,170,6,198,162,170,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,170,6,198,66,171,6,192,0,0,0,192,0,0,0,197,66,45,1,192,0,0,0,192,0,0,0,198,131,171,6,198,227,171,6,192,0,0,0,192,0,0,0,198,67,172,6,192,0,0,0,198,163,172,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,173,6,198,67,173,6,198,163,173,6,198,3,174,6,198,99,174,6,198,195,174,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,175,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,175,6,198,227,175,6,192,0,0,0,198,66,176,6,198,130,176,6,197,131,45,1,198,195,176,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,177,6,198,131,177,6,192,0,0,0,192,0,0,0,198,227,177,6,192,0,0,0,198,66,178,6,198,131,178,6,198,226,178,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,179,6,192,0,0,0,198,98,179,6,198,163,179,6,198,2,180,6,192,0,0,0,198,66,180,6,192,0,0,0,198,131,180,6,198,227,180,6,198,67,181,6,198,163,181,6,192,0,0,0,192,0,0,0,198,3,182,6,192,0,0,0,198,99,182,6,192,0,0,0,197,226,45,1,192,0,0,0,192,0,0,0,198,194,182,6,198,3,183,6,198,99,183,6,198,194,183,6,192,0,0,0,192,0,0,0,197,34,46,1,192,0,0,0,192,0,0,0,197,98,46,1,198,3,184,6,198,99,184,6,198,194,184,6,192,0,0,0,197,162,46,1,198,3,185,6,192,0,0,0,198,99,185,6,192,0,0,0,192,0,0,0,198,194,185,6,198,2,186,6,198,66,186,6,192,0,0,0,197,226,46,1,198,131,186,6,198,226,186,6,192,0,0,0,192,0,0,0,198,34,187,6,198,99,187,6,198,195,187,6,198,34,188,6,192,0,0,0,197,34,47,1,198,99,188,6,192,0,0,0,192,0,0,0,198,194,188,6,198,3,189,6,198,99,189,6,198,194,189,6,198,3,190,6,198,99,190,6,198,195,190,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,47,1,192,0,0,0,192,0,0,0,198,34,191,6,198,99,191,6,192,0,0,0,198,195,191,6,198,34,192,6,198,98,192,6,192,0,0,0,198,163,192,6,192,0,0,0,192,0,0,0,192,0,0,0,197,163,47,1,192,0,0,0,197,2,48,1,192,0,0,0,192,0,0,0,198,3,193,6,198,98,193,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,193,6,192,0,0,0,198,227,193,6,197,66,48,1,198,67,194,6,192,0,0,0,198,163,194,6,197,130,48,1,198,3,195,6,197,194,48,1,197,3,49,1,198,98,195,6,198,162,195,6,198,227,195,6,197,98,49,1,192,0,0,0,192,0,0,0,198,66,196,6,198,130,196,6,192,0,0,0,198,194,196,6,198,3,197,6,198,99,197,6,197,162,49,1,192,0,0,0,198,195,197,6,198,34,198,6,192,0,0,0,198,99,198,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,198,6,198,3,199,6,192,0,0,0,192,0,0,0,198,99,199,6,198,194,199,6,198,2,200,6,198,67,200,6,192,0,0,0,192,0,0,0,198,162,200,6,192,0,0,0,192,0,0,0,198,227,200,6,198,66,201,6,198,131,201,6,198,227,201,6,192,0,0,0,197,226,49,1,192,0,0,0,198,66,202,6,198,130,202,6,192,0,0,0,197,34,50,1,198,194,202,6,198,2,203,6,197,98,50,1,198,66,203,6,197,163,50,1,198,131,203,6,192,0,0,0,198,226,203,6,198,35,204,6,192,0,0,0,198,131,204,6,192,0,0,0,197,2,51,1,192,0,0,0,192,0,0,0,198,226,204,6,198,34,205,6,198,99,205,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,205,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,206,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,206,6,192,0,0,0,198,227,206,6,198,66,207,6,192,0,0,0,192,0,0,0,198,131,207,6,192,0,0,0,198,227,207,6,192,0,0,0,198,66,208,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,208,6,198,226,208,6,198,34,209,6,192,0,0,0,198,98,209,6,192,0,0,0,198,162,209,6,192,0,0,0,192,0,0,0,197,66,51,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,209,6,192,0,0,0,192,0,0,0,192,0,0,0,198,35,210,6,192,0,0,0,197,131,51,1,198,131,210,6,198,227,210,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,211,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,211,6,197,227,51,1,198,195,211,6,192,0,0,0,192,0,0,0,198,35,212,6,198,131,212,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,212,6,192,0,0,0,197,66,52,1,198,34,213,6,192,0,0,0,198,99,213,6,192,0,0,0,198,195,213,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,52,1,198,34,214,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,214,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,214,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,52,1,192,0,0,0,192,0,0,0,198,3,215,6,192,0,0,0,192,0,0,0,192,0,0,0,198,98,215,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,215,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,216,6,198,99,216,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,216,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,217,6,192,0,0,0,192,0,0,0,198,131,217,6,197,34,53,1,198,227,217,6,192,0,0,0,198,67,218,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,218,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,219,6,197,98,53,1,198,99,219,6,197,162,53,1,198,195,219,6,198,34,220,6,198,98,220,6,192,0,0,0,192,0,0,0,192,0,0,0,198,162,220,6,192,0,0,0,192,0,0,0,192,0,0,0,197,227,53,1,197,66,54,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,220,6,198,35,221,6,198,130,221,6,198,194,221,6,192,0,0,0,192,0,0,0,192,0,0,0,198,3,222,6,198,99,222,6,192,0,0,0,198,194,222,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,223,6,192,0,0,0,198,98,223,6,197,130,54,1,198,162,223,6,197,195,54,1,198,227,223,6,198,66,224,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,224,6,192,0,0,0,192,0,0,0,192,0,0,0,198,227,224,6,192,0,0,0,197,34,55,1,192,0,0,0,198,66,225,6,192,0,0,0,197,98,55,1,192,0,0,0,192,0,0,0,198,130,225,6,192,0,0,0,198,195,225,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,55,1,192,0,0,0,198,35,226,6,192,0,0,0,192,0,0,0,192,0,0,0,197,226,55,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,226,6,197,34,56,1,198,195,226,6,192,0,0,0,198,34,227,6,197,98,56,1,192,0,0,0,198,99,227,6,198,195,227,6,192,0,0,0,198,34,228,6,198,99,228,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,228,6,197,163,56,1,192,0,0,0,198,34,229,6,192,0,0,0,198,99,229,6,192,0,0,0,198,194,229,6,192,0,0,0,197,2,57,1,192,0,0,0,198,3,230,6,198,98,230,6,198,163,230,6,197,66,57,1,198,3,231,6,198,98,231,6,198,163,231,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,232,6,198,67,232,6,192,0,0,0,192,0,0,0,192,0,0,0,198,162,232,6,197,131,57,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,232,6,198,35,233,6,192,0,0,0,198,130,233,6,198,195,233,6,192,0,0,0,192,0,0,0,198,34,234,6,192,0,0,0,192,0,0,0,198,99,234,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,234,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,235,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,235,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,235,6,192,0,0,0,192,0,0,0,198,3,236,6,198,99,236,6,198,195,236,6,192,0,0,0,198,34,237,6,192,0,0,0,192,0,0,0,198,99,237,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,57,1,192,0,0,0,198,195,237,6,198,34,238,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,238,6,198,195,238,6,192,0,0,0,198,34,239,6,198,99,239,6,192,0,0,0,198,195,239,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,240,6,198,131,240,6,198,227,240,6,192,0,0,0,192,0,0,0,192,0,0,0,198,66,241,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,241,6,192,0,0,0,198,226,241,6,192,0,0,0,192,0,0,0,198,35,242,6,198,130,242,6,198,195,242,6,192,0,0,0,198,34,243,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,243,6,192,0,0,0,192,0,0,0,192,0,0,0,198,195,243,6,192,0,0,0,192,0,0,0,198,35,244,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,244,6,192,0,0,0,198,226,244,6,198,35,245,6,198,131,245,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,245,6,198,66,246,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,246,6,192,0,0,0,198,226,246,6,192,0,0,0,198,35,247,6,192,0,0,0,192,0,0,0,198,131,247,6,192,0,0,0,198,227,247,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,248,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,248,6,192,0,0,0,198,3,249,6,192,0,0,0,198,99,249,6,198,194,249,6,192,0,0,0,198,3,250,6,198,98,250,6,198,162,250,6,198,227,250,6,197,67,58,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,58,1,192,0,0,0,192,0,0,0,198,66,251,6,198,130,251,6,192,0,0,0,198,194,251,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,252,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,252,6,192,0,0,0,192,0,0,0,197,227,58,1,192,0,0,0,198,195,252,6,198,35,253,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,253,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,59,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,253,6,198,35,254,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,254,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,254,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,255,6,198,99,255,6,198,195,255,6,192,0,0,0,198,35,0,7,198,130,0,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,0,7,192,0,0,0,198,35,1,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,1,7,197,162,59,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,1,7,192,0,0,0,192,0,0,0,197,226,59,1,197,34,60,1,198,35,2,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,2,7,198,227,2,7,198,67,3,7,198,162,3,7,198,227,3,7,198,67,4,7,198,162,4,7,192,0,0,0,198,227,4,7,198,67,5,7,198,162,5,7,192,0,0,0,198,227,5,7,198,67,6,7,198,163,6,7,192,0,0,0,198,2,7,7,198,67,7,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,7,7,198,2,8,7,198,67,8,7,198,162,8,7,192,0,0,0,198,226,8,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,9,7,192,0,0,0,192,0,0,0,197,98,60,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,9,7,197,162,60,1,198,226,9,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,10,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,10,7,198,194,10,7,192,0,0,0,197,226,60,1,192,0,0,0,198,3,11,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,11,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,61,1,192,0,0,0,198,195,11,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,12,7,192,0,0,0,198,131,12,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,12,7,192,0,0,0,197,130,61,1,198,67,13,7,192,0,0,0,192,0,0,0,197,194,61,1,198,163,13,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,14,7,192,0,0,0,198,98,14,7,192,0,0,0,198,163,14,7,197,3,62,1,192,0,0,0,192,0,0,0,198,2,15,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,62,1,198,67,15,7,192,0,0,0,192,0,0,0,198,163,15,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,16,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,16,7,198,195,16,7,192,0,0,0,198,34,17,7,198,99,17,7,198,195,17,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,18,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,18,7,198,195,18,7,198,35,19,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,19,7,198,227,19,7,198,67,20,7,198,163,20,7,192,0,0,0,198,3,21,7,197,162,62,1,192,0,0,0,198,98,21,7,192,0,0,0,198,163,21,7,192,0,0,0,198,3,22,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,22,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,22,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,23,7,197,227,62,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,23,7,198,194,23,7,192,0,0,0,192,0,0,0,198,2,24,7,198,67,24,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,24,7,198,3,25,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,25,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,25,7,198,3,26,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,26,7,198,195,26,7,192,0,0,0,198,35,27,7,192,0,0,0,198,131,27,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,63,1,192,0,0,0,198,226,27,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,63,1,192,0,0,0,198,35,28,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,28,7,198,227,28,7,192,0,0,0,192,0,0,0,198,67,29,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,29,7,192,0,0,0,192,0,0,0,198,3,30,7,192,0,0,0,198,99,30,7,192,0,0,0,197,2,64,1,197,66,64,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,30,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,31,7,198,99,31,7,198,195,31,7,192,0,0,0,192,0,0,0,198,35,32,7,192,0,0,0,198,131,32,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,32,7,198,35,33,7,198,131,33,7,198,227,33,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,34,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,34,7,192,0,0,0,192,0,0,0,198,3,35,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,35,7,197,130,64,1,198,195,35,7,198,34,36,7,192,0,0,0,192,0,0,0,198,99,36,7,198,195,36,7,192,0,0,0,198,35,37,7,198,131,37,7,198,227,37,7,198,67,38,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,38,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,39,7,192,0,0,0,192,0,0,0,192,0,0,0,198,67,39,7,197,195,64,1,198,163,39,7,192,0,0,0,192,0,0,0,198,2,40,7,198,67,40,7,192,0,0,0,198,163,40,7,198,3,41,7,197,34,65,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,41,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,41,7,192,0,0,0,192,0,0,0,198,35,42,7,192,0,0,0,198,131,42,7,198,227,42,7,198,67,43,7,198,163,43,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,44,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,44,7,198,194,44,7,192,0,0,0,197,99,65,1,198,3,45,7,198,99,45,7,198,194,45,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,46,7,197,195,65,1,198,67,46,7,197,35,66,1,192,0,0,0,192,0,0,0,192,0,0,0,198,162,46,7,192,0,0,0,198,227,46,7,192,0,0,0,197,131,66,1,192,0,0,0,197,226,66,1,198,67,47,7,198,163,47,7,192,0,0,0,192,0,0,0,198,3,48,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,48,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,48,7,192,0,0,0,192,0,0,0,197,34,67,1,192,0,0,0,192,0,0,0,192,0,0,0,198,3,49,7,192,0,0,0,198,99,49,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,49,7,198,34,50,7,192,0,0,0,192,0,0,0,198,99,50,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,50,7,192,0,0,0,192,0,0,0,192,0,0,0,198,2,51,7,198,66,51,7,192,0,0,0,197,98,67,1,192,0,0,0,198,130,51,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,51,7,198,3,52,7,198,99,52,7,192,0,0,0,192,0,0,0,198,195,52,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,53,7,192,0,0,0,192,0,0,0,197,162,67,1,197,227,67,1,198,131,53,7,198,227,53,7,198,67,54,7,192,0,0,0,198,162,54,7,198,227,54,7,198,67,55,7,197,66,68,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,55,7,192,0,0,0,198,226,55,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,56,7,192,0,0,0,198,130,56,7,198,195,56,7,198,34,57,7,198,99,57,7,198,194,57,7,197,131,68,1,198,3,58,7,192,0,0,0,192,0,0,0,192,0,0,0,198,98,58,7,198,163,58,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,68,1,198,2,59,7,198,67,59,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,59,7,198,226,59,7,192,0,0,0,197,35,69,1,198,34,60,7,192,0,0,0,192,0,0,0,198,98,60,7,192,0,0,0,192,0,0,0,198,163,60,7,198,3,61,7,192,0,0,0,198,98,61,7,198,162,61,7,198,227,61,7,192,0,0,0,197,130,69,1,198,67,62,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,62,7,197,194,69,1,192,0,0,0,192,0,0,0,198,2,63,7,198,66,63,7,198,130,63,7,197,3,70,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,63,7,198,35,64,7,192,0,0,0,197,98,70,1,198,131,64,7,192,0,0,0,198,226,64,7,198,34,65,7,198,98,65,7,198,162,65,7,192,0,0,0,198,227,65,7,198,67,66,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,66,7,198,3,67,7,192,0,0,0,192,0,0,0,198,99,67,7,198,194,67,7,198,3,68,7,198,98,68,7,192,0,0,0,197,162,70,1,192,0,0,0,198,163,68,7,198,2,69,7,198,67,69,7,197,226,70,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,69,7,198,226,69,7,192,0,0,0,192,0,0,0,198,35,70,7,198,131,70,7,197,34,71,1,198,227,70,7,198,67,71,7,198,162,71,7,192,0,0,0,192,0,0,0,192,0,0,0,198,226,71,7,198,35,72,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,72,7,198,194,72,7,198,3,73,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,73,7,198,195,73,7,192,0,0,0,198,35,74,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,74,7,198,226,74,7,192,0,0,0,198,35,75,7,198,131,75,7,198,227,75,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,76,7,192,0,0,0,192,0,0,0,192,0,0,0,198,130,76,7,198,195,76,7,198,35,77,7,198,131,77,7,197,98,71,1,198,226,77,7,192,0,0,0,192,0,0,0,198,34,78,7,198,99,78,7,198,195,78,7,198,34,79,7,192,0,0,0,198,99,79,7,192,0,0,0,197,162,71,1,198,194,79,7,192,0,0,0,198,3,80,7,192,0,0,0,192,0,0,0,198,99,80,7,192,0,0,0,192,0,0,0,198,195,80,7,192,0,0,0,197,226,71,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,81,7,192,0,0,0,192,0,0,0,198,131,81,7,198,226,81,7,192,0,0,0,192,0,0,0,198,35,82,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,82,7,192,0,0,0,198,226,82,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,72,1,198,35,83,7,192,0,0,0,192,0,0,0,192,0,0,0,197,98,72,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,83,7,192,0,0,0,198,226,83,7,192,0,0,0,197,162,72,1,192,0,0,0,198,35,84,7,198,130,84,7,192,0,0,0,192,0,0,0,198,194,84,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,85,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,85,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,85,7,198,35,86,7,198,131,86,7,198,227,86,7,198,66,87,7,192,0,0,0,198,130,87,7,198,194,87,7,198,3,88,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,88,7,192,0,0,0,198,195,88,7,197,227,72,1,192,0,0,0,192,0,0,0,192,0,0,0,198,35,89,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,89,7,197,66,73,1,198,226,89,7,192,0,0,0,198,35,90,7,192,0,0,0,192,0,0,0,198,131,90,7,192,0,0,0,198,227,90,7,192,0,0,0,192,0,0,0,192,0,0,0,198,66,91,7,197,130,73,1,192,0,0,0,192,0,0,0,198,130,91,7,198,195,91,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,73,1,192,0,0,0,198,35,92,7,192,0,0,0,198,131,92,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,92,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,93,7,192,0,0,0,192,0,0,0,198,130,93,7,192,0,0,0,192,0,0,0,198,194,93,7,192,0,0,0,198,3,94,7,192,0,0,0,192,0,0,0,198,99,94,7,198,195,94,7,198,35,95,7,192,0,0,0,192,0,0,0,192,0,0,0,198,130,95,7,192,0,0,0,192,0,0,0,198,194,95,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,96,7,198,99,96,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,96,7,192,0,0,0,198,35,97,7,192,0,0,0,192,0,0,0,198,131,97,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,74,1,192,0,0,0,198,227,97,7,192,0,0,0,192,0,0,0,198,67,98,7,192,0,0,0,192,0,0,0,198,163,98,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,99,7,192,0,0,0,192,0,0,0,198,66,99,7,198,130,99,7,198,195,99,7,192,0,0,0,198,35,100,7,198,130,100,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,100,7,198,2,101,7,192,0,0,0,192,0,0,0,198,67,101,7,198,162,101,7,198,227,101,7,192,0,0,0,198,67,102,7,198,162,102,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,102,7,198,67,103,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,103,7,197,66,74,1,197,131,74,1,198,3,104,7,198,99,104,7,192,0,0,0,198,195,104,7,198,35,105,7,192,0,0,0,198,130,105,7,192,0,0,0,198,195,105,7,192,0,0,0,198,35,106,7,198,130,106,7,198,194,106,7,198,3,107,7,197,226,74,1,198,99,107,7,198,195,107,7,198,35,108,7,192,0,0,0,192,0,0,0,198,131,108,7,197,34,75,1,198,227,108,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,109,7,192,0,0,0,192,0,0,0,197,99,75,1,192,0,0,0,198,163,109,7,192,0,0,0,192,0,0,0,197,194,75,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,110,7,192,0,0,0,198,66,110,7,197,2,76,1,192,0,0,0,197,67,76,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,110,7,198,227,110,7,197,162,76,1,192,0,0,0,198,67,111,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,111,7,192,0,0,0,192,0,0,0,198,226,111,7,192,0,0,0,192,0,0,0,192,0,0,0,198,34,112,7,197,226,76,1,198,99,112,7,192,0,0,0,192,0,0,0,198,194,112,7,197,34,77,1,198,3,113,7,198,99,113,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,113,7,198,35,114,7,198,131,114,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,114,7,198,67,115,7,198,163,115,7,192,0,0,0,192,0,0,0,192,0,0,0,198,2,116,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,77,1,198,66,116,7,198,130,116,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,116,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,117,7,198,131,117,7,198,226,117,7,192,0,0,0,198,35,118,7,198,131,118,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,118,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,119,7,192,0,0,0,198,163,119,7,192,0,0,0,198,2,120,7,198,67,120,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,120,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,120,7,192,0,0,0,198,66,121,7,192,0,0,0,192,0,0,0,198,131,121,7,192,0,0,0,192,0,0,0,198,226,121,7,192,0,0,0,197,162,77,1,192,0,0,0,192,0,0,0,197,226,77,1,192,0,0,0,198,34,122,7,192,0,0,0,198,99,122,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,122,7,198,3,123,7,192,0,0,0,192,0,0,0,198,99,123,7,192,0,0,0,198,195,123,7,198,34,124,7,192,0,0,0,192,0,0,0,192,0,0,0,198,99,124,7,198,195,124,7,192,0,0,0,192,0,0,0,198,35,125,7,198,130,125,7,192,0,0,0,198,195,125,7,198,35,126,7,198,131,126,7,192,0,0,0,198,227,126,7,192,0,0,0,192,0,0,0,198,66,127,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,127,7,198,226,127,7,198,34,128,7,198,99,128,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,128,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,129,7,198,99,129,7,192,0,0,0,198,194,129,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,130,7,192,0,0,0,198,98,130,7,198,162,130,7,198,226,130,7,198,35,131,7,192,0,0,0,192,0,0,0,197,34,78,1,192,0,0,0,197,98,78,1,192,0,0,0,192,0,0,0,192,0,0,0,198,131,131,7,192,0,0,0,198,227,131,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,132,7,198,162,132,7,198,227,132,7,192,0,0,0,198,67,133,7,192,0,0,0,198,162,133,7,192,0,0,0,198,227,133,7,192,0,0,0,198,67,134,7,197,162,78,1,192,0,0,0,198,163,134,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,135,7,192,0,0,0,192,0,0,0,197,226,78,1,197,34,79,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,135,7,192,0,0,0,192,0,0,0,198,195,135,7,192,0,0,0,192,0,0,0,198,34,136,7,198,99,136,7,192,0,0,0,197,98,79,1,198,195,136,7,198,35,137,7,192,0,0,0,192,0,0,0,198,130,137,7,198,194,137,7,198,2,138,7,192,0,0,0,198,67,138,7,198,162,138,7,192,0,0,0,198,227,138,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,139,7,192,0,0,0,198,163,139,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,140,7,198,66,140,7,198,131,140,7,198,227,140,7,192,0,0,0,192,0,0,0,192,0,0,0,197,163,79,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,141,7,192,0,0,0,198,163,141,7,192,0,0,0,192,0,0,0,198,3,142,7,192,0,0,0,192,0,0,0,192,0,0,0,198,98,142,7,198,162,142,7,198,227,142,7,192,0,0,0,198,67,143,7,198,162,143,7,192,0,0,0,197,2,80,1,198,227,143,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,144,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,144,7,192,0,0,0,192,0,0,0,198,2,145,7,192,0,0,0,192,0,0,0,192,0,0,0,198,66,145,7,198,131,145,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,145,7,198,34,146,7,198,98,146,7,198,162,146,7,192,0,0,0,192,0,0,0,198,226,146,7,192,0,0,0,192,0,0,0,198,34,147,7,198,98,147,7,192,0,0,0,198,162,147,7,198,227,147,7,198,66,148,7,198,130,148,7,198,194,148,7,192,0,0,0,192,0,0,0,198,3,149,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,149,7,192,0,0,0,198,195,149,7,192,0,0,0,192,0,0,0,197,66,80,1,198,35,150,7,192,0,0,0,192,0,0,0,198,131,150,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,150,7,192,0,0,0,192,0,0,0,198,67,151,7,192,0,0,0,198,163,151,7,192,0,0,0,198,3,152,7,192,0,0,0,198,99,152,7,198,195,152,7,198,34,153,7,198,99,153,7,198,194,153,7,192,0,0,0,192,0,0,0,198,3,154,7,192,0,0,0,192,0,0,0,198,98,154,7,192,0,0,0,198,162,154,7,198,226,154,7,198,34,155,7,192,0,0,0,198,98,155,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,155,7,192,0,0,0,198,227,155,7,198,67,156,7,192,0,0,0,198,162,156,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,156,7,192,0,0,0,198,67,157,7,192,0,0,0,192,0,0,0,198,163,157,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,158,7,197,130,80,1,198,98,158,7,198,163,158,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,159,7,192,0,0,0,198,67,159,7,198,162,159,7,198,227,159,7,197,194,80,1,198,67,160,7,198,162,160,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,81,1,192,0,0,0,198,227,160,7,197,66,81,1,198,67,161,7,198,163,161,7,192,0,0,0,192,0,0,0,198,3,162,7,192,0,0,0,192,0,0,0,198,98,162,7,192,0,0,0,197,131,81,1,198,162,162,7,192,0,0,0,198,227,162,7,198,67,163,7,192,0,0,0,192,0,0,0,192,0,0,0,197,226,81,1,192,0,0,0,192,0,0,0,197,34,82,1,192,0,0,0,198,163,163,7,198,2,164,7,192,0,0,0,192,0,0,0,192,0,0,0,197,99,82,1,197,194,82,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,164,7,192,0,0,0,198,162,164,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,83,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,83,1,198,226,164,7,192,0,0,0,192,0,0,0,198,35,165,7,192,0,0,0,192,0,0,0,198,131,165,7,198,226,165,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,166,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,166,7,192,0,0,0,198,195,166,7,192,0,0,0,198,34,167,7,197,130,83,1,192,0,0,0,198,99,167,7,198,194,167,7,198,2,168,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,83,1,192,0,0,0,198,67,168,7,192,0,0,0,198,163,168,7,192,0,0,0,198,3,169,7,198,98,169,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,169,7,192,0,0,0,198,226,169,7,198,35,170,7,192,0,0,0,197,2,84,1,192,0,0,0,197,66,84,1,192,0,0,0,198,131,170,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,84,1,198,227,170,7,198,66,171,7,192,0,0,0,197,194,84,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,171,7,192,0,0,0,192,0,0,0,198,227,171,7,198,67,172,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,172,7,198,3,173,7,192,0,0,0,198,98,173,7,192,0,0,0,192,0,0,0,198,162,173,7,192,0,0,0,198,227,173,7,192,0,0,0,192,0,0,0,192,0,0,0,198,67,174,7,192,0,0,0,198,163,174,7,198,3,175,7,198,98,175,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,175,7,192,0,0,0,192,0,0,0,198,3,176,7,198,99,176,7,192,0,0,0,192,0,0,0,192,0,0,0,198,194,176,7,198,3,177,7,197,3,85,1,197,98,85,1,192,0,0,0,192,0,0,0,192,0,0,0,198,98,177,7,198,163,177,7,192,0,0,0,198,3,178,7,198,99,178,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,178,7,192,0,0,0,198,34,179,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,179,7,198,163,179,7,198,3,180,7,198,99,180,7,198,194,180,7,192,0,0,0,192,0,0,0,198,2,181,7,192,0,0,0,192,0,0,0,198,66,181,7,192,0,0,0,198,131,181,7,198,227,181,7,197,162,85,1,192,0,0,0,198,66,182,7,192,0,0,0,192,0,0,0,198,130,182,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,182,7,192,0,0,0,198,34,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,183,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,184,7,192,0,0,0,192,0,0,0,198,131,184,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,184,7,192,0,0,0,192,0,0,0,198,66,185,7,198,130,185,7,198,194,185,7,192,0,0,0,192,0,0,0,192,0,0,0,198,3,186,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,186,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,186,7,198,2,187,7,192,0,0,0,198,66,187,7,198,130,187,7,192,0,0,0,197,226,85,1,198,195,187,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,188,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,188,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,188,7,192,0,0,0,192,0,0,0,198,2,189,7,198,66,189,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,86,1,192,0,0,0,198,131,189,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,189,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,190,7,192,0,0,0,198,99,190,7,192,0,0,0,192,0,0,0,192,0,0,0,198,195,190,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,191,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,191,7,192,0,0,0,198,195,191,7,192,0,0,0,198,34,192,7,197,98,86,1,192,0,0,0,192,0,0,0,198,99,192,7,192,0,0,0,198,195,192,7,198,34,193,7,192,0,0,0,197,162,86,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,193,7,197,227,86,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,193,7,198,227,193,7,198,67,194,7,192,0,0,0,198,163,194,7,198,2,195,7,192,0,0,0,192,0,0,0,198,67,195,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,195,7,198,2,196,7,198,67,196,7,192,0,0,0,192,0,0,0,197,66,87,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,196,7,192,0,0,0,198,3,197,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,197,7,192,0,0,0,192,0,0,0,198,195,197,7,198,35,198,7,192,0,0,0,192,0,0,0,192,0,0,0,198,131,198,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,87,1,192,0,0,0,192,0,0,0,198,227,198,7,192,0,0,0,192,0,0,0,192,0,0,0,198,66,199,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,130,199,7,192,0,0,0,192,0,0,0,198,195,199,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,200,7,198,99,200,7,198,194,200,7,192,0,0,0,198,2,201,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,201,7,198,163,201,7,192,0,0,0,198,3,202,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,202,7,192,0,0,0,192,0,0,0,198,195,202,7,198,34,203,7,198,99,203,7,198,194,203,7,192,0,0,0,192,0,0,0,198,3,204,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,204,7,192,0,0,0,192,0,0,0,198,194,204,7,192,0,0,0,192,0,0,0,198,3,205,7,197,194,87,1,192,0,0,0,198,99,205,7,192,0,0,0,192,0,0,0,192,0,0,0,197,2,88,1,192,0,0,0,192,0,0,0,192,0,0,0,198,194,205,7,192,0,0,0,192,0,0,0,198,3,206,7,192,0,0,0,198,99,206,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,206,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,207,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,207,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,207,7,197,66,88,1,192,0,0,0,197,130,88,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,208,7,192,0,0,0,198,131,208,7,198,227,208,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,209,7,198,130,209,7,192,0,0,0,198,195,209,7,198,34,210,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,210,7,192,0,0,0,192,0,0,0,198,195,210,7,192,0,0,0,192,0,0,0,198,35,211,7,198,130,211,7,192,0,0,0,198,195,211,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,212,7,192,0,0,0,192,0,0,0,192,0,0,0,198,130,212,7,192,0,0,0,192,0,0,0,198,195,212,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,213,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,213,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,213,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,214,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,214,7,192,0,0,0,192,0,0,0,198,227,214,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,215,7,192,0,0,0,192,0,0,0,198,163,215,7,192,0,0,0,192,0,0,0,198,3,216,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,88,1,198,98,216,7,192,0,0,0,192,0,0,0,198,163,216,7,198,2,217,7,192,0,0,0,198,67,217,7,192,0,0,0,192,0,0,0,192,0,0,0,198,162,217,7,192,0,0,0,198,227,217,7,198,66,218,7,192,0,0,0,198,130,218,7,192,0,0,0,192,0,0,0,198,194,218,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,219,7,192,0,0,0,192,0,0,0,198,66,219,7,198,130,219,7,192,0,0,0,198,194,219,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,220,7,192,0,0,0,192,0,0,0,198,67,220,7,198,163,220,7,198,3,221,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,221,7,198,194,221,7,197,34,89,1,198,3,222,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,89,1,198,99,222,7,198,194,222,7,192,0,0,0,192,0,0,0,197,195,89,1,192,0,0,0,198,3,223,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,223,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,223,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,224,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,224,7,198,195,224,7,198,34,225,7,192,0,0,0,198,99,225,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,225,7,192,0,0,0,198,3,226,7,192,0,0,0,197,35,90,1,192,0,0,0,198,99,226,7,192,0,0,0,198,195,226,7,192,0,0,0,198,35,227,7,198,130,227,7,192,0,0,0,197,130,90,1,192,0,0,0,198,194,227,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,228,7,198,66,228,7,192,0,0,0,192,0,0,0,198,131,228,7,192,0,0,0,198,226,228,7,198,34,229,7,198,99,229,7,192,0,0,0,192,0,0,0,192,0,0,0,197,194,90,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,229,7,198,3,230,7,198,99,230,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,230,7,198,3,231,7,192,0,0,0,192,0,0,0,192,0,0,0,198,98,231,7,198,163,231,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,232,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,232,7,198,195,232,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,233,7,192,0,0,0,198,98,233,7,197,2,91,1,198,162,233,7,192,0,0,0,192,0,0,0,192,0,0,0,197,67,91,1,192,0,0,0,198,227,233,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,91,1,198,66,234,7,197,2,92,1,198,131,234,7,198,226,234,7,197,67,92,1,192,0,0,0,192,0,0,0,198,35,235,7,192,0,0,0,198,130,235,7,192,0,0,0,198,195,235,7,192,0,0,0,198,35,236,7,198,130,236,7,198,195,236,7,198,34,237,7,198,99,237,7,192,0,0,0,197,163,92,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,237,7,192,0,0,0,192,0,0,0,198,35,238,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,238,7,198,227,238,7,192,0,0,0,192,0,0,0,198,67,239,7,192,0,0,0,198,162,239,7,198,227,239,7,198,67,240,7,198,163,240,7,192,0,0,0,192,0,0,0,198,3,241,7,198,99,241,7,198,194,241,7,198,3,242,7,192,0,0,0,198,99,242,7,198,195,242,7,192,0,0,0,198,34,243,7,192,0,0,0,198,98,243,7,192,0,0,0,192,0,0,0,198,162,243,7,198,227,243,7,198,66,244,7,198,131,244,7,192,0,0,0,192,0,0,0,192,0,0,0,198,227,244,7,192,0,0,0,198,66,245,7,192,0,0,0,192,0,0,0,198,130,245,7,192,0,0,0,192,0,0,0,192,0,0,0,198,194,245,7,192,0,0,0,198,2,246,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,246,7,192,0,0,0,198,131,246,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,246,7,198,66,247,7,192,0,0,0,192,0,0,0,198,130,247,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,247,7,192,0,0,0,192,0,0,0,192,0,0,0,198,35,248,7,198,131,248,7,192,0,0,0,198,226,248,7,192,0,0,0,192,0,0,0,198,35,249,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,93,1,198,130,249,7,192,0,0,0,192,0,0,0,198,194,249,7,192,0,0,0,192,0,0,0,192,0,0,0,197,66,93,1,192,0,0,0,198,3,250,7,197,131,93,1,192,0,0,0,198,99,250,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,93,1,198,194,250,7,198,3,251,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,251,7,198,195,251,7,192,0,0,0,198,34,252,7,198,99,252,7,198,195,252,7,198,34,253,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,253,7,192,0,0,0,192,0,0,0,192,0,0,0,198,163,253,7,198,3,254,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,254,7,198,195,254,7,192,0,0,0,198,35,255,7,192,0,0,0,198,131,255,7,192,0,0,0,198,227,255,7,198,67,0,8,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,0,8,198,226,0,8,192,0,0,0,192,0,0,0,198,35,1,8,192,0,0,0,197,34,94,1,192,0,0,0,192,0,0,0,198,130,1,8,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,101,6,198,131,181,2,198,226,152,6,198,162,114,6,197,195,168,0,197,99,0,0,198,226,180,0,198,162,0,8,198,162,0,8,198,130,49,1,198,163,231,6,198,98,216,0,198,98,48,1,198,226,31,2,198,194,79,4,198,66,61,5,198,98,233,5,198,2,5,6,198,162,31,6,198,226,204,6,198,3,9,3,198,99,87,3,198,35,192,3,198,99,4,4,198,227,186,5,198,99,222,6,198,131,150,7,198,3,13,0,198,131,169,0,198,195,31,3,198,67,219,3,198,99,232,5,198,99,225,7,198,227,153,1,198,227,167,3,198,99,223,5,198,131,40,6,198,35,58,2,198,3,125,5,198,35,12,6,198,163,190,1,198,99,186,2,198,3,95,3,198,67,239,3,192,0,0,0,198,2,47,0,198,99,116,0,198,66,151,0,198,226,107,2,198,34,27,3,198,66,218,3,198,66,94,4,198,130,75,5,198,162,228,5,198,66,234,5,198,162,135,6,198,226,82,7,198,162,183,7,198,194,222,7,198,227,131,4,198,131,155,4,198,227,15,5,198,131,178,5,198,195,0,7,198,35,227,7,198,227,77,6,198,99,39,1,198,227,198,1,198,227,232,4,198,227,87,5,198,162,228,3,198,194,137,4,198,98,113,6,198,226,74,7,198,162,37,1,198,2,132,1,198,66,11,3,198,34,106,3,198,162,140,3,198,2,2,5,198,34,37,5,198,194,51,7,198,35,149,0,198,35,90,5,198,67,120,0,198,195,118,0,198,227,171,4,198,35,22,5,198,35,182,5,198,99,57,7,198,195,95,6,198,130,59,2,198,3,9,3,198,163,82,6,198,3,7,0,198,131,115,1,198,34,230,1,198,99,249,3,198,2,55,4,198,195,157,0,198,131,143,4,198,227,51,0,198,3,219,1,198,162,2,0,197,3,157,0,198,2,129,2,198,195,0,5,198,131,176,0,198,226,24,1,198,3,98,4,198,131,187,5,198,227,73,6,198,195,48,3,198,3,174,6,197,99,154,0,198,67,66,2,198,35,157,5,198,227,82,2,198,131,53,4,198,131,20,0,198,3,107,0,198,195,117,0,198,3,226,2,198,3,248,4,198,67,141,5,198,131,77,6,198,3,231,6,197,194,25,0,197,194,35,0,197,34,63,0,197,226,87,0,197,130,124,0,197,2,175,0,197,162,220,0,197,34,65,1,197,194,82,1,197,194,90,1,197,2,92,1,198,99,143,0,198,35,176,2,198,227,40,3,198,227,169,6,198,67,181,1,198,131,20,2,198,131,33,2,198,195,102,2,198,99,143,3,198,195,198,3,198,131,28,4,198,227,163,4,198,195,28,5,198,195,84,5,198,35,161,6,198,3,203,5,198,195,190,6,198,67,8,7,198,99,127,0,198,99,144,0,198,163,201,0,198,227,190,3,198,163,26,6,198,227,73,6,198,67,190,1,198,195,227,1,198,67,78,2,198,163,46,3,198,99,229,4,198,195,246,3,198,3,28,0,198,195,243,0,198,131,115,1,198,163,160,1,198,195,231,1,198,67,255,3,198,3,24,4,198,131,64,5,198,99,82,5,198,99,238,6,198,131,74,7,198,35,84,7,198,227,108,7,198,226,47,0,198,130,159,4,198,34,228,6,198,98,65,7,198,195,255,1,198,98,13,0,198,66,86,0,198,34,117,1,198,66,127,1,198,226,131,2,198,3,9,3,198,130,211,3,198,194,74,4,198,130,204,5,198,66,202,6,198,99,254,7,197,35,128,0,198,195,49,7,198,194,141,0,198,194,198,2,198,66,211,2,198,130,91,3,198,162,128,3,198,162,11,4,198,130,51,4,198,226,129,4,198,2,253,4,198,2,116,7,198,35,108,0,198,35,40,2,198,3,58,7,198,195,69,0,198,99,149,1,198,99,109,3,198,131,162,6,198,3,215,1,198,67,9,2,198,67,214,2,198,99,249,3,198,67,59,7,198,130,129,0,198,98,187,0,198,162,132,1,198,131,150,2,198,98,193,2,198,34,230,2,198,130,82,3,198,34,11,4,198,98,66,4,198,2,60,5,198,2,28,6,198,2,30,6,198,98,230,6,198,226,71,7,198,195,160,0,198,35,133,3,198,163,188,0,198,195,211,3,198,163,29,4,198,163,226,5,198,163,62,7,198,131,198,7,198,99,230,7,198,35,202,2,198,131,104,3,198,131,127,5,198,3,192,4,198,67,201,4,198,3,237,4,198,99,234,3,198,98,186,3,198,35,92,6,198,131,22,0,198,2,167,5,198,98,132,0,198,35,125,0,198,194,186,1,198,163,60,2,198,163,244,4,198,195,100,1,198,195,87,3,197,67,129,0,198,131,164,6,198,163,15,6,198,99,52,7,198,227,43,6,198,227,191,1,198,67,100,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,24,1,192,0,0,0,198,67,165,2,192,0,0,0,192,0,0,0,197,130,19,0,197,66,193,0,198,195,89,4,192,0,0,0,198,35,153,4,198,67,154,4,198,67,157,4,198,99,85,7,198,99,243,4,198,162,67,5,192,0,0,0,192,0,0,0,192,0,0,0,197,162,30,1,192,0,0,0,192,0,0,0,198,163,192,6,198,98,214,6,192,0,0,0,192,0,0,0,192,0,0,0,198,131,126,7,198,226,127,7,198,227,132,7,197,195,88,1,198,195,211,6,198,34,65,7,198,226,50,0,198,99,87,0,198,131,103,0,198,3,148,0,198,195,152,0,198,66,164,0,198,99,218,0,198,99,225,0,198,130,232,0,198,227,20,1,198,67,32,1,198,67,132,1,192,0,0,0,197,226,99,0,198,194,14,2,198,35,20,2,198,131,31,2,198,3,124,2,192,0,0,0,198,130,168,2,198,194,226,2,197,98,161,0,197,98,165,0,198,3,143,3,198,162,203,3,192,0,0,0,198,3,13,4,198,226,132,4,198,34,148,4,198,2,150,4,198,194,149,4,198,162,150,4,198,194,151,4,198,195,152,4,197,98,222,0,198,227,156,4,198,3,176,4,198,99,182,4,198,227,218,4,198,195,28,5,198,227,29,5,198,99,38,5,198,34,59,5,198,66,76,5,197,162,249,0,192,0,0,0,192,0,0,0,197,98,4,1,198,131,33,6,198,226,44,6,198,67,83,6,198,3,90,6,198,163,115,6,198,163,121,6,192,0,0,0,198,163,192,6,198,35,72,7,198,163,103,7,198,67,111,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,5,0,192,0,0,0,198,163,106,0,192,0,0,0,198,195,101,0,198,130,110,0,198,163,147,0,198,195,153,0,198,99,218,0,192,0,0,0,197,2,44,0,198,195,223,0,198,131,24,1,198,35,34,1,198,195,47,1,198,3,50,1,198,98,73,1,198,34,90,1,192,0,0,0,192,0,0,0,198,226,209,1,198,34,220,1,198,227,253,1,192,0,0,0,197,34,104,0,198,35,20,2,198,98,13,2,198,131,31,2,198,66,41,2,197,130,116,0,198,162,93,2,192,0,0,0,198,66,125,2,198,67,165,2,198,99,186,2,198,195,186,2,198,163,194,2,192,0,0,0,198,195,48,3,198,130,91,3,192,0,0,0,198,98,135,3,198,3,143,3,198,35,176,3,198,162,203,3,192,0,0,0,198,195,221,3,198,67,233,3,197,66,193,0,198,163,25,4,192,0,0,0,192,0,0,0,192,0,0,0,198,67,71,4,198,195,89,4,198,99,91,4,198,35,96,4,192,0,0,0,198,67,105,4,192,0,0,0,192,0,0,0,198,227,218,4,192,0,0,0,198,226,7,5,198,195,28,5,198,131,52,5,198,66,76,5,197,67,255,0,197,2,2,1,192,0,0,0,198,99,37,6,198,67,43,6,198,226,44,6,198,34,75,6,197,162,30,1,198,195,76,6,198,67,83,6,198,163,82,6,197,194,29,1,198,3,90,6,198,99,96,6,198,163,121,6,198,226,163,6,198,162,200,6,192,0,0,0,192,0,0,0,198,98,58,7,198,35,72,7,198,99,85,7,192,0,0,0,198,163,103,7,192,0,0,0,198,67,111,7,198,227,173,7,198,162,0,8,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,254,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,50,0,198,131,51,0,198,227,61,0,192,0,0,0,198,130,79,0,198,99,87,0,198,67,85,0,192,0,0,0,192,0,0,0,198,131,103,0,192,0,0,0,192,0,0,0,198,130,109,0,192,0,0,0,192,0,0,0,198,98,106,0,198,226,111,0,192,0,0,0,198,99,113,0,198,35,114,0,192,0,0,0,198,67,115,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,124,0,192,0,0,0,198,163,132,0,192,0,0,0,197,163,22,0,198,35,140,0,192,0,0,0,198,163,147,0,198,3,148,0,198,195,152,0,198,195,153,0,198,2,156,0,192,0,0,0,198,195,157,0,197,66,28,0,198,66,164,0,198,67,165,0,198,195,168,0,198,67,171,0,198,3,172,0,198,3,172,0,198,3,172,0,192,0,0,0,197,34,177,0,198,195,177,0,198,194,179,0,192,0,0,0,198,2,182,0,198,131,183,0,192,0,0,0,192,0,0,0,197,99,34,0,198,67,192,0,198,226,194,0,198,99,200,0,192,0,0,0,198,3,208,0,198,2,212,0,197,195,42,0,198,163,215,0,198,163,215,0,197,2,44,0,198,227,219,0,192,0,0,0,192,0,0,0,198,2,248,0,198,99,225,0,192,0,0,0,192,0,0,0,198,35,234,0,198,35,125,0,192,0,0,0,198,131,8,1,198,195,11,1,192,0,0,0,198,195,3,1,192,0,0,0,198,194,19,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,3,42,1,198,2,44,1,198,67,44,1,198,34,51,1,192,0,0,0,192,0,0,0,197,66,66,0,198,130,68,1,198,2,70,1,192,0,0,0,198,2,74,1,192,0,0,0,192,0,0,0,198,66,88,1,198,3,92,1,198,3,92,1,192,0,0,0,198,163,110,1,197,226,74,0,198,131,115,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,131,1,192,0,0,0,198,194,142,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,164,1,198,34,165,1,192,0,0,0,198,67,168,1,198,66,172,1,198,98,174,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,187,1,198,66,188,1,198,163,190,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,250,0,198,66,202,1,198,66,202,1,192,0,0,0,192,0,0,0,192,0,0,0,198,99,208,1,198,34,210,1,192,0,0,0,192,0,0,0,198,227,222,1,198,162,223,1,192,0,0,0,198,35,242,1,192,0,0,0,192,0,0,0,197,226,99,0,192,0,0,0,198,163,251,1,198,66,10,2,197,67,106,0,192,0,0,0,197,67,106,0,198,162,17,2,198,35,20,2,198,3,25,2,198,67,22,2,198,163,24,2,198,67,30,2,198,131,31,2,198,226,31,2,198,131,35,2,192,0,0,0,192,0,0,0,198,34,55,2,198,3,61,2,198,99,74,2,192,0,0,0,198,3,71,2,192,0,0,0,198,194,75,2,198,226,78,2,192,0,0,0,192,0,0,0,198,227,93,2,192,0,0,0,198,67,84,2,192,0,0,0,198,34,98,2,192,0,0,0,197,226,119,0,192,0,0,0,192,0,0,0,198,3,124,2,198,3,127,2,192,0,0,0,198,226,141,2,198,66,182,2,198,99,158,2,192,0,0,0,198,130,168,2,192,0,0,0,192,0,0,0,198,130,112,0,198,3,113,0,197,226,131,0,192,0,0,0,198,131,94,5,192,0,0,0,198,99,186,2,198,195,186,2,192,0,0,0,198,66,195,2,197,34,133,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,194,226,2,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,245,2,192,0,0,0,198,130,6,3,192,0,0,0,192,0,0,0,198,99,27,3,192,0,0,0,198,98,34,3,192,0,0,0,197,226,148,0,192,0,0,0,198,162,40,3,192,0,0,0,198,195,48,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,60,3,192,0,0,0,198,227,75,3,192,0,0,0,192,0,0,0,192,0,0,0,197,226,160,0,197,98,161,0,198,130,91,3,197,34,161,0,197,163,161,0,198,131,96,3,192,0,0,0,192,0,0,0,198,67,117,3,198,99,125,3,192,0,0,0,198,98,135,3,192,0,0,0,192,0,0,0,198,131,112,3,198,226,152,3,192,0,0,0,192,0,0,0,198,227,164,3,192,0,0,0,198,35,176,3,198,3,175,3,192,0,0,0,192,0,0,0,198,226,183,3,192,0,0,0,198,67,188,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,220,3,198,195,221,3,192,0,0,0,192,0,0,0,198,226,230,3,192,0,0,0,192,0,0,0,192,0,0,0,198,195,247,3,198,99,250,3,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,200,0,198,163,25,4,192,0,0,0,198,3,35,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,55,4,192,0,0,0,198,194,70,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,96,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,100,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,67,111,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,131,4,192,0,0,0,192,0,0,0,192,0,0,0,198,194,151,4,192,0,0,0,192,0,0,0,198,67,157,4,198,195,167,4,192,0,0,0,198,3,176,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,163,219,4,198,99,220,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,250,4,192,0,0,0,198,35,9,5,192,0,0,0,197,162,234,0,192,0,0,0,198,98,39,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,73,5,198,66,76,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,85,5,192,0,0,0,192,0,0,0,198,163,95,5,192,0,0,0,192,0,0,0,198,2,107,5,198,227,78,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,250,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,144,5,198,66,146,5,192,0,0,0,197,34,253,0,198,195,150,5,198,98,152,5,198,130,157,5,192,0,0,0,198,35,157,5,198,226,163,5,192,0,0,0,192,0,0,0,198,34,164,5,198,99,176,5,192,0,0,0,197,98,4,1,192,0,0,0,198,227,178,5,198,67,179,5,198,194,180,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,195,203,5,192,0,0,0,192,0,0,0,192,0,0,0,198,162,214,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,10,1,198,66,234,5,197,66,12,1,192,0,0,0,197,2,13,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,250,5,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,18,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,131,71,6,197,194,29,1,198,99,96,6,198,162,102,6,192,0,0,0,198,163,109,6,198,3,113,6,198,227,124,6,198,162,127,6,192,0,0,0,192,0,0,0,198,99,131,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,163,6,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,99,239,6,198,131,253,6,192,0,0,0,198,131,246,6,192,0,0,0,192,0,0,0,192,0,0,0,198,34,36,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,81,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,100,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,124,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,227,173,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,233,7,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,248,7,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,89,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,251,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,16,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,180,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,79,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,185,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,102,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,226,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,32,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,25,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,128,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,7,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,107,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,181,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,49,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,70,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,198,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,117,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,219,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,175,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,154,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,38,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,30,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,158,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,108,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,128,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,31,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,50,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,100,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,109,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,74,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,9,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,81,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,78,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,10,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,193,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,176,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,74,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,213,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,2,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,53,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,129,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,47,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,92,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,124,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,112,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,220,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,185,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,252,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,236,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,240,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,130,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,99,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,41,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,32,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,51,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,209,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,10,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,35,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,55,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,253,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,107,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,180,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,125,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,39,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,232,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,121,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,63,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,122,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,26,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,14,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,110,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,24,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,168,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,134,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,47,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,131,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,80,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,227,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,176,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,158,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,138,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,145,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,136,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,77,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,48,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,27,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,36,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,220,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,170,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,214,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,214,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,169,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,79,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,234,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,241,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,52,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,49,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,116,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,186,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,109,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,200,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,152,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,247,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,89,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,78,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,99,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,132,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,133,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,252,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,52,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,32,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,40,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,6,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,161,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,22,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,31,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,93,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,40,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,59,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,12,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,90,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,181,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,151,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,162,127,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,229,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,129,121,0,5,97,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,248,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,153,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,253,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,29,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,53,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,33,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,151,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,109,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,39,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,91,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,134,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,100,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,231,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,51,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,130,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,4,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,3,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,16,127,0,0,117,121,0,5,0,5,0,0,24,121,0,5,83,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,32,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,92,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,229,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,175,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,26,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,159,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,27,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,71,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,68,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,240,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,15,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,85,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,126,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,23,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,49,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,100,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,163,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,187,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,249,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,61,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,105,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,23,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,17,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,150,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,56,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,23,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,62,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,15,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,246,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,175,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,45,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,135,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,101,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,215,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,144,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,228,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,111,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,84,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,164,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,55,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,159,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,124,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,171,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,179,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,182,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,11,127,0,0,135,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,108,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,157,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,170,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,83,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,56,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,145,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,138,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,45,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,45,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,202,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,61,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,57,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,27,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,158,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,6,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,206,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,43,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,113,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,224,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,60,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,165,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,230,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,229,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,56,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,72,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,75,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,254,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,19,127,0,0,113,121,0,5,0,5,0,0,28,121,0,5,127,126,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,86,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,14,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,40,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,255,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,33,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,254,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,21,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,76,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,215,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,168,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,111,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,25,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,255,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,94,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,32,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,229,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,150,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,207,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,75,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,48,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,180,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,224,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,129,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,173,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,188,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,28,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,151,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,152,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,188,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,34,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,164,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,11,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,103,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,115,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,58,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,78,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,81,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,80,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,3,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,177,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,104,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,110,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,54,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,103,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,166,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,2,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,51,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,76,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,77,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,21,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,176,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,151,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,255,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,135,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,59,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,136,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,250,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,223,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,167,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,222,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,59,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,43,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,57,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,254,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,8,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,152,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,72,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,241,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,28,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,63,127,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,230,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,105,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,9,127,0,0,125,121,0,5,0,5,0,0,40,121,0,5,33,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,185,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,197,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,95,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,70,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,31,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,57,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,198,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,241,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,203,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,125,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,114,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,169,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,180,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,11,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,121,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,106,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,178,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,4,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,34,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,164,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,45,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,101,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,112,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,56,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,204,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,88,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,237,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,39,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,159,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,35,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,109,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,8,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,28,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,221,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,29,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,183,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,112,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,36,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,42,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,42,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,113,121,0,5,71,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,112,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,84,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,25,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,100,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,69,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,165,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,165,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,152,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,138,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,206,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,6,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,198,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,159,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,146,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,127,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,105,121,0,5,126,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,250,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,248,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,251,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,110,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,153,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,107,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,50,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,160,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,181,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,214,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,213,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,139,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,195,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,196,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,147,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,171,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,150,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,148,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,24,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,19,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,139,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,153,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,123,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,21,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,78,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,232,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,146,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,12,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,2,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,108,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,251,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,49,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,104,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,194,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,132,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,133,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,247,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,225,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,49,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,140,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,182,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,70,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,249,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,114,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,48,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,101,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,21,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,102,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,35,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,37,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,62,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,172,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,230,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,118,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,189,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,126,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,161,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,104,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,34,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,170,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,135,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,38,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,231,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,187,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,159,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,236,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,18,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,50,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,36,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,136,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,32,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,58,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,59,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,199,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,215,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,239,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,30,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,2,127,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,252,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,81,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,108,125,0,0,119,121,0,5,0,5,0,0,10,121,0,5,197,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,129,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,166,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,78,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,60,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,206,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,22,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,153,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,166,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,123,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,61,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,218,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,161,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,186,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,66,127,0,0,209,121,0,5,0,5,0,0,18,121,0,5,41,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,52,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,107,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,70,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,224,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,8,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,120,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,82,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,79,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,115,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,152,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,105,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,113,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,227,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,157,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,163,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,188,127,0,0,105,121,0,5,0,5,0,0,40,121,0,5,7,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,51,127,0,0,179,121,0,5,0,5,0,0,40,121,0,5,8,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,9,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,111,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,130,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,108,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,84,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,81,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,5,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,134,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,131,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,167,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,79,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,95,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,26,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,114,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,64,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,146,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,40,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,88,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,53,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,189,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,90,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,181,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,132,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,75,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,16,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,162,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,112,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,60,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,50,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,34,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,155,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,43,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,37,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,124,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,24,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,111,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,3,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,116,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,190,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,95,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,104,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,110,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,15,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,62,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,243,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,48,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,235,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,248,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,154,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,181,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,27,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,36,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,96,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,102,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,113,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,168,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,61,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,22,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,32,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,96,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,28,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,117,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,97,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,91,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,43,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,145,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,92,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,205,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,130,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,115,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,209,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,116,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,94,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,178,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,210,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,55,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,239,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,9,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,53,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,3,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,52,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,137,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,98,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,169,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,138,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,128,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,95,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,30,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,121,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,144,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,162,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,7,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,249,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,46,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,36,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,129,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,208,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,91,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,232,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,22,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,156,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,73,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,191,125,0,0,119,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,25,127,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,147,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,190,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,121,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,2,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,211,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,75,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,117,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,250,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,33,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,95,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,37,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,36,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,7,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,73,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,212,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,213,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,4,127,0,0,103,121,0,5,0,5,0,0,10,121,0,5,203,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,102,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,8,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,76,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,12,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,10,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,191,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,117,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,236,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,233,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,29,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,17,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,16,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,49,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,105,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,125,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,71,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,49,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,122,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,177,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,26,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,182,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,5,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,118,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,51,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,19,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,65,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,217,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,25,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,11,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,102,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,30,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,139,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,205,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,60,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,250,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,191,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,216,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,236,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,37,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,206,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,160,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,136,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,89,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,61,127,0,0,105,121,0,5,0,5,0,0,10,121,0,5,105,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,106,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,148,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,24,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,237,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,255,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,35,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,102,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,114,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,144,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,3,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,91,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,200,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,21,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,179,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,26,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,221,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,8,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,97,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,22,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,17,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,147,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,82,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,112,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,120,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,107,125,0,0,219,121,0,5,0,5,0,0,8,121,0,5,0,5,0,0,143,121,0,5,33,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,87,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,41,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,40,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,95,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,25,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,206,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,192,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,49,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,43,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,29,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,115,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,140,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,217,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,146,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,38,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,110,127,0,0,127,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,118,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,155,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,6,127,0,0,103,121,0,5,0,5,0,0,16,121,0,5,82,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,129,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,111,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,118,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,88,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,108,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,240,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,109,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,85,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,64,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,65,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,188,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,218,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,14,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,2,127,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,114,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,80,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,121,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,38,127,0,0,209,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,224,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,44,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,18,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,156,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,50,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,112,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,62,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,23,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,91,127,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,115,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,123,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,231,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,113,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,157,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,27,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,248,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,37,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,72,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,126,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,32,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,153,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,74,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,77,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,35,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,230,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,233,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,50,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,147,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,141,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,124,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,126,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,57,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,169,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,111,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,79,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,213,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,158,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,18,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,12,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,117,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,16,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,154,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,45,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,184,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,183,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,141,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,42,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,207,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,47,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,232,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,27,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,219,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,56,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,173,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,2,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,45,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,123,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,3,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,105,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,106,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,208,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,41,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,238,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,67,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,102,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,120,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,170,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,119,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,76,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,72,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,86,127,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,78,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,138,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,103,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,63,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,44,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,23,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,119,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,31,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,170,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,32,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,148,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,137,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,13,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,178,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,13,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,149,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,120,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,185,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,66,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,3,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,159,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,50,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,106,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,154,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,252,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,107,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,76,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,58,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,36,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,210,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,234,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,174,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,4,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,12,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,87,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,25,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,11,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,85,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,46,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,15,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,47,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,26,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,41,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,192,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,179,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,193,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,127,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,181,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,254,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,156,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,13,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,139,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,5,127,0,0,121,121,0,5,0,5,0,0,20,121,0,5,46,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,129,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,47,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,28,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,68,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,73,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,47,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,82,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,142,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,25,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,199,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,77,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,33,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,209,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,59,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,172,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,27,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,241,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,115,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,143,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,193,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,250,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,131,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,79,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,39,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,193,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,113,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,207,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,23,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,40,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,133,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,44,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,33,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,199,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,64,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,20,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,155,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,60,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,105,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,97,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,38,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,24,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,205,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,208,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,126,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,186,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,25,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,16,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,3,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,151,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,24,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,194,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,83,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,233,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,137,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,152,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,191,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,43,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,59,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,179,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,68,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,6,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,124,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,4,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,34,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,63,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,249,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,142,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,80,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,84,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,92,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,21,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,149,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,176,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,42,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,30,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,48,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,73,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,45,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,238,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,247,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,140,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,6,127,0,0,121,121,0,5,0,5,0,0,12,121,0,5,139,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,148,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,235,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,37,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,66,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,137,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,50,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,7,127,0,0,121,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,127,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,49,127,0,0,143,121,0,5,0,5,0,0,10,121,0,5,160,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,160,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,57,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,39,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,26,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,41,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,25,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,116,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,41,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,143,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,195,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,222,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,13,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,170,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,85,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,74,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,26,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,198,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,164,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,234,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,133,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,33,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,81,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,50,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,25,127,0,0,209,121,0,5,0,5,0,0,18,121,0,5,39,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,117,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,175,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,2,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,4,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,209,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,44,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,19,127,0,0,193,121,0,5,0,5,0,0,18,121,0,5,108,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,3,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,71,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,96,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,50,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,86,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,237,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,214,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,192,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,77,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,82,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,128,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,34,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,33,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,114,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,171,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,93,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,235,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,51,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,53,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,53,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,29,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,125,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,127,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,51,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,149,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,144,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,233,126,0,0,143,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,234,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,31,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,196,125,0,0,119,121,0,5,0,5,0,0,10,121,0,5,242,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,30,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,103,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,103,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,5,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,182,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,63,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,4,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,161,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,119,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,120,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,69,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,238,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,58,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,12,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,134,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,141,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,236,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,54,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,235,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,55,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,51,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,234,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,16,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,109,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,145,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,214,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,186,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,169,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,94,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,87,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,220,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,41,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,138,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,235,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,114,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,16,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,216,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,172,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,7,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,150,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,187,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,33,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,54,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,78,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,173,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,209,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,200,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,20,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,122,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,71,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,80,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,75,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,54,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,67,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,95,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,221,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,81,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,77,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,78,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,66,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,72,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,25,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,180,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,88,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,118,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,44,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,157,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,74,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,249,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,165,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,238,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,79,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,237,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,10,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,59,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,109,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,250,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,178,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,249,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,52,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,31,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,136,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,75,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,53,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,29,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,237,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,54,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,22,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,6,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,27,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,215,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,204,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,168,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,46,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,113,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,238,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,76,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,122,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,238,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,174,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,105,121,0,5,25,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,99,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,151,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,85,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,32,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,65,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,239,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,249,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,113,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,110,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,225,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,139,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,40,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,4,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,240,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,92,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,181,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,138,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,78,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,242,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,28,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,31,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,242,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,8,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,104,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,156,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,47,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,13,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,123,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,188,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,51,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,128,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,222,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,121,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,239,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,110,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,62,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,100,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,26,126,0,0,179,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,228,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,210,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,197,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,139,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,227,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,14,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,155,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,145,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,140,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,55,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,253,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,132,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,48,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,140,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,146,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,161,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,147,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,42,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,86,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,42,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,30,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,156,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,73,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,140,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,144,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,243,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,244,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,73,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,4,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,110,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,210,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,211,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,101,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,210,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,188,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,88,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,171,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,63,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,216,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,31,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,215,126,0,0,143,121,0,5,0,5,0,0,10,121,0,5,77,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,46,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,176,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,62,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,28,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,76,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,42,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,204,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,90,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,89,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,43,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,156,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,43,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,184,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,145,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,70,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,120,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,251,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,174,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,63,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,17,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,226,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,212,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,106,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,86,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,124,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,5,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,52,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,70,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,50,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,42,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,164,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,129,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,175,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,101,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,82,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,137,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,185,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,152,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,135,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,97,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,141,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,255,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,122,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,86,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,80,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,51,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,153,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,179,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,111,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,104,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,121,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,83,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,162,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,163,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,205,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,24,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,146,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,254,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,44,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,61,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,131,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,53,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,180,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,171,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,64,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,51,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,130,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,231,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,46,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,98,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,75,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,130,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,62,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,150,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,43,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,88,127,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,248,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,216,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,69,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,130,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,225,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,146,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,63,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,30,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,175,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,83,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,119,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,33,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,122,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,147,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,216,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,39,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,84,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,217,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,141,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,89,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,218,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,55,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,57,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,210,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,81,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,22,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,2,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,34,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,73,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,200,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,183,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,77,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,138,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,59,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,149,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,41,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,132,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,245,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,32,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,90,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,63,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,42,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,31,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,54,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,52,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,148,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,55,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,98,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,169,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,216,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,91,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,13,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,196,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,42,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,111,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,243,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,55,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,5,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,154,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,154,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,15,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,149,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,75,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,87,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,142,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,112,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,72,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,5,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,3,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,211,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,200,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,201,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,211,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,89,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,127,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,75,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,194,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,13,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,250,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,236,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,74,126,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,60,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,11,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,236,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,79,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,68,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,185,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,46,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,237,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,26,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,55,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,131,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,88,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,135,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,113,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,107,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,23,127,0,0,111,121,0,5,0,5,0,0,40,121,0,5,34,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,52,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,65,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,240,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,114,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,148,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,217,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,6,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,177,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,139,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,24,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,131,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,157,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,131,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,30,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,115,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,217,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,127,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,207,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,123,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,99,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,56,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,99,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,56,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,42,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,44,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,116,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,40,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,162,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,65,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,7,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,120,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,215,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,201,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,145,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,32,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,7,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,217,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,41,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,61,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,108,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,64,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,89,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,178,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,27,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,92,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,243,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,110,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,129,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,182,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,53,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,180,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,236,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,25,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,199,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,237,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,228,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,35,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,89,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,132,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,176,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,198,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,120,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,133,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,217,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,184,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,233,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,54,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,74,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,14,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,180,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,74,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,187,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,15,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,111,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,250,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,89,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,163,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,211,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,212,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,211,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,183,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,183,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,8,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,158,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,143,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,133,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,17,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,245,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,25,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,66,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,149,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,10,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,86,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,150,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,134,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,226,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,132,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,43,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,96,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,114,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,134,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,237,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,27,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,218,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,198,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,111,121,0,5,23,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,27,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,28,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,157,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,181,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,56,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,130,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,141,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,4,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,34,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,35,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,14,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,135,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,136,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,122,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,128,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,222,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,6,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,66,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,109,127,0,0,143,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,12,127,0,0,209,121,0,5,0,5,0,0,10,121,0,5,53,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,153,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,27,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,85,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,165,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,38,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,200,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,56,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,14,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,9,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,20,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,82,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,151,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,55,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,118,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,83,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,79,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,189,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,34,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,35,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,130,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,83,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,135,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,93,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,67,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,16,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,96,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,33,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,56,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,26,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,251,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,50,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,42,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,55,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,63,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,150,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,96,127,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,104,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,13,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,34,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,28,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,60,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,181,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,86,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,117,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,140,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,218,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,64,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,45,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,158,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,66,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,45,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,198,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,121,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,133,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,252,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,227,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,178,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,136,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,111,121,0,5,24,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,183,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,123,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,29,127,0,0,117,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,50,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,150,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,45,127,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,31,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,9,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,6,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,26,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,15,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,7,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,236,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,124,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,78,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,37,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,19,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,76,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,184,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,4,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,3,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,28,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,232,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,116,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,17,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,103,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,80,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,28,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,97,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,87,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,155,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,213,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,218,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,124,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,100,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,5,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,102,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,52,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,70,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,36,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,28,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,110,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,164,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,173,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,105,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,174,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,190,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,158,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,246,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,182,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,151,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,56,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,43,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,17,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,242,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,73,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,24,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,25,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,35,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,98,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,223,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,185,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,141,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,97,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,175,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,228,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,58,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,2,127,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,71,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,176,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,67,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,134,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,84,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,64,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,196,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,134,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,103,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,177,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,137,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,115,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,206,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,237,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,142,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,52,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,160,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,121,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,28,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,163,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,90,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,20,127,0,0,113,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,125,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,68,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,43,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,36,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,55,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,223,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,179,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,239,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,127,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,104,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,71,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,83,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,159,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,238,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,140,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,199,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,44,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,219,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,114,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,251,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,153,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,159,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,243,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,199,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,222,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,26,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,26,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,124,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,78,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,238,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,195,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,45,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,147,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,156,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,143,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,81,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,105,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,30,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,119,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,121,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,65,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,130,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,37,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,72,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,18,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,185,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,78,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,79,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,222,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,46,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,101,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,144,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,177,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,251,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,213,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,246,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,87,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,105,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,182,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,138,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,115,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,157,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,29,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,49,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,128,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,104,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,4,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,44,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,2,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,154,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,178,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,142,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,29,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,119,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,115,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,241,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,139,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,34,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,244,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,160,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,54,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,57,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,67,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,53,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,160,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,65,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,224,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,27,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,17,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,98,127,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,57,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,80,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,15,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,84,123,0,0,219,121,0,5,0,5,0,0,38,121,0,5,7,127,0,0,105,121,0,5,0,5,0,0,40,121,0,5,16,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,237,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,60,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,184,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,75,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,59,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,12,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,46,127,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,14,127,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,105,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,18,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,93,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,163,126,0,0,179,121,0,5,0,5,0,0,10,121,0,5,244,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,37,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,51,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,64,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,66,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,207,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,14,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,5,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,125,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,76,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,54,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,87,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,51,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,29,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,31,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,208,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,35,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,118,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,31,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,50,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,218,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,67,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,245,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,5,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,6,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,87,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,84,127,0,0,179,121,0,5,0,5,0,0,10,121,0,5,247,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,151,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,2,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,65,127,0,0,105,121,0,5,0,5,0,0,10,121,0,5,248,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,208,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,46,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,10,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,34,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,186,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,224,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,135,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,179,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,182,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,94,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,10,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,79,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,29,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,27,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,33,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,17,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,79,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,164,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,152,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,3,127,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,161,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,65,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,66,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,119,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,7,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,28,127,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,15,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,28,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,247,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,235,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,38,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,158,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,152,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,19,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,90,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,111,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,183,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,88,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,245,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,43,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,57,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,252,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,16,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,24,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,36,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,128,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,112,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,52,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,61,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,239,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,79,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,58,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,41,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,42,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,252,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,52,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,131,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,6,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,189,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,8,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,21,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,170,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,191,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,225,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,84,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,180,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,107,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,170,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,164,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,238,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,248,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,153,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,159,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,209,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,252,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,9,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,205,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,116,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,94,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,184,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,61,127,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,186,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,95,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,124,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,135,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,207,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,80,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,7,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,181,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,74,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,75,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,25,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,180,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,108,126,0,0,119,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,105,121,0,5,108,123,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,105,121,0,5,107,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,177,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,53,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,18,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,69,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,196,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,116,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,28,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,208,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,67,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,47,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,121,121,0,5,23,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,182,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,165,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,14,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,91,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,8,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,64,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,192,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,109,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,150,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,102,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,77,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,113,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,69,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,2,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,26,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,240,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,146,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,138,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,66,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,145,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,3,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,185,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,226,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,67,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,9,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,108,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,67,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,95,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,17,127,0,0,125,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,61,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,246,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,71,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,12,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,253,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,37,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,74,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,201,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,239,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,128,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,91,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,227,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,8,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,112,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,160,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,219,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,176,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,37,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,117,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,214,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,11,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,220,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,238,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,29,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,92,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,126,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,126,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,17,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,24,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,200,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,165,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,73,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,227,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,27,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,70,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,254,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,221,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,12,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,125,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,242,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,161,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,183,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,99,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,218,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,149,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,251,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,140,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,96,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,89,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,57,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,66,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,153,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,33,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,47,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,125,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,84,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,68,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,243,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,154,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,27,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,154,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,106,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,166,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,103,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,215,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,94,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,216,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,113,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,80,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,97,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,239,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,184,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,13,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,115,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,33,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,58,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,48,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,59,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,93,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,9,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,114,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,136,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,188,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,65,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,154,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,104,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,184,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,127,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,128,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,28,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,201,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,178,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,31,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,172,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,55,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,217,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,166,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,9,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,13,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,30,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,27,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,212,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,77,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,77,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,186,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,82,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,212,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,45,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,98,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,137,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,111,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,155,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,182,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,249,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,95,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,189,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,42,127,0,0,127,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,28,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,167,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,18,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,187,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,39,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,115,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,96,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,117,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,210,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,211,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,135,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,5,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,88,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,255,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,27,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,43,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,83,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,35,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,87,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,202,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,107,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,187,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,4,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,208,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,49,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,71,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,88,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,78,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,146,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,14,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,135,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,15,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,10,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,147,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,9,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,137,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,74,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,213,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,30,127,0,0,111,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,72,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,140,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,255,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,10,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,118,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,222,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,168,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,114,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,71,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,171,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,76,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,29,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,91,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,80,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,68,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,171,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,72,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,29,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,115,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,48,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,51,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,240,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,241,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,36,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,53,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,31,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,252,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,8,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,62,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,72,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,235,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,231,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,132,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,55,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,113,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,67,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,73,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,83,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,32,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,117,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,116,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,188,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,207,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,79,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,105,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,151,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,118,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,115,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,103,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,48,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,128,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,36,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,118,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,60,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,61,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,181,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,248,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,65,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,189,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,219,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,238,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,59,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,47,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,20,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,44,126,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,11,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,166,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,6,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,132,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,240,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,186,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,253,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,47,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,30,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,142,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,92,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,90,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,62,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,64,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,155,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,88,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,208,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,58,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,89,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,76,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,164,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,251,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,43,127,0,0,127,121,0,5,0,5,0,0,10,121,0,5,51,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,67,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,106,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,141,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,185,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,218,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,43,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,17,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,79,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,91,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,207,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,112,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,11,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,223,126,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,80,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,117,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,12,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,10,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,11,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,127,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,97,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,15,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,188,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,35,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,243,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,155,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,77,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,74,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,17,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,103,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,73,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,77,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,5,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,167,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,22,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,128,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,241,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,12,127,0,0,103,121,0,5,0,5,0,0,10,121,0,5,161,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,45,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,34,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,98,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,85,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,155,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,118,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,156,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,16,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,137,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,47,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,33,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,247,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,54,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,3,127,0,0,185,121,0,5,0,5,0,0,6,121,0,5,93,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,156,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,46,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,75,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,190,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,46,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,252,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,81,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,85,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,42,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,78,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,31,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,77,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,59,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,31,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,154,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,17,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,18,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,89,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,95,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,56,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,165,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,117,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,32,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,212,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,58,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,20,127,0,0,129,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,99,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,109,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,136,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,242,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,111,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,59,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,113,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,240,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,68,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,32,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,74,127,0,0,219,121,0,5,0,5,0,0,10,121,0,5,249,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,119,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,241,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,55,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,164,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,203,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,254,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,157,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,32,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,173,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,250,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,197,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,220,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,64,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,189,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,167,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,116,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,63,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,23,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,174,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,179,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,165,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,229,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,60,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,120,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,38,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,152,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,166,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,197,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,114,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,33,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,125,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,187,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,34,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,155,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,142,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,44,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,45,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,242,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,60,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,27,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,122,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,30,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,180,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,56,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,187,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,11,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,60,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,244,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,35,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,138,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,193,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,2,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,75,127,0,0,137,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,71,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,157,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,7,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,219,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,49,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,57,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,250,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,51,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,18,127,0,0,209,121,0,5,0,5,0,0,18,121,0,5,221,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,209,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,17,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,28,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,19,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,92,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,56,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,138,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,122,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,39,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,214,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,34,127,0,0,103,121,0,5,0,5,0,0,20,121,0,5,21,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,135,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,159,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,183,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,213,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,219,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,45,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,80,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,4,127,0,0,185,121,0,5,0,5,0,0,20,121,0,5,142,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,194,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,215,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,35,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,35,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,119,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,62,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,253,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,224,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,97,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,82,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,104,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,129,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,169,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,44,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,38,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,47,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,178,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,38,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,57,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,190,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,177,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,99,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,73,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,254,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,59,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,121,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,86,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,144,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,7,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,245,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,76,125,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,105,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,112,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,225,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,71,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,30,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,76,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,93,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,78,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,3,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,204,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,58,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,167,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,162,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,2,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,204,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,75,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,46,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,94,127,0,0,127,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,13,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,221,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,139,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,35,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,142,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,59,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,65,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,118,125,0,0,219,121,0,5,0,5,0,0,38,121,0,5,16,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,182,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,239,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,156,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,47,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,79,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,18,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,225,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,28,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,16,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,206,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,139,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,22,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,35,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,106,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,60,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,94,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,186,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,252,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,117,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,161,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,116,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,156,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,110,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,71,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,255,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,21,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,63,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,247,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,248,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,133,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,56,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,28,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,17,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,181,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,39,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,4,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,120,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,95,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,202,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,5,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,228,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,99,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,32,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,197,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,67,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,66,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,143,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,92,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,90,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,52,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,13,127,0,0,103,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,122,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,130,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,214,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,39,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,13,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,19,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,33,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,50,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,50,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,117,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,9,127,0,0,113,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,241,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,135,121,0,5,0,5,0,0,24,121,0,5,158,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,230,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,29,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,161,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,40,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,214,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,140,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,163,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,241,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,31,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,115,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,222,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,136,125,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,129,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,157,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,219,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,253,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,172,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,209,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,48,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,152,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,178,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,98,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,48,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,85,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,131,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,51,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,79,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,114,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,11,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,182,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,143,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,144,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,145,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,146,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,40,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,80,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,132,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,247,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,188,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,49,123,0,0,185,121,0,5,0,5,0,0,26,121,0,5,82,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,129,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,23,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,46,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,67,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,143,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,19,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,164,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,143,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,216,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,198,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,20,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,20,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,133,127,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,12,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,168,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,199,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,155,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,80,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,228,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,66,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,225,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,204,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,126,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,195,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,135,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,14,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,59,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,186,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,120,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,113,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,150,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,66,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,68,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,31,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,158,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,69,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,205,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,233,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,192,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,60,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,36,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,30,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,190,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,231,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,109,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,168,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,228,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,123,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,181,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,159,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,15,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,239,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,123,127,0,0,105,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,14,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,17,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,147,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,251,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,225,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,5,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,37,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,15,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,158,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,210,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,98,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,151,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,168,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,220,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,95,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,160,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,85,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,78,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,200,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,36,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,31,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,100,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,18,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,43,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,32,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,47,126,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,28,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,98,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,130,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,45,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,217,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,144,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,168,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,4,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,253,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,51,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,16,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,10,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,165,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,255,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,167,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,76,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,215,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,159,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,71,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,187,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,48,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,141,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,9,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,193,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,21,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,36,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,81,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,3,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,254,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,218,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,243,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,253,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,47,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,19,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,239,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,129,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,255,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,244,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,198,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,188,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,118,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,75,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,252,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,75,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,160,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,38,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,65,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,39,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,76,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,21,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,22,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,155,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,54,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,246,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,8,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,183,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,123,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,15,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,21,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,121,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,81,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,70,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,47,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,208,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,48,126,0,0,179,121,0,5,0,5,0,0,10,121,0,5,80,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,157,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,230,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,72,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,182,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,68,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,183,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,242,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,220,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,18,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,234,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,95,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,22,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,232,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,92,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,12,127,0,0,135,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,159,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,142,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,40,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,134,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,14,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,147,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,129,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,152,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,6,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,49,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,188,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,76,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,23,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,68,127,0,0,111,121,0,5,0,5,0,0,12,121,0,5,158,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,161,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,209,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,8,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,160,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,139,121,0,5,29,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,61,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,185,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,84,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,218,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,64,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,44,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,222,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,33,127,0,0,105,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,15,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,90,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,223,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,251,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,49,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,49,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,176,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,54,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,47,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,83,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,119,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,243,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,32,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,24,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,138,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,161,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,131,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,112,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,194,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,19,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,52,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,207,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,195,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,253,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,4,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,37,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,134,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,12,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,94,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,245,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,249,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,34,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,10,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,253,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,216,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,211,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,162,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,162,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,20,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,143,121,0,5,27,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,202,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,220,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,202,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,170,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,232,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,57,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,69,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,16,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,34,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,159,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,152,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,126,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,226,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,125,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,175,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,189,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,68,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,18,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,235,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,100,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,73,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,178,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,22,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,41,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,122,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,61,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,184,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,212,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,67,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,240,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,190,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,16,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,157,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,166,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,171,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,122,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,53,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,18,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,96,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,219,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,103,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,210,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,67,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,12,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,99,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,77,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,49,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,72,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,77,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,111,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,82,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,36,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,172,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,69,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,244,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,123,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,165,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,240,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,116,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,168,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,53,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,209,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,85,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,201,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,200,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,30,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,29,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,96,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,119,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,50,126,0,0,129,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,90,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,223,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,6,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,243,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,241,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,216,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,162,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,68,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,17,127,0,0,117,121,0,5,0,5,0,0,24,121,0,5,55,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,183,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,50,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,205,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,84,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,245,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,15,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,80,127,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,6,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,220,126,0,0,209,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,220,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,48,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,100,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,212,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,66,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,232,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,220,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,254,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,184,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,160,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,229,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,5,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,129,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,7,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,255,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,78,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,240,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,169,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,5,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,17,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,12,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,189,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,162,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,160,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,38,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,101,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,202,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,2,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,112,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,69,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,221,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,144,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,242,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,25,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,254,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,66,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,10,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,222,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,239,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,223,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,172,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,18,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,19,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,6,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,79,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,144,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,118,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,18,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,13,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,123,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,191,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,119,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,61,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,135,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,156,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,35,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,46,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,118,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,76,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,162,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,104,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,59,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,68,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,58,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,10,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,26,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,255,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,29,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,69,127,0,0,111,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,124,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,37,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,19,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,38,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,190,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,51,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,157,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,54,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,254,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,20,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,206,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,48,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,2,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,209,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,42,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,77,127,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,91,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,166,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,75,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,6,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,91,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,32,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,21,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,31,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,13,127,0,0,135,121,0,5,0,5,0,0,18,121,0,5,52,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,60,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,108,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,169,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,105,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,43,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,241,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,51,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,223,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,73,126,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,76,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,44,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,191,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,179,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,107,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,115,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,124,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,77,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,6,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,59,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,186,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,52,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,33,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,20,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,224,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,148,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,20,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,163,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,50,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,72,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,167,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,179,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,207,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,215,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,119,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,109,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,49,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,45,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,143,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,32,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,89,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,58,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,210,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,2,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,78,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,46,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,166,126,0,0,209,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,114,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,224,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,195,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,125,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,184,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,167,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,51,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,76,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,108,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,161,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,172,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,19,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,105,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,113,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,53,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,235,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,7,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,156,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,56,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,203,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,126,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,71,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,196,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,158,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,246,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,240,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,120,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,56,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,121,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,123,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,97,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,88,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,107,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,85,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,241,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,182,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,137,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,13,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,106,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,105,121,0,5,109,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,105,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,3,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,81,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,82,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,11,127,0,0,125,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,191,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,229,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,2,127,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,96,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,79,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,194,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,35,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,2,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,49,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,226,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,9,127,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,14,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,195,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,201,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,170,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,96,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,122,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,11,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,127,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,185,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,61,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,186,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,136,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,95,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,160,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,147,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,168,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,205,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,3,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,163,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,242,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,130,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,119,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,9,127,0,0,121,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,172,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,76,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,24,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,99,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,77,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,210,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,84,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,45,127,0,0,127,121,0,5,0,5,0,0,10,121,0,5,206,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,197,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,69,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,206,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,163,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,98,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,208,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,37,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,219,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,70,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,15,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,225,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,102,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,20,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,169,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,16,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,57,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,240,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,30,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,60,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,152,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,126,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,207,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,187,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,27,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,153,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,185,121,0,5,0,5,0,0,6,121,0,5,137,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,106,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,71,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,23,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,131,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,191,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,71,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,173,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,244,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,124,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,4,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,83,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,146,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,61,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,31,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,169,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,77,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,36,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,132,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,229,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,217,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,99,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,242,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,12,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,38,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,3,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,52,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,164,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,143,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,54,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,57,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,38,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,21,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,60,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,129,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,100,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,62,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,53,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,85,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,28,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,32,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,187,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,138,127,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,46,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,131,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,4,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,170,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,39,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,245,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,52,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,51,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,8,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,77,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,72,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,176,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,73,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,168,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,246,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,231,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,145,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,106,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,163,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,105,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,209,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,29,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,148,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,9,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,96,127,0,0,211,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,16,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,107,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,83,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,139,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,188,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,94,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,198,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,201,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,226,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,36,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,143,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,40,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,164,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,11,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,218,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,22,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,208,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,208,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,132,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,43,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,86,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,189,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,45,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,246,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,87,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,74,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,5,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,185,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,189,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,242,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,163,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,99,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,211,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,44,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,170,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,78,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,219,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,75,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,79,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,140,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,185,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,127,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,209,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,171,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,52,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,80,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,190,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,57,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,80,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,67,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,227,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,146,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,186,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,3,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,108,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,170,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,193,124,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,116,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,61,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,191,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,10,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,196,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,186,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,29,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,87,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,210,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,147,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,194,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,77,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,161,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,7,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,137,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,97,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,230,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,98,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,3,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,165,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,55,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,166,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,53,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,136,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,109,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,20,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,54,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,29,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,30,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,107,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,110,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,88,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,35,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,206,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,55,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,110,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,101,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,41,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,50,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,220,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,33,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,54,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,89,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,253,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,254,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,79,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,7,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,58,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,198,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,76,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,136,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,77,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,137,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,53,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,148,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,5,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,4,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,63,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,187,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,231,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,133,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,179,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,213,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,20,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,78,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,122,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,62,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,17,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,221,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,169,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,58,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,188,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,47,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,192,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,211,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,90,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,59,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,7,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,92,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,81,127,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,100,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,187,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,6,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,37,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,196,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,246,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,209,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,212,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,188,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,149,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,226,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,247,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,49,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,137,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,76,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,8,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,6,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,12,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,70,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,173,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,102,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,42,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,172,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,119,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,232,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,11,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,124,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,74,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,59,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,59,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,127,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,62,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,141,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,244,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,203,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,141,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,91,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,21,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,82,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,203,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,249,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,61,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,223,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,191,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,241,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,165,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,189,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,195,124,0,0,219,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,130,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,56,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,36,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,144,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,211,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,157,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,158,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,125,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,164,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,98,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,128,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,180,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,3,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,96,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,227,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,4,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,70,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,19,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,197,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,137,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,13,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,108,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,92,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,33,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,228,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,173,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,9,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,46,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,181,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,62,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,86,125,0,0,219,121,0,5,0,5,0,0,12,121,0,5,162,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,117,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,26,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,222,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,79,127,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,103,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,157,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,114,126,0,0,119,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,115,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,4,127,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,192,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,134,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,25,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,104,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,123,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,161,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,104,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,144,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,87,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,169,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,50,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,224,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,99,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,245,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,48,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,100,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,125,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,223,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,170,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,80,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,81,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,36,127,0,0,211,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,33,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,162,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,122,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,84,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,128,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,22,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,90,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,223,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,96,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,5,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,34,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,181,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,71,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,30,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,213,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,126,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,173,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,214,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,16,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,189,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,193,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,2,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,227,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,163,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,78,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,228,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,224,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,215,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,14,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,117,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,216,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,192,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,210,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,255,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,195,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,204,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,145,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,60,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,80,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,170,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,72,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,8,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,61,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,5,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,139,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,2,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,10,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,52,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,97,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,57,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,85,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,238,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,104,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,100,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,17,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,127,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,140,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,50,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,97,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,217,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,83,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,16,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,63,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,158,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,89,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,164,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,51,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,123,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,150,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,233,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,18,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,17,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,97,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,93,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,21,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,76,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,61,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,47,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,123,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,61,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,136,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,179,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,46,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,43,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,82,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,48,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,153,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,78,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,31,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,225,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,55,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,171,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,151,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,156,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,247,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,173,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,85,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,242,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,142,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,84,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,116,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,210,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,71,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,63,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,221,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,12,127,0,0,125,121,0,5,0,5,0,0,34,121,0,5,34,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,37,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,224,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,105,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,73,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,90,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,192,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,92,123,0,0,185,121,0,5,0,5,0,0,10,121,0,5,81,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,145,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,211,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,83,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,79,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,153,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,246,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,220,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,21,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,106,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,37,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,120,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,62,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,18,127,0,0,125,121,0,5,0,5,0,0,34,121,0,5,63,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,126,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,211,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,141,121,0,5,0,5,0,0,28,121,0,5,74,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,19,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,243,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,107,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,73,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,101,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,165,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,166,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,80,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,31,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,171,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,81,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,82,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,19,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,94,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,109,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,186,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,24,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,190,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,129,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,20,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,130,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,70,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,34,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,110,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,216,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,167,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,36,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,124,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,165,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,83,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,158,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,226,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,30,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,50,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,145,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,32,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,116,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,110,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,109,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,120,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,192,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,209,121,0,5,0,5,0,0,16,121,0,5,18,127,0,0,117,121,0,5,0,5,0,0,10,121,0,5,37,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,164,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,9,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,236,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,111,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,204,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,23,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,31,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,17,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,174,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,168,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,193,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,115,121,0,5,70,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,64,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,152,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,153,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,131,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,101,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,244,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,118,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,225,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,41,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,59,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,38,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,22,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,78,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,60,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,6,127,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,137,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,11,127,0,0,113,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,247,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,33,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,189,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,65,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,84,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,105,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,52,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,10,127,0,0,121,121,0,5,0,5,0,0,30,121,0,5,132,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,174,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,232,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,119,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,192,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,106,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,243,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,165,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,103,121,0,5,0,5,0,0,6,121,0,5,38,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,229,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,69,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,159,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,194,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,129,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,229,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,175,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,225,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,96,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,13,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,10,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,132,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,141,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,244,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,39,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,34,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,32,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,154,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,23,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,11,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,128,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,88,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,97,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,33,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,60,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,174,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,133,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,121,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,190,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,130,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,190,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,44,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,11,127,0,0,121,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,153,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,245,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,191,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,226,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,62,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,191,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,159,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,60,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,187,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,63,127,0,0,137,121,0,5,0,5,0,0,12,121,0,5,93,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,166,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,83,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,98,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,46,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,28,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,194,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,84,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,100,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,198,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,8,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,171,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,74,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,176,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,86,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,51,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,85,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,111,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,113,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,35,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,135,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,248,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,127,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,167,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,124,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,7,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,40,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,62,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,99,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,130,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,99,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,199,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,247,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,91,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,52,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,84,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,207,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,37,127,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,204,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,12,127,0,0,113,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,216,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,55,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,145,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,88,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,57,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,146,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,201,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,13,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,36,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,101,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,51,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,111,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,86,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,25,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,108,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,79,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,160,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,207,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,106,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,88,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,37,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,32,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,64,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,49,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,209,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,182,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,58,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,7,127,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,72,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,13,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,171,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,232,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,130,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,35,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,48,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,44,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,14,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,147,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,59,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,125,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,73,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,33,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,84,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,202,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,60,123,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,89,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,37,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,7,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,34,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,234,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,8,127,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,237,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,192,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,8,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,18,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,191,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,169,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,39,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,177,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,234,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,92,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,116,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,15,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,236,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,188,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,52,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,63,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,63,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,249,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,74,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,9,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,19,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,9,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,221,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,248,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,230,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,54,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,131,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,154,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,77,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,217,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,93,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,17,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,20,127,0,0,125,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,68,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,10,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,238,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,80,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,68,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,7,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,225,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,146,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,172,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,154,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,34,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,100,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,100,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,172,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,134,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,55,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,66,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,82,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,109,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,114,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,221,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,101,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,160,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,113,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,114,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,190,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,121,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,177,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,222,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,248,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,35,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,15,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,177,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,9,127,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,199,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,193,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,168,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,125,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,241,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,192,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,35,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,135,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,138,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,101,126,0,0,119,121,0,5,0,5,0,0,10,121,0,5,250,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,115,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,251,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,146,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,169,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,201,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,79,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,64,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,55,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,163,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,229,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,112,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,151,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,152,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,114,127,0,0,211,121,0,5,0,5,0,0,10,121,0,5,52,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,56,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,147,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,192,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,170,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,250,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,21,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,121,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,36,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,235,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,10,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,222,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,97,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,64,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,56,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,48,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,75,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,13,127,0,0,113,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,187,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,175,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,111,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,11,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,81,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,233,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,35,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,136,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,86,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,108,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,151,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,87,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,68,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,22,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,6,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,171,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,98,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,4,127,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,36,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,200,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,122,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,145,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,170,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,132,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,38,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,67,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,102,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,171,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,139,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,85,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,197,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,142,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,90,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,112,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,36,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,178,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,87,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,178,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,234,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,227,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,57,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,127,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,121,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,122,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,20,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,211,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,217,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,179,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,52,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,161,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,140,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,37,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,30,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,18,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,233,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,143,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,125,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,159,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,53,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,171,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,183,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,79,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,155,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,16,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,139,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,39,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,138,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,193,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,178,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,13,127,0,0,211,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,53,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,133,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,50,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,120,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,90,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,248,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,172,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,243,125,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,98,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,243,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,226,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,247,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,16,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,17,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,53,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,14,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,53,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,173,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,227,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,199,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,74,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,36,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,155,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,37,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,169,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,38,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,51,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,235,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,47,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,208,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,202,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,76,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,242,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,136,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,132,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,80,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,154,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,117,121,0,5,0,5,0,0,24,121,0,5,34,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,55,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,160,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,17,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,212,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,107,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,194,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,243,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,223,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,84,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,71,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,180,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,56,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,198,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,49,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,137,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,227,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,214,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,11,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,209,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,189,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,21,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,23,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,67,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,48,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,61,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,230,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,47,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,173,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,191,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,19,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,231,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,249,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,200,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,62,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,69,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,201,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,69,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,34,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,114,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,21,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,205,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,29,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,22,127,0,0,125,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,148,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,38,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,70,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,26,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,10,127,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,140,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,161,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,27,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,133,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,202,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,40,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,116,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,205,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,8,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,54,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,218,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,210,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,224,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,193,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,123,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,87,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,11,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,141,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,226,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,230,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,11,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,162,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,126,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,85,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,181,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,131,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,195,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,163,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,94,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,9,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,122,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,113,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,196,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,102,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,174,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,175,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,86,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,68,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,126,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,35,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,133,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,156,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,91,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,121,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,95,123,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,91,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,249,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,71,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,99,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,12,127,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,85,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,176,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,50,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,115,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,231,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,102,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,65,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,88,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,143,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,61,126,0,0,143,121,0,5,0,5,0,0,10,121,0,5,162,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,63,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,23,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,83,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,88,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,91,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,86,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,225,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,38,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,57,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,136,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,106,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,85,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,89,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,137,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,62,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,89,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,247,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,87,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,61,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,56,127,0,0,193,121,0,5,0,5,0,0,42,121,0,5,2,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,89,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,144,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,153,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,244,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,137,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,227,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,90,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,167,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,80,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,108,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,148,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,69,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,102,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,63,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,53,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,172,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,138,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,183,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,219,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,90,127,0,0,143,121,0,5,0,5,0,0,34,121,0,5,66,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,78,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,100,127,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,63,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,250,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,232,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,22,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,157,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,53,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,199,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,223,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,164,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,26,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,239,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,251,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,184,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,124,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,35,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,64,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,194,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,93,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,28,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,119,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,172,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,94,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,137,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,22,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,81,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,174,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,41,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,13,127,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,14,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,172,126,0,0,219,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,139,121,0,5,219,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,84,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,23,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,202,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,207,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,71,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,219,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,250,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,100,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,90,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,148,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,128,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,182,126,0,0,129,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,14,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,23,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,101,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,175,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,218,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,158,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,70,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,96,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,90,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,248,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,112,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,250,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,251,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,82,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,194,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,142,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,251,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,79,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,148,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,91,125,0,0,219,121,0,5,0,5,0,0,10,121,0,5,29,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,236,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,19,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,220,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,17,127,0,0,137,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,65,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,102,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,117,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,196,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,224,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,116,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,219,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,36,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,81,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,174,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,72,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,233,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,252,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,213,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,144,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,97,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,100,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,61,126,0,0,193,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,92,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,38,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,86,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,197,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,66,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,220,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,54,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,141,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,248,126,0,0,209,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,221,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,18,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,159,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,226,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,173,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,12,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,208,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,106,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,65,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,234,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,103,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,252,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,113,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,104,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,210,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,66,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,124,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,24,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,173,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,147,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,228,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,144,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,180,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,91,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,145,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,146,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,161,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,173,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,40,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,42,127,0,0,111,121,0,5,0,5,0,0,40,121,0,5,39,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,155,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,149,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,56,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,58,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,143,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,64,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,225,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,109,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,45,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,8,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,175,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,38,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,198,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,242,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,253,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,37,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,99,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,37,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,176,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,174,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,184,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,3,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,129,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,130,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,251,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,116,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,252,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,98,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,188,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,107,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,67,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,56,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,174,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,114,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,160,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,246,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,39,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,195,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,254,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,19,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,25,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,189,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,65,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,147,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,29,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,183,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,58,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,128,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,32,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,125,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,212,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,37,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,162,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,126,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,226,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,26,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,226,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,89,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,87,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,107,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,196,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,137,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,199,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,108,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,102,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,68,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,47,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,17,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,197,126,0,0,179,121,0,5,0,5,0,0,40,121,0,5,24,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,147,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,141,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,64,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,83,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,230,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,234,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,64,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,231,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,185,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,86,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,126,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,30,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,235,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,243,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,189,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,73,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,57,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,203,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,18,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,88,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,85,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,240,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,15,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,175,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,24,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,228,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,67,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,24,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,40,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,118,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,183,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,86,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,164,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,133,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,239,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,168,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,186,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,150,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,98,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,48,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,69,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,23,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,85,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,176,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,65,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,94,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,134,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,24,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,10,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,105,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,174,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,111,121,0,5,0,5,0,0,18,121,0,5,127,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,91,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,114,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,66,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,65,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,252,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,18,127,0,0,137,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,138,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,255,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,108,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,214,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,41,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,47,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,87,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,149,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,147,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,149,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,228,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,47,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,109,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,131,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,177,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,64,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,19,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,190,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,56,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,90,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,236,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,54,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,160,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,142,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,179,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,54,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,166,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,197,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,127,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,133,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,27,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,81,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,193,125,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,100,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,20,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,5,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,64,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,50,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,149,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,77,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,167,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,87,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,25,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,173,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,55,127,0,0,117,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,106,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,40,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,231,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,140,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,2,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,65,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,21,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,184,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,103,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,249,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,233,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,195,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,227,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,177,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,18,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,45,127,0,0,125,121,0,5,0,5,0,0,40,121,0,5,26,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,106,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,213,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,54,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,68,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,232,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,178,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,171,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,244,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,16,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,39,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,85,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,169,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,206,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,184,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,104,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,203,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,175,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,106,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,198,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,185,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,170,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,150,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,245,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,141,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,87,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,151,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,62,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,31,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,57,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,233,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,194,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,119,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,68,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,190,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,110,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,77,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,80,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,20,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,107,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,138,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,175,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,65,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,12,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,93,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,229,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,249,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,81,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,178,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,70,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,117,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,101,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,227,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,19,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,34,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,55,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,152,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,20,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,38,127,0,0,193,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,113,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,58,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,187,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,13,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,23,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,24,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,21,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,176,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,75,127,0,0,105,121,0,5,0,5,0,0,18,121,0,5,227,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,56,127,0,0,117,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,44,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,144,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,108,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,213,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,162,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,58,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,156,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,180,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,115,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,43,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,237,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,69,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,232,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,116,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,109,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,51,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,115,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,146,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,233,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,82,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,186,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,76,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,212,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,139,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,134,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,58,127,0,0,179,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,18,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,127,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,116,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,14,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,15,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,13,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,123,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,143,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,23,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,199,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,74,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,87,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,8,126,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,117,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,244,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,225,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,128,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,221,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,117,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,116,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,80,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,81,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,146,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,88,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,2,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,31,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,154,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,228,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,199,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,134,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,179,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,40,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,140,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,32,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,102,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,196,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,21,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,93,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,22,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,81,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,66,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,176,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,103,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,54,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,59,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,102,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,34,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,49,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,50,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,62,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,38,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,181,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,18,127,0,0,113,121,0,5,0,5,0,0,28,121,0,5,109,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,53,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,171,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,117,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,51,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,210,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,33,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,25,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,139,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,66,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,27,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,161,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,223,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,129,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,201,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,92,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,29,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,176,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,81,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,67,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,128,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,11,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,155,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,214,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,188,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,12,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,89,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,35,126,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,101,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,132,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,23,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,103,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,145,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,133,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,26,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,133,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,243,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,120,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,146,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,141,121,0,5,0,5,0,0,18,121,0,5,217,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,17,126,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,24,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,156,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,26,127,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,200,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,245,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,226,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,86,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,249,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,154,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,218,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,104,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,141,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,48,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,95,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,105,121,0,5,96,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,110,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,130,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,200,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,15,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,124,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,212,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,174,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,57,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,95,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,244,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,68,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,107,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,9,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,238,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,211,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,75,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,103,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,195,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,137,121,0,5,30,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,221,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,235,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,105,121,0,5,49,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,52,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,39,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,148,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,19,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,110,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,125,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,3,127,0,0,135,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,25,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,148,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,191,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,184,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,7,127,0,0,125,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,115,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,126,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,88,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,33,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,34,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,200,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,15,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,20,127,0,0,103,121,0,5,0,5,0,0,12,121,0,5,148,127,0,0,105,121,0,5,0,5,0,0,40,121,0,5,27,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,55,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,187,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,230,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,34,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,177,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,88,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,87,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,239,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,148,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,37,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,255,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,128,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,82,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,185,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,11,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,35,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,197,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,132,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,57,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,110,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,177,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,12,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,162,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,82,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,127,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,95,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,96,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,227,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,13,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,88,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,120,126,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,102,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,186,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,88,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,28,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,58,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,24,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,97,127,0,0,105,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,200,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,115,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,228,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,69,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,78,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,10,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,163,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,145,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,12,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,38,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,229,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,46,127,0,0,125,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,20,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,149,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,35,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,213,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,233,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,241,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,135,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,70,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,14,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,44,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,16,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,250,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,121,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,131,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,200,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,66,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,199,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,105,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,202,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,67,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,82,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,21,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,167,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,132,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,132,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,198,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,91,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,101,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,234,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,148,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,150,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,102,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,101,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,72,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,119,121,0,5,0,5,0,0,30,121,0,5,89,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,2,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,254,126,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,2,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,75,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,128,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,54,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,76,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,38,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,2,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,255,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,42,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,205,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,118,124,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,3,123,0,0,219,121,0,5,0,5,0,0,38,121,0,5,48,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,133,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,78,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,166,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,244,124,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,10,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,91,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,111,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,69,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,70,127,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,129,121,0,5,24,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,229,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,164,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,15,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,21,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,231,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,60,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,66,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,90,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,119,121,0,5,0,5,0,0,30,121,0,5,3,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,83,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,178,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,79,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,141,125,0,0,119,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,82,123,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,32,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,48,127,0,0,193,121,0,5,0,5,0,0,24,121,0,5,179,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,232,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,153,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,106,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,107,126,0,0,143,121,0,5,0,5,0,0,38,121,0,5,18,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,199,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,62,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,129,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,201,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,11,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,177,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,25,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,61,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,25,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,28,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,135,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,26,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,45,127,0,0,111,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,126,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,92,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,92,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,43,127,0,0,117,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,52,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,59,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,211,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,240,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,70,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,40,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,165,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,188,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,163,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,153,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,142,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,12,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,154,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,251,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,135,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,150,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,73,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,117,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,236,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,3,127,0,0,211,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,103,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,122,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,108,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,22,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,39,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,253,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,70,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,123,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,151,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,163,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,72,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,77,124,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,32,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,89,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,126,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,147,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,229,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,41,127,0,0,103,121,0,5,0,5,0,0,18,121,0,5,228,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,224,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,68,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,230,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,45,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,177,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,146,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,215,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,180,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,17,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,138,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,116,127,0,0,219,121,0,5,0,5,0,0,18,121,0,5,90,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,135,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,44,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,149,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,230,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,92,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,203,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,214,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,92,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,218,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,41,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,36,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,93,125,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,252,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,59,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,178,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,92,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,182,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,164,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,215,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,219,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,201,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,20,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,25,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,62,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,69,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,221,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,189,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,29,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,13,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,30,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,192,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,214,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,81,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,70,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,44,127,0,0,117,121,0,5,0,5,0,0,12,121,0,5,95,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,165,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,93,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,124,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,73,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,253,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,222,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,109,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,46,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,33,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,130,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,7,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,4,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,14,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,110,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,71,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,208,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,203,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,91,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,27,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,52,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,200,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,209,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,40,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,3,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,38,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,41,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,5,125,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,109,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,151,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,105,121,0,5,87,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,14,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,91,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,67,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,135,121,0,5,0,5,0,0,18,121,0,5,117,127,0,0,105,121,0,5,0,5,0,0,12,121,0,5,149,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,165,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,4,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,66,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,60,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,38,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,13,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,86,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,71,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,71,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,22,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,136,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,232,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,6,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,84,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,14,127,0,0,125,121,0,5,0,5,0,0,24,121,0,5,181,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,131,125,0,0,219,121,0,5,0,5,0,0,20,121,0,5,98,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,124,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,40,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,118,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,157,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,4,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,63,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,129,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,168,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,15,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,5,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,150,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,81,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,29,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,175,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,215,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,193,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,97,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,175,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,245,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,129,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,111,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,201,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,69,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,51,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,137,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,182,126,0,0,103,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,77,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,92,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,62,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,67,127,0,0,137,121,0,5,0,5,0,0,20,121,0,5,6,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,9,127,0,0,185,121,0,5,0,5,0,0,6,121,0,5,94,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,246,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,72,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,106,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,85,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,143,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,94,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,122,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,204,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,117,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,7,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,30,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,133,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,212,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,64,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,19,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,23,127,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,30,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,82,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,36,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,71,127,0,0,111,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,102,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,138,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,202,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,52,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,82,127,0,0,137,121,0,5,0,5,0,0,16,121,0,5,118,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,169,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,53,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,22,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,39,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,124,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,170,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,112,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,158,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,19,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,14,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,72,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,41,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,237,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,182,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,238,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,139,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,31,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,222,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,170,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,36,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,192,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,3,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,40,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,47,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,139,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,72,125,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,204,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,250,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,23,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,41,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,39,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,123,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,144,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,59,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,37,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,63,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,234,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,103,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,83,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,42,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,99,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,224,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,81,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,62,127,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,213,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,119,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,247,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,20,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,248,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,151,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,37,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,127,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,133,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,111,121,0,5,58,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,53,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,104,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,233,122,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,42,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,43,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,95,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,24,127,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,99,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,37,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,103,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,119,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,100,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,86,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,39,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,5,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,196,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,60,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,93,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,118,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,42,126,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,31,126,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,246,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,195,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,162,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,99,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,234,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,14,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,24,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,64,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,190,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,122,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,123,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,63,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,22,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,76,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,201,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,237,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,64,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,32,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,104,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,56,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,225,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,98,127,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,8,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,252,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,202,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,244,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,250,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,131,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,120,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,241,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,8,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,193,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,110,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,63,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,183,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,69,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,64,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,234,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,201,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,222,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,65,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,180,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,10,127,0,0,185,121,0,5,0,5,0,0,28,121,0,5,117,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,231,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,121,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,24,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,233,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,93,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,125,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,111,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,232,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,96,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,80,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,33,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,25,127,0,0,103,121,0,5,0,5,0,0,38,121,0,5,8,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,140,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,177,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,190,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,65,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,149,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,131,127,0,0,211,121,0,5,0,5,0,0,18,121,0,5,229,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,202,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,141,125,0,0,179,121,0,5,0,5,0,0,10,121,0,5,166,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,71,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,52,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,171,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,216,125,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,26,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,29,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,26,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,16,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,43,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,152,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,172,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,94,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,149,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,96,127,0,0,129,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,119,121,0,5,103,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,46,127,0,0,111,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,88,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,70,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,145,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,10,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,172,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,247,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,65,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,235,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,20,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,68,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,5,127,0,0,135,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,95,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,20,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,191,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,118,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,67,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,228,123,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,92,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,134,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,87,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,173,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,18,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,200,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,18,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,49,127,0,0,137,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,172,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,113,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,202,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,17,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,202,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,233,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,142,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,72,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,146,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,38,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,21,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,31,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,11,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,35,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,159,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,203,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,63,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,73,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,19,127,0,0,127,121,0,5,0,5,0,0,18,121,0,5,119,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,192,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,101,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,68,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,215,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,65,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,228,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,28,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,44,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,197,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,43,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,15,125,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,27,123,0,0,219,121,0,5,0,5,0,0,10,121,0,5,246,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,231,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,143,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,184,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,82,127,0,0,209,121,0,5,0,5,0,0,38,121,0,5,2,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,153,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,203,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,18,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,83,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,193,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,44,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,69,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,105,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,134,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,134,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,246,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,8,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,204,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,59,127,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,9,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,119,126,0,0,129,121,0,5,0,5,0,0,12,121,0,5,174,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,9,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,39,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,166,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,167,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,82,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,130,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,148,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,41,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,226,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,56,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,58,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,102,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,251,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,42,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,161,125,0,0,179,121,0,5,0,5,0,0,20,121,0,5,100,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,66,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,67,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,73,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,99,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,17,127,0,0,119,121,0,5,0,5,0,0,24,121,0,5,40,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,18,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,6,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,193,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,68,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,191,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,128,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,234,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,26,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,134,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,155,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,74,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,3,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,93,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,23,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,73,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,112,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,75,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,213,126,0,0,193,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,119,121,0,5,226,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,19,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,107,121,0,5,90,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,14,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,125,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,120,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,21,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,86,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,13,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,222,123,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,119,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,14,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,143,121,0,5,23,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,8,127,0,0,125,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,43,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,9,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,147,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,193,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,201,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,160,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,120,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,53,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,22,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,103,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,37,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,129,121,0,5,22,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,62,127,0,0,209,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,111,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,86,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,97,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,176,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,110,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,179,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,89,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,203,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,18,127,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,220,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,208,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,65,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,138,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,247,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,74,127,0,0,111,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,41,122,0,0,185,121,0,5,0,5,0,0,40,121,0,5,41,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,105,121,0,5,101,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,59,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,93,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,88,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,46,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,54,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,107,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,214,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,154,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,150,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,44,124,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,8,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,124,127,0,0,127,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,205,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,105,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,154,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,139,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,174,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,89,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,204,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,66,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,40,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,194,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,19,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,15,127,0,0,121,121,0,5,0,5,0,0,30,121,0,5,180,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,183,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,155,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,19,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,195,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,179,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,45,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,103,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,173,125,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,53,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,47,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,69,124,0,0,219,121,0,5,0,5,0,0,40,121,0,5,30,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,204,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,75,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,193,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,216,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,147,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,181,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,229,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,194,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,126,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,187,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,74,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,156,124,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,253,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,46,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,95,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,67,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,41,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,96,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,36,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,163,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,48,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,104,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,87,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,189,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,242,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,98,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,234,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,126,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,248,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,2,127,0,0,121,121,0,5,0,5,0,0,12,121,0,5,175,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,10,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,57,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,140,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,92,127,0,0,211,121,0,5,0,5,0,0,34,121,0,5,98,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,99,125,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,9,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,223,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,239,123,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,244,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,47,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,171,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,105,121,0,5,78,124,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,183,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,139,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,93,126,0,0,103,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,28,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,185,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,236,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,96,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,118,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,220,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,253,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,234,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,205,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,217,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,143,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,235,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,105,121,0,5,125,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,131,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,215,126,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,206,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,127,121,0,5,172,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,245,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,95,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,79,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,142,123,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,42,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,15,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,227,125,0,0,185,121,0,5,0,5,0,0,10,121,0,5,83,127,0,0,127,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,24,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,74,127,0,0,127,121,0,5,0,5,0,0,12,121,0,5,157,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,168,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,119,121,0,5,240,123,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,157,126,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,205,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,132,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,68,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,33,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,10,122,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,11,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,216,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,68,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,16,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,83,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,84,127,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,70,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,15,127,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,108,127,0,0,211,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,107,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,133,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,239,125,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,43,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,25,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,164,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,82,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,235,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,194,122,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,15,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,99,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,113,124,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,155,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,176,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,81,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,246,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,186,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,2,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,137,121,0,5,177,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,72,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,73,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,254,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,134,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,139,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,205,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,103,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,203,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,69,127,0,0,137,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,142,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,188,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,140,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,120,126,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,195,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,135,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,109,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,128,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,22,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,221,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,86,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,143,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,73,127,0,0,193,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,16,126,0,0,185,121,0,5,0,5,0,0,12,121,0,5,192,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,193,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,131,121,0,5,40,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,84,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,152,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,161,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,144,126,0,0,179,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,21,127,0,0,193,121,0,5,0,5,0,0,20,121,0,5,10,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,162,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,253,125,0,0,179,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,103,121,0,5,112,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,254,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,44,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,232,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,148,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,112,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,9,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,11,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,80,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,204,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,148,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,74,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,34,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,177,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,58,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,73,125,0,0,179,121,0,5,0,5,0,0,12,121,0,5,104,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,203,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,237,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,101,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,19,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,94,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,223,126,0,0,129,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,238,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,206,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,139,121,0,5,55,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,176,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,223,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,5,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,15,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,121,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,137,121,0,5,58,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,150,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,196,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,45,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,134,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,83,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,229,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,6,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,57,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,40,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,114,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,214,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,197,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,198,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,236,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,73,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,155,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,75,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,81,126,0,0,143,121,0,5,0,5,0,0,16,121,0,5,20,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,21,127,0,0,117,121,0,5,0,5,0,0,34,121,0,5,20,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,74,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,25,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,162,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,91,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,149,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,113,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,16,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,243,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,12,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,72,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,198,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,149,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,199,126,0,0,129,121,0,5,0,5,0,0,26,121,0,5,0,5,0,0,103,121,0,5,48,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,165,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,33,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,207,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,57,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,15,127,0,0,143,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,74,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,122,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,123,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,166,126,0,0,193,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,156,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,39,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,230,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,90,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,16,127,0,0,125,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,178,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,4,126,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,69,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,200,126,0,0,129,121,0,5,0,5,0,0,24,121,0,5,41,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,93,127,0,0,211,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,47,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,239,122,0,0,185,121,0,5,0,5,0,0,18,121,0,5,129,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,89,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,63,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,94,127,0,0,211,121,0,5,0,5,0,0,20,121,0,5,207,126,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,56,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,90,126,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,211,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,235,124,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,132,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,236,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,17,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,61,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,101,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,235,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,120,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,145,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,245,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,58,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,91,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,77,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,65,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,151,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,48,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,70,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,105,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,49,124,0,0,219,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,181,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,167,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,19,127,0,0,119,121,0,5,0,5,0,0,18,121,0,5,230,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,173,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,106,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,54,127,0,0,211,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,136,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,104,126,0,0,185,121,0,5,0,5,0,0,10,121,0,5,54,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,137,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,242,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,22,127,0,0,193,121,0,5,0,5,0,0,12,121,0,5,193,126,0,0,119,121,0,5,0,5,0,0,40,121,0,5,42,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,47,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,92,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,42,127,0,0,219,121,0,5,0,5,0,0,34,121,0,5,100,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,48,127,0,0,179,121,0,5,0,5,0,0,28,121,0,5,27,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,21,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,90,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,49,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,230,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,93,122,0,0,185,121,0,5,0,5,0,0,12,121,0,5,194,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,208,126,0,0,143,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,4,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,64,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,166,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,23,127,0,0,193,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,163,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,190,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,140,127,0,0,211,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,75,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,7,127,0,0,135,121,0,5,0,5,0,0,12,121,0,5,177,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,202,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,24,124,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,5,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,8,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,203,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,204,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,184,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,2,127,0,0,113,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,95,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,237,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,20,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,247,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,231,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,40,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,50,124,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,96,127,0,0,219,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,65,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,157,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,201,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,194,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,72,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,85,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,135,127,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,70,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,121,121,0,5,255,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,112,125,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,34,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,121,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,92,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,135,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,130,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,38,127,0,0,129,121,0,5,0,5,0,0,12,121,0,5,97,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,152,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,97,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,7,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,94,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,27,127,0,0,125,121,0,5,0,5,0,0,6,121,0,5,3,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,113,127,0,0,219,121,0,5,0,5,0,0,24,121,0,5,127,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,249,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,11,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,208,124,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,107,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,93,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,204,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,140,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,70,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,45,127,0,0,137,121,0,5,0,5,0,0,34,121,0,5,101,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,244,126,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,71,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,42,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,18,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,134,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,83,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,166,126,0,0,185,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,74,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,68,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,87,127,0,0,211,121,0,5,0,5,0,0,38,121,0,5,3,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,4,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,205,127,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,26,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,224,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,206,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,75,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,76,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,142,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,168,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,111,121,0,5,83,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,38,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,173,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,97,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,108,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,174,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,90,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,19,127,0,0,111,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,23,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,96,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,113,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,175,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,69,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,42,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,185,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,31,125,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,39,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,106,127,0,0,127,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,41,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,16,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,70,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,195,122,0,0,185,121,0,5,0,5,0,0,10,121,0,5,30,127,0,0,125,121,0,5,0,5,0,0,28,121,0,5,114,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,43,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,26,123,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,72,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,196,125,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,132,124,0,0,219,121,0,5,0,5,0,0,28,121,0,5,9,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,153,126,0,0,185,121,0,5,0,5,0,0,10,121,0,5,0,5,0,0,103,121,0,5,78,126,0,0,185,121,0,5,0,5,0,0,42,121,0,5,4,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,43,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,109,123,0,0,185,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,217,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,218,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,25,124,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,197,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,225,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,94,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,196,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,206,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,4,127,0,0,141,121,0,5,0,5,0,0,6,121,0,5,98,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,20,127,0,0,127,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,199,124,0,0,219,121,0,5,0,5,0,0,12,121,0,5,195,126,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,42,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,121,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,44,126,0,0,209,121,0,5,0,5,0,0,24,121,0,5,202,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,86,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,125,121,0,5,55,127,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,107,121,0,5,43,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,153,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,124,126,0,0,179,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,29,123,0,0,219,121,0,5,0,5,0,0,18,121,0,5,212,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,111,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,129,121,0,5,75,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,150,125,0,0,179,121,0,5,0,5,0,0,38,121,0,5,10,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,158,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,97,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,179,126,0,0,179,121,0,5,0,5,0,0,38,121,0,5,9,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,206,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,117,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,89,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,69,126,0,0,129,121,0,5,0,5,0,0,10,121,0,5,202,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,156,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,26,127,0,0,103,121,0,5,0,5,0,0,38,121,0,5,10,127,0,0,105,121,0,5,0,5,0,0,20,121,0,5,12,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,203,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,6,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,11,126,0,0,103,121,0,5,0,5,0,0,38,121,0,5,21,126,0,0,103,121,0,5,0,5,0,0,24,121,0,5,186,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,72,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,165,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,131,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,184,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,7,127,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,2,126,0,0,209,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,82,122,0,0,185,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,115,121,0,5,54,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,13,123,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,145,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,95,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,78,127,0,0,105,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,238,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,22,126,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,197,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,135,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,16,127,0,0,121,121,0,5,0,5,0,0,6,121,0,5,99,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,100,127,0,0,143,121,0,5,0,5,0,0,20,121,0,5,209,126,0,0,143,121,0,5,0,5,0,0,18,121,0,5,67,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,143,123,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,94,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,210,126,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,224,126,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,139,121,0,5,72,126,0,0,193,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,139,121,0,5,149,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,217,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,21,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,221,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,236,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,205,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,237,125,0,0,119,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,45,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,144,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,157,127,0,0,129,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,60,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,228,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,120,123,0,0,185,121,0,5,0,5,0,0,38,121,0,5,0,5,0,0,103,121,0,5,131,122,0,0,185,121,0,5,0,5,0,0,6,121,0,5,107,127,0,0,127,121,0,5,0,5,0,0,16,121,0,5,237,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,98,127,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,217,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,27,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,101,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,60,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,10,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,125,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,87,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,73,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,211,126,0,0,143,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,185,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,87,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,119,121,0,5,60,125,0,0,179,121,0,5,0,5,0,0,24,121,0,5,203,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,167,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,135,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,245,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,189,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,245,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,110,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,106,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,102,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,95,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,215,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,191,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,57,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,58,127,0,0,117,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,19,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,158,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,119,121,0,5,75,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,166,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,110,123,0,0,185,121,0,5,0,5,0,0,42,121,0,5,5,125,0,0,119,121,0,5,0,5,0,0,6,121,0,5,136,127,0,0,143,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,248,122,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,194,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,207,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,139,121,0,5,60,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,204,126,0,0,129,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,121,121,0,5,11,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,143,121,0,5,20,125,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,104,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,64,127,0,0,127,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,9,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,207,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,196,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,129,121,0,5,111,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,88,127,0,0,179,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,103,121,0,5,141,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,17,127,0,0,135,121,0,5,0,5,0,0,6,121,0,5,39,127,0,0,125,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,17,122,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,216,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,105,121,0,5,159,126,0,0,179,121,0,5,0,5,0,0,18,121,0,5,120,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,42,126,0,0,119,121,0,5,0,5,0,0,34,121,0,5,23,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,49,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,107,121,0,5,125,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,29,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,213,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,122,126,0,0,209,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,111,121,0,5,0,5,0,0,24,121,0,5,204,126,0,0,103,121,0,5,0,5,0,0,16,121,0,5,121,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,246,125,0,0,219,121,0,5,0,5,0,0,38,121,0,5,22,126,0,0,103,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,115,121,0,5,88,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,57,126,0,0,209,121,0,5,0,5,0,0,40,121,0,5,32,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,39,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,96,126,0,0,103,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,190,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,94,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,3,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,45,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,28,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,108,127,0,0,127,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,207,124,0,0,185,121,0,5,0,5,0,0,24,121,0,5,43,126,0,0,119,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,118,127,0,0,219,121,0,5,0,5,0,0,40,121,0,5,44,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,16,127,0,0,143,121,0,5,0,5,0,0,24,121,0,5,205,126,0,0,103,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,152,123,0,0,219,121,0,5,0,5,0,0,30,121,0,5,182,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,12,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,178,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,99,127,0,0,219,121,0,5,0,5,0,0,30,121,0,5,4,127,0,0,113,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,32,127,0,0,211,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,254,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,24,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,12,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,125,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,82,127,0,0,105,121,0,5,0,5,0,0,24,121,0,5,206,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,137,127,0,0,143,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,119,121,0,5,26,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,240,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,255,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,212,125,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,143,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,212,126,0,0,185,121,0,5,0,5,0,0,24,121,0,5,44,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,103,121,0,5,198,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,149,127,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,196,126,0,0,193,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,143,121,0,5,169,126,0,0,209,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,27,123,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,222,124,0,0,185,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,215,125,0,0,185,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,111,123,0,0,185,121,0,5,0,5,0,0,16,121,0,5,22,127,0,0,117,121,0,5,0,5,0,0,16,121,0,5,136,126,0,0,119,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,223,124,0,0,185,121,0,5,0,5,0,0,30,121,0,5,150,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,101,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,13,127,0,0,129,121,0,5,0,5,0,0,6,121,0,5,158,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,174,125,0,0,219,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,20,126,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,55,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,89,127,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,143,121,0,5,49,126,0,0,209,121,0,5,0,5,0,0,20,121,0,5,66,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,98,124,0,0,185,121,0,5,0,5,0,0,28,121,0,5,115,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,180,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,105,126,0,0,219,121,0,5,0,5,0,0,38,121,0,5,23,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,74,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,205,123,0,0,185,121,0,5,0,5,0,0,6,121,0,5,20,127,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,42,125,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,62,127,0,0,211,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,58,127,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,136,126,0,0,193,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,119,121,0,5,4,123,0,0,219,121,0,5,0,5,0,0,6,121,0,5,126,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,203,126,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,221,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,129,121,0,5,28,123,0,0,185,121,0,5,0,5,0,0,28,121,0,5,116,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,127,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,71,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,62,127,0,0,129,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,119,121,0,5,134,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,155,125,0,0,219,121,0,5,0,5,0,0,40,121,0,5,0,5,0,0,143,121,0,5,7,126,0,0,193,121,0,5,0,5,0,0,30,121,0,5,183,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,163,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,218,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,25,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,190,126,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,111,121,0,5,156,123,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,167,124,0,0,185,121,0,5,0,5,0,0,34,121,0,5,26,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,23,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,96,127,0,0,193,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,191,126,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,195,126,0,0,179,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,197,123,0,0,219,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,30,125,0,0,219,121,0,5,0,5,0,0,34,121,0,5,27,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,241,125,0,0,179,121,0,5,0,5,0,0,16,121,0,5,50,127,0,0,137,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,64,127,0,0,193,121,0,5,0,5,0,0,30,121,0,5,97,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,143,121,0,5,180,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,36,127,0,0,127,121,0,5,0,5,0,0,6,121,0,5,46,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,208,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,98,126,0,0,103,121,0,5,0,5,0,0,28,121,0,5,13,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,159,127,0,0,129,121,0,5,0,5,0,0,30,121,0,5,46,126,0,0,143,121,0,5,0,5,0,0,34,121,0,5,103,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,199,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,35,125,0,0,219,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,129,121,0,5,61,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,70,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,21,127,0,0,119,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,83,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,142,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,122,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,150,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,112,123,0,0,185,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,119,121,0,5,5,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,137,126,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,105,121,0,5,31,125,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,121,121,0,5,168,126,0,0,185,121,0,5,0,5,0,0,6,121,0,5,209,127,0,0,129,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,103,121,0,5,9,126,0,0,185,121,0,5,0,5,0,0,16,121,0,5,123,126,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,106,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,100,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,111,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,230,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,141,126,0,0,129,121,0,5,0,5,0,0,34,121,0,5,28,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,245,126,0,0,143,121,0,5,0,5,0,0,28,121,0,5,142,126,0,0,129,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,137,121,0,5,112,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,14,127,0,0,117,121,0,5,0,5,0,0,6,121,0,5,102,127,0,0,143,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,231,126,0,0,179,121,0,5,0,5,0,0,24,121,0,5,187,126,0,0,103,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,103,121,0,5,133,124,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,143,121,0,5,216,125,0,0,185,121,0,5,0,5,0,0,34,121,0,5,29,126,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,105,121,0,5,206,126,0,0,179,121,0,5,0,5,0,0,20,121,0,5,40,127,0,0,129,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,179,125,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,54,127,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,129,121,0,5,50,127,0,0,179,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,115,121,0,5,174,125,0,0,185,121,0,5,0,5,0,0,18,121,0,5,214,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,219,126,0,0,103,121,0,5,0,5,0,0,18,121,0,5,220,126,0,0,103,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,139,121,0,5,41,127,0,0,209,121,0,5,0,5,0,0,24,121,0,5,48,127,0,0,111,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,69,126,0,0,209,121,0,5,0,5,0,0,16,121,0,5,30,127,0,0,143,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,111,121,0,5,63,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,138,127,0,0,143,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,129,121,0,5,187,126,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,55,127,0,0,209,121,0,5,0,5,0,0,12,121,0,5,151,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,21,126,0,0,193,121,0,5,0,5,0,0,28,121,0,5,29,127,0,0,137,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,58,126,0,0,209,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,119,127,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,201,126,0,0,219,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,10,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,154,126,0,0,209,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,46,126,0,0,209,121,0,5,0,5,0,0,18,121,0,5,231,126,0,0,143,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,103,121,0,5,11,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,115,121,0,5,123,126,0,0,209,121,0,5,0,5,0,0,12,121,0,5,0,5,0,0,119,121,0,5,22,127,0,0,179,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,57,125,0,0,185,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,192,126,0,0,193,121,0,5,0,5,0,0,20,121,0,5,67,126,0,0,119,121,0,5,0,5,0,0,18,121,0,5,0,5,0,0,143,121,0,5,144,125,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,131,121,0,5,219,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,129,121,0,5,48,125,0,0,179,121,0,5,0,5,0,0,30,121,0,5,184,125,0,0,119,121,0,5,0,5,0,0,30,121,0,5,91,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,213,125,0,0,119,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,197,126,0,0,193,121,0,5,0,5,0,0,38,121,0,5,24,126,0,0,103,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,115,121,0,5,151,126,0,0,179,121,0,5,0,5,0,0,30,121,0,5,0,5,0,0,111,121,0,5,51,124,0,0,219,121,0,5,0,5,0,0,10,121,0,5,167,127,0,0,105,121,0,5,0,5,0,0,6,121,0,5,246,126,0,0,119,121,0,5,0,5,0,0,12,121,0,5,196,126,0,0,119,121,0,5,0,5,0,0,20,121,0,5,212,126,0,0,143,121,0,5,0,5,0,0,24,121,0,5,49,127,0,0,111,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,129,121,0,5,58,125,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,94,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,30,127,0,0,137,121,0,5,0,5,0,0,28,121,0,5,238,125,0,0,119,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,83,124,0,0,185,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,115,121,0,5,56,127,0,0,209,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,111,121,0,5,84,124,0,0,185,121,0,5,0,5,0,0,20,121,0,5,169,126,0,0,143,121,0,5,0,5,0,0,42,121,0,5,0,5,0,0,103,121,0,5,84,122,0,0,185,121,0,5,0,5,0,0,30,121,0,5,40,127,0,0,105,121,0,5,0,5,0,0,30,121,0,5,41,127,0,0,105,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,143,121,0,5,136,122,0,0,185,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,139,121,0,5,168,123,0,0,185,121,0,5,0,5,0,0,34,121,0,5,104,125,0,0,119,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,115,121,0,5,93,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,11,127,0,0,185,121,0,5,0,5,0,0,24,121,0,5,0,5,0,0,111,121,0,5,167,126,0,0,193,121,0,5,0,5,0,0,6,121,0,5,127,127,0,0,127,121,0,5,0,5,0,0,34,121,0,5,0,5,0,0,103,121,0,5,100,125,0,0,179,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,192,126,0,0,185,121,0,5,0,5,0,0,28,121,0,5,15,127,0,0,111,121,0,5,0,5,0,0,28,121,0,5,143,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,24,126,0,0,179,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,103,121,0,5,13,126,0,0,179,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,127,121,0,5,61,126,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,119,121,0,5,76,126,0,0,219,121,0,5,0,5,0,0,20,121,0,5,0,5,0,0,103,121,0,5,233,125,0,0,219,121,0,5,0,5,0,0,16,121,0,5,0,5,0,0,127,121,0,5,62,126,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,119,121,0,5,54,127,0,0,219,121,0,5,0,5,0,0,6,121,0,5,0,5,0,0,103,121,0,5,85,127,0,0,209,121,0,5,0,5,0,0,6,121,0,5,160,127,0,0,129,121,0,5,0,5,0,0,34,121,0,5,12,126,0,0,129,121,0,5,0,5,0,0,28,121,0,5,0,5,0,0,107,121,0,5,242,125,0,0,179,121,0,5,0,5,0,0,28,121,0,5,31,127,0,0,137,121,0,0,0,0,5,5,42,121,5,70,103,121,5,5,6,121,5,5,119,121,5,70,221,121,5,5,42,121,5,5,121,121,5,103,185,121,5,5,28,121,5,101,117,121,5,5,30,121,5,123,143,121,5,5,42,121,5,70,119,121,5,5,40,121,5,5,143,121,5,111,211,121,5,5,28,121,5,70,107,121,5,5,28,121,5,80,137,121,5,5,28,121,5,70,115,121,5,5,42,121,5,71,119,121,5,5,42,121,5,70,105,121,5,5,38,121,5,122,103,121,5,5,42,121,5,5,139,121,5,80,193,121,5,5,42,121,5,70,137,121,5,5,30,121,5,85,111,121,5,5,28,121,5,97,135,121,5,5,30,121,5,86,111,121,5,5,30,121,5,91,121,121,5,5,42,121,5,71,103,121,5,5,40,121,5,5,143,121,5,120,193,121,5,5,28,121,5,71,115,121,5,5,40,121,5,99,105,121,5,5,42,121,5,90,125,121,5,5,6,121,5,92,133,121,5,5,34,121,5,81,143,121,5,5,28,121,5,81,137,121,5,5,28,121,5,101,141,121,5,5,42,121,5,70,129,121,5,5,34,121,5,5,143,121,5,111,209,121,5,5,16,121,5,84,115,121,5,5,42,121,5,5,115,121,5,78,211,121,5,5,42,121,5,84,121,121,5,5,40,121,5,91,127,121,5,5,42,121,5,71,129,121,5,5,28,121,5,102,141,121,5,5,34,121,5,82,143,121,5,5,28,121,5,102,117,121,5,5,38,121,5,5,103,121,5,121,179,121,5,5,28,121,5,73,123,121,5,5,28,121,5,71,107,121,5,5,28,121,5,98,135,121,5,5,28,121,5,123,125,121,5,5,42,121,5,71,105,121,5,5,40,121,5,5,143,121,5,113,211,121,5,5,38,121,5,94,129,121,5,5,42,121,5,79,117,121,5,5,42,121,5,83,127,121,5,5,38,121,5,5,103,121,5,117,211,121,5,5,34,121,5,106,125,121,5,5,40,121,5,105,127,121,5,5,42,121,5,70,141,121,5,5,28,121,5,99,135,121,5,5,28,121,5,118,127,121,5,5,28,121,5,103,141,121,5,5,28,121,5,82,137,121,5,5,30,121,5,113,113,121,5,5,28,121,5,120,141,121,5,5,16,121,5,102,115,121,5,5,42,121,5,111,119,121,5,5,30,121,5,87,111,121,5,5,16,121,5,85,115,121,5,5,42,121,5,5,137,121,5,71,219,121,5,5,38,121,5,115,105,121,5,5,28,121,5,83,137,121,5,5,42,121,5,70,117,121,5,5,28,121,5,126,137,121,5,5,34,121,5,94,135,121,5,5,42,121,5,112,119,121,5,5,28,121,5,72,107,121,5,5,34,121,5,76,111,121,5,5,28,121,5,121,141,121,5,5,42,121,5,71,141,121,5,5,6,121,5,93,133,121,5,5,42,121,5,5,121,121,5,85,219,121,5,5,42,121,5,5,137,121,5,72,219,121,5,5,28,121,5,119,127,121,5,5,42,121,5,5,103,121,5,80,209,121,5,5,28,121,5,103,117,121,5,5,30,121,5,90,113,121,5,5,24,121,5,78,123,121,5,5,34,121,5,70,113,121,5,5,30,121,5,96,121,121,5,5,42,121,5,5,103,121,5,107,193,121,5,5,40,121,5,92,127,121,5,5,6,121,5,94,133,121,5,5,42,121,5,5,125,121,5,71,179,121,5,5,30,121,5,91,113,121,5,5,28,121,5,122,141,121,5,5,42,121,5,5,105,121,5,94,179,121,5,5,42,121,5,5,129,121,5,87,185,121,5,5,40,121,5,106,127,121,5,5,42,121,5,5,129,121,5,88,185,121,5,5,16,121,5,86,115,121,5,5,42,121,5,5,137,121,5,73,219,121,5,5,42,121,5,5,103,121,5,104,211,121,5,5,42,121,5,70,121,121,5,5,42,121,5,5,115,121,5,90,211,121,5,5,42,121,5,70,125,121,5,5,6,121,5,95,133,121,5,5,40,121,5,5,143,121,5,110,193,121,5,5,42,121,5,70,133,121,5,5,38,121,5,5,103,121,5,122,179,121,5,5,42,121,5,5,115,121,5,79,211,121,5,5,6,121,5,85,123,121,5,5,34,121,5,105,143,121,5,5,28,121,5,100,135,121,5,5,42,121,5,5,137,121,5,88,193,121,5,5,42,121,5,72,129,121,5,5,42,121,5,72,103,121,5,5,16,121,5,103,115,121,5,5,34,121,5,80,135,121,5,5,28,121,5,104,117,121,5,5,30,121,5,124,143,121,5,5,38,121,5,116,105,121,5,5,40,121,5,108,103,121,5,5,42,121,5,5,115,121,5,91,211,121,5,5,42,121,5,5,139,121,5,76,193,121,5,5,42,121,5,5,103,121,5,97,211,121,5,5,42,121,5,73,129,121,5,5,40,121,5,87,117,121,5,5,42,121,5,5,103,121,5,81,209,121,5,5,42,121,5,5,139,121,5,70,211,121,5,5,34,121,5,81,135,121,5,5,42,121,5,74,129,121,5,5,42,121,5,83,129,121,5,5,42,121,5,84,103,121,5,5,16,121,5,87,115,121,5,5,42,121,5,72,119,121,5,5,30,121,5,88,111,121,5,5,40,121,5,5,143,121,5,121,193,121,5,5,42,121,5,71,121,121,5,5,42,121,5,88,105,121,5,5,38,121,5,123,103,121,5,5,42,121,5,90,141,121,5,5,30,121,5,125,143,121,5,5,42,121,5,72,105,121,5,5,42,121,5,5,103,121,5,82,209,121,5,5,42,121,5,75,137,121,5,5,6,121,5,88,123,121,5,5,40,121,5,5,129,121,5,97,209,121,5,5,42,121,5,5,119,121,5,116,219,121,5,5,34,121,5,106,143,121,5,5,28,121,5,108,121,121,5,5,42,121,5,5,103,121,5,98,211,121,5,5,42,121,5,70,127,121,5,5,40,121,5,100,105,121,5,5,42,121,5,91,141,121,5,5,28,121,5,84,137,121,5,5,16,121,5,104,115,121,5,5,38,121,5,124,103,121,5,5,38,121,5,5,103,121,5,123,179,121,5,5,42,121,5,5,103,121,5,83,209,121,5,5,30,121,5,92,113,121,5,5,42,121,5,75,129,121,5,5,42,121,5,5,103,121,5,84,209,121,5,5,42,121,5,71,133,121,5,5,42,121,5,5,121,121,5,104,185,121,5,5,42,121,5,72,141,121,5,5,28,121,5,122,135,121,5,5,42,121,5,84,129,121,5,5,42,121,5,5,121,121,5,109,219,121,5,5,42,121,5,5,131,121,5,80,185,121,5,5,28,121,5,85,137,121,5,5,42,121,5,76,129,121,5,5,42,121,5,5,103,121,5,105,211,121,5,5,34,121,5,83,143,121,5,5,38,121,5,5,103,121,5,108,209,121,5,5,40,121,5,107,127,121,5,5,42,121,5,80,117,121,5,5,42,121,5,85,121,121,5,5,34,121,5,109,125,121,5,5,34,121,5,82,135,121,5,5,42,121,5,113,119,121,5,5,42,121,5,92,141,121,5,5,42,121,5,5,139,121,5,74,211,121,5,5,42,121,5,70,111,121,5,5,42,121,5,73,141,121,5,5,36,121,5,71,123,121,5,5,42,121,5,5,125,121,5,73,179,121,5,5,42,121,5,71,127,121,5,5,42,121,5,85,103,121,5,5,34,121,5,79,113,121,5,5,42,121,5,84,127,121,5,5,28,121,5,121,117,121,5,5,42,121,5,74,141,121,5,5,42,121,5,71,125,121,5,5,42,121,5,5,119,121,5,99,193,121,5,5,28,121,5,109,121,121,5,5,28,121,5,101,135,121,5,5,30,121,5,92,121,121,5,5,40,121,5,92,103,121,5,5,38,121,5,5,103,121,5,124,179,121,5,5,42,121,5,73,105,121,5,5,42,121,5,85,129,121,5,5,42,121,5,5,115,121,5,92,211,121,5,5,28,121,5,80,107,121,5,5,38,121,5,99,125,121,5,5,34,121,5,5,111,121,5,121,211,121,5,5,42,121,5,86,129,121,5,5,30,121,5,93,113,121,5,5,28,121,5,120,127,121,5,5,38,121,5,5,103,121,5,118,211,121,5,5,38,121,5,5,103,121,5,114,211,121,5,5,42,121,5,5,129,121,5,89,185,121,5,5,34,121,5,103,129,121,5,5,42,121,5,71,111,121,5,5,38,121,5,125,103,121,5,5,42,121,5,5,129,121,5,90,185,121,5,5,42,121,5,5,103,121,5,98,179,121,5,5,42,121,5,73,119,121,5,5,42,121,5,74,119,121,5,5,42,121,5,73,103,121,5,5,28,121,5,118,125,121,5,5,28,121,5,73,107,121,5,5,38,121,5,117,105,121,5,5,36,121,5,72,123,121,5,5,28,121,5,121,127,121,5,5,42,121,5,5,115,121,5,80,211,121,5,5,42,121,5,5,121,121,5,105,185,121,5,5,42,121,5,5,115,121,5,86,179,121,5,5,38,121,5,95,129,121,5,5,42,121,5,74,105,121,5,5,10,121,5,113,115,121,5,5,42,121,5,75,119,121,5,5,28,121,5,72,115,121,5,5,40,121,5,109,103,121,5,5,38,121,5,100,129,121,5,5,28,121,5,122,127,121,5,5,38,121,5,96,129,121,5,5,34,121,5,77,111,121,5,5,34,121,5,5,111,121,5,122,211,121,5,5,30,121,5,89,111,121,5,5,28,121,5,102,135,121,5,5,28,121,5,123,127,121,5,5,42,121,5,75,141,121,5,5,28,121,5,103,135,121,5,5,28,121,5,74,123,121,5,5,30,121,5,114,113,121,5,5,34,121,5,83,135,121,5,5,40,121,5,93,103,121,5,5,28,121,5,110,121,121,5,5,42,121,5,86,121,121,5,5,42,121,5,5,121,121,5,110,219,121,5,5,28,121,5,77,123,121,5,5,42,121,5,5,115,121,5,74,209,121,5,5,40,121,5,108,127,121,5,5,28,121,5,122,117,121,5,5,42,121,5,114,119,121,5,5,42,121,5,115,119,121,5,5,42,121,5,72,121,121,5,5,42,121,5,76,141,121,5,5,40,121,5,88,117,121,5,5,42,121,5,5,115,121,5,100,193,121,5,5,40,121,5,110,105,121,5,5,42,121,5,72,127,121,5,5,42,121,5,75,105,121,5,5,42,121,5,5,103,121,5,99,179,121,5,5,28,121,5,86,137,121,5,5,30,121,5,113,111,121,5,5,42,121,5,5,125,121,5,79,219,121,5,5,28,121,5,104,141,121,5,5,28,121,5,87,137,121,5,5,42,121,5,5,121,121,5,106,185,121,5,5,42,121,5,76,105,121,5,5,34,121,5,5,143,121,5,120,209,121,5,5,34,121,5,107,143,121,5,5,6,121,5,117,121,121,5,5,34,121,5,5,143,121,5,112,209,121,5,5,28,121,5,124,127,121,5,5,42,121,5,81,117,121,5,5,42,121,5,5,121,121,5,120,185,121,5,5,28,121,5,104,135,121,5,5,34,121,5,84,135,121,5,5,42,121,5,5,139,121,5,77,193,121,5,5,42,121,5,86,103,121,5,5,40,121,5,110,103,121,5,5,30,121,5,114,111,121,5,5,42,121,5,76,119,121,5,5,34,121,5,84,143,121,5,5,42,121,5,5,115,121,5,81,211,121,5,5,34,121,5,107,125,121,5,5,42,121,5,85,127,121,5,5,28,121,5,124,125,121,5,5,28,121,5,125,125,121,5,5,28,121,5,119,125,121,5,5,28,121,5,125,127,121,5,5,42,121,5,5,111,121,5,77,209,121,5,5,42,121,5,89,105,121,5,5,28,121,5,123,141,121,5,5,28,121,5,120,125,121,5,5,30,121,5,93,121,121,5,5,40,121,5,94,103,121,5,5,34,121,5,108,143,121,5,5,42,121,5,77,141,121,5,5,34,121,5,5,111,121,5,123,211,121,5,5,30,121,5,94,113,121,5,5,42,121,5,77,129,121,5,5,28,121,5,123,135,121,5,5,40,121,5,5,119,121,5,110,179,121,5,5,42,121,5,5,121,121,5,86,219,121,5,5,34,121,5,85,143,121,5,5,40,121,5,89,117,121,5,5,42,121,5,5,121,121,5,107,185,121,5,5,28,121,5,88,137,121,5,5,28,121,5,89,137,121,5,5,30,121,5,90,111,121,5,5,30,121,5,94,121,121,5,5,28,121,5,90,137,121,5,5,42,121,5,74,103,121,5,5,42,121,5,5,139,121,5,73,209,121,5,5,40,121,5,90,117,121,5,5,42,121,5,90,105,121,5,5,16,121,5,88,115,121,5,5,42,121,5,72,125,121,5,5,42,121,5,5,115,121,5,90,179,121,5,5,40,121,5,91,117,121,5,5,42,121,5,5,119,121,5,117,219,121,5,5,30,121,5,95,113,121,5,5,42,121,5,77,119,121,5,5,40,121,5,5,143,121,5,111,193,121,5,5,42,121,5,71,117,121,5,5,34,121,5,80,113,121,5,5,42,121,5,70,135,121,5,5,40,121,5,93,127,121,5,5,40,121,5,70,143,121,5,5,42,121,5,5,139,121,5,74,185,121,5,5,42,121,5,73,125,121,5,5,42,121,5,78,129,121,5,5,42,121,5,5,121,121,5,87,219,121,5,5,42,121,5,82,117,121,5,5,42,121,5,71,135,121,5,5,40,121,5,5,143,121,5,112,193,121,5,5,38,121,5,5,103,121,5,109,209,121,5,5,38,121,5,5,139,121,5,118,179,121,5,5,36,121,5,70,123,121,5,5,34,121,5,5,143,121,5,121,209,121,5,5,42,121,5,5,139,121,5,75,185,121,5,5,42,121,5,5,119,121,5,96,193,121,5,5,40,121,5,111,103,121,5,5,42,121,5,116,119,121,5,5,38,121,5,118,105,121,5,5,42,121,5,5,121,121,5,111,219,121,5,5,42,121,5,5,115,121,5,93,211,121,5,5,42,121,5,5,121,121,5,88,219,121,5,5,42,121,5,5,137,121,5,76,219,121,5,5,42,121,5,74,125,121,5,5,42,121,5,5,137,121,5,85,193,121,5,5,34,121,5,86,143,121,5,5,42,121,5,5,139,121,5,71,211,121,5,5,30,121,5,96,113,121,5,5,42,121,5,5,115,121,5,94,211,121,5,5,42,121,5,75,125,121,5,5,42,121,5,93,141,121,5,5,40,121,5,101,105,121,5,5,28,121,5,91,137,121,5,5,42,121,5,5,121,121,5,108,185,121,5,5,34,121,5,77,133,121,5,5,34,121,5,78,111,121,5,5,42,121,5,5,119,121,5,83,179,121,5,5,42,121,5,5,119,121,5,97,193,121,5,5,28,121,5,92,137,121,5,5,42,121,5,72,117,121,5,5,24,121,5,82,123,121,5,5,34,121,5,81,133,121,5,5,42,121,5,5,121,121,5,89,219,121,5,5,28,121,5,74,107,121,5,5,28,121,5,93,137,121,5,5,28,121,5,94,137,121,5,5,40,121,5,5,107,121,5,115,179,121,5,5,28,121,5,105,141,121,5,5,42,121,5,5,115,121,5,95,211,121,5,5,42,121,5,5,121,121,5,90,219,121,5,5,38,121,5,119,105,121,5,5,42,121,5,5,121,121,5,91,219,121,5,5,40,121,5,94,127,121,5,5,38,121,5,5,139,121,5,116,179,121,5,5,42,121,5,73,117,121,5,5,16,121,5,89,115,121,5,5,28,121,5,105,135,121,5,5,6,121,5,96,133,121,5,5,42,121,5,79,141,121,5,5,42,121,5,78,141,121,5,5,42,121,5,77,105,121,5,5,42,121,5,87,103,121,5,5,42,121,5,76,125,121,5,5,42,121,5,5,121,121,5,121,185,121,5,5,28,121,5,106,141,121,5,5,6,121,5,118,121,121,5,5,42,121,5,5,119,121,5,84,179,121,5,5,42,121,5,80,141,121,5,5,42,121,5,94,141,121,5,5,42,121,5,78,119,121,5,5,16,121,5,90,115,121,5,5,42,121,5,79,119,121,5,5,40,121,5,95,103,121,5,5,38,121,5,97,129,121,5,5,40,121,5,71,143,121,5,5,30,121,5,91,111,121,5,5,34,121,5,104,129,121,5,5,28,121,5,126,127,121,5,5,28,121,5,123,117,121,5,5,6,121,5,89,123,121,5,5,30,121,5,95,121,121,5,5,42,121,5,5,115,121,5,82,211,121,5,5,34,121,5,5,111,121,5,124,211,121,5,5,42,121,5,5,139,121,5,76,185,121,5,5,6,121,5,86,123,121,5,5,28,121,5,124,117,121,5,5,38,121,5,5,103,121,5,104,209,121,5,5,34,121,5,105,129,121,5,5,28,121,5,95,137,121,5,5,30,121,5,97,113,121,5,5,42,121,5,5,121,121,5,109,185,121,5,5,34,121,5,82,133,121,5,5,42,121,5,72,135,121,5,5,28,121,5,75,107,121,5,5,38,121,5,5,103,121,5,119,211,121,5,5,38,121,5,5,103,121,5,115,211,121,5,5,42,121,5,71,137,121,5,5,34,121,5,110,125,121,5,5,40,121,5,109,127,121,5,5,6,121,5,97,133,121,5,5,42,121,5,78,135,121,5,5,40,121,5,96,103,121,5,5,38,121,5,5,105,121,5,119,179,121,5,5,42,121,5,76,137,121,5,5,30,121,5,115,113,121,5,5,28,121,5,107,141,121,5,5,42,121,5,87,121,121,5,5,42,121,5,5,121,121,5,74,179,121,5,5,40,121,5,97,103,121,5,5,38,121,5,75,111,121,5,5,42,121,5,5,121,121,5,75,179,121,5,5,28,121,5,96,137,121,5,5,42,121,5,73,127,121,5,5,40,121,5,102,105,121,5,5,40,121,5,97,117,121,5,5,40,121,5,92,117,121,5,5,42,121,5,74,127,121,5,5,16,121,5,91,115,121,5,5,40,121,5,111,105,121,5,5,42,121,5,80,119,121,5,5,42,121,5,5,139,121,5,70,185,121,5,5,42,121,5,75,103,121,5,5,42,121,5,5,121,121,5,92,219,121,5,5,42,121,5,5,121,121,5,93,219,121,5,5,42,121,5,81,141,121,5,5,42,121,5,5,121,121,5,111,185,121,5,5,42,121,5,77,125,121,5,5,42,121,5,81,119,121,5,5,42,121,5,5,131,121,5,81,185,121,5,5,42,121,5,5,129,121,5,96,185,121,5,5,42,121,5,73,135,121,5,5,28,121,5,106,135,121,5,5,42,121,5,74,117,121,5,5,40,121,5,5,119,121,5,111,179,121,5,5,42,121,5,95,141,121,5,5,42,121,5,75,127,121,5,5,42,121,5,5,129,121,5,97,185,121,5,5,40,121,5,5,119,121,5,112,179,121,5,5,42,121,5,82,141,121,5,5,24,121,5,83,123,121,5,5,28,121,5,105,117,121,5,5,34,121,5,71,113,121,5,5,34,121,5,108,125,121,5,5,42,121,5,78,125,121,5,5,28,121,5,97,137,121,5,5,6,121,5,86,133,121,5,5,42,121,5,79,129,121,5,5,40,121,5,95,127,121,5,5,30,121,5,92,111,121,5,5,40,121,5,98,103,121,5,5,30,121,5,115,111,121,5,5,34,121,5,5,143,121,5,113,209,121,5,5,28,121,5,125,117,121,5,5,28,121,5,111,121,121,5,5,6,121,5,119,121,121,5,5,28,121,5,98,137,121,5,5,42,121,5,5,103,121,5,106,211,121,5,5,28,121,5,99,137,121,5,5,30,121,5,116,111,121,5,5,42,121,5,91,125,121,5,5,42,121,5,5,105,121,5,95,179,121,5,5,42,121,5,5,121,121,5,112,185,121,5,5,34,121,5,87,143,121,5,5,42,121,5,76,127,121,5,5,16,121,5,105,115,121,5,5,30,121,5,98,113,121,5,5,34,121,5,81,113,121,5,5,28,121,5,108,141,121,5,5,34,121,5,106,129,121,5,5,28,121,5,76,107,121,5,5,34,121,5,5,143,121,5,122,209,121,5,5,28,121,5,100,137,121,5,5,28,121,5,101,137,121,5,5,30,121,5,93,111,121,5,5,42,121,5,78,105,121,5,5,34,121,5,107,129,121,5,5,42,121,5,5,121,121,5,94,219,121,5,5,34,121,5,111,125,121,5,5,38,121,5,5,103,121,5,116,211,121,5,5,42,121,5,5,103,121,5,107,211,121,5,5,38,121,5,100,125,121,5,5,42,121,5,83,117,121,5,5,30,121,5,94,111,121,5,5,40,121,5,96,127,121,5,5,34,121,5,108,129,121,5,5,42,121,5,73,121,121,5,5,6,121,5,98,133,121,5,5,34,121,5,95,135,121,5,5,42,121,5,5,125,121,5,80,219,121,5,5,42,121,5,79,125,121,5,5,42,121,5,5,103,121,5,85,209,121,5,5,6,121,5,87,133,121,5,5,16,121,5,92,115,121,5,5,42,121,5,5,139,121,5,70,209,121,5,5,42,121,5,5,139,121,5,71,185,121,5,5,42,121,5,91,105,121,5,5,42,121,5,96,141,121,5,5,28,121,5,124,141,121,5,5,42,121,5,5,129,121,5,89,193,121,5,5,42,121,5,5,139,121,5,71,209,121,5,5,42,121,5,5,139,121,5,72,209,121,5,5,42,121,5,5,111,121,5,106,193,121,5,5,42,121,5,74,111,121,5,5,42,121,5,5,139,121,5,75,211,121,5,5,28,121,5,73,115,121,5,5,42,121,5,5,121,121,5,110,185,121,5,5,28,121,5,75,123,121,5,5,38,121,5,120,105,121,5,5,40,121,5,110,127,121,5,5,34,121,5,82,113,121,5,5,42,121,5,86,127,121,5,5,42,121,5,72,133,121,5,5,28,121,5,109,141,121,5,5,42,121,5,82,119,121,5,5,34,121,5,96,135,121,5,5,30,121,5,117,111,121,5,5,6,121,5,99,133,121,5,5,42,121,5,5,139,121,5,81,193,121,5,5,28,121,5,74,115,121,5,5,42,121,5,5,119,121,5,118,219,121,5,5,28,121,5,106,117,121,5,5,38,121,5,121,105,121,5,5,34,121,5,5,143,121,5,114,209,121,5,5,34,121,5,5,143,121,5,123,209,121,5,5,42,121,5,117,119,121,5,5,40,121,5,103,105,121,5,5,30,121,5,95,111,121,5,5,42,121,5,76,103,121,5,5,28,121,5,102,137,121,5,5,34,121,5,88,143,121,5,5,42,121,5,5,121,121,5,95,219,121,5,5,40,121,5,5,143,121,5,113,193,121,5,5,42,121,5,5,119,121,5,119,219,121,5,5,40,121,5,99,103,121,5,5,38,121,5,122,105,121,5,5,42,121,5,92,125,121,5,5,28,121,5,103,137,121,5,5,42,121,5,5,119,121,5,120,219,121,5,5,42,121,5,5,115,121,5,91,179,121,5,5,42,121,5,5,137,121,5,74,219,121,5,5,42,121,5,5,121,121,5,90,193,121,5,5,28,121,5,112,121,121,5,5,42,121,5,5,139,121,5,72,211,121,5,5,40,121,5,100,103,121,5,5,42,121,5,83,119,121,5,5,42,121,5,79,105,121,5,5,34,121,5,5,143,121,5,115,209,121,5,5,42,121,5,5,115,121,5,83,211,121,5,5,40,121,5,104,105,121,5,5,42,121,5,77,127,121,5,5,34,121,5,72,113,121,5,5,42,121,5,5,103,121,5,86,209,121,5,5,42,121,5,87,129,121,5,5,34,121,5,89,143,121,5,5,42,121,5,78,127,121,5,5,42,121,5,84,119,121,5,5,34,121,5,80,111,121,5,5,42,121,5,80,125,121,5,5,42,121,5,5,121,121,5,113,185,121,5,5,30,121,5,96,111,121,5,5,38,121,5,101,129,121,5,5,28,121,5,100,121,121,5,5,28,121,5,126,125,121,5,5,28,121,5,107,135,121,5,5,28,121,5,104,137,121,5,5,42,121,5,85,119,121,5,5,42,121,5,5,121,121,5,96,219,121,5,5,34,121,5,109,129,121,5,5,42,121,5,5,103,121,5,108,211,121,5,5,42,121,5,118,119,121,5,5,42,121,5,5,121,121,5,97,219,121,5,5,42,121,5,5,121,121,5,91,193,121,5,5,42,121,5,93,125,121,5,5,42,121,5,119,119,121,5,5,40,121,5,5,143,121,5,122,193,121,5,5,34,121,5,73,113,121,5,5,42,121,5,86,119,121,5,5,40,121,5,97,127,121,5,5,28,121,5,125,141,121,5,5,34,121,5,112,125,121,5,5,42,121,5,5,139,121,5,76,211,121,5,5,42,121,5,5,121,121,5,98,219,121,5,5,6,121,5,88,133,121,5,5,30,121,5,118,111,121,5,5,42,121,5,5,125,121,5,82,219,121,5,5,42,121,5,87,119,121,5,5,38,121,5,5,105,121,5,120,179,121,5,5,42,121,5,81,125,121,5,5,28,121,5,107,117,121,5,5,30,121,5,99,113,121,5,5,42,121,5,88,119,121,5,5,28,121,5,105,137,121,5,5,42,121,5,89,119,121,5,5,16,121,5,93,115,121,5,5,40,121,5,5,119,121,5,113,179,121,5,5,42,121,5,80,105,121,5,5,30,121,5,119,111,121,5,5,24,121,5,79,123,121,5,5,42,121,5,90,119,121,5,5,40,121,5,112,103,121,5,5,42,121,5,74,121,121,5,5,42,121,5,82,125,121,5,5,34,121,5,85,135,121,5,5,42,121,5,5,139,121,5,72,185,121,5,5,42,121,5,72,137,121,5,5,42,121,5,5,119,121,5,121,219,121,5,5,42,121,5,5,131,121,5,84,185,121,5,5,42,121,5,5,129,121,5,91,185,121,5,5,42,121,5,5,139,121,5,77,185,121,5,5,42,121,5,5,115,121,5,92,179,121,5,5,42,121,5,88,103,121,5,5,42,121,5,74,135,121,5,5,42,121,5,5,131,121,5,82,185,121,5,5,42,121,5,5,121,121,5,99,219,121,5,5,28,121,5,124,135,121,5,5,42,121,5,5,121,121,5,114,185,121,5,5,42,121,5,80,129,121,5,5,42,121,5,87,127,121,5,5,42,121,5,5,129,121,5,92,185,121,5,5,42,121,5,83,141,121,5,5,40,121,5,111,127,121,5,5,28,121,5,125,135,121,5,5,42,121,5,84,141,121,5,5,42,121,5,85,141,121,5,5,34,121,5,90,143,121,5,5,42,121,5,73,133,121,5,5,42,121,5,97,141,121,5,5,42,121,5,5,129,121,5,93,185,121,5,5,42,121,5,5,115,121,5,87,179,121,5,5,40,121,5,5,119,121,5,114,179,121,5,5,42,121,5,5,129,121,5,98,185,121,5,5,42,121,5,98,141,121,5,5,40,121,5,101,103,121,5,5,28,121,5,108,135,121,5,5,40,121,5,113,103,121,5,5,28,121,5,77,107,121,5,5,42,121,5,79,127,121,5,5,40,121,5,105,105,121,5,5,34,121,5,5,111,121,5,125,211,121,5,5,30,121,5,120,111,121,5,5,38,121,5,5,139,121,5,117,179,121,5,5,42,121,5,120,119,121,5,5,42,121,5,86,141,121,5,5,42,121,5,5,143,121,5,71,193,121,5,5,42,121,5,91,119,121,5,5,30,121,5,97,111,121,5,5,42,121,5,5,103,121,5,103,179,121,5,5,40,121,5,98,117,121,5,5,42,121,5,5,115,121,5,84,211,121,5,5,40,121,5,106,105,121,5,5,28,121,5,108,117,121,5,5,28,121,5,126,141,121,5,5,30,121,5,116,113,121,5,5,42,121,5,121,119,121,5,5,28,121,5,121,125,121,5,5,28,121,5,113,121,121,5,5,30,121,5,98,111,121,5,5,42,121,5,88,129,121,5,5,28,121,5,106,137,121,5,5,28,121,5,107,137,121,5,5,42,121,5,5,121,121,5,92,193,121,5,5,40,121,5,99,117,121,5,5,28,121,5,126,117,121,5,5,42,121,5,83,125,121,5,5,42,121,5,5,111,121,5,78,209,121,5,5,42,121,5,92,105,121,5,5,42,121,5,5,129,121,5,99,185,121,5,5,42,121,5,5,125,121,5,72,179,121,5,5,42,121,5,5,111,121,5,79,209,121,5,5,40,121,5,114,103,121,5,5,40,121,5,5,143,121,5,114,193,121,5,5,42,121,5,81,129,121,5,5,40,121,5,112,105,121,5,5,34,121,5,5,143,121,5,116,209,121,5,5,42,121,5,92,119,121,5,5,40,121,5,102,103,121,5,5,30,121,5,117,113,121,5,5,28,121,5,109,135,121,5,5,42,121,5,93,105,121,5,5,42,121,5,77,103,121,5,5,42,121,5,93,119,121,5,5,28,121,5,108,137,121,5,5,42,121,5,5,121,121,5,112,219,121,5,5,24,121,5,84,123,121,5,5,34,121,5,113,125,121,5,5,42,121,5,5,121,121,5,100,219,121,5,5,42,121,5,5,121,121,5,115,185,121,5,5,28,121,5,75,115,121,5,5,6,121,5,120,121,121,5,5,42,121,5,94,119,121,5,5,40,121,5,98,127,121,5,5,28,121,5,101,121,121,5,5,28,121,5,109,137,121,5,5,28,121,5,122,125,121,5,5,40,121,5,5,143,121,5,115,193,121,5,5,34,121,5,109,143,121,5,5,42,121,5,73,137,121,5,5,42,121,5,88,121,121,5,5,42,121,5,75,121,121,5,5,34,121,5,5,111,121,5,126,211,121,5,5,40,121,5,5,143,121,5,116,193,121,5,5,28,121,5,110,141,121,5,5,42,121,5,5,139,121,5,82,193,121,5,5,34,121,5,83,133,121,5,5,40,121,5,72,143,121,5,5,30,121,5,99,111,121,5,5,42,121,5,94,105,121,5,5,34,121,5,110,143,121,5,5,34,121,5,91,143,121,5,5,42,121,5,5,139,121,5,73,185,121,5,5,30,121,5,97,121,121,5,5,34,121,5,92,143,121,5,5,28,121,5,126,135,121,5,5,34,121,5,84,133,121,5,5,42,121,5,89,103,121,5,5,42,121,5,5,103,121,5,104,179,121,5,5,40,121,5,100,117,121,5,5,28,121,5,110,137,121,5,5,16,121,5,106,115,121,5,5,34,121,5,93,143,121,5,5,42,121,5,5,121,121,5,101,219,121,5,5,42,121,5,95,119,121,5,5,42,121,5,88,127,121,5,5,42,121,5,122,119,121,5,5,42,121,5,123,119,121,5,5,40,121,5,115,103,121,5,5,42,121,5,5,103,121,5,105,179,121,5,5,40,121,5,73,143,121,5,5,34,121,5,110,129,121,5,5,42,121,5,5,103,121,5,109,211,121,5,5,42,121,5,5,103,121,5,99,211,121,5,5,42,121,5,94,125,121,5,5,42,121,5,84,117,121,5,5,38,121,5,5,103,121,5,105,209,121,5,5,30,121,5,118,113,121,5,5,28,121,5,109,117,121,5,5,42,121,5,5,103,121,5,109,193,121,5,5,42,121,5,5,121,121,5,79,179,121,5,5,42,121,5,5,121,121,5,80,179,121,5,5,28,121,5,111,141,121,5,5,28,121,5,76,123,121,5,5,34,121,5,83,113,121,5,5,34,121,5,5,143,121,5,117,209,121,5,5,40,121,5,5,115,121,5,101,209,121,5,5,40,121,5,103,103,121,5,5,42,121,5,5,103,121,5,106,179,121,5,5,24,121,5,80,123,121,5,5,42,121,5,5,121,121,5,76,179,121,5,5,42,121,5,5,121,121,5,77,179,121,5,5,34,121,5,114,125,121,5,5,28,121,5,76,115,121,5,5,16,121,5,94,115,121,5,5,42,121,5,5,121,121,5,81,179,121,5,5,42,121,5,96,119,121,5,5,40,121,5,99,127,121,5,5,30,121,5,100,113,121,5,5,40,121,5,5,129,121,5,99,209,121,5,5,42,121,5,76,121,121,5,5,30,121,5,119,113,121,5,5,42,121,5,87,141,121,5,5,42,121,5,77,121,121,5,5,34,121,5,111,129,121,5,5,6,121,5,121,121,121,5,5,42,121,5,88,141,121,5,5,30,121,5,120,113,121,5,5,40,121,5,107,105,121,5,5,34,121,5,94,143,121,5,5,40,121,5,5,129,121,5,98,209,121,5,5,34,121,5,95,143,121,5,5,28,121,5,110,117,121,5,5,42,121,5,5,121,121,5,78,179,121,5,5,42,121,5,5,115,121,5,101,193,121,5,5,40,121,5,5,115,121,5,102,209,121,5,5,28,121,5,114,121,121,5,5,28,121,5,102,121,121,5,5,28,121,5,103,121,121,5,5,40,121,5,116,103,121,5,5,42,121,5,5,119,121,5,98,193,121,5,5,38,121,5,123,105,121,5,5,30,121,5,101,113,121,5,5,40,121,5,5,143,121,5,117,193,121,5,5,42,121,5,124,119,121,5,5,30,121,5,100,111,121,5,5,42,121,5,5,121,121,5,102,219,121,5,5,42,121,5,5,115,121,5,96,211,121,5,5,42,121,5,89,129,121,5,5,40,121,5,5,143,121,5,123,193,121,5,5,6,121,5,100,133,121,5,5,42,121,5,5,121,121,5,103,219,121,5,5,40,121,5,117,103,121,5,5,42,121,5,97,119,121,5,5,16,121,5,107,115,121,5,5,42,121,5,5,119,121,5,122,219,121,5,5,42,121,5,5,139,121,5,78,193,121,5,5,42,121,5,5,121,121,5,116,185,121,5,5,30,121,5,101,111,121,5,5,42,121,5,5,115,121,5,104,193,121,5,5,34,121,5,111,143,121,5,5,28,121,5,111,137,121,5,5,34,121,5,96,143,121,5,5,42,121,5,5,103,121,5,87,209,121,5,5,34,121,5,74,113,121,5,5,28,121,5,110,135,121,5,5,30,121,5,121,113,121,5,5,34,121,5,97,143,121,5,5,34,121,5,115,125,121,5,5,42,121,5,98,119,121,5,5,40,121,5,112,127,121,5,5,6,121,5,101,133,121,5,5,42,121,5,84,125,121,5,5,42,121,5,5,129,121,5,100,185,121,5,5,42,121,5,5,143,121,5,72,193,121,5,5,42,121,5,90,103,121,5,5,30,121,5,121,111,121,5,5,6,121,5,90,123,121,5,5,30,121,5,117,125,121,5,5,6,121,5,87,123,121,5,5,34,121,5,98,143,121,5,5,40,121,5,104,103,121,5,5,40,121,5,5,143,121,5,124,193,121,5,5,30,121,5,122,111,121,5,5,28,121,5,112,141,121,5,5,42,121,5,89,141,121,5,5,42,121,5,5,139,121,5,73,211,121,5,5,42,121,5,5,139,121,5,77,211,121,5,5,34,121,5,86,135,121,5,5,42,121,5,79,135,121,5,5,42,121,5,5,105,121,5,96,179,121,5,5,40,121,5,118,103,121,5,5,28,121,5,78,107,121,5,5,38,121,5,5,103,121,5,106,209,121,5,5,34,121,5,87,135,121,5,5,42,121,5,5,121,121,5,113,219,121,5,5,42,121,5,80,127,121,5,5,40,121,5,93,117,121,5,5,28,121,5,111,135,121,5,5,38,121,5,124,105,121,5,5,42,121,5,99,119,121,5,5,42,121,5,5,137,121,5,77,219,121,5,5,42,121,5,5,137,121,5,75,219,121,5,5,42,121,5,5,115,121,5,85,211,121,5,5,34,121,5,88,135,121,5,5,42,121,5,5,115,121,5,86,211,121,5,5,34,121,5,116,125,121,5,5,40,121,5,5,143,121,5,109,179,121,5,5,38,121,5,101,125,121,5,5,16,121,5,108,115,121,5,5,34,121,5,78,133,121,5,5,42,121,5,85,125,121,5,5,30,121,5,102,113,121,5,5,16,121,5,109,115,121,5,5,28,121,5,104,121,121,5,5,34,121,5,89,135,121,5,5,34,121,5,99,143,121,5,5,28,121,5,112,137,121,5,5,28,121,5,83,115,121,5,5,28,121,5,77,115,121,5,5,42,121,5,5,139,121,5,70,219,121,5,5,28,121,5,78,115,121,5,5,28,121,5,113,141,121,5,5,42,121,5,5,103,121,5,88,209,121,5,5,42,121,5,74,133,121,5,5,42,121,5,100,119,121,5,5,40,121,5,105,103,121,5,5,28,121,5,111,117,121,5,5,42,121,5,78,121,121,5,5,34,121,5,112,129,121,5,5,38,121,5,125,105,121,5,5,30,121,5,102,111,121,5,5,30,121,5,123,111,121,5,5,40,121,5,5,143,121,5,118,193,121,5,5,42,121,5,86,125,121,5,5,28,121,5,79,115,121,5,5,42,121,5,5,121,121,5,104,219,121,5,5,42,121,5,78,103,121,5,5,30,121,5,98,121,121,5,5,42,121,5,5,103,121,5,92,209,121,5,5,42,121,5,5,115,121,5,87,211,121,5,5,34,121,5,112,143,121,5,5,6,121,5,122,121,121,5,5,40,121,5,119,103,121,5,5,42,121,5,5,103,121,5,93,209,121,5,5,42,121,5,79,121,121,5,5,30,121,5,103,111,121,5,5,34,121,5,79,133,121,5,5,34,121,5,81,111,121,5,5,28,121,5,112,135,121,5,5,34,121,5,113,129,121,5,5,42,121,5,5,131,121,5,83,185,121,5,5,28,121,5,115,121,121,5,5,28,121,5,113,137,121,5,5,30,121,5,104,111,121,5,5,28,121,5,113,135,121,5,5,40,121,5,120,103,121,5,5,42,121,5,101,119,121,5,5,42,121,5,5,129,121,5,101,185,121,5,5,34,121,5,84,113,121,5,5,42,121,5,102,119,121,5,5,40,121,5,5,143,121,5,125,193,121,5,5,34,121,5,85,113,121,5,5,40,121,5,94,117,121,5,5,28,121,5,114,135,121,5,5,42,121,5,75,117,121,5,5,34,121,5,86,113,121,5,5,28,121,5,114,141,121,5,5,34,121,5,113,143,121,5,5,42,121,5,95,105,121,5,5,42,121,5,5,129,121,5,78,219,121,5,5,42,121,5,5,129,121,5,94,185,121,5,5,30,121,5,103,113,121,5,5,16,121,5,95,115,121,5,5,28,121,5,112,117,121,5,5,30,121,5,105,111,121,5,5,28,121,5,113,117,121,5,5,42,121,5,103,119,121,5,5,42,121,5,5,103,121,5,100,179,121,5,5,42,121,5,89,127,121,5,5,34,121,5,79,111,121,5,5,42,121,5,72,111,121,5,5,42,121,5,104,119,121,5,5,42,121,5,74,137,121,5,5,42,121,5,75,133,121,5,5,42,121,5,76,133,121,5,5,34,121,5,100,143,121,5,5,30,121,5,124,111,121,5,5,42,121,5,87,125,121,5,5,28,121,5,105,121,121,5,5,42,121,5,5,121,121,5,95,193,121,5,5,42,121,5,5,103,121,5,100,211,121,5,5,42,121,5,5,121,121,5,105,219,121,5,5,28,121,5,115,135,121,5,5,42,121,5,79,103,121,5,5,42,121,5,105,119,121,5,5,28,121,5,106,121,121,5,5,34,121,5,5,143,121,5,120,211,121,5,5,42,121,5,81,105,121,5,5,28,121,5,115,141,121,5,5,16,121,5,110,115,121,5,5,16,121,5,96,115,121,5,5,42,121,5,5,115,121,5,102,193,121,5,5,28,121,5,116,135,121,5,5,28,121,5,116,141,121,5,5,40,121,5,100,127,121,5,5,30,121,5,125,111,121,5,5,40,121,5,74,143,121,5,5,28,121,5,114,117,121,5,5,28,121,5,114,137,121,5,5,40,121,5,113,127,121,5,5,30,121,5,104,113,121,5,5,34,121,5,82,111,121,5,5,28,121,5,117,135,121,5,5,30,121,5,126,111,121,5,5,38,121,5,102,125,121,5,5,34,121,5,114,143,121,5,5,42,121,5,5,143,121,5,73,193,121,5,5,40,121,5,108,105,121,5,5,42,121,5,5,105,121,5,97,179,121,5,5,34,121,5,83,111,121,5,5,42,121,5,82,105,121,5,5,42,121,5,5,129,121,5,95,185,121,5,5,42,121,5,5,139,121,5,79,193,121,5,5,28,121,5,107,121,121,5,5,42,121,5,5,139,121,5,78,185,121,5,5,42,121,5,73,111,121,5,5,40,121,5,77,143,121,5,5,30,121,5,106,111,121,5,5,42,121,5,90,129,121,5,5,28,121,5,115,117,121,5,5,6,121,5,89,133,121,5,5,42,121,5,5,143,121,5,70,193,121,5,5,42,121,5,80,121,121,5,5,42,121,5,83,105,121,5,5,42,121,5,95,125,121,5,5,6,121,5,91,123,121,5,5,6,121,5,123,121,121,5,5,28,121,5,115,137,121,5,5,42,121,5,88,125,121,5,5,6,121,5,124,121,121,5,5,28,121,5,117,141,121,5,5,34,121,5,114,129,121,5,5,28,121,5,116,137,121,5,5,42,121,5,5,131,121,5,85,185,121,5,5,34,121,5,75,113,121,5,5,42,121,5,84,105,121,5,5,28,121,5,117,137,121,5,5,42,121,5,75,135,121,5,5,42,121,5,5,103,121,5,94,209,121,5,5,30,121,5,105,113,121,5,5,42,121,5,5,131,121,5,86,185,121,5,5,28,121,5,118,135,121,5,5,42,121,5,85,117,121,5,5,42,121,5,5,103,121,5,101,179,121,5,5,42,121,5,81,121,121,5,5,42,121,5,91,129,121,5,5,28,121,5,116,121,121,5,5,42,121,5,5,137,121,5,86,193,121,5,5,28,121,5,118,141,121,5,5,42,121,5,106,119,121,5,5,28,121,5,116,117,121,5,5,42,121,5,86,117,121,5,5,42,121,5,5,121,121,5,93,193,121,5,5,42,121,5,99,141,121,5,5,42,121,5,107,119,121,5,5,28,121,5,117,117,121,5,5,34,121,5,115,143,121,5,5,40,121,5,101,127,121,5,5,40,121,5,109,105,121,5,5,42,121,5,82,121,121,5,5,38,121,5,5,103,121,5,107,209,121,5,5,30,121,5,107,111,121,5,5,40,121,5,5,115,121,5,100,209,121,5,5,42,121,5,5,121,121,5,114,219,121,5,5,42,121,5,80,103,121,5,5,42,121,5,89,125,121,5,5,34,121,5,80,133,121,5,5,42,121,5,5,115,121,5,88,179,121,5,5,42,121,5,5,115,121,5,105,193,121,5,5,34,121,5,90,135,121,5,5,34,121,5,115,129,121,5,5,38,121,5,126,105,121,5,5,40,121,5,106,103,121,5,5,6,121,5,125,121,121,5,5,6,121,5,102,133,121,5,5,34,121,5,116,143,121,5,5,28,121,5,118,137,121,5,5,30,121,5,122,113,121,5,5,28,121,5,119,137,121,5,5,30,121,5,106,113,121,5,5,42,121,5,76,117,121,5,5,30,121,5,123,113,121,5,5,30,121,5,108,111,121,5,5,30,121,5,124,113,121,5,5,34,121,5,87,113,121,5,5,6,121,5,90,133,121,5,5,34,121,5,101,143,121,5,5,42,121,5,76,135,121,5,5,28,121,5,80,115,121,5,5,42,121,5,5,103,121,5,108,193,121,5,5,28,121,5,81,115,121,5,5,42,121,5,5,103,121,5,95,209,121,5,5,40,121,5,78,143,121,5,5,42,121,5,5,139,121,5,83,193,121,5,5,42,121,5,96,125,121,5,5,34,121,5,116,129,121,5,5,38,121,5,103,125,121,5,5,42,121,5,82,129,121,5,5,38,121,5,98,129,121,5,5,30,121,5,109,111,121,5,5,34,121,5,76,113,121,5,5,40,121,5,5,143,121,5,112,211,121,5,5,28,121,5,121,137,121,5,5,28,121,5,120,137,121,5,5,6,121,5,126,121,121,5,5,42,121,5,81,103,121,5,5,42,121,5,5,121,121,5,106,219,121,5,5,28,121,5,119,135,121,5,5,34,121,5,77,113,121,5,5,28,121,5,122,137,121,5,5,40,121,5,75,143,121,5,5,42,121,5,85,105,121,5,5,42,121,5,5,121,121,5,117,185,121,5,5,16,121,5,111,115,121,5,5,30,121,5,110,111,121,5,5,42,121,5,5,103,121,5,110,211,121,5,5,42,121,5,5,103,121,5,107,179,121,5,5,34,121,5,84,111,121,5,5,34,121,5,5,143,121,5,124,209,121,5,5,34,121,5,117,129,121,5,5,40,121,5,121,103,121,5,5,28,121,5,123,137,121,5,5,34,121,5,118,129,121,5,5,38,121,5,5,103,121,5,110,209,121,5,5,42,121,5,92,129,121,5,5,42,121,5,81,127,121,5,5,42,121,5,5,119,121,5,85,179,121,5,5,34,121,5,91,135,121,5,5,30,121,5,107,113,121,5,5,34,121,5,119,129,121,5,5,42,121,5,96,105,121,5,5,28,121,5,119,141,121,5,5,42,121,5,77,117,121,5,5,42,121,5,5,139,121,5,79,185,121,5,5,28,121,5,124,137,121,5,5,28,121,5,79,107,121,5,5,34,121,5,5,143,121,5,118,209,121,5,5,42,121,5,5,125,121,5,83,219,121,5,5,42,121,5,5,103,121,5,89,209,121,5,5,28,121,5,118,117,121,5,5,42,121,5,5,115,121,5,88,211,121,5,5,34,121,5,5,143,121,5,125,209,121,5,5,34,121,5,120,129,121,5,5,34,121,5,121,129,121,5,5,34,121,5,117,143,121,5,5,30,121,5,125,113,121,5,5,42,121,5,91,103,121,5,5,28,121,5,125,137,121,5,5,34,121,5,5,143,121,5,119,209,121,5,5,24,121,5,81,123,121,5,5,34,121,5,122,129,121,5,5,42,121,5,5,121,121,5,115,219,121,5,5,42,121,5,108,119,121,5,5,40,121,5,114,127,121,5,5,42,121,5,5,125,121,5,81,219,121,5,5,42,121,5,5,129,121,5,102,185,121,5,5,42,121,5,5,121,121,5,82,179,121,5,5,16,121,5,112,115,121,5,5,40,121,5,115,127,121,5,5,40,121,5,95,117,121,5,5,42,121,5,5,103,121,5,101,211,121,5,5,16,121,5,97,115,121,5,5,42,121,5,5,121,121,5,94,193,121,5,5,42,121,5,5,103,121,5,102,211,121,5,5,38,121,5,5,139,121,5,103,209,121,5,5,42,121,5,5,103,121,5,96,209,121,5,5,6,121,5,103,133,121,5,5,34,121,5,118,143,121,5,5,40,121,5,76,143,121,5,5,40,121,5,96,117,121,5,5,42,121,5,5,103,121,5,103,211,121,5,5,30,121,5,108,113,121,5,5,42,121,5,5,103,121,5,90,209,121,5,5,30,121,5,126,113,121,5,5,42,121,5,5,121,121,5,107,219,121,5,5,30,121,5,109,113,121,5,5,38,121,5,105,125,121,5,5,42,121,5,5,111,121,5,75,209,121,5,5,42,121,5,77,137,121,5,5,34,121,5,102,143,121,5,5,30,121,5,111,111,121,5,5,34,121,5,123,129,121,5,5,40,121,5,113,105,121,5,5,28,121,5,119,117,121,5,5,42,121,5,82,103,121,5,5,40,121,5,114,105,121,5,5,30,121,5,110,113,121,5,5,34,121,5,88,113,121,5,5,42,121,5,5,115,121,5,89,179,121,5,5,42,121,5,83,121,121,5,5,40,121,5,79,143,121,5,5,42,121,5,78,117,121,5,5,28,121,5,120,135,121,5,5,42,121,5,109,119,121,5,5,42,121,5,5,115,121,5,103,193,121,5,5,28,121,5,120,117,121,5,5,40,121,5,107,103,121,5,5,42,121,5,5,143,121,5,74,193,121,5,5,42,121,5,97,105,121,5,5,42,121,5,97,125,121,5,5,42,121,5,5,115,121,5,89,211,121,5,5,38,121,5,104,125,121,5,5,34,121,5,85,133,121,5,5,30,121,5,111,113,121,5,5,42,121,5,110,119,121,5,5,40,121,5,103,127,121,5,5,40,121,5,102,127,121,5,5,28,121,5,82,115,121,5,5,42,121,5,90,127,121,5,5,42,121,5,93,129,121,5,5,42,121,5,100,141,121,5,5,6,121,5,104,133,121,5,5,6,121,5,91,133,121,5,5,40,121,5,5,143,121,5,119,193,121,5,5,34,121,5,103,143,121,5,5,42,121,5,86,105,121,5,5,34,121,5,124,129,121,5,5,40,121,5,104,127,121,5,5,42,121,5,89,121,121,5,5,42,121,5,82,127,121,5,5,42,121,5,5,111,121,5,76,209,121,5,5,34,121,5,92,135,121,5,5,16,121,5,98,115,121,5,5,42,121,5,5,121,121,5,118,185,121,5,5,16,121,5,99,115,121,5,5,38,121,5,102,129,121,5,5,42,121,5,87,105,121,5,5,34,121,5,78,113,121,5,5,40,121,5,116,127,121,5,5,34,121,5,89,113,121,5,5,40,121,5,80,143,121,5,5,42,121,5,78,137,121,5,5,30,121,5,99,121,121,5,5,42,121,5,5,115,121,5,93,179,121,5,5,38,121,5,99,129,121,5,5,28,121,5,121,135,121,5,5,42,121,5,98,105,121,5,5,34,121,5,119,143,121,5,5,34,121,5,125,129,121,5,5,42,121,5,83,103,121,5,5,42,121,5,5,121,121,5,119,185,121,5,5,40,121,5,117,127,121,5,5,42,121,5,98,125,121,5,5,34,121,5,120,143,121,5,5,34,121,5,121,143,121,5,5,42,121,5,79,137,121,5,5,34,121,5,122,143,121,5,5,42,121,5,5,103,121,5,102,179,121,5,5,34,121,5,93,135,121,5,5,42,121,5,5,137,121,5,87,193,121,5,5,42,121,5,5,103,121,5,108,179,121,5,5,42,121,5,5,103,121,5,91,209,121,5,5,6,121,5,105,133,121,5,5,16,121,5,100,115,121,5,5,42,121,5,77,135,121,5,5,42,121,5,5,121,121,5,108,219,121,5,5,42,121,5,5,125,121,5,84,219,121,5,5,16,121,5,101,115,121,5,5,42,121,5,5,139,121,5,70,179,121,5,5,42,121,5,5,143,121,5,75,193,121,5,5,30,121,5,112,113,121,5,5,34,121,5,104,143,121,5,5,42,121,5,5,139,121,5,84,193,121,5,5,30,121,5,112,111,121,5,5,42,121,5,90,121,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,67,0,50,0,59,0,19,46,0,16,56,5,0,96,1,0,0,96,170,170,170,170,162,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,72,0,0,0,72,1,0,0,168,24,0,0,168,24,0,0,176,24,0,0,176,24,0,0,244,24,0,0,244,24,0,0,82,34,0,0,138,38,0,0,18,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,39,246,247,248,249,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,254,255,50,105,114,84,1,0,64,8,109,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,100,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,5,212,55,18,254,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,0,198,1,0,0,0,1,12,128,107,2,117,152,75,1,254,158,187,0,7,249,74,0,196,249,38,0,10,250,20,0,10,250,255,255,25,253,193,42,30,250,255,255,195,252,193,136,60,250,255,255,135,251,193,8,149,250,255,255,11,252,193,192,206,250,255,255,224,253,193,118,196,249,255,255,224,253,193,12,233,249,255,255,98,253,193,98,247,249,255,255,152,252,193,118,8,250,255,255,15,253,193,118,64,249,16,0,64,249,255,255,209,253,193,178,113,249,255,255,78,253,193,128,129,249,255,255,106,251,193,100,138,249,255,255,42,251,193,8,7,249,255,255,224,253,193,118,8,249,255,255,224,253,193,118,10,249,255,255,98,253,193,242,52,249,255,255,198,252,193,84,127,159,75,0,159,159,57,0,159,159,255,255,224,253,193,218,160,159,255,255,224,253,193,236,126,216,4,0,2,249,255,255,70,253,193,218,9,0,210,221,20,0,210,221,255,255,45,253,193,112,21,222,255,255,213,253,193,94,23,222,255,255,217,253,193,36,24,222,255,255,217,253,193,222,28,222,255,255,219,253,193,240,29,220,255,255,34,251,193,200,117,220,255,255,130,251,193,144,120,220,255,255,135,251,193,8,144,220,255,255,160,251,193,102,196,221,255,255,16,253,193,52,127,159,255,255,223,253,193,110,141,159,255,255,224,253,193,12,153,159,255,255,224,253,193,96,156,159,255,255,224,253,193,118,59,159,16,0,59,159,255,255,219,253,193,240,74,159,255,255,220,253,193,176,80,159,255,255,220,253,193,236,82,159,255,255,220,253,193,248,254,158,255,255,217,253,193,222,14,159,255,255,218,253,193,6,19,159,255,255,218,253,193,62,32,159,255,255,218,253,193,220,50,155,70,0,165,158,34,0,205,158,16,0,205,158,255,255,214,253,193,124,209,158,255,255,214,253,193,252,249,158,255,255,217,253,193,36,253,158,255,255,217,253,193,62,165,158,255,255,211,253,193,56,166,158,255,255,212,253,193,196,187,158,255,255,213,253,193,94,195,158,255,255,213,253,193,210,229,156,16,0,229,156,255,255,195,253,193,218,31,158,255,255,206,253,193,72,117,158,255,255,208,253,193,240,127,158,255,255,209,253,193,178,50,155,255,255,180,253,193,172,60,155,255,255,181,253,193,166,90,155,255,255,184,253,193,2,124,156,255,255,193,253,193,64,153,153,34,0,216,154,16,0,216,154,255,255,175,253,193,232,223,154,255,255,176,253,193,186,37,155,255,255,180,253,193,58,47,155,255,255,180,253,193,136,153,153,255,255,164,253,193,252,172,153,255,255,165,253,193,208,108,154,255,255,171,253,193,244,168,154,255,255,173,253,193,168,222,152,16,0,222,152,255,255,157,253,193,164,223,152,255,255,157,253,193,170,99,153,255,255,163,253,193,20,150,153,255,255,164,253,193,110,117,152,255,255,153,253,193,70,168,152,255,255,154,253,193,82,206,152,255,255,156,253,193,242,219,152,255,255,157,253,193,122,100,141,142,0,127,149,70,0,94,151,34,0,230,151,16,0,230,151,255,255,147,253,193,30,237,151,255,255,147,253,193,108,243,151,255,255,147,253,193,184,1,152,255,255,148,253,193,142,94,151,255,255,140,253,193,44,98,151,255,255,140,253,193,152,105,151,255,255,141,253,193,160,203,151,255,255,145,253,193,196,182,150,16,0,182,150,255,255,131,253,193,186,185,150,255,255,131,253,193,228,232,150,255,255,134,253,193,178,81,151,255,255,139,253,193,216,127,149,255,255,120,253,193,2,128,149,255,255,120,253,193,6,232,149,255,255,124,253,193,84,28,150,255,255,125,253,193,154,181,143,34,0,204,145,16,0,204,145,255,255,98,253,193,98,209,145,255,255,98,253,193,242,133,148,255,255,114,253,193,86,119,149,255,255,118,253,193,200,181,143,255,255,78,253,193,176,145,144,255,255,87,253,193,98,73,145,255,255,93,253,193,148,198,145,255,255,98,253,193,30,202,142,16,0,202,142,255,255,70,253,193,218,102,143,255,255,76,253,193,100,155,143,255,255,77,253,193,186,176,143,255,255,78,253,193,128,100,141,255,255,54,253,193,190,112,141,255,255,55,253,193,84,179,141,255,255,59,253,193,84,171,142,255,255,68,253,193,230,107,134,70,0,0,138,34,0,85,140,16,0,85,140,255,255,45,253,193,112,120,140,255,255,47,253,193,36,157,140,255,255,48,253,193,190,29,141,255,255,53,253,193,202,0,138,255,255,30,253,193,38,160,139,255,255,40,253,193,192,55,140,255,255,43,253,193,160,70,140,255,255,44,253,193,90,126,137,16,0,126,137,255,255,24,253,193,136,139,137,255,255,25,253,193,42,193,137,255,255,27,253,193,148,210,137,255,255,27,253,193,240,107,134,255,255,254,252,193,150,64,136,255,255,14,253,193,202,76,136,255,255,15,253,193,118,99,136,255,255,16,253,193,52,252,129,34,0,110,130,16,0,110,130,255,255,222,252,193,106,114,130,255,255,222,252,193,140,120,130,255,255,223,252,193,6,77,134,255,255,252,252,193,174,252,129,255,255,217,252,193,10,12,130,255,255,218,252,193,106,27,130,255,255,219,252,193,90,31,130,255,255,219,252,193,128,137,128,16,0,137,128,255,255,203,252,193,226,227,129,255,255,215,252,193,90,234,129,255,255,215,252,193,222,243,129,255,255,216,252,193,152,12,128,255,255,198,252,193,214,18,128,255,255,199,252,193,40,51,128,255,255,200,252,193,74,127,128,255,255,203,252,193,128,54,98,30,1,132,115,142,0,226,119,70,0,115,124,34,0,81,127,16,0,81,127,255,255,189,252,193,238,138,127,255,255,193,252,193,14,189,127,255,255,195,252,193,136,1,128,255,255,198,252,193,84,115,124,255,255,168,252,193,76,248,124,255,255,174,252,193,70,159,126,255,255,185,252,193,220,54,127,255,255,188,252,193,198,190,121,16,0,190,121,255,255,140,252,193,156,116,122,255,255,148,252,193,22,203,122,255,255,152,252,193,118,249,122,255,255,154,252,193,154,226,119,255,255,124,252,193,16,243,119,255,255,125,252,193,134,58,121,255,255,134,252,193,210,184,121,255,255,140,252,193,88,139,117,34,0,174,118,16,0,174,118,255,255,109,252,193,26,191,118,255,255,110,252,193,184,238,118,255,255,113,252,193,128,219,119,255,255,123,252,193,54,139,117,255,255,98,252,193,100,146,117,255,255,98,252,193,176,118,118,255,255,106,252,193,156,125,118,255,255,106,252,193,250,24,117,16,0,24,117,255,255,92,252,193,188,31,117,255,255,93,252,193,36,40,117,255,255,93,252,193,208,48,117,255,255,94,252,193,32,132,115,255,255,79,252,193,112,137,115,255,255,79,252,193,132,220,116,255,255,89,252,193,158,230,116,255,255,90,252,193,104,179,107,70,0,42,114,34,0,71,114,16,0,71,114,255,255,66,252,193,252,89,114,255,255,68,252,193,28,91,114,255,255,68,252,193,94,172,114,255,255,72,252,193,46,42,114,255,255,64,252,193,48,54,114,255,255,65,252,193,150,59,114,255,255,65,252,193,218,63,114,255,255,66,252,193,14,15,108,16,0,15,108,255,255,20,252,193,236,20,108,255,255,21,252,193,54,52,108,255,255,21,252,193,230,107,112,255,255,48,252,193,142,179,107,255,255,14,252,193,174,203,107,255,255,16,252,193,104,212,107,255,255,16,252,193,180,219,107,255,255,17,252,193,22,224,101,34,0,40,103,16,0,40,103,255,255,235,251,193,114,32,107,255,255,6,252,193,188,98,107,255,255,9,252,193,190,121,107,255,255,11,252,193,192,224,101,255,255,222,251,193,42,229,101,255,255,222,251,193,86,240,102,255,255,232,251,193,90,8,103,255,255,233,251,193,86,135,101,16,0,135,101,255,255,217,251,193,254,151,101,255,255,218,251,193,178,164,101,255,255,219,251,193,74,185,101,255,255,220,251,193,68,54,98,255,255,190,251,193,162,75,98,255,255,191,251,193,156,47,101,255,255,212,251,193,60,52,101,255,255,212,251,193,230,215,86,142,0,219,93,70,0,254,94,34,0,97,95,16,0,97,95,255,255,165,251,193,122,115,95,255,255,166,251,193,88,195,95,255,255,169,251,193,252,8,98,255,255,188,251,193,76,254,94,255,255,160,251,193,102,11,95,255,255,161,251,193,108,19,95,255,255,161,251,193,216,80,95,255,255,164,251,193,210,114,94,16,0,114,94,255,255,153,251,193,170,122,94,255,255,154,251,193,90,127,94,255,255,154,251,193,218,244,94,255,255,159,251,193,254,219,93,255,255,147,251,193,66,229,93,255,255,147,251,193,210,241,93,255,255,148,251,193,132,254,93,255,255,149,251,193,20,80,91,34,0,34,92,16,0,34,92,255,255,130,251,193,144,56,92,255,255,131,251,193,192,110,92,255,255,135,251,193,8,113,92,255,255,135,251,193,128,80,91,255,255,119,251,193,108,128,91,255,255,121,251,193,174,248,91,255,255,128,251,193,22,15,92,255,255,129,251,193,34,10,89,16,0,10,89,255,255,100,251,193,232,21,89,255,255,101,251,193,136,39,89,255,255,102,251,193,204,115,89,255,255,106,251,193,100,215,86,255,255,83,251,193,76,31,87,255,255,85,251,193,186,235,88,255,255,99,251,193,220,2,89,255,255,100,251,193,178,224,81,70,0,65,83,34,0,130,83,16,0,130,83,255,255,50,251,193,178,182,83,255,255,53,251,193,120,200,83,255,255,54,251,193,122,227,83,255,255,56,251,193,112,65,83,255,255,47,251,193,180,92,83,255,255,49,251,193,44,100,83,255,255,209,253,193,152,105,83,255,255,49,251,193,240,249,82,16,0,249,82,255,255,44,251,193,244,21,83,255,255,45,251,193,234,26,83,255,255,46,251,193,82,56,83,255,255,47,251,193,118,224,81,255,255,33,251,193,196,245,81,255,255,34,251,193,200,0,82,255,255,35,251,193,132,155,82,255,255,42,251,193,8,160,78,34,0,107,81,16,0,107,81,255,255,28,251,193,74,130,81,255,255,29,251,193,104,150,81,255,255,30,251,193,74,171,81,255,255,31,251,193,62,160,78,255,255,8,251,193,232,186,78,255,255,10,251,193,68,63,81,255,255,26,251,193,4,101,81,255,255,27,251,193,188,63,78,16,0,63,78,255,255,4,251,193,252,89,78,255,255,6,251,193,26,133,78,255,255,7,251,193,248,140,78,255,255,8,251,193,74,0,78,255,255,2,251,193,2,40,78,255,255,4,251,193,60,44,78,255,255,66,252,193,246,54,78,255,255,4,251,193,200,26,130,246,1,0,78,1,78,40,78,41,78,44,78,45,78,54,78,55,78,63,78,64,78,89,78,90,78,133,78,134,78,140,78,141,78,160,78,161,78,186,78,187,78,63,81,64,81,101,81,102,81,107,81,108,81,130,81,131,81,150,81,151,81,171,81,172,81,224,81,225,81,245,81,246,81,0,82,1,82,155,82,156,82,249,82,250,82,21,83,22,83,26,83,27,83,56,83,57,83,65,83,66,83,92,83,93,83,100,83,101,83,105,83,106,83,130,83,131,83,182,83,183,83,200,83,201,83,227,83,228,83,215,86,216,86,31,87,32,87,235,88,236,88,2,89,3,89,10,89,11,89,21,89,22,89,39,89,40,89,115,89,116,89,80,91,81,91,128,91,129,91,248,91,249,91,15,92,16,92,34,92,35,92,56,92,57,92,110,92,111,92,113,92,114,92,219,93,220,93,229,93,230,93,241,93,242,93,254,93,255,93,114,94,115,94,122,94,123,94,127,94,128,94,244,94,245,94,254,94,255,94,11,95,12,95,19,95,20,95,80,95,81,95,97,95,98,95,115,95,116,95,195,95,196,95,8,98,9,98,54,98,55,98,75,98,76,98,47,101,48,101,52,101,53,101,135,101,136,101,151,101,152,101,164,101,165,101,185,101,186,101,224,101,225,101,229,101,230,101,240,102,241,102,8,103,9,103,40,103,41,103,32,107,33,107,98,107,99,107,121,107,122,107,179,107,180,107,203,107,204,107,212,107,213,107,219,107,220,107,15,108,16,108,20,108,21,108,52,108,53,108,107,112,108,112,42,114,43,114,54,114,55,114,59,114,60,114,63,114,64,114,71,114,72,114,89,114,90,114,91,114,92,114,172,114,173,114,132,115,133,115,137,115,138,115,220,116,221,116,230,116,231,116,24,117,25,117,31,117,32,117,40,117,41,117,48,117,49,117,139,117,140,117,146,117,147,117,118,118,119,118,125,118,126,118,174,118,175,118,191,118,192,118,238,118,239,118,219,119,220,119,226,119,227,119,243,119,244,119,58,121,59,121,184,121,185,121,190,121,191,121,116,122,117,122,203,122,204,122,249,122,250,122,115,124,116,124,248,124,249,124,159,126,160,126,54,127,55,127,81,127,82,127,138,127,139,127,189,127,190,127,1,128,2,128,12,128,13,128,18,128,19,128,51,128,52,128,127,128,128,128,137,128,138,128,227,129,228,129,234,129,235,129,243,129,244,129,252,129,253,129,12,130,13,130,27,130,28,130,31,130,32,130,110,130,111,130,114,130,115,130,120,130,121,130,77,134,78,134,107,134,108,134,64,136,65,136,76,136,77,136,99,136,100,136,126,137,127,137,139,137,140,137,193,137,194,137,210,137,211,137,0,138,1,138,160,139,161,139,55,140,56,140,70,140,71,140,85,140,86,140,120,140,121,140,157,140,158,140,29,141,30,141,100,141,101,141,112,141,113,141,179,141,180,141,171,142,172,142,202,142,203,142,102,143,103,143,155,143,156,143,176,143,177,143,181,143,182,143,145,144,146,144,73,145,74,145,198,145,199,145,204,145,205,145,209,145,210,145,133,148,134,148,119,149,120,149,127,149,129,149,232,149,233,149,28,150,29,150,182,150,183,150,185,150,186,150,232,150,233,150,81,151,82,151,94,151,95,151,98,151,99,151,105,151,106,151,203,151,204,151,230,151,231,151,237,151,238,151,243,151,244,151,1,152,2,152,117,152,118,152,168,152,169,152,206,152,207,152,219,152,220,152,222,152,224,152,99,153,100,153,150,153,151,153,153,153,154,153,172,153,173,153,108,154,109,154,168,154,169,154,216,154,217,154,223,154,224,154,37,155,38,155,47,155,48,155,50,155,51,155,60,155,61,155,90,155,91,155,124,156,125,156,229,156,230,156,31,158,32,158,117,158,118,158,127,158,128,158,165,158,167,158,187,158,188,158,195,158,196,158,205,158,206,158,209,158,210,158,249,158,250,158,253,158,255,158,14,159,15,159,19,159,20,159,32,159,33,159,59,159,60,159,74,159,75,159,80,159,81,159,82,159,83,159,127,159,128,159,141,159,142,159,153,159,154,159,156,159,157,159,159,159,161,159,126,216,127,216,2,249,3,249,7,249,9,249,10,249,11,249,52,249,53,249,64,249,65,249,113,249,114,249,129,249,130,249,138,249,139,249,196,249,197,249,233,249,234,249,247,249,248,249,8,250,9,250,10,250,11,250,30,250,31,250,60,250,61,250,149,250,150,250,206,250,207,250,2,0,29,248,2,0,30,248,2,0,117,248,2,0,118,248,2,0,120,248,2,0,121,248,2,0,144,248,2,0,145,248,2,0,196,249,2,0,197,249,2,0,210,249,2,0,211,249,2,0,21,250,2,0,22,250,2,0,23,250,2,0,25,250,2,0,28,250,2,0,29,250,170,170,3,0,67,0,50,0,59,0,39,17,1,16,4,0,0,96,1,0,0,96,4,0,43,0,82,0,91,0,100,0,170,170,101,37,0,32,13,46,0,32,33,17,1,32,209,26,1,32,1,0,32,0,214,26,1,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,206,6,0,32,7,0,0,0,21,0,0,0,208,6,0,0,208,6,0,0,3,0,0,0,0,0,0,0,71,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,94,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,80,9,60,0,2,9,60,0,60,0,1,9,60,0,3,9,38,0,57,9,60,0,51,9,60,0,21,9,77,9,55,9,0,0,250,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,120,0,0,0,120,1,0,0,120,25,0,0,120,25,0,0,128,25,0,0,128,25,0,0,204,25,0,0,204,25,0,0,220,25,0,0,226,25,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,39,40,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,119,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,102,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,104,193,3,7,104,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,143,104,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,104,0,0,0,0,193,2,143,104,194,5,175,240,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,62,104,5,5,49,0,77,9,55,9,255,255,143,104,193,3,2,0,55,9,56,9,170,170,3,0,69,0,52,0,61,0,71,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,199,6,0,32,1,0,32,0,204,6,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,194,10,0,32,7,0,0,0,21,0,0,0,196,10,0,0,196,10,0,0,3,0,0,0,0,0,0,0,72,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,95,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,99,0,60,0,231,0,60,0,60,0,60,0,199,0,38,0,101,0,60,0,234,0,60,0,60,0,60,0,202,0,38,0,105,0,60,0,238,0,60,0,60,0,60,0,206,0,38,0,115,0,60,0,95,1,60,0,60,0,60,0,94,1,38,0,117,0,60,0,251,0,60,0,60,0,60,0,219,0,38,0,234,0,60,0,60,0,233,0,60,0,60,0,60,0,201,0,38,0,238,0,60,0,60,0,237,0,60,0,60,0,60,0,205,0,38,0,251,0,60,0,60,0,250,0,60,0,60,0,60,0,218,0,38,0,250,0,60,0,60,0,249,0,60,0,60,0,60,0,217,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,188,41,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,44,30,0,0,44,30,0,0,44,30,0,0,44,30,0,0,64,33,0,0,64,33,0,0,164,37,0,0,164,37,0,0,164,41,0,0,25,0,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,94,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,197,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,48,0,56,0,118,0,126,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,148,0,155,0,48,0,159,0,48,0,165,0,173,0,180,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,188,0,142,0,48,0,48,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,134,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,192,0,216,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,23,0,202,129,23,0,202,162,23,0,202,195,23,0,202,228,23,0,202,5,24,0,202,38,24,0,202,71,24,0,202,104,24,0,202,137,24,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,201,198,0,0,156,5,0,52,156,5,0,54,156,5,0,56,201,70,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,3,0,156,5,0,80,201,166,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,7,0,5,5,0,48,201,70,8,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,9,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,70,11,0,5,5,0,80,201,38,12,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,22,0,134,5,2,47,196,138,156,50,134,70,2,51,134,5,2,51,196,150,156,50,196,138,156,58,134,70,2,59,134,5,2,59,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,134,71,2,83,134,70,2,83,134,5,2,83,196,150,156,82,196,136,156,90,160,5,38,93,197,226,22,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,23,0,5,5,2,47,196,138,5,50,5,70,2,51,5,5,2,51,196,150,5,50,196,138,5,58,5,70,2,59,5,5,2,59,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,5,71,2,83,5,70,2,83,5,5,2,83,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,15,0,201,70,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,17,0,201,70,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,6,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,134,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,29,0,201,70,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,70,34,0,201,198,35,0,201,70,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,38,0,201,70,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,41,0,201,6,44,0,201,70,46,0,201,134,48,0,201,198,50,0,201,6,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,55,0,201,198,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,15,0,197,98,15,0,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,98,14,0,197,226,14,0,192,0,0,0,192,0,0,0,201,70,58,0,201,198,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,61,0,201,134,63,0,192,0,0,0,192,0,0,0,197,226,3,0,197,162,4,0,197,162,3,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,65,0,201,6,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,70,2,51,5,162,0,0,134,5,2,51,5,162,0,0,5,70,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,70,2,59,5,162,0,0,134,5,2,59,5,162,0,0,5,70,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,71,2,83,5,162,0,0,134,70,2,83,5,162,0,0,134,5,2,83,5,162,0,0,5,71,2,83,5,162,0,0,5,70,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,71,2,83,5,190,0,0,134,70,2,83,5,190,0,0,134,5,2,83,5,190,0,0,5,71,2,83,5,190,0,0,5,70,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,70,2,51,5,160,0,0,134,5,2,51,5,160,0,0,5,70,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,70,2,51,5,204,0,0,134,5,2,51,5,204,0,0,5,70,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,70,2,51,5,208,0,0,134,5,2,51,5,208,0,0,5,70,2,51,5,208,0,0,5,5,2,51,5,208,0,0,134,70,2,59,5,208,0,0,134,5,2,59,5,208,0,0,5,70,2,59,5,208,0,0,5,5,2,59,5,208,0,0,134,71,2,83,5,198,0,0,134,70,2,83,5,198,0,0,134,5,2,83,5,198,0,0,5,71,2,83,5,198,0,0,5,70,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,71,2,83,5,208,0,0,134,70,2,83,5,208,0,0,134,5,2,83,5,208,0,0,5,71,2,83,5,208,0,0,5,70,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,71,2,83,5,204,0,0,134,70,2,83,5,204,0,0,134,5,2,83,5,204,0,0,5,71,2,83,5,204,0,0,5,70,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,70,2,51,5,196,0,0,134,5,2,51,5,196,0,0,5,70,2,51,5,196,0,0,5,5,2,51,5,196,0,0,134,5,2,51,5,136,0,0,5,5,2,51,5,136,0,0,134,5,2,51,5,138,0,0,5,5,2,51,5,138,0,0,134,5,2,51,5,182,0,0,5,5,2,51,5,182,0,0,134,5,2,51,5,154,0,0,5,5,2,51,5,154,0,0,134,70,2,59,5,196,0,0,134,5,2,59,5,196,0,0,5,70,2,59,5,196,0,0,5,5,2,59,5,196,0,0,134,71,2,83,5,196,0,0,134,70,2,83,5,196,0,0,134,5,2,83,5,196,0,0,5,71,2,83,5,196,0,0,5,70,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,71,2,83,5,190,0,0,5,196,0,0,134,70,2,83,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,71,2,83,5,190,0,0,5,196,0,0,5,70,2,83,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,2,239,134,5,0,50,156,5,2,0,1,3,2,243,134,70,2,3,2,243,134,5,65,3,2,243,134,70,0,58,156,5,2,0,1,3,2,251,134,70,2,3,2,251,134,5,65,3,2,251,134,70,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,4,0,0,3,255,255,2,83,134,71,1,3,255,255,2,83,134,70,2,3,255,255,2,83,134,5,64,3,255,255,2,83,134,71,65,3,255,255,2,83,134,70,0,46,5,5,48,0,39,3,2,239,5,5,0,50,5,5,2,0,1,3,2,243,5,70,2,3,2,243,5,5,65,3,2,243,5,70,0,58,5,5,2,0,1,3,2,251,5,70,2,3,2,251,5,5,65,3,2,251,5,70,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,4,0,0,3,255,255,2,83,5,71,1,3,255,255,2,83,5,70,2,3,255,255,2,83,5,5,64,3,255,255,2,83,5,71,65,3,255,255,2,83,5,70,156,50,196,162,2,0,1,3,197,162,2,3,0,192,197,98,65,3,197,162,5,50,196,162,2,0,1,3,0,192,197,162,2,3,0,192,197,226,65,3,0,192,197,162,156,58,196,162,2,0,1,3,1,192,197,34,2,3,1,192,197,98,65,3,1,192,197,34,5,58,196,162,2,0,1,3,1,192,197,162,2,3,1,192,197,226,65,3,1,192,197,162,156,82,196,162,4,0,0,3,2,192,197,34,1,3,2,192,197,98,2,3,2,192,197,162,64,3,2,192,197,34,65,3,2,192,197,98,5,82,196,162,4,0,0,3,2,192,197,226,1,3,3,192,197,34,2,3,3,192,197,98,64,3,2,192,197,226,65,3,3,192,197,34,156,82,196,190,4,0,0,3,3,192,197,162,1,3,3,192,197,226,2,3,4,192,197,34,64,3,3,192,197,162,65,3,3,192,197,226,5,82,196,190,4,0,0,3,4,192,197,98,1,3,4,192,197,162,2,3,4,192,197,226,64,3,4,192,197,98,65,3,4,192,197,162,156,50,196,160,2,0,1,3,5,192,197,34,2,3,5,192,197,98,65,3,5,192,197,34,5,50,196,160,2,0,1,3,5,192,197,162,2,3,5,192,197,226,65,3,5,192,197,162,156,50,196,204,2,0,1,3,6,192,197,162,2,3,6,192,197,226,65,3,6,192,197,162,5,50,196,204,2,0,1,3,7,192,197,34,2,3,7,192,197,98,65,3,7,192,197,34,156,50,196,208,2,0,1,3,7,192,197,162,2,3,7,192,197,226,65,3,7,192,197,162,5,50,196,208,2,0,1,3,8,192,197,34,2,3,8,192,197,98,65,3,8,192,197,34,156,58,196,208,2,0,1,3,8,192,197,162,2,3,8,192,197,226,65,3,8,192,197,162,5,58,196,208,2,0,1,3,9,192,197,34,2,3,9,192,197,98,65,3,9,192,197,34,156,82,196,198,4,0,0,3,9,192,197,162,1,3,9,192,197,226,2,3,10,192,197,34,64,3,9,192,197,162,65,3,9,192,197,226,5,82,196,198,4,0,0,3,10,192,197,98,1,3,10,192,197,162,2,3,10,192,197,226,64,3,10,192,197,98,65,3,10,192,197,162,156,82,196,208,4,0,0,3,11,192,197,34,1,3,11,192,197,98,2,3,11,192,197,162,64,3,11,192,197,34,65,3,11,192,197,98,5,82,196,208,4,0,0,3,11,192,197,226,1,3,12,192,197,34,2,3,12,192,197,98,64,3,11,192,197,226,65,3,12,192,197,34,156,82,196,204,4,0,0,3,12,192,197,162,1,3,12,192,197,226,2,3,13,192,197,34,64,3,12,192,197,162,65,3,12,192,197,226,5,82,196,204,4,0,0,3,13,192,197,98,1,3,13,192,197,162,2,3,13,192,197,226,64,3,13,192,197,98,65,3,13,192,197,162,156,50,196,196,2,0,1,3,14,192,197,34,2,3,14,192,197,98,65,3,14,192,197,34,5,50,196,196,2,0,1,3,14,192,197,162,2,3,14,192,197,226,65,3,14,192,197,162,156,58,196,196,2,0,1,3,17,192,197,34,2,3,17,192,197,98,65,3,17,192,197,34,5,58,196,196,2,0,1,3,17,192,197,162,2,3,17,192,197,226,65,3,17,192,197,162,156,82,196,196,4,0,0,3,18,192,197,34,1,3,18,192,197,98,2,3,18,192,197,162,64,3,18,192,197,34,65,3,18,192,197,98,5,82,196,196,4,0,0,3,18,192,197,226,1,3,19,192,197,34,2,3,19,192,197,98,64,3,18,192,197,226,65,3,19,192,197,34,19,0,197,163,4,0,0,3,20,192,197,3,1,3,20,192,197,99,2,3,20,192,197,195,64,3,20,192,197,3,65,3,20,192,197,99,21,0,197,35,4,0,0,3,21,192,197,131,1,3,21,192,197,227,2,3,22,192,197,67,64,3,21,192,197,131,65,3,21,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,28,4,185,84,185,88,185,92,30,4,186,108,185,112,185,116,185,120,186,124,185,132,185,136,185,140,185,148,32,4,185,160,34,4,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,36,4,168,72,38,4,168,84,168,88,168,92,40,4,168,108,168,112,168,116,168,120,168,124,168,132,168,136,168,140,168,148,42,4,168,160,44,4,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,77,217,80,185,80,90,78,186,97,217,100,185,100,90,98,217,72,154,126,185,133,153,133,249,133,153,134,89,134,136,14,217,134,249,172,217,172,185,172,89,170,153,189,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,77,200,80,168,80,72,78,168,97,200,100,168,100,72,98,200,72,136,126,168,133,136,133,232,133,136,134,72,134,128,14,200,134,232,172,200,172,168,172,72,170,136,189,168,196,72,190,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,46,4,48,4,26,78,8,78,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,50,4,52,4,186,98,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,144,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,185,156,168,156,26,154,8,154,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,54,4,56,4,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,96,187,108,169,96,169,108,169,200,169,124,217,132,187,76,200,132,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,186,76,255,5,186,96,255,5,186,152,255,5,185,168,255,5,168,64,255,5,168,76,255,5,168,96,255,5,168,152,255,5,168,168,255,5,26,79,255,5,8,79,255,5,26,99,255,5,8,99,255,5,25,171,255,5,8,171,255,1,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,187,10,0,32,1,0,32,0,192,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,217,6,0,32,7,0,0,0,21,0,0,0,219,6,0,0,219,6,0,0,3,0,0,0,0,0,0,0,35,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,53,4,60,0,81,4,60,0,60,0,60,0,1,4,0,0,170,170,184,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,64,26,0,0,64,26,0,0,64,26,0,0,64,26,0,0,132,26,0,0,132,26,0,0,160,26,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,135,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,118,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,134,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,97,174,5,48,0,8,3,255,255,41,97,134,5,40,97,5,5,48,0,8,3,255,255,41,97,5,5,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,210,6,0,32,1,0,32,0,215,6,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,204,8,0,32,7,0,0,0,21,0,0,0,206,8,0,0,206,8,0,0,3,0,0,0,0,0,0,0,47,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,46,220,38,0,67,0,60,0,99,0,12,3,60,0,60,0,60,0,67,0,12,3,38,0,71,0,60,0,231,1,60,0,60,0,60,0,230,1,38,0,72,0,60,0,31,2,60,0,60,0,60,0,30,2,38,0,83,0,60,0,115,0,12,3,60,0,60,0,60,0,83,0,12,3,38,0,90,0,60,0,122,0,12,3,60,0,60,0,60,0,90,0,12,3,0,0,82,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,27,0,0,196,27,0,0,196,27,0,0,196,27,0,0,192,28,0,0,192,28,0,0,58,30,0,0,58,30,0,0,58,34,0,0,50,105,114,84,1,0,64,8,175,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,146,0,48,0,154,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,166,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,6,0,202,193,6,0,202,226,6,0,202,3,7,0,202,36,7,0,202,69,7,0,202,102,7,0,202,135,7,0,202,168,7,0,202,201,7,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,201,134,1,0,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,70,2,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,38,3,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,6,4,0,5,5,0,48,5,5,0,50,5,5,0,52,201,198,4,0,201,134,5,0,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,70,6,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,38,7,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,5,0,201,6,8,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,6,0,201,166,8,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,9,0,201,38,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,201,166,11,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,12,0,201,38,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,57,5,5,2,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,13,0,201,166,14,0,192,0,0,0,192,0,0,0,201,102,15,0,201,38,16,0,201,230,16,0,201,166,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,18,0,201,38,19,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,19,0,201,166,20,0,201,102,21,0,201,38,22,0,201,230,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,134,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,134,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,5,5,2,57,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,12,3,2,239,134,5,0,54,156,5,48,0,12,3,2,247,134,5,0,56,156,5,48,0,12,3,2,249,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,48,0,12,3,2,239,5,5,0,54,5,5,48,0,12,3,2,247,5,5,0,56,5,5,48,0,12,3,2,249,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,54,196,160,48,0,12,3,0,192,197,162,5,54,196,160,48,0,12,3,0,192,197,226,156,78,196,160,48,0,12,3,1,192,197,34,5,78,196,160,48,0,12,3,1,192,197,98,156,78,196,202,48,0,12,3,1,192,197,162,5,78,196,202,48,0,12,3,1,192,197,226,156,56,196,196,48,0,12,3,2,192,197,34,5,56,196,196,48,0,12,3,2,192,197,98,156,56,196,160,48,0,12,3,2,192,197,162,5,56,196,160,48,0,12,3,2,192,197,226,156,56,196,206,48,0,12,3,3,192,197,34,5,56,196,206,48,0,12,3,3,192,197,98,156,78,196,196,48,0,12,3,3,192,197,162,5,78,196,196,48,0,12,3,3,192,197,226,156,92,196,196,48,0,12,3,4,192,197,162,5,92,196,196,48,0,12,3,4,192,197,226,156,92,196,210,48,0,12,3,5,192,197,34,5,92,196,210,48,0,12,3,5,192,197,98,5,56,196,210,48,0,12,3,5,192,197,162,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,30,4,186,92,186,100,185,104,185,108,185,112,186,116,185,124,185,128,185,132,185,140,32,4,185,152,185,160,185,164,185,168,185,172,185,176,34,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,36,4,168,72,168,76,168,80,38,4,40,4,168,92,168,100,168,104,168,108,168,112,168,116,168,124,168,128,168,132,168,140,42,4,168,152,168,160,168,164,168,168,168,172,168,176,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,46,4,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,161,153,161,249,161,89,162,153,177,185,188,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,48,4,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,161,136,161,232,161,72,162,136,177,168,188,72,178,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,50,4,52,4,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,54,4,56,4,185,148,168,148,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,57,163,40,163,217,161,200,161,57,162,40,162,121,162,104,162,25,163,8,163,249,169,232,169,249,177,232,177,89,178,153,181,136,181,185,182,168,182,185,184,168,184,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,144,169,144,200,56,169,76,187,92,187,100,169,92,169,100,169,192,169,116,217,124,187,76,200,124,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,88,255,5,186,144,255,5,185,180,255,5,168,64,255,5,168,84,255,5,168,88,255,5,168,144,255,5,168,180,255,5,249,66,255,5,232,66,255,5,249,86,255,5,232,86,255,5,250,146,255,5,232,146,255,1,170,170,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,197,8,0,32,1,0,32,0,202,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,61,22,0,32,7,0,0,0,24,0,0,0,63,22,0,0,63,22,0,0,3,0,0,0,0,0,0,0,206,0,0,0,99,111,108,108,97,116,105,111,110,115,0,112,104,111,110,101,116,105,99,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,170,170,0,0,52,0,50,0,0,0,38,0,69,0,60,0,91,2,60,0,60,0,60,0,144,1,38,0,79,0,60,0,60,0,84,2,60,0,60,0,60,0,134,1,0,0,83,221,38,0,69,0,60,0,91,2,60,0,60,0,60,0,144,1,38,0,79,0,60,0,60,0,84,2,60,0,60,0,60,0,134,1,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,103,0,66,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,38,0,75,0,60,0,107,0,112,0,60,0,60,0,60,0,107,0,80,0,60,0,60,0,60,0,75,0,112,0,60,0,60,0,60,0,75,0,80,0,38,0,77,0,60,0,109,0,98,0,60,0,60,0,60,0,109,0,66,0,60,0,60,0,60,0,77,0,98,0,60,0,60,0,60,0,77,0,66,0,60,0,109,0,102,0,60,0,60,0,60,0,109,0,70,0,60,0,60,0,60,0,77,0,102,0,60,0,60,0,60,0,77,0,70,0,60,0,109,0,112,0,60,0,60,0,60,0,109,0,80,0,60,0,60,0,60,0,77,0,112,0,60,0,60,0,60,0,77,0,80,0,60,0,109,0,118,0,60,0,60,0,60,0,109,0,86,0,60,0,60,0,60,0,77,0,118,0,60,0,60,0,60,0,77,0,86,0,38,0,78,0,60,0,110,0,100,0,60,0,60,0,60,0,110,0,68,0,60,0,60,0,60,0,78,0,100,0,60,0,60,0,60,0,78,0,68,0,60,0,110,0,103,0,60,0,60,0,60,0,110,0,71,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,60,0,110,0,103,0,98,0,60,0,60,0,60,0,110,0,103,0,66,0,60,0,60,0,60,0,110,0,71,0,98,0,60,0,60,0,60,0,110,0,71,0,66,0,60,0,60,0,60,0,78,0,103,0,98,0,60,0,60,0,60,0,78,0,103,0,66,0,60,0,60,0,60,0,78,0,71,0,66,0,60,0,110,0,107,0,60,0,60,0,60,0,110,0,75,0,60,0,60,0,60,0,78,0,107,0,60,0,60,0,60,0,78,0,75,0,60,0,110,0,115,0,60,0,60,0,60,0,110,0,83,0,60,0,60,0,60,0,78,0,115,0,60,0,60,0,60,0,78,0,83,0,60,0,110,0,116,0,60,0,60,0,60,0,110,0,84,0,60,0,60,0,60,0,78,0,116,0,60,0,60,0,60,0,78,0,84,0,60,0,110,0,121,0,60,0,60,0,60,0,110,0,89,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,60,0,110,0,122,0,60,0,60,0,60,0,110,0,90,0,60,0,60,0,60,0,78,0,122,0,60,0,60,0,60,0,78,0,90,0,38,0,83,0,60,0,115,0,104,0,60,0,60,0,60,0,115,0,72,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,84,0,60,0,116,0,115,0,60,0,60,0,60,0,116,0,83,0,60,0,60,0,60,0,84,0,115,0,60,0,60,0,60,0,84,0,83,0,0,0,170,170,170,170,170,170,10,60,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,25,0,0,116,25,0,0,68,33,0,0,68,33,0,0,20,41,0,0,20,41,0,0,4,53,0,0,166,53,0,0,238,59,0,0,50,105,114,84,1,0,64,8,138,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,91,0,99,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,121,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,115,0,48,0,48,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,64,1,192,0,192,0,108,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,61,0,202,97,61,0,202,130,61,0,202,163,61,0,202,196,61,0,202,229,61,0,202,6,62,0,202,39,62,0,202,72,62,0,202,105,62,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,201,0,0,0,156,5,0,56,156,5,0,58,156,5,0,60,201,128,3,0,156,5,0,64,201,96,6,0,201,128,18,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,32,76,0,201,224,83,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,201,0,94,0,5,5,0,56,5,5,0,58,5,5,0,60,201,160,97,0,5,5,0,64,201,128,100,0,201,160,112,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,32,173,0,201,224,180,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,60,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,60,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,61,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,128,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,136,0,5,0,2,5,69,0,136,0,5,0,3,5,69,0,136,0,5,0,4,5,69,0,136,0,5,0,5,5,69,0,136,0,5,0,6,5,69,0,71,0,5,0,2,5,69,0,71,0,5,0,3,5,69,0,71,0,5,0,4,5,69,0,71,0,5,0,5,5,69,0,71,0,5,0,6,5,69,0,136,0,5,0,5,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,150,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,160,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,160,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,142,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,142,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,160,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,160,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,160,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,160,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,142,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,142,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,150,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,136,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,144,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,144,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,202,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,202,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,202,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,202,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,164,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,164,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,136,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,136,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,2,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,2,5,69,0,5,0,210,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,136,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,71,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,210,0,0,0,0,0,136,0,5,0,4,5,69,0,5,0,204,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,204,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,156,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,156,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,142,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,142,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,6,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,6,5,69,0,5,0,210,0,0,0,0,0,71,0,5,0,4,5,69,0,5,0,150,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,146,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,138,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,138,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,196,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,196,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,182,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,182,0,0,0,0,0,136,0,5,0,5,5,69,0,5,0,154,0,0,0,0,0,71,0,5,0,5,5,69,0,5,0,154,0,0,0,0,0,70,0,5,0,2,5,69,0,70,0,5,0,3,5,69,0,70,0,5,0,4,5,69,0,70,0,5,0,5,5,69,0,70,0,5,0,6,5,69,0,70,0,5,0,5,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,160,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,142,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,160,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,160,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,142,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,150,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,144,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,202,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,202,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,164,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,2,5,69,0,5,0,210,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,136,0,0,0,0,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,144,0,0,0,0,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,69,0,5,0,196,0,0,0,0,0,5,0,156,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,210,0,0,0,0,0,70,0,5,0,4,5,69,0,5,0,204,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,156,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,142,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,6,5,69,0,5,0,210,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,138,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,196,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,182,0,0,0,0,0,70,0,5,0,5,5,69,0,5,0,154,0,0,0,0,0,0,0,0,136,5,2,55,5,156,0,0,71,5,2,55,5,156,0,0,136,5,2,55,5,196,0,0,71,5,2,55,5,196,0,0,136,5,2,55,5,210,0,0,71,5,2,55,5,210,0,0,136,5,2,63,5,136,0,0,71,5,2,63,5,136,0,0,136,5,2,63,5,156,0,0,71,5,2,63,5,156,0,0,136,5,2,67,5,156,0,0,71,5,2,67,5,156,0,0,136,5,2,67,5,196,0,0,71,5,2,67,5,196,0,0,136,5,2,67,5,210,0,0,71,5,2,67,5,210,0,0,136,5,3,67,5,156,0,0,71,5,3,67,5,156,0,0,136,5,4,67,5,136,0,0,71,5,4,67,5,136,0,0,136,5,4,67,5,156,0,0,71,5,4,67,5,156,0,0,136,5,5,67,5,154,0,0,71,5,5,67,5,154,0,0,136,5,5,67,5,196,0,0,71,5,5,67,5,196,0,0,139,5,4,69,5,156,0,0,139,5,4,69,5,196,0,0,139,5,4,69,5,210,0,0,74,5,4,69,5,156,0,0,73,5,4,69,5,156,0,0,74,5,4,69,5,196,0,0,73,5,4,69,5,196,0,0,74,5,4,69,5,210,0,0,73,5,4,69,5,210,0,0,136,5,2,69,5,144,0,0,71,5,2,69,5,144,0,0,136,5,3,69,5,142,0,0,71,5,3,69,5,142,0,0,136,5,3,69,5,140,0,0,71,5,3,69,5,140,0,0,136,5,3,69,5,156,0,0,71,5,3,69,5,156,0,0,136,5,3,69,5,160,0,0,71,5,3,69,5,160,0,0,136,5,3,69,5,144,0,0,71,5,3,69,5,144,0,0,136,5,3,69,5,136,0,0,71,5,3,69,5,136,0,0,136,5,2,69,5,156,0,0,71,5,2,69,5,156,0,0,136,5,2,69,5,196,0,0,71,5,2,69,5,196,0,0,136,5,2,69,5,210,0,0,71,5,2,69,5,210,0,0,136,5,2,69,5,160,0,0,71,5,2,69,5,160,0,0,136,5,2,69,5,204,0,0,71,5,2,69,5,204,0,0,136,5,3,69,5,164,0,0,71,5,3,69,5,164,0,0,136,5,2,79,5,142,0,0,71,5,2,79,5,142,0,0,136,5,2,79,5,144,0,0,71,5,2,79,5,144,0,0,136,5,2,79,5,156,0,0,71,5,2,79,5,156,0,0,136,5,2,79,5,196,0,0,71,5,2,79,5,196,0,0,136,5,2,79,5,150,0,0,71,5,2,79,5,150,0,0,136,5,2,79,5,160,0,0,71,5,2,79,5,160,0,0,136,5,2,79,5,206,0,0,71,5,2,79,5,206,0,0,71,5,2,79,5,210,0,0,136,5,2,81,5,136,0,0,71,5,2,81,5,136,0,0,136,5,2,81,5,142,0,0,71,5,2,81,5,142,0,0,136,5,2,81,5,160,0,0,71,5,2,81,5,160,0,0,136,5,2,81,5,144,0,0,71,5,2,81,5,144,0,0,136,5,2,81,5,202,0,0,71,5,2,81,5,202,0,0,136,5,2,81,5,156,0,0,71,5,2,81,5,156,0,0,136,5,2,81,5,196,0,0,71,5,2,81,5,196,0,0,136,5,2,81,5,136,0,0,5,156,0,0,71,5,2,81,5,136,0,0,5,156,0,0,136,5,2,81,5,144,0,0,5,156,0,0,71,5,2,81,5,144,0,0,5,156,0,0,136,5,2,81,5,196,0,0,5,156,0,0,71,5,2,81,5,196,0,0,5,156,0,0,70,5,2,55,5,156,0,0,5,5,2,55,5,156,0,0,70,5,2,55,5,196,0,0,5,5,2,55,5,196,0,0,70,5,2,55,5,210,0,0,5,5,2,55,5,210,0,0,70,5,2,63,5,136,0,0,5,5,2,63,5,136,0,0,70,5,2,63,5,156,0,0,5,5,2,63,5,156,0,0,70,5,2,67,5,156,0,0,5,5,2,67,5,156,0,0,70,5,2,67,5,196,0,0,5,5,2,67,5,196,0,0,70,5,2,67,5,210,0,0,5,5,2,67,5,210,0,0,70,5,3,67,5,156,0,0,5,5,3,67,5,156,0,0,70,5,4,67,5,136,0,0,5,5,4,67,5,136,0,0,70,5,4,67,5,156,0,0,5,5,4,67,5,156,0,0,70,5,5,67,5,154,0,0,5,5,5,67,5,154,0,0,70,5,5,67,5,196,0,0,5,5,5,67,5,196,0,0,72,5,4,69,5,156,0,0,71,5,4,69,5,156,0,0,72,5,4,69,5,196,0,0,71,5,4,69,5,196,0,0,72,5,4,69,5,210,0,0,71,5,4,69,5,210,0,0,70,5,4,69,5,156,0,0,5,5,4,69,5,156,0,0,70,5,4,69,5,196,0,0,5,5,4,69,5,196,0,0,70,5,4,69,5,210,0,0,5,5,4,69,5,210,0,0,193,5,5,69,5,136,0,0,193,5,5,69,5,150,0,0,70,5,2,69,5,144,0,0,5,5,2,69,5,144,0,0,70,5,3,69,5,142,0,0,5,5,3,69,5,142,0,0,70,5,3,69,5,140,0,0,5,5,3,69,5,140,0,0,70,5,3,69,5,156,0,0,5,5,3,69,5,156,0,0,70,5,3,69,5,160,0,0,5,5,3,69,5,160,0,0,193,2,5,69,5,160,0,0,193,3,5,69,5,136,0,0,193,3,5,69,5,142,0,0,193,3,5,69,5,160,0,0,193,3,5,69,5,144,0,0,193,4,5,69,5,160,0,0,193,4,5,69,5,144,0,0,193,5,5,69,5,142,0,0,193,6,5,69,5,136,0,0,193,6,5,69,5,156,0,0,193,6,5,69,5,144,0,0,70,5,3,69,5,144,0,0,5,5,3,69,5,144,0,0,193,2,5,69,5,144,0,0,70,5,3,69,5,136,0,0,5,5,3,69,5,136,0,0,193,3,5,69,5,202,0,0,193,4,5,69,5,202,0,0,193,5,5,69,5,164,0,0,70,5,2,69,5,156,0,0,5,5,2,69,5,156,0,0,70,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,70,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,70,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,70,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,70,5,3,69,5,164,0,0,5,5,3,69,5,164,0,0,193,2,5,69,5,136,0,0,193,2,5,69,5,196,0,0,193,2,5,69,5,210,0,0,193,3,5,69,5,156,0,0,193,3,5,69,5,196,0,0,193,3,5,69,5,136,0,0,5,156,0,0,193,3,5,69,5,144,0,0,5,156,0,0,193,3,5,69,5,196,0,0,5,156,0,0,193,4,5,69,5,156,0,0,193,4,5,69,5,196,0,0,193,4,5,69,5,210,0,0,193,4,5,69,5,204,0,0,193,5,5,69,5,156,0,0,193,6,5,69,5,142,0,0,193,6,5,69,5,196,0,0,193,6,5,69,5,210,0,0,193,4,5,69,5,150,0,0,193,5,5,69,5,146,0,0,193,5,5,69,5,138,0,0,193,5,5,69,5,196,0,0,193,5,5,69,5,182,0,0,193,5,5,69,5,154,0,0,70,5,2,79,5,142,0,0,5,5,2,79,5,142,0,0,70,5,2,79,5,144,0,0,5,5,2,79,5,144,0,0,70,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,70,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,70,5,2,79,5,150,0,0,5,5,2,79,5,150,0,0,70,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,70,5,2,79,5,206,0,0,5,5,2,79,5,206,0,0,5,5,2,79,5,210,0,0,70,5,2,81,5,136,0,0,5,5,2,81,5,136,0,0,70,5,2,81,5,142,0,0,5,5,2,81,5,142,0,0,70,5,2,81,5,160,0,0,5,5,2,81,5,160,0,0,70,5,2,81,5,144,0,0,5,5,2,81,5,144,0,0,70,5,2,81,5,202,0,0,5,5,2,81,5,202,0,0,70,5,2,81,5,156,0,0,5,5,2,81,5,156,0,0,70,5,2,81,5,196,0,0,5,5,2,81,5,196,0,0,70,5,2,81,5,136,0,0,5,156,0,0,5,5,2,81,5,136,0,0,5,156,0,0,70,5,2,81,5,144,0,0,5,156,0,0,5,5,2,81,5,144,0,0,5,156,0,0,70,5,2,81,5,196,0,0,5,156,0,0,5,5,2,81,5,196,0,0,5,156,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,54,156,5,7,0,4,30,12,0,4,30,0,192,197,162,5,30,0,192,197,226,6,30,1,192,197,34,7,30,1,192,197,98,66,0,2,247,136,5,98,0,2,247,71,5,2,30,197,162,3,30,0,192,197,98,0,62,156,5,5,0,85,30,9,0,85,30,1,192,197,226,86,30,2,192,197,34,87,30,2,192,197,98,80,0,2,255,136,5,112,0,2,255,71,5,84,30,1,192,197,162,0,66,156,5,23,0,6,30,42,0,86,30,20,0,125,30,9,0,125,30,5,192,197,226,126,30,6,192,197,34,127,30,6,192,197,98,86,30,5,192,197,34,87,30,5,192,197,98,124,30,5,192,197,162,31,30,9,0,31,30,4,192,197,98,84,30,4,192,197,162,85,30,4,192,197,226,6,30,3,192,197,162,7,30,3,192,197,226,30,30,4,192,197,34,112,0,22,0,3,30,9,0,3,30,2,192,197,226,4,30,3,192,197,34,5,30,3,192,197,98,112,0,255,255,4,67,71,5,118,0,255,255,5,67,71,5,2,30,2,192,197,162,86,0,12,0,86,0,255,255,5,67,136,5,98,0,255,255,2,67,71,5,102,0,255,255,3,67,71,5,66,0,255,255,2,67,136,5,70,0,255,255,3,67,136,5,80,0,255,255,4,67,136,5,0,68,156,5,0,0,116,0,26,2,206,0,103,30,103,0,146,30,50,0,243,30,25,0,247,30,11,0,247,30,20,192,198,66,248,30,20,192,198,130,249,30,20,192,198,194,42,33,198,129,243,30,19,192,198,66,244,30,19,192,198,130,245,30,19,192,198,194,246,30,20,192,198,2,149,30,12,0,149,30,18,192,198,66,151,30,18,192,198,130,153,30,18,192,198,194,242,30,19,192,198,2,146,30,17,192,198,130,147,30,17,192,198,194,148,30,18,192,198,2,110,30,26,0,142,30,12,0,142,30,16,192,198,130,143,30,16,192,198,194,144,30,17,192,198,2,145,30,17,192,198,66,110,30,15,192,198,130,111,30,15,192,198,194,112,30,16,192,198,2,113,30,16,192,198,66,106,30,12,0,106,30,14,192,198,130,107,30,14,192,198,194,108,30,15,192,198,2,109,30,15,192,198,66,103,30,13,192,198,99,104,30,13,192,198,195,105,30,14,192,198,35,32,30,51,0,53,30,26,0,99,30,12,0,99,30,12,192,198,2,100,30,12,192,198,67,101,30,12,192,198,163,102,30,13,192,198,3,53,30,11,192,198,2,96,30,11,192,198,66,97,30,11,192,198,130,98,30,11,192,198,194,49,30,12,0,49,30,10,192,198,2,50,30,10,192,198,66,51,30,10,192,198,130,52,30,10,192,198,194,32,30,14,192,197,226,33,30,15,192,197,34,48,30,9,192,198,194,13,30,23,0,16,30,12,0,16,30,13,192,197,226,17,30,14,192,197,34,18,30,14,192,197,98,19,30,14,192,197,162,13,30,13,192,197,34,14,30,13,192,197,98,15,30,13,192,197,162,51,2,12,0,51,2,9,192,198,130,10,30,12,192,197,98,11,30,12,192,197,162,12,30,12,192,197,226,26,2,8,192,198,194,27,2,9,192,198,2,50,2,9,192,198,66,90,1,101,0,120,1,51,0,230,1,26,0,244,1,12,0,244,1,11,192,197,226,245,1,12,192,197,34,24,2,8,192,198,66,25,2,8,192,198,130,230,1,11,192,197,98,231,1,11,192,197,162,232,1,7,192,198,194,233,1,8,192,198,2,123,1,12,0,123,1,6,192,198,194,124,1,7,192,198,2,125,1,7,192,198,66,126,1,7,192,198,130,120,1,6,192,198,2,121,1,6,192,198,66,122,1,6,192,198,130,97,1,23,0,100,1,12,0,100,1,5,192,198,2,101,1,5,192,198,66,118,1,5,192,198,130,119,1,5,192,198,194,97,1,4,192,198,66,98,1,4,192,198,130,99,1,4,192,198,194,93,1,12,0,93,1,3,192,198,66,94,1,3,192,198,130,95,1,3,192,198,194,96,1,4,192,198,2,90,1,2,192,198,130,91,1,2,192,198,194,92,1,3,192,198,2,221,0,51,0,30,1,26,0,34,1,12,0,34,1,10,192,197,226,35,1,11,192,197,34,54,1,2,192,198,2,55,1,2,192,198,66,30,1,9,192,197,226,31,1,10,192,197,34,32,1,10,192,197,98,33,1,10,192,197,162,14,1,12,0,14,1,8,192,197,226,15,1,9,192,197,34,28,1,9,192,197,98,29,1,9,192,197,162,221,0,1,192,198,66,253,0,1,192,198,130,255,0,1,192,198,194,100,0,54,0,115,0,12,0,115,0,0,192,198,193,116,0,0,192,198,225,121,0,1,192,198,1,122,0,1,192,198,33,100,0,255,255,2,69,71,5,103,0,3,0,107,0,0,192,198,161,199,127,3,69,71,5,4,30,12,0,4,30,7,192,197,226,5,30,8,192,197,34,6,30,8,192,197,98,7,30,8,192,197,162,66,0,255,255,4,69,74,5,98,0,255,255,4,69,73,5,2,30,7,192,197,98,3,30,7,192,197,162,83,0,11,0,83,0,198,161,84,0,0,192,198,65,89,0,0,192,198,97,90,0,0,192,198,129,68,0,255,255,2,69,136,5,71,0,2,0,75,0,198,129,195,127,3,69,136,5,66,0,255,255,4,69,139,5,2,30,6,192,197,162,4,30,6,192,197,226,6,30,7,192,197,34,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,17,192,197,226,41,30,18,192,197,34,42,30,18,192,197,98,43,30,18,192,197,162,150,30,18,192,197,226,36,30,16,192,197,226,37,30,17,192,197,34,38,30,17,192,197,98,39,30,17,192,197,162,30,2,12,0,30,2,15,192,197,226,31,2,16,192,197,34,34,30,16,192,197,98,35,30,16,192,197,162,72,0,255,255,2,79,136,5,104,0,255,255,2,79,71,5,36,1,15,192,197,98,37,1,15,192,197,162,0,80,156,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,23,192,197,195,104,30,24,192,197,35,105,30,24,192,197,131,100,30,22,192,197,163,101,30,23,192,197,3,102,30,23,192,197,99,25,2,21,192,197,98,96,30,21,192,197,162,97,30,21,192,197,226,98,30,22,192,197,34,99,30,22,192,197,98,93,1,20,0,96,1,9,0,96,1,20,192,197,162,97,1,20,192,197,226,24,2,21,192,197,34,93,1,19,192,197,226,94,1,20,192,197,34,95,1,20,192,197,98,83,0,255,255,2,81,136,5,115,0,255,255,2,81,71,5,90,1,19,192,197,34,91,1,19,192,197,98,92,1,19,192,197,162,0,54,5,5,7,0,4,30,12,0,4,30,25,192,197,98,5,30,25,192,197,162,6,30,25,192,197,226,7,30,26,192,197,34,66,0,2,247,70,5,98,0,2,247,5,5,2,30,24,192,197,226,3,30,25,192,197,34,0,62,5,5,5,0,85,30,9,0,85,30,26,192,197,162,86,30,26,192,197,226,87,30,27,192,197,34,80,0,2,255,70,5,112,0,2,255,5,5,84,30,26,192,197,98,0,66,5,5,23,0,6,30,42,0,86,30,20,0,125,30,9,0,125,30,30,192,197,162,126,30,30,192,197,226,127,30,31,192,197,34,86,30,29,192,197,226,87,30,30,192,197,34,124,30,30,192,197,98,31,30,9,0,31,30,29,192,197,34,84,30,29,192,197,98,85,30,29,192,197,162,6,30,28,192,197,98,7,30,28,192,197,162,30,30,28,192,197,226,112,0,22,0,3,30,9,0,3,30,27,192,197,162,4,30,27,192,197,226,5,30,28,192,197,34,112,0,255,255,4,67,5,5,118,0,255,255,5,67,5,5,2,30,27,192,197,98,86,0,12,0,86,0,255,255,5,67,70,5,98,0,255,255,2,67,5,5,102,0,255,255,3,67,5,5,66,0,255,255,2,67,70,5,70,0,255,255,3,67,70,5,80,0,255,255,4,67,70,5,0,68,5,5,0,0,116,0,26,2,207,0,103,30,104,0,146,30,51,0,243,30,26,0,247,30,12,0,247,30,50,192,197,130,248,30,31,192,198,2,249,30,50,192,197,194,42,33,21,192,198,1,243,30,50,192,197,2,244,30,30,192,198,130,245,30,50,192,197,66,246,30,30,192,198,194,149,30,12,0,149,30,49,192,197,66,151,30,49,192,197,130,153,30,49,192,197,194,242,30,30,192,198,66,146,30,29,192,198,194,147,30,49,192,197,2,148,30,30,192,198,2,110,30,26,0,142,30,12,0,142,30,29,192,198,66,143,30,48,192,197,130,144,30,29,192,198,130,145,30,48,192,197,194,110,30,28,192,198,194,111,30,48,192,197,2,112,30,29,192,198,2,113,30,48,192,197,66,106,30,12,0,106,30,28,192,198,66,107,30,47,192,197,130,108,30,28,192,198,130,109,30,47,192,197,194,103,30,46,192,197,195,104,30,27,192,198,227,105,30,47,192,197,35,32,30,51,0,53,30,26,0,99,30,12,0,99,30,46,192,197,34,100,30,27,192,198,35,101,30,46,192,197,99,102,30,27,192,198,131,53,30,45,192,197,162,96,30,26,192,198,162,97,30,45,192,197,226,98,30,26,192,198,226,49,30,12,0,49,30,45,192,197,34,50,30,26,192,198,34,51,30,45,192,197,98,52,30,26,192,198,98,32,30,44,192,197,162,33,30,44,192,197,226,48,30,25,192,198,226,13,30,23,0,16,30,12,0,16,30,43,192,197,162,17,30,43,192,197,226,18,30,44,192,197,34,19,30,44,192,197,98,13,30,42,192,197,226,14,30,43,192,197,34,15,30,43,192,197,98,51,2,12,0,51,2,41,192,197,226,10,30,42,192,197,34,11,30,42,192,197,98,12,30,42,192,197,162,26,2,25,192,198,98,27,2,41,192,197,162,50,2,25,192,198,162,90,1,101,0,120,1,51,0,230,1,26,0,244,1,12,0,244,1,40,192,197,226,245,1,41,192,197,34,24,2,25,192,198,34,25,2,41,192,197,98,230,1,40,192,197,34,231,1,40,192,197,98,232,1,24,192,198,226,233,1,40,192,197,162,123,1,12,0,123,1,24,192,198,98,124,1,39,192,197,162,125,1,24,192,198,162,126,1,39,192,197,226,120,1,23,192,198,226,121,1,24,192,198,34,122,1,39,192,197,98,97,1,23,0,100,1,12,0,100,1,23,192,198,98,101,1,38,192,197,226,118,1,23,192,198,162,119,1,39,192,197,34,97,1,38,192,197,98,98,1,23,192,198,34,99,1,38,192,197,162,93,1,12,0,93,1,37,192,197,226,94,1,22,192,198,162,95,1,38,192,197,34,96,1,22,192,198,226,90,1,22,192,198,34,91,1,37,192,197,162,92,1,22,192,198,98,221,0,51,0,30,1,26,0,34,1,12,0,34,1,36,192,197,226,35,1,37,192,197,34,54,1,21,192,198,226,55,1,37,192,197,98,30,1,35,192,197,226,31,1,36,192,197,34,32,1,36,192,197,98,33,1,36,192,197,162,14,1,12,0,14,1,34,192,197,226,15,1,35,192,197,34,28,1,35,192,197,98,29,1,35,192,197,162,221,0,21,192,198,162,253,0,34,192,197,98,255,0,34,192,197,162,100,0,59,0,115,0,16,0,115,0,255,255,5,69,193,3,116,0,255,255,5,69,193,4,121,0,255,255,5,69,193,5,122,0,255,255,5,69,193,6,100,0,255,255,2,69,5,5,103,0,4,0,107,0,255,255,5,69,193,2,199,127,3,69,5,5,4,30,12,0,4,30,33,192,197,98,5,30,33,192,197,162,6,30,33,192,197,226,7,30,34,192,197,34,66,0,255,255,4,69,70,5,98,0,255,255,4,69,5,5,2,30,32,192,197,226,3,30,33,192,197,34,83,0,12,0,83,0,21,192,198,33,84,0,21,192,198,65,89,0,21,192,198,97,90,0,21,192,198,129,68,0,255,255,2,69,70,5,71,0,3,0,75,0,21,192,198,1,199,127,3,69,70,5,4,30,12,0,4,30,31,192,197,226,5,30,32,192,197,34,6,30,32,192,197,98,7,30,32,192,197,162,66,0,255,255,4,69,72,5,98,0,255,255,4,69,71,5,2,30,31,192,197,98,3,30,31,192,197,162,0,78,5,5,16,0,36,30,29,0,40,30,15,0,40,30,53,192,197,130,41,30,53,192,197,194,42,30,54,192,197,2,43,30,54,192,197,66,150,30,54,192,197,130,36,30,52,192,197,130,37,30,52,192,197,194,38,30,53,192,197,2,39,30,53,192,197,66,30,2,12,0,30,2,51,192,197,130,31,2,51,192,197,194,34,30,52,192,197,2,35,30,52,192,197,66,72,0,255,255,2,79,70,5,104,0,255,255,2,79,5,5,36,1,51,192,197,2,37,1,51,192,197,66,0,80,5,5,21,0,25,2,37,0,100,30,20,0,103,30,9,0,103,30,59,192,197,99,104,30,59,192,197,195,105,30,60,192,197,35,100,30,58,192,197,67,101,30,58,192,197,163,102,30,59,192,197,3,25,2,57,192,197,2,96,30,57,192,197,66,97,30,57,192,197,130,98,30,57,192,197,194,99,30,58,192,197,2,93,1,20,0,96,1,9,0,96,1,56,192,197,66,97,1,56,192,197,130,24,2,56,192,197,194,93,1,55,192,197,130,94,1,55,192,197,194,95,1,56,192,197,2,83,0,255,255,2,81,70,5,115,0,255,255,2,81,5,5,90,1,54,192,197,194,91,1,55,192,197,2,92,1,55,192,197,66,80,0,66,0,67,0,68,0,69,0,70,0,73,0,75,0,76,0,80,0,81,0,83,0,85,0,86,0,87,0,89,0,91,0,98,0,99,0,100,0,101,0,102,0,105,0,107,0,108,0,112,0,113,0,115,0,117,0,118,0,119,0,121,0,123,0,221,0,222,0,253,0,254,0,255,0,0,1,14,1,16,1,28,1,38,1,54,1,56,1,90,1,102,1,118,1,127,1,230,1,234,1,244,1,246,1,24,2,28,2,30,2,32,2,50,2,52,2,2,30,8,30,10,30,20,30,30,30,44,30,48,30,54,30,84,30,88,30,96,30,114,30,124,30,128,30,142,30,152,30,153,30,154,30,242,30,250,30,42,33,43,33,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,26,4,185,88,186,92,186,100,32,4,185,112,38,4,56,4,185,172,185,176,185,180,185,188,156,4,166,4,185,212,185,216,185,220,185,224,185,228,185,232,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,188,4,168,88,168,92,168,100,194,4,168,112,200,4,218,4,168,172,168,176,168,180,168,188,62,5,72,5,168,212,168,216,168,220,168,224,168,228,168,232,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,172,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,93,154,93,250,93,90,94,217,68,154,138,185,173,153,173,249,173,153,174,89,174,136,14,217,174,185,213,153,213,249,213,89,214,153,229,185,236,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,93,136,93,232,93,72,94,200,68,136,138,168,173,136,173,232,173,136,174,72,174,128,14,200,174,168,213,136,213,232,213,72,214,136,229,168,236,72,230,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,184,153,113,136,113,249,114,232,114,25,114,8,114,121,115,104,115,89,115,72,115,154,137,136,137,250,138,232,138,26,138,8,138,10,8,185,168,168,168,57,175,40,175,217,173,200,173,121,174,104,174,12,8,14,8,153,189,136,189,249,190,232,190,25,190,8,190,154,193,136,193,250,193,232,193,250,194,232,194,26,194,8,194,249,202,232,202,25,202,8,202,185,208,168,208,153,214,136,214,57,215,40,215,217,213,200,213,57,214,40,214,121,214,104,214,25,215,8,215,249,221,232,221,249,229,232,229,89,230,153,233,136,233,185,234,168,234,25,234,8,234,232,192,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,192,169,192,200,56,169,72,187,92,187,100,169,92,169,100,169,240,169,136,217,172,187,72,200,172,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,80,66,4,187,84,98,4,178,84,255,5,185,104,80,4,187,108,112,4,178,108,255,5,185,116,66,4,187,120,70,4,187,124,80,4,187,128,86,4,187,132,98,4,178,120,102,4,178,124,112,4,178,128,118,4,178,132,255,5,186,136,68,4,187,140,71,2,75,4,187,148,83,4,187,152,84,4,187,156,89,4,187,160,90,4,187,164,100,4,178,140,103,2,107,4,178,148,115,4,178,152,116,4,178,156,121,4,178,160,122,4,178,164,221,4,155,161,253,4,146,161,255,4,82,162,14,5,27,142,15,5,18,142,28,5,251,145,29,5,242,145,30,5,219,145,31,5,210,145,32,5,187,146,33,5,178,146,34,5,251,146,35,5,242,146,54,5,251,150,55,5,242,150,90,5,155,153,91,5,146,153,92,5,251,153,93,5,242,153,94,5,251,154,95,5,242,154,96,5,27,154,97,5,18,154,98,5,251,158,99,5,242,158,100,5,27,158,101,5,18,158,118,5,251,161,119,5,242,161,120,5,91,162,121,5,155,165,122,5,146,165,123,5,187,166,124,5,178,166,125,5,27,166,126,5,18,166,255,5,186,192,72,4,187,196,104,4,178,196,36,5,251,197,37,5,242,197,255,5,185,200,83,4,187,204,115,4,178,204,90,5,155,205,91,5,146,205,92,5,251,205,93,5,242,205,94,5,251,206,95,5,242,206,96,5,27,206,97,5,18,206,255,5,168,80,66,4,177,84,98,4,168,84,255,5,168,104,80,4,177,108,112,4,168,108,255,5,168,116,66,4,177,120,70,4,177,124,80,4,177,128,86,4,177,132,98,4,168,120,102,4,168,124,112,4,168,128,118,4,168,132,255,5,168,136,68,4,177,140,71,2,75,4,177,148,83,4,177,152,84,4,177,156,89,4,177,160,90,4,177,164,100,4,168,140,103,2,107,4,168,148,115,4,168,152,116,4,168,156,121,4,168,160,122,4,168,164,221,4,145,161,253,4,136,161,255,4,72,162,14,5,17,142,15,5,8,142,28,5,241,145,29,5,232,145,30,5,209,145,31,5,200,145,32,5,177,146,33,5,168,146,34,5,241,146,35,5,232,146,54,5,241,150,55,5,232,150,90,5,145,153,91,5,136,153,92,5,241,153,93,5,232,153,94,5,241,154,95,5,232,154,96,5,17,154,97,5,8,154,98,5,241,158,99,5,232,158,100,5,17,158,101,5,8,158,118,5,241,161,119,5,232,161,120,5,81,162,121,5,145,165,122,5,136,165,123,5,177,166,124,5,168,166,125,5,17,166,126,5,8,166,255,5,168,192,72,4,177,196,104,4,168,196,36,5,241,197,37,5,232,197,255,5,168,200,83,4,177,204,115,4,168,204,90,5,145,205,91,5,136,205,92,5,241,205,93,5,232,205,94,5,241,206,95,5,232,206,96,5,17,206,97,5,8,206,255,1,170,170,3,0,69,0,52,0,61,0,207,0,0,16,22,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,96,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,52,0,0,0,52,0,0,0,4,25,0,0,4,25,0,0,4,25,0,0,4,25,0,0,72,25,0,0,50,105,114,84,1,0,64,8,132,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,91,0,99,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,115,0,48,0,48,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,107,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,64,1,192,0,192,0,108,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,219,15,0,16,4,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,211,15,0,32,52,22,0,32,1,0,32,0,57,22,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,0,0,32,7,0,0,0,21,0,0,0,122,0,0,0,122,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,111,0,111,0,93,0,0,0,170,170,68,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,44,0,0,0,44,1,0,0,24,0,0,0,0,0,0,115,180,255,132,115,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,0,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,113,0,0,32,1,0,32,0,118,0,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,250,9,0,32,7,0,0,0,21,0,0,0,252,9,0,0,252,9,0,0,3,0,0,0,0,0,0,0,72,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,96,220,38,0,0,3,61,0,7,3,0,3,38,0,1,3,61,0,7,3,1,3,38,0,3,3,61,0,7,3,3,3,38,0,65,0,60,0,60,0,5,1,60,0,60,0,60,0,4,1,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,69,0,60,0,60,0,25,1,60,0,60,0,60,0,24,1,60,0,60,0,23,1,60,0,60,0,60,0,22,1,38,0,73,0,60,0,60,0,47,1,60,0,60,0,60,0,46,1,60,0,60,0,121,0,60,0,60,0,60,0,89,0,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,85,0,60,0,60,0,115,1,60,0,60,0,60,0,114,1,60,0,60,0,107,1,60,0,60,0,60,0,106,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,154,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,212,29,0,0,212,29,0,0,212,29,0,0,212,29,0,0,240,31,0,0,240,31,0,0,98,34,0,0,98,34,0,0,130,38,0,0,50,105,114,84,1,0,64,8,208,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,108,0,116,0,48,0,56,0,121,0,129,0,48,0,56,0,48,0,56,0,48,0,56,0,136,0,144,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,0,48,0,48,0,170,0,177,0,184,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,199,0,160,0,48,0,48,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,152,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,176,1,192,0,228,1,192,0,192,0,192,0,32,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,15,0,202,193,15,0,202,226,15,0,202,3,16,0,202,36,16,0,202,69,16,0,202,102,16,0,202,135,16,0,202,168,16,0,202,201,16,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,198,0,0,156,5,0,48,201,134,1,0,156,5,0,52,156,5,0,54,156,5,0,56,201,166,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,102,3,0,156,5,0,80,201,70,4,0,156,5,0,84,160,5,0,86,156,5,0,88,134,71,0,58,201,166,5,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,6,0,5,5,0,44,201,70,7,0,5,5,0,48,201,6,8,0,5,5,0,52,5,5,0,54,5,5,0,56,201,38,9,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,230,9,0,5,5,0,80,201,198,10,0,5,5,0,84,5,5,0,86,5,5,0,88,5,71,0,58,201,38,12,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,14,0,201,6,13,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,197,98,0,0,160,5,38,93,197,34,15,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,15,0,201,166,13,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,197,226,0,0,5,5,38,93,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,42,5,70,0,42,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,70,0,50,5,70,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,58,5,70,0,58,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,14,0,201,38,15,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,82,5,71,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,82,5,70,0,82,192,0,0,0,192,0,0,0,197,226,1,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,15,0,201,166,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,17,0,201,38,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,22,0,201,102,23,0,201,38,24,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,25,0,201,102,26,0,192,0,0,0,192,0,0,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,27,0,201,230,27,0,201,166,28,0,201,102,29,0,201,38,30,0,201,230,30,0,192,0,0,0,192,0,0,0,197,34,8,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,197,226,8,0,192,0,0,0,192,0,0,0,201,166,31,0,201,102,32,0,201,38,33,0,201,230,33,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,34,0,201,102,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,36,0,201,230,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,37,0,201,102,38,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,197,162,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,134,71,0,58,5,136,0,0,5,5,2,47,5,160,0,0,5,71,0,58,5,136,0,0,5,71,0,58,5,150,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,71,0,58,5,142,0,0,5,71,0,58,5,142,0,0,134,71,0,58,5,150,0,0,134,71,0,82,5,190,0,0,5,71,0,82,5,190,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,71,0,50,5,160,0,0,5,71,0,50,5,160,0,0,134,71,0,58,5,164,0,0,5,71,0,58,5,164,0,0,134,71,0,50,5,204,0,0,5,71,0,50,5,204,0,0,134,71,0,50,5,208,0,0,5,71,0,50,5,208,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,71,0,82,5,198,0,0,5,71,0,82,5,198,0,0,134,71,0,82,5,208,0,0,5,71,0,82,5,208,0,0,134,71,0,82,5,204,0,0,5,71,0,82,5,204,0,0,134,71,0,82,5,150,0,0,5,71,0,82,5,150,0,0,134,71,0,58,5,156,0,0,5,71,0,58,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,5,71,0,58,5,146,0,0,134,71,0,50,5,196,0,0,5,71,0,50,5,196,0,0,134,71,0,82,5,196,0,0,5,71,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,71,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,71,0,82,5,190,0,0,5,196,0,0,134,71,0,58,5,138,0,0,5,71,0,58,5,138,0,0,134,71,0,58,5,196,0,0,5,71,0,58,5,196,0,0,134,71,0,58,5,182,0,0,5,71,0,58,5,182,0,0,134,71,0,58,5,154,0,0,5,71,0,58,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,40,3,0,234,134,70,0,46,156,5,48,0,12,3,2,239,134,5,0,50,156,5,1,0,7,3,0,242,134,71,40,3,0,242,134,70,0,58,156,5,48,0,40,3,0,250,134,70,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,82,156,5,1,0,4,3,255,255,0,82,134,71,40,3,255,255,0,82,134,70,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,48,0,40,3,0,234,5,70,0,46,5,5,48,0,12,3,2,239,5,5,0,50,5,5,1,0,7,3,0,242,5,71,40,3,0,242,5,70,0,58,5,5,48,0,40,3,0,250,5,70,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,82,5,5,1,0,4,3,255,255,0,82,5,71,40,3,255,255,0,82,5,70,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,162,156,78,196,160,48,0,12,3,1,192,197,98,5,78,196,160,48,0,12,3,1,192,197,162,156,82,196,190,48,0,4,3,2,192,197,162,5,82,196,190,48,0,4,3,2,192,197,226,156,78,196,202,48,0,12,3,3,192,197,34,5,78,196,202,48,0,12,3,3,192,197,98,156,50,196,160,48,0,7,3,3,192,197,162,5,50,196,160,48,0,7,3,3,192,197,226,0,0,5,156,4,0,0,3,0,192,5,138,1,3,0,192,5,136,3,3,0,192,5,154,64,3,0,192,5,138,65,3,0,192,5,136,156,50,196,204,48,0,7,3,4,192,197,162,5,50,196,204,48,0,7,3,4,192,197,226,156,50,196,208,48,0,7,3,5,192,197,34,5,50,196,208,48,0,7,3,5,192,197,98,156,78,196,196,48,0,12,3,5,192,197,162,5,78,196,196,48,0,12,3,5,192,197,226,156,82,196,198,48,0,4,3,6,192,197,162,5,82,196,198,48,0,4,3,6,192,197,226,156,82,196,208,48,0,4,3,7,192,197,34,5,82,196,208,48,0,4,3,7,192,197,98,156,82,196,204,48,0,4,3,7,192,197,162,5,82,196,204,48,0,4,3,7,192,197,226,156,92,196,196,48,0,12,3,9,192,197,34,5,92,196,196,48,0,12,3,9,192,197,98,156,92,196,210,48,0,12,3,9,192,197,162,5,92,196,210,48,0,12,3,9,192,197,226,156,50,196,196,48,0,7,3,10,192,197,98,5,50,196,196,48,0,7,3,10,192,197,162,156,82,196,196,48,0,4,3,10,192,197,226,5,82,196,196,48,0,4,3,11,192,197,34,11,0,197,99,48,0,4,3,11,192,197,195,12,0,197,35,48,0,4,3,12,192,197,131,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,38,4,185,60,40,4,185,72,42,4,185,80,185,84,185,88,44,4,186,100,185,104,185,108,185,112,186,116,185,124,185,128,185,132,185,140,46,4,185,152,48,4,185,164,185,168,185,172,249,92,50,4,88,13,168,13,96,13,56,14,80,12,40,14,52,4,168,60,54,4,168,72,56,4,168,80,168,84,168,88,58,4,168,100,168,104,168,108,168,112,168,116,168,124,168,128,168,132,168,140,60,4,168,152,62,4,168,164,168,168,168,172,232,92,64,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,66,4,186,77,154,77,250,77,90,78,186,93,154,93,250,93,90,94,217,72,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,161,153,161,249,161,89,162,2,8,185,184,4,8,168,57,136,57,232,57,136,58,72,58,40,58,6,8,68,4,168,77,136,77,232,77,72,78,168,93,136,93,232,93,72,94,200,72,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,161,136,161,232,161,72,162,8,8,168,184,10,8,25,59,8,59,217,57,200,57,217,56,200,56,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,57,75,40,75,26,79,8,79,218,77,200,77,249,76,232,76,217,76,200,76,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,249,86,232,86,249,89,232,89,57,91,40,91,154,94,136,94,26,95,8,95,218,93,200,93,217,92,200,92,186,94,168,96,12,8,14,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,89,111,72,111,57,111,40,111,154,117,136,117,250,118,232,118,26,118,8,118,16,8,185,120,168,120,25,127,8,127,217,125,200,125,121,126,104,126,18,8,20,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,70,4,72,4,185,148,168,148,249,154,232,154,25,154,8,154,185,156,168,156,153,162,136,162,249,160,232,160,217,161,200,161,57,162,40,162,121,162,104,162,217,160,200,160,249,169,232,169,22,8,24,8,26,8,153,177,136,177,185,178,168,178,185,180,168,180,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,249,56,187,76,249,92,136,1,200,144,169,144,232,56,169,76,232,92,136,1,232,92,72,2,187,92,187,100,169,92,169,100,169,188,169,116,217,124,187,76,200,124,169,76,249,92,232,1,232,92,232,1,249,92,72,2,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,64,255,5,186,76,255,5,186,92,255,5,186,144,255,5,185,160,255,5,185,176,255,5,168,56,255,5,168,64,255,5,168,76,255,5,168,92,255,5,168,144,255,5,168,160,255,5,168,176,255,5,249,66,255,5,232,66,255,5,250,146,255,5,232,146,255,1,170,170,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,243,9,0,32,1,0,32,0,248,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,48,9,0,32,7,0,0,0,21,0,0,0,50,9,0,0,50,9,0,0,3,0,0,0,0,0,0,0,101,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,153,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,68,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,72,0,60,0,35,1,60,0,60,0,60,0,34,1,38,0,73,0,60,0,60,0,121,0,60,0,60,0,60,0,89,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,76,0,60,0,55,1,60,0,60,0,60,0,54,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,77,0,60,0,60,1,60,0,60,0,60,0,59,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,79,0,60,0,70,1,60,0,60,0,60,0,69,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,83,0,60,0,87,1,60,0,60,0,60,0,86,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,84,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,183,1,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,170,170,2,35,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,28,0,0,20,28,0,0,20,28,0,0,20,28,0,0,96,29,0,0,96,29,0,0,194,30,0,0,194,30,0,0,234,34,0,0,50,105,114,84,1,0,64,8,180,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,48,0,56,0,48,0,56,0,112,0,120,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,144,0,149,0,48,0,48,0,156,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,163,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,171,0,136,0,48,0,48,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,0,192,0,192,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,9,0,202,65,9,0,202,98,9,0,202,131,9,0,202,164,9,0,202,197,9,0,202,230,9,0,202,7,10,0,202,40,10,0,202,73,10,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,156,5,0,56,156,5,0,58,156,5,0,60,201,134,1,0,201,70,2,0,156,5,0,66,201,38,3,0,156,5,0,70,156,5,0,72,160,5,0,74,201,6,4,0,201,230,4,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,134,70,0,58,201,198,5,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,166,6,0,5,5,0,48,5,5,0,50,5,5,0,52,201,102,7,0,5,5,0,56,5,5,0,58,5,5,0,60,201,38,8,0,201,230,8,0,5,5,0,66,201,198,9,0,5,5,0,70,5,5,0,72,5,5,0,74,201,166,10,0,201,134,11,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,70,0,58,201,102,12,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,8,0,201,70,13,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,197,98,0,0,160,5,38,93,197,162,8,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,8,0,201,230,13,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,197,226,0,0,5,5,38,93,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,47,5,5,21,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,27,55,5,5,27,55,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,63,5,5,21,63,192,0,0,0,192,0,0,0,192,0,0,0,134,5,45,65,5,5,45,65,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,33,69,5,5,33,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,63,77,5,5,63,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,14,0,201,102,15,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,93,5,5,25,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,16,0,201,230,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,17,0,201,102,18,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,201,38,19,0,201,230,19,0,201,166,20,0,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,21,47,5,160,0,0,134,70,0,58,5,136,0,0,5,5,21,47,5,160,0,0,5,70,0,58,5,136,0,0,5,70,0,58,5,150,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,70,0,58,5,142,0,0,5,70,0,58,5,142,0,0,134,70,0,58,5,150,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,134,70,0,58,5,164,0,0,5,70,0,58,5,164,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,70,0,58,5,156,0,0,5,70,0,58,5,156,0,0,134,5,25,93,5,196,0,0,5,5,25,93,5,196,0,0,134,5,25,93,5,210,0,0,5,5,25,93,5,210,0,0,5,70,0,58,5,146,0,0,134,70,0,58,5,138,0,0,5,70,0,58,5,138,0,0,134,70,0,58,5,196,0,0,5,70,0,58,5,196,0,0,134,70,0,58,5,182,0,0,5,70,0,58,5,182,0,0,134,70,0,58,5,154,0,0,5,70,0,58,5,154,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,12,3,21,239,134,5,0,54,156,5,48,0,39,3,27,247,134,5,0,62,156,5,48,0,39,3,21,255,134,5,0,64,156,5,48,0,39,3,255,255,45,65,134,5,0,68,156,5,48,0,39,3,255,255,33,69,134,5,0,76,156,5,48,0,39,3,255,255,63,77,134,5,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,92,156,5,48,0,12,3,255,255,25,93,134,5,0,46,5,5,48,0,12,3,21,239,5,5,0,54,5,5,48,0,39,3,27,247,5,5,0,62,5,5,48,0,39,3,21,255,5,5,0,64,5,5,48,0,39,3,255,255,45,65,5,5,0,68,5,5,48,0,39,3,255,255,33,69,5,5,0,76,5,5,48,0,39,3,255,255,63,77,5,5,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,92,5,5,48,0,12,3,255,255,25,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,162,156,78,196,160,48,0,12,3,1,192,197,98,5,78,196,160,48,0,12,3,1,192,197,162,156,78,196,202,48,0,12,3,2,192,197,162,5,78,196,202,48,0,12,3,2,192,197,226,156,78,196,196,48,0,12,3,3,192,197,162,5,78,196,196,48,0,12,3,3,192,197,226,156,92,196,196,48,0,12,3,5,192,197,34,5,92,196,196,48,0,12,3,5,192,197,98,156,92,196,210,48,0,12,3,5,192,197,162,5,92,196,210,48,0,12,3,5,192,197,226,5,2,64,12,32,14,192,14,232,14,36,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,38,4,185,72,186,76,185,80,40,4,185,92,186,96,186,104,42,4,44,4,185,124,46,4,185,140,185,144,185,148,48,4,50,4,185,172,185,180,185,184,185,188,185,192,217,96,52,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,54,4,168,72,168,76,168,80,56,4,168,92,168,96,168,104,58,4,60,4,168,124,62,4,168,140,168,144,168,148,64,4,66,4,168,172,168,180,168,184,168,188,168,192,200,96,68,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,70,4,186,77,154,77,250,77,90,78,186,97,154,97,250,97,90,98,217,72,154,130,185,141,153,141,249,141,153,142,89,142,136,14,217,142,185,181,153,181,249,181,89,182,2,8,185,204,4,8,168,57,136,57,232,57,136,58,72,58,40,58,6,8,72,4,168,77,136,77,232,77,72,78,168,97,136,97,232,97,72,98,200,72,136,130,168,141,136,141,232,141,136,142,72,142,128,14,200,142,168,181,136,181,232,181,72,182,8,8,168,204,10,8,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,185,68,168,68,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,217,85,200,85,185,86,168,86,185,88,168,88,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,26,99,8,99,186,98,168,100,12,8,14,8,250,105,232,105,185,112,168,112,168,152,153,117,136,117,185,120,168,120,25,118,8,118,121,119,104,119,89,119,72,119,154,129,136,129,185,136,168,136,26,130,8,130,16,8,185,132,168,132,57,143,40,143,217,141,200,141,121,142,104,142,18,8,20,8,153,157,136,157,185,160,168,160,25,158,8,158,154,165,136,165,250,165,232,165,74,4,76,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,22,8,24,8,26,8,153,197,136,197,185,198,168,198,185,200,168,200,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,28,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,30,8,1,0,8,14,32,8,1,0,16,14,0,13,8,13,24,14,34,8,200,12,72,12,32,14,217,56,187,76,217,96,136,1,200,164,169,164,200,56,169,76,200,96,136,1,200,96,72,2,187,96,187,104,169,96,169,104,169,208,169,128,217,140,187,76,200,140,169,76,217,96,232,1,200,96,232,1,217,96,72,2,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,108,255,5,185,116,255,5,186,128,255,5,185,156,255,5,186,164,255,5,185,196,255,5,168,64,255,5,168,84,255,5,168,108,255,5,168,116,255,5,168,128,255,5,168,156,255,5,168,164,255,5,168,196,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,170,170,3,0,69,0,52,0,61,0,103,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,41,9,0,32,1,0,32,0,46,9,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,7,0,32,7,0,0,0,21,0,0,0,6,7,0,0,6,7,0,0,3,0,0,0,0,0,0,0,53,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,57,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,24,4,56,4,93,0,93,0,38,0,3,5,60,0,83,4,60,0,60,0,60,0,3,4,38,0,91,4,60,0,92,4,60,0,60,0,60,0,12,4,0,0,170,170,170,170,170,170,170,170,170,170,20,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,80,26,0,0,80,26,0,0,80,26,0,0,80,26,0,0,164,26,0,0,164,26,0,0,252,26,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,136,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,95,0,103,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,119,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,124,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,134,5,37,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,171,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,174,5,70,97,197,34,0,0,201,102,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,97,197,98,0,0,201,38,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,174,5,70,97,5,140,0,0,5,5,70,97,5,140,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,16,97,174,5,1,0,1,3,255,255,37,97,134,5,65,3,255,255,37,97,134,5,84,97,174,5,1,0,1,3,255,255,171,97,134,5,65,3,255,255,171,97,134,5,16,97,5,5,1,0,1,3,255,255,37,97,5,5,65,3,255,255,37,97,5,5,84,97,5,5,1,0,1,3,255,255,171,97,5,5,65,3,255,255,171,97,5,5,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,253,6,0,32,1,0,32,0,2,7,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,104,7,0,32,7,0,0,0,21,0,0,0,106,7,0,0,106,7,0,0,3,0,0,0,0,0,0,0,107,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,165,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,77,0,108,0,121,0,109,0,32,0,76,0,97,0,116,0,110,0,32,0,68,0,101,0,118,0,97,0,32,0,65,0,114,0,97,0,98,0,32,0,84,0,97,0,109,0,108,0,32,0,75,0,110,0,100,0,97,0,32,0,84,0,101,0,108,0,117,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,3,13,60,0,60,0,61,13,38,0,76,13,60,0,60,0,87,13,38,0,21,13,77,13,60,0,60,0,21,13,77,13,13,32,60,0,60,0,60,0,127,13,38,0,35,13,77,13,60,0,60,0,35,13,77,13,13,32,60,0,60,0,60,0,122,13,38,0,40,13,77,13,60,0,60,0,40,13,77,13,13,32,60,0,60,0,60,0,123,13,38,0,48,13,77,13,60,0,60,0,48,13,77,13,13,32,60,0,60,0,60,0,124,13,38,0,50,13,77,13,60,0,60,0,50,13,77,13,13,32,60,0,60,0,60,0,125,13,38,0,51,13,77,13,60,0,60,0,51,13,77,13,13,32,60,0,60,0,60,0,126,13,38,0,46,13,77,13,60,0,60,0,2,13,38,0,40,13,77,13,60,0,60,0,60,0,123,13,77,13,0,0,170,170,210,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,160,0,0,0,160,1,0,0,160,26,0,0,160,26,0,0,160,26,0,0,160,26,0,0,84,27,0,0,84,27,0,0,180,27,0,0,186,27,0,0,26,0,0,0,25,0,0,0,10,0,0,0,2,0,0,0,35,0,0,0,21,0,0,0,36,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,33,0,0,0,0,0,0,41,255,255,0,96,7,0,0,102,248,255,0,103,6,0,0,104,245,255,0,105,249,255,0,109,242,255,0,110,243,255,0,111,241,255,0,112,183,255,0,113,245,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,103,104,105,106,107,108,94,109,93,98,99,100,101,95,97,96,39,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,135,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,118,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,4,0,202,129,4,0,202,162,4,0,202,195,4,0,202,228,4,0,202,5,5,0,202,38,5,0,202,71,5,0,202,104,5,0,202,137,5,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,3,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,3,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,4,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,226,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,194,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,162,2,0,192,0,0,0,201,130,3,0,201,98,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,21,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,148,112,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,1,0,201,70,5,0,197,162,2,0,197,226,2,0,197,34,3,0,197,98,3,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,90,112,5,70,152,112,5,5,40,112,5,76,152,112,5,5,68,112,5,75,152,112,5,5,78,112,5,74,152,112,5,5,94,112,5,73,152,112,5,5,96,112,5,72,152,112,5,5,108,112,5,71,152,112,5,5,68,112,6,75,152,112,5,5,78,112,6,74,152,112,5,5,78,112,6,5,152,112,5,5,94,112,6,73,152,112,5,5,96,112,6,72,152,112,5,5,108,112,6,71,152,112,5,5,40,112,6,76,152,112,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,40,112,5,5,49,0,77,13,13,32,0,192,197,98,68,112,5,5,49,0,77,13,13,32,0,192,197,162,78,112,5,5,49,0,77,13,13,32,0,192,197,226,94,112,5,5,49,0,77,13,13,32,1,192,197,34,96,112,5,5,49,0,77,13,13,32,1,192,197,98,108,112,5,5,49,0,77,13,13,32,1,192,197,162,2,0,197,34,48,0,77,13,2,192,197,98,2,0,13,32,14,32,170,170,3,0,69,0,52,0,61,0,107,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,97,7,0,32,1,0,32,0,102,7,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,127,0,0,32,7,0,0,0,21,0,0,0,129,0,0,0,129,0,0,0,3,0,0,0,0,0,0,0,33,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,32,0,77,0,111,0,110,0,103,0,93,0,0,0,170,170,170,170,170,170,170,170,80,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,56,0,0,0,56,1,0,0,8,0,0,0,27,0,0,0,0,0,0,97,198,255,0,98,0,0,52,118,178,255,56,118,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,0,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,35,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,120,0,0,32,1,0,32,0,125,0,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,114,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,223,6,0,32,7,0,0,0,21,0,0,0,225,6,0,0,225,6,0,0,3,0,0,0,0,0,0,0,73,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,98,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,80,9,60,0,2,9,60,0,60,0,1,9,60,0,3,9,38,0,57,9,60,0,51,9,60,0,21,9,77,9,55,9,60,0,28,9,77,9,30,9,0,0,170,170,170,170,170,170,170,170,46,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,120,0,0,0,120,1,0,0,152,25,0,0,152,25,0,0,160,25,0,0,160,25,0,0,236,25,0,0,236,25,0,0,12,26,0,0,22,26,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,39,40,41,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,193,2,7,104,193,3,7,104,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,143,104,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,2,7,104,0,0,0,0,193,2,143,104,194,5,175,240,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,62,104,5,5,49,0,77,9,55,9,255,255,143,104,193,3,78,104,5,5,49,0,77,9,30,9,255,255,143,104,193,4,4,0,30,9,31,9,55,9,56,9,170,170,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,216,6,0,32,1,0,32,0,221,6,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,7,8,0,32,7,0,0,0,21,0,0,0,9,8,0,0,9,8,0,0,3,0,0,0,0,0,0,0,86,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,123,220,91,0,99,0,97,0,115,0,101,0,70,0,105,0,114,0,115,0,116,0,32,0,117,0,112,0,112,0,101,0,114,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,99,0,60,0,11,1,60,0,60,0,60,0,10,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,103,0,60,0,103,0,7,3,60,0,60,0,60,0,71,0,7,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,104,0,60,0,103,0,39,1,60,0,60,0,60,0,103,0,38,1,60,0,60,0,60,0,71,0,39,1,60,0,60,0,60,0,71,0,38,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,105,0,60,0,39,1,60,0,60,0,60,0,38,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,122,0,60,0,122,0,7,3,60,0,60,0,60,0,90,0,7,3,0,0,170,170,170,170,170,170,160,30,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,35,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,68,25,0,0,68,25,0,0,68,25,0,0,68,25,0,0,200,25,0,0,200,25,0,0,138,26,0,0,144,26,0,0,136,30,0,0,50,105,114,84,1,0,64,8,135,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,90,0,98,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,118,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,126,0,114,0,48,0,48,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,106,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,104,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,2,0,202,1,3,0,202,34,3,0,202,67,3,0,202,100,3,0,202,133,3,0,202,166,3,0,202,199,3,0,202,232,3,0,202,9,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,196,0,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,2,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,38,3,0,5,5,0,48,5,5,0,50,5,5,0,52,201,228,3,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,102,5,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,2,0,201,70,6,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,2,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,2,0,201,230,6,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,45,5,5,25,45,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,53,5,5,21,53,201,166,7,0,201,102,8,0,192,0,0,0,192,0,0,0,134,5,27,57,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,17,91,5,5,17,91,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,9,0,201,230,9,0,201,166,10,0,201,102,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,25,45,5,160,0,0,5,5,25,45,5,160,0,0,134,5,21,53,5,160,0,0,5,5,21,53,5,160,0,0,134,5,17,91,5,196,0,0,5,5,17,91,5,196,0,0,134,5,17,91,5,210,0,0,5,5,17,91,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,7,3,25,237,134,5,0,54,156,5,2,0,38,1,27,247,136,5,39,1,27,247,71,5,7,3,21,245,134,5,0,92,156,5,48,0,7,3,255,255,17,91,134,5,0,46,5,5,48,0,7,3,25,237,5,5,0,54,5,5,2,0,38,1,27,247,70,5,39,1,27,247,5,5,7,3,21,245,5,5,0,92,5,5,48,0,7,3,255,255,17,91,5,5,156,46,196,160,48,0,7,3,197,162,5,46,196,160,48,0,7,3,0,192,197,98,156,54,196,160,48,0,7,3,0,192,197,162,5,54,196,160,48,0,7,3,0,192,197,226,156,92,196,196,48,0,7,3,1,192,197,34,5,92,196,196,48,0,7,3,1,192,197,98,156,92,196,210,48,0,7,3,1,192,197,162,5,92,196,210,48,0,7,3,1,192,197,226,2,0,38,1,40,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,185,96,186,104,186,112,185,116,185,120,185,124,186,128,185,136,185,140,185,144,185,152,186,156,185,160,185,168,185,172,185,176,185,180,185,184,34,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,36,4,168,72,168,76,168,80,38,4,168,96,168,104,168,112,168,116,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,168,168,172,168,176,168,180,168,184,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,46,4,186,77,154,77,250,77,90,78,186,105,154,105,250,105,90,106,217,72,154,130,185,137,153,137,249,137,153,138,89,138,136,14,217,138,185,169,153,169,249,169,89,170,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,48,4,168,77,136,77,232,77,72,78,168,105,136,105,232,105,72,106,200,72,136,130,168,137,136,137,232,137,136,138,72,138,128,14,200,138,168,169,136,169,232,169,72,170,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,153,69,136,69,249,69,232,69,185,64,168,64,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,89,232,89,217,89,200,89,185,84,168,84,50,4,52,4,249,97,232,97,185,100,168,100,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,148,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,129,136,129,250,130,232,130,26,130,8,130,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,153,136,153,249,154,232,154,25,154,8,154,154,157,136,157,250,157,232,157,250,158,232,158,26,158,8,158,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,25,171,8,171,249,177,232,177,249,185,232,185,89,186,153,193,136,193,185,188,168,188,25,194,8,194,232,156,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,156,169,156,200,56,169,76,187,104,187,112,169,104,169,112,169,200,169,128,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,68,255,5,185,88,38,5,187,92,39,5,178,92,255,5,185,192,255,5,168,68,255,5,168,88,38,5,177,92,39,5,168,92,255,5,168,192,255,5,249,70,255,5,232,70,255,5,249,90,255,5,232,90,255,1,3,0,69,0,52,0,61,0,87,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,0,8,0,32,1,0,32,0,5,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,84,38,0,32,7,0,0,0,21,0,0,0,86,38,0,0,86,38,0,0,3,0,0,0,0,0,0,0,52,13,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,239,223,55,26,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,77,0,121,0,109,0,114,0,93,0,38,0,140,16,60,0,55,16,60,0,56,16,60,0,55,16,56,16,38,0,44,16,60,0,60,0,43,16,38,0,50,16,60,0,49,16,44,16,60,0,60,0,49,16,43,16,60,0,49,16,44,16,58,16,60,0,60,0,49,16,43,16,58,16,38,0,52,16,60,0,54,16,60,0,45,16,47,16,60,0,0,16,57,16,60,0,60,0,0,16,58,16,60,0,44,16,0,16,57,16,60,0,60,0,44,16,0,16,58,16,60,0,60,0,43,16,0,16,57,16,60,0,60,0,43,16,0,16,58,16,60,0,45,16,0,16,57,16,60,0,60,0,45,16,0,16,58,16,60,0,47,16,0,16,57,16,60,0,60,0,47,16,0,16,58,16,60,0,49,16,0,16,57,16,60,0,60,0,49,16,0,16,58,16,60,0,49,16,44,16,0,16,57,16,60,0,60,0,49,16,44,16,0,16,58,16,60,0,60,0,49,16,43,16,0,16,57,16,60,0,60,0,49,16,43,16,0,16,58,16,60,0,45,16,47,16,0,16,57,16,60,0,60,0,45,16,47,16,0,16,58,16,60,0,1,16,57,16,60,0,60,0,1,16,58,16,60,0,44,16,1,16,57,16,60,0,60,0,44,16,1,16,58,16,60,0,60,0,43,16,1,16,57,16,60,0,60,0,43,16,1,16,58,16,60,0,45,16,1,16,57,16,60,0,60,0,45,16,1,16,58,16,60,0,47,16,1,16,57,16,60,0,60,0,47,16,1,16,58,16,60,0,49,16,1,16,57,16,60,0,60,0,49,16,1,16,58,16,60,0,49,16,44,16,1,16,57,16,60,0,60,0,49,16,44,16,1,16,58,16,60,0,60,0,49,16,43,16,1,16,57,16,60,0,60,0,49,16,43,16,1,16,58,16,60,0,45,16,47,16,1,16,57,16,60,0,60,0,45,16,47,16,1,16,58,16,60,0,2,16,57,16,60,0,60,0,2,16,58,16,60,0,44,16,2,16,57,16,60,0,60,0,44,16,2,16,58,16,60,0,60,0,43,16,2,16,57,16,60,0,60,0,43,16,2,16,58,16,60,0,45,16,2,16,57,16,60,0,60,0,45,16,2,16,58,16,60,0,47,16,2,16,57,16,60,0,60,0,47,16,2,16,58,16,60,0,49,16,2,16,57,16,60,0,60,0,49,16,2,16,58,16,60,0,49,16,44,16,2,16,57,16,60,0,60,0,49,16,44,16,2,16,58,16,60,0,60,0,49,16,43,16,2,16,57,16,60,0,60,0,49,16,43,16,2,16,58,16,60,0,45,16,47,16,2,16,57,16,60,0,60,0,45,16,47,16,2,16,58,16,60,0,3,16,57,16,60,0,60,0,3,16,58,16,60,0,44,16,3,16,57,16,60,0,60,0,44,16,3,16,58,16,60,0,60,0,43,16,3,16,57,16,60,0,60,0,43,16,3,16,58,16,60,0,45,16,3,16,57,16,60,0,60,0,45,16,3,16,58,16,60,0,47,16,3,16,57,16,60,0,60,0,47,16,3,16,58,16,60,0,49,16,3,16,57,16,60,0,60,0,49,16,3,16,58,16,60,0,49,16,44,16,3,16,57,16,60,0,60,0,49,16,44,16,3,16,58,16,60,0,60,0,49,16,43,16,3,16,57,16,60,0,60,0,49,16,43,16,3,16,58,16,60,0,45,16,47,16,3,16,57,16,60,0,60,0,45,16,47,16,3,16,58,16,60,0,4,16,58,16,57,16,60,0,60,0,4,16,58,16,60,0,44,16,4,16,58,16,57,16,60,0,60,0,44,16,4,16,58,16,60,0,60,0,43,16,4,16,58,16,57,16,60,0,60,0,43,16,4,16,58,16,60,0,45,16,4,16,58,16,57,16,60,0,60,0,45,16,4,16,58,16,60,0,47,16,4,16,58,16,57,16,60,0,60,0,47,16,4,16,58,16,60,0,49,16,4,16,58,16,57,16,60,0,60,0,49,16,4,16,58,16,60,0,49,16,44,16,4,16,58,16,57,16,60,0,60,0,49,16,44,16,4,16,58,16,60,0,60,0,49,16,43,16,4,16,58,16,57,16,60,0,60,0,49,16,43,16,4,16,58,16,60,0,45,16,47,16,4,16,58,16,57,16,60,0,60,0,45,16,47,16,4,16,58,16,60,0,5,16,57,16,60,0,60,0,5,16,58,16,60,0,44,16,5,16,57,16,60,0,60,0,44,16,5,16,58,16,60,0,60,0,43,16,5,16,57,16,60,0,60,0,43,16,5,16,58,16,60,0,45,16,5,16,57,16,60,0,60,0,45,16,5,16,58,16,60,0,47,16,5,16,57,16,60,0,60,0,47,16,5,16,58,16,60,0,49,16,5,16,57,16,60,0,60,0,49,16,5,16,58,16,60,0,49,16,44,16,5,16,57,16,60,0,60,0,49,16,44,16,5,16,58,16,60,0,60,0,49,16,43,16,5,16,57,16,60,0,60,0,49,16,43,16,5,16,58,16,60,0,45,16,47,16,5,16,57,16,60,0,60,0,45,16,47,16,5,16,58,16,60,0,6,16,57,16,60,0,60,0,6,16,58,16,60,0,44,16,6,16,57,16,60,0,60,0,44,16,6,16,58,16,60,0,60,0,43,16,6,16,57,16,60,0,60,0,43,16,6,16,58,16,60,0,45,16,6,16,57,16,60,0,60,0,45,16,6,16,58,16,60,0,47,16,6,16,57,16,60,0,60,0,47,16,6,16,58,16,60,0,49,16,6,16,57,16,60,0,60,0,49,16,6,16,58,16,60,0,49,16,44,16,6,16,57,16,60,0,60,0,49,16,44,16,6,16,58,16,60,0,60,0,49,16,43,16,6,16,57,16,60,0,60,0,49,16,43,16,6,16,58,16,60,0,45,16,47,16,6,16,57,16,60,0,60,0,45,16,47,16,6,16,58,16,60,0,7,16,57,16,60,0,60,0,7,16,58,16,60,0,44,16,7,16,57,16,60,0,60,0,44,16,7,16,58,16,60,0,60,0,43,16,7,16,57,16,60,0,60,0,43,16,7,16,58,16,60,0,45,16,7,16,57,16,60,0,60,0,45,16,7,16,58,16,60,0,47,16,7,16,57,16,60,0,60,0,47,16,7,16,58,16,60,0,49,16,7,16,57,16,60,0,60,0,49,16,7,16,58,16,60,0,49,16,44,16,7,16,57,16,60,0,60,0,49,16,44,16,7,16,58,16,60,0,60,0,49,16,43,16,7,16,57,16,60,0,60,0,49,16,43,16,7,16,58,16,60,0,45,16,47,16,7,16,57,16,60,0,60,0,45,16,47,16,7,16,58,16,60,0,8,16,58,16,60,0,44,16,8,16,58,16,60,0,60,0,43,16,8,16,58,16,60,0,45,16,8,16,58,16,60,0,47,16,8,16,58,16,60,0,49,16,8,16,58,16,60,0,49,16,44,16,8,16,58,16,60,0,60,0,49,16,43,16,8,16,58,16,60,0,45,16,47,16,8,16,58,16,60,0,9,16,57,16,60,0,60,0,9,16,58,16,60,0,44,16,9,16,57,16,60,0,60,0,44,16,9,16,58,16,60,0,60,0,43,16,9,16,57,16,60,0,60,0,43,16,9,16,58,16,60,0,45,16,9,16,57,16,60,0,60,0,45,16,9,16,58,16,60,0,47,16,9,16,57,16,60,0,60,0,47,16,9,16,58,16,60,0,49,16,9,16,57,16,60,0,60,0,49,16,9,16,58,16,60,0,49,16,44,16,9,16,57,16,60,0,60,0,49,16,44,16,9,16,58,16,60,0,60,0,49,16,43,16,9,16,57,16,60,0,60,0,49,16,43,16,9,16,58,16,60,0,45,16,47,16,9,16,57,16,60,0,60,0,45,16,47,16,9,16,58,16,60,0,10,16,57,16,60,0,60,0,10,16,58,16,60,0,44,16,10,16,57,16,60,0,60,0,44,16,10,16,58,16,60,0,60,0,43,16,10,16,57,16,60,0,60,0,43,16,10,16,58,16,60,0,45,16,10,16,57,16,60,0,60,0,45,16,10,16,58,16,60,0,47,16,10,16,57,16,60,0,60,0,47,16,10,16,58,16,60,0,49,16,10,16,57,16,60,0,60,0,49,16,10,16,58,16,60,0,49,16,44,16,10,16,57,16,60,0,60,0,49,16,44,16,10,16,58,16,60,0,60,0,49,16,43,16,10,16,57,16,60,0,60,0,49,16,43,16,10,16,58,16,60,0,45,16,47,16,10,16,57,16,60,0,60,0,45,16,47,16,10,16,58,16,60,0,11,16,57,16,60,0,60,0,11,16,58,16,60,0,44,16,11,16,57,16,60,0,60,0,44,16,11,16,58,16,60,0,60,0,43,16,11,16,57,16,60,0,60,0,43,16,11,16,58,16,60,0,45,16,11,16,57,16,60,0,60,0,45,16,11,16,58,16,60,0,47,16,11,16,57,16,60,0,60,0,47,16,11,16,58,16,60,0,49,16,11,16,57,16,60,0,60,0,49,16,11,16,58,16,60,0,49,16,44,16,11,16,57,16,60,0,60,0,49,16,44,16,11,16,58,16,60,0,60,0,49,16,43,16,11,16,57,16,60,0,60,0,49,16,43,16,11,16,58,16,60,0,45,16,47,16,11,16,57,16,60,0,60,0,45,16,47,16,11,16,58,16,60,0,12,16,57,16,60,0,60,0,12,16,58,16,60,0,44,16,12,16,57,16,60,0,60,0,44,16,12,16,58,16,60,0,60,0,43,16,12,16,57,16,60,0,60,0,43,16,12,16,58,16,60,0,45,16,12,16,57,16,60,0,60,0,45,16,12,16,58,16,60,0,47,16,12,16,57,16,60,0,60,0,47,16,12,16,58,16,60,0,49,16,12,16,57,16,60,0,60,0,49,16,12,16,58,16,60,0,49,16,44,16,12,16,57,16,60,0,60,0,49,16,44,16,12,16,58,16,60,0,60,0,49,16,43,16,12,16,57,16,60,0,60,0,49,16,43,16,12,16,58,16,60,0,45,16,47,16,12,16,57,16,60,0,60,0,45,16,47,16,12,16,58,16,60,0,13,16,57,16,60,0,60,0,13,16,58,16,60,0,44,16,13,16,57,16,60,0,60,0,44,16,13,16,58,16,60,0,60,0,43,16,13,16,57,16,60,0,60,0,43,16,13,16,58,16,60,0,45,16,13,16,57,16,60,0,60,0,45,16,13,16,58,16,60,0,47,16,13,16,57,16,60,0,60,0,47,16,13,16,58,16,60,0,49,16,13,16,57,16,60,0,60,0,49,16,13,16,58,16,60,0,49,16,44,16,13,16,57,16,60,0,60,0,49,16,44,16,13,16,58,16,60,0,60,0,49,16,43,16,13,16,57,16,60,0,60,0,49,16,43,16,13,16,58,16,60,0,45,16,47,16,13,16,57,16,60,0,60,0,45,16,47,16,13,16,58,16,60,0,14,16,57,16,60,0,60,0,14,16,58,16,60,0,44,16,14,16,57,16,60,0,60,0,44,16,14,16,58,16,60,0,60,0,43,16,14,16,57,16,60,0,60,0,43,16,14,16,58,16,60,0,45,16,14,16,57,16,60,0,60,0,45,16,14,16,58,16,60,0,47,16,14,16,57,16,60,0,60,0,47,16,14,16,58,16,60,0,49,16,14,16,57,16,60,0,60,0,49,16,14,16,58,16,60,0,49,16,44,16,14,16,57,16,60,0,60,0,49,16,44,16,14,16,58,16,60,0,60,0,49,16,43,16,14,16,57,16,60,0,60,0,49,16,43,16,14,16,58,16,60,0,45,16,47,16,14,16,57,16,60,0,60,0,45,16,47,16,14,16,58,16,60,0,15,16,57,16,60,0,60,0,15,16,58,16,60,0,44,16,15,16,57,16,60,0,60,0,44,16,15,16,58,16,60,0,60,0,43,16,15,16,57,16,60,0,60,0,43,16,15,16,58,16,60,0,45,16,15,16,57,16,60,0,60,0,45,16,15,16,58,16,60,0,47,16,15,16,57,16,60,0,60,0,47,16,15,16,58,16,60,0,49,16,15,16,57,16,60,0,60,0,49,16,15,16,58,16,60,0,49,16,44,16,15,16,57,16,60,0,60,0,49,16,44,16,15,16,58,16,60,0,60,0,49,16,43,16,15,16,57,16,60,0,60,0,49,16,43,16,15,16,58,16,60,0,45,16,47,16,15,16,57,16,60,0,60,0,45,16,47,16,15,16,58,16,60,0,16,16,57,16,60,0,60,0,16,16,58,16,60,0,44,16,16,16,57,16,60,0,60,0,44,16,16,16,58,16,60,0,60,0,43,16,16,16,57,16,60,0,60,0,43,16,16,16,58,16,60,0,45,16,16,16,57,16,60,0,60,0,45,16,16,16,58,16,60,0,47,16,16,16,57,16,60,0,60,0,47,16,16,16,58,16,60,0,49,16,16,16,57,16,60,0,60,0,49,16,16,16,58,16,60,0,49,16,44,16,16,16,57,16,60,0,60,0,49,16,44,16,16,16,58,16,60,0,60,0,49,16,43,16,16,16,57,16,60,0,60,0,49,16,43,16,16,16,58,16,60,0,45,16,47,16,16,16,57,16,60,0,60,0,45,16,47,16,16,16,58,16,60,0,17,16,57,16,60,0,60,0,17,16,58,16,60,0,44,16,17,16,57,16,60,0,60,0,44,16,17,16,58,16,60,0,60,0,43,16,17,16,57,16,60,0,60,0,43,16,17,16,58,16,60,0,45,16,17,16,57,16,60,0,60,0,45,16,17,16,58,16,60,0,47,16,17,16,57,16,60,0,60,0,47,16,17,16,58,16,60,0,49,16,17,16,57,16,60,0,60,0,49,16,17,16,58,16,60,0,49,16,44,16,17,16,57,16,60,0,60,0,49,16,44,16,17,16,58,16,60,0,60,0,49,16,43,16,17,16,57,16,60,0,60,0,49,16,43,16,17,16,58,16,60,0,45,16,47,16,17,16,57,16,60,0,60,0,45,16,47,16,17,16,58,16,60,0,18,16,57,16,60,0,60,0,18,16,58,16,60,0,44,16,18,16,57,16,60,0,60,0,44,16,18,16,58,16,60,0,60,0,43,16,18,16,57,16,60,0,60,0,43,16,18,16,58,16,60,0,45,16,18,16,57,16,60,0,60,0,45,16,18,16,58,16,60,0,47,16,18,16,57,16,60,0,60,0,47,16,18,16,58,16,60,0,49,16,18,16,57,16,60,0,60,0,49,16,18,16,58,16,60,0,49,16,44,16,18,16,57,16,60,0,60,0,49,16,44,16,18,16,58,16,60,0,60,0,49,16,43,16,18,16,57,16,60,0,60,0,49,16,43,16,18,16,58,16,60,0,45,16,47,16,18,16,57,16,60,0,60,0,45,16,47,16,18,16,58,16,60,0,19,16,57,16,60,0,60,0,19,16,58,16,60,0,44,16,19,16,57,16,60,0,60,0,44,16,19,16,58,16,60,0,60,0,43,16,19,16,57,16,60,0,60,0,43,16,19,16,58,16,60,0,45,16,19,16,57,16,60,0,60,0,45,16,19,16,58,16,60,0,47,16,19,16,57,16,60,0,60,0,47,16,19,16,58,16,60,0,49,16,19,16,57,16,60,0,60,0,49,16,19,16,58,16,60,0,49,16,44,16,19,16,57,16,60,0,60,0,49,16,44,16,19,16,58,16,60,0,60,0,49,16,43,16,19,16,57,16,60,0,60,0,49,16,43,16,19,16,58,16,60,0,45,16,47,16,19,16,57,16,60,0,60,0,45,16,47,16,19,16,58,16,60,0,20,16,57,16,60,0,60,0,20,16,58,16,60,0,44,16,20,16,57,16,60,0,60,0,44,16,20,16,58,16,60,0,60,0,43,16,20,16,57,16,60,0,60,0,43,16,20,16,58,16,60,0,45,16,20,16,57,16,60,0,60,0,45,16,20,16,58,16,60,0,47,16,20,16,57,16,60,0,60,0,47,16,20,16,58,16,60,0,49,16,20,16,57,16,60,0,60,0,49,16,20,16,58,16,60,0,49,16,44,16,20,16,57,16,60,0,60,0,49,16,44,16,20,16,58,16,60,0,60,0,49,16,43,16,20,16,57,16,60,0,60,0,49,16,43,16,20,16,58,16,60,0,45,16,47,16,20,16,57,16,60,0,60,0,45,16,47,16,20,16,58,16,60,0,21,16,57,16,60,0,60,0,21,16,58,16,60,0,44,16,21,16,57,16,60,0,60,0,44,16,21,16,58,16,60,0,60,0,43,16,21,16,57,16,60,0,60,0,43,16,21,16,58,16,60,0,45,16,21,16,57,16,60,0,60,0,45,16,21,16,58,16,60,0,47,16,21,16,57,16,60,0,60,0,47,16,21,16,58,16,60,0,49,16,21,16,57,16,60,0,60,0,49,16,21,16,58,16,60,0,49,16,44,16,21,16,57,16,60,0,60,0,49,16,44,16,21,16,58,16,60,0,60,0,49,16,43,16,21,16,57,16,60,0,60,0,49,16,43,16,21,16,58,16,60,0,45,16,47,16,21,16,57,16,60,0,60,0,45,16,47,16,21,16,58,16,60,0,22,16,57,16,60,0,60,0,22,16,58,16,60,0,44,16,22,16,57,16,60,0,60,0,44,16,22,16,58,16,60,0,60,0,43,16,22,16,57,16,60,0,60,0,43,16,22,16,58,16,60,0,45,16,22,16,57,16,60,0,60,0,45,16,22,16,58,16,60,0,47,16,22,16,57,16,60,0,60,0,47,16,22,16,58,16,60,0,49,16,22,16,57,16,60,0,60,0,49,16,22,16,58,16,60,0,49,16,44,16,22,16,57,16,60,0,60,0,49,16,44,16,22,16,58,16,60,0,60,0,49,16,43,16,22,16,57,16,60,0,60,0,49,16,43,16,22,16,58,16,60,0,45,16,47,16,22,16,57,16,60,0,60,0,45,16,47,16,22,16,58,16,60,0,23,16,57,16,60,0,60,0,23,16,58,16,60,0,44,16,23,16,57,16,60,0,60,0,44,16,23,16,58,16,60,0,60,0,43,16,23,16,57,16,60,0,60,0,43,16,23,16,58,16,60,0,45,16,23,16,57,16,60,0,60,0,45,16,23,16,58,16,60,0,47,16,23,16,57,16,60,0,60,0,47,16,23,16,58,16,60,0,49,16,23,16,57,16,60,0,60,0,49,16,23,16,58,16,60,0,49,16,44,16,23,16,57,16,60,0,60,0,49,16,44,16,23,16,58,16,60,0,60,0,49,16,43,16,23,16,57,16,60,0,60,0,49,16,43,16,23,16,58,16,60,0,45,16,47,16,23,16,57,16,60,0,60,0,45,16,47,16,23,16,58,16,60,0,24,16,57,16,60,0,60,0,24,16,58,16,60,0,44,16,24,16,57,16,60,0,60,0,44,16,24,16,58,16,60,0,60,0,43,16,24,16,57,16,60,0,60,0,43,16,24,16,58,16,60,0,45,16,24,16,57,16,60,0,60,0,45,16,24,16,58,16,60,0,47,16,24,16,57,16,60,0,60,0,47,16,24,16,58,16,60,0,49,16,24,16,57,16,60,0,60,0,49,16,24,16,58,16,60,0,49,16,44,16,24,16,57,16,60,0,60,0,49,16,44,16,24,16,58,16,60,0,60,0,49,16,43,16,24,16,57,16,60,0,60,0,49,16,43,16,24,16,58,16,60,0,45,16,47,16,24,16,57,16,60,0,60,0,45,16,47,16,24,16,58,16,60,0,25,16,57,16,60,0,60,0,25,16,58,16,60,0,44,16,25,16,57,16,60,0,60,0,44,16,25,16,58,16,60,0,60,0,43,16,25,16,57,16,60,0,60,0,43,16,25,16,58,16,60,0,45,16,25,16,57,16,60,0,60,0,45,16,25,16,58,16,60,0,47,16,25,16,57,16,60,0,60,0,47,16,25,16,58,16,60,0,49,16,25,16,57,16,60,0,60,0,49,16,25,16,58,16,60,0,49,16,44,16,25,16,57,16,60,0,60,0,49,16,44,16,25,16,58,16,60,0,60,0,49,16,43,16,25,16,57,16,60,0,60,0,49,16,43,16,25,16,58,16,60,0,45,16,47,16,25,16,57,16,60,0,60,0,45,16,47,16,25,16,58,16,60,0,26,16,57,16,60,0,60,0,26,16,58,16,60,0,44,16,26,16,57,16,60,0,60,0,44,16,26,16,58,16,60,0,60,0,43,16,26,16,57,16,60,0,60,0,43,16,26,16,58,16,60,0,45,16,26,16,57,16,60,0,60,0,45,16,26,16,58,16,60,0,47,16,26,16,57,16,60,0,60,0,47,16,26,16,58,16,60,0,49,16,26,16,57,16,60,0,60,0,49,16,26,16,58,16,60,0,49,16,44,16,26,16,57,16,60,0,60,0,49,16,44,16,26,16,58,16,60,0,60,0,49,16,43,16,26,16,57,16,60,0,60,0,49,16,43,16,26,16,58,16,60,0,45,16,47,16,26,16,57,16,60,0,60,0,45,16,47,16,26,16,58,16,60,0,27,16,57,16,60,0,60,0,27,16,58,16,60,0,44,16,27,16,57,16,60,0,60,0,44,16,27,16,58,16,60,0,60,0,43,16,27,16,57,16,60,0,60,0,43,16,27,16,58,16,60,0,45,16,27,16,57,16,60,0,60,0,45,16,27,16,58,16,60,0,47,16,27,16,57,16,60,0,60,0,47,16,27,16,58,16,60,0,49,16,27,16,57,16,60,0,60,0,49,16,27,16,58,16,60,0,49,16,44,16,27,16,57,16,60,0,60,0,49,16,44,16,27,16,58,16,60,0,60,0,49,16,43,16,27,16,57,16,60,0,60,0,49,16,43,16,27,16,58,16,60,0,45,16,47,16,27,16,57,16,60,0,60,0,45,16,47,16,27,16,58,16,60,0,28,16,57,16,60,0,60,0,28,16,58,16,60,0,44,16,28,16,57,16,60,0,60,0,44,16,28,16,58,16,60,0,60,0,43,16,28,16,57,16,60,0,60,0,43,16,28,16,58,16,60,0,45,16,28,16,57,16,60,0,60,0,45,16,28,16,58,16,60,0,47,16,28,16,57,16,60,0,60,0,47,16,28,16,58,16,60,0,49,16,28,16,57,16,60,0,60,0,49,16,28,16,58,16,60,0,49,16,44,16,28,16,57,16,60,0,60,0,49,16,44,16,28,16,58,16,60,0,60,0,49,16,43,16,28,16,57,16,60,0,60,0,49,16,43,16,28,16,58,16,60,0,45,16,47,16,28,16,57,16,60,0,60,0,45,16,47,16,28,16,58,16,60,0,29,16,58,16,60,0,44,16,29,16,58,16,60,0,60,0,43,16,29,16,58,16,60,0,45,16,29,16,58,16,60,0,47,16,29,16,58,16,60,0,49,16,29,16,58,16,60,0,49,16,44,16,29,16,58,16,60,0,60,0,49,16,43,16,29,16,58,16,60,0,45,16,47,16,29,16,58,16,60,0,30,16,57,16,60,0,60,0,30,16,58,16,60,0,44,16,30,16,57,16,60,0,60,0,44,16,30,16,58,16,60,0,60,0,43,16,30,16,57,16,60,0,60,0,43,16,30,16,58,16,60,0,45,16,30,16,57,16,60,0,60,0,45,16,30,16,58,16,60,0,47,16,30,16,57,16,60,0,60,0,47,16,30,16,58,16,60,0,49,16,30,16,57,16,60,0,60,0,49,16,30,16,58,16,60,0,49,16,44,16,30,16,57,16,60,0,60,0,49,16,44,16,30,16,58,16,60,0,60,0,49,16,43,16,30,16,57,16,60,0,60,0,49,16,43,16,30,16,58,16,60,0,45,16,47,16,30,16,57,16,60,0,60,0,45,16,47,16,30,16,58,16,60,0,31,16,57,16,60,0,60,0,31,16,58,16,60,0,44,16,31,16,57,16,60,0,60,0,44,16,31,16,58,16,60,0,60,0,43,16,31,16,57,16,60,0,60,0,43,16,31,16,58,16,60,0,45,16,31,16,57,16,60,0,60,0,45,16,31,16,58,16,60,0,47,16,31,16,57,16,60,0,60,0,47,16,31,16,58,16,60,0,49,16,31,16,57,16,60,0,60,0,49,16,31,16,58,16,60,0,49,16,44,16,31,16,57,16,60,0,60,0,49,16,44,16,31,16,58,16,60,0,60,0,49,16,43,16,31,16,57,16,60,0,60,0,49,16,43,16,31,16,58,16,60,0,45,16,47,16,31,16,57,16,60,0,60,0,45,16,47,16,31,16,58,16,60,0,32,16,58,16,60,0,44,16,32,16,58,16,60,0,60,0,43,16,32,16,58,16,60,0,45,16,32,16,58,16,60,0,47,16,32,16,58,16,60,0,49,16,32,16,58,16,60,0,49,16,44,16,32,16,58,16,60,0,60,0,49,16,43,16,32,16,58,16,60,0,45,16,47,16,32,16,58,16,60,0,33,16,58,16,60,0,44,16,33,16,58,16,60,0,60,0,43,16,33,16,58,16,60,0,45,16,33,16,58,16,60,0,47,16,33,16,58,16,60,0,49,16,33,16,58,16,60,0,49,16,44,16,33,16,58,16,60,0,60,0,49,16,43,16,33,16,58,16,60,0,45,16,47,16,33,16,58,16,60,0,94,16,60,0,95,16,60,0,59,16,60,0,60,16,60,0,96,16,60,0,61,16,60,0,130,16,60,0,62,16,60,0,59,16,61,16,60,0,60,16,61,16,60,0,59,16,62,16,60,0,60,16,62,16,60,0,61,16,62,16,60,0,59,16,61,16,62,16,60,0,60,16,61,16,62,16,38,0,33,16,45,16,60,0,60,0,60,0,35,16,38,0,33,16,46,16,60,0,60,0,60,0,36,16,38,0,33,16,47,16,60,0,60,0,60,0,37,16,38,0,33,16,48,16,60,0,60,0,60,0,38,16,38,0,33,16,49,16,60,0,60,0,60,0,39,16,60,0,60,0,60,0,40,16,38,0,33,16,49,16,44,16,60,0,60,0,60,0,41,16,38,0,33,16,49,16,44,16,58,16,60,0,60,0,60,0,42,16,38,0,45,16,25,16,58,16,60,0,45,16,54,16,60,0,45,16,25,16,58,16,55,16,60,0,45,16,54,16,55,16,60,0,45,16,25,16,58,16,56,16,60,0,45,16,54,16,56,16,38,0,47,16,25,16,58,16,60,0,47,16,54,16,60,0,47,16,25,16,58,16,55,16,60,0,47,16,54,16,55,16,60,0,47,16,25,16,58,16,56,16,60,0,47,16,54,16,56,16,38,0,33,16,47,16,54,16,60,0,60,0,60,0,37,16,47,16,54,16,38,0,33,16,45,16,0,16,57,16,60,0,60,0,60,0,35,16,0,16,57,16,38,0,33,16,45,16,0,16,58,16,60,0,60,0,60,0,35,16,0,16,58,16,38,0,33,16,47,16,0,16,57,16,60,0,60,0,60,0,37,16,0,16,57,16,38,0,33,16,47,16,0,16,58,16,60,0,60,0,60,0,37,16,0,16,58,16,38,0,33,16,49,16,0,16,57,16,60,0,60,0,60,0,39,16,0,16,57,16,38,0,33,16,49,16,0,16,58,16,60,0,60,0,60,0,39,16,0,16,58,16,38,0,33,16,49,16,44,16,0,16,57,16,60,0,60,0,60,0,41,16,0,16,57,16,38,0,33,16,49,16,44,16,0,16,58,16,60,0,60,0,60,0,41,16,0,16,58,16,38,0,33,16,49,16,44,16,0,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,0,16,57,16,38,0,33,16,49,16,44,16,0,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,0,16,58,16,38,0,33,16,45,16,1,16,57,16,60,0,60,0,60,0,35,16,1,16,57,16,38,0,33,16,45,16,1,16,58,16,60,0,60,0,60,0,35,16,1,16,58,16,38,0,33,16,47,16,1,16,57,16,60,0,60,0,60,0,37,16,1,16,57,16,38,0,33,16,47,16,1,16,58,16,60,0,60,0,60,0,37,16,1,16,58,16,38,0,33,16,49,16,1,16,57,16,60,0,60,0,60,0,39,16,1,16,57,16,38,0,33,16,49,16,1,16,58,16,60,0,60,0,60,0,39,16,1,16,58,16,38,0,33,16,49,16,44,16,1,16,57,16,60,0,60,0,60,0,41,16,1,16,57,16,38,0,33,16,49,16,44,16,1,16,58,16,60,0,60,0,60,0,41,16,1,16,58,16,38,0,33,16,49,16,44,16,1,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,1,16,57,16,38,0,33,16,49,16,44,16,1,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,1,16,58,16,38,0,33,16,45,16,2,16,57,16,60,0,60,0,60,0,35,16,2,16,57,16,38,0,33,16,45,16,2,16,58,16,60,0,60,0,60,0,35,16,2,16,58,16,38,0,33,16,47,16,2,16,57,16,60,0,60,0,60,0,37,16,2,16,57,16,38,0,33,16,47,16,2,16,58,16,60,0,60,0,60,0,37,16,2,16,58,16,38,0,33,16,49,16,2,16,57,16,60,0,60,0,60,0,39,16,2,16,57,16,38,0,33,16,49,16,2,16,58,16,60,0,60,0,60,0,39,16,2,16,58,16,38,0,33,16,49,16,44,16,2,16,57,16,60,0,60,0,60,0,41,16,2,16,57,16,38,0,33,16,49,16,44,16,2,16,58,16,60,0,60,0,60,0,41,16,2,16,58,16,38,0,33,16,49,16,44,16,2,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,2,16,57,16,38,0,33,16,49,16,44,16,2,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,2,16,58,16,38,0,33,16,45,16,3,16,57,16,60,0,60,0,60,0,35,16,3,16,57,16,38,0,33,16,45,16,3,16,58,16,60,0,60,0,60,0,35,16,3,16,58,16,38,0,33,16,47,16,3,16,57,16,60,0,60,0,60,0,37,16,3,16,57,16,38,0,33,16,47,16,3,16,58,16,60,0,60,0,60,0,37,16,3,16,58,16,38,0,33,16,49,16,3,16,57,16,60,0,60,0,60,0,39,16,3,16,57,16,38,0,33,16,49,16,3,16,58,16,60,0,60,0,60,0,39,16,3,16,58,16,38,0,33,16,49,16,44,16,3,16,57,16,60,0,60,0,60,0,41,16,3,16,57,16,38,0,33,16,49,16,44,16,3,16,58,16,60,0,60,0,60,0,41,16,3,16,58,16,38,0,33,16,49,16,44,16,3,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,3,16,57,16,38,0,33,16,49,16,44,16,3,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,3,16,58,16,38,0,33,16,45,16,4,16,57,16,60,0,60,0,60,0,35,16,4,16,57,16,38,0,33,16,45,16,4,16,58,16,60,0,60,0,60,0,35,16,4,16,58,16,38,0,33,16,47,16,4,16,57,16,60,0,60,0,60,0,37,16,4,16,57,16,38,0,33,16,47,16,4,16,58,16,60,0,60,0,60,0,37,16,4,16,58,16,38,0,33,16,49,16,4,16,57,16,60,0,60,0,60,0,39,16,4,16,57,16,38,0,33,16,49,16,4,16,58,16,60,0,60,0,60,0,39,16,4,16,58,16,38,0,33,16,49,16,44,16,4,16,57,16,60,0,60,0,60,0,41,16,4,16,57,16,38,0,33,16,49,16,44,16,4,16,58,16,60,0,60,0,60,0,41,16,4,16,58,16,38,0,33,16,49,16,44,16,4,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,4,16,57,16,38,0,33,16,49,16,44,16,4,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,4,16,58,16,38,0,33,16,45,16,5,16,57,16,60,0,60,0,60,0,35,16,5,16,57,16,38,0,33,16,45,16,5,16,58,16,60,0,60,0,60,0,35,16,5,16,58,16,38,0,33,16,47,16,5,16,57,16,60,0,60,0,60,0,37,16,5,16,57,16,38,0,33,16,47,16,5,16,58,16,60,0,60,0,60,0,37,16,5,16,58,16,38,0,33,16,49,16,5,16,57,16,60,0,60,0,60,0,39,16,5,16,57,16,38,0,33,16,49,16,5,16,58,16,60,0,60,0,60,0,39,16,5,16,58,16,38,0,33,16,49,16,44,16,5,16,57,16,60,0,60,0,60,0,41,16,5,16,57,16,38,0,33,16,49,16,44,16,5,16,58,16,60,0,60,0,60,0,41,16,5,16,58,16,38,0,33,16,49,16,44,16,5,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,5,16,57,16,38,0,33,16,49,16,44,16,5,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,5,16,58,16,38,0,33,16,45,16,6,16,57,16,60,0,60,0,60,0,35,16,6,16,57,16,38,0,33,16,45,16,6,16,58,16,60,0,60,0,60,0,35,16,6,16,58,16,38,0,33,16,47,16,6,16,57,16,60,0,60,0,60,0,37,16,6,16,57,16,38,0,33,16,47,16,6,16,58,16,60,0,60,0,60,0,37,16,6,16,58,16,38,0,33,16,49,16,6,16,57,16,60,0,60,0,60,0,39,16,6,16,57,16,38,0,33,16,49,16,6,16,58,16,60,0,60,0,60,0,39,16,6,16,58,16,38,0,33,16,49,16,44,16,6,16,57,16,60,0,60,0,60,0,41,16,6,16,57,16,38,0,33,16,49,16,44,16,6,16,58,16,60,0,60,0,60,0,41,16,6,16,58,16,38,0,33,16,49,16,44,16,6,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,6,16,57,16,38,0,33,16,49,16,44,16,6,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,6,16,58,16,38,0,33,16,45,16,7,16,57,16,60,0,60,0,60,0,35,16,7,16,57,16,38,0,33,16,45,16,7,16,58,16,60,0,60,0,60,0,35,16,7,16,58,16,38,0,33,16,47,16,7,16,57,16,60,0,60,0,60,0,37,16,7,16,57,16,38,0,33,16,47,16,7,16,58,16,60,0,60,0,60,0,37,16,7,16,58,16,38,0,33,16,49,16,7,16,57,16,60,0,60,0,60,0,39,16,7,16,57,16,38,0,33,16,49,16,7,16,58,16,60,0,60,0,60,0,39,16,7,16,58,16,38,0,33,16,49,16,44,16,7,16,57,16,60,0,60,0,60,0,41,16,7,16,57,16,38,0,33,16,49,16,44,16,7,16,58,16,60,0,60,0,60,0,41,16,7,16,58,16,38,0,33,16,49,16,44,16,7,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,7,16,57,16,38,0,33,16,49,16,44,16,7,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,7,16,58,16,38,0,33,16,45,16,9,16,57,16,60,0,60,0,60,0,35,16,9,16,57,16,38,0,33,16,45,16,9,16,58,16,60,0,60,0,60,0,35,16,9,16,58,16,38,0,33,16,47,16,9,16,57,16,60,0,60,0,60,0,37,16,9,16,57,16,38,0,33,16,47,16,9,16,58,16,60,0,60,0,60,0,37,16,9,16,58,16,38,0,33,16,49,16,9,16,57,16,60,0,60,0,60,0,39,16,9,16,57,16,38,0,33,16,49,16,9,16,58,16,60,0,60,0,60,0,39,16,9,16,58,16,38,0,33,16,49,16,44,16,9,16,57,16,60,0,60,0,60,0,41,16,9,16,57,16,38,0,33,16,49,16,44,16,9,16,58,16,60,0,60,0,60,0,41,16,9,16,58,16,38,0,33,16,49,16,44,16,9,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,9,16,57,16,38,0,33,16,49,16,44,16,9,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,9,16,58,16,38,0,33,16,45,16,10,16,57,16,60,0,60,0,60,0,35,16,10,16,57,16,38,0,33,16,45,16,10,16,58,16,60,0,60,0,60,0,35,16,10,16,58,16,38,0,33,16,47,16,10,16,57,16,60,0,60,0,60,0,37,16,10,16,57,16,38,0,33,16,47,16,10,16,58,16,60,0,60,0,60,0,37,16,10,16,58,16,38,0,33,16,49,16,10,16,57,16,60,0,60,0,60,0,39,16,10,16,57,16,38,0,33,16,49,16,10,16,58,16,60,0,60,0,60,0,39,16,10,16,58,16,38,0,33,16,49,16,44,16,10,16,57,16,60,0,60,0,60,0,41,16,10,16,57,16,38,0,33,16,49,16,44,16,10,16,58,16,60,0,60,0,60,0,41,16,10,16,58,16,38,0,33,16,49,16,44,16,10,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,10,16,57,16,38,0,33,16,49,16,44,16,10,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,10,16,58,16,38,0,33,16,45,16,11,16,57,16,60,0,60,0,60,0,35,16,11,16,57,16,38,0,33,16,45,16,11,16,58,16,60,0,60,0,60,0,35,16,11,16,58,16,38,0,33,16,47,16,11,16,57,16,60,0,60,0,60,0,37,16,11,16,57,16,38,0,33,16,47,16,11,16,58,16,60,0,60,0,60,0,37,16,11,16,58,16,38,0,33,16,49,16,11,16,57,16,60,0,60,0,60,0,39,16,11,16,57,16,38,0,33,16,49,16,11,16,58,16,60,0,60,0,60,0,39,16,11,16,58,16,38,0,33,16,49,16,44,16,11,16,57,16,60,0,60,0,60,0,41,16,11,16,57,16,38,0,33,16,49,16,44,16,11,16,58,16,60,0,60,0,60,0,41,16,11,16,58,16,38,0,33,16,49,16,44,16,11,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,11,16,57,16,38,0,33,16,49,16,44,16,11,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,11,16,58,16,38,0,33,16,45,16,12,16,57,16,60,0,60,0,60,0,35,16,12,16,57,16,38,0,33,16,45,16,12,16,58,16,60,0,60,0,60,0,35,16,12,16,58,16,38,0,33,16,47,16,12,16,57,16,60,0,60,0,60,0,37,16,12,16,57,16,38,0,33,16,47,16,12,16,58,16,60,0,60,0,60,0,37,16,12,16,58,16,38,0,33,16,49,16,12,16,57,16,60,0,60,0,60,0,39,16,12,16,57,16,38,0,33,16,49,16,12,16,58,16,60,0,60,0,60,0,39,16,12,16,58,16,38,0,33,16,49,16,44,16,12,16,57,16,60,0,60,0,60,0,41,16,12,16,57,16,38,0,33,16,49,16,44,16,12,16,58,16,60,0,60,0,60,0,41,16,12,16,58,16,38,0,33,16,49,16,44,16,12,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,12,16,57,16,38,0,33,16,49,16,44,16,12,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,12,16,58,16,38,0,33,16,45,16,13,16,57,16,60,0,60,0,60,0,35,16,13,16,57,16,38,0,33,16,45,16,13,16,58,16,60,0,60,0,60,0,35,16,13,16,58,16,38,0,33,16,47,16,13,16,57,16,60,0,60,0,60,0,37,16,13,16,57,16,38,0,33,16,47,16,13,16,58,16,60,0,60,0,60,0,37,16,13,16,58,16,38,0,33,16,49,16,13,16,57,16,60,0,60,0,60,0,39,16,13,16,57,16,38,0,33,16,49,16,13,16,58,16,60,0,60,0,60,0,39,16,13,16,58,16,38,0,33,16,49,16,44,16,13,16,57,16,60,0,60,0,60,0,41,16,13,16,57,16,38,0,33,16,49,16,44,16,13,16,58,16,60,0,60,0,60,0,41,16,13,16,58,16,38,0,33,16,49,16,44,16,13,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,13,16,57,16,38,0,33,16,49,16,44,16,13,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,13,16,58,16,38,0,33,16,45,16,14,16,57,16,60,0,60,0,60,0,35,16,14,16,57,16,38,0,33,16,45,16,14,16,58,16,60,0,60,0,60,0,35,16,14,16,58,16,38,0,33,16,47,16,14,16,57,16,60,0,60,0,60,0,37,16,14,16,57,16,38,0,33,16,47,16,14,16,58,16,60,0,60,0,60,0,37,16,14,16,58,16,38,0,33,16,49,16,14,16,57,16,60,0,60,0,60,0,39,16,14,16,57,16,38,0,33,16,49,16,14,16,58,16,60,0,60,0,60,0,39,16,14,16,58,16,38,0,33,16,49,16,44,16,14,16,57,16,60,0,60,0,60,0,41,16,14,16,57,16,38,0,33,16,49,16,44,16,14,16,58,16,60,0,60,0,60,0,41,16,14,16,58,16,38,0,33,16,49,16,44,16,14,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,14,16,57,16,38,0,33,16,49,16,44,16,14,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,14,16,58,16,38,0,33,16,45,16,15,16,57,16,60,0,60,0,60,0,35,16,15,16,57,16,38,0,33,16,45,16,15,16,58,16,60,0,60,0,60,0,35,16,15,16,58,16,38,0,33,16,47,16,15,16,57,16,60,0,60,0,60,0,37,16,15,16,57,16,38,0,33,16,47,16,15,16,58,16,60,0,60,0,60,0,37,16,15,16,58,16,38,0,33,16,49,16,15,16,57,16,60,0,60,0,60,0,39,16,15,16,57,16,38,0,33,16,49,16,15,16,58,16,60,0,60,0,60,0,39,16,15,16,58,16,38,0,33,16,49,16,44,16,15,16,57,16,60,0,60,0,60,0,41,16,15,16,57,16,38,0,33,16,49,16,44,16,15,16,58,16,60,0,60,0,60,0,41,16,15,16,58,16,38,0,33,16,49,16,44,16,15,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,15,16,57,16,38,0,33,16,49,16,44,16,15,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,15,16,58,16,38,0,33,16,45,16,16,16,57,16,60,0,60,0,60,0,35,16,16,16,57,16,38,0,33,16,45,16,16,16,58,16,60,0,60,0,60,0,35,16,16,16,58,16,38,0,33,16,47,16,16,16,57,16,60,0,60,0,60,0,37,16,16,16,57,16,38,0,33,16,47,16,16,16,58,16,60,0,60,0,60,0,37,16,16,16,58,16,38,0,33,16,49,16,16,16,57,16,60,0,60,0,60,0,39,16,16,16,57,16,38,0,33,16,49,16,16,16,58,16,60,0,60,0,60,0,39,16,16,16,58,16,38,0,33,16,49,16,44,16,16,16,57,16,60,0,60,0,60,0,41,16,16,16,57,16,38,0,33,16,49,16,44,16,16,16,58,16,60,0,60,0,60,0,41,16,16,16,58,16,38,0,33,16,49,16,44,16,16,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,16,16,57,16,38,0,33,16,49,16,44,16,16,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,16,16,58,16,38,0,33,16,45,16,17,16,57,16,60,0,60,0,60,0,35,16,17,16,57,16,38,0,33,16,45,16,17,16,58,16,60,0,60,0,60,0,35,16,17,16,58,16,38,0,33,16,47,16,17,16,57,16,60,0,60,0,60,0,37,16,17,16,57,16,38,0,33,16,47,16,17,16,58,16,60,0,60,0,60,0,37,16,17,16,58,16,38,0,33,16,49,16,17,16,57,16,60,0,60,0,60,0,39,16,17,16,57,16,38,0,33,16,49,16,17,16,58,16,60,0,60,0,60,0,39,16,17,16,58,16,38,0,33,16,49,16,44,16,17,16,57,16,60,0,60,0,60,0,41,16,17,16,57,16,38,0,33,16,49,16,44,16,17,16,58,16,60,0,60,0,60,0,41,16,17,16,58,16,38,0,33,16,49,16,44,16,17,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,17,16,57,16,38,0,33,16,49,16,44,16,17,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,17,16,58,16,38,0,33,16,45,16,18,16,57,16,60,0,60,0,60,0,35,16,18,16,57,16,38,0,33,16,45,16,18,16,58,16,60,0,60,0,60,0,35,16,18,16,58,16,38,0,33,16,47,16,18,16,57,16,60,0,60,0,60,0,37,16,18,16,57,16,38,0,33,16,47,16,18,16,58,16,60,0,60,0,60,0,37,16,18,16,58,16,38,0,33,16,49,16,18,16,57,16,60,0,60,0,60,0,39,16,18,16,57,16,38,0,33,16,49,16,18,16,58,16,60,0,60,0,60,0,39,16,18,16,58,16,38,0,33,16,49,16,44,16,18,16,57,16,60,0,60,0,60,0,41,16,18,16,57,16,38,0,33,16,49,16,44,16,18,16,58,16,60,0,60,0,60,0,41,16,18,16,58,16,38,0,33,16,49,16,44,16,18,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,18,16,57,16,38,0,33,16,49,16,44,16,18,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,18,16,58,16,38,0,33,16,45,16,19,16,57,16,60,0,60,0,60,0,35,16,19,16,57,16,38,0,33,16,45,16,19,16,58,16,60,0,60,0,60,0,35,16,19,16,58,16,38,0,33,16,47,16,19,16,57,16,60,0,60,0,60,0,37,16,19,16,57,16,38,0,33,16,47,16,19,16,58,16,60,0,60,0,60,0,37,16,19,16,58,16,38,0,33,16,49,16,19,16,57,16,60,0,60,0,60,0,39,16,19,16,57,16,38,0,33,16,49,16,19,16,58,16,60,0,60,0,60,0,39,16,19,16,58,16,38,0,33,16,49,16,44,16,19,16,57,16,60,0,60,0,60,0,41,16,19,16,57,16,38,0,33,16,49,16,44,16,19,16,58,16,60,0,60,0,60,0,41,16,19,16,58,16,38,0,33,16,49,16,44,16,19,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,19,16,57,16,38,0,33,16,49,16,44,16,19,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,19,16,58,16,38,0,33,16,45,16,20,16,57,16,60,0,60,0,60,0,35,16,20,16,57,16,38,0,33,16,45,16,20,16,58,16,60,0,60,0,60,0,35,16,20,16,58,16,38,0,33,16,47,16,20,16,57,16,60,0,60,0,60,0,37,16,20,16,57,16,38,0,33,16,47,16,20,16,58,16,60,0,60,0,60,0,37,16,20,16,58,16,38,0,33,16,49,16,20,16,57,16,60,0,60,0,60,0,39,16,20,16,57,16,38,0,33,16,49,16,20,16,58,16,60,0,60,0,60,0,39,16,20,16,58,16,38,0,33,16,49,16,44,16,20,16,57,16,60,0,60,0,60,0,41,16,20,16,57,16,38,0,33,16,49,16,44,16,20,16,58,16,60,0,60,0,60,0,41,16,20,16,58,16,38,0,33,16,49,16,44,16,20,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,20,16,57,16,38,0,33,16,49,16,44,16,20,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,20,16,58,16,38,0,33,16,45,16,21,16,57,16,60,0,60,0,60,0,35,16,21,16,57,16,38,0,33,16,45,16,21,16,58,16,60,0,60,0,60,0,35,16,21,16,58,16,38,0,33,16,47,16,21,16,57,16,60,0,60,0,60,0,37,16,21,16,57,16,38,0,33,16,47,16,21,16,58,16,60,0,60,0,60,0,37,16,21,16,58,16,38,0,33,16,49,16,21,16,57,16,60,0,60,0,60,0,39,16,21,16,57,16,38,0,33,16,49,16,21,16,58,16,60,0,60,0,60,0,39,16,21,16,58,16,38,0,33,16,49,16,44,16,21,16,57,16,60,0,60,0,60,0,41,16,21,16,57,16,38,0,33,16,49,16,44,16,21,16,58,16,60,0,60,0,60,0,41,16,21,16,58,16,38,0,33,16,49,16,44,16,21,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,21,16,57,16,38,0,33,16,49,16,44,16,21,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,21,16,58,16,38,0,33,16,45,16,22,16,57,16,60,0,60,0,60,0,35,16,22,16,57,16,38,0,33,16,45,16,22,16,58,16,60,0,60,0,60,0,35,16,22,16,58,16,38,0,33,16,47,16,22,16,57,16,60,0,60,0,60,0,37,16,22,16,57,16,38,0,33,16,47,16,22,16,58,16,60,0,60,0,60,0,37,16,22,16,58,16,38,0,33,16,49,16,22,16,57,16,60,0,60,0,60,0,39,16,22,16,57,16,38,0,33,16,49,16,22,16,58,16,60,0,60,0,60,0,39,16,22,16,58,16,38,0,33,16,49,16,44,16,22,16,57,16,60,0,60,0,60,0,41,16,22,16,57,16,38,0,33,16,49,16,44,16,22,16,58,16,60,0,60,0,60,0,41,16,22,16,58,16,38,0,33,16,49,16,44,16,22,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,22,16,57,16,38,0,33,16,49,16,44,16,22,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,22,16,58,16,38,0,33,16,45,16,23,16,57,16,60,0,60,0,60,0,35,16,23,16,57,16,38,0,33,16,45,16,23,16,58,16,60,0,60,0,60,0,35,16,23,16,58,16,38,0,33,16,47,16,23,16,57,16,60,0,60,0,60,0,37,16,23,16,57,16,38,0,33,16,47,16,23,16,58,16,60,0,60,0,60,0,37,16,23,16,58,16,38,0,33,16,49,16,23,16,57,16,60,0,60,0,60,0,39,16,23,16,57,16,38,0,33,16,49,16,23,16,58,16,60,0,60,0,60,0,39,16,23,16,58,16,38,0,33,16,49,16,44,16,23,16,57,16,60,0,60,0,60,0,41,16,23,16,57,16,38,0,33,16,49,16,44,16,23,16,58,16,60,0,60,0,60,0,41,16,23,16,58,16,38,0,33,16,49,16,44,16,23,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,23,16,57,16,38,0,33,16,49,16,44,16,23,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,23,16,58,16,38,0,33,16,45,16,24,16,57,16,60,0,60,0,60,0,35,16,24,16,57,16,38,0,33,16,45,16,24,16,58,16,60,0,60,0,60,0,35,16,24,16,58,16,38,0,33,16,47,16,24,16,57,16,60,0,60,0,60,0,37,16,24,16,57,16,38,0,33,16,47,16,24,16,58,16,60,0,60,0,60,0,37,16,24,16,58,16,38,0,33,16,49,16,24,16,57,16,60,0,60,0,60,0,39,16,24,16,57,16,38,0,33,16,49,16,24,16,58,16,60,0,60,0,60,0,39,16,24,16,58,16,38,0,33,16,49,16,44,16,24,16,57,16,60,0,60,0,60,0,41,16,24,16,57,16,38,0,33,16,49,16,44,16,24,16,58,16,60,0,60,0,60,0,41,16,24,16,58,16,38,0,33,16,49,16,44,16,24,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,24,16,57,16,38,0,33,16,49,16,44,16,24,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,24,16,58,16,38,0,33,16,45,16,25,16,57,16,60,0,60,0,60,0,35,16,25,16,57,16,38,0,33,16,45,16,25,16,58,16,60,0,60,0,60,0,35,16,25,16,58,16,38,0,33,16,47,16,25,16,57,16,60,0,60,0,60,0,37,16,25,16,57,16,38,0,33,16,47,16,25,16,58,16,60,0,60,0,60,0,37,16,25,16,58,16,38,0,33,16,49,16,25,16,57,16,60,0,60,0,60,0,39,16,25,16,57,16,38,0,33,16,49,16,25,16,58,16,60,0,60,0,60,0,39,16,25,16,58,16,38,0,33,16,49,16,44,16,25,16,57,16,60,0,60,0,60,0,41,16,25,16,57,16,38,0,33,16,49,16,44,16,25,16,58,16,60,0,60,0,60,0,41,16,25,16,58,16,38,0,33,16,49,16,44,16,25,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,25,16,57,16,38,0,33,16,49,16,44,16,25,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,25,16,58,16,38,0,33,16,45,16,26,16,57,16,60,0,60,0,60,0,35,16,26,16,57,16,38,0,33,16,45,16,26,16,58,16,60,0,60,0,60,0,35,16,26,16,58,16,38,0,33,16,47,16,26,16,57,16,60,0,60,0,60,0,37,16,26,16,57,16,38,0,33,16,47,16,26,16,58,16,60,0,60,0,60,0,37,16,26,16,58,16,38,0,33,16,49,16,26,16,57,16,60,0,60,0,60,0,39,16,26,16,57,16,38,0,33,16,49,16,26,16,58,16,60,0,60,0,60,0,39,16,26,16,58,16,38,0,33,16,49,16,44,16,26,16,57,16,60,0,60,0,60,0,41,16,26,16,57,16,38,0,33,16,49,16,44,16,26,16,58,16,60,0,60,0,60,0,41,16,26,16,58,16,38,0,33,16,49,16,44,16,26,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,26,16,57,16,38,0,33,16,49,16,44,16,26,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,26,16,58,16,38,0,33,16,45,16,27,16,57,16,60,0,60,0,60,0,35,16,27,16,57,16,38,0,33,16,45,16,27,16,58,16,60,0,60,0,60,0,35,16,27,16,58,16,38,0,33,16,47,16,27,16,57,16,60,0,60,0,60,0,37,16,27,16,57,16,38,0,33,16,47,16,27,16,58,16,60,0,60,0,60,0,37,16,27,16,58,16,38,0,33,16,49,16,27,16,57,16,60,0,60,0,60,0,39,16,27,16,57,16,38,0,33,16,49,16,27,16,58,16,60,0,60,0,60,0,39,16,27,16,58,16,38,0,33,16,49,16,44,16,27,16,57,16,60,0,60,0,60,0,41,16,27,16,57,16,38,0,33,16,49,16,44,16,27,16,58,16,60,0,60,0,60,0,41,16,27,16,58,16,38,0,33,16,49,16,44,16,27,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,27,16,57,16,38,0,33,16,49,16,44,16,27,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,27,16,58,16,38,0,33,16,45,16,28,16,57,16,60,0,60,0,60,0,35,16,28,16,57,16,38,0,33,16,45,16,28,16,58,16,60,0,60,0,60,0,35,16,28,16,58,16,38,0,33,16,47,16,28,16,57,16,60,0,60,0,60,0,37,16,28,16,57,16,38,0,33,16,47,16,28,16,58,16,60,0,60,0,60,0,37,16,28,16,58,16,38,0,33,16,49,16,28,16,57,16,60,0,60,0,60,0,39,16,28,16,57,16,38,0,33,16,49,16,28,16,58,16,60,0,60,0,60,0,39,16,28,16,58,16,38,0,33,16,49,16,44,16,28,16,57,16,60,0,60,0,60,0,41,16,28,16,57,16,38,0,33,16,49,16,44,16,28,16,58,16,60,0,60,0,60,0,41,16,28,16,58,16,38,0,33,16,49,16,44,16,28,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,28,16,57,16,38,0,33,16,49,16,44,16,28,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,28,16,58,16,38,0,33,16,45,16,30,16,57,16,60,0,60,0,60,0,35,16,30,16,57,16,38,0,33,16,45,16,30,16,58,16,60,0,60,0,60,0,35,16,30,16,58,16,38,0,33,16,47,16,30,16,57,16,60,0,60,0,60,0,37,16,30,16,57,16,38,0,33,16,47,16,30,16,58,16,60,0,60,0,60,0,37,16,30,16,58,16,38,0,33,16,49,16,30,16,57,16,60,0,60,0,60,0,39,16,30,16,57,16,38,0,33,16,49,16,30,16,58,16,60,0,60,0,60,0,39,16,30,16,58,16,38,0,33,16,49,16,44,16,30,16,57,16,60,0,60,0,60,0,41,16,30,16,57,16,38,0,33,16,49,16,44,16,30,16,58,16,60,0,60,0,60,0,41,16,30,16,58,16,38,0,33,16,49,16,44,16,30,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,30,16,57,16,38,0,33,16,49,16,44,16,30,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,30,16,58,16,38,0,33,16,45,16,31,16,57,16,60,0,60,0,60,0,35,16,31,16,57,16,38,0,33,16,45,16,31,16,58,16,60,0,60,0,60,0,35,16,31,16,58,16,38,0,33,16,47,16,31,16,57,16,60,0,60,0,60,0,37,16,31,16,57,16,38,0,33,16,47,16,31,16,58,16,60,0,60,0,60,0,37,16,31,16,58,16,38,0,33,16,49,16,31,16,57,16,60,0,60,0,60,0,39,16,31,16,57,16,38,0,33,16,49,16,31,16,58,16,60,0,60,0,60,0,39,16,31,16,58,16,38,0,33,16,49,16,44,16,31,16,57,16,60,0,60,0,60,0,41,16,31,16,57,16,38,0,33,16,49,16,44,16,31,16,58,16,60,0,60,0,60,0,41,16,31,16,58,16,38,0,33,16,49,16,44,16,31,16,57,16,60,0,60,0,60,0,41,16,49,16,44,16,31,16,57,16,38,0,33,16,49,16,44,16,31,16,58,16,60,0,60,0,60,0,41,16,49,16,44,16,31,16,58,16,38,0,49,16,44,16,0,16,58,16,0,16,59,16,61,0,49,16,44,16,0,16,58,16,59,16,38,0,20,16,58,16,20,16,47,16,21,16,58,16,61,0,20,16,58,16,47,16,21,16,58,16,38,0,49,16,30,16,57,16,30,16,61,0,49,16,63,16,38,0,45,16,30,16,57,16,30,16,61,0,45,16,63,16,38,0,47,16,30,16,57,16,30,16,61,0,47,16,63,16,38,0,33,16,45,16,30,16,57,16,30,16,60,0,60,0,60,0,35,16,63,16,38,0,33,16,47,16,30,16,57,16,30,16,60,0,60,0,60,0,37,16,63,16,38,0,30,16,57,16,30,16,61,0,63,16,38,0,20,16,62,16,45,16,47,16,0,16,58,16,60,0,60,0,76,16,38,0,27,16,61,16,49,16,55,16,60,0,60,0,77,16,38,0,28,16,10,16,58,16,56,16,0,16,49,16,44,16,4,16,58,16,56,16,60,0,60,0,78,16,4,16,58,16,56,16,38,0,33,16,45,16,60,0,60,0,79,16,38,0,28,16,0,16,58,16,26,16,44,16,61,0,28,16,0,16,58,16,59,16,44,16,38,0,30,16,25,16,46,16,61,0,30,16,57,16,25,16,46,16,38,0,17,16,25,16,4,16,58,16,56,16,61,0,17,16,57,16,25,16,4,16,58,16,56,16,38,0,28,16,0,16,58,16,24,16,0,16,58,16,61,0,28,16,57,16,24,16,0,16,58,16,0,0,170,170,170,170,170,170,170,170,170,170,170,170,82,100,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,236,26,0,0,236,26,0,0,12,66,0,0,12,66,0,0,172,66,0,0,172,66,0,0,20,100,0,0,54,100,0,0,28,0,0,0,0,0,79,117,178,255,94,117,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,0,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,145,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,112,0,120,0,128,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,136,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,3,0,202,225,3,0,202,2,4,0,202,35,4,0,202,68,4,0,202,101,4,0,202,134,4,0,202,167,4,0,202,200,4,0,202,233,4,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,3,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,66,3,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,3,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,201,38,1,0,201,38,2,0,201,70,3,0,201,102,4,0,201,134,5,0,201,166,6,0,201,198,7,0,201,230,8,0,201,166,9,0,201,198,10,0,201,230,11,0,201,6,13,0,201,38,14,0,201,70,15,0,201,102,16,0,201,134,17,0,201,166,18,0,201,166,20,0,201,198,21,0,201,230,22,0,201,166,24,0,201,198,25,0,201,230,26,0,201,6,28,0,201,38,29,0,201,70,30,0,201,102,31,0,201,132,32,0,201,102,35,0,201,38,36,0,201,198,37,0,201,230,38,0,201,166,39,0,192,0,0,0,201,100,40,0,198,34,25,0,201,196,75,0,198,98,40,0,201,68,112,0,198,66,56,0,201,36,147,0,198,66,86,0,201,36,217,0,201,4,255,0,201,4,37,1,192,0,0,0,201,228,115,1,192,0,0,0,201,164,156,1,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,150,89,117,201,160,16,2,193,81,93,117,192,0,0,0,192,0,0,0,201,128,17,2,201,32,19,2,201,192,20,2,198,193,153,0,198,226,153,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,35,154,0,198,132,154,0,201,128,21,2,198,194,155,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,156,0,198,33,156,0,198,65,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,5,0,70,0,152,89,117,0,5,0,5,7,154,89,117,0,5,0,70,7,154,89,117,0,5,0,5,14,154,89,117,0,5,0,70,14,154,89,117,0,5,0,5,21,154,89,117,0,5,0,70,21,154,89,117,0,5,0,70,28,154,89,117,0,5,0,5,28,154,89,117,0,5,0,5,35,154,89,117,0,5,0,70,35,154,89,117,0,5,0,5,42,154,89,117,0,5,0,70,42,154,89,117,0,5,0,5,49,154,89,117,0,5,0,70,49,154,89,117,0,5,0,5,56,154,89,117,0,5,0,5,63,154,89,117,0,5,0,70,63,154,89,117,0,5,0,5,70,154,89,117,0,5,0,70,70,154,89,117,0,5,0,5,77,154,89,117,0,5,0,70,77,154,89,117,0,5,0,5,84,154,89,117,0,5,0,70,84,154,89,117,0,5,0,5,91,154,89,117,0,5,0,70,91,154,89,117,0,5,0,5,98,154,89,117,0,5,0,70,98,154,89,117,0,5,0,5,105,154,89,117,0,5,0,70,105,154,89,117,0,5,0,5,112,154,89,117,0,5,0,70,112,154,89,117,0,5,0,5,119,154,89,117,0,5,0,5,0,119,80,117,0,5,0,5,0,33,81,117,0,5,0,70,28,154,89,117,0,5,0,5,0,81,93,117,0,5,0,70,119,154,89,117,0,5,0,5,126,154,89,117,0,5,0,70,126,154,89,117,0,5,0,5,133,154,89,117,0,5,0,70,133,154,89,117,0,5,0,5,140,154,89,117,0,5,0,70,140,154,89,117,0,5,0,70,140,154,89,117,0,5,0,5,0,168,80,117,0,5,0,70,150,154,89,117,0,5,0,5,147,154,89,117,0,5,0,70,147,154,89,117,0,5,0,5,154,154,89,117,0,5,0,70,154,154,89,117,0,5,0,5,161,154,89,117,0,5,0,70,161,154,89,117,0,5,0,5,168,154,89,117,0,5,0,70,168,154,89,117,0,5,0,5,175,154,89,117,0,5,0,70,175,154,89,117,0,5,0,5,192,154,89,117,0,5,0,70,192,154,89,117,0,5,0,5,199,154,89,117,0,5,0,70,199,154,89,117,0,5,0,5,0,89,81,117,0,5,0,70,0,152,89,117,0,5,0,5,0,47,81,117,0,5,0,5,0,0,87,117,0,5,0,5,206,154,89,117,0,5,0,5,0,89,81,117,0,5,0,70,0,152,89,117,0,5,0,5,0,12,81,117,0,5,0,70,0,152,89,117,0,5,0,70,206,154,89,117,0,5,0,5,213,154,89,117,0,5,0,5,220,154,89,117,0,5,0,70,220,154,89,117,0,5,0,5,227,154,89,117,0,5,0,70,227,154,89,117,0,5,0,5,234,154,89,117,0,5,0,5,241,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,23,89,117,0,5,0,5,0,100,85,117,0,6,0,5,2,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,2,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,9,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,9,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,16,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,16,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,23,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,23,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,30,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,37,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,37,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,44,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,44,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,51,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,51,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,65,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,65,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,72,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,72,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,79,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,79,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,86,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,86,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,93,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,93,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,100,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,100,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,107,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,107,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,114,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,114,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,121,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,121,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,128,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,128,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,135,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,135,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,142,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,142,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,149,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,149,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,156,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,156,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,163,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,163,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,170,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,170,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,177,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,177,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,194,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,194,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,201,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,201,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,208,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,208,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,222,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,222,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,229,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,229,154,89,117,0,5,0,5,0,100,85,117,0,5,0,5,222,154,89,117,0,7,0,5,0,0,83,117,0,5,0,5,0,100,85,117,0,6,0,5,0,37,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,51,89,117,0,5,0,5,0,100,85,117,0,6,0,5,3,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,3,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,10,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,10,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,17,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,17,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,24,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,24,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,31,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,38,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,38,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,45,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,45,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,52,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,52,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,66,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,66,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,73,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,73,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,80,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,80,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,87,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,87,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,94,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,94,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,101,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,101,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,108,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,108,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,115,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,115,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,122,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,122,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,129,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,129,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,136,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,136,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,143,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,143,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,150,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,150,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,157,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,157,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,164,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,164,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,171,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,171,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,183,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,183,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,195,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,195,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,202,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,202,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,209,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,209,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,223,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,223,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,230,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,230,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,72,89,117,0,5,0,5,0,100,85,117,0,6,0,5,184,154,89,117,0,5,0,5,0,100,85,117,0,5,0,5,223,154,89,117,0,6,0,5,0,0,83,117,0,5,0,5,0,100,85,117,0,6,0,5,0,107,89,117,0,5,0,5,0,100,85,117,0,6,0,5,4,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,4,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,11,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,11,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,18,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,18,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,25,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,25,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,32,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,39,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,39,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,46,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,46,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,53,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,53,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,67,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,67,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,74,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,74,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,81,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,81,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,88,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,88,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,95,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,95,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,102,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,102,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,109,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,109,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,116,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,116,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,123,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,123,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,130,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,130,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,137,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,137,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,144,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,144,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,151,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,151,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,158,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,158,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,165,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,165,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,172,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,172,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,189,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,189,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,196,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,196,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,203,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,203,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,210,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,210,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,224,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,224,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,231,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,231,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,0,107,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,136,89,117,0,5,0,5,0,100,85,117,0,7,0,5,5,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,5,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,12,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,12,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,19,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,19,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,26,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,26,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,33,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,40,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,40,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,47,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,47,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,54,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,54,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,68,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,68,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,75,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,75,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,82,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,82,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,89,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,89,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,96,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,96,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,103,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,103,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,110,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,110,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,117,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,117,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,124,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,124,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,131,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,131,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,138,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,138,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,145,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,145,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,152,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,152,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,159,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,159,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,166,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,166,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,173,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,173,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,190,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,190,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,197,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,197,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,204,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,204,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,211,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,211,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,225,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,225,154,89,117,0,5,0,5,0,100,85,117,0,7,0,5,232,154,89,117,0,5,0,5,0,100,85,117,0,7,0,70,232,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,5,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,5,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,12,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,12,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,19,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,19,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,26,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,26,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,33,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,40,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,40,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,47,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,47,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,54,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,54,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,68,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,68,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,75,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,75,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,82,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,82,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,89,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,89,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,96,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,96,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,103,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,103,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,110,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,110,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,117,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,117,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,124,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,124,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,131,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,131,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,138,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,138,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,145,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,145,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,152,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,152,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,159,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,159,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,166,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,166,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,173,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,173,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,190,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,190,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,197,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,197,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,204,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,204,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,211,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,211,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,225,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,225,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,232,154,89,117,0,5,0,5,0,100,85,117,0,6,0,70,232,154,89,117,0,5,0,5,0,100,85,117,0,6,0,5,0,137,89,117,0,5,0,71,0,153,89,117,0,5,0,72,0,153,89,117,0,5,0,71,8,154,89,117,0,5,0,72,8,154,89,117,0,5,0,71,15,154,89,117,0,5,0,72,15,154,89,117,0,5,0,71,22,154,89,117,0,5,0,72,22,154,89,117,0,5,0,72,29,154,89,117,0,5,0,71,29,154,89,117,0,5,0,71,36,154,89,117,0,5,0,72,36,154,89,117,0,5,0,71,43,154,89,117,0,5,0,72,43,154,89,117,0,5,0,71,50,154,89,117,0,5,0,72,50,154,89,117,0,5,0,70,57,154,89,117,0,5,0,71,64,154,89,117,0,5,0,72,64,154,89,117,0,5,0,71,71,154,89,117,0,5,0,72,71,154,89,117,0,5,0,71,78,154,89,117,0,5,0,72,78,154,89,117,0,5,0,71,85,154,89,117,0,5,0,72,85,154,89,117,0,5,0,71,92,154,89,117,0,5,0,72,92,154,89,117,0,5,0,71,99,154,89,117,0,5,0,72,99,154,89,117,0,5,0,71,106,154,89,117,0,5,0,72,106,154,89,117,0,5,0,71,113,154,89,117,0,5,0,72,113,154,89,117,0,5,0,71,120,154,89,117,0,5,0,72,120,154,89,117,0,5,0,71,127,154,89,117,0,5,0,72,127,154,89,117,0,5,0,71,134,154,89,117,0,5,0,72,134,154,89,117,0,5,0,71,141,154,89,117,0,5,0,72,141,154,89,117,0,5,0,71,148,154,89,117,0,5,0,72,148,154,89,117,0,5,0,71,155,154,89,117,0,5,0,72,155,154,89,117,0,5,0,71,162,154,89,117,0,5,0,72,162,154,89,117,0,5,0,71,169,154,89,117,0,5,0,72,169,154,89,117,0,5,0,71,176,154,89,117,0,5,0,72,176,154,89,117,0,5,0,71,193,154,89,117,0,5,0,72,193,154,89,117,0,5,0,71,200,154,89,117,0,5,0,72,200,154,89,117,0,5,0,71,207,154,89,117,0,5,0,72,207,154,89,117,0,5,0,70,214,154,89,117,0,5,0,71,221,154,89,117,0,5,0,72,221,154,89,117,0,5,0,71,228,154,89,117,0,5,0,72,228,154,89,117,0,5,0,70,235,154,89,117,0,5,0,70,242,154,89,117,0,5,0,70,0,153,89,117,0,5,0,5,8,154,89,117,0,5,0,70,8,154,89,117,0,5,0,5,15,154,89,117,0,5,0,70,15,154,89,117,0,5,0,5,22,154,89,117,0,5,0,70,22,154,89,117,0,5,0,70,29,154,89,117,0,5,0,5,29,154,89,117,0,5,0,5,36,154,89,117,0,5,0,70,36,154,89,117,0,5,0,5,43,154,89,117,0,5,0,70,43,154,89,117,0,5,0,5,50,154,89,117,0,5,0,70,50,154,89,117,0,5,0,5,57,154,89,117,0,5,0,5,64,154,89,117,0,5,0,70,64,154,89,117,0,5,0,5,71,154,89,117,0,5,0,70,71,154,89,117,0,5,0,5,78,154,89,117,0,5,0,70,78,154,89,117,0,5,0,5,85,154,89,117,0,5,0,70,85,154,89,117,0,5,0,5,92,154,89,117,0,5,0,70,92,154,89,117,0,5,0,5,99,154,89,117,0,5,0,70,99,154,89,117,0,5,0,5,106,154,89,117,0,5,0,70,106,154,89,117,0,5,0,5,113,154,89,117,0,5,0,70,113,154,89,117,0,5,0,5,120,154,89,117,0,5,0,70,120,154,89,117,0,5,0,5,127,154,89,117,0,5,0,70,127,154,89,117,0,5,0,5,134,154,89,117,0,5,0,70,134,154,89,117,0,5,0,5,141,154,89,117,0,5,0,70,141,154,89,117,0,5,0,5,148,154,89,117,0,5,0,70,148,154,89,117,0,5,0,5,155,154,89,117,0,5,0,70,155,154,89,117,0,5,0,5,162,154,89,117,0,5,0,70,162,154,89,117,0,5,0,5,169,154,89,117,0,5,0,70,169,154,89,117,0,5,0,5,176,154,89,117,0,5,0,70,176,154,89,117,0,5,0,5,193,154,89,117,0,5,0,70,193,154,89,117,0,5,0,5,200,154,89,117,0,5,0,70,200,154,89,117,0,5,0,5,207,154,89,117,0,5,0,70,207,154,89,117,0,5,0,5,214,154,89,117,0,5,0,5,221,154,89,117,0,5,0,70,221,154,89,117,0,5,0,5,228,154,89,117,0,5,0,70,228,154,89,117,0,5,0,5,235,154,89,117,0,5,0,5,242,154,89,117,0,5,0,5,2,154,89,117,0,5,0,70,2,154,89,117,0,5,0,5,9,154,89,117,0,5,0,70,9,154,89,117,0,5,0,5,16,154,89,117,0,5,0,70,16,154,89,117,0,5,0,5,23,154,89,117,0,5,0,70,23,154,89,117,0,5,0,70,30,154,89,117,0,5,0,5,30,154,89,117,0,5,0,5,37,154,89,117,0,5,0,70,37,154,89,117,0,5,0,5,44,154,89,117,0,5,0,70,44,154,89,117,0,5,0,5,51,154,89,117,0,5,0,70,51,154,89,117,0,5,0,5,58,154,89,117,0,5,0,5,65,154,89,117,0,5,0,70,65,154,89,117,0,5,0,5,72,154,89,117,0,5,0,70,72,154,89,117,0,5,0,5,79,154,89,117,0,5,0,70,79,154,89,117,0,5,0,5,86,154,89,117,0,5,0,70,86,154,89,117,0,5,0,5,93,154,89,117,0,5,0,70,93,154,89,117,0,5,0,5,100,154,89,117,0,5,0,70,100,154,89,117,0,5,0,5,107,154,89,117,0,5,0,70,107,154,89,117,0,5,0,5,114,154,89,117,0,5,0,70,114,154,89,117,0,5,0,5,121,154,89,117,0,5,0,70,121,154,89,117,0,5,0,5,128,154,89,117,0,5,0,70,128,154,89,117,0,5,0,5,135,154,89,117,0,5,0,70,135,154,89,117,0,5,0,5,142,154,89,117,0,5,0,70,142,154,89,117,0,5,0,5,149,154,89,117,0,5,0,70,149,154,89,117,0,5,0,5,156,154,89,117,0,5,0,70,156,154,89,117,0,5,0,5,163,154,89,117,0,5,0,70,163,154,89,117,0,5,0,5,170,154,89,117,0,5,0,70,170,154,89,117,0,5,0,5,179,154,89,117,0,5,0,5,177,154,89,117,0,5,0,70,177,154,89,117,0,5,0,5,181,154,89,117,0,5,0,5,194,154,89,117,0,5,0,70,194,154,89,117,0,5,0,5,201,154,89,117,0,5,0,70,201,154,89,117,0,5,0,5,208,154,89,117,0,5,0,70,208,154,89,117,0,5,0,5,215,154,89,117,0,5,0,70,222,154,89,117,0,5,0,5,229,154,89,117,0,5,0,70,229,154,89,117,0,5,0,5,236,154,89,117,0,5,0,5,243,154,89,117,0,5,0,5,6,154,89,117,0,5,0,70,6,154,89,117,0,5,0,5,13,154,89,117,0,5,0,70,13,154,89,117,0,5,0,5,20,154,89,117,0,5,0,70,20,154,89,117,0,5,0,5,27,154,89,117,0,5,0,70,27,154,89,117,0,5,0,70,34,154,89,117,0,5,0,5,34,154,89,117,0,5,0,5,41,154,89,117,0,5,0,70,41,154,89,117,0,5,0,5,48,154,89,117,0,5,0,70,48,154,89,117,0,5,0,5,55,154,89,117,0,5,0,70,55,154,89,117,0,5,0,5,62,154,89,117,0,5,0,5,69,154,89,117,0,5,0,70,69,154,89,117,0,5,0,5,76,154,89,117,0,5,0,70,76,154,89,117,0,5,0,5,83,154,89,117,0,5,0,70,83,154,89,117,0,5,0,5,90,154,89,117,0,5,0,70,90,154,89,117,0,5,0,5,97,154,89,117,0,5,0,70,97,154,89,117,0,5,0,5,104,154,89,117,0,5,0,70,104,154,89,117,0,5,0,5,111,154,89,117,0,5,0,70,111,154,89,117,0,5,0,5,118,154,89,117,0,5,0,70,118,154,89,117,0,5,0,5,125,154,89,117,0,5,0,70,125,154,89,117,0,5,0,5,132,154,89,117,0,5,0,70,132,154,89,117,0,5,0,5,139,154,89,117,0,5,0,70,139,154,89,117,0,5,0,5,146,154,89,117,0,5,0,70,146,154,89,117,0,5,0,5,153,154,89,117,0,5,0,70,153,154,89,117,0,5,0,5,160,154,89,117,0,5,0,70,160,154,89,117,0,5,0,5,167,154,89,117,0,5,0,70,167,154,89,117,0,5,0,5,174,154,89,117,0,5,0,70,174,154,89,117,0,5,0,5,191,154,89,117,0,5,0,70,191,154,89,117,0,5,0,5,198,154,89,117,0,5,0,70,198,154,89,117,0,5,0,5,205,154,89,117,0,5,0,70,205,154,89,117,0,5,0,5,212,154,89,117,0,5,0,70,212,154,89,117,0,5,0,5,219,154,89,117,0,5,0,5,226,154,89,117,0,5,0,70,226,154,89,117,0,5,0,5,233,154,89,117,0,5,0,70,233,154,89,117,0,5,0,5,240,154,89,117,0,5,0,5,247,154,89,117,0,5,0,5,178,154,89,117,0,5,0,5,180,154,89,117,0,5,0,5,182,154,89,117,0,5,0,5,222,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,3,154,89,117,0,5,0,70,3,154,89,117,0,5,0,5,10,154,89,117,0,5,0,70,10,154,89,117,0,5,0,5,17,154,89,117,0,5,0,70,17,154,89,117,0,5,0,5,24,154,89,117,0,5,0,70,24,154,89,117,0,5,0,70,31,154,89,117,0,5,0,5,31,154,89,117,0,5,0,5,38,154,89,117,0,5,0,70,38,154,89,117,0,5,0,5,45,154,89,117,0,5,0,70,45,154,89,117,0,5,0,5,52,154,89,117,0,5,0,70,52,154,89,117,0,5,0,5,59,154,89,117,0,5,0,5,66,154,89,117,0,5,0,70,66,154,89,117,0,5,0,5,73,154,89,117,0,5,0,70,73,154,89,117,0,5,0,5,80,154,89,117,0,5,0,70,80,154,89,117,0,5,0,5,87,154,89,117,0,5,0,70,87,154,89,117,0,5,0,5,94,154,89,117,0,5,0,70,94,154,89,117,0,5,0,5,101,154,89,117,0,5,0,70,101,154,89,117,0,5,0,5,108,154,89,117,0,5,0,70,108,154,89,117,0,5,0,5,115,154,89,117,0,5,0,70,115,154,89,117,0,5,0,5,122,154,89,117,0,5,0,70,122,154,89,117,0,5,0,5,129,154,89,117,0,5,0,70,129,154,89,117,0,5,0,5,136,154,89,117,0,5,0,70,136,154,89,117,0,5,0,5,143,154,89,117,0,5,0,70,143,154,89,117,0,5,0,5,150,154,89,117,0,5,0,5,157,154,89,117,0,5,0,70,157,154,89,117,0,5,0,5,164,154,89,117,0,5,0,70,164,154,89,117,0,5,0,5,171,154,89,117,0,5,0,70,171,154,89,117,0,5,0,5,185,154,89,117,0,5,0,5,183,154,89,117,0,5,0,70,183,154,89,117,0,5,0,5,187,154,89,117,0,5,0,5,195,154,89,117,0,5,0,70,195,154,89,117,0,5,0,5,202,154,89,117,0,5,0,70,202,154,89,117,0,5,0,5,209,154,89,117,0,5,0,70,209,154,89,117,0,5,0,5,216,154,89,117,0,5,0,70,223,154,89,117,0,5,0,5,230,154,89,117,0,5,0,70,230,154,89,117,0,5,0,5,237,154,89,117,0,5,0,5,244,154,89,117,0,5,0,5,184,154,89,117,0,5,0,5,186,154,89,117,0,5,0,5,188,154,89,117,0,5,0,5,223,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,4,154,89,117,0,5,0,70,4,154,89,117,0,5,0,5,11,154,89,117,0,5,0,70,11,154,89,117,0,5,0,5,18,154,89,117,0,5,0,70,18,154,89,117,0,5,0,5,25,154,89,117,0,5,0,70,25,154,89,117,0,5,0,70,32,154,89,117,0,5,0,5,32,154,89,117,0,5,0,5,39,154,89,117,0,5,0,70,39,154,89,117,0,5,0,5,46,154,89,117,0,5,0,70,46,154,89,117,0,5,0,5,53,154,89,117,0,5,0,70,53,154,89,117,0,5,0,5,60,154,89,117,0,5,0,5,67,154,89,117,0,5,0,70,67,154,89,117,0,5,0,5,74,154,89,117,0,5,0,70,74,154,89,117,0,5,0,5,81,154,89,117,0,5,0,70,81,154,89,117,0,5,0,5,88,154,89,117,0,5,0,70,88,154,89,117,0,5,0,5,95,154,89,117,0,5,0,70,95,154,89,117,0,5,0,5,102,154,89,117,0,5,0,70,102,154,89,117,0,5,0,5,109,154,89,117,0,5,0,70,109,154,89,117,0,5,0,5,116,154,89,117,0,5,0,70,116,154,89,117,0,5,0,5,123,154,89,117,0,5,0,70,123,154,89,117,0,5,0,5,130,154,89,117,0,5,0,70,130,154,89,117,0,5,0,5,137,154,89,117,0,5,0,70,137,154,89,117,0,5,0,5,144,154,89,117,0,5,0,70,144,154,89,117,0,5,0,5,151,154,89,117,0,5,0,70,151,154,89,117,0,5,0,5,158,154,89,117,0,5,0,70,158,154,89,117,0,5,0,5,165,154,89,117,0,5,0,70,165,154,89,117,0,5,0,5,172,154,89,117,0,5,0,70,172,154,89,117,0,5,0,5,189,154,89,117,0,5,0,70,189,154,89,117,0,5,0,5,196,154,89,117,0,5,0,70,196,154,89,117,0,5,0,5,203,154,89,117,0,5,0,70,203,154,89,117,0,5,0,5,210,154,89,117,0,5,0,70,210,154,89,117,0,5,0,5,217,154,89,117,0,5,0,5,224,154,89,117,0,5,0,70,224,154,89,117,0,5,0,5,231,154,89,117,0,5,0,70,231,154,89,117,0,5,0,5,238,154,89,117,0,5,0,5,245,154,89,117,0,5,0,70,0,136,89,117,0,5,0,71,5,154,89,117,0,5,0,72,5,154,89,117,0,5,0,71,12,154,89,117,0,5,0,72,12,154,89,117,0,5,0,71,19,154,89,117,0,5,0,72,19,154,89,117,0,5,0,71,26,154,89,117,0,5,0,72,26,154,89,117,0,5,0,72,33,154,89,117,0,5,0,71,33,154,89,117,0,5,0,71,40,154,89,117,0,5,0,72,40,154,89,117,0,5,0,71,47,154,89,117,0,5,0,72,47,154,89,117,0,5,0,71,54,154,89,117,0,5,0,72,54,154,89,117,0,5,0,70,61,154,89,117,0,5,0,71,68,154,89,117,0,5,0,72,68,154,89,117,0,5,0,71,75,154,89,117,0,5,0,72,75,154,89,117,0,5,0,71,82,154,89,117,0,5,0,72,82,154,89,117,0,5,0,71,89,154,89,117,0,5,0,72,89,154,89,117,0,5,0,71,96,154,89,117,0,5,0,72,96,154,89,117,0,5,0,71,103,154,89,117,0,5,0,72,103,154,89,117,0,5,0,71,110,154,89,117,0,5,0,72,110,154,89,117,0,5,0,71,117,154,89,117,0,5,0,72,117,154,89,117,0,5,0,71,124,154,89,117,0,5,0,72,124,154,89,117,0,5,0,71,131,154,89,117,0,5,0,72,131,154,89,117,0,5,0,71,138,154,89,117,0,5,0,72,138,154,89,117,0,5,0,71,145,154,89,117,0,5,0,72,145,154,89,117,0,5,0,71,152,154,89,117,0,5,0,72,152,154,89,117,0,5,0,71,159,154,89,117,0,5,0,72,159,154,89,117,0,5,0,71,166,154,89,117,0,5,0,72,166,154,89,117,0,5,0,71,173,154,89,117,0,5,0,72,173,154,89,117,0,5,0,71,190,154,89,117,0,5,0,72,190,154,89,117,0,5,0,71,197,154,89,117,0,5,0,72,197,154,89,117,0,5,0,71,204,154,89,117,0,5,0,72,204,154,89,117,0,5,0,71,211,154,89,117,0,5,0,72,211,154,89,117,0,5,0,70,218,154,89,117,0,5,0,71,225,154,89,117,0,5,0,72,225,154,89,117,0,5,0,71,232,154,89,117,0,5,0,72,232,154,89,117,0,5,0,70,239,154,89,117,0,5,0,70,246,154,89,117,0,5,0,70,0,137,89,117,0,5,0,5,5,154,89,117,0,5,0,70,5,154,89,117,0,5,0,70,5,154,89,117,0,5,0,5,0,9,79,117,0,5,0,5,250,154,89,117,0,5,0,5,12,154,89,117,0,5,0,70,12,154,89,117,0,5,0,5,19,154,89,117,0,5,0,70,19,154,89,117,0,5,0,5,26,154,89,117,0,5,0,70,26,154,89,117,0,5,0,70,33,154,89,117,0,5,0,5,33,154,89,117,0,5,0,5,40,154,89,117,0,5,0,70,40,154,89,117,0,5,0,5,47,154,89,117,0,5,0,70,47,154,89,117,0,5,0,5,54,154,89,117,0,5,0,70,54,154,89,117,0,5,0,5,61,154,89,117,0,5,0,5,68,154,89,117,0,5,0,70,68,154,89,117,0,5,0,5,75,154,89,117,0,5,0,70,75,154,89,117,0,5,0,5,82,154,89,117,0,5,0,70,82,154,89,117,0,5,0,5,89,154,89,117,0,5,0,70,89,154,89,117,0,5,0,5,96,154,89,117,0,5,0,70,96,154,89,117,0,5,0,5,103,154,89,117,0,5,0,70,103,154,89,117,0,5,0,5,110,154,89,117,0,5,0,70,110,154,89,117,0,5,0,5,117,154,89,117,0,5,0,70,117,154,89,117,0,5,0,5,124,154,89,117,0,5,0,70,124,154,89,117,0,5,0,5,131,154,89,117,0,5,0,70,131,154,89,117,0,5,0,5,138,154,89,117,0,5,0,70,138,154,89,117,0,5,0,5,145,154,89,117,0,5,0,70,145,154,89,117,0,5,0,5,152,154,89,117,0,5,0,70,152,154,89,117,0,5,0,5,159,154,89,117,0,5,0,70,159,154,89,117,0,5,0,5,166,154,89,117,0,5,0,70,166,154,89,117,0,5,0,5,173,154,89,117,0,5,0,70,173,154,89,117,0,5,0,5,190,154,89,117,0,5,0,70,190,154,89,117,0,5,0,5,197,154,89,117,0,5,0,70,197,154,89,117,0,5,0,5,204,154,89,117,0,5,0,70,204,154,89,117,0,5,0,5,211,154,89,117,0,5,0,70,211,154,89,117,0,5,0,5,218,154,89,117,0,5,0,5,225,154,89,117,0,5,0,70,225,154,89,117,0,5,0,5,232,154,89,117,0,5,0,70,232,154,89,117,0,5,0,5,239,154,89,117,0,5,0,5,246,154,89,117,0,5,0,5,224,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,2,155,89,117,0,5,0,5,7,155,89,117,0,5,0,5,4,155,89,117,0,5,0,5,251,154,89,117,0,5,0,5,3,155,89,117,0,5,0,5,8,155,89,117,0,5,0,5,5,155,89,117,0,5,0,5,253,154,89,117,0,5,0,5,6,155,89,117,0,5,0,5,255,154,89,117,0,5,0,5,220,154,89,117,0,5,0,5,0,0,83,117,0,5,0,5,0,168,80,117,0,5,0,5,255,154,89,117,0,5,0,71,6,154,89,117,0,5,0,5,0,61,81,117,0,5,0,5,253,154,89,117,0,5,0,5,0,107,89,117,0,5,0,70,0,80,93,117,0,5,0,5,0,89,81,117,0,5,0,70,70,154,89,117,0,5,0,5,0,81,93,117,0,5,0,5,0,9,79,117,0,5,0,70,33,154,89,117,0,5,0,70,0,81,93,117,0,5,0,5,0,100,85,117,0,5,0,70,0,23,89,117,0,5,0,5,248,154,89,117,0,5,0,5,249,154,89,117,0,5,0,5,252,154,89,117,0,5,0,5,254,154,89,117,0,0,0,0,5,5,83,117,193,33,81,117,193,37,89,117,193,100,85,117,193,23,89,117,193,86,79,117,10,5,91,117,193,100,85,117,193,51,89,117,193,86,79,117,9,5,91,117,193,100,85,117,193,107,89,117,193,86,79,117,8,5,91,117,193,100,85,117,193,136,89,117,193,86,79,117,7,5,91,117,193,100,85,117,193,136,89,117,193,86,79,117,6,5,91,117,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,79,117,193,9,1,0,57,16,255,255,89,117,193,152,58,16,198,129,79,117,193,23,1,0,57,16,198,161,58,16,0,192,198,65,79,117,193,37,1,0,57,16,0,192,198,97,58,16,0,192,198,129,79,117,193,65,1,0,57,16,0,192,198,161,58,16,0,192,198,193,79,117,193,86,48,0,58,16,112,64,198,225,57,16,1,192,198,1,79,117,193,100,1,0,57,16,1,192,198,33,58,16,1,192,198,65,79,117,193,121,1,0,57,16,1,192,198,97,58,16,1,192,198,129,79,117,193,149,1,0,57,16,1,192,198,161,58,16,1,192,198,193,79,117,193,184,48,0,58,16,1,192,198,225,79,117,193,233,1,0,57,16,2,192,198,1,58,16,2,192,198,33,80,117,193,7,1,0,57,16,2,192,198,65,58,16,2,192,198,97,80,117,193,14,1,0,57,16,2,192,198,129,58,16,2,192,198,161,80,117,193,28,1,0,57,16,2,192,198,193,58,16,2,192,198,225,80,117,193,42,1,0,57,16,3,192,198,1,58,16,3,192,198,33,80,117,193,63,1,0,57,16,3,192,198,65,58,16,3,192,198,97,80,117,193,84,1,0,57,16,3,192,198,129,58,16,3,192,198,161,80,117,193,112,1,0,57,16,3,192,198,193,58,16,3,192,198,225,80,117,193,119,1,0,57,16,3,0,58,16,4,192,198,161,115,65,198,1,25,16,4,16,58,16,56,16,4,192,198,36,80,117,193,126,1,0,57,16,4,192,198,193,58,16,4,192,198,225,80,117,193,147,1,0,57,16,5,192,198,1,58,16,5,192,198,33,80,117,193,168,1,0,57,16,5,192,198,65,58,16,178,65,198,97,47,16,21,16,58,16,5,192,198,131,80,117,193,196,1,0,57,16,5,192,198,225,58,16,6,192,198,1,80,117,193,203,1,0,57,16,6,192,198,33,58,16,6,192,198,65,80,117,193,245,1,0,57,16,6,192,198,97,58,16,6,192,198,129,81,117,193,12,1,0,57,16,6,192,198,161,58,16,6,192,198,193,81,117,193,33,1,0,57,16,6,192,198,225,58,16,7,192,198,1,81,117,193,47,1,0,57,16,7,192,198,33,58,16,7,192,198,65,81,117,193,61,1,0,57,16,7,192,198,97,58,16,7,192,198,129,81,117,193,89,2,0,0,16,5,0,57,16,9,0,58,16,8,192,198,193,50,0,58,16,59,16,44,16,7,192,198,164,114,66,198,33,24,16,0,16,58,16,8,192,198,68,81,117,193,103,48,0,58,16,8,192,198,225,83,117,5,5,1,0,57,16,3,0,58,16,9,192,198,33,177,66,198,1,25,16,46,16,197,163,85,117,193,9,1,0,57,16,9,192,198,65,58,16,9,192,198,97,85,117,193,51,48,0,58,16,9,192,198,129,85,117,193,100,48,0,58,16,9,192,198,161,9,0,198,194,30,0,16,16,141,0,24,16,67,0,28,16,30,0,28,16,7,0,30,16,12,0,31,16,17,0,63,16,24,192,198,195,1,0,57,16,23,192,198,66,58,16,23,192,198,130,1,0,57,16,23,192,198,194,58,16,24,192,198,2,1,0,57,16,24,192,198,66,58,16,24,192,198,130,24,16,12,0,25,16,17,0,26,16,22,0,27,16,1,0,57,16,22,192,198,194,58,16,23,192,198,2,1,0,57,16,21,192,198,66,58,16,21,192,198,130,1,0,57,16,21,192,198,194,58,16,22,192,198,2,1,0,57,16,22,192,198,66,58,16,22,192,198,130,20,16,35,0,20,16,12,0,21,16,17,0,22,16,22,0,23,16,1,0,57,16,20,192,198,194,58,16,21,192,198,2,1,0,57,16,19,192,198,66,58,16,19,192,198,130,1,0,57,16,19,192,198,194,58,16,20,192,198,2,1,0,57,16,20,192,198,66,58,16,20,192,198,130,16,16,12,0,17,16,17,0,18,16,22,0,19,16,1,0,57,16,18,192,198,194,58,16,19,192,198,2,1,0,57,16,17,192,198,66,58,16,17,192,198,130,1,0,57,16,17,192,198,194,58,16,18,192,198,2,1,0,57,16,18,192,198,66,58,16,18,192,198,130,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,16,192,198,194,58,16,17,192,198,2,1,0,57,16,15,192,198,66,58,16,15,192,198,130,1,0,57,16,15,192,198,194,58,16,16,192,198,2,1,0,57,16,16,192,198,66,58,16,16,192,198,130,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,14,192,198,194,58,16,15,192,198,2,1,0,57,16,13,192,198,66,58,16,13,192,198,130,1,0,57,16,13,192,198,194,58,16,14,192,198,2,1,0,57,16,14,192,198,66,58,16,14,192,198,130,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,12,192,198,194,58,16,13,192,198,2,1,0,57,16,11,192,198,130,58,16,11,192,198,194,1,0,57,16,0,192,197,132,58,16,12,192,198,2,1,0,57,16,12,192,198,66,58,16,12,192,198,130,0,16,10,0,1,16,15,0,2,16,1,0,57,16,11,192,198,2,58,16,11,192,198,66,1,0,57,16,10,192,198,2,58,16,10,192,198,66,1,0,57,16,10,192,198,130,58,16,10,192,198,194,25,0,198,98,32,0,17,16,141,0,25,16,67,0,30,16,30,0,30,16,10,0,31,16,15,0,46,16,40,192,198,98,47,16,17,0,63,16,40,192,198,227,1,0,57,16,39,192,198,98,58,16,39,192,198,162,1,0,57,16,39,192,198,226,58,16,40,192,198,34,48,0,54,16,40,192,198,162,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,38,192,198,226,58,16,39,192,198,34,1,0,57,16,37,192,198,98,58,16,37,192,198,162,1,0,57,16,37,192,198,226,58,16,38,192,198,34,1,0,57,16,38,192,198,98,58,16,38,192,198,162,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,36,192,198,226,58,16,37,192,198,34,1,0,57,16,35,192,198,98,58,16,35,192,198,162,1,0,57,16,35,192,198,226,58,16,36,192,198,34,1,0,57,16,36,192,198,98,58,16,36,192,198,162,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,34,192,198,226,58,16,35,192,198,34,1,0,57,16,33,192,198,98,58,16,33,192,198,162,1,0,57,16,33,192,198,226,58,16,34,192,198,34,1,0,57,16,34,192,198,98,58,16,34,192,198,162,9,16,72,0,13,16,35,0,13,16,12,0,14,16,17,0,15,16,22,0,16,16,1,0,57,16,32,192,198,226,58,16,33,192,198,34,1,0,57,16,31,192,198,98,58,16,31,192,198,162,1,0,57,16,31,192,198,226,58,16,32,192,198,34,1,0,57,16,32,192,198,98,58,16,32,192,198,162,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,30,192,198,226,58,16,31,192,198,34,1,0,57,16,29,192,198,98,58,16,29,192,198,162,1,0,57,16,29,192,198,226,58,16,30,192,198,34,1,0,57,16,30,192,198,98,58,16,30,192,198,162,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,28,192,198,226,58,16,29,192,198,34,1,0,57,16,1,192,197,4,58,16,27,192,198,162,1,0,57,16,27,192,198,226,58,16,28,192,198,34,1,0,57,16,28,192,198,98,58,16,28,192,198,162,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,27,192,198,34,58,16,27,192,198,98,1,0,57,16,25,192,198,162,58,16,25,192,198,226,1,0,57,16,26,192,198,34,58,16,26,192,198,98,1,0,57,16,26,192,198,162,58,16,26,192,198,226,41,0,198,66,29,0,16,16,137,0,23,16,72,0,27,16,35,0,27,16,12,0,28,16,17,0,30,16,22,0,31,16,1,0,57,16,55,192,198,194,58,16,56,192,198,2,1,0,57,16,54,192,198,66,58,16,54,192,198,130,1,0,57,16,54,192,198,194,58,16,55,192,198,2,1,0,57,16,55,192,198,66,58,16,55,192,198,130,23,16,12,0,24,16,17,0,25,16,22,0,26,16,1,0,57,16,53,192,198,194,58,16,54,192,198,2,1,0,57,16,52,192,198,66,58,16,52,192,198,130,1,0,57,16,52,192,198,194,58,16,53,192,198,2,1,0,57,16,53,192,198,66,58,16,53,192,198,130,19,16,35,0,19,16,12,0,20,16,17,0,21,16,22,0,22,16,1,0,57,16,51,192,198,194,58,16,52,192,198,2,1,0,57,16,50,192,198,66,58,16,50,192,198,130,1,0,57,16,50,192,198,194,58,16,51,192,198,2,1,0,57,16,51,192,198,66,58,16,51,192,198,130,16,16,10,0,17,16,15,0,18,16,1,0,57,16,49,192,198,194,58,16,50,192,198,2,1,0,57,16,48,192,198,194,58,16,49,192,198,2,1,0,57,16,49,192,198,66,58,16,49,192,198,130,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,48,192,198,66,58,16,48,192,198,130,1,0,57,16,46,192,198,194,58,16,47,192,198,2,1,0,57,16,47,192,198,66,58,16,47,192,198,130,1,0,57,16,47,192,198,194,58,16,48,192,198,2,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,46,192,198,66,58,16,46,192,198,130,1,0,57,16,44,192,198,194,58,16,45,192,198,2,1,0,57,16,45,192,198,66,58,16,45,192,198,130,1,0,57,16,45,192,198,194,58,16,46,192,198,2,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,44,192,198,66,58,16,44,192,198,130,1,0,57,16,43,192,198,2,58,16,43,192,198,66,1,0,57,16,1,192,197,132,58,16,43,192,198,130,1,0,57,16,43,192,198,194,58,16,44,192,198,2,0,16,10,0,1,16,15,0,2,16,1,0,57,16,42,192,198,130,58,16,42,192,198,194,1,0,57,16,41,192,198,130,58,16,41,192,198,194,1,0,57,16,42,192,198,2,58,16,42,192,198,66,56,0,198,130,30,0,16,16,162,1,24,16,88,1,28,16,51,1,28,16,28,1,30,16,33,1,31,16,38,1,49,16,48,0,44,16,29,0,16,16,137,0,23,16,72,0,27,16,35,0,27,16,12,0,28,16,17,0,30,16,22,0,31,16,1,0,57,16,85,192,198,194,58,16,86,192,198,2,1,0,57,16,84,192,198,66,58,16,84,192,198,130,1,0,57,16,84,192,198,194,58,16,85,192,198,2,1,0,57,16,85,192,198,66,58,16,85,192,198,130,23,16,12,0,24,16,17,0,25,16,22,0,26,16,1,0,57,16,83,192,198,194,58,16,84,192,198,2,1,0,57,16,82,192,198,66,58,16,82,192,198,130,1,0,57,16,82,192,198,194,58,16,83,192,198,2,1,0,57,16,83,192,198,66,58,16,83,192,198,130,19,16,35,0,19,16,12,0,20,16,17,0,21,16,22,0,22,16,1,0,57,16,81,192,198,194,58,16,82,192,198,2,1,0,57,16,80,192,198,66,58,16,80,192,198,130,1,0,57,16,80,192,198,194,58,16,81,192,198,2,1,0,57,16,81,192,198,66,58,16,81,192,198,130,16,16,10,0,17,16,15,0,18,16,1,0,57,16,79,192,198,194,58,16,80,192,198,2,1,0,57,16,78,192,198,194,58,16,79,192,198,2,1,0,57,16,79,192,198,66,58,16,79,192,198,130,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,78,192,198,66,58,16,78,192,198,130,1,0,57,16,76,192,198,194,58,16,77,192,198,2,1,0,57,16,77,192,198,66,58,16,77,192,198,130,1,0,57,16,77,192,198,194,58,16,78,192,198,2,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,76,192,198,66,58,16,76,192,198,130,1,0,57,16,74,192,198,194,58,16,75,192,198,2,1,0,57,16,75,192,198,66,58,16,75,192,198,130,1,0,57,16,75,192,198,194,58,16,76,192,198,2,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,74,192,198,66,58,16,74,192,198,130,1,0,57,16,73,192,198,2,58,16,73,192,198,66,1,0,57,16,2,192,197,132,58,16,73,192,198,130,1,0,57,16,73,192,198,194,58,16,74,192,198,2,0,16,10,0,1,16,15,0,2,16,1,0,57,16,72,192,198,130,58,16,72,192,198,194,1,0,57,16,71,192,198,130,58,16,71,192,198,194,1,0,57,16,72,192,198,2,58,16,72,192,198,66,1,0,57,16,70,192,198,2,58,16,70,192,198,66,1,0,57,16,70,192,198,130,58,16,70,192,198,194,1,0,57,16,71,192,198,2,58,16,71,192,198,66,24,16,12,0,25,16,17,0,26,16,22,0,27,16,1,0,57,16,69,192,198,130,58,16,69,192,198,194,1,0,57,16,68,192,198,2,58,16,68,192,198,66,1,0,57,16,68,192,198,130,58,16,68,192,198,194,1,0,57,16,69,192,198,2,58,16,69,192,198,66,20,16,35,0,20,16,12,0,21,16,17,0,22,16,22,0,23,16,1,0,57,16,67,192,198,130,58,16,67,192,198,194,1,0,57,16,66,192,198,2,58,16,66,192,198,66,1,0,57,16,66,192,198,130,58,16,66,192,198,194,1,0,57,16,67,192,198,2,58,16,67,192,198,66,16,16,12,0,17,16,17,0,18,16,22,0,19,16,1,0,57,16,65,192,198,130,58,16,65,192,198,194,1,0,57,16,64,192,198,2,58,16,64,192,198,66,1,0,57,16,64,192,198,130,58,16,64,192,198,194,1,0,57,16,65,192,198,2,58,16,65,192,198,66,7,16,72,0,12,16,35,0,12,16,12,0,13,16,17,0,14,16,22,0,15,16,1,0,57,16,63,192,198,130,58,16,63,192,198,194,1,0,57,16,62,192,198,2,58,16,62,192,198,66,1,0,57,16,62,192,198,130,58,16,62,192,198,194,1,0,57,16,63,192,198,2,58,16,63,192,198,66,7,16,12,0,9,16,17,0,10,16,22,0,11,16,1,0,57,16,61,192,198,130,58,16,61,192,198,194,1,0,57,16,60,192,198,2,58,16,60,192,198,66,1,0,57,16,60,192,198,130,58,16,60,192,198,194,1,0,57,16,61,192,198,2,58,16,61,192,198,66,3,16,35,0,3,16,12,0,4,16,17,0,5,16,22,0,6,16,1,0,57,16,59,192,198,130,58,16,59,192,198,194,1,0,57,16,58,192,198,66,58,16,58,192,198,130,1,0,57,16,2,192,197,4,58,16,58,192,198,194,1,0,57,16,59,192,198,2,58,16,59,192,198,66,0,16,10,0,1,16,15,0,2,16,1,0,57,16,57,192,198,194,58,16,58,192,198,2,1,0,57,16,56,192,198,194,58,16,57,192,198,2,1,0,57,16,57,192,198,66,58,16,57,192,198,130,87,117,5,70,33,0,17,16,146,0,25,16,72,0,29,16,35,0,29,16,11,0,30,16,13,0,31,16,18,0,32,16,23,0,33,16,48,0,58,16,94,192,198,97,48,0,58,16,93,192,198,161,1,0,57,16,93,192,198,193,58,16,93,192,198,225,1,0,57,16,94,192,198,1,58,16,94,192,198,33,48,0,58,16,94,192,198,65,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,93,192,198,97,58,16,93,192,198,129,1,0,57,16,92,192,198,161,58,16,92,192,198,193,1,0,57,16,92,192,198,225,58,16,93,192,198,1,1,0,57,16,93,192,198,33,58,16,93,192,198,65,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,92,192,198,97,58,16,92,192,198,129,1,0,57,16,91,192,198,161,58,16,91,192,198,193,1,0,57,16,91,192,198,225,58,16,92,192,198,1,1,0,57,16,92,192,198,33,58,16,92,192,198,65,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,91,192,198,97,58,16,91,192,198,129,1,0,57,16,90,192,198,161,58,16,90,192,198,193,1,0,57,16,90,192,198,225,58,16,91,192,198,1,1,0,57,16,91,192,198,33,58,16,91,192,198,65,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,90,192,198,97,58,16,90,192,198,129,1,0,57,16,89,192,198,97,58,16,89,192,198,129,1,0,57,16,89,192,198,161,58,16,89,192,198,193,1,0,57,16,89,192,198,225,58,16,90,192,198,1,1,0,57,16,90,192,198,33,58,16,90,192,198,65,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,89,192,198,33,58,16,89,192,198,65,48,0,58,16,88,192,198,129,1,0,57,16,88,192,198,161,58,16,88,192,198,193,1,0,57,16,88,192,198,225,58,16,89,192,198,1,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,88,192,198,65,58,16,88,192,198,97,48,0,58,16,48,86,198,129,57,16,87,192,198,161,1,0,57,16,87,192,198,193,58,16,87,192,198,225,1,0,57,16,88,192,198,1,58,16,88,192,198,33,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,87,192,198,65,58,16,87,192,198,97,1,0,57,16,86,192,198,129,58,16,86,192,198,161,1,0,57,16,86,192,198,193,58,16,86,192,198,225,1,0,57,16,87,192,198,1,58,16,87,192,198,33,87,117,5,5,33,0,17,16,146,0,25,16,72,0,29,16,35,0,29,16,11,0,30,16,13,0,31,16,18,0,32,16,23,0,33,16,48,0,58,16,102,192,198,65,48,0,58,16,101,192,198,129,1,0,57,16,101,192,198,161,58,16,101,192,198,193,1,0,57,16,101,192,198,225,58,16,102,192,198,1,48,0,58,16,102,192,198,33,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,101,192,198,65,58,16,101,192,198,97,1,0,57,16,100,192,198,129,58,16,100,192,198,161,1,0,57,16,100,192,198,193,58,16,100,192,198,225,1,0,57,16,101,192,198,1,58,16,101,192,198,33,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,100,192,198,65,58,16,100,192,198,97,1,0,57,16,99,192,198,129,58,16,99,192,198,161,1,0,57,16,99,192,198,193,58,16,99,192,198,225,1,0,57,16,100,192,198,1,58,16,100,192,198,33,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,99,192,198,65,58,16,99,192,198,97,1,0,57,16,98,192,198,129,58,16,98,192,198,161,1,0,57,16,98,192,198,193,58,16,98,192,198,225,1,0,57,16,99,192,198,1,58,16,99,192,198,33,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,98,192,198,65,58,16,98,192,198,97,1,0,57,16,97,192,198,65,58,16,97,192,198,97,1,0,57,16,97,192,198,129,58,16,97,192,198,161,1,0,57,16,97,192,198,193,58,16,97,192,198,225,1,0,57,16,98,192,198,1,58,16,98,192,198,33,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,97,192,198,1,58,16,97,192,198,33,48,0,58,16,96,192,198,97,1,0,57,16,96,192,198,129,58,16,96,192,198,161,1,0,57,16,96,192,198,193,58,16,96,192,198,225,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,96,192,198,33,58,16,96,192,198,65,48,0,58,16,48,88,198,97,57,16,95,192,198,129,1,0,57,16,95,192,198,161,58,16,95,192,198,193,1,0,57,16,95,192,198,225,58,16,96,192,198,1,0,16,12,0,1,16,18,0,2,16,23,0,3,16,1,0,57,16,95,192,198,33,58,16,95,192,198,65,1,0,57,16,255,255,89,117,193,153,58,16,94,192,198,129,1,0,57,16,94,192,198,161,58,16,94,192,198,193,1,0,57,16,94,192,198,225,58,16,95,192,198,1,89,117,193,23,36,0,18,16,209,1,27,16,117,1,32,16,74,1,32,16,9,0,33,16,11,0,47,16,13,0,54,16,58,1,63,16,118,192,198,226,48,0,58,16,110,192,198,65,48,0,58,16,110,192,198,97,225,127,89,117,193,151,17,16,146,0,25,16,72,0,29,16,35,0,29,16,11,0,30,16,13,0,31,16,18,0,32,16,23,0,33,16,48,0,58,16,118,192,198,97,48,0,58,16,117,192,198,161,1,0,57,16,117,192,198,193,58,16,117,192,198,225,1,0,57,16,118,192,198,1,58,16,118,192,198,33,48,0,58,16,118,192,198,65,25,16,12,0,26,16,17,0,27,16,22,0,28,16,1,0,57,16,117,192,198,97,58,16,117,192,198,129,1,0,57,16,116,192,198,161,58,16,116,192,198,193,1,0,57,16,116,192,198,225,58,16,117,192,198,1,1,0,57,16,117,192,198,33,58,16,117,192,198,65,21,16,35,0,21,16,12,0,22,16,17,0,23,16,22,0,24,16,1,0,57,16,116,192,198,97,58,16,116,192,198,129,1,0,57,16,115,192,198,161,58,16,115,192,198,193,1,0,57,16,115,192,198,225,58,16,116,192,198,1,1,0,57,16,116,192,198,33,58,16,116,192,198,65,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,115,192,198,97,58,16,115,192,198,129,1,0,57,16,114,192,198,161,58,16,114,192,198,193,1,0,57,16,114,192,198,225,58,16,115,192,198,1,1,0,57,16,115,192,198,33,58,16,115,192,198,65,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,114,192,198,97,58,16,114,192,198,129,1,0,57,16,113,192,198,97,58,16,113,192,198,129,1,0,57,16,113,192,198,161,58,16,113,192,198,193,1,0,57,16,113,192,198,225,58,16,114,192,198,1,1,0,57,16,114,192,198,33,58,16,114,192,198,65,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,113,192,198,33,58,16,113,192,198,65,48,0,58,16,112,192,198,129,1,0,57,16,112,192,198,161,58,16,112,192,198,193,1,0,57,16,112,192,198,225,58,16,113,192,198,1,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,112,192,198,65,58,16,112,192,198,97,48,0,58,16,48,92,198,129,57,16,111,192,198,161,1,0,57,16,111,192,198,193,58,16,111,192,198,225,1,0,57,16,112,192,198,1,58,16,112,192,198,33,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,111,192,198,65,58,16,111,192,198,97,1,0,57,16,110,192,198,129,58,16,110,192,198,161,1,0,57,16,110,192,198,193,58,16,110,192,198,225,1,0,57,16,111,192,198,1,58,16,111,192,198,33,193,93,198,129,55,16,118,192,198,161,56,16,118,192,198,193,27,16,14,0,28,16,19,0,29,16,24,0,30,16,26,0,31,16,1,0,57,16,110,192,198,1,58,16,110,192,198,33,1,0,57,16,109,192,198,65,58,16,109,192,198,97,1,0,57,16,109,192,198,129,58,16,109,192,198,161,48,0,58,16,109,192,198,193,1,0,57,16,24,192,198,225,58,16,109,192,198,225,22,16,53,0,22,16,14,0,23,16,19,0,24,16,24,0,25,16,29,0,26,16,1,0,57,16,109,192,198,1,58,16,109,192,198,33,1,0,57,16,107,192,198,193,58,16,107,192,198,225,1,0,57,16,108,192,198,1,58,16,108,192,198,33,1,0,57,16,108,192,198,65,58,16,108,192,198,97,2,0,55,16,9,0,57,16,108,192,198,161,58,16,112,91,198,193,56,16,108,192,198,225,48,0,58,16,108,192,198,129,18,16,12,0,19,16,17,0,20,16,22,0,21,16,1,0,57,16,107,192,198,129,58,16,107,192,198,161,1,0,57,16,106,192,198,193,58,16,106,192,198,225,1,0,57,16,107,192,198,1,58,16,107,192,198,33,1,0,57,16,107,192,198,65,58,16,107,192,198,97,9,16,81,0,13,16,44,0,13,16,14,0,14,16,19,0,15,16,24,0,16,16,29,0,17,16,1,0,57,16,106,192,198,129,58,16,106,192,198,161,1,0,57,16,105,192,198,129,58,16,105,192,198,161,1,0,57,16,105,192,198,193,58,16,105,192,198,225,1,0,57,16,106,192,198,1,58,16,106,192,198,33,1,0,57,16,106,192,198,65,58,16,106,192,198,97,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,105,192,198,65,58,16,105,192,198,97,1,0,57,16,104,192,198,129,58,16,104,192,198,161,1,0,57,16,104,192,198,193,58,16,104,192,198,225,1,0,57,16,105,192,198,1,58,16,105,192,198,33,4,16,41,0,4,16,11,0,5,16,16,0,6,16,21,0,7,16,26,0,8,16,48,0,58,16,104,192,198,97,48,0,58,16,48,90,198,97,57,16,103,192,198,129,1,0,57,16,103,192,198,161,58,16,103,192,198,193,1,0,57,16,103,192,198,225,58,16,104,192,198,1,1,0,57,16,104,192,198,33,58,16,104,192,198,65,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,103,192,198,33,58,16,103,192,198,65,1,0,57,16,102,192,198,97,58,16,102,192,198,129,1,0,57,16,102,192,198,161,58,16,102,192,198,193,1,0,57,16,102,192,198,225,58,16,103,192,198,1,89,117,193,51,35,0,18,16,160,0,27,16,68,0,31,16,34,0,31,16,9,0,32,16,14,0,33,16,16,0,54,16,18,0,63,16,127,192,198,130,1,0,57,16,126,192,198,161,58,16,126,192,198,193,48,0,58,16,126,192,198,225,48,0,58,16,127,192,198,1,1,96,198,33,55,16,127,192,198,65,56,16,127,192,198,97,27,16,12,0,28,16,17,0,29,16,22,0,30,16,1,0,57,16,41,192,198,1,58,16,126,192,198,129,1,0,57,16,125,192,198,225,58,16,126,192,198,1,1,0,57,16,126,192,198,33,58,16,126,192,198,65,48,0,58,16,126,192,198,97,22,16,53,0,22,16,14,0,23,16,19,0,24,16,24,0,25,16,29,0,26,16,1,0,57,16,125,192,198,161,58,16,125,192,198,193,1,0,57,16,124,192,198,97,58,16,124,192,198,129,1,0,57,16,124,192,198,161,58,16,124,192,198,193,1,0,57,16,124,192,198,225,58,16,125,192,198,1,2,0,55,16,9,0,57,16,125,192,198,65,58,16,176,95,198,97,56,16,125,192,198,129,48,0,58,16,125,192,198,33,18,16,12,0,19,16,17,0,20,16,22,0,21,16,1,0,57,16,124,192,198,65,58,16,5,192,198,193,1,0,57,16,123,192,198,129,58,16,123,192,198,161,1,0,57,16,123,192,198,193,58,16,123,192,198,225,1,0,57,16,124,192,198,1,58,16,124,192,198,33,9,16,81,0,13,16,44,0,13,16,14,0,14,16,19,0,15,16,24,0,16,16,29,0,17,16,1,0,57,16,123,192,198,65,58,16,123,192,198,97,1,0,57,16,122,192,198,65,58,16,122,192,198,97,1,0,57,16,122,192,198,129,58,16,122,192,198,161,1,0,57,16,122,192,198,193,58,16,122,192,198,225,1,0,57,16,123,192,198,1,58,16,123,192,198,33,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,122,192,198,1,58,16,122,192,198,33,1,0,57,16,121,192,198,65,58,16,121,192,198,97,1,0,57,16,121,192,198,129,58,16,121,192,198,161,1,0,57,16,121,192,198,193,58,16,121,192,198,225,4,16,41,0,4,16,11,0,5,16,16,0,6,16,21,0,7,16,26,0,8,16,48,0,58,16,121,192,198,33,48,0,58,16,112,94,198,33,57,16,120,192,198,65,1,0,57,16,120,192,198,97,58,16,120,192,198,129,1,0,57,16,120,192,198,161,58,16,120,192,198,193,1,0,57,16,120,192,198,225,58,16,121,192,198,1,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,119,192,198,225,58,16,120,192,198,1,1,0,57,16,119,192,198,33,58,16,119,192,198,65,1,0,57,16,119,192,198,97,58,16,119,192,198,129,1,0,57,16,119,192,198,161,58,16,119,192,198,193,89,117,193,107,36,0,18,16,250,2,27,16,167,2,32,16,124,2,32,16,9,0,33,16,11,0,43,16,13,0,44,16,61,1,63,16,152,192,198,98,48,0,58,16,135,192,198,129,48,0,58,16,135,192,198,161,34,98,198,193,17,16,150,0,26,16,67,0,30,16,33,0,30,16,9,0,31,16,14,0,32,16,19,0,33,16,21,0,58,16,143,192,198,225,1,0,57,16,143,192,198,33,58,16,143,192,198,65,1,0,57,16,143,192,198,97,58,16,143,192,198,129,48,0,58,16,143,192,198,161,48,0,58,16,143,192,198,193,26,16,9,0,27,16,14,0,28,16,19,0,29,16,48,0,58,16,143,192,198,1,1,0,57,16,142,192,198,65,58,16,142,192,198,97,1,0,57,16,142,192,198,129,58,16,142,192,198,161,1,0,57,16,142,192,198,193,58,16,142,192,198,225,21,16,44,0,21,16,14,0,22,16,19,0,23,16,24,0,24,16,29,0,25,16,1,0,57,16,142,192,198,1,58,16,142,192,198,33,1,0,57,16,141,192,198,1,58,16,141,192,198,33,1,0,57,16,141,192,198,65,58,16,141,192,198,97,1,0,57,16,141,192,198,129,58,16,141,192,198,161,1,0,57,16,141,192,198,193,58,16,141,192,198,225,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,140,192,198,193,58,16,140,192,198,225,1,0,57,16,140,192,198,1,58,16,140,192,198,33,1,0,57,16,140,192,198,65,58,16,140,192,198,97,1,0,57,16,140,192,198,129,58,16,140,192,198,161,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,139,192,198,193,58,16,139,192,198,225,1,0,57,16,138,192,198,193,58,16,138,192,198,225,1,0,57,16,139,192,198,1,58,16,139,192,198,33,1,0,57,16,139,192,198,65,58,16,139,192,198,97,1,0,57,16,139,192,198,129,58,16,139,192,198,161,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,138,192,198,129,58,16,138,192,198,161,48,0,58,16,137,192,198,225,1,0,57,16,138,192,198,1,58,16,138,192,198,33,1,0,57,16,138,192,198,65,58,16,138,192,198,97,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,137,192,198,161,58,16,137,192,198,193,48,0,58,16,112,98,198,225,57,16,137,192,198,1,1,0,57,16,137,192,198,33,58,16,137,192,198,65,1,0,57,16,137,192,198,97,58,16,137,192,198,129,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,136,192,198,161,58,16,136,192,198,193,1,0,57,16,135,192,198,225,58,16,136,192,198,1,1,0,57,16,136,192,198,33,58,16,136,192,198,65,1,0,57,16,136,192,198,97,58,16,136,192,198,129,226,127,89,117,193,136,17,16,151,0,26,16,68,0,30,16,34,0,30,16,10,0,31,16,15,0,32,16,20,0,33,16,22,0,58,16,255,255,89,117,193,137,1,0,57,16,151,192,198,161,58,16,151,192,198,193,1,0,57,16,151,192,198,225,58,16,152,192,198,1,48,0,58,16,152,192,198,33,48,0,58,16,152,192,198,65,26,16,9,0,27,16,14,0,28,16,19,0,29,16,48,0,58,16,151,192,198,129,1,0,57,16,150,192,198,193,58,16,150,192,198,225,1,0,57,16,151,192,198,1,58,16,151,192,198,33,1,0,57,16,151,192,198,65,58,16,151,192,198,97,21,16,44,0,21,16,14,0,22,16,19,0,23,16,24,0,24,16,29,0,25,16,1,0,57,16,150,192,198,129,58,16,150,192,198,161,1,0,57,16,149,192,198,129,58,16,149,192,198,161,1,0,57,16,149,192,198,193,58,16,149,192,198,225,1,0,57,16,150,192,198,1,58,16,150,192,198,33,1,0,57,16,150,192,198,65,58,16,150,192,198,97,17,16,12,0,18,16,17,0,19,16,22,0,20,16,1,0,57,16,149,192,198,65,58,16,149,192,198,97,1,0,57,16,148,192,198,129,58,16,148,192,198,161,1,0,57,16,148,192,198,193,58,16,148,192,198,225,1,0,57,16,149,192,198,1,58,16,149,192,198,33,8,16,78,0,12,16,44,0,12,16,14,0,13,16,19,0,14,16,24,0,15,16,29,0,16,16,1,0,57,16,148,192,198,65,58,16,148,192,198,97,1,0,57,16,147,192,198,65,58,16,147,192,198,97,1,0,57,16,147,192,198,129,58,16,147,192,198,161,1,0,57,16,147,192,198,193,58,16,147,192,198,225,1,0,57,16,148,192,198,1,58,16,148,192,198,33,8,16,12,0,9,16,14,0,10,16,19,0,11,16,1,0,57,16,147,192,198,1,58,16,147,192,198,33,48,0,58,16,146,192,198,97,1,0,57,16,146,192,198,129,58,16,146,192,198,161,1,0,57,16,146,192,198,193,58,16,146,192,198,225,4,16,35,0,4,16,12,0,5,16,17,0,6,16,22,0,7,16,1,0,57,16,146,192,198,33,58,16,146,192,198,65,48,0,58,16,176,100,198,97,57,16,145,192,198,129,1,0,57,16,145,192,198,161,58,16,145,192,198,193,1,0,57,16,145,192,198,225,58,16,146,192,198,1,0,16,12,0,1,16,20,0,2,16,25,0,3,16,1,0,57,16,145,192,198,33,58,16,145,192,198,65,1,0,57,16,144,192,198,1,58,16,112,100,198,33,59,16,144,192,198,67,1,0,57,16,144,192,198,161,58,16,144,192,198,193,1,0,57,16,144,192,198,225,58,16,145,192,198,1,27,16,14,0,28,16,19,0,29,16,24,0,30,16,26,0,31,16,1,0,57,16,135,192,198,65,58,16,135,192,198,97,1,0,57,16,134,192,198,97,58,16,134,192,198,129,1,0,57,16,134,192,198,161,58,16,134,192,198,193,48,0,58,16,134,192,198,225,1,0,57,16,135,192,198,1,58,16,135,192,198,33,22,16,44,0,22,16,14,0,23,16,19,0,24,16,24,0,25,16,29,0,26,16,1,0,57,16,134,192,198,33,58,16,134,192,198,65,1,0,57,16,133,192,198,33,58,16,133,192,198,65,1,0,57,16,133,192,198,97,58,16,133,192,198,129,1,0,57,16,133,192,198,161,58,16,133,192,198,193,1,0,57,16,133,192,198,225,58,16,134,192,198,1,18,16,12,0,19,16,17,0,20,16,22,0,21,16,1,0,57,16,132,192,198,225,58,16,133,192,198,1,1,0,57,16,132,192,198,33,58,16,132,192,198,65,1,0,57,16,132,192,198,97,58,16,132,192,198,129,1,0,57,16,132,192,198,161,58,16,132,192,198,193,9,16,81,0,13,16,44,0,13,16,14,0,14,16,19,0,15,16,24,0,16,16,29,0,17,16,1,0,57,16,131,192,198,225,58,16,132,192,198,1,1,0,57,16,130,192,198,225,58,16,131,192,198,1,1,0,57,16,131,192,198,33,58,16,131,192,198,65,1,0,57,16,131,192,198,97,58,16,131,192,198,129,1,0,57,16,131,192,198,161,58,16,131,192,198,193,9,16,12,0,10,16,17,0,11,16,22,0,12,16,1,0,57,16,130,192,198,161,58,16,130,192,198,193,1,0,57,16,129,192,198,225,58,16,130,192,198,1,1,0,57,16,130,192,198,33,58,16,130,192,198,65,1,0,57,16,130,192,198,97,58,16,130,192,198,129,4,16,41,0,4,16,11,0,5,16,16,0,6,16,21,0,7,16,26,0,8,16,48,0,58,16,129,192,198,193,48,0,58,16,112,96,198,193,57,16,128,192,198,225,1,0,57,16,129,192,198,1,58,16,129,192,198,33,1,0,57,16,129,192,198,65,58,16,129,192,198,97,1,0,57,16,129,192,198,129,58,16,129,192,198,161,0,16,12,0,1,16,17,0,2,16,22,0,3,16,1,0,57,16,128,192,198,129,58,16,128,192,198,161,1,0,57,16,127,192,198,193,58,16,127,192,198,225,1,0,57,16,128,192,198,1,58,16,128,192,198,33,1,0,57,16,128,192,198,65,58,16,128,192,198,97,93,117,193,80,48,0,56,16,255,255,93,117,193,82,144,0,198,129,1,0,61,16,3,0,62,16,152,192,198,225,112,102,198,161,62,16,152,192,198,193,153,0,198,1,1,0,61,16,3,0,62,16,153,192,198,97,176,102,198,33,62,16,153,192,198,65,153,0,198,129,48,0,62,16,153,192,198,161,108,11,5,5,50,0,4,16,58,16,56,16,155,192,198,6,16,0,1,16,34,16,43,16,45,16,47,16,48,16,49,16,50,16,54,16,55,16,56,16,57,16,59,16,60,16,61,16,64,16,170,170,3,0,69,0,52,0,61,0,55,13,0,16,4,0,0,96,1,0,0,96,1,0,43,0,77,38,0,32,1,0,32,0,82,38,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,11,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,80,97,114,101,110,116,0,170,170,170,0,0,110,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,68,0,101,0,118,0,97,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,10,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,39,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,11,0,0,0,15,0,0,0,15,0,0,0,1,0,0,0,0,0,0,0,15,0,0,0,37,37,80,97,114,101,110,116,0,170,170,170,0,0,110,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,153,27,0,32,7,0,0,0,23,0,0,0,155,27,0,0,155,27,0,0,3,0,0,0,0,0,0,0,118,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,110,0,111,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,133,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,97,0,97,0,60,0,60,0,60,0,65,0,97,0,60,0,60,0,60,0,65,0,65,0,0,0,170,170,170,170,4,57,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,163,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,140,47,0,0,140,47,0,0,76,51,0,0,76,51,0,0,178,56,0,0,232,56,0,0,232,56,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,28,0,202,225,28,0,202,2,29,0,202,35,29,0,202,68,29,0,202,101,29,0,202,134,29,0,202,167,29,0,202,200,29,0,202,233,29,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,196,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,102,29,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,38,30,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,70,31,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,228,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,166,47,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,48,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,34,20,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,51,0,201,102,52,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,55,0,201,230,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,58,0,201,38,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,60,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,62,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,64,0,5,71,238,102,201,70,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,192,0,0,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,192,0,0,0,197,98,7,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,197,99,8,0,197,194,8,0,192,0,0,0,192,0,0,0,197,2,9,0,197,67,9,0,197,162,9,0,192,0,0,0,192,0,0,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,66,0,201,70,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,68,0,201,134,69,0,201,166,70,0,201,198,71,0,201,230,72,0,201,6,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,75,0,201,70,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,77,0,201,134,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,79,0,201,198,80,0,201,230,81,0,201,6,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,84,0,201,70,85,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,70,0,4,111,93,0,70,0,70,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,4,111,93,0,5,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,226,5,0,5,5,10,121,5,5,12,121,197,34,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,197,226,6,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,7,0,5,5,107,121,197,98,7,0,5,5,111,121,197,162,7,0,5,5,115,121,197,226,7,0,5,5,119,121,197,34,8,0,197,99,8,0,197,194,8,0,5,5,127,121,5,5,129,121,197,2,9,0,197,67,9,0,197,162,9,0,5,5,137,121,5,5,139,121,197,226,9,0,5,5,143,121,5,5,6,121,197,226,5,0,197,34,10,0,5,5,10,121,197,98,10,0,197,162,10,0,5,5,12,121,5,5,16,121,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,5,5,18,121,5,5,20,121,197,130,6,0,5,5,24,121,197,162,6,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,12,192,197,162,156,82,196,198,1,0,8,3,12,192,197,226,11,3,13,192,197,34,5,82,196,198,1,0,8,3,13,192,197,98,11,3,13,192,197,162,156,82,196,208,1,0,8,3,13,192,197,226,11,3,14,192,197,34,5,82,196,208,1,0,8,3,14,192,197,98,11,3,14,192,197,162,156,82,196,204,1,0,8,3,14,192,197,226,11,3,15,192,197,34,5,82,196,204,1,0,8,3,15,192,197,98,11,3,15,192,197,162,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,15,192,197,226,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,16,0,197,35,1,0,8,3,35,192,198,35,11,3,35,192,198,131,16,0,197,131,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,16,192,197,226,11,3,17,192,197,34,5,82,196,196,1,0,8,3,17,192,197,98,11,3,17,192,197,162,17,0,197,227,1,0,8,3,18,192,197,67,11,3,18,192,197,163,19,0,197,3,1,0,8,3,19,192,197,99,11,3,19,192,197,195,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,3,0,67,0,50,0,59,0,119,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,64,51,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,92,39,0,0,92,39,0,0,56,41,0,0,56,41,0,0,88,46,0,0,142,46,0,0,36,51,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,13,0,202,193,13,0,202,226,13,0,202,3,14,0,202,36,14,0,202,69,14,0,202,102,14,0,202,135,14,0,202,168,14,0,202,201,14,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,4,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,28,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,29,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,134,30,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,36,32,0,5,5,0,44,5,5,0,46,5,5,0,48,201,230,46,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,47,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,198,48,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,129,8,0,198,161,8,0,198,97,27,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,225,17,0,5,5,127,12,198,129,27,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,98,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,198,97,22,0,193,4,111,93,193,2,111,93,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,198,33,27,0,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,50,0,201,166,51,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,193,17,0,198,1,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,18,0,198,65,27,0,198,97,28,0,198,129,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,198,52,0,201,230,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,55,0,201,38,56,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,57,0,201,102,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,197,34,0,0,197,98,0,0,197,226,3,0,197,34,4,0,197,98,4,0,197,162,4,0,192,0,0,0,198,162,29,0,198,226,29,0,192,0,0,0,192,0,0,0,198,34,30,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,59,0,201,166,60,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,31,0,197,34,5,0,198,162,31,0,197,98,5,0,198,226,31,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,34,32,0,198,98,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,61,0,201,230,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,64,0,201,38,65,0,201,70,66,0,201,102,67,0,201,134,68,0,201,166,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,70,0,201,230,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,73,0,201,38,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,75,0,201,102,76,0,201,134,77,0,201,166,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,79,0,201,230,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,70,0,4,111,93,0,70,0,70,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,134,0,70,0,2,111,93,0,134,0,5,0,4,111,93,0,135,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,135,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,70,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,134,0,71,0,2,111,93,0,134,0,70,0,3,111,93,0,134,0,71,0,3,111,93,0,5,0,70,0,4,111,93,0,5,0,70,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,144,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,150,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,156,0,0,0,0,0,5,0,164,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,146,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,184,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,188,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,70,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,142,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,142,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,138,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,182,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,140,0,0,0,0,0,5,0,154,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,140,0,0,0,0,0,5,0,71,0,2,111,93,0,5,0,70,0,3,111,93,0,5,0,71,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,3,111,93,0,5,0,72,0,3,111,93,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,3,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,4,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,2,111,93,5,164,0,0,193,4,111,93,5,136,0,0,193,2,111,93,5,136,0,0,193,3,111,93,5,136,0,0,193,4,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,0,0,62,0,3,2,118,0,169,30,54,0,177,30,26,0,181,30,12,0,181,30,16,192,198,163,182,30,17,192,198,3,183,30,17,192,198,99,43,33,1,192,198,130,177,30,15,192,198,35,178,30,15,192,198,131,179,30,15,192,198,227,180,30,16,192,198,67,173,30,12,0,173,30,13,192,198,163,174,30,14,192,198,3,175,30,14,192,198,99,176,30,14,192,198,195,169,30,12,192,198,35,170,30,12,192,198,131,171,30,12,192,198,227,172,30,13,192,198,67,161,30,26,0,165,30,12,0,165,30,10,192,198,163,166,30,11,192,198,3,167,30,11,192,198,99,168,30,11,192,198,195,161,30,9,192,198,130,162,30,9,192,198,194,163,30,10,192,198,2,164,30,10,192,198,67,10,3,12,0,10,3,8,192,198,161,0,30,8,192,198,194,1,30,9,192,198,2,160,30,9,192,198,66,3,2,8,192,198,66,38,2,5,0,39,2,8,0,8,3,8,192,198,129,240,65,198,2,4,3,6,192,198,3,240,65,198,98,4,3,6,192,198,99,1,1,54,0,223,1,26,0,251,1,12,0,251,1,7,192,198,35,0,2,7,192,198,130,1,2,7,192,198,194,2,2,8,192,198,2,223,1,5,192,198,163,224,1,6,192,198,3,225,1,6,192,198,99,250,1,6,192,198,195,5,1,12,0,5,1,4,192,198,130,205,1,4,192,198,194,206,1,5,192,198,2,222,1,5,192,198,67,1,1,3,192,198,130,2,1,3,192,198,194,3,1,4,192,198,2,4,1,4,192,198,66,197,0,26,0,227,0,12,0,227,0,2,192,198,130,228,0,2,192,198,194,229,0,3,192,198,2,0,1,3,192,198,66,197,0,1,192,198,130,224,0,1,192,198,194,225,0,2,192,198,2,226,0,2,192,198,66,193,0,12,0,193,0,0,192,198,130,194,0,0,192,198,194,195,0,1,192,198,2,196,0,1,192,198,66,65,0,198,129,97,0,198,161,192,0,0,192,198,66,0,50,156,5,48,0,40,3,17,192,198,193,0,70,156,5,1,0,8,3,17,192,198,225,11,3,18,192,198,1,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,31,0,39,2,59,0,169,30,26,0,177,30,12,0,177,30,25,192,198,131,179,30,25,192,198,227,181,30,26,192,198,67,183,30,26,192,198,163,169,30,24,192,198,3,171,30,24,192,198,99,173,30,24,192,198,195,175,30,25,192,198,35,161,30,12,0,161,30,22,192,198,194,163,30,23,192,198,2,165,30,23,192,198,67,167,30,23,192,198,163,39,2,10,0,8,3,22,192,198,97,10,3,255,255,111,93,193,4,1,30,22,192,198,130,176,69,198,34,4,3,21,192,198,35,3,1,26,0,225,1,12,0,225,1,21,192,198,35,251,1,21,192,198,131,1,2,21,192,198,226,3,2,22,192,198,34,3,1,20,192,198,2,5,1,20,192,198,66,206,1,20,192,198,130,223,1,20,192,198,195,227,0,12,0,227,0,19,192,198,2,228,0,19,192,198,66,229,0,19,192,198,130,1,1,19,192,198,194,97,0,18,192,198,33,224,0,18,192,198,66,225,0,18,192,198,130,226,0,18,192,198,194,0,50,5,5,48,0,40,3,27,192,198,1,0,70,5,5,1,0,8,3,27,192,198,33,11,3,27,192,198,65,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,27,192,198,162,10,3,27,192,198,226,5,42,196,162,1,0,8,3,28,192,198,34,10,3,1,192,197,34,156,82,196,162,1,0,8,3,1,192,197,98,11,3,1,192,197,162,5,82,196,162,1,0,8,3,1,192,197,226,11,3,2,192,197,34,156,70,196,190,1,0,8,3,28,192,198,162,11,3,28,192,198,226,5,70,196,190,1,0,8,3,29,192,198,34,11,3,29,192,198,98,156,82,196,190,1,0,8,3,2,192,197,98,11,3,2,192,197,162,5,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,156,70,196,162,1,0,8,3,30,192,198,98,11,3,30,192,198,162,5,70,196,162,1,0,8,3,30,192,198,226,11,3,31,192,198,34,156,42,196,200,1,0,8,3,32,192,198,162,10,3,32,192,198,226,5,42,196,200,1,0,8,3,33,192,198,34,10,3,5,192,197,226,156,82,196,198,1,0,8,3,6,192,197,34,11,3,6,192,197,98,5,82,196,198,1,0,8,3,6,192,197,162,11,3,6,192,197,226,156,82,196,208,1,0,8,3,7,192,197,34,11,3,7,192,197,98,5,82,196,208,1,0,8,3,7,192,197,162,11,3,7,192,197,226,156,82,196,204,1,0,8,3,8,192,197,34,11,3,8,192,197,98,5,82,196,204,1,0,8,3,8,192,197,162,11,3,8,192,197,226,156,42,196,196,1,0,8,3,33,192,198,98,10,3,33,192,198,162,5,42,196,196,1,0,8,3,33,192,198,226,10,3,9,192,197,34,156,70,196,196,1,0,8,3,34,192,198,34,11,3,34,192,198,98,5,70,196,196,1,0,8,3,34,192,198,162,11,3,34,192,198,226,9,0,197,99,1,0,8,3,35,192,198,35,11,3,35,192,198,131,9,0,197,195,1,0,8,3,35,192,198,227,11,3,36,192,198,67,156,82,196,196,1,0,8,3,10,192,197,34,11,3,10,192,197,98,5,82,196,196,1,0,8,3,10,192,197,162,11,3,10,192,197,226,11,0,197,35,1,0,8,3,11,192,197,131,11,3,11,192,197,227,12,0,197,67,1,0,8,3,12,192,197,163,11,3,13,192,197,3,26,0,65,0,66,0,97,0,98,0,192,0,198,0,224,0,230,0,0,1,6,1,205,1,207,1,222,1,226,1,250,1,252,1,0,2,4,2,38,2,40,2,0,30,2,30,160,30,184,30,43,33,44,33,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,82,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,84,4,185,124,185,128,185,136,186,140,186,144,86,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,88,4,168,60,168,64,168,68,119,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,121,4,168,124,168,128,168,136,168,140,168,144,123,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,217,180,185,188,185,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,249,121,121,122,217,184,136,14,185,184,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,200,180,168,188,168,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,232,121,104,122,200,184,128,14,168,184,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,125,4,127,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,180,232,180,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,25,185,8,185,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,129,4,131,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,176,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,65,4,218,188,97,4,209,188,192,6,218,188,168,1,193,6,218,188,136,1,194,6,218,188,232,1,195,6,218,188,104,2,196,6,218,188,72,2,197,6,218,188,40,2,224,6,209,188,168,1,225,6,209,188,136,1,226,6,209,188,232,1,227,6,209,188,104,2,228,6,209,188,72,2,229,6,209,188,40,2,0,7,218,188,232,2,1,7,209,188,232,2,2,7,218,188,200,1,3,7,209,188,200,1,4,7,218,188,200,2,5,7,209,188,200,2,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,97,4,200,188,224,6,200,188,168,1,225,6,200,188,136,1,226,6,200,188,232,1,227,6,200,188,104,2,228,6,200,188,72,2,229,6,200,188,40,2,1,7,200,188,232,2,3,7,200,188,200,1,5,7,200,188,200,2,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,3,0,67,0,50,0,59,0,191,14,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,185,14,0,32,144,27,0,32,1,0,32,0,149,27,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,4,0,0,80,7,0,0,0,10,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,0,0,0,0,14,0,0,0,37,37,65,76,73,65,83,0,0,0,110,0,111,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,10,10,0,32,7,0,0,0,21,0,0,0,12,10,0,0,12,10,0,0,3,0,0,0,0,0,0,0,62,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,75,220,38,0,90,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,60,0,100,0,104,0,60,0,60,0,60,0,68,0,104,0,60,0,60,0,60,0,68,0,72,0,60,0,107,0,104,0,60,0,60,0,60,0,75,0,104,0,60,0,60,0,60,0,75,0,72,0,60,0,110,0,121,0,60,0,60,0,60,0,78,0,121,0,60,0,60,0,60,0,78,0,89,0,60,0,112,0,104,0,60,0,60,0,60,0,80,0,104,0,60,0,60,0,60,0,80,0,72,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,0,0,170,170,170,170,170,170,12,39,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,23,0,0,196,23,0,0,140,26,0,0,140,26,0,0,200,29,0,0,200,29,0,0,30,34,0,0,96,34,0,0,240,38,0,0,50,105,114,84,1,0,64,8,111,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,94,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,102,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,24,0,202,193,24,0,202,226,24,0,202,3,25,0,202,36,25,0,202,69,25,0,202,102,25,0,202,135,25,0,202,168,25,0,202,201,25,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,201,160,7,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,201,96,15,0,156,5,0,64,156,5,0,66,201,32,23,0,156,5,0,70,201,32,32,0,160,5,0,74,156,5,0,76,201,160,39,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,160,43,0,201,192,47,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,201,224,51,0,5,5,0,64,5,5,0,66,201,0,56,0,5,5,0,70,201,32,61,0,5,5,0,74,5,5,0,76,201,64,65,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,23,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,24,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,24,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,96,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,5,0,2,5,93,0,70,0,5,0,2,5,93,0,135,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,150,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,142,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,142,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,150,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,164,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,164,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,146,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,138,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,138,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,182,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,182,0,0,0,0,0,135,0,5,0,2,5,93,0,5,0,154,0,0,0,0,0,70,0,5,0,2,5,93,0,5,0,154,0,0,0,0,0,135,0,5,0,3,5,93,0,70,0,5,0,3,5,93,0,135,0,5,0,3,5,93,0,5,0,142,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,142,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,144,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,144,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,156,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,150,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,150,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,160,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,160,0,0,0,0,0,135,0,5,0,3,5,93,0,5,0,206,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,206,0,0,0,0,0,70,0,5,0,3,5,93,0,5,0,210,0,0,0,0,0,70,0,5,0,4,5,93,0,70,0,5,0,4,5,93,0,5,0,142,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,144,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,156,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,196,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,150,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,160,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,206,0,0,0,0,0,70,0,5,0,4,5,93,0,5,0,210,0,0,0,0,0,0,0,0,135,5,2,93,5,142,0,0,70,5,2,93,5,142,0,0,135,5,2,93,5,144,0,0,70,5,2,93,5,144,0,0,135,5,2,93,5,156,0,0,70,5,2,93,5,156,0,0,135,5,2,93,5,196,0,0,70,5,2,93,5,196,0,0,135,5,2,93,5,150,0,0,70,5,2,93,5,150,0,0,135,5,2,93,5,160,0,0,70,5,2,93,5,160,0,0,135,5,2,93,5,206,0,0,70,5,2,93,5,206,0,0,70,5,2,93,5,210,0,0,135,5,3,93,5,142,0,0,70,5,3,93,5,142,0,0,135,5,3,93,5,144,0,0,70,5,3,93,5,144,0,0,135,5,3,93,5,156,0,0,70,5,3,93,5,156,0,0,135,5,3,93,5,196,0,0,70,5,3,93,5,196,0,0,135,5,3,93,5,150,0,0,70,5,3,93,5,150,0,0,135,5,3,93,5,160,0,0,70,5,3,93,5,160,0,0,135,5,3,93,5,206,0,0,70,5,3,93,5,206,0,0,70,5,3,93,5,210,0,0,135,5,4,93,5,142,0,0,70,5,4,93,5,142,0,0,135,5,4,93,5,144,0,0,70,5,4,93,5,144,0,0,135,5,4,93,5,156,0,0,70,5,4,93,5,156,0,0,135,5,4,93,5,196,0,0,70,5,4,93,5,196,0,0,135,5,4,93,5,150,0,0,70,5,4,93,5,150,0,0,135,5,4,93,5,160,0,0,70,5,4,93,5,160,0,0,135,5,4,93,5,206,0,0,70,5,4,93,5,206,0,0,70,5,4,93,5,210,0,0,5,5,2,93,5,142,0,0,5,5,2,93,5,144,0,0,5,5,2,93,5,156,0,0,5,5,2,93,5,196,0,0,5,5,2,93,5,150,0,0,5,5,2,93,5,160,0,0,5,5,2,93,5,206,0,0,5,5,2,93,5,210,0,0,5,5,3,93,5,142,0,0,5,5,3,93,5,144,0,0,5,5,3,93,5,156,0,0,5,5,3,93,5,196,0,0,5,5,3,93,5,150,0,0,5,5,3,93,5,160,0,0,5,5,3,93,5,206,0,0,5,5,3,93,5,210,0,0,5,5,4,93,5,142,0,0,5,5,4,93,5,144,0,0,5,5,4,93,5,156,0,0,5,5,4,93,5,196,0,0,5,5,4,93,5,150,0,0,5,5,4,93,5,160,0,0,5,5,4,93,5,206,0,0,5,5,4,93,5,210,0,0,193,2,5,93,5,136,0,0,193,2,5,93,5,150,0,0,193,2,5,93,5,142,0,0,193,2,5,93,5,164,0,0,193,2,5,93,5,156,0,0,193,2,5,93,5,146,0,0,193,2,5,93,5,138,0,0,193,2,5,93,5,196,0,0,193,2,5,93,5,182,0,0,193,2,5,93,5,154,0,0,193,3,5,93,5,142,0,0,193,3,5,93,5,144,0,0,193,3,5,93,5,156,0,0,193,3,5,93,5,196,0,0,193,3,5,93,5,150,0,0,193,3,5,93,5,160,0,0,193,3,5,93,5,206,0,0,193,3,5,93,5,210,0,0,193,4,5,93,5,142,0,0,193,4,5,93,5,144,0,0,193,4,5,93,5,156,0,0,193,4,5,93,5,196,0,0,193,4,5,93,5,150,0,0,193,4,5,93,5,160,0,0,193,4,5,93,5,206,0,0,193,4,5,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,255,255,2,93,135,5,104,0,255,255,2,93,70,5,36,1,197,162,37,1,0,192,197,98,0,48,156,5,16,0,36,30,29,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,30,2,12,0,30,2,4,192,197,98,31,2,4,192,197,162,34,30,4,192,197,226,35,30,5,192,197,34,72,0,255,255,3,93,135,5,104,0,255,255,3,93,70,5,36,1,3,192,197,226,37,1,4,192,197,34,0,62,156,5,16,0,36,30,29,0,40,30,15,0,40,30,10,192,197,34,41,30,10,192,197,98,42,30,10,192,197,162,43,30,10,192,197,226,150,30,11,192,197,34,36,30,9,192,197,34,37,30,9,192,197,98,38,30,9,192,197,162,39,30,9,192,197,226,30,2,12,0,30,2,8,192,197,34,31,2,8,192,197,98,34,30,8,192,197,162,35,30,8,192,197,226,72,0,255,255,4,93,135,5,104,0,255,255,4,93,70,5,36,1,7,192,197,162,37,1,7,192,197,226,0,68,156,5,20,0,142,30,37,0,244,30,20,0,247,30,9,0,247,30,4,192,198,66,248,30,4,192,198,130,249,30,4,192,198,194,244,30,3,192,198,130,245,30,3,192,198,194,246,30,4,192,198,2,142,30,2,192,198,66,143,30,2,192,198,130,153,30,2,192,198,194,242,30,3,192,198,2,243,30,3,192,198,66,118,1,15,0,118,1,1,192,198,2,119,1,1,192,198,66,120,1,1,192,198,130,50,2,1,192,198,194,51,2,2,192,198,2,89,0,198,129,121,0,198,161,221,0,0,192,198,66,253,0,0,192,198,130,255,0,0,192,198,194,0,72,156,5,16,0,36,30,29,0,40,30,15,0,40,30,7,192,198,194,41,30,8,192,198,2,42,30,8,192,198,66,43,30,8,192,198,130,150,30,8,192,198,194,36,30,6,192,198,194,37,30,7,192,198,2,38,30,7,192,198,66,39,30,7,192,198,130,30,2,12,0,30,2,5,192,198,194,31,2,6,192,198,2,34,30,6,192,198,66,35,30,6,192,198,130,72,0,5,192,198,1,104,0,5,192,198,33,36,1,5,192,198,66,37,1,5,192,198,130,0,78,156,5,8,0,37,30,15,0,37,30,9,192,198,226,39,30,10,192,198,34,41,30,10,192,198,98,43,30,10,192,198,162,150,30,10,192,198,226,104,0,9,192,198,1,37,1,9,192,198,34,31,2,9,192,198,98,35,30,9,192,198,162,0,46,5,5,8,0,37,30,15,0,37,30,12,192,197,34,39,30,12,192,197,98,41,30,12,192,197,162,43,30,12,192,197,226,150,30,13,192,197,34,104,0,255,255,2,93,5,5,37,1,11,192,197,98,31,2,11,192,197,162,35,30,11,192,197,226,0,48,5,5,8,0,37,30,15,0,37,30,14,192,197,34,39,30,14,192,197,98,41,30,14,192,197,162,43,30,14,192,197,226,150,30,15,192,197,34,104,0,255,255,3,93,5,5,37,1,13,192,197,98,31,2,13,192,197,162,35,30,13,192,197,226,0,62,5,5,8,0,37,30,15,0,37,30,16,192,197,34,39,30,16,192,197,98,41,30,16,192,197,162,43,30,16,192,197,226,150,30,17,192,197,34,104,0,255,255,4,93,5,5,37,1,15,192,197,98,31,2,15,192,197,162,35,30,15,192,197,226,0,68,5,5,10,0,143,30,20,0,245,30,9,0,245,30,19,192,197,34,247,30,19,192,197,98,249,30,19,192,197,162,143,30,18,192,197,98,153,30,18,192,197,162,243,30,18,192,197,226,121,0,255,255,5,93,193,2,253,0,17,192,197,98,255,0,17,192,197,162,119,1,17,192,197,226,51,2,18,192,197,34,0,72,5,5,8,0,37,30,15,0,37,30,20,192,197,162,39,30,20,192,197,226,41,30,21,192,197,34,43,30,21,192,197,98,150,30,21,192,197,162,104,0,255,255,5,93,193,3,37,1,19,192,197,226,31,2,20,192,197,34,35,30,20,192,197,98,0,78,5,5,8,0,37,30,15,0,37,30,22,192,197,162,39,30,22,192,197,226,41,30,23,192,197,34,43,30,23,192,197,98,150,30,23,192,197,162,104,0,255,255,5,93,193,4,37,1,21,192,197,226,31,2,22,192,197,34,35,30,22,192,197,98,32,0,72,0,73,0,89,0,90,0,104,0,105,0,121,0,122,0,221,0,222,0,253,0,254,0,255,0,0,1,36,1,38,1,118,1,121,1,30,2,32,2,50,2,52,2,34,30,44,30,142,30,144,30,150,30,151,30,153,30,154,30,242,30,250,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,36,4,186,72,185,76,185,80,185,84,186,88,186,96,46,4,185,104,185,108,56,4,185,120,74,4,185,128,185,136,84,4,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,90,4,96,4,168,72,168,76,168,80,168,84,168,88,168,96,102,4,168,104,168,108,108,4,168,120,118,4,168,128,168,136,124,4,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,200,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,200,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,204,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,176,104,4,177,176,36,5,250,177,37,5,241,177,255,5,185,68,72,4,186,180,104,4,177,180,36,5,250,181,37,5,241,181,255,5,185,100,72,4,186,184,104,4,177,184,36,5,250,185,37,5,241,185,255,5,186,112,89,4,186,188,121,4,177,188,221,4,154,189,253,4,145,189,255,4,81,190,118,5,250,189,119,5,241,189,120,5,90,190,255,5,185,124,72,4,186,192,104,4,177,192,36,5,250,193,37,5,241,193,255,5,186,140,104,4,177,196,37,5,241,197,255,5,168,64,104,4,168,176,37,5,232,177,255,5,168,68,104,4,168,180,37,5,232,181,255,5,168,100,104,4,168,184,37,5,232,185,255,5,168,112,121,4,168,188,253,4,136,189,255,4,72,190,119,5,232,189,255,5,168,124,104,4,168,192,37,5,232,193,255,5,168,140,104,4,168,196,37,5,232,197,255,1,3,0,69,0,52,0,61,0,63,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,3,10,0,32,1,0,32,0,8,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,208,6,0,32,7,0,0,0,21,0,0,0,210,6,0,0,210,6,0,0,3,0,0,0,0,0,0,0,72,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,96,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,20,11,60,0,1,11,60,0,2,11,60,0,3,11,38,0,57,11,60,0,21,11,77,11,55,11,38,0,47,11,60,0,60,0,95,11,0,0,170,170,170,170,170,170,170,170,170,170,170,170,242,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,128,25,0,0,128,25,0,0,128,25,0,0,128,25,0,0,196,25,0,0,196,25,0,0,212,25,0,0,218,25,0,0,31,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,108,187,255,0,109,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,39,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,119,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,102,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,110,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,33,108,193,3,33,108,193,4,33,108,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,2,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,84,108,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,34,108,5,5,49,0,77,11,55,11,255,255,105,108,5,5,2,0,55,11,56,11,170,170,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,201,6,0,32,1,0,32,0,206,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,14,7,0,32,7,0,0,0,21,0,0,0,16,7,0,0,16,7,0,0,3,0,0,0,0,0,0,0,74,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,100,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,71,0,117,0,114,0,117,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,113,10,60,0,60,0,112,10,60,0,60,0,2,10,60,0,60,0,1,10,60,0,60,0,60,10,38,0,92,10,60,0,77,10,0,0,170,170,170,170,236,26,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,128,0,0,0,128,1,0,0,96,26,0,0,96,26,0,0,96,26,0,0,96,26,0,0,212,26,0,0,16,0,0,0,10,0,0,0,4,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,2,0,0,0,0,0,0,41,9,0,0,96,7,0,0,102,203,255,0,103,6,0,0,104,192,255,0,106,189,255,0,107,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,103,104,105,106,107,108,49,109,40,41,39,42,43,44,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,133,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,100,0,108,0,116,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,124,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,2,0,202,129,2,0,202,162,2,0,202,195,2,0,202,228,2,0,202,5,3,0,202,38,3,0,202,71,3,0,202,104,3,0,202,137,3,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,1,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,2,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,122,241,194,5,121,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,123,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,106,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,197,226,0,0,197,34,1,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,120,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,94,106,194,5,123,241,5,5,32,106,194,5,123,241,5,5,40,106,194,5,123,241,5,5,42,106,194,5,123,241,5,5,52,106,194,5,123,241,5,5,80,106,194,5,123,241,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,75,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,7,7,0,32,1,0,32,0,12,7,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,95,0,73,0,78,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,247,9,0,32,7,0,0,0,21,0,0,0,249,9,0,0,249,9,0,0,3,0,0,0,0,0,0,0,59,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,70,220,38,0,65,0,60,0,5,1,60,0,60,0,60,0,4,1,38,0,67,0,60,0,7,1,60,0,60,0,60,0,6,1,38,0,69,0,60,0,25,1,60,0,60,0,60,0,24,1,38,0,76,0,60,0,66,1,60,0,60,0,60,0,65,1,38,0,78,0,60,0,68,1,60,0,60,0,60,0,67,1,38,0,79,0,60,0,243,0,60,0,60,0,60,0,211,0,38,0,83,0,60,0,91,1,60,0,60,0,60,0,90,1,38,0,90,0,60,0,122,1,60,0,60,0,60,0,121,1,60,0,124,1,60,0,60,0,60,0,123,1,0,0,208,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,30,0,0,20,30,0,0,20,30,0,0,20,30,0,0,136,31,0,0,136,31,0,0,168,34,0,0,168,34,0,0,184,38,0,0,50,105,114,84,1,0,64,8,212,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,121,0,129,0,132,0,140,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,0,48,0,169,0,177,0,181,0,48,0,187,0,195,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,203,0,156,0,48,0,48,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,228,1,16,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,10,0,202,129,10,0,202,162,10,0,202,195,10,0,202,228,10,0,202,5,11,0,202,38,11,0,202,71,11,0,202,104,11,0,202,137,11,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,198,0,0,156,5,0,48,201,230,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,166,2,0,201,6,4,0,156,5,0,72,160,5,0,74,156,5,0,76,201,102,5,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,198,6,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,166,8,0,5,5,0,44,201,102,9,0,5,5,0,48,201,134,10,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,70,11,0,201,166,12,0,5,5,0,72,5,5,0,74,5,5,0,76,201,6,14,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,102,15,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,9,0,201,70,17,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,134,5,2,71,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,9,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,10,0,201,38,18,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,5,5,2,71,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,65,5,5,2,65,134,5,2,69,5,5,2,69,201,70,19,0,201,102,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,201,134,21,0,201,166,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,134,5,3,93,5,5,3,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,38,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,28,0,201,102,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,166,31,0,201,198,32,0,201,230,33,0,201,6,35,0,201,38,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,37,0,201,102,38,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,39,0,201,6,41,0,201,134,42,0,201,6,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,45,0,201,166,46,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,197,226,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,47,0,201,230,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,134,5,3,93,5,196,0,0,5,5,2,93,5,196,0,0,5,5,3,93,5,196,0,0,134,5,2,93,5,210,0,0,134,5,3,93,5,210,0,0,5,5,2,93,5,210,0,0,5,5,3,93,5,210,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,40,3,2,235,134,5,0,46,156,5,1,0,1,3,2,239,134,5,65,3,2,239,134,5,0,50,156,5,48,0,40,3,2,243,134,5,0,68,156,5,1,0,1,3,255,255,2,69,134,5,65,3,255,255,2,69,134,5,0,70,156,5,1,0,1,3,255,255,2,71,134,5,65,3,255,255,2,71,134,5,0,78,156,5,1,0,1,3,255,255,2,79,134,5,65,3,255,255,2,79,134,5,0,92,156,5,2,0,1,3,255,255,2,93,134,5,7,3,255,255,3,93,134,5,65,3,255,255,2,93,134,5,0,42,5,5,48,0,40,3,2,235,5,5,0,46,5,5,1,0,1,3,2,239,5,5,65,3,2,239,5,5,0,50,5,5,48,0,40,3,2,243,5,5,0,68,5,5,1,0,1,3,255,255,2,69,5,5,65,3,255,255,2,69,5,5,0,70,5,5,1,0,1,3,255,255,2,71,5,5,65,3,255,255,2,71,5,5,0,78,5,5,1,0,1,3,255,255,2,79,5,5,65,3,255,255,2,79,5,5,0,92,5,5,2,0,1,3,255,255,2,93,5,5,7,3,255,255,3,93,5,5,65,3,255,255,2,93,5,5,156,46,196,160,1,0,1,3,197,162,65,3,197,162,5,46,196,160,1,0,1,3,0,192,197,98,65,3,0,192,197,98,156,68,196,160,1,0,1,3,0,192,197,162,65,3,0,192,197,162,5,68,196,160,1,0,1,3,0,192,197,226,65,3,0,192,197,226,156,78,196,160,1,0,1,3,1,192,197,34,65,3,1,192,197,34,5,78,196,160,1,0,1,3,1,192,197,98,65,3,1,192,197,98,156,70,196,190,1,0,1,3,1,192,197,162,65,3,1,192,197,162,5,70,196,190,1,0,1,3,1,192,197,226,65,3,1,192,197,226,156,70,196,162,1,0,1,3,2,192,197,34,65,3,2,192,197,34,5,70,196,162,1,0,1,3,2,192,197,98,65,3,2,192,197,98,156,78,196,202,1,0,1,3,2,192,197,162,65,3,2,192,197,162,5,78,196,202,1,0,1,3,2,192,197,226,65,3,2,192,197,226,156,68,196,196,1,0,1,3,3,192,197,34,65,3,3,192,197,34,5,68,196,196,1,0,1,3,3,192,197,98,65,3,3,192,197,98,156,68,196,210,1,0,1,3,3,192,197,162,65,3,3,192,197,162,5,68,196,210,1,0,1,3,3,192,197,226,65,3,3,192,197,226,156,68,196,204,1,0,1,3,4,192,197,34,65,3,4,192,197,34,5,68,196,204,1,0,1,3,4,192,197,98,65,3,4,192,197,98,156,78,196,196,1,0,1,3,4,192,197,162,65,3,4,192,197,162,5,78,196,196,1,0,1,3,4,192,197,226,65,3,4,192,197,226,156,92,196,196,2,0,1,3,5,192,197,162,7,3,5,192,197,226,65,3,5,192,197,162,5,92,196,196,2,0,1,3,6,192,197,34,7,3,6,192,197,98,65,3,6,192,197,34,156,92,196,210,2,0,1,3,6,192,197,162,7,3,6,192,197,226,65,3,6,192,197,162,5,92,196,210,2,0,1,3,7,192,197,34,7,3,7,192,197,98,65,3,7,192,197,34,156,70,196,196,1,0,1,3,7,192,197,162,65,3,7,192,197,162,5,70,196,196,1,0,1,3,7,192,197,226,65,3,7,192,197,226,8,0,197,35,1,0,1,3,8,192,197,131,65,3,8,192,197,131,8,0,197,227,1,0,1,3,9,192,197,67,65,3,9,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,28,4,185,76,30,4,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,124,32,4,34,4,185,148,185,152,185,160,36,4,185,172,185,180,185,184,185,188,185,192,185,196,38,4,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,64,42,4,168,76,44,4,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,124,46,4,48,4,168,148,168,152,168,160,50,4,168,172,168,180,168,184,168,188,168,192,168,196,52,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,140,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,54,4,186,81,154,81,250,81,90,82,186,101,154,101,250,101,90,102,217,76,154,130,185,141,185,144,249,141,153,142,89,142,136,14,217,142,185,181,153,181,249,181,89,182,153,197,185,212,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,56,4,168,81,136,81,232,81,72,82,168,101,136,101,232,101,72,102,200,76,136,130,168,141,168,144,232,141,136,142,72,142,128,14,200,142,168,181,136,181,232,181,72,182,136,197,168,212,72,198,57,59,40,59,217,57,200,57,185,60,168,60,185,72,168,72,249,69,232,69,185,70,168,70,25,70,8,70,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,185,84,168,84,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,156,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,185,120,168,120,185,132,168,132,58,4,60,4,26,130,8,130,10,8,185,136,168,136,57,143,40,143,217,141,200,141,121,142,104,142,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,185,168,168,168,250,165,232,165,62,4,64,4,26,166,8,166,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,185,204,168,204,185,208,168,208,25,202,8,202,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,164,169,164,200,56,169,80,187,100,187,108,169,100,169,108,169,216,169,128,217,140,187,80,200,140,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,255,5,186,80,255,5,186,128,255,5,185,140,255,5,186,164,255,5,185,200,255,5,168,56,255,5,168,68,255,5,168,80,255,5,168,128,255,5,168,140,255,5,168,164,255,5,168,200,255,5,249,70,255,5,232,70,255,5,250,130,255,5,232,130,255,5,250,166,255,5,232,166,255,1,3,0,69,0,52,0,61,0,59,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,240,9,0,32,1,0,32,0,245,9,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,220,8,0,32,7,0,0,0,21,0,0,0,222,8,0,0,222,8,0,0,3,0,0,0,0,0,0,0,123,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,197,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,78,6,60,0,60,0,80,6,60,0,60,0,79,6,60,0,60,0,75,6,60,0,60,0,77,6,60,0,60,0,76,6,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,39,6,60,0,34,6,38,0,39,6,60,0,60,0,35,6,60,0,60,0,114,6,60,0,60,0,113,6,60,0,60,0,37,6,60,0,60,0,115,6,60,0,33,6,38,0,42,6,60,0,124,6,60,0,60,0,121,6,38,0,44,6,60,0,129,6,60,0,60,0,45,6,84,6,38,0,134,6,60,0,133,6,38,0,47,6,60,0,137,6,60,0,60,0,136,6,38,0,49,6,60,0,147,6,60,0,60,0,145,6,38,0,152,6,60,0,150,6,38,0,169,6,60,0,60,0,42,0,170,6,67,6,38,0,171,6,60,0,60,0,175,6,38,0,188,6,60,0,60,0,187,6,38,0,72,6,60,0,60,0,36,6,60,0,60,0,199,6,60,0,60,0,201,6,38,0,71,6,60,0,60,0,60,0,192,6,60,0,60,0,60,0,71,6,84,6,60,0,60,0,42,0,213,6,193,6,190,6,41,6,195,6,38,0,204,6,60,0,60,0,42,0,73,6,210,6,74,6,208,6,205,6,60,0,60,0,204,6,84,6,60,0,60,0,60,0,73,6,84,6,60,0,60,0,60,0,38,6,38,0,160,0,60,0,60,0,12,32,60,0,60,0,13,32,0,0,170,170,100,33,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,72,0,0,0,72,1,0,0,184,28,0,0,184,28,0,0,184,28,0,0,184,28,0,0,12,29,0,0,12,29,0,0,140,29,0,0,140,29,0,0,76,33,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,152,0,48,0,48,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,1,0,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,102,5,5,25,102,5,70,26,102,5,70,222,102,5,73,26,102,7,75,240,102,201,6,0,0,192,0,0,0,5,73,214,102,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,71,184,102,192,0,0,0,192,0,0,0,192,0,0,0,201,198,2,0,201,166,3,0,201,134,4,0,201,102,5,0,194,5,210,230,194,5,212,230,194,5,211,230,192,0,0,0,194,5,209,230,194,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,26,102,5,71,26,102,5,74,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,43,102,192,0,0,0,192,0,0,0,5,5,43,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,102,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,102,192,0,0,0,192,0,0,0,5,70,85,102,5,5,85,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,111,102,192,0,0,0,5,5,111,102,192,0,0,0,192,0,0,0,5,5,129,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,184,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,188,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,210,102,192,0,0,0,192,0,0,0,5,72,214,102,192,0,0,0,6,5,214,102,5,71,214,102,197,34,0,0,5,74,214,102,192,0,0,0,192,0,0,0,192,0,0,0,5,71,222,102,192,0,0,0,5,72,222,102,192,0,0,0,192,0,0,0,201,70,6,0,5,74,240,102,192,0,0,0,192,0,0,0,5,73,240,102,192,0,0,0,5,71,240,102,197,98,0,0,192,0,0,0,201,38,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,4,5,71,0,4,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,71,214,102,194,5,128,232,5,71,240,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,25,102,5,5,84,6,255,255,26,102,5,70,85,6,255,255,26,102,5,73,72,102,5,5,48,0,84,6,255,255,59,102,5,70,214,102,5,5,48,0,84,6,255,255,214,102,7,5,222,102,5,5,48,0,84,6,255,255,222,102,5,70,240,102,5,70,48,0,84,6,255,255,240,102,6,75,240,102,5,72,48,0,84,6,255,255,240,102,7,75,240,102,5,5,48,0,84,6,255,255,240,102,5,75,214,102,5,70,48,0,84,6,255,255,214,102,6,5,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,1,0,1,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,69,0,52,0,61,0,123,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,213,8,0,32,1,0,32,0,218,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,105,1,0,32,7,0,0,0,195,0,0,0,109,1,0,0,109,1,0,0,140,0,0,0,1,0,0,0,105,1,0,0,73,110,115,116,97,108,108,101,100,76,111,99,97,108,101,115,0,97,102,0,97,109,0,97,114,0,97,114,95,83,65,0,97,115,0,97,122,0,98,101,0,98,103,0,98,110,0,98,111,0,98,114,0,98,115,0,98,115,95,67,121,114,108,0,99,97,0,99,101,98,0,99,104,114,0,99,115,0,99,121,0,100,97,0,100,101,0,100,101,95,65,84,0,100,115,98,0,100,122,0,101,101,0,101,108,0,101,110,0,101,110,95,85,83,0,101,110,95,85,83,95,80,79,83,73,88,0,101,111,0,101,116,0,102,97,0,102,97,95,65,70,0,102,102,0,102,102,95,65,100,108,109,0,102,105,0,102,105,108,0,102,111,0,102,114,0,102,114,95,67,65,0,102,121,0,103,97,0,103,108,0,103,117,0,104,97,0,104,97,119,0,104,101,0,104,101,95,73,76,0,104,105,0,104,115,98,0,104,117,0,104,121,0,105,100,0,105,100,95,73,68,0,105,103,0,105,115,0,105,116,0,106,97,0,107,97,0,107,107,0,107,108,0,107,109,0,107,110,0,107,111,0,107,111,107,0,107,117,0,107,121,0,108,98,0,108,107,116,0,108,110,0,108,111,0,108,116,0,108,118,0,109,107,0,109,108,0,109,114,0,109,115,0,109,116,0,109,121,0,110,98,0,110,98,95,78,79,0,110,101,0,110,108,0,110,110,0,111,109,0,111,114,0,112,97,0,112,97,95,71,117,114,117,0,112,97,95,71,117,114,117,95,73,78,0,112,108,0,112,115,0,112,116,0,114,111,0,115,97,0,115,101,0,115,105,0,115,107,0,115,108,0,115,109,110,0,115,113,0,115,114,0,115,114,95,67,121,114,108,0,115,114,95,67,121,114,108,95,66,65,0,115,114,95,67,121,114,108,95,77,69,0,115,114,95,67,121,114,108,95,82,83,0,115,114,95,76,97,116,110,0,115,114,95,76,97,116,110,95,66,65,0,115,114,95,76,97,116,110,95,82,83,0,115,118,0,115,119,0,116,97,0,116,101,0,116,104,0,116,107,0,116,111,0,116,114,0,117,103,0,117,107,0,117,114,0,117,122,0,118,105,0,119,97,101,0,119,111,0,120,104,0,121,105,0,121,111,0,121,117,101,95,72,97,110,115,95,67,78,0,121,117,101,95,72,97,110,116,0,122,104,0,122,104,95,72,97,110,115,0,122,104,95,72,97,110,115,95,67,78,0,122,104,95,72,97,110,115,95,83,71,0,122,104,95,72,97,110,116,0,122,104,95,72,97,110,116,95,72,75,0,122,104,95,72,97,110,116,95,77,79,0,122,104,95,72,97,110,116,95,84,87,0,122,117,0,65,108,105,97,115,76,111,99,97,108,101,115,0,97,114,115,0,105,110,0,105,110,95,73,68,0,105,119,0,105,119,95,73,76,0,109,111,0,110,111,0,110,111,95,78,79,0,112,97,95,73,78,0,115,104,0,115,104,95,66,65,0,115,104,95,67,83,0,115,104,95,89,85,0,115,114,95,66,65,0,115,114,95,77,69,0,115,114,95,82,83,0,121,117,101,0,121,117,101,95,67,78,0,121,117,101,95,72,97,110,115,0,122,104,95,67,78,0,122,104,95,72,75,0,122,104,95,77,79,0,122,104,95,83,71,0,122,104,95,84,87,0,0,0,24,0,139,2,143,2,146,2,152,2,155,2,161,2,164,2,167,2,173,2,179,2,182,2,188,2,194,2,200,2,206,2,212,2,218,2,222,2,229,2,238,2,244,2,250,2,0,3,6,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,0,49,0,52,0,55,0,58,0,64,0,67,0,70,0,73,0,76,0,79,0,82,0,85,0,88,0,96,0,99,0,103,0,107,0,110,0,113,0,116,0,119,0,125,0,129,0,132,0,135,0,138,0,141,0,147,0,159,0,136,2,162,0,165,0,168,0,174,0,177,0,185,0,188,0,192,0,195,0,198,0,204,0,207,0,210,0,213,0,216,0,219,0,223,0,226,0,232,0,104,0,235,0,239,0,242,0,245,0,248,0,254,0,1,1,4,1,7,1,10,1,13,1,16,1,19,1,22,1,25,1,28,1,32,1,35,1,38,1,41,1,45,1,48,1,51,1,54,1,57,1,60,1,149,1,63,1,66,1,69,1,72,1,75,1,78,1,84,1,87,1,90,1,93,1,96,1,99,1,102,1,110,1,121,1,124,1,127,1,130,1,107,1,133,1,136,1,139,1,142,1,145,1,148,1,152,1,155,1,158,1,166,1,177,1,188,1,199,1,207,1,218,1,229,1,232,1,235,1,238,1,241,1,244,1,247,1,250,1,253,1,0,2,3,2,6,2,9,2,12,2,16,2,19,2,22,2,25,2,28,2,40,2,49,2,52,2,60,2,71,2,82,2,90,2,101,2,112,2,123,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170,170,2,0,126,2,32,0,170,170,1,0,0,80,50,0,0,80,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,189,8,0,32,7,0,0,0,21,0,0,0,191,8,0,0,191,8,0,0,3,0,0,0,0,0,0,0,47,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,46,220,38,0,65,0,60,0,3,1,60,0,60,0,60,0,2,1,60,0,226,0,60,0,60,0,60,0,194,0,38,0,73,0,60,0,238,0,60,0,60,0,60,0,206,0,38,0,83,0,60,0,95,1,61,0,25,2,60,0,60,0,60,0,94,1,61,0,24,2,38,0,84,0,60,0,99,1,61,0,27,2,60,0,60,0,60,0,98,1,61,0,26,2,0,0,22,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,27,0,0,116,27,0,0,116,27,0,0,116,27,0,0,200,28,0,0,200,28,0,0,14,30,0,0,14,30,0,0,254,33,0,0,50,105,114,84,1,0,64,8,170,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,48,0,56,0,48,0,56,0,102,0,110,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,134,0,139,0,48,0,48,0,48,0,147,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,161,0,126,0,48,0,48,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,118,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,192,0,192,0,152,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,9,0,202,129,9,0,202,162,9,0,202,195,9,0,202,228,9,0,202,5,10,0,202,38,10,0,202,71,10,0,202,104,10,0,202,137,10,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,201,38,1,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,230,1,0,201,70,3,0,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,166,4,0,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,201,198,5,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,134,6,0,201,230,7,0,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,134,5,3,43,196,154,156,42,196,150,156,42,196,146,156,42,197,162,8,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,134,5,2,59,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,8,0,196,138,5,42,196,136,5,42,5,5,3,43,196,154,5,42,196,150,5,42,196,146,5,42,197,34,9,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,5,5,2,59,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,201,70,9,0,201,70,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,11,0,201,38,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,134,5,2,81,5,5,2,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,134,5,2,81,5,5,2,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,12,0,201,6,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,15,0,201,230,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,16,0,201,198,17,0,192,0,0,0,192,0,0,0,197,34,4,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,3,0,197,162,3,0,197,34,6,0,197,98,6,0,197,162,6,0,197,226,6,0,197,34,7,0,197,98,7,0,197,162,7,0,197,226,7,0,197,98,3,0,197,226,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,3,43,5,162,0,0,134,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,5,3,43,5,200,0,0,134,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,59,5,208,0,0,5,5,2,59,5,208,0,0,134,5,3,43,5,196,0,0,134,5,2,43,5,196,0,0,5,5,3,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,3,43,5,136,0,0,5,5,3,43,5,136,0,0,134,5,3,43,5,138,0,0,5,5,3,43,5,138,0,0,134,5,3,43,5,182,0,0,5,5,3,43,5,182,0,0,134,5,3,43,5,154,0,0,5,5,3,43,5,154,0,0,134,5,2,43,5,136,0,0,5,5,2,43,5,136,0,0,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,134,5,2,59,5,196,0,0,5,5,2,59,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,2,3,3,235,134,5,6,3,2,235,134,5,0,58,156,5,48,0,2,3,2,251,134,5,0,78,156,5,1,0,38,3,255,255,2,79,134,5,39,3,255,255,2,79,134,5,0,80,156,5,1,0,38,3,255,255,2,81,134,5,39,3,255,255,2,81,134,5,0,42,5,5,1,0,2,3,3,235,5,5,6,3,2,235,5,5,0,58,5,5,48,0,2,3,2,251,5,5,0,78,5,5,1,0,38,3,255,255,2,79,5,5,39,3,255,255,2,79,5,5,0,80,5,5,1,0,38,3,255,255,2,81,5,5,39,3,255,255,2,81,5,5,156,42,196,162,1,0,2,3,197,162,6,3,0,192,197,98,5,42,196,162,1,0,2,3,0,192,197,162,6,3,0,192,197,226,156,58,196,162,48,0,2,3,1,192,197,34,5,58,196,162,48,0,2,3,1,192,197,98,156,42,196,200,1,0,2,3,1,192,197,162,6,3,1,192,197,226,5,42,196,200,1,0,2,3,2,192,197,34,6,3,2,192,197,98,156,58,196,208,48,0,2,3,2,192,197,162,5,58,196,208,48,0,2,3,2,192,197,226,156,42,196,196,1,0,2,3,3,192,197,34,6,3,3,192,197,98,5,42,196,196,1,0,2,3,3,192,197,162,6,3,3,192,197,226,156,58,196,196,48,0,2,3,8,192,197,34,5,58,196,196,48,0,2,3,8,192,197,98,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,68,185,72,185,76,186,80,185,84,185,88,185,92,28,4,186,108,185,112,185,116,185,120,186,124,185,132,185,136,185,140,185,148,30,4,32,4,185,172,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,68,168,72,168,76,168,80,168,84,168,88,168,92,36,4,168,108,168,112,168,116,168,120,168,124,168,132,168,136,168,140,168,148,38,4,40,4,168,172,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,185,64,153,58,89,58,57,58,0,8,249,74,186,81,154,81,250,81,90,82,186,97,154,97,185,100,90,98,217,76,154,126,185,133,153,133,249,133,153,134,89,134,136,14,217,134,185,173,153,173,249,173,89,174,153,189,185,196,2,8,168,57,136,57,168,64,136,58,72,58,40,58,4,8,232,74,168,81,136,81,232,81,72,82,168,97,136,97,168,100,72,98,200,76,136,126,168,133,136,133,232,133,136,134,72,134,128,14,200,134,168,173,136,173,232,173,72,174,136,189,168,196,72,190,57,59,40,59,185,60,168,60,42,4,44,4,153,73,136,73,249,73,232,73,185,74,168,74,25,74,8,74,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,26,83,8,83,26,82,8,82,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,46,4,48,4,186,98,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,144,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,185,156,168,156,26,154,8,154,185,164,168,164,25,162,8,162,185,168,168,168,153,174,136,174,57,175,40,175,217,173,200,173,57,174,40,174,121,174,104,174,25,175,8,175,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,152,169,152,200,56,169,80,187,96,187,108,169,96,169,108,169,200,169,124,217,132,187,80,200,132,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,96,255,5,186,152,255,5,185,160,255,5,168,56,255,5,168,96,255,5,168,152,255,5,168,160,255,5,25,59,255,5,8,59,255,5,26,99,255,5,8,99,255,1,170,170,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,182,8,0,32,1,0,32,0,187,8,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,199,38,1,32,7,0,0,0,39,0,0,0,207,38,1,0,207,38,1,0,6,0,0,0,0,0,0,0,102,238,0,0,85,67,65,82,117,108,101,115,0,86,101,114,115,105,111,110,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,101,109,111,106,105,0,83,101,113,117,101,110,99,101,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,101,111,114,0,112,114,105,118,97,116,101,45,117,110,105,104,97,110,0,115,101,97,114,99,104,0,115,116,97,110,100,97,114,100,0,37,37,68,69,80,69,78,68,69,78,67,89,0,100,101,112,101,110,100,115,0,170,170,0,0,52,0,50,0,0,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,0,0,117,0,99,0,97,0,100,0,97,0,116,0,97,0,46,0,105,0,99,0,117,0,0,0,207,221,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,64,14,45,0,68,14,32,0,192,14,45,0,196,14,32,0,181,170,32,0,182,170,32,0,185,170,32,0,187,170,32,0,188,170,181,25,45,0,183,25,186,25,93,0,93,0,38,0,39,0,61,0,39,0,60,0,39,0,96,34,39,0,38,0,39,6,60,0,60,0,60,0,142,254,60,0,60,0,60,0,141,254,60,0,60,0,34,6,60,0,60,0,60,0,130,254,60,0,60,0,60,0,129,254,60,0,60,0,35,6,60,0,60,0,60,0,132,254,60,0,60,0,60,0,131,254,60,0,60,0,37,6,60,0,60,0,60,0,136,254,60,0,60,0,60,0,135,254,38,0,72,6,60,0,60,0,60,0,229,6,60,0,60,0,60,0,238,254,60,0,60,0,60,0,237,254,60,0,60,0,36,6,60,0,60,0,60,0,134,254,60,0,60,0,60,0,133,254,38,0,74,6,60,0,60,0,60,0,230,6,60,0,60,0,60,0,243,254,60,0,60,0,60,0,244,254,60,0,60,0,60,0,242,254,60,0,60,0,60,0,241,254,60,0,60,0,38,6,60,0,60,0,60,0,139,254,60,0,60,0,60,0,140,254,60,0,60,0,60,0,138,254,60,0,60,0,60,0,137,254,60,0,60,0,73,6,60,0,60,0,60,0,232,251,60,0,60,0,60,0,233,251,60,0,60,0,60,0,240,254,60,0,60,0,60,0,239,254,38,0,71,6,60,0,60,0,60,0,235,254,60,0,60,0,60,0,236,254,60,0,60,0,60,0,234,254,60,0,60,0,60,0,233,254,60,0,60,0,41,6,60,0,60,0,60,0,148,254,60,0,60,0,60,0,147,254,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,243,5,60,0,60,0,244,5,60,0,60,0,64,6,60,0,60,0,58,14,38,0,0,17,61,0,168,17,38,0,0,17,0,17,61,0,1,17,61,0,169,17,38,0,0,17,9,17,61,0,170,17,38,0,2,17,61,0,171,17,38,0,2,17,12,17,61,0,172,17,38,0,2,17,18,17,61,0,173,17,38,0,3,17,61,0,174,17,38,0,3,17,3,17,61,0,4,17,38,0,5,17,61,0,175,17,38,0,5,17,0,17,61,0,176,17,38,0,5,17,6,17,61,0,177,17,38,0,5,17,7,17,61,0,178,17,38,0,5,17,9,17,61,0,179,17,38,0,5,17,16,17,61,0,180,17,38,0,5,17,17,17,61,0,181,17,38,0,5,17,18,17,61,0,182,17,38,0,6,17,61,0,183,17,38,0,7,17,61,0,184,17,38,0,7,17,7,17,61,0,8,17,38,0,7,17,9,17,61,0,185,17,38,0,9,17,61,0,186,17,38,0,9,17,9,17,61,0,10,17,61,0,187,17,38,0,11,17,61,0,188,17,38,0,12,17,61,0,189,17,38,0,12,17,12,17,61,0,13,17,38,0,14,17,61,0,190,17,38,0,15,17,61,0,191,17,38,0,16,17,61,0,192,17,38,0,17,17,61,0,193,17,38,0,18,17,61,0,194,17,38,0,97,17,117,17,61,0,98,17,38,0,99,17,117,17,61,0,100,17,38,0,101,17,117,17,61,0,102,17,38,0,103,17,117,17,61,0,104,17,38,0,105,17,97,17,61,0,106,17,38,0,105,17,97,17,117,17,61,0,107,17,38,0,105,17,117,17,61,0,108,17,38,0,110,17,101,17,61,0,111,17,38,0,110,17,101,17,117,17,61,0,112,17,38,0,110,17,117,17,61,0,113,17,38,0,115,17,117,17,61,0,116,17,0,0,239,223,168,4,38,0,0,78,61,0,208,253,0,78,38,0,40,78,61,0,208,253,40,78,38,0,54,78,61,0,208,253,54,78,38,0,63,78,61,0,208,253,63,78,38,0,89,78,61,0,208,253,89,78,38,0,133,78,61,0,208,253,133,78,38,0,140,78,61,0,208,253,140,78,38,0,160,78,61,0,208,253,160,78,38,0,186,78,61,0,208,253,186,78,38,0,63,81,61,0,208,253,63,81,38,0,101,81,61,0,208,253,101,81,38,0,107,81,61,0,208,253,107,81,38,0,130,81,61,0,208,253,130,81,38,0,150,81,61,0,208,253,150,81,38,0,171,81,61,0,208,253,171,81,38,0,224,81,61,0,208,253,224,81,38,0,245,81,61,0,208,253,245,81,38,0,0,82,61,0,208,253,0,82,38,0,155,82,61,0,208,253,155,82,38,0,249,82,61,0,208,253,249,82,38,0,21,83,61,0,208,253,21,83,38,0,26,83,61,0,208,253,26,83,38,0,56,83,61,0,208,253,56,83,38,0,65,83,61,0,208,253,65,83,38,0,92,83,61,0,208,253,92,83,38,0,105,83,61,0,208,253,105,83,38,0,130,83,61,0,208,253,130,83,38,0,182,83,61,0,208,253,182,83,38,0,200,83,61,0,208,253,200,83,38,0,227,83,61,0,208,253,227,83,38,0,215,86,61,0,208,253,215,86,38,0,31,87,61,0,208,253,31,87,38,0,235,88,61,0,208,253,235,88,38,0,2,89,61,0,208,253,2,89,38,0,10,89,61,0,208,253,10,89,38,0,21,89,61,0,208,253,21,89,38,0,39,89,61,0,208,253,39,89,38,0,115,89,61,0,208,253,115,89,38,0,80,91,61,0,208,253,80,91,38,0,128,91,61,0,208,253,128,91,38,0,248,91,61,0,208,253,248,91,38,0,15,92,61,0,208,253,15,92,38,0,34,92,61,0,208,253,34,92,38,0,56,92,61,0,208,253,56,92,38,0,110,92,61,0,208,253,110,92,38,0,113,92,61,0,208,253,113,92,38,0,219,93,61,0,208,253,219,93,38,0,229,93,61,0,208,253,229,93,38,0,241,93,61,0,208,253,241,93,38,0,254,93,61,0,208,253,254,93,38,0,114,94,61,0,208,253,114,94,38,0,97,78,61,0,208,253,122,94,38,0,127,94,61,0,208,253,127,94,38,0,244,94,61,0,208,253,244,94,38,0,254,94,61,0,208,253,254,94,38,0,11,95,61,0,208,253,11,95,38,0,19,95,61,0,208,253,19,95,38,0,80,95,61,0,208,253,80,95,38,0,97,95,61,0,208,253,97,95,38,0,115,95,61,0,208,253,115,95,38,0,195,95,61,0,208,253,195,95,38,0,8,98,61,0,208,253,8,98,38,0,54,98,61,0,208,253,54,98,38,0,75,98,61,0,208,253,75,98,38,0,47,101,61,0,208,253,47,101,38,0,52,101,61,0,208,253,52,101,38,0,135,101,61,0,208,253,135,101,38,0,151,101,61,0,208,253,151,101,38,0,164,101,61,0,208,253,164,101,38,0,185,101,61,0,208,253,185,101,38,0,224,101,61,0,208,253,224,101,38,0,229,101,61,0,208,253,229,101,38,0,240,102,61,0,208,253,240,102,38,0,8,103,61,0,208,253,8,103,38,0,40,103,61,0,208,253,40,103,38,0,32,107,61,0,208,253,32,107,38,0,98,107,61,0,208,253,98,107,38,0,121,107,61,0,208,253,121,107,38,0,179,107,61,0,208,253,179,107,38,0,203,107,61,0,208,253,203,107,38,0,212,107,61,0,208,253,212,107,38,0,219,107,61,0,208,253,219,107,38,0,15,108,61,0,208,253,15,108,38,0,20,108,61,0,208,253,20,108,38,0,52,108,61,0,208,253,52,108,38,0,107,112,61,0,208,253,107,112,38,0,42,114,61,0,208,253,42,114,38,0,54,114,61,0,208,253,54,114,38,0,59,114,61,0,208,253,59,114,38,0,44,78,61,0,208,253,63,114,38,0,130,216,23,220,61,0,208,253,44,78,38,0,71,114,61,0,208,253,71,114,38,0,89,114,61,0,208,253,89,114,38,0,91,114,61,0,208,253,91,114,38,0,172,114,61,0,208,253,172,114,38,0,132,115,61,0,208,253,132,115,38,0,137,115,61,0,208,253,137,115,38,0,220,116,61,0,208,253,220,116,38,0,230,116,61,0,208,253,230,116,38,0,24,117,61,0,208,253,24,117,38,0,31,117,61,0,208,253,31,117,38,0,40,117,61,0,208,253,40,117,38,0,48,117,61,0,208,253,48,117,38,0,139,117,61,0,208,253,139,117,38,0,146,117,61,0,208,253,146,117,38,0,118,118,61,0,208,253,118,118,38,0,125,118,61,0,208,253,125,118,38,0,174,118,61,0,208,253,174,118,38,0,191,118,61,0,208,253,191,118,38,0,238,118,61,0,208,253,238,118,38,0,219,119,61,0,208,253,219,119,38,0,226,119,61,0,208,253,226,119,38,0,243,119,61,0,208,253,243,119,38,0,58,121,61,0,208,253,58,121,38,0,184,121,61,0,208,253,184,121,38,0,190,121,61,0,208,253,190,121,38,0,116,122,61,0,208,253,116,122,38,0,203,122,61,0,208,253,203,122,38,0,249,122,61,0,208,253,249,122,38,0,115,124,61,0,208,253,115,124,38,0,248,124,61,0,208,253,248,124,38,0,159,126,61,0,208,253,159,126,38,0,54,127,61,0,208,253,54,127,38,0,81,127,61,0,208,253,81,127,38,0,138,127,61,0,208,253,138,127,38,0,189,127,61,0,208,253,189,127,38,0,1,128,61,0,208,253,1,128,38,0,12,128,61,0,208,253,12,128,38,0,18,128,61,0,208,253,18,128,38,0,51,128,61,0,208,253,51,128,38,0,127,128,61,0,208,253,127,128,38,0,137,128,61,0,208,253,137,128,38,0,227,129,61,0,208,253,227,129,38,0,234,129,61,0,208,253,234,129,38,0,243,129,61,0,208,253,243,129,38,0,252,129,61,0,208,253,252,129,38,0,12,130,61,0,208,253,12,130,38,0,27,130,61,0,208,253,27,130,38,0,31,130,61,0,208,253,31,130,38,0,110,130,61,0,208,253,110,130,38,0,114,130,61,0,208,253,114,130,38,0,120,130,61,0,208,253,120,130,38,0,77,134,61,0,208,253,77,134,38,0,107,134,61,0,208,253,107,134,38,0,64,136,61,0,208,253,64,136,38,0,76,136,61,0,208,253,76,136,38,0,99,136,61,0,208,253,99,136,38,0,126,137,61,0,208,253,126,137,38,0,139,137,61,0,208,253,139,137,38,0,193,137,61,0,208,253,193,137,38,0,210,137,61,0,208,253,210,137,38,0,0,138,61,0,208,253,0,138,38,0,160,139,61,0,208,253,160,139,38,0,55,140,61,0,208,253,55,140,38,0,70,140,61,0,208,253,70,140,38,0,85,140,61,0,208,253,85,140,38,0,120,140,61,0,208,253,120,140,38,0,157,140,61,0,208,253,157,140,38,0,29,141,61,0,208,253,29,141,38,0,100,141,61,0,208,253,100,141,38,0,112,141,61,0,208,253,112,141,38,0,179,141,61,0,208,253,179,141,38,0,171,142,61,0,208,253,171,142,38,0,202,142,61,0,208,253,202,142,38,0,102,143,61,0,208,253,102,143,38,0,155,143,61,0,208,253,155,143,38,0,176,143,61,0,208,253,176,143,38,0,181,143,61,0,208,253,181,143,38,0,145,144,61,0,208,253,145,144,38,0,73,145,61,0,208,253,73,145,38,0,198,145,61,0,208,253,198,145,38,0,204,145,61,0,208,253,204,145,38,0,209,145,61,0,208,253,209,145,38,0,133,148,61,0,208,253,133,148,38,0,119,149,61,0,208,253,119,149,38,0,127,149,61,0,208,253,127,149,38,0,128,149,61,0,208,253,128,149,38,0,232,149,61,0,208,253,232,149,38,0,28,150,61,0,208,253,28,150,38,0,182,150,61,0,208,253,182,150,38,0,185,150,61,0,208,253,185,150,38,0,232,150,61,0,208,253,232,150,38,0,81,151,61,0,208,253,81,151,38,0,94,151,61,0,208,253,94,151,38,0,98,151,61,0,208,253,98,151,38,0,105,151,61,0,208,253,105,151,38,0,203,151,61,0,208,253,203,151,38,0,230,151,61,0,208,253,230,151,38,0,237,151,61,0,208,253,237,151,38,0,243,151,61,0,208,253,243,151,38,0,1,152,61,0,208,253,1,152,38,0,117,152,61,0,208,253,117,152,38,0,168,152,61,0,208,253,168,152,38,0,206,152,61,0,208,253,206,152,38,0,219,152,61,0,208,253,219,152,38,0,222,152,61,0,208,253,222,152,38,0,223,152,61,0,208,253,223,152,38,0,99,153,61,0,208,253,99,153,38,0,150,153,61,0,208,253,150,153,38,0,153,153,61,0,208,253,153,153,38,0,172,153,61,0,208,253,172,153,38,0,108,154,61,0,208,253,108,154,38,0,168,154,61,0,208,253,168,154,38,0,216,154,61,0,208,253,216,154,38,0,223,154,61,0,208,253,223,154,38,0,37,155,61,0,208,253,37,155,38,0,47,155,61,0,208,253,47,155,38,0,50,155,61,0,208,253,50,155,38,0,60,155,61,0,208,253,60,155,38,0,90,155,61,0,208,253,90,155,38,0,124,156,61,0,208,253,124,156,38,0,229,156,61,0,208,253,229,156,38,0,31,158,61,0,208,253,31,158,38,0,117,158,61,0,208,253,117,158,38,0,132,216,186,222,61,0,208,253,100,83,38,0,127,158,61,0,208,253,127,158,38,0,165,158,61,0,208,253,165,158,38,0,166,158,61,0,208,253,166,158,38,0,187,158,61,0,208,253,187,158,38,0,195,158,61,0,208,253,195,158,38,0,205,158,61,0,208,253,205,158,38,0,209,158,61,0,208,253,209,158,38,0,249,158,61,0,208,253,249,158,38,0,253,158,61,0,208,253,253,158,38,0,254,158,61,0,208,253,254,158,38,0,14,159,61,0,208,253,14,159,38,0,19,159,61,0,208,253,19,159,38,0,32,159,61,0,208,253,32,159,38,0,59,159,61,0,208,253,59,159,38,0,74,159,61,0,208,253,74,159,38,0,80,159,61,0,208,253,80,159,38,0,82,159,61,0,208,253,82,159,38,0,127,159,61,0,208,253,127,159,38,0,141,159,61,0,208,253,141,159,38,0,153,159,61,0,208,253,153,159,38,0,156,159,61,0,208,253,156,159,38,0,159,159,61,0,208,253,159,159,38,0,160,159,61,0,208,253,160,159,0,0,239,223,197,6,38,0,97,0,60,0,60,0,0,29,60,0,60,0,101,44,60,0,60,0,60,0,58,2,60,0,60,0,143,29,60,0,60,0,80,2,60,0,60,0,60,0,111,44,60,0,60,0,60,0,68,29,60,0,60,0,81,2,60,0,60,0,60,0,109,44,60,0,60,0,60,0,69,29,60,0,60,0,144,29,60,0,60,0,82,2,60,0,60,0,60,0,112,44,60,0,60,0,60,0,155,29,38,0,98,0,60,0,60,0,153,2,60,0,60,0,128,1,60,0,60,0,60,0,67,2,60,0,60,0,47,29,60,0,60,0,3,29,60,0,60,0,108,29,60,0,60,0,128,29,60,0,60,0,83,2,60,0,60,0,60,0,129,1,60,0,60,0,131,1,60,0,60,0,60,0,130,1,38,0,99,0,60,0,60,0,4,29,60,0,60,0,60,2,60,0,60,0,60,0,59,2,60,0,60,0,147,167,60,0,60,0,60,0,146,167,60,0,60,0,136,1,60,0,60,0,60,0,135,1,60,0,60,0,85,2,60,0,60,0,60,0,157,29,60,0,60,0,132,33,60,0,60,0,60,0,131,33,60,0,60,0,63,167,60,0,60,0,60,0,62,167,38,0,100,0,60,0,60,0,5,29,60,0,60,0,6,29,60,0,60,0,109,29,60,0,60,0,129,29,60,0,60,0,86,2,60,0,60,0,60,0,137,1,60,0,60,0,87,2,60,0,60,0,60,0,138,1,60,0,60,0,145,29,60,0,60,0,140,1,60,0,60,0,60,0,139,1,60,0,60,0,33,2,60,0,60,0,113,167,60,0,60,0,159,30,60,0,60,0,141,1,38,0,101,0,60,0,60,0,7,29,60,0,60,0,71,2,60,0,60,0,60,0,70,2,60,0,60,0,146,29,60,0,60,0,120,44,60,0,60,0,221,1,60,0,60,0,60,0,142,1,60,0,60,0,60,0,50,29,60,0,60,0,123,44,60,0,60,0,89,2,60,0,60,0,60,0,143,1,60,0,60,0,60,0,74,29,60,0,60,0,60,0,148,32,60,0,60,0,149,29,60,0,60,0,91,2,60,0,60,0,60,0,144,1,60,0,60,0,60,0,7,33,60,0,60,0,60,0,75,29,60,0,60,0,147,29,60,0,60,0,88,2,60,0,60,0,90,2,60,0,60,0,92,2,60,0,60,0,60,0,159,29,60,0,60,0,148,29,60,0,60,0,8,29,60,0,60,0,60,0,76,29,60,0,60,0,93,2,60,0,60,0,94,2,60,0,60,0,154,2,38,0,102,0,60,0,60,0,48,167,60,0,60,0,110,29,60,0,60,0,130,29,60,0,60,0,146,1,60,0,60,0,60,0,145,1,60,0,60,0,78,33,60,0,60,0,60,0,50,33,60,0,60,0,251,167,38,0,103,0,60,0,60,0,97,2,60,0,60,0,60,0,162,29,60,0,60,0,98,2,60,0,60,0,60,0,219,29,60,0,60,0,229,1,60,0,60,0,60,0,228,1,60,0,60,0,131,29,60,0,60,0,96,2,60,0,60,0,60,0,147,1,60,0,60,0,155,2,60,0,60,0,119,29,60,0,60,0,127,167,60,0,60,0,60,0,126,167,60,0,60,0,99,2,60,0,60,0,60,0,148,1,60,0,60,0,60,0,224,2,60,0,60,0,100,2,60,0,60,0,163,1,60,0,60,0,60,0,162,1,38,0,104,0,60,0,60,0,156,2,60,0,60,0,102,2,60,0,60,0,60,0,170,167,60,0,60,0,60,0,177,2,60,0,60,0,104,44,60,0,60,0,60,0,103,44,60,0,60,0,118,44,60,0,60,0,60,0,117,44,60,0,60,0,39,167,60,0,60,0,60,0,38,167,60,0,60,0,103,2,60,0,60,0,101,2,60,0,60,0,60,0,141,167,60,0,60,0,60,0,163,29,60,0,60,0,174,2,60,0,60,0,175,2,38,0,105,0,60,0,60,0,49,1,60,0,60,0,60,0,53,216,164,222,60,0,60,0,106,2,60,0,60,0,60,0,166,29,60,0,60,0,254,167,60,0,60,0,9,29,60,0,60,0,60,0,78,29,60,0,60,0,104,2,60,0,60,0,60,0,151,1,60,0,60,0,60,0,164,29,60,0,60,0,123,29,60,0,60,0,60,0,167,29,60,0,60,0,150,29,60,0,60,0,105,2,60,0,60,0,60,0,150,1,60,0,60,0,60,0,165,29,60,0,60,0,124,29,38,0,106,0,60,0,60,0,55,2,60,0,60,0,60,0,53,216,165,222,60,0,60,0,10,29,60,0,60,0,73,2,60,0,60,0,60,0,72,2,60,0,60,0,157,2,60,0,60,0,60,0,168,29,60,0,60,0,95,2,60,0,60,0,60,0,161,29,60,0,60,0,132,2,38,0,107,0,60,0,60,0,11,29,60,0,60,0,132,29,60,0,60,0,153,1,60,0,60,0,60,0,152,1,60,0,60,0,106,44,60,0,60,0,60,0,105,44,60,0,60,0,65,167,60,0,60,0,60,0,64,167,60,0,60,0,67,167,60,0,60,0,60,0,66,167,60,0,60,0,69,167,60,0,60,0,60,0,68,167,60,0,60,0,56,1,60,0,60,0,158,2,38,0,108,0,60,0,60,0,159,2,60,0,60,0,60,0,222,29,60,0,60,0,60,0,171,29,60,0,60,0,71,167,60,0,60,0,60,0,70,167,60,0,60,0,12,29,60,0,60,0,73,167,60,0,60,0,60,0,72,167,60,0,60,0,154,1,60,0,60,0,60,0,61,2,60,0,60,0,97,44,60,0,60,0,60,0,96,44,60,0,60,0,107,2,60,0,60,0,60,0,98,44,60,0,60,0,108,2,60,0,60,0,133,29,60,0,60,0,60,0,170,29,60,0,60,0,109,2,60,0,60,0,60,0,169,29,60,0,60,0,142,167,60,0,60,0,52,2,60,0,60,0,114,167,60,0,60,0,129,167,60,0,60,0,60,0,128,167,60,0,60,0,155,1,38,0,109,0,60,0,60,0,13,29,60,0,60,0,60,0,223,29,60,0,60,0,111,29,60,0,60,0,134,29,60,0,60,0,113,2,60,0,60,0,60,0,110,44,60,0,60,0,60,0,172,29,60,0,60,0,253,167,60,0,60,0,255,167,60,0,60,0,115,167,60,0,60,0,111,2,60,0,60,0,60,0,156,1,60,0,60,0,60,0,90,29,60,0,60,0,250,167,60,0,60,0,31,29,60,0,60,0,112,2,60,0,60,0,60,0,173,29,38,0,110,0,60,0,60,0,73,1,60,0,60,0,116,2,60,0,60,0,60,0,225,29,60,0,60,0,60,0,176,29,60,0,60,0,59,29,60,0,60,0,14,29,60,0,60,0,112,29,60,0,60,0,114,2,60,0,60,0,60,0,157,1,60,0,60,0,60,0,174,29,60,0,60,0,158,1,60,0,60,0,60,0,32,2,60,0,60,0,145,167,60,0,60,0,60,0,144,167,60,0,60,0,135,29,60,0,60,0,115,2,60,0,60,0,60,0,175,29,60,0,60,0,53,2,60,0,60,0,116,167,60,0,60,0,75,1,60,0,60,0,60,0,74,1,60,0,60,0,60,0,81,29,38,0,111,0,60,0,60,0,15,29,60,0,60,0,17,29,60,0,60,0,19,29,60,0,60,0,84,2,60,0,60,0,60,0,134,1,60,0,60,0,60,0,83,29,60,0,60,0,16,29,60,0,60,0,18,29,60,0,60,0,151,29,60,0,60,0,77,167,60,0,60,0,60,0,76,167,60,0,60,0,22,29,60,0,60,0,60,0,84,29,60,0,60,0,23,29,60,0,60,0,60,0,85,29,60,0,60,0,122,44,60,0,60,0,117,2,60,0,60,0,60,0,159,1,60,0,60,0,60,0,177,29,60,0,60,0,75,167,60,0,60,0,60,0,74,167,60,0,60,0,119,2,60,0,60,0,35,2,60,0,60,0,60,0,34,2,60,0,60,0,60,0,61,29,60,0,60,0,21,29,38,0,112,0,60,0,60,0,24,29,60,0,60,0,125,29,60,0,60,0,60,0,99,44,60,0,60,0,81,167,60,0,60,0,60,0,80,167,60,0,60,0,113,29,60,0,60,0,136,29,60,0,60,0,165,1,60,0,60,0,60,0,164,1,60,0,60,0,83,167,60,0,60,0,60,0,82,167,60,0,60,0,85,167,60,0,60,0,60,0,84,167,60,0,60,0,252,167,60,0,60,0,120,2,60,0,60,0,60,0,178,29,60,0,60,0,119,44,38,0,113,0,60,0,60,0,87,167,60,0,60,0,60,0,86,167,60,0,60,0,89,167,60,0,60,0,60,0,88,167,60,0,60,0,160,2,60,0,60,0,75,2,60,0,60,0,60,0,74,2,38,0,114,0,60,0,60,0,128,2,60,0,60,0,60,0,226,29,60,0,60,0,60,0,166,1,60,0,60,0,91,167,60,0,60,0,60,0,227,29,60,0,60,0,60,0,90,167,60,0,60,0,25,29,60,0,60,0,77,2,60,0,60,0,60,0,76,2,60,0,60,0,114,29,60,0,60,0,121,2,60,0,60,0,60,0,180,2,60,0,60,0,26,29,60,0,60,0,122,2,60,0,60,0,137,29,60,0,60,0,123,2,60,0,60,0,60,0,181,2,60,0,60,0,121,44,60,0,60,0,124,2,60,0,60,0,125,2,60,0,60,0,60,0,100,44,60,0,60,0,126,2,60,0,60,0,115,29,60,0,60,0,127,2,60,0,60,0,129,2,60,0,60,0,60,0,182,2,60,0,60,0,117,167,60,0,60,0,118,167,60,0,60,0,93,167,60,0,60,0,60,0,92,167,38,0,115,0,60,0,60,0,49,167,60,0,60,0,116,29,60,0,60,0,138,29,60,0,60,0,130,2,60,0,60,0,60,0,179,29,60,0,60,0,63,2,60,0,60,0,60,0,126,44,60,0,60,0,156,30,60,0,60,0,157,30,60,0,60,0,131,2,60,0,60,0,60,0,169,1,60,0,60,0,60,0,180,29,60,0,60,0,139,29,60,0,60,0,170,1,60,0,60,0,133,2,60,0,60,0,152,29,60,0,60,0,134,2,38,0,116,0,60,0,60,0,27,29,60,0,60,0,103,1,60,0,60,0,60,0,102,1,60,0,60,0,102,44,60,0,60,0,60,0,62,2,60,0,60,0,117,29,60,0,60,0,171,1,60,0,60,0,60,0,181,29,60,0,60,0,173,1,60,0,60,0,60,0,172,1,60,0,60,0,136,2,60,0,60,0,60,0,174,1,60,0,60,0,54,2,60,0,60,0,119,167,60,0,60,0,135,2,38,0,117,0,60,0,60,0,28,29,60,0,60,0,60,0,184,29,60,0,60,0,29,29,60,0,60,0,60,0,89,29,60,0,60,0,30,29,60,0,60,0,137,2,60,0,60,0,60,0,68,2,60,0,60,0,60,0,182,29,60,0,60,0,126,29,60,0,60,0,153,29,60,0,60,0,138,2,60,0,60,0,60,0,177,1,60,0,60,0,60,0,183,29,60,0,60,0,127,29,38,0,118,0,60,0,60,0,32,29,60,0,60,0,95,167,60,0,60,0,60,0,94,167,60,0,60,0,140,29,60,0,60,0,139,2,60,0,60,0,60,0,178,1,60,0,60,0,60,0,185,29,60,0,60,0,113,44,60,0,60,0,116,44,60,0,60,0,253,30,60,0,60,0,60,0,252,30,60,0,60,0,140,2,60,0,60,0,60,0,69,2,60,0,60,0,60,0,186,29,38,0,119,0,60,0,60,0,33,29,60,0,60,0,115,44,60,0,60,0,60,0,114,44,60,0,60,0,141,2,60,0,60,0,191,1,60,0,60,0,60,0,247,1,38,0,120,0,60,0,60,0,141,29,38,0,121,0,60,0,60,0,143,2,60,0,60,0,79,2,60,0,60,0,60,0,78,2,60,0,60,0,180,1,60,0,60,0,60,0,179,1,60,0,60,0,255,30,60,0,60,0,60,0,254,30,60,0,60,0,142,2,60,0,60,0,29,2,60,0,60,0,60,0,28,2,38,0,122,0,60,0,60,0,34,29,60,0,60,0,182,1,60,0,60,0,60,0,181,1,60,0,60,0,118,29,60,0,60,0,142,29,60,0,60,0,37,2,60,0,60,0,60,0,36,2,60,0,60,0,144,2,60,0,60,0,60,0,188,29,60,0,60,0,145,2,60,0,60,0,60,0,189,29,60,0,60,0,64,2,60,0,60,0,60,0,127,44,60,0,60,0,108,44,60,0,60,0,60,0,107,44,60,0,60,0,99,167,60,0,60,0,60,0,98,167,60,0,60,0,146,2,60,0,60,0,60,0,183,1,60,0,60,0,60,0,190,29,60,0,60,0,239,1,60,0,60,0,60,0,238,1,60,0,60,0,35,29,60,0,60,0,185,1,60,0,60,0,60,0,184,1,60,0,60,0,154,29,60,0,60,0,186,1,60,0,60,0,147,2,38,0,254,0,60,0,60,0,101,167,60,0,60,0,60,0,100,167,60,0,60,0,103,167,60,0,60,0,60,0,102,167,38,0,97,0,101,0,60,0,60,0,1,29,60,0,60,0,2,29,60,0,60,0,60,0,70,29,38,0,100,0,145,2,60,0,60,0,165,2,38,0,100,0,146,2,60,0,60,0,164,2,38,0,104,0,118,0,60,0,60,0,149,1,60,0,60,0,60,0,246,1,38,0,108,0,146,2,60,0,60,0,110,2,38,0,111,0,101,0,60,0,60,0,118,2,60,0,60,0,20,29,38,0,116,0,85,2,60,0,60,0,168,2,38,0,117,0,101,0,60,0,60,0,107,29,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,187,2,61,0,189,2,61,0,105,167,61,0,104,167,61,0,107,167,61,0,106,167,61,0,109,167,61,0,108,167,61,0,111,167,61,0,210,29,61,0,110,167,61,0,112,167,61,0,120,167,61,0,187,1,61,0,43,167,61,0,42,167,61,0,45,167,61,0,44,167,61,0,47,167,61,0,46,167,61,0,168,1,61,0,167,1,61,0,189,1,61,0,188,1,61,0,133,1,61,0,132,1,61,0,148,2,61,0,66,2,61,0,65,2,61,0,192,2,61,0,188,2,61,0,238,2,61,0,190,2,61,0,35,167,61,0,34,167,61,0,140,167,61,0,139,167,61,0,149,2,61,0,228,2,61,0,191,2,61,0,193,2,61,0,36,29,61,0,37,29,61,0,92,29,61,0,37,167,61,0,36,167,61,0,161,2,61,0,162,2,61,0,150,2,61,0,192,1,61,0,193,1,61,0,194,1,61,0,195,1,61,0,151,2,61,0,152,2,61,0,172,2,61,0,173,2,38,0,179,3,60,0,60,0,38,29,38,0,187,3,60,0,60,0,39,29,38,0,192,3,60,0,60,0,40,29,38,0,193,3,60,0,60,0,41,29,38,0,200,3,60,0,60,0,42,29,38,0,82,4,60,0,60,0,83,4,60,0,60,0,60,0,3,4,38,0,57,4,60,0,139,4,60,0,60,0,60,0,138,4,38,0,59,4,60,0,60,0,43,29,38,0,91,4,60,0,60,0,92,4,60,0,60,0,60,0,12,4,38,0,132,5,60,0,135,5,0,0,239,223,75,53,38,0,32,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,42,0,62,216,176,221,62,216,177,221,62,216,179,221,62,216,178,221,60,216,251,223,60,216,252,223,60,216,253,223,60,216,254,223,60,216,255,223,38,0,32,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,209,253,172,32,60,0,42,0,61,216,0,222,61,216,3,222,61,216,4,222,61,216,1,222,61,216,6,222,61,216,5,222,62,216,35,221,61,216,2,222,61,216,66,222,61,216,67,222,62,216,224,222,61,216,9,222,61,216,10,222,61,216,7,222,60,0,42,0,62,216,112,221,61,216,13,222,62,216,41,221,61,216,24,222,61,216,23,222,58,38,61,216,26,222,61,216,25,222,62,216,114,221,60,0,42,0,61,216,11,222,61,216,27,222,61,216,28,222,62,216,42,221,61,216,29,222,62,216,17,221,60,0,42,0,62,216,23,221,62,216,45,221,62,216,226,222,62,216,227,222,62,216,43,221,62,216,20,221,62,216,225,222,60,0,42,0,62,216,16,221,62,216,40,221,61,216,16,222,61,216,17,222,61,216,54,222,62,216,229,222,60,0,32,0,61,216,54,222,13,32,60,216,43,223,60,0,42,0,61,216,15,222,61,216,18,222,61,216,68,222,61,216,44,222,60,0,32,0,61,216,46,222,13,32,61,216,168,220,60,0,42,0,62,216,37,221,62,216,232,222,60,0,42,0,61,216,12,222,61,216,20,222,61,216,42,222,62,216,36,221,61,216,52,222,60,0,42,0,61,216,55,222,62,216,18,221,62,216,21,221,62,216,34,221,62,216,46,221,62,216,39,221,62,216,117,221,62,216,118,221,62,216,116,221,61,216,53,222,60,0,32,0,61,216,53,222,13,32,61,216,171,220,60,0,42,0,62,216,47,221,60,0,42,0,62,216,32,221,62,216,115,221,62,216,120,221,60,0,42,0,61,216,14,222,62,216,19,221,62,216,208,221,60,0,42,0,61,216,21,222,62,216,228,222,61,216,31,222,61,216,65,222,57,38,61,216,46,222,61,216,47,222,61,216,50,222,61,216,51,222,62,216,122,221,62,216,121,221,61,216,38,222,61,216,39,222,61,216,40,222,61,216,48,222,61,216,37,222,61,216,34,222,61,216,45,222,61,216,49,222,61,216,22,222,61,216,35,222,61,216,30,222,61,216,19,222,61,216,41,222,61,216,43,222,62,216,113,221,60,0,42,0,61,216,36,222,61,216,33,222,61,216,32,222,62,216,44,221,61,216,8,222,61,216,127,220,61,216,128,220,32,38,60,0,42,0,61,216,169,220,62,216,33,221,61,216,121,220,61,216,122,220,61,216,123,220,61,216,125,220,61,216,126,220,62,216,22,221,60,0,42,0,61,216,58,222,61,216,56,222,61,216,57,222,61,216,59,222,61,216,60,222,61,216,61,222,61,216,64,222,61,216,63,222,61,216,62,222,60,0,42,0,61,216,72,222,61,216,73,222,61,216,74,222,60,0,42,0,61,216,140,220,61,216,152,220,61,216,157,220,61,216,150,220,61,216,151,220,61,216,147,220,61,216,158,220,61,216,149,220,61,216,159,220,99,39,61,216,148,220,60,0,32,0,100,39,13,32,61,216,37,221,32,0,61,0,32,0,100,39,15,254,13,32,61,216,37,221,60,0,32,0,100,39,13,32,62,216,121,222,32,0,61,0,32,0,100,39,15,254,13,32,62,216,121,222,60,0,42,0,100,39,62,216,119,222,62,216,225,221,61,216,155,220,61,216,154,220,61,216,153,220,62,216,117,222,61,216,156,220,62,216,14,221,61,216,164,221,62,216,118,222,62,216,13,221,60,0,42,0,61,216,139,220,61,216,175,220,61,216,162,220,61,216,165,220,61,216,171,220,61,216,166,220,61,216,168,220,61,216,115,221,61,216,172,220,60,0,32,0,61,216,65,220,13,32,61,216,232,221,32,0,61,0,32,0,61,216,65,220,15,254,13,32,61,216,232,221,60,0,42,0,61,216,232,221,61,216,239,221,61,216,173,220,61,216,164,220,60,0,42,0,61,216,75,220,62,216,26,221,61,216,144,221,11,39,61,216,150,221,62,216,241,222,62,216,242,222,62,216,243,222,62,216,244,222,62,216,247,222,62,216,248,222,60,0,42,0,61,216,76,220,62,216,12,221,62,216,15,221,12,39,62,216,30,221,62,216,240,222,62,216,31,221,62,216,24,221,62,216,25,221,60,0,42,0,61,216,72,220,61,216,73,220,61,216,70,220,61,216,149,221,61,216,71,220,29,38,62,216,245,222,60,0,42,0,61,216,77,220,61,216,78,220,10,39,61,216,74,220,62,216,27,221,62,216,28,221,60,0,42,0,61,216,79,220,61,216,76,222,62,216,246,222,61,216,80,220,62,216,50,221,62,216,29,221,61,216,79,222,60,0,42,0,13,39,61,216,133,220,62,216,51,221,60,0,42,0,61,216,170,220,62,216,190,221,62,216,191,221,62,216,181,221,62,216,182,221,61,216,66,220,62,216,187,221,61,216,67,220,62,216,224,221,62,216,192,222,62,216,193,222,62,216,183,221,62,216,180,221,61,216,64,220,61,216,65,220,61,216,69,220,61,216,68,220,62,216,230,222,60,0,42,0,61,216,118,220,62,216,210,221,61,216,102,220,61,216,103,220,62,216,209,221,61,216,113,220,61,216,104,220,62,216,212,221,60,0,32,0,62,216,212,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,212,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,105,220,60,0,32,0,61,216,113,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,255,223,13,32,64,38,60,0,32,0,61,216,113,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,255,223,13,32,66,38,60,0,42,0,62,216,211,221,61,216,116,220,61,216,117,220,60,0,42,0,61,216,77,222,60,0,32,0,61,216,77,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,77,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,77,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,78,222,60,0,32,0,61,216,78,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,78,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,78,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,69,222,60,0,32,0,61,216,69,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,69,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,69,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,70,222,60,0,32,0,61,216,70,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,70,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,70,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,129,220,60,0,32,0,61,216,129,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,129,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,129,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,75,222,60,0,32,0,61,216,75,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,75,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,75,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,207,221,60,0,32,0,62,216,207,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,207,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,207,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,71,222,60,0,32,0,61,216,71,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,71,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,71,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,38,221,60,0,32,0,62,216,38,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,38,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,38,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,55,221,60,0,32,0,62,216,55,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,55,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,55,221,60,216,255,223,13,32,64,38,60,0,32,0,62,216,209,221,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,149,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,149,38,60,0,32,0,61,216,104,220,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,149,38,60,0,32,0,61,216,105,220,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,149,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,149,38,60,0,32,0,62,216,209,221,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,147,223,60,0,32,0,61,216,104,220,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,147,223,60,0,32,0,61,216,105,220,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,147,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,147,223,60,0,32,0,62,216,209,221,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,235,223,60,0,32,0,61,216,104,220,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,235,223,60,0,32,0,61,216,105,220,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,235,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,235,223,60,0,32,0,62,216,209,221,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,150,38,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,150,38,60,0,32,0,61,216,104,220,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,150,38,60,0,32,0,61,216,105,220,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,150,38,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,150,38,60,0,32,0,62,216,209,221,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,62,223,60,0,32,0,61,216,104,220,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,62,223,60,0,32,0,61,216,105,220,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,62,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,62,223,60,0,32,0,62,216,209,221,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,115,223,60,0,32,0,61,216,104,220,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,115,223,60,0,32,0,61,216,105,220,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,115,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,115,223,60,0,32,0,62,216,209,221,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,39,221,60,0,32,0,61,216,104,220,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,39,221,60,0,32,0,61,216,105,220,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,39,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,39,221,60,0,32,0,62,216,209,221,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,237,223,60,0,32,0,61,216,104,220,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,237,223,60,0,32,0,61,216,105,220,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,237,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,237,223,60,0,32,0,62,216,209,221,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,188,220,60,0,32,0,61,216,104,220,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,188,220,60,0,32,0,61,216,105,220,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,188,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,188,220,60,0,32,0,62,216,209,221,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,44,221,60,0,32,0,61,216,104,220,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,44,221,60,0,32,0,61,216,105,220,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,44,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,44,221,60,0,32,0,62,216,209,221,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,187,220,60,0,32,0,61,216,104,220,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,187,220,60,0,32,0,61,216,105,220,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,187,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,187,220,60,0,32,0,62,216,209,221,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,164,223,60,0,32,0,61,216,104,220,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,164,223,60,0,32,0,61,216,105,220,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,164,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,164,223,60,0,32,0,62,216,209,221,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,168,223,60,0,32,0,61,216,104,220,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,168,223,60,0,32,0,61,216,105,220,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,168,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,168,223,60,0,32,0,62,216,209,221,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,8,39,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,8,39,60,0,32,0,61,216,104,220,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,8,39,60,0,32,0,61,216,105,220,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,8,39,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,8,39,60,0,32,0,62,216,209,221,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,128,222,60,0,32,0,61,216,104,220,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,128,222,60,0,32,0,61,216,105,220,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,128,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,128,222,60,0,32,0,62,216,209,221,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,61,216,146,222,60,0,32,0,61,216,104,220,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,61,216,146,222,60,0,32,0,61,216,105,220,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,61,216,146,222,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,61,216,146,222,60,0,42,0,61,216,110,220,60,0,32,0,61,216,110,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,110,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,110,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,117,221,60,0,32,0,61,216,117,221,13,32,66,38,32,0,61,0,32,0,61,216,117,221,15,254,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,255,223,13,32,66,38,60,0,32,0,61,216,117,221,13,32,64,38,32,0,61,0,32,0,61,216,117,221,15,254,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,117,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,130,220,60,0,32,0,61,216,130,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,130,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,130,220,60,216,255,223,13,32,64,38,60,0,42,0,62,216,119,221,61,216,119,220,60,0,32,0,61,216,119,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,119,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,119,220,60,216,255,223,13,32,64,38,60,0,42,0,62,216,197,222,62,216,52,221,61,216,120,220,61,216,115,220,60,0,32,0,61,216,115,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,115,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,115,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,114,220,62,216,213,221,62,216,53,221,60,0,32,0,62,216,53,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,53,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,53,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,112,220,60,0,32,0,61,216,112,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,112,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,112,220,60,216,255,223,13,32,64,38,60,0,42,0,62,216,48,221,62,216,195,222,62,216,196,222,62,216,49,221,60,0,32,0,61,216,105,220,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,60,216,124,223,60,0,32,0,61,216,104,220,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,60,216,124,223,60,0,32,0,62,216,209,221,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,124,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,124,223,60,0,42,0,61,216,124,220,60,216,133,223,62,216,54,221,60,0,32,0,62,216,209,221,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,60,216,132,223,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,60,216,132,223,60,0,42,0,62,216,184,221,60,0,32,0,62,216,184,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,184,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,184,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,185,221,60,0,32,0,62,216,185,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,185,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,185,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,217,221,60,0,32,0,62,216,217,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,217,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,217,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,218,221,60,0,32,0,62,216,218,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,218,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,218,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,219,221,60,0,32,0,62,216,219,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,219,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,219,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,220,221,60,0,32,0,62,216,220,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,220,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,220,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,221,221,60,0,32,0,62,216,221,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,221,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,221,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,222,221,60,0,32,0,62,216,222,221,13,32,66,38,60,0,32,0,62,216,222,221,13,32,64,38,60,0,42,0,62,216,223,221,60,0,32,0,62,216,223,221,13,32,66,38,60,0,32,0,62,216,223,221,13,32,64,38,60,0,42,0,62,216,204,221,60,0,42,0,61,216,134,220,60,0,32,0,61,216,134,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,134,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,134,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,135,220,60,0,32,0,61,216,135,220,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,255,223,13,32,66,38,60,0,32,0,61,216,135,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,135,220,60,216,255,223,13,32,64,38,60,0,42,0,61,216,182,222,60,0,32,0,61,216,182,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,182,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,182,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,205,221,60,0,32,0,62,216,205,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,205,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,205,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,206,221,60,0,32,0,62,216,206,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,206,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,206,221,60,216,255,223,13,32,64,38,60,0,32,0,62,216,209,221,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,175,221,60,0,32,0,61,216,104,220,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,175,221,60,0,32,0,61,216,105,220,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,175,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,175,221,60,0,32,0,62,216,209,221,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,188,221,60,0,32,0,61,216,104,220,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,188,221,60,0,32,0,61,216,105,220,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,188,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,188,221,60,0,32,0,62,216,209,221,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,189,221,60,0,32,0,61,216,104,220,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,189,221,60,0,32,0,61,216,105,220,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,189,221,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,189,221,60,0,42,0,60,216,195,223,60,0,32,0,60,216,195,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,195,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,195,223,60,216,255,223,13,32,64,38,60,0,42,0,61,216,131,220,61,216,122,221,61,216,116,221,61,216,111,220,60,0,32,0,61,216,111,220,13,32,66,38,60,0,32,0,61,216,111,220,13,32,64,38,60,0,42,0,62,216,214,221,60,0,32,0,62,216,214,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,214,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,214,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,215,221,60,0,32,0,62,216,215,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,215,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,215,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,58,221,60,216,199,223,247,38,60,216,194,223,60,216,204,223,60,0,32,0,60,216,204,223,13,32,66,38,32,0,61,0,32,0,60,216,204,223,15,254,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,204,223,13,32,64,38,32,0,61,0,32,0,60,216,204,223,15,254,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,204,223,60,216,255,223,13,32,64,38,60,0,42,0,60,216,196,223,60,0,32,0,60,216,196,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,196,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,196,223,60,216,255,223,13,32,64,38,60,0,42,0,61,216,163,222,60,0,32,0,61,216,163,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,163,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,163,222,60,216,255,223,13,32,64,38,60,0,42,0,60,216,202,223,60,0,32,0,60,216,202,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,202,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,202,223,60,216,255,223,13,32,64,38,60,0,42,0,249,38,60,0,32,0,249,38,13,32,66,38,32,0,61,0,32,0,249,38,15,254,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,249,38,60,216,255,223,13,32,66,38,60,0,32,0,249,38,13,32,64,38,32,0,61,0,32,0,249,38,15,254,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,249,38,60,216,255,223,13,32,64,38,60,0,42,0,60,216,203,223,60,0,32,0,60,216,203,223,13,32,66,38,32,0,61,0,32,0,60,216,203,223,15,254,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,255,223,13,32,66,38,60,0,32,0,60,216,203,223,13,32,64,38,32,0,61,0,32,0,60,216,203,223,15,254,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,60,216,203,223,60,216,255,223,13,32,64,38,60,0,42,0,61,216,180,222,60,0,32,0,61,216,180,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,180,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,180,222,60,216,255,223,13,32,64,38,60,0,42,0,61,216,181,222,60,0,32,0,61,216,181,222,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,255,223,13,32,66,38,60,0,32,0,61,216,181,222,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,181,222,60,216,255,223,13,32,64,38,60,0,42,0,62,216,56,221,60,0,32,0,62,216,56,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,56,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,56,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,60,221,60,0,32,0,62,216,60,221,13,32,66,38,60,0,32,0,62,216,60,221,13,32,64,38,60,0,42,0,62,216,61,221,60,0,32,0,62,216,61,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,61,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,61,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,62,221,60,0,32,0,62,216,62,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,62,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,62,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,57,221,60,0,32,0,62,216,57,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,57,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,57,221,60,216,255,223,13,32,64,38,60,0,42,0,62,216,216,221,60,0,32,0,62,216,216,221,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,255,223,13,32,66,38,60,0,32,0,62,216,216,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,216,221,60,216,255,223,13,32,64,38,60,0,42,0,61,216,192,222,61,216,204,222,60,0,32,0,62,216,209,221,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,251,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,252,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,253,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,254,223,13,32,62,216,29,221,13,32,62,216,209,221,32,0,60,0,60,0,32,0,62,216,209,221,60,216,255,223,13,32,62,216,29,221,13,32,62,216,209,221,60,0,32,0,61,216,109,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,105,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,105,220,60,0,32,0,61,216,107,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,60,0,32,0,61,216,108,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,32,0,60,0,60,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,38,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,251,223,61,0,61,216,109,220,60,216,251,223,38,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,252,223,61,0,61,216,109,220,60,216,252,223,38,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,253,223,61,0,61,216,109,220,60,216,253,223,38,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,254,223,61,0,61,216,109,220,60,216,254,223,38,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,105,220,60,216,255,223,61,0,61,216,109,220,60,216,255,223,38,0,32,0,61,216,105,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,251,223,61,0,61,216,107,220,60,216,251,223,38,0,32,0,61,216,105,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,252,223,61,0,61,216,107,220,60,216,252,223,38,0,32,0,61,216,105,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,253,223,61,0,61,216,107,220,60,216,253,223,38,0,32,0,61,216,105,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,254,223,61,0,61,216,107,220,60,216,254,223,38,0,32,0,61,216,105,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,255,223,61,0,61,216,107,220,60,216,255,223,38,0,32,0,61,216,104,220,60,216,251,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,251,223,61,0,61,216,108,220,60,216,251,223,38,0,32,0,61,216,104,220,60,216,252,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,252,223,61,0,61,216,108,220,60,216,252,223,38,0,32,0,61,216,104,220,60,216,253,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,253,223,61,0,61,216,108,220,60,216,253,223,38,0,32,0,61,216,104,220,60,216,254,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,254,223,61,0,61,216,108,220,60,216,254,223,38,0,32,0,61,216,104,220,60,216,255,223,13,32,62,216,29,221,13,32,61,216,104,220,60,216,255,223,61,0,61,216,108,220,60,216,255,223,60,0,42,0,61,216,143,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,139,220,13,32,61,216,104,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,139,220,13,32,61,216,104,220,60,0,32,0,61,216,104,220,13,32,100,39,13,32,61,216,139,220,13,32,61,216,104,220,32,0,61,0,32,0,61,216,104,220,13,32,100,39,15,254,13,32,61,216,139,220,13,32,61,216,104,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,139,220,13,32,61,216,105,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,139,220,13,32,61,216,105,220,60,0,42,0,61,216,145,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,104,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,104,220,60,0,32,0,61,216,104,220,13,32,100,39,13,32,61,216,104,220,32,0,61,0,32,0,61,216,104,220,13,32,100,39,15,254,13,32,61,216,104,220,60,0,32,0,61,216,105,220,13,32,100,39,13,32,61,216,105,220,32,0,61,0,32,0,61,216,105,220,13,32,100,39,15,254,13,32,61,216,105,220,60,0,42,0,61,216,106,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,104,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,105,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,103,220,60,0,32,0,61,216,104,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,104,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,102,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,103,220,60,0,32,0,61,216,105,220,13,32,61,216,103,220,13,32,61,216,102,220,60,0,32,0,61,216,105,220,13,32,61,216,103,220,13,32,61,216,103,220,60,0,42,0,61,216,227,221,61,216,100,220,61,216,101,220,62,216,194,222,61,216,99,220,60,0,42,0,62,216,176,221,62,216,177,221,62,216,179,221,62,216,178,221,60,0,42,0,61,216,53,220,61,216,18,220,62,216,141,221,62,216,167,221,61,216,54,220,61,216,21,220,62,216,174,221,60,0,32,0,61,216,21,220,13,32,62,216,186,221,60,0,42,0,61,216,41,220,61,216,58,220,62,216,138,221,62,216,157,221,61,216,49,220,61,216,8,220,60,0,32,0,61,216,8,220,13,32,27,43,60,0,42,0,62,216,129,221,61,216,47,220,61,216,5,220,61,216,6,220,61,216,52,220,62,216,206,222,62,216,207,222,61,216,14,220,62,216,132,221,62,216,147,221,62,216,140,221,62,216,172,221,61,216,46,220,61,216,2,220,61,216,3,220,61,216,4,220,61,216,55,220,61,216,22,220,61,216,23,220,61,216,61,220,61,216,15,220,61,216,17,220,61,216,16,220,61,216,42,220,61,216,43,220,62,216,153,221,62,216,146,221,61,216,24,220,62,216,163,221,62,216,143,221,62,216,155,221,61,216,45,220,61,216,1,220,61,216,0,220,61,216,57,220,61,216,48,220,61,216,7,220,61,216,63,220,62,216,171,221,62,216,148,221,62,216,135,221,61,216,59,220,60,0,32,0,61,216,59,220,13,32,68,39,60,0,42,0,61,216,40,220,61,216,60,220,62,216,165,221,62,216,166,221,62,216,168,221,62,216,152,221,62,216,161,221,61,216,62,220,60,0,42,0,62,216,131,221,61,216,20,220,61,216,19,220,61,216,35,220,61,216,36,220,61,216,37,220,61,216,38,220,61,216,39,220,61,216,74,221,62,216,133,221,62,216,134,221,62,216,162,221,62,216,137,221,62,216,164,221,62,216,182,222,62,216,169,221,62,216,154,221,62,216,156,221,62,216,189,222,60,0,32,0,61,216,38,220,13,32,27,43,60,0,42,0,62,216,191,222,60,0,42,0,61,216,56,220,60,0,42,0,61,216,10,220,61,216,34,220,62,216,142,221,61,216,13,220,61,216,50,220,61,216,9,220,62,216,149,221,62,216,150,221,60,0,42,0,61,216,51,220,61,216,11,220,61,216,44,220,62,216,173,221,61,216,31,220,61,216,32,220,61,216,33,220,62,216,136,221,61,216,25,220,61,216,26,220,62,216,184,222,62,216,188,222,60,0,42,0,61,216,12,220,62,216,139,221,61,216,27,220,61,216,28,220,61,216,29,220,62,216,178,222,61,216,30,220,62,216,151,221,62,216,179,222,61,216,119,221,61,216,120,221,62,216,130,221,62,216,159,221,62,216,176,222,62,216,177,222,62,216,160,221,60,0,42,0,61,216,144,220,60,216,56,223,61,216,174,220,62,216,183,222,60,216,245,223,60,216,57,223,62,216,64,221,60,216,58,223,60,216,59,223,60,216,60,223,60,216,55,223,62,216,187,222,60,0,42,0,60,216,49,223,62,216,180,222,60,216,50,223,60,216,51,223,60,216,52,223,60,216,53,223,60,216,62,223,60,216,63,223,24,38,60,216,64,223,60,216,65,223,60,216,66,223,60,216,67,223,62,216,185,222,62,216,186,222,60,216,68,223,60,0,42,0,60,216,71,223,60,216,72,223,60,216,73,223,60,216,74,223,60,216,75,223,60,216,76,223,60,216,77,223,62,216,109,221,60,216,78,223,60,216,79,223,60,216,80,223,60,216,81,223,60,216,82,223,60,216,83,223,62,216,208,222,62,216,93,221,60,216,69,223,62,216,210,222,62,216,101,221,60,0,42,0,62,216,81,221,60,216,70,223,62,216,84,221,62,216,85,221,60,216,61,223,60,216,54,223,62,216,209,222,62,216,82,221,62,216,108,221,62,216,102,221,62,216,196,221,62,216,197,221,62,216,92,221,62,216,216,222,60,216,48,223,62,216,218,222,62,216,219,222,60,0,42,0,60,216,94,223,62,216,80,221,62,216,86,221,62,216,211,222,62,216,104,221,62,216,111,221,62,216,94,221,62,216,199,221,62,216,192,221,60,216,86,223,60,216,87,223,62,216,105,221,62,216,83,221,60,216,84,223,60,216,95,223,60,216,85,223,60,216,45,223,62,216,106,221,60,216,46,223,60,216,47,223,62,216,212,222,62,216,89,221,62,216,198,221,62,216,90,221,60,216,115,223,62,216,88,221,60,216,114,223,62,216,213,222,62,216,99,221,62,216,87,221,60,216,127,223,62,216,200,221,62,216,194,221,62,216,107,221,60,0,42,0,60,216,113,223,60,216,88,223,60,216,89,223,60,216,90,223,60,216,91,223,60,216,92,223,60,216,93,223,60,216,96,223,60,216,98,223,60,216,99,223,60,216,100,223,60,216,101,223,62,216,110,221,60,216,97,223,62,216,95,221,62,216,96,221,62,216,97,221,60,0,42,0,62,216,128,221,62,216,158,221,62,216,144,221,62,216,145,221,62,216,170,221,60,0,42,0,60,216,102,223,60,216,103,223,60,216,104,223,60,216,105,223,60,216,106,223,60,216,130,223,60,216,112,223,62,216,193,221,62,216,103,221,60,216,107,223,60,216,108,223,60,216,109,223,60,216,110,223,60,216,111,223,60,0,42,0,60,216,124,223,62,216,91,221,21,38,62,216,214,222,60,216,117,223,60,216,118,223,60,216,126,223,60,216,119,223,60,216,120,223,60,216,121,223,60,216,122,223,60,216,123,223,62,216,66,221,62,216,67,221,62,216,215,222,62,216,100,221,62,216,203,221,62,216,195,221,62,216,201,221,62,216,202,221,60,0,42,0,62,216,98,221,60,216,125,223,60,216,116,223,62,216,68,221,61,216,42,221,62,216,217,222,60,216,250,223,60,0,42,0,60,216,13,223,60,216,14,223,60,216,15,223,60,216,16,223,61,216,250,221,61,216,254,221,62,216,237,221,60,0,42,0,60,216,212,223,240,38,60,216,11,223,61,216,251,221,60,216,213,223,60,216,214,223,60,216,220,223,60,216,221,223,60,216,222,223,60,0,42,0,60,216,223,223,60,216,219,223,60,216,215,223,62,216,241,221,62,216,168,222,62,216,181,222,61,216,214,222,60,216,216,223,60,216,218,223,60,216,224,223,60,216,225,223,60,216,226,223,60,216,227,223,60,216,228,223,60,216,229,223,60,216,230,223,60,216,232,223,60,216,233,223,60,216,234,223,60,216,235,223,60,216,236,223,60,216,237,223,60,216,239,223,60,216,240,223,61,216,146,220,61,216,252,221,61,216,253,221,60,0,42,0,234,38,61,216,76,221,61,216,213,222,61,216,77,221,233,38,61,216,75,221,60,0,42,0,242,38,250,38,60,216,1,223,60,216,3,223,60,216,217,223,60,216,4,223,60,216,5,223,60,216,6,223,60,216,7,223,60,216,9,223,104,38,60,216,160,223,61,216,221,222,60,216,161,223,60,216,162,223,61,216,136,220,60,216,170,223,60,0,42,0,61,216,130,222,61,216,131,222,61,216,132,222,61,216,133,222,61,216,134,222,61,216,135,222,61,216,136,222,61,216,137,222,61,216,138,222,61,216,157,222,61,216,158,222,61,216,139,222,61,216,140,222,61,216,141,222,61,216,142,222,61,216,144,222,61,216,145,222,61,216,146,222,61,216,147,222,61,216,148,222,61,216,149,222,61,216,150,222,61,216,151,222,61,216,152,222,61,216,153,222,61,216,251,222,61,216,154,222,61,216,155,222,61,216,156,222,60,216,206,223,60,216,205,223,61,216,245,222,62,216,189,221,62,216,188,221,61,216,250,222,61,216,178,222,61,216,244,222,61,216,249,222,61,216,252,222,61,216,143,222,61,216,227,222,61,216,228,222,61,216,226,222,253,38,61,216,222,222,61,216,168,222,61,216,165,222,61,216,166,222,61,216,209,222,61,216,167,222,60,0,42,0,147,38,61,216,223,222,245,38,61,216,246,222,61,216,164,222,61,216,243,222,244,38,61,216,229,222,61,216,162,222,60,0,42,0,8,39,61,216,233,222,61,216,235,222,61,216,236,222,62,216,130,222,61,216,186,220,61,216,129,222,61,216,159,222,61,216,160,222,61,216,161,222,61,216,240,222,61,216,128,222,61,216,248,222,60,0,42,0,61,216,206,222,62,216,243,221,60,0,42,0,27,35,243,35,26,35,240,35,241,35,242,35,61,216,112,221,61,216,91,221,61,216,103,221,61,216,80,221,61,216,92,221,61,216,81,221,61,216,93,221,61,216,82,221,61,216,94,221,61,216,83,221,61,216,95,221,61,216,84,221,61,216,96,221,61,216,85,221,61,216,97,221,61,216,86,221,61,216,98,221,61,216,87,221,61,216,99,221,61,216,88,221,61,216,100,221,61,216,89,221,61,216,101,221,61,216,90,221,61,216,102,221,60,0,42,0,60,216,17,223,60,216,18,223,60,216,19,223,60,216,20,223,60,216,21,223,60,216,22,223,60,216,23,223,60,216,24,223,60,216,25,223,60,216,26,223,60,216,27,223,60,216,28,223,60,216,33,223,0,38,60,216,29,223,60,216,30,223,62,216,144,222,80,43,60,216,31,223,60,216,32,223,60,216,12,223,1,38,197,38,200,38,60,216,36,223,60,216,37,223,60,216,38,223,60,216,39,223,60,216,40,223,60,216,41,223,60,216,42,223,60,216,43,223,60,216,44,223,60,216,0,223,60,216,8,223,60,216,2,223,2,38,20,38,241,38,161,38,68,39,3,38,196,38,4,38,61,216,37,221,61,216,167,220,60,216,10,223,60,0,42,0,60,216,131,223,60,216,132,223,60,216,134,223,60,216,135,223,62,216,232,221,40,39,60,216,136,223,60,216,137,223,60,216,138,223,60,216,139,223,60,216,141,223,60,216,142,223,60,216,143,223,60,216,144,223,60,216,145,223,62,216,231,221,60,216,128,223,60,216,129,223,60,216,151,223,60,216,159,223,60,216,171,223,60,0,42,0,60,216,150,223,60,216,198,223,60,216,197,223,62,216,71,221,62,216,72,221,62,216,73,221,60,0,42,0,189,38,190,38,62,216,78,221,60,216,192,223,60,216,208,223,60,216,200,223,60,216,201,223,60,216,190,223,62,216,79,221,60,216,179,223,60,216,207,223,60,216,209,223,60,216,210,223,62,216,77,221,60,216,211,223,60,216,248,223,62,216,74,221,62,216,75,221,62,216,69,221,243,38,248,38,60,216,163,223,62,216,63,221,60,216,189,223,60,216,191,223,61,216,247,222,62,216,76,221,60,0,42,0,60,216,175,223,62,216,128,222,62,216,129,222,61,216,43,221,60,216,177,223,61,216,46,221,62,216,132,222,60,216,174,223,61,216,121,221,60,216,176,223,60,216,178,223,62,216,233,221,62,216,248,221,62,216,133,222,62,216,169,222,62,216,134,222,96,38,101,38,102,38,99,38,95,38,60,216,207,220,60,216,4,220,60,216,180,223,60,0,42,0,60,216,173,223,61,216,188,221,60,216,168,223,62,216,245,221,62,216,161,222,62,216,246,221,62,216,162,222,60,0,42,0,61,216,83,220,61,216,118,221,62,216,125,221,62,216,124,221,62,216,186,221,61,216,84,220,61,216,85,220,61,216,86,220,62,216,227,221,62,216,228,221,62,216,229,221,62,216,230,221,61,216,87,220,61,216,88,220,62,216,123,221,62,216,113,222,62,216,114,222,62,216,115,222,61,216,89,220,61,216,90,220,62,216,173,222,61,216,91,220,61,216,92,220,61,216,93,220,61,216,205,222,60,216,146,223,62,216,116,222,61,216,94,220,61,216,95,220,62,216,126,221,62,216,127,221,61,216,96,220,61,216,97,220,62,216,112,222,61,216,98,220,62,216,174,222,61,216,81,220,61,216,82,220,60,216,169,223,60,216,147,223,62,216,226,221,62,216,150,222,209,38,61,216,255,220,61,216,132,220,61,216,141,220,61,216,142,220,60,0,42,0,61,216,7,221,61,216,8,221,61,216,9,221,61,216,10,221,61,216,226,220,61,216,227,220,61,216,239,220,61,216,20,221,61,216,21,221,60,0,42,0,60,216,188,223,60,216,181,223,60,216,182,223,60,216,153,223,60,216,154,223,60,216,155,223,60,216,164,223,60,216,167,223,61,216,251,220,60,0,42,0,60,216,183,223,62,216,151,222,60,216,184,223,60,216,185,223,60,216,186,223,60,216,187,223,62,216,149,222,62,216,65,221,62,216,152,222,62,216,135,222,62,216,136,222,60,0,42,0,61,216,241,220,61,216,242,220,14,38,61,216,222,220,61,216,223,220,61,216,224,220,60,0,42,0,61,216,11,221,62,216,171,222,61,216,12,221,61,216,187,220,61,216,165,221,61,216,168,221,40,35,61,216,177,221,61,216,178,221,61,216,189,220,61,216,190,220,61,216,191,220,61,216,192,220,62,216,238,221,60,0,42,0,60,216,165,223,60,216,158,223,61,216,253,220,60,216,172,223,61,216,250,220,61,216,247,220,61,216,248,220,61,216,249,220,61,216,252,220,61,216,13,221,61,216,14,221,61,216,111,221,61,216,161,220,61,216,38,221,60,216,238,223,62,216,148,222,60,0,42,0,61,216,212,220,61,216,213,220,61,216,214,220,61,216,215,220,61,216,216,220,61,216,217,220,61,216,218,220,61,216,211,220,61,216,210,220,61,216,195,220,61,216,220,220,61,216,196,220,61,216,240,220,61,216,222,221,61,216,209,220,61,216,22,221,60,216,247,223,60,0,42,0,61,216,176,220,62,216,153,222,61,216,180,220,61,216,181,220,61,216,182,220,61,216,183,220,61,216,184,220,61,216,179,220,62,216,254,221,61,216,185,220,60,0,42,0,9,39,61,216,231,220,61,216,232,220,61,216,233,220,61,216,228,220,61,216,229,220,61,216,230,220,61,216,235,220,61,216,234,220,61,216,236,220,61,216,237,220,61,216,238,220,61,216,243,221,60,0,42,0,15,39,18,39,61,216,139,221,61,216,138,221,61,216,140,221,61,216,141,221,61,216,221,220,60,0,42,0,61,216,188,220,61,216,193,220,61,216,194,220,61,216,194,221,61,216,197,220,61,216,198,220,61,216,210,221,61,216,211,221,61,216,199,220,61,216,200,220,61,216,201,220,61,216,202,220,61,216,203,220,61,216,204,220,61,216,205,220,61,216,206,220,61,216,135,221,61,216,207,220,61,216,208,220,2,39,61,216,195,221,61,216,196,221,61,216,209,221,60,0,42,0,61,216,18,221,61,216,19,221,61,216,15,221,61,216,16,221,61,216,17,221,61,216,221,221,60,0,42,0,61,216,40,221,62,216,147,222,207,38,146,38,61,216,224,222,61,216,225,221,148,38,61,216,163,220,62,216,131,222,60,216,249,223,61,216,225,222,62,216,154,222,61,216,39,221,62,216,155,222,61,216,41,221,153,38,61,216,220,221,150,38,62,216,175,221,61,216,23,221,211,38,62,216,157,222,62,216,240,221,62,216,242,221,62,216,156,222,60,0,42,0,151,38,62,216,234,221,62,216,235,221,62,216,236,221,61,216,44,221,61,216,45,221,61,216,225,220,60,0,42,0,61,216,137,220,62,216,120,222,61,216,138,220,62,216,121,222,62,216,124,222,62,216,122,222,62,216,123,222,60,0,42,0,61,216,170,222,61,216,215,222,62,216,158,222,62,216,159,222,61,216,207,222,61,216,203,222,62,216,145,222,61,216,189,222,62,216,160,222,61,216,191,222,61,216,193,222,62,216,164,222,62,216,146,222,62,216,244,221,62,216,247,221,62,216,249,221,62,216,250,221,62,216,251,221,62,216,163,222,62,216,252,221,62,216,231,222,62,216,165,222,62,216,253,221,62,216,239,221,61,216,210,222,60,0,42,0,61,216,172,222,176,38,62,216,166,222,177,38,62,216,255,221,62,216,172,222,61,216,255,221,62,216,167,222,62,216,170,222,60,0,42,0,60,216,231,223,61,216,174,222,61,216,176,222,127,38,61,216,185,222,61,216,186,222,61,216,187,222,61,216,188,222,61,216,190,222,61,216,194,222,61,216,195,222,61,216,196,222,61,216,197,222,60,0,42,0,160,38,61,216,184,222,212,38,61,216,171,222,61,216,179,222,61,216,173,222,61,216,175,222,61,216,177,222,61,216,183,222,61,216,245,220,61,216,30,221,34,38,35,38,60,0,42,0,6,43,151,33,161,39,152,33,7,43,153,33,5,43,150,33,149,33,148,33,169,33,170,33,52,41,53,41,61,216,3,221,61,216,4,221,61,216,25,221,61,216,26,221,61,216,27,221,61,216,28,221,61,216,29,221,60,0,42,0,61,216,208,222,155,38,61,216,73,221,33,39,56,38,47,38,29,39,38,38,42,38,46,38,61,216,78,221,61,216,47,221,62,216,175,222,60,0,42,0,72,38,73,38,74,38,75,38,76,38,77,38,78,38,79,38,80,38,81,38,82,38,83,38,206,38,60,0,42,0,61,216,0,221,61,216,1,221,61,216,2,221,182,37,233,35,237,35,239,35,192,37,234,35,238,35,61,216,60,221,235,35,61,216,61,221,236,35,248,35,249,35,250,35,207,35,60,216,166,223,61,216,5,221,61,216,6,221,61,216,246,220,61,216,220,222,61,216,243,220,61,216,244,220,60,0,42,0,64,38,66,38,167,38,60,0,42,0,22,39,149,39,150,39,151,39,61,216,240,223,126,38,60,0,42,0,60,32,73,32,83,39,84,39,85,39,87,39,48,48,60,0,42,0,61,216,177,220,61,216,178,220,60,0,42,0,149,38,123,38,156,38,61,216,49,221,61,216,219,220,61,216,48,221,85,43,5,39,17,38,20,39,76,39,78,39,176,39,191,39,61,48,51,39,52,39,71,39,169,0,174,0,34,33,60,0,32,0,39,0,35,0,227,32,39,0,32,0,61,0,32,0,39,0,35,0,15,254,227,32,39,0,60,0,32,0,39,0,42,0,227,32,39,0,32,0,61,0,32,0,39,0,42,0,15,254,227,32,39,0,60,0,32,0,48,0,227,32,32,0,61,0,32,0,48,0,15,254,227,32,60,0,32,0,49,0,227,32,32,0,61,0,32,0,49,0,15,254,227,32,60,0,32,0,50,0,227,32,32,0,61,0,32,0,50,0,15,254,227,32,60,0,32,0,51,0,227,32,32,0,61,0,32,0,51,0,15,254,227,32,60,0,32,0,52,0,227,32,32,0,61,0,32,0,52,0,15,254,227,32,60,0,32,0,53,0,227,32,32,0,61,0,32,0,53,0,15,254,227,32,60,0,32,0,54,0,227,32,32,0,61,0,32,0,54,0,15,254,227,32,60,0,32,0,55,0,227,32,32,0,61,0,32,0,55,0,15,254,227,32,60,0,32,0,56,0,227,32,32,0,61,0,32,0,56,0,15,254,227,32,60,0,32,0,57,0,227,32,32,0,61,0,32,0,57,0,15,254,227,32,60,0,42,0,61,216,31,221,60,0,42,0,61,216,32,221,61,216,33,221,61,216,34,221,61,216,35,221,61,216,36,221,60,216,112,221,60,216,142,221,60,216,113,221,60,216,145,221,60,216,146,221,60,216,147,221,57,33,60,216,148,221,194,36,60,216,149,221,60,216,150,221,60,216,126,221,60,216,151,221,60,216,127,221,60,216,152,221,60,216,153,221,60,216,154,221,60,216,1,222,60,216,2,222,60,216,55,222,60,216,54,222,60,216,47,222,60,216,80,222,60,216,57,222,60,216,26,222,60,216,50,222,60,216,81,222,60,216,56,222,60,216,52,222,60,216,51,222,151,50,153,50,60,216,58,222,60,216,53,222,60,0,42,0,61,216,52,221,61,216,224,223,61,216,225,223,61,216,226,223,61,216,53,221,61,216,227,223,61,216,228,223,171,38,170,38,61,216,229,223,61,216,231,223,61,216,232,223,61,216,233,223,61,216,230,223,61,216,234,223,61,216,235,223,27,43,28,43,252,37,251,37,254,37,253,37,170,37,171,37,61,216,54,221,61,216,55,221,61,216,56,221,61,216,57,221,61,216,58,221,61,216,59,221,61,216,160,220,61,216,24,221,61,216,51,221,61,216,50,221,60,0,42,0,60,216,193,223,61,216,169,222,60,216,140,223,60,216,244,223,60,216,243,223,60,0,32,0,60,216,243,223,13,32,60,216,8,223,32,0,61,0,32,0,60,216,243,223,15,254,13,32,60,216,8,223,60,0,32,0,60,216,243,223,13,32,167,38,32,0,61,0,32,0,60,216,243,223,15,254,13,32,167,38,60,0,32,0,60,216,244,223,13,32,32,38,60,0,42,0,60,216,230,221,60,216,231,221,60,216,232,221,60,216,233,221,60,216,234,221,60,216,235,221,60,216,236,221,60,216,237,221,60,216,238,221,60,216,239,221,60,216,240,221,60,216,241,221,60,216,242,221,60,216,243,221,60,216,244,221,60,216,245,221,60,216,246,221,60,216,247,221,60,216,248,221,60,216,249,221,60,216,250,221,60,216,251,221,60,216,252,221,60,216,253,221,60,216,254,221,60,216,255,221,60,0,32,0,60,216,244,223,64,219,103,220,64,219,98,220,64,219,101,220,64,219,110,220,64,219,103,220,64,219,127,220,60,0,32,0,60,216,244,223,64,219,103,220,64,219,98,220,64,219,115,220,64,219,99,220,64,219,116,220,64,219,127,220,60,0,32,0,60,216,244,223,64,219,103,220,64,219,98,220,64,219,119,220,64,219,108,220,64,219,115,220,64,219,127,220,38,0,32,0,62,216,209,221,32,0,60,0,60,0,32,0,61,216,113,220,38,0,32,0,61,216,104,220,32,0,60,0,60,0,32,0,62,216,212,221,32,0,60,0,60,0,62,216,212,221,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,251,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,252,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,253,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,254,223,13,32,66,38,32,0,60,0,60,0,62,216,212,221,60,216,255,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,251,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,252,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,253,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,254,223,13,32,66,38,32,0,60,0,60,0,61,216,113,220,60,216,255,223,13,32,66,38,38,0,32,0,61,216,105,220,32,0,60,0,60,0,32,0,62,216,212,221,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,62,216,212,221,60,216,255,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,251,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,252,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,253,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,254,223,13,32,64,38,32,0,60,0,60,0,32,0,61,216,113,220,60,216,255,223,13,32,64,38,0,0,240,223,200,153,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,61,0,39,0,1,0,39,0,61,0,39,0,2,0,39,0,61,0,39,0,3,0,39,0,61,0,39,0,4,0,39,0,61,0,39,0,5,0,39,0,61,0,39,0,6,0,39,0,61,0,39,0,7,0,39,0,61,0,39,0,8,0,39,0,61,0,39,0,14,0,39,0,61,0,39,0,15,0,39,0,61,0,39,0,16,0,39,0,61,0,39,0,17,0,39,0,61,0,39,0,18,0,39,0,61,0,39,0,19,0,39,0,61,0,39,0,20,0,39,0,61,0,39,0,21,0,39,0,61,0,39,0,22,0,39,0,61,0,39,0,23,0,39,0,61,0,39,0,24,0,39,0,61,0,39,0,25,0,39,0,61,0,39,0,26,0,39,0,61,0,39,0,27,0,39,0,61,0,39,0,28,0,39,0,61,0,39,0,29,0,39,0,61,0,39,0,30,0,39,0,61,0,39,0,31,0,39,0,61,0,39,0,127,0,39,0,61,0,39,0,128,0,39,0,61,0,39,0,129,0,39,0,61,0,39,0,130,0,39,0,61,0,39,0,131,0,39,0,61,0,39,0,132,0,39,0,61,0,39,0,134,0,39,0,61,0,39,0,135,0,39,0,61,0,39,0,136,0,39,0,61,0,39,0,137,0,39,0,61,0,39,0,138,0,39,0,61,0,39,0,139,0,39,0,61,0,39,0,140,0,39,0,61,0,39,0,141,0,39,0,61,0,39,0,142,0,39,0,61,0,39,0,143,0,39,0,61,0,39,0,144,0,39,0,61,0,39,0,145,0,39,0,61,0,39,0,146,0,39,0,61,0,39,0,147,0,39,0,61,0,39,0,148,0,39,0,61,0,39,0,149,0,39,0,61,0,39,0,150,0,39,0,61,0,39,0,151,0,39,0,61,0,39,0,152,0,39,0,61,0,39,0,153,0,39,0,61,0,39,0,154,0,39,0,61,0,39,0,155,0,39,0,61,0,39,0,156,0,39,0,61,0,39,0,157,0,39,0,61,0,39,0,158,0,39,0,61,0,39,0,159,0,39,0,61,0,39,0,173,0,39,0,61,0,79,3,61,0,136,4,61,0,137,4,61,0,145,5,61,0,146,5,61,0,147,5,61,0,148,5,61,0,149,5,61,0,150,5,61,0,151,5,61,0,152,5,61,0,153,5,61,0,154,5,61,0,155,5,61,0,156,5,61,0,157,5,61,0,158,5,61,0,159,5,61,0,160,5,61,0,161,5,61,0,162,5,61,0,163,5,61,0,164,5,61,0,165,5,61,0,166,5,61,0,167,5,61,0,168,5,61,0,169,5,61,0,170,5,61,0,171,5,61,0,172,5,61,0,173,5,61,0,174,5,61,0,175,5,61,0,189,5,61,0,196,5,61,0,197,5,61,0,39,0,0,6,39,0,61,0,39,0,1,6,39,0,61,0,39,0,2,6,39,0,61,0,39,0,3,6,39,0,61,0,39,0,4,6,39,0,61,0,39,0,5,6,39,0,61,0,16,6,61,0,17,6,61,0,18,6,61,0,19,6,61,0,20,6,61,0,21,6,61,0,22,6,61,0,23,6,61,0,24,6,61,0,25,6,61,0,26,6,61,0,39,0,28,6,39,0,61,0,14,32,64,6,14,32,61,0,214,6,61,0,215,6,61,0,216,6,61,0,217,6,61,0,218,6,61,0,219,6,61,0,220,6,61,0,39,0,221,6,39,0,61,0,223,6,61,0,224,6,61,0,225,6,61,0,226,6,61,0,227,6,61,0,228,6,61,0,231,6,61,0,232,6,61,0,234,6,61,0,235,6,61,0,236,6,61,0,237,6,61,0,39,0,15,7,39,0,61,0,64,7,61,0,67,7,61,0,68,7,61,0,71,7,61,0,72,7,61,0,73,7,61,0,74,7,61,0,14,32,250,7,14,32,61,0,39,0,144,8,39,0,61,0,39,0,145,8,39,0,61,0,152,8,61,0,153,8,61,0,154,8,61,0,155,8,61,0,156,8,61,0,157,8,61,0,202,8,61,0,203,8,61,0,204,8,61,0,205,8,61,0,206,8,61,0,207,8,61,0,208,8,61,0,209,8,61,0,210,8,61,0,211,8,61,0,212,8,61,0,213,8,61,0,214,8,61,0,215,8,61,0,216,8,61,0,217,8,61,0,218,8,61,0,219,8,61,0,220,8,61,0,221,8,61,0,222,8,61,0,223,8,61,0,224,8,61,0,225,8,61,0,39,0,226,8,39,0,61,0,234,8,61,0,235,8,61,0,236,8,61,0,237,8,61,0,238,8,61,0,239,8,61,0,243,8,61,0,81,9,61,0,82,9,61,0,24,15,61,0,25,15,61,0,53,15,61,0,55,15,61,0,62,15,61,0,63,15,61,0,134,15,61,0,135,15,61,0,198,15,61,0,180,23,61,0,181,23,61,0,211,23,61,0,10,24,61,0,11,24,61,0,12,24,61,0,13,24,61,0,39,0,14,24,39,0,61,0,15,24,61,0,127,26,61,0,107,27,61,0,108,27,61,0,109,27,61,0,110,27,61,0,111,27,61,0,112,27,61,0,113,27,61,0,114,27,61,0,115,27,61,0,208,28,61,0,209,28,61,0,210,28,61,0,211,28,61,0,212,28,61,0,213,28,61,0,214,28,61,0,215,28,61,0,216,28,61,0,217,28,61,0,218,28,61,0,219,28,61,0,220,28,61,0,221,28,61,0,222,28,61,0,223,28,61,0,224,28,61,0,225,28,61,0,226,28,61,0,227,28,61,0,228,28,61,0,229,28,61,0,230,28,61,0,231,28,61,0,232,28,61,0,244,28,61,0,247,28,61,0,248,28,61,0,249,28,61,0,39,0,11,32,39,0,61,0,39,0,12,32,39,0,61,0,39,0,13,32,39,0,61,0,39,0,14,32,39,0,61,0,39,0,15,32,39,0,61,0,39,0,42,32,39,0,61,0,39,0,43,32,39,0,61,0,39,0,44,32,39,0,61,0,39,0,45,32,39,0,61,0,39,0,46,32,39,0,61,0,39,0,96,32,39,0,61,0,39,0,97,32,39,0,61,0,39,0,98,32,39,0,61,0,39,0,99,32,39,0,61,0,39,0,100,32,39,0,61,0,39,0,102,32,39,0,61,0,39,0,103,32,39,0,61,0,39,0,104,32,39,0,61,0,39,0,105,32,39,0,61,0,39,0,106,32,39,0,61,0,39,0,107,32,39,0,61,0,39,0,108,32,39,0,61,0,39,0,109,32,39,0,61,0,39,0,110,32,39,0,61,0,39,0,111,32,39,0,61,0,127,45,61,0,112,166,61,0,113,166,61,0,114,166,61,0,224,168,61,0,225,168,61,0,226,168,61,0,227,168,61,0,228,168,61,0,229,168,61,0,230,168,61,0,231,168,61,0,232,168,61,0,233,168,61,0,234,168,61,0,235,168,61,0,236,168,61,0,237,168,61,0,238,168,61,0,239,168,61,0,240,168,61,0,241,168,61,0,0,254,61,0,1,254,61,0,2,254,61,0,3,254,61,0,4,254,61,0,5,254,61,0,6,254,61,0,7,254,61,0,8,254,61,0,9,254,61,0,10,254,61,0,11,254,61,0,12,254,61,0,13,254,61,0,14,254,61,0,15,254,61,0,33,254,61,0,35,254,61,0,36,254,61,0,37,254,61,0,38,254,61,0,40,254,61,0,42,254,61,0,43,254,61,0,44,254,61,0,45,254,61,0,47,254,61,0,14,32,115,254,14,32,61,0,39,0,255,254,39,0,61,0,39,0,249,255,39,0,61,0,39,0,250,255,39,0,61,0,39,0,251,255,39,0,61,0,0,216,224,222,61,0,3,216,253,222,61,0,3,216,254,222,61,0,3,216,255,222,61,0,39,0,4,216,189,220,39,0,61,0,39,0,4,216,205,220,39,0,61,0,4,216,102,223,61,0,4,216,103,223,61,0,4,216,104,223,61,0,4,216,105,223,61,0,4,216,106,223,61,0,4,216,107,223,61,0,4,216,108,223,61,0,4,216,112,223,61,0,4,216,113,223,61,0,4,216,114,223,61,0,4,216,115,223,61,0,4,216,116,223,61,0,39,0,13,216,48,220,39,0,61,0,39,0,13,216,49,220,39,0,61,0,39,0,13,216,50,220,39,0,61,0,39,0,13,216,51,220,39,0,61,0,39,0,13,216,52,220,39,0,61,0,39,0,13,216,53,220,39,0,61,0,39,0,13,216,54,220,39,0,61,0,39,0,13,216,55,220,39,0,61,0,39,0,13,216,56,220,39,0,61,0,39,0,13,216,57,220,39,0,61,0,39,0,13,216,58,220,39,0,61,0,39,0,13,216,59,220,39,0,61,0,39,0,13,216,60,220,39,0,61,0,39,0,13,216,61,220,39,0,61,0,39,0,13,216,62,220,39,0,61,0,39,0,13,216,63,220,39,0,61,0,13,216,64,220,61,0,13,216,71,220,61,0,13,216,72,220,61,0,13,216,73,220,61,0,13,216,74,220,61,0,13,216,75,220,61,0,13,216,76,220,61,0,13,216,77,220,61,0,13,216,78,220,61,0,13,216,79,220,61,0,13,216,80,220,61,0,13,216,81,220,61,0,13,216,82,220,61,0,13,216,83,220,61,0,13,216,84,220,61,0,13,216,85,220,61,0,27,216,228,223,61,0,39,0,47,216,160,220,39,0,61,0,39,0,47,216,161,220,39,0,61,0,39,0,47,216,162,220,39,0,61,0,39,0,47,216,163,220,39,0,61,0,51,216,0,223,61,0,51,216,1,223,61,0,51,216,2,223,61,0,51,216,3,223,61,0,51,216,4,223,61,0,51,216,5,223,61,0,51,216,6,223,61,0,51,216,7,223,61,0,51,216,8,223,61,0,51,216,9,223,61,0,51,216,10,223,61,0,51,216,11,223,61,0,51,216,12,223,61,0,51,216,13,223,61,0,51,216,14,223,61,0,51,216,15,223,61,0,51,216,16,223,61,0,51,216,17,223,61,0,51,216,18,223,61,0,51,216,19,223,61,0,51,216,20,223,61,0,51,216,21,223,61,0,51,216,22,223,61,0,51,216,23,223,61,0,51,216,24,223,61,0,51,216,25,223,61,0,51,216,26,223,61,0,51,216,27,223,61,0,51,216,28,223,61,0,51,216,29,223,61,0,51,216,30,223,61,0,51,216,31,223,61,0,51,216,32,223,61,0,51,216,33,223,61,0,51,216,34,223,61,0,51,216,35,223,61,0,51,216,36,223,61,0,51,216,37,223,61,0,51,216,38,223,61,0,51,216,39,223,61,0,51,216,40,223,61,0,51,216,41,223,61,0,51,216,42,223,61,0,51,216,43,223,61,0,51,216,44,223,61,0,51,216,45,223,61,0,51,216,48,223,61,0,51,216,49,223,61,0,51,216,50,223,61,0,51,216,51,223,61,0,51,216,52,223,61,0,51,216,53,223,61,0,51,216,54,223,61,0,51,216,55,223,61,0,51,216,56,223,61,0,51,216,57,223,61,0,51,216,58,223,61,0,51,216,59,223,61,0,51,216,60,223,61,0,51,216,61,223,61,0,51,216,62,223,61,0,51,216,63,223,61,0,51,216,64,223,61,0,51,216,65,223,61,0,51,216,66,223,61,0,51,216,67,223,61,0,51,216,68,223,61,0,51,216,69,223,61,0,51,216,70,223,61,0,52,216,101,221,61,0,52,216,102,221,61,0,52,216,103,221,61,0,52,216,104,221,61,0,52,216,105,221,61,0,52,216,109,221,61,0,52,216,110,221,61,0,52,216,111,221,61,0,52,216,112,221,61,0,52,216,113,221,61,0,52,216,114,221,61,0,39,0,52,216,115,221,39,0,61,0,39,0,52,216,116,221,39,0,61,0,39,0,52,216,117,221,39,0,61,0,39,0,52,216,118,221,39,0,61,0,39,0,52,216,119,221,39,0,61,0,39,0,52,216,120,221,39,0,61,0,39,0,52,216,121,221,39,0,61,0,39,0,52,216,122,221,39,0,61,0,52,216,123,221,61,0,52,216,124,221,61,0,52,216,125,221,61,0,52,216,126,221,61,0,52,216,127,221,61,0,52,216,128,221,61,0,52,216,129,221,61,0,52,216,130,221,61,0,52,216,133,221,61,0,52,216,134,221,61,0,52,216,135,221,61,0,52,216,136,221,61,0,52,216,137,221,61,0,52,216,138,221,61,0,52,216,139,221,61,0,52,216,170,221,61,0,52,216,171,221,61,0,52,216,172,221,61,0,52,216,173,221,61,0,52,216,66,222,61,0,52,216,67,222,61,0,52,216,68,222,61,0,54,216,0,222,61,0,54,216,1,222,61,0,54,216,2,222,61,0,54,216,3,222,61,0,54,216,4,222,61,0,54,216,5,222,61,0,54,216,6,222,61,0,54,216,7,222,61,0,54,216,8,222,61,0,54,216,9,222,61,0,54,216,10,222,61,0,54,216,11,222,61,0,54,216,12,222,61,0,54,216,13,222,61,0,54,216,14,222,61,0,54,216,15,222,61,0,54,216,16,222,61,0,54,216,17,222,61,0,54,216,18,222,61,0,54,216,19,222,61,0,54,216,20,222,61,0,54,216,21,222,61,0,54,216,22,222,61,0,54,216,23,222,61,0,54,216,24,222,61,0,54,216,25,222,61,0,54,216,26,222,61,0,54,216,27,222,61,0,54,216,28,222,61,0,54,216,29,222,61,0,54,216,30,222,61,0,54,216,31,222,61,0,54,216,32,222,61,0,54,216,33,222,61,0,54,216,34,222,61,0,54,216,35,222,61,0,54,216,36,222,61,0,54,216,37,222,61,0,54,216,38,222,61,0,54,216,39,222,61,0,54,216,40,222,61,0,54,216,41,222,61,0,54,216,42,222,61,0,54,216,43,222,61,0,54,216,44,222,61,0,54,216,45,222,61,0,54,216,46,222,61,0,54,216,47,222,61,0,54,216,48,222,61,0,54,216,49,222,61,0,54,216,50,222,61,0,54,216,51,222,61,0,54,216,52,222,61,0,54,216,53,222,61,0,54,216,54,222,61,0,54,216,59,222,61,0,54,216,60,222,61,0,54,216,61,222,61,0,54,216,62,222,61,0,54,216,63,222,61,0,54,216,64,222,61,0,54,216,65,222,61,0,54,216,66,222,61,0,54,216,67,222,61,0,54,216,68,222,61,0,54,216,69,222,61,0,54,216,70,222,61,0,54,216,71,222,61,0,54,216,72,222,61,0,54,216,73,222,61,0,54,216,74,222,61,0,54,216,75,222,61,0,54,216,76,222,61,0,54,216,77,222,61,0,54,216,78,222,61,0,54,216,79,222,61,0,54,216,80,222,61,0,54,216,81,222,61,0,54,216,82,222,61,0,54,216,83,222,61,0,54,216,84,222,61,0,54,216,85,222,61,0,54,216,86,222,61,0,54,216,87,222,61,0,54,216,88,222,61,0,54,216,89,222,61,0,54,216,90,222,61,0,54,216,91,222,61,0,54,216,92,222,61,0,54,216,93,222,61,0,54,216,94,222,61,0,54,216,95,222,61,0,54,216,96,222,61,0,54,216,97,222,61,0,54,216,98,222,61,0,54,216,99,222,61,0,54,216,100,222,61,0,54,216,101,222,61,0,54,216,102,222,61,0,54,216,103,222,61,0,54,216,104,222,61,0,54,216,105,222,61,0,54,216,106,222,61,0,54,216,107,222,61,0,54,216,108,222,61,0,54,216,117,222,61,0,54,216,132,222,61,0,54,216,155,222,61,0,54,216,156,222,61,0,54,216,157,222,61,0,54,216,158,222,61,0,54,216,159,222,61,0,54,216,161,222,61,0,54,216,162,222,61,0,54,216,163,222,61,0,54,216,164,222,61,0,54,216,165,222,61,0,54,216,166,222,61,0,54,216,167,222,61,0,54,216,168,222,61,0,54,216,169,222,61,0,54,216,170,222,61,0,54,216,171,222,61,0,54,216,172,222,61,0,54,216,173,222,61,0,54,216,174,222,61,0,54,216,175,222,61,0,58,216,208,220,61,0,58,216,209,220,61,0,58,216,210,220,61,0,58,216,211,220,61,0,58,216,212,220,61,0,58,216,213,220,61,0,58,216,214,220,61,0,39,0,64,219,1,220,39,0,61,0,39,0,64,219,32,220,39,0,61,0,39,0,64,219,33,220,39,0,61,0,39,0,64,219,34,220,39,0,61,0,39,0,64,219,35,220,39,0,61,0,39,0,64,219,36,220,39,0,61,0,39,0,64,219,37,220,39,0,61,0,39,0,64,219,38,220,39,0,61,0,39,0,64,219,39,220,39,0,61,0,39,0,64,219,40,220,39,0,61,0,39,0,64,219,41,220,39,0,61,0,39,0,64,219,42,220,39,0,61,0,39,0,64,219,43,220,39,0,61,0,39,0,64,219,44,220,39,0,61,0,39,0,64,219,45,220,39,0,61,0,39,0,64,219,46,220,39,0,61,0,39,0,64,219,47,220,39,0,61,0,39,0,64,219,48,220,39,0,61,0,39,0,64,219,49,220,39,0,61,0,39,0,64,219,50,220,39,0,61,0,39,0,64,219,51,220,39,0,61,0,39,0,64,219,52,220,39,0,61,0,39,0,64,219,53,220,39,0,61,0,39,0,64,219,54,220,39,0,61,0,39,0,64,219,55,220,39,0,61,0,39,0,64,219,56,220,39,0,61,0,39,0,64,219,57,220,39,0,61,0,39,0,64,219,58,220,39,0,61,0,39,0,64,219,59,220,39,0,61,0,39,0,64,219,60,220,39,0,61,0,39,0,64,219,61,220,39,0,61,0,39,0,64,219,62,220,39,0,61,0,39,0,64,219,63,220,39,0,61,0,39,0,64,219,64,220,39,0,61,0,39,0,64,219,65,220,39,0,61,0,39,0,64,219,66,220,39,0,61,0,39,0,64,219,67,220,39,0,61,0,39,0,64,219,68,220,39,0,61,0,39,0,64,219,69,220,39,0,61,0,39,0,64,219,70,220,39,0,61,0,39,0,64,219,71,220,39,0,61,0,39,0,64,219,72,220,39,0,61,0,39,0,64,219,73,220,39,0,61,0,39,0,64,219,74,220,39,0,61,0,39,0,64,219,75,220,39,0,61,0,39,0,64,219,76,220,39,0,61,0,39,0,64,219,77,220,39,0,61,0,39,0,64,219,78,220,39,0,61,0,39,0,64,219,79,220,39,0,61,0,39,0,64,219,80,220,39,0,61,0,39,0,64,219,81,220,39,0,61,0,39,0,64,219,82,220,39,0,61,0,39,0,64,219,83,220,39,0,61,0,39,0,64,219,84,220,39,0,61,0,39,0,64,219,85,220,39,0,61,0,39,0,64,219,86,220,39,0,61,0,39,0,64,219,87,220,39,0,61,0,39,0,64,219,88,220,39,0,61,0,39,0,64,219,89,220,39,0,61,0,39,0,64,219,90,220,39,0,61,0,39,0,64,219,91,220,39,0,61,0,39,0,64,219,92,220,39,0,61,0,39,0,64,219,93,220,39,0,61,0,39,0,64,219,94,220,39,0,61,0,39,0,64,219,95,220,39,0,61,0,39,0,64,219,96,220,39,0,61,0,39,0,64,219,97,220,39,0,61,0,39,0,64,219,98,220,39,0,61,0,39,0,64,219,99,220,39,0,61,0,39,0,64,219,100,220,39,0,61,0,39,0,64,219,101,220,39,0,61,0,39,0,64,219,102,220,39,0,61,0,39,0,64,219,103,220,39,0,61,0,39,0,64,219,104,220,39,0,61,0,39,0,64,219,105,220,39,0,61,0,39,0,64,219,106,220,39,0,61,0,39,0,64,219,107,220,39,0,61,0,39,0,64,219,108,220,39,0,61,0,39,0,64,219,109,220,39,0,61,0,39,0,64,219,110,220,39,0,61,0,39,0,64,219,111,220,39,0,61,0,39,0,64,219,112,220,39,0,61,0,39,0,64,219,113,220,39,0,61,0,39,0,64,219,114,220,39,0,61,0,39,0,64,219,115,220,39,0,61,0,39,0,64,219,116,220,39,0,61,0,39,0,64,219,117,220,39,0,61,0,39,0,64,219,118,220,39,0,61,0,39,0,64,219,119,220,39,0,61,0,39,0,64,219,120,220,39,0,61,0,39,0,64,219,121,220,39,0,61,0,39,0,64,219,122,220,39,0,61,0,39,0,64,219,123,220,39,0,61,0,39,0,64,219,124,220,39,0,61,0,39,0,64,219,125,220,39,0,61,0,39,0,64,219,126,220,39,0,61,0,39,0,64,219,127,220,39,0,61,0,64,219,0,221,61,0,64,219,1,221,61,0,64,219,2,221,61,0,64,219,3,221,61,0,64,219,4,221,61,0,64,219,5,221,61,0,64,219,6,221,61,0,64,219,7,221,61,0,64,219,8,221,61,0,64,219,9,221,61,0,64,219,10,221,61,0,64,219,11,221,61,0,64,219,12,221,61,0,64,219,13,221,61,0,64,219,14,221,61,0,64,219,15,221,61,0,64,219,16,221,61,0,64,219,17,221,61,0,64,219,18,221,61,0,64,219,19,221,61,0,64,219,20,221,61,0,64,219,21,221,61,0,64,219,22,221,61,0,64,219,23,221,61,0,64,219,24,221,61,0,64,219,25,221,61,0,64,219,26,221,61,0,64,219,27,221,61,0,64,219,28,221,61,0,64,219,29,221,61,0,64,219,30,221,61,0,64,219,31,221,61,0,64,219,32,221,61,0,64,219,33,221,61,0,64,219,34,221,61,0,64,219,35,221,61,0,64,219,36,221,61,0,64,219,37,221,61,0,64,219,38,221,61,0,64,219,39,221,61,0,64,219,40,221,61,0,64,219,41,221,61,0,64,219,42,221,61,0,64,219,43,221,61,0,64,219,44,221,61,0,64,219,45,221,61,0,64,219,46,221,61,0,64,219,47,221,61,0,64,219,48,221,61,0,64,219,49,221,61,0,64,219,50,221,61,0,64,219,51,221,61,0,64,219,52,221,61,0,64,219,53,221,61,0,64,219,54,221,61,0,64,219,55,221,61,0,64,219,56,221,61,0,64,219,57,221,61,0,64,219,58,221,61,0,64,219,59,221,61,0,64,219,60,221,61,0,64,219,61,221,61,0,64,219,62,221,61,0,64,219,63,221,61,0,64,219,64,221,61,0,64,219,65,221,61,0,64,219,66,221,61,0,64,219,67,221,61,0,64,219,68,221,61,0,64,219,69,221,61,0,64,219,70,221,61,0,64,219,71,221,61,0,64,219,72,221,61,0,64,219,73,221,61,0,64,219,74,221,61,0,64,219,75,221,61,0,64,219,76,221,61,0,64,219,77,221,61,0,64,219,78,221,61,0,64,219,79,221,61,0,64,219,80,221,61,0,64,219,81,221,61,0,64,219,82,221,61,0,64,219,83,221,61,0,64,219,84,221,61,0,64,219,85,221,61,0,64,219,86,221,61,0,64,219,87,221,61,0,64,219,88,221,61,0,64,219,89,221,61,0,64,219,90,221,61,0,64,219,91,221,61,0,64,219,92,221,61,0,64,219,93,221,61,0,64,219,94,221,61,0,64,219,95,221,61,0,64,219,96,221,61,0,64,219,97,221,61,0,64,219,98,221,61,0,64,219,99,221,61,0,64,219,100,221,61,0,64,219,101,221,61,0,64,219,102,221,61,0,64,219,103,221,61,0,64,219,104,221,61,0,64,219,105,221,61,0,64,219,106,221,61,0,64,219,107,221,61,0,64,219,108,221,61,0,64,219,109,221,61,0,64,219,110,221,61,0,64,219,111,221,61,0,64,219,112,221,61,0,64,219,113,221,61,0,64,219,114,221,61,0,64,219,115,221,61,0,64,219,116,221,61,0,64,219,117,221,61,0,64,219,118,221,61,0,64,219,119,221,61,0,64,219,120,221,61,0,64,219,121,221,61,0,64,219,122,221,61,0,64,219,123,221,61,0,64,219,124,221,61,0,64,219,125,221,61,0,64,219,126,221,61,0,64,219,127,221,61,0,64,219,128,221,61,0,64,219,129,221,61,0,64,219,130,221,61,0,64,219,131,221,61,0,64,219,132,221,61,0,64,219,133,221,61,0,64,219,134,221,61,0,64,219,135,221,61,0,64,219,136,221,61,0,64,219,137,221,61,0,64,219,138,221,61,0,64,219,139,221,61,0,64,219,140,221,61,0,64,219,141,221,61,0,64,219,142,221,61,0,64,219,143,221,61,0,64,219,144,221,61,0,64,219,145,221,61,0,64,219,146,221,61,0,64,219,147,221,61,0,64,219,148,221,61,0,64,219,149,221,61,0,64,219,150,221,61,0,64,219,151,221,61,0,64,219,152,221,61,0,64,219,153,221,61,0,64,219,154,221,61,0,64,219,155,221,61,0,64,219,156,221,61,0,64,219,157,221,61,0,64,219,158,221,61,0,64,219,159,221,61,0,64,219,160,221,61,0,64,219,161,221,61,0,64,219,162,221,61,0,64,219,163,221,61,0,64,219,164,221,61,0,64,219,165,221,61,0,64,219,166,221,61,0,64,219,167,221,61,0,64,219,168,221,61,0,64,219,169,221,61,0,64,219,170,221,61,0,64,219,171,221,61,0,64,219,172,221,61,0,64,219,173,221,61,0,64,219,174,221,61,0,64,219,175,221,61,0,64,219,176,221,61,0,64,219,177,221,61,0,64,219,178,221,61,0,64,219,179,221,61,0,64,219,180,221,61,0,64,219,181,221,61,0,64,219,182,221,61,0,64,219,183,221,61,0,64,219,184,221,61,0,64,219,185,221,61,0,64,219,186,221,61,0,64,219,187,221,61,0,64,219,188,221,61,0,64,219,189,221,61,0,64,219,190,221,61,0,64,219,191,221,61,0,64,219,192,221,61,0,64,219,193,221,61,0,64,219,194,221,61,0,64,219,195,221,61,0,64,219,196,221,61,0,64,219,197,221,61,0,64,219,198,221,61,0,64,219,199,221,61,0,64,219,200,221,61,0,64,219,201,221,61,0,64,219,202,221,61,0,64,219,203,221,61,0,64,219,204,221,61,0,64,219,205,221,61,0,64,219,206,221,61,0,64,219,207,221,61,0,64,219,208,221,61,0,64,219,209,221,61,0,64,219,210,221,61,0,64,219,211,221,61,0,64,219,212,221,61,0,64,219,213,221,61,0,64,219,214,221,61,0,64,219,215,221,61,0,64,219,216,221,61,0,64,219,217,221,61,0,64,219,218,221,61,0,64,219,219,221,61,0,64,219,220,221,61,0,64,219,221,221,61,0,64,219,222,221,61,0,64,219,223,221,61,0,64,219,224,221,61,0,64,219,225,221,61,0,64,219,226,221,61,0,64,219,227,221,61,0,64,219,228,221,61,0,64,219,229,221,61,0,64,219,230,221,61,0,64,219,231,221,61,0,64,219,232,221,61,0,64,219,233,221,61,0,64,219,234,221,61,0,64,219,235,221,61,0,64,219,236,221,61,0,64,219,237,221,61,0,64,219,238,221,61,0,64,219,239,221,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,50,3,60,0,60,0,19,3,61,0,134,4,61,0,241,44,60,0,60,0,20,3,61,0,133,4,61,0,240,44,60,0,60,0,1,3,61,0,84,9,60,0,60,0,0,3,61,0,83,9,60,0,60,0,6,3,60,0,60,0,2,3,60,0,60,0,12,3,60,0,60,0,10,3,60,0,60,0,66,3,60,0,60,0,8,3,60,0,60,0,11,3,60,0,60,0,3,3,60,0,60,0,7,3,60,0,60,0,56,3,60,0,60,0,39,3,60,0,60,0,40,3,60,0,60,0,4,3,60,0,60,0,13,3,61,0,14,3,61,0,18,3,61,0,21,3,61,0,26,3,61,0,61,3,61,0,62,3,61,0,63,3,61,0,70,3,61,0,74,3,61,0,75,3,61,0,76,3,61,0,80,3,61,0,81,3,61,0,82,3,61,0,87,3,61,0,91,3,61,0,93,3,61,0,94,3,61,0,132,4,61,0,135,4,61,0,65,7,61,0,69,7,61,0,85,11,61,0,203,23,61,0,204,23,61,0,205,23,61,0,206,23,61,0,207,23,61,0,208,23,61,0,209,23,61,0,221,23,61,0,176,26,61,0,177,26,61,0,178,26,61,0,179,26,61,0,180,26,61,0,187,26,61,0,188,26,61,0,193,26,61,0,194,26,61,0,197,26,61,0,198,26,61,0,199,26,61,0,200,26,61,0,201,26,61,0,203,26,61,0,192,29,61,0,193,29,61,0,195,29,61,0,196,29,61,0,197,29,61,0,198,29,61,0,199,29,61,0,200,29,61,0,201,29,61,0,203,29,61,0,204,29,61,0,205,29,61,0,206,29,61,0,209,29,61,0,245,29,61,0,246,29,61,0,247,29,61,0,248,29,61,0,251,29,61,0,254,29,61,0,240,32,61,0,239,44,61,0,124,166,61,0,125,166,61,0,2,216,229,222,61,0,3,216,36,221,61,0,3,216,37,221,61,0,3,216,38,221,61,0,3,216,39,221,61,0,3,216,72,223,61,0,3,216,73,223,61,0,3,216,74,223,61,0,3,216,76,223,61,0,3,216,130,223,61,0,3,216,132,223,61,0,47,216,157,220,61,0,56,216,174,222,60,0,60,0,22,3,61,0,23,3,61,0,24,3,61,0,25,3,61,0,28,3,61,0,29,3,61,0,30,3,61,0,31,3,61,0,32,3,61,0,41,3,61,0,42,3,61,0,43,3,61,0,44,3,61,0,47,3,61,0,51,3,61,0,58,3,61,0,59,3,61,0,60,3,61,0,71,3,61,0,72,3,61,0,73,3,61,0,77,3,61,0,78,3,61,0,83,3,61,0,84,3,61,0,85,3,61,0,86,3,61,0,89,3,61,0,90,3,61,0,92,3,61,0,95,3,61,0,98,3,61,0,66,7,61,0,70,7,61,0,253,7,61,0,89,8,61,0,90,8,61,0,91,8,61,0,181,26,61,0,182,26,61,0,183,26,61,0,184,26,61,0,185,26,61,0,186,26,61,0,189,26,61,0,195,26,61,0,196,26,61,0,202,26,61,0,194,29,61,0,207,29,61,0,208,29,61,0,249,29,61,0,250,29,61,0,252,29,61,0,253,29,61,0,255,29,61,0,236,32,61,0,237,32,61,0,238,32,61,0,239,32,61,0,39,254,61,0,0,216,253,221,61,0,2,216,13,222,61,0,2,216,230,222,61,0,3,216,70,223,61,0,3,216,71,223,61,0,3,216,75,223,61,0,3,216,77,223,61,0,3,216,78,223,61,0,3,216,79,223,61,0,3,216,80,223,61,0,3,216,131,223,61,0,3,216,133,223,60,0,60,0,54,3,61,0,55,3,61,0,216,32,61,0,217,32,61,0,218,32,61,0,229,32,61,0,234,32,61,0,235,32,61,0,47,216,158,220,60,0,60,0,190,26,61,0,221,32,61,0,222,32,61,0,223,32,61,0,224,32,61,0,226,32,61,0,227,32,61,0,228,32,60,0,60,0,153,48,60,0,60,0,60,0,158,255,60,0,60,0,154,48,60,0,60,0,60,0,159,255,60,0,60,0,53,3,60,0,60,0,5,3,60,0,60,0,9,3,60,0,60,0,15,3,60,0,60,0,16,3,60,0,60,0,17,3,60,0,60,0,27,3,60,0,60,0,33,3,60,0,60,0,34,3,60,0,60,0,35,3,60,0,60,0,36,3,60,0,60,0,37,3,60,0,60,0,38,3,60,0,60,0,45,3,60,0,60,0,46,3,60,0,60,0,48,3,60,0,60,0,49,3,60,0,60,0,52,3,60,0,60,0,57,3,60,0,60,0,69,3,60,0,60,0,88,3,60,0,60,0,96,3,61,0,34,254,61,0,41,254,60,0,60,0,97,3,61,0,32,254,60,0,60,0,131,4,61,0,46,254,60,0,60,0,111,166,60,0,60,0,176,5,60,0,60,0,177,5,60,0,60,0,178,5,60,0,60,0,179,5,60,0,60,0,180,5,60,0,60,0,181,5,60,0,60,0,182,5,60,0,60,0,183,5,60,0,60,0,184,5,61,0,199,5,60,0,60,0,185,5,61,0,186,5,60,0,60,0,187,5,60,0,60,0,194,5,60,0,60,0,193,5,60,0,60,0,188,5,60,0,60,0,191,5,60,0,60,0,30,251,60,0,60,0,28,8,61,0,29,8,60,0,60,0,30,8,61,0,31,8,61,0,32,8,60,0,60,0,33,8,61,0,34,8,61,0,35,8,60,0,60,0,14,32,36,8,14,32,61,0,37,8,60,0,60,0,38,8,61,0,39,8,60,0,60,0,14,32,40,8,14,32,61,0,41,8,61,0,42,8,60,0,60,0,43,8,60,0,60,0,44,8,60,0,60,0,24,8,60,0,60,0,25,8,60,0,60,0,45,8,60,0,60,0,75,6,60,0,60,0,60,0,14,32,113,254,14,32,60,0,60,0,60,0,14,32,112,254,14,32,60,0,60,0,240,8,60,0,60,0,231,8,60,0,60,0,76,6,60,0,60,0,60,0,14,32,114,254,14,32,60,0,60,0,60,0,14,32,94,252,14,32,47,0,4,216,55,222,60,0,60,0,241,8,60,0,60,0,232,8,60,0,60,0,77,6,60,0,60,0,60,0,14,32,116,254,14,32,60,0,60,0,60,0,14,32,95,252,14,32,47,0,4,216,55,222,60,0,60,0,242,8,60,0,60,0,233,8,60,0,60,0,78,6,60,0,60,0,60,0,14,32,119,254,14,32,60,0,60,0,60,0,14,32,242,252,14,32,47,0,4,216,55,222,60,0,60,0,60,0,14,32,118,254,14,32,60,0,60,0,60,0,14,32,96,252,14,32,47,0,4,216,55,222,60,0,60,0,228,8,60,0,60,0,244,8,60,0,60,0,245,8,60,0,60,0,79,6,60,0,60,0,60,0,14,32,121,254,14,32,60,0,60,0,60,0,14,32,243,252,14,32,47,0,4,216,55,222,60,0,60,0,60,0,14,32,120,254,14,32,60,0,60,0,60,0,14,32,97,252,14,32,47,0,4,216,55,222,60,0,60,0,229,8,60,0,60,0,254,8,60,0,60,0,80,6,60,0,60,0,60,0,14,32,123,254,14,32,60,0,60,0,60,0,14,32,244,252,14,32,47,0,4,216,55,222,60,0,60,0,60,0,14,32,122,254,14,32,60,0,60,0,60,0,14,32,98,252,14,32,47,0,4,216,55,222,60,0,60,0,230,8,60,0,60,0,246,8,60,0,60,0,81,6,61,0,251,10,61,0,4,216,55,222,60,0,60,0,60,0,14,32,125,254,14,32,60,0,60,0,60,0,14,32,124,254,14,32,60,0,60,0,60,0,14,32,99,252,14,32,47,0,112,6,60,0,60,0,82,6,61,0,250,10,61,0,4,216,62,222,60,0,60,0,60,0,14,32,127,254,14,32,60,0,60,0,60,0,14,32,126,254,14,32,60,0,60,0,83,6,61,0,158,8,61,0,159,8,61,0,252,10,61,0,3,216,172,222,60,0,60,0,84,6,61,0,3,216,171,222,60,0,60,0,85,6,60,0,60,0,95,6,60,0,60,0,86,6,60,0,60,0,87,6,60,0,60,0,88,6,60,0,60,0,255,8,60,0,60,0,89,6,60,0,60,0,90,6,60,0,60,0,91,6,60,0,60,0,92,6,60,0,60,0,93,6,60,0,60,0,94,6,60,0,60,0,227,8,60,0,60,0,247,8,60,0,60,0,248,8,60,0,60,0,253,8,60,0,60,0,251,8,60,0,60,0,252,8,60,0,60,0,249,8,60,0,60,0,250,8,60,0,60,0,112,6,60,0,60,0,17,7,60,0,60,0,48,7,60,0,60,0,49,7,60,0,60,0,50,7,60,0,60,0,51,7,60,0,60,0,52,7,60,0,60,0,53,7,60,0,60,0,54,7,60,0,60,0,55,7,60,0,60,0,56,7,60,0,60,0,57,7,60,0,60,0,58,7,60,0,60,0,59,7,60,0,60,0,60,7,60,0,60,0,61,7,60,0,60,0,62,7,60,0,60,0,63,7,60,0,60,0,235,7,60,0,60,0,236,7,60,0,60,0,237,7,60,0,60,0,238,7,60,0,60,0,239,7,60,0,60,0,240,7,60,0,60,0,241,7,60,0,60,0,242,7,60,0,60,0,243,7,60,0,60,0,95,19,60,0,60,0,94,19,60,0,60,0,93,19,60,0,60,0,240,166,60,0,60,0,241,166,60,0,60,0,26,216,240,222,60,0,60,0,26,216,241,222,60,0,60,0,26,216,242,222,60,0,60,0,26,216,243,222,60,0,60,0,26,216,244,222,60,0,60,0,58,216,68,221,61,0,58,216,69,221,61,0,58,216,70,221,60,0,60,0,58,216,74,221,60,0,60,0,58,216,71,221,60,0,60,0,58,216,72,221,60,0,60,0,58,216,73,221,60,0,60,0,60,9,61,0,188,9,61,0,60,10,61,0,188,10,61,0,253,10,61,0,254,10,61,0,255,10,61,0,60,11,61,0,60,12,61,0,188,12,61,0,52,27,61,0,230,27,61,0,55,28,61,0,179,169,61,0,4,216,186,220,61,0,4,216,115,221,61,0,4,216,202,221,61,0,4,216,54,222,61,0,4,216,233,222,61,0,4,216,59,223,61,0,4,216,60,223,61,0,5,216,70,220,61,0,5,216,195,220,61,0,5,216,192,221,61,0,5,216,183,222,61,0,6,216,58,220,61,0,6,216,67,221,61,0,6,216,51,222,61,0,7,216,66,221,60,0,60,0,0,9,61,0,1,9,61,0,129,9,61,0,1,10,61,0,129,10,61,0,1,11,61,0,0,12,61,0,1,12,61,0,129,12,61,0,1,13,61,0,129,13,61,0,130,15,61,0,131,15,61,0,0,27,61,0,1,27,61,0,197,168,61,0,128,169,61,0,4,216,0,220,61,0,4,216,128,220,61,0,4,216,0,221,61,0,4,216,128,221,61,0,4,216,207,221,61,0,4,216,1,223,61,0,5,216,67,220,61,0,5,216,191,220,61,0,5,216,188,221,61,0,5,216,64,222,61,0,6,216,60,221,61,0,6,216,53,222,61,0,6,216,54,222,61,0,6,216,55,222,61,0,7,216,60,220,61,0,7,216,182,220,61,0,7,216,67,221,61,0,7,216,0,223,60,0,60,0,2,9,61,0,130,9,61,0,2,10,61,0,130,10,61,0,2,11,61,0,130,11,61,0,2,12,61,0,4,12,61,0,130,12,61,0,243,12,61,0,0,13,61,0,2,13,61,0,130,13,61,0,126,15,61,0,54,16,61,0,198,23,61,0,116,26,61,0,2,27,61,0,128,27,61,0,237,28,61,0,11,168,61,0,128,168,61,0,129,169,61,0,2,216,14,222,61,0,4,216,1,220,61,0,4,216,129,220,61,0,4,216,1,221,61,0,4,216,129,221,61,0,4,216,52,222,61,0,4,216,223,222,61,0,4,216,0,223,61,0,4,216,2,223,61,0,5,216,68,220,61,0,5,216,192,220,61,0,5,216,189,221,61,0,5,216,61,222,61,0,5,216,171,222,61,0,6,216,55,220,61,0,6,216,59,221,61,0,6,216,222,221,61,0,6,216,56,222,61,0,6,216,150,222,61,0,7,216,61,220,61,0,7,216,181,220,61,0,7,216,64,221,61,0,7,216,149,221,61,0,7,216,1,223,60,0,60,0,3,9,61,0,131,9,61,0,3,10,61,0,131,10,61,0,3,11,61,0,3,12,61,0,131,12,61,0,3,13,61,0,131,13,61,0,127,15,61,0,56,16,61,0,199,23,61,0,4,27,61,0,130,27,61,0,242,28,61,0,243,28,61,0,129,168,61,0,131,169,61,0,2,216,15,222,61,0,4,216,2,220,61,0,4,216,130,220,61,0,4,216,2,221,61,0,4,216,130,221,61,0,4,216,3,223,61,0,5,216,69,220,61,0,5,216,193,220,61,0,5,216,190,221,61,0,5,216,62,222,61,0,5,216,172,222,61,0,6,216,56,220,61,0,6,216,223,221,61,0,6,216,57,222,61,0,6,216,151,222,61,0,7,216,62,220,61,0,7,216,65,221,61,0,7,216,150,221,61,0,7,216,3,223,60,0,60,0,254,9,61,0,4,216,201,221,61,0,5,216,94,220,60,0,60,0,112,10,60,0,60,0,113,10,60,0,60,0,3,27,60,0,60,0,130,169,60,0,60,0,129,27,60,0,60,0,236,171,60,0,60,0,2,216,56,222,60,0,60,0,2,216,57,222,60,0,60,0,2,216,58,222,60,0,60,0,4,216,203,221,60,0,60,0,4,216,204,221,60,0,60,0,6,216,152,222,60,0,60,0,78,14,60,0,60,0,71,14,60,0,60,0,72,14,60,0,60,0,73,14,60,0,60,0,74,14,60,0,60,0,75,14,60,0,60,0,76,14,60,0,60,0,77,14,60,0,60,0,206,14,60,0,60,0,200,14,60,0,60,0,201,14,60,0,60,0,202,14,60,0,60,0,203,14,60,0,60,0,204,14,60,0,60,0,205,14,60,0,60,0,191,170,60,0,60,0,193,170,60,0,60,0,57,15,60,0,60,0,43,169,60,0,60,0,44,169,60,0,60,0,45,169,60,0,60,0,55,16,60,0,60,0,200,23,60,0,60,0,201,23,60,0,60,0,202,23,60,0,60,0,117,26,60,0,60,0,118,26,60,0,60,0,119,26,60,0,60,0,120,26,60,0,60,0,121,26,60,0,60,0,122,26,60,0,60,0,123,26,60,0,60,0,124,26,60,0,60,0,57,25,60,0,60,0,58,25,60,0,60,0,59,25,60,0,60,0,26,216,48,223,61,0,56,216,49,221,60,0,60,0,26,216,49,223,61,0,56,216,54,221,60,0,60,0,26,216,50,223,61,0,56,216,50,221,60,0,60,0,26,216,51,223,61,0,56,216,51,221,60,0,60,0,26,216,52,223,61,0,56,216,48,221,60,0,60,0,26,216,53,223,61,0,56,216,52,221,60,0,60,0,26,216,54,223,61,0,56,216,53,221,60,0,60,0,56,216,236,222,60,0,60,0,56,216,237,222,60,0,60,0,56,216,238,222,60,0,60,0,56,216,239,222,60,0,60,0,57,216,236,220,60,0,60,0,57,216,237,220,60,0,60,0,57,216,238,220,60,0,60,0,57,216,239,220,60,0,60,0,42,48,60,0,60,0,43,48,60,0,60,0,44,48,60,0,60,0,45,48,60,0,60,0,46,48,60,0,60,0,47,48,60,0,60,0,27,216,240,223,60,0,60,0,27,216,241,223,60,0,60,0,208,32,60,0,60,0,209,32,60,0,60,0,210,32,61,0,211,32,60,0,60,0,212,32,60,0,60,0,213,32,60,0,60,0,214,32,60,0,60,0,215,32,60,0,60,0,219,32,60,0,60,0,220,32,60,0,60,0,225,32,60,0,60,0,230,32,60,0,60,0,231,32,60,0,60,0,232,32,60,0,60,0,233,32,60,0,60,0,0,216,253,221,38,0,39,0,47,32,39,0,60,0,39,0,9,0,39,0,60,0,39,0,10,0,39,0,60,0,39,0,11,0,39,0,60,0,39,0,12,0,39,0,60,0,39,0,13,0,39,0,60,0,39,0,133,0,39,0,60,0,39,0,40,32,39,0,60,0,39,0,41,32,39,0,60,0,39,0,32,0,39,0,60,0,60,0,60,0,39,0,0,48,39,0,60,0,60,0,60,0,39,0,128,22,39,0,61,0,39,0,2,32,39,0,61,0,39,0,3,32,39,0,61,0,39,0,4,32,39,0,61,0,39,0,5,32,39,0,61,0,39,0,6,32,39,0,61,0,39,0,8,32,39,0,61,0,39,0,9,32,39,0,61,0,39,0,10,32,39,0,61,0,39,0,95,32,39,0,60,0,60,0,60,0,39,0,160,0,39,0,61,0,39,0,7,32,39,0,61,0,39,0,47,32,39,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,118,0,97,0,114,0,105,0,97,0,98,0,108,0,101,0,93,0,60,0,62,32,60,0,60,0,60,0,73,254,61,0,74,254,61,0,75,254,61,0,76,254,60,0,39,0,95,0,39,0,60,0,60,0,60,0,63,255,60,0,60,0,60,0,77,254,61,0,78,254,61,0,79,254,60,0,60,0,60,0,51,254,61,0,52,254,60,0,23,32,60,0,39,0,45,0,39,0,60,0,60,0,60,0,13,255,60,0,60,0,60,0,99,254,60,0,138,5,60,0,0,20,60,0,96,27,60,0,6,24,60,0,7,24,60,0,16,32,60,0,60,0,60,0,17,32,60,0,18,32,60,0,19,32,60,0,60,0,60,0,50,254,60,0,20,32,60,0,60,0,60,0,88,254,60,0,60,0,60,0,49,254,60,0,21,32,60,0,58,46,60,0,59,46,60,0,83,32,60,0,67,46,60,0,23,46,60,0,64,46,60,0,93,46,60,0,28,48,60,0,48,48,60,0,160,48,60,0,251,48,60,0,60,0,60,0,101,255,60,0,14,32,3,216,173,222,14,32,60,0,39,0,44,0,39,0,60,0,60,0,60,0,12,255,60,0,60,0,60,0,80,254,60,0,60,0,60,0,16,254,60,0,52,46,60,0,50,46,60,0,65,46,60,0,76,46,60,0,78,46,60,0,79,46,60,0,93,5,60,0,12,6,60,0,14,32,13,6,14,32,60,0,107,6,60,0,108,6,60,0,248,7,60,0,2,24,60,0,8,24,60,0,254,164,60,0,13,166,60,0,245,166,60,0,27,216,151,222,60,0,1,48,60,0,60,0,60,0,81,254,60,0,60,0,60,0,100,255,60,0,60,0,60,0,17,254,60,0,69,254,60,0,70,254,60,0,27,216,226,223,60,0,39,0,59,0,39,0,60,0,60,0,60,0,27,255,60,0,60,0,60,0,84,254,60,0,60,0,60,0,20,254,60,0,14,32,27,6,14,32,60,0,79,32,60,0,53,46,60,0,246,166,60,0,73,46,60,0,39,0,58,0,39,0,60,0,60,0,60,0,26,255,60,0,60,0,60,0,116,42,47,0,39,0,58,0,61,0,39,0,60,0,60,0,60,0,85,254,60,0,60,0,60,0,19,254,60,0,137,5,60,0,14,32,30,6,14,32,60,0,14,32,3,7,14,32,60,0,14,32,4,7,14,32,60,0,14,32,5,7,14,32,60,0,14,32,6,7,14,32,60,0,14,32,7,7,14,32,60,0,14,32,8,7,14,32,60,0,14,32,48,8,14,32,60,0,14,32,49,8,14,32,60,0,14,32,50,8,14,32,60,0,14,32,51,8,14,32,60,0,14,32,52,8,14,32,60,0,14,32,53,8,14,32,60,0,14,32,54,8,14,32,60,0,14,32,55,8,14,32,60,0,14,32,56,8,14,32,60,0,14,32,57,8,14,32,60,0,14,32,58,8,14,32,60,0,14,32,59,8,14,32,60,0,14,32,60,8,14,32,60,0,14,32,61,8,14,32,60,0,14,32,62,8,14,32,60,0,97,19,60,0,99,19,60,0,100,19,60,0,101,19,60,0,102,19,60,0,4,24,60,0,5,24,60,0,20,15,60,0,214,23,60,0,93,27,60,0,199,169,60,0,235,22,60,0,236,22,60,0,237,22,60,0,244,166,60,0,39,0,33,0,39,0,60,0,60,0,60,0,1,255,60,0,60,0,60,0,60,32,47,0,39,0,33,0,39,0,60,0,60,0,60,0,73,32,47,0,39,0,63,0,39,0,60,0,60,0,60,0,87,254,60,0,60,0,60,0,21,254,60,0,161,0,60,0,83,46,60,0,92,5,60,0,249,7,60,0,68,25,60,0,14,32,58,216,94,221,14,32,60,0,39,0,63,0,39,0,60,0,60,0,60,0,31,255,60,0,60,0,60,0,72,32,47,0,39,0,33,0,39,0,60,0,60,0,60,0,71,32,47,0,39,0,63,0,39,0,60,0,60,0,60,0,86,254,60,0,60,0,60,0,22,254,60,0,191,0,60,0,46,46,60,0,84,46,60,0,94,5,60,0,14,32,31,6,14,32,60,0,14,32,9,7,14,32,60,0,103,19,60,0,69,25,60,0,250,44,60,0,251,44,60,0,15,166,60,0,247,166,60,0,241,170,60,0,4,216,67,221,60,0,14,32,58,216,95,221,14,32,60,0,61,32,60,0,24,46,60,0,39,0,46,0,39,0,60,0,60,0,60,0,14,255,60,0,60,0,60,0,36,32,60,0,60,0,60,0,37,32,47,0,39,0,46,0,39,0,60,0,60,0,60,0,38,32,47,0,39,0,46,0,46,0,39,0,60,0,60,0,60,0,82,254,60,0,60,0,60,0,48,254,47,0,39,0,46,0,39,0,60,0,60,0,60,0,25,254,47,0,39,0,46,0,46,0,39,0,60,0,1,24,60,0,14,32,212,6,14,32,60,0,14,32,1,7,14,32,60,0,14,32,2,7,14,32,60,0,98,19,60,0,3,24,60,0,9,24,60,0,110,22,60,0,92,27,60,0,249,44,60,0,254,44,60,0,48,46,60,0,60,46,60,0,255,164,60,0,14,166,60,0,243,166,60,0,26,216,245,222,60,0,27,216,152,222,60,0,47,216,159,220,60,0,2,48,60,0,60,0,60,0,97,255,60,0,60,0,60,0,18,254,60,0,183,0,60,0,49,46,60,0,51,46,60,0,100,9,60,0,101,9,60,0,206,168,60,0,207,168,60,0,59,28,60,0,60,28,60,0,118,168,60,0,119,168,60,0,53,23,60,0,54,23,60,0,47,169,60,0,74,16,60,0,75,16,60,0,212,23,60,0,213,23,60,0,168,26,60,0,169,26,60,0,170,26,60,0,171,26,60,0,94,27,60,0,95,27,60,0,200,169,60,0,201,169,60,0,93,170,60,0,94,170,60,0,95,170,60,0,240,170,60,0,235,171,60,0,14,32,2,216,86,222,14,32,60,0,14,32,2,216,87,222,14,32,60,0,4,216,71,220,60,0,4,216,72,220,60,0,4,216,192,220,60,0,4,216,193,220,60,0,4,216,65,221,60,0,4,216,66,221,60,0,4,216,197,221,60,0,4,216,198,221,60,0,4,216,56,222,60,0,4,216,57,222,60,0,5,216,75,220,60,0,5,216,76,220,60,0,5,216,194,221,60,0,5,216,195,221,60,0,5,216,65,222,60,0,5,216,66,222,60,0,5,216,60,223,60,0,5,216,61,223,60,0,6,216,68,221,60,0,7,216,65,220,60,0,7,216,66,220,60,0,7,216,67,223,60,0,7,216,68,223,60,0,26,216,110,222,60,0,26,216,111,222,60,0,126,28,60,0,127,28,60,0,14,32,29,6,14,32,60,0,14,32,0,7,14,32,60,0,247,7,60,0,251,16,60,0,96,19,60,0,104,19,60,0,30,26,60,0,31,26,60,0,90,27,60,0,91,27,60,0,125,27,60,0,126,27,60,0,193,169,60,0,194,169,60,0,195,169,60,0,196,169,60,0,197,169,60,0,198,169,60,0,202,169,60,0,203,169,60,0,204,169,60,0,205,169,60,0,242,166,60,0,95,169,60,0,14,32,2,216,87,220,14,32,60,0,2,216,58,223,60,0,2,216,59,223,60,0,2,216,60,223,60,0,2,216,61,223,60,0,2,216,62,223,60,0,2,216,63,223,60,0,14,32,3,216,85,223,14,32,60,0,14,32,3,216,86,223,14,32,60,0,14,32,3,216,87,223,14,32,60,0,14,32,3,216,88,223,14,32,60,0,14,32,3,216,89,223,14,32,60,0,14,32,3,216,134,223,14,32,60,0,14,32,3,216,135,223,14,32,60,0,14,32,3,216,136,223,14,32,60,0,14,32,3,216,137,223,14,32,60,0,4,216,190,220,60,0,4,216,191,220,60,0,4,216,64,221,60,0,4,216,200,221,60,0,4,216,222,221,60,0,4,216,223,221,60,0,4,216,169,222,60,0,5,216,62,223,60,0,6,216,70,221,60,0,7,216,247,222,60,0,7,216,248,222,60,0,7,216,69,223,60,0,7,216,70,223,60,0,7,216,71,223,60,0,7,216,72,223,60,0,7,216,73,223,60,0,7,216,74,223,60,0,7,216,75,223,60,0,7,216,76,223,60,0,7,216,77,223,60,0,7,216,78,223,60,0,7,216,79,223,60,0,85,32,60,0,86,32,60,0,88,32,60,0,89,32,60,0,90,32,60,0,91,32,60,0,92,32,60,0,93,32,60,0,94,32,60,0,42,46,60,0,43,46,60,0,44,46,60,0,45,46,60,0,61,46,60,0,252,44,60,0,255,44,60,0,25,46,60,0,14,32,2,216,63,221,14,32,60,0,0,216,0,221,60,0,0,216,1,221,60,0,0,216,2,221,60,0,0,216,159,223,60,0,0,216,208,223,60,0,2,216,31,221,60,0,9,216,112,220,60,0,9,216,113,220,60,0,9,216,114,220,60,0,9,216,115,220,60,0,9,216,116,220,60,0,11,216,241,223,60,0,11,216,242,223,60,0,39,0,39,0,60,0,60,0,60,0,7,255,60,0,24,32,60,0,25,32,60,0,26,32,60,0,27,32,60,0,57,32,60,0,58,32,60,0,39,0,34,0,39,0,60,0,60,0,60,0,2,255,60,0,28,32,60,0,29,32,60,0,30,32,60,0,31,32,60,0,66,46,60,0,29,48,60,0,30,48,60,0,31,48,60,0,171,0,60,0,187,0,60,0,39,0,40,0,39,0,60,0,60,0,60,0,8,255,60,0,60,0,60,0,116,36,47,0,14,32,59,216,1,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,125,36,47,0,14,32,59,216,1,221,58,216,80,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,126,36,47,0,14,32,59,216,1,221,59,216,1,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,127,36,47,0,14,32,59,216,1,221,59,216,2,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,128,36,47,0,14,32,59,216,1,221,59,216,3,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,129,36,47,0,14,32,59,216,1,221,59,216,4,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,130,36,47,0,14,32,59,216,1,221,59,216,5,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,131,36,47,0,14,32,59,216,1,221,59,216,6,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,132,36,47,0,14,32,59,216,1,221,59,216,7,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,133,36,47,0,14,32,59,216,1,221,59,216,8,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,134,36,47,0,14,32,59,216,1,221,59,216,9,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,117,36,47,0,14,32,59,216,2,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,135,36,47,0,14,32,59,216,2,221,58,216,80,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,118,36,47,0,14,32,59,216,3,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,119,36,47,0,14,32,59,216,4,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,120,36,47,0,14,32,59,216,5,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,121,36,47,0,14,32,59,216,6,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,122,36,47,0,14,32,59,216,7,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,123,36,47,0,14,32,59,216,8,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,124,36,47,0,14,32,59,216,9,221,39,0,41,0,39,0,14,32,60,0,60,0,60,0,156,36,47,0,97,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,16,221,47,0,65,0,39,0,41,0,39,0,60,0,60,0,60,0,157,36,47,0,98,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,17,221,47,0,66,0,39,0,41,0,39,0,60,0,60,0,60,0,158,36,47,0,99,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,18,221,47,0,67,0,39,0,41,0,39,0,60,0,60,0,60,0,159,36,47,0,100,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,19,221,47,0,68,0,39,0,41,0,39,0,60,0,60,0,60,0,160,36,47,0,101,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,20,221,47,0,69,0,39,0,41,0,39,0,60,0,60,0,60,0,161,36,47,0,102,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,21,221,47,0,70,0,39,0,41,0,39,0,60,0,60,0,60,0,162,36,47,0,103,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,22,221,47,0,71,0,39,0,41,0,39,0,60,0,60,0,60,0,163,36,47,0,104,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,23,221,47,0,72,0,39,0,41,0,39,0,60,0,60,0,60,0,164,36,47,0,105,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,24,221,47,0,73,0,39,0,41,0,39,0,60,0,60,0,60,0,165,36,47,0,106,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,25,221,47,0,74,0,39,0,41,0,39,0,60,0,60,0,60,0,166,36,47,0,107,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,26,221,47,0,75,0,39,0,41,0,39,0,60,0,60,0,60,0,167,36,47,0,108,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,27,221,47,0,76,0,39,0,41,0,39,0,60,0,60,0,60,0,168,36,47,0,109,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,28,221,47,0,77,0,39,0,41,0,39,0,60,0,60,0,60,0,169,36,47,0,110,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,29,221,47,0,78,0,39,0,41,0,39,0,60,0,60,0,60,0,170,36,47,0,111,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,30,221,47,0,79,0,39,0,41,0,39,0,60,0,60,0,60,0,171,36,47,0,112,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,31,221,47,0,80,0,39,0,41,0,39,0,60,0,60,0,60,0,172,36,47,0,113,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,32,221,47,0,81,0,39,0,41,0,39,0,60,0,60,0,60,0,173,36,47,0,114,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,33,221,47,0,82,0,39,0,41,0,39,0,60,0,60,0,60,0,174,36,47,0,115,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,34,221,47,0,83,0,39,0,41,0,39,0,60,0,60,0,60,0,175,36,47,0,116,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,35,221,47,0,84,0,39,0,41,0,39,0,60,0,60,0,60,0,176,36,47,0,117,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,36,221,47,0,85,0,39,0,41,0,39,0,60,0,60,0,60,0,177,36,47,0,118,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,37,221,47,0,86,0,39,0,41,0,39,0,60,0,60,0,60,0,178,36,47,0,119,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,38,221,47,0,87,0,39,0,41,0,39,0,60,0,60,0,60,0,179,36,47,0,120,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,39,221,47,0,88,0,39,0,41,0,39,0,60,0,60,0,60,0,180,36,47,0,121,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,40,221,47,0,89,0,39,0,41,0,39,0,60,0,60,0,60,0,181,36,47,0,122,0,39,0,41,0,39,0,60,0,60,0,60,0,60,216,41,221,47,0,90,0,39,0,41,0,39,0,60,0,60,0,60,0,0,50,47,0,0,17,39,0,41,0,39,0,60,0,60,0,60,0,14,50,47,0,0,172,39,0,41,0,39,0,60,0,60,0,60,0,1,50,47,0,2,17,39,0,41,0,39,0,60,0,60,0,60,0,15,50,47,0,152,176,39,0,41,0,39,0,60,0,60,0,60,0,2,50,47,0,3,17,39,0,41,0,39,0,60,0,60,0,60,0,16,50,47,0,228,178,39,0,41,0,39,0,60,0,60,0,60,0,3,50,47,0,5,17,39,0,41,0,39,0,60,0,60,0,60,0,17,50,47,0,124,183,39,0,41,0,39,0,60,0,60,0,60,0,4,50,47,0,6,17,39,0,41,0,39,0,60,0,60,0,60,0,18,50,47,0,200,185,39,0,41,0,39,0,60,0,60,0,60,0,5,50,47,0,7,17,39,0,41,0,39,0,60,0,60,0,60,0,19,50,47,0,20,188,39,0,41,0,39,0,60,0,60,0,60,0,6,50,47,0,9,17,39,0,41,0,39,0,60,0,60,0,60,0,20,50,47,0,172,192,39,0,41,0,39,0,60,0,60,0,60,0,7,50,47,0,11,17,39,0,41,0,39,0,60,0,60,0,60,0,21,50,47,0,68,197,39,0,41,0,39,0,60,0,60,0,60,0,29,50,47,0,36,198,4,200,39,0,41,0,39,0,60,0,60,0,60,0,30,50,47,0,36,198,196,214,39,0,41,0,39,0,60,0,60,0,60,0,8,50,47,0,12,17,39,0,41,0,39,0,60,0,60,0,60,0,22,50,47,0,144,199,39,0,41,0,39,0,60,0,60,0,60,0,28,50,47,0,252,200,39,0,41,0,39,0,60,0,60,0,60,0,9,50,47,0,14,17,39,0,41,0,39,0,60,0,60,0,60,0,23,50,47,0,40,204,39,0,41,0,39,0,60,0,60,0,60,0,10,50,47,0,15,17,39,0,41,0,39,0,60,0,60,0,60,0,24,50,47,0,116,206,39,0,41,0,39,0,60,0,60,0,60,0,11,50,47,0,16,17,39,0,41,0,39,0,60,0,60,0,60,0,25,50,47,0,192,208,39,0,41,0,39,0,60,0,60,0,60,0,12,50,47,0,17,17,39,0,41,0,39,0,60,0,60,0,60,0,26,50,47,0,12,211,39,0,41,0,39,0,60,0,60,0,60,0,13,50,47,0,18,17,39,0,41,0,39,0,60,0,60,0,60,0,27,50,47,0,88,213,39,0,41,0,39,0,60,0,60,0,60,0,32,50,47,0,0,78,39,0,41,0,39,0,60,0,60,0,60,0,38,50,47,0,3,78,39,0,41,0,39,0,60,0,60,0,60,0,34,50,47,0,9,78,39,0,41,0,39,0,60,0,60,0,60,0,40,50,47,0,93,78,39,0,41,0,39,0,60,0,60,0,60,0,33,50,47,0,140,78,39,0,41,0,39,0,60,0,60,0,60,0,36,50,47,0,148,78,39,0,41,0,39,0,60,0,60,0,60,0,57,50,47,0,227,78,39,0,41,0,39,0,60,0,60,0,60,0,61,50,47,0,1,79,39,0,41,0,39,0,60,0,60,0,60,0,65,50,47,0,17,79,39,0,41,0,39,0,60,0,60,0,60,0,39,50,47,0,107,81,39,0,41,0,39,0,60,0,60,0,60,0,37,50,47,0,109,81,39,0,41,0,39,0,60,0,60,0,60,0,56,50,47,0,180,82,39,0,41,0,39,0,60,0,60,0,60,0,41,50,47,0,65,83,39,0,41,0,39,0,60,0,60,0,60,0,63,50,47,0,84,83,39,0,41,0,39,0,60,0,60,0,60,0,52,50,47,0,13,84,39,0,41,0,39,0,60,0,60,0,60,0,58,50,47,0,124,84,39,0,41,0,39,0,60,0,60,0,60,0,35,50,47,0,219,86,39,0,41,0,39,0,60,0,60,0,60,0,47,50,47,0,31,87,39,0,41,0,39,0,60,0,60,0,60,0,59,50,47,0,102,91,39,0,41,0,39,0,60,0,60,0,60,0,48,50,47,0,229,101,39,0,41,0,39,0,60,0,60,0,60,0,42,50,47,0,8,103,39,0,41,0,39,0,60,0,60,0,60,0,50,50,47,0,9,103,39,0,41,0,39,0,60,0,60,0,60,0,45,50,47,0,40,103,39,0,41,0,39,0,60,0,60,0,60,0,49,50,47,0,42,104,39,0,41,0,39,0,60,0,60,0,60,0,44,50,47,0,52,108,39,0,41,0,39,0,60,0,60,0,60,0,43,50,47,0,107,112,39,0,41,0,39,0,60,0,60,0,60,0,53,50,47,0,121,114,39,0,41,0,39,0,60,0,60,0,60,0,60,50,47,0,227,118,39,0,41,0,39,0,60,0,60,0,60,0,51,50,47,0,62,121,39,0,41,0,39,0,60,0,60,0,60,0,55,50,47,0,93,121,39,0,41,0,39,0,60,0,60,0,60,0,64,50,47,0,109,121,39,0,41,0,39,0,60,0,60,0,60,0,66,50,47,0,234,129,39,0,41,0,39,0,60,0,60,0,60,0,67,50,47,0,243,129,39,0,41,0,39,0,60,0,60,0,60,0,54,50,47,0,161,140,39,0,41,0,39,0,60,0,60,0,60,0,62,50,47,0,199,140,39,0,41,0,39,0,60,0,60,0,60,0,46,50,47,0,209,145,39,0,41,0,39,0,60,0,60,0,60,0,89,254,60,0,60,0,60,0,125,32,60,0,60,0,60,0,141,32,60,0,60,0,60,0,53,254,60,0,39,0,41,0,39,0,60,0,60,0,60,0,9,255,60,0,60,0,60,0,90,254,60,0,60,0,60,0,126,32,60,0,60,0,60,0,142,32,60,0,60,0,60,0,54,254,60,0,39,0,91,0,39,0,60,0,60,0,60,0,59,255,60,0,60,0,60,0,71,254,60,0,39,0,93,0,39,0,60,0,60,0,60,0,61,255,60,0,60,0,60,0,72,254,60,0,39,0,123,0,39,0,60,0,60,0,60,0,91,255,60,0,60,0,60,0,91,254,60,0,60,0,60,0,55,254,60,0,39,0,125,0,39,0,60,0,60,0,60,0,93,255,60,0,60,0,60,0,92,254,60,0,60,0,60,0,56,254,60,0,58,15,60,0,59,15,60,0,60,15,60,0,61,15,60,0,155,22,60,0,156,22,60,0,69,32,60,0,70,32,60,0,8,35,60,0,9,35,60,0,10,35,60,0,11,35,60,0,252,41,60,0,253,41,60,0,131,41,60,0,132,41,60,0,133,41,60,0,60,0,60,0,95,255,60,0,134,41,60,0,60,0,60,0,96,255,60,0,135,41,60,0,136,41,60,0,137,41,60,0,138,41,60,0,139,41,60,0,140,41,60,0,141,41,60,0,142,41,60,0,143,41,60,0,144,41,60,0,145,41,60,0,146,41,60,0,147,41,60,0,148,41,60,0,149,41,60,0,150,41,60,0,151,41,60,0,152,41,60,0,197,39,60,0,198,39,60,0,230,39,60,0,231,39,60,0,232,39,60,0,233,39,60,0,234,39,60,0,235,39,60,0,236,39,60,0,237,39,60,0,238,39,60,0,239,39,60,0,104,39,60,0,105,39,60,0,106,39,60,0,107,39,60,0,108,39,60,0,109,39,60,0,110,39,60,0,111,39,60,0,112,39,60,0,113,39,60,0,114,39,60,0,115,39,60,0,116,39,60,0,117,39,60,0,2,46,60,0,3,46,60,0,4,46,60,0,5,46,60,0,9,46,60,0,10,46,60,0,12,46,60,0,13,46,60,0,28,46,60,0,29,46,60,0,32,46,60,0,33,46,60,0,34,46,60,0,35,46,60,0,36,46,60,0,37,46,60,0,38,46,60,0,39,46,60,0,40,46,60,0,41,46,60,0,85,46,60,0,86,46,60,0,87,46,60,0,88,46,60,0,89,46,60,0,90,46,60,0,91,46,60,0,92,46,60,0,8,48,60,0,60,0,60,0,63,254,60,0,9,48,60,0,60,0,60,0,64,254,60,0,10,48,60,0,60,0,60,0,61,254,60,0,11,48,60,0,60,0,60,0,62,254,60,0,12,48,60,0,60,0,60,0,98,255,60,0,60,0,60,0,65,254,60,0,13,48,60,0,60,0,60,0,99,255,60,0,60,0,60,0,66,254,60,0,14,48,60,0,60,0,60,0,67,254,60,0,15,48,60,0,60,0,60,0,68,254,60,0,16,48,60,0,60,0,60,0,59,254,60,0,17,48,60,0,60,0,60,0,60,254,60,0,20,48,60,0,60,0,60,0,60,216,42,221,47,0,83,0,21,48,60,0,60,0,60,0,60,216,65,222,47,0,9,78,21,48,60,0,60,0,60,0,60,216,66,222,47,0,140,78,21,48,60,0,60,0,60,0,60,216,71,222,47,0,221,82,21,48,60,0,60,0,60,0,60,216,67,222,47,0,137,91,21,48,60,0,60,0,60,0,60,216,69,222,47,0,83,98,21,48,60,0,60,0,60,0,60,216,72,222,47,0,87,101,21,48,60,0,60,0,60,0,60,216,64,222,47,0,44,103,21,48,60,0,60,0,60,0,60,216,68,222,47,0,185,112,21,48,60,0,60,0,60,0,60,216,70,222,47,0,215,118,21,48,60,0,60,0,60,0,93,254,60,0,60,0,60,0,57,254,60,0,21,48,60,0,60,0,60,0,94,254,60,0,60,0,60,0,58,254,60,0,22,48,60,0,60,0,60,0,23,254,60,0,23,48,60,0,60,0,60,0,24,254,60,0,24,48,60,0,25,48,60,0,26,48,60,0,27,48,60,0,62,253,60,0,63,253,60,0,22,32,60,0,62,46,60,0,216,41,60,0,217,41,60,0,218,41,60,0,219,41,60,0,167,0,60,0,57,46,60,0,182,0,60,0,75,32,60,0,77,46,60,0,63,46,60,0,39,0,64,0,39,0,60,0,60,0,60,0,32,255,60,0,60,0,60,0,107,254,60,0,39,0,42,0,39,0,60,0,60,0,60,0,10,255,60,0,60,0,60,0,97,254,60,0,78,32,60,0,81,32,60,0,14,32,109,6,14,32,60,0,115,166,60,0,39,0,47,0,39,0,60,0,60,0,60,0,15,255,60,0,39,0,92,0,39,0,60,0,60,0,60,0,60,255,60,0,60,0,60,0,104,254,60,0,74,46,60,0,39,0,38,0,39,0,60,0,60,0,60,0,6,255,60,0,60,0,60,0,96,254,60,0,74,32,60,0,82,46,60,0,39,0,35,0,39,0,60,0,60,0,60,0,3,255,60,0,60,0,60,0,95,254,60,0,39,0,37,0,39,0,60,0,60,0,60,0,5,255,60,0,60,0,60,0,106,254,60,0,106,6,60,0,48,32,60,0,9,6,60,0,49,32,60,0,10,6,60,0,32,32,60,0,33,32,60,0,54,46,60,0,55,46,60,0,56,46,60,0,75,46,60,0,34,32,60,0,35,32,60,0,39,32,60,0,67,32,60,0,76,32,60,0,77,32,60,0,50,32,60,0,60,0,60,0,51,32,47,0,50,32,60,0,60,0,60,0,52,32,47,0,50,32,50,32,60,0,60,0,60,0,87,32,47,0,50,32,50,32,50,32,60,0,53,32,60,0,60,0,60,0,54,32,47,0,53,32,60,0,60,0,60,0,55,32,47,0,53,32,53,32,60,0,3,48,60,0,61,48,60,0,56,32,60,0,59,32,60,0,63,32,60,0,84,32,60,0,64,32,60,0,80,32,60,0,65,32,60,0,66,32,60,0,0,46,60,0,1,46,60,0,6,46,60,0,7,46,60,0,8,46,60,0,11,46,60,0,14,46,60,0,15,46,60,0,16,46,60,0,17,46,60,0,18,46,60,0,19,46,60,0,20,46,60,0,21,46,60,0,22,46,60,0,26,46,60,0,27,46,60,0,30,46,60,0,31,46,60,0,68,46,60,0,69,46,60,0,70,46,60,0,71,46,60,0,72,46,60,0,126,166,60,0,90,5,60,0,91,5,60,0,95,5,60,0,14,32,190,5,14,32,60,0,14,32,192,5,14,32,60,0,14,32,195,5,14,32,60,0,14,32,198,5,14,32,60,0,14,32,243,5,14,32,60,0,14,32,244,5,14,32,60,0,14,32,10,7,14,32,60,0,14,32,11,7,14,32,60,0,14,32,12,7,14,32,60,0,14,32,13,7,14,32,60,0,14,32,94,8,14,32,60,0,0,24,60,0,5,216,96,222,60,0,5,216,97,222,60,0,5,216,98,222,60,0,5,216,99,222,60,0,5,216,100,222,60,0,5,216,101,222,60,0,5,216,102,222,60,0,5,216,103,222,60,0,5,216,104,222,60,0,5,216,105,222,60,0,5,216,106,222,60,0,5,216,107,222,60,0,5,216,108,222,60,0,112,9,60,0,248,168,60,0,249,168,60,0,250,168,60,0,252,168,60,0,6,216,0,223,60,0,6,216,1,223,60,0,6,216,2,223,60,0,6,216,3,223,60,0,6,216,4,223,60,0,6,216,5,223,60,0,6,216,6,223,60,0,6,216,7,223,60,0,6,216,8,223,60,0,6,216,9,223,60,0,253,9,60,0,118,10,60,0,240,10,60,0,119,12,60,0,132,12,60,0,244,13,60,0,79,14,60,0,90,14,60,0,91,14,60,0,222,170,60,0,223,170,60,0,4,15,60,0,5,15,60,0,6,15,60,0,7,15,60,0,8,15,60,0,9,15,60,0,10,15,60,0,208,15,60,0,209,15,60,0,11,15,60,0,60,0,60,0,12,15,60,0,13,15,60,0,14,15,60,0,15,15,60,0,16,15,60,0,17,15,60,0,18,15,60,0,133,15,60,0,210,15,60,0,211,15,60,0,212,15,60,0,217,15,60,0,218,15,60,0,6,216,63,222,60,0,6,216,64,222,60,0,6,216,65,222,60,0,6,216,66,222,60,0,6,216,67,222,60,0,6,216,68,222,60,0,6,216,69,222,60,0,6,216,70,222,60,0,6,216,154,222,60,0,6,216,155,222,60,0,6,216,156,222,60,0,6,216,158,222,60,0,6,216,159,222,60,0,6,216,160,222,60,0,6,216,161,222,60,0,6,216,162,222,60,0,7,216,112,220,60,0,7,216,113,220,60,0,61,28,60,0,62,28,60,0,63,28,60,0,76,16,60,0,77,16,60,0,78,16,60,0,79,16,60,0,216,23,60,0,217,23,60,0,218,23,60,0,160,26,60,0,161,26,60,0,162,26,60,0,163,26,60,0,164,26,60,0,165,26,60,0,166,26,60,0,172,26,60,0,173,26,60,0,192,28,60,0,193,28,60,0,194,28,60,0,195,28,60,0,196,28,60,0,197,28,60,0,198,28,60,0,199,28,60,0,112,45,60,0,116,168,60,0,117,168,60,0,252,27,60,0,253,27,60,0,254,27,60,0,255,27,60,0,46,169,60,0,222,169,60,0,223,169,60,0,92,170,60,0,1,216,111,221,60,0,4,216,73,220,60,0,4,216,74,220,60,0,4,216,75,220,60,0,4,216,76,220,60,0,4,216,77,220,60,0,14,32,2,216,80,222,14,32,60,0,14,32,2,216,81,222,14,32,60,0,14,32,2,216,82,222,14,32,60,0,14,32,2,216,83,222,14,32,60,0,14,32,2,216,84,222,14,32,60,0,14,32,2,216,85,222,14,32,60,0,14,32,2,216,88,222,14,32,60,0,7,216,67,220,60,0,7,216,68,220,60,0,7,216,69,220,60,0,2,216,57,223,60,0,14,32,2,216,240,222,14,32,60,0,14,32,2,216,241,222,14,32,60,0,14,32,2,216,242,222,14,32,60,0,14,32,2,216,243,222,14,32,60,0,14,32,2,216,244,222,14,32,60,0,14,32,2,216,245,222,14,32,60,0,14,32,2,216,246,222,14,32,60,0,14,32,2,216,153,223,14,32,60,0,14,32,2,216,154,223,14,32,60,0,14,32,2,216,155,223,14,32,60,0,14,32,2,216,156,223,14,32,60,0,4,216,187,220,60,0,4,216,188,220,60,0,4,216,116,221,60,0,4,216,117,221,60,0,4,216,205,221,60,0,4,216,199,221,60,0,4,216,219,221,60,0,4,216,221,221,60,0,4,216,58,222,60,0,4,216,59,222,60,0,4,216,60,222,60,0,4,216,61,222,60,0,5,216,77,220,60,0,5,216,90,220,60,0,5,216,78,220,60,0,5,216,79,220,60,0,5,216,91,220,60,0,5,216,93,220,60,0,5,216,198,220,60,0,5,216,193,221,60,0,5,216,196,221,60,0,5,216,197,221,60,0,5,216,198,221,60,0,5,216,199,221,60,0,5,216,200,221,60,0,5,216,201,221,60,0,5,216,202,221,60,0,5,216,203,221,60,0,5,216,204,221,60,0,5,216,205,221,60,0,5,216,206,221,60,0,5,216,207,221,60,0,5,216,208,221,60,0,5,216,209,221,60,0,5,216,210,221,60,0,5,216,211,221,60,0,5,216,212,221,60,0,5,216,213,221,60,0,5,216,214,221,60,0,5,216,215,221,60,0,5,216,67,222,60,0,5,216,185,222,60,0,6,216,59,220,60,0,6,216,69,221,60,0,6,216,226,221,60,0,7,216,255,223,60,0,26,216,55,223,60,0,26,216,56,223,60,0,26,216,57,223,60,0,26,216,58,223,60,0,26,216,59,223,60,0,26,216,68,223,60,0,27,216,153,222,60,0,27,216,154,222,60,0,54,216,135,222,60,0,54,216,136,222,60,0,54,216,137,222,60,0,54,216,138,222,60,0,54,216,139,222,60,0,14,32,2,216,127,222,14,32,38,0,253,48,60,0,39,0,96,0,39,0,60,0,60,0,60,0,64,255,60,0,180,0,61,0,132,3,60,0,220,2,60,0,39,0,94,0,39,0,60,0,60,0,60,0,62,255,60,0,175,0,60,0,60,0,60,0,227,255,60,0,216,2,60,0,217,2,60,0,168,0,60,0,218,2,60,0,221,2,60,0,184,0,60,0,219,2,60,0,189,31,61,0,191,31,60,0,254,31,60,0,192,31,60,0,155,48,60,0,156,48,60,0,185,2,60,0,117,3,60,0,186,2,60,0,194,2,60,0,195,2,60,0,196,2,60,0,197,2,60,0,198,2,60,0,199,2,60,0,200,2,60,0,201,2,60,0,202,2,60,0,203,2,60,0,204,2,60,0,205,2,60,0,206,2,60,0,207,2,60,0,210,2,60,0,211,2,60,0,212,2,60,0,213,2,60,0,106,171,60,0,107,171,60,0,214,2,60,0,215,2,60,0,222,2,60,0,223,2,60,0,229,2,60,0,230,2,60,0,231,2,60,0,232,2,60,0,233,2,60,0,234,2,60,0,235,2,60,0,236,2,60,0,237,2,60,0,239,2,60,0,240,2,60,0,241,2,60,0,242,2,60,0,243,2,60,0,244,2,60,0,245,2,60,0,246,2,60,0,247,2,60,0,248,2,60,0,249,2,60,0,250,2,60,0,251,2,60,0,252,2,60,0,253,2,60,0,254,2,60,0,255,2,60,0,144,19,60,0,145,19,60,0,146,19,60,0,147,19,60,0,148,19,60,0,149,19,60,0,150,19,60,0,151,19,60,0,152,19,60,0,153,19,60,0,0,167,60,0,1,167,60,0,2,167,60,0,3,167,60,0,4,167,60,0,5,167,60,0,6,167,60,0,7,167,60,0,8,167,60,0,9,167,60,0,10,167,60,0,11,167,60,0,12,167,60,0,13,167,60,0,14,167,60,0,15,167,60,0,16,167,60,0,17,167,60,0,18,167,60,0,19,167,60,0,20,167,60,0,21,167,60,0,22,167,60,0,23,167,60,0,24,167,60,0,25,167,60,0,26,167,60,0,27,167,60,0,28,167,60,0,29,167,60,0,30,167,60,0,31,167,60,0,32,167,60,0,33,167,60,0,136,167,60,0,137,167,60,0,138,167,60,0,91,171,60,0,43,216,240,223,60,0,43,216,241,223,60,0,43,216,242,223,60,0,43,216,243,223,60,0,43,216,245,223,60,0,43,216,246,223,60,0,43,216,247,223,60,0,43,216,248,223,60,0,43,216,249,223,60,0,43,216,250,223,60,0,43,216,251,223,60,0,43,216,253,223,60,0,43,216,254,223,60,0,176,0,60,0,60,0,60,0,3,33,47,0,67,0,60,0,60,0,60,0,9,33,47,0,70,0,60,0,130,4,60,0,141,5,60,0,142,5,60,0,14,32,8,6,14,32,60,0,59,216,240,222,60,0,59,216,241,222,60,0,14,6,60,0,15,6,60,0,222,6,60,0,233,6,60,0,64,253,60,0,65,253,60,0,66,253,60,0,67,253,60,0,68,253,60,0,69,253,60,0,70,253,60,0,71,253,60,0,72,253,60,0,73,253,60,0,74,253,60,0,75,253,60,0,76,253,60,0,77,253,60,0,78,253,60,0,79,253,60,0,207,253,60,0,253,253,60,0,254,253,60,0,255,253,60,0,14,32,136,8,14,32,60,0,14,32,178,251,14,32,60,0,14,32,179,251,14,32,60,0,14,32,180,251,14,32,60,0,14,32,181,251,14,32,60,0,14,32,182,251,14,32,60,0,14,32,183,251,14,32,60,0,14,32,184,251,14,32,60,0,14,32,185,251,14,32,60,0,14,32,186,251,14,32,60,0,14,32,187,251,14,32,60,0,14,32,188,251,14,32,60,0,14,32,189,251,14,32,60,0,14,32,190,251,14,32,60,0,14,32,191,251,14,32,60,0,14,32,192,251,14,32,60,0,14,32,193,251,14,32,60,0,14,32,194,251,14,32,60,0,246,7,60,0,250,9,60,0,112,11,60,0,243,11,60,0,244,11,60,0,245,11,60,0,246,11,60,0,247,11,60,0,248,11,60,0,250,11,60,0,7,216,213,223,60,0,7,216,214,223,60,0,7,216,215,223,60,0,7,216,216,223,60,0,7,216,217,223,60,0,7,216,218,223,60,0,7,216,219,223,60,0,7,216,220,223,60,0,7,216,225,223,60,0,7,216,226,223,60,0,7,216,227,223,60,0,7,216,228,223,60,0,7,216,229,223,60,0,7,216,230,223,60,0,7,216,231,223,60,0,7,216,232,223,60,0,7,216,233,223,60,0,7,216,234,223,60,0,7,216,235,223,60,0,7,216,236,223,60,0,7,216,237,223,60,0,7,216,238,223,60,0,7,216,239,223,60,0,7,216,240,223,60,0,7,216,241,223,60,0,127,12,60,0,79,13,60,0,121,13,60,0,40,168,60,0,41,168,60,0,42,168,60,0,43,168,60,0,54,168,60,0,55,168,60,0,57,168,60,0,1,15,60,0,2,15,60,0,3,15,60,0,19,15,60,0,21,15,60,0,22,15,60,0,23,15,60,0,26,15,60,0,27,15,60,0,28,15,60,0,29,15,60,0,30,15,60,0,31,15,60,0,52,15,60,0,54,15,60,0,56,15,60,0,190,15,60,0,191,15,60,0,192,15,60,0,193,15,60,0,194,15,60,0,195,15,60,0,196,15,60,0,197,15,60,0,199,15,60,0,200,15,60,0,201,15,60,0,202,15,60,0,203,15,60,0,204,15,60,0,206,15,60,0,207,15,60,0,213,15,60,0,214,15,60,0,215,15,60,0,216,15,60,0,109,22,60,0,64,25,60,0,158,16,60,0,159,16,60,0,119,170,60,0,120,170,60,0,121,170,60,0,5,216,63,223,60,0,224,25,60,0,225,25,60,0,226,25,60,0,227,25,60,0,228,25,60,0,229,25,60,0,230,25,60,0,231,25,60,0,232,25,60,0,233,25,60,0,234,25,60,0,235,25,60,0,236,25,60,0,237,25,60,0,238,25,60,0,239,25,60,0,240,25,60,0,241,25,60,0,242,25,60,0,243,25,60,0,244,25,60,0,245,25,60,0,246,25,60,0,247,25,60,0,248,25,60,0,249,25,60,0,250,25,60,0,251,25,60,0,252,25,60,0,253,25,60,0,254,25,60,0,255,25,60,0,97,27,60,0,98,27,60,0,99,27,60,0,100,27,60,0,101,27,60,0,102,27,60,0,103,27,60,0,104,27,60,0,105,27,60,0,106,27,60,0,116,27,60,0,117,27,60,0,118,27,60,0,119,27,60,0,120,27,60,0,121,27,60,0,122,27,60,0,123,27,60,0,124,27,60,0,169,0,60,0,60,216,47,221,60,0,174,0,60,0,60,216,173,221,60,0,4,33,60,0,8,33,60,0,20,33,60,0,23,33,60,0,24,33,60,0,30,33,60,0,31,33,60,0,35,33,60,0,37,33,60,0,39,33,60,0,41,33,60,0,46,33,60,0,58,33,60,0,65,33,60,0,66,33,60,0,67,33,60,0,68,33,60,0,74,33,60,0,76,33,60,0,79,33,60,0,138,33,60,0,139,33,60,0,144,33,60,0,60,0,60,0,233,255,60,0,146,33,60,0,60,0,60,0,235,255,60,0,145,33,60,0,60,0,60,0,234,255,60,0,147,33,60,0,60,0,60,0,236,255,60,0,148,33,60,0,149,33,60,0,150,33,60,0,151,33,60,0,152,33,60,0,153,33,60,0,156,33,60,0,157,33,60,0,158,33,60,0,159,33,60,0,160,33,60,0,161,33,60,0,162,33,60,0,163,33,60,0,164,33,60,0,165,33,60,0,166,33,60,0,167,33,60,0,168,33,60,0,169,33,60,0,170,33,60,0,171,33,60,0,172,33,60,0,173,33,60,0,175,33,60,0,176,33,60,0,177,33,60,0,178,33,60,0,179,33,60,0,180,33,60,0,181,33,60,0,182,33,60,0,183,33,60,0,184,33,60,0,185,33,60,0,186,33,60,0,187,33,60,0,188,33,60,0,189,33,60,0,190,33,60,0,191,33,60,0,192,33,60,0,193,33,60,0,194,33,60,0,195,33,60,0,196,33,60,0,197,33,60,0,198,33,60,0,199,33,60,0,200,33,60,0,201,33,60,0,202,33,60,0,203,33,60,0,204,33,60,0,208,33,60,0,209,33,60,0,210,33,60,0,211,33,60,0,212,33,60,0,213,33,60,0,214,33,60,0,215,33,60,0,216,33,60,0,217,33,60,0,218,33,60,0,219,33,60,0,220,33,60,0,221,33,60,0,222,33,60,0,223,33,60,0,224,33,60,0,225,33,60,0,226,33,60,0,227,33,60,0,228,33,60,0,229,33,60,0,230,33,60,0,231,33,60,0,232,33,60,0,233,33,60,0,234,33,60,0,235,33,60,0,236,33,60,0,237,33,60,0,238,33,60,0,239,33,60,0,240,33,60,0,241,33,60,0,242,33,60,0,243,33,60,0,244,33,60,0,245,33,60,0,246,33,60,0,247,33,60,0,248,33,60,0,249,33,60,0,250,33,60,0,251,33,60,0,252,33,60,0,253,33,60,0,254,33,60,0,255,33,60,0,0,34,60,0,1,34,60,0,2,34,60,0,60,0,60,0,53,216,219,222,61,0,53,216,21,223,61,0,53,216,79,223,61,0,53,216,137,223,61,0,53,216,195,223,60,0,3,34,60,0,5,34,60,0,6,34,60,0,7,34,60,0,60,0,60,0,53,216,193,222,61,0,53,216,251,222,61,0,53,216,53,223,61,0,53,216,111,223,61,0,53,216,169,223,60,0,8,34,60,0,10,34,60,0,11,34,60,0,13,34,60,0,246,3,60,0,14,34,60,0,15,34,60,0,16,34,60,0,17,34,60,0,60,0,60,0,64,33,60,0,39,0,43,0,39,0,60,0,60,0,60,0,11,255,60,0,60,0,60,0,41,251,60,0,60,0,60,0,98,254,60,0,60,0,60,0,122,32,60,0,60,0,60,0,138,32,60,0,177,0,60,0,247,0,60,0,215,0,60,0,39,0,60,0,39,0,60,0,60,0,60,0,28,255,60,0,60,0,60,0,100,254,60,0,39,0,61,0,39,0,60,0,60,0,60,0,29,255,60,0,60,0,60,0,117,42,47,0,39,0,61,0,39,0,60,0,60,0,60,0,118,42,47,0,39,0,61,0,61,0,39,0,60,0,60,0,60,0,102,254,60,0,60,0,60,0,124,32,60,0,60,0,60,0,140,32,60,0,39,0,62,0,39,0,60,0,60,0,60,0,30,255,60,0,60,0,60,0,101,254,60,0,172,0,60,0,60,0,60,0,226,255,60,0,39,0,124,0,39,0,60,0,60,0,60,0,92,255,60,0,166,0,60,0,60,0,60,0,228,255,60,0,39,0,126,0,39,0,60,0,60,0,60,0,94,255,60,0,18,34,60,0,60,0,60,0,123,32,60,0,60,0,60,0,139,32,60,0,82,32,60,0,19,34,60,0,20,34,60,0,21,34,60,0,68,32,60,0,22,34,60,0,23,34,60,0,24,34,60,0,25,34,60,0,26,34,60,0,27,34,60,0,6,6,60,0,28,34,60,0,7,6,60,0,29,34,60,0,30,34,60,0,31,34,60,0,32,34,60,0,33,34,60,0,34,34,60,0,35,34,60,0,37,34,60,0,39,34,60,0,40,34,60,0,41,34,60,0,42,34,60,0,43,34,60,0,60,0,60,0,44,34,47,0,43,34,60,0,60,0,60,0,45,34,47,0,43,34,43,34,60,0,60,0,60,0,12,42,47,0,43,34,43,34,43,34,60,0,46,34,60,0,60,0,60,0,47,34,47,0,46,34,60,0,60,0,60,0,48,34,47,0,46,34,46,34,60,0,49,34,60,0,50,34,60,0,51,34,60,0,52,34,60,0,53,34,60,0,54,34,60,0,55,34,60,0,56,34,60,0,57,34,60,0,58,34,60,0,59,34,60,0,60,34,60,0,61,34,60,0,62,34,60,0,63,34,60,0,64,34,60,0,66,34,60,0,67,34,60,0,69,34,60,0,70,34,60,0,72,34,60,0,74,34,60,0,75,34,60,0,76,34,60,0,77,34,60,0,78,34,60,0,79,34,60,0,80,34,60,0,81,34,60,0,82,34,60,0,83,34,60,0,84,34,60,0,85,34,60,0,86,34,60,0,87,34,60,0,88,34,60,0,89,34,60,0,90,34,60,0,91,34,60,0,92,34,60,0,93,34,60,0,94,34,60,0,95,34,60,0,97,34,60,0,99,34,60,0,100,34,60,0,101,34,60,0,102,34,60,0,103,34,60,0,104,34,60,0,105,34,60,0,106,34,60,0,107,34,60,0,108,34,60,0,114,34,60,0,115,34,60,0,118,34,60,0,119,34,60,0,122,34,60,0,123,34,60,0,124,34,60,0,125,34,60,0,126,34,60,0,127,34,60,0,130,34,60,0,131,34,60,0,134,34,60,0,135,34,60,0,138,34,60,0,139,34,60,0,140,34,60,0,141,34,60,0,142,34,60,0,143,34,60,0,144,34,60,0,145,34,60,0,146,34,60,0,147,34,60,0,148,34,60,0,149,34,60,0,150,34,60,0,151,34,60,0,152,34,60,0,153,34,60,0,154,34,60,0,155,34,60,0,156,34,60,0,157,34,60,0,158,34,60,0,159,34,60,0,160,34,60,0,161,34,60,0,162,34,60,0,163,34,60,0,164,34,60,0,165,34,60,0,166,34,60,0,167,34,60,0,168,34,60,0,169,34,60,0,170,34,60,0,171,34,60,0,176,34,60,0,177,34,60,0,178,34,60,0,179,34,60,0,180,34,60,0,181,34,60,0,182,34,60,0,183,34,60,0,184,34,60,0,185,34,60,0,186,34,60,0,187,34,60,0,188,34,60,0,75,33,60,0,189,34,60,0,190,34,60,0,191,34,60,0,192,34,60,0,193,34,60,0,194,34,60,0,195,34,60,0,196,34,60,0,197,34,60,0,198,34,60,0,199,34,60,0,200,34,60,0,201,34,60,0,202,34,60,0,203,34,60,0,204,34,60,0,205,34,60,0,206,34,60,0,207,34,60,0,208,34,60,0,209,34,60,0,210,34,60,0,211,34,60,0,212,34,60,0,213,34,60,0,214,34,60,0,215,34,60,0,216,34,60,0,217,34,60,0,218,34,60,0,219,34,60,0,220,34,60,0,221,34,60,0,222,34,60,0,223,34,60,0,228,34,60,0,229,34,60,0,230,34,60,0,231,34,60,0,232,34,60,0,233,34,60,0,238,34,60,0,239,34,60,0,240,34,60,0,241,34,60,0,242,34,60,0,243,34,60,0,244,34,60,0,245,34,60,0,246,34,60,0,247,34,60,0,248,34,60,0,249,34,60,0,250,34,60,0,251,34,60,0,252,34,60,0,253,34,60,0,254,34,60,0,255,34,60,0,0,35,60,0,1,35,60,0,2,35,60,0,3,35,60,0,4,35,60,0,5,35,60,0,6,35,60,0,7,35,60,0,12,35,60,0,13,35,60,0,14,35,60,0,15,35,60,0,16,35,60,0,17,35,60,0,18,35,60,0,19,35,60,0,20,35,60,0,21,35,60,0,22,35,60,0,23,35,60,0,24,35,60,0,25,35,60,0,26,35,60,0,27,35,60,0,28,35,60,0,29,35,60,0,30,35,60,0,31,35,60,0,32,35,60,0,33,35,60,0,34,35,60,0,35,35,60,0,36,35,60,0,37,35,60,0,38,35,60,0,39,35,60,0,40,35,60,0,43,35,60,0,44,35,60,0,45,35,60,0,46,35,60,0,47,35,60,0,48,35,60,0,49,35,60,0,50,35,60,0,51,35,60,0,52,35,60,0,53,35,60,0,54,35,60,0,55,35,60,0,56,35,60,0,57,35,60,0,58,35,60,0,59,35,60,0,60,35,60,0,61,35,60,0,62,35,60,0,63,35,60,0,64,35,60,0,65,35,60,0,66,35,60,0,67,35,60,0,68,35,60,0,69,35,60,0,70,35,60,0,71,35,60,0,72,35,60,0,73,35,60,0,74,35,60,0,75,35,60,0,76,35,60,0,77,35,60,0,78,35,60,0,79,35,60,0,80,35,60,0,81,35,60,0,82,35,60,0,83,35,60,0,84,35,60,0,85,35,60,0,86,35,60,0,87,35,60,0,88,35,60,0,89,35,60,0,90,35,60,0,91,35,60,0,92,35,60,0,93,35,60,0,94,35,60,0,95,35,60,0,96,35,60,0,97,35,60,0,98,35,60,0,99,35,60,0,100,35,60,0,101,35,60,0,102,35,60,0,103,35,60,0,104,35,60,0,105,35,60,0,106,35,60,0,107,35,60,0,108,35,60,0,109,35,60,0,110,35,60,0,111,35,60,0,112,35,60,0,113,35,60,0,114,35,60,0,115,35,60,0,116,35,60,0,117,35,60,0,118,35,60,0,119,35,60,0,120,35,60,0,121,35,60,0,122,35,60,0,123,35,60,0,124,35,60,0,125,35,60,0,126,35,60,0,127,35,60,0,128,35,60,0,129,35,60,0,130,35,60,0,131,35,60,0,132,35,60,0,133,35,60,0,134,35,60,0,135,35,60,0,136,35,60,0,137,35,60,0,138,35,60,0,139,35,60,0,140,35,60,0,141,35,60,0,142,35,60,0,143,35,60,0,144,35,60,0,145,35,60,0,146,35,60,0,147,35,60,0,148,35,60,0,149,35,60,0,150,35,60,0,151,35,60,0,152,35,60,0,153,35,60,0,154,35,60,0,155,35,60,0,156,35,60,0,157,35,60,0,158,35,60,0,159,35,60,0,160,35,60,0,161,35,60,0,162,35,60,0,163,35,60,0,164,35,60,0,165,35,60,0,166,35,60,0,167,35,60,0,168,35,60,0,169,35,60,0,170,35,60,0,171,35,60,0,172,35,60,0,173,35,60,0,174,35,60,0,175,35,60,0,176,35,60,0,177,35,60,0,178,35,60,0,179,35,60,0,180,35,60,0,181,35,60,0,182,35,60,0,183,35,60,0,184,35,60,0,185,35,60,0,186,35,60,0,187,35,60,0,188,35,60,0,189,35,60,0,190,35,60,0,191,35,60,0,192,35,60,0,193,35,60,0,194,35,60,0,195,35,60,0,196,35,60,0,197,35,60,0,198,35,60,0,199,35,60,0,200,35,60,0,201,35,60,0,202,35,60,0,203,35,60,0,204,35,60,0,205,35,60,0,206,35,60,0,207,35,60,0,208,35,60,0,209,35,60,0,210,35,60,0,211,35,60,0,212,35,60,0,213,35,60,0,214,35,60,0,215,35,60,0,216,35,60,0,217,35,60,0,218,35,60,0,219,35,60,0,220,35,60,0,221,35,60,0,222,35,60,0,223,35,60,0,224,35,60,0,225,35,60,0,226,35,60,0,227,35,60,0,228,35,60,0,229,35,60,0,230,35,60,0,231,35,60,0,232,35,60,0,233,35,60,0,234,35,60,0,235,35,60,0,236,35,60,0,237,35,60,0,238,35,60,0,239,35,60,0,240,35,60,0,241,35,60,0,242,35,60,0,243,35,60,0,244,35,60,0,245,35,60,0,246,35,60,0,247,35,60,0,248,35,60,0,249,35,60,0,250,35,60,0,251,35,60,0,252,35,60,0,253,35,60,0,254,35,60,0,255,35,60,0,0,36,60,0,1,36,60,0,2,36,60,0,3,36,60,0,4,36,60,0,5,36,60,0,6,36,60,0,7,36,60,0,8,36,60,0,9,36,60,0,10,36,60,0,11,36,60,0,12,36,60,0,13,36,60,0,14,36,60,0,15,36,60,0,16,36,60,0,17,36,60,0,18,36,60,0,19,36,60,0,20,36,60,0,21,36,60,0,22,36,60,0,23,36,60,0,24,36,60,0,25,36,60,0,26,36,60,0,27,36,60,0,28,36,60,0,29,36,60,0,30,36,60,0,31,36,60,0,32,36,60,0,33,36,60,0,34,36,60,0,35,36,60,0,36,36,60,0,37,36,60,0,38,36,60,0,64,36,60,0,65,36,60,0,66,36,60,0,67,36,60,0,68,36,60,0,69,36,60,0,70,36,60,0,71,36,60,0,72,36,60,0,73,36,60,0,74,36,60,0,0,37,60,0,1,37,60,0,2,37,60,0,60,0,60,0,232,255,60,0,3,37,60,0,4,37,60,0,5,37,60,0,6,37,60,0,7,37,60,0,8,37,60,0,9,37,60,0,10,37,60,0,11,37,60,0,12,37,60,0,13,37,60,0,14,37,60,0,15,37,60,0,16,37,60,0,17,37,60,0,18,37,60,0,19,37,60,0,20,37,60,0,21,37,60,0,22,37,60,0,23,37,60,0,24,37,60,0,25,37,60,0,26,37,60,0,27,37,60,0,28,37,60,0,29,37,60,0,30,37,60,0,31,37,60,0,32,37,60,0,33,37,60,0,34,37,60,0,35,37,60,0,36,37,60,0,37,37,60,0,38,37,60,0,39,37,60,0,40,37,60,0,41,37,60,0,42,37,60,0,43,37,60,0,44,37,60,0,45,37,60,0,46,37,60,0,47,37,60,0,48,37,60,0,49,37,60,0,50,37,60,0,51,37,60,0,52,37,60,0,53,37,60,0,54,37,60,0,55,37,60,0,56,37,60,0,57,37,60,0,58,37,60,0,59,37,60,0,60,37,60,0,61,37,60,0,62,37,60,0,63,37,60,0,64,37,60,0,65,37,60,0,66,37,60,0,67,37,60,0,68,37,60,0,69,37,60,0,70,37,60,0,71,37,60,0,72,37,60,0,73,37,60,0,74,37,60,0,75,37,60,0,76,37,60,0,77,37,60,0,78,37,60,0,79,37,60,0,80,37,60,0,81,37,60,0,82,37,60,0,83,37,60,0,84,37,60,0,85,37,60,0,86,37,60,0,87,37,60,0,88,37,60,0,89,37,60,0,90,37,60,0,91,37,60,0,92,37,60,0,93,37,60,0,94,37,60,0,95,37,60,0,96,37,60,0,97,37,60,0,98,37,60,0,99,37,60,0,100,37,60,0,101,37,60,0,102,37,60,0,103,37,60,0,104,37,60,0,105,37,60,0,106,37,60,0,107,37,60,0,108,37,60,0,109,37,60,0,110,37,60,0,111,37,60,0,112,37,60,0,113,37,60,0,114,37,60,0,115,37,60,0,116,37,60,0,117,37,60,0,118,37,60,0,119,37,60,0,120,37,60,0,121,37,60,0,122,37,60,0,123,37,60,0,124,37,60,0,125,37,60,0,126,37,60,0,127,37,60,0,128,37,60,0,129,37,60,0,130,37,60,0,131,37,60,0,132,37,60,0,133,37,60,0,134,37,60,0,135,37,60,0,136,37,60,0,137,37,60,0,138,37,60,0,139,37,60,0,140,37,60,0,141,37,60,0,142,37,60,0,143,37,60,0,144,37,60,0,145,37,60,0,146,37,60,0,147,37,60,0,148,37,60,0,149,37,60,0,150,37,60,0,151,37,60,0,152,37,60,0,153,37,60,0,154,37,60,0,155,37,60,0,156,37,60,0,157,37,60,0,158,37,60,0,159,37,60,0,160,37,60,0,60,0,60,0,237,255,60,0,161,37,60,0,162,37,60,0,163,37,60,0,164,37,60,0,165,37,60,0,166,37,60,0,167,37,60,0,168,37,60,0,169,37,60,0,170,37,60,0,171,37,60,0,172,37,60,0,173,37,60,0,174,37,60,0,175,37,60,0,176,37,60,0,177,37,60,0,178,37,60,0,179,37,60,0,180,37,60,0,181,37,60,0,182,37,60,0,183,37,60,0,184,37,60,0,185,37,60,0,186,37,60,0,187,37,60,0,188,37,60,0,189,37,60,0,190,37,60,0,191,37,60,0,192,37,60,0,193,37,60,0,194,37,60,0,195,37,60,0,196,37,60,0,197,37,60,0,198,37,60,0,199,37,60,0,200,37,60,0,201,37,60,0,202,37,60,0,203,37,60,0,60,0,60,0,238,255,60,0,204,37,60,0,205,37,60,0,206,37,60,0,207,37,60,0,208,37,60,0,209,37,60,0,210,37,60,0,211,37,60,0,212,37,60,0,213,37,60,0,214,37,60,0,215,37,60,0,216,37,60,0,217,37,60,0,218,37,60,0,219,37,60,0,220,37,60,0,221,37,60,0,222,37,60,0,223,37,60,0,224,37,60,0,225,37,60,0,226,37,60,0,227,37,60,0,228,37,60,0,229,37,60,0,230,37,60,0,231,37,60,0,232,37,60,0,233,37,60,0,234,37,60,0,235,37,60,0,236,37,60,0,237,37,60,0,238,37,60,0,239,37,60,0,240,37,60,0,241,37,60,0,242,37,60,0,243,37,60,0,244,37,60,0,245,37,60,0,246,37,60,0,247,37,60,0,248,37,60,0,249,37,60,0,250,37,60,0,251,37,60,0,252,37,60,0,253,37,60,0,254,37,60,0,255,37,60,0,62,216,0,223,60,0,62,216,1,223,60,0,62,216,2,223,60,0,62,216,3,223,60,0,62,216,4,223,60,0,62,216,5,223,60,0,62,216,6,223,60,0,62,216,7,223,60,0,62,216,8,223,60,0,62,216,9,223,60,0,62,216,10,223,60,0,62,216,11,223,60,0,62,216,12,223,60,0,62,216,13,223,60,0,62,216,14,223,60,0,62,216,15,223,60,0,62,216,16,223,60,0,62,216,17,223,60,0,62,216,18,223,60,0,62,216,19,223,60,0,62,216,20,223,60,0,62,216,21,223,60,0,62,216,22,223,60,0,62,216,23,223,60,0,62,216,24,223,60,0,62,216,25,223,60,0,62,216,26,223,60,0,62,216,27,223,60,0,62,216,28,223,60,0,62,216,29,223,60,0,62,216,30,223,60,0,62,216,31,223,60,0,62,216,32,223,60,0,62,216,33,223,60,0,62,216,34,223,60,0,62,216,35,223,60,0,62,216,36,223,60,0,62,216,37,223,60,0,62,216,38,223,60,0,62,216,39,223,60,0,62,216,40,223,60,0,62,216,41,223,60,0,62,216,42,223,60,0,62,216,43,223,60,0,62,216,44,223,60,0,62,216,45,223,60,0,62,216,46,223,60,0,62,216,47,223,60,0,62,216,48,223,60,0,62,216,49,223,60,0,62,216,50,223,60,0,62,216,51,223,60,0,62,216,52,223,60,0,62,216,53,223,60,0,62,216,54,223,60,0,62,216,55,223,60,0,62,216,56,223,60,0,62,216,57,223,60,0,62,216,58,223,60,0,62,216,59,223,60,0,62,216,60,223,60,0,62,216,61,223,60,0,62,216,62,223,60,0,62,216,63,223,60,0,62,216,64,223,60,0,62,216,65,223,60,0,62,216,66,223,60,0,62,216,67,223,60,0,62,216,68,223,60,0,62,216,69,223,60,0,62,216,70,223,60,0,62,216,71,223,60,0,62,216,72,223,60,0,62,216,73,223,60,0,62,216,74,223,60,0,62,216,75,223,60,0,62,216,76,223,60,0,62,216,77,223,60,0,62,216,78,223,60,0,62,216,79,223,60,0,62,216,80,223,60,0,62,216,81,223,60,0,62,216,82,223,60,0,62,216,83,223,60,0,62,216,84,223,60,0,62,216,85,223,60,0,62,216,86,223,60,0,62,216,87,223,60,0,62,216,88,223,60,0,62,216,89,223,60,0,62,216,90,223,60,0,62,216,91,223,60,0,62,216,92,223,60,0,62,216,93,223,60,0,62,216,94,223,60,0,62,216,95,223,60,0,62,216,96,223,60,0,62,216,97,223,60,0,62,216,98,223,60,0,62,216,99,223,60,0,62,216,100,223,60,0,62,216,101,223,60,0,62,216,102,223,60,0,62,216,103,223,60,0,62,216,104,223,60,0,62,216,105,223,60,0,62,216,106,223,60,0,62,216,107,223,60,0,62,216,108,223,60,0,62,216,109,223,60,0,62,216,110,223,60,0,62,216,111,223,60,0,62,216,112,223,60,0,62,216,113,223,60,0,62,216,114,223,60,0,62,216,115,223,60,0,62,216,116,223,60,0,62,216,117,223,60,0,62,216,118,223,60,0,62,216,119,223,60,0,62,216,120,223,60,0,62,216,121,223,60,0,62,216,122,223,60,0,62,216,123,223,60,0,62,216,124,223,60,0,62,216,125,223,60,0,62,216,126,223,60,0,62,216,127,223,60,0,62,216,128,223,60,0,62,216,129,223,60,0,62,216,130,223,60,0,62,216,131,223,60,0,62,216,132,223,60,0,62,216,133,223,60,0,62,216,134,223,60,0,62,216,135,223,60,0,62,216,136,223,60,0,62,216,137,223,60,0,62,216,138,223,60,0,62,216,139,223,60,0,62,216,140,223,60,0,62,216,141,223,60,0,62,216,142,223,60,0,62,216,143,223,60,0,62,216,144,223,60,0,62,216,145,223,60,0,62,216,146,223,60,0,62,216,148,223,60,0,62,216,149,223,60,0,62,216,150,223,60,0,62,216,151,223,60,0,62,216,152,223,60,0,62,216,153,223,60,0,62,216,154,223,60,0,62,216,155,223,60,0,62,216,156,223,60,0,62,216,157,223,60,0,62,216,158,223,60,0,62,216,159,223,60,0,62,216,160,223,60,0,62,216,161,223,60,0,62,216,162,223,60,0,62,216,163,223,60,0,62,216,164,223,60,0,62,216,165,223,60,0,62,216,166,223,60,0,62,216,167,223,60,0,62,216,168,223,60,0,62,216,169,223,60,0,62,216,170,223,60,0,62,216,171,223,60,0,62,216,172,223,60,0,62,216,173,223,60,0,62,216,174,223,60,0,62,216,175,223,60,0,62,216,176,223,60,0,62,216,177,223,60,0,62,216,178,223,60,0,62,216,179,223,60,0,62,216,180,223,60,0,62,216,181,223,60,0,62,216,182,223,60,0,62,216,183,223,60,0,62,216,184,223,60,0,62,216,185,223,60,0,62,216,186,223,60,0,62,216,187,223,60,0,62,216,188,223,60,0,62,216,189,223,60,0,62,216,190,223,60,0,62,216,191,223,60,0,62,216,192,223,60,0,62,216,193,223,60,0,62,216,194,223,60,0,62,216,195,223,60,0,62,216,196,223,60,0,62,216,197,223,60,0,62,216,198,223,60,0,62,216,199,223,60,0,62,216,200,223,60,0,62,216,201,223,60,0,62,216,202,223,60,0,0,38,60,0,1,38,60,0,2,38,60,0,3,38,60,0,4,38,60,0,5,38,60,0,6,38,60,0,7,38,60,0,8,38,60,0,9,38,60,0,10,38,60,0,11,38,60,0,12,38,60,0,13,38,60,0,14,38,60,0,15,38,60,0,16,38,60,0,17,38,60,0,18,38,60,0,19,38,60,0,20,38,60,0,21,38,60,0,22,38,60,0,23,38,60,0,24,38,60,0,25,38,60,0,26,38,60,0,27,38,60,0,28,38,60,0,29,38,60,0,30,38,60,0,31,38,60,0,32,38,60,0,33,38,60,0,34,38,60,0,35,38,60,0,36,38,60,0,37,38,60,0,38,38,60,0,39,38,60,0,40,38,60,0,41,38,60,0,42,38,60,0,43,38,60,0,44,38,60,0,45,38,60,0,46,38,60,0,47,38,60,0,56,38,60,0,57,38,60,0,58,38,60,0,59,38,60,0,60,38,60,0,61,38,60,0,62,38,60,0,63,38,60,0,64,38,60,0,65,38,60,0,66,38,60,0,67,38,60,0,68,38,60,0,69,38,60,0,70,38,60,0,71,38,60,0,72,38,60,0,73,38,60,0,74,38,60,0,75,38,60,0,76,38,60,0,77,38,60,0,78,38,60,0,79,38,60,0,80,38,60,0,81,38,60,0,82,38,60,0,83,38,60,0,84,38,60,0,85,38,60,0,86,38,60,0,87,38,60,0,88,38,60,0,89,38,60,0,90,38,60,0,91,38,60,0,92,38,60,0,93,38,60,0,94,38,60,0,95,38,60,0,96,38,60,0,97,38,60,0,98,38,60,0,99,38,60,0,100,38,60,0,101,38,60,0,102,38,60,0,103,38,60,0,104,38,60,0,105,38,60,0,106,38,60,0,107,38,60,0,108,38,60,0,112,38,60,0,113,38,60,0,114,38,60,0,115,38,60,0,116,38,60,0,117,38,60,0,118,38,60,0,119,38,60,0,120,38,60,0,121,38,60,0,122,38,60,0,123,38,60,0,124,38,60,0,125,38,60,0,126,38,60,0,127,38,60,0,128,38,60,0,129,38,60,0,130,38,60,0,131,38,60,0,132,38,60,0,133,38,60,0,134,38,60,0,135,38,60,0,136,38,60,0,137,38,60,0,144,38,60,0,145,38,60,0,146,38,60,0,147,38,60,0,148,38,60,0,149,38,60,0,150,38,60,0,151,38,60,0,152,38,60,0,153,38,60,0,154,38,60,0,155,38,60,0,156,38,60,0,157,38,60,0,158,38,60,0,159,38,60,0,160,38,60,0,161,38,60,0,162,38,60,0,163,38,60,0,164,38,60,0,165,38,60,0,166,38,60,0,167,38,60,0,168,38,60,0,169,38,60,0,170,38,60,0,171,38,60,0,172,38,60,0,173,38,60,0,174,38,60,0,175,38,60,0,176,38,60,0,177,38,60,0,178,38,60,0,179,38,60,0,180,38,60,0,181,38,60,0,182,38,60,0,183,38,60,0,184,38,60,0,185,38,60,0,186,38,60,0,187,38,60,0,188,38,60,0,189,38,60,0,190,38,60,0,191,38,60,0,192,38,60,0,193,38,60,0,194,38,60,0,195,38,60,0,196,38,60,0,197,38,60,0,198,38,60,0,199,38,60,0,200,38,60,0,201,38,60,0,202,38,60,0,203,38,60,0,204,38,60,0,205,38,60,0,206,38,60,0,207,38,60,0,208,38,60,0,209,38,60,0,210,38,60,0,211,38,60,0,212,38,60,0,213,38,60,0,214,38,60,0,215,38,60,0,216,38,60,0,217,38,60,0,218,38,60,0,219,38,60,0,220,38,60,0,221,38,60,0,222,38,60,0,223,38,60,0,224,38,60,0,225,38,60,0,226,38,60,0,227,38,60,0,228,38,60,0,229,38,60,0,230,38,60,0,231,38,60,0,232,38,60,0,233,38,60,0,234,38,60,0,235,38,60,0,236,38,60,0,237,38,60,0,238,38,60,0,239,38,60,0,240,38,60,0,241,38,60,0,242,38,60,0,243,38,60,0,244,38,60,0,245,38,60,0,246,38,60,0,247,38,60,0,248,38,60,0,249,38,60,0,250,38,60,0,251,38,60,0,252,38,60,0,253,38,60,0,254,38,60,0,255,38,60,0,60,216,230,221,60,0,60,216,231,221,60,0,60,216,232,221,60,0,60,216,233,221,60,0,60,216,234,221,60,0,60,216,235,221,60,0,60,216,236,221,60,0,60,216,237,221,60,0,60,216,238,221,60,0,60,216,239,221,60,0,60,216,240,221,60,0,60,216,241,221,60,0,60,216,242,221,60,0,60,216,243,221,60,0,60,216,244,221,60,0,60,216,245,221,60,0,60,216,246,221,60,0,60,216,247,221,60,0,60,216,248,221,60,0,60,216,249,221,60,0,60,216,250,221,60,0,60,216,251,221,60,0,60,216,252,221,60,0,60,216,253,221,60,0,60,216,254,221,60,0,60,216,255,221,60,0,0,39,60,0,1,39,60,0,2,39,60,0,3,39,60,0,4,39,60,0,5,39,60,0,6,39,60,0,7,39,60,0,8,39,60,0,9,39,60,0,10,39,60,0,11,39,60,0,12,39,60,0,13,39,60,0,14,39,60,0,15,39,60,0,16,39,60,0,17,39,60,0,18,39,60,0,19,39,60,0,20,39,60,0,21,39,60,0,22,39,60,0,23,39,60,0,24,39,60,0,25,39,60,0,26,39,60,0,27,39,60,0,28,39,60,0,29,39,60,0,30,39,60,0,31,39,60,0,32,39,60,0,80,46,60,0,81,46,60,0,33,39,60,0,34,39,60,0,35,39,60,0,36,39,60,0,37,39,60,0,38,39,60,0,39,39,60,0,40,39,60,0,41,39,60,0,42,39,60,0,43,39,60,0,44,39,60,0,45,39,60,0,46,39,60,0,47,39,60,0,48,39,60,0,49,39,60,0,50,39,60,0,51,39,60,0,52,39,60,0,53,39,60,0,54,39,60,0,55,39,60,0,56,39,60,0,57,39,60,0,58,39,60,0,59,39,60,0,60,39,60,0,61,39,60,0,62,39,60,0,63,39,60,0,64,39,60,0,65,39,60,0,66,39,60,0,67,39,60,0,68,39,60,0,69,39,60,0,70,39,60,0,71,39,60,0,72,39,60,0,73,39,60,0,74,39,60,0,75,39,60,0,76,39,60,0,77,39,60,0,78,39,60,0,79,39,60,0,80,39,60,0,81,39,60,0,82,39,60,0,83,39,60,0,84,39,60,0,85,39,60,0,86,39,60,0,87,39,60,0,88,39,60,0,89,39,60,0,90,39,60,0,91,39,60,0,92,39,60,0,93,39,60,0,94,39,60,0,95,39,60,0,96,39,60,0,97,39,60,0,98,39,60,0,99,39,60,0,100,39,60,0,101,39,60,0,102,39,60,0,103,39,60,0,148,39,60,0,149,39,60,0,150,39,60,0,151,39,60,0,152,39,60,0,153,39,60,0,154,39,60,0,155,39,60,0,156,39,60,0,157,39,60,0,158,39,60,0,159,39,60,0,160,39,60,0,161,39,60,0,162,39,60,0,163,39,60,0,164,39,60,0,165,39,60,0,166,39,60,0,167,39,60,0,168,39,60,0,169,39,60,0,170,39,60,0,171,39,60,0,172,39,60,0,173,39,60,0,174,39,60,0,175,39,60,0,176,39,60,0,177,39,60,0,178,39,60,0,179,39,60,0,180,39,60,0,181,39,60,0,182,39,60,0,183,39,60,0,184,39,60,0,185,39,60,0,186,39,60,0,187,39,60,0,188,39,60,0,189,39,60,0,190,39,60,0,191,39,60,0,192,39,60,0,193,39,60,0,194,39,60,0,195,39,60,0,196,39,60,0,199,39,60,0,200,39,60,0,201,39,60,0,202,39,60,0,203,39,60,0,204,39,60,0,205,39,60,0,206,39,60,0,207,39,60,0,208,39,60,0,209,39,60,0,210,39,60,0,211,39,60,0,212,39,60,0,213,39,60,0,214,39,60,0,215,39,60,0,216,39,60,0,217,39,60,0,218,39,60,0,219,39,60,0,220,39,60,0,221,39,60,0,222,39,60,0,223,39,60,0,224,39,60,0,225,39,60,0,226,39,60,0,227,39,60,0,228,39,60,0,229,39,60,0,240,39,60,0,241,39,60,0,242,39,60,0,243,39,60,0,244,39,60,0,245,39,60,0,246,39,60,0,247,39,60,0,248,39,60,0,249,39,60,0,250,39,60,0,251,39,60,0,252,39,60,0,253,39,60,0,254,39,60,0,255,39,60,0,0,41,60,0,1,41,60,0,2,41,60,0,3,41,60,0,4,41,60,0,5,41,60,0,6,41,60,0,7,41,60,0,8,41,60,0,9,41,60,0,10,41,60,0,11,41,60,0,12,41,60,0,13,41,60,0,14,41,60,0,15,41,60,0,16,41,60,0,17,41,60,0,18,41,60,0,19,41,60,0,20,41,60,0,21,41,60,0,22,41,60,0,23,41,60,0,24,41,60,0,25,41,60,0,26,41,60,0,27,41,60,0,28,41,60,0,29,41,60,0,30,41,60,0,31,41,60,0,32,41,60,0,33,41,60,0,34,41,60,0,35,41,60,0,36,41,60,0,37,41,60,0,38,41,60,0,39,41,60,0,40,41,60,0,41,41,60,0,42,41,60,0,43,41,60,0,44,41,60,0,45,41,60,0,46,41,60,0,47,41,60,0,48,41,60,0,49,41,60,0,50,41,60,0,51,41,60,0,52,41,60,0,53,41,60,0,54,41,60,0,55,41,60,0,56,41,60,0,57,41,60,0,58,41,60,0,59,41,60,0,60,41,60,0,61,41,60,0,62,41,60,0,63,41,60,0,64,41,60,0,65,41,60,0,66,41,60,0,67,41,60,0,68,41,60,0,69,41,60,0,70,41,60,0,71,41,60,0,72,41,60,0,73,41,60,0,74,41,60,0,75,41,60,0,76,41,60,0,77,41,60,0,78,41,60,0,79,41,60,0,80,41,60,0,81,41,60,0,82,41,60,0,83,41,60,0,84,41,60,0,85,41,60,0,86,41,60,0,87,41,60,0,88,41,60,0,89,41,60,0,90,41,60,0,91,41,60,0,92,41,60,0,93,41,60,0,94,41,60,0,95,41,60,0,96,41,60,0,97,41,60,0,98,41,60,0,99,41,60,0,100,41,60,0,101,41,60,0,102,41,60,0,103,41,60,0,104,41,60,0,105,41,60,0,106,41,60,0,107,41,60,0,108,41,60,0,109,41,60,0,110,41,60,0,111,41,60,0,112,41,60,0,113,41,60,0,114,41,60,0,115,41,60,0,116,41,60,0,117,41,60,0,118,41,60,0,119,41,60,0,120,41,60,0,121,41,60,0,122,41,60,0,123,41,60,0,124,41,60,0,125,41,60,0,126,41,60,0,127,41,60,0,128,41,60,0,129,41,60,0,130,41,60,0,153,41,60,0,154,41,60,0,155,41,60,0,156,41,60,0,157,41,60,0,158,41,60,0,159,41,60,0,160,41,60,0,161,41,60,0,162,41,60,0,163,41,60,0,164,41,60,0,165,41,60,0,166,41,60,0,167,41,60,0,168,41,60,0,169,41,60,0,170,41,60,0,171,41,60,0,172,41,60,0,173,41,60,0,174,41,60,0,175,41,60,0,176,41,60,0,177,41,60,0,178,41,60,0,179,41,60,0,180,41,60,0,181,41,60,0,182,41,60,0,183,41,60,0,184,41,60,0,185,41,60,0,186,41,60,0,187,41,60,0,188,41,60,0,189,41,60,0,190,41,60,0,191,41,60,0,192,41,60,0,193,41,60,0,194,41,60,0,195,41,60,0,196,41,60,0,197,41,60,0,198,41,60,0,199,41,60,0,200,41,60,0,201,41,60,0,202,41,60,0,203,41,60,0,204,41,60,0,205,41,60,0,206,41,60,0,207,41,60,0,208,41,60,0,209,41,60,0,210,41,60,0,211,41,60,0,212,41,60,0,213,41,60,0,214,41,60,0,215,41,60,0,220,41,60,0,221,41,60,0,222,41,60,0,223,41,60,0,224,41,60,0,225,41,60,0,226,41,60,0,227,41,60,0,228,41,60,0,229,41,60,0,230,41,60,0,231,41,60,0,232,41,60,0,233,41,60,0,234,41,60,0,235,41,60,0,236,41,60,0,237,41,60,0,238,41,60,0,239,41,60,0,240,41,60,0,241,41,60,0,242,41,60,0,243,41,60,0,244,41,60,0,245,41,60,0,246,41,60,0,247,41,60,0,248,41,60,0,249,41,60,0,250,41,60,0,251,41,60,0,254,41,60,0,255,41,60,0,0,42,60,0,1,42,60,0,2,42,60,0,3,42,60,0,4,42,60,0,5,42,60,0,6,42,60,0,7,42,60,0,8,42,60,0,9,42,60,0,10,42,60,0,11,42,60,0,13,42,60,0,14,42,60,0,15,42,60,0,16,42,60,0,17,42,60,0,18,42,60,0,19,42,60,0,20,42,60,0,21,42,60,0,22,42,60,0,23,42,60,0,24,42,60,0,25,42,60,0,26,42,60,0,27,42,60,0,28,42,60,0,29,42,60,0,30,42,60,0,31,42,60,0,32,42,60,0,33,42,60,0,34,42,60,0,35,42,60,0,36,42,60,0,37,42,60,0,38,42,60,0,39,42,60,0,40,42,60,0,41,42,60,0,42,42,60,0,43,42,60,0,44,42,60,0,45,42,60,0,46,42,60,0,47,42,60,0,48,42,60,0,49,42,60,0,50,42,60,0,51,42,60,0,52,42,60,0,53,42,60,0,54,42,60,0,55,42,60,0,56,42,60,0,57,42,60,0,58,42,60,0,59,42,60,0,60,42,60,0,61,42,60,0,62,42,60,0,63,42,60,0,64,42,60,0,65,42,60,0,66,42,60,0,67,42,60,0,68,42,60,0,69,42,60,0,70,42,60,0,71,42,60,0,72,42,60,0,73,42,60,0,74,42,60,0,75,42,60,0,76,42,60,0,77,42,60,0,78,42,60,0,79,42,60,0,80,42,60,0,81,42,60,0,82,42,60,0,83,42,60,0,84,42,60,0,85,42,60,0,86,42,60,0,87,42,60,0,88,42,60,0,89,42,60,0,90,42,60,0,91,42,60,0,92,42,60,0,93,42,60,0,94,42,60,0,95,42,60,0,96,42,60,0,97,42,60,0,98,42,60,0,99,42,60,0,100,42,60,0,101,42,60,0,102,42,60,0,103,42,60,0,104,42,60,0,105,42,60,0,106,42,60,0,107,42,60,0,108,42,60,0,109,42,60,0,110,42,60,0,111,42,60,0,112,42,60,0,113,42,60,0,114,42,60,0,115,42,60,0,119,42,60,0,120,42,60,0,121,42,60,0,122,42,60,0,123,42,60,0,124,42,60,0,125,42,60,0,126,42,60,0,127,42,60,0,128,42,60,0,129,42,60,0,130,42,60,0,131,42,60,0,132,42,60,0,133,42,60,0,134,42,60,0,135,42,60,0,136,42,60,0,137,42,60,0,138,42,60,0,139,42,60,0,140,42,60,0,141,42,60,0,142,42,60,0,143,42,60,0,144,42,60,0,145,42,60,0,146,42,60,0,147,42,60,0,148,42,60,0,149,42,60,0,150,42,60,0,151,42,60,0,152,42,60,0,153,42,60,0,154,42,60,0,155,42,60,0,156,42,60,0,157,42,60,0,158,42,60,0,159,42,60,0,160,42,60,0,161,42,60,0,162,42,60,0,163,42,60,0,164,42,60,0,165,42,60,0,166,42,60,0,167,42,60,0,168,42,60,0,169,42,60,0,170,42,60,0,171,42,60,0,172,42,60,0,173,42,60,0,174,42,60,0,175,42,60,0,176,42,60,0,177,42,60,0,178,42,60,0,179,42,60,0,180,42,60,0,181,42,60,0,182,42,60,0,183,42,60,0,184,42,60,0,185,42,60,0,186,42,60,0,187,42,60,0,188,42,60,0,189,42,60,0,190,42,60,0,191,42,60,0,192,42,60,0,193,42,60,0,194,42,60,0,195,42,60,0,196,42,60,0,197,42,60,0,198,42,60,0,199,42,60,0,200,42,60,0,201,42,60,0,202,42,60,0,203,42,60,0,204,42,60,0,205,42,60,0,206,42,60,0,207,42,60,0,208,42,60,0,209,42,60,0,210,42,60,0,211,42,60,0,212,42,60,0,213,42,60,0,214,42,60,0,215,42,60,0,216,42,60,0,217,42,60,0,218,42,60,0,219,42,60,0,221,42,60,0,222,42,60,0,223,42,60,0,224,42,60,0,225,42,60,0,226,42,60,0,227,42,60,0,228,42,60,0,229,42,60,0,230,42,60,0,231,42,60,0,232,42,60,0,233,42,60,0,234,42,60,0,235,42,60,0,236,42,60,0,237,42,60,0,238,42,60,0,239,42,60,0,240,42,60,0,241,42,60,0,242,42,60,0,243,42,60,0,244,42,60,0,245,42,60,0,246,42,60,0,247,42,60,0,248,42,60,0,249,42,60,0,250,42,60,0,251,42,60,0,252,42,60,0,253,42,60,0,254,42,60,0,255,42,60,0,0,43,60,0,1,43,60,0,2,43,60,0,3,43,60,0,4,43,60,0,5,43,60,0,6,43,60,0,7,43,60,0,8,43,60,0,9,43,60,0,10,43,60,0,11,43,60,0,12,43,60,0,13,43,60,0,14,43,60,0,15,43,60,0,16,43,60,0,17,43,60,0,18,43,60,0,19,43,60,0,20,43,60,0,21,43,60,0,22,43,60,0,23,43,60,0,24,43,60,0,25,43,60,0,26,43,60,0,27,43,60,0,28,43,60,0,29,43,60,0,30,43,60,0,31,43,60,0,32,43,60,0,33,43,60,0,34,43,60,0,35,43,60,0,36,43,60,0,37,43,60,0,38,43,60,0,39,43,60,0,40,43,60,0,41,43,60,0,42,43,60,0,43,43,60,0,44,43,60,0,45,43,60,0,46,43,60,0,47,43,60,0,48,43,60,0,49,43,60,0,50,43,60,0,51,43,60,0,52,43,60,0,53,43,60,0,54,43,60,0,55,43,60,0,56,43,60,0,57,43,60,0,58,43,60,0,59,43,60,0,60,43,60,0,61,43,60,0,62,43,60,0,63,43,60,0,64,43,60,0,65,43,60,0,66,43,60,0,67,43,60,0,68,43,60,0,69,43,60,0,70,43,60,0,71,43,60,0,72,43,60,0,73,43,60,0,74,43,60,0,75,43,60,0,76,43,60,0,77,43,60,0,78,43,60,0,79,43,60,0,80,43,60,0,81,43,60,0,82,43,60,0,83,43,60,0,84,43,60,0,85,43,60,0,86,43,60,0,87,43,60,0,88,43,60,0,89,43,60,0,90,43,60,0,91,43,60,0,92,43,60,0,93,43,60,0,94,43,60,0,95,43,60,0,96,43,60,0,97,43,60,0,98,43,60,0,99,43,60,0,100,43,60,0,101,43,60,0,102,43,60,0,103,43,60,0,104,43,60,0,105,43,60,0,106,43,60,0,107,43,60,0,108,43,60,0,109,43,60,0,110,43,60,0,111,43,60,0,112,43,60,0,113,43,60,0,114,43,60,0,115,43,60,0,118,43,60,0,119,43,60,0,120,43,60,0,121,43,60,0,122,43,60,0,123,43,60,0,124,43,60,0,125,43,60,0,126,43,60,0,127,43,60,0,128,43,60,0,129,43,60,0,130,43,60,0,131,43,60,0,132,43,60,0,133,43,60,0,134,43,60,0,135,43,60,0,136,43,60,0,137,43,60,0,138,43,60,0,139,43,60,0,140,43,60,0,141,43,60,0,142,43,60,0,143,43,60,0,144,43,60,0,145,43,60,0,146,43,60,0,147,43,60,0,148,43,60,0,149,43,60,0,151,43,60,0,152,43,60,0,153,43,60,0,154,43,60,0,155,43,60,0,156,43,60,0,157,43,60,0,158,43,60,0,159,43,60,0,160,43,60,0,161,43,60,0,162,43,60,0,163,43,60,0,164,43,60,0,165,43,60,0,166,43,60,0,167,43,60,0,168,43,60,0,169,43,60,0,170,43,60,0,171,43,60,0,172,43,60,0,173,43,60,0,174,43,60,0,175,43,60,0,176,43,60,0,177,43,60,0,178,43,60,0,179,43,60,0,180,43,60,0,181,43,60,0,182,43,60,0,183,43,60,0,184,43,60,0,185,43,60,0,186,43,60,0,187,43,60,0,188,43,60,0,189,43,60,0,190,43,60,0,191,43,60,0,192,43,60,0,193,43,60,0,194,43,60,0,195,43,60,0,196,43,60,0,197,43,60,0,198,43,60,0,199,43,60,0,200,43,60,0,201,43,60,0,202,43,60,0,203,43,60,0,204,43,60,0,205,43,60,0,206,43,60,0,207,43,60,0,208,43,60,0,209,43,60,0,210,43,60,0,211,43,60,0,212,43,60,0,213,43,60,0,214,43,60,0,215,43,60,0,216,43,60,0,217,43,60,0,218,43,60,0,219,43,60,0,220,43,60,0,221,43,60,0,222,43,60,0,223,43,60,0,224,43,60,0,225,43,60,0,226,43,60,0,227,43,60,0,228,43,60,0,229,43,60,0,230,43,60,0,231,43,60,0,232,43,60,0,233,43,60,0,234,43,60,0,235,43,60,0,236,43,60,0,237,43,60,0,238,43,60,0,239,43,60,0,240,43,60,0,241,43,60,0,242,43,60,0,243,43,60,0,244,43,60,0,245,43,60,0,246,43,60,0,247,43,60,0,248,43,60,0,249,43,60,0,250,43,60,0,251,43,60,0,252,43,60,0,253,43,60,0,254,43,60,0,255,43,60,0,229,44,60,0,230,44,60,0,231,44,60,0,232,44,60,0,233,44,60,0,234,44,60,0,0,40,60,0,1,40,60,0,2,40,60,0,3,40,60,0,4,40,60,0,5,40,60,0,6,40,60,0,7,40,60,0,8,40,60,0,9,40,60,0,10,40,60,0,11,40,60,0,12,40,60,0,13,40,60,0,14,40,60,0,15,40,60,0,16,40,60,0,17,40,60,0,18,40,60,0,19,40,60,0,20,40,60,0,21,40,60,0,22,40,60,0,23,40,60,0,24,40,60,0,25,40,60,0,26,40,60,0,27,40,60,0,28,40,60,0,29,40,60,0,30,40,60,0,31,40,60,0,32,40,60,0,33,40,60,0,34,40,60,0,35,40,60,0,36,40,60,0,37,40,60,0,38,40,60,0,39,40,60,0,40,40,60,0,41,40,60,0,42,40,60,0,43,40,60,0,44,40,60,0,45,40,60,0,46,40,60,0,47,40,60,0,48,40,60,0,49,40,60,0,50,40,60,0,51,40,60,0,52,40,60,0,53,40,60,0,54,40,60,0,55,40,60,0,56,40,60,0,57,40,60,0,58,40,60,0,59,40,60,0,60,40,60,0,61,40,60,0,62,40,60,0,63,40,60,0,64,40,60,0,65,40,60,0,66,40,60,0,67,40,60,0,68,40,60,0,69,40,60,0,70,40,60,0,71,40,60,0,72,40,60,0,73,40,60,0,74,40,60,0,75,40,60,0,76,40,60,0,77,40,60,0,78,40,60,0,79,40,60,0,80,40,60,0,81,40,60,0,82,40,60,0,83,40,60,0,84,40,60,0,85,40,60,0,86,40,60,0,87,40,60,0,88,40,60,0,89,40,60,0,90,40,60,0,91,40,60,0,92,40,60,0,93,40,60,0,94,40,60,0,95,40,60,0,96,40,60,0,97,40,60,0,98,40,60,0,99,40,60,0,100,40,60,0,101,40,60,0,102,40,60,0,103,40,60,0,104,40,60,0,105,40,60,0,106,40,60,0,107,40,60,0,108,40,60,0,109,40,60,0,110,40,60,0,111,40,60,0,112,40,60,0,113,40,60,0,114,40,60,0,115,40,60,0,116,40,60,0,117,40,60,0,118,40,60,0,119,40,60,0,120,40,60,0,121,40,60,0,122,40,60,0,123,40,60,0,124,40,60,0,125,40,60,0,126,40,60,0,127,40,60,0,128,40,60,0,129,40,60,0,130,40,60,0,131,40,60,0,132,40,60,0,133,40,60,0,134,40,60,0,135,40,60,0,136,40,60,0,137,40,60,0,138,40,60,0,139,40,60,0,140,40,60,0,141,40,60,0,142,40,60,0,143,40,60,0,144,40,60,0,145,40,60,0,146,40,60,0,147,40,60,0,148,40,60,0,149,40,60,0,150,40,60,0,151,40,60,0,152,40,60,0,153,40,60,0,154,40,60,0,155,40,60,0,156,40,60,0,157,40,60,0,158,40,60,0,159,40,60,0,160,40,60,0,161,40,60,0,162,40,60,0,163,40,60,0,164,40,60,0,165,40,60,0,166,40,60,0,167,40,60,0,168,40,60,0,169,40,60,0,170,40,60,0,171,40,60,0,172,40,60,0,173,40,60,0,174,40,60,0,175,40,60,0,176,40,60,0,177,40,60,0,178,40,60,0,179,40,60,0,180,40,60,0,181,40,60,0,182,40,60,0,183,40,60,0,184,40,60,0,185,40,60,0,186,40,60,0,187,40,60,0,188,40,60,0,189,40,60,0,190,40,60,0,191,40,60,0,192,40,60,0,193,40,60,0,194,40,60,0,195,40,60,0,196,40,60,0,197,40,60,0,198,40,60,0,199,40,60,0,200,40,60,0,201,40,60,0,202,40,60,0,203,40,60,0,204,40,60,0,205,40,60,0,206,40,60,0,207,40,60,0,208,40,60,0,209,40,60,0,210,40,60,0,211,40,60,0,212,40,60,0,213,40,60,0,214,40,60,0,215,40,60,0,216,40,60,0,217,40,60,0,218,40,60,0,219,40,60,0,220,40,60,0,221,40,60,0,222,40,60,0,223,40,60,0,224,40,60,0,225,40,60,0,226,40,60,0,227,40,60,0,228,40,60,0,229,40,60,0,230,40,60,0,231,40,60,0,232,40,60,0,233,40,60,0,234,40,60,0,235,40,60,0,236,40,60,0,237,40,60,0,238,40,60,0,239,40,60,0,240,40,60,0,241,40,60,0,242,40,60,0,243,40,60,0,244,40,60,0,245,40,60,0,246,40,60,0,247,40,60,0,248,40,60,0,249,40,60,0,250,40,60,0,251,40,60,0,252,40,60,0,253,40,60,0,254,40,60,0,255,40,60,0,138,38,60,0,139,38,60,0,140,38,60,0,141,38,60,0,142,38,60,0,143,38,60,0,48,38,60,0,49,38,60,0,50,38,60,0,51,38,60,0,52,38,60,0,53,38,60,0,54,38,60,0,55,38,60,0,192,77,60,0,193,77,60,0,194,77,60,0,195,77,60,0,196,77,60,0,197,77,60,0,198,77,60,0,199,77,60,0,200,77,60,0,201,77,60,0,202,77,60,0,203,77,60,0,204,77,60,0,205,77,60,0,206,77,60,0,207,77,60,0,208,77,60,0,209,77,60,0,210,77,60,0,211,77,60,0,212,77,60,0,213,77,60,0,214,77,60,0,215,77,60,0,216,77,60,0,217,77,60,0,218,77,60,0,219,77,60,0,220,77,60,0,221,77,60,0,222,77,60,0,223,77,60,0,224,77,60,0,225,77,60,0,226,77,60,0,227,77,60,0,228,77,60,0,229,77,60,0,230,77,60,0,231,77,60,0,232,77,60,0,233,77,60,0,234,77,60,0,235,77,60,0,236,77,60,0,237,77,60,0,238,77,60,0,239,77,60,0,240,77,60,0,241,77,60,0,242,77,60,0,243,77,60,0,244,77,60,0,245,77,60,0,246,77,60,0,247,77,60,0,248,77,60,0,249,77,60,0,250,77,60,0,251,77,60,0,252,77,60,0,253,77,60,0,254,77,60,0,255,77,60,0,52,216,0,223,60,0,52,216,1,223,60,0,52,216,2,223,60,0,52,216,3,223,60,0,52,216,4,223,60,0,52,216,5,223,60,0,52,216,6,223,60,0,52,216,7,223,60,0,52,216,8,223,60,0,52,216,9,223,60,0,52,216,10,223,60,0,52,216,11,223,60,0,52,216,12,223,60,0,52,216,13,223,60,0,52,216,14,223,60,0,52,216,15,223,60,0,52,216,16,223,60,0,52,216,17,223,60,0,52,216,18,223,60,0,52,216,19,223,60,0,52,216,20,223,60,0,52,216,21,223,60,0,52,216,22,223,60,0,52,216,23,223,60,0,52,216,24,223,60,0,52,216,25,223,60,0,52,216,26,223,60,0,52,216,27,223,60,0,52,216,28,223,60,0,52,216,29,223,60,0,52,216,30,223,60,0,52,216,31,223,60,0,52,216,32,223,60,0,52,216,33,223,60,0,52,216,34,223,60,0,52,216,35,223,60,0,52,216,36,223,60,0,52,216,37,223,60,0,52,216,38,223,60,0,52,216,39,223,60,0,52,216,40,223,60,0,52,216,41,223,60,0,52,216,42,223,60,0,52,216,43,223,60,0,52,216,44,223,60,0,52,216,45,223,60,0,52,216,46,223,60,0,52,216,47,223,60,0,52,216,48,223,60,0,52,216,49,223,60,0,52,216,50,223,60,0,52,216,51,223,60,0,52,216,52,223,60,0,52,216,53,223,60,0,52,216,54,223,60,0,52,216,55,223,60,0,52,216,56,223,60,0,52,216,57,223,60,0,52,216,58,223,60,0,52,216,59,223,60,0,52,216,60,223,60,0,52,216,61,223,60,0,52,216,62,223,60,0,52,216,63,223,60,0,52,216,64,223,60,0,52,216,65,223,60,0,52,216,66,223,60,0,52,216,67,223,60,0,52,216,68,223,60,0,52,216,69,223,60,0,52,216,70,223,60,0,52,216,71,223,60,0,52,216,72,223,60,0,52,216,73,223,60,0,52,216,74,223,60,0,52,216,75,223,60,0,52,216,76,223,60,0,52,216,77,223,60,0,52,216,78,223,60,0,52,216,79,223,60,0,52,216,80,223,60,0,52,216,81,223,60,0,52,216,82,223,60,0,52,216,83,223,60,0,52,216,84,223,60,0,52,216,85,223,60,0,52,216,86,223,60,0,144,164,60,0,145,164,60,0,146,164,60,0,147,164,60,0,148,164,60,0,149,164,60,0,150,164,60,0,151,164,60,0,152,164,60,0,153,164,60,0,154,164,60,0,155,164,60,0,156,164,60,0,157,164,60,0,158,164,60,0,159,164,60,0,160,164,60,0,161,164,60,0,162,164,60,0,163,164,60,0,164,164,60,0,165,164,60,0,166,164,60,0,167,164,60,0,168,164,60,0,169,164,60,0,170,164,60,0,171,164,60,0,172,164,60,0,173,164,60,0,174,164,60,0,175,164,60,0,176,164,60,0,177,164,60,0,178,164,60,0,179,164,60,0,180,164,60,0,181,164,60,0,182,164,60,0,183,164,60,0,184,164,60,0,185,164,60,0,186,164,60,0,187,164,60,0,188,164,60,0,189,164,60,0,190,164,60,0,191,164,60,0,192,164,60,0,193,164,60,0,194,164,60,0,195,164,60,0,196,164,60,0,197,164,60,0,198,164,60,0,0,216,55,221,60,0,0,216,56,221,60,0,0,216,57,221,60,0,0,216,58,221,60,0,0,216,59,221,60,0,0,216,60,221,60,0,0,216,61,221,60,0,0,216,62,221,60,0,0,216,63,221,60,0,0,216,121,221,60,0,0,216,122,221,60,0,0,216,123,221,60,0,0,216,124,221,60,0,0,216,125,221,60,0,0,216,126,221,60,0,0,216,127,221,60,0,0,216,128,221,60,0,0,216,129,221,60,0,0,216,130,221,60,0,0,216,131,221,60,0,0,216,132,221,60,0,0,216,133,221,60,0,0,216,134,221,60,0,0,216,135,221,60,0,0,216,136,221,60,0,0,216,137,221,60,0,0,216,140,221,60,0,0,216,141,221,60,0,0,216,142,221,60,0,0,216,144,221,60,0,0,216,145,221,60,0,0,216,146,221,60,0,0,216,147,221,60,0,0,216,148,221,60,0,0,216,149,221,60,0,0,216,150,221,60,0,0,216,151,221,60,0,0,216,152,221,60,0,0,216,153,221,60,0,0,216,154,221,60,0,0,216,155,221,60,0,0,216,156,221,60,0,0,216,160,221,60,0,0,216,208,221,60,0,0,216,209,221,60,0,0,216,210,221,60,0,0,216,211,221,60,0,0,216,212,221,60,0,0,216,213,221,60,0,0,216,214,221,60,0,0,216,215,221,60,0,0,216,216,221,60,0,0,216,217,221,60,0,0,216,218,221,60,0,0,216,219,221,60,0,0,216,220,221,60,0,0,216,221,221,60,0,0,216,222,221,60,0,0,216,223,221,60,0,0,216,224,221,60,0,0,216,225,221,60,0,0,216,226,221,60,0,0,216,227,221,60,0,0,216,228,221,60,0,0,216,229,221,60,0,0,216,230,221,60,0,0,216,231,221,60,0,0,216,232,221,60,0,0,216,233,221,60,0,0,216,234,221,60,0,0,216,235,221,60,0,0,216,236,221,60,0,0,216,237,221,60,0,0,216,238,221,60,0,0,216,239,221,60,0,0,216,240,221,60,0,0,216,241,221,60,0,0,216,242,221,60,0,0,216,243,221,60,0,0,216,244,221,60,0,0,216,245,221,60,0,0,216,246,221,60,0,0,216,247,221,60,0,0,216,248,221,60,0,0,216,249,221,60,0,0,216,250,221,60,0,0,216,251,221,60,0,0,216,252,221,60,0,14,32,2,216,119,220,14,32,60,0,14,32,2,216,120,220,14,32,60,0,26,216,60,223,60,0,26,216,61,223,60,0,26,216,62,223,60,0,26,216,63,223,60,0,26,216,69,223,60,0,56,216,79,221,60,0,51,216,80,223,60,0,51,216,81,223,60,0,51,216,82,223,60,0,51,216,83,223,60,0,51,216,84,223,60,0,51,216,85,223,60,0,51,216,86,223,60,0,51,216,87,223,60,0,51,216,88,223,60,0,51,216,89,223,60,0,51,216,90,223,60,0,51,216,91,223,60,0,51,216,92,223,60,0,51,216,93,223,60,0,51,216,94,223,60,0,51,216,95,223,60,0,51,216,96,223,60,0,51,216,97,223,60,0,51,216,98,223,60,0,51,216,99,223,60,0,51,216,100,223,60,0,51,216,101,223,60,0,51,216,102,223,60,0,51,216,103,223,60,0,51,216,104,223,60,0,51,216,105,223,60,0,51,216,106,223,60,0,51,216,107,223,60,0,51,216,108,223,60,0,51,216,109,223,60,0,51,216,110,223,60,0,51,216,111,223,60,0,51,216,112,223,60,0,51,216,113,223,60,0,51,216,114,223,60,0,51,216,115,223,60,0,51,216,116,223,60,0,51,216,117,223,60,0,51,216,118,223,60,0,51,216,119,223,60,0,51,216,120,223,60,0,51,216,121,223,60,0,51,216,122,223,60,0,51,216,123,223,60,0,51,216,124,223,60,0,51,216,125,223,60,0,51,216,126,223,60,0,51,216,127,223,60,0,51,216,128,223,60,0,51,216,129,223,60,0,51,216,130,223,60,0,51,216,131,223,60,0,51,216,132,223,60,0,51,216,133,223,60,0,51,216,134,223,60,0,51,216,135,223,60,0,51,216,136,223,60,0,51,216,137,223,60,0,51,216,138,223,60,0,51,216,139,223,60,0,51,216,140,223,60,0,51,216,141,223,60,0,51,216,142,223,60,0,51,216,143,223,60,0,51,216,144,223,60,0,51,216,145,223,60,0,51,216,146,223,60,0,51,216,147,223,60,0,51,216,148,223,60,0,51,216,149,223,60,0,51,216,150,223,60,0,51,216,151,223,60,0,51,216,152,223,60,0,51,216,153,223,60,0,51,216,154,223,60,0,51,216,155,223,60,0,51,216,156,223,60,0,51,216,157,223,60,0,51,216,158,223,60,0,51,216,159,223,60,0,51,216,160,223,60,0,51,216,161,223,60,0,51,216,162,223,60,0,51,216,163,223,60,0,51,216,164,223,60,0,51,216,165,223,60,0,51,216,166,223,60,0,51,216,167,223,60,0,51,216,168,223,60,0,51,216,169,223,60,0,51,216,170,223,60,0,51,216,171,223,60,0,51,216,172,223,60,0,51,216,173,223,60,0,51,216,174,223,60,0,51,216,175,223,60,0,51,216,176,223,60,0,51,216,177,223,60,0,51,216,178,223,60,0,51,216,179,223,60,0,51,216,180,223,60,0,51,216,181,223,60,0,51,216,182,223,60,0,51,216,183,223,60,0,51,216,184,223,60,0,51,216,185,223,60,0,51,216,186,223,60,0,51,216,187,223,60,0,51,216,188,223,60,0,51,216,189,223,60,0,51,216,190,223,60,0,51,216,191,223,60,0,51,216,192,223,60,0,51,216,193,223,60,0,51,216,194,223,60,0,51,216,195,223,60,0,52,216,0,220,60,0,52,216,1,220,60,0,52,216,2,220,60,0,52,216,3,220,60,0,52,216,4,220,60,0,52,216,5,220,60,0,52,216,6,220,60,0,52,216,7,220,60,0,52,216,8,220,60,0,52,216,9,220,60,0,52,216,10,220,60,0,52,216,11,220,60,0,52,216,12,220,60,0,52,216,13,220,60,0,52,216,14,220,60,0,52,216,15,220,60,0,52,216,16,220,60,0,52,216,17,220,60,0,52,216,18,220,60,0,52,216,19,220,60,0,52,216,20,220,60,0,52,216,21,220,60,0,52,216,22,220,60,0,52,216,23,220,60,0,52,216,24,220,60,0,52,216,25,220,60,0,52,216,26,220,60,0,52,216,27,220,60,0,52,216,28,220,60,0,52,216,29,220,60,0,52,216,30,220,60,0,52,216,31,220,60,0,52,216,32,220,60,0,52,216,33,220,60,0,52,216,34,220,60,0,52,216,35,220,60,0,52,216,36,220,60,0,52,216,37,220,60,0,52,216,38,220,60,0,52,216,39,220,60,0,52,216,40,220,60,0,52,216,41,220,60,0,52,216,42,220,60,0,52,216,43,220,60,0,52,216,44,220,60,0,52,216,45,220,60,0,52,216,46,220,60,0,52,216,47,220,60,0,52,216,48,220,60,0,52,216,49,220,60,0,52,216,50,220,60,0,52,216,51,220,60,0,52,216,52,220,60,0,52,216,53,220,60,0,52,216,54,220,60,0,52,216,55,220,60,0,52,216,56,220,60,0,52,216,57,220,60,0,52,216,58,220,60,0,52,216,59,220,60,0,52,216,60,220,60,0,52,216,61,220,60,0,52,216,62,220,60,0,52,216,63,220,60,0,52,216,64,220,60,0,52,216,65,220,60,0,52,216,66,220,60,0,52,216,67,220,60,0,52,216,68,220,60,0,52,216,69,220,60,0,52,216,70,220,60,0,52,216,71,220,60,0,52,216,72,220,60,0,52,216,73,220,60,0,52,216,74,220,60,0,52,216,75,220,60,0,52,216,76,220,60,0,52,216,77,220,60,0,52,216,78,220,60,0,52,216,79,220,60,0,52,216,80,220,60,0,52,216,81,220,60,0,52,216,82,220,60,0,52,216,83,220,60,0,52,216,84,220,60,0,52,216,85,220,60,0,52,216,86,220,60,0,52,216,87,220,60,0,52,216,88,220,60,0,52,216,89,220,60,0,52,216,90,220,60,0,52,216,91,220,60,0,52,216,92,220,60,0,52,216,93,220,60,0,52,216,94,220,60,0,52,216,95,220,60,0,52,216,96,220,60,0,52,216,97,220,60,0,52,216,98,220,60,0,52,216,99,220,60,0,52,216,100,220,60,0,52,216,101,220,60,0,52,216,102,220,60,0,52,216,103,220,60,0,52,216,104,220,60,0,52,216,105,220,60,0,52,216,106,220,60,0,52,216,107,220,60,0,52,216,108,220,60,0,52,216,109,220,60,0,52,216,110,220,60,0,52,216,111,220,60,0,52,216,112,220,60,0,52,216,113,220,60,0,52,216,114,220,60,0,52,216,115,220,60,0,52,216,116,220,60,0,52,216,117,220,60,0,52,216,118,220,60,0,52,216,119,220,60,0,52,216,120,220,60,0,52,216,121,220,60,0,52,216,122,220,60,0,52,216,123,220,60,0,52,216,124,220,60,0,52,216,125,220,60,0,52,216,126,220,60,0,52,216,127,220,60,0,52,216,128,220,60,0,52,216,129,220,60,0,52,216,130,220,60,0,52,216,131,220,60,0,52,216,132,220,60,0,52,216,133,220,60,0,52,216,134,220,60,0,52,216,135,220,60,0,52,216,136,220,60,0,52,216,137,220,60,0,52,216,138,220,60,0,52,216,139,220,60,0,52,216,140,220,60,0,52,216,141,220,60,0,52,216,142,220,60,0,52,216,143,220,60,0,52,216,144,220,60,0,52,216,145,220,60,0,52,216,146,220,60,0,52,216,147,220,60,0,52,216,148,220,60,0,52,216,149,220,60,0,52,216,150,220,60,0,52,216,151,220,60,0,52,216,152,220,60,0,52,216,153,220,60,0,52,216,154,220,60,0,52,216,155,220,60,0,52,216,156,220,60,0,52,216,157,220,60,0,52,216,158,220,60,0,52,216,159,220,60,0,52,216,160,220,60,0,52,216,161,220,60,0,52,216,162,220,60,0,52,216,163,220,60,0,52,216,164,220,60,0,52,216,165,220,60,0,52,216,166,220,60,0,52,216,167,220,60,0,52,216,168,220,60,0,52,216,169,220,60,0,52,216,170,220,60,0,52,216,171,220,60,0,52,216,172,220,60,0,52,216,173,220,60,0,52,216,174,220,60,0,52,216,175,220,60,0,52,216,176,220,60,0,52,216,177,220,60,0,52,216,178,220,60,0,52,216,179,220,60,0,52,216,180,220,60,0,52,216,181,220,60,0,52,216,182,220,60,0,52,216,183,220,60,0,52,216,184,220,60,0,52,216,185,220,60,0,52,216,186,220,60,0,52,216,187,220,60,0,52,216,188,220,60,0,52,216,189,220,60,0,52,216,190,220,60,0,52,216,191,220,60,0,52,216,192,220,60,0,52,216,193,220,60,0,52,216,194,220,60,0,52,216,195,220,60,0,52,216,196,220,60,0,52,216,197,220,60,0,52,216,198,220,60,0,52,216,199,220,60,0,52,216,200,220,60,0,52,216,201,220,60,0,52,216,202,220,60,0,52,216,203,220,60,0,52,216,204,220,60,0,52,216,205,220,60,0,52,216,206,220,60,0,52,216,207,220,60,0,52,216,208,220,60,0,52,216,209,220,60,0,52,216,210,220,60,0,52,216,211,220,60,0,52,216,212,220,60,0,52,216,213,220,60,0,52,216,214,220,60,0,52,216,215,220,60,0,52,216,216,220,60,0,52,216,217,220,60,0,52,216,218,220,60,0,52,216,219,220,60,0,52,216,220,220,60,0,52,216,221,220,60,0,52,216,222,220,60,0,52,216,223,220,60,0,52,216,224,220,60,0,52,216,225,220,60,0,52,216,226,220,60,0,52,216,227,220,60,0,52,216,228,220,60,0,52,216,229,220,60,0,52,216,230,220,60,0,52,216,231,220,60,0,52,216,232,220,60,0,52,216,233,220,60,0,52,216,234,220,60,0,52,216,235,220,60,0,52,216,236,220,60,0,52,216,237,220,60,0,52,216,238,220,60,0,52,216,239,220,60,0,52,216,240,220,60,0,52,216,241,220,60,0,52,216,242,220,60,0,52,216,243,220,60,0,52,216,244,220,60,0,52,216,245,220,60,0,52,216,0,221,60,0,52,216,1,221,60,0,52,216,2,221,60,0,52,216,3,221,60,0,52,216,4,221,60,0,52,216,5,221,60,0,52,216,6,221,60,0,52,216,7,221,60,0,52,216,8,221,60,0,52,216,9,221,60,0,52,216,10,221,60,0,52,216,11,221,60,0,52,216,12,221,60,0,52,216,13,221,60,0,52,216,14,221,60,0,52,216,15,221,60,0,52,216,16,221,60,0,52,216,17,221,60,0,52,216,18,221,60,0,52,216,19,221,60,0,52,216,20,221,60,0,52,216,21,221,60,0,52,216,22,221,60,0,52,216,23,221,60,0,52,216,24,221,60,0,52,216,25,221,60,0,52,216,26,221,60,0,52,216,27,221,60,0,52,216,28,221,60,0,52,216,29,221,60,0,52,216,30,221,60,0,52,216,31,221,60,0,52,216,32,221,60,0,52,216,33,221,60,0,52,216,34,221,60,0,52,216,35,221,60,0,52,216,36,221,60,0,52,216,37,221,60,0,52,216,38,221,60,0,109,38,60,0,110,38,60,0,111,38,60,0,52,216,42,221,60,0,52,216,43,221,60,0,52,216,44,221,60,0,52,216,45,221,60,0,52,216,46,221,60,0,52,216,47,221,60,0,52,216,48,221,60,0,52,216,49,221,60,0,52,216,50,221,60,0,52,216,51,221,60,0,52,216,52,221,60,0,52,216,53,221,60,0,52,216,54,221,60,0,52,216,55,221,60,0,52,216,56,221,60,0,52,216,57,221,60,0,52,216,41,221,60,0,52,216,58,221,60,0,52,216,59,221,60,0,52,216,60,221,60,0,52,216,61,221,60,0,52,216,62,221,60,0,52,216,63,221,60,0,52,216,64,221,60,0,52,216,65,221,60,0,52,216,66,221,60,0,52,216,67,221,60,0,52,216,68,221,60,0,52,216,69,221,60,0,52,216,70,221,60,0,52,216,71,221,60,0,52,216,72,221,60,0,52,216,73,221,60,0,52,216,74,221,60,0,52,216,75,221,60,0,52,216,76,221,60,0,52,216,77,221,60,0,52,216,78,221,60,0,52,216,79,221,60,0,52,216,80,221,60,0,52,216,81,221,60,0,52,216,82,221,60,0,52,216,83,221,60,0,52,216,84,221,60,0,52,216,85,221,60,0,52,216,86,221,60,0,52,216,87,221,60,0,52,216,88,221,60,0,52,216,89,221,60,0,52,216,90,221,60,0,52,216,91,221,60,0,52,216,92,221,60,0,52,216,93,221,60,0,52,216,106,221,60,0,52,216,107,221,60,0,52,216,108,221,60,0,52,216,131,221,60,0,52,216,132,221,60,0,52,216,140,221,60,0,52,216,141,221,60,0,52,216,142,221,60,0,52,216,143,221,60,0,52,216,144,221,60,0,52,216,145,221,60,0,52,216,146,221,60,0,52,216,147,221,60,0,52,216,148,221,60,0,52,216,149,221,60,0,52,216,150,221,60,0,52,216,151,221,60,0,52,216,152,221,60,0,52,216,153,221,60,0,52,216,154,221,60,0,52,216,155,221,60,0,52,216,156,221,60,0,52,216,157,221,60,0,52,216,158,221,60,0,52,216,159,221,60,0,52,216,160,221,60,0,52,216,161,221,60,0,52,216,162,221,60,0,52,216,163,221,60,0,52,216,164,221,60,0,52,216,165,221,60,0,52,216,166,221,60,0,52,216,167,221,60,0,52,216,168,221,60,0,52,216,169,221,60,0,52,216,174,221,60,0,52,216,175,221,60,0,52,216,176,221,60,0,52,216,177,221,60,0,52,216,178,221,60,0,52,216,179,221,60,0,52,216,180,221,60,0,52,216,181,221,60,0,52,216,182,221,60,0,52,216,183,221,60,0,52,216,184,221,60,0,52,216,185,221,60,0,52,216,186,221,60,0,52,216,193,221,60,0,52,216,194,221,60,0,52,216,195,221,60,0,52,216,196,221,60,0,52,216,197,221,60,0,52,216,198,221,60,0,52,216,199,221,60,0,52,216,200,221,60,0,52,216,201,221,60,0,52,216,202,221,60,0,52,216,203,221,60,0,52,216,204,221,60,0,52,216,205,221,60,0,52,216,206,221,60,0,52,216,207,221,60,0,52,216,208,221,60,0,52,216,209,221,60,0,52,216,210,221,60,0,52,216,211,221,60,0,52,216,212,221,60,0,52,216,213,221,60,0,52,216,214,221,60,0,52,216,215,221,60,0,52,216,216,221,60,0,52,216,217,221,60,0,52,216,218,221,60,0,52,216,219,221,60,0,52,216,220,221,60,0,52,216,221,221,60,0,52,216,222,221,60,0,52,216,223,221,60,0,52,216,224,221,60,0,52,216,225,221,60,0,52,216,226,221,60,0,52,216,227,221,60,0,52,216,228,221,60,0,52,216,229,221,60,0,52,216,230,221,60,0,52,216,231,221,60,0,52,216,232,221,60,0,52,216,233,221,60,0,52,216,234,221,60,0,52,216,0,222,60,0,52,216,1,222,60,0,52,216,2,222,60,0,52,216,3,222,60,0,52,216,4,222,60,0,52,216,5,222,60,0,52,216,6,222,60,0,52,216,7,222,60,0,52,216,8,222,60,0,52,216,9,222,60,0,52,216,10,222,60,0,52,216,11,222,60,0,52,216,12,222,60,0,52,216,13,222,60,0,52,216,14,222,60,0,52,216,15,222,60,0,52,216,16,222,60,0,52,216,17,222,60,0,52,216,18,222,60,0,52,216,19,222,60,0,52,216,20,222,60,0,52,216,21,222,60,0,52,216,22,222,60,0,52,216,23,222,60,0,52,216,24,222,60,0,52,216,25,222,60,0,52,216,26,222,60,0,52,216,27,222,60,0,52,216,28,222,60,0,52,216,29,222,60,0,52,216,30,222,60,0,52,216,31,222,60,0,52,216,32,222,60,0,52,216,33,222,60,0,52,216,34,222,60,0,52,216,35,222,60,0,52,216,36,222,60,0,52,216,37,222,60,0,52,216,38,222,60,0,52,216,39,222,60,0,52,216,40,222,60,0,52,216,41,222,60,0,52,216,42,222,60,0,52,216,43,222,60,0,52,216,44,222,60,0,52,216,45,222,60,0,52,216,46,222,60,0,52,216,47,222,60,0,52,216,48,222,60,0,52,216,49,222,60,0,52,216,50,222,60,0,52,216,51,222,60,0,52,216,52,222,60,0,52,216,53,222,60,0,52,216,54,222,60,0,52,216,55,222,60,0,52,216,56,222,60,0,52,216,57,222,60,0,52,216,58,222,60,0,52,216,59,222,60,0,52,216,60,222,60,0,52,216,61,222,60,0,52,216,62,222,60,0,52,216,63,222,60,0,52,216,64,222,60,0,52,216,65,222,60,0,52,216,69,222,60,0,47,216,156,220,60,0,14,32,59,216,172,220,14,32,60,0,14,32,59,216,46,221,14,32,60,0,60,216,0,220,60,0,60,216,1,220,60,0,60,216,2,220,60,0,60,216,3,220,60,0,60,216,4,220,60,0,60,216,5,220,60,0,60,216,6,220,60,0,60,216,7,220,60,0,60,216,8,220,60,0,60,216,9,220,60,0,60,216,10,220,60,0,60,216,11,220,60,0,60,216,12,220,60,0,60,216,13,220,60,0,60,216,14,220,60,0,60,216,15,220,60,0,60,216,16,220,60,0,60,216,17,220,60,0,60,216,18,220,60,0,60,216,19,220,60,0,60,216,20,220,60,0,60,216,21,220,60,0,60,216,22,220,60,0,60,216,23,220,60,0,60,216,24,220,60,0,60,216,25,220,60,0,60,216,26,220,60,0,60,216,27,220,60,0,60,216,28,220,60,0,60,216,29,220,60,0,60,216,30,220,60,0,60,216,31,220,60,0,60,216,32,220,60,0,60,216,33,220,60,0,60,216,34,220,60,0,60,216,35,220,60,0,60,216,36,220,60,0,60,216,37,220,60,0,60,216,38,220,60,0,60,216,39,220,60,0,60,216,40,220,60,0,60,216,41,220,60,0,60,216,42,220,60,0,60,216,43,220,60,0,60,216,48,220,60,0,60,216,49,220,60,0,60,216,50,220,60,0,60,216,51,220,60,0,60,216,52,220,60,0,60,216,53,220,60,0,60,216,54,220,60,0,60,216,55,220,60,0,60,216,56,220,60,0,60,216,57,220,60,0,60,216,58,220,60,0,60,216,59,220,60,0,60,216,60,220,60,0,60,216,61,220,60,0,60,216,62,220,60,0,60,216,63,220,60,0,60,216,64,220,60,0,60,216,65,220,60,0,60,216,66,220,60,0,60,216,67,220,60,0,60,216,68,220,60,0,60,216,69,220,60,0,60,216,70,220,60,0,60,216,71,220,60,0,60,216,72,220,60,0,60,216,73,220,60,0,60,216,74,220,60,0,60,216,75,220,60,0,60,216,76,220,60,0,60,216,77,220,60,0,60,216,78,220,60,0,60,216,79,220,60,0,60,216,80,220,60,0,60,216,81,220,60,0,60,216,82,220,60,0,60,216,83,220,60,0,60,216,84,220,60,0,60,216,85,220,60,0,60,216,86,220,60,0,60,216,87,220,60,0,60,216,88,220,60,0,60,216,89,220,60,0,60,216,90,220,60,0,60,216,91,220,60,0,60,216,92,220,60,0,60,216,93,220,60,0,60,216,94,220,60,0,60,216,95,220,60,0,60,216,96,220,60,0,60,216,97,220,60,0,60,216,98,220,60,0,60,216,99,220,60,0,60,216,100,220,60,0,60,216,101,220,60,0,60,216,102,220,60,0,60,216,103,220,60,0,60,216,104,220,60,0,60,216,105,220,60,0,60,216,106,220,60,0,60,216,107,220,60,0,60,216,108,220,60,0,60,216,109,220,60,0,60,216,110,220,60,0,60,216,111,220,60,0,60,216,112,220,60,0,60,216,113,220,60,0,60,216,114,220,60,0,60,216,115,220,60,0,60,216,116,220,60,0,60,216,117,220,60,0,60,216,118,220,60,0,60,216,119,220,60,0,60,216,120,220,60,0,60,216,121,220,60,0,60,216,122,220,60,0,60,216,123,220,60,0,60,216,124,220,60,0,60,216,125,220,60,0,60,216,126,220,60,0,60,216,127,220,60,0,60,216,128,220,60,0,60,216,129,220,60,0,60,216,130,220,60,0,60,216,131,220,60,0,60,216,132,220,60,0,60,216,133,220,60,0,60,216,134,220,60,0,60,216,135,220,60,0,60,216,136,220,60,0,60,216,137,220,60,0,60,216,138,220,60,0,60,216,139,220,60,0,60,216,140,220,60,0,60,216,141,220,60,0,60,216,142,220,60,0,60,216,143,220,60,0,60,216,144,220,60,0,60,216,145,220,60,0,60,216,146,220,60,0,60,216,147,220,60,0,60,216,160,220,60,0,60,216,161,220,60,0,60,216,162,220,60,0,60,216,163,220,60,0,60,216,164,220,60,0,60,216,165,220,60,0,60,216,166,220,60,0,60,216,167,220,60,0,60,216,168,220,60,0,60,216,169,220,60,0,60,216,170,220,60,0,60,216,171,220,60,0,60,216,172,220,60,0,60,216,173,220,60,0,60,216,174,220,60,0,60,216,177,220,60,0,60,216,178,220,60,0,60,216,179,220,60,0,60,216,180,220,60,0,60,216,181,220,60,0,60,216,182,220,60,0,60,216,183,220,60,0,60,216,184,220,60,0,60,216,185,220,60,0,60,216,186,220,60,0,60,216,187,220,60,0,60,216,188,220,60,0,60,216,189,220,60,0,60,216,190,220,60,0,60,216,191,220,60,0,60,216,193,220,60,0,60,216,194,220,60,0,60,216,195,220,60,0,60,216,196,220,60,0,60,216,197,220,60,0,60,216,198,220,60,0,60,216,199,220,60,0,60,216,200,220,60,0,60,216,201,220,60,0,60,216,202,220,60,0,60,216,203,220,60,0,60,216,204,220,60,0,60,216,205,220,60,0,60,216,206,220,60,0,60,216,207,220,60,0,60,216,209,220,60,0,60,216,210,220,60,0,60,216,211,220,60,0,60,216,212,220,60,0,60,216,213,220,60,0,60,216,214,220,60,0,60,216,215,220,60,0,60,216,216,220,60,0,60,216,217,220,60,0,60,216,218,220,60,0,60,216,219,220,60,0,60,216,220,220,60,0,60,216,221,220,60,0,60,216,222,220,60,0,60,216,223,220,60,0,60,216,224,220,60,0,60,216,225,220,60,0,60,216,226,220,60,0,60,216,227,220,60,0,60,216,228,220,60,0,60,216,229,220,60,0,60,216,230,220,60,0,60,216,231,220,60,0,60,216,232,220,60,0,60,216,233,220,60,0,60,216,234,220,60,0,60,216,235,220,60,0,60,216,236,220,60,0,60,216,237,220,60,0,60,216,238,220,60,0,60,216,239,220,60,0,60,216,240,220,60,0,60,216,241,220,60,0,60,216,242,220,60,0,60,216,243,220,60,0,60,216,244,220,60,0,60,216,245,220,60,0,62,216,0,222,60,0,62,216,1,222,60,0,62,216,2,222,60,0,62,216,3,222,60,0,62,216,4,222,60,0,62,216,5,222,60,0,62,216,6,222,60,0,62,216,7,222,60,0,62,216,8,222,60,0,62,216,9,222,60,0,62,216,10,222,60,0,62,216,11,222,60,0,62,216,12,222,60,0,62,216,13,222,60,0,62,216,14,222,60,0,62,216,15,222,60,0,62,216,16,222,60,0,62,216,17,222,60,0,62,216,18,222,60,0,62,216,19,222,60,0,62,216,20,222,60,0,62,216,21,222,60,0,62,216,22,222,60,0,62,216,23,222,60,0,62,216,24,222,60,0,62,216,25,222,60,0,62,216,26,222,60,0,62,216,27,222,60,0,62,216,28,222,60,0,62,216,29,222,60,0,62,216,30,222,60,0,62,216,31,222,60,0,62,216,32,222,60,0,62,216,33,222,60,0,62,216,34,222,60,0,62,216,35,222,60,0,62,216,36,222,60,0,62,216,37,222,60,0,62,216,38,222,60,0,62,216,39,222,60,0,62,216,40,222,60,0,62,216,41,222,60,0,62,216,42,222,60,0,62,216,43,222,60,0,62,216,44,222,60,0,62,216,45,222,60,0,62,216,46,222,60,0,62,216,47,222,60,0,62,216,48,222,60,0,62,216,49,222,60,0,62,216,50,222,60,0,62,216,51,222,60,0,62,216,52,222,60,0,62,216,53,222,60,0,62,216,54,222,60,0,62,216,55,222,60,0,62,216,56,222,60,0,62,216,57,222,60,0,62,216,58,222,60,0,62,216,59,222,60,0,62,216,60,222,60,0,62,216,61,222,60,0,62,216,62,222,60,0,62,216,63,222,60,0,62,216,64,222,60,0,62,216,65,222,60,0,62,216,66,222,60,0,62,216,67,222,60,0,62,216,68,222,60,0,62,216,69,222,60,0,62,216,70,222,60,0,62,216,71,222,60,0,62,216,72,222,60,0,62,216,73,222,60,0,62,216,74,222,60,0,62,216,75,222,60,0,62,216,76,222,60,0,62,216,77,222,60,0,62,216,78,222,60,0,62,216,79,222,60,0,62,216,80,222,60,0,62,216,81,222,60,0,62,216,82,222,60,0,62,216,83,222,60,0,62,216,96,222,60,0,62,216,97,222,60,0,62,216,98,222,60,0,62,216,99,222,60,0,62,216,100,222,60,0,62,216,101,222,60,0,62,216,102,222,60,0,62,216,103,222,60,0,62,216,104,222,60,0,62,216,105,222,60,0,62,216,106,222,60,0,62,216,107,222,60,0,62,216,108,222,60,0,62,216,109,222,60,0,60,216,13,221,60,0,60,216,14,221,60,0,60,216,15,221,60,0,60,216,109,221,60,0,60,216,110,221,60,0,60,216,111,221,60,0,60,216,96,222,60,0,60,216,97,222,60,0,60,216,98,222,60,0,60,216,99,222,60,0,60,216,100,222,60,0,60,216,101,222,60,0,60,216,0,223,60,0,60,216,1,223,60,0,60,216,2,223,60,0,60,216,3,223,60,0,60,216,4,223,60,0,60,216,5,223,60,0,60,216,6,223,60,0,60,216,7,223,60,0,60,216,8,223,60,0,60,216,9,223,60,0,60,216,10,223,60,0,60,216,11,223,60,0,60,216,12,223,60,0,60,216,13,223,60,0,60,216,14,223,60,0,60,216,15,223,60,0,60,216,16,223,60,0,60,216,17,223,60,0,60,216,18,223,60,0,60,216,19,223,60,0,60,216,20,223,60,0,60,216,21,223,60,0,60,216,22,223,60,0,60,216,23,223,60,0,60,216,24,223,60,0,60,216,25,223,60,0,60,216,26,223,60,0,60,216,27,223,60,0,60,216,28,223,60,0,60,216,29,223,60,0,60,216,30,223,60,0,60,216,31,223,60,0,60,216,32,223,60,0,60,216,33,223,60,0,60,216,34,223,60,0,60,216,35,223,60,0,60,216,36,223,60,0,60,216,37,223,60,0,60,216,38,223,60,0,60,216,39,223,60,0,60,216,40,223,60,0,60,216,41,223,60,0,60,216,42,223,60,0,60,216,43,223,60,0,60,216,44,223,60,0,60,216,45,223,60,0,60,216,46,223,60,0,60,216,47,223,60,0,60,216,48,223,60,0,60,216,49,223,60,0,60,216,50,223,60,0,60,216,51,223,60,0,60,216,52,223,60,0,60,216,53,223,60,0,60,216,54,223,60,0,60,216,55,223,60,0,60,216,56,223,60,0,60,216,57,223,60,0,60,216,58,223,60,0,60,216,59,223,60,0,60,216,60,223,60,0,60,216,61,223,60,0,60,216,62,223,60,0,60,216,63,223,60,0,60,216,64,223,60,0,60,216,65,223,60,0,60,216,66,223,60,0,60,216,67,223,60,0,60,216,68,223,60,0,60,216,69,223,60,0,60,216,70,223,60,0,60,216,71,223,60,0,60,216,72,223,60,0,60,216,73,223,60,0,60,216,74,223,60,0,60,216,75,223,60,0,60,216,76,223,60,0,60,216,77,223,60,0,60,216,78,223,60,0,60,216,79,223,60,0,60,216,80,223,60,0,60,216,81,223,60,0,60,216,82,223,60,0,60,216,83,223,60,0,60,216,84,223,60,0,60,216,85,223,60,0,60,216,86,223,60,0,60,216,87,223,60,0,60,216,88,223,60,0,60,216,89,223,60,0,60,216,90,223,60,0,60,216,91,223,60,0,60,216,92,223,60,0,60,216,93,223,60,0,60,216,94,223,60,0,60,216,95,223,60,0,60,216,96,223,60,0,60,216,97,223,60,0,60,216,98,223,60,0,60,216,99,223,60,0,60,216,100,223,60,0,60,216,101,223,60,0,60,216,102,223,60,0,60,216,103,223,60,0,60,216,104,223,60,0,60,216,105,223,60,0,60,216,106,223,60,0,60,216,107,223,60,0,60,216,108,223,60,0,60,216,109,223,60,0,60,216,110,223,60,0,60,216,111,223,60,0,60,216,112,223,60,0,60,216,113,223,60,0,60,216,114,223,60,0,60,216,115,223,60,0,60,216,116,223,60,0,60,216,117,223,60,0,60,216,118,223,60,0,60,216,119,223,60,0,60,216,120,223,60,0,60,216,121,223,60,0,60,216,122,223,60,0,60,216,123,223,60,0,60,216,124,223,60,0,60,216,125,223,60,0,60,216,126,223,60,0,60,216,127,223,60,0,60,216,128,223,60,0,60,216,129,223,60,0,60,216,130,223,60,0,60,216,131,223,60,0,60,216,132,223,60,0,60,216,133,223,60,0,60,216,134,223,60,0,60,216,135,223,60,0,60,216,136,223,60,0,60,216,137,223,60,0,60,216,138,223,60,0,60,216,139,223,60,0,60,216,140,223,60,0,60,216,141,223,60,0,60,216,142,223,60,0,60,216,143,223,60,0,60,216,144,223,60,0,60,216,145,223,60,0,60,216,146,223,60,0,60,216,147,223,60,0,60,216,148,223,60,0,60,216,149,223,60,0,60,216,150,223,60,0,60,216,151,223,60,0,60,216,152,223,60,0,60,216,153,223,60,0,60,216,154,223,60,0,60,216,155,223,60,0,60,216,156,223,60,0,60,216,157,223,60,0,60,216,158,223,60,0,60,216,159,223,60,0,60,216,160,223,60,0,60,216,161,223,60,0,60,216,162,223,60,0,60,216,163,223,60,0,60,216,164,223,60,0,60,216,165,223,60,0,60,216,166,223,60,0,60,216,167,223,60,0,60,216,168,223,60,0,60,216,169,223,60,0,60,216,170,223,60,0,60,216,171,223,60,0,60,216,172,223,60,0,60,216,173,223,60,0,60,216,174,223,60,0,60,216,175,223,60,0,60,216,176,223,60,0,60,216,177,223,60,0,60,216,178,223,60,0,60,216,179,223,60,0,60,216,180,223,60,0,60,216,181,223,60,0,60,216,182,223,60,0,60,216,183,223,60,0,60,216,184,223,60,0,60,216,185,223,60,0,60,216,186,223,60,0,60,216,187,223,60,0,60,216,188,223,60,0,60,216,189,223,60,0,60,216,190,223,60,0,60,216,191,223,60,0,60,216,192,223,60,0,60,216,193,223,60,0,60,216,194,223,60,0,60,216,195,223,60,0,60,216,196,223,60,0,60,216,197,223,60,0,60,216,198,223,60,0,60,216,199,223,60,0,60,216,200,223,60,0,60,216,201,223,60,0,60,216,202,223,60,0,60,216,203,223,60,0,60,216,204,223,60,0,60,216,205,223,60,0,60,216,206,223,60,0,60,216,207,223,60,0,60,216,208,223,60,0,60,216,209,223,60,0,60,216,210,223,60,0,60,216,211,223,60,0,60,216,212,223,60,0,60,216,213,223,60,0,60,216,214,223,60,0,60,216,215,223,60,0,60,216,216,223,60,0,60,216,217,223,60,0,60,216,218,223,60,0,60,216,219,223,60,0,60,216,220,223,60,0,60,216,221,223,60,0,60,216,222,223,60,0,60,216,223,223,60,0,60,216,224,223,60,0,60,216,225,223,60,0,60,216,226,223,60,0,60,216,227,223,60,0,60,216,228,223,60,0,60,216,229,223,60,0,60,216,230,223,60,0,60,216,231,223,60,0,60,216,232,223,60,0,60,216,233,223,60,0,60,216,234,223,60,0,60,216,235,223,60,0,60,216,236,223,60,0,60,216,237,223,60,0,60,216,238,223,60,0,60,216,239,223,60,0,60,216,240,223,60,0,60,216,241,223,60,0,60,216,242,223,60,0,60,216,243,223,60,0,60,216,244,223,60,0,60,216,245,223,60,0,60,216,246,223,60,0,60,216,247,223,60,0,60,216,248,223,60,0,60,216,249,223,60,0,60,216,250,223,60,0,60,216,251,223,60,0,60,216,252,223,60,0,60,216,253,223,60,0,60,216,254,223,60,0,60,216,255,223,60,0,61,216,0,220,60,0,61,216,1,220,60,0,61,216,2,220,60,0,61,216,3,220,60,0,61,216,4,220,60,0,61,216,5,220,60,0,61,216,6,220,60,0,61,216,7,220,60,0,61,216,8,220,60,0,61,216,9,220,60,0,61,216,10,220,60,0,61,216,11,220,60,0,61,216,12,220,60,0,61,216,13,220,60,0,61,216,14,220,60,0,61,216,15,220,60,0,61,216,16,220,60,0,61,216,17,220,60,0,61,216,18,220,60,0,61,216,19,220,60,0,61,216,20,220,60,0,61,216,21,220,60,0,61,216,22,220,60,0,61,216,23,220,60,0,61,216,24,220,60,0,61,216,25,220,60,0,61,216,26,220,60,0,61,216,27,220,60,0,61,216,28,220,60,0,61,216,29,220,60,0,61,216,30,220,60,0,61,216,31,220,60,0,61,216,32,220,60,0,61,216,33,220,60,0,61,216,34,220,60,0,61,216,35,220,60,0,61,216,36,220,60,0,61,216,37,220,60,0,61,216,38,220,60,0,61,216,39,220,60,0,61,216,40,220,60,0,61,216,41,220,60,0,61,216,42,220,60,0,61,216,43,220,60,0,61,216,44,220,60,0,61,216,45,220,60,0,61,216,46,220,60,0,61,216,47,220,60,0,61,216,48,220,60,0,61,216,49,220,60,0,61,216,50,220,60,0,61,216,51,220,60,0,61,216,52,220,60,0,61,216,53,220,60,0,61,216,54,220,60,0,61,216,55,220,60,0,61,216,56,220,60,0,61,216,57,220,60,0,61,216,58,220,60,0,61,216,59,220,60,0,61,216,60,220,60,0,61,216,61,220,60,0,61,216,62,220,60,0,61,216,63,220,60,0,61,216,64,220,60,0,61,216,65,220,60,0,61,216,66,220,60,0,61,216,67,220,60,0,61,216,68,220,60,0,61,216,69,220,60,0,61,216,70,220,60,0,61,216,71,220,60,0,61,216,72,220,60,0,61,216,73,220,60,0,61,216,74,220,60,0,61,216,75,220,60,0,61,216,76,220,60,0,61,216,77,220,60,0,61,216,78,220,60,0,61,216,79,220,60,0,61,216,80,220,60,0,61,216,81,220,60,0,61,216,82,220,60,0,61,216,83,220,60,0,61,216,84,220,60,0,61,216,85,220,60,0,61,216,86,220,60,0,61,216,87,220,60,0,61,216,88,220,60,0,61,216,89,220,60,0,61,216,90,220,60,0,61,216,91,220,60,0,61,216,92,220,60,0,61,216,93,220,60,0,61,216,94,220,60,0,61,216,95,220,60,0,61,216,96,220,60,0,61,216,97,220,60,0,61,216,98,220,60,0,61,216,99,220,60,0,61,216,100,220,60,0,61,216,101,220,60,0,61,216,102,220,60,0,61,216,103,220,60,0,61,216,104,220,60,0,61,216,105,220,60,0,61,216,106,220,60,0,61,216,107,220,60,0,61,216,108,220,60,0,61,216,109,220,60,0,61,216,110,220,60,0,61,216,111,220,60,0,61,216,112,220,60,0,61,216,113,220,60,0,61,216,114,220,60,0,61,216,115,220,60,0,61,216,116,220,60,0,61,216,117,220,60,0,61,216,118,220,60,0,61,216,119,220,60,0,61,216,120,220,60,0,61,216,121,220,60,0,61,216,122,220,60,0,61,216,123,220,60,0,61,216,124,220,60,0,61,216,125,220,60,0,61,216,126,220,60,0,61,216,127,220,60,0,61,216,128,220,60,0,61,216,129,220,60,0,61,216,130,220,60,0,61,216,131,220,60,0,61,216,132,220,60,0,61,216,133,220,60,0,61,216,134,220,60,0,61,216,135,220,60,0,61,216,136,220,60,0,61,216,137,220,60,0,61,216,138,220,60,0,61,216,139,220,60,0,61,216,140,220,60,0,61,216,141,220,60,0,61,216,142,220,60,0,61,216,143,220,60,0,61,216,144,220,60,0,61,216,145,220,60,0,61,216,146,220,60,0,61,216,147,220,60,0,61,216,148,220,60,0,61,216,149,220,60,0,61,216,150,220,60,0,61,216,151,220,60,0,61,216,152,220,60,0,61,216,153,220,60,0,61,216,154,220,60,0,61,216,155,220,60,0,61,216,156,220,60,0,61,216,157,220,60,0,61,216,158,220,60,0,61,216,159,220,60,0,61,216,160,220,60,0,61,216,161,220,60,0,61,216,162,220,60,0,61,216,163,220,60,0,61,216,164,220,60,0,61,216,165,220,60,0,61,216,166,220,60,0,61,216,167,220,60,0,61,216,168,220,60,0,61,216,169,220,60,0,61,216,170,220,60,0,61,216,171,220,60,0,61,216,172,220,60,0,61,216,173,220,60,0,61,216,174,220,60,0,61,216,175,220,60,0,61,216,176,220,60,0,61,216,177,220,60,0,61,216,178,220,60,0,61,216,179,220,60,0,61,216,180,220,60,0,61,216,181,220,60,0,61,216,182,220,60,0,61,216,183,220,60,0,61,216,184,220,60,0,61,216,185,220,60,0,61,216,186,220,60,0,61,216,187,220,60,0,61,216,188,220,60,0,61,216,189,220,60,0,61,216,190,220,60,0,61,216,191,220,60,0,61,216,192,220,60,0,61,216,193,220,60,0,61,216,194,220,60,0,61,216,195,220,60,0,61,216,196,220,60,0,61,216,197,220,60,0,61,216,198,220,60,0,61,216,199,220,60,0,61,216,200,220,60,0,61,216,201,220,60,0,61,216,202,220,60,0,61,216,203,220,60,0,61,216,204,220,60,0,61,216,205,220,60,0,61,216,206,220,60,0,61,216,207,220,60,0,61,216,208,220,60,0,61,216,209,220,60,0,61,216,210,220,60,0,61,216,211,220,60,0,61,216,212,220,60,0,61,216,213,220,60,0,61,216,214,220,60,0,61,216,215,220,60,0,61,216,216,220,60,0,61,216,217,220,60,0,61,216,218,220,60,0,61,216,219,220,60,0,61,216,220,220,60,0,61,216,221,220,60,0,61,216,222,220,60,0,61,216,223,220,60,0,61,216,224,220,60,0,61,216,225,220,60,0,61,216,226,220,60,0,61,216,227,220,60,0,61,216,228,220,60,0,61,216,229,220,60,0,61,216,230,220,60,0,61,216,231,220,60,0,61,216,232,220,60,0,61,216,233,220,60,0,61,216,234,220,60,0,61,216,235,220,60,0,61,216,236,220,60,0,61,216,237,220,60,0,61,216,238,220,60,0,61,216,239,220,60,0,61,216,240,220,60,0,61,216,241,220,60,0,61,216,242,220,60,0,61,216,243,220,60,0,61,216,244,220,60,0,61,216,245,220,60,0,61,216,246,220,60,0,61,216,247,220,60,0,61,216,248,220,60,0,61,216,249,220,60,0,61,216,250,220,60,0,61,216,251,220,60,0,61,216,252,220,60,0,61,216,253,220,60,0,61,216,254,220,60,0,61,216,255,220,60,0,61,216,0,221,60,0,61,216,1,221,60,0,61,216,2,221,60,0,61,216,3,221,60,0,61,216,4,221,60,0,61,216,5,221,60,0,61,216,6,221,60,0,61,216,7,221,60,0,61,216,8,221,60,0,61,216,9,221,60,0,61,216,10,221,60,0,61,216,11,221,60,0,61,216,12,221,60,0,61,216,13,221,60,0,61,216,14,221,60,0,61,216,15,221,60,0,61,216,16,221,60,0,61,216,17,221,60,0,61,216,18,221,60,0,61,216,19,221,60,0,61,216,20,221,60,0,61,216,21,221,60,0,61,216,22,221,60,0,61,216,23,221,60,0,61,216,24,221,60,0,61,216,25,221,60,0,61,216,26,221,60,0,61,216,27,221,60,0,61,216,28,221,60,0,61,216,29,221,60,0,61,216,30,221,60,0,61,216,31,221,60,0,61,216,32,221,60,0,61,216,33,221,60,0,61,216,34,221,60,0,61,216,35,221,60,0,61,216,36,221,60,0,61,216,37,221,60,0,61,216,38,221,60,0,61,216,39,221,60,0,61,216,40,221,60,0,61,216,41,221,60,0,61,216,42,221,60,0,61,216,43,221,60,0,61,216,44,221,60,0,61,216,45,221,60,0,61,216,46,221,60,0,61,216,47,221,60,0,61,216,48,221,60,0,61,216,49,221,60,0,61,216,50,221,60,0,61,216,51,221,60,0,61,216,52,221,60,0,61,216,53,221,60,0,61,216,54,221,60,0,61,216,55,221,60,0,61,216,56,221,60,0,61,216,57,221,60,0,61,216,58,221,60,0,61,216,59,221,60,0,61,216,60,221,60,0,61,216,61,221,60,0,61,216,62,221,60,0,61,216,63,221,60,0,61,216,64,221,60,0,61,216,65,221,60,0,61,216,66,221,60,0,61,216,67,221,60,0,61,216,68,221,60,0,61,216,69,221,60,0,61,216,70,221,60,0,61,216,71,221,60,0,61,216,72,221,60,0,61,216,73,221,60,0,61,216,74,221,60,0,61,216,75,221,60,0,61,216,76,221,60,0,61,216,77,221,60,0,61,216,78,221,60,0,61,216,79,221,60,0,61,216,80,221,60,0,61,216,81,221,60,0,61,216,82,221,60,0,61,216,83,221,60,0,61,216,84,221,60,0,61,216,85,221,60,0,61,216,86,221,60,0,61,216,87,221,60,0,61,216,88,221,60,0,61,216,89,221,60,0,61,216,90,221,60,0,61,216,91,221,60,0,61,216,92,221,60,0,61,216,93,221,60,0,61,216,94,221,60,0,61,216,95,221,60,0,61,216,96,221,60,0,61,216,97,221,60,0,61,216,98,221,60,0,61,216,99,221,60,0,61,216,100,221,60,0,61,216,101,221,60,0,61,216,102,221,60,0,61,216,103,221,60,0,61,216,104,221,60,0,61,216,105,221,60,0,61,216,106,221,60,0,61,216,107,221,60,0,61,216,108,221,60,0,61,216,109,221,60,0,61,216,110,221,60,0,61,216,111,221,60,0,61,216,112,221,60,0,61,216,113,221,60,0,61,216,114,221,60,0,61,216,115,221,60,0,61,216,116,221,60,0,61,216,117,221,60,0,61,216,118,221,60,0,61,216,119,221,60,0,61,216,120,221,60,0,61,216,121,221,60,0,61,216,122,221,60,0,61,216,123,221,60,0,61,216,124,221,60,0,61,216,125,221,60,0,61,216,126,221,60,0,61,216,127,221,60,0,61,216,128,221,60,0,61,216,129,221,60,0,61,216,130,221,60,0,61,216,131,221,60,0,61,216,132,221,60,0,61,216,133,221,60,0,61,216,134,221,60,0,61,216,135,221,60,0,61,216,136,221,60,0,61,216,137,221,60,0,61,216,138,221,60,0,61,216,139,221,60,0,61,216,140,221,60,0,61,216,141,221,60,0,61,216,142,221,60,0,61,216,143,221,60,0,61,216,144,221,60,0,61,216,145,221,60,0,61,216,146,221,60,0,61,216,147,221,60,0,61,216,148,221,60,0,61,216,149,221,60,0,61,216,150,221,60,0,61,216,151,221,60,0,61,216,152,221,60,0,61,216,153,221,60,0,61,216,154,221,60,0,61,216,155,221,60,0,61,216,156,221,60,0,61,216,157,221,60,0,61,216,158,221,60,0,61,216,159,221,60,0,61,216,160,221,60,0,61,216,161,221,60,0,61,216,162,221,60,0,61,216,163,221,60,0,61,216,164,221,60,0,61,216,165,221,60,0,61,216,166,221,60,0,61,216,167,221,60,0,61,216,168,221,60,0,61,216,169,221,60,0,61,216,170,221,60,0,61,216,171,221,60,0,61,216,172,221,60,0,61,216,173,221,60,0,61,216,174,221,60,0,61,216,175,221,60,0,61,216,176,221,60,0,61,216,177,221,60,0,61,216,178,221,60,0,61,216,179,221,60,0,61,216,180,221,60,0,61,216,181,221,60,0,61,216,182,221,60,0,61,216,183,221,60,0,61,216,184,221,60,0,61,216,185,221,60,0,61,216,186,221,60,0,61,216,187,221,60,0,61,216,188,221,60,0,61,216,189,221,60,0,61,216,190,221,60,0,61,216,191,221,60,0,61,216,192,221,60,0,61,216,193,221,60,0,61,216,194,221,60,0,61,216,195,221,60,0,61,216,196,221,60,0,61,216,197,221,60,0,61,216,198,221,60,0,61,216,199,221,60,0,61,216,200,221,60,0,61,216,201,221,60,0,61,216,202,221,60,0,61,216,203,221,60,0,61,216,204,221,60,0,61,216,205,221,60,0,61,216,206,221,60,0,61,216,207,221,60,0,61,216,208,221,60,0,61,216,209,221,60,0,61,216,210,221,60,0,61,216,211,221,60,0,61,216,212,221,60,0,61,216,213,221,60,0,61,216,214,221,60,0,61,216,215,221,60,0,61,216,216,221,60,0,61,216,217,221,60,0,61,216,218,221,60,0,61,216,219,221,60,0,61,216,220,221,60,0,61,216,221,221,60,0,61,216,222,221,60,0,61,216,223,221,60,0,61,216,224,221,60,0,61,216,225,221,60,0,61,216,226,221,60,0,61,216,227,221,60,0,61,216,228,221,60,0,61,216,229,221,60,0,61,216,230,221,60,0,61,216,231,221,60,0,61,216,232,221,60,0,61,216,233,221,60,0,61,216,234,221,60,0,61,216,235,221,60,0,61,216,236,221,60,0,61,216,237,221,60,0,61,216,238,221,60,0,61,216,239,221,60,0,61,216,240,221,60,0,61,216,241,221,60,0,61,216,242,221,60,0,61,216,243,221,60,0,61,216,244,221,60,0,61,216,245,221,60,0,61,216,246,221,60,0,61,216,247,221,60,0,61,216,248,221,60,0,61,216,249,221,60,0,61,216,250,221,60,0,61,216,251,221,60,0,61,216,252,221,60,0,61,216,253,221,60,0,61,216,254,221,60,0,61,216,255,221,60,0,62,216,0,221,60,0,62,216,1,221,60,0,62,216,2,221,60,0,62,216,3,221,60,0,62,216,4,221,60,0,62,216,5,221,60,0,62,216,6,221,60,0,62,216,7,221,60,0,62,216,8,221,60,0,62,216,9,221,60,0,62,216,10,221,60,0,62,216,11,221,60,0,62,216,12,221,60,0,62,216,13,221,60,0,62,216,14,221,60,0,62,216,15,221,60,0,62,216,16,221,60,0,62,216,17,221,60,0,62,216,18,221,60,0,62,216,19,221,60,0,62,216,20,221,60,0,62,216,21,221,60,0,62,216,22,221,60,0,62,216,23,221,60,0,62,216,24,221,60,0,62,216,25,221,60,0,62,216,26,221,60,0,62,216,27,221,60,0,62,216,28,221,60,0,62,216,29,221,60,0,62,216,30,221,60,0,62,216,31,221,60,0,62,216,32,221,60,0,62,216,33,221,60,0,62,216,34,221,60,0,62,216,35,221,60,0,62,216,36,221,60,0,62,216,37,221,60,0,62,216,38,221,60,0,62,216,39,221,60,0,62,216,40,221,60,0,62,216,41,221,60,0,62,216,42,221,60,0,62,216,43,221,60,0,62,216,44,221,60,0,62,216,45,221,60,0,62,216,46,221,60,0,62,216,47,221,60,0,62,216,48,221,60,0,62,216,49,221,60,0,62,216,50,221,60,0,62,216,51,221,60,0,62,216,52,221,60,0,62,216,53,221,60,0,62,216,54,221,60,0,62,216,55,221,60,0,62,216,56,221,60,0,62,216,57,221,60,0,62,216,58,221,60,0,62,216,59,221,60,0,62,216,60,221,60,0,62,216,61,221,60,0,62,216,62,221,60,0,62,216,63,221,60,0,62,216,64,221,60,0,62,216,65,221,60,0,62,216,66,221,60,0,62,216,67,221,60,0,62,216,68,221,60,0,62,216,69,221,60,0,62,216,70,221,60,0,62,216,71,221,60,0,62,216,72,221,60,0,62,216,73,221,60,0,62,216,74,221,60,0,62,216,75,221,60,0,62,216,76,221,60,0,62,216,77,221,60,0,62,216,78,221,60,0,62,216,79,221,60,0,62,216,80,221,60,0,62,216,81,221,60,0,62,216,82,221,60,0,62,216,83,221,60,0,62,216,84,221,60,0,62,216,85,221,60,0,62,216,86,221,60,0,62,216,87,221,60,0,62,216,88,221,60,0,62,216,89,221,60,0,62,216,90,221,60,0,62,216,91,221,60,0,62,216,92,221,60,0,62,216,93,221,60,0,62,216,94,221,60,0,62,216,95,221,60,0,62,216,96,221,60,0,62,216,97,221,60,0,62,216,98,221,60,0,62,216,99,221,60,0,62,216,100,221,60,0,62,216,101,221,60,0,62,216,102,221,60,0,62,216,103,221,60,0,62,216,104,221,60,0,62,216,105,221,60,0,62,216,106,221,60,0,62,216,107,221,60,0,62,216,108,221,60,0,62,216,109,221,60,0,62,216,110,221,60,0,62,216,111,221,60,0,62,216,112,221,60,0,62,216,113,221,60,0,62,216,114,221,60,0,62,216,115,221,60,0,62,216,116,221,60,0,62,216,117,221,60,0,62,216,118,221,60,0,62,216,119,221,60,0,62,216,120,221,60,0,62,216,121,221,60,0,62,216,122,221,60,0,62,216,123,221,60,0,62,216,124,221,60,0,62,216,125,221,60,0,62,216,126,221,60,0,62,216,127,221,60,0,62,216,128,221,60,0,62,216,129,221,60,0,62,216,130,221,60,0,62,216,131,221,60,0,62,216,132,221,60,0,62,216,133,221,60,0,62,216,134,221,60,0,62,216,135,221,60,0,62,216,136,221,60,0,62,216,137,221,60,0,62,216,138,221,60,0,62,216,139,221,60,0,62,216,140,221,60,0,62,216,141,221,60,0,62,216,142,221,60,0,62,216,143,221,60,0,62,216,144,221,60,0,62,216,145,221,60,0,62,216,146,221,60,0,62,216,147,221,60,0,62,216,148,221,60,0,62,216,149,221,60,0,62,216,150,221,60,0,62,216,151,221,60,0,62,216,152,221,60,0,62,216,153,221,60,0,62,216,154,221,60,0,62,216,155,221,60,0,62,216,156,221,60,0,62,216,157,221,60,0,62,216,158,221,60,0,62,216,159,221,60,0,62,216,160,221,60,0,62,216,161,221,60,0,62,216,162,221,60,0,62,216,163,221,60,0,62,216,164,221,60,0,62,216,165,221,60,0,62,216,166,221,60,0,62,216,167,221,60,0,62,216,168,221,60,0,62,216,169,221,60,0,62,216,170,221,60,0,62,216,171,221,60,0,62,216,172,221,60,0,62,216,173,221,60,0,62,216,174,221,60,0,62,216,175,221,60,0,62,216,176,221,60,0,62,216,177,221,60,0,62,216,178,221,60,0,62,216,179,221,60,0,62,216,180,221,60,0,62,216,181,221,60,0,62,216,182,221,60,0,62,216,183,221,60,0,62,216,184,221,60,0,62,216,185,221,60,0,62,216,186,221,60,0,62,216,187,221,60,0,62,216,188,221,60,0,62,216,189,221,60,0,62,216,190,221,60,0,62,216,191,221,60,0,62,216,192,221,60,0,62,216,193,221,60,0,62,216,194,221,60,0,62,216,195,221,60,0,62,216,196,221,60,0,62,216,197,221,60,0,62,216,198,221,60,0,62,216,199,221,60,0,62,216,200,221,60,0,62,216,201,221,60,0,62,216,202,221,60,0,62,216,203,221,60,0,62,216,204,221,60,0,62,216,205,221,60,0,62,216,206,221,60,0,62,216,207,221,60,0,62,216,208,221,60,0,62,216,209,221,60,0,62,216,210,221,60,0,62,216,211,221,60,0,62,216,212,221,60,0,62,216,213,221,60,0,62,216,214,221,60,0,62,216,215,221,60,0,62,216,216,221,60,0,62,216,217,221,60,0,62,216,218,221,60,0,62,216,219,221,60,0,62,216,220,221,60,0,62,216,221,221,60,0,62,216,222,221,60,0,62,216,223,221,60,0,62,216,224,221,60,0,62,216,225,221,60,0,62,216,226,221,60,0,62,216,227,221,60,0,62,216,228,221,60,0,62,216,229,221,60,0,62,216,230,221,60,0,62,216,231,221,60,0,62,216,232,221,60,0,62,216,233,221,60,0,62,216,234,221,60,0,62,216,235,221,60,0,62,216,236,221,60,0,62,216,237,221,60,0,62,216,238,221,60,0,62,216,239,221,60,0,62,216,240,221,60,0,62,216,241,221,60,0,62,216,242,221,60,0,62,216,243,221,60,0,62,216,244,221,60,0,62,216,245,221,60,0,62,216,246,221,60,0,62,216,247,221,60,0,62,216,248,221,60,0,62,216,249,221,60,0,62,216,250,221,60,0,62,216,251,221,60,0,62,216,252,221,60,0,62,216,253,221,60,0,62,216,254,221,60,0,62,216,255,221,60,0,62,216,112,222,60,0,62,216,113,222,60,0,62,216,114,222,60,0,62,216,115,222,60,0,62,216,116,222,60,0,62,216,117,222,60,0,62,216,118,222,60,0,62,216,119,222,60,0,62,216,120,222,60,0,62,216,121,222,60,0,62,216,122,222,60,0,62,216,123,222,60,0,62,216,124,222,60,0,62,216,128,222,60,0,62,216,129,222,60,0,62,216,130,222,60,0,62,216,131,222,60,0,62,216,132,222,60,0,62,216,133,222,60,0,62,216,134,222,60,0,62,216,135,222,60,0,62,216,136,222,60,0,62,216,144,222,60,0,62,216,145,222,60,0,62,216,146,222,60,0,62,216,147,222,60,0,62,216,148,222,60,0,62,216,149,222,60,0,62,216,150,222,60,0,62,216,151,222,60,0,62,216,152,222,60,0,62,216,153,222,60,0,62,216,154,222,60,0,62,216,155,222,60,0,62,216,156,222,60,0,62,216,157,222,60,0,62,216,158,222,60,0,62,216,159,222,60,0,62,216,160,222,60,0,62,216,161,222,60,0,62,216,162,222,60,0,62,216,163,222,60,0,62,216,164,222,60,0,62,216,165,222,60,0,62,216,166,222,60,0,62,216,167,222,60,0,62,216,168,222,60,0,62,216,169,222,60,0,62,216,170,222,60,0,62,216,171,222,60,0,62,216,172,222,60,0,62,216,173,222,60,0,62,216,174,222,60,0,62,216,175,222,60,0,62,216,176,222,60,0,62,216,177,222,60,0,62,216,178,222,60,0,62,216,179,222,60,0,62,216,180,222,60,0,62,216,181,222,60,0,62,216,182,222,60,0,62,216,183,222,60,0,62,216,184,222,60,0,62,216,185,222,60,0,62,216,186,222,60,0,62,216,187,222,60,0,62,216,188,222,60,0,62,216,189,222,60,0,62,216,191,222,60,0,62,216,192,222,60,0,62,216,193,222,60,0,62,216,194,222,60,0,62,216,195,222,60,0,62,216,196,222,60,0,62,216,197,222,60,0,62,216,206,222,60,0,62,216,207,222,60,0,62,216,208,222,60,0,62,216,209,222,60,0,62,216,210,222,60,0,62,216,211,222,60,0,62,216,212,222,60,0,62,216,213,222,60,0,62,216,214,222,60,0,62,216,215,222,60,0,62,216,216,222,60,0,62,216,217,222,60,0,62,216,218,222,60,0,62,216,219,222,60,0,62,216,224,222,60,0,62,216,225,222,60,0,62,216,226,222,60,0,62,216,227,222,60,0,62,216,228,222,60,0,62,216,229,222,60,0,62,216,230,222,60,0,62,216,231,222,60,0,62,216,232,222,60,0,62,216,240,222,60,0,62,216,241,222,60,0,62,216,242,222,60,0,62,216,243,222,60,0,62,216,244,222,60,0,62,216,245,222,60,0,62,216,246,222,60,0,62,216,247,222,60,0,62,216,248,222,60,0,61,216,0,222,60,0,61,216,1,222,60,0,61,216,2,222,60,0,61,216,3,222,60,0,61,216,4,222,60,0,61,216,5,222,60,0,61,216,6,222,60,0,61,216,7,222,60,0,61,216,8,222,60,0,61,216,9,222,60,0,61,216,10,222,60,0,61,216,11,222,60,0,61,216,12,222,60,0,61,216,13,222,60,0,61,216,14,222,60,0,61,216,15,222,60,0,61,216,16,222,60,0,61,216,17,222,60,0,61,216,18,222,60,0,61,216,19,222,60,0,61,216,20,222,60,0,61,216,21,222,60,0,61,216,22,222,60,0,61,216,23,222,60,0,61,216,24,222,60,0,61,216,25,222,60,0,61,216,26,222,60,0,61,216,27,222,60,0,61,216,28,222,60,0,61,216,29,222,60,0,61,216,30,222,60,0,61,216,31,222,60,0,61,216,32,222,60,0,61,216,33,222,60,0,61,216,34,222,60,0,61,216,35,222,60,0,61,216,36,222,60,0,61,216,37,222,60,0,61,216,38,222,60,0,61,216,39,222,60,0,61,216,40,222,60,0,61,216,41,222,60,0,61,216,42,222,60,0,61,216,43,222,60,0,61,216,44,222,60,0,61,216,45,222,60,0,61,216,46,222,60,0,61,216,47,222,60,0,61,216,48,222,60,0,61,216,49,222,60,0,61,216,50,222,60,0,61,216,51,222,60,0,61,216,52,222,60,0,61,216,53,222,60,0,61,216,54,222,60,0,61,216,55,222,60,0,61,216,56,222,60,0,61,216,57,222,60,0,61,216,58,222,60,0,61,216,59,222,60,0,61,216,60,222,60,0,61,216,61,222,60,0,61,216,62,222,60,0,61,216,63,222,60,0,61,216,64,222,60,0,61,216,65,222,60,0,61,216,66,222,60,0,61,216,67,222,60,0,61,216,68,222,60,0,61,216,69,222,60,0,61,216,70,222,60,0,61,216,71,222,60,0,61,216,72,222,60,0,61,216,73,222,60,0,61,216,74,222,60,0,61,216,75,222,60,0,61,216,76,222,60,0,61,216,77,222,60,0,61,216,78,222,60,0,61,216,79,222,60,0,61,216,80,222,60,0,61,216,81,222,60,0,61,216,82,222,60,0,61,216,83,222,60,0,61,216,84,222,60,0,61,216,85,222,60,0,61,216,86,222,60,0,61,216,87,222,60,0,61,216,88,222,60,0,61,216,89,222,60,0,61,216,90,222,60,0,61,216,91,222,60,0,61,216,92,222,60,0,61,216,93,222,60,0,61,216,94,222,60,0,61,216,95,222,60,0,61,216,96,222,60,0,61,216,97,222,60,0,61,216,98,222,60,0,61,216,99,222,60,0,61,216,100,222,60,0,61,216,101,222,60,0,61,216,102,222,60,0,61,216,103,222,60,0,61,216,104,222,60,0,61,216,105,222,60,0,61,216,106,222,60,0,61,216,107,222,60,0,61,216,108,222,60,0,61,216,109,222,60,0,61,216,110,222,60,0,61,216,111,222,60,0,61,216,112,222,60,0,61,216,113,222,60,0,61,216,114,222,60,0,61,216,115,222,60,0,61,216,116,222,60,0,61,216,117,222,60,0,61,216,118,222,60,0,61,216,119,222,60,0,61,216,120,222,60,0,61,216,121,222,60,0,61,216,122,222,60,0,61,216,123,222,60,0,61,216,124,222,60,0,61,216,125,222,60,0,61,216,126,222,60,0,61,216,127,222,60,0,61,216,128,222,60,0,61,216,129,222,60,0,61,216,130,222,60,0,61,216,131,222,60,0,61,216,132,222,60,0,61,216,133,222,60,0,61,216,134,222,60,0,61,216,135,222,60,0,61,216,136,222,60,0,61,216,137,222,60,0,61,216,138,222,60,0,61,216,139,222,60,0,61,216,140,222,60,0,61,216,141,222,60,0,61,216,142,222,60,0,61,216,143,222,60,0,61,216,144,222,60,0,61,216,145,222,60,0,61,216,146,222,60,0,61,216,147,222,60,0,61,216,148,222,60,0,61,216,149,222,60,0,61,216,150,222,60,0,61,216,151,222,60,0,61,216,152,222,60,0,61,216,153,222,60,0,61,216,154,222,60,0,61,216,155,222,60,0,61,216,156,222,60,0,61,216,157,222,60,0,61,216,158,222,60,0,61,216,159,222,60,0,61,216,160,222,60,0,61,216,161,222,60,0,61,216,162,222,60,0,61,216,163,222,60,0,61,216,164,222,60,0,61,216,165,222,60,0,61,216,166,222,60,0,61,216,167,222,60,0,61,216,168,222,60,0,61,216,169,222,60,0,61,216,170,222,60,0,61,216,171,222,60,0,61,216,172,222,60,0,61,216,173,222,60,0,61,216,174,222,60,0,61,216,175,222,60,0,61,216,176,222,60,0,61,216,177,222,60,0,61,216,178,222,60,0,61,216,179,222,60,0,61,216,180,222,60,0,61,216,181,222,60,0,61,216,182,222,60,0,61,216,183,222,60,0,61,216,184,222,60,0,61,216,185,222,60,0,61,216,186,222,60,0,61,216,187,222,60,0,61,216,188,222,60,0,61,216,189,222,60,0,61,216,190,222,60,0,61,216,191,222,60,0,61,216,192,222,60,0,61,216,193,222,60,0,61,216,194,222,60,0,61,216,195,222,60,0,61,216,196,222,60,0,61,216,197,222,60,0,61,216,198,222,60,0,61,216,199,222,60,0,61,216,200,222,60,0,61,216,201,222,60,0,61,216,202,222,60,0,61,216,203,222,60,0,61,216,204,222,60,0,61,216,205,222,60,0,61,216,206,222,60,0,61,216,207,222,60,0,61,216,208,222,60,0,61,216,209,222,60,0,61,216,210,222,60,0,61,216,211,222,60,0,61,216,212,222,60,0,61,216,213,222,60,0,61,216,214,222,60,0,61,216,215,222,60,0,61,216,220,222,60,0,61,216,221,222,60,0,61,216,222,222,60,0,61,216,223,222,60,0,61,216,224,222,60,0,61,216,225,222,60,0,61,216,226,222,60,0,61,216,227,222,60,0,61,216,228,222,60,0,61,216,229,222,60,0,61,216,230,222,60,0,61,216,231,222,60,0,61,216,232,222,60,0,61,216,233,222,60,0,61,216,234,222,60,0,61,216,235,222,60,0,61,216,236,222,60,0,61,216,240,222,60,0,61,216,241,222,60,0,61,216,242,222,60,0,61,216,243,222,60,0,61,216,244,222,60,0,61,216,245,222,60,0,61,216,246,222,60,0,61,216,247,222,60,0,61,216,248,222,60,0,61,216,249,222,60,0,61,216,250,222,60,0,61,216,251,222,60,0,61,216,252,222,60,0,61,216,0,223,60,0,61,216,1,223,60,0,61,216,2,223,60,0,61,216,3,223,60,0,61,216,4,223,60,0,61,216,5,223,60,0,61,216,6,223,60,0,61,216,7,223,60,0,61,216,8,223,60,0,61,216,9,223,60,0,61,216,10,223,60,0,61,216,11,223,60,0,61,216,12,223,60,0,61,216,13,223,60,0,61,216,14,223,60,0,61,216,15,223,60,0,61,216,16,223,60,0,61,216,17,223,60,0,61,216,18,223,60,0,61,216,19,223,60,0,61,216,20,223,60,0,61,216,21,223,60,0,61,216,22,223,60,0,61,216,23,223,60,0,61,216,24,223,60,0,61,216,25,223,60,0,61,216,26,223,60,0,61,216,27,223,60,0,61,216,28,223,60,0,61,216,29,223,60,0,61,216,30,223,60,0,61,216,31,223,60,0,61,216,32,223,60,0,61,216,33,223,60,0,61,216,34,223,60,0,61,216,35,223,60,0,61,216,36,223,60,0,61,216,37,223,60,0,61,216,38,223,60,0,61,216,39,223,60,0,61,216,40,223,60,0,61,216,41,223,60,0,61,216,42,223,60,0,61,216,43,223,60,0,61,216,44,223,60,0,61,216,45,223,60,0,61,216,46,223,60,0,61,216,47,223,60,0,61,216,48,223,60,0,61,216,49,223,60,0,61,216,50,223,60,0,61,216,51,223,60,0,61,216,52,223,60,0,61,216,53,223,60,0,61,216,54,223,60,0,61,216,55,223,60,0,61,216,56,223,60,0,61,216,57,223,60,0,61,216,58,223,60,0,61,216,59,223,60,0,61,216,60,223,60,0,61,216,61,223,60,0,61,216,62,223,60,0,61,216,63,223,60,0,61,216,64,223,60,0,61,216,65,223,60,0,61,216,66,223,60,0,61,216,67,223,60,0,61,216,68,223,60,0,61,216,69,223,60,0,61,216,70,223,60,0,61,216,71,223,60,0,61,216,72,223,60,0,61,216,73,223,60,0,61,216,74,223,60,0,61,216,75,223,60,0,61,216,76,223,60,0,61,216,77,223,60,0,61,216,78,223,60,0,61,216,79,223,60,0,61,216,80,223,60,0,61,216,81,223,60,0,61,216,82,223,60,0,61,216,83,223,60,0,61,216,84,223,60,0,61,216,85,223,60,0,61,216,86,223,60,0,61,216,87,223,60,0,61,216,88,223,60,0,61,216,89,223,60,0,61,216,90,223,60,0,61,216,91,223,60,0,61,216,92,223,60,0,61,216,93,223,60,0,61,216,94,223,60,0,61,216,95,223,60,0,61,216,96,223,60,0,61,216,97,223,60,0,61,216,98,223,60,0,61,216,99,223,60,0,61,216,100,223,60,0,61,216,101,223,60,0,61,216,102,223,60,0,61,216,103,223,60,0,61,216,104,223,60,0,61,216,105,223,60,0,61,216,106,223,60,0,61,216,107,223,60,0,61,216,108,223,60,0,61,216,109,223,60,0,61,216,110,223,60,0,61,216,111,223,60,0,61,216,112,223,60,0,61,216,113,223,60,0,61,216,114,223,60,0,61,216,115,223,60,0,61,216,116,223,60,0,61,216,117,223,60,0,61,216,118,223,60,0,61,216,123,223,60,0,61,216,124,223,60,0,61,216,125,223,60,0,61,216,126,223,60,0,61,216,127,223,60,0,61,216,128,223,60,0,61,216,129,223,60,0,61,216,130,223,60,0,61,216,131,223,60,0,61,216,132,223,60,0,61,216,133,223,60,0,61,216,134,223,60,0,61,216,135,223,60,0,61,216,136,223,60,0,61,216,137,223,60,0,61,216,138,223,60,0,61,216,139,223,60,0,61,216,140,223,60,0,61,216,141,223,60,0,61,216,142,223,60,0,61,216,143,223,60,0,61,216,144,223,60,0,61,216,145,223,60,0,61,216,146,223,60,0,61,216,147,223,60,0,61,216,148,223,60,0,61,216,149,223,60,0,61,216,150,223,60,0,61,216,151,223,60,0,61,216,152,223,60,0,61,216,153,223,60,0,61,216,154,223,60,0,61,216,155,223,60,0,61,216,156,223,60,0,61,216,157,223,60,0,61,216,158,223,60,0,61,216,159,223,60,0,61,216,160,223,60,0,61,216,161,223,60,0,61,216,162,223,60,0,61,216,163,223,60,0,61,216,164,223,60,0,61,216,165,223,60,0,61,216,166,223,60,0,61,216,167,223,60,0,61,216,168,223,60,0,61,216,169,223,60,0,61,216,170,223,60,0,61,216,171,223,60,0,61,216,172,223,60,0,61,216,173,223,60,0,61,216,174,223,60,0,61,216,175,223,60,0,61,216,176,223,60,0,61,216,177,223,60,0,61,216,178,223,60,0,61,216,179,223,60,0,61,216,180,223,60,0,61,216,181,223,60,0,61,216,182,223,60,0,61,216,183,223,60,0,61,216,184,223,60,0,61,216,185,223,60,0,61,216,186,223,60,0,61,216,187,223,60,0,61,216,188,223,60,0,61,216,189,223,60,0,61,216,190,223,60,0,61,216,191,223,60,0,61,216,192,223,60,0,61,216,193,223,60,0,61,216,194,223,60,0,61,216,195,223,60,0,61,216,196,223,60,0,61,216,197,223,60,0,61,216,198,223,60,0,61,216,199,223,60,0,61,216,200,223,60,0,61,216,201,223,60,0,61,216,202,223,60,0,61,216,203,223,60,0,61,216,204,223,60,0,61,216,205,223,60,0,61,216,206,223,60,0,61,216,207,223,60,0,61,216,208,223,60,0,61,216,209,223,60,0,61,216,210,223,60,0,61,216,211,223,60,0,61,216,212,223,60,0,61,216,213,223,60,0,61,216,214,223,60,0,61,216,215,223,60,0,61,216,216,223,60,0,61,216,217,223,60,0,61,216,224,223,60,0,61,216,225,223,60,0,61,216,226,223,60,0,61,216,227,223,60,0,61,216,228,223,60,0,61,216,229,223,60,0,61,216,230,223,60,0,61,216,231,223,60,0,61,216,232,223,60,0,61,216,233,223,60,0,61,216,234,223,60,0,61,216,235,223,60,0,61,216,240,223,60,0,62,216,0,220,60,0,62,216,1,220,60,0,62,216,2,220,60,0,62,216,3,220,60,0,62,216,4,220,60,0,62,216,5,220,60,0,62,216,6,220,60,0,62,216,7,220,60,0,62,216,8,220,60,0,62,216,9,220,60,0,62,216,10,220,60,0,62,216,11,220,60,0,62,216,16,220,60,0,62,216,17,220,60,0,62,216,18,220,60,0,62,216,19,220,60,0,62,216,20,220,60,0,62,216,21,220,60,0,62,216,22,220,60,0,62,216,23,220,60,0,62,216,24,220,60,0,62,216,25,220,60,0,62,216,26,220,60,0,62,216,27,220,60,0,62,216,28,220,60,0,62,216,29,220,60,0,62,216,30,220,60,0,62,216,31,220,60,0,62,216,32,220,60,0,62,216,33,220,60,0,62,216,34,220,60,0,62,216,35,220,60,0,62,216,36,220,60,0,62,216,37,220,60,0,62,216,38,220,60,0,62,216,39,220,60,0,62,216,40,220,60,0,62,216,41,220,60,0,62,216,42,220,60,0,62,216,43,220,60,0,62,216,44,220,60,0,62,216,45,220,60,0,62,216,46,220,60,0,62,216,47,220,60,0,62,216,48,220,60,0,62,216,49,220,60,0,62,216,50,220,60,0,62,216,51,220,60,0,62,216,52,220,60,0,62,216,53,220,60,0,62,216,54,220,60,0,62,216,55,220,60,0,62,216,56,220,60,0,62,216,57,220,60,0,62,216,58,220,60,0,62,216,59,220,60,0,62,216,60,220,60,0,62,216,61,220,60,0,62,216,62,220,60,0,62,216,63,220,60,0,62,216,64,220,60,0,62,216,65,220,60,0,62,216,66,220,60,0,62,216,67,220,60,0,62,216,68,220,60,0,62,216,69,220,60,0,62,216,70,220,60,0,62,216,71,220,60,0,62,216,80,220,60,0,62,216,81,220,60,0,62,216,82,220,60,0,62,216,83,220,60,0,62,216,84,220,60,0,62,216,85,220,60,0,62,216,86,220,60,0,62,216,87,220,60,0,62,216,88,220,60,0,62,216,89,220,60,0,62,216,96,220,60,0,62,216,97,220,60,0,62,216,98,220,60,0,62,216,99,220,60,0,62,216,100,220,60,0,62,216,101,220,60,0,62,216,102,220,60,0,62,216,103,220,60,0,62,216,104,220,60,0,62,216,105,220,60,0,62,216,106,220,60,0,62,216,107,220,60,0,62,216,108,220,60,0,62,216,109,220,60,0,62,216,110,220,60,0,62,216,111,220,60,0,62,216,112,220,60,0,62,216,113,220,60,0,62,216,114,220,60,0,62,216,115,220,60,0,62,216,116,220,60,0,62,216,117,220,60,0,62,216,118,220,60,0,62,216,119,220,60,0,62,216,120,220,60,0,62,216,121,220,60,0,62,216,122,220,60,0,62,216,123,220,60,0,62,216,124,220,60,0,62,216,125,220,60,0,62,216,126,220,60,0,62,216,127,220,60,0,62,216,128,220,60,0,62,216,129,220,60,0,62,216,130,220,60,0,62,216,131,220,60,0,62,216,132,220,60,0,62,216,133,220,60,0,62,216,134,220,60,0,62,216,135,220,60,0,62,216,144,220,60,0,62,216,145,220,60,0,62,216,146,220,60,0,62,216,147,220,60,0,62,216,148,220,60,0,62,216,149,220,60,0,62,216,150,220,60,0,62,216,151,220,60,0,62,216,152,220,60,0,62,216,153,220,60,0,62,216,154,220,60,0,62,216,155,220,60,0,62,216,156,220,60,0,62,216,157,220,60,0,62,216,158,220,60,0,62,216,159,220,60,0,62,216,160,220,60,0,62,216,161,220,60,0,62,216,162,220,60,0,62,216,163,220,60,0,62,216,164,220,60,0,62,216,165,220,60,0,62,216,166,220,60,0,62,216,167,220,60,0,62,216,168,220,60,0,62,216,169,220,60,0,62,216,170,220,60,0,62,216,171,220,60,0,62,216,172,220,60,0,62,216,173,220,60,0,62,216,176,220,60,0,62,216,177,220,60,0,54,216,0,220,60,0,54,216,1,220,60,0,54,216,2,220,60,0,54,216,3,220,60,0,54,216,4,220,60,0,54,216,5,220,60,0,54,216,6,220,60,0,54,216,7,220,60,0,54,216,8,220,60,0,54,216,9,220,60,0,54,216,10,220,60,0,54,216,11,220,60,0,54,216,12,220,60,0,54,216,13,220,60,0,54,216,14,220,60,0,54,216,15,220,60,0,54,216,16,220,60,0,54,216,17,220,60,0,54,216,18,220,60,0,54,216,19,220,60,0,54,216,20,220,60,0,54,216,21,220,60,0,54,216,22,220,60,0,54,216,23,220,60,0,54,216,24,220,60,0,54,216,25,220,60,0,54,216,26,220,60,0,54,216,27,220,60,0,54,216,28,220,60,0,54,216,29,220,60,0,54,216,30,220,60,0,54,216,31,220,60,0,54,216,32,220,60,0,54,216,33,220,60,0,54,216,34,220,60,0,54,216,35,220,60,0,54,216,36,220,60,0,54,216,37,220,60,0,54,216,38,220,60,0,54,216,39,220,60,0,54,216,40,220,60,0,54,216,41,220,60,0,54,216,42,220,60,0,54,216,43,220,60,0,54,216,44,220,60,0,54,216,45,220,60,0,54,216,46,220,60,0,54,216,47,220,60,0,54,216,48,220,60,0,54,216,49,220,60,0,54,216,50,220,60,0,54,216,51,220,60,0,54,216,52,220,60,0,54,216,53,220,60,0,54,216,54,220,60,0,54,216,55,220,60,0,54,216,56,220,60,0,54,216,57,220,60,0,54,216,58,220,60,0,54,216,59,220,60,0,54,216,60,220,60,0,54,216,61,220,60,0,54,216,62,220,60,0,54,216,63,220,60,0,54,216,64,220,60,0,54,216,65,220,60,0,54,216,66,220,60,0,54,216,67,220,60,0,54,216,68,220,60,0,54,216,69,220,60,0,54,216,70,220,60,0,54,216,71,220,60,0,54,216,72,220,60,0,54,216,73,220,60,0,54,216,74,220,60,0,54,216,75,220,60,0,54,216,76,220,60,0,54,216,77,220,60,0,54,216,78,220,60,0,54,216,79,220,60,0,54,216,80,220,60,0,54,216,81,220,60,0,54,216,82,220,60,0,54,216,83,220,60,0,54,216,84,220,60,0,54,216,85,220,60,0,54,216,86,220,60,0,54,216,87,220,60,0,54,216,88,220,60,0,54,216,89,220,60,0,54,216,90,220,60,0,54,216,91,220,60,0,54,216,92,220,60,0,54,216,93,220,60,0,54,216,94,220,60,0,54,216,95,220,60,0,54,216,96,220,60,0,54,216,97,220,60,0,54,216,98,220,60,0,54,216,99,220,60,0,54,216,100,220,60,0,54,216,101,220,60,0,54,216,102,220,60,0,54,216,103,220,60,0,54,216,104,220,60,0,54,216,105,220,60,0,54,216,106,220,60,0,54,216,107,220,60,0,54,216,108,220,60,0,54,216,109,220,60,0,54,216,110,220,60,0,54,216,111,220,60,0,54,216,112,220,60,0,54,216,113,220,60,0,54,216,114,220,60,0,54,216,115,220,60,0,54,216,116,220,60,0,54,216,117,220,60,0,54,216,118,220,60,0,54,216,119,220,60,0,54,216,120,220,60,0,54,216,121,220,60,0,54,216,122,220,60,0,54,216,123,220,60,0,54,216,124,220,60,0,54,216,125,220,60,0,54,216,126,220,60,0,54,216,127,220,60,0,54,216,128,220,60,0,54,216,129,220,60,0,54,216,130,220,60,0,54,216,131,220,60,0,54,216,132,220,60,0,54,216,133,220,60,0,54,216,134,220,60,0,54,216,135,220,60,0,54,216,136,220,60,0,54,216,137,220,60,0,54,216,138,220,60,0,54,216,139,220,60,0,54,216,140,220,60,0,54,216,141,220,60,0,54,216,142,220,60,0,54,216,143,220,60,0,54,216,144,220,60,0,54,216,145,220,60,0,54,216,146,220,60,0,54,216,147,220,60,0,54,216,148,220,60,0,54,216,149,220,60,0,54,216,150,220,60,0,54,216,151,220,60,0,54,216,152,220,60,0,54,216,153,220,60,0,54,216,154,220,60,0,54,216,155,220,60,0,54,216,156,220,60,0,54,216,157,220,60,0,54,216,158,220,60,0,54,216,159,220,60,0,54,216,160,220,60,0,54,216,161,220,60,0,54,216,162,220,60,0,54,216,163,220,60,0,54,216,164,220,60,0,54,216,165,220,60,0,54,216,166,220,60,0,54,216,167,220,60,0,54,216,168,220,60,0,54,216,169,220,60,0,54,216,170,220,60,0,54,216,171,220,60,0,54,216,172,220,60,0,54,216,173,220,60,0,54,216,174,220,60,0,54,216,175,220,60,0,54,216,176,220,60,0,54,216,177,220,60,0,54,216,178,220,60,0,54,216,179,220,60,0,54,216,180,220,60,0,54,216,181,220,60,0,54,216,182,220,60,0,54,216,183,220,60,0,54,216,184,220,60,0,54,216,185,220,60,0,54,216,186,220,60,0,54,216,187,220,60,0,54,216,188,220,60,0,54,216,189,220,60,0,54,216,190,220,60,0,54,216,191,220,60,0,54,216,192,220,60,0,54,216,193,220,60,0,54,216,194,220,60,0,54,216,195,220,60,0,54,216,196,220,60,0,54,216,197,220,60,0,54,216,198,220,60,0,54,216,199,220,60,0,54,216,200,220,60,0,54,216,201,220,60,0,54,216,202,220,60,0,54,216,203,220,60,0,54,216,204,220,60,0,54,216,205,220,60,0,54,216,206,220,60,0,54,216,207,220,60,0,54,216,208,220,60,0,54,216,209,220,60,0,54,216,210,220,60,0,54,216,211,220,60,0,54,216,212,220,60,0,54,216,213,220,60,0,54,216,214,220,60,0,54,216,215,220,60,0,54,216,216,220,60,0,54,216,217,220,60,0,54,216,218,220,60,0,54,216,219,220,60,0,54,216,220,220,60,0,54,216,221,220,60,0,54,216,222,220,60,0,54,216,223,220,60,0,54,216,224,220,60,0,54,216,225,220,60,0,54,216,226,220,60,0,54,216,227,220,60,0,54,216,228,220,60,0,54,216,229,220,60,0,54,216,230,220,60,0,54,216,231,220,60,0,54,216,232,220,60,0,54,216,233,220,60,0,54,216,234,220,60,0,54,216,235,220,60,0,54,216,236,220,60,0,54,216,237,220,60,0,54,216,238,220,60,0,54,216,239,220,60,0,54,216,240,220,60,0,54,216,241,220,60,0,54,216,242,220,60,0,54,216,243,220,60,0,54,216,244,220,60,0,54,216,245,220,60,0,54,216,246,220,60,0,54,216,247,220,60,0,54,216,248,220,60,0,54,216,249,220,60,0,54,216,250,220,60,0,54,216,251,220,60,0,54,216,252,220,60,0,54,216,253,220,60,0,54,216,254,220,60,0,54,216,255,220,60,0,54,216,0,221,60,0,54,216,1,221,60,0,54,216,2,221,60,0,54,216,3,221,60,0,54,216,4,221,60,0,54,216,5,221,60,0,54,216,6,221,60,0,54,216,7,221,60,0,54,216,8,221,60,0,54,216,9,221,60,0,54,216,10,221,60,0,54,216,11,221,60,0,54,216,12,221,60,0,54,216,13,221,60,0,54,216,14,221,60,0,54,216,15,221,60,0,54,216,16,221,60,0,54,216,17,221,60,0,54,216,18,221,60,0,54,216,19,221,60,0,54,216,20,221,60,0,54,216,21,221,60,0,54,216,22,221,60,0,54,216,23,221,60,0,54,216,24,221,60,0,54,216,25,221,60,0,54,216,26,221,60,0,54,216,27,221,60,0,54,216,28,221,60,0,54,216,29,221,60,0,54,216,30,221,60,0,54,216,31,221,60,0,54,216,32,221,60,0,54,216,33,221,60,0,54,216,34,221,60,0,54,216,35,221,60,0,54,216,36,221,60,0,54,216,37,221,60,0,54,216,38,221,60,0,54,216,39,221,60,0,54,216,40,221,60,0,54,216,41,221,60,0,54,216,42,221,60,0,54,216,43,221,60,0,54,216,44,221,60,0,54,216,45,221,60,0,54,216,46,221,60,0,54,216,47,221,60,0,54,216,48,221,60,0,54,216,49,221,60,0,54,216,50,221,60,0,54,216,51,221,60,0,54,216,52,221,60,0,54,216,53,221,60,0,54,216,54,221,60,0,54,216,55,221,60,0,54,216,56,221,60,0,54,216,57,221,60,0,54,216,58,221,60,0,54,216,59,221,60,0,54,216,60,221,60,0,54,216,61,221,60,0,54,216,62,221,60,0,54,216,63,221,60,0,54,216,64,221,60,0,54,216,65,221,60,0,54,216,66,221,60,0,54,216,67,221,60,0,54,216,68,221,60,0,54,216,69,221,60,0,54,216,70,221,60,0,54,216,71,221,60,0,54,216,72,221,60,0,54,216,73,221,60,0,54,216,74,221,60,0,54,216,75,221,60,0,54,216,76,221,60,0,54,216,77,221,60,0,54,216,78,221,60,0,54,216,79,221,60,0,54,216,80,221,60,0,54,216,81,221,60,0,54,216,82,221,60,0,54,216,83,221,60,0,54,216,84,221,60,0,54,216,85,221,60,0,54,216,86,221,60,0,54,216,87,221,60,0,54,216,88,221,60,0,54,216,89,221,60,0,54,216,90,221,60,0,54,216,91,221,60,0,54,216,92,221,60,0,54,216,93,221,60,0,54,216,94,221,60,0,54,216,95,221,60,0,54,216,96,221,60,0,54,216,97,221,60,0,54,216,98,221,60,0,54,216,99,221,60,0,54,216,100,221,60,0,54,216,101,221,60,0,54,216,102,221,60,0,54,216,103,221,60,0,54,216,104,221,60,0,54,216,105,221,60,0,54,216,106,221,60,0,54,216,107,221,60,0,54,216,108,221,60,0,54,216,109,221,60,0,54,216,110,221,60,0,54,216,111,221,60,0,54,216,112,221,60,0,54,216,113,221,60,0,54,216,114,221,60,0,54,216,115,221,60,0,54,216,116,221,60,0,54,216,117,221,60,0,54,216,118,221,60,0,54,216,119,221,60,0,54,216,120,221,60,0,54,216,121,221,60,0,54,216,122,221,60,0,54,216,123,221,60,0,54,216,124,221,60,0,54,216,125,221,60,0,54,216,126,221,60,0,54,216,127,221,60,0,54,216,128,221,60,0,54,216,129,221,60,0,54,216,130,221,60,0,54,216,131,221,60,0,54,216,132,221,60,0,54,216,133,221,60,0,54,216,134,221,60,0,54,216,135,221,60,0,54,216,136,221,60,0,54,216,137,221,60,0,54,216,138,221,60,0,54,216,139,221,60,0,54,216,140,221,60,0,54,216,141,221,60,0,54,216,142,221,60,0,54,216,143,221,60,0,54,216,144,221,60,0,54,216,145,221,60,0,54,216,146,221,60,0,54,216,147,221,60,0,54,216,148,221,60,0,54,216,149,221,60,0,54,216,150,221,60,0,54,216,151,221,60,0,54,216,152,221,60,0,54,216,153,221,60,0,54,216,154,221,60,0,54,216,155,221,60,0,54,216,156,221,60,0,54,216,157,221,60,0,54,216,158,221,60,0,54,216,159,221,60,0,54,216,160,221,60,0,54,216,161,221,60,0,54,216,162,221,60,0,54,216,163,221,60,0,54,216,164,221,60,0,54,216,165,221,60,0,54,216,166,221,60,0,54,216,167,221,60,0,54,216,168,221,60,0,54,216,169,221,60,0,54,216,170,221,60,0,54,216,171,221,60,0,54,216,172,221,60,0,54,216,173,221,60,0,54,216,174,221,60,0,54,216,175,221,60,0,54,216,176,221,60,0,54,216,177,221,60,0,54,216,178,221,60,0,54,216,179,221,60,0,54,216,180,221,60,0,54,216,181,221,60,0,54,216,182,221,60,0,54,216,183,221,60,0,54,216,184,221,60,0,54,216,185,221,60,0,54,216,186,221,60,0,54,216,187,221,60,0,54,216,188,221,60,0,54,216,189,221,60,0,54,216,190,221,60,0,54,216,191,221,60,0,54,216,192,221,60,0,54,216,193,221,60,0,54,216,194,221,60,0,54,216,195,221,60,0,54,216,196,221,60,0,54,216,197,221,60,0,54,216,198,221,60,0,54,216,199,221,60,0,54,216,200,221,60,0,54,216,201,221,60,0,54,216,202,221,60,0,54,216,203,221,60,0,54,216,204,221,60,0,54,216,205,221,60,0,54,216,206,221,60,0,54,216,207,221,60,0,54,216,208,221,60,0,54,216,209,221,60,0,54,216,210,221,60,0,54,216,211,221,60,0,54,216,212,221,60,0,54,216,213,221,60,0,54,216,214,221,60,0,54,216,215,221,60,0,54,216,216,221,60,0,54,216,217,221,60,0,54,216,218,221,60,0,54,216,219,221,60,0,54,216,220,221,60,0,54,216,221,221,60,0,54,216,222,221,60,0,54,216,223,221,60,0,54,216,224,221,60,0,54,216,225,221,60,0,54,216,226,221,60,0,54,216,227,221,60,0,54,216,228,221,60,0,54,216,229,221,60,0,54,216,230,221,60,0,54,216,231,221,60,0,54,216,232,221,60,0,54,216,233,221,60,0,54,216,234,221,60,0,54,216,235,221,60,0,54,216,236,221,60,0,54,216,237,221,60,0,54,216,238,221,60,0,54,216,239,221,60,0,54,216,240,221,60,0,54,216,241,221,60,0,54,216,242,221,60,0,54,216,243,221,60,0,54,216,244,221,60,0,54,216,245,221,60,0,54,216,246,221,60,0,54,216,247,221,60,0,54,216,248,221,60,0,54,216,249,221,60,0,54,216,250,221,60,0,54,216,251,221,60,0,54,216,252,221,60,0,54,216,253,221,60,0,54,216,254,221,60,0,54,216,255,221,60,0,54,216,55,222,60,0,54,216,56,222,60,0,54,216,57,222,60,0,54,216,58,222,60,0,54,216,109,222,60,0,54,216,110,222,60,0,54,216,111,222,60,0,54,216,112,222,60,0,54,216,113,222,60,0,54,216,114,222,60,0,54,216,115,222,60,0,54,216,116,222,60,0,54,216,118,222,60,0,54,216,119,222,60,0,54,216,120,222,60,0,54,216,121,222,60,0,54,216,122,222,60,0,54,216,123,222,60,0,54,216,124,222,60,0,54,216,125,222,60,0,54,216,126,222,60,0,54,216,127,222,60,0,54,216,128,222,60,0,54,216,129,222,60,0,54,216,130,222,60,0,54,216,131,222,60,0,54,216,133,222,60,0,54,216,134,222,60,0,240,47,60,0,241,47,60,0,242,47,60,0,243,47,60,0,244,47,60,0,245,47,60,0,246,47,60,0,247,47,60,0,248,47,60,0,249,47,60,0,250,47,60,0,251,47,60,0,192,49,60,0,193,49,60,0,194,49,60,0,195,49,60,0,196,49,60,0,197,49,60,0,198,49,60,0,199,49,60,0,200,49,60,0,201,49,60,0,202,49,60,0,203,49,60,0,204,49,60,0,205,49,60,0,206,49,60,0,207,49,60,0,208,49,60,0,209,49,60,0,210,49,60,0,211,49,60,0,212,49,60,0,213,49,60,0,214,49,60,0,215,49,60,0,216,49,60,0,217,49,60,0,218,49,60,0,219,49,60,0,220,49,60,0,221,49,60,0,222,49,60,0,223,49,60,0,224,49,60,0,225,49,60,0,226,49,60,0,227,49,60,0,4,48,60,0,18,48,60,0,60,0,60,0,54,48,60,0,19,48,60,0,32,48,60,0,55,48,60,0,62,48,60,0,63,48,60,0,144,49,60,0,145,49,60,0,127,50,60,0,252,255,60,0,208,2,60,0,60,0,60,0,1,216,129,223,60,0,209,2,60,0,60,0,60,0,1,216,130,223,60,0,113,9,60,0,70,14,60,0,198,14,60,0,215,23,60,0,167,26,60,0,207,169,60,0,230,169,60,0,112,170,60,0,221,170,60,0,243,170,60,0,244,170,60,0,26,216,66,223,60,0,26,216,67,223,60,0,56,216,60,221,60,0,56,216,61,221,60,0,5,48,60,0,59,48,60,0,27,216,224,223,60,0,27,216,225,223,60,0,27,216,227,223,60,0,49,48,60,0,60,0,60,0,50,48,47,0,153,48,60,0,51,48,60,0,60,0,60,0,52,48,47,0,153,48,60,0,53,48,60,0,157,48,60,0,252,48,60,0,60,0,60,0,112,255,60,0,253,48,38,0,252,253,60,0,164,0,60,0,162,0,60,0,60,0,60,0,224,255,60,0,39,0,36,0,39,0,60,0,60,0,60,0,4,255,60,0,60,0,60,0,105,254,60,0,163,0,60,0,60,0,60,0,225,255,60,0,165,0,60,0,60,0,60,0,229,255,60,0,143,5,60,0,14,32,11,6,14,32,60,0,14,32,254,7,14,32,60,0,14,32,255,7,14,32,60,0,242,9,60,0,243,9,60,0,251,9,60,0,241,10,60,0,56,168,60,0,249,11,60,0,7,216,221,223,60,0,7,216,222,223,60,0,7,216,223,223,60,0,7,216,224,223,60,0,63,14,60,0,219,23,60,0,56,216,255,222,60,0,160,32,60,0,161,32,60,0,162,32,60,0,163,32,60,0,164,32,60,0,165,32,60,0,166,32,60,0,167,32,60,0,169,32,60,0,60,0,60,0,230,255,60,0,170,32,60,0,171,32,60,0,172,32,60,0,173,32,60,0,174,32,60,0,175,32,60,0,176,32,60,0,177,32,60,0,178,32,60,0,179,32,60,0,180,32,60,0,181,32,60,0,182,32,60,0,183,32,60,0,184,32,60,0,185,32,60,0,14,32,59,216,176,220,14,32,60,0,186,32,60,0,187,32,60,0,188,32,60,0,189,32,60,0,190,32,60,0,191,32,60,0,192,32,60,0,168,32,60,0,14,32,252,253,14,32,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,244,9,60,0,245,9,60,0,246,9,60,0,247,9,60,0,248,9,60,0,249,9,60,0,114,11,60,0,115,11,60,0,116,11,60,0,117,11,60,0,118,11,60,0,119,11,60,0,48,168,60,0,49,168,60,0,50,168,60,0,51,168,60,0,52,168,60,0,53,168,60,0,240,11,60,0,241,11,60,0,242,11,60,0,7,216,192,223,60,0,7,216,193,223,60,0,7,216,194,223,60,0,7,216,195,223,60,0,7,216,196,223,60,0,7,216,197,223,60,0,7,216,198,223,60,0,7,216,199,223,60,0,7,216,200,223,60,0,7,216,201,223,60,0,7,216,202,223,60,0,7,216,203,223,60,0,7,216,204,223,60,0,7,216,205,223,60,0,7,216,206,223,60,0,7,216,207,223,60,0,7,216,208,223,60,0,7,216,209,223,60,0,7,216,210,223,60,0,7,216,211,223,60,0,7,216,212,223,60,0,88,13,60,0,89,13,60,0,90,13,60,0,91,13,60,0,92,13,60,0,93,13,60,0,94,13,60,0,112,13,60,0,113,13,60,0,114,13,60,0,115,13,60,0,116,13,60,0,117,13,60,0,118,13,60,0,119,13,60,0,120,13,60,0,114,19,60,0,115,19,60,0,116,19,60,0,117,19,60,0,118,19,60,0,119,19,60,0,120,19,60,0,121,19,60,0,122,19,60,0,123,19,60,0,124,19,60,0,128,33,60,0,129,33,60,0,130,33,60,0,134,33,60,0,135,33,60,0,136,33,60,0,3,216,105,222,60,0,3,216,106,222,60,0,3,216,107,222,60,0,3,216,108,222,60,0,3,216,109,222,60,0,3,216,110,222,60,0,3,216,111,222,60,0,3,216,112,222,60,0,3,216,113,222,60,0,3,216,114,222,60,0,3,216,115,222,60,0,3,216,116,222,60,0,3,216,117,222,60,0,3,216,118,222,60,0,3,216,119,222,60,0,3,216,120,222,60,0,3,216,121,222,60,0,3,216,122,222,60,0,3,216,123,222,60,0,3,216,124,222,60,0,3,216,125,222,60,0,3,216,126,222,60,0,253,44,60,0,0,216,34,223,60,0,0,216,35,223,60,0,14,32,3,216,252,220,14,32,60,0,14,32,3,216,253,220,14,32,60,0,14,32,3,216,254,220,14,32,60,0,14,32,3,216,255,220,14,32,60,0,0,216,16,221,60,0,0,216,17,221,60,0,0,216,18,221,60,0,0,216,19,221,60,0,0,216,20,221,60,0,0,216,21,221,60,0,0,216,22,221,60,0,0,216,23,221,60,0,0,216,24,221,60,0,0,216,25,221,60,0,0,216,26,221,60,0,0,216,27,221,60,0,0,216,28,221,60,0,0,216,29,221,60,0,0,216,30,221,60,0,0,216,31,221,60,0,0,216,32,221,60,0,0,216,33,221,60,0,0,216,34,221,60,0,0,216,35,221,60,0,0,216,36,221,60,0,0,216,37,221,60,0,0,216,38,221,60,0,0,216,39,221,60,0,0,216,40,221,60,0,0,216,41,221,60,0,0,216,42,221,60,0,0,216,43,221,60,0,0,216,44,221,60,0,0,216,45,221,60,0,0,216,46,221,60,0,0,216,47,221,60,0,0,216,48,221,60,0,0,216,49,221,60,0,0,216,50,221,60,0,0,216,51,221,60,0,0,216,64,221,60,0,0,216,65,221,60,0,0,216,68,221,60,0,0,216,69,221,60,0,0,216,70,221,60,0,0,216,71,221,60,0,0,216,73,221,60,0,0,216,74,221,60,0,0,216,75,221,60,0,0,216,76,221,60,0,0,216,77,221,60,0,0,216,78,221,60,0,0,216,80,221,60,0,0,216,81,221,60,0,0,216,82,221,60,0,0,216,83,221,60,0,0,216,84,221,60,0,0,216,85,221,60,0,0,216,86,221,60,0,0,216,87,221,60,0,0,216,96,221,60,0,0,216,97,221,60,0,0,216,98,221,60,0,0,216,99,221,60,0,0,216,100,221,60,0,0,216,101,221,60,0,0,216,102,221,60,0,0,216,103,221,60,0,0,216,104,221,60,0,0,216,105,221,60,0,0,216,106,221,60,0,0,216,107,221,60,0,0,216,108,221,60,0,0,216,109,221,60,0,0,216,110,221,60,0,0,216,111,221,60,0,0,216,112,221,60,0,0,216,113,221,60,0,0,216,114,221,60,0,0,216,116,221,60,0,0,216,117,221,60,0,0,216,118,221,60,0,0,216,119,221,60,0,0,216,120,221,60,0,0,216,139,221,60,0,0,216,234,222,60,0,0,216,235,222,60,0,0,216,236,222,60,0,0,216,237,222,60,0,0,216,238,222,60,0,0,216,239,222,60,0,0,216,240,222,60,0,0,216,241,222,60,0,0,216,242,222,60,0,0,216,243,222,60,0,0,216,244,222,60,0,0,216,245,222,60,0,0,216,246,222,60,0,0,216,247,222,60,0,0,216,248,222,60,0,0,216,249,222,60,0,0,216,250,222,60,0,0,216,251,222,60,0,0,216,211,223,60,0,0,216,212,223,60,0,0,216,213,223,60,0,14,32,2,216,126,220,14,32,60,0,14,32,2,216,127,220,14,32,60,0,14,32,2,216,173,220,14,32,60,0,14,32,2,216,174,220,14,32,60,0,14,32,2,216,175,220,14,32,60,0,14,32,2,216,253,220,14,32,60,0,14,32,2,216,254,220,14,32,60,0,14,32,2,216,255,220,14,32,60,0,14,32,2,216,126,222,14,32,60,0,14,32,2,216,158,222,14,32,60,0,14,32,2,216,159,222,14,32,60,0,14,32,2,216,23,221,14,32,60,0,14,32,2,216,24,221,14,32,60,0,14,32,2,216,25,221,14,32,60,0,14,32,2,216,91,220,14,32,60,0,14,32,2,216,92,220,14,32,60,0,14,32,2,216,93,220,14,32,60,0,14,32,2,216,94,220,14,32,60,0,14,32,2,216,95,220,14,32,60,0,14,32,2,216,237,222,14,32,60,0,14,32,2,216,238,222,14,32,60,0,14,32,2,216,239,222,14,32,60,0,14,32,2,216,92,223,14,32,60,0,14,32,2,216,93,223,14,32,60,0,14,32,2,216,94,223,14,32,60,0,14,32,2,216,95,223,14,32,60,0,14,32,2,216,124,223,14,32,60,0,14,32,2,216,125,223,14,32,60,0,14,32,2,216,126,223,14,32,60,0,14,32,2,216,127,223,14,32,60,0,14,32,2,216,173,223,14,32,60,0,14,32,2,216,174,223,14,32,60,0,14,32,2,216,175,223,14,32,60,0,14,32,3,216,34,223,14,32,60,0,14,32,3,216,35,223,14,32,60,0,14,32,3,216,36,223,14,32,60,0,14,32,3,216,37,223,14,32,60,0,14,32,3,216,38,223,14,32,60,0,14,32,3,216,82,223,14,32,60,0,14,32,3,216,83,223,14,32,60,0,14,32,3,216,84,223,14,32,60,0,14,32,3,216,201,223,14,32,60,0,14,32,3,216,202,223,14,32,60,0,14,32,3,216,203,223,14,32,60,0,5,216,58,223,60,0,5,216,59,223,60,0,4,216,91,220,60,0,4,216,92,220,60,0,4,216,93,220,60,0,4,216,94,220,60,0,4,216,95,220,60,0,4,216,96,220,60,0,4,216,97,220,60,0,4,216,98,220,60,0,4,216,99,220,60,0,4,216,100,220,60,0,4,216,101,220,60,0,14,32,2,216,68,222,14,32,60,0,14,32,2,216,69,222,14,32,60,0,14,32,2,216,70,222,14,32,60,0,14,32,2,216,71,222,14,32,60,0,14,32,2,216,72,222,14,32,60,0,7,216,99,220,60,0,7,216,100,220,60,0,7,216,101,220,60,0,7,216,102,220,60,0,7,216,103,220,60,0,7,216,104,220,60,0,7,216,105,220,60,0,7,216,106,220,60,0,7,216,107,220,60,0,7,216,108,220,60,0,4,216,234,221,60,0,4,216,235,221,60,0,4,216,236,221,60,0,4,216,237,221,60,0,4,216,238,221,60,0,4,216,239,221,60,0,4,216,240,221,60,0,4,216,241,221,60,0,4,216,242,221,60,0,4,216,243,221,60,0,4,216,244,221,60,0,6,216,234,220,60,0,6,216,235,220,60,0,6,216,236,220,60,0,6,216,237,220,60,0,6,216,238,220,60,0,6,216,239,220,60,0,6,216,240,220,60,0,6,216,241,220,60,0,6,216,242,220,60,0,26,216,91,223,60,0,26,216,92,223,60,0,26,216,93,223,60,0,26,216,94,223,60,0,26,216,95,223,60,0,26,216,96,223,60,0,26,216,97,223,60,0,27,216,138,222,60,0,27,216,139,222,60,0,27,216,140,222,60,0,27,216,141,222,60,0,27,216,142,222,60,0,27,216,143,222,60,0,27,216,144,222,60,0,27,216,145,222,60,0,27,216,146,222,60,0,27,216,147,222,60,0,52,216,202,222,60,0,52,216,203,222,60,0,52,216,204,222,60,0,52,216,205,222,60,0,52,216,206,222,60,0,52,216,207,222,60,0,52,216,208,222,60,0,52,216,209,222,60,0,52,216,210,222,60,0,52,216,211,222,60,0,52,216,234,222,60,0,52,216,235,222,60,0,52,216,236,222,60,0,52,216,237,222,60,0,52,216,238,222,60,0,52,216,239,222,60,0,52,216,240,222,60,0,52,216,241,222,60,0,52,216,242,222,60,0,52,216,243,222,60,0,14,32,59,216,122,220,14,32,60,0,14,32,59,216,123,220,14,32,60,0,14,32,59,216,124,220,14,32,60,0,14,32,59,216,125,220,14,32,60,0,14,32,59,216,126,220,14,32,60,0,14,32,59,216,127,220,14,32,60,0,14,32,59,216,128,220,14,32,60,0,14,32,59,216,129,220,14,32,60,0,14,32,59,216,130,220,14,32,60,0,14,32,59,216,131,220,14,32,60,0,14,32,59,216,132,220,14,32,60,0,14,32,59,216,133,220,14,32,60,0,14,32,59,216,134,220,14,32,60,0,14,32,59,216,135,220,14,32,60,0,14,32,59,216,136,220,14,32,60,0,14,32,59,216,137,220,14,32,60,0,14,32,59,216,138,220,14,32,60,0,14,32,59,216,139,220,14,32,60,0,14,32,59,216,140,220,14,32,60,0,14,32,59,216,141,220,14,32,60,0,14,32,59,216,142,220,14,32,60,0,14,32,59,216,143,220,14,32,60,0,14,32,59,216,144,220,14,32,60,0,14,32,59,216,145,220,14,32,60,0,14,32,59,216,146,220,14,32,60,0,14,32,59,216,147,220,14,32,60,0,14,32,59,216,148,220,14,32,60,0,14,32,59,216,149,220,14,32,60,0,14,32,59,216,150,220,14,32,60,0,14,32,59,216,151,220,14,32,60,0,14,32,59,216,152,220,14,32,60,0,14,32,59,216,153,220,14,32,60,0,14,32,59,216,154,220,14,32,60,0,14,32,59,216,155,220,14,32,60,0,14,32,59,216,156,220,14,32,60,0,14,32,59,216,157,220,14,32,60,0,14,32,59,216,158,220,14,32,60,0,14,32,59,216,159,220,14,32,60,0,14,32,59,216,160,220,14,32,60,0,14,32,59,216,161,220,14,32,60,0,14,32,59,216,162,220,14,32,60,0,14,32,59,216,173,220,14,32,60,0,14,32,59,216,174,220,14,32,60,0,14,32,59,216,175,220,14,32,60,0,14,32,59,216,179,220,14,32,60,0,14,32,59,216,180,220,14,32,60,0,14,32,59,216,10,221,14,32,60,0,14,32,59,216,11,221,14,32,60,0,14,32,59,216,12,221,14,32,60,0,14,32,59,216,13,221,14,32,60,0,14,32,59,216,14,221,14,32,60,0,14,32,59,216,15,221,14,32,60,0,14,32,59,216,16,221,14,32,60,0,14,32,59,216,17,221,14,32,60,0,14,32,59,216,18,221,14,32,60,0,14,32,59,216,19,221,14,32,60,0,14,32,59,216,20,221,14,32,60,0,14,32,59,216,21,221,14,32,60,0,14,32,59,216,22,221,14,32,60,0,14,32,59,216,23,221,14,32,60,0,14,32,59,216,24,221,14,32,60,0,14,32,59,216,25,221,14,32,60,0,14,32,59,216,26,221,14,32,60,0,14,32,59,216,27,221,14,32,60,0,14,32,59,216,28,221,14,32,60,0,14,32,59,216,29,221,14,32,60,0,14,32,59,216,30,221,14,32,60,0,14,32,59,216,31,221,14,32,60,0,14,32,59,216,32,221,14,32,60,0,14,32,59,216,33,221,14,32,60,0,14,32,59,216,34,221,14,32,60,0,14,32,59,216,35,221,14,32,60,0,14,32,59,216,36,221,14,32,60,0,14,32,59,216,37,221,14,32,60,0,14,32,59,216,38,221,14,32,60,0,14,32,59,216,39,221,14,32,60,0,14,32,59,216,40,221,14,32,60,0,14,32,59,216,41,221,14,32,60,0,14,32,59,216,42,221,14,32,60,0,14,32,59,216,43,221,14,32,60,0,14,32,59,216,44,221,14,32,60,0,14,32,59,216,45,221,14,32,60,0,14,32,59,216,55,221,14,32,60,0,14,32,59,216,56,221,14,32,60,0,14,32,59,216,57,221,14,32,60,0,14,32,59,216,58,221,14,32,60,0,14,32,59,216,59,221,14,32,60,0,14,32,59,216,60,221,14,32,60,0,14,32,59,216,61,221,14,32,60,0,14,32,2,216,201,221,14,32,60,0,14,32,2,216,202,221,14,32,60,0,14,32,2,216,203,221,14,32,60,0,14,32,2,216,204,221,14,32,60,0,14,32,2,216,205,221,14,32,60,0,14,32,2,216,206,221,14,32,60,0,14,32,2,216,207,221,14,32,60,0,14,32,2,216,210,221,14,32,60,0,14,32,2,216,211,221,14,32,60,0,14,32,2,216,212,221,14,32,60,0,14,32,2,216,213,221,14,32,60,0,14,32,2,216,214,221,14,32,60,0,14,32,2,216,215,221,14,32,60,0,14,32,2,216,216,221,14,32,60,0,14,32,2,216,217,221,14,32,60,0,14,32,2,216,218,221,14,32,60,0,14,32,2,216,219,221,14,32,60,0,14,32,2,216,220,221,14,32,60,0,14,32,2,216,221,221,14,32,60,0,14,32,2,216,222,221,14,32,60,0,14,32,2,216,223,221,14,32,60,0,14,32,2,216,224,221,14,32,60,0,14,32,2,216,225,221,14,32,60,0,14,32,2,216,226,221,14,32,60,0,14,32,2,216,227,221,14,32,60,0,14,32,2,216,228,221,14,32,60,0,14,32,2,216,229,221,14,32,60,0,14,32,2,216,230,221,14,32,60,0,14,32,2,216,231,221,14,32,60,0,14,32,2,216,232,221,14,32,60,0,14,32,2,216,233,221,14,32,60,0,14,32,2,216,234,221,14,32,60,0,14,32,2,216,235,221,14,32,60,0,14,32,2,216,236,221,14,32,60,0,14,32,2,216,237,221,14,32,60,0,14,32,2,216,238,221,14,32,60,0,14,32,2,216,239,221,14,32,60,0,14,32,2,216,240,221,14,32,60,0,14,32,2,216,241,221,14,32,60,0,14,32,2,216,242,221,14,32,60,0,14,32,2,216,243,221,14,32,60,0,14,32,2,216,244,221,14,32,60,0,14,32,2,216,245,221,14,32,60,0,14,32,2,216,189,221,14,32,60,0,14,32,2,216,246,221,14,32,60,0,14,32,2,216,247,221,14,32,60,0,14,32,2,216,248,221,14,32,60,0,14,32,2,216,249,221,14,32,60,0,14,32,2,216,250,221,14,32,60,0,14,32,2,216,251,221,14,32,60,0,14,32,2,216,252,221,14,32,60,0,14,32,2,216,253,221,14,32,60,0,14,32,2,216,254,221,14,32,60,0,14,32,2,216,255,221,14,32,60,0,14,32,2,216,188,221,14,32,60,0,9,216,50,220,60,0,9,216,51,220,60,0,9,216,90,220,60,0,9,216,91,220,60,0,9,216,92,220,60,0,9,216,93,220,60,0,9,216,94,220,60,0,9,216,95,220,60,0,9,216,96,220,60,0,9,216,97,220,60,0,9,216,98,220,60,0,9,216,99,220,60,0,9,216,100,220,60,0,9,216,101,220,60,0,9,216,102,220,60,0,9,216,103,220,60,0,9,216,104,220,60,0,52,216,105,223,60,0,52,216,106,223,60,0,52,216,107,223,60,0,52,216,108,223,60,0,52,216,109,223,60,0,52,216,110,223,60,0,52,216,111,223,60,0,52,216,112,223,60,0,52,216,113,223,60,0,48,0,61,0,96,6,61,0,240,6,61,0,14,32,192,7,14,32,61,0,102,9,61,0,230,9,61,0,102,10,61,0,230,10,61,0,102,11,61,0,230,11,61,0,102,12,61,0,120,12,61,0,230,12,61,0,102,13,61,0,230,13,61,0,80,14,61,0,208,14,61,0,32,15,61,0,64,16,61,0,144,16,61,0,224,23,61,0,240,23,61,0,16,24,61,0,70,25,61,0,208,25,61,0,128,26,61,0,144,26,61,0,80,27,61,0,176,27,61,0,64,28,61,0,80,28,61,0,7,48,61,0,32,166,61,0,208,168,61,0,0,169,61,0,208,169,61,0,240,169,61,0,80,170,61,0,240,171,61,0,0,216,138,221,61,0,1,216,160,220,61,0,3,216,48,221,61,0,4,216,102,220,61,0,4,216,240,220,61,0,4,216,54,221,61,0,4,216,208,221,61,0,4,216,240,222,61,0,5,216,80,220,61,0,5,216,208,220,61,0,5,216,80,222,61,0,5,216,192,222,61,0,5,216,48,223,61,0,6,216,224,220,61,0,6,216,80,221,61,0,7,216,80,220,61,0,7,216,80,221,61,0,7,216,160,221,61,0,7,216,80,223,61,0,26,216,96,222,61,0,26,216,192,222,61,0,26,216,80,223,61,0,27,216,128,222,61,0,52,216,192,222,61,0,52,216,224,222,61,0,56,216,64,221,61,0,56,216,240,222,61,0,57,216,240,220,61,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,16,255,60,0,60,0,60,0,51,15,60,0,60,0,60,0,60,216,1,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,60,216,0,221,47,0,39,0,46,0,39,0,60,0,60,0,60,0,88,51,47,0,185,112,60,0,60,0,60,0,53,216,206,223,61,0,53,216,216,223,61,0,53,216,226,223,61,0,53,216,236,223,61,0,53,216,246,223,61,0,62,216,240,223,60,0,60,0,60,0,234,36,61,0,255,36,61,0,60,216,11,221,61,0,60,216,12,221,60,0,60,0,60,0,112,32,60,0,60,0,60,0,128,32,60,0,60,0,60,0,137,33,47,0,14,32,68,32,59,216,3,221,14,32,60,0,49,0,61,0,97,6,61,0,241,6,61,0,14,32,193,7,14,32,61,0,103,9,61,0,231,9,61,0,103,10,61,0,231,10,61,0,103,11,61,0,231,11,61,0,103,12,61,0,121,12,61,0,124,12,61,0,231,12,61,0,103,13,61,0,231,13,61,0,81,14,61,0,209,14,61,0,33,15,61,0,65,16,61,0,145,16,61,0,105,19,61,0,225,23,61,0,241,23,61,0,17,24,61,0,71,25,61,0,209,25,61,0,218,25,61,0,129,26,61,0,145,26,61,0,81,27,61,0,177,27,61,0,65,28,61,0,81,28,61,0,33,48,61,0,33,166,61,0,209,168,61,0,1,169,61,0,209,169,61,0,241,169,61,0,81,170,61,0,241,171,61,0,0,216,7,221,61,0,0,216,66,221,61,0,0,216,88,221,61,0,0,216,89,221,61,0,0,216,90,221,61,0,0,216,225,222,61,0,0,216,32,223,61,0,0,216,209,223,61,0,1,216,161,220,61,0,14,32,2,216,88,220,14,32,61,0,14,32,2,216,121,220,14,32,61,0,14,32,2,216,167,220,14,32,61,0,14,32,2,216,251,220,14,32,61,0,14,32,2,216,22,221,14,32,61,0,14,32,2,216,192,221,14,32,61,0,14,32,2,216,64,222,14,32,61,0,14,32,2,216,125,222,14,32,61,0,14,32,2,216,157,222,14,32,61,0,14,32,2,216,235,222,14,32,61,0,14,32,2,216,88,223,14,32,61,0,14,32,2,216,120,223,14,32,61,0,14,32,2,216,169,223,14,32,61,0,14,32,3,216,250,220,14,32,61,0,3,216,49,221,61,0,3,216,96,222,61,0,14,32,3,216,29,223,14,32,61,0,14,32,3,216,81,223,14,32,61,0,14,32,3,216,197,223,14,32,61,0,4,216,82,220,61,0,4,216,103,220,61,0,4,216,241,220,61,0,4,216,55,221,61,0,4,216,209,221,61,0,4,216,225,221,61,0,4,216,241,222,61,0,5,216,81,220,61,0,5,216,209,220,61,0,5,216,81,222,61,0,5,216,193,222,61,0,5,216,49,223,61,0,6,216,225,220,61,0,6,216,81,221,61,0,7,216,81,220,61,0,7,216,90,220,61,0,7,216,81,221,61,0,7,216,161,221,61,0,7,216,81,223,61,0,9,216,21,220,61,0,9,216,30,220,61,0,9,216,44,220,61,0,9,216,52,220,61,0,9,216,79,220,61,0,9,216,88,220,61,0,26,216,97,222,61,0,26,216,193,222,61,0,26,216,81,223,61,0,27,216,129,222,61,0,52,216,193,222,61,0,52,216,225,222,61,0,52,216,96,223,61,0,52,216,114,223,61,0,52,216,119,223,61,0,56,216,65,221,61,0,56,216,241,222,61,0,57,216,241,220,61,0,14,32,58,216,199,220,14,32,61,0,14,32,58,216,81,221,14,32,61,0,14,32,59,216,113,220,14,32,61,0,14,32,59,216,163,220,14,32,61,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,17,255,60,0,60,0,60,0,42,15,60,0,60,0,60,0,60,216,2,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,136,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,145,36,47,0,14,32,58,216,80,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,233,51,47,0,14,32,58,216,80,221,229,101,14,32,60,0,60,0,60,0,201,50,47,0,14,32,58,216,80,221,8,103,14,32,60,0,60,0,60,0,98,51,47,0,14,32,58,216,80,221,185,112,14,32,60,0,60,0,60,0,146,36,47,0,14,32,59,216,1,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,234,51,47,0,14,32,59,216,1,221,229,101,14,32,60,0,60,0,60,0,202,50,47,0,14,32,59,216,1,221,8,103,14,32,60,0,60,0,60,0,99,51,47,0,14,32,59,216,1,221,185,112,14,32,60,0,60,0,60,0,147,36,47,0,14,32,59,216,2,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,235,51,47,0,14,32,59,216,2,221,229,101,14,32,60,0,60,0,60,0,203,50,47,0,14,32,59,216,2,221,8,103,14,32,60,0,60,0,60,0,100,51,47,0,14,32,59,216,2,221,185,112,14,32,60,0,60,0,60,0,148,36,47,0,14,32,59,216,3,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,236,51,47,0,14,32,59,216,3,221,229,101,14,32,60,0,60,0,60,0,101,51,47,0,14,32,59,216,3,221,185,112,14,32,60,0,60,0,60,0,149,36,47,0,14,32,59,216,4,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,237,51,47,0,14,32,59,216,4,221,229,101,14,32,60,0,60,0,60,0,102,51,47,0,14,32,59,216,4,221,185,112,14,32,60,0,60,0,60,0,150,36,47,0,14,32,59,216,5,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,238,51,47,0,14,32,59,216,5,221,229,101,14,32,60,0,60,0,60,0,103,51,47,0,14,32,59,216,5,221,185,112,14,32,60,0,60,0,60,0,151,36,47,0,14,32,59,216,6,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,239,51,47,0,14,32,59,216,6,221,229,101,14,32,60,0,60,0,60,0,104,51,47,0,14,32,59,216,6,221,185,112,14,32,60,0,60,0,60,0,152,36,47,0,14,32,59,216,7,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,240,51,47,0,14,32,59,216,7,221,229,101,14,32,60,0,60,0,60,0,105,51,47,0,14,32,59,216,7,221,185,112,14,32,60,0,60,0,60,0,153,36,47,0,14,32,59,216,8,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,241,51,47,0,14,32,59,216,8,221,229,101,14,32,60,0,60,0,60,0,106,51,47,0,14,32,59,216,8,221,185,112,14,32,60,0,60,0,60,0,154,36,47,0,14,32,59,216,9,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,242,51,47,0,14,32,59,216,9,221,229,101,14,32,60,0,60,0,60,0,107,51,47,0,14,32,59,216,9,221,185,112,14,32,60,0,60,0,60,0,224,51,47,0,229,101,60,0,60,0,60,0,192,50,47,0,8,103,60,0,60,0,60,0,89,51,47,0,185,112,60,0,60,0,60,0,53,216,207,223,61,0,53,216,217,223,61,0,53,216,227,223,61,0,53,216,237,223,61,0,53,216,247,223,61,0,62,216,241,223,60,0,60,0,60,0,96,36,61,0,245,36,61,0,118,39,61,0,128,39,61,0,138,39,60,0,60,0,60,0,105,36,47,0,14,32,58,216,80,221,14,32,61,0,254,36,47,0,14,32,58,216,80,221,14,32,61,0,127,39,47,0,14,32,58,216,80,221,14,32,61,0,137,39,47,0,14,32,58,216,80,221,14,32,61,0,147,39,47,0,14,32,58,216,80,221,14,32,61,0,72,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,106,36,47,0,14,32,59,216,1,221,14,32,61,0,235,36,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,107,36,47,0,14,32,59,216,2,221,14,32,61,0,236,36,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,108,36,47,0,14,32,59,216,3,221,14,32,61,0,237,36,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,109,36,47,0,14,32,59,216,4,221,14,32,61,0,238,36,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,110,36,47,0,14,32,59,216,5,221,14,32,61,0,239,36,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,111,36,47,0,14,32,59,216,6,221,14,32,61,0,240,36,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,112,36,47,0,14,32,59,216,7,221,14,32,61,0,241,36,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,113,36,47,0,14,32,59,216,8,221,14,32,61,0,242,36,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,114,36,47,0,14,32,59,216,9,221,14,32,61,0,243,36,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,185,0,60,0,60,0,60,0,129,32,60,0,60,0,60,0,60,216,164,221,47,0,14,32,59,216,2,221,58,216,80,221,80,0,14,32,60,0,60,0,60,0,95,33,47,0,68,32,60,0,60,0,60,0,82,33,47,0,14,32,68,32,59,216,1,221,58,216,80,221,14,32,60,0,60,0,60,0,189,0,47,0,14,32,68,32,59,216,2,221,14,32,60,0,60,0,60,0,83,33,47,0,14,32,68,32,59,216,3,221,14,32,60,0,60,0,60,0,188,0,47,0,14,32,68,32,59,216,4,221,14,32,60,0,60,0,60,0,85,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,60,0,89,33,47,0,14,32,68,32,59,216,6,221,14,32,60,0,60,0,60,0,80,33,47,0,14,32,68,32,59,216,7,221,14,32,60,0,60,0,60,0,91,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,60,0,81,33,47,0,14,32,68,32,59,216,9,221,14,32,60,0,60,0,27,216,148,222,61,0,14,32,59,216,177,220,14,32,60,0,50,0,61,0,98,6,61,0,242,6,61,0,14,32,194,7,14,32,61,0,104,9,61,0,232,9,61,0,104,10,61,0,232,10,61,0,104,11,61,0,232,11,61,0,104,12,61,0,122,12,61,0,125,12,61,0,232,12,61,0,104,13,61,0,232,13,61,0,82,14,61,0,210,14,61,0,34,15,61,0,66,16,61,0,146,16,61,0,106,19,61,0,226,23,61,0,242,23,61,0,18,24,61,0,72,25,61,0,210,25,61,0,130,26,61,0,146,26,61,0,82,27,61,0,178,27,61,0,66,28,61,0,82,28,61,0,34,48,61,0,34,166,61,0,210,168,61,0,2,169,61,0,210,169,61,0,242,169,61,0,82,170,61,0,242,171,61,0,0,216,8,221,61,0,0,216,91,221,61,0,0,216,92,221,61,0,0,216,93,221,61,0,0,216,94,221,61,0,0,216,226,222,61,0,0,216,210,223,61,0,1,216,162,220,61,0,14,32,2,216,89,220,14,32,61,0,14,32,2,216,122,220,14,32,61,0,14,32,2,216,168,220,14,32,61,0,14,32,2,216,26,221,14,32,61,0,14,32,2,216,193,221,14,32,61,0,14,32,2,216,65,222,14,32,61,0,14,32,2,216,89,223,14,32,61,0,14,32,2,216,121,223,14,32,61,0,14,32,2,216,170,223,14,32,61,0,3,216,50,221,61,0,3,216,97,222,61,0,14,32,3,216,30,223,14,32,61,0,14,32,3,216,198,223,14,32,61,0,4,216,83,220,61,0,4,216,104,220,61,0,4,216,242,220,61,0,4,216,56,221,61,0,4,216,210,221,61,0,4,216,226,221,61,0,4,216,242,222,61,0,5,216,82,220,61,0,5,216,210,220,61,0,5,216,82,222,61,0,5,216,194,222,61,0,5,216,50,223,61,0,6,216,226,220,61,0,6,216,82,221,61,0,7,216,82,220,61,0,7,216,91,220,61,0,7,216,82,221,61,0,7,216,162,221,61,0,7,216,82,223,61,0,9,216,0,220,61,0,9,216,22,220,61,0,9,216,31,220,61,0,9,216,35,220,61,0,9,216,45,220,61,0,9,216,53,220,61,0,9,216,74,220,61,0,9,216,80,220,61,0,9,216,86,220,61,0,9,216,89,220,61,0,26,216,98,222,61,0,26,216,194,222,61,0,26,216,82,223,61,0,27,216,130,222,61,0,52,216,194,222,61,0,52,216,226,222,61,0,52,216,97,223,61,0,52,216,115,223,61,0,56,216,66,221,61,0,56,216,242,222,61,0,57,216,242,220,61,0,14,32,58,216,200,220,14,32,61,0,14,32,58,216,82,221,14,32,61,0,14,32,59,216,114,220,14,32,61,0,14,32,59,216,164,220,14,32,61,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,18,255,60,0,60,0,60,0,43,15,60,0,60,0,60,0,60,216,3,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,137,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,155,36,47,0,14,32,58,216,80,221,39,0,46,0,39,0,14,32,60,0,60,0,60,0,243,51,47,0,14,32,58,216,80,221,229,101,14,32,60,0,60,0,60,0,108,51,47,0,14,32,58,216,80,221,185,112,14,32,60,0,60,0,60,0,244,51,47,0,14,32,59,216,1,221,229,101,14,32,60,0,60,0,60,0,109,51,47,0,14,32,59,216,1,221,185,112,14,32,60,0,60,0,60,0,245,51,47,0,14,32,59,216,2,221,229,101,14,32,60,0,60,0,60,0,110,51,47,0,14,32,59,216,2,221,185,112,14,32,60,0,60,0,60,0,246,51,47,0,14,32,59,216,3,221,229,101,14,32,60,0,60,0,60,0,111,51,47,0,14,32,59,216,3,221,185,112,14,32,60,0,60,0,60,0,247,51,47,0,14,32,59,216,4,221,229,101,14,32,60,0,60,0,60,0,112,51,47,0,14,32,59,216,4,221,185,112,14,32,60,0,60,0,60,0,248,51,47,0,14,32,59,216,5,221,229,101,14,32,60,0,60,0,60,0,249,51,47,0,14,32,59,216,6,221,229,101,14,32,60,0,60,0,60,0,250,51,47,0,14,32,59,216,7,221,229,101,14,32,60,0,60,0,60,0,251,51,47,0,14,32,59,216,8,221,229,101,14,32,60,0,60,0,60,0,252,51,47,0,14,32,59,216,9,221,229,101,14,32,60,0,60,0,60,0,225,51,47,0,229,101,60,0,60,0,60,0,193,50,47,0,8,103,60,0,60,0,60,0,90,51,47,0,185,112,60,0,60,0,60,0,53,216,208,223,61,0,53,216,218,223,61,0,53,216,228,223,61,0,53,216,238,223,61,0,53,216,248,223,61,0,62,216,242,223,60,0,60,0,60,0,97,36,61,0,246,36,61,0,119,39,61,0,129,39,61,0,139,39,60,0,60,0,60,0,115,36,47,0,14,32,58,216,80,221,14,32,61,0,244,36,47,0,14,32,58,216,80,221,14,32,61,0,73,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,81,50,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,82,50,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,83,50,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,84,50,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,85,50,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,86,50,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,87,50,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,88,50,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,89,50,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,178,0,60,0,60,0,60,0,130,32,60,0,60,0,60,0,60,216,162,221,47,0,14,32,59,216,2,221,39,0,46,0,39,0,59,216,2,221,14,32,60,0,60,0,60,0,60,216,157,221,47,0,75,0,60,0,60,0,60,0,60,216,156,221,47,0,110,0,100,0,39,0,32,0,39,0,83,0,99,0,114,0,60,0,60,0,60,0,84,33,47,0,14,32,68,32,59,216,3,221,14,32,60,0,60,0,60,0,86,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,27,216,149,222,61,0,14,32,59,216,178,220,14,32,61,0,14,32,59,216,47,221,14,32,60,0,51,0,61,0,99,6,61,0,243,6,61,0,14,32,195,7,14,32,61,0,105,9,61,0,233,9,61,0,105,10,61,0,233,10,61,0,105,11,61,0,233,11,61,0,105,12,61,0,123,12,61,0,126,12,61,0,233,12,61,0,105,13,61,0,233,13,61,0,83,14,61,0,211,14,61,0,35,15,61,0,67,16,61,0,147,16,61,0,107,19,61,0,227,23,61,0,243,23,61,0,19,24,61,0,73,25,61,0,211,25,61,0,131,26,61,0,147,26,61,0,83,27,61,0,179,27,61,0,67,28,61,0,83,28,61,0,35,48,61,0,35,166,61,0,211,168,61,0,3,169,61,0,211,169,61,0,243,169,61,0,83,170,61,0,243,171,61,0,0,216,9,221,61,0,0,216,227,222,61,0,1,216,163,220,61,0,14,32,2,216,90,220,14,32,61,0,14,32,2,216,123,220,14,32,61,0,14,32,2,216,169,220,14,32,61,0,14,32,2,216,27,221,14,32,61,0,14,32,2,216,194,221,14,32,61,0,14,32,2,216,66,222,14,32,61,0,14,32,2,216,90,223,14,32,61,0,14,32,2,216,122,223,14,32,61,0,14,32,2,216,171,223,14,32,61,0,3,216,51,221,61,0,3,216,98,222,61,0,14,32,3,216,31,223,14,32,61,0,14,32,3,216,199,223,14,32,61,0,4,216,84,220,61,0,4,216,105,220,61,0,4,216,243,220,61,0,4,216,57,221,61,0,4,216,211,221,61,0,4,216,227,221,61,0,4,216,243,222,61,0,5,216,83,220,61,0,5,216,211,220,61,0,5,216,83,222,61,0,5,216,195,222,61,0,5,216,51,223,61,0,6,216,227,220,61,0,6,216,83,221,61,0,7,216,83,220,61,0,7,216,92,220,61,0,7,216,83,221,61,0,7,216,163,221,61,0,7,216,83,223,61,0,9,216,1,220,61,0,9,216,8,220,61,0,9,216,23,220,61,0,9,216,32,220,61,0,9,216,36,220,61,0,9,216,37,220,61,0,9,216,46,220,61,0,9,216,47,220,61,0,9,216,54,220,61,0,9,216,55,220,61,0,9,216,58,220,61,0,9,216,59,220,61,0,9,216,75,220,61,0,9,216,81,220,61,0,9,216,87,220,61,0,26,216,99,222,61,0,26,216,195,222,61,0,26,216,83,223,61,0,27,216,131,222,61,0,52,216,195,222,61,0,52,216,227,222,61,0,52,216,98,223,61,0,52,216,116,223,61,0,56,216,67,221,61,0,56,216,243,222,61,0,57,216,243,220,61,0,14,32,58,216,201,220,14,32,61,0,14,32,58,216,83,221,14,32,61,0,14,32,59,216,115,220,14,32,61,0,14,32,59,216,165,220,14,32,61,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,19,255,60,0,60,0,60,0,44,15,60,0,60,0,60,0,60,216,4,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,138,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,253,51,47,0,14,32,58,216,80,221,229,101,14,32,60,0,60,0,60,0,254,51,47,0,14,32,59,216,1,221,229,101,14,32,60,0,60,0,60,0,226,51,47,0,229,101,60,0,60,0,60,0,194,50,47,0,8,103,60,0,60,0,60,0,91,51,47,0,185,112,60,0,60,0,60,0,53,216,209,223,61,0,53,216,219,223,61,0,53,216,229,223,61,0,53,216,239,223,61,0,53,216,249,223,61,0,62,216,243,223,60,0,60,0,60,0,98,36,61,0,247,36,61,0,120,39,61,0,130,39,61,0,140,39,60,0,60,0,60,0,74,50,47,0,14,32,58,216,80,221,14,32,61,0,90,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,91,50,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,92,50,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,93,50,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,94,50,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,95,50,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,177,50,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,178,50,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,179,50,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,180,50,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,179,0,60,0,60,0,60,0,131,32,60,0,60,0,60,0,60,216,155,221,47,0,68,0,60,0,60,0,60,0,190,0,47,0,14,32,68,32,59,216,4,221,14,32,60,0,60,0,60,0,87,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,60,0,92,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,27,216,150,222,60,0,60,0,60,0,14,32,59,216,48,221,14,32,60,0,52,0,61,0,100,6,61,0,244,6,61,0,14,32,196,7,14,32,61,0,106,9,61,0,234,9,61,0,106,10,61,0,234,10,61,0,106,11,61,0,234,11,61,0,106,12,61,0,234,12,61,0,106,13,61,0,234,13,61,0,84,14,61,0,212,14,61,0,36,15,61,0,68,16,61,0,148,16,61,0,108,19,61,0,228,23,61,0,244,23,61,0,20,24,61,0,74,25,61,0,212,25,61,0,132,26,61,0,148,26,61,0,84,27,61,0,180,27,61,0,68,28,61,0,84,28,61,0,36,48,61,0,36,166,61,0,212,168,61,0,4,169,61,0,212,169,61,0,244,169,61,0,84,170,61,0,244,171,61,0,0,216,10,221,61,0,0,216,228,222,61,0,1,216,164,220,61,0,14,32,2,216,124,220,14,32,61,0,14,32,2,216,170,220,14,32,61,0,14,32,2,216,171,220,14,32,61,0,14,32,2,216,195,221,14,32,61,0,14,32,2,216,67,222,14,32,61,0,14,32,2,216,91,223,14,32,61,0,14,32,2,216,123,223,14,32,61,0,14,32,2,216,172,223,14,32,61,0,3,216,52,221,61,0,3,216,99,222,61,0,14,32,3,216,32,223,14,32,61,0,14,32,3,216,200,223,14,32,61,0,4,216,85,220,61,0,4,216,106,220,61,0,4,216,244,220,61,0,4,216,58,221,61,0,4,216,212,221,61,0,4,216,228,221,61,0,4,216,244,222,61,0,5,216,84,220,61,0,5,216,212,220,61,0,5,216,84,222,61,0,5,216,196,222,61,0,5,216,52,223,61,0,6,216,228,220,61,0,6,216,84,221,61,0,7,216,84,220,61,0,7,216,93,220,61,0,7,216,84,221,61,0,7,216,164,221,61,0,7,216,84,223,61,0,9,216,2,220,61,0,9,216,9,220,61,0,9,216,15,220,61,0,9,216,24,220,61,0,9,216,33,220,61,0,9,216,38,220,61,0,9,216,48,220,61,0,9,216,56,220,61,0,9,216,60,220,61,0,9,216,61,220,61,0,9,216,62,220,61,0,9,216,63,220,61,0,9,216,76,220,61,0,9,216,82,220,61,0,9,216,83,220,61,0,9,216,105,220,61,0,26,216,100,222,61,0,26,216,196,222,61,0,26,216,84,223,61,0,27,216,132,222,61,0,52,216,196,222,61,0,52,216,228,222,61,0,52,216,99,223,61,0,52,216,117,223,61,0,56,216,68,221,61,0,56,216,244,222,61,0,57,216,244,220,61,0,14,32,58,216,202,220,14,32,61,0,14,32,58,216,84,221,14,32,61,0,14,32,59,216,116,220,14,32,61,0,14,32,59,216,166,220,14,32,61,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,20,255,60,0,60,0,60,0,45,15,60,0,60,0,60,0,60,216,5,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,139,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,227,51,47,0,229,101,60,0,60,0,60,0,195,50,47,0,8,103,60,0,60,0,60,0,92,51,47,0,185,112,60,0,60,0,60,0,53,216,210,223,61,0,53,216,220,223,61,0,53,216,230,223,61,0,53,216,240,223,61,0,53,216,250,223,61,0,62,216,244,223,60,0,60,0,60,0,99,36,61,0,248,36,61,0,121,39,61,0,131,39,61,0,141,39,60,0,60,0,60,0,75,50,47,0,14,32,58,216,80,221,14,32,61,0,181,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,182,50,47,0,14,32,59,216,1,221,14,32,60,0,60,0,60,0,183,50,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,184,50,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,185,50,47,0,14,32,59,216,4,221,14,32,60,0,60,0,60,0,186,50,47,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,187,50,47,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,188,50,47,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,189,50,47,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,190,50,47,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,116,32,60,0,60,0,60,0,132,32,60,0,60,0,60,0,60,216,158,221,47,0,75,0,60,0,60,0,60,0,88,33,47,0,14,32,68,32,59,216,5,221,14,32,60,0,60,0,14,32,59,216,49,221,14,32,60,0,53,0,61,0,101,6,61,0,245,6,61,0,14,32,197,7,14,32,61,0,107,9,61,0,235,9,61,0,107,10,61,0,235,10,61,0,107,11,61,0,235,11,61,0,107,12,61,0,235,12,61,0,107,13,61,0,235,13,61,0,85,14,61,0,213,14,61,0,37,15,61,0,69,16,61,0,149,16,61,0,109,19,61,0,229,23,61,0,245,23,61,0,21,24,61,0,75,25,61,0,213,25,61,0,133,26,61,0,149,26,61,0,85,27,61,0,181,27,61,0,69,28,61,0,85,28,61,0,37,48,61,0,37,166,61,0,213,168,61,0,5,169,61,0,213,169,61,0,245,169,61,0,85,170,61,0,245,171,61,0,0,216,11,221,61,0,0,216,67,221,61,0,0,216,72,221,61,0,0,216,79,221,61,0,0,216,95,221,61,0,0,216,115,221,61,0,0,216,229,222,61,0,0,216,33,223,61,0,1,216,165,220,61,0,14,32,2,216,125,220,14,32,61,0,14,32,2,216,172,220,14,32,61,0,14,32,2,216,252,220,14,32,61,0,14,32,2,216,196,221,14,32,61,0,14,32,2,216,236,222,14,32,61,0,14,32,3,216,251,220,14,32,61,0,3,216,53,221,61,0,3,216,100,222,61,0,14,32,3,216,33,223,14,32,61,0,4,216,86,220,61,0,4,216,107,220,61,0,4,216,245,220,61,0,4,216,59,221,61,0,4,216,213,221,61,0,4,216,229,221,61,0,4,216,245,222,61,0,5,216,85,220,61,0,5,216,213,220,61,0,5,216,85,222,61,0,5,216,197,222,61,0,5,216,53,223,61,0,6,216,229,220,61,0,6,216,85,221,61,0,7,216,85,220,61,0,7,216,94,220,61,0,7,216,85,221,61,0,7,216,165,221,61,0,7,216,85,223,61,0,9,216,3,220,61,0,9,216,10,220,61,0,9,216,16,220,61,0,9,216,25,220,61,0,9,216,34,220,61,0,9,216,39,220,61,0,9,216,49,220,61,0,9,216,57,220,61,0,9,216,77,220,61,0,9,216,84,220,61,0,9,216,85,220,61,0,9,216,106,220,61,0,26,216,101,222,61,0,26,216,197,222,61,0,26,216,85,223,61,0,27,216,133,222,61,0,52,216,197,222,61,0,52,216,229,222,61,0,52,216,100,223,61,0,52,216,118,223,61,0,52,216,120,223,61,0,56,216,69,221,61,0,56,216,245,222,61,0,57,216,245,220,61,0,14,32,58,216,203,220,14,32,61,0,14,32,58,216,85,221,14,32,61,0,14,32,59,216,117,220,14,32,61,0,14,32,59,216,167,220,14,32,61,0,14,32,59,216,5,221,14,32,60,0,60,0,60,0,21,255,60,0,60,0,60,0,46,15,60,0,60,0,60,0,60,216,6,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,140,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,228,51,47,0,229,101,60,0,60,0,60,0,196,50,47,0,8,103,60,0,60,0,60,0,93,51,47,0,185,112,60,0,60,0,60,0,53,216,211,223,61,0,53,216,221,223,61,0,53,216,231,223,61,0,53,216,241,223,61,0,53,216,251,223,61,0,62,216,245,223,60,0,60,0,60,0,100,36,61,0,249,36,61,0,122,39,61,0,132,39,61,0,142,39,60,0,60,0,60,0,76,50,47,0,14,32,58,216,80,221,14,32,61,0,191,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,117,32,60,0,60,0,60,0,133,32,60,0,60,0,60,0,60,216,160,221,47,0,14,32,39,0,46,0,39,0,59,216,1,221,14,32,60,0,60,0,60,0,90,33,47,0,14,32,68,32,59,216,6,221,14,32,60,0,60,0,60,0,93,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,14,32,59,216,50,221,14,32,60,0,54,0,61,0,102,6,61,0,246,6,61,0,14,32,198,7,14,32,61,0,108,9,61,0,236,9,61,0,108,10,61,0,236,10,61,0,108,11,61,0,236,11,61,0,108,12,61,0,236,12,61,0,108,13,61,0,236,13,61,0,86,14,61,0,214,14,61,0,38,15,61,0,70,16,61,0,150,16,61,0,110,19,61,0,230,23,61,0,246,23,61,0,22,24,61,0,76,25,61,0,214,25,61,0,134,26,61,0,150,26,61,0,86,27,61,0,182,27,61,0,70,28,61,0,86,28,61,0,133,33,61,0,38,48,61,0,38,166,61,0,214,168,61,0,6,169,61,0,214,169,61,0,246,169,61,0,86,170,61,0,246,171,61,0,0,216,12,221,61,0,0,216,230,222,61,0,1,216,166,220,61,0,14,32,2,216,197,221,14,32,61,0,3,216,54,221,61,0,3,216,101,222,61,0,4,216,87,220,61,0,4,216,108,220,61,0,4,216,246,220,61,0,4,216,60,221,61,0,4,216,214,221,61,0,4,216,230,221,61,0,4,216,246,222,61,0,5,216,86,220,61,0,5,216,214,220,61,0,5,216,86,222,61,0,5,216,198,222,61,0,5,216,54,223,61,0,6,216,230,220,61,0,6,216,86,221,61,0,7,216,86,220,61,0,7,216,95,220,61,0,7,216,86,221,61,0,7,216,166,221,61,0,7,216,86,223,61,0,9,216,4,220,61,0,9,216,11,220,61,0,9,216,17,220,61,0,9,216,26,220,61,0,9,216,40,220,61,0,9,216,64,220,61,0,9,216,78,220,61,0,9,216,107,220,61,0,26,216,102,222,61,0,26,216,198,222,61,0,26,216,86,223,61,0,27,216,134,222,61,0,52,216,198,222,61,0,52,216,230,222,61,0,52,216,101,223,61,0,56,216,70,221,61,0,56,216,246,222,61,0,57,216,246,220,61,0,14,32,58,216,204,220,14,32,61,0,14,32,58,216,86,221,14,32,61,0,14,32,59,216,118,220,14,32,61,0,14,32,59,216,168,220,14,32,61,0,14,32,59,216,6,221,14,32,60,0,60,0,60,0,22,255,60,0,60,0,60,0,47,15,60,0,60,0,60,0,60,216,7,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,141,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,229,51,47,0,229,101,60,0,60,0,60,0,197,50,47,0,8,103,60,0,60,0,60,0,94,51,47,0,185,112,60,0,60,0,60,0,53,216,212,223,61,0,53,216,222,223,61,0,53,216,232,223,61,0,53,216,242,223,61,0,53,216,252,223,61,0,62,216,246,223,60,0,60,0,60,0,101,36,61,0,250,36,61,0,123,39,61,0,133,39,61,0,143,39,60,0,60,0,60,0,77,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,118,32,60,0,60,0,60,0,134,32,60,0,60,0,60,0,60,216,163,221,47,0,14,32,58,216,80,221,80,0,14,32,60,0,60,0,14,32,59,216,51,221,14,32,60,0,55,0,61,0,103,6,61,0,247,6,61,0,14,32,199,7,14,32,61,0,109,9,61,0,237,9,61,0,109,10,61,0,237,10,61,0,109,11,61,0,237,11,61,0,109,12,61,0,237,12,61,0,109,13,61,0,237,13,61,0,87,14,61,0,215,14,61,0,39,15,61,0,71,16,61,0,151,16,61,0,111,19,61,0,231,23,61,0,247,23,61,0,23,24,61,0,77,25,61,0,215,25,61,0,135,26,61,0,151,26,61,0,87,27,61,0,183,27,61,0,71,28,61,0,87,28,61,0,39,48,61,0,39,166,61,0,215,168,61,0,7,169,61,0,215,169,61,0,247,169,61,0,87,170,61,0,247,171,61,0,0,216,13,221,61,0,0,216,231,222,61,0,1,216,167,220,61,0,14,32,2,216,198,221,14,32,61,0,3,216,55,221,61,0,3,216,102,222,61,0,4,216,88,220,61,0,4,216,109,220,61,0,4,216,247,220,61,0,4,216,61,221,61,0,4,216,215,221,61,0,4,216,231,221,61,0,4,216,247,222,61,0,5,216,87,220,61,0,5,216,215,220,61,0,5,216,87,222,61,0,5,216,199,222,61,0,5,216,55,223,61,0,6,216,231,220,61,0,6,216,87,221,61,0,7,216,87,220,61,0,7,216,96,220,61,0,7,216,87,221,61,0,7,216,167,221,61,0,7,216,87,223,61,0,9,216,5,220,61,0,9,216,12,220,61,0,9,216,18,220,61,0,9,216,27,220,61,0,9,216,41,220,61,0,9,216,65,220,61,0,9,216,66,220,61,0,9,216,67,220,61,0,9,216,108,220,61,0,26,216,103,222,61,0,26,216,199,222,61,0,26,216,87,223,61,0,27,216,135,222,61,0,52,216,199,222,61,0,52,216,231,222,61,0,52,216,102,223,61,0,56,216,71,221,61,0,56,216,247,222,61,0,57,216,247,220,61,0,14,32,58,216,205,220,14,32,61,0,14,32,58,216,87,221,14,32,61,0,14,32,59,216,119,220,14,32,61,0,14,32,59,216,169,220,14,32,61,0,14,32,59,216,7,221,14,32,60,0,60,0,60,0,23,255,60,0,60,0,60,0,48,15,60,0,60,0,60,0,60,216,8,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,142,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,230,51,47,0,229,101,60,0,60,0,60,0,198,50,47,0,8,103,60,0,60,0,60,0,95,51,47,0,185,112,60,0,60,0,60,0,53,216,213,223,61,0,53,216,223,223,61,0,53,216,233,223,61,0,53,216,243,223,61,0,53,216,253,223,61,0,62,216,247,223,60,0,60,0,60,0,102,36,61,0,251,36,61,0,124,39,61,0,134,39,61,0,144,39,60,0,60,0,60,0,78,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,119,32,60,0,60,0,60,0,135,32,60,0,60,0,60,0,60,216,161,221,47,0,14,32,39,0,46,0,39,0,59,216,1,221,14,32,60,0,60,0,60,0,94,33,47,0,14,32,68,32,59,216,8,221,14,32,60,0,60,0,14,32,59,216,52,221,14,32,60,0,56,0,61,0,104,6,61,0,248,6,61,0,14,32,200,7,14,32,61,0,110,9,61,0,238,9,61,0,110,10,61,0,238,10,61,0,110,11,61,0,238,11,61,0,110,12,61,0,238,12,61,0,110,13,61,0,238,13,61,0,88,14,61,0,216,14,61,0,40,15,61,0,72,16,61,0,152,16,61,0,112,19,61,0,232,23,61,0,248,23,61,0,24,24,61,0,78,25,61,0,216,25,61,0,136,26,61,0,152,26,61,0,88,27,61,0,184,27,61,0,72,28,61,0,88,28,61,0,40,48,61,0,40,166,61,0,216,168,61,0,8,169,61,0,216,169,61,0,248,169,61,0,88,170,61,0,248,171,61,0,0,216,14,221,61,0,0,216,232,222,61,0,1,216,168,220,61,0,14,32,2,216,199,221,14,32,61,0,3,216,56,221,61,0,3,216,103,222,61,0,4,216,89,220,61,0,4,216,110,220,61,0,4,216,248,220,61,0,4,216,62,221,61,0,4,216,216,221,61,0,4,216,232,221,61,0,4,216,248,222,61,0,5,216,88,220,61,0,5,216,216,220,61,0,5,216,88,222,61,0,5,216,200,222,61,0,5,216,56,223,61,0,6,216,232,220,61,0,6,216,88,221,61,0,7,216,88,220,61,0,7,216,97,220,61,0,7,216,88,221,61,0,7,216,168,221,61,0,7,216,88,223,61,0,9,216,6,220,61,0,9,216,13,220,61,0,9,216,19,220,61,0,9,216,28,220,61,0,9,216,42,220,61,0,9,216,68,220,61,0,9,216,69,220,61,0,9,216,109,220,61,0,26,216,104,222,61,0,26,216,200,222,61,0,26,216,88,223,61,0,27,216,136,222,61,0,52,216,200,222,61,0,52,216,232,222,61,0,52,216,103,223,61,0,56,216,72,221,61,0,56,216,248,222,61,0,57,216,248,220,61,0,14,32,58,216,206,220,14,32,61,0,14,32,58,216,88,221,14,32,61,0,14,32,59,216,120,220,14,32,61,0,14,32,59,216,170,220,14,32,61,0,14,32,59,216,8,221,14,32,60,0,60,0,60,0,24,255,60,0,60,0,60,0,49,15,60,0,60,0,60,0,60,216,9,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,143,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,231,51,47,0,229,101,60,0,60,0,60,0,199,50,47,0,8,103,60,0,60,0,60,0,96,51,47,0,185,112,60,0,60,0,60,0,53,216,214,223,61,0,53,216,224,223,61,0,53,216,234,223,61,0,53,216,244,223,61,0,53,216,254,223,61,0,62,216,248,223,60,0,60,0,60,0,103,36,61,0,252,36,61,0,125,39,61,0,135,39,61,0,145,39,60,0,60,0,60,0,79,50,47,0,14,32,58,216,80,221,14,32,60,0,60,0,60,0,120,32,60,0,60,0,60,0,136,32,60,0,60,0,60,0,60,216,159,221,47,0,75,0,60,0,60,0,14,32,59,216,53,221,14,32,60,0,57,0,61,0,105,6,61,0,249,6,61,0,14,32,201,7,14,32,61,0,111,9,61,0,239,9,61,0,111,10,61,0,239,10,61,0,111,11,61,0,239,11,61,0,111,12,61,0,239,12,61,0,111,13,61,0,239,13,61,0,89,14,61,0,217,14,61,0,41,15,61,0,73,16,61,0,153,16,61,0,113,19,61,0,233,23,61,0,249,23,61,0,25,24,61,0,79,25,61,0,217,25,61,0,137,26,61,0,153,26,61,0,89,27,61,0,185,27,61,0,73,28,61,0,89,28,61,0,41,48,61,0,41,166,61,0,217,168,61,0,9,169,61,0,217,169,61,0,249,169,61,0,89,170,61,0,249,171,61,0,0,216,15,221,61,0,0,216,233,222,61,0,1,216,169,220,61,0,14,32,2,216,200,221,14,32,61,0,3,216,57,221,61,0,3,216,104,222,61,0,4,216,90,220,61,0,4,216,111,220,61,0,4,216,249,220,61,0,4,216,63,221,61,0,4,216,217,221,61,0,4,216,233,221,61,0,4,216,249,222,61,0,5,216,89,220,61,0,5,216,217,220,61,0,5,216,89,222,61,0,5,216,201,222,61,0,5,216,57,223,61,0,6,216,233,220,61,0,6,216,89,221,61,0,7,216,89,220,61,0,7,216,98,220,61,0,7,216,89,221,61,0,7,216,169,221,61,0,7,216,89,223,61,0,9,216,7,220,61,0,9,216,14,220,61,0,9,216,20,220,61,0,9,216,29,220,61,0,9,216,43,220,61,0,9,216,70,220,61,0,9,216,71,220,61,0,9,216,72,220,61,0,9,216,73,220,61,0,9,216,110,220,61,0,26,216,105,222,61,0,26,216,201,222,61,0,26,216,89,223,61,0,27,216,137,222,61,0,52,216,201,222,61,0,52,216,233,222,61,0,52,216,104,223,61,0,56,216,73,221,61,0,56,216,249,222,61,0,57,216,249,220,61,0,14,32,58,216,207,220,14,32,61,0,14,32,58,216,89,221,14,32,61,0,14,32,59,216,121,220,14,32,61,0,14,32,59,216,171,220,14,32,61,0,14,32,59,216,9,221,14,32,60,0,60,0,60,0,25,255,60,0,60,0,60,0,50,15,60,0,60,0,60,0,60,216,10,221,47,0,39,0,44,0,39,0,60,0,60,0,60,0,144,36,47,0,39,0,46,0,39,0,60,0,60,0,60,0,232,51,47,0,229,101,60,0,60,0,60,0,200,50,47,0,8,103,60,0,60,0,60,0,97,51,47,0,185,112,60,0,60,0,60,0,53,216,215,223,61,0,53,216,225,223,61,0,53,216,235,223,61,0,53,216,245,223,61,0,53,216,255,223,61,0,62,216,249,223,60,0,60,0,60,0,104,36,61,0,253,36,61,0,126,39,61,0,136,39,61,0,146,39,60,0,60,0,60,0,121,32,60,0,60,0,60,0,137,32,60,0,60,0,14,32,59,216,54,221,14,32,60,0,97,0,60,0,60,0,60,0,65,255,60,0,60,0,60,0,99,3,60,0,60,0,60,0,242,29,47,0,8,3,61,0,155,167,47,0,8,3,60,0,60,0,60,0,193,167,47,0,40,3,60,0,60,0,60,0,0,33,47,0,39,0,47,0,39,0,99,0,60,0,60,0,60,0,1,33,47,0,39,0,47,0,39,0,115,0,60,0,60,0,60,0,51,167,47,0,97,0,60,0,60,0,60,0,213,29,47,0,111,0,61,0,53,167,47,0,111,0,60,0,60,0,60,0,55,167,47,0,117,0,60,0,60,0,60,0,214,29,47,0,118,0,61,0,57,167,47,0,118,0,60,0,60,0,60,0,61,167,47,0,121,0,60,0,60,0,60,0,154,30,47,0,190,2,60,0,60,0,60,0,53,216,26,220,61,0,53,216,78,220,61,0,53,216,130,220,61,0,53,216,182,220,61,0,53,216,234,220,61,0,53,216,30,221,61,0,53,216,82,221,61,0,53,216,134,221,61,0,53,216,186,221,61,0,53,216,238,221,61,0,53,216,34,222,61,0,53,216,86,222,61,0,53,216,138,222,60,0,60,0,60,0,208,36,60,0,60,0,60,0,65,0,60,0,60,0,60,0,33,255,60,0,60,0,60,0,154,167,47,0,8,3,60,0,60,0,60,0,192,167,47,0,40,3,60,0,60,0,60,0,77,33,47,0,39,0,47,0,39,0,83,0,60,0,60,0,60,0,50,167,47,0,65,0,60,0,60,0,60,0,52,167,47,0,79,0,60,0,60,0,60,0,54,167,47,0,85,0,60,0,60,0,60,0,56,167,47,0,86,0,60,0,60,0,60,0,60,167,47,0,89,0,60,0,60,0,60,0,53,216,0,220,61,0,53,216,52,220,61,0,53,216,104,220,61,0,53,216,156,220,61,0,53,216,208,220,61,0,53,216,4,221,61,0,53,216,56,221,61,0,53,216,108,221,61,0,53,216,160,221,61,0,53,216,212,221,61,0,53,216,8,222,61,0,53,216,60,222,61,0,53,216,112,222,60,0,60,0,60,0,182,36,61,0,60,216,80,221,60,0,60,0,60,0,170,0,61,0,67,29,60,0,60,0,60,0,1,216,128,223,47,0,97,0,60,0,60,0,60,0,144,32,60,0,60,0,60,0,194,51,47,0,39,0,46,0,39,0,109,0,39,0,46,0,39,0,60,0,60,0,60,0,44,29,61,0,60,216,48,221,61,0,60,216,112,221,60,0,60,0,60,0,223,51,47,0,21,34,109,0,60,0,60,0,60,0,60,216,142,221,47,0,66,0,60,0,60,0,60,0,115,51,47,0,85,0,60,0,60,0,211,29,60,0,60,0,60,0,230,0,47,0,101,0,61,0,212,29,47,0,101,0,60,0,60,0,60,0,59,167,47,0,118,0,60,0,60,0,60,0,198,0,47,0,69,0,60,0,60,0,60,0,58,167,47,0,86,0,60,0,60,0,60,0,45,29,47,0,101,0,61,0,1,216,131,223,47,0,101,0,60,0,0,29,60,0,101,44,60,0,60,0,60,0,58,2,60,0,143,29,60,0,187,167,60,0,60,0,60,0,186,167,60,0,1,29,60,0,2,29,60,0,60,0,60,0,70,29,60,0,49,171,60,0,80,2,60,0,60,0,60,0,111,44,60,0,60,0,60,0,68,29,60,0,81,2,60,0,60,0,60,0,231,29,60,0,60,0,60,0,109,44,60,0,60,0,60,0,69,29,60,0,48,171,60,0,144,29,60,0,82,2,60,0,60,0,60,0,112,44,60,0,60,0,60,0,155,29,60,0,100,171,60,0,98,0,60,0,60,0,60,0,66,255,60,0,60,0,60,0,232,29,60,0,60,0,60,0,53,216,27,220,61,0,53,216,79,220,61,0,53,216,131,220,61,0,53,216,183,220,61,0,53,216,235,220,61,0,53,216,31,221,61,0,53,216,83,221,61,0,53,216,135,221,61,0,53,216,187,221,61,0,53,216,239,221,61,0,53,216,35,222,61,0,53,216,87,222,61,0,53,216,139,222,60,0,60,0,60,0,209,36,60,0,60,0,60,0,66,0,60,0,60,0,60,0,34,255,60,0,60,0,60,0,44,33,61,0,53,216,1,220,61,0,53,216,53,220,61,0,53,216,105,220,61,0,53,216,209,220,61,0,53,216,5,221,61,0,53,216,57,221,61,0,53,216,109,221,61,0,53,216,161,221,61,0,53,216,213,221,61,0,53,216,9,222,61,0,53,216,61,222,61,0,53,216,113,222,60,0,60,0,60,0,183,36,61,0,60,216,81,221,60,0,60,0,60,0,71,29,60,0,60,0,60,0,116,51,47,0,97,0,114,0,60,0,60,0,60,0,46,29,61,0,60,216,49,221,61,0,60,216,113,221,60,0,60,0,60,0,195,51,47,0,113,0,60,0,153,2,60,0,60,0,60,0,1,216,132,223,60,0,128,1,60,0,60,0,60,0,67,2,60,0,47,29,60,0,3,29,60,0,108,29,60,0,151,167,60,0,60,0,60,0,150,167,60,0,128,29,60,0,83,2,60,0,60,0,60,0,129,1,60,0,60,0,60,0,1,216,133,223,60,0,131,1,60,0,60,0,60,0,130,1,60,0,181,167,60,0,60,0,60,0,233,29,60,0,60,0,60,0,180,167,60,0,99,0,60,0,60,0,60,0,67,255,60,0,60,0,60,0,104,3,61,0,125,33,60,0,60,0,60,0,215,29,47,0,39,3,60,0,60,0,60,0,5,33,47,0,39,0,47,0,39,0,111,0,60,0,60,0,60,0,6,33,47,0,39,0,47,0,39,0,117,0,60,0,60,0,60,0,53,216,28,220,61,0,53,216,80,220,61,0,53,216,132,220,61,0,53,216,184,220,61,0,53,216,236,220,61,0,53,216,32,221,61,0,53,216,84,221,61,0,53,216,136,221,61,0,53,216,188,221,61,0,53,216,240,221,61,0,53,216,36,222,61,0,53,216,88,222,61,0,53,216,140,222,60,0,60,0,60,0,210,36,60,0,60,0,60,0,67,0,60,0,60,0,60,0,35,255,60,0,60,0,60,0,109,33,60,0,60,0,60,0,2,33,61,0,45,33,61,0,53,216,2,220,61,0,53,216,54,220,61,0,53,216,106,220,61,0,53,216,158,220,61,0,53,216,210,220,61,0,53,216,110,221,61,0,53,216,162,221,61,0,53,216,214,221,61,0,53,216,10,222,61,0,53,216,62,222,61,0,53,216,114,222,60,0,60,0,60,0,184,36,61,0,60,216,43,221,61,0,60,216,82,221,60,0,60,0,60,0,60,216,45,221,47,0,68,0,60,0,60,0,60,0,156,29,60,0,60,0,60,0,136,51,47,0,97,0,108,0,60,0,60,0,60,0,196,51,47,0,99,0,60,0,60,0,60,0,197,51,47,0,100,0,60,0,60,0,60,0,157,51,47,0,109,0,60,0,60,0,60,0,160,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,164,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,242,167,61,0,60,216,50,221,61,0,60,216,114,221,60,0,60,0,60,0,198,51,47,0,21,34,107,0,103,0,60,0,60,0,60,0,60,216,145,221,47,0,76,0,60,0,60,0,60,0,199,51,47,0,111,0,39,0,46,0,39,0,60,0,60,0,60,0,60,216,146,221,47,0,79,0,79,0,76,0,60,0,4,29,60,0,60,2,60,0,60,0,60,0,59,2,60,0,147,167,60,0,60,0,60,0,146,167,60,0,148,167,60,0,60,0,60,0,196,167,60,0,55,216,29,223,60,0,136,1,60,0,60,0,60,0,135,1,60,0,85,2,60,0,60,0,60,0,157,29,60,0,132,33,60,0,60,0,60,0,131,33,60,0,63,167,60,0,60,0,60,0,62,167,60,0,100,0,60,0,60,0,60,0,17,1,47,0,53,3,60,0,60,0,60,0,68,255,60,0,60,0,60,0,105,3,61,0,126,33,60,0,60,0,60,0,56,2,47,0,98,0,60,0,60,0,60,0,243,1,47,0,122,0,61,0,163,2,47,0,122,0,60,0,60,0,60,0,198,1,47,0,126,1,60,0,60,0,60,0,102,171,47,0,144,2,60,0,60,0,60,0,165,2,47,0,145,2,60,0,60,0,60,0,164,2,47,0,146,2,60,0,60,0,60,0,55,216,18,223,47,0,55,216,24,223,60,0,60,0,60,0,55,216,25,223,47,0,154,29,60,0,60,0,60,0,70,33,61,0,53,216,29,220,61,0,53,216,81,220,61,0,53,216,133,220,61,0,53,216,185,220,61,0,53,216,237,220,61,0,53,216,33,221,61,0,53,216,85,221,61,0,53,216,137,221,61,0,53,216,189,221,61,0,53,216,241,221,61,0,53,216,37,222,61,0,53,216,89,222,61,0,53,216,141,222,60,0,60,0,60,0,211,36,60,0,60,0,60,0,68,0,60,0,60,0,60,0,16,1,47,0,53,3,60,0,60,0,60,0,36,255,60,0,60,0,60,0,110,33,60,0,60,0,60,0,242,1,47,0,122,0,60,0,60,0,60,0,241,1,47,0,90,0,60,0,60,0,60,0,197,1,47,0,126,1,60,0,60,0,60,0,196,1,47,0,125,1,60,0,60,0,60,0,69,33,61,0,53,216,3,220,61,0,53,216,55,220,61,0,53,216,107,220,61,0,53,216,159,220,61,0,53,216,211,220,61,0,53,216,7,221,61,0,53,216,59,221,61,0,53,216,111,221,61,0,53,216,163,221,61,0,53,216,215,221,61,0,53,216,11,222,61,0,53,216,63,222,61,0,53,216,115,222,60,0,60,0,60,0,185,36,61,0,60,216,83,221,60,0,60,0,60,0,72,29,60,0,60,0,60,0,1,216,135,223,47,0,122,0,60,0,60,0,60,0,1,216,136,223,47,0,144,2,60,0,60,0,60,0,1,216,137,223,47,0,145,2,60,0,60,0,60,0,1,216,138,223,47,0,146,2,60,0,60,0,60,0,60,216,165,221,60,0,60,0,60,0,114,51,47,0,97,0,60,0,60,0,60,0,200,51,47,0,66,0,60,0,60,0,60,0,151,51,47,0,108,0,60,0,60,0,60,0,119,51,47,0,109,0,60,0,60,0,60,0,120,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,121,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,48,29,61,0,60,216,51,221,61,0,60,216,115,221,60,0,60,0,60,0,60,216,144,221,47,0,74,0,60,0,60,0,240,0,61,0,217,29,60,0,60,0,60,0,208,0,60,0,60,0,60,0,158,29,60,0,60,0,216,29,61,0,122,167,60,0,60,0,60,0,121,167,60,0,5,29,60,0,6,29,60,0,200,167,60,0,60,0,60,0,199,167,60,0,109,29,60,0,129,29,60,0,86,2,60,0,60,0,60,0,137,1,60,0,60,0,60,0,1,216,139,223,60,0,87,2,60,0,60,0,60,0,138,1,60,0,60,0,60,0,1,216,140,223,60,0,55,216,37,223,60,0,145,29,60,0,60,0,60,0,1,216,141,223,60,0,140,1,60,0,60,0,60,0,139,1,60,0,33,2,60,0,113,167,60,0,159,30,60,0,101,0,60,0,60,0,60,0,69,255,60,0,60,0,60,0,100,3,60,0,60,0,60,0,47,33,61,0,71,33,61,0,53,216,30,220,61,0,53,216,82,220,61,0,53,216,134,220,61,0,53,216,238,220,61,0,53,216,34,221,61,0,53,216,86,221,61,0,53,216,138,221,61,0,53,216,190,221,61,0,53,216,242,221,61,0,53,216,38,222,61,0,53,216,90,222,61,0,53,216,142,222,60,0,60,0,60,0,212,36,60,0,60,0,60,0,69,0,60,0,60,0,60,0,37,255,60,0,60,0,60,0,48,33,61,0,53,216,4,220,61,0,53,216,56,220,61,0,53,216,108,220,61,0,53,216,212,220,61,0,53,216,8,221,61,0,53,216,60,221,61,0,53,216,112,221,61,0,53,216,164,221,61,0,53,216,216,221,61,0,53,216,12,222,61,0,53,216,64,222,61,0,53,216,116,222,60,0,60,0,60,0,186,36,61,0,60,216,84,221,60,0,60,0,60,0,73,29,60,0,60,0,60,0,145,32,60,0,60,0,60,0,205,50,47,0,114,0,103,0,60,0,60,0,60,0,206,50,47,0,86,0,60,0,60,0,60,0,49,29,61,0,60,216,52,221,61,0,60,216,116,221,60,0,7,29,60,0,50,171,60,0,51,171,60,0,71,2,60,0,60,0,60,0,70,2,60,0,146,29,60,0,52,171,60,0,120,44,60,0,221,1,60,0,60,0,60,0,142,1,60,0,60,0,60,0,50,29,60,0,123,44,60,0,89,2,60,0,60,0,60,0,234,29,60,0,60,0,60,0,143,1,60,0,60,0,60,0,74,29,60,0,60,0,60,0,148,32,60,0,149,29,60,0,91,2,60,0,60,0,60,0,144,1,60,0,60,0,60,0,7,33,60,0,60,0,60,0,75,29,60,0,147,29,60,0,88,2,60,0,60,0,60,0,1,216,142,223,60,0,90,2,60,0,92,2,60,0,60,0,60,0,171,167,60,0,60,0,60,0,159,29,60,0,148,29,60,0,8,29,60,0,60,0,60,0,76,29,60,0,93,2,60,0,94,2,60,0,60,0,60,0,1,216,143,223,60,0,154,2,60,0,100,2,60,0,60,0,60,0,1,216,145,223,60,0,102,0,60,0,60,0,60,0,70,255,60,0,60,0,60,0,235,29,60,0,60,0,60,0,0,251,47,0,102,0,60,0,60,0,60,0,3,251,47,0,102,0,105,0,60,0,60,0,60,0,4,251,47,0,102,0,108,0,60,0,60,0,60,0,1,251,47,0,105,0,60,0,60,0,60,0,2,251,47,0,108,0,60,0,60,0,60,0,169,2,47,0,75,1,60,0,60,0,60,0,53,216,31,220,61,0,53,216,83,220,61,0,53,216,135,220,61,0,53,216,187,220,61,0,53,216,239,220,61,0,53,216,35,221,61,0,53,216,87,221,61,0,53,216,139,221,61,0,53,216,191,221,61,0,53,216,243,221,61,0,53,216,39,222,61,0,53,216,91,222,61,0,53,216,143,222,60,0,60,0,60,0,213,36,60,0,60,0,60,0,70,0,60,0,60,0,60,0,38,255,60,0,60,0,60,0,59,33,47,0,65,0,88,0,60,0,60,0,60,0,49,33,61,0,53,216,5,220,61,0,53,216,57,220,61,0,53,216,109,220,61,0,53,216,213,220,61,0,53,216,9,221,61,0,53,216,61,221,61,0,53,216,113,221,61,0,53,216,165,221,61,0,53,216,217,221,61,0,53,216,13,222,61,0,53,216,65,222,61,0,53,216,117,222,60,0,60,0,60,0,187,36,61,0,60,216,85,221,60,0,60,0,60,0,160,29,60,0,60,0,60,0,1,216,144,223,47,0,75,1,60,0,60,0,60,0,153,51,47,0,109,0,60,0,60,0,60,0,243,167,61,0,60,216,53,221,61,0,60,216,117,221,60,0,60,0,60,0,60,216,147,221,47,0,82,0,69,0,69,0,60,0,60,0,124,167,60,0,60,0,60,0,123,167,60,0,60,0,55,216,0,223,47,0,75,1,60,0,48,167,60,0,53,171,60,0,153,167,60,0,60,0,60,0,152,167,60,0,110,29,60,0,130,29,60,0,146,1,60,0,60,0,60,0,145,1,60,0,78,33,60,0,60,0,60,0,50,33,60,0,251,167,60,0,103,0,60,0,60,0,60,0,71,255,60,0,60,0,60,0,218,29,60,0,60,0,60,0,161,167,47,0,47,216,158,220,60,0,60,0,60,0,10,33,61,0,53,216,32,220,61,0,53,216,84,220,61,0,53,216,136,220,61,0,53,216,240,220,61,0,53,216,36,221,61,0,53,216,88,221,61,0,53,216,140,221,61,0,53,216,192,221,61,0,53,216,244,221,61,0,53,216,40,222,61,0,53,216,92,222,61,0,53,216,144,222,60,0,60,0,60,0,214,36,60,0,60,0,60,0,71,0,60,0,60,0,60,0,39,255,60,0,60,0,60,0,160,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,6,220,61,0,53,216,58,220,61,0,53,216,110,220,61,0,53,216,162,220,61,0,53,216,214,220,61,0,53,216,10,221,61,0,53,216,62,221,61,0,53,216,114,221,61,0,53,216,166,221,61,0,53,216,218,221,61,0,53,216,14,222,61,0,53,216,66,222,61,0,53,216,118,222,60,0,60,0,60,0,188,36,61,0,60,216,86,221,60,0,60,0,60,0,77,29,60,0,60,0,60,0,255,51,47,0,97,0,108,0,60,0,60,0,60,0,51,29,61,0,60,216,54,221,61,0,60,216,118,221,60,0,60,0,60,0,135,51,47,0,66,0,60,0,60,0,60,0,147,51,47,0,72,0,122,0,60,0,60,0,60,0,172,51,47,0,80,0,97,0,60,0,60,0,60,0,201,51,47,0,121,0,60,0,60,0,204,26,61,0,121,29,60,0,60,0,60,0,125,167,60,0,209,167,60,0,60,0,60,0,208,167,60,0,97,2,60,0,60,0,60,0,172,167,60,0,60,0,60,0,162,29,60,0,55,216,1,223,60,0,54,171,60,0,98,2,60,0,60,0,60,0,219,29,60,0,60,0,60,0,1,216,146,223,60,0,229,1,60,0,60,0,60,0,228,1,60,0,131,29,60,0,96,2,60,0,60,0,60,0,147,1,60,0,60,0,60,0,1,216,147,223,60,0,155,2,60,0,60,0,60,0,1,216,148,223,60,0,119,29,60,0,55,216,2,223,60,0,127,167,60,0,60,0,60,0,126,167,60,0,99,2,60,0,60,0,60,0,148,1,60,0,60,0,60,0,224,2,60,0,163,1,60,0,60,0,60,0,162,1,60,0,104,0,60,0,60,0,60,0,39,1,47,0,53,3,61,0,15,33,47,0,53,3,60,0,60,0,60,0,72,255,60,0,60,0,60,0,106,3,60,0,60,0,60,0,14,33,61,0,53,216,33,220,61,0,53,216,137,220,61,0,53,216,189,220,61,0,53,216,241,220,61,0,53,216,37,221,61,0,53,216,89,221,61,0,53,216,141,221,61,0,53,216,193,221,61,0,53,216,245,221,61,0,53,216,41,222,61,0,53,216,93,222,61,0,53,216,145,222,60,0,60,0,60,0,215,36,60,0,60,0,60,0,72,0,60,0,60,0,60,0,38,1,47,0,53,3,60,0,60,0,60,0,40,255,60,0,60,0,60,0,11,33,61,0,12,33,61,0,13,33,61,0,53,216,7,220,61,0,53,216,59,220,61,0,53,216,111,220,61,0,53,216,215,220,61,0,53,216,115,221,61,0,53,216,167,221,61,0,53,216,219,221,61,0,53,216,15,222,61,0,53,216,67,222,61,0,53,216,119,222,60,0,60,0,60,0,189,36,61,0,60,216,87,221,60,0,60,0,60,0,176,2,60,0,60,0,60,0,248,167,47,0,53,3,61,0,1,216,149,223,47,0,53,3,60,0,60,0,60,0,149,32,60,0,60,0,60,0,202,51,47,0,97,0,60,0,60,0,60,0,113,51,47,0,80,0,97,0,60,0,60,0,60,0,52,29,61,0,60,216,55,221,61,0,60,216,119,221,60,0,60,0,60,0,60,216,166,221,47,0,99,0,60,0,60,0,60,0,60,216,167,221,47,0,100,0,82,0,60,0,60,0,60,0,204,50,47,0,103,0,60,0,60,0,60,0,60,216,168,221,47,0,105,0,39,0,32,0,39,0,82,0,101,0,115,0,60,0,60,0,60,0,203,51,47,0,80,0,60,0,60,0,60,0,60,216,74,221,47,0,86,0,60,0,60,0,60,0,144,51,47,0,122,0,60,0,156,2,60,0,60,0,60,0,1,216,150,223,60,0,149,1,60,0,60,0,60,0,246,1,60,0,149,167,60,0,102,2,60,0,60,0,60,0,170,167,60,0,60,0,60,0,177,2,60,0,104,44,60,0,60,0,60,0,103,44,60,0,118,44,60,0,60,0,60,0,117,44,60,0,246,167,60,0,60,0,60,0,245,167,60,0,39,167,60,0,60,0,60,0,38,167,60,0,60,0,60,0,92,171,60,0,103,2,60,0,60,0,60,0,1,216,151,223,60,0,187,2,60,0,189,2,60,0,105,0,60,0,60,0,60,0,73,255,60,0,60,0,60,0,101,3,61,0,112,33,60,0,60,0,60,0,113,33,47,0,105,0,60,0,60,0,60,0,114,33,47,0,105,0,105,0,60,0,60,0,60,0,51,1,47,0,106,0,60,0,60,0,60,0,115,33,47,0,118,0,60,0,60,0,60,0,120,33,47,0,120,0,60,0,60,0,60,0,57,33,61,0,72,33,61,0,53,216,34,220,61,0,53,216,86,220,61,0,53,216,138,220,61,0,53,216,190,220,61,0,53,216,242,220,61,0,53,216,38,221,61,0,53,216,90,221,61,0,53,216,142,221,61,0,53,216,194,221,61,0,53,216,246,221,61,0,53,216,42,222,61,0,53,216,94,222,61,0,53,216,146,222,60,0,60,0,60,0,216,36,60,0,60,0,60,0,73,0,60,0,60,0,60,0,41,255,60,0,60,0,60,0,96,33,60,0,60,0,60,0,97,33,47,0,73,0,60,0,60,0,60,0,98,33,47,0,73,0,73,0,60,0,60,0,60,0,50,1,47,0,74,0,60,0,60,0,60,0,99,33,47,0,86,0,60,0,60,0,60,0,104,33,47,0,88,0,60,0,60,0,60,0,16,33,61,0,17,33,61,0,53,216,8,220,61,0,53,216,60,220,61,0,53,216,112,220,61,0,53,216,216,220,61,0,53,216,64,221,61,0,53,216,116,221,61,0,53,216,168,221,61,0,53,216,220,221,61,0,53,216,16,222,61,0,53,216,68,222,61,0,53,216,120,222,60,0,60,0,60,0,190,36,61,0,60,216,88,221,60,0,60,0,60,0,113,32,60,0,60,0,60,0,98,29,60,0,60,0,60,0,204,51,47,0,110,0,60,0,60,0,60,0,53,29,61,0,60,216,56,221,61,0,60,216,120,221,60,0,60,0,60,0,60,216,139,221,47,0,67,0,60,0,60,0,60,0,60,216,148,221,47,0,68,0,60,0,60,0,60,0,122,51,47,0,85,0,60,0,49,1,60,0,60,0,60,0,53,216,164,222,60,0,106,2,60,0,60,0,60,0,174,167,60,0,60,0,60,0,166,29,60,0,254,167,60,0,247,167,60,0,9,29,60,0,60,0,60,0,78,29,60,0,104,2,60,0,60,0,60,0,151,1,60,0,60,0,60,0,164,29,60,0,123,29,60,0,60,0,60,0,167,29,60,0,55,216,26,223,60,0,150,29,60,0,189,167,60,0,60,0,60,0,188,167,60,0,105,2,60,0,60,0,60,0,150,1,60,0,60,0,60,0,165,29,60,0,124,29,60,0,106,0,60,0,60,0,60,0,74,255,60,0,60,0,60,0,73,33,61,0,53,216,35,220,61,0,53,216,87,220,61,0,53,216,139,220,61,0,53,216,191,220,61,0,53,216,243,220,61,0,53,216,39,221,61,0,53,216,91,221,61,0,53,216,143,221,61,0,53,216,195,221,61,0,53,216,247,221,61,0,53,216,43,222,61,0,53,216,95,222,61,0,53,216,147,222,60,0,60,0,60,0,217,36,60,0,60,0,60,0,74,0,60,0,60,0,60,0,42,255,60,0,60,0,60,0,53,216,9,220,61,0,53,216,61,220,61,0,53,216,113,220,61,0,53,216,165,220,61,0,53,216,217,220,61,0,53,216,13,221,61,0,53,216,65,221,61,0,53,216,117,221,61,0,53,216,169,221,61,0,53,216,221,221,61,0,53,216,17,222,61,0,53,216,69,222,61,0,53,216,121,222,60,0,60,0,60,0,191,36,61,0,60,216,89,221,60,0,60,0,60,0,178,2,60,0,60,0,60,0,124,44,60,0,60,0,60,0,54,29,61,0,60,216,57,221,61,0,60,216,121,221,60,0,55,2,60,0,60,0,60,0,53,216,165,222,60,0,10,29,60,0,73,2,60,0,60,0,60,0,72,2,60,0,157,2,60,0,60,0,60,0,178,167,60,0,60,0,60,0,168,29,60,0,95,2,60,0,60,0,60,0,161,29,60,0,132,2,60,0,60,0,60,0,1,216,152,223,60,0,107,0,60,0,60,0,60,0,75,255,60,0,60,0,60,0,220,29,60,0,60,0,60,0,163,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,36,220,61,0,53,216,88,220,61,0,53,216,140,220,61,0,53,216,192,220,61,0,53,216,244,220,61,0,53,216,40,221,61,0,53,216,92,221,61,0,53,216,144,221,61,0,53,216,196,221,61,0,53,216,248,221,61,0,53,216,44,222,61,0,53,216,96,222,61,0,53,216,148,222,60,0,60,0,60,0,218,36,60,0,60,0,60,0,75,0,60,0,60,0,60,0,43,255,60,0,60,0,60,0,162,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,10,220,61,0,53,216,62,220,61,0,53,216,114,220,61,0,53,216,166,220,61,0,53,216,218,220,61,0,53,216,14,221,61,0,53,216,66,221,61,0,53,216,118,221,61,0,53,216,170,221,61,0,53,216,222,221,61,0,53,216,18,222,61,0,53,216,70,222,61,0,53,216,122,222,60,0,60,0,60,0,192,36,61,0,60,216,90,221,60,0,60,0,60,0,79,29,60,0,60,0,60,0,150,32,60,0,60,0,60,0,132,51,47,0,65,0,60,0,60,0,60,0,137,51,47,0,99,0,97,0,108,0,60,0,60,0,60,0,143,51,47,0,103,0,60,0,60,0,60,0,145,51,47,0,72,0,122,0,60,0,60,0,60,0,152,51,47,0,108,0,60,0,60,0,60,0,158,51,47,0,109,0,60,0,60,0,60,0,162,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,166,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,170,51,47,0,80,0,97,0,60,0,60,0,60,0,207,51,47,0,116,0,60,0,60,0,60,0,184,51,47,0,86,0,60,0,60,0,60,0,190,51,47,0,87,0,60,0,60,0,60,0,192,51,47,0,169,3,60,0,60,0,60,0,55,29,61,0,60,216,58,221,61,0,60,216,122,221,60,0,60,0,60,0,133,51,47,0,66,0,60,0,60,0,60,0,205,51,47,0,75,0,60,0,60,0,60,0,206,51,47,0,77,0,60,0,11,29,60,0,132,29,60,0,153,1,60,0,60,0,60,0,152,1,60,0,106,44,60,0,60,0,60,0,105,44,60,0,65,167,60,0,60,0,60,0,64,167,60,0,67,167,60,0,60,0,60,0,66,167,60,0,69,167,60,0,60,0,60,0,68,167,60,0,55,216,3,223,60,0,158,2,60,0,60,0,60,0,176,167,60,0,55,216,16,223,60,0,108,0,60,0,60,0,60,0,66,1,47,0,53,3,60,0,60,0,60,0,76,255,60,0,60,0,60,0,221,29,61,0,124,33,60,0,60,0,60,0,201,1,47,0,106,0,60,0,60,0,60,0,251,30,47,0,108,0,60,0,60,0,60,0,170,2,47,0,115,0,60,0,60,0,60,0,171,2,47,0,122,0,60,0,60,0,60,0,19,33,61,0,53,216,37,220,61,0,53,216,89,220,61,0,53,216,141,220,61,0,53,216,193,220,61,0,53,216,245,220,61,0,53,216,41,221,61,0,53,216,93,221,61,0,53,216,145,221,61,0,53,216,197,221,61,0,53,216,249,221,61,0,53,216,45,222,61,0,53,216,97,222,61,0,53,216,149,222,60,0,60,0,60,0,219,36,60,0,60,0,60,0,76,0,60,0,60,0,60,0,65,1,47,0,53,3,60,0,60,0,60,0,44,255,60,0,60,0,60,0,108,33,60,0,60,0,60,0,200,1,47,0,106,0,60,0,60,0,60,0,199,1,47,0,74,0,60,0,60,0,60,0,250,30,47,0,76,0,60,0,60,0,60,0,18,33,61,0,53,216,11,220,61,0,53,216,63,220,61,0,53,216,115,220,61,0,53,216,219,220,61,0,53,216,15,221,61,0,53,216,67,221,61,0,53,216,119,221,61,0,53,216,171,221,61,0,53,216,223,221,61,0,53,216,19,222,61,0,53,216,71,222,61,0,53,216,123,222,60,0,60,0,60,0,193,36,61,0,60,216,91,221,60,0,60,0,60,0,225,2,60,0,60,0,60,0,1,216,153,223,47,0,115,0,60,0,60,0,60,0,1,216,154,223,47,0,122,0,60,0,60,0,60,0,151,32,60,0,60,0,60,0,208,51,47,0,109,0,60,0,60,0,60,0,209,51,47,0,110,0,60,0,60,0,60,0,210,51,47,0,111,0,103,0,60,0,60,0,60,0,211,51,47,0,120,0,60,0,60,0,60,0,56,29,61,0,60,216,59,221,61,0,60,216,123,221,60,0,60,0,60,0,60,216,169,221,47,0,111,0,115,0,115,0,108,0,101,0,115,0,115,0,60,0,60,0,60,0,207,50,47,0,84,0,68,0,60,0,60,0,108,0,183,0,61,0,108,0,183,0,61,0,64,1,60,0,60,0,60,0,76,0,183,0,61,0,76,0,183,0,61,0,63,1,60,0,159,2,60,0,60,0,60,0,222,29,60,0,60,0,60,0,171,29,60,0,71,167,60,0,60,0,60,0,70,167,60,0,12,29,60,0,73,167,60,0,60,0,60,0,72,167,60,0,154,1,60,0,60,0,60,0,61,2,60,0,97,44,60,0,60,0,60,0,96,44,60,0,107,2,60,0,60,0,60,0,98,44,60,0,60,0,60,0,94,171,60,0,56,171,60,0,60,0,60,0,236,29,60,0,57,171,60,0,108,2,60,0,60,0,60,0,173,167,60,0,60,0,60,0,1,216,155,223,60,0,55,216,4,223,60,0,60,0,60,0,1,216,156,223,60,0,55,216,19,223,60,0,55,171,60,0,60,0,60,0,93,171,60,0,133,29,60,0,60,0,60,0,170,29,60,0,109,2,60,0,60,0,60,0,169,29,60,0,55,216,38,223,60,0,142,167,60,0,60,0,60,0,1,216,157,223,60,0,55,216,17,223,60,0,52,2,60,0,114,167,60,0,110,2,60,0,60,0,60,0,1,216,158,223,60,0,55,216,5,223,60,0,60,0,60,0,1,216,159,223,60,0,129,167,60,0,60,0,60,0,128,167,60,0,155,1,60,0,142,2,60,0,60,0,60,0,1,216,160,223,60,0,55,216,6,223,60,0,60,0,60,0,1,216,161,223,60,0,109,0,60,0,60,0,60,0,77,255,60,0,60,0,60,0,107,3,61,0,127,33,60,0,60,0,60,0,53,216,38,220,61,0,53,216,90,220,61,0,53,216,142,220,61,0,53,216,194,220,61,0,53,216,246,220,61,0,53,216,42,221,61,0,53,216,94,221,61,0,53,216,146,221,61,0,53,216,198,221,61,0,53,216,250,221,61,0,53,216,46,222,61,0,53,216,98,222,61,0,53,216,150,222,60,0,60,0,60,0,220,36,60,0,60,0,60,0,77,0,60,0,60,0,60,0,45,255,60,0,60,0,60,0,111,33,60,0,60,0,60,0,51,33,61,0,53,216,12,220,61,0,53,216,64,220,61,0,53,216,116,220,61,0,53,216,220,220,61,0,53,216,16,221,61,0,53,216,68,221,61,0,53,216,120,221,61,0,53,216,172,221,61,0,53,216,224,221,61,0,53,216,20,222,61,0,53,216,72,222,61,0,53,216,124,222,60,0,60,0,60,0,194,36,61,0,60,216,92,221,60,0,60,0,60,0,80,29,60,0,60,0,60,0,60,216,106,221,47,0,99,0,60,0,60,0,60,0,60,216,107,221,47,0,100,0,60,0,60,0,60,0,60,216,108,221,47,0,114,0,60,0,60,0,60,0,152,32,60,0,60,0,60,0,167,51,47,0,21,34,115,0,60,0,60,0,60,0,168,51,47,0,14,32,21,34,115,0,59,216,2,221,14,32,60,0,60,0,60,0,161,51,47,0,14,32,59,216,2,221,14,32,60,0,60,0,60,0,165,51,47,0,14,32,59,216,3,221,14,32,60,0,60,0,60,0,131,51,47,0,65,0,60,0,60,0,60,0,212,51,47,0,98,0,60,0,60,0,60,0,142,51,47,0,103,0,60,0,60,0,60,0,213,51,47,0,105,0,108,0,60,0,60,0,60,0,150,51,47,0,108,0,60,0,60,0,60,0,156,51,47,0,109,0,60,0,60,0,60,0,159,51,47,0,14,32,109,0,59,216,2,221,14,32,60,0,60,0,60,0,163,51,47,0,14,32,109,0,59,216,3,221,14,32,60,0,60,0,60,0,214,51,47,0,111,0,108,0,60,0,60,0,60,0,179,51,47,0,115,0,60,0,60,0,60,0,183,51,47,0,86,0,60,0,60,0,60,0,189,51,47,0,87,0,60,0,60,0,60,0,57,29,61,0,60,216,60,221,61,0,60,216,124,221,60,0,60,0,60,0,134,51,47,0,66,0,60,0,60,0,60,0,146,51,47,0,72,0,122,0,60,0,60,0,60,0,171,51,47,0,80,0,97,0,60,0,60,0,60,0,185,51,47,0,86,0,61,0,60,216,75,221,47,0,86,0,60,0,60,0,60,0,191,51,47,0,87,0,60,0,60,0,60,0,193,51,47,0,169,3,60,0,13,29,60,0,60,0,60,0,223,29,60,0,111,29,60,0,134,29,60,0,113,2,60,0,60,0,60,0,110,44,60,0,60,0,60,0,172,29,60,0,58,171,60,0,253,167,60,0,255,167,60,0,115,167,60,0,110,0,60,0,60,0,60,0,78,255,60,0,60,0,60,0,224,29,60,0,60,0,60,0,165,167,47,0,47,216,158,220,60,0,60,0,60,0,204,1,47,0,106,0,60,0,60,0,60,0,53,216,39,220,61,0,53,216,91,220,61,0,53,216,143,220,61,0,53,216,195,220,61,0,53,216,247,220,61,0,53,216,43,221,61,0,53,216,95,221,61,0,53,216,147,221,61,0,53,216,199,221,61,0,53,216,251,221,61,0,53,216,47,222,61,0,53,216,99,222,61,0,53,216,151,222,60,0,60,0,60,0,221,36,60,0,60,0,60,0,78,0,60,0,60,0,60,0,46,255,60,0,60,0,60,0,164,167,47,0,47,216,158,220,60,0,60,0,60,0,203,1,47,0,106,0,60,0,60,0,60,0,202,1,47,0,74,0,60,0,60,0,60,0,22,33,47,0,111,0,60,0,60,0,60,0,21,33,61,0,53,216,13,220,61,0,53,216,65,220,61,0,53,216,117,220,61,0,53,216,169,220,61,0,53,216,221,220,61,0,53,216,17,221,61,0,53,216,121,221,61,0,53,216,173,221,61,0,53,216,225,221,61,0,53,216,21,222,61,0,53,216,73,222,61,0,53,216,125,222,60,0,60,0,60,0,195,36,61,0,60,216,93,221,60,0,60,0,60,0,127,32,60,0,60,0,60,0,153,32,60,0,60,0,60,0,129,51,47,0,65,0,60,0,60,0,60,0,139,51,47,0,70,0,60,0,60,0,60,0,154,51,47,0,109,0,60,0,60,0,60,0,177,51,47,0,115,0,60,0,60,0,60,0,181,51,47,0,86,0,60,0,60,0,60,0,187,51,47,0,87,0,60,0,60,0,60,0,58,29,61,0,60,216,61,221,61,0,60,216,125,221,60,0,60,0,60,0,60,216,149,221,47,0,69,0,87,0,60,0,60,0,60,0,60,216,150,221,47,0,71,0,60,0,116,2,60,0,60,0,60,0,225,29,60,0,60,0,60,0,176,29,60,0,59,29,60,0,14,29,60,0,112,29,60,0,114,2,60,0,60,0,60,0,157,1,60,0,60,0,60,0,174,29,60,0,158,1,60,0,60,0,60,0,32,2,60,0,145,167,60,0,60,0,60,0,144,167,60,0,135,29,60,0,115,2,60,0,60,0,60,0,175,29,60,0,55,216,39,223,60,0,53,2,60,0,59,171,60,0,116,167,60,0,75,1,60,0,60,0,60,0,74,1,60,0,60,0,60,0,81,29,60,0,60,171,60,0,55,216,20,223,60,0,55,216,7,223,60,0,111,0,60,0,60,0,60,0,248,0,47,0,56,3,60,0,60,0,60,0,79,255,60,0,60,0,60,0,102,3,60,0,60,0,60,0,243,29,47,0,8,3,61,0,157,167,47,0,8,3,60,0,60,0,60,0,237,29,47,0,3,216,133,223,60,0,60,0,60,0,79,167,47,0,111,0,60,0,60,0,60,0,52,33,61,0,53,216,40,220,61,0,53,216,92,220,61,0,53,216,144,220,61,0,53,216,248,220,61,0,53,216,44,221,61,0,53,216,96,221,61,0,53,216,148,221,61,0,53,216,200,221,61,0,53,216,252,221,61,0,53,216,48,222,61,0,53,216,100,222,61,0,53,216,152,222,60,0,60,0,60,0,222,36,60,0,60,0,60,0,79,0,60,0,60,0,60,0,216,0,47,0,56,3,60,0,60,0,60,0,47,255,60,0,60,0,60,0,156,167,47,0,8,3,60,0,60,0,60,0,78,167,47,0,79,0,60,0,60,0,60,0,53,216,14,220,61,0,53,216,66,220,61,0,53,216,118,220,61,0,53,216,170,220,61,0,53,216,222,220,61,0,53,216,18,221,61,0,53,216,70,221,61,0,53,216,122,221,61,0,53,216,174,221,61,0,53,216,226,221,61,0,53,216,22,222,61,0,53,216,74,222,61,0,53,216,126,222,60,0,60,0,60,0,196,36,61,0,60,216,94,221,60,0,60,0,60,0,186,0,61,0,82,29,60,0,60,0,60,0,1,216,162,223,47,0,56,3,60,0,60,0,60,0,146,32,60,0,60,0,60,0,117,51,47,0,86,0,60,0,60,0,60,0,60,29,61,0,60,216,62,221,61,0,60,216,126,221,60,0,60,0,60,0,60,216,151,221,47,0,75,0,60,0,60,0,83,1,47,0,101,0,60,0,60,0,60,0,82,1,47,0,69,0,60,0,60,0,60,0,249,167,47,0,101,0,60,0,15,29,60,0,17,29,60,0,61,171,60,0,118,2,60,0,60,0,60,0,1,216,163,223,60,0,20,29,60,0,65,171,60,0,66,171,60,0,64,171,60,0,67,171,60,0,68,171,60,0,19,29,60,0,62,171,60,0,55,216,27,223,60,0,84,2,60,0,60,0,60,0,134,1,60,0,60,0,60,0,83,29,60,0,16,29,60,0,18,29,60,0,63,171,60,0,151,29,60,0,98,171,60,0,77,167,60,0,60,0,60,0,76,167,60,0,22,29,60,0,60,0,60,0,84,29,60,0,23,29,60,0,60,0,60,0,85,29,60,0,122,44,60,0,117,2,60,0,60,0,60,0,159,1,60,0,60,0,60,0,177,29,60,0,75,167,60,0,60,0,60,0,74,167,60,0,119,2,60,0,60,0,60,0,1,216,164,223,60,0,183,167,60,0,60,0,60,0,182,167,60,0,35,2,60,0,60,0,60,0,34,2,60,0,60,0,60,0,61,29,60,0,21,29,60,0,112,0,60,0,60,0,60,0,80,255,60,0,60,0,60,0,238,29,60,0,60,0,60,0,53,216,41,220,61,0,53,216,93,220,61,0,53,216,145,220,61,0,53,216,197,220,61,0,53,216,249,220,61,0,53,216,45,221,61,0,53,216,97,221,61,0,53,216,149,221,61,0,53,216,201,221,61,0,53,216,253,221,61,0,53,216,49,222,61,0,53,216,101,222,61,0,53,216,153,222,60,0,60,0,60,0,223,36,60,0,60,0,60,0,80,0,60,0,60,0,60,0,48,255,60,0,60,0,60,0,25,33,61,0,53,216,15,220,61,0,53,216,67,220,61,0,53,216,119,220,61,0,53,216,171,220,61,0,53,216,223,220,61,0,53,216,19,221,61,0,53,216,123,221,61,0,53,216,175,221,61,0,53,216,227,221,61,0,53,216,23,222,61,0,53,216,75,222,61,0,53,216,127,222,60,0,60,0,60,0,197,36,61,0,60,216,95,221,60,0,60,0,60,0,86,29,60,0,60,0,60,0,154,32,60,0,60,0,60,0,216,51,47,0,39,0,46,0,39,0,109,0,39,0,46,0,39,0,60,0,60,0,60,0,128,51,47,0,65,0,60,0,60,0,60,0,118,51,47,0,99,0,60,0,60,0,60,0,138,51,47,0,70,0,60,0,60,0,60,0,176,51,47,0,115,0,60,0,60,0,60,0,180,51,47,0,86,0,60,0,60,0,60,0,186,51,47,0,87,0,60,0,60,0,60,0,62,29,61,0,60,216,63,221,61,0,60,216,127,221,61,0,60,216,138,221,60,0,60,0,60,0,169,51,47,0,97,0,60,0,60,0,60,0,60,216,140,221,47,0,65,0,60,0,60,0,60,0,215,51,47,0,72,0,60,0,60,0,60,0,217,51,47,0,80,0,77,0,60,0,60,0,60,0,60,216,78,221,47,0,80,0,86,0,60,0,60,0,60,0,218,51,47,0,82,0,60,0,60,0,60,0,80,50,47,0,84,0,69,0,60,0,24,29,60,0,125,29,60,0,60,0,60,0,99,44,60,0,81,167,60,0,60,0,60,0,80,167,60,0,113,29,60,0,136,29,60,0,165,1,60,0,60,0,60,0,164,1,60,0,83,167,60,0,60,0,60,0,82,167,60,0,85,167,60,0,60,0,60,0,84,167,60,0,252,167,60,0,120,2,60,0,60,0,60,0,178,29,60,0,119,44,60,0,113,0,60,0,60,0,60,0,81,255,60,0,60,0,60,0,57,2,47,0,112,0,60,0,60,0,60,0,53,216,42,220,61,0,53,216,94,220,61,0,53,216,146,220,61,0,53,216,198,220,61,0,53,216,250,220,61,0,53,216,46,221,61,0,53,216,98,221,61,0,53,216,150,221,61,0,53,216,202,221,61,0,53,216,254,221,61,0,53,216,50,222,61,0,53,216,102,222,61,0,53,216,154,222,60,0,60,0,60,0,224,36,60,0,60,0,60,0,81,0,60,0,60,0,60,0,49,255,60,0,60,0,60,0,26,33,61,0,53,216,16,220,61,0,53,216,68,220,61,0,53,216,120,220,61,0,53,216,172,220,61,0,53,216,224,220,61,0,53,216,20,221,61,0,53,216,124,221,61,0,53,216,176,221,61,0,53,216,228,221,61,0,53,216,24,222,61,0,53,216,76,222,61,0,53,216,128,222,60,0,60,0,60,0,198,36,61,0,60,216,96,221,60,0,60,0,60,0,1,216,165,223,60,0,60,0,60,0,244,167,61,0,60,216,64,221,61,0,60,216,128,221,60,0,175,167,60,0,87,167,60,0,60,0,60,0,86,167,60,0,89,167,60,0,60,0,60,0,88,167,60,0,160,2,60,0,75,2,60,0,60,0,60,0,74,2,60,0,56,1,60,0,114,0,60,0,60,0,60,0,82,255,60,0,60,0,60,0,108,3,61,0,202,29,60,0,60,0,60,0,167,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,43,220,61,0,53,216,95,220,61,0,53,216,147,220,61,0,53,216,199,220,61,0,53,216,251,220,61,0,53,216,47,221,61,0,53,216,99,221,61,0,53,216,151,221,61,0,53,216,203,221,61,0,53,216,255,221,61,0,53,216,51,222,61,0,53,216,103,222,61,0,53,216,155,222,60,0,60,0,60,0,225,36,60,0,60,0,60,0,82,0,60,0,60,0,60,0,50,255,60,0,60,0,60,0,166,167,47,0,47,216,158,220,60,0,60,0,60,0,27,33,61,0,28,33,61,0,29,33,61,0,53,216,17,220,61,0,53,216,69,220,61,0,53,216,121,220,61,0,53,216,225,220,61,0,53,216,125,221,61,0,53,216,177,221,61,0,53,216,229,221,61,0,53,216,25,222,61,0,53,216,77,222,61,0,53,216,129,222,60,0,60,0,60,0,199,36,61,0,60,216,44,221,61,0,60,216,97,221,60,0,60,0,60,0,179,2,60,0,60,0,60,0,99,29,60,0,60,0,60,0,173,51,47,0,97,0,100,0,60,0,60,0,60,0,174,51,47,0,97,0,100,0,21,34,115,0,60,0,60,0,60,0,175,51,47,0,14,32,97,0,100,0,21,34,115,0,59,216,2,221,14,32,60,0,60,0,60,0,63,29,61,0,60,216,65,221,61,0,60,216,129,221,60,0,60,0,205,26,61,0,131,167,60,0,60,0,60,0,130,167,60,0,60,0,227,29,61,0,91,167,60,0,60,0,60,0,90,167,60,0,69,171,60,0,128,2,60,0,60,0,60,0,226,29,60,0,60,0,60,0,166,1,60,0,60,0,60,0,1,216,170,223,60,0,70,171,60,0,25,29,60,0,77,2,60,0,60,0,60,0,76,2,60,0,114,29,60,0,121,2,60,0,60,0,60,0,180,2,60,0,26,29,60,0,122,2,60,0,60,0,60,0,1,216,166,223,60,0,55,216,8,223,60,0,60,0,60,0,1,216,167,223,60,0,123,2,60,0,60,0,60,0,181,2,60,0,121,44,60,0,137,29,60,0,124,2,60,0,125,2,60,0,60,0,60,0,100,44,60,0,60,0,60,0,1,216,168,223,60,0,55,216,40,223,60,0,73,171,60,0,126,2,60,0,60,0,60,0,1,216,169,223,60,0,115,29,60,0,55,216,22,223,60,0,127,2,60,0,71,171,60,0,72,171,60,0,74,171,60,0,75,171,60,0,76,171,60,0,129,2,60,0,60,0,60,0,182,2,60,0,104,171,60,0,55,216,21,223,60,0,117,167,60,0,118,167,60,0,93,167,60,0,60,0,60,0,92,167,60,0,115,0,60,0,60,0,60,0,83,255,60,0,60,0,60,0,228,29,60,0,60,0,60,0,169,167,47,0,47,216,158,220,60,0,60,0,60,0,6,251,47,0,116,0,60,0,60,0,60,0,53,216,44,220,61,0,53,216,96,220,61,0,53,216,148,220,61,0,53,216,200,220,61,0,53,216,252,220,61,0,53,216,48,221,61,0,53,216,100,221,61,0,53,216,152,221,61,0,53,216,204,221,61,0,53,216,0,222,61,0,53,216,52,222,61,0,53,216,104,222,61,0,53,216,156,222,60,0,60,0,60,0,226,36,60,0,60,0,60,0,83,0,60,0,60,0,60,0,51,255,60,0,60,0,60,0,168,167,47,0,47,216,158,220,60,0,60,0,60,0,53,216,18,220,61,0,53,216,70,220,61,0,53,216,122,220,61,0,53,216,174,220,61,0,53,216,226,220,61,0,53,216,22,221,61,0,53,216,74,221,61,0,53,216,126,221,61,0,53,216,178,221,61,0,53,216,230,221,61,0,53,216,26,222,61,0,53,216,78,222,61,0,53,216,130,222,60,0,60,0,60,0,200,36,61,0,60,216,98,221,60,0,60,0,60,0,226,2,60,0,60,0,60,0,32,33,47,0,109,0,60,0,60,0,60,0,155,32,60,0,60,0,60,0,219,51,47,0,114,0,60,0,60,0,60,0,60,216,66,221,61,0,60,216,130,221,60,0,60,0,60,0,60,216,141,221,47,0,65,0,60,0,60,0,60,0,60,216,76,221,47,0,68,0,60,0,60,0,60,0,60,216,170,221,47,0,72,0,86,0,60,0,60,0,60,0,60,216,152,221,47,0,79,0,83,0,60,0,60,0,60,0,60,216,77,221,47,0,83,0,60,0,60,0,60,0,220,51,47,0,118,0,60,0,60,0,223,0,47,0,115,0,60,0,60,0,60,0,158,30,47,0,83,0,60,0,60,0,127,1,61,0,229,29,60,0,60,0,60,0,5,251,47,0,116,0,60,0,60,0,133,167,60,0,60,0,60,0,132,167,60,0,60,0,217,167,60,0,60,0,60,0,216,167,60,0,49,167,60,0,202,167,60,0,60,0,60,0,201,167,60,0,116,29,60,0,138,29,60,0,130,2,60,0,60,0,60,0,197,167,60,0,60,0,60,0,179,29,60,0,55,216,41,223,60,0,55,216,30,223,60,0,60,0,60,0,1,216,186,223,60,0,63,2,60,0,60,0,60,0,126,44,60,0,215,167,60,0,60,0,60,0,214,167,60,0,156,30,60,0,157,30,60,0,131,2,60,0,60,0,60,0,239,29,60,0,60,0,60,0,169,1,60,0,60,0,60,0,180,29,60,0,77,171,60,0,139,29,60,0,152,29,60,0,170,1,60,0,133,2,60,0,134,2,60,0,55,216,11,223,60,0,55,216,12,223,60,0,116,0,60,0,60,0,60,0,84,255,60,0,60,0,60,0,109,3,60,0,60,0,60,0,168,2,47,0,85,2,60,0,60,0,60,0,190,1,47,0,115,0,61,0,166,2,47,0,115,0,60,0,60,0,60,0,103,171,47,0,130,2,60,0,60,0,60,0,167,2,47,0,131,2,60,0,60,0,60,0,55,216,23,223,47,0,139,29,60,0,60,0,60,0,55,216,28,223,47,0,152,29,60,0,60,0,60,0,41,167,47,0,122,0,60,0,60,0,60,0,53,216,45,220,61,0,53,216,97,220,61,0,53,216,149,220,61,0,53,216,201,220,61,0,53,216,253,220,61,0,53,216,49,221,61,0,53,216,101,221,61,0,53,216,153,221,61,0,53,216,205,221,61,0,53,216,1,222,61,0,53,216,53,222,61,0,53,216,105,222,61,0,53,216,157,222,60,0,60,0,60,0,227,36,60,0,60,0,60,0,84,0,60,0,60,0,60,0,52,255,60,0,60,0,60,0,33,33,47,0,69,0,76,0,60,0,60,0,60,0,40,167,47,0,122,0,60,0,60,0,60,0,53,216,19,220,61,0,53,216,71,220,61,0,53,216,123,220,61,0,53,216,175,220,61,0,53,216,227,220,61,0,53,216,23,221,61,0,53,216,75,221,61,0,53,216,127,221,61,0,53,216,179,221,61,0,53,216,231,221,61,0,53,216,27,222,61,0,53,216,79,222,61,0,53,216,131,222,60,0,60,0,60,0,201,36,61,0,60,216,99,221,60,0,60,0,60,0,87,29,60,0,60,0,60,0,1,216,171,223,47,0,85,2,60,0,60,0,60,0,34,33,47,0,109,0,60,0,60,0,60,0,1,216,172,223,47,0,115,0,60,0,60,0,60,0,1,216,173,223,47,0,130,2,60,0,60,0,60,0,1,216,174,223,47,0,131,2,60,0,60,0,60,0,156,32,60,0,60,0,60,0,64,29,61,0,60,216,67,221,61,0,60,216,131,221,60,0,60,0,60,0,148,51,47,0,72,0,122,0,60,0,60,0,122,29,47,0,104,0,60,0,60,0,206,26,61,0,135,167,60,0,60,0,60,0,134,167,60,0,27,29,60,0,103,1,60,0,60,0,60,0,102,1,60,0,102,44,60,0,60,0,60,0,62,2,60,0,117,29,60,0,171,1,60,0,60,0,60,0,181,29,60,0,173,1,60,0,60,0,60,0,172,1,60,0,136,2,60,0,60,0,60,0,174,1,60,0,60,0,60,0,1,216,175,223,60,0,55,216,42,223,60,0,55,216,9,223,60,0,54,2,60,0,119,167,60,0,135,2,60,0,60,0,60,0,177,167,60,0,55,216,13,223,60,0,117,0,60,0,60,0,60,0,85,255,60,0,60,0,60,0,103,3,60,0,60,0,60,0,244,29,47,0,8,3,61,0,159,167,47,0,8,3,60,0,60,0,60,0,240,29,47,0,3,216,133,223,60,0,60,0,60,0,53,216,46,220,61,0,53,216,98,220,61,0,53,216,150,220,61,0,53,216,202,220,61,0,53,216,254,220,61,0,53,216,50,221,61,0,53,216,102,221,61,0,53,216,154,221,61,0,53,216,206,221,61,0,53,216,2,222,61,0,53,216,54,222,61,0,53,216,106,222,61,0,53,216,158,222,60,0,60,0,60,0,228,36,60,0,60,0,60,0,85,0,60,0,60,0,60,0,53,255,60,0,60,0,60,0,158,167,47,0,8,3,60,0,60,0,60,0,53,216,20,220,61,0,53,216,72,220,61,0,53,216,124,220,61,0,53,216,176,220,61,0,53,216,228,220,61,0,53,216,24,221,61,0,53,216,76,221,61,0,53,216,128,221,61,0,53,216,180,221,61,0,53,216,232,221,61,0,53,216,28,222,61,0,53,216,80,222,61,0,53,216,132,222,60,0,60,0,60,0,202,36,61,0,60,216,100,221,60,0,60,0,60,0,88,29,60,0,60,0,60,0,100,29,60,0,60,0,60,0,65,29,61,0,60,216,68,221,61,0,60,216,132,221,60,0,60,0,60,0,60,216,171,221,47,0,72,0,68,0,60,0,60,0,60,0,60,216,153,221,47,0,80,0,39,0,33,0,39,0,60,0,28,29,60,0,60,0,60,0,184,29,60,0,78,171,60,0,29,29,60,0,60,0,60,0,89,29,60,0,30,29,60,0,107,29,60,0,80,171,60,0,81,171,60,0,137,2,60,0,60,0,60,0,68,2,60,0,60,0,60,0,182,29,60,0,79,171,60,0,185,167,60,0,60,0,60,0,184,167,60,0,126,29,60,0,153,29,60,0,82,171,60,0,60,0,60,0,95,171,60,0,191,167,60,0,60,0,60,0,190,167,60,0,101,2,60,0,60,0,60,0,141,167,60,0,60,0,60,0,163,29,60,0,174,2,60,0,175,2,60,0,111,2,60,0,60,0,60,0,156,1,60,0,60,0,60,0,90,29,60,0,250,167,60,0,31,29,60,0,112,2,60,0,60,0,60,0,173,29,60,0,138,2,60,0,60,0,60,0,177,1,60,0,60,0,60,0,183,29,60,0,127,29,60,0,118,0,60,0,60,0,60,0,86,255,60,0,60,0,60,0,110,3,61,0,116,33,60,0,60,0,60,0,117,33,47,0,105,0,60,0,60,0,60,0,118,33,47,0,105,0,105,0,60,0,60,0,60,0,119,33,47,0,105,0,105,0,105,0,60,0,60,0,60,0,97,167,47,0,121,0,60,0,60,0,60,0,53,216,47,220,61,0,53,216,99,220,61,0,53,216,151,220,61,0,53,216,203,220,61,0,53,216,255,220,61,0,53,216,51,221,61,0,53,216,103,221,61,0,53,216,155,221,61,0,53,216,207,221,61,0,53,216,3,222,61,0,53,216,55,222,61,0,53,216,107,222,61,0,53,216,159,222,60,0,60,0,60,0,229,36,60,0,60,0,60,0,86,0,60,0,60,0,60,0,54,255,60,0,60,0,60,0,100,33,60,0,60,0,60,0,101,33,47,0,73,0,60,0,60,0,60,0,102,33,47,0,73,0,73,0,60,0,60,0,60,0,103,33,47,0,73,0,73,0,73,0,60,0,60,0,60,0,96,167,47,0,89,0,60,0,60,0,60,0,53,216,21,220,61,0,53,216,73,220,61,0,53,216,125,220,61,0,53,216,177,220,61,0,53,216,229,220,61,0,53,216,25,221,61,0,53,216,77,221,61,0,53,216,129,221,61,0,53,216,181,221,61,0,53,216,233,221,61,0,53,216,29,222,61,0,53,216,81,222,61,0,53,216,133,222,60,0,60,0,60,0,203,36,61,0,60,216,101,221,60,0,60,0,60,0,91,29,60,0,60,0,60,0,101,29,60,0,60,0,60,0,125,44,61,0,60,216,69,221,61,0,60,216,133,221,60,0,60,0,60,0,222,51,47,0,21,34,109,0,60,0,60,0,60,0,60,216,172,221,47,0,79,0,68,0,60,0,60,0,60,0,60,216,154,221,47,0,83,0,60,0,32,29,60,0,95,167,60,0,60,0,60,0,94,167,60,0,140,29,60,0,139,2,60,0,60,0,60,0,178,1,60,0,60,0,60,0,185,29,60,0,113,44,60,0,60,0,60,0,1,216,176,223,60,0,116,44,60,0,253,30,60,0,60,0,60,0,252,30,60,0,140,2,60,0,60,0,60,0,69,2,60,0,60,0,60,0,186,29,60,0,119,0,60,0,60,0,60,0,87,255,60,0,60,0,60,0,191,26,61,0,241,29,60,0,60,0,60,0,53,216,48,220,61,0,53,216,100,220,61,0,53,216,152,220,61,0,53,216,204,220,61,0,53,216,0,221,61,0,53,216,52,221,61,0,53,216,104,221,61,0,53,216,156,221,61,0,53,216,208,221,61,0,53,216,4,222,61,0,53,216,56,222,61,0,53,216,108,222,61,0,53,216,160,222,60,0,60,0,60,0,230,36,60,0,60,0,60,0,87,0,60,0,60,0,60,0,55,255,60,0,60,0,60,0,53,216,22,220,61,0,53,216,74,220,61,0,53,216,126,220,61,0,53,216,178,220,61,0,53,216,230,220,61,0,53,216,26,221,61,0,53,216,78,221,61,0,53,216,130,221,61,0,53,216,182,221,61,0,53,216,234,221,61,0,53,216,30,222,61,0,53,216,82,222,61,0,53,216,134,222,60,0,60,0,60,0,204,36,61,0,60,216,102,221,60,0,60,0,60,0,60,216,46,221,47,0,90,0,60,0,60,0,60,0,183,2,60,0,60,0,60,0,66,29,61,0,60,216,70,221,61,0,60,216,134,221,60,0,60,0,60,0,221,51,47,0,98,0,60,0,60,0,60,0,60,216,79,221,47,0,67,0,61,0,60,216,143,221,47,0,67,0,60,0,60,0,195,167,60,0,60,0,60,0,194,167,60,0,33,29,60,0,115,44,60,0,60,0,60,0,114,44,60,0,141,2,60,0,60,0,60,0,192,26,60,0,60,0,60,0,105,171,60,0,120,0,60,0,60,0,60,0,88,255,60,0,60,0,60,0,111,3,61,0,121,33,60,0,60,0,60,0,122,33,47,0,105,0,60,0,60,0,60,0,123,33,47,0,105,0,105,0,60,0,60,0,60,0,53,216,49,220,61,0,53,216,101,220,61,0,53,216,153,220,61,0,53,216,205,220,61,0,53,216,1,221,61,0,53,216,53,221,61,0,53,216,105,221,61,0,53,216,157,221,61,0,53,216,209,221,61,0,53,216,5,222,61,0,53,216,57,222,61,0,53,216,109,222,61,0,53,216,161,222,60,0,60,0,60,0,231,36,60,0,60,0,60,0,88,0,60,0,60,0,60,0,56,255,60,0,60,0,60,0,105,33,60,0,60,0,60,0,106,33,47,0,73,0,60,0,60,0,60,0,107,33,47,0,73,0,73,0,60,0,60,0,60,0,53,216,23,220,61,0,53,216,75,220,61,0,53,216,127,220,61,0,53,216,179,220,61,0,53,216,231,220,61,0,53,216,27,221,61,0,53,216,79,221,61,0,53,216,131,221,61,0,53,216,183,221,61,0,53,216,235,221,61,0,53,216,31,222,61,0,53,216,83,222,61,0,53,216,135,222,60,0,60,0,60,0,205,36,61,0,60,216,103,221,60,0,60,0,60,0,227,2,60,0,60,0,60,0,147,32,60,0,60,0,60,0,60,216,71,221,61,0,60,216,135,221,60,0,141,29,60,0,86,171,60,0,87,171,60,0,88,171,60,0,89,171,60,0,83,171,60,0,60,0,60,0,179,167,60,0,84,171,60,0,85,171,60,0,121,0,60,0,60,0,60,0,89,255,60,0,60,0,60,0,53,216,50,220,61,0,53,216,102,220,61,0,53,216,154,220,61,0,53,216,206,220,61,0,53,216,2,221,61,0,53,216,54,221,61,0,53,216,106,221,61,0,53,216,158,221,61,0,53,216,210,221,61,0,53,216,6,222,61,0,53,216,58,222,61,0,53,216,110,222,61,0,53,216,162,222,60,0,60,0,60,0,232,36,60,0,60,0,60,0,89,0,60,0,60,0,60,0,57,255,60,0,60,0,60,0,53,216,24,220,61,0,53,216,76,220,61,0,53,216,128,220,61,0,53,216,180,220,61,0,53,216,232,220,61,0,53,216,28,221,61,0,53,216,80,221,61,0,53,216,132,221,61,0,53,216,184,221,61,0,53,216,236,221,61,0,53,216,32,222,61,0,53,216,84,222,61,0,53,216,136,222,60,0,60,0,60,0,206,36,61,0,60,216,104,221,60,0,60,0,60,0,184,2,60,0,60,0,60,0,60,216,72,221,61,0,60,216,136,221,60,0,143,2,60,0,60,0,60,0,1,216,178,223,60,0,79,2,60,0,60,0,60,0,78,2,60,0,180,1,60,0,60,0,60,0,179,1,60,0,255,30,60,0,60,0,60,0,254,30,60,0,90,171,60,0,29,2,60,0,60,0,60,0,28,2,60,0,122,0,60,0,60,0,60,0,90,255,60,0,60,0,60,0,230,29,60,0,60,0,60,0,141,1,47,0,119,0,60,0,60,0,60,0,53,216,51,220,61,0,53,216,103,220,61,0,53,216,155,220,61,0,53,216,207,220,61,0,53,216,3,221,61,0,53,216,55,221,61,0,53,216,107,221,61,0,53,216,159,221,61,0,53,216,211,221,61,0,53,216,7,222,61,0,53,216,59,222,61,0,53,216,111,222,61,0,53,216,163,222,60,0,60,0,60,0,233,36,60,0,60,0,60,0,90,0,60,0,60,0,60,0,58,255,60,0,60,0,60,0,36,33,61,0,40,33,61,0,53,216,25,220,61,0,53,216,77,220,61,0,53,216,129,220,61,0,53,216,181,220,61,0,53,216,233,220,61,0,53,216,133,221,61,0,53,216,185,221,61,0,53,216,237,221,61,0,53,216,33,222,61,0,53,216,85,222,61,0,53,216,137,222,60,0,60,0,60,0,207,36,61,0,60,216,105,221,60,0,60,0,60,0,187,29,60,0,60,0,60,0,60,216,73,221,61,0,60,216,137,221,60,0,34,29,60,0,182,1,60,0,60,0,60,0,181,1,60,0,118,29,60,0,142,29,60,0,60,0,60,0,198,167,60,0,37,2,60,0,60,0,60,0,36,2,60,0,144,2,60,0,60,0,60,0,188,29,60,0,145,2,60,0,60,0,60,0,189,29,60,0,64,2,60,0,60,0,60,0,127,44,60,0,108,44,60,0,60,0,60,0,107,44,60,0,99,167,60,0,60,0,60,0,98,167,60,0,146,2,60,0,60,0,60,0,183,1,60,0,60,0,60,0,190,29,60,0,35,29,60,0,185,1,60,0,60,0,60,0,184,1,60,0,55,216,24,223,60,0,154,29,60,0,186,1,60,0,147,2,60,0,254,0,60,0,60,0,60,0,222,0,60,0,211,167,60,0,101,167,60,0,60,0,60,0,100,167,60,0,103,167,60,0,60,0,60,0,102,167,60,0,191,1,60,0,60,0,60,0,247,1,60,0,213,167,60,0,105,167,60,0,60,0,60,0,104,167,60,0,96,171,60,0,97,171,60,0,99,171,60,0,107,167,60,0,60,0,60,0,106,167,60,0,109,167,60,0,60,0,60,0,108,167,60,0,111,167,60,0,60,0,60,0,210,29,60,0,60,0,60,0,110,167,60,0,60,0,60,0,112,167,60,0,120,167,60,0,187,1,60,0,43,167,60,0,60,0,60,0,42,167,60,0,45,167,60,0,60,0,60,0,44,167,60,0,47,167,60,0,60,0,60,0,46,167,60,0,168,1,60,0,60,0,60,0,167,1,60,0,189,1,60,0,60,0,60,0,188,1,60,0,133,1,60,0,60,0,60,0,132,1,60,0,148,2,60,0,66,2,60,0,60,0,60,0,65,2,60,0,192,2,60,0,188,2,60,0,60,0,60,0,73,1,47,0,110,0,60,0,238,2,60,0,190,2,60,0,35,167,60,0,60,0,60,0,34,167,60,0,140,167,60,0,60,0,60,0,139,167,60,0,143,167,60,0,149,2,60,0,60,0,60,0,228,2,60,0,191,2,60,0,193,2,60,0,36,29,60,0,37,29,60,0,60,0,60,0,92,29,60,0,37,167,60,0,60,0,60,0,36,167,60,0,161,2,60,0,60,0,60,0,1,216,179,223,60,0,162,2,60,0,60,0,60,0,1,216,180,223,60,0,150,2,60,0,55,216,14,223,60,0,192,1,60,0,60,0,60,0,1,216,182,223,60,0,193,1,60,0,60,0,60,0,1,216,183,223,60,0,194,1,60,0,60,0,60,0,1,216,184,223,60,0,195,1,60,0,55,216,10,223,60,0,60,0,60,0,1,216,185,223,60,0,151,2,60,0,55,216,15,223,60,0,152,2,60,0,60,0,60,0,1,216,181,223,60,0,172,2,60,0,173,2,60,0,177,3,60,0,60,0,60,0,53,216,194,222,61,0,53,216,252,222,61,0,53,216,54,223,61,0,53,216,112,223,61,0,53,216,170,223,60,0,60,0,60,0,145,3,60,0,60,0,60,0,53,216,168,222,61,0,53,216,226,222,61,0,53,216,28,223,61,0,53,216,86,223,61,0,53,216,144,223,60,0,178,3,60,0,60,0,60,0,208,3,60,0,60,0,60,0,53,216,195,222,61,0,53,216,253,222,61,0,53,216,55,223,61,0,53,216,113,223,61,0,53,216,171,223,60,0,60,0,60,0,146,3,60,0,60,0,60,0,53,216,169,222,61,0,53,216,227,222,61,0,53,216,29,223,61,0,53,216,87,223,61,0,53,216,145,223,60,0,60,0,60,0,93,29,60,0,60,0,60,0,102,29,60,0,179,3,60,0,60,0,60,0,61,33,61,0,53,216,196,222,61,0,53,216,254,222,61,0,53,216,56,223,61,0,53,216,114,223,61,0,53,216,172,223,60,0,60,0,60,0,147,3,60,0,60,0,60,0,62,33,61,0,53,216,170,222,61,0,53,216,228,222,61,0,53,216,30,223,61,0,53,216,88,223,61,0,53,216,146,223,60,0,60,0,60,0,94,29,60,0,60,0,60,0,103,29,60,0,38,29,60,0,180,3,60,0,60,0,60,0,53,216,197,222,61,0,53,216,255,222,61,0,53,216,57,223,61,0,53,216,115,223,61,0,53,216,173,223,60,0,60,0,60,0,148,3,60,0,60,0,60,0,53,216,171,222,61,0,53,216,229,222,61,0,53,216,31,223,61,0,53,216,89,223,61,0,53,216,147,223,60,0,60,0,60,0,95,29,60,0,181,3,60,0,60,0,60,0,245,3,60,0,60,0,60,0,53,216,198,222,61,0,53,216,220,222,61,0,53,216,0,223,61,0,53,216,22,223,61,0,53,216,58,223,61,0,53,216,80,223,61,0,53,216,116,223,61,0,53,216,138,223,61,0,53,216,174,223,61,0,53,216,196,223,60,0,60,0,60,0,149,3,60,0,60,0,60,0,53,216,172,222,61,0,53,216,230,222,61,0,53,216,32,223,61,0,53,216,90,223,61,0,53,216,148,223,60,0,221,3,60,0,60,0,60,0,53,216,203,223,60,0,60,0,60,0,220,3,60,0,60,0,60,0,53,216,202,223,60,0,119,3,60,0,60,0,60,0,118,3,60,0,219,3,60,0,60,0,60,0,218,3,60,0,182,3,60,0,60,0,60,0,53,216,199,222,61,0,53,216,1,223,61,0,53,216,59,223,61,0,53,216,117,223,61,0,53,216,175,223,60,0,60,0,60,0,150,3,60,0,60,0,60,0,53,216,173,222,61,0,53,216,231,222,61,0,53,216,33,223,61,0,53,216,91,223,61,0,53,216,149,223,60,0,113,3,60,0,60,0,60,0,112,3,60,0,183,3,60,0,60,0,60,0,53,216,200,222,61,0,53,216,2,223,61,0,53,216,60,223,61,0,53,216,118,223,61,0,53,216,176,223,60,0,60,0,60,0,151,3,60,0,60,0,60,0,53,216,174,222,61,0,53,216,232,222,61,0,53,216,34,223,61,0,53,216,92,223,61,0,53,216,150,223,60,0,184,3,60,0,60,0,60,0,209,3,60,0,60,0,60,0,53,216,201,222,61,0,53,216,221,222,61,0,53,216,3,223,61,0,53,216,23,223,61,0,53,216,61,223,61,0,53,216,81,223,61,0,53,216,119,223,61,0,53,216,139,223,61,0,53,216,177,223,61,0,53,216,197,223,60,0,60,0,60,0,152,3,60,0,60,0,60,0,244,3,60,0,60,0,60,0,53,216,175,222,61,0,53,216,185,222,61,0,53,216,233,222,61,0,53,216,243,222,61,0,53,216,35,223,61,0,53,216,45,223,61,0,53,216,93,223,61,0,53,216,103,223,61,0,53,216,151,223,61,0,53,216,161,223,60,0,60,0,60,0,191,29,60,0,185,3,60,0,60,0,60,0,122,3,60,0,60,0,60,0,53,216,202,222,61,0,53,216,4,223,61,0,53,216,62,223,61,0,53,216,120,223,61,0,53,216,178,223,60,0,60,0,60,0,153,3,60,0,60,0,60,0,53,216,176,222,61,0,53,216,234,222,61,0,53,216,36,223,61,0,53,216,94,223,61,0,53,216,152,223,60,0,243,3,60,0,60,0,60,0,127,3,60,0,186,3,60,0,60,0,60,0,240,3,60,0,60,0,60,0,215,3,47,0,177,3,185,3,60,0,60,0,60,0,53,216,203,222,61,0,53,216,222,222,61,0,53,216,5,223,61,0,53,216,24,223,61,0,53,216,63,223,61,0,53,216,82,223,61,0,53,216,121,223,61,0,53,216,140,223,61,0,53,216,179,223,61,0,53,216,198,223,60,0,60,0,60,0,154,3,60,0,60,0,60,0,207,3,47,0,177,3,185,3,60,0,60,0,60,0,53,216,177,222,61,0,53,216,235,222,61,0,53,216,37,223,61,0,53,216,95,223,61,0,53,216,153,223,60,0,187,3,60,0,60,0,60,0,53,216,204,222,61,0,53,216,6,223,61,0,53,216,64,223,61,0,53,216,122,223,61,0,53,216,180,223,60,0,60,0,60,0,155,3,60,0,60,0,60,0,53,216,178,222,61,0,53,216,236,222,61,0,53,216,38,223,61,0,53,216,96,223,61,0,53,216,154,223,60,0,39,29,60,0,188,3,60,0,60,0,60,0,181,0,60,0,60,0,60,0,53,216,205,222,61,0,53,216,7,223,61,0,53,216,65,223,61,0,53,216,123,223,61,0,53,216,181,223,60,0,60,0,60,0,156,3,60,0,60,0,60,0,53,216,179,222,61,0,53,216,237,222,61,0,53,216,39,223,61,0,53,216,97,223,61,0,53,216,155,223,60,0,60,0,60,0,130,51,47,0,65,0,60,0,60,0,60,0,140,51,47,0,70,0,60,0,60,0,60,0,141,51,47,0,103,0,60,0,60,0,60,0,149,51,47,0,108,0,60,0,60,0,60,0,155,51,47,0,109,0,60,0,60,0,60,0,178,51,47,0,115,0,60,0,60,0,60,0,182,51,47,0,86,0,60,0,60,0,60,0,188,51,47,0,87,0,60,0,189,3,60,0,60,0,60,0,53,216,206,222,61,0,53,216,8,223,61,0,53,216,66,223,61,0,53,216,124,223,61,0,53,216,182,223,60,0,60,0,60,0,157,3,60,0,60,0,60,0,53,216,180,222,61,0,53,216,238,222,61,0,53,216,40,223,61,0,53,216,98,223,61,0,53,216,156,223,60,0,190,3,60,0,60,0,60,0,53,216,207,222,61,0,53,216,9,223,61,0,53,216,67,223,61,0,53,216,125,223,61,0,53,216,183,223,60,0,60,0,60,0,158,3,60,0,60,0,60,0,53,216,181,222,61,0,53,216,239,222,61,0,53,216,41,223,61,0,53,216,99,223,61,0,53,216,157,223,60,0,191,3,60,0,60,0,60,0,53,216,208,222,61,0,53,216,10,223,61,0,53,216,68,223,61,0,53,216,126,223,61,0,53,216,184,223,60,0,60,0,60,0,159,3,60,0,60,0,60,0,53,216,182,222,61,0,53,216,240,222,61,0,53,216,42,223,61,0,53,216,100,223,61,0,53,216,158,223,60,0,192,3,60,0,60,0,60,0,214,3,60,0,60,0,60,0,60,33,61,0,53,216,209,222,61,0,53,216,225,222,61,0,53,216,11,223,61,0,53,216,27,223,61,0,53,216,69,223,61,0,53,216,85,223,61,0,53,216,127,223,61,0,53,216,143,223,61,0,53,216,185,223,61,0,53,216,201,223,60,0,60,0,60,0,160,3,60,0,60,0,60,0,63,33,61,0,53,216,183,222,61,0,53,216,241,222,61,0,53,216,43,223,61,0,53,216,101,223,61,0,53,216,159,223,60,0,40,29,60,0,251,3,60,0,60,0,60,0,250,3,60,0,223,3,60,0,60,0,60,0,222,3,60,0,217,3,60,0,60,0,60,0,216,3,60,0,193,3,60,0,60,0,60,0,241,3,60,0,60,0,60,0,53,216,210,222,61,0,53,216,224,222,61,0,53,216,12,223,61,0,53,216,26,223,61,0,53,216,70,223,61,0,53,216,84,223,61,0,53,216,128,223,61,0,53,216,142,223,61,0,53,216,186,223,61,0,53,216,200,223,60,0,60,0,60,0,161,3,60,0,60,0,60,0,53,216,184,222,61,0,53,216,242,222,61,0,53,216,44,223,61,0,53,216,102,223,61,0,53,216,160,223,60,0,60,0,60,0,104,29,60,0,41,29,60,0,252,3,60,0,195,3,60,0,60,0,60,0,242,3,60,0,60,0,60,0,53,216,211,222,61,0,53,216,212,222,61,0,53,216,13,223,61,0,53,216,14,223,61,0,53,216,71,223,61,0,53,216,72,223,61,0,53,216,129,223,61,0,53,216,130,223,61,0,53,216,187,223,61,0,53,216,188,223,60,0,60,0,60,0,163,3,60,0,60,0,60,0,249,3,60,0,60,0,60,0,53,216,186,222,61,0,53,216,244,222,61,0,53,216,46,223,61,0,53,216,104,223,61,0,53,216,162,223,60,0,60,0,60,0,194,3,60,0,124,3,60,0,60,0,60,0,254,3,60,0,123,3,60,0,60,0,60,0,253,3,60,0,125,3,60,0,60,0,60,0,255,3,60,0,196,3,60,0,60,0,60,0,53,216,213,222,61,0,53,216,15,223,61,0,53,216,73,223,61,0,53,216,131,223,61,0,53,216,189,223,60,0,60,0,60,0,164,3,60,0,60,0,60,0,53,216,187,222,61,0,53,216,245,222,61,0,53,216,47,223,61,0,53,216,105,223,61,0,53,216,163,223,60,0,197,3,60,0,60,0,60,0,53,216,214,222,61,0,53,216,16,223,61,0,53,216,74,223,61,0,53,216,132,223,61,0,53,216,190,223,60,0,60,0,60,0,165,3,60,0,60,0,60,0,210,3,60,0,60,0,60,0,53,216,188,222,61,0,53,216,246,222,61,0,53,216,48,223,61,0,53,216,106,223,61,0,53,216,164,223,60,0,198,3,60,0,60,0,60,0,213,3,60,0,60,0,60,0,53,216,215,222,61,0,53,216,223,222,61,0,53,216,17,223,61,0,53,216,25,223,61,0,53,216,75,223,61,0,53,216,83,223,61,0,53,216,133,223,61,0,53,216,141,223,61,0,53,216,191,223,61,0,53,216,199,223,60,0,60,0,60,0,166,3,60,0,60,0,60,0,53,216,189,222,61,0,53,216,247,222,61,0,53,216,49,223,61,0,53,216,107,223,61,0,53,216,165,223,60,0,60,0,60,0,96,29,60,0,60,0,60,0,105,29,60,0,199,3,60,0,60,0,60,0,53,216,216,222,61,0,53,216,18,223,61,0,53,216,76,223,61,0,53,216,134,223,61,0,53,216,192,223,60,0,60,0,60,0,167,3,60,0,60,0,60,0,53,216,190,222,61,0,53,216,248,222,61,0,53,216,50,223,61,0,53,216,108,223,61,0,53,216,166,223,60,0,60,0,60,0,97,29,60,0,60,0,60,0,106,29,60,0,200,3,60,0,60,0,60,0,53,216,217,222,61,0,53,216,19,223,61,0,53,216,77,223,61,0,53,216,135,223,61,0,53,216,193,223,60,0,60,0,60,0,168,3,60,0,60,0,60,0,53,216,191,222,61,0,53,216,249,222,61,0,53,216,51,223,61,0,53,216,109,223,61,0,53,216,167,223,60,0,42,29,60,0,201,3,60,0,60,0,60,0,53,216,218,222,61,0,53,216,20,223,61,0,53,216,78,223,61,0,53,216,136,223,61,0,53,216,194,223,60,0,60,0,60,0,169,3,60,0,60,0,60,0,53,216,192,222,61,0,53,216,250,222,61,0,53,216,52,223,61,0,53,216,110,223,61,0,53,216,168,223,60,0,101,171,60,0,225,3,60,0,60,0,60,0,224,3,60,0,115,3,60,0,60,0,60,0,114,3,60,0,248,3,60,0,60,0,60,0,247,3,60,0,129,44,60,0,60,0,60,0,128,44,60,0,131,44,60,0,60,0,60,0,130,44,60,0,133,44,60,0,60,0,60,0,132,44,60,0,135,44,60,0,60,0,60,0,134,44,60,0,137,44,60,0,60,0,60,0,136,44,60,0,183,44,60,0,60,0,60,0,182,44,60,0,139,44,60,0,60,0,60,0,138,44,60,0,141,44,60,0,60,0,60,0,140,44,60,0,143,44,60,0,60,0,60,0,142,44,60,0,145,44,60,0,60,0,60,0,144,44,60,0,147,44,60,0,60,0,60,0,146,44,60,0,149,44,60,0,60,0,60,0,228,44,47,0,129,44,147,44,60,0,60,0,60,0,148,44,60,0,185,44,60,0,60,0,60,0,184,44,60,0,151,44,60,0,60,0,60,0,150,44,60,0,153,44,60,0,60,0,60,0,152,44,60,0,155,44,60,0,60,0,60,0,154,44,60,0,187,44,60,0,60,0,60,0,186,44,60,0,189,44,60,0,60,0,60,0,188,44,60,0,157,44,60,0,60,0,60,0,156,44,60,0,159,44,60,0,60,0,60,0,158,44,60,0,161,44,60,0,60,0,60,0,160,44,60,0,163,44,60,0,60,0,60,0,162,44,60,0,165,44,60,0,60,0,60,0,164,44,60,0,167,44,60,0,60,0,60,0,166,44,60,0,169,44,60,0,60,0,60,0,168,44,60,0,171,44,60,0,60,0,60,0,170,44,60,0,173,44,60,0,60,0,60,0,172,44,60,0,175,44,60,0,60,0,60,0,174,44,60,0,177,44,60,0,60,0,60,0,176,44,60,0,191,44,60,0,60,0,60,0,190,44,60,0,193,44,60,0,60,0,60,0,192,44,60,0,227,3,60,0,60,0,60,0,226,3,60,0,236,44,60,0,60,0,60,0,235,44,60,0,195,44,60,0,60,0,60,0,194,44,60,0,197,44,60,0,60,0,60,0,196,44,60,0,199,44,60,0,60,0,60,0,198,44,60,0,229,3,60,0,60,0,60,0,228,3,60,0,231,3,60,0,60,0,60,0,230,3,60,0,243,44,60,0,60,0,60,0,242,44,60,0,201,44,60,0,60,0,60,0,200,44,60,0,233,3,60,0,60,0,60,0,232,3,60,0,203,44,60,0,60,0,60,0,202,44,60,0,205,44,60,0,60,0,60,0,204,44,60,0,207,44,60,0,60,0,60,0,206,44,60,0,209,44,60,0,60,0,60,0,208,44,60,0,211,44,60,0,60,0,60,0,210,44,60,0,213,44,60,0,60,0,60,0,212,44,60,0,235,3,60,0,60,0,60,0,234,3,60,0,238,44,60,0,60,0,60,0,237,44,60,0,215,44,60,0,60,0,60,0,214,44,60,0,237,3,60,0,60,0,60,0,236,3,60,0,217,44,60,0,60,0,60,0,216,44,60,0,219,44,60,0,60,0,60,0,218,44,60,0,221,44,60,0,60,0,60,0,220,44,60,0,239,3,60,0,60,0,60,0,238,3,60,0,179,44,60,0,60,0,60,0,178,44,60,0,181,44,60,0,60,0,60,0,180,44,60,0,223,44,60,0,60,0,60,0,222,44,60,0,225,44,60,0,60,0,60,0,224,44,60,0,227,44,60,0,60,0,60,0,226,44,60,0,48,4,60,0,60,0,60,0,246,45,60,0,60,0,60,0,16,4,60,0,60,0,60,0,56,216,48,220,60,0,60,0,60,0,56,216,81,220,60,0,217,4,60,0,60,0,60,0,216,4,60,0,60,0,60,0,56,216,75,220,60,0,213,4,60,0,60,0,60,0,212,4,60,0,49,4,60,0,60,0,60,0,224,45,60,0,60,0,60,0,17,4,60,0,60,0,60,0,56,216,49,220,60,0,60,0,60,0,56,216,82,220,60,0,50,4,60,0,60,0,60,0,128,28,61,0,225,45,60,0,60,0,60,0,18,4,60,0,60,0,60,0,56,216,50,220,60,0,60,0,60,0,56,216,83,220,60,0,51,4,60,0,60,0,60,0,226,45,60,0,60,0,60,0,19,4,60,0,60,0,60,0,56,216,51,220,60,0,60,0,60,0,56,216,84,220,60,0,60,0,56,216,103,220,60,0,60,0,60,0,145,4,60,0,60,0,60,0,144,4,60,0,147,4,60,0,60,0,60,0,146,4,60,0,251,4,60,0,60,0,60,0,250,4,60,0,149,4,60,0,60,0,60,0,148,4,60,0,247,4,60,0,60,0,60,0,246,4,60,0,52,4,60,0,60,0,60,0,129,28,61,0,227,45,60,0,60,0,60,0,20,4,60,0,60,0,60,0,56,216,52,220,60,0,60,0,60,0,56,216,85,220,60,0,1,5,60,0,60,0,60,0,0,5,60,0,129,166,60,0,60,0,60,0,128,166,60,0,82,4,60,0,60,0,60,0,2,4,60,0,99,166,60,0,60,0,60,0,98,166,60,0,3,5,60,0,60,0,60,0,2,5,60,0,153,4,60,0,60,0,60,0,152,4,60,0,53,4,60,0,60,0,60,0,247,45,60,0,60,0,60,0,21,4,60,0,60,0,60,0,56,216,53,220,60,0,60,0,60,0,56,216,86,220,60,0,84,4,60,0,60,0,60,0,116,166,60,0,60,0,60,0,4,4,60,0,54,4,60,0,60,0,60,0,228,45,60,0,60,0,60,0,22,4,60,0,60,0,60,0,56,216,54,220,60,0,60,0,60,0,56,216,87,220,60,0,43,5,60,0,60,0,60,0,42,5,60,0,133,166,60,0,60,0,60,0,132,166,60,0,151,4,60,0,60,0,60,0,150,4,60,0,55,4,60,0,60,0,60,0,229,45,60,0,60,0,60,0,23,4,60,0,60,0,60,0,56,216,55,220,60,0,60,0,60,0,56,216,88,220,60,0,65,166,60,0,60,0,60,0,64,166,60,0,5,5,60,0,60,0,60,0,4,5,60,0,17,5,60,0,60,0,60,0,16,5,60,0,67,166,60,0,60,0,60,0,66,166,60,0,85,4,60,0,60,0,60,0,5,4,60,0,60,0,60,0,56,216,105,220,60,0,69,166,60,0,60,0,60,0,68,166,60,0,225,4,60,0,60,0,60,0,224,4,60,0,137,166,60,0,60,0,60,0,136,166,60,0,60,0,60,0,56,216,74,220,60,0,7,5,60,0,60,0,60,0,6,5,60,0,131,166,60,0,60,0,60,0,130,166,60,0,56,4,60,0,60,0,60,0,117,166,60,0,60,0,60,0,24,4,60,0,60,0,60,0,56,216,56,220,60,0,60,0,60,0,56,216,89,220,60,0,139,4,60,0,60,0,60,0,138,4,60,0,86,4,60,0,60,0,60,0,56,216,143,220,60,0,60,0,60,0,118,166,47,0,8,3,60,0,60,0,60,0,6,4,60,0,60,0,60,0,56,216,76,220,60,0,60,0,60,0,56,216,104,220,60,0,71,166,60,0,60,0,60,0,70,166,60,0,57,4,60,0,60,0,60,0,25,4,60,0,88,4,60,0,60,0,60,0,8,4,60,0,60,0,60,0,56,216,77,220,60,0,73,166,60,0,60,0,60,0,248,45,60,0,60,0,60,0,72,166,60,0,58,4,60,0,60,0,60,0,230,45,60,0,60,0,60,0,26,4,60,0,60,0,60,0,56,216,57,220,60,0,60,0,60,0,56,216,90,220,60,0,155,4,60,0,60,0,60,0,154,4,60,0,196,4,60,0,60,0,60,0,195,4,60,0,161,4,60,0,60,0,60,0,160,4,60,0,159,4,60,0,60,0,60,0,158,4,60,0,157,4,60,0,60,0,60,0,156,4,60,0,31,5,60,0,60,0,60,0,30,5,60,0,27,5,60,0,60,0,60,0,26,5,60,0,59,4,60,0,60,0,60,0,231,45,60,0,60,0,60,0,27,4,60,0,60,0,60,0,56,216,58,220,60,0,60,0,60,0,56,216,91,220,60,0,43,29,60,0,198,4,60,0,60,0,60,0,197,4,60,0,47,5,60,0,60,0,60,0,46,5,60,0,19,5,60,0,60,0,60,0,18,5,60,0,33,5,60,0,60,0,60,0,32,5,60,0,89,4,60,0,60,0,60,0,9,4,60,0,101,166,60,0,60,0,60,0,100,166,60,0,9,5,60,0,60,0,60,0,8,5,60,0,21,5,60,0,60,0,60,0,20,5,60,0,60,4,60,0,60,0,60,0,232,45,60,0,60,0,60,0,28,4,60,0,60,0,60,0,56,216,59,220,60,0,206,4,60,0,60,0,60,0,205,4,60,0,103,166,60,0,60,0,60,0,102,166,60,0,61,4,60,0,60,0,60,0,233,45,60,0,60,0,60,0,29,4,60,0,60,0,60,0,120,29,60,0,41,5,60,0,60,0,60,0,40,5,60,0,202,4,60,0,60,0,60,0,201,4,60,0,163,4,60,0,60,0,60,0,162,4,60,0,200,4,60,0,60,0,60,0,199,4,60,0,35,5,60,0,60,0,60,0,34,5,60,0,165,4,60,0,60,0,60,0,164,4,60,0,90,4,60,0,60,0,60,0,10,4,60,0,11,5,60,0,60,0,60,0,10,5,60,0,62,4,60,0,60,0,60,0,130,28,61,0,234,45,61,0,105,166,61,0,107,166,61,0,109,166,61,0,110,166,61,0,153,166,61,0,155,166,60,0,60,0,60,0,30,4,60,0,60,0,60,0,104,166,61,0,106,166,61,0,108,166,61,0,152,166,61,0,154,166,60,0,60,0,60,0,56,216,60,220,60,0,60,0,60,0,56,216,92,220,60,0,233,4,60,0,60,0,60,0,232,4,60,0,60,0,60,0,56,216,78,220,60,0,63,4,60,0,60,0,60,0,235,45,60,0,60,0,60,0,31,4,60,0,60,0,60,0,56,216,61,220,60,0,60,0,60,0,56,216,93,220,60,0,37,5,60,0,60,0,60,0,36,5,60,0,167,4,60,0,60,0,60,0,166,4,60,0,129,4,60,0,60,0,60,0,128,4,60,0,64,4,60,0,60,0,60,0,236,45,60,0,60,0,60,0,32,4,60,0,60,0,60,0,56,216,62,220,60,0,143,4,60,0,60,0,60,0,142,4,60,0,23,5,60,0,60,0,60,0,22,5,60,0,65,4,60,0,60,0,60,0,131,28,61,0,237,45,60,0,60,0,60,0,245,45,47,0,66,4,60,0,60,0,60,0,33,4,60,0,60,0,60,0,56,216,63,220,60,0,60,0,60,0,56,216,94,220,60,0,13,5,60,0,60,0,60,0,12,5,60,0,171,4,60,0,60,0,60,0,170,4,60,0,60,0,60,0,56,216,107,220,60,0,66,4,60,0,60,0,60,0,132,28,61,0,133,28,61,0,238,45,60,0,60,0,60,0,34,4,60,0,60,0,60,0,56,216,64,220,60,0,141,166,60,0,60,0,60,0,140,166,60,0,15,5,60,0,60,0,60,0,14,5,60,0,173,4,60,0,60,0,60,0,172,4,60,0,139,166,60,0,60,0,60,0,138,166,60,0,91,4,60,0,60,0,60,0,11,4,60,0,67,4,60,0,60,0,60,0,119,166,60,0,60,0,60,0,35,4,60,0,60,0,60,0,56,216,65,220,60,0,60,0,60,0,56,216,95,220,60,0,175,4,60,0,60,0,60,0,174,4,60,0,60,0,60,0,56,216,79,220,60,0,177,4,60,0,60,0,60,0,176,4,60,0,60,0,60,0,56,216,109,220,60,0,75,166,60,0,60,0,60,0,136,28,61,0,249,45,60,0,60,0,60,0,74,166,60,0,121,4,60,0,60,0,60,0,120,4,60,0,68,4,60,0,60,0,60,0,158,166,60,0,60,0,60,0,36,4,60,0,60,0,60,0,56,216,66,220,60,0,60,0,60,0,56,216,96,220,60,0,69,4,60,0,60,0,60,0,239,45,60,0,60,0,60,0,37,4,60,0,60,0,60,0,56,216,67,220,60,0,60,0,60,0,56,216,97,220,60,0,253,4,60,0,60,0,60,0,252,4,60,0,255,4,60,0,60,0,60,0,254,4,60,0,179,4,60,0,60,0,60,0,178,4,60,0,187,4,60,0,60,0,60,0,186,4,60,0,39,5,60,0,60,0,60,0,38,5,60,0,149,166,60,0,60,0,60,0,148,166,60,0,97,4,60,0,60,0,60,0,123,166,60,0,60,0,60,0,96,4,60,0,127,4,60,0,60,0,60,0,126,4,60,0,77,166,60,0,60,0,60,0,76,166,60,0,125,4,60,0,60,0,60,0,124,4,60,0,123,4,60,0,60,0,60,0,122,4,60,0,70,4,60,0,60,0,60,0,240,45,60,0,60,0,60,0,38,4,60,0,60,0,60,0,56,216,68,220,60,0,60,0,60,0,56,216,98,220,60,0,97,166,60,0,60,0,60,0,96,166,60,0,143,166,60,0,60,0,60,0,142,166,60,0,181,4,60,0,60,0,60,0,180,4,60,0,145,166,60,0,60,0,60,0,144,166,60,0,71,4,60,0,60,0,60,0,241,45,60,0,60,0,60,0,39,4,60,0,60,0,60,0,56,216,69,220,60,0,60,0,60,0,56,216,99,220,60,0,45,5,60,0,60,0,60,0,44,5,60,0,147,166,60,0,60,0,60,0,146,166,60,0,183,4,60,0,60,0,60,0,182,4,60,0,204,4,60,0,60,0,60,0,203,4,60,0,185,4,60,0,60,0,60,0,184,4,60,0,135,166,60,0,60,0,60,0,134,166,60,0,189,4,60,0,60,0,60,0,188,4,60,0,191,4,60,0,60,0,60,0,190,4,60,0,95,4,60,0,60,0,60,0,15,4,60,0,60,0,60,0,56,216,106,220,60,0,72,4,60,0,60,0,60,0,242,45,60,0,60,0,60,0,40,4,60,0,60,0,60,0,56,216,70,220,60,0,60,0,60,0,56,216,100,220,60,0,151,166,60,0,60,0,60,0,150,166,60,0,73,4,60,0,60,0,60,0,243,45,60,0,60,0,60,0,41,4,60,0,79,166,60,0,60,0,60,0,78,166,60,0,47,46,60,0,127,166,60,0,74,4,60,0,60,0,60,0,134,28,61,0,120,166,60,0,60,0,60,0,42,4,60,0,60,0,60,0,156,166,60,0,60,0,60,0,56,216,101,220,60,0,81,166,60,0,60,0,60,0,80,166,60,0,60,0,60,0,56,216,108,220,60,0,75,4,60,0,60,0,60,0,121,166,60,0,60,0,60,0,43,4,60,0,60,0,60,0,56,216,71,220,60,0,60,0,60,0,56,216,102,220,60,0,76,4,60,0,60,0,60,0,122,166,60,0,60,0,60,0,44,4,60,0,60,0,60,0,157,166,60,0,141,4,60,0,60,0,60,0,140,4,60,0,99,4,60,0,60,0,60,0,135,28,61,0,250,45,60,0,60,0,60,0,98,4,60,0,83,166,60,0,60,0,60,0,82,166,60,0,77,4,60,0,60,0,60,0,45,4,60,0,60,0,60,0,56,216,72,220,60,0,78,4,60,0,60,0,60,0,251,45,60,0,60,0,60,0,46,4,60,0,60,0,60,0,56,216,73,220,60,0,85,166,60,0,60,0,60,0,84,166,60,0,87,166,60,0,60,0,60,0,252,45,60,0,60,0,60,0,86,166,60,0,79,4,60,0,60,0,60,0,47,4,60,0,25,5,60,0,60,0,60,0,24,5,60,0,101,4,60,0,60,0,60,0,159,166,60,0,60,0,60,0,100,4,60,0,103,4,60,0,60,0,60,0,253,45,60,0,60,0,60,0,102,4,60,0,89,166,60,0,60,0,60,0,88,166,60,0,107,4,60,0,60,0,60,0,254,45,60,0,60,0,60,0,106,4,60,0,91,166,60,0,60,0,60,0,90,166,60,0,105,4,60,0,60,0,60,0,104,4,60,0,93,166,60,0,60,0,60,0,92,166,60,0,109,4,60,0,60,0,60,0,255,45,60,0,60,0,60,0,108,4,60,0,111,4,60,0,60,0,60,0,110,4,60,0,113,4,60,0,60,0,60,0,112,4,60,0,115,4,60,0,60,0,60,0,244,45,60,0,60,0,60,0,114,4,60,0,117,4,60,0,60,0,60,0,116,4,60,0,95,166,60,0,60,0,60,0,94,166,60,0,169,4,60,0,60,0,60,0,168,4,60,0,29,5,60,0,60,0,60,0,28,5,60,0,207,4,60,0,60,0,60,0,192,4,60,0,60,0,60,0,56,216,80,220,60,0,48,44,60,0,60,0,60,0,56,216,0,220,60,0,60,0,60,0,0,44,60,0,49,44,60,0,60,0,60,0,56,216,1,220,60,0,60,0,60,0,1,44,60,0,50,44,60,0,60,0,60,0,56,216,2,220,60,0,60,0,60,0,2,44,60,0,51,44,60,0,60,0,60,0,56,216,3,220,60,0,60,0,60,0,3,44,60,0,52,44,60,0,60,0,60,0,56,216,4,220,60,0,60,0,60,0,4,44,60,0,53,44,60,0,60,0,60,0,56,216,5,220,60,0,60,0,60,0,5,44,60,0,54,44,60,0,60,0,60,0,56,216,6,220,60,0,60,0,60,0,6,44,60,0,55,44,60,0,60,0,60,0,7,44,60,0,56,44,60,0,60,0,60,0,56,216,8,220,60,0,60,0,60,0,8,44,60,0,57,44,60,0,60,0,60,0,56,216,9,220,60,0,60,0,60,0,9,44,60,0,58,44,60,0,60,0,60,0,56,216,10,220,60,0,60,0,60,0,10,44,60,0,59,44,60,0,60,0,60,0,56,216,11,220,60,0,60,0,60,0,11,44,60,0,60,44,60,0,60,0,60,0,56,216,12,220,60,0,60,0,60,0,12,44,60,0,61,44,60,0,60,0,60,0,56,216,13,220,60,0,60,0,60,0,13,44,60,0,62,44,60,0,60,0,60,0,56,216,14,220,60,0,60,0,60,0,14,44,60,0,63,44,60,0,60,0,60,0,56,216,15,220,60,0,60,0,60,0,15,44,60,0,64,44,60,0,60,0,60,0,56,216,16,220,60,0,60,0,60,0,16,44,60,0,65,44,60,0,60,0,60,0,56,216,17,220,60,0,60,0,60,0,17,44,60,0,66,44,60,0,60,0,60,0,56,216,18,220,60,0,60,0,60,0,18,44,60,0,67,44,60,0,60,0,60,0,56,216,19,220,60,0,60,0,60,0,19,44,60,0,68,44,60,0,60,0,60,0,56,216,20,220,60,0,60,0,60,0,20,44,60,0,69,44,60,0,60,0,60,0,56,216,21,220,60,0,60,0,60,0,21,44,60,0,70,44,60,0,60,0,60,0,56,216,22,220,60,0,60,0,60,0,22,44,60,0,71,44,60,0,60,0,60,0,56,216,23,220,60,0,60,0,60,0,23,44,60,0,72,44,60,0,60,0,60,0,56,216,24,220,60,0,60,0,60,0,24,44,60,0,73,44,60,0,60,0,60,0,25,44,60,0,74,44,60,0,60,0,60,0,26,44,60,0,75,44,60,0,60,0,60,0,56,216,27,220,60,0,60,0,60,0,27,44,60,0,76,44,60,0,60,0,60,0,56,216,28,220,60,0,60,0,60,0,28,44,60,0,77,44,60,0,60,0,60,0,56,216,29,220,60,0,60,0,60,0,29,44,60,0,78,44,60,0,60,0,60,0,56,216,30,220,60,0,60,0,60,0,30,44,60,0,79,44,60,0,60,0,60,0,56,216,31,220,60,0,60,0,60,0,31,44,60,0,80,44,60,0,60,0,60,0,56,216,32,220,60,0,60,0,60,0,32,44,60,0,81,44,60,0,60,0,60,0,56,216,33,220,60,0,60,0,60,0,33,44,60,0,82,44,60,0,60,0,60,0,34,44,60,0,83,44,60,0,60,0,60,0,56,216,35,220,60,0,60,0,60,0,35,44,60,0,84,44,60,0,60,0,60,0,56,216,36,220,60,0,60,0,60,0,36,44,60,0,85,44,60,0,60,0,60,0,37,44,60,0,86,44,60,0,60,0,60,0,56,216,38,220,60,0,60,0,60,0,38,44,60,0,87,44,60,0,60,0,60,0,56,216,39,220,60,0,60,0,60,0,39,44,60,0,88,44,60,0,60,0,60,0,56,216,40,220,60,0,60,0,60,0,40,44,60,0,89,44,60,0,60,0,60,0,56,216,41,220,60,0,60,0,60,0,41,44,60,0,90,44,60,0,60,0,60,0,56,216,42,220,60,0,60,0,60,0,42,44,60,0,91,44,60,0,60,0,60,0,43,44,60,0,92,44,60,0,60,0,60,0,44,44,60,0,93,44,60,0,60,0,60,0,45,44,60,0,94,44,60,0,60,0,60,0,46,44,60,0,95,44,60,0,60,0,60,0,47,44,60,0,0,216,80,223,60,0,60,0,60,0,0,216,118,223,60,0,0,216,81,223,60,0,0,216,82,223,60,0,0,216,83,223,60,0,60,0,60,0,0,216,119,223,60,0,0,216,84,223,60,0,0,216,85,223,60,0,0,216,86,223,60,0,0,216,87,223,60,0,60,0,60,0,0,216,120,223,60,0,0,216,88,223,60,0,0,216,89,223,60,0,0,216,90,223,60,0,0,216,91,223,60,0,0,216,92,223,60,0,0,216,93,223,60,0,60,0,60,0,0,216,121,223,60,0,0,216,94,223,60,0,0,216,95,223,60,0,0,216,96,223,60,0,0,216,97,223,60,0,60,0,60,0,0,216,122,223,60,0,0,216,98,223,60,0,0,216,99,223,60,0,0,216,100,223,60,0,0,216,101,223,60,0,0,216,102,223,60,0,0,216,103,223,60,0,0,216,104,223,60,0,0,216,105,223,60,0,0,216,106,223,60,0,0,216,107,223,60,0,0,216,108,223,60,0,0,216,109,223,60,0,0,216,110,223,60,0,0,216,111,223,60,0,0,216,112,223,60,0,0,216,113,223,60,0,0,216,114,223,60,0,0,216,115,223,60,0,0,216,116,223,60,0,0,216,117,223,60,0,208,16,60,0,60,0,60,0,144,28,60,0,0,45,60,0,60,0,60,0,160,16,60,0,209,16,60,0,60,0,60,0,145,28,60,0,1,45,60,0,60,0,60,0,161,16,60,0,210,16,60,0,60,0,60,0,146,28,60,0,2,45,60,0,60,0,60,0,162,16,60,0,211,16,60,0,60,0,60,0,147,28,60,0,3,45,60,0,60,0,60,0,163,16,60,0,212,16,60,0,60,0,60,0,148,28,60,0,4,45,60,0,60,0,60,0,164,16,60,0,213,16,60,0,60,0,60,0,149,28,60,0,5,45,60,0,60,0,60,0,165,16,60,0,214,16,60,0,60,0,60,0,150,28,60,0,6,45,60,0,60,0,60,0,166,16,60,0,241,16,60,0,60,0,60,0,177,28,60,0,33,45,60,0,60,0,60,0,193,16,60,0,215,16,60,0,60,0,60,0,151,28,60,0,7,45,60,0,60,0,60,0,167,16,60,0,216,16,60,0,60,0,60,0,152,28,60,0,8,45,60,0,60,0,60,0,168,16,60,0,217,16,60,0,60,0,60,0,153,28,60,0,9,45,60,0,60,0,60,0,169,16,60,0,218,16,60,0,60,0,60,0,154,28,60,0,10,45,60,0,60,0,60,0,170,16,60,0,219,16,60,0,60,0,60,0,155,28,60,0,11,45,60,0,60,0,60,0,171,16,60,0,220,16,60,0,60,0,60,0,156,28,60,0,60,0,60,0,252,16,60,0,12,45,60,0,60,0,60,0,172,16,60,0,242,16,60,0,60,0,60,0,178,28,60,0,34,45,60,0,60,0,60,0,194,16,60,0,221,16,60,0,60,0,60,0,157,28,60,0,13,45,60,0,60,0,60,0,173,16,60,0,222,16,60,0,60,0,60,0,158,28,60,0,14,45,60,0,60,0,60,0,174,16,60,0,223,16,60,0,60,0,60,0,159,28,60,0,15,45,60,0,60,0,60,0,175,16,60,0,224,16,60,0,60,0,60,0,160,28,60,0,16,45,60,0,60,0,60,0,176,16,60,0,225,16,60,0,60,0,60,0,161,28,60,0,17,45,60,0,60,0,60,0,177,16,60,0,226,16,60,0,60,0,60,0,162,28,60,0,18,45,60,0,60,0,60,0,178,16,60,0,243,16,60,0,60,0,60,0,179,28,60,0,35,45,60,0,60,0,60,0,195,16,60,0,227,16,60,0,60,0,60,0,163,28,60,0,19,45,60,0,60,0,60,0,179,16,60,0,228,16,60,0,60,0,60,0,164,28,60,0,20,45,60,0,60,0,60,0,180,16,60,0,229,16,60,0,60,0,60,0,165,28,60,0,21,45,60,0,60,0,60,0,181,16,60,0,230,16,60,0,60,0,60,0,166,28,60,0,22,45,60,0,60,0,60,0,182,16,60,0,231,16,60,0,60,0,60,0,167,28,60,0,23,45,60,0,60,0,60,0,183,16,60,0,232,16,60,0,60,0,60,0,168,28,60,0,24,45,60,0,60,0,60,0,184,16,60,0,233,16,60,0,60,0,60,0,169,28,60,0,25,45,60,0,60,0,60,0,185,16,60,0,234,16,60,0,60,0,60,0,170,28,60,0,26,45,60,0,60,0,60,0,186,16,60,0,235,16,60,0,60,0,60,0,171,28,60,0,27,45,60,0,60,0,60,0,187,16,60,0,236,16,60,0,60,0,60,0,172,28,60,0,28,45,60,0,60,0,60,0,188,16,60,0,237,16,60,0,60,0,60,0,173,28,60,0,29,45,60,0,60,0,60,0,189,16,60,0,238,16,60,0,60,0,60,0,174,28,60,0,30,45,60,0,60,0,60,0,190,16,60,0,244,16,60,0,60,0,60,0,180,28,60,0,36,45,60,0,60,0,60,0,196,16,60,0,239,16,60,0,60,0,60,0,175,28,60,0,31,45,60,0,60,0,60,0,191,16,60,0,240,16,60,0,60,0,60,0,176,28,60,0,32,45,60,0,60,0,60,0,192,16,60,0,245,16,60,0,60,0,60,0,181,28,60,0,37,45,60,0,60,0,60,0,197,16,60,0,246,16,60,0,60,0,60,0,182,28,60,0,247,16,60,0,60,0,60,0,183,28,60,0,39,45,60,0,60,0,60,0,199,16,60,0,248,16,60,0,60,0,60,0,184,28,60,0,249,16,60,0,60,0,60,0,185,28,60,0,250,16,60,0,60,0,60,0,186,28,60,0,253,16,60,0,60,0,60,0,189,28,60,0,45,45,60,0,60,0,60,0,205,16,60,0,254,16,60,0,60,0,60,0,190,28,60,0,255,16,60,0,60,0,60,0,191,28,60,0,97,5,60,0,60,0,60,0,49,5,60,0,96,5,60,0,98,5,60,0,60,0,60,0,50,5,60,0,99,5,60,0,60,0,60,0,51,5,60,0,100,5,60,0,60,0,60,0,52,5,60,0,101,5,60,0,60,0,60,0,135,5,47,0,130,5,60,0,60,0,60,0,53,5,60,0,102,5,60,0,60,0,60,0,54,5,60,0,103,5,60,0,60,0,60,0,55,5,60,0,104,5,60,0,60,0,60,0,56,5,60,0,105,5,60,0,60,0,60,0,57,5,60,0,106,5,60,0,60,0,60,0,58,5,60,0,107,5,60,0,60,0,60,0,59,5,60,0,108,5,60,0,60,0,60,0,60,5,60,0,109,5,60,0,60,0,60,0,61,5,60,0,110,5,60,0,60,0,60,0,62,5,60,0,111,5,60,0,60,0,60,0,63,5,60,0,112,5,60,0,60,0,60,0,64,5,60,0,113,5,60,0,60,0,60,0,65,5,60,0,114,5,60,0,60,0,60,0,66,5,60,0,115,5,60,0,60,0,60,0,67,5,60,0,116,5,60,0,60,0,60,0,20,251,47,0,101,5,60,0,60,0,60,0,21,251,47,0,107,5,60,0,60,0,60,0,23,251,47,0,109,5,60,0,60,0,60,0,19,251,47,0,118,5,60,0,60,0,60,0,68,5,60,0,117,5,60,0,60,0,60,0,69,5,60,0,136,5,60,0,118,5,60,0,60,0,60,0,70,5,60,0,119,5,60,0,60,0,60,0,71,5,60,0,120,5,60,0,60,0,60,0,72,5,60,0,121,5,60,0,60,0,60,0,73,5,60,0,122,5,60,0,60,0,60,0,74,5,60,0,123,5,60,0,60,0,60,0,75,5,60,0,124,5,60,0,60,0,60,0,76,5,60,0,125,5,60,0,60,0,60,0,77,5,60,0,126,5,60,0,60,0,60,0,22,251,47,0,118,5,60,0,60,0,60,0,78,5,60,0,127,5,60,0,60,0,60,0,79,5,60,0,128,5,60,0,60,0,60,0,80,5,60,0,129,5,60,0,60,0,60,0,81,5,60,0,130,5,60,0,60,0,60,0,82,5,60,0,131,5,60,0,60,0,60,0,83,5,60,0,132,5,60,0,60,0,60,0,84,5,60,0,133,5,60,0,60,0,60,0,85,5,60,0,134,5,60,0,60,0,60,0,86,5,60,0,89,5,60,0,14,32,208,5,14,32,60,0,60,0,60,0,53,33,60,0,60,0,60,0,14,32,79,251,14,32,47,0,14,32,220,5,14,32,60,0,60,0,60,0,14,32,33,251,14,32,60,0,14,32,209,5,14,32,60,0,60,0,60,0,54,33,60,0,14,32,210,5,14,32,60,0,60,0,60,0,55,33,60,0,14,32,211,5,14,32,60,0,60,0,60,0,56,33,60,0,60,0,60,0,14,32,34,251,14,32,60,0,14,32,212,5,14,32,60,0,60,0,60,0,14,32,35,251,14,32,60,0,14,32,213,5,14,32,60,0,60,0,60,0,14,32,240,5,14,32,47,0,14,32,213,5,14,32,60,0,60,0,60,0,14,32,241,5,14,32,47,0,14,32,217,5,14,32,60,0,14,32,214,5,14,32,60,0,14,32,215,5,14,32,60,0,14,32,216,5,14,32,60,0,14,32,217,5,14,32,60,0,60,0,60,0,14,32,239,5,14,32,47,0,14,32,212,5,213,5,212,5,14,32,60,0,60,0,60,0,14,32,242,5,14,32,47,0,14,32,217,5,14,32,60,0,14,32,219,5,14,32,60,0,60,0,60,0,14,32,36,251,14,32,60,0,60,0,60,0,14,32,218,5,14,32,60,0,14,32,220,5,14,32,60,0,60,0,60,0,14,32,37,251,14,32,60,0,14,32,222,5,14,32,60,0,60,0,60,0,14,32,38,251,14,32,60,0,60,0,60,0,14,32,221,5,14,32,60,0,14,32,224,5,14,32,60,0,60,0,60,0,14,32,223,5,14,32,60,0,14,32,225,5,14,32,60,0,14,32,226,5,14,32,60,0,60,0,60,0,14,32,32,251,14,32,60,0,14,32,228,5,14,32,60,0,60,0,60,0,14,32,227,5,14,32,60,0,14,32,230,5,14,32,60,0,60,0,60,0,14,32,229,5,14,32,60,0,14,32,231,5,14,32,60,0,14,32,232,5,14,32,60,0,60,0,60,0,14,32,39,251,14,32,60,0,14,32,233,5,14,32,60,0,14,32,234,5,14,32,60,0,60,0,60,0,14,32,40,251,14,32,60,0,14,32,2,216,0,221,14,32,60,0,14,32,2,216,1,221,14,32,60,0,14,32,2,216,2,221,14,32,60,0,14,32,2,216,3,221,14,32,60,0,14,32,2,216,4,221,14,32,60,0,14,32,2,216,5,221,14,32,60,0,14,32,2,216,6,221,14,32,60,0,14,32,2,216,7,221,14,32,60,0,14,32,2,216,8,221,14,32,60,0,14,32,2,216,9,221,14,32,60,0,14,32,2,216,10,221,14,32,60,0,14,32,2,216,11,221,14,32,60,0,14,32,2,216,12,221,14,32,60,0,14,32,2,216,13,221,14,32,60,0,14,32,2,216,14,221,14,32,60,0,14,32,2,216,15,221,14,32,60,0,14,32,2,216,16,221,14,32,60,0,14,32,2,216,17,221,14,32,60,0,14,32,2,216,18,221,14,32,60,0,14,32,2,216,19,221,14,32,60,0,14,32,2,216,20,221,14,32,60,0,14,32,2,216,21,221,14,32,60,0,14,32,0,8,14,32,60,0,14,32,1,8,14,32,60,0,14,32,2,8,14,32,60,0,14,32,3,8,14,32,60,0,14,32,4,8,14,32,60,0,14,32,5,8,14,32,60,0,14,32,6,8,14,32,60,0,14,32,7,8,14,32,60,0,14,32,8,8,14,32,60,0,14,32,9,8,14,32,60,0,14,32,10,8,14,32,60,0,14,32,11,8,14,32,60,0,14,32,12,8,14,32,60,0,14,32,13,8,14,32,60,0,14,32,14,8,14,32,60,0,14,32,15,8,14,32,60,0,14,32,16,8,14,32,60,0,14,32,17,8,14,32,60,0,14,32,18,8,14,32,60,0,14,32,19,8,14,32,60,0,14,32,20,8,14,32,60,0,14,32,21,8,14,32,60,0,22,8,60,0,23,8,60,0,14,32,26,8,14,32,60,0,27,8,60,0,14,32,33,6,14,32,60,0,60,0,60,0,14,32,116,6,14,32,61,0,14,32,131,8,14,32,61,0,14,32,135,8,14,32,60,0,60,0,60,0,14,32,117,6,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,118,6,14,32,47,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,119,6,14,32,47,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,120,6,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,128,254,14,32,60,0,60,0,60,0,14,32,221,251,14,32,47,0,14,32,199,6,14,32,60,0,60,0,14,32,253,6,14,32,60,0,14,32,34,6,14,32,60,0,60,0,60,0,14,32,130,254,14,32,60,0,60,0,60,0,14,32,129,254,14,32,60,0,14,32,35,6,14,32,60,0,60,0,60,0,14,32,132,254,14,32,60,0,60,0,60,0,14,32,131,254,14,32,60,0,14,32,114,6,14,32,60,0,14,32,113,6,14,32,60,0,60,0,60,0,14,32,81,251,14,32,60,0,60,0,60,0,14,32,80,251,14,32,60,0,14,32,36,6,14,32,60,0,60,0,60,0,14,32,134,254,14,32,60,0,60,0,60,0,14,32,133,254,14,32,60,0,14,32,37,6,14,32,60,0,60,0,60,0,14,32,136,254,14,32,60,0,60,0,60,0,14,32,135,254,14,32,60,0,14,32,115,6,14,32,60,0,14,32,115,7,14,32,60,0,14,32,116,7,14,32,60,0,14,32,38,6,14,32,60,0,60,0,60,0,14,32,139,254,14,32,60,0,60,0,60,0,14,32,151,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,152,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,153,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,154,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,155,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,251,251,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,248,251,14,32,47,0,14,32,208,6,14,32,60,0,60,0,60,0,14,32,140,254,14,32,60,0,60,0,60,0,14,32,223,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,224,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,138,254,14,32,60,0,60,0,60,0,14,32,235,251,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,100,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,101,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,102,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,103,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,237,251,14,32,47,0,14,32,213,6,14,32,60,0,60,0,60,0,14,32,239,251,14,32,47,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,243,251,14,32,47,0,14,32,198,6,14,32,60,0,60,0,60,0,14,32,241,251,14,32,47,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,245,251,14,32,47,0,14,32,200,6,14,32,60,0,60,0,60,0,14,32,250,251,14,32,47,0,14,32,73,6,14,32,61,0,14,32,104,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,105,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,247,251,14,32,47,0,14,32,208,6,14,32,60,0,60,0,60,0,14,32,137,254,14,32,60,0,60,0,60,0,14,32,234,251,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,0,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,1,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,2,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,236,251,14,32,47,0,14,32,213,6,14,32,60,0,60,0,60,0,14,32,238,251,14,32,47,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,242,251,14,32,47,0,14,32,198,6,14,32,60,0,60,0,60,0,14,32,240,251,14,32,47,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,244,251,14,32,47,0,14,32,200,6,14,32,60,0,60,0,60,0,14,32,249,251,14,32,47,0,14,32,73,6,14,32,61,0,14,32,3,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,4,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,246,251,14,32,47,0,14,32,208,6,14,32,60,0,14,32,168,8,14,32,60,0,14,32,169,8,14,32,60,0,14,32,172,8,14,32,60,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,112,8,14,32,61,0,14,32,113,8,14,32,61,0,14,32,114,8,14,32,61,0,14,32,115,8,14,32,61,0,14,32,116,8,14,32,61,0,14,32,117,8,14,32,61,0,14,32,118,8,14,32,61,0,14,32,119,8,14,32,61,0,14,32,120,8,14,32,61,0,14,32,121,8,14,32,61,0,14,32,122,8,14,32,61,0,14,32,123,8,14,32,61,0,14,32,124,8,14,32,61,0,14,32,125,8,14,32,61,0,14,32,126,8,14,32,61,0,14,32,127,8,14,32,61,0,14,32,128,8,14,32,61,0,14,32,129,8,14,32,61,0,14,32,130,8,14,32,61,0,14,32,173,8,14,32,60,0,60,0,60,0,14,32,59,216,0,222,14,32,61,0,14,32,59,216,128,222,14,32,60,0,60,0,60,0,14,32,142,254,14,32,60,0,60,0,60,0,14,32,60,253,14,32,47,0,75,6,60,0,60,0,60,0,14,32,141,254,14,32,60,0,60,0,60,0,14,32,61,253,14,32,47,0,75,6,60,0,60,0,60,0,14,32,243,253,14,32,47,0,14,32,67,6,40,6,49,6,14,32,60,0,60,0,60,0,14,32,242,253,14,32,47,0,14,32,68,6,68,6,71,6,14,32,60,0,14,32,110,6,14,32,60,0,60,0,60,0,14,32,59,216,28,222,14,32,61,0,14,32,59,216,124,222,14,32,60,0,14,32,40,6,14,32,60,0,60,0,60,0,14,32,59,216,1,222,14,32,61,0,14,32,59,216,33,222,14,32,61,0,14,32,59,216,97,222,14,32,61,0,14,32,59,216,129,222,14,32,61,0,14,32,59,216,161,222,14,32,60,0,60,0,60,0,14,32,145,254,14,32,60,0,60,0,60,0,14,32,156,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,157,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,158,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,159,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,160,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,146,254,14,32,60,0,60,0,60,0,14,32,225,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,226,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,144,254,14,32,60,0,60,0,60,0,14,32,194,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,158,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,106,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,107,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,108,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,109,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,110,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,111,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,143,254,14,32,60,0,60,0,60,0,14,32,5,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,6,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,7,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,8,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,9,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,10,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,123,6,14,32,60,0,60,0,60,0,14,32,84,251,14,32,60,0,60,0,60,0,14,32,85,251,14,32,60,0,60,0,60,0,14,32,83,251,14,32,60,0,60,0,60,0,14,32,82,251,14,32,60,0,14,32,126,6,14,32,60,0,60,0,60,0,14,32,88,251,14,32,60,0,60,0,60,0,14,32,89,251,14,32,60,0,60,0,60,0,14,32,87,251,14,32,60,0,60,0,60,0,14,32,86,251,14,32,60,0,14,32,128,6,14,32,60,0,60,0,60,0,14,32,92,251,14,32,60,0,60,0,60,0,14,32,93,251,14,32,60,0,60,0,60,0,14,32,91,251,14,32,60,0,60,0,60,0,14,32,90,251,14,32,60,0,14,32,80,7,14,32,60,0,14,32,81,7,14,32,60,0,14,32,82,7,14,32,60,0,14,32,83,7,14,32,60,0,14,32,84,7,14,32,60,0,14,32,85,7,14,32,60,0,14,32,160,8,14,32,60,0,14,32,86,7,14,32,60,0,14,32,190,8,14,32,60,0,14,32,161,8,14,32,60,0,14,32,182,8,14,32,60,0,14,32,183,8,14,32,60,0,14,32,41,6,14,32,60,0,60,0,60,0,14,32,148,254,14,32,60,0,60,0,60,0,14,32,147,254,14,32,60,0,14,32,42,6,14,32,60,0,60,0,60,0,14,32,59,216,21,222,14,32,61,0,14,32,59,216,53,222,14,32,61,0,14,32,59,216,117,222,14,32,61,0,14,32,59,216,149,222,14,32,61,0,14,32,59,216,181,222,14,32,60,0,60,0,60,0,14,32,151,254,14,32,60,0,60,0,60,0,14,32,161,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,80,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,162,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,82,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,83,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,163,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,84,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,164,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,85,253,14,32,47,0,14,32,69,6,44,6,14,32,60,0,60,0,60,0,14,32,86,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,87,253,14,32,47,0,14,32,69,6,46,6,14,32,60,0,60,0,60,0,14,32,165,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,152,254,14,32,60,0,60,0,60,0,14,32,227,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,228,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,150,254,14,32,60,0,60,0,60,0,14,32,160,253,14,32,47,0,14,32,44,6,73,6,14,32,60,0,60,0,60,0,14,32,159,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,81,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,162,253,14,32,47,0,14,32,46,6,73,6,14,32,60,0,60,0,60,0,14,32,161,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,112,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,113,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,114,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,164,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,163,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,115,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,116,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,117,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,149,254,14,32,60,0,60,0,60,0,14,32,11,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,12,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,13,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,14,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,15,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,16,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,43,6,14,32,60,0,60,0,60,0,14,32,59,216,22,222,14,32,61,0,14,32,59,216,54,222,14,32,61,0,14,32,59,216,118,222,14,32,61,0,14,32,59,216,150,222,14,32,61,0,14,32,59,216,182,222,14,32,60,0,60,0,60,0,14,32,155,254,14,32,60,0,60,0,60,0,14,32,166,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,156,254,14,32,60,0,60,0,60,0,14,32,229,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,230,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,154,254,14,32,60,0,60,0,60,0,14,32,118,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,119,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,120,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,121,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,122,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,123,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,153,254,14,32,60,0,60,0,60,0,14,32,17,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,18,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,19,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,20,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,121,6,14,32,60,0,60,0,60,0,14,32,104,251,14,32,60,0,60,0,60,0,14,32,105,251,14,32,60,0,60,0,60,0,14,32,103,251,14,32,60,0,60,0,60,0,14,32,102,251,14,32,60,0,14,32,122,6,14,32,60,0,60,0,60,0,14,32,96,251,14,32,60,0,60,0,60,0,14,32,97,251,14,32,60,0,60,0,60,0,14,32,95,251,14,32,60,0,60,0,60,0,14,32,94,251,14,32,60,0,14,32,124,6,14,32,60,0,14,32,125,6,14,32,60,0,14,32,127,6,14,32,60,0,60,0,60,0,14,32,100,251,14,32,60,0,60,0,60,0,14,32,101,251,14,32,60,0,60,0,60,0,14,32,99,251,14,32,60,0,60,0,60,0,14,32,98,251,14,32,60,0,14,32,184,8,14,32,60,0,14,32,191,8,14,32,60,0,14,32,192,8,14,32,60,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,59,216,2,222,14,32,61,0,14,32,59,216,34,222,14,32,61,0,14,32,59,216,66,222,14,32,61,0,14,32,59,216,98,222,14,32,61,0,14,32,59,216,130,222,14,32,61,0,14,32,59,216,162,222,14,32,60,0,60,0,60,0,14,32,159,254,14,32,60,0,60,0,60,0,14,32,167,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,168,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,89,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,160,254,14,32,60,0,60,0,60,0,14,32,158,254,14,32,60,0,60,0,60,0,14,32,166,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,190,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,88,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,167,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,165,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,29,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,30,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,157,254,14,32,60,0,60,0,60,0,14,32,21,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,251,253,14,32,47,0,14,32,68,6,39,0,32,0,39,0,44,6,68,6,39,6,68,6,71,6,14,32,60,0,60,0,60,0,14,32,22,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,1,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,2,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,131,6,14,32,60,0,60,0,60,0,14,32,120,251,14,32,60,0,60,0,60,0,14,32,121,251,14,32,60,0,60,0,60,0,14,32,119,251,14,32,60,0,60,0,60,0,14,32,118,251,14,32,60,0,14,32,132,6,14,32,60,0,60,0,60,0,14,32,116,251,14,32,60,0,60,0,60,0,14,32,117,251,14,32,60,0,60,0,60,0,14,32,115,251,14,32,60,0,60,0,60,0,14,32,114,251,14,32,60,0,14,32,138,8,14,32,60,0,14,32,134,6,14,32,60,0,60,0,60,0,14,32,124,251,14,32,60,0,60,0,60,0,14,32,125,251,14,32,60,0,60,0,60,0,14,32,123,251,14,32,60,0,60,0,60,0,14,32,122,251,14,32,60,0,14,32,191,6,14,32,60,0,14,32,135,6,14,32,60,0,60,0,60,0,14,32,128,251,14,32,60,0,60,0,60,0,14,32,129,251,14,32,60,0,60,0,60,0,14,32,127,251,14,32,60,0,60,0,60,0,14,32,126,251,14,32,60,0,14,32,162,8,14,32,60,0,14,32,193,8,14,32,60,0,14,32,197,8,14,32,60,0,14,32,198,8,14,32,60,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,59,216,7,222,14,32,61,0,14,32,59,216,39,222,14,32,61,0,14,32,59,216,71,222,14,32,61,0,14,32,59,216,103,222,14,32,61,0,14,32,59,216,135,222,14,32,61,0,14,32,59,216,167,222,14,32,60,0,60,0,60,0,14,32,163,254,14,32,60,0,60,0,60,0,14,32,169,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,170,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,164,254,14,32,60,0,60,0,60,0,14,32,162,254,14,32,60,0,60,0,60,0,14,32,191,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,91,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,90,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,27,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,28,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,161,254,14,32,60,0,60,0,60,0,14,32,23,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,24,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,255,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,0,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,59,216,23,222,14,32,61,0,14,32,59,216,55,222,14,32,61,0,14,32,59,216,87,222,14,32,61,0,14,32,59,216,119,222,14,32,61,0,14,32,59,216,151,222,14,32,61,0,14,32,59,216,183,222,14,32,60,0,60,0,60,0,14,32,167,254,14,32,60,0,60,0,60,0,14,32,171,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,172,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,168,254,14,32,60,0,60,0,60,0,14,32,166,254,14,32,60,0,60,0,60,0,14,32,31,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,32,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,165,254,14,32,60,0,60,0,60,0,14,32,25,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,26,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,27,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,3,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,4,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,129,6,14,32,60,0,14,32,130,6,14,32,60,0,14,32,133,6,14,32,60,0,14,32,87,7,14,32,60,0,14,32,88,7,14,32,60,0,14,32,110,7,14,32,60,0,14,32,111,7,14,32,60,0,14,32,114,7,14,32,60,0,14,32,124,7,14,32,60,0,14,32,47,6,14,32,60,0,60,0,60,0,14,32,59,216,3,222,14,32,61,0,14,32,59,216,131,222,14,32,61,0,14,32,59,216,163,222,14,32,60,0,60,0,60,0,14,32,170,254,14,32,60,0,60,0,60,0,14,32,169,254,14,32,60,0,14,32,48,6,14,32,60,0,60,0,60,0,14,32,59,216,24,222,14,32,61,0,14,32,59,216,152,222,14,32,61,0,14,32,59,216,184,222,14,32,60,0,60,0,60,0,14,32,172,254,14,32,60,0,60,0,60,0,14,32,171,254,14,32,60,0,60,0,60,0,14,32,91,252,14,32,47,0,112,6,60,0,14,32,136,6,14,32,60,0,60,0,60,0,14,32,137,251,14,32,60,0,60,0,60,0,14,32,136,251,14,32,60,0,14,32,137,6,14,32,60,0,14,32,138,6,14,32,60,0,14,32,139,6,14,32,60,0,14,32,140,6,14,32,60,0,60,0,60,0,14,32,133,251,14,32,60,0,60,0,60,0,14,32,132,251,14,32,60,0,14,32,141,6,14,32,60,0,60,0,60,0,14,32,131,251,14,32,60,0,60,0,60,0,14,32,130,251,14,32,60,0,14,32,174,8,14,32,60,0,14,32,142,6,14,32,60,0,60,0,60,0,14,32,135,251,14,32,60,0,60,0,60,0,14,32,134,251,14,32,60,0,14,32,143,6,14,32,60,0,14,32,144,6,14,32,60,0,14,32,238,6,14,32,60,0,14,32,89,7,14,32,60,0,14,32,90,7,14,32,60,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,59,216,19,222,14,32,61,0,14,32,59,216,147,222,14,32,61,0,14,32,59,216,179,222,14,32,60,0,60,0,60,0,14,32,174,254,14,32,60,0,60,0,60,0,14,32,173,254,14,32,60,0,60,0,60,0,14,32,92,252,14,32,47,0,112,6,60,0,60,0,60,0,14,32,246,253,14,32,47,0,14,32,51,6,72,6,68,6,14,32,60,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,59,216,6,222,14,32,61,0,14,32,59,216,134,222,14,32,61,0,14,32,59,216,166,222,14,32,60,0,60,0,60,0,14,32,176,254,14,32,60,0,60,0,60,0,14,32,175,254,14,32,60,0,14,32,145,6,14,32,60,0,60,0,60,0,14,32,141,251,14,32,60,0,60,0,60,0,14,32,140,251,14,32,60,0,14,32,146,6,14,32,60,0,14,32,147,6,14,32,60,0,14,32,148,6,14,32,60,0,14,32,149,6,14,32,60,0,14,32,150,6,14,32,60,0,14,32,151,6,14,32,60,0,14,32,152,6,14,32,60,0,60,0,60,0,14,32,139,251,14,32,60,0,60,0,60,0,14,32,138,251,14,32,60,0,14,32,153,6,14,32,60,0,14,32,239,6,14,32,60,0,14,32,91,7,14,32,60,0,14,32,107,7,14,32,60,0,14,32,108,7,14,32,60,0,14,32,113,7,14,32,60,0,14,32,170,8,14,32,60,0,14,32,178,8,14,32,60,0,14,32,185,8,14,32,60,0,14,32,51,6,14,32,60,0,60,0,60,0,14,32,59,216,14,222,14,32,61,0,14,32,59,216,46,222,14,32,61,0,14,32,59,216,78,222,14,32,61,0,14,32,59,216,110,222,14,32,61,0,14,32,59,216,142,222,14,32,61,0,14,32,59,216,174,222,14,32,60,0,60,0,60,0,14,32,179,254,14,32,60,0,60,0,60,0,14,32,173,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,93,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,174,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,92,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,175,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,176,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,97,253,14,32,47,0,14,32,69,6,44,6,14,32,60,0,60,0,60,0,14,32,96,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,99,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,49,253,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,180,254,14,32,60,0,60,0,60,0,14,32,52,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,53,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,54,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,231,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,232,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,178,254,14,32,60,0,60,0,60,0,14,32,94,253,14,32,47,0,14,32,44,6,73,6,14,32,60,0,60,0,60,0,14,32,168,253,14,32,47,0,14,32,46,6,73,6,14,32,60,0,60,0,60,0,14,32,198,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,42,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,95,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,98,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,23,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,24,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,177,254,14,32,60,0,60,0,60,0,14,32,28,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,29,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,30,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,14,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,31,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,251,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,252,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,52,6,14,32,60,0,60,0,60,0,14,32,59,216,20,222,14,32,61,0,14,32,59,216,52,222,14,32,61,0,14,32,59,216,84,222,14,32,61,0,14,32,59,216,116,222,14,32,61,0,14,32,59,216,148,222,14,32,61,0,14,32,59,216,180,222,14,32,60,0,60,0,60,0,14,32,183,254,14,32,60,0,60,0,60,0,14,32,45,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,46,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,104,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,47,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,48,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,107,253,14,32,47,0,14,32,69,6,46,6,14,32,60,0,60,0,60,0,14,32,109,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,50,253,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,184,254,14,32,60,0,60,0,60,0,14,32,55,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,56,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,57,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,233,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,234,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,182,254,14,32,60,0,60,0,60,0,14,32,37,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,105,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,38,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,103,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,170,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,39,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,41,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,40,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,106,253,14,32,47,0,14,32,69,6,46,6,14,32,60,0,60,0,60,0,14,32,108,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,25,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,26,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,181,254,14,32,60,0,60,0,60,0,14,32,9,253,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,10,253,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,11,253,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,13,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,12,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,253,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,254,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,154,6,14,32,60,0,14,32,155,6,14,32,60,0,14,32,156,6,14,32,60,0,14,32,250,6,14,32,60,0,14,32,92,7,14,32,60,0,14,32,109,7,14,32,60,0,14,32,112,7,14,32,60,0,14,32,125,7,14,32,60,0,14,32,126,7,14,32,60,0,14,32,53,6,14,32,60,0,60,0,60,0,14,32,59,216,17,222,14,32,61,0,14,32,59,216,49,222,14,32,61,0,14,32,59,216,81,222,14,32,61,0,14,32,59,216,113,222,14,32,61,0,14,32,59,216,145,222,14,32,61,0,14,32,59,216,177,222,14,32,60,0,60,0,60,0,14,32,187,254,14,32,60,0,60,0,60,0,14,32,177,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,101,253,14,32,47,0,14,32,45,6,45,6,14,32,60,0,60,0,60,0,14,32,178,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,179,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,197,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,188,254,14,32,60,0,60,0,60,0,14,32,186,254,14,32,60,0,60,0,60,0,14,32,100,253,14,32,47,0,14,32,45,6,45,6,14,32,60,0,60,0,60,0,14,32,169,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,43,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,102,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,33,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,34,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,185,254,14,32,60,0,60,0,60,0,14,32,32,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,15,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,245,253,14,32,47,0,14,32,68,6,57,6,69,6,14,32,60,0,60,0,60,0,14,32,249,253,14,32,47,0,14,32,68,6,73,6,14,32,60,0,60,0,60,0,14,32,250,253,14,32,47,0,14,32,68,6,73,6,39,0,32,0,39,0,39,6,68,6,68,6,71,6,39,0,32,0,39,0,57,6,68,6,74,6,71,6,39,0,32,0,39,0,72,6,51,6,68,6,69,6,14,32,60,0,60,0,60,0,14,32,240,253,14,32,47,0,14,32,68,6,210,6,14,32,60,0,60,0,60,0,14,32,33,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,5,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,6,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,54,6,14,32,60,0,60,0,60,0,14,32,59,216,25,222,14,32,61,0,14,32,59,216,57,222,14,32,61,0,14,32,59,216,89,222,14,32,61,0,14,32,59,216,121,222,14,32,61,0,14,32,59,216,153,222,14,32,61,0,14,32,59,216,185,222,14,32,60,0,60,0,60,0,14,32,191,254,14,32,60,0,60,0,60,0,14,32,180,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,181,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,182,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,112,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,183,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,192,254,14,32,60,0,60,0,60,0,14,32,190,254,14,32,60,0,60,0,60,0,14,32,110,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,171,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,111,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,44,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,35,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,36,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,189,254,14,32,60,0,60,0,60,0,14,32,34,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,35,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,36,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,16,253,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,37,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,7,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,8,253,14,32,47,0,14,32,74,6,14,32,60,0,14,32,157,6,14,32,60,0,14,32,175,8,14,32,60,0,14,32,158,6,14,32,60,0,14,32,251,6,14,32,60,0,14,32,55,6,14,32,60,0,60,0,60,0,14,32,59,216,8,222,14,32,61,0,14,32,59,216,104,222,14,32,61,0,14,32,59,216,136,222,14,32,61,0,14,32,59,216,168,222,14,32,60,0,60,0,60,0,14,32,195,254,14,32,60,0,60,0,60,0,14,32,184,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,51,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,114,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,115,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,196,254,14,32,60,0,60,0,60,0,14,32,58,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,194,254,14,32,60,0,60,0,60,0,14,32,113,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,116,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,17,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,18,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,193,254,14,32,60,0,60,0,60,0,14,32,38,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,39,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,245,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,246,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,56,6,14,32,60,0,60,0,60,0,14,32,59,216,26,222,14,32,61,0,14,32,59,216,122,222,14,32,61,0,14,32,59,216,154,222,14,32,61,0,14,32,59,216,186,222,14,32,60,0,60,0,60,0,14,32,199,254,14,32,60,0,60,0,60,0,14,32,185,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,200,254,14,32,60,0,60,0,60,0,14,32,59,253,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,198,254,14,32,60,0,60,0,60,0,14,32,197,254,14,32,60,0,60,0,60,0,14,32,40,252,14,32,47,0,14,32,69,6,14,32,60,0,14,32,159,6,14,32,60,0,14,32,163,8,14,32,60,0,14,32,139,8,14,32,60,0,14,32,140,8,14,32,60,0,14,32,57,6,14,32,60,0,60,0,60,0,14,32,59,216,15,222,14,32,61,0,14,32,59,216,47,222,14,32,61,0,14,32,59,216,79,222,14,32,61,0,14,32,59,216,111,222,14,32,61,0,14,32,59,216,143,222,14,32,61,0,14,32,59,216,175,222,14,32,60,0,60,0,60,0,14,32,203,254,14,32,60,0,60,0,60,0,14,32,186,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,196,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,187,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,119,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,204,254,14,32,60,0,60,0,60,0,14,32,202,254,14,32,60,0,60,0,60,0,14,32,117,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,118,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,120,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,182,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,19,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,20,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,201,254,14,32,60,0,60,0,60,0,14,32,41,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,247,253,14,32,47,0,14,32,68,6,74,6,71,6,14,32,60,0,60,0,60,0,14,32,42,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,247,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,248,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,58,6,14,32,60,0,60,0,60,0,14,32,59,216,27,222,14,32,61,0,14,32,59,216,59,222,14,32,61,0,14,32,59,216,91,222,14,32,61,0,14,32,59,216,123,222,14,32,61,0,14,32,59,216,155,222,14,32,61,0,14,32,59,216,187,222,14,32,60,0,60,0,60,0,14,32,207,254,14,32,60,0,60,0,60,0,14,32,188,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,189,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,208,254,14,32,60,0,60,0,60,0,14,32,206,254,14,32,60,0,60,0,60,0,14,32,121,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,123,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,122,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,21,253,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,22,253,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,205,254,14,32,60,0,60,0,60,0,14,32,43,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,44,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,249,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,250,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,160,6,14,32,60,0,14,32,195,8,14,32,60,0,14,32,252,6,14,32,60,0,14,32,93,7,14,32,60,0,14,32,94,7,14,32,60,0,14,32,95,7,14,32,60,0,14,32,179,8,14,32,60,0,14,32,65,6,14,32,60,0,60,0,60,0,14,32,59,216,16,222,14,32,61,0,14,32,59,216,48,222,14,32,61,0,14,32,59,216,112,222,14,32,61,0,14,32,59,216,144,222,14,32,61,0,14,32,59,216,176,222,14,32,60,0,60,0,60,0,14,32,211,254,14,32,60,0,60,0,60,0,14,32,190,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,191,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,192,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,125,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,193,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,212,254,14,32,60,0,60,0,60,0,14,32,210,254,14,32,60,0,60,0,60,0,14,32,124,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,193,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,124,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,125,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,209,254,14,32,60,0,60,0,60,0,14,32,45,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,46,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,47,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,48,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,49,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,50,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,161,6,14,32,60,0,60,0,60,0,14,32,59,216,30,222,14,32,61,0,14,32,59,216,126,222,14,32,60,0,14,32,162,6,14,32,60,0,14,32,187,8,14,32,60,0,14,32,163,6,14,32,60,0,14,32,164,6,14,32,60,0,60,0,60,0,14,32,108,251,14,32,60,0,60,0,60,0,14,32,109,251,14,32,60,0,60,0,60,0,14,32,107,251,14,32,60,0,60,0,60,0,14,32,106,251,14,32,60,0,14,32,164,8,14,32,60,0,14,32,165,6,14,32,60,0,14,32,166,6,14,32,60,0,60,0,60,0,14,32,112,251,14,32,60,0,60,0,60,0,14,32,113,251,14,32,60,0,60,0,60,0,14,32,111,251,14,32,60,0,60,0,60,0,14,32,110,251,14,32,60,0,14,32,96,7,14,32,60,0,14,32,97,7,14,32,60,0,14,32,111,6,14,32,60,0,60,0,60,0,14,32,59,216,31,222,14,32,61,0,14,32,59,216,95,222,14,32,60,0,14,32,66,6,14,32,60,0,60,0,60,0,14,32,59,216,18,222,14,32,61,0,14,32,59,216,50,222,14,32,61,0,14,32,59,216,82,222,14,32,61,0,14,32,59,216,114,222,14,32,61,0,14,32,59,216,146,222,14,32,61,0,14,32,59,216,178,222,14,32,60,0,60,0,60,0,14,32,215,254,14,32,60,0,60,0,60,0,14,32,194,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,195,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,180,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,216,254,14,32,60,0,60,0,60,0,14,32,214,254,14,32,60,0,60,0,60,0,14,32,126,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,127,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,178,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,126,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,127,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,213,254,14,32,60,0,60,0,60,0,14,32,51,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,241,253,14,32,47,0,14,32,68,6,210,6,14,32,60,0,60,0,60,0,14,32,52,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,53,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,54,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,167,6,14,32,60,0,14,32,188,8,14,32,60,0,14,32,168,6,14,32,60,0,14,32,196,8,14,32,60,0,14,32,165,8,14,32,60,0,14,32,181,8,14,32,60,0,14,32,67,6,14,32,60,0,60,0,60,0,14,32,59,216,10,222,14,32,61,0,14,32,59,216,42,222,14,32,61,0,14,32,59,216,106,222,14,32,60,0,60,0,60,0,14,32,219,254,14,32,60,0,60,0,60,0,14,32,196,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,197,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,198,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,199,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,200,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,195,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,220,254,14,32,60,0,60,0,60,0,14,32,235,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,236,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,218,254,14,32,60,0,60,0,60,0,14,32,128,252,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,129,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,130,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,187,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,183,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,131,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,132,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,217,254,14,32,60,0,60,0,60,0,14,32,55,252,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,56,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,57,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,58,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,59,252,14,32,47,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,60,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,61,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,62,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,169,6,14,32,60,0,60,0,60,0,14,32,144,251,14,32,60,0,60,0,60,0,14,32,145,251,14,32,60,0,60,0,60,0,14,32,143,251,14,32,60,0,60,0,60,0,14,32,142,251,14,32,60,0,14,32,170,6,14,32,60,0,14,32,171,6,14,32,60,0,14,32,172,6,14,32,60,0,14,32,127,7,14,32,60,0,14,32,173,6,14,32,60,0,60,0,60,0,14,32,213,251,14,32,60,0,60,0,60,0,14,32,214,251,14,32,60,0,60,0,60,0,14,32,212,251,14,32,60,0,60,0,60,0,14,32,211,251,14,32,60,0,14,32,174,6,14,32,60,0,14,32,180,8,14,32,60,0,14,32,175,6,14,32,60,0,60,0,60,0,14,32,148,251,14,32,60,0,60,0,60,0,14,32,149,251,14,32,60,0,60,0,60,0,14,32,147,251,14,32,60,0,60,0,60,0,14,32,146,251,14,32,60,0,14,32,176,8,14,32,60,0,14,32,200,8,14,32,60,0,14,32,176,6,14,32,60,0,14,32,177,6,14,32,60,0,60,0,60,0,14,32,156,251,14,32,60,0,60,0,60,0,14,32,157,251,14,32,60,0,60,0,60,0,14,32,155,251,14,32,60,0,60,0,60,0,14,32,154,251,14,32,60,0,14,32,178,6,14,32,60,0,14,32,179,6,14,32,60,0,60,0,60,0,14,32,152,251,14,32,60,0,60,0,60,0,14,32,153,251,14,32,60,0,60,0,60,0,14,32,151,251,14,32,60,0,60,0,60,0,14,32,150,251,14,32,60,0,14,32,180,6,14,32,60,0,14,32,98,7,14,32,60,0,14,32,59,6,14,32,60,0,14,32,141,8,14,32,60,0,14,32,60,6,14,32,60,0,14,32,99,7,14,32,60,0,14,32,100,7,14,32,60,0,14,32,194,8,14,32,60,0,14,32,68,6,14,32,60,0,60,0,60,0,14,32,59,216,11,222,14,32,61,0,14,32,59,216,43,222,14,32,61,0,14,32,59,216,75,222,14,32,61,0,14,32,59,216,139,222,14,32,61,0,14,32,59,216,171,222,14,32,60,0,60,0,60,0,14,32,223,254,14,32,60,0,60,0,60,0,14,32,201,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,131,253,14,32,47,0,14,32,44,6,44,6,14,32,60,0,60,0,60,0,14,32,186,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,202,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,181,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,203,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,134,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,204,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,136,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,205,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,224,254,14,32,60,0,60,0,60,0,14,32,237,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,222,254,14,32,60,0,60,0,60,0,14,32,246,254,14,32,47,0,14,32,34,6,14,32,60,0,60,0,60,0,14,32,248,254,14,32,47,0,14,32,35,6,14,32,60,0,60,0,60,0,14,32,250,254,14,32,47,0,14,32,37,6,14,32,60,0,60,0,60,0,14,32,252,254,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,132,253,14,32,47,0,14,32,44,6,44,6,14,32,60,0,60,0,60,0,14,32,188,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,172,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,128,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,130,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,129,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,133,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,133,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,135,253,14,32,47,0,14,32,69,6,45,6,14,32,60,0,60,0,60,0,14,32,173,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,134,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,135,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,221,254,14,32,60,0,60,0,60,0,14,32,245,254,14,32,47,0,14,32,34,6,14,32,60,0,60,0,60,0,14,32,247,254,14,32,47,0,14,32,35,6,14,32,60,0,60,0,60,0,14,32,249,254,14,32,47,0,14,32,37,6,14,32,60,0,60,0,60,0,14,32,251,254,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,63,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,64,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,65,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,66,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,67,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,68,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,181,6,14,32,60,0,14,32,182,6,14,32,60,0,14,32,183,6,14,32,60,0,14,32,184,6,14,32,60,0,14,32,106,7,14,32,60,0,14,32,166,8,14,32,60,0,14,32,199,8,14,32,60,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,59,216,12,222,14,32,61,0,14,32,59,216,44,222,14,32,61,0,14,32,59,216,108,222,14,32,61,0,14,32,59,216,140,222,14,32,61,0,14,32,59,216,172,222,14,32,60,0,60,0,60,0,14,32,227,254,14,32,60,0,60,0,60,0,14,32,206,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,140,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,146,253,14,32,47,0,14,32,44,6,46,6,14,32,60,0,60,0,60,0,14,32,141,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,207,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,137,253,14,32,47,0,14,32,45,6,44,6,14,32,60,0,60,0,60,0,14,32,138,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,208,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,142,253,14,32,47,0,14,32,46,6,44,6,14,32,60,0,60,0,60,0,14,32,143,253,14,32,47,0,14,32,46,6,69,6,14,32,60,0,60,0,60,0,14,32,209,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,228,254,14,32,60,0,60,0,60,0,14,32,226,254,14,32,60,0,60,0,60,0,14,32,136,252,14,32,47,0,14,32,39,6,14,32,60,0,60,0,60,0,14,32,192,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,139,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,185,253,14,32,47,0,14,32,46,6,74,6,14,32,60,0,60,0,60,0,14,32,137,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,177,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,225,254,14,32,60,0,60,0,60,0,14,32,69,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,70,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,244,253,14,32,47,0,14,32,45,6,69,6,47,6,14,32,60,0,60,0,60,0,14,32,71,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,72,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,73,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,74,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,14,32,254,6,14,32,60,0,14,32,101,7,14,32,60,0,14,32,102,7,14,32,60,0,14,32,167,8,14,32,60,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,59,216,13,222,14,32,61,0,14,32,59,216,45,222,14,32,61,0,14,32,59,216,77,222,14,32,61,0,14,32,59,216,109,222,14,32,61,0,14,32,59,216,141,222,14,32,61,0,14,32,59,216,173,222,14,32,60,0,60,0,60,0,14,32,231,254,14,32,60,0,60,0,60,0,14,32,210,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,184,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,152,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,211,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,149,253,14,32,47,0,14,32,45,6,69,6,14,32,60,0,60,0,60,0,14,32,212,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,213,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,214,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,232,254,14,32,60,0,60,0,60,0,14,32,238,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,239,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,230,254,14,32,60,0,60,0,60,0,14,32,189,253,14,32,47,0,14,32,44,6,45,6,14,32,60,0,60,0,60,0,14,32,151,253,14,32,47,0,14,32,44,6,69,6,14,32,60,0,60,0,60,0,14,32,153,253,14,32,47,0,14,32,44,6,73,6,14,32,60,0,60,0,60,0,14,32,199,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,150,253,14,32,47,0,14,32,45,6,73,6,14,32,60,0,60,0,60,0,14,32,179,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,138,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,139,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,140,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,155,253,14,32,47,0,14,32,69,6,73,6,14,32,60,0,60,0,60,0,14,32,154,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,141,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,142,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,143,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,229,254,14,32,60,0,60,0,60,0,14,32,75,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,76,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,77,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,78,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,79,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,80,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,186,6,14,32,60,0,60,0,60,0,14,32,59,216,29,222,14,32,61,0,14,32,59,216,93,222,14,32,60,0,60,0,60,0,14,32,159,251,14,32,60,0,60,0,60,0,14,32,158,251,14,32,60,0,14,32,189,8,14,32,60,0,14,32,187,6,14,32,60,0,60,0,60,0,14,32,162,251,14,32,60,0,60,0,60,0,14,32,163,251,14,32,60,0,60,0,60,0,14,32,161,251,14,32,60,0,60,0,60,0,14,32,160,251,14,32,60,0,14,32,188,6,14,32,60,0,14,32,189,6,14,32,60,0,14,32,185,6,14,32,60,0,14,32,103,7,14,32,60,0,14,32,104,7,14,32,60,0,14,32,105,7,14,32,60,0,14,32,137,8,14,32,60,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,59,216,36,222,14,32,61,0,14,32,59,216,100,222,14,32,61,0,14,32,59,216,132,222,14,32,60,0,60,0,60,0,14,32,235,254,14,32,60,0,60,0,60,0,14,32,217,252,14,32,47,0,112,6,60,0,60,0,60,0,14,32,215,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,216,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,147,253,14,32,47,0,14,32,69,6,44,6,14,32,60,0,60,0,60,0,14,32,148,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,236,254,14,32,60,0,60,0,60,0,14,32,234,254,14,32,60,0,60,0,60,0,14,32,233,254,14,32,60,0,60,0,60,0,14,32,81,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,82,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,83,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,84,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,190,6,14,32,60,0,60,0,60,0,14,32,172,251,14,32,60,0,60,0,60,0,14,32,173,251,14,32,60,0,60,0,60,0,14,32,171,251,14,32,60,0,60,0,60,0,14,32,170,251,14,32,60,0,14,32,193,6,14,32,60,0,60,0,60,0,14,32,168,251,14,32,60,0,60,0,60,0,14,32,169,251,14,32,60,0,60,0,60,0,14,32,167,251,14,32,60,0,60,0,60,0,14,32,166,251,14,32,60,0,14,32,195,6,14,32,60,0,14,32,255,6,14,32,60,0,14,32,213,6,14,32,60,0,60,0,60,0,14,32,165,251,14,32,47,0,3,216,171,222,60,0,60,0,60,0,14,32,164,251,14,32,47,0,3,216,171,222,60,0,14,32,72,6,14,32,60,0,60,0,60,0,14,32,229,6,14,32,61,0,14,32,132,8,14,32,60,0,60,0,60,0,14,32,59,216,5,222,14,32,61,0,14,32,59,216,133,222,14,32,61,0,14,32,59,216,165,222,14,32,60,0,60,0,60,0,14,32,238,254,14,32,60,0,60,0,60,0,14,32,237,254,14,32,60,0,60,0,60,0,14,32,248,253,14,32,47,0,14,32,51,6,68,6,69,6,14,32,60,0,14,32,196,6,14,32,60,0,14,32,197,6,14,32,60,0,60,0,60,0,14,32,225,251,14,32,60,0,60,0,60,0,14,32,224,251,14,32,60,0,14,32,198,6,14,32,60,0,60,0,60,0,14,32,218,251,14,32,60,0,60,0,60,0,14,32,217,251,14,32,60,0,14,32,199,6,14,32,60,0,60,0,60,0,14,32,216,251,14,32,60,0,60,0,60,0,14,32,215,251,14,32,60,0,14,32,200,6,14,32,60,0,60,0,60,0,14,32,220,251,14,32,60,0,60,0,60,0,14,32,219,251,14,32,60,0,14,32,201,6,14,32,60,0,60,0,60,0,14,32,227,251,14,32,60,0,60,0,60,0,14,32,226,251,14,32,60,0,14,32,202,6,14,32,60,0,14,32,203,6,14,32,60,0,60,0,60,0,14,32,223,251,14,32,60,0,60,0,60,0,14,32,222,251,14,32,60,0,14,32,177,8,14,32,60,0,14,32,207,6,14,32,60,0,14,32,120,7,14,32,60,0,14,32,121,7,14,32,60,0,14,32,171,8,14,32,60,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,232,251,14,32,60,0,60,0,60,0,14,32,233,251,14,32,60,0,60,0,60,0,14,32,240,254,14,32,60,0,60,0,60,0,14,32,144,252,14,32,47,0,112,6,60,0,60,0,60,0,14,32,239,254,14,32,60,0,60,0,60,0,14,32,93,252,14,32,47,0,112,6,60,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,230,6,14,32,61,0,14,32,133,8,14,32,61,0,14,32,134,8,14,32,60,0,60,0,60,0,14,32,59,216,9,222,14,32,61,0,14,32,59,216,41,222,14,32,61,0,14,32,59,216,73,222,14,32,61,0,14,32,59,216,105,222,14,32,61,0,14,32,59,216,137,222,14,32,61,0,14,32,59,216,169,222,14,32,60,0,60,0,60,0,14,32,243,254,14,32,60,0,60,0,60,0,14,32,218,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,219,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,220,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,221,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,157,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,222,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,244,254,14,32,60,0,60,0,60,0,14,32,240,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,241,252,14,32,47,0,14,32,71,6,14,32,60,0,60,0,60,0,14,32,242,254,14,32,60,0,60,0,60,0,14,32,175,253,14,32,47,0,14,32,44,6,74,6,14,32,60,0,60,0,60,0,14,32,174,253,14,32,47,0,14,32,45,6,74,6,14,32,60,0,60,0,60,0,14,32,145,252,14,32,47,0,14,32,49,6,14,32,60,0,60,0,60,0,14,32,146,252,14,32,47,0,14,32,50,6,14,32,60,0,60,0,60,0,14,32,147,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,156,253,14,32,47,0,14,32,69,6,69,6,14,32,60,0,60,0,60,0,14,32,176,253,14,32,47,0,14,32,69,6,74,6,14,32,60,0,60,0,60,0,14,32,148,252,14,32,47,0,14,32,70,6,14,32,60,0,60,0,60,0,14,32,149,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,150,252,14,32,47,0,14,32,74,6,14,32,60,0,60,0,60,0,14,32,241,254,14,32,60,0,60,0,60,0,14,32,85,252,14,32,47,0,14,32,44,6,14,32,60,0,60,0,60,0,14,32,86,252,14,32,47,0,14,32,45,6,14,32,60,0,60,0,60,0,14,32,87,252,14,32,47,0,14,32,46,6,14,32,60,0,60,0,60,0,14,32,88,252,14,32,47,0,14,32,69,6,14,32,60,0,60,0,60,0,14,32,89,252,14,32,47,0,14,32,73,6,14,32,60,0,60,0,60,0,14,32,90,252,14,32,47,0,14,32,74,6,14,32,60,0,14,32,204,6,14,32,60,0,60,0,60,0,14,32,201,8,14,32,60,0,60,0,60,0,14,32,254,251,14,32,60,0,60,0,60,0,14,32,255,251,14,32,60,0,60,0,60,0,14,32,253,251,14,32,60,0,60,0,60,0,14,32,252,251,14,32,60,0,14,32,205,6,14,32,60,0,14,32,206,6,14,32,60,0,14,32,208,6,14,32,60,0,60,0,60,0,14,32,230,251,14,32,60,0,60,0,60,0,14,32,231,251,14,32,60,0,60,0,60,0,14,32,229,251,14,32,60,0,60,0,60,0,14,32,228,251,14,32,60,0,14,32,209,6,14,32,60,0,14,32,61,6,14,32,60,0,14,32,62,6,14,32,60,0,14,32,63,6,14,32,60,0,14,32,32,6,14,32,60,0,14,32,117,7,14,32,60,0,14,32,118,7,14,32,60,0,14,32,119,7,14,32,60,0,14,32,186,8,14,32,60,0,14,32,210,6,14,32,60,0,60,0,60,0,14,32,175,251,14,32,60,0,60,0,60,0,14,32,177,251,14,32,47,0,3,216,171,222,60,0,60,0,60,0,14,32,174,251,14,32,60,0,60,0,60,0,14,32,176,251,14,32,47,0,3,216,171,222,60,0,14,32,122,7,14,32,60,0,14,32,123,7,14,32,60,0,14,32,142,8,14,32,60,0,14,32,16,7,14,32,60,0,14,32,18,7,14,32,60,0,60,0,14,32,45,7,14,32,60,0,14,32,19,7,14,32,60,0,60,0,14,32,20,7,14,32,60,0,60,0,14,32,46,7,14,32,60,0,14,32,22,7,14,32,60,0,14,32,21,7,14,32,60,0,60,0,14,32,47,7,14,32,60,0,14,32,23,7,14,32,60,0,14,32,24,7,14,32,60,0,14,32,25,7,14,32,60,0,14,32,77,7,14,32,60,0,14,32,26,7,14,32,60,0,14,32,27,7,14,32,60,0,60,0,14,32,28,7,14,32,60,0,14,32,29,7,14,32,60,0,14,32,30,7,14,32,60,0,14,32,31,7,14,32,60,0,14,32,78,7,14,32,60,0,14,32,32,7,14,32,60,0,14,32,33,7,14,32,60,0,14,32,34,7,14,32,60,0,14,32,35,7,14,32,60,0,60,0,60,0,14,32,36,7,14,32,60,0,14,32,37,7,14,32,60,0,14,32,38,7,14,32,60,0,60,0,14,32,39,7,14,32,60,0,14,32,79,7,14,32,60,0,14,32,40,7,14,32,60,0,14,32,41,7,14,32,60,0,14,32,42,7,14,32,60,0,14,32,43,7,14,32,60,0,14,32,44,7,14,32,60,0,14,32,96,8,14,32,60,0,14,32,97,8,14,32,60,0,14,32,98,8,14,32,60,0,14,32,99,8,14,32,60,0,14,32,100,8,14,32,60,0,14,32,101,8,14,32,60,0,14,32,102,8,14,32,60,0,14,32,103,8,14,32,60,0,14,32,104,8,14,32,60,0,14,32,105,8,14,32,60,0,14,32,106,8,14,32,60,0,14,32,64,8,14,32,60,0,14,32,65,8,14,32,60,0,14,32,66,8,14,32,60,0,14,32,67,8,14,32,60,0,14,32,68,8,14,32,60,0,14,32,69,8,14,32,60,0,14,32,70,8,14,32,60,0,14,32,71,8,14,32,60,0,14,32,72,8,14,32,60,0,14,32,73,8,14,32,60,0,14,32,74,8,14,32,60,0,14,32,75,8,14,32,60,0,14,32,76,8,14,32,60,0,14,32,77,8,14,32,60,0,14,32,78,8,14,32,60,0,14,32,79,8,14,32,60,0,14,32,80,8,14,32,60,0,14,32,81,8,14,32,60,0,14,32,82,8,14,32,60,0,14,32,83,8,14,32,60,0,14,32,84,8,14,32,60,0,14,32,85,8,14,32,60,0,14,32,86,8,14,32,60,0,14,32,87,8,14,32,60,0,14,32,88,8,14,32,60,0,14,32,128,7,14,32,60,0,14,32,153,7,14,32,60,0,14,32,154,7,14,32,60,0,14,32,129,7,14,32,60,0,14,32,130,7,14,32,60,0,14,32,131,7,14,32,60,0,14,32,156,7,14,32,60,0,14,32,132,7,14,32,60,0,14,32,133,7,14,32,60,0,14,32,134,7,14,32,60,0,14,32,135,7,14,32,60,0,14,32,162,7,14,32,60,0,14,32,163,7,14,32,60,0,14,32,136,7,14,32,60,0,14,32,165,7,14,32,60,0,14,32,137,7,14,32,60,0,14,32,138,7,14,32,60,0,14,32,139,7,14,32,60,0,14,32,155,7,14,32,60,0,14,32,140,7,14,32,60,0,14,32,152,7,14,32,60,0,14,32,160,7,14,32,60,0,14,32,161,7,14,32,60,0,14,32,141,7,14,32,60,0,14,32,142,7,14,32,60,0,14,32,164,7,14,32,60,0,14,32,143,7,14,32,60,0,14,32,144,7,14,32,60,0,14,32,157,7,14,32,60,0,14,32,158,7,14,32,60,0,14,32,159,7,14,32,60,0,14,32,145,7,14,32,60,0,14,32,146,7,14,32,60,0,14,32,147,7,14,32,60,0,14,32,148,7,14,32,60,0,14,32,149,7,14,32,60,0,14,32,150,7,14,32,60,0,14,32,151,7,14,32,60,0,14,32,177,7,14,32,60,0,166,7,60,0,167,7,60,0,168,7,60,0,169,7,60,0,170,7,60,0,171,7,60,0,172,7,60,0,173,7,60,0,174,7,60,0,175,7,60,0,176,7,60,0,14,32,202,7,14,32,60,0,14,32,203,7,14,32,60,0,14,32,204,7,14,32,60,0,14,32,205,7,14,32,60,0,14,32,206,7,14,32,60,0,14,32,207,7,14,32,60,0,14,32,208,7,14,32,60,0,14,32,209,7,14,32,60,0,14,32,210,7,14,32,60,0,14,32,211,7,14,32,60,0,14,32,212,7,14,32,60,0,14,32,213,7,14,32,60,0,14,32,214,7,14,32,60,0,60,0,14,32,232,7,14,32,60,0,14,32,215,7,14,32,60,0,60,0,14,32,233,7,14,32,60,0,14,32,216,7,14,32,60,0,14,32,217,7,14,32,60,0,60,0,14,32,234,7,14,32,60,0,14,32,218,7,14,32,60,0,14,32,219,7,14,32,60,0,14,32,220,7,14,32,60,0,14,32,221,7,14,32,60,0,14,32,222,7,14,32,60,0,14,32,223,7,14,32,60,0,14,32,224,7,14,32,60,0,14,32,225,7,14,32,60,0,14,32,226,7,14,32,60,0,14,32,227,7,14,32,60,0,14,32,228,7,14,32,60,0,14,32,229,7,14,32,60,0,14,32,230,7,14,32,60,0,14,32,231,7,14,32,60,0,14,32,244,7,14,32,60,0,14,32,245,7,14,32,60,0,48,45,60,0,49,45,60,0,50,45,60,0,51,45,60,0,52,45,60,0,53,45,60,0,54,45,60,0,55,45,60,0,56,45,60,0,57,45,60,0,58,45,60,0,59,45,60,0,102,45,60,0,60,45,60,0,61,45,60,0,62,45,60,0,63,45,60,0,64,45,60,0,65,45,60,0,66,45,60,0,67,45,60,0,68,45,60,0,69,45,60,0,70,45,60,0,71,45,60,0,72,45,60,0,73,45,60,0,74,45,60,0,75,45,60,0,76,45,60,0,77,45,60,0,78,45,60,0,79,45,60,0,80,45,60,0,81,45,60,0,82,45,60,0,83,45,60,0,103,45,60,0,84,45,60,0,85,45,60,0,86,45,60,0,87,45,60,0,88,45,60,0,89,45,60,0,90,45,60,0,91,45,60,0,92,45,60,0,93,45,60,0,94,45,60,0,95,45,60,0,96,45,60,0,97,45,60,0,98,45,60,0,99,45,60,0,100,45,60,0,101,45,60,0,111,45,60,0,0,18,60,0,1,18,60,0,2,18,60,0,3,18,60,0,4,18,60,0,5,18,60,0,6,18,60,0,7,18,60,0,8,18,60,0,9,18,60,0,10,18,60,0,11,18,60,0,12,18,60,0,13,18,60,0,14,18,60,0,15,18,60,0,128,45,60,0,16,18,60,0,17,18,60,0,18,18,60,0,19,18,60,0,20,18,60,0,21,18,60,0,22,18,60,0,23,18,60,0,24,18,60,0,25,18,60,0,26,18,60,0,27,18,60,0,28,18,60,0,29,18,60,0,30,18,60,0,31,18,60,0,128,19,60,0,57,216,237,223,60,0,129,19,60,0,57,216,238,223,60,0,130,19,60,0,131,19,60,0,129,45,60,0,32,18,60,0,33,18,60,0,34,18,60,0,35,18,60,0,36,18,60,0,37,18,60,0,38,18,60,0,39,18,60,0,40,18,60,0,41,18,60,0,42,18,60,0,43,18,60,0,44,18,60,0,45,18,60,0,46,18,60,0,47,18,60,0,130,45,60,0,48,18,60,0,49,18,60,0,50,18,60,0,51,18,60,0,52,18,60,0,53,18,60,0,54,18,60,0,55,18,60,0,131,45,60,0,1,171,60,0,2,171,60,0,3,171,60,0,4,171,60,0,5,171,60,0,6,171,60,0,56,18,60,0,57,18,60,0,58,18,60,0,59,18,60,0,60,18,60,0,61,18,60,0,62,18,60,0,63,18,60,0,132,45,60,0,64,18,60,0,65,18,60,0,66,18,60,0,67,18,60,0,68,18,60,0,69,18,60,0,70,18,60,0,71,18,60,0,72,18,60,0,57,216,240,223,60,0,74,18,60,0,75,18,60,0,57,216,241,223,60,0,76,18,60,0,57,216,242,223,60,0,77,18,60,0,80,18,60,0,81,18,60,0,82,18,60,0,83,18,60,0,84,18,60,0,85,18,60,0,86,18,60,0,88,18,60,0,90,18,60,0,91,18,60,0,92,18,60,0,93,18,60,0,96,18,60,0,97,18,60,0,98,18,60,0,99,18,60,0,100,18,60,0,101,18,60,0,102,18,60,0,103,18,60,0,132,19,60,0,57,216,243,223,60,0,133,19,60,0,57,216,244,223,60,0,134,19,60,0,135,19,60,0,133,45,60,0,104,18,60,0,105,18,60,0,106,18,60,0,107,18,60,0,108,18,60,0,109,18,60,0,110,18,60,0,111,18,60,0,112,18,60,0,113,18,60,0,114,18,60,0,115,18,60,0,116,18,60,0,117,18,60,0,118,18,60,0,119,18,60,0,134,45,60,0,120,18,60,0,121,18,60,0,122,18,60,0,123,18,60,0,124,18,60,0,125,18,60,0,126,18,60,0,127,18,60,0,135,45,60,0,128,18,60,0,129,18,60,0,130,18,60,0,131,18,60,0,132,18,60,0,133,18,60,0,134,18,60,0,135,18,60,0,136,18,60,0,138,18,60,0,139,18,60,0,140,18,60,0,141,18,60,0,144,18,60,0,145,18,60,0,146,18,60,0,147,18,60,0,148,18,60,0,149,18,60,0,150,18,60,0,151,18,60,0,136,45,60,0,152,18,60,0,153,18,60,0,154,18,60,0,155,18,60,0,156,18,60,0,157,18,60,0,158,18,60,0,159,18,60,0,137,45,60,0,160,18,60,0,161,18,60,0,162,18,60,0,163,18,60,0,164,18,60,0,165,18,60,0,166,18,60,0,167,18,60,0,138,45,60,0,168,18,60,0,169,18,60,0,170,18,60,0,171,18,60,0,172,18,60,0,173,18,60,0,174,18,60,0,175,18,60,0,176,18,60,0,57,216,245,223,60,0,178,18,60,0,179,18,60,0,57,216,246,223,60,0,180,18,60,0,57,216,247,223,60,0,181,18,60,0,184,18,60,0,185,18,60,0,186,18,60,0,187,18,60,0,188,18,60,0,189,18,60,0,190,18,60,0,57,216,232,223,60,0,192,18,60,0,57,216,233,223,60,0,194,18,60,0,195,18,60,0,57,216,234,223,60,0,196,18,60,0,57,216,235,223,60,0,197,18,60,0,200,18,60,0,201,18,60,0,202,18,60,0,203,18,60,0,204,18,60,0,205,18,60,0,206,18,60,0,207,18,60,0,208,18,60,0,209,18,60,0,210,18,60,0,211,18,60,0,212,18,60,0,213,18,60,0,214,18,60,0,216,18,60,0,217,18,60,0,218,18,60,0,219,18,60,0,220,18,60,0,221,18,60,0,222,18,60,0,223,18,60,0,139,45,60,0,17,171,60,0,18,171,60,0,19,171,60,0,20,171,60,0,21,171,60,0,22,171,60,0,224,18,60,0,225,18,60,0,226,18,60,0,227,18,60,0,228,18,60,0,229,18,60,0,230,18,60,0,231,18,60,0,232,18,60,0,233,18,60,0,234,18,60,0,235,18,60,0,236,18,60,0,237,18,60,0,238,18,60,0,239,18,60,0,240,18,60,0,241,18,60,0,242,18,60,0,243,18,60,0,244,18,60,0,245,18,60,0,246,18,60,0,247,18,60,0,140,45,60,0,9,171,60,0,10,171,60,0,11,171,60,0,12,171,60,0,13,171,60,0,14,171,60,0,248,18,60,0,249,18,60,0,250,18,60,0,251,18,60,0,252,18,60,0,253,18,60,0,254,18,60,0,255,18,60,0,141,45,60,0,0,19,60,0,1,19,60,0,2,19,60,0,3,19,60,0,4,19,60,0,5,19,60,0,6,19,60,0,7,19,60,0,142,45,60,0,8,19,60,0,9,19,60,0,10,19,60,0,11,19,60,0,12,19,60,0,13,19,60,0,14,19,60,0,15,19,60,0,16,19,60,0,57,216,248,223,60,0,18,19,60,0,19,19,60,0,57,216,249,223,60,0,20,19,60,0,57,216,250,223,60,0,21,19,60,0,24,19,60,0,25,19,60,0,26,19,60,0,27,19,60,0,28,19,60,0,29,19,60,0,30,19,60,0,31,19,60,0,147,45,60,0,148,45,60,0,149,45,60,0,150,45,60,0,32,19,60,0,33,19,60,0,34,19,60,0,35,19,60,0,36,19,60,0,37,19,60,0,38,19,60,0,39,19,60,0,143,45,60,0,40,19,60,0,41,19,60,0,42,19,60,0,43,19,60,0,44,19,60,0,45,19,60,0,46,19,60,0,47,19,60,0,144,45,60,0,32,171,60,0,33,171,60,0,34,171,60,0,35,171,60,0,36,171,60,0,37,171,60,0,38,171,60,0,48,19,60,0,49,19,60,0,50,19,60,0,51,19,60,0,52,19,60,0,53,19,60,0,54,19,60,0,55,19,60,0,145,45,60,0,56,19,60,0,57,19,60,0,58,19,60,0,59,19,60,0,60,19,60,0,61,19,60,0,62,19,60,0,63,19,60,0,40,171,60,0,41,171,60,0,42,171,60,0,43,171,60,0,44,171,60,0,45,171,60,0,46,171,60,0,64,19,60,0,65,19,60,0,66,19,60,0,67,19,60,0,68,19,60,0,69,19,60,0,70,19,60,0,71,19,60,0,72,19,60,0,73,19,60,0,74,19,60,0,75,19,60,0,76,19,60,0,77,19,60,0,78,19,60,0,79,19,60,0,136,19,60,0,57,216,251,223,60,0,137,19,60,0,57,216,252,223,60,0,138,19,60,0,139,19,60,0,80,19,60,0,81,19,60,0,82,19,60,0,83,19,60,0,84,19,60,0,85,19,60,0,86,19,60,0,87,19,60,0,140,19,60,0,57,216,253,223,60,0,141,19,60,0,57,216,254,223,60,0,142,19,60,0,143,19,60,0,146,45,60,0,88,19,60,0,89,19,60,0,90,19,60,0,160,45,60,0,161,45,60,0,162,45,60,0,163,45,60,0,164,45,60,0,165,45,60,0,166,45,60,0,168,45,60,0,169,45,60,0,170,45,60,0,171,45,60,0,172,45,60,0,173,45,60,0,174,45,60,0,176,45,60,0,177,45,60,0,178,45,60,0,179,45,60,0,180,45,60,0,181,45,60,0,182,45,60,0,184,45,60,0,185,45,60,0,186,45,60,0,187,45,60,0,188,45,60,0,189,45,60,0,190,45,60,0,192,45,60,0,193,45,60,0,194,45,60,0,195,45,60,0,196,45,60,0,197,45,60,0,198,45,60,0,200,45,60,0,201,45,60,0,202,45,60,0,203,45,60,0,204,45,60,0,205,45,60,0,206,45,60,0,57,216,224,223,60,0,208,45,60,0,57,216,225,223,60,0,209,45,60,0,57,216,226,223,60,0,210,45,60,0,57,216,227,223,60,0,211,45,60,0,57,216,228,223,60,0,212,45,60,0,57,216,229,223,60,0,213,45,60,0,57,216,230,223,60,0,214,45,60,0,216,45,60,0,217,45,60,0,218,45,60,0,219,45,60,0,220,45,60,0,221,45,60,0,222,45,60,0,80,9,60,0,253,168,60,0,114,9,60,0,4,9,60,0,5,9,60,0,6,9,60,0,115,9,60,0,116,9,60,0,117,9,60,0,118,9,60,0,119,9,60,0,7,9,60,0,8,9,60,0,9,9,60,0,10,9,60,0,11,9,60,0,96,9,60,0,12,9,60,0,97,9,60,0,13,9,60,0,14,9,60,0,15,9,60,0,16,9,60,0,254,168,60,0,17,9,60,0,18,9,60,0,19,9,60,0,20,9,60,0,21,9,60,0,22,9,60,0,23,9,60,0,123,9,60,0,24,9,60,0,25,9,60,0,26,9,60,0,27,9,60,0,28,9,60,0,121,9,60,0,124,9,60,0,29,9,60,0,30,9,60,0,31,9,60,0,32,9,60,0,120,9,60,0,33,9,60,0,126,9,60,0,34,9,60,0,35,9,60,0,36,9,60,0,37,9,60,0,38,9,60,0,39,9,60,0,40,9,60,0,42,9,60,0,43,9,60,0,44,9,60,0,127,9,60,0,45,9,60,0,46,9,60,0,47,9,60,0,122,9,60,0,48,9,60,0,50,9,60,0,51,9,60,0,53,9,60,0,54,9,60,0,55,9,60,0,56,9,60,0,57,9,60,0,61,9,60,0,125,9,60,0,233,28,60,0,60,0,60,0,234,28,61,0,235,28,61,0,236,28,61,0,238,28,61,0,239,28,61,0,240,28,61,0,241,28,61,0,250,28,60,0,245,28,60,0,246,28,60,0,242,168,60,0,60,0,60,0,243,168,61,0,244,168,61,0,245,168,61,0,246,168,61,0,247,168,60,0,251,168,60,0,62,9,60,0,58,9,60,0,59,9,60,0,79,9,60,0,86,9,60,0,87,9,60,0,63,9,60,0,64,9,60,0,65,9,60,0,66,9,60,0,67,9,60,0,68,9,60,0,98,9,60,0,99,9,60,0,69,9,60,0,85,9,60,0,70,9,60,0,71,9,60,0,78,9,60,0,72,9,60,0,255,168,60,0,73,9,60,0,74,9,60,0,75,9,60,0,76,9,60,0,77,9,60,0,128,9,60,0,133,9,60,0,134,9,60,0,135,9,60,0,136,9,60,0,137,9,60,0,138,9,60,0,139,9,60,0,224,9,60,0,140,9,60,0,225,9,60,0,143,9,60,0,144,9,60,0,147,9,60,0,148,9,60,0,149,9,60,0,150,9,60,0,151,9,60,0,152,9,60,0,153,9,60,0,154,9,60,0,155,9,60,0,156,9,60,0,157,9,60,0,158,9,60,0,159,9,60,0,160,9,60,0,161,9,60,0,162,9,60,0,163,9,60,0,164,9,60,0,60,0,60,0,206,9,47,0,205,9,60,0,165,9,60,0,166,9,60,0,167,9,60,0,168,9,60,0,170,9,60,0,171,9,60,0,172,9,60,0,173,9,60,0,174,9,60,0,175,9,60,0,176,9,60,0,240,9,60,0,178,9,60,0,241,9,60,0,182,9,60,0,183,9,60,0,184,9,60,0,185,9,60,0,189,9,60,0,190,9,60,0,191,9,60,0,192,9,60,0,193,9,60,0,194,9,60,0,195,9,60,0,196,9,60,0,226,9,60,0,227,9,60,0,199,9,60,0,200,9,60,0,203,9,60,0,204,9,60,0,205,9,60,0,215,9,60,0,252,9,60,0,116,10,60,0,115,10,60,0,9,10,60,0,10,10,60,0,19,10,60,0,5,10,60,0,6,10,60,0,16,10,60,0,20,10,60,0,114,10,60,0,7,10,60,0,8,10,60,0,15,10,60,0,56,10,60,0,57,10,60,0,81,10,60,0,21,10,60,0,22,10,60,0,23,10,60,0,24,10,60,0,25,10,60,0,26,10,60,0,27,10,60,0,28,10,60,0,29,10,60,0,30,10,60,0,31,10,60,0,32,10,60,0,33,10,60,0,34,10,60,0,35,10,60,0,36,10,60,0,37,10,60,0,38,10,60,0,39,10,60,0,40,10,60,0,42,10,60,0,43,10,60,0,44,10,60,0,45,10,60,0,46,10,60,0,47,10,60,0,117,10,60,0,48,10,60,0,50,10,60,0,53,10,60,0,92,10,60,0,62,10,60,0,63,10,60,0,64,10,60,0,65,10,60,0,66,10,60,0,71,10,60,0,72,10,60,0,75,10,60,0,76,10,60,0,77,10,60,0,208,10,60,0,133,10,60,0,134,10,60,0,135,10,60,0,136,10,60,0,137,10,60,0,138,10,60,0,139,10,60,0,224,10,60,0,140,10,60,0,225,10,60,0,141,10,60,0,143,10,60,0,144,10,60,0,145,10,60,0,147,10,60,0,148,10,60,0,149,10,60,0,150,10,60,0,151,10,60,0,152,10,60,0,153,10,60,0,154,10,60,0,155,10,60,0,156,10,60,0,249,10,60,0,157,10,60,0,158,10,60,0,159,10,60,0,160,10,60,0,161,10,60,0,162,10,60,0,163,10,60,0,164,10,60,0,165,10,60,0,166,10,60,0,167,10,60,0,168,10,60,0,170,10,60,0,171,10,60,0,172,10,60,0,173,10,60,0,174,10,60,0,175,10,60,0,176,10,60,0,178,10,60,0,181,10,60,0,182,10,60,0,183,10,60,0,184,10,60,0,185,10,60,0,179,10,60,0,189,10,60,0,190,10,60,0,191,10,60,0,192,10,60,0,193,10,60,0,194,10,60,0,195,10,60,0,196,10,60,0,226,10,60,0,227,10,60,0,197,10,60,0,199,10,60,0,200,10,60,0,201,10,60,0,203,10,60,0,204,10,60,0,205,10,60,0,5,11,60,0,6,11,60,0,7,11,60,0,8,11,60,0,9,11,60,0,10,11,60,0,11,11,60,0,96,11,60,0,12,11,60,0,97,11,60,0,15,11,60,0,16,11,60,0,19,11,60,0,20,11,60,0,21,11,60,0,22,11,60,0,23,11,60,0,24,11,60,0,25,11,60,0,26,11,60,0,27,11,60,0,28,11,60,0,29,11,60,0,30,11,60,0,31,11,60,0,32,11,60,0,33,11,60,0,34,11,60,0,35,11,60,0,36,11,60,0,37,11,60,0,38,11,60,0,39,11,60,0,40,11,60,0,42,11,60,0,43,11,60,0,44,11,60,0,45,11,60,0,46,11,60,0,47,11,60,0,95,11,60,0,48,11,60,0,50,11,60,0,51,11,60,0,53,11,60,0,113,11,60,0,54,11,60,0,55,11,60,0,56,11,60,0,57,11,60,0,61,11,60,0,62,11,60,0,63,11,60,0,64,11,60,0,65,11,60,0,66,11,60,0,67,11,60,0,68,11,60,0,98,11,60,0,99,11,60,0,71,11,60,0,72,11,60,0,75,11,60,0,76,11,60,0,77,11,60,0,86,11,60,0,87,11,60,0,208,11,60,0,133,11,60,0,134,11,60,0,135,11,60,0,136,11,60,0,137,11,60,0,138,11,60,0,142,11,60,0,143,11,60,0,144,11,60,0,146,11,60,0,147,11,60,0,148,11,60,0,131,11,60,0,149,11,60,0,153,11,60,0,154,11,60,0,158,11,60,0,159,11,60,0,163,11,60,0,164,11,60,0,168,11,60,0,170,11,60,0,174,11,60,0,175,11,60,0,176,11,60,0,178,11,60,0,181,11,60,0,180,11,60,0,179,11,60,0,177,11,60,0,169,11,60,0,156,11,60,0,182,11,60,0,183,11,60,0,184,11,60,0,185,11,60,0,190,11,60,0,191,11,60,0,192,11,60,0,193,11,60,0,194,11,60,0,198,11,60,0,199,11,60,0,200,11,60,0,202,11,60,0,203,11,60,0,204,11,60,0,205,11,60,0,215,11,60,0,5,12,60,0,6,12,60,0,7,12,60,0,8,12,60,0,9,12,60,0,10,12,60,0,11,12,60,0,96,12,60,0,12,12,60,0,97,12,60,0,14,12,60,0,15,12,60,0,16,12,60,0,18,12,60,0,19,12,60,0,20,12,60,0,21,12,60,0,22,12,60,0,23,12,60,0,24,12,60,0,25,12,60,0,26,12,60,0,88,12,60,0,27,12,60,0,28,12,60,0,89,12,60,0,29,12,60,0,30,12,60,0,31,12,60,0,32,12,60,0,33,12,60,0,34,12,60,0,35,12,60,0,36,12,60,0,37,12,60,0,38,12,60,0,39,12,60,0,40,12,60,0,60,0,60,0,93,12,47,0,77,12,60,0,42,12,60,0,43,12,60,0,44,12,60,0,45,12,60,0,46,12,60,0,47,12,60,0,48,12,60,0,49,12,60,0,50,12,60,0,53,12,60,0,54,12,60,0,55,12,60,0,56,12,60,0,57,12,60,0,51,12,60,0,52,12,60,0,90,12,60,0,61,12,60,0,62,12,60,0,63,12,60,0,64,12,60,0,65,12,60,0,66,12,60,0,67,12,60,0,68,12,60,0,98,12,60,0,99,12,60,0,70,12,60,0,71,12,60,0,72,12,60,0,74,12,60,0,75,12,60,0,76,12,60,0,77,12,60,0,85,12,60,0,86,12,60,0,133,12,60,0,134,12,60,0,135,12,60,0,136,12,60,0,137,12,60,0,138,12,60,0,139,12,60,0,224,12,60,0,140,12,60,0,225,12,60,0,142,12,60,0,143,12,60,0,144,12,60,0,146,12,60,0,147,12,60,0,148,12,60,0,149,12,60,0,150,12,60,0,151,12,60,0,152,12,60,0,153,12,60,0,154,12,60,0,155,12,60,0,156,12,60,0,157,12,60,0,158,12,60,0,159,12,60,0,160,12,60,0,161,12,60,0,162,12,60,0,163,12,60,0,164,12,60,0,165,12,60,0,166,12,60,0,167,12,60,0,168,12,60,0,60,0,60,0,221,12,47,0,205,12,60,0,170,12,60,0,171,12,60,0,172,12,60,0,173,12,60,0,174,12,60,0,175,12,60,0,176,12,60,0,177,12,60,0,178,12,60,0,181,12,60,0,182,12,60,0,183,12,60,0,184,12,60,0,185,12,60,0,179,12,60,0,222,12,60,0,189,12,60,0,241,12,60,0,242,12,60,0,128,12,60,0,190,12,60,0,191,12,60,0,192,12,60,0,193,12,60,0,194,12,60,0,195,12,60,0,196,12,60,0,226,12,60,0,227,12,60,0,198,12,60,0,199,12,60,0,200,12,60,0,202,12,60,0,203,12,61,0,203,12,60,0,204,12,60,0,205,12,60,0,213,12,60,0,214,12,60,0,5,13,60,0,6,13,60,0,7,13,60,0,8,13,60,0,95,13,60,0,9,13,60,0,10,13,60,0,11,13,60,0,96,13,60,0,12,13,60,0,97,13,60,0,14,13,60,0,15,13,60,0,16,13,60,0,18,13,60,0,19,13,60,0,20,13,60,0,21,13,60,0,60,0,60,0,127,13,47,0,77,13,60,0,22,13,60,0,23,13,60,0,24,13,60,0,25,13,60,0,26,13,60,0,27,13,60,0,28,13,60,0,29,13,60,0,30,13,60,0,31,13,60,0,32,13,60,0,33,13,60,0,34,13,60,0,35,13,60,0,60,0,60,0,122,13,47,0,77,13,60,0,36,13,60,0,37,13,60,0,38,13,60,0,39,13,60,0,40,13,60,0,60,0,60,0,123,13,47,0,77,13,60,0,41,13,60,0,42,13,60,0,43,13,60,0,44,13,60,0,45,13,60,0,46,13,60,0,60,0,60,0,84,13,47,0,77,13,60,0,47,13,60,0,60,0,60,0,85,13,47,0,77,13,60,0,48,13,60,0,60,0,60,0,78,13,47,0,77,13,61,0,124,13,47,0,77,13,60,0,50,13,60,0,60,0,60,0,125,13,47,0,77,13,60,0,53,13,60,0,54,13,60,0,55,13,60,0,56,13,60,0,57,13,60,0,51,13,60,0,60,0,60,0,126,13,47,0,77,13,60,0,52,13,60,0,60,0,60,0,86,13,47,0,77,13,60,0,49,13,60,0,58,13,60,0,61,13,60,0,4,13,60,0,62,13,60,0,63,13,60,0,64,13,60,0,65,13,60,0,66,13,60,0,67,13,60,0,68,13,60,0,98,13,60,0,99,13,60,0,70,13,60,0,71,13,60,0,72,13,60,0,74,13,60,0,75,13,60,0,76,13,60,0,87,13,60,0,77,13,60,0,60,0,60,0,59,13,61,0,60,13,60,0,133,13,60,0,134,13,60,0,135,13,60,0,136,13,60,0,137,13,60,0,138,13,60,0,139,13,60,0,140,13,60,0,141,13,60,0,142,13,60,0,143,13,60,0,144,13,60,0,145,13,60,0,146,13,60,0,147,13,60,0,148,13,60,0,149,13,60,0,150,13,60,0,154,13,60,0,155,13,60,0,156,13,60,0,157,13,60,0,158,13,60,0,159,13,60,0,160,13,60,0,161,13,60,0,162,13,60,0,163,13,60,0,164,13,60,0,165,13,60,0,166,13,60,0,167,13,60,0,168,13,60,0,169,13,60,0,170,13,60,0,171,13,60,0,172,13,60,0,173,13,60,0,174,13,60,0,175,13,60,0,176,13,60,0,177,13,60,0,179,13,60,0,180,13,60,0,181,13,60,0,182,13,60,0,183,13,60,0,184,13,60,0,185,13,60,0,186,13,60,0,187,13,60,0,189,13,60,0,192,13,60,0,193,13,60,0,194,13,60,0,195,13,60,0,196,13,60,0,197,13,60,0,198,13,60,0,207,13,60,0,208,13,60,0,209,13,60,0,210,13,60,0,211,13,60,0,212,13,60,0,214,13,60,0,216,13,60,0,242,13,60,0,223,13,60,0,243,13,60,0,217,13,60,0,218,13,60,0,219,13,60,0,220,13,60,0,221,13,61,0,221,13,60,0,222,13,60,0,202,13,60,0,242,170,60,0,192,171,60,0,193,171,60,0,194,171,60,0,195,171,60,0,196,171,60,0,197,171,60,0,198,171,60,0,199,171,60,0,200,171,60,0,201,171,60,0,202,171,60,0,203,171,60,0,204,171,60,0,205,171,60,0,206,171,60,0,207,171,60,0,208,171,60,0,209,171,60,0,210,171,60,0,211,171,60,0,212,171,60,0,213,171,60,0,214,171,60,0,215,171,60,0,216,171,60,0,217,171,60,0,218,171,60,0,224,170,60,0,225,170,60,0,226,170,60,0,227,170,60,0,228,170,60,0,229,170,60,0,230,170,60,0,231,170,60,0,232,170,60,0,233,170,60,0,234,170,60,0,227,171,60,0,228,171,60,0,229,171,60,0,230,171,60,0,231,171,60,0,232,171,60,0,233,171,60,0,234,171,60,0,235,170,60,0,236,170,60,0,237,170,60,0,238,170,60,0,239,170,60,0,245,170,60,0,219,171,60,0,220,171,60,0,221,171,60,0,222,171,60,0,223,171,60,0,224,171,60,0,225,171,60,0,226,171,60,0,237,171,60,0,246,170,60,0,0,168,60,0,1,168,60,0,2,168,60,0,3,168,60,0,4,168,60,0,5,168,60,0,6,168,60,0,44,168,60,0,7,168,60,0,8,168,60,0,9,168,60,0,10,168,60,0,12,168,60,0,13,168,60,0,14,168,60,0,15,168,60,0,16,168,60,0,17,168,60,0,18,168,60,0,19,168,60,0,20,168,60,0,21,168,60,0,22,168,60,0,23,168,60,0,24,168,60,0,25,168,60,0,26,168,60,0,27,168,60,0,28,168,60,0,29,168,60,0,30,168,60,0,31,168,60,0,32,168,60,0,33,168,60,0,34,168,60,0,35,168,60,0,36,168,60,0,37,168,60,0,38,168,60,0,39,168,60,0,130,168,60,0,131,168,60,0,132,168,60,0,133,168,60,0,134,168,60,0,135,168,60,0,136,168,60,0,137,168,60,0,138,168,60,0,139,168,60,0,140,168,60,0,141,168,60,0,142,168,60,0,143,168,60,0,144,168,60,0,145,168,60,0,146,168,60,0,147,168,60,0,148,168,60,0,149,168,60,0,150,168,60,0,151,168,60,0,152,168,60,0,153,168,60,0,154,168,60,0,155,168,60,0,156,168,60,0,157,168,60,0,158,168,60,0,159,168,60,0,160,168,60,0,161,168,60,0,162,168,60,0,163,168,60,0,164,168,60,0,165,168,60,0,166,168,60,0,167,168,60,0,168,168,60,0,169,168,60,0,170,168,60,0,171,168,60,0,172,168,60,0,173,168,60,0,174,168,60,0,175,168,60,0,176,168,60,0,177,168,60,0,178,168,60,0,179,168,60,0,180,168,60,0,181,168,60,0,182,168,60,0,183,168,60,0,184,168,60,0,185,168,60,0,186,168,60,0,187,168,60,0,188,168,60,0,189,168,60,0,190,168,60,0,191,168,60,0,192,168,60,0,193,168,60,0,194,168,60,0,195,168,60,0,196,168,60,0,4,216,131,220,60,0,4,216,132,220,60,0,4,216,133,220,60,0,4,216,134,220,60,0,4,216,135,220,60,0,4,216,136,220,60,0,4,216,137,220,60,0,4,216,138,220,60,0,4,216,139,220,60,0,4,216,140,220,60,0,4,216,141,220,60,0,4,216,142,220,60,0,4,216,143,220,60,0,4,216,144,220,60,0,4,216,145,220,60,0,4,216,146,220,60,0,4,216,147,220,60,0,4,216,148,220,60,0,4,216,149,220,60,0,4,216,150,220,60,0,4,216,151,220,60,0,4,216,152,220,60,0,4,216,153,220,60,0,4,216,155,220,60,0,4,216,157,220,60,0,4,216,158,220,60,0,4,216,159,220,60,0,4,216,160,220,60,0,4,216,161,220,60,0,4,216,162,220,60,0,4,216,163,220,60,0,4,216,164,220,60,0,4,216,165,220,60,0,4,216,166,220,60,0,4,216,167,220,60,0,4,216,168,220,60,0,4,216,169,220,60,0,4,216,170,220,60,0,4,216,172,220,60,0,4,216,173,220,60,0,4,216,174,220,60,0,4,216,175,220,60,0,4,216,176,220,60,0,4,216,177,220,60,0,4,216,178,220,60,0,4,216,179,220,60,0,4,216,180,220,60,0,4,216,194,220,60,0,4,216,181,220,60,0,4,216,182,220,60,0,4,216,183,220,60,0,4,216,184,220,60,0,4,216,185,220,60,0,4,216,80,221,60,0,4,216,81,221,60,0,4,216,82,221,60,0,4,216,83,221,60,0,4,216,84,221,60,0,4,216,85,221,60,0,4,216,86,221,60,0,4,216,87,221,60,0,4,216,88,221,60,0,4,216,89,221,60,0,4,216,90,221,60,0,4,216,91,221,60,0,4,216,92,221,60,0,4,216,93,221,60,0,4,216,94,221,60,0,4,216,95,221,60,0,4,216,96,221,60,0,4,216,97,221,60,0,4,216,98,221,60,0,4,216,99,221,60,0,4,216,100,221,60,0,4,216,101,221,60,0,4,216,102,221,60,0,4,216,103,221,60,0,4,216,104,221,60,0,4,216,105,221,60,0,4,216,106,221,60,0,4,216,107,221,60,0,4,216,108,221,60,0,4,216,109,221,60,0,4,216,110,221,60,0,4,216,111,221,60,0,4,216,118,221,60,0,4,216,112,221,60,0,4,216,113,221,60,0,4,216,114,221,60,0,4,216,196,221,60,0,4,216,218,221,60,0,4,216,131,221,60,0,4,216,132,221,60,0,4,216,133,221,60,0,4,216,134,221,60,0,4,216,135,221,60,0,4,216,136,221,60,0,4,216,137,221,60,0,4,216,138,221,60,0,4,216,139,221,60,0,4,216,140,221,60,0,4,216,141,221,60,0,4,216,142,221,60,0,4,216,143,221,60,0,4,216,144,221,60,0,4,216,145,221,60,0,4,216,146,221,60,0,4,216,147,221,60,0,4,216,148,221,60,0,4,216,149,221,60,0,4,216,150,221,60,0,4,216,151,221,60,0,4,216,152,221,60,0,4,216,153,221,60,0,4,216,154,221,60,0,4,216,155,221,60,0,4,216,156,221,60,0,4,216,157,221,60,0,4,216,158,221,60,0,4,216,159,221,60,0,4,216,160,221,60,0,4,216,161,221,60,0,4,216,162,221,60,0,4,216,163,221,60,0,4,216,164,221,60,0,4,216,165,221,60,0,4,216,166,221,60,0,4,216,167,221,60,0,4,216,168,221,60,0,4,216,169,221,60,0,4,216,170,221,60,0,4,216,171,221,60,0,4,216,172,221,60,0,4,216,173,221,60,0,4,216,174,221,60,0,4,216,175,221,60,0,4,216,176,221,60,0,4,216,177,221,60,0,4,216,178,221,60,0,4,216,193,221,60,0,4,216,194,221,60,0,4,216,195,221,60,0,4,216,220,221,60,0,4,216,179,221,60,0,4,216,180,221,60,0,4,216,181,221,60,0,4,216,182,221,60,0,4,216,183,221,60,0,4,216,184,221,60,0,4,216,185,221,60,0,4,216,186,221,60,0,4,216,187,221,60,0,4,216,188,221,60,0,4,216,206,221,60,0,4,216,189,221,60,0,4,216,190,221,60,0,4,216,191,221,60,0,4,216,192,221,60,0,4,216,0,222,60,0,4,216,1,222,60,0,4,216,64,222,60,0,4,216,2,222,60,0,4,216,3,222,60,0,4,216,4,222,60,0,4,216,5,222,60,0,4,216,6,222,60,0,4,216,7,222,60,0,4,216,8,222,60,0,4,216,63,222,60,0,4,216,9,222,60,0,4,216,10,222,60,0,4,216,11,222,60,0,4,216,12,222,60,0,4,216,13,222,60,0,4,216,14,222,60,0,4,216,15,222,60,0,4,216,16,222,60,0,4,216,17,222,60,0,4,216,19,222,60,0,4,216,20,222,60,0,4,216,21,222,60,0,4,216,22,222,60,0,4,216,23,222,60,0,4,216,24,222,60,0,4,216,25,222,60,0,4,216,26,222,60,0,4,216,27,222,60,0,4,216,28,222,60,0,4,216,29,222,60,0,4,216,30,222,60,0,4,216,31,222,60,0,4,216,32,222,60,0,4,216,33,222,60,0,4,216,34,222,60,0,4,216,35,222,60,0,4,216,36,222,60,0,4,216,37,222,60,0,4,216,38,222,60,0,4,216,39,222,60,0,4,216,40,222,60,0,4,216,41,222,60,0,4,216,42,222,60,0,4,216,43,222,60,0,4,216,44,222,60,0,4,216,45,222,60,0,4,216,46,222,60,0,4,216,47,222,60,0,4,216,65,222,60,0,4,216,48,222,60,0,4,216,49,222,60,0,4,216,50,222,60,0,4,216,51,222,60,0,4,216,53,222,60,0,4,216,176,222,60,0,4,216,177,222,60,0,4,216,178,222,60,0,4,216,179,222,60,0,4,216,180,222,60,0,4,216,181,222,60,0,4,216,182,222,60,0,4,216,183,222,60,0,4,216,184,222,60,0,4,216,185,222,60,0,4,216,186,222,60,0,4,216,187,222,60,0,4,216,188,222,60,0,4,216,189,222,60,0,4,216,190,222,60,0,4,216,191,222,60,0,4,216,192,222,60,0,4,216,193,222,60,0,4,216,194,222,60,0,4,216,195,222,60,0,4,216,196,222,60,0,4,216,197,222,60,0,4,216,198,222,60,0,4,216,199,222,60,0,4,216,200,222,60,0,4,216,201,222,60,0,4,216,202,222,60,0,4,216,203,222,60,0,4,216,204,222,60,0,4,216,205,222,60,0,4,216,206,222,60,0,4,216,207,222,60,0,4,216,208,222,60,0,4,216,209,222,60,0,4,216,210,222,60,0,4,216,211,222,60,0,4,216,212,222,60,0,4,216,213,222,60,0,4,216,214,222,60,0,4,216,215,222,60,0,4,216,216,222,60,0,4,216,217,222,60,0,4,216,218,222,60,0,4,216,219,222,60,0,4,216,220,222,60,0,4,216,221,222,60,0,4,216,222,222,60,0,4,216,224,222,60,0,4,216,225,222,60,0,4,216,226,222,60,0,4,216,227,222,60,0,4,216,228,222,60,0,4,216,229,222,60,0,4,216,230,222,60,0,4,216,231,222,60,0,4,216,232,222,60,0,4,216,234,222,60,0,4,216,128,222,60,0,4,216,129,222,60,0,4,216,130,222,60,0,4,216,131,222,60,0,4,216,165,222,60,0,4,216,166,222,60,0,4,216,132,222,60,0,4,216,133,222,60,0,4,216,134,222,60,0,4,216,136,222,60,0,4,216,138,222,60,0,4,216,139,222,60,0,4,216,140,222,60,0,4,216,141,222,60,0,4,216,143,222,60,0,4,216,144,222,60,0,4,216,145,222,60,0,4,216,146,222,60,0,4,216,147,222,60,0,4,216,148,222,60,0,4,216,149,222,60,0,4,216,150,222,60,0,4,216,151,222,60,0,4,216,152,222,60,0,4,216,153,222,60,0,4,216,154,222,60,0,4,216,155,222,60,0,4,216,156,222,60,0,4,216,157,222,60,0,4,216,159,222,60,0,4,216,160,222,60,0,4,216,161,222,60,0,4,216,162,222,60,0,4,216,163,222,60,0,4,216,164,222,60,0,4,216,167,222,60,0,4,216,168,222,60,0,4,216,80,223,60,0,4,216,5,223,60,0,4,216,6,223,60,0,4,216,7,223,60,0,4,216,8,223,60,0,4,216,9,223,60,0,4,216,10,223,60,0,4,216,11,223,60,0,4,216,96,223,60,0,4,216,12,223,60,0,4,216,97,223,60,0,4,216,15,223,60,0,4,216,16,223,60,0,4,216,19,223,60,0,4,216,20,223,60,0,4,216,21,223,60,0,4,216,22,223,60,0,4,216,23,223,60,0,4,216,24,223,60,0,4,216,25,223,60,0,4,216,26,223,60,0,4,216,27,223,60,0,4,216,28,223,60,0,4,216,29,223,60,0,4,216,30,223,60,0,4,216,31,223,60,0,4,216,32,223,60,0,4,216,33,223,60,0,4,216,34,223,60,0,4,216,35,223,60,0,4,216,36,223,60,0,4,216,37,223,60,0,4,216,38,223,60,0,4,216,39,223,60,0,4,216,40,223,60,0,4,216,42,223,60,0,4,216,43,223,60,0,4,216,44,223,60,0,4,216,45,223,60,0,4,216,46,223,60,0,4,216,47,223,60,0,4,216,48,223,60,0,4,216,50,223,60,0,4,216,51,223,60,0,4,216,53,223,60,0,4,216,54,223,60,0,4,216,55,223,60,0,4,216,56,223,60,0,4,216,57,223,60,0,4,216,61,223,60,0,4,216,94,223,60,0,4,216,95,223,60,0,4,216,62,223,60,0,4,216,63,223,60,0,4,216,64,223,60,0,4,216,65,223,60,0,4,216,66,223,60,0,4,216,67,223,60,0,4,216,68,223,60,0,4,216,98,223,60,0,4,216,99,223,60,0,4,216,71,223,60,0,4,216,72,223,60,0,4,216,75,223,60,0,4,216,76,223,60,0,4,216,77,223,60,0,4,216,87,223,60,0,4,216,93,223,60,0,5,216,73,220,60,0,5,216,74,220,60,0,5,216,0,220,60,0,5,216,1,220,60,0,5,216,2,220,60,0,5,216,3,220,60,0,5,216,4,220,60,0,5,216,5,220,60,0,5,216,6,220,60,0,5,216,7,220,60,0,5,216,8,220,60,0,5,216,9,220,60,0,5,216,10,220,60,0,5,216,11,220,60,0,5,216,12,220,60,0,5,216,13,220,60,0,5,216,14,220,60,0,5,216,15,220,60,0,5,216,16,220,60,0,5,216,17,220,60,0,5,216,18,220,60,0,5,216,19,220,60,0,5,216,20,220,60,0,5,216,21,220,60,0,5,216,22,220,60,0,5,216,23,220,60,0,5,216,24,220,60,0,5,216,25,220,60,0,5,216,26,220,60,0,5,216,27,220,60,0,5,216,28,220,60,0,5,216,29,220,60,0,5,216,30,220,60,0,5,216,31,220,60,0,5,216,32,220,60,0,5,216,33,220,60,0,5,216,34,220,60,0,5,216,35,220,60,0,5,216,36,220,60,0,5,216,37,220,60,0,5,216,38,220,60,0,5,216,39,220,60,0,5,216,40,220,60,0,5,216,41,220,60,0,5,216,42,220,60,0,5,216,43,220,60,0,5,216,44,220,60,0,5,216,45,220,60,0,5,216,46,220,60,0,5,216,47,220,60,0,5,216,48,220,60,0,5,216,49,220,60,0,5,216,50,220,60,0,5,216,51,220,60,0,5,216,52,220,60,0,5,216,71,220,60,0,5,216,96,220,60,0,5,216,97,220,60,0,5,216,72,220,60,0,5,216,95,220,60,0,5,216,53,220,60,0,5,216,54,220,60,0,5,216,55,220,60,0,5,216,56,220,60,0,5,216,57,220,60,0,5,216,58,220,60,0,5,216,59,220,60,0,5,216,60,220,60,0,5,216,61,220,60,0,5,216,62,220,60,0,5,216,63,220,60,0,5,216,64,220,60,0,5,216,65,220,60,0,5,216,66,220,60,0,5,216,199,220,60,0,5,216,128,220,60,0,5,216,129,220,60,0,5,216,130,220,60,0,5,216,131,220,60,0,5,216,132,220,60,0,5,216,133,220,60,0,5,216,134,220,60,0,5,216,135,220,60,0,5,216,136,220,60,0,5,216,137,220,60,0,5,216,138,220,60,0,5,216,139,220,60,0,5,216,140,220,60,0,5,216,141,220,60,0,5,216,142,220,60,0,5,216,143,220,60,0,5,216,144,220,60,0,5,216,145,220,60,0,5,216,146,220,60,0,5,216,147,220,60,0,5,216,148,220,60,0,5,216,149,220,60,0,5,216,150,220,60,0,5,216,151,220,60,0,5,216,152,220,60,0,5,216,153,220,60,0,5,216,154,220,60,0,5,216,155,220,60,0,5,216,156,220,60,0,5,216,157,220,60,0,5,216,158,220,60,0,5,216,159,220,60,0,5,216,160,220,60,0,5,216,161,220,60,0,5,216,162,220,60,0,5,216,163,220,60,0,5,216,164,220,60,0,5,216,165,220,60,0,5,216,166,220,60,0,5,216,167,220,60,0,5,216,168,220,60,0,5,216,169,220,60,0,5,216,170,220,60,0,5,216,171,220,60,0,5,216,172,220,60,0,5,216,173,220,60,0,5,216,174,220,60,0,5,216,175,220,60,0,5,216,196,220,60,0,5,216,197,220,60,0,5,216,176,220,60,0,5,216,177,220,60,0,5,216,178,220,60,0,5,216,179,220,60,0,5,216,180,220,60,0,5,216,181,220,60,0,5,216,182,220,60,0,5,216,183,220,60,0,5,216,184,220,60,0,5,216,185,220,60,0,5,216,186,220,60,0,5,216,187,220,60,0,5,216,188,220,60,0,5,216,189,220,60,0,5,216,190,220,60,0,5,216,194,220,60,0,5,216,128,221,60,0,5,216,129,221,60,0,5,216,130,221,60,0,60,0,5,216,216,221,60,0,60,0,5,216,217,221,60,0,5,216,131,221,60,0,60,0,5,216,218,221,60,0,5,216,132,221,60,0,60,0,5,216,219,221,60,0,5,216,133,221,60,0,5,216,134,221,60,0,5,216,135,221,60,0,5,216,136,221,60,0,5,216,137,221,60,0,5,216,138,221,60,0,5,216,139,221,60,0,5,216,140,221,60,0,5,216,141,221,60,0,5,216,142,221,60,0,5,216,143,221,60,0,5,216,144,221,60,0,5,216,145,221,60,0,5,216,146,221,60,0,5,216,147,221,60,0,5,216,148,221,60,0,5,216,149,221,60,0,5,216,150,221,60,0,5,216,151,221,60,0,5,216,152,221,60,0,5,216,153,221,60,0,5,216,154,221,60,0,5,216,155,221,60,0,5,216,156,221,60,0,5,216,157,221,60,0,5,216,158,221,60,0,5,216,159,221,60,0,5,216,160,221,60,0,5,216,161,221,60,0,5,216,162,221,60,0,5,216,163,221,60,0,5,216,164,221,60,0,5,216,165,221,60,0,5,216,166,221,60,0,5,216,167,221,60,0,5,216,168,221,60,0,5,216,169,221,60,0,5,216,170,221,60,0,5,216,171,221,60,0,5,216,172,221,60,0,5,216,173,221,60,0,5,216,174,221,60,0,5,216,175,221,60,0,5,216,176,221,60,0,5,216,177,221,60,0,5,216,178,221,60,0,60,0,5,216,220,221,60,0,5,216,179,221,60,0,60,0,5,216,221,221,60,0,5,216,180,221,60,0,5,216,181,221,60,0,5,216,184,221,60,0,5,216,185,221,60,0,5,216,186,221,60,0,5,216,187,221,60,0,5,216,191,221,60,0,5,216,0,222,60,0,5,216,1,222,60,0,5,216,2,222,60,0,5,216,3,222,60,0,5,216,4,222,60,0,5,216,5,222,60,0,5,216,6,222,60,0,5,216,7,222,60,0,5,216,8,222,60,0,5,216,9,222,60,0,5,216,10,222,60,0,5,216,11,222,60,0,5,216,12,222,60,0,5,216,13,222,60,0,5,216,14,222,60,0,5,216,15,222,60,0,5,216,16,222,60,0,5,216,17,222,60,0,5,216,18,222,60,0,5,216,19,222,60,0,5,216,20,222,60,0,5,216,21,222,60,0,5,216,22,222,60,0,5,216,23,222,60,0,5,216,24,222,60,0,5,216,25,222,60,0,5,216,26,222,60,0,5,216,27,222,60,0,5,216,28,222,60,0,5,216,29,222,60,0,5,216,30,222,60,0,5,216,31,222,60,0,5,216,32,222,60,0,5,216,33,222,60,0,5,216,34,222,60,0,5,216,35,222,60,0,5,216,36,222,60,0,5,216,37,222,60,0,5,216,38,222,60,0,5,216,39,222,60,0,5,216,40,222,60,0,5,216,41,222,60,0,5,216,42,222,60,0,5,216,43,222,60,0,5,216,44,222,60,0,5,216,45,222,60,0,5,216,46,222,60,0,5,216,47,222,60,0,5,216,48,222,60,0,5,216,49,222,60,0,5,216,50,222,60,0,5,216,51,222,60,0,5,216,52,222,60,0,5,216,53,222,60,0,5,216,54,222,60,0,5,216,55,222,60,0,5,216,56,222,60,0,5,216,57,222,60,0,5,216,58,222,60,0,5,216,59,222,60,0,5,216,60,222,60,0,5,216,63,222,60,0,5,216,68,222,60,0,5,216,128,222,60,0,5,216,129,222,60,0,5,216,130,222,60,0,5,216,131,222,60,0,5,216,132,222,60,0,5,216,133,222,60,0,5,216,134,222,60,0,5,216,135,222,60,0,5,216,136,222,60,0,5,216,137,222,60,0,5,216,168,222,60,0,5,216,167,222,60,0,5,216,169,222,60,0,5,216,138,222,60,0,5,216,139,222,60,0,5,216,184,222,60,0,5,216,140,222,60,0,5,216,141,222,60,0,5,216,142,222,60,0,5,216,143,222,60,0,5,216,144,222,60,0,5,216,145,222,60,0,5,216,146,222,60,0,5,216,147,222,60,0,5,216,148,222,60,0,5,216,149,222,60,0,5,216,150,222,60,0,5,216,151,222,60,0,5,216,152,222,60,0,5,216,153,222,60,0,5,216,154,222,60,0,5,216,155,222,60,0,5,216,156,222,60,0,5,216,157,222,60,0,5,216,158,222,60,0,5,216,159,222,60,0,5,216,160,222,60,0,5,216,161,222,60,0,5,216,162,222,60,0,5,216,163,222,60,0,5,216,164,222,60,0,5,216,165,222,60,0,5,216,166,222,60,0,5,216,170,222,60,0,5,216,173,222,60,0,5,216,174,222,60,0,5,216,175,222,60,0,5,216,176,222,60,0,5,216,177,222,60,0,5,216,178,222,60,0,5,216,179,222,60,0,5,216,180,222,60,0,5,216,181,222,60,0,5,216,182,222,60,0,6,216,0,221,60,0,6,216,1,221,60,0,6,216,2,221,60,0,6,216,3,221,60,0,6,216,4,221,60,0,6,216,5,221,60,0,6,216,6,221,60,0,6,216,9,221,60,0,6,216,12,221,60,0,6,216,13,221,60,0,6,216,14,221,60,0,6,216,15,221,60,0,6,216,16,221,60,0,6,216,63,221,60,0,6,216,17,221,60,0,6,216,18,221,60,0,6,216,19,221,60,0,6,216,21,221,60,0,6,216,22,221,60,0,6,216,24,221,60,0,6,216,25,221,60,0,6,216,26,221,60,0,6,216,27,221,60,0,6,216,28,221,60,0,6,216,29,221,60,0,6,216,30,221,60,0,6,216,31,221,60,0,6,216,32,221,60,0,6,216,33,221,60,0,6,216,34,221,60,0,6,216,35,221,60,0,6,216,36,221,60,0,6,216,37,221,60,0,6,216,64,221,60,0,6,216,38,221,60,0,6,216,65,221,60,0,6,216,39,221,60,0,6,216,66,221,60,0,6,216,40,221,60,0,6,216,41,221,60,0,6,216,42,221,60,0,6,216,43,221,60,0,6,216,44,221,60,0,6,216,45,221,60,0,6,216,46,221,60,0,6,216,47,221,60,0,6,216,48,221,60,0,6,216,49,221,60,0,6,216,50,221,60,0,6,216,51,221,60,0,6,216,52,221,60,0,6,216,53,221,60,0,6,216,55,221,60,0,6,216,56,221,60,0,6,216,61,221,60,0,6,216,62,221,60,0,6,216,160,221,60,0,6,216,161,221,60,0,6,216,162,221,60,0,6,216,163,221,60,0,6,216,164,221,60,0,6,216,165,221,60,0,6,216,166,221,60,0,6,216,167,221,60,0,6,216,170,221,60,0,6,216,171,221,60,0,6,216,172,221,60,0,6,216,173,221,60,0,6,216,174,221,60,0,6,216,175,221,60,0,6,216,176,221,60,0,6,216,177,221,60,0,6,216,178,221,60,0,6,216,179,221,60,0,6,216,180,221,60,0,6,216,181,221,60,0,6,216,182,221,60,0,6,216,183,221,60,0,6,216,184,221,60,0,6,216,185,221,60,0,6,216,186,221,60,0,6,216,187,221,60,0,6,216,188,221,60,0,6,216,189,221,60,0,6,216,190,221,60,0,6,216,191,221,60,0,6,216,192,221,60,0,6,216,193,221,60,0,6,216,194,221,60,0,6,216,195,221,60,0,6,216,196,221,60,0,6,216,197,221,60,0,6,216,198,221,60,0,6,216,199,221,60,0,6,216,200,221,60,0,6,216,201,221,60,0,6,216,202,221,60,0,6,216,203,221,60,0,6,216,204,221,60,0,6,216,205,221,60,0,6,216,206,221,60,0,6,216,207,221,60,0,6,216,208,221,60,0,6,216,225,221,60,0,6,216,227,221,60,0,6,216,209,221,60,0,6,216,210,221,60,0,6,216,211,221,60,0,6,216,212,221,60,0,6,216,213,221,60,0,6,216,214,221,60,0,6,216,215,221,60,0,6,216,218,221,60,0,6,216,228,221,60,0,6,216,219,221,60,0,6,216,220,221,60,0,6,216,221,221,60,0,6,216,224,221,60,0,6,216,0,220,60,0,6,216,1,220,60,0,6,216,2,220,60,0,6,216,3,220,60,0,6,216,4,220,60,0,6,216,5,220,60,0,6,216,6,220,60,0,6,216,7,220,60,0,6,216,8,220,60,0,6,216,9,220,60,0,6,216,10,220,60,0,6,216,11,220,60,0,6,216,12,220,60,0,6,216,13,220,60,0,6,216,14,220,60,0,6,216,15,220,60,0,6,216,16,220,60,0,6,216,17,220,60,0,6,216,18,220,60,0,6,216,19,220,60,0,6,216,20,220,60,0,6,216,21,220,60,0,6,216,22,220,60,0,6,216,23,220,60,0,6,216,24,220,60,0,6,216,25,220,60,0,6,216,26,220,60,0,6,216,27,220,60,0,6,216,28,220,60,0,6,216,29,220,60,0,6,216,30,220,60,0,6,216,31,220,60,0,6,216,32,220,60,0,6,216,33,220,60,0,6,216,34,220,60,0,6,216,35,220,60,0,6,216,36,220,60,0,6,216,37,220,60,0,6,216,38,220,60,0,6,216,39,220,60,0,6,216,40,220,60,0,6,216,41,220,60,0,6,216,42,220,60,0,6,216,43,220,60,0,6,216,44,220,60,0,6,216,45,220,60,0,6,216,46,220,60,0,6,216,47,220,60,0,6,216,48,220,60,0,6,216,49,220,60,0,6,216,50,220,60,0,6,216,51,220,60,0,6,216,52,220,60,0,6,216,53,220,60,0,6,216,54,220,60,0,6,216,57,220,60,0,5,216,0,223,60,0,5,216,1,223,60,0,5,216,2,223,60,0,5,216,3,223,60,0,5,216,4,223,60,0,60,0,5,216,5,223,60,0,5,216,6,223,60,0,5,216,7,223,60,0,5,216,8,223,60,0,60,0,5,216,26,223,60,0,5,216,9,223,60,0,5,216,10,223,60,0,5,216,11,223,60,0,5,216,12,223,60,0,5,216,13,223,60,0,5,216,14,223,60,0,5,216,15,223,60,0,5,216,16,223,60,0,5,216,17,223,60,0,5,216,18,223,60,0,5,216,19,223,60,0,5,216,20,223,60,0,5,216,21,223,60,0,60,0,5,216,22,223,60,0,5,216,23,223,60,0,5,216,24,223,60,0,5,216,25,223,60,0,5,216,64,223,60,0,5,216,65,223,60,0,5,216,66,223,60,0,5,216,67,223,60,0,5,216,68,223,60,0,5,216,69,223,60,0,5,216,70,223,60,0,5,216,32,223,60,0,5,216,33,223,60,0,5,216,34,223,60,0,5,216,35,223,60,0,5,216,36,223,60,0,5,216,37,223,60,0,5,216,38,223,60,0,5,216,39,223,60,0,5,216,40,223,60,0,5,216,41,223,60,0,5,216,42,223,60,0,5,216,43,223,60,0,5,216,29,223,60,0,5,216,30,223,60,0,5,216,31,223,60,0,7,216,0,221,60,0,7,216,1,221,60,0,7,216,2,221,60,0,7,216,3,221,60,0,7,216,4,221,60,0,7,216,5,221,60,0,7,216,6,221,60,0,7,216,8,221,60,0,7,216,9,221,60,0,7,216,11,221,60,0,7,216,12,221,60,0,7,216,13,221,60,0,7,216,14,221,60,0,7,216,15,221,60,0,7,216,16,221,60,0,7,216,17,221,60,0,7,216,18,221,60,0,7,216,19,221,60,0,7,216,20,221,60,0,7,216,21,221,60,0,7,216,22,221,60,0,7,216,23,221,60,0,7,216,24,221,60,0,7,216,25,221,60,0,7,216,26,221,60,0,7,216,27,221,60,0,7,216,28,221,60,0,7,216,29,221,60,0,7,216,30,221,60,0,7,216,31,221,60,0,7,216,32,221,60,0,7,216,33,221,60,0,7,216,34,221,60,0,7,216,35,221,60,0,7,216,36,221,60,0,7,216,37,221,60,0,7,216,38,221,60,0,60,0,60,0,7,216,70,221,60,0,60,0,60,0,7,216,71,221,60,0,7,216,39,221,60,0,7,216,40,221,60,0,7,216,41,221,60,0,7,216,42,221,60,0,7,216,43,221,60,0,7,216,44,221,60,0,7,216,45,221,60,0,7,216,46,221,60,0,7,216,47,221,60,0,7,216,48,221,60,0,7,216,49,221,60,0,7,216,50,221,60,0,7,216,51,221,60,0,7,216,52,221,60,0,7,216,53,221,60,0,7,216,54,221,60,0,7,216,58,221,60,0,7,216,60,221,60,0,7,216,61,221,60,0,7,216,63,221,60,0,7,216,68,221,60,0,7,216,69,221,60,0,7,216,152,221,60,0,7,216,96,221,60,0,7,216,97,221,60,0,7,216,98,221,60,0,7,216,99,221,60,0,7,216,100,221,60,0,7,216,101,221,60,0,7,216,103,221,60,0,7,216,104,221,60,0,7,216,106,221,60,0,7,216,107,221,60,0,7,216,108,221,60,0,7,216,109,221,60,0,7,216,110,221,60,0,7,216,111,221,60,0,7,216,112,221,60,0,7,216,113,221,60,0,7,216,114,221,60,0,7,216,115,221,60,0,7,216,116,221,60,0,7,216,117,221,60,0,7,216,118,221,60,0,7,216,119,221,60,0,7,216,120,221,60,0,7,216,121,221,60,0,7,216,122,221,60,0,7,216,123,221,60,0,7,216,124,221,60,0,7,216,125,221,60,0,7,216,126,221,60,0,7,216,127,221,60,0,7,216,128,221,60,0,7,216,129,221,60,0,7,216,130,221,60,0,7,216,131,221,60,0,7,216,132,221,60,0,7,216,133,221,60,0,7,216,134,221,60,0,7,216,135,221,60,0,7,216,136,221,60,0,7,216,137,221,60,0,7,216,138,221,60,0,7,216,139,221,60,0,7,216,140,221,60,0,7,216,141,221,60,0,7,216,142,221,60,0,7,216,144,221,60,0,7,216,145,221,60,0,7,216,147,221,60,0,7,216,148,221,60,0,7,216,151,221,60,0,131,27,60,0,60,0,60,0,186,27,60,0,132,27,60,0,133,27,60,0,134,27,60,0,135,27,60,0,136,27,60,0,137,27,60,0,138,27,60,0,60,0,60,0,190,27,60,0,174,27,60,0,139,27,60,0,140,27,60,0,141,27,60,0,142,27,60,0,143,27,60,0,144,27,60,0,145,27,60,0,146,27,60,0,147,27,60,0,148,27,60,0,149,27,60,0,150,27,60,0,151,27,60,0,152,27,60,0,189,27,60,0,153,27,60,0,60,0,60,0,191,27,60,0,172,27,60,0,154,27,60,0,161,27,60,0,155,27,60,0,162,27,60,0,187,27,60,0,156,27,60,0,163,27,60,0,188,27,60,0,157,27,60,0,173,27,60,0,158,27,60,0,159,27,60,0,175,27,60,0,160,27,60,0,164,27,60,0,165,27,60,0,166,27,60,0,167,27,60,0,168,27,60,0,169,27,60,0,170,27,60,0,171,27,60,0,4,216,5,220,60,0,4,216,6,220,60,0,4,216,7,220,60,0,4,216,8,220,60,0,4,216,9,220,60,0,4,216,10,220,60,0,4,216,11,220,60,0,4,216,12,220,60,0,4,216,13,220,60,0,4,216,14,220,60,0,4,216,113,220,60,0,4,216,15,220,60,0,4,216,16,220,60,0,4,216,114,220,60,0,4,216,17,220,60,0,4,216,18,220,60,0,4,216,19,220,60,0,4,216,20,220,60,0,4,216,21,220,60,0,4,216,22,220,60,0,4,216,23,220,60,0,4,216,24,220,60,0,4,216,25,220,60,0,4,216,26,220,60,0,4,216,27,220,60,0,4,216,28,220,60,0,4,216,29,220,60,0,4,216,30,220,60,0,4,216,31,220,60,0,4,216,32,220,60,0,4,216,33,220,60,0,4,216,34,220,60,0,4,216,35,220,60,0,4,216,36,220,60,0,4,216,37,220,60,0,4,216,38,220,60,0,4,216,39,220,60,0,4,216,40,220,60,0,4,216,41,220,60,0,4,216,42,220,60,0,4,216,43,220,60,0,4,216,44,220,60,0,4,216,45,220,60,0,4,216,46,220,60,0,4,216,47,220,60,0,4,216,48,220,60,0,4,216,49,220,60,0,4,216,50,220,60,0,4,216,51,220,60,0,4,216,3,220,60,0,4,216,4,220,60,0,4,216,52,220,60,0,4,216,53,220,60,0,4,216,117,220,60,0,4,216,54,220,60,0,4,216,55,220,60,0,4,216,56,220,60,0,4,216,57,220,60,0,4,216,58,220,60,0,4,216,59,220,60,0,4,216,60,220,60,0,4,216,61,220,60,0,4,216,62,220,60,0,4,216,63,220,60,0,4,216,64,220,60,0,4,216,65,220,60,0,4,216,115,220,60,0,4,216,66,220,60,0,4,216,67,220,60,0,4,216,116,220,60,0,4,216,68,220,60,0,4,216,69,220,60,0,4,216,70,220,60,0,4,216,127,220,60,0,4,216,112,220,60,0,14,32,2,216,0,222,14,32,60,0,2,216,1,222,60,0,2,216,2,222,60,0,2,216,3,222,60,0,2,216,5,222,60,0,2,216,6,222,60,0,2,216,12,222,60,0,14,32,2,216,16,222,14,32,60,0,14,32,2,216,50,222,14,32,60,0,14,32,2,216,17,222,14,32,60,0,14,32,2,216,18,222,14,32,60,0,14,32,2,216,19,222,14,32,60,0,14,32,2,216,21,222,14,32,60,0,14,32,2,216,22,222,14,32,60,0,14,32,2,216,23,222,14,32,60,0,14,32,2,216,25,222,14,32,60,0,14,32,2,216,26,222,14,32,60,0,14,32,2,216,52,222,14,32,60,0,14,32,2,216,27,222,14,32,60,0,14,32,2,216,51,222,14,32,60,0,14,32,2,216,28,222,14,32,60,0,14,32,2,216,29,222,14,32,60,0,14,32,2,216,30,222,14,32,60,0,14,32,2,216,31,222,14,32,60,0,14,32,2,216,32,222,14,32,60,0,14,32,2,216,33,222,14,32,60,0,14,32,2,216,34,222,14,32,60,0,14,32,2,216,35,222,14,32,60,0,14,32,2,216,36,222,14,32,60,0,14,32,2,216,37,222,14,32,60,0,14,32,2,216,38,222,14,32,60,0,14,32,2,216,39,222,14,32,60,0,14,32,2,216,40,222,14,32,60,0,14,32,2,216,41,222,14,32,60,0,14,32,2,216,42,222,14,32,60,0,14,32,2,216,43,222,14,32,60,0,14,32,2,216,44,222,14,32,60,0,14,32,2,216,53,222,14,32,60,0,14,32,2,216,45,222,14,32,60,0,14,32,2,216,46,222,14,32,60,0,14,32,2,216,47,222,14,32,60,0,14,32,2,216,48,222,14,32,60,0,14,32,2,216,49,222,14,32,60,0,2,216,63,222,60,0,7,216,0,220,60,0,7,216,1,220,60,0,7,216,2,220,60,0,7,216,3,220,60,0,7,216,4,220,60,0,7,216,5,220,60,0,7,216,6,220,60,0,7,216,7,220,60,0,7,216,8,220,60,0,7,216,10,220,60,0,7,216,11,220,60,0,7,216,12,220,60,0,7,216,13,220,60,0,7,216,14,220,60,0,7,216,15,220,60,0,7,216,16,220,60,0,7,216,17,220,60,0,7,216,18,220,60,0,7,216,19,220,60,0,7,216,20,220,60,0,7,216,21,220,60,0,7,216,22,220,60,0,7,216,23,220,60,0,7,216,24,220,60,0,7,216,25,220,60,0,7,216,26,220,60,0,7,216,27,220,60,0,7,216,28,220,60,0,7,216,29,220,60,0,7,216,30,220,60,0,7,216,31,220,60,0,7,216,32,220,60,0,7,216,33,220,60,0,7,216,34,220,60,0,7,216,35,220,60,0,7,216,36,220,60,0,7,216,37,220,60,0,7,216,38,220,60,0,7,216,39,220,60,0,7,216,40,220,60,0,7,216,41,220,60,0,7,216,42,220,60,0,7,216,43,220,60,0,7,216,44,220,60,0,7,216,45,220,60,0,7,216,46,220,60,0,7,216,64,220,60,0,7,216,47,220,60,0,7,216,48,220,60,0,7,216,49,220,60,0,7,216,50,220,60,0,7,216,51,220,60,0,7,216,52,220,60,0,7,216,53,220,60,0,7,216,54,220,60,0,7,216,56,220,60,0,7,216,57,220,60,0,7,216,58,220,60,0,7,216,59,220,60,0,7,216,63,220,60,0,1,14,60,0,2,14,60,0,3,14,60,0,4,14,60,0,5,14,60,0,6,14,60,0,7,14,60,0,8,14,60,0,9,14,60,0,10,14,60,0,11,14,60,0,12,14,60,0,13,14,60,0,14,14,60,0,15,14,60,0,16,14,60,0,17,14,60,0,18,14,60,0,19,14,60,0,20,14,60,0,21,14,60,0,22,14,60,0,23,14,60,0,24,14,60,0,25,14,60,0,26,14,60,0,27,14,60,0,28,14,60,0,29,14,60,0,30,14,60,0,31,14,60,0,32,14,60,0,33,14,60,0,34,14,60,0,35,14,60,0,36,14,60,0,37,14,60,0,38,14,60,0,39,14,60,0,40,14,60,0,41,14,60,0,42,14,60,0,43,14,60,0,44,14,60,0,45,14,60,0,46,14,60,0,47,14,60,0,48,14,60,0,49,14,60,0,50,14,60,0,51,14,61,0,77,14,50,14,60,0,52,14,60,0,53,14,60,0,54,14,60,0,55,14,60,0,56,14,60,0,57,14,60,0,58,14,60,0,64,14,60,0,65,14,60,0,66,14,60,0,67,14,60,0,68,14,60,0,69,14,60,0,222,14,60,0,129,14,60,0,130,14,60,0,132,14,60,0,134,14,60,0,135,14,60,0,136,14,60,0,137,14,60,0,170,14,60,0,138,14,60,0,140,14,60,0,142,14,60,0,223,14,60,0,141,14,60,0,143,14,60,0,144,14,60,0,145,14,60,0,146,14,60,0,147,14,60,0,148,14,60,0,149,14,60,0,150,14,60,0,151,14,60,0,152,14,60,0,153,14,60,0,154,14,60,0,155,14,60,0,156,14,60,0,157,14,60,0,158,14,60,0,159,14,60,0,160,14,60,0,161,14,60,0,162,14,60,0,163,14,60,0,165,14,60,0,167,14,60,0,168,14,60,0,169,14,60,0,171,14,60,0,60,0,60,0,220,14,47,0,153,14,60,0,60,0,60,0,221,14,47,0,161,14,60,0,172,14,60,0,173,14,60,0,174,14,60,0,175,14,60,0,176,14,60,0,177,14,60,0,178,14,60,0,179,14,61,0,205,14,178,14,60,0,180,14,60,0,181,14,60,0,182,14,60,0,183,14,60,0,184,14,60,0,185,14,60,0,186,14,60,0,187,14,60,0,188,14,60,0,189,14,60,0,192,14,60,0,193,14,60,0,194,14,60,0,195,14,60,0,196,14,60,0,128,170,60,0,129,170,60,0,130,170,60,0,131,170,60,0,132,170,60,0,133,170,60,0,134,170,60,0,135,170,60,0,136,170,60,0,137,170,60,0,138,170,60,0,139,170,60,0,140,170,60,0,141,170,60,0,142,170,60,0,143,170,60,0,144,170,60,0,145,170,60,0,146,170,60,0,147,170,60,0,148,170,60,0,149,170,60,0,150,170,60,0,151,170,60,0,152,170,60,0,153,170,60,0,154,170,60,0,155,170,60,0,156,170,60,0,157,170,60,0,158,170,60,0,159,170,60,0,160,170,60,0,161,170,60,0,162,170,60,0,163,170,60,0,164,170,60,0,165,170,60,0,166,170,60,0,167,170,60,0,168,170,60,0,169,170,60,0,170,170,60,0,171,170,60,0,172,170,60,0,173,170,60,0,174,170,60,0,175,170,60,0,176,170,60,0,177,170,60,0,178,170,60,0,179,170,60,0,180,170,60,0,181,170,60,0,182,170,60,0,183,170,60,0,184,170,60,0,185,170,60,0,186,170,60,0,187,170,60,0,188,170,60,0,189,170,60,0,190,170,60,0,192,170,60,0,194,170,60,0,219,170,60,0,220,170,60,0,64,15,60,0,144,15,60,0,107,15,60,0,65,15,60,0,145,15,60,0,66,15,60,0,146,15,60,0,68,15,60,0,148,15,60,0,69,15,60,0,149,15,60,0,70,15,60,0,150,15,60,0,71,15,60,0,151,15,60,0,73,15,60,0,153,15,60,0,74,15,60,0,154,15,60,0,75,15,60,0,155,15,60,0,76,15,60,0,156,15,60,0,78,15,60,0,158,15,60,0,79,15,60,0,159,15,60,0,80,15,60,0,160,15,60,0,81,15,60,0,161,15,60,0,83,15,60,0,163,15,60,0,84,15,60,0,164,15,60,0,85,15,60,0,165,15,60,0,86,15,60,0,166,15,60,0,88,15,60,0,168,15,60,0,89,15,60,0,169,15,60,0,90,15,60,0,170,15,60,0,91,15,60,0,171,15,60,0,93,15,60,0,173,15,60,0,60,0,186,15,60,0,94,15,60,0,174,15,60,0,95,15,60,0,175,15,60,0,96,15,60,0,176,15,60,0,97,15,60,0,177,15,60,0,60,0,187,15,60,0,98,15,60,0,60,0,106,15,60,0,178,15,60,0,60,0,60,0,178,15,113,15,47,0,113,15,60,0,60,0,60,0,178,15,113,15,114,15,47,0,113,15,114,15,61,0,178,15,113,15,114,15,47,0,113,15,114,15,60,0,60,0,60,0,178,15,113,15,116,15,47,0,113,15,116,15,61,0,178,15,113,15,116,15,47,0,113,15,116,15,60,0,60,0,188,15,60,0,108,15,60,0,99,15,60,0,179,15,60,0,60,0,60,0,179,15,113,15,47,0,113,15,60,0,60,0,60,0,179,15,113,15,114,15,47,0,113,15,114,15,61,0,179,15,113,15,114,15,47,0,113,15,114,15,60,0,60,0,60,0,179,15,113,15,116,15,47,0,113,15,116,15,61,0,179,15,113,15,116,15,47,0,113,15,116,15,60,0,100,15,60,0,180,15,60,0,101,15,60,0,181,15,60,0,102,15,60,0,182,15,60,0,103,15,60,0,183,15,60,0,104,15,60,0,60,0,60,0,0,15,47,0,124,15,7,216,1,223,60,0,184,15,60,0,136,15,60,0,141,15,60,0,137,15,60,0,142,15,60,0,140,15,60,0,143,15,60,0,138,15,60,0,139,15,60,0,113,15,60,0,114,15,60,0,113,15,114,15,60,0,128,15,60,0,113,15,128,15,60,0,116,15,60,0,113,15,116,15,60,0,178,15,128,15,60,0,119,15,61,0,178,15,113,15,128,15,61,0,178,15,113,15,128,15,60,0,179,15,128,15,60,0,121,15,61,0,179,15,113,15,128,15,61,0,179,15,113,15,128,15,60,0,122,15,60,0,123,15,60,0,124,15,60,0,125,15,60,0,132,15,60,0,6,216,11,222,60,0,6,216,50,222,60,0,6,216,12,222,60,0,6,216,13,222,60,0,6,216,14,222,60,0,6,216,15,222,60,0,6,216,16,222,60,0,6,216,17,222,60,0,6,216,18,222,60,0,6,216,19,222,60,0,6,216,20,222,60,0,6,216,21,222,60,0,6,216,22,222,60,0,6,216,23,222,60,0,6,216,24,222,60,0,6,216,25,222,60,0,6,216,26,222,60,0,6,216,27,222,60,0,6,216,28,222,60,0,6,216,29,222,60,0,6,216,30,222,60,0,6,216,31,222,60,0,6,216,32,222,60,0,6,216,33,222,60,0,6,216,34,222,60,0,6,216,35,222,60,0,6,216,36,222,60,0,6,216,37,222,60,0,6,216,38,222,60,0,6,216,39,222,60,0,6,216,40,222,60,0,6,216,41,222,60,0,6,216,42,222,60,0,60,0,60,0,6,216,59,222,60,0,6,216,43,222,60,0,60,0,60,0,6,216,58,222,60,0,60,0,60,0,6,216,60,222,60,0,6,216,44,222,60,0,60,0,60,0,6,216,61,222,60,0,6,216,45,222,60,0,60,0,60,0,6,216,62,222,60,0,6,216,46,222,60,0,6,216,47,222,60,0,6,216,48,222,60,0,6,216,49,222,60,0,6,216,0,222,60,0,6,216,1,222,60,0,6,216,2,222,60,0,6,216,3,222,60,0,6,216,4,222,60,0,6,216,5,222,60,0,6,216,6,222,60,0,6,216,7,222,60,0,6,216,8,222,60,0,6,216,9,222,60,0,6,216,10,222,60,0,6,216,52,222,60,0,6,216,71,222,60,0,6,216,80,222,60,0,6,216,81,222,60,0,6,216,82,222,60,0,6,216,83,222,60,0,6,216,89,222,60,0,6,216,90,222,60,0,6,216,84,222,60,0,6,216,86,222,60,0,6,216,85,222,60,0,6,216,87,222,60,0,6,216,88,222,60,0,6,216,91,222,60,0,6,216,92,222,60,0,60,0,60,0,6,216,138,222,60,0,6,216,131,222,60,0,6,216,93,222,60,0,60,0,60,0,6,216,139,222,60,0,6,216,94,222,60,0,6,216,95,222,60,0,6,216,96,222,60,0,60,0,60,0,6,216,140,222,60,0,6,216,97,222,60,0,6,216,98,222,60,0,6,216,99,222,60,0,6,216,100,222,60,0,6,216,101,222,60,0,6,216,102,222,60,0,6,216,103,222,60,0,6,216,104,222,60,0,6,216,105,222,60,0,6,216,106,222,60,0,6,216,107,222,60,0,60,0,60,0,6,216,141,222,60,0,6,216,108,222,60,0,6,216,109,222,60,0,6,216,110,222,60,0,6,216,111,222,60,0,60,0,60,0,6,216,142,222,60,0,6,216,112,222,60,0,60,0,60,0,6,216,143,222,60,0,6,216,113,222,60,0,6,216,114,222,60,0,6,216,115,222,60,0,6,216,116,222,60,0,60,0,60,0,6,216,144,222,60,0,6,216,117,222,60,0,6,216,118,222,60,0,6,216,119,222,60,0,6,216,120,222,60,0,6,216,121,222,60,0,6,216,122,222,60,0,60,0,60,0,6,216,149,222,60,0,6,216,123,222,60,0,6,216,124,222,60,0,60,0,60,0,6,216,134,222,60,0,60,0,60,0,6,216,145,222,60,0,6,216,125,222,60,0,60,0,60,0,6,216,135,222,60,0,60,0,60,0,6,216,146,222,60,0,6,216,126,222,60,0,6,216,127,222,60,0,60,0,60,0,6,216,136,222,60,0,60,0,60,0,6,216,147,222,60,0,6,216,128,222,60,0,6,216,129,222,60,0,60,0,60,0,6,216,137,222,60,0,60,0,60,0,6,216,148,222,60,0,6,216,130,222,60,0,6,216,132,222,60,0,6,216,133,222,60,0,6,216,153,222,60,0,6,216,157,222,60,0,7,216,114,220,60,0,7,216,146,220,60,0,7,216,115,220,60,0,7,216,147,220,60,0,7,216,116,220,60,0,7,216,148,220,60,0,7,216,117,220,60,0,7,216,149,220,60,0,7,216,118,220,60,0,7,216,150,220,60,0,7,216,119,220,60,0,7,216,151,220,60,0,7,216,120,220,60,0,7,216,152,220,60,0,7,216,121,220,60,0,7,216,153,220,60,0,7,216,122,220,60,0,7,216,154,220,60,0,7,216,123,220,60,0,7,216,155,220,60,0,7,216,124,220,60,0,7,216,156,220,60,0,7,216,125,220,60,0,7,216,157,220,60,0,7,216,126,220,60,0,7,216,158,220,60,0,7,216,127,220,60,0,7,216,159,220,60,0,7,216,128,220,60,0,7,216,160,220,60,0,7,216,129,220,60,0,7,216,161,220,60,0,7,216,130,220,60,0,7,216,162,220,60,0,7,216,131,220,60,0,7,216,163,220,60,0,7,216,132,220,60,0,7,216,164,220,60,0,7,216,133,220,60,0,7,216,165,220,60,0,7,216,134,220,60,0,7,216,166,220,60,0,7,216,135,220,60,0,7,216,167,220,60,0,7,216,136,220,60,0,7,216,137,220,60,0,7,216,169,220,60,0,7,216,138,220,60,0,7,216,170,220,60,0,7,216,139,220,60,0,7,216,171,220,60,0,7,216,140,220,60,0,7,216,172,220,60,0,7,216,141,220,60,0,7,216,173,220,60,0,7,216,142,220,60,0,7,216,174,220,60,0,7,216,143,220,60,0,7,216,175,220,60,0,7,216,176,220,60,0,7,216,177,220,60,0,7,216,178,220,60,0,7,216,179,220,60,0,7,216,180,220,60,0,0,28,60,0,1,28,60,0,2,28,60,0,3,28,60,0,4,28,60,0,5,28,60,0,6,28,60,0,7,28,60,0,8,28,60,0,9,28,60,0,77,28,60,0,78,28,60,0,79,28,60,0,10,28,60,0,11,28,60,0,12,28,60,0,13,28,60,0,14,28,60,0,15,28,60,0,16,28,60,0,17,28,60,0,18,28,60,0,19,28,60,0,20,28,60,0,21,28,60,0,22,28,60,0,23,28,60,0,24,28,60,0,25,28,60,0,26,28,60,0,36,28,60,0,27,28,60,0,37,28,60,0,28,28,60,0,29,28,60,0,30,28,60,0,31,28,60,0,32,28,60,0,33,28,60,0,34,28,60,0,35,28,60,0,54,28,60,0,38,28,60,0,39,28,60,0,40,28,60,0,41,28,60,0,42,28,60,0,43,28,60,0,44,28,60,0,45,28,60,0,46,28,60,0,47,28,60,0,48,28,60,0,49,28,60,0,50,28,60,0,51,28,60,0,52,28,60,0,53,28,60,0,64,168,60,0,65,168,60,0,66,168,60,0,67,168,60,0,68,168,60,0,69,168,60,0,70,168,60,0,71,168,60,0,105,168,60,0,106,168,60,0,107,168,60,0,108,168,60,0,72,168,60,0,73,168,60,0,74,168,60,0,75,168,60,0,76,168,60,0,77,168,60,0,78,168,60,0,79,168,60,0,80,168,60,0,81,168,60,0,82,168,60,0,83,168,60,0,103,168,60,0,84,168,60,0,85,168,60,0,86,168,60,0,87,168,60,0,104,168,60,0,109,168,60,0,88,168,60,0,113,168,60,0,114,168,60,0,89,168,60,0,90,168,60,0,110,168,60,0,91,168,60,0,92,168,60,0,111,168,60,0,112,168,60,0,93,168,60,0,98,168,60,0,99,168,60,0,100,168,60,0,101,168,60,0,94,168,60,0,95,168,60,0,96,168,60,0,97,168,60,0,102,168,60,0,115,168,60,0,0,25,60,0,1,25,60,0,2,25,60,0,3,25,60,0,4,25,60,0,5,25,60,0,6,25,60,0,7,25,60,0,8,25,60,0,60,0,60,0,29,25,47,0,41,25,60,0,9,25,60,0,10,25,60,0,11,25,60,0,60,0,60,0,30,25,47,0,42,25,60,0,12,25,60,0,13,25,60,0,14,25,60,0,15,25,60,0,16,25,60,0,17,25,60,0,18,25,60,0,19,25,60,0,20,25,60,0,21,25,60,0,22,25,60,0,23,25,60,0,24,25,60,0,25,25,60,0,26,25,60,0,27,25,60,0,28,25,60,0,32,25,60,0,33,25,60,0,34,25,60,0,35,25,60,0,36,25,60,0,37,25,60,0,38,25,60,0,39,25,60,0,40,25,60,0,41,25,60,0,42,25,60,0,43,25,60,0,48,25,60,0,49,25,60,0,50,25,60,0,51,25,60,0,52,25,60,0,53,25,60,0,54,25,60,0,55,25,60,0,56,25,60,0,0,23,60,0,1,23,60,0,2,23,60,0,3,23,60,0,4,23,60,0,5,23,60,0,6,23,60,0,7,23,60,0,8,23,60,0,9,23,60,0,10,23,60,0,11,23,60,0,12,23,60,0,13,23,60,0,31,23,60,0,14,23,60,0,15,23,60,0,16,23,60,0,17,23,60,0,18,23,60,0,19,23,60,0,20,23,60,0,21,23,60,0,32,23,60,0,33,23,60,0,34,23,60,0,35,23,60,0,36,23,60,0,37,23,60,0,38,23,60,0,39,23,60,0,40,23,60,0,41,23,60,0,42,23,60,0,43,23,60,0,44,23,60,0,45,23,60,0,46,23,60,0,47,23,60,0,48,23,60,0,49,23,60,0,50,23,60,0,51,23,60,0,52,23,60,0,64,23,60,0,65,23,60,0,66,23,60,0,67,23,60,0,68,23,60,0,69,23,60,0,70,23,60,0,71,23,60,0,72,23,60,0,73,23,60,0,74,23,60,0,75,23,60,0,76,23,60,0,77,23,60,0,78,23,60,0,79,23,60,0,80,23,60,0,81,23,60,0,82,23,60,0,83,23,60,0,96,23,60,0,97,23,60,0,98,23,60,0,99,23,60,0,100,23,60,0,101,23,60,0,102,23,60,0,103,23,60,0,104,23,60,0,105,23,60,0,106,23,60,0,107,23,60,0,108,23,60,0,110,23,60,0,111,23,60,0,112,23,60,0,114,23,60,0,115,23,60,0,0,26,60,0,1,26,60,0,2,26,60,0,3,26,60,0,4,26,60,0,5,26,60,0,6,26,60,0,7,26,60,0,8,26,60,0,9,26,60,0,10,26,60,0,11,26,60,0,12,26,60,0,13,26,60,0,14,26,60,0,15,26,60,0,16,26,60,0,17,26,60,0,18,26,60,0,19,26,60,0,20,26,60,0,21,26,60,0,22,26,60,0,23,26,60,0,24,26,60,0,25,26,60,0,26,26,60,0,27,26,60,0,7,216,224,222,60,0,7,216,225,222,60,0,7,216,226,222,60,0,7,216,227,222,60,0,7,216,228,222,60,0,7,216,229,222,60,0,7,216,230,222,60,0,7,216,231,222,60,0,7,216,232,222,60,0,7,216,233,222,60,0,7,216,234,222,60,0,7,216,235,222,60,0,7,216,236,222,60,0,7,216,237,222,60,0,7,216,238,222,60,0,7,216,239,222,60,0,7,216,240,222,60,0,7,216,241,222,60,0,7,216,242,222,60,0,7,216,243,222,60,0,7,216,244,222,60,0,7,216,245,222,60,0,7,216,246,222,60,0,192,27,60,0,60,0,60,0,193,27,60,0,194,27,60,0,60,0,60,0,195,27,61,0,196,27,60,0,197,27,60,0,60,0,60,0,198,27,60,0,199,27,60,0,60,0,60,0,200,27,60,0,201,27,60,0,60,0,60,0,202,27,60,0,203,27,60,0,60,0,60,0,204,27,61,0,205,27,60,0,206,27,60,0,60,0,60,0,207,27,60,0,208,27,60,0,209,27,60,0,210,27,60,0,60,0,60,0,211,27,60,0,212,27,60,0,60,0,60,0,213,27,60,0,214,27,60,0,60,0,60,0,215,27,60,0,216,27,60,0,60,0,60,0,217,27,61,0,218,27,60,0,219,27,60,0,60,0,60,0,220,27,60,0,221,27,60,0,222,27,60,0,60,0,60,0,223,27,60,0,224,27,60,0,225,27,60,0,226,27,60,0,227,27,60,0,228,27,60,0,229,27,60,0,231,27,60,0,60,0,60,0,232,27,60,0,233,27,60,0,234,27,60,0,60,0,60,0,235,27,60,0,236,27,60,0,60,0,60,0,237,27,60,0,238,27,60,0,60,0,60,0,239,27,60,0,240,27,60,0,241,27,60,0,242,27,60,0,243,27,60,0,48,169,60,0,49,169,60,0,50,169,60,0,51,169,60,0,52,169,60,0,53,169,60,0,54,169,60,0,55,169,60,0,56,169,60,0,57,169,60,0,58,169,60,0,59,169,60,0,60,169,60,0,61,169,60,0,62,169,60,0,63,169,60,0,64,169,60,0,65,169,60,0,66,169,60,0,67,169,60,0,68,169,60,0,69,169,60,0,70,169,60,0,71,169,60,0,72,169,60,0,73,169,60,0,74,169,60,0,75,169,60,0,76,169,60,0,77,169,60,0,78,169,60,0,79,169,60,0,80,169,60,0,81,169,60,0,82,169,60,0,83,169,60,0,10,169,60,0,11,169,60,0,12,169,60,0,13,169,60,0,14,169,60,0,15,169,60,0,16,169,60,0,17,169,60,0,18,169,60,0,19,169,60,0,20,169,60,0,21,169,60,0,22,169,60,0,23,169,60,0,24,169,60,0,25,169,60,0,26,169,60,0,27,169,60,0,28,169,60,0,29,169,60,0,30,169,60,0,31,169,60,0,32,169,60,0,33,169,60,0,34,169,60,0,35,169,60,0,36,169,60,0,37,169,60,0,38,169,60,0,39,169,60,0,40,169,60,0,41,169,60,0,42,169,60,0,0,16,60,0,117,16,60,0,1,16,60,0,118,16,60,0,2,16,60,0,119,16,60,0,96,170,60,0,233,169,60,0,3,16,60,0,224,169,60,0,234,169,60,0,4,16,60,0,90,16,60,0,5,16,60,0,120,16,60,0,97,170,60,0,6,16,60,0,225,169,60,0,98,170,60,0,126,170,60,0,7,16,60,0,99,170,60,0,235,169,60,0,121,16,60,0,114,170,60,0,8,16,60,0,91,16,60,0,226,169,60,0,100,170,60,0,236,169,60,0,97,16,60,0,127,170,60,0,9,16,60,0,122,16,60,0,101,170,60,0,231,169,60,0,10,16,60,0,11,16,60,0,102,170,60,0,12,16,60,0,103,170,60,0,13,16,60,0,104,170,60,0,237,169,60,0,14,16,60,0,105,170,60,0,238,169,60,0,15,16,60,0,110,16,60,0,227,169,60,0,239,169,60,0,16,16,60,0,17,16,60,0,18,16,60,0,123,16,60,0,251,169,60,0,19,16,60,0,106,170,60,0,252,169,60,0,20,16,60,0,124,16,60,0,107,170,60,0,94,16,60,0,21,16,60,0,22,16,60,0,125,16,60,0,126,16,60,0,111,170,60,0,142,16,60,0,232,169,60,0,23,16,60,0,127,16,60,0,253,169,60,0,24,16,60,0,228,169,60,0,254,169,60,0,25,16,60,0,95,16,60,0,26,16,60,0,59,16,60,0,27,16,60,0,115,170,60,0,122,170,60,0,60,16,60,0,28,16,60,0,96,16,60,0,29,16,60,0,61,16,60,0,130,16,60,0,128,16,60,0,80,16,60,0,81,16,60,0,101,16,60,0,30,16,60,0,60,0,60,0,63,16,47,0,57,16,30,16,60,0,108,170,60,0,31,16,60,0,129,16,60,0,109,170,60,0,62,16,60,0,110,170,60,0,113,170,60,0,32,16,60,0,250,169,60,0,92,16,60,0,93,16,60,0,111,16,60,0,112,16,60,0,102,16,60,0,33,16,60,0,34,16,60,0,35,16,60,0,36,16,60,0,37,16,60,0,38,16,60,0,82,16,60,0,83,16,60,0,84,16,60,0,85,16,60,0,39,16,60,0,40,16,60,0,41,16,60,0,42,16,60,0,44,16,60,0,60,0,60,0,43,16,60,0,131,16,60,0,114,16,60,0,156,16,60,0,45,16,60,0,113,16,60,0,46,16,60,0,51,16,60,0,47,16,60,0,115,16,60,0,116,16,60,0,48,16,60,0,86,16,60,0,87,16,60,0,88,16,60,0,89,16,60,0,49,16,60,0,132,16,60,0,53,16,60,0,133,16,60,0,50,16,60,0,157,16,60,0,134,16,60,0,52,16,60,0,98,16,60,0,103,16,60,0,104,16,60,0,229,169,60,0,57,16,60,0,58,16,60,0,99,16,60,0,100,16,60,0,105,16,60,0,106,16,60,0,107,16,60,0,108,16,60,0,109,16,60,0,135,16,60,0,139,16,60,0,136,16,60,0,140,16,60,0,141,16,60,0,137,16,60,0,138,16,60,0,143,16,60,0,154,16,60,0,155,16,60,0,123,170,60,0,124,170,60,0,125,170,60,0,116,170,60,0,117,170,60,0,118,170,60,0,14,32,3,216,0,221,14,32,60,0,14,32,3,216,29,221,14,32,60,0,14,32,3,216,30,221,14,32,60,0,14,32,3,216,31,221,14,32,60,0,14,32,3,216,32,221,14,32,60,0,14,32,3,216,33,221,14,32,60,0,14,32,3,216,1,221,14,32,60,0,14,32,3,216,2,221,14,32,60,0,14,32,3,216,3,221,14,32,60,0,14,32,3,216,4,221,14,32,60,0,14,32,3,216,5,221,14,32,60,0,14,32,3,216,6,221,14,32,60,0,14,32,3,216,7,221,14,32,60,0,14,32,3,216,8,221,14,32,60,0,14,32,3,216,9,221,14,32,60,0,14,32,3,216,10,221,14,32,60,0,14,32,3,216,11,221,14,32,60,0,14,32,3,216,12,221,14,32,60,0,14,32,3,216,13,221,14,32,60,0,14,32,3,216,14,221,14,32,60,0,14,32,3,216,15,221,14,32,60,0,14,32,3,216,16,221,14,32,60,0,14,32,3,216,17,221,14,32,60,0,14,32,3,216,18,221,14,32,60,0,14,32,3,216,19,221,14,32,60,0,14,32,3,216,20,221,14,32,60,0,14,32,3,216,21,221,14,32,60,0,14,32,3,216,22,221,14,32,60,0,14,32,3,216,23,221,14,32,60,0,14,32,3,216,24,221,14,32,60,0,14,32,3,216,25,221,14,32,60,0,14,32,3,216,26,221,14,32,60,0,14,32,3,216,27,221,14,32,60,0,14,32,3,216,28,221,14,32,60,0,14,32,3,216,34,221,14,32,60,0,14,32,3,216,35,221,14,32,60,0,4,216,3,221,60,0,4,216,4,221,60,0,4,216,5,221,60,0,4,216,6,221,60,0,4,216,7,221,60,0,4,216,8,221,60,0,4,216,9,221,60,0,4,216,10,221,60,0,4,216,11,221,60,0,4,216,12,221,60,0,4,216,13,221,60,0,4,216,14,221,60,0,4,216,15,221,60,0,4,216,16,221,60,0,4,216,17,221,60,0,4,216,18,221,60,0,4,216,19,221,60,0,4,216,20,221,60,0,4,216,21,221,60,0,4,216,22,221,60,0,4,216,23,221,60,0,4,216,24,221,60,0,4,216,25,221,60,0,4,216,26,221,60,0,4,216,27,221,60,0,4,216,28,221,60,0,4,216,29,221,60,0,4,216,30,221,60,0,4,216,31,221,60,0,4,216,32,221,60,0,4,216,33,221,60,0,4,216,34,221,60,0,4,216,35,221,60,0,4,216,71,221,60,0,4,216,36,221,60,0,4,216,37,221,60,0,4,216,38,221,60,0,4,216,68,221,60,0,4,216,39,221,60,0,4,216,40,221,60,0,4,216,41,221,60,0,4,216,42,221,60,0,4,216,43,221,60,0,4,216,44,221,60,0,4,216,45,221,60,0,4,216,46,221,60,0,4,216,47,221,60,0,4,216,48,221,60,0,4,216,49,221,60,0,4,216,50,221,60,0,4,216,69,221,60,0,4,216,70,221,60,0,4,216,51,221,60,0,4,216,52,221,60,0,128,23,60,0,129,23,60,0,130,23,60,0,131,23,60,0,132,23,60,0,133,23,60,0,134,23,60,0,135,23,60,0,136,23,60,0,137,23,60,0,138,23,60,0,139,23,60,0,140,23,60,0,141,23,60,0,142,23,60,0,143,23,60,0,144,23,60,0,145,23,60,0,146,23,60,0,147,23,60,0,148,23,60,0,149,23,60,0,150,23,60,0,151,23,60,0,152,23,60,0,153,23,60,0,154,23,60,0,155,23,60,0,156,23,60,0,157,23,60,0,158,23,60,0,159,23,60,0,160,23,60,0,161,23,60,0,162,23,60,0,220,23,60,0,163,23,60,0,164,23,60,0,165,23,60,0,166,23,60,0,167,23,60,0,168,23,60,0,169,23,60,0,170,23,60,0,171,23,60,0,172,23,60,0,173,23,60,0,174,23,60,0,175,23,60,0,176,23,60,0,177,23,60,0,178,23,60,0,179,23,60,0,182,23,60,0,183,23,60,0,184,23,60,0,185,23,60,0,186,23,60,0,187,23,60,0,188,23,60,0,189,23,60,0,190,23,60,0,191,23,60,0,192,23,60,0,193,23,60,0,194,23,60,0,195,23,60,0,196,23,60,0,197,23,60,0,210,23,60,0,80,25,60,0,81,25,60,0,82,25,60,0,83,25,60,0,84,25,60,0,85,25,60,0,86,25,60,0,87,25,60,0,88,25,60,0,89,25,60,0,90,25,60,0,91,25,60,0,92,25,60,0,93,25,60,0,94,25,60,0,95,25,60,0,96,25,60,0,97,25,60,0,98,25,60,0,99,25,60,0,100,25,60,0,101,25,60,0,102,25,60,0,103,25,60,0,104,25,60,0,105,25,60,0,106,25,60,0,107,25,60,0,108,25,60,0,109,25,60,0,112,25,60,0,113,25,60,0,114,25,60,0,115,25,60,0,116,25,60,0,128,25,60,0,129,25,60,0,130,25,60,0,131,25,60,0,132,25,60,0,133,25,60,0,134,25,60,0,135,25,60,0,136,25,60,0,137,25,60,0,138,25,60,0,139,25,60,0,140,25,60,0,141,25,60,0,142,25,60,0,143,25,60,0,144,25,60,0,145,25,60,0,146,25,60,0,147,25,60,0,148,25,60,0,149,25,60,0,150,25,60,0,151,25,60,0,152,25,60,0,153,25,60,0,154,25,60,0,155,25,60,0,156,25,60,0,60,0,60,0,222,25,47,0,182,25,60,0,60,0,60,0,223,25,47,0,182,25,193,25,60,0,157,25,60,0,158,25,60,0,159,25,60,0,160,25,60,0,161,25,60,0,162,25,60,0,163,25,60,0,164,25,60,0,165,25,60,0,166,25,60,0,167,25,60,0,168,25,60,0,169,25,60,0,170,25,60,0,171,25,60,0,176,25,60,0,177,25,60,0,178,25,60,0,179,25,60,0,180,25,60,0,181,25,60,0,182,25,60,0,183,25,60,0,184,25,60,0,185,25,60,0,186,25,60,0,187,25,60,0,188,25,60,0,189,25,60,0,190,25,60,0,191,25,60,0,192,25,60,0,193,25,60,0,194,25,60,0,195,25,60,0,196,25,60,0,197,25,60,0,198,25,60,0,199,25,60,0,200,25,60,0,201,25,60,0,32,26,60,0,33,26,60,0,34,26,60,0,35,26,60,0,36,26,60,0,37,26,60,0,38,26,60,0,60,0,60,0,88,26,61,0,89,26,60,0,39,26,60,0,40,26,60,0,41,26,60,0,42,26,60,0,43,26,60,0,44,26,60,0,45,26,60,0,46,26,60,0,47,26,60,0,48,26,60,0,49,26,60,0,50,26,60,0,51,26,60,0,52,26,60,0,53,26,60,0,54,26,60,0,55,26,60,0,56,26,60,0,57,26,60,0,58,26,60,0,59,26,60,0,60,0,60,0,90,26,61,0,91,26,60,0,60,26,60,0,61,26,60,0,62,26,60,0,63,26,60,0,64,26,60,0,65,26,60,0,66,26,60,0,67,26,60,0,68,26,60,0,69,26,60,0,70,26,60,0,60,0,60,0,84,26,47,0,96,26,70,26,60,0,71,26,60,0,72,26,60,0,73,26,60,0,74,26,60,0,75,26,60,0,76,26,60,0,83,26,60,0,107,26,60,0,85,26,60,0,86,26,60,0,87,26,60,0,92,26,60,0,93,26,60,0,94,26,60,0,77,26,60,0,78,26,60,0,79,26,60,0,80,26,60,0,81,26,60,0,82,26,60,0,97,26,60,0,108,26,60,0,98,26,60,0,99,26,60,0,60,0,60,0,100,26,60,0,101,26,60,0,102,26,60,0,103,26,60,0,104,26,60,0,105,26,60,0,106,26,60,0,110,26,60,0,111,26,60,0,115,26,60,0,112,26,60,0,113,26,60,0,114,26,60,0,109,26,60,0,96,26,60,0,0,170,60,0,1,170,60,0,2,170,60,0,3,170,60,0,4,170,60,0,5,170,60,0,6,170,60,0,7,170,60,0,8,170,60,0,9,170,60,0,10,170,60,0,11,170,60,0,12,170,60,0,13,170,60,0,14,170,60,0,15,170,60,0,16,170,60,0,17,170,60,0,18,170,60,0,19,170,60,0,20,170,60,0,21,170,60,0,22,170,60,0,23,170,60,0,24,170,60,0,25,170,60,0,26,170,60,0,27,170,60,0,28,170,60,0,29,170,60,0,30,170,60,0,31,170,60,0,32,170,60,0,33,170,60,0,34,170,60,0,35,170,60,0,36,170,60,0,37,170,60,0,38,170,60,0,39,170,60,0,40,170,60,0,51,170,60,0,52,170,60,0,53,170,60,0,54,170,60,0,41,170,60,0,42,170,60,0,43,170,60,0,44,170,60,0,45,170,60,0,46,170,60,0,47,170,60,0,48,170,60,0,49,170,60,0,50,170,60,0,64,170,60,0,65,170,60,0,66,170,60,0,67,170,60,0,68,170,60,0,69,170,60,0,70,170,60,0,71,170,60,0,72,170,60,0,73,170,60,0,74,170,60,0,75,170,60,0,76,170,60,0,77,170,60,0,5,27,60,0,6,27,60,0,7,27,60,0,8,27,60,0,9,27,60,0,10,27,60,0,11,27,60,0,12,27,60,0,13,27,60,0,14,27,60,0,15,27,60,0,16,27,60,0,17,27,60,0,18,27,60,0,19,27,60,0,69,27,60,0,70,27,60,0,20,27,60,0,21,27,60,0,22,27,60,0,23,27,60,0,24,27,60,0,25,27,60,0,26,27,60,0,60,0,60,0,76,27,47,0,68,27,28,27,60,0,27,27,60,0,28,27,60,0,29,27,60,0,30,27,60,0,31,27,60,0,32,27,60,0,33,27,60,0,34,27,60,0,71,27,60,0,35,27,60,0,36,27,60,0,37,27,60,0,38,27,60,0,39,27,60,0,72,27,60,0,40,27,60,0,41,27,60,0,42,27,60,0,43,27,60,0,44,27,60,0,45,27,60,0,46,27,60,0,47,27,60,0,73,27,60,0,48,27,60,0,49,27,60,0,50,27,60,0,74,27,60,0,75,27,60,0,51,27,60,0,53,27,60,0,54,27,60,0,55,27,60,0,56,27,60,0,57,27,60,0,58,27,60,0,59,27,60,0,60,27,60,0,61,27,60,0,62,27,60,0,63,27,60,0,64,27,60,0,65,27,60,0,66,27,60,0,67,27,60,0,68,27,60,0,132,169,60,0,133,169,60,0,134,169,60,0,135,169,60,0,136,169,60,0,137,169,60,0,138,169,60,0,139,169,60,0,140,169,60,0,141,169,60,0,142,169,60,0,143,169,60,0,144,169,60,0,145,169,60,0,146,169,60,0,147,169,60,0,148,169,60,0,149,169,60,0,150,169,60,0,151,169,60,0,152,169,60,0,153,169,60,0,154,169,60,0,155,169,60,0,156,169,60,0,157,169,60,0,158,169,60,0,159,169,60,0,160,169,60,0,161,169,60,0,162,169,60,0,163,169,60,0,164,169,60,0,165,169,60,0,166,169,60,0,167,169,60,0,168,169,60,0,169,169,60,0,170,169,60,0,190,169,60,0,171,169,60,0,60,0,60,0,172,169,60,0,191,169,60,0,173,169,60,0,174,169,60,0,175,169,60,0,176,169,60,0,177,169,60,0,178,169,60,0,180,169,60,0,60,0,60,0,181,169,60,0,188,169,60,0,182,169,60,0,183,169,60,0,184,169,60,0,185,169,60,0,189,169,60,0,186,169,60,0,187,169,60,0,192,169,60,0,7,216,4,223,60,0,7,216,5,223,60,0,7,216,6,223,60,0,7,216,7,223,60,0,7,216,8,223,60,0,7,216,9,223,60,0,7,216,10,223,60,0,7,216,11,223,60,0,7,216,12,223,60,0,7,216,13,223,60,0,7,216,14,223,60,0,7,216,15,223,60,0,7,216,16,223,60,0,7,216,18,223,60,0,7,216,19,223,60,0,7,216,20,223,60,0,7,216,21,223,60,0,7,216,22,223,60,0,7,216,23,223,60,0,7,216,24,223,60,0,7,216,25,223,60,0,7,216,26,223,60,0,7,216,27,223,60,0,7,216,28,223,60,0,7,216,29,223,60,0,7,216,30,223,60,0,7,216,31,223,60,0,7,216,32,223,60,0,7,216,33,223,60,0,7,216,34,223,60,0,7,216,35,223,60,0,7,216,36,223,60,0,7,216,37,223,60,0,7,216,38,223,60,0,7,216,39,223,60,0,7,216,40,223,60,0,7,216,41,223,60,0,7,216,42,223,60,0,7,216,43,223,60,0,7,216,44,223,60,0,7,216,2,223,60,0,7,216,45,223,60,0,7,216,46,223,60,0,7,216,47,223,60,0,7,216,48,223,60,0,7,216,49,223,60,0,7,216,50,223,60,0,7,216,51,223,60,0,7,216,52,223,60,0,7,216,53,223,60,0,7,216,54,223,60,0,7,216,55,223,60,0,7,216,56,223,60,0,7,216,57,223,60,0,7,216,58,223,60,0,7,216,62,223,60,0,7,216,63,223,60,0,7,216,64,223,60,0,7,216,65,223,60,0,7,216,66,223,60,0,128,24,60,0,129,24,60,0,130,24,60,0,131,24,60,0,132,24,60,0,133,24,60,0,134,24,60,0,67,24,60,0,32,24,60,0,135,24,60,0,33,24,60,0,68,24,60,0,93,24,60,0,34,24,60,0,69,24,60,0,94,24,60,0,115,24,60,0,136,24,60,0,95,24,60,0,35,24,60,0,70,24,60,0,36,24,60,0,71,24,60,0,97,24,60,0,37,24,60,0,72,24,60,0,38,24,60,0,73,24,60,0,96,24,60,0,39,24,60,0,40,24,60,0,41,24,60,0,74,24,60,0,98,24,60,0,138,24,60,0,155,24,60,0,42,24,60,0,75,24,60,0,43,24,60,0,76,24,60,0,102,24,60,0,44,24,60,0,77,24,60,0,45,24,60,0,78,24,60,0,100,24,60,0,154,24,60,0,101,24,60,0,46,24,60,0,79,24,60,0,47,24,60,0,48,24,60,0,49,24,60,0,103,24,60,0,156,24,60,0,157,24,60,0,162,24,60,0,164,24,60,0,165,24,60,0,50,24,60,0,80,24,60,0,104,24,60,0,51,24,60,0,81,24,60,0,105,24,60,0,52,24,60,0,82,24,60,0,113,24,60,0,120,24,60,0,92,24,60,0,139,24,60,0,53,24,60,0,83,24,60,0,106,24,60,0,119,24,60,0,54,24,60,0,85,24,60,0,114,24,60,0,55,24,60,0,117,24,60,0,56,24,60,0,86,24,60,0,57,24,60,0,107,24,60,0,118,24,60,0,58,24,60,0,87,24,60,0,99,24,60,0,116,24,60,0,137,24,60,0,59,24,60,0,60,24,60,0,84,24,60,0,110,24,60,0,61,24,60,0,111,24,60,0,88,24,60,0,108,24,60,0,62,24,60,0,89,24,60,0,109,24,60,0,63,24,60,0,64,24,60,0,65,24,60,0,66,24,60,0,90,24,60,0,91,24,60,0,112,24,60,0,140,24,60,0,158,24,60,0,141,24,60,0,142,24,60,0,159,24,60,0,143,24,60,0,144,24,60,0,152,24,60,0,160,24,60,0,145,24,60,0,161,24,60,0,146,24,60,0,147,24,60,0,168,24,60,0,148,24,60,0,163,24,60,0,149,24,60,0,153,24,60,0,150,24,60,0,151,24,60,0,166,24,60,0,167,24,60,0,170,24,60,0,169,24,60,0,90,28,60,0,91,28,60,0,92,28,60,0,93,28,60,0,94,28,60,0,95,28,60,0,96,28,60,0,97,28,60,0,98,28,60,0,99,28,60,0,100,28,60,0,101,28,60,0,102,28,60,0,103,28,60,0,104,28,60,0,105,28,60,0,106,28,60,0,107,28,60,0,108,28,60,0,109,28,60,0,110,28,60,0,111,28,60,0,112,28,60,0,113,28,60,0,114,28,60,0,115,28,60,0,116,28,60,0,117,28,60,0,118,28,60,0,119,28,60,0,120,28,60,0,121,28,60,0,122,28,60,0,123,28,60,0,124,28,60,0,125,28,60,0,112,171,60,0,60,0,60,0,160,19,60,0,113,171,60,0,60,0,60,0,161,19,60,0,114,171,60,0,60,0,60,0,162,19,60,0,115,171,60,0,60,0,60,0,163,19,60,0,116,171,60,0,60,0,60,0,164,19,60,0,117,171,60,0,60,0,60,0,165,19,60,0,118,171,60,0,60,0,60,0,166,19,60,0,119,171,60,0,60,0,60,0,167,19,60,0,120,171,60,0,60,0,60,0,168,19,60,0,121,171,60,0,60,0,60,0,169,19,60,0,122,171,60,0,60,0,60,0,170,19,60,0,123,171,60,0,60,0,60,0,171,19,60,0,124,171,60,0,60,0,60,0,172,19,60,0,125,171,60,0,60,0,60,0,173,19,60,0,126,171,60,0,60,0,60,0,174,19,60,0,127,171,60,0,60,0,60,0,175,19,60,0,128,171,60,0,60,0,60,0,176,19,60,0,129,171,60,0,60,0,60,0,177,19,60,0,130,171,60,0,60,0,60,0,178,19,60,0,131,171,60,0,60,0,60,0,179,19,60,0,132,171,60,0,60,0,60,0,180,19,60,0,133,171,60,0,60,0,60,0,181,19,60,0,134,171,60,0,60,0,60,0,182,19,60,0,135,171,60,0,60,0,60,0,183,19,60,0,136,171,60,0,60,0,60,0,184,19,60,0,137,171,60,0,60,0,60,0,185,19,60,0,138,171,60,0,60,0,60,0,186,19,60,0,139,171,60,0,60,0,60,0,187,19,60,0,140,171,60,0,60,0,60,0,188,19,60,0,141,171,60,0,60,0,60,0,189,19,60,0,142,171,60,0,60,0,60,0,190,19,60,0,143,171,60,0,60,0,60,0,191,19,60,0,144,171,60,0,60,0,60,0,192,19,60,0,145,171,60,0,60,0,60,0,193,19,60,0,146,171,60,0,60,0,60,0,194,19,60,0,147,171,60,0,60,0,60,0,195,19,60,0,148,171,60,0,60,0,60,0,196,19,60,0,149,171,60,0,60,0,60,0,197,19,60,0,150,171,60,0,60,0,60,0,198,19,60,0,151,171,60,0,60,0,60,0,199,19,60,0,152,171,60,0,60,0,60,0,200,19,60,0,153,171,60,0,60,0,60,0,201,19,60,0,154,171,60,0,60,0,60,0,202,19,60,0,155,171,60,0,60,0,60,0,203,19,60,0,156,171,60,0,60,0,60,0,204,19,60,0,157,171,60,0,60,0,60,0,205,19,60,0,158,171,60,0,60,0,60,0,206,19,60,0,159,171,60,0,60,0,60,0,207,19,60,0,160,171,60,0,60,0,60,0,208,19,60,0,161,171,60,0,60,0,60,0,209,19,60,0,162,171,60,0,60,0,60,0,210,19,60,0,163,171,60,0,60,0,60,0,211,19,60,0,164,171,60,0,60,0,60,0,212,19,60,0,165,171,60,0,60,0,60,0,213,19,60,0,166,171,60,0,60,0,60,0,214,19,60,0,167,171,60,0,60,0,60,0,215,19,60,0,168,171,60,0,60,0,60,0,216,19,60,0,169,171,60,0,60,0,60,0,217,19,60,0,170,171,60,0,60,0,60,0,218,19,60,0,171,171,60,0,60,0,60,0,219,19,60,0,172,171,60,0,60,0,60,0,220,19,60,0,173,171,60,0,60,0,60,0,221,19,60,0,174,171,60,0,60,0,60,0,222,19,60,0,175,171,60,0,60,0,60,0,223,19,60,0,176,171,60,0,60,0,60,0,224,19,60,0,177,171,60,0,60,0,60,0,225,19,60,0,178,171,60,0,60,0,60,0,226,19,60,0,179,171,60,0,60,0,60,0,227,19,60,0,180,171,60,0,60,0,60,0,228,19,60,0,181,171,60,0,60,0,60,0,229,19,60,0,182,171,60,0,60,0,60,0,230,19,60,0,183,171,60,0,60,0,60,0,231,19,60,0,184,171,60,0,60,0,60,0,232,19,60,0,185,171,60,0,60,0,60,0,233,19,60,0,186,171,60,0,60,0,60,0,234,19,60,0,187,171,60,0,60,0,60,0,235,19,60,0,188,171,60,0,60,0,60,0,236,19,60,0,189,171,60,0,60,0,60,0,237,19,60,0,190,171,60,0,60,0,60,0,238,19,60,0,191,171,60,0,60,0,60,0,239,19,60,0,248,19,60,0,60,0,60,0,240,19,60,0,249,19,60,0,60,0,60,0,241,19,60,0,250,19,60,0,60,0,60,0,242,19,60,0,251,19,60,0,60,0,60,0,243,19,60,0,252,19,60,0,60,0,60,0,244,19,60,0,253,19,60,0,60,0,60,0,245,19,60,0,1,216,216,220,60,0,60,0,60,0,1,216,176,220,60,0,1,216,217,220,60,0,60,0,60,0,1,216,177,220,60,0,1,216,218,220,60,0,60,0,60,0,1,216,178,220,60,0,1,216,219,220,60,0,60,0,60,0,1,216,179,220,60,0,1,216,220,220,60,0,60,0,60,0,1,216,180,220,60,0,1,216,221,220,60,0,60,0,60,0,1,216,181,220,60,0,1,216,222,220,60,0,60,0,60,0,1,216,182,220,60,0,1,216,223,220,60,0,60,0,60,0,1,216,183,220,60,0,1,216,224,220,60,0,60,0,60,0,1,216,184,220,60,0,1,216,225,220,60,0,60,0,60,0,1,216,185,220,60,0,1,216,226,220,60,0,60,0,60,0,1,216,186,220,60,0,1,216,227,220,60,0,60,0,60,0,1,216,187,220,60,0,1,216,228,220,60,0,60,0,60,0,1,216,188,220,60,0,1,216,229,220,60,0,60,0,60,0,1,216,189,220,60,0,1,216,230,220,60,0,60,0,60,0,1,216,190,220,60,0,1,216,231,220,60,0,60,0,60,0,1,216,191,220,60,0,1,216,232,220,60,0,60,0,60,0,1,216,192,220,60,0,1,216,233,220,60,0,60,0,60,0,1,216,193,220,60,0,1,216,234,220,60,0,60,0,60,0,1,216,194,220,60,0,1,216,235,220,60,0,60,0,60,0,1,216,195,220,60,0,1,216,236,220,60,0,60,0,60,0,1,216,196,220,60,0,1,216,237,220,60,0,60,0,60,0,1,216,197,220,60,0,1,216,238,220,60,0,60,0,60,0,1,216,198,220,60,0,1,216,239,220,60,0,60,0,60,0,1,216,199,220,60,0,1,216,240,220,60,0,60,0,60,0,1,216,200,220,60,0,1,216,241,220,60,0,60,0,60,0,1,216,201,220,60,0,1,216,242,220,60,0,60,0,60,0,1,216,202,220,60,0,1,216,243,220,60,0,60,0,60,0,1,216,203,220,60,0,1,216,244,220,60,0,60,0,60,0,1,216,204,220,60,0,1,216,245,220,60,0,60,0,60,0,1,216,205,220,60,0,1,216,246,220,60,0,60,0,60,0,1,216,206,220,60,0,1,216,247,220,60,0,60,0,60,0,1,216,207,220,60,0,1,216,248,220,60,0,60,0,60,0,1,216,208,220,60,0,1,216,249,220,60,0,60,0,60,0,1,216,209,220,60,0,1,216,250,220,60,0,60,0,60,0,1,216,210,220,60,0,1,216,251,220,60,0,60,0,60,0,1,216,211,220,60,0,1,20,60,0,2,20,60,0,3,20,60,0,4,20,60,0,5,20,60,0,6,20,60,0,7,20,60,0,8,20,60,0,9,20,60,0,10,20,60,0,11,20,60,0,12,20,60,0,13,20,60,0,14,20,60,0,15,20,60,0,16,20,60,0,17,20,60,0,18,20,60,0,19,20,60,0,20,20,60,0,21,20,60,0,22,20,60,0,23,20,60,0,24,20,60,0,25,20,60,0,26,20,60,0,27,20,60,0,28,20,60,0,29,20,60,0,30,20,60,0,31,20,60,0,32,20,60,0,33,20,60,0,34,20,60,0,35,20,60,0,36,20,60,0,37,20,60,0,38,20,60,0,39,20,60,0,40,20,60,0,41,20,60,0,42,20,60,0,43,20,60,0,44,20,60,0,45,20,60,0,46,20,60,0,47,20,60,0,48,20,60,0,49,20,60,0,50,20,60,0,51,20,60,0,52,20,60,0,53,20,60,0,54,20,60,0,55,20,60,0,56,20,60,0,57,20,60,0,58,20,60,0,59,20,60,0,60,20,60,0,61,20,60,0,62,20,60,0,63,20,60,0,64,20,60,0,65,20,60,0,66,20,60,0,67,20,60,0,68,20,60,0,69,20,60,0,70,20,60,0,71,20,60,0,72,20,60,0,73,20,60,0,74,20,60,0,75,20,60,0,76,20,60,0,77,20,60,0,78,20,60,0,79,20,60,0,80,20,60,0,81,20,60,0,82,20,60,0,83,20,60,0,84,20,60,0,85,20,60,0,86,20,60,0,87,20,60,0,88,20,60,0,89,20,60,0,90,20,60,0,91,20,60,0,92,20,60,0,93,20,60,0,94,20,60,0,95,20,60,0,96,20,60,0,97,20,60,0,98,20,60,0,99,20,60,0,100,20,60,0,101,20,60,0,102,20,60,0,103,20,60,0,104,20,60,0,105,20,60,0,106,20,60,0,107,20,60,0,108,20,60,0,109,20,60,0,110,20,60,0,111,20,60,0,112,20,60,0,113,20,60,0,114,20,60,0,115,20,60,0,116,20,60,0,117,20,60,0,118,20,60,0,119,20,60,0,120,20,60,0,121,20,60,0,122,20,60,0,123,20,60,0,124,20,60,0,125,20,60,0,126,20,60,0,127,20,60,0,128,20,60,0,129,20,60,0,130,20,60,0,131,20,60,0,132,20,60,0,133,20,60,0,134,20,60,0,135,20,60,0,136,20,60,0,137,20,60,0,138,20,60,0,139,20,60,0,140,20,60,0,141,20,60,0,142,20,60,0,143,20,60,0,144,20,60,0,145,20,60,0,146,20,60,0,147,20,60,0,148,20,60,0,149,20,60,0,150,20,60,0,151,20,60,0,152,20,60,0,153,20,60,0,154,20,60,0,155,20,60,0,156,20,60,0,157,20,60,0,158,20,60,0,159,20,60,0,160,20,60,0,161,20,60,0,162,20,60,0,163,20,60,0,164,20,60,0,165,20,60,0,166,20,60,0,167,20,60,0,168,20,60,0,169,20,60,0,170,20,60,0,171,20,60,0,172,20,60,0,173,20,60,0,174,20,60,0,175,20,60,0,176,20,60,0,177,20,60,0,178,20,60,0,179,20,60,0,180,20,60,0,181,20,60,0,182,20,60,0,183,20,60,0,184,20,60,0,185,20,60,0,186,20,60,0,187,20,60,0,188,20,60,0,189,20,60,0,190,20,60,0,191,20,60,0,192,20,60,0,193,20,60,0,194,20,60,0,195,20,60,0,196,20,60,0,197,20,60,0,198,20,60,0,199,20,60,0,200,20,60,0,201,20,60,0,202,20,60,0,203,20,60,0,204,20,60,0,205,20,60,0,206,20,60,0,207,20,60,0,208,20,60,0,209,20,60,0,210,20,60,0,211,20,60,0,212,20,60,0,213,20,60,0,214,20,60,0,215,20,60,0,216,20,60,0,217,20,60,0,218,20,60,0,219,20,60,0,220,20,60,0,221,20,60,0,222,20,60,0,223,20,60,0,224,20,60,0,225,20,60,0,226,20,60,0,227,20,60,0,228,20,60,0,229,20,60,0,230,20,60,0,231,20,60,0,232,20,60,0,233,20,60,0,234,20,60,0,235,20,60,0,236,20,60,0,237,20,60,0,238,20,60,0,239,20,60,0,240,20,60,0,241,20,60,0,242,20,60,0,243,20,60,0,244,20,60,0,245,20,60,0,246,20,60,0,247,20,60,0,248,20,60,0,249,20,60,0,250,20,60,0,251,20,60,0,252,20,60,0,253,20,60,0,254,20,60,0,255,20,60,0,0,21,60,0,1,21,60,0,2,21,60,0,3,21,60,0,4,21,60,0,5,21,60,0,6,21,60,0,7,21,60,0,8,21,60,0,9,21,60,0,10,21,60,0,11,21,60,0,12,21,60,0,13,21,60,0,14,21,60,0,15,21,60,0,16,21,60,0,17,21,60,0,18,21,60,0,19,21,60,0,20,21,60,0,21,21,60,0,22,21,60,0,23,21,60,0,24,21,60,0,25,21,60,0,26,21,60,0,27,21,60,0,28,21,60,0,29,21,60,0,30,21,60,0,31,21,60,0,32,21,60,0,33,21,60,0,34,21,60,0,35,21,60,0,36,21,60,0,37,21,60,0,38,21,60,0,39,21,60,0,40,21,60,0,41,21,60,0,42,21,60,0,43,21,60,0,44,21,60,0,45,21,60,0,46,21,60,0,47,21,60,0,48,21,60,0,49,21,60,0,50,21,60,0,51,21,60,0,52,21,60,0,53,21,60,0,54,21,60,0,55,21,60,0,56,21,60,0,57,21,60,0,58,21,60,0,59,21,60,0,60,21,60,0,61,21,60,0,62,21,60,0,63,21,60,0,64,21,60,0,65,21,60,0,66,21,60,0,67,21,60,0,68,21,60,0,69,21,60,0,70,21,60,0,71,21,60,0,72,21,60,0,73,21,60,0,74,21,60,0,75,21,60,0,76,21,60,0,77,21,60,0,78,21,60,0,79,21,60,0,80,21,60,0,81,21,60,0,82,21,60,0,83,21,60,0,84,21,60,0,85,21,60,0,86,21,60,0,87,21,60,0,88,21,60,0,89,21,60,0,90,21,60,0,91,21,60,0,92,21,60,0,93,21,60,0,94,21,60,0,95,21,60,0,96,21,60,0,97,21,60,0,98,21,60,0,99,21,60,0,100,21,60,0,101,21,60,0,102,21,60,0,103,21,60,0,104,21,60,0,105,21,60,0,106,21,60,0,107,21,60,0,108,21,60,0,109,21,60,0,110,21,60,0,111,21,60,0,112,21,60,0,113,21,60,0,114,21,60,0,115,21,60,0,116,21,60,0,117,21,60,0,118,21,60,0,119,21,60,0,120,21,60,0,121,21,60,0,122,21,60,0,123,21,60,0,125,21,60,0,111,22,60,0,126,21,60,0,127,21,60,0,128,21,60,0,129,21,60,0,130,21,60,0,131,21,60,0,132,21,60,0,133,21,60,0,134,21,60,0,135,21,60,0,136,21,60,0,137,21,60,0,138,21,60,0,139,21,60,0,140,21,60,0,141,21,60,0,112,22,60,0,142,21,60,0,143,21,60,0,144,21,60,0,145,21,60,0,146,21,60,0,147,21,60,0,148,21,60,0,149,21,60,0,113,22,60,0,114,22,60,0,115,22,60,0,116,22,60,0,117,22,60,0,118,22,60,0,150,21,60,0,151,21,60,0,152,21,60,0,153,21,60,0,154,21,60,0,155,21,60,0,156,21,60,0,157,21,60,0,158,21,60,0,159,21,60,0,160,21,60,0,161,21,60,0,162,21,60,0,163,21,60,0,164,21,60,0,165,21,60,0,166,21,60,0,124,21,60,0,167,21,60,0,168,21,60,0,169,21,60,0,170,21,60,0,171,21,60,0,172,21,60,0,173,21,60,0,174,21,60,0,175,21,60,0,176,21,60,0,177,21,60,0,178,21,60,0,179,21,60,0,180,21,60,0,181,21,60,0,182,21,60,0,183,21,60,0,184,21,60,0,185,21,60,0,186,21,60,0,187,21,60,0,188,21,60,0,189,21,60,0,190,21,60,0,191,21,60,0,192,21,60,0,193,21,60,0,194,21,60,0,195,21,60,0,196,21,60,0,197,21,60,0,198,21,60,0,199,21,60,0,200,21,60,0,201,21,60,0,202,21,60,0,203,21,60,0,204,21,60,0,205,21,60,0,206,21,60,0,207,21,60,0,208,21,60,0,209,21,60,0,210,21,60,0,211,21,60,0,212,21,60,0,213,21,60,0,214,21,60,0,215,21,60,0,216,21,60,0,217,21,60,0,218,21,60,0,219,21,60,0,220,21,60,0,221,21,60,0,222,21,60,0,223,21,60,0,224,21,60,0,225,21,60,0,226,21,60,0,227,21,60,0,228,21,60,0,229,21,60,0,230,21,60,0,231,21,60,0,232,21,60,0,233,21,60,0,234,21,60,0,235,21,60,0,236,21,60,0,237,21,60,0,238,21,60,0,239,21,60,0,240,21,60,0,241,21,60,0,242,21,60,0,243,21,60,0,244,21,60,0,245,21,60,0,246,21,60,0,247,21,60,0,248,21,60,0,249,21,60,0,250,21,60,0,251,21,60,0,252,21,60,0,253,21,60,0,254,21,60,0,255,21,60,0,0,22,60,0,1,22,60,0,2,22,60,0,3,22,60,0,4,22,60,0,5,22,60,0,6,22,60,0,7,22,60,0,8,22,60,0,9,22,60,0,10,22,60,0,11,22,60,0,12,22,60,0,13,22,60,0,14,22,60,0,15,22,60,0,16,22,60,0,17,22,60,0,18,22,60,0,19,22,60,0,20,22,60,0,21,22,60,0,22,22,60,0,23,22,60,0,24,22,60,0,25,22,60,0,26,22,60,0,27,22,60,0,28,22,60,0,29,22,60,0,30,22,60,0,31,22,60,0,32,22,60,0,33,22,60,0,34,22,60,0,35,22,60,0,36,22,60,0,37,22,60,0,38,22,60,0,39,22,60,0,40,22,60,0,41,22,60,0,42,22,60,0,43,22,60,0,44,22,60,0,45,22,60,0,46,22,60,0,47,22,60,0,48,22,60,0,49,22,60,0,50,22,60,0,51,22,60,0,52,22,60,0,53,22,60,0,54,22,60,0,55,22,60,0,56,22,60,0,57,22,60,0,58,22,60,0,59,22,60,0,60,22,60,0,61,22,60,0,62,22,60,0,63,22,60,0,64,22,60,0,65,22,60,0,66,22,60,0,67,22,60,0,68,22,60,0,69,22,60,0,70,22,60,0,71,22,60,0,72,22,60,0,73,22,60,0,74,22,60,0,75,22,60,0,76,22,60,0,77,22,60,0,78,22,60,0,79,22,60,0,80,22,60,0,81,22,60,0,82,22,60,0,83,22,60,0,84,22,60,0,85,22,60,0,86,22,60,0,87,22,60,0,88,22,60,0,89,22,60,0,90,22,60,0,91,22,60,0,92,22,60,0,93,22,60,0,94,22,60,0,95,22,60,0,96,22,60,0,97,22,60,0,98,22,60,0,99,22,60,0,100,22,60,0,101,22,60,0,102,22,60,0,103,22,60,0,104,22,60,0,105,22,60,0,106,22,60,0,107,22,60,0,108,22,60,0,119,22,60,0,120,22,60,0,121,22,60,0,122,22,60,0,123,22,60,0,124,22,60,0,125,22,60,0,126,22,60,0,127,22,60,0,176,24,60,0,177,24,60,0,178,24,60,0,179,24,60,0,180,24,60,0,181,24,60,0,182,24,60,0,183,24,60,0,184,24,60,0,185,24,60,0,186,24,60,0,187,24,60,0,188,24,60,0,189,24,60,0,190,24,60,0,191,24,60,0,192,24,60,0,193,24,60,0,194,24,60,0,195,24,60,0,196,24,60,0,197,24,60,0,198,24,60,0,199,24,60,0,200,24,60,0,201,24,60,0,202,24,60,0,203,24,60,0,204,24,60,0,205,24,60,0,206,24,60,0,207,24,60,0,208,24,60,0,209,24,60,0,210,24,60,0,211,24,60,0,212,24,60,0,213,24,60,0,214,24,60,0,215,24,60,0,216,24,60,0,217,24,60,0,218,24,60,0,219,24,60,0,220,24,60,0,221,24,60,0,222,24,60,0,223,24,60,0,224,24,60,0,225,24,60,0,226,24,60,0,227,24,60,0,228,24,60,0,229,24,60,0,230,24,60,0,231,24,60,0,232,24,60,0,233,24,60,0,234,24,60,0,235,24,60,0,236,24,60,0,237,24,60,0,238,24,60,0,239,24,60,0,240,24,60,0,241,24,60,0,242,24,60,0,243,24,60,0,244,24,60,0,245,24,60,0,6,216,176,222,60,0,6,216,177,222,60,0,6,216,178,222,60,0,6,216,179,222,60,0,6,216,180,222,60,0,6,216,181,222,60,0,6,216,182,222,60,0,6,216,183,222,60,0,6,216,184,222,60,0,6,216,185,222,60,0,6,216,186,222,60,0,6,216,187,222,60,0,6,216,188,222,60,0,6,216,189,222,60,0,6,216,190,222,60,0,6,216,191,222,60,0,129,22,60,0,130,22,60,0,131,22,60,0,132,22,60,0,133,22,60,0,134,22,60,0,135,22,60,0,136,22,60,0,137,22,60,0,138,22,60,0,139,22,60,0,140,22,60,0,141,22,60,0,142,22,60,0,143,22,60,0,144,22,60,0,145,22,60,0,146,22,60,0,147,22,60,0,148,22,60,0,149,22,60,0,150,22,60,0,151,22,60,0,152,22,60,0,153,22,60,0,154,22,60,0,160,22,60,0,60,0,161,22,60,0,162,22,60,0,60,0,164,22,60,0,60,0,165,22,60,0,166,22,60,0,60,0,60,0,240,22,47,0,166,22,60,0,60,0,167,22,60,0,168,22,60,0,60,0,169,22,60,0,60,0,172,22,60,0,60,0,173,22,60,0,60,0,174,22,60,0,244,22,60,0,175,22,60,0,176,22,60,0,177,22,60,0,178,22,60,0,60,0,179,22,60,0,60,0,180,22,60,0,60,0,181,22,60,0,60,0,182,22,60,0,241,22,60,0,183,22,60,0,185,22,60,0,60,0,233,22,60,0,186,22,60,0,60,0,187,22,60,0,60,0,188,22,60,0,60,0,189,22,60,0,190,22,60,0,60,0,191,22,60,0,60,0,192,22,60,0,193,22,60,0,60,0,194,22,60,0,245,22,60,0,195,22,60,0,60,0,196,22,60,0,197,22,60,0,60,0,60,0,238,22,47,0,218,22,60,0,60,0,198,22,60,0,199,22,60,0,200,22,60,0,60,0,213,22,60,0,201,22,60,0,202,22,60,0,60,0,203,22,60,0,60,0,234,22,60,0,60,0,204,22,60,0,60,0,205,22,60,0,60,0,206,22,60,0,242,22,60,0,207,22,60,0,60,0,208,22,60,0,60,0,209,22,60,0,210,22,60,0,60,0,211,22,60,0,60,0,212,22,60,0,214,22,60,0,246,22,60,0,215,22,60,0,60,0,216,22,60,0,60,0,60,0,239,22,47,0,215,22,60,0,60,0,217,22,60,0,218,22,60,0,60,0,219,22,60,0,220,22,60,0,60,0,221,22,60,0,222,22,60,0,223,22,60,0,243,22,60,0,170,22,60,0,247,22,60,0,171,22,60,0,248,22,60,0,163,22,60,0,224,22,60,0,227,22,60,0,184,22,60,0,228,22,60,0,225,22,60,0,226,22,60,0,229,22,60,0,230,22,60,0,60,0,231,22,60,0,60,0,232,22,60,0,14,32,3,216,192,220,14,32,60,0,60,0,60,0,14,32,3,216,128,220,14,32,60,0,60,0,14,32,3,216,193,220,14,32,60,0,60,0,60,0,14,32,3,216,129,220,14,32,60,0,14,32,3,216,194,220,14,32,60,0,60,0,60,0,14,32,3,216,130,220,14,32,60,0,14,32,3,216,195,220,14,32,60,0,60,0,60,0,14,32,3,216,131,220,14,32,60,0,14,32,3,216,196,220,14,32,60,0,60,0,60,0,14,32,3,216,132,220,14,32,60,0,14,32,3,216,197,220,14,32,60,0,60,0,60,0,14,32,3,216,133,220,14,32,60,0,14,32,3,216,198,220,14,32,60,0,60,0,60,0,14,32,3,216,134,220,14,32,60,0,14,32,3,216,199,220,14,32,60,0,60,0,60,0,14,32,3,216,135,220,14,32,60,0,14,32,3,216,200,220,14,32,60,0,60,0,60,0,14,32,3,216,136,220,14,32,60,0,14,32,3,216,201,220,14,32,60,0,60,0,60,0,14,32,3,216,137,220,14,32,60,0,60,0,14,32,3,216,202,220,14,32,60,0,60,0,60,0,14,32,3,216,138,220,14,32,60,0,60,0,14,32,3,216,203,220,14,32,60,0,60,0,60,0,14,32,3,216,139,220,14,32,60,0,14,32,3,216,204,220,14,32,60,0,60,0,60,0,14,32,3,216,140,220,14,32,60,0,14,32,3,216,205,220,14,32,60,0,60,0,60,0,14,32,3,216,141,220,14,32,60,0,14,32,3,216,206,220,14,32,60,0,60,0,60,0,14,32,3,216,142,220,14,32,60,0,14,32,3,216,207,220,14,32,60,0,60,0,60,0,14,32,3,216,143,220,14,32,60,0,14,32,3,216,208,220,14,32,60,0,60,0,60,0,14,32,3,216,144,220,14,32,60,0,60,0,14,32,3,216,209,220,14,32,60,0,60,0,60,0,14,32,3,216,145,220,14,32,60,0,14,32,3,216,210,220,14,32,60,0,60,0,60,0,14,32,3,216,146,220,14,32,60,0,14,32,3,216,211,220,14,32,60,0,60,0,60,0,14,32,3,216,147,220,14,32,60,0,14,32,3,216,212,220,14,32,60,0,60,0,60,0,14,32,3,216,148,220,14,32,60,0,14,32,3,216,213,220,14,32,60,0,60,0,60,0,14,32,3,216,149,220,14,32,60,0,14,32,3,216,214,220,14,32,60,0,60,0,60,0,14,32,3,216,150,220,14,32,60,0,14,32,3,216,215,220,14,32,60,0,60,0,60,0,14,32,3,216,151,220,14,32,60,0,14,32,3,216,216,220,14,32,60,0,60,0,60,0,14,32,3,216,152,220,14,32,60,0,14,32,3,216,217,220,14,32,60,0,60,0,60,0,14,32,3,216,153,220,14,32,60,0,14,32,3,216,218,220,14,32,60,0,60,0,60,0,14,32,3,216,154,220,14,32,60,0,14,32,3,216,219,220,14,32,60,0,60,0,60,0,14,32,3,216,155,220,14,32,60,0,60,0,14,32,3,216,220,220,14,32,60,0,60,0,60,0,14,32,3,216,156,220,14,32,60,0,14,32,3,216,221,220,14,32,60,0,60,0,60,0,14,32,3,216,157,220,14,32,60,0,60,0,14,32,3,216,222,220,14,32,60,0,60,0,60,0,14,32,3,216,158,220,14,32,60,0,60,0,14,32,3,216,223,220,14,32,60,0,60,0,60,0,14,32,3,216,159,220,14,32,60,0,14,32,3,216,224,220,14,32,60,0,60,0,60,0,14,32,3,216,160,220,14,32,60,0,14,32,3,216,225,220,14,32,60,0,60,0,60,0,14,32,3,216,161,220,14,32,60,0,14,32,3,216,226,220,14,32,60,0,60,0,60,0,14,32,3,216,162,220,14,32,60,0,60,0,14,32,3,216,227,220,14,32,60,0,60,0,60,0,14,32,3,216,163,220,14,32,60,0,14,32,3,216,228,220,14,32,60,0,60,0,60,0,14,32,3,216,164,220,14,32,60,0,14,32,3,216,229,220,14,32,60,0,60,0,60,0,14,32,3,216,165,220,14,32,60,0,14,32,3,216,230,220,14,32,60,0,60,0,60,0,14,32,3,216,166,220,14,32,60,0,14,32,3,216,231,220,14,32,60,0,60,0,60,0,14,32,3,216,167,220,14,32,60,0,14,32,3,216,232,220,14,32,60,0,60,0,60,0,14,32,3,216,168,220,14,32,60,0,14,32,3,216,233,220,14,32,60,0,60,0,60,0,14,32,3,216,169,220,14,32,60,0,14,32,3,216,234,220,14,32,60,0,60,0,60,0,14,32,3,216,170,220,14,32,60,0,60,0,14,32,3,216,235,220,14,32,60,0,60,0,60,0,14,32,3,216,171,220,14,32,60,0,14,32,3,216,236,220,14,32,60,0,60,0,60,0,14,32,3,216,172,220,14,32,60,0,60,0,14,32,3,216,237,220,14,32,60,0,60,0,60,0,14,32,3,216,173,220,14,32,60,0,14,32,3,216,238,220,14,32,60,0,60,0,60,0,14,32,3,216,174,220,14,32,60,0,14,32,3,216,239,220,14,32,60,0,60,0,60,0,14,32,3,216,175,220,14,32,60,0,14,32,3,216,240,220,14,32,60,0,60,0,60,0,14,32,3,216,176,220,14,32,60,0,14,32,3,216,241,220,14,32,60,0,60,0,60,0,14,32,3,216,177,220,14,32,60,0,14,32,3,216,242,220,14,32,60,0,60,0,60,0,14,32,3,216,178,220,14,32,60,0,14,32,3,216,0,220,14,32,60,0,60,0,14,32,3,216,1,220,14,32,60,0,14,32,3,216,2,220,14,32,60,0,14,32,3,216,3,220,14,32,60,0,60,0,14,32,3,216,4,220,14,32,60,0,14,32,3,216,5,220,14,32,60,0,14,32,3,216,6,220,14,32,60,0,14,32,3,216,7,220,14,32,60,0,60,0,14,32,3,216,8,220,14,32,60,0,14,32,3,216,9,220,14,32,60,0,60,0,14,32,3,216,10,220,14,32,60,0,14,32,3,216,11,220,14,32,60,0,60,0,14,32,3,216,12,220,14,32,60,0,14,32,3,216,13,220,14,32,60,0,60,0,14,32,3,216,14,220,14,32,60,0,14,32,3,216,15,220,14,32,60,0,60,0,14,32,3,216,16,220,14,32,60,0,14,32,3,216,17,220,14,32,60,0,60,0,14,32,3,216,18,220,14,32,60,0,14,32,3,216,19,220,14,32,60,0,14,32,3,216,20,220,14,32,60,0,60,0,14,32,3,216,21,220,14,32,60,0,14,32,3,216,22,220,14,32,60,0,60,0,14,32,3,216,23,220,14,32,60,0,14,32,3,216,24,220,14,32,60,0,60,0,14,32,3,216,25,220,14,32,60,0,14,32,3,216,26,220,14,32,60,0,60,0,14,32,3,216,27,220,14,32,60,0,14,32,3,216,28,220,14,32,60,0,60,0,14,32,3,216,29,220,14,32,60,0,14,32,3,216,30,220,14,32,60,0,60,0,14,32,3,216,31,220,14,32,60,0,14,32,3,216,32,220,14,32,60,0,14,32,3,216,33,220,14,32,60,0,14,32,3,216,34,220,14,32,60,0,14,32,3,216,35,220,14,32,60,0,14,32,3,216,36,220,14,32,60,0,60,0,14,32,3,216,37,220,14,32,60,0,14,32,3,216,38,220,14,32,60,0,60,0,14,32,3,216,39,220,14,32,60,0,14,32,3,216,40,220,14,32,60,0,60,0,14,32,3,216,41,220,14,32,60,0,14,32,3,216,42,220,14,32,60,0,60,0,14,32,3,216,43,220,14,32,60,0,14,32,3,216,44,220,14,32,60,0,14,32,3,216,45,220,14,32,60,0,60,0,14,32,3,216,46,220,14,32,60,0,14,32,3,216,47,220,14,32,60,0,14,32,3,216,48,220,14,32,60,0,14,32,3,216,49,220,14,32,60,0,14,32,3,216,50,220,14,32,60,0,60,0,14,32,3,216,51,220,14,32,60,0,14,32,3,216,52,220,14,32,60,0,60,0,14,32,3,216,53,220,14,32,60,0,14,32,3,216,54,220,14,32,60,0,60,0,14,32,3,216,55,220,14,32,60,0,14,32,3,216,56,220,14,32,60,0,60,0,14,32,3,216,57,220,14,32,60,0,14,32,3,216,58,220,14,32,60,0,60,0,14,32,3,216,59,220,14,32,60,0,14,32,3,216,60,220,14,32,60,0,14,32,3,216,61,220,14,32,60,0,14,32,3,216,62,220,14,32,60,0,14,32,3,216,63,220,14,32,60,0,60,0,14,32,3,216,64,220,14,32,60,0,14,32,3,216,65,220,14,32,60,0,60,0,14,32,3,216,66,220,14,32,60,0,14,32,3,216,67,220,14,32,60,0,60,0,14,32,3,216,68,220,14,32,60,0,14,32,3,216,69,220,14,32,60,0,60,0,14,32,3,216,70,220,14,32,60,0,14,32,3,216,71,220,14,32,60,0,14,32,3,216,72,220,14,32,60,0,0,165,60,0,1,165,60,0,2,165,60,0,3,165,60,0,4,165,60,0,5,165,60,0,6,165,60,0,7,165,60,0,8,165,60,0,9,165,60,0,10,165,60,0,11,165,60,0,12,165,60,0,60,0,60,0,19,166,47,0,11,166,60,0,13,165,60,0,14,165,60,0,15,165,60,0,16,165,60,0,17,165,60,0,18,165,60,0,19,165,60,0,20,165,60,0,21,165,60,0,22,165,60,0,23,165,60,0,24,165,60,0,25,165,60,0,26,165,60,0,27,165,60,0,28,165,60,0,29,165,60,0,30,165,60,0,60,0,60,0,20,166,47,0,11,166,60,0,31,165,60,0,32,165,60,0,33,165,60,0,34,165,60,0,35,165,60,0,36,165,60,0,37,165,60,0,38,165,60,0,39,165,60,0,40,165,60,0,41,165,60,0,42,165,60,0,43,165,60,0,44,165,60,0,45,165,60,0,46,165,60,0,47,165,60,0,48,165,60,0,49,165,60,0,50,165,60,0,51,165,60,0,60,0,60,0,21,166,47,0,11,166,60,0,52,165,60,0,53,165,60,0,54,165,60,0,55,165,60,0,56,165,60,0,57,165,60,0,58,165,60,0,59,165,60,0,60,165,60,0,61,165,60,0,62,165,60,0,63,165,60,0,64,165,60,0,65,165,60,0,66,165,60,0,67,165,60,0,68,165,60,0,69,165,60,0,70,165,60,0,71,165,60,0,60,0,60,0,22,166,47,0,12,166,60,0,72,165,60,0,73,165,60,0,74,165,60,0,75,165,60,0,76,165,60,0,77,165,60,0,78,165,60,0,79,165,60,0,80,165,60,0,81,165,60,0,82,165,60,0,60,0,60,0,23,166,47,0,11,166,60,0,83,165,60,0,84,165,60,0,85,165,60,0,86,165,60,0,87,165,60,0,88,165,60,0,60,0,60,0,16,166,60,0,60,0,60,0,24,166,47,0,12,166,60,0,89,165,60,0,90,165,60,0,60,0,60,0,25,166,47,0,12,166,60,0,91,165,60,0,92,165,60,0,93,165,60,0,94,165,60,0,95,165,60,0,96,165,60,0,60,0,60,0,26,166,47,0,11,166,60,0,97,165,60,0,98,165,60,0,99,165,60,0,100,165,60,0,101,165,60,0,102,165,60,0,103,165,60,0,104,165,60,0,105,165,60,0,106,165,60,0,60,0,60,0,17,166,60,0,107,165,60,0,108,165,60,0,109,165,60,0,110,165,60,0,60,0,60,0,42,166,60,0,111,165,60,0,112,165,60,0,113,165,60,0,114,165,60,0,115,165,60,0,116,165,60,0,117,165,60,0,118,165,60,0,119,165,60,0,120,165,60,0,121,165,60,0,122,165,60,0,123,165,60,0,124,165,60,0,125,165,60,0,126,165,60,0,127,165,60,0,128,165,60,0,129,165,60,0,130,165,60,0,131,165,60,0,132,165,60,0,133,165,60,0,60,0,60,0,27,166,47,0,11,166,60,0,134,165,60,0,135,165,60,0,60,0,60,0,18,166,60,0,136,165,60,0,137,165,60,0,138,165,60,0,139,165,60,0,140,165,60,0,141,165,60,0,142,165,60,0,143,165,60,0,144,165,60,0,145,165,60,0,146,165,60,0,147,165,60,0,148,165,60,0,149,165,60,0,150,165,60,0,151,165,60,0,152,165,60,0,153,165,60,0,154,165,60,0,155,165,60,0,156,165,60,0,157,165,60,0,158,165,60,0,159,165,60,0,160,165,60,0,161,165,60,0,162,165,60,0,163,165,60,0,164,165,60,0,165,165,60,0,166,165,60,0,167,165,60,0,168,165,60,0,169,165,60,0,170,165,60,0,171,165,60,0,172,165,60,0,173,165,60,0,174,165,60,0,175,165,60,0,176,165,60,0,177,165,60,0,178,165,60,0,179,165,60,0,180,165,60,0,60,0,60,0,28,166,47,0,11,166,60,0,181,165,60,0,182,165,60,0,183,165,60,0,184,165,60,0,185,165,60,0,186,165,60,0,187,165,60,0,188,165,60,0,189,165,60,0,190,165,60,0,191,165,60,0,192,165,60,0,193,165,60,0,194,165,60,0,195,165,60,0,196,165,60,0,197,165,60,0,198,165,60,0,199,165,60,0,200,165,60,0,201,165,60,0,202,165,60,0,203,165,60,0,60,0,60,0,29,166,47,0,11,166,60,0,204,165,60,0,205,165,60,0,206,165,60,0,207,165,60,0,208,165,60,0,209,165,60,0,60,0,60,0,43,166,60,0,60,0,60,0,30,166,47,0,12,166,60,0,210,165,60,0,211,165,60,0,212,165,60,0,213,165,60,0,214,165,60,0,215,165,60,0,216,165,60,0,60,0,60,0,31,166,47,0,11,166,60,0,217,165,60,0,218,165,60,0,219,165,60,0,220,165,60,0,221,165,60,0,222,165,60,0,223,165,60,0,224,165,60,0,225,165,60,0,226,165,60,0,227,165,60,0,228,165,60,0,229,165,60,0,230,165,60,0,231,165,60,0,232,165,60,0,233,165,60,0,234,165,60,0,235,165,60,0,236,165,60,0,237,165,60,0,238,165,60,0,239,165,60,0,240,165,60,0,241,165,60,0,242,165,60,0,243,165,60,0,244,165,60,0,245,165,60,0,246,165,60,0,247,165,60,0,248,165,60,0,249,165,60,0,250,165,60,0,251,165,60,0,252,165,60,0,253,165,60,0,254,165,60,0,255,165,60,0,0,166,60,0,1,166,60,0,2,166,60,0,3,166,60,0,4,166,60,0,5,166,60,0,6,166,60,0,7,166,60,0,8,166,60,0,9,166,60,0,10,166,60,0,11,166,60,0,12,166,60,0,160,166,60,0,161,166,60,0,162,166,60,0,163,166,60,0,164,166,60,0,165,166,60,0,166,166,60,0,167,166,60,0,168,166,60,0,169,166,60,0,170,166,60,0,171,166,60,0,172,166,60,0,173,166,60,0,174,166,60,0,175,166,60,0,176,166,60,0,177,166,60,0,178,166,60,0,179,166,60,0,180,166,60,0,181,166,60,0,182,166,60,0,183,166,60,0,184,166,60,0,185,166,60,0,186,166,60,0,187,166,60,0,188,166,60,0,189,166,60,0,190,166,60,0,191,166,60,0,192,166,60,0,193,166,60,0,194,166,60,0,195,166,60,0,196,166,60,0,197,166,60,0,198,166,60,0,199,166,60,0,200,166,60,0,201,166,60,0,202,166,60,0,203,166,60,0,204,166,60,0,205,166,60,0,206,166,60,0,207,166,60,0,208,166,60,0,209,166,60,0,210,166,60,0,211,166,60,0,212,166,60,0,213,166,60,0,214,166,60,0,215,166,60,0,216,166,60,0,217,166,60,0,218,166,60,0,219,166,60,0,220,166,60,0,221,166,60,0,222,166,60,0,223,166,60,0,224,166,60,0,225,166,60,0,226,166,60,0,227,166,60,0,228,166,60,0,229,166,60,0,230,166,60,0,231,166,60,0,232,166,60,0,233,166,60,0,234,166,60,0,235,166,60,0,236,166,60,0,237,166,60,0,238,166,60,0,239,166,60,0,26,216,0,220,60,0,26,216,1,220,60,0,26,216,2,220,60,0,26,216,3,220,60,0,26,216,4,220,60,0,26,216,5,220,60,0,26,216,6,220,60,0,26,216,7,220,60,0,26,216,8,220,60,0,26,216,9,220,60,0,26,216,10,220,60,0,26,216,11,220,60,0,26,216,12,220,60,0,26,216,13,220,60,0,26,216,14,220,60,0,26,216,15,220,60,0,26,216,16,220,60,0,26,216,17,220,60,0,26,216,18,220,60,0,26,216,19,220,60,0,26,216,20,220,60,0,26,216,21,220,60,0,26,216,22,220,60,0,26,216,23,220,60,0,26,216,24,220,60,0,26,216,25,220,60,0,26,216,26,220,60,0,26,216,27,220,60,0,26,216,28,220,60,0,26,216,29,220,60,0,26,216,30,220,60,0,26,216,31,220,60,0,26,216,32,220,60,0,26,216,33,220,60,0,26,216,34,220,60,0,26,216,35,220,60,0,26,216,36,220,60,0,26,216,37,220,60,0,26,216,38,220,60,0,26,216,39,220,60,0,26,216,40,220,60,0,26,216,41,220,60,0,26,216,42,220,60,0,26,216,43,220,60,0,26,216,44,220,60,0,26,216,45,220,60,0,26,216,46,220,60,0,26,216,47,220,60,0,26,216,48,220,60,0,26,216,49,220,60,0,26,216,50,220,60,0,26,216,51,220,60,0,26,216,52,220,60,0,26,216,53,220,60,0,26,216,54,220,60,0,26,216,55,220,60,0,26,216,56,220,60,0,26,216,57,220,60,0,26,216,58,220,60,0,26,216,59,220,60,0,26,216,60,220,60,0,26,216,61,220,60,0,26,216,62,220,60,0,26,216,63,220,60,0,26,216,64,220,60,0,26,216,65,220,60,0,26,216,66,220,60,0,26,216,67,220,60,0,26,216,68,220,60,0,26,216,69,220,60,0,26,216,70,220,60,0,26,216,71,220,60,0,26,216,72,220,60,0,26,216,73,220,60,0,26,216,74,220,60,0,26,216,75,220,60,0,26,216,76,220,60,0,26,216,77,220,60,0,26,216,78,220,60,0,26,216,79,220,60,0,26,216,80,220,60,0,26,216,81,220,60,0,26,216,82,220,60,0,26,216,83,220,60,0,26,216,84,220,60,0,26,216,85,220,60,0,26,216,86,220,60,0,26,216,87,220,60,0,26,216,88,220,60,0,26,216,89,220,60,0,26,216,90,220,60,0,26,216,91,220,60,0,26,216,92,220,60,0,26,216,93,220,60,0,26,216,94,220,60,0,26,216,95,220,60,0,26,216,96,220,60,0,26,216,97,220,60,0,26,216,98,220,60,0,26,216,99,220,60,0,26,216,100,220,60,0,26,216,101,220,60,0,26,216,102,220,60,0,26,216,103,220,60,0,26,216,104,220,60,0,26,216,105,220,60,0,26,216,106,220,60,0,26,216,107,220,60,0,26,216,108,220,60,0,26,216,109,220,60,0,26,216,110,220,60,0,26,216,111,220,60,0,26,216,112,220,60,0,26,216,113,220,60,0,26,216,114,220,60,0,26,216,115,220,60,0,26,216,116,220,60,0,26,216,117,220,60,0,26,216,118,220,60,0,26,216,119,220,60,0,26,216,120,220,60,0,26,216,121,220,60,0,26,216,122,220,60,0,26,216,123,220,60,0,26,216,124,220,60,0,26,216,125,220,60,0,26,216,126,220,60,0,26,216,127,220,60,0,26,216,128,220,60,0,26,216,129,220,60,0,26,216,130,220,60,0,26,216,131,220,60,0,26,216,132,220,60,0,26,216,133,220,60,0,26,216,134,220,60,0,26,216,135,220,60,0,26,216,136,220,60,0,26,216,137,220,60,0,26,216,138,220,60,0,26,216,139,220,60,0,26,216,140,220,60,0,26,216,141,220,60,0,26,216,142,220,60,0,26,216,143,220,60,0,26,216,144,220,60,0,26,216,145,220,60,0,26,216,146,220,60,0,26,216,147,220,60,0,26,216,148,220,60,0,26,216,149,220,60,0,26,216,150,220,60,0,26,216,151,220,60,0,26,216,152,220,60,0,26,216,153,220,60,0,26,216,154,220,60,0,26,216,155,220,60,0,26,216,156,220,60,0,26,216,157,220,60,0,26,216,158,220,60,0,26,216,159,220,60,0,26,216,160,220,60,0,26,216,161,220,60,0,26,216,162,220,60,0,26,216,163,220,60,0,26,216,164,220,60,0,26,216,165,220,60,0,26,216,166,220,60,0,26,216,167,220,60,0,26,216,168,220,60,0,26,216,169,220,60,0,26,216,170,220,60,0,26,216,171,220,60,0,26,216,172,220,60,0,26,216,173,220,60,0,26,216,174,220,60,0,26,216,175,220,60,0,26,216,176,220,60,0,26,216,177,220,60,0,26,216,178,220,60,0,26,216,179,220,60,0,26,216,180,220,60,0,26,216,181,220,60,0,26,216,182,220,60,0,26,216,183,220,60,0,26,216,184,220,60,0,26,216,185,220,60,0,26,216,186,220,60,0,26,216,187,220,60,0,26,216,188,220,60,0,26,216,189,220,60,0,26,216,190,220,60,0,26,216,191,220,60,0,26,216,192,220,60,0,26,216,193,220,60,0,26,216,194,220,60,0,26,216,195,220,60,0,26,216,196,220,60,0,26,216,197,220,60,0,26,216,198,220,60,0,26,216,199,220,60,0,26,216,200,220,60,0,26,216,201,220,60,0,26,216,202,220,60,0,26,216,203,220,60,0,26,216,204,220,60,0,26,216,205,220,60,0,26,216,206,220,60,0,26,216,207,220,60,0,26,216,208,220,60,0,26,216,209,220,60,0,26,216,210,220,60,0,26,216,211,220,60,0,26,216,212,220,60,0,26,216,213,220,60,0,26,216,214,220,60,0,26,216,215,220,60,0,26,216,216,220,60,0,26,216,217,220,60,0,26,216,218,220,60,0,26,216,219,220,60,0,26,216,220,220,60,0,26,216,221,220,60,0,26,216,222,220,60,0,26,216,223,220,60,0,26,216,224,220,60,0,26,216,225,220,60,0,26,216,226,220,60,0,26,216,227,220,60,0,26,216,228,220,60,0,26,216,229,220,60,0,26,216,230,220,60,0,26,216,231,220,60,0,26,216,232,220,60,0,26,216,233,220,60,0,26,216,234,220,60,0,26,216,235,220,60,0,26,216,236,220,60,0,26,216,237,220,60,0,26,216,238,220,60,0,26,216,239,220,60,0,26,216,240,220,60,0,26,216,241,220,60,0,26,216,242,220,60,0,26,216,243,220,60,0,26,216,244,220,60,0,26,216,245,220,60,0,26,216,246,220,60,0,26,216,247,220,60,0,26,216,248,220,60,0,26,216,249,220,60,0,26,216,250,220,60,0,26,216,251,220,60,0,26,216,252,220,60,0,26,216,253,220,60,0,26,216,254,220,60,0,26,216,255,220,60,0,26,216,0,221,60,0,26,216,1,221,60,0,26,216,2,221,60,0,26,216,3,221,60,0,26,216,4,221,60,0,26,216,5,221,60,0,26,216,6,221,60,0,26,216,7,221,60,0,26,216,8,221,60,0,26,216,9,221,60,0,26,216,10,221,60,0,26,216,11,221,60,0,26,216,12,221,60,0,26,216,13,221,60,0,26,216,14,221,60,0,26,216,15,221,60,0,26,216,16,221,60,0,26,216,17,221,60,0,26,216,18,221,60,0,26,216,19,221,60,0,26,216,20,221,60,0,26,216,21,221,60,0,26,216,22,221,60,0,26,216,23,221,60,0,26,216,24,221,60,0,26,216,25,221,60,0,26,216,26,221,60,0,26,216,27,221,60,0,26,216,28,221,60,0,26,216,29,221,60,0,26,216,30,221,60,0,26,216,31,221,60,0,26,216,32,221,60,0,26,216,33,221,60,0,26,216,34,221,60,0,26,216,35,221,60,0,26,216,36,221,60,0,26,216,37,221,60,0,26,216,38,221,60,0,26,216,39,221,60,0,26,216,40,221,60,0,26,216,41,221,60,0,26,216,42,221,60,0,26,216,43,221,60,0,26,216,44,221,60,0,26,216,45,221,60,0,26,216,46,221,60,0,26,216,47,221,60,0,26,216,48,221,60,0,26,216,49,221,60,0,26,216,50,221,60,0,26,216,51,221,60,0,26,216,52,221,60,0,26,216,53,221,60,0,26,216,54,221,60,0,26,216,55,221,60,0,26,216,56,221,60,0,26,216,57,221,60,0,26,216,58,221,60,0,26,216,59,221,60,0,26,216,60,221,60,0,26,216,61,221,60,0,26,216,62,221,60,0,26,216,63,221,60,0,26,216,64,221,60,0,26,216,65,221,60,0,26,216,66,221,60,0,26,216,67,221,60,0,26,216,68,221,60,0,26,216,69,221,60,0,26,216,70,221,60,0,26,216,71,221,60,0,26,216,72,221,60,0,26,216,73,221,60,0,26,216,74,221,60,0,26,216,75,221,60,0,26,216,76,221,60,0,26,216,77,221,60,0,26,216,78,221,60,0,26,216,79,221,60,0,26,216,80,221,60,0,26,216,81,221,60,0,26,216,82,221,60,0,26,216,83,221,60,0,26,216,84,221,60,0,26,216,85,221,60,0,26,216,86,221,60,0,26,216,87,221,60,0,26,216,88,221,60,0,26,216,89,221,60,0,26,216,90,221,60,0,26,216,91,221,60,0,26,216,92,221,60,0,26,216,93,221,60,0,26,216,94,221,60,0,26,216,95,221,60,0,26,216,96,221,60,0,26,216,97,221,60,0,26,216,98,221,60,0,26,216,99,221,60,0,26,216,100,221,60,0,26,216,101,221,60,0,26,216,102,221,60,0,26,216,103,221,60,0,26,216,104,221,60,0,26,216,105,221,60,0,26,216,106,221,60,0,26,216,107,221,60,0,26,216,108,221,60,0,26,216,109,221,60,0,26,216,110,221,60,0,26,216,111,221,60,0,26,216,112,221,60,0,26,216,113,221,60,0,26,216,114,221,60,0,26,216,115,221,60,0,26,216,116,221,60,0,26,216,117,221,60,0,26,216,118,221,60,0,26,216,119,221,60,0,26,216,120,221,60,0,26,216,121,221,60,0,26,216,122,221,60,0,26,216,123,221,60,0,26,216,124,221,60,0,26,216,125,221,60,0,26,216,126,221,60,0,26,216,127,221,60,0,26,216,128,221,60,0,26,216,129,221,60,0,26,216,130,221,60,0,26,216,131,221,60,0,26,216,132,221,60,0,26,216,133,221,60,0,26,216,134,221,60,0,26,216,135,221,60,0,26,216,136,221,60,0,26,216,137,221,60,0,26,216,138,221,60,0,26,216,139,221,60,0,26,216,140,221,60,0,26,216,141,221,60,0,26,216,142,221,60,0,26,216,143,221,60,0,26,216,144,221,60,0,26,216,145,221,60,0,26,216,146,221,60,0,26,216,147,221,60,0,26,216,148,221,60,0,26,216,149,221,60,0,26,216,150,221,60,0,26,216,151,221,60,0,26,216,152,221,60,0,26,216,153,221,60,0,26,216,154,221,60,0,26,216,155,221,60,0,26,216,156,221,60,0,26,216,157,221,60,0,26,216,158,221,60,0,26,216,159,221,60,0,26,216,160,221,60,0,26,216,161,221,60,0,26,216,162,221,60,0,26,216,163,221,60,0,26,216,164,221,60,0,26,216,165,221,60,0,26,216,166,221,60,0,26,216,167,221,60,0,26,216,168,221,60,0,26,216,169,221,60,0,26,216,170,221,60,0,26,216,171,221,60,0,26,216,172,221,60,0,26,216,173,221,60,0,26,216,174,221,60,0,26,216,175,221,60,0,26,216,176,221,60,0,26,216,177,221,60,0,26,216,178,221,60,0,26,216,179,221,60,0,26,216,180,221,60,0,26,216,181,221,60,0,26,216,182,221,60,0,26,216,183,221,60,0,26,216,184,221,60,0,26,216,185,221,60,0,26,216,186,221,60,0,26,216,187,221,60,0,26,216,188,221,60,0,26,216,189,221,60,0,26,216,190,221,60,0,26,216,191,221,60,0,26,216,192,221,60,0,26,216,193,221,60,0,26,216,194,221,60,0,26,216,195,221,60,0,26,216,196,221,60,0,26,216,197,221,60,0,26,216,198,221,60,0,26,216,199,221,60,0,26,216,200,221,60,0,26,216,201,221,60,0,26,216,202,221,60,0,26,216,203,221,60,0,26,216,204,221,60,0,26,216,205,221,60,0,26,216,206,221,60,0,26,216,207,221,60,0,26,216,208,221,60,0,26,216,209,221,60,0,26,216,210,221,60,0,26,216,211,221,60,0,26,216,212,221,60,0,26,216,213,221,60,0,26,216,214,221,60,0,26,216,215,221,60,0,26,216,216,221,60,0,26,216,217,221,60,0,26,216,218,221,60,0,26,216,219,221,60,0,26,216,220,221,60,0,26,216,221,221,60,0,26,216,222,221,60,0,26,216,223,221,60,0,26,216,224,221,60,0,26,216,225,221,60,0,26,216,226,221,60,0,26,216,227,221,60,0,26,216,228,221,60,0,26,216,229,221,60,0,26,216,230,221,60,0,26,216,231,221,60,0,26,216,232,221,60,0,26,216,233,221,60,0,26,216,234,221,60,0,26,216,235,221,60,0,26,216,236,221,60,0,26,216,237,221,60,0,26,216,238,221,60,0,26,216,239,221,60,0,26,216,240,221,60,0,26,216,241,221,60,0,26,216,242,221,60,0,26,216,243,221,60,0,26,216,244,221,60,0,26,216,245,221,60,0,26,216,246,221,60,0,26,216,247,221,60,0,26,216,248,221,60,0,26,216,249,221,60,0,26,216,250,221,60,0,26,216,251,221,60,0,26,216,252,221,60,0,26,216,253,221,60,0,26,216,254,221,60,0,26,216,255,221,60,0,26,216,0,222,60,0,26,216,1,222,60,0,26,216,2,222,60,0,26,216,3,222,60,0,26,216,4,222,60,0,26,216,5,222,60,0,26,216,6,222,60,0,26,216,7,222,60,0,26,216,8,222,60,0,26,216,9,222,60,0,26,216,10,222,60,0,26,216,11,222,60,0,26,216,12,222,60,0,26,216,13,222,60,0,26,216,14,222,60,0,26,216,15,222,60,0,26,216,16,222,60,0,26,216,17,222,60,0,26,216,18,222,60,0,26,216,19,222,60,0,26,216,20,222,60,0,26,216,21,222,60,0,26,216,22,222,60,0,26,216,23,222,60,0,26,216,24,222,60,0,26,216,25,222,60,0,26,216,26,222,60,0,26,216,27,222,60,0,26,216,28,222,60,0,26,216,29,222,60,0,26,216,30,222,60,0,26,216,31,222,60,0,26,216,32,222,60,0,26,216,33,222,60,0,26,216,34,222,60,0,26,216,35,222,60,0,26,216,36,222,60,0,26,216,37,222,60,0,26,216,38,222,60,0,26,216,39,222,60,0,26,216,40,222,60,0,26,216,41,222,60,0,26,216,42,222,60,0,26,216,43,222,60,0,26,216,44,222,60,0,26,216,45,222,60,0,26,216,46,222,60,0,26,216,47,222,60,0,26,216,48,222,60,0,26,216,49,222,60,0,26,216,50,222,60,0,26,216,51,222,60,0,26,216,52,222,60,0,26,216,53,222,60,0,26,216,54,222,60,0,26,216,55,222,60,0,26,216,56,222,60,0,26,216,208,222,60,0,26,216,209,222,60,0,26,216,210,222,60,0,26,216,211,222,60,0,26,216,212,222,60,0,26,216,213,222,60,0,26,216,214,222,60,0,26,216,215,222,60,0,26,216,216,222,60,0,26,216,217,222,60,0,26,216,218,222,60,0,26,216,219,222,60,0,26,216,220,222,60,0,26,216,221,222,60,0,26,216,222,222,60,0,26,216,223,222,60,0,26,216,224,222,60,0,26,216,225,222,60,0,26,216,226,222,60,0,26,216,227,222,60,0,26,216,228,222,60,0,26,216,229,222,60,0,26,216,230,222,60,0,26,216,231,222,60,0,26,216,232,222,60,0,26,216,233,222,60,0,26,216,234,222,60,0,26,216,235,222,60,0,26,216,236,222,60,0,26,216,237,222,60,0,14,32,58,216,0,220,14,32,60,0,14,32,58,216,1,220,14,32,60,0,14,32,58,216,2,220,14,32,60,0,14,32,58,216,3,220,14,32,60,0,14,32,58,216,4,220,14,32,60,0,14,32,58,216,5,220,14,32,60,0,14,32,58,216,6,220,14,32,60,0,14,32,58,216,7,220,14,32,60,0,14,32,58,216,8,220,14,32,60,0,14,32,58,216,9,220,14,32,60,0,14,32,58,216,10,220,14,32,60,0,14,32,58,216,11,220,14,32,60,0,14,32,58,216,12,220,14,32,60,0,14,32,58,216,13,220,14,32,60,0,14,32,58,216,14,220,14,32,60,0,14,32,58,216,15,220,14,32,60,0,14,32,58,216,16,220,14,32,60,0,14,32,58,216,17,220,14,32,60,0,14,32,58,216,18,220,14,32,60,0,14,32,58,216,19,220,14,32,60,0,14,32,58,216,20,220,14,32,60,0,14,32,58,216,21,220,14,32,60,0,14,32,58,216,22,220,14,32,60,0,14,32,58,216,23,220,14,32,60,0,14,32,58,216,24,220,14,32,60,0,14,32,58,216,25,220,14,32,60,0,14,32,58,216,26,220,14,32,60,0,14,32,58,216,27,220,14,32,60,0,14,32,58,216,28,220,14,32,60,0,14,32,58,216,29,220,14,32,60,0,14,32,58,216,30,220,14,32,60,0,14,32,58,216,31,220,14,32,60,0,14,32,58,216,32,220,14,32,60,0,14,32,58,216,33,220,14,32,60,0,14,32,58,216,34,220,14,32,60,0,14,32,58,216,35,220,14,32,60,0,14,32,58,216,36,220,14,32,60,0,14,32,58,216,37,220,14,32,60,0,14,32,58,216,38,220,14,32,60,0,14,32,58,216,39,220,14,32,60,0,14,32,58,216,40,220,14,32,60,0,14,32,58,216,41,220,14,32,60,0,14,32,58,216,42,220,14,32,60,0,14,32,58,216,43,220,14,32,60,0,14,32,58,216,44,220,14,32,60,0,14,32,58,216,45,220,14,32,60,0,14,32,58,216,46,220,14,32,60,0,14,32,58,216,47,220,14,32,60,0,14,32,58,216,48,220,14,32,60,0,14,32,58,216,49,220,14,32,60,0,14,32,58,216,50,220,14,32,60,0,14,32,58,216,51,220,14,32,60,0,14,32,58,216,52,220,14,32,60,0,14,32,58,216,53,220,14,32,60,0,14,32,58,216,54,220,14,32,60,0,14,32,58,216,55,220,14,32,60,0,14,32,58,216,56,220,14,32,60,0,14,32,58,216,57,220,14,32,60,0,14,32,58,216,58,220,14,32,60,0,14,32,58,216,59,220,14,32,60,0,14,32,58,216,60,220,14,32,60,0,14,32,58,216,61,220,14,32,60,0,14,32,58,216,62,220,14,32,60,0,14,32,58,216,63,220,14,32,60,0,14,32,58,216,64,220,14,32,60,0,14,32,58,216,65,220,14,32,60,0,14,32,58,216,66,220,14,32,60,0,14,32,58,216,67,220,14,32,60,0,14,32,58,216,68,220,14,32,60,0,14,32,58,216,69,220,14,32,60,0,14,32,58,216,70,220,14,32,60,0,14,32,58,216,71,220,14,32,60,0,14,32,58,216,72,220,14,32,60,0,14,32,58,216,73,220,14,32,60,0,14,32,58,216,74,220,14,32,60,0,14,32,58,216,75,220,14,32,60,0,14,32,58,216,76,220,14,32,60,0,14,32,58,216,77,220,14,32,60,0,14,32,58,216,78,220,14,32,60,0,14,32,58,216,79,220,14,32,60,0,14,32,58,216,80,220,14,32,60,0,14,32,58,216,81,220,14,32,60,0,14,32,58,216,82,220,14,32,60,0,14,32,58,216,83,220,14,32,60,0,14,32,58,216,84,220,14,32,60,0,14,32,58,216,85,220,14,32,60,0,14,32,58,216,86,220,14,32,60,0,14,32,58,216,87,220,14,32,60,0,14,32,58,216,88,220,14,32,60,0,14,32,58,216,89,220,14,32,60,0,14,32,58,216,90,220,14,32,60,0,14,32,58,216,91,220,14,32,60,0,14,32,58,216,92,220,14,32,60,0,14,32,58,216,93,220,14,32,60,0,14,32,58,216,94,220,14,32,60,0,14,32,58,216,95,220,14,32,60,0,14,32,58,216,96,220,14,32,60,0,14,32,58,216,97,220,14,32,60,0,14,32,58,216,98,220,14,32,60,0,14,32,58,216,99,220,14,32,60,0,14,32,58,216,100,220,14,32,60,0,14,32,58,216,101,220,14,32,60,0,14,32,58,216,102,220,14,32,60,0,14,32,58,216,103,220,14,32,60,0,14,32,58,216,104,220,14,32,60,0,14,32,58,216,105,220,14,32,60,0,14,32,58,216,106,220,14,32,60,0,14,32,58,216,107,220,14,32,60,0,14,32,58,216,108,220,14,32,60,0,14,32,58,216,109,220,14,32,60,0,14,32,58,216,110,220,14,32,60,0,14,32,58,216,111,220,14,32,60,0,14,32,58,216,112,220,14,32,60,0,14,32,58,216,113,220,14,32,60,0,14,32,58,216,114,220,14,32,60,0,14,32,58,216,115,220,14,32,60,0,14,32,58,216,116,220,14,32,60,0,14,32,58,216,117,220,14,32,60,0,14,32,58,216,118,220,14,32,60,0,14,32,58,216,119,220,14,32,60,0,14,32,58,216,120,220,14,32,60,0,14,32,58,216,121,220,14,32,60,0,14,32,58,216,122,220,14,32,60,0,14,32,58,216,123,220,14,32,60,0,14,32,58,216,124,220,14,32,60,0,14,32,58,216,125,220,14,32,60,0,14,32,58,216,126,220,14,32,60,0,14,32,58,216,127,220,14,32,60,0,14,32,58,216,128,220,14,32,60,0,14,32,58,216,129,220,14,32,60,0,14,32,58,216,130,220,14,32,60,0,14,32,58,216,131,220,14,32,60,0,14,32,58,216,132,220,14,32,60,0,14,32,58,216,133,220,14,32,60,0,14,32,58,216,134,220,14,32,60,0,14,32,58,216,135,220,14,32,60,0,14,32,58,216,136,220,14,32,60,0,14,32,58,216,137,220,14,32,60,0,14,32,58,216,138,220,14,32,60,0,14,32,58,216,139,220,14,32,60,0,14,32,58,216,140,220,14,32,60,0,14,32,58,216,141,220,14,32,60,0,14,32,58,216,142,220,14,32,60,0,14,32,58,216,143,220,14,32,60,0,14,32,58,216,144,220,14,32,60,0,14,32,58,216,145,220,14,32,60,0,14,32,58,216,146,220,14,32,60,0,14,32,58,216,147,220,14,32,60,0,14,32,58,216,148,220,14,32,60,0,14,32,58,216,149,220,14,32,60,0,14,32,58,216,150,220,14,32,60,0,14,32,58,216,151,220,14,32,60,0,14,32,58,216,152,220,14,32,60,0,14,32,58,216,153,220,14,32,60,0,14,32,58,216,154,220,14,32,60,0,14,32,58,216,155,220,14,32,60,0,14,32,58,216,156,220,14,32,60,0,14,32,58,216,157,220,14,32,60,0,14,32,58,216,158,220,14,32,60,0,14,32,58,216,159,220,14,32,60,0,14,32,58,216,160,220,14,32,60,0,14,32,58,216,161,220,14,32,60,0,14,32,58,216,162,220,14,32,60,0,14,32,58,216,163,220,14,32,60,0,14,32,58,216,164,220,14,32,60,0,14,32,58,216,165,220,14,32,60,0,14,32,58,216,166,220,14,32,60,0,14,32,58,216,167,220,14,32,60,0,14,32,58,216,168,220,14,32,60,0,14,32,58,216,169,220,14,32,60,0,14,32,58,216,170,220,14,32,60,0,14,32,58,216,171,220,14,32,60,0,14,32,58,216,172,220,14,32,60,0,14,32,58,216,173,220,14,32,60,0,14,32,58,216,174,220,14,32,60,0,14,32,58,216,175,220,14,32,60,0,14,32,58,216,176,220,14,32,60,0,14,32,58,216,177,220,14,32,60,0,14,32,58,216,178,220,14,32,60,0,14,32,58,216,179,220,14,32,60,0,14,32,58,216,180,220,14,32,60,0,14,32,58,216,181,220,14,32,60,0,14,32,58,216,182,220,14,32,60,0,14,32,58,216,183,220,14,32,60,0,14,32,58,216,184,220,14,32,60,0,14,32,58,216,185,220,14,32,60,0,14,32,58,216,186,220,14,32,60,0,14,32,58,216,187,220,14,32,60,0,14,32,58,216,188,220,14,32,60,0,14,32,58,216,189,220,14,32,60,0,14,32,58,216,190,220,14,32,60,0,14,32,58,216,191,220,14,32,60,0,14,32,58,216,192,220,14,32,60,0,14,32,58,216,193,220,14,32,60,0,14,32,58,216,194,220,14,32,60,0,14,32,58,216,195,220,14,32,60,0,14,32,58,216,196,220,14,32,60,0,27,216,96,222,60,0,60,0,60,0,27,216,64,222,60,0,27,216,97,222,60,0,60,0,60,0,27,216,65,222,60,0,27,216,98,222,60,0,60,0,60,0,27,216,66,222,60,0,27,216,99,222,60,0,60,0,60,0,27,216,67,222,60,0,27,216,100,222,60,0,60,0,60,0,27,216,68,222,60,0,27,216,101,222,60,0,60,0,60,0,27,216,69,222,60,0,27,216,102,222,60,0,60,0,60,0,27,216,70,222,60,0,27,216,103,222,60,0,60,0,60,0,27,216,71,222,60,0,27,216,104,222,60,0,60,0,60,0,27,216,72,222,60,0,27,216,105,222,60,0,60,0,60,0,27,216,73,222,60,0,27,216,106,222,60,0,60,0,60,0,27,216,74,222,60,0,27,216,107,222,60,0,60,0,60,0,27,216,75,222,60,0,27,216,108,222,60,0,60,0,60,0,27,216,76,222,60,0,27,216,109,222,60,0,60,0,60,0,27,216,77,222,60,0,27,216,110,222,60,0,60,0,60,0,27,216,78,222,60,0,27,216,111,222,60,0,60,0,60,0,27,216,79,222,60,0,27,216,112,222,60,0,60,0,60,0,27,216,80,222,60,0,27,216,113,222,60,0,60,0,60,0,27,216,81,222,60,0,27,216,114,222,60,0,60,0,60,0,27,216,82,222,60,0,27,216,115,222,60,0,60,0,60,0,27,216,83,222,60,0,27,216,116,222,60,0,60,0,60,0,27,216,84,222,60,0,27,216,117,222,60,0,60,0,60,0,27,216,85,222,60,0,27,216,118,222,60,0,60,0,60,0,27,216,86,222,60,0,27,216,119,222,60,0,60,0,60,0,27,216,87,222,60,0,27,216,120,222,60,0,60,0,60,0,27,216,88,222,60,0,27,216,121,222,60,0,60,0,60,0,27,216,89,222,60,0,27,216,122,222,60,0,60,0,60,0,27,216,90,222,60,0,27,216,123,222,60,0,60,0,60,0,27,216,91,222,60,0,27,216,124,222,60,0,60,0,60,0,27,216,92,222,60,0,27,216,125,222,60,0,60,0,60,0,27,216,93,222,60,0,27,216,126,222,60,0,60,0,60,0,27,216,94,222,60,0,27,216,127,222,60,0,60,0,60,0,27,216,95,222,60,0,14,32,58,216,34,221,14,32,60,0,60,0,60,0,14,32,58,216,0,221,14,32,60,0,14,32,58,216,35,221,14,32,60,0,60,0,60,0,14,32,58,216,1,221,14,32,60,0,14,32,58,216,36,221,14,32,60,0,60,0,60,0,14,32,58,216,2,221,14,32,60,0,14,32,58,216,37,221,14,32,60,0,60,0,60,0,14,32,58,216,3,221,14,32,60,0,14,32,58,216,38,221,14,32,60,0,60,0,60,0,14,32,58,216,4,221,14,32,60,0,14,32,58,216,39,221,14,32,60,0,60,0,60,0,14,32,58,216,5,221,14,32,60,0,14,32,58,216,40,221,14,32,60,0,60,0,60,0,14,32,58,216,6,221,14,32,60,0,14,32,58,216,41,221,14,32,60,0,60,0,60,0,14,32,58,216,7,221,14,32,60,0,14,32,58,216,42,221,14,32,60,0,60,0,60,0,14,32,58,216,8,221,14,32,60,0,14,32,58,216,43,221,14,32,60,0,60,0,60,0,14,32,58,216,9,221,14,32,60,0,14,32,58,216,44,221,14,32,60,0,60,0,60,0,14,32,58,216,10,221,14,32,60,0,14,32,58,216,45,221,14,32,60,0,60,0,60,0,14,32,58,216,11,221,14,32,60,0,14,32,58,216,46,221,14,32,60,0,60,0,60,0,14,32,58,216,12,221,14,32,60,0,14,32,58,216,47,221,14,32,60,0,60,0,60,0,14,32,58,216,13,221,14,32,60,0,14,32,58,216,48,221,14,32,60,0,60,0,60,0,14,32,58,216,14,221,14,32,60,0,14,32,58,216,49,221,14,32,60,0,60,0,60,0,14,32,58,216,15,221,14,32,60,0,14,32,58,216,50,221,14,32,60,0,60,0,60,0,14,32,58,216,16,221,14,32,60,0,14,32,58,216,51,221,14,32,60,0,60,0,60,0,14,32,58,216,17,221,14,32,60,0,14,32,58,216,52,221,14,32,60,0,60,0,60,0,14,32,58,216,18,221,14,32,60,0,14,32,58,216,53,221,14,32,60,0,60,0,60,0,14,32,58,216,19,221,14,32,60,0,14,32,58,216,54,221,14,32,60,0,60,0,60,0,14,32,58,216,20,221,14,32,60,0,14,32,58,216,55,221,14,32,60,0,60,0,60,0,14,32,58,216,21,221,14,32,60,0,14,32,58,216,56,221,14,32,60,0,60,0,60,0,14,32,58,216,22,221,14,32,60,0,14,32,58,216,57,221,14,32,60,0,60,0,60,0,14,32,58,216,23,221,14,32,60,0,14,32,58,216,58,221,14,32,60,0,60,0,60,0,14,32,58,216,24,221,14,32,60,0,14,32,58,216,59,221,14,32,60,0,60,0,60,0,14,32,58,216,25,221,14,32,60,0,14,32,58,216,60,221,14,32,60,0,60,0,60,0,14,32,58,216,26,221,14,32,60,0,14,32,58,216,61,221,14,32,60,0,60,0,60,0,14,32,58,216,27,221,14,32,60,0,14,32,58,216,62,221,14,32,60,0,60,0,60,0,14,32,58,216,28,221,14,32,60,0,14,32,58,216,63,221,14,32,60,0,60,0,60,0,14,32,58,216,29,221,14,32,60,0,14,32,58,216,64,221,14,32,60,0,60,0,60,0,14,32,58,216,30,221,14,32,60,0,14,32,58,216,65,221,14,32,60,0,60,0,60,0,14,32,58,216,31,221,14,32,60,0,14,32,58,216,66,221,14,32,60,0,60,0,60,0,14,32,58,216,32,221,14,32,60,0,14,32,58,216,67,221,14,32,60,0,60,0,60,0,14,32,58,216,33,221,14,32,60,0,14,32,58,216,75,221,14,32,60,0,0,17,60,0,60,0,60,0,49,49,60,0,60,0,60,0,96,50,60,0,60,0,60,0,110,50,47,0,97,17,60,0,60,0,60,0,161,255,60,0,1,17,60,0,60,0,60,0,50,49,60,0,60,0,60,0,162,255,60,0,2,17,60,0,60,0,60,0,52,49,60,0,60,0,60,0,97,50,60,0,60,0,60,0,111,50,47,0,97,17,60,0,60,0,60,0,164,255,60,0,3,17,60,0,60,0,60,0,55,49,60,0,60,0,60,0,98,50,60,0,60,0,60,0,112,50,47,0,97,17,60,0,60,0,60,0,167,255,60,0,4,17,60,0,60,0,60,0,56,49,60,0,60,0,60,0,168,255,60,0,5,17,60,0,60,0,60,0,57,49,60,0,60,0,60,0,99,50,60,0,60,0,60,0,113,50,47,0,97,17,60,0,60,0,60,0,169,255,60,0,6,17,60,0,60,0,60,0,65,49,60,0,60,0,60,0,100,50,60,0,60,0,60,0,114,50,47,0,97,17,60,0,60,0,60,0,177,255,60,0,7,17,60,0,60,0,60,0,66,49,60,0,60,0,60,0,101,50,60,0,60,0,60,0,115,50,47,0,97,17,60,0,60,0,60,0,178,255,60,0,8,17,60,0,60,0,60,0,67,49,60,0,60,0,60,0,179,255,60,0,9,17,60,0,60,0,60,0,69,49,60,0,60,0,60,0,102,50,60,0,60,0,60,0,116,50,47,0,97,17,60,0,60,0,60,0,181,255,60,0,10,17,60,0,60,0,60,0,70,49,60,0,60,0,60,0,182,255,60,0,11,17,60,0,60,0,60,0,71,49,60,0,60,0,60,0,103,50,60,0,60,0,60,0,117,50,47,0,97,17,60,0,60,0,60,0,126,50,47,0,110,17,60,0,60,0,60,0,183,255,60,0,12,17,60,0,60,0,60,0,72,49,60,0,60,0,60,0,104,50,60,0,60,0,60,0,118,50,47,0,97,17,60,0,60,0,60,0,125,50,47,0,110,17,88,199,60,0,60,0,60,0,184,255,60,0,13,17,60,0,60,0,60,0,73,49,60,0,60,0,60,0,185,255,60,0,14,17,60,0,60,0,60,0,74,49,60,0,60,0,60,0,105,50,60,0,60,0,60,0,119,50,47,0,97,17,60,0,60,0,60,0,124,50,47,0,97,17,183,17,224,172,60,0,60,0,60,0,186,255,60,0,15,17,60,0,60,0,60,0,75,49,60,0,60,0,60,0,106,50,60,0,60,0,60,0,120,50,47,0,97,17,60,0,60,0,60,0,187,255,60,0,16,17,60,0,60,0,60,0,76,49,60,0,60,0,60,0,107,50,60,0,60,0,60,0,121,50,47,0,97,17,60,0,60,0,60,0,188,255,60,0,17,17,60,0,60,0,60,0,77,49,60,0,60,0,60,0,108,50,60,0,60,0,60,0,122,50,47,0,97,17,60,0,60,0,60,0,189,255,60,0,18,17,60,0,60,0,60,0,78,49,60,0,60,0,60,0,109,50,60,0,60,0,60,0,123,50,47,0,97,17,60,0,60,0,60,0,190,255,60,0,19,17,60,0,20,17,60,0,60,0,60,0,101,49,60,0,21,17,60,0,60,0,60,0,102,49,60,0,22,17,60,0,23,17,60,0,24,17,60,0,25,17,60,0,26,17,60,0,60,0,60,0,64,49,60,0,60,0,60,0,176,255,60,0,27,17,60,0,28,17,60,0,60,0,60,0,110,49,60,0,29,17,60,0,60,0,60,0,113,49,60,0,30,17,60,0,60,0,60,0,114,49,60,0,31,17,60,0,32,17,60,0,60,0,60,0,115,49,60,0,33,17,60,0,60,0,60,0,68,49,60,0,60,0,60,0,180,255,60,0,34,17,60,0,60,0,60,0,116,49,60,0,35,17,60,0,60,0,60,0,117,49,60,0,36,17,60,0,37,17,60,0,38,17,60,0,39,17,60,0,60,0,60,0,118,49,60,0,40,17,60,0,41,17,60,0,60,0,60,0,119,49,60,0,42,17,60,0,43,17,60,0,60,0,60,0,120,49,60,0,44,17,60,0,60,0,60,0,121,49,60,0,45,17,60,0,60,0,60,0,122,49,60,0,46,17,60,0,60,0,60,0,123,49,60,0,47,17,60,0,60,0,60,0,124,49,60,0,48,17,60,0,49,17,60,0,50,17,60,0,60,0,60,0,125,49,60,0,51,17,60,0,52,17,60,0,53,17,60,0,54,17,60,0,60,0,60,0,126,49,60,0,55,17,60,0,56,17,60,0,57,17,60,0,58,17,60,0,59,17,60,0,60,17,60,0,61,17,60,0,62,17,60,0,63,17,60,0,64,17,60,0,60,0,60,0,127,49,60,0,65,17,60,0,66,17,60,0,67,17,60,0,68,17,60,0,69,17,60,0,70,17,60,0,71,17,60,0,60,0,60,0,128,49,60,0,72,17,60,0,73,17,60,0,74,17,60,0,75,17,60,0,76,17,60,0,60,0,60,0,129,49,60,0,77,17,60,0,78,17,60,0,79,17,60,0,80,17,60,0,81,17,60,0,82,17,60,0,83,17,60,0,84,17,60,0,85,17,60,0,86,17,60,0,87,17,60,0,60,0,60,0,132,49,60,0,88,17,60,0,60,0,60,0,133,49,60,0,89,17,60,0,60,0,60,0,134,49,60,0,90,17,60,0,91,17,60,0,92,17,60,0,93,17,60,0,94,17,60,0,96,169,60,0,97,169,60,0,98,169,60,0,99,169,60,0,100,169,60,0,101,169,60,0,102,169,60,0,103,169,60,0,104,169,60,0,105,169,60,0,106,169,60,0,107,169,60,0,108,169,60,0,109,169,60,0,110,169,60,0,111,169,60,0,112,169,60,0,113,169,60,0,114,169,60,0,115,169,60,0,116,169,60,0,117,169,60,0,118,169,60,0,119,169,60,0,120,169,60,0,121,169,60,0,122,169,60,0,123,169,60,0,124,169,60,0,95,17,60,0,96,17,60,0,60,0,60,0,100,49,60,0,60,0,60,0,160,255,60,0,97,17,60,0,60,0,60,0,79,49,60,0,60,0,60,0,194,255,60,0,98,17,60,0,60,0,60,0,80,49,60,0,60,0,60,0,195,255,60,0,99,17,60,0,60,0,60,0,81,49,60,0,60,0,60,0,196,255,60,0,100,17,60,0,60,0,60,0,82,49,60,0,60,0,60,0,197,255,60,0,101,17,60,0,60,0,60,0,83,49,60,0,60,0,60,0,198,255,60,0,102,17,60,0,60,0,60,0,84,49,60,0,60,0,60,0,199,255,60,0,103,17,60,0,60,0,60,0,85,49,60,0,60,0,60,0,202,255,60,0,104,17,60,0,60,0,60,0,86,49,60,0,60,0,60,0,203,255,60,0,105,17,60,0,60,0,60,0,87,49,60,0,60,0,60,0,204,255,60,0,106,17,60,0,60,0,60,0,88,49,60,0,60,0,60,0,205,255,60,0,107,17,60,0,60,0,60,0,89,49,60,0,60,0,60,0,206,255,60,0,108,17,60,0,60,0,60,0,90,49,60,0,60,0,60,0,207,255,60,0,109,17,60,0,60,0,60,0,91,49,60,0,60,0,60,0,210,255,60,0,110,17,60,0,60,0,60,0,92,49,60,0,60,0,60,0,211,255,60,0,111,17,60,0,60,0,60,0,93,49,60,0,60,0,60,0,212,255,60,0,112,17,60,0,60,0,60,0,94,49,60,0,60,0,60,0,213,255,60,0,113,17,60,0,60,0,60,0,95,49,60,0,60,0,60,0,214,255,60,0,114,17,60,0,60,0,60,0,96,49,60,0,60,0,60,0,215,255,60,0,115,17,60,0,60,0,60,0,97,49,60,0,60,0,60,0,218,255,60,0,116,17,60,0,60,0,60,0,98,49,60,0,60,0,60,0,219,255,60,0,117,17,60,0,60,0,60,0,99,49,60,0,60,0,60,0,220,255,60,0,118,17,60,0,119,17,60,0,120,17,60,0,121,17,60,0,122,17,60,0,123,17,60,0,124,17,60,0,125,17,60,0,126,17,60,0,127,17,60,0,128,17,60,0,129,17,60,0,130,17,60,0,131,17,60,0,132,17,60,0,60,0,60,0,135,49,60,0,133,17,60,0,60,0,60,0,136,49,60,0,134,17,60,0,135,17,60,0,136,17,60,0,60,0,60,0,137,49,60,0,137,17,60,0,138,17,60,0,139,17,60,0,140,17,60,0,141,17,60,0,142,17,60,0,143,17,60,0,144,17,60,0,145,17,60,0,60,0,60,0,138,49,60,0,146,17,60,0,60,0,60,0,139,49,60,0,147,17,60,0,148,17,60,0,60,0,60,0,140,49,60,0,149,17,60,0,150,17,60,0,151,17,60,0,152,17,60,0,153,17,60,0,154,17,60,0,155,17,60,0,156,17,60,0,157,17,60,0,158,17,60,0,60,0,60,0,141,49,60,0,159,17,60,0,160,17,60,0,161,17,60,0,60,0,60,0,142,49,60,0,162,17,60,0,163,17,60,0,164,17,60,0,165,17,60,0,166,17,60,0,167,17,60,0,176,215,60,0,177,215,60,0,178,215,60,0,179,215,60,0,180,215,60,0,181,215,60,0,182,215,60,0,183,215,60,0,184,215,60,0,185,215,60,0,186,215,60,0,187,215,60,0,188,215,60,0,189,215,60,0,190,215,60,0,191,215,60,0,192,215,60,0,193,215,60,0,194,215,60,0,195,215,60,0,196,215,60,0,197,215,60,0,198,215,60,0,168,17,60,0,169,17,60,0,170,17,60,0,60,0,60,0,51,49,60,0,60,0,60,0,163,255,60,0,171,17,60,0,172,17,60,0,60,0,60,0,53,49,60,0,60,0,60,0,165,255,60,0,173,17,60,0,60,0,60,0,54,49,60,0,60,0,60,0,166,255,60,0,174,17,60,0,175,17,60,0,176,17,60,0,60,0,60,0,58,49,60,0,60,0,60,0,170,255,60,0,177,17,60,0,60,0,60,0,59,49,60,0,60,0,60,0,171,255,60,0,178,17,60,0,60,0,60,0,60,49,60,0,60,0,60,0,172,255,60,0,179,17,60,0,60,0,60,0,61,49,60,0,60,0,60,0,173,255,60,0,180,17,60,0,60,0,60,0,62,49,60,0,60,0,60,0,174,255,60,0,181,17,60,0,60,0,60,0,63,49,60,0,60,0,60,0,175,255,60,0,182,17,60,0,183,17,60,0,184,17,60,0,185,17,60,0,186,17,60,0,187,17,60,0,188,17,60,0,189,17,60,0,190,17,60,0,191,17,60,0,192,17,60,0,193,17,60,0,194,17,60,0,195,17,60,0,196,17,60,0,197,17,60,0,198,17,60,0,199,17,60,0,60,0,60,0,103,49,60,0,200,17,60,0,60,0,60,0,104,49,60,0,201,17,60,0,202,17,60,0,203,17,60,0,204,17,60,0,60,0,60,0,105,49,60,0,205,17,60,0,206,17,60,0,60,0,60,0,106,49,60,0,207,17,60,0,208,17,60,0,209,17,60,0,210,17,60,0,211,17,60,0,60,0,60,0,107,49,60,0,212,17,60,0,213,17,60,0,214,17,60,0,215,17,60,0,60,0,60,0,108,49,60,0,216,17,60,0,217,17,60,0,60,0,60,0,109,49,60,0,218,17,60,0,219,17,60,0,220,17,60,0,221,17,60,0,60,0,60,0,111,49,60,0,222,17,60,0,223,17,60,0,60,0,60,0,112,49,60,0,224,17,60,0,225,17,60,0,226,17,60,0,227,17,60,0,228,17,60,0,229,17,60,0,230,17,60,0,231,17,60,0,232,17,60,0,233,17,60,0,234,17,60,0,235,17,60,0,236,17,60,0,237,17,60,0,238,17,60,0,239,17,60,0,240,17,60,0,241,17,60,0,60,0,60,0,130,49,60,0,242,17,60,0,60,0,60,0,131,49,60,0,243,17,60,0,244,17,60,0,245,17,60,0,246,17,60,0,247,17,60,0,248,17,60,0,249,17,60,0,250,17,60,0,251,17,60,0,252,17,60,0,253,17,60,0,254,17,60,0,255,17,60,0,203,215,60,0,204,215,60,0,205,215,60,0,206,215,60,0,207,215,60,0,208,215,60,0,209,215,60,0,210,215,60,0,211,215,60,0,212,215,60,0,213,215,60,0,214,215,60,0,215,215,60,0,216,215,60,0,217,215,60,0,218,215,60,0,219,215,60,0,220,215,60,0,221,215,60,0,222,215,60,0,223,215,60,0,224,215,60,0,225,215,60,0,226,215,60,0,227,215,60,0,228,215,60,0,229,215,60,0,230,215,60,0,231,215,60,0,232,215,60,0,233,215,60,0,234,215,60,0,235,215,60,0,236,215,60,0,237,215,60,0,238,215,60,0,239,215,60,0,240,215,60,0,241,215,60,0,242,215,60,0,243,215,60,0,244,215,60,0,245,215,60,0,246,215,60,0,247,215,60,0,248,215,60,0,249,215,60,0,250,215,60,0,251,215,60,0,65,48,60,0,60,0,60,0,66,48,60,0,60,0,60,0,161,48,60,0,60,0,60,0,103,255,60,0,60,0,60,0,162,48,60,0,60,0,60,0,113,255,60,0,60,0,60,0,208,50,60,0,60,0,60,0,3,51,47,0,252,48,139,48,60,0,60,0,60,0,0,51,47,0,113,48,252,48,104,48,60,0,60,0,60,0,1,51,47,0,139,48,117,48,66,48,60,0,60,0,60,0,2,51,47,0,147,48,122,48,66,48,60,0,67,48,60,0,60,0,60,0,68,48,60,0,60,0,60,0,163,48,60,0,60,0,60,0,104,255,60,0,60,0,60,0,164,48,60,0,60,0,60,0,114,255,60,0,60,0,60,0,209,50,60,0,60,0,60,0,4,51,47,0,107,48,147,48,80,48,60,0,60,0,60,0,5,51,47,0,147,48,97,48,60,0,69,48,60,0,60,0,60,0,70,48,60,0,60,0,60,0,165,48,60,0,60,0,60,0,105,255,60,0,60,0,60,0,166,48,60,0,60,0,60,0,115,255,60,0,60,0,60,0,210,50,60,0,60,0,60,0,6,51,47,0,74,48,147,48,60,0,44,216,0,220,60,0,71,48,60,0,60,0,60,0,72,48,60,0,60,0,60,0,167,48,60,0,60,0,60,0,106,255,60,0,60,0,60,0,168,48,60,0,60,0,60,0,116,255,60,0,60,0,60,0,211,50,60,0,60,0,60,0,8,51,47,0,252,48,75,48,252,48,60,0,60,0,60,0,7,51,47,0,89,48,79,48,252,48,105,48,60,0,73,48,60,0,60,0,60,0,74,48,60,0,60,0,60,0,169,48,60,0,60,0,60,0,107,255,60,0,60,0,60,0,170,48,60,0,60,0,60,0,117,255,60,0,60,0,60,0,212,50,60,0,60,0,60,0,10,51,47,0,252,48,128,48,60,0,60,0,60,0,9,51,47,0,147,48,89,48,60,0,149,48,60,0,60,0,60,0,75,48,60,0,60,0,60,0,245,48,60,0,60,0,60,0,171,48,60,0,60,0,60,0,118,255,60,0,60,0,60,0,213,50,60,0,60,0,60,0,11,51,47,0,68,48,138,48,60,0,60,0,60,0,12,51,47,0,137,48,100,48,104,48,60,0,60,0,60,0,13,51,47,0,141,48,138,48,252,48,60,0,60,0,60,0,14,51,47,0,153,48,141,48,147,48,60,0,60,0,60,0,15,51,47,0,153,48,147,48,126,48,60,0,77,48,60,0,60,0,60,0,173,48,60,0,60,0,60,0,119,255,60,0,60,0,60,0,214,50,60,0,60,0,60,0,16,51,47,0,153,48,76,48,60,0,60,0,60,0,17,51,47,0,153,48,107,48,252,48,60,0,60,0,60,0,18,51,47,0,134,48,138,48,252,48,60,0,60,0,60,0,19,51,47,0,153,48,139,48,96,48,252,48,60,0,60,0,60,0,20,51,47,0,141,48,60,0,60,0,60,0,21,51,47,0,141,48,80,48,137,48,128,48,60,0,60,0,60,0,22,51,47,0,141,48,129,48,252,48,104,48,139,48,60,0,60,0,60,0,23,51,47,0,141,48,143,48,100,48,104,48,60,0,79,48,60,0,60,0,60,0,240,49,60,0,60,0,60,0,175,48,60,0,60,0,60,0,120,255,60,0,60,0,60,0,215,50,60,0,60,0,60,0,24,51,47,0,153,48,137,48,128,48,60,0,60,0,60,0,25,51,47,0,153,48,137,48,128,48,104,48,147,48,60,0,60,0,60,0,26,51,47,0,139,48,92,48,68,48,141,48,60,0,60,0,60,0,27,51,47,0,141,48,252,48,109,48,60,0,150,48,60,0,60,0,60,0,81,48,60,0,60,0,60,0,246,48,60,0,60,0,60,0,177,48,60,0,60,0,60,0,121,255,60,0,60,0,60,0,216,50,60,0,60,0,60,0,28,51,47,0,252,48,89,48,60,0,44,216,50,221,60,0,60,0,60,0,83,48,60,0,60,0,60,0,44,216,85,221,60,0,60,0,60,0,179,48,60,0,60,0,60,0,122,255,60,0,60,0,60,0,217,50,60,0,60,0,60,0,255,48,47,0,104,48,60,0,60,0,60,0,30,51,47,0,252,48,125,48,60,0,60,0,60,0,60,216,1,222,47,0,83,48,60,0,60,0,60,0,29,51,47,0,139,48,106,48,60,0,85,48,60,0,60,0,60,0,181,48,60,0,60,0,60,0,123,255,60,0,60,0,60,0,218,50,60,0,60,0,60,0,60,216,2,222,60,0,60,0,60,0,31,51,47,0,68,48,79,48,139,48,60,0,60,0,60,0,32,51,47,0,147,48,97,48,252,48,128,48,60,0,6,48,47,0,129,48,60,0,60,0,60,0,87,48,60,0,60,0,60,0,241,49,60,0,60,0,60,0,183,48,60,0,60,0,60,0,124,255,60,0,60,0,60,0,219,50,60,0,60,0,60,0,33,51,47,0,138,48,147,48,80,48,60,0,89,48,60,0,60,0,60,0,242,49,60,0,60,0,60,0,185,48,60,0,60,0,60,0,125,255,60,0,60,0,60,0,220,50,60,0,91,48,60,0,60,0,60,0,187,48,60,0,60,0,60,0,126,255,60,0,60,0,60,0,221,50,60,0,60,0,60,0,34,51,47,0,147,48,97,48,60,0,60,0,60,0,35,51,47,0,147,48,104,48,60,0,93,48,60,0,60,0,60,0,189,48,60,0,60,0,60,0,127,255,60,0,60,0,60,0,222,50,60,0,95,48,60,0,60,0,60,0,191,48,60,0,60,0,60,0,128,255,60,0,60,0,60,0,223,50,60,0,60,0,60,0,36,51,47,0,153,48,252,48,89,48,60,0,97,48,60,0,60,0,60,0,193,48,60,0,60,0,60,0,129,255,60,0,60,0,60,0,224,50,60,0,99,48,60,0,60,0,60,0,100,48,60,0,60,0,60,0,195,48,60,0,60,0,60,0,111,255,60,0,60,0,60,0,196,48,60,0,60,0,60,0,130,255,60,0,60,0,60,0,225,50,60,0,102,48,60,0,60,0,60,0,198,48,60,0,60,0,60,0,131,255,60,0,60,0,60,0,226,50,60,0,60,0,60,0,60,216,19,222,47,0,153,48,60,0,60,0,60,0,37,51,47,0,153,48,87,48,60,0,104,48,60,0,60,0,60,0,243,49,60,0,60,0,60,0,200,48,60,0,60,0,60,0,132,255,60,0,60,0,60,0,227,50,60,0,60,0,60,0,38,51,47,0,153,48,139,48,60,0,60,0,60,0,39,51,47,0,147,48,60,0,106,48,60,0,60,0,60,0,202,48,60,0,60,0,60,0,133,255,60,0,60,0,60,0,228,50,60,0,60,0,60,0,40,51,47,0,110,48,60,0,107,48,60,0,60,0,60,0,203,48,60,0,60,0,60,0,134,255,60,0,60,0,60,0,229,50,60,0,108,48,60,0,60,0,60,0,244,49,60,0,60,0,60,0,204,48,60,0,60,0,60,0,135,255,60,0,60,0,60,0,230,50,60,0,109,48,60,0,60,0,60,0,205,48,60,0,60,0,60,0,136,255,60,0,60,0,60,0,231,50,60,0,110,48,60,0,60,0,60,0,206,48,60,0,60,0,60,0,137,255,60,0,60,0,60,0,232,50,60,0,60,0,60,0,41,51,47,0,100,48,104,48,60,0,111,48,60,0,60,0,60,0,245,49,60,0,60,0,60,0,207,48,60,0,60,0,60,0,138,255,60,0,60,0,60,0,233,50,60,0,60,0,60,0,43,51,47,0,154,48,252,48,91,48,147,48,104,48,60,0,60,0,60,0,44,51,47,0,154,48,252,48,100,48,60,0,60,0,60,0,45,51,47,0,153,48,252,48,140,48,139,48,60,0,60,0,60,0,42,51,47,0,68,48,100,48,60,0,114,48,60,0,60,0,60,0,246,49,60,0,60,0,60,0,210,48,60,0,60,0,60,0,139,255,60,0,60,0,60,0,234,50,60,0,60,0,60,0,46,51,47,0,154,48,66,48,89,48,104,48,139,48,60,0,60,0,60,0,47,51,47,0,154,48,79,48,139,48,60,0,60,0,60,0,48,51,47,0,154,48,83,48,60,0,60,0,60,0,49,51,47,0,153,48,139,48,60,0,117,48,60,0,60,0,60,0,247,49,60,0,60,0,60,0,213,48,60,0,60,0,60,0,140,255,60,0,60,0,60,0,235,50,60,0,60,0,60,0,50,51,47,0,66,48,137,48,100,48,105,48,60,0,60,0,60,0,51,51,47,0,68,48,252,48,104,48,60,0,60,0,60,0,52,51,47,0,153,48,100,48,87,48,72,48,139,48,60,0,60,0,60,0,53,51,47,0,137,48,147,48,60,0,120,48,60,0,60,0,60,0,248,49,60,0,60,0,60,0,216,48,60,0,60,0,60,0,141,255,60,0,60,0,60,0,236,50,60,0,60,0,60,0,59,51,47,0,154,48,252,48,88,48,60,0,60,0,60,0,60,51,47,0,153,48,252,48,95,48,60,0,60,0,60,0,54,51,47,0,79,48,95,48,252,48,139,48,60,0,60,0,60,0,55,51,47,0,154,48,93,48,60,0,60,0,60,0,56,51,47,0,154,48,107,48,114,48,60,0,60,0,60,0,57,51,47,0,139,48,100,48,60,0,60,0,60,0,58,51,47,0,154,48,147,48,89,48,60,0,123,48,60,0,60,0,60,0,249,49,60,0,60,0,60,0,219,48,60,0,60,0,60,0,142,255,60,0,60,0,60,0,237,50,60,0,60,0,60,0,65,51,47,0,252,48,139,48,60,0,60,0,60,0,66,51,47,0,252,48,147,48,60,0,60,0,60,0,61,51,47,0,154,48,68,48,147,48,104,48,60,0,60,0,60,0,60,216,0,222,47,0,75,48,60,0,60,0,60,0,62,51,47,0,153,48,139,48,104,48,60,0,60,0,60,0,63,51,47,0,147,48,60,0,60,0,60,0,64,51,47,0,154,48,147,48,105,48,60,0,60,48,47,0,89,48,60,0,60,0,60,0,126,48,60,0,60,0,60,0,222,48,60,0,60,0,60,0,143,255,60,0,60,0,60,0,238,50,60,0,60,0,60,0,67,51,47,0,68,48,79,48,141,48,60,0,60,0,60,0,68,51,47,0,68,48,139,48,60,0,60,0,60,0,69,51,47,0,100,48,111,48,60,0,60,0,60,0,70,51,47,0,139,48,79,48,60,0,60,0,60,0,71,51,47,0,147,48,87,48,136,48,147,48,60,0,127,48,60,0,60,0,60,0,223,48,60,0,60,0,60,0,144,255,60,0,60,0,60,0,239,50,60,0,60,0,60,0,72,51,47,0,79,48,141,48,147,48,60,0,60,0,60,0,73,51,47,0,138,48,60,0,60,0,60,0,74,51,47,0,138,48,112,48,252,48,139,48,60,0,128,48,60,0,60,0,60,0,250,49,60,0,60,0,60,0,224,48,60,0,60,0,60,0,145,255,60,0,60,0,60,0,240,50,60,0,129,48,60,0,60,0,60,0,225,48,60,0,60,0,60,0,146,255,60,0,60,0,60,0,241,50,60,0,60,0,60,0,77,51,47,0,252,48,104,48,139,48,60,0,60,0,60,0,75,51,47,0,76,48,60,0,60,0,60,0,76,51,47,0,76,48,104,48,147,48,60,0,130,48,60,0,60,0,60,0,226,48,60,0,60,0,60,0,147,255,60,0,60,0,60,0,242,50,60,0,131,48,60,0,60,0,60,0,132,48,60,0,60,0,60,0,227,48,60,0,60,0,60,0,108,255,60,0,60,0,60,0,228,48,60,0,60,0,60,0,148,255,60,0,60,0,60,0,243,50,60,0,60,0,60,0,78,51,47,0,252,48,105,48,60,0,60,0,60,0,79,51,47,0,252,48,139,48,60,0,44,216,32,221,60,0,133,48,60,0,60,0,60,0,134,48,60,0,60,0,60,0,229,48,60,0,60,0,60,0,109,255,60,0,60,0,60,0,230,48,60,0,60,0,60,0,149,255,60,0,60,0,60,0,244,50,60,0,60,0,60,0,80,51,47,0,66,48,147,48,60,0,44,216,33,221,60,0,135,48,60,0,60,0,60,0,136,48,60,0,60,0,60,0,231,48,60,0,60,0,60,0,110,255,60,0,60,0,60,0,232,48,60,0,60,0,60,0,150,255,60,0,60,0,60,0,245,50,60,0,60,0,60,0,159,48,47,0,138,48,60,0,137,48,60,0,60,0,60,0,251,49,60,0,60,0,60,0,233,48,60,0,60,0,60,0,151,255,60,0,60,0,60,0,246,50,60,0,138,48,60,0,60,0,60,0,252,49,60,0,60,0,60,0,234,48,60,0,60,0,60,0,152,255,60,0,60,0,60,0,247,50,60,0,60,0,60,0,81,51,47,0,100,48,104,48,139,48,60,0,60,0,60,0,82,51,47,0,137,48,60,0,139,48,60,0,60,0,60,0,253,49,60,0,60,0,60,0,235,48,60,0,60,0,60,0,153,255,60,0,60,0,60,0,248,50,60,0,60,0,60,0,84,51,47,0,252,48,118,48,139,48,60,0,60,0,60,0,83,51,47,0,116,48,252,48,60,0,140,48,60,0,60,0,60,0,254,49,60,0,60,0,60,0,236,48,60,0,60,0,60,0,154,255,60,0,60,0,60,0,249,50,60,0,60,0,60,0,85,51,47,0,128,48,60,0,60,0,60,0,86,51,47,0,147,48,104,48,82,48,147,48,60,0,141,48,60,0,60,0,60,0,255,49,60,0,60,0,60,0,237,48,60,0,60,0,60,0,155,255,60,0,60,0,60,0,250,50,60,0,142,48,60,0,60,0,60,0,143,48,60,0,60,0,60,0,238,48,60,0,60,0,60,0,239,48,60,0,60,0,60,0,156,255,60,0,60,0,60,0,251,50,60,0,60,0,60,0,87,51,47,0,100,48,104,48,60,0,44,216,80,221,60,0,60,0,60,0,144,48,60,0,60,0,60,0,44,216,100,221,60,0,60,0,60,0,240,48,60,0,60,0,60,0,252,50,60,0,44,216,31,221,60,0,60,0,60,0,44,216,34,221,60,0,44,216,81,221,60,0,60,0,60,0,145,48,60,0,60,0,60,0,44,216,101,221,60,0,60,0,60,0,241,48,60,0,60,0,60,0,253,50,60,0,44,216,82,221,60,0,60,0,60,0,146,48,60,0,60,0,60,0,44,216,102,221,60,0,60,0,60,0,242,48,60,0,60,0,60,0,102,255,60,0,60,0,60,0,254,50,60,0,147,48,60,0,60,0,60,0,44,216,103,221,60,0,60,0,60,0,243,48,60,0,60,0,60,0,157,255,60,0,44,216,2,220,60,0,44,216,3,220,60,0,44,216,4,220,60,0,44,216,5,220,60,0,44,216,6,220,60,0,44,216,7,220,60,0,44,216,8,220,60,0,44,216,9,220,60,0,44,216,10,220,60,0,44,216,11,220,60,0,44,216,12,220,60,0,44,216,13,220,60,0,44,216,14,220,60,0,44,216,1,220,60,0,44,216,15,220,60,0,44,216,16,220,60,0,44,216,17,220,60,0,44,216,18,220,60,0,44,216,19,220,60,0,44,216,20,220,60,0,44,216,21,220,60,0,44,216,22,220,60,0,44,216,23,220,60,0,44,216,24,220,60,0,44,216,25,220,60,0,44,216,26,220,60,0,44,216,27,220,60,0,44,216,28,220,60,0,44,216,29,220,60,0,44,216,30,220,60,0,44,216,31,220,60,0,44,216,32,220,60,0,44,216,33,220,60,0,44,216,34,220,60,0,44,216,35,220,60,0,44,216,36,220,60,0,44,216,37,220,60,0,44,216,38,220,60,0,44,216,39,220,60,0,44,216,40,220,60,0,44,216,41,220,60,0,44,216,42,220,60,0,44,216,43,220,60,0,44,216,44,220,60,0,44,216,45,220,60,0,44,216,46,220,60,0,44,216,47,220,60,0,44,216,48,220,60,0,44,216,49,220,60,0,44,216,50,220,60,0,44,216,51,220,60,0,44,216,52,220,60,0,44,216,53,220,60,0,44,216,54,220,60,0,44,216,55,220,60,0,44,216,56,220,60,0,44,216,57,220,60,0,44,216,58,220,60,0,44,216,59,220,60,0,44,216,60,220,60,0,44,216,61,220,60,0,44,216,62,220,60,0,44,216,63,220,60,0,44,216,64,220,60,0,44,216,65,220,60,0,44,216,66,220,60,0,44,216,67,220,60,0,44,216,68,220,60,0,44,216,69,220,60,0,44,216,70,220,60,0,44,216,71,220,60,0,44,216,72,220,60,0,44,216,73,220,60,0,44,216,74,220,60,0,44,216,75,220,60,0,44,216,76,220,60,0,44,216,77,220,60,0,44,216,78,220,60,0,44,216,79,220,60,0,44,216,80,220,60,0,44,216,81,220,60,0,44,216,82,220,60,0,44,216,83,220,60,0,44,216,84,220,60,0,44,216,85,220,60,0,44,216,86,220,60,0,44,216,87,220,60,0,44,216,88,220,60,0,44,216,89,220,60,0,44,216,90,220,60,0,44,216,91,220,60,0,44,216,92,220,60,0,44,216,93,220,60,0,44,216,94,220,60,0,44,216,95,220,60,0,44,216,96,220,60,0,44,216,97,220,60,0,44,216,98,220,60,0,44,216,99,220,60,0,44,216,100,220,60,0,44,216,101,220,60,0,44,216,102,220,60,0,44,216,103,220,60,0,44,216,104,220,60,0,44,216,105,220,60,0,44,216,106,220,60,0,44,216,107,220,60,0,44,216,108,220,60,0,44,216,109,220,60,0,44,216,110,220,60,0,44,216,111,220,60,0,44,216,112,220,60,0,44,216,113,220,60,0,44,216,114,220,60,0,44,216,115,220,60,0,44,216,116,220,60,0,44,216,117,220,60,0,44,216,118,220,60,0,44,216,119,220,60,0,44,216,120,220,60,0,44,216,121,220,60,0,44,216,122,220,60,0,44,216,123,220,60,0,44,216,124,220,60,0,44,216,125,220,60,0,44,216,126,220,60,0,44,216,127,220,60,0,44,216,128,220,60,0,44,216,129,220,60,0,44,216,130,220,60,0,44,216,131,220,60,0,44,216,132,220,60,0,44,216,133,220,60,0,44,216,134,220,60,0,44,216,135,220,60,0,44,216,136,220,60,0,44,216,137,220,60,0,44,216,138,220,60,0,44,216,139,220,60,0,44,216,140,220,60,0,44,216,141,220,60,0,44,216,142,220,60,0,44,216,143,220,60,0,44,216,144,220,60,0,44,216,145,220,60,0,44,216,146,220,60,0,44,216,147,220,60,0,44,216,148,220,60,0,44,216,149,220,60,0,44,216,150,220,60,0,44,216,151,220,60,0,44,216,152,220,60,0,44,216,153,220,60,0,44,216,154,220,60,0,44,216,155,220,60,0,44,216,156,220,60,0,44,216,157,220,60,0,44,216,158,220,60,0,44,216,159,220,60,0,44,216,160,220,60,0,44,216,161,220,60,0,44,216,162,220,60,0,44,216,163,220,60,0,44,216,164,220,60,0,44,216,165,220,60,0,44,216,166,220,60,0,44,216,167,220,60,0,44,216,168,220,60,0,44,216,169,220,60,0,44,216,170,220,60,0,44,216,171,220,60,0,44,216,172,220,60,0,44,216,173,220,60,0,44,216,174,220,60,0,44,216,175,220,60,0,44,216,176,220,60,0,44,216,177,220,60,0,44,216,178,220,60,0,44,216,179,220,60,0,44,216,180,220,60,0,44,216,181,220,60,0,44,216,182,220,60,0,44,216,183,220,60,0,44,216,184,220,60,0,44,216,185,220,60,0,44,216,186,220,60,0,44,216,187,220,60,0,44,216,188,220,60,0,44,216,189,220,60,0,44,216,190,220,60,0,44,216,191,220,60,0,44,216,192,220,60,0,44,216,193,220,60,0,44,216,194,220,60,0,44,216,195,220,60,0,44,216,196,220,60,0,44,216,197,220,60,0,44,216,198,220,60,0,44,216,199,220,60,0,44,216,200,220,60,0,44,216,201,220,60,0,44,216,202,220,60,0,44,216,203,220,60,0,44,216,204,220,60,0,44,216,205,220,60,0,44,216,206,220,60,0,44,216,207,220,60,0,44,216,208,220,60,0,44,216,209,220,60,0,44,216,210,220,60,0,44,216,211,220,60,0,44,216,212,220,60,0,44,216,213,220,60,0,44,216,214,220,60,0,44,216,215,220,60,0,44,216,216,220,60,0,44,216,217,220,60,0,44,216,218,220,60,0,44,216,219,220,60,0,44,216,220,220,60,0,44,216,221,220,60,0,44,216,222,220,60,0,44,216,223,220,60,0,44,216,224,220,60,0,44,216,225,220,60,0,44,216,226,220,60,0,44,216,227,220,60,0,44,216,228,220,60,0,44,216,229,220,60,0,44,216,230,220,60,0,44,216,231,220,60,0,44,216,232,220,60,0,44,216,233,220,60,0,44,216,234,220,60,0,44,216,235,220,60,0,44,216,236,220,60,0,44,216,237,220,60,0,44,216,238,220,60,0,44,216,239,220,60,0,44,216,240,220,60,0,44,216,241,220,60,0,44,216,242,220,60,0,44,216,243,220,60,0,44,216,244,220,60,0,44,216,245,220,60,0,44,216,246,220,60,0,44,216,247,220,60,0,44,216,248,220,60,0,44,216,249,220,60,0,44,216,250,220,60,0,44,216,251,220,60,0,44,216,252,220,60,0,44,216,253,220,60,0,44,216,254,220,60,0,44,216,255,220,60,0,44,216,0,221,60,0,44,216,1,221,60,0,44,216,2,221,60,0,44,216,3,221,60,0,44,216,4,221,60,0,44,216,5,221,60,0,44,216,6,221,60,0,44,216,7,221,60,0,44,216,8,221,60,0,44,216,9,221,60,0,44,216,10,221,60,0,44,216,11,221,60,0,44,216,12,221,60,0,44,216,13,221,60,0,44,216,14,221,60,0,44,216,15,221,60,0,44,216,16,221,60,0,44,216,17,221,60,0,44,216,18,221,60,0,44,216,19,221,60,0,44,216,20,221,60,0,44,216,21,221,60,0,44,216,22,221,60,0,44,216,23,221,60,0,44,216,24,221,60,0,44,216,25,221,60,0,44,216,26,221,60,0,44,216,27,221,60,0,44,216,28,221,60,0,44,216,29,221,60,0,44,216,30,221,60,0,5,49,60,0,60,0,160,49,60,0,6,49,60,0,60,0,60,0,180,49,60,0,7,49,60,0,172,49,60,0,8,49,60,0,42,49,60,0,9,49,60,0,10,49,60,0,60,0,60,0,181,49,60,0,11,49,60,0,47,49,60,0,12,49,60,0,13,49,60,0,60,0,60,0,187,49,60,0,60,0,163,49,60,0,14,49,60,0,60,0,60,0,182,49,60,0,43,49,60,0,173,49,60,0,15,49,60,0,60,0,60,0,183,49,60,0,16,49,60,0,60,0,162,49,60,0,17,49,60,0,18,49,60,0,44,49,60,0,188,49,60,0,189,49,60,0,19,49,60,0,20,49,60,0,21,49,60,0,22,49,60,0,23,49,60,0,60,0,161,49,60,0,24,49,60,0,25,49,60,0,184,49,60,0,185,49,60,0,186,49,60,0,26,49,60,0,60,0,169,49,60,0,27,49,60,0,60,0,167,49,60,0,166,49,60,0,28,49,60,0,60,0,60,0,46,49,60,0,29,49,60,0,164,49,60,0,60,0,165,49,60,0,30,49,60,0,60,0,174,49,60,0,31,49,60,0,32,49,60,0,60,0,175,49,60,0,33,49,60,0,34,49,60,0,35,49,60,0,36,49,60,0,178,49,60,0,37,49,60,0,176,49,60,0,177,49,60,0,38,49,60,0,39,49,60,0,60,0,170,49,60,0,60,0,60,0,179,49,60,0,40,49,60,0,60,0,171,49,60,0,60,0,168,49,60,0,41,49,60,0,45,49,60,0,190,49,60,0,191,49,60,0,0,160,60,0,1,160,60,0,2,160,60,0,3,160,60,0,4,160,60,0,5,160,60,0,6,160,60,0,7,160,60,0,8,160,60,0,9,160,60,0,10,160,60,0,11,160,60,0,12,160,60,0,13,160,60,0,14,160,60,0,15,160,60,0,16,160,60,0,17,160,60,0,18,160,60,0,19,160,60,0,20,160,60,0,21,160,60,0,22,160,60,0,23,160,60,0,24,160,60,0,25,160,60,0,26,160,60,0,27,160,60,0,28,160,60,0,29,160,60,0,30,160,60,0,31,160,60,0,32,160,60,0,33,160,60,0,34,160,60,0,35,160,60,0,36,160,60,0,37,160,60,0,38,160,60,0,39,160,60,0,40,160,60,0,41,160,60,0,42,160,60,0,43,160,60,0,44,160,60,0,45,160,60,0,46,160,60,0,47,160,60,0,48,160,60,0,49,160,60,0,50,160,60,0,51,160,60,0,52,160,60,0,53,160,60,0,54,160,60,0,55,160,60,0,56,160,60,0,57,160,60,0,58,160,60,0,59,160,60,0,60,160,60,0,61,160,60,0,62,160,60,0,63,160,60,0,64,160,60,0,65,160,60,0,66,160,60,0,67,160,60,0,68,160,60,0,69,160,60,0,70,160,60,0,71,160,60,0,72,160,60,0,73,160,60,0,74,160,60,0,75,160,60,0,76,160,60,0,77,160,60,0,78,160,60,0,79,160,60,0,80,160,60,0,81,160,60,0,82,160,60,0,83,160,60,0,84,160,60,0,85,160,60,0,86,160,60,0,87,160,60,0,88,160,60,0,89,160,60,0,90,160,60,0,91,160,60,0,92,160,60,0,93,160,60,0,94,160,60,0,95,160,60,0,96,160,60,0,97,160,60,0,98,160,60,0,99,160,60,0,100,160,60,0,101,160,60,0,102,160,60,0,103,160,60,0,104,160,60,0,105,160,60,0,106,160,60,0,107,160,60,0,108,160,60,0,109,160,60,0,110,160,60,0,111,160,60,0,112,160,60,0,113,160,60,0,114,160,60,0,115,160,60,0,116,160,60,0,117,160,60,0,118,160,60,0,119,160,60,0,120,160,60,0,121,160,60,0,122,160,60,0,123,160,60,0,124,160,60,0,125,160,60,0,126,160,60,0,127,160,60,0,128,160,60,0,129,160,60,0,130,160,60,0,131,160,60,0,132,160,60,0,133,160,60,0,134,160,60,0,135,160,60,0,136,160,60,0,137,160,60,0,138,160,60,0,139,160,60,0,140,160,60,0,141,160,60,0,142,160,60,0,143,160,60,0,144,160,60,0,145,160,60,0,146,160,60,0,147,160,60,0,148,160,60,0,149,160,60,0,150,160,60,0,151,160,60,0,152,160,60,0,153,160,60,0,154,160,60,0,155,160,60,0,156,160,60,0,157,160,60,0,158,160,60,0,159,160,60,0,160,160,60,0,161,160,60,0,162,160,60,0,163,160,60,0,164,160,60,0,165,160,60,0,166,160,60,0,167,160,60,0,168,160,60,0,169,160,60,0,170,160,60,0,171,160,60,0,172,160,60,0,173,160,60,0,174,160,60,0,175,160,60,0,176,160,60,0,177,160,60,0,178,160,60,0,179,160,60,0,180,160,60,0,181,160,60,0,182,160,60,0,183,160,60,0,184,160,60,0,185,160,60,0,186,160,60,0,187,160,60,0,188,160,60,0,189,160,60,0,190,160,60,0,191,160,60,0,192,160,60,0,193,160,60,0,194,160,60,0,195,160,60,0,196,160,60,0,197,160,60,0,198,160,60,0,199,160,60,0,200,160,60,0,201,160,60,0,202,160,60,0,203,160,60,0,204,160,60,0,205,160,60,0,206,160,60,0,207,160,60,0,208,160,60,0,209,160,60,0,210,160,60,0,211,160,60,0,212,160,60,0,213,160,60,0,214,160,60,0,215,160,60,0,216,160,60,0,217,160,60,0,218,160,60,0,219,160,60,0,220,160,60,0,221,160,60,0,222,160,60,0,223,160,60,0,224,160,60,0,225,160,60,0,226,160,60,0,227,160,60,0,228,160,60,0,229,160,60,0,230,160,60,0,231,160,60,0,232,160,60,0,233,160,60,0,234,160,60,0,235,160,60,0,236,160,60,0,237,160,60,0,238,160,60,0,239,160,60,0,240,160,60,0,241,160,60,0,242,160,60,0,243,160,60,0,244,160,60,0,245,160,60,0,246,160,60,0,247,160,60,0,248,160,60,0,249,160,60,0,250,160,60,0,251,160,60,0,252,160,60,0,253,160,60,0,254,160,60,0,255,160,60,0,0,161,60,0,1,161,60,0,2,161,60,0,3,161,60,0,4,161,60,0,5,161,60,0,6,161,60,0,7,161,60,0,8,161,60,0,9,161,60,0,10,161,60,0,11,161,60,0,12,161,60,0,13,161,60,0,14,161,60,0,15,161,60,0,16,161,60,0,17,161,60,0,18,161,60,0,19,161,60,0,20,161,60,0,21,161,60,0,22,161,60,0,23,161,60,0,24,161,60,0,25,161,60,0,26,161,60,0,27,161,60,0,28,161,60,0,29,161,60,0,30,161,60,0,31,161,60,0,32,161,60,0,33,161,60,0,34,161,60,0,35,161,60,0,36,161,60,0,37,161,60,0,38,161,60,0,39,161,60,0,40,161,60,0,41,161,60,0,42,161,60,0,43,161,60,0,44,161,60,0,45,161,60,0,46,161,60,0,47,161,60,0,48,161,60,0,49,161,60,0,50,161,60,0,51,161,60,0,52,161,60,0,53,161,60,0,54,161,60,0,55,161,60,0,56,161,60,0,57,161,60,0,58,161,60,0,59,161,60,0,60,161,60,0,61,161,60,0,62,161,60,0,63,161,60,0,64,161,60,0,65,161,60,0,66,161,60,0,67,161,60,0,68,161,60,0,69,161,60,0,70,161,60,0,71,161,60,0,72,161,60,0,73,161,60,0,74,161,60,0,75,161,60,0,76,161,60,0,77,161,60,0,78,161,60,0,79,161,60,0,80,161,60,0,81,161,60,0,82,161,60,0,83,161,60,0,84,161,60,0,85,161,60,0,86,161,60,0,87,161,60,0,88,161,60,0,89,161,60,0,90,161,60,0,91,161,60,0,92,161,60,0,93,161,60,0,94,161,60,0,95,161,60,0,96,161,60,0,97,161,60,0,98,161,60,0,99,161,60,0,100,161,60,0,101,161,60,0,102,161,60,0,103,161,60,0,104,161,60,0,105,161,60,0,106,161,60,0,107,161,60,0,108,161,60,0,109,161,60,0,110,161,60,0,111,161,60,0,112,161,60,0,113,161,60,0,114,161,60,0,115,161,60,0,116,161,60,0,117,161,60,0,118,161,60,0,119,161,60,0,120,161,60,0,121,161,60,0,122,161,60,0,123,161,60,0,124,161,60,0,125,161,60,0,126,161,60,0,127,161,60,0,128,161,60,0,129,161,60,0,130,161,60,0,131,161,60,0,132,161,60,0,133,161,60,0,134,161,60,0,135,161,60,0,136,161,60,0,137,161,60,0,138,161,60,0,139,161,60,0,140,161,60,0,141,161,60,0,142,161,60,0,143,161,60,0,144,161,60,0,145,161,60,0,146,161,60,0,147,161,60,0,148,161,60,0,149,161,60,0,150,161,60,0,151,161,60,0,152,161,60,0,153,161,60,0,154,161,60,0,155,161,60,0,156,161,60,0,157,161,60,0,158,161,60,0,159,161,60,0,160,161,60,0,161,161,60,0,162,161,60,0,163,161,60,0,164,161,60,0,165,161,60,0,166,161,60,0,167,161,60,0,168,161,60,0,169,161,60,0,170,161,60,0,171,161,60,0,172,161,60,0,173,161,60,0,174,161,60,0,175,161,60,0,176,161,60,0,177,161,60,0,178,161,60,0,179,161,60,0,180,161,60,0,181,161,60,0,182,161,60,0,183,161,60,0,184,161,60,0,185,161,60,0,186,161,60,0,187,161,60,0,188,161,60,0,189,161,60,0,190,161,60,0,191,161,60,0,192,161,60,0,193,161,60,0,194,161,60,0,195,161,60,0,196,161,60,0,197,161,60,0,198,161,60,0,199,161,60,0,200,161,60,0,201,161,60,0,202,161,60,0,203,161,60,0,204,161,60,0,205,161,60,0,206,161,60,0,207,161,60,0,208,161,60,0,209,161,60,0,210,161,60,0,211,161,60,0,212,161,60,0,213,161,60,0,214,161,60,0,215,161,60,0,216,161,60,0,217,161,60,0,218,161,60,0,219,161,60,0,220,161,60,0,221,161,60,0,222,161,60,0,223,161,60,0,224,161,60,0,225,161,60,0,226,161,60,0,227,161,60,0,228,161,60,0,229,161,60,0,230,161,60,0,231,161,60,0,232,161,60,0,233,161,60,0,234,161,60,0,235,161,60,0,236,161,60,0,237,161,60,0,238,161,60,0,239,161,60,0,240,161,60,0,241,161,60,0,242,161,60,0,243,161,60,0,244,161,60,0,245,161,60,0,246,161,60,0,247,161,60,0,248,161,60,0,249,161,60,0,250,161,60,0,251,161,60,0,252,161,60,0,253,161,60,0,254,161,60,0,255,161,60,0,0,162,60,0,1,162,60,0,2,162,60,0,3,162,60,0,4,162,60,0,5,162,60,0,6,162,60,0,7,162,60,0,8,162,60,0,9,162,60,0,10,162,60,0,11,162,60,0,12,162,60,0,13,162,60,0,14,162,60,0,15,162,60,0,16,162,60,0,17,162,60,0,18,162,60,0,19,162,60,0,20,162,60,0,21,162,60,0,22,162,60,0,23,162,60,0,24,162,60,0,25,162,60,0,26,162,60,0,27,162,60,0,28,162,60,0,29,162,60,0,30,162,60,0,31,162,60,0,32,162,60,0,33,162,60,0,34,162,60,0,35,162,60,0,36,162,60,0,37,162,60,0,38,162,60,0,39,162,60,0,40,162,60,0,41,162,60,0,42,162,60,0,43,162,60,0,44,162,60,0,45,162,60,0,46,162,60,0,47,162,60,0,48,162,60,0,49,162,60,0,50,162,60,0,51,162,60,0,52,162,60,0,53,162,60,0,54,162,60,0,55,162,60,0,56,162,60,0,57,162,60,0,58,162,60,0,59,162,60,0,60,162,60,0,61,162,60,0,62,162,60,0,63,162,60,0,64,162,60,0,65,162,60,0,66,162,60,0,67,162,60,0,68,162,60,0,69,162,60,0,70,162,60,0,71,162,60,0,72,162,60,0,73,162,60,0,74,162,60,0,75,162,60,0,76,162,60,0,77,162,60,0,78,162,60,0,79,162,60,0,80,162,60,0,81,162,60,0,82,162,60,0,83,162,60,0,84,162,60,0,85,162,60,0,86,162,60,0,87,162,60,0,88,162,60,0,89,162,60,0,90,162,60,0,91,162,60,0,92,162,60,0,93,162,60,0,94,162,60,0,95,162,60,0,96,162,60,0,97,162,60,0,98,162,60,0,99,162,60,0,100,162,60,0,101,162,60,0,102,162,60,0,103,162,60,0,104,162,60,0,105,162,60,0,106,162,60,0,107,162,60,0,108,162,60,0,109,162,60,0,110,162,60,0,111,162,60,0,112,162,60,0,113,162,60,0,114,162,60,0,115,162,60,0,116,162,60,0,117,162,60,0,118,162,60,0,119,162,60,0,120,162,60,0,121,162,60,0,122,162,60,0,123,162,60,0,124,162,60,0,125,162,60,0,126,162,60,0,127,162,60,0,128,162,60,0,129,162,60,0,130,162,60,0,131,162,60,0,132,162,60,0,133,162,60,0,134,162,60,0,135,162,60,0,136,162,60,0,137,162,60,0,138,162,60,0,139,162,60,0,140,162,60,0,141,162,60,0,142,162,60,0,143,162,60,0,144,162,60,0,145,162,60,0,146,162,60,0,147,162,60,0,148,162,60,0,149,162,60,0,150,162,60,0,151,162,60,0,152,162,60,0,153,162,60,0,154,162,60,0,155,162,60,0,156,162,60,0,157,162,60,0,158,162,60,0,159,162,60,0,160,162,60,0,161,162,60,0,162,162,60,0,163,162,60,0,164,162,60,0,165,162,60,0,166,162,60,0,167,162,60,0,168,162,60,0,169,162,60,0,170,162,60,0,171,162,60,0,172,162,60,0,173,162,60,0,174,162,60,0,175,162,60,0,176,162,60,0,177,162,60,0,178,162,60,0,179,162,60,0,180,162,60,0,181,162,60,0,182,162,60,0,183,162,60,0,184,162,60,0,185,162,60,0,186,162,60,0,187,162,60,0,188,162,60,0,189,162,60,0,190,162,60,0,191,162,60,0,192,162,60,0,193,162,60,0,194,162,60,0,195,162,60,0,196,162,60,0,197,162,60,0,198,162,60,0,199,162,60,0,200,162,60,0,201,162,60,0,202,162,60,0,203,162,60,0,204,162,60,0,205,162,60,0,206,162,60,0,207,162,60,0,208,162,60,0,209,162,60,0,210,162,60,0,211,162,60,0,212,162,60,0,213,162,60,0,214,162,60,0,215,162,60,0,216,162,60,0,217,162,60,0,218,162,60,0,219,162,60,0,220,162,60,0,221,162,60,0,222,162,60,0,223,162,60,0,224,162,60,0,225,162,60,0,226,162,60,0,227,162,60,0,228,162,60,0,229,162,60,0,230,162,60,0,231,162,60,0,232,162,60,0,233,162,60,0,234,162,60,0,235,162,60,0,236,162,60,0,237,162,60,0,238,162,60,0,239,162,60,0,240,162,60,0,241,162,60,0,242,162,60,0,243,162,60,0,244,162,60,0,245,162,60,0,246,162,60,0,247,162,60,0,248,162,60,0,249,162,60,0,250,162,60,0,251,162,60,0,252,162,60,0,253,162,60,0,254,162,60,0,255,162,60,0,0,163,60,0,1,163,60,0,2,163,60,0,3,163,60,0,4,163,60,0,5,163,60,0,6,163,60,0,7,163,60,0,8,163,60,0,9,163,60,0,10,163,60,0,11,163,60,0,12,163,60,0,13,163,60,0,14,163,60,0,15,163,60,0,16,163,60,0,17,163,60,0,18,163,60,0,19,163,60,0,20,163,60,0,21,163,60,0,22,163,60,0,23,163,60,0,24,163,60,0,25,163,60,0,26,163,60,0,27,163,60,0,28,163,60,0,29,163,60,0,30,163,60,0,31,163,60,0,32,163,60,0,33,163,60,0,34,163,60,0,35,163,60,0,36,163,60,0,37,163,60,0,38,163,60,0,39,163,60,0,40,163,60,0,41,163,60,0,42,163,60,0,43,163,60,0,44,163,60,0,45,163,60,0,46,163,60,0,47,163,60,0,48,163,60,0,49,163,60,0,50,163,60,0,51,163,60,0,52,163,60,0,53,163,60,0,54,163,60,0,55,163,60,0,56,163,60,0,57,163,60,0,58,163,60,0,59,163,60,0,60,163,60,0,61,163,60,0,62,163,60,0,63,163,60,0,64,163,60,0,65,163,60,0,66,163,60,0,67,163,60,0,68,163,60,0,69,163,60,0,70,163,60,0,71,163,60,0,72,163,60,0,73,163,60,0,74,163,60,0,75,163,60,0,76,163,60,0,77,163,60,0,78,163,60,0,79,163,60,0,80,163,60,0,81,163,60,0,82,163,60,0,83,163,60,0,84,163,60,0,85,163,60,0,86,163,60,0,87,163,60,0,88,163,60,0,89,163,60,0,90,163,60,0,91,163,60,0,92,163,60,0,93,163,60,0,94,163,60,0,95,163,60,0,96,163,60,0,97,163,60,0,98,163,60,0,99,163,60,0,100,163,60,0,101,163,60,0,102,163,60,0,103,163,60,0,104,163,60,0,105,163,60,0,106,163,60,0,107,163,60,0,108,163,60,0,109,163,60,0,110,163,60,0,111,163,60,0,112,163,60,0,113,163,60,0,114,163,60,0,115,163,60,0,116,163,60,0,117,163,60,0,118,163,60,0,119,163,60,0,120,163,60,0,121,163,60,0,122,163,60,0,123,163,60,0,124,163,60,0,125,163,60,0,126,163,60,0,127,163,60,0,128,163,60,0,129,163,60,0,130,163,60,0,131,163,60,0,132,163,60,0,133,163,60,0,134,163,60,0,135,163,60,0,136,163,60,0,137,163,60,0,138,163,60,0,139,163,60,0,140,163,60,0,141,163,60,0,142,163,60,0,143,163,60,0,144,163,60,0,145,163,60,0,146,163,60,0,147,163,60,0,148,163,60,0,149,163,60,0,150,163,60,0,151,163,60,0,152,163,60,0,153,163,60,0,154,163,60,0,155,163,60,0,156,163,60,0,157,163,60,0,158,163,60,0,159,163,60,0,160,163,60,0,161,163,60,0,162,163,60,0,163,163,60,0,164,163,60,0,165,163,60,0,166,163,60,0,167,163,60,0,168,163,60,0,169,163,60,0,170,163,60,0,171,163,60,0,172,163,60,0,173,163,60,0,174,163,60,0,175,163,60,0,176,163,60,0,177,163,60,0,178,163,60,0,179,163,60,0,180,163,60,0,181,163,60,0,182,163,60,0,183,163,60,0,184,163,60,0,185,163,60,0,186,163,60,0,187,163,60,0,188,163,60,0,189,163,60,0,190,163,60,0,191,163,60,0,192,163,60,0,193,163,60,0,194,163,60,0,195,163,60,0,196,163,60,0,197,163,60,0,198,163,60,0,199,163,60,0,200,163,60,0,201,163,60,0,202,163,60,0,203,163,60,0,204,163,60,0,205,163,60,0,206,163,60,0,207,163,60,0,208,163,60,0,209,163,60,0,210,163,60,0,211,163,60,0,212,163,60,0,213,163,60,0,214,163,60,0,215,163,60,0,216,163,60,0,217,163,60,0,218,163,60,0,219,163,60,0,220,163,60,0,221,163,60,0,222,163,60,0,223,163,60,0,224,163,60,0,225,163,60,0,226,163,60,0,227,163,60,0,228,163,60,0,229,163,60,0,230,163,60,0,231,163,60,0,232,163,60,0,233,163,60,0,234,163,60,0,235,163,60,0,236,163,60,0,237,163,60,0,238,163,60,0,239,163,60,0,240,163,60,0,241,163,60,0,242,163,60,0,243,163,60,0,244,163,60,0,245,163,60,0,246,163,60,0,247,163,60,0,248,163,60,0,249,163,60,0,250,163,60,0,251,163,60,0,252,163,60,0,253,163,60,0,254,163,60,0,255,163,60,0,0,164,60,0,1,164,60,0,2,164,60,0,3,164,60,0,4,164,60,0,5,164,60,0,6,164,60,0,7,164,60,0,8,164,60,0,9,164,60,0,10,164,60,0,11,164,60,0,12,164,60,0,13,164,60,0,14,164,60,0,15,164,60,0,16,164,60,0,17,164,60,0,18,164,60,0,19,164,60,0,20,164,60,0,21,164,60,0,22,164,60,0,23,164,60,0,24,164,60,0,25,164,60,0,26,164,60,0,27,164,60,0,28,164,60,0,29,164,60,0,30,164,60,0,31,164,60,0,32,164,60,0,33,164,60,0,34,164,60,0,35,164,60,0,36,164,60,0,37,164,60,0,38,164,60,0,39,164,60,0,40,164,60,0,41,164,60,0,42,164,60,0,43,164,60,0,44,164,60,0,45,164,60,0,46,164,60,0,47,164,60,0,48,164,60,0,49,164,60,0,50,164,60,0,51,164,60,0,52,164,60,0,53,164,60,0,54,164,60,0,55,164,60,0,56,164,60,0,57,164,60,0,58,164,60,0,59,164,60,0,60,164,60,0,61,164,60,0,62,164,60,0,63,164,60,0,64,164,60,0,65,164,60,0,66,164,60,0,67,164,60,0,68,164,60,0,69,164,60,0,70,164,60,0,71,164,60,0,72,164,60,0,73,164,60,0,74,164,60,0,75,164,60,0,76,164,60,0,77,164,60,0,78,164,60,0,79,164,60,0,80,164,60,0,81,164,60,0,82,164,60,0,83,164,60,0,84,164,60,0,85,164,60,0,86,164,60,0,87,164,60,0,88,164,60,0,89,164,60,0,90,164,60,0,91,164,60,0,92,164,60,0,93,164,60,0,94,164,60,0,95,164,60,0,96,164,60,0,97,164,60,0,98,164,60,0,99,164,60,0,100,164,60,0,101,164,60,0,102,164,60,0,103,164,60,0,104,164,60,0,105,164,60,0,106,164,60,0,107,164,60,0,108,164,60,0,109,164,60,0,110,164,60,0,111,164,60,0,112,164,60,0,113,164,60,0,114,164,60,0,115,164,60,0,116,164,60,0,117,164,60,0,118,164,60,0,119,164,60,0,120,164,60,0,121,164,60,0,122,164,60,0,123,164,60,0,124,164,60,0,125,164,60,0,126,164,60,0,127,164,60,0,128,164,60,0,129,164,60,0,130,164,60,0,131,164,60,0,132,164,60,0,133,164,60,0,134,164,60,0,135,164,60,0,136,164,60,0,137,164,60,0,138,164,60,0,139,164,60,0,140,164,60,0,248,164,60,0,249,164,60,0,250,164,60,0,251,164,60,0,253,164,60,0,252,164,60,0,208,164,60,0,209,164,60,0,210,164,60,0,211,164,60,0,212,164,60,0,213,164,60,0,214,164,60,0,215,164,60,0,216,164,60,0,217,164,60,0,218,164,60,0,219,164,60,0,220,164,60,0,221,164,60,0,222,164,60,0,223,164,60,0,224,164,60,0,225,164,60,0,226,164,60,0,227,164,60,0,228,164,60,0,229,164,60,0,230,164,60,0,231,164,60,0,232,164,60,0,233,164,60,0,235,164,60,0,237,164,60,0,234,164,60,0,236,164,60,0,7,216,176,223,60,0,238,164,60,0,239,164,60,0,240,164,60,0,241,164,60,0,242,164,60,0,243,164,60,0,244,164,60,0,245,164,60,0,246,164,60,0,247,164,60,0,27,216,0,223,60,0,27,216,1,223,60,0,27,216,2,223,60,0,27,216,3,223,60,0,27,216,69,223,60,0,27,216,4,223,60,0,60,0,60,0,27,216,6,223,60,0,27,216,5,223,60,0,27,216,7,223,60,0,27,216,8,223,60,0,27,216,9,223,60,0,27,216,10,223,60,0,27,216,11,223,60,0,27,216,12,223,60,0,27,216,13,223,60,0,27,216,72,223,60,0,27,216,14,223,60,0,27,216,15,223,60,0,27,216,74,223,60,0,27,216,16,223,60,0,60,0,60,0,27,216,19,223,60,0,27,216,17,223,60,0,27,216,18,223,60,0,27,216,20,223,60,0,27,216,21,223,60,0,27,216,22,223,60,0,27,216,23,223,60,0,27,216,24,223,60,0,27,216,25,223,60,0,27,216,26,223,60,0,27,216,27,223,60,0,27,216,28,223,60,0,27,216,29,223,60,0,27,216,30,223,60,0,27,216,31,223,60,0,27,216,32,223,60,0,27,216,33,223,60,0,27,216,34,223,60,0,27,216,35,223,60,0,60,0,60,0,27,216,37,223,60,0,27,216,36,223,60,0,27,216,38,223,60,0,27,216,39,223,60,0,27,216,40,223,60,0,27,216,41,223,60,0,27,216,42,223,60,0,27,216,43,223,60,0,27,216,44,223,60,0,27,216,45,223,60,0,27,216,46,223,60,0,27,216,47,223,60,0,27,216,48,223,60,0,27,216,49,223,60,0,27,216,50,223,60,0,27,216,71,223,60,0,27,216,51,223,60,0,27,216,70,223,60,0,27,216,52,223,60,0,27,216,53,223,60,0,27,216,54,223,60,0,27,216,55,223,60,0,27,216,56,223,60,0,27,216,57,223,60,0,27,216,73,223,60,0,27,216,58,223,60,0,27,216,59,223,60,0,27,216,60,223,60,0,27,216,61,223,60,0,60,0,60,0,27,216,63,223,60,0,27,216,62,223,60,0,27,216,64,223,60,0,27,216,65,223,60,0,27,216,66,223,60,0,27,216,67,223,60,0,27,216,68,223,60,0,27,216,80,223,60,0,27,216,81,223,60,0,27,216,82,223,60,0,27,216,83,223,60,0,27,216,79,223,60,0,27,216,84,223,60,0,27,216,85,223,60,0,27,216,86,223,60,0,27,216,87,223,60,0,27,216,88,223,60,0,27,216,129,223,60,0,27,216,89,223,60,0,27,216,90,223,60,0,27,216,91,223,60,0,27,216,92,223,60,0,27,216,131,223,60,0,27,216,93,223,60,0,27,216,94,223,60,0,27,216,95,223,60,0,27,216,96,223,60,0,27,216,132,223,60,0,27,216,97,223,60,0,27,216,98,223,60,0,27,216,99,223,60,0,27,216,100,223,60,0,27,216,101,223,60,0,27,216,134,223,60,0,27,216,102,223,60,0,27,216,103,223,60,0,27,216,104,223,60,0,27,216,105,223,60,0,27,216,106,223,60,0,27,216,107,223,60,0,27,216,108,223,60,0,27,216,109,223,60,0,27,216,127,223,60,0,27,216,135,223,60,0,27,216,110,223,60,0,27,216,111,223,60,0,27,216,112,223,60,0,27,216,113,223,60,0,27,216,114,223,60,0,27,216,128,223,60,0,27,216,115,223,60,0,27,216,116,223,60,0,27,216,133,223,60,0,27,216,130,223,60,0,27,216,117,223,60,0,27,216,118,223,60,0,27,216,119,223,60,0,27,216,120,223,60,0,27,216,121,223,60,0,27,216,122,223,60,0,27,216,123,223,60,0,27,216,124,223,60,0,27,216,125,223,60,0,27,216,126,223,60,0,27,216,143,223,60,0,27,216,144,223,60,0,27,216,145,223,60,0,27,216,146,223,60,0,27,216,147,223,60,0,27,216,148,223,60,0,27,216,149,223,60,0,27,216,150,223,60,0,27,216,151,223,60,0,27,216,152,223,60,0,27,216,153,223,60,0,27,216,154,223,60,0,27,216,155,223,60,0,27,216,156,223,60,0,27,216,157,223,60,0,27,216,158,223,60,0,27,216,159,223,60,0,6,216,255,220,60,0,6,216,192,220,60,0,60,0,60,0,6,216,160,220,60,0,6,216,193,220,60,0,60,0,60,0,6,216,161,220,60,0,6,216,194,220,60,0,60,0,60,0,6,216,162,220,60,0,6,216,195,220,60,0,60,0,60,0,6,216,163,220,60,0,6,216,196,220,60,0,60,0,60,0,6,216,164,220,60,0,6,216,197,220,60,0,60,0,60,0,6,216,165,220,60,0,6,216,198,220,60,0,60,0,60,0,6,216,166,220,60,0,6,216,199,220,60,0,60,0,60,0,6,216,167,220,60,0,6,216,200,220,60,0,60,0,60,0,6,216,168,220,60,0,6,216,201,220,60,0,60,0,60,0,6,216,169,220,60,0,6,216,202,220,60,0,60,0,60,0,6,216,170,220,60,0,6,216,203,220,60,0,60,0,60,0,6,216,171,220,60,0,6,216,204,220,60,0,60,0,60,0,6,216,172,220,60,0,6,216,205,220,60,0,60,0,60,0,6,216,173,220,60,0,6,216,206,220,60,0,60,0,60,0,6,216,174,220,60,0,6,216,207,220,60,0,60,0,60,0,6,216,175,220,60,0,6,216,208,220,60,0,60,0,60,0,6,216,176,220,60,0,6,216,209,220,60,0,60,0,60,0,6,216,177,220,60,0,6,216,210,220,60,0,60,0,60,0,6,216,178,220,60,0,6,216,211,220,60,0,60,0,60,0,6,216,179,220,60,0,6,216,212,220,60,0,60,0,60,0,6,216,180,220,60,0,6,216,213,220,60,0,60,0,60,0,6,216,181,220,60,0,6,216,214,220,60,0,60,0,60,0,6,216,182,220,60,0,6,216,215,220,60,0,60,0,60,0,6,216,183,220,60,0,6,216,216,220,60,0,60,0,60,0,6,216,184,220,60,0,6,216,217,220,60,0,60,0,60,0,6,216,185,220,60,0,6,216,218,220,60,0,60,0,60,0,6,216,186,220,60,0,6,216,219,220,60,0,60,0,60,0,6,216,187,220,60,0,6,216,220,220,60,0,60,0,60,0,6,216,188,220,60,0,6,216,221,220,60,0,60,0,60,0,6,216,189,220,60,0,6,216,222,220,60,0,60,0,60,0,6,216,190,220,60,0,6,216,223,220,60,0,60,0,60,0,6,216,191,220,60,0,6,216,213,222,60,0,6,216,214,222,60,0,6,216,215,222,60,0,6,216,216,222,60,0,6,216,217,222,60,0,6,216,218,222,60,0,6,216,219,222,60,0,6,216,192,222,60,0,6,216,193,222,60,0,6,216,194,222,60,0,6,216,195,222,60,0,6,216,196,222,60,0,6,216,197,222,60,0,6,216,198,222,60,0,6,216,199,222,60,0,6,216,200,222,60,0,6,216,201,222,60,0,6,216,202,222,60,0,6,216,203,222,60,0,6,216,204,222,60,0,6,216,205,222,60,0,6,216,206,222,60,0,6,216,207,222,60,0,6,216,208,222,60,0,6,216,209,222,60,0,6,216,210,222,60,0,6,216,211,222,60,0,6,216,212,222,60,0,6,216,220,222,60,0,6,216,221,222,60,0,6,216,223,222,60,0,6,216,224,222,60,0,6,216,225,222,60,0,6,216,226,222,60,0,6,216,227,222,60,0,6,216,222,222,60,0,6,216,228,222,60,0,6,216,239,222,60,0,6,216,242,222,60,0,6,216,241,222,60,0,6,216,230,222,60,0,6,216,233,222,60,0,6,216,229,222,60,0,6,216,232,222,60,0,6,216,244,222,60,0,6,216,247,222,60,0,6,216,243,222,60,0,6,216,246,222,60,0,6,216,236,222,60,0,6,216,238,222,60,0,6,216,235,222,60,0,6,216,237,222,60,0,6,216,245,222,60,0,6,216,248,222,60,0,6,216,231,222,60,0,6,216,234,222,60,0,6,216,240,222,60,0,26,216,0,223,60,0,26,216,1,223,60,0,26,216,2,223,60,0,26,216,3,223,60,0,26,216,4,223,60,0,26,216,5,223,60,0,26,216,6,223,60,0,26,216,7,223,60,0,26,216,8,223,60,0,26,216,9,223,60,0,26,216,10,223,60,0,26,216,11,223,60,0,26,216,12,223,60,0,26,216,13,223,60,0,26,216,14,223,60,0,26,216,15,223,60,0,26,216,16,223,60,0,26,216,17,223,60,0,26,216,18,223,60,0,26,216,19,223,60,0,26,216,20,223,60,0,26,216,21,223,60,0,26,216,22,223,60,0,26,216,23,223,60,0,26,216,24,223,60,0,26,216,25,223,60,0,26,216,26,223,60,0,26,216,27,223,60,0,26,216,28,223,60,0,26,216,29,223,60,0,26,216,30,223,60,0,26,216,31,223,60,0,26,216,32,223,60,0,26,216,33,223,60,0,26,216,34,223,60,0,26,216,35,223,60,0,26,216,36,223,60,0,26,216,37,223,60,0,26,216,38,223,60,0,26,216,39,223,60,0,26,216,40,223,60,0,26,216,41,223,60,0,26,216,42,223,60,0,26,216,43,223,60,0,26,216,44,223,60,0,26,216,45,223,60,0,26,216,46,223,60,0,26,216,47,223,60,0,26,216,64,223,60,0,26,216,65,223,60,0,26,216,99,223,60,0,26,216,100,223,60,0,26,216,101,223,60,0,26,216,102,223,60,0,26,216,103,223,60,0,26,216,104,223,60,0,26,216,105,223,60,0,26,216,106,223,60,0,26,216,107,223,60,0,26,216,108,223,60,0,26,216,109,223,60,0,26,216,110,223,60,0,26,216,111,223,60,0,26,216,112,223,60,0,26,216,113,223,60,0,26,216,114,223,60,0,26,216,115,223,60,0,26,216,116,223,60,0,26,216,117,223,60,0,26,216,118,223,60,0,26,216,119,223,60,0,26,216,125,223,60,0,26,216,126,223,60,0,26,216,127,223,60,0,26,216,128,223,60,0,26,216,129,223,60,0,26,216,130,223,60,0,26,216,131,223,60,0,26,216,132,223,60,0,26,216,133,223,60,0,26,216,134,223,60,0,26,216,135,223,60,0,26,216,136,223,60,0,26,216,137,223,60,0,26,216,138,223,60,0,26,216,139,223,60,0,26,216,140,223,60,0,26,216,141,223,60,0,26,216,142,223,60,0,26,216,143,223,60,0,56,216,0,221,60,0,56,216,1,221,60,0,56,216,2,221,60,0,56,216,3,221,60,0,56,216,4,221,60,0,56,216,5,221,60,0,56,216,6,221,60,0,56,216,7,221,60,0,56,216,8,221,60,0,56,216,9,221,60,0,56,216,10,221,60,0,56,216,11,221,60,0,56,216,12,221,60,0,56,216,13,221,60,0,56,216,14,221,60,0,56,216,15,221,60,0,56,216,16,221,60,0,56,216,17,221,60,0,56,216,18,221,60,0,56,216,19,221,60,0,56,216,20,221,60,0,56,216,21,221,60,0,56,216,22,221,60,0,56,216,23,221,60,0,56,216,24,221,60,0,56,216,25,221,60,0,56,216,26,221,60,0,56,216,27,221,60,0,56,216,28,221,60,0,56,216,29,221,60,0,56,216,30,221,60,0,56,216,31,221,60,0,56,216,32,221,60,0,56,216,33,221,60,0,56,216,34,221,60,0,56,216,35,221,60,0,56,216,36,221,60,0,56,216,37,221,60,0,56,216,38,221,60,0,56,216,39,221,60,0,56,216,40,221,60,0,56,216,41,221,60,0,56,216,42,221,60,0,56,216,43,221,60,0,56,216,44,221,60,0,56,216,55,221,60,0,56,216,56,221,60,0,56,216,57,221,60,0,56,216,58,221,60,0,56,216,59,221,60,0,56,216,78,221,60,0,56,216,144,222,60,0,56,216,145,222,60,0,56,216,146,222,60,0,56,216,147,222,60,0,56,216,148,222,60,0,56,216,149,222,60,0,56,216,150,222,60,0,56,216,151,222,60,0,56,216,152,222,60,0,56,216,153,222,60,0,56,216,154,222,60,0,56,216,155,222,60,0,56,216,156,222,60,0,56,216,157,222,60,0,56,216,158,222,60,0,56,216,159,222,60,0,56,216,160,222,60,0,56,216,161,222,60,0,56,216,162,222,60,0,56,216,163,222,60,0,56,216,164,222,60,0,56,216,165,222,60,0,56,216,166,222,60,0,56,216,167,222,60,0,56,216,168,222,60,0,56,216,169,222,60,0,56,216,170,222,60,0,56,216,171,222,60,0,56,216,172,222,60,0,56,216,173,222,60,0,56,216,192,222,60,0,56,216,193,222,60,0,56,216,194,222,60,0,56,216,195,222,60,0,56,216,196,222,60,0,56,216,197,222,60,0,56,216,198,222,60,0,56,216,199,222,60,0,56,216,200,222,60,0,56,216,201,222,60,0,56,216,202,222,60,0,56,216,203,222,60,0,56,216,204,222,60,0,56,216,205,222,60,0,56,216,206,222,60,0,56,216,207,222,60,0,56,216,208,222,60,0,56,216,209,222,60,0,56,216,210,222,60,0,56,216,211,222,60,0,56,216,212,222,60,0,56,216,213,222,60,0,56,216,214,222,60,0,56,216,215,222,60,0,56,216,216,222,60,0,56,216,217,222,60,0,56,216,218,222,60,0,56,216,219,222,60,0,56,216,220,222,60,0,56,216,221,222,60,0,56,216,222,222,60,0,56,216,223,222,60,0,56,216,224,222,60,0,56,216,225,222,60,0,56,216,226,222,60,0,56,216,227,222,60,0,56,216,228,222,60,0,56,216,229,222,60,0,56,216,230,222,60,0,56,216,231,222,60,0,56,216,232,222,60,0,56,216,233,222,60,0,56,216,234,222,60,0,56,216,235,222,60,0,57,216,208,220,60,0,57,216,209,220,60,0,57,216,210,220,60,0,57,216,211,220,60,0,57,216,212,220,60,0,57,216,213,220,60,0,57,216,214,220,60,0,57,216,215,220,60,0,57,216,216,220,60,0,57,216,217,220,60,0,57,216,218,220,60,0,57,216,219,220,60,0,57,216,220,220,60,0,57,216,221,220,60,0,57,216,222,220,60,0,57,216,223,220,60,0,57,216,224,220,60,0,57,216,225,220,60,0,57,216,226,220,60,0,57,216,227,220,60,0,57,216,228,220,60,0,57,216,229,220,60,0,57,216,230,220,60,0,57,216,231,220,60,0,57,216,232,220,60,0,57,216,233,220,60,0,57,216,234,220,60,0,57,216,235,220,60,0,0,216,128,222,60,0,0,216,129,222,60,0,0,216,130,222,60,0,0,216,131,222,60,0,0,216,132,222,60,0,0,216,133,222,60,0,0,216,134,222,60,0,0,216,135,222,60,0,0,216,136,222,60,0,0,216,137,222,60,0,0,216,138,222,60,0,0,216,139,222,60,0,0,216,140,222,60,0,0,216,141,222,60,0,0,216,142,222,60,0,0,216,143,222,60,0,0,216,144,222,60,0,0,216,145,222,60,0,0,216,146,222,60,0,0,216,147,222,60,0,0,216,148,222,60,0,0,216,149,222,60,0,0,216,150,222,60,0,0,216,151,222,60,0,0,216,152,222,60,0,0,216,153,222,60,0,0,216,154,222,60,0,0,216,155,222,60,0,0,216,156,222,60,0,0,216,160,222,60,0,0,216,161,222,60,0,0,216,162,222,60,0,0,216,163,222,60,0,0,216,164,222,60,0,0,216,165,222,60,0,0,216,166,222,60,0,0,216,167,222,60,0,0,216,168,222,60,0,0,216,169,222,60,0,0,216,170,222,60,0,0,216,171,222,60,0,0,216,172,222,60,0,0,216,173,222,60,0,0,216,174,222,60,0,0,216,175,222,60,0,0,216,176,222,60,0,0,216,177,222,60,0,0,216,178,222,60,0,0,216,179,222,60,0,0,216,180,222,60,0,0,216,181,222,60,0,0,216,182,222,60,0,0,216,183,222,60,0,0,216,184,222,60,0,0,216,185,222,60,0,0,216,186,222,60,0,0,216,187,222,60,0,0,216,188,222,60,0,0,216,189,222,60,0,0,216,190,222,60,0,0,216,191,222,60,0,0,216,192,222,60,0,0,216,193,222,60,0,0,216,194,222,60,0,0,216,195,222,60,0,0,216,196,222,60,0,0,216,197,222,60,0,0,216,198,222,60,0,0,216,199,222,60,0,0,216,200,222,60,0,0,216,201,222,60,0,0,216,202,222,60,0,0,216,203,222,60,0,0,216,204,222,60,0,0,216,205,222,60,0,0,216,206,222,60,0,0,216,207,222,60,0,0,216,208,222,60,0,14,32,2,216,32,221,14,32,60,0,14,32,2,216,33,221,14,32,60,0,14,32,2,216,34,221,14,32,60,0,14,32,2,216,35,221,14,32,60,0,14,32,2,216,36,221,14,32,60,0,14,32,2,216,37,221,14,32,60,0,14,32,2,216,38,221,14,32,60,0,14,32,2,216,39,221,14,32,60,0,14,32,2,216,40,221,14,32,60,0,14,32,2,216,41,221,14,32,60,0,14,32,2,216,42,221,14,32,60,0,14,32,2,216,43,221,14,32,60,0,14,32,2,216,44,221,14,32,60,0,14,32,2,216,45,221,14,32,60,0,14,32,2,216,46,221,14,32,60,0,14,32,2,216,47,221,14,32,60,0,14,32,2,216,48,221,14,32,60,0,14,32,2,216,49,221,14,32,60,0,14,32,2,216,50,221,14,32,60,0,14,32,2,216,51,221,14,32,60,0,14,32,2,216,52,221,14,32,60,0,14,32,2,216,53,221,14,32,60,0,14,32,2,216,54,221,14,32,60,0,14,32,2,216,55,221,14,32,60,0,14,32,2,216,56,221,14,32,60,0,14,32,2,216,57,221,14,32,60,0,0,216,0,223,60,0,0,216,1,223,60,0,0,216,2,223,60,0,0,216,3,223,60,0,0,216,4,223,60,0,0,216,5,223,60,0,0,216,6,223,60,0,0,216,7,223,60,0,0,216,8,223,60,0,0,216,9,223,60,0,0,216,10,223,60,0,0,216,11,223,60,0,0,216,12,223,60,0,0,216,13,223,60,0,0,216,14,223,60,0,0,216,31,223,60,0,0,216,15,223,60,0,0,216,16,223,60,0,0,216,17,223,60,0,0,216,18,223,60,0,0,216,19,223,60,0,0,216,20,223,60,0,0,216,21,223,60,0,0,216,22,223,60,0,0,216,23,223,60,0,0,216,24,223,60,0,0,216,25,223,60,0,0,216,26,223,60,0,0,216,27,223,60,0,0,216,28,223,60,0,0,216,29,223,60,0,0,216,30,223,60,0,0,216,45,223,60,0,0,216,46,223,60,0,0,216,47,223,60,0,0,216,48,223,60,0,0,216,49,223,60,0,0,216,50,223,60,0,0,216,51,223,60,0,0,216,52,223,60,0,0,216,53,223,60,0,0,216,54,223,60,0,0,216,55,223,60,0,0,216,56,223,60,0,0,216,57,223,60,0,0,216,58,223,60,0,0,216,59,223,60,0,0,216,60,223,60,0,0,216,61,223,60,0,0,216,62,223,60,0,0,216,63,223,60,0,0,216,64,223,60,0,0,216,65,223,60,0,0,216,66,223,60,0,0,216,67,223,60,0,0,216,68,223,60,0,0,216,69,223,60,0,0,216,70,223,60,0,0,216,71,223,60,0,0,216,72,223,60,0,0,216,73,223,60,0,0,216,74,223,60,0,1,216,40,220,60,0,60,0,60,0,1,216,0,220,60,0,1,216,41,220,60,0,60,0,60,0,1,216,1,220,60,0,1,216,42,220,60,0,60,0,60,0,1,216,2,220,60,0,1,216,43,220,60,0,60,0,60,0,1,216,3,220,60,0,1,216,44,220,60,0,60,0,60,0,1,216,4,220,60,0,1,216,45,220,60,0,60,0,60,0,1,216,5,220,60,0,1,216,46,220,60,0,60,0,60,0,1,216,6,220,60,0,1,216,47,220,60,0,60,0,60,0,1,216,7,220,60,0,1,216,48,220,60,0,60,0,60,0,1,216,8,220,60,0,1,216,49,220,60,0,60,0,60,0,1,216,9,220,60,0,1,216,50,220,60,0,60,0,60,0,1,216,10,220,60,0,1,216,51,220,60,0,60,0,60,0,1,216,11,220,60,0,1,216,52,220,60,0,60,0,60,0,1,216,12,220,60,0,1,216,53,220,60,0,60,0,60,0,1,216,13,220,60,0,1,216,54,220,60,0,60,0,60,0,1,216,14,220,60,0,1,216,55,220,60,0,60,0,60,0,1,216,15,220,60,0,1,216,56,220,60,0,60,0,60,0,1,216,16,220,60,0,1,216,57,220,60,0,60,0,60,0,1,216,17,220,60,0,1,216,58,220,60,0,60,0,60,0,1,216,18,220,60,0,1,216,59,220,60,0,60,0,60,0,1,216,19,220,60,0,1,216,60,220,60,0,60,0,60,0,1,216,20,220,60,0,1,216,61,220,60,0,60,0,60,0,1,216,21,220,60,0,1,216,62,220,60,0,60,0,60,0,1,216,22,220,60,0,1,216,63,220,60,0,60,0,60,0,1,216,23,220,60,0,1,216,64,220,60,0,60,0,60,0,1,216,24,220,60,0,1,216,65,220,60,0,60,0,60,0,1,216,25,220,60,0,1,216,66,220,60,0,60,0,60,0,1,216,26,220,60,0,1,216,67,220,60,0,60,0,60,0,1,216,27,220,60,0,1,216,68,220,60,0,60,0,60,0,1,216,28,220,60,0,1,216,69,220,60,0,60,0,60,0,1,216,29,220,60,0,1,216,70,220,60,0,60,0,60,0,1,216,30,220,60,0,1,216,71,220,60,0,60,0,60,0,1,216,31,220,60,0,1,216,72,220,60,0,60,0,60,0,1,216,32,220,60,0,1,216,73,220,60,0,60,0,60,0,1,216,33,220,60,0,1,216,74,220,60,0,60,0,60,0,1,216,34,220,60,0,1,216,75,220,60,0,60,0,60,0,1,216,35,220,60,0,1,216,76,220,60,0,60,0,60,0,1,216,36,220,60,0,1,216,77,220,60,0,60,0,60,0,1,216,37,220,60,0,1,216,78,220,60,0,60,0,60,0,1,216,38,220,60,0,1,216,79,220,60,0,60,0,60,0,1,216,39,220,60,0,1,216,80,220,60,0,1,216,81,220,60,0,1,216,82,220,60,0,1,216,83,220,60,0,1,216,84,220,60,0,1,216,85,220,60,0,1,216,86,220,60,0,1,216,87,220,60,0,1,216,88,220,60,0,1,216,89,220,60,0,1,216,90,220,60,0,1,216,91,220,60,0,1,216,92,220,60,0,1,216,93,220,60,0,1,216,94,220,60,0,1,216,95,220,60,0,1,216,96,220,60,0,1,216,97,220,60,0,1,216,98,220,60,0,1,216,99,220,60,0,1,216,100,220,60,0,1,216,101,220,60,0,1,216,102,220,60,0,1,216,103,220,60,0,1,216,104,220,60,0,1,216,105,220,60,0,1,216,106,220,60,0,1,216,107,220,60,0,1,216,108,220,60,0,1,216,109,220,60,0,1,216,110,220,60,0,1,216,111,220,60,0,1,216,112,220,60,0,1,216,113,220,60,0,1,216,114,220,60,0,1,216,115,220,60,0,1,216,116,220,60,0,1,216,117,220,60,0,1,216,118,220,60,0,1,216,119,220,60,0,1,216,120,220,60,0,1,216,121,220,60,0,1,216,122,220,60,0,1,216,123,220,60,0,1,216,124,220,60,0,1,216,125,220,60,0,1,216,126,220,60,0,1,216,127,220,60,0,47,216,0,220,60,0,47,216,1,220,60,0,47,216,2,220,60,0,47,216,3,220,60,0,47,216,4,220,60,0,47,216,5,220,60,0,47,216,6,220,60,0,47,216,7,220,60,0,47,216,8,220,60,0,47,216,9,220,60,0,47,216,10,220,60,0,47,216,11,220,60,0,47,216,12,220,60,0,47,216,13,220,60,0,47,216,14,220,60,0,47,216,15,220,60,0,47,216,16,220,60,0,47,216,17,220,60,0,47,216,18,220,60,0,47,216,19,220,60,0,47,216,20,220,60,0,47,216,21,220,60,0,47,216,22,220,60,0,47,216,23,220,60,0,47,216,24,220,60,0,47,216,25,220,60,0,47,216,26,220,60,0,47,216,27,220,60,0,47,216,28,220,60,0,47,216,29,220,60,0,47,216,30,220,60,0,47,216,31,220,60,0,47,216,32,220,60,0,47,216,33,220,60,0,47,216,34,220,60,0,47,216,35,220,60,0,47,216,36,220,60,0,47,216,37,220,60,0,47,216,38,220,60,0,47,216,39,220,60,0,47,216,40,220,60,0,47,216,41,220,60,0,47,216,42,220,60,0,47,216,43,220,60,0,47,216,44,220,60,0,47,216,45,220,60,0,47,216,46,220,60,0,47,216,47,220,60,0,47,216,48,220,60,0,47,216,49,220,60,0,47,216,50,220,60,0,47,216,51,220,60,0,47,216,52,220,60,0,47,216,53,220,60,0,47,216,54,220,60,0,47,216,55,220,60,0,47,216,56,220,60,0,47,216,57,220,60,0,47,216,58,220,60,0,47,216,59,220,60,0,47,216,60,220,60,0,47,216,61,220,60,0,47,216,62,220,60,0,47,216,63,220,60,0,47,216,64,220,60,0,47,216,65,220,60,0,47,216,66,220,60,0,47,216,67,220,60,0,47,216,68,220,60,0,47,216,69,220,60,0,47,216,70,220,60,0,47,216,71,220,60,0,47,216,72,220,60,0,47,216,73,220,60,0,47,216,74,220,60,0,47,216,75,220,60,0,47,216,76,220,60,0,47,216,77,220,60,0,47,216,78,220,60,0,47,216,79,220,60,0,47,216,80,220,60,0,47,216,81,220,60,0,47,216,82,220,60,0,47,216,83,220,60,0,47,216,84,220,60,0,47,216,85,220,60,0,47,216,86,220,60,0,47,216,87,220,60,0,47,216,88,220,60,0,47,216,89,220,60,0,47,216,90,220,60,0,47,216,91,220,60,0,47,216,92,220,60,0,47,216,93,220,60,0,47,216,94,220,60,0,47,216,95,220,60,0,47,216,96,220,60,0,47,216,97,220,60,0,47,216,98,220,60,0,47,216,99,220,60,0,47,216,100,220,60,0,47,216,101,220,60,0,47,216,102,220,60,0,47,216,103,220,60,0,47,216,104,220,60,0,47,216,105,220,60,0,47,216,106,220,60,0,47,216,112,220,60,0,47,216,113,220,60,0,47,216,114,220,60,0,47,216,115,220,60,0,47,216,116,220,60,0,47,216,117,220,60,0,47,216,118,220,60,0,47,216,119,220,60,0,47,216,120,220,60,0,47,216,121,220,60,0,47,216,122,220,60,0,47,216,123,220,60,0,47,216,124,220,60,0,47,216,128,220,60,0,47,216,129,220,60,0,47,216,130,220,60,0,47,216,131,220,60,0,47,216,132,220,60,0,47,216,133,220,60,0,47,216,134,220,60,0,47,216,135,220,60,0,47,216,136,220,60,0,47,216,144,220,60,0,47,216,145,220,60,0,47,216,146,220,60,0,47,216,147,220,60,0,47,216,148,220,60,0,47,216,149,220,60,0,47,216,150,220,60,0,47,216,151,220,60,0,47,216,152,220,60,0,47,216,153,220,60,0,1,216,128,220,60,0,1,216,129,220,60,0,1,216,130,220,60,0,1,216,131,220,60,0,1,216,132,220,60,0,1,216,133,220,60,0,1,216,134,220,60,0,1,216,135,220,60,0,1,216,136,220,60,0,1,216,137,220,60,0,1,216,138,220,60,0,1,216,139,220,60,0,1,216,140,220,60,0,1,216,141,220,60,0,1,216,142,220,60,0,1,216,143,220,60,0,1,216,144,220,60,0,1,216,145,220,60,0,1,216,146,220,60,0,1,216,147,220,60,0,1,216,148,220,60,0,1,216,149,220,60,0,1,216,150,220,60,0,1,216,151,220,60,0,1,216,152,220,60,0,1,216,153,220,60,0,1,216,154,220,60,0,1,216,155,220,60,0,1,216,156,220,60,0,1,216,157,220,60,0,1,216,0,221,60,0,1,216,1,221,60,0,1,216,2,221,60,0,1,216,3,221,60,0,1,216,4,221,60,0,1,216,5,221,60,0,1,216,6,221,60,0,1,216,7,221,60,0,1,216,8,221,60,0,1,216,9,221,60,0,1,216,10,221,60,0,1,216,11,221,60,0,1,216,12,221,60,0,1,216,13,221,60,0,1,216,14,221,60,0,1,216,15,221,60,0,1,216,16,221,60,0,1,216,17,221,60,0,1,216,18,221,60,0,1,216,19,221,60,0,1,216,20,221,60,0,1,216,21,221,60,0,1,216,22,221,60,0,1,216,23,221,60,0,1,216,24,221,60,0,1,216,25,221,60,0,1,216,26,221,60,0,1,216,27,221,60,0,1,216,28,221,60,0,1,216,29,221,60,0,1,216,30,221,60,0,1,216,31,221,60,0,1,216,32,221,60,0,1,216,33,221,60,0,1,216,34,221,60,0,1,216,35,221,60,0,1,216,36,221,60,0,1,216,37,221,60,0,1,216,38,221,60,0,1,216,39,221,60,0,1,216,48,221,60,0,1,216,49,221,60,0,1,216,50,221,60,0,1,216,51,221,60,0,1,216,52,221,60,0,1,216,53,221,60,0,1,216,54,221,60,0,1,216,55,221,60,0,1,216,56,221,60,0,1,216,57,221,60,0,1,216,58,221,60,0,1,216,59,221,60,0,1,216,60,221,60,0,1,216,61,221,60,0,1,216,62,221,60,0,1,216,63,221,60,0,1,216,64,221,60,0,1,216,65,221,60,0,1,216,66,221,60,0,1,216,67,221,60,0,1,216,68,221,60,0,1,216,69,221,60,0,1,216,70,221,60,0,1,216,71,221,60,0,1,216,72,221,60,0,1,216,73,221,60,0,1,216,74,221,60,0,1,216,75,221,60,0,1,216,76,221,60,0,1,216,77,221,60,0,1,216,78,221,60,0,1,216,79,221,60,0,1,216,80,221,60,0,1,216,81,221,60,0,1,216,82,221,60,0,1,216,83,221,60,0,1,216,84,221,60,0,1,216,85,221,60,0,1,216,86,221,60,0,1,216,87,221,60,0,1,216,88,221,60,0,1,216,89,221,60,0,1,216,90,221,60,0,1,216,91,221,60,0,1,216,92,221,60,0,1,216,93,221,60,0,1,216,94,221,60,0,1,216,95,221,60,0,1,216,96,221,60,0,1,216,97,221,60,0,1,216,98,221,60,0,1,216,99,221,60,0,1,216,151,221,60,0,60,0,60,0,1,216,112,221,60,0,1,216,152,221,60,0,60,0,60,0,1,216,113,221,60,0,1,216,153,221,60,0,60,0,60,0,1,216,114,221,60,0,1,216,154,221,60,0,60,0,60,0,1,216,115,221,60,0,1,216,155,221,60,0,60,0,60,0,1,216,116,221,60,0,1,216,156,221,60,0,60,0,60,0,1,216,117,221,60,0,1,216,157,221,60,0,60,0,60,0,1,216,118,221,60,0,1,216,158,221,60,0,60,0,60,0,1,216,119,221,60,0,1,216,159,221,60,0,60,0,60,0,1,216,120,221,60,0,1,216,160,221,60,0,60,0,60,0,1,216,121,221,60,0,1,216,161,221,60,0,60,0,60,0,1,216,122,221,60,0,1,216,163,221,60,0,60,0,60,0,1,216,124,221,60,0,1,216,164,221,60,0,60,0,60,0,1,216,125,221,60,0,1,216,165,221,60,0,60,0,60,0,1,216,126,221,60,0,1,216,166,221,60,0,60,0,60,0,1,216,127,221,60,0,1,216,167,221,60,0,60,0,60,0,1,216,128,221,60,0,1,216,168,221,60,0,60,0,60,0,1,216,129,221,60,0,1,216,169,221,60,0,60,0,60,0,1,216,130,221,60,0,1,216,170,221,60,0,60,0,60,0,1,216,131,221,60,0,1,216,171,221,60,0,60,0,60,0,1,216,132,221,60,0,1,216,172,221,60,0,60,0,60,0,1,216,133,221,60,0,1,216,173,221,60,0,60,0,60,0,1,216,134,221,60,0,1,216,174,221,60,0,60,0,60,0,1,216,135,221,60,0,1,216,175,221,60,0,60,0,60,0,1,216,136,221,60,0,1,216,176,221,60,0,60,0,60,0,1,216,137,221,60,0,1,216,177,221,60,0,60,0,60,0,1,216,138,221,60,0,1,216,179,221,60,0,60,0,60,0,1,216,140,221,60,0,1,216,180,221,60,0,60,0,60,0,1,216,141,221,60,0,1,216,181,221,60,0,60,0,60,0,1,216,142,221,60,0,1,216,182,221,60,0,60,0,60,0,1,216,143,221,60,0,1,216,183,221,60,0,60,0,60,0,1,216,144,221,60,0,1,216,184,221,60,0,60,0,60,0,1,216,145,221,60,0,1,216,185,221,60,0,60,0,60,0,1,216,146,221,60,0,1,216,187,221,60,0,60,0,60,0,1,216,148,221,60,0,1,216,188,221,60,0,60,0,60,0,1,216,149,221,60,0,4,216,208,220,60,0,4,216,209,220,60,0,4,216,210,220,60,0,4,216,211,220,60,0,4,216,212,220,60,0,4,216,213,220,60,0,4,216,214,220,60,0,4,216,215,220,60,0,4,216,216,220,60,0,4,216,217,220,60,0,4,216,218,220,60,0,4,216,219,220,60,0,4,216,220,220,60,0,4,216,221,220,60,0,4,216,222,220,60,0,4,216,223,220,60,0,4,216,224,220,60,0,4,216,225,220,60,0,4,216,226,220,60,0,4,216,227,220,60,0,4,216,228,220,60,0,4,216,229,220,60,0,4,216,230,220,60,0,4,216,231,220,60,0,4,216,232,220,60,0,26,216,64,222,60,0,26,216,65,222,60,0,26,216,66,222,60,0,26,216,67,222,60,0,26,216,68,222,60,0,26,216,69,222,60,0,26,216,70,222,60,0,26,216,71,222,60,0,26,216,72,222,60,0,26,216,73,222,60,0,26,216,74,222,60,0,26,216,75,222,60,0,26,216,76,222,60,0,26,216,77,222,60,0,26,216,78,222,60,0,26,216,79,222,60,0,26,216,80,222,60,0,26,216,81,222,60,0,26,216,82,222,60,0,26,216,83,222,60,0,26,216,84,222,60,0,26,216,85,222,60,0,26,216,86,222,60,0,26,216,87,222,60,0,26,216,88,222,60,0,26,216,89,222,60,0,26,216,90,222,60,0,26,216,91,222,60,0,26,216,92,222,60,0,26,216,93,222,60,0,26,216,94,222,60,0,26,216,112,222,60,0,26,216,113,222,60,0,26,216,114,222,60,0,26,216,115,222,60,0,26,216,116,222,60,0,26,216,117,222,60,0,26,216,118,222,60,0,26,216,119,222,60,0,26,216,120,222,60,0,26,216,121,222,60,0,26,216,122,222,60,0,26,216,123,222,60,0,26,216,124,222,60,0,26,216,125,222,60,0,26,216,126,222,60,0,26,216,127,222,60,0,26,216,128,222,60,0,26,216,129,222,60,0,26,216,130,222,60,0,26,216,131,222,60,0,26,216,132,222,60,0,26,216,133,222,60,0,26,216,134,222,60,0,26,216,135,222,60,0,26,216,136,222,60,0,26,216,137,222,60,0,26,216,138,222,60,0,26,216,139,222,60,0,26,216,140,222,60,0,26,216,141,222,60,0,26,216,142,222,60,0,26,216,143,222,60,0,26,216,144,222,60,0,26,216,145,222,60,0,26,216,146,222,60,0,26,216,147,222,60,0,26,216,148,222,60,0,26,216,149,222,60,0,26,216,150,222,60,0,26,216,151,222,60,0,26,216,152,222,60,0,26,216,153,222,60,0,26,216,154,222,60,0,26,216,155,222,60,0,26,216,156,222,60,0,26,216,157,222,60,0,26,216,158,222,60,0,26,216,159,222,60,0,26,216,160,222,60,0,26,216,161,222,60,0,26,216,162,222,60,0,26,216,163,222,60,0,26,216,164,222,60,0,26,216,165,222,60,0,26,216,166,222,60,0,26,216,167,222,60,0,26,216,168,222,60,0,26,216,169,222,60,0,26,216,170,222,60,0,26,216,171,222,60,0,26,216,172,222,60,0,26,216,173,222,60,0,26,216,174,222,60,0,26,216,175,222,60,0,26,216,176,222,60,0,26,216,177,222,60,0,26,216,178,222,60,0,26,216,179,222,60,0,26,216,180,222,60,0,26,216,181,222,60,0,26,216,182,222,60,0,26,216,183,222,60,0,26,216,184,222,60,0,26,216,185,222,60,0,26,216,186,222,60,0,26,216,187,222,60,0,26,216,188,222,60,0,26,216,189,222,60,0,26,216,190,222,60,0,0,216,0,220,60,0,0,216,1,220,60,0,0,216,2,220,60,0,0,216,3,220,60,0,0,216,4,220,60,0,0,216,5,220,60,0,0,216,6,220,60,0,0,216,7,220,60,0,0,216,8,220,60,0,0,216,9,220,60,0,0,216,10,220,60,0,0,216,11,220,60,0,0,216,13,220,60,0,0,216,14,220,60,0,0,216,15,220,60,0,0,216,16,220,60,0,0,216,17,220,60,0,0,216,18,220,60,0,0,216,19,220,60,0,0,216,20,220,60,0,0,216,21,220,60,0,0,216,22,220,60,0,0,216,23,220,60,0,0,216,24,220,60,0,0,216,25,220,60,0,0,216,26,220,60,0,0,216,27,220,60,0,0,216,28,220,60,0,0,216,29,220,60,0,0,216,30,220,60,0,0,216,31,220,60,0,0,216,32,220,60,0,0,216,33,220,60,0,0,216,34,220,60,0,0,216,35,220,60,0,0,216,36,220,60,0,0,216,37,220,60,0,0,216,38,220,60,0,0,216,40,220,60,0,0,216,41,220,60,0,0,216,42,220,60,0,0,216,43,220,60,0,0,216,44,220,60,0,0,216,45,220,60,0,0,216,46,220,60,0,0,216,47,220,60,0,0,216,48,220,60,0,0,216,49,220,60,0,0,216,50,220,60,0,0,216,51,220,60,0,0,216,52,220,60,0,0,216,53,220,60,0,0,216,54,220,60,0,0,216,55,220,60,0,0,216,56,220,60,0,0,216,57,220,60,0,0,216,58,220,60,0,0,216,60,220,60,0,0,216,61,220,60,0,0,216,63,220,60,0,0,216,64,220,60,0,0,216,65,220,60,0,0,216,66,220,60,0,0,216,67,220,60,0,0,216,68,220,60,0,0,216,69,220,60,0,0,216,70,220,60,0,0,216,71,220,60,0,0,216,72,220,60,0,0,216,73,220,60,0,0,216,74,220,60,0,0,216,75,220,60,0,0,216,76,220,60,0,0,216,77,220,60,0,0,216,80,220,60,0,0,216,81,220,60,0,0,216,82,220,60,0,0,216,83,220,60,0,0,216,84,220,60,0,0,216,85,220,60,0,0,216,86,220,60,0,0,216,87,220,60,0,0,216,88,220,60,0,0,216,89,220,60,0,0,216,90,220,60,0,0,216,91,220,60,0,0,216,92,220,60,0,0,216,93,220,60,0,0,216,128,220,60,0,0,216,129,220,60,0,0,216,130,220,60,0,0,216,131,220,60,0,0,216,132,220,60,0,0,216,133,220,60,0,0,216,134,220,60,0,0,216,135,220,60,0,0,216,136,220,60,0,0,216,137,220,60,0,0,216,138,220,60,0,0,216,139,220,60,0,0,216,140,220,60,0,0,216,141,220,60,0,0,216,142,220,60,0,0,216,143,220,60,0,0,216,144,220,60,0,0,216,145,220,60,0,0,216,146,220,60,0,0,216,147,220,60,0,0,216,148,220,60,0,0,216,149,220,60,0,0,216,150,220,60,0,0,216,151,220,60,0,0,216,152,220,60,0,0,216,153,220,60,0,0,216,154,220,60,0,0,216,155,220,60,0,0,216,156,220,60,0,0,216,157,220,60,0,0,216,158,220,60,0,0,216,159,220,60,0,0,216,160,220,60,0,0,216,161,220,60,0,0,216,162,220,60,0,0,216,163,220,60,0,0,216,164,220,60,0,0,216,165,220,60,0,0,216,166,220,60,0,0,216,167,220,60,0,0,216,168,220,60,0,0,216,169,220,60,0,0,216,170,220,60,0,0,216,171,220,60,0,0,216,172,220,60,0,0,216,173,220,60,0,0,216,174,220,60,0,0,216,175,220,60,0,0,216,176,220,60,0,0,216,177,220,60,0,0,216,178,220,60,0,0,216,179,220,60,0,0,216,180,220,60,0,0,216,181,220,60,0,0,216,182,220,60,0,0,216,183,220,60,0,0,216,184,220,60,0,0,216,185,220,60,0,0,216,186,220,60,0,0,216,187,220,60,0,0,216,188,220,60,0,0,216,189,220,60,0,0,216,190,220,60,0,0,216,191,220,60,0,0,216,192,220,60,0,0,216,193,220,60,0,0,216,194,220,60,0,0,216,195,220,60,0,0,216,196,220,60,0,0,216,197,220,60,0,0,216,198,220,60,0,0,216,199,220,60,0,0,216,200,220,60,0,0,216,201,220,60,0,0,216,202,220,60,0,0,216,203,220,60,0,0,216,204,220,60,0,0,216,205,220,60,0,0,216,206,220,60,0,0,216,207,220,60,0,0,216,208,220,60,0,0,216,209,220,60,0,0,216,210,220,60,0,0,216,211,220,60,0,0,216,212,220,60,0,0,216,213,220,60,0,0,216,214,220,60,0,0,216,215,220,60,0,0,216,216,220,60,0,0,216,217,220,60,0,0,216,218,220,60,0,0,216,219,220,60,0,0,216,220,220,60,0,0,216,221,220,60,0,0,216,222,220,60,0,0,216,223,220,60,0,0,216,224,220,60,0,0,216,225,220,60,0,0,216,226,220,60,0,0,216,227,220,60,0,0,216,228,220,60,0,0,216,229,220,60,0,0,216,230,220,60,0,0,216,231,220,60,0,0,216,232,220,60,0,0,216,233,220,60,0,0,216,234,220,60,0,0,216,235,220,60,0,0,216,236,220,60,0,0,216,237,220,60,0,0,216,238,220,60,0,0,216,239,220,60,0,0,216,240,220,60,0,0,216,241,220,60,0,0,216,242,220,60,0,0,216,243,220,60,0,0,216,244,220,60,0,0,216,245,220,60,0,0,216,246,220,60,0,0,216,247,220,60,0,0,216,248,220,60,0,0,216,249,220,60,0,0,216,250,220,60,0,1,216,0,222,60,0,1,216,1,222,60,0,1,216,2,222,60,0,1,216,3,222,60,0,1,216,4,222,60,0,1,216,5,222,60,0,1,216,6,222,60,0,1,216,7,222,60,0,1,216,8,222,60,0,1,216,9,222,60,0,1,216,10,222,60,0,1,216,11,222,60,0,1,216,12,222,60,0,1,216,13,222,60,0,1,216,14,222,60,0,1,216,15,222,60,0,1,216,16,222,60,0,1,216,17,222,60,0,1,216,18,222,60,0,1,216,19,222,60,0,1,216,20,222,60,0,1,216,21,222,60,0,1,216,22,222,60,0,1,216,23,222,60,0,1,216,24,222,60,0,1,216,25,222,60,0,1,216,26,222,60,0,1,216,27,222,60,0,1,216,28,222,60,0,1,216,29,222,60,0,1,216,30,222,60,0,1,216,31,222,60,0,1,216,32,222,60,0,1,216,33,222,60,0,1,216,34,222,60,0,1,216,35,222,60,0,1,216,36,222,60,0,1,216,37,222,60,0,1,216,38,222,60,0,1,216,39,222,60,0,1,216,40,222,60,0,1,216,41,222,60,0,1,216,42,222,60,0,1,216,43,222,60,0,1,216,44,222,60,0,1,216,45,222,60,0,1,216,46,222,60,0,1,216,47,222,60,0,1,216,48,222,60,0,1,216,49,222,60,0,1,216,50,222,60,0,1,216,51,222,60,0,1,216,52,222,60,0,1,216,53,222,60,0,1,216,54,222,60,0,1,216,55,222,60,0,1,216,56,222,60,0,1,216,57,222,60,0,1,216,58,222,60,0,1,216,59,222,60,0,1,216,60,222,60,0,1,216,61,222,60,0,1,216,62,222,60,0,1,216,63,222,60,0,1,216,64,222,60,0,1,216,65,222,60,0,1,216,66,222,60,0,1,216,67,222,60,0,1,216,68,222,60,0,1,216,69,222,60,0,1,216,70,222,60,0,1,216,71,222,60,0,1,216,72,222,60,0,1,216,73,222,60,0,1,216,74,222,60,0,1,216,75,222,60,0,1,216,76,222,60,0,1,216,77,222,60,0,1,216,78,222,60,0,1,216,79,222,60,0,1,216,80,222,60,0,1,216,81,222,60,0,1,216,82,222,60,0,1,216,83,222,60,0,1,216,84,222,60,0,1,216,85,222,60,0,1,216,86,222,60,0,1,216,87,222,60,0,1,216,88,222,60,0,1,216,89,222,60,0,1,216,90,222,60,0,1,216,91,222,60,0,1,216,92,222,60,0,1,216,93,222,60,0,1,216,94,222,60,0,1,216,95,222,60,0,1,216,96,222,60,0,1,216,97,222,60,0,1,216,98,222,60,0,1,216,99,222,60,0,1,216,100,222,60,0,1,216,101,222,60,0,1,216,102,222,60,0,1,216,103,222,60,0,1,216,104,222,60,0,1,216,105,222,60,0,1,216,106,222,60,0,1,216,107,222,60,0,1,216,108,222,60,0,1,216,109,222,60,0,1,216,110,222,60,0,1,216,111,222,60,0,1,216,112,222,60,0,1,216,113,222,60,0,1,216,114,222,60,0,1,216,115,222,60,0,1,216,116,222,60,0,1,216,117,222,60,0,1,216,118,222,60,0,1,216,119,222,60,0,1,216,120,222,60,0,1,216,121,222,60,0,1,216,122,222,60,0,1,216,123,222,60,0,1,216,124,222,60,0,1,216,125,222,60,0,1,216,126,222,60,0,1,216,127,222,60,0,1,216,128,222,60,0,1,216,129,222,60,0,1,216,130,222,60,0,1,216,131,222,60,0,1,216,132,222,60,0,1,216,133,222,60,0,1,216,134,222,60,0,1,216,135,222,60,0,1,216,136,222,60,0,1,216,137,222,60,0,1,216,138,222,60,0,1,216,139,222,60,0,1,216,140,222,60,0,1,216,141,222,60,0,1,216,142,222,60,0,1,216,143,222,60,0,1,216,144,222,60,0,1,216,145,222,60,0,1,216,146,222,60,0,1,216,147,222,60,0,1,216,148,222,60,0,1,216,149,222,60,0,1,216,150,222,60,0,1,216,151,222,60,0,1,216,152,222,60,0,1,216,153,222,60,0,1,216,154,222,60,0,1,216,155,222,60,0,1,216,156,222,60,0,1,216,157,222,60,0,1,216,158,222,60,0,1,216,159,222,60,0,1,216,160,222,60,0,1,216,161,222,60,0,1,216,162,222,60,0,1,216,163,222,60,0,1,216,164,222,60,0,1,216,165,222,60,0,1,216,166,222,60,0,1,216,167,222,60,0,1,216,168,222,60,0,1,216,169,222,60,0,1,216,170,222,60,0,1,216,171,222,60,0,1,216,172,222,60,0,1,216,173,222,60,0,1,216,174,222,60,0,1,216,175,222,60,0,1,216,176,222,60,0,1,216,177,222,60,0,1,216,178,222,60,0,1,216,179,222,60,0,1,216,180,222,60,0,1,216,181,222,60,0,1,216,182,222,60,0,1,216,183,222,60,0,1,216,184,222,60,0,1,216,185,222,60,0,1,216,186,222,60,0,1,216,187,222,60,0,1,216,188,222,60,0,1,216,189,222,60,0,1,216,190,222,60,0,1,216,191,222,60,0,1,216,192,222,60,0,1,216,193,222,60,0,1,216,194,222,60,0,1,216,195,222,60,0,1,216,196,222,60,0,1,216,197,222,60,0,1,216,198,222,60,0,1,216,199,222,60,0,1,216,200,222,60,0,1,216,201,222,60,0,1,216,202,222,60,0,1,216,203,222,60,0,1,216,204,222,60,0,1,216,205,222,60,0,1,216,206,222,60,0,1,216,207,222,60,0,1,216,208,222,60,0,1,216,209,222,60,0,1,216,210,222,60,0,1,216,211,222,60,0,1,216,212,222,60,0,1,216,213,222,60,0,1,216,214,222,60,0,1,216,215,222,60,0,1,216,216,222,60,0,1,216,217,222,60,0,1,216,218,222,60,0,1,216,219,222,60,0,1,216,220,222,60,0,1,216,221,222,60,0,1,216,222,222,60,0,1,216,223,222,60,0,1,216,224,222,60,0,1,216,225,222,60,0,1,216,226,222,60,0,1,216,227,222,60,0,1,216,228,222,60,0,1,216,229,222,60,0,1,216,230,222,60,0,1,216,231,222,60,0,1,216,232,222,60,0,1,216,233,222,60,0,1,216,234,222,60,0,1,216,235,222,60,0,1,216,236,222,60,0,1,216,237,222,60,0,1,216,238,222,60,0,1,216,239,222,60,0,1,216,240,222,60,0,1,216,241,222,60,0,1,216,242,222,60,0,1,216,243,222,60,0,1,216,244,222,60,0,1,216,245,222,60,0,1,216,246,222,60,0,1,216,247,222,60,0,1,216,248,222,60,0,1,216,249,222,60,0,1,216,250,222,60,0,1,216,251,222,60,0,1,216,252,222,60,0,1,216,253,222,60,0,1,216,254,222,60,0,1,216,255,222,60,0,1,216,0,223,60,0,1,216,1,223,60,0,1,216,2,223,60,0,1,216,3,223,60,0,1,216,4,223,60,0,1,216,5,223,60,0,1,216,6,223,60,0,1,216,7,223,60,0,1,216,8,223,60,0,1,216,9,223,60,0,1,216,10,223,60,0,1,216,11,223,60,0,1,216,12,223,60,0,1,216,13,223,60,0,1,216,14,223,60,0,1,216,15,223,60,0,1,216,16,223,60,0,1,216,17,223,60,0,1,216,18,223,60,0,1,216,19,223,60,0,1,216,20,223,60,0,1,216,21,223,60,0,1,216,22,223,60,0,1,216,23,223,60,0,1,216,24,223,60,0,1,216,25,223,60,0,1,216,26,223,60,0,1,216,27,223,60,0,1,216,28,223,60,0,1,216,29,223,60,0,1,216,30,223,60,0,1,216,31,223,60,0,1,216,32,223,60,0,1,216,33,223,60,0,1,216,34,223,60,0,1,216,35,223,60,0,1,216,36,223,60,0,1,216,37,223,60,0,1,216,38,223,60,0,1,216,39,223,60,0,1,216,40,223,60,0,1,216,41,223,60,0,1,216,42,223,60,0,1,216,43,223,60,0,1,216,44,223,60,0,1,216,45,223,60,0,1,216,46,223,60,0,1,216,47,223,60,0,1,216,48,223,60,0,1,216,49,223,60,0,1,216,50,223,60,0,1,216,51,223,60,0,1,216,52,223,60,0,1,216,53,223,60,0,1,216,54,223,60,0,1,216,64,223,60,0,1,216,65,223,60,0,1,216,66,223,60,0,1,216,67,223,60,0,1,216,68,223,60,0,1,216,69,223,60,0,1,216,70,223,60,0,1,216,71,223,60,0,1,216,72,223,60,0,1,216,73,223,60,0,1,216,74,223,60,0,1,216,75,223,60,0,1,216,76,223,60,0,1,216,77,223,60,0,1,216,78,223,60,0,1,216,79,223,60,0,1,216,80,223,60,0,1,216,81,223,60,0,1,216,82,223,60,0,1,216,83,223,60,0,1,216,84,223,60,0,1,216,85,223,60,0,1,216,96,223,60,0,1,216,97,223,60,0,1,216,98,223,60,0,1,216,99,223,60,0,1,216,100,223,60,0,1,216,101,223,60,0,1,216,102,223,60,0,1,216,103,223,60,0,14,32,2,216,0,220,14,32,60,0,14,32,2,216,1,220,14,32,60,0,14,32,2,216,2,220,14,32,60,0,14,32,2,216,3,220,14,32,60,0,14,32,2,216,4,220,14,32,60,0,14,32,2,216,5,220,14,32,60,0,14,32,2,216,8,220,14,32,60,0,14,32,2,216,10,220,14,32,60,0,14,32,2,216,11,220,14,32,60,0,14,32,2,216,12,220,14,32,60,0,14,32,2,216,13,220,14,32,60,0,14,32,2,216,14,220,14,32,60,0,14,32,2,216,15,220,14,32,60,0,14,32,2,216,16,220,14,32,60,0,14,32,2,216,17,220,14,32,60,0,14,32,2,216,18,220,14,32,60,0,14,32,2,216,19,220,14,32,60,0,14,32,2,216,20,220,14,32,60,0,14,32,2,216,21,220,14,32,60,0,14,32,2,216,22,220,14,32,60,0,14,32,2,216,23,220,14,32,60,0,14,32,2,216,24,220,14,32,60,0,14,32,2,216,25,220,14,32,60,0,14,32,2,216,26,220,14,32,60,0,14,32,2,216,27,220,14,32,60,0,14,32,2,216,28,220,14,32,60,0,14,32,2,216,29,220,14,32,60,0,14,32,2,216,30,220,14,32,60,0,14,32,2,216,31,220,14,32,60,0,14,32,2,216,32,220,14,32,60,0,14,32,2,216,33,220,14,32,60,0,14,32,2,216,34,220,14,32,60,0,14,32,2,216,35,220,14,32,60,0,14,32,2,216,36,220,14,32,60,0,14,32,2,216,37,220,14,32,60,0,14,32,2,216,38,220,14,32,60,0,14,32,2,216,39,220,14,32,60,0,14,32,2,216,40,220,14,32,60,0,14,32,2,216,41,220,14,32,60,0,14,32,2,216,42,220,14,32,60,0,14,32,2,216,43,220,14,32,60,0,14,32,2,216,44,220,14,32,60,0,14,32,2,216,45,220,14,32,60,0,14,32,2,216,46,220,14,32,60,0,14,32,2,216,47,220,14,32,60,0,14,32,2,216,48,220,14,32,60,0,14,32,2,216,49,220,14,32,60,0,14,32,2,216,50,220,14,32,60,0,14,32,2,216,51,220,14,32,60,0,14,32,2,216,52,220,14,32,60,0,14,32,2,216,53,220,14,32,60,0,14,32,2,216,55,220,14,32,60,0,14,32,2,216,56,220,14,32,60,0,14,32,2,216,60,220,14,32,60,0,14,32,2,216,63,220,14,32,60,0,11,216,144,223,60,0,11,216,145,223,60,0,11,216,146,223,60,0,11,216,147,223,60,0,11,216,148,223,60,0,11,216,149,223,60,0,11,216,150,223,60,0,11,216,151,223,60,0,11,216,152,223,60,0,11,216,153,223,60,0,11,216,154,223,60,0,11,216,155,223,60,0,11,216,156,223,60,0,11,216,157,223,60,0,11,216,158,223,60,0,11,216,159,223,60,0,11,216,160,223,60,0,11,216,161,223,60,0,11,216,162,223,60,0,11,216,163,223,60,0,11,216,164,223,60,0,11,216,165,223,60,0,11,216,166,223,60,0,11,216,167,223,60,0,11,216,168,223,60,0,11,216,169,223,60,0,11,216,170,223,60,0,11,216,171,223,60,0,11,216,172,223,60,0,11,216,173,223,60,0,11,216,174,223,60,0,11,216,175,223,60,0,11,216,176,223,60,0,11,216,177,223,60,0,11,216,178,223,60,0,11,216,179,223,60,0,11,216,180,223,60,0,11,216,181,223,60,0,11,216,182,223,60,0,11,216,183,223,60,0,11,216,184,223,60,0,11,216,185,223,60,0,11,216,186,223,60,0,11,216,187,223,60,0,11,216,188,223,60,0,11,216,189,223,60,0,11,216,190,223,60,0,11,216,191,223,60,0,11,216,192,223,60,0,11,216,193,223,60,0,11,216,194,223,60,0,11,216,195,223,60,0,11,216,196,223,60,0,11,216,197,223,60,0,11,216,198,223,60,0,11,216,199,223,60,0,11,216,200,223,60,0,11,216,201,223,60,0,11,216,202,223,60,0,11,216,203,223,60,0,11,216,204,223,60,0,11,216,205,223,60,0,11,216,206,223,60,0,11,216,207,223,60,0,11,216,208,223,60,0,11,216,209,223,60,0,11,216,210,223,60,0,11,216,211,223,60,0,11,216,212,223,60,0,11,216,213,223,60,0,11,216,214,223,60,0,11,216,215,223,60,0,11,216,216,223,60,0,11,216,217,223,60,0,11,216,218,223,60,0,11,216,219,223,60,0,11,216,220,223,60,0,11,216,221,223,60,0,11,216,222,223,60,0,11,216,223,223,60,0,11,216,224,223,60,0,11,216,225,223,60,0,11,216,226,223,60,0,11,216,227,223,60,0,11,216,228,223,60,0,11,216,229,223,60,0,11,216,230,223,60,0,11,216,231,223,60,0,11,216,232,223,60,0,11,216,233,223,60,0,11,216,234,223,60,0,11,216,235,223,60,0,11,216,236,223,60,0,11,216,237,223,60,0,11,216,238,223,60,0,11,216,239,223,60,0,11,216,240,223,60,0,14,32,2,216,96,222,14,32,60,0,14,32,2,216,97,222,14,32,60,0,14,32,2,216,98,222,14,32,60,0,14,32,2,216,99,222,14,32,60,0,14,32,2,216,100,222,14,32,60,0,14,32,2,216,101,222,14,32,60,0,14,32,2,216,102,222,14,32,60,0,14,32,2,216,103,222,14,32,60,0,14,32,2,216,104,222,14,32,60,0,14,32,2,216,105,222,14,32,60,0,14,32,2,216,106,222,14,32,60,0,14,32,2,216,107,222,14,32,60,0,14,32,2,216,108,222,14,32,60,0,14,32,2,216,109,222,14,32,60,0,14,32,2,216,110,222,14,32,60,0,14,32,2,216,111,222,14,32,60,0,14,32,2,216,112,222,14,32,60,0,14,32,2,216,113,222,14,32,60,0,14,32,2,216,114,222,14,32,60,0,14,32,2,216,115,222,14,32,60,0,14,32,2,216,116,222,14,32,60,0,14,32,2,216,117,222,14,32,60,0,14,32,2,216,118,222,14,32,60,0,14,32,2,216,119,222,14,32,60,0,14,32,2,216,120,222,14,32,60,0,14,32,2,216,121,222,14,32,60,0,14,32,2,216,122,222,14,32,60,0,14,32,2,216,123,222,14,32,60,0,14,32,2,216,124,222,14,32,60,0,14,32,2,216,128,222,14,32,60,0,14,32,2,216,129,222,14,32,60,0,14,32,2,216,130,222,14,32,60,0,14,32,2,216,131,222,14,32,60,0,14,32,2,216,132,222,14,32,60,0,14,32,2,216,133,222,14,32,60,0,14,32,2,216,134,222,14,32,60,0,14,32,2,216,135,222,14,32,60,0,14,32,2,216,136,222,14,32,60,0,14,32,2,216,137,222,14,32,60,0,14,32,2,216,138,222,14,32,60,0,14,32,2,216,139,222,14,32,60,0,14,32,2,216,140,222,14,32,60,0,14,32,2,216,141,222,14,32,60,0,14,32,2,216,142,222,14,32,60,0,14,32,2,216,143,222,14,32,60,0,14,32,2,216,144,222,14,32,60,0,14,32,2,216,145,222,14,32,60,0,14,32,2,216,146,222,14,32,60,0,14,32,2,216,147,222,14,32,60,0,14,32,2,216,148,222,14,32,60,0,14,32,2,216,149,222,14,32,60,0,14,32,2,216,150,222,14,32,60,0,14,32,2,216,151,222,14,32,60,0,14,32,2,216,152,222,14,32,60,0,14,32,2,216,153,222,14,32,60,0,14,32,2,216,154,222,14,32,60,0,14,32,2,216,155,222,14,32,60,0,14,32,2,216,156,222,14,32,60,0,14,32,2,216,0,223,14,32,60,0,14,32,2,216,1,223,14,32,60,0,14,32,2,216,2,223,14,32,60,0,14,32,2,216,3,223,14,32,60,0,14,32,2,216,4,223,14,32,60,0,14,32,2,216,5,223,14,32,60,0,14,32,2,216,6,223,14,32,60,0,14,32,2,216,7,223,14,32,60,0,14,32,2,216,8,223,14,32,60,0,14,32,2,216,9,223,14,32,60,0,14,32,2,216,10,223,14,32,60,0,14,32,2,216,11,223,14,32,60,0,14,32,2,216,12,223,14,32,60,0,14,32,2,216,13,223,14,32,60,0,14,32,2,216,14,223,14,32,60,0,14,32,2,216,15,223,14,32,60,0,14,32,2,216,16,223,14,32,60,0,14,32,2,216,17,223,14,32,60,0,14,32,2,216,18,223,14,32,60,0,14,32,2,216,19,223,14,32,60,0,14,32,2,216,20,223,14,32,60,0,14,32,2,216,21,223,14,32,60,0,14,32,2,216,22,223,14,32,60,0,14,32,2,216,23,223,14,32,60,0,14,32,2,216,24,223,14,32,60,0,14,32,2,216,25,223,14,32,60,0,14,32,2,216,26,223,14,32,60,0,14,32,2,216,27,223,14,32,60,0,14,32,2,216,28,223,14,32,60,0,14,32,2,216,29,223,14,32,60,0,14,32,2,216,30,223,14,32,60,0,14,32,2,216,31,223,14,32,60,0,14,32,2,216,32,223,14,32,60,0,14,32,2,216,33,223,14,32,60,0,14,32,2,216,34,223,14,32,60,0,14,32,2,216,35,223,14,32,60,0,14,32,2,216,36,223,14,32,60,0,14,32,2,216,37,223,14,32,60,0,14,32,2,216,38,223,14,32,60,0,14,32,2,216,39,223,14,32,60,0,14,32,2,216,40,223,14,32,60,0,14,32,2,216,41,223,14,32,60,0,14,32,2,216,42,223,14,32,60,0,14,32,2,216,43,223,14,32,60,0,14,32,2,216,44,223,14,32,60,0,14,32,2,216,45,223,14,32,60,0,60,0,14,32,2,216,46,223,14,32,60,0,14,32,2,216,47,223,14,32,60,0,14,32,2,216,48,223,14,32,60,0,14,32,2,216,49,223,14,32,60,0,14,32,2,216,50,223,14,32,60,0,14,32,2,216,51,223,14,32,60,0,14,32,2,216,52,223,14,32,60,0,14,32,2,216,53,223,14,32,60,0,14,32,2,216,96,220,14,32,60,0,14,32,2,216,97,220,14,32,60,0,14,32,2,216,98,220,14,32,60,0,14,32,2,216,99,220,14,32,60,0,14,32,2,216,100,220,14,32,60,0,14,32,2,216,101,220,14,32,60,0,14,32,2,216,102,220,14,32,60,0,14,32,2,216,103,220,14,32,60,0,14,32,2,216,104,220,14,32,60,0,14,32,2,216,105,220,14,32,60,0,14,32,2,216,106,220,14,32,60,0,14,32,2,216,107,220,14,32,60,0,14,32,2,216,108,220,14,32,60,0,14,32,2,216,110,220,14,32,60,0,60,0,60,0,14,32,2,216,109,220,14,32,60,0,14,32,2,216,111,220,14,32,60,0,14,32,2,216,112,220,14,32,60,0,14,32,2,216,113,220,14,32,60,0,14,32,2,216,114,220,14,32,60,0,14,32,2,216,115,220,14,32,60,0,14,32,2,216,116,220,14,32,60,0,14,32,2,216,117,220,14,32,60,0,14,32,2,216,118,220,14,32,60,0,14,32,2,216,129,220,14,32,60,0,60,0,60,0,14,32,2,216,128,220,14,32,60,0,14,32,2,216,131,220,14,32,60,0,60,0,60,0,14,32,2,216,130,220,14,32,60,0,14,32,2,216,132,220,14,32,60,0,14,32,2,216,133,220,14,32,60,0,14,32,2,216,135,220,14,32,60,0,60,0,60,0,14,32,2,216,134,220,14,32,60,0,14,32,2,216,136,220,14,32,60,0,14,32,2,216,137,220,14,32,60,0,14,32,2,216,138,220,14,32,60,0,14,32,2,216,139,220,14,32,60,0,14,32,2,216,141,220,14,32,60,0,60,0,60,0,14,32,2,216,140,220,14,32,60,0,14,32,2,216,143,220,14,32,60,0,60,0,60,0,14,32,2,216,142,220,14,32,60,0,14,32,2,216,145,220,14,32,60,0,60,0,60,0,14,32,2,216,144,220,14,32,60,0,14,32,2,216,147,220,14,32,60,0,60,0,60,0,14,32,2,216,146,220,14,32,60,0,14,32,2,216,149,220,14,32,60,0,60,0,60,0,14,32,2,216,148,220,14,32,60,0,14,32,2,216,150,220,14,32,60,0,14,32,2,216,151,220,14,32,60,0,14,32,2,216,152,220,14,32,60,0,14,32,2,216,153,220,14,32,60,0,14,32,2,216,154,220,14,32,60,0,14,32,2,216,155,220,14,32,60,0,14,32,2,216,157,220,14,32,60,0,60,0,60,0,14,32,2,216,156,220,14,32,60,0,14,32,2,216,158,220,14,32,60,0,14,32,2,216,224,220,14,32,60,0,14,32,2,216,225,220,14,32,60,0,14,32,2,216,226,220,14,32,60,0,14,32,2,216,227,220,14,32,60,0,14,32,2,216,228,220,14,32,60,0,14,32,2,216,229,220,14,32,60,0,14,32,2,216,230,220,14,32,60,0,14,32,2,216,231,220,14,32,60,0,14,32,2,216,232,220,14,32,60,0,14,32,2,216,233,220,14,32,60,0,14,32,2,216,234,220,14,32,60,0,14,32,2,216,235,220,14,32,60,0,14,32,2,216,236,220,14,32,60,0,14,32,2,216,237,220,14,32,60,0,14,32,2,216,238,220,14,32,60,0,14,32,2,216,239,220,14,32,60,0,14,32,2,216,240,220,14,32,60,0,14,32,2,216,241,220,14,32,60,0,14,32,2,216,242,220,14,32,60,0,14,32,2,216,244,220,14,32,60,0,14,32,2,216,245,220,14,32,60,0,14,32,2,216,64,220,14,32,60,0,14,32,2,216,65,220,14,32,60,0,14,32,2,216,66,220,14,32,60,0,14,32,2,216,67,220,14,32,60,0,14,32,2,216,68,220,14,32,60,0,14,32,2,216,69,220,14,32,60,0,14,32,2,216,70,220,14,32,60,0,14,32,2,216,71,220,14,32,60,0,14,32,2,216,72,220,14,32,60,0,14,32,2,216,73,220,14,32,60,0,14,32,2,216,74,220,14,32,60,0,14,32,2,216,75,220,14,32,60,0,14,32,2,216,76,220,14,32,60,0,14,32,2,216,77,220,14,32,60,0,14,32,2,216,78,220,14,32,60,0,14,32,2,216,79,220,14,32,60,0,14,32,2,216,80,220,14,32,60,0,14,32,2,216,81,220,14,32,60,0,14,32,2,216,82,220,14,32,60,0,14,32,2,216,83,220,14,32,60,0,14,32,2,216,84,220,14,32,60,0,14,32,2,216,85,220,14,32,60,0,14,32,2,216,64,223,14,32,60,0,14,32,2,216,65,223,14,32,60,0,14,32,2,216,66,223,14,32,60,0,14,32,2,216,67,223,14,32,60,0,14,32,2,216,68,223,14,32,60,0,14,32,2,216,69,223,14,32,60,0,14,32,2,216,70,223,14,32,60,0,14,32,2,216,71,223,14,32,60,0,14,32,2,216,72,223,14,32,60,0,14,32,2,216,73,223,14,32,60,0,14,32,2,216,74,223,14,32,60,0,14,32,2,216,75,223,14,32,60,0,14,32,2,216,76,223,14,32,60,0,14,32,2,216,77,223,14,32,60,0,14,32,2,216,78,223,14,32,60,0,14,32,2,216,79,223,14,32,60,0,14,32,2,216,80,223,14,32,60,0,14,32,2,216,81,223,14,32,60,0,14,32,2,216,82,223,14,32,60,0,14,32,2,216,83,223,14,32,60,0,14,32,2,216,84,223,14,32,60,0,14,32,2,216,85,223,14,32,60,0,14,32,2,216,96,223,14,32,60,0,14,32,2,216,97,223,14,32,60,0,14,32,2,216,98,223,14,32,60,0,14,32,2,216,99,223,14,32,60,0,14,32,2,216,100,223,14,32,60,0,14,32,2,216,101,223,14,32,60,0,14,32,2,216,102,223,14,32,60,0,14,32,2,216,103,223,14,32,60,0,14,32,2,216,104,223,14,32,60,0,14,32,2,216,105,223,14,32,60,0,14,32,2,216,106,223,14,32,60,0,14,32,2,216,107,223,14,32,60,0,14,32,2,216,108,223,14,32,60,0,14,32,2,216,109,223,14,32,60,0,14,32,2,216,110,223,14,32,60,0,14,32,2,216,111,223,14,32,60,0,14,32,2,216,112,223,14,32,60,0,14,32,2,216,113,223,14,32,60,0,14,32,2,216,114,223,14,32,60,0,14,32,2,216,128,223,14,32,60,0,14,32,2,216,129,223,14,32,60,0,14,32,2,216,130,223,14,32,60,0,14,32,2,216,131,223,14,32,60,0,14,32,2,216,132,223,14,32,60,0,14,32,2,216,133,223,14,32,60,0,14,32,2,216,134,223,14,32,60,0,14,32,2,216,135,223,14,32,60,0,14,32,2,216,136,223,14,32,60,0,14,32,2,216,137,223,14,32,60,0,14,32,2,216,138,223,14,32,60,0,14,32,2,216,139,223,14,32,60,0,14,32,2,216,140,223,14,32,60,0,14,32,2,216,141,223,14,32,60,0,14,32,2,216,142,223,14,32,60,0,14,32,2,216,143,223,14,32,60,0,14,32,2,216,144,223,14,32,60,0,14,32,2,216,145,223,14,32,60,0,14,32,3,216,224,223,14,32,60,0,14,32,3,216,225,223,14,32,60,0,14,32,3,216,226,223,14,32,60,0,14,32,3,216,227,223,14,32,60,0,14,32,3,216,228,223,14,32,60,0,14,32,3,216,229,223,14,32,60,0,14,32,3,216,230,223,14,32,60,0,60,0,60,0,14,32,3,216,246,223,14,32,47,0,14,32,3,216,233,223,14,32,60,0,14,32,3,216,231,223,14,32,60,0,14,32,3,216,232,223,14,32,60,0,14,32,3,216,233,223,14,32,60,0,14,32,3,216,234,223,14,32,60,0,14,32,3,216,235,223,14,32,60,0,14,32,3,216,236,223,14,32,60,0,14,32,3,216,237,223,14,32,60,0,14,32,3,216,238,223,14,32,60,0,14,32,3,216,239,223,14,32,60,0,14,32,3,216,240,223,14,32,60,0,14,32,3,216,241,223,14,32,60,0,14,32,3,216,242,223,14,32,60,0,14,32,3,216,243,223,14,32,60,0,14,32,3,216,244,223,14,32,60,0,14,32,3,216,245,223,14,32,60,0,14,32,2,216,192,222,14,32,60,0,14,32,2,216,193,222,14,32,60,0,14,32,2,216,194,222,14,32,60,0,14,32,2,216,195,222,14,32,60,0,14,32,2,216,196,222,14,32,60,0,14,32,2,216,197,222,14,32,60,0,14,32,2,216,198,222,14,32,60,0,14,32,2,216,199,222,14,32,60,0,60,0,14,32,2,216,200,222,14,32,60,0,14,32,2,216,201,222,14,32,60,0,14,32,2,216,202,222,14,32,60,0,14,32,2,216,203,222,14,32,60,0,14,32,2,216,204,222,14,32,60,0,14,32,2,216,205,222,14,32,60,0,14,32,2,216,206,222,14,32,60,0,14,32,2,216,207,222,14,32,60,0,14,32,2,216,208,222,14,32,60,0,14,32,2,216,209,222,14,32,60,0,14,32,2,216,210,222,14,32,60,0,14,32,2,216,211,222,14,32,60,0,14,32,2,216,212,222,14,32,60,0,14,32,2,216,213,222,14,32,60,0,14,32,2,216,214,222,14,32,60,0,14,32,2,216,215,222,14,32,60,0,14,32,2,216,216,222,14,32,60,0,14,32,2,216,217,222,14,32,60,0,14,32,2,216,218,222,14,32,60,0,14,32,2,216,219,222,14,32,60,0,14,32,2,216,220,222,14,32,60,0,14,32,2,216,221,222,14,32,60,0,14,32,2,216,222,222,14,32,60,0,14,32,2,216,223,222,14,32,60,0,14,32,2,216,224,222,14,32,60,0,14,32,2,216,225,222,14,32,60,0,14,32,2,216,226,222,14,32,60,0,14,32,2,216,227,222,14,32,60,0,14,32,2,216,228,222,14,32,60,0,14,32,3,216,0,223,14,32,60,0,60,0,60,0,14,32,3,216,1,223,14,32,60,0,14,32,3,216,2,223,14,32,60,0,60,0,60,0,14,32,3,216,3,223,14,32,60,0,14,32,3,216,4,223,14,32,60,0,14,32,3,216,5,223,14,32,60,0,60,0,60,0,14,32,3,216,6,223,14,32,60,0,14,32,3,216,7,223,14,32,60,0,14,32,3,216,8,223,14,32,60,0,14,32,3,216,9,223,14,32,60,0,14,32,3,216,10,223,14,32,60,0,14,32,3,216,11,223,14,32,60,0,14,32,3,216,12,223,14,32,60,0,14,32,3,216,13,223,14,32,60,0,14,32,3,216,14,223,14,32,60,0,60,0,60,0,14,32,3,216,15,223,14,32,60,0,60,0,14,32,3,216,16,223,14,32,60,0,14,32,3,216,17,223,14,32,60,0,14,32,3,216,18,223,14,32,60,0,60,0,60,0,14,32,3,216,39,223,14,32,47,0,14,32,3,216,24,223,14,32,60,0,60,0,14,32,3,216,19,223,14,32,60,0,14,32,3,216,20,223,14,32,60,0,14,32,3,216,21,223,14,32,60,0,60,0,60,0,14,32,3,216,22,223,14,32,60,0,60,0,14,32,3,216,23,223,14,32,60,0,14,32,3,216,24,223,14,32,60,0,14,32,3,216,25,223,14,32,60,0,14,32,3,216,26,223,14,32,60,0,60,0,60,0,14,32,3,216,27,223,14,32,60,0,60,0,14,32,3,216,28,223,14,32,60,0,14,32,3,216,48,223,14,32,60,0,14,32,3,216,49,223,14,32,60,0,14,32,3,216,50,223,14,32,60,0,14,32,3,216,51,223,14,32,60,0,14,32,3,216,52,223,14,32,60,0,14,32,3,216,53,223,14,32,60,0,14,32,3,216,54,223,14,32,60,0,14,32,3,216,55,223,14,32,60,0,14,32,3,216,56,223,14,32,60,0,14,32,3,216,57,223,14,32,60,0,14,32,3,216,58,223,14,32,60,0,14,32,3,216,59,223,14,32,60,0,14,32,3,216,60,223,14,32,60,0,14,32,3,216,61,223,14,32,60,0,14,32,3,216,62,223,14,32,60,0,14,32,3,216,63,223,14,32,60,0,14,32,3,216,64,223,14,32,60,0,14,32,3,216,65,223,14,32,60,0,60,0,14,32,3,216,69,223,14,32,60,0,14,32,3,216,66,223,14,32,60,0,14,32,3,216,67,223,14,32,60,0,14,32,3,216,68,223,14,32,60,0,14,32,3,216,112,223,14,32,60,0,14,32,3,216,113,223,14,32,60,0,14,32,3,216,114,223,14,32,60,0,14,32,3,216,115,223,14,32,60,0,14,32,3,216,116,223,14,32,60,0,14,32,3,216,117,223,14,32,60,0,14,32,3,216,118,223,14,32,60,0,14,32,3,216,119,223,14,32,60,0,14,32,3,216,120,223,14,32,60,0,14,32,3,216,121,223,14,32,60,0,14,32,3,216,122,223,14,32,60,0,14,32,3,216,123,223,14,32,60,0,14,32,3,216,124,223,14,32,60,0,14,32,3,216,125,223,14,32,60,0,14,32,3,216,126,223,14,32,60,0,14,32,3,216,127,223,14,32,60,0,14,32,3,216,128,223,14,32,60,0,14,32,3,216,129,223,14,32,60,0,14,32,3,216,128,222,14,32,60,0,14,32,3,216,129,222,14,32,60,0,14,32,3,216,130,222,14,32,60,0,14,32,3,216,131,222,14,32,60,0,14,32,3,216,132,222,14,32,60,0,14,32,3,216,133,222,14,32,60,0,14,32,3,216,134,222,14,32,60,0,14,32,3,216,135,222,14,32,60,0,14,32,3,216,136,222,14,32,60,0,14,32,3,216,137,222,14,32,60,0,14,32,3,216,138,222,14,32,60,0,14,32,3,216,139,222,14,32,60,0,14,32,3,216,140,222,14,32,60,0,14,32,3,216,141,222,14,32,60,0,14,32,3,216,142,222,14,32,60,0,14,32,3,216,143,222,14,32,60,0,14,32,3,216,144,222,14,32,60,0,14,32,3,216,145,222,14,32,60,0,14,32,3,216,146,222,14,32,60,0,14,32,3,216,147,222,14,32,60,0,14,32,3,216,148,222,14,32,60,0,14,32,3,216,149,222,14,32,60,0,14,32,3,216,150,222,14,32,60,0,14,32,3,216,151,222,14,32,60,0,14,32,3,216,152,222,14,32,60,0,14,32,3,216,153,222,14,32,60,0,14,32,3,216,154,222,14,32,60,0,14,32,3,216,155,222,14,32,60,0,14,32,3,216,156,222,14,32,60,0,14,32,3,216,157,222,14,32,60,0,14,32,3,216,158,222,14,32,60,0,14,32,3,216,159,222,14,32,60,0,14,32,3,216,160,222,14,32,60,0,14,32,3,216,176,222,14,32,60,0,14,32,3,216,161,222,14,32,60,0,14,32,3,216,162,222,14,32,60,0,14,32,3,216,163,222,14,32,60,0,14,32,3,216,164,222,14,32,60,0,14,32,3,216,165,222,14,32,60,0,14,32,3,216,166,222,14,32,60,0,14,32,3,216,167,222,14,32,60,0,14,32,3,216,168,222,14,32,60,0,14,32,3,216,177,222,14,32,60,0,14,32,3,216,169,222,14,32,60,0,14,32,3,216,176,223,14,32,60,0,14,32,3,216,177,223,14,32,60,0,14,32,3,216,178,223,14,32,60,0,14,32,3,216,179,223,14,32,60,0,14,32,3,216,180,223,14,32,60,0,14,32,3,216,181,223,14,32,60,0,14,32,3,216,182,223,14,32,60,0,14,32,3,216,183,223,14,32,60,0,14,32,3,216,184,223,14,32,60,0,14,32,3,216,185,223,14,32,60,0,14,32,3,216,186,223,14,32,60,0,14,32,3,216,187,223,14,32,60,0,14,32,3,216,188,223,14,32,60,0,14,32,3,216,189,223,14,32,60,0,14,32,3,216,190,223,14,32,60,0,14,32,3,216,191,223,14,32,60,0,14,32,3,216,192,223,14,32,60,0,14,32,3,216,193,223,14,32,60,0,14,32,3,216,194,223,14,32,60,0,14,32,3,216,195,223,14,32,60,0,14,32,3,216,196,223,14,32,60,0,0,216,128,223,60,0,0,216,129,223,60,0,0,216,130,223,60,0,0,216,131,223,60,0,0,216,132,223,60,0,0,216,133,223,60,0,0,216,134,223,60,0,0,216,135,223,60,0,0,216,136,223,60,0,0,216,137,223,60,0,0,216,138,223,60,0,0,216,139,223,60,0,0,216,140,223,60,0,0,216,141,223,60,0,0,216,142,223,60,0,0,216,143,223,60,0,0,216,144,223,60,0,0,216,145,223,60,0,0,216,146,223,60,0,0,216,147,223,60,0,0,216,148,223,60,0,0,216,149,223,60,0,0,216,150,223,60,0,0,216,151,223,60,0,0,216,152,223,60,0,0,216,153,223,60,0,0,216,154,223,60,0,0,216,155,223,60,0,0,216,156,223,60,0,0,216,157,223,60,0,0,216,160,223,60,0,0,216,161,223,60,0,0,216,162,223,60,0,0,216,163,223,60,0,0,216,164,223,60,0,0,216,165,223,60,0,0,216,166,223,60,0,0,216,167,223,60,0,0,216,168,223,60,0,0,216,169,223,60,0,0,216,170,223,60,0,0,216,171,223,60,0,0,216,172,223,60,0,0,216,173,223,60,0,0,216,174,223,60,0,0,216,175,223,60,0,0,216,176,223,60,0,0,216,177,223,60,0,0,216,178,223,60,0,0,216,179,223,60,0,0,216,180,223,60,0,0,216,181,223,60,0,0,216,182,223,60,0,0,216,183,223,60,0,0,216,184,223,60,0,0,216,185,223,60,0,0,216,186,223,60,0,0,216,187,223,60,0,0,216,188,223,60,0,0,216,189,223,60,0,0,216,190,223,60,0,0,216,191,223,60,0,0,216,192,223,60,0,0,216,193,223,60,0,0,216,194,223,60,0,0,216,195,223,60,0,0,216,200,223,60,0,0,216,201,223,60,0,0,216,202,223,60,0,0,216,203,223,60,0,0,216,204,223,60,0,0,216,205,223,60,0,0,216,206,223,60,0,0,216,207,223,60,0,8,216,0,220,60,0,8,216,1,220,60,0,8,216,2,220,60,0,8,216,3,220,60,0,8,216,4,220,60,0,8,216,5,220,60,0,8,216,6,220,60,0,8,216,7,220,60,0,8,216,8,220,60,0,8,216,9,220,60,0,8,216,10,220,60,0,8,216,11,220,60,0,8,216,12,220,60,0,8,216,13,220,60,0,8,216,14,220,60,0,8,216,15,220,60,0,8,216,16,220,60,0,8,216,17,220,60,0,8,216,18,220,60,0,8,216,19,220,60,0,8,216,20,220,60,0,8,216,21,220,60,0,8,216,22,220,60,0,8,216,23,220,60,0,8,216,24,220,60,0,8,216,25,220,60,0,8,216,26,220,60,0,8,216,27,220,60,0,8,216,28,220,60,0,8,216,29,220,60,0,8,216,30,220,60,0,8,216,31,220,60,0,8,216,32,220,60,0,8,216,33,220,60,0,8,216,34,220,60,0,8,216,35,220,60,0,8,216,36,220,60,0,8,216,37,220,60,0,8,216,38,220,60,0,8,216,39,220,60,0,8,216,40,220,60,0,8,216,41,220,60,0,8,216,42,220,60,0,8,216,43,220,60,0,8,216,44,220,60,0,8,216,45,220,60,0,8,216,46,220,60,0,8,216,47,220,60,0,8,216,48,220,60,0,8,216,49,220,60,0,8,216,50,220,60,0,8,216,51,220,60,0,8,216,52,220,60,0,8,216,53,220,60,0,8,216,54,220,60,0,8,216,55,220,60,0,8,216,56,220,60,0,8,216,57,220,60,0,8,216,58,220,60,0,8,216,59,220,60,0,8,216,60,220,60,0,8,216,61,220,60,0,8,216,62,220,60,0,8,216,63,220,60,0,8,216,64,220,60,0,8,216,65,220,60,0,8,216,66,220,60,0,8,216,67,220,60,0,8,216,68,220,60,0,8,216,69,220,60,0,8,216,70,220,60,0,8,216,71,220,60,0,8,216,72,220,60,0,8,216,73,220,60,0,8,216,74,220,60,0,8,216,75,220,60,0,8,216,76,220,60,0,8,216,77,220,60,0,8,216,78,220,60,0,8,216,79,220,60,0,8,216,80,220,60,0,8,216,81,220,60,0,8,216,82,220,60,0,8,216,83,220,60,0,8,216,84,220,60,0,8,216,85,220,60,0,8,216,86,220,60,0,8,216,87,220,60,0,8,216,88,220,60,0,8,216,89,220,60,0,8,216,90,220,60,0,8,216,91,220,60,0,8,216,92,220,60,0,8,216,93,220,60,0,8,216,94,220,60,0,8,216,95,220,60,0,8,216,96,220,60,0,8,216,97,220,60,0,8,216,98,220,60,0,8,216,99,220,60,0,8,216,100,220,60,0,8,216,101,220,60,0,8,216,102,220,60,0,8,216,103,220,60,0,8,216,104,220,60,0,8,216,105,220,60,0,8,216,106,220,60,0,8,216,107,220,60,0,8,216,108,220,60,0,8,216,109,220,60,0,8,216,110,220,60,0,8,216,111,220,60,0,8,216,112,220,60,0,8,216,113,220,60,0,8,216,114,220,60,0,8,216,115,220,60,0,8,216,116,220,60,0,8,216,117,220,60,0,8,216,118,220,60,0,8,216,119,220,60,0,8,216,120,220,60,0,8,216,121,220,60,0,8,216,122,220,60,0,8,216,123,220,60,0,8,216,124,220,60,0,8,216,125,220,60,0,8,216,126,220,60,0,8,216,127,220,60,0,8,216,128,220,60,0,8,216,129,220,60,0,8,216,130,220,60,0,8,216,131,220,60,0,8,216,132,220,60,0,8,216,133,220,60,0,8,216,134,220,60,0,8,216,135,220,60,0,8,216,136,220,60,0,8,216,137,220,60,0,8,216,138,220,60,0,8,216,139,220,60,0,8,216,140,220,60,0,8,216,141,220,60,0,8,216,142,220,60,0,8,216,143,220,60,0,8,216,144,220,60,0,8,216,145,220,60,0,8,216,146,220,60,0,8,216,147,220,60,0,8,216,148,220,60,0,8,216,149,220,60,0,8,216,150,220,60,0,8,216,151,220,60,0,8,216,152,220,60,0,8,216,153,220,60,0,8,216,154,220,60,0,8,216,155,220,60,0,8,216,156,220,60,0,8,216,157,220,60,0,8,216,158,220,60,0,8,216,159,220,60,0,8,216,160,220,60,0,8,216,161,220,60,0,8,216,162,220,60,0,8,216,163,220,60,0,8,216,164,220,60,0,8,216,165,220,60,0,8,216,166,220,60,0,8,216,167,220,60,0,8,216,168,220,60,0,8,216,169,220,60,0,8,216,170,220,60,0,8,216,171,220,60,0,8,216,172,220,60,0,8,216,173,220,60,0,8,216,174,220,60,0,8,216,175,220,60,0,8,216,176,220,60,0,8,216,177,220,60,0,8,216,178,220,60,0,8,216,179,220,60,0,8,216,180,220,60,0,8,216,181,220,60,0,8,216,182,220,60,0,8,216,183,220,60,0,8,216,184,220,60,0,8,216,185,220,60,0,8,216,186,220,60,0,8,216,187,220,60,0,8,216,188,220,60,0,8,216,189,220,60,0,8,216,190,220,60,0,8,216,191,220,60,0,8,216,192,220,60,0,8,216,193,220,60,0,8,216,194,220,60,0,8,216,195,220,60,0,8,216,196,220,60,0,8,216,197,220,60,0,8,216,198,220,60,0,8,216,199,220,60,0,8,216,200,220,60,0,8,216,201,220,60,0,8,216,202,220,60,0,8,216,203,220,60,0,8,216,204,220,60,0,8,216,205,220,60,0,8,216,206,220,60,0,8,216,207,220,60,0,8,216,208,220,60,0,8,216,209,220,60,0,8,216,210,220,60,0,8,216,211,220,60,0,8,216,212,220,60,0,8,216,213,220,60,0,8,216,214,220,60,0,8,216,215,220,60,0,8,216,216,220,60,0,8,216,217,220,60,0,8,216,218,220,60,0,8,216,219,220,60,0,8,216,220,220,60,0,8,216,221,220,60,0,8,216,222,220,60,0,8,216,223,220,60,0,8,216,224,220,60,0,8,216,225,220,60,0,8,216,226,220,60,0,8,216,227,220,60,0,8,216,228,220,60,0,8,216,229,220,60,0,8,216,230,220,60,0,8,216,231,220,60,0,8,216,232,220,60,0,8,216,233,220,60,0,8,216,234,220,60,0,8,216,235,220,60,0,8,216,236,220,60,0,8,216,237,220,60,0,8,216,238,220,60,0,8,216,239,220,60,0,8,216,240,220,60,0,8,216,241,220,60,0,8,216,242,220,60,0,8,216,243,220,60,0,8,216,244,220,60,0,8,216,245,220,60,0,8,216,246,220,60,0,8,216,247,220,60,0,8,216,248,220,60,0,8,216,249,220,60,0,8,216,250,220,60,0,8,216,251,220,60,0,8,216,252,220,60,0,8,216,253,220,60,0,8,216,254,220,60,0,8,216,255,220,60,0,8,216,0,221,60,0,8,216,1,221,60,0,8,216,2,221,60,0,8,216,3,221,60,0,8,216,4,221,60,0,8,216,5,221,60,0,8,216,6,221,60,0,8,216,7,221,60,0,8,216,8,221,60,0,8,216,9,221,60,0,8,216,10,221,60,0,8,216,11,221,60,0,8,216,12,221,60,0,8,216,13,221,60,0,8,216,14,221,60,0,8,216,15,221,60,0,8,216,16,221,60,0,8,216,17,221,60,0,8,216,18,221,60,0,8,216,19,221,60,0,8,216,20,221,60,0,8,216,21,221,60,0,8,216,22,221,60,0,8,216,23,221,60,0,8,216,24,221,60,0,8,216,25,221,60,0,8,216,26,221,60,0,8,216,27,221,60,0,8,216,28,221,60,0,8,216,29,221,60,0,8,216,30,221,60,0,8,216,31,221,60,0,8,216,32,221,60,0,8,216,33,221,60,0,8,216,34,221,60,0,8,216,35,221,60,0,8,216,36,221,60,0,8,216,37,221,60,0,8,216,38,221,60,0,8,216,39,221,60,0,8,216,40,221,60,0,8,216,41,221,60,0,8,216,42,221,60,0,8,216,43,221,60,0,8,216,44,221,60,0,8,216,45,221,60,0,8,216,46,221,60,0,8,216,47,221,60,0,8,216,48,221,60,0,8,216,49,221,60,0,8,216,50,221,60,0,8,216,51,221,60,0,8,216,52,221,60,0,8,216,53,221,60,0,8,216,54,221,60,0,8,216,55,221,60,0,8,216,56,221,60,0,8,216,57,221,60,0,8,216,58,221,60,0,8,216,59,221,60,0,8,216,60,221,60,0,8,216,61,221,60,0,8,216,62,221,60,0,8,216,63,221,60,0,8,216,64,221,60,0,8,216,65,221,60,0,8,216,66,221,60,0,8,216,67,221,60,0,8,216,68,221,60,0,8,216,69,221,60,0,8,216,70,221,60,0,8,216,71,221,60,0,8,216,72,221,60,0,8,216,73,221,60,0,8,216,74,221,60,0,8,216,75,221,60,0,8,216,76,221,60,0,8,216,77,221,60,0,8,216,78,221,60,0,8,216,79,221,60,0,8,216,80,221,60,0,8,216,81,221,60,0,8,216,82,221,60,0,8,216,83,221,60,0,8,216,84,221,60,0,8,216,85,221,60,0,8,216,86,221,60,0,8,216,87,221,60,0,8,216,88,221,60,0,8,216,89,221,60,0,8,216,90,221,60,0,8,216,91,221,60,0,8,216,92,221,60,0,8,216,93,221,60,0,8,216,94,221,60,0,8,216,95,221,60,0,8,216,96,221,60,0,8,216,97,221,60,0,8,216,98,221,60,0,8,216,99,221,60,0,8,216,100,221,60,0,8,216,101,221,60,0,8,216,102,221,60,0,8,216,103,221,60,0,8,216,104,221,60,0,8,216,105,221,60,0,8,216,106,221,60,0,8,216,107,221,60,0,8,216,108,221,60,0,8,216,109,221,60,0,8,216,110,221,60,0,8,216,111,221,60,0,8,216,112,221,60,0,8,216,113,221,60,0,8,216,114,221,60,0,8,216,115,221,60,0,8,216,116,221,60,0,8,216,117,221,60,0,8,216,118,221,60,0,8,216,119,221,60,0,8,216,120,221,60,0,8,216,121,221,60,0,8,216,122,221,60,0,8,216,123,221,60,0,8,216,124,221,60,0,8,216,125,221,60,0,8,216,126,221,60,0,8,216,127,221,60,0,8,216,128,221,60,0,8,216,129,221,60,0,8,216,130,221,60,0,8,216,131,221,60,0,8,216,132,221,60,0,8,216,133,221,60,0,8,216,134,221,60,0,8,216,135,221,60,0,8,216,136,221,60,0,8,216,137,221,60,0,8,216,138,221,60,0,8,216,139,221,60,0,8,216,140,221,60,0,8,216,141,221,60,0,8,216,142,221,60,0,8,216,143,221,60,0,8,216,144,221,60,0,8,216,145,221,60,0,8,216,146,221,60,0,8,216,147,221,60,0,8,216,148,221,60,0,8,216,149,221,60,0,8,216,150,221,60,0,8,216,151,221,60,0,8,216,152,221,60,0,8,216,153,221,60,0,8,216,154,221,60,0,8,216,155,221,60,0,8,216,156,221,60,0,8,216,157,221,60,0,8,216,158,221,60,0,8,216,159,221,60,0,8,216,160,221,60,0,8,216,161,221,60,0,8,216,162,221,60,0,8,216,163,221,60,0,8,216,164,221,60,0,8,216,165,221,60,0,8,216,166,221,60,0,8,216,167,221,60,0,8,216,168,221,60,0,8,216,169,221,60,0,8,216,170,221,60,0,8,216,171,221,60,0,8,216,172,221,60,0,8,216,173,221,60,0,8,216,174,221,60,0,8,216,175,221,60,0,8,216,176,221,60,0,8,216,177,221,60,0,8,216,178,221,60,0,8,216,179,221,60,0,8,216,180,221,60,0,8,216,181,221,60,0,8,216,182,221,60,0,8,216,183,221,60,0,8,216,184,221,60,0,8,216,185,221,60,0,8,216,186,221,60,0,8,216,187,221,60,0,8,216,188,221,60,0,8,216,189,221,60,0,8,216,190,221,60,0,8,216,191,221,60,0,8,216,192,221,60,0,8,216,193,221,60,0,8,216,194,221,60,0,8,216,195,221,60,0,8,216,196,221,60,0,8,216,197,221,60,0,8,216,198,221,60,0,8,216,199,221,60,0,8,216,200,221,60,0,8,216,201,221,60,0,8,216,202,221,60,0,8,216,203,221,60,0,8,216,204,221,60,0,8,216,205,221,60,0,8,216,206,221,60,0,8,216,207,221,60,0,8,216,208,221,60,0,8,216,209,221,60,0,8,216,210,221,60,0,8,216,211,221,60,0,8,216,212,221,60,0,8,216,213,221,60,0,8,216,214,221,60,0,8,216,215,221,60,0,8,216,216,221,60,0,8,216,217,221,60,0,8,216,218,221,60,0,8,216,219,221,60,0,8,216,220,221,60,0,8,216,221,221,60,0,8,216,222,221,60,0,8,216,223,221,60,0,8,216,224,221,60,0,8,216,225,221,60,0,8,216,226,221,60,0,8,216,227,221,60,0,8,216,228,221,60,0,8,216,229,221,60,0,8,216,230,221,60,0,8,216,231,221,60,0,8,216,232,221,60,0,8,216,233,221,60,0,8,216,234,221,60,0,8,216,235,221,60,0,8,216,236,221,60,0,8,216,237,221,60,0,8,216,238,221,60,0,8,216,239,221,60,0,8,216,240,221,60,0,8,216,241,221,60,0,8,216,242,221,60,0,8,216,243,221,60,0,8,216,244,221,60,0,8,216,245,221,60,0,8,216,246,221,60,0,8,216,247,221,60,0,8,216,248,221,60,0,8,216,249,221,60,0,8,216,250,221,60,0,8,216,251,221,60,0,8,216,252,221,60,0,8,216,253,221,60,0,8,216,254,221,60,0,8,216,255,221,60,0,8,216,0,222,60,0,8,216,1,222,60,0,8,216,2,222,60,0,8,216,3,222,60,0,8,216,4,222,60,0,8,216,5,222,60,0,8,216,6,222,60,0,8,216,7,222,60,0,8,216,8,222,60,0,8,216,9,222,60,0,8,216,10,222,60,0,8,216,11,222,60,0,8,216,12,222,60,0,8,216,13,222,60,0,8,216,14,222,60,0,8,216,15,222,60,0,8,216,16,222,60,0,8,216,17,222,60,0,8,216,18,222,60,0,8,216,19,222,60,0,8,216,20,222,60,0,8,216,21,222,60,0,8,216,22,222,60,0,8,216,23,222,60,0,8,216,24,222,60,0,8,216,25,222,60,0,8,216,26,222,60,0,8,216,27,222,60,0,8,216,28,222,60,0,8,216,29,222,60,0,8,216,30,222,60,0,8,216,31,222,60,0,8,216,32,222,60,0,8,216,33,222,60,0,8,216,34,222,60,0,8,216,35,222,60,0,8,216,36,222,60,0,8,216,37,222,60,0,8,216,38,222,60,0,8,216,39,222,60,0,8,216,40,222,60,0,8,216,41,222,60,0,8,216,42,222,60,0,8,216,43,222,60,0,8,216,44,222,60,0,8,216,45,222,60,0,8,216,46,222,60,0,8,216,47,222,60,0,8,216,48,222,60,0,8,216,49,222,60,0,8,216,50,222,60,0,8,216,51,222,60,0,8,216,52,222,60,0,8,216,53,222,60,0,8,216,54,222,60,0,8,216,55,222,60,0,8,216,56,222,60,0,8,216,57,222,60,0,8,216,58,222,60,0,8,216,59,222,60,0,8,216,60,222,60,0,8,216,61,222,60,0,8,216,62,222,60,0,8,216,63,222,60,0,8,216,64,222,60,0,8,216,65,222,60,0,8,216,66,222,60,0,8,216,67,222,60,0,8,216,68,222,60,0,8,216,69,222,60,0,8,216,70,222,60,0,8,216,71,222,60,0,8,216,72,222,60,0,8,216,73,222,60,0,8,216,74,222,60,0,8,216,75,222,60,0,8,216,76,222,60,0,8,216,77,222,60,0,8,216,78,222,60,0,8,216,79,222,60,0,8,216,80,222,60,0,8,216,81,222,60,0,8,216,82,222,60,0,8,216,83,222,60,0,8,216,84,222,60,0,8,216,85,222,60,0,8,216,86,222,60,0,8,216,87,222,60,0,8,216,88,222,60,0,8,216,89,222,60,0,8,216,90,222,60,0,8,216,91,222,60,0,8,216,92,222,60,0,8,216,93,222,60,0,8,216,94,222,60,0,8,216,95,222,60,0,8,216,96,222,60,0,8,216,97,222,60,0,8,216,98,222,60,0,8,216,212,222,60,0,8,216,213,222,60,0,8,216,99,222,60,0,8,216,100,222,60,0,8,216,101,222,60,0,8,216,102,222,60,0,8,216,103,222,60,0,8,216,104,222,60,0,8,216,105,222,60,0,8,216,106,222,60,0,8,216,107,222,60,0,8,216,108,222,60,0,8,216,109,222,60,0,8,216,110,222,60,0,8,216,111,222,60,0,8,216,112,222,60,0,8,216,113,222,60,0,8,216,114,222,60,0,8,216,115,222,60,0,8,216,116,222,60,0,8,216,117,222,60,0,8,216,118,222,60,0,8,216,119,222,60,0,8,216,120,222,60,0,8,216,121,222,60,0,8,216,122,222,60,0,8,216,123,222,60,0,8,216,124,222,60,0,8,216,125,222,60,0,8,216,126,222,60,0,8,216,127,222,60,0,8,216,128,222,60,0,8,216,129,222,60,0,8,216,130,222,60,0,8,216,131,222,60,0,8,216,132,222,60,0,8,216,133,222,60,0,8,216,134,222,60,0,8,216,135,222,60,0,8,216,136,222,60,0,8,216,137,222,60,0,8,216,138,222,60,0,8,216,139,222,60,0,8,216,140,222,60,0,8,216,141,222,60,0,8,216,142,222,60,0,8,216,143,222,60,0,8,216,144,222,60,0,8,216,145,222,60,0,8,216,146,222,60,0,8,216,147,222,60,0,8,216,148,222,60,0,8,216,149,222,60,0,8,216,150,222,60,0,8,216,151,222,60,0,8,216,152,222,60,0,8,216,153,222,60,0,8,216,154,222,60,0,8,216,155,222,60,0,8,216,156,222,60,0,8,216,157,222,60,0,8,216,158,222,60,0,8,216,159,222,60,0,8,216,160,222,60,0,8,216,161,222,60,0,8,216,162,222,60,0,8,216,163,222,60,0,8,216,164,222,60,0,8,216,165,222,60,0,8,216,166,222,60,0,8,216,167,222,60,0,8,216,168,222,60,0,8,216,169,222,60,0,8,216,170,222,60,0,8,216,171,222,60,0,8,216,172,222,60,0,8,216,173,222,60,0,8,216,174,222,60,0,8,216,175,222,60,0,8,216,176,222,60,0,8,216,177,222,60,0,8,216,178,222,60,0,8,216,179,222,60,0,8,216,180,222,60,0,8,216,181,222,60,0,8,216,182,222,60,0,8,216,183,222,60,0,8,216,184,222,60,0,8,216,185,222,60,0,8,216,186,222,60,0,8,216,187,222,60,0,8,216,188,222,60,0,8,216,189,222,60,0,8,216,190,222,60,0,8,216,191,222,60,0,8,216,192,222,60,0,8,216,193,222,60,0,8,216,194,222,60,0,8,216,195,222,60,0,8,216,196,222,60,0,8,216,197,222,60,0,8,216,198,222,60,0,8,216,199,222,60,0,8,216,200,222,60,0,8,216,201,222,60,0,8,216,202,222,60,0,8,216,203,222,60,0,8,216,204,222,60,0,8,216,205,222,60,0,8,216,206,222,60,0,8,216,207,222,60,0,8,216,208,222,60,0,8,216,209,222,60,0,8,216,210,222,60,0,8,216,211,222,60,0,8,216,214,222,60,0,8,216,215,222,60,0,8,216,216,222,60,0,8,216,217,222,60,0,8,216,218,222,60,0,8,216,219,222,60,0,8,216,220,222,60,0,8,216,221,222,60,0,8,216,222,222,60,0,8,216,223,222,60,0,8,216,224,222,60,0,8,216,225,222,60,0,8,216,226,222,60,0,8,216,227,222,60,0,8,216,228,222,60,0,8,216,229,222,60,0,8,216,230,222,60,0,8,216,231,222,60,0,8,216,232,222,60,0,8,216,233,222,60,0,8,216,234,222,60,0,8,216,235,222,60,0,8,216,236,222,60,0,8,216,237,222,60,0,8,216,238,222,60,0,8,216,239,222,60,0,8,216,240,222,60,0,8,216,241,222,60,0,8,216,242,222,60,0,8,216,243,222,60,0,8,216,244,222,60,0,8,216,245,222,60,0,8,216,246,222,60,0,8,216,247,222,60,0,8,216,248,222,60,0,8,216,249,222,60,0,8,216,250,222,60,0,8,216,251,222,60,0,8,216,252,222,60,0,8,216,253,222,60,0,8,216,254,222,60,0,8,216,255,222,60,0,8,216,0,223,60,0,8,216,1,223,60,0,8,216,2,223,60,0,8,216,3,223,60,0,8,216,4,223,60,0,8,216,5,223,60,0,8,216,6,223,60,0,8,216,7,223,60,0,8,216,8,223,60,0,8,216,9,223,60,0,8,216,10,223,60,0,8,216,11,223,60,0,8,216,12,223,60,0,8,216,13,223,60,0,8,216,14,223,60,0,8,216,15,223,60,0,8,216,16,223,60,0,8,216,17,223,60,0,8,216,18,223,60,0,8,216,19,223,60,0,8,216,20,223,60,0,8,216,21,223,60,0,8,216,22,223,60,0,8,216,23,223,60,0,8,216,24,223,60,0,8,216,25,223,60,0,8,216,26,223,60,0,8,216,27,223,60,0,8,216,28,223,60,0,8,216,29,223,60,0,8,216,30,223,60,0,8,216,31,223,60,0,8,216,32,223,60,0,8,216,33,223,60,0,8,216,34,223,60,0,8,216,35,223,60,0,8,216,36,223,60,0,8,216,37,223,60,0,8,216,38,223,60,0,8,216,39,223,60,0,8,216,40,223,60,0,8,216,41,223,60,0,8,216,42,223,60,0,8,216,43,223,60,0,8,216,44,223,60,0,8,216,45,223,60,0,8,216,46,223,60,0,8,216,47,223,60,0,8,216,48,223,60,0,8,216,49,223,60,0,8,216,50,223,60,0,8,216,51,223,60,0,8,216,52,223,60,0,8,216,53,223,60,0,8,216,54,223,60,0,8,216,55,223,60,0,8,216,56,223,60,0,8,216,57,223,60,0,8,216,58,223,60,0,8,216,59,223,60,0,8,216,60,223,60,0,8,216,61,223,60,0,8,216,62,223,60,0,8,216,63,223,60,0,8,216,64,223,60,0,8,216,65,223,60,0,8,216,66,223,60,0,8,216,67,223,60,0,8,216,68,223,60,0,8,216,69,223,60,0,8,216,70,223,60,0,8,216,71,223,60,0,8,216,72,223,60,0,8,216,73,223,60,0,8,216,74,223,60,0,8,216,75,223,60,0,8,216,76,223,60,0,8,216,77,223,60,0,8,216,78,223,60,0,8,216,79,223,60,0,8,216,80,223,60,0,8,216,81,223,60,0,8,216,82,223,60,0,8,216,83,223,60,0,8,216,84,223,60,0,8,216,85,223,60,0,8,216,86,223,60,0,8,216,87,223,60,0,8,216,88,223,60,0,8,216,89,223,60,0,8,216,90,223,60,0,8,216,91,223,60,0,8,216,92,223,60,0,8,216,93,223,60,0,8,216,94,223,60,0,8,216,95,223,60,0,8,216,96,223,60,0,8,216,97,223,60,0,8,216,98,223,60,0,8,216,99,223,60,0,8,216,100,223,60,0,8,216,101,223,60,0,8,216,102,223,60,0,8,216,103,223,60,0,8,216,104,223,60,0,8,216,105,223,60,0,8,216,106,223,60,0,8,216,107,223,60,0,8,216,108,223,60,0,8,216,109,223,60,0,8,216,110,223,60,0,8,216,111,223,60,0,8,216,112,223,60,0,8,216,113,223,60,0,8,216,114,223,60,0,8,216,115,223,60,0,8,216,116,223,60,0,8,216,117,223,60,0,8,216,118,223,60,0,8,216,119,223,60,0,8,216,120,223,60,0,8,216,121,223,60,0,8,216,122,223,60,0,8,216,123,223,60,0,8,216,124,223,60,0,8,216,125,223,60,0,8,216,126,223,60,0,8,216,127,223,60,0,8,216,128,223,60,0,8,216,129,223,60,0,8,216,130,223,60,0,8,216,131,223,60,0,8,216,132,223,60,0,8,216,133,223,60,0,8,216,134,223,60,0,8,216,135,223,60,0,8,216,136,223,60,0,8,216,137,223,60,0,8,216,138,223,60,0,8,216,139,223,60,0,8,216,140,223,60,0,8,216,141,223,60,0,8,216,142,223,60,0,8,216,143,223,60,0,8,216,144,223,60,0,8,216,145,223,60,0,8,216,146,223,60,0,8,216,147,223,60,0,8,216,148,223,60,0,8,216,149,223,60,0,8,216,150,223,60,0,8,216,151,223,60,0,8,216,152,223,60,0,8,216,153,223,60,0,9,216,128,220,60,0,9,216,129,220,60,0,9,216,130,220,60,0,9,216,131,220,60,0,9,216,132,220,60,0,9,216,133,220,60,0,9,216,134,220,60,0,9,216,135,220,60,0,9,216,136,220,60,0,9,216,137,220,60,0,9,216,138,220,60,0,9,216,139,220,60,0,9,216,140,220,60,0,9,216,141,220,60,0,9,216,142,220,60,0,9,216,143,220,60,0,9,216,144,220,60,0,9,216,145,220,60,0,9,216,146,220,60,0,9,216,147,220,60,0,9,216,148,220,60,0,9,216,149,220,60,0,9,216,150,220,60,0,9,216,151,220,60,0,9,216,152,220,60,0,9,216,153,220,60,0,9,216,154,220,60,0,9,216,155,220,60,0,9,216,156,220,60,0,9,216,157,220,60,0,9,216,158,220,60,0,9,216,159,220,60,0,9,216,160,220,60,0,9,216,161,220,60,0,9,216,162,220,60,0,9,216,163,220,60,0,9,216,164,220,60,0,9,216,165,220,60,0,9,216,166,220,60,0,9,216,167,220,60,0,9,216,168,220,60,0,9,216,169,220,60,0,9,216,170,220,60,0,9,216,171,220,60,0,9,216,172,220,60,0,9,216,173,220,60,0,9,216,174,220,60,0,9,216,175,220,60,0,9,216,176,220,60,0,9,216,177,220,60,0,9,216,178,220,60,0,9,216,179,220,60,0,9,216,180,220,60,0,9,216,181,220,60,0,9,216,182,220,60,0,9,216,183,220,60,0,9,216,184,220,60,0,9,216,185,220,60,0,9,216,186,220,60,0,9,216,187,220,60,0,9,216,188,220,60,0,9,216,189,220,60,0,9,216,190,220,60,0,9,216,191,220,60,0,9,216,192,220,60,0,9,216,193,220,60,0,9,216,194,220,60,0,9,216,195,220,60,0,9,216,196,220,60,0,9,216,197,220,60,0,9,216,198,220,60,0,9,216,199,220,60,0,9,216,200,220,60,0,9,216,201,220,60,0,9,216,202,220,60,0,9,216,203,220,60,0,9,216,204,220,60,0,9,216,205,220,60,0,9,216,206,220,60,0,9,216,207,220,60,0,9,216,208,220,60,0,9,216,209,220,60,0,9,216,210,220,60,0,9,216,211,220,60,0,9,216,212,220,60,0,9,216,213,220,60,0,9,216,214,220,60,0,9,216,215,220,60,0,9,216,216,220,60,0,9,216,217,220,60,0,9,216,218,220,60,0,9,216,219,220,60,0,9,216,220,220,60,0,9,216,221,220,60,0,9,216,222,220,60,0,9,216,223,220,60,0,9,216,224,220,60,0,9,216,225,220,60,0,9,216,226,220,60,0,9,216,227,220,60,0,9,216,228,220,60,0,9,216,229,220,60,0,9,216,230,220,60,0,9,216,231,220,60,0,9,216,232,220,60,0,9,216,233,220,60,0,9,216,234,220,60,0,9,216,235,220,60,0,9,216,236,220,60,0,9,216,237,220,60,0,9,216,238,220,60,0,9,216,239,220,60,0,9,216,240,220,60,0,9,216,241,220,60,0,9,216,242,220,60,0,9,216,243,220,60,0,9,216,244,220,60,0,9,216,245,220,60,0,9,216,246,220,60,0,9,216,247,220,60,0,9,216,248,220,60,0,9,216,249,220,60,0,9,216,250,220,60,0,9,216,251,220,60,0,9,216,252,220,60,0,9,216,253,220,60,0,9,216,254,220,60,0,9,216,255,220,60,0,9,216,0,221,60,0,9,216,1,221,60,0,9,216,2,221,60,0,9,216,3,221,60,0,9,216,4,221,60,0,9,216,5,221,60,0,9,216,6,221,60,0,9,216,7,221,60,0,9,216,8,221,60,0,9,216,9,221,60,0,9,216,10,221,60,0,9,216,11,221,60,0,9,216,12,221,60,0,9,216,13,221,60,0,9,216,14,221,60,0,9,216,15,221,60,0,9,216,16,221,60,0,9,216,17,221,60,0,9,216,18,221,60,0,9,216,19,221,60,0,9,216,20,221,60,0,9,216,21,221,60,0,9,216,22,221,60,0,9,216,23,221,60,0,9,216,24,221,60,0,9,216,25,221,60,0,9,216,26,221,60,0,9,216,27,221,60,0,9,216,28,221,60,0,9,216,29,221,60,0,9,216,30,221,60,0,9,216,31,221,60,0,9,216,32,221,60,0,9,216,33,221,60,0,9,216,34,221,60,0,9,216,35,221,60,0,9,216,36,221,60,0,9,216,37,221,60,0,9,216,38,221,60,0,9,216,39,221,60,0,9,216,40,221,60,0,9,216,41,221,60,0,9,216,42,221,60,0,9,216,43,221,60,0,9,216,44,221,60,0,9,216,45,221,60,0,9,216,46,221,60,0,9,216,47,221,60,0,9,216,48,221,60,0,9,216,49,221,60,0,9,216,50,221,60,0,9,216,51,221,60,0,9,216,52,221,60,0,9,216,53,221,60,0,9,216,54,221,60,0,9,216,55,221,60,0,9,216,56,221,60,0,9,216,57,221,60,0,9,216,58,221,60,0,9,216,59,221,60,0,9,216,60,221,60,0,9,216,61,221,60,0,9,216,62,221,60,0,9,216,63,221,60,0,9,216,64,221,60,0,9,216,65,221,60,0,9,216,66,221,60,0,9,216,67,221,60,0,12,216,0,220,60,0,12,216,1,220,60,0,12,216,2,220,60,0,12,216,3,220,60,0,12,216,4,220,60,0,12,216,5,220,60,0,12,216,6,220,60,0,12,216,7,220,60,0,12,216,8,220,60,0,12,216,9,220,60,0,12,216,10,220,60,0,12,216,11,220,60,0,12,216,12,220,60,0,12,216,13,220,60,0,12,216,14,220,60,0,12,216,15,220,60,0,12,216,16,220,60,0,12,216,17,220,60,0,12,216,18,220,60,0,12,216,19,220,60,0,12,216,20,220,60,0,12,216,21,220,60,0,12,216,22,220,60,0,12,216,23,220,60,0,12,216,24,220,60,0,12,216,25,220,60,0,12,216,26,220,60,0,12,216,27,220,60,0,12,216,28,220,60,0,12,216,29,220,60,0,12,216,30,220,60,0,12,216,31,220,60,0,12,216,32,220,60,0,12,216,33,220,60,0,12,216,34,220,60,0,12,216,35,220,60,0,12,216,36,220,60,0,12,216,37,220,60,0,12,216,38,220,60,0,12,216,39,220,60,0,12,216,40,220,60,0,12,216,41,220,60,0,12,216,42,220,60,0,12,216,43,220,60,0,12,216,44,220,60,0,12,216,45,220,60,0,12,216,46,220,60,0,12,216,47,220,60,0,12,216,48,220,60,0,12,216,49,220,60,0,12,216,50,220,60,0,12,216,51,220,60,0,12,216,52,220,60,0,12,216,53,220,60,0,12,216,54,220,60,0,12,216,55,220,60,0,12,216,56,220,60,0,12,216,57,220,60,0,12,216,58,220,60,0,12,216,59,220,60,0,12,216,60,220,60,0,12,216,61,220,60,0,12,216,62,220,60,0,12,216,63,220,60,0,12,216,64,220,60,0,12,216,65,220,60,0,12,216,66,220,60,0,12,216,67,220,60,0,12,216,68,220,60,0,12,216,69,220,60,0,12,216,70,220,60,0,12,216,71,220,60,0,12,216,72,220,60,0,12,216,73,220,60,0,12,216,74,220,60,0,12,216,75,220,60,0,12,216,76,220,60,0,12,216,77,220,60,0,12,216,78,220,60,0,12,216,79,220,60,0,12,216,80,220,60,0,12,216,81,220,60,0,12,216,82,220,60,0,12,216,83,220,60,0,12,216,84,220,60,0,12,216,85,220,60,0,12,216,86,220,60,0,12,216,87,220,60,0,12,216,88,220,60,0,12,216,89,220,60,0,12,216,90,220,60,0,12,216,91,220,60,0,12,216,92,220,60,0,12,216,93,220,60,0,12,216,94,220,60,0,12,216,95,220,60,0,12,216,96,220,60,0,12,216,97,220,60,0,12,216,98,220,60,0,12,216,99,220,60,0,12,216,100,220,60,0,12,216,101,220,60,0,12,216,102,220,60,0,12,216,103,220,60,0,12,216,104,220,60,0,12,216,105,220,60,0,12,216,106,220,60,0,12,216,107,220,60,0,12,216,108,220,60,0,12,216,109,220,60,0,12,216,110,220,60,0,12,216,111,220,60,0,12,216,112,220,60,0,12,216,113,220,60,0,12,216,114,220,60,0,12,216,115,220,60,0,12,216,116,220,60,0,12,216,117,220,60,0,12,216,118,220,60,0,12,216,119,220,60,0,12,216,120,220,60,0,12,216,121,220,60,0,12,216,122,220,60,0,12,216,123,220,60,0,12,216,124,220,60,0,12,216,125,220,60,0,12,216,126,220,60,0,12,216,127,220,60,0,12,216,128,220,60,0,12,216,129,220,60,0,12,216,130,220,60,0,12,216,131,220,60,0,12,216,132,220,60,0,12,216,133,220,60,0,12,216,134,220,60,0,12,216,135,220,60,0,12,216,136,220,60,0,12,216,137,220,60,0,12,216,138,220,60,0,12,216,139,220,60,0,12,216,140,220,60,0,12,216,141,220,60,0,12,216,142,220,60,0,12,216,143,220,60,0,12,216,144,220,60,0,12,216,145,220,60,0,12,216,146,220,60,0,12,216,147,220,60,0,12,216,148,220,60,0,12,216,149,220,60,0,12,216,150,220,60,0,12,216,151,220,60,0,12,216,152,220,60,0,12,216,153,220,60,0,12,216,154,220,60,0,12,216,155,220,60,0,12,216,156,220,60,0,12,216,157,220,60,0,12,216,158,220,60,0,12,216,159,220,60,0,12,216,160,220,60,0,12,216,161,220,60,0,12,216,162,220,60,0,12,216,163,220,60,0,12,216,164,220,60,0,12,216,165,220,60,0,12,216,166,220,60,0,12,216,167,220,60,0,12,216,168,220,60,0,12,216,169,220,60,0,12,216,170,220,60,0,12,216,171,220,60,0,12,216,172,220,60,0,12,216,173,220,60,0,12,216,174,220,60,0,12,216,175,220,60,0,12,216,176,220,60,0,12,216,177,220,60,0,12,216,178,220,60,0,12,216,179,220,60,0,12,216,180,220,60,0,12,216,181,220,60,0,12,216,182,220,60,0,12,216,183,220,60,0,12,216,184,220,60,0,12,216,185,220,60,0,12,216,186,220,60,0,12,216,187,220,60,0,12,216,188,220,60,0,12,216,189,220,60,0,12,216,190,220,60,0,12,216,191,220,60,0,12,216,192,220,60,0,12,216,193,220,60,0,12,216,194,220,60,0,12,216,195,220,60,0,12,216,196,220,60,0,12,216,197,220,60,0,12,216,198,220,60,0,12,216,199,220,60,0,12,216,200,220,60,0,12,216,201,220,60,0,12,216,202,220,60,0,12,216,203,220,60,0,12,216,204,220,60,0,12,216,205,220,60,0,12,216,206,220,60,0,12,216,207,220,60,0,12,216,208,220,60,0,12,216,209,220,60,0,12,216,210,220,60,0,12,216,211,220,60,0,12,216,212,220,60,0,12,216,213,220,60,0,12,216,214,220,60,0,12,216,215,220,60,0,12,216,216,220,60,0,12,216,217,220,60,0,12,216,218,220,60,0,12,216,219,220,60,0,12,216,220,220,60,0,12,216,221,220,60,0,12,216,222,220,60,0,12,216,223,220,60,0,12,216,224,220,60,0,12,216,225,220,60,0,12,216,226,220,60,0,12,216,227,220,60,0,12,216,228,220,60,0,12,216,229,220,60,0,12,216,230,220,60,0,12,216,231,220,60,0,12,216,232,220,60,0,12,216,233,220,60,0,12,216,234,220,60,0,12,216,235,220,60,0,12,216,236,220,60,0,12,216,237,220,60,0,12,216,238,220,60,0,12,216,239,220,60,0,12,216,240,220,60,0,12,216,241,220,60,0,12,216,242,220,60,0,12,216,243,220,60,0,12,216,244,220,60,0,12,216,245,220,60,0,12,216,246,220,60,0,12,216,247,220,60,0,12,216,248,220,60,0,12,216,249,220,60,0,12,216,250,220,60,0,12,216,251,220,60,0,12,216,252,220,60,0,12,216,253,220,60,0,12,216,254,220,60,0,12,216,255,220,60,0,12,216,0,221,60,0,12,216,1,221,60,0,12,216,2,221,60,0,12,216,3,221,60,0,12,216,4,221,60,0,12,216,5,221,60,0,12,216,6,221,60,0,12,216,7,221,60,0,12,216,8,221,60,0,12,216,9,221,60,0,12,216,10,221,60,0,12,216,11,221,60,0,12,216,12,221,60,0,12,216,13,221,60,0,12,216,14,221,60,0,12,216,15,221,60,0,12,216,16,221,60,0,12,216,17,221,60,0,12,216,18,221,60,0,12,216,19,221,60,0,12,216,20,221,60,0,12,216,21,221,60,0,12,216,22,221,60,0,12,216,23,221,60,0,12,216,24,221,60,0,12,216,25,221,60,0,12,216,26,221,60,0,12,216,27,221,60,0,12,216,28,221,60,0,12,216,29,221,60,0,12,216,30,221,60,0,12,216,31,221,60,0,12,216,32,221,60,0,12,216,33,221,60,0,12,216,34,221,60,0,12,216,35,221,60,0,12,216,36,221,60,0,12,216,37,221,60,0,12,216,38,221,60,0,12,216,39,221,60,0,12,216,40,221,60,0,12,216,41,221,60,0,12,216,42,221,60,0,12,216,43,221,60,0,12,216,44,221,60,0,12,216,45,221,60,0,12,216,46,221,60,0,12,216,47,221,60,0,12,216,48,221,60,0,12,216,49,221,60,0,12,216,50,221,60,0,12,216,51,221,60,0,12,216,52,221,60,0,12,216,53,221,60,0,12,216,54,221,60,0,12,216,55,221,60,0,12,216,56,221,60,0,12,216,57,221,60,0,12,216,58,221,60,0,12,216,59,221,60,0,12,216,60,221,60,0,12,216,61,221,60,0,12,216,62,221,60,0,12,216,63,221,60,0,12,216,64,221,60,0,12,216,65,221,60,0,12,216,66,221,60,0,12,216,67,221,60,0,12,216,68,221,60,0,12,216,69,221,60,0,12,216,70,221,60,0,12,216,71,221,60,0,12,216,72,221,60,0,12,216,73,221,60,0,12,216,74,221,60,0,12,216,75,221,60,0,12,216,76,221,60,0,12,216,77,221,60,0,12,216,78,221,60,0,12,216,79,221,60,0,12,216,80,221,60,0,12,216,81,221,60,0,12,216,82,221,60,0,12,216,83,221,60,0,12,216,84,221,60,0,12,216,85,221,60,0,12,216,86,221,60,0,12,216,87,221,60,0,12,216,88,221,60,0,12,216,89,221,60,0,12,216,90,221,60,0,12,216,91,221,60,0,12,216,92,221,60,0,12,216,93,221,60,0,12,216,94,221,60,0,12,216,95,221,60,0,12,216,96,221,60,0,12,216,97,221,60,0,12,216,98,221,60,0,12,216,99,221,60,0,12,216,100,221,60,0,12,216,101,221,60,0,12,216,102,221,60,0,12,216,103,221,60,0,12,216,104,221,60,0,12,216,105,221,60,0,12,216,106,221,60,0,12,216,107,221,60,0,12,216,108,221,60,0,12,216,109,221,60,0,12,216,110,221,60,0,12,216,111,221,60,0,12,216,112,221,60,0,12,216,113,221,60,0,12,216,114,221,60,0,12,216,115,221,60,0,12,216,116,221,60,0,12,216,117,221,60,0,12,216,118,221,60,0,12,216,119,221,60,0,12,216,120,221,60,0,12,216,121,221,60,0,12,216,122,221,60,0,12,216,123,221,60,0,12,216,124,221,60,0,12,216,125,221,60,0,12,216,126,221,60,0,12,216,127,221,60,0,12,216,128,221,60,0,12,216,129,221,60,0,12,216,130,221,60,0,12,216,131,221,60,0,12,216,132,221,60,0,12,216,133,221,60,0,12,216,134,221,60,0,12,216,135,221,60,0,12,216,136,221,60,0,12,216,137,221,60,0,12,216,138,221,60,0,12,216,139,221,60,0,12,216,140,221,60,0,12,216,141,221,60,0,12,216,142,221,60,0,12,216,143,221,60,0,12,216,144,221,60,0,12,216,145,221,60,0,12,216,146,221,60,0,12,216,147,221,60,0,12,216,148,221,60,0,12,216,149,221,60,0,12,216,150,221,60,0,12,216,151,221,60,0,12,216,152,221,60,0,12,216,153,221,60,0,12,216,154,221,60,0,12,216,155,221,60,0,12,216,156,221,60,0,12,216,157,221,60,0,12,216,158,221,60,0,12,216,159,221,60,0,12,216,160,221,60,0,12,216,161,221,60,0,12,216,162,221,60,0,12,216,163,221,60,0,12,216,164,221,60,0,12,216,165,221,60,0,12,216,166,221,60,0,12,216,167,221,60,0,12,216,168,221,60,0,12,216,169,221,60,0,12,216,170,221,60,0,12,216,171,221,60,0,12,216,172,221,60,0,12,216,173,221,60,0,12,216,174,221,60,0,12,216,175,221,60,0,12,216,176,221,60,0,12,216,177,221,60,0,12,216,178,221,60,0,12,216,179,221,60,0,12,216,180,221,60,0,12,216,181,221,60,0,12,216,182,221,60,0,12,216,183,221,60,0,12,216,184,221,60,0,12,216,185,221,60,0,12,216,186,221,60,0,12,216,187,221,60,0,12,216,188,221,60,0,12,216,189,221,60,0,12,216,190,221,60,0,12,216,191,221,60,0,12,216,192,221,60,0,12,216,193,221,60,0,12,216,194,221,60,0,12,216,195,221,60,0,12,216,196,221,60,0,12,216,197,221,60,0,12,216,198,221,60,0,12,216,199,221,60,0,12,216,200,221,60,0,12,216,201,221,60,0,12,216,202,221,60,0,12,216,203,221,60,0,12,216,204,221,60,0,12,216,205,221,60,0,12,216,206,221,60,0,12,216,207,221,60,0,12,216,208,221,60,0,12,216,209,221,60,0,12,216,210,221,60,0,12,216,211,221,60,0,12,216,212,221,60,0,12,216,213,221,60,0,12,216,214,221,60,0,12,216,215,221,60,0,12,216,216,221,60,0,12,216,217,221,60,0,12,216,218,221,60,0,12,216,219,221,60,0,12,216,220,221,60,0,12,216,221,221,60,0,12,216,222,221,60,0,12,216,223,221,60,0,12,216,224,221,60,0,12,216,225,221,60,0,12,216,226,221,60,0,12,216,227,221,60,0,12,216,228,221,60,0,12,216,229,221,60,0,12,216,230,221,60,0,12,216,231,221,60,0,12,216,232,221,60,0,12,216,233,221,60,0,12,216,234,221,60,0,12,216,235,221,60,0,12,216,236,221,60,0,12,216,237,221,60,0,12,216,238,221,60,0,12,216,239,221,60,0,12,216,240,221,60,0,12,216,241,221,60,0,12,216,242,221,60,0,12,216,243,221,60,0,12,216,244,221,60,0,12,216,245,221,60,0,12,216,246,221,60,0,12,216,247,221,60,0,12,216,248,221,60,0,12,216,249,221,60,0,12,216,250,221,60,0,12,216,251,221,60,0,12,216,252,221,60,0,12,216,253,221,60,0,12,216,254,221,60,0,12,216,255,221,60,0,12,216,0,222,60,0,12,216,1,222,60,0,12,216,2,222,60,0,12,216,3,222,60,0,12,216,4,222,60,0,12,216,5,222,60,0,12,216,6,222,60,0,12,216,7,222,60,0,12,216,8,222,60,0,12,216,9,222,60,0,12,216,10,222,60,0,12,216,11,222,60,0,12,216,12,222,60,0,12,216,13,222,60,0,12,216,14,222,60,0,12,216,15,222,60,0,12,216,16,222,60,0,12,216,17,222,60,0,12,216,18,222,60,0,12,216,19,222,60,0,12,216,20,222,60,0,12,216,21,222,60,0,12,216,22,222,60,0,12,216,23,222,60,0,12,216,24,222,60,0,12,216,25,222,60,0,12,216,26,222,60,0,12,216,27,222,60,0,12,216,28,222,60,0,12,216,29,222,60,0,12,216,30,222,60,0,12,216,31,222,60,0,12,216,32,222,60,0,12,216,33,222,60,0,12,216,34,222,60,0,12,216,35,222,60,0,12,216,36,222,60,0,12,216,37,222,60,0,12,216,38,222,60,0,12,216,39,222,60,0,12,216,40,222,60,0,12,216,41,222,60,0,12,216,42,222,60,0,12,216,43,222,60,0,12,216,44,222,60,0,12,216,45,222,60,0,12,216,46,222,60,0,12,216,47,222,60,0,12,216,48,222,60,0,12,216,49,222,60,0,12,216,50,222,60,0,12,216,51,222,60,0,12,216,52,222,60,0,12,216,53,222,60,0,12,216,54,222,60,0,12,216,55,222,60,0,12,216,56,222,60,0,12,216,57,222,60,0,12,216,58,222,60,0,12,216,59,222,60,0,12,216,60,222,60,0,12,216,61,222,60,0,12,216,62,222,60,0,12,216,63,222,60,0,12,216,64,222,60,0,12,216,65,222,60,0,12,216,66,222,60,0,12,216,67,222,60,0,12,216,68,222,60,0,12,216,69,222,60,0,12,216,70,222,60,0,12,216,71,222,60,0,12,216,72,222,60,0,12,216,73,222,60,0,12,216,74,222,60,0,12,216,75,222,60,0,12,216,76,222,60,0,12,216,77,222,60,0,12,216,78,222,60,0,12,216,79,222,60,0,12,216,80,222,60,0,12,216,81,222,60,0,12,216,82,222,60,0,12,216,83,222,60,0,12,216,84,222,60,0,12,216,85,222,60,0,12,216,86,222,60,0,12,216,87,222,60,0,12,216,88,222,60,0,12,216,89,222,60,0,12,216,90,222,60,0,12,216,91,222,60,0,12,216,92,222,60,0,12,216,93,222,60,0,12,216,94,222,60,0,12,216,95,222,60,0,12,216,96,222,60,0,12,216,97,222,60,0,12,216,98,222,60,0,12,216,99,222,60,0,12,216,100,222,60,0,12,216,101,222,60,0,12,216,102,222,60,0,12,216,103,222,60,0,12,216,104,222,60,0,12,216,105,222,60,0,12,216,106,222,60,0,12,216,107,222,60,0,12,216,108,222,60,0,12,216,109,222,60,0,12,216,110,222,60,0,12,216,111,222,60,0,12,216,112,222,60,0,12,216,113,222,60,0,12,216,114,222,60,0,12,216,115,222,60,0,12,216,116,222,60,0,12,216,117,222,60,0,12,216,118,222,60,0,12,216,119,222,60,0,12,216,120,222,60,0,12,216,121,222,60,0,12,216,122,222,60,0,12,216,123,222,60,0,12,216,124,222,60,0,12,216,125,222,60,0,12,216,126,222,60,0,12,216,127,222,60,0,12,216,128,222,60,0,12,216,129,222,60,0,12,216,130,222,60,0,12,216,131,222,60,0,12,216,132,222,60,0,12,216,133,222,60,0,12,216,134,222,60,0,12,216,135,222,60,0,12,216,136,222,60,0,12,216,137,222,60,0,12,216,138,222,60,0,12,216,139,222,60,0,12,216,140,222,60,0,12,216,141,222,60,0,12,216,142,222,60,0,12,216,143,222,60,0,12,216,144,222,60,0,12,216,145,222,60,0,12,216,146,222,60,0,12,216,147,222,60,0,12,216,148,222,60,0,12,216,149,222,60,0,12,216,150,222,60,0,12,216,151,222,60,0,12,216,152,222,60,0,12,216,153,222,60,0,12,216,154,222,60,0,12,216,155,222,60,0,12,216,156,222,60,0,12,216,157,222,60,0,12,216,158,222,60,0,12,216,159,222,60,0,12,216,160,222,60,0,12,216,161,222,60,0,12,216,162,222,60,0,12,216,163,222,60,0,12,216,164,222,60,0,12,216,165,222,60,0,12,216,166,222,60,0,12,216,167,222,60,0,12,216,168,222,60,0,12,216,169,222,60,0,12,216,170,222,60,0,12,216,171,222,60,0,12,216,172,222,60,0,12,216,173,222,60,0,12,216,174,222,60,0,12,216,175,222,60,0,12,216,176,222,60,0,12,216,177,222,60,0,12,216,178,222,60,0,12,216,179,222,60,0,12,216,180,222,60,0,12,216,181,222,60,0,12,216,182,222,60,0,12,216,183,222,60,0,12,216,184,222,60,0,12,216,185,222,60,0,12,216,186,222,60,0,12,216,187,222,60,0,12,216,188,222,60,0,12,216,189,222,60,0,12,216,190,222,60,0,12,216,191,222,60,0,12,216,192,222,60,0,12,216,193,222,60,0,12,216,194,222,60,0,12,216,195,222,60,0,12,216,196,222,60,0,12,216,197,222,60,0,12,216,198,222,60,0,12,216,199,222,60,0,12,216,200,222,60,0,12,216,201,222,60,0,12,216,202,222,60,0,12,216,203,222,60,0,12,216,204,222,60,0,12,216,205,222,60,0,12,216,206,222,60,0,12,216,207,222,60,0,12,216,208,222,60,0,12,216,209,222,60,0,12,216,210,222,60,0,12,216,211,222,60,0,12,216,212,222,60,0,12,216,213,222,60,0,12,216,214,222,60,0,12,216,215,222,60,0,12,216,216,222,60,0,12,216,217,222,60,0,12,216,218,222,60,0,12,216,219,222,60,0,12,216,220,222,60,0,12,216,221,222,60,0,12,216,222,222,60,0,12,216,223,222,60,0,12,216,224,222,60,0,12,216,225,222,60,0,12,216,226,222,60,0,12,216,227,222,60,0,12,216,228,222,60,0,12,216,229,222,60,0,12,216,230,222,60,0,12,216,231,222,60,0,12,216,232,222,60,0,12,216,233,222,60,0,12,216,234,222,60,0,12,216,235,222,60,0,12,216,236,222,60,0,12,216,237,222,60,0,12,216,238,222,60,0,12,216,239,222,60,0,12,216,240,222,60,0,12,216,241,222,60,0,12,216,242,222,60,0,12,216,243,222,60,0,12,216,244,222,60,0,12,216,245,222,60,0,12,216,246,222,60,0,12,216,247,222,60,0,12,216,248,222,60,0,12,216,249,222,60,0,12,216,250,222,60,0,12,216,251,222,60,0,12,216,252,222,60,0,12,216,253,222,60,0,12,216,254,222,60,0,12,216,255,222,60,0,12,216,0,223,60,0,12,216,1,223,60,0,12,216,2,223,60,0,12,216,3,223,60,0,12,216,4,223,60,0,12,216,5,223,60,0,12,216,6,223,60,0,12,216,7,223,60,0,12,216,8,223,60,0,12,216,9,223,60,0,12,216,10,223,60,0,12,216,11,223,60,0,12,216,12,223,60,0,12,216,13,223,60,0,12,216,14,223,60,0,12,216,15,223,60,0,12,216,16,223,60,0,12,216,17,223,60,0,12,216,18,223,60,0,12,216,19,223,60,0,12,216,20,223,60,0,12,216,21,223,60,0,12,216,22,223,60,0,12,216,23,223,60,0,12,216,24,223,60,0,12,216,25,223,60,0,12,216,26,223,60,0,12,216,27,223,60,0,12,216,28,223,60,0,12,216,29,223,60,0,12,216,30,223,60,0,12,216,31,223,60,0,12,216,32,223,60,0,12,216,33,223,60,0,12,216,34,223,60,0,12,216,35,223,60,0,12,216,36,223,60,0,12,216,37,223,60,0,12,216,38,223,60,0,12,216,39,223,60,0,12,216,40,223,60,0,12,216,41,223,60,0,12,216,42,223,60,0,12,216,43,223,60,0,12,216,44,223,60,0,12,216,45,223,60,0,12,216,46,223,60,0,12,216,47,223,60,0,12,216,48,223,60,0,12,216,49,223,60,0,12,216,50,223,60,0,12,216,51,223,60,0,12,216,52,223,60,0,12,216,53,223,60,0,12,216,54,223,60,0,12,216,55,223,60,0,12,216,56,223,60,0,12,216,57,223,60,0,12,216,58,223,60,0,12,216,59,223,60,0,12,216,60,223,60,0,12,216,61,223,60,0,12,216,62,223,60,0,12,216,63,223,60,0,12,216,64,223,60,0,12,216,65,223,60,0,12,216,66,223,60,0,12,216,67,223,60,0,12,216,68,223,60,0,12,216,69,223,60,0,12,216,70,223,60,0,12,216,71,223,60,0,12,216,72,223,60,0,12,216,73,223,60,0,12,216,74,223,60,0,12,216,75,223,60,0,12,216,76,223,60,0,12,216,77,223,60,0,12,216,78,223,60,0,12,216,79,223,60,0,12,216,80,223,60,0,12,216,81,223,60,0,12,216,82,223,60,0,12,216,83,223,60,0,12,216,84,223,60,0,12,216,85,223,60,0,12,216,86,223,60,0,12,216,87,223,60,0,12,216,88,223,60,0,12,216,89,223,60,0,12,216,90,223,60,0,12,216,91,223,60,0,12,216,92,223,60,0,12,216,93,223,60,0,12,216,94,223,60,0,12,216,95,223,60,0,12,216,96,223,60,0,12,216,97,223,60,0,12,216,98,223,60,0,12,216,99,223,60,0,12,216,100,223,60,0,12,216,101,223,60,0,12,216,102,223,60,0,12,216,103,223,60,0,12,216,104,223,60,0,12,216,105,223,60,0,12,216,106,223,60,0,12,216,107,223,60,0,12,216,108,223,60,0,12,216,109,223,60,0,12,216,110,223,60,0,12,216,111,223,60,0,12,216,112,223,60,0,12,216,113,223,60,0,12,216,114,223,60,0,12,216,115,223,60,0,12,216,116,223,60,0,12,216,117,223,60,0,12,216,118,223,60,0,12,216,119,223,60,0,12,216,120,223,60,0,12,216,121,223,60,0,12,216,122,223,60,0,12,216,123,223,60,0,12,216,124,223,60,0,12,216,125,223,60,0,12,216,126,223,60,0,12,216,127,223,60,0,12,216,128,223,60,0,12,216,129,223,60,0,12,216,130,223,60,0,12,216,131,223,60,0,12,216,132,223,60,0,12,216,133,223,60,0,12,216,134,223,60,0,12,216,135,223,60,0,12,216,136,223,60,0,12,216,137,223,60,0,12,216,138,223,60,0,12,216,139,223,60,0,12,216,140,223,60,0,12,216,141,223,60,0,12,216,142,223,60,0,12,216,143,223,60,0,12,216,144,223,60,0,12,216,145,223,60,0,12,216,146,223,60,0,12,216,147,223,60,0,12,216,148,223,60,0,12,216,149,223,60,0,12,216,150,223,60,0,12,216,151,223,60,0,12,216,152,223,60,0,12,216,153,223,60,0,12,216,154,223,60,0,12,216,155,223,60,0,12,216,156,223,60,0,12,216,157,223,60,0,12,216,158,223,60,0,12,216,159,223,60,0,12,216,160,223,60,0,12,216,161,223,60,0,12,216,162,223,60,0,12,216,163,223,60,0,12,216,164,223,60,0,12,216,165,223,60,0,12,216,166,223,60,0,12,216,167,223,60,0,12,216,168,223,60,0,12,216,169,223,60,0,12,216,170,223,60,0,12,216,171,223,60,0,12,216,172,223,60,0,12,216,173,223,60,0,12,216,174,223,60,0,12,216,175,223,60,0,12,216,176,223,60,0,12,216,177,223,60,0,12,216,178,223,60,0,12,216,179,223,60,0,12,216,180,223,60,0,12,216,181,223,60,0,12,216,182,223,60,0,12,216,183,223,60,0,12,216,184,223,60,0,12,216,185,223,60,0,12,216,186,223,60,0,12,216,187,223,60,0,12,216,188,223,60,0,12,216,189,223,60,0,12,216,190,223,60,0,12,216,191,223,60,0,12,216,192,223,60,0,12,216,193,223,60,0,12,216,194,223,60,0,12,216,195,223,60,0,12,216,196,223,60,0,12,216,197,223,60,0,12,216,198,223,60,0,12,216,199,223,60,0,12,216,200,223,60,0,12,216,201,223,60,0,12,216,202,223,60,0,12,216,203,223,60,0,12,216,204,223,60,0,12,216,205,223,60,0,12,216,206,223,60,0,12,216,207,223,60,0,12,216,208,223,60,0,12,216,209,223,60,0,12,216,210,223,60,0,12,216,211,223,60,0,12,216,212,223,60,0,12,216,213,223,60,0,12,216,214,223,60,0,12,216,215,223,60,0,12,216,216,223,60,0,12,216,217,223,60,0,12,216,218,223,60,0,12,216,219,223,60,0,12,216,220,223,60,0,12,216,221,223,60,0,12,216,222,223,60,0,12,216,223,223,60,0,12,216,224,223,60,0,12,216,225,223,60,0,12,216,226,223,60,0,12,216,227,223,60,0,12,216,228,223,60,0,12,216,229,223,60,0,12,216,230,223,60,0,12,216,231,223,60,0,12,216,232,223,60,0,12,216,233,223,60,0,12,216,234,223,60,0,12,216,235,223,60,0,12,216,236,223,60,0,12,216,237,223,60,0,12,216,238,223,60,0,12,216,239,223,60,0,12,216,240,223,60,0,12,216,241,223,60,0,12,216,242,223,60,0,12,216,243,223,60,0,12,216,244,223,60,0,12,216,245,223,60,0,12,216,246,223,60,0,12,216,247,223,60,0,12,216,248,223,60,0,12,216,249,223,60,0,12,216,250,223,60,0,12,216,251,223,60,0,12,216,252,223,60,0,12,216,253,223,60,0,12,216,254,223,60,0,12,216,255,223,60,0,13,216,0,220,60,0,13,216,1,220,60,0,13,216,2,220,60,0,13,216,3,220,60,0,13,216,4,220,60,0,13,216,5,220,60,0,13,216,6,220,60,0,13,216,7,220,60,0,13,216,8,220,60,0,13,216,9,220,60,0,13,216,10,220,60,0,13,216,11,220,60,0,13,216,12,220,60,0,13,216,13,220,60,0,13,216,14,220,60,0,13,216,15,220,60,0,13,216,16,220,60,0,13,216,17,220,60,0,13,216,18,220,60,0,13,216,19,220,60,0,13,216,20,220,60,0,13,216,21,220,60,0,13,216,22,220,60,0,13,216,23,220,60,0,13,216,24,220,60,0,13,216,25,220,60,0,13,216,26,220,60,0,13,216,27,220,60,0,13,216,28,220,60,0,13,216,29,220,60,0,13,216,30,220,60,0,13,216,31,220,60,0,13,216,32,220,60,0,13,216,33,220,60,0,13,216,34,220,60,0,13,216,35,220,60,0,13,216,36,220,60,0,13,216,37,220,60,0,13,216,38,220,60,0,13,216,39,220,60,0,13,216,40,220,60,0,13,216,41,220,60,0,13,216,42,220,60,0,13,216,43,220,60,0,13,216,44,220,60,0,13,216,45,220,60,0,13,216,46,220,60,0,13,216,47,220,60,0,13,216,65,220,60,0,13,216,66,220,60,0,13,216,67,220,60,0,13,216,68,220,60,0,13,216,69,220,60,0,13,216,70,220,60,0,14,32,2,216,160,221,14,32,60,0,60,0,14,32,2,216,128,221,14,32,60,0,14,32,2,216,161,221,14,32,60,0,60,0,14,32,2,216,129,221,14,32,60,0,14,32,2,216,162,221,14,32,60,0,60,0,14,32,2,216,130,221,14,32,60,0,14,32,2,216,163,221,14,32,60,0,60,0,14,32,2,216,131,221,14,32,60,0,14,32,2,216,164,221,14,32,60,0,60,0,14,32,2,216,132,221,14,32,60,0,14,32,2,216,165,221,14,32,60,0,60,0,14,32,2,216,133,221,14,32,60,0,14,32,2,216,166,221,14,32,60,0,60,0,14,32,2,216,134,221,14,32,60,0,60,0,14,32,2,216,135,221,14,32,60,0,14,32,2,216,167,221,14,32,60,0,60,0,14,32,2,216,136,221,14,32,60,0,14,32,2,216,168,221,14,32,60,0,60,0,14,32,2,216,137,221,14,32,60,0,14,32,2,216,169,221,14,32,60,0,60,0,14,32,2,216,138,221,14,32,60,0,60,0,14,32,2,216,139,221,14,32,60,0,14,32,2,216,170,221,14,32,60,0,60,0,14,32,2,216,140,221,14,32,60,0,60,0,14,32,2,216,141,221,14,32,60,0,14,32,2,216,171,221,14,32,60,0,60,0,14,32,2,216,142,221,14,32,60,0,60,0,14,32,2,216,143,221,14,32,60,0,14,32,2,216,172,221,14,32,60,0,60,0,14,32,2,216,144,221,14,32,60,0,14,32,2,216,173,221,14,32,60,0,60,0,14,32,2,216,145,221,14,32,60,0,14,32,2,216,174,221,14,32,60,0,60,0,14,32,2,216,146,221,14,32,60,0,14,32,2,216,175,221,14,32,60,0,60,0,14,32,2,216,176,221,14,32,60,0,60,0,14,32,2,216,147,221,14,32,60,0,60,0,14,32,2,216,148,221,14,32,60,0,14,32,2,216,177,221,14,32,60,0,60,0,14,32,2,216,149,221,14,32,60,0,14,32,2,216,178,221,14,32,60,0,60,0,14,32,2,216,150,221,14,32,60,0,14,32,2,216,179,221,14,32,60,0,60,0,14,32,2,216,151,221,14,32,60,0,14,32,2,216,180,221,14,32,60,0,60,0,14,32,2,216,152,221,14,32,60,0,60,0,14,32,2,216,153,221,14,32,60,0,14,32,2,216,181,221,14,32,60,0,60,0,14,32,2,216,154,221,14,32,60,0,60,0,14,32,2,216,155,221,14,32,60,0,14,32,2,216,182,221,14,32,60,0,60,0,14,32,2,216,156,221,14,32,60,0,14,32,2,216,183,221,14,32,60,0,60,0,14,32,2,216,157,221,14,32,60,0,14,32,2,216,190,221,14,32,60,0,14,32,2,216,191,221,14,32,60,0,14,32,2,216,158,221,14,32,60,0,14,32,2,216,159,221,14,32,60,0,17,216,0,220,60,0,17,216,1,220,60,0,17,216,2,220,60,0,17,216,3,220,60,0,17,216,4,220,60,0,17,216,5,220,60,0,17,216,6,220,60,0,17,216,7,220,60,0,17,216,8,220,60,0,17,216,9,220,60,0,17,216,10,220,60,0,17,216,11,220,60,0,17,216,12,220,60,0,17,216,13,220,60,0,17,216,14,220,60,0,17,216,15,220,60,0,17,216,16,220,60,0,17,216,17,220,60,0,17,216,18,220,60,0,17,216,19,220,60,0,17,216,20,220,60,0,17,216,21,220,60,0,17,216,22,220,60,0,17,216,23,220,60,0,17,216,24,220,60,0,17,216,25,220,60,0,17,216,26,220,60,0,17,216,27,220,60,0,17,216,28,220,60,0,17,216,29,220,60,0,17,216,30,220,60,0,17,216,31,220,60,0,17,216,32,220,60,0,17,216,33,220,60,0,17,216,34,220,60,0,17,216,35,220,60,0,17,216,36,220,60,0,17,216,37,220,60,0,17,216,38,220,60,0,17,216,39,220,60,0,17,216,40,220,60,0,17,216,41,220,60,0,17,216,42,220,60,0,17,216,43,220,60,0,17,216,44,220,60,0,17,216,45,220,60,0,17,216,46,220,60,0,17,216,47,220,60,0,17,216,48,220,60,0,17,216,49,220,60,0,17,216,50,220,60,0,17,216,51,220,60,0,17,216,52,220,60,0,17,216,53,220,60,0,17,216,54,220,60,0,17,216,55,220,60,0,17,216,56,220,60,0,17,216,57,220,60,0,17,216,58,220,60,0,17,216,59,220,60,0,17,216,60,220,60,0,17,216,61,220,60,0,17,216,62,220,60,0,17,216,63,220,60,0,17,216,64,220,60,0,17,216,65,220,60,0,17,216,66,220,60,0,17,216,67,220,60,0,17,216,68,220,60,0,17,216,69,220,60,0,17,216,70,220,60,0,17,216,71,220,60,0,17,216,72,220,60,0,17,216,73,220,60,0,17,216,74,220,60,0,17,216,75,220,60,0,17,216,76,220,60,0,17,216,77,220,60,0,17,216,78,220,60,0,17,216,79,220,60,0,17,216,80,220,60,0,17,216,81,220,60,0,17,216,82,220,60,0,17,216,83,220,60,0,17,216,84,220,60,0,17,216,85,220,60,0,17,216,86,220,60,0,17,216,87,220,60,0,17,216,88,220,60,0,17,216,89,220,60,0,17,216,90,220,60,0,17,216,91,220,60,0,17,216,92,220,60,0,17,216,93,220,60,0,17,216,94,220,60,0,17,216,95,220,60,0,17,216,96,220,60,0,17,216,97,220,60,0,17,216,98,220,60,0,17,216,99,220,60,0,17,216,100,220,60,0,17,216,101,220,60,0,17,216,102,220,60,0,17,216,103,220,60,0,17,216,104,220,60,0,17,216,105,220,60,0,17,216,106,220,60,0,17,216,107,220,60,0,17,216,108,220,60,0,17,216,109,220,60,0,17,216,110,220,60,0,17,216,111,220,60,0,17,216,112,220,60,0,17,216,113,220,60,0,17,216,114,220,60,0,17,216,115,220,60,0,17,216,116,220,60,0,17,216,117,220,60,0,17,216,118,220,60,0,17,216,119,220,60,0,17,216,120,220,60,0,17,216,121,220,60,0,17,216,122,220,60,0,17,216,123,220,60,0,17,216,124,220,60,0,17,216,125,220,60,0,17,216,126,220,60,0,17,216,127,220,60,0,17,216,128,220,60,0,17,216,129,220,60,0,17,216,130,220,60,0,17,216,131,220,60,0,17,216,132,220,60,0,17,216,133,220,60,0,17,216,134,220,60,0,17,216,135,220,60,0,17,216,136,220,60,0,17,216,137,220,60,0,17,216,138,220,60,0,17,216,139,220,60,0,17,216,140,220,60,0,17,216,141,220,60,0,17,216,142,220,60,0,17,216,143,220,60,0,17,216,144,220,60,0,17,216,145,220,60,0,17,216,146,220,60,0,17,216,147,220,60,0,17,216,148,220,60,0,17,216,149,220,60,0,17,216,150,220,60,0,17,216,151,220,60,0,17,216,152,220,60,0,17,216,153,220,60,0,17,216,154,220,60,0,17,216,155,220,60,0,17,216,156,220,60,0,17,216,157,220,60,0,17,216,158,220,60,0,17,216,159,220,60,0,17,216,160,220,60,0,17,216,161,220,60,0,17,216,162,220,60,0,17,216,163,220,60,0,17,216,164,220,60,0,17,216,165,220,60,0,17,216,166,220,60,0,17,216,167,220,60,0,17,216,168,220,60,0,17,216,169,220,60,0,17,216,170,220,60,0,17,216,171,220,60,0,17,216,172,220,60,0,17,216,173,220,60,0,17,216,174,220,60,0,17,216,175,220,60,0,17,216,176,220,60,0,17,216,177,220,60,0,17,216,178,220,60,0,17,216,179,220,60,0,17,216,180,220,60,0,17,216,181,220,60,0,17,216,182,220,60,0,17,216,183,220,60,0,17,216,184,220,60,0,17,216,185,220,60,0,17,216,186,220,60,0,17,216,187,220,60,0,17,216,188,220,60,0,17,216,189,220,60,0,17,216,190,220,60,0,17,216,191,220,60,0,17,216,192,220,60,0,17,216,193,220,60,0,17,216,194,220,60,0,17,216,195,220,60,0,17,216,196,220,60,0,17,216,197,220,60,0,17,216,198,220,60,0,17,216,199,220,60,0,17,216,200,220,60,0,17,216,201,220,60,0,17,216,202,220,60,0,17,216,203,220,60,0,17,216,204,220,60,0,17,216,205,220,60,0,17,216,206,220,60,0,17,216,207,220,60,0,17,216,208,220,60,0,17,216,209,220,60,0,17,216,210,220,60,0,17,216,211,220,60,0,17,216,212,220,60,0,17,216,213,220,60,0,17,216,214,220,60,0,17,216,215,220,60,0,17,216,216,220,60,0,17,216,217,220,60,0,17,216,218,220,60,0,17,216,219,220,60,0,17,216,220,220,60,0,17,216,221,220,60,0,17,216,222,220,60,0,17,216,223,220,60,0,17,216,224,220,60,0,17,216,225,220,60,0,17,216,226,220,60,0,17,216,227,220,60,0,17,216,228,220,60,0,17,216,229,220,60,0,17,216,230,220,60,0,17,216,231,220,60,0,17,216,232,220,60,0,17,216,233,220,60,0,17,216,234,220,60,0,17,216,235,220,60,0,17,216,236,220,60,0,17,216,237,220,60,0,17,216,238,220,60,0,17,216,239,220,60,0,17,216,240,220,60,0,17,216,241,220,60,0,17,216,242,220,60,0,17,216,243,220,60,0,17,216,244,220,60,0,17,216,245,220,60,0,17,216,246,220,60,0,17,216,247,220,60,0,17,216,248,220,60,0,17,216,249,220,60,0,17,216,250,220,60,0,17,216,251,220,60,0,17,216,252,220,60,0,17,216,253,220,60,0,17,216,254,220,60,0,17,216,255,220,60,0,17,216,0,221,60,0,17,216,1,221,60,0,17,216,2,221,60,0,17,216,3,221,60,0,17,216,4,221,60,0,17,216,5,221,60,0,17,216,6,221,60,0,17,216,7,221,60,0,17,216,8,221,60,0,17,216,9,221,60,0,17,216,10,221,60,0,17,216,11,221,60,0,17,216,12,221,60,0,17,216,13,221,60,0,17,216,14,221,60,0,17,216,15,221,60,0,17,216,16,221,60,0,17,216,17,221,60,0,17,216,18,221,60,0,17,216,19,221,60,0,17,216,20,221,60,0,17,216,21,221,60,0,17,216,22,221,60,0,17,216,23,221,60,0,17,216,24,221,60,0,17,216,25,221,60,0,17,216,26,221,60,0,17,216,27,221,60,0,17,216,28,221,60,0,17,216,29,221,60,0,17,216,30,221,60,0,17,216,31,221,60,0,17,216,32,221,60,0,17,216,33,221,60,0,17,216,34,221,60,0,17,216,35,221,60,0,17,216,36,221,60,0,17,216,37,221,60,0,17,216,38,221,60,0,17,216,39,221,60,0,17,216,40,221,60,0,17,216,41,221,60,0,17,216,42,221,60,0,17,216,43,221,60,0,17,216,44,221,60,0,17,216,45,221,60,0,17,216,46,221,60,0,17,216,47,221,60,0,17,216,48,221,60,0,17,216,49,221,60,0,17,216,50,221,60,0,17,216,51,221,60,0,17,216,52,221,60,0,17,216,53,221,60,0,17,216,54,221,60,0,17,216,55,221,60,0,17,216,56,221,60,0,17,216,57,221,60,0,17,216,58,221,60,0,17,216,59,221,60,0,17,216,60,221,60,0,17,216,61,221,60,0,17,216,62,221,60,0,17,216,63,221,60,0,17,216,64,221,60,0,17,216,65,221,60,0,17,216,66,221,60,0,17,216,67,221,60,0,17,216,68,221,60,0,17,216,69,221,60,0,17,216,70,221,60,0,17,216,71,221,60,0,17,216,72,221,60,0,17,216,73,221,60,0,17,216,74,221,60,0,17,216,75,221,60,0,17,216,76,221,60,0,17,216,77,221,60,0,17,216,78,221,60,0,17,216,79,221,60,0,17,216,80,221,60,0,17,216,81,221,60,0,17,216,82,221,60,0,17,216,83,221,60,0,17,216,84,221,60,0,17,216,85,221,60,0,17,216,86,221,60,0,17,216,87,221,60,0,17,216,88,221,60,0,17,216,89,221,60,0,17,216,90,221,60,0,17,216,91,221,60,0,17,216,92,221,60,0,17,216,93,221,60,0,17,216,94,221,60,0,17,216,95,221,60,0,17,216,96,221,60,0,17,216,97,221,60,0,17,216,98,221,60,0,17,216,99,221,60,0,17,216,100,221,60,0,17,216,101,221,60,0,17,216,102,221,60,0,17,216,103,221,60,0,17,216,104,221,60,0,17,216,105,221,60,0,17,216,106,221,60,0,17,216,107,221,60,0,17,216,108,221,60,0,17,216,109,221,60,0,17,216,110,221,60,0,17,216,111,221,60,0,17,216,112,221,60,0,17,216,113,221,60,0,17,216,114,221,60,0,17,216,115,221,60,0,17,216,116,221,60,0,17,216,117,221,60,0,17,216,118,221,60,0,17,216,119,221,60,0,17,216,120,221,60,0,17,216,121,221,60,0,17,216,122,221,60,0,17,216,123,221,60,0,17,216,124,221,60,0,17,216,125,221,60,0,17,216,126,221,60,0,17,216,127,221,60,0,17,216,128,221,60,0,17,216,129,221,60,0,17,216,130,221,60,0,17,216,131,221,60,0,17,216,132,221,60,0,17,216,133,221,60,0,17,216,134,221,60,0,17,216,135,221,60,0,17,216,136,221,60,0,17,216,137,221,60,0,17,216,138,221,60,0,17,216,139,221,60,0,17,216,140,221,60,0,17,216,141,221,60,0,17,216,142,221,60,0,17,216,143,221,60,0,17,216,144,221,60,0,17,216,145,221,60,0,17,216,146,221,60,0,17,216,147,221,60,0,17,216,148,221,60,0,17,216,149,221,60,0,17,216,150,221,60,0,17,216,151,221,60,0,17,216,152,221,60,0,17,216,153,221,60,0,17,216,154,221,60,0,17,216,155,221,60,0,17,216,156,221,60,0,17,216,157,221,60,0,17,216,158,221,60,0,17,216,159,221,60,0,17,216,160,221,60,0,17,216,161,221,60,0,17,216,162,221,60,0,17,216,163,221,60,0,17,216,164,221,60,0,17,216,165,221,60,0,17,216,166,221,60,0,17,216,167,221,60,0,17,216,168,221,60,0,17,216,169,221,60,0,17,216,170,221,60,0,17,216,171,221,60,0,17,216,172,221,60,0,17,216,173,221,60,0,17,216,174,221,60,0,17,216,175,221,60,0,17,216,176,221,60,0,17,216,177,221,60,0,17,216,178,221,60,0,17,216,179,221,60,0,17,216,180,221,60,0,17,216,181,221,60,0,17,216,182,221,60,0,17,216,183,221,60,0,17,216,184,221,60,0,17,216,185,221,60,0,17,216,186,221,60,0,17,216,187,221,60,0,17,216,188,221,60,0,17,216,189,221,60,0,17,216,190,221,60,0,17,216,191,221,60,0,17,216,192,221,60,0,17,216,193,221,60,0,17,216,194,221,60,0,17,216,195,221,60,0,17,216,196,221,60,0,17,216,197,221,60,0,17,216,198,221,60,0,17,216,199,221,60,0,17,216,200,221,60,0,17,216,201,221,60,0,17,216,202,221,60,0,17,216,203,221,60,0,17,216,204,221,60,0,17,216,205,221,60,0,17,216,206,221,60,0,17,216,207,221,60,0,17,216,208,221,60,0,17,216,209,221,60,0,17,216,210,221,60,0,17,216,211,221,60,0,17,216,212,221,60,0,17,216,213,221,60,0,17,216,214,221,60,0,17,216,215,221,60,0,17,216,216,221,60,0,17,216,217,221,60,0,17,216,218,221,60,0,17,216,219,221,60,0,17,216,220,221,60,0,17,216,221,221,60,0,17,216,222,221,60,0,17,216,223,221,60,0,17,216,224,221,60,0,17,216,225,221,60,0,17,216,226,221,60,0,17,216,227,221,60,0,17,216,228,221,60,0,17,216,229,221,60,0,17,216,230,221,60,0,17,216,231,221,60,0,17,216,232,221,60,0,17,216,233,221,60,0,17,216,234,221,60,0,17,216,235,221,60,0,17,216,236,221,60,0,17,216,237,221,60,0,17,216,238,221,60,0,17,216,239,221,60,0,17,216,240,221,60,0,17,216,241,221,60,0,17,216,242,221,60,0,17,216,243,221,60,0,17,216,244,221,60,0,17,216,245,221,60,0,17,216,246,221,60,0,17,216,247,221,60,0,17,216,248,221,60,0,17,216,249,221,60,0,17,216,250,221,60,0,17,216,251,221,60,0,17,216,252,221,60,0,17,216,253,221,60,0,17,216,254,221,60,0,17,216,255,221,60,0,17,216,0,222,60,0,17,216,1,222,60,0,17,216,2,222,60,0,17,216,3,222,60,0,17,216,4,222,60,0,17,216,5,222,60,0,17,216,6,222,60,0,17,216,7,222,60,0,17,216,8,222,60,0,17,216,9,222,60,0,17,216,10,222,60,0,17,216,11,222,60,0,17,216,12,222,60,0,17,216,13,222,60,0,17,216,14,222,60,0,17,216,15,222,60,0,17,216,16,222,60,0,17,216,17,222,60,0,17,216,18,222,60,0,17,216,19,222,60,0,17,216,20,222,60,0,17,216,21,222,60,0,17,216,22,222,60,0,17,216,23,222,60,0,17,216,24,222,60,0,17,216,25,222,60,0,17,216,26,222,60,0,17,216,27,222,60,0,17,216,28,222,60,0,17,216,29,222,60,0,17,216,30,222,60,0,17,216,31,222,60,0,17,216,32,222,60,0,17,216,33,222,60,0,17,216,34,222,60,0,17,216,35,222,60,0,17,216,36,222,60,0,17,216,37,222,60,0,17,216,38,222,60,0,17,216,39,222,60,0,17,216,40,222,60,0,17,216,41,222,60,0,17,216,42,222,60,0,17,216,43,222,60,0,17,216,44,222,60,0,17,216,45,222,60,0,17,216,46,222,60,0,17,216,47,222,60,0,17,216,48,222,60,0,17,216,49,222,60,0,17,216,50,222,60,0,17,216,51,222,60,0,17,216,52,222,60,0,17,216,53,222,60,0,17,216,54,222,60,0,17,216,55,222,60,0,17,216,56,222,60,0,17,216,57,222,60,0,17,216,58,222,60,0,17,216,59,222,60,0,17,216,60,222,60,0,17,216,61,222,60,0,17,216,62,222,60,0,17,216,63,222,60,0,17,216,64,222,60,0,17,216,65,222,60,0,17,216,66,222,60,0,17,216,67,222,60,0,17,216,68,222,60,0,17,216,69,222,60,0,17,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,60,0,60,0,60,0,128,50,60,0,60,0,60,0,146,49,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,130,50,60,0,60,0,60,0,148,49,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,164,50,60,0,60,0,60,0,150,49,38,0,11,78,60,0,60,0,60,0,166,50,60,0,60,0,60,0,152,49,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,44,78,60,0,60,0,60,0,166,46,38,0,45,78,60,0,60,0,60,0,165,50,60,0,60,0,60,0,151,49,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,60,0,60,0,128,46,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,60,0,60,0,60,0,154,49,60,0,60,0,132,46,38,0,90,78,60,0,60,0,60,0,131,46,38,0,91,78,60,0,60,0,60,0,130,46,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,60,0,60,0,60,0,129,50,60,0,60,0,60,0,147,49,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,60,0,60,0,60,0,159,49,38,0,187,78,60,0,60,0,60,0,133,46,38,0,228,78,60,0,255,50,47,0,140,84,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,60,0,60,0,134,46,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,60,0,60,0,135,46,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,60,0,60,0,136,46,38,0,2,82,60,0,60,0,60,0,137,46,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,61,0,56,48,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,60,0,60,0,138,46,38,0,105,83,60,0,60,0,60,0,25,47,60,0,60,0,139,46,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,60,0,60,0,129,46,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,131,50,60,0,60,0,60,0,149,49,38,0,31,87,60,0,60,0,60,0,31,47,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,60,0,60,0,60,0,125,51,47,0,99,107,38,0,41,89,60,0,60,0,60,0,157,49,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,60,0,60,0,140,46,60,0,60,0,141,46,38,0,34,92,60,0,60,0,60,0,144,46,61,0,42,47,60,0,60,0,142,46,38,0,35,92,60,0,60,0,60,0,143,46,60,0,60,0,145,46,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,243,93,60,0,60,0,60,0,146,46,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,60,0,123,51,47,0,16,98,38,0,122,94,60,0,60,0,60,0,147,46,61,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,60,0,60,0,149,46,38,0,81,95,60,0,60,0,60,0,148,46,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,60,0,60,0,151,46,38,0,196,95,60,0,60,0,60,0,150,46,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,60,0,60,0,60,0,60,216,16,222,38,0,76,98,60,0,60,0,60,0,152,46,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,53,101,60,0,60,0,60,0,153,46,38,0,135,101,60,0,60,0,60,0,66,47,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,225,101,60,0,60,0,60,0,155,46,38,0,229,101,60,0,60,0,60,0,71,47,60,0,60,0,60,0,144,50,60,0,60,0,156,46,38,0,14,102,60,0,126,51,47,0,187,108,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,60,0,124,51,47,0,140,84,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,60,0,60,0,60,0,138,50,60,0,60,0,60,0,60,216,55,222,60,0,60,0,157,46,38,0,9,103,60,0,60,0,60,0,146,50,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,60,0,60,0,60,0,127,51,47,0,15,95,26,79,62,121,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,122,107,60,0,60,0,158,46,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,17,108,60,0,60,0,60,0,160,46,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,60,0,60,0,60,0,140,50,38,0,53,108,60,0,60,0,60,0,161,46,38,0,58,108,60,0,60,0,60,0,162,46,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,60,0,60,0,60,0,139,50,38,0,108,112,60,0,60,0,60,0,163,46,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,43,114,60,0,60,0,60,0,164,46,60,0,60,0,165,46,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,60,0,60,0,167,46,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,173,114,60,0,60,0,60,0,168,46,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,139,115,60,0,60,0,169,46,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,60,0,60,0,170,46,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,60,0,60,0,171,46,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,60,0,60,0,172,46,38,0,59,121,60,0,60,0,60,0,173,46,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,60,0,60,0,174,46,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,249,124,60,0,60,0,60,0,175,46,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,159,126,60,0,60,0,60,0,176,46,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,82,127,60,0,60,0,60,0,178,46,60,0,60,0,181,46,38,0,83,127,60,0,60,0,60,0,177,46,60,0,60,0,179,46,60,0,60,0,180,46,38,0,138,127,60,0,60,0,60,0,122,47,60,0,60,0,182,46,60,0,60,0,183,46,38,0,139,127,60,0,60,0,60,0,184,46,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,2,128,60,0,60,0,60,0,185,46,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,60,0,60,0,187,46,38,0,128,128,60,0,60,0,60,0,186,46,38,0,137,128,60,0,60,0,60,0,129,47,60,0,60,0,188,46,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,60,0,60,0,189,46,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,121,130,60,0,60,0,60,0,190,46,60,0,60,0,191,46,60,0,60,0,192,46,38,0,77,134,60,0,60,0,60,0,140,47,38,0,78,134,60,0,60,0,60,0,193,46,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,100,136,60,0,60,0,60,0,194,46,38,0,126,137,60,0,60,0,60,0,145,47,38,0,127,137,60,0,60,0,60,0,196,46,38,0,128,137,60,0,60,0,60,0,195,46,38,0,139,137,60,0,60,0,60,0,146,47,38,0,193,137,60,0,60,0,60,0,197,46,38,0,210,137,60,0,60,0,60,0,198,46,61,0,147,47,60,0,60,0,199,46,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,160,139,60,0,60,0,60,0,200,46,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,29,141,60,0,60,0,60,0,201,46,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,60,0,60,0,202,46,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,102,143,60,0,60,0,60,0,203,46,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,182,143,60,0,60,0,60,0,204,46,60,0,60,0,205,46,60,0,60,0,206,46,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,60,0,60,0,207,46,38,0,73,145,60,0,60,0,60,0,163,47,38,0,77,145,60,0,60,0,60,0,60,216,59,222,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,60,0,60,0,60,0,142,50,38,0,133,148,60,0,60,0,60,0,208,46,38,0,119,149,60,0,60,0,60,0,209,46,61,0,167,47,38,0,120,149,60,0,60,0,60,0,210,46,38,0,127,149,60,0,60,0,60,0,211,46,38,0,128,149,60,0,60,0,60,0,168,47,38,0,232,149,60,0,60,0,60,0,212,46,38,0,28,150,60,0,60,0,60,0,169,47,60,0,60,0,213,46,38,0,29,150,60,0,60,0,60,0,214,46,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,60,0,60,0,215,46,38,0,81,151,60,0,60,0,60,0,173,47,38,0,82,151,60,0,60,0,60,0,216,46,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,230,151,60,0,60,0,60,0,217,46,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,117,152,60,0,60,0,60,0,218,46,38,0,168,152,60,0,60,0,60,0,181,47,38,0,206,152,60,0,60,0,60,0,219,46,38,0,219,152,60,0,60,0,60,0,182,47,38,0,222,152,60,0,60,0,60,0,220,46,38,0,223,152,60,0,60,0,60,0,221,46,61,0,183,47,38,0,224,152,60,0,60,0,60,0,223,46,60,0,60,0,222,46,38,0,99,153,60,0,60,0,60,0,224,46,38,0,150,153,60,0,60,0,60,0,184,47,60,0,60,0,225,46,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,108,154,60,0,60,0,60,0,226,46,38,0,168,154,60,0,60,0,60,0,187,47,60,0,60,0,227,46,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,60,0,60,0,228,46,38,0,90,155,60,0,60,0,60,0,194,47,38,0,124,156,60,0,60,0,60,0,229,46,38,0,229,156,60,0,60,0,60,0,195,47,38,0,31,158,60,0,60,0,60,0,230,46,38,0,117,158,60,0,60,0,60,0,196,47,60,0,60,0,231,46,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,166,158,60,0,60,0,60,0,232,46,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,196,158,60,0,60,0,60,0,233,46,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,254,158,60,0,60,0,60,0,234,46,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,60,0,60,0,235,46,38,0,80,159,60,0,60,0,60,0,236,46,38,0,82,159,60,0,60,0,60,0,210,47,60,0,60,0,237,46,38,0,127,159,60,0,60,0,60,0,238,46,38,0,141,159,60,0,60,0,60,0,211,47,60,0,60,0,239,46,38,0,153,159,60,0,60,0,60,0,240,46,38,0,156,159,60,0,60,0,60,0,212,47,60,0,60,0,241,46,60,0,60,0,242,46,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,38,0,14,250,61,0,14,250,38,0,15,250,61,0,15,250,38,0,17,250,61,0,17,250,38,0,19,250,61,0,19,250,38,0,20,250,61,0,20,250,38,0,31,250,61,0,31,250,38,0,33,250,61,0,33,250,38,0,35,250,61,0,35,250,38,0,36,250,61,0,36,250,38,0,39,250,61,0,39,250,38,0,40,250,61,0,40,250,38,0,41,250,61,0,41,250,38,0,1,14,64,14,61,0,64,14,1,14,38,0,1,14,65,14,61,0,65,14,1,14,38,0,1,14,66,14,61,0,66,14,1,14,38,0,1,14,67,14,61,0,67,14,1,14,38,0,1,14,68,14,61,0,68,14,1,14,38,0,2,14,64,14,61,0,64,14,2,14,38,0,2,14,65,14,61,0,65,14,2,14,38,0,2,14,66,14,61,0,66,14,2,14,38,0,2,14,67,14,61,0,67,14,2,14,38,0,2,14,68,14,61,0,68,14,2,14,38,0,3,14,64,14,61,0,64,14,3,14,38,0,3,14,65,14,61,0,65,14,3,14,38,0,3,14,66,14,61,0,66,14,3,14,38,0,3,14,67,14,61,0,67,14,3,14,38,0,3,14,68,14,61,0,68,14,3,14,38,0,4,14,64,14,61,0,64,14,4,14,38,0,4,14,65,14,61,0,65,14,4,14,38,0,4,14,66,14,61,0,66,14,4,14,38,0,4,14,67,14,61,0,67,14,4,14,38,0,4,14,68,14,61,0,68,14,4,14,38,0,5,14,64,14,61,0,64,14,5,14,38,0,5,14,65,14,61,0,65,14,5,14,38,0,5,14,66,14,61,0,66,14,5,14,38,0,5,14,67,14,61,0,67,14,5,14,38,0,5,14,68,14,61,0,68,14,5,14,38,0,6,14,64,14,61,0,64,14,6,14,38,0,6,14,65,14,61,0,65,14,6,14,38,0,6,14,66,14,61,0,66,14,6,14,38,0,6,14,67,14,61,0,67,14,6,14,38,0,6,14,68,14,61,0,68,14,6,14,38,0,7,14,64,14,61,0,64,14,7,14,38,0,7,14,65,14,61,0,65,14,7,14,38,0,7,14,66,14,61,0,66,14,7,14,38,0,7,14,67,14,61,0,67,14,7,14,38,0,7,14,68,14,61,0,68,14,7,14,38,0,8,14,64,14,61,0,64,14,8,14,38,0,8,14,65,14,61,0,65,14,8,14,38,0,8,14,66,14,61,0,66,14,8,14,38,0,8,14,67,14,61,0,67,14,8,14,38,0,8,14,68,14,61,0,68,14,8,14,38,0,9,14,64,14,61,0,64,14,9,14,38,0,9,14,65,14,61,0,65,14,9,14,38,0,9,14,66,14,61,0,66,14,9,14,38,0,9,14,67,14,61,0,67,14,9,14,38,0,9,14,68,14,61,0,68,14,9,14,38,0,10,14,64,14,61,0,64,14,10,14,38,0,10,14,65,14,61,0,65,14,10,14,38,0,10,14,66,14,61,0,66,14,10,14,38,0,10,14,67,14,61,0,67,14,10,14,38,0,10,14,68,14,61,0,68,14,10,14,38,0,11,14,64,14,61,0,64,14,11,14,38,0,11,14,65,14,61,0,65,14,11,14,38,0,11,14,66,14,61,0,66,14,11,14,38,0,11,14,67,14,61,0,67,14,11,14,38,0,11,14,68,14,61,0,68,14,11,14,38,0,12,14,64,14,61,0,64,14,12,14,38,0,12,14,65,14,61,0,65,14,12,14,38,0,12,14,66,14,61,0,66,14,12,14,38,0,12,14,67,14,61,0,67,14,12,14,38,0,12,14,68,14,61,0,68,14,12,14,38,0,13,14,64,14,61,0,64,14,13,14,38,0,13,14,65,14,61,0,65,14,13,14,38,0,13,14,66,14,61,0,66,14,13,14,38,0,13,14,67,14,61,0,67,14,13,14,38,0,13,14,68,14,61,0,68,14,13,14,38,0,14,14,64,14,61,0,64,14,14,14,38,0,14,14,65,14,61,0,65,14,14,14,38,0,14,14,66,14,61,0,66,14,14,14,38,0,14,14,67,14,61,0,67,14,14,14,38,0,14,14,68,14,61,0,68,14,14,14,38,0,15,14,64,14,61,0,64,14,15,14,38,0,15,14,65,14,61,0,65,14,15,14,38,0,15,14,66,14,61,0,66,14,15,14,38,0,15,14,67,14,61,0,67,14,15,14,38,0,15,14,68,14,61,0,68,14,15,14,38,0,16,14,64,14,61,0,64,14,16,14,38,0,16,14,65,14,61,0,65,14,16,14,38,0,16,14,66,14,61,0,66,14,16,14,38,0,16,14,67,14,61,0,67,14,16,14,38,0,16,14,68,14,61,0,68,14,16,14,38,0,17,14,64,14,61,0,64,14,17,14,38,0,17,14,65,14,61,0,65,14,17,14,38,0,17,14,66,14,61,0,66,14,17,14,38,0,17,14,67,14,61,0,67,14,17,14,38,0,17,14,68,14,61,0,68,14,17,14,38,0,18,14,64,14,61,0,64,14,18,14,38,0,18,14,65,14,61,0,65,14,18,14,38,0,18,14,66,14,61,0,66,14,18,14,38,0,18,14,67,14,61,0,67,14,18,14,38,0,18,14,68,14,61,0,68,14,18,14,38,0,19,14,64,14,61,0,64,14,19,14,38,0,19,14,65,14,61,0,65,14,19,14,38,0,19,14,66,14,61,0,66,14,19,14,38,0,19,14,67,14,61,0,67,14,19,14,38,0,19,14,68,14,61,0,68,14,19,14,38,0,20,14,64,14,61,0,64,14,20,14,38,0,20,14,65,14,61,0,65,14,20,14,38,0,20,14,66,14,61,0,66,14,20,14,38,0,20,14,67,14,61,0,67,14,20,14,38,0,20,14,68,14,61,0,68,14,20,14,38,0,21,14,64,14,61,0,64,14,21,14,38,0,21,14,65,14,61,0,65,14,21,14,38,0,21,14,66,14,61,0,66,14,21,14,38,0,21,14,67,14,61,0,67,14,21,14,38,0,21,14,68,14,61,0,68,14,21,14,38,0,22,14,64,14,61,0,64,14,22,14,38,0,22,14,65,14,61,0,65,14,22,14,38,0,22,14,66,14,61,0,66,14,22,14,38,0,22,14,67,14,61,0,67,14,22,14,38,0,22,14,68,14,61,0,68,14,22,14,38,0,23,14,64,14,61,0,64,14,23,14,38,0,23,14,65,14,61,0,65,14,23,14,38,0,23,14,66,14,61,0,66,14,23,14,38,0,23,14,67,14,61,0,67,14,23,14,38,0,23,14,68,14,61,0,68,14,23,14,38,0,24,14,64,14,61,0,64,14,24,14,38,0,24,14,65,14,61,0,65,14,24,14,38,0,24,14,66,14,61,0,66,14,24,14,38,0,24,14,67,14,61,0,67,14,24,14,38,0,24,14,68,14,61,0,68,14,24,14,38,0,25,14,64,14,61,0,64,14,25,14,38,0,25,14,65,14,61,0,65,14,25,14,38,0,25,14,66,14,61,0,66,14,25,14,38,0,25,14,67,14,61,0,67,14,25,14,38,0,25,14,68,14,61,0,68,14,25,14,38,0,26,14,64,14,61,0,64,14,26,14,38,0,26,14,65,14,61,0,65,14,26,14,38,0,26,14,66,14,61,0,66,14,26,14,38,0,26,14,67,14,61,0,67,14,26,14,38,0,26,14,68,14,61,0,68,14,26,14,38,0,27,14,64,14,61,0,64,14,27,14,38,0,27,14,65,14,61,0,65,14,27,14,38,0,27,14,66,14,61,0,66,14,27,14,38,0,27,14,67,14,61,0,67,14,27,14,38,0,27,14,68,14,61,0,68,14,27,14,38,0,28,14,64,14,61,0,64,14,28,14,38,0,28,14,65,14,61,0,65,14,28,14,38,0,28,14,66,14,61,0,66,14,28,14,38,0,28,14,67,14,61,0,67,14,28,14,38,0,28,14,68,14,61,0,68,14,28,14,38,0,29,14,64,14,61,0,64,14,29,14,38,0,29,14,65,14,61,0,65,14,29,14,38,0,29,14,66,14,61,0,66,14,29,14,38,0,29,14,67,14,61,0,67,14,29,14,38,0,29,14,68,14,61,0,68,14,29,14,38,0,30,14,64,14,61,0,64,14,30,14,38,0,30,14,65,14,61,0,65,14,30,14,38,0,30,14,66,14,61,0,66,14,30,14,38,0,30,14,67,14,61,0,67,14,30,14,38,0,30,14,68,14,61,0,68,14,30,14,38,0,31,14,64,14,61,0,64,14,31,14,38,0,31,14,65,14,61,0,65,14,31,14,38,0,31,14,66,14,61,0,66,14,31,14,38,0,31,14,67,14,61,0,67,14,31,14,38,0,31,14,68,14,61,0,68,14,31,14,38,0,32,14,64,14,61,0,64,14,32,14,38,0,32,14,65,14,61,0,65,14,32,14,38,0,32,14,66,14,61,0,66,14,32,14,38,0,32,14,67,14,61,0,67,14,32,14,38,0,32,14,68,14,61,0,68,14,32,14,38,0,33,14,64,14,61,0,64,14,33,14,38,0,33,14,65,14,61,0,65,14,33,14,38,0,33,14,66,14,61,0,66,14,33,14,38,0,33,14,67,14,61,0,67,14,33,14,38,0,33,14,68,14,61,0,68,14,33,14,38,0,34,14,64,14,61,0,64,14,34,14,38,0,34,14,65,14,61,0,65,14,34,14,38,0,34,14,66,14,61,0,66,14,34,14,38,0,34,14,67,14,61,0,67,14,34,14,38,0,34,14,68,14,61,0,68,14,34,14,38,0,35,14,64,14,61,0,64,14,35,14,38,0,35,14,65,14,61,0,65,14,35,14,38,0,35,14,66,14,61,0,66,14,35,14,38,0,35,14,67,14,61,0,67,14,35,14,38,0,35,14,68,14,61,0,68,14,35,14,38,0,36,14,64,14,61,0,64,14,36,14,38,0,36,14,65,14,61,0,65,14,36,14,38,0,36,14,66,14,61,0,66,14,36,14,38,0,36,14,67,14,61,0,67,14,36,14,38,0,36,14,68,14,61,0,68,14,36,14,38,0,37,14,64,14,61,0,64,14,37,14,38,0,37,14,65,14,61,0,65,14,37,14,38,0,37,14,66,14,61,0,66,14,37,14,38,0,37,14,67,14,61,0,67,14,37,14,38,0,37,14,68,14,61,0,68,14,37,14,38,0,38,14,64,14,61,0,64,14,38,14,38,0,38,14,65,14,61,0,65,14,38,14,38,0,38,14,66,14,61,0,66,14,38,14,38,0,38,14,67,14,61,0,67,14,38,14,38,0,38,14,68,14,61,0,68,14,38,14,38,0,39,14,64,14,61,0,64,14,39,14,38,0,39,14,65,14,61,0,65,14,39,14,38,0,39,14,66,14,61,0,66,14,39,14,38,0,39,14,67,14,61,0,67,14,39,14,38,0,39,14,68,14,61,0,68,14,39,14,38,0,40,14,64,14,61,0,64,14,40,14,38,0,40,14,65,14,61,0,65,14,40,14,38,0,40,14,66,14,61,0,66,14,40,14,38,0,40,14,67,14,61,0,67,14,40,14,38,0,40,14,68,14,61,0,68,14,40,14,38,0,41,14,64,14,61,0,64,14,41,14,38,0,41,14,65,14,61,0,65,14,41,14,38,0,41,14,66,14,61,0,66,14,41,14,38,0,41,14,67,14,61,0,67,14,41,14,38,0,41,14,68,14,61,0,68,14,41,14,38,0,42,14,64,14,61,0,64,14,42,14,38,0,42,14,65,14,61,0,65,14,42,14,38,0,42,14,66,14,61,0,66,14,42,14,38,0,42,14,67,14,61,0,67,14,42,14,38,0,42,14,68,14,61,0,68,14,42,14,38,0,43,14,64,14,61,0,64,14,43,14,38,0,43,14,65,14,61,0,65,14,43,14,38,0,43,14,66,14,61,0,66,14,43,14,38,0,43,14,67,14,61,0,67,14,43,14,38,0,43,14,68,14,61,0,68,14,43,14,38,0,44,14,64,14,61,0,64,14,44,14,38,0,44,14,65,14,61,0,65,14,44,14,38,0,44,14,66,14,61,0,66,14,44,14,38,0,44,14,67,14,61,0,67,14,44,14,38,0,44,14,68,14,61,0,68,14,44,14,38,0,45,14,64,14,61,0,64,14,45,14,38,0,45,14,65,14,61,0,65,14,45,14,38,0,45,14,66,14,61,0,66,14,45,14,38,0,45,14,67,14,61,0,67,14,45,14,38,0,45,14,68,14,61,0,68,14,45,14,38,0,46,14,64,14,61,0,64,14,46,14,38,0,46,14,65,14,61,0,65,14,46,14,38,0,46,14,66,14,61,0,66,14,46,14,38,0,46,14,67,14,61,0,67,14,46,14,38,0,46,14,68,14,61,0,68,14,46,14,38,0,222,14,192,14,61,0,192,14,222,14,38,0,222,14,193,14,61,0,193,14,222,14,38,0,222,14,194,14,61,0,194,14,222,14,38,0,222,14,195,14,61,0,195,14,222,14,38,0,222,14,196,14,61,0,196,14,222,14,38,0,129,14,192,14,61,0,192,14,129,14,38,0,129,14,193,14,61,0,193,14,129,14,38,0,129,14,194,14,61,0,194,14,129,14,38,0,129,14,195,14,61,0,195,14,129,14,38,0,129,14,196,14,61,0,196,14,129,14,38,0,130,14,192,14,61,0,192,14,130,14,38,0,130,14,193,14,61,0,193,14,130,14,38,0,130,14,194,14,61,0,194,14,130,14,38,0,130,14,195,14,61,0,195,14,130,14,38,0,130,14,196,14,61,0,196,14,130,14,38,0,132,14,192,14,61,0,192,14,132,14,38,0,132,14,193,14,61,0,193,14,132,14,38,0,132,14,194,14,61,0,194,14,132,14,38,0,132,14,195,14,61,0,195,14,132,14,38,0,132,14,196,14,61,0,196,14,132,14,38,0,134,14,192,14,61,0,192,14,134,14,38,0,134,14,193,14,61,0,193,14,134,14,38,0,134,14,194,14,61,0,194,14,134,14,38,0,134,14,195,14,61,0,195,14,134,14,38,0,134,14,196,14,61,0,196,14,134,14,38,0,135,14,192,14,61,0,192,14,135,14,38,0,135,14,193,14,61,0,193,14,135,14,38,0,135,14,194,14,61,0,194,14,135,14,38,0,135,14,195,14,61,0,195,14,135,14,38,0,135,14,196,14,61,0,196,14,135,14,38,0,136,14,192,14,61,0,192,14,136,14,38,0,136,14,193,14,61,0,193,14,136,14,38,0,136,14,194,14,61,0,194,14,136,14,38,0,136,14,195,14,61,0,195,14,136,14,38,0,136,14,196,14,61,0,196,14,136,14,38,0,137,14,192,14,61,0,192,14,137,14,38,0,137,14,193,14,61,0,193,14,137,14,38,0,137,14,194,14,61,0,194,14,137,14,38,0,137,14,195,14,61,0,195,14,137,14,38,0,137,14,196,14,61,0,196,14,137,14,38,0,170,14,192,14,61,0,192,14,170,14,38,0,170,14,193,14,61,0,193,14,170,14,38,0,170,14,194,14,61,0,194,14,170,14,38,0,170,14,195,14,61,0,195,14,170,14,38,0,170,14,196,14,61,0,196,14,170,14,38,0,138,14,192,14,61,0,192,14,138,14,38,0,138,14,193,14,61,0,193,14,138,14,38,0,138,14,194,14,61,0,194,14,138,14,38,0,138,14,195,14,61,0,195,14,138,14,38,0,138,14,196,14,61,0,196,14,138,14,38,0,140,14,192,14,61,0,192,14,140,14,38,0,140,14,193,14,61,0,193,14,140,14,38,0,140,14,194,14,61,0,194,14,140,14,38,0,140,14,195,14,61,0,195,14,140,14,38,0,140,14,196,14,61,0,196,14,140,14,38,0,142,14,192,14,61,0,192,14,142,14,38,0,142,14,193,14,61,0,193,14,142,14,38,0,142,14,194,14,61,0,194,14,142,14,38,0,142,14,195,14,61,0,195,14,142,14,38,0,142,14,196,14,61,0,196,14,142,14,38,0,223,14,192,14,61,0,192,14,223,14,38,0,223,14,193,14,61,0,193,14,223,14,38,0,223,14,194,14,61,0,194,14,223,14,38,0,223,14,195,14,61,0,195,14,223,14,38,0,223,14,196,14,61,0,196,14,223,14,38,0,141,14,192,14,61,0,192,14,141,14,38,0,141,14,193,14,61,0,193,14,141,14,38,0,141,14,194,14,61,0,194,14,141,14,38,0,141,14,195,14,61,0,195,14,141,14,38,0,141,14,196,14,61,0,196,14,141,14,38,0,143,14,192,14,61,0,192,14,143,14,38,0,143,14,193,14,61,0,193,14,143,14,38,0,143,14,194,14,61,0,194,14,143,14,38,0,143,14,195,14,61,0,195,14,143,14,38,0,143,14,196,14,61,0,196,14,143,14,38,0,144,14,192,14,61,0,192,14,144,14,38,0,144,14,193,14,61,0,193,14,144,14,38,0,144,14,194,14,61,0,194,14,144,14,38,0,144,14,195,14,61,0,195,14,144,14,38,0,144,14,196,14,61,0,196,14,144,14,38,0,145,14,192,14,61,0,192,14,145,14,38,0,145,14,193,14,61,0,193,14,145,14,38,0,145,14,194,14,61,0,194,14,145,14,38,0,145,14,195,14,61,0,195,14,145,14,38,0,145,14,196,14,61,0,196,14,145,14,38,0,146,14,192,14,61,0,192,14,146,14,38,0,146,14,193,14,61,0,193,14,146,14,38,0,146,14,194,14,61,0,194,14,146,14,38,0,146,14,195,14,61,0,195,14,146,14,38,0,146,14,196,14,61,0,196,14,146,14,38,0,147,14,192,14,61,0,192,14,147,14,38,0,147,14,193,14,61,0,193,14,147,14,38,0,147,14,194,14,61,0,194,14,147,14,38,0,147,14,195,14,61,0,195,14,147,14,38,0,147,14,196,14,61,0,196,14,147,14,38,0,148,14,192,14,61,0,192,14,148,14,38,0,148,14,193,14,61,0,193,14,148,14,38,0,148,14,194,14,61,0,194,14,148,14,38,0,148,14,195,14,61,0,195,14,148,14,38,0,148,14,196,14,61,0,196,14,148,14,38,0,149,14,192,14,61,0,192,14,149,14,38,0,149,14,193,14,61,0,193,14,149,14,38,0,149,14,194,14,61,0,194,14,149,14,38,0,149,14,195,14,61,0,195,14,149,14,38,0,149,14,196,14,61,0,196,14,149,14,38,0,150,14,192,14,61,0,192,14,150,14,38,0,150,14,193,14,61,0,193,14,150,14,38,0,150,14,194,14,61,0,194,14,150,14,38,0,150,14,195,14,61,0,195,14,150,14,38,0,150,14,196,14,61,0,196,14,150,14,38,0,151,14,192,14,61,0,192,14,151,14,38,0,151,14,193,14,61,0,193,14,151,14,38,0,151,14,194,14,61,0,194,14,151,14,38,0,151,14,195,14,61,0,195,14,151,14,38,0,151,14,196,14,61,0,196,14,151,14,38,0,152,14,192,14,61,0,192,14,152,14,38,0,152,14,193,14,61,0,193,14,152,14,38,0,152,14,194,14,61,0,194,14,152,14,38,0,152,14,195,14,61,0,195,14,152,14,38,0,152,14,196,14,61,0,196,14,152,14,38,0,153,14,192,14,61,0,192,14,153,14,38,0,153,14,193,14,61,0,193,14,153,14,38,0,153,14,194,14,61,0,194,14,153,14,38,0,153,14,195,14,61,0,195,14,153,14,38,0,153,14,196,14,61,0,196,14,153,14,38,0,154,14,192,14,61,0,192,14,154,14,38,0,154,14,193,14,61,0,193,14,154,14,38,0,154,14,194,14,61,0,194,14,154,14,38,0,154,14,195,14,61,0,195,14,154,14,38,0,154,14,196,14,61,0,196,14,154,14,38,0,155,14,192,14,61,0,192,14,155,14,38,0,155,14,193,14,61,0,193,14,155,14,38,0,155,14,194,14,61,0,194,14,155,14,38,0,155,14,195,14,61,0,195,14,155,14,38,0,155,14,196,14,61,0,196,14,155,14,38,0,156,14,192,14,61,0,192,14,156,14,38,0,156,14,193,14,61,0,193,14,156,14,38,0,156,14,194,14,61,0,194,14,156,14,38,0,156,14,195,14,61,0,195,14,156,14,38,0,156,14,196,14,61,0,196,14,156,14,38,0,157,14,192,14,61,0,192,14,157,14,38,0,157,14,193,14,61,0,193,14,157,14,38,0,157,14,194,14,61,0,194,14,157,14,38,0,157,14,195,14,61,0,195,14,157,14,38,0,157,14,196,14,61,0,196,14,157,14,38,0,158,14,192,14,61,0,192,14,158,14,38,0,158,14,193,14,61,0,193,14,158,14,38,0,158,14,194,14,61,0,194,14,158,14,38,0,158,14,195,14,61,0,195,14,158,14,38,0,158,14,196,14,61,0,196,14,158,14,38,0,159,14,192,14,61,0,192,14,159,14,38,0,159,14,193,14,61,0,193,14,159,14,38,0,159,14,194,14,61,0,194,14,159,14,38,0,159,14,195,14,61,0,195,14,159,14,38,0,159,14,196,14,61,0,196,14,159,14,38,0,160,14,192,14,61,0,192,14,160,14,38,0,160,14,193,14,61,0,193,14,160,14,38,0,160,14,194,14,61,0,194,14,160,14,38,0,160,14,195,14,61,0,195,14,160,14,38,0,160,14,196,14,61,0,196,14,160,14,38,0,161,14,192,14,61,0,192,14,161,14,38,0,161,14,193,14,61,0,193,14,161,14,38,0,161,14,194,14,61,0,194,14,161,14,38,0,161,14,195,14,61,0,195,14,161,14,38,0,161,14,196,14,61,0,196,14,161,14,38,0,162,14,192,14,61,0,192,14,162,14,38,0,162,14,193,14,61,0,193,14,162,14,38,0,162,14,194,14,61,0,194,14,162,14,38,0,162,14,195,14,61,0,195,14,162,14,38,0,162,14,196,14,61,0,196,14,162,14,38,0,163,14,192,14,61,0,192,14,163,14,38,0,163,14,193,14,61,0,193,14,163,14,38,0,163,14,194,14,61,0,194,14,163,14,38,0,163,14,195,14,61,0,195,14,163,14,38,0,163,14,196,14,61,0,196,14,163,14,38,0,165,14,192,14,61,0,192,14,165,14,38,0,165,14,193,14,61,0,193,14,165,14,38,0,165,14,194,14,61,0,194,14,165,14,38,0,165,14,195,14,61,0,195,14,165,14,38,0,165,14,196,14,61,0,196,14,165,14,38,0,167,14,192,14,61,0,192,14,167,14,38,0,167,14,193,14,61,0,193,14,167,14,38,0,167,14,194,14,61,0,194,14,167,14,38,0,167,14,195,14,61,0,195,14,167,14,38,0,167,14,196,14,61,0,196,14,167,14,38,0,168,14,192,14,61,0,192,14,168,14,38,0,168,14,193,14,61,0,193,14,168,14,38,0,168,14,194,14,61,0,194,14,168,14,38,0,168,14,195,14,61,0,195,14,168,14,38,0,168,14,196,14,61,0,196,14,168,14,38,0,169,14,192,14,61,0,192,14,169,14,38,0,169,14,193,14,61,0,193,14,169,14,38,0,169,14,194,14,61,0,194,14,169,14,38,0,169,14,195,14,61,0,195,14,169,14,38,0,169,14,196,14,61,0,196,14,169,14,38,0,171,14,192,14,61,0,192,14,171,14,38,0,171,14,193,14,61,0,193,14,171,14,38,0,171,14,194,14,61,0,194,14,171,14,38,0,171,14,195,14,61,0,195,14,171,14,38,0,171,14,196,14,61,0,196,14,171,14,38,0,220,14,192,14,61,0,192,14,220,14,38,0,220,14,193,14,61,0,193,14,220,14,38,0,220,14,194,14,61,0,194,14,220,14,38,0,220,14,195,14,61,0,195,14,220,14,38,0,220,14,196,14,61,0,196,14,220,14,38,0,221,14,192,14,61,0,192,14,221,14,38,0,221,14,193,14,61,0,193,14,221,14,38,0,221,14,194,14,61,0,194,14,221,14,38,0,221,14,195,14,61,0,195,14,221,14,38,0,221,14,196,14,61,0,196,14,221,14,38,0,172,14,192,14,61,0,192,14,172,14,38,0,172,14,193,14,61,0,193,14,172,14,38,0,172,14,194,14,61,0,194,14,172,14,38,0,172,14,195,14,61,0,195,14,172,14,38,0,172,14,196,14,61,0,196,14,172,14,38,0,173,14,192,14,61,0,192,14,173,14,38,0,173,14,193,14,61,0,193,14,173,14,38,0,173,14,194,14,61,0,194,14,173,14,38,0,173,14,195,14,61,0,195,14,173,14,38,0,173,14,196,14,61,0,196,14,173,14,38,0,174,14,192,14,61,0,192,14,174,14,38,0,174,14,193,14,61,0,193,14,174,14,38,0,174,14,194,14,61,0,194,14,174,14,38,0,174,14,195,14,61,0,195,14,174,14,38,0,174,14,196,14,61,0,196,14,174,14,38,0,128,170,181,170,61,0,181,170,128,170,38,0,128,170,182,170,61,0,182,170,128,170,38,0,128,170,185,170,61,0,185,170,128,170,38,0,128,170,187,170,61,0,187,170,128,170,38,0,128,170,188,170,61,0,188,170,128,170,38,0,129,170,181,170,61,0,181,170,129,170,38,0,129,170,182,170,61,0,182,170,129,170,38,0,129,170,185,170,61,0,185,170,129,170,38,0,129,170,187,170,61,0,187,170,129,170,38,0,129,170,188,170,61,0,188,170,129,170,38,0,130,170,181,170,61,0,181,170,130,170,38,0,130,170,182,170,61,0,182,170,130,170,38,0,130,170,185,170,61,0,185,170,130,170,38,0,130,170,187,170,61,0,187,170,130,170,38,0,130,170,188,170,61,0,188,170,130,170,38,0,131,170,181,170,61,0,181,170,131,170,38,0,131,170,182,170,61,0,182,170,131,170,38,0,131,170,185,170,61,0,185,170,131,170,38,0,131,170,187,170,61,0,187,170,131,170,38,0,131,170,188,170,61,0,188,170,131,170,38,0,132,170,181,170,61,0,181,170,132,170,38,0,132,170,182,170,61,0,182,170,132,170,38,0,132,170,185,170,61,0,185,170,132,170,38,0,132,170,187,170,61,0,187,170,132,170,38,0,132,170,188,170,61,0,188,170,132,170,38,0,133,170,181,170,61,0,181,170,133,170,38,0,133,170,182,170,61,0,182,170,133,170,38,0,133,170,185,170,61,0,185,170,133,170,38,0,133,170,187,170,61,0,187,170,133,170,38,0,133,170,188,170,61,0,188,170,133,170,38,0,134,170,181,170,61,0,181,170,134,170,38,0,134,170,182,170,61,0,182,170,134,170,38,0,134,170,185,170,61,0,185,170,134,170,38,0,134,170,187,170,61,0,187,170,134,170,38,0,134,170,188,170,61,0,188,170,134,170,38,0,135,170,181,170,61,0,181,170,135,170,38,0,135,170,182,170,61,0,182,170,135,170,38,0,135,170,185,170,61,0,185,170,135,170,38,0,135,170,187,170,61,0,187,170,135,170,38,0,135,170,188,170,61,0,188,170,135,170,38,0,136,170,181,170,61,0,181,170,136,170,38,0,136,170,182,170,61,0,182,170,136,170,38,0,136,170,185,170,61,0,185,170,136,170,38,0,136,170,187,170,61,0,187,170,136,170,38,0,136,170,188,170,61,0,188,170,136,170,38,0,137,170,181,170,61,0,181,170,137,170,38,0,137,170,182,170,61,0,182,170,137,170,38,0,137,170,185,170,61,0,185,170,137,170,38,0,137,170,187,170,61,0,187,170,137,170,38,0,137,170,188,170,61,0,188,170,137,170,38,0,138,170,181,170,61,0,181,170,138,170,38,0,138,170,182,170,61,0,182,170,138,170,38,0,138,170,185,170,61,0,185,170,138,170,38,0,138,170,187,170,61,0,187,170,138,170,38,0,138,170,188,170,61,0,188,170,138,170,38,0,139,170,181,170,61,0,181,170,139,170,38,0,139,170,182,170,61,0,182,170,139,170,38,0,139,170,185,170,61,0,185,170,139,170,38,0,139,170,187,170,61,0,187,170,139,170,38,0,139,170,188,170,61,0,188,170,139,170,38,0,140,170,181,170,61,0,181,170,140,170,38,0,140,170,182,170,61,0,182,170,140,170,38,0,140,170,185,170,61,0,185,170,140,170,38,0,140,170,187,170,61,0,187,170,140,170,38,0,140,170,188,170,61,0,188,170,140,170,38,0,141,170,181,170,61,0,181,170,141,170,38,0,141,170,182,170,61,0,182,170,141,170,38,0,141,170,185,170,61,0,185,170,141,170,38,0,141,170,187,170,61,0,187,170,141,170,38,0,141,170,188,170,61,0,188,170,141,170,38,0,142,170,181,170,61,0,181,170,142,170,38,0,142,170,182,170,61,0,182,170,142,170,38,0,142,170,185,170,61,0,185,170,142,170,38,0,142,170,187,170,61,0,187,170,142,170,38,0,142,170,188,170,61,0,188,170,142,170,38,0,143,170,181,170,61,0,181,170,143,170,38,0,143,170,182,170,61,0,182,170,143,170,38,0,143,170,185,170,61,0,185,170,143,170,38,0,143,170,187,170,61,0,187,170,143,170,38,0,143,170,188,170,61,0,188,170,143,170,38,0,144,170,181,170,61,0,181,170,144,170,38,0,144,170,182,170,61,0,182,170,144,170,38,0,144,170,185,170,61,0,185,170,144,170,38,0,144,170,187,170,61,0,187,170,144,170,38,0,144,170,188,170,61,0,188,170,144,170,38,0,145,170,181,170,61,0,181,170,145,170,38,0,145,170,182,170,61,0,182,170,145,170,38,0,145,170,185,170,61,0,185,170,145,170,38,0,145,170,187,170,61,0,187,170,145,170,38,0,145,170,188,170,61,0,188,170,145,170,38,0,146,170,181,170,61,0,181,170,146,170,38,0,146,170,182,170,61,0,182,170,146,170,38,0,146,170,185,170,61,0,185,170,146,170,38,0,146,170,187,170,61,0,187,170,146,170,38,0,146,170,188,170,61,0,188,170,146,170,38,0,147,170,181,170,61,0,181,170,147,170,38,0,147,170,182,170,61,0,182,170,147,170,38,0,147,170,185,170,61,0,185,170,147,170,38,0,147,170,187,170,61,0,187,170,147,170,38,0,147,170,188,170,61,0,188,170,147,170,38,0,148,170,181,170,61,0,181,170,148,170,38,0,148,170,182,170,61,0,182,170,148,170,38,0,148,170,185,170,61,0,185,170,148,170,38,0,148,170,187,170,61,0,187,170,148,170,38,0,148,170,188,170,61,0,188,170,148,170,38,0,149,170,181,170,61,0,181,170,149,170,38,0,149,170,182,170,61,0,182,170,149,170,38,0,149,170,185,170,61,0,185,170,149,170,38,0,149,170,187,170,61,0,187,170,149,170,38,0,149,170,188,170,61,0,188,170,149,170,38,0,150,170,181,170,61,0,181,170,150,170,38,0,150,170,182,170,61,0,182,170,150,170,38,0,150,170,185,170,61,0,185,170,150,170,38,0,150,170,187,170,61,0,187,170,150,170,38,0,150,170,188,170,61,0,188,170,150,170,38,0,151,170,181,170,61,0,181,170,151,170,38,0,151,170,182,170,61,0,182,170,151,170,38,0,151,170,185,170,61,0,185,170,151,170,38,0,151,170,187,170,61,0,187,170,151,170,38,0,151,170,188,170,61,0,188,170,151,170,38,0,152,170,181,170,61,0,181,170,152,170,38,0,152,170,182,170,61,0,182,170,152,170,38,0,152,170,185,170,61,0,185,170,152,170,38,0,152,170,187,170,61,0,187,170,152,170,38,0,152,170,188,170,61,0,188,170,152,170,38,0,153,170,181,170,61,0,181,170,153,170,38,0,153,170,182,170,61,0,182,170,153,170,38,0,153,170,185,170,61,0,185,170,153,170,38,0,153,170,187,170,61,0,187,170,153,170,38,0,153,170,188,170,61,0,188,170,153,170,38,0,154,170,181,170,61,0,181,170,154,170,38,0,154,170,182,170,61,0,182,170,154,170,38,0,154,170,185,170,61,0,185,170,154,170,38,0,154,170,187,170,61,0,187,170,154,170,38,0,154,170,188,170,61,0,188,170,154,170,38,0,155,170,181,170,61,0,181,170,155,170,38,0,155,170,182,170,61,0,182,170,155,170,38,0,155,170,185,170,61,0,185,170,155,170,38,0,155,170,187,170,61,0,187,170,155,170,38,0,155,170,188,170,61,0,188,170,155,170,38,0,156,170,181,170,61,0,181,170,156,170,38,0,156,170,182,170,61,0,182,170,156,170,38,0,156,170,185,170,61,0,185,170,156,170,38,0,156,170,187,170,61,0,187,170,156,170,38,0,156,170,188,170,61,0,188,170,156,170,38,0,157,170,181,170,61,0,181,170,157,170,38,0,157,170,182,170,61,0,182,170,157,170,38,0,157,170,185,170,61,0,185,170,157,170,38,0,157,170,187,170,61,0,187,170,157,170,38,0,157,170,188,170,61,0,188,170,157,170,38,0,158,170,181,170,61,0,181,170,158,170,38,0,158,170,182,170,61,0,182,170,158,170,38,0,158,170,185,170,61,0,185,170,158,170,38,0,158,170,187,170,61,0,187,170,158,170,38,0,158,170,188,170,61,0,188,170,158,170,38,0,159,170,181,170,61,0,181,170,159,170,38,0,159,170,182,170,61,0,182,170,159,170,38,0,159,170,185,170,61,0,185,170,159,170,38,0,159,170,187,170,61,0,187,170,159,170,38,0,159,170,188,170,61,0,188,170,159,170,38,0,160,170,181,170,61,0,181,170,160,170,38,0,160,170,182,170,61,0,182,170,160,170,38,0,160,170,185,170,61,0,185,170,160,170,38,0,160,170,187,170,61,0,187,170,160,170,38,0,160,170,188,170,61,0,188,170,160,170,38,0,161,170,181,170,61,0,181,170,161,170,38,0,161,170,182,170,61,0,182,170,161,170,38,0,161,170,185,170,61,0,185,170,161,170,38,0,161,170,187,170,61,0,187,170,161,170,38,0,161,170,188,170,61,0,188,170,161,170,38,0,162,170,181,170,61,0,181,170,162,170,38,0,162,170,182,170,61,0,182,170,162,170,38,0,162,170,185,170,61,0,185,170,162,170,38,0,162,170,187,170,61,0,187,170,162,170,38,0,162,170,188,170,61,0,188,170,162,170,38,0,163,170,181,170,61,0,181,170,163,170,38,0,163,170,182,170,61,0,182,170,163,170,38,0,163,170,185,170,61,0,185,170,163,170,38,0,163,170,187,170,61,0,187,170,163,170,38,0,163,170,188,170,61,0,188,170,163,170,38,0,164,170,181,170,61,0,181,170,164,170,38,0,164,170,182,170,61,0,182,170,164,170,38,0,164,170,185,170,61,0,185,170,164,170,38,0,164,170,187,170,61,0,187,170,164,170,38,0,164,170,188,170,61,0,188,170,164,170,38,0,165,170,181,170,61,0,181,170,165,170,38,0,165,170,182,170,61,0,182,170,165,170,38,0,165,170,185,170,61,0,185,170,165,170,38,0,165,170,187,170,61,0,187,170,165,170,38,0,165,170,188,170,61,0,188,170,165,170,38,0,166,170,181,170,61,0,181,170,166,170,38,0,166,170,182,170,61,0,182,170,166,170,38,0,166,170,185,170,61,0,185,170,166,170,38,0,166,170,187,170,61,0,187,170,166,170,38,0,166,170,188,170,61,0,188,170,166,170,38,0,167,170,181,170,61,0,181,170,167,170,38,0,167,170,182,170,61,0,182,170,167,170,38,0,167,170,185,170,61,0,185,170,167,170,38,0,167,170,187,170,61,0,187,170,167,170,38,0,167,170,188,170,61,0,188,170,167,170,38,0,168,170,181,170,61,0,181,170,168,170,38,0,168,170,182,170,61,0,182,170,168,170,38,0,168,170,185,170,61,0,185,170,168,170,38,0,168,170,187,170,61,0,187,170,168,170,38,0,168,170,188,170,61,0,188,170,168,170,38,0,169,170,181,170,61,0,181,170,169,170,38,0,169,170,182,170,61,0,182,170,169,170,38,0,169,170,185,170,61,0,185,170,169,170,38,0,169,170,187,170,61,0,187,170,169,170,38,0,169,170,188,170,61,0,188,170,169,170,38,0,170,170,181,170,61,0,181,170,170,170,38,0,170,170,182,170,61,0,182,170,170,170,38,0,170,170,185,170,61,0,185,170,170,170,38,0,170,170,187,170,61,0,187,170,170,170,38,0,170,170,188,170,61,0,188,170,170,170,38,0,171,170,181,170,61,0,181,170,171,170,38,0,171,170,182,170,61,0,182,170,171,170,38,0,171,170,185,170,61,0,185,170,171,170,38,0,171,170,187,170,61,0,187,170,171,170,38,0,171,170,188,170,61,0,188,170,171,170,38,0,172,170,181,170,61,0,181,170,172,170,38,0,172,170,182,170,61,0,182,170,172,170,38,0,172,170,185,170,61,0,185,170,172,170,38,0,172,170,187,170,61,0,187,170,172,170,38,0,172,170,188,170,61,0,188,170,172,170,38,0,173,170,181,170,61,0,181,170,173,170,38,0,173,170,182,170,61,0,182,170,173,170,38,0,173,170,185,170,61,0,185,170,173,170,38,0,173,170,187,170,61,0,187,170,173,170,38,0,173,170,188,170,61,0,188,170,173,170,38,0,174,170,181,170,61,0,181,170,174,170,38,0,174,170,182,170,61,0,182,170,174,170,38,0,174,170,185,170,61,0,185,170,174,170,38,0,174,170,187,170,61,0,187,170,174,170,38,0,174,170,188,170,61,0,188,170,174,170,38,0,175,170,181,170,61,0,181,170,175,170,38,0,175,170,182,170,61,0,182,170,175,170,38,0,175,170,185,170,61,0,185,170,175,170,38,0,175,170,187,170,61,0,187,170,175,170,38,0,175,170,188,170,61,0,188,170,175,170,38,0,128,25,181,25,61,0,181,25,128,25,38,0,128,25,182,25,61,0,182,25,128,25,38,0,128,25,183,25,61,0,183,25,128,25,38,0,128,25,186,25,61,0,186,25,128,25,38,0,129,25,181,25,61,0,181,25,129,25,38,0,129,25,182,25,61,0,182,25,129,25,38,0,129,25,183,25,61,0,183,25,129,25,38,0,129,25,186,25,61,0,186,25,129,25,38,0,130,25,181,25,61,0,181,25,130,25,38,0,130,25,182,25,61,0,182,25,130,25,38,0,130,25,183,25,61,0,183,25,130,25,38,0,130,25,186,25,61,0,186,25,130,25,38,0,131,25,181,25,61,0,181,25,131,25,38,0,131,25,182,25,61,0,182,25,131,25,38,0,131,25,183,25,61,0,183,25,131,25,38,0,131,25,186,25,61,0,186,25,131,25,38,0,132,25,181,25,61,0,181,25,132,25,38,0,132,25,182,25,61,0,182,25,132,25,38,0,132,25,183,25,61,0,183,25,132,25,38,0,132,25,186,25,61,0,186,25,132,25,38,0,133,25,181,25,61,0,181,25,133,25,38,0,133,25,182,25,61,0,182,25,133,25,38,0,133,25,183,25,61,0,183,25,133,25,38,0,133,25,186,25,61,0,186,25,133,25,38,0,134,25,181,25,61,0,181,25,134,25,38,0,134,25,182,25,61,0,182,25,134,25,38,0,134,25,183,25,61,0,183,25,134,25,38,0,134,25,186,25,61,0,186,25,134,25,38,0,135,25,181,25,61,0,181,25,135,25,38,0,135,25,182,25,61,0,182,25,135,25,38,0,135,25,183,25,61,0,183,25,135,25,38,0,135,25,186,25,61,0,186,25,135,25,38,0,136,25,181,25,61,0,181,25,136,25,38,0,136,25,182,25,61,0,182,25,136,25,38,0,136,25,183,25,61,0,183,25,136,25,38,0,136,25,186,25,61,0,186,25,136,25,38,0,137,25,181,25,61,0,181,25,137,25,38,0,137,25,182,25,61,0,182,25,137,25,38,0,137,25,183,25,61,0,183,25,137,25,38,0,137,25,186,25,61,0,186,25,137,25,38,0,138,25,181,25,61,0,181,25,138,25,38,0,138,25,182,25,61,0,182,25,138,25,38,0,138,25,183,25,61,0,183,25,138,25,38,0,138,25,186,25,61,0,186,25,138,25,38,0,139,25,181,25,61,0,181,25,139,25,38,0,139,25,182,25,61,0,182,25,139,25,38,0,139,25,183,25,61,0,183,25,139,25,38,0,139,25,186,25,61,0,186,25,139,25,38,0,140,25,181,25,61,0,181,25,140,25,38,0,140,25,182,25,61,0,182,25,140,25,38,0,140,25,183,25,61,0,183,25,140,25,38,0,140,25,186,25,61,0,186,25,140,25,38,0,141,25,181,25,61,0,181,25,141,25,38,0,141,25,182,25,61,0,182,25,141,25,38,0,141,25,183,25,61,0,183,25,141,25,38,0,141,25,186,25,61,0,186,25,141,25,38,0,142,25,181,25,61,0,181,25,142,25,38,0,142,25,182,25,61,0,182,25,142,25,38,0,142,25,183,25,61,0,183,25,142,25,38,0,142,25,186,25,61,0,186,25,142,25,38,0,143,25,181,25,61,0,181,25,143,25,38,0,143,25,182,25,61,0,182,25,143,25,38,0,143,25,183,25,61,0,183,25,143,25,38,0,143,25,186,25,61,0,186,25,143,25,38,0,144,25,181,25,61,0,181,25,144,25,38,0,144,25,182,25,61,0,182,25,144,25,38,0,144,25,183,25,61,0,183,25,144,25,38,0,144,25,186,25,61,0,186,25,144,25,38,0,145,25,181,25,61,0,181,25,145,25,38,0,145,25,182,25,61,0,182,25,145,25,38,0,145,25,183,25,61,0,183,25,145,25,38,0,145,25,186,25,61,0,186,25,145,25,38,0,146,25,181,25,61,0,181,25,146,25,38,0,146,25,182,25,61,0,182,25,146,25,38,0,146,25,183,25,61,0,183,25,146,25,38,0,146,25,186,25,61,0,186,25,146,25,38,0,147,25,181,25,61,0,181,25,147,25,38,0,147,25,182,25,61,0,182,25,147,25,38,0,147,25,183,25,61,0,183,25,147,25,38,0,147,25,186,25,61,0,186,25,147,25,38,0,148,25,181,25,61,0,181,25,148,25,38,0,148,25,182,25,61,0,182,25,148,25,38,0,148,25,183,25,61,0,183,25,148,25,38,0,148,25,186,25,61,0,186,25,148,25,38,0,149,25,181,25,61,0,181,25,149,25,38,0,149,25,182,25,61,0,182,25,149,25,38,0,149,25,183,25,61,0,183,25,149,25,38,0,149,25,186,25,61,0,186,25,149,25,38,0,150,25,181,25,61,0,181,25,150,25,38,0,150,25,182,25,61,0,182,25,150,25,38,0,150,25,183,25,61,0,183,25,150,25,38,0,150,25,186,25,61,0,186,25,150,25,38,0,151,25,181,25,61,0,181,25,151,25,38,0,151,25,182,25,61,0,182,25,151,25,38,0,151,25,183,25,61,0,183,25,151,25,38,0,151,25,186,25,61,0,186,25,151,25,38,0,152,25,181,25,61,0,181,25,152,25,38,0,152,25,182,25,61,0,182,25,152,25,38,0,152,25,183,25,61,0,183,25,152,25,38,0,152,25,186,25,61,0,186,25,152,25,38,0,153,25,181,25,61,0,181,25,153,25,38,0,153,25,182,25,61,0,182,25,153,25,38,0,153,25,183,25,61,0,183,25,153,25,38,0,153,25,186,25,61,0,186,25,153,25,38,0,154,25,181,25,61,0,181,25,154,25,38,0,154,25,182,25,61,0,182,25,154,25,38,0,154,25,183,25,61,0,183,25,154,25,38,0,154,25,186,25,61,0,186,25,154,25,38,0,155,25,181,25,61,0,181,25,155,25,38,0,155,25,182,25,61,0,182,25,155,25,38,0,155,25,183,25,61,0,183,25,155,25,38,0,155,25,186,25,61,0,186,25,155,25,38,0,156,25,181,25,61,0,181,25,156,25,38,0,156,25,182,25,61,0,182,25,156,25,38,0,156,25,183,25,61,0,183,25,156,25,38,0,156,25,186,25,61,0,186,25,156,25,38,0,157,25,181,25,61,0,181,25,157,25,38,0,157,25,182,25,61,0,182,25,157,25,38,0,157,25,183,25,61,0,183,25,157,25,38,0,157,25,186,25,61,0,186,25,157,25,38,0,158,25,181,25,61,0,181,25,158,25,38,0,158,25,182,25,61,0,182,25,158,25,38,0,158,25,183,25,61,0,183,25,158,25,38,0,158,25,186,25,61,0,186,25,158,25,38,0,159,25,181,25,61,0,181,25,159,25,38,0,159,25,182,25,61,0,182,25,159,25,38,0,159,25,183,25,61,0,183,25,159,25,38,0,159,25,186,25,61,0,186,25,159,25,38,0,160,25,181,25,61,0,181,25,160,25,38,0,160,25,182,25,61,0,182,25,160,25,38,0,160,25,183,25,61,0,183,25,160,25,38,0,160,25,186,25,61,0,186,25,160,25,38,0,161,25,181,25,61,0,181,25,161,25,38,0,161,25,182,25,61,0,182,25,161,25,38,0,161,25,183,25,61,0,183,25,161,25,38,0,161,25,186,25,61,0,186,25,161,25,38,0,162,25,181,25,61,0,181,25,162,25,38,0,162,25,182,25,61,0,182,25,162,25,38,0,162,25,183,25,61,0,183,25,162,25,38,0,162,25,186,25,61,0,186,25,162,25,38,0,163,25,181,25,61,0,181,25,163,25,38,0,163,25,182,25,61,0,182,25,163,25,38,0,163,25,183,25,61,0,183,25,163,25,38,0,163,25,186,25,61,0,186,25,163,25,38,0,164,25,181,25,61,0,181,25,164,25,38,0,164,25,182,25,61,0,182,25,164,25,38,0,164,25,183,25,61,0,183,25,164,25,38,0,164,25,186,25,61,0,186,25,164,25,38,0,165,25,181,25,61,0,181,25,165,25,38,0,165,25,182,25,61,0,182,25,165,25,38,0,165,25,183,25,61,0,183,25,165,25,38,0,165,25,186,25,61,0,186,25,165,25,38,0,166,25,181,25,61,0,181,25,166,25,38,0,166,25,182,25,61,0,182,25,166,25,38,0,166,25,183,25,61,0,183,25,166,25,38,0,166,25,186,25,61,0,186,25,166,25,38,0,167,25,181,25,61,0,181,25,167,25,38,0,167,25,182,25,61,0,182,25,167,25,38,0,167,25,183,25,61,0,183,25,167,25,38,0,167,25,186,25,61,0,186,25,167,25,38,0,168,25,181,25,61,0,181,25,168,25,38,0,168,25,182,25,61,0,182,25,168,25,38,0,168,25,183,25,61,0,183,25,168,25,38,0,168,25,186,25,61,0,186,25,168,25,38,0,169,25,181,25,61,0,181,25,169,25,38,0,169,25,182,25,61,0,182,25,169,25,38,0,169,25,183,25,61,0,183,25,169,25,38,0,169,25,186,25,61,0,186,25,169,25,38,0,170,25,181,25,61,0,181,25,170,25,38,0,170,25,182,25,61,0,182,25,170,25,38,0,170,25,183,25,61,0,183,25,170,25,38,0,170,25,186,25,61,0,186,25,170,25,38,0,171,25,181,25,61,0,181,25,171,25,38,0,171,25,182,25,61,0,182,25,171,25,38,0,171,25,183,25,61,0,183,25,171,25,38,0,171,25,186,25,61,0,186,25,171,25,0,0,1,0,13,0,2,0,74,0,41,0,234,1,1,0,170,170,170,170,170,170,26,139,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,64,0,0,164,64,0,0,28,91,0,0,28,91,0,0,104,91,0,0,104,91,0,0,174,133,0,0,18,135,0,0,254,138,0,0,50,105,114,84,1,0,224,8,233,2,64,0,192,0,64,0,0,0,8,0,16,0,24,0,54,0,62,0,70,0,78,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,95,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,48,0,48,0,118,0,125,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,0,136,0,48,0,48,0,48,0,48,0,141,0,147,0,48,0,48,0,48,0,48,0,48,0,48,0,155,0,48,0,48,0,48,0,48,0,48,0,48,0,161,0,169,0,171,0,179,0,187,0,195,0,203,0,211,0,219,0,227,0,233,0,241,0,249,0,0,1,8,1,11,1,19,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,27,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,34,1,48,0,42,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,216,2,94,0,48,0,48,0,86,0,224,2,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,86,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,216,0,24,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,96,8,160,8,63,1,48,0,48,0,48,0,48,0,48,0,68,1,48,0,48,0,48,0,48,0,72,1,80,1,48,0,48,0,87,1,95,1,102,1,109,1,48,0,48,0,48,0,48,0,48,0,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,20,2,27,2,35,2,43,2,51,2,59,2,67,2,48,0,75,2,83,2,91,2,99,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,107,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,2,120,2,128,2,136,2,144,2,152,2,160,2,168,2,48,0,48,0,48,0,176,2,184,2,192,2,200,2,208,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,201,0,0,0,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,201,96,1,0,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,232,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,233,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,205,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,206,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,234,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,5,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,133,130,13,193,132,130,13,193,131,130,13,193,125,130,13,193,127,130,13,193,129,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,134,130,13,193,135,130,13,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,184,128,13,193,182,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,179,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,188,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,175,130,13,193,179,130,13,193,182,130,13,193,184,130,13,193,176,130,13,193,180,130,13,193,177,130,13,193,185,128,13,193,186,128,13,193,187,128,13,193,183,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,185,130,13,193,186,130,13,193,187,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,55,131,13,193,56,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,174,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,178,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,52,131,13,193,51,131,13,193,54,131,13,193,53,131,13,192,0,0,0,193,226,128,13,193,234,128,13,193,249,128,13,193,254,128,13,193,2,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,169,129,13,192,0,0,0,192,0,0,0,193,222,130,13,192,0,0,0,192,0,0,0,193,250,128,13,193,17,128,13,192,0,0,0,192,0,0,0,193,155,127,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,189,125,13,192,0,0,0,192,0,0,0,193,104,125,13,192,0,0,0,193,122,130,13,193,123,130,13,192,0,0,0,192,0,0,0,193,152,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,153,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,154,130,13,193,150,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,149,130,13,193,75,125,13,193,17,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,196,130,13,192,0,0,0,193,197,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,158,130,13,193,159,130,13,193,160,130,13,193,161,130,13,193,162,130,13,193,163,130,13,193,164,130,13,193,165,130,13,193,166,130,13,193,167,130,13,193,168,130,13,193,169,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,80,129,13,193,76,129,13,192,0,0,0,192,0,0,0,193,79,129,13,192,0,0,0,193,77,129,13,193,78,129,13,192,0,0,0,193,101,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,215,130,13,192,0,0,0,192,0,0,0,193,204,130,13,193,101,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,28,130,13,193,158,128,13,193,31,130,13,193,214,130,13,193,42,130,13,193,50,130,13,192,0,0,0,193,40,130,13,192,0,0,0,193,146,130,13,193,216,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,111,130,13,193,252,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,198,130,13,192,0,0,0,192,0,0,0,193,41,131,13,193,40,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,90,130,13,193,92,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,33,129,13,193,34,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,255,128,13,193,235,128,13,192,0,0,0,192,0,0,0,193,236,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,170,130,13,193,27,130,13,192,0,0,0,193,133,129,13,192,0,0,0,193,45,130,13,193,113,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,89,128,13,193,85,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,50,128,13,193,251,128,13,193,91,128,13,193,52,129,13,193,164,128,13,193,160,128,13,192,0,0,0,193,172,126,13,193,53,129,13,201,128,16,0,193,92,128,13,192,0,0,0,192,0,0,0,193,151,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,15,130,13,192,0,0,0,192,0,0,0,193,221,130,13,192,0,0,0,192,0,0,0,193,167,128,13,193,230,129,13,193,193,125,13,193,167,125,13,193,178,125,13,193,204,125,13,192,0,0,0,193,243,129,13,192,0,0,0,192,0,0,0,193,244,129,13,192,0,0,0,193,223,130,13,192,0,0,0,193,199,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,151,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,148,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,11,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,229,130,13,193,230,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,253,128,13,192,0,0,0,192,0,0,0,193,231,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,224,130,13,192,0,0,0,193,225,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,207,130,13,193,208,130,13,193,209,130,13,192,0,0,0,193,210,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,134,125,13,201,96,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,200,130,13,193,201,130,13,193,202,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,226,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,227,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,136,130,13,193,137,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,130,130,13,193,124,130,13,193,128,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,49,131,13,193,50,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,230,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,220,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,211,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,228,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,29,131,13,192,0,0,0,193,30,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,82,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,81,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,1,0,198,129,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,1,0,198,193,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,1,0,192,0,0,0,192,0,0,0,198,1,2,0,198,33,2,0,198,65,2,0,198,97,2,0,198,129,2,0,198,161,2,0,198,193,2,0,198,225,2,0,198,1,3,0,198,33,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,75,131,13,193,76,131,13,193,77,131,13,193,78,131,13,193,79,131,13,193,80,131,13,193,81,131,13,193,82,131,13,193,83,131,13,193,84,131,13,193,85,131,13,193,86,131,13,193,87,131,13,193,88,131,13,193,89,131,13,193,90,131,13,193,91,131,13,193,92,131,13,193,93,131,13,193,94,131,13,193,95,131,13,193,96,131,13,193,97,131,13,193,98,131,13,193,99,131,13,193,100,131,13,192,0,0,0,193,16,131,13,193,17,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,23,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,20,131,13,192,0,0,0,192,0,0,0,193,24,131,13,193,28,131,13,193,27,131,13,193,32,131,13,193,19,131,13,193,18,131,13,193,26,131,13,193,22,131,13,193,31,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,21,131,13,193,25,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,246,128,13,193,93,128,13,193,248,128,13,193,94,128,13,193,96,128,13,193,97,128,13,193,98,128,13,193,99,128,13,193,247,128,13,193,100,128,13,193,5,129,13,193,51,128,13,193,233,128,13,193,42,128,13,193,43,128,13,193,44,128,13,193,45,128,13,193,213,128,13,193,214,128,13,193,215,128,13,193,216,128,13,193,217,128,13,193,218,128,13,193,219,128,13,193,220,128,13,193,221,128,13,193,222,128,13,193,223,128,13,193,224,128,13,193,227,128,13,193,228,128,13,193,231,128,13,193,232,128,13,193,225,128,13,192,0,0,0,192,0,0,0,193,237,128,13,193,238,128,13,193,239,128,13,193,240,128,13,193,241,128,13,193,242,128,13,193,243,128,13,193,244,128,13,193,245,128,13,193,215,127,13,193,217,127,13,193,218,127,13,193,196,127,13,193,147,127,13,193,149,127,13,193,150,127,13,193,151,127,13,193,152,127,13,193,187,127,13,193,145,127,13,193,136,127,13,193,140,127,13,193,142,127,13,193,143,127,13,193,144,127,13,193,186,127,13,193,153,127,13,193,154,127,13,193,156,127,13,193,157,127,13,193,158,127,13,193,159,127,13,193,162,127,13,193,179,127,13,193,183,127,13,193,163,127,13,193,164,127,13,193,165,127,13,193,166,127,13,193,167,127,13,193,168,127,13,193,169,127,13,193,171,127,13,193,172,127,13,193,173,127,13,193,174,127,13,193,175,127,13,193,176,127,13,193,212,127,13,193,214,127,13,193,208,127,13,193,209,127,13,193,234,127,13,193,235,127,13,193,236,127,13,193,237,127,13,193,238,127,13,193,239,127,13,193,199,127,13,193,213,127,13,193,240,127,13,193,246,127,13,193,241,127,13,193,242,127,13,193,243,127,13,193,244,127,13,193,255,127,13,193,2,128,13,193,3,128,13,193,4,128,13,193,5,128,13,193,10,128,13,193,11,128,13,193,12,128,13,193,13,128,13,193,14,128,13,193,7,128,13,193,233,127,13,193,225,127,13,193,223,127,13,193,37,128,13,193,19,128,13,193,20,128,13,193,22,128,13,193,23,128,13,193,24,128,13,193,25,128,13,193,26,128,13,193,15,128,13,193,36,128,13,193,21,128,13,193,229,127,13,193,22,129,13,193,23,129,13,193,6,128,13,193,6,129,13,193,7,129,13,193,100,126,13,193,8,129,13,193,9,129,13,193,12,129,13,193,13,129,13,193,14,129,13,193,15,129,13,193,69,131,13,193,16,129,13,193,17,129,13,193,18,129,13,193,19,129,13,193,20,129,13,193,116,129,13,193,130,129,13,192,0,0,0,192,0,0,0,193,27,129,13,193,24,129,13,192,0,0,0,193,150,129,13,193,151,129,13,193,152,129,13,192,0,0,0,192,0,0,0,193,188,129,13,193,25,129,13,193,102,128,13,193,104,128,13,193,105,128,13,193,54,129,13,193,153,129,13,193,187,129,13,193,189,130,13,193,154,129,13,193,86,129,13,193,129,129,13,193,107,128,13,193,26,129,13,193,190,129,13,193,84,129,13,193,67,129,13,193,60,129,13,193,69,129,13,193,64,129,13,193,70,129,13,193,42,129,13,193,83,129,13,193,148,129,13,193,149,129,13,193,156,129,13,193,158,129,13,193,159,129,13,193,160,129,13,193,161,129,13,193,147,129,13,193,56,129,13,193,40,129,13,193,57,129,13,193,36,129,13,193,67,131,13,193,173,126,13,201,224,27,0,201,96,36,0,193,29,129,13,193,28,129,13,193,171,126,13,193,38,129,13,193,39,129,13,201,224,44,0,201,96,53,0,201,96,62,0,193,138,128,13,193,137,128,13,193,43,129,13,193,37,129,13,193,44,129,13,193,45,129,13,193,47,129,13,193,49,128,13,193,53,128,13,193,54,128,13,193,60,128,13,193,65,128,13,193,95,128,13,193,66,128,13,193,59,128,13,193,55,128,13,193,56,128,13,193,57,128,13,193,58,128,13,193,67,128,13,193,68,128,13,193,69,128,13,193,70,128,13,193,71,128,13,193,72,128,13,193,73,128,13,193,98,130,13,193,74,128,13,193,75,128,13,193,76,128,13,193,77,128,13,193,78,128,13,193,79,128,13,193,201,129,13,193,80,128,13,193,81,128,13,192,0,0,0,192,0,0,0,201,96,71,0,201,128,73,0,193,139,127,13,192,0,0,0,193,219,129,13,193,48,129,13,193,34,130,13,193,41,128,13,194,5,224,251,5,252,0,0,5,253,0,0,5,254,0,0,5,255,0,0,193,59,127,13,193,58,127,13,193,39,127,13,193,40,127,13,193,41,127,13,193,28,127,13,193,29,127,13,193,62,127,13,201,128,79,0,193,104,127,13,193,99,127,13,193,108,127,13,193,119,127,13,193,102,127,13,193,33,127,13,193,46,127,13,193,48,127,13,193,47,127,13,193,12,127,13,193,79,127,13,193,78,127,13,201,96,80,0,193,43,127,13,193,44,127,13,193,53,127,13,193,115,127,13,193,116,127,13,193,121,127,13,193,122,127,13,193,123,127,13,193,125,127,13,193,111,127,13,193,112,127,13,193,113,127,13,193,100,127,13,193,80,127,13,193,81,127,13,193,82,127,13,201,96,81,0,193,84,127,13,193,69,127,13,193,19,127,13,193,49,127,13,193,50,127,13,193,109,127,13,193,57,127,13,193,38,127,13,193,27,127,13,193,61,127,13,193,23,127,13,193,103,127,13,193,107,127,13,193,30,127,13,193,11,127,13,193,15,127,13,193,42,127,13,193,98,127,13,193,60,127,13,193,20,127,13,201,64,82,0,193,70,127,13,193,45,127,13,193,76,127,13,193,63,127,13,193,220,125,13,201,32,83,0,193,212,125,13,193,214,125,13,193,223,125,13,193,222,125,13,193,186,125,13,193,188,125,13,193,184,125,13,193,185,125,13,193,194,125,13,193,164,125,13,193,175,125,13,193,191,125,13,193,192,125,13,193,197,125,13,193,200,125,13,193,127,129,13,193,128,129,13,193,91,129,13,193,96,129,13,193,97,129,13,193,98,129,13,193,103,129,13,193,104,129,13,193,109,129,13,193,110,129,13,193,112,129,13,193,113,129,13,193,114,129,13,193,118,129,13,193,119,129,13,193,122,129,13,193,123,129,13,193,125,129,13,193,6,127,13,193,3,127,13,193,4,127,13,193,227,125,13,193,228,125,13,201,64,85,0,201,32,164,0,193,230,126,13,201,160,243,0,201,32,246,0,201,160,248,0,201,32,251,0,201,160,3,1,201,0,5,1,201,128,13,1,193,84,126,13,201,0,22,1,193,239,125,13,193,240,125,13,193,225,125,13,201,128,30,1,193,80,126,13,193,107,125,13,193,108,125,13,193,109,125,13,193,99,126,13,193,110,125,13,193,111,125,13,193,102,125,13,193,103,125,13,201,0,39,1,201,128,47,1,193,158,126,13,193,135,129,13,193,205,125,13,201,0,56,1,201,128,64,1,193,106,128,13,193,57,130,13,193,59,130,13,193,150,125,13,193,125,125,13,193,136,129,13,193,137,129,13,193,222,126,13,193,135,127,13,193,226,126,13,193,82,128,13,193,130,125,13,193,135,125,13,193,132,125,13,193,128,125,13,193,129,125,13,193,126,125,13,193,143,125,13,193,142,125,13,193,141,125,13,193,145,125,13,193,127,125,13,193,131,125,13,193,133,125,13,193,63,131,13,193,199,129,13,193,152,125,13,193,32,130,13,193,163,125,13,193,153,125,13,193,155,125,13,193,4,129,13,193,156,125,13,193,105,125,13,193,207,125,13,193,154,125,13,193,158,125,13,193,162,125,13,193,137,127,13,193,151,125,13,193,220,129,13,193,212,130,13,193,213,130,13,193,227,129,13,193,222,129,13,193,223,129,13,193,224,129,13,193,225,129,13,193,226,129,13,193,229,129,13,193,172,128,13,193,176,129,13,193,250,129,13,193,182,129,13,193,183,129,13,193,184,129,13,193,185,129,13,193,251,129,13,193,252,129,13,193,212,129,13,193,214,129,13,193,254,129,13,193,255,129,13,193,4,130,13,193,5,130,13,193,6,130,13,193,7,130,13,193,8,130,13,193,9,130,13,193,10,130,13,193,11,130,13,193,13,130,13,193,14,130,13,193,217,129,13,193,211,129,13,193,210,129,13,193,203,129,13,193,204,129,13,193,205,129,13,193,206,129,13,193,207,129,13,193,208,129,13,193,209,129,13,193,218,130,13,193,213,129,13,193,249,129,13,193,170,129,13,193,171,129,13,193,172,129,13,193,56,130,13,193,142,129,13,193,143,129,13,193,234,129,13,193,235,129,13,193,236,129,13,193,231,129,13,193,232,129,13,193,233,129,13,193,238,129,13,193,237,129,13,193,239,129,13,193,240,129,13,193,241,129,13,193,144,129,13,193,215,129,13,193,167,129,13,193,168,129,13,193,194,130,13,193,195,130,13,193,120,130,13,193,192,130,13,193,192,129,13,193,193,129,13,193,194,129,13,193,191,129,13,193,155,129,13,193,195,129,13,193,189,129,13,192,0,0,0,193,134,129,13,193,171,130,13,193,172,130,13,193,173,130,13,193,138,130,13,193,139,130,13,193,190,130,13,193,191,130,13,193,138,129,13,193,139,129,13,193,140,129,13,193,141,129,13,193,173,129,13,193,175,129,13,193,196,129,13,193,197,129,13,193,21,130,13,193,22,130,13,193,23,130,13,193,19,130,13,193,20,130,13,193,145,129,13,193,146,129,13,193,218,129,13,193,44,130,13,193,64,131,13,193,140,130,13,193,141,130,13,193,142,130,13,193,143,130,13,193,144,130,13,193,121,130,13,193,247,130,13,193,248,130,13,193,249,130,13,193,250,130,13,193,251,130,13,193,252,130,13,193,3,129,13,193,200,129,13,193,37,130,13,193,25,130,13,193,39,130,13,193,39,128,13,193,63,129,13,193,54,130,13,193,55,130,13,193,65,129,13,193,156,130,13,193,219,130,13,193,217,130,13,193,66,131,13,193,65,131,13,193,33,131,13,193,37,131,13,193,57,131,13,193,58,131,13,193,59,131,13,193,60,131,13,193,61,131,13,193,62,131,13,193,181,130,13,193,183,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,147,130,13,193,85,127,13,193,90,128,13,193,86,128,13,193,88,128,13,193,155,130,13,192,0,0,0,193,191,128,13,193,193,128,13,193,195,128,13,193,197,128,13,193,199,128,13,193,201,128,13,193,203,128,13,193,205,128,13,193,207,128,13,193,209,128,13,193,211,128,13,193,189,128,13,193,192,128,13,193,194,128,13,193,196,128,13,193,198,128,13,193,200,128,13,193,202,128,13,193,204,128,13,193,206,128,13,193,208,128,13,193,210,128,13,193,212,128,13,193,190,128,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,198,129,13,193,188,128,13,192,0,0,0,192,0,0,0,193,157,125,13,193,160,126,13,201,0,73,1,193,92,129,13,193,128,127,13,193,129,127,13,193,68,129,13,193,159,126,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,12,130,13,192,0,0,0,192,0,0,0,193,246,129,13,193,245,129,13,193,247,129,13,193,248,129,13,192,0,0,0,192,0,0,0,193,166,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,187,125,13,193,168,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,147,125,13,193,177,129,13,192,0,0,0,192,0,0,0,193,178,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,180,129,13,193,181,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,85,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,253,129,13,193,16,130,13,193,17,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,18,130,13,193,2,130,13,193,3,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,41,130,13,193,24,130,13,193,216,129,13,192,0,0,0,192,0,0,0,193,30,130,13,192,0,0,0,193,2,127,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,160,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,161,125,13,192,0,0,0,192,0,0,0,192,0,0,0,193,242,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,46,128,13,193,52,128,13,193,83,128,13,193,84,128,13,193,47,128,13,193,95,130,13,5,5,121,13,5,5,124,13,193,5,125,13,5,5,122,13,5,5,123,13,193,3,125,13,193,2,125,13,193,11,125,13,193,101,125,13,193,9,125,13,193,10,125,13,193,21,125,13,193,48,125,13,193,13,125,13,193,68,125,13,193,41,125,13,193,36,125,13,193,37,125,13,193,42,125,13,193,93,125,13,193,49,125,13,193,71,125,13,193,90,125,13,193,16,125,13,193,15,125,13,193,19,125,13,193,18,125,13,193,22,125,13,193,23,125,13,193,25,125,13,193,92,125,13,193,73,125,13,193,99,125,13,193,98,125,13,193,87,125,13,193,91,125,13,193,97,125,13,193,86,125,13,193,82,125,13,193,83,125,13,193,84,125,13,193,94,125,13,193,50,125,13,193,95,125,13,193,44,125,13,193,88,125,13,201,0,82,1,193,77,125,13,193,85,125,13,193,89,125,13,193,78,125,13,193,79,125,13,193,52,125,13,201,0,83,1,201,0,84,1,193,53,125,13,193,114,125,13,193,115,125,13,193,113,125,13,193,116,125,13,193,117,125,13,193,118,125,13,193,121,125,13,193,120,125,13,193,119,125,13,193,74,125,13,193,6,125,13,193,7,125,13,193,43,125,13,201,0,85,1,201,128,93,1,201,0,102,1,193,122,125,13,193,123,125,13,193,124,125,13,201,128,110,1,193,198,125,13,201,0,119,1,201,128,127,1,193,203,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,178,128,13,193,173,128,13,193,108,128,13,193,109,128,13,193,110,128,13,193,111,128,13,193,112,128,13,193,113,128,13,193,114,128,13,193,115,128,13,193,116,128,13,193,119,128,13,193,120,128,13,193,121,128,13,193,122,128,13,193,147,128,13,193,123,128,13,193,124,128,13,193,125,128,13,193,126,128,13,193,127,128,13,193,128,128,13,193,129,128,13,193,130,128,13,193,131,128,13,193,132,128,13,193,134,128,13,193,135,128,13,193,136,128,13,193,117,128,13,193,118,128,13,193,174,128,13,193,175,128,13,193,176,128,13,193,166,128,13,201,0,136,1,193,162,128,13,193,154,128,13,193,155,128,13,193,157,128,13,193,153,128,13,193,68,131,13,193,64,130,13,193,114,130,13,193,89,130,13,193,116,130,13,193,99,130,13,193,117,130,13,193,100,130,13,193,118,130,13,193,143,128,13,193,115,130,13,201,128,144,1,201,0,153,1,201,128,161,1,193,119,130,13,193,112,130,13,193,102,130,13,193,103,130,13,193,104,130,13,193,105,130,13,193,71,130,13,193,106,130,13,193,73,130,13,193,216,126,13,193,74,130,13,193,107,130,13,193,108,130,13,193,109,130,13,193,110,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,69,130,13,193,217,126,13,193,115,129,13,193,180,128,13,193,68,130,13,193,145,130,13,193,156,128,13,193,88,130,13,192,0,0,0,192,0,0,0,193,87,128,13,193,64,128,13,193,65,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,193,130,13,193,103,128,13,193,152,128,13,193,159,128,13,193,29,130,13,193,35,130,13,193,150,128,13,193,148,128,13,193,149,128,13,193,165,128,13,192,0,0,0,192,0,0,0,192,0,0,0,193,168,128,13,192,0,0,0,193,169,128,13,193,170,128,13,192,0,0,0,192,0,0,0,192,0,0,0,193,177,128,13,192,0,0,0,192,0,0,0,193,163,128,13,193,144,128,13,193,139,128,13,193,161,128,13,193,58,129,13,193,179,128,13,193,145,128,13,193,142,128,13,193,133,128,13,193,146,128,13,192,0,0,0,192,0,0,0,192,0,0,0,193,34,131,13,193,35,131,13,193,36,131,13,193,38,131,13,193,39,131,13,193,42,131,13,193,46,131,13,193,43,131,13,193,44,131,13,193,45,131,13,193,47,131,13,193,48,131,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,203,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,176,125,13,193,149,125,13,193,146,125,13,193,177,125,13,193,34,125,13,193,26,125,13,193,54,125,13,193,69,125,13,193,32,125,13,193,55,125,13,193,112,125,13,193,27,125,13,193,182,125,13,193,183,125,13,193,165,125,13,193,195,125,13,193,196,125,13,193,202,125,13,193,179,125,13,193,181,125,13,193,65,125,13,193,106,125,13,193,56,125,13,193,4,125,13,193,51,125,13,193,46,125,13,201,0,170,1,193,58,125,13,193,35,125,13,193,14,125,13,193,24,125,13,193,31,125,13,193,100,125,13,193,28,125,13,193,57,125,13,193,64,125,13,193,92,126,13,193,95,126,13,193,201,125,13,193,206,125,13,193,79,126,13,201,128,178,1,193,101,126,13,201,0,187,1,201,128,195,1,201,0,204,1,193,170,126,13,192,0,0,0,201,128,212,1,201,224,213,1,201,96,222,1,193,55,129,13,193,141,127,13,193,163,129,13,193,27,128,13,193,28,128,13,193,38,128,13,193,51,129,13,192,0,0,0,193,30,129,13,193,31,129,13,193,32,129,13,193,49,129,13,193,50,129,13,193,59,129,13,193,46,129,13,193,35,129,13,193,41,129,13,193,200,127,13,193,182,127,13,193,189,127,13,193,211,127,13,193,184,127,13,193,185,127,13,193,201,127,13,193,228,127,13,193,224,127,13,193,220,127,13,193,222,127,13,193,16,128,13,193,194,127,13,193,178,127,13,193,205,127,13,193,247,127,13,193,248,127,13,193,249,127,13,193,35,128,13,193,227,127,13,193,30,128,13,193,181,127,13,193,191,127,13,193,9,128,13,193,203,127,13,193,210,127,13,193,216,127,13,193,232,127,13,193,190,127,13,193,170,127,13,193,245,127,13,193,204,127,13,193,12,125,13,193,96,125,13,193,20,125,13,193,66,125,13,193,61,125,13,193,59,125,13,193,60,125,13,193,74,126,13,193,67,125,13,193,81,125,13,193,80,125,13,193,105,129,13,193,94,129,13,193,93,129,13,193,120,129,13,193,121,129,13,193,250,127,13,193,26,127,13,193,130,127,13,193,77,127,13,193,34,127,13,193,86,127,13,193,87,127,13,193,66,127,13,193,114,127,13,193,89,127,13,193,21,127,13,193,120,127,13,193,36,127,13,193,13,127,13,193,101,127,13,193,55,127,13,193,252,127,13,193,253,127,13,193,52,127,13,193,35,127,13,193,65,127,13,193,105,127,13,193,106,127,13,193,126,127,13,193,74,127,13,193,51,127,13,193,93,127,13,193,56,127,13,193,94,127,13,193,22,127,13,193,251,127,13,193,131,127,13,193,134,127,13,193,75,127,13,193,88,127,13,193,54,127,13,193,90,127,13,193,71,127,13,193,72,127,13,193,14,127,13,193,73,127,13,193,92,127,13,193,254,127,13,193,64,127,13,193,37,127,13,193,110,127,13,193,17,127,13,193,43,130,13,193,7,127,13,193,8,127,13,193,10,127,13,193,9,127,13,193,219,125,13,193,210,125,13,193,211,125,13,193,218,125,13,201,224,230,1,201,96,239,1,193,95,129,13,193,213,125,13,193,141,128,13,193,140,128,13,193,208,125,13,193,209,125,13,193,207,127,13,193,8,128,13,193,231,127,13,193,32,128,13,193,192,127,13,193,193,127,13,193,221,127,13,193,206,127,13,193,230,127,13,193,33,128,13,193,34,128,13,193,31,128,13,193,130,126,13,201,224,247,1,201,96,0,2,201,224,8,2,193,70,125,13,201,96,17,2,193,226,125,13,193,238,125,13,201,32,85,2,193,85,126,13,201,160,93,2,201,32,102,2,201,160,110,2,201,32,119,2,201,160,127,2,201,32,136,2,201,160,144,2,201,32,153,2,201,160,161,2,201,0,163,2,193,215,125,13,193,140,125,13,193,131,129,13,193,99,129,13,193,100,129,13,193,101,129,13,193,102,129,13,193,21,129,13,193,10,129,13,193,71,129,13,193,51,130,13,193,52,130,13,193,53,130,13,193,48,128,13,193,186,129,13,193,87,130,13,193,47,130,13,193,61,128,13,193,48,130,13,193,181,128,13,193,77,130,13,193,87,129,13,193,89,129,13,193,78,130,13,193,72,129,13,193,79,130,13,193,80,130,13,193,81,130,13,193,83,130,13,193,86,130,13,193,228,129,13,193,93,130,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,124,129,13,193,106,129,13,193,107,129,13,193,108,129,13,193,117,129,13,193,144,125,13,193,148,125,13,193,139,125,13,193,58,130,13,193,60,130,13,193,62,130,13,193,63,130,13,193,61,130,13,192,0,0,0,192,0,0,0,192,0,0,0,193,61,129,13,193,62,129,13,193,171,128,13,193,33,130,13,193,66,129,13,193,73,129,13,193,75,129,13,193,165,129,13,193,166,129,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,229,128,13,193,70,130,13,193,76,130,13,193,26,130,13,193,202,129,13,193,162,129,13,193,132,129,13,193,157,129,13,193,164,129,13,193,221,129,13,193,36,130,13,193,38,130,13,193,49,130,13,193,46,130,13,193,66,130,13,193,67,130,13,193,72,130,13,193,88,129,13,193,90,129,13,193,82,130,13,193,75,130,13,193,85,130,13,193,91,130,13,193,96,130,13,193,62,128,13,193,74,129,13,193,97,130,13,193,174,129,13,193,94,130,13,193,111,129,13,193,126,129,13,193,157,130,13,193,132,127,13,193,133,127,13,193,124,127,13,193,127,127,13,193,148,127,13,193,63,128,13,193,91,127,13,193,138,127,13,193,117,127,13,193,160,127,13,193,161,127,13,193,146,127,13,193,118,127,13,193,95,127,13,192,0,0,0,193,97,127,13,193,216,125,13,193,217,125,13,193,5,127,13,193,93,126,13,193,94,126,13,193,78,126,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,31,127,13,193,32,127,13,193,177,127,13,193,188,127,13,193,180,127,13,193,202,127,13,193,219,127,13,193,226,127,13,193,18,128,13,193,29,128,13,193,195,127,13,193,40,128,13,193,197,127,13,193,198,127,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,8,125,13,193,33,125,13,193,29,125,13,193,30,125,13,193,72,125,13,193,39,125,13,193,224,125,13,193,84,130,13,193,47,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,180,125,13,193,169,125,13,193,170,125,13,193,171,125,13,193,172,125,13,193,190,125,13,193,199,125,13,193,173,125,13,193,174,125,13,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,133,0,5,0,7,131,13,0,5,0,70,0,188,126,13,0,5,0,70,0,187,126,13,0,5,0,71,0,188,126,13,0,5,0,71,0,187,126,13,0,5,0,72,0,188,126,13,0,5,0,72,0,187,126,13,0,5,0,73,0,188,126,13,0,5,0,73,0,187,126,13,0,5,0,74,0,188,126,13,0,5,0,74,0,187,126,13,0,133,0,5,0,253,130,13,0,133,0,5,0,255,130,13,0,133,0,5,0,10,131,13,0,133,0,5,0,12,131,13,0,133,0,5,0,254,130,13,0,133,0,5,0,2,131,13,0,133,0,5,0,3,131,13,0,133,0,5,0,4,131,13,0,133,0,5,0,6,131,13,0,133,0,5,0,8,131,13,0,133,0,5,0,9,131,13,0,133,0,5,0,11,131,13,0,133,0,5,0,13,131,13,0,69,0,5,0,14,131,13,0,133,0,5,0,15,131,13,0,5,0,70,0,157,126,13,0,5,0,70,0,156,126,13,0,5,0,71,0,157,126,13,0,5,0,71,0,156,126,13,0,5,0,72,0,157,126,13,0,5,0,72,0,156,126,13,0,5,0,73,0,157,126,13,0,5,0,73,0,156,126,13,0,5,0,74,0,157,126,13,0,5,0,74,0,156,126,13,0,5,0,70,0,179,126,13,0,5,0,70,0,178,126,13,0,5,0,71,0,179,126,13,0,5,0,71,0,178,126,13,0,5,0,72,0,179,126,13,0,5,0,72,0,178,126,13,0,5,0,73,0,179,126,13,0,5,0,73,0,178,126,13,0,5,0,74,0,179,126,13,0,5,0,74,0,178,126,13,0,5,0,70,0,185,126,13,0,5,0,70,0,184,126,13,0,5,0,71,0,185,126,13,0,5,0,71,0,184,126,13,0,5,0,72,0,185,126,13,0,5,0,72,0,184,126,13,0,5,0,73,0,185,126,13,0,5,0,73,0,184,126,13,0,5,0,74,0,185,126,13,0,5,0,74,0,184,126,13,0,5,0,70,0,191,126,13,0,5,0,70,0,190,126,13,0,5,0,71,0,191,126,13,0,5,0,71,0,190,126,13,0,5,0,72,0,191,126,13,0,5,0,72,0,190,126,13,0,5,0,73,0,191,126,13,0,5,0,73,0,190,126,13,0,5,0,74,0,191,126,13,0,5,0,74,0,190,126,13,0,5,0,70,0,176,126,13,0,5,0,70,0,175,126,13,0,5,0,71,0,176,126,13,0,5,0,71,0,175,126,13,0,5,0,72,0,176,126,13,0,5,0,72,0,175,126,13,0,5,0,73,0,176,126,13,0,5,0,73,0,175,126,13,0,5,0,74,0,176,126,13,0,5,0,74,0,175,126,13,0,5,0,70,0,18,126,13,0,5,0,70,0,27,126,13,0,5,0,70,0,57,126,13,0,5,0,70,0,30,126,13,0,5,0,70,0,33,126,13,0,5,0,70,0,97,126,13,0,5,0,70,0,21,126,13,0,5,0,70,0,51,126,13,0,5,0,70,0,54,126,13,0,5,0,70,0,24,126,13,0,5,0,70,0,39,126,13,0,5,0,70,0,48,126,13,0,5,0,70,0,42,126,13,0,5,0,70,0,36,126,13,0,5,0,70,0,45,126,13,0,5,0,70,0,60,126,13,0,5,0,70,0,63,126,13,0,5,0,70,0,221,126,13,0,5,0,70,0,147,126,13,0,5,0,70,0,150,126,13,0,5,0,70,0,153,126,13,0,5,0,71,0,18,126,13,0,5,0,71,0,27,126,13,0,5,0,71,0,57,126,13,0,5,0,71,0,30,126,13,0,5,0,71,0,33,126,13,0,5,0,71,0,97,126,13,0,5,0,71,0,21,126,13,0,5,0,71,0,51,126,13,0,5,0,71,0,54,126,13,0,5,0,71,0,24,126,13,0,5,0,71,0,39,126,13,0,5,0,71,0,48,126,13,0,5,0,71,0,42,126,13,0,5,0,71,0,36,126,13,0,5,0,71,0,45,126,13,0,5,0,71,0,60,126,13,0,5,0,71,0,63,126,13,0,5,0,71,0,221,126,13,0,5,0,71,0,147,126,13,0,5,0,71,0,150,126,13,0,5,0,71,0,153,126,13,0,5,0,72,0,18,126,13,0,5,0,72,0,27,126,13,0,5,0,72,0,57,126,13,0,5,0,72,0,30,126,13,0,5,0,72,0,33,126,13,0,5,0,72,0,97,126,13,0,5,0,72,0,21,126,13,0,5,0,72,0,51,126,13,0,5,0,72,0,54,126,13,0,5,0,72,0,24,126,13,0,5,0,72,0,39,126,13,0,5,0,72,0,48,126,13,0,5,0,72,0,42,126,13,0,5,0,72,0,36,126,13,0,5,0,72,0,45,126,13,0,5,0,72,0,60,126,13,0,5,0,72,0,63,126,13,0,5,0,72,0,221,126,13,0,5,0,72,0,147,126,13,0,5,0,72,0,150,126,13,0,5,0,72,0,153,126,13,0,5,0,73,0,18,126,13,0,5,0,73,0,27,126,13,0,5,0,73,0,57,126,13,0,5,0,73,0,30,126,13,0,5,0,73,0,33,126,13,0,5,0,73,0,97,126,13,0,5,0,73,0,21,126,13,0,5,0,73,0,51,126,13,0,5,0,73,0,54,126,13,0,5,0,73,0,24,126,13,0,5,0,73,0,39,126,13,0,5,0,73,0,48,126,13,0,5,0,73,0,42,126,13,0,5,0,73,0,36,126,13,0,5,0,73,0,45,126,13,0,5,0,73,0,60,126,13,0,5,0,73,0,63,126,13,0,5,0,73,0,221,126,13,0,5,0,73,0,147,126,13,0,5,0,73,0,150,126,13,0,5,0,73,0,153,126,13,0,5,0,74,0,18,126,13,0,5,0,74,0,27,126,13,0,5,0,74,0,57,126,13,0,5,0,74,0,30,126,13,0,5,0,74,0,33,126,13,0,5,0,74,0,97,126,13,0,5,0,74,0,21,126,13,0,5,0,74,0,51,126,13,0,5,0,74,0,54,126,13,0,5,0,74,0,24,126,13,0,5,0,74,0,39,126,13,0,5,0,74,0,48,126,13,0,5,0,74,0,42,126,13,0,5,0,74,0,36,126,13,0,5,0,74,0,45,126,13,0,5,0,74,0,60,126,13,0,5,0,74,0,63,126,13,0,5,0,74,0,221,126,13,0,5,0,74,0,147,126,13,0,5,0,74,0,150,126,13,0,5,0,74,0,153,126,13,0,5,0,70,0,19,126,13,0,5,0,70,0,28,126,13,0,5,0,70,0,58,126,13,0,5,0,70,0,31,126,13,0,5,0,70,0,34,126,13,0,5,0,70,0,96,126,13,0,5,0,70,0,22,126,13,0,5,0,70,0,52,126,13,0,5,0,70,0,55,126,13,0,5,0,70,0,25,126,13,0,5,0,70,0,40,126,13,0,5,0,70,0,49,126,13,0,5,0,70,0,43,126,13,0,5,0,70,0,37,126,13,0,5,0,70,0,46,126,13,0,5,0,70,0,61,126,13,0,5,0,70,0,64,126,13,0,5,0,70,0,220,126,13,0,5,0,70,0,219,126,13,0,5,0,70,0,148,126,13,0,5,0,70,0,151,126,13,0,5,0,70,0,154,126,13,0,5,0,71,0,19,126,13,0,5,0,71,0,28,126,13,0,5,0,71,0,58,126,13,0,5,0,71,0,31,126,13,0,5,0,71,0,34,126,13,0,5,0,71,0,96,126,13,0,5,0,71,0,22,126,13,0,5,0,71,0,52,126,13,0,5,0,71,0,55,126,13,0,5,0,71,0,25,126,13,0,5,0,71,0,40,126,13,0,5,0,71,0,49,126,13,0,5,0,71,0,43,126,13,0,5,0,71,0,37,126,13,0,5,0,71,0,46,126,13,0,5,0,71,0,61,126,13,0,5,0,71,0,64,126,13,0,5,0,71,0,220,126,13,0,5,0,71,0,219,126,13,0,5,0,71,0,148,126,13,0,5,0,71,0,151,126,13,0,5,0,71,0,154,126,13,0,5,0,72,0,19,126,13,0,5,0,72,0,28,126,13,0,5,0,72,0,58,126,13,0,5,0,72,0,31,126,13,0,5,0,72,0,34,126,13,0,5,0,72,0,96,126,13,0,5,0,72,0,22,126,13,0,5,0,72,0,52,126,13,0,5,0,72,0,55,126,13,0,5,0,72,0,25,126,13,0,5,0,72,0,40,126,13,0,5,0,72,0,49,126,13,0,5,0,72,0,43,126,13,0,5,0,72,0,37,126,13,0,5,0,72,0,46,126,13,0,5,0,72,0,61,126,13,0,5,0,72,0,64,126,13,0,5,0,72,0,220,126,13,0,5,0,72,0,219,126,13,0,5,0,72,0,148,126,13,0,5,0,72,0,151,126,13,0,5,0,72,0,154,126,13,0,5,0,73,0,19,126,13,0,5,0,73,0,28,126,13,0,5,0,73,0,58,126,13,0,5,0,73,0,31,126,13,0,5,0,73,0,34,126,13,0,5,0,73,0,96,126,13,0,5,0,73,0,22,126,13,0,5,0,73,0,52,126,13,0,5,0,73,0,55,126,13,0,5,0,73,0,25,126,13,0,5,0,73,0,40,126,13,0,5,0,73,0,49,126,13,0,5,0,73,0,43,126,13,0,5,0,73,0,37,126,13,0,5,0,73,0,46,126,13,0,5,0,73,0,61,126,13,0,5,0,73,0,64,126,13,0,5,0,73,0,220,126,13,0,5,0,73,0,219,126,13,0,5,0,73,0,148,126,13,0,5,0,73,0,151,126,13,0,5,0,73,0,154,126,13,0,5,0,74,0,19,126,13,0,5,0,74,0,28,126,13,0,5,0,74,0,58,126,13,0,5,0,74,0,31,126,13,0,5,0,74,0,34,126,13,0,5,0,74,0,96,126,13,0,5,0,74,0,22,126,13,0,5,0,74,0,52,126,13,0,5,0,74,0,55,126,13,0,5,0,74,0,25,126,13,0,5,0,74,0,40,126,13,0,5,0,74,0,49,126,13,0,5,0,74,0,43,126,13,0,5,0,74,0,37,126,13,0,5,0,74,0,46,126,13,0,5,0,74,0,61,126,13,0,5,0,74,0,64,126,13,0,5,0,74,0,220,126,13,0,5,0,74,0,219,126,13,0,5,0,74,0,148,126,13,0,5,0,74,0,151,126,13,0,5,0,74,0,154,126,13,0,5,0,70,0,220,126,13,0,5,224,251,0,0,0,0,0,5,0,71,0,220,126,13,0,5,0,252,0,0,0,0,0,5,0,72,0,220,126,13,0,5,0,253,0,0,0,0,0,5,0,73,0,220,126,13,0,5,0,254,0,0,0,0,0,5,0,74,0,220,126,13,0,5,0,255,0,0,0,0,0,5,0,70,0,221,126,13,0,5,224,251,0,0,0,0,0,5,0,71,0,221,126,13,0,5,0,252,0,0,0,0,0,5,0,72,0,221,126,13,0,5,0,253,0,0,0,0,0,5,0,73,0,221,126,13,0,5,0,254,0,0,0,0,0,5,0,74,0,221,126,13,0,5,0,255,0,0,0,0,0,5,0,70,0,219,126,13,0,5,224,251,0,0,0,0,0,5,0,71,0,219,126,13,0,5,0,252,0,0,0,0,0,5,0,72,0,219,126,13,0,5,0,253,0,0,0,0,0,5,0,73,0,219,126,13,0,5,0,254,0,0,0,0,0,5,0,74,0,219,126,13,0,5,0,255,0,0,0,0,0,5,0,70,0,67,126,13,0,5,0,70,0,66,126,13,0,5,0,71,0,67,126,13,0,5,0,71,0,66,126,13,0,5,0,72,0,67,126,13,0,5,0,72,0,66,126,13,0,5,0,73,0,67,126,13,0,5,0,73,0,66,126,13,0,5,0,74,0,67,126,13,0,5,0,74,0,66,126,13,0,5,0,70,0,91,126,13,0,5,0,70,0,90,126,13,0,5,0,71,0,91,126,13,0,5,0,71,0,90,126,13,0,5,0,72,0,91,126,13,0,5,0,72,0,90,126,13,0,5,0,73,0,91,126,13,0,5,0,73,0,90,126,13,0,5,0,74,0,91,126,13,0,5,0,74,0,90,126,13,0,5,0,70,0,229,125,13,0,5,0,76,0,235,125,13,0,5,0,77,0,231,125,13,0,5,0,77,0,235,125,13,0,5,0,78,0,231,125,13,0,5,0,78,0,235,125,13,0,5,0,79,0,231,125,13,0,5,0,79,0,235,125,13,0,5,0,80,0,231,125,13,0,5,0,80,0,235,125,13,0,5,0,81,0,231,125,13,0,5,0,81,0,235,125,13,0,5,0,82,0,231,125,13,0,5,0,70,0,83,126,13,0,5,0,70,0,82,126,13,0,5,0,71,0,83,126,13,0,5,0,71,0,82,126,13,0,5,0,72,0,83,126,13,0,5,0,72,0,82,126,13,0,5,0,73,0,83,126,13,0,5,0,73,0,82,126,13,0,5,0,74,0,83,126,13,0,5,0,74,0,82,126,13,0,5,0,70,0,77,126,13,0,5,0,70,0,76,126,13,0,5,0,71,0,77,126,13,0,5,0,71,0,76,126,13,0,5,0,72,0,77,126,13,0,5,0,72,0,76,126,13,0,5,0,73,0,77,126,13,0,5,0,73,0,76,126,13,0,5,0,74,0,77,126,13,0,5,0,74,0,76,126,13,0,5,0,70,0,255,125,13,0,5,0,70,0,254,125,13,0,5,0,71,0,255,125,13,0,5,0,71,0,254,125,13,0,5,0,72,0,255,125,13,0,5,0,72,0,254,125,13,0,5,0,73,0,255,125,13,0,5,0,73,0,254,125,13,0,5,0,74,0,255,125,13,0,5,0,74,0,254,125,13,0,5,0,70,0,73,126,13,0,5,0,70,0,72,126,13,0,5,0,71,0,73,126,13,0,5,0,71,0,72,126,13,0,5,0,72,0,73,126,13,0,5,0,72,0,72,126,13,0,5,0,73,0,73,126,13,0,5,0,73,0,72,126,13,0,5,0,74,0,73,126,13,0,5,0,74,0,72,126,13,0,5,0,70,0,133,126,13,0,5,0,70,0,132,126,13,0,5,0,71,0,133,126,13,0,5,0,71,0,132,126,13,0,5,0,72,0,133,126,13,0,5,0,72,0,132,126,13,0,5,0,73,0,133,126,13,0,5,0,73,0,132,126,13,0,5,0,74,0,133,126,13,0,5,0,74,0,132,126,13,0,5,0,70,0,136,126,13,0,5,0,70,0,135,126,13,0,5,0,71,0,136,126,13,0,5,0,71,0,135,126,13,0,5,0,72,0,136,126,13,0,5,0,72,0,135,126,13,0,5,0,73,0,136,126,13,0,5,0,73,0,135,126,13,0,5,0,74,0,136,126,13,0,5,0,74,0,135,126,13,0,5,0,70,0,70,126,13,0,5,0,70,0,69,126,13,0,5,0,71,0,70,126,13,0,5,0,71,0,69,126,13,0,5,0,72,0,70,126,13,0,5,0,72,0,69,126,13,0,5,0,73,0,70,126,13,0,5,0,73,0,69,126,13,0,5,0,74,0,70,126,13,0,5,0,74,0,69,126,13,0,5,0,70,0,249,125,13,0,5,0,70,0,248,125,13,0,5,0,71,0,249,125,13,0,5,0,71,0,248,125,13,0,5,0,72,0,249,125,13,0,5,0,72,0,248,125,13,0,5,0,73,0,249,125,13,0,5,0,73,0,248,125,13,0,5,0,74,0,249,125,13,0,5,0,74,0,248,125,13,0,5,0,70,0,252,125,13,0,5,0,70,0,251,125,13,0,5,0,71,0,252,125,13,0,5,0,71,0,251,125,13,0,5,0,72,0,252,125,13,0,5,0,72,0,251,125,13,0,5,0,73,0,252,125,13,0,5,0,73,0,251,125,13,0,5,0,74,0,252,125,13,0,5,0,74,0,251,125,13,0,5,0,70,0,10,126,13,0,5,0,70,0,9,126,13,0,5,0,71,0,10,126,13,0,5,0,71,0,9,126,13,0,5,0,72,0,10,126,13,0,5,0,72,0,9,126,13,0,5,0,73,0,10,126,13,0,5,0,73,0,9,126,13,0,5,0,74,0,10,126,13,0,5,0,74,0,9,126,13,0,5,0,70,0,4,126,13,0,5,0,70,0,3,126,13,0,5,0,71,0,4,126,13,0,5,0,71,0,3,126,13,0,5,0,72,0,4,126,13,0,5,0,72,0,3,126,13,0,5,0,73,0,4,126,13,0,5,0,73,0,3,126,13,0,5,0,74,0,4,126,13,0,5,0,74,0,3,126,13,0,5,0,70,0,243,125,13,0,5,0,70,0,242,125,13,0,5,0,71,0,243,125,13,0,5,0,71,0,242,125,13,0,5,0,72,0,243,125,13,0,5,0,72,0,242,125,13,0,5,0,73,0,243,125,13,0,5,0,73,0,242,125,13,0,5,0,74,0,243,125,13,0,5,0,74,0,242,125,13,0,5,0,70,0,246,125,13,0,5,0,70,0,245,125,13,0,5,0,71,0,246,125,13,0,5,0,71,0,245,125,13,0,5,0,72,0,246,125,13,0,5,0,72,0,245,125,13,0,5,0,73,0,246,125,13,0,5,0,73,0,245,125,13,0,5,0,74,0,246,125,13,0,5,0,74,0,245,125,13,0,5,0,70,0,182,126,13,0,5,0,70,0,181,126,13,0,5,0,71,0,182,126,13,0,5,0,71,0,181,126,13,0,5,0,72,0,182,126,13,0,5,0,72,0,181,126,13,0,5,0,73,0,182,126,13,0,5,0,73,0,181,126,13,0,5,0,74,0,182,126,13,0,5,0,74,0,181,126,13,0,5,0,70,0,194,126,13,0,5,0,70,0,193,126,13,0,5,0,71,0,194,126,13,0,5,0,71,0,193,126,13,0,5,0,72,0,194,126,13,0,5,0,72,0,193,126,13,0,5,0,73,0,194,126,13,0,5,0,73,0,193,126,13,0,5,0,74,0,194,126,13,0,5,0,74,0,193,126,13,0,5,0,70,0,197,126,13,0,5,0,70,0,196,126,13,0,5,0,71,0,197,126,13,0,5,0,71,0,196,126,13,0,5,0,72,0,197,126,13,0,5,0,72,0,196,126,13,0,5,0,73,0,197,126,13,0,5,0,73,0,196,126,13,0,5,0,74,0,197,126,13,0,5,0,74,0,196,126,13,0,5,0,70,0,139,126,13,0,5,0,70,0,138,126,13,0,5,0,71,0,139,126,13,0,5,0,71,0,138,126,13,0,5,0,72,0,139,126,13,0,5,0,72,0,138,126,13,0,5,0,73,0,139,126,13,0,5,0,73,0,138,126,13,0,5,0,74,0,139,126,13,0,5,0,74,0,138,126,13,0,5,0,70,0,13,126,13,0,5,0,70,0,12,126,13,0,5,0,71,0,13,126,13,0,5,0,71,0,12,126,13,0,5,0,72,0,13,126,13,0,5,0,72,0,12,126,13,0,5,0,73,0,13,126,13,0,5,0,73,0,12,126,13,0,5,0,74,0,13,126,13,0,5,0,74,0,12,126,13,0,5,0,70,0,88,126,13,0,5,0,70,0,87,126,13,0,5,0,71,0,88,126,13,0,5,0,71,0,87,126,13,0,5,0,72,0,88,126,13,0,5,0,72,0,87,126,13,0,5,0,73,0,88,126,13,0,5,0,73,0,87,126,13,0,5,0,74,0,88,126,13,0,5,0,74,0,87,126,13,0,5,0,70,0,16,126,13,0,5,0,70,0,15,126,13,0,5,0,71,0,16,126,13,0,5,0,71,0,15,126,13,0,5,0,72,0,16,126,13,0,5,0,72,0,15,126,13,0,5,0,73,0,16,126,13,0,5,0,73,0,15,126,13,0,5,0,74,0,16,126,13,0,5,0,74,0,15,126,13,0,5,0,70,0,200,126,13,0,5,0,70,0,199,126,13,0,5,0,71,0,200,126,13,0,5,0,71,0,199,126,13,0,5,0,72,0,200,126,13,0,5,0,72,0,199,126,13,0,5,0,73,0,200,126,13,0,5,0,73,0,199,126,13,0,5,0,74,0,200,126,13,0,5,0,74,0,199,126,13,0,5,0,70,0,212,126,13,0,5,0,70,0,211,126,13,0,5,0,71,0,212,126,13,0,5,0,71,0,211,126,13,0,5,0,72,0,212,126,13,0,5,0,72,0,211,126,13,0,5,0,73,0,212,126,13,0,5,0,73,0,211,126,13,0,5,0,74,0,212,126,13,0,5,0,74,0,211,126,13,0,5,0,70,0,206,126,13,0,5,0,70,0,205,126,13,0,5,0,71,0,206,126,13,0,5,0,71,0,205,126,13,0,5,0,72,0,206,126,13,0,5,0,72,0,205,126,13,0,5,0,73,0,206,126,13,0,5,0,73,0,205,126,13,0,5,0,74,0,206,126,13,0,5,0,74,0,205,126,13,0,5,0,70,0,209,126,13,0,5,0,70,0,208,126,13,0,5,0,71,0,209,126,13,0,5,0,71,0,208,126,13,0,5,0,72,0,209,126,13,0,5,0,72,0,208,126,13,0,5,0,73,0,209,126,13,0,5,0,73,0,208,126,13,0,5,0,74,0,209,126,13,0,5,0,74,0,208,126,13,0,5,0,70,0,105,126,13,0,5,0,70,0,104,126,13,0,5,0,71,0,105,126,13,0,5,0,71,0,104,126,13,0,5,0,72,0,105,126,13,0,5,0,72,0,104,126,13,0,5,0,73,0,105,126,13,0,5,0,73,0,104,126,13,0,5,0,74,0,105,126,13,0,5,0,74,0,104,126,13,0,5,0,70,0,108,126,13,0,5,0,70,0,107,126,13,0,5,0,71,0,108,126,13,0,5,0,71,0,107,126,13,0,5,0,72,0,108,126,13,0,5,0,72,0,107,126,13,0,5,0,73,0,108,126,13,0,5,0,73,0,107,126,13,0,5,0,74,0,108,126,13,0,5,0,74,0,107,126,13,0,5,0,70,0,142,126,13,0,5,0,70,0,141,126,13,0,5,0,71,0,142,126,13,0,5,0,71,0,141,126,13,0,5,0,72,0,142,126,13,0,5,0,72,0,141,126,13,0,5,0,73,0,142,126,13,0,5,0,73,0,141,126,13,0,5,0,74,0,142,126,13,0,5,0,74,0,141,126,13,0,5,0,70,0,145,126,13,0,5,0,70,0,144,126,13,0,5,0,71,0,145,126,13,0,5,0,71,0,144,126,13,0,5,0,72,0,145,126,13,0,5,0,72,0,144,126,13,0,5,0,73,0,145,126,13,0,5,0,73,0,144,126,13,0,5,0,74,0,145,126,13,0,5,0,74,0,144,126,13,0,5,0,70,0,7,126,13,0,5,0,70,0,6,126,13,0,5,0,71,0,7,126,13,0,5,0,71,0,6,126,13,0,5,0,72,0,7,126,13,0,5,0,72,0,6,126,13,0,5,0,73,0,7,126,13,0,5,0,73,0,6,126,13,0,5,0,74,0,7,126,13,0,5,0,74,0,6,126,13,0,5,0,70,0,17,126,13,0,5,0,70,0,26,126,13,0,5,0,70,0,56,126,13,0,5,0,70,0,29,126,13,0,5,0,70,0,32,126,13,0,5,0,70,0,98,126,13,0,5,0,70,0,102,126,13,0,5,0,70,0,20,126,13,0,5,0,70,0,50,126,13,0,5,0,70,0,53,126,13,0,5,0,70,0,23,126,13,0,5,0,70,0,38,126,13,0,5,0,70,0,47,126,13,0,5,0,70,0,41,126,13,0,5,0,70,0,35,126,13,0,5,0,70,0,44,126,13,0,5,0,70,0,59,126,13,0,5,0,70,0,62,126,13,0,5,0,70,0,218,126,13,0,5,0,70,0,146,126,13,0,5,0,70,0,149,126,13,0,5,0,70,0,152,126,13,0,5,0,71,0,17,126,13,0,5,0,71,0,26,126,13,0,5,0,71,0,56,126,13,0,5,0,71,0,29,126,13,0,5,0,71,0,32,126,13,0,5,0,71,0,98,126,13,0,5,0,71,0,102,126,13,0,5,0,71,0,20,126,13,0,5,0,71,0,50,126,13,0,5,0,71,0,53,126,13,0,5,0,71,0,23,126,13,0,5,0,71,0,38,126,13,0,5,0,71,0,47,126,13,0,5,0,71,0,41,126,13,0,5,0,71,0,35,126,13,0,5,0,71,0,44,126,13,0,5,0,71,0,59,126,13,0,5,0,71,0,62,126,13,0,5,0,71,0,218,126,13,0,5,0,71,0,146,126,13,0,5,0,71,0,149,126,13,0,5,0,71,0,152,126,13,0,5,0,72,0,17,126,13,0,5,0,72,0,26,126,13,0,5,0,72,0,56,126,13,0,5,0,72,0,29,126,13,0,5,0,72,0,32,126,13,0,5,0,72,0,98,126,13,0,5,0,72,0,102,126,13,0,5,0,72,0,20,126,13,0,5,0,72,0,50,126,13,0,5,0,72,0,53,126,13,0,5,0,72,0,23,126,13,0,5,0,72,0,38,126,13,0,5,0,72,0,47,126,13,0,5,0,72,0,41,126,13,0,5,0,72,0,35,126,13,0,5,0,72,0,44,126,13,0,5,0,72,0,59,126,13,0,5,0,72,0,62,126,13,0,5,0,72,0,218,126,13,0,5,0,72,0,146,126,13,0,5,0,72,0,149,126,13,0,5,0,72,0,152,126,13,0,5,0,73,0,17,126,13,0,5,0,73,0,26,126,13,0,5,0,73,0,56,126,13,0,5,0,73,0,29,126,13,0,5,0,73,0,32,126,13,0,5,0,73,0,98,126,13,0,5,0,73,0,102,126,13,0,5,0,73,0,20,126,13,0,5,0,73,0,50,126,13,0,5,0,73,0,53,126,13,0,5,0,73,0,23,126,13,0,5,0,73,0,38,126,13,0,5,0,73,0,47,126,13,0,5,0,73,0,41,126,13,0,5,0,73,0,35,126,13,0,5,0,73,0,44,126,13,0,5,0,73,0,59,126,13,0,5,0,73,0,62,126,13,0,5,0,73,0,218,126,13,0,5,0,73,0,146,126,13,0,5,0,73,0,149,126,13,0,5,0,73,0,152,126,13,0,5,0,74,0,17,126,13,0,5,0,74,0,26,126,13,0,5,0,74,0,56,126,13,0,5,0,74,0,29,126,13,0,5,0,74,0,32,126,13,0,5,0,74,0,98,126,13,0,5,0,74,0,102,126,13,0,5,0,74,0,20,126,13,0,5,0,74,0,50,126,13,0,5,0,74,0,53,126,13,0,5,0,74,0,23,126,13,0,5,0,74,0,38,126,13,0,5,0,74,0,47,126,13,0,5,0,74,0,41,126,13,0,5,0,74,0,35,126,13,0,5,0,74,0,44,126,13,0,5,0,74,0,59,126,13,0,5,0,74,0,62,126,13,0,5,0,74,0,218,126,13,0,5,0,74,0,146,126,13,0,5,0,74,0,149,126,13,0,5,0,74,0,152,126,13,0,5,0,70,0,231,125,13,0,5,0,70,0,235,125,13,0,5,0,71,0,231,125,13,0,5,0,71,0,235,125,13,0,5,0,72,0,231,125,13,0,5,0,72,0,235,125,13,0,5,0,73,0,231,125,13,0,5,0,73,0,235,125,13,0,5,0,74,0,231,125,13,0,5,0,74,0,235,125,13,0,5,0,75,0,231,125,13,0,5,0,75,0,235,125,13,0,5,0,76,0,231,125,13,0,5,0,70,0,166,126,13,0,5,0,70,0,165,126,13,0,5,0,71,0,166,126,13,0,5,0,71,0,165,126,13,0,5,0,72,0,166,126,13,0,5,0,72,0,165,126,13,0,5,0,73,0,166,126,13,0,5,0,73,0,165,126,13,0,5,0,74,0,166,126,13,0,5,0,74,0,165,126,13,0,5,0,70,0,169,126,13,0,5,0,70,0,168,126,13,0,5,0,71,0,169,126,13,0,5,0,71,0,168,126,13,0,5,0,72,0,169,126,13,0,5,0,72,0,168,126,13,0,5,0,73,0,169,126,13,0,5,0,73,0,168,126,13,0,5,0,74,0,169,126,13,0,5,0,74,0,168,126,13,0,5,0,70,0,215,126,13,0,5,0,70,0,214,126,13,0,5,0,71,0,215,126,13,0,5,0,71,0,214,126,13,0,5,0,72,0,215,126,13,0,5,0,72,0,214,126,13,0,5,0,73,0,215,126,13,0,5,0,73,0,214,126,13,0,5,0,74,0,215,126,13,0,5,0,74,0,214,126,13,0,5,0,70,0,111,126,13,0,5,0,70,0,110,126,13,0,5,0,71,0,111,126,13,0,5,0,71,0,110,126,13,0,5,0,72,0,111,126,13,0,5,0,72,0,110,126,13,0,5,0,73,0,111,126,13,0,5,0,73,0,110,126,13,0,5,0,74,0,111,126,13,0,5,0,74,0,110,126,13,0,5,0,70,0,114,126,13,0,5,0,70,0,113,126,13,0,5,0,71,0,114,126,13,0,5,0,71,0,113,126,13,0,5,0,72,0,114,126,13,0,5,0,72,0,113,126,13,0,5,0,73,0,114,126,13,0,5,0,73,0,113,126,13,0,5,0,74,0,114,126,13,0,5,0,74,0,113,126,13,0,5,0,70,0,117,126,13,0,5,0,70,0,116,126,13,0,5,0,71,0,117,126,13,0,5,0,71,0,116,126,13,0,5,0,72,0,117,126,13,0,5,0,72,0,116,126,13,0,5,0,73,0,117,126,13,0,5,0,73,0,116,126,13,0,5,0,74,0,117,126,13,0,5,0,74,0,116,126,13,0,5,0,70,0,120,126,13,0,5,0,70,0,119,126,13,0,5,0,71,0,120,126,13,0,5,0,71,0,119,126,13,0,5,0,72,0,120,126,13,0,5,0,72,0,119,126,13,0,5,0,73,0,120,126,13,0,5,0,73,0,119,126,13,0,5,0,74,0,120,126,13,0,5,0,74,0,119,126,13,0,5,0,70,0,123,126,13,0,5,0,70,0,122,126,13,0,5,0,71,0,123,126,13,0,5,0,71,0,122,126,13,0,5,0,72,0,123,126,13,0,5,0,72,0,122,126,13,0,5,0,73,0,123,126,13,0,5,0,73,0,122,126,13,0,5,0,74,0,123,126,13,0,5,0,74,0,122,126,13,0,0,0,0,193,133,130,13,5,158,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,201,192,2,0,201,32,4,0,201,128,5,0,201,224,6,0,201,64,8,0,201,160,9,0,201,0,11,0,201,96,12,0,201,192,13,0,201,32,15,0,150,10,5,5,1,0,227,32,130,205,193,235,15,254,48,0,227,32,130,205,193,235,128,10,5,5,1,0,227,32,130,205,193,236,15,254,48,0,227,32,130,205,193,236,0,19,5,5,1,0,227,32,130,205,193,237,15,254,48,0,227,32,130,205,193,237,0,21,5,5,1,0,227,32,130,205,193,238,15,254,48,0,227,32,130,205,193,238,0,23,5,5,1,0,227,32,130,205,193,239,15,254,48,0,227,32,130,205,193,239,0,25,5,5,1,0,227,32,130,205,193,240,15,254,48,0,227,32,130,205,193,240,0,27,5,5,1,0,227,32,130,205,193,241,15,254,48,0,227,32,130,205,193,241,0,29,5,5,1,0,227,32,130,205,193,242,15,254,48,0,227,32,130,205,193,242,0,31,5,5,1,0,227,32,130,205,193,243,15,254,48,0,227,32,130,205,193,243,0,33,5,5,1,0,227,32,130,205,193,244,15,254,48,0,227,32,130,205,193,244,0,35,5,5,1,0,227,32,130,205,193,245,15,254,48,0,227,32,130,205,193,245,0,37,5,5,1,0,227,32,130,205,193,246,15,254,48,0,227,32,130,205,193,246,126,13,193,186,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,188,66,38,126,205,193,187,4,0,251,223,16,0,252,223,22,0,253,223,29,0,254,223,36,0,255,223,48,0,13,32,1,0,64,38,1,192,198,33,66,38,1,192,198,65,48,0,13,32,1,0,64,38,198,161,66,38,0,192,198,65,48,0,13,32,1,0,64,38,0,192,198,97,66,38,0,192,198,129,48,0,13,32,1,0,64,38,0,192,198,161,66,38,0,192,198,193,48,0,13,32,1,0,64,38,0,192,198,225,66,38,1,192,198,1,125,13,193,138,1,0,13,32,3,0,15,254,48,0,13,32,1,0,61,216,5,0,62,216,48,0,121,222,125,205,193,137,48,0,37,221,125,205,193,136,126,13,193,155,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,4,192,198,65,66,38,4,192,198,97,48,0,13,32,1,0,64,38,3,192,198,65,66,38,3,192,198,97,48,0,13,32,1,0,64,38,3,192,198,129,66,38,3,192,198,161,48,0,13,32,1,0,64,38,3,192,198,193,66,38,3,192,198,225,48,0,13,32,1,0,64,38,4,192,198,1,66,38,4,192,198,33,1,0,64,38,126,205,193,157,66,38,126,205,193,156,126,13,193,177,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,5,192,198,129,66,38,5,192,198,161,48,0,13,32,1,0,64,38,4,192,198,129,66,38,4,192,198,161,48,0,13,32,1,0,64,38,4,192,198,193,66,38,4,192,198,225,48,0,13,32,1,0,64,38,5,192,198,1,66,38,5,192,198,33,48,0,13,32,1,0,64,38,5,192,198,65,66,38,5,192,198,97,1,0,64,38,126,205,193,179,66,38,126,205,193,178,126,13,193,183,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,6,192,198,193,66,38,6,192,198,225,48,0,13,32,1,0,64,38,5,192,198,193,66,38,5,192,198,225,48,0,13,32,1,0,64,38,6,192,198,1,66,38,6,192,198,33,48,0,13,32,1,0,64,38,6,192,198,65,66,38,6,192,198,97,48,0,13,32,1,0,64,38,6,192,198,129,66,38,6,192,198,161,1,0,64,38,126,205,193,185,66,38,126,205,193,184,126,13,193,189,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,191,66,38,126,205,193,190,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,8,192,198,1,66,38,8,192,198,33,48,0,13,32,1,0,64,38,7,192,198,1,66,38,7,192,198,33,48,0,13,32,1,0,64,38,7,192,198,65,66,38,7,192,198,97,48,0,13,32,1,0,64,38,7,192,198,129,66,38,7,192,198,161,48,0,13,32,1,0,64,38,7,192,198,193,66,38,7,192,198,225,126,13,193,174,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,176,66,38,126,205,193,175,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,9,192,198,65,66,38,9,192,198,97,48,0,13,32,1,0,64,38,8,192,198,65,66,38,8,192,198,97,48,0,13,32,1,0,64,38,8,192,198,129,66,38,8,192,198,161,48,0,13,32,1,0,64,38,8,192,198,193,66,38,8,192,198,225,48,0,13,32,1,0,64,38,9,192,198,1,66,38,9,192,198,33,131,13,193,71,1,0,13,32,3,0,15,254,48,0,13,32,1,0,167,38,131,205,193,73,60,216,48,0,8,223,131,205,193,72,131,13,193,70,1,0,13,32,39,0,64,219,51,0,103,220,64,219,98,220,64,219,2,0,101,220,12,0,115,220,19,0,119,220,53,0,64,219,108,220,64,219,115,220,64,219,127,220,131,205,193,103,53,0,64,219,110,220,64,219,103,220,64,219,127,220,131,205,193,101,53,0,64,219,99,220,64,219,116,220,64,219,127,220,131,205,193,102,48,0,32,38,131,205,193,74,127,13,193,24,49,0,13,32,27,43,127,205,193,25,127,13,193,16,50,0,13,32,62,216,186,221,127,205,193,18,127,13,193,83,49,0,13,32,27,43,127,205,193,96,127,13,193,67,49,0,13,32,68,39,127,205,193,68,125,13,193,221,1,0,13,32,7,0,15,254,50,0,13,32,61,216,232,221,125,205,193,159,49,0,61,216,232,221,125,205,193,159,125,13,193,231,1,0,13,32,180,1,60,216,4,0,251,223,92,0,252,223,175,0,253,223,2,1,254,223,85,1,255,223,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,22,192,198,65,188,221,22,192,198,97,189,221,22,192,198,129,50,0,13,32,61,216,104,220,22,192,198,33,7,0,164,223,12,0,164,223,20,192,198,225,168,223,21,192,198,1,235,223,21,192,198,33,237,223,21,192,198,65,62,223,20,192,198,97,115,223,20,192,198,129,124,223,20,192,198,161,147,223,20,192,198,193,5,0,44,221,9,0,44,221,21,192,198,193,128,222,21,192,198,225,146,222,22,192,198,1,187,220,21,192,198,97,188,220,21,192,198,129,39,221,21,192,198,161,149,38,20,192,198,1,150,38,20,192,198,33,8,39,20,192,198,65,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,11,192,198,193,188,221,11,192,198,225,189,221,12,192,198,1,50,0,13,32,61,216,104,220,11,192,198,161,7,0,164,223,12,0,164,223,10,192,198,97,168,223,10,192,198,129,235,223,10,192,198,161,237,223,10,192,198,193,62,223,9,192,198,225,115,223,10,192,198,1,124,223,10,192,198,33,147,223,10,192,198,65,5,0,44,221,9,0,44,221,11,192,198,65,128,222,11,192,198,97,146,222,11,192,198,129,187,220,10,192,198,225,188,220,11,192,198,1,39,221,11,192,198,33,149,38,9,192,198,129,150,38,9,192,198,161,8,39,9,192,198,193,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,14,192,198,97,188,221,14,192,198,129,189,221,14,192,198,161,50,0,13,32,61,216,104,220,14,192,198,65,7,0,164,223,12,0,164,223,13,192,198,1,168,223,13,192,198,33,235,223,13,192,198,65,237,223,13,192,198,97,62,223,12,192,198,129,115,223,12,192,198,161,124,223,12,192,198,193,147,223,12,192,198,225,5,0,44,221,9,0,44,221,13,192,198,225,128,222,14,192,198,1,146,222,14,192,198,33,187,220,13,192,198,129,188,220,13,192,198,161,39,221,13,192,198,193,149,38,12,192,198,33,150,38,12,192,198,65,8,39,12,192,198,97,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,17,192,198,1,188,221,17,192,198,33,189,221,17,192,198,65,50,0,13,32,61,216,104,220,16,192,198,225,7,0,164,223,12,0,164,223,15,192,198,161,168,223,15,192,198,193,235,223,15,192,198,225,237,223,16,192,198,1,62,223,15,192,198,33,115,223,15,192,198,65,124,223,15,192,198,97,147,223,15,192,198,129,5,0,44,221,9,0,44,221,16,192,198,129,128,222,16,192,198,161,146,222,16,192,198,193,187,220,16,192,198,33,188,220,16,192,198,65,39,221,16,192,198,97,149,38,14,192,198,193,150,38,14,192,198,225,8,39,15,192,198,1,48,0,13,32,5,0,60,216,71,0,60,216,21,0,61,216,46,0,62,216,3,0,29,221,9,0,175,221,19,192,198,161,188,221,19,192,198,193,189,221,19,192,198,225,50,0,13,32,61,216,104,220,19,192,198,129,7,0,164,223,12,0,164,223,18,192,198,65,168,223,18,192,198,97,235,223,18,192,198,129,237,223,18,192,198,161,62,223,17,192,198,193,115,223,17,192,198,225,124,223,18,192,198,1,147,223,18,192,198,33,5,0,44,221,9,0,44,221,19,192,198,33,128,222,19,192,198,65,146,222,19,192,198,97,187,220,18,192,198,193,188,220,18,192,198,225,39,221,19,192,198,1,149,38,17,192,198,97,150,38,17,192,198,129,8,39,17,192,198,161,6,0,100,39,178,0,100,39,15,0,60,216,44,0,61,216,69,0,62,216,2,0,175,221,126,205,193,147,188,221,126,205,193,150,189,221,126,205,193,153,1,0,13,32,15,0,15,254,49,0,13,32,61,216,1,0,104,220,126,205,193,228,139,220,50,0,13,32,61,216,104,220,126,205,193,224,48,0,61,216,1,0,104,220,126,205,193,228,139,220,50,0,13,32,61,216,104,220,126,205,193,224,7,0,164,223,12,0,164,223,126,205,193,51,168,223,126,205,193,54,235,223,126,205,193,24,237,223,126,205,193,39,62,223,126,205,193,30,115,223,126,205,193,33,124,223,126,205,193,97,147,223,126,205,193,21,9,0,188,220,15,0,188,220,126,205,193,42,39,221,126,205,193,36,44,221,126,205,193,45,128,222,126,205,193,60,146,222,126,205,193,63,102,220,9,0,103,220,15,0,104,220,25,0,105,220,50,0,187,220,126,205,193,48,242,127,126,13,193,246,13,32,61,216,102,220,126,205,193,247,241,127,126,13,193,248,13,32,61,216,1,0,102,220,126,205,193,249,103,220,126,205,193,250,49,0,13,32,61,216,1,0,102,220,13,0,103,220,241,127,126,13,193,237,13,32,61,216,1,0,102,220,126,205,193,238,103,220,126,205,193,240,242,127,126,13,193,236,13,32,61,216,102,220,126,205,193,239,49,0,13,32,61,216,1,0,102,220,13,0,103,220,241,127,126,13,193,232,13,32,61,216,1,0,102,220,126,205,193,233,103,220,126,205,193,235,242,127,126,13,193,231,13,32,61,216,102,220,126,205,193,234,149,38,126,205,193,18,150,38,126,205,193,27,8,39,126,205,193,57,125,13,193,235,1,0,13,32,200,1,60,216,4,0,251,223,96,0,252,223,183,0,253,223,14,1,254,223,101,1,255,223,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,36,192,198,1,188,221,36,192,198,33,189,221,36,192,198,65,49,0,13,32,61,216,1,0,104,220,35,192,198,193,105,220,35,192,198,225,7,0,164,223,12,0,164,223,34,192,198,129,168,223,34,192,198,161,235,223,34,192,198,193,237,223,34,192,198,225,62,223,34,192,198,1,115,223,34,192,198,33,124,223,34,192,198,65,147,223,34,192,198,97,5,0,44,221,9,0,44,221,35,192,198,97,128,222,35,192,198,129,146,222,35,192,198,161,187,220,35,192,198,1,188,220,35,192,198,33,39,221,35,192,198,65,149,38,33,192,198,161,150,38,33,192,198,193,8,39,33,192,198,225,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,25,192,198,1,188,221,25,192,198,33,189,221,25,192,198,65,49,0,13,32,61,216,1,0,104,220,24,192,198,193,105,220,24,192,198,225,7,0,164,223,12,0,164,223,23,192,198,129,168,223,23,192,198,161,235,223,23,192,198,193,237,223,23,192,198,225,62,223,23,192,198,1,115,223,23,192,198,33,124,223,23,192,198,65,147,223,23,192,198,97,5,0,44,221,9,0,44,221,24,192,198,97,128,222,24,192,198,129,146,222,24,192,198,161,187,220,24,192,198,1,188,220,24,192,198,33,39,221,24,192,198,65,149,38,22,192,198,161,150,38,22,192,198,193,8,39,22,192,198,225,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,27,192,198,193,188,221,27,192,198,225,189,221,28,192,198,1,49,0,13,32,61,216,1,0,104,220,27,192,198,129,105,220,27,192,198,161,7,0,164,223,12,0,164,223,26,192,198,65,168,223,26,192,198,97,235,223,26,192,198,129,237,223,26,192,198,161,62,223,25,192,198,193,115,223,25,192,198,225,124,223,26,192,198,1,147,223,26,192,198,33,5,0,44,221,9,0,44,221,27,192,198,33,128,222,27,192,198,65,146,222,27,192,198,97,187,220,26,192,198,193,188,220,26,192,198,225,39,221,27,192,198,1,149,38,25,192,198,97,150,38,25,192,198,129,8,39,25,192,198,161,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,30,192,198,129,188,221,30,192,198,161,189,221,30,192,198,193,49,0,13,32,61,216,1,0,104,220,30,192,198,65,105,220,30,192,198,97,7,0,164,223,12,0,164,223,29,192,198,1,168,223,29,192,198,33,235,223,29,192,198,65,237,223,29,192,198,97,62,223,28,192,198,129,115,223,28,192,198,161,124,223,28,192,198,193,147,223,28,192,198,225,5,0,44,221,9,0,44,221,29,192,198,225,128,222,30,192,198,1,146,222,30,192,198,33,187,220,29,192,198,129,188,220,29,192,198,161,39,221,29,192,198,193,149,38,28,192,198,33,150,38,28,192,198,65,8,39,28,192,198,97,48,0,13,32,5,0,60,216,75,0,60,216,25,0,61,216,50,0,62,216,3,0,29,221,9,0,175,221,33,192,198,65,188,221,33,192,198,97,189,221,33,192,198,129,49,0,13,32,61,216,1,0,104,220,33,192,198,1,105,220,33,192,198,33,7,0,164,223,12,0,164,223,31,192,198,193,168,223,31,192,198,225,235,223,32,192,198,1,237,223,32,192,198,33,62,223,31,192,198,65,115,223,31,192,198,97,124,223,31,192,198,129,147,223,31,192,198,161,5,0,44,221,9,0,44,221,32,192,198,161,128,222,32,192,198,193,146,222,32,192,198,225,187,220,32,192,198,65,188,220,32,192,198,97,39,221,32,192,198,129,149,38,30,192,198,225,150,38,31,192,198,1,8,39,31,192,198,33,6,0,100,39,163,0,100,39,15,0,60,216,58,0,61,216,83,0,62,216,2,0,175,221,126,205,193,148,188,221,126,205,193,151,189,221,126,205,193,154,1,0,13,32,22,0,15,254,49,0,13,32,61,216,2,0,104,220,126,205,193,227,105,220,126,205,193,229,139,220,49,0,13,32,61,216,1,0,104,220,126,205,193,223,105,220,126,205,193,225,48,0,61,216,2,0,104,220,126,205,193,227,105,220,126,205,193,229,139,220,49,0,13,32,61,216,1,0,104,220,126,205,193,223,105,220,126,205,193,225,7,0,164,223,12,0,164,223,126,205,193,52,168,223,126,205,193,55,235,223,126,205,193,25,237,223,126,205,193,40,62,223,126,205,193,31,115,223,126,205,193,34,124,223,126,205,193,96,147,223,126,205,193,22,8,0,188,220,15,0,188,220,126,205,193,43,39,221,126,205,193,37,44,221,126,205,193,46,128,222,126,205,193,61,146,222,126,205,193,64,102,220,7,0,103,220,13,0,105,220,23,0,187,220,126,205,193,49,242,127,126,13,193,251,13,32,61,216,102,220,126,205,193,252,241,127,126,13,193,253,13,32,61,216,1,0,102,220,126,205,193,254,103,220,126,205,193,255,49,0,13,32,61,216,1,0,102,220,13,0,103,220,241,127,126,13,193,242,13,32,61,216,1,0,102,220,126,205,193,243,103,220,126,205,193,245,242,127,126,13,193,241,13,32,61,216,102,220,126,205,193,244,149,38,126,205,193,19,150,38,126,205,193,28,8,39,126,205,193,58,126,13,193,220,48,0,60,216,4,0,251,223,36,192,198,98,252,223,36,192,198,162,253,223,36,192,198,226,254,223,37,192,198,34,255,223,37,192,198,98,126,13,193,221,48,0,60,216,4,0,251,223,37,192,198,162,252,223,37,192,198,226,253,223,38,192,198,34,254,223,38,192,198,98,255,223,38,192,198,162,126,13,193,219,48,0,60,216,4,0,251,223,38,192,198,226,252,223,39,192,198,34,253,223,39,192,198,98,254,223,39,192,198,162,255,223,39,192,198,226,126,13,193,65,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,41,192,198,33,66,38,41,192,198,65,48,0,13,32,1,0,64,38,40,192,198,33,66,38,40,192,198,65,48,0,13,32,1,0,64,38,40,192,198,97,66,38,40,192,198,129,48,0,13,32,1,0,64,38,40,192,198,161,66,38,40,192,198,193,48,0,13,32,1,0,64,38,40,192,198,225,66,38,41,192,198,1,1,0,64,38,126,205,193,67,66,38,126,205,193,66,126,13,193,161,48,0,13,32,1,0,64,38,126,205,193,163,66,38,126,205,193,162,126,13,193,89,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,42,192,198,97,66,38,42,192,198,129,48,0,13,32,1,0,64,38,41,192,198,97,66,38,41,192,198,129,48,0,13,32,1,0,64,38,41,192,198,161,66,38,41,192,198,193,48,0,13,32,1,0,64,38,41,192,198,225,66,38,42,192,198,1,48,0,13,32,1,0,64,38,42,192,198,33,66,38,42,192,198,65,1,0,64,38,126,205,193,91,66,38,126,205,193,90,42,0,198,161,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,44,192,198,1,66,38,44,192,198,33,48,0,13,32,1,0,64,38,43,192,198,1,66,38,43,192,198,33,48,0,13,32,1,0,64,38,43,192,198,65,66,38,43,192,198,97,48,0,13,32,1,0,64,38,43,192,198,129,66,38,43,192,198,161,48,0,13,32,1,0,64,38,43,192,198,193,66,38,43,192,198,225,1,0,64,38,42,192,198,193,66,38,42,192,198,225,126,13,193,81,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,45,192,198,65,66,38,45,192,198,97,48,0,13,32,1,0,64,38,44,192,198,65,66,38,44,192,198,97,48,0,13,32,1,0,64,38,44,192,198,129,66,38,44,192,198,161,48,0,13,32,1,0,64,38,44,192,198,193,66,38,44,192,198,225,48,0,13,32,1,0,64,38,45,192,198,1,66,38,45,192,198,33,1,0,64,38,126,205,193,83,66,38,126,205,193,82,126,13,193,75,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,46,192,198,129,66,38,46,192,198,161,48,0,13,32,1,0,64,38,45,192,198,129,66,38,45,192,198,161,48,0,13,32,1,0,64,38,45,192,198,193,66,38,45,192,198,225,48,0,13,32,1,0,64,38,46,192,198,1,66,38,46,192,198,33,48,0,13,32,1,0,64,38,46,192,198,65,66,38,46,192,198,97,1,0,64,38,126,205,193,77,66,38,126,205,193,76,125,13,193,253,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,47,192,198,193,66,38,47,192,198,225,48,0,13,32,1,0,64,38,46,192,198,193,66,38,46,192,198,225,48,0,13,32,1,0,64,38,47,192,198,1,66,38,47,192,198,33,48,0,13,32,1,0,64,38,47,192,198,65,66,38,47,192,198,97,48,0,13,32,1,0,64,38,47,192,198,129,66,38,47,192,198,161,1,0,64,38,125,205,193,255,66,38,125,205,193,254,126,13,193,71,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,49,192,198,1,66,38,49,192,198,33,48,0,13,32,1,0,64,38,48,192,198,1,66,38,48,192,198,33,48,0,13,32,1,0,64,38,48,192,198,65,66,38,48,192,198,97,48,0,13,32,1,0,64,38,48,192,198,129,66,38,48,192,198,161,48,0,13,32,1,0,64,38,48,192,198,193,66,38,48,192,198,225,1,0,64,38,126,205,193,73,66,38,126,205,193,72,126,13,193,131,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,50,192,198,65,66,38,50,192,198,97,48,0,13,32,1,0,64,38,49,192,198,65,66,38,49,192,198,97,48,0,13,32,1,0,64,38,49,192,198,129,66,38,49,192,198,161,48,0,13,32,1,0,64,38,49,192,198,193,66,38,49,192,198,225,48,0,13,32,1,0,64,38,50,192,198,1,66,38,50,192,198,33,1,0,64,38,126,205,193,133,66,38,126,205,193,132,126,13,193,134,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,51,192,198,129,66,38,51,192,198,161,48,0,13,32,1,0,64,38,50,192,198,129,66,38,50,192,198,161,48,0,13,32,1,0,64,38,50,192,198,193,66,38,50,192,198,225,48,0,13,32,1,0,64,38,51,192,198,1,66,38,51,192,198,33,48,0,13,32,1,0,64,38,51,192,198,65,66,38,51,192,198,97,1,0,64,38,126,205,193,136,66,38,126,205,193,135,126,13,193,68,2,0,13,32,5,0,60,216,10,0,15,254,48,0,13,32,1,0,64,38,126,205,193,70,66,38,126,205,193,69,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,52,192,198,193,66,38,52,192,198,225,48,0,13,32,1,0,64,38,51,192,198,193,66,38,51,192,198,225,48,0,13,32,1,0,64,38,52,192,198,1,66,38,52,192,198,33,48,0,13,32,1,0,64,38,52,192,198,65,66,38,52,192,198,97,48,0,13,32,1,0,64,38,52,192,198,129,66,38,52,192,198,161,125,13,193,76,50,0,13,32,61,216,168,220,125,205,193,45,125,13,193,62,50,0,13,32,61,216,171,220,125,205,193,63,125,13,193,38,50,0,13,32,60,216,43,223,125,205,193,40,125,13,193,247,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,54,192,198,1,66,38,54,192,198,33,48,0,13,32,1,0,64,38,53,192,198,1,66,38,53,192,198,33,48,0,13,32,1,0,64,38,53,192,198,65,66,38,53,192,198,97,48,0,13,32,1,0,64,38,53,192,198,129,66,38,53,192,198,161,48,0,13,32,1,0,64,38,53,192,198,193,66,38,53,192,198,225,1,0,64,38,125,205,193,249,66,38,125,205,193,248,125,13,193,250,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,55,192,198,65,66,38,55,192,198,97,48,0,13,32,1,0,64,38,54,192,198,65,66,38,54,192,198,97,48,0,13,32,1,0,64,38,54,192,198,129,66,38,54,192,198,161,48,0,13,32,1,0,64,38,54,192,198,193,66,38,54,192,198,225,48,0,13,32,1,0,64,38,55,192,198,1,66,38,55,192,198,33,1,0,64,38,125,205,193,252,66,38,125,205,193,251,126,13,193,8,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,56,192,198,129,66,38,56,192,198,161,48,0,13,32,1,0,64,38,55,192,198,129,66,38,55,192,198,161,48,0,13,32,1,0,64,38,55,192,198,193,66,38,55,192,198,225,48,0,13,32,1,0,64,38,56,192,198,1,66,38,56,192,198,33,48,0,13,32,1,0,64,38,56,192,198,65,66,38,56,192,198,97,1,0,64,38,126,205,193,10,66,38,126,205,193,9,126,13,193,2,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,57,192,198,193,66,38,57,192,198,225,48,0,13,32,1,0,64,38,56,192,198,193,66,38,56,192,198,225,48,0,13,32,1,0,64,38,57,192,198,1,66,38,57,192,198,33,48,0,13,32,1,0,64,38,57,192,198,65,66,38,57,192,198,97,48,0,13,32,1,0,64,38,57,192,198,129,66,38,57,192,198,161,1,0,64,38,126,205,193,4,66,38,126,205,193,3,125,13,193,241,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,59,192,198,1,66,38,59,192,198,33,48,0,13,32,1,0,64,38,58,192,198,1,66,38,58,192,198,33,48,0,13,32,1,0,64,38,58,192,198,65,66,38,58,192,198,97,48,0,13,32,1,0,64,38,58,192,198,129,66,38,58,192,198,161,48,0,13,32,1,0,64,38,58,192,198,193,66,38,58,192,198,225,1,0,64,38,125,205,193,243,66,38,125,205,193,242,125,13,193,244,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,60,192,198,65,66,38,60,192,198,97,48,0,13,32,1,0,64,38,59,192,198,65,66,38,59,192,198,97,48,0,13,32,1,0,64,38,59,192,198,129,66,38,59,192,198,161,48,0,13,32,1,0,64,38,59,192,198,193,66,38,59,192,198,225,48,0,13,32,1,0,64,38,60,192,198,1,66,38,60,192,198,33,1,0,64,38,125,205,193,246,66,38,125,205,193,245,126,13,193,180,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,61,192,198,129,66,38,61,192,198,161,48,0,13,32,1,0,64,38,60,192,198,129,66,38,60,192,198,161,48,0,13,32,1,0,64,38,60,192,198,193,66,38,60,192,198,225,48,0,13,32,1,0,64,38,61,192,198,1,66,38,61,192,198,33,48,0,13,32,1,0,64,38,61,192,198,65,66,38,61,192,198,97,1,0,64,38,126,205,193,182,66,38,126,205,193,181,126,13,193,192,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,62,192,198,193,66,38,62,192,198,225,48,0,13,32,1,0,64,38,61,192,198,193,66,38,61,192,198,225,48,0,13,32,1,0,64,38,62,192,198,1,66,38,62,192,198,33,48,0,13,32,1,0,64,38,62,192,198,65,66,38,62,192,198,97,48,0,13,32,1,0,64,38,62,192,198,129,66,38,62,192,198,161,1,0,64,38,126,205,193,194,66,38,126,205,193,193,126,13,193,195,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,64,192,198,1,66,38,64,192,198,33,48,0,13,32,1,0,64,38,63,192,198,1,66,38,63,192,198,33,48,0,13,32,1,0,64,38,63,192,198,65,66,38,63,192,198,97,48,0,13,32,1,0,64,38,63,192,198,129,66,38,63,192,198,161,48,0,13,32,1,0,64,38,63,192,198,193,66,38,63,192,198,225,1,0,64,38,126,205,193,197,66,38,126,205,193,196,126,13,193,137,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,65,192,198,65,66,38,65,192,198,97,48,0,13,32,1,0,64,38,64,192,198,65,66,38,64,192,198,97,48,0,13,32,1,0,64,38,64,192,198,129,66,38,64,192,198,161,48,0,13,32,1,0,64,38,64,192,198,193,66,38,64,192,198,225,48,0,13,32,1,0,64,38,65,192,198,1,66,38,65,192,198,33,1,0,64,38,126,205,193,139,66,38,126,205,193,138,126,13,193,11,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,66,192,198,129,66,38,66,192,198,161,48,0,13,32,1,0,64,38,65,192,198,129,66,38,65,192,198,161,48,0,13,32,1,0,64,38,65,192,198,193,66,38,65,192,198,225,48,0,13,32,1,0,64,38,66,192,198,1,66,38,66,192,198,33,48,0,13,32,1,0,64,38,66,192,198,65,66,38,66,192,198,97,1,0,64,38,126,205,193,13,66,38,126,205,193,12,126,13,193,86,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,67,192,198,193,66,38,67,192,198,225,48,0,13,32,1,0,64,38,66,192,198,193,66,38,66,192,198,225,48,0,13,32,1,0,64,38,67,192,198,1,66,38,67,192,198,33,48,0,13,32,1,0,64,38,67,192,198,65,66,38,67,192,198,97,48,0,13,32,1,0,64,38,67,192,198,129,66,38,67,192,198,161,1,0,64,38,126,205,193,88,66,38,126,205,193,87,126,13,193,14,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,69,192,198,1,66,38,69,192,198,33,48,0,13,32,1,0,64,38,68,192,198,1,66,38,68,192,198,33,48,0,13,32,1,0,64,38,68,192,198,65,66,38,68,192,198,97,48,0,13,32,1,0,64,38,68,192,198,129,66,38,68,192,198,161,48,0,13,32,1,0,64,38,68,192,198,193,66,38,68,192,198,225,1,0,64,38,126,205,193,16,66,38,126,205,193,15,126,13,193,198,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,70,192,198,65,66,38,70,192,198,97,48,0,13,32,1,0,64,38,69,192,198,65,66,38,69,192,198,97,48,0,13,32,1,0,64,38,69,192,198,129,66,38,69,192,198,161,48,0,13,32,1,0,64,38,69,192,198,193,66,38,69,192,198,225,48,0,13,32,1,0,64,38,70,192,198,1,66,38,70,192,198,33,1,0,64,38,126,205,193,200,66,38,126,205,193,199,126,13,193,210,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,71,192,198,129,66,38,71,192,198,161,48,0,13,32,1,0,64,38,70,192,198,129,66,38,70,192,198,161,48,0,13,32,1,0,64,38,70,192,198,193,66,38,70,192,198,225,48,0,13,32,1,0,64,38,71,192,198,1,66,38,71,192,198,33,48,0,13,32,1,0,64,38,71,192,198,65,66,38,71,192,198,97,1,0,64,38,126,205,193,212,66,38,126,205,193,211,126,13,193,201,48,0,13,32,1,0,64,38,126,205,193,203,66,38,126,205,193,202,126,13,193,204,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,72,192,198,193,66,38,72,192,198,225,48,0,13,32,1,0,64,38,71,192,198,193,66,38,71,192,198,225,48,0,13,32,1,0,64,38,72,192,198,1,66,38,72,192,198,33,48,0,13,32,1,0,64,38,72,192,198,65,66,38,72,192,198,97,48,0,13,32,1,0,64,38,72,192,198,129,66,38,72,192,198,161,1,0,64,38,126,205,193,206,66,38,126,205,193,205,126,13,193,207,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,74,192,198,1,66,38,74,192,198,33,48,0,13,32,1,0,64,38,73,192,198,1,66,38,73,192,198,33,48,0,13,32,1,0,64,38,73,192,198,65,66,38,73,192,198,97,48,0,13,32,1,0,64,38,73,192,198,129,66,38,73,192,198,161,48,0,13,32,1,0,64,38,73,192,198,193,66,38,73,192,198,225,1,0,64,38,126,205,193,209,66,38,126,205,193,208,126,13,193,103,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,75,192,198,65,66,38,75,192,198,97,48,0,13,32,1,0,64,38,74,192,198,65,66,38,74,192,198,97,48,0,13,32,1,0,64,38,74,192,198,129,66,38,74,192,198,161,48,0,13,32,1,0,64,38,74,192,198,193,66,38,74,192,198,225,48,0,13,32,1,0,64,38,75,192,198,1,66,38,75,192,198,33,1,0,64,38,126,205,193,105,66,38,126,205,193,104,126,13,193,106,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,76,192,198,129,66,38,76,192,198,161,48,0,13,32,1,0,64,38,75,192,198,129,66,38,75,192,198,161,48,0,13,32,1,0,64,38,75,192,198,193,66,38,75,192,198,225,48,0,13,32,1,0,64,38,76,192,198,1,66,38,76,192,198,33,48,0,13,32,1,0,64,38,76,192,198,65,66,38,76,192,198,97,1,0,64,38,126,205,193,108,66,38,126,205,193,107,126,13,193,140,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,77,192,198,193,66,38,77,192,198,225,48,0,13,32,1,0,64,38,76,192,198,193,66,38,76,192,198,225,48,0,13,32,1,0,64,38,77,192,198,1,66,38,77,192,198,33,48,0,13,32,1,0,64,38,77,192,198,65,66,38,77,192,198,97,48,0,13,32,1,0,64,38,77,192,198,129,66,38,77,192,198,161,1,0,64,38,126,205,193,142,66,38,126,205,193,141,126,13,193,143,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,79,192,198,1,66,38,79,192,198,33,48,0,13,32,1,0,64,38,78,192,198,1,66,38,78,192,198,33,48,0,13,32,1,0,64,38,78,192,198,65,66,38,78,192,198,97,48,0,13,32,1,0,64,38,78,192,198,129,66,38,78,192,198,161,48,0,13,32,1,0,64,38,78,192,198,193,66,38,78,192,198,225,1,0,64,38,126,205,193,145,66,38,126,205,193,144,126,13,193,5,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,80,192,198,65,66,38,80,192,198,97,48,0,13,32,1,0,64,38,79,192,198,65,66,38,79,192,198,97,48,0,13,32,1,0,64,38,79,192,198,129,66,38,79,192,198,161,48,0,13,32,1,0,64,38,79,192,198,193,66,38,79,192,198,225,48,0,13,32,1,0,64,38,80,192,198,1,66,38,80,192,198,33,1,0,64,38,126,205,193,7,66,38,126,205,193,6,125,13,193,229,1,0,13,32,195,1,60,216,4,0,251,223,95,0,252,223,181,0,253,223,11,1,254,223,97,1,255,223,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,93,192,198,225,188,221,94,192,198,1,189,221,94,192,198,33,50,0,13,32,62,216,209,221,93,192,198,193,8,0,147,223,15,0,147,223,92,192,198,97,164,223,92,192,198,129,168,223,92,192,198,161,235,223,92,192,198,193,237,223,92,192,198,225,62,223,91,192,198,225,115,223,92,192,198,1,124,223,92,192,198,33,132,223,92,192,198,65,5,0,44,221,9,0,44,221,93,192,198,97,128,222,93,192,198,129,146,222,93,192,198,161,187,220,93,192,198,1,188,220,93,192,198,33,39,221,93,192,198,65,149,38,91,192,198,129,150,38,91,192,198,161,8,39,91,192,198,193,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,82,192,198,225,188,221,83,192,198,1,189,221,83,192,198,33,50,0,13,32,62,216,209,221,82,192,198,193,8,0,147,223,15,0,147,223,81,192,198,97,164,223,81,192,198,129,168,223,81,192,198,161,235,223,81,192,198,193,237,223,81,192,198,225,62,223,80,192,198,225,115,223,81,192,198,1,124,223,81,192,198,33,132,223,81,192,198,65,5,0,44,221,9,0,44,221,82,192,198,97,128,222,82,192,198,129,146,222,82,192,198,161,187,220,82,192,198,1,188,220,82,192,198,33,39,221,82,192,198,65,149,38,80,192,198,129,150,38,80,192,198,161,8,39,80,192,198,193,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,85,192,198,161,188,221,85,192,198,193,189,221,85,192,198,225,50,0,13,32,62,216,209,221,85,192,198,129,8,0,147,223,15,0,147,223,84,192,198,33,164,223,84,192,198,65,168,223,84,192,198,97,235,223,84,192,198,129,237,223,84,192,198,161,62,223,83,192,198,161,115,223,83,192,198,193,124,223,83,192,198,225,132,223,84,192,198,1,5,0,44,221,9,0,44,221,85,192,198,33,128,222,85,192,198,65,146,222,85,192,198,97,187,220,84,192,198,193,188,220,84,192,198,225,39,221,85,192,198,1,149,38,83,192,198,65,150,38,83,192,198,97,8,39,83,192,198,129,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,88,192,198,97,188,221,88,192,198,129,189,221,88,192,198,161,50,0,13,32,62,216,209,221,88,192,198,65,8,0,147,223,15,0,147,223,86,192,198,225,164,223,87,192,198,1,168,223,87,192,198,33,235,223,87,192,198,65,237,223,87,192,198,97,62,223,86,192,198,97,115,223,86,192,198,129,124,223,86,192,198,161,132,223,86,192,198,193,5,0,44,221,9,0,44,221,87,192,198,225,128,222,88,192,198,1,146,222,88,192,198,33,187,220,87,192,198,129,188,220,87,192,198,161,39,221,87,192,198,193,149,38,86,192,198,1,150,38,86,192,198,33,8,39,86,192,198,65,48,0,13,32,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,91,192,198,33,188,221,91,192,198,65,189,221,91,192,198,97,50,0,13,32,62,216,209,221,91,192,198,1,8,0,147,223,15,0,147,223,89,192,198,161,164,223,89,192,198,193,168,223,89,192,198,225,235,223,90,192,198,1,237,223,90,192,198,33,62,223,89,192,198,33,115,223,89,192,198,65,124,223,89,192,198,97,132,223,89,192,198,129,5,0,44,221,9,0,44,221,90,192,198,161,128,222,90,192,198,193,146,222,90,192,198,225,187,220,90,192,198,65,188,220,90,192,198,97,39,221,90,192,198,129,149,38,88,192,198,193,150,38,88,192,198,225,8,39,89,192,198,1,5,0,60,216,74,0,60,216,21,0,61,216,49,0,62,216,3,0,29,221,9,0,175,221,126,205,193,146,188,221,126,205,193,149,189,221,126,205,193,152,50,0,13,32,62,216,209,221,126,205,193,218,8,0,147,223,15,0,147,223,126,205,193,20,164,223,126,205,193,50,168,223,126,205,193,53,235,223,126,205,193,23,237,223,126,205,193,38,62,223,126,205,193,29,115,223,126,205,193,32,124,223,126,205,193,98,132,223,126,205,193,102,5,0,44,221,9,0,44,221,126,205,193,44,128,222,126,205,193,59,146,222,126,205,193,62,187,220,126,205,193,47,188,220,126,205,193,41,39,221,126,205,193,35,149,38,126,205,193,17,150,38,126,205,193,26,8,39,126,205,193,56,94,0,198,65,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,95,192,198,161,66,38,95,192,198,193,48,0,13,32,1,0,64,38,94,192,198,161,66,38,94,192,198,193,48,0,13,32,1,0,64,38,94,192,198,225,66,38,95,192,198,1,48,0,13,32,1,0,64,38,95,192,198,33,66,38,95,192,198,65,48,0,13,32,1,0,64,38,95,192,198,97,66,38,95,192,198,129,1,0,64,38,94,192,198,97,66,38,94,192,198,129,126,13,193,164,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,96,192,198,225,66,38,97,192,198,1,48,0,13,32,1,0,64,38,95,192,198,225,66,38,96,192,198,1,48,0,13,32,1,0,64,38,96,192,198,33,66,38,96,192,198,65,48,0,13,32,1,0,64,38,96,192,198,97,66,38,96,192,198,129,48,0,13,32,1,0,64,38,96,192,198,161,66,38,96,192,198,193,1,0,64,38,126,205,193,166,66,38,126,205,193,165,126,13,193,167,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,98,192,198,33,66,38,98,192,198,65,48,0,13,32,1,0,64,38,97,192,198,33,66,38,97,192,198,65,48,0,13,32,1,0,64,38,97,192,198,97,66,38,97,192,198,129,48,0,13,32,1,0,64,38,97,192,198,161,66,38,97,192,198,193,48,0,13,32,1,0,64,38,97,192,198,225,66,38,98,192,198,1,1,0,64,38,126,205,193,169,66,38,126,205,193,168,126,13,193,213,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,99,192,198,97,66,38,99,192,198,129,48,0,13,32,1,0,64,38,98,192,198,97,66,38,98,192,198,129,48,0,13,32,1,0,64,38,98,192,198,161,66,38,98,192,198,193,48,0,13,32,1,0,64,38,98,192,198,225,66,38,99,192,198,1,48,0,13,32,1,0,64,38,99,192,198,33,66,38,99,192,198,65,1,0,64,38,126,205,193,215,66,38,126,205,193,214,126,13,193,109,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,100,192,198,161,66,38,100,192,198,193,48,0,13,32,1,0,64,38,99,192,198,161,66,38,99,192,198,193,48,0,13,32,1,0,64,38,99,192,198,225,66,38,100,192,198,1,48,0,13,32,1,0,64,38,100,192,198,33,66,38,100,192,198,65,48,0,13,32,1,0,64,38,100,192,198,97,66,38,100,192,198,129,1,0,64,38,126,205,193,111,66,38,126,205,193,110,126,13,193,112,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,101,192,198,225,66,38,102,192,198,1,48,0,13,32,1,0,64,38,100,192,198,225,66,38,101,192,198,1,48,0,13,32,1,0,64,38,101,192,198,33,66,38,101,192,198,65,48,0,13,32,1,0,64,38,101,192,198,97,66,38,101,192,198,129,48,0,13,32,1,0,64,38,101,192,198,161,66,38,101,192,198,193,1,0,64,38,126,205,193,114,66,38,126,205,193,113,126,13,193,115,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,103,192,198,33,66,38,103,192,198,65,48,0,13,32,1,0,64,38,102,192,198,33,66,38,102,192,198,65,48,0,13,32,1,0,64,38,102,192,198,97,66,38,102,192,198,129,48,0,13,32,1,0,64,38,102,192,198,161,66,38,102,192,198,193,48,0,13,32,1,0,64,38,102,192,198,225,66,38,103,192,198,1,1,0,64,38,126,205,193,117,66,38,126,205,193,116,126,13,193,118,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,104,192,198,97,66,38,104,192,198,129,48,0,13,32,1,0,64,38,103,192,198,97,66,38,103,192,198,129,48,0,13,32,1,0,64,38,103,192,198,161,66,38,103,192,198,193,48,0,13,32,1,0,64,38,103,192,198,225,66,38,104,192,198,1,48,0,13,32,1,0,64,38,104,192,198,33,66,38,104,192,198,65,1,0,64,38,126,205,193,120,66,38,126,205,193,119,126,13,193,121,1,0,13,32,56,0,60,216,4,0,251,223,16,0,252,223,23,0,253,223,30,0,254,223,37,0,255,223,48,0,13,32,1,0,64,38,105,192,198,161,66,38,105,192,198,193,48,0,13,32,1,0,64,38,104,192,198,161,66,38,104,192,198,193,48,0,13,32,1,0,64,38,104,192,198,225,66,38,105,192,198,1,48,0,13,32,1,0,64,38,105,192,198,33,66,38,105,192,198,65,48,0,13,32,1,0,64,38,105,192,198,97,66,38,105,192,198,129,1,0,64,38,126,205,193,123,66,38,126,205,193,122,126,13,193,124,48,0,13,32,1,0,64,38,126,205,193,126,66,38,126,205,193,125,126,13,193,127,48,0,13,32,1,0,64,38,126,205,193,129,66,38,126,205,193,128,176,128,28,0,13,32,14,32,227,32,228,32,32,38,33,38,64,38,65,38,66,38,67,38,149,38,151,38,167,38,168,38,8,39,9,39,68,39,69,39,100,39,101,39,27,43,28,43,60,216,63,216,64,219,65,219,15,254,16,254,1,0,8,243,1,0,9,243,1,0,43,243,1,0,44,243,1,0,62,243,1,0,63,243,1,0,115,243,1,0,116,243,1,0,124,243,1,0,125,243,1,0,132,243,1,0,133,243,1,0,147,243,1,0,148,243,1,0,164,243,1,0,165,243,1,0,168,243,1,0,169,243,1,0,235,243,1,0,236,243,1,0,237,243,1,0,238,243,1,0,251,243,1,0,0,244,1,0,102,244,1,0,106,244,1,0,139,244,1,0,140,244,1,0,168,244,1,0,169,244,1,0,171,244,1,0,172,244,1,0,187,244,1,0,189,244,1,0,37,245,1,0,38,245,1,0,39,245,1,0,40,245,1,0,44,245,1,0,45,245,1,0,232,245,1,0,233,245,1,0,128,246,1,0,129,246,1,0,146,246,1,0,147,246,1,0,29,249,1,0,30,249,1,0,175,249,1,0,176,249,1,0,186,249,1,0,187,249,1,0,188,249,1,0,190,249,1,0,209,249,1,0,210,249,1,0,121,250,1,0,122,250,14,0,98,0,14,0,100,0,14,0,101,0,14,0,102,0,14,0,103,0,14,0,104,0,14,0,108,0,14,0,109,0,14,0,110,0,14,0,111,0,14,0,115,0,14,0,117,0,14,0,119,0,14,0,120,0,14,0,127,0,14,0,128,0,5,2,64,12,32,14,200,14,240,14,22,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,24,4,224,14,192,13,176,13,216,12,72,13,80,13,26,4,96,14,144,12,96,12,208,12,160,13,28,4,30,4,32,4,34,4,36,4,38,4,40,4,42,4,44,4,46,4,160,12,152,12,128,14,136,14,144,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,160,14,112,13,176,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,216,14,232,14,208,14,240,14,168,14,128,13,72,14,192,14,170,56,56,13,152,14,0,0,200,14,64,14,88,14,104,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,120,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,112,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,184,14,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,255,5,0,0,255,5,184,13,255,5,152,13,255,5,168,16,255,5,168,20,255,5,168,24,255,5,168,28,255,5,168,32,255,5,168,36,255,5,168,40,255,5,168,44,255,5,168,48,255,5,168,52,255,1,170,170,3,0,83,0,74,0,41,0,103,238,0,16,93,13,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,56,51,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,76,46,0,0,76,46,0,0,76,46,0,0,76,46,0,0,240,46,0,0,240,46,0,0,100,47,0,0,100,47,0,0,32,51,0,0,50,105,114,84,1,0,156,8,204,1,64,0,192,0,59,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,111,0,119,0,127,0,135,0,141,0,149,0,157,0,165,0,173,0,181,0,189,0,197,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,205,0,213,0,220,0,228,0,234,0,242,0,48,0,56,0,48,0,56,0,48,0,56,0,249,0,1,1,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,25,1,33,1,41,1,49,1,57,1,65,1,73,1,81,1,48,0,48,0,48,0,48,0,82,1,48,0,48,0,90,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,98,1,48,0,48,0,48,0,105,1,109,1,114,1,48,0,122,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,138,1,146,1,154,1,162,1,168,1,48,0,171,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,187,1,17,1,48,0,48,0,9,1,195,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,9,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,188,1,252,1,52,2,116,2,180,2,244,2,192,0,192,0,192,0,192,0,52,3,112,3,168,3,192,0,192,0,192,0,228,3,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,91,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,179,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,3,0,202,1,4,0,202,34,4,0,202,67,4,0,202,100,4,0,202,133,4,0,202,166,4,0,202,199,4,0,202,232,4,0,202,9,5,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,3,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,3,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,3,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,58,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,77,0,62,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,68,134,82,0,68,5,82,0,68,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,80,5,71,0,80,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,71,0,44,134,76,0,44,134,77,0,44,5,77,0,44,0,0,0,0,0,0,0,0,134,73,0,70,134,73,0,46,5,73,0,46,134,74,0,48,134,75,0,48,134,77,0,48,5,77,0,48,5,81,0,48,134,79,0,50,134,81,0,50,134,83,0,50,134,73,0,52,5,73,0,52,134,74,0,54,134,78,0,54,197,34,0,0,134,77,0,58,134,74,0,58,134,72,0,62,5,72,0,62,5,74,0,64,5,84,0,64,134,77,0,66,134,75,0,68,5,76,0,68,134,81,0,70,192,0,0,0,192,0,0,0,134,80,0,54,5,80,0,54,134,75,0,72,5,75,0,72,135,70,0,76,0,0,0,0,0,0,0,0,134,77,0,78,5,79,0,78,5,74,0,80,134,75,0,80,5,75,0,80,134,76,0,80,192,0,0,0,192,0,0,0,134,76,0,82,134,74,0,84,134,72,0,90,5,72,0,90,134,71,0,92,5,71,0,92,201,6,0,0,134,86,0,92,5,86,0,92,5,88,0,92,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,5,73,0,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,79,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,72,0,54,5,72,0,54,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,84,0,92,5,84,0,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,0,0,134,73,0,86,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,75,0,90,5,75,0,90,192,0,0,0,192,0,0,0,134,76,0,68,5,78,0,48,134,84,0,70,5,84,0,70,134,74,0,92,5,74,0,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,81,0,64,5,80,0,68,5,77,0,80,5,70,0,60,192,0,0,0,192,0,0,0,134,71,0,42,134,71,0,46,5,71,0,46,134,74,0,64,134,72,0,80,5,74,0,78,5,78,0,92,0,0,0,0,0,0,0,0,134,71,0,44,134,73,0,82,134,78,0,84,134,76,0,50,5,76,0,50,134,72,0,60,5,72,0,60,134,73,0,74,5,73,0,74,134,73,0,76,5,73,0,76,134,71,0,90,5,71,0,90,5,73,0,42,5,74,0,42,5,76,0,42,5,76,0,44,5,73,0,70,5,74,0,46,5,74,0,48,5,75,0,48,5,85,0,50,5,81,0,50,5,86,0,50,5,83,0,50,5,87,0,50,5,90,0,50,5,91,0,50,5,74,0,60,5,74,0,54,5,70,0,54,5,71,0,54,5,78,0,54,5,79,0,54,5,76,0,56,5,71,0,56,5,75,0,56,5,74,0,58,5,77,0,58,5,71,0,58,5,76,0,64,5,77,0,64,5,79,0,64,197,162,0,0,5,77,0,66,5,80,0,66,5,73,0,66,5,75,0,68,5,79,0,68,5,71,0,68,5,81,0,70,197,226,0,0,5,83,0,70,5,79,0,72,5,75,0,76,5,77,0,76,5,79,0,76,5,81,0,76,5,82,0,76,5,83,0,76,5,85,0,76,5,70,0,76,5,86,0,76,5,73,0,78,5,77,0,78,5,75,0,60,5,80,0,78,5,82,0,78,5,79,0,80,5,76,0,80,5,73,0,82,5,76,0,82,5,74,0,84,5,78,0,84,5,72,0,86,5,74,0,90,5,70,0,90,5,75,0,92,5,76,0,92,201,230,0,0,5,89,0,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,70,0,44,5,92,0,50,5,75,0,54,5,70,0,56,5,73,0,60,5,78,0,62,5,70,0,64,5,72,0,74,0,0,0,0,0,0,0,0,192,0,0,0,197,34,1,0,197,98,1,0,192,0,0,0,192,0,0,0,197,162,1,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,5,77,0,56,5,78,0,56,192,0,0,0,7,71,0,56,192,0,0,0,192,0,0,0,6,75,0,76,6,79,0,76,6,86,0,76,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,78,0,54,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,32,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,170,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,32,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,170,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,79,97,5,5,79,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,100,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,0,42,197,226,1,0,197,34,2,0,5,73,0,44,5,70,0,46,5,70,0,48,5,71,0,48,5,75,0,50,5,89,0,50,5,73,0,58,5,71,0,60,5,70,0,62,5,72,0,64,5,70,0,66,5,73,0,68,5,70,0,70,5,74,0,70,5,71,0,70,5,75,0,70,5,72,0,70,197,98,2,0,5,85,0,70,5,78,0,70,5,79,0,70,5,70,0,72,5,72,0,76,5,76,0,76,5,70,0,80,5,70,0,82,5,71,0,82,5,72,0,82,5,79,0,66,5,71,0,84,5,70,0,86,5,70,0,92,5,85,0,92,0,0,0,0,0,0,0,0,5,70,10,96,5,70,38,96,5,70,50,96,5,70,60,96,5,70,82,96,5,70,98,97,192,0,0,0,192,0,0,0,192,0,0,0,5,72,0,44,192,0,0,0,192,0,0,0,135,79,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,72,0,68,192,0,0,0,135,84,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,73,0,42,7,74,0,42,197,162,2,0,192,0,0,0,192,0,0,0,192,0,0,0,7,81,0,50,8,83,0,50,6,89,0,50,192,0,0,0,6,73,0,58,192,0,0,0,192,0,0,0,7,82,0,68,192,0,0,0,7,73,0,70,6,78,0,70,6,79,0,70,192,0,0,0,192,0,0,0,192,0,0,0,6,71,0,82,7,77,0,66,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,2,0,5,74,0,44,5,72,0,48,5,71,0,52,5,71,0,66,5,74,0,68,5,73,0,72,5,74,0,76,5,84,0,76,5,71,0,78,5,73,0,80,5,72,0,92,5,76,0,54,192,0,0,0,192,0,0,0,192,0,0,0,5,75,0,58,5,78,0,58,5,71,0,72,5,74,0,82,5,77,0,82,5,75,0,44,5,73,0,48,5,72,0,52,5,73,0,54,5,71,0,62,5,78,0,64,5,72,0,66,5,78,0,68,5,74,0,72,5,78,0,76,5,72,0,78,5,78,0,78,5,73,0,84,5,70,0,88,5,73,0,92,5,72,0,42,5,75,0,42,5,76,0,48,5,77,0,50,5,84,0,50,5,88,0,50,5,82,0,50,5,76,0,58,5,76,0,70,5,81,0,78,5,75,0,82,5,87,0,92,7,76,0,42,192,0,0,0,6,74,0,46,192,0,0,0,6,87,0,50,192,0,0,0,6,74,0,60,6,70,0,54,7,76,0,56,7,74,0,58,7,77,0,58,6,71,0,58,6,75,0,58,6,73,0,60,6,79,0,64,6,78,0,64,7,70,0,64,7,73,0,66,6,80,0,66,7,75,0,68,6,79,0,68,7,71,0,68,7,81,0,70,6,79,0,72,6,73,0,78,7,77,0,78,6,74,0,80,7,73,0,82,7,76,0,82,6,70,0,82,7,74,0,84,7,78,0,84,192,0,0,0,6,75,0,92,6,76,0,92,7,81,0,92,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,0,54,192,0,0,0,192,0,0,0,6,70,0,64,6,70,0,66,192,0,0,0,6,71,0,68,6,70,0,76,6,71,0,76,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,75,0,78,5,76,0,78,192,0,0,0,5,80,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,77,0,84,5,77,0,84,134,73,0,90,5,73,0,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,81,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,135,83,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,74,0,52,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,74,0,52,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,76,0,46,5,76,0,46,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,75,0,64,5,75,0,64,134,76,0,64,134,71,0,72,134,82,0,76,5,71,0,42,5,72,0,80,134,72,0,56,5,72,0,56,134,73,0,62,5,73,0,62,134,79,0,92,5,79,0,92,134,74,0,42,134,73,0,66,134,73,0,42,134,76,0,42,5,75,0,84,134,71,0,86,5,71,0,86,5,76,0,84,134,73,0,56,5,73,0,56,5,80,0,72,5,78,0,50,5,80,0,76,5,80,0,70,5,80,0,50,192,0,0,0,192,0,0,0,134,74,0,78,134,78,0,92,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,134,74,0,56,5,74,0,56,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,70,0,52,5,70,0,78,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,77,0,46,5,77,0,46,134,74,0,62,5,74,0,62,134,75,0,62,5,75,0,62,134,76,0,62,5,76,0,62,134,71,0,64,5,71,0,64,134,73,0,64,5,73,0,64,134,82,0,70,5,82,0,70,134,77,0,70,5,77,0,70,192,0,0,0,192,0,0,0,134,72,0,72,5,72,0,72,134,76,0,72,5,76,0,72,134,77,0,72,5,77,0,72,134,70,0,74,5,70,0,74,134,71,0,74,5,71,0,74,135,71,0,76,5,71,0,76,134,89,0,76,5,89,0,76,134,72,0,84,5,72,0,84,192,0,0,0,192,0,0,0,134,80,0,92,5,80,0,92,134,70,38,93,5,70,38,93,134,71,38,93,5,71,38,93,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,79,0,48,5,82,0,64,5,76,0,66,5,81,0,68,5,87,0,76,5,88,0,76,5,78,0,80,0,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,77,0,54,5,77,0,54,134,83,0,64,5,83,0,64,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,0,0,0,0,134,76,0,56,5,80,0,64,192,0,0,0,134,77,0,68,5,77,0,68,134,72,0,46,5,72,0,46,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,56,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,78,0,66,5,75,0,52,5,78,0,72,5,74,0,66,5,72,0,58,5,75,0,66,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,70,0,58,6,70,0,60,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,0,56,5,70,0,84,133,5,0,56,6,70,0,84,5,5,0,64,5,82,0,92,5,5,0,70,5,71,0,50,5,5,0,48,5,83,0,92,5,5,0,48,5,77,0,92,5,5,0,80,5,75,0,46,5,5,0,42,5,73,0,50,5,5,0,42,5,74,0,50,5,5,0,70,5,72,0,50,5,5,0,42,6,74,0,50,5,5,0,82,5,70,0,50,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,92,134,81,48,0,12,3,255,255,0,92,134,84,0,92,5,81,48,0,12,3,255,255,0,92,5,84,16,97,174,5,1,0,1,3,255,255,32,97,134,70,65,3,255,255,32,97,134,70,84,97,174,5,1,0,1,3,255,255,170,97,134,70,65,3,255,255,170,97,134,70,16,97,5,5,1,0,1,3,255,255,32,97,5,70,65,3,255,255,32,97,5,70,84,97,5,5,1,0,1,3,255,255,170,97,5,70,65,3,255,255,170,97,5,70,5,2,64,12,32,14,192,14,232,14,22,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,92,185,96,185,100,185,104,185,108,185,112,185,116,185,120,185,124,186,128,185,132,185,136,185,140,185,144,185,148,185,152,185,156,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,92,168,96,168,100,168,104,168,108,168,112,168,116,168,120,168,124,168,128,168,132,168,136,168,140,168,144,168,148,168,152,168,156,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,112,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,153,110,185,113,153,113,249,113,153,114,89,114,136,14,217,114,185,137,153,137,249,137,89,138,153,153,185,160,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,110,168,113,136,113,232,113,136,114,72,114,128,14,200,114,168,137,136,137,232,137,72,138,136,153,168,160,72,154,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,200,88,6,8,8,8,250,93,232,93,249,98,232,98,200,96,153,101,136,101,249,102,232,102,25,102,8,102,121,103,104,103,89,103,72,103,153,109,136,109,249,110,232,110,25,110,8,110,200,108,249,108,232,108,57,115,40,115,217,113,200,113,121,114,104,114,10,8,12,8,153,125,136,125,249,126,232,126,25,126,8,126,154,129,136,129,250,129,232,129,250,130,232,130,26,130,8,130,249,134,232,134,25,134,8,134,217,132,200,132,153,138,136,138,57,139,40,139,217,137,200,137,57,138,40,138,121,138,104,138,25,139,8,139,249,145,232,145,249,153,232,153,89,154,153,157,136,157,185,158,168,158,25,158,8,158,232,128,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,14,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,16,8,1,0,8,14,18,8,1,0,16,14,0,13,8,13,24,14,20,8,200,12,72,12,32,14,217,56,187,72,200,128,169,128,200,56,169,72,187,88,187,92,169,88,169,92,217,112,187,72,200,112,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,3,0,83,0,74,0,41,0,55,17,1,16,149,6,0,96,1,0,0,96,106,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,228,31,0,0,228,31,0,0,228,31,0,0,228,31,0,0,12,34,0,0,12,34,0,0,82,34,0,0,82,34,0,0,82,34,0,0,50,105,114,84,1,0,64,8,241,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,224,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,83,0,74,0,41,0,11,30,1,16,25,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,32,0,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,2,0,0,0,16,32,2,15,3,0,83,0,74,0,41,0,175,38,1,16,0,0,0,0,1,0,0,96,6,0,60,0,68,0,98,0,102,0,117,0,124,0,170,170,4,0,0,96,47,17,1,32,6,30,1,32,120,220,1,80,167,38,1,32,184,38,1,32,5,0,133,0,32,0,41,0,49,0,146,0,118,220,1,144,171,66,0,96,1,0,0,96,189,38,1,32,13,0,0,96,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,118,0,0,32,7,0,0,0,21,0,0,0,120,0,0,0,120,0,0,0,3,0,0,0,0,0,0,0,31,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,0,0,170,170,60,1,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,8,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,32,0,0,0,36,0,0,0,36,1,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,3,0,69,0,52,0,61,0,31,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,111,0,0,32,1,0,32,0,116,0,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,101,28,0,32,7,0,0,0,23,0,0,0,103,28,0,0,103,28,0,0,3,0,0,0,0,0,0,0,203,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,101,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,47,221,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,98,0,60,0,225,0,60,0,60,0,60,0,193,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,100,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,146,2,60,0,60,0,60,0,183,1,60,0,239,1,60,0,60,0,60,0,238,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,101,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,104,0,60,0,231,1,60,0,60,0,60,0,230,1,60,0,229,1,60,0,60,0,60,0,228,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,108,0,60,0,233,1,60,0,60,0,60,0,232,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,111,0,60,0,75,1,60,0,60,0,60,0,74,1,60,0,60,0,68,1,60,0,60,0,60,0,67,1,60,0,60,0,241,0,60,0,60,0,60,0,209,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,116,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,117,0,60,0,103,1,60,0,60,0,60,0,102,1,60,0,60,0,254,0,60,0,60,0,60,0,222,0,38,0,121,0,60,0,60,0,252,0,60,0,60,0,60,0,220,0,60,0,60,0,113,1,60,0,60,0,60,0,112,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,126,1,60,0,60,0,60,0,125,1,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,229,0,60,0,60,0,60,0,197,0,60,0,60,0,39,2,60,0,60,0,60,0,38,2,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,227,0,60,0,60,0,60,0,195,0,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,245,0,60,0,60,0,60,0,213,0,60,0,60,0,244,0,60,0,60,0,60,0,212,0,60,0,60,0,235,1,60,0,60,0,60,0,234,1,0,0,248,57,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,6,1,0,0,68,0,0,0,68,0,0,0,68,0,0,0,148,40,0,0,148,40,0,0,236,45,0,0,236,45,0,0,56,51,0,0,56,51,0,0,220,57,0,0,220,57,0,0,220,57,0,0,50,105,114,84,1,0,64,8,124,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,126,0,134,0,142,0,150,0,48,0,56,0,154,0,162,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,159,0,167,0,173,0,181,0,189,0,197,0,48,0,56,0,196,0,204,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,48,0,48,0,48,0,237,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,245,0,48,0,48,0,253,0,48,0,3,1,11,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,14,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,22,1,26,1,33,1,41,1,47,1,55,1,60,1,68,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,74,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,82,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,85,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,212,0,219,0,48,0,48,0,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,93,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,101,1,48,0,48,0,107,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,248,1,56,2,192,0,104,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,124,2,180,2,244,2,192,0,16,3,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,41,0,202,65,41,0,202,98,41,0,202,131,41,0,202,164,41,0,202,197,41,0,202,230,41,0,202,7,42,0,202,40,42,0,202,73,42,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,201,102,3,0,156,5,0,48,156,5,0,50,156,5,0,52,201,38,4,0,156,5,0,56,156,5,0,58,156,5,0,60,201,230,4,0,156,5,0,64,156,5,0,66,201,166,5,0,201,134,7,0,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,201,166,10,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,12,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,13,0,5,5,0,44,201,38,16,0,5,5,0,48,5,5,0,50,5,5,0,52,201,230,16,0,5,5,0,56,5,5,0,58,5,5,0,60,201,166,17,0,5,5,0,64,5,5,0,66,201,102,18,0,201,70,20,0,5,5,0,72,5,5,0,74,5,5,0,76,201,166,22,0,5,5,0,80,201,134,23,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,70,25,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,198,1,0,0,198,65,0,0,198,97,0,0,198,1,2,0,201,38,26,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,29,49,134,71,33,69,196,138,156,70,196,136,156,70,198,129,0,0,198,161,0,0,198,193,0,0,5,5,127,12,198,33,2,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,134,70,25,81,197,130,32,0,196,138,5,42,5,5,31,43,196,142,5,42,198,65,1,0,193,6,111,93,193,5,111,93,193,4,111,93,201,230,26,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,29,49,5,71,33,69,196,138,5,70,196,136,5,70,198,129,1,0,198,161,1,0,193,7,111,93,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,5,70,25,81,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,27,0,201,134,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,47,5,5,21,47,192,0,0,0,192,0,0,0,134,5,29,49,5,5,29,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,33,0,201,38,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,34,0,201,166,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,33,69,5,70,33,69,201,102,36,0,201,230,37,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,33,69,5,5,33,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,0,0,198,193,1,0,198,193,3,0,198,225,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,39,0,201,38,40,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,81,5,5,25,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,230,40,0,201,6,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,1,0,193,2,111,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,43,0,201,6,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,46,0,201,6,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,49,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,197,34,7,0,197,34,0,0,197,98,0,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,192,0,0,0,198,194,5,0,197,98,8,0,198,2,6,0,198,66,6,0,198,130,6,0,197,162,8,0,134,5,28,55,5,5,28,55,134,5,27,55,5,5,27,55,134,5,21,63,5,5,21,63,201,230,49,0,201,198,51,0,198,130,8,0,198,194,8,0,134,5,23,47,5,5,23,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,9,0,197,34,9,0,198,66,9,0,197,98,9,0,198,130,9,0,197,162,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,53,0,201,102,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,97,1,0,192,0,0,0,192,0,0,0,198,194,9,0,197,98,10,0,198,2,10,0,198,66,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,55,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,55,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,57,0,5,71,238,102,201,166,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,10,0,192,0,0,0,192,0,0,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,192,0,0,0,197,98,11,0,192,0,0,0,192,0,0,0,197,162,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,11,0,192,0,0,0,197,34,12,0,192,0,0,0,197,98,12,0,192,0,0,0,197,162,12,0,192,0,0,0,197,226,12,0,197,35,13,0,197,130,13,0,192,0,0,0,192,0,0,0,197,194,13,0,197,3,14,0,197,98,14,0,192,0,0,0,192,0,0,0,197,162,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,10,0,197,226,14,0,5,5,10,121,197,34,15,0,197,98,15,0,5,5,12,121,5,5,16,121,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,5,5,18,121,5,5,20,121,197,66,11,0,5,5,24,121,197,98,11,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,59,0,201,102,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,65,0,201,6,66,0,201,198,66,0,201,134,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,68,0,201,198,69,0,201,70,71,0,201,198,72,0,201,70,74,0,201,198,75,0,198,2,12,0,198,66,12,0,198,130,12,0,198,194,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,77,0,201,6,78,0,192,0,0,0,192,0,0,0,197,226,22,0,197,34,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,78,0,201,230,79,0,201,6,81,0,201,38,82,0,201,70,83,0,201,102,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,85,0,201,70,86,0,201,6,87,0,201,198,87,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,88,0,201,102,91,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,94,0,201,38,96,0,192,0,0,0,192,0,0,0,198,194,16,0,198,2,17,0,198,66,17,0,198,130,17,0,198,194,17,0,198,2,18,0,198,66,18,0,198,130,18,0,198,2,15,0,198,2,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,4,0,198,66,5,0,201,6,98,0,201,230,99,0,201,198,101,0,201,230,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,104,0,201,38,105,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,4,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,6,111,93,0,134,0,70,0,5,111,93,0,134,0,5,0,6,111,93,0,134,0,5,0,5,111,93,0,134,0,72,0,7,111,93,0,134,0,71,0,7,111,93,0,134,0,5,0,7,111,93,0,134,0,70,0,7,111,93,0,134,0,73,0,7,111,93,0,134,0,5,0,2,111,93,0,5,0,70,0,6,111,93,0,5,0,70,0,5,111,93,0,5,0,72,0,7,111,93,0,5,0,71,0,7,111,93,0,5,0,70,0,7,111,93,0,5,0,73,0,7,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,210,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,5,21,47,5,160,0,0,5,5,21,47,5,160,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,6,111,93,5,162,0,0,193,5,111,93,5,162,0,0,134,5,27,55,5,160,0,0,5,5,27,55,5,160,0,0,134,5,21,63,5,160,0,0,5,5,21,63,5,160,0,0,134,70,33,69,5,160,0,0,134,71,33,69,5,160,0,0,5,70,33,69,5,160,0,0,5,71,33,69,5,160,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,7,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,6,111,93,5,164,0,0,193,4,111,93,5,164,0,0,193,7,111,93,5,162,0,0,193,5,111,93,5,136,0,0,193,4,111,93,5,136,0,0,193,3,111,93,5,136,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,193,7,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,6,111,93,5,200,0,0,193,5,111,93,5,200,0,0,134,5,21,63,5,196,0,0,5,5,21,63,5,196,0,0,134,5,21,63,5,210,0,0,5,5,21,63,5,210,0,0,134,70,33,69,5,196,0,0,134,71,33,69,5,196,0,0,5,70,33,69,5,196,0,0,5,71,33,69,5,196,0,0,134,70,33,69,5,210,0,0,134,71,33,69,5,210,0,0,5,70,33,69,5,210,0,0,5,71,33,69,5,210,0,0,134,70,33,69,5,204,0,0,134,71,33,69,5,204,0,0,5,70,33,69,5,204,0,0,5,71,33,69,5,204,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,2,111,93,5,196,0,0,193,2,111,93,5,210,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,6,111,93,5,196,0,0,193,5,111,93,5,196,0,0,193,7,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,7,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,162,10,0,5,5,10,121,5,5,12,121,197,226,10,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,11,0,5,5,24,121,197,98,11,0,5,5,28,121,5,5,30,121,197,162,11,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,11,0,5,5,107,121,197,34,12,0,5,5,111,121,197,98,12,0,5,5,115,121,197,162,12,0,5,5,119,121,197,226,12,0,197,35,13,0,197,130,13,0,5,5,127,121,5,5,129,121,197,194,13,0,197,3,14,0,197,98,14,0,5,5,137,121,5,5,139,121,197,162,14,0,5,5,143,121,5,5,6,121,197,162,10,0,197,226,14,0,5,5,10,121,197,34,15,0,197,98,15,0,5,5,12,121,5,5,16,121,197,162,15,0,197,226,15,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,5,5,18,121,5,5,20,121,197,66,11,0,5,5,24,121,197,98,11,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,5,0,8,3,9,0,8,3,0,192,198,65,10,3,0,192,198,97,65,3,31,235,134,5,1,3,31,235,134,5,3,3,198,129,7,3,198,161,0,46,156,5,48,0,12,3,21,239,134,5,0,54,156,5,48,0,12,3,27,247,134,5,0,62,156,5,48,0,12,3,21,255,134,5,0,68,156,5,2,0,1,3,255,255,33,69,134,70,3,3,255,255,33,69,134,71,65,3,255,255,33,69,134,70,0,70,156,5,4,0,2,3,0,192,198,129,3,3,0,192,198,161,8,3,0,192,198,193,11,3,0,192,198,225,40,3,1,192,198,1,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,92,156,5,48,0,12,3,1,192,198,33,0,42,5,5,5,0,8,3,11,0,8,3,255,255,111,93,193,6,10,3,255,255,111,93,193,5,65,3,31,235,5,5,1,3,31,235,5,5,3,3,1,192,198,65,7,3,1,192,198,97,0,46,5,5,48,0,12,3,21,239,5,5,0,54,5,5,48,0,12,3,27,247,5,5,0,62,5,5,48,0,12,3,21,255,5,5,0,68,5,5,2,0,1,3,255,255,33,69,5,70,3,3,255,255,33,69,5,71,65,3,255,255,33,69,5,70,0,70,5,5,4,0,2,3,1,192,198,129,3,3,1,192,198,161,8,3,255,255,111,93,193,7,11,3,1,192,198,193,40,3,1,192,198,225,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,0,92,5,5,48,0,12,3,255,255,111,93,193,2,156,46,196,160,48,0,12,3,0,192,197,162,5,46,196,160,48,0,12,3,0,192,197,226,156,42,196,162,5,0,8,3,9,0,8,3,2,192,198,194,10,3,3,192,198,2,65,3,1,192,197,34,1,3,1,192,197,34,3,3,2,192,198,66,7,3,2,192,198,130,5,42,196,162,5,0,8,3,9,0,8,3,1,192,197,162,10,3,1,192,197,226,65,3,1,192,197,98,1,3,1,192,197,98,3,3,3,192,198,66,7,3,3,192,198,130,156,54,196,160,48,0,12,3,2,192,197,34,5,54,196,160,48,0,12,3,2,192,197,98,156,62,196,160,48,0,12,3,2,192,197,162,5,62,196,160,48,0,12,3,2,192,197,226,156,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,5,68,196,160,2,0,1,3,3,192,197,162,3,3,3,192,197,226,65,3,3,192,197,162,156,78,196,160,48,0,12,3,4,192,197,34,5,78,196,160,48,0,12,3,4,192,197,98,156,82,196,162,1,0,8,3,4,192,197,162,11,3,4,192,197,226,5,82,196,162,1,0,8,3,5,192,197,34,11,3,5,192,197,98,156,70,196,190,3,0,2,3,4,192,198,2,3,3,4,192,198,66,8,3,4,192,198,130,11,3,4,192,198,194,5,70,196,190,3,0,2,3,5,192,198,2,3,3,5,192,198,66,8,3,5,192,197,162,11,3,5,192,198,130,156,82,196,190,1,0,8,3,5,192,197,226,11,3,6,192,197,34,5,82,196,190,1,0,8,3,6,192,197,98,11,3,6,192,197,162,22,47,134,5,48,0,12,3,23,239,134,5,1,0,198,1,3,0,2,3,6,192,198,194,3,3,7,192,198,2,8,3,7,192,198,66,11,3,7,192,198,130,1,0,198,225,3,0,2,3,7,192,198,194,3,3,8,192,198,2,8,3,8,192,197,226,11,3,8,192,198,66,156,78,196,202,48,0,12,3,9,192,197,226,5,78,196,202,48,0,12,3,10,192,197,34,22,47,5,5,48,0,12,3,23,239,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,5,0,8,3,9,0,8,3,11,192,198,2,10,3,11,192,198,66,65,3,17,192,197,98,1,3,17,192,197,98,3,3,10,192,198,130,7,3,10,192,198,194,5,42,196,200,5,0,8,3,9,0,8,3,17,192,197,226,10,3,18,192,197,34,65,3,17,192,197,162,1,3,17,192,197,162,3,3,11,192,198,130,7,3,11,192,198,194,156,62,196,196,48,0,12,3,18,192,197,98,5,62,196,196,48,0,12,3,18,192,197,162,156,62,196,210,48,0,12,3,18,192,197,226,5,62,196,210,48,0,12,3,19,192,197,34,156,68,196,196,2,0,1,3,19,192,197,98,3,3,19,192,197,162,65,3,19,192,197,98,5,68,196,196,2,0,1,3,19,192,197,226,3,3,20,192,197,34,65,3,19,192,197,226,156,68,196,210,2,0,1,3,20,192,197,98,3,3,20,192,197,162,65,3,20,192,197,98,5,68,196,210,2,0,1,3,20,192,197,226,3,3,21,192,197,34,65,3,20,192,197,226,156,68,196,204,2,0,1,3,21,192,197,98,3,3,21,192,197,162,65,3,21,192,197,98,5,68,196,204,2,0,1,3,21,192,197,226,3,3,22,192,197,34,65,3,21,192,197,226,156,78,196,196,48,0,12,3,22,192,197,98,5,78,196,196,48,0,12,3,22,192,197,162,156,82,196,198,1,0,8,3,23,192,197,98,11,3,23,192,197,162,5,82,196,198,1,0,8,3,23,192,197,226,11,3,24,192,197,34,156,82,196,208,1,0,8,3,24,192,197,98,11,3,24,192,197,162,5,82,196,208,1,0,8,3,24,192,197,226,11,3,25,192,197,34,156,82,196,204,1,0,8,3,25,192,197,98,11,3,25,192,197,162,5,82,196,204,1,0,8,3,25,192,197,226,11,3,26,192,197,34,156,92,196,196,48,0,12,3,13,192,198,2,5,92,196,196,48,0,12,3,26,192,197,98,156,92,196,210,48,0,12,3,13,192,198,66,5,92,196,210,48,0,12,3,26,192,197,162,156,42,196,196,5,0,8,3,9,0,8,3,14,192,198,2,10,3,14,192,198,66,65,3,26,192,197,226,1,3,26,192,197,226,3,3,13,192,198,130,7,3,13,192,198,194,5,42,196,196,5,0,8,3,9,0,8,3,27,192,197,98,10,3,27,192,197,162,65,3,27,192,197,34,1,3,27,192,197,34,3,3,14,192,198,130,7,3,14,192,198,194,156,70,196,196,3,0,2,3,15,192,198,2,3,3,15,192,198,66,8,3,15,192,198,130,11,3,15,192,198,194,5,70,196,196,3,0,2,3,16,192,198,2,3,3,16,192,198,66,8,3,27,192,197,226,11,3,16,192,198,130,28,0,197,35,3,0,2,3,18,192,198,195,3,3,19,192,198,35,8,3,19,192,198,131,11,3,19,192,198,227,28,0,197,131,3,0,2,3,20,192,198,67,3,3,20,192,198,163,8,3,28,192,197,227,11,3,21,192,198,3,156,82,196,196,1,0,8,3,29,192,197,66,11,3,29,192,197,130,5,82,196,196,1,0,8,3,29,192,197,194,11,3,30,192,197,2,30,0,197,67,1,0,8,3,30,192,197,163,11,3,31,192,197,3,31,0,197,99,1,0,8,3,31,192,197,195,11,3,32,192,197,35,3,0,67,0,50,0,59,0,203,0,0,16,4,0,0,96,1,0,0,96,46,52,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,32,0,0,196,32,0,0,28,38,0,0,28,38,0,0,132,41,0,0,132,41,0,0,226,47,0,0,226,47,0,0,18,52,0,0,50,105,114,84,1,0,64,8,255,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,126,0,134,0,142,0,150,0,48,0,56,0,154,0,162,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,0,190,0,197,0,205,0,211,0,219,0,224,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,238,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,246,0,178,0,48,0,48,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,170,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,248,1,56,2,192,0,104,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,26,0,202,33,26,0,202,66,26,0,202,99,26,0,202,132,26,0,202,165,26,0,202,198,26,0,202,231,26,0,202,8,27,0,202,41,27,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,166,2,0,156,5,0,48,156,5,0,50,156,5,0,52,201,102,3,0,156,5,0,56,156,5,0,58,156,5,0,60,201,38,4,0,156,5,0,64,156,5,0,66,201,230,4,0,201,198,6,0,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,201,230,9,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,134,11,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,12,0,5,5,0,44,201,102,15,0,5,5,0,48,5,5,0,50,5,5,0,52,201,38,16,0,5,5,0,56,5,5,0,58,5,5,0,60,201,230,16,0,5,5,0,64,5,5,0,66,201,166,17,0,201,134,19,0,5,5,0,72,5,5,0,74,5,5,0,76,201,230,21,0,5,5,0,80,201,198,22,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,134,24,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,31,43,196,142,156,42,198,1,0,0,198,65,0,0,198,97,0,0,198,1,2,0,201,102,25,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,70,29,49,134,71,33,69,196,138,156,70,196,136,156,70,198,129,0,0,198,161,0,0,198,193,0,0,5,5,127,12,198,33,2,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,134,70,25,81,197,194,25,0,196,138,5,42,5,5,31,43,196,142,5,42,198,65,1,0,193,6,111,93,193,5,111,93,193,4,111,93,201,38,26,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,70,29,49,5,71,33,69,196,138,5,70,196,136,5,70,198,129,1,0,198,161,1,0,193,7,111,93,5,5,125,12,193,3,111,93,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,5,70,25,81,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,26,0,201,198,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,21,47,5,5,21,47,192,0,0,0,192,0,0,0,134,5,29,49,5,5,29,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,32,0,201,102,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,34,0,201,230,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,33,69,5,70,33,69,201,166,35,0,201,38,37,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,33,69,5,5,33,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,225,0,0,198,193,1,0,198,193,3,0,198,225,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,38,0,201,102,39,0,134,5,35,79,5,5,35,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,25,81,5,5,25,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,38,40,0,201,70,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,1,0,193,2,111,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,42,0,201,70,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,46,0,201,70,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,197,34,7,0,197,34,0,0,197,98,0,0,197,98,7,0,197,162,7,0,197,226,7,0,197,34,8,0,192,0,0,0,198,194,5,0,197,98,8,0,198,2,6,0,198,66,6,0,198,130,6,0,197,162,8,0,134,5,28,55,5,5,28,55,134,5,27,55,5,5,27,55,134,5,21,63,5,5,21,63,201,38,49,0,201,6,51,0,198,130,8,0,198,194,8,0,134,5,23,47,5,5,23,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,2,9,0,197,34,9,0,198,66,9,0,197,98,9,0,198,130,9,0,197,162,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,52,0,201,166,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,97,1,0,192,0,0,0,192,0,0,0,198,194,9,0,197,98,10,0,198,2,10,0,198,66,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,55,0,201,6,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,60,0,201,166,61,0,201,102,62,0,201,38,63,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,63,0,201,102,65,0,201,230,66,0,201,102,68,0,201,230,69,0,201,102,71,0,198,2,12,0,198,66,12,0,198,130,12,0,198,194,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,72,0,201,166,73,0,192,0,0,0,192,0,0,0,197,34,16,0,197,98,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,74,0,201,134,75,0,201,166,76,0,201,198,77,0,201,230,78,0,201,6,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,81,0,201,230,81,0,201,166,82,0,201,102,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,84,0,201,6,87,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,89,0,201,198,91,0,192,0,0,0,192,0,0,0,198,194,16,0,198,2,17,0,198,66,17,0,198,130,17,0,198,194,17,0,198,2,18,0,198,66,18,0,198,130,18,0,198,2,15,0,198,2,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,66,4,0,198,66,5,0,201,166,93,0,201,134,95,0,201,102,97,0,201,134,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,99,0,201,198,100,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,4,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,70,0,6,111,93,0,134,0,70,0,5,111,93,0,134,0,5,0,6,111,93,0,134,0,5,0,5,111,93,0,134,0,72,0,7,111,93,0,134,0,71,0,7,111,93,0,134,0,5,0,7,111,93,0,134,0,70,0,7,111,93,0,134,0,73,0,7,111,93,0,134,0,5,0,2,111,93,0,5,0,70,0,6,111,93,0,5,0,70,0,5,111,93,0,5,0,72,0,7,111,93,0,5,0,71,0,7,111,93,0,5,0,70,0,7,111,93,0,5,0,73,0,7,111,93,0,134,0,5,0,4,111,93,0,134,0,5,0,3,111,93,0,134,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,70,0,3,111,93,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,162,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,162,0,0,0,0,0,134,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,73,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,200,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,200,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,150,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,210,0,0,0,0,0,134,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,5,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,6,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,5,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,196,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,136,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,138,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,182,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,154,0,0,0,0,0,134,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,72,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,70,0,7,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,134,5,21,47,5,160,0,0,5,5,21,47,5,160,0,0,134,5,31,43,5,162,0,0,5,5,31,43,5,162,0,0,193,6,111,93,5,162,0,0,193,5,111,93,5,162,0,0,134,5,27,55,5,160,0,0,5,5,27,55,5,160,0,0,134,5,21,63,5,160,0,0,5,5,21,63,5,160,0,0,134,70,33,69,5,160,0,0,134,71,33,69,5,160,0,0,5,70,33,69,5,160,0,0,5,71,33,69,5,160,0,0,134,5,35,79,5,160,0,0,5,5,35,79,5,160,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,7,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,6,111,93,5,164,0,0,193,4,111,93,5,164,0,0,193,7,111,93,5,162,0,0,193,5,111,93,5,136,0,0,193,4,111,93,5,136,0,0,193,3,111,93,5,136,0,0,134,5,35,79,5,202,0,0,5,5,35,79,5,202,0,0,193,7,111,93,5,164,0,0,134,5,31,43,5,200,0,0,5,5,31,43,5,200,0,0,193,6,111,93,5,200,0,0,193,5,111,93,5,200,0,0,134,5,21,63,5,196,0,0,5,5,21,63,5,196,0,0,134,5,21,63,5,210,0,0,5,5,21,63,5,210,0,0,134,70,33,69,5,196,0,0,134,71,33,69,5,196,0,0,5,70,33,69,5,196,0,0,5,71,33,69,5,196,0,0,134,70,33,69,5,210,0,0,134,71,33,69,5,210,0,0,5,70,33,69,5,210,0,0,5,71,33,69,5,210,0,0,134,70,33,69,5,204,0,0,134,71,33,69,5,204,0,0,5,70,33,69,5,204,0,0,5,71,33,69,5,204,0,0,134,5,35,79,5,196,0,0,5,5,35,79,5,196,0,0,134,5,35,79,5,156,0,0,5,5,35,79,5,156,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,2,111,93,5,196,0,0,193,2,111,93,5,210,0,0,134,5,31,43,5,196,0,0,5,5,31,43,5,196,0,0,193,6,111,93,5,196,0,0,193,5,111,93,5,196,0,0,193,7,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,7,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,8,3,9,0,8,3,0,192,198,65,10,3,0,192,198,97,65,3,31,235,134,5,1,3,31,235,134,5,3,3,198,129,7,3,198,161,0,46,156,5,48,0,12,3,21,239,134,5,0,54,156,5,48,0,12,3,27,247,134,5,0,62,156,5,48,0,12,3,21,255,134,5,0,68,156,5,2,0,1,3,255,255,33,69,134,70,3,3,255,255,33,69,134,71,65,3,255,255,33,69,134,70,0,70,156,5,4,0,2,3,0,192,198,129,3,3,0,192,198,161,8,3,0,192,198,193,11,3,0,192,198,225,40,3,1,192,198,1,0,78,156,5,48,0,12,3,255,255,35,79,134,5,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,92,156,5,48,0,12,3,1,192,198,33,0,42,5,5,5,0,8,3,11,0,8,3,255,255,111,93,193,6,10,3,255,255,111,93,193,5,65,3,31,235,5,5,1,3,31,235,5,5,3,3,1,192,198,65,7,3,1,192,198,97,0,46,5,5,48,0,12,3,21,239,5,5,0,54,5,5,48,0,12,3,27,247,5,5,0,62,5,5,48,0,12,3,21,255,5,5,0,68,5,5,2,0,1,3,255,255,33,69,5,70,3,3,255,255,33,69,5,71,65,3,255,255,33,69,5,70,0,70,5,5,4,0,2,3,1,192,198,129,3,3,1,192,198,161,8,3,255,255,111,93,193,7,11,3,1,192,198,193,40,3,1,192,198,225,0,78,5,5,48,0,12,3,255,255,35,79,5,5,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,0,92,5,5,48,0,12,3,255,255,111,93,193,2,156,46,196,160,48,0,12,3,0,192,197,162,5,46,196,160,48,0,12,3,0,192,197,226,156,42,196,162,5,0,8,3,9,0,8,3,2,192,198,194,10,3,3,192,198,2,65,3,1,192,197,34,1,3,1,192,197,34,3,3,2,192,198,66,7,3,2,192,198,130,5,42,196,162,5,0,8,3,9,0,8,3,1,192,197,162,10,3,1,192,197,226,65,3,1,192,197,98,1,3,1,192,197,98,3,3,3,192,198,66,7,3,3,192,198,130,156,54,196,160,48,0,12,3,2,192,197,34,5,54,196,160,48,0,12,3,2,192,197,98,156,62,196,160,48,0,12,3,2,192,197,162,5,62,196,160,48,0,12,3,2,192,197,226,156,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,5,68,196,160,2,0,1,3,3,192,197,162,3,3,3,192,197,226,65,3,3,192,197,162,156,78,196,160,48,0,12,3,4,192,197,34,5,78,196,160,48,0,12,3,4,192,197,98,156,82,196,162,1,0,8,3,4,192,197,162,11,3,4,192,197,226,5,82,196,162,1,0,8,3,5,192,197,34,11,3,5,192,197,98,156,70,196,190,3,0,2,3,4,192,198,2,3,3,4,192,198,66,8,3,4,192,198,130,11,3,4,192,198,194,5,70,196,190,3,0,2,3,5,192,198,2,3,3,5,192,198,66,8,3,5,192,197,162,11,3,5,192,198,130,156,82,196,190,1,0,8,3,5,192,197,226,11,3,6,192,197,34,5,82,196,190,1,0,8,3,6,192,197,98,11,3,6,192,197,162,22,47,134,5,48,0,12,3,23,239,134,5,1,0,198,1,3,0,2,3,6,192,198,194,3,3,7,192,198,2,8,3,7,192,198,66,11,3,7,192,198,130,1,0,198,225,3,0,2,3,7,192,198,194,3,3,8,192,198,2,8,3,8,192,197,226,11,3,8,192,198,66,156,78,196,202,48,0,12,3,9,192,197,226,5,78,196,202,48,0,12,3,10,192,197,34,22,47,5,5,48,0,12,3,23,239,5,5,156,42,196,200,5,0,8,3,9,0,8,3,11,192,198,2,10,3,11,192,198,66,65,3,10,192,197,162,1,3,10,192,197,162,3,3,10,192,198,130,7,3,10,192,198,194,5,42,196,200,5,0,8,3,9,0,8,3,11,192,197,34,10,3,11,192,197,98,65,3,10,192,197,226,1,3,10,192,197,226,3,3,11,192,198,130,7,3,11,192,198,194,156,62,196,196,48,0,12,3,11,192,197,162,5,62,196,196,48,0,12,3,11,192,197,226,156,62,196,210,48,0,12,3,12,192,197,34,5,62,196,210,48,0,12,3,12,192,197,98,156,68,196,196,2,0,1,3,12,192,197,162,3,3,12,192,197,226,65,3,12,192,197,162,5,68,196,196,2,0,1,3,13,192,197,34,3,3,13,192,197,98,65,3,13,192,197,34,156,68,196,210,2,0,1,3,13,192,197,162,3,3,13,192,197,226,65,3,13,192,197,162,5,68,196,210,2,0,1,3,14,192,197,34,3,3,14,192,197,98,65,3,14,192,197,34,156,68,196,204,2,0,1,3,14,192,197,162,3,3,14,192,197,226,65,3,14,192,197,162,5,68,196,204,2,0,1,3,15,192,197,34,3,3,15,192,197,98,65,3,15,192,197,34,156,78,196,196,48,0,12,3,15,192,197,162,5,78,196,196,48,0,12,3,15,192,197,226,156,82,196,198,1,0,8,3,16,192,197,162,11,3,16,192,197,226,5,82,196,198,1,0,8,3,17,192,197,34,11,3,17,192,197,98,156,82,196,208,1,0,8,3,17,192,197,162,11,3,17,192,197,226,5,82,196,208,1,0,8,3,18,192,197,34,11,3,18,192,197,98,156,82,196,204,1,0,8,3,18,192,197,162,11,3,18,192,197,226,5,82,196,204,1,0,8,3,19,192,197,34,11,3,19,192,197,98,156,92,196,196,48,0,12,3,13,192,198,2,5,92,196,196,48,0,12,3,19,192,197,162,156,92,196,210,48,0,12,3,13,192,198,66,5,92,196,210,48,0,12,3,19,192,197,226,156,42,196,196,5,0,8,3,9,0,8,3,14,192,198,2,10,3,14,192,198,66,65,3,20,192,197,34,1,3,20,192,197,34,3,3,13,192,198,130,7,3,13,192,198,194,5,42,196,196,5,0,8,3,9,0,8,3,20,192,197,162,10,3,20,192,197,226,65,3,20,192,197,98,1,3,20,192,197,98,3,3,14,192,198,130,7,3,14,192,198,194,156,70,196,196,3,0,2,3,15,192,198,2,3,3,15,192,198,66,8,3,15,192,198,130,11,3,15,192,198,194,5,70,196,196,3,0,2,3,16,192,198,2,3,3,16,192,198,66,8,3,21,192,197,34,11,3,16,192,198,130,21,0,197,99,3,0,2,3,18,192,198,195,3,3,19,192,198,35,8,3,19,192,198,131,11,3,19,192,198,227,21,0,197,195,3,0,2,3,20,192,198,67,3,3,20,192,198,163,8,3,22,192,197,35,11,3,21,192,198,3,156,82,196,196,1,0,8,3,22,192,197,130,11,3,22,192,197,194,5,82,196,196,1,0,8,3,23,192,197,2,11,3,23,192,197,66,23,0,197,131,1,0,8,3,23,192,197,227,11,3,24,192,197,67,24,0,197,163,1,0,8,3,25,192,197,3,11,3,25,192,197,99,5,2,64,12,32,14,192,14,232,14,16,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,18,4,185,64,20,4,185,76,185,84,185,88,22,4,185,96,186,100,186,108,24,4,185,116,185,120,26,4,28,4,185,136,185,140,185,148,30,4,185,160,32,4,185,172,185,176,185,180,185,184,34,4,88,13,168,13,96,13,56,14,80,12,40,14,36,4,168,64,38,4,168,76,168,84,168,88,40,4,168,96,168,100,168,108,42,4,168,116,168,120,44,4,46,4,168,136,168,140,168,148,48,4,168,160,50,4,168,172,168,176,168,180,168,184,52,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,185,60,249,57,217,212,185,212,185,208,185,204,54,4,185,85,153,85,249,85,89,86,186,101,154,101,250,101,90,102,217,80,249,128,185,133,153,133,25,217,249,216,185,216,136,14,185,200,185,169,153,169,249,169,217,184,153,185,217,164,0,8,168,57,168,60,232,57,200,212,168,212,168,208,168,204,56,4,168,85,136,85,232,85,72,86,168,101,136,101,232,101,72,102,200,80,232,128,168,133,136,133,8,217,232,216,168,216,128,14,168,200,168,169,136,169,232,169,200,184,136,185,200,164,72,186,249,58,232,58,217,57,200,57,58,4,60,4,153,69,136,69,249,69,232,69,153,70,136,70,185,72,168,72,25,78,8,78,185,80,168,80,249,86,232,86,217,85,200,85,153,86,136,86,217,86,200,86,25,86,8,86,249,93,232,93,217,93,200,93,153,94,136,94,62,4,64,4,249,97,232,97,25,99,8,99,122,102,104,102,250,102,232,102,218,101,200,101,218,102,200,102,154,102,168,104,2,8,4,8,250,109,232,109,66,4,68,4,168,144,153,117,136,117,185,118,168,118,25,118,8,118,57,119,40,119,25,119,8,119,217,128,200,128,70,4,72,4,26,126,8,126,6,8,185,128,168,128,249,134,232,134,217,133,200,133,217,216,200,216,217,200,200,200,153,149,136,149,185,150,168,150,25,150,8,150,154,153,136,153,250,153,232,153,74,4,76,4,185,156,168,156,185,162,168,162,25,162,8,162,185,164,168,164,121,170,104,170,249,170,232,170,217,169,200,169,57,170,40,170,249,184,232,184,78,4,80,4,249,177,232,177,249,185,232,185,89,186,153,189,136,189,153,190,136,190,185,196,168,196,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,8,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,10,8,1,0,8,14,12,8,1,0,16,14,0,13,8,13,24,14,14,8,200,12,72,12,32,14,200,152,169,152,187,100,187,108,169,100,169,108,169,192,169,124,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,255,5,185,92,255,5,185,112,255,5,186,124,255,5,185,132,255,5,186,152,255,5,185,168,255,5,185,188,255,5,168,56,255,5,168,68,255,5,168,92,255,5,168,112,255,5,168,124,255,5,168,132,255,5,168,152,255,5,168,168,255,5,168,188,255,5,185,70,255,5,168,70,255,5,217,58,255,5,200,58,255,5,185,94,255,5,168,94,255,5,185,114,255,5,168,114,255,5,186,126,255,5,168,126,255,5,186,154,255,5,168,154,255,5,217,170,255,5,200,170,255,1,170,170,3,0,67,0,50,0,59,0,79,15,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,74,15,0,32,92,28,0,32,1,0,32,0,97,28,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,65,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,83,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,83,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,120,13,0,32,7,0,0,0,24,0,0,0,122,13,0,0,122,13,0,0,3,0,0,0,0,0,0,0,117,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,105,99,116,105,111,110,97,114,121,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,87,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,83,0,105,0,110,0,104,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,93,0,38,0,150,13,60,0,130,13,60,0,131,13,38,0,165,13,60,0,164,13,0,0,90,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,83,0,105,0,110,0,104,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,93,0,38,0,150,13,60,0,130,13,60,0,131,13,38,0,162,13,202,13,164,13,60,0,60,0,165,13,0,0,170,170,170,170,170,170,170,170,170,170,232,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,112,0,0,0,112,1,0,0,128,25,0,0,128,25,0,0,128,25,0,0,128,25,0,0,208,25,0,0,33,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,113,182,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,47,48,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,120,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,1,0,202,97,1,0,202,130,1,0,202,163,1,0,202,196,1,0,202,229,1,0,202,6,2,0,202,39,2,0,202,72,2,0,202,105,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,130,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,2,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,41,113,193,3,41,113,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,58,113,5,5,158,113,5,70,62,113,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,71,0,54,0,63,0,119,0,0,16,93,0,0,96,1,0,0,96,220,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,112,0,0,0,112,1,0,0,128,25,0,0,128,25,0,0,128,25,0,0,128,25,0,0,196,25,0,0,33,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,113,182,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,46,47,48,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,120,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,111,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,41,113,193,3,41,113,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,113,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,71,0,54,0,63,0,247,6,0,16,4,0,0,96,1,0,0,96,2,0,43,0,86,0,170,170,242,6,0,32,111,13,0,32,1,0,32,0,116,13,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,25,0,32,7,0,0,0,23,0,0,0,2,25,0,0,2,25,0,0,3,0,0,0,0,0,0,0,153,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,80,220,38,0,65,0,60,0,97,0,8,3,60,0,60,0,60,0,65,0,8,3,38,0,67,0,60,0,99,0,12,3,60,0,60,0,60,0,67,0,12,3,38,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,99,0,72,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,79,0,60,0,111,0,2,3,60,0,60,0,60,0,79,0,2,3,38,0,82,0,60,0,114,0,12,3,60,0,60,0,60,0,82,0,12,3,38,0,83,0,60,0,115,0,12,3,60,0,60,0,60,0,83,0,12,3,38,0,90,0,60,0,122,0,12,3,60,0,60,0,60,0,90,0,12,3,0,0,172,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,38,0,65,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,68,0,60,0,15,1,60,0,60,0,60,0,14,1,38,0,69,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,27,1,60,0,60,0,60,0,26,1,38,0,73,0,60,0,237,0,60,0,60,0,60,0,205,0,38,0,76,0,60,0,58,1,60,0,60,0,60,0,57,1,60,0,62,1,60,0,60,0,60,0,61,1,38,0,78,0,60,0,72,1,60,0,60,0,60,0,71,1,38,0,79,0,60,0,243,0,60,0,60,0,60,0,211,0,60,0,244,0,60,0,60,0,60,0,212,0,38,0,82,0,60,0,85,1,60,0,60,0,60,0,84,1,60,0,89,1,60,0,60,0,60,0,88,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,84,0,60,0,101,1,60,0,60,0,60,0,100,1,38,0,85,0,60,0,250,0,60,0,60,0,60,0,218,0,60,0,111,1,60,0,60,0,60,0,110,1,38,0,89,0,60,0,253,0,60,0,60,0,60,0,221,0,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,170,170,170,170,170,170,48,57,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,149,1,0,0,68,0,0,0,68,0,0,0,68,0,0,0,212,39,0,0,212,39,0,0,212,39,0,0,212,39,0,0,92,47,0,0,92,47,0,0,24,57,0,0,24,57,0,0,24,57,0,0,50,105,114,84,1,0,64,8,112,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,125,0,133,0,136,0,144,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,147,0,155,0,161,0,169,0,177,0,185,0,48,0,56,0,184,0,192,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,209,0,217,0,48,0,48,0,48,0,225,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,241,0,48,0,247,0,255,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,2,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,10,1,17,1,25,1,33,1,39,1,47,1,54,1,62,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,70,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,73,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,200,0,207,0,48,0,48,0,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,81,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,89,1,48,0,48,0,95,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,244,1,32,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,76,2,132,2,196,2,192,0,224,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,59,0,202,33,59,0,202,66,59,0,202,99,59,0,202,132,59,0,202,165,59,0,202,198,59,0,202,231,59,0,202,8,60,0,202,41,60,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,201,70,2,0,201,6,3,0,201,198,3,0,156,5,0,52,156,5,0,54,156,5,0,56,201,70,5,0,156,5,0,60,156,5,0,62,201,102,6,0,156,5,0,66,201,70,8,0,201,38,9,0,156,5,0,72,160,5,0,74,201,6,11,0,201,230,12,0,201,198,13,0,201,166,14,0,156,5,0,84,160,5,0,86,156,5,0,88,201,134,16,0,201,230,17,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,18,0,5,5,0,44,201,70,20,0,201,6,21,0,201,198,21,0,5,5,0,52,5,5,0,54,5,5,0,56,201,70,23,0,5,5,0,60,5,5,0,62,201,102,24,0,5,5,0,66,201,70,26,0,201,38,27,0,5,5,0,72,5,5,0,74,201,6,29,0,201,230,30,0,201,198,31,0,201,166,32,0,5,5,0,84,5,5,0,86,5,5,0,88,201,134,34,0,201,230,35,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,5,2,43,196,142,156,42,196,154,156,42,134,5,3,43,196,146,156,42,197,226,49,0,201,198,36,0,196,138,156,50,134,5,2,51,196,142,156,50,196,150,156,50,196,138,156,58,134,5,2,59,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,134,5,2,71,134,5,3,71,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,134,5,2,83,196,142,156,82,196,150,156,82,134,5,2,91,160,5,38,93,197,34,50,0,196,138,5,42,5,5,2,43,196,142,5,42,196,154,5,42,5,5,3,43,196,146,5,42,197,98,50,0,201,102,37,0,196,138,5,50,5,5,2,51,196,142,5,50,196,150,5,50,196,138,5,58,5,5,2,59,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,5,5,2,71,5,5,3,71,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,5,5,2,83,196,142,5,82,196,150,5,82,5,5,2,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,38,0,201,166,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,41,0,201,166,42,0,134,5,3,51,5,5,3,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,44,0,201,70,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,65,5,5,2,65,201,102,46,0,201,230,47,0,134,5,3,65,5,5,3,65,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,49,0,201,38,50,0,134,5,2,69,5,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,77,5,5,2,77,201,230,50,0,201,102,52,0,134,5,3,77,5,5,3,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,53,0,201,166,54,0,134,5,2,79,5,5,2,79,201,102,55,0,201,38,56,0,134,5,2,81,5,5,2,81,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,83,5,5,3,83,192,0,0,0,192,0,0,0,201,230,56,0,201,102,58,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,59,0,201,102,61,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,62,0,201,102,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,9,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,65,0,201,102,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,68,0,201,166,69,0,201,102,70,0,201,38,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,71,0,201,102,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,230,74,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,76,0,5,71,238,102,201,166,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,13,0,192,0,0,0,192,0,0,0,197,98,13,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,13,0,192,0,0,0,197,226,13,0,192,0,0,0,192,0,0,0,197,34,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,14,0,192,0,0,0,197,162,14,0,192,0,0,0,197,226,14,0,192,0,0,0,197,34,15,0,192,0,0,0,197,98,15,0,197,163,15,0,197,2,16,0,192,0,0,0,192,0,0,0,197,66,16,0,197,131,16,0,197,226,16,0,192,0,0,0,192,0,0,0,197,34,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,13,0,197,98,17,0,5,5,10,121,197,162,17,0,197,226,17,0,5,5,12,121,5,5,16,121,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,5,5,18,121,5,5,20,121,197,194,13,0,5,5,24,121,197,226,13,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,78,0,201,6,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,81,0,201,70,82,0,201,6,83,0,201,198,83,0,201,134,84,0,201,70,85,0,201,6,86,0,201,198,86,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,87,0,201,6,89,0,201,134,90,0,201,6,92,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,93,0,201,166,94,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,95,0,201,70,97,0,192,0,0,0,192,0,0,0,201,198,98,0,201,70,100,0,201,198,101,0,201,70,103,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,104,0,201,134,105,0,201,70,106,0,201,6,107,0,201,198,107,0,201,134,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,109,0,201,198,110,0,192,0,0,0,192,0,0,0,201,70,112,0,201,198,113,0,192,0,0,0,192,0,0,0,201,70,115,0,201,6,116,0,192,0,0,0,192,0,0,0,197,98,32,0,197,162,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,116,0,201,134,117,0,201,70,118,0,201,6,119,0,201,198,119,0,201,134,120,0,201,70,121,0,201,198,122,0,201,70,124,0,201,198,125,0,201,70,127,0,201,198,128,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,130,0,201,6,131,0,201,198,131,0,201,134,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,133,0,201,198,134,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,136,0,201,198,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,139,0,201,102,140,0,201,134,141,0,201,6,143,0,192,0,0,0,192,0,0,0,197,226,41,0,197,34,42,0,197,98,42,0,197,162,42,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,34,41,0,197,162,41,0,197,162,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,144,0,201,6,146,0,201,134,147,0,201,6,149,0,192,0,0,0,192,0,0,0,197,162,8,0,197,34,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,150,0,201,6,152,0,192,0,0,0,192,0,0,0,201,134,153,0,201,166,154,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,43,5,162,0,0,134,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,134,5,2,51,5,162,0,0,134,5,3,51,5,162,0,0,5,5,2,51,5,162,0,0,5,5,3,51,5,162,0,0,134,5,2,59,5,162,0,0,5,5,2,59,5,162,0,0,134,5,2,65,5,160,0,0,134,5,3,65,5,160,0,0,5,5,2,65,5,160,0,0,5,5,3,65,5,160,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,77,5,160,0,0,134,5,3,77,5,160,0,0,5,5,2,77,5,160,0,0,5,5,3,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,81,5,160,0,0,5,5,2,81,5,160,0,0,134,5,2,83,5,162,0,0,134,5,3,83,5,162,0,0,5,5,2,83,5,162,0,0,5,5,3,83,5,162,0,0,134,5,2,71,5,190,0,0,134,5,3,71,5,190,0,0,5,5,2,71,5,190,0,0,5,5,3,71,5,190,0,0,134,5,2,83,5,190,0,0,134,5,3,83,5,190,0,0,5,5,2,83,5,190,0,0,5,5,3,83,5,190,0,0,134,5,3,43,5,164,0,0,5,5,3,43,5,164,0,0,134,5,2,71,5,162,0,0,134,5,3,71,5,162,0,0,5,5,2,71,5,162,0,0,5,5,3,71,5,162,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,81,5,202,0,0,5,5,2,81,5,202,0,0,134,5,2,51,5,160,0,0,134,5,3,51,5,160,0,0,5,5,2,51,5,160,0,0,5,5,3,51,5,160,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,43,5,200,0,0,134,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,134,5,2,49,5,196,0,0,5,5,2,49,5,196,0,0,134,5,2,49,5,210,0,0,5,5,2,49,5,210,0,0,134,5,2,49,5,160,0,0,5,5,2,49,5,160,0,0,134,5,2,49,5,204,0,0,5,5,2,49,5,204,0,0,134,5,2,51,5,204,0,0,134,5,3,51,5,204,0,0,5,5,2,51,5,204,0,0,5,5,3,51,5,204,0,0,134,5,2,51,5,208,0,0,134,5,3,51,5,208,0,0,5,5,2,51,5,208,0,0,5,5,3,51,5,208,0,0,134,5,2,59,5,208,0,0,5,5,2,59,5,208,0,0,134,5,2,65,5,196,0,0,134,5,3,65,5,196,0,0,5,5,2,65,5,196,0,0,5,5,3,65,5,196,0,0,134,5,2,65,5,210,0,0,134,5,3,65,5,210,0,0,5,5,2,65,5,210,0,0,5,5,3,65,5,210,0,0,134,5,2,65,5,204,0,0,134,5,3,65,5,204,0,0,5,5,2,65,5,204,0,0,5,5,3,65,5,204,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,77,5,196,0,0,134,5,3,77,5,196,0,0,5,5,2,77,5,196,0,0,5,5,3,77,5,196,0,0,134,5,2,77,5,210,0,0,134,5,3,77,5,210,0,0,5,5,2,77,5,210,0,0,5,5,3,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,81,5,196,0,0,5,5,2,81,5,196,0,0,134,5,2,81,5,210,0,0,5,5,2,81,5,210,0,0,134,5,2,81,5,204,0,0,5,5,2,81,5,204,0,0,134,5,2,83,5,198,0,0,134,5,3,83,5,198,0,0,5,5,2,83,5,198,0,0,5,5,3,83,5,198,0,0,134,5,2,83,5,208,0,0,134,5,3,83,5,208,0,0,5,5,2,83,5,208,0,0,5,5,3,83,5,208,0,0,134,5,2,83,5,204,0,0,134,5,3,83,5,204,0,0,5,5,2,83,5,204,0,0,5,5,3,83,5,204,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,43,5,196,0,0,134,5,3,43,5,196,0,0,5,5,2,43,5,196,0,0,5,5,3,43,5,196,0,0,134,5,2,51,5,196,0,0,134,5,3,51,5,196,0,0,5,5,2,51,5,196,0,0,5,5,3,51,5,196,0,0,134,5,2,59,5,196,0,0,5,5,2,59,5,196,0,0,134,5,2,71,5,196,0,0,134,5,3,71,5,196,0,0,5,5,2,71,5,196,0,0,5,5,3,71,5,196,0,0,134,5,3,71,5,136,0,0,5,5,3,71,5,136,0,0,134,5,3,71,5,138,0,0,5,5,3,71,5,138,0,0,134,5,3,71,5,182,0,0,5,5,3,71,5,182,0,0,134,5,3,71,5,154,0,0,5,5,3,71,5,154,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,134,5,3,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,5,5,3,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,134,5,3,83,5,196,0,0,5,5,2,83,5,196,0,0,5,5,3,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,134,5,3,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,5,5,3,83,5,190,0,0,5,196,0,0,134,5,2,91,5,196,0,0,5,5,2,91,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,13,0,5,5,10,121,5,5,12,121,197,98,13,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,13,0,5,5,24,121,197,226,13,0,5,5,28,121,5,5,30,121,197,34,14,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,14,0,5,5,107,121,197,162,14,0,5,5,111,121,197,226,14,0,5,5,115,121,197,34,15,0,5,5,119,121,197,98,15,0,197,163,15,0,197,2,16,0,5,5,127,121,5,5,129,121,197,66,16,0,197,131,16,0,197,226,16,0,5,5,137,121,5,5,139,121,197,34,17,0,5,5,143,121,5,5,6,121,197,34,13,0,197,98,17,0,5,5,10,121,197,162,17,0,197,226,17,0,5,5,12,121,5,5,16,121,197,34,18,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,197,98,19,0,197,162,19,0,5,5,18,121,5,5,20,121,197,194,13,0,5,5,24,121,197,226,13,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,2,0,1,3,2,235,134,5,8,3,3,235,134,5,65,3,2,235,134,5,0,46,156,5,48,0,12,3,2,239,134,5,0,48,156,5,48,0,12,3,2,241,134,5,0,50,156,5,2,0,1,3,2,243,134,5,12,3,3,243,134,5,65,3,2,243,134,5,0,58,156,5,1,0,1,3,2,251,134,5,65,3,2,251,134,5,0,64,156,5,2,0,1,3,255,255,2,65,134,5,12,3,255,255,3,65,134,5,65,3,255,255,2,65,134,5,0,68,156,5,48,0,12,3,255,255,2,69,134,5,0,70,156,5,2,0,1,3,255,255,2,71,134,5,2,3,255,255,3,71,134,5,65,3,255,255,2,71,134,5,0,76,156,5,2,0,1,3,255,255,2,77,134,5,12,3,255,255,3,77,134,5,65,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,80,156,5,48,0,12,3,255,255,2,81,134,5,0,82,156,5,2,0,1,3,255,255,2,83,134,5,10,3,255,255,3,83,134,5,65,3,255,255,2,83,134,5,0,90,156,5,1,0,1,3,255,255,2,91,134,5,65,3,255,255,2,91,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,2,0,1,3,2,235,5,5,8,3,3,235,5,5,65,3,2,235,5,5,0,46,5,5,48,0,12,3,2,239,5,5,0,48,5,5,48,0,12,3,2,241,5,5,0,50,5,5,2,0,1,3,2,243,5,5,12,3,3,243,5,5,65,3,2,243,5,5,0,58,5,5,1,0,1,3,2,251,5,5,65,3,2,251,5,5,0,64,5,5,2,0,1,3,255,255,2,65,5,5,12,3,255,255,3,65,5,5,65,3,255,255,2,65,5,5,0,68,5,5,48,0,12,3,255,255,2,69,5,5,0,70,5,5,2,0,1,3,255,255,2,71,5,5,2,3,255,255,3,71,5,5,65,3,255,255,2,71,5,5,0,76,5,5,2,0,1,3,255,255,2,77,5,5,12,3,255,255,3,77,5,5,65,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,80,5,5,48,0,12,3,255,255,2,81,5,5,0,82,5,5,2,0,1,3,255,255,2,83,5,5,10,3,255,255,3,83,5,5,65,3,255,255,2,83,5,5,0,90,5,5,1,0,1,3,255,255,2,91,5,5,65,3,255,255,2,91,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,42,196,162,2,0,1,3,0,192,197,162,8,3,0,192,197,226,65,3,0,192,197,162,5,42,196,162,2,0,1,3,1,192,197,34,8,3,1,192,197,98,65,3,1,192,197,34,156,50,196,162,2,0,1,3,1,192,197,162,12,3,1,192,197,226,65,3,1,192,197,162,5,50,196,162,2,0,1,3,2,192,197,34,12,3,2,192,197,98,65,3,2,192,197,34,156,58,196,162,1,0,1,3,2,192,197,162,65,3,2,192,197,162,5,58,196,162,1,0,1,3,2,192,197,226,65,3,2,192,197,226,156,64,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,5,64,196,160,2,0,1,3,3,192,197,162,12,3,3,192,197,226,65,3,3,192,197,162,156,68,196,160,48,0,12,3,4,192,197,34,5,68,196,160,48,0,12,3,4,192,197,98,156,76,196,160,2,0,1,3,4,192,197,162,12,3,4,192,197,226,65,3,4,192,197,162,5,76,196,160,2,0,1,3,5,192,197,34,12,3,5,192,197,98,65,3,5,192,197,34,156,78,196,160,48,0,12,3,5,192,197,162,5,78,196,160,48,0,12,3,5,192,197,226,156,80,196,160,48,0,12,3,6,192,197,34,5,80,196,160,48,0,12,3,6,192,197,98,156,82,196,162,2,0,1,3,6,192,197,162,10,3,6,192,197,226,65,3,6,192,197,162,5,82,196,162,2,0,1,3,7,192,197,34,10,3,7,192,197,98,65,3,7,192,197,34,156,70,196,190,2,0,1,3,7,192,197,162,2,3,7,192,197,226,65,3,7,192,197,162,5,70,196,190,2,0,1,3,8,192,197,34,2,3,8,192,197,98,65,3,8,192,197,34,156,82,196,190,2,0,1,3,8,192,197,162,10,3,8,192,197,226,65,3,8,192,197,162,5,82,196,190,2,0,1,3,9,192,197,34,10,3,9,192,197,98,65,3,9,192,197,34,156,70,196,162,2,0,1,3,10,192,197,34,2,3,10,192,197,98,65,3,10,192,197,34,5,70,196,162,2,0,1,3,10,192,197,162,2,3,10,192,197,226,65,3,10,192,197,162,156,78,196,202,48,0,12,3,11,192,197,34,5,78,196,202,48,0,12,3,11,192,197,98,156,80,196,202,48,0,12,3,11,192,197,162,5,80,196,202,48,0,12,3,11,192,197,226,156,50,196,160,2,0,1,3,12,192,197,34,12,3,12,192,197,98,65,3,12,192,197,34,5,50,196,160,2,0,1,3,12,192,197,162,12,3,12,192,197,226,65,3,12,192,197,162,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,2,0,1,3,19,192,197,226,8,3,20,192,197,34,65,3,19,192,197,226,5,42,196,200,2,0,1,3,20,192,197,98,8,3,20,192,197,162,65,3,20,192,197,98,156,48,196,196,48,0,12,3,20,192,197,226,5,48,196,196,48,0,12,3,21,192,197,34,156,48,196,210,48,0,12,3,21,192,197,98,5,48,196,210,48,0,12,3,21,192,197,162,156,48,196,160,48,0,12,3,21,192,197,226,5,48,196,160,48,0,12,3,22,192,197,34,156,48,196,204,48,0,12,3,22,192,197,98,5,48,196,204,48,0,12,3,22,192,197,162,156,50,196,204,2,0,1,3,22,192,197,226,12,3,23,192,197,34,65,3,22,192,197,226,5,50,196,204,2,0,1,3,23,192,197,98,12,3,23,192,197,162,65,3,23,192,197,98,156,50,196,208,2,0,1,3,23,192,197,226,12,3,24,192,197,34,65,3,23,192,197,226,5,50,196,208,2,0,1,3,24,192,197,98,12,3,24,192,197,162,65,3,24,192,197,98,156,58,196,208,1,0,1,3,24,192,197,226,65,3,24,192,197,226,5,58,196,208,1,0,1,3,25,192,197,34,65,3,25,192,197,34,156,64,196,196,2,0,1,3,25,192,197,98,12,3,25,192,197,162,65,3,25,192,197,98,5,64,196,196,2,0,1,3,25,192,197,226,12,3,26,192,197,34,65,3,25,192,197,226,156,64,196,210,2,0,1,3,26,192,197,98,12,3,26,192,197,162,65,3,26,192,197,98,5,64,196,210,2,0,1,3,26,192,197,226,12,3,27,192,197,34,65,3,26,192,197,226,156,64,196,204,2,0,1,3,27,192,197,98,12,3,27,192,197,162,65,3,27,192,197,98,5,64,196,204,2,0,1,3,27,192,197,226,12,3,28,192,197,34,65,3,27,192,197,226,156,68,196,196,48,0,12,3,28,192,197,98,5,68,196,196,48,0,12,3,28,192,197,162,156,68,196,210,48,0,12,3,28,192,197,226,5,68,196,210,48,0,12,3,29,192,197,34,156,68,196,204,48,0,12,3,29,192,197,98,5,68,196,204,48,0,12,3,29,192,197,162,156,76,196,196,2,0,1,3,29,192,197,226,12,3,30,192,197,34,65,3,29,192,197,226,5,76,196,196,2,0,1,3,30,192,197,98,12,3,30,192,197,162,65,3,30,192,197,98,156,76,196,210,2,0,1,3,30,192,197,226,12,3,31,192,197,34,65,3,30,192,197,226,5,76,196,210,2,0,1,3,31,192,197,98,12,3,31,192,197,162,65,3,31,192,197,98,156,78,196,196,48,0,12,3,31,192,197,226,5,78,196,196,48,0,12,3,32,192,197,34,156,80,196,196,48,0,12,3,32,192,197,226,5,80,196,196,48,0,12,3,33,192,197,34,156,80,196,210,48,0,12,3,33,192,197,98,5,80,196,210,48,0,12,3,33,192,197,162,156,80,196,204,48,0,12,3,33,192,197,226,5,80,196,204,48,0,12,3,34,192,197,34,156,82,196,198,2,0,1,3,34,192,197,98,10,3,34,192,197,162,65,3,34,192,197,98,5,82,196,198,2,0,1,3,34,192,197,226,10,3,35,192,197,34,65,3,34,192,197,226,156,82,196,208,2,0,1,3,35,192,197,98,10,3,35,192,197,162,65,3,35,192,197,98,5,82,196,208,2,0,1,3,35,192,197,226,10,3,36,192,197,34,65,3,35,192,197,226,156,82,196,204,2,0,1,3,36,192,197,98,10,3,36,192,197,162,65,3,36,192,197,98,5,82,196,204,2,0,1,3,36,192,197,226,10,3,37,192,197,34,65,3,36,192,197,226,156,92,196,196,48,0,12,3,37,192,197,98,5,92,196,196,48,0,12,3,37,192,197,162,156,92,196,210,48,0,12,3,37,192,197,226,5,92,196,210,48,0,12,3,38,192,197,34,156,42,196,196,2,0,1,3,38,192,197,98,8,3,38,192,197,162,65,3,38,192,197,98,5,42,196,196,2,0,1,3,38,192,197,226,8,3,39,192,197,34,65,3,38,192,197,226,156,50,196,196,2,0,1,3,39,192,197,98,12,3,39,192,197,162,65,3,39,192,197,98,5,50,196,196,2,0,1,3,39,192,197,226,12,3,40,192,197,34,65,3,39,192,197,226,156,58,196,196,1,0,1,3,40,192,197,98,65,3,40,192,197,98,5,58,196,196,1,0,1,3,40,192,197,162,65,3,40,192,197,162,156,70,196,196,2,0,1,3,40,192,197,226,2,3,41,192,197,34,65,3,40,192,197,226,5,70,196,196,2,0,1,3,41,192,197,98,2,3,41,192,197,162,65,3,41,192,197,98,43,0,197,227,2,0,1,3,44,192,197,67,2,3,44,192,197,163,65,3,44,192,197,67,45,0,197,3,2,0,1,3,45,192,197,99,2,3,45,192,197,195,65,3,45,192,197,99,156,82,196,196,2,0,1,3,46,192,197,34,10,3,46,192,197,98,65,3,46,192,197,34,5,82,196,196,2,0,1,3,46,192,197,162,10,3,46,192,197,226,65,3,46,192,197,162,47,0,197,35,2,0,1,3,47,192,197,131,10,3,47,192,197,227,65,3,47,192,197,131,48,0,197,67,2,0,1,3,48,192,197,163,10,3,49,192,197,3,65,3,48,192,197,163,156,90,196,196,1,0,1,3,49,192,197,98,65,3,49,192,197,98,5,90,196,196,1,0,1,3,49,192,197,162,65,3,49,192,197,162,3,0,67,0,50,0,59,0,155,0,0,16,86,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,28,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,4,30,0,0,4,30,0,0,4,30,0,0,4,30,0,0,184,32,0,0,184,32,0,0,186,35,0,0,212,35,0,0,4,40,0,0,50,105,114,84,1,0,64,8,211,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,91,0,99,0,107,0,115,0,116,0,124,0,127,0,135,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,159,0,48,0,161,0,169,0,173,0,181,0,186,0,194,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,202,0,151,0,48,0,48,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,143,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,108,1,172,1,208,1,252,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,20,0,202,129,20,0,202,162,20,0,202,195,20,0,202,228,20,0,202,5,21,0,202,38,21,0,202,71,21,0,202,104,21,0,202,137,21,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,196,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,134,8,0,156,5,0,72,160,5,0,74,201,102,9,0,201,70,10,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,38,11,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,6,12,0,5,5,0,44,201,196,12,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,20,0,5,5,0,72,5,5,0,74,201,134,21,0,201,102,22,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,70,23,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,2,43,196,146,156,42,197,162,19,0,201,38,24,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,134,5,2,71,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,19,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,2,43,196,146,5,42,197,34,20,0,201,230,24,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,5,5,2,71,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,25,0,201,102,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,27,0,201,230,27,0,134,5,2,77,5,5,2,77,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,28,0,201,102,29,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,30,0,201,230,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,31,0,201,102,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,33,0,201,230,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,34,0,201,102,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,36,0,201,230,36,0,192,0,0,0,192,0,0,0,201,166,37,0,201,102,38,0,192,0,0,0,192,0,0,0,201,38,39,0,201,230,39,0,192,0,0,0,192,0,0,0,197,162,13,0,197,226,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,40,0,201,102,41,0,201,38,42,0,201,230,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,43,0,201,102,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,45,0,201,230,45,0,192,0,0,0,192,0,0,0,197,34,16,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,162,15,0,197,226,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,46,0,201,102,47,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,136,5,2,57,5,142,0,0,71,5,2,57,5,142,0,0,136,5,2,57,5,144,0,0,71,5,2,57,5,144,0,0,136,5,2,57,5,156,0,0,71,5,2,57,5,156,0,0,136,5,2,57,5,196,0,0,71,5,2,57,5,196,0,0,136,5,2,57,5,150,0,0,71,5,2,57,5,150,0,0,136,5,2,57,5,160,0,0,71,5,2,57,5,160,0,0,136,5,2,57,5,206,0,0,71,5,2,57,5,206,0,0,71,5,2,57,5,210,0,0,70,5,2,57,5,142,0,0,5,5,2,57,5,142,0,0,70,5,2,57,5,144,0,0,5,5,2,57,5,144,0,0,70,5,2,57,5,156,0,0,5,5,2,57,5,156,0,0,70,5,2,57,5,196,0,0,5,5,2,57,5,196,0,0,70,5,2,57,5,150,0,0,5,5,2,57,5,150,0,0,70,5,2,57,5,160,0,0,5,5,2,57,5,160,0,0,70,5,2,57,5,206,0,0,5,5,2,57,5,206,0,0,5,5,2,57,5,210,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,77,5,160,0,0,5,5,2,77,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,43,5,164,0,0,5,5,2,43,5,164,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,77,5,196,0,0,5,5,2,77,5,196,0,0,134,5,2,77,5,210,0,0,5,5,2,77,5,210,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,134,5,2,71,5,136,0,0,5,5,2,71,5,136,0,0,134,5,2,71,5,138,0,0,5,5,2,71,5,138,0,0,134,5,2,71,5,182,0,0,5,5,2,71,5,182,0,0,134,5,2,71,5,154,0,0,5,5,2,71,5,154,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,2,235,134,5,0,46,156,5,17,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,15,0,30,2,0,192,197,162,31,2,0,192,197,226,12,3,2,239,134,5,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,249,136,5,104,0,2,249,71,5,36,1,197,162,37,1,0,192,197,98,0,70,156,5,48,0,2,3,255,255,2,71,134,5,0,76,156,5,48,0,12,3,255,255,2,77,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,48,0,8,3,2,235,5,5,0,46,5,5,17,0,36,30,29,0,40,30,15,0,40,30,6,192,197,98,41,30,6,192,197,162,42,30,6,192,197,226,43,30,7,192,197,34,150,30,7,192,197,98,36,30,5,192,197,98,37,30,5,192,197,162,38,30,5,192,197,226,39,30,6,192,197,34,30,2,15,0,30,2,4,192,197,98,31,2,4,192,197,162,12,3,2,239,5,5,34,30,4,192,197,226,35,30,5,192,197,34,72,0,2,249,70,5,104,0,2,249,5,5,36,1,3,192,197,226,37,1,4,192,197,34,0,70,5,5,48,0,2,3,255,255,2,71,5,5,0,76,5,5,48,0,12,3,255,255,2,77,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,7,192,197,162,5,46,196,160,48,0,12,3,7,192,197,226,156,42,196,162,48,0,8,3,8,192,197,34,5,42,196,162,48,0,8,3,8,192,197,98,156,76,196,160,48,0,12,3,8,192,197,162,5,76,196,160,48,0,12,3,8,192,197,226,156,78,196,160,48,0,12,3,9,192,197,34,5,78,196,160,48,0,12,3,9,192,197,98,156,70,196,190,48,0,2,3,9,192,197,162,5,70,196,190,48,0,2,3,9,192,197,226,156,70,196,162,48,0,2,3,10,192,197,162,5,70,196,162,48,0,2,3,10,192,197,226,156,78,196,202,48,0,12,3,11,192,197,34,5,78,196,202,48,0,12,3,11,192,197,98,156,42,196,200,48,0,8,3,11,192,197,162,5,42,196,200,48,0,8,3,11,192,197,226,156,76,196,196,48,0,12,3,12,192,197,34,5,76,196,196,48,0,12,3,12,192,197,98,156,76,196,210,48,0,12,3,12,192,197,162,5,76,196,210,48,0,12,3,12,192,197,226,156,78,196,196,48,0,12,3,13,192,197,34,5,78,196,196,48,0,12,3,13,192,197,98,156,92,196,196,48,0,12,3,14,192,197,34,5,92,196,196,48,0,12,3,14,192,197,98,156,92,196,210,48,0,12,3,14,192,197,162,5,92,196,210,48,0,12,3,14,192,197,226,156,42,196,196,48,0,8,3,15,192,197,34,5,42,196,196,48,0,8,3,15,192,197,98,156,70,196,196,48,0,2,3,15,192,197,162,5,70,196,196,48,0,2,3,15,192,197,226,18,0,197,35,48,0,2,3,18,192,197,131,18,0,197,227,48,0,2,3,19,192,197,67,12,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,34,30,44,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,28,4,185,76,186,80,185,84,185,88,185,92,186,100,186,108,185,112,185,116,185,120,186,124,38,4,185,140,185,144,40,4,42,4,185,168,185,176,185,180,185,184,185,188,185,192,44,4,88,13,168,13,96,13,56,14,80,12,40,14,46,4,168,64,48,4,168,76,168,80,168,84,168,88,168,92,168,100,168,108,168,112,168,116,168,120,168,124,58,4,168,140,168,144,60,4,62,4,168,168,168,176,168,180,168,184,168,188,168,192,64,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,60,57,58,0,8,66,4,186,81,154,81,250,81,90,82,186,101,154,101,250,101,90,102,217,76,154,126,185,133,153,133,185,136,153,134,89,134,136,14,217,134,185,177,153,177,249,177,89,178,153,193,185,204,2,8,168,57,136,57,232,57,136,58,168,60,40,58,4,8,68,4,168,81,136,81,232,81,72,82,168,101,136,101,232,101,72,102,200,76,136,126,168,133,136,133,168,136,136,134,72,134,128,14,200,134,168,177,136,177,232,177,72,178,136,193,168,204,72,194,57,59,40,59,217,57,200,57,70,4,72,4,153,69,136,69,249,69,232,69,185,70,168,70,185,72,168,72,25,78,8,78,89,79,72,79,58,83,40,83,218,81,200,81,186,82,168,82,26,83,8,83,26,82,8,82,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,148,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,153,136,153,74,4,76,4,185,156,168,156,154,161,136,161,250,161,232,161,78,4,80,4,185,164,168,164,249,170,232,170,25,170,8,170,185,172,168,172,153,178,136,178,57,179,40,179,217,177,200,177,57,178,40,178,121,178,104,178,25,179,8,179,249,185,232,185,249,193,232,193,89,194,153,197,136,197,185,198,168,198,185,200,168,200,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,160,169,160,200,56,169,80,187,100,187,108,169,100,169,108,169,208,169,124,217,132,187,80,200,132,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,72,4,187,96,104,4,178,96,36,5,251,97,37,5,242,97,255,5,185,132,255,5,185,152,255,5,186,160,255,5,185,196,255,5,168,56,255,5,168,68,72,4,177,96,104,4,168,96,36,5,241,97,37,5,232,97,255,5,168,132,255,5,168,152,255,5,168,160,255,5,168,196,255,5,249,70,255,5,232,70,255,5,25,59,255,5,8,59,255,5,249,154,255,5,232,154,255,5,250,162,255,5,232,162,255,1,3,0,67,0,50,0,59,0,239,14,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,232,14,0,32,247,24,0,32,1,0,32,0,252,24,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,108,8,0,32,7,0,0,0,21,0,0,0,110,8,0,0,110,8,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,60,0,7,1,60,0,60,0,60,0,6,1,38,0,68,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,0,0,170,170,228,32,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,20,27,0,0,20,27,0,0,20,27,0,0,20,27,0,0,216,27,0,0,216,27,0,0,228,28,0,0,228,28,0,0,204,32,0,0,50,105,114,84,1,0,64,8,164,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,48,0,56,0,105,0,113,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,135,0,48,0,48,0,143,0,147,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,155,0,129,0,48,0,48,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,121,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,192,0,164,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,4,0,202,1,5,0,202,34,5,0,202,67,5,0,202,100,5,0,202,133,5,0,202,166,5,0,202,199,5,0,202,232,5,0,202,9,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,134,1,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,102,2,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,70,3,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,4,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,5,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,4,0,201,134,6,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,4,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,4,0,201,198,7,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,9,0,201,6,10,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,10,0,201,134,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,197,162,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,12,0,201,6,13,0,192,0,0,0,192,0,0,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,13,0,201,134,14,0,201,70,15,0,201,6,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,197,162,12,3,0,192,197,98,65,3,197,162,5,46,196,160,2,0,1,3,0,192,197,162,12,3,0,192,197,226,65,3,0,192,197,162,156,78,196,160,48,0,12,3,1,192,197,34,5,78,196,160,48,0,12,3,1,192,197,98,156,78,196,202,48,0,12,3,1,192,197,162,5,78,196,202,48,0,12,3,1,192,197,226,156,78,196,196,48,0,12,3,2,192,197,34,5,78,196,196,48,0,12,3,2,192,197,98,156,92,196,196,48,0,12,3,3,192,197,34,5,92,196,196,48,0,12,3,3,192,197,98,156,92,196,210,48,0,12,3,3,192,197,162,5,92,196,210,48,0,12,3,3,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,76,186,84,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,120,186,124,185,132,185,136,185,140,185,148,28,4,185,160,185,168,185,172,185,176,185,180,185,184,30,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,32,4,168,76,168,84,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,120,168,124,168,132,168,136,168,140,168,148,34,4,168,160,168,168,168,172,168,176,168,180,168,184,36,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,38,4,186,85,154,85,250,85,90,86,186,101,154,101,250,101,90,102,217,76,154,126,185,133,153,133,249,133,153,134,89,134,136,14,217,134,185,169,153,169,249,169,89,170,153,185,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,40,4,168,85,136,85,232,85,72,86,168,101,136,101,232,101,72,102,200,76,136,126,168,133,136,133,232,133,136,134,72,134,128,14,200,134,168,169,136,169,232,169,72,170,136,185,168,196,72,186,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,80,168,80,58,87,40,87,218,85,200,85,186,86,168,86,26,87,8,87,26,86,8,86,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,144,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,250,126,232,126,26,126,8,126,10,8,185,128,168,128,57,135,40,135,217,133,200,133,121,134,104,134,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,42,4,44,4,185,156,168,156,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,25,171,8,171,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,185,192,168,192,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,84,200,152,169,152,200,56,169,84,187,100,187,108,169,100,169,108,169,200,169,124,217,132,187,84,200,132,169,84,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,186,152,255,5,185,188,255,5,168,64,255,5,168,152,255,5,168,188,255,5,249,66,255,5,232,66,255,5,250,154,255,5,232,154,255,1,3,0,69,0,52,0,61,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,101,8,0,32,1,0,32,0,106,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,231,23,0,32,7,0,0,0,23,0,0,0,233,23,0,0,233,23,0,0,3,0,0,0,0,0,0,0,105,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,50,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,109,0,110,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,105,220,38,0,65,0,60,0,226,0,60,0,60,0,60,0,194,0,60,0,60,0,224,0,60,0,60,0,60,0,192,0,38,0,67,0,60,0,13,1,60,0,60,0,60,0,12,1,38,0,68,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,74,1,60,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,60,0,68,1,60,0,60,0,60,0,67,1,38,0,83,0,60,0,97,1,60,0,60,0,60,0,96,1,38,0,90,0,60,0,126,1,60,0,60,0,60,0,125,1,60,0,230,0,60,0,60,0,60,0,198,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,229,0,60,0,60,0,60,0,197,0,60,0,227,0,60,0,60,0,60,0,195,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,246,0,60,0,60,0,60,0,214,0,0,0,170,170,170,170,170,170,170,170,170,170,250,49,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,214,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,132,39,0,0,132,39,0,0,228,40,0,0,228,40,0,0,112,45,0,0,112,45,0,0,222,49,0,0,222,49,0,0,222,49,0,0,50,105,114,84,1,0,64,8,107,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,148,0,156,0,162,0,170,0,178,0,186,0,48,0,56,0,185,0,193,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,218,0,48,0,48,0,48,0,226,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,234,0,48,0,48,0,242,0,48,0,248,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,3,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,11,1,48,0,18,1,26,1,30,1,38,1,43,1,51,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,65,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,68,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,201,0,208,0,48,0,48,0,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,76,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,84,1,48,0,48,0,90,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,80,2,136,2,200,2,192,0,228,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,35,0,202,65,35,0,202,98,35,0,202,131,35,0,202,164,35,0,202,197,35,0,202,230,35,0,202,7,36,0,202,40,36,0,202,73,36,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,201,6,4,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,198,4,0,201,166,6,0,156,5,0,72,160,5,0,74,156,5,0,76,201,102,7,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,70,8,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,9,0,5,5,0,44,201,102,13,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,38,14,0,201,6,16,0,5,5,0,72,5,5,0,74,5,5,0,76,201,230,16,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,198,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,43,198,1,0,0,134,5,2,43,198,33,0,0,198,65,0,0,198,97,0,0,134,5,3,93,201,166,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,70,30,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,129,0,0,5,5,127,12,134,5,4,93,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,130,26,0,5,70,2,43,193,5,5,93,5,5,2,43,193,3,5,93,193,4,5,93,193,2,5,93,5,5,3,93,201,70,19,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,70,30,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,193,6,5,93,5,5,125,12,5,5,4,93,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,20,0,201,166,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,30,69,5,71,30,69,201,70,27,0,201,198,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,30,0,201,6,31,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,31,0,201,134,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,33,0,201,6,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,2,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,34,0,201,134,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,70,36,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,38,0,5,71,238,102,201,6,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,192,0,0,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,192,0,0,0,192,0,0,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,197,226,8,0,192,0,0,0,197,34,9,0,192,0,0,0,197,98,9,0,192,0,0,0,197,162,9,0,197,227,9,0,197,66,10,0,192,0,0,0,192,0,0,0,197,130,10,0,197,195,10,0,197,34,11,0,192,0,0,0,192,0,0,0,197,98,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,7,0,197,162,11,0,5,5,10,121,197,226,11,0,197,34,12,0,5,5,12,121,5,5,16,121,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,5,5,18,121,5,5,20,121,197,2,8,0,5,5,24,121,197,34,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,39,0,201,134,43,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,47,0,201,166,48,0,201,38,50,0,201,166,51,0,201,38,53,0,201,166,54,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,56,0,201,230,56,0,192,0,0,0,192,0,0,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,57,0,201,102,58,0,201,38,59,0,201,230,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,60,0,201,70,64,0,192,0,0,0,192,0,0,0,197,34,23,0,197,98,23,0,197,162,23,0,197,226,23,0,197,34,24,0,197,98,24,0,197,162,24,0,197,226,24,0,197,98,21,0,197,34,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,67,0,201,166,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,69,0,201,38,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,5,5,93,0,134,0,5,0,3,5,93,0,134,0,5,0,4,5,93,0,134,0,5,0,2,5,93,0,134,0,5,0,6,5,93,0,134,0,5,0,5,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,70,2,43,5,162,0,0,134,5,2,43,5,162,0,0,5,70,2,43,5,162,0,0,193,5,5,93,5,162,0,0,5,5,2,43,5,162,0,0,193,3,5,93,5,162,0,0,193,4,5,93,5,162,0,0,193,2,5,93,5,162,0,0,134,71,30,69,5,160,0,0,134,70,30,69,5,160,0,0,5,71,30,69,5,160,0,0,5,70,30,69,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,193,6,5,93,5,190,0,0,193,4,5,93,5,164,0,0,134,5,3,93,5,164,0,0,5,5,3,93,5,164,0,0,193,6,5,93,5,162,0,0,193,2,5,93,5,136,0,0,134,5,3,93,5,136,0,0,5,5,3,93,5,136,0,0,134,5,4,93,5,136,0,0,5,5,4,93,5,136,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,193,6,5,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,70,2,43,5,200,0,0,134,5,2,43,5,200,0,0,5,70,2,43,5,200,0,0,193,5,5,93,5,200,0,0,5,5,2,43,5,200,0,0,193,3,5,93,5,200,0,0,193,4,5,93,5,200,0,0,193,2,5,93,5,200,0,0,134,71,30,69,5,196,0,0,134,70,30,69,5,196,0,0,5,71,30,69,5,196,0,0,5,70,30,69,5,196,0,0,134,71,30,69,5,210,0,0,134,70,30,69,5,210,0,0,5,71,30,69,5,210,0,0,5,70,30,69,5,210,0,0,134,71,30,69,5,204,0,0,134,70,30,69,5,204,0,0,5,71,30,69,5,204,0,0,5,70,30,69,5,204,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,70,2,43,5,196,0,0,134,5,2,43,5,196,0,0,5,70,2,43,5,196,0,0,193,5,5,93,5,196,0,0,5,5,2,43,5,196,0,0,193,3,5,93,5,196,0,0,193,4,5,93,5,196,0,0,193,2,5,93,5,196,0,0,134,5,2,43,5,136,0,0,5,5,2,43,5,136,0,0,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,193,6,5,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,6,5,93,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,98,7,0,5,5,10,121,5,5,12,121,197,162,7,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,7,0,5,5,24,121,197,34,8,0,5,5,28,121,5,5,30,121,197,98,8,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,8,0,5,5,107,121,197,226,8,0,5,5,111,121,197,34,9,0,5,5,115,121,197,98,9,0,5,5,119,121,197,162,9,0,197,227,9,0,197,66,10,0,5,5,127,121,5,5,129,121,197,130,10,0,197,195,10,0,197,34,11,0,5,5,137,121,5,5,139,121,197,98,11,0,5,5,143,121,5,5,6,121,197,98,7,0,197,162,11,0,5,5,10,121,197,226,11,0,197,34,12,0,5,5,12,121,5,5,16,121,197,98,12,0,197,162,12,0,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,5,5,18,121,5,5,20,121,197,2,8,0,5,5,24,121,197,34,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,7,0,8,3,11,0,8,3,0,192,198,65,10,3,0,192,198,97,64,3,2,235,134,70,65,3,198,129,0,3,2,235,134,70,1,3,198,129,2,3,2,235,134,5,3,3,198,161,0,46,156,5,48,0,12,3,2,239,134,5,0,68,156,5,2,0,1,3,255,255,30,69,134,71,3,3,255,255,30,69,134,70,65,3,255,255,30,69,134,71,0,70,156,5,48,0,8,3,0,192,198,129,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,7,0,8,3,15,0,8,3,255,255,5,93,193,4,10,3,255,255,5,93,193,2,64,3,2,235,5,70,65,3,255,255,5,93,193,5,0,3,2,235,5,70,1,3,255,255,5,93,193,5,2,3,2,235,5,5,3,3,255,255,5,93,193,3,0,46,5,5,48,0,12,3,2,239,5,5,0,68,5,5,2,0,1,3,255,255,30,69,5,71,3,3,255,255,30,69,5,70,65,3,255,255,30,69,5,71,0,70,5,5,48,0,8,3,255,255,5,93,193,6,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,42,196,162,7,0,8,3,12,0,8,3,1,192,198,34,10,3,1,192,198,98,64,3,0,192,197,162,65,3,0,192,198,162,0,3,0,192,197,162,1,3,0,192,198,162,2,3,0,192,197,226,3,3,0,192,198,226,5,42,196,162,7,0,8,3,12,0,8,3,2,192,197,34,10,3,2,192,197,98,64,3,1,192,197,34,65,3,1,192,197,98,0,3,1,192,197,34,1,3,1,192,197,98,2,3,1,192,197,162,3,3,1,192,197,226,156,68,196,160,2,0,1,3,2,192,197,162,3,3,2,192,197,226,65,3,2,192,197,162,5,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,70,196,190,48,0,8,3,1,192,198,162,5,70,196,190,48,0,8,3,4,192,197,34,156,70,196,162,48,0,8,3,2,192,198,34,5,70,196,162,48,0,8,3,5,192,197,34,156,78,196,202,48,0,12,3,6,192,197,162,5,78,196,202,48,0,12,3,6,192,197,226,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,7,0,8,3,12,0,8,3,3,192,198,98,10,3,3,192,198,162,64,3,14,192,197,34,65,3,2,192,198,226,0,3,14,192,197,34,1,3,2,192,198,226,2,3,14,192,197,98,3,3,3,192,198,34,5,42,196,200,7,0,8,3,12,0,8,3,15,192,197,162,10,3,15,192,197,226,64,3,14,192,197,162,65,3,14,192,197,226,0,3,14,192,197,162,1,3,14,192,197,226,2,3,15,192,197,34,3,3,15,192,197,98,156,68,196,196,2,0,1,3,16,192,197,34,3,3,16,192,197,98,65,3,16,192,197,34,5,68,196,196,2,0,1,3,16,192,197,162,3,3,16,192,197,226,65,3,16,192,197,162,156,68,196,210,2,0,1,3,17,192,197,34,3,3,17,192,197,98,65,3,17,192,197,34,5,68,196,210,2,0,1,3,17,192,197,162,3,3,17,192,197,226,65,3,17,192,197,162,156,68,196,204,2,0,1,3,18,192,197,34,3,3,18,192,197,98,65,3,18,192,197,34,5,68,196,204,2,0,1,3,18,192,197,162,3,3,18,192,197,226,65,3,18,192,197,162,156,78,196,196,48,0,12,3,19,192,197,34,5,78,196,196,48,0,12,3,19,192,197,98,156,92,196,196,48,0,12,3,20,192,197,34,5,92,196,196,48,0,12,3,20,192,197,98,156,92,196,210,48,0,12,3,20,192,197,162,5,92,196,210,48,0,12,3,20,192,197,226,156,42,196,196,7,0,8,3,12,0,8,3,4,192,198,98,10,3,4,192,198,162,64,3,21,192,197,34,65,3,3,192,198,226,0,3,21,192,197,34,1,3,3,192,198,226,2,3,21,192,197,98,3,3,4,192,198,34,5,42,196,196,7,0,8,3,12,0,8,3,22,192,197,162,10,3,22,192,197,226,64,3,21,192,197,162,65,3,21,192,197,226,0,3,21,192,197,162,1,3,21,192,197,226,2,3,22,192,197,34,3,3,22,192,197,98,156,70,196,196,48,0,8,3,4,192,198,226,5,70,196,196,48,0,8,3,25,192,197,34,25,0,197,99,48,0,8,3,5,192,198,35,25,0,197,195,48,0,8,3,26,192,197,35,170,170,3,0,67,0,50,0,59,0,107,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,168,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,31,0,0,84,31,0,0,180,32,0,0,180,32,0,0,92,35,0,0,92,35,0,0,132,39,0,0,132,39,0,0,140,43,0,0,50,105,114,84,1,0,64,8,232,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,121,0,129,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,48,0,176,0,184,0,188,0,196,0,201,0,209,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,215,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,223,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,192,1,228,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,20,0,202,33,20,0,202,66,20,0,202,99,20,0,202,132,20,0,202,165,20,0,202,198,20,0,202,231,20,0,202,8,21,0,202,41,21,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,70,3,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,6,4,0,201,230,5,0,156,5,0,72,160,5,0,74,156,5,0,76,201,166,6,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,134,7,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,102,8,0,5,5,0,44,201,166,12,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,102,13,0,201,70,15,0,5,5,0,72,5,5,0,74,5,5,0,76,201,38,16,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,6,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,2,43,198,1,0,0,134,5,2,43,198,33,0,0,198,65,0,0,198,97,0,0,134,5,3,93,201,230,17,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,70,30,69,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,198,129,0,0,5,5,127,12,134,5,4,93,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,194,19,0,5,70,2,43,193,5,5,93,5,5,2,43,193,3,5,93,193,4,5,93,193,2,5,93,5,5,3,93,201,134,18,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,70,30,69,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,193,6,5,93,5,5,125,12,5,5,4,93,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,19,0,201,230,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,30,69,5,71,30,69,201,134,26,0,201,6,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,29,0,201,70,30,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,31,0,201,198,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,1,0,197,98,4,0,192,0,0,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,32,0,201,70,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,98,2,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,34,0,201,198,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,2,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,35,0,201,38,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,42,0,201,70,44,0,201,198,45,0,201,70,47,0,201,198,48,0,201,70,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,51,0,201,134,52,0,192,0,0,0,192,0,0,0,197,226,12,0,197,34,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,53,0,201,6,54,0,201,198,54,0,201,134,55,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,56,0,201,230,59,0,192,0,0,0,192,0,0,0,197,98,16,0,197,162,16,0,197,226,16,0,197,34,17,0,197,98,17,0,197,162,17,0,197,226,17,0,197,34,18,0,197,162,14,0,197,98,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,63,0,201,70,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,65,0,201,198,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,97,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,5,5,93,0,134,0,5,0,3,5,93,0,134,0,5,0,4,5,93,0,134,0,5,0,2,5,93,0,134,0,5,0,6,5,93,0,134,0,5,0,5,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,136,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,164,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,200,0,0,0,0,0,134,0,5,0,5,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,3,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,196,0,0,0,0,0,134,0,5,0,6,5,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,5,2,47,5,160,0,0,5,5,2,47,5,160,0,0,134,70,2,43,5,162,0,0,134,5,2,43,5,162,0,0,5,70,2,43,5,162,0,0,193,5,5,93,5,162,0,0,5,5,2,43,5,162,0,0,193,3,5,93,5,162,0,0,193,4,5,93,5,162,0,0,193,2,5,93,5,162,0,0,134,71,30,69,5,160,0,0,134,70,30,69,5,160,0,0,5,71,30,69,5,160,0,0,5,70,30,69,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,193,6,5,93,5,190,0,0,193,4,5,93,5,164,0,0,134,5,3,93,5,164,0,0,5,5,3,93,5,164,0,0,193,6,5,93,5,162,0,0,193,2,5,93,5,136,0,0,134,5,3,93,5,136,0,0,5,5,3,93,5,136,0,0,134,5,4,93,5,136,0,0,5,5,4,93,5,136,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,193,6,5,93,5,164,0,0,134,70,2,43,5,200,0,0,134,5,2,43,5,200,0,0,5,70,2,43,5,200,0,0,193,5,5,93,5,200,0,0,5,5,2,43,5,200,0,0,193,3,5,93,5,200,0,0,193,4,5,93,5,200,0,0,193,2,5,93,5,200,0,0,134,71,30,69,5,196,0,0,134,70,30,69,5,196,0,0,5,71,30,69,5,196,0,0,5,70,30,69,5,196,0,0,134,71,30,69,5,210,0,0,134,70,30,69,5,210,0,0,5,71,30,69,5,210,0,0,5,70,30,69,5,210,0,0,134,71,30,69,5,204,0,0,134,70,30,69,5,204,0,0,5,71,30,69,5,204,0,0,5,70,30,69,5,204,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,134,70,2,43,5,196,0,0,134,5,2,43,5,196,0,0,5,70,2,43,5,196,0,0,193,5,5,93,5,196,0,0,5,5,2,43,5,196,0,0,193,3,5,93,5,196,0,0,193,4,5,93,5,196,0,0,193,2,5,93,5,196,0,0,134,5,2,43,5,136,0,0,5,5,2,43,5,136,0,0,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,5,182,0,0,5,5,2,43,5,182,0,0,134,5,2,43,5,154,0,0,5,5,2,43,5,154,0,0,193,6,5,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,6,5,93,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,7,0,8,3,11,0,8,3,0,192,198,65,10,3,0,192,198,97,64,3,2,235,134,70,65,3,198,129,0,3,2,235,134,70,1,3,198,129,2,3,2,235,134,5,3,3,198,161,0,46,156,5,48,0,12,3,2,239,134,5,0,68,156,5,2,0,1,3,255,255,30,69,134,71,3,3,255,255,30,69,134,70,65,3,255,255,30,69,134,71,0,70,156,5,48,0,8,3,0,192,198,129,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,42,5,5,7,0,8,3,15,0,8,3,255,255,5,93,193,4,10,3,255,255,5,93,193,2,64,3,2,235,5,70,65,3,255,255,5,93,193,5,0,3,2,235,5,70,1,3,255,255,5,93,193,5,2,3,2,235,5,5,3,3,255,255,5,93,193,3,0,46,5,5,48,0,12,3,2,239,5,5,0,68,5,5,2,0,1,3,255,255,30,69,5,71,3,3,255,255,30,69,5,70,65,3,255,255,30,69,5,71,0,70,5,5,48,0,8,3,255,255,5,93,193,6,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,48,0,12,3,197,162,5,46,196,160,48,0,12,3,0,192,197,98,156,42,196,162,7,0,8,3,12,0,8,3,1,192,198,34,10,3,1,192,198,98,64,3,0,192,197,162,65,3,0,192,198,162,0,3,0,192,197,162,1,3,0,192,198,162,2,3,0,192,197,226,3,3,0,192,198,226,5,42,196,162,7,0,8,3,12,0,8,3,2,192,197,34,10,3,2,192,197,98,64,3,1,192,197,34,65,3,1,192,197,98,0,3,1,192,197,34,1,3,1,192,197,98,2,3,1,192,197,162,3,3,1,192,197,226,156,68,196,160,2,0,1,3,2,192,197,162,3,3,2,192,197,226,65,3,2,192,197,162,5,68,196,160,2,0,1,3,3,192,197,34,3,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,70,196,190,48,0,8,3,1,192,198,162,5,70,196,190,48,0,8,3,4,192,197,34,156,70,196,162,48,0,8,3,2,192,198,34,5,70,196,162,48,0,8,3,5,192,197,34,156,78,196,202,48,0,12,3,6,192,197,162,5,78,196,202,48,0,12,3,6,192,197,226,156,42,196,200,7,0,8,3,12,0,8,3,3,192,198,98,10,3,3,192,198,162,64,3,7,192,197,98,65,3,2,192,198,226,0,3,7,192,197,98,1,3,2,192,198,226,2,3,7,192,197,162,3,3,3,192,198,34,5,42,196,200,7,0,8,3,12,0,8,3,8,192,197,226,10,3,9,192,197,34,64,3,7,192,197,226,65,3,8,192,197,34,0,3,7,192,197,226,1,3,8,192,197,34,2,3,8,192,197,98,3,3,8,192,197,162,156,68,196,196,2,0,1,3,9,192,197,98,3,3,9,192,197,162,65,3,9,192,197,98,5,68,196,196,2,0,1,3,9,192,197,226,3,3,10,192,197,34,65,3,9,192,197,226,156,68,196,210,2,0,1,3,10,192,197,98,3,3,10,192,197,162,65,3,10,192,197,98,5,68,196,210,2,0,1,3,10,192,197,226,3,3,11,192,197,34,65,3,10,192,197,226,156,68,196,204,2,0,1,3,11,192,197,98,3,3,11,192,197,162,65,3,11,192,197,98,5,68,196,204,2,0,1,3,11,192,197,226,3,3,12,192,197,34,65,3,11,192,197,226,156,78,196,196,48,0,12,3,12,192,197,98,5,78,196,196,48,0,12,3,12,192,197,162,156,92,196,196,48,0,12,3,13,192,197,98,5,92,196,196,48,0,12,3,13,192,197,162,156,92,196,210,48,0,12,3,13,192,197,226,5,92,196,210,48,0,12,3,14,192,197,34,156,42,196,196,7,0,8,3,12,0,8,3,4,192,198,98,10,3,4,192,198,162,64,3,14,192,197,98,65,3,3,192,198,226,0,3,14,192,197,98,1,3,3,192,198,226,2,3,14,192,197,162,3,3,4,192,198,34,5,42,196,196,7,0,8,3,12,0,8,3,15,192,197,226,10,3,16,192,197,34,64,3,14,192,197,226,65,3,15,192,197,34,0,3,14,192,197,226,1,3,15,192,197,34,2,3,15,192,197,98,3,3,15,192,197,162,156,70,196,196,48,0,8,3,4,192,198,226,5,70,196,196,48,0,8,3,18,192,197,98,18,0,197,163,48,0,8,3,5,192,198,35,19,0,197,3,48,0,8,3,19,192,197,99,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,64,24,4,185,76,186,84,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,120,26,4,28,4,185,136,185,140,185,148,30,4,185,160,185,168,185,172,185,176,185,180,185,184,32,4,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,64,36,4,168,76,168,84,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,120,38,4,40,4,168,136,168,140,168,148,42,4,168,160,168,168,168,172,168,176,168,180,168,184,44,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,132,64,13,1,0,1,0,1,0,192,12,217,60,185,216,185,60,185,208,185,212,185,204,185,196,46,4,186,85,154,85,250,85,90,86,186,101,154,101,250,101,90,102,217,76,217,128,185,133,153,133,249,133,153,134,185,220,136,14,185,200,185,169,153,169,249,169,89,170,153,185,185,224,0,8,200,60,168,216,168,60,168,208,168,212,168,204,168,196,48,4,168,85,136,85,232,85,72,86,168,101,136,101,232,101,72,102,200,76,200,128,168,133,136,133,232,133,136,134,168,220,128,14,168,200,168,169,136,169,232,169,72,170,136,185,168,224,72,186,25,59,8,59,217,57,200,57,50,4,52,4,153,69,136,69,249,69,232,69,185,70,168,70,185,72,168,72,25,78,8,78,185,80,168,80,26,87,8,87,218,85,200,85,186,86,168,86,250,86,232,86,26,86,8,86,249,93,232,93,217,93,200,93,185,94,168,94,217,94,200,94,249,97,232,97,57,99,40,99,154,102,136,102,26,103,8,103,218,101,200,101,250,102,232,102,186,102,168,104,2,8,4,8,250,109,232,109,217,114,200,114,168,144,153,117,136,117,217,118,200,118,25,118,8,118,89,119,72,119,57,119,40,119,249,128,232,128,54,4,56,4,26,126,8,126,6,8,185,128,168,128,25,135,8,135,217,133,200,133,121,134,104,134,8,8,10,8,153,149,136,149,217,150,200,150,25,150,8,150,154,153,136,153,250,153,232,153,58,4,60,4,185,156,168,156,217,162,200,162,25,162,8,162,185,164,168,164,153,170,136,170,25,171,8,171,217,169,200,169,57,170,40,170,121,170,104,170,249,170,232,170,249,177,232,177,249,185,232,185,89,186,153,189,136,189,185,190,168,190,185,192,168,192,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,200,152,169,152,187,100,187,108,169,100,169,108,169,228,169,124,217,132,187,84,200,132,169,84,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,68,255,5,186,124,255,5,185,132,255,5,186,152,255,5,185,188,255,5,168,56,255,5,168,68,255,5,168,124,255,5,168,132,255,5,168,152,255,5,168,188,255,5,217,70,255,5,200,70,255,5,249,58,255,5,232,58,255,5,218,126,255,5,200,126,255,5,218,154,255,5,200,154,255,1,3,0,67,0,50,0,59,0,243,12,0,16,56,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,235,12,0,32,222,23,0,32,1,0,32,0,227,23,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,143,11,0,32,7,0,0,0,21,0,0,0,145,11,0,0,145,11,0,0,3,0,0,0,0,0,0,0,155,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,5,221,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,68,0,60,0,231,0,60,0,60,0,60,0,199,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,69,0,60,0,100,0,104,0,60,0,60,0,60,0,68,0,104,0,60,0,60,0,60,0,68,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,70,0,60,0,235,0,60,0,60,0,60,0,203,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,72,0,60,0,103,0,106,0,60,0,60,0,60,0,71,0,106,0,60,0,60,0,60,0,71,0,74,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,77,0,60,0,108,0,108,0,60,0,60,0,60,0,76,0,108,0,60,0,60,0,60,0,76,0,76,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,79,0,60,0,110,0,106,0,60,0,60,0,60,0,78,0,106,0,60,0,60,0,60,0,78,0,74,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,83,0,60,0,114,0,114,0,60,0,60,0,60,0,82,0,114,0,60,0,60,0,60,0,82,0,82,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,84,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,85,0,60,0,116,0,104,0,60,0,60,0,60,0,84,0,104,0,60,0,60,0,60,0,84,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,89,0,60,0,120,0,104,0,60,0,60,0,60,0,88,0,104,0,60,0,60,0,60,0,88,0,72,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,183,1,60,0,122,0,104,0,60,0,60,0,60,0,90,0,104,0,60,0,60,0,60,0,90,0,72,0,0,0,170,170,174,43,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,164,25,0,0,164,25,0,0,164,25,0,0,164,25,0,0,200,31,0,0,200,31,0,0,36,38,0,0,110,38,0,0,150,43,0,0,50,105,114,84,1,0,64,8,141,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,87,0,95,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,117,0,48,0,48,0,48,0,48,0,124,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,111,0,48,0,48,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,103,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,192,0,192,0,192,0,92,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,47,0,202,1,48,0,202,34,48,0,202,67,48,0,202,100,48,0,202,133,48,0,202,166,48,0,202,199,48,0,202,232,48,0,202,9,49,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,192,0,0,201,38,8,0,156,5,0,52,201,224,8,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,11,0,156,5,0,66,201,128,18,0,156,5,0,70,156,5,0,72,160,5,0,74,201,0,21,0,201,224,29,0,201,160,37,0,156,5,0,82,156,5,0,84,160,5,0,86,201,96,45,0,156,5,0,90,201,32,53,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,230,60,0,201,160,61,0,201,166,65,0,5,5,0,52,201,96,66,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,224,67,0,5,5,0,66,201,160,71,0,5,5,0,70,5,5,0,72,5,5,0,74,201,64,73,0,201,192,77,0,201,224,81,0,5,5,0,82,5,5,0,84,5,5,0,86,201,0,86,0,5,5,0,90,201,32,90,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,47,0,134,5,21,47,196,138,156,50,196,136,156,50,196,142,156,50,134,5,49,51,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,47,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,47,0,5,5,21,47,196,138,5,50,196,136,5,50,196,142,5,50,5,5,49,51,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,94,0,201,6,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,95,0,201,134,96,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,45,0,197,98,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,97,0,201,6,98,0,201,198,98,0,201,134,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,100,0,201,6,101,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,29,49,5,142,0,0,70,5,29,49,5,142,0,0,135,5,29,49,5,144,0,0,70,5,29,49,5,144,0,0,135,5,29,49,5,156,0,0,70,5,29,49,5,156,0,0,135,5,29,49,5,196,0,0,70,5,29,49,5,196,0,0,135,5,29,49,5,150,0,0,70,5,29,49,5,150,0,0,135,5,29,49,5,160,0,0,70,5,29,49,5,160,0,0,135,5,29,49,5,206,0,0,70,5,29,49,5,206,0,0,70,5,29,49,5,210,0,0,135,5,27,55,5,142,0,0,70,5,27,55,5,142,0,0,70,5,27,55,5,144,0,0,135,5,45,65,5,136,0,0,70,5,45,65,5,136,0,0,135,5,45,65,5,160,0,0,70,5,45,65,5,160,0,0,135,5,45,65,5,144,0,0,70,5,45,65,5,144,0,0,135,5,45,65,5,196,0,0,70,5,45,65,5,196,0,0,135,5,45,65,5,196,0,0,5,164,0,0,70,5,45,65,5,196,0,0,5,164,0,0,135,5,45,65,5,210,0,0,70,5,45,65,5,210,0,0,135,5,45,65,5,204,0,0,70,5,45,65,5,204,0,0,135,5,33,69,5,142,0,0,70,5,33,69,5,142,0,0,70,5,33,69,5,144,0,0,135,5,63,77,5,136,0,0,70,5,63,77,5,136,0,0,135,5,63,77,5,160,0,0,70,5,63,77,5,160,0,0,135,5,63,77,5,144,0,0,70,5,63,77,5,144,0,0,135,5,63,77,5,184,0,0,70,5,63,77,5,184,0,0,135,5,63,77,5,188,0,0,70,5,63,77,5,188,0,0,135,5,63,77,5,156,0,0,70,5,63,77,5,156,0,0,135,5,63,77,5,196,0,0,70,5,63,77,5,196,0,0,135,5,63,77,5,196,0,0,5,164,0,0,70,5,63,77,5,196,0,0,5,164,0,0,135,5,63,77,5,210,0,0,70,5,63,77,5,210,0,0,135,5,35,79,5,142,0,0,70,5,35,79,5,142,0,0,135,5,35,79,5,144,0,0,70,5,35,79,5,144,0,0,135,5,35,79,5,156,0,0,70,5,35,79,5,156,0,0,135,5,35,79,5,196,0,0,70,5,35,79,5,196,0,0,135,5,35,79,5,150,0,0,70,5,35,79,5,150,0,0,135,5,35,79,5,160,0,0,70,5,35,79,5,160,0,0,135,5,35,79,5,206,0,0,70,5,35,79,5,206,0,0,70,5,35,79,5,210,0,0,135,5,25,81,5,142,0,0,70,5,25,81,5,142,0,0,135,5,25,81,5,144,0,0,70,5,25,81,5,144,0,0,135,5,25,81,5,156,0,0,70,5,25,81,5,156,0,0,135,5,25,81,5,196,0,0,70,5,25,81,5,196,0,0,135,5,25,81,5,150,0,0,70,5,25,81,5,150,0,0,135,5,25,81,5,160,0,0,70,5,25,81,5,160,0,0,135,5,25,81,5,206,0,0,70,5,25,81,5,206,0,0,70,5,25,81,5,210,0,0,135,5,21,89,5,142,0,0,70,5,21,89,5,142,0,0,135,5,21,89,5,144,0,0,70,5,21,89,5,144,0,0,135,5,21,89,5,156,0,0,70,5,21,89,5,156,0,0,135,5,21,89,5,196,0,0,70,5,21,89,5,196,0,0,135,5,21,89,5,150,0,0,70,5,21,89,5,150,0,0,135,5,21,89,5,160,0,0,70,5,21,89,5,160,0,0,135,5,21,89,5,206,0,0,70,5,21,89,5,206,0,0,70,5,21,89,5,210,0,0,135,5,25,93,5,142,0,0,70,5,25,93,5,142,0,0,135,5,25,93,5,144,0,0,70,5,25,93,5,144,0,0,135,5,25,93,5,156,0,0,70,5,25,93,5,156,0,0,135,5,25,93,5,196,0,0,70,5,25,93,5,196,0,0,135,5,25,93,5,150,0,0,70,5,25,93,5,150,0,0,135,5,25,93,5,160,0,0,70,5,25,93,5,160,0,0,135,5,25,93,5,206,0,0,70,5,25,93,5,206,0,0,70,5,25,93,5,210,0,0,5,5,29,49,5,142,0,0,5,5,29,49,5,144,0,0,5,5,29,49,5,156,0,0,5,5,29,49,5,196,0,0,5,5,29,49,5,150,0,0,5,5,29,49,5,160,0,0,5,5,29,49,5,206,0,0,5,5,29,49,5,210,0,0,5,5,27,55,5,142,0,0,5,5,27,55,5,144,0,0,5,5,45,65,5,136,0,0,5,5,45,65,5,160,0,0,5,5,45,65,5,144,0,0,5,5,45,65,5,196,0,0,5,5,45,65,5,196,0,0,5,164,0,0,5,5,45,65,5,210,0,0,5,5,45,65,5,204,0,0,5,5,33,69,5,142,0,0,5,5,33,69,5,144,0,0,5,5,63,77,5,136,0,0,5,5,63,77,5,160,0,0,5,5,63,77,5,144,0,0,5,5,63,77,5,184,0,0,5,5,63,77,5,188,0,0,5,5,63,77,5,156,0,0,5,5,63,77,5,196,0,0,5,5,63,77,5,196,0,0,5,164,0,0,5,5,63,77,5,210,0,0,5,5,35,79,5,142,0,0,5,5,35,79,5,144,0,0,5,5,35,79,5,156,0,0,5,5,35,79,5,196,0,0,5,5,35,79,5,150,0,0,5,5,35,79,5,160,0,0,5,5,35,79,5,206,0,0,5,5,35,79,5,210,0,0,5,5,25,81,5,142,0,0,5,5,25,81,5,144,0,0,5,5,25,81,5,156,0,0,5,5,25,81,5,196,0,0,5,5,25,81,5,150,0,0,5,5,25,81,5,160,0,0,5,5,25,81,5,206,0,0,5,5,25,81,5,210,0,0,5,5,21,89,5,142,0,0,5,5,21,89,5,144,0,0,5,5,21,89,5,156,0,0,5,5,21,89,5,196,0,0,5,5,21,89,5,150,0,0,5,5,21,89,5,160,0,0,5,5,21,89,5,206,0,0,5,5,21,89,5,210,0,0,5,5,25,93,5,142,0,0,5,5,25,93,5,144,0,0,5,5,25,93,5,156,0,0,5,5,25,93,5,196,0,0,5,5,25,93,5,150,0,0,5,5,25,93,5,160,0,0,5,5,25,93,5,206,0,0,5,5,25,93,5,210,0,0,134,5,49,51,5,162,0,0,5,5,49,51,5,162,0,0,134,5,49,51,5,160,0,0,5,5,49,51,5,160,0,0,134,5,21,47,5,136,0,0,5,5,21,47,5,136,0,0,134,5,49,51,5,204,0,0,5,5,49,51,5,204,0,0,134,5,49,51,5,208,0,0,5,5,49,51,5,208,0,0,134,5,49,51,5,196,0,0,5,5,49,51,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,21,239,134,5,0,48,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,29,241,135,5,104,0,29,241,70,5,36,1,197,162,37,1,0,192,197,98,0,50,156,5,48,0,8,3,49,243,134,5,0,54,156,5,4,0,74,0,27,247,135,5,106,0,27,247,70,5,52,1,3,192,197,226,53,1,4,192,197,34,240,1,4,192,197,98,0,64,156,5,15,0,54,30,26,0,58,30,12,0,58,30,7,192,197,98,59,30,7,192,197,162,60,30,7,192,197,226,61,30,8,192,197,34,54,30,6,192,197,34,55,30,6,192,197,98,56,30,6,192,197,163,57,30,7,192,197,3,59,1,12,0,59,1,5,192,197,34,60,1,5,192,197,98,61,1,5,192,197,162,62,1,5,192,197,226,76,0,255,255,45,65,135,5,108,0,255,255,45,65,70,5,57,1,4,192,197,162,58,1,4,192,197,226,0,68,156,5,4,0,74,0,255,255,33,69,135,5,106,0,255,255,33,69,70,5,52,1,8,192,197,98,53,1,8,192,197,162,240,1,8,192,197,226,0,76,156,5,19,0,18,2,32,0,91,30,15,0,91,30,12,192,197,98,92,30,12,192,197,163,93,30,13,192,197,3,94,30,13,192,197,98,95,30,13,192,197,162,18,2,11,192,197,34,19,2,11,192,197,98,88,30,11,192,197,162,89,30,11,192,197,226,90,30,12,192,197,34,87,1,15,0,87,1,9,192,197,226,88,1,10,192,197,34,89,1,10,192,197,98,16,2,10,192,197,162,17,2,10,192,197,226,82,0,255,255,63,77,135,5,114,0,255,255,63,77,70,5,84,1,9,192,197,34,85,1,9,192,197,98,86,1,9,192,197,162,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,16,192,197,98,41,30,16,192,197,162,42,30,16,192,197,226,43,30,17,192,197,34,150,30,17,192,197,98,36,30,15,192,197,98,37,30,15,192,197,162,38,30,15,192,197,226,39,30,16,192,197,34,30,2,12,0,30,2,14,192,197,98,31,2,14,192,197,162,34,30,14,192,197,226,35,30,15,192,197,34,72,0,255,255,35,79,135,5,104,0,255,255,35,79,70,5,36,1,13,192,197,226,37,1,14,192,197,34,0,80,156,5,16,0,36,30,29,0,40,30,15,0,40,30,20,192,197,34,41,30,20,192,197,98,42,30,20,192,197,162,43,30,20,192,197,226,150,30,21,192,197,34,36,30,19,192,197,34,37,30,19,192,197,98,38,30,19,192,197,162,39,30,19,192,197,226,30,2,12,0,30,2,18,192,197,34,31,2,18,192,197,98,34,30,18,192,197,162,35,30,18,192,197,226,72,0,255,255,25,81,135,5,104,0,255,255,25,81,70,5,36,1,17,192,197,162,37,1,17,192,197,226,0,88,156,5,16,0,36,30,29,0,40,30,15,0,40,30,23,192,197,226,41,30,24,192,197,34,42,30,24,192,197,98,43,30,24,192,197,162,150,30,24,192,197,226,36,30,22,192,197,226,37,30,23,192,197,34,38,30,23,192,197,98,39,30,23,192,197,162,30,2,12,0,30,2,21,192,197,226,31,2,22,192,197,34,34,30,22,192,197,98,35,30,22,192,197,162,72,0,255,255,21,89,135,5,104,0,255,255,21,89,70,5,36,1,21,192,197,98,37,1,21,192,197,162,0,92,156,5,16,0,36,30,29,0,40,30,15,0,40,30,27,192,197,162,41,30,27,192,197,226,42,30,28,192,197,34,43,30,28,192,197,98,150,30,28,192,197,162,36,30,26,192,197,162,37,30,26,192,197,226,38,30,27,192,197,34,39,30,27,192,197,98,30,2,12,0,30,2,25,192,197,162,31,2,25,192,197,226,34,30,26,192,197,34,35,30,26,192,197,98,72,0,255,255,25,93,135,5,104,0,255,255,25,93,70,5,36,1,25,192,197,34,37,1,25,192,197,98,0,46,5,5,48,0,39,3,21,239,5,5,0,48,5,5,8,0,37,30,15,0,37,30,29,192,197,162,39,30,29,192,197,226,41,30,30,192,197,34,43,30,30,192,197,98,150,30,30,192,197,162,104,0,29,241,5,5,37,1,28,192,197,226,31,2,29,192,197,34,35,30,29,192,197,98,0,50,5,5,48,0,8,3,49,243,5,5,0,54,5,5,2,0,106,0,27,247,5,5,53,1,30,192,197,226,240,1,31,192,197,34,0,64,5,5,7,0,55,30,12,0,55,30,32,192,197,34,57,30,32,192,197,99,59,30,32,192,197,194,61,30,33,192,197,2,108,0,255,255,45,65,5,5,58,1,31,192,197,98,60,1,31,192,197,162,62,1,31,192,197,226,0,68,5,5,2,0,106,0,255,255,33,69,5,5,53,1,33,192,197,66,240,1,33,192,197,130,0,76,5,5,9,0,19,2,15,0,19,2,34,192,197,194,89,30,35,192,197,2,91,30,35,192,197,66,93,30,35,192,197,131,95,30,35,192,197,226,114,0,255,255,63,77,5,5,85,1,33,192,197,194,87,1,34,192,197,2,89,1,34,192,197,66,17,2,34,192,197,130,0,78,5,5,8,0,37,30,15,0,37,30,36,192,197,226,39,30,37,192,197,34,41,30,37,192,197,98,43,30,37,192,197,162,150,30,37,192,197,226,104,0,255,255,35,79,5,5,37,1,36,192,197,34,31,2,36,192,197,98,35,30,36,192,197,162,0,80,5,5,8,0,37,30,15,0,37,30,38,192,197,226,39,30,39,192,197,34,41,30,39,192,197,98,43,30,39,192,197,162,150,30,39,192,197,226,104,0,255,255,25,81,5,5,37,1,38,192,197,34,31,2,38,192,197,98,35,30,38,192,197,162,0,88,5,5,8,0,37,30,15,0,37,30,40,192,197,226,39,30,41,192,197,34,41,30,41,192,197,98,43,30,41,192,197,162,150,30,41,192,197,226,104,0,255,255,21,89,5,5,37,1,40,192,197,34,31,2,40,192,197,98,35,30,40,192,197,162,0,92,5,5,8,0,37,30,15,0,37,30,42,192,197,226,39,30,43,192,197,34,41,30,43,192,197,98,43,30,43,192,197,162,150,30,43,192,197,226,104,0,255,255,25,93,5,5,37,1,42,192,197,34,31,2,42,192,197,98,35,30,42,192,197,162,156,50,196,162,48,0,8,3,44,192,197,34,5,50,196,162,48,0,8,3,44,192,197,98,156,50,196,160,48,0,8,3,44,192,197,162,5,50,196,160,48,0,8,3,44,192,197,226,156,50,196,204,48,0,8,3,45,192,197,162,5,50,196,204,48,0,8,3,45,192,197,226,156,50,196,208,48,0,8,3,46,192,197,34,5,50,196,208,48,0,8,3,46,192,197,98,156,50,196,196,48,0,8,3,46,192,197,162,5,50,196,196,48,0,8,3,46,192,197,226,36,0,72,0,73,0,74,0,75,0,82,0,83,0,104,0,105,0,106,0,107,0,108,0,109,0,114,0,115,0,36,1,38,1,52,1,54,1,57,1,63,1,84,1,90,1,240,1,241,1,16,2,20,2,30,2,32,2,34,30,44,30,54,30,62,30,88,30,96,30,150,30,151,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,38,4,185,88,40,4,185,100,186,104,186,112,185,116,50,4,185,128,68,4,185,144,185,148,185,152,78,4,96,4,106,4,185,188,185,192,185,196,116,4,185,208,126,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,136,4,138,4,144,4,168,88,146,4,168,100,168,104,168,112,168,116,152,4,168,128,162,4,168,144,168,148,168,152,168,4,178,4,184,4,168,188,168,192,168,196,190,4,168,208,196,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,81,154,81,250,81,185,84,186,105,154,105,250,105,90,106,217,72,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,189,153,189,249,189,89,190,153,209,185,220,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,81,136,81,232,81,168,84,168,105,136,105,232,105,72,106,200,72,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,189,136,189,232,189,72,190,136,209,168,220,72,210,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,83,40,83,218,81,200,81,186,82,168,82,202,4,204,4,26,82,8,82,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,136,168,136,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,169,136,169,250,169,232,169,250,170,232,170,26,170,8,170,249,178,232,178,25,178,8,178,185,180,168,180,153,190,136,190,57,191,40,191,217,189,200,189,57,190,40,190,121,190,104,190,25,191,8,191,249,197,232,197,249,209,232,209,89,210,153,213,136,213,185,214,168,214,25,214,8,214,232,168,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,80,200,168,169,168,200,56,169,80,187,104,187,112,169,104,169,112,169,224,169,132,217,144,187,80,200,144,169,80,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,72,72,4,186,76,104,4,177,76,36,5,250,77,37,5,241,77,255,5,186,80,255,5,185,92,74,4,186,96,106,4,177,96,52,5,250,97,53,5,241,97,255,5,185,120,76,4,186,124,108,4,177,124,57,5,154,125,58,5,145,125,59,5,250,126,60,5,241,126,61,5,26,126,62,5,17,126,255,5,186,132,74,4,186,140,106,4,177,140,52,5,250,141,53,5,241,141,255,5,185,160,82,4,186,164,114,4,177,164,84,5,154,165,85,5,145,165,86,5,250,166,87,5,241,166,88,5,26,166,89,5,17,166,255,5,186,168,72,4,186,172,104,4,177,172,36,5,250,173,37,5,241,173,255,5,185,176,72,4,186,184,104,4,177,184,36,5,250,185,37,5,241,185,255,5,185,200,72,4,186,204,104,4,177,204,36,5,250,205,37,5,241,205,255,5,185,212,72,4,186,216,104,4,177,216,36,5,250,217,37,5,241,217,255,5,168,64,255,5,168,72,104,4,168,76,37,5,232,77,255,5,168,80,255,5,168,92,106,4,168,96,53,5,232,97,255,5,168,120,108,4,168,124,58,5,136,125,60,5,232,126,62,5,8,126,255,5,168,132,106,4,168,140,53,5,232,141,255,5,168,160,114,4,168,164,85,5,136,165,87,5,232,166,89,5,8,166,255,5,168,168,104,4,168,172,37,5,232,173,255,5,168,176,104,4,168,184,37,5,232,185,255,5,168,200,104,4,168,204,37,5,232,205,255,5,168,212,104,4,168,216,37,5,232,217,255,5,26,83,255,5,8,83,255,1,170,170,3,0,69,0,52,0,61,0,155,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,136,11,0,32,1,0,32,0,141,11,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,168,6,0,32,7,0,0,0,21,0,0,0,170,6,0,0,170,6,0,0,3,0,0,0,0,0,0,0,45,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,41,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,91,0,115,0,117,0,112,0,112,0,114,0,101,0,115,0,115,0,67,0,111,0,110,0,116,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,115,0,32,0,91,0,24,4,56,4,93,0,93,0,0,0,170,170,170,170,170,170,170,170,170,170,196,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,56,0,0,0,56,1,0,0,88,25,0,0,88,25,0,0,88,25,0,0,88,25,0,0,172,25,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,1,0,202,129,1,0,202,162,1,0,202,195,1,0,202,228,1,0,202,5,2,0,202,38,2,0,202,71,2,0,202,104,2,0,202,137,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,174,5,70,97,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,97,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,174,5,70,97,5,140,0,0,5,5,70,97,5,140,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,161,6,0,32,1,0,32,0,166,6,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,65,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,132,19,0,32,7,0,0,0,23,0,0,0,134,19,0,0,134,19,0,0,3,0,0,0,0,0,0,0,43,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,93,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,104,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,0,0,252,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,113,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,180,35,0,0,180,35,0,0,180,35,0,0,180,35,0,0,172,38,0,0,172,38,0,0,198,40,0,0,228,40,0,0,228,40,0,0,50,105,114,84,1,0,64,8,46,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,122,0,130,0,136,0,144,0,152,0,160,0,48,0,56,0,159,0,167,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,192,0,48,0,48,0,48,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,0,48,0,48,0,216,0,48,0,222,0,230,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,233,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,240,0,48,0,48,0,248,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,7,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,182,0,48,0,48,0,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,23,1,48,0,48,0,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,232,1,32,2,96,2,192,0,124,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,22,0,202,161,22,0,202,194,22,0,202,227,22,0,202,4,23,0,202,37,23,0,202,70,23,0,202,103,23,0,202,136,23,0,202,169,23,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,201,68,2,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,224,4,0,156,5,0,66,201,64,7,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,198,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,166,10,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,134,11,0,201,4,13,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,128,14,0,5,5,0,66,201,32,16,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,198,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,166,18,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,13,0,201,134,19,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,13,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,13,0,201,6,21,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,22,0,201,70,23,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,198,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,134,25,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,5,71,238,102,201,70,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,5,0,192,0,0,0,197,98,5,0,192,0,0,0,192,0,0,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,192,0,0,0,197,34,6,0,192,0,0,0,197,98,6,0,192,0,0,0,197,162,6,0,192,0,0,0,197,226,6,0,197,35,7,0,197,130,7,0,192,0,0,0,192,0,0,0,197,194,7,0,197,3,8,0,197,98,8,0,192,0,0,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,29,0,201,230,29,0,192,0,0,0,192,0,0,0,197,226,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,162,4,0,5,5,10,121,5,5,12,121,197,226,4,0,5,5,16,121,5,5,18,121,5,5,20,121,197,34,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,197,162,5,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,226,5,0,5,5,107,121,197,34,6,0,5,5,111,121,197,98,6,0,5,5,115,121,197,162,6,0,5,5,119,121,197,226,6,0,197,35,7,0,197,130,7,0,5,5,127,121,5,5,129,121,197,194,7,0,197,3,8,0,197,98,8,0,5,5,137,121,5,5,139,121,197,162,8,0,5,5,143,121,5,5,6,121,197,162,4,0,197,226,8,0,5,5,10,121,197,34,9,0,197,98,9,0,5,5,12,121,5,5,16,121,197,162,9,0,197,226,9,0,197,34,10,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,5,5,18,121,5,5,20,121,197,66,5,0,5,5,24,121,197,98,5,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,78,196,196,48,0,12,3,11,192,197,98,5,78,196,196,48,0,12,3,11,192,197,162,156,92,196,196,48,0,12,3,12,192,197,98,5,92,196,196,48,0,12,3,12,192,197,162,156,92,196,210,48,0,12,3,12,192,197,226,5,92,196,210,48,0,12,3,13,192,197,34,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,3,0,67,0,50,0,59,0,43,0,0,16,16,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,28,36,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,188,28,0,0,188,28,0,0,188,28,0,0,188,28,0,0,208,29,0,0,208,29,0,0,164,31,0,0,194,31,0,0,4,36,0,0,25,0,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,94,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,174,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,48,0,56,0,105,0,113,0,115,0,123,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,145,0,48,0,48,0,153,0,157,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,165,0,139,0,48,0,48,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,131,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,192,0,164,1,204,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,7,0,202,129,7,0,202,162,7,0,202,195,7,0,202,228,7,0,202,5,8,0,202,38,8,0,202,71,8,0,202,104,8,0,202,137,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,201,132,1,0,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,201,32,4,0,156,5,0,66,201,128,6,0,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,201,6,9,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,201,230,9,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,198,10,0,201,68,12,0,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,201,192,13,0,5,5,0,66,201,96,15,0,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,201,6,17,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,201,230,17,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,6,0,201,198,18,0,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,7,0,201,70,20,0,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,47,5,5,3,47,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,47,5,5,2,47,192,0,0,0,192,0,0,0,134,5,3,49,5,5,3,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,21,0,201,134,22,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,93,5,5,2,93,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,138,5,2,49,72,5,2,49,6,5,2,49,138,5,2,65,72,5,2,65,6,5,2,65,138,5,2,69,72,5,2,69,6,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,23,0,201,6,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,2,0,197,34,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,24,0,201,134,25,0,192,0,0,0,192,0,0,0,197,34,5,0,197,98,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,26,0,201,6,27,0,201,198,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,137,5,2,65,5,142,0,0,71,5,2,65,5,142,0,0,71,5,2,65,5,144,0,0,137,5,2,69,5,142,0,0,71,5,2,69,5,142,0,0,71,5,2,69,5,144,0,0,5,5,2,65,5,142,0,0,5,5,2,65,5,144,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,144,0,0,134,5,3,47,5,160,0,0,134,5,2,47,5,160,0,0,5,5,3,47,5,160,0,0,5,5,2,47,5,160,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,79,5,202,0,0,5,5,2,79,5,202,0,0,134,5,2,79,5,196,0,0,5,5,2,79,5,196,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,93,5,196,0,0,5,5,2,93,5,196,0,0,134,5,2,93,5,210,0,0,5,5,2,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,2,0,1,3,3,239,134,5,12,3,2,239,134,5,65,3,3,239,134,5,0,48,156,5,3,0,90,0,8,0,122,0,10,0,125,1,2,241,137,5,126,1,2,241,71,5,48,0,12,3,2,241,137,5,48,0,12,3,2,241,71,5,0,64,156,5,4,0,74,0,255,255,2,65,137,5,106,0,255,255,2,65,71,5,52,1,197,162,53,1,0,192,197,98,240,1,0,192,197,162,0,68,156,5,4,0,74,0,255,255,2,69,137,5,106,0,255,255,2,69,71,5,52,1,0,192,197,226,53,1,1,192,197,34,240,1,1,192,197,98,0,78,156,5,48,0,12,3,255,255,2,79,134,5,0,92,156,5,48,0,12,3,255,255,2,93,134,5,0,46,5,5,2,0,1,3,3,239,5,5,12,3,2,239,5,5,65,3,3,239,5,5,0,48,5,5,1,0,122,0,3,0,126,1,2,241,5,5,48,0,12,3,2,241,5,5,0,64,5,5,2,0,106,0,255,255,2,65,5,5,53,1,1,192,197,162,240,1,1,192,197,226,0,68,5,5,2,0,106,0,255,255,2,69,5,5,53,1,2,192,197,34,240,1,2,192,197,98,0,78,5,5,48,0,12,3,255,255,2,79,5,5,0,92,5,5,48,0,12,3,255,255,2,93,5,5,156,46,196,160,2,0,1,3,2,192,197,162,12,3,2,192,197,226,65,3,2,192,197,162,5,46,196,160,2,0,1,3,3,192,197,34,12,3,3,192,197,98,65,3,3,192,197,34,156,78,196,160,48,0,12,3,3,192,197,162,5,78,196,160,48,0,12,3,3,192,197,226,156,78,196,202,48,0,12,3,4,192,197,34,5,78,196,202,48,0,12,3,4,192,197,98,156,78,196,196,48,0,12,3,4,192,197,162,5,78,196,196,48,0,12,3,4,192,197,226,156,92,196,196,48,0,12,3,5,192,197,162,5,92,196,196,48,0,12,3,5,192,197,226,156,92,196,210,48,0,12,3,6,192,197,34,5,92,196,210,48,0,12,3,6,192,197,98,14,0,74,0,75,0,90,0,91,0,106,0,107,0,122,0,123,0,52,1,54,1,125,1,127,1,240,1,241,1,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,28,4,186,88,185,92,185,96,185,100,186,104,186,112,185,116,36,4,185,128,46,4,185,144,185,148,185,152,185,160,56,4,185,172,185,180,185,184,185,188,185,192,185,196,58,4,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,60,4,62,4,168,88,168,92,168,96,168,100,168,104,168,112,168,116,67,4,168,128,73,4,168,144,168,148,168,152,168,160,79,4,168,172,168,180,168,184,168,188,168,192,168,196,81,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,144,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,83,4,186,89,154,89,250,89,90,90,186,105,154,105,250,105,90,106,217,76,154,134,185,145,153,145,249,145,153,146,89,146,136,14,217,146,185,181,153,181,249,181,89,182,153,197,185,208,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,85,4,168,89,136,89,232,89,72,90,168,105,136,105,232,105,72,106,200,76,136,134,168,145,136,145,232,145,136,146,72,146,128,14,200,146,168,181,136,181,232,181,72,182,136,197,168,208,72,198,57,59,40,59,217,57,200,57,25,59,8,59,185,72,168,72,249,65,232,65,185,66,168,66,185,68,168,68,25,78,8,78,185,84,168,84,58,91,40,91,218,89,200,89,186,90,168,90,26,91,8,91,26,90,8,90,249,97,232,97,217,97,200,97,185,98,168,98,249,98,232,98,249,101,232,101,89,103,72,103,154,106,136,106,58,107,40,107,218,105,200,105,26,107,8,107,186,106,168,108,6,8,8,8,250,113,232,113,249,118,232,118,168,156,153,121,136,121,249,122,232,122,25,122,8,122,121,123,104,123,89,123,72,123,154,133,136,133,250,134,232,134,26,134,8,134,10,8,185,140,168,140,57,147,40,147,217,145,200,145,121,146,104,146,12,8,14,8,153,161,136,161,249,162,232,162,25,162,8,162,154,165,136,165,250,165,232,165,87,4,89,4,185,168,168,168,249,174,232,174,25,174,8,174,185,176,168,176,153,182,136,182,57,183,40,183,217,181,200,181,57,182,40,182,121,182,104,182,25,183,8,183,249,189,232,189,249,197,232,197,89,198,153,201,136,201,185,202,168,202,185,204,168,204,232,164,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,164,169,164,200,56,169,88,187,104,187,112,169,104,169,112,169,212,169,132,217,144,187,88,200,144,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,76,90,2,122,2,125,5,186,80,126,5,177,80,255,5,185,120,74,4,186,124,106,4,177,124,52,5,250,125,53,5,241,125,255,5,186,132,74,4,186,136,106,4,177,136,52,5,250,137,53,5,241,137,255,5,186,164,255,5,185,200,255,5,168,64,255,5,168,76,122,2,126,5,168,80,255,5,168,120,106,4,168,124,53,5,232,125,255,5,168,132,106,4,168,136,53,5,232,137,255,5,168,164,255,5,168,200,255,5,249,66,255,5,232,66,255,5,250,166,255,5,232,166,255,1,3,0,67,0,50,0,59,0,115,10,0,16,4,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,107,10,0,32,123,19,0,32,1,0,32,0,128,19,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,69,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,83,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,133,34,0,32,7,0,0,0,28,0,0,0,135,34,0,0,135,34,0,0,4,0,0,0,0,0,0,0,195,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,116,114,97,100,105,116,105,111,110,97,108,0,170,0,0,52,0,50,0,0,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,115,0,118,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,126,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,60,0,244,0,60,0,60,0,60,0,212,0,0,0,139,220,38,0,68,0,60,0,60,0,17,1,60,0,60,0,60,0,16,1,60,0,60,0,240,0,60,0,60,0,60,0,208,0,38,0,116,0,60,0,60,0,60,0,254,0,47,0,104,0,38,0,84,0,60,0,60,0,60,0,222,0,47,0,72,0,38,0,118,0,60,0,60,0,60,0,86,0,60,0,60,0,119,0,60,0,60,0,60,0,87,0,38,0,89,0,60,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,60,0,60,0,117,0,11,3,60,0,60,0,60,0,85,0,11,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,192,1,60,0,229,0,60,0,60,0,60,0,197,0,60,0,228,0,60,0,60,0,60,0,196,0,60,0,60,0,230,0,60,0,60,0,60,0,198,0,60,0,60,0,101,0,40,3,60,0,60,0,60,0,69,0,40,3,60,0,246,0,60,0,60,0,60,0,214,0,60,0,60,0,248,0,60,0,60,0,60,0,216,0,60,0,60,0,81,1,60,0,60,0,60,0,80,1,60,0,60,0,83,1,60,0,60,0,60,0,82,1,60,0,60,0,244,0,60,0,60,0,60,0,212,0,0,0,170,170,214,48,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,176,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,100,38,0,0,100,38,0,0,180,41,0,0,180,41,0,0,168,45,0,0,168,45,0,0,186,48,0,0,186,48,0,0,186,48,0,0,50,105,114,84,1,0,64,8,89,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,145,0,153,0,159,0,167,0,175,0,183,0,48,0,56,0,182,0,190,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,0,215,0,48,0,48,0,48,0,223,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,231,0,48,0,48,0,239,0,48,0,245,0,253,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,0,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,8,1,48,0,48,0,12,1,48,0,20,1,25,1,33,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,39,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,47,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,198,0,205,0,48,0,48,0,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,80,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,58,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,1,48,0,48,0,72,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,68,2,124,2,188,2,192,0,216,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,30,0,202,129,30,0,202,162,30,0,202,195,30,0,202,228,30,0,202,5,31,0,202,38,31,0,202,71,31,0,202,104,31,0,202,137,31,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,201,198,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,166,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,102,2,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,230,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,5,0,5,5,0,44,5,5,0,46,5,5,0,48,201,230,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,7,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,70,9,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,198,97,0,0,196,154,156,70,198,129,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,194,21,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,97,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,198,225,0,0,196,154,5,70,193,4,111,93,5,5,125,12,198,129,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,11,0,201,38,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,70,13,0,201,102,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,15,0,201,6,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,162,3,0,197,98,5,0,192,0,0,0,192,0,0,0,198,226,3,0,198,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,70,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,197,226,5,0,198,226,5,0,198,34,6,0,198,98,6,0,198,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,23,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,25,0,5,71,238,102,201,134,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,6,0,192,0,0,0,192,0,0,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,197,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,192,0,0,0,197,226,7,0,192,0,0,0,197,34,8,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,197,227,8,0,197,66,9,0,192,0,0,0,192,0,0,0,197,130,9,0,197,195,9,0,197,34,10,0,192,0,0,0,192,0,0,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,27,0,201,134,28,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,29,0,201,198,30,0,201,230,31,0,201,6,33,0,201,38,34,0,201,70,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,36,0,201,134,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,38,0,201,38,40,0,192,0,0,0,192,0,0,0,198,98,9,0,198,162,9,0,198,226,9,0,198,34,10,0,198,98,10,0,198,162,10,0,198,226,10,0,198,34,11,0,198,34,8,0,198,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,41,0,201,38,43,0,201,166,44,0,201,198,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,46,0,201,6,48,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,71,0,3,111,93,0,134,0,73,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,71,0,3,111,93,0,5,0,73,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,72,0,4,111,93,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,6,121,197,98,6,0,5,5,10,121,5,5,12,121,197,162,6,0,5,5,16,121,5,5,18,121,5,5,20,121,197,226,6,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,197,98,7,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,162,7,0,5,5,107,121,197,226,7,0,5,5,111,121,197,34,8,0,5,5,115,121,197,98,8,0,5,5,119,121,197,162,8,0,197,227,8,0,197,66,9,0,5,5,127,121,5,5,129,121,197,130,9,0,197,195,9,0,197,34,10,0,5,5,137,121,5,5,139,121,197,98,10,0,5,5,143,121,5,5,6,121,197,98,6,0,197,162,10,0,5,5,10,121,197,226,10,0,197,34,11,0,5,5,12,121,5,5,16,121,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,197,226,12,0,5,5,18,121,5,5,20,121,197,2,7,0,5,5,24,121,197,34,7,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,70,156,5,2,0,2,3,0,192,198,97,8,3,0,192,198,129,11,3,0,192,198,161,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,2,0,2,3,0,192,198,225,8,3,255,255,111,93,193,4,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,162,10,3,1,192,198,226,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,2,3,2,192,198,98,8,3,2,192,198,162,11,3,2,192,198,226,5,70,196,190,2,0,2,3,3,192,198,34,8,3,2,192,197,162,11,3,3,192,198,98,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,2,0,2,3,4,192,198,98,8,3,4,192,198,162,11,3,4,192,198,226,5,70,196,162,2,0,2,3,5,192,198,34,8,3,5,192,197,162,11,3,5,192,198,98,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,156,42,196,200,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,200,1,0,8,3,13,192,197,34,10,3,13,192,197,98,156,82,196,198,1,0,8,3,13,192,197,162,11,3,13,192,197,226,5,82,196,198,1,0,8,3,14,192,197,34,11,3,14,192,197,98,156,82,196,208,1,0,8,3,14,192,197,162,11,3,14,192,197,226,5,82,196,208,1,0,8,3,15,192,197,34,11,3,15,192,197,98,156,82,196,204,1,0,8,3,15,192,197,162,11,3,15,192,197,226,5,82,196,204,1,0,8,3,16,192,197,34,11,3,16,192,197,98,156,42,196,196,1,0,8,3,7,192,198,162,10,3,7,192,198,226,5,42,196,196,1,0,8,3,16,192,197,162,10,3,16,192,197,226,156,70,196,196,2,0,2,3,8,192,198,34,8,3,8,192,198,98,11,3,8,192,198,162,5,70,196,196,2,0,2,3,8,192,198,226,8,3,17,192,197,34,11,3,9,192,198,34,17,0,197,99,2,0,2,3,11,192,198,99,8,3,11,192,198,195,11,3,12,192,198,35,17,0,197,195,2,0,2,3,12,192,198,131,8,3,18,192,197,35,11,3,12,192,198,227,156,82,196,196,1,0,8,3,18,192,197,130,11,3,18,192,197,194,5,82,196,196,1,0,8,3,19,192,197,2,11,3,19,192,197,66,19,0,197,131,1,0,8,3,19,192,197,227,11,3,20,192,197,67,20,0,197,163,1,0,8,3,21,192,197,3,11,3,21,192,197,99,170,170,3,0,75,0,58,0,67,0,195,0,0,16,13,0,0,96,1,0,0,96,100,42,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,52,30,0,0,52,30,0,0,132,33,0,0,132,33,0,0,148,35,0,0,148,35,0,0,96,38,0,0,96,38,0,0,72,42,0,0,50,105,114,84,1,0,64,8,214,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,105,0,113,0,118,0,126,0,134,0,142,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,170,0,48,0,178,0,183,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,205,0,158,0,48,0,48,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,150,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,164,1,216,1,24,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,15,0,202,97,15,0,202,130,15,0,202,163,15,0,202,196,15,0,202,229,15,0,202,6,16,0,202,39,16,0,202,72,16,0,202,105,16,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,230,0,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,230,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,198,97,0,0,196,154,156,70,198,129,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,2,15,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,97,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,198,225,0,0,196,154,5,70,193,4,111,93,5,5,125,12,198,129,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,10,0,201,102,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,12,0,201,166,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,14,0,201,70,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,17,0,201,230,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,3,0,197,34,4,0,197,34,0,0,197,98,0,0,197,98,4,0,197,162,4,0,197,226,4,0,197,34,5,0,192,0,0,0,198,162,3,0,197,98,5,0,192,0,0,0,192,0,0,0,198,226,3,0,198,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,20,0,201,134,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,197,226,5,0,198,226,5,0,198,34,6,0,198,98,6,0,198,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,38,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,102,26,0,201,134,27,0,201,166,28,0,201,198,29,0,201,230,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,32,0,201,38,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,34,0,201,198,35,0,192,0,0,0,192,0,0,0,198,98,9,0,198,162,9,0,198,226,9,0,198,34,10,0,198,98,10,0,198,162,10,0,198,226,10,0,198,34,11,0,198,34,8,0,198,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,37,0,201,198,38,0,201,70,40,0,201,102,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,42,0,201,166,43,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,71,0,3,111,93,0,134,0,73,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,71,0,3,111,93,0,5,0,73,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,72,0,4,111,93,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,70,156,5,2,0,2,3,0,192,198,97,8,3,0,192,198,129,11,3,0,192,198,161,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,2,0,2,3,0,192,198,225,8,3,255,255,111,93,193,4,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,162,10,3,1,192,198,226,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,2,3,2,192,198,98,8,3,2,192,198,162,11,3,2,192,198,226,5,70,196,190,2,0,2,3,3,192,198,34,8,3,2,192,197,162,11,3,3,192,198,98,156,82,196,190,1,0,8,3,2,192,197,226,11,3,3,192,197,34,5,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,156,70,196,162,2,0,2,3,4,192,198,98,8,3,4,192,198,162,11,3,4,192,198,226,5,70,196,162,2,0,2,3,5,192,198,34,8,3,5,192,197,162,11,3,5,192,198,98,156,42,196,200,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,200,1,0,8,3,6,192,197,98,10,3,6,192,197,162,156,82,196,198,1,0,8,3,6,192,197,226,11,3,7,192,197,34,5,82,196,198,1,0,8,3,7,192,197,98,11,3,7,192,197,162,156,82,196,208,1,0,8,3,7,192,197,226,11,3,8,192,197,34,5,82,196,208,1,0,8,3,8,192,197,98,11,3,8,192,197,162,156,82,196,204,1,0,8,3,8,192,197,226,11,3,9,192,197,34,5,82,196,204,1,0,8,3,9,192,197,98,11,3,9,192,197,162,156,42,196,196,1,0,8,3,7,192,198,162,10,3,7,192,198,226,5,42,196,196,1,0,8,3,9,192,197,226,10,3,10,192,197,34,156,70,196,196,2,0,2,3,8,192,198,34,8,3,8,192,198,98,11,3,8,192,198,162,5,70,196,196,2,0,2,3,8,192,198,226,8,3,10,192,197,98,11,3,9,192,198,34,10,0,197,163,2,0,2,3,11,192,198,99,8,3,11,192,198,195,11,3,12,192,198,35,11,0,197,3,2,0,2,3,12,192,198,131,8,3,11,192,197,99,11,3,12,192,198,227,156,82,196,196,1,0,8,3,11,192,197,194,11,3,12,192,197,2,5,82,196,196,1,0,8,3,12,192,197,66,11,3,12,192,197,130,12,0,197,195,1,0,8,3,13,192,197,35,11,3,13,192,197,131,13,0,197,227,1,0,8,3,14,192,197,67,11,3,14,192,197,163,5,2,64,12,32,14,192,14,232,14,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,22,4,185,60,185,64,185,68,24,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,26,4,185,124,185,128,185,136,186,140,186,144,28,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,30,4,168,60,168,64,168,68,32,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,34,4,168,124,168,128,168,136,168,140,168,144,36,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,185,184,185,180,217,184,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,57,189,121,122,185,188,136,14,217,188,185,153,153,153,249,153,217,168,153,169,0,8,2,8,168,57,136,57,232,57,104,58,168,184,168,180,200,184,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,40,189,104,122,168,188,128,14,200,188,168,153,136,153,232,153,200,168,136,169,4,8,72,170,249,58,232,58,217,57,200,57,38,4,40,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,184,232,184,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,188,232,188,25,189,8,189,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,168,232,168,42,4,44,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,153,174,136,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,12,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,14,8,1,0,8,14,16,8,1,0,16,14,0,13,8,13,24,14,18,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,176,169,112,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,3,0,75,0,58,0,67,0,255,12,0,16,64,0,0,96,1,0,0,96,170,170,170,170,100,43,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,196,30,0,0,196,30,0,0,20,34,0,0,20,34,0,0,140,36,0,0,140,36,0,0,88,39,0,0,88,39,0,0,72,43,0,0,50,105,114,84,1,0,64,8,223,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,92,0,100,0,106,0,114,0,119,0,127,0,135,0,143,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,167,0,48,0,48,0,171,0,179,0,187,0,192,0,200,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,206,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,214,0,159,0,48,0,48,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,112,1,168,1,220,1,28,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,18,0,202,161,18,0,202,194,18,0,202,227,18,0,202,4,19,0,202,37,19,0,202,70,19,0,202,103,19,0,202,136,19,0,202,169,19,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,230,0,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,166,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,38,3,0,134,5,0,84,134,70,0,84,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,198,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,230,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,134,8,0,5,5,0,84,5,70,0,84,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,198,1,0,0,198,33,0,0,198,33,1,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,134,71,0,48,196,154,156,68,196,138,156,70,196,136,156,70,198,97,0,0,196,154,156,70,198,129,0,0,5,5,127,12,198,65,1,0,196,138,156,82,196,136,156,82,196,142,156,82,134,70,0,90,196,136,156,90,197,162,0,0,197,66,18,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,193,3,111,93,193,2,111,93,198,97,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,71,0,48,196,154,5,68,196,138,5,70,196,136,5,70,198,225,0,0,196,154,5,70,193,4,111,93,5,5,125,12,198,129,1,0,196,138,5,82,196,136,5,82,196,142,5,82,5,70,0,90,196,136,5,90,197,226,0,0,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,10,0,201,102,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,70,0,48,5,70,0,48,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,65,0,0,198,193,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,161,0,0,198,1,1,0,198,33,2,0,198,65,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,90,5,71,0,90,201,134,12,0,201,166,13,0,197,162,2,0,197,226,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,14,0,201,70,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,17,0,201,230,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,4,0,197,162,4,0,197,34,0,0,197,98,0,0,197,226,4,0,197,34,5,0,197,98,5,0,197,162,5,0,192,0,0,0,198,162,3,0,197,226,5,0,192,0,0,0,192,0,0,0,198,226,3,0,198,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,20,0,201,134,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,162,5,0,197,98,6,0,198,226,5,0,198,34,6,0,198,98,6,0,198,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,226,6,0,197,162,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,38,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,25,0,201,102,26,0,201,134,27,0,201,166,28,0,201,198,29,0,201,230,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,154,134,84,192,0,0,0,196,196,134,84,192,0,0,0,197,98,10,0,197,162,10,0,197,226,10,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,197,34,12,0,197,98,12,0,197,162,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,32,0,201,38,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,34,0,201,198,35,0,192,0,0,0,192,0,0,0,198,98,9,0,198,162,9,0,198,226,9,0,198,34,10,0,198,98,10,0,198,162,10,0,198,226,10,0,198,34,11,0,198,34,8,0,198,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,37,0,201,198,38,0,201,70,40,0,201,102,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,42,0,201,166,43,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,0,5,0,3,111,93,0,134,0,5,0,2,111,93,0,134,0,71,0,3,111,93,0,134,0,73,0,4,111,93,0,134,0,5,0,4,111,93,0,134,0,71,0,4,111,93,0,5,0,71,0,3,111,93,0,5,0,73,0,4,111,93,0,5,0,71,0,4,111,93,0,134,0,70,0,3,111,93,0,134,0,70,0,4,111,93,0,5,0,70,0,3,111,93,0,5,0,70,0,4,111,93,0,134,0,5,0,3,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,162,0,0,0,0,0,134,0,72,0,4,111,93,0,5,0,72,0,4,111,93,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,164,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,162,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,162,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,3,111,93,0,5,0,136,0,0,0,0,0,134,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,70,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,164,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,200,0,0,0,0,0,134,0,5,0,3,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,2,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,196,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,136,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,138,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,182,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,154,0,0,0,0,0,134,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,5,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,73,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,71,0,4,111,93,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,70,0,90,5,136,0,0,5,70,0,90,5,136,0,0,157,5,0,80,156,5,0,56,6,5,0,80,5,5,0,56,193,3,111,93,5,162,0,0,193,2,111,93,5,162,0,0,134,70,0,90,5,162,0,0,134,71,0,90,5,162,0,0,5,70,0,90,5,162,0,0,5,71,0,90,5,162,0,0,134,70,0,84,5,142,0,0,5,70,0,84,5,142,0,0,193,4,111,93,5,190,0,0,134,70,0,90,5,190,0,0,134,71,0,90,5,190,0,0,5,70,0,90,5,190,0,0,5,71,0,90,5,190,0,0,134,70,0,90,5,164,0,0,5,70,0,90,5,164,0,0,134,70,0,90,5,144,0,0,5,70,0,90,5,144,0,0,134,70,0,90,5,138,0,0,5,70,0,90,5,138,0,0,193,3,111,93,5,164,0,0,193,4,111,93,5,162,0,0,193,2,111,93,5,136,0,0,193,4,111,93,5,164,0,0,193,3,111,93,5,200,0,0,193,2,111,93,5,200,0,0,134,70,0,90,5,198,0,0,134,71,0,90,5,198,0,0,5,70,0,90,5,198,0,0,5,71,0,90,5,198,0,0,134,70,0,90,5,208,0,0,134,71,0,90,5,208,0,0,5,70,0,90,5,208,0,0,5,71,0,90,5,208,0,0,134,70,0,90,5,204,0,0,134,71,0,90,5,204,0,0,5,70,0,90,5,204,0,0,5,71,0,90,5,204,0,0,134,70,0,84,5,138,0,0,5,70,0,84,5,138,0,0,134,70,0,84,5,136,0,0,5,70,0,84,5,136,0,0,134,70,0,84,5,150,0,0,5,70,0,84,5,150,0,0,134,70,0,84,5,156,0,0,5,70,0,84,5,156,0,0,134,70,0,84,5,196,0,0,5,70,0,84,5,196,0,0,5,70,0,84,5,146,0,0,193,3,111,93,5,196,0,0,193,2,111,93,5,196,0,0,193,4,111,93,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,193,4,111,93,5,190,0,0,5,196,0,0,134,70,0,90,5,196,0,0,134,71,0,90,5,196,0,0,5,70,0,90,5,196,0,0,5,71,0,90,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,90,5,190,0,0,5,196,0,0,134,71,0,90,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,90,5,190,0,0,5,196,0,0,5,71,0,90,5,190,0,0,5,196,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,8,3,198,129,10,3,198,161,0,50,156,5,48,0,40,3,0,192,198,65,0,70,156,5,2,0,2,3,0,192,198,97,8,3,0,192,198,129,11,3,0,192,198,161,0,82,156,5,2,0,8,3,255,255,0,90,134,70,11,3,255,255,0,90,134,71,68,3,197,162,0,42,5,5,1,0,8,3,255,255,111,93,193,3,10,3,255,255,111,93,193,2,0,50,5,5,48,0,40,3,0,192,198,193,0,70,5,5,2,0,2,3,0,192,198,225,8,3,255,255,111,93,193,4,11,3,1,192,198,1,0,82,5,5,2,0,8,3,255,255,0,90,5,70,11,3,255,255,0,90,5,71,68,3,0,192,197,98,156,42,196,162,1,0,8,3,1,192,198,162,10,3,1,192,198,226,5,42,196,162,1,0,8,3,1,192,197,34,10,3,1,192,197,98,156,82,196,162,1,0,8,3,1,192,197,162,11,3,1,192,197,226,5,82,196,162,1,0,8,3,2,192,197,34,11,3,2,192,197,98,156,70,196,190,2,0,2,3,2,192,198,98,8,3,2,192,198,162,11,3,2,192,198,226,5,70,196,190,2,0,2,3,3,192,198,34,8,3,3,192,197,34,11,3,3,192,198,98,156,82,196,190,1,0,8,3,3,192,197,98,11,3,3,192,197,162,5,82,196,190,1,0,8,3,3,192,197,226,11,3,4,192,197,34,156,70,196,162,2,0,2,3,4,192,198,98,8,3,4,192,198,162,11,3,4,192,198,226,5,70,196,162,2,0,2,3,5,192,198,34,8,3,6,192,197,34,11,3,5,192,198,98,156,42,196,200,1,0,8,3,7,192,198,34,10,3,7,192,198,98,5,42,196,200,1,0,8,3,6,192,197,226,10,3,7,192,197,34,156,82,196,198,1,0,8,3,7,192,197,98,11,3,7,192,197,162,5,82,196,198,1,0,8,3,7,192,197,226,11,3,8,192,197,34,156,82,196,208,1,0,8,3,8,192,197,98,11,3,8,192,197,162,5,82,196,208,1,0,8,3,8,192,197,226,11,3,9,192,197,34,156,82,196,204,1,0,8,3,9,192,197,98,11,3,9,192,197,162,5,82,196,204,1,0,8,3,9,192,197,226,11,3,10,192,197,34,156,42,196,196,1,0,8,3,7,192,198,162,10,3,7,192,198,226,5,42,196,196,1,0,8,3,13,192,197,34,10,3,13,192,197,98,156,70,196,196,2,0,2,3,8,192,198,34,8,3,8,192,198,98,11,3,8,192,198,162,5,70,196,196,2,0,2,3,8,192,198,226,8,3,13,192,197,162,11,3,9,192,198,34,13,0,197,227,2,0,2,3,11,192,198,99,8,3,11,192,198,195,11,3,12,192,198,35,14,0,197,67,2,0,2,3,12,192,198,131,8,3,14,192,197,163,11,3,12,192,198,227,156,82,196,196,1,0,8,3,15,192,197,2,11,3,15,192,197,66,5,82,196,196,1,0,8,3,15,192,197,130,11,3,15,192,197,194,16,0,197,3,1,0,8,3,16,192,197,99,11,3,16,192,197,195,17,0,197,35,1,0,8,3,17,192,197,131,11,3,17,192,197,227,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,30,4,185,124,185,128,185,136,186,140,186,144,32,4,185,156,217,156,185,160,185,164,185,168,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,60,168,64,168,68,36,4,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,38,4,168,124,168,128,168,136,168,140,168,144,40,4,168,156,200,156,168,160,168,164,168,168,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,121,58,185,180,185,176,217,180,185,66,185,73,153,73,249,73,89,74,186,89,154,89,250,89,90,90,249,68,122,114,185,121,153,121,57,185,121,122,185,184,136,14,217,184,185,153,153,153,249,153,217,164,153,165,0,8,2,8,168,57,136,57,232,57,104,58,168,180,168,176,200,180,168,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,232,68,104,114,168,121,136,121,40,185,104,122,168,184,128,14,200,184,168,153,136,153,232,153,200,164,136,165,4,8,72,166,249,58,232,58,217,57,200,57,42,4,44,4,153,65,136,65,249,65,232,65,153,66,136,66,25,66,8,66,25,70,8,70,217,68,200,68,249,74,232,74,217,73,200,73,153,74,136,74,249,180,232,180,25,74,8,74,249,81,232,81,217,81,200,81,153,82,136,82,185,82,168,82,249,85,232,85,25,87,8,87,122,90,104,90,250,90,232,90,218,89,200,89,218,90,200,90,154,90,168,92,6,8,8,8,250,97,232,97,185,102,168,102,168,132,153,105,136,105,185,106,168,106,25,106,8,106,57,107,40,107,25,107,8,107,154,113,136,113,186,114,168,114,26,114,8,114,10,8,185,116,168,116,249,122,232,122,217,121,200,121,249,184,232,184,25,185,8,185,153,137,136,137,185,138,168,138,25,138,8,138,154,141,136,141,250,141,232,141,186,142,168,142,26,142,8,142,186,146,168,146,26,146,8,146,185,148,168,148,121,154,104,154,249,154,232,154,217,153,200,153,57,154,40,154,249,164,232,164,46,4,48,4,12,8,14,8,249,165,232,165,89,166,153,169,136,169,153,170,136,170,25,170,8,170,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,187,144,185,84,200,140,169,140,169,144,168,84,187,88,187,96,169,88,169,96,169,172,169,112,217,156,232,1,200,156,232,1,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,120,255,5,168,152,255,5,217,58,255,5,200,58,255,5,217,154,255,5,200,154,255,1,3,0,75,0,58,0,67,0,159,23,0,16,192,0,0,96,1,0,0,96,4,0,43,0,51,0,90,0,99,0,170,170,4,0,0,96,250,12,0,32,153,23,0,32,121,34,0,32,1,0,32,0,126,34,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,216,7,0,32,7,0,0,0,21,0,0,0,218,7,0,0,218,7,0,0,3,0,0,0,0,0,0,0,251,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,197,221,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,97,0,109,0,108,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,101,0,108,0,117,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,148,11,60,0,130,11,60,0,131,11,38,0,185,11,60,0,149,11,205,11,183,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,149,11,60,0,149,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,153,11,60,0,153,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,154,11,60,0,154,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,158,11,60,0,158,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,159,11,60,0,159,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,163,11,60,0,163,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,164,11,60,0,164,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,168,11,60,0,168,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,170,11,60,0,170,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,174,11,60,0,174,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,175,11,60,0,175,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,176,11,60,0,176,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,178,11,60,0,178,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,181,11,60,0,181,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,180,11,60,0,180,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,179,11,60,0,179,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,177,11,60,0,177,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,169,11,60,0,169,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,156,11,60,0,156,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,182,11,60,0,182,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,183,11,60,0,183,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,184,11,60,0,184,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,185,11,60,0,185,11,205,11,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,149,11,205,11,183,11,60,0,149,11,205,11,183,11,205,11,0,0,170,170,84,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,128,0,0,0,128,1,0,0,160,25,0,0,160,25,0,0,160,25,0,0,160,25,0,0,228,25,0,0,228,25,0,0,54,27,0,0,60,27,0,0,35,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,36,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,109,186,255,0,110,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,39,45,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,121,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,104,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,112,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,31,109,193,3,31,109,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,1,0,201,198,2,0,192,0,0,0,201,166,3,0,192,0,0,0,201,134,4,0,201,102,5,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,6,0,201,38,7,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,8,0,201,230,8,0,201,198,9,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,10,0,201,134,11,0,201,102,12,0,201,70,13,0,201,38,14,0,201,6,15,0,201,230,15,0,201,198,16,0,201,166,17,0,201,134,18,0,201,102,19,0,201,70,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,34,109,5,5,48,0,205,11,240,127,33,109,5,5,183,11,240,127,79,109,193,3,205,11,255,255,79,109,193,2,36,109,5,5,48,0,205,11,255,255,35,109,5,5,38,109,5,5,48,0,205,11,255,255,37,109,5,5,70,109,5,5,48,0,205,11,255,255,69,109,5,5,40,109,5,5,48,0,205,11,255,255,39,109,5,5,42,109,5,5,48,0,205,11,255,255,41,109,5,5,44,109,5,5,48,0,205,11,255,255,43,109,5,5,46,109,5,5,48,0,205,11,255,255,45,109,5,5,48,109,5,5,48,0,205,11,255,255,47,109,5,5,68,109,5,5,48,0,205,11,255,255,67,109,5,5,50,109,5,5,48,0,205,11,255,255,49,109,5,5,52,109,5,5,48,0,205,11,255,255,51,109,5,5,54,109,5,5,48,0,205,11,255,255,53,109,5,5,56,109,5,5,48,0,205,11,255,255,55,109,5,5,66,109,5,5,48,0,205,11,255,255,65,109,5,5,58,109,5,5,48,0,205,11,255,255,57,109,5,5,64,109,5,5,48,0,205,11,255,255,63,109,5,5,62,109,5,5,48,0,205,11,255,255,61,109,5,5,60,109,5,5,48,0,205,11,255,255,59,109,5,5,72,109,5,5,48,0,205,11,255,255,71,109,5,5,74,109,5,5,48,0,205,11,255,255,73,109,5,5,76,109,5,5,48,0,205,11,255,255,75,109,5,5,78,109,5,5,48,0,205,11,255,255,77,109,5,5,2,0,183,11,184,11,3,0,69,0,52,0,61,0,251,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,209,7,0,32,1,0,32,0,214,7,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,167,6,0,32,7,0,0,0,21,0,0,0,169,6,0,0,169,6,0,0,3,0,0,0,0,0,0,0,67,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,85,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,101,0,108,0,117,0,32,0,68,0,101,0,118,0,97,0,32,0,66,0,101,0,110,0,103,0,32,0,71,0,117,0,114,0,117,0,32,0,71,0,117,0,106,0,114,0,32,0,79,0,114,0,121,0,97,0,32,0,84,0,97,0,109,0,108,0,32,0,75,0,110,0,100,0,97,0,32,0,77,0,108,0,121,0,109,0,32,0,83,0,105,0,110,0,104,0,93,0,38,0,20,12,60,0,1,12,60,0,2,12,60,0,3,12,0,0,170,170,112,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,13,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,52,0,0,0,116,0,0,0,116,1,0,0,20,25,0,0,20,25,0,0,20,25,0,0,20,25,0,0,88,25,0,0,36,0,0,0,10,0,0,0,4,0,0,0,16,0,0,0,15,0,0,0,31,0,0,0,35,0,0,0,21,0,0,0,26,0,0,0,33,0,0,0,0,0,0,41,8,0,0,96,6,0,0,104,192,255,0,110,185,255,0,111,191,255,160,113,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,102,103,104,105,106,107,108,109,40,41,42,43,44,45,39,46,47,0,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,113,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,104,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,37,110,193,3,37,110,193,4,37,110,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,160,6,0,32,1,0,32,0,165,6,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,199,6,0,32,7,0,0,0,21,0,0,0,201,6,0,0,201,6,0,0,3,0,0,0,0,0,0,0,83,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,118,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,97,0,108,0,116,0,101,0,114,0,110,0,97,0,116,0,101,0,32,0,115,0,104,0,105,0,102,0,116,0,101,0,100,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,84,0,104,0,97,0,105,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,90,14,60,0,47,14,38,0,91,14,60,0,70,14,38,0,78,14,60,0,60,0,76,14,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,48,14,60,0,77,14,38,0,50,14,60,0,60,0,60,0,69,14,38,0,50,14,77,14,60,0,60,0,60,0,77,14,50,14,60,0,60,0,60,0,51,14,38,0,69,14,77,14,60,0,60,0,60,0,77,14,69,14,38,0,68,14,60,0,58,14,0,0,176,25,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,21,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,68,0,0,0,68,1,0,0,36,25,0,0,36,25,0,0,36,25,0,0,36,25,0,0,128,25,0,0,128,25,0,0,146,25,0,0,152,25,0,0,38,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,39,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,117,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,93,0,100,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,108,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,1,0,202,193,1,0,202,226,1,0,202,3,2,0,202,36,2,0,202,69,2,0,202,102,2,0,202,135,2,0,202,168,2,0,202,201,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,1,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,1,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,11,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,104,114,5,5,55,11,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,229,242,201,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,104,114,8,5,99,114,5,5,104,114,7,5,99,114,6,5,104,114,6,5,99,114,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,99,114,5,5,1,0,50,14,0,192,197,98,69,14,0,192,197,162,2,0,69,14,70,14,3,0,69,0,52,0,61,0,83,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,192,6,0,32,1,0,32,0,197,6,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,74,10,0,32,7,0,0,0,21,0,0,0,76,10,0,0,76,10,0,0,3,0,0,0,0,0,0,0,56,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,64,220,38,0,67,0,60,0,231,0,60,0,60,0,60,0,199,0,38,0,69,0,60,0,228,0,60,0,60,0,60,0,196,0,38,0,74,0,60,0,126,1,60,0,60,0,60,0,125,1,38,0,78,0,60,0,72,1,60,0,60,0,60,0,71,1,38,0,79,0,60,0,246,0,60,0,60,0,60,0,214,0,38,0,83,0,60,0,95,1,60,0,60,0,60,0,94,1,38,0,85,0,60,0,252,0,60,0,60,0,60,0,220,0,38,0,89,0,60,0,253,0,60,0,60,0,60,0,221,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,26,40,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,180,30,0,0,180,30,0,0,180,30,0,0,180,30,0,0,248,32,0,0,248,32,0,0,234,35,0,0,234,35,0,0,2,40,0,0,50,105,114,84,1,0,64,8,222,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,111,0,119,0,124,0,132,0,135,0,143,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,167,0,48,0,174,0,178,0,184,0,192,0,197,0,205,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,213,0,159,0,48,0,48,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,151,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,188,1,240,1,28,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,16,0,202,1,17,0,202,34,17,0,202,67,17,0,202,100,17,0,202,133,17,0,202,166,17,0,202,199,17,0,202,232,17,0,202,9,18,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,198,0,0,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,134,1,0,201,102,2,0,156,5,0,72,160,5,0,74,156,5,0,76,201,70,3,0,156,5,0,80,201,38,4,0,156,5,0,84,160,5,0,86,156,5,0,88,201,70,5,0,201,166,6,0,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,102,7,0,5,5,0,44,201,38,8,0,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,230,8,0,201,198,9,0,5,5,0,72,5,5,0,74,5,5,0,76,201,166,10,0,5,5,0,80,201,134,11,0,5,5,0,84,5,5,0,86,5,5,0,88,201,198,12,0,201,38,14,0,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,134,5,2,51,196,146,156,42,197,34,16,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,134,5,2,91,160,5,38,93,197,98,16,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,5,5,2,51,196,146,5,42,197,162,16,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,5,5,2,91,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,134,5,2,69,5,5,2,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,17,0,201,166,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,61,5,5,2,61,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,19,0,201,38,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,20,0,201,166,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,3,0,197,98,3,0,197,34,0,0,197,98,0,0,197,162,3,0,197,226,3,0,197,34,4,0,197,98,4,0,192,0,0,0,197,162,4,0,197,226,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,22,0,201,38,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,226,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,6,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,29,0,201,166,30,0,201,102,31,0,201,38,32,0,201,230,32,0,201,166,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,34,0,201,38,35,0,201,230,35,0,201,166,36,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,37,0,201,38,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,38,0,201,166,39,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,40,0,201,38,41,0,201,230,41,0,201,166,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,43,0,201,38,44,0,192,0,0,0,192,0,0,0,201,230,44,0,201,6,46,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,51,5,164,0,0,5,5,2,51,5,164,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,51,5,200,0,0,5,5,2,51,5,200,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,2,61,5,196,0,0,5,5,2,61,5,196,0,0,134,5,2,61,5,210,0,0,5,5,2,61,5,210,0,0,134,5,2,51,5,196,0,0,5,5,2,51,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,134,5,2,91,5,196,0,0,5,5,2,91,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,48,0,8,3,2,243,134,5,0,46,156,5,48,0,39,3,2,239,134,5,0,68,156,5,48,0,12,3,255,255,2,69,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,90,156,5,1,0,1,3,255,255,2,91,134,5,65,3,255,255,2,91,134,5,0,92,156,5,48,0,12,3,2,253,134,5,0,42,5,5,48,0,8,3,2,243,5,5,0,46,5,5,48,0,39,3,2,239,5,5,0,68,5,5,48,0,12,3,255,255,2,69,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,0,90,5,5,1,0,1,3,255,255,2,91,5,5,65,3,255,255,2,91,5,5,0,92,5,5,48,0,12,3,2,253,5,5,156,42,196,162,48,0,8,3,0,192,197,162,5,42,196,162,48,0,8,3,0,192,197,226,156,68,196,160,48,0,12,3,1,192,197,34,5,68,196,160,48,0,12,3,1,192,197,98,156,82,196,162,48,0,8,3,1,192,197,162,5,82,196,162,48,0,8,3,1,192,197,226,156,70,196,190,48,0,8,3,2,192,197,34,5,70,196,190,48,0,8,3,2,192,197,98,156,82,196,190,48,0,8,3,2,192,197,162,5,82,196,190,48,0,8,3,2,192,197,226,156,70,196,162,48,0,8,3,5,192,197,34,5,70,196,162,48,0,8,3,5,192,197,98,156,42,196,200,48,0,8,3,6,192,197,34,5,42,196,200,48,0,8,3,6,192,197,98,156,68,196,196,48,0,12,3,7,192,197,34,5,68,196,196,48,0,12,3,7,192,197,98,156,68,196,210,48,0,12,3,7,192,197,162,5,68,196,210,48,0,12,3,7,192,197,226,156,68,196,204,48,0,12,3,8,192,197,34,5,68,196,204,48,0,12,3,8,192,197,98,156,82,196,198,48,0,8,3,8,192,197,162,5,82,196,198,48,0,8,3,8,192,197,226,156,82,196,208,48,0,8,3,9,192,197,34,5,82,196,208,48,0,8,3,9,192,197,98,156,82,196,204,48,0,8,3,9,192,197,162,5,82,196,204,48,0,8,3,9,192,197,226,156,92,196,196,48,0,12,3,10,192,197,34,5,92,196,196,48,0,12,3,10,192,197,98,156,92,196,210,48,0,12,3,10,192,197,162,5,92,196,210,48,0,12,3,10,192,197,226,156,42,196,196,48,0,8,3,11,192,197,34,5,42,196,196,48,0,8,3,11,192,197,98,156,70,196,196,48,0,8,3,11,192,197,162,5,70,196,196,48,0,8,3,11,192,197,226,12,0,197,35,48,0,8,3,12,192,197,131,12,0,197,227,48,0,8,3,13,192,197,67,156,82,196,196,48,0,8,3,13,192,197,162,5,82,196,196,48,0,8,3,13,192,197,226,14,0,197,35,48,0,8,3,14,192,197,131,14,0,197,227,48,0,8,3,15,192,197,67,156,90,196,196,1,0,1,3,15,192,197,162,65,3,15,192,197,162,5,90,196,196,1,0,1,3,15,192,197,226,65,3,15,192,197,226,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,28,4,185,72,186,76,185,84,185,88,185,92,186,96,186,104,185,112,185,116,185,120,30,4,32,4,185,144,185,148,185,156,34,4,185,168,36,4,185,184,185,188,185,192,38,4,40,4,88,13,168,13,96,13,56,14,80,12,40,14,42,4,168,60,44,4,168,72,168,76,168,84,168,88,168,92,168,96,168,104,168,112,168,116,168,120,46,4,48,4,168,144,168,148,168,156,50,4,168,168,52,4,168,184,168,188,168,192,54,4,56,4,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,185,80,57,58,0,8,185,68,186,77,154,77,250,77,90,78,186,97,154,97,250,97,90,98,217,72,154,126,185,137,153,137,249,137,153,138,185,140,136,14,217,138,185,177,153,177,249,177,185,180,185,200,185,208,2,8,168,57,136,57,232,57,136,58,168,80,40,58,4,8,168,68,168,77,136,77,232,77,72,78,168,97,136,97,232,97,72,98,200,72,136,126,168,137,136,137,232,137,136,138,168,140,128,14,200,138,168,177,136,177,232,177,168,180,168,200,168,208,72,198,57,59,40,59,217,57,200,57,58,4,60,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,89,232,89,217,89,200,89,185,90,168,90,249,90,232,90,249,93,232,93,89,95,72,95,154,98,136,98,58,99,40,99,218,97,200,97,26,99,8,99,186,98,168,100,6,8,8,8,250,105,232,105,249,114,232,114,168,152,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,62,4,64,4,185,128,168,128,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,157,136,157,249,158,232,158,25,158,8,158,154,161,136,161,250,161,232,161,185,164,168,164,26,162,8,162,249,170,232,170,25,170,8,170,185,172,168,172,153,178,136,178,57,179,40,179,217,177,200,177,57,178,40,178,121,178,104,178,66,4,68,4,249,189,232,189,249,197,232,197,89,198,153,205,136,205,185,206,168,206,185,108,168,108,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,160,169,160,200,56,169,76,187,96,187,104,169,96,169,104,169,212,169,124,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,64,255,5,186,124,255,5,185,136,255,5,186,160,255,5,185,176,255,5,185,196,255,5,185,204,255,5,168,56,255,5,168,64,255,5,168,124,255,5,168,136,255,5,168,160,255,5,168,176,255,5,168,196,255,5,168,204,255,5,25,59,255,5,8,59,255,5,250,126,255,5,232,126,255,5,25,179,255,5,8,179,255,1,170,170,3,0,69,0,52,0,61,0,59,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,67,10,0,32,1,0,32,0,72,10,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,213,11,0,32,7,0,0,0,21,0,0,0,215,11,0,0,215,11,0,0,3,0,0,0,0,0,0,0,80,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,111,220,38,0,110,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,60,0,60,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,122,0,60,0,187,2,60,0,60,0,60,0,189,2,38,0,97,0,60,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,60,0,1,1,60,0,60,0,60,0,0,1,38,0,101,0,60,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,60,0,19,1,60,0,60,0,60,0,18,1,38,0,105,0,60,0,60,0,237,0,60,0,60,0,60,0,205,0,60,0,60,0,43,1,60,0,60,0,60,0,42,1,38,0,111,0,60,0,60,0,243,0,60,0,60,0,60,0,211,0,60,0,60,0,77,1,60,0,60,0,60,0,76,1,38,0,117,0,60,0,60,0,250,0,60,0,60,0,60,0,218,0,60,0,60,0,107,1,60,0,60,0,60,0,106,1,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,230,45,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,68,31,0,0,68,31,0,0,68,31,0,0,68,31,0,0,144,35,0,0,144,35,0,0,104,41,0,0,130,41,0,0,206,45,0,0,50,105,114,84,1,0,64,8,231,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,94,0,102,0,107,0,115,0,120,0,128,0,132,0,140,0,48,0,56,0,143,0,151,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,182,0,186,0,191,0,48,0,199,0,206,0,214,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,222,0,167,0,48,0,48,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,159,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,120,1,172,1,224,1,16,2,192,0,60,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,33,0,202,65,33,0,202,98,33,0,202,131,33,0,202,164,33,0,202,197,33,0,202,230,33,0,202,7,34,0,202,40,34,0,202,73,34,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,1,0,156,5,0,52,156,5,0,54,156,5,0,56,201,6,3,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,128,4,0,201,198,11,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,166,13,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,134,15,0,5,5,0,44,5,5,0,46,5,5,0,48,201,6,17,0,5,5,0,52,5,5,0,54,5,5,0,56,201,134,18,0,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,0,20,0,201,198,23,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,166,25,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,134,70,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,32,0,196,160,156,46,196,138,156,50,134,70,0,50,196,142,156,50,196,150,156,50,196,138,156,58,134,70,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,134,70,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,134,70,0,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,32,0,196,138,5,42,5,70,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,32,0,196,160,5,46,196,138,5,50,5,70,0,50,196,142,5,50,196,150,5,50,196,138,5,58,5,70,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,5,70,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,5,70,0,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,134,71,0,42,5,71,0,42,192,0,0,0,192,0,0,0,201,134,27,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,30,0,201,6,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,58,5,71,0,58,192,0,0,0,192,0,0,0,201,134,33,0,201,6,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,137,5,2,69,8,5,2,69,134,71,0,70,5,71,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,82,5,71,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,36,0,201,6,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,39,0,201,6,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,42,0,201,6,44,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,45,0,201,6,47,0,197,162,11,0,197,34,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,48,0,201,6,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,93,192,0,0,0,6,5,2,93,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,51,0,201,6,53,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,14,0,197,162,14,0,197,226,14,0,197,34,15,0,201,134,54,0,201,6,56,0,201,134,57,0,201,6,59,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,60,0,201,6,62,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,0,197,162,18,0,197,226,18,0,197,34,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,63,0,201,6,65,0,201,134,66,0,201,6,68,0,201,134,69,0,201,6,71,0,192,0,0,0,192,0,0,0,197,98,22,0,197,162,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,72,0,201,6,74,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,75,0,201,6,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,78,0,201,6,80,0,201,134,81,0,201,6,83,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,9,0,197,226,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,84,0,201,6,86,0,201,134,87,0,201,6,89,0,192,0,0,0,192,0,0,0,197,98,10,0,197,226,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,90,0,201,6,92,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,69,5,142,0,0,70,5,2,69,5,142,0,0,135,5,2,69,5,140,0,0,70,5,2,69,5,140,0,0,135,5,2,69,5,156,0,0,70,5,2,69,5,156,0,0,135,5,2,69,5,160,0,0,70,5,2,69,5,160,0,0,135,5,2,69,5,144,0,0,70,5,2,69,5,144,0,0,135,5,2,69,5,136,0,0,70,5,2,69,5,136,0,0,135,5,2,69,5,164,0,0,70,5,2,69,5,164,0,0,5,5,2,69,5,142,0,0,5,5,2,69,5,140,0,0,5,5,2,69,5,156,0,0,5,5,2,69,5,160,0,0,5,5,2,69,5,144,0,0,5,5,2,69,5,136,0,0,5,5,2,69,5,164,0,0,134,70,0,42,5,162,0,0,134,71,0,42,5,162,0,0,5,70,0,42,5,162,0,0,5,71,0,42,5,162,0,0,134,70,0,50,5,162,0,0,134,71,0,50,5,162,0,0,5,70,0,50,5,162,0,0,5,71,0,50,5,162,0,0,134,70,0,58,5,162,0,0,134,71,0,58,5,162,0,0,5,70,0,58,5,162,0,0,5,71,0,58,5,162,0,0,134,70,0,82,5,162,0,0,134,71,0,82,5,162,0,0,5,70,0,82,5,162,0,0,5,71,0,82,5,162,0,0,134,70,0,70,5,190,0,0,134,71,0,70,5,190,0,0,5,70,0,70,5,190,0,0,5,71,0,70,5,190,0,0,134,70,0,82,5,190,0,0,134,71,0,82,5,190,0,0,5,70,0,82,5,190,0,0,5,71,0,82,5,190,0,0,134,70,0,70,5,162,0,0,134,71,0,70,5,162,0,0,5,70,0,70,5,162,0,0,5,71,0,70,5,162,0,0,134,70,0,50,5,160,0,0,134,71,0,50,5,160,0,0,5,70,0,50,5,160,0,0,5,71,0,50,5,160,0,0,134,70,0,42,5,200,0,0,134,71,0,42,5,200,0,0,5,70,0,42,5,200,0,0,5,71,0,42,5,200,0,0,134,71,0,50,5,138,0,0,5,71,0,50,5,138,0,0,134,71,0,50,5,136,0,0,5,71,0,50,5,136,0,0,134,70,0,50,5,204,0,0,134,71,0,50,5,204,0,0,5,70,0,50,5,204,0,0,5,71,0,50,5,204,0,0,134,70,0,50,5,208,0,0,134,71,0,50,5,208,0,0,5,70,0,50,5,208,0,0,5,71,0,50,5,208,0,0,134,70,0,58,5,208,0,0,134,71,0,58,5,208,0,0,5,70,0,58,5,208,0,0,5,71,0,58,5,208,0,0,134,71,0,70,5,138,0,0,5,71,0,70,5,138,0,0,134,71,0,70,5,136,0,0,5,71,0,70,5,136,0,0,134,70,0,82,5,198,0,0,134,71,0,82,5,198,0,0,5,70,0,82,5,198,0,0,5,71,0,82,5,198,0,0,134,70,0,82,5,208,0,0,134,71,0,82,5,208,0,0,5,70,0,82,5,208,0,0,5,71,0,82,5,208,0,0,134,70,0,82,5,204,0,0,134,71,0,82,5,204,0,0,5,70,0,82,5,204,0,0,5,71,0,82,5,204,0,0,134,71,0,82,5,150,0,0,5,71,0,82,5,150,0,0,134,70,0,42,5,196,0,0,134,71,0,42,5,196,0,0,5,70,0,42,5,196,0,0,5,71,0,42,5,196,0,0,134,70,0,50,5,196,0,0,134,71,0,50,5,196,0,0,5,70,0,50,5,196,0,0,5,71,0,50,5,196,0,0,134,70,0,58,5,196,0,0,134,71,0,58,5,196,0,0,5,70,0,58,5,196,0,0,5,71,0,58,5,196,0,0,134,70,0,70,5,196,0,0,134,71,0,70,5,196,0,0,5,70,0,70,5,196,0,0,5,71,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,70,0,70,5,190,0,0,5,196,0,0,134,71,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,70,0,70,5,190,0,0,5,196,0,0,5,71,0,70,5,190,0,0,5,196,0,0,134,70,0,82,5,196,0,0,134,71,0,82,5,196,0,0,5,70,0,82,5,196,0,0,5,71,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,70,0,82,5,190,0,0,5,196,0,0,134,71,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,70,0,82,5,190,0,0,5,196,0,0,5,71,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,2,0,1,3,0,234,134,70,4,3,0,234,134,71,65,3,0,234,134,70,0,50,156,5,2,0,1,3,0,242,134,70,4,3,0,242,134,71,65,3,0,242,134,70,0,58,156,5,2,0,1,3,0,250,134,70,4,3,0,250,134,71,65,3,0,250,134,70,0,68,156,5,15,0,34,1,26,0,244,1,12,0,244,1,2,192,197,162,245,1,2,192,197,226,32,30,3,192,197,34,33,30,3,192,197,98,34,1,1,192,197,162,35,1,1,192,197,226,230,1,2,192,197,34,231,1,2,192,197,98,30,1,12,0,30,1,0,192,197,162,31,1,0,192,197,226,32,1,1,192,197,34,33,1,1,192,197,98,71,0,255,255,2,69,135,5,103,0,255,255,2,69,70,5,28,1,197,162,29,1,0,192,197,98,0,70,156,5,2,0,1,3,255,255,0,70,134,70,4,3,255,255,0,70,134,71,65,3,255,255,0,70,134,70,0,82,156,5,2,0,1,3,255,255,0,82,134,70,4,3,255,255,0,82,134,71,65,3,255,255,0,82,134,70,0,42,5,5,2,0,1,3,0,234,5,70,4,3,0,234,5,71,65,3,0,234,5,70,0,50,5,5,2,0,1,3,0,242,5,70,4,3,0,242,5,71,65,3,0,242,5,70,0,58,5,5,2,0,1,3,0,250,5,70,4,3,0,250,5,71,65,3,0,250,5,70,0,68,5,5,7,0,35,1,12,0,35,1,4,192,197,98,231,1,4,192,197,162,245,1,4,192,197,226,33,30,5,192,197,34,103,0,255,255,2,69,5,5,29,1,3,192,197,162,31,1,3,192,197,226,33,1,4,192,197,34,0,70,5,5,2,0,1,3,255,255,0,70,5,70,4,3,255,255,0,70,5,71,65,3,255,255,0,70,5,70,0,82,5,5,2,0,1,3,255,255,0,82,5,70,4,3,255,255,0,82,5,71,65,3,255,255,0,82,5,70,156,42,196,162,2,0,1,3,5,192,197,98,4,3,5,192,197,162,65,3,5,192,197,98,5,42,196,162,2,0,1,3,5,192,197,226,4,3,6,192,197,34,65,3,5,192,197,226,156,50,196,162,2,0,1,3,6,192,197,98,4,3,6,192,197,162,65,3,6,192,197,98,5,50,196,162,2,0,1,3,6,192,197,226,4,3,7,192,197,34,65,3,6,192,197,226,156,58,196,162,2,0,1,3,7,192,197,98,4,3,7,192,197,162,65,3,7,192,197,98,5,58,196,162,2,0,1,3,7,192,197,226,4,3,8,192,197,34,65,3,7,192,197,226,156,82,196,162,2,0,1,3,8,192,197,98,4,3,8,192,197,162,65,3,8,192,197,98,5,82,196,162,2,0,1,3,8,192,197,226,4,3,9,192,197,34,65,3,8,192,197,226,156,70,196,190,2,0,1,3,9,192,197,98,4,3,9,192,197,162,65,3,9,192,197,98,5,70,196,190,2,0,1,3,9,192,197,226,4,3,10,192,197,34,65,3,9,192,197,226,156,82,196,190,2,0,1,3,10,192,197,98,4,3,10,192,197,162,65,3,10,192,197,98,5,82,196,190,2,0,1,3,10,192,197,226,4,3,11,192,197,34,65,3,10,192,197,226,156,70,196,162,2,0,1,3,11,192,197,98,4,3,11,192,197,162,65,3,11,192,197,98,5,70,196,162,2,0,1,3,11,192,197,226,4,3,12,192,197,34,65,3,11,192,197,226,156,50,196,160,2,0,1,3,12,192,197,98,4,3,12,192,197,162,65,3,12,192,197,98,5,50,196,160,2,0,1,3,12,192,197,226,4,3,13,192,197,34,65,3,12,192,197,226,156,42,196,200,2,0,1,3,13,192,197,98,4,3,13,192,197,162,65,3,13,192,197,98,5,42,196,200,2,0,1,3,13,192,197,226,4,3,14,192,197,34,65,3,13,192,197,226,156,50,196,204,2,0,1,3,15,192,197,98,4,3,15,192,197,162,65,3,15,192,197,98,5,50,196,204,2,0,1,3,15,192,197,226,4,3,16,192,197,34,65,3,15,192,197,226,156,50,196,208,2,0,1,3,16,192,197,98,4,3,16,192,197,162,65,3,16,192,197,98,5,50,196,208,2,0,1,3,16,192,197,226,4,3,17,192,197,34,65,3,16,192,197,226,156,58,196,208,2,0,1,3,17,192,197,98,4,3,17,192,197,162,65,3,17,192,197,98,5,58,196,208,2,0,1,3,17,192,197,226,4,3,18,192,197,34,65,3,17,192,197,226,156,82,196,198,2,0,1,3,19,192,197,98,4,3,19,192,197,162,65,3,19,192,197,98,5,82,196,198,2,0,1,3,19,192,197,226,4,3,20,192,197,34,65,3,19,192,197,226,156,82,196,208,2,0,1,3,20,192,197,98,4,3,20,192,197,162,65,3,20,192,197,98,5,82,196,208,2,0,1,3,20,192,197,226,4,3,21,192,197,34,65,3,20,192,197,226,156,82,196,204,2,0,1,3,21,192,197,98,4,3,21,192,197,162,65,3,21,192,197,98,5,82,196,204,2,0,1,3,21,192,197,226,4,3,22,192,197,34,65,3,21,192,197,226,156,42,196,196,2,0,1,3,22,192,197,226,4,3,23,192,197,34,65,3,22,192,197,226,5,42,196,196,2,0,1,3,23,192,197,98,4,3,23,192,197,162,65,3,23,192,197,98,156,50,196,196,2,0,1,3,23,192,197,226,4,3,24,192,197,34,65,3,23,192,197,226,5,50,196,196,2,0,1,3,24,192,197,98,4,3,24,192,197,162,65,3,24,192,197,98,156,58,196,196,2,0,1,3,24,192,197,226,4,3,25,192,197,34,65,3,24,192,197,226,5,58,196,196,2,0,1,3,25,192,197,98,4,3,25,192,197,162,65,3,25,192,197,98,156,70,196,196,2,0,1,3,25,192,197,226,4,3,26,192,197,34,65,3,25,192,197,226,5,70,196,196,2,0,1,3,26,192,197,98,4,3,26,192,197,162,65,3,26,192,197,98,26,0,197,227,2,0,1,3,27,192,197,67,4,3,27,192,197,163,65,3,27,192,197,67,28,0,197,3,2,0,1,3,28,192,197,99,4,3,28,192,197,195,65,3,28,192,197,99,156,82,196,196,2,0,1,3,29,192,197,34,4,3,29,192,197,98,65,3,29,192,197,34,5,82,196,196,2,0,1,3,29,192,197,162,4,3,29,192,197,226,65,3,29,192,197,162,30,0,197,35,2,0,1,3,30,192,197,131,4,3,30,192,197,227,65,3,30,192,197,131,31,0,197,67,2,0,1,3,31,192,197,163,4,3,32,192,197,3,65,3,31,192,197,163,12,0,71,0,72,0,103,0,104,0,28,1,36,1,230,1,232,1,244,1,246,1,32,30,34,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,185,108,32,4,54,4,185,124,185,128,185,136,186,140,185,144,56,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,58,4,168,60,168,64,168,68,60,4,168,76,168,80,168,84,62,4,168,96,168,100,168,104,168,108,64,4,76,4,168,124,168,128,168,136,168,140,168,144,78,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,217,56,249,57,153,58,89,58,57,58,0,8,249,66,186,73,217,72,250,73,90,74,186,89,217,88,250,89,90,90,217,68,154,114,185,121,217,120,249,121,153,122,89,122,136,14,217,122,185,153,217,152,249,153,89,154,153,169,185,176,2,8,168,57,200,56,232,57,136,58,72,58,40,58,4,8,232,66,168,73,200,72,232,73,72,74,168,89,200,88,232,89,72,90,200,68,136,114,168,121,200,120,232,121,136,122,72,122,128,14,200,122,168,153,200,152,232,153,72,154,136,169,168,176,72,170,249,56,232,56,217,57,200,57,80,4,82,4,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,57,71,40,71,249,72,232,72,218,73,200,73,186,74,168,74,84,4,86,4,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,57,87,40,87,154,90,136,90,249,88,232,88,218,89,200,89,88,4,90,4,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,89,107,72,107,57,107,40,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,188,116,171,116,249,120,232,120,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,249,152,232,152,217,153,200,153,57,154,40,154,121,154,104,154,92,4,94,4,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,25,57,187,72,200,140,169,140,8,57,169,72,187,88,187,96,169,88,169,96,169,180,169,112,25,121,187,72,8,121,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,186,112,71,4,186,116,103,4,177,116,28,5,250,117,29,5,241,117,30,5,218,117,31,5,209,117,32,5,186,118,33,5,177,118,34,5,250,118,35,5,241,118,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,112,103,4,168,116,29,5,232,117,31,5,200,117,33,5,168,118,35,5,232,118,255,5,168,120,255,5,168,152,255,5,25,59,255,5,8,59,255,5,26,75,255,5,8,75,255,5,26,91,255,5,8,91,255,5,25,155,255,5,8,155,255,1,170,170,3,0,69,0,52,0,61,0,83,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,206,11,0,32,1,0,32,0,211,11,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,212,20,0,32,7,0,0,0,23,0,0,0,214,20,0,0,214,20,0,0,3,0,0,0,0,0,0,0,89,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,49,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,116,0,114,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,116,0,97,0,110,0,100,0,97,0,114,0,100,0,93,0,0,0,74,220,38,0,67,0,60,0,99,0,39,3,60,0,60,0,60,0,67,0,39,3,38,0,71,0,60,0,103,0,6,3,60,0,60,0,60,0,71,0,6,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,105,0,60,0,49,1,60,0,60,0,60,0,73,0,38,0,105,0,60,0,60,0,60,0,48,1,38,0,79,0,60,0,111,0,8,3,60,0,60,0,60,0,79,0,8,3,38,0,83,0,60,0,115,0,39,3,60,0,60,0,60,0,83,0,39,3,38,0,85,0,60,0,117,0,8,3,60,0,60,0,60,0,85,0,8,3,0,0,170,170,170,170,170,170,170,170,170,170,4,44,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,180,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,196,37,0,0,196,37,0,0,196,37,0,0,196,37,0,0,200,41,0,0,200,41,0,0,236,43,0,0,236,43,0,0,236,43,0,0,50,105,114,84,1,0,64,8,79,1,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,106,0,114,0,119,0,127,0,133,0,141,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,144,0,152,0,158,0,166,0,174,0,182,0,48,0,56,0,181,0,189,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,206,0,214,0,48,0,48,0,48,0,222,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,0,48,0,48,0,238,0,48,0,244,0,252,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,6,1,11,1,48,0,15,1,48,0,48,0,21,1,29,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,37,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,40,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,197,0,204,0,48,0,48,0,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,70,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,1,48,0,48,0,62,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,168,1,220,1,20,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,2,120,2,184,2,192,0,212,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,30,0,202,1,31,0,202,34,31,0,202,67,31,0,202,100,31,0,202,133,31,0,202,166,31,0,202,199,31,0,202,232,31,0,202,9,32,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,198,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,134,1,0,156,5,0,56,201,70,2,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,6,3,0,156,5,0,72,160,5,0,74,156,5,0,76,201,230,3,0,156,5,0,80,201,198,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,230,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,166,6,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,102,7,0,5,5,0,72,5,5,0,74,5,5,0,76,201,70,8,0,5,5,0,80,201,38,9,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,194,21,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,2,22,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,66,22,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,230,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,12,0,201,102,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,14,0,201,230,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,15,0,201,102,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,4,0,197,34,5,0,197,34,0,0,197,98,0,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,17,0,201,230,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,252,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,166,18,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,20,0,5,71,238,102,201,102,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,192,0,0,0,192,0,0,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,8,0,192,0,0,0,197,162,8,0,192,0,0,0,192,0,0,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,9,0,192,0,0,0,197,98,9,0,192,0,0,0,197,162,9,0,192,0,0,0,197,226,9,0,192,0,0,0,197,34,10,0,197,99,10,0,197,194,10,0,192,0,0,0,192,0,0,0,197,2,11,0,197,67,11,0,197,162,11,0,192,0,0,0,192,0,0,0,197,226,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,226,7,0,197,34,12,0,5,5,10,121,197,98,12,0,197,162,12,0,5,5,12,121,5,5,16,121,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,5,5,18,121,5,5,20,121,197,130,8,0,5,5,24,121,197,162,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,14,0,197,226,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,22,0,192,0,0,0,197,99,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,23,0,201,198,23,0,201,134,24,0,201,70,25,0,201,6,26,0,201,198,26,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,17,0,192,0,0,0,201,134,27,0,192,0,0,0,201,70,28,0,201,6,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,29,0,201,134,30,0,201,70,31,0,201,6,32,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,32,0,201,134,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,226,7,0,5,5,10,121,5,5,12,121,197,34,8,0,5,5,16,121,5,5,18,121,5,5,20,121,197,98,8,0,5,5,24,121,197,162,8,0,5,5,28,121,5,5,30,121,197,226,8,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,34,9,0,5,5,107,121,197,98,9,0,5,5,111,121,197,162,9,0,5,5,115,121,197,226,9,0,5,5,119,121,197,34,10,0,197,99,10,0,197,194,10,0,5,5,127,121,5,5,129,121,197,2,11,0,197,67,11,0,197,162,11,0,5,5,137,121,5,5,139,121,197,226,11,0,5,5,143,121,5,5,6,121,197,226,7,0,197,34,12,0,5,5,10,121,197,98,12,0,197,162,12,0,5,5,12,121,5,5,16,121,197,226,12,0,197,34,13,0,197,98,13,0,197,162,13,0,197,226,13,0,197,34,14,0,197,98,14,0,5,5,18,121,5,5,20,121,197,130,8,0,5,5,24,121,197,162,8,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,3,192,197,162,5,70,196,190,48,0,8,3,3,192,197,226,156,82,196,190,48,0,8,3,4,192,197,34,5,82,196,190,48,0,8,3,4,192,197,98,156,70,196,162,48,0,8,3,6,192,197,98,5,70,196,162,48,0,8,3,6,192,197,162,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,15,0,197,34,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,15,192,197,194,5,82,196,198,48,0,8,3,16,192,197,2,156,82,196,208,48,0,8,3,16,192,197,66,5,82,196,208,48,0,8,3,16,192,197,130,156,82,196,204,48,0,8,3,16,192,197,194,5,82,196,204,48,0,8,3,17,192,197,2,17,0,197,130,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,17,192,197,194,5,70,196,196,48,0,8,3,18,192,197,2,18,0,197,67,48,0,8,3,18,192,197,163,19,0,197,3,48,0,8,3,19,192,197,99,156,82,196,196,48,0,8,3,19,192,197,194,5,82,196,196,48,0,8,3,20,192,197,2,20,0,197,67,48,0,8,3,20,192,197,163,21,0,197,3,48,0,8,3,21,192,197,99,3,0,67,0,50,0,59,0,91,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,154,37,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,132,29,0,0,132,29,0,0,132,29,0,0,132,29,0,0,164,31,0,0,164,31,0,0,130,33,0,0,130,33,0,0,130,37,0,0,50,105,114,84,1,0,64,8,203,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,93,0,101,0,106,0,114,0,119,0,127,0,133,0,141,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,163,0,168,0,48,0,172,0,48,0,48,0,178,0,186,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,194,0,157,0,48,0,48,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,149,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,116,1,168,1,220,1,20,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,192,15,0,202,225,15,0,202,2,16,0,202,35,16,0,202,68,16,0,202,101,16,0,202,134,16,0,202,167,16,0,202,200,16,0,202,233,16,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,6,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,198,0,0,156,5,0,56,201,134,1,0,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,70,2,0,156,5,0,72,160,5,0,74,156,5,0,76,201,38,3,0,156,5,0,80,201,6,4,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,38,5,0,5,5,0,48,5,5,0,50,5,5,0,52,201,230,5,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,6,0,5,5,0,72,5,5,0,74,5,5,0,76,201,134,7,0,5,5,0,80,201,102,8,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,2,15,0,134,5,2,47,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,197,162,0,0,197,226,0,0,197,34,1,0,197,98,1,0,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,134,5,2,71,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,134,5,2,83,196,136,156,90,160,5,38,93,197,66,15,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,130,15,0,5,5,2,47,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,5,5,2,71,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,5,5,2,83,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,55,5,5,2,55,192,0,0,0,192,0,0,0,201,166,9,0,201,102,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,192,0,0,0,197,162,2,0,192,0,0,0,201,38,11,0,192,0,0,0,134,5,0,58,5,5,27,57,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,4,0,197,34,5,0,197,34,0,0,197,98,0,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,6,0,192,0,0,0,197,34,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,7,0,197,162,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,7,0,197,34,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,17,0,192,0,0,0,197,163,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,18,0,201,102,19,0,201,38,20,0,201,230,20,0,201,166,21,0,201,102,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,10,0,192,0,0,0,201,38,23,0,192,0,0,0,201,230,23,0,201,166,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,25,0,201,38,26,0,201,230,26,0,201,166,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,28,0,201,38,29,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,83,5,136,0,0,5,5,2,83,5,136,0,0,134,5,27,57,5,138,0,0,134,5,27,57,5,136,0,0,134,5,27,57,5,142,0,0,134,5,27,57,5,150,0,0,134,5,2,55,5,160,0,0,5,5,2,55,5,160,0,0,134,5,27,57,5,154,0,0,134,5,27,57,5,164,0,0,134,5,27,57,5,140,0,0,134,5,27,57,5,162,0,0,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,83,5,190,0,0,5,5,2,83,5,190,0,0,134,5,27,57,5,144,0,0,134,5,2,83,5,164,0,0,5,5,2,83,5,164,0,0,134,5,2,83,5,144,0,0,5,5,2,83,5,144,0,0,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,27,57,5,184,0,0,134,5,27,57,5,188,0,0,134,5,2,71,5,164,0,0,5,5,2,71,5,164,0,0,134,5,2,47,5,136,0,0,5,5,2,47,5,136,0,0,134,5,27,57,5,208,0,0,134,5,27,57,5,150,0,0,5,136,0,0,134,5,2,83,5,198,0,0,5,5,2,83,5,198,0,0,134,5,2,83,5,208,0,0,5,5,2,83,5,208,0,0,134,5,2,83,5,204,0,0,5,5,2,83,5,204,0,0,134,5,27,57,5,182,0,0,134,5,27,57,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,134,5,2,83,5,196,0,0,5,5,2,83,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,5,2,83,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,5,2,83,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,48,0,39,3,2,239,134,5,0,54,156,5,48,0,6,3,2,247,134,5,27,57,134,5,48,0,7,3,0,250,134,5,0,70,156,5,48,0,8,3,255,255,2,71,134,5,0,78,156,5,48,0,39,3,255,255,2,79,134,5,0,82,156,5,1,0,8,3,255,255,2,83,134,5,68,3,197,162,0,46,5,5,48,0,39,3,2,239,5,5,0,54,5,5,48,0,6,3,2,247,5,5,0,70,5,5,48,0,8,3,255,255,2,71,5,5,0,78,5,5,48,0,39,3,255,255,2,79,5,5,0,82,5,5,1,0,8,3,255,255,2,83,5,5,68,3,0,192,197,98,156,54,196,160,48,0,6,3,1,192,197,162,5,54,196,160,48,0,6,3,1,192,197,226,2,0,197,226,48,0,7,3,134,250,196,162,156,82,196,162,48,0,8,3,3,192,197,34,5,82,196,162,48,0,8,3,3,192,197,98,156,70,196,190,48,0,8,3,3,192,197,162,5,70,196,190,48,0,8,3,3,192,197,226,156,82,196,190,48,0,8,3,4,192,197,34,5,82,196,190,48,0,8,3,4,192,197,98,156,70,196,162,48,0,8,3,6,192,197,98,5,70,196,162,48,0,8,3,6,192,197,162,8,0,197,98,48,0,7,3,134,250,196,208,156,82,196,198,48,0,8,3,9,192,197,2,5,82,196,198,48,0,8,3,9,192,197,66,156,82,196,208,48,0,8,3,9,192,197,130,5,82,196,208,48,0,8,3,9,192,197,194,156,82,196,204,48,0,8,3,10,192,197,2,5,82,196,204,48,0,8,3,10,192,197,66,10,0,197,194,48,0,7,3,134,250,196,196,156,70,196,196,48,0,8,3,11,192,197,2,5,70,196,196,48,0,8,3,11,192,197,66,11,0,197,131,48,0,8,3,11,192,197,227,12,0,197,67,48,0,8,3,12,192,197,163,156,82,196,196,48,0,8,3,13,192,197,2,5,82,196,196,48,0,8,3,13,192,197,66,13,0,197,131,48,0,8,3,13,192,197,227,14,0,197,67,48,0,8,3,14,192,197,163,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,72,186,76,185,80,28,4,185,92,30,4,186,104,185,108,185,112,185,116,186,120,32,4,185,136,185,140,185,148,34,4,185,160,36,4,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,38,4,168,72,168,76,168,80,40,4,168,92,168,100,168,104,168,108,168,112,168,116,168,120,42,4,168,136,168,140,168,148,44,4,168,160,46,4,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,128,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,185,68,186,77,154,77,250,77,90,78,185,97,153,97,249,97,89,98,217,72,154,122,185,129,153,129,249,129,153,130,185,132,136,14,217,130,185,169,153,169,249,169,185,172,153,189,185,196,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,168,68,168,77,136,77,232,77,72,78,168,101,136,101,232,101,72,102,200,72,136,122,168,129,136,129,232,129,136,130,168,132,128,14,200,130,168,169,136,169,232,169,168,172,136,189,168,196,72,190,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,26,79,8,79,26,78,8,78,249,85,232,85,185,88,168,88,185,86,168,86,48,4,50,4,249,93,232,93,89,95,72,95,153,98,136,102,57,99,40,103,217,97,200,101,52,4,8,103,185,100,168,96,6,8,8,8,250,105,232,105,249,110,232,110,168,144,153,113,136,113,249,114,232,114,25,114,8,114,121,115,104,115,89,115,72,115,154,121,136,121,250,122,232,122,26,122,8,122,10,8,185,124,168,124,57,131,40,131,217,129,200,129,121,130,104,130,12,8,14,8,153,149,136,149,249,150,232,150,25,150,8,150,154,153,136,153,250,153,232,153,185,156,168,156,26,154,8,154,249,162,232,162,25,162,8,162,185,164,168,164,153,170,136,170,57,171,40,171,217,169,200,169,57,170,40,170,121,170,104,170,54,4,56,4,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,152,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,152,169,152,200,56,169,76,187,100,187,104,170,100,169,104,169,200,169,120,217,128,187,76,200,128,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,255,5,185,84,255,5,185,96,255,5,185,128,255,5,186,152,255,5,185,168,255,5,168,64,255,5,168,84,255,5,168,128,255,5,168,152,255,5,168,168,255,5,249,86,255,5,232,86,255,5,25,99,255,5,25,171,255,5,8,171,255,1,170,170,3,0,67,0,50,0,59,0,99,11,0,16,55,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,93,11,0,32,203,20,0,32,1,0,32,0,208,20,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,0,0,0,0,0,0,0,0,0,0,20,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,106,23,0,0,80,0,0,0,80,0,0,0,80,0,0,0,24,35,7,0,24,35,7,0,80,96,7,0,80,96,7,0,124,191,7,0,184,39,8,0,182,73,8,0,90,78,8,0,26,82,8,0,254,84,8,0,254,85,8,0,254,85,8,0,50,105,114,84,1,0,4,23,75,111,224,6,192,0,193,1,0,0,8,0,16,0,24,0,64,0,72,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,144,0,152,0,160,0,168,0,176,0,184,0,192,0,200,0,208,0,216,0,224,0,232,0,240,0,248,0,0,1,8,1,16,1,24,1,32,1,40,1,48,1,56,1,64,1,72,1,80,1,88,1,96,1,104,1,112,1,120,1,128,1,136,1,144,1,152,1,160,1,168,1,176,1,184,1,192,1,200,1,208,1,216,1,224,1,232,1,240,1,248,1,0,2,8,2,16,2,24,2,232,89,240,89,184,89,169,103,48,0,25,103,27,88,35,88,248,90,72,90,43,88,72,93,0,91,80,90,41,104,8,92,8,91,88,90,49,104,16,92,16,91,96,90,57,104,16,90,24,91,104,90,112,89,116,95,176,91,73,104,65,104,123,95,32,91,89,104,81,104,175,94,40,91,112,90,97,104,59,100,48,91,105,104,139,95,147,95,56,91,113,104,121,104,183,94,43,105,97,99,40,92,48,0,51,105,59,105,48,92,48,0,51,88,59,88,75,105,184,91,67,88,163,95,75,88,48,0,163,105,192,91,96,93,171,105,171,95,209,102,193,102,160,93,50,107,90,107,94,107,110,107,126,107,134,107,150,107,154,107,185,103,201,103,217,103,225,103,233,103,241,103,249,103,1,104,9,104,17,104,40,90,8,93,39,95,32,106,48,106,64,106,176,92,86,106,86,106,86,106,86,106,86,106,86,106,86,106,86,106,86,106,86,106,87,106,95,106,102,106,104,106,104,106,104,106,104,106,104,106,64,93,136,92,123,106,131,106,32,93,131,105,88,93,139,105,147,105,187,105,83,88,91,88,67,100,99,88,8,106,0,106,16,106,248,105,24,106,112,106,115,106,123,105,80,92,40,93,195,105,203,105,211,105,75,100,187,95,168,93,219,105,226,105,107,88,83,100,120,89,33,102,48,0,64,91,120,90,16,93,115,88,200,91,91,100,155,105,128,90,107,105,136,90,99,100,152,93,113,102,217,102,123,88,129,88,129,101,89,101,81,101,169,101,145,101,225,101,128,89,136,89,105,101,241,101,17,102,25,102,121,101,97,101,217,101,9,102,41,102,65,102,73,102,57,102,49,102,23,95,15,95,7,95,137,88,145,88,144,92,153,88,8,94,105,99,200,89,144,89,79,95,203,95,211,95,177,101,219,95,226,95,231,95,239,95,247,95,87,96,103,96,79,96,111,96,127,96,135,96,119,96,88,94,135,94,143,96,143,96,143,96,143,96,143,96,143,96,143,96,150,96,158,96,16,94,24,94,40,94,57,101,171,100,166,96,167,96,167,96,167,96,167,96,175,96,181,96,184,96,227,96,231,96,237,96,242,96,248,96,252,96,252,96,252,96,12,97,20,97,21,97,127,94,29,97,34,97,112,94,119,94,98,97,98,97,98,97,98,97,98,97,98,97,98,97,98,97,42,97,42,97,42,97,42,97,104,94,50,97,159,94,96,94,95,96,58,97,58,97,0,93,66,97,66,97,67,97,75,97,75,97,75,97,75,97,78,97,84,97,90,97,90,97,90,97,153,102,137,102,161,102,137,101,81,102,89,102,97,102,104,89,201,102,225,102,177,103,161,88,193,103,25,104,33,104,105,102,200,92,184,92,192,92,48,0,42,110,26,110,10,111,58,111,242,109,138,110,194,110,234,110,2,111,42,111,66,111,50,99,128,92,112,92,170,107,210,107,208,89,208,92,218,107,216,92,2,108,58,107,74,107,82,107,73,99,10,108,58,99,65,99,56,94,64,94,72,94,81,99,250,109,235,100,211,100,226,107,178,107,202,107,179,100,219,100,185,101,193,101,113,101,203,100,144,2,96,3,253,3,87,4,240,4,120,5,64,6,48,7,168,7,8,8,224,8,136,9,35,10,151,10,206,10,26,11,224,7,150,12,75,13,246,13,141,14,84,15,193,15,169,15,90,16,136,16,28,17,172,17,140,18,243,18,82,19,174,19,2,20,80,20,216,20,45,21,140,21,18,22,161,22,9,23,101,23,198,23,22,24,83,24,152,24,13,25,178,25,31,26,172,26,12,27,63,27,170,27,26,28,130,28,2,29,154,29,250,29,105,30,9,31,134,31,211,31,13,32,132,32,140,32,54,33,172,33,220,33,60,34,146,34,14,35,138,35,209,35,58,36,135,36,243,36,113,37,185,37,45,38,177,38,84,39,188,39,131,40,201,40,25,41,110,41,213,41,43,42,128,42,230,42,70,43,117,43,213,43,75,44,105,44,167,44,53,45,157,45,37,46,83,46,146,46,254,46,131,47,214,47,11,48,131,48,17,49,129,49,176,49,238,49,62,50,154,50,7,51,71,51,137,51,186,51,231,51,140,52,244,52,72,53,159,53,228,53,86,54,220,54,68,55,210,55,26,56,136,56,238,56,69,57,134,57,183,57,94,58,150,58,246,58,52,59,147,59,6,60,56,60,119,60,48,61,156,61,244,61,127,62,247,62,59,63,194,63,33,64,121,64,199,64,47,65,111,65,204,65,43,66,135,66,20,67,131,67,227,67,106,68,154,68,248,68,41,69,141,69,33,70,120,70,232,70,120,71,71,72,175,72,33,73,176,73,104,74,207,74,94,75,34,76,145,76,6,77,228,52,213,77,60,78,138,78,202,78,25,79,97,79,149,79,237,79,75,80,119,80,207,80,103,81,179,81,243,81,99,82,200,82,61,83,180,83,233,83,71,84,214,84,22,85,91,85,174,85,106,86,176,86,248,86,110,87,208,2,106,97,106,97,64,2,152,2,248,2,56,3,104,2,160,3,224,3,229,3,233,3,238,3,13,4,245,3,37,4,42,4,74,4,79,4,127,4,127,4,162,4,162,4,194,4,200,4,232,4,32,5,64,5,80,5,152,5,184,5,24,6,80,6,120,6,184,6,8,7,40,7,64,7,104,7,160,7,216,7,248,7,32,8,64,8,104,8,112,2,176,8,240,8,24,9,72,9,144,9,192,9,216,9,217,9,239,9,247,9,19,10,27,10,80,10,80,10,86,10,135,10,143,10,186,10,190,10,10,11,18,11,66,11,74,11,198,10,138,11,218,11,225,11,70,12,134,12,158,12,206,12,222,12,230,12,21,13,45,13,51,13,122,13,125,13,164,13,172,13,201,13,238,13,46,14,70,14,176,9,173,14,229,14,29,15,76,15,156,15,161,15,185,15,217,15,224,15,0,16,16,16,24,16,72,16,77,16,82,16,128,16,160,16,197,16,244,16,20,17,92,17,116,17,164,17,180,17,36,18,16,3,164,18,211,18,34,19,66,19,74,19,98,19,114,19,166,19,204,19,226,19,250,19,24,20,72,20,136,20,192,20,232,20,13,21,37,21,109,21,132,21,164,21,218,21,50,22,106,22,153,22,217,22,249,22,33,23,85,23,125,23,133,23,157,23,189,23,190,23,226,23,234,23,10,24,14,24,60,24,67,24,112,24,75,24,144,24,204,24,224,24,5,25,99,25,130,25,170,25,218,25,234,25,241,25,17,26,23,26,70,26,76,26,105,26,112,26,160,26,164,26,202,26,204,26,211,26,4,27,219,26,48,27,55,27,98,27,105,27,146,27,162,27,234,27,42,28,90,28,154,28,234,28,42,29,106,29,122,29,146,29,170,29,210,29,242,29,49,30,89,30,218,29,56,6,233,30,25,31,41,31,49,31,54,31,92,31,92,31,96,31,120,31,120,31,126,31,166,31,166,31,174,31,198,31,198,31,203,31,255,31,255,31,5,32,76,32,76,32,84,32,116,32,89,32,189,32,124,32,225,32,233,32,17,33,46,33,101,33,156,33,204,33,244,33,52,34,106,34,154,34,218,34,54,35,216,5,101,35,108,35,124,35,130,35,154,35,161,35,192,35,198,35,201,35,241,35,243,35,250,35,35,36,35,36,43,36,113,36,113,36,50,36,121,36,176,36,127,36,184,36,190,36,227,36,235,36,43,37,51,37,105,37,59,37,137,37,177,37,209,37,247,37,29,38,61,38,101,38,109,38,138,38,169,38,217,38,225,38,230,38,61,39,68,39,140,39,180,39,211,39,19,40,83,40,171,40,193,40,249,40,17,41,62,41,86,41,102,41,126,41,190,41,229,41,245,41,5,42,29,42,35,42,91,42,120,42,158,42,182,42,206,42,254,42,38,43,94,43,141,43,157,43,205,43,243,43,43,44,67,44,97,44,129,44,145,44,183,44,238,44,30,45,77,45,141,45,197,45,5,46,29,46,53,46,106,46,130,46,180,46,223,46,22,47,84,47,115,47,123,47,158,47,198,47,206,47,230,47,251,47,43,48,75,48,107,48,155,48,177,48,241,48,65,49,89,49,121,49,152,49,168,49,6,50,46,50,92,50,130,50,194,50,226,50,255,50,23,51,47,51,55,51,101,51,63,51,163,51,167,51,223,51,7,52,61,52,116,52,132,52,164,52,236,52,58,53,64,53,96,53,128,53,144,53,182,53,151,53,214,53,220,53,3,54,27,54,59,54,109,54,140,54,164,54,188,54,196,54,212,54,252,54,44,55,84,55,139,55,194,55,234,55,10,56,50,56,82,56,98,56,176,56,200,56,208,56,224,56,230,56,22,57,61,57,93,57,126,57,249,30,175,57,230,57,30,58,86,58,110,58,158,58,190,58,222,58,230,58,14,59,18,59,238,58,39,59,44,59,71,59,76,59,131,59,131,59,131,59,49,49,139,59,195,59,199,59,76,39,247,59,254,59,47,60,48,60,103,60,111,60,180,60,186,60,248,60,40,61,89,61,0,61,16,9,204,61,236,61,252,61,12,62,60,62,82,62,88,62,95,62,156,62,164,62,211,62,215,62,172,62,239,62,75,63,130,63,170,63,186,63,210,63,226,63,250,63,25,64,81,64,105,64,137,64,185,48,207,64,123,48,39,65,87,65,103,65,135,65,143,65,175,65,183,65,220,65,227,65,11,66,35,66,79,66,103,66,127,66,158,66,166,66,198,66,204,66,228,66,12,67,52,67,108,67,155,67,171,67,211,67,170,28,34,68,50,68,58,68,98,68,132,68,224,68,240,68,14,69,33,69,65,69,125,69,133,69,219,69,17,70,49,70,81,70,97,70,136,70,200,70,248,70,8,71,32,71,48,71,88,71,104,71,160,71,176,71,227,71,42,72,63,72,87,72,127,72,159,72,205,72,251,72,17,73,49,73,88,73,136,73,160,73,168,73,192,73,195,73,203,73,207,73,223,73,226,73,17,74,23,74,30,74,51,74,57,74,96,74,125,74,129,74,166,74,172,74,199,74,227,74,40,75,46,75,70,75,86,75,102,75,118,75,125,75,165,75,228,75,244,75,26,76,81,76,121,76,137,76,161,76,201,76,225,76,254,76,76,77,122,77,176,77,205,77,12,78,52,78,116,78,146,78,210,78,1,79,49,79,89,79,125,79,165,79,213,79,229,79,19,80,83,80,111,80,135,80,175,80,239,80,7,81,47,81,79,81,95,81,131,81,171,81,203,81,235,81,19,82,59,82,83,82,147,82,176,82,246,82,45,83,132,83,164,83,172,83,204,83,209,83,250,83,2,84,55,84,111,84,158,84,174,84,206,84,230,84,246,84,14,85,50,85,71,65,83,85,126,85,144,85,63,84,195,85,2,86,34,86,50,86,98,86,153,86,108,39,8,87,62,87,126,87,158,87,197,87,2,22,48,3,176,2,180,21,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,18,108,138,97,142,97,149,97,232,92,187,106,195,106,202,106,210,106,217,106,220,106,226,106,233,106,240,92,107,100,129,102,169,88,121,102,241,106,241,106,48,90,47,95,55,95,1,102,209,101,63,95,153,101,201,101,233,101,208,91,155,95,115,105,80,93,216,91,137,104,72,91,177,88,115,100,72,92,176,93,102,107,80,91,144,90,24,93,89,99,234,105,240,105,104,93,179,95,67,105,56,92,64,92,48,93,209,103,161,101,71,95,31,95,40,106,56,106,129,104,24,92,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,200,96,48,2,142,107,162,107,40,2,158,98,151,98,143,98,63,98,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,122,97,216,97,122,97,122,97,122,97,122,97,122,97,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,34,110,82,110,58,110,10,110,114,110,66,110,90,110,74,110,152,9,20,62,186,110,18,110,154,110,226,110,34,111,48,0,224,89,71,96,233,102,105,103,137,103,100,95,108,95,249,102,9,103,153,103,248,89,8,90,1,103,81,103,17,103,0,90,129,103,151,94,89,103,145,103,73,103,97,103,56,2,92,95,72,89,80,89,152,92,88,89,241,102,121,103,161,103,96,89,168,92,160,92,80,94,224,92,216,89,66,107,118,107,32,2,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,0,1,64,1,128,1,192,1,0,2,64,2,128,2,192,2,0,3,64,3,128,3,192,3,0,4,64,4,128,4,192,4,0,5,64,5,128,5,192,5,0,6,64,6,128,6,192,6,0,7,64,7,128,7,192,7,0,8,64,8,33,18,97,20,97,18,161,20,33,21,224,6,161,18,224,6,1,22,224,6,224,6,224,6,224,6,225,18,65,22,65,22,66,22,130,22,224,6,224,6,224,6,224,6,225,21,33,19,224,6,224,6,97,19,161,19,225,20,225,19,97,21,161,21,33,10,97,11,161,13,225,12,33,12,225,13,225,14,161,12,161,14,161,11,225,11,161,16,97,13,33,15,97,17,97,14,33,14,97,15,33,16,225,15,225,9,33,13,225,10,33,11,97,16,97,10,97,12,161,15,33,17,161,17,224,6,194,22,161,10,225,16,225,17,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,224,6,33,20,34,85,58,85,64,85,67,85,99,85,102,85,134,85,136,85,152,85,157,85,161,85,166,85,182,85,187,85,203,85,219,85,227,85,234,85,250,85,82,86,90,86,114,86,121,86,137,86,189,14,161,86,168,86,184,86,200,86,216,86,224,86,232,86,240,86,0,87,16,87,24,87,32,87,38,87,46,87,70,87,86,87,118,87,134,87,142,87,150,87,166,87,174,87,181,87,205,87,212,87,219,87,235,87,243,87,3,88,72,2,48,0,120,2,168,3,111,4,16,5,176,5,128,6,24,7,24,8,80,2,160,2,184,2,232,2,0,3,24,3,32,3,64,3,112,3,136,3,152,3,176,3,184,3,216,3,5,4,21,4,29,4,50,4,95,4,103,4,135,4,142,4,146,4,170,4,208,4,216,4,248,4,0,5,40,5,8,5,48,5,72,5,88,5,104,5,136,5,144,5,160,5,192,5,208,5,224,5,240,5,8,6,32,6,48,6,72,6,96,6,112,6,136,6,152,6,176,6,192,6,216,6,224,6,0,7,16,7,56,7,72,7,88,7,112,7,120,7,128,7,136,7,152,7,176,7,44,62,231,62,162,63,57,64,239,64,127,65,63,66,182,66,220,66,244,66,76,67,235,67,66,68,208,68,85,69,235,69,208,70,72,71,211,71,2,72,103,72,213,72,120,73,1,74,158,74,32,75,78,75,141,75,181,75,113,76,185,76,44,77,197,77,84,78,57,79,221,79,59,80,223,80,15,81,55,81,35,82,139,82,85,83,47,84,150,84,222,84,6,85,110,85,10,86,58,86,129,86,78,87,251,87,88,2,168,2,200,2,8,3,72,3,144,3,208,3,58,4,154,4,224,4,24,5,96,2,240,2,88,3,200,3,66,4,186,4,112,5,0,6,144,6,32,7,184,7,96,8,168,8,40,9,128,9,72,10,2,11,130,11,22,12,37,13,156,13,38,14,125,14,53,15,248,15,12,17,156,17,252,17,227,18,158,19,104,20,61,21,210,21,177,22,117,23,2,24,136,24,67,25,9,26,97,26,194,26,90,27,2,28,18,29,202,29,57,30,161,30,158,31,68,32,181,32,85,33,12,34,83,34,6,35,93,35,233,35,105,36,168,36,35,37,169,37,93,38,209,38,53,39,172,39,115,48,1,49,200,49,186,50,93,51,255,51,156,52,112,53,43,54,172,54,28,55,178,55,74,56,45,57,17,31,166,58,107,59,171,59,23,60,164,60,24,61,180,61,119,62,43,63,49,64,223,64,251,65,174,66,252,66,243,67,216,68,179,69,176,70,64,71,203,71,119,72,104,73,249,73,150,74,24,75,133,75,4,76,177,76,160,77,76,78,117,79,35,80,255,80,63,81,27,82,216,82,225,83,127,84,182,84,75,85,18,86,66,86,102,87,128,2,14,14,58,29,201,38,4,53,212,66,157,75,136,2,224,2,40,3,192,3,119,4,178,4,56,5,128,5,200,5,104,6,208,6,96,7,208,7,72,8,160,8,248,8,56,9,120,9,11,10,119,10,170,10,242,10,106,11,210,11,46,12,110,12,5,13,148,13,22,14,157,14,45,15,132,15,240,15,56,16,152,16,220,16,4,17,132,17,196,17,236,17,20,18,100,18,195,18,142,19,96,20,208,20,101,21,234,21,66,22,185,22,61,23,218,23,104,24,188,24,75,25,146,25,54,26,144,26,244,26,82,27,242,27,106,28,194,28,192,7,200,7,240,7,0,8,16,8,40,8,56,8,80,8,88,8,192,2,112,8,120,8,136,8,144,8,80,3,192,8,208,8,232,8,248,5,8,9,32,9,48,9,64,9,200,6,88,9,112,9,200,8,16,6,160,9,184,9,200,9,225,9,231,9,255,9,3,10,43,10,43,10,48,10,94,10,101,10,104,10,111,10,159,10,159,10,159,10,162,10,214,10,222,10,223,10,226,10,34,11,42,11,47,11,47,11,50,11,82,11,82,11,82,11,82,11,90,11,146,11,153,11,160,11,186,11,134,41,158,41,174,41,182,41,198,41,205,41,221,41,237,41,253,41,13,42,51,42,67,42,99,42,104,42,136,42,142,42,166,42,190,42,198,42,214,42,238,42,6,43,14,43,22,43,46,43,62,43,78,43,102,43,109,43,125,43,116,18,193,22,149,43,165,43,181,43,104,3,221,43,227,43,216,2,3,44,11,44,35,44,51,44,83,44,89,44,113,44,121,44,137,44,153,44,159,44,175,44,191,44,199,44,223,44,230,44,246,44,254,44,14,45,38,45,45,45,61,45,93,45,101,45,117,45,125,45,133,45,149,45,165,45,189,45,168,6,213,45,237,45,245,45,13,46,45,46,61,46,67,46,91,46,98,46,10,29,114,46,138,46,154,46,157,46,164,46,188,46,191,46,231,46,239,46,246,46,6,47,14,47,30,47,38,47,54,47,60,47,76,47,92,47,99,47,139,47,144,47,150,47,166,47,222,47,238,47,243,47,3,48,19,48,51,48,67,48,83,48,91,48,99,48,139,48,163,48,169,48,193,48,209,48,233,48,249,48,9,49,33,49,120,3,81,49,97,49,137,49,144,49,160,49,152,20,160,20,184,20,200,20,224,20,240,20,245,20,5,21,21,21,29,21,53,21,69,21,85,21,128,3,248,6,117,21,124,21,52,17,156,21,172,21,188,21,194,21,226,21,250,21,10,22,26,22,58,22,232,6,82,22,98,22,114,22,121,22,129,22,169,22,201,22,168,20,225,22,233,22,241,22,17,23,25,23,41,23,46,23,53,23,77,23,93,23,109,23,141,23,165,23,173,23,206,23,210,23,242,23,242,23,30,24,30,24,30,24,36,24,91,24,91,24,96,24,120,24,120,24,160,24,96,5,168,5,232,5,40,6,88,6,160,6,240,6,80,7,144,7,232,7,48,8,128,8,0,9,80,9,208,9,64,10,127,10,178,10,250,10,58,11,114,11,122,11,178,11,246,11,14,12,54,12,94,12,174,12,13,13,114,13,193,13,30,14,109,14,205,14,253,14,100,15,64,16,189,16,36,17,108,17,204,17,12,18,68,18,203,18,26,19,150,19,242,19,48,20,144,20,253,20,93,21,148,21,242,21,74,22,145,22,1,23,69,23,181,23,250,23,52,24,128,24,196,24,253,24,83,25,109,33,116,33,132,33,13,15,164,33,180,33,196,33,212,33,228,33,236,33,252,33,152,8,90,22,88,20,36,34,68,34,75,34,91,34,98,34,114,34,130,34,162,34,178,34,194,34,202,34,210,34,226,34,242,34,248,34,254,34,22,35,30,35,62,35,69,35,77,35,85,35,116,35,146,35,169,35,176,35,217,35,2,36,2,36,5,36,66,36,66,36,11,36,74,36,81,36,143,36,144,36,198,36,198,36,198,36,203,36,251,36,209,22,3,37,11,37,67,37,67,37,73,37,81,37,121,37,120,16,112,16,144,16,168,16,173,16,205,16,212,16,228,16,236,16,252,16,184,8,44,17,68,17,84,17,100,17,124,17,140,17,148,17,188,17,212,17,168,9,228,17,244,17,4,18,28,18,44,18,52,18,76,18,92,18,108,18,124,18,132,18,148,18,156,18,172,18,180,18,187,18,219,18,235,18,251,18,11,19,18,19,42,19,50,19,58,19,90,19,106,19,122,19,126,19,182,19,182,19,188,19,212,19,218,19,234,19,10,20,16,20,32,20,40,20,56,20,140,15,64,20,112,20,128,20,216,8,104,9,56,10,234,10,98,11,38,12,253,12,106,13,230,13,93,14,5,15,116,15,48,16,181,16,76,17,220,17,84,18,3,19,196,19,120,20,77,21,202,21,137,22,149,23,44,24,180,24,59,25,1,26,136,26,32,27,194,27,202,28,82,29,186,29,73,30,201,30,112,31,231,31,44,32,165,32,9,33,124,33,82,28,38,35,19,36,152,36,19,37,129,37,7,38,130,38,250,38,100,39,235,39,115,40,118,41,75,42,150,42,222,42,133,43,251,43,69,45,253,45,207,46,174,47,136,53,167,53,174,53,190,53,236,53,243,53,251,53,11,54,19,54,35,54,67,54,70,54,94,54,101,54,117,54,124,54,132,54,236,54,4,55,12,55,20,55,134,19,52,55,42,22,76,55,100,55,124,55,131,55,96,9,147,55,154,55,162,55,186,55,218,55,172,24,242,55,250,55,2,56,18,56,42,56,58,56,66,56,90,56,106,56,112,56,120,56,144,56,152,56,160,56,184,56,193,30,216,56,246,56,254,56,6,57,30,57,37,57,225,30,77,57,101,57,103,57,142,57,110,57,150,57,163,11,170,11,233,11,233,11,238,11,254,11,254,11,6,12,30,12,62,12,78,12,86,12,102,12,126,12,142,12,166,12,182,12,198,12,214,12,238,12,245,12,29,13,59,13,67,13,83,13,90,13,133,13,140,13,180,13,185,13,209,13,214,13,254,13,54,14,62,14,78,14,85,14,101,14,117,14,133,14,149,14,165,14,181,14,197,14,213,14,237,14,245,14,21,15,37,15,61,15,68,15,92,15,108,15,148,15,177,15,201,15,209,15,232,15,8,16,32,16,40,16,98,16,98,16,104,16,160,24,164,24,212,24,212,24,216,24,232,24,237,24,21,25,28,25,35,25,51,25,91,25,107,25,114,25,122,25,138,25,194,11,154,25,186,25,202,25,226,25,249,25,39,26,46,26,84,26,89,26,120,26,120,26,128,26,180,26,180,26,186,26,227,26,228,26,236,26,20,27,20,27,24,27,71,27,71,27,74,27,113,27,113,27,114,27,138,27,138,27,122,27,154,27,178,27,186,27,210,27,218,27,226,27,250,27,221,14,10,28,34,28,50,28,66,28,74,28,114,28,98,28,138,28,146,28,0,69,6,69,22,69,25,69,49,69,73,69,77,69,101,69,109,69,149,69,155,69,163,69,171,69,187,69,195,69,211,69,227,69,243,69,249,69,1,70,25,70,41,70,57,70,73,70,89,70,105,70,112,70,128,70,144,70,168,70,184,70,216,70,224,70,210,25,16,71,40,71,56,71,80,71,96,71,112,71,128,71,136,71,168,71,184,71,192,71,195,71,202,11,235,71,242,71,192,70,18,72,26,72,50,72,55,72,79,72,95,72,111,72,135,72,151,72,167,72,183,72,190,72,197,72,229,72,184,64,191,64,215,64,231,64,247,64,255,64,23,65,31,65,55,65,63,65,79,65,95,65,119,65,151,65,159,65,191,65,196,65,212,65,235,65,243,65,19,66,51,66,55,66,71,66,87,66,95,66,111,66,143,66,150,66,118,12,4,67,222,13,28,67,44,67,60,67,84,67,92,67,100,67,116,67,123,67,139,67,147,67,163,67,179,67,195,67,219,67,92,55,251,67,11,68,18,68,26,68,74,68,82,68,90,68,114,68,119,68,124,68,140,68,146,68,162,68,168,68,184,68,200,68,232,68,121,37,176,20,145,37,153,37,193,37,201,37,217,37,223,37,255,37,15,38,21,38,37,38,53,38,77,38,117,38,122,38,146,38,153,38,185,38,193,38,238,38,242,38,18,39,22,39,29,39,92,39,37,39,116,39,124,39,148,39,156,39,124,15,196,39,203,39,219,39,251,39,3,40,11,40,27,40,35,40,190,12,59,40,67,40,75,40,107,40,123,40,139,40,147,40,155,40,179,40,185,40,209,40,28,34,233,40,170,34,241,40,1,41,9,41,33,41,38,41,70,41,78,41,94,41,194,25,162,28,178,28,58,28,218,28,226,28,250,28,26,29,50,29,66,29,90,29,114,29,130,29,162,29,178,29,226,29,234,29,2,30,9,30,33,30,34,22,60,18,97,30,65,30,113,30,137,30,145,30,169,30,185,30,217,30,1,31,33,31,62,31,68,31,104,31,142,31,98,13,182,31,182,31,190,31,219,31,219,31,223,31,21,32,28,32,30,32,36,32,97,32,97,32,100,32,148,32,152,32,157,32,197,32,197,32,197,32,201,32,241,32,249,32,1,33,25,33,30,33,62,33,69,33,93,33,158,57,159,57,245,24,167,57,207,57,214,57,222,57,246,57,254,57,6,58,6,14,22,58,57,49,227,39,46,58,62,58,78,58,102,58,118,58,134,58,142,58,221,45,174,58,182,58,198,58,254,58,26,59,31,59,60,59,63,59,84,59,88,59,93,59,99,59,155,59,155,59,155,59,155,59,163,59,207,59,207,59,211,36,215,59,223,59,14,60,14,60,14,60,15,60,64,60,72,60,80,60,80,60,87,60,127,60,43,25,135,60,143,60,151,60,194,60,156,60,202,60,208,60,8,61,216,60,235,72,3,73,9,73,25,73,41,73,57,73,73,73,80,73,96,73,112,73,144,73,184,73,126,58,215,73,234,73,241,73,38,74,43,74,65,74,65,74,72,74,112,74,117,74,137,74,142,74,180,74,183,74,215,74,219,74,235,74,241,74,1,75,8,75,16,75,54,75,189,75,197,75,213,75,220,75,236,75,252,75,12,76,18,76,42,76,58,76,65,76,89,76,97,76,105,76,153,76,169,76,60,17,209,76,233,76,241,76,246,76,14,77,20,77,36,77,52,77,68,77,84,77,90,77,98,77,162,25,62,26,152,26,252,26,40,27,130,27,202,27,18,28,122,28,242,28,74,29,138,29,194,29,25,30,41,30,81,30,129,30,177,30,241,30,84,31,150,31,247,31,60,32,173,32,217,32,77,33,140,33,4,34,44,34,122,34,186,34,46,35,184,35,27,36,97,36,160,36,27,37,97,37,161,37,239,37,69,38,161,38,10,39,45,39,164,39,243,39,91,40,225,40,54,41,142,41,21,42,112,42,246,42,86,43,189,43,235,43,19,44,207,44,22,45,85,45,173,45,21,46,122,46,215,46,247,80,186,28,39,81,71,81,87,81,111,81,115,81,139,81,163,81,147,81,187,81,195,81,211,81,219,81,227,81,3,82,43,82,67,82,75,82,91,82,107,82,115,82,123,82,131,82,155,82,160,82,184,82,208,82,224,82,230,82,238,82,254,82,6,83,14,83,22,83,29,83,37,83,53,83,69,83,77,83,101,83,108,83,124,83,148,83,156,83,140,83,196,83,217,83,241,83,242,83,10,84,18,84,34,84,39,84,79,84,87,84,95,84,119,84,135,84,142,84,188,83,238,84,254,84,30,85,106,77,130,77,137,77,144,77,152,77,168,77,184,77,189,77,221,77,250,71,245,77,253,77,4,78,20,78,28,78,44,78,68,78,92,78,100,78,108,78,124,78,130,78,154,78,162,78,170,78,186,78,194,78,218,78,226,78,242,78,249,78,9,79,17,79,33,79,41,79,65,79,81,79,105,79,109,79,133,79,141,79,157,79,173,79,181,79,197,79,210,28,245,79,251,79,11,80,27,80,43,80,51,80,91,80,97,80,103,80,127,80,143,80,151,80,167,80,183,80,191,80,199,80,215,80,231,80,34,29,98,29,17,30,153,30,209,30,76,31,239,31,52,32,108,32,209,32,38,33,188,33,20,34,138,34,234,34,225,35,89,36,219,36,89,37,231,37,85,38,2,39,132,39,43,40,99,40,217,40,166,41,59,42,174,42,30,43,173,43,59,44,6,45,181,45,229,45,172,46,107,47,59,48,217,48,73,49,254,49,210,50,39,51,155,51,77,52,180,52,34,53,198,53,78,54,180,54,228,54,60,55,170,55,128,56,53,57,238,57,38,58,206,58,179,59,31,60,95,60,224,60,73,61,140,61,184,49,192,49,208,49,224,49,230,49,246,49,14,50,22,50,148,33,38,50,54,50,70,50,76,50,100,50,106,50,114,50,122,50,138,50,162,50,178,50,202,50,218,50,121,30,234,50,239,50,15,51,31,51,79,51,85,51,109,51,113,51,145,51,147,51,175,51,175,51,178,51,194,51,194,51,202,51,239,51,207,51,247,51,15,52,22,52,29,52,45,52,69,52,85,52,92,52,108,52,124,52,148,52,172,52,196,52,204,52,220,52,252,52,12,53,18,53,26,53,50,53,80,53,88,53,104,53,51,40,163,40,46,41,150,41,83,42,54,43,197,43,27,44,215,44,109,45,205,45,75,46,199,46,68,47,190,47,35,48,201,48,113,49,30,50,170,50,129,51,53,52,212,52,120,53,156,54,204,54,244,54,202,55,192,56,14,57,118,57,199,57,54,58,214,58,123,59,239,59,240,60,196,61,148,62,51,63,17,64,15,65,27,66,190,66,236,66,36,67,203,67,42,68,176,68,93,69,9,70,160,70,240,70,0,71,152,71,34,72,221,72,152,73,88,74,62,75,110,75,149,75,173,75,50,76,46,47,182,47,27,48,147,48,225,48,25,49,105,49,216,49,84,50,146,50,247,50,121,51,215,51,37,52,100,52,188,52,42,53,206,53,51,54,148,54,36,55,116,55,226,55,34,56,168,56,85,57,191,57,14,58,70,58,6,59,115,59,187,59,231,59,39,60,172,60,232,60,32,61,81,61,118,61,172,61,52,62,203,62,21,63,138,63,242,63,73,64,176,64,7,65,167,65,3,66,119,66,68,67,187,67,3,68,192,68,57,69,117,69,203,69,65,70,152,70,24,71,144,71,219,71,10,72,16,61,56,61,56,61,58,61,97,61,97,61,65,61,105,61,110,61,126,61,132,61,148,61,41,49,164,61,188,61,212,61,220,61,228,61,4,62,28,62,36,62,68,62,74,62,103,62,111,62,135,62,140,62,180,62,180,62,188,62,195,62,223,62,255,62,108,55,7,63,8,63,13,63,29,63,35,63,67,63,83,63,91,63,99,63,106,63,114,63,122,63,146,63,154,63,178,63,202,63,218,63,234,63,2,64,9,64,41,64,65,64,89,64,97,64,113,64,129,64,145,64,152,64,160,64,168,64,143,72,243,72,65,73,128,73,9,74,80,74,191,74,249,74,205,75,73,76,193,76,28,77,114,77,229,77,36,78,178,78,73,79,189,79,159,80,31,81,123,81,251,81,168,82,93,83,26,84,190,84,118,85,242,85,192,86,54,87,189,87,19,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,76,217,76,60,77,237,77,234,78,205,79,3,80,67,80,23,81,155,81,11,82,51,82,192,82,116,83,103,84,166,84,198,84,42,85,211,85,26,86,42,86,74,86,145,86,208,86,94,87,227,87,11,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,242,108,249,108,1,109,48,0,9,109,9,109,9,109,11,109,224,93,157,97,137,99,165,97,172,97,180,97,184,97,120,92,48,0,48,0,48,0,48,0,138,108,146,108,150,108,185,88,158,108,121,99,177,102,185,102,232,93,105,109,240,93,48,0,174,108,166,108,182,108,186,108,208,108,123,100,72,106,78,106,216,108,222,108,226,108,215,94,48,0,48,0,48,0,48,0,19,109,19,109,19,109,19,109,19,109,19,109,19,109,19,109,19,109,22,109,30,109,38,109,48,0,48,0,48,0,48,0,88,91,27,105,120,93,209,99,96,91,193,88,201,88,131,100,104,91,139,100,56,93,152,90,112,91,145,104,160,90,217,99,153,104,24,90,48,0,48,0,161,104,200,93,224,91,168,90,120,91,176,90,169,104,209,88,48,0,48,0,48,0,48,0,177,104,180,104,184,90,188,104,196,104,128,91,192,90,48,0,48,0,48,0,48,0,48,0,204,104,136,91,200,90,48,0,212,104,232,91,144,91,167,94,220,104,208,90,147,100,48,0,252,104,128,93,48,0,48,0,48,0,48,0,48,0,48,0,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,165,109,217,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,249,106,251,106,234,108,144,93,48,0,48,0,2,107,56,90,106,108,88,92,247,94,233,99,114,108,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,26,107,18,107,248,92,48,0,48,0,48,0,34,108,50,108,42,108,66,108,58,108,48,0,48,0,225,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,194,108,194,108,194,108,200,108,176,89,233,88,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,97,208,97,208,97,208,97,208,97,208,97,208,97,224,97,232,97,239,97,246,97,241,88,249,88,255,88,254,97,6,98,14,98,22,98,7,89,48,0,48,0,48,0,48,0,241,99,114,97,114,97,130,97,51,100,48,0,48,0,48,0,48,0,243,100,43,101,246,100,46,101,254,100,6,101,65,101,14,101,22,101,17,101,30,101,45,101,15,101,243,100,43,101,38,101,46,101,41,101,49,101,44,101,14,101,249,101,255,95,39,96,7,96,47,96,15,96,55,96,23,96,63,96,31,96,155,100,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,42,99,15,89,18,89,15,89,25,89,32,89,40,89,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,10,107,10,107,10,107,10,107,10,107,10,107,48,89,48,0,42,107,34,107,64,90,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,246,99,254,99,30,98,48,0,48,0,6,100,38,98,48,0,48,0,48,0,48,0,48,0,48,0,33,103,57,103,113,103,49,103,41,103,65,103,48,0,87,95,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,56,89,15,89,15,89,15,89,48,0,48,0,48,0,48,0,15,89,15,89,15,89,15,89,15,89,15,89,15,89,64,89,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,46,109,49,109,184,93,192,97,65,109,145,99,48,0,153,99,248,93,216,93,48,0,48,0,173,109,27,100,14,100,19,100,192,89,32,92,112,93,255,94,161,99,48,0,81,109,152,89,57,109,192,93,169,99,177,99,223,94,185,99,48,0,48,0,163,106,171,106,179,106,48,0,147,106,155,106,139,106,129,99,179,105,160,89,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,113,99,89,109,32,90,48,0,48,0,187,100,193,99,168,89,48,0,48,0,97,109,201,99,73,109,244,104,216,90,48,0,48,0,48,0,82,108,74,108,225,99,228,104,152,91,224,90,48,0,48,0,236,104,240,91,231,94,83,105,232,90,191,94,91,105,248,91,199,94,90,108,98,108,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,35,105,160,91,136,93,207,94,99,105,168,91,48,0,48,0,4,105,11,105,240,90,19,105,0,92,147,100,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,93,48,0,48,0,48,0,48,0,48,0,26,108,131,95,239,94,145,102,169,102,48,0,48,0,48,0,48,0,48,0,48,0,122,108,96,92,200,97,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,108,104,92,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,113,109,121,109,132,109,132,109,124,109,140,109,140,109,140,109,140,109,140,109,142,109,48,0,48,0,48,0,195,100,35,100,43,100,0,94,150,109,150,109,150,109,150,109,150,109,150,109,157,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,46,98,51,98,55,98,55,98,71,98,79,98,87,98,92,98,32,94,48,94,73,101,119,98,227,100,195,95,48,0,4,97,194,107,2,110,143,94,127,98,48,0,48,0,48,0,48,0,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,135,98,214,98,214,98,214,98,214,98,214,98,214,98,216,98,224,98,232,98,232,98,232,98,235,98,243,98,243,98,245,98,253,98,5,99,9,99,15,99,23,99,29,99,34,99,48,0,48,0,166,98,166,98,166,98,168,98,175,98,175,98,180,98,184,98,100,98,100,98,103,98,111,98,192,98,198,98,206,98,48,0,192,96,192,96,192,96,192,96,208,96,213,96,219,96,163,100,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,186,107,249,107,249,107,249,107,249,107,249,107,249,107,249,107,250,107,48,0,234,107,241,107,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,222,109,223,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,181,109,188,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,196,109,198,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,206,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,231,109,234,109,48,0,214,109,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,110,122,110,106,110,146,110,162,110,178,110,98,110,202,110,210,110,218,110,242,110,250,110,130,110,18,111,26,111,170,110,50,111,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,14,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,5,0,4,5,5,92,7,5,5,136,13,5,5,140,13,5,5,134,13,5,5,142,13,5,5,139,12,5,5,114,10,5,5,16,12,5,5,91,12,43,5,0,42,5,5,138,9,5,5,135,12,0,0,0,0,5,5,95,12,5,5,12,12,5,5,83,12,5,5,123,12,36,5,0,23,36,5,0,25,5,5,6,12,16,5,42,96,5,5,118,10,200,0,0,0,5,5,20,12,36,5,0,21,43,5,0,70,5,5,140,9,197,35,69,0,197,99,68,0,197,227,83,0,5,5,100,7,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,108,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,192,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,108,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,196,164,156,42,196,164,5,42,196,140,156,42,196,140,5,42,196,162,156,42,196,162,5,42,196,136,156,46,196,136,5,46,196,142,156,46,196,142,5,46,196,156,156,46,196,156,5,46,196,144,156,46,196,144,5,46,196,144,156,48,196,144,5,48,196,178,156,48,196,178,5,48,196,164,156,50,196,164,5,50,196,140,156,50,196,140,5,50,196,156,156,50,196,156,5,50,196,162,156,50,196,162,5,50,196,144,156,50,196,144,5,50,196,142,156,54,196,142,5,54,196,140,156,54,196,140,5,54,196,156,156,54,196,156,5,54,196,160,156,54,196,160,5,54,196,142,156,56,196,142,5,56,196,178,156,56,196,178,5,56,196,154,156,58,196,154,5,58,196,164,156,58,196,164,5,58,196,140,156,58,196,140,5,58,196,162,156,58,196,162,5,58,196,156,156,58,5,5,6,59,197,66,141,0,197,2,141,0,196,142,156,60,196,142,5,60,196,160,156,62,196,160,5,62,5,5,16,75,196,136,156,64,196,136,5,64,196,160,156,64,196,160,5,64,196,144,156,64,196,144,5,64,197,2,149,0,197,194,148,0,196,178,156,64,196,178,5,64,196,136,156,68,196,136,5,68,196,160,156,68,196,160,5,68,196,144,156,68,196,144,5,68,197,162,212,0,158,5,30,69,5,5,30,69,196,164,156,70,196,164,5,70,196,140,156,70,196,140,5,70,196,152,156,70,196,152,5,70,197,2,179,0,197,194,178,0,196,136,156,76,196,136,5,76,196,160,156,76,196,160,5,76,196,144,156,76,196,144,5,76,196,136,156,78,196,136,5,78,196,142,156,78,196,142,5,78,196,160,156,78,196,160,5,78,196,144,156,78,196,144,5,78,196,160,156,80,196,160,5,80,196,144,156,80,196,144,5,80,160,5,8,81,5,5,8,81,196,154,156,82,196,154,5,82,196,164,156,82,196,164,5,82,196,140,156,82,196,140,5,82,196,146,156,82,196,146,5,82,196,152,156,82,196,152,5,82,196,162,156,82,196,162,5,82,196,142,160,86,196,142,5,86,196,142,156,90,196,142,5,90,196,150,156,90,196,136,156,92,196,136,5,92,196,156,156,92,196,156,5,92,196,144,156,92,196,144,5,92,5,120,0,78,5,5,8,45,160,5,20,45,160,5,22,45,5,5,22,45,160,5,74,93,5,5,74,93,160,5,30,71,160,5,14,47,5,5,14,47,160,5,16,49,160,5,18,49,160,5,22,49,5,5,22,49,197,226,211,0,160,5,20,51,155,5,24,51,144,5,28,51,160,5,16,53,5,5,16,53,160,5,16,55,160,5,24,55,5,5,8,57,160,5,24,59,160,5,16,59,160,5,10,63,5,5,10,63,5,5,14,65,5,5,42,65,160,5,40,83,160,5,14,69,5,5,16,69,160,5,50,71,196,190,156,70,196,190,5,70,160,5,26,55,5,5,26,55,160,5,16,73,5,5,16,73,174,5,8,77,160,5,70,93,5,5,70,93,158,5,22,79,5,5,28,79,5,5,14,81,160,5,16,81,5,5,16,81,160,5,18,81,196,190,156,82,196,190,5,82,160,5,48,83,160,5,12,85,160,5,10,91,5,5,10,91,160,5,8,93,5,5,8,93,158,5,26,93,160,5,30,93,5,5,30,93,5,5,34,93,5,5,62,93,160,5,72,93,5,5,72,93,197,34,195,0,5,5,44,93,5,5,112,93,5,5,114,93,5,5,116,93,5,5,118,93,197,67,123,0,197,227,122,0,197,131,122,0,197,194,149,0,197,130,149,0,197,66,149,0,197,66,162,0,197,2,162,0,197,194,161,0,196,144,156,42,196,144,5,42,196,144,156,58,196,144,5,58,196,144,156,70,196,144,5,70,196,144,156,82,196,144,5,82,197,131,199,0,197,35,199,0,197,67,197,0,197,227,196,0,197,195,198,0,197,99,198,0,197,3,198,0,197,163,197,0,5,5,20,51,197,195,102,0,197,99,102,0,197,131,103,0,197,35,103,0,197,3,110,0,197,163,109,0,160,5,12,55,5,5,12,55,196,144,156,54,196,144,5,54,196,144,156,62,196,144,5,62,196,162,156,70,196,162,5,70,197,35,172,0,197,195,171,0,197,98,212,0,197,34,212,0,196,144,5,60,197,66,122,0,197,2,122,0,197,194,121,0,196,136,156,54,196,136,5,54,160,5,8,57,160,5,44,93,196,138,156,68,196,138,5,68,197,131,101,0,197,35,101,0,197,67,109,0,197,227,108,0,197,99,171,0,197,3,171,0,196,184,156,42,196,184,5,42,196,188,156,42,196,188,5,42,196,184,156,50,196,184,5,50,196,188,156,50,196,188,5,50,196,184,156,58,196,184,5,58,196,188,156,58,196,188,5,58,196,184,156,70,196,184,5,70,196,188,156,70,196,188,5,70,196,184,156,76,196,184,5,76,196,188,156,76,196,188,5,76,196,184,156,82,196,184,5,82,196,188,156,82,196,188,5,82,196,202,156,78,196,202,5,78,196,202,156,80,196,202,5,80,160,5,16,91,5,5,16,91,196,144,156,56,196,144,5,56,160,5,16,69,5,5,24,49,160,5,58,71,5,5,58,71,160,5,14,93,5,5,14,93,196,156,156,42,196,156,5,42,196,160,156,50,196,160,5,50,197,163,167,0,197,67,167,0,197,227,169,0,197,131,169,0,196,156,156,70,196,156,5,70,197,163,170,0,197,67,170,0,196,164,156,90,196,164,5,90,5,5,34,65,5,5,24,69,5,5,20,81,5,5,6,61,197,194,119,0,197,98,184,0,160,5,8,43,160,5,8,47,5,5,8,47,160,5,14,65,160,5,10,81,5,5,16,79,5,5,20,93,160,5,78,93,5,5,78,93,160,5,8,45,160,5,20,83,160,5,20,85,160,5,12,51,5,5,12,51,160,5,10,61,5,5,10,61,160,5,14,75,5,5,14,75,160,5,16,77,5,5,16,77,160,5,8,91,5,5,8,91,5,5,20,43,5,5,22,43,5,5,28,43,5,5,20,45,5,5,30,71,5,5,16,47,5,5,16,49,5,5,18,49,5,5,32,51,5,5,24,51,5,5,34,51,5,5,28,51,5,5,36,51,5,5,42,51,5,5,44,51,5,5,14,61,5,5,16,55,5,5,6,55,5,5,10,55,5,5,24,55,5,5,48,51,5,5,34,83,5,5,12,57,5,5,22,57,5,5,16,59,5,5,24,59,5,5,8,59,5,5,18,65,5,5,24,65,5,5,30,65,5,5,38,65,5,5,40,83,5,5,46,83,5,5,12,67,5,5,14,69,5,5,22,69,5,5,6,69,5,5,50,71,5,5,12,71,5,5,54,71,5,5,24,73,5,5,20,77,5,5,24,77,5,5,28,77,5,5,32,77,5,5,34,77,5,5,38,77,5,5,42,77,5,5,8,77,5,5,54,77,5,5,14,79,5,5,22,79,5,5,16,61,5,5,30,79,5,5,34,79,5,5,24,81,5,5,18,81,5,5,20,83,5,5,48,83,5,5,12,85,5,5,20,85,5,5,12,87,5,5,44,65,5,5,6,91,5,5,16,93,5,5,18,93,5,5,26,93,5,5,36,93,5,5,76,93,5,5,94,93,5,5,110,93,5,5,120,93,5,5,122,93,5,5,6,45,5,5,46,51,5,5,18,55,5,5,6,57,5,5,12,61,5,5,20,63,5,5,6,65,5,5,12,75,5,5,106,93,5,5,108,93,197,194,121,0,197,34,124,0,197,226,123,0,197,34,195,0,197,162,195,0,197,162,193,0,197,162,132,0,197,98,152,0,197,66,153,0,5,5,124,93,5,5,126,93,5,5,36,83,5,5,38,83,43,5,0,56,46,5,12,57,43,5,0,60,43,5,0,76,32,5,20,77,32,5,28,77,32,5,54,77,52,5,0,86,43,5,0,90,5,5,24,12,5,5,28,12,5,5,24,57,5,5,82,93,5,5,26,57,5,5,86,93,5,5,96,93,5,5,80,93,5,5,98,93,193,2,30,12,193,9,30,12,193,16,30,12,193,23,30,12,5,5,32,12,5,5,34,12,5,5,36,12,5,5,38,12,5,5,40,12,5,5,42,12,5,5,44,12,5,5,46,12,5,5,48,12,5,5,50,12,5,5,80,13,5,5,82,13,193,2,52,12,193,9,52,12,193,16,52,12,193,23,52,12,193,44,52,12,193,51,52,12,193,2,14,12,193,9,14,12,193,2,18,12,193,2,22,12,5,5,8,12,193,9,18,12,193,58,52,12,193,65,52,12,46,5,24,55,43,5,0,64,43,5,0,78,43,5,0,88,32,5,94,93,193,72,52,12,193,79,52,12,193,86,52,12,193,93,52,12,193,100,52,12,193,107,52,12,193,114,52,12,5,5,54,12,193,2,56,12,5,5,84,93,193,9,56,12,193,16,56,12,193,23,56,12,193,30,56,12,193,37,56,12,193,44,56,12,193,51,56,12,193,58,56,12,193,65,56,12,193,72,56,12,193,79,56,12,193,86,56,12,193,93,56,12,193,100,56,12,193,107,56,12,193,114,56,12,193,121,56,12,5,138,0,0,5,136,0,0,5,142,0,0,5,154,0,0,5,164,0,0,5,180,0,0,5,140,0,0,5,156,0,0,5,150,0,0,5,182,0,0,5,146,0,0,5,152,0,0,5,144,0,0,5,166,0,0,5,166,0,0,5,184,0,0,5,186,0,0,5,188,0,0,5,166,0,0,5,132,0,0,5,134,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,190,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,192,0,0,5,194,0,0,5,196,0,0,5,198,0,0,5,200,0,0,5,202,0,0,5,160,0,0,5,162,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,204,0,0,5,206,0,0,5,168,0,0,5,208,0,0,5,210,0,0,5,130,0,0,5,168,0,0,5,212,0,0,5,178,0,0,5,170,0,0,5,170,0,0,5,158,0,0,5,214,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,138,0,0,5,136,0,0,5,148,0,0,5,132,0,0,197,34,0,0,5,216,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,0,0,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,218,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,220,0,0,5,222,0,0,5,168,0,0,19,5,0,42,19,5,0,50,19,5,0,58,19,5,0,70,19,5,0,82,19,5,0,46,19,5,0,48,19,5,0,56,19,5,0,66,19,5,0,76,19,5,0,80,19,5,0,84,19,5,0,88,160,5,26,96,5,5,26,96,160,5,92,96,5,5,92,96,5,5,24,12,5,5,26,12,160,5,20,96,5,5,20,96,255,255,255,255,255,255,255,255,16,5,32,96,5,5,70,96,5,5,68,96,5,5,72,96,5,5,42,7,160,5,34,96,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,12,197,98,49,0,197,34,226,0,200,0,0,0,197,2,234,0,197,2,248,0,197,98,0,1,255,255,255,255,197,2,11,1,255,255,255,255,197,226,16,1,197,66,34,1,197,99,2,1,166,5,6,96,158,5,8,96,152,5,10,96,155,5,14,96,166,5,16,96,158,5,24,96,158,5,28,96,158,5,30,96,166,5,32,96,160,5,36,96,158,5,38,96,160,5,42,96,158,5,44,96,158,5,46,96,158,5,48,96,166,5,50,96,160,5,60,96,255,255,255,255,158,5,66,96,158,5,74,96,155,5,76,96,158,5,78,96,152,5,80,96,158,5,82,96,155,5,86,96,197,34,2,1,197,226,18,1,197,226,225,0,197,194,233,0,197,194,247,0,197,34,0,1,197,99,19,1,5,5,6,96,5,5,8,96,5,5,10,96,5,5,14,96,5,5,16,96,5,5,24,96,5,5,28,96,5,5,30,96,5,5,32,96,5,5,36,96,5,5,38,96,5,5,42,96,5,5,44,96,5,5,46,96,5,5,48,96,5,5,50,96,5,5,60,96,51,5,66,96,5,5,66,96,5,5,74,96,5,5,76,96,5,5,78,96,5,5,80,96,5,5,82,96,5,5,86,96,197,226,1,1,197,162,18,1,197,194,10,1,197,162,16,1,197,2,34,1,197,99,4,1,16,5,8,96,16,5,30,96,166,5,76,96,197,34,17,1,197,34,19,1,16,5,78,96,16,5,50,96,197,3,4,1,160,5,58,96,5,5,58,96,160,5,22,96,5,5,22,96,158,5,18,96,5,5,18,96,160,5,56,96,5,5,56,96,160,5,90,96,5,5,90,96,160,5,160,96,5,5,160,96,160,5,170,96,5,5,170,96,160,5,172,96,5,5,172,96,160,5,178,96,5,5,178,96,160,5,192,96,5,5,192,96,160,5,198,96,5,5,198,96,160,5,206,96,5,5,206,96,16,5,36,96,16,5,60,96,16,5,66,96,5,5,34,96,165,5,30,96,16,5,16,96,193,30,117,12,160,5,94,96,5,5,94,96,165,5,66,96,160,5,54,96,5,5,54,96,5,5,64,96,160,5,70,96,160,5,68,96,160,5,72,96,197,130,39,1,197,130,40,1,160,5,32,97,197,2,39,1,174,5,42,97,160,5,58,97,174,5,74,97,197,66,44,1,160,5,80,97,160,5,106,97,160,5,134,97,160,5,170,97,197,194,44,1,197,130,42,1,197,130,46,1,160,5,216,97,174,5,6,97,174,5,12,97,174,5,14,97,174,5,16,97,174,5,26,97,174,5,40,97,174,5,44,97,174,5,50,97,201,102,1,0,160,5,78,97,174,5,84,97,174,5,98,97,174,5,114,97,158,5,120,97,158,5,138,97,174,5,142,97,174,5,150,97,174,5,156,97,174,5,162,97,174,5,172,97,174,5,180,97,174,5,182,97,174,5,192,97,174,5,200,97,174,5,218,97,174,5,222,97,158,5,226,97,174,5,230,97,158,5,232,97,160,5,238,97,174,5,240,97,160,5,244,97,5,5,6,97,5,5,12,97,5,5,14,97,5,5,16,97,5,5,26,97,5,5,40,97,5,5,44,97,5,5,50,97,201,70,2,0,5,5,78,97,5,5,84,97,5,5,98,97,5,5,114,97,5,5,120,97,5,5,138,97,5,5,142,97,5,5,150,97,5,5,156,97,5,5,162,97,5,5,172,97,5,5,180,97,5,5,182,97,5,5,192,97,5,5,200,97,5,5,218,97,5,5,222,97,5,5,226,97,5,5,230,97,5,5,232,97,5,5,238,97,5,5,240,97,5,5,244,97,197,66,39,1,197,66,40,1,5,5,32,97,197,194,38,1,5,5,42,97,5,5,58,97,5,5,74,97,197,194,43,1,5,5,80,97,5,5,106,97,5,5,134,97,5,5,170,97,197,130,44,1,197,66,42,1,197,66,46,1,5,5,216,97,198,225,155,0,193,16,190,97,198,65,157,0,193,2,236,97,198,33,158,0,193,9,246,97,198,97,158,0,193,16,246,97,198,1,159,0,193,44,246,97,198,193,158,0,193,30,246,97,198,97,159,0,193,58,246,97,198,129,159,0,193,65,246,97,198,161,159,0,193,72,246,97,198,225,159,0,193,79,246,97,198,1,160,0,193,86,246,97,198,34,160,0,197,194,49,1,198,33,155,0,193,9,178,97,198,97,156,0,193,44,190,97,198,65,156,0,193,37,190,97,198,1,156,0,193,23,190,97,160,5,148,97,5,5,148,97,193,2,85,12,5,224,0,0,5,166,0,0,5,134,0,0,5,132,0,0,5,166,0,0,0,0,0,0,0,0,0,0,160,5,72,97,5,5,72,97,160,5,234,97,5,5,234,97,160,5,152,97,5,5,152,97,160,112,16,97,5,112,16,97,160,5,18,97,5,5,18,97,160,5,22,97,5,5,22,97,160,5,48,97,5,5,48,97,160,5,38,97,5,5,38,97,160,5,86,97,5,5,86,97,160,5,94,97,5,5,94,97,160,5,92,97,5,5,92,97,160,5,90,97,5,5,90,97,160,5,126,97,5,5,126,97,160,5,132,97,5,5,132,97,160,5,146,97,5,5,146,97,160,5,248,97,5,5,248,97,160,5,160,97,5,5,160,97,160,5,166,97,5,5,166,97,160,5,174,97,5,5,174,97,160,5,176,97,5,5,176,97,160,5,186,97,5,5,186,97,160,5,196,97,5,5,196,97,160,5,204,97,5,5,204,97,160,5,208,97,5,5,208,97,160,5,188,97,5,5,188,97,160,5,212,97,5,5,212,97,160,5,214,97,5,5,214,97,160,5,252,97,197,2,41,1,197,194,40,1,160,5,88,97,5,5,88,97,160,5,102,97,5,5,102,97,160,5,128,97,5,5,128,97,160,5,124,97,5,5,124,97,160,5,206,97,5,5,206,97,160,5,116,97,5,5,116,97,5,5,252,97,197,130,37,1,197,66,37,1,197,2,38,1,197,194,37,1,160,5,10,97,5,5,10,97,197,2,40,1,197,194,39,1,160,5,8,97,5,5,8,97,197,130,38,1,197,66,38,1,197,130,41,1,197,66,41,1,197,2,42,1,197,194,41,1,160,5,62,97,5,5,62,97,197,130,43,1,197,66,43,1,197,2,43,1,197,194,42,1,197,66,45,1,197,2,45,1,160,5,140,97,5,5,140,97,197,194,45,1,197,130,45,1,197,130,49,1,197,66,49,1,197,2,48,1,197,194,47,1,197,2,47,1,197,194,46,1,197,130,47,1,197,66,47,1,197,130,48,1,197,66,48,1,160,5,24,97,5,5,24,97,197,2,49,1,197,194,48,1,160,5,20,97,5,5,20,97,198,65,155,0,193,2,184,97,198,97,155,0,193,9,184,97,160,5,28,97,5,5,28,97,160,5,36,97,5,5,36,97,160,5,54,97,5,5,54,97,160,5,66,97,5,5,66,97,160,5,110,97,5,5,110,97,160,5,136,97,5,5,136,97,160,5,158,97,5,5,158,97,198,193,154,0,193,9,164,97,198,193,153,0,193,2,56,97,198,97,154,0,193,9,104,97,160,5,112,97,5,5,112,97,160,5,154,97,5,5,154,97,198,225,157,0,193,2,246,97,198,33,154,0,193,9,96,97,160,5,250,97,5,5,250,97,198,1,154,0,193,2,96,97,198,129,154,0,193,16,104,97,160,5,130,97,5,5,130,97,160,5,144,97,5,5,144,97,198,129,155,0,193,2,190,97,160,5,122,97,5,5,122,97,198,129,153,0,193,2,46,97,198,193,156,0,193,2,202,97,198,65,154,0,193,2,104,97,255,255,255,255,160,5,6,100,160,5,10,100,160,5,12,100,160,5,14,100,174,5,16,100,160,5,18,100,160,5,20,100,160,5,22,100,160,5,24,100,160,5,26,100,174,5,28,100,160,5,30,100,174,5,32,100,160,5,34,100,160,5,36,100,160,5,38,100,160,5,40,100,160,5,42,100,160,5,44,100,174,5,46,100,160,5,48,100,174,5,52,100,160,5,54,100,160,5,56,100,160,5,58,100,160,5,60,100,160,5,62,100,160,5,64,100,160,5,66,100,174,5,68,100,160,5,70,100,160,5,72,100,160,5,74,100,174,5,76,100,160,5,78,100,160,5,80,100,160,5,82,100,160,5,84,100,255,255,255,255,255,255,255,255,5,5,86,100,5,5,8,11,5,5,10,11,5,5,94,7,5,5,18,7,5,5,104,7,5,5,12,11,5,5,8,100,5,5,6,100,5,5,10,100,5,5,12,100,5,5,14,100,5,5,16,100,5,5,18,100,5,5,20,100,5,5,22,100,5,5,24,100,5,5,26,100,5,5,28,100,5,5,30,100,5,5,32,100,5,5,34,100,5,5,36,100,5,5,38,100,5,5,40,100,5,5,42,100,5,5,44,100,5,5,46,100,5,5,48,100,5,5,52,100,5,5,54,100,5,5,56,100,5,5,58,100,5,5,60,100,5,5,62,100,5,5,64,100,5,5,66,100,5,5,68,100,5,5,70,100,5,5,72,100,5,5,74,100,5,5,76,100,5,5,78,100,5,5,80,100,5,5,82,100,5,5,84,100,197,2,50,1,5,5,50,100,5,5,56,7,5,5,16,5,255,255,255,255,255,255,255,255,193,9,85,12,193,16,85,12,5,5,144,13,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,5,35,226,194,5,68,226,194,5,101,226,194,5,134,226,194,5,167,226,194,5,200,226,194,5,233,226,194,5,12,227,194,5,45,227,194,5,78,227,194,5,78,227,194,5,111,227,194,5,210,227,0,0,0,0,5,5,14,11,194,5,243,227,5,5,16,11,194,5,177,227,194,5,144,227,5,5,18,11,0,0,0,0,0,0,0,0,5,5,20,11,194,5,45,227,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,101,5,5,8,101,5,5,10,101,5,5,12,101,5,5,14,101,5,5,16,101,5,5,18,101,5,5,20,101,5,5,22,101,5,5,24,101,46,5,26,101,5,5,26,101,5,5,28,101,46,5,30,101,5,5,30,101,32,5,32,101,5,5,32,101,5,5,34,101,5,5,36,101,32,5,38,101,5,5,38,101,32,5,40,101,5,5,40,101,5,5,42,101,5,5,44,101,5,5,46,101,5,5,48,101,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,196,55,1,197,66,54,1,197,130,54,1,197,66,56,1,5,5,22,11,5,5,24,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,44,151,12,193,58,151,12,193,23,85,12,5,5,158,10,5,5,162,10,5,5,146,13,5,5,20,7,5,5,22,7,193,44,85,12,193,51,85,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,44,7,0,0,0,0,255,255,255,255,5,5,58,7,5,5,106,7,193,30,248,102,5,5,6,102,5,5,8,102,5,5,10,102,5,5,16,102,5,5,18,102,5,5,22,102,201,38,3,0,5,5,30,102,5,5,40,102,5,5,42,102,5,5,44,102,5,5,58,102,5,5,72,102,5,5,74,102,5,5,84,102,5,5,86,102,5,5,110,102,5,5,112,102,5,5,134,102,5,5,136,102,5,5,146,102,5,5,148,102,5,5,158,102,5,5,160,102,5,5,166,102,5,5,168,102,193,51,194,102,193,58,194,102,193,9,248,102,193,16,248,102,193,23,248,102,0,0,0,0,5,5,174,102,5,5,178,102,5,5,182,102,5,5,196,102,5,5,200,102,5,5,204,102,5,5,214,102,201,6,5,0,5,5,236,102,201,230,5,0,194,5,164,229,194,5,9,230,194,5,108,230,194,5,207,230,194,5,85,231,194,5,184,231,194,5,29,232,194,5,62,232,194,5,95,232,194,5,128,232,194,5,161,232,194,5,227,232,194,5,6,233,194,5,39,233,194,5,105,233,194,5,138,233,194,5,171,233,194,5,204,233,194,5,237,233,194,5,16,234,194,5,194,232,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,154,10,5,5,24,7,5,5,26,7,5,5,134,10,5,5,28,102,193,72,176,102,194,5,59,235,5,5,14,102,5,5,12,102,193,2,20,102,32,5,6,102,197,226,69,1,197,98,183,1,197,162,183,1,197,162,184,1,5,5,46,102,5,5,48,102,5,5,32,102,5,5,50,102,5,5,52,102,5,5,34,102,5,5,54,102,5,5,36,102,5,5,76,102,5,5,78,102,5,5,60,102,5,5,62,102,5,5,80,102,5,5,64,102,5,5,68,102,5,5,88,102,5,5,90,102,5,5,92,102,5,5,94,102,5,5,96,102,5,5,98,102,5,5,102,102,5,5,104,102,5,5,106,102,5,5,114,102,5,5,116,102,5,5,118,102,5,5,120,102,5,5,122,102,5,5,124,102,5,5,126,102,5,5,128,102,5,5,130,102,5,5,138,102,5,5,140,102,5,5,142,102,5,5,150,102,5,5,154,102,5,5,162,102,5,5,170,102,193,2,176,102,193,9,176,102,193,23,176,102,193,30,176,102,193,44,176,102,193,51,176,102,193,2,180,102,193,16,180,102,5,5,184,102,5,5,186,102,5,5,188,102,193,2,190,102,193,16,190,102,193,23,190,102,5,5,192,102,193,9,194,102,193,16,194,102,193,23,194,102,193,30,194,102,193,37,194,102,193,2,198,102,193,9,198,102,193,16,198,102,193,23,198,102,193,9,212,102,5,5,206,102,193,9,208,102,5,5,210,102,193,2,212,102,5,5,216,102,5,5,66,102,197,34,183,1,5,5,218,102,197,226,182,1,193,2,220,102,5,5,224,102,193,2,226,102,193,9,226,102,5,5,228,102,5,5,230,102,5,5,232,102,193,2,234,102,193,9,234,102,5,5,240,102,5,5,242,102,5,5,244,102,193,23,234,102,5,5,246,102,193,2,248,102,5,5,250,102,197,194,190,1,5,5,8,9,193,16,220,102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,58,85,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,5,222,102,16,5,238,102,0,0,0,0,0,0,0,0,193,65,85,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,2,108,102,193,2,132,102,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,2,144,102,5,5,156,102,193,9,172,102,5,112,6,102,5,112,200,102,193,9,220,102,193,28,53,9,193,2,10,9,193,9,10,9,193,2,60,7,193,9,60,7,193,16,60,7,193,23,60,7,193,30,60,7,193,37,60,7,5,5,108,7,193,2,26,11,193,9,26,11,193,16,26,11,193,23,26,11,255,255,255,255,0,0,0,0,193,9,4,103,194,5,92,235,5,5,6,103,5,5,8,103,5,112,8,103,5,5,12,103,5,5,10,103,193,2,14,103,193,9,14,103,193,16,14,103,193,30,14,103,5,5,16,103,5,112,16,103,193,2,18,103,193,9,18,103,193,16,18,103,193,30,18,103,193,37,18,103,193,44,18,103,5,5,20,103,32,5,20,103,5,5,22,103,5,5,24,103,5,112,24,103,193,9,26,103,193,16,26,103,193,23,26,103,193,30,26,103,193,37,26,103,5,112,6,103,5,120,8,103,5,112,12,103,194,5,125,235,194,5,158,235,194,5,191,235,194,5,224,235,194,5,3,236,194,5,36,236,194,5,69,236,194,5,102,236,194,5,135,236,194,5,168,236,194,5,201,236,194,5,234,236,194,5,13,237,194,5,46,237,194,5,79,237,194,5,112,237,0,0,0,0,5,166,0,0,5,168,0,0,0,0,0,0,0,0,0,0,5,166,0,0,5,168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,193,23,14,103,193,23,18,103,193,2,26,103,193,2,38,102,193,9,38,102,193,16,38,102,193,23,38,102,193,30,38,102,193,37,38,102,193,51,38,102,193,2,82,102,193,9,82,102,193,9,108,102,193,16,108,102,193,9,132,102,193,9,144,102,193,16,172,102,193,23,172,102,193,30,172,102,193,58,176,102,193,65,176,102,193,44,194,102,193,65,194,102,193,72,194,102,193,2,202,102,193,9,202,102,193,16,212,102,193,23,212,102,193,30,212,102,193,30,198,102,193,16,132,102,193,23,132,102,193,16,144,102,193,16,82,102,193,23,82,102,193,23,144,102,193,30,132,102,193,30,82,102,193,9,20,102,193,16,20,102,193,37,248,102,193,44,248,102,193,51,248,102,193,30,234,102,193,37,234,102,193,2,252,102,193,9,252,102,193,37,82,102,193,30,144,102,193,37,144,102,193,9,190,102,5,5,30,103,5,5,36,103,5,5,38,103,5,5,40,103,5,5,44,103,5,5,46,103,5,5,48,103,5,5,50,103,5,5,56,103,5,5,60,103,5,5,62,103,5,5,64,103,5,5,68,103,5,5,76,103,5,5,78,103,5,5,82,103,5,5,84,103,5,5,92,103,5,5,94,103,5,5,96,103,5,5,98,103,5,5,100,103,5,5,102,103,5,5,104,103,5,5,70,103,5,5,32,103,5,5,34,103,5,5,66,103,5,5,42,103,5,5,86,103,5,5,88,103,5,5,90,103,5,5,72,103,5,5,74,103,5,5,52,103,5,5,54,103,5,5,80,103,5,5,58,103,5,5,108,103,5,5,110,103,5,5,112,103,5,5,114,103,5,5,116,103,5,5,118,103,5,5,120,103,5,5,122,103,5,5,124,103,5,5,126,103,5,5,128,103,5,5,106,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,9,130,103,193,16,130,103,193,23,130,103,193,30,130,103,193,37,130,103,193,44,130,103,193,51,130,103,193,58,130,103,193,65,130,103,193,72,130,103,193,79,130,103,193,86,130,103,5,5,132,103,5,5,134,103,5,5,136,103,5,5,138,103,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,206,32,227,0,5,112,132,103,5,112,134,103,5,112,138,103,194,5,145,237,194,5,178,237,194,5,211,237,194,5,244,237,194,5,23,238,194,5,56,238,194,5,89,238,194,5,122,238,194,5,155,238,193,100,140,103,193,107,140,103,193,191,85,12,193,35,53,9,5,5,28,7,193,2,96,7,0,0,0,0,255,255,255,255,255,255,255,255,5,168,0,0,193,2,148,13,193,9,148,13,32,5,136,13,32,5,140,13,32,5,135,12,32,5,12,12,32,5,139,12,32,5,142,13,32,5,192,13,255,255,255,255,160,5,172,12,160,5,99,12,160,5,103,12,160,5,101,12,160,5,105,12,160,5,180,12,160,5,185,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,193,58,78,13,5,5,253,255,5,5,0,2,5,5,255,255,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,197,67,167,1,197,67,144,1,197,35,72,1,197,131,153,1,197,227,134,1,197,35,123,1,197,195,102,1,197,35,174,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,201,192,184,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,2,251,193,6,2,251,193,8,2,251,193,10,2,251,193,12,2,251,193,14,2,251,193,16,2,251,193,28,2,251,193,30,2,251,193,32,2,251,193,34,2,251,193,36,2,251,193,38,2,251,193,76,2,251,193,78,2,251,193,80,2,251,193,82,2,251,193,84,2,251,193,86,2,251,193,88,2,251,193,124,2,251,193,126,2,251,193,128,2,251,193,90,2,251,193,130,2,251,193,132,2,251,193,134,2,251,193,136,2,251,193,138,2,251,193,140,2,251,193,186,2,251,193,188,2,251,193,194,224,253,193,198,224,253,193,200,224,253,193,202,224,253,193,204,224,253,193,208,224,253,193,210,224,253,193,214,224,253,193,216,224,253,193,122,224,253,193,242,224,253,193,254,224,253,193,2,225,253,193,4,225,253,193,16,225,253,193,18,225,253,193,20,225,253,193,22,225,253,193,26,225,253,193,28,225,253,193,34,225,253,193,36,225,253,193,38,225,253,193,96,57,251,193,108,83,251,193,4,2,251,193,52,2,251,193,198,131,251,193,212,147,251,193,208,33,251,255,255,255,255,255,255,255,255,193,18,2,251,193,20,2,251,193,22,2,251,193,44,2,251,193,46,2,251,193,48,2,251,193,50,2,251,193,92,2,251,193,94,2,251,193,96,2,251,193,98,2,251,193,100,2,251,193,102,2,251,193,144,2,251,193,146,2,251,193,148,2,251,193,150,2,251,193,152,2,251,193,154,2,251,193,156,2,251,193,158,2,251,193,160,2,251,193,162,2,251,193,164,2,251,193,200,2,251,193,202,2,251,193,204,2,251,193,32,103,251,193,206,2,251,193,64,49,251,193,208,2,251,193,210,2,251,193,6,225,253,193,32,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,24,2,251,193,60,2,251,193,62,2,251,193,64,2,251,193,66,2,251,193,108,2,251,193,110,2,251,193,112,2,251,193,114,2,251,193,116,2,251,193,170,2,251,193,172,2,251,193,174,2,251,193,176,2,251,193,178,2,251,193,220,2,251,193,26,2,251,193,68,2,251,193,70,2,251,193,72,2,251,193,74,2,251,193,118,2,251,193,120,2,251,193,122,2,251,193,180,2,251,193,182,2,251,193,184,2,251,193,242,2,251,193,46,3,251,193,90,3,251,193,118,3,251,193,120,3,251,193,122,3,251,193,124,3,251,193,152,3,251,193,154,3,251,193,156,3,251,193,158,3,251,193,206,3,251,193,208,3,251,193,210,3,251,193,240,3,251,193,242,3,251,193,6,4,251,193,8,4,251,193,22,4,251,193,46,4,251,193,56,4,251,193,146,7,251,193,184,7,251,193,202,7,251,193,204,7,251,193,206,7,251,193,248,7,251,193,252,7,251,193,8,8,251,193,18,8,251,193,30,8,251,193,38,8,251,193,48,8,251,193,74,8,251,193,82,8,251,193,84,8,251,193,86,8,251,193,40,2,251,193,90,8,251,193,92,8,251,193,94,8,251,193,96,8,251,193,98,8,251,193,100,8,251,193,106,8,251,193,110,8,251,193,112,8,251,193,114,8,251,193,132,8,251,193,134,8,251,193,146,8,251,193,148,8,251,193,150,8,251,193,168,47,251,193,180,47,251,193,182,47,251,193,184,47,251,193,42,2,251,193,186,47,251,193,188,47,251,193,190,47,251,193,192,47,251,193,208,47,251,193,210,47,251,193,226,47,251,193,212,47,251,193,228,47,251,193,230,47,251,193,232,47,251,193,234,47,251,193,46,48,251,193,48,48,251,193,50,48,251,193,52,48,251,193,54,48,251,193,56,48,251,193,92,48,251,193,94,48,251,193,132,48,251,193,154,48,251,193,30,49,251,193,44,49,251,193,48,49,251,193,50,49,251,193,54,49,251,193,54,2,251,193,56,2,251,193,104,2,251,193,68,3,251,193,104,3,251,193,136,3,251,193,170,3,251,193,40,4,251,193,92,4,251,193,142,4,251,193,204,4,251,193,234,4,251,193,154,5,251,193,196,5,251,193,216,5,251,193,218,5,251,193,140,6,251,193,200,6,251,193,248,6,251,193,250,6,251,193,40,7,251,193,88,7,251,193,122,7,251,193,124,7,251,193,168,7,251,193,190,7,251,193,192,7,251,193,212,7,251,193,46,8,251,193,64,8,251,193,216,8,251,193,224,8,251,193,58,2,251,193,214,2,251,193,18,3,251,193,254,3,251,193,52,5,251,193,18,9,251,193,234,10,251,193,52,14,251,193,54,14,251,193,64,17,251,193,196,18,251,193,56,21,251,193,158,26,251,193,236,29,251,193,58,32,251,193,192,32,251,193,8,38,251,193,48,44,251,193,36,48,251,193,84,48,251,193,96,48,251,193,50,51,251,193,234,51,251,193,236,51,251,193,98,57,251,193,196,61,251,193,188,73,251,193,176,75,251,193,182,78,251,193,230,79,251,193,104,82,251,193,50,93,251,193,112,161,251,193,106,2,251,193,166,2,251,193,168,2,251,193,216,2,251,193,218,2,251,193,20,3,251,193,22,3,251,193,24,3,251,193,26,3,251,193,70,3,251,193,72,3,251,193,74,3,251,193,76,3,251,193,106,3,251,193,138,3,251,193,140,3,251,193,142,3,251,193,144,3,251,193,172,3,251,193,174,3,251,193,176,3,251,193,198,3,251,193,216,3,251,193,218,3,251,193,220,3,251,193,222,3,251,193,224,3,251,193,226,3,251,193,2,4,251,193,16,4,251,193,18,4,251,193,142,2,251,193,196,2,251,193,198,2,251,193,72,4,251,193,74,4,251,193,10,5,251,193,132,5,251,193,62,6,251,193,64,6,251,193,66,6,251,193,86,6,251,193,88,6,251,193,120,6,251,193,122,6,251,193,124,6,251,193,126,6,251,193,178,6,251,193,180,6,251,193,182,6,251,193,184,6,251,193,186,6,251,193,188,6,251,193,234,6,251,193,236,6,251,193,238,6,251,193,28,7,251,193,30,7,251,193,32,7,251,193,64,7,251,193,66,7,251,193,68,7,251,193,70,7,251,193,190,2,251,193,192,2,251,193,194,2,251,193,244,2,251,193,246,2,251,193,248,2,251,193,48,3,251,193,50,3,251,193,60,4,251,193,62,4,251,193,68,4,251,193,70,4,251,193,14,66,252,193,82,4,251,193,84,4,251,193,86,4,251,193,88,4,251,193,98,4,251,193,112,4,251,193,120,4,251,193,134,4,251,193,148,4,251,193,200,4,251,193,202,4,251,193,206,4,251,193,216,4,251,193,218,4,251,193,222,4,251,193,224,4,251,193,250,2,251,193,236,4,251,193,252,4,251,193,212,2,251,193,254,2,251,193,2,3,251,193,4,3,251,193,6,3,251,193,136,8,251,193,8,3,251,193,10,3,251,193,12,3,251,193,32,8,251,193,14,3,251,193,16,3,251,193,52,3,251,193,54,3,251,193,56,3,251,193,14,84,251,193,58,3,251,193,60,3,251,193,62,3,251,193,64,3,251,193,66,3,251,193,94,3,251,193,96,3,251,193,242,60,251,193,98,3,251,193,244,60,251,193,100,3,251,193,102,3,251,193,24,101,251,193,126,3,251,193,128,3,251,193,130,3,251,193,222,2,251,193,224,2,251,193,226,2,251,193,228,2,251,193,230,2,251,193,232,2,251,193,234,2,251,193,236,2,251,193,238,2,251,193,240,2,251,193,28,3,251,193,30,3,251,193,32,3,251,193,34,3,251,193,36,3,251,193,38,3,251,193,40,3,251,193,42,3,251,193,44,3,251,193,78,3,251,193,80,3,251,193,82,3,251,193,84,3,251,193,86,3,251,193,88,3,251,193,108,3,251,193,110,3,251,193,112,3,251,193,114,3,251,193,116,3,251,193,146,3,251,193,148,3,251,193,236,250,252,193,174,32,253,193,186,74,253,193,130,116,252,193,190,239,251,193,142,139,252,193,54,135,252,193,182,13,251,193,136,166,251,193,138,166,251,193,84,228,252,193,128,22,253,193,98,32,252,193,170,88,251,193,164,127,252,193,110,116,253,193,106,189,253,193,160,31,251,193,156,226,252,193,140,233,252,193,184,117,253,193,102,193,253,193,252,2,251,193,92,3,251,193,102,19,251,193,154,20,251,193,188,23,251,193,192,33,251,193,168,211,251,193,144,6,252,193,142,14,252,193,208,142,252,193,132,3,251,193,160,3,251,193,162,3,251,193,164,3,251,193,166,3,251,193,168,3,251,193,188,3,251,193,190,3,251,193,192,3,251,193,140,34,251,193,194,3,251,193,196,3,251,193,212,3,251,193,214,3,251,193,244,3,251,193,246,3,251,193,248,3,251,193,250,3,251,193,252,3,251,193,12,4,251,193,14,4,251,193,24,4,251,193,44,4,251,193,26,4,251,193,28,4,251,193,30,4,251,193,32,4,251,193,34,4,251,193,76,29,251,193,36,4,251,193,216,230,251,193,48,4,251,193,44,46,251,193,46,46,251,193,134,3,251,193,60,46,251,193,62,46,251,193,66,46,251,193,70,46,251,193,72,46,251,193,74,46,251,193,76,46,251,193,78,46,251,193,22,218,252,193,84,46,251,193,86,46,251,193,114,46,251,193,116,46,251,193,118,46,251,193,120,46,251,193,126,47,251,193,140,46,251,193,142,46,251,193,144,46,251,193,146,46,251,193,148,46,251,193,166,46,251,193,168,46,251,193,170,46,251,193,172,46,251,193,186,46,251,193,188,46,251,193,190,46,251,193,192,46,251,193,150,3,251,193,178,3,251,193,180,3,251,193,182,3,251,193,184,3,251,193,186,3,251,193,200,3,251,193,202,3,251,193,204,3,251,193,228,3,251,193,230,3,251,193,232,3,251,193,234,3,251,193,236,3,251,193,238,3,251,193,4,4,251,193,20,4,251,193,58,4,251,193,106,4,251,193,108,4,251,193,144,4,251,193,158,4,251,193,160,4,251,193,162,4,251,193,174,4,251,193,176,4,251,193,214,4,251,193,232,4,251,193,238,4,251,193,244,4,251,193,248,4,251,193,22,5,251,193,98,222,253,193,100,222,253,193,102,222,253,193,160,222,253,193,162,222,253,193,206,222,253,193,208,222,253,193,236,222,253,193,26,223,253,193,44,223,253,193,46,223,253,193,98,223,253,193,56,224,253,193,102,224,253,193,104,224,253,193,136,224,253,193,142,224,253,193,168,224,253,193,170,224,253,193,240,224,253,193,252,224,253,193,24,225,253,193,10,4,251,193,188,56,251,193,30,57,251,193,10,135,251,193,134,233,251,193,136,233,251,193,48,234,251,193,108,234,251,193,110,7,252,193,196,157,253,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,193,76,97,252,193,78,97,252,193,80,97,252,193,82,97,252,193,84,97,252,193,86,97,252,193,88,97,252,193,38,4,251,193,90,97,252,193,92,97,252,193,130,97,252,193,132,97,252,193,134,97,252,193,136,97,252,193,138,97,252,193,140,97,252,193,142,97,252,193,144,97,252,193,146,97,252,193,76,98,253,206,128,56,0,206,128,56,0,206,128,56,0,206,128,56,0,193,42,4,251,193,50,4,251,193,52,4,251,193,76,4,251,193,78,4,251,193,94,4,251,193,118,4,251,193,130,4,251,193,154,4,251,193,156,4,251,193,180,4,251,193,184,4,251,193,186,4,251,193,194,4,251,193,198,4,251,193,54,5,251,193,116,5,251,193,156,5,251,193,158,5,251,193,160,5,251,193,168,5,251,193,180,5,251,193,182,5,251,193,184,5,251,193,186,5,251,193,198,5,251,193,200,5,251,193,220,5,251,193,222,5,251,193,240,5,251,193,248,5,251,193,10,6,251,193,54,4,251,193,64,4,251,193,66,4,251,193,90,4,251,193,98,83,251,193,100,4,251,193,104,4,251,193,114,4,251,193,116,4,251,193,122,4,251,193,124,4,251,193,126,4,251,193,128,4,251,193,136,4,251,193,138,4,251,193,140,4,251,193,150,4,251,193,152,4,251,193,2,126,253,193,168,4,251,193,170,4,251,193,172,4,251,193,178,4,251,193,132,72,251,193,182,4,251,193,188,4,251,193,192,4,251,193,196,4,251,193,210,4,251,193,212,4,251,193,90,6,251,193,220,4,251,193,80,4,251,193,96,4,251,193,102,4,251,193,110,4,251,193,132,4,251,193,146,4,251,193,164,4,251,193,166,4,251,193,190,4,251,193,242,4,251,193,30,5,251,193,32,5,251,193,122,5,251,193,250,5,251,193,252,5,251,193,254,5,251,193,76,6,251,193,116,6,251,193,152,6,251,193,154,6,251,193,156,6,251,193,158,6,251,193,216,6,251,193,218,6,251,193,220,6,251,193,222,6,251,193,224,6,251,193,226,6,251,193,228,6,251,193,8,7,251,193,10,7,251,193,12,7,251,193,254,4,251,193,2,5,251,193,4,5,251,193,6,5,251,193,8,5,251,193,34,5,251,193,36,5,251,193,38,5,251,193,40,5,251,193,208,4,251,193,42,5,251,193,58,5,251,193,60,5,251,193,80,5,251,193,82,5,251,193,84,5,251,193,86,5,251,193,124,5,251,193,126,5,251,193,128,5,251,193,130,5,251,193,164,5,251,193,172,5,251,193,190,5,251,193,202,5,251,193,26,6,251,193,28,6,251,193,30,6,251,193,46,6,251,193,48,6,251,193,56,6,251,193,58,6,251,193,226,4,251,193,228,4,251,193,230,4,251,193,240,4,251,193,246,4,251,193,250,4,251,193,12,5,251,193,14,5,251,193,16,5,251,193,18,5,251,193,20,5,251,193,44,5,251,193,46,5,251,193,48,5,251,193,50,5,251,193,64,5,251,193,66,5,251,193,68,5,251,193,70,5,251,193,72,5,251,193,88,5,251,193,90,5,251,193,92,5,251,193,94,5,251,193,96,5,251,193,98,5,251,193,100,5,251,193,102,5,251,193,104,5,251,193,106,5,251,193,108,5,251,193,110,5,251,193,24,5,251,193,26,5,251,193,28,5,251,193,56,5,251,193,74,5,251,193,76,5,251,193,78,5,251,193,118,5,251,193,120,5,251,193,162,5,251,193,170,5,251,193,188,5,251,193,224,5,251,193,226,5,251,193,228,5,251,193,230,5,251,193,242,5,251,193,6,6,251,193,14,6,251,193,16,6,251,193,18,6,251,193,20,6,251,193,74,6,251,193,112,6,251,193,114,6,251,193,144,6,251,193,146,6,251,193,148,6,251,193,150,6,251,193,204,6,251,193,206,6,251,193,208,6,251,193,18,130,251,193,36,130,251,193,144,130,251,193,146,130,251,193,152,130,251,193,172,130,251,193,174,130,251,193,176,130,251,193,190,130,251,193,192,130,251,193,194,130,251,193,196,130,251,193,198,130,251,193,226,130,251,193,254,130,251,193,2,131,251,193,72,131,251,193,74,131,251,193,102,131,251,193,104,131,251,193,106,131,251,193,146,131,251,193,172,131,251,193,174,131,251,193,192,131,251,193,62,5,251,193,196,131,251,193,202,131,251,193,204,131,251,193,222,131,251,193,252,131,251,193,254,131,251,193,112,5,251,193,114,5,251,193,134,5,251,193,136,5,251,193,138,5,251,193,140,5,251,193,142,5,251,193,144,5,251,193,130,219,252,193,146,5,251,193,148,5,251,193,150,5,251,193,232,50,251,193,152,5,251,193,234,50,251,193,166,5,251,193,26,51,251,193,184,16,252,193,174,5,251,193,176,5,251,193,192,5,251,193,224,93,252,193,178,5,251,193,194,5,251,193,74,7,251,193,204,5,251,193,206,5,251,193,208,5,251,193,210,5,251,193,212,5,251,193,214,5,251,193,232,5,251,193,234,5,251,193,236,5,251,193,238,5,251,193,244,5,251,193,246,5,251,193,4,6,251,193,2,6,251,193,8,6,251,193,22,6,251,193,32,6,251,193,34,6,251,193,36,6,251,193,38,6,251,193,40,6,251,193,42,6,251,193,52,6,251,193,54,6,251,193,44,6,251,193,68,6,251,193,70,6,251,193,72,6,251,193,92,6,251,193,94,6,251,193,96,6,251,193,98,6,251,193,100,6,251,193,102,6,251,193,104,6,251,193,106,6,251,193,108,6,251,193,128,6,251,193,130,6,251,193,12,6,251,193,24,6,251,193,110,6,251,193,142,6,251,193,202,6,251,193,252,6,251,193,254,6,251,193,2,7,251,193,42,7,251,193,90,7,251,193,126,7,251,193,128,7,251,193,130,7,251,193,170,7,251,193,172,7,251,193,214,7,251,193,216,7,251,193,128,8,251,193,144,8,251,193,164,8,251,193,196,8,251,193,208,8,251,193,210,8,251,193,218,8,251,193,228,8,251,193,230,8,251,193,42,9,251,193,114,9,251,193,176,9,251,193,212,9,251,193,214,9,251,193,228,9,251,193,236,224,253,193,238,224,253,193,246,224,253,193,250,224,253,193,12,225,253,193,14,225,253,193,74,58,252,193,12,230,251,193,218,46,251,193,176,243,252,193,102,55,253,193,214,71,253,193,86,104,253,193,62,170,253,193,182,171,253,193,212,100,253,193,192,9,252,193,94,83,251,193,84,107,253,193,78,97,251,193,50,6,251,193,162,191,251,193,192,85,251,193,14,223,252,193,60,129,251,193,110,28,251,193,58,48,251,193,66,38,253,193,252,97,251,193,76,58,252,193,202,109,252,193,208,230,252,193,60,6,251,193,90,154,251,193,130,135,251,193,78,6,251,193,80,6,251,193,82,6,251,193,84,6,251,193,118,6,251,193,160,6,251,193,162,6,251,193,164,6,251,193,166,6,251,193,168,6,251,193,170,6,251,193,172,6,251,193,174,6,251,193,176,6,251,193,230,6,251,193,232,6,251,193,16,7,251,193,18,7,251,193,20,7,251,193,22,7,251,193,24,7,251,193,26,7,251,193,56,7,251,193,58,7,251,193,60,7,251,193,62,7,251,193,110,7,251,193,142,7,251,193,144,7,251,193,132,6,251,193,134,6,251,193,136,6,251,193,138,6,251,193,190,6,251,193,192,6,251,193,194,6,251,193,196,6,251,193,198,6,251,193,240,6,251,193,242,6,251,193,72,94,252,193,244,6,251,193,34,7,251,193,36,7,251,193,38,7,251,193,226,93,252,193,238,119,251,193,76,7,251,193,78,7,251,193,80,7,251,193,82,7,251,193,84,7,251,193,86,7,251,193,112,7,251,193,114,7,251,193,116,7,251,193,118,7,251,193,154,7,251,193,156,7,251,193,158,7,251,193,160,7,251,193,210,6,251,193,212,6,251,193,214,6,251,193,4,7,251,193,6,7,251,193,44,7,251,193,46,7,251,193,48,7,251,193,92,7,251,193,94,7,251,193,96,7,251,193,98,7,251,193,132,7,251,193,134,7,251,193,174,7,251,193,176,7,251,193,178,7,251,193,180,7,251,193,194,7,251,193,196,7,251,193,198,7,251,193,218,7,251,193,12,8,251,193,14,8,251,193,16,8,251,193,36,8,251,193,54,8,251,193,66,8,251,193,72,8,251,193,88,8,251,193,166,8,251,193,176,8,251,193,214,48,251,193,216,48,251,193,218,48,251,193,220,48,251,193,222,48,251,193,238,48,251,193,240,48,251,193,242,48,251,193,244,48,251,193,2,49,251,193,4,49,251,193,6,49,251,193,8,49,251,193,10,49,251,193,22,49,251,193,32,49,251,193,36,49,251,193,40,49,251,193,46,49,251,193,62,49,251,193,66,49,251,193,68,49,251,193,70,49,251,193,72,49,251,193,74,49,251,193,82,49,251,193,84,49,251,193,86,49,251,193,88,49,251,193,246,6,251,193,104,49,251,193,106,49,251,193,14,7,251,193,50,7,251,193,52,7,251,193,54,7,251,193,100,7,251,193,102,7,251,193,104,7,251,193,106,7,251,193,108,7,251,193,136,7,251,193,138,7,251,193,140,7,251,193,182,7,251,193,200,7,251,193,230,7,251,193,232,7,251,193,236,7,251,193,240,7,251,193,28,8,251,193,58,8,251,193,60,8,251,193,104,8,251,193,108,8,251,193,130,8,251,193,180,8,251,193,212,8,251,193,220,8,251,193,226,8,251,193,22,9,251,193,150,9,251,193,182,9,251,193,184,9,251,193,72,7,251,193,148,7,251,193,150,7,251,193,152,7,251,193,186,7,251,193,234,7,251,193,242,7,251,193,20,8,251,193,50,8,251,193,152,8,251,193,4,9,251,193,6,9,251,193,30,9,251,193,54,9,251,193,190,9,251,193,34,10,251,193,202,10,251,193,204,10,251,193,206,10,251,193,208,10,251,193,210,10,251,193,212,10,251,193,214,10,251,193,216,10,251,193,130,11,251,193,132,11,251,193,134,11,251,193,136,11,251,193,138,11,251,193,140,11,251,193,142,11,251,193,144,11,251,193,112,95,252,193,120,7,251,193,114,95,252,193,116,95,252,193,118,95,252,193,178,95,252,193,180,95,252,193,182,95,252,193,184,95,252,193,186,95,252,193,188,95,252,193,190,95,252,193,192,95,252,193,194,95,252,193,196,95,252,193,198,95,252,193,200,95,252,193,202,95,252,193,204,95,252,193,206,95,252,193,208,95,252,193,210,95,252,193,212,95,252,193,214,95,252,193,216,95,252,193,218,95,252,193,220,95,252,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,193,162,7,251,193,164,7,251,193,166,7,251,193,208,7,251,193,210,7,251,193,220,7,251,193,222,7,251,193,224,7,251,193,226,7,251,193,238,7,251,193,244,7,251,193,246,7,251,193,250,7,251,193,254,7,251,193,2,8,251,193,4,8,251,193,6,8,251,193,10,8,251,193,22,8,251,193,24,8,251,193,26,8,251,193,34,8,251,193,40,8,251,193,42,8,251,193,44,8,251,193,52,8,251,193,56,8,251,193,62,8,251,193,68,8,251,193,70,8,251,193,76,8,251,193,78,8,251,193,188,7,251,193,116,140,252,193,118,140,252,193,120,140,252,193,126,140,252,193,128,140,252,193,130,140,252,193,132,140,252,193,140,140,252,193,142,140,252,193,148,140,252,193,154,140,252,193,158,140,252,193,160,140,252,193,162,140,252,193,164,140,252,193,182,140,252,193,184,140,252,193,186,140,252,193,188,140,252,193,222,140,252,193,224,140,252,193,226,140,252,193,228,140,252,193,230,140,252,193,232,140,252,193,234,140,252,193,236,140,252,193,238,140,252,193,240,140,252,193,242,140,252,193,244,140,252,193,26,154,251,193,228,7,251,193,38,154,251,193,106,102,251,193,40,154,251,193,54,154,251,193,62,154,251,193,64,154,251,193,66,154,251,193,68,154,251,193,72,154,251,193,80,154,251,193,84,154,251,193,86,154,251,193,88,154,251,193,96,154,251,193,98,154,251,193,100,154,251,193,108,154,251,193,110,154,251,193,112,154,251,193,114,154,251,193,122,154,251,193,126,154,251,193,128,154,251,193,130,154,251,193,132,154,251,193,136,154,251,193,138,154,251,193,140,154,251,193,142,154,251,193,146,154,251,193,80,8,251,193,102,8,251,193,116,8,251,193,118,8,251,193,120,8,251,193,122,8,251,193,124,8,251,193,126,8,251,193,138,8,251,193,140,8,251,193,142,8,251,193,154,8,251,193,156,8,251,193,158,8,251,193,160,8,251,193,162,8,251,193,168,8,251,193,170,8,251,193,172,8,251,193,174,8,251,193,216,162,251,193,182,8,251,193,184,8,251,193,186,8,251,193,188,8,251,193,192,8,251,193,194,8,251,193,198,8,251,193,202,8,251,193,204,8,251,193,206,8,251,193,214,8,251,193,178,8,251,193,190,8,251,193,200,8,251,193,248,8,251,193,20,9,251,193,44,9,251,193,46,9,251,193,48,9,251,193,70,9,251,193,72,9,251,193,92,9,251,193,94,9,251,193,96,9,251,193,116,9,251,193,140,9,251,193,142,9,251,193,144,9,251,193,146,9,251,193,148,9,251,193,178,9,251,193,180,9,251,193,216,9,251,193,218,9,251,193,220,9,251,193,222,9,251,193,252,9,251,193,254,9,251,193,30,10,251,193,32,10,251,193,40,10,251,193,42,10,251,193,56,10,251,193,222,8,251,193,240,8,251,193,242,8,251,193,8,9,251,193,10,9,251,193,12,9,251,193,14,9,251,193,16,9,251,193,32,9,251,193,34,9,251,193,36,9,251,193,38,9,251,193,56,9,251,193,58,9,251,193,60,9,251,193,62,9,251,193,64,9,251,193,66,9,251,193,68,9,251,193,86,9,251,193,88,9,251,193,90,9,251,193,100,9,251,193,210,101,251,193,102,9,251,193,104,9,251,193,106,9,251,193,108,9,251,193,110,9,251,193,112,9,251,193,118,9,251,193,120,9,251,193,232,8,251,193,234,8,251,193,236,8,251,193,238,8,251,193,250,8,251,193,252,8,251,193,254,8,251,193,2,9,251,193,24,9,251,193,26,9,251,193,28,9,251,193,50,9,251,193,52,9,251,193,74,9,251,193,76,9,251,193,78,9,251,193,80,9,251,193,82,9,251,193,84,9,251,193,98,9,251,193,152,9,251,193,154,9,251,193,186,9,251,193,188,9,251,193,4,10,251,193,52,10,251,193,68,10,251,193,70,10,251,193,74,10,251,193,76,10,251,193,78,10,251,193,80,10,251,193,244,8,251,193,246,8,251,193,40,9,251,193,138,9,251,193,174,9,251,193,250,9,251,193,48,10,251,193,136,10,251,193,214,11,251,193,216,11,251,193,218,11,251,193,220,11,251,193,226,12,251,193,228,12,251,193,230,12,251,193,232,12,251,193,234,12,251,193,236,12,251,193,238,12,251,193,240,12,251,193,242,12,251,193,40,14,251,193,42,14,251,193,44,14,251,193,46,14,251,193,48,14,251,193,50,14,251,193,132,15,251,193,134,15,251,193,136,15,251,193,138,15,251,193,140,15,251,193,122,9,251,193,124,9,251,193,126,9,251,193,128,9,251,193,130,9,251,193,132,9,251,193,134,9,251,193,136,9,251,193,156,9,251,193,158,9,251,193,160,9,251,193,162,9,251,193,164,9,251,193,166,9,251,193,168,9,251,193,170,9,251,193,162,124,252,193,22,102,251,193,172,9,251,193,192,9,251,193,194,9,251,193,196,9,251,193,198,9,251,193,200,9,251,193,202,9,251,193,186,154,251,193,204,9,251,193,206,9,251,193,208,9,251,193,20,130,251,193,224,9,251,193,226,9,251,193,210,9,251,193,232,9,251,193,234,9,251,193,236,9,251,193,238,9,251,193,240,9,251,193,242,9,251,193,244,9,251,193,246,9,251,193,248,9,251,193,194,74,251,193,6,10,251,193,8,10,251,193,10,10,251,193,12,10,251,193,14,10,251,193,16,10,251,193,18,10,251,193,20,10,251,193,140,102,251,193,22,10,251,193,142,102,251,193,24,10,251,193,26,10,251,193,28,10,251,193,160,102,251,193,44,10,251,193,64,231,251,193,200,220,253,193,46,10,251,193,54,10,251,193,62,10,251,193,230,9,251,193,36,10,251,193,38,10,251,193,50,10,251,193,58,10,251,193,88,10,251,193,138,10,251,193,140,10,251,193,142,10,251,193,236,10,251,193,238,10,251,193,222,11,251,193,224,11,251,193,226,11,251,193,228,11,251,193,230,11,251,193,232,11,251,193,244,12,251,193,246,12,251,193,248,12,251,193,250,12,251,193,252,12,251,193,254,12,251,193,2,13,251,193,4,13,251,193,56,14,251,193,58,14,251,193,60,14,251,193,62,14,251,193,64,14,251,193,148,15,251,193,150,15,251,193,2,10,251,193,148,10,251,193,252,10,251,193,254,10,251,193,244,11,251,193,246,11,251,193,248,11,251,193,250,11,251,193,252,11,251,193,254,11,251,193,2,12,251,193,32,13,251,193,34,13,251,193,36,13,251,193,38,13,251,193,40,13,251,193,42,13,251,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,193,60,10,251,193,144,10,251,193,146,10,251,193,240,10,251,193,242,10,251,193,244,10,251,193,246,10,251,193,248,10,251,193,250,10,251,193,234,11,251,193,236,11,251,193,238,11,251,193,240,11,251,193,242,11,251,193,6,13,251,193,8,13,251,193,10,13,251,193,12,13,251,193,14,13,251,193,16,13,251,193,18,13,251,193,20,13,251,193,22,13,251,193,24,13,251,193,26,13,251,193,28,13,251,193,30,13,251,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,193,64,10,251,193,66,10,251,193,72,10,251,193,82,10,251,193,84,10,251,193,86,10,251,193,130,10,251,193,132,10,251,193,134,10,251,193,218,10,251,193,220,10,251,193,222,10,251,193,224,10,251,193,226,10,251,193,40,42,251,193,228,10,251,193,230,10,251,193,214,47,251,193,228,154,251,193,232,10,251,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,193,90,10,251,193,92,10,251,193,94,10,251,193,96,10,251,193,98,10,251,193,100,10,251,193,102,10,251,193,104,10,251,193,106,10,251,193,108,10,251,193,110,10,251,193,112,10,251,193,114,10,251,193,116,10,251,193,118,10,251,193,120,10,251,193,122,10,251,193,124,10,251,193,126,10,251,193,128,10,251,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,0,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,32,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,193,128,11,251,193,114,12,251,193,116,12,251,193,118,12,251,193,120,12,251,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,193,146,11,251,193,122,12,251,193,124,12,251,193,126,12,251,193,128,12,251,193,130,12,251,193,132,12,251,193,134,12,251,193,136,12,251,193,184,13,251,193,186,13,251,193,188,13,251,193,190,13,251,193,192,13,251,193,194,13,251,193,196,13,251,193,198,13,251,193,200,13,251,193,202,13,251,193,204,13,251,193,206,13,251,193,208,13,251,193,210,13,251,193,254,14,251,193,2,15,251,193,4,15,251,193,6,15,251,193,8,15,251,193,10,15,251,193,12,15,251,193,14,15,251,193,16,15,251,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,206,64,0,0,193,216,27,251,193,208,11,251,193,210,11,251,193,212,11,251,193,138,12,251,193,140,12,251,193,142,12,251,193,144,12,251,193,146,12,251,193,148,12,251,193,150,12,251,193,152,12,251,193,154,12,251,193,156,12,251,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,206,96,0,0,193,158,12,251,193,160,12,251,193,162,12,251,193,164,12,251,193,166,12,251,193,168,12,251,193,170,12,251,193,172,12,251,193,174,12,251,193,176,12,251,193,178,12,251,193,180,12,251,193,182,12,251,193,184,12,251,193,186,12,251,193,188,12,251,193,190,12,251,193,192,12,251,193,194,12,251,193,196,12,251,193,198,12,251,193,200,12,251,193,202,12,251,193,204,12,251,193,206,12,251,193,208,12,251,193,210,12,251,193,212,12,251,193,214,12,251,193,216,12,251,193,218,12,251,193,220,12,251,193,222,12,251,193,224,12,251,193,46,58,251,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,128,0,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,160,0,0,206,160,0,0,206,160,0,0,206,160,0,0,193,116,129,251,193,24,14,251,193,26,14,251,193,28,14,251,193,30,14,251,193,32,14,251,193,34,14,251,193,36,14,251,193,38,14,251,193,24,15,251,193,26,15,251,193,28,15,251,193,30,15,251,193,32,15,251,193,34,15,251,193,36,15,251,193,38,15,251,193,40,15,251,193,42,15,251,193,44,15,251,193,46,15,251,193,48,15,251,193,50,15,251,193,52,15,251,193,54,15,251,193,56,15,251,193,58,15,251,193,60,15,251,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,206,192,0,0,193,172,15,251,193,174,15,251,193,176,15,251,193,178,15,251,193,180,15,251,193,182,15,251,193,184,15,251,193,186,15,251,193,188,15,251,193,190,15,251,193,192,15,251,193,194,15,251,193,196,15,251,193,198,15,251,193,200,15,251,193,202,15,251,193,204,15,251,193,206,15,251,193,208,15,251,193,210,15,251,193,212,15,251,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,206,224,0,0,193,214,15,251,193,216,15,251,193,218,15,251,193,220,15,251,193,222,15,251,193,224,15,251,193,226,15,251,193,228,15,251,193,230,15,251,193,232,15,251,193,136,17,251,193,138,17,251,193,140,17,251,193,142,17,251,193,144,17,251,193,146,17,251,193,148,17,251,193,150,17,251,193,250,18,251,193,252,18,251,193,254,18,251,193,2,19,251,193,4,19,251,193,6,19,251,193,8,19,251,193,10,19,251,193,12,19,251,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,0,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,193,18,15,251,193,20,15,251,193,22,15,251,193,144,16,251,193,26,18,251,193,146,16,251,193,148,16,251,193,150,16,251,193,152,16,251,193,154,16,251,193,156,16,251,193,158,16,251,193,160,16,251,193,162,16,251,193,28,18,251,193,30,18,251,193,32,18,251,193,34,18,251,193,36,18,251,193,104,19,251,193,106,19,251,193,108,19,251,193,110,19,251,193,112,19,251,193,114,19,251,193,116,19,251,193,118,19,251,193,156,20,251,193,158,20,251,193,160,20,251,193,162,20,251,193,164,20,251,193,62,15,251,193,64,15,251,193,66,15,251,193,68,15,251,193,70,15,251,193,72,15,251,193,74,15,251,193,76,15,251,193,78,15,251,193,80,15,251,193,82,15,251,193,84,15,251,193,86,15,251,193,88,15,251,193,90,15,251,193,92,15,251,193,94,15,251,193,96,15,251,193,98,15,251,193,100,15,251,193,102,15,251,193,104,15,251,193,106,15,251,193,108,15,251,193,110,15,251,193,112,15,251,193,114,15,251,193,116,15,251,193,118,15,251,193,120,15,251,193,122,15,251,193,124,15,251,193,126,15,251,193,128,15,251,193,130,15,251,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,193,142,15,251,193,144,15,251,193,146,15,251,193,48,17,251,193,50,17,251,193,52,17,251,193,54,17,251,193,56,17,251,193,58,17,251,193,60,17,251,193,62,17,251,193,174,18,251,193,176,18,251,193,178,18,251,193,180,18,251,193,182,18,251,193,184,18,251,193,186,18,251,193,188,18,251,193,190,18,251,193,192,18,251,193,194,18,251,193,236,19,251,193,238,19,251,193,240,19,251,193,242,19,251,193,244,19,251,193,246,19,251,193,248,19,251,193,250,19,251,193,252,19,251,193,254,19,251,193,152,15,251,193,154,15,251,193,156,15,251,193,158,15,251,193,160,15,251,193,162,15,251,193,164,15,251,193,166,15,251,193,168,15,251,193,170,15,251,193,66,17,251,193,68,17,251,193,70,17,251,193,72,17,251,193,74,17,251,193,76,17,251,193,78,17,251,193,80,17,251,193,82,17,251,193,84,17,251,193,86,17,251,193,88,17,251,193,90,17,251,193,92,17,251,193,94,17,251,193,96,17,251,193,98,17,251,193,100,17,251,193,102,17,251,193,198,18,251,193,200,18,251,193,202,18,251,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,32,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,64,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,206,160,1,0,193,174,157,253,193,122,18,251,193,124,18,251,193,126,18,251,193,128,18,251,193,130,18,251,193,132,18,251,193,134,18,251,193,136,18,251,193,138,18,251,193,140,18,251,193,142,18,251,193,144,18,251,193,146,18,251,193,46,17,251,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,206,96,1,0,193,212,18,251,193,214,18,251,193,216,18,251,193,218,18,251,193,220,18,251,193,222,18,251,193,224,18,251,193,226,18,251,193,228,18,251,193,230,18,251,193,232,18,251,193,234,18,251,193,236,18,251,193,238,18,251,193,240,18,251,193,242,18,251,193,244,18,251,193,246,18,251,193,248,18,251,193,28,20,251,193,30,20,251,193,32,20,251,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,206,128,1,0,193,148,18,251,193,150,18,251,193,152,18,251,193,154,18,251,193,156,18,251,193,158,18,251,193,160,18,251,193,162,18,251,193,164,18,251,193,166,18,251,193,168,18,251,193,170,18,251,193,172,18,251,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,193,204,18,251,193,206,18,251,193,208,18,251,193,210,18,251,193,2,20,251,193,4,20,251,193,6,20,251,193,8,20,251,193,10,20,251,193,12,20,251,193,14,20,251,193,16,20,251,193,18,20,251,193,20,20,251,193,22,20,251,193,24,20,251,193,26,20,251,193,58,21,251,193,60,21,251,193,62,21,251,193,64,21,251,193,66,21,251,193,68,21,251,193,118,22,251,193,120,22,251,193,122,22,251,193,124,22,251,193,126,22,251,193,128,22,251,193,130,22,251,193,132,22,251,193,134,22,251,193,14,19,251,193,16,19,251,193,66,20,251,193,68,20,251,193,70,20,251,193,72,20,251,193,74,20,251,193,76,20,251,193,78,20,251,193,80,20,251,193,104,21,251,193,106,21,251,193,108,21,251,193,170,22,251,193,172,22,251,193,174,22,251,193,176,22,251,193,178,22,251,193,180,22,251,193,142,23,251,193,144,23,251,193,146,23,251,193,148,23,251,193,150,23,251,193,152,23,251,193,154,23,251,193,40,24,251,193,42,24,251,193,44,24,251,193,46,24,251,193,160,24,251,193,162,24,251,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,192,1,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,206,224,1,0,193,36,28,251,193,170,19,251,193,172,19,251,193,174,19,251,193,176,19,251,193,178,19,251,193,180,19,251,193,182,19,251,193,184,19,251,193,186,19,251,193,188,19,251,193,190,19,251,193,192,19,251,193,194,19,251,193,196,19,251,193,198,19,251,193,200,19,251,193,202,19,251,193,204,19,251,193,206,19,251,193,208,19,251,193,210,19,251,193,212,19,251,193,214,19,251,193,50,101,251,193,226,107,252,193,216,19,251,193,218,19,251,193,220,19,251,193,222,19,251,193,224,19,251,193,226,19,251,193,228,19,251,193,230,19,251,193,232,19,251,193,234,19,251,193,206,115,252,193,170,20,251,193,172,20,251,193,174,20,251,193,176,20,251,193,178,20,251,193,180,20,251,193,182,20,251,193,184,20,251,193,186,20,251,193,188,20,251,193,190,20,251,193,192,20,251,193,194,20,251,193,196,20,251,193,198,20,251,193,200,20,251,193,202,20,251,193,204,20,251,193,206,20,251,193,208,20,251,193,210,20,251,193,34,20,251,193,36,20,251,193,38,20,251,193,40,20,251,193,42,20,251,193,44,20,251,193,46,20,251,193,48,20,251,193,50,20,251,193,52,20,251,193,54,20,251,193,56,20,251,193,58,20,251,193,60,20,251,193,62,20,251,193,64,20,251,193,70,21,251,193,72,21,251,193,74,21,251,193,76,21,251,193,78,21,251,193,80,21,251,193,82,21,251,193,84,21,251,193,86,21,251,193,88,21,251,193,90,21,251,193,92,21,251,193,94,21,251,193,96,21,251,193,98,21,251,193,100,21,251,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,0,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,193,166,20,251,193,168,20,251,193,188,21,251,193,190,21,251,193,192,21,251,193,194,21,251,193,196,21,251,193,198,21,251,193,200,21,251,193,202,21,251,193,204,21,251,193,206,21,251,193,208,21,251,193,210,21,251,193,212,21,251,193,214,21,251,193,216,21,251,193,236,22,251,193,238,22,251,193,240,22,251,193,242,22,251,193,244,22,251,193,246,22,251,193,248,22,251,193,250,22,251,193,190,23,251,193,192,23,251,193,194,23,251,193,196,23,251,193,74,24,251,193,76,24,251,193,180,24,251,193,212,20,251,193,214,20,251,193,216,20,251,193,218,20,251,193,220,20,251,193,222,20,251,193,224,20,251,193,226,20,251,193,228,20,251,193,230,20,251,193,232,20,251,193,234,20,251,193,236,20,251,193,238,20,251,193,240,20,251,193,242,20,251,193,244,20,251,193,246,20,251,193,248,20,251,193,250,20,251,193,252,20,251,193,254,20,251,193,2,21,251,193,4,21,251,193,6,21,251,193,8,21,251,193,10,21,251,193,12,21,251,193,14,21,251,193,16,21,251,193,18,21,251,193,20,21,251,193,22,21,251,193,24,21,251,193,140,123,252,193,26,21,251,193,28,21,251,193,218,21,251,193,30,21,251,193,32,21,251,193,34,21,251,193,36,21,251,193,38,21,251,193,40,21,251,193,42,21,251,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,193,62,22,251,193,64,22,251,193,66,22,251,193,68,22,251,193,70,22,251,193,72,22,251,193,74,22,251,193,76,22,251,193,78,22,251,193,80,22,251,193,82,22,251,193,84,22,251,193,86,22,251,193,88,22,251,193,90,22,251,193,92,22,251,193,94,22,251,193,96,22,251,193,98,22,251,193,100,22,251,193,102,22,251,193,44,21,251,193,210,189,251,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,193,46,21,251,193,48,21,251,193,50,21,251,193,52,21,251,193,54,21,251,193,106,22,251,193,108,22,251,193,110,22,251,193,112,22,251,193,114,22,251,193,116,22,251,193,88,23,251,193,90,23,251,193,92,23,251,193,94,23,251,193,96,23,251,193,10,24,251,193,12,24,251,193,14,24,251,193,16,24,251,193,130,24,251,193,132,24,251,193,134,24,251,193,232,24,251,193,234,24,251,193,236,24,251,193,76,25,251,193,78,25,251,193,80,25,251,193,132,25,251,193,180,25,251,193,128,26,251,193,102,21,251,193,142,22,251,193,144,22,251,193,146,22,251,193,148,22,251,193,150,22,251,193,152,22,251,193,154,22,251,193,156,22,251,193,158,22,251,193,160,22,251,193,162,22,251,193,164,22,251,193,166,22,251,193,168,22,251,193,118,23,251,193,120,23,251,193,122,23,251,193,124,23,251,193,126,23,251,193,128,23,251,193,130,23,251,193,132,23,251,193,134,23,251,193,136,23,251,193,138,23,251,193,140,23,251,193,28,24,251,193,30,24,251,193,32,24,251,193,34,24,251,193,36,24,251,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,206,32,2,0,193,182,22,251,193,182,21,251,193,184,21,251,193,184,22,251,193,186,22,251,193,186,21,251,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,206,64,2,0,193,122,140,252,193,52,22,251,193,54,22,251,193,250,65,252,193,96,221,253,193,56,22,251,193,58,22,251,193,60,22,251,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,206,128,2,0,193,104,22,251,193,48,23,251,193,198,23,251,193,196,74,251,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,193,136,22,251,193,138,22,251,193,140,22,251,193,98,23,251,193,100,23,251,193,102,23,251,193,104,23,251,193,106,23,251,193,108,23,251,193,110,23,251,193,112,23,251,193,114,23,251,193,116,23,251,193,18,24,251,193,20,24,251,193,22,24,251,193,24,24,251,193,26,24,251,193,136,24,251,193,138,24,251,193,140,24,251,193,142,24,251,193,144,24,251,193,146,24,251,193,148,24,251,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,206,96,2,0,193,156,23,251,193,158,23,251,193,160,23,251,193,162,23,251,193,164,23,251,193,166,23,251,193,168,23,251,193,170,23,251,193,172,23,251,193,174,23,251,193,176,23,251,193,178,23,251,193,180,23,251,193,182,23,251,193,184,23,251,193,48,24,251,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,206,160,2,0,193,198,74,251,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,193,50,24,251,193,52,24,251,193,54,24,251,193,56,24,251,193,58,24,251,193,60,24,251,193,62,24,251,193,64,24,251,193,66,24,251,193,68,24,251,193,70,24,251,193,186,23,251,193,72,24,251,193,168,24,251,193,170,24,251,193,172,24,251,193,174,24,251,193,176,24,251,193,178,24,251,193,30,25,251,193,32,25,251,193,34,25,251,193,102,25,251,193,144,25,251,193,146,25,251,193,148,25,251,193,150,25,251,193,194,25,251,193,196,25,251,193,212,25,251,193,240,25,251,193,4,26,251,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,206,192,2,0,193,78,24,251,193,80,24,251,193,82,24,251,193,84,24,251,193,86,24,251,193,88,24,251,193,90,24,251,193,92,24,251,193,94,24,251,193,96,24,251,193,98,24,251,193,100,24,251,193,102,24,251,193,104,24,251,193,106,24,251,193,108,24,251,193,110,24,251,193,112,24,251,193,114,24,251,193,116,24,251,193,166,36,253,193,118,24,251,193,120,24,251,193,122,24,251,193,38,24,251,193,150,24,251,193,152,24,251,193,154,24,251,193,156,24,251,193,158,24,251,193,6,25,251,193,8,25,251,193,10,25,251,193,12,25,251,193,14,25,251,193,16,25,251,193,18,25,251,193,92,25,251,193,94,25,251,193,96,25,251,193,140,25,251,193,142,25,251,193,210,25,251,193,234,25,251,193,236,25,251,193,246,25,251,193,16,26,251,193,18,26,251,193,20,26,251,193,28,26,251,193,30,26,251,193,32,26,251,193,34,26,251,193,36,26,251,193,90,26,251,193,92,26,251,193,124,24,251,193,126,24,251,193,128,24,251,193,184,24,251,193,186,24,251,193,188,24,251,193,190,24,251,193,192,24,251,193,194,24,251,193,196,24,251,193,198,24,251,193,200,24,251,193,202,24,251,193,204,24,251,193,206,24,251,193,208,24,251,193,210,24,251,193,212,24,251,193,214,24,251,193,216,24,251,193,218,24,251,193,220,24,251,193,222,24,251,193,224,24,251,193,226,24,251,193,228,24,251,193,230,24,251,193,42,25,251,193,44,25,251,193,46,25,251,193,48,25,251,193,50,25,251,193,164,24,251,193,166,24,251,193,20,25,251,193,22,25,251,193,24,25,251,193,26,25,251,193,28,25,251,193,98,25,251,193,100,25,251,193,238,25,251,193,38,26,251,193,96,26,251,193,140,26,251,193,218,26,251,193,250,26,251,193,14,27,251,193,16,27,251,193,50,27,251,193,52,27,251,193,96,27,251,193,98,27,251,193,156,27,251,193,226,27,251,193,254,27,251,193,2,28,251,193,4,28,251,193,16,28,251,193,18,28,251,193,34,28,251,193,126,28,251,193,128,28,251,193,130,28,251,193,182,24,251,193,36,25,251,193,38,25,251,193,40,25,251,193,104,25,251,193,106,25,251,193,108,25,251,193,152,25,251,193,154,25,251,193,214,25,251,193,250,25,251,193,52,26,251,193,108,26,251,193,168,26,251,193,196,26,251,193,126,27,251,193,202,27,251,193,204,27,251,193,214,27,251,193,228,27,251,193,230,27,251,193,134,28,251,193,136,28,251,193,138,28,251,193,182,28,251,193,98,29,251,193,202,29,251,193,12,30,251,193,14,30,251,193,24,30,251,193,38,30,251,193,70,30,251,206,224,2,0,206,224,2,0,206,224,2,0,206,224,2,0,193,82,25,251,193,84,25,251,193,86,25,251,193,88,25,251,193,90,25,251,193,134,25,251,193,136,25,251,193,138,25,251,193,182,25,251,193,184,25,251,193,186,25,251,193,188,25,251,193,190,25,251,193,192,25,251,193,228,25,251,193,230,25,251,193,232,25,251,193,244,25,251,193,248,25,251,193,62,26,251,193,130,26,251,193,160,26,251,193,212,26,251,193,214,26,251,193,236,26,251,193,238,26,251,193,8,27,251,193,38,27,251,193,52,25,251,193,54,25,251,193,8,66,252,193,56,25,251,193,58,25,251,193,60,25,251,193,62,25,251,193,64,25,251,193,66,25,251,193,68,25,251,193,70,25,251,193,72,25,251,193,74,25,251,193,110,25,251,193,112,25,251,193,114,25,251,193,116,25,251,193,118,25,251,193,120,25,251,193,122,25,251,193,124,25,251,193,126,25,251,193,128,25,251,193,156,25,251,193,158,25,251,193,160,25,251,193,162,25,251,193,164,25,251,193,166,25,251,193,168,25,251,193,130,25,251,193,170,25,251,193,172,25,251,193,174,25,251,193,176,25,251,193,178,25,251,193,198,25,251,193,200,25,251,193,202,25,251,193,204,25,251,193,206,25,251,193,208,25,251,193,216,25,251,193,218,25,251,193,220,25,251,193,222,25,251,193,224,25,251,193,226,25,251,193,242,25,251,193,78,233,251,193,252,25,251,193,254,25,251,193,170,14,253,193,2,26,251,193,14,26,251,193,24,26,251,193,26,26,251,193,54,26,251,193,56,26,251,193,58,26,251,193,60,26,251,193,78,26,251,193,80,26,251,193,82,26,251,193,6,26,251,193,8,26,251,193,10,26,251,193,12,26,251,193,22,26,251,193,40,26,251,193,42,26,251,193,44,26,251,193,46,26,251,193,48,26,251,193,50,26,251,193,64,26,251,193,66,26,251,193,68,26,251,193,70,26,251,193,72,26,251,193,74,26,251,193,76,26,251,193,98,26,251,193,100,26,251,193,102,26,251,193,104,26,251,193,106,26,251,193,142,26,251,193,144,26,251,193,146,26,251,193,164,26,251,193,166,26,251,193,190,26,251,193,192,26,251,193,194,26,251,193,220,26,251,193,84,26,251,193,86,26,251,193,88,26,251,193,110,26,251,193,112,26,251,193,114,26,251,193,116,26,251,193,118,26,251,193,120,26,251,193,122,26,251,193,124,26,251,193,126,26,251,193,148,26,251,193,150,26,251,193,152,26,251,193,154,26,251,193,170,26,251,193,172,26,251,193,174,26,251,193,176,26,251,193,178,26,251,193,180,26,251,193,182,26,251,193,198,26,251,193,200,26,251,193,202,26,251,193,204,26,251,193,206,26,251,193,208,26,251,193,210,26,251,193,224,26,251,193,226,26,251,193,94,26,251,193,132,26,251,193,134,26,251,193,136,26,251,193,138,26,251,193,162,26,251,193,186,26,251,193,188,26,251,193,216,26,251,193,240,26,251,193,242,26,251,193,244,26,251,193,246,26,251,193,248,26,251,193,10,27,251,193,12,27,251,193,42,27,251,193,44,27,251,193,46,27,251,193,48,27,251,193,74,27,251,193,94,27,251,193,120,27,251,193,122,27,251,193,124,27,251,193,144,27,251,193,146,27,251,193,208,27,251,193,242,27,251,193,244,27,251,193,246,27,251,193,252,27,251,193,156,26,251,193,184,26,251,193,6,27,251,193,68,27,251,193,70,27,251,193,72,27,251,193,152,27,251,193,28,28,251,193,116,28,251,193,8,29,251,193,36,29,251,193,54,29,251,193,58,29,251,193,74,29,251,193,198,29,251,193,132,30,251,193,134,30,251,193,150,30,251,193,202,30,251,193,224,30,251,193,248,30,251,193,16,31,251,193,92,31,251,193,124,31,251,193,126,31,251,193,128,31,251,193,130,31,251,193,184,31,251,193,186,31,251,193,188,31,251,193,242,31,251,193,52,32,251,193,222,26,251,193,252,26,251,193,18,27,251,193,76,27,251,193,164,27,251,193,188,27,251,193,190,27,251,193,194,27,251,193,210,27,251,193,248,27,251,193,6,28,251,193,74,28,251,193,78,28,251,193,80,28,251,193,82,28,251,193,84,28,251,193,94,28,251,193,102,28,251,193,104,28,251,193,106,28,251,193,108,28,251,193,132,28,251,193,154,28,251,193,156,28,251,193,158,28,251,193,178,28,251,193,204,28,251,193,180,28,251,193,206,28,251,193,226,28,251,193,18,29,251,193,20,29,251,193,228,26,251,193,230,26,251,193,232,26,251,193,234,26,251,193,254,26,251,193,2,27,251,193,4,27,251,193,20,27,251,193,22,27,251,193,24,27,251,193,26,27,251,193,28,27,251,193,30,27,251,193,32,27,251,193,34,27,251,193,36,27,251,193,54,27,251,193,56,27,251,193,58,27,251,193,78,27,251,193,60,27,251,193,62,27,251,193,64,27,251,193,66,27,251,193,80,27,251,193,82,27,251,193,84,27,251,193,86,27,251,193,88,27,251,193,90,27,251,193,92,27,251,193,100,27,251,193,40,27,251,193,116,27,251,193,118,27,251,193,136,27,251,193,138,27,251,193,140,27,251,193,142,27,251,193,154,27,251,193,174,27,251,193,30,28,251,193,42,28,251,193,118,28,251,193,120,28,251,193,166,28,251,193,214,28,251,193,216,28,251,193,232,28,251,193,10,29,251,193,38,29,251,193,84,29,251,193,92,29,251,193,94,29,251,193,102,29,251,193,44,30,251,193,136,30,251,193,170,30,251,193,172,30,251,193,20,31,251,193,42,31,251,193,50,31,251,193,66,31,251,193,94,31,251,193,102,27,251,193,104,27,251,193,106,27,251,193,108,27,251,193,110,27,251,193,112,27,251,193,128,27,251,193,114,27,251,193,130,27,251,193,132,27,251,193,134,27,251,193,148,27,251,193,116,159,251,193,158,27,251,193,150,27,251,193,160,27,251,193,162,27,251,193,166,27,251,193,168,27,251,193,170,27,251,193,172,27,251,193,176,27,251,193,178,27,251,193,180,27,251,193,182,27,251,193,184,27,251,193,186,27,251,193,192,27,251,193,196,27,251,193,198,27,251,193,200,27,251,193,206,27,251,193,106,21,252,193,108,21,252,193,110,21,252,193,130,21,252,193,132,21,252,193,134,21,252,193,136,21,252,193,138,21,252,193,140,21,252,193,142,21,252,193,152,21,252,193,154,21,252,193,164,21,252,193,166,21,252,193,168,21,252,193,170,21,252,193,172,21,252,193,182,21,252,193,192,21,252,193,194,21,252,193,230,21,252,193,232,21,252,193,242,21,252,193,244,21,252,193,246,21,252,193,248,21,252,193,234,21,252,193,6,22,252,193,8,22,252,193,212,27,251,193,10,22,252,193,12,22,252,193,218,27,251,193,220,27,251,193,222,27,251,193,224,27,251,193,232,27,251,193,234,27,251,193,236,27,251,193,238,27,251,193,240,27,251,193,250,27,251,193,8,28,251,193,10,28,251,193,12,28,251,193,20,28,251,193,22,28,251,193,24,28,251,193,26,28,251,193,32,28,251,193,38,28,251,193,40,28,251,193,44,28,251,193,46,28,251,193,48,28,251,193,50,28,251,193,52,28,251,193,54,28,251,193,56,28,251,193,58,28,251,193,60,28,251,193,64,28,251,193,68,28,251,193,70,28,251,193,14,28,251,193,62,28,251,193,66,28,251,193,72,28,251,193,100,28,251,193,122,28,251,193,124,28,251,193,152,28,251,193,168,28,251,193,170,28,251,193,172,28,251,193,174,28,251,193,196,28,251,193,198,28,251,193,200,28,251,193,218,28,251,193,220,28,251,193,234,28,251,193,236,28,251,193,238,28,251,193,12,29,251,193,14,29,251,193,16,29,251,193,40,29,251,193,42,29,251,193,56,29,251,193,60,29,251,193,62,29,251,193,64,29,251,193,96,29,251,193,100,29,251,193,130,29,251,193,76,28,251,193,86,28,251,193,88,28,251,193,90,28,251,193,92,28,251,193,96,28,251,193,98,28,251,193,180,78,253,193,112,28,251,193,114,28,251,193,140,28,251,193,142,28,251,193,144,28,251,193,146,28,251,193,148,28,251,193,150,28,251,193,160,28,251,193,162,28,251,193,184,28,251,193,186,28,251,193,188,28,251,193,190,28,251,193,192,28,251,193,194,28,251,193,218,162,251,193,208,28,251,193,210,28,251,193,212,28,251,193,228,28,251,193,230,28,251,193,242,28,251,193,244,28,251,193,28,51,251,193,30,51,251,193,32,51,251,193,34,51,251,193,36,51,251,193,38,51,251,193,40,51,251,193,42,51,251,193,44,51,251,193,46,51,251,193,74,51,251,193,76,51,251,193,78,51,251,193,80,51,251,193,82,51,251,193,84,51,251,193,86,51,251,193,88,51,251,193,90,51,251,193,92,51,251,193,94,51,251,193,96,51,251,193,164,28,251,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,193,176,28,251,193,202,28,251,193,222,28,251,193,224,28,251,193,240,28,251,193,44,29,251,193,108,29,251,193,180,29,251,193,182,29,251,193,6,30,251,193,8,30,251,193,36,30,251,193,54,30,251,193,56,30,251,193,102,30,251,193,138,30,251,193,140,30,251,193,218,30,251,193,6,31,251,193,58,31,251,193,60,31,251,193,76,31,251,193,140,31,251,193,142,31,251,193,144,31,251,193,204,31,251,193,206,31,251,193,4,32,251,193,6,32,251,193,8,32,251,193,70,32,251,193,148,32,251,193,246,28,251,193,248,28,251,193,250,28,251,193,252,28,251,193,254,28,251,193,2,29,251,193,4,29,251,193,6,29,251,193,22,29,251,193,24,29,251,193,26,29,251,193,28,29,251,193,30,29,251,193,32,29,251,193,34,29,251,193,46,29,251,193,48,29,251,193,50,29,251,193,80,54,251,193,68,29,251,193,70,29,251,193,72,29,251,193,80,29,251,193,82,29,251,193,86,29,251,193,88,29,251,193,90,29,251,193,104,218,252,193,106,29,251,193,122,29,251,193,124,29,251,193,126,29,251,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,193,200,55,251,193,202,55,251,193,204,55,251,193,206,55,251,193,208,55,251,193,210,55,251,193,212,55,251,193,214,55,251,193,216,55,251,193,218,55,251,193,240,55,251,193,242,55,251,193,244,55,251,193,246,55,251,193,248,55,251,193,250,55,251,193,252,55,251,193,56,101,251,193,254,55,251,193,2,56,251,193,4,56,251,193,6,56,251,193,52,29,251,193,18,56,251,193,20,56,251,193,22,56,251,193,24,56,251,193,66,29,251,193,78,29,251,193,104,29,251,193,110,29,251,193,112,29,251,193,114,29,251,193,116,29,251,193,118,29,251,193,120,29,251,193,132,29,251,193,134,29,251,193,136,29,251,193,138,29,251,193,162,29,251,193,164,29,251,193,184,29,251,193,200,29,251,193,228,29,251,193,230,29,251,193,242,29,251,193,244,29,251,193,10,30,251,193,74,30,251,193,76,30,251,193,78,30,251,193,88,30,251,193,90,30,251,193,104,30,251,193,106,30,251,193,122,30,251,193,142,30,251,193,154,30,251,193,128,29,251,193,140,29,251,193,142,29,251,193,144,29,251,193,146,29,251,193,148,29,251,193,150,29,251,193,152,29,251,193,154,29,251,193,156,29,251,193,158,29,251,193,166,29,251,193,168,29,251,193,170,29,251,193,172,29,251,193,174,29,251,193,186,29,251,193,188,29,251,193,190,29,251,193,192,29,251,193,194,29,251,193,196,29,251,193,204,29,251,193,206,29,251,193,208,29,251,193,210,29,251,193,212,29,251,193,232,29,251,193,234,29,251,193,246,29,251,193,248,29,251,193,250,29,251,193,160,29,251,193,176,29,251,193,178,29,251,193,214,29,251,193,216,29,251,193,218,29,251,193,220,29,251,193,222,29,251,193,224,29,251,193,226,29,251,193,238,29,251,193,240,29,251,193,252,29,251,193,254,29,251,193,2,30,251,193,4,30,251,193,32,30,251,193,34,30,251,193,66,30,251,193,100,30,251,193,152,30,251,193,204,30,251,193,206,30,251,193,208,30,251,193,210,30,251,193,212,30,251,193,214,30,251,193,216,30,251,193,226,30,251,193,228,30,251,193,230,30,251,193,232,30,251,193,16,30,251,193,18,30,251,193,20,30,251,193,26,30,251,193,28,30,251,193,30,30,251,193,40,30,251,193,42,30,251,193,46,30,251,193,48,30,251,193,50,30,251,193,228,181,251,193,52,30,251,193,58,30,251,193,60,30,251,193,62,30,251,193,64,30,251,193,68,30,251,193,72,30,251,193,84,30,251,193,86,30,251,193,92,30,251,193,94,30,251,193,96,30,251,193,98,30,251,193,108,30,251,193,110,30,251,193,112,30,251,193,114,30,251,193,116,30,251,193,118,30,251,193,120,30,251,193,22,30,251,193,198,232,251,193,200,232,251,193,220,232,251,193,232,232,251,193,234,232,251,193,20,233,251,193,72,233,251,193,86,233,251,193,90,233,251,193,124,233,251,193,126,233,251,193,128,233,251,193,130,233,251,193,168,233,251,193,170,233,251,193,172,233,251,193,62,205,252,193,204,233,251,193,206,233,251,193,208,233,251,193,210,233,251,193,238,233,251,193,240,233,251,193,242,233,251,193,244,233,251,193,246,233,251,193,248,233,251,193,38,234,251,193,40,234,251,193,42,234,251,193,44,234,251,193,80,30,251,193,82,30,251,193,158,30,251,193,234,30,251,193,18,31,251,193,68,31,251,193,108,31,251,193,110,31,251,193,162,31,251,193,218,31,251,193,220,31,251,193,222,31,251,193,224,31,251,193,226,31,251,193,16,32,251,193,18,32,251,193,94,32,251,193,96,32,251,193,98,32,251,193,160,32,251,193,224,32,251,193,226,32,251,193,14,33,251,193,58,33,251,193,114,34,251,193,238,34,251,193,190,35,251,193,192,35,251,193,194,35,251,193,6,36,251,193,8,36,251,193,124,36,251,193,124,30,251,193,126,30,251,193,128,30,251,193,130,30,251,193,144,30,251,193,146,30,251,193,148,30,251,193,160,30,251,193,162,30,251,193,164,30,251,193,166,30,251,193,168,30,251,193,188,30,251,193,190,30,251,193,192,30,251,193,194,30,251,193,196,30,251,193,198,30,251,193,200,30,251,193,222,30,251,193,236,30,251,193,238,30,251,193,240,30,251,193,242,30,251,193,244,30,251,193,246,30,251,193,252,30,251,193,254,30,251,193,10,31,251,193,12,31,251,193,14,31,251,193,146,138,252,193,156,30,251,193,174,30,251,193,176,30,251,193,178,30,251,193,180,30,251,193,182,30,251,193,184,30,251,193,186,30,251,193,220,30,251,193,8,31,251,193,28,31,251,193,62,31,251,193,78,31,251,193,80,31,251,193,82,31,251,193,84,31,251,193,98,31,251,193,100,31,251,193,102,31,251,193,104,31,251,193,106,31,251,193,146,31,251,193,148,31,251,193,150,31,251,193,152,31,251,193,154,31,251,193,156,31,251,193,158,31,251,193,208,31,251,193,210,31,251,193,212,31,251,193,214,31,251,193,250,30,251,193,2,31,251,193,4,31,251,193,22,31,251,193,24,31,251,193,26,31,251,193,72,31,251,193,74,31,251,193,96,31,251,193,200,31,251,193,202,31,251,193,250,31,251,193,252,31,251,193,254,31,251,193,2,32,251,193,66,32,251,193,68,32,251,193,138,32,251,193,140,32,251,193,142,32,251,193,144,32,251,193,146,32,251,193,202,32,251,193,204,32,251,193,206,32,251,193,254,32,251,193,2,33,251,193,4,33,251,193,44,33,251,193,46,33,251,193,48,33,251,193,78,33,251,193,30,31,251,193,32,31,251,193,34,31,251,193,36,31,251,193,38,31,251,193,40,31,251,193,44,31,251,193,46,31,251,193,48,31,251,193,52,31,251,193,54,31,251,193,56,31,251,193,64,31,251,193,70,31,251,193,86,31,251,193,88,31,251,193,90,31,251,193,112,31,251,193,114,31,251,193,116,31,251,193,118,31,251,193,120,31,251,193,122,31,251,193,164,31,251,193,166,31,251,193,168,31,251,193,170,31,251,193,172,31,251,193,174,31,251,193,176,31,251,193,178,31,251,193,180,31,251,193,132,31,251,193,134,31,251,193,136,31,251,193,138,31,251,193,190,31,251,193,192,31,251,193,194,31,251,193,196,31,251,193,198,31,251,193,244,31,251,193,246,31,251,193,248,31,251,193,60,32,251,193,62,32,251,193,64,32,251,193,134,32,251,193,136,32,251,193,194,32,251,193,196,32,251,193,198,32,251,193,200,32,251,193,250,32,251,193,252,32,251,193,40,33,251,193,42,33,251,193,76,33,251,193,114,33,251,193,116,33,251,193,118,33,251,193,176,33,251,193,20,34,251,193,22,34,251,193,228,31,251,193,182,31,251,193,230,31,251,193,232,31,251,193,234,31,251,193,236,31,251,193,238,31,251,193,240,31,251,193,20,32,251,193,22,32,251,193,24,32,251,193,26,32,251,193,28,32,251,193,30,32,251,193,32,32,251,193,34,32,251,193,36,32,251,193,38,32,251,193,40,32,251,193,42,32,251,193,44,32,251,193,46,32,251,193,48,32,251,193,50,32,251,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,193,216,31,251,193,10,32,251,193,12,32,251,193,14,32,251,193,72,32,251,193,74,32,251,193,76,32,251,193,78,32,251,193,80,32,251,193,82,32,251,193,84,32,251,193,86,32,251,193,88,32,251,193,90,32,251,193,92,32,251,193,154,32,251,193,156,32,251,193,158,32,251,193,214,32,251,193,216,32,251,193,218,32,251,193,220,32,251,193,222,32,251,193,12,33,251,193,56,33,251,193,88,33,251,193,90,33,251,193,92,33,251,193,94,33,251,193,128,33,251,193,130,33,251,193,142,33,251,193,54,32,251,193,56,32,251,193,126,32,251,193,128,32,251,193,130,32,251,193,132,32,251,193,186,32,251,193,188,32,251,193,190,32,251,193,246,32,251,193,248,32,251,193,36,33,251,193,38,33,251,193,74,33,251,193,112,33,251,193,138,33,251,193,184,33,251,193,18,34,251,193,52,34,251,193,106,34,251,193,128,34,251,193,164,34,251,193,234,34,251,193,22,35,251,193,38,35,251,193,64,35,251,193,72,35,251,193,74,35,251,193,114,35,251,193,118,35,251,193,56,36,251,193,58,36,251,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,206,0,3,0,193,162,32,251,193,164,32,251,193,166,32,251,193,168,32,251,193,170,32,251,193,172,32,251,193,174,32,251,193,176,32,251,193,178,32,251,193,180,32,251,193,182,32,251,193,184,32,251,193,228,32,251,193,230,32,251,193,232,32,251,193,234,32,251,193,236,32,251,193,238,32,251,193,240,32,251,193,242,32,251,193,244,32,251,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,193,150,32,251,193,152,32,251,193,208,32,251,193,210,32,251,193,212,32,251,193,6,33,251,193,8,33,251,193,10,33,251,193,50,33,251,193,52,33,251,193,54,33,251,193,84,33,251,193,86,33,251,193,126,33,251,193,162,33,251,193,164,33,251,193,110,34,251,193,214,34,251,193,24,35,251,193,44,35,251,193,46,35,251,193,58,35,251,193,94,35,251,193,102,35,251,193,104,35,251,193,176,35,251,193,178,35,251,193,226,35,251,193,228,35,251,193,230,35,251,193,78,36,251,193,80,36,251,206,32,3,0,206,32,3,0,206,32,3,0,206,32,3,0,193,60,33,251,193,62,33,251,193,64,33,251,193,66,33,251,193,68,33,251,193,70,33,251,193,96,33,251,193,98,33,251,193,100,33,251,193,102,33,251,193,104,33,251,193,106,33,251,193,108,33,251,193,110,33,251,193,132,33,251,193,72,33,251,193,134,33,251,193,136,33,251,193,144,33,251,193,146,33,251,193,148,33,251,193,150,33,251,193,152,33,251,193,154,33,251,193,156,33,251,193,166,33,251,193,168,33,251,193,170,33,251,193,80,33,251,193,82,33,251,193,120,33,251,193,122,33,251,193,124,33,251,193,140,33,251,193,160,33,251,193,178,33,251,193,186,33,251,193,228,33,251,193,230,33,251,193,232,33,251,193,234,33,251,193,24,34,251,193,26,34,251,193,28,34,251,193,54,34,251,193,82,34,251,193,84,34,251,193,92,34,251,193,94,34,251,193,132,34,251,193,134,34,251,193,154,34,251,193,168,34,251,193,170,34,251,193,192,34,251,193,12,35,251,193,42,35,251,193,56,35,251,193,70,35,251,193,92,35,251,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,193,166,112,252,193,168,112,252,193,170,112,252,193,172,112,252,193,174,112,252,193,176,112,252,193,178,112,252,193,180,112,252,193,182,112,252,193,184,112,252,193,186,112,252,193,188,112,252,193,190,112,252,193,192,112,252,193,158,33,251,193,194,112,252,193,196,112,252,193,198,112,252,193,200,112,252,193,220,112,252,193,222,112,252,193,224,112,252,193,248,112,252,193,226,112,252,193,228,112,252,193,230,112,252,193,232,112,252,193,172,33,251,193,174,33,251,193,180,33,251,193,182,33,251,193,188,33,251,193,190,33,251,193,194,33,251,193,198,33,251,193,200,33,251,193,212,33,251,193,214,33,251,193,216,33,251,193,218,33,251,193,220,33,251,193,222,33,251,193,224,33,251,193,226,33,251,193,242,33,251,193,244,33,251,193,246,33,251,193,248,33,251,193,4,34,251,193,6,34,251,193,8,34,251,193,10,34,251,193,12,34,251,193,14,34,251,193,16,34,251,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,193,196,33,251,193,202,33,251,193,204,33,251,193,206,33,251,193,210,33,251,193,236,33,251,193,238,33,251,193,240,33,251,193,250,33,251,193,252,33,251,193,254,33,251,193,2,34,251,193,30,34,251,193,56,34,251,193,58,34,251,193,60,34,251,193,112,34,251,193,136,34,251,193,138,34,251,193,172,34,251,193,174,34,251,193,200,34,251,193,206,34,251,193,216,34,251,193,218,34,251,193,220,34,251,193,222,34,251,193,224,34,251,193,236,34,251,193,14,35,251,193,26,35,251,193,60,35,251,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,206,64,3,0,193,62,34,251,193,64,34,251,193,66,34,251,193,68,34,251,193,70,34,251,193,72,34,251,193,74,34,251,193,76,34,251,193,78,34,251,193,86,34,251,193,88,34,251,193,90,34,251,193,96,34,251,193,98,34,251,193,100,34,251,193,102,34,251,193,104,34,251,193,148,147,251,193,116,34,251,193,118,34,251,193,218,100,251,193,120,34,251,193,122,34,251,193,124,34,251,193,126,34,251,193,142,34,251,193,170,53,251,193,172,53,251,193,174,53,251,193,176,53,251,193,178,53,251,193,180,53,251,193,188,53,251,193,190,53,251,193,192,53,251,193,202,53,251,193,204,53,251,193,206,53,251,193,208,53,251,193,210,53,251,193,80,34,251,193,212,53,251,193,214,53,251,193,216,53,251,193,218,53,251,193,68,55,251,193,220,53,251,193,222,53,251,193,224,53,251,193,226,53,251,193,228,53,251,193,246,53,251,193,248,53,251,193,250,53,251,193,252,53,251,193,22,54,251,193,24,54,251,193,34,54,251,193,108,34,251,193,130,34,251,193,152,34,251,193,166,34,251,193,40,35,251,193,66,35,251,193,68,35,251,193,76,35,251,193,78,35,251,193,80,35,251,193,88,35,251,193,90,35,251,193,98,35,251,193,120,35,251,193,122,35,251,193,124,35,251,193,216,35,251,193,218,35,251,193,62,36,251,193,64,36,251,193,66,36,251,193,182,36,251,193,184,36,251,193,186,36,251,193,188,36,251,193,190,36,251,193,192,36,251,193,194,36,251,193,108,37,251,193,110,37,251,193,112,37,251,193,114,37,251,193,144,34,251,193,146,34,251,193,148,34,251,193,150,34,251,193,156,34,251,193,158,34,251,193,160,34,251,193,162,34,251,193,176,34,251,193,178,34,251,193,180,34,251,193,182,34,251,193,238,154,253,193,184,34,251,193,186,34,251,193,188,34,251,193,190,34,251,193,194,34,251,193,196,34,251,193,198,34,251,193,202,34,251,193,204,34,251,193,208,34,251,193,210,34,251,193,212,34,251,193,226,34,251,193,228,34,251,193,230,34,251,193,190,56,251,193,232,34,251,193,240,34,251,193,242,34,251,193,244,34,251,193,246,34,251,193,248,34,251,193,250,34,251,193,252,34,251,193,254,34,251,193,2,35,251,193,4,35,251,193,6,35,251,193,8,35,251,193,10,35,251,193,16,35,251,193,18,35,251,193,20,35,251,193,28,35,251,193,30,35,251,193,32,35,251,193,156,140,253,193,34,35,251,193,36,35,251,193,48,35,251,193,50,35,251,193,52,35,251,193,54,35,251,193,62,35,251,193,82,35,251,193,84,35,251,193,84,96,251,193,96,35,251,193,106,35,251,193,108,35,251,193,116,35,251,193,14,161,251,193,16,161,251,193,22,161,251,193,24,161,251,193,26,161,251,193,28,161,251,193,38,161,251,193,40,161,251,193,42,161,251,193,44,161,251,193,46,161,251,193,48,161,251,193,56,161,251,193,86,35,251,193,62,161,251,193,64,161,251,193,66,161,251,193,68,161,251,193,80,161,251,193,82,161,251,193,84,161,251,193,92,161,251,193,96,161,251,193,102,161,251,193,104,161,251,193,106,161,251,193,110,161,251,193,116,161,251,193,118,161,251,193,134,161,251,193,136,161,251,193,140,161,251,193,100,35,251,193,110,35,251,193,170,35,251,193,172,35,251,193,174,35,251,193,220,35,251,193,222,35,251,193,224,35,251,193,68,36,251,193,70,36,251,193,72,36,251,193,74,36,251,193,76,36,251,193,196,36,251,193,198,36,251,193,200,36,251,193,202,36,251,193,204,36,251,193,206,36,251,193,208,36,251,193,210,36,251,193,116,37,251,193,118,37,251,193,120,37,251,193,122,37,251,193,124,37,251,193,126,37,251,193,128,37,251,193,130,37,251,193,132,37,251,193,134,37,251,193,136,37,251,193,178,132,251,193,158,154,251,193,148,154,251,193,160,154,251,193,162,154,251,193,164,154,251,193,166,154,251,193,168,154,251,193,170,154,251,193,172,154,251,193,180,154,251,193,188,154,251,193,196,154,251,193,198,154,251,193,200,154,251,193,202,154,251,193,204,154,251,193,206,154,251,193,208,154,251,193,210,154,251,193,114,130,251,193,112,35,251,193,216,154,251,193,250,154,251,193,252,154,251,193,254,154,251,193,2,155,251,193,4,155,251,193,6,155,251,193,8,155,251,193,10,155,251,193,12,155,251,193,126,35,251,193,128,35,251,193,130,35,251,193,138,35,251,193,144,35,251,193,154,35,251,193,156,35,251,193,158,35,251,193,160,35,251,193,162,35,251,193,164,35,251,193,166,35,251,193,168,35,251,193,196,35,251,193,198,35,251,193,200,35,251,193,202,35,251,193,204,35,251,193,206,35,251,193,208,35,251,193,210,35,251,193,10,36,251,193,212,35,251,193,12,36,251,193,14,36,251,193,16,36,251,193,18,36,251,193,214,35,251,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,193,132,35,251,193,134,35,251,193,136,35,251,193,140,35,251,193,142,35,251,193,146,35,251,193,148,35,251,193,150,35,251,193,152,35,251,193,180,35,251,193,182,35,251,193,184,35,251,193,186,35,251,193,188,35,251,193,232,35,251,193,234,35,251,193,236,35,251,193,238,35,251,193,240,35,251,193,242,35,251,193,244,35,251,193,246,35,251,193,248,35,251,193,250,35,251,193,252,35,251,193,254,35,251,193,2,36,251,193,4,36,251,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,96,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,193,60,36,251,193,178,36,251,193,180,36,251,193,102,37,251,193,104,37,251,193,106,37,251,193,4,38,251,193,6,38,251,193,186,38,251,193,188,38,251,193,72,39,251,193,74,39,251,193,76,39,251,193,78,39,251,193,218,39,251,193,220,39,251,193,222,39,251,193,74,40,251,193,76,40,251,193,78,40,251,193,52,41,251,193,110,41,251,193,112,41,251,193,150,42,251,193,152,42,251,193,154,42,251,193,220,42,251,193,222,42,251,193,38,43,251,193,112,43,251,193,114,43,251,193,116,43,251,193,82,36,251,193,84,36,251,193,86,36,251,193,212,36,251,193,214,36,251,193,216,36,251,193,218,36,251,193,142,37,251,193,144,37,251,193,146,37,251,193,148,37,251,193,150,37,251,193,28,38,251,193,30,38,251,193,32,38,251,193,34,38,251,193,36,38,251,193,38,38,251,193,40,38,251,193,220,38,251,193,222,38,251,193,224,38,251,193,226,38,251,193,116,39,251,193,118,39,251,193,120,39,251,193,122,39,251,193,106,40,251,193,108,40,251,193,110,40,251,193,230,40,251,193,232,40,251,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,206,128,3,0,193,220,36,251,193,222,36,251,193,224,36,251,193,226,36,251,193,228,36,251,193,230,36,251,193,232,36,251,193,234,36,251,193,236,36,251,193,238,36,251,193,240,36,251,193,242,36,251,193,244,36,251,193,246,36,251,193,248,36,251,193,250,36,251,193,252,36,251,193,254,36,251,193,126,36,251,193,8,37,251,193,10,37,251,193,12,37,251,193,14,37,251,193,16,37,251,193,18,37,251,193,182,37,251,193,184,37,251,193,186,37,251,193,188,37,251,193,190,37,251,193,86,38,251,193,88,38,251,193,90,38,251,193,92,38,251,193,94,38,251,193,248,38,251,193,250,38,251,193,252,38,251,193,254,38,251,193,2,39,251,193,4,39,251,193,134,39,251,193,136,39,251,193,138,39,251,193,140,39,251,193,142,39,251,193,12,40,251,193,14,40,251,193,122,40,251,193,124,40,251,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,160,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,193,2,37,251,193,4,37,251,193,6,37,251,193,152,37,251,193,154,37,251,193,156,37,251,193,158,37,251,193,160,37,251,193,162,37,251,193,164,37,251,193,166,37,251,193,168,37,251,193,170,37,251,193,172,37,251,193,174,37,251,193,176,37,251,193,178,37,251,193,180,37,251,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,192,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,193,138,37,251,193,140,37,251,193,14,38,251,193,16,38,251,193,18,38,251,193,20,38,251,193,22,38,251,193,24,38,251,193,26,38,251,193,198,38,251,193,200,38,251,193,202,38,251,193,204,38,251,193,206,38,251,193,208,38,251,193,210,38,251,193,212,38,251,193,214,38,251,193,216,38,251,193,218,38,251,193,94,39,251,193,96,39,251,193,98,39,251,193,100,39,251,193,102,39,251,193,104,39,251,193,106,39,251,193,108,39,251,193,110,39,251,193,112,39,251,193,114,39,251,193,234,39,251,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,224,3,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,193,10,38,251,193,12,38,251,193,190,38,251,193,192,38,251,193,194,38,251,193,196,38,251,193,80,39,251,193,82,39,251,193,84,39,251,193,86,39,251,193,88,39,251,193,90,39,251,193,92,39,251,193,224,39,251,193,226,39,251,193,228,39,251,193,230,39,251,193,232,39,251,193,80,40,251,193,82,40,251,193,84,40,251,193,216,40,251,193,218,40,251,193,220,40,251,193,222,40,251,193,224,40,251,193,54,41,251,193,162,41,251,193,188,41,251,193,190,41,251,193,192,41,251,193,208,41,251,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,206,0,4,0,193,228,38,251,193,124,39,251,193,230,38,251,193,232,38,251,193,234,38,251,193,236,38,251,193,238,38,251,193,240,38,251,193,242,38,251,193,244,38,251,193,126,39,251,193,128,39,251,193,130,39,251,193,132,39,251,193,246,38,251,193,248,39,251,193,250,39,251,193,252,39,251,193,254,39,251,193,2,40,251,193,4,40,251,193,6,40,251,193,8,40,251,193,10,40,251,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,206,32,4,0,193,6,39,251,193,8,39,251,193,10,39,251,193,12,39,251,193,14,39,251,193,16,39,251,193,18,39,251,193,20,39,251,193,22,39,251,193,24,39,251,193,26,39,251,193,28,39,251,193,30,39,251,193,32,39,251,193,34,39,251,193,36,39,251,193,38,39,251,193,40,39,251,193,42,39,251,193,44,39,251,193,46,39,251,193,48,39,251,193,50,39,251,193,52,39,251,193,54,39,251,193,184,38,251,193,56,39,251,193,58,39,251,193,60,39,251,193,62,39,251,193,64,39,251,193,66,39,251,193,68,39,251,193,70,39,251,193,144,39,251,193,146,39,251,193,148,39,251,193,150,39,251,193,152,39,251,193,154,39,251,193,156,39,251,193,158,39,251,193,160,39,251,193,162,39,251,193,164,39,251,193,166,39,251,193,168,39,251,193,170,39,251,193,172,39,251,193,174,39,251,193,176,39,251,193,178,39,251,193,180,39,251,193,182,39,251,193,184,39,251,193,186,39,251,193,188,39,251,193,190,39,251,193,192,39,251,193,194,39,251,193,196,39,251,193,198,39,251,193,200,39,251,193,228,142,252,193,202,39,251,193,204,39,251,193,206,39,251,193,208,39,251,193,210,39,251,193,212,39,251,193,214,39,251,193,216,39,251,193,16,40,251,193,18,40,251,193,20,40,251,193,22,40,251,193,24,40,251,193,26,40,251,193,28,40,251,193,30,40,251,193,32,40,251,193,34,40,251,193,36,40,251,193,38,40,251,193,40,40,251,193,42,40,251,193,44,40,251,193,46,40,251,193,48,40,251,193,50,40,251,193,52,40,251,193,54,40,251,193,56,40,251,193,58,40,251,193,60,40,251,193,62,40,251,193,64,40,251,193,66,40,251,193,68,40,251,193,236,39,251,193,238,39,251,193,240,39,251,193,242,39,251,193,244,39,251,193,246,39,251,193,86,40,251,193,88,40,251,193,90,40,251,193,92,40,251,193,94,40,251,193,96,40,251,193,98,40,251,193,100,40,251,193,102,40,251,193,104,40,251,193,226,40,251,193,228,40,251,193,56,41,251,193,114,41,251,193,116,41,251,193,118,41,251,193,120,41,251,193,122,41,251,193,164,41,251,193,166,41,251,193,194,41,251,193,196,41,251,193,212,41,251,193,252,41,251,193,26,42,251,193,48,42,251,193,70,40,251,193,72,40,251,193,146,40,251,193,148,40,251,193,150,40,251,193,152,40,251,193,154,40,251,193,156,40,251,193,158,40,251,193,160,40,251,193,162,40,251,193,164,40,251,193,166,40,251,193,168,40,251,193,170,40,251,193,172,40,251,193,174,40,251,193,176,40,251,193,178,40,251,193,180,40,251,193,182,40,251,193,184,40,251,193,186,40,251,193,188,40,251,193,190,40,251,193,192,40,251,193,194,40,251,193,196,40,251,193,198,40,251,193,200,40,251,193,202,40,251,193,204,40,251,193,112,40,251,193,114,40,251,193,116,40,251,193,118,40,251,193,120,40,251,193,240,40,251,193,242,40,251,193,244,40,251,193,246,40,251,193,248,40,251,193,250,40,251,193,252,40,251,193,254,40,251,193,2,41,251,193,4,41,251,193,6,41,251,193,60,41,251,193,62,41,251,193,64,41,251,193,66,41,251,193,68,41,251,193,126,41,251,193,198,41,251,193,226,41,251,193,228,41,251,193,240,41,251,193,242,41,251,193,8,42,251,193,10,42,251,193,16,42,251,193,18,42,251,193,28,42,251,193,126,40,251,193,128,40,251,193,130,40,251,193,132,40,251,193,134,40,251,193,136,40,251,193,138,40,251,193,140,40,251,193,142,40,251,193,144,40,251,193,8,41,251,193,70,41,251,193,72,41,251,193,74,41,251,193,128,41,251,193,130,41,251,193,174,41,251,193,200,41,251,193,214,41,251,193,36,42,251,193,64,42,251,193,66,42,251,193,68,42,251,193,116,42,251,193,118,42,251,193,188,42,251,193,190,42,251,193,192,42,251,193,10,43,251,193,74,43,251,193,76,43,251,193,78,43,251,193,10,41,251,193,206,40,251,193,208,40,251,193,210,40,251,193,212,40,251,193,214,40,251,193,12,41,251,193,14,41,251,193,16,41,251,193,18,41,251,193,20,41,251,193,22,41,251,193,24,41,251,193,26,41,251,193,28,41,251,193,30,41,251,193,32,41,251,193,34,41,251,193,36,41,251,193,38,41,251,193,40,41,251,193,42,41,251,193,44,41,251,193,46,41,251,193,48,41,251,193,50,41,251,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,193,234,40,251,193,236,40,251,193,238,40,251,193,58,41,251,193,124,41,251,193,168,41,251,193,170,41,251,193,172,41,251,193,248,41,251,193,90,42,251,193,160,42,251,193,162,42,251,193,164,42,251,193,236,42,251,193,238,42,251,193,142,43,251,193,144,43,251,193,196,43,251,193,198,43,251,193,200,43,251,193,254,43,251,193,64,44,251,193,128,44,251,193,130,44,251,193,160,44,251,193,216,44,251,193,232,44,251,193,14,45,251,193,102,45,251,193,104,45,251,193,154,45,251,193,156,45,251,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,206,64,4,0,193,144,51,253,193,132,41,251,193,134,41,251,193,136,41,251,193,138,41,251,193,140,41,251,193,142,41,251,193,144,41,251,193,146,41,251,193,148,41,251,193,150,41,251,193,152,41,251,193,154,41,251,193,156,41,251,193,158,41,251,193,160,41,251,193,176,41,251,193,178,41,251,193,180,41,251,193,182,41,251,193,184,41,251,193,186,41,251,193,202,41,251,193,204,41,251,193,206,41,251,193,216,41,251,193,230,41,251,193,218,41,251,193,220,41,251,193,222,41,251,193,224,41,251,193,232,41,251,193,234,41,251,193,236,41,251,193,238,41,251,193,244,41,251,193,250,41,251,193,2,42,251,193,4,42,251,193,12,42,251,193,20,42,251,193,22,42,251,193,24,42,251,193,42,42,251,193,44,42,251,193,46,42,251,193,70,42,251,193,72,42,251,193,74,42,251,193,76,42,251,193,78,42,251,193,80,42,251,193,82,42,251,193,210,41,251,193,246,41,251,193,254,41,251,193,6,42,251,193,14,42,251,193,88,42,251,193,156,42,251,193,158,42,251,193,224,42,251,193,40,43,251,193,42,43,251,193,44,43,251,193,46,43,251,193,48,43,251,193,118,43,251,193,120,43,251,193,122,43,251,193,124,43,251,193,126,43,251,193,186,43,251,193,244,43,251,193,246,43,251,193,50,44,251,193,52,44,251,193,116,44,251,193,156,44,251,193,158,44,251,193,170,44,251,193,172,44,251,193,212,44,251,193,214,44,251,193,240,44,251,193,30,42,251,193,32,42,251,193,34,42,251,193,52,42,251,193,54,42,251,193,56,42,251,193,58,42,251,193,60,42,251,193,62,42,251,193,92,42,251,193,94,42,251,193,96,42,251,193,98,42,251,193,100,42,251,193,102,42,251,193,104,42,251,193,106,42,251,193,108,42,251,193,110,42,251,193,112,42,251,193,114,42,251,193,166,42,251,193,168,42,251,193,170,42,251,193,172,42,251,193,174,42,251,193,176,42,251,193,178,42,251,193,180,42,251,193,182,42,251,193,184,42,251,193,186,42,251,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,193,2,78,251,193,4,78,251,193,6,78,251,193,8,78,251,193,40,79,251,193,42,79,251,193,44,79,251,193,46,79,251,193,48,79,251,193,50,79,251,193,52,79,251,193,84,80,251,193,86,80,251,193,88,80,251,193,40,81,251,193,42,81,251,193,192,81,251,193,194,81,251,193,196,81,251,193,52,82,251,193,136,82,251,193,138,82,251,193,238,82,251,193,14,83,251,193,96,83,251,193,38,42,251,193,128,83,251,193,50,42,251,193,226,42,251,193,228,42,251,193,230,42,251,193,232,42,251,193,234,42,251,193,50,43,251,193,52,43,251,193,54,43,251,193,56,43,251,193,58,43,251,193,60,43,251,193,128,43,251,193,130,43,251,193,132,43,251,193,134,43,251,193,136,43,251,193,138,43,251,193,140,43,251,193,188,43,251,193,190,43,251,193,192,43,251,193,194,43,251,193,248,43,251,193,250,43,251,193,252,43,251,193,54,44,251,193,56,44,251,193,58,44,251,193,60,44,251,193,62,44,251,193,118,44,251,193,84,42,251,193,86,42,251,193,120,42,251,193,122,42,251,193,124,42,251,193,126,42,251,193,128,42,251,193,130,42,251,193,132,42,251,193,134,42,251,193,136,42,251,193,138,42,251,193,140,42,251,193,142,42,251,193,144,42,251,193,146,42,251,193,148,42,251,193,194,42,251,193,196,42,251,193,198,42,251,193,200,42,251,193,202,42,251,193,204,42,251,193,206,42,251,193,208,42,251,193,210,42,251,193,212,42,251,193,214,42,251,193,216,42,251,193,218,42,251,193,12,43,251,193,14,43,251,193,240,42,251,193,242,42,251,193,244,42,251,193,246,42,251,193,248,42,251,193,250,42,251,193,252,42,251,193,254,42,251,193,2,43,251,193,4,43,251,193,6,43,251,193,8,43,251,193,62,43,251,193,64,43,251,193,66,43,251,193,68,43,251,193,70,43,251,193,72,43,251,193,146,43,251,193,148,43,251,193,150,43,251,193,152,43,251,193,154,43,251,193,106,225,251,193,156,43,251,193,158,43,251,193,160,43,251,193,202,43,251,193,204,43,251,193,206,43,251,193,208,43,251,193,2,44,251,193,16,43,251,193,18,43,251,193,20,43,251,193,22,43,251,193,24,43,251,193,26,43,251,193,28,43,251,193,30,43,251,193,32,43,251,193,34,43,251,193,36,43,251,193,80,43,251,193,82,43,251,193,84,43,251,193,86,43,251,193,88,43,251,193,90,43,251,193,92,43,251,193,94,43,251,193,96,43,251,193,98,43,251,193,100,43,251,193,102,43,251,193,104,43,251,193,106,43,251,193,108,43,251,193,110,43,251,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,193,162,43,251,193,210,43,251,193,78,44,251,193,180,44,251,193,182,44,251,193,184,44,251,193,186,44,251,193,202,44,251,193,136,45,251,193,162,45,251,193,176,45,251,193,242,45,251,193,14,46,251,193,54,46,251,193,226,214,252,193,136,46,251,193,138,46,251,193,246,46,251,193,20,47,251,193,22,47,251,193,24,47,251,193,42,47,251,193,112,47,251,193,136,47,251,193,170,47,251,193,194,47,251,193,236,47,251,193,238,47,251,193,170,48,251,193,102,49,251,193,248,49,251,193,250,49,251,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,206,96,4,0,193,212,43,251,193,214,43,251,193,216,43,251,193,218,43,251,193,220,43,251,193,222,43,251,193,224,43,251,193,226,43,251,193,228,43,251,193,230,43,251,193,232,43,251,193,234,43,251,193,236,43,251,193,238,43,251,193,20,44,251,193,22,44,251,193,24,44,251,193,26,44,251,193,28,44,251,193,30,44,251,193,32,44,251,193,34,44,251,193,36,44,251,193,38,44,251,193,40,44,251,193,42,44,251,193,44,44,251,193,184,43,251,193,240,43,251,193,242,43,251,193,46,44,251,193,112,44,251,193,114,44,251,193,154,44,251,193,230,44,251,193,238,45,251,193,254,45,251,193,36,46,251,193,68,46,251,193,122,46,251,193,150,46,251,193,152,46,251,193,210,46,251,193,230,46,251,193,50,47,251,193,106,47,251,193,34,48,251,193,124,48,251,193,146,48,251,193,190,48,251,193,206,48,251,193,224,48,251,193,226,48,251,193,246,48,251,193,12,49,251,193,26,49,251,193,52,49,251,193,92,49,251,193,172,49,251,193,4,44,251,193,6,44,251,193,8,44,251,193,10,44,251,193,12,44,251,193,14,44,251,193,16,44,251,193,18,44,251,193,66,44,251,193,68,44,251,193,70,44,251,193,72,44,251,193,74,44,251,193,76,44,251,193,132,44,251,193,134,44,251,193,136,44,251,193,138,44,251,193,140,44,251,193,162,44,251,193,174,44,251,193,176,44,251,193,178,44,251,193,218,44,251,193,224,44,251,193,244,44,251,193,246,44,251,193,248,44,251,193,250,44,251,193,252,44,251,193,254,44,251,193,2,45,251,193,80,44,251,193,82,44,251,193,84,44,251,193,86,44,251,193,88,44,251,193,90,44,251,193,92,44,251,193,94,44,251,193,96,44,251,193,98,44,251,193,100,44,251,193,102,44,251,193,104,44,251,193,106,44,251,193,108,44,251,193,110,44,251,193,142,44,251,193,144,44,251,193,146,44,251,193,148,44,251,193,150,44,251,193,152,44,251,193,164,44,251,193,166,44,251,193,168,44,251,193,188,44,251,193,190,44,251,193,192,44,251,193,194,44,251,193,196,44,251,193,198,44,251,193,200,44,251,193,120,44,251,193,122,44,251,193,124,44,251,193,126,44,251,193,12,45,251,193,38,45,251,193,48,45,251,193,60,45,251,193,62,45,251,193,82,45,251,193,84,45,251,193,100,45,251,193,152,45,251,193,172,45,251,193,188,45,251,193,190,45,251,193,2,46,251,193,18,46,251,193,38,46,251,193,48,46,251,193,90,46,251,193,102,46,251,193,104,46,251,193,158,46,251,193,160,46,251,193,176,46,251,193,178,46,251,193,234,46,251,193,252,46,251,193,254,46,251,193,54,47,251,193,158,47,251,193,204,44,251,193,206,44,251,193,208,44,251,193,210,44,251,193,220,44,251,193,222,44,251,193,226,44,251,193,228,44,251,193,234,44,251,193,236,44,251,193,238,44,251,193,242,44,251,193,10,45,251,193,26,45,251,193,28,45,251,193,30,45,251,193,32,45,251,193,42,45,251,193,44,45,251,193,46,45,251,193,52,45,251,193,54,45,251,193,56,45,251,193,58,45,251,193,70,45,251,193,72,45,251,193,74,45,251,193,76,45,251,193,78,45,251,193,80,45,251,193,88,45,251,193,90,45,251,193,4,45,251,193,6,45,251,193,8,45,251,193,16,45,251,193,18,45,251,193,20,45,251,193,22,45,251,193,24,45,251,193,40,45,251,193,50,45,251,193,64,45,251,193,66,45,251,193,68,45,251,193,86,45,251,193,106,45,251,193,132,45,251,193,134,45,251,193,158,45,251,193,160,45,251,193,174,45,251,193,206,45,251,193,234,45,251,193,240,45,251,193,248,45,251,193,50,46,251,193,52,46,251,193,82,46,251,193,92,46,251,193,94,46,251,193,96,46,251,193,98,46,251,193,106,46,251,193,34,45,251,193,36,45,251,193,128,45,251,193,130,45,251,193,170,45,251,193,210,45,251,193,220,45,251,193,246,45,251,193,56,46,251,193,58,46,251,193,80,46,251,193,88,46,251,193,100,46,251,193,124,46,251,193,126,46,251,193,128,46,251,193,154,46,251,193,174,46,251,193,156,46,251,193,212,46,251,193,232,46,251,193,16,47,251,193,32,47,251,193,52,47,251,193,70,47,251,193,72,47,251,193,80,47,251,193,84,47,251,193,86,47,251,193,110,47,251,193,38,48,251,193,86,48,251,193,92,45,251,193,94,45,251,193,96,45,251,193,98,45,251,193,108,45,251,193,110,45,251,193,112,45,251,193,114,45,251,193,116,45,251,193,118,45,251,193,120,45,251,193,122,45,251,193,124,45,251,193,126,45,251,193,138,45,251,193,140,45,251,193,142,45,251,193,144,45,251,193,146,45,251,193,148,45,251,193,150,45,251,193,164,45,251,193,166,45,251,193,168,45,251,193,178,45,251,193,180,45,251,193,182,45,251,193,184,45,251,193,186,45,251,193,192,45,251,193,194,45,251,193,196,45,251,193,198,45,251,193,200,45,251,193,202,45,251,193,208,45,251,193,212,45,251,193,214,45,251,193,216,45,251,193,218,45,251,193,222,45,251,193,224,45,251,193,226,45,251,193,228,45,251,193,230,45,251,193,232,45,251,193,236,45,251,193,244,45,251,193,250,45,251,193,4,46,251,193,6,46,251,193,8,46,251,193,10,46,251,193,12,46,251,193,16,46,251,193,22,46,251,193,24,46,251,193,26,46,251,193,28,46,251,193,30,46,251,193,32,46,251,193,34,46,251,193,40,46,251,193,42,46,251,193,204,45,251,193,252,45,251,193,20,46,251,193,64,46,251,193,162,46,251,193,236,46,251,193,238,46,251,193,2,47,251,193,34,47,251,193,92,47,251,193,132,47,251,193,144,47,251,193,162,47,251,193,204,47,251,193,206,47,251,193,224,47,251,193,16,48,251,193,18,48,251,193,40,48,251,193,42,48,251,193,44,48,251,193,90,48,251,193,106,48,251,193,108,48,251,193,128,48,251,193,130,48,251,193,150,48,251,193,152,48,251,193,198,48,251,193,210,48,251,193,212,48,251,193,254,48,251,193,108,46,251,193,110,46,251,193,112,46,251,193,130,46,251,193,132,46,251,193,134,46,251,193,164,46,251,193,180,46,251,193,182,46,251,193,184,46,251,193,214,46,251,193,216,46,251,193,240,46,251,193,242,46,251,193,244,46,251,193,18,47,251,193,36,47,251,193,38,47,251,193,40,47,251,193,56,47,251,193,74,47,251,193,82,47,251,193,94,47,251,193,100,47,251,193,118,47,251,193,120,47,251,193,122,47,251,193,134,47,251,193,146,47,251,193,150,47,251,193,164,47,251,193,166,47,251,193,194,46,251,193,196,46,251,193,198,46,251,193,152,47,251,193,200,46,251,193,202,46,251,193,204,46,251,193,206,46,251,193,208,46,251,193,220,46,251,193,222,46,251,193,224,46,251,193,226,46,251,193,228,46,251,193,248,46,251,193,250,46,251,193,4,47,251,193,6,47,251,193,8,47,251,193,10,47,251,193,12,47,251,193,14,47,251,193,26,47,251,193,28,47,251,193,30,47,251,193,44,47,251,193,46,47,251,193,48,47,251,193,58,47,251,193,60,47,251,193,62,47,251,193,64,47,251,193,66,47,251,193,68,47,251,193,76,47,251,193,78,47,251,193,88,47,251,193,90,47,251,193,96,47,251,193,98,47,251,193,102,47,251,193,104,47,251,193,108,47,251,193,114,47,251,193,116,47,251,193,124,47,251,193,128,47,251,193,130,47,251,193,138,47,251,193,140,47,251,193,142,47,251,193,148,47,251,193,154,47,251,193,156,47,251,193,160,47,251,193,172,47,251,193,174,47,251,193,176,47,251,193,178,47,251,193,196,47,251,193,198,47,251,193,216,47,251,193,218,47,251,193,200,47,251,193,202,47,251,193,102,48,251,193,104,48,251,193,126,48,251,193,148,48,251,193,166,48,251,193,168,48,251,193,196,48,251,193,232,48,251,193,234,48,251,193,236,48,251,193,14,49,251,193,16,49,251,193,28,49,251,193,38,49,251,193,76,49,251,193,94,49,251,193,190,49,251,193,252,49,251,193,12,50,251,193,24,50,251,193,44,50,251,193,78,50,251,193,80,50,251,193,82,50,251,193,84,50,251,193,86,50,251,193,112,50,251,193,114,50,251,193,146,50,251,193,148,50,251,193,156,50,251,193,220,47,251,193,222,47,251,193,240,47,251,193,242,47,251,193,244,47,251,193,246,47,251,193,248,47,251,193,250,47,251,193,252,47,251,193,254,47,251,193,2,48,251,193,4,48,251,193,6,48,251,193,8,48,251,193,10,48,251,193,12,48,251,193,14,48,251,193,20,48,251,193,22,48,251,193,24,48,251,193,26,48,251,193,28,48,251,193,30,48,251,193,32,48,251,193,60,48,251,193,62,48,251,193,64,48,251,193,66,48,251,193,68,48,251,193,70,48,251,193,72,48,251,193,74,48,251,193,76,48,251,193,78,48,251,193,80,48,251,193,110,48,251,193,112,48,251,193,114,48,251,193,116,48,251,193,118,48,251,193,120,48,251,193,122,48,251,193,134,48,251,193,136,48,251,193,138,48,251,193,140,48,251,193,142,48,251,193,144,48,251,193,156,48,251,193,158,48,251,193,160,48,251,193,162,48,251,193,172,48,251,193,174,48,251,193,176,48,251,193,178,48,251,193,180,48,251,193,182,48,251,193,184,48,251,193,186,48,251,193,188,48,251,193,200,48,251,193,202,48,251,193,204,48,251,193,38,10,252,193,40,10,252,193,68,10,252,193,70,10,252,193,72,10,252,193,82,48,251,193,96,10,252,193,98,10,252,193,100,10,252,193,102,10,252,193,104,10,252,193,106,10,252,193,108,10,252,193,110,10,252,193,112,10,252,193,114,10,252,193,116,10,252,193,118,10,252,193,198,165,251,193,140,10,252,193,142,10,252,193,144,10,252,193,146,10,252,193,148,10,252,193,150,10,252,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,193,88,48,251,193,98,48,251,193,100,48,251,193,164,48,251,193,192,48,251,193,194,48,251,193,208,48,251,193,228,48,251,193,230,48,251,193,248,48,251,193,250,48,251,193,252,48,251,193,24,49,251,193,34,49,251,193,126,49,251,193,152,49,251,193,174,49,251,193,200,49,251,193,202,49,251,193,210,49,251,193,212,49,251,193,220,49,251,193,230,49,251,193,232,49,251,193,234,49,251,193,10,50,251,193,42,50,251,193,120,50,251,193,132,50,251,193,144,50,251,193,152,50,251,193,154,50,251,193,18,49,251,193,20,49,251,193,42,49,251,193,128,49,251,193,154,49,251,193,156,49,251,193,158,49,251,193,204,49,251,193,206,49,251,193,228,49,251,193,242,49,251,193,14,50,251,193,46,50,251,193,48,50,251,193,62,50,251,193,88,50,251,193,108,50,251,193,122,50,251,193,124,50,251,193,158,50,251,193,162,50,251,193,216,50,251,193,8,51,251,193,10,51,251,193,60,51,251,193,172,51,251,193,174,51,251,193,246,51,251,193,248,51,251,193,250,51,251,193,252,51,251,193,254,51,251,193,56,49,251,193,58,49,251,193,60,49,251,193,78,49,251,193,80,49,251,193,96,49,251,193,98,49,251,193,100,49,251,193,176,49,251,193,240,49,251,193,244,49,251,193,246,49,251,193,254,49,251,193,16,50,251,193,18,50,251,193,20,50,251,193,26,50,251,193,28,50,251,193,50,50,251,193,52,50,251,193,54,50,251,193,56,50,251,193,64,50,251,193,66,50,251,193,68,50,251,193,70,50,251,193,72,50,251,193,90,50,251,193,92,50,251,193,94,50,251,193,116,50,251,193,118,50,251,193,128,119,251,193,130,119,251,193,132,119,251,193,156,119,251,193,158,119,251,193,160,119,251,193,186,119,251,193,188,119,251,193,190,119,251,193,192,119,251,193,194,119,251,193,90,49,251,193,196,119,251,193,198,119,251,193,240,119,251,193,242,119,251,193,244,119,251,193,246,119,251,193,248,119,251,193,250,119,251,193,252,119,251,193,254,119,251,193,2,120,251,193,4,120,251,193,6,120,251,193,8,120,251,193,10,120,251,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,193,108,49,251,193,110,49,251,193,112,49,251,193,114,49,251,193,116,49,251,193,118,49,251,193,120,49,251,193,122,49,251,193,124,49,251,193,130,49,251,193,132,49,251,193,134,49,251,193,136,49,251,193,138,49,251,193,140,49,251,193,142,49,251,193,144,49,251,193,146,49,251,193,148,49,251,193,160,49,251,193,162,49,251,193,164,49,251,193,166,49,251,193,168,49,251,193,242,208,253,193,170,49,251,193,178,49,251,193,180,49,251,193,182,49,251,193,184,49,251,193,186,49,251,193,188,49,251,193,72,55,251,193,74,55,251,193,76,55,251,193,78,55,251,193,80,55,251,193,82,55,251,193,84,55,251,193,86,55,251,193,88,55,251,193,150,49,251,193,112,55,251,193,114,55,251,193,116,55,251,193,118,55,251,193,120,55,251,193,122,55,251,193,124,55,251,193,126,55,251,193,128,55,251,193,130,55,251,193,132,55,251,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,206,192,4,0,193,192,49,251,193,194,49,251,193,196,49,251,193,24,102,251,193,198,49,251,193,208,49,251,193,214,49,251,193,216,49,251,193,222,49,251,193,224,49,251,193,226,49,251,193,236,49,251,193,238,49,251,193,2,50,251,193,4,50,251,193,6,50,251,193,8,50,251,193,22,50,251,193,30,50,251,193,32,50,251,193,34,50,251,193,36,50,251,193,38,50,251,193,40,50,251,193,60,50,251,193,96,50,251,193,98,50,251,193,100,50,251,193,102,50,251,193,104,50,251,193,110,50,251,193,126,50,251,193,218,49,251,193,76,50,251,193,106,50,251,193,210,50,251,193,48,51,251,193,98,51,251,193,100,51,251,193,158,51,251,193,160,51,251,193,162,51,251,193,164,51,251,193,226,51,251,193,228,51,251,193,230,51,251,193,232,51,251,193,40,52,251,193,42,52,251,193,92,52,251,193,94,52,251,193,158,52,251,193,160,52,251,193,162,52,251,193,232,52,251,193,234,52,251,193,26,53,251,193,28,53,251,193,60,53,251,193,86,53,251,193,230,53,251,193,254,53,251,193,26,54,251,193,50,54,251,193,58,50,251,193,74,50,251,193,226,50,251,193,228,50,251,193,230,50,251,193,20,51,251,193,22,51,251,193,24,51,251,193,70,51,251,193,72,51,251,193,124,51,251,193,186,51,251,193,188,51,251,193,190,51,251,193,70,52,251,193,138,52,251,193,188,52,251,193,190,52,251,193,254,52,251,193,56,53,251,193,104,53,251,193,136,53,251,193,244,53,251,193,18,54,251,193,20,54,251,193,92,54,251,193,138,54,251,193,140,54,251,193,190,54,251,193,230,54,251,193,24,55,251,193,66,55,251,193,128,50,251,193,130,50,251,193,138,50,251,193,140,50,251,193,142,50,251,193,150,50,251,193,164,50,251,193,166,50,251,193,168,50,251,193,170,50,251,193,172,50,251,193,176,50,251,193,188,50,251,193,196,50,251,193,198,50,251,193,200,50,251,193,202,50,251,193,204,50,251,193,206,50,251,193,208,50,251,193,236,50,251,193,238,50,251,193,240,50,251,193,242,50,251,193,244,50,251,193,246,50,251,193,248,50,251,193,250,50,251,193,252,50,251,193,254,50,251,193,2,51,251,193,4,51,251,193,134,50,251,193,136,50,251,193,178,50,251,193,180,50,251,193,182,50,251,193,184,50,251,193,186,50,251,193,190,50,251,193,192,50,251,193,194,50,251,193,218,50,251,193,220,50,251,193,222,50,251,193,224,50,251,193,12,51,251,193,14,51,251,193,16,51,251,193,18,51,251,193,62,51,251,193,64,51,251,193,66,51,251,193,68,51,251,193,112,51,251,193,114,51,251,193,116,51,251,193,118,51,251,193,120,51,251,193,122,51,251,193,176,51,251,193,178,51,251,193,180,51,251,193,182,51,251,193,160,50,251,193,174,50,251,193,212,50,251,193,52,51,251,193,54,51,251,193,102,51,251,193,104,51,251,193,106,51,251,193,108,51,251,193,166,51,251,193,168,51,251,193,238,51,251,193,44,52,251,193,46,52,251,193,48,52,251,193,50,52,251,193,52,52,251,193,96,52,251,193,98,52,251,193,100,52,251,193,102,52,251,193,104,52,251,193,106,52,251,193,108,52,251,193,164,52,251,193,166,52,251,193,168,52,251,193,170,52,251,193,236,52,251,193,238,52,251,193,30,53,251,193,32,53,251,193,214,50,251,193,6,51,251,193,56,51,251,193,58,51,251,193,110,51,251,193,170,51,251,193,240,51,251,193,242,51,251,193,244,51,251,193,54,52,251,193,56,52,251,193,58,52,251,193,110,52,251,193,112,52,251,193,114,52,251,193,116,52,251,193,118,52,251,193,172,52,251,193,174,52,251,193,240,52,251,193,242,52,251,193,244,52,251,193,34,53,251,193,52,53,251,193,110,53,251,193,182,53,251,193,184,53,251,193,236,53,251,193,238,53,251,193,240,53,251,193,4,54,251,193,6,54,251,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,206,128,4,0,193,192,51,251,193,194,51,251,193,196,51,251,193,198,51,251,193,200,51,251,193,202,51,251,193,204,51,251,193,206,51,251,193,208,51,251,193,210,51,251,193,212,51,251,193,214,51,251,193,216,51,251,193,218,51,251,193,220,51,251,193,222,51,251,193,224,51,251,193,12,52,251,193,14,52,251,193,16,52,251,193,18,52,251,193,20,52,251,193,22,52,251,193,24,52,251,193,140,52,251,193,128,251,252,193,130,251,252,193,224,251,252,193,226,251,252,193,228,251,252,193,230,251,252,193,38,252,252,193,40,252,252,193,42,252,252,193,44,252,252,193,112,252,252,193,150,252,252,193,152,252,252,193,174,252,252,193,178,252,252,193,180,252,252,193,194,252,252,193,214,252,252,193,184,51,251,193,216,252,252,193,218,252,252,193,2,253,252,193,4,253,252,193,6,253,252,193,8,253,252,193,10,253,252,193,12,253,252,193,54,253,252,193,56,253,252,193,58,253,252,193,98,253,252,193,100,253,252,193,2,52,251,193,4,52,251,193,6,52,251,193,8,52,251,193,60,52,251,193,62,52,251,193,64,52,251,193,66,52,251,193,68,52,251,193,10,52,251,193,134,52,251,193,136,52,251,193,178,52,251,193,180,52,251,193,182,52,251,193,184,52,251,193,186,52,251,193,250,52,251,193,252,52,251,193,54,53,251,193,82,53,251,193,114,53,251,193,120,53,251,193,130,53,251,193,132,53,251,193,134,53,251,193,144,53,251,193,146,53,251,193,148,53,251,193,162,53,251,193,164,53,251,193,186,53,251,193,26,52,251,193,28,52,251,193,30,52,251,193,32,52,251,193,34,52,251,193,36,52,251,193,38,52,251,193,72,52,251,193,74,52,251,193,76,52,251,193,78,52,251,193,80,52,251,193,82,52,251,193,84,52,251,193,86,52,251,193,88,52,251,193,90,52,251,193,142,52,251,193,144,52,251,193,146,52,251,193,148,52,251,193,150,52,251,193,152,52,251,193,154,52,251,193,156,52,251,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,193,120,52,251,193,122,52,251,193,124,52,251,193,126,52,251,193,128,52,251,193,130,52,251,193,132,52,251,193,176,52,251,193,246,52,251,193,248,52,251,193,64,53,251,193,66,53,251,193,90,53,251,193,160,53,251,193,242,53,251,193,52,54,251,193,186,54,251,193,216,54,251,193,218,54,251,193,220,54,251,193,222,54,251,193,224,54,251,193,226,54,251,193,6,55,251,193,8,55,251,193,10,55,251,193,12,55,251,193,50,55,251,193,52,55,251,193,54,55,251,193,104,55,251,193,106,55,251,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,206,160,4,0,193,2,53,251,193,4,53,251,193,6,53,251,193,8,53,251,193,10,53,251,193,12,53,251,193,14,53,251,193,16,53,251,193,18,53,251,193,20,53,251,193,22,53,251,193,24,53,251,193,226,91,252,193,36,53,251,193,38,53,251,193,40,53,251,193,42,53,251,193,44,53,251,193,58,53,251,193,46,53,251,193,48,53,251,193,50,53,251,193,62,53,251,193,88,53,251,193,108,53,251,193,142,53,251,193,194,53,251,193,232,53,251,193,234,53,251,193,2,54,251,193,28,54,251,193,70,54,251,193,72,54,251,193,74,54,251,193,108,54,251,193,110,54,251,193,120,54,251,193,160,54,251,193,210,54,251,193,250,54,251,193,252,54,251,193,254,54,251,193,2,55,251,193,4,55,251,193,42,55,251,193,94,55,251,193,96,55,251,193,138,55,251,193,140,55,251,193,142,55,251,193,144,55,251,193,68,53,251,193,70,53,251,193,72,53,251,193,74,53,251,193,76,53,251,193,78,53,251,193,80,53,251,193,84,53,251,193,178,20,252,193,92,53,251,193,94,53,251,193,96,53,251,193,98,53,251,193,100,53,251,193,102,53,251,193,106,53,251,193,112,53,251,193,116,53,251,193,118,53,251,193,122,53,251,193,124,53,251,193,126,53,251,193,128,53,251,193,138,53,251,193,140,53,251,193,150,53,251,193,152,53,251,193,154,53,251,193,156,53,251,193,158,53,251,193,166,53,251,193,168,53,251,193,196,53,251,193,198,53,251,193,200,53,251,193,14,54,251,193,16,54,251,193,32,54,251,193,78,54,251,193,90,54,251,193,122,54,251,193,124,54,251,193,128,54,251,193,130,54,251,193,132,54,251,193,134,54,251,193,136,54,251,193,162,54,251,193,164,54,251,193,166,54,251,193,188,54,251,193,228,54,251,193,14,55,251,193,16,55,251,193,18,55,251,193,20,55,251,193,22,55,251,193,56,55,251,193,58,55,251,193,60,55,251,193,62,55,251,193,64,55,251,193,108,55,251,193,110,55,251,193,8,54,251,193,10,54,251,193,12,54,251,193,30,54,251,193,76,54,251,193,126,54,251,193,184,54,251,193,212,54,251,193,214,54,251,193,44,55,251,193,46,55,251,193,48,55,251,193,98,55,251,193,100,55,251,193,102,55,251,193,146,55,251,193,148,55,251,193,190,55,251,193,192,55,251,193,228,55,251,193,230,55,251,193,40,56,251,193,42,56,251,193,56,56,251,193,222,56,251,193,224,56,251,193,112,57,251,193,114,57,251,193,116,57,251,193,118,57,251,193,120,57,251,193,122,57,251,193,36,54,251,193,38,54,251,193,40,54,251,193,42,54,251,193,44,54,251,193,46,54,251,193,54,54,251,193,56,54,251,193,58,54,251,193,60,54,251,193,62,54,251,193,64,54,251,193,66,54,251,193,82,54,251,193,84,54,251,193,86,54,251,193,88,54,251,193,94,54,251,193,96,54,251,193,100,54,251,193,112,54,251,193,102,54,251,193,104,54,251,193,106,54,251,193,114,54,251,193,116,54,251,193,142,54,251,193,144,54,251,193,146,54,251,193,148,54,251,193,150,54,251,193,152,54,251,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,193,48,54,251,193,16,194,252,193,18,194,252,193,20,194,252,193,22,194,252,193,24,194,252,193,26,194,252,193,28,194,252,193,30,194,252,193,32,194,252,193,34,194,252,193,36,194,252,193,38,194,252,193,40,194,252,193,42,194,252,193,44,194,252,193,46,194,252,193,48,194,252,193,68,194,252,193,70,194,252,193,72,194,252,193,74,194,252,193,76,194,252,193,78,194,252,193,80,194,252,193,82,194,252,193,84,194,252,193,68,54,251,193,98,54,251,193,118,54,251,193,156,54,251,193,158,54,251,193,208,54,251,193,248,54,251,193,38,55,251,193,40,55,251,193,90,55,251,193,92,55,251,193,134,55,251,193,136,55,251,193,220,55,251,193,222,55,251,193,8,56,251,193,34,56,251,193,72,56,251,193,216,56,251,193,170,58,251,193,172,58,251,193,174,58,251,193,4,60,251,193,6,60,251,193,8,60,251,193,10,60,251,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,193,154,54,251,193,168,54,251,193,170,54,251,193,172,54,251,193,174,54,251,193,176,54,251,193,178,54,251,193,180,54,251,193,182,54,251,193,192,54,251,193,194,54,251,193,196,54,251,193,198,54,251,193,200,54,251,193,202,54,251,193,204,54,251,193,206,54,251,193,232,54,251,193,234,54,251,193,236,54,251,193,238,54,251,193,240,54,251,193,242,54,251,193,244,54,251,193,246,54,251,193,26,55,251,193,28,55,251,193,30,55,251,193,32,55,251,193,34,55,251,193,36,55,251,193,70,55,251,193,182,55,251,193,184,55,251,193,186,55,251,193,188,55,251,193,224,55,251,193,226,55,251,193,10,56,251,193,12,56,251,193,36,56,251,193,38,56,251,193,54,56,251,193,74,56,251,193,76,56,251,193,84,56,251,193,86,56,251,193,126,56,251,193,218,56,251,193,220,56,251,193,100,57,251,193,102,57,251,193,104,57,251,193,106,57,251,193,108,57,251,193,110,57,251,193,176,58,251,193,178,58,251,193,180,58,251,193,182,58,251,193,184,58,251,193,186,58,251,193,188,58,251,193,12,60,251,193,194,55,251,193,196,55,251,193,232,55,251,193,234,55,251,193,14,56,251,193,44,56,251,193,98,56,251,193,226,56,251,193,130,57,251,193,132,57,251,193,212,58,251,193,214,58,251,193,216,58,251,193,218,58,251,193,68,60,251,193,70,60,251,193,72,60,251,193,74,60,251,193,76,60,251,193,78,60,251,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,193,198,55,251,193,16,56,251,193,144,50,253,193,182,56,251,193,184,56,251,193,186,56,251,193,24,57,251,193,26,57,251,193,28,57,251,193,18,58,251,193,20,58,251,193,22,58,251,193,24,58,251,193,26,58,251,193,28,58,251,193,30,58,251,193,32,58,251,193,34,58,251,193,36,58,251,193,38,58,251,193,40,58,251,193,42,58,251,193,44,58,251,193,96,59,251,193,98,59,251,193,100,59,251,193,102,59,251,193,104,59,251,193,106,59,251,193,108,59,251,193,110,59,251,193,112,59,251,193,236,55,251,193,58,56,251,193,88,56,251,193,112,56,251,193,128,56,251,193,130,56,251,193,132,56,251,193,134,56,251,193,136,56,251,193,138,56,251,193,140,56,251,193,142,56,251,193,144,56,251,193,146,56,251,193,148,56,251,193,150,56,251,193,152,56,251,193,154,56,251,193,156,56,251,193,158,56,251,193,160,56,251,193,162,56,251,193,164,56,251,193,166,56,251,193,168,56,251,193,170,56,251,193,172,56,251,193,174,56,251,193,176,56,251,193,178,56,251,193,180,56,251,193,228,56,251,193,150,35,251,193,212,155,251,193,206,193,251,193,236,171,252,193,200,121,251,193,114,25,252,193,60,229,251,193,206,73,253,193,118,15,253,193,174,126,253,193,42,25,253,193,252,157,251,193,6,26,251,193,160,69,251,193,238,55,251,193,192,89,251,193,182,93,251,193,118,141,251,193,96,226,251,193,232,245,251,193,110,248,251,193,130,33,251,193,54,75,252,193,12,111,252,193,216,134,252,193,160,135,252,193,36,136,252,193,246,137,252,193,234,139,253,193,186,170,252,193,136,195,252,193,178,243,252,193,26,56,251,193,28,56,251,193,30,56,251,193,46,56,251,193,48,56,251,193,50,56,251,193,52,56,251,193,60,56,251,193,62,56,251,193,64,56,251,193,66,56,251,193,68,56,251,193,70,56,251,193,78,56,251,193,80,56,251,193,82,56,251,193,90,56,251,193,94,56,251,193,96,56,251,193,100,56,251,193,102,56,251,193,104,56,251,193,106,56,251,193,108,56,251,193,110,56,251,193,114,56,251,193,116,56,251,193,118,56,251,193,120,56,251,193,122,56,251,193,124,56,251,193,192,56,251,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,193,32,56,251,193,56,126,251,193,234,98,251,193,92,56,251,193,236,98,251,193,58,99,251,193,60,99,251,193,62,99,251,193,104,99,251,193,166,99,251,193,168,99,251,193,182,99,251,193,202,99,251,193,220,99,251,193,222,99,251,193,224,99,251,193,228,99,251,193,232,99,251,193,234,99,251,193,236,99,251,193,238,99,251,193,240,99,251,193,252,99,251,193,254,99,251,193,12,100,251,193,32,100,251,193,34,100,251,193,44,100,251,193,46,100,251,193,48,100,251,193,62,100,251,193,80,100,251,193,82,100,251,193,104,100,251,193,194,56,251,193,196,56,251,193,198,56,251,193,200,56,251,193,202,56,251,193,204,56,251,193,206,56,251,193,208,56,251,193,210,56,251,193,212,56,251,193,214,56,251,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,193,230,56,251,193,232,56,251,193,234,56,251,193,236,56,251,193,238,56,251,193,240,56,251,193,242,56,251,193,244,56,251,193,246,56,251,193,248,56,251,193,250,56,251,193,252,56,251,193,254,56,251,193,2,57,251,193,4,57,251,193,6,57,251,193,8,57,251,193,10,57,251,193,12,57,251,193,14,57,251,193,16,57,251,193,18,57,251,193,20,57,251,193,22,57,251,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,224,4,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,193,124,57,251,193,126,57,251,193,128,57,251,193,190,58,251,193,192,58,251,193,194,58,251,193,196,58,251,193,198,58,251,193,200,58,251,193,202,58,251,193,204,58,251,193,206,58,251,193,208,58,251,193,210,58,251,193,36,60,251,193,38,60,251,193,40,60,251,193,42,60,251,193,44,60,251,193,46,60,251,193,48,60,251,193,50,60,251,193,52,60,251,193,54,60,251,193,56,60,251,193,58,60,251,193,60,60,251,193,62,60,251,193,64,60,251,193,66,60,251,193,234,61,251,193,236,61,251,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,206,0,5,0,193,220,58,251,193,222,58,251,193,224,58,251,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,32,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,193,226,58,251,193,228,58,251,193,230,58,251,193,232,58,251,193,234,58,251,193,236,58,251,193,238,58,251,193,240,58,251,193,242,58,251,193,244,58,251,193,246,58,251,193,248,58,251,193,250,58,251,193,252,58,251,193,254,58,251,193,2,59,251,193,4,59,251,193,6,59,251,193,8,59,251,193,10,59,251,193,12,59,251,193,14,59,251,193,16,59,251,193,18,59,251,193,20,59,251,193,22,59,251,193,24,59,251,193,26,59,251,193,28,59,251,193,30,59,251,193,32,59,251,193,34,59,251,193,36,59,251,193,38,59,251,193,40,59,251,193,42,59,251,193,44,59,251,193,46,59,251,193,48,59,251,193,50,59,251,193,52,59,251,193,54,59,251,193,56,59,251,193,58,59,251,193,60,59,251,193,62,59,251,193,64,59,251,193,66,59,251,193,68,59,251,193,70,59,251,193,72,59,251,193,74,59,251,193,76,59,251,193,78,59,251,193,80,59,251,193,82,59,251,193,84,59,251,193,86,59,251,193,88,59,251,193,90,59,251,193,92,59,251,193,94,59,251,193,80,60,251,193,82,60,251,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,64,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,193,14,60,251,193,16,60,251,193,18,60,251,193,20,60,251,193,22,60,251,193,24,60,251,193,26,60,251,193,28,60,251,193,30,60,251,193,32,60,251,193,34,60,251,193,198,61,251,193,200,61,251,193,202,61,251,193,204,61,251,193,206,61,251,193,208,61,251,193,210,61,251,193,212,61,251,193,214,61,251,193,216,61,251,193,218,61,251,193,220,61,251,193,222,61,251,193,224,61,251,193,226,61,251,193,228,61,251,193,230,61,251,193,232,61,251,193,242,63,251,193,244,63,251,193,246,63,251,193,84,60,251,193,86,60,251,193,88,60,251,193,90,60,251,193,92,60,251,193,94,60,251,193,96,60,251,193,98,60,251,193,100,60,251,193,102,60,251,193,104,60,251,193,106,60,251,193,108,60,251,193,110,60,251,193,112,60,251,193,114,60,251,193,116,60,251,193,118,60,251,193,120,60,251,193,122,60,251,193,124,60,251,193,126,60,251,193,128,60,251,193,130,60,251,193,132,60,251,193,134,60,251,193,136,60,251,193,138,60,251,193,140,60,251,193,142,60,251,193,144,60,251,193,146,60,251,193,148,60,251,193,150,60,251,193,152,60,251,193,154,60,251,193,156,60,251,193,158,60,251,193,160,60,251,193,162,60,251,193,164,60,251,193,166,60,251,193,168,60,251,193,170,60,251,193,172,60,251,193,174,60,251,193,176,60,251,193,178,60,251,193,180,60,251,193,182,60,251,193,184,60,251,193,186,60,251,193,188,60,251,193,190,60,251,193,192,60,251,193,194,60,251,193,196,60,251,193,198,60,251,193,200,60,251,193,202,60,251,193,204,60,251,193,206,60,251,193,208,60,251,193,210,60,251,193,212,60,251,193,214,60,251,193,216,60,251,193,218,60,251,193,220,60,251,193,222,60,251,193,224,60,251,193,226,60,251,193,228,60,251,193,230,60,251,193,232,60,251,193,234,60,251,193,236,60,251,193,238,60,251,193,240,60,251,193,202,62,251,193,204,62,251,193,206,62,251,193,208,62,251,193,210,62,251,193,212,62,251,193,214,62,251,193,216,62,251,193,218,62,251,193,220,62,251,193,222,62,251,193,224,62,251,193,226,62,251,193,228,62,251,193,230,62,251,193,232,62,251,193,6,65,251,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,96,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,128,5,0,206,128,5,0,206,128,5,0,206,128,5,0,193,220,63,251,193,222,63,251,193,224,63,251,193,226,63,251,193,228,63,251,193,230,63,251,193,232,63,251,193,234,63,251,193,236,63,251,193,238,63,251,193,240,63,251,193,88,66,251,193,90,66,251,193,92,66,251,193,94,66,251,193,96,66,251,193,98,66,251,193,100,66,251,193,102,66,251,193,104,66,251,193,106,66,251,193,108,66,251,193,110,66,251,193,112,66,251,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,193,238,61,251,193,240,61,251,193,242,61,251,193,244,61,251,193,246,61,251,193,248,61,251,193,250,61,251,193,252,61,251,193,254,61,251,193,2,62,251,193,4,62,251,193,6,62,251,193,8,62,251,193,10,62,251,193,12,62,251,193,14,62,251,193,16,62,251,193,18,62,251,193,20,62,251,193,22,62,251,193,24,62,251,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,160,5,0,206,160,5,0,206,160,5,0,206,160,5,0,193,76,64,251,193,78,64,251,193,80,64,251,193,82,64,251,193,84,64,251,193,86,64,251,193,88,64,251,193,90,64,251,193,92,64,251,193,94,64,251,193,96,64,251,193,98,64,251,193,100,64,251,193,246,66,251,193,248,66,251,193,250,66,251,193,252,66,251,193,254,66,251,193,2,67,251,193,4,67,251,193,6,67,251,193,8,67,251,193,10,67,251,193,12,67,251,193,14,67,251,193,16,67,251,193,18,67,251,193,120,69,251,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,192,5,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,206,224,5,0,193,52,65,251,193,94,63,251,193,96,63,251,193,98,63,251,193,100,63,251,193,102,63,251,193,248,93,252,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,206,0,6,0,193,158,81,252,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,193,248,63,251,193,250,63,251,193,252,63,251,193,254,63,251,193,2,64,251,193,4,64,251,193,6,64,251,193,8,64,251,193,10,64,251,193,12,64,251,193,14,64,251,193,16,64,251,193,18,64,251,193,20,64,251,193,22,64,251,193,24,64,251,193,26,64,251,193,28,64,251,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,32,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,206,64,6,0,193,20,67,251,193,200,64,251,193,202,64,251,193,204,64,251,193,206,64,251,193,208,64,251,193,30,214,251,193,210,64,251,193,212,64,251,193,214,64,251,193,216,64,251,193,218,64,251,193,220,64,251,193,222,64,251,193,224,64,251,193,226,64,251,193,228,64,251,193,230,64,251,193,22,67,251,193,232,64,251,193,234,64,251,193,236,64,251,193,238,64,251,193,240,64,251,193,242,64,251,193,244,64,251,193,246,64,251,193,248,64,251,193,250,64,251,193,252,64,251,193,254,64,251,193,2,65,251,193,4,65,251,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,193,8,65,251,193,10,65,251,193,12,65,251,193,14,65,251,193,16,65,251,193,18,65,251,193,20,65,251,193,22,65,251,193,24,65,251,193,26,65,251,193,28,65,251,193,30,65,251,193,32,65,251,193,34,65,251,193,36,65,251,193,38,65,251,193,40,65,251,193,42,65,251,193,44,65,251,193,46,65,251,193,48,65,251,193,50,65,251,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,206,96,6,0,193,218,67,251,193,220,67,251,193,222,67,251,193,224,67,251,193,226,67,251,193,228,67,251,193,230,67,251,193,232,67,251,193,234,67,251,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,206,128,6,0,193,252,68,251,193,254,68,251,193,2,69,251,193,4,69,251,193,6,69,251,193,8,69,251,193,10,69,251,193,12,69,251,193,14,69,251,193,16,69,251,193,18,69,251,193,20,69,251,193,22,69,251,193,24,69,251,193,26,69,251,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,160,6,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,206,192,6,0,193,156,69,251,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,206,224,6,0,193,158,69,251,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,193,160,67,251,193,130,74,251,193,132,74,251,193,134,74,251,193,136,74,251,193,138,74,251,193,140,74,251,193,142,74,251,193,144,74,251,193,146,74,251,193,148,74,251,193,150,74,251,193,98,72,251,193,152,74,251,193,100,72,251,193,154,74,251,193,22,65,252,193,156,74,251,193,158,74,251,193,160,74,251,193,162,74,251,193,164,74,251,193,166,74,251,193,168,74,251,193,170,74,251,193,30,76,251,193,32,76,251,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,206,0,7,0,193,14,70,251,193,16,70,251,193,18,70,251,193,20,70,251,193,22,70,251,193,24,70,251,193,26,70,251,193,28,70,251,193,30,70,251,193,32,70,251,193,34,70,251,193,36,70,251,193,38,70,251,193,40,70,251,193,236,67,251,193,238,67,251,193,240,67,251,193,242,67,251,193,244,67,251,193,246,67,251,193,248,67,251,193,250,67,251,193,252,67,251,193,254,67,251,193,2,68,251,193,4,68,251,193,6,68,251,193,8,68,251,193,10,68,251,193,12,68,251,193,14,68,251,193,16,68,251,193,18,68,251,193,20,68,251,193,22,68,251,193,24,68,251,193,26,68,251,193,28,68,251,193,30,68,251,193,32,68,251,193,34,68,251,193,36,68,251,193,38,68,251,193,40,68,251,193,42,68,251,193,44,68,251,193,46,68,251,193,48,68,251,193,46,70,251,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,206,32,7,0,193,48,70,251,193,50,70,251,193,52,70,251,193,54,70,251,193,56,70,251,193,216,68,251,193,218,68,251,193,220,68,251,193,222,68,251,193,58,70,251,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,206,64,7,0,193,96,71,251,193,98,71,251,193,100,71,251,193,102,71,251,193,104,71,251,193,106,71,251,193,108,71,251,193,110,71,251,193,112,71,251,193,114,71,251,193,116,71,251,193,118,71,251,193,120,71,251,193,122,71,251,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,193,28,69,251,193,30,69,251,193,32,69,251,193,124,71,251,193,126,71,251,193,128,71,251,193,130,71,251,193,132,71,251,193,134,71,251,193,136,71,251,193,138,71,251,193,140,71,251,193,142,71,251,193,144,71,251,193,146,71,251,193,148,71,251,193,150,71,251,193,152,71,251,193,154,71,251,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,96,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,193,122,69,251,193,124,69,251,193,126,69,251,193,128,69,251,193,130,69,251,193,132,69,251,193,134,69,251,193,136,69,251,193,138,69,251,193,140,69,251,193,142,69,251,193,144,69,251,193,146,69,251,193,148,69,251,193,150,69,251,193,152,69,251,193,154,69,251,193,228,71,251,193,230,71,251,193,232,71,251,193,234,71,251,193,236,71,251,193,238,71,251,193,240,71,251,193,242,71,251,193,244,71,251,193,246,71,251,193,248,71,251,193,250,71,251,193,252,71,251,193,254,71,251,193,48,74,251,193,160,69,251,193,162,69,251,193,164,69,251,193,166,69,251,193,168,69,251,193,170,69,251,193,172,69,251,193,174,69,251,193,176,69,251,193,178,69,251,193,180,69,251,193,182,69,251,193,184,69,251,193,186,69,251,193,188,69,251,193,190,69,251,193,192,69,251,193,194,69,251,193,196,69,251,193,198,69,251,193,200,69,251,193,202,69,251,193,204,69,251,193,206,69,251,193,208,69,251,193,210,69,251,193,212,69,251,193,214,69,251,193,216,69,251,193,218,69,251,193,220,69,251,193,222,69,251,193,224,69,251,193,226,69,251,193,228,69,251,193,230,69,251,193,232,69,251,193,234,69,251,193,236,69,251,193,238,69,251,193,240,69,251,193,242,69,251,193,244,69,251,193,246,69,251,193,248,69,251,193,250,69,251,193,252,69,251,193,254,69,251,193,2,70,251,193,4,70,251,193,6,70,251,193,8,70,251,193,10,70,251,193,12,70,251,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,193,42,70,251,193,44,70,251,193,102,72,251,193,104,72,251,193,106,72,251,193,108,72,251,193,110,72,251,193,112,72,251,193,114,72,251,193,116,72,251,193,118,72,251,193,120,72,251,193,122,72,251,193,124,72,251,193,126,72,251,193,128,72,251,193,130,72,251,193,174,74,251,193,176,74,251,193,178,74,251,193,180,74,251,193,182,74,251,193,184,74,251,193,186,74,251,193,188,74,251,193,190,74,251,193,192,74,251,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,206,160,8,0,193,60,70,251,193,62,70,251,193,64,70,251,193,66,70,251,193,68,70,251,193,70,70,251,193,72,70,251,193,74,70,251,193,76,70,251,193,78,70,251,193,80,70,251,193,82,70,251,193,84,70,251,193,86,70,251,193,88,70,251,193,90,70,251,193,92,70,251,193,94,70,251,193,96,70,251,193,98,70,251,193,100,70,251,193,102,70,251,193,104,70,251,193,106,70,251,193,108,70,251,193,110,70,251,193,112,70,251,193,114,70,251,193,116,70,251,193,118,70,251,193,120,70,251,193,122,70,251,193,124,70,251,193,126,70,251,193,128,70,251,193,130,70,251,193,132,70,251,193,134,70,251,193,136,70,251,193,138,70,251,193,140,70,251,193,142,70,251,193,144,70,251,193,146,70,251,193,148,70,251,193,150,70,251,193,152,70,251,193,154,70,251,193,200,74,251,193,202,74,251,193,204,74,251,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,128,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,206,160,7,0,193,232,73,251,193,234,73,251,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,206,192,7,0,193,68,74,251,193,70,74,251,193,84,72,251,193,86,72,251,193,88,72,251,193,90,72,251,193,92,72,251,193,94,72,251,193,96,72,251,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,64,8,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,224,7,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,206,0,8,0,193,158,75,251,193,160,75,251,193,162,75,251,193,164,75,251,193,166,75,251,193,168,75,251,193,170,75,251,193,172,75,251,193,174,75,251,193,92,77,251,193,94,77,251,193,96,77,251,193,98,77,251,193,100,77,251,193,102,77,251,193,104,77,251,193,174,78,251,193,176,78,251,193,178,78,251,193,180,78,251,193,218,79,251,193,220,79,251,193,222,79,251,193,224,79,251,193,226,79,251,193,228,79,251,193,184,80,251,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,206,32,8,0,193,178,75,251,193,180,75,251,193,182,75,251,193,184,75,251,193,186,75,251,193,188,75,251,193,190,75,251,193,192,75,251,193,194,75,251,193,196,75,251,193,198,75,251,193,200,75,251,193,202,75,251,193,204,75,251,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,193,236,73,251,193,238,73,251,193,240,73,251,193,242,73,251,193,244,73,251,193,246,73,251,193,248,73,251,193,250,73,251,193,252,73,251,193,254,73,251,193,2,74,251,193,4,74,251,193,6,74,251,193,8,74,251,193,10,74,251,193,12,74,251,193,14,74,251,193,16,74,251,193,18,74,251,193,20,74,251,193,22,74,251,193,24,74,251,193,26,74,251,193,28,74,251,193,30,74,251,193,32,74,251,193,34,74,251,193,36,74,251,193,38,74,251,193,40,74,251,193,42,74,251,193,44,74,251,193,46,74,251,193,206,75,251,193,208,75,251,193,210,75,251,193,212,75,251,193,214,75,251,193,216,75,251,193,218,75,251,193,220,75,251,193,222,75,251,193,224,75,251,193,226,75,251,193,228,75,251,193,230,75,251,193,232,75,251,193,234,75,251,193,236,75,251,193,238,75,251,193,240,75,251,193,242,75,251,193,244,75,251,193,246,75,251,193,248,75,251,193,250,75,251,193,252,75,251,193,254,75,251,193,2,76,251,193,4,76,251,193,6,76,251,193,8,76,251,193,10,76,251,193,12,76,251,193,50,74,251,193,52,74,251,193,54,74,251,193,56,74,251,193,58,74,251,193,60,74,251,193,62,74,251,193,64,74,251,193,66,74,251,193,18,76,251,193,20,76,251,193,22,76,251,193,24,76,251,193,26,76,251,193,28,76,251,193,192,77,251,193,194,77,251,193,196,77,251,193,198,77,251,193,200,77,251,193,202,77,251,193,204,77,251,193,206,77,251,193,246,78,251,193,248,78,251,193,250,78,251,193,252,78,251,193,254,78,251,193,2,79,251,193,4,79,251,193,50,80,251,193,52,80,251,193,34,76,251,193,36,76,251,193,38,76,251,193,40,76,251,193,42,76,251,193,44,76,251,193,46,76,251,193,48,76,251,193,50,76,251,193,52,76,251,193,54,76,251,193,56,76,251,193,58,76,251,193,60,76,251,193,62,76,251,193,64,76,251,193,66,76,251,193,68,76,251,193,70,76,251,193,72,76,251,193,172,74,251,193,74,76,251,193,76,76,251,193,78,76,251,193,80,76,251,193,82,76,251,193,84,76,251,193,86,76,251,193,88,76,251,193,208,77,251,193,210,77,251,193,212,77,251,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,206,96,8,0,193,124,140,252,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,128,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,193,154,75,251,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,206,224,8,0,193,156,75,251,193,44,77,251,193,46,77,251,193,48,77,251,193,50,77,251,193,52,77,251,193,54,77,251,193,56,77,251,193,58,77,251,193,60,77,251,193,62,77,251,193,64,77,251,193,66,77,251,193,68,77,251,193,70,77,251,193,72,77,251,193,74,77,251,193,76,77,251,193,78,77,251,193,80,77,251,193,82,77,251,193,84,77,251,193,86,77,251,206,32,9,0,206,32,9,0,206,32,9,0,193,14,76,251,193,16,76,251,193,140,77,251,193,142,77,251,193,144,77,251,193,146,77,251,193,148,77,251,193,150,77,251,193,152,77,251,193,154,77,251,193,156,77,251,193,158,77,251,193,160,77,251,193,162,77,251,193,164,77,251,193,166,77,251,193,168,77,251,193,170,77,251,193,172,77,251,193,174,77,251,193,176,77,251,193,178,77,251,193,180,77,251,193,182,77,251,193,184,77,251,193,186,77,251,193,188,77,251,193,190,77,251,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,192,8,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,193,70,190,251,193,72,190,251,193,74,190,251,193,76,190,251,193,78,190,251,193,80,190,251,193,82,190,251,193,84,190,251,193,86,190,251,193,88,77,251,193,88,190,251,193,90,190,251,193,120,190,251,193,122,190,251,193,124,190,251,193,126,190,251,193,128,190,251,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,193,90,77,251,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,206,0,9,0,193,184,78,251,193,186,78,251,193,188,78,251,193,190,78,251,193,192,78,251,193,194,78,251,193,196,78,251,193,198,78,251,193,200,78,251,193,202,78,251,193,204,78,251,193,232,79,251,193,234,79,251,193,236,79,251,193,238,79,251,193,240,79,251,193,242,79,251,193,244,79,251,193,246,79,251,193,248,79,251,193,250,79,251,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,193,214,77,251,193,216,77,251,193,218,77,251,193,220,77,251,193,222,77,251,193,224,77,251,193,226,77,251,193,228,77,251,193,230,77,251,193,232,77,251,193,234,77,251,193,236,77,251,193,238,77,251,193,240,77,251,193,242,77,251,193,244,77,251,193,246,77,251,193,248,77,251,193,250,77,251,193,252,77,251,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,206,96,9,0,193,60,80,251,193,62,80,251,193,64,80,251,193,66,80,251,193,68,80,251,193,70,80,251,193,72,80,251,193,74,80,251,193,76,80,251,193,78,80,251,193,80,80,251,193,82,80,251,193,22,81,251,193,24,81,251,193,26,81,251,193,28,81,251,193,30,81,251,193,32,81,251,193,34,81,251,193,36,81,251,193,38,81,251,193,254,77,251,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,32,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,64,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,206,128,9,0,193,90,80,251,193,92,80,251,193,94,80,251,193,96,80,251,193,98,80,251,193,100,80,251,193,102,80,251,193,104,80,251,193,106,80,251,193,108,80,251,193,110,80,251,193,112,80,251,193,114,80,251,193,116,80,251,193,118,80,251,193,120,80,251,193,216,79,251,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,206,160,9,0,193,222,80,251,193,224,80,251,193,226,80,251,193,228,80,251,193,230,80,251,193,232,80,251,193,234,80,251,193,236,80,251,193,238,80,251,193,240,80,251,193,242,80,251,193,244,80,251,193,246,80,251,193,248,80,251,193,250,80,251,193,252,80,251,193,254,80,251,193,2,81,251,193,4,81,251,193,6,81,251,193,8,81,251,193,10,81,251,193,54,80,251,193,56,80,251,193,58,80,251,193,16,81,251,193,18,81,251,193,20,81,251,193,162,81,251,193,164,81,251,193,166,81,251,193,168,81,251,193,32,82,251,193,34,82,251,193,128,82,251,193,242,83,251,193,244,83,251,193,42,84,251,193,44,84,251,193,206,84,251,193,38,85,251,193,90,85,251,193,116,85,251,193,202,85,251,193,246,85,251,193,248,85,251,193,70,87,251,193,72,87,251,193,74,87,251,193,76,87,251,193,78,87,251,193,80,87,251,193,82,87,251,193,70,88,251,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,206,192,9,0,193,10,66,252,193,170,80,251,193,172,80,251,193,174,80,251,193,176,80,251,193,178,80,251,193,180,80,251,193,182,80,251,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,193,186,80,251,193,188,80,251,193,108,81,251,193,110,81,251,193,112,81,251,193,102,82,251,193,212,82,251,193,214,82,251,193,232,83,251,193,34,84,251,193,80,84,251,193,136,84,251,193,190,84,251,193,192,84,251,193,32,85,251,193,76,85,251,193,130,85,251,193,236,85,251,193,238,85,251,193,64,86,251,193,66,86,251,193,68,86,251,193,70,86,251,193,72,86,251,193,14,87,251,193,16,87,251,193,18,87,251,193,20,87,251,193,22,87,251,193,24,87,251,193,26,87,251,193,28,87,251,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,206,224,9,0,193,114,81,251,193,116,81,251,193,118,81,251,193,120,81,251,193,122,81,251,193,124,81,251,193,126,81,251,193,128,81,251,193,130,81,251,193,132,81,251,193,18,82,251,193,20,82,251,193,22,82,251,193,106,82,251,193,158,82,251,193,160,82,251,193,162,82,251,193,216,82,251,193,218,82,251,193,220,82,251,193,12,81,251,193,14,81,251,193,134,81,251,193,136,81,251,193,138,81,251,193,140,81,251,193,142,81,251,193,144,81,251,193,146,81,251,193,148,81,251,193,150,81,251,193,152,81,251,193,154,81,251,193,156,81,251,193,158,81,251,193,160,81,251,193,24,82,251,193,26,82,251,193,28,82,251,193,30,82,251,193,108,82,251,193,110,82,251,193,112,82,251,193,114,82,251,193,116,82,251,193,118,82,251,193,120,82,251,193,122,82,251,193,124,82,251,193,126,82,251,193,164,82,251,193,166,82,251,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,0,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,206,32,10,0,193,36,82,251,193,38,82,251,193,40,82,251,193,42,82,251,193,44,82,251,193,46,82,251,193,48,82,251,193,130,82,251,193,190,81,251,193,50,82,251,193,132,82,251,193,134,82,251,193,180,82,251,193,182,82,251,193,184,82,251,193,234,82,251,193,236,82,251,193,54,83,251,193,76,83,251,193,84,83,251,193,86,83,251,193,88,83,251,193,90,83,251,193,92,83,251,193,114,83,251,193,116,83,251,193,118,83,251,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,206,64,10,0,193,160,100,251,193,82,195,252,193,54,82,251,193,56,82,251,193,58,82,251,193,60,82,251,193,62,82,251,193,64,82,251,193,66,82,251,193,68,82,251,193,70,82,251,193,72,82,251,193,74,82,251,193,76,82,251,193,16,82,251,193,78,82,251,193,80,82,251,193,82,82,251,193,84,82,251,193,86,82,251,193,88,82,251,193,90,82,251,193,92,82,251,193,94,82,251,193,96,82,251,193,98,82,251,193,100,82,251,193,140,82,251,193,142,82,251,193,144,82,251,193,146,82,251,193,148,82,251,193,150,82,251,193,152,82,251,193,154,82,251,193,156,82,251,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,193,168,82,251,193,170,82,251,193,172,82,251,193,174,82,251,193,176,82,251,193,178,82,251,193,222,82,251,193,224,82,251,193,226,82,251,193,228,82,251,193,230,82,251,193,232,82,251,193,6,83,251,193,8,83,251,193,10,83,251,193,12,83,251,193,36,83,251,193,38,83,251,193,40,83,251,193,50,83,251,193,52,83,251,193,64,83,251,193,66,83,251,193,68,83,251,193,70,83,251,193,74,83,251,193,112,83,251,193,238,83,251,193,240,83,251,193,40,84,251,193,86,84,251,193,88,84,251,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,206,96,10,0,193,240,82,251,193,242,82,251,193,244,82,251,193,246,82,251,193,248,82,251,193,250,82,251,193,252,82,251,193,254,82,251,193,2,83,251,193,16,83,251,193,18,83,251,193,20,83,251,193,22,83,251,193,24,83,251,193,26,83,251,193,28,83,251,193,30,83,251,193,32,83,251,193,34,83,251,193,42,83,251,193,44,83,251,193,56,83,251,193,58,83,251,193,60,83,251,193,46,83,251,193,72,83,251,193,4,83,251,193,48,83,251,193,110,83,251,193,234,83,251,193,236,83,251,193,36,84,251,193,38,84,251,193,82,84,251,193,84,84,251,193,138,84,251,193,140,84,251,193,194,84,251,193,196,84,251,193,244,84,251,193,246,84,251,193,248,84,251,193,34,85,251,193,78,85,251,193,108,85,251,193,132,85,251,193,146,85,251,193,174,85,251,193,200,85,251,193,240,85,251,193,242,85,251,193,74,86,251,193,76,86,251,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,193,166,40,253,193,168,40,253,193,170,40,253,193,172,40,253,193,174,40,253,193,62,83,251,193,176,40,253,193,178,40,253,193,184,40,253,193,190,40,253,193,82,41,253,193,162,43,253,193,174,43,253,193,176,43,253,193,178,43,253,193,186,43,253,193,188,43,253,193,190,43,253,193,192,43,253,193,202,43,253,193,204,43,253,193,214,43,253,193,216,43,253,193,218,43,253,193,228,43,253,193,230,43,253,193,238,43,253,193,240,43,253,193,242,43,253,193,244,43,253,193,246,43,253,193,248,43,253,193,78,83,251,193,80,83,251,193,82,83,251,193,100,83,251,193,102,83,251,193,104,83,251,193,106,83,251,193,130,83,251,193,132,83,251,193,134,83,251,193,136,83,251,193,138,83,251,193,140,83,251,193,142,83,251,193,144,83,251,193,146,83,251,193,148,83,251,193,150,83,251,193,152,83,251,193,154,83,251,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,193,120,83,251,193,122,83,251,193,124,83,251,193,126,83,251,193,156,83,251,193,158,83,251,193,160,83,251,193,162,83,251,193,164,83,251,193,166,83,251,193,168,83,251,193,170,83,251,193,172,83,251,193,174,83,251,193,176,83,251,193,178,83,251,193,180,83,251,193,182,83,251,193,184,83,251,193,186,83,251,193,188,83,251,193,190,83,251,193,246,83,251,193,248,83,251,193,250,83,251,193,252,83,251,193,254,83,251,193,2,84,251,193,4,84,251,193,6,84,251,193,8,84,251,193,46,84,251,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,206,128,10,0,193,16,84,251,193,18,84,251,193,20,84,251,193,22,84,251,193,24,84,251,193,120,94,252,193,26,84,251,193,28,84,251,193,30,84,251,193,32,84,251,193,52,84,251,193,54,84,251,193,56,84,251,193,58,84,251,193,60,84,251,193,62,84,251,193,64,84,251,193,66,84,251,193,68,84,251,193,70,84,251,193,72,84,251,193,74,84,251,193,76,84,251,193,78,84,251,193,10,84,251,193,12,84,251,193,50,84,251,193,102,84,251,193,48,85,251,193,160,85,251,193,216,85,251,193,160,86,251,193,162,86,251,193,164,86,251,193,166,86,251,193,168,86,251,193,170,86,251,193,172,86,251,193,174,86,251,193,176,86,251,193,178,86,251,193,168,87,251,193,170,87,251,193,172,87,251,193,174,87,251,193,176,87,251,193,172,88,251,193,174,88,251,193,176,88,251,193,178,88,251,193,180,88,251,193,182,88,251,193,184,88,251,193,186,88,251,193,188,88,251,193,194,89,251,193,48,84,251,193,90,84,251,193,92,84,251,193,94,84,251,193,96,84,251,193,98,84,251,193,100,84,251,193,152,84,251,193,154,84,251,193,156,84,251,193,158,84,251,193,160,84,251,193,208,84,251,193,210,84,251,193,212,84,251,193,162,84,251,193,214,84,251,193,254,84,251,193,2,85,251,193,4,85,251,193,6,85,251,193,8,85,251,193,40,85,251,193,42,85,251,193,44,85,251,193,46,85,251,193,92,85,251,193,118,85,251,193,120,85,251,193,178,85,251,193,180,85,251,193,186,85,251,193,104,84,251,193,106,84,251,193,108,84,251,193,110,84,251,193,112,84,251,193,114,84,251,193,116,84,251,193,118,84,251,193,120,84,251,193,122,84,251,193,124,84,251,193,126,84,251,193,128,84,251,193,130,84,251,193,132,84,251,193,134,84,251,193,164,84,251,193,166,84,251,193,168,84,251,193,170,84,251,193,172,84,251,193,174,84,251,193,176,84,251,193,178,84,251,193,180,84,251,193,182,84,251,193,184,84,251,193,186,84,251,193,216,84,251,193,218,84,251,193,220,84,251,193,222,84,251,193,142,84,251,193,144,84,251,193,146,84,251,193,148,84,251,193,150,84,251,193,198,84,251,193,200,84,251,193,202,84,251,193,204,84,251,193,250,84,251,193,252,84,251,193,36,85,251,193,80,85,251,193,82,85,251,193,84,85,251,193,86,85,251,193,88,85,251,193,110,85,251,193,112,85,251,193,114,85,251,193,134,85,251,193,148,85,251,193,152,85,251,193,158,85,251,193,176,85,251,193,184,85,251,193,244,85,251,193,78,86,251,193,80,86,251,193,82,86,251,193,56,87,251,193,58,87,251,193,188,84,251,193,224,84,251,193,226,84,251,193,228,84,251,193,230,84,251,193,232,84,251,193,234,84,251,193,236,84,251,193,238,84,251,193,240,84,251,193,10,85,251,193,12,85,251,193,14,85,251,193,16,85,251,193,18,85,251,193,20,85,251,193,22,85,251,193,24,85,251,193,26,85,251,193,28,85,251,193,30,85,251,193,50,85,251,193,52,85,251,193,54,85,251,193,56,85,251,193,58,85,251,193,60,85,251,193,62,85,251,193,64,85,251,193,66,85,251,193,68,85,251,193,70,85,251,193,110,64,252,193,112,64,252,193,114,64,252,193,116,64,252,193,118,64,252,193,120,64,252,193,122,64,252,193,124,64,252,193,126,64,252,193,128,64,252,193,130,64,252,193,132,64,252,193,144,64,252,193,146,64,252,193,148,64,252,193,150,64,252,193,170,64,252,193,172,64,252,193,174,64,252,193,176,64,252,193,190,64,252,193,192,64,252,193,194,64,252,193,242,84,251,193,196,64,252,193,198,64,252,193,200,64,252,193,202,64,252,193,226,64,252,193,228,64,252,193,230,64,252,193,232,64,252,193,72,85,251,193,74,85,251,193,94,85,251,193,96,85,251,193,98,85,251,193,122,85,251,193,100,85,251,193,102,85,251,193,104,85,251,193,106,85,251,193,124,85,251,193,126,85,251,193,128,85,251,193,136,85,251,193,138,85,251,193,140,85,251,193,142,85,251,193,144,85,251,193,150,85,251,193,154,85,251,193,156,85,251,193,162,85,251,193,164,85,251,193,166,85,251,193,168,85,251,193,170,85,251,193,172,85,251,193,182,85,251,193,194,85,251,193,196,85,251,193,198,85,251,193,218,85,251,193,188,85,251,193,190,85,251,193,204,85,251,193,206,85,251,193,208,85,251,193,210,85,251,193,212,85,251,193,214,85,251,193,250,85,251,193,252,85,251,193,254,85,251,193,2,86,251,193,4,86,251,193,6,86,251,193,8,86,251,193,10,86,251,193,12,86,251,193,14,86,251,193,16,86,251,193,18,86,251,193,20,86,251,193,22,86,251,193,24,86,251,193,26,86,251,193,28,86,251,193,30,86,251,193,32,86,251,193,84,86,251,193,86,86,251,193,88,86,251,193,90,86,251,193,92,86,251,193,220,85,251,193,222,85,251,193,224,85,251,193,226,85,251,193,228,85,251,193,230,85,251,193,232,85,251,193,234,85,251,193,34,86,251,193,36,86,251,193,38,86,251,193,40,86,251,193,42,86,251,193,44,86,251,193,46,86,251,193,48,86,251,193,50,86,251,193,52,86,251,193,54,86,251,193,56,86,251,193,58,86,251,193,60,86,251,193,62,86,251,193,154,119,251,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,193,94,86,251,193,96,86,251,193,98,86,251,193,100,86,251,193,102,86,251,193,104,86,251,193,106,86,251,193,108,86,251,193,110,86,251,193,112,86,251,193,114,86,251,193,116,86,251,193,118,86,251,193,120,86,251,193,122,86,251,193,124,86,251,193,126,86,251,193,128,86,251,193,130,86,251,193,132,86,251,193,134,86,251,193,136,86,251,193,138,86,251,193,140,86,251,193,142,86,251,193,144,86,251,193,146,86,251,193,148,86,251,193,150,86,251,193,152,86,251,193,154,86,251,193,156,86,251,193,158,86,251,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,160,10,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,193,30,87,251,193,32,87,251,193,34,87,251,193,26,88,251,193,28,88,251,193,30,88,251,193,32,88,251,193,34,88,251,193,36,88,251,193,38,88,251,193,40,88,251,193,42,89,251,193,44,89,251,193,46,89,251,193,48,89,251,193,50,89,251,193,52,89,251,193,54,89,251,193,56,89,251,193,58,89,251,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,206,192,10,0,193,42,88,251,193,44,88,251,193,46,88,251,193,48,88,251,193,60,89,251,193,62,89,251,193,64,89,251,193,66,89,251,193,68,89,251,193,70,89,251,193,72,89,251,193,104,90,251,193,106,90,251,193,108,90,251,193,110,90,251,193,112,90,251,193,114,90,251,193,116,90,251,193,118,90,251,193,120,90,251,193,122,90,251,193,124,90,251,193,126,90,251,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,193,60,87,251,193,62,87,251,193,64,87,251,193,66,87,251,193,68,87,251,193,50,88,251,193,52,88,251,193,54,88,251,193,56,88,251,193,58,88,251,193,60,88,251,193,62,88,251,193,64,88,251,193,66,88,251,193,68,88,251,193,74,89,251,193,76,89,251,193,78,89,251,193,80,89,251,193,82,89,251,193,84,89,251,193,86,89,251,193,88,89,251,193,90,89,251,193,92,89,251,193,94,89,251,193,96,89,251,193,98,89,251,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,224,10,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,0,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,193,72,88,251,193,74,88,251,193,76,88,251,193,78,88,251,193,80,88,251,193,100,89,251,193,102,89,251,193,104,89,251,193,106,89,251,193,108,89,251,193,110,89,251,193,112,89,251,193,114,89,251,193,116,89,251,193,154,90,251,193,156,90,251,193,158,90,251,193,160,90,251,193,162,90,251,193,164,90,251,193,166,90,251,193,168,90,251,193,170,90,251,193,244,91,251,193,246,91,251,193,248,91,251,193,250,91,251,193,252,91,251,193,254,91,251,193,2,92,251,193,4,92,251,193,6,92,251,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,32,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,206,96,11,0,193,168,88,251,193,166,89,251,193,168,89,251,193,170,89,251,193,172,89,251,193,174,89,251,193,176,89,251,193,178,89,251,193,180,89,251,193,182,89,251,193,184,89,251,193,186,89,251,193,188,89,251,193,190,89,251,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,206,64,11,0,193,168,205,252,193,10,89,251,193,12,89,251,193,14,89,251,193,16,89,251,193,18,89,251,193,20,89,251,193,22,89,251,193,24,89,251,193,26,89,251,193,28,89,251,193,30,89,251,193,32,89,251,193,34,89,251,193,36,89,251,193,38,89,251,193,40,89,251,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,193,196,89,251,193,198,89,251,193,200,89,251,193,202,89,251,193,204,89,251,193,206,89,251,193,208,89,251,193,32,91,251,193,34,91,251,193,36,91,251,193,38,91,251,193,40,91,251,193,42,91,251,193,44,91,251,193,110,92,251,193,112,92,251,193,114,92,251,193,116,92,251,193,118,92,251,193,120,92,251,193,122,92,251,193,124,92,251,193,126,92,251,193,128,92,251,193,130,92,251,193,230,93,251,193,232,93,251,193,234,93,251,193,236,93,251,193,238,93,251,193,240,93,251,193,242,93,251,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,128,11,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,193,70,90,251,193,70,240,251,193,72,240,251,193,74,240,251,193,76,240,251,193,78,240,251,193,80,240,251,193,82,240,251,193,84,240,251,193,86,240,251,193,88,240,251,193,90,240,251,193,92,240,251,193,94,240,251,193,96,240,251,193,98,240,251,193,100,240,251,193,102,240,251,193,104,240,251,193,106,240,251,193,108,240,251,193,110,240,251,193,112,240,251,193,114,240,251,206,160,36,0,206,160,11,0,206,160,11,0,206,160,11,0,206,160,11,0,193,170,91,251,193,172,91,251,193,174,91,251,193,176,91,251,193,178,91,251,193,180,91,251,193,182,91,251,193,184,91,251,193,186,91,251,193,188,91,251,193,190,91,251,193,192,91,251,193,194,91,251,193,196,91,251,193,26,93,251,193,28,93,251,193,30,93,251,193,32,93,251,193,34,93,251,193,36,93,251,193,38,93,251,193,40,93,251,193,42,93,251,193,44,93,251,193,46,93,251,193,48,93,251,193,118,94,251,193,120,94,251,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,206,192,11,0,193,218,91,251,193,220,91,251,193,222,91,251,193,224,91,251,193,226,91,251,193,228,91,251,193,230,91,251,193,232,91,251,193,234,91,251,193,236,91,251,193,238,91,251,193,240,91,251,193,242,91,251,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,206,224,11,0,193,10,92,251,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,0,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,32,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,206,64,12,0,193,52,93,251,193,54,93,251,193,56,93,251,193,58,93,251,193,60,93,251,193,62,93,251,193,64,93,251,193,66,93,251,193,68,93,251,193,70,93,251,193,72,93,251,193,74,93,251,193,150,94,251,193,152,94,251,193,154,94,251,193,156,94,251,193,158,94,251,193,160,94,251,193,162,94,251,193,164,94,251,193,166,94,251,193,194,95,251,193,196,95,251,193,198,95,251,193,200,95,251,193,202,95,251,193,8,92,251,193,120,93,251,193,122,93,251,193,124,93,251,193,126,93,251,193,128,93,251,193,130,93,251,193,132,93,251,193,134,93,251,193,136,93,251,193,138,93,251,193,140,93,251,193,142,93,251,193,202,94,251,193,204,94,251,193,206,94,251,193,208,94,251,193,210,94,251,193,212,94,251,193,214,94,251,193,216,94,251,193,218,94,251,193,220,94,251,193,222,94,251,193,224,94,251,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,206,96,12,0,193,144,93,251,193,90,92,251,193,92,92,251,193,94,92,251,193,96,92,251,193,98,92,251,193,146,93,251,193,100,92,251,193,102,92,251,193,104,92,251,193,106,92,251,193,108,92,251,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,128,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,206,160,12,0,193,168,94,251,193,170,94,251,193,172,94,251,193,174,94,251,193,176,94,251,193,178,94,251,193,180,94,251,193,182,94,251,193,184,94,251,193,186,94,251,193,188,94,251,193,190,94,251,193,192,94,251,193,194,94,251,193,196,94,251,193,198,94,251,193,200,94,251,193,210,95,251,193,212,95,251,193,214,95,251,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,192,12,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,224,12,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,193,122,44,253,193,124,44,253,193,126,44,253,193,128,44,253,193,130,44,253,193,144,44,253,193,146,44,253,193,116,94,251,193,148,44,253,193,162,44,253,193,164,44,253,193,166,44,253,193,168,44,253,193,184,44,253,193,186,44,253,193,188,44,253,193,190,44,253,193,192,44,253,193,194,44,253,193,196,44,253,193,198,44,253,193,200,44,253,193,202,44,253,193,218,44,253,193,220,44,253,193,222,44,253,193,224,44,253,193,226,44,253,193,238,44,253,193,240,44,253,193,242,44,253,193,244,44,253,193,122,94,251,193,124,94,251,193,126,94,251,193,128,94,251,193,130,94,251,193,132,94,251,193,134,94,251,193,136,94,251,193,138,94,251,193,140,94,251,193,142,94,251,193,144,94,251,193,146,94,251,193,148,94,251,193,170,95,251,193,172,95,251,193,174,95,251,193,176,95,251,193,178,95,251,193,180,95,251,193,182,95,251,193,184,95,251,193,186,95,251,193,188,95,251,193,190,95,251,193,214,96,251,193,216,96,251,193,218,96,251,193,220,96,251,193,222,96,251,193,224,96,251,193,178,97,251,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,0,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,193,56,95,251,193,58,95,251,193,60,95,251,193,62,95,251,193,64,95,251,193,66,95,251,193,68,95,251,193,66,96,251,193,68,96,251,193,70,96,251,193,72,96,251,193,74,96,251,193,76,96,251,193,78,96,251,193,80,96,251,193,82,96,251,193,80,97,251,193,82,97,251,193,84,97,251,193,86,97,251,193,88,97,251,193,90,97,251,193,92,97,251,193,254,97,251,193,2,98,251,193,4,98,251,193,6,98,251,193,122,98,251,193,124,98,251,193,126,98,251,193,238,98,251,193,240,98,251,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,206,32,13,0,193,86,96,251,193,88,96,251,193,200,216,252,193,210,216,252,193,216,216,252,193,218,216,252,193,220,216,252,193,228,216,252,193,230,216,252,193,232,216,252,193,168,95,251,193,236,216,252,193,238,216,252,193,240,216,252,193,242,216,252,193,244,216,252,193,250,216,252,193,252,216,252,193,254,216,252,193,12,217,252,193,14,217,252,193,16,217,252,193,18,217,252,193,24,217,252,193,26,217,252,193,34,217,252,193,36,217,252,193,28,217,252,193,38,217,252,193,40,217,252,193,42,217,252,193,56,217,252,193,58,217,252,193,60,217,252,193,192,95,251,193,192,97,251,193,166,101,251,193,178,101,251,193,126,104,251,193,4,106,251,193,140,107,251,193,122,109,251,193,124,109,251,193,164,110,251,193,166,110,251,193,168,110,251,193,128,113,251,193,144,115,251,193,160,116,251,193,62,121,251,193,250,125,251,193,128,126,251,193,250,131,251,193,32,136,251,193,130,138,251,193,150,139,251,193,8,157,251,193,10,157,251,193,180,165,251,193,142,171,251,193,138,194,251,193,14,196,251,193,6,202,251,193,226,203,251,193,208,205,251,193,64,210,251,193,204,95,251,193,206,95,251,193,208,95,251,193,226,96,251,193,228,96,251,193,230,96,251,193,232,96,251,193,234,96,251,193,236,96,251,193,238,96,251,193,240,96,251,193,242,96,251,193,244,96,251,193,194,97,251,193,196,97,251,193,198,97,251,193,96,98,251,193,98,98,251,193,100,98,251,193,102,98,251,193,104,98,251,193,106,98,251,193,196,98,251,193,198,98,251,193,200,98,251,193,36,99,251,193,38,99,251,193,40,99,251,193,42,99,251,193,90,99,251,193,92,99,251,193,94,99,251,193,216,95,251,193,218,95,251,193,220,95,251,193,222,95,251,193,224,95,251,193,226,95,251,193,228,95,251,193,230,95,251,193,232,95,251,193,234,95,251,193,246,96,251,193,248,96,251,193,250,96,251,193,252,96,251,193,254,96,251,193,2,97,251,193,4,97,251,193,6,97,251,193,8,97,251,193,10,97,251,193,12,97,251,193,14,97,251,193,200,97,251,193,202,97,251,193,204,97,251,193,206,97,251,193,208,97,251,193,210,97,251,193,212,97,251,193,214,97,251,193,108,98,251,193,110,98,251,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,206,64,13,0,193,16,97,251,193,18,97,251,193,20,97,251,193,22,97,251,193,24,97,251,193,26,97,251,193,28,97,251,193,30,97,251,193,32,97,251,193,34,97,251,193,36,97,251,193,38,97,251,193,216,97,251,193,218,97,251,193,220,97,251,193,222,97,251,193,224,97,251,193,226,97,251,193,228,97,251,193,114,98,251,193,116,98,251,193,210,98,251,193,212,98,251,193,214,98,251,193,216,98,251,193,218,98,251,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,206,96,13,0,193,16,215,253,193,32,96,251,193,34,96,251,193,36,96,251,193,38,96,251,193,40,96,251,193,42,96,251,193,44,96,251,193,46,96,251,193,48,96,251,193,50,96,251,193,52,96,251,193,54,96,251,193,56,96,251,193,58,96,251,193,60,96,251,193,62,96,251,193,64,96,251,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,193,90,96,251,193,92,96,251,193,94,96,251,193,96,96,251,193,98,96,251,193,100,96,251,193,102,96,251,193,104,96,251,193,106,96,251,193,108,96,251,193,110,96,251,193,112,96,251,193,114,96,251,193,116,96,251,193,118,96,251,193,120,96,251,193,122,96,251,193,124,96,251,193,126,96,251,193,128,96,251,193,130,96,251,193,132,96,251,193,134,96,251,193,136,96,251,193,138,96,251,193,140,96,251,193,142,96,251,193,144,96,251,193,146,96,251,193,148,96,251,193,150,96,251,193,152,96,251,193,154,96,251,193,156,96,251,193,158,96,251,193,160,96,251,193,162,96,251,193,164,96,251,193,166,96,251,193,168,96,251,193,170,96,251,193,172,96,251,193,174,96,251,193,176,96,251,193,178,96,251,193,180,96,251,193,182,96,251,193,184,96,251,193,186,96,251,193,188,96,251,193,190,96,251,193,192,96,251,193,194,96,251,193,196,96,251,193,198,96,251,193,200,96,251,193,202,96,251,193,204,96,251,193,206,96,251,193,208,96,251,193,210,96,251,193,212,96,251,193,94,97,251,193,96,97,251,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,206,128,13,0,193,230,97,251,193,232,97,251,193,234,97,251,193,236,97,251,193,238,97,251,193,240,97,251,193,242,97,251,193,244,97,251,193,246,97,251,193,248,97,251,193,250,97,251,193,118,98,251,193,120,98,251,193,222,98,251,193,224,98,251,193,226,98,251,193,228,98,251,193,230,98,251,193,232,98,251,193,98,97,251,193,100,97,251,193,102,97,251,193,104,97,251,193,106,97,251,193,108,97,251,193,110,97,251,193,112,97,251,193,114,97,251,193,116,97,251,193,118,97,251,193,120,97,251,193,122,97,251,193,124,97,251,193,126,97,251,193,128,97,251,193,130,97,251,193,132,97,251,193,134,97,251,193,136,97,251,193,138,97,251,193,140,97,251,193,142,97,251,193,144,97,251,193,146,97,251,193,148,97,251,193,126,119,253,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,206,160,13,0,193,8,98,251,193,10,98,251,193,12,98,251,193,14,98,251,193,16,98,251,193,18,98,251,193,20,98,251,193,22,98,251,193,24,98,251,193,26,98,251,193,28,98,251,193,30,98,251,193,32,98,251,193,34,98,251,193,36,98,251,193,38,98,251,193,40,98,251,193,42,98,251,193,44,98,251,193,46,98,251,193,48,98,251,193,50,98,251,193,52,98,251,193,180,97,251,193,182,97,251,193,184,97,251,193,186,97,251,193,188,97,251,193,190,97,251,193,84,98,251,193,86,98,251,193,88,98,251,193,90,98,251,193,92,98,251,193,94,98,251,193,188,98,251,193,190,98,251,193,192,98,251,193,194,98,251,193,34,99,251,193,88,99,251,193,28,100,251,193,74,100,251,193,168,100,251,193,230,100,251,193,66,101,251,193,164,101,251,193,194,101,251,193,206,101,251,193,236,101,251,193,8,102,251,193,46,102,251,193,108,102,251,193,130,102,251,193,152,102,251,193,54,98,251,193,74,218,253,193,56,98,251,193,58,98,251,193,60,98,251,193,62,98,251,193,64,98,251,193,66,98,251,193,68,98,251,193,70,98,251,193,72,98,251,193,74,98,251,193,76,98,251,193,78,98,251,193,80,98,251,193,82,98,251,193,128,98,251,193,130,98,251,193,132,98,251,193,134,98,251,193,136,98,251,193,138,98,251,193,140,98,251,193,142,98,251,193,144,98,251,193,146,98,251,193,148,98,251,193,150,98,251,193,152,98,251,193,154,98,251,193,156,98,251,193,158,98,251,193,112,98,251,193,202,98,251,193,204,98,251,193,206,98,251,193,208,98,251,193,44,99,251,193,46,99,251,193,48,99,251,193,50,99,251,193,52,99,251,193,96,99,251,193,98,99,251,193,138,99,251,193,140,99,251,193,142,99,251,193,162,99,251,193,200,99,251,193,208,99,251,193,250,99,251,193,56,100,251,193,58,100,251,193,60,100,251,193,76,100,251,193,98,100,251,193,116,100,251,193,134,100,251,193,150,100,251,193,172,100,251,193,176,100,251,193,190,100,251,193,214,100,251,193,234,100,251,193,242,98,251,193,160,98,251,193,162,98,251,193,164,98,251,193,166,98,251,193,168,98,251,193,170,98,251,193,172,98,251,193,174,98,251,193,176,98,251,193,178,98,251,193,180,98,251,193,244,98,251,193,182,98,251,193,184,98,251,193,186,98,251,193,246,98,251,193,248,98,251,193,250,98,251,193,252,98,251,193,254,98,251,193,2,99,251,193,4,99,251,193,6,99,251,193,8,99,251,193,10,99,251,193,12,99,251,193,50,44,253,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,193,220,98,251,193,54,99,251,193,56,99,251,193,100,99,251,193,102,99,251,193,164,99,251,193,180,99,251,193,210,99,251,193,246,99,251,193,30,100,251,193,78,100,251,193,100,100,251,193,102,100,251,193,158,100,251,193,216,100,251,193,54,101,251,193,200,101,251,193,58,102,251,193,60,102,251,193,74,102,251,193,118,102,251,193,120,102,251,193,138,102,251,193,158,102,251,193,172,102,251,193,8,103,251,193,56,103,251,193,126,103,251,193,128,103,251,193,236,103,251,193,238,103,251,193,240,103,251,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,206,192,13,0,193,66,99,251,193,68,99,251,193,70,99,251,193,72,99,251,193,74,99,251,193,76,99,251,193,78,99,251,193,80,99,251,193,82,99,251,193,84,99,251,193,86,99,251,193,106,99,251,193,108,99,251,193,110,99,251,193,112,99,251,193,114,99,251,193,116,99,251,193,232,161,253,193,118,99,251,193,120,99,251,193,144,99,251,193,122,99,251,193,124,99,251,193,126,99,251,193,128,99,251,193,130,99,251,193,64,99,251,193,184,99,251,193,204,99,251,193,50,100,251,193,108,100,251,193,210,100,251,193,10,101,251,193,12,101,251,193,144,101,251,193,186,101,251,193,20,102,251,193,84,102,251,193,86,102,251,193,174,102,251,193,242,102,251,193,26,103,251,193,28,103,251,193,30,103,251,193,70,103,251,193,72,103,251,193,150,103,251,193,152,103,251,193,154,103,251,193,156,103,251,193,158,103,251,193,160,103,251,193,6,104,251,193,8,104,251,193,152,104,251,193,154,104,251,193,156,104,251,193,234,104,251,193,132,99,251,193,134,99,251,193,146,99,251,193,148,99,251,193,150,99,251,193,152,99,251,193,154,99,251,193,156,99,251,193,158,99,251,193,160,99,251,193,170,99,251,193,172,99,251,193,174,99,251,193,176,99,251,193,178,99,251,193,186,99,251,193,188,99,251,193,190,99,251,193,192,99,251,193,194,99,251,193,196,99,251,193,198,99,251,193,206,99,251,193,212,99,251,193,214,99,251,193,216,99,251,193,218,99,251,193,226,99,251,193,230,99,251,193,242,99,251,193,244,99,251,193,248,99,251,193,136,99,251,193,8,100,251,193,10,100,251,193,94,100,251,193,96,100,251,193,114,100,251,193,154,100,251,193,156,100,251,193,170,100,251,193,174,100,251,193,228,100,251,193,28,101,251,193,30,101,251,193,196,101,251,193,238,101,251,193,10,102,251,193,12,102,251,193,48,102,251,193,50,102,251,193,110,102,251,193,112,102,251,193,132,102,251,193,154,102,251,193,156,102,251,193,168,102,251,193,194,102,251,193,200,102,251,193,226,102,251,193,52,103,251,193,116,103,251,193,118,103,251,193,120,103,251,193,2,100,251,193,4,100,251,193,6,100,251,193,14,100,251,193,16,100,251,193,18,100,251,193,20,100,251,193,22,100,251,193,24,100,251,193,26,100,251,193,36,100,251,193,38,100,251,193,40,100,251,193,42,100,251,193,52,100,251,193,54,100,251,193,64,100,251,193,236,104,251,193,66,100,251,193,68,100,251,193,70,100,251,193,72,100,251,193,84,100,251,193,66,218,253,193,86,100,251,193,88,100,251,193,90,100,251,193,92,100,251,193,110,100,251,193,112,100,251,193,120,100,251,193,122,100,251,193,106,100,251,193,118,100,251,193,178,100,251,193,182,100,251,193,184,100,251,193,192,100,251,193,198,100,251,193,206,100,251,193,208,100,251,193,6,101,251,193,232,100,251,193,240,100,251,193,246,100,251,193,8,101,251,193,20,101,251,193,22,101,251,193,72,101,251,193,106,101,251,193,120,101,251,193,108,101,251,193,128,101,251,193,136,101,251,193,138,101,251,193,140,101,251,193,142,101,251,193,152,101,251,193,154,101,251,193,156,101,251,193,182,101,251,193,184,101,251,193,208,101,251,193,240,101,251,193,124,100,251,193,126,100,251,193,128,100,251,193,130,100,251,193,132,100,251,193,136,100,251,193,4,45,253,193,138,100,251,193,140,100,251,193,142,100,251,193,144,100,251,193,146,100,251,193,148,100,251,193,152,100,251,193,240,133,252,193,162,100,251,193,164,100,251,193,166,100,251,193,180,100,251,193,186,100,251,193,188,100,251,193,194,100,251,193,196,100,251,193,200,100,251,193,202,100,251,193,204,100,251,193,212,100,251,193,220,100,251,193,222,100,251,193,226,100,251,193,236,100,251,193,238,100,251,193,66,211,253,193,76,211,253,193,78,211,253,193,80,211,253,193,82,211,253,193,96,211,253,193,98,211,253,193,100,211,253,193,102,211,253,193,104,211,253,193,106,211,253,193,108,211,253,193,110,211,253,193,112,211,253,193,114,211,253,193,116,211,253,193,118,211,253,193,120,211,253,193,122,211,253,193,124,211,253,193,140,211,253,193,142,211,253,193,144,211,253,193,146,211,253,193,148,211,253,193,150,211,253,193,152,211,253,193,224,100,251,193,154,211,253,193,156,211,253,193,158,211,253,193,160,211,253,193,242,100,251,193,244,100,251,193,248,100,251,193,250,100,251,193,252,100,251,193,254,100,251,193,26,101,251,193,36,101,251,193,38,101,251,193,40,101,251,193,42,101,251,193,44,101,251,193,46,101,251,193,52,101,251,193,58,101,251,193,60,101,251,193,62,101,251,193,64,101,251,193,74,101,251,193,76,101,251,193,78,101,251,193,80,101,251,193,86,101,251,193,88,101,251,193,92,101,251,193,94,101,251,193,96,101,251,193,102,101,251,193,110,101,251,193,112,101,251,193,114,101,251,193,116,101,251,193,2,101,251,193,4,101,251,193,14,101,251,193,16,101,251,193,18,101,251,193,32,101,251,193,34,101,251,193,48,101,251,193,68,101,251,193,70,101,251,193,82,101,251,193,84,101,251,193,90,101,251,193,98,101,251,193,100,101,251,193,104,101,251,193,118,101,251,193,124,101,251,193,130,101,251,193,168,101,251,193,170,101,251,193,180,101,251,193,198,101,251,193,14,102,251,193,16,102,251,193,52,102,251,193,54,102,251,193,56,102,251,193,114,102,251,193,116,102,251,193,134,102,251,193,136,102,251,193,122,101,251,193,126,101,251,193,132,101,251,193,134,101,251,193,146,101,251,193,148,101,251,193,150,101,251,193,158,101,251,193,160,101,251,193,162,101,251,193,172,101,251,193,174,101,251,193,176,101,251,193,188,101,251,193,190,101,251,193,192,101,251,193,202,101,251,193,204,101,251,193,212,101,251,193,214,101,251,193,216,101,251,193,218,101,251,193,220,101,251,193,222,101,251,193,224,101,251,193,226,101,251,193,228,101,251,193,230,101,251,193,232,101,251,193,244,101,251,193,246,101,251,193,248,101,251,193,100,212,251,193,110,212,251,193,112,212,251,193,114,212,251,193,116,212,251,193,118,212,251,193,120,212,251,193,122,212,251,193,234,101,251,193,124,212,251,193,130,212,251,193,132,212,251,193,134,212,251,193,136,212,251,193,144,212,251,193,146,212,251,193,148,212,251,193,150,212,251,193,152,212,251,193,154,212,251,193,156,212,251,193,158,212,251,193,160,212,251,193,162,212,251,193,164,212,251,193,166,212,251,193,174,212,251,193,176,212,251,193,178,212,251,193,182,212,251,193,184,212,251,193,186,212,251,193,242,101,251,193,18,102,251,193,76,102,251,193,78,102,251,193,80,102,251,193,82,102,251,193,122,102,251,193,204,102,251,193,206,102,251,193,208,102,251,193,210,102,251,193,212,102,251,193,214,102,251,193,216,102,251,193,228,102,251,193,230,102,251,193,232,102,251,193,234,102,251,193,236,102,251,193,238,102,251,193,240,102,251,193,10,103,251,193,12,103,251,193,14,103,251,193,16,103,251,193,18,103,251,193,20,103,251,193,22,103,251,193,24,103,251,193,58,103,251,193,60,103,251,193,62,103,251,193,250,101,251,193,252,101,251,193,254,101,251,193,2,102,251,193,4,102,251,193,6,102,251,193,26,102,251,193,28,102,251,193,30,102,251,193,32,102,251,193,34,102,251,193,36,102,251,193,38,102,251,193,40,102,251,193,42,102,251,193,62,102,251,193,44,102,251,193,64,102,251,193,66,102,251,193,68,102,251,193,70,102,251,193,72,102,251,193,88,102,251,193,90,102,251,193,92,102,251,193,94,102,251,193,96,102,251,193,98,102,251,193,100,102,251,193,102,102,251,193,104,102,251,193,124,102,251,193,126,102,251,193,128,102,251,193,144,102,251,193,146,102,251,193,148,102,251,193,150,102,251,193,162,102,251,193,164,102,251,193,166,102,251,193,176,102,251,193,178,102,251,193,182,102,251,193,184,102,251,193,188,102,251,193,190,102,251,193,196,102,251,193,186,102,251,193,202,102,251,193,218,102,251,193,220,102,251,193,222,102,251,193,244,102,251,193,246,102,251,193,248,102,251,193,250,102,251,193,252,102,251,193,254,102,251,193,2,103,251,193,52,72,252,193,34,103,251,193,36,103,251,193,38,103,251,193,170,102,251,193,180,102,251,193,6,103,251,193,54,103,251,193,122,103,251,193,124,103,251,193,224,103,251,193,226,103,251,193,228,103,251,193,230,103,251,193,232,103,251,193,234,103,251,193,54,104,251,193,56,104,251,193,58,104,251,193,132,104,251,193,134,104,251,193,136,104,251,193,138,104,251,193,204,104,251,193,206,104,251,193,208,104,251,193,210,104,251,193,44,105,251,193,46,105,251,193,48,105,251,193,50,105,251,193,52,105,251,193,122,105,251,193,124,105,251,193,126,105,251,193,128,105,251,193,192,102,251,193,224,102,251,193,4,103,251,193,50,103,251,193,110,103,251,193,112,103,251,193,114,103,251,193,206,103,251,193,208,103,251,193,210,103,251,193,212,103,251,193,214,103,251,193,216,103,251,193,42,104,251,193,44,104,251,193,46,104,251,193,120,104,251,193,122,104,251,193,124,104,251,193,196,104,251,193,198,104,251,193,200,104,251,193,24,105,251,193,26,105,251,193,28,105,251,193,106,105,251,193,108,105,251,193,110,105,251,193,164,105,251,193,166,105,251,193,168,105,251,193,214,105,251,193,94,6,252,193,96,6,252,193,98,6,252,193,100,6,252,193,102,6,252,193,104,6,252,193,106,6,252,193,108,6,252,193,110,6,252,193,120,6,252,193,122,6,252,193,124,6,252,193,126,6,252,193,128,6,252,193,112,6,252,193,130,6,252,193,132,6,252,193,134,6,252,193,146,6,252,193,198,102,251,193,148,6,252,193,150,6,252,193,160,6,252,193,162,6,252,193,164,6,252,193,168,6,252,193,172,6,252,193,174,6,252,193,176,6,252,193,182,6,252,193,184,6,252,193,186,6,252,193,40,103,251,193,42,103,251,193,44,103,251,193,46,103,251,193,48,103,251,193,74,103,251,193,76,103,251,193,78,103,251,193,80,103,251,193,82,103,251,193,84,103,251,193,86,103,251,193,88,103,251,193,90,103,251,193,92,103,251,193,94,103,251,193,96,103,251,193,98,103,251,193,100,103,251,193,102,103,251,193,104,103,251,193,106,103,251,193,108,103,251,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,193,64,103,251,193,66,103,251,193,68,103,251,193,130,103,251,193,132,103,251,193,134,103,251,193,136,103,251,193,138,103,251,193,140,103,251,193,142,103,251,193,64,104,251,193,144,103,251,193,146,103,251,193,148,103,251,193,242,103,251,193,244,103,251,193,246,103,251,193,248,103,251,193,250,103,251,193,252,103,251,193,254,103,251,193,2,104,251,193,4,104,251,193,66,104,251,193,68,104,251,193,70,104,251,193,72,104,251,193,144,104,251,193,146,104,251,193,148,104,251,193,150,104,251,193,220,104,251,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,206,224,13,0,193,10,104,251,193,12,104,251,193,14,104,251,193,16,104,251,193,18,104,251,193,20,104,251,193,22,104,251,193,24,104,251,193,26,104,251,193,28,104,251,193,30,104,251,193,32,104,251,193,34,104,251,193,36,104,251,193,38,104,251,193,40,104,251,193,74,104,251,193,76,104,251,193,78,104,251,193,218,103,251,193,220,103,251,193,222,103,251,193,48,104,251,193,50,104,251,193,52,104,251,193,128,104,251,193,130,104,251,193,202,104,251,193,30,105,251,193,32,105,251,193,34,105,251,193,36,105,251,193,38,105,251,193,40,105,251,193,42,105,251,193,112,105,251,193,114,105,251,193,116,105,251,193,118,105,251,193,120,105,251,193,170,105,251,193,172,105,251,193,174,105,251,193,220,105,251,193,222,105,251,193,224,105,251,193,226,105,251,193,228,105,251,193,6,106,251,193,8,106,251,193,10,106,251,193,60,104,251,193,62,104,251,193,140,104,251,193,142,104,251,193,212,104,251,193,214,104,251,193,216,104,251,193,218,104,251,193,54,105,251,193,56,105,251,193,58,105,251,193,60,105,251,193,62,105,251,193,130,105,251,193,132,105,251,193,178,105,251,193,180,105,251,193,230,105,251,193,20,106,251,193,22,106,251,193,72,106,251,193,106,106,251,193,142,106,251,193,234,106,251,193,236,106,251,193,170,107,251,193,172,107,251,193,174,107,251,193,158,108,251,193,162,109,251,193,164,109,251,193,166,109,251,193,80,104,251,193,82,104,251,193,84,104,251,193,86,104,251,193,88,104,251,193,90,104,251,193,92,104,251,193,94,104,251,193,96,104,251,193,98,104,251,193,100,104,251,193,102,104,251,193,104,104,251,193,106,104,251,193,108,104,251,193,110,104,251,193,112,104,251,193,114,104,251,193,116,104,251,193,118,104,251,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,206,0,14,0,193,238,104,251,193,240,104,251,193,242,104,251,193,244,104,251,193,246,104,251,193,248,104,251,193,250,104,251,193,252,104,251,193,254,104,251,193,2,105,251,193,4,105,251,193,6,105,251,193,8,105,251,193,10,105,251,193,12,105,251,193,14,105,251,193,16,105,251,193,18,105,251,193,20,105,251,193,22,105,251,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,193,222,104,251,193,224,104,251,193,226,104,251,193,228,104,251,193,230,104,251,193,232,104,251,193,64,105,251,193,66,105,251,193,68,105,251,193,134,105,251,193,136,105,251,193,138,105,251,193,140,105,251,193,182,105,251,193,232,105,251,193,234,105,251,193,44,106,251,193,78,106,251,193,92,106,251,193,100,106,251,193,108,106,251,193,110,106,251,193,112,106,251,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,193,70,105,251,193,236,105,251,193,114,106,251,193,180,106,251,193,182,106,251,193,184,106,251,193,186,106,251,193,188,106,251,193,190,106,251,193,52,107,251,193,54,107,251,193,56,107,251,193,58,107,251,193,60,107,251,193,62,107,251,193,64,107,251,193,10,108,251,193,12,108,251,193,14,108,251,193,16,108,251,193,18,108,251,193,20,108,251,193,22,108,251,193,24,108,251,193,26,108,251,193,28,108,251,193,30,108,251,193,32,108,251,193,34,108,251,193,36,108,251,193,38,108,251,193,40,108,251,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,206,32,14,0,193,142,105,251,193,144,105,251,193,146,105,251,193,148,105,251,193,150,105,251,193,152,105,251,193,154,105,251,193,156,105,251,193,158,105,251,193,160,105,251,193,162,105,251,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,193,176,105,251,193,14,106,251,193,16,106,251,193,18,106,251,193,42,106,251,193,52,106,251,193,62,106,251,193,132,106,251,193,134,106,251,193,136,106,251,193,138,106,251,193,140,106,251,193,230,106,251,193,232,106,251,193,166,107,251,193,168,107,251,193,146,108,251,193,148,108,251,193,150,108,251,193,152,108,251,193,154,108,251,193,156,108,251,193,154,109,251,193,156,109,251,193,158,109,251,193,160,109,251,193,196,110,251,193,198,110,251,193,200,110,251,193,202,110,251,193,204,110,251,193,206,110,251,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,206,64,14,0,193,238,105,251,193,240,105,251,193,242,105,251,193,244,105,251,193,246,105,251,193,248,105,251,193,250,105,251,193,252,105,251,193,254,105,251,193,24,106,251,193,26,106,251,193,28,106,251,193,30,106,251,193,32,106,251,193,34,106,251,193,36,106,251,193,38,106,251,193,46,106,251,193,54,106,251,193,56,106,251,193,58,106,251,193,64,106,251,193,74,106,251,193,76,106,251,193,80,106,251,193,82,106,251,193,216,105,251,193,218,105,251,193,50,106,251,193,66,106,251,193,220,106,251,193,222,106,251,193,126,107,251,193,128,107,251,193,130,107,251,193,132,107,251,193,134,107,251,193,136,107,251,193,138,107,251,193,128,108,251,193,130,108,251,193,132,108,251,193,134,108,251,193,112,109,251,193,114,109,251,193,116,109,251,193,118,109,251,193,120,109,251,193,154,110,251,193,156,110,251,193,158,110,251,193,160,110,251,193,162,110,251,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,193,2,106,251,193,44,60,252,193,46,60,252,193,48,60,252,193,50,60,252,193,52,60,252,193,54,60,252,193,56,60,252,193,58,60,252,193,60,60,252,193,62,60,252,193,64,60,252,193,66,60,252,193,68,60,252,193,70,60,252,193,72,60,252,193,74,60,252,193,76,60,252,193,78,60,252,193,80,60,252,193,82,60,252,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,193,12,106,251,193,40,106,251,193,60,106,251,193,68,106,251,193,70,106,251,193,90,106,251,193,104,106,251,193,130,106,251,193,224,106,251,193,226,106,251,193,228,106,251,193,142,107,251,193,144,107,251,193,146,107,251,193,148,107,251,193,150,107,251,193,152,107,251,193,154,107,251,193,156,107,251,193,158,107,251,193,160,107,251,193,162,107,251,193,164,107,251,193,136,108,251,193,138,108,251,193,140,108,251,193,142,108,251,193,144,108,251,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,193,192,145,251,193,194,145,251,193,228,145,251,193,230,145,251,193,232,145,251,193,234,145,251,193,236,145,251,193,238,145,251,193,240,145,251,193,242,145,251,193,244,145,251,193,246,145,251,193,248,145,251,193,250,145,251,193,252,145,251,193,254,145,251,193,2,146,251,193,4,146,251,193,6,146,251,193,8,146,251,193,10,146,251,193,12,146,251,193,14,146,251,193,48,106,251,193,56,146,251,193,58,146,251,193,60,146,251,193,62,146,251,193,64,146,251,193,66,146,251,193,68,146,251,193,70,146,251,193,84,106,251,193,86,106,251,193,88,106,251,193,94,106,251,193,96,106,251,193,98,106,251,193,102,106,251,193,116,106,251,193,118,106,251,193,120,106,251,193,122,106,251,193,124,106,251,193,126,106,251,193,128,106,251,193,192,106,251,193,194,106,251,193,196,106,251,193,198,106,251,193,200,106,251,193,202,106,251,193,204,106,251,193,206,106,251,193,208,106,251,193,210,106,251,193,212,106,251,193,214,106,251,193,216,106,251,193,218,106,251,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,206,96,14,0,193,238,106,251,193,240,106,251,193,242,106,251,193,244,106,251,193,160,108,251,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,128,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,193,66,107,251,193,50,110,251,193,52,110,251,193,54,110,251,193,56,110,251,193,90,111,251,193,92,111,251,193,94,111,251,193,96,111,251,193,98,111,251,193,100,111,251,193,102,111,251,193,104,111,251,193,106,111,251,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,206,160,14,0,193,46,108,251,193,48,108,251,193,50,108,251,193,52,108,251,193,54,108,251,193,56,108,251,193,58,108,251,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,192,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,193,42,108,251,193,44,108,251,193,2,109,251,193,4,109,251,193,6,109,251,193,8,109,251,193,10,109,251,193,12,109,251,193,14,109,251,193,16,109,251,193,18,109,251,193,20,109,251,193,22,109,251,193,12,110,251,193,14,110,251,193,16,110,251,193,18,110,251,193,20,110,251,193,22,110,251,193,24,110,251,193,26,110,251,193,28,110,251,193,30,110,251,193,32,110,251,193,34,110,251,193,36,110,251,193,38,110,251,193,40,110,251,193,42,110,251,193,44,110,251,193,46,110,251,193,48,110,251,193,60,108,251,193,62,108,251,193,64,108,251,193,66,108,251,193,68,108,251,193,70,108,251,193,72,108,251,193,74,108,251,193,76,108,251,193,78,108,251,193,80,108,251,193,82,108,251,193,84,108,251,193,86,108,251,193,88,108,251,193,90,108,251,193,92,108,251,193,94,108,251,193,96,108,251,193,98,108,251,193,100,108,251,193,102,108,251,193,104,108,251,193,106,108,251,193,108,108,251,193,110,108,251,193,112,108,251,193,114,108,251,193,116,108,251,193,118,108,251,193,120,108,251,193,122,108,251,193,124,108,251,193,126,108,251,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,206,224,14,0,193,176,109,251,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,206,0,15,0,193,114,168,252,193,248,108,251,193,250,108,251,193,252,108,251,193,254,108,251,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,32,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,206,64,15,0,193,170,110,251,193,172,110,251,193,174,110,251,193,176,110,251,193,178,110,251,193,180,110,251,193,182,110,251,193,184,110,251,193,186,110,251,193,188,110,251,193,190,110,251,193,192,110,251,193,194,110,251,193,254,111,251,193,2,112,251,193,4,112,251,193,6,112,251,193,8,112,251,193,10,112,251,193,12,112,251,193,14,112,251,193,16,112,251,193,168,109,251,193,170,109,251,193,172,109,251,193,174,109,251,193,208,110,251,193,210,110,251,193,34,112,251,193,36,112,251,193,38,112,251,193,40,112,251,193,42,112,251,193,44,112,251,193,174,113,251,193,176,113,251,193,178,113,251,193,174,114,251,193,176,114,251,193,178,114,251,193,180,114,251,193,182,114,251,193,184,114,251,193,196,115,251,193,194,116,251,193,196,116,251,193,144,117,251,193,146,117,251,193,148,117,251,193,54,119,251,193,168,119,251,193,170,119,251,193,208,119,251,193,210,119,251,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,206,96,15,0,193,212,110,251,193,248,109,251,193,250,109,251,193,252,109,251,193,254,109,251,193,2,110,251,193,4,110,251,193,6,110,251,193,8,110,251,193,214,110,251,193,216,110,251,193,218,110,251,193,220,110,251,193,222,110,251,193,224,110,251,193,226,110,251,193,228,110,251,193,10,110,251,193,230,110,251,193,232,110,251,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,206,128,15,0,193,108,111,251,193,110,111,251,193,234,110,251,193,236,110,251,193,238,110,251,193,240,110,251,193,242,110,251,193,244,110,251,193,246,110,251,193,248,110,251,193,250,110,251,193,252,110,251,193,254,110,251,193,2,111,251,193,4,111,251,193,6,111,251,193,8,111,251,193,10,111,251,193,12,111,251,193,14,111,251,193,16,111,251,193,18,111,251,193,20,111,251,193,22,111,251,193,24,111,251,193,26,111,251,193,28,111,251,193,30,111,251,193,32,111,251,193,34,111,251,193,36,111,251,193,38,111,251,193,40,111,251,193,42,111,251,193,44,111,251,193,46,111,251,193,48,111,251,193,50,111,251,193,52,111,251,193,54,111,251,193,56,111,251,193,58,111,251,193,60,111,251,193,62,111,251,193,64,111,251,193,66,111,251,193,68,111,251,193,70,111,251,193,72,111,251,193,74,111,251,193,76,111,251,193,78,111,251,193,80,111,251,193,82,111,251,193,84,111,251,193,86,111,251,193,88,111,251,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,193,112,111,251,193,114,111,251,193,116,111,251,193,118,111,251,193,120,111,251,193,122,111,251,193,124,111,251,193,126,111,251,193,128,111,251,193,130,111,251,193,132,111,251,193,134,111,251,193,136,111,251,193,138,111,251,193,140,111,251,193,142,111,251,193,144,111,251,193,146,111,251,193,148,111,251,193,150,111,251,193,152,111,251,193,154,111,251,193,156,111,251,193,158,111,251,193,160,111,251,193,162,111,251,193,164,111,251,193,166,111,251,193,168,111,251,193,170,111,251,193,172,111,251,193,174,111,251,193,176,111,251,193,178,111,251,193,180,111,251,193,182,111,251,193,184,111,251,193,186,111,251,193,188,111,251,193,190,111,251,193,192,111,251,193,194,111,251,193,196,111,251,193,198,111,251,193,200,111,251,193,202,111,251,193,204,111,251,193,206,111,251,193,208,111,251,193,210,111,251,193,212,111,251,193,214,111,251,193,216,111,251,193,218,111,251,193,220,111,251,193,222,111,251,193,224,111,251,193,226,111,251,193,228,111,251,193,230,111,251,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,206,160,15,0,193,106,113,251,193,108,113,251,193,110,113,251,193,112,113,251,193,114,113,251,193,116,113,251,193,118,113,251,193,120,113,251,193,122,113,251,193,124,113,251,193,126,113,251,193,124,114,251,193,126,114,251,193,128,114,251,193,130,114,251,193,132,114,251,193,134,114,251,193,126,115,251,193,128,115,251,193,130,115,251,193,132,115,251,193,134,115,251,193,136,115,251,193,138,115,251,193,140,115,251,193,142,115,251,193,18,112,251,193,20,112,251,193,22,112,251,193,130,113,251,193,132,113,251,193,134,113,251,193,136,113,251,193,138,113,251,193,140,113,251,193,142,113,251,193,144,113,251,193,146,113,251,193,148,113,251,193,150,113,251,193,152,113,251,193,154,113,251,193,156,113,251,193,136,114,251,193,138,114,251,193,140,114,251,193,142,114,251,193,144,114,251,193,146,114,251,193,148,114,251,193,150,114,251,193,152,114,251,193,154,114,251,193,156,114,251,193,158,114,251,193,160,114,251,193,162,114,251,193,146,115,251,193,24,112,251,193,26,112,251,193,28,112,251,193,30,112,251,193,32,112,251,193,158,113,251,193,160,113,251,193,162,113,251,193,164,113,251,193,166,113,251,193,168,113,251,193,170,113,251,193,172,113,251,193,164,114,251,193,166,114,251,193,168,114,251,193,170,114,251,193,172,114,251,193,172,115,251,193,174,115,251,193,176,115,251,193,178,115,251,193,180,115,251,193,182,115,251,193,184,115,251,193,186,115,251,193,188,115,251,193,190,115,251,193,192,115,251,193,194,115,251,193,186,116,251,193,188,116,251,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,206,192,15,0,193,180,113,251,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,224,15,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,206,64,16,0,193,158,112,251,193,244,113,251,193,246,113,251,193,248,113,251,193,250,113,251,193,252,113,251,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,206,0,16,0,193,254,113,251,193,2,114,251,193,4,114,251,193,6,114,251,193,8,114,251,193,10,114,251,193,12,114,251,193,14,114,251,193,16,114,251,193,18,114,251,193,20,114,251,193,22,114,251,193,24,114,251,193,26,114,251,193,28,114,251,193,30,114,251,193,246,114,251,193,248,114,251,193,250,114,251,193,252,114,251,193,254,114,251,193,2,115,251,193,4,115,251,193,6,115,251,193,8,115,251,193,10,115,251,193,12,115,251,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,32,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,193,36,115,251,193,38,115,251,193,40,115,251,193,104,113,251,193,42,115,251,193,44,115,251,193,46,115,251,193,48,115,251,193,50,115,251,193,52,115,251,193,54,115,251,193,56,115,251,193,58,115,251,193,60,115,251,193,62,115,251,193,64,115,251,193,66,115,251,193,68,115,251,193,18,116,251,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,206,96,16,0,193,14,116,251,193,20,115,251,193,16,116,251,193,22,115,251,193,24,115,251,193,26,115,251,193,28,115,251,193,30,115,251,193,32,115,251,193,34,115,251,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,128,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,193,14,115,251,193,16,115,251,193,18,115,251,193,2,116,251,193,4,116,251,193,6,116,251,193,8,116,251,193,10,116,251,193,12,116,251,193,238,116,251,193,240,116,251,193,242,116,251,193,244,116,251,193,246,116,251,193,190,117,251,193,192,117,251,193,46,118,251,193,48,118,251,193,126,118,251,193,128,118,251,193,130,118,251,193,132,118,251,193,202,118,251,193,204,118,251,193,206,118,251,193,250,118,251,193,28,119,251,193,94,119,251,193,96,119,251,193,152,119,251,193,182,119,251,193,184,119,251,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,160,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,193,148,115,251,193,150,115,251,193,152,115,251,193,154,115,251,193,156,115,251,193,158,115,251,193,160,115,251,193,162,115,251,193,164,115,251,193,166,115,251,193,168,115,251,193,170,115,251,193,162,116,251,193,164,116,251,193,166,116,251,193,168,116,251,193,170,116,251,193,172,116,251,193,174,116,251,193,176,116,251,193,178,116,251,193,180,116,251,193,182,116,251,193,184,116,251,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,206,192,16,0,193,198,116,251,193,200,116,251,193,202,116,251,193,204,116,251,193,206,116,251,193,208,116,251,193,210,116,251,193,212,116,251,193,214,116,251,193,216,116,251,193,218,116,251,193,220,116,251,193,222,116,251,193,224,116,251,193,226,116,251,193,228,116,251,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,206,224,16,0,193,248,116,251,193,112,171,252,193,146,116,251,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,193,148,116,251,193,150,116,251,193,152,116,251,193,154,116,251,193,156,116,251,193,158,116,251,193,100,117,251,193,102,117,251,193,104,117,251,193,106,117,251,193,108,117,251,193,12,118,251,193,88,118,251,193,90,118,251,193,92,118,251,193,94,118,251,193,170,118,251,193,172,118,251,193,228,118,251,193,14,119,251,193,16,119,251,193,64,119,251,193,200,119,251,193,202,119,251,193,204,119,251,193,206,119,251,193,12,120,251,193,68,120,251,193,144,120,251,193,146,120,251,193,148,120,251,193,204,120,251,193,190,116,251,193,192,116,251,193,136,117,251,193,138,117,251,193,140,117,251,193,142,117,251,193,30,118,251,193,32,118,251,193,34,118,251,193,110,118,251,193,112,118,251,193,114,118,251,193,116,118,251,193,118,118,251,193,186,118,251,193,234,118,251,193,236,118,251,193,238,118,251,193,240,118,251,193,242,118,251,193,84,119,251,193,92,119,251,193,136,119,251,193,138,119,251,193,140,119,251,193,142,119,251,193,162,119,251,193,164,119,251,193,166,119,251,193,20,120,251,193,22,120,251,193,24,120,251,193,230,116,251,193,232,116,251,193,234,116,251,193,150,117,251,193,152,117,251,193,154,117,251,193,156,117,251,193,158,117,251,193,160,117,251,193,162,117,251,193,164,117,251,193,166,117,251,193,168,117,251,193,170,117,251,193,172,117,251,193,174,117,251,193,176,117,251,193,178,117,251,193,180,117,251,193,182,117,251,193,236,116,251,193,184,117,251,193,186,117,251,193,188,117,251,193,36,118,251,193,120,118,251,193,38,118,251,193,40,118,251,193,42,118,251,193,44,118,251,193,122,118,251,193,124,118,251,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,206,0,17,0,193,194,117,251,193,196,117,251,193,198,117,251,193,200,117,251,193,202,117,251,193,204,117,251,193,206,117,251,193,208,117,251,193,210,117,251,193,212,117,251,193,214,117,251,193,216,117,251,193,218,117,251,193,220,117,251,193,222,117,251,193,224,117,251,193,226,117,251,193,228,117,251,193,230,117,251,193,232,117,251,193,234,117,251,193,236,117,251,193,238,117,251,193,240,117,251,193,242,117,251,193,244,117,251,193,246,117,251,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,206,32,17,0,193,14,118,251,193,16,118,251,193,18,118,251,193,20,118,251,193,22,118,251,193,24,118,251,193,26,118,251,193,28,118,251,193,96,118,251,193,98,118,251,193,100,118,251,193,102,118,251,193,104,118,251,193,106,118,251,193,108,118,251,193,174,118,251,193,176,118,251,193,178,118,251,193,180,118,251,193,182,118,251,193,184,118,251,193,230,118,251,193,232,118,251,193,18,119,251,193,20,119,251,193,50,119,251,193,52,119,251,193,248,117,251,193,250,117,251,193,184,98,253,193,252,117,251,193,254,117,251,193,2,118,251,193,4,118,251,193,6,118,251,193,8,118,251,193,10,118,251,193,50,118,251,193,52,118,251,193,54,118,251,193,56,118,251,193,58,118,251,193,60,118,251,193,62,118,251,193,64,118,251,193,66,118,251,193,68,118,251,193,70,118,251,193,72,118,251,193,74,118,251,193,76,118,251,193,78,118,251,193,80,118,251,193,82,118,251,193,84,118,251,193,86,118,251,193,134,118,251,193,136,118,251,193,138,118,251,193,140,118,251,193,142,118,251,193,144,118,251,193,146,118,251,193,148,118,251,193,150,118,251,193,152,118,251,193,154,118,251,193,156,118,251,193,158,118,251,193,160,118,251,193,162,118,251,193,164,118,251,193,166,118,251,193,208,118,251,193,210,118,251,193,212,118,251,193,214,118,251,193,216,118,251,193,218,118,251,193,220,118,251,193,222,118,251,193,224,118,251,193,226,118,251,193,252,118,251,193,254,118,251,193,2,119,251,193,4,119,251,193,6,119,251,193,8,119,251,193,168,118,251,193,10,119,251,193,188,118,251,193,190,118,251,193,192,118,251,193,194,118,251,193,196,118,251,193,198,118,251,193,200,118,251,193,244,118,251,193,246,118,251,193,248,118,251,193,22,119,251,193,24,119,251,193,26,119,251,193,56,119,251,193,68,119,251,193,70,119,251,193,108,119,251,193,110,119,251,193,112,119,251,193,114,119,251,193,118,119,251,193,122,119,251,193,144,119,251,193,146,119,251,193,148,119,251,193,150,119,251,193,172,119,251,193,174,119,251,193,176,119,251,193,178,119,251,193,180,119,251,193,218,119,251,193,12,119,251,193,30,119,251,193,32,119,251,193,34,119,251,193,36,119,251,193,38,119,251,193,40,119,251,193,42,119,251,193,44,119,251,193,46,119,251,193,48,119,251,193,58,119,251,193,60,119,251,193,62,119,251,193,72,119,251,193,74,119,251,193,76,119,251,193,78,119,251,193,80,119,251,193,82,119,251,193,86,119,251,193,88,119,251,193,90,119,251,193,98,119,251,193,100,119,251,193,102,119,251,193,104,119,251,193,106,119,251,193,116,119,251,193,120,119,251,193,124,119,251,193,126,119,251,193,66,119,251,193,134,119,251,193,14,120,251,193,16,120,251,193,18,120,251,193,70,120,251,193,106,120,251,193,150,120,251,193,152,120,251,193,206,120,251,193,208,120,251,193,6,121,251,193,8,121,251,193,36,121,251,193,38,121,251,193,64,121,251,193,66,121,251,193,98,121,251,193,100,121,251,193,138,121,251,193,166,121,251,193,242,121,251,193,244,121,251,193,52,122,251,193,54,122,251,193,56,122,251,193,58,122,251,193,60,122,251,193,62,122,251,193,64,122,251,193,152,122,251,193,154,122,251,193,212,119,251,193,214,119,251,193,216,119,251,193,28,120,251,193,30,120,251,193,32,120,251,193,76,120,251,193,78,120,251,193,118,120,251,193,168,120,251,193,170,120,251,193,172,120,251,193,222,120,251,193,224,120,251,193,14,121,251,193,44,121,251,193,106,121,251,193,126,121,251,193,158,121,251,193,198,121,251,193,248,121,251,193,250,121,251,193,72,122,251,193,74,122,251,193,76,122,251,193,174,122,251,193,176,122,251,193,26,123,251,193,28,123,251,193,30,123,251,193,182,123,251,193,184,123,251,193,220,119,251,193,222,119,251,193,224,119,251,193,226,119,251,193,228,119,251,193,230,119,251,193,232,119,251,193,234,119,251,193,34,120,251,193,36,120,251,193,38,120,251,193,80,120,251,193,82,120,251,193,84,120,251,193,120,120,251,193,122,120,251,193,124,120,251,193,174,120,251,193,126,120,251,193,226,120,251,193,228,120,251,193,16,121,251,193,18,121,251,193,20,121,251,193,68,121,251,193,70,121,251,193,108,121,251,193,110,121,251,193,128,121,251,193,142,121,251,193,144,121,251,193,162,121,251,193,236,119,251,193,40,120,251,193,86,120,251,193,88,120,251,193,176,120,251,193,230,120,251,193,46,121,251,193,72,121,251,193,168,121,251,193,176,121,251,193,188,121,251,193,190,121,251,193,210,121,251,193,212,121,251,193,16,122,251,193,18,122,251,193,20,122,251,193,22,122,251,193,108,122,251,193,196,122,251,193,198,122,251,193,200,122,251,193,202,122,251,193,72,123,251,193,74,123,251,193,76,123,251,193,78,123,251,193,210,123,251,193,212,123,251,193,214,123,251,193,216,123,251,193,218,123,251,193,26,120,251,193,72,120,251,193,74,120,251,193,108,120,251,193,110,120,251,193,112,120,251,193,114,120,251,193,116,120,251,193,154,120,251,193,156,120,251,193,158,120,251,193,160,120,251,193,162,120,251,193,164,120,251,193,166,120,251,193,210,120,251,193,212,120,251,193,214,120,251,193,216,120,251,193,218,120,251,193,220,120,251,193,10,121,251,193,12,121,251,193,40,121,251,193,42,121,251,193,102,121,251,193,104,121,251,193,118,121,251,193,140,121,251,193,172,121,251,193,246,121,251,193,66,122,251,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,206,64,17,0,193,90,120,251,193,92,120,251,193,94,120,251,193,96,120,251,193,98,120,251,193,100,120,251,193,128,120,251,193,130,120,251,193,132,120,251,193,134,120,251,193,136,120,251,193,138,120,251,193,140,120,251,193,142,120,251,193,178,120,251,193,180,120,251,193,182,120,251,193,184,120,251,193,186,120,251,193,188,120,251,193,190,120,251,193,192,120,251,193,194,120,251,193,196,120,251,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,193,102,120,251,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,193,104,120,251,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,193,198,120,251,193,200,120,251,193,202,120,251,193,232,120,251,193,234,120,251,193,236,120,251,193,238,120,251,193,240,120,251,193,242,120,251,193,244,120,251,193,246,120,251,193,248,120,251,193,250,120,251,193,252,120,251,193,254,120,251,193,2,121,251,193,4,121,251,193,22,121,251,193,24,121,251,193,26,121,251,193,28,121,251,193,30,121,251,193,32,121,251,193,48,121,251,193,50,121,251,193,52,121,251,193,54,121,251,193,56,121,251,193,58,121,251,193,60,121,251,193,74,121,251,193,76,121,251,193,34,121,251,193,96,121,251,193,114,121,251,193,116,121,251,193,160,121,251,193,46,122,251,193,48,122,251,193,50,122,251,193,148,122,251,193,150,122,251,193,250,122,251,193,252,122,251,193,254,122,251,193,148,123,251,193,150,123,251,193,152,123,251,193,154,123,251,193,24,124,251,193,26,124,251,193,28,124,251,193,182,124,251,193,184,124,251,193,186,124,251,193,188,124,251,193,190,124,251,193,192,124,251,193,194,124,251,193,72,125,251,193,74,125,251,193,76,125,251,193,78,125,251,193,80,125,251,193,78,121,251,193,80,121,251,193,82,121,251,193,84,121,251,193,86,121,251,193,88,121,251,193,90,121,251,193,92,121,251,193,94,121,251,193,112,121,251,193,120,121,251,193,122,121,251,193,124,121,251,193,130,121,251,193,132,121,251,193,134,121,251,193,136,121,251,193,146,121,251,193,148,121,251,193,150,121,251,193,152,121,251,193,154,121,251,193,156,121,251,193,164,121,251,193,170,121,251,193,178,121,251,193,192,121,251,193,194,121,251,193,196,121,251,193,214,121,251,193,216,121,251,193,218,121,251,193,174,121,251,193,180,121,251,193,182,121,251,193,184,121,251,193,186,121,251,193,200,121,251,193,202,121,251,193,204,121,251,193,206,121,251,193,208,121,251,193,252,121,251,193,254,121,251,193,2,122,251,193,4,122,251,193,6,122,251,193,8,122,251,193,10,122,251,193,12,122,251,193,14,122,251,193,78,122,251,193,80,122,251,193,82,122,251,193,84,122,251,193,86,122,251,193,88,122,251,193,90,122,251,193,92,122,251,193,94,122,251,193,96,122,251,193,98,122,251,193,100,122,251,193,102,122,251,193,220,121,251,193,222,121,251,193,224,121,251,193,226,121,251,193,228,121,251,193,230,121,251,193,232,121,251,193,234,121,251,193,236,121,251,193,238,121,251,193,240,121,251,193,24,122,251,193,26,122,251,193,28,122,251,193,30,122,251,193,32,122,251,193,34,122,251,193,36,122,251,193,38,122,251,193,40,122,251,193,42,122,251,193,44,122,251,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,193,68,122,251,193,70,122,251,193,158,122,251,193,160,122,251,193,162,122,251,193,164,122,251,193,166,122,251,193,168,122,251,193,170,122,251,193,172,122,251,193,14,123,251,193,16,123,251,193,18,123,251,193,20,123,251,193,22,123,251,193,24,123,251,193,174,123,251,193,176,123,251,193,178,123,251,193,180,123,251,193,50,124,251,193,52,124,251,193,54,124,251,193,56,124,251,193,58,124,251,193,60,124,251,193,62,124,251,193,64,124,251,193,66,124,251,193,68,124,251,193,70,124,251,193,72,124,251,193,104,122,251,193,106,122,251,193,178,122,251,193,180,122,251,193,182,122,251,193,184,122,251,193,186,122,251,193,32,123,251,193,188,122,251,193,190,122,251,193,192,122,251,193,194,122,251,193,34,123,251,193,36,123,251,193,38,123,251,193,40,123,251,193,42,123,251,193,44,123,251,193,46,123,251,193,48,123,251,193,50,123,251,193,52,123,251,193,54,123,251,193,56,123,251,193,58,123,251,193,60,123,251,193,62,123,251,193,64,123,251,193,66,123,251,193,68,123,251,193,70,123,251,193,188,123,251,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,206,96,17,0,193,204,122,251,193,206,122,251,193,208,122,251,193,210,122,251,193,212,122,251,193,214,122,251,193,216,122,251,193,218,122,251,193,220,122,251,193,222,122,251,193,224,122,251,193,226,122,251,193,228,122,251,193,230,122,251,193,232,122,251,193,234,122,251,193,236,122,251,193,238,122,251,193,240,122,251,193,242,122,251,193,244,122,251,193,246,122,251,193,248,122,251,193,156,122,251,193,2,123,251,193,4,123,251,193,6,123,251,193,8,123,251,193,10,123,251,193,12,123,251,193,156,123,251,193,158,123,251,193,160,123,251,193,162,123,251,193,164,123,251,193,166,123,251,193,168,123,251,193,170,123,251,193,172,123,251,193,30,124,251,193,32,124,251,193,34,124,251,193,36,124,251,193,38,124,251,193,40,124,251,193,42,124,251,193,44,124,251,193,46,124,251,193,48,124,251,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,193,80,123,251,193,82,123,251,193,84,123,251,193,86,123,251,193,88,123,251,193,90,123,251,193,92,123,251,193,94,123,251,193,96,123,251,193,98,123,251,193,100,123,251,193,102,123,251,193,104,123,251,193,106,123,251,193,108,123,251,193,110,123,251,193,112,123,251,193,114,123,251,193,116,123,251,193,118,123,251,193,120,123,251,193,122,123,251,193,124,123,251,193,126,123,251,193,128,123,251,193,130,123,251,193,132,123,251,193,134,123,251,193,136,123,251,193,138,123,251,193,140,123,251,193,142,123,251,193,144,123,251,193,146,123,251,193,224,123,251,193,226,123,251,193,228,123,251,193,230,123,251,193,232,123,251,193,234,123,251,193,236,123,251,193,238,123,251,193,240,123,251,193,242,123,251,193,244,123,251,193,246,123,251,193,248,123,251,193,250,123,251,193,252,123,251,193,254,123,251,193,2,124,251,193,4,124,251,193,6,124,251,193,8,124,251,193,10,124,251,193,12,124,251,193,14,124,251,193,16,124,251,193,18,124,251,193,20,124,251,193,22,124,251,193,114,124,251,193,116,124,251,193,118,124,251,193,186,123,251,193,74,124,251,193,76,124,251,193,78,124,251,193,80,124,251,193,82,124,251,193,228,124,251,193,230,124,251,193,232,124,251,193,234,124,251,193,236,124,251,193,238,124,251,193,240,124,251,193,242,124,251,193,120,125,251,193,122,125,251,193,124,125,251,193,126,125,251,193,128,125,251,193,130,125,251,193,132,125,251,193,134,125,251,193,136,125,251,193,138,125,251,193,34,126,251,193,36,126,251,193,38,126,251,193,152,126,251,193,154,126,251,193,240,126,251,193,242,126,251,193,244,126,251,193,190,123,251,193,192,123,251,193,194,123,251,193,196,123,251,193,198,123,251,193,200,123,251,193,202,123,251,193,204,123,251,193,206,123,251,193,208,123,251,193,84,124,251,193,86,124,251,193,88,124,251,193,90,124,251,193,92,124,251,193,94,124,251,193,96,124,251,193,98,124,251,193,100,124,251,193,102,124,251,193,104,124,251,193,106,124,251,193,244,124,251,193,246,124,251,193,248,124,251,193,250,124,251,193,252,124,251,193,254,124,251,193,2,125,251,193,4,125,251,193,140,125,251,193,142,125,251,193,220,123,251,193,222,123,251,193,110,124,251,193,112,124,251,193,6,125,251,193,8,125,251,193,10,125,251,193,12,125,251,193,14,125,251,193,162,125,251,193,164,125,251,193,166,125,251,193,168,125,251,193,50,126,251,193,52,126,251,193,54,126,251,193,52,127,251,193,172,127,251,193,254,127,251,193,28,128,251,193,48,128,251,193,54,128,251,193,108,128,251,193,152,128,251,193,172,129,251,193,244,129,251,193,38,130,251,193,62,130,251,193,178,130,251,193,200,130,251,193,228,130,251,193,230,130,251,193,144,125,251,193,146,125,251,193,148,125,251,193,150,125,251,193,152,125,251,193,154,125,251,193,156,125,251,193,158,125,251,193,160,125,251,193,40,126,251,193,108,124,251,193,42,126,251,193,44,126,251,193,46,126,251,193,48,126,251,193,156,126,251,193,158,126,251,193,246,126,251,193,248,126,251,193,104,127,251,193,106,127,251,193,108,127,251,193,146,127,251,193,170,127,251,193,22,128,251,193,26,128,251,193,30,128,251,193,32,128,251,193,34,128,251,193,42,128,251,193,44,128,251,193,46,128,251,193,120,124,251,193,122,124,251,193,124,124,251,193,126,124,251,193,128,124,251,193,130,124,251,193,132,124,251,193,134,124,251,193,136,124,251,193,138,124,251,193,140,124,251,193,142,124,251,193,144,124,251,193,146,124,251,193,148,124,251,193,150,124,251,193,152,124,251,193,154,124,251,193,156,124,251,193,158,124,251,193,160,124,251,193,162,124,251,193,164,124,251,193,166,124,251,193,168,124,251,193,170,124,251,193,172,124,251,193,174,124,251,193,176,124,251,193,178,124,251,193,180,124,251,193,16,125,251,206,128,17,0,206,128,17,0,206,128,17,0,206,128,17,0,193,84,125,251,193,86,125,251,193,88,125,251,193,90,125,251,193,92,125,251,193,94,125,251,193,96,125,251,193,98,125,251,193,100,125,251,193,102,125,251,193,104,125,251,193,252,125,251,193,254,125,251,193,2,126,251,193,4,126,251,193,6,126,251,193,8,126,251,193,10,126,251,193,12,126,251,193,14,126,251,193,16,126,251,193,18,126,251,193,20,126,251,193,22,126,251,193,24,126,251,193,130,126,251,193,132,126,251,193,134,126,251,193,216,124,251,193,218,124,251,193,220,124,251,193,222,124,251,193,224,124,251,193,226,124,251,193,106,125,251,193,108,125,251,193,110,125,251,193,112,125,251,193,114,125,251,193,116,125,251,193,118,125,251,193,26,126,251,193,28,126,251,193,30,126,251,193,32,126,251,193,140,126,251,193,142,126,251,193,144,126,251,193,146,126,251,193,148,126,251,193,150,126,251,193,234,126,251,193,236,126,251,193,238,126,251,193,40,127,251,193,42,127,251,193,44,127,251,193,46,127,251,193,48,127,251,193,96,127,251,193,18,125,251,193,20,125,251,193,22,125,251,193,24,125,251,193,26,125,251,193,28,125,251,193,30,125,251,193,32,125,251,193,34,125,251,193,36,125,251,193,38,125,251,193,40,125,251,193,42,125,251,193,44,125,251,193,46,125,251,193,48,125,251,193,50,125,251,193,52,125,251,193,54,125,251,193,56,125,251,193,58,125,251,193,60,125,251,193,62,125,251,193,64,125,251,193,66,125,251,193,68,125,251,193,70,125,251,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,206,160,17,0,193,82,125,251,193,240,125,251,193,242,125,251,193,244,125,251,193,246,125,251,193,248,125,251,193,118,126,251,193,120,126,251,193,122,126,251,193,124,126,251,193,126,126,251,193,198,126,251,193,200,126,251,193,202,126,251,193,204,126,251,193,22,127,251,193,82,127,251,193,84,127,251,193,86,127,251,193,158,127,251,193,160,127,251,193,190,127,251,193,236,127,251,193,38,128,251,193,136,128,251,193,138,128,251,193,166,128,251,193,242,128,251,193,244,128,251,193,8,129,251,193,18,129,251,193,100,129,251,193,58,126,251,193,60,126,251,193,62,126,251,193,64,126,251,193,66,126,251,193,68,126,251,193,70,126,251,193,72,126,251,193,74,126,251,193,76,126,251,193,78,126,251,193,80,126,251,193,82,126,251,193,84,126,251,193,86,126,251,193,88,126,251,193,90,126,251,193,92,126,251,193,94,126,251,193,96,126,251,193,98,126,251,193,100,126,251,193,102,126,251,193,104,126,251,193,106,126,251,193,108,126,251,193,110,126,251,193,112,126,251,193,114,126,251,193,116,126,251,193,160,126,251,193,162,126,251,193,136,126,251,193,138,126,251,193,206,126,251,193,208,126,251,193,210,126,251,193,212,126,251,193,214,126,251,193,216,126,251,193,218,126,251,193,220,126,251,193,222,126,251,193,224,126,251,193,226,126,251,193,228,126,251,193,230,126,251,193,232,126,251,193,24,127,251,193,26,127,251,193,28,127,251,193,30,127,251,193,32,127,251,193,34,127,251,193,36,127,251,193,38,127,251,193,88,127,251,193,90,127,251,193,92,127,251,193,94,127,251,193,132,127,251,193,134,127,251,193,136,127,251,193,138,127,251,193,164,126,251,193,166,126,251,193,168,126,251,193,170,126,251,193,172,126,251,193,174,126,251,193,176,126,251,193,178,126,251,193,180,126,251,193,182,126,251,193,184,126,251,193,186,126,251,193,188,126,251,193,190,126,251,193,192,126,251,193,194,126,251,193,196,126,251,193,250,126,251,193,252,126,251,193,254,126,251,193,2,127,251,193,4,127,251,193,6,127,251,193,8,127,251,193,10,127,251,193,12,127,251,193,14,127,251,193,16,127,251,193,18,127,251,193,20,127,251,193,54,127,251,193,56,127,251,193,50,127,251,193,102,127,251,193,168,127,251,193,228,127,251,193,244,127,251,193,222,128,251,193,254,128,251,193,40,129,251,193,42,129,251,193,66,129,251,193,110,129,251,193,170,129,251,193,118,130,251,193,252,130,251,193,18,131,251,193,44,131,251,193,200,131,251,193,42,132,251,193,44,132,251,193,110,132,251,193,112,132,251,193,204,132,251,193,206,132,251,193,208,132,251,193,36,133,251,193,38,133,251,193,40,133,251,193,42,133,251,193,122,133,251,193,124,133,251,193,126,133,251,193,198,133,251,193,58,127,251,193,60,127,251,193,62,127,251,193,64,127,251,193,66,127,251,193,68,127,251,193,70,127,251,193,72,127,251,193,74,127,251,193,76,127,251,193,78,127,251,193,80,127,251,193,110,127,251,193,112,127,251,193,114,127,251,193,116,127,251,193,118,127,251,193,120,127,251,193,122,127,251,193,124,127,251,193,126,127,251,193,128,127,251,193,130,127,251,193,148,127,251,193,150,127,251,193,152,127,251,193,154,127,251,193,156,127,251,206,192,17,0,206,192,17,0,206,192,17,0,206,192,17,0,193,98,127,251,193,100,127,251,193,140,127,251,193,142,127,251,193,144,127,251,193,164,127,251,193,166,127,251,193,198,127,251,193,220,127,251,193,40,128,251,193,50,128,251,193,72,128,251,193,74,128,251,193,96,128,251,193,98,128,251,193,100,128,251,193,114,128,251,193,116,128,251,193,118,128,251,193,140,128,251,193,142,128,251,193,144,128,251,193,172,128,251,193,174,128,251,193,176,128,251,193,194,128,251,193,196,128,251,193,198,128,251,193,200,128,251,193,216,128,251,193,218,128,251,193,220,128,251,193,162,127,251,193,192,127,251,193,194,127,251,193,196,127,251,193,216,127,251,193,218,127,251,193,224,127,251,193,226,127,251,193,238,127,251,193,240,127,251,193,242,127,251,193,18,128,251,193,94,128,251,193,112,128,251,193,168,128,251,193,170,128,251,193,186,128,251,193,188,128,251,193,190,128,251,193,192,128,251,193,246,128,251,193,248,128,251,193,30,129,251,193,32,129,251,193,102,129,251,193,104,129,251,193,130,129,251,193,132,129,251,193,164,129,251,193,166,129,251,193,230,129,251,193,232,129,251,206,192,17,0,206,192,17,0,206,192,17,0,206,192,17,0,193,200,127,251,193,202,127,251,193,204,127,251,193,206,127,251,193,208,127,251,193,210,127,251,193,212,127,251,193,214,127,251,193,222,127,251,193,230,127,251,193,8,128,251,193,232,127,251,193,234,127,251,193,246,127,251,193,14,128,251,193,248,127,251,193,250,127,251,193,252,127,251,193,2,128,251,193,4,128,251,193,6,128,251,193,10,128,251,193,12,128,251,193,16,128,251,193,20,128,251,193,24,128,251,193,36,128,251,193,56,128,251,193,52,128,251,193,76,128,251,193,78,128,251,193,102,128,251,193,104,128,251,193,106,128,251,193,80,128,251,193,120,128,251,193,122,128,251,193,124,128,251,193,146,128,251,193,148,128,251,193,150,128,251,193,202,128,251,193,224,128,251,193,34,129,251,193,44,129,251,193,46,129,251,193,52,129,251,193,54,129,251,193,56,129,251,193,58,129,251,193,68,129,251,193,70,129,251,193,72,129,251,193,112,129,251,193,114,129,251,193,138,129,251,193,140,129,251,193,142,129,251,193,242,129,251,193,16,130,251,193,58,128,251,193,60,128,251,193,62,128,251,193,64,128,251,193,66,128,251,193,68,128,251,193,70,128,251,193,82,128,251,193,84,128,251,193,86,128,251,193,88,128,251,193,90,128,251,193,92,128,251,193,110,128,251,193,126,128,251,193,128,128,251,193,130,128,251,193,132,128,251,193,134,128,251,193,154,128,251,193,156,128,251,193,158,128,251,193,160,128,251,193,162,128,251,193,164,128,251,193,178,128,251,193,180,128,251,193,182,128,251,193,184,128,251,193,204,128,251,193,206,128,251,193,208,128,251,193,210,128,251,193,212,128,251,193,214,128,251,193,226,128,251,193,228,128,251,193,230,128,251,193,232,128,251,193,234,128,251,193,236,128,251,193,238,128,251,193,2,129,251,193,4,129,251,193,6,129,251,193,12,129,251,193,14,129,251,193,16,129,251,193,20,129,251,193,22,129,251,193,26,129,251,193,28,129,251,193,36,129,251,193,48,129,251,193,50,129,251,193,62,129,251,193,64,129,251,193,74,129,251,193,76,129,251,193,78,129,251,193,80,129,251,193,84,129,251,193,86,129,251,193,88,129,251,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,193,32,230,251,193,108,229,251,193,110,229,251,193,112,229,251,193,114,229,251,193,116,229,251,193,118,229,251,193,120,229,251,193,122,229,251,193,240,128,251,193,124,229,251,193,126,229,251,193,128,229,251,193,130,229,251,193,132,229,251,193,134,229,251,193,136,229,251,193,138,229,251,193,140,229,251,193,142,229,251,193,144,229,251,193,34,230,251,193,36,230,251,193,250,128,251,193,252,128,251,193,10,129,251,193,24,129,251,193,38,129,251,193,82,129,251,193,106,129,251,193,108,129,251,193,134,129,251,193,136,129,251,193,168,129,251,193,34,130,251,193,106,130,251,193,188,130,251,193,250,130,251,193,68,131,251,193,70,131,251,193,130,131,251,193,132,131,251,193,144,131,251,193,220,131,251,193,102,132,251,193,104,132,251,193,106,132,251,193,108,132,251,193,194,132,251,193,196,132,251,193,198,132,251,193,200,132,251,193,202,132,251,193,32,133,251,193,34,133,251,193,90,129,251,193,92,129,251,193,94,129,251,193,96,129,251,193,98,129,251,193,118,129,251,193,120,129,251,193,122,129,251,193,124,129,251,193,126,129,251,193,144,129,251,193,146,129,251,193,148,129,251,193,150,129,251,193,152,129,251,193,154,129,251,193,156,129,251,193,158,129,251,193,160,129,251,193,162,129,251,193,174,129,251,193,176,129,251,193,178,129,251,193,180,129,251,193,182,129,251,193,184,129,251,193,186,129,251,193,188,129,251,193,190,129,251,193,196,129,251,193,198,129,251,193,200,129,251,193,128,129,251,193,192,129,251,193,194,129,251,193,56,130,251,193,84,130,251,193,98,130,251,193,116,130,251,193,100,131,251,193,128,131,251,193,30,132,251,193,32,132,251,193,34,132,251,193,94,132,251,193,180,132,251,193,182,132,251,193,24,133,251,193,26,133,251,193,110,133,251,193,250,133,251,193,252,133,251,193,254,133,251,193,188,133,251,193,190,133,251,193,192,133,251,193,194,133,251,193,58,134,251,193,60,134,251,193,118,134,251,193,120,134,251,193,158,134,251,193,172,134,251,193,206,134,251,193,202,129,251,193,204,129,251,193,206,129,251,193,208,129,251,193,210,129,251,193,212,129,251,193,214,129,251,193,216,129,251,193,218,129,251,193,220,129,251,193,222,129,251,193,224,129,251,193,226,129,251,193,228,129,251,193,246,129,251,193,248,129,251,193,250,129,251,193,252,129,251,193,254,129,251,193,2,130,251,193,4,130,251,193,6,130,251,193,8,130,251,193,10,130,251,193,22,130,251,193,24,130,251,193,26,130,251,193,28,130,251,193,30,130,251,193,32,130,251,193,40,130,251,193,42,130,251,193,234,129,251,193,236,129,251,193,238,129,251,193,240,129,251,193,12,130,251,193,14,130,251,193,58,130,251,193,60,130,251,193,86,130,251,193,88,130,251,193,100,130,251,193,102,130,251,193,104,130,251,193,138,130,251,193,170,130,251,193,224,130,251,193,248,130,251,193,66,131,251,193,160,131,251,193,36,132,251,193,38,132,251,193,40,132,251,193,96,132,251,193,98,132,251,193,100,132,251,193,184,132,251,193,186,132,251,193,188,132,251,193,190,132,251,193,192,132,251,193,28,133,251,193,30,133,251,193,44,130,251,193,46,130,251,193,48,130,251,193,50,130,251,193,52,130,251,193,54,130,251,193,64,130,251,193,66,130,251,193,68,130,251,193,70,130,251,193,72,130,251,193,74,130,251,193,76,130,251,193,78,130,251,193,80,130,251,193,82,130,251,193,90,130,251,193,92,130,251,193,94,130,251,193,96,130,251,193,108,130,251,193,110,130,251,193,112,130,251,193,120,130,251,193,122,130,251,193,124,130,251,193,126,130,251,193,128,130,251,193,132,130,251,193,134,130,251,193,136,130,251,193,140,130,251,193,208,92,252,193,212,92,252,193,214,92,252,193,216,92,252,193,218,92,252,193,228,92,252,193,238,92,252,193,250,92,252,193,4,93,252,193,14,93,252,193,16,93,252,193,20,93,252,193,22,93,252,193,26,93,252,193,28,93,252,193,130,130,251,193,30,93,252,193,32,93,252,193,34,93,252,193,38,93,252,193,40,93,252,193,44,93,252,193,46,93,252,193,48,93,252,193,58,93,252,193,60,93,252,193,62,93,252,193,64,93,252,193,66,93,252,193,68,93,252,193,70,93,252,193,78,93,252,193,142,130,251,193,148,130,251,193,150,130,251,193,154,130,251,193,156,130,251,193,158,130,251,193,160,130,251,193,162,130,251,193,164,130,251,193,166,130,251,193,168,130,251,193,180,130,251,193,182,130,251,193,184,130,251,193,186,130,251,193,202,130,251,193,204,130,251,193,206,130,251,193,208,130,251,193,210,130,251,193,212,130,251,193,214,130,251,193,216,130,251,193,218,130,251,193,220,130,251,193,222,130,251,193,232,130,251,193,234,130,251,193,236,130,251,193,238,130,251,193,240,130,251,193,242,130,251,193,244,130,251,193,246,130,251,193,8,131,251,193,10,131,251,193,12,131,251,193,240,254,252,193,14,131,251,193,16,131,251,193,22,131,251,193,24,131,251,193,26,131,251,193,28,131,251,193,30,131,251,193,32,131,251,193,34,131,251,193,36,131,251,193,38,131,251,193,40,131,251,193,42,131,251,193,54,131,251,193,56,131,251,193,58,131,251,193,60,131,251,193,62,131,251,193,64,131,251,193,80,131,251,193,82,131,251,193,84,131,251,193,86,131,251,193,88,131,251,193,90,131,251,193,92,131,251,193,4,131,251,193,6,131,251,193,20,131,251,193,46,131,251,193,48,131,251,193,50,131,251,193,52,131,251,193,76,131,251,193,78,131,251,193,108,131,251,193,110,131,251,193,206,131,251,193,224,131,251,193,226,131,251,193,10,132,251,193,60,132,251,193,62,132,251,193,64,132,251,193,124,132,251,193,126,132,251,193,128,132,251,193,130,132,251,193,132,132,251,193,228,132,251,193,54,133,251,193,56,133,251,193,136,133,251,193,138,133,251,193,28,134,251,193,30,134,251,193,32,134,251,193,84,134,251,193,94,131,251,193,96,131,251,193,98,131,251,193,112,131,251,193,114,131,251,193,116,131,251,193,118,131,251,193,120,131,251,193,122,131,251,193,124,131,251,193,126,131,251,193,134,131,251,193,136,131,251,193,138,131,251,193,140,131,251,193,142,131,251,193,148,131,251,193,150,131,251,193,152,131,251,193,154,131,251,193,156,131,251,193,158,131,251,193,162,131,251,193,164,131,251,193,166,131,251,193,168,131,251,193,170,131,251,193,176,131,251,193,178,131,251,193,180,131,251,193,182,131,251,193,184,131,251,193,186,131,251,193,188,131,251,193,190,131,251,193,194,131,251,193,208,131,251,193,210,131,251,193,212,131,251,193,214,131,251,193,216,131,251,193,228,131,251,193,230,131,251,193,232,131,251,193,234,131,251,193,236,131,251,193,238,131,251,193,240,131,251,193,242,131,251,193,244,131,251,193,246,131,251,193,248,131,251,193,218,131,251,193,12,132,251,193,14,132,251,193,16,132,251,193,18,132,251,193,20,132,251,193,22,132,251,193,24,132,251,193,26,132,251,193,28,132,251,193,66,132,251,193,68,132,251,193,2,132,251,193,4,132,251,193,6,132,251,193,8,132,251,193,46,132,251,193,48,132,251,193,50,132,251,193,52,132,251,193,54,132,251,193,56,132,251,193,58,132,251,193,114,132,251,193,116,132,251,193,118,132,251,193,120,132,251,193,122,132,251,193,210,132,251,193,212,132,251,193,214,132,251,193,216,132,251,193,218,132,251,193,220,132,251,193,222,132,251,193,224,132,251,193,226,132,251,193,44,133,251,193,46,133,251,193,48,133,251,193,50,133,251,193,52,133,251,193,128,133,251,193,130,133,251,193,70,132,251,193,72,132,251,193,74,132,251,193,76,132,251,193,78,132,251,193,80,132,251,193,82,132,251,193,84,132,251,193,86,132,251,193,88,132,251,193,90,132,251,193,92,132,251,193,134,132,251,193,136,132,251,193,138,132,251,193,140,132,251,193,142,132,251,193,144,132,251,193,146,132,251,193,148,132,251,193,150,132,251,193,152,132,251,193,154,132,251,193,156,132,251,193,158,132,251,193,160,132,251,193,162,132,251,193,164,132,251,193,166,132,251,193,168,132,251,193,170,132,251,193,172,132,251,193,174,132,251,193,176,132,251,193,230,132,251,193,232,132,251,193,234,132,251,193,236,132,251,193,238,132,251,193,240,132,251,193,242,132,251,193,244,132,251,193,246,132,251,193,248,132,251,193,250,132,251,193,252,132,251,193,254,132,251,193,2,133,251,193,4,133,251,193,6,133,251,193,8,133,251,193,10,133,251,193,12,133,251,193,14,133,251,193,16,133,251,193,18,133,251,193,20,133,251,193,22,133,251,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,224,17,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,193,112,133,251,193,2,134,251,193,62,134,251,193,64,134,251,193,66,134,251,193,68,134,251,193,160,134,251,193,162,134,251,193,174,134,251,193,186,134,251,193,210,134,251,193,212,134,251,193,236,134,251,193,238,134,251,193,84,135,251,193,110,135,251,193,112,135,251,193,186,135,251,193,188,135,251,193,190,135,251,193,192,135,251,193,34,136,251,193,212,136,251,193,214,136,251,193,176,137,251,193,178,137,251,193,132,138,251,193,134,138,251,193,152,139,251,193,154,139,251,193,156,139,251,193,158,139,251,193,114,133,251,193,116,133,251,193,118,133,251,193,120,133,251,193,196,133,251,193,4,134,251,193,6,134,251,193,8,134,251,193,10,134,251,193,12,134,251,193,14,134,251,193,16,134,251,193,18,134,251,193,20,134,251,193,70,134,251,193,72,134,251,193,122,134,251,193,124,134,251,193,126,134,251,193,128,134,251,193,130,134,251,193,132,134,251,193,176,134,251,193,188,134,251,193,190,134,251,193,214,134,251,193,216,134,251,193,240,134,251,193,250,134,251,193,2,135,251,193,20,135,251,193,36,135,251,193,132,133,251,193,134,133,251,193,24,134,251,193,26,134,251,193,76,134,251,193,78,134,251,193,80,134,251,193,82,134,251,193,166,134,251,193,178,134,251,193,180,134,251,193,192,134,251,193,228,134,251,193,252,134,251,193,8,135,251,193,14,135,251,193,22,135,251,193,128,135,251,193,132,135,251,193,140,135,251,193,142,135,251,193,144,135,251,193,146,135,251,193,148,135,251,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,0,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,193,200,133,251,193,22,134,251,193,74,134,251,193,134,134,251,193,136,134,251,193,138,134,251,193,164,134,251,193,218,134,251,193,104,135,251,193,44,136,251,193,228,136,251,193,230,136,251,193,232,136,251,193,234,136,251,193,200,137,251,193,202,137,251,193,204,137,251,193,206,137,251,193,208,137,251,193,210,137,251,193,156,138,251,193,158,138,251,193,160,138,251,193,162,138,251,193,164,138,251,193,166,138,251,193,168,138,251,193,170,138,251,193,172,138,251,193,174,138,251,193,176,138,251,193,182,139,251,206,32,18,0,206,32,18,0,206,32,18,0,206,32,18,0,193,34,134,251,193,36,134,251,193,38,134,251,193,40,134,251,193,42,134,251,193,44,134,251,193,46,134,251,193,48,134,251,193,50,134,251,193,52,134,251,193,54,134,251,193,56,134,251,193,88,134,251,193,90,134,251,193,92,134,251,193,94,134,251,193,96,134,251,193,98,134,251,193,100,134,251,193,102,134,251,193,104,134,251,193,106,134,251,193,108,134,251,193,110,134,251,193,112,134,251,193,114,134,251,193,116,134,251,193,140,134,251,193,86,134,251,193,194,134,251,193,16,135,251,193,38,135,251,193,150,135,251,193,152,135,251,193,154,135,251,193,156,135,251,193,220,135,251,193,222,135,251,193,224,135,251,193,226,135,251,193,228,135,251,193,230,135,251,193,232,135,251,193,234,135,251,193,94,136,251,193,96,136,251,193,98,136,251,193,100,136,251,193,102,136,251,193,104,136,251,193,106,136,251,193,40,135,251,193,108,136,251,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,193,142,134,251,193,144,134,251,193,146,134,251,193,148,134,251,193,150,134,251,193,152,134,251,193,154,134,251,193,156,134,251,193,168,134,251,193,170,134,251,193,182,134,251,193,184,134,251,193,196,134,251,193,198,134,251,193,200,134,251,193,202,134,251,193,204,134,251,193,220,134,251,193,222,134,251,193,224,134,251,193,226,134,251,193,230,134,251,193,232,134,251,193,234,134,251,193,242,134,251,193,244,134,251,193,246,134,251,193,254,134,251,193,4,135,251,193,6,135,251,193,12,135,251,193,18,135,251,193,208,134,251,193,248,134,251,193,24,136,251,193,26,136,251,193,28,136,251,193,30,136,251,193,206,136,251,193,208,136,251,193,210,136,251,193,164,137,251,193,166,137,251,193,168,137,251,193,170,137,251,193,172,137,251,193,174,137,251,193,118,138,251,193,120,138,251,193,122,138,251,193,124,138,251,193,126,138,251,193,128,138,251,193,138,139,251,193,140,139,251,193,142,139,251,193,144,139,251,193,146,139,251,193,148,139,251,193,234,140,251,193,236,140,251,193,238,140,251,193,240,140,251,193,242,140,251,193,24,135,251,193,26,135,251,193,28,135,251,193,30,135,251,193,32,135,251,193,34,135,251,193,42,135,251,193,44,135,251,193,46,135,251,193,48,135,251,193,50,135,251,193,52,135,251,193,54,135,251,193,56,135,251,193,58,135,251,193,60,135,251,193,62,135,251,193,64,135,251,193,66,135,251,193,68,135,251,193,70,135,251,193,72,135,251,193,74,135,251,193,76,135,251,193,78,135,251,193,80,135,251,193,82,135,251,206,64,18,0,206,64,18,0,206,64,18,0,206,64,18,0,206,64,18,0,193,106,135,251,193,108,135,251,193,114,135,251,193,116,135,251,193,118,135,251,193,120,135,251,193,122,135,251,193,124,135,251,193,126,135,251,193,134,135,251,193,136,135,251,193,138,135,251,193,158,135,251,193,160,135,251,193,162,135,251,193,164,135,251,193,166,135,251,193,168,135,251,193,170,135,251,193,172,135,251,193,174,135,251,193,176,135,251,193,178,135,251,193,180,135,251,193,182,135,251,193,184,135,251,193,236,135,251,193,238,135,251,193,194,135,251,193,36,136,251,193,38,136,251,193,40,136,251,193,42,136,251,193,216,136,251,193,218,136,251,193,220,136,251,193,222,136,251,193,224,136,251,193,226,136,251,193,180,137,251,193,182,137,251,193,184,137,251,193,186,137,251,193,188,137,251,193,190,137,251,193,192,137,251,193,194,137,251,193,196,137,251,193,198,137,251,193,136,138,251,193,138,138,251,193,140,138,251,193,142,138,251,193,144,138,251,193,146,138,251,193,148,138,251,193,150,138,251,193,152,138,251,193,154,138,251,193,162,139,251,206,96,18,0,206,96,18,0,206,96,18,0,206,96,18,0,193,46,136,251,193,48,136,251,193,50,136,251,193,52,136,251,193,54,136,251,193,56,136,251,193,58,136,251,193,60,136,251,193,62,136,251,193,212,137,251,193,64,136,251,193,66,136,251,193,68,136,251,193,70,136,251,193,72,136,251,193,74,136,251,193,76,136,251,193,78,136,251,193,80,136,251,193,82,136,251,193,84,136,251,193,86,136,251,193,88,136,251,193,90,136,251,193,92,136,251,193,236,136,251,193,238,136,251,193,240,136,251,193,240,135,251,193,242,135,251,193,244,135,251,193,246,135,251,193,248,135,251,193,250,135,251,193,252,135,251,193,254,135,251,193,2,136,251,193,4,136,251,193,6,136,251,193,8,136,251,193,10,136,251,193,12,136,251,193,14,136,251,193,16,136,251,193,18,136,251,193,20,136,251,193,22,136,251,193,110,136,251,193,112,136,251,193,114,136,251,193,116,136,251,193,118,136,251,193,120,136,251,193,122,136,251,193,124,136,251,193,126,136,251,193,128,136,251,193,130,136,251,193,132,136,251,193,134,136,251,193,136,136,251,193,138,136,251,193,140,136,251,193,142,136,251,193,144,136,251,193,146,136,251,193,148,136,251,193,150,136,251,193,152,136,251,193,154,136,251,193,156,136,251,193,158,136,251,193,160,136,251,193,162,136,251,193,164,136,251,193,166,136,251,193,168,136,251,193,170,136,251,193,172,136,251,193,174,136,251,193,176,136,251,193,178,136,251,193,180,136,251,193,182,136,251,193,184,136,251,193,186,136,251,193,188,136,251,193,190,136,251,193,192,136,251,193,194,136,251,193,196,136,251,193,198,136,251,193,200,136,251,193,202,136,251,193,204,136,251,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,193,242,136,251,193,244,136,251,193,246,136,251,193,248,136,251,193,250,136,251,193,252,136,251,193,254,136,251,193,2,137,251,193,4,137,251,193,6,137,251,193,8,137,251,193,10,137,251,193,12,137,251,193,14,137,251,193,16,137,251,193,18,137,251,193,20,137,251,193,22,137,251,193,24,137,251,193,26,137,251,193,28,137,251,193,30,137,251,193,32,137,251,193,34,137,251,193,36,137,251,193,38,137,251,193,40,137,251,193,42,137,251,193,44,137,251,193,46,137,251,193,48,137,251,193,50,137,251,193,52,137,251,193,54,137,251,193,56,137,251,193,58,137,251,193,60,137,251,193,62,137,251,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,128,18,0,206,128,18,0,206,128,18,0,206,128,18,0,193,28,138,251,193,30,138,251,193,32,138,251,193,238,138,251,193,240,138,251,193,242,138,251,193,244,138,251,193,246,138,251,193,248,138,251,193,250,138,251,193,252,138,251,193,254,138,251,193,2,139,251,193,4,139,251,193,6,139,251,193,8,139,251,193,10,139,251,193,12,139,251,193,14,139,251,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,160,18,0,206,160,18,0,206,160,18,0,206,160,18,0,193,228,93,252,193,152,137,251,193,154,137,251,193,156,137,251,193,158,137,251,193,160,137,251,193,162,137,251,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,192,18,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,224,18,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,0,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,32,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,193,136,139,251,193,180,190,252,193,182,190,252,193,184,190,252,193,186,190,252,193,188,190,252,193,214,190,252,193,216,190,252,193,218,190,252,193,220,190,252,193,222,190,252,193,224,190,252,193,226,190,252,193,228,190,252,193,230,190,252,193,190,190,252,193,232,190,252,193,234,190,252,193,236,190,252,193,238,190,252,193,240,190,252,193,242,190,252,193,244,190,252,193,246,190,252,206,160,72,0,206,160,72,0,206,160,72,0,206,160,72,0,193,160,139,251,193,248,140,251,193,250,140,251,193,252,140,251,193,254,140,251,193,2,141,251,193,26,142,251,193,28,142,251,193,30,142,251,193,32,142,251,193,242,142,251,193,244,142,251,193,246,142,251,193,248,142,251,193,250,142,251,193,252,142,251,193,254,142,251,193,208,143,251,193,210,143,251,193,212,143,251,193,214,143,251,193,176,144,251,193,178,144,251,193,72,145,251,193,74,145,251,193,76,145,251,193,78,145,251,193,80,145,251,193,82,145,251,193,204,145,251,193,18,146,251,193,102,146,251,193,164,139,251,193,166,139,251,193,168,139,251,193,170,139,251,193,172,139,251,193,174,139,251,193,176,139,251,193,178,139,251,193,180,139,251,193,4,141,251,193,6,141,251,193,8,141,251,193,10,141,251,193,12,141,251,193,14,141,251,193,16,141,251,193,18,141,251,193,20,141,251,193,34,142,251,193,36,142,251,193,38,142,251,193,40,142,251,193,42,142,251,193,44,142,251,193,46,142,251,193,48,142,251,193,50,142,251,193,52,142,251,193,54,142,251,193,56,142,251,193,58,142,251,193,60,142,251,193,184,139,251,193,186,139,251,193,188,139,251,193,190,139,251,193,192,139,251,193,22,141,251,193,24,141,251,193,26,141,251,193,28,141,251,193,62,142,251,193,64,142,251,193,66,142,251,193,68,142,251,193,70,142,251,193,16,143,251,193,18,143,251,193,20,143,251,193,242,143,251,193,244,143,251,193,246,143,251,193,248,143,251,193,202,144,251,193,204,144,251,193,206,144,251,193,208,144,251,193,88,145,251,193,90,145,251,193,214,145,251,193,34,146,251,193,36,146,251,193,38,146,251,193,124,146,251,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,64,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,206,96,19,0,193,120,141,251,193,122,141,251,193,124,141,251,193,126,141,251,193,128,141,251,193,130,141,251,193,132,141,251,193,134,141,251,193,136,141,251,193,138,141,251,193,124,142,251,193,126,142,251,193,128,142,251,193,130,142,251,193,132,142,251,193,134,142,251,193,136,142,251,193,138,142,251,193,140,142,251,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,128,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,193,244,140,251,193,246,140,251,193,14,142,251,193,16,142,251,193,18,142,251,193,20,142,251,193,22,142,251,193,24,142,251,193,234,142,251,193,236,142,251,193,238,142,251,193,240,142,251,193,194,143,251,193,196,143,251,193,198,143,251,193,200,143,251,193,202,143,251,193,204,143,251,193,206,143,251,193,168,144,251,193,170,144,251,193,172,144,251,193,174,144,251,193,64,145,251,193,66,145,251,193,68,145,251,193,70,145,251,193,198,145,251,193,200,145,251,193,202,145,251,193,100,146,251,193,210,146,251,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,206,160,19,0,193,72,142,251,193,80,141,251,193,82,141,251,193,84,141,251,193,86,141,251,193,88,141,251,193,90,141,251,193,92,141,251,193,94,141,251,193,96,141,251,193,98,141,251,193,100,141,251,193,102,141,251,193,104,141,251,193,106,141,251,193,108,141,251,193,110,141,251,193,112,141,251,193,114,141,251,193,116,141,251,193,74,142,251,193,76,142,251,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,192,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,193,78,142,251,193,80,142,251,193,82,142,251,193,84,142,251,193,86,142,251,193,88,142,251,193,90,142,251,193,92,142,251,193,94,142,251,193,96,142,251,193,98,142,251,193,100,142,251,193,102,142,251,193,104,142,251,193,106,142,251,193,108,142,251,193,110,142,251,193,112,142,251,193,114,142,251,193,116,142,251,193,118,142,251,193,120,142,251,193,122,142,251,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,224,19,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,193,2,143,251,193,4,143,251,193,6,143,251,193,8,143,251,193,10,143,251,193,12,143,251,193,14,143,251,193,216,143,251,193,218,143,251,193,220,143,251,193,222,143,251,193,224,143,251,193,226,143,251,193,228,143,251,193,230,143,251,193,232,143,251,193,234,143,251,193,236,143,251,193,238,143,251,193,240,143,251,193,180,144,251,193,182,144,251,193,184,144,251,193,186,144,251,193,188,144,251,193,190,144,251,193,192,144,251,193,194,144,251,193,196,144,251,193,198,144,251,193,200,144,251,193,84,145,251,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,0,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,206,32,20,0,193,42,144,251,193,44,144,251,193,46,144,251,193,48,144,251,193,50,144,251,193,52,144,251,193,54,144,251,193,56,144,251,193,58,144,251,193,60,144,251,193,62,144,251,193,64,144,251,193,244,144,251,193,246,144,251,193,248,144,251,193,250,144,251,193,252,144,251,193,254,144,251,193,2,145,251,193,108,145,251,193,110,145,251,193,112,145,251,193,114,145,251,193,116,145,251,193,222,145,251,193,224,145,251,193,226,145,251,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,64,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,206,96,20,0,193,210,144,251,193,212,144,251,193,214,144,251,193,216,144,251,193,218,144,251,193,220,144,251,193,222,144,251,193,224,144,251,193,226,144,251,193,228,144,251,193,230,144,251,193,232,144,251,193,234,144,251,193,236,144,251,193,238,144,251,193,240,144,251,193,242,144,251,193,92,145,251,193,94,145,251,193,96,145,251,193,98,145,251,193,40,146,251,193,100,145,251,193,102,145,251,193,104,145,251,193,106,145,251,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,206,128,20,0,193,4,145,251,193,6,145,251,193,8,145,251,193,10,145,251,193,12,145,251,193,14,145,251,193,16,145,251,193,18,145,251,193,20,145,251,193,22,145,251,193,24,145,251,193,26,145,251,193,118,145,251,193,28,145,251,193,30,145,251,193,32,145,251,193,34,145,251,193,36,145,251,193,38,145,251,193,40,145,251,193,42,145,251,193,44,145,251,193,46,145,251,193,48,145,251,193,50,145,251,193,52,145,251,193,54,145,251,193,56,145,251,193,58,145,251,193,60,145,251,193,62,145,251,193,120,145,251,193,122,145,251,193,124,145,251,193,126,145,251,193,86,145,251,193,206,145,251,193,208,145,251,193,210,145,251,193,212,145,251,193,20,146,251,193,22,146,251,193,24,146,251,193,26,146,251,193,28,146,251,193,30,146,251,193,32,146,251,193,112,146,251,193,114,146,251,193,116,146,251,193,118,146,251,193,120,146,251,193,122,146,251,193,172,146,251,193,174,146,251,193,176,146,251,193,214,146,251,193,216,146,251,193,4,147,251,193,18,147,251,193,40,147,251,193,80,147,251,193,98,147,251,193,100,147,251,193,112,147,251,193,114,147,251,193,128,147,251,193,128,145,251,193,130,145,251,193,132,145,251,193,134,145,251,193,136,145,251,193,138,145,251,193,140,145,251,193,142,145,251,193,144,145,251,193,146,145,251,193,148,145,251,193,150,145,251,193,152,145,251,193,154,145,251,193,156,145,251,193,158,145,251,193,160,145,251,193,162,145,251,193,164,145,251,193,166,145,251,193,168,145,251,193,170,145,251,193,172,145,251,193,174,145,251,193,176,145,251,193,178,145,251,193,180,145,251,193,182,145,251,193,184,145,251,193,186,145,251,193,188,145,251,193,190,145,251,193,16,146,251,193,72,146,251,193,74,146,251,193,76,146,251,193,78,146,251,193,80,146,251,193,82,146,251,193,84,146,251,193,86,146,251,193,88,146,251,193,90,146,251,193,92,146,251,193,94,146,251,193,96,146,251,193,146,146,251,193,148,146,251,193,150,146,251,193,152,146,251,193,154,146,251,193,156,146,251,193,158,146,251,193,160,146,251,193,162,146,251,193,164,146,251,193,166,146,251,193,168,146,251,193,170,146,251,193,196,145,251,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,193,216,145,251,193,218,145,251,193,220,145,251,193,42,146,251,193,44,146,251,193,46,146,251,193,130,146,251,193,132,146,251,193,134,146,251,193,136,146,251,193,138,146,251,193,140,146,251,193,142,146,251,193,178,146,251,193,218,146,251,193,180,146,251,193,182,146,251,193,220,146,251,193,222,146,251,193,224,146,251,193,226,146,251,193,228,146,251,193,6,147,251,193,230,146,251,193,8,147,251,193,10,147,251,193,12,147,251,193,66,147,251,193,68,147,251,193,70,147,251,193,82,147,251,193,84,147,251,193,48,146,251,193,50,146,251,193,52,146,251,193,54,146,251,193,144,146,251,193,184,146,251,193,186,146,251,193,232,146,251,193,60,147,251,193,86,147,251,193,214,147,251,193,44,148,251,193,46,148,251,193,62,148,251,193,86,148,251,193,142,148,251,193,160,148,251,193,204,148,251,193,36,149,251,193,38,149,251,193,60,149,251,193,62,149,251,193,64,149,251,193,120,149,251,193,122,149,251,193,124,149,251,193,126,149,251,193,128,149,251,193,130,149,251,193,216,149,251,193,218,149,251,193,220,149,251,193,98,11,252,193,118,11,252,193,120,11,252,193,122,11,252,193,124,11,252,193,126,11,252,193,142,11,252,193,144,11,252,193,146,11,252,193,148,11,252,193,150,11,252,193,152,11,252,193,158,11,252,193,98,146,251,193,166,11,252,193,178,11,252,193,180,11,252,193,182,11,252,193,184,11,252,193,186,11,252,193,188,11,252,193,194,11,252,193,196,11,252,193,200,11,252,193,206,11,252,193,208,11,252,193,210,11,252,193,212,11,252,193,214,11,252,193,216,11,252,193,218,11,252,193,228,11,252,193,104,146,251,193,106,146,251,193,108,146,251,193,110,146,251,193,212,146,251,193,38,147,251,193,48,147,251,193,76,147,251,193,154,147,251,193,168,147,251,193,198,147,251,193,14,148,251,193,24,148,251,193,36,148,251,193,56,148,251,193,78,148,251,193,84,148,251,193,96,148,251,193,104,148,251,193,106,148,251,193,114,148,251,193,150,148,251,193,200,148,251,193,216,148,251,193,236,148,251,193,238,148,251,193,6,149,251,193,12,149,251,193,14,149,251,193,48,149,251,193,50,149,251,193,176,149,251,193,126,146,251,193,128,146,251,193,50,147,251,193,144,147,251,193,146,147,251,193,174,147,251,193,180,147,251,193,4,148,251,193,16,148,251,193,18,148,251,193,20,148,251,193,28,148,251,193,58,148,251,193,108,148,251,193,120,148,251,193,202,148,251,193,218,148,251,193,52,149,251,193,102,149,251,193,188,149,251,193,190,149,251,193,28,150,251,193,30,150,251,193,142,150,251,193,144,150,251,193,238,150,251,193,226,151,251,193,228,151,251,193,230,151,251,193,60,152,251,193,140,152,251,193,224,152,251,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,206,160,20,0,193,234,146,251,193,236,146,251,193,238,146,251,193,240,146,251,193,242,146,251,193,244,146,251,193,246,146,251,193,248,146,251,193,250,146,251,193,252,146,251,193,254,146,251,193,14,147,251,193,16,147,251,193,20,147,251,193,22,147,251,193,24,147,251,193,26,147,251,193,28,147,251,193,30,147,251,193,32,147,251,193,34,147,251,193,36,147,251,193,42,147,251,193,44,147,251,193,46,147,251,193,2,147,251,193,110,147,251,193,140,147,251,193,250,147,251,193,54,148,251,193,68,148,251,193,76,148,251,193,82,148,251,193,112,148,251,193,118,148,251,193,130,148,251,193,166,148,251,193,154,148,251,193,232,148,251,193,234,148,251,193,246,148,251,193,2,149,251,193,4,149,251,193,46,149,251,193,226,150,251,193,80,151,251,193,82,151,251,193,84,151,251,193,86,151,251,193,200,151,251,193,202,151,251,193,204,151,251,193,132,152,251,193,220,152,251,193,22,153,251,193,66,153,251,193,112,153,251,193,52,147,251,193,54,147,251,193,62,147,251,193,56,147,251,193,58,147,251,193,64,147,251,193,72,147,251,193,78,147,251,193,74,147,251,193,88,147,251,193,90,147,251,193,92,147,251,193,94,147,251,193,96,147,251,193,104,147,251,193,106,147,251,193,108,147,251,193,116,147,251,193,118,147,251,193,120,147,251,193,122,147,251,193,124,147,251,193,126,147,251,193,130,147,251,193,132,147,251,193,134,147,251,193,136,147,251,193,138,147,251,193,150,147,251,193,152,147,251,193,162,147,251,193,164,147,251,193,102,147,251,193,212,78,253,193,158,147,251,193,160,147,251,193,176,147,251,193,210,147,251,193,228,147,251,193,230,147,251,193,232,147,251,193,242,147,251,193,244,147,251,193,6,148,251,193,30,148,251,193,32,148,251,193,42,148,251,193,60,148,251,193,70,148,251,193,132,148,251,193,134,148,251,193,136,148,251,193,138,148,251,193,152,148,251,193,158,148,251,193,172,148,251,193,174,148,251,193,176,148,251,193,178,148,251,193,180,148,251,193,190,148,251,193,220,148,251,193,20,149,251,193,22,149,251,193,142,147,251,193,156,147,251,193,226,147,251,193,252,147,251,193,254,147,251,193,2,148,251,193,26,148,251,193,38,148,251,193,40,148,251,193,80,148,251,193,156,148,251,193,168,148,251,193,170,148,251,193,188,148,251,193,240,148,251,193,242,148,251,193,16,149,251,193,98,149,251,193,100,149,251,193,184,149,251,193,186,149,251,193,16,150,251,193,18,150,251,193,20,150,251,193,22,150,251,193,24,150,251,193,26,150,251,193,134,150,251,193,136,150,251,193,138,150,251,193,140,150,251,193,228,150,251,193,166,147,251,193,170,147,251,193,172,147,251,193,178,147,251,193,182,147,251,193,184,147,251,193,186,147,251,193,188,147,251,193,190,147,251,193,192,147,251,193,194,147,251,193,196,147,251,193,200,147,251,193,202,147,251,193,204,147,251,193,206,147,251,193,208,147,251,193,216,147,251,193,218,147,251,193,220,147,251,193,222,147,251,193,224,147,251,193,234,147,251,193,236,147,251,193,238,147,251,193,240,147,251,193,246,147,251,193,248,147,251,193,8,148,251,193,10,148,251,193,12,148,251,193,22,148,251,193,34,148,251,193,48,148,251,193,50,148,251,193,52,148,251,193,64,148,251,193,66,148,251,193,72,148,251,193,74,148,251,193,88,148,251,193,90,148,251,193,92,148,251,193,94,148,251,193,98,148,251,193,110,148,251,193,116,148,251,193,122,148,251,193,124,148,251,193,126,148,251,193,128,148,251,193,140,148,251,193,144,148,251,193,146,148,251,193,148,148,251,193,162,148,251,193,164,148,251,193,182,148,251,193,184,148,251,193,186,148,251,193,192,148,251,193,194,148,251,193,196,148,251,193,198,148,251,193,16,165,251,193,18,165,251,193,26,165,251,193,28,165,251,193,30,165,251,193,44,165,251,193,46,165,251,193,48,165,251,193,54,165,251,193,56,165,251,193,58,165,251,193,60,165,251,193,62,165,251,193,64,165,251,193,66,165,251,193,80,165,251,193,100,148,251,193,82,165,251,193,84,165,251,193,90,165,251,193,92,165,251,193,94,165,251,193,96,165,251,193,102,165,251,193,104,165,251,193,106,165,251,193,108,165,251,193,110,165,251,193,112,165,251,193,114,165,251,193,116,165,251,193,120,165,251,206,32,47,0,206,32,47,0,193,102,148,251,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,193,206,148,251,193,208,148,251,193,210,148,251,193,212,148,251,193,214,148,251,193,222,148,251,193,224,148,251,193,226,148,251,193,228,148,251,193,230,148,251,193,244,148,251,193,248,148,251,193,250,148,251,193,252,148,251,193,8,149,251,193,254,148,251,193,10,149,251,193,18,149,251,193,40,149,251,193,42,149,251,193,44,149,251,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,193,24,149,251,193,26,149,251,193,28,149,251,193,30,149,251,193,32,149,251,193,34,149,251,193,54,149,251,193,56,149,251,193,58,149,251,193,104,149,251,193,106,149,251,193,108,149,251,193,110,149,251,193,112,149,251,193,114,149,251,193,116,149,251,193,118,149,251,193,192,149,251,193,194,149,251,193,196,149,251,193,198,149,251,193,200,149,251,193,202,149,251,193,204,149,251,193,206,149,251,193,208,149,251,193,210,149,251,193,212,149,251,193,214,149,251,193,32,150,251,193,34,150,251,193,36,150,251,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,206,192,20,0,193,132,149,251,193,134,149,251,193,136,149,251,193,138,149,251,193,140,149,251,193,142,149,251,193,144,149,251,193,146,149,251,193,148,149,251,193,150,149,251,193,152,149,251,193,154,149,251,193,156,149,251,193,158,149,251,193,160,149,251,193,162,149,251,193,164,149,251,193,166,149,251,193,168,149,251,193,170,149,251,193,172,149,251,193,174,149,251,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,193,178,149,251,193,180,149,251,193,182,149,251,193,12,150,251,193,14,150,251,193,132,150,251,193,88,151,251,193,90,151,251,193,206,151,251,193,208,151,251,193,42,152,251,193,44,152,251,193,46,152,251,193,48,152,251,193,50,152,251,193,52,152,251,193,24,153,251,193,26,153,251,193,114,153,251,193,116,153,251,193,180,153,251,193,194,153,251,193,196,153,251,193,254,153,251,193,32,154,251,193,34,154,251,193,36,154,251,193,42,154,251,193,58,154,251,193,60,154,251,193,76,154,251,193,152,154,251,193,222,149,251,193,54,150,251,193,56,150,251,193,58,150,251,193,60,150,251,193,62,150,251,193,64,150,251,193,166,150,251,193,168,150,251,193,8,151,251,193,10,151,251,193,12,151,251,193,14,151,251,193,16,151,251,193,18,151,251,193,122,151,251,193,124,151,251,193,126,151,251,193,128,151,251,193,130,151,251,193,132,151,251,193,134,151,251,193,136,151,251,193,244,151,251,193,246,151,251,193,248,151,251,193,250,151,251,193,252,151,251,193,84,152,251,193,86,152,251,193,88,152,251,193,90,152,251,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,224,20,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,193,38,150,251,193,40,150,251,193,42,150,251,193,44,150,251,193,46,150,251,193,48,150,251,193,50,150,251,193,52,150,251,193,146,150,251,193,148,150,251,193,150,150,251,193,152,150,251,193,154,150,251,193,156,150,251,193,158,150,251,193,160,150,251,193,162,150,251,193,164,150,251,193,240,150,251,193,242,150,251,193,244,150,251,193,246,150,251,193,248,150,251,193,250,150,251,193,252,150,251,193,254,150,251,193,2,151,251,193,4,151,251,193,6,151,251,193,98,151,251,193,100,151,251,193,102,151,251,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,0,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,32,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,193,230,150,251,193,232,150,251,193,234,150,251,193,236,150,251,193,92,151,251,193,94,151,251,193,96,151,251,193,210,151,251,193,212,151,251,193,214,151,251,193,216,151,251,193,218,151,251,193,220,151,251,193,222,151,251,193,224,151,251,193,54,152,251,193,56,152,251,193,58,152,251,193,134,152,251,193,136,152,251,193,138,152,251,193,222,152,251,193,28,153,251,193,30,153,251,193,32,153,251,193,82,153,251,193,84,153,251,193,86,153,251,193,118,153,251,193,156,153,251,193,182,153,251,193,214,153,251,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,64,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,193,104,151,251,193,106,151,251,193,108,151,251,193,110,151,251,193,112,151,251,193,114,151,251,193,116,151,251,193,118,151,251,193,62,152,251,193,120,151,251,193,232,151,251,193,234,151,251,193,236,151,251,193,238,151,251,193,240,151,251,193,242,151,251,193,114,209,252,193,64,152,251,193,66,152,251,193,68,152,251,193,70,152,251,193,72,152,251,193,74,152,251,193,76,152,251,193,78,152,251,193,80,152,251,193,142,152,251,193,82,152,251,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,206,96,21,0,193,254,151,251,193,2,152,251,193,4,152,251,193,6,152,251,193,8,152,251,193,10,152,251,193,12,152,251,193,14,152,251,193,16,152,251,193,18,152,251,193,20,152,251,193,22,152,251,193,24,152,251,193,26,152,251,193,28,152,251,193,30,152,251,193,32,152,251,193,34,152,251,193,36,152,251,193,38,152,251,193,40,152,251,193,92,152,251,193,94,152,251,193,96,152,251,193,98,152,251,193,100,152,251,193,102,152,251,193,104,152,251,193,106,152,251,193,108,152,251,193,110,152,251,193,112,152,251,193,114,152,251,193,116,152,251,193,118,152,251,193,120,152,251,193,122,152,251,193,124,152,251,193,126,152,251,193,128,152,251,193,130,152,251,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,206,128,21,0,193,226,152,251,193,228,152,251,193,230,152,251,193,232,152,251,193,36,153,251,193,38,153,251,193,40,153,251,193,68,153,251,193,70,153,251,193,72,153,251,193,88,153,251,193,120,153,251,193,170,153,251,193,172,153,251,193,176,153,251,193,178,153,251,193,200,153,251,193,202,153,251,193,204,153,251,193,20,154,251,193,92,154,251,193,94,154,251,193,106,154,251,193,144,154,251,193,174,154,251,193,218,154,251,193,164,152,251,193,166,152,251,193,234,152,251,193,236,152,251,193,238,152,251,193,42,153,251,193,44,153,251,193,122,153,251,193,124,153,251,193,142,153,251,193,144,153,251,193,176,154,251,193,178,154,251,193,194,154,251,193,214,154,251,193,244,154,251,193,246,154,251,193,248,154,251,193,60,155,251,193,62,155,251,193,130,155,251,193,132,155,251,193,134,155,251,193,136,155,251,193,138,155,251,193,140,155,251,193,142,155,251,193,144,155,251,193,214,155,251,193,216,155,251,193,218,155,251,193,220,155,251,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,206,160,21,0,193,240,152,251,193,242,152,251,193,244,152,251,193,246,152,251,193,248,152,251,193,250,152,251,193,252,152,251,193,254,152,251,193,2,153,251,193,4,153,251,193,6,153,251,193,8,153,251,193,10,153,251,193,12,153,251,193,14,153,251,193,16,153,251,193,18,153,251,193,20,153,251,193,46,153,251,193,34,153,251,193,140,153,251,193,184,153,251,193,198,153,251,193,218,153,251,193,244,153,251,193,246,153,251,193,2,154,251,193,4,154,251,193,14,154,251,193,16,154,251,193,18,154,251,193,50,154,251,193,52,154,251,193,70,154,251,193,118,154,251,193,120,154,251,193,156,154,251,193,28,155,251,193,196,155,251,193,198,155,251,193,22,156,251,193,24,156,251,193,140,156,251,193,142,156,251,193,28,157,251,193,30,157,251,193,32,157,251,193,148,157,251,193,150,157,251,193,236,157,251,193,92,158,251,193,48,153,251,193,50,153,251,193,52,153,251,193,54,153,251,193,56,153,251,193,58,153,251,193,60,153,251,193,62,153,251,193,64,153,251,193,74,153,251,193,76,153,251,193,78,153,251,193,80,153,251,193,90,153,251,193,92,153,251,193,94,153,251,193,96,153,251,193,98,153,251,193,100,153,251,193,102,153,251,193,104,153,251,193,106,153,251,193,108,153,251,193,110,153,251,193,126,153,251,193,128,153,251,193,130,153,251,193,134,153,251,193,136,153,251,193,138,153,251,193,146,153,251,193,148,153,251,193,132,153,251,193,192,153,251,193,250,153,251,193,252,153,251,193,12,154,251,193,28,154,251,193,30,154,251,193,56,154,251,193,74,154,251,193,82,154,251,193,124,154,251,193,150,154,251,193,94,155,251,193,96,155,251,193,188,155,251,193,190,155,251,193,10,156,251,193,12,156,251,193,104,156,251,193,106,156,251,193,108,156,251,193,110,156,251,193,112,156,251,193,114,156,251,193,4,157,251,193,6,157,251,193,128,157,251,193,130,157,251,193,216,157,251,193,218,157,251,193,66,158,251,193,68,158,251,193,150,153,251,193,152,153,251,193,154,153,251,193,158,153,251,193,160,153,251,193,162,153,251,193,164,153,251,193,166,153,251,193,168,153,251,193,174,153,251,193,186,153,251,193,188,153,251,193,190,153,251,193,206,153,251,193,208,153,251,193,210,153,251,193,212,153,251,193,220,153,251,193,222,153,251,193,224,153,251,193,226,153,251,193,228,153,251,193,232,153,251,193,234,153,251,193,236,153,251,193,238,153,251,193,248,153,251,193,6,154,251,193,8,154,251,193,10,154,251,193,22,154,251,193,24,154,251,193,216,153,251,193,230,153,251,193,240,153,251,193,242,153,251,193,44,154,251,193,46,154,251,193,48,154,251,193,78,154,251,193,102,154,251,193,104,154,251,193,116,154,251,193,134,154,251,193,154,154,251,193,232,154,251,193,234,154,251,193,236,154,251,193,22,155,251,193,24,155,251,193,26,155,251,193,100,155,251,193,102,155,251,193,104,155,251,193,106,155,251,193,108,155,251,193,192,155,251,193,194,155,251,193,18,156,251,193,20,156,251,193,128,156,251,193,130,156,251,193,132,156,251,193,134,156,251,193,182,154,251,193,184,154,251,193,190,154,251,193,192,154,251,193,212,154,251,193,230,154,251,193,20,155,251,193,98,155,251,193,14,156,251,193,16,156,251,193,116,156,251,193,118,156,251,193,120,156,251,193,122,156,251,193,124,156,251,193,126,156,251,193,12,157,251,193,14,157,251,193,16,157,251,193,18,157,251,193,20,157,251,193,22,157,251,193,132,157,251,193,134,157,251,193,136,157,251,193,138,157,251,193,220,157,251,193,222,157,251,193,72,158,251,193,74,158,251,193,76,158,251,193,78,158,251,193,220,154,251,193,222,154,251,193,224,154,251,193,226,154,251,193,238,154,251,193,240,154,251,193,242,154,251,193,30,155,251,193,32,155,251,193,34,155,251,193,36,155,251,193,38,155,251,193,40,155,251,193,42,155,251,193,44,155,251,193,46,155,251,193,48,155,251,193,50,155,251,193,52,155,251,193,54,155,251,193,56,155,251,193,110,155,251,193,112,155,251,193,114,155,251,193,58,155,251,193,116,155,251,193,118,155,251,193,120,155,251,193,122,155,251,193,124,155,251,193,126,155,251,193,128,155,251,193,14,155,251,193,16,155,251,193,18,155,251,193,64,155,251,193,66,155,251,193,68,155,251,193,70,155,251,193,72,155,251,193,74,155,251,193,76,155,251,193,78,155,251,193,80,155,251,193,82,155,251,193,84,155,251,193,86,155,251,193,88,155,251,193,90,155,251,193,92,155,251,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,206,192,21,0,193,228,155,251,193,230,155,251,193,232,155,251,193,234,155,251,193,236,155,251,193,238,155,251,193,240,155,251,193,242,155,251,193,244,155,251,193,246,155,251,193,248,155,251,193,250,155,251,193,252,155,251,193,254,155,251,193,2,156,251,193,4,156,251,193,6,156,251,193,8,156,251,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,206,224,21,0,193,200,155,251,193,202,155,251,193,204,155,251,193,206,155,251,193,208,155,251,193,210,155,251,193,212,155,251,193,26,156,251,193,28,156,251,193,30,156,251,193,32,156,251,193,34,156,251,193,36,156,251,193,38,156,251,193,40,156,251,193,42,156,251,193,144,156,251,193,146,156,251,193,148,156,251,193,150,156,251,193,152,156,251,193,154,156,251,193,156,156,251,193,158,156,251,193,160,156,251,193,162,156,251,193,164,156,251,193,166,156,251,193,168,156,251,193,34,157,251,193,36,157,251,193,38,157,251,193,222,155,251,193,224,155,251,193,226,155,251,193,44,156,251,193,46,156,251,193,48,156,251,193,50,156,251,193,52,156,251,193,170,156,251,193,172,156,251,193,174,156,251,193,176,156,251,193,178,156,251,193,50,157,251,193,52,157,251,193,54,157,251,193,56,157,251,193,168,157,251,193,10,158,251,193,12,158,251,193,14,158,251,193,16,158,251,193,122,158,251,193,124,158,251,193,126,158,251,193,210,158,251,193,212,158,251,193,214,158,251,193,216,158,251,193,114,159,251,193,160,159,251,193,6,160,251,193,136,156,251,193,138,156,251,193,24,157,251,193,26,157,251,193,140,157,251,193,142,157,251,193,144,157,251,193,146,157,251,193,224,157,251,193,226,157,251,193,228,157,251,193,230,157,251,193,232,157,251,193,234,157,251,193,80,158,251,193,82,158,251,193,84,158,251,193,86,158,251,193,88,158,251,193,90,158,251,193,178,158,251,193,180,158,251,193,182,158,251,193,184,158,251,193,186,158,251,193,188,158,251,193,190,158,251,193,192,158,251,206,128,22,0,206,128,22,0,206,128,22,0,206,128,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,206,0,22,0,193,180,209,253,193,250,156,251,193,252,156,251,193,254,156,251,193,2,157,251,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,193,40,157,251,193,42,157,251,193,44,157,251,193,46,157,251,193,238,157,251,193,152,157,251,193,154,157,251,193,156,157,251,193,158,157,251,193,160,157,251,193,48,157,251,193,162,157,251,193,164,157,251,193,240,157,251,193,242,157,251,193,244,157,251,193,246,157,251,193,248,157,251,193,250,157,251,193,252,157,251,193,254,157,251,193,2,158,251,193,4,158,251,193,6,158,251,193,8,158,251,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,206,32,22,0,193,170,157,251,193,124,157,251,193,126,157,251,193,172,157,251,193,168,147,252,193,12,193,252,193,186,201,252,193,26,202,252,193,228,202,252,193,138,222,252,193,238,250,252,193,176,131,253,193,160,139,253,193,254,192,253,193,220,60,252,193,214,21,252,193,208,126,252,193,86,115,253,193,166,157,251,193,242,171,252,193,98,39,252,193,20,80,252,193,154,44,253,193,78,190,253,193,178,193,253,193,72,194,253,193,74,194,253,193,244,194,253,193,110,195,253,193,112,195,253,193,102,207,253,193,36,219,253,193,38,219,253,255,255,255,255,255,255,255,255,255,255,255,255,193,174,157,251,193,176,157,251,193,178,157,251,193,180,157,251,193,182,157,251,193,184,157,251,193,186,157,251,193,188,157,251,193,190,157,251,193,192,157,251,193,194,157,251,193,196,157,251,193,198,157,251,193,200,157,251,193,202,157,251,193,204,157,251,193,206,157,251,193,208,157,251,193,210,157,251,193,212,157,251,193,214,157,251,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,206,64,22,0,193,128,158,251,193,130,158,251,193,132,158,251,193,134,158,251,193,136,158,251,193,138,158,251,193,140,158,251,193,142,158,251,193,144,158,251,193,146,158,251,193,148,158,251,193,150,158,251,193,152,158,251,193,154,158,251,193,156,158,251,193,158,158,251,193,160,158,251,193,162,158,251,193,164,158,251,193,70,158,251,193,170,158,251,193,172,158,251,193,174,158,251,193,248,158,251,193,250,158,251,193,48,159,251,193,50,159,251,193,52,159,251,193,94,159,251,193,144,159,251,193,192,159,251,193,14,160,251,193,42,160,251,193,44,160,251,193,70,160,251,193,76,160,251,193,88,160,251,193,96,160,251,193,152,160,251,193,170,160,251,193,226,160,251,193,18,161,251,193,30,161,251,193,86,161,251,193,98,161,251,193,58,162,251,193,176,162,251,193,252,162,251,193,254,162,251,193,58,163,251,193,136,163,251,193,94,158,251,193,96,158,251,193,194,158,251,193,196,158,251,193,64,159,251,193,106,159,251,193,220,159,251,193,128,160,251,193,130,160,251,193,154,160,251,193,236,160,251,193,238,160,251,193,58,161,251,193,154,161,251,193,172,161,251,193,174,161,251,193,176,161,251,193,200,161,251,193,206,161,251,193,190,162,251,193,192,162,251,193,22,163,251,193,24,163,251,193,78,163,251,193,80,163,251,193,150,163,251,193,152,163,251,193,154,163,251,193,216,163,251,193,218,163,251,193,220,163,251,193,40,164,251,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,206,96,22,0,193,198,158,251,193,200,158,251,193,202,158,251,193,204,158,251,193,206,158,251,193,208,158,251,193,66,159,251,193,108,159,251,193,110,159,251,193,154,159,251,193,156,159,251,193,158,159,251,193,184,159,251,193,200,159,251,193,240,159,251,193,254,159,251,193,4,160,251,193,18,160,251,193,20,160,251,193,30,160,251,193,32,160,251,193,48,160,251,193,50,160,251,193,52,160,251,193,56,160,251,193,102,160,251,193,106,160,251,193,166,158,251,193,168,158,251,193,218,158,251,193,220,158,251,193,222,158,251,193,224,158,251,193,226,158,251,193,228,158,251,193,230,158,251,193,232,158,251,193,234,158,251,193,236,158,251,193,238,158,251,193,240,158,251,193,242,158,251,193,244,158,251,193,246,158,251,193,18,159,251,193,20,159,251,193,22,159,251,193,24,159,251,193,26,159,251,193,28,159,251,193,30,159,251,193,32,159,251,193,34,159,251,193,36,159,251,193,38,159,251,193,130,9,253,193,40,159,251,193,42,159,251,193,44,159,251,193,176,158,251,193,252,158,251,193,254,158,251,193,54,159,251,193,56,159,251,193,58,159,251,193,60,159,251,193,96,159,251,193,146,159,251,193,180,159,251,193,194,159,251,193,212,159,251,193,214,159,251,193,232,159,251,193,234,159,251,193,242,159,251,193,246,159,251,193,16,160,251,193,78,160,251,193,80,160,251,193,98,160,251,193,100,160,251,193,126,160,251,193,172,160,251,193,174,160,251,193,176,160,251,193,228,160,251,193,230,160,251,193,252,160,251,193,254,160,251,193,20,161,251,193,32,161,251,206,128,22,0,206,128,22,0,206,128,22,0,206,128,22,0,193,62,159,251,193,98,159,251,193,100,159,251,193,102,159,251,193,104,159,251,193,148,159,251,193,150,159,251,193,152,159,251,193,182,159,251,193,196,159,251,193,198,159,251,193,216,159,251,193,218,159,251,193,238,159,251,193,24,160,251,193,26,160,251,193,28,160,251,193,46,160,251,193,208,160,251,193,232,160,251,193,234,160,251,193,34,161,251,193,50,161,251,193,74,161,251,193,76,161,251,193,78,161,251,193,100,161,251,193,122,161,251,193,46,159,251,193,68,159,251,193,70,159,251,193,72,159,251,193,74,159,251,193,76,159,251,193,78,159,251,193,80,159,251,193,82,159,251,193,84,159,251,193,86,159,251,193,88,159,251,193,90,159,251,193,92,159,251,193,118,159,251,193,120,159,251,193,122,159,251,193,124,159,251,193,126,159,251,193,128,159,251,193,130,159,251,193,132,159,251,193,134,159,251,193,136,159,251,193,138,159,251,193,140,159,251,193,142,159,251,206,160,22,0,206,160,22,0,206,160,22,0,206,160,22,0,206,160,22,0,193,112,223,253,193,114,223,253,193,118,223,253,193,132,223,253,193,134,223,253,193,136,223,253,193,138,223,253,193,160,223,253,193,162,223,253,193,188,223,253,193,190,223,253,193,226,223,253,193,228,223,253,193,12,224,253,193,14,224,253,193,16,224,253,193,112,159,251,193,30,224,253,193,44,224,253,193,50,224,253,193,52,224,253,193,54,224,253,193,88,224,253,193,90,224,253,193,92,224,253,193,96,224,253,193,110,224,253,193,112,224,253,193,118,224,253,193,166,224,253,193,206,224,253,193,218,224,253,206,160,22,0,206,160,22,0,206,160,22,0,206,160,22,0,193,186,159,251,193,188,159,251,193,190,159,251,193,16,47,252,193,202,159,251,193,204,159,251,193,206,159,251,193,208,159,251,193,210,159,251,193,222,159,251,193,224,159,251,193,226,159,251,193,228,159,251,193,230,159,251,193,236,159,251,193,244,159,251,193,248,159,251,193,250,159,251,193,252,159,251,193,2,160,251,193,8,160,251,193,10,160,251,193,12,160,251,193,36,160,251,193,22,160,251,193,38,160,251,193,40,160,251,193,54,160,251,193,34,160,251,193,36,161,251,193,54,161,251,193,60,161,251,193,138,161,251,193,156,161,251,193,188,161,251,193,228,161,251,193,26,162,251,193,28,162,251,193,30,162,251,193,32,162,251,193,76,162,251,193,78,162,251,193,140,162,251,193,142,162,251,193,144,162,251,193,146,162,251,193,204,162,251,193,206,162,251,193,208,162,251,193,210,162,251,193,212,162,251,193,214,162,251,193,34,163,251,193,36,163,251,193,94,163,251,193,96,163,251,193,98,163,251,193,166,163,251,193,168,163,251,193,170,163,251,193,58,160,251,193,60,160,251,193,62,160,251,193,64,160,251,193,66,160,251,193,68,160,251,193,72,160,251,193,74,160,251,193,82,160,251,193,84,160,251,193,86,160,251,193,90,160,251,193,104,160,251,193,110,160,251,193,114,160,251,193,116,160,251,193,120,160,251,193,122,160,251,193,124,160,251,193,138,160,251,193,182,160,251,193,140,160,251,193,142,160,251,193,144,160,251,193,146,160,251,193,148,160,251,193,150,160,251,193,158,160,251,193,184,160,251,193,160,160,251,193,162,160,251,193,164,160,251,193,172,228,251,193,92,160,251,193,174,228,251,193,176,228,251,193,178,228,251,193,180,228,251,193,182,228,251,193,184,228,251,193,186,228,251,193,188,228,251,193,190,228,251,193,192,228,251,193,194,228,251,193,196,228,251,193,198,228,251,193,200,228,251,193,202,228,251,193,204,228,251,193,206,228,251,193,208,228,251,193,210,228,251,193,212,228,251,193,214,228,251,193,216,228,251,193,218,228,251,193,220,228,251,193,222,228,251,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,206,224,34,0,193,164,191,252,193,166,191,252,193,168,191,252,193,170,191,252,193,172,191,252,193,174,191,252,193,176,191,252,193,178,191,252,193,180,191,252,193,182,191,252,193,94,160,251,193,184,191,252,193,186,191,252,193,188,191,252,193,190,191,252,193,208,191,252,193,210,191,252,193,212,191,252,193,214,191,252,193,216,191,252,193,218,191,252,193,220,191,252,193,222,191,252,193,224,191,252,193,226,191,252,193,228,191,252,193,230,191,252,193,232,191,252,193,234,191,252,193,22,192,252,193,24,192,252,193,26,192,252,193,108,160,251,193,112,160,251,193,118,160,251,193,132,160,251,193,134,160,251,193,136,160,251,193,156,160,251,193,178,160,251,193,180,160,251,193,210,160,251,193,52,161,251,193,108,161,251,193,114,161,251,193,120,161,251,193,128,161,251,193,130,161,251,193,132,161,251,193,182,161,251,193,186,161,251,193,216,161,251,193,222,161,251,193,224,161,251,193,226,161,251,193,250,161,251,193,252,161,251,193,18,162,251,193,20,162,251,193,22,162,251,193,24,162,251,193,68,162,251,193,70,162,251,193,72,162,251,193,166,160,251,193,168,160,251,193,186,160,251,193,188,160,251,193,190,160,251,193,192,160,251,193,194,160,251,193,196,160,251,193,198,160,251,193,200,160,251,193,202,160,251,193,204,160,251,193,206,160,251,193,212,160,251,193,214,160,251,193,216,160,251,193,218,160,251,193,220,160,251,193,222,160,251,193,224,160,251,193,240,160,251,193,242,160,251,193,244,160,251,193,246,160,251,193,248,160,251,193,250,160,251,193,2,161,251,193,4,161,251,193,6,161,251,193,8,161,251,193,10,161,251,193,12,161,251,193,70,161,251,193,72,161,251,193,88,161,251,193,90,161,251,193,94,161,251,193,60,162,251,193,62,162,251,193,64,162,251,193,110,162,251,193,112,162,251,193,114,162,251,193,178,162,251,193,180,162,251,193,182,162,251,193,2,163,251,193,4,163,251,193,6,163,251,193,8,163,251,193,10,163,251,193,60,163,251,193,62,163,251,193,64,163,251,193,66,163,251,193,138,163,251,193,140,163,251,193,196,163,251,193,198,163,251,193,36,164,251,193,68,164,251,193,70,164,251,193,96,164,251,193,98,164,251,193,124,161,251,193,126,161,251,193,180,161,251,193,196,161,251,193,198,161,251,193,248,161,251,193,66,162,251,193,116,162,251,193,118,162,251,193,184,162,251,193,186,162,251,193,188,162,251,193,12,163,251,193,14,163,251,193,16,163,251,193,18,163,251,193,20,163,251,193,68,163,251,193,70,163,251,193,72,163,251,193,74,163,251,193,76,163,251,193,142,163,251,193,144,163,251,193,146,163,251,193,148,163,251,193,200,163,251,193,202,163,251,193,204,163,251,193,206,163,251,193,208,163,251,193,210,163,251,193,142,161,251,193,144,161,251,193,146,161,251,193,148,161,251,193,150,161,251,193,152,161,251,193,158,161,251,193,160,161,251,193,162,161,251,193,164,161,251,193,166,161,251,193,168,161,251,193,170,161,251,193,178,161,251,193,184,161,251,193,190,161,251,193,192,161,251,193,202,161,251,193,204,161,251,193,208,161,251,193,210,161,251,193,212,161,251,193,214,161,251,193,218,161,251,193,220,161,251,193,230,161,251,193,232,161,251,193,234,161,251,193,236,161,251,193,238,161,251,193,240,161,251,193,242,161,251,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,206,224,40,0,193,238,10,252,193,240,10,252,193,242,10,252,193,244,10,252,193,250,220,253,193,246,10,252,193,248,10,252,193,250,10,252,193,194,161,251,193,28,11,252,193,30,11,252,193,32,11,252,193,34,11,252,193,54,11,252,193,56,11,252,193,58,11,252,193,60,11,252,193,62,11,252,193,64,11,252,193,66,11,252,193,68,11,252,193,90,11,252,193,92,11,252,193,94,11,252,193,96,11,252,193,244,161,251,193,246,161,251,193,254,161,251,193,2,162,251,193,4,162,251,193,6,162,251,193,8,162,251,193,10,162,251,193,12,162,251,193,14,162,251,193,16,162,251,193,34,162,251,193,36,162,251,193,38,162,251,193,40,162,251,193,42,162,251,193,44,162,251,193,46,162,251,193,48,162,251,193,50,162,251,193,52,162,251,193,54,162,251,193,56,162,251,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,193,74,162,251,193,120,162,251,193,122,162,251,193,124,162,251,193,126,162,251,193,128,162,251,193,130,162,251,193,132,162,251,193,134,162,251,193,136,162,251,193,138,162,251,193,194,162,251,193,196,162,251,193,198,162,251,193,200,162,251,193,202,162,251,193,26,163,251,193,28,163,251,193,30,163,251,193,32,163,251,193,82,163,251,193,84,163,251,193,86,163,251,193,88,163,251,193,90,163,251,193,92,163,251,193,156,163,251,193,158,163,251,193,160,163,251,193,162,163,251,193,164,163,251,193,222,163,251,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,206,192,22,0,193,148,162,251,193,150,162,251,193,152,162,251,193,154,162,251,193,156,162,251,193,158,162,251,193,160,162,251,193,162,162,251,193,164,162,251,193,166,162,251,193,168,162,251,193,170,162,251,193,172,162,251,193,174,162,251,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,206,224,22,0,193,38,163,251,193,40,163,251,193,42,163,251,193,44,163,251,193,46,163,251,193,48,163,251,193,50,163,251,193,52,163,251,193,54,163,251,193,56,163,251,193,100,163,251,193,102,163,251,193,104,163,251,193,106,163,251,193,108,163,251,193,110,163,251,193,112,163,251,193,114,163,251,193,116,163,251,193,118,163,251,193,120,163,251,193,122,163,251,193,124,163,251,193,126,163,251,193,128,163,251,193,130,163,251,193,132,163,251,193,134,163,251,193,172,163,251,193,174,163,251,193,176,163,251,193,178,163,251,193,180,163,251,193,182,163,251,193,184,163,251,193,186,163,251,193,188,163,251,193,190,163,251,193,236,163,251,193,238,163,251,193,240,163,251,193,242,163,251,193,244,163,251,193,246,163,251,193,248,163,251,193,250,163,251,193,10,164,251,193,12,164,251,193,14,164,251,193,16,164,251,193,18,164,251,193,20,164,251,193,22,164,251,193,24,164,251,193,26,164,251,193,28,164,251,193,30,164,251,193,32,164,251,193,54,164,251,193,56,164,251,193,192,163,251,193,194,163,251,193,34,164,251,193,118,164,251,193,188,164,251,193,204,164,251,193,226,164,251,193,98,165,251,193,200,165,251,193,48,166,251,193,68,166,251,193,172,166,251,193,226,166,251,193,132,167,251,193,134,167,251,193,254,167,251,193,2,168,251,193,96,168,251,193,98,168,251,193,100,168,251,193,200,168,251,193,202,168,251,193,24,169,251,193,26,169,251,193,28,169,251,193,142,169,251,193,170,169,251,193,192,169,251,193,194,169,251,193,38,170,251,193,142,170,251,193,128,171,251,193,212,163,251,193,214,163,251,193,252,163,251,193,254,163,251,193,38,164,251,193,72,164,251,193,74,164,251,193,76,164,251,193,100,164,251,193,102,164,251,193,122,164,251,193,124,164,251,193,142,164,251,193,242,164,251,193,244,164,251,193,2,165,251,193,20,165,251,193,36,165,251,193,38,165,251,193,170,165,251,193,14,166,251,193,16,166,251,193,28,166,251,193,30,166,251,193,32,166,251,193,50,166,251,193,52,166,251,193,54,166,251,193,118,166,251,193,120,166,251,193,182,166,251,193,230,166,251,193,224,163,251,193,226,163,251,193,228,163,251,193,2,164,251,193,4,164,251,193,6,164,251,193,42,164,251,193,44,164,251,193,46,164,251,193,48,164,251,193,80,164,251,193,82,164,251,193,104,164,251,193,126,164,251,193,194,164,251,193,198,164,251,193,210,164,251,193,212,164,251,193,214,164,251,193,216,164,251,193,230,164,251,193,232,164,251,193,246,164,251,193,10,165,251,193,24,165,251,193,40,165,251,193,42,165,251,193,74,165,251,193,76,165,251,193,86,165,251,193,88,165,251,193,100,165,251,193,230,163,251,193,232,163,251,193,234,163,251,193,8,164,251,193,50,164,251,193,52,164,251,193,178,164,251,193,234,164,251,193,78,165,251,193,130,165,251,193,146,165,251,193,154,165,251,193,156,165,251,193,158,165,251,193,214,165,251,193,238,165,251,193,240,165,251,193,22,166,251,193,36,166,251,193,56,166,251,193,94,166,251,193,106,166,251,193,140,166,251,193,142,166,251,193,202,166,251,193,204,166,251,193,14,167,251,193,16,167,251,193,18,167,251,193,20,167,251,193,22,167,251,193,24,167,251,193,58,164,251,193,60,164,251,193,62,164,251,193,64,164,251,193,66,164,251,193,84,164,251,193,86,164,251,193,88,164,251,193,90,164,251,193,92,164,251,193,94,164,251,193,250,171,252,193,106,164,251,193,108,164,251,193,110,164,251,193,112,164,251,193,114,164,251,193,116,164,251,193,128,164,251,193,130,164,251,193,132,164,251,193,134,164,251,193,136,164,251,193,138,164,251,193,144,164,251,193,146,164,251,193,148,164,251,193,150,164,251,193,152,164,251,193,154,164,251,193,156,164,251,193,160,164,251,193,78,164,251,193,176,164,251,193,192,164,251,193,22,165,251,193,50,165,251,193,52,165,251,193,152,165,251,193,172,165,251,193,182,165,251,193,204,165,251,193,206,165,251,193,254,165,251,193,122,166,251,193,246,166,251,193,150,167,251,193,152,167,251,193,26,168,251,193,28,168,251,193,30,168,251,193,32,168,251,193,124,168,251,193,126,168,251,193,212,168,251,193,40,169,251,193,150,169,251,193,202,169,251,193,12,170,251,193,46,170,251,193,48,170,251,193,160,170,251,193,162,170,251,193,164,170,251,193,120,164,251,193,140,164,251,193,174,164,251,193,190,164,251,193,240,164,251,193,32,165,251,193,34,165,251,193,70,165,251,193,72,165,251,193,202,165,251,193,70,166,251,193,100,166,251,193,116,166,251,193,174,166,251,193,176,166,251,193,178,166,251,193,180,166,251,193,228,166,251,193,58,167,251,193,60,167,251,193,136,167,251,193,138,167,251,193,4,168,251,193,6,168,251,193,8,168,251,193,102,168,251,193,104,168,251,193,106,168,251,193,108,168,251,193,110,168,251,193,204,168,251,193,206,168,251,193,88,93,252,193,90,93,252,193,92,93,252,193,94,93,252,193,96,93,252,193,98,93,252,193,116,93,252,193,118,93,252,193,120,93,252,193,122,93,252,193,124,93,252,193,126,93,252,193,134,93,252,193,136,93,252,193,138,93,252,193,140,93,252,193,142,93,252,193,144,93,252,193,160,93,252,193,162,93,252,193,164,93,252,193,176,93,252,193,180,93,252,193,182,93,252,193,184,93,252,193,186,93,252,193,188,93,252,193,194,93,252,193,196,93,252,193,158,164,251,193,198,93,252,193,200,93,252,193,162,164,251,193,164,164,251,193,166,164,251,193,168,164,251,193,170,164,251,193,172,164,251,193,180,164,251,193,182,164,251,193,184,164,251,193,186,164,251,193,196,164,251,193,200,164,251,193,202,164,251,193,206,164,251,193,208,164,251,193,218,164,251,193,220,164,251,193,222,164,251,193,224,164,251,193,228,164,251,193,236,164,251,193,238,164,251,193,122,94,252,193,248,164,251,193,250,164,251,193,252,164,251,193,254,164,251,193,4,165,251,193,6,165,251,193,8,165,251,193,12,165,251,193,14,165,251,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,193,68,165,251,193,220,37,252,193,222,37,252,193,224,37,252,193,226,37,252,193,228,37,252,193,230,37,252,193,118,165,251,193,122,165,251,193,140,165,251,193,142,165,251,193,144,165,251,193,174,165,251,193,176,165,251,193,184,165,251,193,186,165,251,193,208,165,251,193,192,252,252,193,210,165,251,193,212,165,251,193,236,165,251,193,2,166,251,193,18,166,251,193,20,166,251,193,34,166,251,193,78,166,251,193,88,166,251,193,102,166,251,193,104,166,251,193,124,166,251,193,126,166,251,193,128,166,251,193,130,166,251,193,132,166,251,193,134,166,251,206,0,23,0,206,0,23,0,206,0,23,0,206,0,23,0,193,124,165,251,193,126,165,251,193,128,165,251,193,132,165,251,193,134,165,251,193,136,165,251,193,138,165,251,193,148,165,251,193,150,165,251,193,160,165,251,193,162,165,251,193,164,165,251,193,166,165,251,193,168,165,251,193,178,165,251,193,188,165,251,193,190,165,251,193,192,165,251,193,194,165,251,193,196,165,251,193,216,165,251,193,218,165,251,193,220,165,251,193,222,165,251,193,224,165,251,193,226,165,251,193,228,165,251,193,230,165,251,193,232,165,251,193,234,165,251,193,242,165,251,193,244,165,251,193,246,165,251,193,248,165,251,193,250,165,251,193,252,165,251,193,4,166,251,193,6,166,251,193,8,166,251,193,10,166,251,193,12,166,251,193,24,166,251,193,26,166,251,193,38,166,251,193,40,166,251,193,42,166,251,193,44,166,251,193,46,166,251,193,58,166,251,193,60,166,251,193,62,166,251,193,64,166,251,193,66,166,251,193,72,166,251,193,76,166,251,193,74,166,251,193,80,166,251,193,82,166,251,193,84,166,251,193,86,166,251,193,90,166,251,193,92,166,251,193,96,166,251,193,98,166,251,193,108,166,251,193,110,166,251,193,112,166,251,193,114,166,251,193,144,166,251,193,146,166,251,193,148,166,251,193,150,166,251,193,152,166,251,193,154,166,251,193,156,166,251,193,158,166,251,193,160,166,251,193,162,166,251,193,164,166,251,193,166,166,251,193,168,166,251,193,170,166,251,193,206,166,251,193,208,166,251,193,210,166,251,193,212,166,251,193,214,166,251,193,216,166,251,193,218,166,251,193,220,166,251,193,222,166,251,193,224,166,251,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,0,23,0,206,0,23,0,206,0,23,0,206,0,23,0,206,0,23,0,193,248,166,251,193,250,166,251,193,252,166,251,193,254,166,251,193,2,167,251,193,4,167,251,193,6,167,251,193,8,167,251,193,10,167,251,193,68,167,251,193,70,167,251,193,72,167,251,193,74,167,251,193,76,167,251,193,78,167,251,193,12,167,251,193,80,167,251,193,154,167,251,193,156,167,251,193,158,167,251,193,160,167,251,193,34,168,251,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,193,232,166,251,193,234,166,251,193,236,166,251,193,238,166,251,193,240,166,251,193,242,166,251,193,244,166,251,193,62,167,251,193,64,167,251,193,66,167,251,193,140,167,251,193,142,167,251,193,144,167,251,193,146,167,251,193,148,167,251,193,10,168,251,193,12,168,251,193,14,168,251,193,16,168,251,193,18,168,251,193,20,168,251,193,22,168,251,193,24,168,251,193,112,168,251,193,114,168,251,193,116,168,251,193,118,168,251,193,120,168,251,193,122,168,251,193,210,168,251,193,34,169,251,193,36,169,251,193,26,167,251,193,28,167,251,193,82,167,251,193,84,167,251,193,182,167,251,193,184,167,251,193,186,167,251,193,188,167,251,193,190,167,251,193,192,167,251,193,50,168,251,193,52,168,251,193,54,168,251,193,56,168,251,193,58,168,251,193,138,168,251,193,220,168,251,193,222,168,251,193,224,168,251,193,56,169,251,193,58,169,251,193,110,169,251,193,112,169,251,193,156,169,251,193,206,169,251,193,222,169,251,193,8,170,251,193,22,170,251,193,86,170,251,193,88,170,251,193,90,170,251,193,92,170,251,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,206,32,23,0,193,86,167,251,193,88,167,251,193,90,167,251,193,92,167,251,193,94,167,251,193,96,167,251,193,98,167,251,193,100,167,251,193,102,167,251,193,104,167,251,193,106,167,251,193,108,167,251,193,110,167,251,193,112,167,251,193,114,167,251,193,116,167,251,193,118,167,251,193,120,167,251,193,122,167,251,193,124,167,251,193,126,167,251,193,128,167,251,193,130,167,251,193,194,167,251,193,196,167,251,193,198,167,251,193,200,167,251,193,202,167,251,193,204,167,251,193,206,167,251,193,208,167,251,193,210,167,251,193,212,167,251,193,214,167,251,193,216,167,251,193,218,167,251,193,220,167,251,193,222,167,251,193,224,167,251,193,226,167,251,193,228,167,251,193,230,167,251,193,232,167,251,193,234,167,251,193,236,167,251,193,238,167,251,193,240,167,251,193,242,167,251,193,244,167,251,193,246,167,251,193,248,167,251,193,250,167,251,193,252,167,251,193,60,168,251,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,206,64,23,0,193,36,168,251,193,38,168,251,193,40,168,251,193,42,168,251,193,44,168,251,193,46,168,251,193,48,168,251,193,128,168,251,193,130,168,251,193,132,168,251,193,134,168,251,193,136,168,251,193,214,168,251,193,42,169,251,193,216,168,251,193,218,168,251,193,44,169,251,193,46,169,251,193,48,169,251,193,50,169,251,193,52,169,251,193,54,169,251,193,106,169,251,193,108,169,251,193,152,169,251,193,154,169,251,193,204,169,251,193,62,168,251,193,64,168,251,193,66,168,251,193,68,168,251,193,70,168,251,193,72,168,251,193,74,168,251,193,76,168,251,193,78,168,251,193,80,168,251,193,82,168,251,193,84,168,251,193,186,15,253,193,86,168,251,193,88,168,251,193,90,168,251,193,92,168,251,193,94,168,251,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,96,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,206,128,23,0,193,198,168,251,193,20,169,251,193,22,169,251,193,60,169,251,193,62,169,251,193,64,169,251,193,66,169,251,193,68,169,251,193,70,169,251,193,72,169,251,193,74,169,251,193,76,169,251,193,78,169,251,193,80,169,251,193,82,169,251,193,84,169,251,193,86,169,251,193,88,169,251,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,193,208,168,251,193,30,169,251,193,32,169,251,193,90,169,251,193,92,169,251,193,94,169,251,193,172,169,251,193,196,169,251,193,198,169,251,193,240,169,251,193,246,169,251,193,40,170,251,193,42,170,251,193,44,170,251,193,144,170,251,193,146,170,251,193,148,170,251,193,150,170,251,193,144,171,251,193,146,171,251,193,148,171,251,193,150,171,251,193,152,171,251,193,154,171,251,193,156,171,251,193,158,171,251,193,206,172,251,193,208,172,251,193,210,172,251,193,212,172,251,193,214,172,251,193,216,172,251,193,38,169,251,193,96,169,251,193,98,169,251,193,100,169,251,193,102,169,251,193,104,169,251,193,144,169,251,193,146,169,251,193,148,169,251,193,200,169,251,193,216,169,251,193,152,170,251,193,154,170,251,193,156,170,251,193,158,170,251,193,160,171,251,193,162,171,251,193,164,171,251,193,166,171,251,193,168,171,251,193,170,171,251,193,172,171,251,193,174,171,251,193,176,171,251,193,178,171,251,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,206,160,23,0,193,14,16,253,193,138,169,251,193,140,169,251,193,158,169,251,193,160,169,251,193,162,169,251,193,18,16,253,193,164,169,251,193,166,169,251,193,168,169,251,193,174,169,251,193,176,169,251,193,178,169,251,193,180,169,251,193,182,169,251,193,184,169,251,193,186,169,251,193,188,169,251,193,190,169,251,193,208,169,251,193,210,169,251,193,212,169,251,193,176,215,253,193,214,169,251,193,224,169,251,193,226,169,251,193,228,169,251,193,218,169,251,193,220,169,251,193,234,169,251,193,252,169,251,193,254,169,251,193,4,170,251,193,6,170,251,193,14,170,251,193,16,170,251,193,18,170,251,193,20,170,251,193,50,170,251,193,52,170,251,193,54,170,251,193,56,170,251,193,58,170,251,193,60,170,251,193,62,170,251,193,64,170,251,193,66,170,251,193,68,170,251,193,70,170,251,193,72,170,251,193,74,170,251,193,76,170,251,193,78,170,251,193,80,170,251,193,82,170,251,193,84,170,251,193,168,170,251,193,170,170,251,193,172,170,251,193,230,169,251,193,40,16,253,193,232,169,251,193,236,169,251,193,238,169,251,193,242,169,251,193,244,169,251,193,248,169,251,193,250,169,251,193,2,170,251,193,10,170,251,193,24,170,251,193,26,170,251,193,28,170,251,193,30,170,251,193,32,170,251,193,34,170,251,193,36,170,251,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,193,94,170,251,193,252,170,251,193,254,170,251,193,2,171,251,193,4,171,251,193,6,171,251,193,8,171,251,193,10,171,251,193,12,171,251,193,14,171,251,193,16,171,251,193,18,171,251,193,58,172,251,193,60,172,251,193,62,172,251,193,64,172,251,193,66,172,251,193,68,172,251,193,70,172,251,193,72,172,251,193,74,172,251,193,76,172,251,193,78,172,251,193,80,172,251,193,82,172,251,193,84,172,251,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,192,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,193,166,170,251,193,180,171,251,193,182,171,251,193,184,171,251,193,186,171,251,193,188,171,251,193,190,171,251,193,192,171,251,193,194,171,251,193,196,171,251,193,248,172,251,193,250,172,251,193,252,172,251,193,254,172,251,193,2,173,251,193,4,173,251,193,6,173,251,193,8,173,251,193,10,173,251,193,12,173,251,193,116,174,251,193,118,174,251,193,120,174,251,193,122,174,251,193,124,174,251,193,126,174,251,193,128,174,251,193,130,174,251,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,193,174,170,251,193,176,170,251,193,178,170,251,193,180,170,251,193,182,170,251,193,184,170,251,193,186,170,251,193,188,170,251,193,190,170,251,193,192,170,251,193,194,170,251,193,196,170,251,193,198,170,251,193,200,170,251,193,202,170,251,193,204,170,251,193,206,170,251,193,208,170,251,193,210,170,251,193,212,170,251,193,214,170,251,193,216,170,251,193,218,170,251,193,220,170,251,193,222,170,251,193,224,170,251,193,226,170,251,193,228,170,251,193,230,170,251,193,232,170,251,193,234,170,251,193,236,170,251,193,238,170,251,193,240,170,251,193,242,170,251,193,244,170,251,193,246,170,251,193,248,170,251,193,250,170,251,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,206,224,23,0,193,86,172,251,193,130,171,251,193,132,171,251,193,134,171,251,193,136,171,251,193,138,171,251,193,140,171,251,193,192,172,251,193,194,172,251,193,196,172,251,193,198,172,251,193,200,172,251,193,202,172,251,193,204,172,251,193,48,174,251,193,50,174,251,193,52,174,251,193,54,174,251,193,56,174,251,193,58,174,251,193,60,174,251,193,62,174,251,193,166,175,251,193,168,175,251,193,170,175,251,193,172,175,251,193,174,175,251,193,176,175,251,193,178,175,251,193,180,175,251,193,182,175,251,193,184,175,251,193,156,177,251,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,206,0,24,0,193,88,172,251,193,90,172,251,193,92,172,251,193,94,172,251,193,96,172,251,193,98,172,251,193,100,172,251,193,102,172,251,193,104,172,251,193,106,172,251,193,108,172,251,193,110,172,251,193,112,172,251,193,114,172,251,193,116,172,251,193,118,172,251,193,120,172,251,193,122,172,251,193,124,172,251,193,126,172,251,193,128,172,251,193,130,172,251,193,132,172,251,193,134,172,251,193,136,172,251,193,138,172,251,193,140,172,251,193,142,172,251,193,144,172,251,193,146,172,251,193,148,172,251,193,150,172,251,193,152,172,251,193,154,172,251,193,156,172,251,193,158,172,251,193,160,172,251,193,162,172,251,193,164,172,251,193,166,172,251,193,168,172,251,193,170,172,251,193,172,172,251,193,174,172,251,193,176,172,251,193,178,172,251,193,180,172,251,193,182,172,251,193,184,172,251,193,186,172,251,193,188,172,251,193,190,172,251,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,206,32,24,0,193,88,174,251,193,90,174,251,193,92,174,251,193,94,174,251,193,96,174,251,193,98,174,251,193,100,174,251,193,102,174,251,193,104,174,251,193,106,174,251,193,108,174,251,193,110,174,251,193,112,174,251,193,114,174,251,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,206,64,24,0,193,132,174,251,193,134,174,251,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,206,96,24,0,193,232,174,251,193,234,174,251,193,236,174,251,193,238,174,251,193,240,174,251,193,242,174,251,193,244,174,251,193,246,174,251,193,248,174,251,193,250,174,251,193,252,174,251,193,254,174,251,193,178,173,251,193,2,175,251,193,4,175,251,193,6,175,251,193,146,176,251,193,148,176,251,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,128,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,193,64,174,251,193,66,174,251,193,68,174,251,193,70,174,251,193,72,174,251,193,74,174,251,193,76,174,251,193,78,174,251,193,80,174,251,193,82,174,251,193,84,174,251,193,86,174,251,193,186,175,251,193,188,175,251,193,190,175,251,193,192,175,251,193,194,175,251,193,196,175,251,193,198,175,251,193,200,175,251,193,202,175,251,193,204,175,251,193,172,177,251,193,174,177,251,193,176,177,251,193,178,177,251,193,180,177,251,193,182,177,251,193,184,177,251,193,186,177,251,193,188,177,251,193,190,177,251,193,136,174,251,193,138,174,251,193,140,174,251,193,142,174,251,193,144,174,251,193,146,174,251,193,148,174,251,193,150,174,251,193,152,174,251,193,154,174,251,193,156,174,251,193,158,174,251,193,160,174,251,193,162,174,251,193,164,174,251,193,166,174,251,193,168,174,251,193,170,174,251,193,172,174,251,193,174,174,251,193,176,174,251,193,178,174,251,193,180,174,251,193,182,174,251,193,184,174,251,193,186,174,251,193,188,174,251,193,190,174,251,193,192,174,251,193,194,174,251,193,196,174,251,193,198,174,251,193,200,174,251,193,202,174,251,193,204,174,251,193,206,174,251,193,208,174,251,193,210,174,251,193,212,174,251,193,214,174,251,193,216,174,251,193,218,174,251,193,220,174,251,193,222,174,251,193,224,174,251,193,226,174,251,193,228,174,251,193,230,174,251,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,160,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,206,192,24,0,193,192,177,251,193,194,177,251,193,196,177,251,193,198,177,251,193,200,177,251,193,202,177,251,193,204,177,251,193,206,177,251,193,208,177,251,193,210,177,251,193,212,177,251,193,214,177,251,193,216,177,251,193,218,177,251,193,220,177,251,193,222,177,251,193,224,177,251,193,226,177,251,193,228,177,251,193,230,177,251,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,206,224,24,0,193,234,177,251,193,236,177,251,193,238,177,251,193,240,177,251,193,242,177,251,193,244,177,251,193,246,177,251,193,248,177,251,193,250,177,251,193,190,179,251,193,192,179,251,193,194,179,251,193,196,179,251,193,198,179,251,193,200,179,251,193,202,179,251,193,204,179,251,193,206,179,251,193,208,179,251,193,210,179,251,193,212,179,251,206,0,26,0,206,0,26,0,206,0,26,0,206,0,26,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,0,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,193,150,176,251,193,152,176,251,193,154,176,251,193,156,176,251,193,158,176,251,193,160,176,251,193,162,176,251,193,164,176,251,193,166,176,251,193,168,176,251,193,170,176,251,193,172,176,251,193,174,176,251,193,176,176,251,193,178,176,251,193,180,176,251,193,182,176,251,193,184,176,251,193,186,176,251,193,188,176,251,193,190,176,251,193,192,176,251,193,194,176,251,193,196,176,251,193,198,176,251,193,200,176,251,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,32,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,193,158,177,251,193,160,177,251,193,162,177,251,193,164,177,251,193,166,177,251,193,168,177,251,193,170,177,251,193,94,179,251,193,96,179,251,193,98,179,251,193,100,179,251,193,102,179,251,193,104,179,251,193,106,179,251,193,108,179,251,193,110,179,251,193,112,179,251,193,114,179,251,193,116,179,251,193,244,180,251,193,246,180,251,193,248,180,251,193,250,180,251,193,252,180,251,193,254,180,251,193,2,181,251,193,4,181,251,193,6,181,251,193,8,181,251,193,10,181,251,193,12,181,251,193,140,182,251,193,232,177,251,193,146,179,251,193,148,179,251,193,150,179,251,193,152,179,251,193,154,179,251,193,156,179,251,193,158,179,251,193,160,179,251,193,162,179,251,193,164,179,251,193,166,179,251,193,168,179,251,193,170,179,251,193,172,179,251,193,174,179,251,193,176,179,251,193,178,179,251,193,180,179,251,193,182,179,251,193,184,179,251,193,186,179,251,193,188,179,251,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,64,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,193,108,178,251,193,140,181,251,193,142,181,251,193,144,181,251,193,146,181,251,193,242,182,251,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,206,96,25,0,193,46,180,251,193,48,180,251,193,50,180,251,193,52,180,251,193,54,180,251,193,56,180,251,193,58,180,251,193,60,180,251,193,62,180,251,193,64,180,251,193,66,180,251,193,68,180,251,193,70,180,251,193,72,180,251,193,74,180,251,193,76,180,251,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,128,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,193,118,179,251,193,120,179,251,193,122,179,251,193,124,179,251,193,126,179,251,193,128,179,251,193,130,179,251,193,132,179,251,193,134,179,251,193,136,179,251,193,138,179,251,193,140,179,251,193,142,179,251,193,144,179,251,193,14,181,251,193,16,181,251,193,18,181,251,193,20,181,251,193,22,181,251,193,24,181,251,193,26,181,251,193,28,181,251,193,30,181,251,193,32,181,251,193,158,182,251,193,160,182,251,193,162,182,251,193,164,182,251,193,166,182,251,193,168,182,251,193,170,182,251,193,172,182,251,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,160,25,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,32,26,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,192,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,224,25,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,0,26,0,206,0,26,0,206,0,26,0,206,0,26,0,206,0,26,0,193,230,182,251,193,232,182,251,193,234,182,251,193,236,182,251,193,238,182,251,193,240,182,251,193,110,184,251,193,112,184,251,193,114,184,251,193,116,184,251,193,118,184,251,193,120,184,251,193,122,184,251,193,124,184,251,193,126,184,251,193,118,185,251,193,120,185,251,193,122,185,251,193,44,186,251,193,46,186,251,193,48,186,251,193,50,186,251,193,214,186,251,193,216,186,251,193,218,186,251,193,220,186,251,193,84,187,251,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,64,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,206,96,26,0,193,76,183,251,193,78,183,251,193,80,183,251,193,82,183,251,193,84,183,251,193,86,183,251,193,88,183,251,193,90,183,251,193,92,183,251,193,94,183,251,193,96,183,251,193,98,183,251,193,100,183,251,193,102,183,251,193,192,184,251,193,194,184,251,193,196,184,251,193,166,185,251,193,168,185,251,193,170,185,251,193,172,185,251,193,174,185,251,193,176,185,251,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,128,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,193,232,196,252,193,194,196,252,193,234,196,252,193,236,196,252,193,238,196,252,193,240,196,252,193,242,196,252,193,244,196,252,193,246,196,252,193,248,196,252,193,250,196,252,193,252,196,252,193,138,182,251,193,254,196,252,193,2,197,252,193,4,197,252,193,6,197,252,193,8,197,252,193,10,197,252,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,193,142,182,251,193,144,182,251,193,146,182,251,193,148,182,251,193,150,182,251,193,152,182,251,193,154,182,251,193,156,182,251,193,44,184,251,193,46,184,251,193,48,184,251,193,50,184,251,193,52,184,251,193,54,184,251,193,66,185,251,193,68,185,251,193,70,185,251,193,72,185,251,193,74,185,251,193,76,185,251,193,78,185,251,193,80,185,251,193,82,185,251,193,16,186,251,193,18,186,251,193,20,186,251,193,168,186,251,193,170,186,251,193,172,186,251,193,174,186,251,193,176,186,251,193,60,187,251,193,174,182,251,193,176,182,251,193,178,182,251,193,56,184,251,193,58,184,251,193,60,184,251,193,62,184,251,193,64,184,251,193,66,184,251,193,68,184,251,193,84,185,251,193,86,185,251,193,88,185,251,193,90,185,251,193,92,185,251,193,94,185,251,193,22,186,251,193,24,186,251,193,26,186,251,193,178,186,251,193,180,186,251,193,182,186,251,193,184,186,251,193,186,186,251,193,188,186,251,193,190,186,251,193,64,187,251,193,66,187,251,193,68,187,251,193,128,187,251,193,130,187,251,193,132,187,251,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,206,160,26,0,193,70,184,251,193,72,184,251,193,74,184,251,193,76,184,251,193,78,184,251,193,80,184,251,193,82,184,251,193,84,184,251,193,86,184,251,193,88,184,251,193,90,184,251,193,92,184,251,193,94,184,251,193,96,184,251,193,98,184,251,193,100,184,251,193,102,184,251,193,104,184,251,193,106,184,251,193,108,184,251,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,206,192,26,0,193,128,184,251,193,130,184,251,193,132,184,251,193,134,184,251,193,136,184,251,193,138,184,251,193,140,184,251,193,124,185,251,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,224,26,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,0,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,32,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,193,118,213,252,193,120,213,252,193,122,213,252,193,124,213,252,193,8,213,252,193,126,213,252,193,128,213,252,193,130,213,252,193,132,213,252,193,134,213,252,193,136,213,252,193,138,213,252,193,140,213,252,193,142,213,252,193,250,213,252,193,144,213,252,193,146,213,252,193,148,213,252,193,150,213,252,193,152,213,252,193,154,213,252,193,156,213,252,193,30,235,251,193,64,185,251,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,206,64,27,0,193,28,186,251,193,30,186,251,193,32,186,251,193,34,186,251,193,36,186,251,193,38,186,251,193,40,186,251,193,42,186,251,193,192,186,251,193,194,186,251,193,196,186,251,193,198,186,251,193,200,186,251,193,202,186,251,193,204,186,251,193,206,186,251,193,208,186,251,193,210,186,251,193,212,186,251,193,70,187,251,193,72,187,251,193,74,187,251,193,76,187,251,193,78,187,251,193,80,187,251,193,82,187,251,193,138,187,251,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,206,96,27,0,193,52,186,251,193,54,186,251,193,56,186,251,193,58,186,251,193,60,186,251,193,62,186,251,193,64,186,251,193,66,186,251,193,68,186,251,193,70,186,251,193,72,186,251,193,74,186,251,193,222,186,251,193,224,186,251,193,226,186,251,193,228,186,251,193,88,187,251,193,90,187,251,193,92,187,251,193,152,187,251,193,154,187,251,193,156,187,251,193,158,187,251,193,178,185,251,193,76,186,251,193,78,186,251,193,230,186,251,193,232,186,251,193,234,186,251,193,236,186,251,193,238,186,251,193,94,187,251,193,96,187,251,193,98,187,251,193,212,187,251,193,214,187,251,193,58,188,251,193,122,188,251,193,124,188,251,193,154,188,251,193,156,188,251,193,158,188,251,193,200,188,251,193,254,188,251,193,2,189,251,193,4,189,251,193,46,189,251,193,92,189,251,193,152,189,251,193,208,189,251,193,6,190,251,193,8,190,251,193,118,190,251,193,190,190,251,193,212,190,251,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,128,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,160,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,193,166,186,251,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,206,192,27,0,193,100,187,251,193,102,187,251,193,104,187,251,193,106,187,251,193,108,187,251,193,110,187,251,193,112,187,251,193,114,187,251,193,116,187,251,193,118,187,251,193,120,187,251,193,122,187,251,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,193,62,187,251,193,124,187,251,193,126,187,251,193,188,187,251,193,190,187,251,193,236,187,251,193,238,187,251,193,16,188,251,193,44,188,251,193,88,188,251,193,110,188,251,193,236,188,251,193,238,188,251,193,22,189,251,193,24,189,251,193,66,189,251,193,68,189,251,193,118,189,251,193,182,189,251,193,242,189,251,193,92,190,251,193,94,190,251,193,96,190,251,193,160,190,251,193,22,191,251,193,72,191,251,193,126,191,251,193,146,191,251,193,60,192,251,193,52,193,251,193,54,193,251,193,56,193,251,193,86,187,251,193,146,187,251,193,148,187,251,193,150,187,251,193,194,188,251,193,196,188,251,193,246,188,251,193,248,188,251,193,250,188,251,193,36,189,251,193,84,189,251,193,138,189,251,193,190,189,251,193,192,189,251,193,194,189,251,193,250,189,251,193,64,190,251,193,66,190,251,193,110,190,251,193,112,190,251,193,102,191,251,193,130,191,251,193,136,191,251,193,210,191,251,193,212,191,251,193,214,191,251,193,216,191,251,193,218,191,251,193,72,192,251,193,74,192,251,193,86,193,251,193,88,193,251,193,134,187,251,193,136,187,251,193,192,187,251,193,194,187,251,193,196,187,251,193,66,188,251,193,112,188,251,193,114,188,251,193,142,188,251,193,184,188,251,193,186,188,251,193,240,188,251,193,242,188,251,193,26,189,251,193,28,189,251,193,30,189,251,193,32,189,251,193,34,189,251,193,70,189,251,193,72,189,251,193,74,189,251,193,76,189,251,193,78,189,251,193,120,189,251,193,122,189,251,193,124,189,251,193,126,189,251,193,128,189,251,193,130,189,251,193,132,189,251,193,134,189,251,193,184,189,251,193,140,187,251,193,142,187,251,193,144,187,251,193,198,187,251,193,200,187,251,193,202,187,251,193,204,187,251,193,240,187,251,193,38,188,251,193,40,188,251,193,42,188,251,193,46,188,251,193,48,188,251,193,54,188,251,193,90,188,251,193,144,188,251,193,188,188,251,193,190,188,251,193,192,188,251,193,244,188,251,193,80,189,251,193,82,189,251,193,136,189,251,193,188,189,251,193,246,189,251,193,248,189,251,193,58,190,251,193,60,190,251,193,62,190,251,193,108,190,251,193,130,190,251,193,174,190,251,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,206,224,27,0,193,216,187,251,193,218,187,251,193,220,187,251,193,222,187,251,193,224,187,251,193,226,187,251,193,228,187,251,193,230,187,251,193,232,187,251,193,234,187,251,193,246,187,251,193,248,187,251,193,250,187,251,193,252,187,251,193,254,187,251,193,2,188,251,193,4,188,251,193,6,188,251,193,8,188,251,193,10,188,251,193,12,188,251,193,14,188,251,193,22,188,251,193,24,188,251,193,26,188,251,193,28,188,251,193,30,188,251,193,206,187,251,193,208,187,251,193,210,187,251,193,242,187,251,193,244,187,251,193,18,188,251,193,20,188,251,193,56,188,251,193,76,188,251,193,78,188,251,193,80,188,251,193,82,188,251,193,92,188,251,193,94,188,251,193,96,188,251,193,98,188,251,193,100,188,251,193,116,188,251,193,118,188,251,193,120,188,251,193,146,188,251,193,148,188,251,193,150,188,251,193,152,188,251,193,198,188,251,193,252,188,251,193,38,189,251,193,40,189,251,193,42,189,251,193,44,189,251,193,86,189,251,193,88,189,251,193,32,188,251,193,34,188,251,193,36,188,251,193,50,188,251,193,52,188,251,193,60,188,251,193,62,188,251,193,64,188,251,193,68,188,251,193,70,188,251,193,72,188,251,193,74,188,251,193,84,188,251,193,86,188,251,193,102,188,251,193,104,188,251,193,106,188,251,193,108,188,251,193,126,188,251,193,128,188,251,193,130,188,251,193,132,188,251,193,134,188,251,193,136,188,251,193,138,188,251,193,140,188,251,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,206,0,28,0,193,202,188,251,193,204,188,251,193,206,188,251,193,208,188,251,193,210,188,251,193,212,188,251,193,214,188,251,193,216,188,251,193,218,188,251,193,220,188,251,193,222,188,251,193,224,188,251,193,226,188,251,193,228,188,251,193,230,188,251,193,232,188,251,193,234,188,251,193,6,189,251,193,8,189,251,193,10,189,251,193,12,189,251,193,14,189,251,193,16,189,251,193,18,189,251,193,20,189,251,193,48,189,251,193,50,189,251,193,52,189,251,193,54,189,251,193,56,189,251,193,58,189,251,193,60,189,251,193,62,189,251,193,64,189,251,193,94,189,251,193,96,189,251,193,98,189,251,193,100,189,251,193,102,189,251,193,104,189,251,193,106,189,251,193,108,189,251,193,110,189,251,193,112,189,251,193,114,189,251,193,116,189,251,193,154,189,251,193,156,189,251,193,158,189,251,193,160,189,251,193,162,189,251,193,164,189,251,193,166,189,251,193,168,189,251,193,170,189,251,193,172,189,251,193,174,189,251,193,176,189,251,193,140,189,251,193,142,189,251,193,144,189,251,193,146,189,251,193,148,189,251,193,150,189,251,193,90,189,251,193,196,189,251,193,198,189,251,193,200,189,251,193,202,189,251,193,204,189,251,193,206,189,251,193,252,189,251,193,254,189,251,193,2,190,251,193,68,190,251,193,4,190,251,193,114,190,251,193,132,190,251,193,116,190,251,193,158,190,251,193,162,190,251,193,164,190,251,193,166,190,251,193,168,190,251,193,184,190,251,193,186,190,251,193,188,190,251,193,204,190,251,193,206,190,251,193,208,190,251,193,178,189,251,193,180,189,251,193,212,189,251,193,214,189,251,193,216,189,251,193,218,189,251,193,220,189,251,193,222,189,251,193,10,190,251,193,224,189,251,193,226,189,251,193,228,189,251,193,230,189,251,193,232,189,251,193,234,189,251,193,236,189,251,193,238,189,251,193,240,189,251,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,206,32,28,0,193,186,189,251,193,244,189,251,193,54,190,251,193,56,190,251,193,98,190,251,193,100,190,251,193,102,190,251,193,104,190,251,193,106,190,251,193,230,190,251,193,24,191,251,193,58,191,251,193,60,191,251,193,74,191,251,193,76,191,251,193,92,191,251,193,94,191,251,193,110,191,251,193,154,191,251,193,174,191,251,193,206,191,251,193,62,192,251,193,64,192,251,193,66,192,251,193,66,193,251,193,68,193,251,193,70,193,251,193,72,193,251,193,140,194,251,193,142,194,251,193,144,194,251,193,146,194,251,206,64,28,0,206,64,28,0,206,64,28,0,206,64,28,0,193,170,190,251,193,172,190,251,193,176,190,251,193,178,190,251,193,180,190,251,193,182,190,251,193,192,190,251,193,194,190,251,193,196,190,251,193,198,190,251,193,200,190,251,193,216,190,251,193,218,190,251,193,220,190,251,193,222,190,251,193,224,190,251,193,226,190,251,193,228,190,251,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,193,202,190,251,193,232,190,251,193,234,190,251,193,26,191,251,193,28,191,251,193,30,191,251,193,32,191,251,193,96,191,251,193,98,191,251,193,100,191,251,193,128,191,251,193,134,191,251,193,152,191,251,193,164,191,251,193,208,191,251,193,68,192,251,193,70,192,251,193,74,193,251,193,76,193,251,193,78,193,251,193,80,193,251,193,82,193,251,193,84,193,251,193,152,194,251,193,154,194,251,193,156,194,251,193,158,194,251,193,160,194,251,193,162,194,251,193,164,194,251,193,166,194,251,193,168,194,251,193,210,190,251,193,236,190,251,193,238,190,251,193,240,190,251,193,34,191,251,193,36,191,251,193,38,191,251,193,40,191,251,193,62,191,251,193,78,191,251,193,80,191,251,193,156,191,251,193,158,191,251,193,160,191,251,193,166,191,251,193,220,191,251,193,176,191,251,193,178,191,251,193,180,191,251,193,182,191,251,193,184,191,251,193,186,191,251,193,188,191,251,193,222,191,251,193,224,191,251,193,226,191,251,193,228,191,251,193,230,191,251,193,232,191,251,193,234,191,251,193,236,191,251,193,76,192,251,193,214,190,251,193,242,190,251,193,244,190,251,193,190,191,251,193,192,191,251,193,194,191,251,193,10,192,251,193,12,192,251,193,14,192,251,193,190,192,251,193,192,192,251,193,194,192,251,193,196,192,251,193,198,192,251,193,200,192,251,193,202,192,251,193,204,192,251,193,206,192,251,193,252,193,251,193,254,193,251,193,2,194,251,193,4,194,251,193,6,194,251,193,8,194,251,193,10,194,251,193,12,194,251,193,14,194,251,193,16,194,251,193,18,194,251,193,20,194,251,193,22,194,251,193,24,194,251,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,206,96,28,0,193,42,191,251,193,44,191,251,193,46,191,251,193,48,191,251,193,50,191,251,193,52,191,251,193,54,191,251,193,56,191,251,193,64,191,251,193,66,191,251,193,68,191,251,193,70,191,251,193,82,191,251,193,84,191,251,193,86,191,251,193,88,191,251,193,90,191,251,193,104,191,251,193,106,191,251,193,112,191,251,193,114,191,251,193,116,191,251,193,118,191,251,193,120,191,251,193,122,191,251,193,124,191,251,193,132,191,251,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,193,108,191,251,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,193,138,191,251,193,140,191,251,193,144,191,251,193,148,191,251,193,150,191,251,193,168,191,251,193,170,191,251,193,172,191,251,193,196,191,251,193,198,191,251,193,200,191,251,193,202,191,251,193,204,191,251,193,16,192,251,193,18,192,251,193,20,192,251,193,22,192,251,193,24,192,251,193,26,192,251,193,28,192,251,193,30,192,251,193,32,192,251,193,34,192,251,193,36,192,251,193,38,192,251,193,40,192,251,193,42,192,251,193,44,192,251,193,46,192,251,193,48,192,251,193,50,192,251,193,52,192,251,193,36,78,253,193,38,78,253,193,40,78,253,193,42,78,253,193,44,78,253,193,46,78,253,193,48,78,253,193,50,78,253,193,56,78,253,193,58,78,253,193,60,78,253,193,62,78,253,193,64,78,253,193,66,78,253,193,68,78,253,193,70,78,253,193,74,78,253,193,76,78,253,193,78,78,253,193,142,191,251,193,204,97,252,193,86,78,253,193,88,78,253,193,90,78,253,193,92,78,253,193,94,78,253,193,102,78,253,193,104,78,253,193,106,78,253,193,112,78,253,193,116,78,253,193,118,78,253,193,238,191,251,193,240,191,251,193,242,191,251,193,244,191,251,193,246,191,251,193,248,191,251,193,250,191,251,193,252,191,251,193,254,191,251,193,2,192,251,193,4,192,251,193,6,192,251,193,8,192,251,193,78,192,251,193,80,192,251,193,82,192,251,193,84,192,251,193,86,192,251,193,88,192,251,193,90,192,251,193,92,192,251,193,94,192,251,193,96,192,251,193,98,192,251,193,114,193,251,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,193,54,192,251,193,56,192,251,193,58,192,251,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,128,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,160,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,193,58,193,251,193,60,193,251,193,62,193,251,193,64,193,251,193,124,194,251,193,126,194,251,193,128,194,251,193,130,194,251,193,132,194,251,193,134,194,251,193,136,194,251,193,250,195,251,193,252,195,251,193,254,195,251,193,2,196,251,193,4,196,251,193,6,196,251,193,8,196,251,193,10,196,251,193,12,196,251,193,166,197,251,193,168,197,251,193,170,197,251,193,172,197,251,193,174,197,251,193,176,197,251,193,178,197,251,193,180,197,251,193,182,197,251,193,184,197,251,193,186,197,251,193,188,197,251,193,90,193,251,193,92,193,251,193,94,193,251,193,96,193,251,193,98,193,251,193,100,193,251,193,102,193,251,193,104,193,251,193,106,193,251,193,108,193,251,193,110,193,251,193,112,193,251,193,174,194,251,193,176,194,251,193,178,194,251,193,180,194,251,193,182,194,251,193,184,194,251,193,186,194,251,193,188,194,251,193,190,194,251,193,192,194,251,193,194,194,251,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,192,28,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,193,26,194,251,193,66,195,251,193,68,195,251,193,70,195,251,193,72,195,251,193,74,195,251,193,76,195,251,193,78,195,251,193,80,195,251,193,82,195,251,193,84,195,251,193,86,195,251,193,88,195,251,193,90,195,251,193,92,195,251,193,94,195,251,193,96,195,251,193,98,195,251,193,242,196,251,193,244,196,251,193,246,196,251,193,248,196,251,193,250,196,251,193,252,196,251,193,254,196,251,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,224,28,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,193,148,194,251,193,150,194,251,193,16,196,251,193,18,196,251,193,20,196,251,193,22,196,251,193,24,196,251,193,26,196,251,193,28,196,251,193,30,196,251,193,32,196,251,193,34,196,251,193,36,196,251,193,38,196,251,193,40,196,251,193,42,196,251,193,44,196,251,193,192,197,251,193,194,197,251,193,196,197,251,193,198,197,251,193,200,197,251,193,202,197,251,193,204,197,251,193,206,197,251,193,208,197,251,193,210,197,251,193,212,197,251,193,214,197,251,193,216,197,251,193,218,197,251,193,220,197,251,193,170,194,251,193,172,194,251,193,46,196,251,193,48,196,251,193,50,196,251,193,52,196,251,193,54,196,251,193,56,196,251,193,58,196,251,193,60,196,251,193,62,196,251,193,64,196,251,193,66,196,251,193,68,196,251,193,70,196,251,193,72,196,251,193,74,196,251,193,76,196,251,193,78,196,251,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,0,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,32,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,206,64,29,0,193,14,198,251,193,16,198,251,193,18,198,251,193,20,198,251,193,22,198,251,193,24,198,251,193,26,198,251,193,28,198,251,193,30,198,251,193,32,198,251,193,34,198,251,193,36,198,251,193,38,198,251,193,40,198,251,193,42,198,251,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,96,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,128,29,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,193,190,197,251,193,206,199,251,193,208,199,251,193,210,199,251,193,212,199,251,193,214,199,251,193,216,199,251,193,218,199,251,193,220,199,251,193,222,199,251,193,224,199,251,193,226,199,251,193,238,201,251,193,240,201,251,193,242,201,251,193,244,201,251,193,246,201,251,193,248,201,251,193,250,201,251,193,252,201,251,193,254,201,251,193,2,202,251,193,4,202,251,193,202,203,251,193,204,203,251,193,206,203,251,193,208,203,251,193,210,203,251,193,212,203,251,193,214,203,251,193,216,203,251,193,218,203,251,193,222,197,251,193,228,199,251,193,230,199,251,193,232,199,251,193,234,199,251,193,236,199,251,193,238,199,251,193,240,199,251,193,242,199,251,193,244,199,251,193,246,199,251,193,248,199,251,193,250,199,251,193,252,199,251,193,254,199,251,193,2,200,251,193,4,200,251,193,6,200,251,193,8,200,251,193,10,200,251,193,12,200,251,193,14,200,251,193,16,200,251,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,206,160,29,0,193,18,200,251,193,20,200,251,193,22,200,251,193,24,200,251,193,26,200,251,193,28,200,251,193,30,200,251,193,32,200,251,193,34,200,251,193,36,200,251,193,38,200,251,193,40,200,251,193,42,200,251,193,44,200,251,193,46,200,251,193,48,200,251,193,50,200,251,193,52,200,251,193,54,200,251,193,56,200,251,193,58,200,251,193,44,202,251,193,46,202,251,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,206,192,29,0,193,82,200,251,193,198,198,251,193,200,198,251,193,202,198,251,193,204,198,251,193,206,198,251,193,208,198,251,193,210,198,251,193,212,198,251,193,214,198,251,193,216,198,251,193,218,198,251,193,84,200,251,193,86,200,251,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,206,224,29,0,193,228,200,251,193,230,200,251,193,232,200,251,193,234,200,251,193,236,200,251,193,238,200,251,193,240,200,251,193,242,200,251,193,244,200,251,193,246,200,251,193,248,200,251,193,250,200,251,193,252,200,251,193,246,202,251,193,254,200,251,193,2,201,251,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,0,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,206,32,30,0,193,84,202,251,193,86,202,251,193,88,202,251,193,90,202,251,193,92,202,251,193,94,202,251,193,96,202,251,193,98,202,251,193,100,202,251,193,102,202,251,193,104,202,251,193,106,202,251,193,108,202,251,193,44,204,251,193,46,204,251,193,48,204,251,193,50,204,251,193,52,204,251,193,54,204,251,193,56,204,251,193,58,204,251,193,60,204,251,193,62,204,251,193,64,204,251,193,66,204,251,193,68,204,251,193,10,206,251,193,88,200,251,193,90,200,251,193,92,200,251,193,94,200,251,193,96,200,251,193,70,204,251,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,64,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,193,72,204,251,193,74,204,251,193,76,204,251,193,78,204,251,193,80,204,251,193,82,204,251,193,84,204,251,193,226,200,251,193,86,204,251,193,88,204,251,193,90,204,251,193,26,206,251,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,206,96,30,0,193,148,117,252,193,176,201,251,193,178,201,251,193,180,201,251,193,182,201,251,193,184,201,251,193,186,201,251,193,188,201,251,193,190,201,251,193,192,201,251,193,194,201,251,193,196,201,251,193,198,201,251,193,200,201,251,193,202,201,251,193,204,201,251,193,206,201,251,193,208,201,251,193,210,201,251,193,212,201,251,193,214,201,251,193,216,201,251,193,218,201,251,193,220,201,251,193,222,201,251,193,224,201,251,193,226,201,251,193,228,201,251,193,230,201,251,193,232,201,251,193,234,201,251,193,236,201,251,206,0,31,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,206,128,30,0,193,228,203,251,193,230,203,251,193,232,203,251,193,234,203,251,193,236,203,251,193,238,203,251,193,240,203,251,193,242,203,251,193,244,203,251,193,246,203,251,193,248,203,251,193,250,203,251,193,252,203,251,193,254,203,251,193,210,205,251,193,212,205,251,193,214,205,251,193,216,205,251,193,218,205,251,193,220,205,251,193,222,205,251,193,224,205,251,193,226,205,251,193,48,202,251,193,50,202,251,193,52,202,251,193,54,202,251,193,56,202,251,193,58,202,251,193,60,202,251,193,62,202,251,193,64,202,251,193,66,202,251,193,68,202,251,193,70,202,251,193,72,202,251,193,74,202,251,193,76,202,251,193,78,202,251,193,80,202,251,193,82,202,251,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,206,160,30,0,193,24,206,251,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,192,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,206,224,30,0,193,186,204,251,193,188,204,251,193,190,204,251,193,192,204,251,193,194,204,251,193,196,204,251,193,198,204,251,193,200,204,251,193,202,204,251,193,204,204,251,193,206,204,251,193,208,204,251,193,210,204,251,193,212,204,251,193,214,204,251,193,216,204,251,193,218,204,251,193,220,204,251,193,222,204,251,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,0,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,193,220,203,251,193,222,203,251,193,224,203,251,193,192,205,251,193,194,205,251,193,196,205,251,193,198,205,251,193,200,205,251,193,202,205,251,193,204,205,251,193,206,205,251,193,106,207,251,193,108,207,251,193,110,207,251,193,112,207,251,193,114,207,251,193,116,207,251,193,118,207,251,193,120,207,251,193,122,207,251,193,124,207,251,193,156,208,251,193,158,208,251,193,160,208,251,193,102,209,251,193,104,209,251,193,106,209,251,193,52,210,251,193,54,210,251,193,56,210,251,193,58,210,251,193,60,210,251,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,206,32,31,0,193,232,205,251,193,234,205,251,193,236,205,251,193,238,205,251,193,240,205,251,193,242,205,251,193,244,205,251,193,246,205,251,193,248,205,251,193,250,205,251,193,252,205,251,193,254,205,251,193,2,206,251,193,4,206,251,193,6,206,251,193,8,206,251,193,142,207,251,193,144,207,251,193,146,207,251,193,148,207,251,193,150,207,251,193,152,207,251,193,154,207,251,193,156,207,251,193,158,207,251,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,206,64,31,0,193,28,206,251,193,30,206,251,193,184,204,251,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,193,224,204,251,193,226,204,251,193,228,204,251,193,136,206,251,193,138,206,251,193,140,206,251,193,142,206,251,193,144,206,251,193,146,206,251,193,148,206,251,193,150,206,251,193,152,206,251,193,154,206,251,193,156,206,251,193,158,206,251,193,160,206,251,193,162,206,251,193,164,206,251,193,244,207,251,193,246,207,251,193,248,207,251,193,250,207,251,193,252,207,251,193,254,207,251,193,2,208,251,193,4,208,251,193,4,209,251,193,6,209,251,193,8,209,251,193,10,209,251,193,12,209,251,193,14,209,251,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,206,96,31,0,193,166,206,251,193,172,205,251,193,174,205,251,193,176,205,251,193,178,205,251,193,180,205,251,193,182,205,251,193,184,205,251,193,186,205,251,193,188,205,251,193,190,205,251,193,228,205,251,193,230,205,251,193,126,207,251,193,128,207,251,193,130,207,251,193,132,207,251,193,134,207,251,193,136,207,251,193,138,207,251,193,140,207,251,193,162,208,251,193,164,208,251,193,166,208,251,193,168,208,251,193,170,208,251,193,172,208,251,193,108,209,251,193,110,209,251,193,112,209,251,193,66,210,251,193,68,210,251,193,70,210,251,193,72,210,251,193,74,210,251,193,76,210,251,193,206,210,251,193,208,210,251,193,60,211,251,193,136,211,251,193,138,211,251,193,140,211,251,193,212,211,251,193,12,206,251,193,14,206,251,193,16,206,251,193,18,206,251,193,20,206,251,193,22,206,251,193,166,207,251,193,168,207,251,193,170,207,251,193,172,207,251,193,204,208,251,193,206,208,251,193,208,208,251,193,210,208,251,193,212,208,251,193,214,208,251,193,216,208,251,193,218,208,251,193,220,208,251,193,138,209,251,193,140,209,251,193,142,209,251,193,144,209,251,193,146,209,251,193,90,210,251,193,92,210,251,193,226,210,251,193,72,211,251,193,74,211,251,193,146,211,251,193,148,211,251,193,216,211,251,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,128,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,206,192,31,0,193,134,206,251,193,196,207,251,193,198,207,251,193,200,207,251,193,202,207,251,193,204,207,251,193,206,207,251,193,208,207,251,193,210,207,251,193,212,207,251,193,214,207,251,193,216,207,251,193,218,207,251,193,220,207,251,193,222,207,251,193,224,207,251,193,226,207,251,193,228,207,251,193,230,207,251,193,232,207,251,193,234,207,251,193,236,207,251,193,238,207,251,193,240,207,251,193,242,207,251,193,222,208,251,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,160,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,193,104,207,251,193,146,208,251,193,148,208,251,193,150,208,251,193,152,208,251,193,154,208,251,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,193,160,207,251,193,162,207,251,193,164,207,251,193,174,208,251,193,176,208,251,193,178,208,251,193,180,208,251,193,182,208,251,193,184,208,251,193,186,208,251,193,188,208,251,193,190,208,251,193,192,208,251,193,194,208,251,193,196,208,251,193,198,208,251,193,200,208,251,193,202,208,251,193,114,209,251,193,116,209,251,193,118,209,251,193,120,209,251,193,122,209,251,193,124,209,251,193,126,209,251,193,128,209,251,193,130,209,251,193,132,209,251,193,134,209,251,193,136,209,251,193,78,210,251,193,80,210,251,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,206,224,31,0,193,224,208,251,193,226,208,251,193,228,208,251,193,230,208,251,193,232,208,251,193,148,209,251,193,234,208,251,193,236,208,251,193,238,208,251,193,240,208,251,193,242,208,251,193,244,208,251,193,246,208,251,193,248,208,251,193,250,208,251,193,252,208,251,193,254,208,251,193,2,209,251,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,206,0,32,0,193,216,209,251,193,218,209,251,193,220,209,251,193,222,209,251,193,224,209,251,193,226,209,251,193,228,209,251,193,230,209,251,193,232,209,251,193,234,209,251,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,206,32,32,0,193,94,210,251,193,96,210,251,193,98,210,251,193,100,210,251,193,102,210,251,193,104,210,251,193,106,210,251,193,108,210,251,193,110,210,251,193,112,210,251,193,228,210,251,193,114,210,251,193,230,210,251,193,232,210,251,193,234,210,251,193,236,210,251,193,238,210,251,193,240,210,251,193,242,210,251,193,244,210,251,193,76,211,251,193,78,211,251,193,80,211,251,193,150,211,251,193,152,211,251,193,192,209,251,193,194,209,251,193,196,209,251,193,198,209,251,193,200,209,251,193,202,209,251,193,204,209,251,193,206,209,251,193,208,209,251,193,210,209,251,193,212,209,251,193,214,209,251,193,116,210,251,193,118,210,251,193,246,210,251,193,248,210,251,193,250,210,251,193,82,211,251,193,84,211,251,193,86,211,251,193,88,211,251,193,228,211,251,193,230,211,251,193,232,211,251,193,36,212,251,193,38,212,251,193,76,212,251,193,106,212,251,193,108,212,251,193,128,212,251,193,142,212,251,193,254,212,251,193,236,209,251,193,238,209,251,193,240,209,251,193,242,209,251,193,244,209,251,193,246,209,251,193,248,209,251,193,250,209,251,193,252,209,251,193,254,209,251,193,2,210,251,193,4,210,251,193,6,210,251,193,8,210,251,193,10,210,251,193,12,210,251,193,14,210,251,193,16,210,251,193,18,210,251,193,20,210,251,193,22,210,251,193,24,210,251,193,26,210,251,193,28,210,251,193,30,210,251,193,32,210,251,193,34,210,251,193,36,210,251,193,38,210,251,193,40,210,251,193,42,210,251,193,44,210,251,193,46,210,251,193,48,210,251,193,50,210,251,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,193,62,210,251,193,204,210,251,193,58,211,251,193,210,211,251,193,250,211,251,193,138,212,251,193,92,212,251,193,188,212,251,193,80,213,251,193,148,213,251,193,150,213,251,193,248,213,251,193,250,213,251,193,142,214,251,193,48,215,251,193,50,215,251,193,182,215,251,193,40,216,251,193,42,216,251,193,136,216,251,193,138,216,251,193,140,216,251,193,142,216,251,193,244,216,251,193,246,216,251,193,248,216,251,193,54,217,251,193,102,217,251,193,104,217,251,193,200,217,251,193,202,217,251,193,232,217,251,193,82,210,251,193,84,210,251,193,86,210,251,193,88,210,251,193,210,210,251,193,212,210,251,193,214,210,251,193,216,210,251,193,218,210,251,193,220,210,251,193,222,210,251,193,224,210,251,193,62,211,251,193,64,211,251,193,66,211,251,193,68,211,251,193,70,211,251,193,142,211,251,193,144,211,251,193,56,212,251,193,62,212,251,193,68,212,251,193,72,212,251,193,102,212,251,193,104,212,251,193,168,212,251,193,170,212,251,193,190,212,251,193,206,212,251,193,208,212,251,193,220,212,251,193,224,212,251,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,206,64,32,0,193,252,210,251,193,254,210,251,193,2,211,251,193,4,211,251,193,6,211,251,193,8,211,251,193,10,211,251,193,12,211,251,193,14,211,251,193,16,211,251,193,18,211,251,193,20,211,251,193,22,211,251,193,24,211,251,193,26,211,251,193,28,211,251,193,30,211,251,193,32,211,251,193,34,211,251,193,36,211,251,193,38,211,251,193,90,211,251,193,40,211,251,193,42,211,251,193,44,211,251,193,46,211,251,193,48,211,251,193,50,211,251,193,52,211,251,193,54,211,251,193,56,211,251,193,92,211,251,193,94,211,251,193,96,211,251,193,98,211,251,193,100,211,251,193,102,211,251,193,104,211,251,193,106,211,251,193,108,211,251,193,110,211,251,193,112,211,251,193,114,211,251,193,116,211,251,193,118,211,251,193,120,211,251,193,122,211,251,193,124,211,251,193,126,211,251,193,128,211,251,193,130,211,251,193,132,211,251,193,134,211,251,193,170,211,251,193,172,211,251,193,174,211,251,193,176,211,251,193,178,211,251,193,180,211,251,193,182,211,251,193,184,211,251,193,186,211,251,193,188,211,251,193,190,211,251,193,192,211,251,193,194,211,251,193,196,211,251,193,198,211,251,193,200,211,251,193,202,211,251,193,204,211,251,193,206,211,251,193,208,211,251,193,234,211,251,193,236,211,251,193,238,211,251,193,240,211,251,193,242,211,251,193,244,211,251,193,246,211,251,193,248,211,251,193,4,212,251,193,6,212,251,193,154,211,251,193,156,211,251,193,158,211,251,193,160,211,251,193,162,211,251,193,218,211,251,193,164,211,251,193,166,211,251,193,220,211,251,193,222,211,251,193,224,211,251,193,226,211,251,193,254,211,251,193,2,212,251,193,34,212,251,193,60,212,251,193,64,212,251,193,94,212,251,193,140,212,251,193,192,212,251,193,230,212,251,193,232,212,251,193,234,212,251,193,236,212,251,193,244,212,251,193,246,212,251,193,248,212,251,193,250,212,251,193,252,212,251,193,26,213,251,193,28,213,251,193,30,213,251,193,214,211,251,193,252,211,251,193,32,212,251,193,180,212,251,193,204,212,251,193,222,212,251,193,238,212,251,193,20,213,251,193,82,213,251,193,152,213,251,193,252,213,251,193,254,213,251,193,2,214,251,193,4,214,251,193,6,214,251,193,8,214,251,193,10,214,251,193,146,214,251,193,148,214,251,193,150,214,251,193,152,214,251,193,154,214,251,193,156,214,251,193,158,214,251,193,160,214,251,193,52,215,251,193,54,215,251,193,56,215,251,193,58,215,251,193,60,215,251,193,62,215,251,193,64,215,251,193,8,212,251,193,10,212,251,193,12,212,251,193,14,212,251,193,16,212,251,193,18,212,251,193,20,212,251,193,22,212,251,193,24,212,251,193,26,212,251,193,28,212,251,193,30,212,251,193,40,212,251,193,42,212,251,193,44,212,251,193,46,212,251,193,48,212,251,193,50,212,251,193,52,212,251,193,54,212,251,193,58,212,251,193,66,212,251,193,70,212,251,193,78,212,251,193,80,212,251,193,82,212,251,193,84,212,251,193,86,212,251,193,88,212,251,193,90,212,251,193,96,212,251,193,98,212,251,193,74,212,251,193,126,212,251,193,172,212,251,193,242,212,251,193,86,213,251,193,88,213,251,193,90,213,251,193,164,213,251,193,28,214,251,193,170,214,251,193,172,214,251,193,80,215,251,193,82,215,251,193,84,215,251,193,86,215,251,193,212,215,251,193,214,215,251,193,64,216,251,193,160,216,251,193,162,216,251,193,10,217,251,193,12,217,251,193,66,217,251,193,68,217,251,193,146,217,251,193,186,217,251,193,52,218,251,193,128,218,251,193,158,218,251,193,108,219,251,193,110,219,251,193,186,219,251,193,194,212,251,193,196,212,251,193,198,212,251,193,200,212,251,193,202,212,251,193,210,212,251,193,212,212,251,193,214,212,251,193,216,212,251,193,218,212,251,193,226,212,251,193,4,213,251,193,6,213,251,193,8,213,251,193,10,213,251,193,12,213,251,193,14,213,251,193,16,213,251,193,18,213,251,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,193,228,212,251,193,240,212,251,193,22,213,251,193,24,213,251,193,84,213,251,193,154,213,251,193,156,213,251,193,158,213,251,193,160,213,251,193,162,213,251,193,12,214,251,193,14,214,251,193,16,214,251,193,18,214,251,193,20,214,251,193,22,214,251,193,24,214,251,193,26,214,251,193,162,214,251,193,164,214,251,193,166,214,251,193,168,214,251,193,68,215,251,193,70,215,251,193,72,215,251,193,74,215,251,193,76,215,251,193,78,215,251,193,198,215,251,193,200,215,251,193,202,215,251,193,204,215,251,193,2,213,251,193,32,213,251,193,34,213,251,193,104,213,251,193,106,213,251,193,108,213,251,193,110,213,251,193,180,213,251,193,182,213,251,193,184,213,251,193,62,214,251,193,64,214,251,193,66,214,251,193,68,214,251,193,70,214,251,193,206,214,251,193,208,214,251,193,210,214,251,193,212,214,251,193,214,214,251,193,216,214,251,193,218,214,251,193,220,214,251,193,222,214,251,193,224,214,251,193,226,214,251,193,228,214,251,193,98,215,251,193,100,215,251,193,102,215,251,193,104,215,251,193,106,215,251,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,206,96,32,0,193,112,213,251,193,114,213,251,193,116,213,251,193,118,213,251,193,120,213,251,193,122,213,251,193,124,213,251,193,126,213,251,193,128,213,251,193,130,213,251,193,132,213,251,193,134,213,251,193,136,213,251,193,138,213,251,193,140,213,251,193,142,213,251,193,144,213,251,193,146,213,251,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,193,92,213,251,193,94,213,251,193,96,213,251,193,98,213,251,193,100,213,251,193,102,213,251,193,166,213,251,193,168,213,251,193,170,213,251,193,172,213,251,193,174,213,251,193,176,213,251,193,178,213,251,193,32,214,251,193,34,214,251,193,36,214,251,193,38,214,251,193,40,214,251,193,42,214,251,193,44,214,251,193,46,214,251,193,48,214,251,193,50,214,251,193,52,214,251,193,54,214,251,193,56,214,251,193,58,214,251,193,60,214,251,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,128,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,193,252,217,251,193,2,218,251,193,10,218,251,193,18,218,251,193,20,218,251,193,22,218,251,193,28,218,251,193,30,218,251,193,32,218,251,193,34,218,251,193,60,218,251,193,246,213,251,193,62,218,251,193,64,218,251,193,78,218,251,193,80,218,251,193,82,218,251,193,84,218,251,193,86,218,251,193,88,218,251,193,96,218,251,193,98,218,251,193,100,218,251,193,114,218,251,193,116,218,251,193,118,218,251,193,90,218,251,193,134,216,251,193,130,218,251,193,132,218,251,193,134,218,251,193,136,218,251,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,206,160,32,0,193,230,214,251,193,232,214,251,193,138,214,251,193,234,214,251,193,236,214,251,193,238,214,251,193,240,214,251,193,242,214,251,193,244,214,251,193,246,214,251,193,248,214,251,193,250,214,251,193,252,214,251,193,254,214,251,193,2,215,251,193,4,215,251,193,6,215,251,193,8,215,251,193,10,215,251,193,12,215,251,193,14,215,251,193,16,215,251,193,18,215,251,193,20,215,251,193,22,215,251,193,24,215,251,193,26,215,251,193,28,215,251,193,30,215,251,193,140,214,251,193,32,215,251,193,34,215,251,193,36,215,251,193,38,215,251,193,40,215,251,193,42,215,251,193,44,215,251,193,108,215,251,193,126,12,252,193,128,12,252,193,190,12,252,193,192,12,252,193,22,13,252,193,122,13,252,193,230,13,252,193,104,14,252,193,222,14,252,193,224,14,252,193,144,214,251,193,24,15,252,193,64,15,252,193,66,15,252,193,68,15,252,193,120,15,252,193,186,15,252,193,14,16,252,193,16,16,252,193,94,16,252,193,164,16,252,193,252,16,252,193,26,17,252,193,108,17,252,193,110,17,252,193,206,17,252,193,208,17,252,193,38,18,252,193,40,18,252,193,222,18,252,193,224,18,252,193,72,19,252,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,206,192,32,0,193,88,215,251,193,90,215,251,193,204,214,251,193,92,215,251,193,94,215,251,193,96,215,251,193,216,215,251,193,218,215,251,193,220,215,251,193,66,216,251,193,68,216,251,193,70,216,251,193,72,216,251,193,74,216,251,193,76,216,251,193,78,216,251,193,80,216,251,193,164,216,251,193,166,216,251,193,168,216,251,193,170,216,251,193,174,215,251,193,176,215,251,193,178,215,251,193,46,215,251,193,180,215,251,193,150,117,252,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,193,66,215,251,193,184,215,251,193,186,215,251,193,188,215,251,193,190,215,251,193,192,215,251,193,194,215,251,193,196,215,251,193,44,216,251,193,46,216,251,193,48,216,251,193,50,216,251,193,52,216,251,193,144,216,251,193,146,216,251,193,148,216,251,193,150,216,251,193,250,216,251,193,252,216,251,193,254,216,251,193,2,217,251,193,4,217,251,193,6,217,251,193,8,217,251,193,56,217,251,193,58,217,251,193,60,217,251,193,106,217,251,193,108,217,251,193,110,217,251,193,136,217,251,193,138,217,251,193,110,215,251,193,112,215,251,193,114,215,251,193,116,215,251,193,118,215,251,193,120,215,251,193,122,215,251,193,124,215,251,193,126,215,251,193,128,215,251,193,130,215,251,193,132,215,251,193,134,215,251,193,136,215,251,193,138,215,251,193,140,215,251,193,142,215,251,193,144,215,251,193,146,215,251,193,148,215,251,193,150,215,251,193,152,215,251,193,154,215,251,193,156,215,251,193,158,215,251,193,160,215,251,193,162,215,251,193,164,215,251,193,166,215,251,193,168,215,251,193,170,215,251,193,172,215,251,193,206,215,251,193,208,215,251,193,210,215,251,193,54,216,251,193,56,216,251,193,58,216,251,193,60,216,251,193,62,216,251,193,152,216,251,193,154,216,251,193,156,216,251,193,158,216,251,193,62,217,251,193,64,217,251,193,112,217,251,193,114,217,251,193,208,217,251,193,210,217,251,193,218,217,251,193,244,217,251,193,14,218,251,193,42,218,251,193,44,218,251,193,46,218,251,193,48,218,251,193,50,218,251,193,150,218,251,193,152,218,251,193,42,219,251,193,48,219,251,193,72,219,251,193,80,219,251,193,222,215,251,193,224,215,251,193,226,215,251,193,228,215,251,193,82,216,251,193,84,216,251,193,86,216,251,193,172,216,251,193,174,216,251,193,176,216,251,193,178,216,251,193,74,217,251,193,76,217,251,193,152,217,251,193,188,217,251,193,8,218,251,193,58,218,251,193,112,218,251,193,182,218,251,193,184,218,251,193,190,218,251,193,198,218,251,193,210,218,251,193,228,218,251,193,244,218,251,193,30,219,251,193,52,219,251,193,70,219,251,193,116,219,251,193,118,219,251,193,128,219,251,193,130,219,251,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,206,224,32,0,193,24,138,252,193,88,216,251,193,90,216,251,193,92,216,251,193,94,216,251,193,96,216,251,193,98,216,251,193,100,216,251,193,102,216,251,193,104,216,251,193,106,216,251,193,108,216,251,193,110,216,251,193,112,216,251,193,114,216,251,193,116,216,251,193,118,216,251,193,120,216,251,193,122,216,251,193,124,216,251,193,126,216,251,193,128,216,251,193,130,216,251,193,132,216,251,193,180,216,251,193,182,216,251,193,184,216,251,193,186,216,251,193,188,216,251,193,190,216,251,193,192,216,251,193,194,216,251,193,196,216,251,193,198,216,251,193,200,216,251,193,202,216,251,193,204,216,251,193,206,216,251,193,208,216,251,193,210,216,251,193,212,216,251,193,214,216,251,193,216,216,251,193,218,216,251,193,220,216,251,193,222,216,251,193,224,216,251,193,226,216,251,193,228,216,251,193,230,216,251,193,232,216,251,193,234,216,251,193,236,216,251,193,238,216,251,193,240,216,251,193,242,216,251,193,20,217,251,193,22,217,251,193,14,217,251,193,16,217,251,193,18,217,251,193,70,217,251,193,116,217,251,193,148,217,251,193,150,217,251,193,254,217,251,193,6,218,251,193,16,218,251,193,54,218,251,193,56,218,251,193,70,218,251,193,72,218,251,193,74,218,251,193,76,218,251,193,92,218,251,193,94,218,251,193,110,218,251,193,142,218,251,193,160,218,251,193,168,218,251,193,174,218,251,193,178,218,251,193,186,218,251,193,206,218,251,193,208,218,251,193,224,218,251,193,226,218,251,193,242,218,251,193,4,219,251,193,6,219,251,193,24,217,251,193,26,217,251,193,28,217,251,193,30,217,251,193,78,217,251,193,32,217,251,193,34,217,251,193,36,217,251,193,38,217,251,193,40,217,251,193,42,217,251,193,44,217,251,193,46,217,251,193,48,217,251,193,50,217,251,193,52,217,251,193,80,217,251,193,82,217,251,193,84,217,251,193,86,217,251,193,88,217,251,193,90,217,251,193,92,217,251,193,94,217,251,193,96,217,251,193,98,217,251,193,100,217,251,193,118,217,251,193,120,217,251,193,122,217,251,193,124,217,251,193,126,217,251,193,52,52,253,193,72,217,251,193,54,52,253,193,56,52,253,193,58,52,253,193,60,52,253,193,144,52,253,193,146,52,253,193,148,52,253,193,150,52,253,193,152,52,253,193,154,52,253,193,156,52,253,193,242,52,253,193,244,52,253,193,246,52,253,193,34,53,253,193,36,53,253,193,38,53,253,193,40,53,253,193,42,53,253,193,86,53,253,193,88,53,253,193,90,53,253,193,92,53,253,193,136,53,253,193,138,53,253,193,168,53,253,193,178,53,253,193,202,53,253,193,204,53,253,193,206,53,253,193,128,217,251,193,130,217,251,193,132,217,251,193,154,217,251,193,156,217,251,193,158,217,251,193,160,217,251,193,162,217,251,193,164,217,251,193,166,217,251,193,168,217,251,193,170,217,251,193,172,217,251,193,174,217,251,193,190,217,251,193,192,217,251,193,194,217,251,193,196,217,251,193,198,217,251,193,212,217,251,193,214,217,251,193,220,217,251,193,222,217,251,193,224,217,251,193,226,217,251,193,228,217,251,193,230,217,251,193,240,217,251,193,242,217,251,193,246,217,251,193,248,217,251,193,250,217,251,193,160,164,253,193,168,164,253,193,170,164,253,193,172,164,253,193,174,164,253,193,176,164,253,193,178,164,253,193,180,164,253,193,194,164,253,193,196,164,253,193,208,164,253,193,210,164,253,193,212,164,253,193,214,164,253,193,134,217,251,193,222,164,253,193,176,217,251,193,224,164,253,193,230,164,253,193,234,164,253,193,236,164,253,193,240,164,253,193,242,164,253,193,244,164,253,193,248,164,253,193,250,164,253,193,254,164,253,193,4,165,253,193,6,165,253,193,8,165,253,193,22,165,253,193,24,165,253,193,140,217,251,193,142,217,251,193,144,217,251,193,178,217,251,193,180,217,251,193,182,217,251,193,184,217,251,193,204,217,251,193,206,217,251,193,216,217,251,193,234,217,251,193,236,217,251,193,238,217,251,193,4,218,251,193,38,218,251,193,40,218,251,193,68,218,251,193,108,218,251,193,166,218,251,193,222,218,251,193,240,218,251,193,2,219,251,193,40,219,251,193,46,219,251,193,60,219,251,193,148,219,251,193,150,219,251,193,182,219,251,193,184,219,251,193,12,220,251,193,54,220,251,193,60,220,251,193,12,218,251,193,24,218,251,193,26,218,251,193,36,218,251,193,66,218,251,193,102,218,251,193,104,218,251,193,106,218,251,193,122,218,251,193,124,218,251,193,126,218,251,193,204,218,251,193,220,218,251,193,28,219,251,193,38,219,251,193,58,219,251,193,68,219,251,193,104,219,251,193,100,220,251,193,102,220,251,193,138,220,251,193,206,220,251,193,208,220,251,193,210,220,251,193,22,221,251,193,68,221,251,193,70,221,251,193,72,221,251,193,74,221,251,193,112,221,251,193,144,221,251,193,166,221,251,193,110,154,253,193,112,154,253,193,126,154,253,193,128,154,253,193,130,154,253,193,132,154,253,193,134,154,253,193,136,154,253,193,138,154,253,193,140,154,253,193,142,154,253,193,144,154,253,193,146,154,253,193,148,154,253,193,150,154,253,193,152,154,253,193,120,218,251,193,154,154,253,193,156,154,253,193,158,154,253,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,193,138,218,251,193,140,218,251,193,144,218,251,193,146,218,251,193,148,218,251,193,154,218,251,193,156,218,251,193,162,218,251,193,164,218,251,193,170,218,251,193,172,218,251,193,176,218,251,193,180,218,251,193,188,218,251,193,192,218,251,193,194,218,251,193,196,218,251,193,200,218,251,193,202,218,251,193,212,218,251,193,214,218,251,193,216,218,251,193,218,218,251,193,230,218,251,193,232,218,251,193,234,218,251,193,236,218,251,193,238,218,251,193,246,218,251,193,248,218,251,193,250,218,251,193,252,218,251,193,254,218,251,193,8,219,251,193,20,219,251,193,10,219,251,193,12,219,251,193,14,219,251,193,22,219,251,193,24,219,251,193,26,219,251,193,32,219,251,193,34,219,251,193,36,219,251,193,54,219,251,193,56,219,251,193,62,219,251,193,64,219,251,193,66,219,251,193,76,219,251,193,82,219,251,193,84,219,251,193,94,219,251,193,96,219,251,193,98,219,251,193,100,219,251,193,102,219,251,193,120,219,251,193,122,219,251,193,132,219,251,193,134,219,251,193,136,219,251,193,142,219,251,193,144,219,251,193,16,219,251,193,18,219,251,193,44,219,251,193,50,219,251,193,74,219,251,193,78,219,251,193,86,219,251,193,88,219,251,193,90,219,251,193,92,219,251,193,112,219,251,193,114,219,251,193,138,219,251,193,140,219,251,193,152,219,251,193,154,219,251,193,188,219,251,193,190,219,251,193,216,219,251,193,234,219,251,193,250,219,251,193,18,220,251,193,20,220,251,193,34,220,251,193,64,220,251,193,68,220,251,193,86,220,251,193,88,220,251,193,90,220,251,193,110,220,251,193,112,220,251,193,114,220,251,193,106,219,251,193,124,219,251,193,126,219,251,193,210,219,251,193,212,219,251,193,230,219,251,193,32,220,251,193,70,220,251,193,76,220,251,193,78,220,251,193,80,220,251,193,106,220,251,193,108,220,251,193,140,220,251,193,142,220,251,193,144,220,251,193,146,220,251,193,148,220,251,193,150,220,251,193,152,220,251,193,154,220,251,193,224,220,251,193,226,220,251,193,228,220,251,193,230,220,251,193,232,220,251,193,30,221,251,193,80,221,251,193,82,221,251,193,84,221,251,193,86,221,251,193,122,221,251,193,146,219,251,193,158,219,251,193,160,219,251,193,162,219,251,193,164,219,251,193,166,219,251,193,168,219,251,193,170,219,251,193,172,219,251,193,174,219,251,193,176,219,251,193,208,136,252,193,178,219,251,193,180,219,251,193,192,219,251,193,194,219,251,193,196,219,251,193,198,219,251,193,200,219,251,193,202,219,251,193,204,219,251,193,206,219,251,193,220,219,251,193,222,219,251,193,224,219,251,193,226,219,251,193,228,219,251,193,238,219,251,193,240,219,251,193,242,219,251,193,244,219,251,193,246,219,251,193,156,219,251,193,218,219,251,193,236,219,251,193,72,220,251,193,92,220,251,193,172,220,251,193,118,220,251,193,174,220,251,193,176,220,251,193,178,220,251,193,252,220,251,193,254,220,251,193,2,221,251,193,42,221,251,193,156,221,251,193,158,221,251,193,116,222,251,193,118,222,251,193,164,222,251,193,166,222,251,193,168,222,251,193,170,222,251,193,172,222,251,193,174,222,251,193,46,223,251,193,48,223,251,193,50,223,251,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,193,38,117,252,193,224,117,252,193,226,117,252,193,228,117,252,193,230,117,252,193,232,117,252,193,234,117,252,193,236,117,252,193,238,117,252,193,208,219,251,193,240,117,252,193,242,117,252,193,244,117,252,193,246,117,252,193,248,117,252,193,250,117,252,193,252,117,252,193,254,117,252,193,2,118,252,193,4,118,252,193,6,118,252,193,214,219,251,193,232,219,251,193,248,219,251,193,14,220,251,193,16,220,251,193,46,220,251,193,66,220,251,193,156,220,251,193,234,220,251,193,32,221,251,193,34,221,251,193,36,221,251,193,88,221,251,193,90,221,251,193,126,221,251,193,154,221,251,193,48,222,251,193,142,222,251,193,144,222,251,193,232,222,251,193,160,223,251,193,162,223,251,193,164,223,251,193,166,223,251,193,118,224,251,193,120,224,251,193,122,224,251,193,124,224,251,193,126,224,251,193,128,224,251,193,130,224,251,193,90,225,251,193,252,219,251,193,254,219,251,193,2,220,251,193,4,220,251,193,6,220,251,193,8,220,251,193,10,220,251,193,22,220,251,193,24,220,251,193,26,220,251,193,28,220,251,193,30,220,251,193,36,220,251,193,38,220,251,193,40,220,251,193,42,220,251,193,44,220,251,193,48,220,251,193,50,220,251,193,52,220,251,193,56,220,251,193,58,220,251,193,62,220,251,193,74,220,251,193,82,220,251,193,84,220,251,193,94,220,251,193,96,220,251,193,98,220,251,193,120,220,251,193,122,220,251,193,124,220,251,193,104,220,251,193,212,220,251,193,214,220,251,193,216,220,251,193,218,220,251,193,220,220,251,193,222,220,251,193,26,221,251,193,28,221,251,193,76,221,251,193,78,221,251,193,116,221,251,193,118,221,251,193,120,221,251,193,146,221,251,193,148,221,251,193,150,221,251,193,170,221,251,193,172,221,251,193,200,221,251,193,202,221,251,193,204,221,251,193,206,221,251,193,214,221,251,193,232,221,251,193,234,221,251,193,236,221,251,193,238,221,251,193,2,222,251,193,4,222,251,193,14,222,251,193,16,222,251,193,116,220,251,193,158,220,251,193,160,220,251,193,162,220,251,193,164,220,251,193,166,220,251,193,168,220,251,193,236,220,251,193,238,220,251,193,240,220,251,193,170,220,251,193,242,220,251,193,244,220,251,193,246,220,251,193,248,220,251,193,250,220,251,193,38,221,251,193,40,221,251,193,92,221,251,193,94,221,251,193,96,221,251,193,98,221,251,193,128,221,251,193,130,221,251,193,180,221,251,193,182,221,251,193,210,221,251,193,218,221,251,193,244,221,251,193,246,221,251,193,248,221,251,193,8,222,251,193,126,220,251,193,128,220,251,193,130,220,251,193,132,220,251,193,134,220,251,193,136,220,251,193,180,220,251,193,182,220,251,193,184,220,251,193,186,220,251,193,188,220,251,193,190,220,251,193,192,220,251,193,194,220,251,193,196,220,251,193,198,220,251,193,200,220,251,193,202,220,251,193,204,220,251,193,4,221,251,193,6,221,251,193,8,221,251,193,10,221,251,193,12,221,251,193,14,221,251,193,16,221,251,193,18,221,251,193,20,221,251,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,193,24,221,251,193,114,221,251,193,82,224,251,193,84,224,251,193,32,225,251,193,222,233,251,193,80,234,251,193,82,234,251,193,120,237,251,193,142,240,251,193,144,240,251,193,168,249,251,193,170,249,251,193,212,251,251,193,214,251,251,193,216,251,251,193,36,254,251,193,182,255,251,193,230,2,252,193,4,11,252,193,26,14,252,193,242,20,252,193,246,20,252,193,94,28,252,193,252,30,252,193,254,35,252,193,2,36,252,193,4,36,252,193,178,40,252,193,152,42,252,193,18,46,252,193,200,51,252,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,206,0,33,0,193,100,221,251,193,102,221,251,193,104,221,251,193,106,221,251,193,108,221,251,193,110,221,251,193,132,221,251,193,134,221,251,193,136,221,251,193,138,221,251,193,140,221,251,193,142,221,251,193,160,221,251,193,162,221,251,193,164,221,251,193,184,221,251,193,186,221,251,193,188,221,251,193,190,221,251,193,192,221,251,193,194,221,251,193,212,221,251,193,220,221,251,193,222,221,251,193,124,221,251,193,152,221,251,193,174,221,251,193,176,221,251,193,178,221,251,193,208,221,251,193,216,221,251,193,240,221,251,193,242,221,251,193,6,222,251,193,84,222,251,193,98,222,251,193,136,222,251,193,138,222,251,193,140,222,251,193,226,222,251,193,228,222,251,193,230,222,251,193,130,223,251,193,132,223,251,193,134,223,251,193,136,223,251,193,138,223,251,193,140,223,251,193,142,223,251,193,144,223,251,193,146,223,251,193,148,223,251,193,150,223,251,193,152,223,251,193,154,223,251,193,156,223,251,193,168,221,251,193,196,221,251,193,198,221,251,193,252,221,251,193,254,221,251,193,12,222,251,193,218,222,251,193,220,222,251,193,110,223,251,193,112,223,251,193,114,223,251,193,116,223,251,193,118,223,251,193,120,223,251,193,122,223,251,193,62,224,251,193,64,224,251,193,66,224,251,193,68,224,251,193,70,224,251,193,72,224,251,193,74,224,251,193,76,224,251,193,78,224,251,193,80,224,251,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,193,224,221,251,193,226,221,251,193,228,221,251,193,230,221,251,193,250,221,251,193,10,222,251,193,20,222,251,193,24,222,251,193,26,222,251,193,30,222,251,193,34,222,251,193,36,222,251,193,38,222,251,193,46,222,251,193,50,222,251,193,52,222,251,193,56,222,251,193,58,222,251,193,60,222,251,193,62,222,251,193,68,222,251,193,70,222,251,193,74,222,251,193,76,222,251,193,78,222,251,193,80,222,251,193,82,222,251,193,92,222,251,193,94,222,251,193,96,222,251,193,120,222,251,193,122,222,251,193,18,222,251,193,22,222,251,193,28,222,251,193,32,222,251,193,40,222,251,193,66,222,251,193,134,222,251,193,222,222,251,193,224,222,251,193,124,223,251,193,126,223,251,193,128,223,251,193,86,224,251,193,88,224,251,193,90,224,251,193,34,225,251,193,36,225,251,193,38,225,251,193,40,225,251,193,42,225,251,193,44,225,251,193,10,226,251,193,12,226,251,193,14,226,251,193,16,226,251,193,18,226,251,193,20,226,251,193,44,227,251,193,46,227,251,193,48,227,251,193,50,227,251,193,52,227,251,193,42,222,251,193,44,222,251,193,54,222,251,193,64,222,251,193,72,222,251,193,86,222,251,193,88,222,251,193,90,222,251,193,100,222,251,193,102,222,251,193,104,222,251,193,106,222,251,193,108,222,251,193,110,222,251,193,112,222,251,193,114,222,251,193,146,222,251,193,148,222,251,193,150,222,251,193,152,222,251,193,154,222,251,193,156,222,251,193,158,222,251,193,160,222,251,193,162,222,251,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,193,124,222,251,193,126,222,251,193,128,222,251,193,130,222,251,193,176,222,251,193,132,222,251,193,178,222,251,193,180,222,251,193,182,222,251,193,184,222,251,193,186,222,251,193,188,222,251,193,190,222,251,193,192,222,251,193,194,222,251,193,196,222,251,193,198,222,251,193,200,222,251,193,202,222,251,193,204,222,251,193,206,222,251,193,208,222,251,193,210,222,251,193,212,222,251,193,214,222,251,193,216,222,251,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,32,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,64,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,193,158,223,251,193,92,224,251,193,94,224,251,193,96,224,251,193,98,224,251,193,100,224,251,193,102,224,251,193,104,224,251,193,106,224,251,193,108,224,251,193,110,224,251,193,112,224,251,193,114,224,251,193,116,224,251,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,96,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,206,128,33,0,193,178,224,251,193,180,224,251,193,182,224,251,193,184,224,251,193,186,224,251,193,188,224,251,193,190,224,251,193,192,224,251,193,194,224,251,193,196,224,251,193,148,225,251,193,150,225,251,193,152,225,251,193,154,225,251,193,156,225,251,193,158,225,251,193,130,226,251,193,132,226,251,193,134,226,251,193,136,226,251,193,138,226,251,193,140,226,251,193,142,226,251,193,144,226,251,193,146,226,251,193,148,226,251,193,150,226,251,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,206,160,33,0,193,128,232,251,193,46,224,251,193,48,224,251,193,50,224,251,193,52,224,251,193,54,224,251,193,56,224,251,193,58,224,251,193,60,224,251,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,193,132,224,251,193,134,224,251,193,136,224,251,193,138,224,251,193,140,224,251,193,142,224,251,193,144,224,251,193,146,224,251,193,148,224,251,193,150,224,251,193,152,224,251,193,154,224,251,193,156,224,251,193,158,224,251,193,160,224,251,193,162,224,251,193,164,224,251,193,166,224,251,193,168,224,251,193,170,224,251,193,172,224,251,193,174,224,251,193,176,224,251,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,206,192,33,0,193,160,225,251,193,162,225,251,193,164,225,251,193,166,225,251,193,168,225,251,193,170,225,251,193,172,225,251,193,174,225,251,193,176,225,251,193,178,225,251,193,180,225,251,193,182,225,251,193,184,225,251,193,186,225,251,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,206,224,33,0,193,2,226,251,193,4,226,251,193,6,226,251,193,8,226,251,193,32,227,251,193,34,227,251,193,36,227,251,193,38,227,251,193,40,227,251,193,42,227,251,193,10,228,251,193,12,228,251,193,14,228,251,193,16,228,251,193,18,228,251,193,20,228,251,193,22,228,251,193,24,228,251,193,26,228,251,193,224,228,251,193,226,228,251,193,228,228,251,193,230,228,251,193,232,228,251,193,234,228,251,193,148,229,251,193,150,229,251,206,0,34,0,206,0,34,0,206,0,34,0,206,0,34,0,193,22,226,251,193,24,226,251,193,26,226,251,193,28,226,251,193,30,226,251,193,32,226,251,193,34,226,251,193,36,226,251,193,38,226,251,193,40,226,251,193,42,226,251,193,44,226,251,193,46,226,251,193,48,226,251,193,50,226,251,193,52,226,251,193,54,226,251,193,56,226,251,193,58,226,251,193,60,226,251,193,62,226,251,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,193,92,225,251,193,94,225,251,193,96,225,251,193,98,225,251,193,100,225,251,193,102,225,251,193,104,225,251,193,64,226,251,193,66,226,251,193,68,226,251,193,70,226,251,193,72,226,251,193,74,226,251,193,88,227,251,193,90,227,251,193,92,227,251,193,94,227,251,193,96,227,251,193,98,227,251,193,100,227,251,193,102,227,251,193,104,227,251,193,96,228,251,193,98,228,251,193,100,228,251,193,102,228,251,193,104,228,251,193,26,229,251,193,28,229,251,193,30,229,251,193,32,229,251,193,34,229,251,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,32,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,193,150,231,251,193,152,231,251,193,154,231,251,193,198,231,251,193,200,231,251,193,202,231,251,193,204,231,251,193,206,231,251,193,208,231,251,193,242,231,251,193,38,232,251,193,40,232,251,193,42,232,251,193,52,232,251,193,54,232,251,193,70,232,251,193,90,232,251,193,92,232,251,193,94,232,251,193,96,232,251,193,102,232,251,193,104,232,251,193,114,232,251,193,126,232,251,193,146,232,251,193,176,232,251,193,148,232,251,193,178,232,251,193,180,232,251,193,146,225,251,193,194,232,251,193,196,232,251,193,188,225,251,193,190,225,251,193,192,225,251,193,194,225,251,193,196,225,251,193,198,225,251,193,200,225,251,193,202,225,251,193,204,225,251,193,206,225,251,193,208,225,251,193,210,225,251,193,212,225,251,193,214,225,251,193,216,225,251,193,218,225,251,193,220,225,251,193,222,225,251,193,224,225,251,193,226,225,251,193,228,225,251,193,230,225,251,193,232,225,251,193,234,225,251,193,236,225,251,193,238,225,251,193,240,225,251,193,242,225,251,193,244,225,251,193,246,225,251,193,248,225,251,193,250,225,251,193,252,225,251,193,254,225,251,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,64,34,0,206,64,34,0,206,64,34,0,206,64,34,0,193,106,227,251,193,108,227,251,193,110,227,251,193,112,227,251,193,114,227,251,193,116,227,251,193,118,227,251,193,120,227,251,193,122,227,251,193,124,227,251,193,126,227,251,193,128,227,251,193,130,227,251,193,128,226,251,193,132,227,251,193,134,227,251,193,136,227,251,193,138,227,251,193,140,227,251,193,142,227,251,193,144,227,251,193,146,227,251,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,193,152,226,251,193,148,227,251,193,150,227,251,193,152,227,251,193,154,227,251,193,156,227,251,193,158,227,251,193,160,227,251,193,162,227,251,193,164,227,251,193,166,227,251,193,168,227,251,193,170,227,251,193,136,228,251,193,138,228,251,193,140,228,251,193,142,228,251,193,68,229,251,193,70,229,251,193,72,229,251,193,74,229,251,193,76,229,251,193,78,229,251,193,14,230,251,193,16,230,251,193,18,230,251,193,20,230,251,193,22,230,251,193,24,230,251,193,26,230,251,193,28,230,251,193,30,230,251,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,96,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,193,54,227,251,193,56,227,251,193,28,228,251,193,30,228,251,193,32,228,251,193,34,228,251,193,36,228,251,193,38,228,251,193,40,228,251,193,42,228,251,193,236,228,251,193,238,228,251,193,240,228,251,193,242,228,251,193,244,228,251,193,246,228,251,193,164,229,251,193,166,229,251,193,168,229,251,193,130,230,251,193,132,230,251,193,134,230,251,193,136,230,251,193,138,230,251,193,140,230,251,193,10,231,251,193,12,231,251,193,14,231,251,193,114,231,251,193,230,231,251,193,232,231,251,193,110,232,251,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,206,128,34,0,193,44,228,251,193,46,228,251,193,48,228,251,193,50,228,251,193,52,228,251,193,54,228,251,193,56,228,251,193,58,228,251,193,60,228,251,193,62,228,251,193,64,228,251,193,66,228,251,193,68,228,251,193,70,228,251,193,72,228,251,193,74,228,251,193,76,228,251,193,78,228,251,193,80,228,251,193,82,228,251,193,84,228,251,193,86,228,251,193,88,228,251,193,90,228,251,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,206,160,34,0,193,144,228,251,193,146,228,251,193,148,228,251,193,150,228,251,193,152,228,251,193,154,228,251,193,156,228,251,193,158,228,251,193,160,228,251,193,162,228,251,193,164,228,251,193,166,228,251,193,168,228,251,193,170,228,251,193,92,228,251,193,94,228,251,193,248,228,251,193,250,228,251,193,252,228,251,193,254,228,251,193,2,229,251,193,4,229,251,193,6,229,251,193,8,229,251,193,10,229,251,193,12,229,251,193,14,229,251,193,16,229,251,193,18,229,251,193,20,229,251,193,22,229,251,193,24,229,251,193,170,229,251,193,172,229,251,193,174,229,251,193,176,229,251,193,178,229,251,193,180,229,251,193,182,229,251,193,184,229,251,193,186,229,251,193,188,229,251,193,190,229,251,193,192,229,251,193,194,229,251,193,196,229,251,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,206,192,34,0,193,38,229,251,193,40,229,251,193,42,229,251,193,44,229,251,193,46,229,251,193,48,229,251,193,50,229,251,193,52,229,251,193,54,229,251,193,56,229,251,193,58,229,251,193,60,229,251,193,62,229,251,193,64,229,251,193,66,229,251,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,193,36,229,251,193,202,229,251,193,204,229,251,193,206,229,251,193,208,229,251,193,210,229,251,193,212,229,251,193,214,229,251,193,216,229,251,193,218,229,251,193,220,229,251,193,180,230,251,193,182,230,251,193,184,230,251,193,186,230,251,193,36,231,251,193,38,231,251,193,40,231,251,193,42,231,251,193,138,231,251,193,140,231,251,193,142,231,251,193,192,231,251,193,194,231,251,193,196,231,251,193,8,232,251,193,10,232,251,193,12,232,251,193,36,232,251,193,50,232,251,193,82,232,251,193,216,232,251,193,102,230,251,193,104,230,251,193,106,230,251,193,108,230,251,193,110,230,251,193,112,230,251,193,114,230,251,193,146,229,251,193,116,230,251,193,218,230,251,193,220,230,251,193,222,230,251,193,224,230,251,193,226,230,251,193,228,230,251,193,230,230,251,193,232,230,251,193,234,230,251,193,236,230,251,193,238,230,251,193,240,230,251,193,242,230,251,193,244,230,251,193,246,230,251,193,248,230,251,193,250,230,251,193,252,230,251,193,254,230,251,193,2,231,251,193,4,231,251,193,66,231,251,193,68,231,251,193,152,229,251,193,154,229,251,193,156,229,251,193,158,229,251,193,160,229,251,193,162,229,251,193,6,231,251,193,118,230,251,193,120,230,251,193,122,230,251,193,124,230,251,193,126,230,251,193,128,230,251,193,8,231,251,193,108,231,251,193,110,231,251,193,112,231,251,193,254,231,251,193,2,232,251,193,4,232,251,193,64,232,251,193,8,233,251,193,32,233,251,193,34,233,251,193,60,233,251,193,94,233,251,193,112,233,251,193,142,233,251,193,188,233,251,193,190,233,251,193,220,233,251,193,162,234,251,193,198,229,251,193,200,229,251,193,142,230,251,193,144,230,251,193,146,230,251,193,148,230,251,193,150,230,251,193,152,230,251,193,154,230,251,193,156,230,251,193,158,230,251,193,160,230,251,193,162,230,251,193,164,230,251,193,166,230,251,193,168,230,251,193,170,230,251,193,172,230,251,193,174,230,251,193,176,230,251,193,178,230,251,193,16,231,251,193,18,231,251,193,20,231,251,193,22,231,251,193,24,231,251,193,26,231,251,193,28,231,251,193,30,231,251,193,32,231,251,193,34,231,251,193,116,231,251,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,206,0,35,0,193,188,230,251,193,190,230,251,193,192,230,251,193,194,230,251,193,196,230,251,193,198,230,251,193,200,230,251,193,202,230,251,193,204,230,251,193,206,230,251,193,44,231,251,193,46,231,251,193,208,230,251,193,48,231,251,193,50,231,251,193,144,231,251,193,146,231,251,193,148,231,251,193,38,230,251,193,40,230,251,193,42,230,251,193,44,230,251,193,46,230,251,193,48,230,251,193,50,230,251,193,52,230,251,193,54,230,251,193,56,230,251,193,58,230,251,193,60,230,251,193,62,230,251,193,64,230,251,193,66,230,251,193,68,230,251,193,70,230,251,193,72,230,251,193,74,230,251,193,76,230,251,193,78,230,251,193,80,230,251,193,82,230,251,193,84,230,251,193,86,230,251,193,88,230,251,193,90,230,251,193,92,230,251,193,94,230,251,193,96,230,251,193,98,230,251,193,100,230,251,193,210,230,251,193,212,230,251,193,214,230,251,193,52,231,251,193,54,231,251,193,56,231,251,193,58,231,251,193,60,231,251,193,62,231,251,193,156,231,251,193,158,231,251,193,210,231,251,193,14,232,251,193,16,232,251,193,44,232,251,193,72,232,251,193,98,232,251,193,22,233,251,193,36,233,251,193,132,233,251,193,212,233,251,193,214,233,251,193,250,233,251,193,252,233,251,193,46,234,251,193,112,208,252,193,148,234,251,193,150,234,251,193,192,234,251,193,194,234,251,193,196,234,251,193,234,234,251,193,70,231,251,193,72,231,251,193,74,231,251,193,76,231,251,193,78,231,251,193,80,231,251,193,82,231,251,193,84,231,251,193,86,231,251,193,88,231,251,193,90,231,251,193,92,231,251,193,94,231,251,193,96,231,251,193,98,231,251,193,100,231,251,193,102,231,251,193,104,231,251,193,160,231,251,193,162,231,251,193,164,231,251,193,166,231,251,193,168,231,251,193,170,231,251,193,172,231,251,193,174,231,251,193,176,231,251,193,178,231,251,193,180,231,251,193,182,231,251,193,184,231,251,193,212,231,251,193,86,154,252,193,88,154,252,193,106,231,251,193,90,154,252,193,92,154,252,193,98,154,252,193,100,154,252,193,102,154,252,193,112,154,252,193,114,154,252,193,116,154,252,193,118,154,252,193,120,154,252,193,122,154,252,193,126,154,252,193,128,154,252,193,134,154,252,193,136,154,252,193,146,154,252,193,140,154,252,193,142,154,252,193,148,154,252,193,150,154,252,193,156,154,252,193,158,154,252,193,164,154,252,193,166,154,252,193,168,154,252,193,170,154,252,193,194,154,252,193,196,154,252,193,198,154,252,193,118,231,251,193,120,231,251,193,122,231,251,193,124,231,251,193,126,231,251,193,128,231,251,193,130,231,251,193,132,231,251,193,134,231,251,193,136,231,251,193,186,231,251,193,188,231,251,193,190,231,251,193,234,231,251,193,236,231,251,193,238,231,251,193,240,231,251,193,6,232,251,193,48,232,251,193,66,232,251,193,68,232,251,193,78,232,251,193,80,232,251,193,84,232,251,193,100,232,251,193,142,232,251,193,144,232,251,193,172,232,251,193,174,232,251,193,214,232,251,193,248,232,251,193,12,233,251,193,214,231,251,193,216,231,251,193,218,231,251,193,220,231,251,193,222,231,251,193,224,231,251,193,226,231,251,193,228,231,251,193,244,231,251,193,246,231,251,193,248,231,251,193,250,231,251,193,252,231,251,193,18,232,251,193,20,232,251,193,22,232,251,193,24,232,251,193,26,232,251,193,28,232,251,193,30,232,251,193,32,232,251,193,34,232,251,193,46,232,251,193,56,232,251,193,58,232,251,193,60,232,251,193,82,40,253,193,62,232,251,193,74,232,251,193,76,232,251,193,128,195,252,193,86,232,251,193,88,232,251,193,106,232,251,193,108,232,251,193,116,232,251,193,118,232,251,193,120,232,251,193,122,232,251,193,130,232,251,193,132,232,251,193,134,232,251,193,136,232,251,193,138,232,251,193,140,232,251,193,150,232,251,193,152,232,251,193,154,232,251,193,156,232,251,193,158,232,251,193,160,232,251,193,162,232,251,193,164,232,251,193,166,232,251,193,168,232,251,193,182,232,251,193,184,232,251,193,186,232,251,193,188,232,251,193,202,232,251,193,204,232,251,193,206,232,251,193,222,232,251,193,224,232,251,193,112,232,251,193,124,232,251,193,170,232,251,193,190,232,251,193,192,232,251,193,208,232,251,193,210,232,251,193,212,232,251,193,242,232,251,193,244,232,251,193,246,232,251,193,10,233,251,193,42,233,251,193,66,233,251,193,68,233,251,193,70,233,251,193,96,233,251,193,114,233,251,193,116,233,251,193,118,233,251,193,144,233,251,193,146,233,251,193,148,233,251,193,150,233,251,193,152,233,251,193,192,233,251,193,224,233,251,193,226,233,251,193,228,233,251,193,18,234,251,193,20,234,251,193,22,234,251,193,218,232,251,193,250,232,251,193,54,233,251,193,80,233,251,193,166,233,251,193,202,233,251,193,234,233,251,193,236,233,251,193,102,234,251,193,104,234,251,193,144,234,251,193,188,234,251,193,226,234,251,193,228,234,251,193,12,235,251,193,72,235,251,193,206,235,251,193,208,235,251,193,210,235,251,193,106,236,251,193,144,237,251,193,146,237,251,193,148,237,251,193,150,237,251,193,4,239,251,193,6,239,251,193,8,239,251,193,10,239,251,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,193,226,232,251,193,228,232,251,193,230,232,251,193,236,232,251,193,238,232,251,193,240,232,251,193,252,232,251,193,254,232,251,193,2,233,251,193,4,233,251,193,6,233,251,193,24,233,251,193,26,233,251,193,28,233,251,193,30,233,251,193,38,233,251,193,40,233,251,193,44,233,251,193,46,233,251,193,48,233,251,193,50,233,251,193,52,233,251,193,56,233,251,193,58,233,251,193,62,233,251,193,64,233,251,193,76,233,251,193,82,233,251,193,84,233,251,193,88,233,251,193,92,233,251,193,102,233,251,193,14,233,251,193,16,233,251,193,18,233,251,193,74,233,251,193,98,233,251,193,100,233,251,193,120,233,251,193,122,233,251,193,154,233,251,193,156,233,251,193,158,233,251,193,160,233,251,193,162,233,251,193,164,233,251,193,194,233,251,193,196,233,251,193,198,233,251,193,200,233,251,193,230,233,251,193,232,233,251,193,28,234,251,193,30,234,251,193,32,234,251,193,34,234,251,193,36,234,251,193,92,234,251,193,94,234,251,193,96,234,251,193,98,234,251,193,100,234,251,193,138,234,251,193,140,234,251,193,104,233,251,193,106,233,251,193,108,233,251,193,110,233,251,193,138,233,251,193,174,233,251,193,176,233,251,193,178,233,251,193,170,205,252,193,180,233,251,193,182,233,251,193,184,233,251,193,186,233,251,193,216,233,251,193,218,233,251,193,160,206,252,193,162,206,252,193,254,233,251,193,2,234,251,193,4,234,251,193,6,234,251,193,8,234,251,193,10,234,251,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,193,196,204,252,193,198,204,252,193,200,204,252,193,202,204,252,193,204,204,252,193,206,204,252,193,208,204,252,193,210,204,252,193,212,204,252,193,214,204,252,193,216,204,252,193,218,204,252,193,220,204,252,193,222,204,252,193,224,204,252,193,226,204,252,193,228,204,252,193,230,204,252,193,232,204,252,193,234,204,252,193,236,204,252,193,238,204,252,193,240,204,252,193,140,233,251,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,193,12,234,251,193,14,234,251,193,16,234,251,193,78,234,251,193,128,234,251,193,130,234,251,193,132,234,251,193,134,234,251,193,164,234,251,193,166,234,251,193,168,234,251,193,214,234,251,193,216,234,251,193,252,234,251,193,92,235,251,193,94,235,251,193,108,235,251,193,84,236,251,193,86,236,251,193,88,236,251,193,90,236,251,193,92,236,251,193,112,237,251,193,114,237,251,193,116,237,251,193,118,237,251,193,202,238,251,193,204,238,251,193,206,238,251,193,208,238,251,193,210,238,251,193,212,238,251,193,24,234,251,193,26,234,251,193,84,234,251,193,86,234,251,193,88,234,251,193,90,234,251,193,136,234,251,193,170,234,251,193,172,234,251,193,174,234,251,193,176,234,251,193,178,234,251,193,180,234,251,193,218,234,251,193,220,234,251,193,254,234,251,193,2,235,251,193,32,235,251,193,34,235,251,193,36,235,251,193,38,235,251,193,62,235,251,193,64,235,251,193,74,235,251,193,76,235,251,193,96,235,251,193,112,235,251,193,122,235,251,193,144,235,251,193,94,236,251,193,96,236,251,193,98,236,251,206,32,35,0,206,32,35,0,206,32,35,0,206,32,35,0,193,110,234,251,193,112,234,251,193,114,234,251,193,116,234,251,193,118,234,251,193,120,234,251,193,122,234,251,193,124,234,251,193,126,234,251,193,152,234,251,193,154,234,251,193,156,234,251,193,158,234,251,193,160,234,251,193,198,234,251,193,200,234,251,193,202,234,251,193,204,234,251,193,206,234,251,193,208,234,251,193,210,234,251,193,212,234,251,193,236,234,251,193,238,234,251,193,16,235,251,193,240,234,251,193,242,234,251,193,244,234,251,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,193,76,234,251,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,193,106,234,251,193,116,209,252,193,146,234,251,193,230,234,251,193,232,234,251,193,88,212,252,193,50,235,251,193,86,235,251,193,114,235,251,193,116,235,251,193,124,235,251,193,126,235,251,193,128,235,251,193,130,235,251,193,132,235,251,193,134,235,251,193,136,235,251,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,193,142,234,251,193,182,234,251,193,184,234,251,193,186,234,251,193,222,234,251,193,224,234,251,193,4,235,251,193,6,235,251,193,8,235,251,193,10,235,251,193,40,235,251,193,42,235,251,193,44,235,251,193,46,235,251,193,48,235,251,193,66,235,251,193,68,235,251,193,70,235,251,193,78,235,251,193,80,235,251,193,82,235,251,193,84,235,251,193,104,235,251,193,110,235,251,193,146,235,251,193,100,236,251,193,102,236,251,193,104,236,251,193,132,237,251,193,134,237,251,193,136,237,251,193,138,237,251,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,193,190,234,251,193,90,212,252,193,92,212,252,193,94,212,252,193,96,212,252,193,98,212,252,193,100,212,252,193,102,212,252,193,104,212,252,193,106,212,252,193,108,212,252,193,110,212,252,193,112,212,252,193,114,212,252,193,116,212,252,193,118,212,252,193,120,212,252,193,122,212,252,193,124,212,252,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,193,246,234,251,193,248,234,251,193,250,234,251,193,18,235,251,193,20,235,251,193,22,235,251,193,24,235,251,193,26,235,251,193,28,235,251,193,52,235,251,193,54,235,251,193,56,235,251,193,58,235,251,193,60,235,251,193,88,235,251,193,90,235,251,193,98,235,251,193,100,235,251,193,106,235,251,193,118,235,251,193,120,235,251,193,138,235,251,193,140,235,251,193,142,235,251,193,188,235,251,193,190,235,251,193,192,235,251,193,194,235,251,193,196,235,251,193,198,235,251,193,200,235,251,193,202,235,251,193,14,235,251,193,186,235,251,193,36,236,251,193,38,236,251,193,40,236,251,193,42,236,251,193,44,236,251,193,242,236,251,193,244,236,251,193,246,236,251,193,248,236,251,193,250,236,251,193,252,236,251,193,254,236,251,193,2,237,251,193,4,237,251,193,6,237,251,193,98,238,251,193,100,238,251,193,102,238,251,193,104,238,251,193,106,238,251,193,108,238,251,193,110,238,251,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,193,212,214,252,193,250,214,252,193,20,215,252,193,102,235,251,193,88,215,252,193,116,215,252,193,148,215,252,193,154,215,252,193,166,215,252,193,206,215,252,193,52,216,252,193,88,216,252,193,110,216,252,193,150,216,252,193,212,216,252,193,222,216,252,193,224,216,252,193,2,217,252,193,14,218,252,193,86,218,252,193,116,218,252,193,198,218,252,193,200,218,252,193,38,219,252,193,68,219,252,193,80,219,252,193,180,219,252,193,240,220,252,193,66,221,252,193,68,221,252,193,180,221,252,193,244,221,252,206,64,35,0,206,64,35,0,206,64,35,0,206,64,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,193,204,235,251,193,46,236,251,193,48,236,251,193,50,236,251,193,52,236,251,193,54,236,251,193,56,236,251,193,58,236,251,193,60,236,251,193,62,236,251,193,64,236,251,193,66,236,251,193,68,236,251,193,70,236,251,193,72,236,251,193,74,236,251,193,76,236,251,193,78,236,251,193,80,236,251,193,82,236,251,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,206,96,35,0,193,108,236,251,193,110,236,251,193,112,236,251,193,114,236,251,193,116,236,251,193,118,236,251,193,120,236,251,193,122,236,251,193,124,236,251,193,126,236,251,193,128,236,251,193,130,236,251,193,132,236,251,193,134,236,251,193,136,236,251,193,138,236,251,193,140,236,251,193,142,236,251,193,144,236,251,193,146,236,251,193,148,236,251,193,150,236,251,193,152,236,251,193,34,236,251,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,128,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,160,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,193,122,237,251,193,124,237,251,193,126,237,251,193,128,237,251,193,130,237,251,193,220,238,251,193,222,238,251,193,146,240,251,193,148,240,251,193,150,240,251,193,152,240,251,193,154,240,251,193,156,240,251,193,158,240,251,193,160,240,251,193,162,240,251,193,164,240,251,193,166,240,251,193,82,242,251,193,84,242,251,193,86,242,251,193,88,242,251,193,90,242,251,193,92,242,251,193,94,242,251,193,96,242,251,193,98,242,251,193,100,242,251,193,102,242,251,193,172,244,251,193,174,244,251,193,176,244,251,193,140,237,251,193,142,237,251,193,224,238,251,193,226,238,251,193,228,238,251,193,230,238,251,193,232,238,251,193,234,238,251,193,236,238,251,193,238,238,251,193,240,238,251,193,242,238,251,193,244,238,251,193,246,238,251,193,248,238,251,193,250,238,251,193,252,238,251,193,254,238,251,193,2,239,251,193,168,240,251,193,170,240,251,193,172,240,251,193,174,240,251,193,176,240,251,193,178,240,251,193,180,240,251,193,182,240,251,193,184,240,251,193,186,240,251,193,188,240,251,193,190,240,251,193,192,240,251,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,192,35,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,224,35,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,193,214,238,251,193,216,238,251,193,218,238,251,193,116,240,251,193,118,240,251,193,120,240,251,193,122,240,251,193,124,240,251,193,126,240,251,193,128,240,251,193,130,240,251,193,132,240,251,193,134,240,251,193,136,240,251,193,138,240,251,193,140,240,251,193,52,242,251,193,54,242,251,193,56,242,251,193,58,242,251,193,60,242,251,193,62,242,251,193,64,242,251,193,66,242,251,193,68,242,251,193,70,242,251,193,72,242,251,193,74,242,251,193,76,242,251,193,78,242,251,193,80,242,251,193,138,244,251,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,0,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,206,32,36,0,193,144,241,251,193,146,241,251,193,148,241,251,193,150,241,251,193,152,241,251,193,154,241,251,193,156,241,251,193,158,241,251,193,160,241,251,193,162,241,251,193,164,241,251,193,166,241,251,193,168,241,251,193,170,241,251,193,128,243,251,193,172,241,251,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,206,64,36,0,193,194,240,251,193,196,240,251,193,198,240,251,193,104,242,251,193,106,242,251,193,108,242,251,193,110,242,251,193,112,242,251,193,114,242,251,193,116,242,251,193,118,242,251,193,120,242,251,193,122,242,251,193,124,242,251,193,126,242,251,193,128,242,251,193,130,242,251,193,132,242,251,193,134,242,251,193,136,242,251,193,138,242,251,193,140,242,251,193,142,242,251,193,144,242,251,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,206,96,36,0,193,146,242,251,193,148,242,251,193,150,242,251,193,152,242,251,193,154,242,251,193,156,242,251,193,158,242,251,193,160,242,251,193,162,242,251,193,164,242,251,193,24,245,251,193,26,245,251,193,28,245,251,193,30,245,251,193,32,245,251,193,34,245,251,193,36,245,251,193,38,245,251,193,40,245,251,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,128,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,160,36,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,192,36,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,206,224,36,0,193,234,245,251,193,236,245,251,193,238,245,251,193,240,245,251,193,242,245,251,193,244,245,251,193,246,245,251,193,248,245,251,193,250,245,251,193,252,245,251,193,254,245,251,193,2,246,251,193,4,246,251,193,6,246,251,193,8,246,251,193,10,246,251,193,12,246,251,193,14,246,251,193,16,246,251,193,18,246,251,193,20,246,251,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,0,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,193,140,244,251,193,142,244,251,193,144,244,251,193,146,244,251,193,148,244,251,193,150,244,251,193,152,244,251,193,154,244,251,193,156,244,251,193,158,244,251,193,160,244,251,193,162,244,251,193,164,244,251,193,166,244,251,193,168,244,251,193,170,244,251,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,193,178,244,251,193,180,244,251,193,182,244,251,193,184,244,251,193,186,244,251,193,188,244,251,193,190,244,251,193,192,244,251,193,194,244,251,193,196,244,251,193,198,244,251,193,200,244,251,193,202,244,251,193,204,244,251,193,206,244,251,193,208,244,251,193,210,244,251,193,212,244,251,193,214,244,251,193,216,244,251,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,32,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,206,64,37,0,193,192,247,251,193,224,245,251,193,226,245,251,193,194,247,251,193,196,247,251,193,198,247,251,193,200,247,251,193,202,247,251,193,204,247,251,193,206,247,251,193,228,245,251,193,208,247,251,193,210,247,251,193,212,247,251,193,230,245,251,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,193,22,246,251,193,108,55,252,193,24,246,251,193,26,246,251,193,112,248,251,193,114,248,251,193,116,248,251,193,118,248,251,193,120,248,251,193,122,248,251,193,124,248,251,193,126,248,251,193,128,248,251,193,130,248,251,193,132,248,251,193,134,248,251,193,136,248,251,193,138,248,251,193,140,248,251,193,142,248,251,193,144,248,251,193,146,248,251,193,148,248,251,193,150,248,251,193,152,248,251,193,154,248,251,193,156,248,251,193,158,248,251,193,160,248,251,193,162,248,251,193,190,250,251,193,192,250,251,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,206,96,37,0,193,164,248,251,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,128,37,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,206,160,37,0,193,126,249,251,193,128,249,251,193,130,249,251,193,132,249,251,193,134,249,251,193,136,249,251,193,138,249,251,193,140,249,251,193,142,249,251,193,144,249,251,193,146,249,251,193,148,249,251,193,150,249,251,193,152,249,251,193,154,249,251,193,156,249,251,193,158,249,251,193,160,249,251,193,162,249,251,193,164,249,251,193,166,249,251,193,180,251,251,193,182,251,251,193,184,251,251,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,192,37,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,206,224,37,0,193,220,249,251,193,222,249,251,193,224,249,251,193,226,249,251,193,228,249,251,193,230,249,251,193,232,249,251,193,234,249,251,193,236,249,251,193,238,249,251,193,240,249,251,193,242,249,251,193,244,249,251,193,246,249,251,193,248,249,251,193,250,249,251,193,252,249,251,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,206,0,38,0,193,254,249,251,193,2,250,251,193,4,250,251,193,6,250,251,193,8,250,251,193,10,250,251,193,12,250,251,193,14,250,251,193,16,250,251,193,18,250,251,193,20,250,251,193,22,250,251,193,24,250,251,193,26,250,251,193,28,250,251,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,206,32,38,0,193,30,250,251,193,32,250,251,193,34,250,251,193,36,250,251,193,38,250,251,193,40,250,251,193,42,250,251,193,106,248,251,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,193,108,248,251,193,180,250,251,193,182,250,251,193,184,250,251,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,64,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,206,96,38,0,193,218,251,251,193,220,251,251,193,222,251,251,193,224,251,251,193,226,251,251,193,228,251,251,193,230,251,251,193,232,251,251,193,234,251,251,193,236,251,251,193,238,251,251,193,240,251,251,193,242,251,251,193,244,251,251,193,246,251,251,193,248,251,251,193,250,251,251,193,252,251,251,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,128,38,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,193,186,250,251,193,186,252,251,193,188,252,251,193,190,252,251,193,192,252,251,193,194,252,251,193,196,252,251,193,198,252,251,193,200,252,251,193,202,252,251,193,204,252,251,193,206,252,251,193,208,252,251,193,210,252,251,193,212,252,251,193,188,250,251,193,214,252,251,193,216,252,251,193,218,252,251,193,220,252,251,193,222,252,251,193,224,252,251,193,226,252,251,193,228,252,251,193,134,254,251,193,136,254,251,193,138,254,251,193,194,250,251,193,196,250,251,193,198,250,251,193,200,250,251,193,202,250,251,193,204,250,251,193,206,250,251,193,208,250,251,193,210,250,251,193,212,250,251,193,214,250,251,193,216,250,251,193,218,250,251,193,220,250,251,193,222,250,251,193,224,250,251,193,230,252,251,193,226,250,251,193,228,250,251,193,232,252,251,193,234,252,251,193,236,252,251,193,238,252,251,193,240,252,251,193,242,252,251,193,244,252,251,193,246,252,251,193,248,252,251,193,250,252,251,193,252,252,251,193,254,252,251,193,2,253,251,193,230,250,251,193,4,253,251,193,6,253,251,193,8,253,251,193,10,253,251,193,12,253,251,193,14,253,251,193,16,253,251,193,18,253,251,193,20,253,251,193,226,254,251,193,228,254,251,193,230,254,251,193,232,254,251,193,234,254,251,193,236,254,251,193,238,254,251,193,240,254,251,193,242,254,251,193,244,254,251,193,246,254,251,193,248,254,251,193,250,254,251,193,48,2,252,193,50,2,252,193,52,2,252,193,54,2,252,193,56,2,252,193,58,2,252,193,60,2,252,193,88,3,252,193,90,3,252,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,206,160,38,0,193,22,253,251,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,192,38,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,193,186,251,251,193,188,251,251,193,190,251,251,193,192,251,251,193,194,251,251,193,196,251,251,193,198,251,251,193,200,251,251,193,202,251,251,193,204,251,251,193,206,251,251,193,208,251,251,193,210,251,251,193,4,254,251,193,6,254,251,193,8,254,251,193,10,254,251,193,12,254,251,193,14,254,251,193,16,254,251,193,18,254,251,193,20,254,251,193,22,254,251,193,24,254,251,193,26,254,251,193,28,254,251,193,30,254,251,193,32,254,251,193,34,254,251,193,158,255,251,193,160,255,251,193,162,255,251,193,254,251,251,193,2,252,251,193,4,252,251,193,6,252,251,193,8,252,251,193,10,252,251,193,12,252,251,193,14,252,251,193,16,252,251,193,18,252,251,193,20,252,251,193,22,252,251,193,24,252,251,193,26,252,251,193,28,252,251,193,30,252,251,193,32,252,251,193,34,252,251,193,36,252,251,193,38,252,251,193,40,252,251,193,42,252,251,193,44,252,251,193,46,252,251,193,48,252,251,193,50,252,251,193,52,252,251,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,206,224,38,0,193,106,254,251,193,108,254,251,193,110,254,251,193,112,254,251,193,114,254,251,193,116,254,251,193,118,254,251,193,120,254,251,193,122,254,251,193,124,254,251,193,126,254,251,193,128,254,251,193,130,254,251,193,132,254,251,193,222,255,251,193,224,255,251,193,226,255,251,193,228,255,251,193,230,255,251,193,232,255,251,193,234,255,251,193,236,255,251,193,22,3,252,193,24,3,252,193,26,3,252,193,14,4,252,193,16,4,252,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,0,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,206,32,39,0,193,252,254,251,193,254,254,251,193,2,255,251,193,4,255,251,193,6,255,251,193,8,255,251,193,10,255,251,193,12,255,251,193,14,255,251,193,16,255,251,193,18,255,251,193,20,255,251,193,22,255,251,193,24,255,251,193,26,255,251,193,28,255,251,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,206,64,39,0,193,184,255,251,193,186,255,251,193,188,255,251,193,190,255,251,193,192,255,251,193,194,255,251,193,196,255,251,193,198,255,251,193,200,255,251,193,202,255,251,193,204,255,251,193,232,2,252,193,234,2,252,193,236,2,252,193,238,2,252,193,240,2,252,193,242,2,252,193,244,2,252,193,246,2,252,193,248,2,252,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,206,96,39,0,193,206,255,251,193,208,255,251,193,210,255,251,193,212,255,251,193,214,255,251,193,216,255,251,193,218,255,251,193,220,255,251,193,252,2,252,193,254,2,252,193,2,3,252,193,4,3,252,193,6,3,252,193,8,3,252,193,10,3,252,193,12,3,252,193,14,3,252,193,16,3,252,193,18,3,252,193,20,3,252,193,246,3,252,193,248,3,252,193,140,254,251,193,142,254,251,193,144,254,251,193,146,254,251,193,148,254,251,193,150,254,251,193,152,254,251,193,154,254,251,193,156,254,251,193,158,254,251,193,160,254,251,193,162,254,251,193,164,254,251,193,166,254,251,193,168,254,251,193,170,254,251,193,172,254,251,193,174,254,251,193,176,254,251,193,178,254,251,193,180,254,251,193,182,254,251,193,184,254,251,193,186,254,251,193,188,254,251,193,190,254,251,193,192,254,251,193,194,254,251,193,196,254,251,193,198,254,251,193,200,254,251,193,202,254,251,193,204,254,251,193,206,254,251,193,208,254,251,193,210,254,251,193,212,254,251,193,214,254,251,193,216,254,251,193,218,254,251,193,220,254,251,193,222,254,251,193,224,254,251,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,193,30,255,251,193,32,255,251,193,34,255,251,193,36,255,251,193,38,255,251,193,40,255,251,193,42,255,251,193,44,255,251,193,46,255,251,193,48,255,251,193,50,255,251,193,52,255,251,193,54,255,251,193,56,255,251,193,58,255,251,193,60,255,251,193,62,255,251,193,64,255,251,193,66,255,251,193,68,255,251,193,70,255,251,193,72,255,251,193,74,255,251,193,76,255,251,193,78,255,251,193,80,255,251,193,82,255,251,193,84,255,251,193,86,255,251,193,88,255,251,193,90,255,251,193,92,255,251,193,94,255,251,193,96,255,251,193,138,140,252,193,98,255,251,193,100,255,251,193,102,255,251,193,104,255,251,193,106,255,251,193,108,255,251,193,110,255,251,193,112,255,251,193,114,255,251,193,116,255,251,193,118,255,251,193,120,255,251,193,122,255,251,193,124,255,251,193,126,255,251,193,128,255,251,193,130,255,251,193,132,255,251,193,134,255,251,193,136,255,251,193,138,255,251,193,140,255,251,193,142,255,251,193,144,255,251,193,146,255,251,193,148,255,251,193,150,255,251,193,152,255,251,193,154,255,251,193,156,255,251,193,62,2,252,193,64,2,252,193,66,2,252,193,68,2,252,193,70,2,252,193,72,2,252,193,74,2,252,193,76,2,252,193,78,2,252,193,80,2,252,193,82,2,252,193,84,2,252,193,86,2,252,193,88,2,252,193,90,2,252,193,92,2,252,193,94,2,252,193,96,2,252,193,98,2,252,193,100,2,252,193,102,2,252,193,104,2,252,193,106,2,252,193,108,2,252,193,110,3,252,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,193,164,255,251,193,166,255,251,193,168,255,251,193,170,255,251,193,172,255,251,193,174,255,251,193,176,255,251,193,178,255,251,193,180,255,251,193,216,2,252,193,218,2,252,193,220,2,252,193,222,2,252,193,224,2,252,193,226,2,252,193,228,2,252,193,218,3,252,193,220,3,252,193,222,3,252,193,224,3,252,193,226,3,252,193,228,3,252,193,164,4,252,193,166,4,252,193,168,4,252,193,170,4,252,193,172,4,252,193,62,5,252,193,64,5,252,193,66,5,252,193,68,5,252,193,180,5,252,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,128,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,206,160,39,0,193,72,133,252,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,193,250,2,252,193,230,3,252,193,232,3,252,193,234,3,252,193,236,3,252,193,238,3,252,193,240,3,252,193,242,3,252,193,244,3,252,193,174,4,252,193,176,4,252,193,70,5,252,193,72,5,252,193,74,5,252,193,76,5,252,193,78,5,252,193,186,5,252,193,188,5,252,193,190,5,252,193,192,5,252,193,6,6,252,193,70,6,252,193,72,6,252,193,74,6,252,193,76,6,252,193,138,6,252,193,140,6,252,193,154,6,252,193,178,6,252,193,220,6,252,193,222,6,252,193,16,7,252,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,206,192,39,0,193,28,4,252,193,30,4,252,193,32,4,252,193,34,4,252,193,84,3,252,193,36,4,252,193,86,3,252,193,38,4,252,193,40,4,252,193,42,4,252,193,44,4,252,193,46,4,252,193,48,4,252,193,50,4,252,193,52,4,252,193,54,4,252,193,96,5,252,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,193,92,3,252,193,94,3,252,193,96,3,252,193,98,3,252,193,100,3,252,193,102,3,252,193,104,3,252,193,106,3,252,193,108,3,252,193,56,4,252,193,58,4,252,193,60,4,252,193,62,4,252,193,64,4,252,193,66,4,252,193,68,4,252,193,70,4,252,193,72,4,252,193,74,4,252,193,76,4,252,193,230,4,252,193,232,4,252,193,78,4,252,193,114,5,252,193,116,5,252,193,208,5,252,193,210,5,252,193,212,5,252,193,214,5,252,193,200,6,252,193,202,6,252,193,232,6,252,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,206,224,39,0,193,80,4,252,193,82,4,252,193,84,4,252,193,86,4,252,193,88,4,252,193,90,4,252,193,92,4,252,193,94,4,252,193,96,4,252,193,98,4,252,193,100,4,252,193,102,4,252,193,104,4,252,193,216,3,252,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,193,250,3,252,193,252,3,252,193,254,3,252,193,2,4,252,193,4,4,252,193,6,4,252,193,8,4,252,193,10,4,252,193,12,4,252,193,178,4,252,193,180,4,252,193,182,4,252,193,184,4,252,193,186,4,252,193,188,4,252,193,190,4,252,193,192,4,252,193,194,4,252,193,196,4,252,193,198,4,252,193,80,5,252,193,82,5,252,193,84,5,252,193,86,5,252,193,194,5,252,193,196,5,252,193,198,5,252,193,8,6,252,193,10,6,252,193,12,6,252,193,14,6,252,193,16,6,252,193,18,4,252,193,20,4,252,193,22,4,252,193,24,4,252,193,26,4,252,193,88,5,252,193,90,5,252,193,92,5,252,193,94,5,252,193,166,6,252,193,22,7,252,193,24,7,252,193,84,7,252,193,230,7,252,193,232,7,252,193,60,8,252,193,62,8,252,193,64,8,252,193,148,8,252,193,150,8,252,193,152,8,252,193,154,8,252,193,226,8,252,193,228,8,252,193,30,9,252,193,106,9,252,193,220,9,252,193,240,9,252,193,242,9,252,193,52,10,252,193,54,10,252,193,56,10,252,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,206,0,40,0,193,234,4,252,193,236,4,252,193,238,4,252,193,240,4,252,193,242,4,252,193,244,4,252,193,246,4,252,193,248,4,252,193,250,4,252,193,252,4,252,193,254,4,252,193,2,5,252,193,4,5,252,193,6,5,252,193,8,5,252,193,10,5,252,193,12,5,252,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,206,32,40,0,193,98,5,252,193,100,5,252,193,102,5,252,193,104,5,252,193,106,5,252,193,108,5,252,193,228,4,252,193,110,5,252,193,112,5,252,193,200,5,252,193,202,5,252,193,204,5,252,193,206,5,252,193,20,6,252,193,22,6,252,193,24,6,252,193,78,6,252,193,80,6,252,193,82,6,252,193,84,6,252,193,86,6,252,193,88,6,252,193,116,6,252,193,118,6,252,193,156,6,252,193,158,6,252,193,14,5,252,193,16,5,252,193,118,5,252,193,18,5,252,193,20,5,252,193,22,5,252,193,24,5,252,193,26,5,252,193,28,5,252,193,30,5,252,193,32,5,252,193,34,5,252,193,36,5,252,193,38,5,252,193,40,5,252,193,42,5,252,193,44,5,252,193,46,5,252,193,48,5,252,193,50,5,252,193,52,5,252,193,54,5,252,193,56,5,252,193,58,5,252,193,60,5,252,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,64,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,193,182,5,252,193,184,5,252,193,2,6,252,193,4,6,252,193,66,6,252,193,68,6,252,193,114,6,252,193,152,6,252,193,136,6,252,193,14,7,252,193,76,7,252,193,78,7,252,193,214,7,252,193,216,7,252,193,48,8,252,193,136,8,252,193,138,8,252,193,216,8,252,193,24,9,252,193,144,9,252,193,180,9,252,193,42,10,252,193,120,10,252,193,152,10,252,193,206,10,252,193,254,10,252,193,2,11,252,193,36,11,252,193,70,11,252,193,100,11,252,193,102,11,252,193,128,11,252,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,206,96,40,0,193,26,6,252,193,28,6,252,193,30,6,252,193,32,6,252,193,34,6,252,193,36,6,252,193,38,6,252,193,40,6,252,193,42,6,252,193,44,6,252,193,46,6,252,193,48,6,252,193,50,6,252,193,52,6,252,193,54,6,252,193,56,6,252,193,58,6,252,193,60,6,252,193,62,6,252,193,90,6,252,193,92,6,252,193,18,6,252,193,142,6,252,193,170,6,252,193,180,6,252,193,196,6,252,193,18,7,252,193,20,7,252,193,154,7,252,193,156,7,252,193,158,7,252,193,160,7,252,193,162,7,252,193,228,7,252,193,54,8,252,193,56,8,252,193,58,8,252,193,144,8,252,193,146,8,252,193,224,8,252,193,26,9,252,193,28,9,252,193,70,9,252,193,72,9,252,193,146,9,252,193,214,9,252,193,216,9,252,193,218,9,252,193,46,10,252,193,48,10,252,193,50,10,252,193,78,10,252,193,80,10,252,193,178,147,252,193,180,147,252,193,182,147,252,193,184,147,252,193,186,147,252,193,188,147,252,193,208,147,252,193,210,147,252,193,212,147,252,193,214,147,252,193,220,147,252,193,222,147,252,193,224,147,252,193,226,147,252,193,228,147,252,193,230,147,252,193,232,147,252,193,234,147,252,193,236,147,252,193,242,147,252,193,64,6,252,193,244,147,252,193,246,147,252,193,252,147,252,193,254,147,252,193,2,148,252,193,4,148,252,193,6,148,252,193,8,148,252,193,10,148,252,193,12,148,252,193,14,148,252,193,188,6,252,193,190,6,252,193,192,6,252,193,224,6,252,193,198,6,252,193,226,6,252,193,228,6,252,193,230,6,252,193,26,7,252,193,28,7,252,193,30,7,252,193,86,7,252,193,88,7,252,193,90,7,252,193,92,7,252,193,94,7,252,193,96,7,252,193,98,7,252,193,164,7,252,193,166,7,252,193,168,7,252,193,170,7,252,193,172,7,252,193,174,7,252,193,176,7,252,193,234,7,252,193,236,7,252,193,238,7,252,193,240,7,252,193,242,7,252,193,244,7,252,193,246,7,252,193,194,6,252,193,204,6,252,193,206,6,252,193,208,6,252,193,210,6,252,193,212,6,252,193,214,6,252,193,216,6,252,193,218,6,252,193,240,6,252,193,242,6,252,193,244,6,252,193,246,6,252,193,248,6,252,193,250,6,252,193,252,6,252,193,254,6,252,193,2,7,252,193,4,7,252,193,6,7,252,193,8,7,252,193,10,7,252,193,12,7,252,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,193,234,6,252,193,236,6,252,193,238,6,252,193,32,7,252,193,34,7,252,193,36,7,252,193,38,7,252,193,40,7,252,193,42,7,252,193,100,7,252,193,102,7,252,193,104,7,252,193,106,7,252,193,108,7,252,193,178,7,252,193,180,7,252,193,182,7,252,193,184,7,252,193,248,7,252,193,250,7,252,193,252,7,252,193,254,7,252,193,2,8,252,193,148,12,252,193,4,8,252,193,84,8,252,193,86,8,252,193,88,8,252,193,90,8,252,193,92,8,252,193,94,8,252,193,166,8,252,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,206,128,40,0,193,112,7,252,193,114,7,252,193,116,7,252,193,118,7,252,193,120,7,252,193,122,7,252,193,124,7,252,193,126,7,252,193,128,7,252,193,130,7,252,193,132,7,252,193,134,7,252,193,136,7,252,193,138,7,252,193,140,7,252,193,142,7,252,193,144,7,252,193,146,7,252,193,148,7,252,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,193,80,7,252,193,82,7,252,193,150,7,252,193,152,7,252,193,218,7,252,193,220,7,252,193,222,7,252,193,224,7,252,193,226,7,252,193,50,8,252,193,52,8,252,193,140,8,252,193,142,8,252,193,218,8,252,193,220,8,252,193,222,8,252,193,66,9,252,193,68,9,252,193,104,9,252,193,120,9,252,193,156,9,252,193,176,9,252,193,210,9,252,193,212,9,252,193,238,9,252,193,44,10,252,193,74,10,252,193,76,10,252,193,122,10,252,193,124,10,252,193,154,10,252,193,156,10,252,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,206,160,40,0,193,6,8,252,193,8,8,252,193,10,8,252,193,12,8,252,193,14,8,252,193,16,8,252,193,18,8,252,193,20,8,252,193,22,8,252,193,24,8,252,193,26,8,252,193,28,8,252,193,30,8,252,193,32,8,252,193,34,8,252,193,36,8,252,193,38,8,252,193,40,8,252,193,42,8,252,193,44,8,252,193,46,8,252,193,96,8,252,193,98,8,252,193,100,8,252,193,66,8,252,193,68,8,252,193,70,8,252,193,72,8,252,193,74,8,252,193,76,8,252,193,78,8,252,193,80,8,252,193,82,8,252,193,156,8,252,193,158,8,252,193,160,8,252,193,162,8,252,193,164,8,252,193,230,8,252,193,232,8,252,193,234,8,252,193,236,8,252,193,238,8,252,193,240,8,252,193,32,9,252,193,34,9,252,193,36,9,252,193,38,9,252,193,40,9,252,193,42,9,252,193,44,9,252,193,74,9,252,193,76,9,252,193,78,9,252,193,108,9,252,193,110,9,252,193,102,8,252,193,104,8,252,193,106,8,252,193,108,8,252,193,110,8,252,193,112,8,252,193,114,8,252,193,116,8,252,193,118,8,252,193,120,8,252,193,122,8,252,193,124,8,252,193,30,50,253,193,126,8,252,193,128,8,252,193,130,8,252,193,132,8,252,193,134,8,252,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,193,168,8,252,193,170,8,252,193,242,8,252,193,244,8,252,193,46,9,252,193,48,9,252,193,80,9,252,193,82,9,252,193,84,9,252,193,86,9,252,193,124,9,252,193,136,9,252,193,160,9,252,193,172,9,252,193,182,9,252,193,204,9,252,193,224,9,252,193,226,9,252,193,62,10,252,193,64,10,252,193,66,10,252,193,174,10,252,193,176,10,252,193,26,11,252,193,140,11,252,193,204,11,252,193,10,12,252,193,12,12,252,193,14,12,252,193,16,12,252,193,78,12,252,193,80,12,252,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,206,192,40,0,193,246,8,252,193,248,8,252,193,250,8,252,193,252,8,252,193,254,8,252,193,2,9,252,193,4,9,252,193,6,9,252,193,8,9,252,193,10,9,252,193,12,9,252,193,14,9,252,193,16,9,252,193,18,9,252,193,20,9,252,193,22,9,252,193,50,9,252,193,52,9,252,193,54,9,252,193,56,9,252,193,58,9,252,193,60,9,252,193,62,9,252,193,64,9,252,193,88,9,252,193,90,9,252,193,92,9,252,193,94,9,252,193,96,9,252,193,98,9,252,193,100,9,252,193,102,9,252,193,112,9,252,193,114,9,252,193,116,9,252,193,118,9,252,193,126,9,252,193,128,9,252,193,130,9,252,193,132,9,252,193,134,9,252,193,138,9,252,193,140,9,252,193,142,9,252,193,148,9,252,193,150,9,252,193,162,9,252,193,152,9,252,193,154,9,252,193,164,9,252,193,166,9,252,193,168,9,252,193,170,9,252,193,174,9,252,193,178,9,252,193,184,9,252,193,122,9,252,193,158,9,252,193,190,9,252,193,196,9,252,193,202,9,252,193,222,9,252,193,244,9,252,193,246,9,252,193,248,9,252,193,250,9,252,193,58,10,252,193,60,10,252,193,92,10,252,193,94,10,252,193,170,10,252,193,172,10,252,193,230,10,252,193,232,10,252,193,234,10,252,193,236,10,252,193,24,11,252,193,50,11,252,193,52,11,252,193,88,11,252,193,138,11,252,193,192,11,252,193,198,11,252,193,202,11,252,193,226,11,252,193,254,11,252,193,2,12,252,193,4,12,252,193,186,9,252,193,188,9,252,193,194,9,252,193,198,9,252,193,200,9,252,193,206,9,252,193,208,9,252,193,228,9,252,193,230,9,252,193,252,9,252,193,232,9,252,193,234,9,252,193,236,9,252,193,254,9,252,193,2,10,252,193,4,10,252,193,6,10,252,193,8,10,252,193,10,10,252,193,12,10,252,193,14,10,252,193,16,10,252,193,18,10,252,193,20,10,252,193,22,10,252,193,24,10,252,193,26,10,252,193,28,10,252,193,30,10,252,193,32,10,252,193,34,10,252,193,36,10,252,193,82,10,252,193,126,10,252,193,160,10,252,193,162,10,252,193,164,10,252,193,166,10,252,193,214,10,252,193,216,10,252,193,218,10,252,193,220,10,252,193,10,11,252,193,12,11,252,193,42,11,252,193,44,11,252,193,76,11,252,193,78,11,252,193,80,11,252,193,82,11,252,193,108,11,252,193,110,11,252,193,112,11,252,193,134,11,252,193,136,11,252,193,156,11,252,193,168,11,252,193,170,11,252,193,172,11,252,193,174,11,252,193,190,11,252,193,220,11,252,193,222,11,252,193,224,11,252,193,84,10,252,193,86,10,252,193,88,10,252,193,90,10,252,193,128,10,252,193,130,10,252,193,132,10,252,193,134,10,252,193,136,10,252,193,138,10,252,193,168,10,252,193,222,10,252,193,224,10,252,193,226,10,252,193,228,10,252,193,14,11,252,193,16,11,252,193,18,11,252,193,20,11,252,193,22,11,252,193,46,11,252,193,48,11,252,193,84,11,252,193,86,11,252,193,114,11,252,193,116,11,252,193,164,11,252,193,176,11,252,193,252,11,252,193,218,12,252,193,220,12,252,193,38,13,252,193,158,10,252,193,208,10,252,193,210,10,252,193,212,10,252,193,6,11,252,193,8,11,252,193,38,11,252,193,40,11,252,193,72,11,252,193,74,11,252,193,104,11,252,193,106,11,252,193,130,11,252,193,132,11,252,193,154,11,252,193,160,11,252,193,162,11,252,193,130,12,252,193,132,12,252,193,194,12,252,193,196,12,252,193,198,12,252,193,24,13,252,193,26,13,252,193,124,13,252,193,126,13,252,193,128,13,252,193,186,13,252,193,140,14,252,193,154,14,252,193,178,14,252,193,190,14,252,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,193,126,70,252,193,128,70,252,193,130,70,252,193,132,70,252,193,134,70,252,193,136,70,252,193,138,70,252,193,140,70,252,193,142,70,252,193,144,70,252,193,146,70,252,193,148,70,252,193,150,70,252,193,152,70,252,193,154,70,252,193,252,10,252,193,156,70,252,193,158,70,252,193,160,70,252,193,230,11,252,193,232,11,252,193,234,11,252,193,236,11,252,193,238,11,252,193,240,11,252,193,242,11,252,193,244,11,252,193,246,11,252,193,18,12,252,193,20,12,252,193,22,12,252,193,24,12,252,193,26,12,252,193,28,12,252,193,30,12,252,193,32,12,252,193,34,12,252,193,36,12,252,193,38,12,252,193,40,12,252,193,42,12,252,193,44,12,252,193,46,12,252,193,48,12,252,193,50,12,252,193,52,12,252,193,54,12,252,193,56,12,252,193,84,12,252,193,86,12,252,193,88,12,252,193,248,11,252,193,250,11,252,193,58,12,252,193,60,12,252,193,62,12,252,193,64,12,252,193,134,12,252,193,136,12,252,193,138,12,252,193,200,12,252,193,202,12,252,193,204,12,252,193,206,12,252,193,208,12,252,193,210,12,252,193,212,12,252,193,214,12,252,193,216,12,252,193,28,13,252,193,30,13,252,193,32,13,252,193,34,13,252,193,36,13,252,193,130,13,252,193,132,13,252,193,188,13,252,193,190,13,252,193,192,13,252,193,232,13,252,193,28,14,252,193,30,14,252,193,72,14,252,193,6,12,252,193,8,12,252,193,66,12,252,193,68,12,252,193,70,12,252,193,72,12,252,193,74,12,252,193,76,12,252,193,140,12,252,193,142,12,252,193,144,12,252,193,146,12,252,193,222,12,252,193,224,12,252,193,226,12,252,193,228,12,252,193,230,12,252,193,232,12,252,193,234,12,252,193,236,12,252,193,42,13,252,193,44,13,252,193,46,13,252,193,48,13,252,193,50,13,252,193,52,13,252,193,54,13,252,193,134,13,252,193,136,13,252,193,194,13,252,193,196,13,252,193,198,13,252,193,82,12,252,193,150,12,252,193,238,12,252,193,240,12,252,193,56,13,252,193,58,13,252,193,60,13,252,193,62,13,252,193,64,13,252,193,66,13,252,193,138,13,252,193,140,13,252,193,142,13,252,193,144,13,252,193,146,13,252,193,204,13,252,193,206,13,252,193,208,13,252,193,210,13,252,193,244,13,252,193,246,13,252,193,44,14,252,193,46,14,252,193,48,14,252,193,88,14,252,193,144,14,252,193,146,14,252,193,166,14,252,193,176,14,252,193,182,14,252,193,212,14,252,193,214,14,252,193,90,12,252,193,92,12,252,193,94,12,252,193,96,12,252,193,98,12,252,193,100,12,252,193,102,12,252,193,104,12,252,193,106,12,252,193,108,12,252,193,110,12,252,193,112,12,252,193,114,12,252,193,116,12,252,193,118,12,252,193,120,12,252,193,122,12,252,193,124,12,252,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,206,0,41,0,193,242,12,252,193,244,12,252,193,246,12,252,193,248,12,252,193,250,12,252,193,252,12,252,193,254,12,252,193,2,13,252,193,4,13,252,193,6,13,252,193,8,13,252,193,10,13,252,193,12,13,252,193,14,13,252,193,16,13,252,193,18,13,252,193,20,13,252,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,193,40,13,252,193,32,14,252,193,156,14,252,193,134,15,252,193,136,15,252,193,138,15,252,193,198,15,252,193,200,15,252,193,2,16,252,193,22,16,252,193,60,16,252,193,230,16,252,193,242,16,252,193,62,17,252,193,120,17,252,193,122,17,252,193,124,17,252,193,126,17,252,193,222,17,252,193,224,17,252,193,226,17,252,193,228,17,252,193,44,18,252,193,46,18,252,193,122,18,252,193,124,18,252,193,126,18,252,193,128,18,252,193,130,18,252,193,132,18,252,193,232,18,252,193,234,18,252,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,32,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,206,64,41,0,193,212,13,252,193,214,13,252,193,216,13,252,193,218,13,252,193,220,13,252,193,222,13,252,193,224,13,252,193,226,13,252,193,228,13,252,193,248,13,252,193,250,13,252,193,252,13,252,193,254,13,252,193,2,14,252,193,4,14,252,193,6,14,252,193,8,14,252,193,10,14,252,193,12,14,252,193,14,14,252,193,16,14,252,193,18,14,252,193,20,14,252,193,22,14,252,193,24,14,252,193,50,14,252,193,52,14,252,193,54,14,252,193,200,13,252,193,202,13,252,193,234,13,252,193,236,13,252,193,238,13,252,193,240,13,252,193,242,13,252,193,34,14,252,193,36,14,252,193,38,14,252,193,40,14,252,193,42,14,252,193,82,14,252,193,84,14,252,193,86,14,252,193,106,14,252,193,132,14,252,193,134,14,252,193,158,14,252,193,174,14,252,193,180,14,252,193,196,14,252,193,198,14,252,193,210,14,252,193,240,14,252,193,242,14,252,193,244,14,252,193,246,14,252,193,40,15,252,193,42,15,252,193,82,15,252,193,84,15,252,193,56,14,252,193,58,14,252,193,60,14,252,193,62,14,252,193,64,14,252,193,66,14,252,193,68,14,252,193,70,14,252,193,90,14,252,193,92,14,252,193,94,14,252,193,96,14,252,193,98,14,252,193,100,14,252,193,102,14,252,193,108,14,252,193,110,14,252,193,112,14,252,193,114,14,252,193,116,14,252,193,118,14,252,193,120,14,252,193,122,14,252,193,136,14,252,193,138,14,252,193,148,14,252,193,150,14,252,193,152,14,252,193,160,14,252,193,162,14,252,193,164,14,252,193,168,14,252,193,74,14,252,193,76,14,252,193,78,14,252,193,80,14,252,193,124,14,252,193,126,14,252,193,128,14,252,193,130,14,252,193,194,14,252,193,230,14,252,193,232,14,252,193,234,14,252,193,236,14,252,193,238,14,252,193,32,15,252,193,34,15,252,193,36,15,252,193,38,15,252,193,72,15,252,193,74,15,252,193,76,15,252,193,78,15,252,193,80,15,252,193,130,15,252,193,132,15,252,193,164,15,252,193,166,15,252,193,168,15,252,193,194,15,252,193,196,15,252,193,248,15,252,193,250,15,252,193,170,14,252,193,172,14,252,193,184,14,252,193,186,14,252,193,188,14,252,193,200,14,252,193,202,14,252,193,204,14,252,193,216,14,252,193,218,14,252,193,220,14,252,193,250,14,252,193,252,14,252,193,254,14,252,193,2,15,252,193,4,15,252,193,6,15,252,193,8,15,252,193,10,15,252,193,12,15,252,193,14,15,252,193,16,15,252,193,18,15,252,193,20,15,252,193,22,15,252,193,50,15,252,193,52,15,252,193,54,15,252,193,56,15,252,193,58,15,252,193,60,15,252,193,62,15,252,193,192,14,252,193,206,14,252,193,208,14,252,193,226,14,252,193,228,14,252,193,26,15,252,193,28,15,252,193,30,15,252,193,70,15,252,193,122,15,252,193,124,15,252,193,126,15,252,193,128,15,252,193,162,15,252,193,188,15,252,193,190,15,252,193,192,15,252,193,246,15,252,193,18,16,252,193,20,16,252,193,72,16,252,193,102,16,252,193,136,16,252,193,152,16,252,193,174,16,252,193,232,16,252,193,240,16,252,193,12,17,252,193,60,17,252,193,112,17,252,193,114,17,252,193,116,17,252,193,248,14,252,193,44,15,252,193,46,15,252,193,48,15,252,193,92,15,252,193,144,15,252,193,206,15,252,193,208,15,252,193,210,15,252,193,4,16,252,193,24,16,252,193,204,16,252,193,28,17,252,193,68,17,252,193,70,17,252,193,72,17,252,193,74,17,252,193,76,17,252,193,132,17,252,193,248,17,252,193,56,18,252,193,58,18,252,193,60,18,252,193,62,18,252,193,64,18,252,193,66,18,252,193,68,18,252,193,150,18,252,193,152,18,252,193,154,18,252,193,156,18,252,193,4,19,252,193,86,15,252,193,88,15,252,193,90,15,252,193,140,15,252,193,142,15,252,193,170,15,252,193,172,15,252,193,202,15,252,193,204,15,252,193,44,16,252,193,74,16,252,193,104,16,252,193,106,16,252,193,110,16,252,193,112,16,252,193,118,16,252,193,120,16,252,193,124,16,252,193,126,16,252,193,154,16,252,193,180,16,252,193,182,16,252,193,198,16,252,193,200,16,252,193,202,16,252,193,208,16,252,193,6,17,252,193,22,17,252,193,40,17,252,193,42,17,252,193,64,17,252,193,66,17,252,193,94,15,252,193,96,15,252,193,98,15,252,193,100,15,252,193,102,15,252,193,104,15,252,193,106,15,252,193,108,15,252,193,110,15,252,193,112,15,252,193,114,15,252,193,116,15,252,193,118,15,252,193,152,117,252,193,146,15,252,193,148,15,252,193,150,15,252,193,152,15,252,193,154,15,252,193,156,15,252,193,158,15,252,193,160,15,252,193,174,15,252,193,176,15,252,193,178,15,252,193,180,15,252,193,182,15,252,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,193,4,71,252,193,6,71,252,193,8,71,252,193,10,71,252,193,12,71,252,193,14,71,252,193,16,71,252,193,18,71,252,193,20,71,252,193,22,71,252,193,60,71,252,193,62,71,252,193,64,71,252,193,66,71,252,193,68,71,252,193,70,71,252,193,72,71,252,193,74,71,252,193,76,71,252,193,78,71,252,193,80,71,252,193,82,71,252,193,84,71,252,193,184,15,252,193,86,71,252,193,88,71,252,193,90,71,252,193,92,71,252,193,94,71,252,193,96,71,252,193,98,71,252,193,100,71,252,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,206,96,41,0,193,6,16,252,193,8,16,252,193,10,16,252,193,12,16,252,193,26,16,252,193,28,16,252,193,30,16,252,193,32,16,252,193,34,16,252,193,36,16,252,193,38,16,252,193,40,16,252,193,46,16,252,193,48,16,252,193,50,16,252,193,52,16,252,193,54,16,252,193,56,16,252,193,62,16,252,193,64,16,252,193,252,15,252,193,254,15,252,193,42,16,252,193,58,16,252,193,66,16,252,193,90,16,252,193,96,16,252,193,116,16,252,193,138,16,252,193,166,16,252,193,206,16,252,193,216,16,252,193,218,16,252,193,220,16,252,193,222,16,252,193,228,16,252,193,234,16,252,193,236,16,252,193,118,17,252,193,212,17,252,193,214,17,252,193,216,17,252,193,218,17,252,193,220,17,252,193,42,18,252,193,118,18,252,193,120,18,252,193,226,18,252,193,228,18,252,193,230,18,252,193,76,19,252,193,78,19,252,193,68,16,252,193,70,16,252,193,76,16,252,193,78,16,252,193,80,16,252,193,82,16,252,193,84,16,252,193,86,16,252,193,88,16,252,193,92,16,252,193,98,16,252,193,100,16,252,193,108,16,252,193,114,16,252,193,122,16,252,193,128,16,252,193,130,16,252,193,132,16,252,193,134,16,252,193,140,16,252,193,142,16,252,193,144,16,252,193,146,16,252,193,148,16,252,193,150,16,252,193,156,16,252,193,158,16,252,193,160,16,252,193,162,16,252,193,168,16,252,193,170,16,252,193,172,16,252,193,176,16,252,193,178,16,252,193,186,16,252,193,188,16,252,193,190,16,252,193,192,16,252,193,194,16,252,193,196,16,252,193,210,16,252,193,212,16,252,193,214,16,252,193,224,16,252,193,226,16,252,193,238,16,252,193,244,16,252,193,246,16,252,193,248,16,252,193,250,16,252,193,254,16,252,193,2,17,252,193,4,17,252,193,8,17,252,193,10,17,252,193,14,17,252,193,16,17,252,193,18,17,252,193,20,17,252,193,24,17,252,193,30,17,252,193,32,17,252,193,34,17,252,193,36,17,252,193,38,17,252,193,44,17,252,193,46,17,252,193,48,17,252,193,50,17,252,193,52,17,252,193,54,17,252,193,56,17,252,193,58,17,252,193,78,17,252,193,80,17,252,193,82,17,252,193,84,17,252,193,86,17,252,193,88,17,252,193,90,17,252,193,92,17,252,193,94,17,252,193,96,17,252,193,98,17,252,193,100,17,252,193,102,17,252,193,104,17,252,193,106,17,252,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,193,128,17,252,193,130,17,252,193,230,17,252,193,232,17,252,193,234,17,252,193,236,17,252,193,238,17,252,193,240,17,252,193,242,17,252,193,244,17,252,193,246,17,252,193,48,18,252,193,50,18,252,193,52,18,252,193,54,18,252,193,134,18,252,193,136,18,252,193,138,18,252,193,140,18,252,193,142,18,252,193,144,18,252,193,146,18,252,193,148,18,252,193,244,18,252,193,246,18,252,193,248,18,252,193,250,18,252,193,252,18,252,193,254,18,252,193,2,19,252,193,86,19,252,193,188,19,252,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,128,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,193,210,17,252,193,116,18,252,193,74,19,252,193,162,19,252,193,164,19,252,193,240,19,252,193,50,20,252,193,98,20,252,193,150,20,252,193,250,20,252,193,4,21,252,193,6,21,252,193,18,21,252,193,24,21,252,193,42,21,252,193,94,21,252,193,124,21,252,193,146,21,252,193,200,21,252,193,220,21,252,193,162,22,252,193,164,22,252,193,166,22,252,193,168,22,252,193,172,23,252,193,174,23,252,193,176,23,252,193,244,24,252,193,246,24,252,193,248,24,252,193,250,24,252,193,252,24,252,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,160,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,192,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,224,41,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,193,236,18,252,193,238,18,252,193,240,18,252,193,242,18,252,193,80,19,252,193,82,19,252,193,84,19,252,193,172,19,252,193,174,19,252,193,176,19,252,193,178,19,252,193,180,19,252,193,182,19,252,193,184,19,252,193,186,19,252,193,242,19,252,193,244,19,252,193,246,19,252,193,58,20,252,193,154,20,252,193,156,20,252,193,176,20,252,193,214,20,252,193,248,20,252,193,20,21,252,193,26,21,252,193,48,21,252,193,68,21,252,193,98,21,252,193,100,21,252,193,126,21,252,193,128,21,252,193,6,19,252,193,8,19,252,193,10,19,252,193,12,19,252,193,88,19,252,193,90,19,252,193,92,19,252,193,94,19,252,193,96,19,252,193,98,19,252,193,4,20,252,193,6,20,252,193,8,20,252,193,10,20,252,193,12,20,252,193,110,20,252,193,112,20,252,193,160,20,252,193,226,20,252,193,22,21,252,193,84,21,252,193,156,21,252,193,202,21,252,193,210,21,252,193,250,21,252,193,34,22,252,193,36,22,252,193,38,22,252,193,40,22,252,193,120,22,252,193,122,22,252,193,124,22,252,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,206,0,42,0,193,100,19,252,193,102,19,252,193,104,19,252,193,106,19,252,193,108,19,252,193,110,19,252,193,112,19,252,193,114,19,252,193,116,19,252,193,118,19,252,193,120,19,252,193,122,19,252,193,124,19,252,193,126,19,252,193,128,19,252,193,130,19,252,193,132,19,252,193,134,19,252,193,136,19,252,193,138,19,252,193,140,19,252,193,142,19,252,193,144,19,252,193,146,19,252,193,148,19,252,193,150,19,252,193,152,19,252,193,154,19,252,193,156,19,252,193,158,19,252,193,196,19,252,193,198,19,252,193,200,19,252,193,202,19,252,193,204,19,252,193,206,19,252,193,208,19,252,193,210,19,252,193,212,19,252,193,214,19,252,193,216,19,252,193,218,19,252,193,220,19,252,193,222,19,252,193,224,19,252,193,226,19,252,193,228,19,252,193,230,19,252,193,232,19,252,193,234,19,252,193,236,19,252,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,193,160,19,252,193,238,19,252,193,148,20,252,193,92,21,252,193,122,21,252,193,160,21,252,193,190,21,252,193,198,21,252,193,64,22,252,193,154,22,252,193,156,22,252,193,158,22,252,193,160,22,252,193,164,23,252,193,166,23,252,193,168,23,252,193,170,23,252,193,232,24,252,193,234,24,252,193,236,24,252,193,238,24,252,193,240,24,252,193,242,24,252,193,116,26,252,193,118,26,252,193,120,26,252,193,122,26,252,193,124,26,252,193,126,26,252,193,128,26,252,193,66,28,252,193,68,28,252,193,166,19,252,193,168,19,252,193,170,19,252,193,52,20,252,193,54,20,252,193,56,20,252,193,100,20,252,193,102,20,252,193,104,20,252,193,106,20,252,193,152,20,252,193,174,20,252,193,190,20,252,193,212,20,252,193,222,20,252,193,232,20,252,193,8,21,252,193,36,21,252,193,96,21,252,193,208,21,252,193,212,21,252,193,224,21,252,193,170,22,252,193,172,22,252,193,178,23,252,193,180,23,252,193,182,23,252,193,184,23,252,193,186,23,252,193,254,24,252,193,2,25,252,193,4,25,252,193,190,19,252,193,192,19,252,193,194,19,252,193,248,19,252,193,250,19,252,193,252,19,252,193,254,19,252,193,2,20,252,193,60,20,252,193,62,20,252,193,64,20,252,193,108,20,252,193,158,20,252,193,202,20,252,193,224,20,252,193,236,20,252,193,238,20,252,193,240,20,252,193,244,20,252,193,252,20,252,193,54,21,252,193,56,21,252,193,58,21,252,193,60,21,252,193,62,21,252,193,70,21,252,193,72,21,252,193,78,21,252,193,80,21,252,193,82,21,252,193,102,21,252,193,104,21,252,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,206,32,42,0,193,66,20,252,193,68,20,252,193,70,20,252,193,72,20,252,193,74,20,252,193,76,20,252,193,78,20,252,193,80,20,252,193,82,20,252,193,84,20,252,193,86,20,252,193,88,20,252,193,90,20,252,193,92,20,252,193,94,20,252,193,96,20,252,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,206,64,42,0,193,162,20,252,193,164,20,252,193,166,20,252,193,168,20,252,193,170,20,252,193,172,20,252,193,180,20,252,193,182,20,252,193,184,20,252,193,186,20,252,193,188,20,252,193,192,20,252,193,194,20,252,193,196,20,252,193,198,20,252,193,200,20,252,193,204,20,252,193,206,20,252,193,208,20,252,193,210,20,252,193,216,20,252,193,218,20,252,193,220,20,252,193,228,20,252,193,230,20,252,193,234,20,252,193,254,20,252,193,2,21,252,193,10,21,252,193,12,21,252,193,14,21,252,193,16,21,252,193,28,21,252,193,30,21,252,193,32,21,252,193,34,21,252,193,38,21,252,193,40,21,252,193,44,21,252,193,46,21,252,193,50,21,252,193,52,21,252,193,64,21,252,193,66,21,252,193,74,21,252,193,76,21,252,193,86,21,252,193,88,21,252,193,90,21,252,193,112,21,252,193,114,21,252,193,116,21,252,193,118,21,252,193,120,21,252,193,144,21,252,193,174,21,252,193,158,21,252,193,176,21,252,193,178,21,252,193,184,21,252,193,186,21,252,193,188,21,252,193,196,21,252,193,204,21,252,193,206,21,252,193,216,21,252,193,218,21,252,193,222,21,252,193,226,21,252,193,228,21,252,193,236,21,252,193,252,21,252,193,254,21,252,193,2,22,252,193,42,22,252,193,44,22,252,193,46,22,252,193,48,22,252,193,50,22,252,193,52,22,252,193,54,22,252,193,56,22,252,193,58,22,252,193,60,22,252,193,62,22,252,193,148,21,252,193,150,21,252,193,162,21,252,193,180,21,252,193,238,21,252,193,240,21,252,193,4,22,252,193,174,22,252,193,176,22,252,193,178,22,252,193,180,22,252,193,182,22,252,193,188,23,252,193,190,23,252,193,192,23,252,193,194,23,252,193,196,23,252,193,198,23,252,193,30,25,252,193,32,25,252,193,34,25,252,193,36,25,252,193,38,25,252,193,40,25,252,193,42,25,252,193,44,25,252,193,46,25,252,193,48,25,252,193,50,25,252,193,52,25,252,193,166,26,252,193,168,26,252,193,14,22,252,193,16,22,252,193,18,22,252,193,20,22,252,193,22,22,252,193,24,22,252,193,26,22,252,193,28,22,252,193,30,22,252,193,32,22,252,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,96,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,193,126,22,252,193,128,22,252,193,130,22,252,193,132,22,252,193,134,22,252,193,136,22,252,193,138,22,252,193,140,22,252,193,142,22,252,193,144,22,252,193,146,22,252,193,148,22,252,193,150,22,252,193,152,22,252,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,128,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,193,70,23,252,193,72,23,252,193,74,23,252,193,76,23,252,193,78,23,252,193,80,23,252,193,82,23,252,193,84,23,252,193,86,23,252,193,88,23,252,193,90,23,252,193,110,24,252,193,112,24,252,193,114,24,252,193,116,24,252,193,118,24,252,193,120,24,252,193,122,24,252,193,124,24,252,193,126,24,252,193,128,24,252,193,130,24,252,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,160,42,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,206,192,42,0,193,54,25,252,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,206,224,42,0,193,226,125,252,193,92,24,252,193,94,24,252,193,96,24,252,193,98,24,252,193,100,24,252,193,102,24,252,193,104,24,252,193,106,24,252,193,108,24,252,193,56,25,252,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,0,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,193,6,25,252,193,8,25,252,193,10,25,252,193,12,25,252,193,14,25,252,193,16,25,252,193,18,25,252,193,20,25,252,193,22,25,252,193,24,25,252,193,26,25,252,193,28,25,252,193,144,26,252,193,146,26,252,193,148,26,252,193,150,26,252,193,152,26,252,193,154,26,252,193,156,26,252,193,158,26,252,193,160,26,252,193,162,26,252,193,164,26,252,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,193,58,25,252,193,60,25,252,193,62,25,252,193,64,25,252,193,66,25,252,193,68,25,252,193,70,25,252,193,72,25,252,193,74,25,252,193,76,25,252,193,78,25,252,193,80,25,252,193,82,25,252,193,192,26,252,193,84,25,252,193,86,25,252,193,88,25,252,193,90,25,252,193,92,25,252,193,94,25,252,193,96,25,252,193,98,25,252,193,194,26,252,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,32,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,64,43,0,206,64,43,0,206,64,43,0,206,64,43,0,193,108,27,252,193,110,27,252,193,112,27,252,193,114,27,252,193,116,27,252,193,118,27,252,193,120,27,252,193,122,27,252,193,124,27,252,193,126,27,252,193,128,27,252,193,130,27,252,193,132,27,252,193,134,27,252,193,136,27,252,193,138,27,252,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,96,43,0,206,192,43,0,206,192,43,0,193,130,26,252,193,132,26,252,193,134,26,252,193,136,26,252,193,138,26,252,193,140,26,252,193,142,26,252,193,96,28,252,193,98,28,252,193,100,28,252,193,102,28,252,193,104,28,252,193,106,28,252,193,108,28,252,193,110,28,252,193,112,28,252,193,114,28,252,193,116,28,252,193,118,28,252,193,120,28,252,193,122,28,252,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,193,170,26,252,193,172,26,252,193,174,26,252,193,176,26,252,193,178,26,252,193,180,26,252,193,182,26,252,193,184,26,252,193,186,26,252,193,188,26,252,193,190,26,252,193,158,28,252,193,160,28,252,193,162,28,252,193,164,28,252,193,166,28,252,193,168,28,252,193,170,28,252,193,172,28,252,193,174,28,252,193,176,28,252,193,178,28,252,193,180,28,252,193,182,28,252,193,184,28,252,193,186,28,252,193,188,28,252,193,190,28,252,193,192,28,252,193,86,31,252,193,88,31,252,193,90,31,252,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,206,128,43,0,193,194,28,252,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,160,43,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,192,43,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,193,64,28,252,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,193,70,28,252,193,72,28,252,193,74,28,252,193,76,28,252,193,78,28,252,193,80,28,252,193,82,28,252,193,84,28,252,193,86,28,252,193,88,28,252,193,90,28,252,193,92,28,252,193,230,30,252,193,232,30,252,193,234,30,252,193,236,30,252,193,238,30,252,193,240,30,252,193,242,30,252,193,244,30,252,193,246,30,252,193,248,30,252,193,250,30,252,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,206,224,43,0,193,32,31,252,193,34,31,252,193,36,31,252,193,38,31,252,193,40,31,252,193,42,31,252,193,44,31,252,193,46,31,252,193,48,31,252,193,50,31,252,193,52,31,252,193,54,31,252,193,56,31,252,193,58,31,252,193,60,31,252,193,62,31,252,193,64,31,252,193,66,31,252,193,68,31,252,193,70,31,252,193,72,31,252,193,74,31,252,193,76,31,252,193,78,31,252,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,206,0,44,0,193,116,31,252,193,120,29,252,193,122,29,252,193,124,29,252,193,126,29,252,193,128,29,252,193,130,29,252,193,132,29,252,193,134,29,252,193,136,29,252,193,138,29,252,193,140,29,252,193,142,29,252,193,144,29,252,193,146,29,252,193,148,29,252,193,150,29,252,193,152,29,252,193,154,29,252,193,156,29,252,193,158,29,252,193,118,31,252,193,120,31,252,193,160,29,252,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,193,162,29,252,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,32,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,64,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,96,44,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,206,0,45,0,193,228,30,252,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,206,128,44,0,193,120,33,252,193,122,33,252,193,124,33,252,193,126,33,252,193,128,33,252,193,130,33,252,193,132,33,252,193,134,33,252,193,136,33,252,193,138,33,252,193,140,33,252,193,142,33,252,193,144,33,252,193,146,33,252,193,148,33,252,193,150,33,252,193,152,33,252,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,193,80,31,252,193,82,31,252,193,84,31,252,193,154,33,252,193,156,33,252,193,158,33,252,193,160,33,252,193,162,33,252,193,164,33,252,193,166,33,252,193,168,33,252,193,170,33,252,193,172,33,252,193,174,33,252,193,176,33,252,193,178,33,252,193,180,33,252,193,182,33,252,193,184,33,252,193,186,33,252,193,188,33,252,193,190,33,252,193,192,33,252,193,194,33,252,193,196,33,252,193,198,33,252,193,200,33,252,193,202,33,252,193,204,33,252,193,206,33,252,193,208,33,252,193,210,33,252,193,92,31,252,193,94,31,252,193,96,31,252,193,98,31,252,193,100,31,252,193,102,31,252,193,104,31,252,193,106,31,252,193,108,31,252,193,110,31,252,193,112,31,252,193,114,31,252,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,160,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,192,44,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,193,94,32,252,193,100,36,252,193,136,34,252,193,138,34,252,193,140,34,252,193,142,34,252,193,144,34,252,193,146,34,252,193,148,34,252,193,150,34,252,193,152,34,252,193,154,34,252,193,156,34,252,193,158,34,252,193,160,34,252,193,102,36,252,193,162,34,252,193,164,34,252,193,166,34,252,193,96,32,252,193,168,34,252,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,206,224,44,0,193,194,34,252,193,196,34,252,193,198,34,252,193,200,34,252,193,202,34,252,193,204,34,252,193,206,34,252,193,208,34,252,193,210,34,252,193,212,34,252,193,214,34,252,193,216,34,252,193,218,34,252,193,220,34,252,193,222,34,252,193,224,34,252,193,226,34,252,193,228,34,252,193,230,34,252,193,232,34,252,193,234,34,252,193,236,34,252,193,238,34,252,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,32,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,206,64,45,0,193,212,35,252,193,214,35,252,193,216,35,252,193,218,35,252,193,220,35,252,193,222,35,252,193,224,35,252,193,226,35,252,193,228,35,252,193,230,35,252,193,232,35,252,193,234,35,252,193,236,35,252,193,238,35,252,193,240,35,252,193,242,35,252,193,244,35,252,193,246,35,252,193,248,35,252,193,250,35,252,193,252,35,252,193,48,38,252,193,212,33,252,193,214,33,252,193,36,36,252,193,38,36,252,193,40,36,252,193,42,36,252,193,44,36,252,193,46,36,252,193,48,36,252,193,50,36,252,193,52,36,252,193,54,36,252,193,56,36,252,193,58,36,252,193,60,36,252,193,62,36,252,193,64,36,252,193,66,36,252,193,68,36,252,193,70,36,252,193,72,36,252,193,74,36,252,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,206,96,45,0,193,76,36,252,193,78,36,252,193,80,36,252,193,82,36,252,193,84,36,252,193,86,36,252,193,88,36,252,193,90,36,252,193,92,36,252,193,94,36,252,193,96,36,252,193,98,36,252,193,154,38,252,193,156,38,252,193,158,38,252,193,160,38,252,193,162,38,252,193,164,38,252,193,166,38,252,193,168,38,252,193,170,38,252,193,172,38,252,193,174,38,252,193,176,38,252,193,178,38,252,193,180,38,252,193,182,38,252,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,206,128,45,0,193,170,34,252,193,172,34,252,193,174,34,252,193,176,34,252,193,178,34,252,193,180,34,252,193,182,34,252,193,184,34,252,193,186,34,252,193,188,34,252,193,190,34,252,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,206,224,45,0,193,190,38,252,193,168,36,252,193,170,36,252,193,172,36,252,193,174,36,252,193,176,36,252,193,178,36,252,193,180,36,252,193,192,34,252,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,160,45,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,193,210,35,252,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,206,192,45,0,193,72,38,252,193,74,38,252,193,76,38,252,193,78,38,252,193,80,38,252,193,82,38,252,193,84,38,252,193,86,38,252,193,88,38,252,193,90,38,252,193,92,38,252,193,94,38,252,193,96,38,252,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,206,0,46,0,193,192,38,252,193,10,37,252,193,12,37,252,193,14,37,252,193,16,37,252,193,18,37,252,193,20,37,252,193,22,37,252,193,24,37,252,193,26,37,252,193,28,37,252,193,30,37,252,193,32,37,252,193,34,37,252,193,36,37,252,193,38,37,252,193,40,37,252,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,206,32,46,0,193,100,39,252,193,102,39,252,193,104,39,252,193,106,39,252,193,108,39,252,193,110,39,252,193,112,39,252,193,114,39,252,193,116,39,252,193,118,39,252,193,120,39,252,193,122,39,252,193,124,39,252,193,126,39,252,193,128,39,252,193,130,39,252,193,132,39,252,193,134,39,252,193,136,39,252,193,160,41,252,193,162,41,252,193,164,41,252,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,206,64,46,0,193,138,39,252,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,206,96,46,0,193,232,37,252,193,234,37,252,193,236,37,252,193,238,37,252,193,240,37,252,193,242,37,252,193,244,37,252,193,246,37,252,193,248,37,252,193,250,37,252,193,252,37,252,193,254,37,252,193,2,38,252,193,4,38,252,193,6,38,252,193,8,38,252,193,10,38,252,193,12,38,252,193,14,38,252,193,16,38,252,193,18,38,252,193,20,38,252,193,22,38,252,193,24,38,252,193,26,38,252,193,28,38,252,193,30,38,252,193,32,38,252,193,34,38,252,193,36,38,252,193,38,38,252,193,40,38,252,193,42,38,252,193,44,38,252,193,46,38,252,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,193,50,38,252,193,52,38,252,193,54,38,252,193,56,38,252,193,58,38,252,193,60,38,252,193,62,38,252,193,64,38,252,193,66,38,252,193,68,38,252,193,70,38,252,193,142,40,252,193,144,40,252,193,146,40,252,193,148,40,252,193,150,40,252,193,152,40,252,193,154,40,252,193,156,40,252,193,158,40,252,193,160,40,252,193,162,40,252,193,164,40,252,193,166,40,252,193,168,40,252,193,170,40,252,193,172,40,252,193,174,40,252,193,176,40,252,193,130,42,252,193,132,42,252,193,134,42,252,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,128,46,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,193,184,38,252,193,186,38,252,193,188,38,252,193,22,41,252,193,24,41,252,193,26,41,252,193,28,41,252,193,30,41,252,193,32,41,252,193,34,41,252,193,36,41,252,193,38,41,252,193,40,41,252,193,42,41,252,193,44,41,252,193,46,41,252,193,48,41,252,193,208,42,252,193,210,42,252,193,212,42,252,193,214,42,252,193,216,42,252,193,218,42,252,193,220,42,252,193,222,42,252,193,18,44,252,193,20,44,252,193,22,44,252,193,24,44,252,193,26,44,252,193,28,44,252,193,30,44,252,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,206,160,46,0,193,224,42,252,193,40,39,252,193,42,39,252,193,44,39,252,193,46,39,252,193,48,39,252,193,50,39,252,193,52,39,252,193,54,39,252,193,56,39,252,193,58,39,252,193,60,39,252,193,62,39,252,193,64,39,252,193,66,39,252,193,68,39,252,193,70,39,252,193,72,39,252,193,74,39,252,193,76,39,252,193,78,39,252,193,80,39,252,193,82,39,252,193,84,39,252,193,86,39,252,193,50,41,252,193,88,39,252,193,90,39,252,193,92,39,252,193,94,39,252,193,52,41,252,193,54,41,252,193,120,41,252,193,122,41,252,193,124,41,252,193,126,41,252,193,128,41,252,193,130,41,252,193,132,41,252,193,134,41,252,193,136,41,252,193,138,41,252,193,140,41,252,193,142,41,252,193,144,41,252,193,146,41,252,193,148,41,252,193,150,41,252,193,96,39,252,193,152,41,252,193,154,41,252,193,156,41,252,193,226,42,252,193,228,42,252,193,158,41,252,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,206,192,46,0,193,196,41,252,193,90,40,252,193,92,40,252,193,94,40,252,193,96,40,252,193,98,40,252,193,100,40,252,193,102,40,252,193,104,40,252,193,106,40,252,193,108,40,252,193,110,40,252,193,112,40,252,193,114,40,252,193,116,40,252,193,118,40,252,193,120,40,252,193,122,40,252,193,124,40,252,193,126,40,252,193,128,40,252,193,130,40,252,193,132,40,252,193,70,43,252,193,134,40,252,193,136,40,252,193,138,40,252,193,140,40,252,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,206,224,46,0,193,154,42,252,193,156,42,252,193,158,42,252,193,160,42,252,193,162,42,252,193,164,42,252,193,166,42,252,193,168,42,252,193,170,42,252,193,172,42,252,193,174,42,252,193,216,43,252,193,218,43,252,193,220,43,252,193,222,43,252,193,224,43,252,193,226,43,252,193,228,43,252,193,230,43,252,193,28,45,252,193,30,45,252,193,32,45,252,193,34,45,252,193,20,46,252,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,206,0,47,0,193,176,42,252,193,178,42,252,193,180,42,252,193,182,42,252,193,184,42,252,193,186,42,252,193,188,42,252,193,190,42,252,193,192,42,252,193,194,42,252,193,196,42,252,193,198,42,252,193,200,42,252,193,202,42,252,193,204,42,252,193,206,42,252,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,193,56,41,252,193,58,41,252,193,60,41,252,193,62,41,252,193,64,41,252,193,66,41,252,193,68,41,252,193,70,41,252,193,72,41,252,193,74,41,252,193,76,41,252,193,78,41,252,193,80,41,252,193,82,41,252,193,84,41,252,193,86,41,252,193,88,41,252,193,90,41,252,193,92,41,252,193,94,41,252,193,96,41,252,193,98,41,252,193,100,41,252,193,102,41,252,193,104,41,252,193,106,41,252,193,108,41,252,193,110,41,252,193,112,41,252,193,114,41,252,193,116,41,252,193,118,41,252,193,166,41,252,193,168,41,252,193,170,41,252,193,172,41,252,193,174,41,252,193,176,41,252,193,178,41,252,193,180,41,252,193,182,41,252,193,184,41,252,193,186,41,252,193,188,41,252,193,190,41,252,193,192,41,252,193,194,41,252,193,42,43,252,193,44,43,252,193,46,43,252,193,48,43,252,193,50,43,252,193,52,43,252,193,54,43,252,193,56,43,252,193,58,43,252,193,60,43,252,193,62,43,252,193,64,43,252,193,66,43,252,193,68,43,252,193,92,44,252,193,94,44,252,193,96,44,252,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,206,32,47,0,193,136,42,252,193,138,42,252,193,140,42,252,193,142,42,252,193,144,42,252,193,146,42,252,193,148,42,252,193,150,42,252,193,194,43,252,193,196,43,252,193,198,43,252,193,200,43,252,193,202,43,252,193,204,43,252,193,206,43,252,193,208,43,252,193,210,43,252,193,212,43,252,193,214,43,252,193,14,45,252,193,16,45,252,193,18,45,252,193,20,45,252,193,22,45,252,193,24,45,252,193,26,45,252,193,6,46,252,193,8,46,252,193,10,46,252,193,12,46,252,193,14,46,252,193,16,46,252,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,206,64,47,0,193,80,45,252,193,32,43,252,193,34,43,252,193,36,43,252,193,38,43,252,193,40,43,252,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,206,96,47,0,193,106,44,252,193,190,43,252,193,192,43,252,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,206,128,47,0,193,36,45,252,193,38,45,252,193,40,45,252,193,42,45,252,193,44,45,252,193,46,45,252,193,48,45,252,193,50,45,252,193,52,45,252,193,54,45,252,193,56,45,252,193,58,45,252,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,193,32,44,252,193,34,44,252,193,60,45,252,193,62,45,252,193,64,45,252,193,66,45,252,193,68,45,252,193,70,45,252,193,72,45,252,193,74,45,252,193,76,45,252,193,78,45,252,193,64,46,252,193,66,46,252,193,68,46,252,193,70,46,252,193,224,46,252,193,226,46,252,193,128,47,252,193,204,47,252,193,206,47,252,193,130,48,252,193,198,48,252,193,40,49,252,193,42,49,252,193,44,49,252,193,46,49,252,193,48,49,252,193,50,49,252,193,228,49,252,193,230,49,252,193,232,49,252,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,160,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,193,98,44,252,193,100,44,252,193,102,44,252,193,104,44,252,193,134,45,252,193,136,45,252,193,138,45,252,193,140,45,252,193,142,45,252,193,144,45,252,193,146,45,252,193,148,45,252,193,110,46,252,193,112,46,252,193,114,46,252,193,116,46,252,193,118,46,252,193,120,46,252,193,2,47,252,193,4,47,252,193,6,47,252,193,8,47,252,193,10,47,252,193,12,47,252,193,14,47,252,193,146,47,252,193,148,47,252,193,216,47,252,193,218,47,252,193,220,47,252,193,26,48,252,193,28,48,252,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,206,192,47,0,193,150,45,252,193,228,44,252,193,230,44,252,193,232,44,252,193,152,45,252,193,234,44,252,193,236,44,252,193,238,44,252,193,240,44,252,193,242,44,252,193,244,44,252,193,246,44,252,193,248,44,252,193,250,44,252,193,252,44,252,193,254,44,252,193,2,45,252,193,4,45,252,193,6,45,252,193,8,45,252,193,10,45,252,193,12,45,252,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,206,224,47,0,193,72,46,252,193,74,46,252,193,76,46,252,193,78,46,252,193,80,46,252,193,82,46,252,193,84,46,252,193,86,46,252,193,88,46,252,193,90,46,252,193,92,46,252,193,94,46,252,193,96,46,252,193,98,46,252,193,100,46,252,193,102,46,252,193,104,46,252,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,0,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,193,22,46,252,193,24,46,252,193,26,46,252,193,28,46,252,193,30,46,252,193,204,46,252,193,206,46,252,193,208,46,252,193,210,46,252,193,212,46,252,193,214,46,252,193,108,47,252,193,110,47,252,193,112,47,252,193,194,47,252,193,196,47,252,193,50,48,252,193,52,48,252,193,126,48,252,193,138,48,252,193,16,49,252,193,18,49,252,193,20,49,252,193,22,49,252,193,24,49,252,193,26,49,252,193,28,49,252,193,196,49,252,193,198,49,252,193,200,49,252,193,202,49,252,193,204,49,252,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,206,32,48,0,193,216,46,252,193,218,46,252,193,220,46,252,193,222,46,252,193,114,47,252,193,116,47,252,193,118,47,252,193,120,47,252,193,122,47,252,193,124,47,252,193,126,47,252,193,198,47,252,193,200,47,252,193,202,47,252,193,54,48,252,193,56,48,252,193,58,48,252,193,60,48,252,193,134,48,252,193,152,48,252,193,106,46,252,193,108,46,252,193,228,46,252,193,230,46,252,193,232,46,252,193,234,46,252,193,236,46,252,193,238,46,252,193,240,46,252,193,242,46,252,193,244,46,252,193,246,46,252,193,248,46,252,193,250,46,252,193,80,48,252,193,252,46,252,193,254,46,252,193,130,47,252,193,132,47,252,193,134,47,252,193,136,47,252,193,138,47,252,193,140,47,252,193,142,47,252,193,144,47,252,193,208,47,252,193,210,47,252,193,212,47,252,193,214,47,252,193,16,48,252,193,18,48,252,193,20,48,252,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,64,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,193,198,46,252,193,200,46,252,193,202,46,252,193,98,47,252,193,100,47,252,193,102,47,252,193,104,47,252,193,106,47,252,193,190,47,252,193,192,47,252,193,12,48,252,193,14,48,252,193,48,48,252,193,150,48,252,193,10,49,252,193,12,49,252,193,14,49,252,193,182,49,252,193,184,49,252,193,186,49,252,193,188,49,252,193,190,49,252,193,192,49,252,193,194,49,252,193,174,50,252,193,176,50,252,193,178,50,252,193,180,50,252,193,182,50,252,193,184,50,252,193,186,50,252,193,188,50,252,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,96,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,206,128,48,0,193,222,47,252,193,224,47,252,193,226,47,252,193,228,47,252,193,230,47,252,193,232,47,252,193,234,47,252,193,236,47,252,193,238,47,252,193,240,47,252,193,242,47,252,193,244,47,252,193,246,47,252,193,248,47,252,193,250,47,252,193,252,47,252,193,254,47,252,193,2,48,252,193,4,48,252,193,6,48,252,193,8,48,252,193,10,48,252,193,22,48,252,193,24,48,252,193,62,48,252,193,64,48,252,193,82,48,252,193,84,48,252,193,86,48,252,193,104,48,252,193,106,48,252,193,128,48,252,193,132,48,252,193,142,48,252,193,144,48,252,193,146,48,252,193,154,48,252,193,156,48,252,193,158,48,252,193,160,48,252,193,162,48,252,193,164,48,252,193,200,48,252,193,202,48,252,193,204,48,252,193,206,48,252,193,208,48,252,193,210,48,252,193,212,48,252,193,214,48,252,193,216,48,252,193,218,48,252,193,220,48,252,193,222,48,252,193,30,48,252,193,32,48,252,193,34,48,252,193,36,48,252,193,38,48,252,193,40,48,252,193,42,48,252,193,44,48,252,193,46,48,252,193,66,48,252,193,68,48,252,193,70,48,252,193,72,48,252,193,74,48,252,193,76,48,252,193,78,48,252,193,90,48,252,193,92,48,252,193,94,48,252,193,96,48,252,193,98,48,252,193,100,48,252,193,102,48,252,193,108,48,252,193,110,48,252,193,112,48,252,193,114,48,252,193,116,48,252,193,118,48,252,193,120,48,252,193,122,48,252,193,124,48,252,193,88,48,252,193,168,48,252,193,170,48,252,193,226,48,252,193,228,48,252,193,230,48,252,193,110,49,252,193,112,49,252,193,114,49,252,193,116,49,252,193,118,49,252,193,56,50,252,193,58,50,252,193,60,50,252,193,62,50,252,193,64,50,252,193,66,50,252,193,68,50,252,193,70,50,252,193,64,51,252,193,66,51,252,193,68,51,252,193,70,51,252,193,72,51,252,193,74,51,252,193,110,52,252,193,112,52,252,193,114,52,252,193,116,52,252,193,118,52,252,193,120,52,252,193,122,52,252,193,136,48,252,193,140,48,252,193,148,48,252,193,172,48,252,193,174,48,252,193,176,48,252,193,178,48,252,193,180,48,252,193,182,48,252,193,184,48,252,193,186,48,252,193,188,48,252,193,190,48,252,193,232,48,252,193,234,48,252,193,236,48,252,193,238,48,252,193,240,48,252,193,242,48,252,193,244,48,252,193,246,48,252,193,248,48,252,193,250,48,252,193,252,48,252,193,254,48,252,193,2,49,252,193,4,49,252,193,6,49,252,193,8,49,252,193,120,49,252,193,122,49,252,193,124,49,252,193,224,48,252,193,52,49,252,193,54,49,252,193,56,49,252,193,58,49,252,193,60,49,252,193,62,49,252,193,166,48,252,193,64,49,252,193,66,49,252,193,68,49,252,193,70,49,252,193,72,49,252,193,74,49,252,193,76,49,252,193,78,49,252,193,80,49,252,193,82,49,252,193,84,49,252,193,86,49,252,193,88,49,252,193,90,49,252,193,92,49,252,193,94,49,252,193,96,49,252,193,98,49,252,193,100,49,252,193,102,49,252,193,104,49,252,193,106,49,252,193,108,49,252,193,236,49,252,193,192,48,252,193,194,48,252,193,196,48,252,193,30,49,252,193,32,49,252,193,34,49,252,193,36,49,252,193,38,49,252,193,208,49,252,193,210,49,252,193,212,49,252,193,214,49,252,193,216,49,252,193,218,49,252,193,220,49,252,193,222,49,252,193,224,49,252,193,226,49,252,193,200,50,252,193,202,50,252,193,204,50,252,193,206,50,252,193,208,50,252,193,210,50,252,193,212,50,252,193,214,50,252,193,216,50,252,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,193,126,49,252,193,128,49,252,193,130,49,252,193,132,49,252,193,134,49,252,193,136,49,252,193,138,49,252,193,140,49,252,193,142,49,252,193,144,49,252,193,146,49,252,193,148,49,252,193,150,49,252,193,152,49,252,193,154,49,252,193,156,49,252,193,158,49,252,193,160,49,252,193,162,49,252,193,164,49,252,193,166,49,252,193,168,49,252,193,170,49,252,193,172,49,252,193,174,49,252,193,176,49,252,193,178,49,252,193,180,49,252,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,193,206,49,252,193,196,50,252,193,198,50,252,193,202,51,252,193,204,51,252,193,206,51,252,193,208,51,252,193,210,51,252,193,212,51,252,193,14,53,252,193,16,53,252,193,18,53,252,193,20,53,252,193,22,53,252,193,24,53,252,193,26,53,252,193,28,53,252,193,30,53,252,193,32,53,252,193,34,53,252,193,36,53,252,193,38,53,252,193,40,53,252,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,193,234,49,252,193,218,50,252,193,220,50,252,193,222,50,252,193,224,50,252,193,226,50,252,193,228,50,252,193,230,50,252,193,236,51,252,193,238,51,252,193,240,51,252,193,242,51,252,193,244,51,252,193,246,51,252,193,248,51,252,193,250,51,252,193,252,51,252,193,254,51,252,193,2,52,252,193,4,52,252,193,6,52,252,193,8,52,252,193,10,52,252,193,12,52,252,193,14,52,252,193,16,52,252,193,18,52,252,193,20,52,252,193,22,52,252,193,24,52,252,193,26,52,252,193,78,53,252,193,238,49,252,193,240,49,252,193,242,49,252,193,244,49,252,193,246,49,252,193,248,49,252,193,250,49,252,193,252,49,252,193,254,49,252,193,2,50,252,193,4,50,252,193,6,50,252,193,8,50,252,193,10,50,252,193,12,50,252,193,14,50,252,193,16,50,252,193,18,50,252,193,20,50,252,193,22,50,252,193,24,50,252,193,26,50,252,193,28,50,252,193,30,50,252,193,32,50,252,193,34,50,252,193,36,50,252,193,38,50,252,193,40,50,252,193,42,50,252,193,44,50,252,193,46,50,252,193,48,50,252,193,50,50,252,193,52,50,252,193,54,50,252,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,160,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,193,190,50,252,193,192,50,252,193,194,50,252,193,184,51,252,193,186,51,252,193,188,51,252,193,190,51,252,193,192,51,252,193,194,51,252,193,196,51,252,193,198,51,252,193,250,52,252,193,252,52,252,193,254,52,252,193,2,53,252,193,4,53,252,193,6,53,252,193,8,53,252,193,10,53,252,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,192,48,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,206,224,48,0,193,128,52,252,193,130,52,252,193,132,52,252,193,134,52,252,193,136,52,252,193,138,52,252,193,140,52,252,193,142,52,252,193,144,52,252,193,146,52,252,193,148,52,252,193,150,52,252,193,152,52,252,193,154,52,252,193,156,52,252,193,158,52,252,193,160,52,252,193,162,52,252,193,164,52,252,193,166,52,252,193,168,52,252,193,170,52,252,193,172,52,252,193,174,52,252,193,176,52,252,193,178,52,252,193,180,52,252,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,206,0,49,0,193,42,53,252,193,44,53,252,193,46,53,252,193,48,53,252,193,50,53,252,193,52,53,252,193,54,53,252,193,56,53,252,193,58,53,252,193,60,53,252,193,62,53,252,193,64,53,252,193,66,53,252,193,68,53,252,193,70,53,252,193,72,53,252,193,74,53,252,193,76,53,252,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,206,32,49,0,193,106,53,252,193,102,52,252,193,104,52,252,193,106,52,252,193,108,52,252,193,108,53,252,193,110,53,252,193,112,53,252,193,114,53,252,193,116,53,252,193,118,53,252,193,120,53,252,193,124,52,252,193,126,52,252,193,190,53,252,193,192,53,252,193,194,53,252,193,196,53,252,193,198,53,252,193,200,53,252,193,202,53,252,193,204,53,252,193,206,53,252,193,208,53,252,193,210,53,252,193,212,53,252,193,110,55,252,193,112,55,252,193,114,55,252,193,116,55,252,193,118,55,252,193,120,55,252,193,122,55,252,193,124,55,252,193,126,55,252,193,128,55,252,193,130,55,252,193,132,55,252,193,134,55,252,193,136,55,252,193,138,55,252,193,140,55,252,193,142,55,252,193,250,56,252,193,182,52,252,193,184,52,252,193,186,52,252,193,188,52,252,193,190,52,252,193,192,52,252,193,194,52,252,193,196,52,252,193,198,52,252,193,200,52,252,193,202,52,252,193,204,52,252,193,206,52,252,193,208,52,252,193,210,52,252,193,212,52,252,193,214,52,252,193,216,52,252,193,218,52,252,193,220,52,252,193,222,52,252,193,224,52,252,193,226,52,252,193,228,52,252,193,230,52,252,193,232,52,252,193,234,52,252,193,236,52,252,193,238,52,252,193,240,52,252,193,242,52,252,193,244,52,252,193,246,52,252,193,248,52,252,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,193,12,53,252,193,192,57,252,193,84,69,252,193,132,73,252,193,132,75,252,193,94,80,252,193,244,81,252,193,216,83,252,193,214,85,252,193,162,86,252,193,220,92,252,193,226,95,252,193,40,100,252,193,192,103,252,193,152,107,252,193,214,110,252,193,2,111,252,193,232,111,252,193,108,115,252,193,56,116,252,193,128,136,252,193,24,137,252,193,114,139,252,193,154,142,252,193,232,143,252,193,42,148,252,193,84,152,252,193,132,152,252,193,52,153,252,193,148,160,252,193,150,160,252,193,152,160,252,193,80,53,252,193,82,53,252,193,84,53,252,193,86,53,252,193,88,53,252,193,90,53,252,193,92,53,252,193,94,53,252,193,96,53,252,193,98,53,252,193,100,53,252,193,102,53,252,193,104,53,252,193,224,54,252,193,226,54,252,193,228,54,252,193,230,54,252,193,232,54,252,193,234,54,252,193,236,54,252,193,238,54,252,193,240,54,252,193,242,54,252,193,244,54,252,193,246,54,252,193,248,54,252,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,193,122,53,252,193,124,53,252,193,126,53,252,193,128,53,252,193,130,53,252,193,132,53,252,193,134,53,252,193,136,53,252,193,138,53,252,193,140,53,252,193,142,53,252,193,144,53,252,193,146,53,252,193,148,53,252,193,150,53,252,193,152,53,252,193,154,53,252,193,156,53,252,193,158,53,252,193,160,53,252,193,162,53,252,193,164,53,252,193,166,53,252,193,168,53,252,193,170,53,252,193,172,53,252,193,174,53,252,193,176,53,252,193,178,53,252,193,180,53,252,193,182,53,252,193,184,53,252,193,186,53,252,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,206,192,49,0,193,188,53,252,193,86,55,252,193,88,55,252,193,90,55,252,193,92,55,252,193,94,55,252,193,96,55,252,193,98,55,252,193,100,55,252,193,102,55,252,193,104,55,252,193,182,56,252,193,106,55,252,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,64,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,96,49,0,206,96,49,0,206,96,49,0,206,96,49,0,193,60,56,252,193,62,56,252,193,64,56,252,193,66,56,252,193,68,56,252,193,70,56,252,193,72,56,252,193,74,56,252,193,76,56,252,193,78,56,252,193,80,56,252,193,82,56,252,193,84,56,252,193,86,56,252,193,162,57,252,193,164,57,252,193,166,57,252,193,168,57,252,193,170,57,252,193,172,57,252,193,174,57,252,193,176,57,252,193,178,57,252,193,180,57,252,193,182,57,252,193,184,57,252,193,186,57,252,193,188,57,252,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,206,128,49,0,193,88,56,252,193,90,56,252,193,92,56,252,193,94,56,252,193,96,56,252,193,98,56,252,193,100,56,252,193,102,56,252,193,104,56,252,193,194,57,252,193,196,57,252,193,198,57,252,193,200,57,252,193,202,57,252,193,204,57,252,193,206,57,252,193,208,57,252,193,210,57,252,193,212,57,252,193,214,57,252,193,216,57,252,193,218,57,252,193,8,59,252,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,206,160,49,0,193,106,56,252,193,108,56,252,193,110,56,252,193,112,56,252,193,114,56,252,193,116,56,252,193,118,56,252,193,120,56,252,193,122,56,252,193,124,56,252,193,126,56,252,193,128,56,252,193,130,56,252,193,132,56,252,193,134,56,252,193,136,56,252,193,138,56,252,193,140,56,252,193,142,56,252,193,144,56,252,193,146,56,252,193,148,56,252,193,150,56,252,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,206,224,49,0,193,4,184,253,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,0,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,193,58,56,252,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,193,152,56,252,193,154,56,252,193,220,57,252,193,222,57,252,193,224,57,252,193,226,57,252,193,228,57,252,193,230,57,252,193,232,57,252,193,234,57,252,193,236,57,252,193,238,57,252,193,240,57,252,193,242,57,252,193,244,57,252,193,246,57,252,193,248,57,252,193,250,57,252,193,252,57,252,193,20,59,252,193,22,59,252,193,24,59,252,193,26,59,252,193,28,59,252,193,30,59,252,193,32,59,252,193,34,59,252,193,36,59,252,193,38,59,252,193,120,60,252,193,122,60,252,193,124,60,252,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,206,32,50,0,193,254,57,252,193,2,58,252,193,4,58,252,193,6,58,252,193,8,58,252,193,10,58,252,193,12,58,252,193,14,58,252,193,16,58,252,193,40,59,252,193,42,59,252,193,44,59,252,193,46,59,252,193,48,59,252,193,50,59,252,193,52,59,252,193,54,59,252,193,56,59,252,193,150,60,252,193,152,60,252,193,154,60,252,193,156,60,252,193,158,60,252,193,160,60,252,193,162,60,252,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,64,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,206,160,50,0,193,246,56,252,193,42,58,252,193,44,58,252,193,46,58,252,193,48,58,252,193,50,58,252,193,52,58,252,193,54,58,252,193,56,58,252,193,58,58,252,193,60,58,252,193,62,58,252,193,64,58,252,193,66,58,252,193,68,58,252,193,70,58,252,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,193,248,56,252,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,193,252,56,252,193,254,56,252,193,2,57,252,193,4,57,252,193,6,57,252,193,8,57,252,193,10,57,252,193,12,57,252,193,14,57,252,193,16,57,252,193,18,57,252,193,78,58,252,193,80,58,252,193,82,58,252,193,84,58,252,193,86,58,252,193,88,58,252,193,90,58,252,193,92,58,252,193,140,59,252,193,142,59,252,193,144,59,252,193,146,59,252,193,148,59,252,193,150,59,252,193,152,59,252,193,154,59,252,193,156,59,252,193,158,59,252,193,160,59,252,193,222,60,252,193,224,60,252,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,206,96,50,0,193,94,58,252,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,206,128,50,0,193,190,57,252,193,244,58,252,193,246,58,252,193,248,58,252,193,250,58,252,193,252,58,252,193,254,58,252,193,2,59,252,193,4,59,252,193,6,59,252,193,84,60,252,193,86,60,252,193,88,60,252,193,90,60,252,193,92,60,252,193,94,60,252,193,96,60,252,193,98,60,252,193,100,60,252,193,102,60,252,193,74,61,252,193,76,61,252,193,78,61,252,193,80,61,252,193,82,61,252,193,84,61,252,193,86,61,252,193,88,61,252,193,6,62,252,193,8,62,252,193,10,62,252,193,12,62,252,193,160,213,253,193,172,213,253,193,198,213,253,193,210,213,253,193,212,213,253,193,220,213,253,193,222,213,253,193,238,213,253,193,240,213,253,193,242,213,253,193,250,213,253,193,252,213,253,193,110,214,253,193,124,214,253,193,132,214,253,193,158,214,253,193,218,214,253,193,252,214,253,193,254,214,253,193,18,215,253,193,40,215,253,193,42,215,253,193,44,215,253,193,46,215,253,193,48,215,253,193,72,58,252,193,84,215,253,193,86,215,253,193,88,215,253,193,90,215,253,193,92,215,253,193,128,215,253,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,206,192,50,0,193,162,59,252,193,146,58,252,193,148,58,252,193,150,58,252,193,152,58,252,193,154,58,252,193,156,58,252,193,158,58,252,193,160,58,252,193,162,58,252,193,164,58,252,193,166,58,252,193,168,58,252,193,170,58,252,193,172,58,252,193,174,58,252,193,176,58,252,193,178,58,252,193,180,58,252,193,182,58,252,193,184,58,252,193,186,58,252,193,188,58,252,193,96,236,252,193,190,58,252,193,228,140,253,193,192,58,252,193,194,58,252,193,196,58,252,193,198,58,252,193,200,58,252,193,202,58,252,193,204,58,252,193,206,58,252,193,208,58,252,193,210,58,252,193,212,58,252,193,214,58,252,193,216,58,252,193,218,58,252,193,220,58,252,193,222,58,252,193,224,58,252,193,226,58,252,193,228,58,252,193,230,58,252,193,232,58,252,193,234,58,252,193,236,58,252,193,238,58,252,193,240,58,252,193,242,58,252,193,164,59,252,193,166,59,252,193,168,59,252,193,10,59,252,193,12,59,252,193,14,59,252,193,16,59,252,193,18,59,252,193,104,60,252,193,106,60,252,193,108,60,252,193,110,60,252,193,112,60,252,193,114,60,252,193,116,60,252,193,118,60,252,193,90,61,252,193,92,61,252,193,94,61,252,193,96,61,252,193,16,62,252,193,18,62,252,193,20,62,252,193,148,62,252,193,150,62,252,193,152,62,252,193,154,62,252,193,156,62,252,193,44,63,252,193,46,63,252,193,48,63,252,193,50,63,252,193,52,63,252,193,214,63,252,193,6,64,252,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,206,224,50,0,193,170,60,252,193,170,59,252,193,172,59,252,193,174,59,252,193,176,59,252,193,178,59,252,193,180,59,252,193,182,59,252,193,184,59,252,193,186,59,252,193,188,59,252,193,190,59,252,193,192,59,252,193,194,59,252,193,196,59,252,193,198,59,252,193,200,59,252,193,202,59,252,193,204,59,252,193,206,59,252,193,208,59,252,193,210,59,252,193,212,59,252,193,214,59,252,193,216,59,252,193,218,59,252,193,220,59,252,193,222,59,252,193,224,59,252,193,226,59,252,193,228,59,252,193,230,59,252,193,232,59,252,193,234,59,252,193,236,59,252,193,238,59,252,193,240,59,252,193,242,59,252,193,244,59,252,193,246,59,252,193,248,59,252,193,250,59,252,193,252,59,252,193,254,59,252,193,2,60,252,193,4,60,252,193,6,60,252,193,8,60,252,193,10,60,252,193,12,60,252,193,14,60,252,193,16,60,252,193,18,60,252,193,20,60,252,193,22,60,252,193,24,60,252,193,26,60,252,193,28,60,252,193,30,60,252,193,32,60,252,193,34,60,252,193,36,60,252,193,38,60,252,193,40,60,252,193,42,60,252,193,126,60,252,193,128,60,252,193,130,60,252,193,132,60,252,193,134,60,252,193,136,60,252,193,138,60,252,193,140,60,252,193,142,60,252,193,144,60,252,193,146,60,252,193,148,60,252,193,98,61,252,193,100,61,252,193,102,61,252,193,104,61,252,193,106,61,252,193,108,61,252,193,110,61,252,193,112,61,252,193,114,61,252,193,116,61,252,193,118,61,252,193,120,61,252,193,122,61,252,193,124,61,252,193,22,62,252,193,24,62,252,193,26,62,252,193,28,62,252,193,30,62,252,193,32,62,252,193,164,60,252,193,166,60,252,193,168,60,252,193,126,61,252,193,128,61,252,193,130,61,252,193,132,61,252,193,134,61,252,193,136,61,252,193,138,61,252,193,38,62,252,193,40,62,252,193,42,62,252,193,44,62,252,193,46,62,252,193,48,62,252,193,162,62,252,193,164,62,252,193,166,62,252,193,168,62,252,193,60,63,252,193,62,63,252,193,64,63,252,193,66,63,252,193,68,63,252,193,70,63,252,193,126,63,252,193,234,63,252,193,96,64,252,193,140,64,252,193,164,64,252,193,166,64,252,193,172,60,252,193,174,60,252,193,176,60,252,193,178,60,252,193,180,60,252,193,182,60,252,193,184,60,252,193,186,60,252,193,188,60,252,193,190,60,252,193,192,60,252,193,194,60,252,193,196,60,252,193,198,60,252,193,200,60,252,193,202,60,252,193,204,60,252,193,206,60,252,193,208,60,252,193,210,60,252,193,212,60,252,193,214,60,252,193,216,60,252,193,218,60,252,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,193,226,60,252,193,228,60,252,193,230,60,252,193,232,60,252,193,164,61,252,193,166,61,252,193,72,62,252,193,74,62,252,193,190,62,252,193,76,62,252,193,192,62,252,193,194,62,252,193,196,62,252,193,78,63,252,193,138,63,252,193,176,63,252,193,178,63,252,193,10,64,252,193,72,64,252,193,74,64,252,193,168,64,252,193,2,65,252,193,170,65,252,193,178,65,252,193,188,65,252,193,204,65,252,193,222,65,252,193,52,66,252,193,120,66,252,193,10,67,252,193,12,67,252,193,66,67,252,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,206,0,51,0,193,168,61,252,193,170,61,252,193,172,61,252,193,174,61,252,193,176,61,252,193,178,61,252,193,180,61,252,193,182,61,252,193,184,61,252,193,186,61,252,193,188,61,252,193,190,61,252,193,192,61,252,193,194,61,252,193,196,61,252,193,198,61,252,193,200,61,252,193,202,61,252,193,204,61,252,193,206,61,252,193,208,61,252,193,210,61,252,193,212,61,252,193,214,61,252,193,216,61,252,193,218,61,252,193,220,61,252,193,222,61,252,206,32,51,0,206,32,51,0,206,32,51,0,206,32,51,0,193,50,62,252,193,52,62,252,193,54,62,252,193,56,62,252,193,58,62,252,193,60,62,252,193,62,62,252,193,170,62,252,193,64,62,252,193,66,62,252,193,68,62,252,193,172,62,252,193,174,62,252,193,176,62,252,193,178,62,252,193,180,62,252,193,182,62,252,193,70,62,252,193,184,62,252,193,186,62,252,193,188,62,252,193,72,63,252,193,74,63,252,193,76,63,252,193,128,63,252,193,130,63,252,193,132,63,252,193,134,63,252,193,224,61,252,193,226,61,252,193,228,61,252,193,248,213,252,193,230,61,252,193,232,61,252,193,234,61,252,193,236,61,252,193,238,61,252,193,240,61,252,193,242,61,252,193,244,61,252,193,246,61,252,193,248,61,252,193,250,61,252,193,252,61,252,193,254,61,252,193,2,62,252,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,193,248,217,252,193,254,217,252,193,2,218,252,193,4,218,252,193,6,218,252,193,8,218,252,193,10,218,252,193,12,218,252,193,4,62,252,193,24,218,252,193,26,218,252,193,28,218,252,193,30,218,252,193,38,218,252,193,40,218,252,193,32,218,252,193,42,218,252,193,44,218,252,193,46,218,252,193,48,218,252,193,50,218,252,193,52,218,252,193,54,218,252,193,56,218,252,193,58,218,252,193,60,218,252,193,64,218,252,193,66,218,252,193,72,218,252,193,76,218,252,193,78,218,252,193,80,218,252,193,14,62,252,193,144,62,252,193,146,62,252,193,38,63,252,193,40,63,252,193,42,63,252,193,166,63,252,193,168,63,252,193,212,63,252,193,228,63,252,193,2,64,252,193,4,64,252,193,24,64,252,193,66,64,252,193,134,64,252,193,178,64,252,193,204,64,252,193,206,64,252,193,208,64,252,193,210,64,252,193,238,64,252,193,240,64,252,193,40,65,252,193,42,65,252,193,86,65,252,193,88,65,252,193,148,65,252,193,184,65,252,193,192,65,252,193,226,65,252,193,110,66,252,193,138,66,252,193,34,62,252,193,36,62,252,193,158,62,252,193,160,62,252,193,54,63,252,193,56,63,252,193,58,63,252,193,170,63,252,193,230,63,252,193,232,63,252,193,94,64,252,193,138,64,252,193,156,64,252,193,158,64,252,193,160,64,252,193,162,64,252,193,184,64,252,193,216,64,252,193,246,64,252,193,248,64,252,193,18,65,252,193,20,65,252,193,48,65,252,193,64,65,252,193,66,65,252,193,104,65,252,193,154,65,252,193,162,65,252,193,194,65,252,193,216,65,252,193,28,66,252,193,30,66,252,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,206,64,51,0,193,198,62,252,193,200,62,252,193,202,62,252,193,204,62,252,193,206,62,252,193,208,62,252,193,210,62,252,193,212,62,252,193,214,62,252,193,216,62,252,193,218,62,252,193,220,62,252,193,222,62,252,193,224,62,252,193,226,62,252,193,228,62,252,193,230,62,252,193,232,62,252,193,234,62,252,193,236,62,252,193,238,62,252,193,240,62,252,193,242,62,252,193,244,62,252,193,246,62,252,193,248,62,252,193,250,62,252,193,252,62,252,193,254,62,252,193,2,63,252,193,4,63,252,193,6,63,252,193,8,63,252,193,10,63,252,193,12,63,252,193,14,63,252,193,16,63,252,193,18,63,252,193,20,63,252,193,22,63,252,193,24,63,252,193,26,63,252,193,28,63,252,193,30,63,252,193,32,63,252,193,34,63,252,193,80,63,252,193,82,63,252,193,84,63,252,193,86,63,252,193,88,63,252,193,90,63,252,193,92,63,252,193,36,63,252,193,140,63,252,193,94,63,252,193,96,63,252,193,98,63,252,193,100,63,252,193,102,63,252,193,104,63,252,193,106,63,252,193,108,63,252,193,110,63,252,193,112,63,252,193,114,63,252,193,116,63,252,193,118,63,252,193,120,63,252,193,122,63,252,193,124,63,252,193,142,63,252,193,144,63,252,193,180,63,252,193,146,63,252,193,148,63,252,193,150,63,252,193,136,63,252,193,172,63,252,193,174,63,252,193,216,63,252,193,236,63,252,193,238,63,252,193,240,63,252,193,26,64,252,193,36,64,252,193,42,64,252,193,48,64,252,193,50,64,252,193,68,64,252,193,70,64,252,193,98,64,252,193,100,64,252,193,102,64,252,193,142,64,252,193,188,64,252,193,254,64,252,193,24,65,252,193,94,65,252,193,150,65,252,193,152,65,252,193,164,65,252,193,176,65,252,193,202,65,252,193,218,65,252,193,228,65,252,193,238,65,252,193,248,65,252,193,16,66,252,193,152,63,252,193,154,63,252,193,156,63,252,193,158,63,252,193,160,63,252,193,162,63,252,193,164,63,252,193,182,63,252,193,184,63,252,193,186,63,252,193,188,63,252,193,190,63,252,193,192,63,252,193,194,63,252,193,196,63,252,193,30,215,252,193,198,63,252,193,200,63,252,193,202,63,252,193,204,63,252,193,206,63,252,193,208,63,252,193,210,63,252,193,218,63,252,193,220,63,252,193,222,63,252,193,224,63,252,193,226,63,252,193,242,63,252,193,244,63,252,193,246,63,252,193,70,218,252,193,248,63,252,193,250,63,252,193,252,63,252,193,254,63,252,193,12,64,252,193,14,64,252,193,16,64,252,193,18,64,252,193,20,64,252,193,22,64,252,193,28,64,252,193,38,64,252,193,30,64,252,193,40,64,252,193,44,64,252,193,52,64,252,193,54,64,252,193,56,64,252,193,58,64,252,193,60,64,252,193,62,64,252,193,64,64,252,193,76,64,252,193,78,64,252,193,80,64,252,193,82,64,252,193,84,64,252,193,86,64,252,193,88,64,252,193,104,64,252,193,106,64,252,193,108,64,252,193,8,64,252,193,32,64,252,193,34,64,252,193,46,64,252,193,90,64,252,193,92,64,252,193,136,64,252,193,152,64,252,193,154,64,252,193,180,64,252,193,182,64,252,193,212,64,252,193,214,64,252,193,242,64,252,193,244,64,252,193,14,65,252,193,16,65,252,193,44,65,252,193,46,65,252,193,60,65,252,193,62,65,252,193,90,65,252,193,92,65,252,193,112,65,252,193,126,65,252,193,128,65,252,193,146,65,252,193,160,65,252,193,212,65,252,193,6,66,252,193,12,66,252,193,62,66,252,193,186,64,252,193,218,64,252,193,220,64,252,193,222,64,252,193,224,64,252,193,250,64,252,193,252,64,252,193,50,65,252,193,68,65,252,193,138,65,252,193,140,65,252,193,174,65,252,193,186,65,252,193,200,65,252,193,44,66,252,193,46,66,252,193,48,66,252,193,72,66,252,193,90,66,252,193,116,66,252,193,118,66,252,193,152,66,252,193,186,66,252,193,246,66,252,193,248,66,252,193,30,67,252,193,32,67,252,193,60,67,252,193,62,67,252,193,64,67,252,193,108,67,252,193,152,67,252,193,234,64,252,193,236,64,252,193,4,65,252,193,6,65,252,193,8,65,252,193,10,65,252,193,12,65,252,193,26,65,252,193,28,65,252,193,30,65,252,193,32,65,252,193,34,65,252,193,36,65,252,193,38,65,252,193,52,65,252,193,54,65,252,193,56,65,252,193,58,65,252,193,70,65,252,193,72,65,252,193,74,65,252,193,76,65,252,193,78,65,252,193,80,65,252,193,82,65,252,193,96,65,252,193,106,65,252,193,98,65,252,193,84,65,252,193,100,65,252,193,102,65,252,193,108,65,252,193,110,65,252,193,182,189,252,193,114,65,252,193,116,65,252,193,118,65,252,193,120,65,252,193,122,65,252,193,124,65,252,193,130,65,252,193,132,65,252,193,134,65,252,193,136,65,252,193,142,65,252,193,144,65,252,193,156,65,252,193,158,65,252,193,166,65,252,193,168,65,252,193,172,65,252,193,180,65,252,193,182,65,252,193,190,65,252,193,196,65,252,193,198,65,252,193,206,65,252,193,208,65,252,193,210,65,252,193,214,65,252,193,220,65,252,193,224,65,252,193,230,65,252,193,232,65,252,193,234,65,252,193,236,65,252,193,240,65,252,193,242,65,252,193,244,65,252,193,246,65,252,193,252,65,252,193,254,65,252,193,2,66,252,193,4,66,252,193,18,66,252,193,20,66,252,193,22,66,252,193,24,66,252,193,26,66,252,193,34,66,252,193,36,66,252,193,38,66,252,193,54,66,252,193,56,66,252,193,58,66,252,193,60,66,252,193,76,66,252,193,78,66,252,193,80,66,252,193,82,66,252,193,84,66,252,206,96,51,0,206,96,51,0,206,96,51,0,206,96,51,0,206,96,51,0,193,32,66,252,193,50,66,252,193,74,66,252,193,154,66,252,193,162,66,252,193,174,66,252,193,206,66,252,193,252,66,252,193,8,67,252,193,34,67,252,193,36,67,252,193,110,67,252,193,112,67,252,193,114,67,252,193,154,67,252,193,156,67,252,193,158,67,252,193,160,67,252,193,162,67,252,193,184,67,252,193,186,67,252,193,202,67,252,193,204,67,252,193,206,67,252,193,18,68,252,193,28,68,252,193,68,68,252,193,94,68,252,193,96,68,252,193,102,68,252,193,104,68,252,193,106,68,252,193,40,66,252,193,42,66,252,193,68,66,252,193,70,66,252,193,86,66,252,193,88,66,252,193,114,66,252,193,216,66,252,193,222,66,252,193,28,67,252,193,56,67,252,193,58,67,252,193,106,67,252,193,4,68,252,193,16,68,252,193,40,68,252,193,44,68,252,193,56,68,252,193,80,68,252,193,100,68,252,193,118,68,252,193,238,68,252,193,240,68,252,193,242,68,252,193,244,68,252,193,246,68,252,193,88,69,252,193,90,69,252,193,92,69,252,193,94,69,252,193,158,69,252,193,160,69,252,193,64,66,252,193,66,66,252,193,112,66,252,193,140,66,252,193,142,66,252,193,144,66,252,193,146,66,252,193,148,66,252,193,150,66,252,193,172,66,252,193,184,66,252,193,200,66,252,193,202,66,252,193,204,66,252,193,220,66,252,193,228,66,252,193,232,66,252,193,234,66,252,193,250,66,252,193,24,67,252,193,26,67,252,193,104,67,252,193,26,68,252,193,54,68,252,193,86,68,252,193,116,68,252,193,146,68,252,193,234,68,252,193,236,68,252,193,86,69,252,193,154,69,252,193,156,69,252,206,96,51,0,206,96,51,0,206,96,51,0,206,96,51,0,193,122,66,252,193,124,66,252,193,126,66,252,193,128,66,252,193,130,66,252,193,132,66,252,193,134,66,252,193,136,66,252,193,156,66,252,193,158,66,252,193,160,66,252,193,164,66,252,193,166,66,252,193,168,66,252,193,170,66,252,193,176,66,252,193,178,66,252,193,180,66,252,193,188,66,252,193,190,66,252,193,192,66,252,193,194,66,252,193,196,66,252,193,198,66,252,193,208,66,252,193,210,66,252,193,212,66,252,193,214,66,252,193,182,66,252,193,218,66,252,193,84,67,252,193,100,67,252,193,102,67,252,193,150,67,252,193,244,67,252,193,38,68,252,193,78,68,252,193,144,68,252,193,80,69,252,193,82,69,252,193,148,69,252,193,150,69,252,193,152,69,252,193,78,70,252,193,182,70,252,193,24,71,252,193,26,71,252,193,28,71,252,193,104,71,252,193,160,71,252,193,6,72,252,193,238,72,252,193,128,73,252,193,130,73,252,193,46,74,252,193,48,74,252,193,212,74,252,193,214,74,252,193,124,75,252,193,126,75,252,193,224,66,252,193,226,66,252,193,230,66,252,193,236,66,252,193,238,66,252,193,240,66,252,193,242,66,252,193,244,66,252,193,254,66,252,193,2,67,252,193,4,67,252,193,6,67,252,193,14,67,252,193,16,67,252,193,18,67,252,193,20,67,252,193,22,67,252,193,38,67,252,193,40,67,252,193,42,67,252,193,44,67,252,193,46,67,252,193,48,67,252,193,50,67,252,193,52,67,252,193,54,67,252,193,72,67,252,193,74,67,252,193,76,67,252,193,78,67,252,193,80,67,252,193,82,67,252,193,68,67,252,193,70,67,252,193,188,67,252,193,246,67,252,193,6,68,252,193,22,68,252,193,30,68,252,193,48,68,252,193,108,68,252,193,132,68,252,193,134,68,252,193,168,68,252,193,170,68,252,193,172,68,252,193,174,68,252,193,176,68,252,193,20,69,252,193,22,69,252,193,24,69,252,193,26,69,252,193,28,69,252,193,120,69,252,193,122,69,252,193,124,69,252,193,126,69,252,193,176,69,252,193,178,69,252,193,180,69,252,193,182,69,252,193,184,69,252,193,186,69,252,193,188,69,252,193,86,67,252,193,88,67,252,193,90,67,252,193,92,67,252,193,94,67,252,193,96,67,252,193,98,67,252,193,116,67,252,193,118,67,252,193,120,67,252,193,122,67,252,193,124,67,252,193,126,67,252,193,128,67,252,193,130,67,252,193,132,67,252,193,134,67,252,193,136,67,252,193,138,67,252,193,140,67,252,193,142,67,252,193,144,67,252,193,146,67,252,193,148,67,252,193,164,67,252,193,166,67,252,193,168,67,252,193,170,67,252,193,172,67,252,193,174,67,252,193,176,67,252,193,178,67,252,193,180,67,252,193,182,67,252,193,190,67,252,193,192,67,252,193,194,67,252,193,196,67,252,193,198,67,252,193,200,67,252,193,208,67,252,193,210,67,252,193,212,67,252,193,214,67,252,193,216,67,252,193,218,67,252,193,220,67,252,193,222,67,252,193,224,67,252,193,226,67,252,193,228,67,252,193,230,67,252,193,232,67,252,193,234,67,252,193,236,67,252,193,238,67,252,193,240,67,252,193,242,67,252,193,248,67,252,193,250,67,252,193,252,67,252,193,254,67,252,193,2,68,252,193,8,68,252,193,10,68,252,193,12,68,252,193,14,68,252,193,20,68,252,193,24,68,252,193,32,68,252,193,36,68,252,193,42,68,252,193,50,68,252,193,52,68,252,193,62,68,252,193,64,68,252,193,70,68,252,193,72,68,252,193,74,68,252,193,76,68,252,193,82,68,252,193,84,68,252,193,88,68,252,193,90,68,252,193,98,68,252,193,110,68,252,193,112,68,252,193,114,68,252,193,136,68,252,193,138,68,252,193,140,68,252,193,142,68,252,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,193,34,68,252,193,46,68,252,193,58,68,252,193,60,68,252,193,66,68,252,193,92,68,252,193,120,68,252,193,148,68,252,193,150,68,252,193,248,68,252,193,250,68,252,193,252,68,252,193,254,68,252,193,96,69,252,193,98,69,252,193,100,69,252,193,102,69,252,193,104,69,252,193,106,69,252,193,108,69,252,193,162,69,252,193,242,69,252,193,102,70,252,193,104,70,252,193,192,70,252,193,38,71,252,193,40,71,252,193,116,71,252,193,166,71,252,193,126,72,252,193,128,72,252,193,250,72,252,193,122,68,252,193,124,68,252,193,126,68,252,193,128,68,252,193,130,68,252,193,152,68,252,193,154,68,252,193,156,68,252,193,158,68,252,193,160,68,252,193,162,68,252,193,164,68,252,193,166,68,252,193,2,69,252,193,4,69,252,193,6,69,252,193,8,69,252,193,10,69,252,193,12,69,252,193,14,69,252,193,16,69,252,193,18,69,252,193,110,69,252,193,112,69,252,193,114,69,252,193,116,69,252,193,118,69,252,193,164,69,252,193,166,69,252,193,168,69,252,193,170,69,252,193,172,69,252,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,128,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,206,160,51,0,193,128,69,252,193,130,69,252,193,132,69,252,193,134,69,252,193,136,69,252,193,138,69,252,193,140,69,252,193,142,69,252,193,144,69,252,193,146,69,252,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,193,244,69,252,193,174,69,252,193,246,69,252,193,248,69,252,193,250,69,252,193,252,69,252,193,254,69,252,193,2,70,252,193,4,70,252,193,6,70,252,193,8,70,252,193,10,70,252,193,106,70,252,193,108,70,252,193,110,70,252,193,112,70,252,193,114,70,252,193,116,70,252,193,194,70,252,193,196,70,252,193,198,70,252,193,200,70,252,193,202,70,252,193,204,70,252,193,42,71,252,193,44,71,252,193,46,71,252,193,48,71,252,193,118,71,252,193,120,71,252,193,122,71,252,193,124,71,252,193,190,69,252,193,12,70,252,193,14,70,252,193,16,70,252,193,206,70,252,193,118,70,252,193,120,70,252,193,122,70,252,193,124,70,252,193,208,70,252,193,210,70,252,193,212,70,252,193,50,71,252,193,52,71,252,193,54,71,252,193,56,71,252,193,58,71,252,193,126,71,252,193,128,71,252,193,130,71,252,193,170,71,252,193,172,71,252,193,174,71,252,193,196,71,252,193,198,71,252,193,216,71,252,193,248,71,252,193,10,72,252,193,162,72,252,193,164,72,252,193,166,72,252,193,168,72,252,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,192,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,206,224,51,0,193,232,69,252,193,80,70,252,193,82,70,252,193,184,70,252,193,186,70,252,193,188,70,252,193,30,71,252,193,32,71,252,193,106,71,252,193,56,72,252,193,120,72,252,193,122,72,252,193,134,73,252,193,136,73,252,193,50,74,252,193,52,74,252,193,54,74,252,193,56,74,252,193,216,74,252,193,218,74,252,193,220,74,252,193,134,75,252,193,136,75,252,193,138,75,252,193,80,76,252,193,82,76,252,193,84,76,252,193,86,76,252,193,88,76,252,193,252,76,252,193,254,76,252,193,2,77,252,193,234,69,252,193,236,69,252,193,238,69,252,193,240,69,252,193,84,70,252,193,86,70,252,193,88,70,252,193,90,70,252,193,92,70,252,193,94,70,252,193,96,70,252,193,98,70,252,193,100,70,252,193,190,70,252,193,34,71,252,193,36,71,252,193,108,71,252,193,110,71,252,193,112,71,252,193,114,71,252,193,162,71,252,193,164,71,252,193,232,71,252,193,28,72,252,193,74,72,252,193,124,72,252,193,240,72,252,193,242,72,252,193,244,72,252,193,246,72,252,193,248,72,252,193,138,73,252,193,162,70,252,193,164,70,252,193,166,70,252,193,168,70,252,193,170,70,252,193,172,70,252,193,174,70,252,193,176,70,252,193,178,70,252,193,214,70,252,193,216,70,252,193,218,70,252,193,220,70,252,193,222,70,252,193,224,70,252,193,226,70,252,193,228,70,252,193,230,70,252,193,232,70,252,193,234,70,252,193,236,70,252,193,238,70,252,193,240,70,252,193,242,70,252,193,244,70,252,193,246,70,252,193,248,70,252,193,250,70,252,193,252,70,252,193,254,70,252,193,2,71,252,193,180,70,252,193,102,71,252,193,132,71,252,193,134,71,252,193,136,71,252,193,138,71,252,193,140,71,252,193,142,71,252,193,144,71,252,193,146,71,252,193,148,71,252,193,150,71,252,193,152,71,252,193,154,71,252,193,156,71,252,193,158,71,252,193,176,71,252,193,178,71,252,193,180,71,252,193,182,71,252,193,184,71,252,193,186,71,252,193,188,71,252,193,190,71,252,193,192,71,252,193,194,71,252,193,200,71,252,193,202,71,252,193,218,71,252,193,220,71,252,193,222,71,252,193,224,71,252,193,226,71,252,193,168,71,252,193,204,71,252,193,206,71,252,193,208,71,252,193,210,71,252,193,212,71,252,193,214,71,252,193,234,71,252,193,236,71,252,193,8,72,252,193,30,72,252,193,42,72,252,193,46,72,252,193,48,72,252,193,50,72,252,193,58,72,252,193,60,72,252,193,76,72,252,193,78,72,252,193,80,72,252,193,82,72,252,193,84,72,252,193,86,72,252,193,88,72,252,193,90,72,252,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,193,228,71,252,193,230,71,252,193,238,71,252,193,240,71,252,193,242,71,252,193,244,71,252,193,246,71,252,193,250,71,252,193,252,71,252,193,254,71,252,193,2,72,252,193,4,72,252,193,12,72,252,193,14,72,252,193,16,72,252,193,18,72,252,193,20,72,252,193,22,72,252,193,24,72,252,193,26,72,252,193,32,72,252,193,34,72,252,193,36,72,252,193,38,72,252,193,40,72,252,193,44,72,252,193,54,72,252,193,62,72,252,193,64,72,252,193,66,72,252,193,68,72,252,193,70,72,252,193,72,72,252,193,92,72,252,193,94,72,252,193,96,72,252,193,98,72,252,193,100,72,252,193,102,72,252,193,104,72,252,193,106,72,252,193,108,72,252,193,110,72,252,193,112,72,252,193,114,72,252,193,116,72,252,193,118,72,252,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,206,0,52,0,193,2,73,252,193,4,73,252,193,6,73,252,193,8,73,252,193,10,73,252,193,12,73,252,193,14,73,252,193,16,73,252,193,18,73,252,193,20,73,252,193,22,73,252,193,24,73,252,193,26,73,252,193,28,73,252,193,30,73,252,193,32,73,252,193,34,73,252,193,36,73,252,193,38,73,252,193,40,73,252,193,42,73,252,193,44,73,252,193,162,73,252,193,170,72,252,193,46,73,252,193,48,73,252,193,50,73,252,193,52,73,252,193,54,73,252,193,56,73,252,193,58,73,252,193,60,73,252,193,62,73,252,193,64,73,252,193,202,73,252,193,204,73,252,193,206,73,252,193,208,73,252,193,210,73,252,193,212,73,252,193,114,74,252,193,116,74,252,193,118,74,252,193,120,74,252,193,122,74,252,193,124,74,252,193,126,74,252,193,128,74,252,193,58,75,252,193,60,75,252,193,62,75,252,193,64,75,252,193,66,75,252,193,68,75,252,193,70,75,252,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,32,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,206,64,52,0,193,236,72,252,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,193,252,72,252,193,254,72,252,193,148,73,252,193,150,73,252,193,152,73,252,193,154,73,252,193,156,73,252,193,158,73,252,193,160,73,252,193,70,74,252,193,72,74,252,193,74,74,252,193,76,74,252,193,78,74,252,193,238,74,252,193,240,74,252,193,242,74,252,193,244,74,252,193,246,74,252,193,150,75,252,193,152,75,252,193,154,75,252,193,156,75,252,193,158,75,252,193,160,75,252,193,162,75,252,193,164,75,252,193,166,75,252,193,168,75,252,193,170,75,252,193,110,76,252,193,112,76,252,193,140,73,252,193,142,73,252,193,144,73,252,193,146,73,252,193,58,74,252,193,60,74,252,193,62,74,252,193,64,74,252,193,66,74,252,193,68,74,252,193,222,74,252,193,224,74,252,193,226,74,252,193,228,74,252,193,230,74,252,193,232,74,252,193,234,74,252,193,236,74,252,193,140,75,252,193,142,75,252,193,144,75,252,193,146,75,252,193,148,75,252,193,90,76,252,193,92,76,252,193,94,76,252,193,96,76,252,193,98,76,252,193,100,76,252,193,102,76,252,193,104,76,252,193,106,76,252,193,164,73,252,193,166,73,252,193,168,73,252,193,170,73,252,193,172,73,252,193,174,73,252,193,176,73,252,193,178,73,252,193,180,73,252,193,182,73,252,193,184,73,252,193,186,73,252,193,188,73,252,193,190,73,252,193,192,73,252,193,194,73,252,193,196,73,252,193,198,73,252,193,200,73,252,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,206,96,52,0,193,130,74,252,193,132,74,252,193,134,74,252,193,136,74,252,193,138,74,252,193,140,74,252,193,142,74,252,193,144,74,252,193,146,74,252,193,148,74,252,193,44,74,252,193,150,74,252,193,152,74,252,193,154,74,252,193,156,74,252,193,158,74,252,193,160,74,252,193,162,74,252,193,164,74,252,193,166,74,252,193,168,74,252,193,170,74,252,193,172,74,252,193,174,74,252,193,176,74,252,193,178,74,252,193,180,74,252,193,182,74,252,193,184,74,252,193,186,74,252,193,188,74,252,193,190,74,252,193,192,74,252,193,194,74,252,193,196,74,252,193,198,74,252,193,200,74,252,193,202,74,252,193,204,74,252,206,128,52,0,206,128,52,0,206,128,52,0,206,128,52,0,193,248,74,252,193,250,74,252,193,252,74,252,193,254,74,252,193,2,75,252,193,4,75,252,193,6,75,252,193,8,75,252,193,10,75,252,193,12,75,252,193,14,75,252,193,16,75,252,193,18,75,252,193,20,75,252,193,22,75,252,193,24,75,252,193,26,75,252,193,28,75,252,193,30,75,252,193,32,75,252,193,34,75,252,193,36,75,252,193,38,75,252,193,40,75,252,193,42,75,252,193,44,75,252,193,46,75,252,193,48,75,252,193,206,74,252,193,208,74,252,193,210,74,252,193,74,75,252,193,76,75,252,193,78,75,252,193,80,75,252,193,82,75,252,193,84,75,252,193,86,75,252,193,88,75,252,193,90,75,252,193,92,75,252,193,94,75,252,193,96,75,252,193,98,75,252,193,100,75,252,193,102,75,252,193,104,75,252,193,106,75,252,193,108,75,252,193,110,75,252,193,112,75,252,193,114,75,252,193,116,75,252,193,118,75,252,193,120,75,252,193,122,75,252,206,160,52,0,206,160,52,0,206,160,52,0,206,160,52,0,193,50,75,252,193,52,75,252,193,172,75,252,193,174,75,252,193,176,75,252,193,178,75,252,193,180,75,252,193,182,75,252,193,184,75,252,193,186,75,252,193,54,75,252,193,56,75,252,193,188,75,252,193,190,75,252,193,192,75,252,193,194,75,252,193,196,75,252,193,198,75,252,193,200,75,252,193,202,75,252,193,204,75,252,193,206,75,252,193,208,75,252,193,210,75,252,193,212,75,252,193,214,75,252,193,116,76,252,193,118,76,252,193,120,76,252,193,122,76,252,193,124,76,252,193,126,76,252,193,72,75,252,193,218,75,252,193,220,75,252,193,222,75,252,193,224,75,252,193,226,75,252,193,228,75,252,193,146,76,252,193,148,76,252,193,150,76,252,193,152,76,252,193,154,76,252,193,156,76,252,193,158,76,252,193,32,77,252,193,34,77,252,193,36,77,252,193,38,77,252,193,40,77,252,193,42,77,252,193,192,77,252,193,194,77,252,193,196,77,252,193,198,77,252,193,200,77,252,193,202,77,252,193,70,78,252,193,72,78,252,193,74,78,252,193,150,78,252,193,152,78,252,193,154,78,252,193,128,75,252,193,130,75,252,193,72,76,252,193,74,76,252,193,76,76,252,193,78,76,252,193,248,76,252,193,250,76,252,193,128,77,252,193,32,78,252,193,184,78,252,193,236,78,252,193,18,79,252,193,166,79,252,193,80,80,252,193,82,80,252,193,84,80,252,193,86,80,252,193,88,80,252,193,90,80,252,193,92,80,252,193,30,81,252,193,32,81,252,193,226,81,252,193,228,81,252,193,230,81,252,193,232,81,252,193,234,81,252,193,236,81,252,193,238,81,252,193,240,81,252,193,242,81,252,193,128,76,252,193,216,75,252,193,130,76,252,193,132,76,252,193,10,77,252,193,134,76,252,193,136,76,252,193,138,76,252,193,140,76,252,193,142,76,252,193,144,76,252,193,160,77,252,193,12,77,252,193,14,77,252,193,16,77,252,193,18,77,252,193,20,77,252,193,22,77,252,193,24,77,252,193,26,77,252,193,28,77,252,193,30,77,252,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,192,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,193,108,76,252,193,6,77,252,193,140,77,252,193,142,77,252,193,144,77,252,193,146,77,252,193,148,77,252,193,150,77,252,193,38,78,252,193,40,78,252,193,42,78,252,193,44,78,252,193,46,78,252,193,134,78,252,193,188,78,252,193,190,78,252,193,240,78,252,193,242,78,252,193,48,79,252,193,66,79,252,193,110,79,252,193,168,79,252,193,106,80,252,193,108,80,252,193,110,80,252,193,112,80,252,193,114,80,252,193,116,80,252,206,0,54,0,206,0,54,0,206,0,54,0,206,0,54,0,193,114,76,252,193,8,77,252,193,152,77,252,193,154,77,252,193,156,77,252,193,158,77,252,193,48,78,252,193,50,78,252,193,244,78,252,193,20,79,252,193,22,79,252,193,24,79,252,193,68,79,252,193,170,79,252,193,172,79,252,193,118,80,252,193,120,80,252,193,122,80,252,193,124,80,252,193,126,80,252,193,64,81,252,193,66,81,252,193,68,81,252,193,22,82,252,193,24,82,252,193,26,82,252,193,28,82,252,193,30,82,252,193,32,82,252,193,226,82,252,193,228,82,252,193,230,82,252,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,206,224,52,0,193,44,77,252,193,46,77,252,193,48,77,252,193,50,77,252,193,52,77,252,193,54,77,252,193,56,77,252,193,4,77,252,193,130,77,252,193,132,77,252,193,134,77,252,193,136,77,252,193,138,77,252,193,34,78,252,193,36,78,252,193,128,78,252,193,130,78,252,193,132,78,252,193,186,78,252,193,238,78,252,193,46,79,252,193,104,79,252,193,130,79,252,193,226,79,252,193,228,79,252,193,96,80,252,193,98,80,252,193,100,80,252,193,102,80,252,193,104,80,252,193,34,81,252,193,36,81,252,193,38,81,252,193,40,81,252,193,42,81,252,193,44,81,252,193,46,81,252,193,246,81,252,193,248,81,252,193,58,77,252,193,60,77,252,193,62,77,252,193,64,77,252,193,66,77,252,193,68,77,252,193,70,77,252,193,72,77,252,193,74,77,252,193,76,77,252,193,78,77,252,193,80,77,252,193,82,77,252,193,84,77,252,193,86,77,252,193,88,77,252,193,90,77,252,193,92,77,252,193,94,77,252,193,96,77,252,193,98,77,252,193,100,77,252,193,102,77,252,193,104,77,252,193,106,77,252,193,108,77,252,193,110,77,252,193,112,77,252,193,114,77,252,193,116,77,252,193,118,77,252,193,120,77,252,193,122,77,252,193,124,77,252,193,126,77,252,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,206,0,53,0,193,52,78,252,193,54,78,252,193,56,78,252,193,58,78,252,193,60,78,252,193,62,78,252,193,64,78,252,193,66,78,252,193,68,78,252,193,136,78,252,193,138,78,252,193,140,78,252,193,142,78,252,193,144,78,252,193,146,78,252,193,148,78,252,193,192,78,252,193,194,78,252,193,196,78,252,193,198,78,252,193,246,78,252,193,248,78,252,193,250,78,252,193,26,79,252,193,28,79,252,193,50,79,252,193,52,79,252,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,32,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,206,64,53,0,193,156,78,252,193,158,78,252,193,160,78,252,193,162,78,252,193,164,78,252,193,166,78,252,193,168,78,252,193,170,78,252,193,172,78,252,193,174,78,252,193,176,78,252,193,178,78,252,193,180,78,252,193,182,78,252,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,193,200,78,252,193,252,78,252,193,254,78,252,193,30,79,252,193,32,79,252,193,34,79,252,193,36,79,252,193,94,79,252,193,152,79,252,193,154,79,252,193,156,79,252,193,158,79,252,193,194,79,252,193,196,79,252,193,198,79,252,193,200,79,252,193,22,80,252,193,24,80,252,193,26,80,252,193,28,80,252,193,30,80,252,193,32,80,252,193,34,80,252,193,192,80,252,193,194,80,252,193,196,80,252,193,198,80,252,193,200,80,252,193,202,80,252,193,204,80,252,193,206,80,252,193,138,81,252,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,206,96,53,0,193,2,79,252,193,4,79,252,193,6,79,252,193,8,79,252,193,10,79,252,193,12,79,252,193,14,79,252,193,16,79,252,193,38,79,252,193,40,79,252,193,42,79,252,193,44,79,252,193,54,79,252,193,56,79,252,193,58,79,252,193,60,79,252,193,62,79,252,193,64,79,252,193,72,79,252,193,74,79,252,193,76,79,252,193,78,79,252,193,86,79,252,193,88,79,252,193,90,79,252,193,92,79,252,193,96,79,252,193,70,79,252,193,80,79,252,193,82,79,252,193,84,79,252,193,112,79,252,193,116,79,252,193,120,79,252,193,122,79,252,193,124,79,252,193,132,79,252,193,138,79,252,193,134,79,252,193,140,79,252,193,142,79,252,193,144,79,252,193,146,79,252,193,148,79,252,193,150,79,252,193,174,79,252,193,176,79,252,193,178,79,252,193,180,79,252,193,182,79,252,193,184,79,252,193,186,79,252,193,188,79,252,193,190,79,252,193,192,79,252,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,193,98,79,252,193,100,79,252,193,102,79,252,193,106,79,252,193,108,79,252,193,114,79,252,193,118,79,252,193,126,79,252,193,128,79,252,193,136,79,252,193,160,79,252,193,162,79,252,193,164,79,252,193,202,79,252,193,204,79,252,193,206,79,252,193,208,79,252,193,210,79,252,193,212,79,252,193,214,79,252,193,216,79,252,193,218,79,252,193,220,79,252,193,222,79,252,193,224,79,252,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,128,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,160,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,192,53,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,224,53,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,0,54,0,206,0,54,0,206,0,54,0,206,0,54,0,193,6,82,252,193,8,82,252,193,10,82,252,193,12,82,252,193,14,82,252,193,16,82,252,193,18,82,252,193,20,82,252,193,208,82,252,193,210,82,252,193,212,82,252,193,214,82,252,193,216,82,252,193,218,82,252,193,220,82,252,193,222,82,252,193,224,82,252,193,238,83,252,193,240,83,252,193,242,83,252,193,244,83,252,193,246,83,252,193,248,83,252,193,250,83,252,193,252,83,252,193,254,83,252,193,2,84,252,193,4,84,252,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,206,32,54,0,193,34,82,252,193,36,82,252,193,38,82,252,193,40,82,252,193,234,82,252,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,206,96,54,0,193,136,81,252,193,76,82,252,193,78,82,252,193,80,82,252,193,82,82,252,193,84,82,252,193,86,82,252,193,88,82,252,193,90,82,252,193,92,82,252,193,94,82,252,193,236,82,252,193,238,82,252,193,240,82,252,193,242,82,252,193,244,82,252,193,246,82,252,193,248,82,252,193,250,82,252,193,252,82,252,193,254,82,252,193,20,84,252,193,2,83,252,193,140,81,252,193,142,81,252,193,144,81,252,193,146,81,252,193,148,81,252,193,150,81,252,193,152,81,252,193,154,81,252,193,156,81,252,193,96,82,252,193,98,82,252,193,100,82,252,193,102,82,252,193,104,82,252,193,106,82,252,193,108,82,252,193,110,82,252,193,62,83,252,193,64,83,252,193,66,83,252,193,68,83,252,193,70,83,252,193,72,83,252,193,74,83,252,193,76,83,252,193,78,83,252,193,80,83,252,193,82,83,252,193,84,83,252,193,92,84,252,193,94,84,252,193,96,84,252,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,64,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,193,250,81,252,193,252,81,252,193,254,81,252,193,2,82,252,193,4,82,252,193,198,82,252,193,200,82,252,193,202,82,252,193,204,82,252,193,206,82,252,193,218,83,252,193,220,83,252,193,222,83,252,193,224,83,252,193,226,83,252,193,228,83,252,193,230,83,252,193,232,83,252,193,234,83,252,193,236,83,252,193,8,85,252,193,10,85,252,193,12,85,252,193,14,85,252,193,16,85,252,193,18,85,252,193,20,85,252,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,128,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,193,186,82,252,193,188,82,252,193,190,82,252,193,192,82,252,193,194,82,252,193,196,82,252,193,190,83,252,193,192,83,252,193,194,83,252,193,196,83,252,193,198,83,252,193,200,83,252,193,202,83,252,193,204,83,252,193,206,83,252,193,208,83,252,193,210,83,252,193,212,83,252,193,214,83,252,193,230,84,252,193,232,84,252,193,234,84,252,193,236,84,252,193,238,84,252,193,240,84,252,193,242,84,252,193,244,84,252,193,246,84,252,193,248,84,252,193,250,84,252,193,252,84,252,193,254,84,252,193,232,82,252,193,12,84,252,193,14,84,252,193,16,84,252,193,18,84,252,193,38,85,252,193,40,85,252,193,42,85,252,193,44,85,252,193,244,85,252,193,246,85,252,193,190,86,252,193,192,86,252,193,194,86,252,193,140,87,252,193,142,87,252,193,144,87,252,193,146,87,252,193,148,87,252,193,44,88,252,193,46,88,252,193,238,88,252,193,240,88,252,193,42,89,252,193,44,89,252,193,82,89,252,193,106,89,252,193,160,89,252,193,210,89,252,193,244,89,252,193,8,90,252,193,10,90,252,193,4,83,252,193,6,83,252,193,8,83,252,193,10,83,252,193,12,83,252,193,14,83,252,193,16,83,252,193,18,83,252,193,20,83,252,193,22,83,252,193,24,83,252,193,26,83,252,193,28,83,252,193,30,83,252,193,32,83,252,193,34,83,252,193,36,83,252,193,38,83,252,193,40,83,252,193,42,83,252,193,44,83,252,193,46,83,252,193,48,83,252,193,50,83,252,193,52,83,252,193,54,83,252,193,56,83,252,193,58,83,252,193,60,83,252,193,22,84,252,193,24,84,252,193,26,84,252,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,160,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,193,6,84,252,193,8,84,252,193,10,84,252,193,22,85,252,193,24,85,252,193,26,85,252,193,28,85,252,193,30,85,252,193,32,85,252,193,34,85,252,193,36,85,252,193,236,85,252,193,238,85,252,193,240,85,252,193,242,85,252,193,176,86,252,193,178,86,252,193,180,86,252,193,182,86,252,193,184,86,252,193,186,86,252,193,188,86,252,193,120,87,252,193,122,87,252,193,124,87,252,193,126,87,252,193,128,87,252,193,130,87,252,193,132,87,252,193,134,87,252,193,136,87,252,193,138,87,252,193,28,84,252,193,30,84,252,193,32,84,252,193,34,84,252,193,36,84,252,193,38,84,252,193,40,84,252,193,42,84,252,193,44,84,252,193,46,84,252,193,48,84,252,193,50,84,252,193,52,84,252,193,54,84,252,193,56,84,252,193,58,84,252,193,60,84,252,193,62,84,252,193,64,84,252,193,66,84,252,193,68,84,252,193,70,84,252,193,72,84,252,193,74,84,252,193,76,84,252,193,78,84,252,193,80,84,252,193,82,84,252,193,84,84,252,193,86,84,252,193,88,84,252,193,90,84,252,193,98,84,252,193,100,84,252,193,102,84,252,193,104,84,252,193,106,84,252,193,108,84,252,193,110,84,252,193,96,85,252,193,98,85,252,193,100,85,252,193,102,85,252,193,38,86,252,193,40,86,252,193,42,86,252,193,44,86,252,193,46,86,252,193,48,86,252,193,50,86,252,193,52,86,252,193,54,86,252,193,56,86,252,193,238,86,252,193,240,86,252,193,242,86,252,193,244,86,252,193,246,86,252,193,248,86,252,193,250,86,252,193,252,86,252,193,184,87,252,193,186,87,252,193,188,87,252,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,192,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,193,2,85,252,193,4,85,252,193,6,85,252,193,188,85,252,193,190,85,252,193,192,85,252,193,194,85,252,193,196,85,252,193,198,85,252,193,200,85,252,193,202,85,252,193,204,85,252,193,206,85,252,193,208,85,252,193,210,85,252,193,212,85,252,193,148,86,252,193,150,86,252,193,152,86,252,193,154,86,252,193,156,86,252,193,158,86,252,193,160,86,252,193,84,87,252,193,86,87,252,193,88,87,252,193,90,87,252,193,92,87,252,193,94,87,252,193,96,87,252,193,98,87,252,193,100,87,252,193,46,85,252,193,48,85,252,193,50,85,252,193,52,85,252,193,54,85,252,193,56,85,252,193,58,85,252,193,60,85,252,193,62,85,252,193,64,85,252,193,66,85,252,193,68,85,252,193,70,85,252,193,72,85,252,193,74,85,252,193,76,85,252,193,78,85,252,193,80,85,252,193,82,85,252,193,84,85,252,193,86,85,252,193,88,85,252,193,90,85,252,193,92,85,252,193,94,85,252,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,224,54,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,206,0,55,0,193,164,86,252,193,166,86,252,193,168,86,252,193,170,86,252,193,172,86,252,193,174,86,252,193,104,87,252,193,106,87,252,193,108,87,252,193,110,87,252,193,112,87,252,193,114,87,252,193,116,87,252,193,118,87,252,193,18,88,252,193,20,88,252,193,22,88,252,193,24,88,252,193,142,88,252,193,144,88,252,193,146,88,252,193,228,88,252,193,34,89,252,193,36,89,252,193,38,89,252,193,134,89,252,193,146,89,252,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,206,32,55,0,193,196,86,252,193,34,86,252,193,198,86,252,193,200,86,252,193,202,86,252,193,204,86,252,193,36,86,252,193,206,86,252,193,208,86,252,193,210,86,252,193,212,86,252,193,214,86,252,193,216,86,252,193,218,86,252,193,220,86,252,193,222,86,252,193,224,86,252,193,226,86,252,193,228,86,252,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,206,64,55,0,193,254,86,252,193,146,86,252,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,193,230,86,252,193,232,86,252,193,150,87,252,193,234,86,252,193,236,86,252,193,152,87,252,193,154,87,252,193,156,87,252,193,158,87,252,193,160,87,252,193,162,87,252,193,164,87,252,193,166,87,252,193,168,87,252,193,170,87,252,193,172,87,252,193,174,87,252,193,176,87,252,193,178,87,252,193,180,87,252,193,182,87,252,193,48,88,252,193,50,88,252,193,52,88,252,193,54,88,252,193,56,88,252,193,58,88,252,193,60,88,252,193,62,88,252,193,64,88,252,193,66,88,252,193,68,88,252,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,96,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,193,102,87,252,193,6,88,252,193,8,88,252,193,10,88,252,193,12,88,252,193,14,88,252,193,16,88,252,193,138,88,252,193,140,88,252,193,222,88,252,193,224,88,252,193,226,88,252,193,26,89,252,193,28,89,252,193,30,89,252,193,32,89,252,193,76,89,252,193,126,89,252,193,132,89,252,193,166,89,252,193,182,89,252,193,6,90,252,193,136,90,252,193,176,90,252,193,178,90,252,193,226,90,252,193,136,91,252,193,138,91,252,193,206,91,252,193,252,91,252,193,254,91,252,193,160,92,252,193,190,87,252,193,192,87,252,193,194,87,252,193,174,88,252,193,176,88,252,193,178,88,252,193,180,88,252,193,2,89,252,193,110,89,252,193,168,89,252,193,170,89,252,193,190,89,252,193,192,89,252,193,214,89,252,193,216,89,252,193,228,89,252,193,12,90,252,193,14,90,252,193,16,90,252,193,28,90,252,193,30,90,252,193,60,90,252,193,96,90,252,193,112,90,252,193,124,90,252,193,126,90,252,193,158,90,252,193,160,90,252,193,194,90,252,193,196,90,252,193,198,90,252,193,200,90,252,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,128,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,193,26,88,252,193,28,88,252,193,30,88,252,193,32,88,252,193,34,88,252,193,36,88,252,193,38,88,252,193,40,88,252,193,42,88,252,193,148,88,252,193,150,88,252,193,152,88,252,193,154,88,252,193,230,88,252,193,232,88,252,193,234,88,252,193,236,88,252,193,40,89,252,193,78,89,252,193,80,89,252,193,100,89,252,193,102,89,252,193,104,89,252,193,184,89,252,193,208,89,252,193,56,90,252,193,68,90,252,193,106,90,252,193,108,90,252,193,184,90,252,193,28,91,252,193,30,91,252,193,70,88,252,193,72,88,252,193,74,88,252,193,156,88,252,193,158,88,252,193,160,88,252,193,162,88,252,193,164,88,252,193,166,88,252,193,168,88,252,193,170,88,252,193,172,88,252,193,242,88,252,193,244,88,252,193,246,88,252,193,248,88,252,193,250,88,252,193,252,88,252,193,254,88,252,193,46,89,252,193,48,89,252,193,50,89,252,193,52,89,252,193,84,89,252,193,86,89,252,193,88,89,252,193,108,89,252,193,128,89,252,193,158,89,252,193,162,89,252,193,186,89,252,193,188,89,252,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,206,160,55,0,193,182,88,252,193,184,88,252,193,186,88,252,193,188,88,252,193,190,88,252,193,192,88,252,193,194,88,252,193,196,88,252,193,198,88,252,193,200,88,252,193,202,88,252,193,136,88,252,193,204,88,252,193,206,88,252,193,208,88,252,193,210,88,252,193,212,88,252,193,214,88,252,193,216,88,252,193,218,88,252,193,220,88,252,193,4,89,252,193,6,89,252,193,8,89,252,193,10,89,252,193,12,89,252,193,14,89,252,193,16,89,252,193,18,89,252,193,20,89,252,193,22,89,252,193,24,89,252,193,54,89,252,193,56,89,252,193,58,89,252,193,60,89,252,193,62,89,252,193,64,89,252,193,66,89,252,193,68,89,252,193,70,89,252,193,72,89,252,193,74,89,252,193,90,89,252,193,92,89,252,193,94,89,252,193,96,89,252,193,98,89,252,193,112,89,252,193,114,89,252,193,116,89,252,193,118,89,252,193,120,89,252,193,122,89,252,193,124,89,252,193,130,89,252,193,226,189,252,193,150,89,252,193,136,89,252,193,138,89,252,193,140,89,252,193,142,89,252,193,144,89,252,193,152,89,252,193,156,89,252,193,164,89,252,193,172,89,252,193,174,89,252,193,176,89,252,193,178,89,252,193,180,89,252,193,194,89,252,193,196,89,252,193,198,89,252,193,200,89,252,193,202,89,252,193,218,89,252,193,220,89,252,193,222,89,252,193,224,89,252,193,226,89,252,193,230,89,252,193,232,89,252,193,234,89,252,193,236,89,252,193,238,89,252,193,240,89,252,193,148,89,252,193,154,89,252,193,204,89,252,193,206,89,252,193,118,90,252,193,138,90,252,193,180,90,252,193,182,90,252,193,20,91,252,193,22,91,252,193,24,91,252,193,26,91,252,193,140,91,252,193,142,91,252,193,208,91,252,193,2,92,252,193,122,92,252,193,252,92,252,193,6,93,252,193,72,93,252,193,102,93,252,193,104,93,252,193,128,93,252,193,152,93,252,193,154,93,252,193,156,93,252,193,166,93,252,193,168,93,252,193,170,93,252,193,234,93,252,193,236,93,252,193,92,94,252,193,212,89,252,193,246,89,252,193,48,90,252,193,72,90,252,193,80,90,252,193,92,90,252,193,104,90,252,193,110,90,252,193,120,90,252,193,122,90,252,193,140,90,252,193,142,90,252,193,144,90,252,193,146,90,252,193,148,90,252,193,150,90,252,193,152,90,252,193,154,90,252,193,156,90,252,193,188,90,252,193,190,90,252,193,192,90,252,193,228,90,252,193,230,90,252,193,232,90,252,193,36,91,252,193,38,91,252,193,40,91,252,193,42,91,252,193,84,91,252,193,86,91,252,193,88,91,252,193,242,89,252,193,248,89,252,193,250,89,252,193,252,89,252,193,254,89,252,193,2,90,252,193,4,90,252,193,32,90,252,193,18,90,252,193,20,90,252,193,22,90,252,193,24,90,252,193,26,90,252,193,34,90,252,193,50,90,252,193,52,90,252,193,36,90,252,193,38,90,252,193,40,90,252,193,42,90,252,193,44,90,252,193,46,90,252,193,54,90,252,193,58,90,252,193,62,90,252,193,64,90,252,193,66,90,252,193,74,90,252,193,76,90,252,193,78,90,252,193,82,90,252,193,84,90,252,193,70,90,252,193,86,90,252,193,186,90,252,193,146,91,252,193,148,91,252,193,210,91,252,193,212,91,252,193,222,92,252,193,224,92,252,193,236,92,252,193,242,92,252,193,74,93,252,193,82,93,252,193,106,93,252,193,132,93,252,193,172,93,252,193,246,93,252,193,252,93,252,193,254,93,252,193,6,94,252,193,54,94,252,193,94,94,252,193,96,94,252,193,98,94,252,193,152,94,252,193,32,95,252,193,34,95,252,193,36,95,252,193,38,95,252,193,40,95,252,193,42,95,252,193,142,95,252,193,88,90,252,193,90,90,252,193,94,90,252,193,98,90,252,193,100,90,252,193,102,90,252,193,114,90,252,193,116,90,252,193,128,90,252,193,130,90,252,193,132,90,252,193,134,90,252,193,162,90,252,193,164,90,252,193,166,90,252,193,168,90,252,193,170,90,252,193,172,90,252,193,174,90,252,193,204,90,252,193,206,90,252,193,208,90,252,193,210,90,252,193,212,90,252,193,214,90,252,193,216,90,252,193,218,90,252,193,220,90,252,193,222,90,252,193,224,90,252,193,246,90,252,193,248,90,252,193,202,90,252,193,234,90,252,193,236,90,252,193,238,90,252,193,240,90,252,193,242,90,252,193,244,90,252,193,44,91,252,193,46,91,252,193,48,91,252,193,50,91,252,193,94,91,252,193,96,91,252,193,98,91,252,193,100,91,252,193,102,91,252,193,104,91,252,193,106,91,252,193,160,91,252,193,162,91,252,193,164,91,252,193,166,91,252,193,168,91,252,193,170,91,252,193,220,91,252,193,222,91,252,193,224,91,252,193,16,92,252,193,18,92,252,193,20,92,252,193,22,92,252,193,50,92,252,193,250,90,252,193,252,90,252,193,254,90,252,193,2,91,252,193,4,91,252,193,6,91,252,193,8,91,252,193,10,91,252,193,12,91,252,193,14,91,252,193,16,91,252,193,18,91,252,193,52,91,252,193,54,91,252,193,56,91,252,193,58,91,252,193,60,91,252,193,62,91,252,193,64,91,252,193,66,91,252,193,68,91,252,193,70,91,252,193,72,91,252,193,74,91,252,193,76,91,252,193,78,91,252,193,80,91,252,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,193,32,91,252,193,34,91,252,193,82,91,252,193,144,91,252,193,4,92,252,193,108,92,252,193,110,92,252,193,132,92,252,193,134,92,252,193,162,92,252,193,192,92,252,193,194,92,252,193,234,92,252,193,254,92,252,193,8,93,252,193,10,93,252,193,18,93,252,193,50,93,252,193,52,93,252,193,54,93,252,193,80,93,252,193,130,93,252,193,190,93,252,193,192,93,252,193,238,93,252,193,244,93,252,193,4,94,252,193,12,94,252,193,20,94,252,193,52,94,252,193,14,95,252,193,16,95,252,193,90,91,252,193,92,91,252,193,150,91,252,193,152,91,252,193,154,91,252,193,156,91,252,193,158,91,252,193,214,91,252,193,216,91,252,193,218,91,252,193,6,92,252,193,8,92,252,193,10,92,252,193,12,92,252,193,14,92,252,193,42,92,252,193,44,92,252,193,46,92,252,193,48,92,252,193,82,92,252,193,84,92,252,193,86,92,252,193,112,92,252,193,136,92,252,193,188,92,252,193,196,92,252,193,210,92,252,193,230,92,252,193,232,92,252,193,244,92,252,193,246,92,252,193,36,93,252,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,206,192,55,0,193,172,91,252,193,174,91,252,193,176,91,252,193,178,91,252,193,180,91,252,193,182,91,252,193,184,91,252,193,186,91,252,193,188,91,252,193,190,91,252,193,192,91,252,193,132,91,252,193,194,91,252,193,196,91,252,193,198,91,252,193,200,91,252,193,202,91,252,193,204,91,252,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,206,224,55,0,193,24,92,252,193,26,92,252,193,28,92,252,193,30,92,252,193,32,92,252,193,34,92,252,193,36,92,252,193,38,92,252,193,40,92,252,193,64,92,252,193,66,92,252,193,68,92,252,193,70,92,252,193,72,92,252,193,74,92,252,193,76,92,252,193,78,92,252,193,134,91,252,193,80,92,252,193,92,92,252,193,94,92,252,193,96,92,252,193,98,92,252,193,100,92,252,193,102,92,252,193,104,92,252,193,106,92,252,193,52,92,252,193,54,92,252,193,56,92,252,193,58,92,252,193,60,92,252,193,62,92,252,193,88,92,252,193,90,92,252,193,114,92,252,193,116,92,252,193,152,92,252,193,176,92,252,193,180,92,252,193,226,92,252,193,248,92,252,193,2,93,252,193,12,93,252,193,24,93,252,193,114,93,252,193,174,93,252,193,178,93,252,193,66,94,252,193,68,94,252,193,70,94,252,193,182,94,252,193,184,94,252,193,186,94,252,193,68,95,252,193,70,95,252,193,174,95,252,193,176,95,252,193,24,96,252,193,118,92,252,193,120,92,252,193,124,92,252,193,126,92,252,193,128,92,252,193,130,92,252,193,138,92,252,193,140,92,252,193,142,92,252,193,144,92,252,193,146,92,252,193,148,92,252,193,150,92,252,193,154,92,252,193,156,92,252,193,158,92,252,193,164,92,252,193,166,92,252,193,168,92,252,193,170,92,252,193,172,92,252,193,174,92,252,193,178,92,252,193,182,92,252,193,184,92,252,193,186,92,252,193,190,92,252,193,198,92,252,193,200,92,252,193,202,92,252,193,204,92,252,193,206,92,252,193,240,92,252,193,42,93,252,193,100,93,252,193,146,93,252,193,148,93,252,193,150,93,252,193,216,93,252,193,90,94,252,193,148,94,252,193,4,95,252,193,6,95,252,193,8,95,252,193,10,95,252,193,120,95,252,193,122,95,252,193,124,95,252,193,126,95,252,193,222,95,252,193,224,95,252,193,72,96,252,193,74,96,252,193,76,96,252,193,78,96,252,193,80,96,252,193,178,96,252,193,180,96,252,193,182,96,252,193,232,96,252,193,234,96,252,193,40,97,252,193,42,97,252,193,94,97,252,193,56,93,252,193,76,93,252,193,84,93,252,193,86,93,252,193,108,93,252,193,110,93,252,193,112,93,252,193,158,93,252,193,208,93,252,193,210,93,252,193,212,93,252,193,218,93,252,193,220,93,252,193,240,93,252,193,242,93,252,193,8,94,252,193,32,94,252,193,34,94,252,193,36,94,252,193,38,94,252,193,40,94,252,193,42,94,252,193,46,94,252,193,56,94,252,193,58,94,252,193,60,94,252,193,62,94,252,193,100,94,252,193,64,94,252,193,102,94,252,193,104,94,252,193,106,94,252,193,202,93,252,193,204,93,252,193,206,93,252,193,214,93,252,193,222,93,252,193,230,93,252,193,232,93,252,193,250,93,252,193,2,94,252,193,10,94,252,193,14,94,252,193,16,94,252,193,18,94,252,193,22,94,252,193,24,94,252,193,26,94,252,193,30,94,252,193,28,94,252,193,44,94,252,193,48,94,252,193,50,94,252,193,74,94,252,193,76,94,252,193,78,94,252,193,80,94,252,193,82,94,252,193,84,94,252,193,86,94,252,193,88,94,252,193,124,94,252,193,126,94,252,193,128,94,252,193,108,94,252,193,110,94,252,193,112,94,252,193,114,94,252,193,116,94,252,193,118,94,252,193,154,94,252,193,156,94,252,193,158,94,252,193,160,94,252,193,162,94,252,193,164,94,252,193,166,94,252,193,168,94,252,193,170,94,252,193,172,94,252,193,174,94,252,193,176,94,252,193,178,94,252,193,180,94,252,193,44,95,252,193,46,95,252,193,48,95,252,193,50,95,252,193,52,95,252,193,54,95,252,193,56,95,252,193,58,95,252,193,60,95,252,193,62,95,252,193,64,95,252,193,66,95,252,193,130,94,252,193,132,94,252,193,134,94,252,193,136,94,252,193,138,94,252,193,140,94,252,193,142,94,252,193,144,94,252,193,146,94,252,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,193,150,94,252,193,12,95,252,193,128,95,252,193,130,95,252,193,228,95,252,193,230,95,252,193,232,95,252,193,82,96,252,193,84,96,252,193,86,96,252,193,88,96,252,193,184,96,252,193,44,97,252,193,46,97,252,193,48,97,252,193,50,97,252,193,52,97,252,193,54,97,252,193,56,97,252,193,100,97,252,193,102,97,252,193,166,97,252,193,208,97,252,193,210,97,252,193,58,98,252,193,144,98,252,193,180,98,252,193,2,99,252,193,4,99,252,193,122,99,252,193,124,99,252,193,126,99,252,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,206,0,56,0,193,72,95,252,193,74,95,252,193,76,95,252,193,78,95,252,193,80,95,252,193,82,95,252,193,84,95,252,193,86,95,252,193,88,95,252,193,90,95,252,193,92,95,252,193,94,95,252,193,96,95,252,193,98,95,252,193,100,95,252,193,102,95,252,193,104,95,252,193,106,95,252,193,108,95,252,193,110,95,252,193,18,95,252,193,20,95,252,193,22,95,252,193,24,95,252,193,26,95,252,193,28,95,252,193,30,95,252,193,132,95,252,193,134,95,252,193,136,95,252,193,138,95,252,193,140,95,252,193,234,95,252,193,236,95,252,193,238,95,252,193,240,95,252,193,242,95,252,193,244,95,252,193,246,95,252,193,248,95,252,193,90,96,252,193,92,96,252,193,94,96,252,193,96,96,252,193,98,96,252,193,100,96,252,193,102,96,252,193,186,96,252,193,188,96,252,193,190,96,252,193,192,96,252,193,194,96,252,193,144,95,252,193,146,95,252,193,148,95,252,193,150,95,252,193,152,95,252,193,154,95,252,193,250,95,252,193,252,95,252,193,254,95,252,193,2,96,252,193,4,96,252,193,104,96,252,193,196,96,252,193,246,96,252,193,248,96,252,193,62,97,252,193,64,97,252,193,66,97,252,193,120,97,252,193,122,97,252,193,174,97,252,193,176,97,252,193,178,97,252,193,180,97,252,193,182,97,252,193,184,97,252,193,186,97,252,193,244,97,252,193,16,98,252,193,36,98,252,193,88,98,252,193,92,98,252,193,110,107,252,193,156,95,252,193,158,95,252,193,160,95,252,193,162,95,252,193,164,95,252,193,166,95,252,193,168,95,252,193,16,169,252,193,170,95,252,193,6,96,252,193,8,96,252,193,10,96,252,193,12,96,252,193,14,96,252,193,16,96,252,193,172,95,252,193,198,96,252,193,18,96,252,193,20,96,252,193,22,96,252,193,106,96,252,193,108,96,252,193,110,96,252,193,112,96,252,193,114,96,252,193,116,96,252,193,200,96,252,193,202,96,252,193,204,96,252,193,250,96,252,193,252,96,252,193,26,96,252,193,118,96,252,193,120,96,252,193,122,96,252,193,124,96,252,193,206,96,252,193,254,96,252,193,2,97,252,193,4,97,252,193,74,97,252,193,128,97,252,193,190,97,252,193,192,97,252,193,220,97,252,193,248,97,252,193,50,98,252,193,138,98,252,193,192,98,252,193,194,98,252,193,232,98,252,193,234,98,252,193,236,98,252,193,238,98,252,193,38,99,252,193,40,99,252,193,42,99,252,193,44,99,252,193,46,99,252,193,48,99,252,193,198,99,252,193,200,99,252,193,202,99,252,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,32,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,206,64,56,0,193,208,96,252,193,210,96,252,193,212,96,252,193,214,96,252,193,216,96,252,193,218,96,252,193,220,96,252,193,222,96,252,193,224,96,252,193,226,96,252,193,228,96,252,193,230,96,252,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,206,96,56,0,193,236,96,252,193,238,96,252,193,240,96,252,193,242,96,252,193,244,96,252,193,58,97,252,193,60,97,252,193,104,97,252,193,106,97,252,193,108,97,252,193,110,97,252,193,112,97,252,193,114,97,252,193,116,97,252,193,118,97,252,193,168,97,252,193,170,97,252,193,172,97,252,193,212,97,252,193,214,97,252,193,240,97,252,193,242,97,252,193,12,98,252,193,14,98,252,193,34,98,252,193,48,98,252,193,60,98,252,193,66,98,252,193,82,98,252,193,86,98,252,193,108,98,252,193,116,98,252,193,68,97,252,193,70,97,252,193,72,97,252,193,124,97,252,193,126,97,252,193,188,97,252,193,216,97,252,193,218,97,252,193,246,97,252,193,38,98,252,193,40,98,252,193,100,98,252,193,110,98,252,193,118,98,252,193,128,98,252,193,130,98,252,193,150,98,252,193,152,98,252,193,176,98,252,193,182,98,252,193,184,98,252,193,186,98,252,193,188,98,252,193,190,98,252,193,214,98,252,193,216,98,252,193,218,98,252,193,220,98,252,193,222,98,252,193,224,98,252,193,226,98,252,193,228,98,252,193,96,97,252,193,98,97,252,193,164,97,252,193,206,97,252,193,10,98,252,193,30,98,252,193,32,98,252,193,170,98,252,193,114,99,252,193,116,99,252,193,118,99,252,193,120,99,252,193,34,100,252,193,36,100,252,193,38,100,252,193,166,100,252,193,100,101,252,193,102,101,252,193,60,102,252,193,246,102,252,193,248,102,252,193,250,102,252,193,188,103,252,193,190,103,252,193,254,104,252,193,2,105,252,193,206,105,252,193,96,107,252,193,98,107,252,193,150,107,252,193,254,107,252,193,2,108,252,206,128,56,0,206,128,56,0,206,128,56,0,206,128,56,0,193,194,97,252,193,196,97,252,193,198,97,252,193,200,97,252,193,202,97,252,193,222,97,252,193,224,97,252,193,226,97,252,193,228,97,252,193,230,97,252,193,232,97,252,193,234,97,252,193,236,97,252,193,250,97,252,193,238,97,252,193,252,97,252,193,254,97,252,193,2,98,252,193,4,98,252,193,6,98,252,193,8,98,252,193,18,98,252,193,20,98,252,193,22,98,252,193,24,98,252,193,26,98,252,193,28,98,252,193,42,98,252,193,44,98,252,193,46,98,252,193,52,98,252,193,54,98,252,193,56,98,252,193,62,98,252,193,64,98,252,193,68,98,252,193,70,98,252,193,72,98,252,193,74,98,252,193,76,98,252,193,78,98,252,193,80,98,252,193,84,98,252,193,90,98,252,193,94,98,252,193,96,98,252,193,98,98,252,193,102,98,252,193,104,98,252,193,106,98,252,193,112,98,252,193,120,98,252,193,114,98,252,193,132,98,252,193,134,98,252,193,136,98,252,193,140,98,252,193,142,98,252,193,158,98,252,193,162,98,252,193,122,98,252,193,124,98,252,193,146,98,252,193,154,98,252,193,156,98,252,193,160,98,252,193,130,99,252,193,132,99,252,193,54,100,252,193,56,100,252,193,180,100,252,193,182,100,252,193,184,100,252,193,186,100,252,193,114,101,252,193,116,101,252,193,118,101,252,193,120,101,252,193,122,101,252,193,70,102,252,193,72,102,252,193,74,102,252,193,76,102,252,193,4,103,252,193,6,103,252,193,8,103,252,193,10,103,252,193,12,103,252,193,14,103,252,193,16,103,252,193,196,103,252,193,90,104,252,193,126,98,252,193,148,98,252,193,134,99,252,193,136,99,252,193,138,99,252,193,140,99,252,193,142,99,252,193,144,99,252,193,146,99,252,193,58,100,252,193,60,100,252,193,188,100,252,193,190,100,252,193,124,101,252,193,126,101,252,193,128,101,252,193,78,102,252,193,80,102,252,193,82,102,252,193,84,102,252,193,86,102,252,193,18,103,252,193,20,103,252,193,22,103,252,193,24,103,252,193,26,103,252,193,198,103,252,193,200,103,252,193,202,103,252,193,204,103,252,193,108,104,252,193,110,104,252,193,164,98,252,193,166,98,252,193,168,98,252,193,172,98,252,193,174,98,252,193,178,98,252,193,196,98,252,193,198,98,252,193,200,98,252,193,202,98,252,193,204,98,252,193,206,98,252,193,208,98,252,193,210,98,252,193,212,98,252,193,240,98,252,193,242,98,252,193,244,98,252,193,246,98,252,193,248,98,252,193,250,98,252,193,252,98,252,193,254,98,252,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,193,230,98,252,193,6,99,252,193,8,99,252,193,10,99,252,193,12,99,252,193,14,99,252,193,16,99,252,193,18,99,252,193,20,99,252,193,22,99,252,193,24,99,252,193,26,99,252,193,28,99,252,193,30,99,252,193,32,99,252,193,34,99,252,193,148,99,252,193,150,99,252,193,152,99,252,193,154,99,252,193,156,99,252,193,158,99,252,193,160,99,252,193,162,99,252,193,164,99,252,193,166,99,252,193,36,99,252,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,160,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,193,128,99,252,193,42,100,252,193,44,100,252,193,46,100,252,193,48,100,252,193,50,100,252,193,52,100,252,193,168,100,252,193,170,100,252,193,172,100,252,193,174,100,252,193,176,100,252,193,178,100,252,193,104,101,252,193,106,101,252,193,108,101,252,193,110,101,252,193,112,101,252,193,62,102,252,193,64,102,252,193,66,102,252,193,68,102,252,193,252,102,252,193,254,102,252,193,2,103,252,193,194,103,252,193,86,104,252,193,88,104,252,193,4,105,252,193,6,105,252,193,126,105,252,193,54,106,252,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,206,192,56,0,193,62,100,252,193,64,100,252,193,66,100,252,193,68,100,252,193,70,100,252,193,72,100,252,193,74,100,252,193,76,100,252,193,78,100,252,193,80,100,252,193,82,100,252,193,84,100,252,193,86,100,252,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,193,204,99,252,193,206,99,252,193,208,99,252,193,210,99,252,193,212,99,252,193,214,99,252,193,216,99,252,193,218,99,252,193,220,99,252,193,222,99,252,193,88,100,252,193,90,100,252,193,92,100,252,193,94,100,252,193,96,100,252,193,98,100,252,193,100,100,252,193,102,100,252,193,104,100,252,193,234,100,252,193,236,100,252,193,238,100,252,193,240,100,252,193,242,100,252,193,244,100,252,193,246,100,252,193,248,100,252,193,250,100,252,193,252,100,252,193,254,100,252,193,2,101,252,193,4,101,252,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,224,56,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,206,0,57,0,193,10,101,252,193,12,101,252,193,14,101,252,193,16,101,252,193,18,101,252,193,20,101,252,193,22,101,252,193,24,101,252,193,26,101,252,193,28,101,252,193,30,101,252,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,32,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,193,6,101,252,193,8,101,252,193,184,101,252,193,186,101,252,193,188,101,252,193,190,101,252,193,192,101,252,193,194,101,252,193,196,101,252,193,198,101,252,193,128,102,252,193,130,102,252,193,132,102,252,193,134,102,252,193,136,102,252,193,138,102,252,193,140,102,252,193,142,102,252,193,144,102,252,193,146,102,252,193,148,102,252,193,150,102,252,193,62,103,252,193,64,103,252,193,66,103,252,193,68,103,252,193,70,103,252,193,72,103,252,193,74,103,252,193,76,103,252,193,78,103,252,193,80,103,252,193,32,101,252,193,34,101,252,193,36,101,252,193,38,101,252,193,40,101,252,193,42,101,252,193,44,101,252,193,46,101,252,193,48,101,252,193,50,101,252,193,52,101,252,193,54,101,252,193,56,101,252,193,58,101,252,193,60,101,252,193,62,101,252,193,64,101,252,193,66,101,252,193,68,101,252,193,70,101,252,193,72,101,252,193,74,101,252,193,76,101,252,193,78,101,252,193,80,101,252,193,82,101,252,193,84,101,252,193,86,101,252,193,88,101,252,193,90,101,252,193,92,101,252,193,94,101,252,193,96,101,252,193,98,101,252,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,206,64,57,0,193,88,102,252,193,90,102,252,193,92,102,252,193,94,102,252,193,96,102,252,193,98,102,252,193,100,102,252,193,102,102,252,193,104,102,252,193,106,102,252,193,108,102,252,193,110,102,252,193,112,102,252,193,114,102,252,193,116,102,252,193,118,102,252,193,120,102,252,193,122,102,252,193,28,103,252,193,30,103,252,193,32,103,252,193,34,103,252,193,36,103,252,193,38,103,252,193,124,102,252,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,96,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,193,40,103,252,193,42,103,252,193,44,103,252,193,46,103,252,193,48,103,252,193,50,103,252,193,52,103,252,193,126,102,252,193,54,103,252,193,56,103,252,193,58,103,252,193,60,103,252,193,206,103,252,193,208,103,252,193,210,103,252,193,212,103,252,193,214,103,252,193,216,103,252,193,218,103,252,193,220,103,252,193,222,103,252,193,224,103,252,193,226,103,252,193,228,103,252,193,230,103,252,193,232,103,252,193,234,103,252,193,236,103,252,193,238,103,252,193,240,103,252,193,242,103,252,193,244,103,252,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,128,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,193,82,103,252,193,84,103,252,193,248,103,252,193,250,103,252,193,252,103,252,193,254,103,252,193,2,104,252,193,4,104,252,193,6,104,252,193,142,104,252,193,144,104,252,193,60,105,252,193,62,105,252,193,64,105,252,193,66,105,252,193,68,105,252,193,70,105,252,193,146,105,252,193,148,105,252,193,150,105,252,193,228,105,252,193,26,106,252,193,28,106,252,193,30,106,252,193,66,106,252,193,86,106,252,193,108,106,252,193,110,106,252,193,144,106,252,193,18,107,252,193,62,107,252,193,122,107,252,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,206,160,57,0,193,8,104,252,193,10,104,252,193,12,104,252,193,114,104,252,193,116,104,252,193,118,104,252,193,120,104,252,193,122,104,252,193,124,104,252,193,126,104,252,193,128,104,252,193,130,104,252,193,132,104,252,193,246,103,252,193,134,104,252,193,136,104,252,193,138,104,252,193,140,104,252,193,28,105,252,193,30,105,252,193,32,105,252,193,34,105,252,193,36,105,252,193,38,105,252,193,40,105,252,193,42,105,252,193,44,105,252,193,46,105,252,193,48,105,252,193,50,105,252,193,52,105,252,193,54,105,252,193,56,105,252,193,58,105,252,193,138,105,252,193,14,104,252,193,16,104,252,193,18,104,252,193,20,104,252,193,22,104,252,193,24,104,252,193,26,104,252,193,28,104,252,193,30,104,252,193,32,104,252,193,34,104,252,193,36,104,252,193,38,104,252,193,40,104,252,193,42,104,252,193,44,104,252,193,46,104,252,193,48,104,252,193,50,104,252,193,52,104,252,193,54,104,252,193,56,104,252,193,58,104,252,193,60,104,252,193,62,104,252,193,64,104,252,193,66,104,252,193,68,104,252,193,70,104,252,193,72,104,252,193,74,104,252,193,76,104,252,193,78,104,252,193,80,104,252,193,82,104,252,193,146,104,252,193,148,104,252,193,150,104,252,193,152,104,252,193,154,104,252,193,156,104,252,193,158,104,252,193,160,104,252,193,162,104,252,193,164,104,252,193,166,104,252,193,168,104,252,193,170,104,252,193,172,104,252,193,174,104,252,193,176,104,252,193,178,104,252,193,180,104,252,193,182,104,252,193,184,104,252,193,186,104,252,193,188,104,252,193,190,104,252,193,192,104,252,193,194,104,252,193,196,104,252,193,198,104,252,193,84,104,252,193,200,104,252,193,92,104,252,193,94,104,252,193,96,104,252,193,98,104,252,193,100,104,252,193,102,104,252,193,104,104,252,193,106,104,252,193,8,105,252,193,10,105,252,193,12,105,252,193,14,105,252,193,16,105,252,193,18,105,252,193,128,105,252,193,130,105,252,193,208,105,252,193,210,105,252,193,212,105,252,193,214,105,252,193,216,105,252,193,8,106,252,193,10,106,252,193,12,106,252,193,58,106,252,193,120,106,252,193,122,106,252,193,140,106,252,193,148,106,252,193,158,106,252,193,180,106,252,193,182,106,252,193,112,104,252,193,20,105,252,193,22,105,252,193,24,105,252,193,26,105,252,193,132,105,252,193,134,105,252,193,136,105,252,193,218,105,252,193,14,106,252,193,80,106,252,193,154,106,252,193,166,106,252,193,168,106,252,193,184,106,252,193,192,106,252,193,218,106,252,193,228,106,252,193,8,107,252,193,50,107,252,193,52,107,252,193,170,107,252,193,210,107,252,193,212,107,252,193,214,107,252,193,8,108,252,193,68,108,252,193,70,108,252,193,72,108,252,193,186,108,252,193,32,109,252,193,110,109,252,193,202,104,252,193,204,104,252,193,206,104,252,193,208,104,252,193,210,104,252,193,212,104,252,193,214,104,252,193,216,104,252,193,218,104,252,193,220,104,252,193,222,104,252,193,224,104,252,193,226,104,252,193,228,104,252,193,230,104,252,193,232,104,252,193,234,104,252,193,236,104,252,193,238,104,252,193,240,104,252,193,242,104,252,193,244,104,252,193,246,104,252,193,248,104,252,193,250,104,252,193,252,104,252,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,192,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,193,140,105,252,193,142,105,252,193,220,105,252,193,144,105,252,193,222,105,252,193,224,105,252,193,226,105,252,193,16,106,252,193,18,106,252,193,20,106,252,193,22,106,252,193,24,106,252,193,60,106,252,193,62,106,252,193,64,106,252,193,82,106,252,193,84,106,252,193,104,106,252,193,106,106,252,193,130,106,252,193,142,106,252,193,152,106,252,193,156,106,252,193,164,106,252,193,170,106,252,193,172,106,252,193,174,106,252,193,202,106,252,193,204,106,252,193,250,106,252,193,252,106,252,193,254,106,252,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,206,224,57,0,193,230,105,252,193,232,105,252,193,234,105,252,193,236,105,252,193,238,105,252,193,240,105,252,193,242,105,252,193,244,105,252,193,246,105,252,193,248,105,252,193,250,105,252,193,252,105,252,193,254,105,252,193,2,106,252,193,4,106,252,193,6,106,252,193,32,106,252,193,34,106,252,193,36,106,252,193,38,106,252,193,40,106,252,193,42,106,252,193,44,106,252,193,46,106,252,193,48,106,252,193,50,106,252,193,52,106,252,193,68,106,252,193,70,106,252,193,72,106,252,193,74,106,252,193,76,106,252,193,88,106,252,193,90,106,252,193,92,106,252,193,94,106,252,193,96,106,252,193,98,106,252,193,100,106,252,193,102,106,252,193,112,106,252,193,114,106,252,193,116,106,252,193,118,106,252,193,124,106,252,193,126,106,252,193,128,106,252,193,132,106,252,193,56,106,252,193,78,106,252,193,214,106,252,193,6,107,252,193,100,107,252,193,102,107,252,193,154,107,252,193,156,107,252,193,198,107,252,193,200,107,252,193,4,108,252,193,52,108,252,193,54,108,252,193,56,108,252,193,58,108,252,193,106,108,252,193,108,108,252,193,10,109,252,193,72,109,252,193,102,109,252,193,104,109,252,193,190,109,252,193,38,110,252,193,216,110,252,193,4,111,252,193,6,111,252,193,72,111,252,193,74,111,252,193,138,111,252,193,140,111,252,193,142,111,252,193,182,111,252,193,134,106,252,193,136,106,252,193,138,106,252,193,146,106,252,193,150,106,252,193,160,106,252,193,162,106,252,193,176,106,252,193,178,106,252,193,186,106,252,193,188,106,252,193,190,106,252,193,194,106,252,193,196,106,252,193,198,106,252,193,206,106,252,193,208,106,252,193,210,106,252,193,212,106,252,193,220,106,252,193,222,106,252,193,224,106,252,193,230,106,252,193,234,106,252,193,236,106,252,193,240,106,252,193,242,106,252,193,248,106,252,193,244,106,252,193,2,107,252,193,4,107,252,193,20,107,252,193,200,106,252,193,216,106,252,193,226,106,252,193,232,106,252,193,238,106,252,193,246,106,252,193,26,107,252,193,42,107,252,193,44,107,252,193,46,107,252,193,48,107,252,193,104,107,252,193,106,107,252,193,108,107,252,193,158,107,252,193,160,107,252,193,162,107,252,193,164,107,252,193,166,107,252,193,168,107,252,193,202,107,252,193,204,107,252,193,206,107,252,193,208,107,252,193,6,108,252,193,60,108,252,193,62,108,252,193,64,108,252,193,66,108,252,193,110,108,252,193,112,108,252,193,142,108,252,193,10,107,252,193,12,107,252,193,14,107,252,193,16,107,252,193,28,107,252,193,54,107,252,193,56,107,252,193,58,107,252,193,60,107,252,193,112,107,252,193,114,107,252,193,116,107,252,193,118,107,252,193,120,107,252,193,172,107,252,193,174,107,252,193,176,107,252,193,178,107,252,193,216,107,252,193,218,107,252,193,220,107,252,193,222,107,252,193,224,107,252,193,10,108,252,193,12,108,252,193,14,108,252,193,114,108,252,193,116,108,252,193,118,108,252,193,120,108,252,193,122,108,252,193,144,108,252,193,22,107,252,193,24,107,252,193,30,107,252,193,32,107,252,193,34,107,252,193,36,107,252,193,38,107,252,193,40,107,252,193,64,107,252,193,66,107,252,193,68,107,252,193,70,107,252,193,72,107,252,193,74,107,252,193,76,107,252,193,78,107,252,193,80,107,252,193,82,107,252,193,84,107,252,193,86,107,252,193,88,107,252,193,90,107,252,193,92,107,252,193,94,107,252,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,206,0,58,0,193,184,107,252,193,186,107,252,193,188,107,252,193,190,107,252,193,192,107,252,193,194,107,252,193,196,107,252,193,228,107,252,193,230,107,252,193,232,107,252,193,234,107,252,193,236,107,252,193,238,107,252,193,240,107,252,193,242,107,252,193,244,107,252,193,246,107,252,193,248,107,252,193,250,107,252,193,252,107,252,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,193,180,107,252,193,182,107,252,193,16,108,252,193,74,108,252,193,76,108,252,193,124,108,252,193,150,108,252,193,208,108,252,193,242,108,252,193,20,109,252,193,36,109,252,193,52,109,252,193,54,109,252,193,78,109,252,193,80,109,252,193,120,109,252,193,122,109,252,193,166,109,252,193,204,109,252,193,206,109,252,193,4,110,252,193,6,110,252,193,48,110,252,193,50,110,252,193,78,110,252,193,118,110,252,193,154,110,252,193,202,110,252,193,232,110,252,193,234,110,252,193,28,111,252,193,30,111,252,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,206,32,58,0,193,78,108,252,193,80,108,252,193,82,108,252,193,84,108,252,193,86,108,252,193,88,108,252,193,90,108,252,193,92,108,252,193,94,108,252,193,96,108,252,193,98,108,252,193,100,108,252,193,126,108,252,193,128,108,252,193,130,108,252,193,132,108,252,193,134,108,252,193,136,108,252,193,138,108,252,193,152,108,252,193,154,108,252,193,156,108,252,193,158,108,252,193,160,108,252,193,48,108,252,193,50,108,252,193,102,108,252,193,104,108,252,193,140,108,252,193,250,108,252,193,50,109,252,193,70,109,252,193,34,110,252,193,36,110,252,193,252,110,252,193,254,110,252,193,68,111,252,193,70,111,252,193,136,111,252,193,178,111,252,193,180,111,252,193,228,111,252,193,230,111,252,193,20,112,252,193,22,112,252,193,82,112,252,193,146,112,252,193,202,112,252,193,204,112,252,193,236,112,252,193,8,113,252,193,58,113,252,193,82,113,252,193,106,113,252,193,122,113,252,193,228,113,252,193,146,108,252,193,148,108,252,193,164,108,252,193,166,108,252,193,168,108,252,193,170,108,252,193,188,108,252,193,190,108,252,193,192,108,252,193,206,108,252,193,228,108,252,193,230,108,252,193,240,108,252,193,4,109,252,193,26,109,252,193,34,109,252,193,74,109,252,193,76,109,252,193,118,109,252,193,162,109,252,193,164,109,252,193,200,109,252,193,250,109,252,193,252,109,252,193,254,109,252,193,2,110,252,193,46,110,252,193,76,110,252,193,106,110,252,193,116,110,252,193,152,110,252,193,184,110,252,193,162,108,252,193,202,108,252,193,204,108,252,193,106,109,252,193,108,109,252,193,140,109,252,193,142,109,252,193,144,109,252,193,146,109,252,193,148,109,252,193,150,109,252,193,192,109,252,193,236,109,252,193,238,109,252,193,240,109,252,193,40,110,252,193,42,110,252,193,66,110,252,193,68,110,252,193,70,110,252,193,102,110,252,193,104,110,252,193,114,110,252,193,138,110,252,193,148,110,252,193,150,110,252,193,176,110,252,193,182,110,252,193,8,111,252,193,76,111,252,193,78,111,252,193,80,111,252,193,172,108,252,193,174,108,252,193,176,108,252,193,178,108,252,193,180,108,252,193,182,108,252,193,184,108,252,193,194,108,252,193,196,108,252,193,198,108,252,193,200,108,252,193,210,108,252,193,212,108,252,193,214,108,252,193,216,108,252,193,218,108,252,193,220,108,252,193,222,108,252,193,224,108,252,193,226,108,252,193,232,108,252,193,234,108,252,193,236,108,252,193,238,108,252,193,244,108,252,193,246,108,252,193,248,108,252,193,252,108,252,193,254,108,252,193,2,109,252,193,6,109,252,193,8,109,252,193,12,109,252,193,14,109,252,193,16,109,252,193,18,109,252,193,22,109,252,193,24,109,252,193,28,109,252,193,30,109,252,193,38,109,252,193,40,109,252,193,42,109,252,193,44,109,252,193,46,109,252,193,48,109,252,193,56,109,252,193,58,109,252,193,60,109,252,193,62,109,252,193,64,109,252,193,66,109,252,193,68,109,252,193,82,109,252,193,84,109,252,193,86,109,252,193,88,109,252,193,90,109,252,193,92,109,252,193,94,109,252,193,96,109,252,193,98,109,252,193,100,109,252,193,124,109,252,193,112,109,252,193,114,109,252,193,116,109,252,193,152,109,252,193,154,109,252,193,156,109,252,193,158,109,252,193,160,109,252,193,194,109,252,193,196,109,252,193,198,109,252,193,242,109,252,193,244,109,252,193,246,109,252,193,248,109,252,193,44,110,252,193,72,110,252,193,74,110,252,193,194,110,252,193,196,110,252,193,198,110,252,193,218,110,252,193,82,111,252,193,84,111,252,193,86,111,252,193,88,111,252,193,190,111,252,193,192,111,252,193,254,111,252,193,50,112,252,193,52,112,252,193,54,112,252,193,126,109,252,193,128,109,252,193,130,109,252,193,132,109,252,193,134,109,252,193,136,109,252,193,138,109,252,193,168,109,252,193,170,109,252,193,172,109,252,193,174,109,252,193,176,109,252,193,178,109,252,193,180,109,252,193,182,109,252,193,208,109,252,193,184,109,252,193,186,109,252,193,188,109,252,193,210,109,252,193,212,109,252,193,214,109,252,193,216,109,252,193,218,109,252,193,220,109,252,193,222,109,252,193,224,109,252,193,226,109,252,193,228,109,252,193,230,109,252,193,232,109,252,193,234,109,252,193,8,110,252,193,10,110,252,193,12,110,252,193,14,110,252,193,16,110,252,193,18,110,252,193,20,110,252,193,22,110,252,193,24,110,252,193,26,110,252,193,28,110,252,193,30,110,252,193,32,110,252,193,52,110,252,193,54,110,252,193,56,110,252,193,58,110,252,193,60,110,252,193,62,110,252,193,64,110,252,193,80,110,252,193,82,110,252,193,84,110,252,193,86,110,252,193,88,110,252,193,90,110,252,193,92,110,252,193,94,110,252,193,96,110,252,193,98,110,252,193,100,110,252,193,108,110,252,193,110,110,252,193,112,110,252,193,120,110,252,193,122,110,252,193,124,110,252,193,126,110,252,193,128,110,252,193,130,110,252,193,132,110,252,193,134,110,252,193,136,110,252,193,140,110,252,193,142,110,252,193,144,110,252,193,146,110,252,193,156,110,252,193,158,110,252,193,160,110,252,193,162,110,252,193,164,110,252,193,166,110,252,193,168,110,252,193,170,110,252,193,172,110,252,193,174,110,252,193,178,110,252,193,180,110,252,193,196,218,253,193,208,218,253,193,214,218,253,193,218,218,253,193,190,110,252,193,186,110,252,193,188,110,252,193,200,110,252,193,220,110,252,193,222,110,252,193,224,110,252,193,226,110,252,193,228,110,252,193,230,110,252,193,10,111,252,193,12,111,252,193,14,111,252,193,16,111,252,193,18,111,252,193,20,111,252,193,22,111,252,193,24,111,252,193,26,111,252,193,90,111,252,193,92,111,252,193,94,111,252,193,96,111,252,193,98,111,252,193,100,111,252,193,102,111,252,193,148,111,252,193,150,111,252,193,104,111,252,193,152,111,252,193,194,111,252,193,196,111,252,193,198,111,252,193,192,110,252,193,204,110,252,193,206,110,252,193,208,110,252,193,210,110,252,193,212,110,252,193,236,110,252,193,238,110,252,193,240,110,252,193,242,110,252,193,244,110,252,193,246,110,252,193,248,110,252,193,250,110,252,193,34,111,252,193,36,111,252,193,38,111,252,193,40,111,252,193,42,111,252,193,44,111,252,193,46,111,252,193,48,111,252,193,50,111,252,193,52,111,252,193,54,111,252,193,56,111,252,193,58,111,252,193,60,111,252,193,62,111,252,193,64,111,252,193,110,111,252,193,112,111,252,193,32,111,252,193,106,111,252,193,108,111,252,193,154,111,252,193,200,111,252,193,202,111,252,193,10,112,252,193,106,112,252,193,108,112,252,193,164,112,252,193,246,112,252,193,52,113,252,193,70,113,252,193,120,113,252,193,136,113,252,193,138,113,252,193,184,113,252,193,186,113,252,193,188,113,252,193,190,113,252,193,192,113,252,193,46,114,252,193,48,114,252,193,50,114,252,193,52,114,252,193,54,114,252,193,56,114,252,193,58,114,252,193,60,114,252,193,62,114,252,193,64,114,252,193,2,115,252,193,114,111,252,193,116,111,252,193,118,111,252,193,120,111,252,193,122,111,252,193,124,111,252,193,126,111,252,193,128,111,252,193,130,111,252,193,132,111,252,193,134,111,252,193,66,111,252,193,156,111,252,193,158,111,252,193,160,111,252,193,162,111,252,193,164,111,252,193,166,111,252,193,168,111,252,193,170,111,252,193,172,111,252,193,174,111,252,193,176,111,252,193,204,111,252,193,206,111,252,193,208,111,252,193,210,111,252,193,212,111,252,193,214,111,252,193,216,111,252,193,218,111,252,193,220,111,252,193,144,111,252,193,146,111,252,193,188,111,252,193,246,111,252,193,248,111,252,193,250,111,252,193,252,111,252,193,40,112,252,193,42,112,252,193,44,112,252,193,46,112,252,193,48,112,252,193,86,112,252,193,88,112,252,193,90,112,252,193,92,112,252,193,150,112,252,193,214,112,252,193,242,112,252,193,20,113,252,193,22,113,252,193,66,113,252,193,96,113,252,193,164,113,252,193,166,113,252,193,168,113,252,193,234,113,252,193,236,113,252,193,238,113,252,193,240,113,252,193,168,114,252,193,170,114,252,193,184,111,252,193,186,111,252,193,234,111,252,193,236,111,252,193,238,111,252,193,240,111,252,193,242,111,252,193,244,111,252,193,24,112,252,193,26,112,252,193,28,112,252,193,30,112,252,193,32,112,252,193,34,112,252,193,36,112,252,193,38,112,252,193,84,112,252,193,148,112,252,193,206,112,252,193,208,112,252,193,210,112,252,193,212,112,252,193,238,112,252,193,240,112,252,193,10,113,252,193,12,113,252,193,14,113,252,193,16,113,252,193,18,113,252,193,50,113,252,193,60,113,252,193,62,113,252,193,222,111,252,193,224,111,252,193,226,111,252,193,12,112,252,193,14,112,252,193,16,112,252,193,18,112,252,193,58,112,252,193,60,112,252,193,62,112,252,193,64,112,252,193,66,112,252,193,68,112,252,193,70,112,252,193,72,112,252,193,74,112,252,193,76,112,252,193,78,112,252,193,80,112,252,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,206,64,58,0,193,2,112,252,193,4,112,252,193,6,112,252,193,8,112,252,193,56,112,252,193,100,112,252,193,102,112,252,193,104,112,252,193,158,112,252,193,160,112,252,193,162,112,252,193,216,112,252,193,218,112,252,193,26,113,252,193,128,113,252,193,134,113,252,193,172,113,252,193,174,113,252,193,176,113,252,193,178,113,252,193,180,113,252,193,182,113,252,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,193,94,112,252,193,96,112,252,193,98,112,252,193,152,112,252,193,154,112,252,193,156,112,252,193,244,112,252,193,24,113,252,193,68,113,252,193,88,113,252,193,118,113,252,193,170,113,252,193,242,113,252,193,244,113,252,193,246,113,252,193,248,113,252,193,250,113,252,193,184,114,252,193,186,114,252,193,188,114,252,193,190,114,252,193,136,115,252,193,138,115,252,193,140,115,252,193,142,115,252,193,144,115,252,193,146,115,252,193,148,115,252,193,150,115,252,193,86,116,252,193,88,116,252,193,90,116,252,193,234,112,252,193,250,112,252,193,252,112,252,193,254,112,252,193,2,113,252,193,4,113,252,193,6,113,252,193,28,113,252,193,30,113,252,193,32,113,252,193,34,113,252,193,36,113,252,193,38,113,252,193,40,113,252,193,42,113,252,193,44,113,252,193,46,113,252,193,48,113,252,193,54,113,252,193,72,113,252,193,74,113,252,193,76,113,252,193,78,113,252,193,80,113,252,193,90,113,252,193,92,113,252,193,98,113,252,193,100,113,252,193,102,113,252,193,104,113,252,193,94,113,252,193,108,113,252,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,193,4,222,252,193,6,222,252,193,8,222,252,193,10,222,252,193,12,222,252,193,14,222,252,193,16,222,252,193,18,222,252,193,20,222,252,193,32,222,252,193,34,222,252,193,36,222,252,193,38,222,252,193,40,222,252,193,46,222,252,193,48,222,252,193,50,222,252,193,56,113,252,193,52,222,252,193,54,222,252,193,56,222,252,193,64,222,252,193,66,222,252,193,68,222,252,193,64,113,252,193,84,113,252,193,86,113,252,193,112,113,252,193,114,113,252,193,232,113,252,193,164,114,252,193,166,114,252,193,110,115,252,193,112,115,252,193,114,115,252,193,116,115,252,193,118,115,252,193,120,115,252,193,122,115,252,193,124,115,252,193,58,116,252,193,60,116,252,193,62,116,252,193,64,116,252,193,66,116,252,193,68,116,252,193,44,117,252,193,46,117,252,193,20,118,252,193,22,118,252,193,24,118,252,193,26,118,252,193,18,119,252,193,20,119,252,193,224,119,252,193,226,119,252,193,110,113,252,193,116,113,252,193,124,113,252,193,126,113,252,193,130,113,252,193,132,113,252,193,140,113,252,193,142,113,252,193,144,113,252,193,146,113,252,193,148,113,252,193,150,113,252,193,152,113,252,193,154,113,252,193,156,113,252,193,158,113,252,193,160,113,252,193,162,113,252,193,194,113,252,193,196,113,252,193,198,113,252,193,200,113,252,193,202,113,252,193,204,113,252,193,206,113,252,193,208,113,252,193,210,113,252,193,212,113,252,193,214,113,252,193,216,113,252,193,218,113,252,193,220,113,252,193,222,113,252,193,224,113,252,193,226,113,252,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,193,230,113,252,193,158,114,252,193,160,114,252,193,162,114,252,193,100,115,252,193,102,115,252,193,104,115,252,193,106,115,252,193,50,116,252,193,52,116,252,193,54,116,252,193,40,117,252,193,42,117,252,193,12,118,252,193,14,118,252,193,16,118,252,193,18,118,252,193,10,119,252,193,12,119,252,193,14,119,252,193,16,119,252,193,216,119,252,193,218,119,252,193,220,119,252,193,222,119,252,193,162,120,252,193,164,120,252,193,166,120,252,193,94,121,252,193,96,121,252,193,98,121,252,193,100,121,252,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,96,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,128,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,193,172,114,252,193,174,114,252,193,176,114,252,193,178,114,252,193,180,114,252,193,182,114,252,193,126,115,252,193,128,115,252,193,130,115,252,193,132,115,252,193,134,115,252,193,70,116,252,193,72,116,252,193,74,116,252,193,76,116,252,193,78,116,252,193,80,116,252,193,82,116,252,193,84,116,252,193,48,117,252,193,50,117,252,193,52,117,252,193,54,117,252,193,56,117,252,193,58,117,252,193,28,118,252,193,30,118,252,193,32,118,252,193,34,118,252,193,36,118,252,193,38,118,252,193,40,118,252,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,206,160,58,0,193,152,115,252,193,154,115,252,193,156,115,252,193,158,115,252,193,160,115,252,193,162,115,252,193,164,115,252,193,166,115,252,193,168,115,252,193,170,115,252,193,172,115,252,193,174,115,252,193,176,115,252,193,178,115,252,193,180,115,252,193,182,115,252,193,184,115,252,193,186,115,252,193,254,114,252,193,4,115,252,193,6,115,252,193,8,115,252,193,10,115,252,193,12,115,252,193,14,115,252,193,16,115,252,193,190,115,252,193,192,115,252,193,194,115,252,193,196,115,252,193,198,115,252,193,200,115,252,193,202,115,252,193,204,115,252,193,132,116,252,193,134,116,252,193,136,116,252,193,138,116,252,193,140,116,252,193,142,116,252,193,144,116,252,193,146,116,252,193,148,116,252,193,150,116,252,193,152,116,252,193,154,116,252,193,156,116,252,193,158,116,252,193,160,116,252,193,162,116,252,193,164,116,252,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,192,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,193,96,116,252,193,188,115,252,193,98,116,252,193,100,116,252,193,102,116,252,193,104,116,252,193,106,116,252,193,108,116,252,193,110,116,252,193,112,116,252,193,114,116,252,193,116,116,252,193,118,116,252,193,120,116,252,193,122,116,252,193,124,116,252,193,126,116,252,193,128,116,252,193,76,117,252,193,78,117,252,193,80,117,252,193,82,117,252,193,84,117,252,193,86,117,252,193,88,117,252,193,90,117,252,193,92,117,252,193,94,117,252,193,96,117,252,193,98,117,252,193,100,117,252,193,102,117,252,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,224,58,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,193,92,116,252,193,94,116,252,193,60,117,252,193,62,117,252,193,64,117,252,193,66,117,252,193,68,117,252,193,70,117,252,193,72,117,252,193,74,117,252,193,48,118,252,193,50,118,252,193,52,118,252,193,54,118,252,193,56,118,252,193,58,118,252,193,60,118,252,193,62,118,252,193,64,118,252,193,66,118,252,193,68,118,252,193,48,119,252,193,50,119,252,193,52,119,252,193,246,119,252,193,248,119,252,193,250,119,252,193,252,119,252,193,254,119,252,193,2,120,252,193,192,120,252,193,194,120,252,193,166,116,252,193,130,117,252,193,132,117,252,193,134,117,252,193,136,117,252,193,138,117,252,193,140,117,252,193,142,117,252,193,144,117,252,193,146,117,252,193,122,118,252,193,124,118,252,193,126,118,252,193,128,118,252,193,130,118,252,193,132,118,252,193,134,118,252,193,136,118,252,193,138,118,252,193,140,118,252,193,142,118,252,193,144,118,252,193,146,118,252,193,80,119,252,193,82,119,252,193,84,119,252,193,86,119,252,193,88,119,252,193,90,119,252,193,92,119,252,193,94,119,252,193,96,119,252,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,206,0,59,0,193,154,117,252,193,32,117,252,193,34,117,252,193,36,117,252,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,206,32,59,0,193,104,117,252,193,70,118,252,193,106,117,252,193,108,117,252,193,110,117,252,193,112,117,252,193,114,117,252,193,116,117,252,193,118,117,252,193,120,117,252,193,122,117,252,193,124,117,252,193,126,117,252,193,128,117,252,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,193,8,118,252,193,10,118,252,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,193,42,118,252,193,44,118,252,193,46,118,252,193,22,119,252,193,24,119,252,193,26,119,252,193,28,119,252,193,30,119,252,193,32,119,252,193,34,119,252,193,36,119,252,193,38,119,252,193,40,119,252,193,42,119,252,193,44,119,252,193,46,119,252,193,236,119,252,193,238,119,252,193,240,119,252,193,242,119,252,193,244,119,252,193,176,120,252,193,178,120,252,193,180,120,252,193,182,120,252,193,184,120,252,193,186,120,252,193,188,120,252,193,190,120,252,193,108,121,252,193,110,121,252,193,112,121,252,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,206,64,59,0,193,54,119,252,193,56,119,252,193,58,119,252,193,60,119,252,193,62,119,252,193,64,119,252,193,66,119,252,193,68,119,252,193,70,119,252,193,72,119,252,193,74,119,252,193,76,119,252,193,78,119,252,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,96,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,193,98,119,252,193,100,119,252,193,36,120,252,193,38,120,252,193,40,120,252,193,42,120,252,193,44,120,252,193,46,120,252,193,48,120,252,193,50,120,252,193,52,120,252,193,240,120,252,193,242,120,252,193,244,120,252,193,246,120,252,193,248,120,252,193,250,120,252,193,252,120,252,193,254,120,252,193,2,121,252,193,144,121,252,193,146,121,252,193,148,121,252,193,150,121,252,193,152,121,252,193,154,121,252,193,156,121,252,193,98,122,252,193,100,122,252,193,102,122,252,193,104,122,252,193,156,122,252,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,128,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,206,192,59,0,193,214,119,252,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,193,228,119,252,193,230,119,252,193,232,119,252,193,234,119,252,193,168,120,252,193,170,120,252,193,172,120,252,193,174,120,252,193,104,121,252,193,106,121,252,193,72,122,252,193,192,122,252,193,24,123,252,193,68,123,252,193,150,123,252,193,180,123,252,193,92,124,252,193,94,124,252,193,184,124,252,193,186,124,252,193,232,124,252,193,86,125,252,193,98,125,252,193,112,125,252,193,122,125,252,193,162,125,252,193,214,125,252,193,216,125,252,193,218,125,252,193,102,126,252,193,104,126,252,193,106,126,252,206,160,59,0,206,160,59,0,206,160,59,0,206,160,59,0,193,200,120,252,193,202,120,252,193,204,120,252,193,206,120,252,193,208,120,252,193,210,120,252,193,212,120,252,193,214,120,252,193,216,120,252,193,218,120,252,193,220,120,252,193,222,120,252,193,224,120,252,193,226,120,252,193,228,120,252,193,230,120,252,193,232,120,252,193,234,120,252,193,236,120,252,193,238,120,252,193,122,121,252,193,124,121,252,193,126,121,252,193,128,121,252,193,130,121,252,193,132,121,252,193,134,121,252,193,136,121,252,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,224,59,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,206,0,60,0,193,160,120,252,193,92,121,252,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,193,196,120,252,193,198,120,252,193,118,121,252,193,120,121,252,193,250,121,252,193,252,121,252,193,254,121,252,193,84,122,252,193,86,122,252,193,146,122,252,193,202,122,252,193,232,122,252,193,52,123,252,193,62,123,252,193,80,123,252,193,100,123,252,193,114,123,252,193,152,123,252,193,18,124,252,193,28,124,252,193,64,124,252,193,66,124,252,193,98,124,252,193,188,124,252,193,238,124,252,193,240,124,252,193,10,125,252,193,40,125,252,193,42,125,252,193,44,125,252,193,58,125,252,193,60,125,252,193,102,121,252,193,70,122,252,193,144,122,252,193,188,122,252,193,190,122,252,193,48,123,252,193,78,123,252,193,136,123,252,193,56,124,252,193,58,124,252,193,150,124,252,193,230,124,252,193,6,125,252,193,30,125,252,193,32,125,252,193,116,125,252,193,120,125,252,193,96,126,252,193,98,126,252,193,100,126,252,193,66,127,252,193,68,127,252,193,70,127,252,193,72,127,252,193,74,127,252,193,36,128,252,193,38,128,252,193,40,128,252,193,42,128,252,193,44,128,252,193,214,128,252,193,216,128,252,193,114,121,252,193,116,121,252,193,236,121,252,193,238,121,252,193,240,121,252,193,242,121,252,193,244,121,252,193,246,121,252,193,248,121,252,193,74,122,252,193,76,122,252,193,78,122,252,193,80,122,252,193,82,122,252,193,194,122,252,193,196,122,252,193,198,122,252,193,200,122,252,193,230,122,252,193,12,123,252,193,14,123,252,193,56,123,252,193,60,123,252,193,96,123,252,193,98,123,252,193,110,123,252,193,112,123,252,193,198,123,252,193,208,123,252,193,26,124,252,193,60,124,252,193,62,124,252,193,138,121,252,193,140,121,252,193,142,121,252,193,2,122,252,193,4,122,252,193,6,122,252,193,8,122,252,193,10,122,252,193,12,122,252,193,14,122,252,193,16,122,252,193,88,122,252,193,90,122,252,193,92,122,252,193,94,122,252,193,96,122,252,193,148,122,252,193,150,122,252,193,152,122,252,193,154,122,252,193,234,122,252,193,254,122,252,193,26,123,252,193,2,123,252,193,16,123,252,193,18,123,252,193,28,123,252,193,54,123,252,193,70,123,252,193,82,123,252,193,116,123,252,193,118,123,252,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,206,32,60,0,193,18,122,252,193,20,122,252,193,22,122,252,193,24,122,252,193,26,122,252,193,28,122,252,193,30,122,252,193,32,122,252,193,34,122,252,193,36,122,252,193,38,122,252,193,40,122,252,193,42,122,252,193,44,122,252,193,46,122,252,193,48,122,252,193,50,122,252,193,52,122,252,193,54,122,252,193,56,122,252,193,58,122,252,193,60,122,252,193,48,144,253,193,62,122,252,193,64,122,252,193,66,122,252,193,68,122,252,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,206,64,60,0,193,160,122,252,193,162,122,252,193,164,122,252,193,166,122,252,193,168,122,252,193,170,122,252,193,172,122,252,193,174,122,252,193,176,122,252,193,178,122,252,193,180,122,252,193,182,122,252,193,184,122,252,193,206,122,252,193,208,122,252,193,210,122,252,193,212,122,252,193,214,122,252,193,216,122,252,193,158,122,252,193,204,122,252,193,236,122,252,193,238,122,252,193,20,123,252,193,50,123,252,193,64,123,252,193,72,123,252,193,102,123,252,193,154,123,252,193,210,123,252,193,212,123,252,193,214,123,252,193,246,123,252,193,8,124,252,193,70,124,252,193,72,124,252,193,104,124,252,193,106,124,252,193,160,124,252,193,192,124,252,193,242,124,252,193,136,125,252,193,148,125,252,193,186,125,252,193,188,125,252,193,28,126,252,193,30,126,252,193,32,126,252,193,34,126,252,193,36,126,252,193,210,126,252,193,218,122,252,193,220,122,252,193,186,122,252,193,222,122,252,193,88,27,253,193,224,122,252,193,226,122,252,193,228,122,252,193,240,122,252,193,242,122,252,193,244,122,252,193,246,122,252,193,248,122,252,193,250,122,252,193,252,122,252,193,4,123,252,193,6,123,252,193,8,123,252,193,10,123,252,193,22,123,252,193,30,123,252,193,32,123,252,193,34,123,252,193,36,123,252,193,38,123,252,193,40,123,252,193,42,123,252,193,44,123,252,193,46,123,252,193,58,123,252,193,66,123,252,193,74,123,252,193,76,123,252,193,84,123,252,193,86,123,252,193,88,123,252,193,90,123,252,193,92,123,252,193,94,123,252,193,104,123,252,193,106,123,252,193,108,123,252,193,120,123,252,193,122,123,252,193,124,123,252,193,126,123,252,193,128,123,252,193,130,123,252,193,132,123,252,193,134,123,252,193,142,123,252,193,144,123,252,193,146,123,252,193,148,123,252,193,156,123,252,193,158,123,252,193,160,123,252,193,162,123,252,193,164,123,252,193,166,123,252,193,168,123,252,193,170,123,252,193,172,123,252,193,174,123,252,193,138,123,252,193,10,124,252,193,16,124,252,193,20,124,252,193,30,124,252,193,32,124,252,193,36,124,252,193,38,124,252,193,40,124,252,193,68,124,252,193,100,124,252,193,102,124,252,193,156,124,252,193,158,124,252,193,190,124,252,193,68,125,252,193,70,125,252,193,102,125,252,193,114,125,252,193,134,125,252,193,142,125,252,193,144,125,252,193,146,125,252,193,164,125,252,193,166,125,252,193,168,125,252,193,170,125,252,193,172,125,252,193,174,125,252,193,176,125,252,193,178,125,252,193,180,125,252,193,176,123,252,193,178,123,252,193,182,123,252,193,184,123,252,193,186,123,252,193,188,123,252,193,190,123,252,193,192,123,252,193,194,123,252,193,196,123,252,193,200,123,252,193,202,123,252,193,204,123,252,193,206,123,252,193,224,123,252,193,216,123,252,193,218,123,252,193,220,123,252,193,222,123,252,193,226,123,252,193,228,123,252,193,230,123,252,193,232,123,252,193,234,123,252,193,236,123,252,193,238,123,252,193,240,123,252,193,242,123,252,193,244,123,252,193,254,123,252,193,248,123,252,193,250,123,252,193,252,123,252,193,2,124,252,193,4,124,252,193,6,124,252,193,12,124,252,193,14,124,252,193,22,124,252,193,24,124,252,193,34,124,252,193,42,124,252,193,44,124,252,193,46,124,252,193,48,124,252,193,50,124,252,193,52,124,252,193,54,124,252,193,74,124,252,193,76,124,252,193,78,124,252,193,80,124,252,193,82,124,252,193,84,124,252,193,86,124,252,193,88,124,252,193,90,124,252,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,193,96,124,252,193,152,124,252,193,154,124,252,193,234,124,252,193,236,124,252,193,8,125,252,193,34,125,252,193,36,125,252,193,38,125,252,193,56,125,252,193,118,125,252,193,220,125,252,193,222,125,252,193,114,126,252,193,116,126,252,193,88,127,252,193,90,127,252,193,92,127,252,193,94,127,252,193,96,127,252,193,98,127,252,193,54,128,252,193,56,128,252,193,58,128,252,193,60,128,252,193,236,128,252,193,238,128,252,193,240,128,252,193,242,128,252,193,244,128,252,193,246,128,252,193,248,128,252,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,206,96,60,0,193,164,124,252,193,166,124,252,193,168,124,252,193,170,124,252,193,172,124,252,193,174,124,252,193,176,124,252,193,178,124,252,193,180,124,252,193,182,124,252,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,206,128,60,0,193,244,124,252,193,246,124,252,193,248,124,252,193,250,124,252,193,252,124,252,193,254,124,252,193,2,125,252,193,4,125,252,193,12,125,252,193,14,125,252,193,16,125,252,193,18,125,252,193,20,125,252,193,22,125,252,193,24,125,252,193,26,125,252,193,28,125,252,193,46,125,252,193,48,125,252,193,50,125,252,193,52,125,252,193,54,125,252,193,62,125,252,193,64,125,252,193,66,125,252,193,100,125,252,193,224,125,252,193,118,126,252,193,120,126,252,193,122,126,252,193,124,126,252,193,126,126,252,193,128,126,252,193,130,126,252,193,132,126,252,193,100,127,252,193,102,127,252,193,104,127,252,193,106,127,252,193,108,127,252,193,110,127,252,193,62,128,252,193,64,128,252,193,66,128,252,193,68,128,252,193,70,128,252,193,72,128,252,193,74,128,252,193,76,128,252,193,78,128,252,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,193,72,125,252,193,74,125,252,193,76,125,252,193,78,125,252,193,80,125,252,193,82,125,252,193,84,125,252,193,88,125,252,193,90,125,252,193,92,125,252,193,94,125,252,193,96,125,252,193,104,125,252,193,106,125,252,193,108,125,252,193,110,125,252,193,128,125,252,193,124,125,252,193,126,125,252,193,130,125,252,193,132,125,252,193,138,125,252,193,140,125,252,193,150,125,252,193,152,125,252,193,154,125,252,193,156,125,252,193,158,125,252,193,160,125,252,193,190,125,252,193,192,125,252,193,194,125,252,193,182,125,252,193,184,125,252,193,228,125,252,193,230,125,252,193,232,125,252,193,234,125,252,193,236,125,252,193,238,125,252,193,240,125,252,193,242,125,252,193,244,125,252,193,246,125,252,193,248,125,252,193,250,125,252,193,252,125,252,193,254,125,252,193,2,126,252,193,4,126,252,193,6,126,252,193,8,126,252,193,10,126,252,193,12,126,252,193,14,126,252,193,16,126,252,193,18,126,252,193,20,126,252,193,22,126,252,193,24,126,252,193,26,126,252,193,134,126,252,193,136,126,252,193,138,126,252,193,196,125,252,193,198,125,252,193,200,125,252,193,202,125,252,193,204,125,252,193,206,125,252,193,208,125,252,193,210,125,252,193,212,125,252,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,160,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,193,108,126,252,193,110,126,252,193,112,126,252,193,76,127,252,193,78,127,252,193,80,127,252,193,82,127,252,193,84,127,252,193,86,127,252,193,46,128,252,193,48,128,252,193,50,128,252,193,52,128,252,193,226,128,252,193,228,128,252,193,230,128,252,193,232,128,252,193,234,128,252,193,236,129,252,193,238,129,252,193,240,129,252,193,242,129,252,193,204,130,252,193,206,130,252,193,208,130,252,193,210,130,252,193,212,130,252,193,140,131,252,193,52,132,252,193,54,132,252,193,56,132,252,193,240,132,252,193,140,126,252,193,142,126,252,193,144,126,252,193,146,126,252,193,148,126,252,193,150,126,252,193,152,126,252,193,154,126,252,193,156,126,252,193,158,126,252,193,160,126,252,193,162,126,252,193,164,126,252,193,166,126,252,193,168,126,252,193,170,126,252,193,172,126,252,193,174,126,252,193,176,126,252,193,178,126,252,193,180,126,252,193,182,126,252,193,184,126,252,193,186,126,252,193,188,126,252,193,190,126,252,193,192,126,252,193,194,126,252,193,196,126,252,193,198,126,252,193,200,126,252,193,202,126,252,193,204,126,252,193,206,126,252,193,112,127,252,193,114,127,252,193,116,127,252,193,118,127,252,193,120,127,252,193,122,127,252,193,124,127,252,193,126,127,252,193,128,127,252,193,130,127,252,193,132,127,252,193,134,127,252,193,136,127,252,193,138,127,252,193,140,127,252,193,142,127,252,193,144,127,252,193,146,127,252,193,148,127,252,193,150,127,252,193,152,127,252,193,154,127,252,193,156,127,252,193,158,127,252,193,160,127,252,193,162,127,252,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,193,212,126,252,193,214,126,252,193,216,126,252,193,218,126,252,193,220,126,252,193,222,126,252,193,224,126,252,193,226,126,252,193,228,126,252,193,166,127,252,193,168,127,252,193,170,127,252,193,172,127,252,193,174,127,252,193,176,127,252,193,178,127,252,193,136,128,252,193,138,128,252,193,140,128,252,193,142,128,252,193,144,128,252,193,146,128,252,193,148,128,252,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,192,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,224,60,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,206,0,61,0,193,20,129,252,193,22,129,252,193,24,129,252,193,26,129,252,193,28,129,252,193,30,129,252,193,20,130,252,193,32,129,252,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,32,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,193,218,128,252,193,220,128,252,193,222,128,252,193,224,128,252,193,224,129,252,193,226,129,252,193,228,129,252,193,230,129,252,193,232,129,252,193,234,129,252,193,200,130,252,193,202,130,252,193,134,131,252,193,136,131,252,193,138,131,252,193,40,132,252,193,42,132,252,193,44,132,252,193,46,132,252,193,48,132,252,193,50,132,252,193,234,132,252,193,236,132,252,193,238,132,252,193,112,133,252,193,114,133,252,193,116,133,252,193,192,133,252,193,194,133,252,193,196,133,252,193,86,134,252,193,154,134,252,193,250,128,252,193,252,128,252,193,244,129,252,193,246,129,252,193,248,129,252,193,250,129,252,193,252,129,252,193,254,129,252,193,2,130,252,193,4,130,252,193,6,130,252,193,8,130,252,193,214,130,252,193,216,130,252,193,218,130,252,193,220,130,252,193,222,130,252,193,224,130,252,193,226,130,252,193,228,130,252,193,230,130,252,193,232,130,252,193,142,131,252,193,144,131,252,193,146,131,252,193,148,131,252,193,150,131,252,206,0,62,0,206,0,62,0,206,0,62,0,206,0,62,0,206,0,62,0,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,206,64,61,0,193,10,130,252,193,12,130,252,193,14,130,252,193,16,130,252,193,18,130,252,193,234,130,252,193,236,130,252,193,238,130,252,193,240,130,252,193,242,130,252,193,244,130,252,193,152,131,252,193,154,131,252,193,156,131,252,193,158,131,252,193,160,131,252,193,162,131,252,193,164,131,252,193,166,131,252,193,76,132,252,193,78,132,252,193,80,132,252,193,82,132,252,193,84,132,252,193,86,132,252,193,88,132,252,193,34,129,252,193,36,129,252,193,38,129,252,193,40,129,252,193,42,129,252,193,44,129,252,193,46,129,252,193,48,129,252,193,50,129,252,193,52,129,252,193,54,129,252,193,56,129,252,193,58,129,252,193,60,129,252,193,62,129,252,193,64,129,252,193,66,129,252,193,68,129,252,193,70,129,252,193,72,129,252,193,74,129,252,193,76,129,252,193,78,129,252,193,80,129,252,193,82,129,252,193,84,129,252,193,86,129,252,193,88,129,252,193,90,129,252,193,22,130,252,193,24,130,252,193,26,130,252,193,28,130,252,193,30,130,252,193,32,130,252,193,34,130,252,193,36,130,252,193,38,130,252,193,40,130,252,193,42,130,252,193,44,130,252,193,46,130,252,193,48,130,252,193,50,130,252,193,52,130,252,193,54,130,252,193,56,130,252,193,58,130,252,193,92,129,252,193,60,130,252,193,62,130,252,193,64,130,252,193,66,130,252,193,68,130,252,193,70,130,252,193,72,130,252,193,74,130,252,193,76,130,252,193,246,130,252,193,248,130,252,193,250,130,252,193,252,130,252,193,254,130,252,193,2,131,252,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,206,96,61,0,193,80,130,252,193,82,130,252,193,84,130,252,193,86,130,252,193,88,130,252,193,90,130,252,193,92,130,252,193,94,130,252,193,96,130,252,193,58,131,252,193,60,131,252,193,62,131,252,193,64,131,252,193,66,131,252,193,68,131,252,193,70,131,252,193,206,131,252,193,208,131,252,193,210,131,252,193,212,131,252,193,214,131,252,193,216,131,252,193,218,131,252,193,138,132,252,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,128,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,193,4,131,252,193,78,130,252,193,6,131,252,193,8,131,252,193,10,131,252,193,12,131,252,193,14,131,252,193,16,131,252,193,18,131,252,193,20,131,252,193,22,131,252,193,24,131,252,193,26,131,252,193,28,131,252,193,30,131,252,193,32,131,252,193,34,131,252,193,36,131,252,193,38,131,252,193,40,131,252,193,42,131,252,193,44,131,252,193,46,131,252,193,48,131,252,193,50,131,252,193,52,131,252,193,168,131,252,193,170,131,252,193,54,131,252,193,172,131,252,193,174,131,252,193,176,131,252,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,160,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,193,178,131,252,193,180,131,252,193,182,131,252,193,184,131,252,193,56,131,252,193,186,131,252,193,188,131,252,193,190,131,252,193,192,131,252,193,194,131,252,193,196,131,252,193,198,131,252,193,200,131,252,193,202,131,252,193,204,131,252,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,192,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,193,220,131,252,193,140,132,252,193,142,132,252,193,144,132,252,193,146,132,252,193,148,132,252,193,150,132,252,193,152,132,252,193,154,132,252,193,58,133,252,193,60,133,252,193,62,133,252,193,64,133,252,193,66,133,252,193,68,133,252,193,70,133,252,193,156,133,252,193,234,133,252,193,236,133,252,193,238,133,252,193,56,134,252,193,58,134,252,193,60,134,252,193,62,134,252,193,92,134,252,193,94,134,252,193,164,134,252,193,184,134,252,193,222,134,252,193,56,135,252,193,58,135,252,193,60,135,252,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,224,61,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,0,62,0,206,0,62,0,206,0,62,0,206,0,62,0,193,250,132,252,193,252,132,252,193,254,132,252,193,2,133,252,193,4,133,252,193,6,133,252,193,122,133,252,193,124,133,252,193,126,133,252,193,128,133,252,193,130,133,252,193,132,133,252,193,202,133,252,193,204,133,252,193,206,133,252,193,208,133,252,193,36,134,252,193,88,134,252,193,156,134,252,193,158,134,252,193,160,134,252,193,176,134,252,193,178,134,252,193,194,134,252,193,236,134,252,193,238,134,252,193,20,135,252,193,120,135,252,193,90,132,252,193,8,133,252,193,10,133,252,193,12,133,252,193,14,133,252,193,16,133,252,193,18,133,252,193,20,133,252,193,22,133,252,193,210,133,252,193,38,134,252,193,128,134,252,193,130,134,252,193,22,135,252,193,24,135,252,193,26,135,252,193,28,135,252,193,126,135,252,193,128,135,252,193,26,136,252,193,28,136,252,193,30,136,252,193,156,136,252,193,158,136,252,193,160,136,252,193,162,136,252,193,164,136,252,193,166,136,252,193,168,136,252,193,170,136,252,193,172,136,252,193,174,136,252,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,206,32,62,0,193,24,133,252,193,26,133,252,193,28,133,252,193,30,133,252,193,32,133,252,193,34,133,252,193,36,133,252,193,38,133,252,193,40,133,252,193,42,133,252,193,44,133,252,193,46,133,252,193,48,133,252,193,50,133,252,193,52,133,252,193,54,133,252,193,56,133,252,193,134,133,252,193,136,133,252,193,138,133,252,193,140,133,252,193,142,133,252,193,144,133,252,193,146,133,252,193,148,133,252,193,150,133,252,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,64,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,193,242,132,252,193,244,132,252,193,246,132,252,193,248,132,252,193,118,133,252,193,120,133,252,193,198,133,252,193,200,133,252,193,34,134,252,193,124,134,252,193,126,134,252,193,174,134,252,193,18,135,252,193,112,135,252,193,114,135,252,193,116,135,252,193,118,135,252,193,252,135,252,193,254,135,252,193,2,136,252,193,130,136,252,193,132,136,252,193,26,137,252,193,28,137,252,193,30,137,252,193,32,137,252,193,34,137,252,193,36,137,252,193,38,137,252,193,40,137,252,193,186,137,252,193,188,137,252,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,206,96,62,0,193,158,133,252,193,160,133,252,193,162,133,252,193,164,133,252,193,166,133,252,193,168,133,252,193,170,133,252,193,172,133,252,193,174,133,252,193,176,133,252,193,178,133,252,193,180,133,252,193,182,133,252,193,184,133,252,193,186,133,252,193,188,133,252,193,190,133,252,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,193,152,133,252,193,154,133,252,193,212,133,252,193,214,133,252,193,216,133,252,193,218,133,252,193,220,133,252,193,222,133,252,193,224,133,252,193,226,133,252,193,228,133,252,193,230,133,252,193,232,133,252,193,40,134,252,193,42,134,252,193,44,134,252,193,46,134,252,193,48,134,252,193,50,134,252,193,52,134,252,193,54,134,252,193,90,134,252,193,132,134,252,193,134,134,252,193,162,134,252,193,180,134,252,193,210,134,252,193,212,134,252,193,216,134,252,193,220,134,252,193,240,134,252,193,242,134,252,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,206,128,62,0,193,64,134,252,193,66,134,252,193,68,134,252,193,70,134,252,193,72,134,252,193,74,134,252,193,76,134,252,193,78,134,252,193,80,134,252,193,82,134,252,193,84,134,252,193,96,134,252,193,98,134,252,193,100,134,252,193,102,134,252,193,104,134,252,193,106,134,252,193,108,134,252,193,110,134,252,193,112,134,252,193,114,134,252,193,116,134,252,193,118,134,252,193,120,134,252,193,122,134,252,193,136,134,252,193,138,134,252,193,140,134,252,193,142,134,252,193,144,134,252,193,146,134,252,193,148,134,252,193,150,134,252,193,152,134,252,193,166,134,252,193,168,134,252,193,196,165,253,193,170,134,252,193,172,134,252,193,182,134,252,193,186,134,252,193,188,134,252,193,190,134,252,193,192,134,252,193,196,134,252,193,198,134,252,193,200,134,252,193,202,134,252,193,204,134,252,193,206,134,252,193,208,134,252,193,214,134,252,193,218,134,252,193,224,134,252,193,226,134,252,193,228,134,252,193,230,134,252,193,232,134,252,193,234,134,252,193,252,134,252,193,254,134,252,193,2,135,252,193,4,135,252,193,6,135,252,193,8,135,252,193,10,135,252,193,12,135,252,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,193,244,134,252,193,246,134,252,193,248,134,252,193,250,134,252,193,30,135,252,193,32,135,252,193,34,135,252,193,36,135,252,193,38,135,252,193,40,135,252,193,42,135,252,193,44,135,252,193,46,135,252,193,48,135,252,193,50,135,252,193,130,135,252,193,132,135,252,193,134,135,252,193,136,135,252,193,138,135,252,193,140,135,252,193,142,135,252,193,144,135,252,193,146,135,252,193,148,135,252,193,150,135,252,193,152,135,252,193,154,135,252,193,156,135,252,193,158,135,252,193,160,135,252,193,162,135,252,193,14,135,252,193,16,135,252,193,108,135,252,193,110,135,252,193,246,135,252,193,248,135,252,193,250,135,252,193,120,136,252,193,122,136,252,193,124,136,252,193,126,136,252,193,14,137,252,193,16,137,252,193,18,137,252,193,20,137,252,193,22,137,252,193,166,137,252,193,168,137,252,193,170,137,252,193,172,137,252,193,174,137,252,193,176,137,252,193,178,137,252,193,180,137,252,193,182,137,252,193,184,137,252,193,88,138,252,193,90,138,252,193,186,138,252,193,188,138,252,193,190,138,252,193,192,138,252,193,114,27,253,193,148,27,253,193,150,27,253,193,154,27,253,193,156,27,253,193,158,27,253,193,52,135,252,193,160,27,253,193,162,27,253,193,164,27,253,193,180,27,253,193,188,27,253,193,198,27,253,193,200,27,253,193,204,27,253,193,216,27,253,193,222,27,253,193,224,27,253,193,240,27,253,193,252,27,253,193,254,27,253,193,24,28,253,193,26,28,253,193,28,28,253,193,30,28,253,193,32,28,253,193,92,28,253,193,94,28,253,193,142,28,253,193,96,28,253,193,98,28,253,193,144,28,253,193,62,135,252,193,170,135,252,193,172,135,252,193,174,135,252,193,56,136,252,193,58,136,252,193,60,136,252,193,200,136,252,193,202,136,252,193,204,136,252,193,206,136,252,193,90,137,252,193,92,137,252,193,94,137,252,193,96,137,252,193,98,137,252,193,100,137,252,193,102,137,252,193,104,137,252,193,14,138,252,193,16,138,252,193,18,138,252,193,20,138,252,193,22,138,252,193,142,138,252,193,144,138,252,193,222,138,252,193,224,138,252,193,226,138,252,193,228,138,252,193,230,138,252,193,70,139,252,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,160,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,193,122,135,252,193,124,135,252,193,4,136,252,193,6,136,252,193,8,136,252,193,10,136,252,193,12,136,252,193,14,136,252,193,16,136,252,193,18,136,252,193,20,136,252,193,22,136,252,193,24,136,252,193,134,136,252,193,136,136,252,193,138,136,252,193,140,136,252,193,142,136,252,193,144,136,252,193,146,136,252,193,148,136,252,193,150,136,252,193,152,136,252,193,154,136,252,193,42,137,252,193,44,137,252,193,46,137,252,193,48,137,252,193,50,137,252,193,52,137,252,193,54,137,252,193,208,137,252,193,164,135,252,193,166,135,252,193,168,135,252,193,32,136,252,193,34,136,252,193,36,136,252,193,176,136,252,193,38,136,252,193,40,136,252,193,42,136,252,193,44,136,252,193,46,136,252,193,48,136,252,193,50,136,252,193,52,136,252,193,54,136,252,193,178,136,252,193,180,136,252,193,182,136,252,193,184,136,252,193,186,136,252,193,188,136,252,193,190,136,252,193,192,136,252,193,194,136,252,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,192,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,224,62,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,32,63,0,206,32,63,0,206,32,63,0,206,32,63,0,193,196,136,252,193,86,137,252,193,88,137,252,193,230,137,252,193,232,137,252,193,234,137,252,193,236,137,252,193,238,137,252,193,240,137,252,193,242,137,252,193,244,137,252,193,246,137,252,193,248,137,252,193,250,137,252,193,252,137,252,193,254,137,252,193,2,138,252,193,4,138,252,193,6,138,252,193,8,138,252,193,10,138,252,193,12,138,252,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,193,140,24,253,193,150,24,253,193,170,24,253,193,186,24,253,193,188,24,253,193,206,24,253,193,4,25,253,193,12,25,253,193,14,25,253,193,32,25,253,193,36,25,253,193,42,25,253,193,48,25,253,193,54,25,253,193,56,25,253,193,74,25,253,193,76,25,253,193,78,25,253,193,80,25,253,193,82,25,253,193,84,25,253,193,124,25,253,193,198,136,252,193,126,25,253,193,128,25,253,193,50,25,253,193,130,25,253,193,176,25,253,193,178,25,253,193,230,25,253,193,232,25,253,193,234,25,253,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,0,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,193,56,137,252,193,58,137,252,193,60,137,252,193,62,137,252,193,218,137,252,193,220,137,252,193,222,137,252,193,224,137,252,193,226,137,252,193,228,137,252,193,114,138,252,193,116,138,252,193,118,138,252,193,120,138,252,193,210,138,252,193,212,138,252,193,214,138,252,193,56,139,252,193,58,139,252,193,132,139,252,193,186,139,252,193,240,139,252,193,242,139,252,193,2,140,252,193,30,140,252,193,80,140,252,193,108,140,252,193,194,140,252,193,2,141,252,193,130,141,252,193,132,141,252,193,16,142,252,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,64,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,193,190,137,252,193,192,137,252,193,194,137,252,193,196,137,252,193,198,137,252,193,200,137,252,193,202,137,252,193,204,137,252,193,206,137,252,193,92,138,252,193,94,138,252,193,96,138,252,193,98,138,252,193,100,138,252,193,194,138,252,193,196,138,252,193,198,138,252,193,26,139,252,193,28,139,252,193,30,139,252,193,32,139,252,193,34,139,252,193,36,139,252,193,38,139,252,193,116,139,252,193,118,139,252,193,120,139,252,193,180,139,252,193,212,139,252,193,18,140,252,193,136,140,252,193,150,140,252,193,210,137,252,193,212,137,252,193,214,137,252,193,216,137,252,193,102,138,252,193,104,138,252,193,106,138,252,193,108,138,252,193,110,138,252,193,112,138,252,193,200,138,252,193,202,138,252,193,204,138,252,193,206,138,252,193,208,138,252,193,40,139,252,193,42,139,252,193,44,139,252,193,46,139,252,193,48,139,252,193,50,139,252,193,52,139,252,193,54,139,252,193,122,139,252,193,124,139,252,193,126,139,252,193,128,139,252,193,130,139,252,193,182,139,252,193,184,139,252,193,214,139,252,193,216,139,252,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,206,96,63,0,193,148,138,252,193,150,138,252,193,152,138,252,193,154,138,252,193,156,138,252,193,158,138,252,193,160,138,252,193,162,138,252,193,164,138,252,193,166,138,252,193,168,138,252,193,170,138,252,193,172,138,252,193,174,138,252,193,176,138,252,193,178,138,252,193,180,138,252,193,182,138,252,193,184,138,252,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,128,63,0,206,128,63,0,206,128,63,0,206,128,63,0,193,216,138,252,193,218,138,252,193,220,138,252,193,60,139,252,193,62,139,252,193,64,139,252,193,66,139,252,193,68,139,252,193,134,139,252,193,136,139,252,193,138,139,252,193,140,139,252,193,188,139,252,193,190,139,252,193,218,139,252,193,4,140,252,193,6,140,252,193,32,140,252,193,48,140,252,193,50,140,252,193,88,140,252,193,92,140,252,193,94,140,252,193,98,140,252,193,102,140,252,193,110,140,252,193,156,140,252,193,168,140,252,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,206,160,63,0,193,72,139,252,193,74,139,252,193,76,139,252,193,78,139,252,193,80,139,252,193,82,139,252,193,84,139,252,193,86,139,252,193,88,139,252,193,90,139,252,193,92,139,252,193,94,139,252,193,96,139,252,193,98,139,252,193,100,139,252,193,102,139,252,193,104,139,252,193,106,139,252,193,22,139,252,193,24,139,252,193,178,139,252,193,210,139,252,193,70,140,252,193,144,140,252,193,166,140,252,193,252,140,252,193,100,141,252,193,102,141,252,193,244,141,252,193,246,141,252,193,248,141,252,193,250,141,252,193,146,142,252,193,148,142,252,193,150,142,252,193,152,142,252,193,28,143,252,193,30,143,252,193,32,143,252,193,34,143,252,193,36,143,252,193,38,143,252,193,40,143,252,193,226,143,252,193,228,143,252,193,230,143,252,193,176,144,252,193,178,144,252,193,180,144,252,193,182,144,252,193,108,139,252,193,110,139,252,193,112,139,252,193,148,139,252,193,150,139,252,193,152,139,252,193,154,139,252,193,156,139,252,193,158,139,252,193,160,139,252,193,162,139,252,193,164,139,252,193,166,139,252,193,168,139,252,193,170,139,252,193,172,139,252,193,174,139,252,193,176,139,252,193,194,139,252,193,196,139,252,193,198,139,252,193,200,139,252,193,202,139,252,193,204,139,252,193,206,139,252,193,208,139,252,193,222,139,252,193,224,139,252,193,226,139,252,193,228,139,252,193,230,139,252,193,232,139,252,193,144,139,252,193,146,139,252,193,192,139,252,193,220,139,252,193,244,139,252,193,86,140,252,193,178,140,252,193,180,140,252,193,210,140,252,193,212,140,252,193,214,140,252,193,216,140,252,193,218,140,252,193,220,140,252,193,30,141,252,193,32,141,252,193,34,141,252,193,36,141,252,193,38,141,252,193,40,141,252,193,42,141,252,193,44,141,252,193,184,141,252,193,186,141,252,193,188,141,252,193,190,141,252,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,193,234,139,252,193,236,139,252,193,238,139,252,193,20,140,252,193,22,140,252,193,24,140,252,193,26,140,252,193,28,140,252,193,46,140,252,193,60,140,252,193,62,140,252,193,64,140,252,193,106,140,252,193,146,140,252,193,152,140,252,193,192,140,252,193,254,140,252,193,112,141,252,193,114,141,252,193,116,141,252,193,118,141,252,193,120,141,252,193,122,141,252,193,124,141,252,193,126,141,252,193,128,141,252,193,2,142,252,193,4,142,252,193,6,142,252,193,8,142,252,193,10,142,252,193,12,142,252,193,246,139,252,193,248,139,252,193,250,139,252,193,252,139,252,193,254,139,252,193,8,140,252,193,10,140,252,193,12,140,252,193,14,140,252,193,16,140,252,193,34,140,252,193,36,140,252,193,38,140,252,193,40,140,252,193,42,140,252,193,44,140,252,193,52,140,252,193,54,140,252,193,56,140,252,193,58,140,252,193,66,140,252,193,68,140,252,193,72,140,252,193,74,140,252,193,76,140,252,193,82,140,252,193,84,140,252,193,90,140,252,193,96,140,252,193,100,140,252,193,104,140,252,193,114,140,252,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,193,78,140,252,193,120,252,252,193,122,252,252,193,124,252,252,193,126,252,252,193,128,252,252,193,130,252,252,193,132,252,252,193,134,252,252,193,142,252,252,193,144,252,252,193,146,252,252,193,148,252,252,193,170,252,252,193,154,252,252,193,156,252,252,193,160,252,252,193,164,252,252,193,172,252,252,193,168,252,252,193,162,252,252,193,184,252,252,193,198,252,252,193,200,252,252,193,202,252,252,193,228,252,252,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,193,192,232,252,193,194,232,252,193,196,232,252,193,112,140,252,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,193,180,217,252,193,182,217,252,193,184,217,252,193,186,217,252,193,188,217,252,193,190,217,252,193,192,217,252,193,194,217,252,193,196,217,252,193,198,217,252,193,214,217,252,193,216,217,252,193,218,217,252,193,220,217,252,193,222,217,252,193,134,140,252,193,224,217,252,193,226,217,252,193,228,217,252,193,232,217,252,193,234,217,252,193,236,217,252,193,238,217,252,193,240,217,252,193,242,217,252,193,244,217,252,193,246,217,252,193,170,140,252,193,172,140,252,193,174,140,252,193,176,140,252,193,196,140,252,193,198,140,252,193,200,140,252,193,202,140,252,193,204,140,252,193,206,140,252,193,208,140,252,193,4,141,252,193,6,141,252,193,8,141,252,193,10,141,252,193,12,141,252,193,14,141,252,193,16,141,252,193,18,141,252,193,20,141,252,193,22,141,252,193,24,141,252,193,26,141,252,193,28,141,252,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,193,190,140,252,193,104,141,252,193,106,141,252,193,108,141,252,193,110,141,252,193,252,141,252,193,254,141,252,193,156,142,252,193,158,142,252,193,160,142,252,193,42,143,252,193,44,143,252,193,46,143,252,193,234,143,252,193,236,143,252,193,238,143,252,193,240,143,252,193,186,144,252,193,188,144,252,193,190,144,252,193,192,144,252,193,106,145,252,193,108,145,252,193,110,145,252,193,112,145,252,193,114,145,252,193,20,146,252,193,22,146,252,193,24,146,252,193,26,146,252,193,170,146,252,193,172,146,252,193,246,140,252,193,248,140,252,193,250,140,252,193,46,141,252,193,48,141,252,193,50,141,252,193,52,141,252,193,54,141,252,193,56,141,252,193,58,141,252,193,60,141,252,193,62,141,252,193,64,141,252,193,66,141,252,193,68,141,252,193,70,141,252,193,72,141,252,193,74,141,252,193,76,141,252,193,78,141,252,193,80,141,252,193,82,141,252,193,84,141,252,193,86,141,252,193,88,141,252,193,90,141,252,193,92,141,252,193,94,141,252,193,96,141,252,193,98,141,252,193,192,141,252,193,194,141,252,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,206,192,63,0,193,28,142,252,193,30,142,252,193,32,142,252,193,34,142,252,193,36,142,252,193,38,142,252,193,40,142,252,193,42,142,252,193,44,142,252,193,46,142,252,193,48,142,252,193,50,142,252,193,52,142,252,193,54,142,252,193,178,142,252,193,196,141,252,193,198,141,252,193,200,141,252,193,202,141,252,193,204,141,252,193,206,141,252,193,208,141,252,193,210,141,252,193,212,141,252,193,214,141,252,193,216,141,252,193,218,141,252,193,220,141,252,193,222,141,252,193,224,141,252,193,226,141,252,193,228,141,252,193,230,141,252,193,232,141,252,193,234,141,252,193,236,141,252,193,238,141,252,193,240,141,252,193,242,141,252,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,193,14,142,252,193,162,142,252,193,164,142,252,193,166,142,252,193,168,142,252,193,48,143,252,193,50,143,252,193,242,143,252,193,244,143,252,193,246,143,252,193,248,143,252,193,250,143,252,193,252,143,252,193,254,143,252,193,2,144,252,193,4,144,252,193,6,144,252,193,8,144,252,193,10,144,252,193,194,144,252,193,196,144,252,193,198,144,252,193,200,144,252,193,202,144,252,193,204,144,252,193,206,144,252,193,208,144,252,193,116,145,252,193,118,145,252,193,120,145,252,193,122,145,252,193,124,145,252,193,18,142,252,193,20,142,252,193,22,142,252,193,24,142,252,193,26,142,252,193,170,142,252,193,172,142,252,193,174,142,252,193,176,142,252,193,52,143,252,193,54,143,252,193,56,143,252,193,58,143,252,193,12,144,252,193,14,144,252,193,16,144,252,193,210,144,252,193,132,145,252,193,134,145,252,193,136,145,252,193,138,145,252,193,46,146,252,193,48,146,252,193,50,146,252,193,188,146,252,193,190,146,252,193,192,146,252,193,194,146,252,193,38,147,252,193,40,147,252,193,164,147,252,193,166,147,252,193,180,142,252,193,182,142,252,193,184,142,252,193,186,142,252,193,188,142,252,193,190,142,252,193,56,142,252,193,192,142,252,193,194,142,252,193,196,142,252,193,198,142,252,193,200,142,252,193,202,142,252,193,204,142,252,193,206,142,252,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,206,224,63,0,193,210,142,252,193,212,142,252,193,214,142,252,193,216,142,252,193,218,142,252,193,220,142,252,193,222,142,252,193,224,142,252,193,226,142,252,193,106,143,252,193,108,143,252,193,110,143,252,193,112,143,252,193,114,143,252,193,116,143,252,193,118,143,252,193,120,143,252,193,122,143,252,193,124,143,252,193,126,143,252,193,128,143,252,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,0,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,206,32,64,0,193,144,142,252,193,14,143,252,193,16,143,252,193,18,143,252,193,20,143,252,193,22,143,252,193,24,143,252,193,26,143,252,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,206,64,64,0,193,18,144,252,193,20,144,252,193,22,144,252,193,24,144,252,193,26,144,252,193,28,144,252,193,30,144,252,193,32,144,252,193,34,144,252,193,36,144,252,193,38,144,252,193,40,144,252,193,42,144,252,193,44,144,252,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,206,96,64,0,193,72,144,252,193,74,144,252,193,76,144,252,206,128,64,0,206,128,64,0,206,128,64,0,206,128,64,0,193,140,145,252,193,142,145,252,193,144,145,252,193,146,145,252,193,148,145,252,193,52,146,252,193,46,144,252,193,150,145,252,193,152,145,252,193,154,145,252,193,156,145,252,193,158,145,252,193,160,145,252,193,162,145,252,193,164,145,252,193,54,146,252,193,56,146,252,193,58,146,252,193,60,146,252,193,62,146,252,193,64,146,252,193,66,146,252,193,68,146,252,193,70,146,252,193,72,146,252,193,74,146,252,193,76,146,252,193,196,146,252,193,48,144,252,193,50,144,252,193,52,144,252,193,54,144,252,193,56,144,252,193,58,144,252,193,60,144,252,193,62,144,252,193,64,144,252,193,66,144,252,193,68,144,252,193,70,144,252,193,244,144,252,193,246,144,252,193,248,144,252,193,250,144,252,193,252,144,252,193,254,144,252,193,2,145,252,193,4,145,252,193,6,145,252,193,8,145,252,193,10,145,252,193,166,145,252,193,168,145,252,193,170,145,252,193,172,145,252,193,174,145,252,193,176,145,252,193,178,145,252,193,78,146,252,193,80,146,252,193,78,144,252,193,80,144,252,193,82,144,252,193,84,144,252,193,86,144,252,193,88,144,252,193,90,144,252,193,92,144,252,193,94,144,252,193,96,144,252,193,98,144,252,193,100,144,252,193,102,144,252,193,104,144,252,193,106,144,252,193,108,144,252,193,110,144,252,193,112,144,252,193,114,144,252,193,116,144,252,193,118,144,252,193,120,144,252,193,122,144,252,193,124,144,252,193,126,144,252,193,128,144,252,193,130,144,252,193,132,144,252,193,134,144,252,193,136,144,252,193,138,144,252,193,140,144,252,193,142,144,252,193,144,144,252,193,146,144,252,193,148,144,252,193,150,144,252,193,152,144,252,193,154,144,252,193,156,144,252,193,158,144,252,193,160,144,252,193,162,144,252,193,164,144,252,193,166,144,252,193,168,144,252,193,170,144,252,193,172,144,252,193,174,144,252,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,193,184,144,252,193,98,145,252,193,100,145,252,193,102,145,252,193,104,145,252,193,18,146,252,193,168,146,252,193,30,147,252,193,32,147,252,193,160,147,252,193,146,148,252,193,234,148,252,193,70,149,252,193,72,149,252,193,182,149,252,193,184,149,252,193,186,149,252,193,42,150,252,193,44,150,252,193,46,150,252,193,134,150,252,193,136,150,252,193,226,150,252,193,80,151,252,193,82,151,252,193,84,151,252,193,86,151,252,193,184,151,252,193,226,151,252,193,92,152,252,193,146,152,252,193,186,152,252,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,160,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,193,126,145,252,193,128,145,252,193,130,145,252,193,28,146,252,193,30,146,252,193,32,146,252,193,34,146,252,193,36,146,252,193,38,146,252,193,40,146,252,193,42,146,252,193,44,146,252,193,176,146,252,193,178,146,252,193,180,146,252,193,182,146,252,193,184,146,252,193,186,146,252,193,36,147,252,193,98,147,252,193,192,147,252,193,194,147,252,193,248,147,252,193,250,147,252,193,82,148,252,193,152,148,252,193,238,148,252,193,240,148,252,193,78,149,252,193,192,149,252,193,194,149,252,193,196,149,252,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,192,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,193,82,146,252,193,206,146,252,193,208,146,252,193,210,146,252,193,212,146,252,193,214,146,252,193,216,146,252,193,218,146,252,193,108,147,252,193,110,147,252,193,170,147,252,193,172,147,252,193,174,147,252,193,176,147,252,193,204,147,252,193,206,147,252,193,16,148,252,193,32,148,252,193,54,148,252,193,100,148,252,193,102,148,252,193,104,148,252,193,106,148,252,193,178,148,252,193,180,148,252,193,182,148,252,193,12,149,252,193,14,149,252,193,16,149,252,193,18,149,252,193,20,149,252,193,22,149,252,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,224,64,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,193,174,146,252,193,34,147,252,193,96,147,252,193,162,147,252,193,190,147,252,193,44,148,252,193,148,148,252,193,150,148,252,193,236,148,252,193,74,149,252,193,76,149,252,193,188,149,252,193,190,149,252,193,48,150,252,193,228,150,252,193,230,150,252,193,88,151,252,193,90,151,252,193,92,151,252,193,94,151,252,193,228,151,252,193,72,152,252,193,122,152,252,193,148,152,252,193,188,152,252,193,190,152,252,193,192,152,252,193,6,153,252,193,8,153,252,193,54,153,252,193,108,153,252,193,110,153,252,193,198,146,252,193,200,146,252,193,202,146,252,193,204,146,252,193,42,147,252,193,44,147,252,193,46,147,252,193,48,147,252,193,50,147,252,193,52,147,252,193,54,147,252,193,56,147,252,193,100,147,252,193,102,147,252,193,104,147,252,193,106,147,252,193,200,147,252,193,218,147,252,193,240,147,252,193,202,147,252,193,22,148,252,193,26,148,252,193,28,148,252,193,30,148,252,193,46,148,252,193,48,148,252,193,50,148,252,193,52,148,252,206,32,65,0,206,32,65,0,206,32,65,0,206,32,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,206,0,65,0,193,58,147,252,193,10,147,252,193,12,147,252,193,14,147,252,193,16,147,252,193,18,147,252,193,20,147,252,193,22,147,252,193,24,147,252,193,26,147,252,193,28,147,252,193,60,147,252,193,62,147,252,193,64,147,252,193,66,147,252,193,68,147,252,193,70,147,252,193,72,147,252,193,74,147,252,193,76,147,252,193,78,147,252,193,80,147,252,193,82,147,252,193,84,147,252,193,112,147,252,193,86,147,252,193,88,147,252,193,90,147,252,193,92,147,252,193,94,147,252,193,114,147,252,193,116,147,252,193,118,147,252,193,120,147,252,193,122,147,252,193,124,147,252,193,126,147,252,193,128,147,252,193,130,147,252,193,132,147,252,193,134,147,252,193,136,147,252,193,138,147,252,193,140,147,252,193,142,147,252,193,216,98,253,193,144,147,252,193,146,147,252,193,148,147,252,193,150,147,252,193,152,147,252,193,154,147,252,193,156,147,252,193,158,147,252,193,196,147,252,193,198,147,252,193,216,147,252,193,238,147,252,193,154,148,252,193,242,148,252,193,244,148,252,193,246,148,252,193,248,148,252,193,250,148,252,193,80,149,252,193,200,149,252,193,202,149,252,193,204,149,252,193,206,149,252,193,208,149,252,193,64,150,252,193,66,150,252,193,68,150,252,193,146,150,252,193,148,150,252,193,150,150,252,193,238,150,252,193,240,150,252,193,110,151,252,193,112,151,252,193,196,151,252,193,198,151,252,193,236,151,252,193,238,151,252,193,240,151,252,193,76,152,252,193,18,148,252,193,20,148,252,193,24,148,252,193,34,148,252,193,36,148,252,193,38,148,252,193,40,148,252,193,56,148,252,193,58,148,252,193,60,148,252,193,62,148,252,193,64,148,252,193,66,148,252,193,68,148,252,193,70,148,252,193,72,148,252,193,74,148,252,193,76,148,252,193,78,148,252,193,80,148,252,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,32,65,0,206,32,65,0,206,32,65,0,206,32,65,0,193,156,148,252,193,158,148,252,193,160,148,252,193,162,148,252,193,164,148,252,193,166,148,252,193,168,148,252,193,170,148,252,193,172,148,252,193,174,148,252,193,176,148,252,193,252,148,252,193,254,148,252,193,2,149,252,193,4,149,252,193,6,149,252,193,8,149,252,193,10,149,252,193,82,149,252,193,84,149,252,193,86,149,252,193,88,149,252,193,90,149,252,193,92,149,252,193,94,149,252,193,96,149,252,193,210,149,252,193,212,149,252,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,206,64,65,0,193,184,148,252,193,186,148,252,193,188,148,252,193,190,148,252,193,192,148,252,193,194,148,252,193,196,148,252,193,198,148,252,193,200,148,252,193,202,148,252,193,204,148,252,193,206,148,252,193,208,148,252,193,210,148,252,193,212,148,252,193,214,148,252,193,216,148,252,193,218,148,252,193,220,148,252,193,222,148,252,193,224,148,252,193,226,148,252,193,228,148,252,193,230,148,252,193,232,148,252,193,24,149,252,193,98,149,252,193,100,149,252,193,102,149,252,193,104,149,252,193,106,149,252,193,230,149,252,193,232,149,252,193,234,149,252,193,236,149,252,193,82,150,252,193,84,150,252,193,166,150,252,193,168,150,252,193,170,150,252,193,6,151,252,193,8,151,252,193,10,151,252,193,12,151,252,193,14,151,252,193,16,151,252,193,126,151,252,193,128,151,252,193,130,151,252,193,132,151,252,193,134,151,252,193,136,151,252,193,138,151,252,193,204,151,252,193,206,151,252,193,244,151,252,193,246,151,252,193,26,149,252,193,28,149,252,193,30,149,252,193,32,149,252,193,34,149,252,193,36,149,252,193,38,149,252,193,40,149,252,193,42,149,252,193,44,149,252,193,46,149,252,193,48,149,252,193,50,149,252,193,52,149,252,193,54,149,252,193,56,149,252,193,58,149,252,193,60,149,252,193,62,149,252,193,64,149,252,193,66,149,252,193,68,149,252,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,96,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,193,198,149,252,193,50,150,252,193,52,150,252,193,54,150,252,193,56,150,252,193,58,150,252,193,60,150,252,193,62,150,252,193,138,150,252,193,140,150,252,193,142,150,252,193,144,150,252,193,232,150,252,193,234,150,252,193,236,150,252,193,96,151,252,193,98,151,252,193,100,151,252,193,102,151,252,193,104,151,252,193,106,151,252,193,108,151,252,193,186,151,252,193,188,151,252,193,190,151,252,193,192,151,252,193,194,151,252,193,230,151,252,193,232,151,252,193,234,151,252,193,8,152,252,193,10,152,252,193,214,149,252,193,216,149,252,193,218,149,252,193,220,149,252,193,222,149,252,193,224,149,252,193,226,149,252,193,228,149,252,193,70,150,252,193,72,150,252,193,74,150,252,193,76,150,252,193,78,150,252,193,80,150,252,193,152,150,252,193,154,150,252,193,156,150,252,193,158,150,252,193,160,150,252,193,162,150,252,193,164,150,252,193,242,150,252,193,244,150,252,193,246,150,252,193,248,150,252,193,250,150,252,193,252,150,252,193,254,150,252,193,2,151,252,193,4,151,252,193,114,151,252,193,116,151,252,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,128,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,206,160,65,0,193,172,150,252,193,174,150,252,193,176,150,252,193,178,150,252,193,180,150,252,193,182,150,252,193,184,150,252,193,186,150,252,193,188,150,252,193,190,150,252,193,192,150,252,193,194,150,252,193,196,150,252,193,198,150,252,193,200,150,252,193,202,150,252,193,204,150,252,193,206,150,252,193,32,202,252,193,208,150,252,193,210,150,252,193,212,150,252,193,214,150,252,193,216,150,252,193,218,150,252,193,220,150,252,193,222,150,252,193,224,150,252,193,18,151,252,193,20,151,252,193,22,151,252,193,24,151,252,193,26,151,252,193,28,151,252,193,30,151,252,193,32,151,252,193,34,151,252,193,36,151,252,193,38,151,252,193,40,151,252,193,42,151,252,193,44,151,252,193,46,151,252,193,48,151,252,193,140,151,252,193,50,151,252,193,52,151,252,193,54,151,252,193,56,151,252,193,58,151,252,193,60,151,252,193,62,151,252,193,64,151,252,193,66,151,252,193,68,151,252,193,70,151,252,193,72,151,252,193,74,151,252,193,76,151,252,193,78,151,252,193,142,151,252,193,144,151,252,193,146,151,252,193,148,151,252,193,150,151,252,193,152,151,252,193,154,151,252,193,156,151,252,193,158,151,252,193,160,151,252,193,162,151,252,193,164,151,252,193,166,151,252,193,168,151,252,193,170,151,252,193,172,151,252,193,174,151,252,193,176,151,252,193,178,151,252,193,180,151,252,193,118,151,252,193,120,151,252,193,122,151,252,193,124,151,252,193,200,151,252,193,202,151,252,193,242,151,252,193,16,152,252,193,38,152,252,193,40,152,252,193,78,152,252,193,118,152,252,193,124,152,252,193,126,152,252,193,134,152,252,193,136,152,252,193,152,152,252,193,154,152,252,193,156,152,252,193,158,152,252,193,160,152,252,193,162,152,252,193,164,152,252,193,166,152,252,193,200,152,252,193,202,152,252,193,204,152,252,193,206,152,252,193,208,152,252,193,210,152,252,193,212,152,252,193,186,147,253,193,208,151,252,193,210,151,252,193,212,151,252,193,214,151,252,193,216,151,252,193,218,151,252,193,220,151,252,193,222,151,252,193,224,151,252,193,182,151,252,193,248,151,252,193,250,151,252,193,252,151,252,193,254,151,252,193,2,152,252,193,4,152,252,193,20,152,252,193,22,152,252,193,6,152,252,193,24,152,252,193,26,152,252,193,42,152,252,193,28,152,252,193,30,152,252,193,32,152,252,193,34,152,252,193,36,152,252,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,193,12,152,252,193,14,152,252,193,74,152,252,193,86,152,252,193,94,152,252,193,96,152,252,193,108,152,252,193,150,152,252,193,194,152,252,193,10,153,252,193,12,153,252,193,14,153,252,193,16,153,252,193,56,153,252,193,58,153,252,193,114,153,252,193,116,153,252,193,172,153,252,193,174,153,252,193,176,153,252,193,222,153,252,193,224,153,252,193,226,153,252,193,6,154,252,193,28,154,252,193,30,154,252,193,32,154,252,193,70,154,252,193,72,154,252,193,106,154,252,193,124,154,252,193,152,154,252,193,18,152,252,193,80,152,252,193,120,152,252,193,138,152,252,193,140,152,252,193,168,152,252,193,170,152,252,193,214,152,252,193,216,152,252,193,218,152,252,193,220,152,252,193,22,153,252,193,76,153,252,193,78,153,252,193,126,153,252,193,128,153,252,193,130,153,252,193,132,153,252,193,12,154,252,193,44,154,252,193,76,154,252,193,94,154,252,193,192,154,252,193,18,155,252,193,20,155,252,193,22,155,252,193,24,155,252,193,26,155,252,193,28,155,252,193,30,155,252,193,210,155,252,193,212,155,252,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,206,192,65,0,193,82,152,252,193,88,152,252,193,90,152,252,193,98,152,252,193,100,152,252,193,110,152,252,193,102,152,252,193,104,152,252,193,106,152,252,193,112,152,252,193,114,152,252,193,116,152,252,193,128,152,252,193,130,152,252,193,142,152,252,193,144,152,252,193,172,152,252,193,174,152,252,193,176,152,252,193,178,152,252,193,180,152,252,193,182,152,252,193,184,152,252,193,196,152,252,193,198,152,252,193,18,153,252,193,60,153,252,193,62,153,252,193,228,153,252,193,230,153,252,193,232,153,252,193,234,153,252,193,34,154,252,193,36,154,252,193,144,154,252,193,234,154,252,193,236,154,252,193,120,155,252,193,122,155,252,193,124,155,252,193,126,155,252,193,64,156,252,193,66,156,252,193,68,156,252,193,70,156,252,193,72,156,252,193,74,156,252,193,28,157,252,193,30,157,252,193,32,157,252,193,40,158,252,193,42,158,252,193,44,158,252,193,46,158,252,193,104,159,252,193,222,152,252,193,224,152,252,193,226,152,252,193,228,152,252,193,230,152,252,193,232,152,252,193,234,152,252,193,236,152,252,193,238,152,252,193,240,152,252,193,242,152,252,193,244,152,252,193,246,152,252,193,248,152,252,193,250,152,252,193,252,152,252,193,254,152,252,193,24,153,252,193,26,153,252,193,28,153,252,193,30,153,252,193,32,153,252,193,34,153,252,193,36,153,252,193,38,153,252,193,40,153,252,193,42,153,252,193,44,153,252,193,46,153,252,193,48,153,252,193,80,153,252,193,82,153,252,193,2,153,252,193,4,153,252,193,50,153,252,193,104,153,252,193,106,153,252,193,162,153,252,193,164,153,252,193,212,153,252,193,214,153,252,193,252,153,252,193,254,153,252,193,2,154,252,193,22,154,252,193,66,154,252,193,104,154,252,193,138,154,252,193,172,154,252,193,230,154,252,193,90,155,252,193,92,155,252,193,94,155,252,193,96,155,252,193,98,155,252,193,100,155,252,193,36,156,252,193,38,156,252,193,40,156,252,193,42,156,252,193,242,156,252,193,244,156,252,193,250,157,252,193,252,157,252,193,188,147,253,193,20,153,252,193,64,153,252,193,66,153,252,193,68,153,252,193,70,153,252,193,72,153,252,193,74,153,252,193,118,153,252,193,120,153,252,193,122,153,252,193,124,153,252,193,178,153,252,193,180,153,252,193,8,154,252,193,182,153,252,193,184,153,252,193,10,154,252,193,38,154,252,193,40,154,252,193,42,154,252,193,74,154,252,193,108,154,252,193,110,154,252,193,132,154,252,193,154,154,252,193,160,154,252,193,162,154,252,206,0,66,0,206,0,66,0,206,0,66,0,206,0,66,0,193,84,153,252,193,86,153,252,193,88,153,252,193,90,153,252,193,92,153,252,193,94,153,252,193,96,153,252,193,98,153,252,193,100,153,252,193,102,153,252,193,134,153,252,193,136,153,252,193,138,153,252,193,140,153,252,193,142,153,252,193,144,153,252,193,146,153,252,193,148,153,252,193,150,153,252,193,152,153,252,193,154,153,252,193,156,153,252,193,158,153,252,193,160,153,252,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,193,112,153,252,193,166,153,252,193,168,153,252,193,170,153,252,193,216,153,252,193,218,153,252,193,220,153,252,193,4,154,252,193,24,154,252,193,26,154,252,193,68,154,252,193,130,154,252,193,174,154,252,193,232,154,252,193,102,155,252,193,104,155,252,193,106,155,252,193,108,155,252,193,110,155,252,193,44,156,252,193,46,156,252,193,48,156,252,193,50,156,252,193,52,156,252,193,54,156,252,193,56,156,252,193,246,156,252,193,248,156,252,193,250,156,252,193,252,156,252,193,254,156,252,193,2,157,252,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,206,224,65,0,193,236,153,252,193,238,153,252,193,240,153,252,193,242,153,252,193,244,153,252,193,246,153,252,193,248,153,252,193,250,153,252,193,14,154,252,193,16,154,252,193,46,154,252,193,18,154,252,193,20,154,252,193,48,154,252,193,50,154,252,193,52,154,252,193,54,154,252,193,56,154,252,193,58,154,252,193,60,154,252,193,62,154,252,193,96,154,252,193,64,154,252,193,78,154,252,193,80,154,252,193,82,154,252,193,84,154,252,206,0,66,0,206,0,66,0,206,0,66,0,206,0,66,0,193,76,156,252,193,238,154,252,193,240,154,252,193,242,154,252,193,244,154,252,193,246,154,252,193,248,154,252,193,250,154,252,193,252,154,252,193,254,154,252,193,2,155,252,193,4,155,252,193,6,155,252,193,8,155,252,193,10,155,252,193,12,155,252,193,14,155,252,193,16,155,252,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,193,200,154,252,193,202,154,252,193,204,154,252,193,206,154,252,193,208,154,252,193,210,154,252,193,212,154,252,193,214,154,252,193,216,154,252,193,218,154,252,193,220,154,252,193,222,154,252,193,224,154,252,193,226,154,252,193,228,154,252,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,32,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,193,112,155,252,193,114,155,252,193,116,155,252,193,118,155,252,193,58,156,252,193,60,156,252,193,62,156,252,193,8,157,252,193,10,157,252,193,12,157,252,193,14,157,252,193,16,157,252,193,18,157,252,193,20,157,252,193,22,157,252,193,24,157,252,193,26,157,252,193,32,158,252,193,34,158,252,193,36,158,252,193,38,158,252,193,80,159,252,193,82,159,252,193,84,159,252,193,86,159,252,193,88,159,252,193,90,159,252,193,92,159,252,193,94,159,252,193,96,159,252,193,98,159,252,193,100,159,252,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,206,64,66,0,193,78,156,252,193,214,155,252,193,216,155,252,193,218,155,252,193,220,155,252,193,222,155,252,193,224,155,252,193,226,155,252,193,140,156,252,193,142,156,252,193,144,156,252,193,146,156,252,193,148,156,252,193,150,156,252,193,152,156,252,193,154,156,252,193,156,156,252,193,158,156,252,193,160,156,252,193,162,156,252,193,164,156,252,193,166,156,252,193,106,157,252,193,108,157,252,193,110,157,252,193,112,157,252,193,114,157,252,193,116,157,252,193,118,157,252,193,120,157,252,193,122,157,252,193,124,157,252,193,126,157,252,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,206,96,66,0,193,168,156,252,193,170,156,252,193,172,156,252,193,174,156,252,193,176,156,252,193,178,156,252,193,180,156,252,193,182,156,252,193,184,156,252,193,186,156,252,193,188,156,252,193,190,156,252,193,192,156,252,193,194,156,252,193,196,156,252,193,198,156,252,193,200,156,252,193,202,156,252,193,204,156,252,193,206,156,252,193,208,156,252,193,34,156,252,193,80,156,252,193,82,156,252,193,84,156,252,193,86,156,252,193,88,156,252,193,90,156,252,193,92,156,252,193,94,156,252,193,96,156,252,193,98,156,252,193,100,156,252,193,102,156,252,193,104,156,252,193,106,156,252,193,108,156,252,193,110,156,252,193,112,156,252,193,114,156,252,193,116,156,252,193,118,156,252,193,120,156,252,193,122,156,252,193,124,156,252,193,126,156,252,193,128,156,252,193,130,156,252,193,132,156,252,193,134,156,252,193,136,156,252,193,138,156,252,193,34,157,252,193,36,157,252,193,210,156,252,193,212,156,252,193,214,156,252,193,216,156,252,193,218,156,252,193,220,156,252,193,222,156,252,193,224,156,252,193,226,156,252,193,228,156,252,193,230,156,252,193,232,156,252,193,234,156,252,193,236,156,252,193,238,156,252,193,240,156,252,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,193,4,157,252,193,6,157,252,193,8,158,252,193,10,158,252,193,12,158,252,193,14,158,252,193,16,158,252,193,18,158,252,193,20,158,252,193,22,158,252,193,24,158,252,193,26,158,252,193,28,158,252,193,30,158,252,193,56,159,252,193,58,159,252,193,60,159,252,193,62,159,252,193,64,159,252,193,66,159,252,193,68,159,252,193,70,159,252,193,72,159,252,193,74,159,252,193,76,159,252,193,78,159,252,193,154,160,252,193,156,160,252,193,158,160,252,193,160,160,252,193,162,160,252,193,164,160,252,193,38,157,252,193,40,157,252,193,42,157,252,193,44,157,252,193,46,157,252,193,48,157,252,193,50,157,252,193,52,157,252,193,54,157,252,193,56,157,252,193,58,157,252,193,60,157,252,193,62,157,252,193,64,157,252,193,66,157,252,193,68,157,252,193,70,157,252,193,72,157,252,193,74,157,252,193,76,157,252,193,78,157,252,193,80,157,252,193,82,157,252,193,84,157,252,193,86,157,252,193,88,157,252,193,90,157,252,193,92,157,252,193,94,157,252,193,96,157,252,193,98,157,252,193,100,157,252,193,102,157,252,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,193,104,157,252,193,156,159,252,193,158,159,252,193,160,159,252,193,162,159,252,193,164,159,252,193,166,159,252,193,168,159,252,193,170,159,252,193,218,160,252,193,172,159,252,193,174,159,252,193,176,159,252,193,178,159,252,193,180,159,252,193,182,159,252,193,184,159,252,193,186,159,252,193,188,159,252,193,190,159,252,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,193,128,157,252,193,134,158,252,193,136,158,252,193,138,158,252,193,140,158,252,193,142,158,252,193,144,158,252,193,146,158,252,193,148,158,252,193,150,158,252,193,152,158,252,193,154,158,252,193,156,158,252,193,158,158,252,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,206,128,66,0,193,160,158,252,193,242,157,252,193,244,157,252,193,246,157,252,193,248,157,252,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,193,254,157,252,193,2,158,252,193,4,158,252,193,6,158,252,193,44,159,252,193,46,159,252,193,48,159,252,193,50,159,252,193,52,159,252,193,54,159,252,193,136,160,252,193,138,160,252,193,140,160,252,193,142,160,252,193,144,160,252,193,146,160,252,193,240,161,252,193,242,161,252,193,244,161,252,193,246,161,252,193,248,161,252,193,250,161,252,193,252,161,252,193,254,161,252,193,56,163,252,193,58,163,252,193,60,163,252,193,62,163,252,193,64,163,252,193,66,163,252,193,68,163,252,193,70,163,252,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,206,160,66,0,193,116,159,252,193,118,159,252,193,120,159,252,193,122,159,252,193,124,159,252,193,126,159,252,193,128,159,252,193,130,159,252,193,132,159,252,193,134,159,252,193,136,159,252,193,138,159,252,193,140,159,252,193,142,159,252,193,144,159,252,193,146,159,252,193,148,159,252,193,150,159,252,193,152,159,252,193,154,159,252,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,192,66,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,193,102,159,252,193,170,160,252,193,172,160,252,193,174,160,252,193,176,160,252,193,178,160,252,193,180,160,252,193,182,160,252,193,184,160,252,193,186,160,252,193,188,160,252,193,190,160,252,193,192,160,252,193,194,160,252,193,196,160,252,193,16,162,252,193,18,162,252,193,20,162,252,193,22,162,252,193,24,162,252,193,26,162,252,193,28,162,252,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,193,106,159,252,193,108,159,252,193,110,159,252,193,112,159,252,193,114,159,252,193,198,160,252,193,200,160,252,193,202,160,252,193,204,160,252,193,206,160,252,193,208,160,252,193,210,160,252,193,212,160,252,193,214,160,252,193,216,160,252,193,30,162,252,193,32,162,252,193,34,162,252,193,36,162,252,193,38,162,252,193,114,163,252,193,116,163,252,193,118,163,252,193,188,164,252,193,190,164,252,193,192,164,252,193,152,165,252,193,154,165,252,193,36,166,252,193,38,166,252,193,208,166,252,193,210,166,252,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,206,224,66,0,193,26,161,252,193,28,161,252,193,30,161,252,193,32,161,252,193,34,161,252,193,36,161,252,193,38,161,252,193,40,161,252,193,42,161,252,193,44,161,252,193,46,161,252,193,48,161,252,193,50,161,252,193,52,161,252,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,0,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,193,166,160,252,193,168,160,252,193,2,162,252,193,4,162,252,193,6,162,252,193,8,162,252,193,10,162,252,193,12,162,252,193,14,162,252,193,72,163,252,193,74,163,252,193,76,163,252,193,78,163,252,193,150,164,252,193,152,164,252,193,154,164,252,193,156,164,252,193,158,164,252,193,160,164,252,193,114,165,252,193,116,165,252,193,118,165,252,193,120,165,252,193,122,165,252,193,124,165,252,193,126,165,252,193,128,165,252,193,170,166,252,193,172,166,252,193,174,166,252,193,176,166,252,193,178,166,252,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,32,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,206,96,67,0,193,22,161,252,193,106,162,252,193,108,162,252,193,110,162,252,193,24,161,252,193,112,162,252,193,114,162,252,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,64,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,206,128,67,0,193,174,163,252,193,176,163,252,193,178,163,252,193,180,163,252,193,182,163,252,193,184,163,252,193,186,163,252,193,226,164,252,193,188,163,252,193,190,163,252,193,192,163,252,193,194,163,252,193,196,163,252,193,198,163,252,193,200,163,252,193,202,163,252,193,204,163,252,193,206,163,252,193,208,163,252,193,228,164,252,193,230,164,252,193,232,164,252,193,234,164,252,193,236,164,252,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,206,160,67,0,193,212,163,252,193,46,163,252,193,48,163,252,193,50,163,252,193,52,163,252,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,193,54,163,252,193,104,164,252,193,106,164,252,193,108,164,252,193,110,164,252,193,112,164,252,193,114,164,252,193,116,164,252,193,118,164,252,193,120,164,252,193,122,164,252,193,124,164,252,193,126,164,252,193,128,164,252,193,130,164,252,193,132,164,252,193,134,164,252,193,136,164,252,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,206,192,67,0,193,162,164,252,193,164,164,252,193,166,164,252,193,168,164,252,193,170,164,252,193,172,164,252,193,174,164,252,193,176,164,252,193,178,164,252,193,180,164,252,193,182,164,252,193,184,164,252,193,186,164,252,193,130,165,252,193,132,165,252,193,134,165,252,193,136,165,252,193,138,165,252,193,140,165,252,193,142,165,252,193,144,165,252,193,146,165,252,193,148,165,252,193,150,165,252,193,18,166,252,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,206,224,67,0,193,194,164,252,193,196,164,252,193,198,164,252,193,200,164,252,193,202,164,252,193,204,164,252,193,206,164,252,193,208,164,252,193,210,164,252,193,212,164,252,193,214,164,252,193,216,164,252,193,218,164,252,193,238,164,252,193,240,164,252,193,242,164,252,193,210,163,252,193,244,164,252,193,186,165,252,193,50,166,252,193,52,166,252,193,54,166,252,193,56,166,252,193,58,166,252,193,60,166,252,193,62,166,252,193,64,166,252,193,240,166,252,193,242,166,252,193,244,166,252,193,246,166,252,193,100,167,252,193,102,167,252,193,104,167,252,193,134,162,253,193,154,167,252,193,244,167,252,193,12,168,252,193,64,168,252,193,140,168,252,193,204,168,252,193,206,168,252,193,44,169,252,193,46,169,252,193,48,169,252,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,206,0,68,0,193,138,164,252,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,193,140,164,252,193,142,164,252,193,144,164,252,193,146,164,252,193,148,164,252,193,110,165,252,193,112,165,252,193,16,166,252,193,162,166,252,193,164,166,252,193,166,166,252,193,168,166,252,193,56,167,252,193,146,167,252,193,196,167,252,193,234,167,252,193,48,168,252,193,98,168,252,193,100,168,252,193,158,168,252,193,160,168,252,193,236,168,252,193,238,168,252,193,240,168,252,193,102,169,252,193,104,169,252,193,106,169,252,193,108,169,252,193,110,169,252,193,240,169,252,193,242,169,252,193,244,169,252,193,220,164,252,193,222,164,252,193,224,164,252,193,156,165,252,193,158,165,252,193,160,165,252,193,162,165,252,193,164,165,252,193,166,165,252,193,168,165,252,193,170,165,252,193,172,165,252,193,174,165,252,193,176,165,252,193,178,165,252,193,180,165,252,193,40,166,252,193,42,166,252,193,44,166,252,193,46,166,252,193,48,166,252,193,182,165,252,193,184,165,252,193,218,166,252,193,220,166,252,193,222,166,252,193,224,166,252,193,226,166,252,193,228,166,252,193,230,166,252,193,232,166,252,193,234,166,252,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,32,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,64,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,193,20,166,252,193,22,166,252,193,24,166,252,193,26,166,252,193,28,166,252,193,30,166,252,193,32,166,252,193,34,166,252,193,180,166,252,193,182,166,252,193,184,166,252,193,186,166,252,193,188,166,252,193,190,166,252,193,192,166,252,193,194,166,252,193,196,166,252,193,198,166,252,193,200,166,252,193,202,166,252,193,204,166,252,193,206,166,252,193,70,167,252,193,72,167,252,193,74,167,252,193,76,167,252,193,78,167,252,193,80,167,252,193,82,167,252,193,84,167,252,193,236,167,252,193,238,167,252,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,96,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,193,212,166,252,193,214,166,252,193,216,166,252,193,150,167,252,193,10,168,252,193,36,168,252,193,112,168,252,193,166,168,252,193,168,168,252,193,170,168,252,193,172,168,252,193,4,169,252,193,6,169,252,193,8,169,252,193,10,169,252,193,12,169,252,193,14,169,252,193,140,169,252,193,142,169,252,193,144,169,252,193,146,169,252,193,148,169,252,193,24,170,252,193,26,170,252,193,28,170,252,193,30,170,252,193,32,170,252,193,34,170,252,193,36,170,252,193,168,170,252,193,64,171,252,193,66,171,252,193,236,166,252,193,238,166,252,193,86,167,252,193,88,167,252,193,90,167,252,193,92,167,252,193,94,167,252,193,96,167,252,193,98,167,252,193,200,167,252,193,152,167,252,193,202,167,252,193,204,167,252,193,206,167,252,193,208,167,252,193,240,167,252,193,242,167,252,193,62,168,252,193,72,168,252,193,76,168,252,193,84,168,252,193,86,168,252,193,88,168,252,193,116,168,252,193,118,168,252,193,120,168,252,193,122,168,252,193,124,168,252,193,126,168,252,193,128,168,252,193,130,168,252,193,132,168,252,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,128,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,193,58,167,252,193,60,167,252,193,62,167,252,193,64,167,252,193,66,167,252,193,68,167,252,193,148,167,252,193,198,167,252,193,28,168,252,193,30,168,252,193,32,168,252,193,82,168,252,193,102,168,252,193,104,168,252,193,106,168,252,193,162,168,252,193,242,168,252,193,244,168,252,193,246,168,252,193,112,169,252,193,114,169,252,193,116,169,252,193,118,169,252,193,120,169,252,193,122,169,252,193,248,169,252,193,250,169,252,193,252,169,252,193,254,169,252,193,146,170,252,193,148,170,252,193,150,170,252,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,206,160,68,0,193,156,167,252,193,158,167,252,193,160,167,252,193,162,167,252,193,164,167,252,193,166,167,252,193,168,167,252,193,170,167,252,193,172,167,252,193,174,167,252,193,176,167,252,193,178,167,252,193,180,167,252,193,182,167,252,193,184,167,252,193,186,167,252,193,188,167,252,193,190,167,252,193,192,167,252,193,194,167,252,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,206,192,68,0,193,246,167,252,193,248,167,252,193,250,167,252,193,252,167,252,193,254,167,252,193,2,168,252,193,4,168,252,193,6,168,252,193,14,168,252,193,16,168,252,193,18,168,252,193,20,168,252,193,22,168,252,193,24,168,252,193,26,168,252,193,38,168,252,193,50,168,252,193,52,168,252,193,40,168,252,193,42,168,252,193,44,168,252,193,46,168,252,193,54,168,252,193,56,168,252,193,8,168,252,193,34,168,252,193,60,168,252,193,108,168,252,193,110,168,252,193,164,168,252,193,248,168,252,193,250,168,252,193,252,168,252,193,254,168,252,193,2,169,252,193,124,169,252,193,126,169,252,193,128,169,252,193,130,169,252,193,132,169,252,193,134,169,252,193,136,169,252,193,138,169,252,193,2,170,252,193,4,170,252,193,6,170,252,193,8,170,252,193,10,170,252,193,12,170,252,193,14,170,252,193,16,170,252,193,18,170,252,193,20,170,252,193,22,170,252,193,154,170,252,193,156,170,252,193,58,168,252,193,66,168,252,193,68,168,252,193,70,168,252,193,74,168,252,193,78,168,252,193,80,168,252,193,90,168,252,193,92,168,252,193,94,168,252,193,96,168,252,193,142,168,252,193,144,168,252,193,146,168,252,193,148,168,252,193,150,168,252,193,152,168,252,193,154,168,252,193,156,168,252,193,208,168,252,193,210,168,252,193,212,168,252,193,214,168,252,193,216,168,252,193,218,168,252,193,220,168,252,193,222,168,252,193,224,168,252,193,226,168,252,193,228,168,252,193,230,168,252,193,232,168,252,193,134,168,252,193,136,168,252,193,138,168,252,193,174,168,252,193,176,168,252,193,178,168,252,193,180,168,252,193,182,168,252,193,184,168,252,193,186,168,252,193,188,168,252,193,190,168,252,193,192,168,252,193,194,168,252,193,196,168,252,193,198,168,252,193,200,168,252,193,202,168,252,193,18,169,252,193,20,169,252,193,22,169,252,193,24,169,252,193,26,169,252,193,28,169,252,193,30,169,252,193,32,169,252,193,34,169,252,193,36,169,252,193,38,169,252,193,40,169,252,193,150,169,252,193,152,169,252,193,234,168,252,193,52,169,252,193,54,169,252,193,56,169,252,193,58,169,252,193,60,169,252,193,62,169,252,193,64,169,252,193,66,169,252,193,68,169,252,193,70,169,252,193,72,169,252,193,74,169,252,193,76,169,252,193,78,169,252,193,80,169,252,193,82,169,252,193,84,169,252,193,86,169,252,193,88,169,252,193,90,169,252,193,92,169,252,193,94,169,252,193,192,169,252,193,96,169,252,193,98,169,252,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,193,154,169,252,193,156,169,252,193,158,169,252,193,42,169,252,193,160,169,252,193,162,169,252,193,164,169,252,193,166,169,252,193,168,169,252,193,170,169,252,193,172,169,252,193,174,169,252,193,176,169,252,193,178,169,252,193,38,170,252,193,40,170,252,193,42,170,252,193,44,170,252,193,46,170,252,193,48,170,252,193,50,170,252,193,52,170,252,193,170,170,252,193,172,170,252,193,174,170,252,193,176,170,252,193,178,170,252,193,180,170,252,193,182,170,252,193,184,170,252,193,186,170,252,193,188,170,252,193,50,169,252,193,180,169,252,193,182,169,252,193,184,169,252,193,186,169,252,193,188,169,252,193,190,169,252,193,56,170,252,193,58,170,252,193,60,170,252,193,62,170,252,193,64,170,252,193,66,170,252,193,192,170,252,193,194,170,252,193,196,170,252,193,198,170,252,193,200,170,252,193,202,170,252,193,98,171,252,193,100,171,252,193,102,171,252,193,104,171,252,193,106,171,252,193,108,171,252,193,110,171,252,193,244,171,252,193,246,171,252,193,122,172,252,193,124,172,252,193,126,172,252,193,128,172,252,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,206,224,68,0,193,100,169,252,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,193,246,169,252,193,144,170,252,193,32,171,252,193,34,171,252,193,36,171,252,193,38,171,252,193,184,171,252,193,186,171,252,193,188,171,252,193,52,172,252,193,54,172,252,193,56,172,252,193,58,172,252,193,184,172,252,193,186,172,252,193,42,173,252,193,44,173,252,193,46,173,252,193,134,173,252,193,136,173,252,193,138,173,252,193,140,173,252,193,174,173,252,193,244,173,252,193,246,173,252,193,248,173,252,193,102,174,252,193,104,174,252,193,162,174,252,193,164,174,252,193,96,175,252,193,32,176,252,193,54,170,252,193,190,170,252,193,72,171,252,193,74,171,252,193,76,171,252,193,78,171,252,193,80,171,252,193,82,171,252,193,84,171,252,193,86,171,252,193,88,171,252,193,90,171,252,193,92,171,252,193,94,171,252,193,96,171,252,193,222,171,252,193,224,171,252,193,226,171,252,193,228,171,252,193,230,171,252,193,232,171,252,193,234,171,252,193,236,171,252,193,238,171,252,193,240,171,252,193,100,172,252,193,102,172,252,193,104,172,252,193,106,172,252,193,108,172,252,193,110,172,252,193,112,172,252,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,206,0,69,0,193,204,170,252,193,206,170,252,193,208,170,252,193,210,170,252,193,212,170,252,193,214,170,252,193,216,170,252,193,218,170,252,193,152,170,252,193,40,171,252,193,42,171,252,193,44,171,252,193,46,171,252,193,48,171,252,193,190,171,252,193,192,171,252,193,194,171,252,193,196,171,252,193,198,171,252,193,60,172,252,193,62,172,252,193,64,172,252,193,66,172,252,193,68,172,252,193,70,172,252,193,72,172,252,193,74,172,252,193,190,172,252,193,192,172,252,193,194,172,252,193,48,173,252,193,50,173,252,193,52,173,252,193,54,173,252,193,56,173,252,193,142,173,252,193,176,173,252,193,178,173,252,193,180,173,252,193,214,173,252,193,158,170,252,193,160,170,252,193,162,170,252,193,164,170,252,193,166,170,252,193,50,171,252,193,52,171,252,193,54,171,252,193,56,171,252,193,58,171,252,193,60,171,252,193,62,171,252,193,200,171,252,193,202,171,252,193,204,171,252,193,206,171,252,193,208,171,252,193,210,171,252,193,212,171,252,193,76,172,252,193,78,172,252,193,80,172,252,193,82,172,252,193,84,172,252,193,86,172,252,193,88,172,252,193,196,172,252,193,58,173,252,193,60,173,252,193,144,173,252,193,146,173,252,193,216,173,252,193,220,170,252,193,222,170,252,193,224,170,252,193,226,170,252,193,228,170,252,193,230,170,252,193,232,170,252,193,234,170,252,193,236,170,252,193,238,170,252,193,240,170,252,193,242,170,252,193,244,170,252,193,246,170,252,193,248,170,252,193,250,170,252,193,252,170,252,193,254,170,252,193,2,171,252,193,4,171,252,193,6,171,252,193,8,171,252,193,10,171,252,193,12,171,252,193,14,171,252,193,16,171,252,193,18,171,252,193,20,171,252,193,22,171,252,193,24,171,252,193,26,171,252,193,28,171,252,193,30,171,252,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,193,68,171,252,193,70,171,252,193,214,171,252,193,216,171,252,193,218,171,252,193,220,171,252,193,90,172,252,193,92,172,252,193,94,172,252,193,96,172,252,193,98,172,252,193,198,172,252,193,200,172,252,193,202,172,252,193,204,172,252,193,206,172,252,193,208,172,252,193,62,173,252,193,64,173,252,193,66,173,252,193,182,173,252,193,184,173,252,193,254,173,252,193,106,174,252,193,174,174,252,193,176,174,252,193,108,175,252,193,110,175,252,193,112,175,252,193,114,175,252,193,56,176,252,193,58,176,252,206,32,69,0,206,32,69,0,206,32,69,0,206,32,69,0,193,252,171,252,193,254,171,252,193,2,172,252,193,4,172,252,193,6,172,252,193,8,172,252,193,10,172,252,193,12,172,252,193,14,172,252,193,16,172,252,193,18,172,252,193,20,172,252,193,22,172,252,193,24,172,252,193,26,172,252,193,28,172,252,193,30,172,252,193,32,172,252,193,34,172,252,193,36,172,252,193,38,172,252,193,40,172,252,193,42,172,252,193,44,172,252,193,46,172,252,193,48,172,252,193,50,172,252,193,136,172,252,193,248,171,252,193,102,133,253,193,104,133,253,193,180,133,253,193,220,133,253,193,2,134,253,193,4,134,253,193,6,134,253,193,80,134,253,193,148,134,253,193,172,134,253,193,198,134,253,193,240,134,253,193,242,134,253,193,60,135,253,193,118,135,253,193,120,135,253,193,122,135,253,193,124,135,253,193,126,135,253,193,128,135,253,193,130,135,253,193,132,135,253,193,202,135,253,193,204,135,253,193,206,135,253,193,64,136,253,193,66,136,253,193,68,136,253,193,70,136,253,193,202,136,253,193,204,136,253,193,114,172,252,193,116,172,252,193,118,172,252,193,210,172,252,193,212,172,252,193,214,172,252,193,216,172,252,193,218,172,252,193,120,172,252,193,68,173,252,193,70,173,252,193,72,173,252,193,74,173,252,193,76,173,252,193,148,173,252,193,150,173,252,193,152,173,252,193,218,173,252,193,186,173,252,193,220,173,252,193,222,173,252,193,2,174,252,193,30,174,252,193,58,174,252,193,70,174,252,193,72,174,252,193,74,174,252,193,76,174,252,193,78,174,252,193,80,174,252,193,82,174,252,193,84,174,252,193,130,172,252,193,132,172,252,193,134,172,252,193,220,172,252,193,222,172,252,193,224,172,252,193,226,172,252,193,228,172,252,193,230,172,252,193,232,172,252,193,78,173,252,193,80,173,252,193,82,173,252,193,154,173,252,193,156,173,252,193,188,173,252,193,224,173,252,193,4,174,252,193,6,174,252,193,32,174,252,193,34,174,252,193,86,174,252,193,128,174,252,193,130,174,252,193,132,174,252,193,134,174,252,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,193,138,172,252,193,140,172,252,193,142,172,252,193,144,172,252,193,146,172,252,193,148,172,252,193,150,172,252,193,152,172,252,193,154,172,252,193,156,172,252,193,158,172,252,193,160,172,252,193,162,172,252,193,164,172,252,193,166,172,252,193,168,172,252,193,170,172,252,193,172,172,252,193,174,172,252,193,176,172,252,193,178,172,252,193,180,172,252,193,182,172,252,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,193,188,172,252,193,130,180,252,193,106,183,252,193,198,186,252,193,28,187,252,193,126,187,252,193,232,187,252,193,182,188,252,193,58,193,252,193,102,200,252,193,92,211,252,193,110,217,252,193,208,225,252,193,210,225,252,193,104,227,252,193,134,229,252,193,136,229,252,193,138,229,252,193,20,235,252,193,22,235,252,193,198,237,252,193,110,240,252,193,214,242,252,193,162,12,253,193,252,15,253,193,26,16,253,193,66,19,253,193,198,24,253,193,102,27,253,193,2,40,253,193,22,41,253,193,96,41,253,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,64,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,206,96,69,0,193,158,173,252,193,160,173,252,193,162,173,252,193,164,173,252,193,166,173,252,193,168,173,252,193,170,173,252,193,172,173,252,193,190,173,252,193,192,173,252,193,194,173,252,193,196,173,252,193,198,173,252,193,200,173,252,193,202,173,252,193,204,173,252,193,206,173,252,193,208,173,252,193,226,173,252,193,210,173,252,193,212,173,252,193,228,173,252,193,230,173,252,193,232,173,252,193,234,173,252,193,236,173,252,193,238,173,252,193,240,173,252,193,242,173,252,193,8,174,252,193,10,174,252,193,12,174,252,193,14,174,252,193,16,174,252,193,18,174,252,193,20,174,252,193,22,174,252,193,24,174,252,193,26,174,252,193,36,174,252,193,38,174,252,193,40,174,252,193,42,174,252,193,44,174,252,193,48,174,252,193,50,174,252,193,52,174,252,193,54,174,252,193,56,174,252,193,250,173,252,193,252,173,252,193,28,174,252,193,166,174,252,193,168,174,252,193,98,175,252,193,100,175,252,193,38,176,252,193,40,176,252,193,42,176,252,193,44,176,252,193,8,177,252,193,10,177,252,193,12,177,252,193,14,177,252,193,16,177,252,193,18,177,252,193,20,177,252,193,22,177,252,193,24,177,252,193,26,177,252,193,252,177,252,193,254,177,252,193,2,178,252,193,4,178,252,193,6,178,252,193,8,178,252,193,10,178,252,193,12,178,252,193,14,178,252,193,16,178,252,193,52,179,252,193,46,174,252,193,170,174,252,193,172,174,252,193,102,175,252,193,104,175,252,193,106,175,252,193,46,176,252,193,48,176,252,193,50,176,252,193,52,176,252,193,54,176,252,193,28,177,252,193,30,177,252,193,32,177,252,193,34,177,252,193,36,177,252,193,38,177,252,193,18,178,252,193,20,178,252,193,22,178,252,193,24,178,252,193,26,178,252,193,70,179,252,193,72,179,252,193,74,179,252,193,76,179,252,193,78,179,252,193,80,179,252,193,82,179,252,193,84,179,252,193,86,179,252,193,88,179,252,193,60,174,252,193,62,174,252,193,64,174,252,193,66,174,252,193,68,174,252,193,88,174,252,193,90,174,252,193,92,174,252,193,94,174,252,193,96,174,252,193,98,174,252,193,100,174,252,193,136,174,252,193,138,174,252,193,140,174,252,193,142,174,252,193,144,174,252,193,146,174,252,193,148,174,252,193,150,174,252,193,152,174,252,193,154,174,252,193,156,174,252,193,158,174,252,193,160,174,252,193,12,175,252,193,14,175,252,193,16,175,252,193,18,175,252,193,20,175,252,193,22,175,252,193,24,175,252,193,108,174,252,193,110,174,252,193,112,174,252,193,114,174,252,193,116,174,252,193,118,174,252,193,120,174,252,193,122,174,252,193,124,174,252,193,126,174,252,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,128,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,206,160,69,0,193,190,175,252,193,192,175,252,193,194,175,252,193,196,175,252,193,198,175,252,193,200,175,252,193,202,175,252,193,204,175,252,193,206,175,252,193,208,175,252,193,210,175,252,193,212,175,252,193,214,175,252,193,148,176,252,193,150,176,252,193,152,176,252,193,154,176,252,193,156,176,252,193,158,176,252,193,160,176,252,193,162,176,252,193,164,176,252,193,166,176,252,193,122,177,252,193,26,175,252,193,28,175,252,193,30,175,252,193,32,175,252,193,34,175,252,193,36,175,252,193,38,175,252,193,40,175,252,193,42,175,252,193,44,175,252,193,46,175,252,193,48,175,252,193,50,175,252,193,52,175,252,193,54,175,252,193,56,175,252,193,58,175,252,193,60,175,252,193,62,175,252,193,64,175,252,193,66,175,252,193,68,175,252,193,70,175,252,193,72,175,252,193,74,175,252,193,76,175,252,193,78,175,252,193,80,175,252,193,82,175,252,193,84,175,252,193,86,175,252,193,88,175,252,193,90,175,252,193,92,175,252,193,94,175,252,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,206,192,69,0,193,64,176,252,193,66,176,252,193,68,176,252,193,70,176,252,193,72,176,252,193,74,176,252,193,76,176,252,193,78,176,252,193,80,176,252,193,82,176,252,193,84,176,252,193,86,176,252,193,88,176,252,193,90,176,252,193,46,177,252,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,224,69,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,193,34,176,252,193,36,176,252,193,2,177,252,193,4,177,252,193,6,177,252,193,242,177,252,193,244,177,252,193,246,177,252,193,248,177,252,193,250,177,252,193,34,179,252,193,36,179,252,193,38,179,252,193,40,179,252,193,42,179,252,193,44,179,252,193,46,179,252,193,48,179,252,193,50,179,252,193,120,180,252,193,122,180,252,193,124,180,252,193,126,180,252,193,128,180,252,193,146,181,252,193,148,181,252,193,150,181,252,193,152,181,252,193,154,181,252,193,122,182,252,193,124,182,252,193,126,182,252,193,60,176,252,193,62,176,252,193,40,177,252,193,42,177,252,193,44,177,252,193,28,178,252,193,30,178,252,193,32,178,252,193,34,178,252,193,96,179,252,193,98,179,252,193,100,179,252,193,102,179,252,193,104,179,252,193,174,180,252,193,176,180,252,193,180,181,252,193,168,182,252,193,170,182,252,193,134,183,252,193,136,183,252,193,4,185,252,193,6,185,252,193,8,185,252,193,80,185,252,193,82,185,252,193,120,185,252,193,210,185,252,193,228,185,252,193,60,186,252,193,62,186,252,193,64,186,252,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,0,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,32,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,64,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,193,120,177,252,193,140,178,252,193,142,178,252,193,106,179,252,193,144,178,252,193,146,178,252,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,193,124,177,252,193,126,177,252,193,128,177,252,193,130,177,252,193,132,177,252,193,134,177,252,193,136,177,252,193,148,178,252,193,150,178,252,193,152,178,252,193,154,178,252,193,156,178,252,193,158,178,252,193,160,178,252,193,162,178,252,193,164,178,252,193,166,178,252,193,168,178,252,193,170,178,252,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,96,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,128,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,206,160,70,0,193,54,179,252,193,56,179,252,193,58,179,252,193,60,179,252,193,62,179,252,193,64,179,252,193,66,179,252,193,68,179,252,193,132,180,252,193,134,180,252,193,136,180,252,193,138,180,252,193,140,180,252,193,142,180,252,193,144,180,252,193,156,181,252,193,158,181,252,193,160,181,252,193,162,181,252,193,130,182,252,193,132,182,252,193,134,182,252,193,136,182,252,193,138,182,252,193,140,182,252,193,142,182,252,193,144,182,252,193,108,183,252,193,110,183,252,193,112,183,252,193,114,183,252,193,116,183,252,193,90,179,252,193,92,179,252,193,94,179,252,193,146,180,252,193,148,180,252,193,150,180,252,193,152,180,252,193,154,180,252,193,156,180,252,193,158,180,252,193,160,180,252,193,162,180,252,193,164,180,252,193,166,180,252,193,168,180,252,193,170,180,252,193,172,180,252,193,164,181,252,193,166,181,252,193,168,181,252,193,170,181,252,193,172,181,252,193,174,181,252,193,176,181,252,193,178,181,252,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,192,70,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,206,224,70,0,193,244,180,252,193,246,180,252,193,248,180,252,193,250,180,252,193,252,180,252,193,254,180,252,193,2,181,252,193,252,181,252,193,254,181,252,193,2,182,252,193,4,182,252,193,6,182,252,193,8,182,252,193,10,182,252,193,12,182,252,193,14,182,252,193,16,182,252,193,226,182,252,193,228,182,252,193,230,182,252,193,232,182,252,193,234,182,252,193,236,182,252,193,178,183,252,193,180,183,252,193,182,183,252,193,184,183,252,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,206,0,71,0,193,4,181,252,193,68,180,252,193,70,180,252,193,72,180,252,193,74,180,252,193,76,180,252,193,78,180,252,193,80,180,252,193,82,180,252,193,84,180,252,193,86,180,252,193,88,180,252,193,90,180,252,193,92,180,252,193,94,180,252,193,96,180,252,193,98,180,252,193,100,180,252,193,102,180,252,193,104,180,252,193,106,180,252,193,108,180,252,193,110,180,252,193,112,180,252,193,114,180,252,193,116,180,252,193,118,180,252,193,6,181,252,193,8,181,252,193,10,181,252,193,12,181,252,193,14,181,252,193,16,181,252,193,18,181,252,193,20,181,252,193,22,181,252,193,24,181,252,193,26,181,252,193,28,181,252,193,30,181,252,193,32,181,252,193,34,181,252,193,36,181,252,193,38,181,252,193,40,181,252,193,42,181,252,193,44,181,252,193,46,181,252,193,48,181,252,193,50,181,252,193,52,181,252,193,54,181,252,193,56,181,252,193,58,181,252,193,60,181,252,193,62,181,252,193,64,181,252,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,32,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,193,66,181,252,193,68,181,252,193,70,181,252,193,72,181,252,193,74,181,252,193,76,181,252,193,78,181,252,193,80,181,252,193,82,181,252,193,84,181,252,193,86,181,252,193,88,181,252,193,90,181,252,193,92,181,252,193,94,181,252,193,96,181,252,193,98,181,252,193,100,181,252,193,102,181,252,193,104,181,252,193,106,181,252,193,108,181,252,193,110,181,252,193,112,181,252,193,114,181,252,193,116,181,252,193,118,181,252,193,120,181,252,193,122,181,252,193,124,181,252,193,126,181,252,193,128,181,252,193,130,181,252,193,132,181,252,193,18,182,252,193,134,181,252,193,136,181,252,193,138,181,252,193,140,181,252,193,142,181,252,193,144,181,252,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,206,64,71,0,193,172,182,252,193,244,181,252,193,246,181,252,193,138,183,252,193,248,181,252,193,250,181,252,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,96,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,193,128,182,252,193,98,183,252,193,100,183,252,193,102,183,252,193,104,183,252,193,18,184,252,193,20,184,252,193,22,184,252,193,24,184,252,193,26,184,252,193,28,184,252,193,30,184,252,193,128,184,252,193,130,184,252,193,132,184,252,193,236,184,252,193,238,184,252,193,240,184,252,193,62,185,252,193,64,185,252,193,66,185,252,193,112,185,252,193,174,185,252,193,184,185,252,193,202,185,252,193,222,185,252,193,42,186,252,193,44,186,252,193,46,186,252,193,48,186,252,193,112,186,252,193,114,186,252,206,128,71,0,206,128,71,0,206,128,71,0,206,128,71,0,193,122,183,252,193,124,183,252,193,126,183,252,193,128,183,252,193,130,183,252,193,132,183,252,193,34,184,252,193,36,184,252,193,38,184,252,193,40,184,252,193,42,184,252,193,44,184,252,193,146,184,252,193,148,184,252,193,150,184,252,193,250,184,252,193,252,184,252,193,254,184,252,193,2,185,252,193,74,185,252,193,76,185,252,193,78,185,252,193,118,185,252,193,152,185,252,193,154,185,252,193,176,185,252,193,178,185,252,193,204,185,252,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,206,160,71,0,193,140,183,252,193,222,182,252,193,142,183,252,193,144,183,252,193,146,183,252,193,148,183,252,193,150,183,252,193,152,183,252,193,154,183,252,193,156,183,252,193,158,183,252,193,224,182,252,193,160,183,252,193,162,183,252,193,164,183,252,193,166,183,252,193,168,183,252,193,170,183,252,193,172,183,252,193,174,183,252,193,176,183,252,206,0,72,0,206,0,72,0,206,0,72,0,206,0,72,0,206,0,72,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,192,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,193,118,183,252,193,120,183,252,193,32,184,252,193,134,184,252,193,136,184,252,193,138,184,252,193,140,184,252,193,142,184,252,193,144,184,252,193,242,184,252,193,244,184,252,193,246,184,252,193,248,184,252,193,68,185,252,193,70,185,252,193,72,185,252,193,114,185,252,193,116,185,252,193,150,185,252,193,2,186,252,193,50,186,252,193,52,186,252,193,54,186,252,193,56,186,252,193,58,186,252,193,116,186,252,193,118,186,252,193,120,186,252,193,122,186,252,193,124,186,252,193,126,186,252,193,200,186,252,193,186,183,252,193,188,183,252,193,190,183,252,193,64,184,252,193,66,184,252,193,68,184,252,193,70,184,252,193,72,184,252,193,178,184,252,193,180,184,252,193,14,185,252,193,16,185,252,193,18,185,252,193,20,185,252,193,92,185,252,193,124,185,252,193,126,185,252,193,128,185,252,193,130,185,252,193,164,185,252,193,166,185,252,193,190,185,252,193,254,185,252,193,106,186,252,193,40,186,252,193,108,186,252,193,184,186,252,193,186,186,252,193,8,187,252,193,112,187,252,193,212,187,252,193,214,187,252,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,224,71,0,206,32,72,0,206,32,72,0,206,32,72,0,206,32,72,0,193,182,184,252,193,16,184,252,193,90,184,252,193,92,184,252,193,184,184,252,193,94,184,252,193,96,184,252,193,186,184,252,193,98,184,252,193,100,184,252,193,102,184,252,193,104,184,252,193,106,184,252,193,108,184,252,193,110,184,252,193,112,184,252,193,114,184,252,193,116,184,252,193,118,184,252,193,120,184,252,193,122,184,252,193,124,184,252,193,126,184,252,193,188,184,252,193,190,184,252,193,192,184,252,193,194,184,252,193,196,184,252,206,0,72,0,206,0,72,0,206,0,72,0,206,0,72,0,193,152,184,252,193,154,184,252,193,156,184,252,193,158,184,252,193,160,184,252,193,162,184,252,193,164,184,252,193,166,184,252,193,168,184,252,193,170,184,252,193,172,184,252,193,174,184,252,193,176,184,252,193,10,185,252,193,12,185,252,193,84,185,252,193,86,185,252,193,88,185,252,193,90,185,252,193,122,185,252,193,156,185,252,193,158,185,252,193,160,185,252,193,162,185,252,193,186,185,252,193,188,185,252,193,212,185,252,193,220,185,252,193,198,184,252,193,200,184,252,193,22,185,252,193,202,184,252,193,204,184,252,193,206,184,252,193,208,184,252,193,210,184,252,193,212,184,252,193,214,184,252,193,216,184,252,193,218,184,252,193,220,184,252,193,222,184,252,193,224,184,252,193,226,184,252,193,228,184,252,193,230,184,252,193,232,184,252,193,234,184,252,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,206,64,72,0,193,94,185,252,193,96,185,252,193,98,185,252,193,100,185,252,193,102,185,252,193,104,185,252,193,106,185,252,193,108,185,252,193,110,185,252,193,132,185,252,193,134,185,252,193,136,185,252,193,138,185,252,193,140,185,252,193,142,185,252,193,144,185,252,193,146,185,252,193,168,185,252,193,148,185,252,193,170,185,252,193,172,185,252,193,180,185,252,193,182,185,252,193,192,185,252,193,194,185,252,193,196,185,252,193,198,185,252,193,200,185,252,193,206,185,252,193,208,185,252,193,214,185,252,193,216,185,252,193,218,185,252,193,110,186,252,193,188,186,252,193,10,187,252,193,12,187,252,193,14,187,252,193,114,187,252,193,116,187,252,193,118,187,252,193,120,187,252,193,216,187,252,193,218,187,252,193,220,187,252,193,222,187,252,193,224,187,252,193,38,188,252,193,40,188,252,193,42,188,252,193,44,188,252,193,82,188,252,193,118,188,252,193,120,188,252,193,122,188,252,193,162,188,252,193,164,188,252,193,224,185,252,193,230,185,252,193,232,185,252,193,234,185,252,193,236,185,252,193,238,185,252,193,240,185,252,193,242,185,252,193,244,185,252,193,246,185,252,193,248,185,252,193,250,185,252,193,4,186,252,193,6,186,252,193,8,186,252,193,10,186,252,193,12,186,252,193,14,186,252,193,16,186,252,193,18,186,252,193,20,186,252,193,22,186,252,193,252,185,252,193,24,186,252,193,26,186,252,193,28,186,252,193,30,186,252,193,32,186,252,193,34,186,252,193,36,186,252,193,38,186,252,193,70,186,252,193,226,185,252,193,128,186,252,193,130,186,252,193,132,186,252,193,218,186,252,193,220,186,252,193,222,186,252,193,38,187,252,193,40,187,252,193,42,187,252,193,136,187,252,193,138,187,252,193,140,187,252,193,252,187,252,193,102,188,252,193,104,188,252,193,218,188,252,193,238,188,252,193,16,189,252,193,48,189,252,193,50,189,252,193,82,189,252,193,108,189,252,193,132,189,252,193,152,189,252,193,170,189,252,193,172,189,252,193,174,189,252,193,2,190,252,193,62,190,252,193,106,190,252,193,108,190,252,193,66,186,252,193,68,186,252,193,134,186,252,193,136,186,252,193,138,186,252,193,140,186,252,193,142,186,252,193,144,186,252,193,146,186,252,193,148,186,252,193,150,186,252,193,152,186,252,193,224,186,252,193,226,186,252,193,228,186,252,193,230,186,252,193,232,186,252,193,234,186,252,193,236,186,252,193,238,186,252,193,240,186,252,193,242,186,252,193,44,187,252,193,46,187,252,193,48,187,252,193,50,187,252,193,52,187,252,193,54,187,252,193,56,187,252,193,58,187,252,193,60,187,252,193,142,187,252,193,72,186,252,193,74,186,252,193,76,186,252,193,78,186,252,193,80,186,252,193,82,186,252,193,84,186,252,193,86,186,252,193,88,186,252,193,90,186,252,193,92,186,252,193,94,186,252,193,96,186,252,193,98,186,252,193,100,186,252,193,102,186,252,193,104,186,252,193,154,186,252,193,156,186,252,193,158,186,252,193,160,186,252,193,162,186,252,193,164,186,252,193,166,186,252,193,168,186,252,193,170,186,252,193,172,186,252,193,174,186,252,193,176,186,252,193,178,186,252,193,180,186,252,193,182,186,252,193,190,186,252,193,192,186,252,193,194,186,252,193,196,186,252,193,16,187,252,193,18,187,252,193,20,187,252,193,22,187,252,193,24,187,252,193,26,187,252,193,122,187,252,193,124,187,252,193,226,187,252,193,228,187,252,193,230,187,252,193,46,188,252,193,48,188,252,193,84,188,252,193,86,188,252,193,88,188,252,193,90,188,252,193,124,188,252,193,126,188,252,193,166,188,252,193,180,188,252,193,196,188,252,193,46,189,252,193,78,189,252,193,100,189,252,193,102,189,252,193,128,189,252,193,192,189,252,193,202,186,252,193,204,186,252,193,206,186,252,193,208,186,252,193,210,186,252,193,212,186,252,193,214,186,252,193,216,186,252,193,30,187,252,193,32,187,252,193,34,187,252,193,36,187,252,193,128,187,252,193,130,187,252,193,132,187,252,193,134,187,252,193,234,187,252,193,236,187,252,193,238,187,252,193,240,187,252,193,242,187,252,193,244,187,252,193,246,187,252,193,248,187,252,193,250,187,252,193,50,188,252,193,52,188,252,193,54,188,252,193,56,188,252,193,58,188,252,193,92,188,252,193,94,188,252,193,244,186,252,193,246,186,252,193,248,186,252,193,250,186,252,193,252,186,252,193,254,186,252,193,2,187,252,193,4,187,252,193,6,187,252,193,62,187,252,193,64,187,252,193,66,187,252,193,68,187,252,193,70,187,252,193,72,187,252,193,74,187,252,193,76,187,252,193,78,187,252,193,80,187,252,193,82,187,252,193,84,187,252,193,86,187,252,193,88,187,252,193,90,187,252,193,92,187,252,193,94,187,252,193,96,187,252,193,98,187,252,193,100,187,252,193,102,187,252,193,104,187,252,193,106,187,252,193,108,187,252,193,110,187,252,193,166,187,252,193,168,187,252,193,170,187,252,193,172,187,252,193,174,187,252,193,176,187,252,193,178,187,252,193,180,187,252,193,182,187,252,193,184,187,252,193,186,187,252,193,188,187,252,193,190,187,252,193,192,187,252,193,194,187,252,193,196,187,252,193,198,187,252,193,200,187,252,193,202,187,252,193,204,187,252,193,206,187,252,193,208,187,252,193,210,187,252,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,193,144,187,252,193,146,187,252,193,148,187,252,193,150,187,252,193,152,187,252,193,154,187,252,193,156,187,252,193,158,187,252,193,160,187,252,193,162,187,252,193,164,187,252,193,254,187,252,193,2,188,252,193,4,188,252,193,6,188,252,193,8,188,252,193,10,188,252,193,60,188,252,193,62,188,252,193,64,188,252,193,66,188,252,193,106,188,252,193,108,188,252,193,140,188,252,193,142,188,252,193,144,188,252,193,146,188,252,193,148,188,252,193,170,188,252,193,172,188,252,193,174,188,252,193,184,188,252,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,206,96,72,0,193,68,188,252,193,70,188,252,193,72,188,252,193,74,188,252,193,76,188,252,193,78,188,252,193,80,188,252,193,110,188,252,193,112,188,252,193,114,188,252,193,116,188,252,193,150,188,252,193,152,188,252,193,154,188,252,193,156,188,252,193,158,188,252,193,192,188,252,193,198,188,252,193,202,188,252,193,208,188,252,193,220,188,252,193,222,188,252,193,240,188,252,193,224,188,252,193,242,188,252,193,18,189,252,193,20,189,252,193,36,188,252,193,160,188,252,193,210,188,252,193,226,188,252,193,244,188,252,193,246,188,252,193,248,188,252,193,250,188,252,193,252,188,252,193,254,188,252,193,24,189,252,193,56,189,252,193,58,189,252,193,112,189,252,193,216,189,252,193,244,189,252,193,30,190,252,193,32,190,252,193,70,190,252,193,72,190,252,193,74,190,252,193,130,190,252,193,132,190,252,193,134,190,252,193,212,190,252,193,16,191,252,193,18,191,252,193,68,191,252,193,70,191,252,193,72,191,252,193,74,191,252,193,156,191,252,193,96,188,252,193,98,188,252,193,100,188,252,193,128,188,252,193,130,188,252,193,132,188,252,193,134,188,252,193,136,188,252,193,138,188,252,193,168,188,252,193,186,188,252,193,194,188,252,193,234,188,252,193,236,188,252,193,14,189,252,193,36,189,252,193,80,189,252,193,104,189,252,193,106,189,252,193,130,189,252,193,194,189,252,193,20,190,252,193,56,190,252,193,58,190,252,193,60,190,252,193,104,190,252,193,194,190,252,193,196,190,252,193,198,190,252,193,254,190,252,193,40,191,252,193,42,191,252,193,176,188,252,193,178,188,252,193,200,188,252,193,212,188,252,193,214,188,252,193,216,188,252,193,228,188,252,193,230,188,252,193,232,188,252,193,2,189,252,193,4,189,252,193,6,189,252,193,8,189,252,193,10,189,252,193,12,189,252,193,26,189,252,193,28,189,252,193,30,189,252,193,32,189,252,193,34,189,252,193,38,189,252,193,40,189,252,193,42,189,252,193,44,189,252,193,60,189,252,193,62,189,252,193,64,189,252,193,66,189,252,193,68,189,252,193,70,189,252,193,72,189,252,193,74,189,252,193,188,188,252,193,190,188,252,193,204,188,252,193,206,188,252,193,84,189,252,193,154,189,252,193,176,189,252,193,208,189,252,193,112,190,252,193,208,190,252,193,4,191,252,193,6,191,252,193,8,191,252,193,46,191,252,193,48,191,252,193,140,191,252,193,142,191,252,193,144,191,252,193,4,192,252,193,6,192,252,193,8,192,252,193,78,192,252,193,252,192,252,193,34,193,252,193,124,193,252,193,250,193,252,193,154,194,252,193,194,194,252,193,196,194,252,193,140,195,252,193,244,195,252,193,246,195,252,193,22,189,252,193,52,189,252,193,54,189,252,193,110,189,252,193,134,189,252,193,136,189,252,193,138,189,252,193,156,189,252,193,158,189,252,193,160,189,252,193,178,189,252,193,180,189,252,193,196,189,252,193,202,189,252,193,210,189,252,193,212,189,252,193,224,189,252,193,238,189,252,193,240,189,252,193,242,189,252,193,22,190,252,193,24,190,252,193,26,190,252,193,28,190,252,193,64,190,252,193,66,190,252,193,68,190,252,193,114,190,252,193,116,190,252,193,118,190,252,193,120,190,252,193,122,190,252,193,76,189,252,193,86,189,252,193,88,189,252,193,90,189,252,193,92,189,252,193,94,189,252,193,96,189,252,193,98,189,252,193,114,189,252,193,116,189,252,193,118,189,252,193,120,189,252,193,122,189,252,193,124,189,252,193,126,189,252,193,140,189,252,193,142,189,252,193,144,189,252,193,146,189,252,193,148,189,252,193,150,189,252,193,162,189,252,193,164,189,252,193,166,189,252,193,168,189,252,193,184,189,252,193,186,189,252,193,188,189,252,193,190,189,252,193,198,189,252,193,200,189,252,193,204,189,252,193,206,189,252,193,214,189,252,193,218,189,252,193,220,189,252,193,222,189,252,193,228,189,252,193,230,189,252,193,232,189,252,193,234,189,252,193,236,189,252,193,246,189,252,193,248,189,252,193,4,190,252,193,250,189,252,193,6,190,252,193,254,189,252,193,252,189,252,193,8,190,252,193,10,190,252,193,12,190,252,193,14,190,252,193,16,190,252,193,18,190,252,193,34,190,252,193,36,190,252,193,38,190,252,193,40,190,252,193,42,190,252,193,44,190,252,193,46,190,252,193,48,190,252,193,50,190,252,193,52,190,252,193,76,190,252,193,78,190,252,193,80,190,252,193,82,190,252,193,84,190,252,193,86,190,252,193,88,190,252,193,90,190,252,193,92,190,252,193,94,190,252,193,96,190,252,193,98,190,252,193,100,190,252,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,206,128,72,0,193,54,190,252,193,102,190,252,193,192,190,252,193,248,190,252,193,250,190,252,193,252,190,252,193,122,191,252,193,124,191,252,193,192,191,252,193,236,191,252,193,64,192,252,193,154,192,252,193,192,192,252,193,216,192,252,193,32,193,252,193,186,193,252,193,188,193,252,193,190,193,252,193,192,193,252,193,236,193,252,193,238,193,252,193,50,194,252,193,140,194,252,193,142,194,252,193,144,194,252,193,180,194,252,193,228,194,252,193,230,194,252,193,232,194,252,193,28,195,252,193,30,195,252,193,76,195,252,193,110,190,252,193,200,190,252,193,202,190,252,193,204,190,252,193,206,190,252,193,2,191,252,193,44,191,252,193,134,191,252,193,136,191,252,193,138,191,252,193,194,191,252,193,196,191,252,193,198,191,252,193,244,191,252,193,246,191,252,193,248,191,252,193,250,191,252,193,252,191,252,193,254,191,252,193,2,192,252,193,66,192,252,193,68,192,252,193,70,192,252,193,72,192,252,193,74,192,252,193,76,192,252,193,124,192,252,193,126,192,252,193,158,192,252,193,194,192,252,193,196,192,252,193,220,192,252,193,124,190,252,193,126,190,252,193,128,190,252,193,210,190,252,193,10,191,252,193,12,191,252,193,14,191,252,193,50,191,252,193,52,191,252,193,54,191,252,193,56,191,252,193,58,191,252,193,60,191,252,193,62,191,252,193,64,191,252,193,146,191,252,193,148,191,252,193,150,191,252,193,66,191,252,193,152,191,252,193,154,191,252,193,200,191,252,193,202,191,252,193,204,191,252,193,206,191,252,193,10,192,252,193,12,192,252,193,14,192,252,193,16,192,252,193,80,192,252,193,82,192,252,193,84,192,252,206,160,72,0,206,160,72,0,206,160,72,0,206,160,72,0,206,160,72,0,193,76,191,252,193,78,191,252,193,80,191,252,193,82,191,252,193,84,191,252,193,86,191,252,193,88,191,252,193,90,191,252,193,92,191,252,193,94,191,252,193,96,191,252,193,98,191,252,193,38,191,252,193,100,191,252,193,102,191,252,193,104,191,252,193,106,191,252,193,108,191,252,193,110,191,252,193,112,191,252,193,114,191,252,193,116,191,252,193,118,191,252,193,120,191,252,193,158,191,252,193,160,191,252,193,162,191,252,193,126,191,252,193,128,191,252,193,130,191,252,193,132,191,252,193,238,191,252,193,240,191,252,193,242,191,252,193,120,192,252,193,122,192,252,193,156,192,252,193,218,192,252,193,226,192,252,193,60,193,252,193,118,193,252,193,120,193,252,193,122,193,252,193,194,193,252,193,240,193,252,193,242,193,252,193,244,193,252,193,52,194,252,193,90,194,252,193,92,194,252,193,146,194,252,193,148,194,252,193,182,194,252,193,184,194,252,193,186,194,252,193,234,194,252,193,236,194,252,193,32,195,252,193,58,195,252,193,18,192,252,193,20,192,252,193,90,192,252,193,130,192,252,193,168,192,252,193,210,192,252,193,234,192,252,193,82,193,252,193,84,193,252,193,86,193,252,193,140,193,252,193,142,193,252,193,144,193,252,193,146,193,252,193,206,193,252,193,208,193,252,193,210,193,252,193,14,194,252,193,58,194,252,193,60,194,252,193,62,194,252,193,64,194,252,193,66,194,252,193,112,194,252,193,160,194,252,193,162,194,252,193,198,194,252,193,244,194,252,193,246,194,252,193,102,195,252,193,192,195,252,193,194,195,252,193,28,192,252,193,30,192,252,193,32,192,252,193,34,192,252,193,36,192,252,193,38,192,252,193,40,192,252,193,42,192,252,193,44,192,252,193,46,192,252,193,48,192,252,193,50,192,252,193,52,192,252,193,54,192,252,193,56,192,252,193,58,192,252,193,60,192,252,193,62,192,252,193,92,192,252,193,94,192,252,193,96,192,252,193,98,192,252,193,100,192,252,193,102,192,252,193,104,192,252,193,106,192,252,193,108,192,252,193,110,192,252,193,112,192,252,193,114,192,252,193,116,192,252,193,132,192,252,193,86,192,252,193,88,192,252,193,128,192,252,193,160,192,252,193,162,192,252,193,164,192,252,193,166,192,252,193,222,192,252,193,230,192,252,193,232,192,252,193,14,193,252,193,22,193,252,193,24,193,252,193,36,193,252,193,38,193,252,193,40,193,252,193,42,193,252,193,44,193,252,193,68,193,252,193,70,193,252,193,72,193,252,193,126,193,252,193,74,193,252,193,76,193,252,193,78,193,252,193,80,193,252,193,128,193,252,193,130,193,252,193,132,193,252,193,134,193,252,193,136,193,252,193,138,193,252,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,193,118,192,252,193,186,51,253,193,188,51,253,193,190,51,253,193,192,51,253,193,194,51,253,193,196,51,253,193,242,51,253,193,244,51,253,193,246,51,253,193,248,51,253,193,250,51,253,193,252,51,253,193,254,51,253,193,2,52,253,193,4,52,253,193,6,52,253,193,8,52,253,193,10,52,253,193,12,52,253,193,14,52,253,193,16,52,253,193,18,52,253,193,20,52,253,193,22,52,253,193,64,52,253,193,66,52,253,193,134,192,252,193,136,192,252,193,138,192,252,193,140,192,252,193,142,192,252,193,144,192,252,193,146,192,252,193,148,192,252,193,150,192,252,193,248,194,252,193,170,192,252,193,172,192,252,193,174,192,252,193,176,192,252,193,178,192,252,193,180,192,252,193,182,192,252,193,184,192,252,193,186,192,252,193,188,192,252,193,190,192,252,193,198,192,252,193,200,192,252,193,202,192,252,193,204,192,252,193,206,192,252,193,208,192,252,193,212,192,252,193,214,192,252,193,224,192,252,193,236,192,252,193,238,192,252,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,193,152,192,252,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,193,228,192,252,193,254,192,252,193,62,193,252,193,64,193,252,193,66,193,252,193,196,193,252,193,198,193,252,193,246,193,252,193,248,193,252,193,54,194,252,193,94,194,252,193,96,194,252,193,98,194,252,193,100,194,252,193,150,194,252,193,152,194,252,193,188,194,252,193,190,194,252,193,192,194,252,193,34,195,252,193,60,195,252,193,98,195,252,193,100,195,252,193,114,195,252,193,236,195,252,193,238,195,252,193,240,195,252,193,242,195,252,193,64,196,252,193,140,196,252,193,142,196,252,193,144,196,252,193,240,192,252,193,242,192,252,193,244,192,252,193,246,192,252,193,248,192,252,193,250,192,252,193,2,193,252,193,4,193,252,193,6,193,252,193,8,193,252,193,10,193,252,193,16,193,252,193,18,193,252,193,20,193,252,193,26,193,252,193,28,193,252,193,30,193,252,193,46,193,252,193,48,193,252,193,50,193,252,193,52,193,252,193,54,193,252,193,56,193,252,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,206,192,72,0,193,148,193,252,193,150,193,252,193,152,193,252,193,154,193,252,193,156,193,252,193,158,193,252,193,160,193,252,193,162,193,252,193,164,193,252,193,116,193,252,193,166,193,252,193,168,193,252,193,170,193,252,193,172,193,252,193,174,193,252,193,176,193,252,193,178,193,252,193,180,193,252,193,182,193,252,193,184,193,252,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,206,224,72,0,193,200,193,252,193,202,193,252,193,204,193,252,193,252,193,252,193,254,193,252,193,2,194,252,193,4,194,252,193,6,194,252,193,8,194,252,193,10,194,252,193,12,194,252,193,56,194,252,193,102,194,252,193,104,194,252,193,106,194,252,193,108,194,252,193,110,194,252,193,156,194,252,193,158,194,252,193,238,194,252,193,240,194,252,193,242,194,252,193,36,195,252,193,38,195,252,193,40,195,252,193,42,195,252,193,62,195,252,193,78,195,252,193,80,195,252,193,136,195,252,193,144,195,252,193,146,195,252,193,86,194,252,193,88,194,252,193,114,194,252,193,116,194,252,193,118,194,252,193,120,194,252,193,122,194,252,193,124,194,252,193,126,194,252,193,128,194,252,193,130,194,252,193,132,194,252,193,134,194,252,193,136,194,252,193,138,194,252,193,164,194,252,193,166,194,252,193,168,194,252,193,170,194,252,193,172,194,252,193,174,194,252,193,176,194,252,193,178,194,252,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,206,0,73,0,193,250,194,252,193,252,194,252,193,254,194,252,193,2,195,252,193,4,195,252,193,6,195,252,193,8,195,252,193,10,195,252,193,12,195,252,193,14,195,252,193,16,195,252,193,18,195,252,193,20,195,252,193,22,195,252,193,24,195,252,193,26,195,252,193,44,195,252,193,46,195,252,193,48,195,252,193,50,195,252,193,52,195,252,193,54,195,252,193,56,195,252,193,64,195,252,193,66,195,252,193,68,195,252,193,70,195,252,193,72,195,252,193,74,195,252,193,84,195,252,193,86,195,252,193,88,195,252,193,90,195,252,193,92,195,252,193,94,195,252,193,104,195,252,193,106,195,252,193,116,195,252,193,118,195,252,193,120,195,252,193,122,195,252,193,124,195,252,193,130,195,252,193,132,195,252,193,134,195,252,193,142,195,252,193,138,195,252,193,148,195,252,193,150,195,252,193,152,195,252,193,154,195,252,193,156,195,252,193,158,195,252,193,160,195,252,193,162,195,252,193,164,195,252,193,166,195,252,193,168,195,252,193,170,195,252,193,96,195,252,193,112,195,252,193,126,195,252,193,200,196,252,193,14,197,252,193,160,197,252,193,162,197,252,193,210,197,252,193,212,197,252,193,96,198,252,193,98,198,252,193,148,198,252,193,174,198,252,193,200,198,252,193,206,198,252,193,16,199,252,193,126,199,252,193,50,200,252,193,118,200,252,193,120,200,252,193,10,201,252,193,12,201,252,193,14,201,252,193,86,201,252,193,88,201,252,193,90,201,252,193,152,201,252,193,154,201,252,193,156,201,252,193,158,201,252,193,252,201,252,193,254,201,252,193,108,195,252,193,110,195,252,193,176,195,252,193,234,195,252,193,62,196,252,193,134,196,252,193,136,196,252,193,138,196,252,193,196,196,252,193,198,196,252,193,12,197,252,193,94,197,252,193,96,197,252,193,156,197,252,193,158,197,252,193,208,197,252,193,12,198,252,193,14,198,252,193,76,198,252,193,144,198,252,193,146,198,252,193,172,198,252,193,180,198,252,193,188,198,252,193,204,198,252,193,102,199,252,193,122,199,252,193,124,199,252,193,146,199,252,193,214,199,252,193,238,199,252,193,36,200,252,193,172,195,252,193,174,195,252,193,196,195,252,193,198,195,252,193,200,195,252,193,202,195,252,193,204,195,252,193,206,195,252,193,208,195,252,193,210,195,252,193,212,195,252,193,214,195,252,193,216,195,252,193,218,195,252,193,220,195,252,193,222,195,252,193,224,195,252,193,226,195,252,193,228,195,252,193,230,195,252,193,232,195,252,193,34,196,252,193,36,196,252,193,38,196,252,193,40,196,252,193,42,196,252,193,44,196,252,193,46,196,252,193,48,196,252,193,50,196,252,193,52,196,252,193,54,196,252,193,178,195,252,193,180,195,252,193,182,195,252,193,184,195,252,193,186,195,252,193,188,195,252,193,190,195,252,193,250,195,252,193,252,195,252,193,254,195,252,193,2,196,252,193,4,196,252,193,6,196,252,193,8,196,252,193,10,196,252,193,12,196,252,193,14,196,252,193,16,196,252,193,18,196,252,193,68,196,252,193,70,196,252,193,72,196,252,193,74,196,252,193,76,196,252,193,78,196,252,193,80,196,252,193,82,196,252,193,154,196,252,193,156,196,252,193,158,196,252,193,208,196,252,193,210,196,252,193,248,195,252,193,66,196,252,193,152,196,252,193,206,196,252,193,24,197,252,193,174,197,252,193,78,198,252,193,90,198,252,193,108,198,252,193,110,198,252,193,152,198,252,193,182,198,252,193,238,198,252,193,2,199,252,193,4,199,252,193,32,199,252,193,78,199,252,193,80,199,252,193,52,200,252,193,126,200,252,193,198,200,252,193,200,200,252,193,202,200,252,193,204,200,252,193,18,201,252,193,20,201,252,193,22,201,252,193,28,203,252,193,136,203,252,193,160,203,252,193,232,203,252,193,16,204,252,193,20,196,252,193,22,196,252,193,24,196,252,193,26,196,252,193,28,196,252,193,30,196,252,193,32,196,252,193,84,196,252,193,86,196,252,193,88,196,252,193,90,196,252,193,160,196,252,193,162,196,252,193,164,196,252,193,166,196,252,193,222,196,252,193,224,196,252,193,226,196,252,193,228,196,252,193,230,196,252,193,114,197,252,193,116,197,252,193,228,197,252,193,230,197,252,193,232,197,252,193,36,198,252,193,54,198,252,193,100,198,252,193,158,198,252,193,160,198,252,193,162,198,252,193,234,198,252,193,56,196,252,193,58,196,252,193,60,196,252,193,92,196,252,193,94,196,252,193,96,196,252,193,98,196,252,193,100,196,252,193,102,196,252,193,104,196,252,193,106,196,252,193,108,196,252,193,110,196,252,193,112,196,252,193,114,196,252,193,116,196,252,193,118,196,252,193,120,196,252,193,122,196,252,193,124,196,252,193,126,196,252,193,128,196,252,193,130,196,252,193,132,196,252,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,206,32,73,0,193,146,196,252,193,148,196,252,193,150,196,252,193,202,196,252,193,204,196,252,193,16,197,252,193,18,197,252,193,20,197,252,193,22,197,252,193,98,197,252,193,100,197,252,193,102,197,252,193,104,197,252,193,164,197,252,193,166,197,252,193,168,197,252,193,170,197,252,193,172,197,252,193,214,197,252,193,216,197,252,193,28,198,252,193,30,198,252,193,50,198,252,193,52,198,252,193,64,198,252,193,66,198,252,193,82,198,252,193,150,198,252,193,166,198,252,193,168,198,252,193,176,198,252,193,254,198,252,193,212,196,252,193,214,196,252,193,216,196,252,193,218,196,252,193,220,196,252,193,26,197,252,193,28,197,252,193,30,197,252,193,32,197,252,193,34,197,252,193,36,197,252,193,38,197,252,193,40,197,252,193,42,197,252,193,106,197,252,193,108,197,252,193,110,197,252,193,112,197,252,193,176,197,252,193,178,197,252,193,180,197,252,193,182,197,252,193,184,197,252,193,218,197,252,193,220,197,252,193,222,197,252,193,224,197,252,193,226,197,252,193,186,197,252,193,16,198,252,193,18,198,252,193,32,198,252,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,206,64,73,0,193,118,197,252,193,120,197,252,193,122,197,252,193,124,197,252,193,126,197,252,193,128,197,252,193,130,197,252,193,132,197,252,193,134,197,252,193,136,197,252,193,138,197,252,193,92,197,252,193,140,197,252,193,142,197,252,193,144,197,252,193,146,197,252,193,148,197,252,193,150,197,252,193,152,197,252,193,188,197,252,193,190,197,252,193,192,197,252,193,194,197,252,193,196,197,252,193,198,197,252,193,200,197,252,193,202,197,252,193,204,197,252,193,206,197,252,193,234,197,252,193,236,197,252,193,238,197,252,193,240,197,252,193,242,197,252,193,244,197,252,193,246,197,252,193,248,197,252,193,250,197,252,193,252,197,252,193,254,197,252,193,2,198,252,193,4,198,252,193,6,198,252,193,8,198,252,193,20,198,252,193,22,198,252,193,154,197,252,193,10,198,252,193,24,198,252,193,26,198,252,193,38,198,252,193,40,198,252,193,42,198,252,193,44,198,252,193,56,198,252,193,68,198,252,193,58,198,252,193,60,198,252,193,46,198,252,193,48,198,252,193,62,198,252,193,70,198,252,193,72,198,252,193,74,198,252,193,80,198,252,193,92,198,252,193,94,198,252,193,102,198,252,193,104,198,252,193,106,198,252,193,118,198,252,193,120,198,252,193,122,198,252,193,124,198,252,193,132,198,252,193,134,198,252,193,136,198,252,193,138,198,252,193,140,198,252,193,142,198,252,193,34,198,252,193,84,198,252,193,86,198,252,193,88,198,252,193,112,198,252,193,114,198,252,193,116,198,252,193,126,198,252,193,128,198,252,193,130,198,252,193,154,198,252,193,156,198,252,193,214,198,252,193,224,198,252,193,226,198,252,193,228,198,252,193,230,198,252,193,232,198,252,193,40,199,252,193,44,199,252,193,54,199,252,193,64,199,252,193,66,199,252,193,68,199,252,193,70,199,252,193,72,199,252,193,82,199,252,193,84,199,252,193,86,199,252,193,88,199,252,193,90,199,252,193,92,199,252,193,164,198,252,193,170,198,252,193,178,198,252,193,194,198,252,193,184,198,252,193,186,198,252,193,190,198,252,193,192,198,252,193,196,198,252,193,198,198,252,193,202,198,252,193,208,198,252,193,210,198,252,193,212,198,252,193,218,198,252,193,220,198,252,193,216,198,252,193,222,198,252,193,242,198,252,193,244,198,252,193,246,198,252,193,248,198,252,193,250,198,252,193,252,198,252,193,6,199,252,193,8,199,252,193,10,199,252,193,12,199,252,193,14,199,252,193,18,199,252,193,20,199,252,193,26,199,252,193,236,198,252,193,240,198,252,193,56,199,252,193,94,199,252,193,136,199,252,193,138,199,252,193,156,199,252,193,158,199,252,193,160,199,252,193,162,199,252,193,164,199,252,193,192,199,252,193,194,199,252,193,244,199,252,193,246,199,252,193,248,199,252,193,16,200,252,193,58,200,252,193,78,200,252,193,150,200,252,193,152,200,252,193,228,200,252,193,230,200,252,193,40,201,252,193,100,201,252,193,102,201,252,193,188,201,252,193,190,201,252,193,192,201,252,193,194,201,252,193,196,201,252,193,28,202,252,193,22,199,252,193,24,199,252,193,36,199,252,193,52,199,252,193,76,199,252,193,104,199,252,193,106,199,252,193,108,199,252,193,128,199,252,193,130,199,252,193,148,199,252,193,38,200,252,193,122,200,252,193,124,200,252,193,196,200,252,193,16,201,252,193,160,201,252,193,162,201,252,193,164,201,252,193,4,202,252,193,6,202,252,193,8,202,252,193,94,202,252,193,96,202,252,193,98,202,252,193,162,202,252,193,216,202,252,193,26,203,252,193,82,203,252,193,84,203,252,193,96,203,252,193,98,203,252,193,28,199,252,193,30,199,252,193,34,199,252,193,38,199,252,193,42,199,252,193,46,199,252,193,48,199,252,193,50,199,252,193,58,199,252,193,60,199,252,193,62,199,252,193,74,199,252,193,96,199,252,193,98,199,252,193,100,199,252,193,112,199,252,193,114,199,252,193,116,199,252,193,118,199,252,193,120,199,252,193,140,199,252,193,142,199,252,193,144,199,252,193,166,199,252,193,168,199,252,193,170,199,252,193,172,199,252,193,174,199,252,193,176,199,252,193,178,199,252,193,180,199,252,193,182,199,252,193,110,199,252,193,132,199,252,193,134,199,252,193,150,199,252,193,152,199,252,193,154,199,252,193,188,199,252,193,190,199,252,193,216,199,252,193,218,199,252,193,220,199,252,193,240,199,252,193,242,199,252,193,12,200,252,193,14,200,252,193,54,200,252,193,56,200,252,193,64,200,252,193,66,200,252,193,74,200,252,193,76,200,252,193,82,200,252,193,104,200,252,193,106,200,252,193,128,200,252,193,130,200,252,193,132,200,252,193,134,200,252,193,136,200,252,193,138,200,252,193,140,200,252,193,142,200,252,193,184,199,252,193,186,199,252,193,196,199,252,193,198,199,252,193,200,199,252,193,202,199,252,193,204,199,252,193,206,199,252,193,208,199,252,193,210,199,252,193,212,199,252,193,222,199,252,193,224,199,252,193,226,199,252,193,228,199,252,193,230,199,252,193,232,199,252,193,234,199,252,193,236,199,252,193,250,199,252,193,252,199,252,193,254,199,252,193,2,200,252,193,4,200,252,193,6,200,252,193,8,200,252,193,10,200,252,193,18,200,252,193,20,200,252,193,22,200,252,193,24,200,252,193,40,200,252,193,26,200,252,193,28,200,252,193,30,200,252,193,32,200,252,193,34,200,252,193,42,200,252,193,44,200,252,193,46,200,252,193,48,200,252,193,60,200,252,193,62,200,252,193,68,200,252,193,70,200,252,193,72,200,252,193,80,200,252,193,84,200,252,193,86,200,252,193,88,200,252,193,90,200,252,193,92,200,252,193,94,200,252,193,96,200,252,193,98,200,252,193,108,200,252,193,110,200,252,193,112,200,252,193,114,200,252,193,116,200,252,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,193,100,200,252,193,194,200,252,193,82,201,252,193,84,201,252,193,146,201,252,193,148,201,252,193,150,201,252,193,248,201,252,193,250,201,252,193,88,202,252,193,148,202,252,193,150,202,252,193,152,202,252,193,154,202,252,193,212,202,252,193,214,202,252,193,18,203,252,193,20,203,252,193,54,203,252,193,124,203,252,193,180,203,252,193,196,203,252,193,24,205,252,193,26,205,252,193,28,205,252,193,20,206,252,193,22,206,252,193,24,206,252,193,26,206,252,193,20,207,252,193,22,207,252,193,254,207,252,193,144,200,252,193,146,200,252,193,148,200,252,193,206,200,252,193,208,200,252,193,210,200,252,193,212,200,252,193,214,200,252,193,216,200,252,193,218,200,252,193,220,200,252,193,222,200,252,193,224,200,252,193,226,200,252,193,24,201,252,193,26,201,252,193,28,201,252,193,30,201,252,193,32,201,252,193,34,201,252,193,36,201,252,193,92,201,252,193,94,201,252,193,96,201,252,193,98,201,252,193,166,201,252,193,168,201,252,193,170,201,252,193,172,201,252,193,174,201,252,193,176,201,252,193,178,201,252,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,206,96,73,0,193,232,200,252,193,234,200,252,193,236,200,252,193,238,200,252,193,240,200,252,193,242,200,252,193,244,200,252,193,246,200,252,193,248,200,252,193,250,200,252,193,252,200,252,193,254,200,252,193,2,201,252,193,4,201,252,193,6,201,252,193,8,201,252,193,38,201,252,193,180,201,252,193,182,201,252,193,184,201,252,193,10,202,252,193,12,202,252,193,14,202,252,193,16,202,252,193,18,202,252,193,20,202,252,193,22,202,252,193,24,202,252,193,100,202,252,193,102,202,252,193,218,202,252,193,164,202,252,193,166,202,252,193,168,202,252,193,170,202,252,193,172,202,252,193,220,202,252,193,222,202,252,193,224,202,252,193,226,202,252,193,30,203,252,193,56,203,252,193,58,203,252,193,60,203,252,193,62,203,252,193,100,203,252,193,102,203,252,193,128,203,252,193,42,201,252,193,44,201,252,193,46,201,252,193,104,201,252,193,48,201,252,193,50,201,252,193,52,201,252,193,54,201,252,193,56,201,252,193,58,201,252,193,60,201,252,193,62,201,252,193,64,201,252,193,66,201,252,193,68,201,252,193,70,201,252,193,72,201,252,193,74,201,252,193,76,201,252,193,78,201,252,193,80,201,252,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,206,128,73,0,193,198,201,252,193,200,201,252,193,202,201,252,193,204,201,252,193,206,201,252,193,208,201,252,193,210,201,252,193,212,201,252,193,214,201,252,193,216,201,252,193,218,201,252,193,220,201,252,193,222,201,252,193,224,201,252,193,226,201,252,193,144,201,252,193,228,201,252,193,230,201,252,193,232,201,252,193,234,201,252,193,236,201,252,193,238,201,252,193,240,201,252,193,242,201,252,193,244,201,252,193,246,201,252,193,34,202,252,193,36,202,252,193,38,202,252,193,40,202,252,193,42,202,252,193,44,202,252,193,46,202,252,193,48,202,252,193,50,202,252,193,52,202,252,193,54,202,252,193,56,202,252,193,58,202,252,193,60,202,252,193,62,202,252,193,64,202,252,193,66,202,252,193,68,202,252,193,70,202,252,193,72,202,252,193,74,202,252,193,76,202,252,193,78,202,252,193,80,202,252,193,82,202,252,193,84,202,252,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,193,2,202,252,193,90,202,252,193,92,202,252,193,156,202,252,193,158,202,252,193,160,202,252,193,22,203,252,193,24,203,252,193,80,203,252,193,126,203,252,193,140,203,252,193,182,203,252,193,204,203,252,193,212,203,252,193,214,203,252,193,84,204,252,193,30,205,252,193,32,205,252,193,34,205,252,193,36,205,252,193,28,206,252,193,30,206,252,193,32,206,252,193,24,207,252,193,26,207,252,193,28,207,252,193,30,207,252,193,6,208,252,193,8,208,252,193,10,208,252,193,12,208,252,193,14,208,252,193,30,202,252,193,104,202,252,193,106,202,252,193,108,202,252,193,174,202,252,193,176,202,252,193,178,202,252,193,180,202,252,193,230,202,252,193,64,203,252,193,104,203,252,193,174,203,252,193,244,203,252,193,246,203,252,193,58,204,252,193,60,204,252,193,166,204,252,193,168,204,252,193,170,204,252,193,172,204,252,193,174,204,252,193,176,204,252,193,178,204,252,193,180,204,252,193,182,204,252,193,184,204,252,193,186,204,252,193,188,204,252,193,190,204,252,193,192,204,252,193,152,205,252,193,154,205,252,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,206,160,73,0,193,86,202,252,193,132,202,252,193,134,202,252,193,136,202,252,193,138,202,252,193,140,202,252,193,142,202,252,193,144,202,252,193,146,202,252,193,182,202,252,193,184,202,252,193,186,202,252,193,188,202,252,193,190,202,252,193,192,202,252,193,194,202,252,193,196,202,252,193,198,202,252,193,200,202,252,193,202,202,252,193,204,202,252,193,206,202,252,193,208,202,252,193,210,202,252,193,232,202,252,193,234,202,252,193,236,202,252,193,238,202,252,193,240,202,252,193,242,202,252,193,244,202,252,193,246,202,252,193,248,202,252,193,250,202,252,193,252,202,252,193,254,202,252,193,2,203,252,193,4,203,252,193,6,203,252,193,8,203,252,193,10,203,252,193,12,203,252,193,14,203,252,193,16,203,252,193,32,203,252,193,34,203,252,193,36,203,252,193,38,203,252,193,40,203,252,193,42,203,252,193,44,203,252,193,46,203,252,193,48,203,252,193,50,203,252,193,52,203,252,193,66,203,252,193,68,203,252,193,70,203,252,193,72,203,252,193,74,203,252,193,76,203,252,193,78,203,252,193,86,203,252,193,88,203,252,193,90,203,252,193,92,203,252,193,94,203,252,193,106,203,252,193,108,203,252,193,110,203,252,193,112,203,252,193,114,203,252,193,116,203,252,193,120,203,252,193,122,203,252,193,132,203,252,193,138,203,252,193,144,203,252,193,154,203,252,193,156,203,252,193,158,203,252,193,162,203,252,193,164,203,252,193,166,203,252,193,176,203,252,193,178,203,252,193,190,203,252,193,192,203,252,193,194,203,252,193,118,203,252,193,134,203,252,193,142,203,252,193,146,203,252,193,184,203,252,193,206,203,252,193,208,203,252,193,228,203,252,193,86,204,252,193,88,204,252,193,90,204,252,193,38,205,252,193,34,206,252,193,36,206,252,193,38,206,252,193,40,206,252,193,32,207,252,193,34,207,252,193,36,207,252,193,38,207,252,193,20,208,252,193,22,208,252,193,24,208,252,193,26,208,252,193,28,208,252,193,30,208,252,193,80,209,252,193,82,209,252,193,84,209,252,193,86,209,252,193,88,209,252,193,90,209,252,193,130,203,252,193,148,203,252,193,150,203,252,193,152,203,252,193,168,203,252,193,170,203,252,193,172,203,252,193,186,203,252,193,188,203,252,193,226,203,252,193,230,203,252,193,234,203,252,193,236,203,252,193,238,203,252,193,240,203,252,193,242,203,252,193,24,204,252,193,26,204,252,193,28,204,252,193,30,204,252,193,32,204,252,193,34,204,252,193,36,204,252,193,38,204,252,193,40,204,252,193,42,204,252,193,44,204,252,193,46,204,252,193,48,204,252,193,50,204,252,193,52,204,252,193,54,204,252,193,198,203,252,193,200,203,252,193,202,203,252,193,210,203,252,193,216,203,252,193,218,203,252,193,220,203,252,193,222,203,252,193,224,203,252,193,248,203,252,193,250,203,252,193,252,203,252,193,254,203,252,193,2,204,252,193,4,204,252,193,6,204,252,193,8,204,252,193,10,204,252,193,12,204,252,193,14,204,252,193,62,204,252,193,64,204,252,193,66,204,252,193,68,204,252,193,70,204,252,193,72,204,252,193,74,204,252,193,76,204,252,193,78,204,252,193,80,204,252,193,82,204,252,193,194,204,252,193,18,204,252,193,20,204,252,193,22,204,252,193,92,204,252,193,94,204,252,193,96,204,252,193,98,204,252,193,40,205,252,193,42,205,252,193,44,205,252,193,46,205,252,193,48,205,252,193,50,205,252,193,52,205,252,193,54,205,252,193,56,205,252,193,58,205,252,193,60,205,252,193,42,206,252,193,44,206,252,193,46,206,252,193,48,206,252,193,50,206,252,193,52,206,252,193,54,206,252,193,56,206,252,193,58,206,252,193,60,206,252,193,62,206,252,193,40,207,252,193,42,207,252,193,44,207,252,193,56,204,252,193,100,204,252,193,102,204,252,193,104,204,252,193,106,204,252,193,108,204,252,193,110,204,252,193,112,204,252,193,114,204,252,193,116,204,252,193,118,204,252,193,120,204,252,193,122,204,252,193,124,204,252,193,126,204,252,193,128,204,252,193,130,204,252,193,132,204,252,193,134,204,252,193,136,204,252,193,138,204,252,193,140,204,252,193,142,204,252,193,144,204,252,193,146,204,252,193,148,204,252,193,150,204,252,193,152,204,252,193,154,204,252,193,156,204,252,193,158,204,252,193,160,204,252,193,162,204,252,193,164,204,252,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,192,73,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,224,73,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,206,32,74,0,193,150,205,252,193,120,206,252,193,122,206,252,193,124,206,252,193,126,206,252,193,128,206,252,193,130,206,252,193,132,206,252,193,134,206,252,193,136,206,252,193,138,206,252,193,140,206,252,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,193,156,205,252,193,158,205,252,193,160,205,252,193,162,205,252,193,164,205,252,193,166,205,252,193,142,206,252,193,144,206,252,193,146,206,252,193,148,206,252,193,150,206,252,193,152,206,252,193,154,206,252,193,156,206,252,193,158,206,252,193,128,207,252,193,130,207,252,193,132,207,252,193,134,207,252,193,136,207,252,193,138,207,252,193,140,207,252,193,142,207,252,193,144,207,252,193,146,207,252,193,148,207,252,193,150,207,252,193,152,207,252,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,206,0,74,0,193,164,206,252,193,166,206,252,193,168,206,252,193,170,206,252,193,172,206,252,193,174,206,252,193,176,206,252,193,178,206,252,193,180,206,252,193,182,206,252,193,184,206,252,193,186,206,252,193,188,206,252,193,190,206,252,193,192,206,252,193,194,206,252,193,196,206,252,193,198,206,252,193,200,206,252,193,202,206,252,193,204,206,252,193,206,206,252,193,208,206,252,193,210,206,252,193,212,206,252,193,214,206,252,193,216,206,252,193,218,206,252,193,220,206,252,193,222,206,252,193,224,206,252,193,226,206,252,193,228,206,252,193,230,206,252,193,232,206,252,193,234,206,252,193,236,206,252,193,238,206,252,193,240,206,252,193,242,206,252,193,244,206,252,193,246,206,252,193,248,206,252,193,250,206,252,193,252,206,252,193,254,206,252,193,2,207,252,193,4,207,252,193,6,207,252,193,8,207,252,193,10,207,252,193,12,207,252,193,14,207,252,193,16,207,252,193,18,207,252,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,193,46,207,252,193,48,207,252,193,50,207,252,193,52,207,252,193,54,207,252,193,32,208,252,193,34,208,252,193,36,208,252,193,38,208,252,193,40,208,252,193,42,208,252,193,94,209,252,193,96,209,252,193,98,209,252,193,100,209,252,193,102,209,252,193,104,209,252,193,106,209,252,193,108,209,252,193,110,209,252,193,112,209,252,193,120,210,252,193,122,210,252,193,124,210,252,193,126,210,252,193,128,210,252,193,130,210,252,193,132,210,252,193,134,210,252,193,136,210,252,193,138,210,252,193,140,210,252,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,64,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,96,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,206,192,74,0,193,2,208,252,193,4,208,252,193,60,209,252,193,62,209,252,193,64,209,252,193,66,209,252,193,96,210,252,193,98,210,252,193,100,210,252,193,80,211,252,193,82,211,252,193,84,211,252,193,86,211,252,193,88,211,252,193,90,211,252,193,32,212,252,193,34,212,252,193,36,212,252,193,38,212,252,193,40,212,252,193,42,212,252,193,12,213,252,193,14,213,252,193,16,213,252,193,18,213,252,193,204,213,252,193,206,213,252,193,208,213,252,193,50,214,252,193,52,214,252,193,142,214,252,193,144,214,252,193,16,208,252,193,18,208,252,193,68,209,252,193,70,209,252,193,72,209,252,193,74,209,252,193,76,209,252,193,78,209,252,193,102,210,252,193,104,210,252,193,106,210,252,193,108,210,252,193,94,211,252,193,96,211,252,193,98,211,252,193,44,212,252,193,46,212,252,193,48,212,252,193,50,212,252,193,52,212,252,193,20,213,252,193,22,213,252,193,24,213,252,193,26,213,252,193,28,213,252,193,210,213,252,193,212,213,252,193,214,213,252,193,54,214,252,193,56,214,252,193,214,214,252,193,252,214,252,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,128,74,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,206,160,74,0,193,190,209,252,193,192,209,252,193,194,209,252,193,196,209,252,193,198,209,252,193,200,209,252,193,202,209,252,193,204,209,252,193,206,209,252,193,208,209,252,193,210,209,252,193,212,209,252,193,214,209,252,193,216,209,252,193,218,209,252,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,224,74,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,193,92,209,252,193,110,210,252,193,112,210,252,193,114,210,252,193,116,210,252,193,118,210,252,193,100,211,252,193,102,211,252,193,104,211,252,193,106,211,252,193,108,211,252,193,110,211,252,193,112,211,252,193,114,211,252,193,116,211,252,193,118,211,252,193,120,211,252,193,54,212,252,193,56,212,252,193,58,212,252,193,60,212,252,193,62,212,252,193,64,212,252,193,66,212,252,193,68,212,252,193,70,212,252,193,30,213,252,193,32,213,252,193,34,213,252,193,36,213,252,193,38,213,252,193,40,213,252,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,206,0,75,0,193,144,210,252,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,32,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,193,92,210,252,193,94,210,252,193,74,211,252,193,76,211,252,193,78,211,252,193,200,211,252,193,202,211,252,193,204,211,252,193,206,211,252,193,208,211,252,193,210,211,252,193,212,211,252,193,214,211,252,193,142,210,252,193,122,211,252,193,124,211,252,193,126,211,252,193,128,211,252,193,130,211,252,193,132,211,252,193,134,211,252,193,136,211,252,193,138,211,252,193,140,211,252,193,142,211,252,193,72,212,252,193,74,212,252,193,76,212,252,193,78,212,252,193,80,212,252,193,82,212,252,193,84,212,252,193,86,212,252,193,42,213,252,193,44,213,252,193,46,213,252,193,48,213,252,193,50,213,252,193,52,213,252,193,54,213,252,193,56,213,252,193,58,213,252,193,60,213,252,193,220,213,252,193,222,213,252,193,146,210,252,193,148,210,252,193,150,210,252,193,152,210,252,193,154,210,252,193,156,210,252,193,158,210,252,193,160,210,252,193,162,210,252,193,164,210,252,193,166,210,252,193,168,210,252,193,170,210,252,193,172,210,252,193,174,210,252,193,176,210,252,193,178,210,252,193,180,210,252,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,128,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,206,64,75,0,193,180,211,252,193,182,211,252,193,184,211,252,193,186,211,252,193,188,211,252,193,190,211,252,193,192,211,252,193,194,211,252,193,196,211,252,193,198,211,252,193,126,212,252,193,128,212,252,193,130,212,252,193,132,212,252,193,134,212,252,193,136,212,252,193,138,212,252,193,140,212,252,193,142,212,252,193,106,213,252,193,108,213,252,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,206,96,75,0,193,216,211,252,193,218,211,252,193,220,211,252,193,222,211,252,193,224,211,252,193,226,211,252,193,228,211,252,193,230,211,252,193,232,211,252,193,234,211,252,193,236,211,252,193,238,211,252,193,240,211,252,193,242,211,252,193,244,211,252,193,246,211,252,193,248,211,252,193,250,211,252,193,252,211,252,193,254,211,252,193,2,212,252,193,4,212,252,193,6,212,252,193,8,212,252,193,10,212,252,193,12,212,252,193,14,212,252,193,16,212,252,193,18,212,252,193,20,212,252,193,22,212,252,193,24,212,252,193,26,212,252,193,28,212,252,193,30,212,252,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,206,160,75,0,193,114,213,252,193,116,213,252,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,206,224,75,0,193,10,213,252,193,202,213,252,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,206,192,75,0,193,226,213,252,193,228,213,252,193,230,213,252,193,232,213,252,193,234,213,252,193,236,213,252,193,238,213,252,193,74,214,252,193,76,214,252,193,160,214,252,193,78,214,252,193,80,214,252,193,162,214,252,193,164,214,252,193,166,214,252,193,168,214,252,193,224,214,252,193,254,214,252,193,2,215,252,193,110,213,252,193,112,213,252,193,240,213,252,193,242,213,252,193,244,213,252,193,246,213,252,193,82,214,252,193,84,214,252,193,86,214,252,193,170,214,252,193,172,214,252,193,228,214,252,193,230,214,252,193,232,214,252,193,234,214,252,193,4,215,252,193,124,215,252,193,200,215,252,193,164,216,252,193,208,216,252,193,54,217,252,193,78,217,252,193,148,217,252,193,178,217,252,193,212,217,252,193,126,218,252,193,128,218,252,193,150,218,252,193,248,218,252,193,102,219,252,193,108,219,252,193,114,219,252,193,216,213,252,193,218,213,252,193,58,214,252,193,60,214,252,193,62,214,252,193,64,214,252,193,66,214,252,193,146,214,252,193,148,214,252,193,150,214,252,193,216,214,252,193,68,215,252,193,94,215,252,193,102,215,252,193,132,215,252,193,134,215,252,193,168,215,252,193,170,215,252,193,172,215,252,193,188,215,252,193,16,216,252,193,18,216,252,193,30,216,252,193,32,216,252,193,34,216,252,193,54,216,252,193,60,216,252,193,62,216,252,193,72,216,252,193,136,216,252,193,138,216,252,193,146,216,252,193,224,213,252,193,68,214,252,193,70,214,252,193,72,214,252,193,152,214,252,193,154,214,252,193,156,214,252,193,158,214,252,193,218,214,252,193,220,214,252,193,222,214,252,193,22,215,252,193,74,215,252,193,86,215,252,193,106,215,252,193,122,215,252,193,136,215,252,193,152,215,252,193,174,215,252,193,176,215,252,193,242,215,252,193,36,216,252,193,56,216,252,193,124,216,252,193,172,217,252,193,174,217,252,193,206,217,252,193,18,218,252,193,62,218,252,193,168,218,252,193,170,218,252,193,172,218,252,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,0,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,206,32,76,0,193,174,214,252,193,176,214,252,193,178,214,252,193,180,214,252,193,182,214,252,193,184,214,252,193,186,214,252,193,188,214,252,193,190,214,252,193,192,214,252,193,194,214,252,193,196,214,252,193,198,214,252,193,200,214,252,193,202,214,252,193,204,214,252,193,206,214,252,193,208,214,252,193,210,214,252,193,236,214,252,193,238,214,252,193,240,214,252,193,242,214,252,193,244,214,252,193,246,214,252,193,248,214,252,193,6,215,252,193,8,215,252,193,10,215,252,193,12,215,252,193,14,215,252,193,16,215,252,193,18,215,252,193,32,215,252,193,34,215,252,193,36,215,252,193,38,215,252,193,40,215,252,193,42,215,252,193,44,215,252,193,46,215,252,193,48,215,252,193,50,215,252,193,52,215,252,193,56,215,252,193,58,215,252,193,60,215,252,193,62,215,252,193,64,215,252,193,70,215,252,193,72,215,252,193,76,215,252,193,78,215,252,193,80,215,252,193,82,215,252,193,84,215,252,193,96,215,252,193,92,215,252,193,104,215,252,193,24,215,252,193,26,215,252,193,28,215,252,193,90,215,252,193,98,215,252,193,100,215,252,193,138,215,252,193,158,215,252,193,190,215,252,193,192,215,252,193,222,215,252,193,226,215,252,193,244,215,252,193,246,215,252,193,38,216,252,193,40,216,252,193,42,216,252,193,74,216,252,193,90,216,252,193,152,216,252,193,162,216,252,193,190,216,252,193,192,216,252,193,194,216,252,193,196,216,252,193,206,216,252,193,214,216,252,193,234,216,252,193,10,217,252,193,20,217,252,193,22,217,252,193,32,217,252,193,54,215,252,193,66,215,252,193,118,215,252,193,120,215,252,193,130,215,252,193,150,215,252,193,156,215,252,193,182,215,252,193,184,215,252,193,198,215,252,193,212,215,252,193,216,215,252,193,28,216,252,193,70,216,252,193,106,216,252,193,122,216,252,193,134,216,252,193,160,216,252,193,176,216,252,193,202,216,252,193,246,216,252,193,248,216,252,193,4,217,252,193,8,217,252,193,46,217,252,193,48,217,252,193,140,217,252,193,200,217,252,193,230,217,252,193,250,217,252,193,16,218,252,193,34,218,252,193,108,215,252,193,110,215,252,193,112,215,252,193,114,215,252,193,126,215,252,193,128,215,252,193,140,215,252,193,142,215,252,193,144,215,252,193,146,215,252,193,186,215,252,193,160,215,252,193,162,215,252,193,178,215,252,193,164,215,252,193,180,215,252,193,194,215,252,193,196,215,252,193,202,215,252,193,204,215,252,193,208,215,252,193,210,215,252,193,214,215,252,193,218,215,252,193,220,215,252,193,224,215,252,193,228,215,252,193,230,215,252,193,232,215,252,193,234,215,252,193,236,215,252,193,238,215,252,193,240,215,252,193,248,215,252,193,250,215,252,193,252,215,252,193,254,215,252,193,2,216,252,193,4,216,252,193,6,216,252,193,8,216,252,193,10,216,252,193,12,216,252,193,14,216,252,193,20,216,252,193,22,216,252,193,24,216,252,193,26,216,252,193,44,216,252,193,46,216,252,193,48,216,252,193,50,216,252,193,58,216,252,193,64,216,252,193,66,216,252,193,68,216,252,193,76,216,252,193,78,216,252,193,80,216,252,193,82,216,252,193,84,216,252,193,86,216,252,193,92,216,252,193,94,216,252,193,96,216,252,193,98,216,252,193,100,216,252,193,102,216,252,193,104,216,252,193,108,216,252,193,112,216,252,193,114,216,252,193,116,216,252,193,118,216,252,193,120,216,252,193,126,216,252,193,128,216,252,193,130,216,252,193,132,216,252,193,140,216,252,193,142,216,252,193,144,216,252,193,148,216,252,193,154,216,252,193,156,216,252,193,158,216,252,193,166,216,252,193,168,216,252,193,170,216,252,193,172,216,252,193,174,216,252,193,182,216,252,193,184,216,252,193,186,216,252,193,188,216,252,193,198,216,252,193,178,216,252,193,180,216,252,193,204,216,252,193,226,216,252,193,6,217,252,193,30,217,252,193,72,217,252,193,74,217,252,193,112,217,252,193,114,217,252,193,116,217,252,193,118,217,252,193,120,217,252,193,142,217,252,193,144,217,252,193,170,217,252,193,202,217,252,193,204,217,252,193,82,218,252,193,94,218,252,193,120,218,252,193,122,218,252,193,164,218,252,193,166,218,252,193,204,218,252,193,240,218,252,193,16,219,252,193,18,219,252,193,20,219,252,193,22,219,252,193,24,219,252,193,40,219,252,193,62,217,252,193,64,217,252,193,66,217,252,193,68,217,252,193,70,217,252,193,80,217,252,193,82,217,252,193,44,217,252,193,84,217,252,193,86,217,252,193,88,217,252,193,90,217,252,193,92,217,252,193,98,217,252,193,100,217,252,193,102,217,252,193,104,217,252,193,106,217,252,193,108,217,252,193,124,217,252,193,126,217,252,193,128,217,252,193,130,217,252,193,132,217,252,193,134,217,252,193,136,217,252,193,138,217,252,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,206,64,76,0,193,50,217,252,193,52,217,252,193,76,217,252,193,94,217,252,193,96,217,252,193,122,217,252,193,208,217,252,193,146,217,252,193,176,217,252,193,210,217,252,193,252,217,252,193,20,218,252,193,106,218,252,193,110,218,252,193,112,218,252,193,114,218,252,193,124,218,252,193,148,218,252,193,174,218,252,193,216,218,252,193,218,218,252,193,220,218,252,193,244,218,252,193,246,218,252,193,28,219,252,193,52,219,252,193,64,219,252,193,90,219,252,193,96,219,252,193,98,219,252,193,100,219,252,193,128,219,252,193,36,218,252,193,68,218,252,193,74,218,252,193,88,218,252,193,96,218,252,193,160,218,252,193,162,218,252,193,202,218,252,193,238,218,252,193,8,219,252,193,10,219,252,193,12,219,252,193,14,219,252,193,48,219,252,193,60,219,252,193,70,219,252,193,72,219,252,193,150,219,252,193,182,219,252,193,104,220,252,193,162,220,252,193,242,220,252,193,244,220,252,193,70,221,252,193,128,221,252,193,130,221,252,193,132,221,252,193,182,221,252,193,58,222,252,193,176,222,252,193,200,222,252,193,4,223,252,193,84,218,252,193,90,218,252,193,92,218,252,193,98,218,252,193,100,218,252,193,102,218,252,193,108,218,252,193,118,218,252,193,130,218,252,193,132,218,252,193,134,218,252,193,136,218,252,193,138,218,252,193,140,218,252,193,142,218,252,193,144,218,252,193,146,218,252,193,152,218,252,193,154,218,252,193,156,218,252,193,158,218,252,193,176,218,252,193,178,218,252,193,180,218,252,193,182,218,252,193,184,218,252,193,186,218,252,193,188,218,252,193,190,218,252,193,194,218,252,193,196,218,252,193,222,218,252,193,192,218,252,193,206,218,252,193,208,218,252,193,210,218,252,193,212,218,252,193,214,218,252,193,242,218,252,193,26,219,252,193,50,219,252,193,62,219,252,193,94,219,252,193,242,219,252,193,58,220,252,193,174,220,252,193,250,220,252,193,72,221,252,193,74,221,252,193,76,221,252,193,134,221,252,193,246,221,252,193,114,222,252,193,146,222,252,193,170,222,252,193,172,222,252,193,184,222,252,193,202,222,252,193,234,222,252,193,240,222,252,193,72,223,252,193,74,223,252,193,76,223,252,193,78,223,252,193,224,218,252,193,226,218,252,193,228,218,252,193,230,218,252,193,232,218,252,193,234,218,252,193,236,218,252,193,250,218,252,193,252,218,252,193,254,218,252,193,2,219,252,193,4,219,252,193,6,219,252,193,30,219,252,193,32,219,252,193,34,219,252,193,36,219,252,193,42,219,252,193,44,219,252,193,46,219,252,193,54,219,252,193,56,219,252,193,58,219,252,193,66,219,252,193,74,219,252,193,76,219,252,193,78,219,252,193,82,219,252,193,84,219,252,193,88,219,252,193,104,219,252,193,106,219,252,193,86,219,252,193,92,219,252,193,124,219,252,193,238,219,252,193,240,219,252,193,46,220,252,193,48,220,252,193,50,220,252,193,52,220,252,193,54,220,252,193,56,220,252,193,106,220,252,193,108,220,252,193,164,220,252,193,166,220,252,193,168,220,252,193,170,220,252,193,172,220,252,193,246,220,252,193,248,220,252,193,184,221,252,193,60,222,252,193,82,222,252,193,84,222,252,193,124,222,252,193,126,222,252,193,134,222,252,193,142,222,252,193,144,222,252,193,216,222,252,193,250,222,252,193,152,224,252,193,110,219,252,193,112,219,252,193,118,219,252,193,116,219,252,193,120,219,252,193,122,219,252,193,126,219,252,193,132,219,252,193,138,219,252,193,140,219,252,193,142,219,252,193,144,219,252,193,146,219,252,193,148,219,252,193,166,219,252,193,168,219,252,193,170,219,252,193,172,219,252,193,174,219,252,193,176,219,252,193,178,219,252,193,214,219,252,193,216,219,252,193,218,219,252,193,220,219,252,193,222,219,252,193,224,219,252,193,226,219,252,193,228,219,252,193,230,219,252,193,232,219,252,193,234,219,252,193,134,219,252,193,152,219,252,193,154,219,252,193,156,219,252,193,158,219,252,193,184,219,252,193,186,219,252,193,188,219,252,193,190,219,252,193,192,219,252,193,194,219,252,193,196,219,252,193,198,219,252,193,200,219,252,193,202,219,252,193,204,219,252,193,206,219,252,193,208,219,252,193,244,219,252,193,246,219,252,193,248,219,252,193,250,219,252,193,252,219,252,193,254,219,252,193,2,220,252,193,4,220,252,193,6,220,252,193,8,220,252,193,60,220,252,193,62,220,252,193,64,220,252,193,66,220,252,193,136,219,252,193,160,219,252,193,162,219,252,193,164,219,252,193,210,219,252,193,212,219,252,193,10,220,252,193,12,220,252,193,14,220,252,193,16,220,252,193,68,220,252,193,70,220,252,193,72,220,252,193,74,220,252,193,76,220,252,193,130,220,252,193,132,220,252,193,184,220,252,193,186,220,252,193,188,220,252,193,190,220,252,193,192,220,252,193,194,220,252,193,196,220,252,193,198,220,252,193,12,221,252,193,14,221,252,193,16,221,252,193,88,221,252,193,90,221,252,193,92,221,252,193,144,221,252,193,236,219,252,193,18,220,252,193,20,220,252,193,22,220,252,193,24,220,252,193,26,220,252,193,28,220,252,193,30,220,252,193,32,220,252,193,34,220,252,193,36,220,252,193,38,220,252,193,40,220,252,193,42,220,252,193,44,220,252,193,78,220,252,193,80,220,252,193,82,220,252,193,84,220,252,193,134,220,252,193,86,220,252,193,88,220,252,193,90,220,252,193,92,220,252,193,94,220,252,193,96,220,252,193,98,220,252,193,100,220,252,193,102,220,252,193,136,220,252,193,138,220,252,193,140,220,252,193,110,220,252,193,112,220,252,193,114,220,252,193,116,220,252,193,118,220,252,193,120,220,252,193,122,220,252,193,124,220,252,193,126,220,252,193,128,220,252,193,176,220,252,193,178,220,252,193,180,220,252,193,182,220,252,193,252,220,252,193,254,220,252,193,2,221,252,193,4,221,252,193,6,221,252,193,8,221,252,193,10,221,252,193,78,221,252,193,80,221,252,193,82,221,252,193,84,221,252,193,86,221,252,193,136,221,252,193,138,221,252,193,140,221,252,193,142,221,252,193,186,221,252,193,188,221,252,193,142,220,252,193,144,220,252,193,146,220,252,193,148,220,252,193,150,220,252,193,152,220,252,193,154,220,252,193,156,220,252,193,158,220,252,193,160,220,252,193,200,220,252,193,202,220,252,193,204,220,252,193,206,220,252,193,208,220,252,193,210,220,252,193,212,220,252,193,214,220,252,193,216,220,252,193,218,220,252,193,220,220,252,193,222,220,252,193,224,220,252,193,226,220,252,193,228,220,252,193,230,220,252,193,232,220,252,193,234,220,252,193,236,220,252,193,18,221,252,193,20,221,252,193,22,221,252,193,20,101,253,193,22,101,253,193,194,101,253,193,196,101,253,193,198,101,253,193,200,101,253,193,202,101,253,193,204,101,253,193,206,101,253,193,208,101,253,193,210,101,253,193,212,101,253,193,214,101,253,193,216,101,253,193,218,101,253,193,220,101,253,193,222,101,253,193,224,101,253,193,226,101,253,193,228,101,253,193,230,101,253,193,232,101,253,193,234,101,253,193,236,101,253,193,238,101,253,193,240,101,253,193,242,101,253,193,244,101,253,193,246,101,253,193,248,101,253,193,238,220,252,193,250,101,253,193,24,221,252,193,26,221,252,193,28,221,252,193,30,221,252,193,32,221,252,193,34,221,252,193,36,221,252,193,38,221,252,193,40,221,252,193,42,221,252,193,44,221,252,193,46,221,252,193,48,221,252,193,50,221,252,193,52,221,252,193,54,221,252,193,56,221,252,193,58,221,252,193,60,221,252,193,62,221,252,193,94,221,252,193,96,221,252,193,98,221,252,193,100,221,252,193,102,221,252,193,104,221,252,193,106,221,252,193,108,221,252,193,110,221,252,193,112,221,252,193,114,221,252,193,64,221,252,193,116,221,252,193,118,221,252,193,120,221,252,193,122,221,252,193,124,221,252,193,126,221,252,193,158,221,252,193,160,221,252,193,162,221,252,193,164,221,252,193,166,221,252,193,168,221,252,193,170,221,252,193,172,221,252,193,174,221,252,193,176,221,252,193,178,221,252,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,206,96,76,0,193,146,221,252,193,148,221,252,193,150,221,252,193,152,221,252,193,154,221,252,193,156,221,252,193,192,221,252,193,194,221,252,193,196,221,252,193,30,222,252,193,148,222,252,193,156,222,252,193,218,222,252,193,220,222,252,193,236,222,252,193,238,222,252,193,252,222,252,193,10,223,252,193,38,223,252,193,40,223,252,193,42,223,252,193,122,223,252,193,124,223,252,193,126,223,252,193,128,223,252,193,130,223,252,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,193,190,221,252,193,248,221,252,193,250,221,252,193,252,221,252,193,254,221,252,193,2,222,252,193,22,222,252,193,24,222,252,193,26,222,252,193,28,222,252,193,44,222,252,193,62,222,252,193,86,222,252,193,92,222,252,193,106,222,252,193,108,222,252,193,110,222,252,193,130,222,252,193,140,222,252,193,152,222,252,193,154,222,252,193,186,222,252,193,242,222,252,193,254,222,252,193,6,223,252,193,8,223,252,193,12,223,252,193,22,223,252,193,24,223,252,193,26,223,252,193,28,223,252,193,30,223,252,193,42,222,252,193,76,222,252,193,78,222,252,193,80,222,252,193,232,222,252,193,66,223,252,193,68,223,252,193,168,223,252,193,170,223,252,193,136,224,252,193,138,224,252,193,140,224,252,193,142,224,252,193,144,224,252,193,192,225,252,193,194,225,252,193,196,225,252,193,198,225,252,193,200,225,252,193,202,225,252,193,204,225,252,193,206,225,252,193,86,227,252,193,88,227,252,193,90,227,252,193,92,227,252,193,94,227,252,193,96,227,252,193,98,227,252,193,100,227,252,193,102,227,252,193,100,229,252,193,70,222,252,193,72,222,252,193,74,222,252,193,88,222,252,193,90,222,252,193,94,222,252,193,96,222,252,193,98,222,252,193,102,222,252,193,100,222,252,193,104,222,252,193,112,222,252,193,116,222,252,193,118,222,252,193,120,222,252,193,122,222,252,193,128,222,252,193,132,222,252,193,136,222,252,193,150,222,252,193,158,222,252,193,160,222,252,193,162,222,252,193,164,222,252,193,166,222,252,193,168,222,252,193,174,222,252,193,178,222,252,193,180,222,252,193,182,222,252,193,188,222,252,193,190,222,252,193,192,222,252,193,194,222,252,193,196,222,252,193,198,222,252,193,204,222,252,193,206,222,252,193,208,222,252,193,210,222,252,193,212,222,252,193,214,222,252,193,222,222,252,193,224,222,252,193,226,222,252,193,228,222,252,193,230,222,252,193,244,222,252,193,246,222,252,193,248,222,252,193,2,223,252,193,16,223,252,193,18,223,252,193,20,223,252,193,44,223,252,193,46,223,252,193,48,223,252,193,50,223,252,193,52,223,252,193,54,223,252,193,56,223,252,193,58,223,252,193,60,223,252,193,62,223,252,193,32,223,252,193,34,223,252,193,36,223,252,193,80,223,252,193,82,223,252,193,84,223,252,193,86,223,252,193,88,223,252,193,90,223,252,193,92,223,252,193,94,223,252,193,96,223,252,193,98,223,252,193,100,223,252,193,102,223,252,193,104,223,252,193,106,223,252,193,108,223,252,193,110,223,252,193,112,223,252,193,114,223,252,193,116,223,252,193,118,223,252,193,120,223,252,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,193,64,223,252,193,132,223,252,193,134,223,252,193,136,223,252,193,138,223,252,193,140,223,252,193,142,223,252,193,144,223,252,193,146,223,252,193,148,223,252,193,150,223,252,193,152,223,252,193,154,223,252,193,156,223,252,193,158,223,252,193,160,223,252,193,162,223,252,193,164,223,252,193,166,223,252,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,193,70,223,252,193,172,223,252,193,174,223,252,193,146,224,252,193,148,224,252,193,150,224,252,193,212,225,252,193,214,225,252,193,106,227,252,193,108,227,252,193,110,227,252,193,112,227,252,193,114,227,252,193,116,227,252,193,118,227,252,193,140,229,252,193,142,229,252,193,144,229,252,193,146,229,252,193,148,229,252,193,150,229,252,193,152,229,252,193,154,229,252,193,156,229,252,193,158,229,252,193,160,229,252,193,162,229,252,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,193,176,223,252,193,178,223,252,193,180,223,252,193,162,224,252,193,164,224,252,193,166,224,252,193,168,224,252,193,170,224,252,193,172,224,252,193,174,224,252,193,176,224,252,193,222,225,252,193,224,225,252,193,226,225,252,193,228,225,252,193,230,225,252,193,232,225,252,193,234,225,252,193,156,227,252,193,158,227,252,193,160,227,252,193,162,227,252,193,164,227,252,193,166,227,252,193,168,227,252,193,170,227,252,193,172,227,252,193,174,227,252,193,176,227,252,193,178,227,252,193,210,229,252,193,212,229,252,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,206,128,76,0,193,178,224,252,193,6,224,252,193,8,224,252,193,10,224,252,193,12,224,252,193,14,224,252,193,16,224,252,193,18,224,252,193,20,224,252,193,22,224,252,193,24,224,252,193,26,224,252,193,28,224,252,193,30,224,252,193,32,224,252,193,34,224,252,193,36,224,252,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,193,2,226,252,193,4,226,252,193,6,226,252,193,182,227,252,193,8,226,252,193,10,226,252,193,12,226,252,193,14,226,252,193,16,226,252,193,18,226,252,193,20,226,252,193,22,226,252,193,24,226,252,193,26,226,252,193,28,226,252,193,30,226,252,193,32,226,252,193,34,226,252,193,36,226,252,193,38,226,252,193,40,226,252,193,42,226,252,193,44,226,252,193,46,226,252,193,48,226,252,193,50,226,252,193,52,226,252,193,54,226,252,193,56,226,252,193,58,226,252,193,38,224,252,193,60,226,252,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,206,160,76,0,193,64,225,252,193,66,225,252,193,68,225,252,193,70,225,252,193,72,225,252,193,74,225,252,193,76,225,252,193,78,225,252,193,80,225,252,193,82,225,252,193,158,226,252,193,160,226,252,193,162,226,252,193,164,226,252,193,166,226,252,193,168,226,252,193,170,226,252,193,172,226,252,193,174,226,252,193,176,226,252,193,178,226,252,193,180,226,252,193,182,226,252,193,184,226,252,193,186,226,252,193,188,226,252,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,192,76,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,193,154,224,252,193,156,224,252,193,158,224,252,193,160,224,252,193,216,225,252,193,218,225,252,193,220,225,252,193,120,227,252,193,122,227,252,193,124,227,252,193,126,227,252,193,128,227,252,193,130,227,252,193,132,227,252,193,134,227,252,193,136,227,252,193,138,227,252,193,140,227,252,193,142,227,252,193,144,227,252,193,146,227,252,193,148,227,252,193,150,227,252,193,152,227,252,193,154,227,252,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,206,224,76,0,193,236,225,252,193,58,225,252,193,60,225,252,193,62,225,252,193,238,225,252,193,240,225,252,193,242,225,252,193,244,225,252,193,246,225,252,193,248,225,252,193,250,225,252,193,180,227,252,193,252,225,252,193,254,225,252,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,0,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,193,62,226,252,193,64,226,252,193,66,226,252,193,68,226,252,193,70,226,252,193,72,226,252,193,74,226,252,193,76,226,252,193,78,226,252,193,80,226,252,193,82,226,252,193,84,226,252,193,86,226,252,193,88,226,252,193,90,226,252,193,92,226,252,193,94,226,252,193,96,226,252,193,98,226,252,193,244,229,252,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,32,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,193,190,226,252,193,192,226,252,193,86,228,252,193,88,228,252,193,90,228,252,193,92,228,252,193,94,228,252,193,96,228,252,193,98,228,252,193,100,228,252,193,102,228,252,193,104,228,252,193,106,228,252,193,108,228,252,193,110,228,252,193,112,228,252,193,114,228,252,193,116,228,252,193,118,228,252,193,120,228,252,193,122,228,252,193,210,230,252,193,124,228,252,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,64,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,206,96,77,0,193,190,232,252,193,52,228,252,193,54,228,252,193,56,228,252,193,58,228,252,193,60,228,252,193,62,228,252,193,64,228,252,193,66,228,252,193,68,228,252,193,70,228,252,193,72,228,252,193,74,228,252,193,76,228,252,193,78,228,252,193,80,228,252,193,82,228,252,206,0,78,0,206,0,78,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,206,128,77,0,193,4,231,252,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,206,160,77,0,193,6,231,252,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,192,77,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,193,102,229,252,193,104,229,252,193,106,229,252,193,108,229,252,193,110,229,252,193,112,229,252,193,114,229,252,193,116,229,252,193,118,229,252,193,120,229,252,193,122,229,252,193,124,229,252,193,126,229,252,193,128,229,252,193,130,229,252,193,132,229,252,193,56,232,252,193,58,232,252,193,60,232,252,193,62,232,252,193,64,232,252,193,66,232,252,193,68,232,252,193,70,232,252,193,72,232,252,193,74,232,252,193,76,232,252,193,78,232,252,193,80,232,252,193,82,232,252,193,84,232,252,193,86,232,252,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,206,224,77,0,193,124,232,252,193,126,232,252,193,128,232,252,193,130,232,252,193,132,232,252,193,134,232,252,193,136,232,252,193,138,232,252,193,140,232,252,193,142,232,252,193,144,232,252,193,146,232,252,193,148,232,252,193,150,232,252,193,152,232,252,193,154,232,252,193,214,229,252,193,216,229,252,193,218,229,252,193,220,229,252,193,222,229,252,193,224,229,252,193,226,229,252,193,228,229,252,193,230,229,252,193,232,229,252,193,234,229,252,193,236,229,252,193,238,229,252,193,240,229,252,193,242,229,252,193,162,232,252,193,164,232,252,193,166,232,252,193,168,232,252,193,170,232,252,193,172,232,252,193,174,232,252,193,176,232,252,193,178,232,252,193,180,232,252,193,182,232,252,193,184,232,252,193,186,232,252,193,188,232,252,193,116,235,252,193,118,235,252,193,120,235,252,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,0,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,206,128,78,0,193,206,230,252,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,206,32,78,0,193,142,233,252,193,144,233,252,193,146,233,252,193,148,233,252,193,150,233,252,193,152,233,252,193,154,233,252,193,156,233,252,193,158,233,252,193,160,233,252,193,162,233,252,193,164,233,252,193,166,233,252,193,168,233,252,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,64,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,193,88,232,252,193,232,234,252,193,234,234,252,193,236,234,252,193,238,234,252,193,240,234,252,193,242,234,252,193,244,234,252,193,246,234,252,193,248,234,252,193,250,234,252,193,252,234,252,193,254,234,252,193,2,235,252,193,4,235,252,193,6,235,252,193,8,235,252,193,10,235,252,193,12,235,252,193,14,235,252,193,16,235,252,193,18,235,252,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,206,96,78,0,193,24,235,252,193,26,235,252,193,28,235,252,193,30,235,252,193,32,235,252,193,34,235,252,193,36,235,252,193,38,235,252,193,40,235,252,193,42,235,252,193,44,235,252,193,46,235,252,193,48,235,252,193,50,235,252,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,193,156,232,252,193,158,232,252,193,160,232,252,193,52,235,252,193,54,235,252,193,56,235,252,193,58,235,252,193,60,235,252,193,62,235,252,193,64,235,252,193,66,235,252,193,68,235,252,193,70,235,252,193,72,235,252,193,74,235,252,193,76,235,252,193,78,235,252,193,80,235,252,193,82,235,252,193,84,235,252,193,86,235,252,193,88,235,252,193,90,235,252,193,92,235,252,193,94,235,252,193,96,235,252,193,98,235,252,193,100,235,252,193,102,235,252,193,104,235,252,193,106,235,252,193,108,235,252,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,160,78,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,0,79,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,192,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,206,224,78,0,193,98,236,252,193,182,234,252,193,184,234,252,193,186,234,252,193,188,234,252,193,190,234,252,193,192,234,252,193,194,234,252,193,196,234,252,193,198,234,252,193,200,234,252,193,202,234,252,193,204,234,252,193,206,234,252,193,208,234,252,193,210,234,252,193,212,234,252,193,214,234,252,193,216,234,252,193,218,234,252,193,220,234,252,193,222,234,252,193,224,234,252,193,226,234,252,193,228,234,252,193,230,234,252,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,193,110,235,252,193,112,235,252,193,114,235,252,193,254,237,252,193,2,238,252,193,4,238,252,193,6,238,252,193,8,238,252,193,10,238,252,193,12,238,252,193,14,238,252,193,16,238,252,193,18,238,252,193,20,238,252,193,22,238,252,193,24,238,252,193,26,238,252,193,28,238,252,193,30,238,252,193,32,238,252,193,34,238,252,193,36,238,252,193,38,238,252,193,40,238,252,193,42,238,252,193,44,238,252,193,46,238,252,193,48,238,252,193,50,238,252,193,52,238,252,193,54,238,252,193,56,238,252,193,122,235,252,193,124,235,252,193,126,235,252,193,128,235,252,193,130,235,252,193,132,235,252,193,134,235,252,193,136,235,252,193,138,235,252,193,140,235,252,193,142,235,252,193,60,238,252,193,62,238,252,193,64,238,252,193,66,238,252,193,68,238,252,193,70,238,252,193,72,238,252,193,210,240,252,193,212,240,252,193,214,240,252,193,216,240,252,193,52,243,252,193,54,243,252,193,56,243,252,193,58,243,252,193,60,243,252,193,62,243,252,193,64,243,252,193,98,245,252,193,100,245,252,193,102,245,252,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,206,32,79,0,193,74,238,252,193,58,236,252,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,64,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,206,96,79,0,193,56,239,252,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,206,128,79,0,193,68,240,252,193,70,240,252,193,72,240,252,193,74,240,252,193,76,240,252,193,78,240,252,193,80,240,252,193,82,240,252,193,84,240,252,193,86,240,252,193,88,240,252,193,90,240,252,193,92,240,252,193,94,240,252,193,96,240,252,193,98,240,252,193,100,240,252,193,102,240,252,193,104,240,252,193,106,240,252,193,108,240,252,193,198,242,252,193,200,242,252,193,202,242,252,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,160,79,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,193,58,238,252,193,162,240,252,193,164,240,252,193,166,240,252,193,168,240,252,193,170,240,252,193,172,240,252,193,174,240,252,193,176,240,252,193,178,240,252,193,180,240,252,193,182,240,252,193,184,240,252,193,186,240,252,193,188,240,252,193,190,240,252,193,192,240,252,193,194,240,252,193,196,240,252,193,198,240,252,193,200,240,252,193,202,240,252,193,204,240,252,193,206,240,252,193,208,240,252,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,206,192,79,0,193,218,240,252,193,220,240,252,193,222,240,252,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,224,79,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,193,58,239,252,193,60,239,252,193,62,239,252,193,64,239,252,193,66,239,252,193,68,239,252,193,70,239,252,193,72,239,252,193,74,239,252,193,76,239,252,193,78,239,252,193,80,239,252,193,82,239,252,193,84,239,252,193,86,239,252,193,88,239,252,193,90,239,252,193,92,239,252,193,94,239,252,193,96,239,252,193,98,239,252,193,100,239,252,193,102,239,252,193,104,239,252,193,106,239,252,193,108,239,252,193,110,239,252,193,112,239,252,193,114,239,252,193,116,239,252,193,118,239,252,193,120,239,252,193,122,239,252,193,124,239,252,193,126,239,252,193,128,239,252,193,130,239,252,193,132,239,252,193,134,239,252,193,136,239,252,193,138,239,252,193,140,239,252,193,142,239,252,193,144,239,252,193,146,239,252,193,148,239,252,193,150,239,252,193,152,239,252,193,154,239,252,193,156,239,252,193,158,239,252,193,160,239,252,193,162,239,252,193,164,239,252,193,166,239,252,193,168,239,252,193,170,239,252,193,172,239,252,193,174,239,252,193,176,239,252,193,178,239,252,193,126,241,252,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,206,0,80,0,193,158,252,252,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,206,32,80,0,193,216,242,252,193,218,242,252,193,220,242,252,193,222,242,252,193,224,242,252,193,226,242,252,193,228,242,252,193,230,242,252,193,232,242,252,193,234,242,252,193,236,242,252,193,238,242,252,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,193,224,240,252,193,226,240,252,193,228,240,252,193,230,240,252,193,232,240,252,193,234,240,252,193,236,240,252,193,238,240,252,193,240,240,252,193,242,240,252,193,244,240,252,193,246,240,252,193,248,240,252,193,250,240,252,193,252,240,252,193,254,240,252,193,2,241,252,193,4,241,252,193,6,241,252,193,8,241,252,193,10,241,252,193,12,241,252,193,14,241,252,193,16,241,252,193,18,241,252,193,20,241,252,193,22,241,252,193,24,241,252,193,26,241,252,193,28,241,252,193,30,241,252,193,32,241,252,193,34,241,252,193,36,241,252,193,38,241,252,193,40,241,252,193,42,241,252,193,44,241,252,193,46,241,252,193,48,241,252,193,50,241,252,193,52,241,252,193,54,241,252,193,56,241,252,193,58,241,252,193,60,241,252,193,62,241,252,193,64,241,252,193,66,241,252,193,68,241,252,193,70,241,252,193,72,241,252,193,74,241,252,193,76,241,252,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,206,64,80,0,193,180,243,252,193,182,243,252,193,184,243,252,193,186,243,252,193,188,243,252,193,190,243,252,193,192,243,252,193,194,243,252,193,196,243,252,193,198,243,252,193,200,243,252,193,202,243,252,193,204,243,252,193,200,245,252,193,202,245,252,193,204,245,252,193,206,245,252,193,208,245,252,193,210,245,252,193,212,245,252,193,214,245,252,193,216,245,252,193,218,245,252,193,220,245,252,193,222,245,252,193,134,247,252,193,136,247,252,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,96,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,206,128,80,0,193,206,243,252,193,112,242,252,193,114,242,252,193,116,242,252,193,118,242,252,193,120,242,252,193,122,242,252,193,124,242,252,193,126,242,252,193,128,242,252,193,130,242,252,193,132,242,252,193,134,242,252,193,136,242,252,193,138,242,252,193,140,242,252,193,142,242,252,193,144,242,252,193,146,242,252,193,148,242,252,193,150,242,252,193,152,242,252,193,154,242,252,193,156,242,252,193,158,242,252,193,160,242,252,193,162,242,252,193,164,242,252,193,166,242,252,193,168,242,252,193,170,242,252,193,172,242,252,193,174,242,252,193,176,242,252,193,178,242,252,193,180,242,252,193,182,242,252,193,184,242,252,193,186,242,252,193,188,242,252,193,190,242,252,193,192,242,252,193,194,242,252,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,193,196,242,252,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,193,204,242,252,193,206,242,252,193,208,242,252,193,210,242,252,193,212,242,252,193,214,244,252,193,216,244,252,193,218,244,252,193,220,244,252,193,222,244,252,193,224,244,252,193,226,244,252,193,228,244,252,193,230,244,252,193,232,244,252,193,234,244,252,193,236,244,252,193,238,244,252,193,240,244,252,193,242,244,252,193,244,244,252,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,160,80,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,206,192,80,0,193,120,245,252,193,168,243,252,193,170,243,252,193,172,243,252,193,122,245,252,193,174,243,252,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,224,80,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,0,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,193,72,246,252,193,210,244,252,193,74,246,252,193,76,246,252,193,78,246,252,193,80,246,252,193,82,246,252,193,84,246,252,193,86,246,252,193,88,246,252,193,90,246,252,193,92,246,252,193,94,246,252,193,96,246,252,193,98,246,252,193,100,246,252,193,102,246,252,193,104,246,252,193,106,246,252,193,108,246,252,193,110,246,252,193,112,246,252,193,114,246,252,193,116,246,252,193,212,244,252,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,206,32,81,0,193,228,246,252,193,230,246,252,193,232,246,252,193,234,246,252,193,236,246,252,193,238,246,252,193,240,246,252,193,242,246,252,193,244,246,252,193,246,246,252,193,248,246,252,193,250,246,252,193,252,246,252,193,254,246,252,193,2,247,252,193,4,247,252,193,6,247,252,193,8,247,252,193,100,248,252,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,64,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,193,104,245,252,193,106,245,252,193,108,245,252,193,110,245,252,193,112,245,252,193,114,245,252,193,116,245,252,193,118,245,252,193,64,247,252,193,66,247,252,193,166,248,252,193,168,248,252,193,170,248,252,193,172,248,252,193,174,248,252,193,176,248,252,193,178,248,252,193,234,249,252,193,236,249,252,193,238,249,252,193,220,250,252,193,222,250,252,193,108,251,252,193,110,252,252,193,250,252,252,193,252,252,252,193,254,252,252,193,48,253,252,193,50,253,252,193,52,253,252,193,94,253,252,193,96,253,252,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,96,81,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,193,10,250,252,193,12,250,252,193,242,248,252,193,14,250,252,193,198,245,252,193,16,250,252,193,18,250,252,193,20,250,252,193,22,250,252,193,24,250,252,193,26,250,252,193,28,250,252,193,30,250,252,193,32,250,252,193,34,250,252,193,36,250,252,193,38,250,252,193,110,251,252,193,224,250,252,193,226,250,252,193,228,250,252,193,230,250,252,193,232,250,252,193,234,250,252,193,112,251,252,193,114,251,252,193,116,251,252,193,118,251,252,193,120,251,252,193,122,251,252,193,124,251,252,193,126,251,252,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,206,128,81,0,193,150,247,252,193,152,247,252,193,54,246,252,193,56,246,252,193,58,246,252,193,60,246,252,193,62,246,252,193,64,246,252,193,66,246,252,193,154,247,252,193,68,246,252,193,70,246,252,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,160,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,206,192,81,0,193,86,248,252,193,88,248,252,193,90,248,252,193,92,248,252,193,94,248,252,193,96,248,252,193,98,248,252,193,180,249,252,193,182,249,252,193,184,249,252,193,186,249,252,193,176,250,252,193,178,250,252,193,180,250,252,193,182,250,252,193,74,251,252,193,76,251,252,193,78,251,252,193,202,251,252,193,28,252,252,193,30,252,252,193,32,252,252,193,104,252,252,193,106,252,252,193,204,252,252,193,206,252,252,193,236,252,252,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,224,81,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,206,0,82,0,193,180,248,252,193,120,247,252,193,122,247,252,193,124,247,252,193,126,247,252,193,128,247,252,193,130,247,252,193,132,247,252,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,193,138,247,252,193,140,247,252,193,142,247,252,193,144,247,252,193,146,247,252,193,148,247,252,193,244,248,252,193,246,248,252,193,248,248,252,193,250,248,252,193,252,248,252,193,254,248,252,193,2,249,252,193,4,249,252,193,6,249,252,193,8,249,252,193,10,249,252,193,12,249,252,193,14,249,252,193,40,250,252,193,42,250,252,193,44,250,252,193,46,250,252,193,48,250,252,193,240,250,252,193,242,250,252,193,244,250,252,193,132,251,252,193,134,251,252,193,136,251,252,193,232,251,252,193,46,252,252,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,32,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,193,84,248,252,193,50,250,252,193,178,249,252,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,193,102,248,252,193,104,248,252,193,106,248,252,193,108,248,252,193,110,248,252,193,112,248,252,193,114,248,252,193,116,248,252,193,118,248,252,193,120,248,252,193,122,248,252,193,124,248,252,193,126,248,252,193,128,248,252,193,188,249,252,193,190,249,252,193,192,249,252,193,194,249,252,193,196,249,252,193,198,249,252,193,200,249,252,193,202,249,252,193,184,250,252,193,186,250,252,193,188,250,252,193,190,250,252,193,192,250,252,193,194,250,252,193,80,251,252,193,82,251,252,193,84,251,252,193,86,251,252,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,206,64,82,0,193,204,249,252,193,206,249,252,193,208,249,252,193,210,249,252,193,212,249,252,193,214,249,252,193,216,249,252,193,218,249,252,193,220,249,252,193,222,249,252,193,224,249,252,193,226,249,252,193,228,249,252,193,230,249,252,193,232,249,252,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,206,96,82,0,193,240,249,252,193,238,248,252,193,240,248,252,193,242,249,252,193,244,249,252,193,246,249,252,193,248,249,252,193,250,249,252,193,252,249,252,193,254,249,252,193,2,250,252,193,4,250,252,193,6,250,252,193,8,250,252,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,128,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,160,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,192,82,0,206,192,82,0,206,192,82,0,206,192,82,0,193,88,251,252,193,90,251,252,193,92,251,252,193,94,251,252,193,96,251,252,193,98,251,252,193,100,251,252,193,102,251,252,193,104,251,252,193,106,251,252,193,214,251,252,193,216,251,252,193,218,251,252,193,220,251,252,193,222,251,252,193,36,252,252,193,74,252,252,193,76,252,252,193,108,252,252,193,176,252,252,193,186,252,252,193,188,252,252,193,190,252,252,193,210,252,252,193,212,252,252,193,242,252,252,193,244,252,252,193,246,252,252,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,224,82,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,0,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,193,204,251,252,193,206,251,252,193,208,251,252,193,210,251,252,193,212,251,252,193,34,252,252,193,72,252,252,193,208,252,252,193,238,252,252,193,240,252,252,193,86,253,252,193,126,253,252,193,128,253,252,193,130,253,252,193,18,254,252,193,20,254,252,193,22,254,252,193,84,254,252,193,104,254,252,193,144,254,252,193,30,255,252,193,32,255,252,193,210,255,252,193,212,255,252,193,214,255,252,193,216,255,252,193,218,255,252,193,220,255,252,193,198,2,253,193,200,2,253,193,202,2,253,193,204,2,253,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,206,32,83,0,193,50,252,252,193,52,252,252,193,54,252,252,193,56,252,252,193,58,252,252,193,60,252,252,193,62,252,252,193,140,252,252,193,64,252,252,193,66,252,252,193,68,252,252,193,70,252,252,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,206,64,83,0,193,48,252,252,193,78,252,252,193,114,252,252,193,116,252,252,193,118,252,252,193,136,252,252,193,138,252,252,193,166,252,252,193,182,252,252,193,196,252,252,193,220,252,252,193,222,252,252,193,224,252,252,193,226,252,252,193,14,253,252,193,16,253,252,193,60,253,252,193,62,253,252,193,102,253,252,193,104,253,252,193,106,253,252,193,108,253,252,193,110,253,252,193,188,253,252,193,228,253,252,193,32,254,252,193,62,254,252,193,64,254,252,193,88,254,252,193,156,254,252,193,234,254,252,193,236,254,252,193,230,252,252,193,232,252,252,193,234,252,252,193,18,253,252,193,20,253,252,193,22,253,252,193,24,253,252,193,26,253,252,193,28,253,252,193,30,253,252,193,32,253,252,193,34,253,252,193,36,253,252,193,38,253,252,193,40,253,252,193,42,253,252,193,44,253,252,193,64,253,252,193,66,253,252,193,68,253,252,193,70,253,252,193,72,253,252,193,74,253,252,193,76,253,252,193,78,253,252,193,80,253,252,193,112,253,252,193,114,253,252,193,116,253,252,193,118,253,252,193,120,253,252,193,122,253,252,193,248,252,252,193,46,253,252,193,88,253,252,193,90,253,252,193,92,253,252,193,132,253,252,193,134,253,252,193,216,253,252,193,218,253,252,193,24,254,252,193,26,254,252,193,56,254,252,193,58,254,252,193,86,254,252,193,106,254,252,193,118,254,252,193,152,254,252,193,162,254,252,193,196,254,252,193,34,255,252,193,36,255,252,193,38,255,252,193,40,255,252,193,42,255,252,193,222,255,252,193,224,255,252,193,226,255,252,193,228,255,252,193,230,255,252,193,210,2,253,193,212,2,253,193,214,2,253,193,82,253,252,193,84,253,252,193,176,253,252,193,54,254,252,193,194,254,252,193,26,255,252,193,28,255,252,193,200,255,252,193,202,255,252,193,204,255,252,193,206,255,252,193,208,255,252,193,184,2,253,193,186,2,253,193,188,2,253,193,190,2,253,193,192,2,253,193,194,2,253,193,196,2,253,193,176,3,253,193,178,3,253,193,180,3,253,193,182,3,253,193,184,3,253,193,186,3,253,193,188,3,253,193,190,3,253,193,192,3,253,193,194,3,253,193,190,4,253,193,192,4,253,193,194,4,253,193,124,253,252,193,148,253,252,193,150,253,252,193,152,253,252,193,154,253,252,193,156,253,252,193,158,253,252,193,160,253,252,193,162,253,252,193,164,253,252,193,166,253,252,193,168,253,252,193,170,253,252,193,172,253,252,193,174,253,252,193,190,253,252,193,192,253,252,193,194,253,252,193,196,253,252,193,198,253,252,193,200,253,252,193,202,253,252,193,204,253,252,193,206,253,252,193,208,253,252,193,210,253,252,193,212,253,252,193,214,253,252,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,193,136,253,252,193,138,253,252,193,140,253,252,193,142,253,252,193,178,253,252,193,180,253,252,193,182,253,252,193,220,253,252,193,134,254,252,193,198,254,252,193,44,255,252,193,232,255,252,193,234,255,252,193,236,255,252,193,238,255,252,193,240,255,252,193,242,255,252,193,244,255,252,193,246,255,252,193,218,2,253,193,220,2,253,193,222,2,253,193,224,2,253,193,226,2,253,193,224,3,253,193,226,3,253,193,240,4,253,193,242,4,253,193,244,4,253,193,246,4,253,193,248,4,253,193,80,6,253,193,144,253,252,193,146,253,252,193,184,253,252,193,186,253,252,193,222,253,252,193,224,253,252,193,226,253,252,193,28,254,252,193,30,254,252,193,60,254,252,193,146,254,252,193,150,254,252,193,154,254,252,193,164,254,252,193,166,254,252,193,168,254,252,193,170,254,252,193,172,254,252,193,174,254,252,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,206,96,83,0,193,34,254,252,193,36,254,252,193,38,254,252,193,40,254,252,193,42,254,252,193,44,254,252,193,46,254,252,193,48,254,252,193,50,254,252,193,52,254,252,193,66,254,252,193,68,254,252,193,70,254,252,193,72,254,252,193,74,254,252,193,76,254,252,193,78,254,252,193,90,254,252,193,80,254,252,193,82,254,252,193,92,254,252,193,94,254,252,193,96,254,252,193,98,254,252,193,100,254,252,193,102,254,252,193,108,254,252,193,110,254,252,193,112,254,252,193,114,254,252,193,116,254,252,193,110,161,253,193,120,254,252,193,122,254,252,193,124,254,252,193,126,254,252,193,128,254,252,193,130,254,252,193,132,254,252,193,136,254,252,193,138,254,252,193,140,254,252,193,142,254,252,193,148,254,252,193,158,254,252,193,160,254,252,193,176,254,252,193,178,254,252,193,180,254,252,193,182,254,252,193,184,254,252,193,186,254,252,193,188,254,252,193,190,254,252,193,192,254,252,193,242,254,252,193,244,254,252,193,246,254,252,193,248,254,252,193,250,254,252,193,252,254,252,193,254,254,252,193,2,255,252,193,4,255,252,193,6,255,252,193,8,255,252,193,10,255,252,193,12,255,252,193,14,255,252,193,16,255,252,193,18,255,252,193,20,255,252,193,22,255,252,193,24,255,252,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,128,83,0,206,128,83,0,206,128,83,0,206,128,83,0,193,46,255,252,193,48,255,252,193,50,255,252,193,52,255,252,193,228,2,253,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,193,238,254,252,193,124,255,252,193,126,255,252,193,128,255,252,193,68,2,253,193,70,2,253,193,72,2,253,193,74,2,253,193,76,2,253,193,78,2,253,193,80,2,253,193,82,2,253,193,84,2,253,193,48,3,253,193,50,3,253,193,52,3,253,193,54,3,253,193,56,3,253,193,58,3,253,193,60,3,253,193,62,3,253,193,64,3,253,193,50,4,253,193,52,4,253,193,54,4,253,193,56,4,253,193,58,4,253,193,60,4,253,193,62,4,253,193,64,4,253,193,66,4,253,193,96,5,253,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,206,160,83,0,193,248,255,252,193,122,255,252,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,206,192,83,0,193,86,2,253,193,88,2,253,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,206,224,83,0,193,230,2,253,193,232,2,253,193,234,2,253,193,236,2,253,193,238,2,253,193,240,2,253,193,228,3,253,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,193,240,249,252,193,66,2,253,193,156,35,253,193,178,55,253,193,86,79,253,193,170,81,253,193,102,90,253,193,218,102,253,193,88,104,253,193,30,129,253,193,14,158,253,193,98,158,253,193,188,159,253,193,250,201,253,193,66,89,253,193,204,131,253,193,126,14,251,193,160,21,251,193,68,26,251,193,4,43,251,193,12,44,251,193,46,48,251,193,92,67,251,193,34,72,251,193,50,76,251,193,94,92,251,193,16,215,253,193,76,134,251,193,8,135,251,193,176,174,251,193,108,178,251,193,254,182,251,193,90,2,253,193,92,2,253,193,94,2,253,193,96,2,253,193,98,2,253,193,100,2,253,193,102,2,253,193,104,2,253,193,106,2,253,193,108,2,253,193,110,2,253,193,112,2,253,193,114,2,253,193,116,2,253,193,118,2,253,193,120,2,253,193,122,2,253,193,124,2,253,193,126,2,253,193,128,2,253,193,130,2,253,193,132,2,253,193,134,2,253,193,136,2,253,193,138,2,253,193,140,2,253,193,142,2,253,193,144,2,253,193,146,2,253,193,148,2,253,193,150,2,253,193,152,2,253,193,154,2,253,193,156,2,253,193,158,2,253,193,160,2,253,193,162,2,253,193,164,2,253,193,166,2,253,193,168,2,253,193,170,2,253,193,172,2,253,193,174,2,253,193,176,2,253,193,178,2,253,193,180,2,253,193,182,2,253,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,193,206,2,253,193,208,2,253,193,196,3,253,193,198,3,253,193,200,3,253,193,202,3,253,193,204,3,253,193,206,3,253,193,200,4,253,193,202,4,253,193,204,4,253,193,206,4,253,193,208,4,253,193,210,4,253,193,40,6,253,193,42,6,253,193,44,6,253,193,46,6,253,193,48,6,253,193,50,6,253,193,52,6,253,193,54,6,253,193,56,6,253,193,58,6,253,193,60,6,253,193,62,6,253,193,64,6,253,193,148,7,253,193,150,7,253,193,152,7,253,193,154,7,253,193,218,8,253,193,216,2,253,193,208,3,253,193,210,3,253,193,212,3,253,193,214,3,253,193,216,3,253,193,218,3,253,193,220,3,253,193,222,3,253,193,212,4,253,193,214,4,253,193,216,4,253,193,218,4,253,193,220,4,253,193,222,4,253,193,224,4,253,193,226,4,253,193,228,4,253,193,230,4,253,193,232,4,253,193,234,4,253,193,236,4,253,193,238,4,253,193,66,6,253,193,68,6,253,193,70,6,253,193,72,6,253,193,74,6,253,193,76,6,253,193,78,6,253,193,156,7,253,193,158,7,253,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,0,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,206,32,84,0,193,68,4,253,193,122,3,253,193,124,3,253,193,70,4,253,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,206,64,84,0,193,72,4,253,193,74,4,253,193,76,4,253,193,78,4,253,193,80,4,253,193,82,4,253,193,84,4,253,193,86,4,253,193,88,4,253,193,90,4,253,193,92,4,253,193,94,4,253,193,96,4,253,193,98,4,253,193,100,4,253,193,102,4,253,193,104,4,253,193,106,4,253,193,108,4,253,193,110,4,253,193,112,4,253,193,114,4,253,193,122,5,253,193,116,4,253,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,96,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,206,128,84,0,193,46,4,253,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,206,160,84,0,193,48,4,253,193,86,5,253,193,88,5,253,193,90,5,253,193,92,5,253,193,94,5,253,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,193,118,4,253,193,120,4,253,193,122,4,253,193,124,4,253,193,126,4,253,193,128,4,253,193,130,4,253,193,132,4,253,193,134,4,253,193,136,4,253,193,138,4,253,193,140,4,253,193,142,4,253,193,144,4,253,193,146,4,253,193,148,4,253,193,150,4,253,193,152,4,253,193,154,4,253,193,156,4,253,193,158,4,253,193,160,4,253,193,162,4,253,193,164,4,253,193,166,4,253,193,168,4,253,193,170,4,253,193,172,4,253,193,174,4,253,193,176,4,253,193,178,4,253,193,180,4,253,193,182,4,253,193,184,4,253,193,186,4,253,193,124,5,253,193,126,5,253,193,128,5,253,193,130,5,253,193,132,5,253,193,134,5,253,193,136,5,253,193,138,5,253,193,140,5,253,193,142,5,253,193,144,5,253,193,146,5,253,193,148,5,253,193,150,5,253,193,152,5,253,193,154,5,253,193,156,5,253,193,158,5,253,193,160,5,253,193,162,5,253,193,164,5,253,193,166,5,253,193,168,5,253,193,170,5,253,193,172,5,253,193,174,5,253,193,176,5,253,193,188,4,253,193,178,5,253,193,196,4,253,193,198,4,253,193,24,6,253,193,26,6,253,193,28,6,253,193,30,6,253,193,32,6,253,193,34,6,253,193,36,6,253,193,38,6,253,193,138,7,253,193,140,7,253,193,142,7,253,193,144,7,253,193,146,7,253,193,204,8,253,193,206,8,253,193,208,8,253,193,210,8,253,193,212,8,253,193,214,8,253,193,216,8,253,193,28,10,253,193,30,10,253,193,32,10,253,193,34,10,253,193,42,11,253,193,44,11,253,193,46,11,253,193,48,11,253,193,50,11,253,193,10,12,253,193,98,5,253,193,100,5,253,193,102,5,253,193,104,5,253,193,106,5,253,193,108,5,253,193,110,5,253,193,112,5,253,193,114,5,253,193,116,5,253,193,118,5,253,193,208,6,253,193,210,6,253,193,212,6,253,193,214,6,253,193,216,6,253,193,218,6,253,193,220,6,253,193,222,6,253,193,224,6,253,193,226,6,253,193,120,5,253,193,228,6,253,193,16,8,253,193,18,8,253,193,20,8,253,193,22,8,253,193,24,8,253,193,26,8,253,193,28,8,253,193,30,8,253,193,98,9,253,193,180,5,253,193,182,5,253,193,184,5,253,193,186,5,253,193,188,5,253,193,190,5,253,193,192,5,253,193,194,5,253,193,196,5,253,193,198,5,253,193,200,5,253,193,202,5,253,193,204,5,253,193,206,5,253,193,208,5,253,193,210,5,253,193,230,6,253,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,192,84,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,193,82,6,253,193,84,6,253,193,86,6,253,193,88,6,253,193,90,6,253,193,92,6,253,193,94,6,253,193,96,6,253,193,98,6,253,193,100,6,253,193,176,7,253,193,178,7,253,193,180,7,253,193,182,7,253,193,252,8,253,193,254,8,253,193,2,9,253,193,4,9,253,193,6,9,253,193,8,9,253,193,10,9,253,193,12,9,253,193,60,10,253,193,62,10,253,193,64,10,253,193,66,10,253,193,68,10,253,193,78,11,253,193,80,11,253,193,36,12,253,193,38,12,253,193,40,12,253,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,206,224,84,0,193,184,7,253,193,192,6,253,193,194,6,253,193,196,6,253,193,198,6,253,193,200,6,253,193,202,6,253,193,204,6,253,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,193,94,10,253,193,206,6,253,193,96,10,253,193,98,10,253,193,100,10,253,193,102,10,253,193,104,10,253,193,106,10,253,193,108,10,253,193,110,10,253,193,112,10,253,193,114,10,253,193,116,10,253,193,118,10,253,193,120,10,253,193,122,10,253,193,124,10,253,193,126,10,253,193,128,10,253,193,130,10,253,193,132,10,253,193,134,10,253,193,82,11,253,193,84,11,253,193,86,11,253,193,88,11,253,193,90,11,253,193,92,11,253,193,94,11,253,193,96,11,253,193,98,11,253,193,100,11,253,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,0,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,206,64,85,0,193,136,7,253,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,193,160,7,253,193,162,7,253,193,164,7,253,193,166,7,253,193,168,7,253,193,170,7,253,193,172,7,253,193,174,7,253,193,230,8,253,193,232,8,253,193,234,8,253,193,236,8,253,193,238,8,253,193,240,8,253,193,242,8,253,193,244,8,253,193,246,8,253,193,248,8,253,193,250,8,253,193,44,10,253,193,46,10,253,193,48,10,253,193,50,10,253,193,52,10,253,193,54,10,253,193,56,10,253,193,58,10,253,193,64,11,253,193,66,11,253,193,68,11,253,193,70,11,253,193,72,11,253,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,32,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,206,128,85,0,193,70,10,253,193,72,10,253,193,74,10,253,193,76,10,253,193,14,8,253,193,78,10,253,193,80,10,253,193,82,10,253,193,84,10,253,193,86,10,253,193,88,10,253,193,90,10,253,193,92,10,253,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,96,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,193,220,8,253,193,222,8,253,193,224,8,253,193,226,8,253,193,228,8,253,193,36,10,253,193,38,10,253,193,40,10,253,193,42,10,253,193,52,11,253,193,54,11,253,193,56,11,253,193,58,11,253,193,60,11,253,193,62,11,253,193,18,12,253,193,20,12,253,193,22,12,253,193,164,12,253,193,166,12,253,193,168,12,253,193,170,12,253,193,172,12,253,193,174,12,253,193,58,13,253,193,178,13,253,193,250,13,253,193,96,14,253,193,16,15,253,193,120,15,253,193,158,15,253,193,160,15,253,193,102,11,253,193,96,9,253,193,104,11,253,193,106,11,253,193,108,11,253,193,110,11,253,193,112,11,253,193,114,11,253,193,116,11,253,193,118,11,253,193,120,11,253,193,122,11,253,193,124,11,253,193,126,11,253,193,136,10,253,193,128,11,253,193,44,12,253,193,46,12,253,193,48,12,253,193,50,12,253,193,52,12,253,193,54,12,253,193,56,12,253,193,58,12,253,193,60,12,253,193,62,12,253,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,193,100,9,253,193,102,9,253,193,104,9,253,193,106,9,253,193,108,9,253,193,110,9,253,193,112,9,253,193,114,9,253,193,116,9,253,193,118,9,253,193,120,9,253,193,122,9,253,193,124,9,253,193,126,9,253,193,128,9,253,193,138,10,253,193,140,10,253,193,142,10,253,193,144,10,253,193,146,10,253,193,130,11,253,193,132,11,253,193,134,11,253,193,136,11,253,193,138,11,253,193,140,11,253,193,142,11,253,193,144,11,253,193,64,12,253,193,66,12,253,193,68,12,253,193,70,12,253,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,160,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,192,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,224,85,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,193,74,11,253,193,76,11,253,193,24,12,253,193,26,12,253,193,28,12,253,193,30,12,253,193,32,12,253,193,34,12,253,193,176,12,253,193,178,12,253,193,180,12,253,193,182,12,253,193,60,13,253,193,62,13,253,193,64,13,253,193,66,13,253,193,68,13,253,193,70,13,253,193,180,13,253,193,252,13,253,193,254,13,253,193,2,14,253,193,4,14,253,193,60,14,253,193,98,14,253,193,100,14,253,193,120,14,253,193,168,14,253,193,204,14,253,193,212,14,253,193,252,14,253,193,254,14,253,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,0,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,193,12,12,253,193,14,12,253,193,16,12,253,193,156,12,253,193,158,12,253,193,160,12,253,193,54,13,253,193,56,13,253,193,176,13,253,193,180,14,253,193,238,14,253,193,250,14,253,193,78,15,253,193,174,15,253,193,202,15,253,193,250,15,253,193,32,16,253,193,48,16,253,193,20,17,253,193,22,17,253,193,24,17,253,193,204,17,253,193,206,17,253,193,208,17,253,193,136,18,253,193,138,18,253,193,140,18,253,193,142,18,253,193,144,18,253,193,64,19,253,193,40,20,253,193,42,20,253,193,42,12,253,193,184,12,253,193,186,12,253,193,188,12,253,193,72,13,253,193,182,13,253,193,62,14,253,193,2,15,253,193,20,15,253,193,80,15,253,193,204,15,253,193,222,15,253,193,224,15,253,193,226,15,253,193,234,15,253,193,34,16,253,193,84,16,253,193,46,17,253,193,240,17,253,193,242,17,253,193,244,17,253,193,246,17,253,193,248,17,253,193,250,17,253,193,252,17,253,193,178,18,253,193,180,18,253,193,106,19,253,193,108,19,253,193,110,19,253,193,112,19,253,193,114,19,253,193,72,12,253,193,74,12,253,193,214,12,253,193,216,12,253,193,218,12,253,193,90,13,253,193,92,13,253,193,94,13,253,193,96,13,253,193,98,13,253,193,198,13,253,193,200,13,253,193,202,13,253,193,66,14,253,193,152,14,253,193,218,14,253,193,226,14,253,193,242,14,253,193,22,15,253,193,34,15,253,193,50,15,253,193,148,15,253,193,184,15,253,193,10,16,253,193,12,16,253,193,38,16,253,193,62,16,253,193,64,16,253,193,100,16,253,193,102,16,253,193,104,16,253,193,204,16,253,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,32,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,206,64,86,0,193,74,13,253,193,76,13,253,193,78,13,253,193,80,13,253,193,82,13,253,193,84,13,253,193,86,13,253,193,88,13,253,193,184,13,253,193,186,13,253,193,188,13,253,193,190,13,253,193,192,13,253,193,194,13,253,193,196,13,253,193,212,12,253,193,6,14,253,193,8,14,253,193,10,14,253,193,12,14,253,193,14,14,253,193,16,14,253,193,64,14,253,193,102,14,253,193,122,14,253,193,124,14,253,193,150,14,253,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,206,96,86,0,193,100,13,253,193,102,13,253,193,104,13,253,193,106,13,253,193,108,13,253,193,110,13,253,193,112,13,253,193,114,13,253,193,116,13,253,193,118,13,253,193,120,13,253,193,122,13,253,193,124,13,253,193,126,13,253,193,128,13,253,193,130,13,253,193,132,13,253,193,134,13,253,193,136,13,253,193,138,13,253,193,140,13,253,193,142,13,253,193,144,13,253,193,146,13,253,193,148,13,253,193,150,13,253,193,152,13,253,193,154,13,253,193,156,13,253,193,158,13,253,193,160,13,253,193,162,13,253,193,164,13,253,193,166,13,253,193,168,13,253,193,170,13,253,193,172,13,253,193,174,13,253,193,204,13,253,193,206,13,253,193,208,13,253,193,210,13,253,193,212,13,253,193,214,13,253,193,216,13,253,193,218,13,253,193,220,13,253,193,222,13,253,193,224,13,253,193,226,13,253,193,228,13,253,193,230,13,253,193,232,13,253,193,234,13,253,193,18,14,253,193,236,13,253,193,238,13,253,193,240,13,253,193,242,13,253,193,244,13,253,193,246,13,253,193,248,13,253,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,206,128,86,0,193,68,14,253,193,70,14,253,193,72,14,253,193,74,14,253,193,76,14,253,193,78,14,253,193,80,14,253,193,82,14,253,193,84,14,253,193,86,14,253,193,88,14,253,193,90,14,253,193,92,14,253,193,94,14,253,193,104,14,253,193,106,14,253,193,108,14,253,193,110,14,253,193,112,14,253,193,114,14,253,193,116,14,253,193,126,14,253,193,128,14,253,193,130,14,253,193,132,14,253,193,134,14,253,193,136,14,253,193,118,14,253,193,138,14,253,193,140,14,253,193,142,14,253,193,144,14,253,193,146,14,253,193,148,14,253,193,154,14,253,193,156,14,253,193,158,14,253,193,160,14,253,193,162,14,253,193,164,14,253,193,166,14,253,193,172,14,253,193,174,14,253,193,176,14,253,193,178,14,253,193,182,14,253,193,184,14,253,193,186,14,253,193,188,14,253,193,18,206,253,193,190,14,253,193,192,14,253,193,194,14,253,193,196,14,253,193,198,14,253,193,200,14,253,193,206,14,253,193,208,14,253,193,210,14,253,193,220,14,253,193,228,14,253,193,230,14,253,193,232,14,253,193,234,14,253,193,236,14,253,193,244,14,253,193,246,14,253,193,248,14,253,193,12,15,253,193,14,15,253,193,24,15,253,193,26,15,253,193,28,15,253,193,30,15,253,193,32,15,253,193,36,15,253,193,38,15,253,193,40,15,253,193,42,15,253,193,44,15,253,193,46,15,253,193,202,14,253,193,214,14,253,193,216,14,253,193,222,14,253,193,224,14,253,193,240,14,253,193,4,15,253,193,6,15,253,193,8,15,253,193,10,15,253,193,102,15,253,193,114,15,253,193,118,15,253,193,130,15,253,193,132,15,253,193,146,15,253,193,162,15,253,193,164,15,253,193,166,15,253,193,168,15,253,193,170,15,253,193,176,15,253,193,178,15,253,193,180,15,253,193,182,15,253,193,206,15,253,193,236,15,253,193,238,15,253,193,240,15,253,193,242,15,253,193,2,16,253,193,4,16,253,193,18,15,253,193,106,15,253,193,144,15,253,193,220,15,253,193,58,16,253,193,78,16,253,193,80,16,253,193,82,16,253,193,148,16,253,193,32,17,253,193,34,17,253,193,36,17,253,193,38,17,253,193,40,17,253,193,42,17,253,193,44,17,253,193,222,17,253,193,224,17,253,193,226,17,253,193,228,17,253,193,230,17,253,193,232,17,253,193,234,17,253,193,236,17,253,193,238,17,253,193,162,18,253,193,164,18,253,193,166,18,253,193,168,18,253,193,170,18,253,193,172,18,253,193,174,18,253,193,52,15,253,193,54,15,253,193,56,15,253,193,58,15,253,193,48,15,253,193,60,15,253,193,62,15,253,193,64,15,253,193,66,15,253,193,68,15,253,193,70,15,253,193,72,15,253,193,74,15,253,193,76,15,253,193,82,15,253,193,84,15,253,193,86,15,253,193,88,15,253,193,90,15,253,193,92,15,253,193,94,15,253,193,96,15,253,193,98,15,253,193,100,15,253,193,104,15,253,193,108,15,253,193,110,15,253,193,112,15,253,193,116,15,253,193,122,15,253,193,124,15,253,193,126,15,253,193,128,15,253,193,134,15,253,193,136,15,253,193,138,15,253,193,140,15,253,193,142,15,253,193,150,15,253,193,152,15,253,193,154,15,253,193,156,15,253,193,172,15,253,193,188,15,253,193,190,15,253,193,192,15,253,193,194,15,253,193,196,15,253,193,198,15,253,193,200,15,253,193,208,15,253,193,210,15,253,193,212,15,253,193,214,15,253,193,216,15,253,193,218,15,253,193,228,15,253,193,244,15,253,193,230,15,253,193,232,15,253,193,246,15,253,193,248,15,253,193,16,16,253,193,20,16,253,193,254,15,253,193,44,16,253,193,76,16,253,193,138,16,253,193,140,16,253,193,142,16,253,193,144,16,253,193,146,16,253,193,26,17,253,193,28,17,253,193,30,17,253,193,210,17,253,193,212,17,253,193,214,17,253,193,216,17,253,193,218,17,253,193,220,17,253,193,146,18,253,193,148,18,253,193,150,18,253,193,152,18,253,193,154,18,253,193,156,18,253,193,158,18,253,193,160,18,253,193,68,19,253,193,70,19,253,193,72,19,253,193,74,19,253,193,76,19,253,193,54,20,253,193,56,20,253,193,6,16,253,193,8,16,253,193,50,16,253,193,52,16,253,193,54,16,253,193,60,16,253,193,86,16,253,193,88,16,253,193,90,16,253,193,92,16,253,193,94,16,253,193,96,16,253,193,98,16,253,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,193,22,16,253,193,24,16,253,193,28,16,253,193,30,16,253,193,36,16,253,193,42,16,253,193,46,16,253,193,56,16,253,193,66,16,253,193,68,16,253,193,70,16,253,193,72,16,253,193,74,16,253,193,106,16,253,193,108,16,253,193,110,16,253,193,112,16,253,193,114,16,253,193,116,16,253,193,118,16,253,193,120,16,253,193,122,16,253,193,124,16,253,193,126,16,253,193,128,16,253,193,130,16,253,193,132,16,253,193,134,16,253,193,136,16,253,193,210,16,253,193,212,16,253,193,214,16,253,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,160,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,193,206,16,253,193,208,16,253,193,128,17,253,193,130,17,253,193,132,17,253,193,134,17,253,193,136,17,253,193,138,17,253,193,52,18,253,193,54,18,253,193,56,18,253,193,58,18,253,193,60,18,253,193,62,18,253,193,64,18,253,193,238,18,253,193,240,18,253,193,242,18,253,193,244,18,253,193,178,19,253,193,180,19,253,193,182,19,253,193,184,19,253,193,186,19,253,193,188,19,253,193,190,19,253,193,192,19,253,193,194,19,253,193,196,19,253,193,198,19,253,193,200,19,253,193,202,19,253,193,216,16,253,193,218,16,253,193,220,16,253,193,222,16,253,193,224,16,253,193,226,16,253,193,228,16,253,193,230,16,253,193,232,16,253,193,234,16,253,193,236,16,253,193,238,16,253,193,240,16,253,193,242,16,253,193,244,16,253,193,246,16,253,193,248,16,253,193,250,16,253,193,252,16,253,193,254,16,253,193,2,17,253,193,4,17,253,193,6,17,253,193,8,17,253,193,10,17,253,193,12,17,253,193,14,17,253,193,16,17,253,193,18,17,253,193,140,17,253,193,66,18,253,193,142,17,253,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,206,192,86,0,193,254,17,253,193,126,17,253,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,193,144,17,253,193,146,17,253,193,148,17,253,193,150,17,253,193,152,17,253,193,154,17,253,193,156,17,253,193,158,17,253,193,160,17,253,193,162,17,253,193,164,17,253,193,166,17,253,193,168,17,253,193,170,17,253,193,172,17,253,193,174,17,253,193,176,17,253,193,178,17,253,193,180,17,253,193,182,17,253,193,184,17,253,193,186,17,253,193,188,17,253,193,190,17,253,193,192,17,253,193,194,17,253,193,196,17,253,193,198,17,253,193,200,17,253,193,202,17,253,193,68,18,253,193,70,18,253,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,224,86,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,193,72,18,253,193,74,18,253,193,76,18,253,193,78,18,253,193,80,18,253,193,82,18,253,193,84,18,253,193,86,18,253,193,88,18,253,193,90,18,253,193,92,18,253,193,94,18,253,193,96,18,253,193,98,18,253,193,100,18,253,193,102,18,253,193,104,18,253,193,106,18,253,193,108,18,253,193,110,18,253,193,112,18,253,193,114,18,253,193,116,18,253,193,118,18,253,193,120,18,253,193,122,18,253,193,124,18,253,193,126,18,253,193,128,18,253,193,130,18,253,193,132,18,253,193,134,18,253,193,176,18,253,193,78,19,253,193,80,19,253,193,82,19,253,193,84,19,253,193,86,19,253,193,88,19,253,193,90,19,253,193,92,19,253,193,94,19,253,193,96,19,253,193,98,19,253,193,100,19,253,193,102,19,253,193,104,19,253,193,68,20,253,193,70,20,253,193,72,20,253,193,74,20,253,193,76,20,253,193,248,20,253,193,250,20,253,193,252,20,253,193,254,20,253,193,2,21,253,193,4,21,253,193,6,21,253,193,8,21,253,193,10,21,253,193,12,21,253,193,14,21,253,193,16,21,253,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,206,0,87,0,193,82,20,253,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,206,32,87,0,193,210,19,253,193,212,19,253,193,214,19,253,193,216,19,253,193,218,19,253,193,220,19,253,193,222,19,253,193,224,19,253,193,226,19,253,193,228,19,253,193,230,19,253,193,232,19,253,193,234,19,253,193,236,19,253,193,238,19,253,193,240,19,253,193,242,19,253,193,244,19,253,193,246,19,253,193,248,19,253,193,250,19,253,193,252,19,253,193,254,19,253,193,156,20,253,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,193,116,19,253,193,78,20,253,193,80,20,253,193,182,21,253,193,184,21,253,193,186,21,253,193,92,22,253,193,94,22,253,193,96,22,253,193,34,24,253,193,100,24,253,193,234,24,253,193,254,24,253,193,30,25,253,193,170,25,253,193,172,25,253,193,174,25,253,193,32,26,253,193,104,26,253,193,216,26,253,193,66,27,253,193,176,27,253,193,178,27,253,193,192,27,253,193,194,27,253,193,196,27,253,193,214,27,253,193,220,27,253,193,230,27,253,193,234,27,253,193,238,27,253,193,244,27,253,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,206,64,87,0,193,84,20,253,193,86,20,253,193,88,20,253,193,90,20,253,193,92,20,253,193,94,20,253,193,96,20,253,193,98,20,253,193,100,20,253,193,102,20,253,193,104,20,253,193,106,20,253,193,108,20,253,193,110,20,253,193,112,20,253,193,114,20,253,193,116,20,253,193,118,20,253,193,120,20,253,193,122,20,253,193,124,20,253,193,126,20,253,193,128,20,253,193,130,20,253,193,132,20,253,193,20,21,253,193,22,21,253,193,204,19,253,193,206,19,253,193,208,19,253,193,134,20,253,193,136,20,253,193,138,20,253,193,140,20,253,193,142,20,253,193,144,20,253,193,146,20,253,193,148,20,253,193,150,20,253,193,152,20,253,193,154,20,253,193,64,21,253,193,66,21,253,193,68,21,253,193,70,21,253,193,72,21,253,193,74,21,253,193,226,21,253,193,228,21,253,193,230,21,253,193,232,21,253,193,234,21,253,193,236,21,253,193,238,21,253,193,240,21,253,193,242,21,253,193,244,21,253,193,130,22,253,193,132,22,253,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,96,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,193,44,20,253,193,46,20,253,193,48,20,253,193,50,20,253,193,52,20,253,193,240,20,253,193,242,20,253,193,152,21,253,193,154,21,253,193,156,21,253,193,62,22,253,193,64,22,253,193,66,22,253,193,68,22,253,193,70,22,253,193,72,22,253,193,238,22,253,193,240,22,253,193,242,22,253,193,96,23,253,193,98,23,253,193,182,23,253,193,238,23,253,193,56,24,253,193,76,24,253,193,78,24,253,193,180,24,253,193,252,24,253,193,72,25,253,193,164,25,253,193,222,25,253,193,22,26,253,193,58,20,253,193,60,20,253,193,62,20,253,193,64,20,253,193,66,20,253,193,244,20,253,193,246,20,253,193,158,21,253,193,160,21,253,193,162,21,253,193,74,22,253,193,76,22,253,193,78,22,253,193,80,22,253,193,244,22,253,193,246,22,253,193,100,23,253,193,102,23,253,193,184,23,253,193,186,23,253,193,188,23,253,193,240,23,253,193,242,23,253,193,32,24,253,193,168,24,253,193,212,24,253,193,230,24,253,193,10,25,253,193,120,25,253,193,166,25,253,193,92,26,253,193,94,26,253,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,128,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,193,18,21,253,193,164,21,253,193,166,21,253,193,168,21,253,193,170,21,253,193,172,21,253,193,174,21,253,193,176,21,253,193,178,21,253,193,180,21,253,193,82,22,253,193,84,22,253,193,86,22,253,193,88,22,253,193,90,22,253,193,248,22,253,193,250,22,253,193,252,22,253,193,254,22,253,193,2,23,253,193,4,23,253,193,6,23,253,193,8,23,253,193,104,23,253,193,106,23,253,193,108,23,253,193,110,23,253,193,190,23,253,193,192,23,253,193,244,23,253,193,246,23,253,193,182,24,253,193,24,21,253,193,26,21,253,193,28,21,253,193,30,21,253,193,32,21,253,193,34,21,253,193,36,21,253,193,38,21,253,193,40,21,253,193,42,21,253,193,44,21,253,193,46,21,253,193,48,21,253,193,50,21,253,193,52,21,253,193,54,21,253,193,56,21,253,193,58,21,253,193,60,21,253,193,188,21,253,193,62,21,253,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,206,160,87,0,193,246,21,253,193,248,21,253,193,250,21,253,193,252,21,253,193,254,21,253,193,2,22,253,193,4,22,253,193,6,22,253,193,8,22,253,193,10,22,253,193,12,22,253,193,150,21,253,193,14,22,253,193,16,22,253,193,18,22,253,193,20,22,253,193,142,22,253,193,22,22,253,193,24,22,253,193,26,22,253,193,28,22,253,193,30,22,253,193,32,22,253,193,34,22,253,193,36,22,253,193,38,22,253,193,40,22,253,193,42,22,253,193,44,22,253,193,46,22,253,193,48,22,253,193,50,22,253,193,52,22,253,193,54,22,253,193,56,22,253,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,206,192,87,0,193,98,22,253,193,100,22,253,193,102,22,253,193,104,22,253,193,106,22,253,193,108,22,253,193,110,22,253,193,112,22,253,193,114,22,253,193,116,22,253,193,118,22,253,193,120,22,253,193,122,22,253,193,124,22,253,193,224,21,253,193,126,22,253,193,10,23,253,193,12,23,253,193,14,23,253,193,16,23,253,193,18,23,253,193,20,23,253,193,22,23,253,193,24,23,253,193,26,23,253,193,28,23,253,193,58,22,253,193,60,22,253,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,193,134,22,253,193,136,22,253,193,138,22,253,193,140,22,253,193,36,23,253,193,38,23,253,193,124,23,253,193,126,23,253,193,128,23,253,193,130,23,253,193,206,23,253,193,2,24,253,193,42,24,253,193,44,24,253,193,64,24,253,193,66,24,253,193,90,24,253,193,112,24,253,193,152,24,253,193,160,24,253,193,172,24,253,193,190,24,253,193,192,24,253,193,58,25,253,193,60,25,253,193,86,25,253,193,88,25,253,193,90,25,253,193,132,25,253,193,134,25,253,193,136,25,253,193,138,25,253,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,224,87,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,193,30,23,253,193,32,23,253,193,34,23,253,193,112,23,253,193,114,23,253,193,116,23,253,193,118,23,253,193,120,23,253,193,122,23,253,193,194,23,253,193,196,23,253,193,198,23,253,193,200,23,253,193,202,23,253,193,204,23,253,193,248,23,253,193,250,23,253,193,252,23,253,193,254,23,253,193,36,24,253,193,38,24,253,193,58,24,253,193,60,24,253,193,62,24,253,193,80,24,253,193,82,24,253,193,84,24,253,193,86,24,253,193,88,24,253,193,40,24,253,193,136,24,253,193,138,24,253,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,206,0,88,0,193,132,23,253,193,134,23,253,193,136,23,253,193,138,23,253,193,140,23,253,193,142,23,253,193,144,23,253,193,146,23,253,193,148,23,253,193,150,23,253,193,208,23,253,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,206,32,88,0,193,210,23,253,193,212,23,253,193,214,23,253,193,216,23,253,193,218,23,253,193,220,23,253,193,222,23,253,193,224,23,253,193,226,23,253,193,228,23,253,193,230,23,253,193,4,24,253,193,232,23,253,193,234,23,253,193,236,23,253,193,6,24,253,193,8,24,253,193,10,24,253,193,12,24,253,193,14,24,253,193,16,24,253,193,18,24,253,193,20,24,253,193,22,24,253,193,24,24,253,193,26,24,253,193,28,24,253,193,30,24,253,193,46,24,253,193,48,24,253,193,50,24,253,193,52,24,253,193,54,24,253,193,68,24,253,193,70,24,253,193,72,24,253,193,74,24,253,193,92,24,253,193,94,24,253,193,96,24,253,193,98,24,253,193,102,24,253,193,104,24,253,193,106,24,253,193,108,24,253,193,110,24,253,193,114,24,253,193,116,24,253,193,118,24,253,193,120,24,253,193,122,24,253,193,124,24,253,193,126,24,253,193,128,24,253,193,130,24,253,193,132,24,253,193,134,24,253,193,142,24,253,193,144,24,253,193,146,24,253,193,148,24,253,193,154,24,253,193,156,24,253,193,158,24,253,193,162,24,253,193,164,24,253,193,166,24,253,193,174,24,253,193,176,24,253,193,178,24,253,193,194,24,253,193,196,24,253,193,208,24,253,193,210,24,253,193,214,24,253,193,216,24,253,193,218,24,253,193,220,24,253,193,222,24,253,193,224,24,253,193,226,24,253,193,228,24,253,193,236,24,253,193,238,24,253,193,240,24,253,193,246,24,253,193,248,24,253,193,250,24,253,193,2,25,253,193,184,24,253,193,200,24,253,193,202,24,253,193,204,24,253,193,232,24,253,193,242,24,253,193,244,24,253,193,18,25,253,193,22,25,253,193,26,25,253,193,28,25,253,193,34,25,253,193,40,25,253,193,122,25,253,193,168,25,253,193,224,25,253,193,226,25,253,193,228,25,253,193,26,26,253,193,28,26,253,193,30,26,253,193,98,26,253,193,100,26,253,193,102,26,253,193,172,26,253,193,214,26,253,193,36,27,253,193,38,27,253,193,40,27,253,193,42,27,253,193,64,27,253,193,248,27,253,193,6,25,253,193,8,25,253,193,16,25,253,193,20,25,253,193,24,25,253,193,38,25,253,193,44,25,253,193,46,25,253,193,52,25,253,193,62,25,253,193,64,25,253,193,66,25,253,193,68,25,253,193,70,25,253,193,92,25,253,193,94,25,253,193,96,25,253,193,98,25,253,193,100,25,253,193,102,25,253,193,104,25,253,193,106,25,253,193,108,25,253,193,110,25,253,193,112,25,253,193,114,25,253,193,116,25,253,193,118,25,253,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,206,64,88,0,193,184,25,253,193,186,25,253,193,188,25,253,193,190,25,253,193,192,25,253,193,194,25,253,193,196,25,253,193,198,25,253,193,200,25,253,193,202,25,253,193,204,25,253,193,206,25,253,193,208,25,253,193,210,25,253,193,212,25,253,193,214,25,253,193,216,25,253,193,218,25,253,193,220,25,253,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,193,180,25,253,193,182,25,253,193,240,25,253,193,242,25,253,193,42,26,253,193,44,26,253,193,116,26,253,193,118,26,253,193,120,26,253,193,122,26,253,193,184,26,253,193,186,26,253,193,188,26,253,193,226,26,253,193,228,26,253,193,10,27,253,193,12,27,253,193,14,27,253,193,16,27,253,193,18,27,253,193,72,27,253,193,132,27,253,193,140,27,253,193,34,28,253,193,162,28,253,193,164,28,253,193,166,28,253,193,206,28,253,193,252,28,253,193,254,28,253,193,2,29,253,193,4,29,253,193,236,25,253,193,238,25,253,193,34,26,253,193,36,26,253,193,38,26,253,193,40,26,253,193,106,26,253,193,108,26,253,193,110,26,253,193,112,26,253,193,114,26,253,193,174,26,253,193,176,26,253,193,178,26,253,193,180,26,253,193,182,26,253,193,218,26,253,193,220,26,253,193,222,26,253,193,224,26,253,193,254,26,253,193,2,27,253,193,4,27,253,193,6,27,253,193,8,27,253,193,44,27,253,193,46,27,253,193,48,27,253,193,68,27,253,193,70,27,253,193,84,27,253,193,86,27,253,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,206,96,88,0,193,46,26,253,193,48,26,253,193,50,26,253,193,52,26,253,193,54,26,253,193,56,26,253,193,58,26,253,193,60,26,253,193,62,26,253,193,64,26,253,193,66,26,253,193,68,26,253,193,70,26,253,193,72,26,253,193,74,26,253,193,76,26,253,193,78,26,253,193,80,26,253,193,82,26,253,193,84,26,253,193,86,26,253,193,24,26,253,193,90,26,253,193,168,26,253,193,170,26,253,193,250,26,253,193,62,27,253,193,128,27,253,193,130,27,253,193,166,27,253,193,168,27,253,193,182,27,253,193,206,27,253,193,226,27,253,193,236,27,253,193,182,28,253,193,184,28,253,193,104,29,253,193,106,29,253,193,154,30,253,193,156,30,253,193,90,31,253,193,92,31,253,193,54,32,253,193,56,32,253,193,58,32,253,193,60,32,253,193,40,33,253,193,42,33,253,193,34,34,253,193,36,34,253,193,38,34,253,193,60,35,253,193,88,26,253,193,124,26,253,193,126,26,253,193,128,26,253,193,130,26,253,193,132,26,253,193,134,26,253,193,136,26,253,193,138,26,253,193,140,26,253,193,142,26,253,193,144,26,253,193,146,26,253,193,148,26,253,193,150,26,253,193,152,26,253,193,154,26,253,193,156,26,253,193,158,26,253,193,160,26,253,193,162,26,253,193,164,26,253,193,166,26,253,193,190,26,253,193,192,26,253,193,194,26,253,193,196,26,253,193,198,26,253,193,200,26,253,193,202,26,253,193,204,26,253,193,206,26,253,193,96,26,253,193,212,26,253,193,252,26,253,193,32,27,253,193,34,27,253,193,82,27,253,193,104,27,253,193,152,27,253,193,170,27,253,193,172,27,253,193,174,27,253,193,184,27,253,193,190,27,253,193,186,27,253,193,202,27,253,193,208,27,253,193,210,27,253,193,212,27,253,193,218,27,253,193,228,27,253,193,232,27,253,193,132,28,253,193,186,28,253,193,232,28,253,193,54,29,253,193,238,29,253,193,76,30,253,193,78,30,253,193,158,30,253,193,160,30,253,193,162,30,253,193,94,31,253,193,208,26,253,193,210,26,253,193,230,26,253,193,232,26,253,193,234,26,253,193,236,26,253,193,238,26,253,193,240,26,253,193,242,26,253,193,244,26,253,193,246,26,253,193,248,26,253,193,20,27,253,193,22,27,253,193,24,27,253,193,26,27,253,193,28,27,253,193,30,27,253,193,50,27,253,193,52,27,253,193,54,27,253,193,56,27,253,193,58,27,253,193,60,27,253,193,74,27,253,193,76,27,253,193,78,27,253,193,80,27,253,193,90,27,253,193,92,27,253,193,94,27,253,193,96,27,253,193,98,27,253,193,100,27,253,193,106,27,253,193,108,27,253,193,110,27,253,193,112,27,253,193,116,27,253,193,118,27,253,193,120,27,253,193,122,27,253,193,124,27,253,193,126,27,253,193,134,27,253,193,136,27,253,193,138,27,253,193,142,27,253,193,144,27,253,193,146,27,253,193,242,27,253,193,246,27,253,193,2,28,253,193,4,28,253,193,6,28,253,193,10,28,253,193,12,28,253,193,14,28,253,193,16,28,253,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,193,250,27,253,193,18,28,253,193,20,28,253,193,80,28,253,193,82,28,253,193,84,28,253,193,86,28,253,193,88,28,253,193,90,28,253,193,134,28,253,193,136,28,253,193,188,28,253,193,190,28,253,193,192,28,253,193,194,28,253,193,196,28,253,193,234,28,253,193,236,28,253,193,238,28,253,193,56,29,253,193,154,29,253,193,156,29,253,193,216,29,253,193,80,30,253,193,82,30,253,193,164,30,253,193,166,30,253,193,98,31,253,193,100,31,253,193,102,31,253,193,104,31,253,193,66,32,253,193,8,28,253,193,22,28,253,193,138,28,253,193,140,28,253,193,240,28,253,193,242,28,253,193,218,29,253,193,52,30,253,193,84,30,253,193,86,30,253,193,106,31,253,193,84,32,253,193,86,32,253,193,72,33,253,193,74,33,253,193,76,33,253,193,78,33,253,193,80,33,253,193,82,33,253,193,84,33,253,193,86,33,253,193,88,33,253,193,90,33,253,193,92,33,253,193,94,33,253,193,64,34,253,193,66,34,253,193,68,34,253,193,96,35,253,193,98,35,253,193,84,36,253,193,86,36,253,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,206,128,88,0,193,100,28,253,193,102,28,253,193,104,28,253,193,106,28,253,193,108,28,253,193,110,28,253,193,112,28,253,193,114,28,253,193,116,28,253,193,118,28,253,193,120,28,253,193,122,28,253,193,124,28,253,193,126,28,253,193,128,28,253,193,130,28,253,193,168,28,253,193,170,28,253,193,172,28,253,193,174,28,253,193,176,28,253,193,178,28,253,193,180,28,253,193,208,28,253,193,210,28,253,193,212,28,253,193,214,28,253,193,216,28,253,193,218,28,253,193,220,28,253,193,222,28,253,193,224,28,253,193,226,28,253,193,228,28,253,193,230,28,253,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,193,146,28,253,193,148,28,253,193,150,28,253,193,152,28,253,193,154,28,253,193,156,28,253,193,158,28,253,193,160,28,253,193,198,28,253,193,200,28,253,193,202,28,253,193,204,28,253,193,244,28,253,193,246,28,253,193,248,28,253,193,250,28,253,193,58,29,253,193,60,29,253,193,108,29,253,193,110,29,253,193,158,29,253,193,186,29,253,193,188,29,253,193,220,29,253,193,222,29,253,193,224,29,253,193,240,29,253,193,250,29,253,193,252,29,253,193,10,30,253,193,12,30,253,193,22,30,253,193,6,29,253,193,62,29,253,193,64,29,253,193,66,29,253,193,68,29,253,193,112,29,253,193,114,29,253,193,162,29,253,193,190,29,253,193,192,29,253,193,226,29,253,193,228,29,253,193,194,29,253,193,24,30,253,193,68,30,253,193,70,30,253,193,72,30,253,193,124,30,253,193,126,30,253,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,206,160,88,0,193,70,29,253,193,72,29,253,193,74,29,253,193,76,29,253,193,78,29,253,193,80,29,253,193,82,29,253,193,84,29,253,193,86,29,253,193,88,29,253,193,90,29,253,193,92,29,253,193,94,29,253,193,96,29,253,193,98,29,253,193,100,29,253,193,116,29,253,193,118,29,253,193,120,29,253,193,122,29,253,193,124,29,253,193,126,29,253,193,128,29,253,193,102,29,253,193,130,29,253,193,132,29,253,193,134,29,253,193,136,29,253,193,138,29,253,193,140,29,253,193,142,29,253,193,144,29,253,193,146,29,253,193,148,29,253,193,150,29,253,193,152,29,253,193,164,29,253,193,166,29,253,193,168,29,253,193,170,29,253,193,172,29,253,193,174,29,253,193,176,29,253,193,178,29,253,193,180,29,253,193,182,29,253,193,184,29,253,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,193,160,29,253,193,66,199,253,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,192,88,0,206,192,88,0,206,192,88,0,206,192,88,0,193,230,29,253,193,232,29,253,193,234,29,253,193,236,29,253,193,242,29,253,193,244,29,253,193,246,29,253,193,248,29,253,193,254,29,253,193,2,30,253,193,4,30,253,193,6,30,253,193,8,30,253,193,14,30,253,193,16,30,253,193,18,30,253,193,20,30,253,193,26,30,253,193,28,30,253,193,30,30,253,193,32,30,253,193,34,30,253,193,36,30,253,193,42,30,253,193,44,30,253,193,46,30,253,193,48,30,253,193,50,30,253,193,38,30,253,193,40,30,253,193,54,30,253,193,56,30,253,193,58,30,253,193,60,30,253,193,62,30,253,193,64,30,253,193,66,30,253,193,88,30,253,193,90,30,253,193,92,30,253,193,94,30,253,193,96,30,253,193,98,30,253,193,100,30,253,193,102,30,253,193,104,30,253,193,106,30,253,193,108,30,253,193,110,30,253,193,112,30,253,193,114,30,253,193,116,30,253,193,118,30,253,193,120,30,253,193,122,30,253,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,193,74,30,253,193,128,30,253,193,130,30,253,193,132,30,253,193,134,30,253,193,136,30,253,193,138,30,253,193,140,30,253,193,142,30,253,193,144,30,253,193,146,30,253,193,148,30,253,193,150,30,253,193,152,30,253,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,206,224,88,0,193,108,31,253,193,110,31,253,193,112,31,253,193,114,31,253,193,116,31,253,193,118,31,253,193,120,31,253,193,122,31,253,193,124,31,253,193,126,31,253,193,128,31,253,193,130,31,253,206,0,89,0,206,0,89,0,206,0,89,0,206,0,89,0,193,198,31,253,193,200,31,253,193,202,31,253,193,204,31,253,193,206,31,253,193,208,31,253,193,210,31,253,193,212,31,253,193,214,31,253,193,216,31,253,193,218,31,253,193,220,31,253,193,222,31,253,193,224,31,253,193,226,31,253,193,228,31,253,193,176,32,253,193,178,32,253,193,180,32,253,193,182,32,253,193,184,32,253,193,186,32,253,193,188,32,253,193,190,32,253,193,192,32,253,193,166,33,253,193,168,33,253,193,170,33,253,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,206,32,89,0,193,230,31,253,193,232,31,253,193,234,31,253,193,236,31,253,193,96,31,253,193,62,32,253,193,64,32,253,193,44,33,253,193,46,33,253,193,48,33,253,193,50,33,253,193,52,33,253,193,54,33,253,193,56,33,253,193,40,34,253,193,42,34,253,193,44,34,253,193,46,34,253,193,64,35,253,193,66,35,253,193,68,35,253,193,70,35,253,193,72,35,253,193,74,35,253,193,52,36,253,193,54,36,253,193,56,36,253,193,58,36,253,193,60,36,253,193,62,36,253,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,193,132,31,253,193,134,31,253,193,136,31,253,193,138,31,253,193,140,31,253,193,142,31,253,193,144,31,253,193,146,31,253,193,148,31,253,193,150,31,253,193,152,31,253,193,154,31,253,193,156,31,253,193,158,31,253,193,160,31,253,193,162,31,253,193,164,31,253,193,166,31,253,193,168,31,253,193,170,31,253,193,172,31,253,193,174,31,253,193,176,31,253,193,178,31,253,193,180,31,253,193,182,31,253,193,184,31,253,193,186,31,253,193,188,31,253,193,190,31,253,193,192,31,253,193,194,31,253,193,196,31,253,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,193,238,31,253,193,240,31,253,193,242,31,253,193,244,31,253,193,246,31,253,193,248,31,253,193,250,31,253,193,252,31,253,193,254,31,253,193,2,32,253,193,4,32,253,193,6,32,253,193,8,32,253,193,10,32,253,193,12,32,253,193,14,32,253,193,16,32,253,193,18,32,253,193,20,32,253,193,22,32,253,193,24,32,253,193,26,32,253,193,28,32,253,193,30,32,253,193,32,32,253,193,34,32,253,193,36,32,253,193,38,32,253,193,40,32,253,193,42,32,253,193,44,32,253,193,46,32,253,193,48,32,253,193,50,32,253,193,52,32,253,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,193,68,32,253,193,70,32,253,193,72,32,253,193,74,32,253,193,76,32,253,193,78,32,253,193,80,32,253,193,82,32,253,193,58,33,253,193,60,33,253,193,62,33,253,193,64,33,253,193,66,33,253,193,68,33,253,193,70,33,253,193,48,34,253,193,50,34,253,193,52,34,253,193,54,34,253,193,56,34,253,193,58,34,253,193,60,34,253,193,62,34,253,193,76,35,253,193,78,35,253,193,80,35,253,193,82,35,253,193,84,35,253,193,86,35,253,193,88,35,253,193,90,35,253,193,92,35,253,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,206,64,89,0,193,96,33,253,193,98,33,253,193,100,33,253,193,102,33,253,193,104,33,253,193,106,33,253,193,108,33,253,193,110,33,253,193,112,33,253,193,114,33,253,193,116,33,253,193,118,33,253,193,120,33,253,193,122,33,253,193,124,33,253,193,126,33,253,193,128,33,253,193,130,33,253,193,132,33,253,193,134,33,253,193,136,33,253,193,172,32,253,193,138,33,253,193,140,33,253,193,142,33,253,193,144,33,253,193,146,33,253,193,148,33,253,193,150,33,253,193,152,33,253,193,154,33,253,193,156,33,253,193,158,33,253,193,160,33,253,193,162,33,253,193,164,33,253,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,96,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,206,128,89,0,193,38,33,253,193,16,34,253,193,18,34,253,193,20,34,253,193,172,33,253,193,174,33,253,193,176,33,253,193,178,33,253,193,180,33,253,193,182,33,253,193,184,33,253,193,186,33,253,193,188,33,253,193,160,34,253,193,162,34,253,193,164,34,253,193,166,34,253,193,168,34,253,193,170,34,253,193,172,34,253,193,174,34,253,193,176,34,253,193,178,34,253,193,180,34,253,193,182,34,253,193,184,34,253,193,186,34,253,193,188,34,253,193,190,34,253,193,180,35,253,193,182,35,253,193,184,35,253,193,186,35,253,193,188,35,253,193,156,36,253,193,158,36,253,193,22,34,253,193,24,34,253,193,26,34,253,193,28,34,253,193,30,34,253,193,32,34,253,193,192,34,253,193,194,34,253,193,196,34,253,193,198,34,253,193,200,34,253,193,202,34,253,193,204,34,253,193,206,34,253,193,208,34,253,193,210,34,253,193,212,34,253,193,214,34,253,193,216,34,253,193,218,34,253,193,220,34,253,193,222,34,253,193,224,34,253,193,226,34,253,193,228,34,253,193,230,34,253,193,232,34,253,193,234,34,253,193,236,34,253,193,238,34,253,193,240,34,253,193,242,34,253,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,160,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,206,192,89,0,193,158,34,253,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,193,244,34,253,193,246,34,253,193,248,34,253,193,250,34,253,193,252,34,253,193,254,34,253,193,2,35,253,193,4,35,253,193,6,35,253,193,8,35,253,193,10,35,253,193,12,35,253,193,14,35,253,193,16,35,253,193,18,35,253,193,20,35,253,193,22,35,253,193,24,35,253,193,26,35,253,193,28,35,253,193,30,35,253,193,32,35,253,193,34,35,253,193,36,35,253,193,38,35,253,193,40,35,253,193,42,35,253,193,44,35,253,193,46,35,253,193,48,35,253,193,50,35,253,193,52,35,253,193,54,35,253,193,56,35,253,193,58,35,253,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,193,62,35,253,193,42,36,253,193,44,36,253,193,46,36,253,193,48,36,253,193,50,36,253,193,30,37,253,193,32,37,253,193,34,37,253,193,232,37,253,193,234,37,253,193,236,37,253,193,238,37,253,193,164,38,253,193,166,38,253,193,168,38,253,193,54,39,253,193,56,39,253,193,156,39,253,193,64,40,253,193,108,40,253,193,110,40,253,193,112,40,253,193,154,40,253,193,180,40,253,193,230,40,253,193,18,41,253,193,20,41,253,193,84,41,253,193,86,41,253,193,88,41,253,193,90,41,253,193,94,35,253,193,64,36,253,193,66,36,253,193,68,36,253,193,70,36,253,193,72,36,253,193,74,36,253,193,76,36,253,193,78,36,253,193,80,36,253,193,82,36,253,193,58,37,253,193,60,37,253,193,62,37,253,193,64,37,253,193,66,37,253,193,242,37,253,193,244,37,253,193,246,37,253,193,248,37,253,193,250,37,253,193,252,37,253,193,254,37,253,193,2,38,253,193,4,38,253,193,178,38,253,193,180,38,253,193,182,38,253,193,184,38,253,193,186,38,253,193,62,39,253,193,64,39,253,206,224,89,0,206,224,89,0,206,224,89,0,206,224,89,0,193,94,36,253,193,96,36,253,193,98,36,253,193,100,36,253,193,102,36,253,193,104,36,253,193,106,36,253,193,108,36,253,193,110,36,253,193,112,36,253,193,114,36,253,193,116,36,253,193,118,36,253,193,120,36,253,193,122,36,253,193,124,36,253,193,126,36,253,193,128,36,253,193,130,36,253,193,132,36,253,193,134,36,253,193,136,36,253,193,138,36,253,193,140,36,253,193,142,36,253,193,144,36,253,193,146,36,253,193,148,36,253,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,0,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,193,88,36,253,193,90,36,253,193,92,36,253,193,68,37,253,193,70,37,253,193,6,38,253,193,188,38,253,193,190,38,253,193,192,38,253,193,174,39,253,193,204,40,253,193,236,40,253,193,238,40,253,193,34,41,253,193,36,41,253,193,38,41,253,193,40,41,253,193,42,41,253,193,44,41,253,193,114,41,253,193,116,41,253,193,118,41,253,193,120,41,253,193,122,41,253,193,124,41,253,193,126,41,253,193,128,41,253,193,130,41,253,193,132,41,253,193,134,41,253,193,136,41,253,193,138,41,253,193,150,36,253,193,152,36,253,193,154,36,253,193,72,37,253,193,74,37,253,193,76,37,253,193,78,37,253,193,80,37,253,193,82,37,253,193,84,37,253,193,86,37,253,193,88,37,253,193,90,37,253,193,92,37,253,193,94,37,253,193,96,37,253,193,98,37,253,193,100,37,253,193,102,37,253,193,104,37,253,193,106,37,253,193,108,37,253,193,110,37,253,193,112,37,253,193,114,37,253,193,116,37,253,193,118,37,253,193,120,37,253,193,122,37,253,193,124,37,253,193,126,37,253,193,8,38,253,193,160,36,253,193,162,36,253,193,164,36,253,193,128,37,253,193,130,37,253,193,132,37,253,193,134,37,253,193,136,37,253,193,138,37,253,193,140,37,253,193,142,37,253,193,68,38,253,193,70,38,253,193,72,38,253,193,74,38,253,193,76,38,253,193,78,38,253,193,80,38,253,193,240,38,253,193,242,38,253,193,244,38,253,193,246,38,253,193,248,38,253,193,250,38,253,193,252,38,253,193,94,39,253,193,96,39,253,193,98,39,253,193,100,39,253,193,102,39,253,193,104,39,253,193,192,39,253,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,32,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,206,64,90,0,193,240,37,253,193,170,38,253,193,172,38,253,193,174,38,253,193,176,38,253,193,58,39,253,193,60,39,253,193,158,39,253,193,160,39,253,193,162,39,253,193,164,39,253,193,166,39,253,193,168,39,253,193,4,40,253,193,6,40,253,193,8,40,253,193,66,40,253,193,114,40,253,193,186,40,253,193,188,40,253,193,232,40,253,193,234,40,253,193,24,41,253,193,26,41,253,193,28,41,253,193,30,41,253,193,32,41,253,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,206,96,90,0,193,82,38,253,193,84,38,253,193,10,38,253,193,12,38,253,193,14,38,253,193,16,38,253,193,18,38,253,193,20,38,253,193,22,38,253,193,24,38,253,193,26,38,253,193,28,38,253,193,30,38,253,193,32,38,253,193,34,38,253,193,194,38,253,193,36,38,253,193,38,38,253,193,40,38,253,193,42,38,253,193,44,38,253,193,46,38,253,193,48,38,253,193,50,38,253,193,52,38,253,193,54,38,253,193,56,38,253,193,58,38,253,193,60,38,253,193,62,38,253,193,64,38,253,193,196,38,253,193,198,38,253,193,200,38,253,193,86,38,253,193,88,38,253,193,90,38,253,193,92,38,253,193,94,38,253,193,96,38,253,193,98,38,253,193,100,38,253,193,102,38,253,193,104,38,253,193,106,38,253,193,108,38,253,193,110,38,253,193,112,38,253,193,114,38,253,193,116,38,253,193,118,38,253,193,120,38,253,193,122,38,253,193,124,38,253,193,126,38,253,193,128,38,253,193,130,38,253,193,132,38,253,193,134,38,253,193,136,38,253,193,138,38,253,193,140,38,253,193,142,38,253,193,144,38,253,193,146,38,253,193,148,38,253,193,150,38,253,193,152,38,253,193,154,38,253,193,156,38,253,193,158,38,253,193,160,38,253,193,162,38,253,193,254,38,253,193,2,39,253,193,4,39,253,193,6,39,253,193,8,39,253,193,10,39,253,193,12,39,253,193,14,39,253,193,16,39,253,193,18,39,253,193,20,39,253,193,22,39,253,193,24,39,253,193,26,39,253,193,28,39,253,193,30,39,253,193,32,39,253,193,34,39,253,193,36,39,253,193,38,39,253,193,40,39,253,193,42,39,253,193,44,39,253,193,46,39,253,193,48,39,253,193,202,38,253,193,204,38,253,193,206,38,253,193,208,38,253,193,210,38,253,193,212,38,253,193,214,38,253,193,216,38,253,193,218,38,253,193,220,38,253,193,222,38,253,193,224,38,253,193,226,38,253,193,228,38,253,193,230,38,253,193,232,38,253,193,234,38,253,193,236,38,253,193,238,38,253,193,72,39,253,193,74,39,253,193,76,39,253,193,78,39,253,193,80,39,253,193,82,39,253,193,84,39,253,193,86,39,253,193,88,39,253,193,90,39,253,193,92,39,253,193,176,39,253,193,178,39,253,193,50,39,253,193,52,39,253,193,106,39,253,193,108,39,253,193,110,39,253,193,112,39,253,193,114,39,253,193,116,39,253,193,118,39,253,193,120,39,253,193,122,39,253,193,124,39,253,193,126,39,253,193,128,39,253,193,130,39,253,193,132,39,253,193,134,39,253,193,198,39,253,193,136,39,253,193,138,39,253,193,140,39,253,193,142,39,253,193,144,39,253,193,146,39,253,193,148,39,253,193,150,39,253,193,152,39,253,193,154,39,253,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,193,66,39,253,193,68,39,253,193,70,39,253,193,170,39,253,193,172,39,253,193,10,40,253,193,12,40,253,193,68,40,253,193,138,40,253,193,34,42,253,193,92,43,253,193,144,43,253,193,196,43,253,193,220,43,253,193,232,43,253,193,254,43,253,193,18,44,253,193,68,44,253,193,132,44,253,193,170,44,253,193,172,44,253,193,228,44,253,193,18,45,253,193,40,45,253,193,70,45,253,193,80,45,253,193,128,45,253,193,182,45,253,193,214,45,253,193,216,45,253,193,218,45,253,193,8,46,253,193,180,39,253,193,182,39,253,193,184,39,253,193,186,39,253,193,188,39,253,193,190,39,253,193,14,40,253,193,16,40,253,193,18,40,253,193,20,40,253,193,22,40,253,193,24,40,253,193,26,40,253,193,28,40,253,193,30,40,253,193,32,40,253,193,34,40,253,193,70,40,253,193,72,40,253,193,74,40,253,193,76,40,253,193,78,40,253,193,80,40,253,193,116,40,253,193,118,40,253,193,120,40,253,193,140,40,253,193,142,40,253,193,156,40,253,193,158,40,253,193,160,40,253,193,182,40,253,193,194,39,253,193,196,39,253,193,36,40,253,193,16,41,253,193,190,41,253,193,94,42,253,193,234,42,253,193,236,42,253,193,34,43,253,193,146,43,253,193,164,43,253,193,172,43,253,193,198,43,253,193,200,43,253,193,226,43,253,193,236,43,253,193,30,44,253,193,44,44,253,193,80,44,253,193,92,44,253,193,110,44,253,193,120,44,253,193,142,44,253,193,156,44,253,193,158,44,253,193,160,44,253,193,182,44,253,193,208,44,253,193,210,44,253,193,212,44,253,193,214,44,253,193,216,44,253,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,128,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,206,160,90,0,193,84,40,253,193,86,40,253,193,88,40,253,193,90,40,253,193,92,40,253,193,94,40,253,193,96,40,253,193,98,40,253,193,100,40,253,193,102,40,253,193,104,40,253,193,106,40,253,193,122,40,253,193,124,40,253,193,126,40,253,193,128,40,253,193,130,40,253,193,132,40,253,193,134,40,253,193,136,40,253,193,144,40,253,193,146,40,253,193,148,40,253,193,150,40,253,193,152,40,253,193,162,40,253,193,164,40,253,193,192,40,253,193,194,40,253,193,196,40,253,193,198,40,253,193,200,40,253,193,202,40,253,193,206,40,253,193,208,40,253,193,210,40,253,193,212,40,253,193,214,40,253,193,216,40,253,193,218,40,253,193,220,40,253,193,222,40,253,193,224,40,253,193,226,40,253,193,228,40,253,193,240,40,253,193,242,40,253,193,244,40,253,193,246,40,253,193,248,40,253,193,250,40,253,193,252,40,253,193,254,40,253,193,2,41,253,193,4,41,253,193,6,41,253,193,8,41,253,193,10,41,253,193,12,41,253,193,14,41,253,193,46,41,253,193,48,41,253,193,50,41,253,193,52,41,253,193,54,41,253,193,56,41,253,193,58,41,253,193,60,41,253,193,62,41,253,193,64,41,253,193,66,41,253,193,68,41,253,193,70,41,253,193,72,41,253,193,74,41,253,193,76,41,253,193,78,41,253,193,80,41,253,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,193,92,41,253,193,94,41,253,193,192,41,253,193,194,41,253,193,196,41,253,193,198,41,253,193,200,41,253,193,8,42,253,193,10,42,253,193,12,42,253,193,14,42,253,193,96,42,253,193,98,42,253,193,100,42,253,193,102,42,253,193,186,42,253,193,188,42,253,193,190,42,253,193,192,42,253,193,194,42,253,193,196,42,253,193,238,42,253,193,240,42,253,193,242,42,253,193,244,42,253,193,36,43,253,193,38,43,253,193,70,43,253,193,72,43,253,193,110,43,253,193,124,43,253,193,140,43,253,193,98,41,253,193,100,41,253,193,102,41,253,193,104,41,253,193,106,41,253,193,108,41,253,193,110,41,253,193,112,41,253,193,202,41,253,193,204,41,253,193,206,41,253,193,208,41,253,193,210,41,253,193,212,41,253,193,214,41,253,193,216,41,253,193,218,41,253,193,220,41,253,193,222,41,253,193,224,41,253,193,16,42,253,193,18,42,253,193,20,42,253,193,22,42,253,193,24,42,253,193,26,42,253,193,28,42,253,193,30,42,253,193,32,42,253,193,108,42,253,193,110,42,253,193,112,42,253,193,140,41,253,193,142,41,253,193,226,41,253,193,228,41,253,193,230,41,253,193,232,41,253,193,234,41,253,193,36,42,253,193,38,42,253,193,40,42,253,193,42,42,253,193,44,42,253,193,46,42,253,193,48,42,253,193,50,42,253,193,52,42,253,193,128,42,253,193,130,42,253,193,132,42,253,193,134,42,253,193,136,42,253,193,138,42,253,193,140,42,253,193,142,42,253,193,144,42,253,193,10,43,253,193,12,43,253,193,14,43,253,193,16,43,253,193,18,43,253,193,20,43,253,193,22,43,253,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,206,192,90,0,193,236,41,253,193,238,41,253,193,240,41,253,193,242,41,253,193,244,41,253,193,246,41,253,193,248,41,253,193,250,41,253,193,252,41,253,193,254,41,253,193,2,42,253,193,4,42,253,193,6,42,253,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,206,224,90,0,193,146,42,253,193,148,42,253,193,150,42,253,193,152,42,253,193,154,42,253,193,156,42,253,193,158,42,253,193,160,42,253,193,162,42,253,193,164,42,253,193,166,42,253,193,168,42,253,193,170,42,253,193,172,42,253,193,174,42,253,193,176,42,253,193,178,42,253,193,180,42,253,193,182,42,253,193,184,42,253,193,216,42,253,193,104,42,253,193,106,42,253,193,246,42,253,193,222,66,253,193,204,76,253,193,116,77,253,193,160,77,253,193,206,78,253,193,62,83,253,193,64,83,253,193,224,85,253,193,132,88,253,193,64,90,253,193,208,90,253,193,212,94,253,193,104,98,253,193,38,102,253,193,12,108,253,193,104,114,253,193,138,114,253,193,230,114,253,193,232,114,253,193,108,115,253,193,110,115,253,193,4,116,253,193,6,116,253,193,8,116,253,193,10,116,253,193,124,116,253,193,250,116,253,193,94,117,253,193,96,117,253,193,114,42,253,193,116,42,253,193,118,42,253,193,120,42,253,193,122,42,253,193,124,42,253,193,126,42,253,193,198,42,253,193,200,42,253,193,202,42,253,193,204,42,253,193,206,42,253,193,208,42,253,193,210,42,253,193,212,42,253,193,214,42,253,193,248,42,253,193,250,42,253,193,252,42,253,193,254,42,253,193,2,43,253,193,4,43,253,193,6,43,253,193,8,43,253,193,40,43,253,193,42,43,253,193,44,43,253,193,46,43,253,193,48,43,253,193,74,43,253,193,76,43,253,193,78,43,253,193,218,42,253,193,220,42,253,193,222,42,253,193,224,42,253,193,226,42,253,193,228,42,253,193,230,42,253,193,232,42,253,193,24,43,253,193,26,43,253,193,28,43,253,193,30,43,253,193,32,43,253,193,58,43,253,193,60,43,253,193,62,43,253,193,64,43,253,193,66,43,253,193,68,43,253,193,104,43,253,193,106,43,253,193,108,43,253,193,150,43,253,193,160,43,253,193,170,43,253,193,180,43,253,193,182,43,253,193,184,43,253,193,212,43,253,193,224,43,253,193,234,43,253,193,24,44,253,193,50,43,253,193,52,43,253,193,54,43,253,193,56,43,253,193,94,43,253,193,96,43,253,193,98,43,253,193,100,43,253,193,102,43,253,193,118,43,253,193,120,43,253,193,122,43,253,193,134,43,253,193,136,43,253,193,138,43,253,193,154,43,253,193,168,43,253,193,208,43,253,193,210,43,253,193,222,43,253,193,2,44,253,193,20,44,253,193,22,44,253,193,94,44,253,193,118,44,253,193,134,44,253,193,136,44,253,193,152,44,253,193,174,44,253,193,206,44,253,193,254,44,253,193,20,45,253,193,80,43,253,193,82,43,253,193,84,43,253,193,86,43,253,193,88,43,253,193,90,43,253,193,112,43,253,193,114,43,253,193,116,43,253,193,126,43,253,193,128,43,253,193,130,43,253,193,132,43,253,193,142,43,253,193,148,43,253,193,152,43,253,193,156,43,253,193,158,43,253,193,206,43,253,193,252,43,253,193,16,44,253,193,40,44,253,193,116,44,253,193,150,44,253,193,38,45,253,193,60,45,253,193,88,45,253,193,126,45,253,193,178,45,253,193,180,45,253,193,46,46,253,193,48,46,253,193,166,43,253,193,194,43,253,193,250,43,253,193,204,44,253,193,16,45,253,193,122,45,253,193,176,45,253,193,42,46,253,193,44,46,253,193,134,46,253,193,54,47,253,193,182,47,253,193,48,48,253,193,84,48,253,193,210,48,253,193,244,48,253,193,246,48,253,193,248,48,253,193,74,49,253,193,76,49,253,193,222,49,253,193,224,49,253,193,100,50,253,193,196,50,253,193,198,50,253,193,200,50,253,193,76,51,253,193,78,51,253,193,198,51,253,193,200,51,253,193,202,51,253,193,24,52,253,193,4,44,253,193,6,44,253,193,8,44,253,193,10,44,253,193,12,44,253,193,14,44,253,193,32,44,253,193,34,44,253,193,36,44,253,193,38,44,253,193,46,44,253,193,52,44,253,193,54,44,253,193,56,44,253,193,58,44,253,193,60,44,253,193,62,44,253,193,64,44,253,193,66,44,253,193,70,44,253,193,72,44,253,193,74,44,253,193,76,44,253,193,84,44,253,193,86,44,253,193,88,44,253,193,96,44,253,193,102,44,253,193,104,44,253,193,106,44,253,193,112,44,253,193,114,44,253,193,26,44,253,193,28,44,253,193,42,44,253,193,48,44,253,193,78,44,253,193,82,44,253,193,90,44,253,193,98,44,253,193,100,44,253,193,108,44,253,193,138,44,253,193,140,44,253,193,176,44,253,193,178,44,253,193,180,44,253,193,230,44,253,193,2,45,253,193,46,45,253,193,94,45,253,193,102,45,253,193,108,45,253,193,112,45,253,193,118,45,253,193,134,45,253,193,146,45,253,193,148,45,253,193,150,45,253,193,152,45,253,193,154,45,253,193,156,45,253,193,184,45,253,193,186,45,253,193,232,44,253,193,234,44,253,193,236,44,253,193,64,45,253,193,96,45,253,193,136,45,253,193,158,45,253,193,160,45,253,193,192,45,253,193,232,45,253,193,52,46,253,193,54,46,253,193,56,46,253,193,110,46,253,193,112,46,253,193,188,46,253,193,208,46,253,193,210,46,253,193,238,46,253,193,250,46,253,193,18,47,253,193,20,47,253,193,60,47,253,193,62,47,253,193,64,47,253,193,66,47,253,193,100,47,253,193,102,47,253,193,192,47,253,193,230,47,253,193,232,47,253,193,18,48,253,193,246,44,253,193,248,44,253,193,250,44,253,193,6,45,253,193,8,45,253,193,10,45,253,193,12,45,253,193,14,45,253,193,252,44,253,193,22,45,253,193,24,45,253,193,26,45,253,193,28,45,253,193,30,45,253,193,32,45,253,193,34,45,253,193,36,45,253,193,48,45,253,193,50,45,253,193,52,45,253,193,54,45,253,193,56,45,253,193,58,45,253,193,66,45,253,193,68,45,253,193,72,45,253,193,74,45,253,193,76,45,253,193,78,45,253,193,82,45,253,193,84,45,253,193,86,45,253,193,42,45,253,193,44,45,253,193,62,45,253,193,90,45,253,193,130,45,253,193,132,45,253,193,220,45,253,193,96,46,253,193,98,46,253,193,100,46,253,193,142,46,253,193,144,46,253,193,146,46,253,193,148,46,253,193,182,46,253,193,236,46,253,193,32,47,253,193,216,48,253,193,4,49,253,193,100,49,253,193,102,49,253,193,104,49,253,193,106,49,253,193,108,49,253,193,110,49,253,193,112,49,253,193,114,49,253,193,116,49,253,193,244,49,253,193,246,49,253,193,248,49,253,193,250,49,253,193,92,45,253,193,98,45,253,193,100,45,253,193,104,45,253,193,106,45,253,193,110,45,253,193,120,45,253,193,114,45,253,193,116,45,253,193,124,45,253,193,138,45,253,193,140,45,253,193,142,45,253,193,144,45,253,193,162,45,253,193,164,45,253,193,166,45,253,193,168,45,253,193,170,45,253,193,172,45,253,193,174,45,253,193,194,45,253,193,196,45,253,193,198,45,253,193,200,45,253,193,202,45,253,193,204,45,253,193,206,45,253,193,208,45,253,193,210,45,253,193,212,45,253,193,234,45,253,193,188,45,253,193,190,45,253,193,222,45,253,193,224,45,253,193,226,45,253,193,228,45,253,193,230,45,253,193,12,46,253,193,14,46,253,193,16,46,253,193,18,46,253,193,102,46,253,193,104,46,253,193,106,46,253,193,108,46,253,193,150,46,253,193,152,46,253,193,154,46,253,193,156,46,253,193,158,46,253,193,184,46,253,193,186,46,253,193,222,46,253,193,206,46,253,193,36,47,253,193,44,47,253,193,46,47,253,193,48,47,253,193,56,47,253,193,58,47,253,193,88,47,253,193,90,47,253,193,236,45,253,193,238,45,253,193,240,45,253,193,242,45,253,193,244,45,253,193,246,45,253,193,248,45,253,193,250,45,253,193,252,45,253,193,254,45,253,193,2,46,253,193,4,46,253,193,6,46,253,193,20,46,253,193,22,46,253,193,24,46,253,193,26,46,253,193,28,46,253,193,30,46,253,193,32,46,253,193,34,46,253,193,36,46,253,193,38,46,253,193,40,46,253,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,193,10,46,253,193,136,46,253,193,138,46,253,193,140,46,253,193,204,46,253,193,42,47,253,193,84,47,253,193,86,47,253,193,140,47,253,193,142,47,253,193,224,47,253,193,50,48,253,193,152,48,253,193,214,48,253,193,250,48,253,193,252,48,253,193,254,48,253,193,2,49,253,193,86,49,253,193,88,49,253,193,90,49,253,193,92,49,253,193,94,49,253,193,96,49,253,193,98,49,253,193,228,49,253,193,230,49,253,193,232,49,253,193,234,49,253,193,236,49,253,193,238,49,253,193,240,49,253,193,50,46,253,193,90,46,253,193,92,46,253,193,94,46,253,193,178,46,253,193,180,46,253,193,234,46,253,193,248,46,253,193,184,47,253,193,8,48,253,193,116,48,253,193,118,48,253,193,150,48,253,193,176,48,253,193,212,48,253,193,78,49,253,193,80,49,253,193,82,49,253,193,84,49,253,193,226,49,253,193,102,50,253,193,104,50,253,193,202,50,253,193,204,50,253,193,206,50,253,193,208,50,253,193,210,50,253,193,80,51,253,193,82,51,253,193,84,51,253,193,86,51,253,193,88,51,253,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,206,0,91,0,193,114,46,253,193,116,46,253,193,118,46,253,193,120,46,253,193,122,46,253,193,124,46,253,193,126,46,253,193,128,46,253,193,130,46,253,193,132,46,253,193,160,46,253,193,162,46,253,193,164,46,253,193,166,46,253,193,168,46,253,193,170,46,253,193,172,46,253,193,174,46,253,193,176,46,253,193,190,46,253,193,192,46,253,193,194,46,253,193,196,46,253,193,198,46,253,193,200,46,253,193,202,46,253,193,212,46,253,193,214,46,253,193,216,46,253,193,218,46,253,193,220,46,253,193,224,46,253,193,226,46,253,193,228,46,253,193,230,46,253,193,232,46,253,193,240,46,253,193,242,46,253,193,244,46,253,193,246,46,253,193,252,46,253,193,254,46,253,193,2,47,253,193,4,47,253,193,8,47,253,193,10,47,253,193,12,47,253,193,6,47,253,193,14,47,253,193,16,47,253,193,22,47,253,193,24,47,253,193,26,47,253,193,28,47,253,193,30,47,253,193,34,47,253,193,38,47,253,193,40,47,253,193,50,47,253,193,52,47,253,193,68,47,253,193,70,47,253,193,72,47,253,193,74,47,253,193,76,47,253,193,78,47,253,193,80,47,253,193,82,47,253,193,104,47,253,193,106,47,253,193,108,47,253,193,110,47,253,193,112,47,253,193,114,47,253,193,116,47,253,193,118,47,253,193,120,47,253,193,122,47,253,193,124,47,253,193,126,47,253,193,128,47,253,193,130,47,253,193,132,47,253,193,134,47,253,193,136,47,253,193,138,47,253,193,158,47,253,193,160,47,253,193,92,47,253,193,94,47,253,193,96,47,253,193,98,47,253,193,144,47,253,193,146,47,253,193,148,47,253,193,150,47,253,193,152,47,253,193,154,47,253,193,156,47,253,193,186,47,253,193,188,47,253,193,190,47,253,193,226,47,253,193,228,47,253,193,10,48,253,193,12,48,253,193,14,48,253,193,16,48,253,193,52,48,253,193,54,48,253,193,56,48,253,193,86,48,253,193,88,48,253,193,90,48,253,193,120,48,253,193,184,48,253,193,186,48,253,193,190,48,253,193,192,48,253,193,194,48,253,193,162,47,253,193,164,47,253,193,166,47,253,193,168,47,253,193,170,47,253,193,172,47,253,193,174,47,253,193,176,47,253,193,178,47,253,193,180,47,253,193,194,47,253,193,196,47,253,193,198,47,253,193,200,47,253,193,202,47,253,193,204,47,253,193,206,47,253,193,208,47,253,193,210,47,253,193,212,47,253,193,214,47,253,193,216,47,253,193,218,47,253,193,220,47,253,193,222,47,253,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,206,32,91,0,193,20,48,253,193,22,48,253,193,24,48,253,193,26,48,253,193,28,48,253,193,30,48,253,193,32,48,253,193,34,48,253,193,36,48,253,193,38,48,253,193,40,48,253,193,6,48,253,193,42,48,253,193,44,48,253,193,46,48,253,193,60,48,253,193,62,48,253,193,64,48,253,193,66,48,253,193,68,48,253,193,70,48,253,193,72,48,253,193,74,48,253,193,76,48,253,193,78,48,253,193,80,48,253,193,58,48,253,193,92,48,253,193,94,48,253,193,122,48,253,193,124,48,253,193,126,48,253,193,128,48,253,193,26,49,253,193,28,49,253,193,156,49,253,193,158,49,253,193,160,49,253,193,162,49,253,193,164,49,253,193,166,49,253,193,168,49,253,193,24,50,253,193,26,50,253,193,28,50,253,193,146,50,253,193,148,50,253,193,150,50,253,193,12,51,253,193,14,51,253,193,16,51,253,193,18,51,253,193,20,51,253,193,22,51,253,193,24,51,253,193,26,51,253,193,28,51,253,193,30,51,253,193,82,48,253,193,96,48,253,193,98,48,253,193,100,48,253,193,102,48,253,193,104,48,253,193,130,48,253,193,106,48,253,193,108,48,253,193,110,48,253,193,112,48,253,193,114,48,253,193,132,48,253,193,134,48,253,193,136,48,253,193,138,48,253,193,154,48,253,193,140,48,253,193,142,48,253,193,144,48,253,193,146,48,253,193,148,48,253,193,156,48,253,193,158,48,253,193,160,48,253,193,162,48,253,193,164,48,253,193,166,48,253,193,168,48,253,193,170,48,253,193,172,48,253,193,174,48,253,193,178,48,253,193,180,48,253,193,182,48,253,193,188,48,253,193,198,48,253,193,200,48,253,193,202,48,253,193,204,48,253,193,206,48,253,193,208,48,253,193,226,48,253,193,228,48,253,193,230,48,253,193,232,48,253,193,234,48,253,193,236,48,253,193,238,48,253,193,240,48,253,193,242,48,253,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,193,196,48,253,193,218,48,253,193,220,48,253,193,222,48,253,193,224,48,253,193,6,49,253,193,8,49,253,193,10,49,253,193,12,49,253,193,14,49,253,193,16,49,253,193,18,49,253,193,20,49,253,193,22,49,253,193,24,49,253,193,118,49,253,193,120,49,253,193,122,49,253,193,124,49,253,193,126,49,253,193,128,49,253,193,130,49,253,193,132,49,253,193,134,49,253,193,136,49,253,193,138,49,253,193,140,49,253,193,142,49,253,193,144,49,253,193,146,49,253,193,148,49,253,193,150,49,253,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,206,64,91,0,193,170,49,253,193,172,49,253,193,174,49,253,193,176,49,253,193,178,49,253,193,180,49,253,193,182,49,253,193,184,49,253,193,186,49,253,193,188,49,253,193,190,49,253,193,192,49,253,193,194,49,253,193,196,49,253,193,198,49,253,193,200,49,253,193,202,49,253,193,204,49,253,193,206,49,253,193,208,49,253,193,210,49,253,193,212,49,253,193,214,49,253,193,152,49,253,193,154,49,253,193,252,49,253,193,254,49,253,193,2,50,253,193,4,50,253,193,6,50,253,193,8,50,253,193,10,50,253,193,12,50,253,193,14,50,253,193,16,50,253,193,18,50,253,193,20,50,253,193,22,50,253,193,124,50,253,193,126,50,253,193,128,50,253,193,130,50,253,193,132,50,253,193,134,50,253,193,136,50,253,193,138,50,253,193,140,50,253,193,142,50,253,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,193,216,49,253,193,218,49,253,193,220,49,253,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,193,242,49,253,193,106,50,253,193,108,50,253,193,110,50,253,193,112,50,253,193,212,50,253,193,214,50,253,193,216,50,253,193,218,50,253,193,220,50,253,193,222,50,253,193,90,51,253,193,92,51,253,193,94,51,253,193,96,51,253,193,98,51,253,193,100,51,253,193,102,51,253,193,104,51,253,193,106,51,253,193,108,51,253,193,210,51,253,193,212,51,253,193,214,51,253,193,216,51,253,193,218,51,253,193,34,52,253,193,36,52,253,193,38,52,253,193,40,52,253,193,130,52,253,193,132,52,253,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,206,96,91,0,193,152,50,253,193,154,50,253,193,156,50,253,193,158,50,253,193,160,50,253,193,162,50,253,193,164,50,253,193,166,50,253,193,168,50,253,193,170,50,253,193,172,50,253,193,174,50,253,193,176,50,253,193,178,50,253,193,180,50,253,193,182,50,253,193,184,50,253,193,186,50,253,193,188,50,253,193,190,50,253,193,192,50,253,193,194,50,253,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,193,114,50,253,193,116,50,253,193,118,50,253,193,120,50,253,193,122,50,253,193,224,50,253,193,110,51,253,193,112,51,253,193,114,51,253,193,220,51,253,193,42,52,253,193,44,52,253,193,46,52,253,193,136,52,253,193,138,52,253,193,140,52,253,193,142,52,253,193,228,52,253,193,230,52,253,193,232,52,253,193,234,52,253,193,236,52,253,193,238,52,253,193,240,52,253,193,80,53,253,193,82,53,253,193,84,53,253,193,134,53,253,193,184,53,253,193,186,53,253,193,214,53,253,193,216,53,253,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,206,128,91,0,193,116,51,253,193,118,51,253,193,120,51,253,193,122,51,253,193,124,51,253,193,126,51,253,193,128,51,253,193,130,51,253,193,132,51,253,193,222,51,253,193,224,51,253,193,226,51,253,193,228,51,253,193,230,51,253,193,232,51,253,193,234,51,253,193,236,51,253,193,48,52,253,193,50,52,253,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,160,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,206,192,91,0,193,134,51,253,193,136,51,253,193,138,51,253,193,140,51,253,193,142,51,253,193,238,51,253,193,240,51,253,193,62,52,253,193,158,52,253,193,248,52,253,193,94,53,253,193,140,53,253,193,58,54,253,193,98,54,253,193,100,54,253,193,122,54,253,193,124,54,253,193,198,54,253,193,226,54,253,193,242,54,253,193,244,54,253,193,60,55,253,193,124,55,253,193,126,55,253,193,128,55,253,193,180,55,253,193,182,55,253,193,184,55,253,193,186,55,253,193,22,56,253,193,24,56,253,193,26,56,253,193,204,51,253,193,206,51,253,193,208,51,253,193,28,52,253,193,30,52,253,193,32,52,253,193,126,52,253,193,128,52,253,193,214,52,253,193,28,53,253,193,66,53,253,193,68,53,253,193,70,53,253,193,72,53,253,193,126,53,253,193,128,53,253,193,130,53,253,193,164,53,253,193,200,53,253,193,248,53,253,193,28,54,253,193,30,54,253,193,32,54,253,193,60,54,253,193,74,54,253,193,110,54,253,193,128,54,253,193,130,54,253,193,132,54,253,193,134,54,253,193,148,54,253,193,180,54,253,193,26,52,253,193,124,52,253,193,212,52,253,193,122,53,253,193,124,53,253,193,162,53,253,193,24,54,253,193,26,54,253,193,72,54,253,193,108,54,253,193,126,54,253,193,168,54,253,193,178,54,253,193,218,54,253,193,234,54,253,193,10,55,253,193,48,55,253,193,238,55,253,193,90,56,253,193,198,56,253,193,200,56,253,193,54,57,253,193,56,57,253,193,58,57,253,193,152,57,253,193,154,57,253,193,156,57,253,193,248,57,253,193,250,57,253,193,62,58,253,193,144,58,253,193,146,58,253,193,68,52,253,193,70,52,253,193,72,52,253,193,74,52,253,193,76,52,253,193,78,52,253,193,80,52,253,193,82,52,253,193,84,52,253,193,86,52,253,193,88,52,253,193,90,52,253,193,92,52,253,193,94,52,253,193,96,52,253,193,98,52,253,193,100,52,253,193,102,52,253,193,104,52,253,193,106,52,253,193,108,52,253,193,110,52,253,193,112,52,253,193,114,52,253,193,116,52,253,193,118,52,253,193,120,52,253,193,122,52,253,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,193,134,52,253,193,216,52,253,193,218,52,253,193,220,52,253,193,222,52,253,193,224,52,253,193,226,52,253,193,30,53,253,193,32,53,253,193,74,53,253,193,76,53,253,193,78,53,253,193,132,53,253,193,166,53,253,193,194,53,253,193,196,53,253,193,198,53,253,193,32,55,253,193,92,55,253,193,160,55,253,193,246,55,253,193,248,55,253,193,98,56,253,193,100,56,253,193,206,56,253,193,208,56,253,193,68,57,253,193,70,57,253,193,6,58,253,193,74,58,253,193,76,58,253,193,214,58,253,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,224,91,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,206,0,92,0,193,44,53,253,193,46,53,253,193,48,53,253,193,50,53,253,193,52,53,253,193,54,53,253,193,56,53,253,193,58,53,253,193,60,53,253,193,62,53,253,193,64,53,253,193,96,53,253,193,98,53,253,193,100,53,253,193,102,53,253,193,104,53,253,193,106,53,253,193,108,53,253,193,110,53,253,193,112,53,253,193,114,53,253,193,116,53,253,193,118,53,253,193,142,53,253,193,144,53,253,193,120,53,253,193,146,53,253,193,148,53,253,193,150,53,253,193,152,53,253,193,154,53,253,193,156,53,253,193,158,53,253,193,160,53,253,193,170,53,253,193,172,53,253,193,174,53,253,193,176,53,253,193,180,53,253,193,182,53,253,193,188,53,253,193,190,53,253,193,192,53,253,193,246,53,253,193,22,54,253,193,70,54,253,193,102,54,253,193,104,54,253,193,106,54,253,193,158,54,253,193,192,54,253,193,194,54,253,193,196,54,253,193,206,54,253,193,208,54,253,193,212,54,253,193,214,54,253,193,216,54,253,193,208,53,253,193,210,53,253,193,212,53,253,193,220,53,253,193,222,53,253,193,224,53,253,193,226,53,253,193,228,53,253,193,230,53,253,193,232,53,253,193,234,53,253,193,236,53,253,193,238,53,253,193,240,53,253,193,242,53,253,193,244,53,253,193,252,53,253,193,254,53,253,193,2,54,253,193,4,54,253,193,6,54,253,193,8,54,253,193,10,54,253,193,12,54,253,193,14,54,253,193,16,54,253,193,18,54,253,193,20,54,253,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,193,218,53,253,193,250,53,253,193,34,54,253,193,112,54,253,193,114,54,253,193,116,54,253,193,136,54,253,193,138,54,253,193,150,54,253,193,152,54,253,193,154,54,253,193,170,54,253,193,176,54,253,193,182,54,253,193,184,54,253,193,238,54,253,193,82,55,253,193,162,55,253,193,250,55,253,193,102,56,253,193,104,56,253,193,210,56,253,193,212,56,253,193,214,56,253,193,162,57,253,193,164,57,253,193,8,58,253,193,78,58,253,193,80,58,253,193,82,58,253,193,152,58,253,193,216,58,253,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,206,32,92,0,193,62,54,253,193,64,54,253,193,66,54,253,193,68,54,253,193,76,54,253,193,78,54,253,193,80,54,253,193,82,54,253,193,84,54,253,193,86,54,253,193,88,54,253,193,90,54,253,193,92,54,253,193,94,54,253,193,96,54,253,193,118,54,253,193,120,54,253,193,140,54,253,193,142,54,253,193,144,54,253,193,146,54,253,193,156,54,253,193,160,54,253,193,162,54,253,193,164,54,253,193,166,54,253,193,172,54,253,193,174,54,253,193,186,54,253,193,190,54,253,193,200,54,253,193,202,54,253,193,204,54,253,193,220,54,253,193,222,54,253,193,224,54,253,193,240,54,253,193,12,55,253,193,14,55,253,193,16,55,253,193,34,55,253,193,84,55,253,193,86,55,253,193,94,55,253,193,96,55,253,193,98,55,253,193,100,55,253,193,118,55,253,193,120,55,253,193,122,55,253,193,164,55,253,193,166,55,253,193,168,55,253,193,170,55,253,193,172,55,253,193,174,55,253,193,176,55,253,193,188,54,253,193,210,54,253,193,236,54,253,193,30,55,253,193,72,55,253,193,158,55,253,193,240,55,253,193,242,55,253,193,244,55,253,193,92,56,253,193,94,56,253,193,96,56,253,193,202,56,253,193,204,56,253,193,60,57,253,193,62,57,253,193,64,57,253,193,66,57,253,193,158,57,253,193,160,57,253,193,252,57,253,193,254,57,253,193,2,58,253,193,4,58,253,193,64,58,253,193,66,58,253,193,68,58,253,193,70,58,253,193,72,58,253,193,148,58,253,193,150,58,253,193,212,58,253,193,228,54,253,193,230,54,253,193,232,54,253,193,246,54,253,193,248,54,253,193,250,54,253,193,252,54,253,193,254,54,253,193,2,55,253,193,4,55,253,193,6,55,253,193,8,55,253,193,18,55,253,193,20,55,253,193,22,55,253,193,24,55,253,193,26,55,253,193,28,55,253,193,36,55,253,193,38,55,253,193,40,55,253,193,42,55,253,193,44,55,253,193,46,55,253,193,50,55,253,193,52,55,253,193,54,55,253,193,56,55,253,193,58,55,253,193,62,55,253,193,64,55,253,193,66,55,253,193,68,55,253,193,70,55,253,193,74,55,253,193,76,55,253,193,78,55,253,193,80,55,253,193,88,55,253,193,90,55,253,193,104,55,253,193,106,55,253,193,108,55,253,193,110,55,253,193,112,55,253,193,114,55,253,193,116,55,253,193,130,55,253,193,132,55,253,193,134,55,253,193,136,55,253,193,138,55,253,193,140,55,253,193,142,55,253,193,144,55,253,193,146,55,253,193,148,55,253,193,150,55,253,193,152,55,253,193,154,55,253,193,156,55,253,193,188,55,253,193,190,55,253,193,192,55,253,193,194,55,253,193,196,55,253,193,198,55,253,193,200,55,253,193,202,55,253,193,204,55,253,193,206,55,253,193,208,55,253,193,210,55,253,193,212,55,253,193,214,55,253,193,216,55,253,193,218,55,253,193,220,55,253,193,222,55,253,193,224,55,253,193,226,55,253,193,228,55,253,193,230,55,253,193,232,55,253,193,234,55,253,193,236,55,253,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,193,252,55,253,193,254,55,253,193,2,56,253,193,4,56,253,193,6,56,253,193,8,56,253,193,10,56,253,193,12,56,253,193,14,56,253,193,16,56,253,193,18,56,253,193,20,56,253,193,106,56,253,193,108,56,253,193,110,56,253,193,112,56,253,193,114,56,253,193,116,56,253,193,118,56,253,193,120,56,253,193,122,56,253,193,216,56,253,193,218,56,253,193,220,56,253,193,222,56,253,193,224,56,253,193,226,56,253,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,193,28,56,253,193,30,56,253,193,32,56,253,193,34,56,253,193,36,56,253,193,124,56,253,193,126,56,253,193,128,56,253,193,130,56,253,193,132,56,253,193,134,56,253,193,228,56,253,193,230,56,253,193,232,56,253,193,234,56,253,193,236,56,253,193,238,56,253,193,240,56,253,193,242,56,253,193,92,57,253,193,94,57,253,193,96,57,253,193,98,57,253,193,100,57,253,193,102,57,253,193,172,57,253,193,174,57,253,193,176,57,253,193,178,57,253,193,12,58,253,193,14,58,253,193,16,58,253,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,64,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,96,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,206,128,92,0,193,104,57,253,193,106,57,253,193,108,57,253,193,110,57,253,193,112,57,253,193,114,57,253,193,116,57,253,193,118,57,253,193,120,57,253,193,122,57,253,193,124,57,253,193,126,57,253,193,128,57,253,193,130,57,253,193,132,57,253,193,52,57,253,193,134,57,253,193,180,57,253,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,206,160,92,0,193,166,57,253,193,168,57,253,193,170,57,253,193,10,58,253,193,154,58,253,193,156,58,253,193,158,58,253,193,160,58,253,193,162,58,253,193,218,58,253,193,254,58,253,193,2,59,253,193,44,59,253,193,78,59,253,193,84,59,253,193,94,59,253,193,120,59,253,193,122,59,253,193,124,59,253,193,126,59,253,193,190,59,253,193,192,59,253,193,194,59,253,193,2,61,253,193,196,59,253,193,198,59,253,193,200,59,253,193,136,57,253,193,138,57,253,193,140,57,253,193,142,57,253,193,144,57,253,193,146,57,253,193,148,57,253,193,150,57,253,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,206,192,92,0,193,20,58,253,193,22,58,253,193,24,58,253,193,26,58,253,193,28,58,253,193,30,58,253,193,32,58,253,193,34,58,253,193,36,58,253,193,38,58,253,193,40,58,253,193,42,58,253,193,44,58,253,193,46,58,253,193,48,58,253,193,50,58,253,193,52,58,253,193,54,58,253,193,56,58,253,193,58,58,253,193,60,58,253,193,96,58,253,193,98,58,253,193,18,58,253,193,84,58,253,193,86,58,253,193,88,58,253,193,90,58,253,193,92,58,253,193,94,58,253,193,164,58,253,193,220,58,253,193,222,58,253,193,224,58,253,193,226,58,253,193,4,59,253,193,22,59,253,193,24,59,253,193,26,59,253,193,46,59,253,193,60,59,253,193,66,59,253,193,96,59,253,193,98,59,253,193,128,59,253,193,130,59,253,193,212,59,253,193,214,59,253,193,216,59,253,193,218,59,253,193,220,59,253,193,222,59,253,193,224,59,253,193,226,59,253,193,126,60,253,193,100,58,253,193,102,58,253,193,104,58,253,193,106,58,253,193,108,58,253,193,110,58,253,193,112,58,253,193,114,58,253,193,116,58,253,193,118,58,253,193,120,58,253,193,122,58,253,193,124,58,253,193,126,58,253,193,128,58,253,193,130,58,253,193,132,58,253,193,134,58,253,193,136,58,253,193,138,58,253,193,140,58,253,193,142,58,253,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,206,224,92,0,193,228,58,253,193,230,58,253,193,232,58,253,193,234,58,253,193,236,58,253,193,238,58,253,193,240,58,253,193,242,58,253,193,244,58,253,193,246,58,253,193,248,58,253,193,250,58,253,193,6,59,253,193,8,59,253,193,10,59,253,193,12,59,253,193,14,59,253,193,16,59,253,193,18,59,253,193,252,58,253,193,118,59,253,193,184,59,253,193,186,59,253,193,188,59,253,193,66,60,253,193,68,60,253,193,70,60,253,193,184,61,253,193,186,61,253,193,188,61,253,193,190,61,253,193,192,61,253,193,194,61,253,193,196,61,253,193,198,61,253,193,136,62,253,193,138,62,253,193,140,62,253,193,142,62,253,193,122,63,253,193,124,63,253,193,126,63,253,193,128,63,253,193,130,63,253,193,132,63,253,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,193,20,59,253,193,28,59,253,193,30,59,253,193,32,59,253,193,34,59,253,193,36,59,253,193,38,59,253,193,40,59,253,193,48,59,253,193,50,59,253,193,52,59,253,193,54,59,253,193,56,59,253,193,58,59,253,193,62,59,253,193,64,59,253,193,68,59,253,193,70,59,253,193,72,59,253,193,74,59,253,193,76,59,253,193,80,59,253,193,82,59,253,193,86,59,253,193,88,59,253,193,90,59,253,193,100,59,253,193,102,59,253,193,104,59,253,193,106,59,253,193,108,59,253,193,110,59,253,193,42,59,253,193,92,59,253,193,116,59,253,193,172,59,253,193,174,59,253,193,176,59,253,193,178,59,253,193,180,59,253,193,182,59,253,193,54,60,253,193,56,60,253,193,58,60,253,193,60,60,253,193,62,60,253,193,64,60,253,193,240,60,253,193,242,60,253,193,244,60,253,193,246,60,253,193,248,60,253,193,250,60,253,193,252,60,253,193,254,60,253,193,180,61,253,193,182,61,253,193,122,62,253,193,124,62,253,193,126,62,253,193,128,62,253,193,130,62,253,193,132,62,253,193,134,62,253,193,112,59,253,193,132,59,253,193,134,59,253,193,136,59,253,193,138,59,253,193,140,59,253,193,142,59,253,193,144,59,253,193,146,59,253,193,148,59,253,193,150,59,253,193,152,59,253,193,154,59,253,193,156,59,253,193,158,59,253,193,160,59,253,193,162,59,253,193,164,59,253,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,193,114,59,253,193,168,59,253,193,170,59,253,193,44,60,253,193,46,60,253,193,48,60,253,193,50,60,253,193,52,60,253,193,232,60,253,193,234,60,253,193,236,60,253,193,238,60,253,193,168,61,253,193,170,61,253,193,172,61,253,193,174,61,253,193,176,61,253,193,178,61,253,193,114,62,253,193,116,62,253,193,118,62,253,193,120,62,253,193,80,63,253,193,82,63,253,193,84,63,253,193,86,63,253,193,88,63,253,193,90,63,253,206,32,94,0,206,32,94,0,206,32,94,0,206,32,94,0,193,166,59,253,193,38,60,253,193,40,60,253,193,42,60,253,193,226,60,253,193,228,60,253,193,230,60,253,193,158,61,253,193,160,61,253,193,162,61,253,193,164,61,253,193,166,61,253,193,108,62,253,193,110,62,253,193,112,62,253,193,70,63,253,193,72,63,253,193,74,63,253,193,76,63,253,193,78,63,253,193,50,64,253,193,52,64,253,193,54,64,253,193,56,64,253,193,58,64,253,193,24,65,253,193,26,65,253,193,28,65,253,193,6,66,253,193,8,66,253,193,10,66,253,193,12,66,253,193,202,59,253,193,204,59,253,193,206,59,253,193,208,59,253,193,210,59,253,193,72,60,253,193,74,60,253,193,76,60,253,193,78,60,253,193,80,60,253,193,82,60,253,193,84,60,253,193,86,60,253,193,88,60,253,193,90,60,253,193,92,60,253,193,94,60,253,193,96,60,253,193,98,60,253,193,100,60,253,193,102,60,253,193,104,60,253,193,106,60,253,193,108,60,253,193,110,60,253,193,112,60,253,193,114,60,253,193,116,60,253,193,118,60,253,193,120,60,253,193,122,60,253,193,4,61,253,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,0,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,193,6,61,253,193,8,61,253,193,10,61,253,193,12,61,253,193,14,61,253,193,16,61,253,193,18,61,253,193,20,61,253,193,22,61,253,193,24,61,253,193,26,61,253,193,28,61,253,193,30,61,253,193,32,61,253,193,34,61,253,193,36,61,253,193,38,61,253,193,40,61,253,193,42,61,253,193,44,61,253,193,46,61,253,193,124,60,253,193,48,61,253,193,50,61,253,193,52,61,253,193,54,61,253,193,56,61,253,193,58,61,253,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,193,128,60,253,193,130,60,253,193,132,60,253,193,134,60,253,193,136,60,253,193,138,60,253,193,140,60,253,193,142,60,253,193,144,60,253,193,146,60,253,193,148,60,253,193,150,60,253,193,152,60,253,193,154,60,253,193,60,61,253,193,62,61,253,193,64,61,253,193,66,61,253,193,68,61,253,193,70,61,253,193,238,61,253,193,240,61,253,193,242,61,253,193,244,61,253,193,246,61,253,193,248,61,253,193,250,61,253,193,252,61,253,193,210,62,253,193,254,61,253,193,212,62,253,193,214,62,253,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,32,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,64,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,96,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,128,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,206,160,93,0,193,134,63,253,193,200,62,253,193,202,62,253,193,204,62,253,193,206,62,253,193,136,63,253,193,138,63,253,193,140,63,253,193,142,63,253,193,144,63,253,193,146,63,253,193,148,63,253,193,150,63,253,193,152,63,253,193,154,63,253,193,208,62,253,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,193,216,62,253,193,218,62,253,193,220,62,253,193,222,62,253,193,224,62,253,193,226,62,253,193,228,62,253,193,230,62,253,193,232,62,253,193,234,62,253,193,236,62,253,193,238,62,253,193,240,62,253,193,178,63,253,193,180,63,253,193,182,63,253,193,184,63,253,193,186,63,253,193,188,63,253,193,190,63,253,193,192,63,253,193,194,63,253,193,196,63,253,193,166,64,253,193,168,64,253,193,170,64,253,193,172,64,253,193,174,64,253,193,176,64,253,193,178,64,253,193,108,65,253,193,110,65,253,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,206,192,93,0,193,198,63,253,193,200,63,253,193,68,63,253,193,92,63,253,193,94,63,253,193,96,63,253,193,98,63,253,193,100,63,253,193,102,63,253,193,104,63,253,193,106,63,253,193,108,63,253,193,110,63,253,193,112,63,253,193,114,63,253,193,116,63,253,193,118,63,253,193,120,63,253,193,76,64,253,193,78,64,253,193,80,64,253,193,82,64,253,193,84,64,253,193,86,64,253,193,88,64,253,193,90,64,253,193,92,64,253,193,94,64,253,193,96,64,253,193,98,64,253,193,100,64,253,193,102,64,253,193,104,64,253,193,106,64,253,193,108,64,253,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,206,224,93,0,193,138,64,253,193,140,64,253,193,142,64,253,193,144,64,253,193,146,64,253,193,148,64,253,193,150,64,253,193,152,64,253,193,154,64,253,193,156,64,253,193,158,64,253,193,160,64,253,193,162,64,253,193,164,64,253,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,206,0,94,0,193,180,64,253,193,182,64,253,193,184,64,253,193,186,64,253,193,188,64,253,193,190,64,253,193,192,64,253,193,194,64,253,193,196,64,253,193,198,64,253,193,200,64,253,193,202,64,253,193,204,64,253,206,32,94,0,206,32,94,0,206,32,94,0,206,32,94,0,193,30,65,253,193,32,65,253,193,34,65,253,193,36,65,253,193,38,65,253,193,40,65,253,193,14,66,253,193,16,66,253,193,18,66,253,193,20,66,253,193,22,66,253,193,24,66,253,193,26,66,253,193,224,66,253,193,226,66,253,193,228,66,253,193,230,66,253,193,110,67,253,193,112,67,253,193,114,67,253,193,194,67,253,193,16,68,253,193,78,68,253,193,80,68,253,193,122,68,253,193,196,68,253,193,212,68,253,193,220,68,253,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,206,64,94,0,193,60,65,253,193,62,65,253,193,50,66,253,193,242,66,253,193,244,66,253,193,246,66,253,193,248,66,253,193,250,66,253,193,122,67,253,193,124,67,253,193,126,67,253,193,206,67,253,193,208,67,253,193,210,67,253,193,28,68,253,193,30,68,253,193,166,68,253,193,198,68,253,193,46,69,253,193,94,69,253,193,96,69,253,193,98,69,253,193,4,70,253,193,6,70,253,193,206,64,253,193,208,64,253,193,210,64,253,193,212,64,253,193,214,64,253,193,216,64,253,193,218,64,253,193,220,64,253,193,222,64,253,193,224,64,253,193,226,64,253,193,228,64,253,193,230,64,253,193,232,64,253,193,234,64,253,193,236,64,253,193,238,64,253,193,240,64,253,193,242,64,253,193,244,64,253,193,246,64,253,193,248,64,253,193,250,64,253,193,252,64,253,193,254,64,253,193,2,65,253,193,4,65,253,193,6,65,253,193,8,65,253,193,10,65,253,193,12,65,253,193,14,65,253,193,16,65,253,193,18,65,253,193,20,65,253,193,118,65,253,193,22,65,253,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,193,42,65,253,193,44,65,253,193,46,65,253,193,48,65,253,193,50,65,253,193,52,65,253,193,54,65,253,193,56,65,253,193,58,65,253,193,28,66,253,193,30,66,253,193,32,66,253,193,34,66,253,193,36,66,253,193,38,66,253,193,40,66,253,193,42,66,253,193,44,66,253,193,46,66,253,193,48,66,253,193,232,66,253,193,234,66,253,193,236,66,253,193,238,66,253,193,240,66,253,193,116,67,253,193,118,67,253,193,120,67,253,193,196,67,253,193,198,67,253,193,200,67,253,193,202,67,253,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,206,96,94,0,193,52,66,253,193,54,66,253,193,56,66,253,193,58,66,253,193,60,66,253,193,62,66,253,193,104,65,253,193,64,66,253,193,66,66,253,193,68,66,253,193,70,66,253,193,72,66,253,193,74,66,253,193,76,66,253,193,78,66,253,193,80,66,253,193,82,66,253,193,84,66,253,193,86,66,253,193,88,66,253,193,90,66,253,193,92,66,253,193,94,66,253,193,96,66,253,193,106,65,253,193,252,66,253,193,254,66,253,193,2,67,253,193,4,67,253,193,6,67,253,193,8,67,253,193,10,67,253,193,12,67,253,193,14,67,253,193,128,67,253,193,130,67,253,193,132,67,253,193,134,67,253,193,136,67,253,193,138,67,253,193,212,67,253,193,214,67,253,193,216,67,253,193,218,67,253,193,220,67,253,193,222,67,253,193,224,67,253,193,32,68,253,193,34,68,253,193,36,68,253,193,38,68,253,193,40,68,253,193,42,68,253,193,92,68,253,193,94,68,253,193,96,68,253,193,112,65,253,193,114,65,253,193,116,65,253,193,98,66,253,193,100,66,253,193,102,66,253,193,104,66,253,193,106,66,253,193,16,67,253,193,18,67,253,193,140,67,253,193,142,67,253,193,226,67,253,193,44,68,253,193,46,68,253,193,100,68,253,193,138,68,253,193,202,68,253,193,50,69,253,193,52,69,253,193,54,69,253,193,56,69,253,193,58,69,253,193,104,69,253,193,106,69,253,193,108,69,253,193,110,69,253,193,214,69,253,193,14,70,253,193,52,70,253,193,54,70,253,193,120,70,253,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,206,128,94,0,193,108,66,253,193,110,66,253,193,112,66,253,193,114,66,253,193,116,66,253,193,118,66,253,193,120,66,253,193,122,66,253,193,124,66,253,193,126,66,253,193,128,66,253,193,130,66,253,193,132,66,253,193,134,66,253,193,136,66,253,193,138,66,253,193,4,66,253,193,140,66,253,193,142,66,253,193,144,66,253,193,146,66,253,193,148,66,253,193,150,66,253,193,152,66,253,193,154,66,253,193,156,66,253,193,158,66,253,193,160,66,253,193,162,66,253,193,164,66,253,193,166,66,253,193,168,66,253,193,170,66,253,193,172,66,253,193,174,66,253,193,176,66,253,193,178,66,253,193,180,66,253,193,182,66,253,193,184,66,253,193,186,66,253,193,188,66,253,193,190,66,253,193,192,66,253,193,194,66,253,193,196,66,253,193,198,66,253,193,200,66,253,193,202,66,253,193,204,66,253,193,206,66,253,193,208,66,253,193,210,66,253,193,212,66,253,193,214,66,253,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,193,216,66,253,193,218,66,253,193,220,66,253,193,102,67,253,193,104,67,253,193,106,67,253,193,108,67,253,193,190,67,253,193,192,67,253,193,76,68,253,193,144,69,253,193,146,69,253,193,190,69,253,193,80,70,253,193,82,70,253,193,108,70,253,193,150,70,253,193,172,70,253,193,38,71,253,193,146,71,253,193,22,72,253,193,24,72,253,193,248,72,253,193,250,72,253,193,252,72,253,193,138,73,253,193,34,74,253,193,36,74,253,193,152,74,253,193,154,74,253,193,254,74,253,193,2,75,253,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,206,160,94,0,193,144,67,253,193,146,67,253,193,148,67,253,193,150,67,253,193,152,67,253,193,154,67,253,193,156,67,253,193,158,67,253,193,160,67,253,193,162,67,253,193,164,67,253,193,166,67,253,193,168,67,253,193,170,67,253,193,172,67,253,193,174,67,253,193,176,67,253,193,178,67,253,193,180,67,253,193,182,67,253,193,184,67,253,193,186,67,253,193,188,67,253,193,228,67,253,193,230,67,253,193,232,67,253,193,234,67,253,193,236,67,253,193,238,67,253,193,240,67,253,193,242,67,253,193,244,67,253,193,246,67,253,193,248,67,253,193,250,67,253,193,252,67,253,193,254,67,253,193,2,68,253,193,4,68,253,193,6,68,253,193,8,68,253,193,10,68,253,193,12,68,253,193,14,68,253,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,193,204,67,253,193,18,68,253,193,20,68,253,193,22,68,253,193,24,68,253,193,26,68,253,193,82,68,253,193,84,68,253,193,86,68,253,193,88,68,253,193,90,68,253,193,124,68,253,193,126,68,253,193,184,68,253,193,254,68,253,193,44,69,253,193,92,69,253,193,150,69,253,193,152,69,253,193,154,69,253,193,156,69,253,193,158,69,253,193,192,69,253,193,194,69,253,193,196,69,253,193,198,69,253,193,174,70,253,193,176,70,253,193,178,70,253,193,204,70,253,193,212,70,253,193,40,71,253,206,192,94,0,206,192,94,0,206,192,94,0,206,192,94,0,193,102,68,253,193,104,68,253,193,106,68,253,193,108,68,253,193,110,68,253,193,112,68,253,193,114,68,253,193,116,68,253,193,118,68,253,193,120,68,253,193,140,68,253,193,142,68,253,193,144,68,253,193,146,68,253,193,148,68,253,193,150,68,253,193,152,68,253,193,154,68,253,193,156,68,253,193,158,68,253,193,160,68,253,193,162,68,253,193,164,68,253,193,172,68,253,193,174,68,253,193,176,68,253,193,178,68,253,193,180,68,253,193,98,68,253,193,128,68,253,193,130,68,253,193,132,68,253,193,134,68,253,193,136,68,253,193,168,68,253,193,170,68,253,193,200,68,253,193,186,68,253,193,188,68,253,193,230,68,253,193,242,68,253,193,2,69,253,193,4,69,253,193,6,69,253,193,48,69,253,193,100,69,253,193,102,69,253,193,160,69,253,193,162,69,253,193,164,69,253,193,200,69,253,193,202,69,253,193,204,69,253,193,206,69,253,193,208,69,253,193,210,69,253,193,212,69,253,193,10,70,253,193,12,70,253,193,50,70,253,193,182,68,253,193,190,68,253,193,192,68,253,193,194,68,253,193,204,68,253,193,206,68,253,193,208,68,253,193,210,68,253,193,214,68,253,193,216,68,253,193,218,68,253,193,222,68,253,193,224,68,253,193,226,68,253,193,228,68,253,193,232,68,253,193,234,68,253,193,236,68,253,193,240,68,253,193,244,68,253,193,246,68,253,193,248,68,253,193,250,68,253,193,252,68,253,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,193,238,68,253,193,42,69,253,193,90,69,253,193,148,69,253,193,244,69,253,193,246,69,253,193,248,69,253,193,250,69,253,193,252,69,253,193,254,69,253,193,2,70,253,193,38,70,253,193,84,70,253,193,86,70,253,193,88,70,253,193,110,70,253,193,152,70,253,193,148,71,253,193,26,72,253,193,28,72,253,193,30,72,253,193,148,72,253,193,140,73,253,193,142,73,253,193,38,74,253,193,40,74,253,193,156,74,253,193,4,75,253,193,6,75,253,193,8,75,253,193,148,75,253,193,240,75,253,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,206,224,94,0,193,60,69,253,193,62,69,253,193,64,69,253,193,66,69,253,193,68,69,253,193,70,69,253,193,72,69,253,193,74,69,253,193,76,69,253,193,78,69,253,193,80,69,253,193,82,69,253,193,84,69,253,193,86,69,253,193,88,69,253,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,206,0,95,0,193,166,69,253,193,168,69,253,193,170,69,253,193,172,69,253,193,174,69,253,193,176,69,253,193,178,69,253,193,180,69,253,193,182,69,253,193,184,69,253,193,186,69,253,193,188,69,253,193,216,69,253,193,218,69,253,193,220,69,253,193,222,69,253,193,224,69,253,193,226,69,253,193,228,69,253,193,230,69,253,193,232,69,253,193,234,69,253,193,236,69,253,193,238,69,253,193,240,69,253,193,242,69,253,193,16,70,253,193,18,70,253,193,20,70,253,193,22,70,253,193,56,70,253,193,24,70,253,193,26,70,253,193,28,70,253,193,30,70,253,193,32,70,253,193,34,70,253,193,36,70,253,193,58,70,253,193,60,70,253,193,62,70,253,193,64,70,253,193,66,70,253,193,68,70,253,193,70,70,253,193,72,70,253,193,74,70,253,193,76,70,253,193,78,70,253,193,96,70,253,193,98,70,253,193,100,70,253,193,102,70,253,193,104,70,253,193,106,70,253,193,122,70,253,193,8,70,253,193,40,70,253,193,42,70,253,193,44,70,253,193,46,70,253,193,48,70,253,193,90,70,253,193,154,70,253,193,222,70,253,193,224,70,253,193,42,71,253,193,44,71,253,193,162,71,253,193,46,72,253,193,48,72,253,193,50,72,253,193,52,72,253,193,160,72,253,193,4,73,253,193,162,73,253,193,164,73,253,193,166,73,253,193,168,73,253,193,170,73,253,193,172,73,253,193,174,73,253,193,176,73,253,193,48,74,253,193,50,74,253,193,52,74,253,193,54,74,253,193,164,74,253,193,92,70,253,193,94,70,253,193,112,70,253,193,114,70,253,193,116,70,253,193,118,70,253,193,156,70,253,193,180,70,253,193,206,70,253,193,216,70,253,193,218,70,253,193,220,70,253,193,226,70,253,193,228,70,253,193,250,70,253,193,252,70,253,193,254,70,253,193,2,71,253,193,4,71,253,193,6,71,253,193,8,71,253,193,10,71,253,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,193,124,70,253,193,126,70,253,193,128,70,253,193,130,70,253,193,132,70,253,193,134,70,253,193,136,70,253,193,138,70,253,193,140,70,253,193,142,70,253,193,144,70,253,193,146,70,253,193,148,70,253,193,160,70,253,193,162,70,253,193,164,70,253,193,166,70,253,193,168,70,253,193,170,70,253,193,182,70,253,193,184,70,253,193,186,70,253,193,188,70,253,193,190,70,253,193,192,70,253,193,194,70,253,193,196,70,253,193,200,70,253,193,202,70,253,193,208,70,253,193,210,70,253,193,214,70,253,193,158,70,253,193,198,70,253,193,230,70,253,193,232,70,253,193,234,70,253,193,12,71,253,193,74,71,253,193,76,71,253,193,78,71,253,193,80,71,253,193,82,71,253,193,84,71,253,193,86,71,253,193,88,71,253,193,90,71,253,193,216,71,253,193,218,71,253,193,220,71,253,193,222,71,253,193,86,72,253,193,88,72,253,193,90,72,253,193,92,72,253,193,94,72,253,193,180,72,253,193,182,72,253,193,184,72,253,193,186,72,253,193,52,73,253,193,54,73,253,193,56,73,253,193,58,73,253,193,236,70,253,193,238,70,253,193,240,70,253,193,242,70,253,193,244,70,253,193,246,70,253,193,248,70,253,193,14,71,253,193,16,71,253,193,18,71,253,193,20,71,253,193,22,71,253,193,24,71,253,193,26,71,253,193,28,71,253,193,30,71,253,193,32,71,253,193,34,71,253,193,36,71,253,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,32,95,0,206,32,95,0,206,32,95,0,206,32,95,0,193,164,71,253,193,166,71,253,193,168,71,253,193,170,71,253,193,172,71,253,193,174,71,253,193,176,71,253,193,178,71,253,193,180,71,253,193,54,72,253,193,182,71,253,193,184,71,253,193,186,71,253,193,188,71,253,193,190,71,253,193,192,71,253,193,194,71,253,193,196,71,253,193,198,71,253,193,200,71,253,193,202,71,253,193,204,71,253,193,206,71,253,193,208,71,253,193,210,71,253,193,212,71,253,193,56,72,253,193,58,72,253,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,64,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,193,150,71,253,193,152,71,253,193,154,71,253,193,156,71,253,193,158,71,253,193,160,71,253,193,32,72,253,193,34,72,253,193,36,72,253,193,38,72,253,193,40,72,253,193,42,72,253,193,44,72,253,193,150,72,253,193,152,72,253,193,154,72,253,193,156,72,253,193,158,72,253,193,254,72,253,193,2,73,253,193,144,73,253,193,146,73,253,193,148,73,253,193,150,73,253,193,152,73,253,193,154,73,253,193,156,73,253,193,158,73,253,193,160,73,253,193,42,74,253,193,44,74,253,193,46,74,253,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,206,96,95,0,193,96,72,253,193,98,72,253,193,100,72,253,193,102,72,253,193,104,72,253,193,106,72,253,193,108,72,253,193,110,72,253,193,112,72,253,193,114,72,253,193,116,72,253,193,118,72,253,193,120,72,253,193,122,72,253,193,124,72,253,193,126,72,253,193,128,72,253,193,130,72,253,193,132,72,253,193,134,72,253,193,136,72,253,193,138,72,253,193,140,72,253,193,142,72,253,193,60,72,253,193,62,72,253,193,64,72,253,193,66,72,253,193,68,72,253,193,70,72,253,193,72,72,253,193,74,72,253,193,76,72,253,193,78,72,253,193,80,72,253,193,82,72,253,193,84,72,253,193,162,72,253,193,164,72,253,193,166,72,253,193,168,72,253,193,170,72,253,193,172,72,253,193,174,72,253,193,176,72,253,193,178,72,253,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,193,144,72,253,193,146,72,253,193,188,72,253,193,190,72,253,193,192,72,253,193,194,72,253,193,196,72,253,193,198,72,253,193,200,72,253,193,202,72,253,193,204,72,253,193,206,72,253,193,208,72,253,193,210,72,253,193,212,72,253,193,214,72,253,193,216,72,253,193,218,72,253,193,220,72,253,193,222,72,253,193,224,72,253,193,226,72,253,193,228,72,253,193,230,72,253,193,232,72,253,193,234,72,253,193,236,72,253,193,238,72,253,193,240,72,253,193,242,72,253,193,244,72,253,193,246,72,253,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,206,128,95,0,193,178,73,253,193,180,73,253,193,182,73,253,193,184,73,253,193,186,73,253,193,188,73,253,193,190,73,253,193,192,73,253,193,194,73,253,193,196,73,253,193,198,73,253,193,200,73,253,193,202,73,253,193,204,73,253,193,206,73,253,193,208,73,253,193,56,74,253,193,58,74,253,193,60,74,253,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,160,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,193,210,73,253,193,212,73,253,193,214,73,253,193,216,73,253,193,218,73,253,193,74,74,253,193,76,74,253,193,78,74,253,193,80,74,253,193,82,74,253,193,84,74,253,193,188,74,253,193,190,74,253,193,192,74,253,193,194,74,253,193,196,74,253,193,198,74,253,193,200,74,253,193,34,75,253,193,36,75,253,193,38,75,253,193,40,75,253,193,98,75,253,193,168,75,253,193,170,75,253,193,172,75,253,193,210,75,253,193,212,75,253,193,26,76,253,193,54,76,253,193,70,76,253,193,90,76,253,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,192,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,193,62,74,253,193,64,74,253,193,66,74,253,193,68,74,253,193,70,74,253,193,72,74,253,193,172,74,253,193,174,74,253,193,176,74,253,193,178,74,253,193,180,74,253,193,182,74,253,193,184,74,253,193,18,75,253,193,20,75,253,193,22,75,253,193,24,75,253,193,26,75,253,193,28,75,253,193,30,75,253,193,32,75,253,193,86,75,253,193,88,75,253,193,90,75,253,193,92,75,253,193,94,75,253,193,96,75,253,193,158,75,253,193,160,75,253,193,162,75,253,193,164,75,253,193,166,75,253,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,224,95,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,193,158,74,253,193,160,74,253,193,162,74,253,193,10,75,253,193,12,75,253,193,14,75,253,193,72,75,253,193,74,75,253,193,76,75,253,193,150,75,253,193,152,75,253,193,154,75,253,193,194,75,253,193,196,75,253,193,198,75,253,193,200,75,253,193,244,75,253,193,246,75,253,193,248,75,253,193,158,76,253,193,210,76,253,193,254,76,253,193,24,77,253,193,96,77,253,193,98,77,253,193,164,77,253,193,166,77,253,193,6,78,253,193,20,78,253,193,80,78,253,193,134,78,253,193,160,78,253,193,166,74,253,193,168,74,253,193,170,74,253,193,16,75,253,193,78,75,253,193,80,75,253,193,82,75,253,193,84,75,253,193,156,75,253,193,202,75,253,193,250,75,253,193,252,75,253,193,52,76,253,193,66,76,253,193,94,76,253,193,104,76,253,193,108,76,253,193,110,76,253,193,124,76,253,193,126,76,253,193,128,76,253,193,130,76,253,193,160,76,253,193,162,76,253,193,164,76,253,193,166,76,253,193,168,76,253,193,170,76,253,206,64,96,0,206,64,96,0,206,64,96,0,206,64,96,0,206,0,96,0,206,0,96,0,206,0,96,0,206,0,96,0,193,42,75,253,193,44,75,253,193,46,75,253,193,48,75,253,193,50,75,253,193,52,75,253,193,54,75,253,193,56,75,253,193,58,75,253,193,60,75,253,193,62,75,253,193,64,75,253,193,66,75,253,193,68,75,253,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,193,70,75,253,193,146,75,253,193,192,75,253,193,96,76,253,193,120,76,253,193,122,76,253,193,148,76,253,193,150,76,253,193,198,76,253,193,200,76,253,193,202,76,253,193,246,76,253,193,248,76,253,193,14,77,253,193,46,77,253,193,48,77,253,193,50,77,253,193,52,77,253,193,86,77,253,193,88,77,253,193,114,77,253,193,128,77,253,193,130,77,253,193,146,77,253,193,158,77,253,193,176,77,253,193,216,77,253,193,238,77,253,193,240,77,253,193,108,78,253,193,184,78,253,193,22,79,253,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,206,32,96,0,193,174,75,253,193,176,75,253,193,178,75,253,193,180,75,253,193,182,75,253,193,184,75,253,193,186,75,253,193,188,75,253,193,190,75,253,193,214,75,253,193,216,75,253,193,218,75,253,193,220,75,253,193,222,75,253,193,224,75,253,193,226,75,253,193,228,75,253,193,230,75,253,193,232,75,253,193,234,75,253,193,236,75,253,193,238,75,253,193,4,76,253,193,6,76,253,193,78,86,253,193,124,86,253,193,126,86,253,193,128,86,253,193,130,86,253,193,132,86,253,193,134,86,253,193,136,86,253,193,138,86,253,193,140,86,253,193,142,86,253,193,144,86,253,193,146,86,253,193,148,86,253,193,150,86,253,193,152,86,253,193,154,86,253,193,156,86,253,193,158,86,253,193,160,86,253,193,162,86,253,193,164,86,253,193,166,86,253,193,198,86,253,193,200,86,253,193,202,86,253,193,204,86,253,193,206,86,253,193,144,75,253,193,208,86,253,193,210,86,253,193,212,86,253,193,204,75,253,193,206,75,253,193,208,75,253,193,254,75,253,193,2,76,253,193,68,76,253,193,100,76,253,193,102,76,253,193,106,76,253,193,112,76,253,193,114,76,253,193,116,76,253,193,132,76,253,193,134,76,253,193,136,76,253,193,138,76,253,193,140,76,253,193,172,76,253,193,174,76,253,193,176,76,253,193,178,76,253,193,180,76,253,193,182,76,253,193,184,76,253,193,186,76,253,193,188,76,253,193,190,76,253,193,192,76,253,206,96,96,0,206,96,96,0,206,96,96,0,206,96,96,0,193,242,75,253,193,152,76,253,193,154,76,253,193,156,76,253,193,206,76,253,193,208,76,253,193,250,76,253,193,252,76,253,193,16,77,253,193,18,77,253,193,20,77,253,193,22,77,253,193,54,77,253,193,90,77,253,193,92,77,253,193,94,77,253,193,118,77,253,193,120,77,253,193,132,77,253,193,134,77,253,193,162,77,253,193,172,77,253,193,192,77,253,193,218,77,253,193,220,77,253,193,222,77,253,193,4,78,253,193,120,78,253,193,208,78,253,193,164,79,253,193,166,79,253,193,168,79,253,193,8,76,253,193,10,76,253,193,12,76,253,193,14,76,253,193,16,76,253,193,18,76,253,193,20,76,253,193,22,76,253,193,24,76,253,193,28,76,253,193,30,76,253,193,32,76,253,193,34,76,253,193,36,76,253,193,38,76,253,193,40,76,253,193,42,76,253,193,44,76,253,193,46,76,253,193,48,76,253,193,50,76,253,193,56,76,253,193,58,76,253,193,60,76,253,193,62,76,253,193,72,76,253,193,78,76,253,193,74,76,253,193,80,76,253,193,64,76,253,193,76,76,253,193,82,76,253,193,84,76,253,193,86,76,253,193,88,76,253,193,92,76,253,193,98,76,253,193,144,76,253,193,146,76,253,193,196,76,253,193,244,76,253,193,144,77,253,193,184,77,253,193,188,77,253,193,190,77,253,193,194,77,253,193,196,77,253,193,200,77,253,193,202,77,253,193,204,77,253,193,212,77,253,193,214,77,253,193,230,77,253,193,232,77,253,193,234,77,253,193,236,77,253,193,250,77,253,193,252,77,253,193,254,77,253,193,2,78,253,193,12,78,253,193,14,78,253,193,16,78,253,193,18,78,253,193,118,76,253,193,142,76,253,193,194,76,253,193,10,78,253,193,100,78,253,193,140,78,253,193,150,78,253,193,154,78,253,193,168,78,253,193,170,78,253,193,238,78,253,193,240,78,253,193,88,79,253,193,90,79,253,193,92,79,253,193,94,79,253,193,218,79,253,193,220,79,253,193,116,80,253,193,118,80,253,193,120,80,253,193,122,80,253,193,124,80,253,193,126,80,253,193,128,80,253,193,18,81,253,193,20,81,253,193,22,81,253,193,178,81,253,193,180,81,253,193,182,81,253,193,184,81,253,206,64,96,0,206,64,96,0,206,64,96,0,206,64,96,0,193,2,77,253,193,4,77,253,193,6,77,253,193,26,77,253,193,28,77,253,193,56,77,253,193,58,77,253,193,60,77,253,193,62,77,253,193,64,77,253,193,66,77,253,193,68,77,253,193,70,77,253,193,72,77,253,193,100,77,253,193,102,77,253,193,104,77,253,193,106,77,253,193,122,77,253,193,124,77,253,193,136,77,253,193,138,77,253,193,148,77,253,193,150,77,253,193,152,77,253,193,154,77,253,193,156,77,253,193,168,77,253,206,96,96,0,206,96,96,0,206,96,96,0,206,96,96,0,193,8,77,253,193,10,77,253,193,12,77,253,193,30,77,253,193,32,77,253,193,34,77,253,193,36,77,253,193,38,77,253,193,40,77,253,193,42,77,253,193,44,77,253,193,74,77,253,193,76,77,253,193,78,77,253,193,80,77,253,193,82,77,253,193,84,77,253,193,108,77,253,193,110,77,253,193,112,77,253,193,126,77,253,193,140,77,253,193,142,77,253,193,186,77,253,193,208,77,253,193,210,77,253,193,224,77,253,193,226,77,253,193,170,77,253,193,174,77,253,193,178,77,253,193,180,77,253,193,182,77,253,193,198,77,253,193,206,77,253,193,242,77,253,193,22,78,253,193,52,78,253,193,82,78,253,193,96,78,253,193,114,78,253,193,148,78,253,193,210,78,253,193,30,79,253,193,32,79,253,193,34,79,253,193,36,79,253,193,38,79,253,193,176,79,253,193,178,79,253,193,68,80,253,193,206,80,253,193,208,80,253,193,210,80,253,193,212,80,253,193,132,81,253,193,134,81,253,193,136,81,253,193,100,82,253,193,102,82,253,193,228,77,253,193,244,77,253,193,246,77,253,193,248,77,253,193,8,78,253,193,24,78,253,193,26,78,253,193,28,78,253,193,30,78,253,193,32,78,253,193,34,78,253,193,54,78,253,193,72,78,253,193,84,78,253,193,98,78,253,193,110,78,253,193,128,78,253,193,136,78,253,193,138,78,253,193,152,78,253,193,164,78,253,193,176,78,253,193,178,78,253,193,182,78,253,193,186,78,253,193,188,78,253,193,190,78,253,193,192,78,253,193,194,78,253,193,196,78,253,193,214,78,253,193,216,78,253,193,122,78,253,193,124,78,253,193,126,78,253,193,130,78,253,193,132,78,253,193,142,78,253,193,144,78,253,193,146,78,253,193,156,78,253,193,158,78,253,193,166,78,253,193,172,78,253,193,174,78,253,193,198,78,253,193,200,78,253,193,202,78,253,193,204,78,253,193,242,78,253,193,244,78,253,193,246,78,253,193,248,78,253,193,250,78,253,193,252,78,253,193,254,78,253,193,2,79,253,193,4,79,253,193,6,79,253,193,8,79,253,193,10,79,253,193,12,79,253,193,14,79,253,193,16,79,253,193,162,78,253,193,24,79,253,193,26,79,253,193,28,79,253,193,172,79,253,193,174,79,253,193,50,80,253,193,52,80,253,193,54,80,253,193,56,80,253,193,58,80,253,193,60,80,253,193,62,80,253,193,64,80,253,193,66,80,253,193,200,80,253,193,202,80,253,193,204,80,253,193,124,81,253,193,126,81,253,193,128,81,253,193,130,81,253,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,193,218,78,253,193,220,78,253,193,222,78,253,193,224,78,253,193,226,78,253,193,228,78,253,193,230,78,253,193,232,78,253,193,234,78,253,193,236,78,253,193,40,79,253,193,42,79,253,193,44,79,253,193,46,79,253,193,48,79,253,193,50,79,253,193,52,79,253,193,54,79,253,193,56,79,253,193,58,79,253,193,60,79,253,193,62,79,253,193,64,79,253,193,66,79,253,193,68,79,253,193,70,79,253,193,72,79,253,193,74,79,253,193,76,79,253,193,78,79,253,193,80,79,253,193,82,79,253,193,18,79,253,193,20,79,253,193,96,79,253,193,98,79,253,193,100,79,253,193,102,79,253,193,104,79,253,193,106,79,253,193,108,79,253,193,110,79,253,193,112,79,253,193,114,79,253,193,116,79,253,193,118,79,253,193,120,79,253,193,122,79,253,193,124,79,253,193,126,79,253,193,128,79,253,193,130,79,253,193,132,79,253,193,134,79,253,193,136,79,253,193,138,79,253,193,140,79,253,193,142,79,253,193,144,79,253,193,146,79,253,193,148,79,253,193,150,79,253,193,152,79,253,193,154,79,253,193,180,79,253,193,182,79,253,193,184,79,253,193,186,79,253,193,188,79,253,193,190,79,253,193,192,79,253,193,194,79,253,193,196,79,253,193,198,79,253,193,200,79,253,193,202,79,253,193,84,79,253,193,204,79,253,193,206,79,253,193,208,79,253,193,210,79,253,193,212,79,253,193,214,79,253,193,216,79,253,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,193,156,79,253,193,158,79,253,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,193,160,79,253,193,162,79,253,193,38,80,253,193,40,80,253,193,42,80,253,193,194,80,253,193,100,81,253,193,102,81,253,193,104,81,253,193,106,81,253,193,108,81,253,193,34,82,253,193,36,82,253,193,38,82,253,193,40,82,253,193,42,82,253,193,44,82,253,193,46,82,253,193,48,82,253,193,48,83,253,193,50,83,253,193,52,83,253,193,54,83,253,193,56,83,253,193,58,83,253,193,60,83,253,193,230,83,253,193,232,83,253,193,234,83,253,193,236,83,253,193,146,84,253,193,148,84,253,193,170,79,253,193,44,80,253,193,46,80,253,193,48,80,253,193,196,80,253,193,198,80,253,193,110,81,253,193,112,81,253,193,114,81,253,193,116,81,253,193,118,81,253,193,120,81,253,193,122,81,253,193,50,82,253,193,52,82,253,193,54,82,253,193,56,82,253,193,58,82,253,193,60,82,253,193,66,83,253,193,68,83,253,193,70,83,253,193,72,83,253,193,74,83,253,193,76,83,253,193,78,83,253,193,238,83,253,193,240,83,253,193,242,83,253,193,244,83,253,193,246,83,253,193,248,83,253,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,128,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,160,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,192,96,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,206,224,96,0,193,138,81,253,193,140,81,253,193,142,81,253,193,144,81,253,193,146,81,253,193,148,81,253,193,150,81,253,193,152,81,253,193,154,81,253,193,156,81,253,193,158,81,253,193,160,81,253,193,162,81,253,193,164,81,253,193,166,81,253,193,168,81,253,193,170,81,253,193,172,81,253,193,174,81,253,193,176,81,253,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,0,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,193,186,81,253,193,172,82,253,193,140,83,253,193,142,83,253,193,144,83,253,193,146,83,253,193,46,84,253,193,48,84,253,193,50,84,253,193,52,84,253,193,230,84,253,193,232,84,253,193,234,84,253,193,236,84,253,193,152,85,253,193,24,86,253,193,26,86,253,193,122,86,253,193,70,87,253,193,106,87,253,193,136,87,253,193,200,87,253,193,202,87,253,193,204,87,253,193,66,88,253,193,68,88,253,193,70,88,253,193,206,88,253,193,208,88,253,193,210,88,253,193,212,88,253,193,214,88,253,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,206,32,97,0,193,174,82,253,193,4,82,253,193,6,82,253,193,8,82,253,193,10,82,253,193,12,82,253,193,14,82,253,193,16,82,253,193,18,82,253,193,20,82,253,193,22,82,253,193,24,82,253,193,26,82,253,193,28,82,253,193,30,82,253,193,176,82,253,193,178,82,253,193,180,82,253,193,32,82,253,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,206,64,97,0,193,80,83,253,193,82,83,253,193,84,83,253,193,86,83,253,193,88,83,253,193,90,83,253,193,92,83,253,193,94,83,253,193,96,83,253,193,98,83,253,193,100,83,253,193,102,83,253,193,104,83,253,193,250,83,253,193,252,83,253,193,254,83,253,193,2,84,253,193,4,84,253,193,6,84,253,193,8,84,253,193,176,84,253,193,178,84,253,193,180,84,253,193,104,82,253,193,106,82,253,193,108,82,253,193,110,82,253,193,112,82,253,193,114,82,253,193,106,83,253,193,108,83,253,193,110,83,253,193,10,84,253,193,12,84,253,193,14,84,253,193,16,84,253,193,18,84,253,193,200,84,253,193,202,84,253,193,204,84,253,193,206,84,253,193,124,85,253,193,126,85,253,193,128,85,253,193,130,85,253,193,10,86,253,193,12,86,253,193,14,86,253,193,16,86,253,193,18,86,253,193,230,86,253,193,52,87,253,193,94,87,253,193,96,87,253,193,166,87,253,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,96,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,206,128,97,0,193,148,83,253,193,150,83,253,193,152,83,253,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,206,160,97,0,193,20,84,253,193,22,84,253,193,24,84,253,193,26,84,253,193,28,84,253,193,30,84,253,193,32,84,253,193,34,84,253,193,36,84,253,193,38,84,253,193,40,84,253,193,42,84,253,193,208,84,253,193,44,84,253,193,210,84,253,193,212,84,253,193,214,84,253,193,216,84,253,193,218,84,253,193,220,84,253,193,222,84,253,193,224,84,253,193,226,84,253,193,132,85,253,193,134,85,253,193,136,85,253,193,154,83,253,193,156,83,253,193,158,83,253,193,160,83,253,193,162,83,253,193,164,83,253,193,166,83,253,193,168,83,253,193,170,83,253,193,172,83,253,193,174,83,253,193,176,83,253,193,178,83,253,193,180,83,253,193,182,83,253,193,184,83,253,193,186,83,253,193,188,83,253,193,190,83,253,193,192,83,253,193,194,83,253,193,196,83,253,193,198,83,253,193,200,83,253,193,202,83,253,193,204,83,253,193,206,83,253,193,208,83,253,193,210,83,253,193,212,83,253,193,214,83,253,193,216,83,253,193,218,83,253,193,220,83,253,193,222,83,253,193,224,83,253,193,226,83,253,193,228,83,253,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,192,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,206,224,97,0,193,150,84,253,193,152,84,253,193,154,84,253,193,156,84,253,193,80,85,253,193,82,85,253,193,84,85,253,193,86,85,253,193,88,85,253,193,90,85,253,193,92,85,253,193,222,85,253,193,82,86,253,193,84,86,253,193,86,86,253,193,88,86,253,193,168,86,253,193,170,86,253,193,12,87,253,193,14,87,253,193,16,87,253,193,18,87,253,193,40,87,253,193,160,87,253,193,10,88,253,193,12,88,253,193,128,88,253,193,130,88,253,193,24,89,253,193,164,89,253,193,166,89,253,193,168,89,253,193,158,84,253,193,160,84,253,193,162,84,253,193,164,84,253,193,166,84,253,193,168,84,253,193,170,84,253,193,172,84,253,193,174,84,253,193,94,85,253,193,96,85,253,193,98,85,253,193,100,85,253,193,102,85,253,193,104,85,253,193,106,85,253,193,108,85,253,193,226,85,253,193,228,85,253,193,230,85,253,193,232,85,253,193,234,85,253,193,236,85,253,193,238,85,253,193,240,85,253,193,242,85,253,193,244,85,253,193,246,85,253,206,64,98,0,206,64,98,0,206,64,98,0,206,64,98,0,193,182,84,253,193,184,84,253,193,186,84,253,193,188,84,253,193,190,84,253,193,192,84,253,193,194,84,253,193,196,84,253,193,198,84,253,193,110,85,253,193,112,85,253,193,114,85,253,193,116,85,253,193,118,85,253,193,120,85,253,193,122,85,253,193,248,85,253,193,250,85,253,193,252,85,253,193,254,85,253,193,2,86,253,193,4,86,253,193,6,86,253,193,8,86,253,193,106,86,253,193,108,86,253,193,110,86,253,193,112,86,253,193,114,86,253,193,186,86,253,193,188,86,253,193,190,86,253,193,138,85,253,193,140,85,253,193,142,85,253,193,144,85,253,193,146,85,253,193,148,85,253,193,228,84,253,193,20,86,253,193,22,86,253,193,150,85,253,193,116,86,253,193,118,86,253,193,120,86,253,193,196,86,253,193,232,86,253,193,54,87,253,193,56,87,253,193,98,87,253,193,102,87,253,193,104,87,253,193,116,87,253,193,118,87,253,193,120,87,253,193,122,87,253,193,124,87,253,193,126,87,253,193,128,87,253,193,130,87,253,193,132,87,253,193,134,87,253,193,170,87,253,193,172,87,253,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,0,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,206,32,98,0,193,28,86,253,193,30,86,253,193,32,86,253,193,34,86,253,193,36,86,253,193,38,86,253,193,40,86,253,193,42,86,253,193,44,86,253,193,46,86,253,193,48,86,253,193,50,86,253,193,52,86,253,193,54,86,253,193,56,86,253,193,58,86,253,193,60,86,253,193,62,86,253,193,64,86,253,193,66,86,253,193,68,86,253,193,70,86,253,193,72,86,253,193,74,86,253,193,76,86,253,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,193,80,86,253,193,132,137,253,193,134,137,253,193,136,137,253,193,138,137,253,193,140,137,253,193,142,137,253,193,144,137,253,193,146,137,253,193,148,137,253,193,150,137,253,193,152,137,253,193,154,137,253,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,64,98,0,206,64,98,0,206,64,98,0,206,64,98,0,193,172,86,253,193,174,86,253,193,176,86,253,193,178,86,253,193,180,86,253,193,182,86,253,193,184,86,253,193,218,86,253,193,220,86,253,193,222,86,253,193,224,86,253,193,42,87,253,193,44,87,253,193,46,87,253,193,48,87,253,193,112,87,253,193,114,87,253,193,14,88,253,193,16,88,253,193,134,88,253,193,136,88,253,193,138,88,253,193,26,89,253,193,28,89,253,193,30,89,253,193,32,89,253,193,170,89,253,193,172,89,253,193,192,86,253,193,194,86,253,193,226,86,253,193,228,86,253,193,20,87,253,193,22,87,253,193,24,87,253,193,50,87,253,193,86,87,253,193,90,87,253,193,162,87,253,193,164,87,253,193,18,88,253,193,20,88,253,193,22,88,253,193,140,88,253,193,142,88,253,193,144,88,253,193,146,88,253,193,148,88,253,193,150,88,253,193,152,88,253,193,154,88,253,193,34,89,253,193,36,89,253,193,38,89,253,193,40,89,253,193,184,89,253,193,186,89,253,193,78,90,253,193,80,90,253,193,82,90,253,193,214,86,253,193,216,86,253,193,234,86,253,193,236,86,253,193,238,86,253,193,240,86,253,193,242,86,253,193,244,86,253,193,246,86,253,193,248,86,253,193,250,86,253,193,252,86,253,193,254,86,253,193,2,87,253,193,4,87,253,193,6,87,253,193,8,87,253,193,10,87,253,193,26,87,253,193,28,87,253,193,30,87,253,193,32,87,253,193,34,87,253,193,36,87,253,193,38,87,253,193,58,87,253,193,60,87,253,193,62,87,253,193,64,87,253,193,66,87,253,193,68,87,253,193,72,87,253,193,74,87,253,193,76,87,253,193,78,87,253,193,80,87,253,193,82,87,253,193,84,87,253,193,88,87,253,193,92,87,253,193,100,87,253,193,108,87,253,193,110,87,253,193,138,87,253,193,140,87,253,193,142,87,253,193,144,87,253,193,146,87,253,193,148,87,253,193,150,87,253,193,152,87,253,193,154,87,253,193,156,87,253,193,158,87,253,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,193,168,87,253,193,24,88,253,193,26,88,253,193,28,88,253,193,30,88,253,193,32,88,253,193,34,88,253,193,156,88,253,193,158,88,253,193,42,89,253,193,188,89,253,193,190,89,253,193,192,89,253,193,84,90,253,193,86,90,253,193,88,90,253,193,90,90,253,193,92,90,253,193,228,90,253,193,230,90,253,193,76,91,253,193,78,91,253,193,80,91,253,193,82,91,253,193,84,91,253,193,206,91,253,193,208,91,253,193,210,91,253,193,76,92,253,193,158,92,253,193,212,92,253,193,20,93,253,193,174,87,253,193,176,87,253,193,178,87,253,193,180,87,253,193,182,87,253,193,184,87,253,193,186,87,253,193,188,87,253,193,190,87,253,193,192,87,253,193,194,87,253,193,196,87,253,193,198,87,253,193,36,88,253,193,38,88,253,193,40,88,253,193,42,88,253,193,44,88,253,193,46,88,253,193,48,88,253,193,50,88,253,193,52,88,253,193,54,88,253,193,56,88,253,193,58,88,253,193,60,88,253,193,62,88,253,193,64,88,253,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,96,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,128,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,206,160,98,0,193,44,89,253,193,204,88,253,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,193,216,88,253,193,218,88,253,193,220,88,253,193,86,89,253,193,88,89,253,193,90,89,253,193,92,89,253,193,94,89,253,193,96,89,253,193,98,89,253,193,228,89,253,193,230,89,253,193,232,89,253,193,234,89,253,193,236,89,253,193,238,89,253,193,130,90,253,193,132,90,253,193,134,90,253,193,4,91,253,193,6,91,253,193,8,91,253,193,10,91,253,193,12,91,253,193,114,91,253,193,116,91,253,193,118,91,253,193,120,91,253,193,122,91,253,193,238,91,253,193,240,91,253,193,242,91,253,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,192,98,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,206,224,98,0,193,194,89,253,193,196,89,253,193,198,89,253,193,200,89,253,193,202,89,253,193,204,89,253,193,206,89,253,193,208,89,253,193,210,89,253,193,212,89,253,193,214,89,253,193,216,89,253,193,218,89,253,193,220,89,253,193,222,89,253,193,224,89,253,193,226,89,253,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,0,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,193,174,89,253,193,176,89,253,193,178,89,253,193,180,89,253,193,182,89,253,193,66,90,253,193,68,90,253,193,70,90,253,193,72,90,253,193,74,90,253,193,76,90,253,193,210,90,253,193,212,90,253,193,214,90,253,193,216,90,253,193,218,90,253,193,220,90,253,193,196,91,253,193,198,91,253,193,200,91,253,193,202,91,253,193,66,92,253,193,68,92,253,193,138,92,253,193,140,92,253,193,142,92,253,193,144,92,253,193,146,92,253,193,206,92,253,193,10,93,253,193,12,93,253,193,14,93,253,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,206,32,99,0,193,136,90,253,193,138,90,253,193,140,90,253,193,142,90,253,193,144,90,253,193,146,90,253,193,148,90,253,193,150,90,253,193,14,91,253,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,193,58,90,253,193,60,90,253,193,62,90,253,193,204,90,253,193,206,90,253,193,66,91,253,193,68,91,253,193,190,91,253,193,192,91,253,193,194,91,253,193,134,92,253,193,136,92,253,193,204,92,253,193,8,93,253,193,52,93,253,193,54,93,253,193,56,93,253,193,106,93,253,193,144,93,253,193,190,93,253,193,208,94,253,193,210,94,253,193,48,95,253,193,50,95,253,193,52,95,253,193,164,95,253,193,146,96,253,193,234,96,253,193,68,97,253,193,70,97,253,193,166,97,253,193,222,97,253,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,206,64,99,0,193,232,90,253,193,234,90,253,193,236,90,253,193,238,90,253,193,240,90,253,193,242,90,253,193,244,90,253,193,246,90,253,193,248,90,253,193,250,90,253,193,252,90,253,193,254,90,253,193,2,91,253,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,96,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,193,222,90,253,193,224,90,253,193,226,90,253,193,70,91,253,193,72,91,253,193,74,91,253,193,204,91,253,193,70,92,253,193,72,92,253,193,74,92,253,193,148,92,253,193,150,92,253,193,152,92,253,193,154,92,253,193,156,92,253,193,208,92,253,193,210,92,253,193,16,93,253,193,18,93,253,193,90,93,253,193,108,93,253,193,150,93,253,193,160,93,253,193,162,93,253,193,192,93,253,193,194,93,253,193,196,93,253,193,30,94,253,193,32,94,253,193,34,94,253,193,36,94,253,193,38,94,253,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,128,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,206,160,99,0,193,212,91,253,193,214,91,253,193,216,91,253,193,218,91,253,193,220,91,253,193,222,91,253,193,224,91,253,193,226,91,253,193,228,91,253,193,230,91,253,193,232,91,253,193,234,91,253,193,236,91,253,193,78,92,253,193,80,92,253,193,82,92,253,193,84,92,253,193,86,92,253,193,160,92,253,193,162,92,253,193,214,92,253,193,216,92,253,193,218,92,253,193,220,92,253,193,222,92,253,193,22,93,253,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,206,192,99,0,193,246,91,253,193,248,91,253,193,250,91,253,193,252,91,253,193,254,91,253,193,2,92,253,193,4,92,253,193,6,92,253,193,8,92,253,193,10,92,253,193,12,92,253,193,14,92,253,193,16,92,253,193,18,92,253,193,188,91,253,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,193,244,91,253,193,88,92,253,193,164,92,253,193,122,93,253,193,124,93,253,193,156,93,253,193,158,93,253,193,178,93,253,193,180,93,253,193,224,93,253,193,226,93,253,193,228,93,253,193,230,93,253,193,232,93,253,193,58,94,253,193,60,94,253,193,62,94,253,193,64,94,253,193,66,94,253,193,68,94,253,193,158,94,253,193,160,94,253,193,162,94,253,193,164,94,253,193,166,94,253,193,168,94,253,193,2,95,253,193,4,95,253,193,98,95,253,193,100,95,253,193,102,95,253,193,104,95,253,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,224,99,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,206,0,100,0,193,166,92,253,193,168,92,253,193,170,92,253,193,172,92,253,193,174,92,253,193,176,92,253,193,178,92,253,193,180,92,253,193,182,92,253,193,184,92,253,193,186,92,253,193,188,92,253,193,190,92,253,193,192,92,253,193,194,92,253,193,196,92,253,193,198,92,253,193,200,92,253,193,202,92,253,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,206,32,100,0,193,28,93,253,193,30,93,253,193,32,93,253,193,34,93,253,193,36,93,253,193,38,93,253,193,40,93,253,193,42,93,253,193,44,93,253,193,46,93,253,193,48,93,253,193,50,93,253,193,72,93,253,193,74,93,253,193,76,93,253,193,78,93,253,193,80,93,253,193,82,93,253,193,84,93,253,193,24,93,253,193,68,93,253,193,26,93,253,193,70,93,253,193,92,93,253,193,94,93,253,193,96,93,253,193,110,93,253,193,112,93,253,193,148,93,253,193,152,93,253,193,154,93,253,193,164,93,253,193,166,93,253,193,168,93,253,193,170,93,253,193,172,93,253,193,174,93,253,193,176,93,253,193,200,93,253,193,202,93,253,193,204,93,253,193,206,93,253,193,208,93,253,193,210,93,253,193,212,93,253,193,214,93,253,193,216,93,253,193,218,93,253,193,220,93,253,193,222,93,253,193,44,94,253,193,58,93,253,193,60,93,253,193,62,93,253,193,86,93,253,193,88,93,253,193,140,93,253,193,26,94,253,193,28,94,253,193,120,94,253,193,214,94,253,193,54,95,253,193,56,95,253,193,58,95,253,193,28,96,253,193,30,96,253,193,32,96,253,193,34,96,253,193,36,96,253,193,148,96,253,193,150,96,253,193,152,96,253,193,154,96,253,193,236,96,253,193,130,97,253,193,132,97,253,193,134,97,253,193,36,98,253,193,56,98,253,193,136,98,253,193,138,98,253,193,146,98,253,193,192,98,253,193,64,93,253,193,66,93,253,193,146,93,253,193,198,93,253,193,42,94,253,193,130,94,253,193,132,94,253,193,66,95,253,193,68,95,253,193,70,95,253,193,180,95,253,193,182,95,253,193,184,95,253,193,52,96,253,193,54,96,253,193,158,96,253,193,246,96,253,193,248,96,253,193,250,96,253,193,80,97,253,193,82,97,253,193,176,97,253,193,202,97,253,193,48,98,253,193,100,98,253,193,122,98,253,193,176,98,253,193,178,98,253,193,180,98,253,193,182,98,253,193,196,98,253,193,120,99,253,193,98,93,253,193,100,93,253,193,102,93,253,193,104,93,253,193,114,93,253,193,116,93,253,193,118,93,253,193,120,93,253,193,126,93,253,193,128,93,253,193,130,93,253,193,132,93,253,193,134,93,253,193,136,93,253,193,138,93,253,193,142,93,253,193,182,93,253,193,184,93,253,193,186,93,253,193,188,93,253,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,64,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,193,40,94,253,193,122,94,253,193,124,94,253,193,126,94,253,193,128,94,253,193,216,94,253,193,218,94,253,193,220,94,253,193,222,94,253,193,224,94,253,193,226,94,253,193,60,95,253,193,62,95,253,193,64,95,253,193,166,95,253,193,168,95,253,193,170,95,253,193,172,95,253,193,174,95,253,193,176,95,253,193,178,95,253,193,38,96,253,193,40,96,253,193,42,96,253,193,44,96,253,193,46,96,253,193,48,96,253,193,50,96,253,193,156,96,253,193,238,96,253,193,240,96,253,193,242,96,253,193,46,94,253,193,48,94,253,193,50,94,253,193,52,94,253,193,54,94,253,193,56,94,253,193,134,94,253,193,136,94,253,193,138,94,253,193,140,94,253,193,142,94,253,193,144,94,253,193,146,94,253,193,148,94,253,193,150,94,253,193,152,94,253,193,154,94,253,193,156,94,253,193,228,94,253,193,230,94,253,193,232,94,253,193,234,94,253,193,236,94,253,193,238,94,253,193,240,94,253,193,242,94,253,193,244,94,253,193,246,94,253,193,248,94,253,193,250,94,253,193,252,94,253,193,254,94,253,206,96,100,0,206,96,100,0,206,96,100,0,206,96,100,0,193,170,94,253,193,172,94,253,193,174,94,253,193,176,94,253,193,178,94,253,193,180,94,253,193,182,94,253,193,184,94,253,193,186,94,253,193,188,94,253,193,190,94,253,193,192,94,253,193,194,94,253,193,196,94,253,193,198,94,253,193,200,94,253,193,202,94,253,193,204,94,253,193,206,94,253,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,128,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,193,72,95,253,193,74,95,253,193,76,95,253,193,78,95,253,193,80,95,253,193,82,95,253,193,84,95,253,193,86,95,253,193,88,95,253,193,90,95,253,193,92,95,253,193,94,95,253,193,96,95,253,193,186,95,253,193,188,95,253,193,190,95,253,193,192,95,253,193,194,95,253,193,196,95,253,193,198,95,253,193,200,95,253,193,202,95,253,193,204,95,253,193,206,95,253,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,160,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,193,208,95,253,193,210,95,253,193,212,95,253,193,214,95,253,193,216,95,253,193,218,95,253,193,220,95,253,193,222,95,253,193,224,95,253,193,82,96,253,193,84,96,253,193,86,96,253,193,88,96,253,193,176,96,253,193,8,97,253,193,10,97,253,193,12,97,253,193,14,97,253,193,16,97,253,193,146,97,253,193,148,97,253,193,178,97,253,193,180,97,253,193,232,97,253,193,234,97,253,193,18,98,253,193,112,98,253,193,24,99,253,193,88,99,253,193,220,99,253,193,222,99,253,193,224,99,253,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,206,192,100,0,193,90,96,253,193,92,96,253,193,94,96,253,193,96,96,253,193,98,96,253,193,100,96,253,193,102,96,253,193,104,96,253,193,106,96,253,193,108,96,253,193,110,96,253,193,112,96,253,193,114,96,253,193,116,96,253,193,118,96,253,193,120,96,253,193,122,96,253,193,124,96,253,193,126,96,253,193,128,96,253,193,130,96,253,193,132,96,253,193,134,96,253,193,136,96,253,193,138,96,253,193,140,96,253,193,142,96,253,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,206,224,100,0,193,160,96,253,193,162,96,253,193,164,96,253,193,166,96,253,193,168,96,253,193,170,96,253,193,172,96,253,193,174,96,253,193,252,96,253,193,254,96,253,193,2,97,253,193,4,97,253,193,6,97,253,193,84,97,253,193,86,97,253,193,88,97,253,193,90,97,253,193,92,97,253,193,94,97,253,193,96,97,253,193,140,97,253,193,142,97,253,193,144,97,253,193,204,97,253,193,224,97,253,193,226,97,253,193,228,97,253,193,144,96,253,193,178,96,253,193,180,96,253,193,182,96,253,193,184,96,253,193,186,96,253,193,188,96,253,193,190,96,253,193,192,96,253,193,194,96,253,193,196,96,253,193,198,96,253,193,200,96,253,193,202,96,253,193,204,96,253,193,206,96,253,193,208,96,253,193,210,96,253,193,212,96,253,193,214,96,253,193,216,96,253,193,218,96,253,193,220,96,253,193,222,96,253,193,224,96,253,193,226,96,253,193,228,96,253,193,230,96,253,193,232,96,253,193,18,97,253,193,20,97,253,193,22,97,253,193,244,96,253,193,72,97,253,193,74,97,253,193,76,97,253,193,78,97,253,193,136,97,253,193,138,97,253,193,168,97,253,193,170,97,253,193,172,97,253,193,174,97,253,193,198,97,253,193,200,97,253,193,246,97,253,193,38,98,253,193,46,98,253,193,74,98,253,193,86,98,253,193,120,98,253,193,140,98,253,193,148,98,253,193,150,98,253,193,152,98,253,193,158,98,253,193,160,98,253,193,168,98,253,193,174,98,253,193,208,98,253,193,212,98,253,193,214,98,253,193,222,98,253,193,224,98,253,193,24,97,253,193,26,97,253,193,28,97,253,193,30,97,253,193,32,97,253,193,34,97,253,193,36,97,253,193,38,97,253,193,40,97,253,193,42,97,253,193,44,97,253,193,46,97,253,193,48,97,253,193,50,97,253,193,52,97,253,193,54,97,253,193,56,97,253,193,58,97,253,193,60,97,253,193,62,97,253,193,64,97,253,193,66,97,253,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,206,0,101,0,193,150,97,253,193,152,97,253,193,154,97,253,193,156,97,253,193,158,97,253,193,160,97,253,193,162,97,253,193,164,97,253,193,182,97,253,193,184,97,253,193,186,97,253,193,188,97,253,193,190,97,253,193,192,97,253,193,194,97,253,193,196,97,253,193,206,97,253,193,208,97,253,193,210,97,253,193,212,97,253,193,214,97,253,193,216,97,253,193,218,97,253,193,220,97,253,193,236,97,253,193,238,97,253,193,230,97,253,193,248,97,253,193,250,97,253,193,2,98,253,193,4,98,253,193,10,98,253,193,30,98,253,193,32,98,253,193,40,98,253,193,50,98,253,193,52,98,253,193,88,98,253,193,98,98,253,193,102,98,253,193,110,98,253,193,124,98,253,193,198,98,253,193,242,98,253,193,244,98,253,193,246,98,253,193,248,98,253,193,250,98,253,193,252,98,253,193,254,98,253,193,2,99,253,193,4,99,253,193,6,99,253,193,8,99,253,193,10,99,253,193,12,99,253,193,14,99,253,193,16,99,253,193,240,97,253,193,242,97,253,193,244,97,253,193,252,97,253,193,254,97,253,193,6,98,253,193,8,98,253,193,12,98,253,193,14,98,253,193,16,98,253,193,20,98,253,193,22,98,253,193,24,98,253,193,26,98,253,193,28,98,253,193,34,98,253,193,42,98,253,193,44,98,253,193,58,98,253,193,60,98,253,193,62,98,253,193,64,98,253,193,66,98,253,193,68,98,253,193,70,98,253,193,72,98,253,193,78,98,253,193,80,98,253,193,82,98,253,193,84,98,253,193,90,98,253,193,92,98,253,193,54,98,253,193,118,98,253,193,134,98,253,193,156,98,253,193,190,98,253,193,210,98,253,193,106,99,253,193,108,99,253,193,110,99,253,193,112,99,253,193,28,100,253,193,30,100,253,193,32,100,253,193,34,100,253,193,36,100,253,193,24,101,253,193,26,101,253,193,28,101,253,193,30,101,253,193,32,101,253,193,34,101,253,193,22,102,253,193,24,102,253,193,26,102,253,193,28,102,253,193,30,102,253,193,32,102,253,193,34,102,253,193,36,102,253,193,98,103,253,193,100,103,253,193,102,103,253,193,94,98,253,193,96,98,253,193,114,98,253,193,106,98,253,193,108,98,253,193,116,98,253,193,126,98,253,193,128,98,253,193,130,98,253,193,132,98,253,193,142,98,253,193,144,98,253,193,154,98,253,193,162,98,253,193,164,98,253,193,166,98,253,193,170,98,253,193,172,98,253,193,186,98,253,193,188,98,253,193,200,98,253,193,202,98,253,193,204,98,253,193,206,98,253,193,218,98,253,193,232,98,253,193,234,98,253,193,238,98,253,193,240,98,253,193,26,99,253,193,28,99,253,193,30,99,253,193,194,98,253,193,220,98,253,193,38,100,253,193,40,100,253,193,42,100,253,193,44,100,253,193,36,101,253,193,38,101,253,193,40,101,253,193,42,101,253,193,44,101,253,193,46,101,253,193,48,101,253,193,40,102,253,193,42,102,253,193,44,102,253,193,46,102,253,193,48,102,253,193,50,102,253,193,52,102,253,193,116,103,253,193,118,103,253,193,120,103,253,193,122,103,253,193,124,103,253,193,126,103,253,193,128,103,253,193,130,103,253,193,132,103,253,193,134,103,253,193,136,103,253,193,138,103,253,193,226,98,253,193,228,98,253,193,230,98,253,193,236,98,253,193,114,99,253,193,116,99,253,193,118,99,253,193,46,100,253,193,48,100,253,193,50,100,253,193,52,100,253,193,54,100,253,193,56,100,253,193,58,100,253,193,50,101,253,193,52,101,253,193,54,101,253,193,54,102,253,193,56,102,253,193,58,102,253,193,60,102,253,193,62,102,253,193,64,102,253,193,66,102,253,193,142,103,253,193,144,103,253,193,146,103,253,193,148,103,253,193,150,103,253,193,152,103,253,193,154,103,253,193,156,103,253,193,18,99,253,193,20,99,253,193,22,99,253,193,36,99,253,193,38,99,253,193,40,99,253,193,42,99,253,193,44,99,253,193,46,99,253,193,48,99,253,193,50,99,253,193,52,99,253,193,54,99,253,193,56,99,253,193,58,99,253,193,60,99,253,193,62,99,253,193,64,99,253,193,66,99,253,193,68,99,253,193,70,99,253,193,72,99,253,193,74,99,253,193,76,99,253,193,78,99,253,193,80,99,253,193,82,99,253,193,84,99,253,193,86,99,253,193,124,99,253,193,126,99,253,193,128,99,253,193,32,99,253,193,34,99,253,193,90,99,253,193,92,99,253,193,94,99,253,193,96,99,253,193,98,99,253,193,100,99,253,193,102,99,253,193,104,99,253,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,193,122,99,253,193,60,100,253,193,62,100,253,193,64,100,253,193,56,101,253,193,58,101,253,193,60,101,253,193,68,102,253,193,70,102,253,193,72,102,253,193,74,102,253,193,76,102,253,193,78,102,253,193,162,103,253,193,164,103,253,193,166,103,253,193,168,103,253,193,170,103,253,193,172,103,253,193,174,103,253,193,176,103,253,193,80,105,253,193,82,105,253,193,84,105,253,193,86,105,253,193,88,105,253,193,90,105,253,193,214,106,253,193,216,106,253,193,218,106,253,193,220,106,253,193,222,106,253,193,130,99,253,193,132,99,253,193,134,99,253,193,136,99,253,193,138,99,253,193,140,99,253,193,142,99,253,193,144,99,253,193,146,99,253,193,148,99,253,193,150,99,253,193,152,99,253,193,154,99,253,193,156,99,253,193,158,99,253,193,160,99,253,193,162,99,253,193,164,99,253,193,166,99,253,193,168,99,253,193,170,99,253,193,172,99,253,193,174,99,253,193,176,99,253,193,178,99,253,193,180,99,253,193,182,99,253,193,184,99,253,193,186,99,253,193,188,99,253,193,190,99,253,193,192,99,253,193,194,99,253,193,196,99,253,193,198,99,253,193,200,99,253,193,202,99,253,193,204,99,253,193,206,99,253,193,208,99,253,193,210,99,253,193,212,99,253,193,214,99,253,193,216,99,253,193,218,99,253,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,193,226,99,253,193,214,100,253,193,216,100,253,193,218,100,253,193,180,101,253,193,182,101,253,193,184,101,253,193,186,101,253,193,188,101,253,193,190,101,253,193,192,101,253,193,220,102,253,193,222,102,253,193,224,102,253,193,226,102,253,193,228,102,253,193,230,102,253,193,232,102,253,193,234,102,253,193,90,104,253,193,92,104,253,193,94,104,253,193,96,104,253,193,222,105,253,193,224,105,253,193,226,105,253,193,228,105,253,193,230,105,253,193,232,105,253,193,86,107,253,193,88,107,253,193,90,107,253,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,206,32,101,0,193,220,100,253,193,222,100,253,193,224,100,253,193,226,100,253,193,228,100,253,193,230,100,253,193,232,100,253,193,234,100,253,193,236,100,253,193,238,100,253,193,240,100,253,193,242,100,253,193,244,100,253,193,246,100,253,193,248,100,253,193,250,100,253,193,252,100,253,193,254,100,253,193,2,101,253,193,4,101,253,193,6,101,253,193,8,101,253,193,10,101,253,193,12,101,253,193,14,101,253,193,16,101,253,193,18,101,253,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,206,64,101,0,193,62,101,253,193,64,101,253,193,66,101,253,193,68,101,253,193,70,101,253,193,72,101,253,193,74,101,253,193,178,103,253,193,76,101,253,193,78,101,253,193,80,101,253,193,82,101,253,193,84,101,253,193,86,101,253,193,88,101,253,193,90,101,253,193,92,101,253,193,94,101,253,193,96,101,253,193,98,101,253,193,100,101,253,193,102,101,253,193,104,101,253,193,106,101,253,193,108,101,253,193,110,101,253,193,210,100,253,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,96,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,193,252,101,253,193,254,101,253,193,2,102,253,193,4,102,253,193,6,102,253,193,8,102,253,193,10,102,253,193,12,102,253,193,14,102,253,193,16,102,253,193,18,102,253,193,20,102,253,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,128,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,160,101,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,193,104,103,253,193,106,103,253,193,108,103,253,193,110,103,253,193,112,103,253,193,114,103,253,193,244,104,253,193,246,104,253,193,248,104,253,193,250,104,253,193,252,104,253,193,254,104,253,193,2,105,253,193,4,105,253,193,6,105,253,193,8,105,253,193,156,106,253,193,158,106,253,193,160,106,253,193,162,106,253,193,164,106,253,193,166,106,253,193,168,106,253,193,170,106,253,193,252,107,253,193,254,107,253,193,2,108,253,193,4,108,253,193,6,108,253,193,8,108,253,193,10,108,253,193,66,109,253,193,140,103,253,193,10,105,253,193,12,105,253,193,14,105,253,193,16,105,253,193,18,105,253,193,20,105,253,193,22,105,253,193,24,105,253,193,26,105,253,193,28,105,253,193,30,105,253,193,32,105,253,193,172,106,253,193,174,106,253,193,176,106,253,193,178,106,253,193,180,106,253,193,182,106,253,193,14,108,253,193,16,108,253,193,18,108,253,193,20,108,253,193,22,108,253,193,24,108,253,193,26,108,253,193,28,108,253,193,30,108,253,193,32,108,253,193,34,108,253,193,36,108,253,193,76,109,253,193,158,103,253,193,160,103,253,193,34,105,253,193,36,105,253,193,38,105,253,193,40,105,253,193,42,105,253,193,44,105,253,193,46,105,253,193,48,105,253,193,50,105,253,193,52,105,253,193,54,105,253,193,56,105,253,193,58,105,253,193,60,105,253,193,62,105,253,193,64,105,253,193,66,105,253,193,68,105,253,193,70,105,253,193,72,105,253,193,74,105,253,193,76,105,253,193,78,105,253,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,206,192,101,0,193,92,105,253,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,206,224,101,0,193,94,105,253,193,84,104,253,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,0,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,32,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,64,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,206,96,102,0,193,38,108,253,193,40,108,253,193,42,108,253,193,44,108,253,193,46,108,253,193,48,108,253,193,50,108,253,193,52,108,253,193,54,108,253,193,56,108,253,193,58,108,253,193,60,108,253,193,88,109,253,193,90,109,253,193,92,109,253,193,94,109,253,193,96,109,253,193,98,109,253,193,100,109,253,193,102,109,253,193,104,109,253,193,106,109,253,193,156,110,253,193,158,110,253,193,224,106,253,193,226,106,253,193,62,108,253,193,64,108,253,193,108,109,253,193,110,109,253,193,190,110,253,193,192,110,253,193,194,110,253,193,196,110,253,193,198,110,253,193,200,110,253,193,202,110,253,193,194,111,253,193,106,112,253,193,108,112,253,193,110,112,253,193,112,112,253,193,8,113,253,193,68,114,253,193,84,114,253,193,106,114,253,193,108,114,253,193,150,114,253,193,152,114,253,193,154,114,253,193,156,114,253,193,158,114,253,206,0,104,0,206,0,104,0,206,0,104,0,206,0,104,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,206,128,102,0,193,66,108,253,193,40,107,253,193,42,107,253,193,44,107,253,193,46,107,253,193,48,107,253,193,50,107,253,193,52,107,253,193,54,107,253,193,56,107,253,193,58,107,253,193,60,107,253,193,62,107,253,193,64,107,253,193,66,107,253,193,68,107,253,193,70,107,253,193,72,107,253,193,74,107,253,193,76,107,253,193,78,107,253,193,80,107,253,193,82,107,253,193,92,107,253,193,94,107,253,193,96,107,253,193,98,107,253,193,100,107,253,193,102,107,253,193,104,107,253,193,106,107,253,193,172,108,253,193,174,108,253,193,176,108,253,193,178,108,253,193,180,108,253,193,182,108,253,193,184,108,253,193,186,108,253,193,188,108,253,193,190,108,253,193,192,108,253,193,194,108,253,193,216,109,253,193,218,109,253,193,220,109,253,193,222,109,253,193,224,109,253,193,226,109,253,193,228,109,253,193,230,109,253,193,232,109,253,193,2,111,253,193,4,111,253,193,6,111,253,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,160,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,206,192,102,0,193,112,109,253,193,204,110,253,193,114,109,253,193,116,109,253,193,118,109,253,193,120,109,253,193,170,108,253,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,206,224,102,0,193,234,109,253,193,236,109,253,193,238,109,253,193,240,109,253,193,242,109,253,193,244,109,253,193,246,109,253,193,248,109,253,193,22,111,253,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,193,68,109,253,193,70,109,253,193,72,109,253,193,74,109,253,193,122,110,253,193,124,110,253,193,126,110,253,193,128,110,253,193,130,110,253,193,132,110,253,193,134,110,253,193,136,110,253,193,138,110,253,193,140,110,253,193,142,110,253,193,146,111,253,193,148,111,253,193,150,111,253,193,152,111,253,193,154,111,253,193,156,111,253,193,158,111,253,193,74,112,253,193,76,112,253,193,78,112,253,193,80,112,253,193,82,112,253,193,236,112,253,193,238,112,253,193,84,113,253,193,86,113,253,193,88,113,253,193,78,109,253,193,80,109,253,193,82,109,253,193,84,109,253,193,86,109,253,193,144,110,253,193,146,110,253,193,148,110,253,193,150,110,253,193,152,110,253,193,154,110,253,193,160,111,253,193,162,111,253,193,164,111,253,193,166,111,253,193,168,111,253,193,170,111,253,193,172,111,253,193,84,112,253,193,86,112,253,193,88,112,253,193,90,112,253,193,92,112,253,193,94,112,253,193,240,112,253,193,242,112,253,193,244,112,253,193,246,112,253,193,90,113,253,193,92,113,253,193,94,113,253,193,160,113,253,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,206,0,103,0,193,206,110,253,193,208,110,253,193,210,110,253,193,212,110,253,193,214,110,253,193,216,110,253,193,218,110,253,193,220,110,253,193,222,110,253,193,224,110,253,193,226,110,253,193,228,110,253,193,230,110,253,193,232,110,253,193,234,110,253,193,236,110,253,193,238,110,253,193,240,110,253,193,242,110,253,193,244,110,253,193,246,110,253,193,248,110,253,193,250,110,253,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,32,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,193,160,110,253,193,162,110,253,193,164,110,253,193,166,110,253,193,168,110,253,193,170,110,253,193,172,110,253,193,174,110,253,193,176,110,253,193,178,110,253,193,180,110,253,193,182,110,253,193,184,110,253,193,186,110,253,193,188,110,253,193,174,111,253,193,176,111,253,193,178,111,253,193,180,111,253,193,182,111,253,193,184,111,253,193,186,111,253,193,188,111,253,193,190,111,253,193,192,111,253,193,96,112,253,193,98,112,253,193,100,112,253,193,102,112,253,193,104,112,253,193,248,112,253,193,250,112,253,193,252,110,253,193,254,110,253,193,196,111,253,193,198,111,253,193,200,111,253,193,202,111,253,193,204,111,253,193,206,111,253,193,208,111,253,193,210,111,253,193,212,111,253,193,214,111,253,193,216,111,253,193,218,111,253,193,220,111,253,193,222,111,253,193,224,111,253,193,226,111,253,193,228,111,253,193,230,111,253,193,232,111,253,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,193,8,111,253,193,10,111,253,193,12,111,253,193,14,111,253,193,16,111,253,193,18,111,253,193,20,111,253,193,236,111,253,193,238,111,253,193,240,111,253,193,242,111,253,193,244,111,253,193,246,111,253,193,248,111,253,193,250,111,253,193,150,112,253,193,152,112,253,193,154,112,253,193,156,112,253,193,158,112,253,193,160,112,253,193,20,113,253,193,22,113,253,193,24,113,253,193,120,113,253,193,46,114,253,193,208,114,253,193,210,114,253,193,212,114,253,193,88,115,253,193,90,115,253,193,92,115,253,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,64,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,206,128,103,0,193,234,111,253,193,10,113,253,193,12,113,253,193,14,113,253,193,16,113,253,193,18,113,253,193,106,113,253,193,108,113,253,193,110,113,253,193,112,113,253,193,114,113,253,193,116,113,253,193,118,113,253,193,168,113,253,193,170,113,253,193,172,113,253,193,174,113,253,193,176,113,253,193,178,113,253,193,180,113,253,193,234,113,253,193,236,113,253,193,238,113,253,193,240,113,253,193,242,113,253,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,96,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,206,160,103,0,193,26,113,253,193,28,113,253,193,30,113,253,193,252,112,253,193,254,112,253,193,2,113,253,193,4,113,253,193,6,113,253,193,96,113,253,193,98,113,253,193,100,113,253,193,102,113,253,193,104,113,253,193,164,113,253,193,166,113,253,193,230,113,253,193,232,113,253,193,14,114,253,193,40,114,253,193,76,114,253,193,82,114,253,193,148,114,253,193,4,115,253,193,140,116,253,193,24,117,253,193,214,117,253,193,138,118,253,193,214,118,253,193,244,118,253,193,246,118,253,193,26,119,253,193,62,119,253,193,64,119,253,193,82,119,253,193,84,119,253,193,32,113,253,193,34,113,253,193,36,113,253,193,38,113,253,193,40,113,253,193,42,113,253,193,44,113,253,193,46,113,253,193,48,113,253,193,50,113,253,193,52,113,253,193,54,113,253,193,56,113,253,193,58,113,253,193,60,113,253,193,62,113,253,193,64,113,253,193,66,113,253,193,68,113,253,193,70,113,253,193,72,113,253,193,74,113,253,193,76,113,253,193,78,113,253,193,80,113,253,193,82,113,253,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,206,192,103,0,193,182,113,253,193,184,113,253,193,186,113,253,193,188,113,253,193,190,113,253,193,192,113,253,193,194,113,253,193,196,113,253,193,198,113,253,193,200,113,253,193,202,113,253,193,204,113,253,193,206,113,253,193,208,113,253,193,210,113,253,193,212,113,253,193,214,113,253,193,216,113,253,193,218,113,253,193,220,113,253,193,222,113,253,193,244,113,253,193,246,113,253,193,248,113,253,193,250,113,253,193,252,113,253,193,254,113,253,193,2,114,253,193,4,114,253,193,6,114,253,193,8,114,253,193,10,114,253,193,22,114,253,193,24,114,253,193,26,114,253,193,28,114,253,193,30,114,253,193,32,114,253,193,34,114,253,193,36,114,253,193,152,113,253,193,48,114,253,193,50,114,253,193,52,114,253,193,54,114,253,193,56,114,253,193,60,114,253,193,62,114,253,193,64,114,253,193,70,114,253,193,74,114,253,193,78,114,253,193,80,114,253,193,132,114,253,193,134,114,253,193,154,113,253,193,156,113,253,193,158,113,253,193,224,113,253,193,12,114,253,193,102,114,253,193,136,114,253,193,220,114,253,193,222,114,253,193,224,114,253,193,226,114,253,193,228,114,253,193,102,115,253,193,104,115,253,193,106,115,253,193,246,115,253,193,248,115,253,193,250,115,253,193,252,115,253,193,254,115,253,193,2,116,253,193,118,116,253,193,120,116,253,193,122,116,253,193,234,116,253,193,236,116,253,193,238,116,253,193,240,116,253,193,242,116,253,193,244,116,253,193,246,116,253,193,248,116,253,193,162,113,253,193,226,113,253,193,228,113,253,193,38,114,253,193,58,114,253,193,66,114,253,193,72,114,253,193,140,114,253,193,142,114,253,193,144,114,253,193,146,114,253,193,234,114,253,193,236,114,253,193,238,114,253,193,240,114,253,193,242,114,253,193,244,114,253,193,246,114,253,193,248,114,253,193,250,114,253,193,252,114,253,193,254,114,253,193,2,115,253,193,112,115,253,193,114,115,253,193,116,115,253,193,118,115,253,193,120,115,253,193,122,115,253,193,124,115,253,193,126,115,253,193,128,115,253,193,16,114,253,193,18,114,253,193,20,114,253,193,42,114,253,193,44,114,253,193,86,114,253,193,88,114,253,193,90,114,253,193,92,114,253,193,94,114,253,193,96,114,253,193,98,114,253,193,100,114,253,193,110,114,253,193,112,114,253,193,114,114,253,193,116,114,253,193,118,114,253,193,120,114,253,193,122,114,253,193,124,114,253,193,126,114,253,193,128,114,253,193,130,114,253,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,224,103,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,193,214,114,253,193,216,114,253,193,218,114,253,193,94,115,253,193,96,115,253,193,98,115,253,193,100,115,253,193,114,116,253,193,116,116,253,193,226,116,253,193,228,116,253,193,230,116,253,193,232,116,253,193,188,117,253,193,82,117,253,193,190,117,253,193,2,118,253,193,58,118,253,193,4,118,253,193,60,118,253,193,62,118,253,193,122,118,253,193,124,118,253,193,204,118,253,193,206,118,253,193,208,118,253,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,0,104,0,206,0,104,0,206,0,104,0,206,0,104,0,206,0,104,0,193,136,115,253,193,138,115,253,193,140,115,253,193,142,115,253,193,144,115,253,193,146,115,253,193,148,115,253,193,150,115,253,193,152,115,253,193,154,115,253,193,156,115,253,193,158,115,253,193,160,115,253,193,26,116,253,193,28,116,253,193,30,116,253,193,32,116,253,193,34,116,253,193,36,116,253,193,38,116,253,193,40,116,253,193,42,116,253,193,44,116,253,193,46,116,253,193,48,116,253,193,142,116,253,193,144,116,253,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,32,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,193,130,115,253,193,132,115,253,193,134,115,253,193,12,116,253,193,14,116,253,193,16,116,253,193,18,116,253,193,20,116,253,193,22,116,253,193,24,116,253,193,126,116,253,193,128,116,253,193,130,116,253,193,132,116,253,193,134,116,253,193,136,116,253,193,138,116,253,193,252,116,253,193,254,116,253,193,2,117,253,193,4,117,253,193,6,117,253,193,8,117,253,193,10,117,253,193,12,117,253,193,14,117,253,193,16,117,253,193,18,117,253,193,20,117,253,193,22,117,253,193,98,117,253,193,100,117,253,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,64,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,193,244,115,253,193,112,116,253,193,186,117,253,193,52,118,253,193,54,118,253,193,56,118,253,193,196,118,253,193,212,118,253,193,252,118,253,193,254,118,253,193,28,119,253,193,170,119,253,193,52,120,253,193,54,120,253,193,110,120,253,193,112,120,253,193,114,120,253,193,116,120,253,193,208,120,253,193,210,120,253,193,212,120,253,193,54,121,253,193,56,121,253,193,58,121,253,193,60,121,253,193,62,121,253,193,64,121,253,193,66,121,253,193,146,121,253,193,148,121,253,193,150,121,253,193,152,121,253,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,96,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,193,146,116,253,193,148,116,253,193,150,116,253,193,152,116,253,193,154,116,253,193,156,116,253,193,158,116,253,193,160,116,253,193,162,116,253,193,164,116,253,193,166,116,253,193,168,116,253,193,26,117,253,193,28,117,253,193,30,117,253,193,32,117,253,193,34,117,253,193,36,117,253,193,38,117,253,193,40,117,253,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,128,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,206,160,104,0,193,152,117,253,193,154,117,253,193,156,117,253,193,158,117,253,193,160,117,253,193,162,117,253,193,164,117,253,193,166,117,253,193,168,117,253,193,170,117,253,193,172,117,253,193,174,117,253,193,176,117,253,193,178,117,253,193,180,117,253,193,182,117,253,193,234,117,253,193,236,117,253,193,238,117,253,193,240,117,253,193,242,117,253,193,244,117,253,193,246,117,253,193,248,117,253,193,250,117,253,193,252,117,253,193,84,117,253,193,86,117,253,193,88,117,253,193,90,117,253,193,92,117,253,193,192,117,253,193,194,117,253,193,196,117,253,193,198,117,253,193,6,118,253,193,8,118,253,193,64,118,253,193,66,118,253,193,68,118,253,193,70,118,253,193,72,118,253,193,126,118,253,193,128,118,253,193,150,118,253,193,170,118,253,193,186,118,253,193,190,118,253,193,58,119,253,193,118,119,253,193,18,120,253,193,70,120,253,193,174,120,253,193,176,120,253,193,12,121,253,193,14,121,253,193,16,121,253,193,18,121,253,193,102,117,253,193,104,117,253,193,106,117,253,193,108,117,253,193,110,117,253,193,112,117,253,193,202,117,253,193,204,117,253,193,206,117,253,193,208,117,253,193,210,117,253,193,212,117,253,193,10,118,253,193,12,118,253,193,14,118,253,193,16,118,253,193,18,118,253,193,20,118,253,193,22,118,253,193,74,118,253,193,76,118,253,193,78,118,253,193,80,118,253,193,82,118,253,193,84,118,253,193,86,118,253,193,130,118,253,193,132,118,253,193,134,118,253,193,136,118,253,193,154,118,253,193,162,118,253,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,206,192,104,0,193,216,117,253,193,218,117,253,193,220,117,253,193,222,117,253,193,224,117,253,193,226,117,253,193,228,117,253,193,230,117,253,193,232,117,253,193,24,118,253,193,26,118,253,193,28,118,253,193,88,118,253,193,90,118,253,193,92,118,253,193,94,118,253,193,96,118,253,193,98,118,253,193,100,118,253,193,102,118,253,193,104,118,253,193,106,118,253,193,108,118,253,193,140,118,253,193,142,118,253,193,200,117,253,193,152,118,253,193,182,124,253,193,234,128,253,193,42,146,253,193,84,147,253,193,110,153,253,193,250,156,253,193,16,157,253,193,212,165,253,193,76,172,253,193,104,173,253,193,140,173,253,193,2,190,253,193,12,192,253,193,118,193,253,193,194,193,253,193,8,195,253,193,120,195,253,193,220,195,253,193,6,198,253,193,138,203,253,193,132,206,253,193,160,209,253,193,60,219,253,193,56,221,253,193,140,223,253,193,136,222,253,193,208,223,253,193,212,224,253,255,255,255,255,255,255,255,255,193,254,117,253,193,30,118,253,193,32,118,253,193,34,118,253,193,36,118,253,193,38,118,253,193,40,118,253,193,42,118,253,193,44,118,253,193,46,118,253,193,48,118,253,193,50,118,253,193,110,118,253,193,112,118,253,193,114,118,253,193,116,118,253,193,118,118,253,193,120,118,253,193,148,118,253,193,158,118,253,193,160,118,253,193,178,118,253,193,180,118,253,193,200,118,253,193,202,118,253,193,210,118,253,193,218,118,253,193,250,118,253,193,92,119,253,193,196,119,253,193,224,119,253,193,2,120,253,193,144,118,253,193,146,118,253,193,156,118,253,193,164,118,253,193,166,118,253,193,168,118,253,193,174,118,253,193,176,118,253,193,184,118,253,193,188,118,253,193,194,118,253,193,216,118,253,193,248,118,253,193,66,119,253,193,86,119,253,193,88,119,253,193,90,119,253,193,124,119,253,193,148,119,253,193,168,119,253,193,192,119,253,193,194,119,253,193,4,120,253,193,40,120,253,193,76,120,253,193,78,120,253,193,80,120,253,193,82,120,253,193,186,120,253,193,188,120,253,193,32,121,253,193,124,121,253,193,172,118,253,193,182,118,253,193,192,118,253,193,198,118,253,193,60,119,253,193,38,120,253,193,72,120,253,193,178,120,253,193,180,120,253,193,22,121,253,193,228,121,253,193,230,121,253,193,232,121,253,193,206,122,253,193,208,122,253,193,42,123,253,193,44,123,253,193,46,123,253,193,100,123,253,193,164,123,253,193,232,123,253,193,234,123,253,193,6,124,253,193,26,124,253,193,92,124,253,193,116,124,253,193,118,124,253,193,120,124,253,193,154,124,253,193,156,124,253,193,158,124,253,193,160,124,253,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,206,224,104,0,193,2,119,253,193,4,119,253,193,6,119,253,193,8,119,253,193,10,119,253,193,12,119,253,193,14,119,253,193,16,119,253,193,18,119,253,193,20,119,253,193,22,119,253,193,24,119,253,193,30,119,253,193,32,119,253,193,34,119,253,193,36,119,253,193,38,119,253,193,40,119,253,193,42,119,253,193,44,119,253,193,46,119,253,193,48,119,253,193,50,119,253,193,52,119,253,193,54,119,253,193,56,119,253,193,68,119,253,193,70,119,253,193,72,119,253,193,74,119,253,193,76,119,253,193,78,119,253,193,80,119,253,193,94,119,253,193,96,119,253,193,98,119,253,193,100,119,253,193,102,119,253,193,104,119,253,193,106,119,253,193,108,119,253,193,110,119,253,193,112,119,253,193,114,119,253,193,116,119,253,193,128,119,253,193,130,119,253,193,132,119,253,193,150,119,253,193,134,119,253,193,136,119,253,193,138,119,253,193,140,119,253,193,142,119,253,193,144,119,253,193,146,119,253,193,152,119,253,193,154,119,253,193,120,119,253,193,122,119,253,193,166,119,253,193,188,119,253,193,190,119,253,193,220,119,253,193,222,119,253,193,74,120,253,193,182,120,253,193,184,120,253,193,24,121,253,193,26,121,253,193,28,121,253,193,30,121,253,193,120,121,253,193,122,121,253,193,88,122,253,193,90,122,253,193,92,122,253,193,94,122,253,193,96,122,253,193,98,122,253,193,100,122,253,193,210,122,253,193,212,122,253,193,214,122,253,193,216,122,253,193,218,122,253,193,48,123,253,193,50,123,253,193,52,123,253,193,102,123,253,193,156,119,253,193,158,119,253,193,160,119,253,193,162,119,253,193,164,119,253,193,172,119,253,193,174,119,253,193,176,119,253,193,178,119,253,193,180,119,253,193,182,119,253,193,184,119,253,193,186,119,253,193,198,119,253,193,200,119,253,193,202,119,253,193,204,119,253,193,206,119,253,193,208,119,253,193,210,119,253,193,212,119,253,193,214,119,253,193,216,119,253,193,218,119,253,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,206,0,105,0,193,8,120,253,193,10,120,253,193,16,120,253,193,26,120,253,193,28,120,253,193,30,120,253,193,32,120,253,193,34,120,253,193,36,120,253,193,56,120,253,193,58,120,253,193,60,120,253,193,62,120,253,193,64,120,253,193,66,120,253,193,68,120,253,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,193,6,120,253,193,12,120,253,193,14,120,253,193,20,120,253,193,22,120,253,193,24,120,253,193,42,120,253,193,44,120,253,193,46,120,253,193,48,120,253,193,50,120,253,193,84,120,253,193,86,120,253,193,88,120,253,193,90,120,253,193,92,120,253,193,94,120,253,193,96,120,253,193,98,120,253,193,100,120,253,193,102,120,253,193,104,120,253,193,106,120,253,193,108,120,253,193,190,120,253,193,192,120,253,193,194,120,253,193,196,120,253,193,198,120,253,193,200,120,253,193,202,120,253,193,204,120,253,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,32,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,193,206,120,253,193,34,121,253,193,36,121,253,193,38,121,253,193,40,121,253,193,42,121,253,193,44,121,253,193,46,121,253,193,48,121,253,193,50,121,253,193,52,121,253,193,126,121,253,193,128,121,253,193,130,121,253,193,132,121,253,193,134,121,253,193,136,121,253,193,138,121,253,193,140,121,253,193,142,121,253,193,144,121,253,193,234,121,253,193,236,121,253,193,108,122,253,193,238,121,253,193,240,121,253,193,242,121,253,193,244,121,253,193,246,121,253,193,248,121,253,193,250,121,253,193,252,121,253,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,64,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,193,20,121,253,193,220,121,253,193,222,121,253,193,224,121,253,193,226,121,253,193,82,122,253,193,84,122,253,193,86,122,253,193,204,122,253,193,98,123,253,193,230,123,253,193,66,124,253,193,114,124,253,193,148,124,253,193,150,124,253,193,152,124,253,193,180,124,253,193,220,124,253,193,248,124,253,193,250,124,253,193,28,125,253,193,102,125,253,193,104,125,253,193,112,125,253,193,114,125,253,193,146,125,253,193,200,125,253,193,36,126,253,193,144,126,253,193,146,126,253,193,248,126,253,193,250,126,253,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,96,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,128,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,193,254,121,253,193,2,122,253,193,4,122,253,193,110,122,253,193,112,122,253,193,114,122,253,193,116,122,253,193,118,122,253,193,120,122,253,193,122,122,253,193,124,122,253,193,126,122,253,193,128,122,253,193,130,122,253,193,132,122,253,193,134,122,253,193,222,122,253,193,224,122,253,193,226,122,253,193,228,122,253,193,230,122,253,193,232,122,253,193,234,122,253,193,236,122,253,193,238,122,253,193,54,123,253,193,56,123,253,193,58,123,253,193,60,123,253,193,62,123,253,193,108,123,253,193,110,123,253,193,6,122,253,193,8,122,253,193,10,122,253,193,12,122,253,193,14,122,253,193,16,122,253,193,18,122,253,193,20,122,253,193,22,122,253,193,136,122,253,193,138,122,253,193,140,122,253,193,142,122,253,193,144,122,253,193,146,122,253,193,148,122,253,193,64,123,253,193,116,123,253,193,184,123,253,193,186,123,253,193,188,123,253,193,242,123,253,193,214,124,253,193,246,124,253,193,64,125,253,193,164,125,253,193,166,125,253,193,190,125,253,193,246,125,253,193,248,125,253,193,250,125,253,193,252,125,253,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,206,160,105,0,193,150,122,253,193,152,122,253,193,154,122,253,193,156,122,253,193,158,122,253,193,160,122,253,193,162,122,253,193,164,122,253,193,166,122,253,193,168,122,253,193,170,122,253,193,172,122,253,193,174,122,253,193,176,122,253,193,178,122,253,193,180,122,253,193,182,122,253,193,184,122,253,193,186,122,253,193,188,122,253,193,190,122,253,193,192,122,253,193,194,122,253,193,196,122,253,193,198,122,253,193,200,122,253,193,202,122,253,193,102,122,253,193,104,122,253,193,106,122,253,193,220,122,253,193,10,124,253,193,88,124,253,193,96,124,253,193,126,124,253,193,168,124,253,193,170,124,253,193,172,124,253,193,174,124,253,193,192,124,253,193,194,124,253,193,236,124,253,193,4,125,253,193,6,125,253,193,48,125,253,193,50,125,253,193,52,125,253,193,84,125,253,193,86,125,253,193,88,125,253,193,106,125,253,193,108,125,253,193,120,125,253,193,122,125,253,193,134,125,253,193,136,125,253,193,140,125,253,193,142,125,253,193,148,125,253,193,240,122,253,193,242,122,253,193,244,122,253,193,246,122,253,193,248,122,253,193,250,122,253,193,252,122,253,193,254,122,253,193,2,123,253,193,4,123,253,193,6,123,253,193,8,123,253,193,10,123,253,193,12,123,253,193,14,123,253,193,16,123,253,193,18,123,253,193,20,123,253,193,22,123,253,193,24,123,253,193,26,123,253,193,28,123,253,193,30,123,253,193,32,123,253,193,34,123,253,193,36,123,253,193,38,123,253,193,40,123,253,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,206,192,105,0,193,118,123,253,193,120,123,253,193,122,123,253,193,124,123,253,193,126,123,253,193,128,123,253,193,130,123,253,193,132,123,253,193,134,123,253,193,136,123,253,193,138,123,253,193,140,123,253,193,142,123,253,193,144,123,253,193,146,123,253,193,148,123,253,193,150,123,253,193,152,123,253,193,154,123,253,193,156,123,253,193,104,123,253,193,106,123,253,193,166,123,253,193,168,123,253,193,170,123,253,193,172,123,253,193,236,123,253,193,238,123,253,193,8,124,253,193,48,124,253,193,68,124,253,193,94,124,253,193,122,124,253,193,124,124,253,193,162,124,253,193,164,124,253,193,166,124,253,193,188,124,253,193,190,124,253,193,234,124,253,193,42,125,253,193,44,125,253,193,46,125,253,193,82,125,253,193,132,125,253,193,204,125,253,193,44,126,253,193,46,126,253,193,150,126,253,193,152,126,253,193,154,126,253,193,156,126,253,193,112,123,253,193,114,123,253,193,174,123,253,193,176,123,253,193,178,123,253,193,180,123,253,193,182,123,253,193,240,123,253,193,84,124,253,193,86,124,253,193,90,124,253,193,98,124,253,193,100,124,253,193,102,124,253,193,104,124,253,193,106,124,253,193,128,124,253,193,130,124,253,193,132,124,253,193,134,124,253,193,136,124,253,193,138,124,253,193,140,124,253,193,142,124,253,193,176,124,253,193,178,124,253,193,196,124,253,193,198,124,253,193,200,124,253,193,202,124,253,193,204,124,253,193,206,124,253,193,158,123,253,193,160,123,253,193,162,123,253,193,190,123,253,193,192,123,253,193,194,123,253,193,196,123,253,193,198,123,253,193,200,123,253,193,202,123,253,193,204,123,253,193,206,123,253,193,208,123,253,193,210,123,253,193,212,123,253,193,214,123,253,193,216,123,253,193,218,123,253,193,220,123,253,193,222,123,253,193,244,123,253,193,224,123,253,193,226,123,253,193,228,123,253,193,246,123,253,193,248,123,253,193,250,123,253,193,252,123,253,193,254,123,253,193,2,124,253,193,4,124,253,193,12,124,253,193,14,124,253,193,16,124,253,193,18,124,253,193,20,124,253,193,22,124,253,193,24,124,253,193,28,124,253,193,30,124,253,193,32,124,253,193,34,124,253,193,36,124,253,193,38,124,253,193,40,124,253,193,42,124,253,193,44,124,253,193,50,124,253,193,52,124,253,193,54,124,253,193,56,124,253,193,58,124,253,193,60,124,253,193,62,124,253,193,46,124,253,193,70,124,253,193,64,124,253,193,72,124,253,193,74,124,253,193,76,124,253,193,78,124,253,193,80,124,253,193,82,124,253,193,108,124,253,193,110,124,253,193,112,124,253,193,144,124,253,193,146,124,253,193,216,124,253,193,218,124,253,193,66,125,253,193,68,125,253,193,70,125,253,193,98,125,253,193,100,125,253,193,124,125,253,193,126,125,253,193,144,125,253,193,152,125,253,193,158,125,253,193,168,125,253,193,170,125,253,193,172,125,253,193,174,125,253,193,176,125,253,193,178,125,253,193,192,125,253,193,194,125,253,193,196,125,253,193,198,125,253,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,193,184,124,253,193,186,124,253,193,222,124,253,193,224,124,253,193,226,124,253,193,228,124,253,193,230,124,253,193,232,124,253,193,252,124,253,193,254,124,253,193,2,125,253,193,30,125,253,193,32,125,253,193,34,125,253,193,36,125,253,193,38,125,253,193,40,125,253,193,72,125,253,193,74,125,253,193,76,125,253,193,78,125,253,193,80,125,253,193,116,125,253,193,118,125,253,193,128,125,253,193,130,125,253,193,202,125,253,193,38,126,253,193,40,126,253,193,42,126,253,193,148,126,253,193,254,126,253,193,208,124,253,193,210,124,253,193,212,124,253,193,238,124,253,193,240,124,253,193,242,124,253,193,244,124,253,193,8,125,253,193,10,125,253,193,12,125,253,193,14,125,253,193,16,125,253,193,18,125,253,193,20,125,253,193,22,125,253,193,24,125,253,193,26,125,253,193,54,125,253,193,56,125,253,193,58,125,253,193,60,125,253,193,62,125,253,193,90,125,253,193,92,125,253,193,94,125,253,193,96,125,253,193,110,125,253,193,138,125,253,193,154,125,253,193,156,125,253,193,160,125,253,193,162,125,253,193,150,125,253,193,206,125,253,193,208,125,253,193,48,126,253,193,50,126,253,193,52,126,253,193,158,126,253,193,160,126,253,193,162,126,253,193,164,126,253,193,166,126,253,193,16,127,253,193,18,127,253,193,20,127,253,193,22,127,253,193,24,127,253,193,26,127,253,193,160,127,253,193,162,127,253,193,164,127,253,193,166,127,253,193,168,127,253,193,170,127,253,193,80,128,253,193,82,128,253,193,84,128,253,193,86,128,253,193,88,128,253,193,90,128,253,193,92,128,253,193,94,128,253,193,96,128,253,193,180,125,253,193,182,125,253,193,184,125,253,193,186,125,253,193,188,125,253,193,210,125,253,193,212,125,253,193,214,125,253,193,216,125,253,193,218,125,253,193,220,125,253,193,222,125,253,193,224,125,253,193,226,125,253,193,228,125,253,193,230,125,253,193,232,125,253,193,234,125,253,193,236,125,253,193,238,125,253,193,240,125,253,193,242,125,253,193,244,125,253,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,193,254,125,253,193,92,126,253,193,94,126,253,193,96,126,253,193,192,126,253,193,194,126,253,193,196,126,253,193,198,126,253,193,200,126,253,193,66,127,253,193,68,127,253,193,70,127,253,193,72,127,253,193,74,127,253,193,76,127,253,193,78,127,253,193,208,127,253,193,210,127,253,193,212,127,253,193,214,127,253,193,216,127,253,193,218,127,253,193,220,127,253,193,144,128,253,193,146,128,253,193,148,128,253,193,32,129,253,193,34,129,253,193,36,129,253,193,38,129,253,193,40,129,253,193,42,129,253,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,206,224,105,0,193,98,126,253,193,100,126,253,193,102,126,253,193,104,126,253,193,106,126,253,193,108,126,253,193,110,126,253,193,112,126,253,193,114,126,253,193,116,126,253,193,118,126,253,193,120,126,253,193,122,126,253,193,124,126,253,193,126,126,253,193,128,126,253,193,130,126,253,193,132,126,253,193,134,126,253,193,136,126,253,193,138,126,253,193,140,126,253,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,206,0,106,0,193,168,126,253,193,170,126,253,193,172,126,253,193,174,126,253,193,176,126,253,193,178,126,253,193,180,126,253,193,182,126,253,193,184,126,253,193,186,126,253,193,188,126,253,193,190,126,253,193,28,127,253,193,30,127,253,193,32,127,253,193,34,127,253,193,172,127,253,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,193,142,126,253,193,202,126,253,193,204,126,253,193,206,126,253,193,208,126,253,193,210,126,253,193,212,126,253,193,214,126,253,193,216,126,253,193,218,126,253,193,220,126,253,193,222,126,253,193,224,126,253,193,226,126,253,193,228,126,253,193,230,126,253,193,232,126,253,193,234,126,253,193,236,126,253,193,238,126,253,193,240,126,253,193,242,126,253,193,244,126,253,193,246,126,253,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,206,64,106,0,193,252,126,253,193,136,127,253,193,138,127,253,193,140,127,253,193,50,128,253,193,52,128,253,193,218,128,253,193,220,128,253,193,222,128,253,193,224,128,253,193,226,128,253,193,228,128,253,193,230,128,253,193,232,128,253,193,136,129,253,193,138,129,253,193,248,129,253,193,250,129,253,193,252,129,253,193,254,129,253,193,112,130,253,193,114,130,253,193,116,130,253,193,118,130,253,193,102,131,253,193,202,131,253,193,82,132,253,193,216,132,253,193,208,133,253,193,188,134,253,193,218,134,253,193,22,135,253,193,2,127,253,193,142,127,253,193,144,127,253,193,146,127,253,193,54,128,253,193,56,128,253,193,58,128,253,193,60,128,253,193,62,128,253,193,64,128,253,193,66,128,253,193,236,128,253,193,238,128,253,193,240,128,253,193,242,128,253,193,244,128,253,193,140,129,253,193,142,129,253,193,144,129,253,193,146,129,253,193,2,130,253,193,4,130,253,193,6,130,253,193,8,130,253,193,10,130,253,193,120,130,253,193,122,130,253,193,124,130,253,193,208,130,253,193,210,130,253,193,212,130,253,193,214,130,253,193,4,127,253,193,6,127,253,193,8,127,253,193,10,127,253,193,12,127,253,193,14,127,253,193,148,127,253,193,150,127,253,193,152,127,253,193,154,127,253,193,156,127,253,193,158,127,253,193,68,128,253,193,70,128,253,193,72,128,253,193,74,128,253,193,76,128,253,193,78,128,253,193,246,128,253,193,148,129,253,193,150,129,253,193,152,129,253,193,154,129,253,193,156,129,253,193,158,129,253,193,160,129,253,193,162,129,253,193,12,130,253,193,14,130,253,193,16,130,253,193,18,130,253,193,20,130,253,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,206,32,106,0,193,174,127,253,193,176,127,253,193,178,127,253,193,180,127,253,193,182,127,253,193,184,127,253,193,186,127,253,193,188,127,253,193,190,127,253,193,192,127,253,193,194,127,253,193,196,127,253,193,198,127,253,193,200,127,253,193,202,127,253,193,204,127,253,193,206,127,253,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,206,96,106,0,193,150,128,253,193,152,128,253,193,98,128,253,193,248,128,253,193,250,128,253,193,252,128,253,193,254,128,253,193,2,129,253,193,4,129,253,193,6,129,253,193,8,129,253,193,10,129,253,193,164,129,253,193,166,129,253,193,22,130,253,193,24,130,253,193,26,130,253,193,28,130,253,193,30,130,253,193,136,130,253,193,138,130,253,193,140,130,253,193,142,130,253,193,144,130,253,193,146,130,253,193,226,130,253,193,228,130,253,193,230,130,253,193,232,130,253,193,40,131,253,193,66,131,253,193,68,131,253,193,70,131,253,193,72,131,253,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,206,128,106,0,193,12,129,253,193,14,129,253,193,16,129,253,193,18,129,253,193,20,129,253,193,22,129,253,193,24,129,253,193,26,129,253,193,28,129,253,193,168,129,253,193,170,129,253,193,172,129,253,193,174,129,253,193,176,129,253,193,178,129,253,193,154,128,253,193,156,128,253,193,158,128,253,193,160,128,253,193,162,128,253,193,164,128,253,193,166,128,253,193,168,128,253,193,170,128,253,193,172,128,253,193,174,128,253,193,176,128,253,193,178,128,253,193,180,128,253,193,182,128,253,193,184,128,253,193,186,128,253,193,188,128,253,193,190,128,253,193,192,128,253,193,194,128,253,193,196,128,253,193,198,128,253,193,200,128,253,193,202,128,253,193,204,128,253,193,206,128,253,193,208,128,253,193,210,128,253,193,212,128,253,193,214,128,253,193,216,128,253,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,160,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,193,180,129,253,193,182,129,253,193,32,130,253,193,34,130,253,193,36,130,253,193,38,130,253,193,148,130,253,193,150,130,253,193,152,130,253,193,154,130,253,193,156,130,253,193,158,130,253,193,234,130,253,193,236,130,253,193,238,130,253,193,240,130,253,193,242,130,253,193,244,130,253,193,246,130,253,193,42,131,253,193,74,131,253,193,112,131,253,193,186,131,253,193,204,131,253,193,212,131,253,193,228,131,253,193,230,131,253,193,232,131,253,193,234,131,253,193,236,131,253,193,238,131,253,193,250,131,253,193,184,129,253,193,186,129,253,193,188,129,253,193,190,129,253,193,40,130,253,193,42,130,253,193,44,130,253,193,160,130,253,193,162,130,253,193,46,130,253,193,164,130,253,193,248,130,253,193,250,130,253,193,252,130,253,193,76,131,253,193,114,131,253,193,132,131,253,193,240,131,253,193,254,131,253,193,2,132,253,193,48,132,253,193,50,132,253,193,52,132,253,193,110,132,253,193,112,132,253,193,114,132,253,193,116,132,253,193,164,132,253,193,224,132,253,193,226,132,253,193,24,133,253,193,26,133,253,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,192,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,206,224,106,0,193,166,130,253,193,168,130,253,193,170,130,253,193,172,130,253,193,174,130,253,193,176,130,253,193,178,130,253,193,180,130,253,193,182,130,253,193,184,130,253,193,186,130,253,193,188,130,253,193,190,130,253,193,192,130,253,193,194,130,253,193,196,130,253,193,198,130,253,193,200,130,253,193,202,130,253,193,204,130,253,193,206,130,253,193,254,130,253,193,126,130,253,193,128,130,253,193,130,130,253,193,132,130,253,193,134,130,253,193,216,130,253,193,218,130,253,193,220,130,253,193,222,130,253,193,224,130,253,193,30,131,253,193,32,131,253,193,34,131,253,193,36,131,253,193,38,131,253,193,64,131,253,193,104,131,253,193,130,131,253,193,166,131,253,193,174,131,253,193,188,131,253,193,216,131,253,193,24,132,253,193,86,132,253,193,88,132,253,193,90,132,253,193,92,132,253,193,156,132,253,193,18,133,253,193,94,133,253,193,96,133,253,193,98,133,253,193,2,131,253,193,4,131,253,193,6,131,253,193,8,131,253,193,10,131,253,193,12,131,253,193,14,131,253,193,16,131,253,193,18,131,253,193,20,131,253,193,22,131,253,193,24,131,253,193,26,131,253,193,44,131,253,193,46,131,253,193,48,131,253,193,50,131,253,193,52,131,253,193,54,131,253,193,56,131,253,193,58,131,253,193,60,131,253,193,78,131,253,193,80,131,253,193,82,131,253,193,84,131,253,193,86,131,253,193,88,131,253,193,90,131,253,193,92,131,253,193,94,131,253,193,96,131,253,193,28,131,253,193,62,131,253,193,124,131,253,193,126,131,253,193,128,131,253,193,146,131,253,193,148,131,253,193,150,131,253,193,160,131,253,193,172,131,253,193,84,132,253,193,154,132,253,193,218,132,253,193,220,132,253,193,16,133,253,193,90,133,253,193,92,133,253,193,154,133,253,193,46,134,253,193,48,134,253,193,50,134,253,193,100,134,253,193,102,134,253,193,128,134,253,193,220,134,253,193,26,135,253,193,28,135,253,193,98,135,253,193,12,136,253,193,14,136,253,193,146,136,253,193,148,136,253,193,98,131,253,193,100,131,253,193,116,131,253,193,118,131,253,193,120,131,253,193,122,131,253,193,134,131,253,193,136,131,253,193,138,131,253,193,140,131,253,193,142,131,253,193,144,131,253,193,156,131,253,193,158,131,253,193,162,131,253,193,164,131,253,193,168,131,253,193,170,131,253,193,178,131,253,193,180,131,253,193,182,131,253,193,184,131,253,193,190,131,253,193,192,131,253,193,194,131,253,193,196,131,253,193,198,131,253,193,200,131,253,193,206,131,253,193,208,131,253,193,210,131,253,193,214,131,253,193,106,131,253,193,108,131,253,193,110,131,253,193,152,131,253,193,154,131,253,193,248,131,253,193,26,132,253,193,28,132,253,193,30,132,253,193,94,132,253,193,158,133,253,193,212,133,253,193,254,133,253,193,52,134,253,193,104,134,253,193,106,134,253,193,164,134,253,193,190,134,253,193,108,135,253,193,110,135,253,193,24,136,253,193,26,136,253,193,28,136,253,193,30,136,253,193,32,136,253,193,34,136,253,193,36,136,253,193,174,136,253,193,176,136,253,193,178,136,253,193,180,136,253,193,182,136,253,193,218,131,253,193,220,131,253,193,222,131,253,193,224,131,253,193,226,131,253,193,242,131,253,193,244,131,253,193,246,131,253,193,4,132,253,193,6,132,253,193,8,132,253,193,10,132,253,193,12,132,253,193,14,132,253,193,16,132,253,193,18,132,253,193,20,132,253,193,22,132,253,193,54,132,253,193,56,132,253,193,58,132,253,193,60,132,253,193,62,132,253,193,64,132,253,193,66,132,253,193,68,132,253,193,70,132,253,193,72,132,253,193,74,132,253,193,76,132,253,193,78,132,253,193,80,132,253,193,252,131,253,193,32,132,253,193,34,132,253,193,36,132,253,193,38,132,253,193,40,132,253,193,42,132,253,193,44,132,253,193,46,132,253,193,96,132,253,193,98,132,253,193,100,132,253,193,102,132,253,193,104,132,253,193,106,132,253,193,108,132,253,193,158,132,253,193,160,132,253,193,162,132,253,193,222,132,253,193,20,133,253,193,22,133,253,193,100,133,253,193,160,133,253,193,162,133,253,193,164,133,253,193,166,133,253,193,168,133,253,193,170,133,253,193,172,133,253,193,174,133,253,193,176,133,253,193,118,132,253,193,120,132,253,193,122,132,253,193,124,132,253,193,126,132,253,193,128,132,253,193,130,132,253,193,132,132,253,193,134,132,253,193,136,132,253,193,138,132,253,193,140,132,253,193,142,132,253,193,144,132,253,193,146,132,253,193,148,132,253,193,150,132,253,193,152,132,253,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,206,0,107,0,193,228,132,253,193,230,132,253,193,232,132,253,193,234,132,253,193,236,132,253,193,238,132,253,193,240,132,253,193,242,132,253,193,244,132,253,193,246,132,253,193,248,132,253,193,250,132,253,193,252,132,253,193,254,132,253,193,2,133,253,193,4,133,253,193,6,133,253,193,8,133,253,193,10,133,253,193,12,133,253,193,14,133,253,193,28,133,253,193,30,133,253,193,32,133,253,193,34,133,253,193,36,133,253,193,38,133,253,193,40,133,253,193,42,133,253,193,44,133,253,193,46,133,253,193,48,133,253,193,50,133,253,193,52,133,253,193,54,133,253,193,56,133,253,193,58,133,253,193,60,133,253,193,62,133,253,193,64,133,253,193,66,133,253,193,68,133,253,193,70,133,253,193,72,133,253,193,74,133,253,193,76,133,253,193,78,133,253,193,80,133,253,193,82,133,253,193,84,133,253,193,86,133,253,193,88,133,253,193,106,133,253,193,108,133,253,193,110,133,253,193,112,133,253,193,114,133,253,193,116,133,253,193,118,133,253,193,120,133,253,193,122,133,253,193,124,133,253,193,126,133,253,193,128,133,253,193,130,133,253,193,132,133,253,193,134,133,253,193,136,133,253,193,138,133,253,193,140,133,253,193,142,133,253,193,144,133,253,193,146,133,253,193,148,133,253,193,150,133,253,193,152,133,253,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,193,156,133,253,193,210,133,253,193,146,134,253,193,162,134,253,193,180,134,253,193,222,134,253,193,30,135,253,193,32,135,253,193,34,135,253,193,36,135,253,193,100,135,253,193,102,135,253,193,104,135,253,193,106,135,253,193,180,135,253,193,182,135,253,193,16,136,253,193,18,136,253,193,20,136,253,193,22,136,253,193,158,136,253,193,160,136,253,193,162,136,253,193,164,136,253,193,166,136,253,193,168,136,253,193,170,136,253,193,172,136,253,206,192,107,0,206,192,107,0,206,192,107,0,206,192,107,0,193,178,133,253,193,214,133,253,193,216,133,253,193,218,133,253,193,54,134,253,193,130,134,253,193,132,134,253,193,166,134,253,193,178,134,253,193,192,134,253,193,194,134,253,193,196,134,253,193,224,134,253,193,226,134,253,193,228,134,253,193,230,134,253,193,232,134,253,193,234,134,253,193,236,134,253,193,238,134,253,193,38,135,253,193,40,135,253,193,42,135,253,193,44,135,253,193,46,135,253,193,48,135,253,193,50,135,253,193,52,135,253,193,54,135,253,193,56,135,253,193,58,135,253,193,112,135,253,206,32,107,0,206,32,107,0,206,32,107,0,206,32,107,0,193,222,133,253,193,224,133,253,193,226,133,253,193,228,133,253,193,230,133,253,193,232,133,253,193,234,133,253,193,236,133,253,193,238,133,253,193,240,133,253,193,242,133,253,193,244,133,253,193,246,133,253,193,248,133,253,193,250,133,253,193,252,133,253,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,206,64,107,0,193,56,134,253,193,58,134,253,193,60,134,253,193,62,134,253,193,64,134,253,193,66,134,253,193,68,134,253,193,70,134,253,193,72,134,253,193,74,134,253,193,76,134,253,193,78,134,253,193,82,134,253,193,84,134,253,193,86,134,253,193,88,134,253,193,90,134,253,193,92,134,253,193,94,134,253,193,96,134,253,193,98,134,253,206,96,107,0,206,96,107,0,206,96,107,0,206,96,107,0,206,96,107,0,206,96,107,0,193,134,134,253,193,136,134,253,193,138,134,253,193,140,134,253,193,142,134,253,193,144,134,253,193,150,134,253,193,152,134,253,193,154,134,253,193,156,134,253,193,158,134,253,193,160,134,253,193,168,134,253,193,170,134,253,193,174,134,253,193,176,134,253,193,182,134,253,193,184,134,253,193,186,134,253,193,200,134,253,193,202,134,253,193,204,134,253,193,206,134,253,193,208,134,253,193,210,134,253,193,212,134,253,193,214,134,253,193,216,134,253,193,244,134,253,193,246,134,253,193,248,134,253,193,250,134,253,193,252,134,253,193,254,134,253,193,2,135,253,193,4,135,253,193,6,135,253,193,8,135,253,193,10,135,253,193,12,135,253,193,14,135,253,193,16,135,253,193,18,135,253,193,20,135,253,193,62,135,253,193,64,135,253,193,66,135,253,193,68,135,253,193,70,135,253,193,72,135,253,193,74,135,253,193,76,135,253,193,78,135,253,193,80,135,253,193,82,135,253,193,84,135,253,193,86,135,253,193,88,135,253,193,24,135,253,193,94,135,253,193,96,135,253,193,176,135,253,193,178,135,253,193,8,136,253,193,10,136,253,193,142,136,253,193,144,136,253,193,28,137,253,193,30,137,253,193,156,137,253,193,16,138,253,193,18,138,253,193,108,138,253,193,110,138,253,193,112,138,253,193,114,138,253,193,190,138,253,193,6,139,253,193,8,139,253,193,96,139,253,193,98,139,253,193,186,139,253,193,222,139,253,193,244,139,253,193,246,139,253,193,22,140,253,193,32,140,253,193,102,140,253,193,142,140,253,193,148,140,253,193,90,135,253,193,92,135,253,193,134,135,253,193,136,135,253,193,138,135,253,193,140,135,253,193,142,135,253,193,144,135,253,193,146,135,253,193,148,135,253,193,150,135,253,193,152,135,253,193,154,135,253,193,156,135,253,193,158,135,253,193,160,135,253,193,162,135,253,193,164,135,253,193,166,135,253,193,168,135,253,193,170,135,253,193,172,135,253,193,174,135,253,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,193,114,135,253,193,116,135,253,193,184,135,253,193,186,135,253,193,188,135,253,193,190,135,253,193,192,135,253,193,194,135,253,193,196,135,253,193,198,135,253,193,200,135,253,193,38,136,253,193,40,136,253,193,42,136,253,193,44,136,253,193,46,136,253,193,48,136,253,193,50,136,253,193,52,136,253,193,54,136,253,193,56,136,253,193,58,136,253,193,60,136,253,193,62,136,253,193,184,136,253,193,186,136,253,193,188,136,253,193,190,136,253,193,192,136,253,193,194,136,253,193,196,136,253,193,198,136,253,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,128,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,206,160,107,0,193,216,136,253,193,218,136,253,193,220,136,253,193,222,136,253,193,224,136,253,193,226,136,253,193,228,136,253,193,230,136,253,193,232,136,253,193,84,137,253,193,234,136,253,193,150,136,253,193,152,136,253,193,154,136,253,193,156,136,253,193,32,137,253,193,34,137,253,193,36,137,253,193,38,137,253,193,158,137,253,193,20,138,253,193,22,138,253,193,116,138,253,193,118,138,253,193,120,138,253,193,192,138,253,193,194,138,253,193,196,138,253,193,10,139,253,193,12,139,253,193,14,139,253,193,16,139,253,193,164,139,253,193,188,139,253,193,248,139,253,193,250,139,253,193,64,140,253,193,92,140,253,193,94,140,253,193,118,140,253,193,124,140,253,193,128,140,253,193,144,140,253,193,200,136,253,193,62,137,253,193,64,137,253,193,66,137,253,193,68,137,253,193,70,137,253,193,176,137,253,193,178,137,253,193,180,137,253,193,182,137,253,193,184,137,253,193,186,137,253,193,188,137,253,193,190,137,253,193,28,138,253,193,30,138,253,193,32,138,253,193,34,138,253,193,36,138,253,193,38,138,253,193,40,138,253,193,134,138,253,193,136,138,253,193,138,138,253,193,140,138,253,193,142,138,253,193,144,138,253,193,146,138,253,193,206,138,253,193,208,138,253,193,210,138,253,193,212,138,253,193,206,136,253,193,208,136,253,193,210,136,253,193,212,136,253,193,214,136,253,193,72,137,253,193,74,137,253,193,76,137,253,193,78,137,253,193,80,137,253,193,82,137,253,193,192,137,253,193,194,137,253,193,196,137,253,193,198,137,253,193,200,137,253,193,42,138,253,193,44,138,253,193,216,138,253,193,218,138,253,193,220,138,253,193,32,139,253,193,34,139,253,193,78,139,253,193,106,139,253,193,162,139,253,193,202,139,253,193,212,139,253,193,38,140,253,193,52,140,253,193,54,140,253,193,68,140,253,193,236,136,253,193,238,136,253,193,240,136,253,193,242,136,253,193,244,136,253,193,246,136,253,193,248,136,253,193,250,136,253,193,252,136,253,193,254,136,253,193,2,137,253,193,4,137,253,193,6,137,253,193,8,137,253,193,10,137,253,193,12,137,253,193,14,137,253,193,16,137,253,193,18,137,253,193,20,137,253,193,22,137,253,193,24,137,253,193,26,137,253,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,224,107,0,206,192,107,0,206,192,107,0,206,192,107,0,206,192,107,0,193,160,137,253,193,162,137,253,193,164,137,253,193,166,137,253,193,168,137,253,193,170,137,253,193,172,137,253,193,174,137,253,193,24,138,253,193,122,138,253,193,124,138,253,193,126,138,253,193,128,138,253,193,130,138,253,193,132,138,253,193,198,138,253,193,200,138,253,193,202,138,253,193,204,138,253,193,18,139,253,193,20,139,253,193,22,139,253,193,24,139,253,193,26,139,253,193,54,139,253,193,100,139,253,193,128,139,253,193,150,139,253,193,56,137,253,193,58,137,253,193,60,137,253,193,26,138,253,193,28,139,253,193,56,139,253,193,58,139,253,193,60,139,253,193,62,139,253,193,102,139,253,193,194,139,253,193,200,139,253,193,214,139,253,193,10,140,253,193,12,140,253,193,140,140,253,193,68,141,253,193,198,141,253,193,22,142,253,193,120,142,253,193,208,142,253,193,210,142,253,193,42,143,253,193,142,143,253,193,16,144,253,193,18,144,253,193,20,144,253,193,126,144,253,193,128,144,253,193,20,145,253,193,146,145,253,193,210,145,253,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,206,0,108,0,193,46,138,253,193,48,138,253,193,50,138,253,193,52,138,253,193,54,138,253,193,56,138,253,193,58,138,253,193,60,138,253,193,62,138,253,193,64,138,253,193,66,138,253,193,68,138,253,193,70,138,253,193,72,138,253,193,74,138,253,193,76,138,253,193,78,138,253,193,80,138,253,193,82,138,253,193,84,138,253,193,86,138,253,193,88,138,253,193,90,138,253,193,92,138,253,193,94,138,253,193,96,138,253,193,98,138,253,193,100,138,253,193,102,138,253,193,104,138,253,193,106,138,253,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,32,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,193,214,138,253,193,30,139,253,193,64,139,253,193,66,139,253,193,68,139,253,193,70,139,253,193,72,139,253,193,74,139,253,193,76,139,253,193,104,139,253,193,130,139,253,193,152,139,253,193,154,139,253,193,156,139,253,193,158,139,253,193,174,139,253,193,206,139,253,193,216,139,253,193,218,139,253,193,224,139,253,193,226,139,253,193,232,139,253,193,234,139,253,193,254,139,253,193,2,140,253,193,4,140,253,193,8,140,253,193,14,140,253,193,16,140,253,193,26,140,253,193,44,140,253,193,66,140,253,206,64,108,0,206,64,108,0,206,64,108,0,206,64,108,0,193,36,139,253,193,38,139,253,193,40,139,253,193,42,139,253,193,44,139,253,193,46,139,253,193,48,139,253,193,50,139,253,193,52,139,253,193,80,139,253,193,82,139,253,193,84,139,253,193,86,139,253,193,88,139,253,193,90,139,253,193,92,139,253,193,94,139,253,193,108,139,253,193,110,139,253,193,112,139,253,193,114,139,253,193,116,139,253,193,118,139,253,193,120,139,253,193,122,139,253,193,124,139,253,193,126,139,253,193,132,139,253,193,134,139,253,193,136,139,253,193,138,139,253,193,140,139,253,193,142,139,253,193,144,139,253,193,146,139,253,193,148,139,253,193,170,139,253,193,172,139,253,193,176,139,253,193,178,139,253,193,180,139,253,193,182,139,253,193,184,139,253,193,192,139,253,193,196,139,253,193,198,139,253,193,204,139,253,193,208,139,253,193,210,139,253,193,220,139,253,193,228,139,253,193,230,139,253,193,236,139,253,193,238,139,253,193,240,139,253,193,242,139,253,193,6,140,253,193,18,140,253,193,20,140,253,193,24,140,253,193,166,139,253,193,168,139,253,193,190,139,253,193,252,139,253,193,86,140,253,193,96,140,253,193,98,140,253,193,104,140,253,193,146,140,253,193,164,140,253,193,222,140,253,193,224,140,253,193,248,140,253,193,24,141,253,193,44,141,253,193,60,141,253,193,88,141,253,193,116,141,253,193,118,141,253,193,162,141,253,193,20,142,253,193,114,142,253,193,116,142,253,193,118,142,253,193,204,142,253,193,206,142,253,193,34,143,253,193,36,143,253,193,38,143,253,193,40,143,253,193,140,143,253,193,8,144,253,193,28,140,253,193,30,140,253,193,34,140,253,193,36,140,253,193,40,140,253,193,42,140,253,193,46,140,253,193,48,140,253,193,50,140,253,193,56,140,253,193,58,140,253,193,60,140,253,193,62,140,253,193,70,140,253,193,72,140,253,193,74,140,253,193,76,140,253,193,78,140,253,193,80,140,253,193,82,140,253,193,84,140,253,193,88,140,253,193,90,140,253,193,100,140,253,193,110,140,253,193,112,140,253,193,114,140,253,193,116,140,253,193,120,140,253,193,122,140,253,193,132,140,253,193,134,140,253,193,106,140,253,193,126,140,253,193,152,140,253,193,154,140,253,193,186,140,253,193,226,140,253,193,250,140,253,193,90,141,253,193,126,141,253,193,160,141,253,193,164,141,253,193,170,141,253,193,172,141,253,193,174,141,253,193,176,141,253,193,178,141,253,193,180,141,253,193,182,141,253,193,200,141,253,193,202,141,253,193,204,141,253,193,206,141,253,193,208,141,253,193,210,141,253,193,212,141,253,193,214,141,253,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,193,108,140,253,193,130,140,253,193,166,140,253,193,168,140,253,193,170,140,253,193,188,140,253,193,190,140,253,193,192,140,253,193,252,140,253,193,254,140,253,193,26,141,253,193,70,141,253,193,92,141,253,193,94,141,253,193,120,141,253,193,138,141,253,193,184,141,253,193,186,141,253,193,188,141,253,193,216,141,253,193,218,141,253,193,220,141,253,193,222,141,253,193,224,141,253,193,226,141,253,193,50,142,253,193,52,142,253,193,54,142,253,193,56,142,253,193,58,142,253,193,60,142,253,193,146,142,253,193,136,140,253,193,138,140,253,193,150,140,253,193,158,140,253,193,160,140,253,193,162,140,253,193,172,140,253,193,174,140,253,193,176,140,253,193,178,140,253,193,180,140,253,193,182,140,253,193,184,140,253,193,194,140,253,193,196,140,253,193,198,140,253,193,200,140,253,193,202,140,253,193,204,140,253,193,206,140,253,193,208,140,253,193,210,140,253,193,212,140,253,193,214,140,253,193,216,140,253,193,230,140,253,193,232,140,253,193,234,140,253,193,236,140,253,193,238,140,253,193,240,140,253,193,242,140,253,193,218,140,253,193,246,140,253,193,22,141,253,193,58,141,253,193,114,141,253,193,110,142,253,193,112,142,253,193,198,142,253,193,200,142,253,193,202,144,253,193,10,145,253,193,70,145,253,193,204,145,253,193,224,145,253,193,110,146,253,193,202,146,253,193,10,147,253,193,38,147,253,193,60,147,253,193,74,147,253,193,92,147,253,193,94,147,253,193,96,147,253,193,214,147,253,193,230,147,253,193,58,148,253,193,102,148,253,193,110,148,253,193,134,148,253,193,16,149,253,193,120,149,253,193,144,150,253,193,220,140,253,193,42,141,253,193,84,141,253,193,86,141,253,193,202,142,253,193,32,143,253,193,138,143,253,193,6,144,253,193,12,145,253,193,14,145,253,193,226,145,253,193,44,146,253,193,46,146,253,193,48,146,253,193,148,146,253,193,254,146,253,193,16,147,253,193,34,147,253,193,40,147,253,193,52,147,253,193,54,147,253,193,86,147,253,193,98,147,253,193,100,147,253,193,106,147,253,193,232,147,253,193,234,147,253,193,236,147,253,193,4,148,253,193,28,148,253,193,136,148,253,193,160,148,253,193,244,140,253,193,2,141,253,193,4,141,253,193,6,141,253,193,8,141,253,193,10,141,253,193,12,141,253,193,14,141,253,193,16,141,253,193,18,141,253,193,20,141,253,193,28,141,253,193,30,141,253,193,32,141,253,193,34,141,253,193,36,141,253,193,38,141,253,193,40,141,253,193,46,141,253,193,48,141,253,193,50,141,253,193,52,141,253,193,54,141,253,193,56,141,253,193,62,141,253,193,64,141,253,193,66,141,253,193,72,141,253,193,74,141,253,193,76,141,253,193,78,141,253,193,80,141,253,193,82,141,253,193,96,141,253,193,98,141,253,193,100,141,253,193,102,141,253,193,104,141,253,193,106,141,253,193,108,141,253,193,110,141,253,193,112,141,253,193,122,141,253,193,124,141,253,193,128,141,253,193,130,141,253,193,132,141,253,193,134,141,253,193,136,141,253,193,140,141,253,193,142,141,253,193,144,141,253,193,146,141,253,193,148,141,253,193,150,141,253,193,152,141,253,193,154,141,253,193,156,141,253,193,158,141,253,193,166,141,253,193,168,141,253,193,190,141,253,193,192,141,253,193,194,141,253,193,196,141,253,193,228,141,253,193,230,141,253,193,232,141,253,193,234,141,253,193,236,141,253,193,238,141,253,193,240,141,253,193,242,141,253,193,244,141,253,193,246,141,253,193,248,141,253,193,250,141,253,193,252,141,253,193,254,141,253,193,2,142,253,193,4,142,253,193,6,142,253,193,8,142,253,193,10,142,253,193,12,142,253,193,14,142,253,193,16,142,253,193,18,142,253,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,206,96,108,0,193,122,142,253,193,124,142,253,193,126,142,253,193,128,142,253,193,130,142,253,193,132,142,253,193,134,142,253,193,136,142,253,193,138,142,253,193,140,142,253,193,142,142,253,193,144,142,253,193,212,142,253,193,214,142,253,193,216,142,253,193,218,142,253,193,220,142,253,193,222,142,253,193,224,142,253,193,44,143,253,193,46,143,253,193,48,143,253,193,50,143,253,193,52,143,253,193,54,143,253,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,128,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,206,160,108,0,193,242,142,253,193,244,142,253,193,246,142,253,193,248,142,253,193,250,142,253,193,252,142,253,193,254,142,253,193,2,143,253,193,4,143,253,193,6,143,253,193,8,143,253,193,10,143,253,193,12,143,253,193,14,143,253,193,16,143,253,193,18,143,253,193,20,143,253,193,22,143,253,193,24,143,253,193,26,143,253,193,28,143,253,193,30,143,253,193,74,143,253,193,226,142,253,193,228,142,253,193,230,142,253,193,232,142,253,193,234,142,253,193,236,142,253,193,238,142,253,193,240,142,253,193,60,143,253,193,62,143,253,193,64,143,253,193,66,143,253,193,68,143,253,193,70,143,253,193,72,143,253,193,174,143,253,193,176,143,253,193,178,143,253,193,180,143,253,193,182,143,253,193,184,143,253,193,186,143,253,193,36,144,253,193,38,144,253,193,40,144,253,193,42,144,253,193,44,144,253,193,46,144,253,193,138,144,253,193,140,144,253,193,142,144,253,193,220,144,253,193,56,143,253,193,58,143,253,193,144,143,253,193,146,143,253,193,148,143,253,193,150,143,253,193,152,143,253,193,154,143,253,193,156,143,253,193,158,143,253,193,160,143,253,193,162,143,253,193,164,143,253,193,166,143,253,193,168,143,253,193,170,143,253,193,172,143,253,193,22,144,253,193,24,144,253,193,26,144,253,193,28,144,253,193,30,144,253,193,32,144,253,193,34,144,253,193,130,144,253,193,132,144,253,193,134,144,253,193,136,144,253,193,212,144,253,193,214,144,253,193,216,144,253,193,218,144,253,193,76,143,253,193,78,143,253,193,80,143,253,193,82,143,253,193,84,143,253,193,86,143,253,193,88,143,253,193,90,143,253,193,92,143,253,193,94,143,253,193,96,143,253,193,98,143,253,193,100,143,253,193,102,143,253,193,104,143,253,193,106,143,253,193,108,143,253,193,110,143,253,193,112,143,253,193,114,143,253,193,116,143,253,193,118,143,253,193,120,143,253,193,122,143,253,193,124,143,253,193,126,143,253,193,128,143,253,193,130,143,253,193,132,143,253,193,134,143,253,193,136,143,253,193,188,143,253,193,190,143,253,193,192,143,253,193,194,143,253,193,196,143,253,193,198,143,253,193,200,143,253,193,202,143,253,193,204,143,253,193,206,143,253,193,208,143,253,193,210,143,253,193,212,143,253,193,214,143,253,193,216,143,253,193,218,143,253,193,220,143,253,193,222,143,253,193,224,143,253,193,226,143,253,193,228,143,253,193,230,143,253,193,232,143,253,193,234,143,253,193,236,143,253,193,238,143,253,193,240,143,253,193,242,143,253,193,244,143,253,193,246,143,253,193,248,143,253,193,250,143,253,193,252,143,253,193,254,143,253,193,2,144,253,193,4,144,253,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,193,10,144,253,193,12,144,253,193,14,144,253,193,120,144,253,193,122,144,253,193,124,144,253,193,204,144,253,193,206,144,253,193,208,144,253,193,210,144,253,193,16,145,253,193,18,145,253,193,72,145,253,193,74,145,253,193,198,145,253,193,200,145,253,193,202,145,253,193,50,146,253,193,150,146,253,193,226,146,253,193,42,147,253,193,62,147,253,193,198,147,253,193,200,147,253,193,238,147,253,193,6,148,253,193,8,148,253,193,30,148,253,193,60,148,253,193,82,148,253,193,112,148,253,193,126,148,253,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,206,192,108,0,193,144,144,253,193,146,144,253,193,148,144,253,193,150,144,253,193,152,144,253,193,154,144,253,193,156,144,253,193,158,144,253,193,160,144,253,193,162,144,253,193,164,144,253,193,166,144,253,193,168,144,253,193,170,144,253,193,172,144,253,193,174,144,253,193,176,144,253,193,178,144,253,193,180,144,253,193,182,144,253,193,184,144,253,193,186,144,253,193,188,144,253,193,190,144,253,193,192,144,253,193,194,144,253,193,196,144,253,193,198,144,253,193,200,144,253,193,232,144,253,193,234,144,253,193,236,144,253,193,238,144,253,193,240,144,253,193,242,144,253,193,244,144,253,193,246,144,253,193,248,144,253,193,250,144,253,193,252,144,253,193,254,144,253,193,2,145,253,193,4,145,253,193,6,145,253,193,8,145,253,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,193,222,144,253,193,224,144,253,193,226,144,253,193,228,144,253,193,230,144,253,193,30,145,253,193,32,145,253,193,80,145,253,193,82,145,253,193,116,145,253,193,130,145,253,193,132,145,253,193,150,145,253,193,152,145,253,193,170,145,253,193,212,145,253,193,234,145,253,193,236,145,253,193,238,145,253,193,240,145,253,193,54,146,253,193,82,146,253,193,122,146,253,193,124,146,253,193,126,146,253,193,160,146,253,193,162,146,253,193,208,146,253,193,230,146,253,193,244,146,253,193,112,147,253,193,122,147,253,193,22,145,253,193,24,145,253,193,26,145,253,193,28,145,253,193,76,145,253,193,78,145,253,193,110,145,253,193,112,145,253,193,114,145,253,193,148,145,253,193,180,145,253,193,196,145,253,193,206,145,253,193,230,145,253,193,232,145,253,193,14,146,253,193,16,146,253,193,18,146,253,193,52,146,253,193,76,146,253,193,78,146,253,193,80,146,253,193,112,146,253,193,114,146,253,193,116,146,253,193,118,146,253,193,120,146,253,193,182,146,253,193,152,146,253,193,154,146,253,193,156,146,253,193,158,146,253,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,206,224,108,0,193,84,145,253,193,86,145,253,193,88,145,253,193,90,145,253,193,92,145,253,193,94,145,253,193,96,145,253,193,98,145,253,193,100,145,253,193,102,145,253,193,104,145,253,193,106,145,253,193,108,145,253,193,118,145,253,193,120,145,253,193,122,145,253,193,124,145,253,193,126,145,253,193,128,145,253,193,134,145,253,193,136,145,253,193,138,145,253,193,102,181,253,193,140,145,253,193,142,145,253,193,144,145,253,193,154,145,253,193,156,145,253,193,158,145,253,193,160,145,253,193,162,145,253,193,164,145,253,193,166,145,253,193,168,145,253,193,172,145,253,193,174,145,253,193,176,145,253,193,178,145,253,193,182,145,253,193,184,145,253,193,186,145,253,193,188,145,253,193,190,145,253,193,192,145,253,193,194,145,253,193,208,145,253,193,214,145,253,193,216,145,253,193,218,145,253,193,220,145,253,193,222,145,253,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,193,228,145,253,193,12,146,253,193,74,146,253,193,44,147,253,193,56,147,253,193,58,147,253,193,64,147,253,193,66,147,253,193,68,147,253,193,70,147,253,193,88,147,253,193,102,147,253,193,104,147,253,193,118,147,253,193,160,147,253,193,202,147,253,193,32,148,253,193,34,148,253,193,62,148,253,193,64,148,253,193,24,149,253,193,26,149,253,193,246,149,253,193,248,149,253,193,160,150,253,193,162,150,253,193,252,151,253,193,254,151,253,193,2,152,253,193,152,152,253,193,244,152,253,193,52,153,253,206,0,109,0,206,0,109,0,206,0,109,0,206,0,109,0,193,20,146,253,193,22,146,253,193,24,146,253,193,26,146,253,193,28,146,253,193,30,146,253,193,32,146,253,193,34,146,253,193,36,146,253,193,38,146,253,193,40,146,253,193,56,146,253,193,58,146,253,193,60,146,253,193,62,146,253,193,64,146,253,193,66,146,253,193,68,146,253,193,70,146,253,193,72,146,253,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,206,32,109,0,193,128,146,253,193,130,146,253,193,132,146,253,193,134,146,253,193,136,146,253,193,138,146,253,193,140,146,253,193,142,146,253,193,144,146,253,193,146,146,253,193,164,146,253,193,166,146,253,193,168,146,253,193,170,146,253,193,172,146,253,193,174,146,253,193,176,146,253,193,178,146,253,193,180,146,253,193,186,146,253,193,188,146,253,193,190,146,253,193,192,146,253,193,194,146,253,193,196,146,253,193,198,146,253,193,200,146,253,193,184,146,253,193,204,146,253,193,206,146,253,193,228,146,253,193,2,147,253,193,4,147,253,193,30,147,253,193,32,147,253,193,46,147,253,193,72,147,253,193,76,147,253,193,78,147,253,193,90,147,253,193,108,147,253,193,110,147,253,193,120,147,253,193,126,147,253,193,130,147,253,193,142,147,253,193,184,147,253,193,204,147,253,193,206,147,253,193,216,147,253,193,218,147,253,193,10,148,253,193,44,148,253,193,46,148,253,193,66,148,253,193,68,148,253,193,84,148,253,193,86,148,253,193,88,148,253,193,210,146,253,193,212,146,253,193,214,146,253,193,216,146,253,193,218,146,253,193,220,146,253,193,222,146,253,193,224,146,253,193,232,146,253,193,234,146,253,193,236,146,253,193,238,146,253,193,240,146,253,193,242,146,253,193,246,146,253,193,248,146,253,193,250,146,253,193,252,146,253,193,6,147,253,193,8,147,253,193,12,147,253,193,14,147,253,193,18,147,253,193,20,147,253,193,22,147,253,193,24,147,253,193,26,147,253,193,28,147,253,193,36,147,253,193,48,147,253,193,50,147,253,193,80,147,253,193,82,147,253,193,114,147,253,193,116,147,253,193,124,147,253,193,128,147,253,193,134,147,253,193,136,147,253,193,138,147,253,193,140,147,253,193,148,147,253,193,150,147,253,193,154,147,253,193,164,147,253,193,156,147,253,193,158,147,253,193,166,147,253,193,168,147,253,193,170,147,253,193,172,147,253,193,174,147,253,193,178,147,253,193,180,147,253,193,182,147,253,193,196,147,253,193,210,147,253,193,212,147,253,193,222,147,253,193,224,147,253,193,226,147,253,193,228,147,253,193,240,147,253,193,242,147,253,193,132,147,253,193,144,147,253,193,146,147,253,193,152,147,253,193,162,147,253,193,176,147,253,193,190,147,253,193,192,147,253,193,194,147,253,193,208,147,253,193,220,147,253,193,12,148,253,193,14,148,253,193,48,148,253,193,70,148,253,193,72,148,253,193,114,148,253,193,172,148,253,193,174,148,253,193,218,148,253,193,220,148,253,193,222,148,253,193,40,149,253,193,42,149,253,193,44,149,253,193,46,149,253,193,48,149,253,193,50,149,253,193,52,149,253,193,54,149,253,193,56,149,253,193,166,149,253,193,244,147,253,193,246,147,253,193,248,147,253,193,250,147,253,193,252,147,253,193,254,147,253,193,2,148,253,193,16,148,253,193,18,148,253,193,20,148,253,193,22,148,253,193,24,148,253,193,26,148,253,193,36,148,253,193,38,148,253,193,40,148,253,193,42,148,253,193,50,148,253,193,52,148,253,193,54,148,253,193,56,148,253,193,74,148,253,193,76,148,253,193,78,148,253,193,80,148,253,193,90,148,253,193,92,148,253,193,94,148,253,193,96,148,253,193,98,148,253,193,100,148,253,193,104,148,253,193,106,148,253,193,108,148,253,193,116,148,253,193,118,148,253,193,120,148,253,193,122,148,253,193,124,148,253,193,130,148,253,193,132,148,253,193,138,148,253,193,140,148,253,193,144,148,253,193,152,148,253,193,154,148,253,193,156,148,253,193,158,148,253,193,176,148,253,193,178,148,253,193,180,148,253,193,182,148,253,193,184,148,253,193,186,148,253,193,188,148,253,193,190,148,253,193,192,148,253,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,193,128,148,253,193,142,148,253,193,146,148,253,193,148,148,253,193,150,148,253,193,162,148,253,193,164,148,253,193,166,148,253,193,168,148,253,193,170,148,253,193,196,148,253,193,198,148,253,193,200,148,253,193,202,148,253,193,204,148,253,193,206,148,253,193,208,148,253,193,210,148,253,193,212,148,253,193,214,148,253,193,28,149,253,193,30,149,253,193,32,149,253,193,34,149,253,193,36,149,253,193,216,148,253,193,38,149,253,206,128,109,0,206,128,109,0,206,128,109,0,206,128,109,0,206,128,109,0,193,194,148,253,193,122,149,253,193,124,149,253,193,236,149,253,193,148,150,253,193,150,150,253,193,152,150,253,193,154,150,253,193,24,151,253,193,26,151,253,193,142,151,253,193,144,151,253,193,70,152,253,193,72,152,253,193,146,152,253,193,194,152,253,193,16,153,253,193,50,153,253,193,68,153,253,193,76,153,253,193,112,153,253,193,114,153,253,193,130,153,253,193,132,153,253,193,134,153,253,193,136,153,253,193,138,153,253,193,164,153,253,193,166,153,253,193,168,153,253,193,170,153,253,193,172,153,253,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,64,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,193,18,149,253,193,20,149,253,193,22,149,253,193,126,149,253,193,128,149,253,193,130,149,253,193,132,149,253,193,238,149,253,193,240,149,253,193,242,149,253,193,244,149,253,193,156,150,253,193,158,150,253,193,28,151,253,193,30,151,253,193,32,151,253,193,34,151,253,193,36,151,253,193,38,151,253,193,40,151,253,193,42,151,253,193,146,151,253,193,148,151,253,193,242,151,253,193,244,151,253,193,246,151,253,193,248,151,253,193,250,151,253,193,74,152,253,193,76,152,253,193,148,152,253,193,150,152,253,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,96,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,128,109,0,206,128,109,0,206,128,109,0,206,128,109,0,193,250,149,253,193,252,149,253,193,152,149,253,193,154,149,253,193,156,149,253,193,158,149,253,193,160,149,253,193,162,149,253,193,164,149,253,193,254,149,253,193,2,150,253,193,4,150,253,193,6,150,253,193,8,150,253,193,10,150,253,193,12,150,253,193,14,150,253,193,16,150,253,193,18,150,253,193,20,150,253,193,22,150,253,193,24,150,253,193,26,150,253,193,28,150,253,193,30,150,253,193,32,150,253,193,44,151,253,193,164,150,253,193,168,149,253,193,170,149,253,193,172,149,253,193,34,150,253,193,36,150,253,193,38,150,253,193,40,150,253,193,42,150,253,193,44,150,253,193,46,150,253,193,48,150,253,193,188,150,253,193,190,150,253,193,192,150,253,193,194,150,253,193,196,150,253,193,198,150,253,193,200,150,253,193,202,150,253,193,204,150,253,193,68,151,253,193,70,151,253,193,72,151,253,193,74,151,253,193,76,151,253,193,78,151,253,193,80,151,253,193,82,151,253,193,84,151,253,193,86,151,253,193,168,151,253,193,170,151,253,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,160,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,206,192,109,0,193,206,150,253,193,208,150,253,193,210,150,253,193,146,150,253,193,22,151,253,193,138,151,253,193,140,151,253,193,240,151,253,193,66,152,253,193,68,152,253,193,144,152,253,193,192,152,253,193,14,153,253,193,86,153,253,193,108,153,253,193,126,153,253,193,128,153,253,193,156,153,253,193,158,153,253,193,160,153,253,193,162,153,253,193,206,153,253,193,208,153,253,193,230,153,253,193,232,153,253,193,234,153,253,193,16,154,253,193,38,154,253,193,54,154,253,193,76,154,253,193,160,154,253,193,220,154,253,193,160,155,253,193,240,155,253,193,242,155,253,193,166,150,253,193,168,150,253,193,170,150,253,193,172,150,253,193,174,150,253,193,176,150,253,193,178,150,253,193,180,150,253,193,182,150,253,193,184,150,253,193,186,150,253,193,46,151,253,193,48,151,253,193,50,151,253,193,52,151,253,193,54,151,253,193,56,151,253,193,58,151,253,193,60,151,253,193,62,151,253,193,64,151,253,193,66,151,253,193,150,151,253,193,152,151,253,193,154,151,253,193,156,151,253,193,158,151,253,193,160,151,253,193,162,151,253,193,164,151,253,193,166,151,253,193,4,152,253,193,212,150,253,193,214,150,253,193,216,150,253,193,218,150,253,193,220,150,253,193,222,150,253,193,224,150,253,193,226,150,253,193,228,150,253,193,230,150,253,193,232,150,253,193,234,150,253,193,236,150,253,193,238,150,253,193,240,150,253,193,242,150,253,193,244,150,253,193,246,150,253,193,248,150,253,193,250,150,253,193,252,150,253,193,254,150,253,193,2,151,253,193,4,151,253,193,6,151,253,193,8,151,253,193,10,151,253,193,12,151,253,193,14,151,253,193,16,151,253,193,18,151,253,193,20,151,253,193,88,151,253,193,90,151,253,193,92,151,253,193,94,151,253,193,96,151,253,193,98,151,253,193,100,151,253,193,102,151,253,193,104,151,253,193,106,151,253,193,108,151,253,193,110,151,253,193,112,151,253,193,114,151,253,193,116,151,253,193,118,151,253,193,120,151,253,193,122,151,253,193,124,151,253,193,126,151,253,193,128,151,253,193,130,151,253,193,132,151,253,193,134,151,253,193,136,151,253,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,193,172,151,253,193,174,151,253,193,176,151,253,193,178,151,253,193,180,151,253,193,182,151,253,193,184,151,253,193,186,151,253,193,14,152,253,193,16,152,253,193,18,152,253,193,20,152,253,193,88,152,253,193,90,152,253,193,92,152,253,193,94,152,253,193,96,152,253,193,98,152,253,193,160,152,253,193,162,152,253,193,164,152,253,193,248,152,253,193,250,152,253,193,26,153,253,193,84,154,253,193,96,154,253,193,118,154,253,193,120,154,253,193,122,154,253,193,124,154,253,193,176,154,253,193,178,154,253,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,224,109,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,193,6,152,253,193,8,152,253,193,10,152,253,193,12,152,253,193,78,152,253,193,80,152,253,193,82,152,253,193,84,152,253,193,86,152,253,193,154,152,253,193,156,152,253,193,158,152,253,193,200,152,253,193,202,152,253,193,204,152,253,193,206,152,253,193,246,152,253,193,22,153,253,193,24,153,253,193,54,153,253,193,56,153,253,193,70,153,253,193,72,153,253,193,74,153,253,193,78,153,253,193,80,153,253,193,82,153,253,193,84,153,253,206,32,110,0,206,32,110,0,206,32,110,0,206,32,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,206,0,110,0,193,100,152,253,193,102,152,253,193,104,152,253,193,106,152,253,193,108,152,253,193,110,152,253,193,112,152,253,193,114,152,253,193,116,152,253,193,118,152,253,193,120,152,253,193,122,152,253,193,124,152,253,193,126,152,253,193,128,152,253,193,130,152,253,193,132,152,253,193,134,152,253,193,136,152,253,193,138,152,253,193,140,152,253,193,142,152,253,193,166,152,253,193,168,152,253,193,170,152,253,193,172,152,253,193,174,152,253,193,176,152,253,193,178,152,253,193,180,152,253,193,182,152,253,193,184,152,253,193,186,152,253,193,188,152,253,193,190,152,253,193,208,152,253,193,210,152,253,193,212,152,253,193,214,152,253,193,216,152,253,193,218,152,253,193,220,152,253,193,222,152,253,193,224,152,253,193,226,152,253,193,228,152,253,193,230,152,253,193,232,152,253,193,234,152,253,193,236,152,253,193,238,152,253,193,240,152,253,193,242,152,253,193,252,152,253,193,254,152,253,193,196,152,253,193,198,152,253,193,18,153,253,193,20,153,253,193,34,153,253,193,36,153,253,193,90,154,253,193,162,154,253,193,222,154,253,193,16,155,253,193,18,155,253,193,20,155,253,193,78,155,253,193,162,155,253,193,164,155,253,193,166,155,253,193,58,156,253,193,96,156,253,193,168,156,253,193,230,156,253,193,62,157,253,193,98,157,253,193,166,157,253,193,246,157,253,193,248,157,253,193,194,158,253,193,196,158,253,193,198,158,253,193,48,159,253,193,52,160,253,193,54,160,253,193,56,160,253,193,2,153,253,193,4,153,253,193,6,153,253,193,8,153,253,193,10,153,253,193,12,153,253,193,28,153,253,193,30,153,253,193,32,153,253,193,38,153,253,193,40,153,253,193,42,153,253,193,44,153,253,193,46,153,253,193,48,153,253,193,58,153,253,193,60,153,253,193,62,153,253,193,64,153,253,193,66,153,253,193,36,206,253,193,226,153,253,193,228,153,253,193,68,154,253,193,86,154,253,193,88,154,253,193,98,154,253,193,100,154,253,193,102,154,253,193,104,154,253,193,106,154,253,193,108,154,253,193,88,153,253,193,116,153,253,193,140,153,253,193,180,153,253,193,182,153,253,193,184,153,253,193,186,153,253,193,188,153,253,193,190,153,253,193,216,153,253,193,218,153,253,193,220,153,253,193,222,153,253,193,250,153,253,193,252,153,253,193,254,153,253,193,2,154,253,193,24,154,253,193,26,154,253,193,28,154,253,193,42,154,253,193,44,154,253,193,46,154,253,193,48,154,253,193,50,154,253,193,52,154,253,193,56,154,253,193,64,154,253,193,164,154,253,193,224,154,253,193,226,154,253,193,228,154,253,206,32,110,0,206,32,110,0,206,32,110,0,206,32,110,0,206,32,110,0,193,118,153,253,193,120,153,253,193,122,153,253,193,124,153,253,193,142,153,253,193,144,153,253,193,146,153,253,193,148,153,253,193,150,153,253,193,152,153,253,193,154,153,253,193,192,153,253,193,194,153,253,193,196,153,253,193,198,153,253,193,200,153,253,193,202,153,253,193,204,153,253,193,224,153,253,193,4,154,253,193,6,154,253,193,8,154,253,193,10,154,253,193,12,154,253,193,14,154,253,193,30,154,253,193,32,154,253,193,174,153,253,193,176,153,253,193,178,153,253,193,210,153,253,193,212,153,253,193,214,153,253,193,236,153,253,193,238,153,253,193,240,153,253,193,242,153,253,193,244,153,253,193,246,153,253,193,248,153,253,193,18,154,253,193,20,154,253,193,22,154,253,193,40,154,253,193,62,154,253,193,72,154,253,193,80,154,253,193,244,155,253,193,252,156,253,193,254,156,253,193,2,157,253,193,18,157,253,193,20,157,253,193,22,157,253,193,24,157,253,193,30,157,253,193,42,157,253,193,56,157,253,193,58,157,253,193,34,154,253,193,36,154,253,193,58,154,253,193,60,154,253,193,66,154,253,193,70,154,253,193,74,154,253,193,78,154,253,193,82,154,253,193,92,154,253,193,94,154,253,193,114,154,253,193,116,154,253,193,166,154,253,193,168,154,253,193,170,154,253,193,172,154,253,193,174,154,253,193,230,154,253,193,232,154,253,193,22,155,253,193,24,155,253,193,86,155,253,193,88,155,253,193,176,155,253,193,178,155,253,193,180,155,253,193,252,155,253,193,254,155,253,193,2,156,253,193,4,156,253,193,6,156,253,193,180,154,253,193,182,154,253,193,184,154,253,193,186,154,253,193,234,154,253,193,236,154,253,193,26,155,253,193,28,155,253,193,30,155,253,193,32,155,253,193,34,155,253,193,90,155,253,193,92,155,253,193,94,155,253,193,96,155,253,193,98,155,253,193,100,155,253,193,182,155,253,193,184,155,253,193,186,155,253,193,188,155,253,193,190,155,253,193,192,155,253,193,194,155,253,193,10,156,253,193,12,156,253,193,14,156,253,193,70,156,253,193,72,156,253,193,116,156,253,193,174,156,253,193,184,156,253,206,64,110,0,206,64,110,0,206,64,110,0,206,64,110,0,193,240,154,253,193,242,154,253,193,244,154,253,193,246,154,253,193,248,154,253,193,250,154,253,193,252,154,253,193,254,154,253,193,2,155,253,193,4,155,253,193,6,155,253,193,8,155,253,193,10,155,253,193,12,155,253,193,14,155,253,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,96,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,193,80,155,253,193,82,155,253,193,84,155,253,193,168,155,253,193,170,155,253,193,172,155,253,193,174,155,253,193,246,155,253,193,248,155,253,193,250,155,253,193,60,156,253,193,98,156,253,193,100,156,253,193,102,156,253,193,170,156,253,193,172,156,253,193,198,156,253,193,214,156,253,193,224,156,253,193,226,156,253,193,246,156,253,193,4,157,253,193,26,157,253,193,28,157,253,193,32,157,253,193,34,157,253,193,36,157,253,193,44,157,253,193,64,157,253,193,66,157,253,193,82,157,253,193,100,157,253,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,206,128,110,0,193,196,155,253,193,198,155,253,193,200,155,253,193,202,155,253,193,204,155,253,193,206,155,253,193,208,155,253,193,210,155,253,193,212,155,253,193,16,156,253,193,214,155,253,193,216,155,253,193,218,155,253,193,220,155,253,193,222,155,253,193,224,155,253,193,226,155,253,193,228,155,253,193,230,155,253,193,232,155,253,193,234,155,253,193,236,155,253,193,238,155,253,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,193,8,156,253,193,62,156,253,193,64,156,253,193,66,156,253,193,68,156,253,193,104,156,253,193,106,156,253,193,108,156,253,193,110,156,253,193,112,156,253,193,114,156,253,193,150,156,253,193,216,156,253,193,218,156,253,193,242,156,253,193,244,156,253,193,6,157,253,193,8,157,253,193,10,157,253,193,46,157,253,193,68,157,253,193,84,157,253,193,70,157,253,193,86,157,253,193,96,157,253,193,102,157,253,193,104,157,253,193,122,157,253,193,148,157,253,193,160,157,253,193,164,157,253,193,170,157,253,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,206,160,110,0,193,74,156,253,193,76,156,253,193,78,156,253,193,80,156,253,193,82,156,253,193,84,156,253,193,86,156,253,193,88,156,253,193,90,156,253,193,92,156,253,193,94,156,253,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,193,52,156,253,193,54,156,253,193,56,156,253,193,164,156,253,193,166,156,253,193,182,156,253,193,196,156,253,193,248,156,253,193,40,157,253,193,54,157,253,193,76,157,253,193,116,157,253,193,168,157,253,193,70,158,253,193,192,158,253,193,34,159,253,193,36,159,253,193,38,159,253,193,40,159,253,193,150,159,253,193,196,160,253,193,198,160,253,193,200,160,253,193,202,160,253,193,76,161,253,193,186,161,253,193,188,161,253,193,36,162,253,193,178,162,253,193,180,162,253,193,34,163,253,193,62,163,253,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,206,192,110,0,193,152,156,253,193,154,156,253,193,156,156,253,193,158,156,253,193,160,156,253,193,162,156,253,193,176,156,253,193,178,156,253,193,180,156,253,193,186,156,253,193,188,156,253,193,190,156,253,193,192,156,253,193,194,156,253,193,200,156,253,193,202,156,253,193,204,156,253,193,206,156,253,193,208,156,253,193,210,156,253,193,212,156,253,193,220,156,253,193,222,156,253,193,228,156,253,193,232,156,253,193,234,156,253,193,236,156,253,193,238,156,253,193,240,156,253,193,12,157,253,193,14,157,253,193,38,157,253,193,48,157,253,193,50,157,253,193,52,157,253,193,72,157,253,193,74,157,253,193,88,157,253,193,90,157,253,193,106,157,253,193,114,157,253,193,124,157,253,193,126,157,253,193,128,157,253,193,132,157,253,193,138,157,253,193,140,157,253,193,142,157,253,193,144,157,253,193,146,157,253,193,150,157,253,193,152,157,253,193,154,157,253,193,156,157,253,193,162,157,253,193,176,157,253,193,60,157,253,193,78,157,253,193,80,157,253,193,92,157,253,193,94,157,253,193,108,157,253,193,110,157,253,193,118,157,253,193,120,157,253,193,130,157,253,193,158,157,253,193,72,158,253,193,74,158,253,193,76,158,253,193,78,158,253,193,42,159,253,193,44,159,253,193,46,159,253,193,152,159,253,193,154,159,253,193,156,159,253,193,48,160,253,193,50,160,253,193,204,160,253,193,206,160,253,193,208,160,253,193,190,161,253,193,38,162,253,193,40,162,253,193,42,162,253,193,44,162,253,193,114,162,253,193,112,157,253,193,250,157,253,193,252,157,253,193,254,157,253,193,80,158,253,193,50,159,253,193,52,159,253,193,54,159,253,193,158,159,253,193,160,159,253,193,60,160,253,193,62,160,253,193,86,161,253,193,88,161,253,193,90,161,253,193,200,161,253,193,48,162,253,193,40,163,253,193,70,163,253,193,72,163,253,193,74,163,253,193,116,163,253,193,118,163,253,193,120,163,253,193,156,163,253,193,158,163,253,193,160,163,253,193,162,163,253,193,228,163,253,193,230,163,253,193,232,163,253,193,234,163,253,193,134,157,253,193,136,157,253,193,194,157,253,193,212,157,253,193,214,157,253,193,216,157,253,193,22,158,253,193,24,158,253,193,26,158,253,193,28,158,253,193,30,158,253,193,106,158,253,193,108,158,253,193,110,158,253,193,112,158,253,193,114,158,253,193,116,158,253,193,118,158,253,193,120,158,253,193,122,158,253,193,124,158,253,193,234,158,253,193,236,158,253,193,238,158,253,193,240,158,253,193,242,158,253,193,244,158,253,193,246,158,253,193,78,159,253,193,80,159,253,193,82,159,253,193,84,159,253,193,172,157,253,193,186,157,253,193,188,157,253,193,190,157,253,193,192,157,253,193,204,157,253,193,206,157,253,193,208,157,253,193,210,157,253,193,2,158,253,193,4,158,253,193,6,158,253,193,8,158,253,193,10,158,253,193,12,158,253,193,14,158,253,193,16,158,253,193,18,158,253,193,20,158,253,193,82,158,253,193,84,158,253,193,86,158,253,193,88,158,253,193,90,158,253,193,92,158,253,193,94,158,253,193,200,158,253,193,96,158,253,193,98,158,253,193,100,158,253,193,102,158,253,193,104,158,253,193,178,157,253,193,180,157,253,193,184,157,253,193,182,157,253,193,198,157,253,193,200,157,253,193,202,157,253,193,218,157,253,193,220,157,253,193,222,157,253,193,224,157,253,193,226,157,253,193,228,157,253,193,230,157,253,193,232,157,253,193,234,157,253,193,236,157,253,193,238,157,253,193,240,157,253,193,242,157,253,193,244,157,253,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,224,110,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,206,0,111,0,193,248,158,253,193,250,158,253,193,252,158,253,193,254,158,253,193,2,159,253,193,4,159,253,193,6,159,253,193,8,159,253,193,10,159,253,193,12,159,253,193,14,159,253,193,16,159,253,193,18,159,253,193,20,159,253,193,22,159,253,193,24,159,253,193,26,159,253,193,28,159,253,193,30,159,253,193,32,159,253,193,92,159,253,193,94,159,253,193,96,159,253,193,202,158,253,193,204,158,253,193,206,158,253,193,208,158,253,193,210,158,253,193,212,158,253,193,214,158,253,193,216,158,253,193,218,158,253,193,220,158,253,193,222,158,253,193,224,158,253,193,226,158,253,193,228,158,253,193,230,158,253,193,232,158,253,193,56,159,253,193,58,159,253,193,60,159,253,193,62,159,253,193,64,159,253,193,66,159,253,193,68,159,253,193,70,159,253,193,72,159,253,193,74,159,253,193,162,159,253,193,164,159,253,193,166,159,253,193,76,159,253,193,168,159,253,193,170,159,253,193,86,159,253,193,88,159,253,193,90,159,253,193,192,159,253,193,194,159,253,193,196,159,253,193,198,159,253,193,200,159,253,193,90,160,253,193,92,160,253,193,94,160,253,193,96,160,253,193,98,160,253,193,100,160,253,193,102,160,253,193,104,160,253,193,250,160,253,193,252,160,253,193,254,160,253,193,2,161,253,193,4,161,253,193,104,161,253,193,106,161,253,193,108,161,253,193,222,161,253,193,224,161,253,193,226,161,253,193,228,161,253,193,230,161,253,193,62,162,253,193,64,162,253,193,66,162,253,193,98,159,253,193,100,159,253,193,102,159,253,193,104,159,253,193,106,159,253,193,108,159,253,193,110,159,253,193,112,159,253,193,114,159,253,193,116,159,253,193,118,159,253,193,120,159,253,193,122,159,253,193,124,159,253,193,126,159,253,193,128,159,253,193,130,159,253,193,132,159,253,193,134,159,253,193,136,159,253,193,138,159,253,193,140,159,253,193,142,159,253,193,144,159,253,193,146,159,253,193,148,159,253,193,202,159,253,193,204,159,253,193,206,159,253,193,208,159,253,193,210,159,253,193,212,159,253,193,172,159,253,193,174,159,253,193,176,159,253,193,178,159,253,193,180,159,253,193,182,159,253,193,184,159,253,193,186,159,253,193,188,159,253,193,190,159,253,193,64,160,253,193,66,160,253,193,68,160,253,193,70,160,253,193,72,160,253,193,74,160,253,193,76,160,253,193,78,160,253,193,80,160,253,193,82,160,253,193,84,160,253,193,86,160,253,193,224,160,253,193,88,160,253,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,193,214,159,253,193,216,159,253,193,218,159,253,193,220,159,253,193,222,159,253,193,224,159,253,193,226,159,253,193,228,159,253,193,230,159,253,193,232,159,253,193,234,159,253,193,236,159,253,193,238,159,253,193,240,159,253,193,242,159,253,193,244,159,253,193,246,159,253,193,248,159,253,193,250,159,253,193,252,159,253,193,254,159,253,193,2,160,253,193,4,160,253,193,6,160,253,193,8,160,253,193,10,160,253,193,12,160,253,193,14,160,253,193,16,160,253,193,18,160,253,193,20,160,253,193,22,160,253,193,24,160,253,193,26,160,253,193,28,160,253,193,106,160,253,193,30,160,253,193,32,160,253,193,34,160,253,193,36,160,253,193,38,160,253,193,40,160,253,193,42,160,253,193,44,160,253,193,46,160,253,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,193,58,160,253,193,210,160,253,193,212,160,253,193,214,160,253,193,216,160,253,193,218,160,253,193,220,160,253,193,222,160,253,193,78,161,253,193,80,161,253,193,82,161,253,193,84,161,253,193,192,161,253,193,194,161,253,193,196,161,253,193,198,161,253,193,46,162,253,193,118,162,253,193,120,162,253,193,122,162,253,193,124,162,253,193,126,162,253,193,204,162,253,193,206,162,253,193,228,162,253,193,240,162,253,193,242,162,253,193,152,163,253,193,154,163,253,193,14,164,253,193,88,164,253,193,122,164,253,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,32,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,64,111,0,206,64,111,0,206,64,111,0,206,64,111,0,193,92,161,253,193,94,161,253,193,96,161,253,193,98,161,253,193,100,161,253,193,102,161,253,193,202,161,253,193,204,161,253,193,206,161,253,193,208,161,253,193,210,161,253,193,212,161,253,193,214,161,253,193,216,161,253,193,218,161,253,193,220,161,253,193,50,162,253,193,52,162,253,193,54,162,253,193,56,162,253,193,58,162,253,193,60,162,253,193,128,162,253,193,130,162,253,193,132,162,253,193,208,162,253,193,230,162,253,193,232,162,253,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,206,96,111,0,193,112,161,253,193,60,161,253,193,62,161,253,193,64,161,253,193,66,161,253,193,68,161,253,193,70,161,253,193,72,161,253,193,74,161,253,193,114,161,253,193,116,161,253,193,118,161,253,193,120,161,253,193,122,161,253,193,124,161,253,193,126,161,253,193,128,161,253,193,130,161,253,193,132,161,253,193,134,161,253,193,136,161,253,193,138,161,253,193,140,161,253,193,142,161,253,193,144,161,253,193,146,161,253,193,148,161,253,193,150,161,253,193,152,161,253,193,154,161,253,193,156,161,253,193,158,161,253,193,160,161,253,193,162,161,253,193,164,161,253,193,166,161,253,193,168,161,253,193,170,161,253,193,172,161,253,193,174,161,253,193,176,161,253,193,178,161,253,193,180,161,253,193,182,161,253,193,184,161,253,193,234,161,253,193,236,161,253,193,238,161,253,193,240,161,253,193,242,161,253,193,244,161,253,193,246,161,253,193,248,161,253,193,250,161,253,193,252,161,253,193,254,161,253,193,2,162,253,193,4,162,253,193,6,162,253,193,8,162,253,193,10,162,253,193,12,162,253,193,14,162,253,193,16,162,253,193,18,162,253,193,20,162,253,193,70,162,253,193,22,162,253,193,24,162,253,193,26,162,253,193,28,162,253,193,30,162,253,193,32,162,253,193,34,162,253,193,72,162,253,193,74,162,253,193,68,162,253,193,136,162,253,193,138,162,253,193,140,162,253,193,142,162,253,193,182,162,253,193,234,162,253,193,236,162,253,193,244,162,253,193,8,163,253,193,76,164,253,193,144,164,253,193,146,164,253,193,206,164,253,193,220,164,253,193,20,165,253,193,66,165,253,193,68,165,253,193,70,165,253,193,202,165,253,193,220,165,253,193,254,165,253,193,2,166,253,193,66,166,253,193,68,166,253,193,70,166,253,193,72,166,253,193,74,166,253,193,76,166,253,193,78,166,253,193,80,166,253,193,192,166,253,193,76,162,253,193,78,162,253,193,80,162,253,193,82,162,253,193,84,162,253,193,86,162,253,193,88,162,253,193,90,162,253,193,92,162,253,193,94,162,253,193,96,162,253,193,98,162,253,193,100,162,253,193,102,162,253,193,104,162,253,193,106,162,253,193,108,162,253,193,110,162,253,193,112,162,253,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,193,116,162,253,193,202,162,253,193,254,162,253,193,2,163,253,193,10,163,253,193,26,163,253,193,28,163,253,193,36,163,253,193,38,163,253,193,66,163,253,193,68,163,253,193,98,163,253,193,100,163,253,193,102,163,253,193,104,163,253,193,106,163,253,193,108,163,253,193,110,163,253,193,112,163,253,193,114,163,253,193,144,163,253,193,146,163,253,193,148,163,253,193,150,163,253,193,188,163,253,193,190,163,253,193,192,163,253,193,194,163,253,193,214,163,253,193,216,163,253,193,218,163,253,193,220,163,253,206,128,111,0,206,128,111,0,206,128,111,0,206,128,111,0,193,184,162,253,193,186,162,253,193,188,162,253,193,190,162,253,193,192,162,253,193,194,162,253,193,196,162,253,193,198,162,253,193,200,162,253,193,210,162,253,193,212,162,253,193,214,162,253,193,216,162,253,193,218,162,253,193,220,162,253,193,222,162,253,193,224,162,253,193,226,162,253,193,238,162,253,193,246,162,253,193,248,162,253,193,250,162,253,193,252,162,253,193,12,163,253,193,16,163,253,193,18,163,253,193,56,163,253,193,58,163,253,193,4,163,253,193,6,163,253,193,14,163,253,193,20,163,253,193,22,163,253,193,24,163,253,193,30,163,253,193,32,163,253,193,42,163,253,193,44,163,253,193,46,163,253,193,48,163,253,193,50,163,253,193,52,163,253,193,54,163,253,193,76,163,253,193,78,163,253,193,80,163,253,193,82,163,253,193,84,163,253,193,86,163,253,193,122,163,253,193,124,163,253,193,126,163,253,193,128,163,253,193,130,163,253,193,132,163,253,193,134,163,253,193,136,163,253,193,164,163,253,193,166,163,253,193,168,163,253,193,60,163,253,193,88,163,253,193,90,163,253,193,138,163,253,193,176,163,253,193,178,163,253,193,204,163,253,193,180,163,253,193,206,163,253,193,208,163,253,193,244,163,253,193,246,163,253,193,38,164,253,193,62,164,253,193,64,164,253,193,78,164,253,193,112,164,253,193,116,164,253,193,118,164,253,193,120,164,253,193,124,164,253,193,128,164,253,193,130,164,253,193,132,164,253,193,134,164,253,193,136,164,253,193,148,164,253,193,150,164,253,193,152,164,253,193,154,164,253,193,156,164,253,193,158,164,253,193,64,163,253,193,92,163,253,193,94,163,253,193,96,163,253,193,140,163,253,193,142,163,253,193,182,163,253,193,184,163,253,193,186,163,253,193,210,163,253,193,212,163,253,193,248,163,253,193,250,163,253,193,252,163,253,193,254,163,253,193,2,164,253,193,40,164,253,193,42,164,253,193,80,164,253,193,82,164,253,193,94,164,253,193,106,164,253,193,138,164,253,193,182,164,253,193,198,164,253,193,226,164,253,193,232,164,253,193,246,164,253,193,40,165,253,193,42,165,253,193,80,165,253,193,106,165,253,193,170,163,253,193,172,163,253,193,174,163,253,193,196,163,253,193,198,163,253,193,200,163,253,193,202,163,253,193,236,163,253,193,238,163,253,193,26,164,253,193,240,163,253,193,242,163,253,193,28,164,253,193,30,164,253,193,32,164,253,193,34,164,253,193,36,164,253,193,58,164,253,193,60,164,253,193,72,164,253,193,74,164,253,193,108,164,253,193,110,164,253,193,114,164,253,193,192,164,253,193,252,164,253,193,2,165,253,193,14,165,253,193,16,165,253,193,18,165,253,193,48,165,253,193,50,165,253,193,222,163,253,193,224,163,253,193,226,163,253,193,4,164,253,193,6,164,253,193,8,164,253,193,10,164,253,193,12,164,253,193,44,164,253,193,46,164,253,193,48,164,253,193,50,164,253,193,52,164,253,193,54,164,253,193,66,164,253,193,68,164,253,193,70,164,253,193,84,164,253,193,86,164,253,193,96,164,253,193,98,164,253,193,162,164,253,193,164,164,253,193,184,164,253,193,186,164,253,193,200,164,253,193,228,164,253,193,238,164,253,193,10,165,253,193,82,165,253,193,84,165,253,193,108,165,253,193,16,164,253,193,18,164,253,193,20,164,253,193,22,164,253,193,24,164,253,193,56,164,253,193,90,164,253,193,92,164,253,193,100,164,253,193,102,164,253,193,104,164,253,193,126,164,253,193,142,164,253,193,204,164,253,193,12,165,253,193,58,165,253,193,160,165,253,193,238,165,253,193,140,166,253,193,30,167,253,193,32,167,253,193,34,167,253,193,36,167,253,193,38,167,253,193,190,167,253,193,192,167,253,193,194,167,253,193,196,167,253,193,198,167,253,193,44,168,253,193,46,168,253,193,48,168,253,193,140,164,253,193,166,164,253,193,188,164,253,193,190,164,253,193,202,164,253,193,216,164,253,193,218,164,253,193,44,165,253,193,46,165,253,193,86,165,253,193,88,165,253,193,134,165,253,193,136,165,253,193,158,165,253,193,178,165,253,193,186,165,253,193,188,165,253,193,194,165,253,193,236,165,253,193,22,166,253,193,24,166,253,193,26,166,253,193,28,166,253,193,134,166,253,193,136,166,253,193,138,166,253,193,22,167,253,193,24,167,253,193,26,167,253,193,28,167,253,193,176,167,253,193,178,167,253,193,26,165,253,193,28,165,253,193,34,165,253,193,30,165,253,193,32,165,253,193,36,165,253,193,38,165,253,193,54,165,253,193,56,165,253,193,72,165,253,193,74,165,253,193,76,165,253,193,94,165,253,193,96,165,253,193,98,165,253,193,78,165,253,193,100,165,253,193,102,165,253,193,104,165,253,193,116,165,253,193,118,165,253,193,120,165,253,193,122,165,253,193,124,165,253,193,126,165,253,193,140,165,253,193,142,165,253,193,144,165,253,193,146,165,253,193,164,165,253,193,166,165,253,193,168,165,253,193,52,165,253,193,60,165,253,193,62,165,253,193,64,165,253,193,90,165,253,193,92,165,253,193,112,165,253,193,114,165,253,193,138,165,253,193,162,165,253,193,190,165,253,193,200,165,253,193,208,165,253,193,216,165,253,193,218,165,253,193,240,165,253,193,242,165,253,193,244,165,253,193,246,165,253,193,248,165,253,193,250,165,253,193,252,165,253,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,193,110,165,253,193,128,165,253,193,130,165,253,193,132,165,253,193,152,165,253,193,154,165,253,193,156,165,253,193,176,165,253,193,20,166,253,193,130,166,253,193,132,166,253,193,174,167,253,193,36,168,253,193,202,168,253,193,204,168,253,193,206,168,253,193,126,170,253,193,240,170,253,193,238,171,253,193,24,172,253,193,78,172,253,193,80,172,253,193,82,172,253,193,84,172,253,193,86,172,253,193,140,172,253,193,142,172,253,193,144,172,253,193,146,172,253,193,148,172,253,193,150,172,253,193,200,172,253,193,148,165,253,193,150,165,253,193,174,165,253,193,184,165,253,193,206,165,253,193,18,166,253,193,122,166,253,193,124,166,253,193,126,166,253,193,128,166,253,193,172,167,253,193,194,168,253,193,196,168,253,193,198,168,253,193,200,168,253,193,94,169,253,193,96,169,253,193,98,169,253,193,10,170,253,193,12,170,253,193,14,170,253,193,16,170,253,193,18,170,253,193,238,170,253,193,62,171,253,193,106,171,253,193,194,171,253,193,254,171,253,193,20,172,253,193,22,172,253,193,72,172,253,193,74,172,253,193,170,165,253,193,172,165,253,193,180,165,253,193,182,165,253,193,192,165,253,193,198,165,253,193,204,165,253,193,210,165,253,193,214,165,253,193,222,165,253,193,224,165,253,193,226,165,253,193,228,165,253,193,230,165,253,193,232,165,253,193,234,165,253,193,4,166,253,193,6,166,253,193,8,166,253,193,10,166,253,193,12,166,253,193,14,166,253,193,16,166,253,193,82,166,253,193,84,166,253,193,86,166,253,193,88,166,253,193,90,166,253,193,92,166,253,193,94,166,253,193,96,166,253,193,206,166,253,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,206,160,111,0,193,142,166,253,193,144,166,253,193,146,166,253,193,148,166,253,193,150,166,253,193,152,166,253,193,154,166,253,193,156,166,253,193,158,166,253,193,160,166,253,193,162,166,253,193,164,166,253,193,166,166,253,193,168,166,253,193,170,166,253,193,172,166,253,193,174,166,253,193,176,166,253,193,178,166,253,193,180,166,253,193,182,166,253,193,184,166,253,193,186,166,253,193,188,166,253,193,98,166,253,193,100,166,253,193,102,166,253,193,104,166,253,193,106,166,253,193,108,166,253,193,208,166,253,193,110,166,253,193,112,166,253,193,114,166,253,193,116,166,253,193,118,166,253,193,120,166,253,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,193,190,166,253,193,40,167,253,193,42,167,253,193,44,167,253,193,46,167,253,193,48,167,253,193,50,167,253,193,52,167,253,193,54,167,253,193,56,167,253,193,58,167,253,193,60,167,253,193,62,167,253,193,64,167,253,193,66,167,253,193,68,167,253,193,70,167,253,193,72,167,253,193,74,167,253,193,56,168,253,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,193,194,166,253,193,196,166,253,193,198,166,253,193,200,166,253,193,202,166,253,193,204,166,253,193,76,167,253,193,78,167,253,193,80,167,253,193,82,167,253,193,84,167,253,193,86,167,253,193,88,167,253,193,90,167,253,193,232,167,253,193,234,167,253,193,236,167,253,193,238,167,253,193,240,167,253,193,90,168,253,193,92,168,253,193,94,168,253,193,96,168,253,193,98,168,253,193,100,168,253,193,102,168,253,193,104,168,253,193,106,168,253,193,8,169,253,193,10,169,253,193,12,169,253,193,14,169,253,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,192,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,224,111,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,193,180,167,253,193,182,167,253,193,184,167,253,193,186,167,253,193,188,167,253,193,38,168,253,193,40,168,253,193,42,168,253,193,208,168,253,193,210,168,253,193,212,168,253,193,214,168,253,193,216,168,253,193,100,169,253,193,102,169,253,193,104,169,253,193,106,169,253,193,108,169,253,193,110,169,253,193,112,169,253,193,114,169,253,193,20,170,253,193,128,170,253,193,130,170,253,193,132,170,253,193,134,170,253,193,64,171,253,193,108,171,253,193,142,171,253,193,170,171,253,193,172,171,253,193,196,171,253,206,0,112,0,206,0,112,0,206,0,112,0,206,0,112,0,193,58,168,253,193,60,168,253,193,62,168,253,193,64,168,253,193,66,168,253,193,68,168,253,193,70,168,253,193,72,168,253,193,74,168,253,193,76,168,253,193,78,168,253,193,80,168,253,193,82,168,253,193,84,168,253,193,86,168,253,193,88,168,253,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,32,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,193,38,169,253,193,40,169,253,193,42,169,253,193,44,169,253,193,46,169,253,193,48,169,253,193,50,169,253,193,52,169,253,193,54,169,253,193,56,169,253,193,58,169,253,193,60,169,253,193,62,169,253,193,64,169,253,193,66,169,253,193,68,169,253,193,70,169,253,193,72,169,253,193,74,169,253,193,76,169,253,193,78,169,253,193,80,169,253,193,82,169,253,193,34,168,253,193,84,169,253,193,86,169,253,193,88,169,253,193,90,169,253,193,92,169,253,193,172,169,253,193,174,169,253,193,176,169,253,193,50,168,253,193,52,168,253,193,54,168,253,193,218,168,253,193,116,169,253,193,118,169,253,193,120,169,253,193,122,169,253,193,124,169,253,193,22,170,253,193,24,170,253,193,26,170,253,193,28,170,253,193,30,170,253,193,136,170,253,193,138,170,253,193,140,170,253,193,142,170,253,193,242,170,253,193,244,170,253,193,246,170,253,193,66,171,253,193,68,171,253,193,110,171,253,193,112,171,253,193,144,171,253,193,146,171,253,193,148,171,253,193,2,172,253,193,4,172,253,193,6,172,253,193,8,172,253,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,206,64,112,0,193,22,169,253,193,24,169,253,193,26,169,253,193,28,169,253,193,30,169,253,193,32,169,253,193,34,169,253,193,192,168,253,193,36,169,253,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,206,96,112,0,193,126,169,253,193,128,169,253,193,130,169,253,193,132,169,253,193,134,169,253,193,136,169,253,193,138,169,253,193,140,169,253,193,142,169,253,193,144,169,253,193,146,169,253,193,148,169,253,193,150,169,253,193,152,169,253,193,154,169,253,193,156,169,253,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,193,16,169,253,193,18,169,253,193,20,169,253,193,158,169,253,193,160,169,253,193,162,169,253,193,164,169,253,193,166,169,253,193,168,169,253,193,170,169,253,193,64,170,253,193,66,170,253,193,68,170,253,193,70,170,253,193,72,170,253,193,74,170,253,193,76,170,253,193,78,170,253,193,172,170,253,193,174,170,253,193,176,170,253,193,178,170,253,193,180,170,253,193,8,171,253,193,10,171,253,193,12,171,253,193,76,171,253,193,78,171,253,193,80,171,253,193,114,171,253,193,158,171,253,193,184,171,253,193,178,169,253,193,180,169,253,193,182,169,253,193,184,169,253,193,186,169,253,193,188,169,253,193,190,169,253,193,192,169,253,193,194,169,253,193,196,169,253,193,198,169,253,193,200,169,253,193,202,169,253,193,204,169,253,193,206,169,253,193,208,169,253,193,210,169,253,193,212,169,253,193,214,169,253,193,216,169,253,193,218,169,253,193,220,169,253,193,222,169,253,193,224,169,253,193,226,169,253,193,228,169,253,193,230,169,253,193,232,169,253,193,234,169,253,193,236,169,253,193,238,169,253,193,240,169,253,193,242,169,253,193,244,169,253,193,246,169,253,193,248,169,253,193,250,169,253,193,252,169,253,193,254,169,253,193,2,170,253,193,4,170,253,193,6,170,253,193,8,170,253,193,80,170,253,193,82,170,253,193,84,170,253,193,86,170,253,193,88,170,253,193,90,170,253,193,92,170,253,193,94,170,253,193,96,170,253,193,98,170,253,193,100,170,253,193,102,170,253,193,104,170,253,193,106,170,253,193,108,170,253,193,110,170,253,193,112,170,253,193,114,170,253,193,116,170,253,193,118,170,253,193,120,170,253,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,206,128,112,0,193,144,170,253,193,146,170,253,193,148,170,253,193,150,170,253,193,152,170,253,193,154,170,253,193,156,170,253,193,158,170,253,193,160,170,253,193,162,170,253,193,164,170,253,193,166,170,253,193,168,170,253,193,170,170,253,193,248,170,253,193,250,170,253,193,252,170,253,193,254,170,253,193,2,171,253,193,4,171,253,193,6,171,253,193,70,171,253,193,72,171,253,193,74,171,253,193,122,170,253,193,124,170,253,193,182,170,253,193,184,170,253,193,186,170,253,193,188,170,253,193,190,170,253,193,192,170,253,193,194,170,253,193,196,170,253,193,198,170,253,193,200,170,253,193,202,170,253,193,204,170,253,193,206,170,253,193,208,170,253,193,210,170,253,193,212,170,253,193,214,170,253,193,216,170,253,193,218,170,253,193,220,170,253,193,222,170,253,193,224,170,253,193,226,170,253,193,228,170,253,193,230,170,253,193,232,170,253,193,234,170,253,193,236,170,253,193,14,171,253,193,16,171,253,193,18,171,253,193,20,171,253,193,22,171,253,193,24,171,253,193,26,171,253,193,28,171,253,193,30,171,253,193,32,171,253,193,34,171,253,193,36,171,253,193,38,171,253,193,40,171,253,193,42,171,253,193,44,171,253,193,46,171,253,193,48,171,253,193,50,171,253,193,52,171,253,193,54,171,253,193,56,171,253,193,58,171,253,193,60,171,253,193,82,171,253,193,84,171,253,193,86,171,253,193,88,171,253,193,90,171,253,193,92,171,253,193,94,171,253,193,96,171,253,193,98,171,253,193,100,171,253,193,102,171,253,193,104,171,253,193,116,171,253,193,118,171,253,193,120,171,253,193,122,171,253,193,124,171,253,193,126,171,253,193,128,171,253,193,130,171,253,193,132,171,253,193,134,171,253,193,136,171,253,193,138,171,253,193,140,171,253,193,160,171,253,193,162,171,253,193,164,171,253,193,166,171,253,193,168,171,253,193,186,171,253,193,188,171,253,193,190,171,253,193,192,171,253,193,204,171,253,193,206,171,253,193,208,171,253,193,210,171,253,193,212,171,253,193,214,171,253,193,216,171,253,193,224,171,253,193,150,171,253,193,152,171,253,193,154,171,253,193,156,171,253,193,174,171,253,193,176,171,253,193,178,171,253,193,180,171,253,193,198,171,253,193,200,171,253,193,220,171,253,193,228,171,253,193,244,171,253,193,246,171,253,193,248,171,253,193,250,171,253,193,252,171,253,193,10,172,253,193,12,172,253,193,14,172,253,193,16,172,253,193,32,172,253,193,34,172,253,193,36,172,253,193,38,172,253,193,40,172,253,193,42,172,253,193,44,172,253,193,46,172,253,193,48,172,253,193,50,172,253,193,52,172,253,193,202,171,253,193,222,171,253,193,240,171,253,193,118,172,253,193,184,172,253,193,62,173,253,193,170,173,253,193,174,173,253,193,216,173,253,193,218,173,253,193,10,174,253,193,12,174,253,193,14,174,253,193,16,174,253,193,18,174,253,193,68,174,253,193,70,174,253,193,72,174,253,193,74,174,253,193,76,174,253,193,78,174,253,193,118,174,253,193,120,174,253,193,122,174,253,193,124,174,253,193,126,174,253,193,128,174,253,193,174,174,253,193,176,174,253,193,242,174,253,193,244,174,253,193,246,174,253,193,218,171,253,193,204,172,253,193,206,172,253,193,44,173,253,193,80,173,253,193,132,173,253,193,182,173,253,193,54,174,253,193,56,174,253,193,106,174,253,193,162,174,253,193,164,174,253,193,166,174,253,193,222,174,253,193,224,174,253,193,226,174,253,193,38,175,253,193,40,175,253,193,76,175,253,193,114,175,253,193,116,175,253,193,176,175,253,193,208,175,253,193,222,175,253,193,26,176,253,193,40,176,253,193,98,176,253,193,118,176,253,193,120,176,253,193,40,177,253,193,42,177,253,193,44,177,253,193,226,171,253,193,230,171,253,193,232,171,253,193,234,171,253,193,236,171,253,193,242,171,253,193,18,172,253,193,56,172,253,193,58,172,253,193,60,172,253,193,62,172,253,193,64,172,253,193,66,172,253,193,68,172,253,193,120,172,253,193,70,172,253,193,122,172,253,193,124,172,253,193,126,172,253,193,128,172,253,193,130,172,253,193,132,172,253,193,134,172,253,193,186,172,253,193,188,172,253,193,190,172,253,193,192,172,253,193,236,172,253,193,238,172,253,193,240,172,253,193,12,173,253,193,14,173,253,193,26,172,253,193,28,172,253,193,30,172,253,193,88,172,253,193,90,172,253,193,92,172,253,193,94,172,253,193,96,172,253,193,98,172,253,193,152,172,253,193,154,172,253,193,156,172,253,193,158,172,253,193,160,172,253,193,162,172,253,193,164,172,253,193,166,172,253,193,168,172,253,193,170,172,253,193,208,172,253,193,210,172,253,193,212,172,253,193,214,172,253,193,216,172,253,193,218,172,253,193,220,172,253,193,252,172,253,193,254,172,253,193,46,173,253,193,48,173,253,193,50,173,253,193,52,173,253,193,54,172,253,193,100,172,253,193,102,172,253,193,104,172,253,193,106,172,253,193,108,172,253,193,110,172,253,193,112,172,253,193,114,172,253,193,116,172,253,193,172,172,253,193,174,172,253,193,176,172,253,193,178,172,253,193,180,172,253,193,182,172,253,193,222,172,253,193,224,172,253,193,226,172,253,193,228,172,253,193,230,172,253,193,232,172,253,193,234,172,253,193,2,173,253,193,4,173,253,193,6,173,253,193,8,173,253,193,10,173,253,193,54,173,253,193,56,173,253,193,58,173,253,193,60,173,253,193,136,172,253,193,138,172,253,193,194,172,253,193,196,172,253,193,198,172,253,193,242,172,253,193,244,172,253,193,246,172,253,193,36,173,253,193,38,173,253,193,72,173,253,193,74,173,253,193,76,173,253,193,100,173,253,193,102,173,253,193,126,173,253,193,138,173,253,193,164,173,253,193,104,174,253,193,34,175,253,193,36,175,253,193,238,175,253,193,38,176,253,193,62,176,253,193,188,176,253,193,222,176,253,193,224,176,253,193,36,177,253,193,132,177,253,193,208,177,253,193,34,178,253,193,36,178,253,193,202,172,253,193,248,172,253,193,250,172,253,193,40,173,253,193,42,173,253,193,78,173,253,193,106,173,253,193,108,173,253,193,110,173,253,193,128,173,253,193,130,173,253,193,142,173,253,193,146,173,253,193,150,173,253,193,154,173,253,193,162,173,253,193,166,173,253,193,158,174,253,193,160,174,253,193,220,175,253,193,240,175,253,193,24,176,253,193,64,176,253,193,66,176,253,193,82,176,253,193,94,176,253,193,96,176,253,193,116,176,253,193,126,176,253,193,134,176,253,193,136,176,253,193,138,176,253,193,16,173,253,193,18,173,253,193,20,173,253,193,22,173,253,193,64,173,253,193,24,173,253,193,26,173,253,193,28,173,253,193,30,173,253,193,32,173,253,193,34,173,253,193,66,173,253,193,68,173,253,193,70,173,253,193,122,173,253,193,124,173,253,193,148,173,253,193,176,173,253,193,178,173,253,193,180,173,253,193,194,173,253,193,196,173,253,193,198,173,253,193,200,173,253,193,202,173,253,193,204,173,253,193,206,173,253,193,208,173,253,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,193,82,173,253,193,84,173,253,193,86,173,253,193,88,173,253,193,90,173,253,193,92,173,253,193,112,173,253,193,114,173,253,193,116,173,253,193,118,173,253,193,134,173,253,193,136,173,253,193,156,173,253,193,108,174,253,193,110,174,253,193,112,174,253,193,228,174,253,193,230,174,253,193,232,174,253,193,140,175,253,193,242,175,253,193,244,175,253,193,246,175,253,193,254,175,253,193,42,176,253,193,44,176,253,193,46,176,253,193,68,176,253,193,70,176,253,193,150,176,253,193,152,176,253,193,140,177,253,193,94,173,253,193,96,173,253,193,98,173,253,193,120,173,253,193,144,173,253,193,152,173,253,193,158,173,253,193,160,173,253,193,168,173,253,193,172,173,253,193,184,173,253,193,186,173,253,193,188,173,253,193,190,173,253,193,192,173,253,193,210,173,253,193,212,173,253,193,214,173,253,193,252,173,253,193,254,173,253,193,2,174,253,193,4,174,253,193,6,174,253,193,8,174,253,193,58,174,253,193,60,174,253,193,62,174,253,193,64,174,253,193,66,174,253,193,114,174,253,193,116,174,253,193,168,174,253,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,206,160,112,0,193,20,174,253,193,22,174,253,193,24,174,253,193,26,174,253,193,28,174,253,193,30,174,253,193,32,174,253,193,34,174,253,193,36,174,253,193,38,174,253,193,40,174,253,193,42,174,253,193,44,174,253,193,46,174,253,193,48,174,253,193,50,174,253,193,52,174,253,193,80,174,253,193,82,174,253,193,84,174,253,193,86,174,253,193,88,174,253,193,90,174,253,193,92,174,253,193,94,174,253,193,96,174,253,193,98,174,253,193,100,174,253,193,102,174,253,193,130,174,253,193,132,174,253,193,134,174,253,193,136,174,253,193,138,174,253,193,140,174,253,193,142,174,253,193,144,174,253,193,146,174,253,193,148,174,253,193,150,174,253,193,152,174,253,193,154,174,253,193,156,174,253,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,193,170,174,253,193,172,174,253,193,234,174,253,193,236,174,253,193,238,174,253,193,240,174,253,193,42,175,253,193,44,175,253,193,46,175,253,193,48,175,253,193,50,175,253,193,52,175,253,193,54,175,253,193,78,175,253,193,80,175,253,193,82,175,253,193,118,175,253,193,142,175,253,193,144,175,253,193,146,175,253,193,148,175,253,193,178,175,253,193,194,175,253,193,210,175,253,193,232,175,253,193,234,175,253,193,2,176,253,193,28,176,253,193,84,176,253,193,128,176,253,193,140,176,253,193,186,176,253,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,206,192,112,0,193,250,174,253,193,252,174,253,193,254,174,253,193,2,175,253,193,4,175,253,193,6,175,253,193,8,175,253,193,10,175,253,193,12,175,253,193,14,175,253,193,16,175,253,193,18,175,253,193,20,175,253,193,22,175,253,193,24,175,253,193,26,175,253,193,28,175,253,193,30,175,253,193,32,175,253,193,248,174,253,193,56,175,253,193,84,175,253,193,120,175,253,193,150,175,253,193,180,175,253,193,196,175,253,193,236,175,253,193,248,175,253,193,4,176,253,193,100,176,253,193,130,176,253,193,160,176,253,193,192,176,253,193,194,176,253,193,242,176,253,193,244,176,253,193,246,176,253,193,248,176,253,193,250,176,253,193,252,176,253,193,66,177,253,193,68,177,253,193,158,177,253,193,160,177,253,193,234,177,253,193,236,177,253,193,238,177,253,193,240,177,253,193,60,178,253,193,62,178,253,193,64,178,253,193,58,175,253,193,60,175,253,193,62,175,253,193,64,175,253,193,66,175,253,193,68,175,253,193,70,175,253,193,72,175,253,193,74,175,253,193,86,175,253,193,88,175,253,193,90,175,253,193,92,175,253,193,94,175,253,193,96,175,253,193,98,175,253,193,100,175,253,193,102,175,253,193,104,175,253,193,106,175,253,193,108,175,253,193,110,175,253,193,112,175,253,193,122,175,253,193,124,175,253,193,126,175,253,193,128,175,253,193,130,175,253,193,132,175,253,193,134,175,253,193,136,175,253,193,138,175,253,193,152,175,253,193,154,175,253,193,156,175,253,193,158,175,253,193,160,175,253,193,162,175,253,193,164,175,253,193,166,175,253,193,168,175,253,193,170,175,253,193,172,175,253,193,174,175,253,193,182,175,253,193,184,175,253,193,186,175,253,193,188,175,253,193,190,175,253,193,192,175,253,193,198,175,253,193,200,175,253,193,202,175,253,193,204,175,253,193,206,175,253,193,212,175,253,193,214,175,253,193,216,175,253,193,218,175,253,193,224,175,253,193,226,175,253,193,228,175,253,193,230,175,253,193,250,175,253,193,252,175,253,193,6,176,253,193,8,176,253,193,10,176,253,193,12,176,253,193,14,176,253,193,16,176,253,193,18,176,253,193,20,176,253,193,22,176,253,193,30,176,253,193,32,176,253,193,34,176,253,193,36,176,253,193,48,176,253,193,50,176,253,193,52,176,253,193,54,176,253,193,56,176,253,193,58,176,253,193,60,176,253,193,72,176,253,193,74,176,253,193,76,176,253,193,78,176,253,193,80,176,253,193,86,176,253,193,88,176,253,193,90,176,253,193,92,176,253,193,102,176,253,193,104,176,253,193,106,176,253,193,108,176,253,193,110,176,253,193,112,176,253,193,114,176,253,193,122,176,253,193,124,176,253,193,132,176,253,193,142,176,253,193,144,176,253,193,146,176,253,193,154,176,253,193,156,176,253,193,162,176,253,193,166,176,253,193,168,176,253,193,172,176,253,193,174,176,253,193,176,176,253,193,184,176,253,193,196,176,253,193,198,176,253,193,200,176,253,193,202,176,253,193,204,176,253,193,210,176,253,193,212,176,253,193,214,176,253,193,216,176,253,193,218,176,253,193,220,176,253,193,254,176,253,193,148,176,253,193,158,176,253,193,164,176,253,193,170,176,253,193,178,176,253,193,180,176,253,193,182,176,253,193,38,177,253,193,210,177,253,193,212,177,253,193,38,178,253,193,134,178,253,193,136,178,253,193,226,178,253,193,228,178,253,193,208,179,253,193,90,180,253,193,130,180,253,193,176,180,253,193,182,180,253,193,202,180,253,193,230,180,253,193,244,180,253,193,18,181,253,193,66,181,253,193,96,181,253,193,108,181,253,193,150,181,253,193,152,181,253,193,178,181,253,193,210,181,253,193,132,182,253,193,190,176,253,193,206,176,253,193,208,176,253,193,226,176,253,193,228,176,253,193,230,176,253,193,232,176,253,193,234,176,253,193,236,176,253,193,238,176,253,193,240,176,253,193,46,177,253,193,48,177,253,193,50,177,253,193,52,177,253,193,54,177,253,193,56,177,253,193,58,177,253,193,60,177,253,193,62,177,253,193,64,177,253,193,142,177,253,193,144,177,253,193,146,177,253,193,148,177,253,193,150,177,253,193,152,177,253,193,154,177,253,193,220,177,253,193,222,177,253,193,224,177,253,193,226,177,253,193,2,177,253,193,4,177,253,193,6,177,253,193,8,177,253,193,10,177,253,193,12,177,253,193,14,177,253,193,16,177,253,193,18,177,253,193,20,177,253,193,22,177,253,193,24,177,253,193,26,177,253,193,28,177,253,193,30,177,253,193,32,177,253,193,34,177,253,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,224,112,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,193,134,177,253,193,136,177,253,193,138,177,253,193,214,177,253,193,216,177,253,193,218,177,253,193,40,178,253,193,42,178,253,193,44,178,253,193,138,178,253,193,140,178,253,193,142,178,253,193,144,178,253,193,230,178,253,193,232,178,253,193,52,179,253,193,174,179,253,193,176,179,253,193,210,179,253,193,32,180,253,193,92,180,253,193,100,180,253,193,138,180,253,193,156,180,253,193,162,180,253,193,174,180,253,193,110,181,253,193,132,181,253,193,18,182,253,193,20,182,253,193,134,182,253,193,136,182,253,193,228,177,253,193,230,177,253,193,232,177,253,193,50,178,253,193,52,178,253,193,54,178,253,193,56,178,253,193,156,177,253,193,58,178,253,193,146,178,253,193,148,178,253,193,150,178,253,193,152,178,253,193,154,178,253,193,156,178,253,193,158,178,253,193,240,178,253,193,242,178,253,193,244,178,253,193,246,178,253,193,56,179,253,193,58,179,253,193,60,179,253,193,62,179,253,193,64,179,253,193,116,179,253,193,118,179,253,193,120,179,253,193,122,179,253,193,66,179,253,193,180,179,253,193,182,179,253,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,206,0,113,0,193,242,177,253,193,244,177,253,193,246,177,253,193,248,177,253,193,250,177,253,193,252,177,253,193,254,177,253,193,2,178,253,193,4,178,253,193,6,178,253,193,8,178,253,193,10,178,253,193,12,178,253,193,14,178,253,193,16,178,253,193,18,178,253,193,20,178,253,193,22,178,253,193,24,178,253,193,26,178,253,193,28,178,253,193,30,178,253,193,32,178,253,193,74,178,253,193,76,178,253,193,46,178,253,193,48,178,253,193,234,178,253,193,236,178,253,193,238,178,253,193,54,179,253,193,114,179,253,193,178,179,253,193,34,180,253,193,128,180,253,193,140,180,253,193,204,180,253,193,206,180,253,193,208,180,253,193,246,180,253,193,50,181,253,193,52,181,253,193,98,181,253,193,112,181,253,193,124,181,253,193,126,181,253,193,160,181,253,193,180,181,253,193,22,182,253,193,24,182,253,193,138,182,253,193,140,182,253,193,196,182,253,193,12,183,253,193,14,183,253,193,56,183,253,193,58,183,253,193,66,178,253,193,68,178,253,193,70,178,253,193,72,178,253,193,160,178,253,193,162,178,253,193,164,178,253,193,166,178,253,193,248,178,253,193,250,178,253,193,252,178,253,193,254,178,253,193,68,179,253,193,70,179,253,193,124,179,253,193,216,179,253,193,218,179,253,193,220,179,253,193,222,179,253,193,246,179,253,193,248,179,253,193,16,180,253,193,52,180,253,193,96,180,253,193,102,180,253,193,184,180,253,193,186,180,253,193,194,180,253,193,212,180,253,193,56,181,253,193,100,181,253,193,222,181,253,193,78,178,253,193,80,178,253,193,82,178,253,193,84,178,253,193,86,178,253,193,88,178,253,193,90,178,253,193,92,178,253,193,94,178,253,193,96,178,253,193,98,178,253,193,100,178,253,193,102,178,253,193,104,178,253,193,106,178,253,193,108,178,253,193,110,178,253,193,112,178,253,193,114,178,253,193,116,178,253,193,118,178,253,193,120,178,253,193,122,178,253,193,124,178,253,193,126,178,253,193,128,178,253,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,193,130,178,253,193,132,178,253,193,224,178,253,193,112,179,253,193,192,180,253,193,200,180,253,193,48,181,253,193,138,181,253,193,176,181,253,193,16,182,253,193,130,182,253,193,190,182,253,193,2,183,253,193,4,183,253,193,168,183,253,193,44,184,253,193,92,184,253,193,230,184,253,193,232,184,253,193,148,185,253,193,150,185,253,193,152,185,253,193,154,185,253,193,156,185,253,193,78,186,253,193,80,186,253,193,82,186,253,193,84,186,253,193,86,186,253,193,88,186,253,193,90,186,253,193,92,186,253,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,32,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,206,64,113,0,193,72,179,253,193,74,179,253,193,76,179,253,193,78,179,253,193,80,179,253,193,82,179,253,193,84,179,253,193,86,179,253,193,88,179,253,193,90,179,253,193,92,179,253,193,94,179,253,193,96,179,253,193,98,179,253,193,100,179,253,193,102,179,253,193,104,179,253,193,106,179,253,193,108,179,253,193,110,179,253,193,126,179,253,193,128,179,253,193,130,179,253,193,132,179,253,193,134,179,253,193,136,179,253,193,138,179,253,193,140,179,253,193,142,179,253,193,144,179,253,193,146,179,253,193,148,179,253,193,150,179,253,193,152,179,253,193,154,179,253,193,156,179,253,193,158,179,253,193,160,179,253,193,162,179,253,193,164,179,253,193,166,179,253,193,168,179,253,193,170,179,253,193,172,179,253,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,193,184,179,253,193,212,179,253,193,214,179,253,193,244,179,253,193,36,180,253,193,58,180,253,193,66,180,253,193,74,180,253,193,78,180,253,193,84,180,253,193,94,180,253,193,110,180,253,193,118,180,253,193,120,180,253,193,132,180,253,193,136,180,253,193,164,180,253,193,170,180,253,193,172,180,253,193,210,180,253,193,232,180,253,193,248,180,253,193,250,180,253,193,8,181,253,193,20,181,253,193,32,181,253,193,34,181,253,193,54,181,253,193,166,181,253,193,182,181,253,193,212,181,253,193,214,181,253,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,206,96,113,0,193,224,179,253,193,226,179,253,193,228,179,253,193,230,179,253,193,232,179,253,193,234,179,253,193,236,179,253,193,238,179,253,193,240,179,253,193,242,179,253,193,250,179,253,193,252,179,253,193,254,179,253,193,2,180,253,193,4,180,253,193,6,180,253,193,8,180,253,193,10,180,253,193,12,180,253,193,14,180,253,193,18,180,253,193,20,180,253,193,22,180,253,193,24,180,253,193,26,180,253,193,28,180,253,193,30,180,253,193,38,180,253,193,40,180,253,193,42,180,253,193,44,180,253,193,46,180,253,193,48,180,253,193,50,180,253,193,54,180,253,193,56,180,253,193,60,180,253,193,62,180,253,193,64,180,253,193,68,180,253,193,70,180,253,193,72,180,253,193,76,180,253,193,80,180,253,193,82,180,253,193,86,180,253,193,88,180,253,193,98,180,253,193,104,180,253,193,106,180,253,193,108,180,253,193,112,180,253,193,114,180,253,193,116,180,253,193,122,180,253,193,124,180,253,193,126,180,253,193,134,180,253,193,142,180,253,193,144,180,253,193,146,180,253,193,148,180,253,193,150,180,253,193,152,180,253,193,154,180,253,193,158,180,253,193,160,180,253,193,166,180,253,193,168,180,253,193,178,180,253,193,180,180,253,193,188,180,253,193,190,180,253,193,196,180,253,193,198,180,253,193,214,180,253,193,216,180,253,193,218,180,253,193,220,180,253,193,222,180,253,193,224,180,253,193,226,180,253,193,228,180,253,193,234,180,253,193,236,180,253,193,238,180,253,193,240,180,253,193,242,180,253,193,252,180,253,193,254,180,253,193,2,181,253,193,4,181,253,193,6,181,253,193,10,181,253,193,12,181,253,193,14,181,253,193,16,181,253,193,22,181,253,193,24,181,253,193,26,181,253,193,28,181,253,193,30,181,253,193,36,181,253,193,38,181,253,193,40,181,253,193,42,181,253,193,44,181,253,193,46,181,253,193,58,181,253,193,60,181,253,193,62,181,253,193,64,181,253,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,206,128,113,0,193,104,181,253,193,106,181,253,193,114,181,253,193,116,181,253,193,118,181,253,193,120,181,253,193,122,181,253,193,128,181,253,193,130,181,253,193,134,181,253,193,136,181,253,193,140,181,253,193,142,181,253,193,144,181,253,193,146,181,253,193,148,181,253,193,154,181,253,193,156,181,253,193,158,181,253,193,162,181,253,193,164,181,253,193,168,181,253,193,170,181,253,193,172,181,253,193,174,181,253,193,184,181,253,193,186,181,253,193,188,181,253,193,190,181,253,193,192,181,253,193,194,181,253,193,196,181,253,193,198,181,253,193,200,181,253,193,202,181,253,193,204,181,253,193,206,181,253,193,208,181,253,193,224,181,253,193,226,181,253,193,228,181,253,193,230,181,253,193,232,181,253,193,234,181,253,193,236,181,253,193,238,181,253,193,240,181,253,193,242,181,253,193,244,181,253,193,246,181,253,193,248,181,253,193,250,181,253,193,252,181,253,193,254,181,253,193,2,182,253,193,4,182,253,193,6,182,253,193,8,182,253,193,10,182,253,193,12,182,253,193,216,181,253,193,218,181,253,193,220,181,253,193,26,182,253,193,28,182,253,193,30,182,253,193,32,182,253,193,88,182,253,193,142,182,253,193,144,182,253,193,198,182,253,193,200,182,253,193,202,182,253,193,204,182,253,193,206,182,253,193,208,182,253,193,60,183,253,193,88,183,253,193,90,183,253,193,92,183,253,193,94,183,253,193,122,183,253,193,124,183,253,193,180,183,253,193,182,183,253,193,184,183,253,193,2,184,253,193,18,184,253,193,20,184,253,193,22,184,253,193,24,184,253,193,52,184,253,193,14,182,253,193,38,182,253,193,40,182,253,193,42,182,253,193,44,182,253,193,46,182,253,193,48,182,253,193,50,182,253,193,52,182,253,193,54,182,253,193,56,182,253,193,58,182,253,193,60,182,253,193,62,182,253,193,64,182,253,193,66,182,253,193,68,182,253,193,70,182,253,193,72,182,253,193,74,182,253,193,76,182,253,193,78,182,253,193,80,182,253,193,82,182,253,193,84,182,253,193,86,182,253,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,193,34,182,253,193,36,182,253,193,90,182,253,193,92,182,253,193,210,182,253,193,212,182,253,193,214,182,253,193,216,182,253,193,16,183,253,193,18,183,253,193,62,183,253,193,126,183,253,193,128,183,253,193,130,183,253,193,170,183,253,193,186,183,253,193,188,183,253,193,252,183,253,193,16,184,253,193,26,184,253,193,60,184,253,193,62,184,253,193,64,184,253,193,148,184,253,193,150,184,253,193,152,184,253,193,154,184,253,193,156,184,253,193,158,184,253,193,160,184,253,193,162,184,253,193,60,185,253,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,206,160,113,0,193,146,182,253,193,148,182,253,193,150,182,253,193,152,182,253,193,154,182,253,193,156,182,253,193,158,182,253,193,160,182,253,193,162,182,253,193,164,182,253,193,166,182,253,193,168,182,253,193,170,182,253,193,172,182,253,193,174,182,253,193,176,182,253,193,178,182,253,193,180,182,253,193,182,182,253,193,184,182,253,193,186,182,253,193,188,182,253,193,218,182,253,193,220,182,253,193,222,182,253,193,224,182,253,193,226,182,253,193,228,182,253,193,230,182,253,193,232,182,253,193,234,182,253,193,236,182,253,193,238,182,253,193,240,182,253,193,242,182,253,193,244,182,253,193,246,182,253,193,248,182,253,193,250,182,253,193,252,182,253,193,254,182,253,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,193,192,182,253,193,46,184,253,193,48,184,253,193,94,184,253,193,96,184,253,193,234,184,253,193,236,184,253,193,158,185,253,193,160,185,253,193,162,185,253,193,164,185,253,193,166,185,253,193,168,185,253,193,94,186,253,193,96,186,253,193,98,186,253,193,100,186,253,193,102,186,253,193,36,187,253,193,38,187,253,193,40,187,253,193,42,187,253,193,44,187,253,193,70,188,253,193,72,188,253,193,74,188,253,193,76,188,253,193,78,188,253,193,36,189,253,193,38,189,253,193,40,189,253,193,42,189,253,193,194,182,253,193,6,183,253,193,8,183,253,193,10,183,253,193,54,183,253,193,84,183,253,193,86,183,253,193,120,183,253,193,178,183,253,193,224,183,253,193,234,183,253,193,246,183,253,193,8,184,253,193,10,184,253,193,12,184,253,193,14,184,253,193,98,184,253,193,238,184,253,193,240,184,253,193,170,185,253,193,172,185,253,193,104,186,253,193,106,186,253,193,108,186,253,193,110,186,253,193,46,187,253,193,48,187,253,193,50,187,253,193,52,187,253,193,54,187,253,193,80,188,253,193,82,188,253,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,206,192,113,0,193,64,183,253,193,66,183,253,193,68,183,253,193,70,183,253,193,72,183,253,193,74,183,253,193,76,183,253,193,78,183,253,193,80,183,253,193,82,183,253,193,96,183,253,193,98,183,253,193,100,183,253,193,102,183,253,193,104,183,253,193,106,183,253,193,108,183,253,193,110,183,253,193,112,183,253,193,114,183,253,193,116,183,253,193,118,183,253,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,206,224,113,0,193,172,183,253,193,174,183,253,193,176,183,253,193,190,183,253,193,192,183,253,193,194,183,253,193,196,183,253,193,198,183,253,193,200,183,253,193,202,183,253,193,204,183,253,193,206,183,253,193,212,183,253,193,214,183,253,193,216,183,253,193,218,183,253,193,220,183,253,193,222,183,253,193,208,183,253,193,210,183,253,193,254,183,253,193,50,184,253,193,100,184,253,193,242,184,253,193,244,184,253,193,246,184,253,193,248,184,253,193,174,185,253,193,176,185,253,193,178,185,253,193,112,186,253,193,56,187,253,193,58,187,253,193,60,187,253,193,62,187,253,193,64,187,253,193,66,187,253,193,84,188,253,193,86,188,253,193,56,189,253,193,58,189,253,193,60,189,253,193,62,189,253,193,64,189,253,193,22,190,253,193,24,190,253,193,26,190,253,193,220,190,253,193,222,190,253,193,136,191,253,193,226,183,253,193,228,183,253,193,230,183,253,193,232,183,253,193,236,183,253,193,238,183,253,193,240,183,253,193,242,183,253,193,244,183,253,193,248,183,253,193,250,183,253,193,6,184,253,193,28,184,253,193,30,184,253,193,32,184,253,193,34,184,253,193,36,184,253,193,38,184,253,193,40,184,253,193,42,184,253,193,66,184,253,193,68,184,253,193,70,184,253,193,72,184,253,193,74,184,253,193,76,184,253,193,78,184,253,193,80,184,253,193,82,184,253,193,84,184,253,193,86,184,253,193,88,184,253,193,54,184,253,193,56,184,253,193,58,184,253,193,102,184,253,193,104,184,253,193,106,184,253,193,108,184,253,193,110,184,253,193,112,184,253,193,114,184,253,193,116,184,253,193,118,184,253,193,120,184,253,193,122,184,253,193,124,184,253,193,126,184,253,193,128,184,253,193,130,184,253,193,132,184,253,193,134,184,253,193,136,184,253,193,138,184,253,193,140,184,253,193,142,184,253,193,144,184,253,193,146,184,253,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,193,144,185,253,193,246,185,253,193,248,185,253,193,250,185,253,193,252,185,253,193,254,185,253,193,2,186,253,193,4,186,253,193,6,186,253,193,8,186,253,193,10,186,253,193,12,186,253,193,14,186,253,193,16,186,253,193,18,186,253,193,20,186,253,193,22,186,253,193,24,186,253,193,26,186,253,193,28,186,253,193,30,186,253,193,32,186,253,193,34,186,253,193,90,184,253,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,193,164,184,253,193,166,184,253,193,168,184,253,193,170,184,253,193,172,184,253,193,174,184,253,193,176,184,253,193,178,184,253,193,180,184,253,193,182,184,253,193,184,184,253,193,186,184,253,193,188,184,253,193,190,184,253,193,192,184,253,193,194,184,253,193,196,184,253,193,198,184,253,193,200,184,253,193,202,184,253,193,204,184,253,193,206,184,253,193,208,184,253,193,210,184,253,193,212,184,253,193,214,184,253,193,216,184,253,193,218,184,253,193,220,184,253,193,222,184,253,193,224,184,253,193,226,184,253,193,228,184,253,193,82,185,253,193,84,185,253,193,86,185,253,193,88,185,253,193,90,185,253,193,92,185,253,193,94,185,253,193,96,185,253,193,98,185,253,193,100,185,253,193,102,185,253,193,104,185,253,193,106,185,253,193,108,185,253,193,110,185,253,193,112,185,253,193,114,185,253,193,116,185,253,193,118,185,253,193,120,185,253,193,122,185,253,193,124,185,253,193,126,185,253,193,128,185,253,193,130,185,253,193,132,185,253,193,134,185,253,193,136,185,253,193,138,185,253,193,140,185,253,193,142,185,253,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,206,0,114,0,193,180,185,253,193,182,185,253,193,184,185,253,193,186,185,253,193,188,185,253,193,190,185,253,193,192,185,253,193,194,185,253,193,196,185,253,193,198,185,253,193,58,185,253,193,200,185,253,193,202,185,253,193,204,185,253,193,206,185,253,193,208,185,253,193,210,185,253,193,212,185,253,193,214,185,253,193,216,185,253,193,218,185,253,193,220,185,253,193,222,185,253,193,224,185,253,193,226,185,253,193,228,185,253,193,230,185,253,193,232,185,253,193,114,186,253,193,116,186,253,193,118,186,253,193,120,186,253,193,122,186,253,193,234,185,253,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,193,62,185,253,193,64,185,253,193,66,185,253,193,68,185,253,193,70,185,253,193,72,185,253,193,74,185,253,193,76,185,253,193,78,185,253,193,80,185,253,193,236,185,253,193,238,185,253,193,240,185,253,193,242,185,253,193,244,185,253,193,176,186,253,193,178,186,253,193,180,186,253,193,182,186,253,193,184,186,253,193,186,186,253,193,188,186,253,193,190,186,253,193,192,186,253,193,194,186,253,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,193,146,185,253,193,76,194,253,193,78,194,253,193,80,194,253,193,82,194,253,193,150,194,253,193,152,194,253,193,154,194,253,193,156,194,253,193,26,187,253,193,250,194,253,193,252,194,253,193,114,195,253,193,254,191,253,193,196,195,253,193,224,195,253,193,226,195,253,193,228,195,253,193,254,195,253,193,2,196,253,193,4,196,253,193,6,196,253,193,8,196,253,193,10,196,253,193,12,196,253,193,14,196,253,193,16,196,253,193,18,196,253,193,20,196,253,193,52,196,253,193,54,196,253,193,56,196,253,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,32,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,64,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,206,128,114,0,193,88,188,253,193,90,188,253,193,92,188,253,193,94,188,253,193,96,188,253,193,136,187,253,193,98,188,253,193,174,186,253,193,100,188,253,193,102,188,253,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,96,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,193,28,187,253,193,30,187,253,193,32,187,253,193,34,187,253,193,62,188,253,193,64,188,253,193,66,188,253,193,68,188,253,193,30,189,253,193,32,189,253,193,34,189,253,193,246,189,253,193,248,189,253,193,250,189,253,193,252,189,253,193,254,189,253,193,188,190,253,193,190,190,253,193,192,190,253,193,194,190,253,193,196,190,253,193,198,190,253,193,200,190,253,193,106,191,253,193,108,191,253,193,110,191,253,193,112,191,253,193,114,191,253,193,116,191,253,193,2,192,253,193,4,192,253,193,6,192,253,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,206,160,114,0,193,162,188,253,193,164,188,253,193,166,188,253,193,168,188,253,193,170,188,253,193,172,188,253,193,174,188,253,193,176,188,253,193,178,188,253,193,180,188,253,193,108,189,253,193,110,189,253,193,112,189,253,193,114,189,253,193,116,189,253,193,118,189,253,193,120,189,253,193,122,189,253,193,124,189,253,193,80,190,253,193,82,190,253,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,206,192,114,0,193,182,188,253,193,184,188,253,193,104,188,253,193,106,188,253,193,108,188,253,193,110,188,253,193,112,188,253,193,114,188,253,193,116,188,253,193,118,188,253,193,120,188,253,193,122,188,253,193,124,188,253,193,126,188,253,193,128,188,253,193,130,188,253,193,132,188,253,193,134,188,253,193,136,188,253,193,138,188,253,193,140,188,253,193,142,188,253,193,144,188,253,193,146,188,253,193,148,188,253,193,150,188,253,193,152,188,253,193,154,188,253,193,156,188,253,193,158,188,253,193,66,189,253,193,68,189,253,193,70,189,253,193,72,189,253,193,160,188,253,193,74,189,253,193,76,189,253,193,78,189,253,193,80,189,253,193,82,189,253,193,84,189,253,193,86,189,253,193,88,189,253,193,90,189,253,193,92,189,253,193,94,189,253,193,96,189,253,193,98,189,253,193,100,189,253,193,102,189,253,193,104,189,253,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,193,186,188,253,193,188,188,253,193,190,188,253,193,192,188,253,193,194,188,253,193,196,188,253,193,198,188,253,193,200,188,253,193,202,188,253,193,204,188,253,193,206,188,253,193,208,188,253,193,210,188,253,193,212,188,253,193,214,188,253,193,216,188,253,193,218,188,253,193,220,188,253,193,222,188,253,193,224,188,253,193,226,188,253,193,228,188,253,193,230,188,253,193,232,188,253,193,234,188,253,193,236,188,253,193,238,188,253,193,240,188,253,193,242,188,253,193,244,188,253,193,246,188,253,193,248,188,253,193,250,188,253,193,252,188,253,193,254,188,253,193,2,189,253,193,4,189,253,193,6,189,253,193,8,189,253,193,10,189,253,193,12,189,253,193,14,189,253,193,16,189,253,193,18,189,253,193,20,189,253,193,22,189,253,193,24,189,253,193,26,189,253,193,28,189,253,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,193,44,189,253,193,46,189,253,193,48,189,253,193,50,189,253,193,52,189,253,193,54,189,253,193,12,190,253,193,14,190,253,193,16,190,253,193,18,190,253,193,20,190,253,193,214,190,253,193,216,190,253,193,218,190,253,193,126,191,253,193,128,191,253,193,130,191,253,193,132,191,253,193,134,191,253,193,22,192,253,193,24,192,253,193,102,192,253,193,160,192,253,193,210,192,253,193,212,192,253,193,246,192,253,193,248,192,253,193,130,193,253,193,28,194,253,193,30,194,253,193,100,194,253,193,184,194,253,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,224,114,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,193,4,190,253,193,6,190,253,193,8,190,253,193,10,190,253,193,202,190,253,193,204,190,253,193,206,190,253,193,208,190,253,193,210,190,253,193,212,190,253,193,118,191,253,193,120,191,253,193,122,191,253,193,124,191,253,193,14,192,253,193,16,192,253,193,18,192,253,193,20,192,253,193,94,192,253,193,96,192,253,193,98,192,253,193,100,192,253,193,158,192,253,193,204,192,253,193,206,192,253,193,208,192,253,193,244,192,253,193,20,193,253,193,22,193,253,193,34,193,253,193,36,193,253,193,54,193,253,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,206,0,115,0,193,224,190,253,193,226,190,253,193,228,190,253,193,230,190,253,193,232,190,253,193,234,190,253,193,236,190,253,193,238,190,253,193,240,190,253,193,242,190,253,193,244,190,253,193,246,190,253,193,248,190,253,193,250,190,253,193,252,190,253,193,254,190,253,193,2,191,253,193,4,191,253,193,6,191,253,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,193,76,190,253,193,160,203,253,193,162,203,253,193,164,203,253,193,166,203,253,193,168,203,253,193,170,203,253,193,172,203,253,193,174,203,253,193,176,203,253,193,178,203,253,193,180,203,253,193,182,203,253,193,184,203,253,193,186,203,253,193,188,203,253,193,190,203,253,193,192,203,253,193,194,203,253,193,196,203,253,193,198,203,253,193,200,203,253,193,202,203,253,193,204,203,253,193,206,203,253,193,128,204,253,193,208,203,253,193,210,203,253,193,212,203,253,193,130,204,253,193,132,204,253,193,134,204,253,193,84,190,253,193,86,190,253,193,88,190,253,193,90,190,253,193,92,190,253,193,94,190,253,193,96,190,253,193,98,190,253,193,100,190,253,193,8,191,253,193,10,191,253,193,12,191,253,193,14,191,253,193,16,191,253,193,18,191,253,193,20,191,253,193,172,191,253,193,174,191,253,193,176,191,253,193,178,191,253,193,180,191,253,193,182,191,253,193,40,192,253,193,42,192,253,193,44,192,253,193,118,192,253,193,174,192,253,193,176,192,253,193,62,193,253,193,104,193,253,193,180,193,253,193,182,193,253,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,206,32,115,0,193,22,191,253,193,24,191,253,193,26,191,253,193,28,191,253,193,30,191,253,193,32,191,253,193,34,191,253,193,36,191,253,193,38,191,253,193,40,191,253,193,42,191,253,193,44,191,253,193,46,191,253,193,48,191,253,193,50,191,253,193,52,191,253,193,54,191,253,193,56,191,253,193,58,191,253,193,60,191,253,193,62,191,253,193,64,191,253,193,66,191,253,193,68,191,253,193,70,191,253,193,72,191,253,193,74,191,253,193,76,191,253,193,78,191,253,193,80,191,253,193,82,191,253,193,84,191,253,193,86,191,253,193,88,191,253,193,90,191,253,193,92,191,253,193,94,191,253,193,96,191,253,193,98,191,253,193,100,191,253,193,102,191,253,193,104,191,253,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,193,138,191,253,193,140,191,253,193,26,192,253,193,104,192,253,193,162,192,253,193,164,192,253,193,166,192,253,193,168,192,253,193,214,192,253,193,250,192,253,193,38,193,253,193,58,193,253,193,60,193,253,193,66,193,253,193,74,193,253,193,90,193,253,193,132,193,253,193,134,193,253,193,136,193,253,193,138,193,253,193,140,193,253,193,142,193,253,193,144,193,253,193,146,193,253,193,148,193,253,193,150,193,253,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,206,64,115,0,193,28,192,253,193,166,191,253,193,168,191,253,193,170,191,253,193,30,192,253,193,32,192,253,193,34,192,253,193,36,192,253,193,38,192,253,193,106,192,253,193,108,192,253,193,110,192,253,193,112,192,253,193,114,192,253,193,116,192,253,193,170,192,253,193,172,192,253,193,252,192,253,193,24,193,253,193,56,193,253,193,64,193,253,193,68,193,253,193,76,193,253,193,92,193,253,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,206,96,115,0,193,46,192,253,193,48,192,253,193,50,192,253,193,52,192,253,193,54,192,253,193,56,192,253,193,58,192,253,193,60,192,253,193,62,192,253,193,64,192,253,193,66,192,253,193,68,192,253,193,70,192,253,193,72,192,253,193,74,192,253,193,76,192,253,193,78,192,253,193,80,192,253,193,82,192,253,193,84,192,253,193,86,192,253,193,88,192,253,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,193,8,192,253,193,10,192,253,193,90,192,253,193,92,192,253,193,156,192,253,193,242,192,253,193,32,193,253,193,52,193,253,193,78,193,253,193,80,193,253,193,82,193,253,193,112,193,253,193,114,193,253,193,116,193,253,193,184,193,253,193,186,193,253,193,188,193,253,193,190,193,253,193,192,193,253,193,10,194,253,193,12,194,253,193,14,194,253,193,16,194,253,193,18,194,253,193,20,194,253,193,84,194,253,193,86,194,253,193,88,194,253,193,158,194,253,193,160,194,253,193,162,194,253,193,164,194,253,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,206,128,115,0,193,178,192,253,193,180,192,253,193,182,192,253,193,184,192,253,193,186,192,253,193,188,192,253,193,190,192,253,193,192,192,253,193,194,192,253,193,196,192,253,193,198,192,253,193,200,192,253,193,202,192,253,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,206,160,115,0,193,2,193,253,193,4,193,253,193,6,193,253,193,8,193,253,193,10,193,253,193,12,193,253,193,14,193,253,193,16,193,253,193,18,193,253,193,26,193,253,193,28,193,253,193,30,193,253,193,40,193,253,193,42,193,253,193,44,193,253,193,46,193,253,193,48,193,253,193,50,193,253,193,106,193,253,193,108,193,253,193,110,193,253,193,2,194,253,193,4,194,253,193,6,194,253,193,8,194,253,193,70,193,253,193,72,193,253,193,84,193,253,193,86,193,253,193,88,193,253,193,120,193,253,193,122,193,253,193,124,193,253,193,126,193,253,193,128,193,253,193,196,193,253,193,198,193,253,193,200,193,253,193,202,193,253,193,22,194,253,193,24,194,253,193,26,194,253,193,90,194,253,193,92,194,253,193,94,194,253,193,96,194,253,193,98,194,253,193,170,194,253,193,172,194,253,193,10,195,253,193,174,194,253,193,176,194,253,193,178,194,253,193,180,194,253,193,182,194,253,193,12,195,253,193,14,195,253,193,94,193,253,193,96,193,253,193,98,193,253,193,100,193,253,193,152,193,253,193,154,193,253,193,156,193,253,193,158,193,253,193,160,193,253,193,162,193,253,193,164,193,253,193,166,193,253,193,168,193,253,193,170,193,253,193,172,193,253,193,174,193,253,193,176,193,253,193,226,193,253,193,228,193,253,193,230,193,253,193,232,193,253,193,234,193,253,193,236,193,253,193,238,193,253,193,240,193,253,193,242,193,253,193,244,193,253,193,246,193,253,193,248,193,253,193,250,193,253,193,252,193,253,193,254,193,253,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,206,192,115,0,193,32,194,253,193,34,194,253,193,36,194,253,193,38,194,253,193,40,194,253,193,42,194,253,193,44,194,253,193,102,194,253,193,104,194,253,193,106,194,253,193,108,194,253,193,110,194,253,193,112,194,253,193,114,194,253,193,116,194,253,193,118,194,253,193,188,194,253,193,190,194,253,193,192,194,253,193,194,194,253,193,196,194,253,193,198,194,253,193,200,194,253,193,202,194,253,193,204,194,253,193,206,194,253,193,208,194,253,193,46,194,253,193,48,194,253,193,50,194,253,193,52,194,253,193,54,194,253,193,56,194,253,193,58,194,253,193,60,194,253,193,62,194,253,193,64,194,253,193,66,194,253,193,68,194,253,193,70,194,253,193,120,194,253,193,122,194,253,193,124,194,253,193,126,194,253,193,128,194,253,193,130,194,253,193,132,194,253,193,134,194,253,193,136,194,253,193,138,194,253,193,140,194,253,193,142,194,253,193,144,194,253,193,146,194,253,193,148,194,253,193,214,194,253,193,216,194,253,193,48,195,253,193,218,194,253,193,166,194,253,193,168,194,253,193,254,194,253,193,2,195,253,193,4,195,253,193,6,195,253,193,70,195,253,193,116,195,253,193,118,195,253,193,144,195,253,193,146,195,253,193,178,195,253,193,188,195,253,193,198,195,253,193,230,195,253,193,12,197,253,193,14,197,253,193,16,197,253,193,18,197,253,193,250,197,253,193,252,197,253,193,254,197,253,193,2,198,253,193,4,198,253,193,232,198,253,193,234,198,253,193,236,198,253,193,238,198,253,193,174,199,253,193,176,199,253,193,178,199,253,193,180,199,253,193,186,194,253,193,76,195,253,193,78,195,253,193,128,195,253,193,202,195,253,193,24,196,253,193,96,196,253,193,98,196,253,193,100,196,253,193,102,196,253,193,104,196,253,193,30,197,253,193,32,197,253,193,34,197,253,193,36,197,253,193,38,197,253,193,24,198,253,193,26,198,253,193,28,198,253,193,252,198,253,193,254,198,253,193,2,199,253,193,4,199,253,193,6,199,253,193,8,199,253,193,200,199,253,193,202,199,253,193,204,199,253,206,64,117,0,206,64,117,0,206,64,117,0,206,64,117,0,193,210,194,253,193,212,194,253,193,34,195,253,193,36,195,253,193,38,195,253,193,40,195,253,193,42,195,253,193,44,195,253,193,46,195,253,193,80,195,253,193,82,195,253,193,84,195,253,193,86,195,253,193,88,195,253,193,90,195,253,193,130,195,253,193,132,195,253,193,134,195,253,193,162,195,253,193,164,195,253,193,166,195,253,193,168,195,253,193,184,195,253,193,192,195,253,193,194,195,253,193,204,195,253,193,208,195,253,193,210,195,253,193,212,195,253,193,26,196,253,193,40,197,253,193,42,197,253,193,220,194,253,193,222,194,253,193,224,194,253,193,226,194,253,193,228,194,253,193,230,194,253,193,232,194,253,193,234,194,253,193,236,194,253,193,238,194,253,193,240,194,253,193,242,194,253,193,50,195,253,193,52,195,253,193,54,195,253,193,56,195,253,193,58,195,253,193,60,195,253,193,62,195,253,193,92,195,253,193,94,195,253,193,96,195,253,193,98,195,253,193,100,195,253,193,102,195,253,193,104,195,253,193,106,195,253,193,108,195,253,193,136,195,253,193,138,195,253,193,140,195,253,193,142,195,253,193,246,194,253,193,248,194,253,193,64,195,253,193,66,195,253,193,68,195,253,193,252,195,253,193,40,196,253,193,42,196,253,193,44,196,253,193,46,196,253,193,48,196,253,193,50,196,253,193,152,196,253,193,154,196,253,193,156,196,253,193,158,196,253,193,160,196,253,193,162,196,253,193,164,196,253,193,166,196,253,193,168,196,253,193,170,196,253,193,172,196,253,193,174,196,253,193,176,196,253,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,193,16,195,253,193,18,195,253,193,20,195,253,193,22,195,253,193,24,195,253,193,26,195,253,193,28,195,253,193,30,195,253,193,32,195,253,193,72,195,253,193,74,195,253,193,122,195,253,193,124,195,253,193,126,195,253,193,148,195,253,193,150,195,253,193,152,195,253,193,154,195,253,193,156,195,253,193,158,195,253,193,160,195,253,193,180,195,253,193,182,195,253,193,190,195,253,193,200,195,253,193,206,195,253,193,214,195,253,193,216,195,253,193,22,196,253,193,90,196,253,193,92,196,253,193,94,196,253,193,170,195,253,193,172,195,253,193,174,195,253,193,176,195,253,193,186,195,253,193,218,195,253,193,222,195,253,193,232,195,253,193,234,195,253,193,236,195,253,193,238,195,253,193,240,195,253,193,242,195,253,193,244,195,253,193,246,195,253,193,248,195,253,193,250,195,253,193,28,196,253,193,30,196,253,193,32,196,253,193,34,196,253,193,36,196,253,193,38,196,253,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,193,58,196,253,193,60,196,253,193,62,196,253,193,64,196,253,193,66,196,253,193,68,196,253,193,70,196,253,193,72,196,253,193,74,196,253,193,76,196,253,193,78,196,253,193,80,196,253,193,82,196,253,193,84,196,253,193,86,196,253,193,88,196,253,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,206,224,115,0,193,44,197,253,193,144,196,253,193,146,196,253,193,148,196,253,193,150,196,253,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,0,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,193,20,197,253,193,22,197,253,193,24,197,253,193,26,197,253,193,28,197,253,193,8,198,253,193,10,198,253,193,12,198,253,193,14,198,253,193,16,198,253,193,18,198,253,193,20,198,253,193,22,198,253,193,240,198,253,193,242,198,253,193,244,198,253,193,246,198,253,193,248,198,253,193,250,198,253,193,184,199,253,193,186,199,253,193,118,207,253,193,188,199,253,193,190,199,253,193,192,199,253,193,194,199,253,193,196,199,253,193,198,199,253,193,208,200,253,193,210,200,253,193,212,200,253,193,214,200,253,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,32,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,206,64,116,0,193,100,198,253,193,102,198,253,193,104,198,253,193,106,198,253,193,108,198,253,193,110,198,253,193,112,198,253,193,114,198,253,193,116,198,253,193,118,198,253,193,68,199,253,193,70,199,253,193,72,199,253,193,74,199,253,193,76,199,253,193,78,199,253,193,80,199,253,193,82,199,253,193,48,200,253,193,50,200,253,193,52,200,253,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,96,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,193,30,198,253,193,32,198,253,193,34,198,253,193,36,198,253,193,38,198,253,193,40,198,253,193,10,199,253,193,12,199,253,193,206,199,253,193,208,199,253,193,210,199,253,193,212,199,253,193,214,199,253,193,236,200,253,193,238,200,253,193,240,200,253,193,242,200,253,193,228,201,253,193,230,201,253,193,232,201,253,193,200,202,253,193,202,202,253,193,204,202,253,193,206,202,253,193,208,202,253,193,158,203,253,193,120,204,253,193,122,204,253,193,124,204,253,193,126,204,253,193,252,204,253,193,254,204,253,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,128,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,192,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,160,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,224,116,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,193,182,199,253,193,192,200,253,193,194,200,253,193,196,200,253,193,198,200,253,193,200,200,253,193,202,200,253,193,204,200,253,193,206,200,253,193,202,201,253,193,204,201,253,193,206,201,253,193,164,202,253,193,166,202,253,193,168,202,253,193,170,202,253,193,136,203,253,193,102,204,253,193,104,204,253,193,106,204,253,193,108,204,253,193,110,204,253,193,240,204,253,193,82,205,253,193,142,205,253,193,32,206,253,193,122,206,253,193,124,206,253,193,126,206,253,193,128,206,253,193,130,206,253,193,188,206,253,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,206,0,117,0,193,244,200,253,193,46,200,253,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,193,54,200,253,193,56,200,253,193,58,200,253,193,60,200,253,193,62,200,253,193,64,200,253,193,44,201,253,193,46,201,253,193,48,201,253,193,50,201,253,193,52,201,253,193,54,201,253,193,56,201,253,193,58,201,253,193,60,201,253,193,62,201,253,193,64,201,253,193,50,202,253,193,52,202,253,193,54,202,253,193,56,202,253,193,58,202,253,193,60,202,253,193,244,202,253,193,246,202,253,193,248,202,253,193,250,202,253,193,252,202,253,193,254,202,253,193,2,203,253,193,214,203,253,193,216,203,253,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,32,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,193,216,200,253,193,218,200,253,193,208,201,253,193,210,201,253,193,212,201,253,193,214,201,253,193,216,201,253,193,218,201,253,193,172,202,253,193,174,202,253,193,176,202,253,193,178,202,253,193,180,202,253,193,182,202,253,193,140,203,253,193,142,203,253,193,144,203,253,193,112,204,253,193,114,204,253,193,116,204,253,193,242,204,253,193,244,204,253,193,246,204,253,193,84,205,253,193,144,205,253,193,202,205,253,193,46,206,253,193,74,206,253,193,82,206,253,193,84,206,253,193,96,206,253,193,134,206,253,206,64,117,0,206,64,117,0,206,64,117,0,206,64,117,0,193,220,201,253,193,222,201,253,193,224,201,253,193,226,201,253,193,184,202,253,193,186,202,253,193,188,202,253,193,190,202,253,193,192,202,253,193,194,202,253,193,196,202,253,193,198,202,253,193,146,203,253,193,148,203,253,193,150,203,253,193,152,203,253,193,154,203,253,193,156,203,253,193,118,204,253,193,248,204,253,193,250,204,253,193,86,205,253,193,88,205,253,193,146,205,253,193,148,205,253,193,204,205,253,193,206,205,253,193,12,206,253,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,96,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,128,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,206,160,117,0,193,210,202,253,193,42,202,253,193,44,202,253,193,46,202,253,193,48,202,253,193,212,202,253,193,214,202,253,193,216,202,253,193,218,202,253,193,220,202,253,193,222,202,253,193,224,202,253,193,226,202,253,193,228,202,253,193,230,202,253,193,232,202,253,193,234,202,253,193,236,202,253,193,238,202,253,193,240,202,253,193,242,202,253,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,192,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,224,117,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,193,218,203,253,193,220,203,253,193,222,203,253,193,224,203,253,193,226,203,253,193,228,203,253,193,230,203,253,193,158,204,253,193,160,204,253,193,162,204,253,193,164,204,253,193,166,204,253,193,24,205,253,193,26,205,253,193,96,205,253,193,158,205,253,193,34,206,253,193,62,206,253,193,64,206,253,193,114,206,253,193,8,207,253,193,10,207,253,193,182,207,253,193,254,207,253,193,74,208,253,193,188,208,253,193,250,208,253,193,34,209,253,193,96,209,253,193,118,209,253,193,140,209,253,193,198,209,253,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,206,0,118,0,193,168,204,253,193,100,204,253,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,193,136,204,253,193,138,204,253,193,140,204,253,193,142,204,253,193,144,204,253,193,146,204,253,193,148,204,253,193,150,204,253,193,152,204,253,193,154,204,253,193,156,204,253,193,8,205,253,193,10,205,253,193,12,205,253,193,14,205,253,193,16,205,253,193,18,205,253,193,20,205,253,193,22,205,253,193,92,205,253,193,94,205,253,193,152,205,253,193,154,205,253,193,156,205,253,193,212,205,253,193,214,205,253,193,216,205,253,193,244,205,253,193,246,205,253,193,14,206,253,193,16,206,253,193,72,206,253,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,206,32,118,0,193,28,205,253,193,30,205,253,193,32,205,253,193,34,205,253,193,36,205,253,193,38,205,253,193,40,205,253,193,42,205,253,193,44,205,253,193,46,205,253,193,48,205,253,193,50,205,253,193,52,205,253,193,198,218,253,193,54,205,253,193,2,205,253,193,4,205,253,193,6,205,253,193,90,205,253,193,150,205,253,193,208,205,253,193,210,205,253,193,76,206,253,193,86,206,253,193,88,206,253,193,98,206,253,193,100,206,253,193,102,206,253,193,144,206,253,193,146,206,253,193,148,206,253,193,150,206,253,193,152,206,253,193,154,206,253,193,156,206,253,193,158,206,253,193,216,206,253,193,218,206,253,193,220,206,253,193,222,206,253,193,224,206,253,193,226,206,253,193,228,206,253,193,230,206,253,193,232,206,253,193,234,206,253,193,236,206,253,193,56,205,253,193,58,205,253,193,60,205,253,193,62,205,253,193,64,205,253,193,66,205,253,193,68,205,253,193,70,205,253,193,72,205,253,193,74,205,253,193,76,205,253,193,78,205,253,193,80,205,253,193,98,205,253,193,100,205,253,193,102,205,253,193,104,205,253,193,106,205,253,193,108,205,253,193,110,205,253,193,112,205,253,193,114,205,253,193,116,205,253,193,118,205,253,193,120,205,253,193,122,205,253,193,124,205,253,193,126,205,253,193,128,205,253,193,130,205,253,193,132,205,253,193,134,205,253,193,136,205,253,193,138,205,253,193,140,205,253,193,160,205,253,193,162,205,253,193,164,205,253,193,166,205,253,193,168,205,253,193,170,205,253,193,172,205,253,193,174,205,253,193,176,205,253,193,178,205,253,193,180,205,253,193,182,205,253,193,184,205,253,193,186,205,253,193,188,205,253,193,190,205,253,193,192,205,253,193,194,205,253,193,196,205,253,193,198,205,253,193,200,205,253,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,206,64,118,0,193,248,205,253,193,250,205,253,193,252,205,253,193,254,205,253,193,2,206,253,193,4,206,253,193,6,206,253,193,8,206,253,193,10,206,253,193,20,206,253,193,22,206,253,193,24,206,253,193,26,206,253,193,28,206,253,193,30,206,253,193,38,206,253,193,40,206,253,193,42,206,253,193,44,206,253,193,48,206,253,193,50,206,253,193,52,206,253,193,54,206,253,193,56,206,253,193,58,206,253,193,66,206,253,193,68,206,253,193,60,206,253,193,138,206,253,193,140,206,253,193,142,206,253,193,214,206,253,193,48,207,253,193,130,207,253,193,132,207,253,193,96,208,253,193,98,208,253,193,136,208,253,193,24,209,253,193,46,209,253,193,66,209,253,193,68,209,253,193,90,209,253,193,154,209,253,193,182,209,253,193,204,209,253,193,26,210,253,193,70,210,253,193,118,210,253,193,162,210,253,193,164,210,253,193,192,210,253,193,212,210,253,193,214,210,253,193,166,211,253,193,34,212,253,193,36,212,253,193,72,212,253,193,96,212,253,193,70,206,253,193,116,206,253,193,118,206,253,193,120,206,253,193,186,206,253,193,12,207,253,193,14,207,253,193,16,207,253,193,18,207,253,193,20,207,253,193,22,207,253,193,24,207,253,193,104,207,253,193,106,207,253,193,184,207,253,193,2,208,253,193,4,208,253,193,76,208,253,193,78,208,253,193,80,208,253,193,82,208,253,193,222,208,253,193,244,208,253,193,246,208,253,193,252,208,253,193,254,208,253,193,2,209,253,193,4,209,253,193,12,209,253,193,14,209,253,193,16,209,253,193,18,209,253,193,78,206,253,193,80,206,253,193,90,206,253,193,92,206,253,193,94,206,253,193,104,206,253,193,106,206,253,193,108,206,253,193,110,206,253,193,112,206,253,193,160,206,253,193,162,206,253,193,164,206,253,193,166,206,253,193,168,206,253,193,170,206,253,193,172,206,253,193,174,206,253,193,176,206,253,193,178,206,253,193,180,206,253,193,182,206,253,193,184,206,253,193,244,206,253,193,246,206,253,193,248,206,253,193,250,206,253,193,252,206,253,193,254,206,253,193,2,207,253,193,4,207,253,193,6,207,253,193,136,206,253,193,200,206,253,193,202,206,253,193,204,206,253,193,206,206,253,193,208,206,253,193,210,206,253,193,212,206,253,193,38,207,253,193,40,207,253,193,42,207,253,193,44,207,253,193,46,207,253,193,120,207,253,193,122,207,253,193,124,207,253,193,126,207,253,193,128,207,253,193,198,207,253,193,200,207,253,193,202,207,253,193,204,207,253,193,206,207,253,193,208,207,253,193,20,208,253,193,22,208,253,193,24,208,253,193,26,208,253,193,28,208,253,193,30,208,253,193,32,208,253,193,34,208,253,193,190,206,253,193,192,206,253,193,194,206,253,193,196,206,253,193,198,206,253,193,26,207,253,193,28,207,253,193,30,207,253,193,32,207,253,193,34,207,253,193,36,207,253,193,108,207,253,193,110,207,253,193,112,207,253,193,114,207,253,193,116,207,253,193,186,207,253,193,188,207,253,193,190,207,253,193,192,207,253,193,194,207,253,193,196,207,253,193,6,208,253,193,8,208,253,193,10,208,253,193,12,208,253,193,14,208,253,193,16,208,253,193,18,208,253,193,84,208,253,193,86,208,253,193,122,208,253,193,238,206,253,193,240,206,253,193,242,206,253,193,50,207,253,193,52,207,253,193,54,207,253,193,56,207,253,193,58,207,253,193,60,207,253,193,62,207,253,193,64,207,253,193,66,207,253,193,68,207,253,193,70,207,253,193,72,207,253,193,74,207,253,193,76,207,253,193,78,207,253,193,80,207,253,193,82,207,253,193,134,207,253,193,136,207,253,193,138,207,253,193,140,207,253,193,142,207,253,193,144,207,253,193,146,207,253,193,148,207,253,193,150,207,253,193,152,207,253,193,154,207,253,193,156,207,253,193,84,207,253,193,86,207,253,193,88,207,253,193,90,207,253,193,92,207,253,193,94,207,253,193,96,207,253,193,98,207,253,193,100,207,253,193,158,207,253,193,160,207,253,193,162,207,253,193,164,207,253,193,166,207,253,193,168,207,253,193,170,207,253,193,172,207,253,193,174,207,253,193,176,207,253,193,178,207,253,193,180,207,253,193,240,207,253,193,242,207,253,193,244,207,253,193,56,208,253,193,246,207,253,193,248,207,253,193,250,207,253,193,252,207,253,193,58,208,253,193,60,208,253,193,62,208,253,193,210,207,253,193,212,207,253,193,214,207,253,193,216,207,253,193,218,207,253,193,220,207,253,193,222,207,253,193,224,207,253,193,226,207,253,193,228,207,253,193,230,207,253,193,232,207,253,193,234,207,253,193,236,207,253,193,238,207,253,193,36,208,253,193,38,208,253,193,40,208,253,193,42,208,253,193,44,208,253,193,46,208,253,193,48,208,253,193,50,208,253,193,52,208,253,193,54,208,253,193,100,208,253,193,102,208,253,193,104,208,253,193,106,208,253,193,108,208,253,193,110,208,253,193,112,208,253,193,64,208,253,193,66,208,253,193,68,208,253,193,70,208,253,193,72,208,253,193,114,208,253,193,116,208,253,193,118,208,253,193,120,208,253,193,150,208,253,193,152,208,253,193,154,208,253,193,156,208,253,193,180,208,253,193,182,208,253,193,184,208,253,193,186,208,253,193,214,208,253,193,216,208,253,193,232,208,253,193,234,208,253,193,240,208,253,193,248,208,253,193,10,209,253,193,50,209,253,193,70,209,253,193,92,209,253,193,94,209,253,193,128,209,253,193,130,209,253,193,164,209,253,193,178,209,253,193,88,208,253,193,90,208,253,193,92,208,253,193,94,208,253,193,130,208,253,193,132,208,253,193,134,208,253,193,162,208,253,193,164,208,253,193,166,208,253,193,168,208,253,193,170,208,253,193,192,208,253,193,194,208,253,193,196,208,253,193,198,208,253,193,228,208,253,193,238,208,253,193,6,209,253,193,44,209,253,193,138,209,253,193,156,209,253,193,162,209,253,193,168,209,253,193,170,209,253,193,172,209,253,193,184,209,253,193,242,209,253,193,24,210,253,193,66,210,253,193,68,210,253,193,160,210,253,193,124,208,253,193,126,208,253,193,128,208,253,193,158,208,253,193,160,208,253,193,190,208,253,193,218,208,253,193,30,209,253,193,42,209,253,193,88,209,253,193,166,209,253,193,196,209,253,193,240,209,253,193,64,210,253,193,116,210,253,193,2,211,253,193,30,212,253,193,222,212,253,193,232,212,253,193,12,213,253,193,32,213,253,193,68,213,253,193,146,213,253,193,168,213,253,193,236,213,253,193,6,216,253,193,8,216,253,193,84,216,253,193,42,217,253,193,134,217,253,193,208,217,253,193,248,217,253,193,138,208,253,193,140,208,253,193,142,208,253,193,144,208,253,193,146,208,253,193,148,208,253,193,172,208,253,193,174,208,253,193,176,208,253,193,178,208,253,193,200,208,253,193,202,208,253,193,204,208,253,193,206,208,253,193,208,208,253,193,210,208,253,193,212,208,253,193,220,208,253,193,224,208,253,193,226,208,253,193,230,208,253,193,236,208,253,193,8,209,253,193,26,209,253,193,32,209,253,193,48,209,253,193,152,209,253,193,158,209,253,193,174,209,253,193,176,209,253,193,120,210,253,193,122,210,253,193,20,209,253,193,22,209,253,193,28,209,253,193,36,209,253,193,38,209,253,193,40,209,253,193,52,209,253,193,54,209,253,193,56,209,253,193,58,209,253,193,60,209,253,193,62,209,253,193,64,209,253,193,72,209,253,193,74,209,253,193,76,209,253,193,78,209,253,193,80,209,253,193,82,209,253,193,84,209,253,193,86,209,253,193,98,209,253,193,100,209,253,193,102,209,253,193,104,209,253,193,106,209,253,193,108,209,253,193,110,209,253,193,112,209,253,193,114,209,253,193,116,209,253,193,120,209,253,193,122,209,253,193,124,209,253,193,126,209,253,193,132,209,253,193,134,209,253,193,136,209,253,193,142,209,253,193,144,209,253,193,146,209,253,193,148,209,253,193,150,209,253,193,192,209,253,193,194,209,253,193,200,209,253,193,202,209,253,193,216,209,253,193,218,209,253,193,220,209,253,193,222,209,253,193,224,209,253,193,226,209,253,193,228,209,253,193,230,209,253,193,232,209,253,193,234,209,253,193,236,209,253,193,238,209,253,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,193,186,209,253,193,188,209,253,193,190,209,253,193,206,209,253,193,208,209,253,193,244,209,253,193,246,209,253,193,248,209,253,193,250,209,253,193,28,210,253,193,30,210,253,193,32,210,253,193,72,210,253,193,74,210,253,193,76,210,253,193,78,210,253,193,80,210,253,193,124,210,253,193,126,210,253,193,128,210,253,193,130,210,253,193,132,210,253,193,134,210,253,193,136,210,253,193,166,210,253,193,168,210,253,193,170,210,253,193,172,210,253,193,194,210,253,193,196,210,253,193,216,210,253,193,236,210,253,193,210,209,253,193,212,209,253,193,214,209,253,193,252,209,253,193,254,209,253,193,2,210,253,193,82,210,253,193,138,210,253,193,198,210,253,193,218,210,253,193,6,211,253,193,8,211,253,193,70,211,253,193,72,211,253,193,74,211,253,193,92,211,253,193,94,211,253,193,132,211,253,193,134,211,253,193,136,211,253,193,138,211,253,193,172,211,253,193,202,211,253,193,204,211,253,193,206,211,253,193,242,211,253,193,244,211,253,193,246,211,253,193,248,211,253,193,250,211,253,193,74,212,253,193,76,212,253,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,206,96,118,0,193,34,210,253,193,36,210,253,193,38,210,253,193,40,210,253,193,42,210,253,193,44,210,253,193,46,210,253,193,48,210,253,193,50,210,253,193,52,210,253,193,54,210,253,193,56,210,253,193,58,210,253,193,60,210,253,193,62,210,253,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,206,128,118,0,193,140,210,253,193,142,210,253,193,144,210,253,193,146,210,253,193,148,210,253,193,150,210,253,193,152,210,253,193,154,210,253,193,156,210,253,193,158,210,253,193,174,210,253,193,176,210,253,193,178,210,253,193,180,210,253,193,182,210,253,193,184,210,253,193,186,210,253,193,188,210,253,193,190,210,253,193,200,210,253,193,202,210,253,193,204,210,253,193,206,210,253,193,208,210,253,193,220,210,253,193,222,210,253,193,224,210,253,193,226,210,253,193,210,210,253,193,230,210,253,193,196,211,253,193,32,212,253,193,154,212,253,193,208,212,253,193,248,212,253,193,14,213,253,193,16,213,253,193,18,213,253,193,34,213,253,193,36,213,253,193,38,213,253,193,76,213,253,193,84,213,253,193,154,213,253,193,218,213,253,193,26,214,253,193,86,214,253,193,100,214,253,193,156,214,253,193,160,215,253,193,162,215,253,193,198,215,253,193,86,216,253,193,128,216,253,193,130,216,253,193,6,217,253,193,60,217,253,193,70,217,253,193,74,217,253,193,114,217,253,193,228,210,253,193,238,210,253,193,240,210,253,193,242,210,253,193,244,210,253,193,246,210,253,193,248,210,253,193,250,210,253,193,252,210,253,193,254,210,253,193,10,211,253,193,12,211,253,193,14,211,253,193,16,211,253,193,20,211,253,193,22,211,253,193,24,211,253,193,26,211,253,193,28,211,253,193,30,211,253,193,32,211,253,193,34,211,253,193,38,211,253,193,40,211,253,193,44,211,253,193,48,211,253,193,52,211,253,193,54,211,253,193,58,211,253,193,60,211,253,193,62,211,253,193,64,211,253,193,232,210,253,193,234,210,253,193,42,211,253,193,38,212,253,193,202,212,253,193,204,212,253,193,210,212,253,193,212,212,253,193,214,212,253,193,228,212,253,193,236,212,253,193,238,212,253,193,240,212,253,193,242,212,253,193,244,212,253,193,246,212,253,193,252,212,253,193,254,212,253,193,2,213,253,193,4,213,253,193,6,213,253,193,8,213,253,193,20,213,253,193,22,213,253,193,24,213,253,193,40,213,253,193,42,213,253,193,44,213,253,193,46,213,253,193,48,213,253,193,52,213,253,193,54,213,253,193,4,211,253,193,18,211,253,193,36,211,253,193,46,211,253,193,50,211,253,193,56,211,253,193,196,212,253,193,68,211,253,193,84,211,253,193,86,211,253,193,88,211,253,193,90,211,253,193,126,211,253,193,128,211,253,193,130,211,253,193,168,211,253,193,170,211,253,193,198,211,253,193,200,211,253,193,238,211,253,193,240,211,253,193,40,212,253,193,100,212,253,193,190,212,253,193,216,212,253,193,26,213,253,193,50,213,253,193,94,213,253,193,98,213,253,193,100,213,253,193,108,213,253,193,148,213,253,193,162,211,253,193,164,211,253,193,174,211,253,193,176,211,253,193,178,211,253,193,180,211,253,193,182,211,253,193,184,211,253,193,186,211,253,193,188,211,253,193,190,211,253,193,192,211,253,193,194,211,253,193,208,211,253,193,210,211,253,193,212,211,253,193,214,211,253,193,216,211,253,193,218,211,253,193,220,211,253,193,222,211,253,193,224,211,253,193,226,211,253,193,228,211,253,193,230,211,253,193,232,211,253,193,234,211,253,193,236,211,253,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,206,160,118,0,193,42,212,253,193,44,212,253,193,46,212,253,193,48,212,253,193,50,212,253,193,52,212,253,193,54,212,253,193,56,212,253,193,58,212,253,193,60,212,253,193,62,212,253,193,64,212,253,193,66,212,253,193,68,212,253,193,70,212,253,193,80,212,253,193,82,212,253,193,84,212,253,193,86,212,253,193,88,212,253,193,78,212,253,193,102,212,253,193,104,212,253,193,140,212,253,193,156,212,253,193,106,212,253,193,172,212,253,193,110,213,253,193,174,213,253,193,176,213,253,193,224,213,253,193,254,213,253,193,16,214,253,193,30,214,253,193,60,214,253,193,88,214,253,193,102,214,253,193,134,214,253,193,140,214,253,193,142,214,253,193,186,214,253,193,188,214,253,193,190,214,253,193,204,214,253,193,206,214,253,193,208,214,253,193,220,214,253,193,224,214,253,193,236,214,253,193,4,215,253,193,8,215,253,193,20,215,253,193,90,212,253,193,92,212,253,193,94,212,253,193,108,212,253,193,110,212,253,193,112,212,253,193,114,212,253,193,116,212,253,193,118,212,253,193,120,212,253,193,122,212,253,193,124,212,253,193,126,212,253,193,128,212,253,193,130,212,253,193,132,212,253,193,134,212,253,193,136,212,253,193,142,212,253,193,144,212,253,193,146,212,253,193,148,212,253,193,150,212,253,193,152,212,253,193,158,212,253,193,160,212,253,193,162,212,253,193,164,212,253,193,166,212,253,193,168,212,253,193,170,212,253,193,174,212,253,193,98,212,253,193,138,212,253,193,188,212,253,193,200,212,253,193,224,212,253,193,226,212,253,193,234,212,253,193,250,212,253,193,124,213,253,193,126,213,253,193,128,213,253,193,156,213,253,193,196,213,253,193,204,213,253,193,208,213,253,193,246,213,253,193,126,214,253,193,128,214,253,193,182,214,253,193,240,214,253,193,80,215,253,193,82,215,253,193,124,215,253,193,164,215,253,193,166,215,253,193,10,216,253,193,12,216,253,193,14,216,253,193,88,216,253,193,158,216,253,193,244,216,253,193,8,217,253,193,176,212,253,193,178,212,253,193,180,212,253,193,182,212,253,193,184,212,253,193,186,212,253,193,192,212,253,193,194,212,253,193,206,212,253,193,218,212,253,193,220,212,253,193,230,212,253,193,10,213,253,193,198,212,253,193,28,213,253,193,30,213,253,193,74,213,253,193,96,213,253,193,102,213,253,193,104,213,253,193,106,213,253,193,112,213,253,193,114,213,253,193,116,213,253,193,118,213,253,193,120,213,253,193,122,213,253,193,130,213,253,193,132,213,253,193,134,213,253,193,136,213,253,193,138,213,253,193,56,213,253,193,58,213,253,193,60,213,253,193,62,213,253,193,64,213,253,193,66,213,253,193,70,213,253,193,72,213,253,193,78,213,253,193,80,213,253,193,82,213,253,193,86,213,253,193,88,213,253,193,90,213,253,193,92,213,253,193,158,213,253,193,170,213,253,193,182,213,253,193,248,213,253,193,28,214,253,193,58,214,253,193,202,214,253,193,126,215,253,193,200,215,253,193,202,215,253,193,160,216,253,193,198,216,253,193,154,217,253,193,156,217,253,193,186,217,253,193,228,217,253,193,230,217,253,193,140,213,253,193,142,213,253,193,144,213,253,193,150,213,253,193,152,213,253,193,162,213,253,193,164,213,253,193,166,213,253,193,178,213,253,193,180,213,253,193,184,213,253,193,186,213,253,193,188,213,253,193,190,213,253,193,192,213,253,193,194,213,253,193,200,213,253,193,202,213,253,193,206,213,253,193,214,213,253,193,216,213,253,193,226,213,253,193,228,213,253,193,230,213,253,193,232,213,253,193,234,213,253,193,244,213,253,193,2,214,253,193,4,214,253,193,6,214,253,193,8,214,253,193,10,214,253,193,12,214,253,193,14,214,253,193,18,214,253,193,20,214,253,193,22,214,253,193,24,214,253,193,32,214,253,193,34,214,253,193,36,214,253,193,38,214,253,193,40,214,253,193,42,214,253,193,44,214,253,193,46,214,253,193,48,214,253,193,50,214,253,193,52,214,253,193,54,214,253,193,56,214,253,193,62,214,253,193,64,214,253,193,66,214,253,193,68,214,253,193,70,214,253,193,72,214,253,193,74,214,253,193,76,214,253,193,78,214,253,193,80,214,253,193,82,214,253,193,84,214,253,193,90,214,253,193,92,214,253,193,94,214,253,193,96,214,253,193,98,214,253,193,104,214,253,193,106,214,253,193,108,214,253,193,112,214,253,193,114,214,253,193,116,214,253,193,118,214,253,193,120,214,253,193,122,214,253,193,130,214,253,193,136,214,253,193,138,214,253,193,144,214,253,193,146,214,253,193,148,214,253,193,150,214,253,193,152,214,253,193,154,214,253,193,160,214,253,193,162,214,253,193,164,214,253,193,166,214,253,193,168,214,253,193,170,214,253,193,172,214,253,193,174,214,253,193,176,214,253,193,178,214,253,193,180,214,253,193,184,214,253,193,192,214,253,193,194,214,253,193,196,214,253,193,198,214,253,193,200,214,253,193,210,214,253,193,212,214,253,193,214,214,253,193,216,214,253,193,222,214,253,193,226,214,253,193,228,214,253,193,230,214,253,193,232,214,253,193,234,214,253,193,242,214,253,193,238,214,253,193,244,214,253,193,246,214,253,193,248,214,253,193,250,214,253,193,2,215,253,193,6,215,253,193,10,215,253,193,12,215,253,193,14,215,253,206,192,118,0,206,192,118,0,206,192,118,0,206,192,118,0,193,22,215,253,193,50,215,253,193,94,215,253,193,96,215,253,193,134,215,253,193,136,215,253,193,138,215,253,193,140,215,253,193,172,215,253,193,174,215,253,193,218,215,253,193,220,215,253,193,222,215,253,193,26,216,253,193,28,216,253,193,30,216,253,193,138,216,253,193,162,216,253,193,202,216,253,193,204,216,253,193,206,216,253,193,232,216,253,193,98,217,253,193,120,217,253,193,166,217,253,193,196,217,253,193,20,218,253,193,52,218,253,193,54,218,253,193,88,218,253,193,90,218,253,193,92,218,253,206,192,118,0,206,192,118,0,206,192,118,0,206,192,118,0,193,52,215,253,193,54,215,253,193,56,215,253,193,58,215,253,193,60,215,253,193,62,215,253,193,64,215,253,193,66,215,253,193,68,215,253,193,70,215,253,193,72,215,253,193,74,215,253,193,76,215,253,193,78,215,253,193,98,215,253,193,100,215,253,193,102,215,253,193,104,215,253,193,106,215,253,193,108,215,253,193,110,215,253,193,112,215,253,193,114,215,253,193,116,215,253,193,118,215,253,193,120,215,253,193,122,215,253,193,142,215,253,193,130,215,253,193,132,215,253,193,168,215,253,193,170,215,253,193,204,215,253,193,206,215,253,193,208,215,253,193,210,215,253,193,212,215,253,193,214,215,253,193,216,215,253,193,16,216,253,193,18,216,253,193,20,216,253,193,22,216,253,193,24,216,253,193,90,216,253,193,92,216,253,193,132,216,253,193,134,216,253,193,136,216,253,193,200,216,253,193,230,216,253,193,246,216,253,193,10,217,253,193,36,217,253,193,40,217,253,193,44,217,253,193,48,217,253,193,62,217,253,193,222,217,253,193,76,217,253,193,144,215,253,193,146,215,253,193,148,215,253,193,150,215,253,193,152,215,253,193,154,215,253,193,156,215,253,193,158,215,253,193,178,215,253,193,180,215,253,193,182,215,253,193,184,215,253,193,186,215,253,193,188,215,253,193,190,215,253,193,192,215,253,193,194,215,253,193,196,215,253,193,224,215,253,193,226,215,253,193,228,215,253,193,230,215,253,193,232,215,253,193,234,215,253,193,236,215,253,193,238,215,253,193,240,215,253,193,242,215,253,193,244,215,253,193,246,215,253,193,248,215,253,193,250,215,253,193,252,215,253,193,254,215,253,193,2,216,253,193,32,216,253,193,4,216,253,193,34,216,253,193,36,216,253,193,38,216,253,193,40,216,253,193,42,216,253,193,44,216,253,193,46,216,253,193,48,216,253,193,50,216,253,193,52,216,253,193,54,216,253,193,56,216,253,193,58,216,253,193,60,216,253,193,62,216,253,193,64,216,253,193,66,216,253,193,68,216,253,193,70,216,253,193,72,216,253,193,74,216,253,193,76,216,253,193,78,216,253,193,80,216,253,193,82,216,253,193,94,216,253,193,96,216,253,193,98,216,253,193,100,216,253,193,102,216,253,193,104,216,253,193,106,216,253,193,108,216,253,193,110,216,253,193,112,216,253,193,114,216,253,193,116,216,253,193,118,216,253,193,120,216,253,193,122,216,253,193,124,216,253,193,126,216,253,193,140,216,253,193,142,216,253,193,144,216,253,193,146,216,253,193,148,216,253,193,150,216,253,193,152,216,253,193,154,216,253,193,156,216,253,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,206,224,118,0,193,208,216,253,193,210,216,253,193,212,216,253,193,214,216,253,193,216,216,253,193,218,216,253,193,220,216,253,193,222,216,253,193,224,216,253,193,226,216,253,193,228,216,253,193,234,216,253,193,236,216,253,193,238,216,253,193,240,216,253,193,242,216,253,193,248,216,253,193,250,216,253,193,252,216,253,193,254,216,253,193,2,217,253,193,4,217,253,193,12,217,253,193,14,217,253,193,16,217,253,193,18,217,253,193,20,217,253,193,22,217,253,193,24,217,253,193,26,217,253,193,28,217,253,193,30,217,253,193,32,217,253,193,34,217,253,193,46,217,253,193,50,217,253,193,52,217,253,193,54,217,253,193,56,217,253,193,58,217,253,193,64,217,253,193,66,217,253,193,68,217,253,193,78,217,253,193,80,217,253,193,82,217,253,193,84,217,253,193,86,217,253,193,88,217,253,193,100,217,253,193,102,217,253,193,104,217,253,193,106,217,253,193,108,217,253,193,110,217,253,193,38,217,253,193,72,217,253,193,90,217,253,193,136,217,253,193,152,217,253,193,32,218,253,193,68,218,253,193,102,218,253,193,126,218,253,193,140,218,253,193,204,218,253,193,206,218,253,193,18,219,253,193,64,219,253,193,136,219,253,193,222,219,253,193,242,219,253,193,244,219,253,193,246,219,253,193,248,219,253,193,250,219,253,193,252,219,253,193,22,220,253,193,78,220,253,193,152,220,253,193,170,220,253,193,182,220,253,193,184,220,253,193,186,220,253,193,252,220,253,193,12,221,253,193,24,221,253,193,92,217,253,193,94,217,253,193,96,217,253,193,116,217,253,193,118,217,253,193,158,217,253,193,188,217,253,193,190,217,253,193,200,217,253,193,202,217,253,193,210,217,253,193,224,217,253,193,226,217,253,193,2,218,253,193,6,218,253,193,10,218,253,193,12,218,253,193,14,218,253,193,18,218,253,193,62,218,253,193,64,218,253,193,84,218,253,193,86,218,253,193,106,218,253,193,142,218,253,193,144,218,253,193,146,218,253,193,148,218,253,193,176,218,253,193,180,218,253,193,182,218,253,193,194,218,253,193,112,217,253,193,122,217,253,193,124,217,253,193,126,217,253,193,128,217,253,193,130,217,253,193,132,217,253,193,138,217,253,193,140,217,253,193,142,217,253,193,144,217,253,193,146,217,253,193,160,217,253,193,162,217,253,193,168,217,253,193,170,217,253,193,172,217,253,193,174,217,253,193,176,217,253,193,178,217,253,193,180,217,253,193,182,217,253,193,184,217,253,193,192,217,253,193,194,217,253,193,198,217,253,193,204,217,253,193,196,224,253,193,212,217,253,193,206,217,253,193,214,217,253,193,216,217,253,193,148,217,253,193,150,217,253,193,164,217,253,193,238,217,253,193,242,217,253,193,30,218,253,193,36,218,253,193,38,218,253,193,40,218,253,193,44,218,253,193,50,218,253,193,56,218,253,193,60,218,253,193,62,219,253,193,134,219,253,193,76,220,253,193,108,220,253,193,180,220,253,193,212,220,253,193,238,220,253,193,134,221,253,193,206,221,253,193,208,221,253,193,210,221,253,193,12,223,253,193,72,223,253,193,122,223,253,193,124,223,253,193,126,223,253,193,128,223,253,193,142,223,253,193,144,223,253,193,218,217,253,193,220,217,253,193,8,218,253,193,16,218,253,193,22,218,253,193,24,218,253,193,26,218,253,193,34,218,253,193,42,218,253,193,46,218,253,193,58,218,253,193,70,218,253,193,72,218,253,193,76,218,253,193,78,218,253,193,80,218,253,193,94,218,253,193,96,218,253,193,98,218,253,193,100,218,253,193,110,218,253,193,112,218,253,193,114,218,253,193,116,218,253,193,118,218,253,193,120,218,253,193,122,218,253,193,124,218,253,193,128,218,253,193,130,218,253,193,132,218,253,193,134,218,253,193,232,217,253,193,234,217,253,193,236,217,253,193,240,217,253,193,244,217,253,193,246,217,253,193,250,217,253,193,252,217,253,193,254,217,253,193,4,218,253,193,82,218,253,193,104,218,253,193,192,218,253,193,238,218,253,193,88,219,253,193,90,219,253,193,224,219,253,193,10,220,253,193,12,220,253,193,40,220,253,193,62,220,253,193,80,220,253,193,82,220,253,193,240,220,253,193,242,220,253,193,244,220,253,193,62,221,253,193,64,221,253,193,66,221,253,193,140,221,253,193,24,222,253,193,146,222,253,193,28,218,253,193,48,218,253,193,224,218,253,193,220,219,253,193,38,220,253,193,204,221,253,193,20,222,253,193,10,223,253,193,120,223,253,193,166,223,253,193,168,223,253,193,192,223,253,193,204,223,253,193,206,223,253,193,230,223,253,193,238,223,253,193,2,224,253,193,74,224,253,193,114,224,253,193,230,224,253,193,30,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,108,218,253,193,150,218,253,193,230,218,253,193,246,218,253,193,40,219,253,193,68,219,253,193,126,219,253,193,146,219,253,193,176,219,253,193,178,219,253,193,24,220,253,193,26,220,253,193,46,220,253,193,64,220,253,193,66,220,253,193,84,220,253,193,156,220,253,193,164,220,253,193,192,220,253,193,194,220,253,193,16,221,253,193,32,221,253,193,34,221,253,193,90,221,253,193,92,221,253,193,94,221,253,193,154,221,253,193,156,221,253,193,224,221,253,193,226,221,253,193,36,222,253,193,38,222,253,193,136,218,253,193,138,218,253,193,152,218,253,193,154,218,253,193,156,218,253,193,158,218,253,193,160,218,253,193,162,218,253,193,164,218,253,193,166,218,253,193,168,218,253,193,170,218,253,193,172,218,253,193,174,218,253,193,178,218,253,193,184,218,253,193,186,218,253,193,188,218,253,193,190,218,253,193,200,218,253,193,202,218,253,193,210,218,253,193,212,218,253,193,216,218,253,193,226,218,253,193,228,218,253,193,232,218,253,193,234,218,253,193,236,218,253,193,248,218,253,193,250,218,253,193,252,218,253,193,220,218,253,193,222,218,253,193,240,218,253,193,242,218,253,193,244,218,253,193,20,219,253,193,22,219,253,193,24,219,253,193,26,219,253,193,28,219,253,193,30,219,253,193,32,219,253,193,34,219,253,193,66,219,253,193,92,219,253,193,94,219,253,193,96,219,253,193,124,219,253,193,138,219,253,193,140,219,253,193,142,219,253,193,144,219,253,193,168,219,253,193,170,219,253,193,172,219,253,193,174,219,253,193,230,219,253,193,240,219,253,193,2,220,253,193,4,220,253,193,14,220,253,193,16,220,253,193,254,218,253,193,2,219,253,193,4,219,253,193,6,219,253,193,8,219,253,193,10,219,253,193,12,219,253,193,14,219,253,193,16,219,253,193,42,219,253,193,44,219,253,193,46,219,253,193,48,219,253,193,50,219,253,193,52,219,253,193,54,219,253,193,56,219,253,193,58,219,253,193,70,219,253,193,72,219,253,193,74,219,253,193,76,219,253,193,78,219,253,193,80,219,253,193,82,219,253,193,84,219,253,193,98,219,253,193,100,219,253,193,102,219,253,193,104,219,253,193,106,219,253,193,86,219,253,193,108,219,253,193,110,219,253,193,112,219,253,193,114,219,253,193,116,219,253,193,118,219,253,193,120,219,253,193,122,219,253,193,128,219,253,193,130,219,253,193,132,219,253,193,148,219,253,193,150,219,253,193,152,219,253,193,154,219,253,193,156,219,253,193,158,219,253,193,160,219,253,193,162,219,253,193,164,219,253,193,166,219,253,193,180,219,253,193,182,219,253,193,184,219,253,193,186,219,253,193,188,219,253,193,190,219,253,193,192,219,253,193,194,219,253,193,196,219,253,193,198,219,253,193,126,220,253,193,200,219,253,193,202,219,253,193,204,219,253,193,206,219,253,193,208,219,253,193,210,219,253,193,212,219,253,193,214,219,253,193,216,219,253,193,218,219,253,193,226,219,253,193,228,219,253,193,232,219,253,193,234,219,253,193,236,219,253,193,238,219,253,193,254,219,253,193,6,220,253,193,8,220,253,193,18,220,253,193,20,220,253,193,28,220,253,193,30,220,253,193,32,220,253,193,34,220,253,193,36,220,253,193,48,220,253,193,50,220,253,193,52,220,253,193,54,220,253,193,56,220,253,193,58,220,253,193,42,220,253,193,44,220,253,193,102,220,253,193,110,220,253,193,112,220,253,193,122,220,253,193,124,220,253,193,134,220,253,193,154,220,253,193,174,220,253,193,176,220,253,193,190,220,253,193,198,220,253,193,206,220,253,193,218,220,253,193,224,220,253,193,236,220,253,193,246,220,253,193,248,220,253,193,254,220,253,193,2,221,253,193,14,221,253,193,26,221,253,193,28,221,253,193,30,221,253,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,193,60,220,253,193,68,220,253,193,70,220,253,193,72,220,253,193,74,220,253,193,86,220,253,193,88,220,253,193,90,220,253,193,92,220,253,193,94,220,253,193,96,220,253,193,98,220,253,193,100,220,253,193,104,220,253,193,106,220,253,193,114,220,253,193,116,220,253,193,118,220,253,193,120,220,253,193,128,220,253,193,130,220,253,193,132,220,253,193,136,220,253,193,138,220,253,193,140,220,253,193,142,220,253,193,144,220,253,193,146,220,253,193,148,220,253,193,150,220,253,193,158,220,253,193,160,220,253,193,162,220,253,193,166,220,253,193,168,220,253,193,172,220,253,193,178,220,253,193,188,220,253,193,196,220,253,193,202,220,253,193,204,220,253,193,208,220,253,193,210,220,253,193,214,220,253,193,216,220,253,193,222,220,253,193,220,220,253,193,226,220,253,193,228,220,253,193,230,220,253,193,232,220,253,193,234,220,253,193,4,221,253,193,6,221,253,193,8,221,253,193,10,221,253,193,18,221,253,193,20,221,253,193,22,221,253,206,0,119,0,206,0,119,0,206,0,119,0,206,0,119,0,206,0,119,0,206,0,119,0,193,98,221,253,193,100,221,253,193,102,221,253,193,104,221,253,193,106,221,253,193,108,221,253,193,110,221,253,193,112,221,253,193,114,221,253,193,116,221,253,193,118,221,253,193,120,221,253,193,122,221,253,193,124,221,253,193,126,221,253,193,128,221,253,193,130,221,253,193,132,221,253,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,193,58,221,253,193,60,221,253,193,136,221,253,193,138,221,253,193,212,221,253,193,214,221,253,193,216,221,253,193,22,222,253,193,80,222,253,193,82,222,253,193,84,222,253,193,138,222,253,193,140,222,253,193,142,222,253,193,144,222,253,193,198,222,253,193,200,222,253,193,228,222,253,193,230,222,253,193,232,222,253,193,14,223,253,193,16,223,253,193,18,223,253,193,40,223,253,193,84,223,253,193,148,223,253,193,66,224,253,193,124,224,253,193,126,224,253,193,128,224,253,193,130,224,253,193,132,224,253,206,32,119,0,206,32,119,0,206,32,119,0,206,32,119,0,193,142,221,253,193,144,221,253,193,146,221,253,193,148,221,253,193,150,221,253,193,152,221,253,193,218,221,253,193,220,221,253,193,222,221,253,193,26,222,253,193,28,222,253,193,30,222,253,193,32,222,253,193,34,222,253,193,86,222,253,193,88,222,253,193,90,222,253,193,92,222,253,193,94,222,253,193,96,222,253,193,152,222,253,193,154,222,253,193,156,222,253,193,158,222,253,193,22,223,253,193,24,223,253,193,96,223,253,193,110,223,253,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,64,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,206,96,119,0,193,40,222,253,193,42,222,253,193,44,222,253,193,46,222,253,193,48,222,253,193,50,222,253,193,52,222,253,193,54,222,253,193,56,222,253,193,58,222,253,193,60,222,253,193,62,222,253,193,64,222,253,193,66,222,253,193,68,222,253,193,70,222,253,193,72,222,253,193,74,222,253,193,76,222,253,193,78,222,253,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,206,128,119,0,193,164,222,253,193,166,222,253,193,168,222,253,193,170,222,253,193,172,222,253,193,174,222,253,193,176,222,253,193,178,222,253,193,180,222,253,193,182,222,253,193,184,222,253,193,186,222,253,193,188,222,253,193,190,222,253,193,192,222,253,193,194,222,253,193,196,222,253,193,210,222,253,193,212,222,253,193,214,222,253,193,216,222,253,193,218,222,253,193,220,222,253,193,148,222,253,193,150,222,253,193,202,222,253,193,204,222,253,193,234,222,253,193,20,223,253,193,42,223,253,193,50,223,253,193,74,223,253,193,116,223,253,193,130,223,253,193,150,223,253,193,152,223,253,193,154,223,253,193,156,223,253,193,158,223,253,193,180,223,253,193,182,223,253,193,184,223,253,193,186,223,253,193,198,223,253,193,200,223,253,193,220,223,253,193,222,223,253,193,224,223,253,193,236,223,253,193,246,223,253,193,248,223,253,193,250,223,253,193,252,223,253,193,48,224,253,193,68,224,253,193,222,222,253,193,224,222,253,193,226,222,253,193,238,222,253,193,240,222,253,193,242,222,253,193,244,222,253,193,246,222,253,193,248,222,253,193,250,222,253,193,252,222,253,193,254,222,253,193,2,223,253,193,4,223,253,193,6,223,253,193,8,223,253,193,28,223,253,193,30,223,253,193,32,223,253,193,34,223,253,193,36,223,253,193,38,223,253,193,48,223,253,193,52,223,253,193,54,223,253,193,56,223,253,193,58,223,253,193,60,223,253,193,62,223,253,193,64,223,253,193,66,223,253,193,68,223,253,193,70,223,253,193,76,223,253,193,78,223,253,193,80,223,253,193,82,223,253,193,86,223,253,193,88,223,253,193,90,223,253,193,92,223,253,193,94,223,253,193,100,223,253,193,102,223,253,193,104,223,253,193,106,223,253,193,108,223,253,193,164,223,253,193,202,223,253,193,18,224,253,193,20,224,253,193,22,224,253,193,24,224,253,193,32,224,253,193,34,224,253,193,36,224,253,193,38,224,253,193,46,224,253,193,40,224,253,193,42,224,253,193,58,224,253,193,60,224,253,193,62,224,253,193,64,224,253,193,146,223,253,193,170,223,253,193,172,223,253,193,174,223,253,193,176,223,253,193,178,223,253,193,194,223,253,193,196,223,253,193,210,223,253,193,212,223,253,193,214,223,253,193,216,223,253,193,218,223,253,193,232,223,253,193,234,223,253,193,240,223,253,193,242,223,253,193,244,223,253,193,254,223,253,193,4,224,253,193,6,224,253,193,8,224,253,193,10,224,253,193,26,224,253,193,28,224,253,193,76,224,253,193,78,224,253,193,98,224,253,193,106,224,253,193,116,224,253,193,220,224,253,193,244,224,253,193,70,224,253,193,72,224,253,193,80,224,253,193,84,224,253,193,86,224,253,193,94,224,253,193,120,224,253,193,172,224,253,193,134,224,253,193,138,224,253,193,140,224,253,193,144,224,253,193,146,224,253,193,148,224,253,193,150,224,253,193,152,224,253,193,154,224,253,193,156,224,253,193,158,224,253,193,160,224,253,193,162,224,253,193,164,224,253,193,174,224,253,193,176,224,253,193,178,224,253,193,180,224,253,193,182,224,253,193,184,224,253,193,186,224,253,193,188,224,253,193,190,224,253,193,192,224,253,193,82,224,253,193,100,224,253,193,108,224,253,193,222,224,253,193,224,224,253,193,226,224,253,193,228,224,253,193,232,224,253,193,234,224,253,193,248,224,253,193,10,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,8,225,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,16,56,102,193,9,70,102,193,79,194,102,193,2,172,102,193,23,180,102,193,16,70,102,193,23,70,102,193,44,198,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,5,49,234,194,5,240,230,194,5,118,231,194,5,217,231,194,5,230,229,194,5,75,230,194,5,174,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,194,5,197,229,194,5,42,230,194,5,141,230,0,0,0,0,194,5,19,231,194,5,52,231,194,5,250,231,194,5,82,234,194,5,115,234,194,5,247,234,194,5,26,235,194,5,181,234,194,5,214,234,194,5,148,234,194,5,151,231,194,5,72,233,5,5,172,104,5,5,174,104,5,5,176,104,5,5,178,104,5,5,180,104,5,5,186,104,5,5,190,104,5,5,192,104,5,5,196,104,5,5,200,104,5,5,202,104,5,5,204,104,5,5,206,104,5,5,208,104,5,5,194,104,5,5,164,104,5,5,6,104,0,0,0,0,0,0,0,0,5,138,0,0,5,136,0,0,5,5,188,104,5,5,166,104,5,5,168,104,197,130,191,1,197,194,191,1,197,2,192,1,197,66,192,1,197,130,192,1,197,194,192,1,197,66,193,1,197,130,193,1,197,67,124,2,193,252,86,12,193,5,87,12,193,12,87,12,5,5,58,11,5,5,60,11,5,5,62,11,5,5,64,11,5,5,66,11,5,5,68,11,5,5,70,11,5,5,76,11,32,5,76,11,5,5,78,11,5,5,80,11,5,5,82,11,5,5,84,11,5,5,86,11,5,5,88,11,193,19,87,12,5,5,76,7,193,26,87,12,193,33,87,12,193,40,87,12,0,0,0,0,0,0,0,0,193,47,87,12,193,54,87,12,193,61,87,12,193,68,87,12,193,75,87,12,193,82,87,12,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,21,5,0,21,21,5,0,23,21,5,0,25,21,5,0,27,21,5,0,29,21,5,0,31,21,5,0,33,21,5,0,35,22,5,0,37,21,5,0,19,193,89,87,12,0,0,0,0,193,96,87,12,0,0,0,0,193,103,87,12,194,5,248,244,5,5,154,9,5,5,156,9,5,5,158,9,5,5,160,9,0,0,0,0,0,0,0,0,5,5,172,116,5,5,174,116,0,0,0,0,0,0,0,0,5,5,196,116,5,5,90,11,0,0,0,0,0,0,0,0,5,5,150,116,5,5,154,116,5,5,162,116,5,5,164,116,5,5,158,116,5,5,152,116,5,5,156,116,5,5,160,116,5,5,8,116,5,5,14,116,5,5,18,116,197,130,120,2,5,5,22,116,5,5,26,116,5,5,30,116,5,5,34,116,255,255,255,255,5,5,38,116,5,5,42,116,5,5,46,116,5,5,50,116,197,2,121,2,5,5,54,116,5,5,58,116,193,124,87,12,193,131,87,12,193,138,87,12,193,145,87,12,193,152,87,12,193,159,87,12,0,0,0,0,193,166,87,12,193,173,87,12,193,180,87,12,193,187,87,12,193,194,87,12,193,201,87,12,255,255,255,255,193,208,87,12,193,215,87,12,5,5,72,11,5,5,74,11,5,5,92,11,5,5,94,11,5,5,96,11,193,222,87,12,193,229,87,12,193,236,87,12,193,243,87,12,5,5,98,11,5,5,100,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,164,117,5,5,166,117,5,5,168,117,5,5,172,117,5,5,174,117,5,5,176,117,5,5,178,117,5,5,180,117,5,5,182,117,5,5,184,117,5,5,186,117,5,5,188,117,5,5,190,117,5,5,192,117,5,5,194,117,5,5,196,117,5,5,198,117,5,5,200,117,5,5,202,117,5,5,204,117,0,0,0,0,0,0,0,0,5,5,206,117,5,5,208,117,5,5,210,117,5,5,212,117,5,5,214,117,5,5,216,117,5,5,218,117,5,5,220,117,5,5,222,117,5,5,224,117,5,5,226,117,5,5,228,117,5,5,230,117,5,5,232,117,5,5,234,117,5,5,236,117,194,5,241,240,194,5,20,241,194,5,159,245,194,5,192,245,194,5,225,245,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,5,238,117,0,0,0,0,5,5,48,9,5,5,50,9,5,5,78,7,5,5,90,13,5,5,112,11,5,5,114,11,5,5,116,11,5,5,172,13,5,5,170,117,5,166,0,0,255,255,255,255,255,255,255,255,193,37,26,11,5,5,6,9,5,5,30,7,5,5,14,9,5,5,72,7,5,5,74,7,193,16,18,5,193,23,18,5,193,2,32,7,193,2,16,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,36,118,193,142,30,118,193,156,30,118,5,5,32,118,32,5,32,118,193,2,34,118,193,9,34,118,193,16,34,118,193,23,34,118,193,30,34,118,193,37,34,118,193,51,30,118,193,149,30,118,193,86,34,118,193,44,34,118,193,51,34,118,193,65,34,118,193,72,34,118,193,79,34,118,193,58,34,118,194,5,241,240,194,5,4,246,194,5,37,246,194,5,70,246,194,5,103,246,194,5,136,246,194,5,169,246,194,5,202,246,194,5,235,246,255,255,255,255,255,255,255,255,0,0,0,0,193,9,18,5,193,22,89,12,193,29,89,12,193,36,89,12,193,43,89,12,193,50,89,12,193,57,89,12,193,64,89,12,193,71,89,12,193,78,89,12,193,85,89,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,92,89,12,193,99,89,12,193,106,89,12,193,113,89,12,193,120,89,12,193,127,89,12,193,134,89,12,193,141,89,12,193,148,89,12,255,255,255,255,255,255,255,255,255,255,255,255,193,65,118,11,193,72,118,11,193,79,118,11,193,86,118,11,193,93,118,11,193,100,118,11,193,107,118,11,193,114,118,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,148,104,32,5,148,104,32,5,148,104,32,5,148,104,194,5,241,240,32,5,148,104,32,5,148,104,32,5,148,104,32,5,148,104,194,5,20,241,194,5,20,241,0,0,0,0,5,5,150,104,5,5,152,104,0,0,0,0,0,0,0,0,0,0,0,0,32,5,148,104,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,40,5,0,4,24,5,0,4,24,5,0,4,24,5,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,20,5,32,5,20,5,5,5,22,5,5,5,24,5,5,5,26,5,5,5,28,5,5,5,102,10,5,5,12,5,5,5,108,9,5,5,110,9,5,5,112,9,5,5,114,9,5,5,122,9,5,5,124,9,5,5,126,9,5,5,128,9,5,5,164,10,5,5,166,10,5,5,176,10,5,5,178,10,24,5,0,8,197,194,3,0,197,67,4,0,5,5,180,10,5,5,16,3,5,5,18,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,40,5,0,4,5,5,156,10,5,5,160,10,5,5,188,10,197,34,48,0,197,99,48,0,5,5,190,10,197,194,48,0,197,3,49,0,5,5,196,10,5,5,116,9,5,5,118,9,5,5,198,10,197,2,3,0,5,5,114,7,5,5,8,5,5,5,200,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,36,5,0,19,43,5,0,58,255,255,255,255,255,255,255,255,36,5,0,27,36,5,0,29,36,5,0,31,36,5,0,33,36,5,0,35,40,5,0,37,40,5,121,12,32,5,143,12,40,5,131,12,37,5,142,9,37,5,144,9,43,5,0,68,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,193,93,141,103,193,14,142,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,147,142,103,193,121,118,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,198,129,156,0,193,2,194,97,160,5,34,97,5,5,34,97,160,5,108,97,5,5,108,97,160,5,118,97,5,5,118,97,172,5,138,97,16,5,138,97,172,5,138,97,16,5,138,97,172,5,138,97,16,5,138,97,16,5,138,97,194,5,2,226,0,0,0,0,0,0,0,0,0,0,0,0,5,5,136,10,32,5,42,97,32,5,70,97,197,2,44,1,32,5,172,97,16,5,226,97,32,5,230,97,16,5,232,97,198,193,155,0,5,166,0,0,5,166,0,0,5,5,6,11,193,16,224,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,154,104,32,5,154,104,32,5,154,104,32,5,154,104,32,5,154,104,32,5,154,104,5,5,30,11,5,5,32,11,5,5,34,11,5,5,156,104,5,5,36,11,5,5,8,104,5,5,52,104,5,5,198,104,0,0,0,0,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,110,17,5,5,112,17,5,5,114,17,5,5,116,17,5,5,118,17,5,5,120,17,5,5,122,17,5,5,124,17,5,5,126,17,5,5,128,17,5,5,130,17,5,5,132,17,5,5,134,17,5,5,136,17,5,5,138,17,5,5,140,17,5,5,142,17,5,5,144,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,198,166,113,193,205,166,113,193,212,166,113,193,219,166,113,193,226,166,113,193,233,166,113,193,240,166,113,193,247,166,113,193,254,166,113,193,7,167,113,193,14,167,113,197,2,200,1,193,21,167,113,193,28,167,113,193,35,167,113,193,42,167,113,193,49,167,113,193,56,167,113,193,63,167,113,193,70,167,113,193,77,167,113,193,84,167,113,193,91,167,113,193,98,167,113,193,105,167,113,193,112,167,113,194,5,175,240,193,219,122,11,193,226,122,11,0,0,0,0,193,198,61,9,193,205,61,9,193,121,52,9,193,128,52,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,193,65,178,113,193,79,178,113,193,168,179,113,193,175,179,113,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,106,13,193,9,106,13,5,5,40,7,5,5,108,13,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,166,249,194,5,199,249,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,54,252,12,193,54,252,12,193,54,252,12,193,54,252,12,193,54,252,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,96,252,12,193,103,252,12,193,110,252,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,117,252,12,193,124,252,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,206,224,241,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,87,253,12,193,94,253,12,193,101,253,12,193,108,253,12,193,115,253,12,193,122,253,12,193,129,253,12,193,136,253,12,193,143,253,12,193,150,253,12,193,157,253,12,193,164,253,12,193,171,253,12,193,164,253,12,193,171,253,12,193,164,253,12,193,171,253,12,193,164,253,12,193,144,2,13,193,151,2,13,0,0,0,0,0,0,0,0,0,0,0,0,193,158,2,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,158,72,13,193,165,72,13,193,172,72,13,193,179,72,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,186,72,13,193,193,72,13,193,200,72,13,193,207,72,13,193,214,72,13,193,221,72,13,193,228,72,13,193,235,72,13,0,0,0,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,206,64,242,0,0,0,0,0,193,86,73,13,193,93,73,13,193,58,128,11,193,65,128,11,193,72,128,11,193,79,128,11,193,86,128,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,49,5,0,6,44,5,34,7,46,5,24,9,49,5,54,7,44,5,42,7,40,5,90,7,49,5,98,7,32,5,86,10,32,5,88,10,197,163,4,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,222,0,0,0,0,0,0,5,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,168,0,0,0,0,0,0,5,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,224,0,0,0,0,0,0,197,2,4,0,46,5,26,5,32,5,24,5,44,5,10,5,44,5,10,5,51,5,142,9,51,5,144,9,44,5,150,9,44,5,152,9,44,5,82,10,44,5,84,10,32,5,78,10,32,5,80,10,32,5,66,10,32,5,68,10,32,5,62,10,46,5,144,10,46,5,128,10,32,5,121,12,46,5,14,5,46,5,129,12,46,5,133,12,32,5,131,12,255,255,255,255,46,5,140,10,46,5,138,13,46,5,152,10,46,5,126,10,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,44,164,229,194,16,164,229,194,32,9,230,0,0,0,0,194,32,108,230,255,255,255,255,194,46,207,230,194,32,207,230,194,46,85,231,194,32,85,231,194,46,184,231,194,32,184,231,194,46,29,232,194,32,29,232,194,46,62,232,194,32,62,232,32,5,196,102,48,5,200,102,40,5,200,102,24,5,200,102,32,5,200,102,48,5,204,102,40,5,204,102,24,5,204,102,32,5,204,102,48,5,214,102,40,5,214,102,24,5,214,102,32,5,214,102,49,5,222,102,38,5,222,102,49,5,236,102,38,5,236,102,51,5,238,102,44,5,238,102,30,5,238,102,37,5,238,102,197,226,155,1,197,162,155,1,197,98,156,1,197,34,156,1,197,226,156,1,197,162,156,1,197,162,91,1,197,34,157,1,255,255,255,255,255,255,255,255,0,0,0,0,160,5,214,96,5,5,214,96,160,5,216,96,5,5,216,96,197,227,36,1,193,13,227,12,193,20,227,12,193,27,227,12,193,34,227,12,193,41,227,12,193,48,227,12,160,5,162,96,5,5,162,96,160,5,194,96,5,5,194,96,5,166,0,0,5,134,0,0,5,132,0,0,160,5,174,96,5,5,174,96,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,23,16,9,193,9,112,7,193,16,112,7,193,2,92,9,193,2,200,16,193,30,16,9,193,9,92,9,5,5,112,108,5,5,114,108,5,5,116,108,5,5,118,108,5,5,120,108,255,255,255,255,255,255,255,255,201,32,8,0,5,5,128,108,255,255,255,255,255,255,255,255,5,5,130,108,5,5,132,108,5,5,134,108,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,166,0,0,5,5,136,108,5,5,138,108,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,194,196,1,197,2,197,1,255,255,255,255,5,5,86,108,193,2,118,11,193,9,118,11,193,16,118,11,193,23,118,11,193,30,118,11,193,37,118,11,193,44,118,11,5,5,92,13,193,2,52,9,193,9,52,9,193,16,52,9,193,23,52,9,193,51,118,11,193,58,118,11,255,255,255,255,255,255,255,255,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,172,0,0,20,5,0,86,5,166,0,0,5,166,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,19,5,0,76,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,166,0,0,16,5,58,93,5,112,0,42,197,34,108,0,197,98,110,0,197,162,111,0,197,2,114,0,5,120,0,48,5,112,0,48,19,5,0,54,32,5,10,55,19,5,0,62,19,5,0,64,32,5,6,65,32,5,6,67,19,5,0,68,32,5,6,69,32,5,8,77,32,5,12,77,19,5,0,78,5,120,0,78,19,5,0,92,16,5,22,43,19,5,0,44,32,5,24,45,16,5,24,51,19,5,0,52,32,5,20,65,197,2,174,0,19,5,0,72,16,5,22,79,197,98,201,0,20,5,0,86,197,226,101,0,197,194,166,0,197,98,196,0,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,255,255,255,255,5,166,0,0,5,168,0,0,5,168,0,0,5,166,0,0,5,168,0,0,5,172,0,0,194,5,21,251,5,172,0,0,5,172,0,0,5,172,0,0,5,170,0,0,194,5,54,251,194,5,87,251,194,5,120,251,194,5,153,251,5,170,0,0,5,170,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,166,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,5,166,0,0,5,168,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,29,193,156,146,17,193,163,146,17,193,170,146,17,193,142,122,11,193,149,122,11,193,156,122,11,193,163,122,11,193,170,122,11,193,177,122,11,193,184,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,37,94,117,193,44,94,117,193,247,94,117,193,254,94,117,5,166,0,0,5,166,0,0,5,166,0,0,5,166,0,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,121,196,124,5,5,198,124,193,2,200,124,193,9,200,124,193,16,200,124,5,112,198,124,5,168,0,0,5,168,0,0,5,166,0,0,5,166,0,0,5,166,0,0,5,168,0,0,5,166,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,168,0,0,5,5,0,21,193,35,147,17,193,42,147,17,193,49,147,17,193,163,61,9,193,170,61,9,193,177,61,9,193,184,61,9,193,191,61,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,87,91,124,193,94,91,124,193,101,91,124,193,108,91,124,193,115,91,124,193,122,91,124,193,129,91,124,193,136,91,124,193,143,91,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,150,91,124,193,157,91,124,193,164,91,124,193,171,91,124,193,178,91,124,193,185,91,124,193,192,91,124,193,199,91,124,193,206,91,124,193,213,91,124,255,255,255,255,255,255,255,255,193,165,2,13,5,166,0,0,5,170,0,0,193,37,22,9,193,9,27,103,193,16,27,103,193,23,27,103,193,30,27,103,193,37,27,103,193,44,27,103,193,51,27,103,193,58,27,103,193,65,27,103,193,72,27,103,193,79,27,103,193,86,27,103,193,93,27,103,193,100,27,103,193,107,27,103,193,114,27,103,193,121,27,103,193,128,27,103,193,135,27,103,193,142,27,103,193,149,27,103,193,156,27,103,193,163,27,103,193,170,27,103,193,177,27,103,5,168,0,0,5,168,0,0,5,168,0,0,255,255,255,255,255,255,255,255,193,30,26,11,255,255,255,255,193,9,246,113,193,16,246,113,193,23,246,113,193,30,246,113,255,255,255,255,193,37,246,113,193,44,246,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,51,246,113,5,168,0,0,194,5,241,240,194,5,20,241,193,58,246,113,193,72,246,113,193,79,246,113,193,86,246,113,255,255,255,255,193,93,246,113,193,100,246,113,193,107,246,113,255,255,255,255,193,114,246,113,193,121,246,113,193,135,246,113,193,149,246,113,193,156,246,113,193,163,246,113,193,170,246,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,232,249,194,5,11,250,194,5,44,250,194,5,44,250,194,5,77,250,194,5,110,250,194,5,143,250,194,5,176,250,5,170,0,0,5,170,0,0,5,170,0,0,194,5,209,250,194,5,242,250,5,172,0,0,5,172,0,0,5,172,0,0,133,5,72,122,133,5,74,122,133,5,76,122,3,5,78,122,133,5,78,122,3,5,80,122,133,5,80,122,3,5,82,122,133,5,82,122,133,5,84,122,133,5,86,122,133,5,88,122,133,5,90,122,133,5,92,122,3,5,94,122,133,5,94,122,133,5,96,122,133,5,98,122,133,5,100,122,133,5,102,122,197,130,182,2,3,5,18,122,3,5,24,122,255,255,255,255,255,255,255,255,5,174,0,0,5,176,0,0,193,30,22,12,193,37,22,12,5,5,116,13,197,194,65,0,197,226,232,2,155,5,38,122,155,5,40,122,165,5,42,122,155,5,44,122,158,5,46,122,155,5,48,122,155,5,50,122,166,5,52,122,155,5,54,122,155,5,56,122,160,5,58,122,160,5,60,122,160,5,62,122,160,5,64,122,160,5,66,122,155,5,68,122,155,5,70,122,160,5,72,122,155,5,74,122,158,5,76,122,165,5,78,122,165,5,80,122,162,5,82,122,160,5,84,122,158,5,86,122,160,5,88,122,160,5,90,122,160,5,92,122,160,5,94,122,166,5,102,122,160,174,0,0,160,176,0,0,197,98,131,0,197,194,131,0,197,34,132,0,197,163,131,0,197,3,132,0,197,34,193,0,197,226,192,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,2,51,1,197,66,50,1,197,130,50,1,197,66,51,1,197,194,50,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,66,55,1,194,5,22,228,197,131,56,1,193,9,51,101,193,16,51,101,193,23,51,101,193,30,51,101,193,37,51,101,193,44,51,101,193,51,51,101,193,58,51,101,193,65,51,101,193,72,51,101,193,79,51,101,193,86,51,101,193,93,51,101,193,100,51,101,193,107,51,101,193,114,51,101,193,121,51,101,193,128,51,101,193,135,51,101,193,142,51,101,193,149,51,101,193,156,51,101,193,163,51,101,193,170,51,101,194,5,65,229,194,5,98,229,193,177,51,101,193,184,51,101,194,5,55,228,194,5,55,228,194,5,88,228,194,5,88,228,194,5,88,228,194,5,121,228,194,5,121,228,194,5,121,228,194,5,154,228,194,5,154,228,194,5,187,228,194,5,187,228,194,5,220,228,194,5,220,228,194,5,220,228,194,5,253,228,194,5,32,229,194,5,131,229,255,255,255,255,255,255,255,255,193,44,60,7,193,51,60,7,193,58,60,7,193,65,60,7,193,72,60,7,193,79,60,7,193,86,60,7,193,93,60,7,193,100,60,7,193,107,60,7,193,114,60,7,193,121,60,7,193,128,60,7,193,135,60,7,193,142,60,7,255,255,255,255,197,2,160,1,197,2,162,1,197,2,122,1,197,194,119,1,197,66,121,1,197,226,165,1,197,162,167,1,197,98,97,1,197,162,170,1,197,66,171,1,197,130,171,1,197,2,172,1,197,194,174,1,197,98,176,1,197,226,177,1,197,226,179,1,197,98,180,1,197,2,92,1,197,98,181,1,197,98,182,1,197,162,182,1,197,34,185,1,197,66,94,1,197,162,186,1,197,226,187,1,197,2,190,1,197,130,190,1,197,2,98,1,197,66,98,1,197,98,184,1,197,98,0,0,197,162,0,0,197,162,65,1,197,34,74,1,197,98,75,1,197,66,82,1,197,98,85,1,197,162,87,1,197,162,88,1,197,226,103,1,197,130,106,1,197,2,113,1,197,130,115,1,197,194,151,1,197,194,152,1,197,66,163,1,197,98,177,1,197,98,179,1,197,162,187,1,197,130,189,1,197,226,0,0,197,98,1,0,197,226,1,0,197,226,132,1,197,98,133,1,197,162,137,1,197,34,138,1,197,194,140,1,197,66,141,1,197,2,107,1,197,130,107,1,197,2,116,1,197,130,116,1,197,2,96,1,197,34,1,0,197,162,1,0,197,34,2,0,197,98,2,0,197,162,63,1,197,226,63,1,197,162,64,1,197,34,65,1,197,162,67,1,197,34,68,1,197,98,73,1,197,162,73,1,197,98,74,1,197,226,74,1,197,162,75,1,197,34,76,1,197,130,81,1,197,194,81,1,197,130,82,1,197,226,84,1,197,162,85,1,197,34,86,1,197,226,86,1,197,34,87,1,197,226,87,1,197,98,88,1,197,226,88,1,197,98,89,1,197,162,144,1,197,34,145,1,197,130,148,1,197,2,149,1,5,5,22,107,5,5,26,107,5,5,126,107,5,5,128,107,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,42,11,5,5,156,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,56,107,194,5,62,232,194,5,29,232,194,5,95,232,194,5,175,240,194,5,175,240,194,5,175,240,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,194,5,241,240,193,112,173,113,194,5,175,240,194,5,29,232,193,163,52,9,193,170,52,9,193,21,123,11,193,28,123,11,193,35,123,11,193,42,123,11,194,5,62,232,255,255,255,255,193,233,201,124,193,247,201,124,193,254,201,124,193,7,202,124,193,14,202,124,193,21,202,124,193,28,202,124,193,35,202,124,193,42,202,124,193,56,202,124,255,255,255,255,194,5,128,232,194,5,95,232,5,5,50,5,255,255,255,255,255,255,255,255,193,240,201,124,193,49,202,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,250,152,103,193,3,153,103,193,10,153,103,193,17,153,103,193,24,153,103,193,31,153,103,193,38,153,103,193,45,153,103,193,52,153,103,193,59,153,103,193,66,153,103,193,73,153,103,193,80,153,103,193,87,153,103,193,94,153,103,193,101,153,103,193,136,153,103,193,143,153,103,193,150,153,103,193,157,153,103,193,164,153,103,193,171,153,103,193,178,153,103,193,185,153,103,193,227,153,103,193,234,153,103,193,241,153,103,255,255,255,255,255,255,255,255,194,5,254,238,194,5,221,238,194,5,188,238,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,194,5,33,239,194,5,66,239,193,100,61,9,193,16,22,9,5,5,88,7,193,23,32,7,5,5,50,7,193,30,112,7,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,255,255,255,255,255,255,255,255,194,5,99,239,194,5,132,239,194,5,165,239,194,5,198,239,194,5,231,239,193,23,22,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,229,120,5,5,231,120,5,5,233,120,5,5,235,120,194,5,10,240,194,5,10,240,194,5,10,240,194,5,76,240,194,5,109,240,194,5,142,240,194,5,43,240,193,2,237,120,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,16,96,7,193,51,112,7,5,5,90,104,5,5,94,104,5,5,98,104,5,5,100,104,5,5,102,104,5,5,104,104,5,5,106,104,5,5,108,104,5,5,110,104,197,2,193,1,5,5,112,104,5,5,114,104,5,5,116,104,5,5,120,104,5,5,122,104,5,5,124,104,5,5,128,104,197,194,193,1,5,5,130,104,5,5,132,104,197,2,194,1,5,5,134,104,5,5,136,104,5,5,138,104,5,5,140,104,5,5,142,104,5,5,160,104,5,5,162,104,194,5,175,240,5,5,144,104,5,5,158,104,5,5,170,104,5,5,58,105,5,5,60,105,5,5,62,105,5,5,64,105,5,5,66,105,5,5,68,105,5,5,70,105,5,5,72,105,5,5,74,105,255,255,255,255,5,5,76,105,5,5,78,105,5,5,80,105,5,5,82,105,5,5,84,105,5,5,86,105,5,5,88,105,255,255,255,255,5,5,92,105,255,255,255,255,255,255,255,255,255,255,255,255,5,5,96,105,5,5,98,105,5,5,100,105,5,5,102,105,255,255,255,255,255,255,255,255,194,5,175,240,5,5,104,105,5,5,106,105,5,5,108,105,5,5,60,106,5,5,62,106,5,5,64,106,5,5,66,106,5,5,68,106,5,5,70,106,5,5,72,106,5,5,74,106,5,5,76,106,255,255,255,255,5,5,78,106,5,5,80,106,5,5,82,106,5,5,84,106,5,5,86,106,5,5,88,106,5,5,92,106,255,255,255,255,5,5,94,106,197,130,196,1,255,255,255,255,5,5,96,106,197,66,195,1,255,255,255,255,5,5,32,106,5,5,34,106,255,255,255,255,255,255,255,255,194,5,175,240,255,255,255,255,5,5,100,106,5,5,102,106,5,5,64,107,5,5,66,107,5,5,68,107,5,5,70,107,5,5,72,107,5,5,74,107,5,5,76,107,5,5,78,107,5,5,80,107,255,255,255,255,5,5,82,107,5,5,84,107,5,5,86,107,5,5,88,107,5,5,90,107,5,5,92,107,5,5,94,107,255,255,255,255,5,5,96,107,5,5,108,107,255,255,255,255,5,5,98,107,5,5,100,107,5,5,102,107,5,5,104,107,5,5,106,107,255,255,255,255,255,255,255,255,194,5,175,240,5,5,110,107,5,5,112,107,5,5,114,107,5,5,56,108,5,5,58,108,5,5,60,108,5,5,62,108,5,5,64,108,5,5,66,108,5,5,68,108,5,5,70,108,5,5,72,108,255,255,255,255,5,5,74,108,5,5,76,108,5,5,78,108,5,5,80,108,5,5,82,108,5,5,84,108,5,5,88,108,255,255,255,255,5,5,90,108,5,5,92,108,255,255,255,255,5,5,94,108,5,5,98,108,5,5,100,108,5,5,102,108,5,5,104,108,255,255,255,255,255,255,255,255,194,5,175,240,5,5,106,108,5,5,108,108,5,5,110,108,5,5,60,111,5,5,62,111,5,5,64,111,5,5,66,111,5,5,68,111,5,5,70,111,5,5,72,111,5,5,74,111,5,5,76,111,255,255,255,255,5,5,78,111,5,5,80,111,5,5,82,111,5,5,84,111,5,5,86,111,5,5,88,111,5,5,90,111,5,5,92,111,5,5,94,111,5,5,106,111,255,255,255,255,5,5,96,111,5,5,98,111,5,5,100,111,5,5,102,111,5,5,104,111,255,255,255,255,255,255,255,255,194,5,175,240,5,5,110,111,5,5,118,111,201,0,14,0,193,212,40,118,193,219,40,118,193,226,40,118,193,240,40,118,193,247,40,118,193,254,40,118,193,7,41,118,193,14,41,118,193,28,41,118,193,35,41,118,193,42,41,118,193,49,41,118,193,56,41,118,193,63,41,118,193,70,41,118,193,77,41,118,193,91,41,118,193,98,41,118,193,105,41,118,193,126,41,118,194,5,175,240,193,133,41,118,193,140,41,118,193,147,41,118,193,154,41,118,193,161,41,118,201,192,69,1,193,175,41,118,201,160,70,1,193,189,41,118,201,128,71,1,201,96,72,1,193,2,63,117,193,9,63,117,193,16,63,117,193,23,63,117,193,30,63,117,193,37,63,117,194,5,175,240,5,5,65,117,32,5,65,117,5,5,67,117,5,5,69,117,32,5,69,117,5,5,71,117,32,5,71,117,5,5,73,117,32,5,73,117,193,2,75,117,193,9,75,117,193,16,75,117,193,23,75,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,142,118,11,193,149,118,11,193,156,118,11,193,163,118,11,193,14,7,117,193,21,7,117,193,28,7,117,193,35,7,117,193,219,6,117,193,233,6,117,193,49,7,117,193,56,7,117,193,63,7,117,193,70,7,117,193,77,7,117,193,84,7,117,193,91,7,117,193,98,7,117,193,105,7,117,193,112,7,117,193,119,7,117,193,126,7,117,193,133,7,117,193,140,7,117,193,147,7,117,193,154,7,117,193,42,7,117,194,5,175,240,255,255,255,255,255,255,255,255,255,255,255,255,193,16,36,9,193,23,36,9,193,128,102,11,193,135,102,11,193,142,102,11,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,5,5,45,118,32,5,45,118,193,9,47,118,193,16,47,118,193,23,47,118,193,30,47,118,193,37,47,118,193,44,47,118,194,5,175,240,5,5,49,118,32,5,49,118,193,9,51,118,193,16,51,118,193,23,51,118,193,30,51,118,193,44,51,118,193,51,51,118,193,2,51,118,193,37,51,118,193,28,43,118,193,2,47,118,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,193,240,168,113,193,247,168,113,193,254,168,113,194,5,175,240,193,233,122,11,193,240,122,11,193,233,168,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,231,171,113,193,105,171,113,193,112,171,113,193,119,171,113,193,9,170,113,193,149,52,9,193,156,52,9,193,254,122,11,193,219,61,9,194,5,53,241,194,5,175,240,194,5,129,242,194,5,162,242,193,247,122,11,193,203,171,113,194,5,208,240,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,16,170,113,193,7,123,11,193,126,171,113,193,14,123,11,193,226,61,9,193,233,61,9,193,84,175,113,193,91,175,113,193,98,175,113,193,105,175,113,193,112,175,113,193,119,175,113,193,126,175,113,193,133,175,113,193,140,175,113,194,5,175,240,193,147,175,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,255,255,255,255,193,254,178,113,193,7,179,113,193,14,179,113,193,21,179,113,193,28,179,113,193,35,179,113,193,42,179,113,255,255,255,255,193,49,179,113,193,56,179,113,255,255,255,255,193,63,179,113,193,70,179,113,193,77,179,113,193,84,179,113,193,91,179,113,255,255,255,255,194,5,175,240,194,5,175,240,193,98,179,113,193,119,179,113,193,126,179,113,193,252,181,113,193,5,182,113,193,12,182,113,194,5,208,240,194,5,241,240,194,5,20,241,194,5,175,240,193,140,181,113,193,161,181,113,193,9,180,113,193,16,180,113,193,177,52,9,193,184,52,9,193,49,123,11,193,63,123,11,193,70,123,11,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,56,123,11,193,77,123,11,255,255,255,255,193,84,123,11,194,5,53,241,193,168,181,113,194,5,241,240,194,5,20,241,193,217,184,113,194,5,175,240,193,98,184,113,193,105,184,113,193,91,123,11,193,9,183,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,175,240,193,98,123,11,193,191,52,9,193,198,52,9,193,105,123,11,193,112,123,11,193,119,123,11,193,126,123,11,193,133,123,11,193,140,123,11,193,147,123,11,193,154,123,11,193,161,123,11,193,168,123,11,193,175,123,11,193,182,123,11,193,189,123,11,193,196,123,11,193,203,123,11,193,210,123,11,193,217,123,11,193,224,123,11,193,231,123,11,193,238,123,11,5,112,187,113,5,120,187,113,5,112,189,113,5,112,191,113,5,112,196,113,5,112,198,113,255,255,255,255,255,255,255,255,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,193,86,203,113,193,79,203,113,193,93,203,113,193,56,204,113,194,5,241,240,194,5,20,241,193,63,204,113,193,70,204,113,193,77,204,113,193,84,204,113,193,91,204,113,193,98,204,113,193,105,204,113,193,112,204,113,193,119,204,113,193,126,204,113,194,5,175,240,193,114,203,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,194,5,241,240,194,5,20,241,193,140,210,113,194,5,175,240,193,252,123,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,240,205,113,193,254,205,113,193,14,206,113,194,5,175,240,193,233,52,9,193,5,124,11,193,254,61,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,5,5,200,116,5,5,202,116,5,5,204,116,5,5,206,116,193,2,208,116,193,9,208,116,193,16,208,116,193,23,208,116,193,16,198,116,194,5,175,240,193,107,208,116,194,5,208,240,194,5,208,240,194,5,208,240,194,5,241,240,194,5,20,241,32,5,202,116,32,5,200,116,46,5,202,116,32,5,204,116,32,5,206,116,193,2,102,11,194,5,241,240,194,5,20,241,194,5,175,240,194,5,208,240,193,142,228,113,193,149,228,113,32,5,226,113,46,5,226,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,208,240,194,5,208,240,194,5,241,240,194,5,20,241,5,5,12,104,5,5,14,104,5,5,16,104,5,5,28,104,5,5,30,104,5,5,32,104,5,5,34,104,5,5,36,104,5,5,40,104,5,5,44,104,5,5,46,104,5,5,48,104,5,5,50,104,5,5,54,104,5,5,56,104,5,5,58,104,5,5,60,104,5,5,62,104,5,5,64,104,5,5,66,104,5,5,70,104,5,5,72,104,5,5,74,104,5,5,76,104,5,5,78,104,5,5,84,104,5,5,86,104,5,5,88,104,5,5,6,105,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,8,105,5,5,10,105,5,5,12,105,5,5,14,105,5,5,16,105,5,5,18,105,5,5,20,105,5,5,24,105,255,255,255,255,255,255,255,255,5,5,28,105,5,5,30,105,255,255,255,255,255,255,255,255,5,5,32,105,5,5,34,105,5,5,36,105,5,5,38,105,5,5,40,105,5,5,42,105,5,5,44,105,5,5,46,105,5,5,48,105,5,5,50,105,5,5,52,105,5,5,54,105,5,5,56,105,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,16,106,5,5,18,106,5,5,26,106,5,5,28,106,5,5,10,106,5,5,12,106,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,30,106,5,5,20,106,255,255,255,255,255,255,255,255,5,5,14,106,5,5,22,106,5,5,38,106,5,5,40,106,5,5,42,106,5,5,44,106,5,5,46,106,5,5,48,106,5,5,50,106,5,5,52,106,5,5,54,106,5,5,56,106,5,5,58,106,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,8,107,5,5,10,107,5,5,12,107,5,5,14,107,5,5,16,107,5,5,18,107,5,5,20,107,5,5,24,107,5,5,28,107,255,255,255,255,5,5,30,107,5,5,32,107,5,5,34,107,255,255,255,255,5,5,36,107,5,5,38,107,5,5,40,107,5,5,42,107,5,5,44,107,5,5,46,107,5,5,48,107,5,5,50,107,5,5,52,107,5,5,54,107,5,5,58,107,5,5,60,107,5,5,62,107,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,6,108,5,5,8,108,5,5,10,108,5,5,12,108,5,5,14,108,5,5,16,108,5,5,18,108,5,5,22,108,255,255,255,255,255,255,255,255,5,5,26,108,5,5,28,108,255,255,255,255,255,255,255,255,5,5,30,108,5,5,32,108,5,5,34,108,5,5,36,108,5,5,38,108,5,5,40,108,5,5,42,108,5,5,44,108,5,5,46,108,5,5,48,108,5,5,50,108,5,5,52,108,5,5,54,108,194,5,208,240,194,5,208,240,194,5,241,240,194,5,20,241,194,5,241,240,5,5,6,110,5,5,8,110,5,5,10,110,5,5,12,110,5,5,14,110,5,5,16,110,5,5,18,110,5,5,22,110,255,255,255,255,5,5,26,110,5,5,28,110,5,5,30,110,255,255,255,255,5,5,32,110,5,5,34,110,5,5,36,110,5,5,38,110,5,5,40,110,5,5,42,110,5,5,44,110,5,5,46,110,5,5,48,110,5,5,52,110,5,5,54,110,5,5,58,110,5,5,60,110,5,5,62,110,5,5,116,111,194,5,208,240,194,5,241,240,194,5,20,241,5,5,46,11,5,5,6,111,5,5,8,111,5,5,10,111,5,5,12,111,5,5,14,111,5,5,16,111,5,5,18,111,5,5,22,111,255,255,255,255,5,5,26,111,5,5,28,111,5,5,30,111,255,255,255,255,5,5,32,111,5,5,34,111,5,5,36,111,5,5,38,111,5,5,40,111,5,5,42,111,5,5,44,111,5,5,46,111,5,5,48,111,5,5,50,111,5,5,52,111,5,5,54,111,5,5,56,111,5,5,58,111,194,5,241,240,194,5,208,240,194,5,241,240,194,5,20,241,5,5,118,112,5,5,6,112,5,5,8,112,5,5,10,112,5,5,12,112,5,5,16,112,5,5,18,112,5,5,20,112,5,5,24,112,255,255,255,255,5,5,28,112,5,5,30,112,5,5,32,112,255,255,255,255,5,5,34,112,5,5,36,112,5,5,38,112,5,5,40,112,5,5,42,112,5,5,44,112,5,5,46,112,5,5,48,112,5,5,50,112,5,5,52,112,5,5,54,112,5,5,56,112,5,5,58,112,5,5,60,112,255,255,255,255,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,5,5,6,113,5,5,8,113,5,5,10,113,5,5,12,113,5,5,14,113,5,5,16,113,5,5,18,113,5,5,20,113,5,5,22,113,5,5,24,113,5,5,26,113,5,5,28,113,5,5,30,113,5,5,32,113,5,5,34,113,5,5,36,113,5,5,38,113,5,5,40,113,255,255,255,255,255,255,255,255,255,255,255,255,5,5,42,113,5,5,44,113,5,5,46,113,5,5,48,113,5,5,50,113,5,5,52,113,194,5,208,240,194,5,208,240,194,5,241,240,194,5,152,241,194,5,20,241,201,128,64,1,193,16,40,118,201,96,65,1,193,30,40,118,201,64,66,1,193,44,40,118,201,32,67,1,193,58,40,118,201,0,68,1,193,72,40,118,193,79,40,118,193,86,40,118,201,224,68,1,193,100,40,118,193,107,40,118,193,128,40,118,193,135,40,118,193,142,40,118,193,149,40,118,193,156,40,118,193,163,40,118,193,170,40,118,193,177,40,118,193,184,40,118,193,191,40,118,193,198,40,118,193,205,40,118,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,194,5,208,240,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,36,9,193,9,36,9,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,208,240,194,5,241,240,194,5,185,241,194,5,20,241,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,206,192,233,0,194,5,208,240,194,5,241,240,194,5,20,241,193,84,245,113,193,91,245,113,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,194,5,208,240,194,5,241,240,194,5,20,241,193,9,166,113,193,16,166,113,193,23,166,113,193,30,166,113,193,37,166,113,193,44,166,113,193,51,166,113,193,58,166,113,193,65,166,113,193,72,166,113,193,79,166,113,193,86,166,113,193,93,166,113,193,100,166,113,193,107,166,113,193,114,166,113,193,121,166,113,193,128,166,113,193,135,166,113,193,142,166,113,193,149,166,113,193,156,166,113,193,163,166,113,197,130,199,1,193,170,166,113,197,194,199,1,193,177,166,113,193,184,166,113,193,191,166,113,194,5,208,240,194,5,241,240,194,5,20,241,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,194,5,208,240,194,5,241,240,194,5,20,241,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,194,5,241,240,194,5,208,240,194,5,241,240,194,5,20,241,255,255,255,255,193,16,178,113,193,23,178,113,193,30,178,113,193,37,178,113,193,44,178,113,193,51,178,113,193,58,178,113,193,72,178,113,255,255,255,255,255,255,255,255,193,86,178,113,193,93,178,113,255,255,255,255,255,255,255,255,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,160,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,193,112,184,113,193,119,184,113,193,126,184,113,193,133,184,113,193,140,184,113,193,147,184,113,193,154,184,113,193,161,184,113,193,168,184,113,201,192,26,2,193,182,184,113,193,189,184,113,193,196,184,113,193,203,184,113,193,210,184,113,194,5,208,240,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,5,5,196,113,5,5,198,113,193,2,200,113,193,9,200,113,255,255,255,255,255,255,255,255,201,224,28,2,201,224,29,2,193,30,200,113,193,37,200,113,194,5,208,240,194,5,241,240,194,5,20,241,193,44,200,113,194,5,208,240,193,205,52,9,193,212,52,9,193,245,123,11,193,189,202,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,193,247,205,113,193,7,206,113,193,21,206,113,193,28,206,113,193,35,206,113,193,42,206,113,193,49,206,113,193,56,206,113,193,63,206,113,193,70,206,113,193,77,206,113,193,84,206,113,193,91,206,113,193,98,206,113,193,105,206,113,201,224,30,2,255,255,255,255,193,119,206,113,193,126,206,113,255,255,255,255,255,255,255,255,194,5,241,240,194,5,208,240,193,133,206,113,193,140,206,113,193,100,205,113,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,193,84,249,113,193,91,249,113,193,98,249,113,193,105,249,113,193,112,249,113,193,119,249,113,193,126,249,113,193,133,249,113,255,255,255,255,193,140,249,113,193,147,249,113,193,154,249,113,193,161,249,113,194,5,208,240,194,5,241,240,194,5,20,241,193,168,249,113,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,255,255,255,255,193,77,5,117,193,91,5,117,193,105,5,117,193,119,5,117,193,133,5,117,193,147,5,117,193,161,5,117,193,168,5,117,193,175,5,117,193,182,5,117,193,189,5,117,193,196,5,117,194,5,241,240,194,5,208,240,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,194,5,241,240,5,5,32,109,255,255,255,255,5,5,8,109,5,5,10,109,5,5,12,109,5,5,14,109,5,5,16,109,5,5,18,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,20,109,5,5,22,109,5,5,24,109,255,255,255,255,201,0,10,0,5,5,28,109,5,5,30,109,5,5,34,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,36,109,5,5,38,109,255,255,255,255,5,5,70,109,255,255,255,255,5,5,40,109,5,5,42,109,5,5,112,116,5,5,116,116,5,5,120,116,5,5,126,116,5,5,130,116,5,5,134,116,5,5,138,116,5,5,142,116,5,5,146,116,197,194,119,2,5,112,120,116,5,5,10,116,5,5,124,116,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,201,70,231,0,5,5,168,116,5,5,170,116,5,5,176,116,5,5,178,116,5,5,180,116,5,5,182,116,5,5,184,116,5,5,186,116,5,5,188,116,5,5,190,116,5,5,192,116,5,5,194,116,194,5,241,240,194,5,20,241,193,51,85,117,193,100,85,117,193,107,85,117,193,114,85,117,193,121,85,117,201,32,241,0,193,135,85,117,193,170,85,117,193,177,85,117,193,184,85,117,193,191,85,117,32,5,87,117,5,5,87,117,193,23,89,117,193,37,89,117,193,51,89,117,193,72,89,117,193,107,89,117,193,135,89,117,193,44,89,117,193,149,89,117,193,121,89,117,194,5,241,240,194,5,126,245,194,5,20,241,5,5,91,117,193,2,93,117,193,54,81,117,193,82,81,117,193,110,81,117,193,30,85,117,197,35,125,2,194,5,241,240,194,5,218,241,194,5,20,241,5,5,233,113,193,2,235,113,193,9,235,113,193,16,235,113,193,23,235,113,193,30,235,113,193,37,235,113,5,5,237,113,193,9,239,113,193,16,239,113,193,23,239,113,193,30,239,113,193,37,239,113,193,44,239,113,193,51,239,113,193,58,239,113,193,65,239,113,193,72,239,113,193,79,239,113,193,86,239,113,193,93,239,113,193,100,239,113,5,5,241,113,193,9,243,113,193,23,243,113,193,44,243,113,193,65,243,113,193,79,243,113,193,86,243,113,193,9,162,113,193,16,162,113,193,23,162,113,193,30,162,113,193,37,162,113,193,44,162,113,193,51,162,113,193,65,162,113,193,72,162,113,193,79,162,113,193,86,162,113,194,5,241,240,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,194,5,241,240,194,5,20,241,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,194,5,241,240,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,194,5,241,240,194,5,20,241,193,182,202,113,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,193,98,208,113,193,105,208,113,193,112,208,113,193,119,208,113,193,126,208,113,193,133,208,113,193,140,208,113,255,255,255,255,255,255,255,255,193,147,208,113,193,161,208,113,193,168,208,113,193,175,208,113,194,5,241,240,194,5,20,241,5,5,249,116,5,5,251,116,193,2,253,116,5,5,213,116,193,9,253,116,193,16,253,116,32,5,241,116,32,5,243,116,32,5,247,116,32,5,251,116,32,5,211,116,32,5,215,116,32,5,219,116,32,5,223,116,32,5,227,116,32,5,229,116,32,5,233,116,46,5,241,116,46,5,243,116,46,5,247,116,46,5,251,116,32,5,237,116,194,5,241,240,194,5,20,241,194,5,195,242,193,23,253,116,193,58,102,11,193,65,102,11,193,72,102,11,193,30,253,116,193,79,102,11,193,86,102,11,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,255,255,255,255,193,77,230,113,193,84,230,113,255,255,255,255,193,91,230,113,193,98,230,113,194,5,241,240,194,5,20,241,193,105,230,113,193,9,229,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,22,105,5,5,26,105,5,5,120,105,5,5,122,105,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,90,105,5,5,94,105,5,5,150,13,5,5,152,13,5,5,6,16,5,5,8,16,5,5,10,16,5,5,12,16,5,5,14,16,5,5,16,16,193,198,85,12,5,5,154,13,5,5,136,105,5,5,38,11,194,5,53,241,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,194,5,86,241,194,5,119,241,5,5,24,106,5,5,8,106,5,5,6,106,5,5,90,106,5,5,40,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,161,161,113,193,168,161,113,193,175,161,113,193,28,161,113,193,35,161,113,193,42,161,113,193,49,161,113,193,56,161,113,193,63,161,113,193,70,161,113,193,77,161,113,193,86,52,9,194,5,251,241,193,182,161,113,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,177,246,113,193,184,246,113,193,191,246,113,193,198,246,113,193,205,246,113,193,212,246,113,193,219,246,113,193,226,246,113,193,233,246,113,193,240,246,113,193,247,246,113,193,254,246,113,193,7,247,113,193,21,247,113,193,28,247,113,193,35,247,113,193,42,247,113,193,49,247,113,193,65,246,113,193,142,246,113,193,128,246,113,193,14,247,113,255,255,255,255,255,255,255,255,194,5,30,242,194,5,63,242,194,5,96,242,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,56,247,113,201,224,23,0,201,192,44,0,201,160,65,0,201,128,86,0,201,96,107,0,5,5,132,114,5,5,86,13,194,5,7,243,194,5,40,243,194,5,73,243,194,5,106,243,194,5,139,243,194,5,172,243,201,64,128,0,194,5,228,242,5,5,50,11,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,52,11,5,5,54,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,201,32,129,0,201,96,149,0,201,160,169,0,201,224,189,0,201,32,210,0,255,255,255,255,5,5,88,13,255,255,255,255,194,5,238,243,194,5,17,244,194,5,50,244,194,5,83,244,194,5,116,244,201,96,230,0,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,197,130,50,2,197,162,52,2,5,5,6,115,5,5,30,115,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,201,32,74,1,201,64,96,1,193,140,133,115,193,147,133,115,201,96,118,1,193,161,133,115,201,128,140,1,201,160,162,1,193,182,133,115,193,189,133,115,194,5,182,244,193,196,133,115,194,5,215,244,193,203,133,115,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,210,133,115,193,217,133,115,193,2,100,13,193,2,56,11,193,9,56,11,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,194,5,27,245,194,5,60,245,194,5,93,245,5,5,120,11,5,5,42,9,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,193,121,18,117,193,128,18,117,193,135,18,117,193,142,18,117,193,149,18,117,193,156,18,117,193,163,18,117,193,170,18,117,193,177,18,117,5,5,20,117,5,5,22,117,193,2,24,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,24,117,193,16,24,117,193,23,24,117,193,30,24,117,193,37,24,117,193,44,24,117,193,51,24,117,193,58,24,117,193,65,24,117,194,5,14,247,194,5,47,247,194,5,80,247,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,194,5,113,247,194,5,146,247,194,5,179,247,194,5,212,247,194,5,245,247,194,5,24,248,194,5,57,248,193,2,128,11,193,9,128,11,193,16,128,11,193,23,128,11,193,30,128,11,193,207,242,12,193,214,242,12,193,221,242,12,193,228,242,12,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,255,255,255,255,255,255,255,255,255,255,255,255,194,5,245,247,194,5,113,247,194,5,179,247,194,5,212,247,194,5,24,248,194,5,57,248,194,5,146,247,193,70,244,123,193,77,244,123,193,84,244,123,193,91,244,123,193,98,244,123,193,37,100,13,193,44,100,13,255,255,255,255,255,255,255,255,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,194,5,90,248,194,5,123,248,194,5,156,248,194,5,189,248,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,174,13,193,9,78,13,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,194,5,222,248,194,5,255,248,194,5,34,249,194,5,67,249,194,5,100,249,194,5,133,249,5,5,44,5,5,5,110,13,197,66,65,0,5,5,112,13,197,130,65,0,5,5,114,13,32,5,76,13,193,16,78,13,198,65,124,0,198,225,180,0,198,1,181,0,5,5,104,13,197,130,227,2,5,5,194,10,193,23,78,13,193,30,78,13,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,194,5,186,251,255,255,255,255,255,255,255,255,16,5,0,4,5,5,34,7,5,5,24,9,5,5,192,10,193,182,74,13,5,5,102,13,197,194,200,2,5,5,0,19,5,5,62,10,5,5,64,10,5,5,66,10,5,5,68,10,5,5,70,10,5,5,72,10,5,5,74,10,5,5,76,10,5,5,78,10,5,5,80,10,5,5,76,13,193,2,78,13,5,5,82,10,5,5,84,10,5,5,86,10,5,5,88,10,5,5,90,10,5,5,92,10,5,5,94,10,5,5,96,10,5,5,42,5,5,5,132,9,5,5,134,9,5,5,136,9,24,5,0,4,193,9,254,118,193,16,254,118,193,23,254,118,193,30,254,118,193,37,254,118,193,44,254,118,193,51,254,118,193,58,254,118,193,65,254,118,193,72,254,118,193,79,254,118,193,86,254,118,193,93,254,118,193,100,254,118,193,107,254,118,193,114,254,118,193,121,254,118,193,128,254,118,193,135,254,118,193,142,254,118,193,149,254,118,193,156,254,118,193,163,254,118,193,170,254,118,193,177,254,118,193,184,254,118,193,2,162,9,193,9,162,9,255,255,255,255,255,255,255,255,255,255,255,255,5,5,204,10,5,5,208,10,5,5,210,10,5,5,182,10,5,5,149,12,5,5,164,9,5,5,166,9,197,98,3,0,197,130,3,0,197,66,3,0,5,5,146,10,5,5,120,10,5,5,184,10,5,5,186,10,5,5,130,10,5,5,46,7,5,5,206,10,5,5,132,10,193,2,145,12,5,5,34,5,5,5,202,10,5,5,64,9,5,5,66,9,197,36,48,0,5,5,68,9,5,5,70,9,5,5,72,9,5,5,74,9,5,5,76,9,5,5,78,9,5,5,80,9,24,5,0,4,32,5,64,10,46,5,70,10,46,5,72,10,32,5,74,10,32,5,76,10,5,5,36,7,5,5,38,7,46,5,146,9,46,5,148,9,32,5,8,5,32,5,8,5,32,5,8,5,32,5,8,5,30,5,10,5,30,5,10,5,30,5,10,5,38,5,0,6,16,5,34,7,32,5,0,8,255,255,255,255,30,5,42,7,38,5,54,7,38,5,98,7,32,5,90,7,32,5,26,5,30,5,142,9,30,5,144,9,30,5,150,9,30,5,152,9,30,5,82,10,30,5,84,10,46,5,150,10,32,5,126,10,159,5,0,42,159,5,0,44,159,5,0,46,159,5,0,48,159,5,0,50,159,5,0,52,159,5,0,54,159,5,0,56,159,5,0,58,159,5,0,60,159,5,0,62,159,5,0,64,159,5,0,66,159,5,0,68,159,5,0,70,159,5,0,72,164,5,0,74,159,5,0,76,159,5,0,78,159,5,0,80,159,5,0,82,159,5,0,84,164,5,0,86,159,5,0,88,159,5,0,90,159,5,0,92,32,5,146,9,32,5,140,10,32,5,148,9,32,5,10,12,16,5,10,5,255,255,255,255,16,5,90,7,32,5,120,9,32,5,150,10,32,5,138,13,32,5,152,10,32,5,144,10,32,5,106,9,16,5,142,9,16,5,144,9,32,5,128,10,16,5,121,12,16,5,0,6,32,5,14,5,16,5,0,8,32,5,138,10,202,224,246,2,202,1,247,2,202,34,247,2,202,67,247,2,202,100,247,2,202,133,247,2,202,166,247,2,202,199,247,2,202,232,247,2,202,9,248,2,16,5,54,7,16,5,42,7,32,5,129,12,16,5,131,12,32,5,133,12,16,5,98,7,193,2,18,5,193,9,234,118,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,5,5,42,10,5,5,44,10,5,5,46,10,5,5,48,10,5,5,50,10,5,5,52,10,5,5,54,10,5,5,56,10,5,5,58,10,5,5,60,10,5,5,82,9,5,5,84,9,5,5,86,9,5,5,88,9,5,5,102,7,193,9,224,97,5,5,18,9,5,5,28,9,5,5,8,7,5,5,30,9,5,5,6,7,5,5,48,7,5,5,168,10,5,5,170,10,5,5,172,10,5,5,116,10,5,5,30,5,5,5,32,5,5,5,20,9,5,5,90,9,5,5,104,10,5,5,124,10,5,5,40,5,5,5,10,7,5,5,130,9,5,5,36,5,5,5,250,10,5,5,252,10,5,5,254,10,5,5,2,11,5,5,4,11,5,5,52,7,5,5,142,10,5,5,174,10,5,5,12,7,5,5,122,10,5,5,14,7,5,5,16,7,193,56,202,12,193,63,202,12,5,5,148,10,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,212,10,5,5,214,10,5,5,22,10,5,5,24,10,5,5,26,10,5,5,28,10,5,5,216,10,5,5,218,10,5,5,220,10,5,5,30,10,5,5,32,10,5,5,222,10,5,5,34,10,5,5,36,10,5,5,224,10,5,5,226,10,5,5,228,10,5,5,230,10,5,5,232,10,5,5,234,10,5,5,236,10,5,5,238,10,5,5,240,10,5,5,38,5,5,5,116,7,5,5,94,9,5,5,242,10,5,5,244,10,5,5,38,10,5,5,40,10,5,5,246,10,5,5,248,10,5,5,46,5,16,5,6,122,158,5,6,122,16,5,8,122,158,5,8,122,16,5,10,122,158,5,10,122,16,5,14,122,158,5,14,122,16,5,16,122,158,5,16,122,152,5,18,122,197,162,185,2,144,5,20,122,197,130,188,2,152,5,22,122,197,162,193,2,152,5,24,122,197,34,196,2,144,5,26,122,197,2,197,2,144,5,28,122,197,226,198,2,152,5,30,122,197,130,200,2,152,5,32,122,197,226,201,2,144,5,34,122,197,98,202,2,144,5,36,122,197,162,203,2,144,5,38,122,152,5,72,122,144,5,74,122,144,5,76,122,16,5,78,122,158,5,78,122,16,5,80,122,158,5,80,122,16,5,82,122,156,5,82,122,152,5,84,122,151,5,86,122,152,5,88,122,152,5,90,122,152,5,92,122,16,5,94,122,152,5,94,122,158,5,96,122,158,5,98,122,155,5,100,122,155,5,102,122,197,194,182,2,16,5,18,122,16,5,24,122,197,2,236,2,197,66,236,2,197,130,236,2,197,194,236,2,5,5,48,5,5,5,118,13,5,5,120,13,197,2,66,0,197,2,198,2,32,5,186,9,160,5,24,9,160,5,70,10,160,5,72,10,158,5,34,7,160,5,48,5,166,5,100,122,23,5,6,122,23,5,8,122,23,5,10,122,23,5,14,122,23,5,16,122,23,5,78,122,23,5,80,122,22,5,82,122,23,5,42,122,160,5,118,13,165,5,6,122,165,5,8,122,165,5,10,122,165,5,14,122,165,5,16,122,160,5,18,122,155,5,20,122,160,5,22,122,160,5,24,122,152,5,26,122,155,5,28,122,160,5,30,122,160,5,32,122,155,5,34,122,155,5,36,122,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,193,247,151,123,193,233,151,123,193,254,151,123,193,240,151,123,193,14,152,123,193,21,152,123,193,28,152,123,193,35,152,123,193,42,152,123,193,49,152,123,193,56,152,123,193,63,152,123,193,70,152,123,193,77,152,123,193,9,151,123,193,16,151,123,193,23,151,123,193,30,151,123,193,44,151,123,193,37,151,123,193,9,32,7,193,2,22,9,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,5,5,72,120,5,5,74,120,193,16,32,7,193,9,22,9,193,23,112,7,32,5,26,120,32,5,38,120,32,5,50,120,197,66,171,2,197,130,171,2,197,194,171,2,197,2,172,2,197,66,172,2,197,130,172,2,197,194,172,2,197,2,173,2,197,66,173,2,197,130,173,2,197,194,173,2,197,2,174,2,197,66,174,2,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,193,114,172,17,193,121,172,17,193,128,172,17,193,135,172,17,193,142,172,17,193,149,172,17,193,156,172,17,193,163,172,17,193,170,172,17,193,177,172,17,5,112,0,21,5,112,0,23,5,112,0,25,193,30,32,7,193,30,22,9,193,44,128,11,193,51,128,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,197,163,2,0,197,226,54,0,197,35,55,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,5,5,57,9,5,5,62,7,5,5,12,9,5,5,64,7,5,5,66,7,5,5,68,7,5,5,70,7,5,5,110,7,5,5,59,9,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,122,16,5,5,124,16,5,5,126,16,5,5,128,16,5,5,130,16,5,5,132,16,5,5,134,16,5,5,136,16,5,5,138,16,5,5,140,16,5,5,142,16,255,255,255,255,255,255,255,255,255,255,255,255,193,210,41,118,193,217,41,118,201,64,73,1,193,231,41,118,193,238,41,118,193,114,40,118,193,121,40,118,193,233,40,118,193,21,41,118,193,84,41,118,193,112,41,118,193,119,41,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,16,61,9,193,23,61,9,193,16,16,9,193,2,80,7,193,30,52,9,193,37,52,9,193,58,51,118,193,30,61,9,193,37,61,9,193,44,61,9,193,51,61,9,193,58,61,9,193,65,61,9,193,9,80,7,193,44,52,9,193,51,52,9,193,72,61,9,193,79,61,9,193,86,61,9,193,93,61,9,255,255,255,255,5,5,94,13,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,2,122,11,193,9,122,11,193,58,56,119,193,86,56,119,193,93,56,119,193,65,56,119,193,79,56,119,193,100,56,119,5,5,58,119,5,112,58,119,5,120,58,119,5,112,20,119,5,115,40,119,5,5,82,7,5,5,84,7,5,5,86,7,197,194,170,2,197,2,171,2,197,130,170,2,193,2,18,119,5,5,42,119,193,16,56,119,193,2,14,119,5,5,28,119,193,9,48,119,193,30,56,119,193,44,56,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,3,88,12,255,255,255,255,255,255,255,255,255,255,255,255,193,9,96,7,193,2,112,7,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,193,205,160,113,193,212,160,113,193,219,160,113,193,226,160,113,193,233,160,113,193,240,160,113,193,247,160,113,193,254,160,113,193,7,161,113,193,14,161,113,193,21,161,113,193,84,161,113,193,91,161,113,193,98,161,113,193,105,161,113,193,112,161,113,193,79,52,9,193,37,112,7,193,9,160,113,193,9,100,13,193,16,100,13,193,119,161,113,193,189,161,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,212,61,9,193,135,52,9,193,142,52,9,193,44,112,7,193,14,97,117,193,105,97,117,193,112,97,117,193,240,96,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,32,237,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,193,250,87,12,193,9,16,9,193,129,244,118,193,248,244,118,193,57,245,118,193,64,245,118,193,71,245,118,193,78,245,118,193,85,245,118,193,92,245,118,193,87,251,118,193,94,251,118,193,101,251,118,193,108,251,118,193,115,251,118,193,122,251,118,193,129,251,118,193,136,251,118,193,143,251,118,5,5,38,104,5,5,42,104,5,5,182,104,5,5,184,104,5,5,32,9,5,5,34,9,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,28,11,5,5,84,13,5,5,10,104,5,5,18,104,5,5,20,104,5,5,22,104,5,5,24,104,5,5,26,104,5,5,92,104,5,5,80,104,5,5,126,104,5,5,68,104,5,5,82,104,5,5,146,104,5,5,96,104,5,5,118,104,193,91,9,117,193,98,9,117,193,49,9,117,193,56,9,117,193,63,9,117,193,70,9,117,193,105,9,117,193,177,8,117,193,212,8,117,193,65,8,117,193,72,8,117,193,79,8,117,193,86,8,117,193,219,8,117,193,7,9,117,193,28,9,117,193,35,9,117,193,233,8,117,193,240,8,117,193,112,9,117,193,128,118,11,193,135,118,11,193,30,36,9,193,37,36,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,26,117,193,16,26,117,193,23,26,117,193,30,26,117,193,37,26,117,193,44,26,117,193,51,26,117,193,58,26,117,193,65,26,117,193,72,26,117,193,79,26,117,193,86,26,117,193,93,26,117,193,100,26,117,193,107,26,117,193,114,26,117,193,121,26,117,193,128,26,117,193,135,26,117,193,142,26,117,193,149,26,117,5,5,38,9,5,5,40,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,44,9,5,5,46,9,5,5,104,11,5,5,106,11,5,5,108,11,5,5,110,11,193,131,81,117,193,138,81,117,193,142,85,117,193,149,85,117,193,156,85,117,193,163,85,117,193,79,89,117,193,86,89,117,193,93,89,117,193,100,89,117,193,93,79,117,193,191,79,117,193,65,85,117,193,72,85,117,193,189,80,117,193,40,81,117,193,140,39,118,193,147,39,118,193,154,39,118,193,161,39,118,193,168,39,118,193,175,39,118,193,182,39,118,193,189,39,118,193,196,39,118,193,203,39,118,193,210,39,118,193,217,39,118,193,224,39,118,193,231,39,118,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,193,16,122,11,193,58,52,9,193,65,52,9,193,72,52,9,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,168,147,17,193,175,147,17,193,182,147,17,193,189,147,17,193,196,147,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,65,122,11,193,72,122,11,193,79,122,11,193,86,122,11,193,93,122,11,193,100,122,11,193,93,52,9,193,100,52,9,193,107,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,193,107,52,9,193,114,52,9,193,30,122,11,193,37,122,11,193,44,122,11,193,51,122,11,193,58,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,193,23,223,113,193,30,223,113,193,37,223,113,193,44,223,113,193,51,223,113,193,58,223,113,193,65,223,113,193,72,223,113,193,79,223,113,193,86,223,113,193,93,223,113,193,100,223,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,77,147,17,193,84,147,17,193,219,52,9,193,226,52,9,193,247,61,9,193,45,88,12,193,77,249,113,193,240,52,9,193,247,52,9,193,114,122,11,193,121,122,11,193,128,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,254,52,9,193,7,53,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,193,14,53,9,193,21,53,9,5,5,78,99,5,5,82,99,5,5,86,99,5,5,94,99,5,5,98,99,5,5,102,99,5,5,106,99,5,5,110,99,5,5,114,99,5,5,118,99,5,5,122,99,5,5,126,99,5,5,130,99,5,5,134,99,5,5,138,99,5,5,146,99,5,5,150,99,5,5,34,99,5,5,62,99,5,5,90,99,5,5,142,99,5,5,154,99,5,5,158,99,5,5,160,99,5,5,164,99,5,5,166,99,5,5,168,99,5,5,55,9,46,5,58,99,5,5,170,99,5,5,174,99,5,5,176,99,193,9,29,117,193,16,29,117,193,23,29,117,193,30,29,117,193,37,29,117,193,44,29,117,193,51,29,117,193,58,29,117,193,65,29,117,193,72,29,117,193,79,29,117,193,86,29,117,193,93,29,117,193,100,29,117,193,107,29,117,193,114,29,117,193,121,29,117,193,128,29,117,193,135,29,117,193,142,29,117,193,149,29,117,193,156,29,117,193,163,29,117,193,170,29,117,193,177,29,117,193,184,29,117,193,191,29,117,193,198,29,117,255,255,255,255,255,255,255,255,193,2,61,9,193,9,61,9,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,206,160,233,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,107,61,9,193,9,158,124,193,16,158,124,193,23,158,124,193,30,158,124,193,37,158,124,193,44,158,124,193,51,158,124,193,58,158,124,193,65,158,124,193,72,158,124,193,79,158,124,193,86,158,124,193,93,158,124,193,100,158,124,193,107,158,124,193,114,158,124,193,121,158,124,193,128,158,124,193,135,158,124,193,142,158,124,193,149,158,124,193,156,158,124,255,255,255,255,193,114,61,9,5,5,0,21,5,5,0,23,5,5,0,25,193,121,146,17,193,128,146,17,193,135,146,17,193,142,146,17,193,149,146,17,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,5,5,122,124,5,112,122,124,193,2,124,124,193,9,124,124,193,16,124,124,193,23,124,124,193,30,124,124,193,37,124,124,193,44,124,124,255,255,255,255,255,255,255,255,255,255,255,255,193,135,122,11,193,121,61,9,193,128,61,9,193,135,61,9,193,142,61,9,193,149,61,9,193,156,61,9,193,219,176,113,193,226,176,113,193,233,176,113,193,240,176,113,193,247,176,113,193,37,176,113,193,44,176,113,193,254,176,113,193,7,177,113,193,240,61,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,206,128,237,0,193,9,30,117,193,16,30,117,193,23,30,117,193,30,30,117,193,37,30,117,193,44,30,117,193,51,30,117,193,58,30,117,193,65,30,117,193,72,30,117,193,79,30,117,193,86,30,117,193,93,30,117,193,100,30,117,193,107,30,117,193,114,30,117,193,121,30,117,193,128,30,117,193,135,30,117,193,142,30,117,193,149,30,117,193,156,30,117,193,163,30,117,193,7,62,9,193,14,62,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,250,123,193,16,250,123,193,23,250,123,193,30,250,123,193,37,250,123,193,44,250,123,193,51,250,123,193,58,250,123,193,65,250,123,193,72,250,123,193,79,250,123,193,86,250,123,193,93,250,123,193,100,250,123,193,107,250,123,193,114,250,123,193,121,250,123,193,128,250,123,193,135,250,123,193,142,250,123,193,149,250,123,193,156,250,123,193,163,250,123,193,170,250,123,193,177,250,123,193,184,250,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,96,9,5,5,98,9,5,5,100,9,5,5,102,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,202,16,5,5,204,16,5,5,206,16,5,5,208,16,5,5,210,16,5,5,212,16,5,5,214,16,5,5,216,16,5,5,218,16,5,5,220,16,5,5,222,16,5,5,224,16,5,5,226,16,5,5,228,16,5,5,230,16,5,5,232,16,193,9,204,124,193,16,204,124,193,23,204,124,193,30,204,124,193,37,204,124,193,44,204,124,193,51,204,124,193,58,204,124,193,65,204,124,193,72,204,124,193,79,204,124,193,86,204,124,193,93,204,124,193,100,204,124,193,107,204,124,193,114,204,124,193,121,204,124,193,128,204,124,193,135,204,124,193,142,204,124,193,149,204,124,193,156,204,124,193,163,204,124,193,170,204,124,193,177,204,124,193,184,204,124,193,191,204,124,193,198,204,124,193,205,204,124,193,212,204,124,255,255,255,255,193,2,104,9,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,7,206,124,193,14,206,124,193,21,206,124,193,28,206,124,193,35,206,124,193,42,206,124,193,49,206,124,193,56,206,124,193,9,104,9,5,5,0,21,5,5,0,23,193,2,146,17,193,9,146,17,193,16,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,50,101,193,16,50,101,193,23,50,101,193,30,50,101,193,37,50,101,193,44,50,101,193,51,50,101,193,58,50,101,193,65,50,101,193,72,50,101,193,79,50,101,193,86,50,101,193,93,50,101,193,100,50,101,193,107,50,101,193,114,50,101,193,121,50,101,193,128,50,101,193,135,50,101,193,142,50,101,193,149,50,101,193,156,50,101,5,5,0,21,193,100,146,17,193,107,146,17,193,114,146,17,5,5,0,23,5,5,0,25,255,255,255,255,255,255,255,255,255,255,255,255,193,16,104,9,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,255,255,255,255,193,23,104,9,193,30,104,9,193,37,104,9,193,44,104,9,193,51,104,9,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,41,5,0,19,41,5,0,21,41,5,0,23,41,5,0,25,41,5,0,27,41,5,0,29,41,5,0,31,41,5,0,33,41,5,0,35,46,5,0,37,48,5,121,12,46,5,143,12,48,5,131,12,44,5,142,9,44,5,144,9,255,255,255,255,46,5,0,42,46,5,0,50,46,5,0,70,46,5,0,88,49,5,24,51,46,5,0,56,46,5,0,62,46,5,0,64,46,5,0,66,46,5,0,68,46,5,0,72,46,5,0,78,46,5,0,80,255,255,255,255,255,255,255,255,255,255,255,255,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,197,2,72,0,197,162,72,0,197,194,73,0,197,98,74,0,197,2,75,0,197,162,75,0,197,66,76,0,197,226,76,0,197,130,77,0,197,34,79,0,197,3,5,0,197,99,10,0,197,67,11,0,197,163,11,0,197,3,12,0,197,99,12,0,197,195,12,0,197,35,13,0,197,131,13,0,197,100,5,0,197,228,5,0,197,100,6,0,197,228,6,0,197,100,7,0,197,228,7,0,197,100,8,0,197,228,8,0,197,100,9,0,197,228,9,0,197,196,10,0,197,98,67,0,197,2,73,0,197,34,74,0,197,194,74,0,197,98,75,0,197,2,76,0,197,162,76,0,197,66,77,0,197,226,77,0,197,163,71,0,197,67,72,0,197,227,72,0,197,3,74,0,197,163,74,0,197,67,75,0,197,227,75,0,197,131,76,0,197,35,77,0,197,195,77,0,197,99,79,0,197,227,13,0,197,163,14,0,197,99,15,0,197,35,16,0,197,130,66,0,197,66,66,0,197,34,67,0,197,34,78,0,197,162,83,0,197,130,87,0,197,98,90,0,197,2,92,0,197,226,92,0,197,34,94,0,197,226,94,0,31,5,0,19,31,5,0,19,193,168,11,13,193,175,11,13,193,182,11,13,197,67,14,0,197,3,15,0,197,195,15,0,197,131,16,0,197,67,17,0,197,3,18,0,197,195,18,0,197,131,19,0,197,67,20,0,197,3,21,0,197,195,21,0,197,131,22,0,197,67,23,0,197,3,24,0,197,195,24,0,197,131,25,0,197,227,16,0,197,163,17,0,197,99,18,0,197,35,19,0,197,227,19,0,197,163,20,0,197,99,21,0,197,35,22,0,197,227,22,0,197,163,23,0,197,99,24,0,197,35,25,0,197,227,25,0,197,163,26,0,197,99,27,0,197,35,28,0,197,227,28,0,197,163,29,0,197,99,30,0,197,35,31,0,197,227,31,0,197,163,32,0,168,5,0,42,168,5,0,44,168,5,0,46,168,5,0,48,168,5,0,50,168,5,0,52,168,5,0,54,168,5,0,56,168,5,0,58,168,5,0,60,197,67,26,0,197,3,27,0,197,195,27,0,197,131,28,0,197,67,29,0,197,3,30,0,197,195,30,0,197,131,31,0,197,67,32,0,197,3,33,0,197,195,47,0,168,5,0,46,168,5,0,76,197,226,116,0,197,98,210,0,5,5,93,12,180,5,0,42,177,5,0,44,177,5,0,46,177,5,0,48,180,5,0,50,177,5,0,52,177,5,0,54,180,5,0,56,180,5,0,58,177,5,0,60,180,5,0,62,180,5,0,64,180,5,0,66,180,5,0,68,180,5,0,70,180,5,0,72,197,99,33,0,197,67,34,0,197,35,35,0,197,3,36,0,197,227,36,0,197,195,37,0,197,163,38,0,197,131,39,0,197,3,42,0,197,99,43,0,197,67,44,0,197,35,45,0,197,3,46,0,197,227,46,0,197,196,33,0,197,164,34,0,197,132,35,0,197,100,36,0,197,68,37,0,197,36,38,0,197,4,39,0,197,228,39,0,197,100,42,0,197,196,43,0,197,164,44,0,197,132,45,0,197,100,46,0,197,68,47,0,197,228,42,0,197,103,40,0,197,70,41,0,255,255,255,255,198,163,119,0,198,35,121,0,198,99,120,0,198,163,125,0,198,131,121,0,198,99,123,0,198,3,120,0,198,3,123,0,198,195,120,0,198,35,124,0,198,35,127,0,198,3,129,0,198,163,128,0,198,227,127,0,198,195,132,0,198,3,126,0,198,195,126,0,198,67,128,0,198,131,127,0,198,35,130,0,198,227,124,0,198,99,129,0,198,3,132,0,198,131,130,0,198,195,123,0,198,227,121,0,198,67,125,0,198,99,126,0,198,195,129,0,198,67,122,0,198,99,132,0,198,131,124,0,198,227,130,0,198,163,122,0,198,67,131,0,198,163,131,0,198,97,183,0,198,97,189,0,198,1,193,0,198,193,205,0,197,98,71,0,197,34,79,0,197,2,85,0,197,34,88,0,197,194,91,0,197,66,92,0,197,226,93,0,197,98,94,0,197,131,183,0,197,194,79,0,197,2,80,0,197,194,80,0,197,2,81,0,197,66,81,0,197,130,81,0,197,194,81,0,197,2,82,0,197,66,82,0,197,2,85,0,197,66,85,0,197,226,80,0,197,130,85,0,197,194,85,0,197,2,86,0,32,5,4,12,16,5,0,42,16,5,0,44,16,5,0,46,16,5,0,48,16,5,0,50,16,5,0,52,16,5,0,54,16,5,0,56,16,5,0,58,16,5,0,60,16,5,0,62,16,5,0,64,16,5,0,66,16,5,0,68,16,5,0,70,16,5,0,72,16,5,0,74,16,5,0,76,16,5,0,78,16,5,0,80,16,5,0,82,16,5,0,84,16,5,0,86,16,5,0,88,16,5,0,90,16,5,0,92,16,5,150,9,32,5,137,12,16,5,152,9,32,5,141,12,32,5,184,9,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,5,5,168,9,5,5,170,9,5,5,172,9,5,5,174,9,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,5,5,176,9,5,5,178,9,193,27,213,12,193,34,213,12,206,160,230,0,206,160,230,0,206,160,230,0,5,5,180,9,5,5,182,9,5,5,184,9,5,5,186,9,5,5,188,9,5,5,190,9,5,5,192,9,5,5,194,9,5,5,196,9,5,5,198,9,5,5,200,9,5,5,202,9,5,5,204,9,5,5,206,9,5,5,208,9,5,5,210,9,5,5,212,9,5,5,214,9,5,5,216,9,5,5,218,9,5,5,220,9,5,5,222,9,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,5,5,224,9,5,5,226,9,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,206,96,230,0,5,5,228,9,5,5,230,9,5,5,232,9,5,5,234,9,5,5,236,9,5,5,238,9,5,5,240,9,5,5,242,9,5,5,244,9,5,5,246,9,193,111,206,12,193,118,206,12,193,125,206,12,193,132,206,12,193,139,206,12,193,146,206,12,193,153,206,12,193,160,206,12,193,167,206,12,193,174,206,12,193,181,206,12,193,188,206,12,193,195,206,12,193,202,206,12,193,209,206,12,193,216,206,12,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,5,5,248,9,5,5,250,9,5,5,252,9,5,5,254,9,5,5,2,10,5,5,4,10,5,5,6,10,5,5,8,10,5,5,10,10,5,5,12,10,5,5,14,10,5,5,16,10,5,5,18,10,5,5,20,10,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,206,0,229,0,5,5,62,10,5,5,64,10,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,198,99,135,0,198,35,133,0,198,131,133,0,198,67,134,0,198,195,135,0,198,163,134,0,198,35,136,0,198,227,133,0,198,3,135,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,225,190,0,198,161,182,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,34,73,1,197,226,123,1,197,98,124,1,197,226,128,1,197,98,129,1,197,66,108,1,197,162,109,1,197,194,111,1,197,66,113,1,197,66,112,1,197,34,103,1,197,162,118,1,197,226,127,1,197,194,107,1,197,34,109,1,197,66,111,1,197,194,112,1,197,66,106,1,197,66,115,1,197,98,130,1,197,66,99,1,197,194,100,1,197,226,101,1,197,2,108,1,197,98,109,1,197,130,111,1,197,162,130,1,197,226,133,1,197,98,69,1,197,162,69,1,5,5,98,10,5,5,100,10,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,5,5,106,10,5,5,108,10,5,5,110,10,5,5,112,10,206,224,230,0,206,224,230,0,206,224,230,0,206,224,230,0,193,44,26,11,193,51,26,11,193,58,26,11,193,65,26,11,193,72,26,11,193,79,26,11,193,86,26,11,193,93,26,11,193,100,26,11,193,107,26,11,193,114,26,11,193,121,26,11,193,128,26,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,20,110,5,5,24,110,5,5,132,110,5,5,134,110,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,44,11,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,21,5,5,0,23,5,5,0,25,193,182,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,5,5,140,113,5,5,144,113,5,5,48,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,102,11,193,16,102,11,193,23,102,11,193,30,102,11,193,37,102,11,193,44,102,11,193,51,102,11,193,114,208,116,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,209,116,193,16,209,116,193,23,209,116,193,30,209,116,193,51,209,116,193,65,209,116,193,58,209,116,193,72,209,116,193,79,209,116,193,37,209,116,193,44,209,116,193,86,209,116,5,5,211,116,5,5,215,116,193,2,217,116,193,9,217,116,193,93,102,11,193,100,102,11,193,107,102,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,33,5,5,0,35,5,5,0,37,193,203,147,17,193,210,147,17,193,217,147,17,193,224,147,17,193,231,147,17,193,238,147,17,193,245,147,17,193,252,147,17,193,5,148,17,193,12,148,17,255,255,255,255,255,255,255,255,255,255,255,255,193,114,102,11,193,121,102,11,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,23,122,11,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,161,124,193,16,161,124,193,23,161,124,193,30,161,124,193,37,161,124,193,44,161,124,193,51,161,124,193,58,161,124,193,65,161,124,193,72,161,124,193,79,161,124,193,86,161,124,193,93,161,124,193,100,161,124,193,107,161,124,193,114,161,124,193,121,161,124,193,128,161,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,191,122,11,193,198,122,11,193,205,122,11,193,212,122,11,255,255,255,255,255,255,255,255,255,255,255,255,193,182,208,113,193,84,208,113,193,12,124,11,193,91,208,113,193,154,208,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,168,13,193,63,86,12,193,70,86,12,193,77,86,12,193,84,86,12,193,91,86,12,193,98,86,12,193,105,86,12,193,112,86,12,193,119,86,12,193,126,86,12,193,133,86,12,193,140,86,12,193,147,86,12,193,154,86,12,193,161,86,12,193,168,86,12,193,175,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,126,11,193,91,241,123,193,98,241,123,193,23,100,13,193,30,100,13,193,37,128,11,193,235,242,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,193,65,172,17,193,72,172,17,193,79,172,17,193,86,172,17,193,93,172,17,193,9,117,124,193,16,117,124,193,23,117,124,193,30,117,124,193,37,117,124,193,44,117,124,193,51,117,124,193,58,117,124,193,65,117,124,193,72,117,124,193,79,117,124,193,86,117,124,193,93,117,124,193,100,117,124,193,107,117,124,193,114,117,124,193,121,117,124,193,128,117,124,193,135,117,124,193,142,117,124,193,149,117,124,193,156,117,124,193,163,117,124,193,170,117,124,193,177,117,124,193,184,117,124,193,191,117,124,193,198,117,124,193,205,117,124,5,5,0,21,193,79,146,17,193,93,128,11,197,226,17,1,197,130,20,1,197,195,19,1,197,99,19,1,197,194,11,1,197,2,12,1,197,98,18,1,197,35,20,1,197,34,18,1,197,194,20,1,197,162,17,1,197,226,16,1,197,66,12,1,197,162,49,0,197,98,49,0,5,5,4,12,255,255,255,255,255,255,255,255,197,99,35,1,197,98,36,1,197,131,34,1,255,255,255,255,197,194,35,1,197,3,36,1,197,130,11,1,197,2,11,1,197,34,35,1,197,66,34,1,197,162,36,1,5,5,6,12,193,16,22,12,255,255,255,255,193,23,22,12,197,226,49,0,197,35,249,0,197,34,250,0,197,67,248,0,255,255,255,255,197,130,249,0,197,195,249,0,197,130,234,0,197,2,234,0,197,226,248,0,197,2,248,0,197,98,250,0,197,98,50,0,197,34,50,0,197,162,50,0,197,34,1,1,197,130,3,1,197,195,2,1,197,99,2,1,255,255,255,255,255,255,255,255,197,162,1,1,197,35,3,1,197,98,1,1,197,194,3,1,197,226,0,1,197,98,0,1,255,255,255,255,197,34,51,0,197,226,50,0,197,98,51,0,197,195,26,1,197,67,33,1,197,4,24,1,197,132,30,1,197,68,22,1,197,196,28,1,197,196,25,1,197,68,32,1,197,35,27,1,197,163,33,1,197,132,24,1,197,4,31,1,197,196,22,1,197,68,29,1,197,68,26,1,197,196,32,1,197,162,227,0,197,194,228,0,197,67,227,0,197,66,229,0,197,99,226,0,255,255,255,255,197,34,228,0,197,99,228,0,197,226,227,0,197,2,229,0,197,2,227,0,197,34,226,0,197,130,229,0,193,9,22,12,5,5,32,96,193,9,22,12,5,5,48,93,5,5,50,93,5,5,40,71,5,5,52,93,5,5,30,43,5,5,88,96,197,162,123,0,197,98,195,0,5,5,56,77,46,5,12,87,193,30,52,12,193,37,52,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,60,118,5,5,62,118,5,5,64,118,5,5,66,118,5,5,68,118,5,5,70,118,5,5,72,118,5,5,74,118,5,5,76,118,5,5,78,118,5,5,80,118,5,5,82,118,5,5,84,118,5,5,86,118,5,5,88,118,5,5,90,118,193,240,143,103,193,247,143,103,193,254,143,103,193,7,144,103,193,31,146,103,193,38,146,103,193,45,146,103,193,52,146,103,193,108,153,103,193,115,153,103,193,122,153,103,193,129,153,103,193,192,153,103,193,199,153,103,193,206,153,103,193,213,153,103,193,128,56,12,193,135,56,12,193,142,56,12,193,149,56,12,193,156,56,12,193,163,56,12,193,170,56,12,193,177,56,12,193,184,56,12,193,191,56,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,198,56,12,193,205,56,12,193,212,56,12,193,219,56,12,193,226,56,12,193,233,56,12,193,240,56,12,193,247,56,12,193,254,56,12,193,7,57,12,193,14,57,12,193,21,57,12,193,28,57,12,193,35,57,12,193,42,57,12,193,49,57,12,193,56,57,12,193,63,57,12,193,70,57,12,193,77,57,12,193,84,57,12,193,91,57,12,193,98,57,12,5,5,59,12,5,5,61,12,5,5,63,12,5,5,65,12,5,5,67,12,5,5,69,12,5,5,71,12,5,5,73,12,5,5,75,12,193,2,77,12,193,9,77,12,160,5,88,93,5,5,88,93,160,5,104,93,5,5,104,93,160,5,20,57,5,5,20,57,197,34,196,0,197,226,195,0,160,5,64,93,5,5,64,93,160,5,66,93,5,5,66,93,160,5,68,93,5,5,68,93,5,5,6,53,5,5,6,79,197,162,107,0,197,98,107,0,197,162,110,0,197,98,110,0,197,34,111,0,197,226,110,0,197,226,111,0,197,162,111,0,197,98,112,0,197,34,112,0,197,226,112,0,197,162,112,0,160,5,20,47,5,5,20,47,160,5,40,65,5,5,40,65,160,112,0,76,5,112,0,76,160,120,0,78,5,120,0,78,160,120,0,80,5,120,0,80,5,5,79,12,193,2,81,12,193,9,81,12,160,5,90,93,5,5,90,93,160,5,34,83,5,5,32,65,5,5,92,93,160,5,18,69,5,5,18,69,160,5,10,47,5,5,10,47,5,5,12,47,5,5,10,57,160,5,16,45,5,5,16,45,160,5,10,53,5,5,10,53,197,34,102,0,197,226,101,0,197,2,167,0,197,194,166,0,197,162,196,0,197,98,196,0,5,5,20,71,5,5,16,71,5,5,18,71,5,5,22,71,5,5,24,71,5,5,6,77,5,5,10,77,5,5,44,77,5,5,46,77,5,5,36,77,5,5,48,77,5,5,50,77,5,5,52,77,5,5,24,79,5,5,8,83,5,5,22,83,5,5,16,83,5,5,18,83,5,5,30,83,5,5,16,89,5,5,18,89,5,5,20,89,5,5,8,89,5,5,10,89,5,5,12,89,5,5,14,89,5,5,14,91,193,16,81,12,46,5,20,57,32,5,26,65,46,5,18,65,32,5,30,83,197,227,105,0,197,67,106,0,165,5,0,46,197,162,51,0,193,9,97,12,197,3,115,0,197,99,115,0,158,5,28,51,193,16,97,12,197,226,51,0,22,5,0,54,165,5,0,56,165,5,0,56,165,5,0,56,22,5,0,56,196,178,5,56,165,5,0,58,165,5,0,58,165,5,0,64,22,5,0,64,193,23,97,12,165,5,0,68,197,194,162,0,193,30,97,12,193,37,97,12,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,76,165,5,0,76,193,44,97,12,193,51,97,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,30,85,12,193,37,85,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,67,122,1,197,35,146,1,197,164,70,1,197,36,70,1,197,164,168,1,197,36,119,1,197,132,98,1,197,36,121,1,197,196,121,1,197,163,119,1,197,18,120,1,197,40,91,1,5,5,242,13,193,72,85,12,255,255,255,255,255,255,255,255,198,161,164,0,198,129,164,0,198,65,164,0,198,97,164,0,198,2,165,0,198,194,164,0,49,5,218,102,38,5,218,102,16,5,218,102,27,5,218,102,49,5,216,102,38,5,216,102,16,5,216,102,27,5,216,102,46,5,250,102,32,5,250,102,197,66,191,1,197,2,191,1,193,79,85,12,193,86,85,12,193,93,85,12,193,100,85,12,193,107,85,12,193,114,85,12,193,121,85,12,193,128,85,12,193,135,85,12,193,142,85,12,193,149,85,12,193,156,85,12,193,163,85,12,193,170,85,12,193,177,85,12,193,184,85,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,33,163,0,198,1,163,0,198,193,162,0,198,225,162,0,44,5,228,102,30,5,228,102,198,97,161,0,198,33,161,0,46,5,230,102,32,5,230,102,197,226,183,1,198,161,165,0,198,129,165,0,5,5,20,108,5,5,24,108,5,5,122,108,5,5,124,108,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,205,85,12,5,5,96,108,5,5,18,16,5,5,20,16,5,5,22,16,5,5,24,16,5,5,26,16,5,5,28,16,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,42,16,5,5,44,16,5,5,46,16,193,212,85,12,193,219,85,12,193,226,85,12,193,233,85,12,193,240,85,12,193,247,85,12,5,5,160,13,193,254,85,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,48,16,5,5,50,16,5,5,52,16,5,5,54,16,5,5,56,16,5,5,58,16,5,5,60,16,5,5,62,16,5,5,64,16,5,5,66,16,5,5,68,16,5,5,70,16,5,5,72,16,5,5,74,16,5,5,76,16,5,5,78,16,5,5,80,16,5,5,82,16,5,5,84,16,5,5,86,16,5,5,88,16,193,7,86,12,193,14,86,12,193,21,86,12,193,28,86,12,193,35,86,12,193,42,86,12,193,49,86,12,193,56,86,12,5,5,162,13,5,5,164,13,5,5,166,13,5,5,124,112,5,5,126,112,5,5,128,112,5,5,130,112,5,5,132,112,255,255,255,255,201,64,18,0,201,160,19,0,5,5,142,112,255,255,255,255,5,5,144,112,5,5,146,112,5,5,148,112,5,5,152,112,197,130,198,1,193,189,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,2,198,1,197,66,198,1,197,66,199,1,5,5,150,112,5,5,90,16,5,5,92,16,5,5,94,16,5,5,96,16,5,5,98,16,5,5,100,16,5,5,102,16,5,5,14,112,5,5,22,112,5,5,26,112,5,5,134,112,5,5,136,112,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,104,16,5,5,106,16,5,5,108,16,5,5,110,16,5,5,112,16,5,5,114,16,5,5,116,16,5,5,118,16,5,5,120,16,193,196,86,12,197,130,197,1,197,194,197,1,197,130,198,1,197,194,198,1,197,2,199,1,197,66,197,1,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,206,64,233,0,193,203,86,12,193,210,86,12,193,217,86,12,193,224,86,12,193,58,162,113,255,255,255,255,255,255,255,255,255,255,255,255,5,5,30,16,5,5,32,16,5,5,34,16,5,5,36,16,5,5,38,16,5,5,40,16,193,231,86,12,193,238,86,12,5,5,158,13,193,245,86,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,62,116,5,5,66,116,197,130,121,2,5,5,70,116,5,5,74,116,5,5,78,116,5,5,82,116,197,2,122,2,5,5,86,116,5,5,90,116,5,5,94,116,5,5,98,116,197,130,122,2,5,5,102,116,5,5,106,116,5,5,110,116,5,5,114,116,5,5,118,116,201,38,233,0,201,38,237,0,5,5,132,116,5,5,136,116,5,5,140,116,5,5,144,116,5,5,148,116,197,2,120,2,5,112,102,116,5,112,118,116,5,112,122,116,255,255,255,255,193,110,87,12,193,117,87,12,193,124,81,117,193,16,85,117,193,117,81,117,193,2,89,117,193,114,89,117,193,128,89,117,193,184,89,117,193,58,93,117,193,72,93,117,193,93,93,117,193,100,93,117,193,65,93,117,193,79,93,117,193,86,93,117,193,231,80,117,193,107,93,117,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,114,93,117,193,121,93,117,193,16,89,117,193,142,89,117,193,10,88,12,193,17,88,12,193,51,79,117,193,114,79,117,193,135,79,117,193,156,79,117,193,205,79,117,193,247,79,117,193,21,80,117,193,35,80,117,193,49,80,117,193,70,80,117,193,154,80,117,193,182,80,117,193,2,85,117,193,23,85,117,193,37,85,117,193,224,80,117,5,5,98,13,193,44,85,117,193,177,79,117,193,68,81,117,193,149,93,117,193,156,93,117,193,163,93,117,193,24,88,12,193,31,88,12,193,38,88,12,193,75,81,117,193,128,93,117,193,135,93,117,193,142,93,117,193,142,79,117,193,226,79,117,193,52,88,12,193,59,88,12,193,66,88,12,193,73,88,12,193,80,88,12,193,87,88,12,193,94,88,12,193,101,88,12,193,108,88,12,193,115,88,12,193,122,88,12,193,129,88,12,193,136,88,12,193,143,88,12,193,150,88,12,193,157,88,12,193,164,88,12,193,171,88,12,193,178,88,12,193,185,88,12,193,192,88,12,193,199,88,12,193,206,88,12,193,213,88,12,193,220,88,12,193,227,88,12,193,234,88,12,193,241,88,12,193,248,88,12,193,255,88,12,193,8,89,12,193,15,89,12,197,163,90,0,197,35,93,0,197,68,80,0,197,131,92,0,197,68,73,0,46,5,0,48,197,2,136,0,197,67,136,0,197,230,136,0,197,104,151,0,197,35,191,0,197,99,205,0,197,195,208,0,193,2,97,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,130,191,0,197,227,193,0,197,226,194,0,193,58,97,12,165,5,0,92,193,65,97,12,155,5,86,96,193,72,97,12,165,5,0,92,193,79,97,12,156,5,0,62,196,146,156,42,165,5,0,44,165,5,0,46,193,86,97,12,22,5,0,50,165,5,0,50,165,5,0,52,160,5,18,53,165,5,0,66,22,5,0,70,32,5,6,101,32,5,8,101,32,5,10,101,32,5,12,101,22,5,0,58,193,93,97,12,197,3,131,0,27,5,50,96,16,5,10,96,160,5,10,96,177,5,50,96,32,5,119,12,193,100,97,12,193,107,97,12,193,114,97,12,193,121,97,12,165,5,0,48,22,5,0,48,22,5,0,50,22,5,0,58,22,5,0,60,193,128,97,12,193,45,160,12,193,135,97,12,197,163,106,0,5,5,18,53,193,142,97,12,197,67,70,0,197,3,71,0,197,228,67,0,197,195,68,0,197,99,78,0,197,131,69,0,197,195,78,0,197,67,84,0,197,195,87,0,197,227,69,0,197,3,91,0,197,163,70,0,197,163,84,0,197,99,91,0,197,131,93,0,197,162,67,0,5,5,144,16,5,5,146,16,5,5,148,16,160,5,18,47,5,5,18,47,5,5,0,31,5,5,150,16,5,5,152,16,5,5,154,16,197,195,66,0,193,149,97,12,193,156,97,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,99,12,5,5,103,12,5,5,101,12,5,5,105,12,193,2,107,12,193,9,107,12,193,16,107,12,193,23,107,12,193,30,107,12,193,37,107,12,197,34,52,0,197,98,52,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,206,128,228,0,197,162,52,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,206,160,228,0,197,226,52,0,197,98,53,0,197,34,53,0,193,126,108,12,193,133,108,12,193,140,108,12,193,147,108,12,193,154,108,12,193,161,108,12,193,168,108,12,193,175,108,12,193,182,108,12,193,189,108,12,193,196,108,12,193,203,108,12,193,210,108,12,193,217,108,12,193,224,108,12,193,231,108,12,193,238,108,12,193,245,108,12,193,252,108,12,193,5,109,12,193,12,109,12,193,19,109,12,193,26,109,12,193,33,109,12,193,40,109,12,193,47,109,12,193,54,109,12,193,61,109,12,193,68,109,12,193,75,109,12,193,82,109,12,193,89,109,12,193,96,109,12,193,103,109,12,193,110,109,12,193,117,109,12,193,124,109,12,193,131,109,12,193,138,109,12,193,145,109,12,193,152,109,12,193,159,109,12,193,166,109,12,193,173,109,12,193,180,109,12,193,187,109,12,193,194,109,12,193,201,109,12,193,208,109,12,193,215,109,12,5,5,111,12,193,2,113,12,197,162,53,0,193,9,113,12,193,16,113,12,5,5,115,12,193,2,117,12,197,226,53,0,193,9,117,12,193,16,117,12,197,34,54,0,193,23,117,12,193,37,117,12,193,44,117,12,193,51,117,12,5,5,119,12,5,5,143,12,193,9,145,12,193,16,145,12,5,5,147,12,193,2,151,12,193,9,151,12,193,16,151,12,193,23,151,12,193,30,151,12,193,37,151,12,193,51,151,12,193,65,151,12,193,72,151,12,193,79,151,12,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,16,5,80,96,16,5,82,96,16,5,86,96,32,5,111,12,27,5,16,96,23,5,30,96,24,5,36,96,23,5,78,96,24,5,60,96,27,5,50,96,172,5,18,96,16,5,18,96,255,255,255,255,255,255,255,255,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,24,5,60,96,27,5,50,96,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,166,5,86,96,32,5,115,12,27,5,6,96,23,5,8,96,16,5,10,96,16,5,14,96,27,5,16,96,16,5,24,96,16,5,28,96,23,5,30,96,27,5,32,96,24,5,36,96,16,5,38,96,24,5,42,96,16,5,44,96,16,5,46,96,16,5,48,96,27,5,50,96,24,5,60,96,23,5,66,96,23,5,66,96,16,5,74,96,16,5,76,96,23,5,78,96,32,5,36,101,46,5,6,101,46,5,12,101,46,5,14,101,32,5,26,101,46,5,28,101,32,5,30,101,32,5,44,101,32,5,48,101,24,5,121,12,197,98,60,1,197,34,60,1,197,67,61,1,197,227,60,1,197,130,51,1,197,194,51,1,197,2,52,1,197,130,52,1,197,2,53,1,197,66,53,1,197,130,53,1,197,2,54,1,197,194,54,1,255,255,255,255,197,2,55,1,197,130,55,1,197,34,57,1,197,226,56,1,197,162,57,1,255,255,255,255,197,226,57,1,255,255,255,255,197,162,54,0,193,49,158,12,197,194,58,0,193,56,158,12,193,63,158,12,193,70,158,12,193,77,158,12,193,84,158,12,193,91,158,12,193,98,158,12,193,105,158,12,193,112,158,12,193,119,158,12,197,130,58,0,197,98,54,0,197,130,55,0,197,2,59,0,197,66,59,0,193,126,158,12,193,133,158,12,197,130,59,0,197,194,59,0,193,140,158,12,193,147,158,12,197,2,60,0,197,66,60,0,193,154,158,12,193,161,158,12,193,168,158,12,193,175,158,12,193,182,158,12,193,189,158,12,193,86,151,12,193,93,151,12,193,100,151,12,193,107,151,12,197,194,55,0,193,114,151,12,197,2,56,0,193,121,151,12,193,128,151,12,193,135,151,12,193,142,151,12,5,5,153,12,197,66,56,0,197,131,56,0,5,5,155,12,197,226,56,0,197,35,57,0,193,2,157,12,193,9,157,12,193,16,157,12,193,23,157,12,193,30,157,12,193,37,157,12,193,44,157,12,193,51,157,12,193,58,157,12,193,65,157,12,193,72,157,12,193,79,157,12,193,86,157,12,193,93,157,12,193,100,157,12,193,41,213,12,193,48,213,12,193,55,213,12,193,62,213,12,193,69,213,12,193,76,213,12,193,83,213,12,193,90,213,12,193,97,213,12,193,104,213,12,193,111,213,12,193,118,213,12,197,68,56,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,193,107,157,12,197,130,57,0,193,114,157,12,193,121,157,12,197,194,57,0,193,128,157,12,193,135,157,12,197,2,58,0,193,142,157,12,197,66,58,0,193,149,157,12,193,156,157,12,193,163,157,12,193,170,157,12,193,177,157,12,193,184,157,12,193,191,157,12,193,198,157,12,193,205,157,12,193,212,157,12,193,219,157,12,193,226,157,12,193,233,157,12,193,240,157,12,193,247,157,12,193,254,157,12,193,7,158,12,193,14,158,12,193,21,158,12,193,28,158,12,193,35,158,12,193,42,158,12,197,130,60,0,197,194,60,0,193,196,158,12,193,203,158,12,197,130,61,0,197,194,61,0,193,210,158,12,193,217,158,12,197,2,62,0,197,66,62,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,197,2,61,0,197,66,61,0,197,130,62,0,197,194,62,0,193,43,161,12,193,50,161,12,193,57,161,12,193,64,161,12,193,71,161,12,193,78,161,12,197,2,64,0,197,66,64,0,197,130,64,0,197,194,64,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,224,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,206,192,228,0,197,2,63,0,197,66,63,0,197,130,63,0,197,194,63,0,193,208,159,12,193,215,159,12,193,222,159,12,193,229,159,12,193,236,159,12,193,243,159,12,193,250,159,12,193,3,160,12,193,10,160,12,193,17,160,12,193,24,160,12,193,31,160,12,193,38,160,12,193,52,160,12,193,59,160,12,193,66,160,12,193,73,160,12,193,80,160,12,193,87,160,12,193,94,160,12,193,101,160,12,193,108,160,12,193,115,160,12,193,122,160,12,193,129,160,12,193,136,160,12,193,143,160,12,193,150,160,12,193,157,160,12,193,164,160,12,193,171,160,12,193,178,160,12,193,185,160,12,193,192,160,12,193,199,160,12,193,206,160,12,193,213,160,12,193,220,160,12,193,227,160,12,193,234,160,12,193,241,160,12,193,248,160,12,193,255,160,12,193,8,161,12,193,15,161,12,193,22,161,12,193,29,161,12,193,36,161,12,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,206,32,229,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,202,169,12,193,209,169,12,193,216,169,12,193,223,169,12,193,230,169,12,193,237,169,12,193,244,169,12,193,251,169,12,193,4,170,12,193,11,170,12,193,18,170,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,25,170,12,193,32,170,12,5,5,172,12,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,206,64,229,0,5,5,180,12,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,206,96,229,0,5,5,185,12,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,128,229,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,206,160,244,0,255,255,255,255,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,206,192,244,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,206,160,229,0,193,111,234,12,193,118,234,12,193,125,234,12,193,132,234,12,193,139,234,12,193,146,234,12,193,153,234,12,193,160,234,12,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,206,192,229,0,193,212,250,12,193,219,250,12,193,226,250,12,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,206,224,229,0,193,69,234,12,193,76,234,12,193,83,234,12,193,90,234,12,193,97,234,12,193,104,234,12,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,206,0,230,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,151,200,12,193,158,200,12,193,165,200,12,193,172,200,12,193,179,200,12,193,186,200,12,193,193,200,12,193,200,200,12,193,207,200,12,193,214,200,12,193,221,200,12,193,228,200,12,193,235,200,12,193,242,200,12,193,249,200,12,193,2,201,12,193,9,201,12,193,16,201,12,193,23,201,12,193,30,201,12,193,37,201,12,193,44,201,12,193,51,201,12,193,58,201,12,193,65,201,12,193,72,201,12,193,79,201,12,193,86,201,12,193,93,201,12,193,100,201,12,193,107,201,12,193,114,201,12,193,121,201,12,193,128,201,12,193,135,201,12,193,142,201,12,193,149,201,12,193,156,201,12,193,163,201,12,193,170,201,12,193,177,201,12,193,184,201,12,193,191,201,12,193,198,201,12,193,205,201,12,193,212,201,12,193,219,201,12,193,226,201,12,193,233,201,12,193,240,201,12,193,247,201,12,193,254,201,12,193,7,202,12,193,14,202,12,193,21,202,12,193,28,202,12,193,35,202,12,193,42,202,12,193,49,202,12,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,206,32,230,0,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,64,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,160,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,192,230,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,0,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,206,32,231,0,197,2,65,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,206,64,231,0,255,255,255,255,255,255,255,255,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,206,96,231,0,255,255,255,255,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,231,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,128,230,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,232,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,206,0,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,255,255,255,255,255,255,255,255,255,255,255,255,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,206,64,232,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,206,96,232,0,5,5,234,16,5,5,236,16,5,5,238,16,5,5,240,16,5,5,242,16,5,5,244,16,5,5,246,16,5,5,248,16,5,5,250,16,5,5,252,16,5,5,254,16,5,5,2,17,5,5,4,17,5,5,6,17,5,5,8,17,5,5,10,17,5,5,12,17,5,5,14,17,5,5,16,17,5,5,18,17,255,255,255,255,255,255,255,255,255,255,255,255,193,85,240,12,193,92,240,12,193,99,240,12,193,106,240,12,193,113,240,12,193,120,240,12,193,127,240,12,193,134,240,12,193,141,240,12,5,5,60,17,5,5,62,17,5,5,64,17,5,5,66,17,5,5,68,17,5,5,70,17,5,5,72,17,5,5,74,17,5,5,76,17,5,5,78,17,5,5,80,17,5,5,82,17,5,5,84,17,5,5,86,17,5,5,88,17,5,5,90,17,5,5,92,17,5,5,94,17,5,5,96,17,5,5,0,29,5,5,98,17,5,5,100,17,5,5,102,17,5,5,104,17,5,5,106,17,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,206,160,234,0,5,5,0,19,5,5,108,17,193,13,241,12,193,20,241,12,193,27,241,12,255,255,255,255,193,34,241,12,193,41,241,12,193,48,241,12,193,55,241,12,193,62,241,12,193,69,241,12,193,76,241,12,193,83,241,12,193,90,241,12,193,97,241,12,193,104,241,12,193,111,241,12,193,118,241,12,255,255,255,255,255,255,255,255,255,255,255,255,193,125,241,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,206,192,234,0,193,9,125,124,193,16,125,124,193,23,125,124,193,30,125,124,193,37,125,124,193,44,125,124,193,51,125,124,193,58,125,124,193,65,125,124,193,72,125,124,193,79,125,124,193,86,125,124,193,93,125,124,32,5,127,124,5,5,127,124,193,2,129,124,193,9,129,124,193,16,129,124,193,23,129,124,193,30,129,124,193,37,129,124,193,44,129,124,193,51,129,124,193,193,242,12,193,200,242,12,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,193,23,146,17,193,30,146,17,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,105,244,123,193,242,242,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,206,128,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,206,160,241,0,255,255,255,255,255,255,255,255,193,91,251,12,193,233,250,12,193,240,250,12,193,247,250,12,193,254,250,12,193,7,251,12,193,14,251,12,193,21,251,12,193,28,251,12,193,35,251,12,193,42,251,12,193,49,251,12,193,56,251,12,193,63,251,12,193,70,251,12,193,77,251,12,193,84,251,12,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,206,192,241,0,193,47,252,12,193,54,252,12,193,171,253,12,193,178,253,12,193,185,253,12,193,192,253,12,193,199,253,12,193,206,253,12,193,213,253,12,193,220,253,12,193,227,253,12,193,234,253,12,193,241,253,12,193,248,253,12,193,255,253,12,193,8,254,12,193,15,254,12,193,22,254,12,193,29,254,12,193,36,254,12,193,43,254,12,193,50,254,12,193,57,254,12,193,64,254,12,193,71,254,12,193,78,254,12,193,85,254,12,193,92,254,12,193,99,254,12,193,106,254,12,193,113,254,12,193,120,254,12,193,127,254,12,193,134,254,12,193,141,254,12,193,148,254,12,193,155,254,12,193,162,254,12,193,169,254,12,193,176,254,12,193,183,254,12,193,190,254,12,193,197,254,12,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,204,254,12,193,211,254,12,193,218,254,12,193,225,254,12,193,232,254,12,193,239,254,12,193,246,254,12,193,253,254,12,193,6,255,12,193,13,255,12,193,20,255,12,193,27,255,12,193,34,255,12,193,41,255,12,193,48,255,12,193,55,255,12,193,62,255,12,193,69,255,12,193,76,255,12,193,83,255,12,193,90,255,12,193,97,255,12,193,104,255,12,193,111,255,12,193,118,255,12,193,125,255,12,193,132,255,12,193,139,255,12,193,146,255,12,193,153,255,12,193,160,255,12,193,167,255,12,193,174,255,12,193,181,255,12,193,188,255,12,193,195,255,12,193,202,255,12,193,209,255,12,193,216,255,12,193,223,255,12,193,230,255,12,193,237,255,12,193,244,255,12,193,251,255,12,193,4,2,13,193,11,2,13,193,18,2,13,193,25,2,13,193,32,2,13,193,39,2,13,193,46,2,13,193,53,2,13,193,60,2,13,193,67,2,13,193,74,2,13,193,81,2,13,193,88,2,13,193,95,2,13,193,102,2,13,193,109,2,13,193,116,2,13,193,123,2,13,193,130,2,13,193,137,2,13,5,5,16,18,5,5,18,18,5,5,20,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,193,172,2,13,5,5,22,18,5,5,24,18,5,5,26,18,5,5,226,13,5,112,0,21,5,112,0,23,5,5,28,18,5,5,30,18,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,76,18,5,5,78,18,5,5,80,18,5,5,82,18,5,5,84,18,5,5,86,18,5,5,88,18,5,5,90,18,5,5,92,18,5,5,94,18,5,5,96,18,5,5,98,18,5,5,100,18,5,5,102,18,193,179,2,13,5,112,0,23,32,112,0,25,5,112,0,27,5,112,0,29,5,112,0,31,5,112,0,33,5,112,0,35,5,112,0,37,5,5,104,18,5,5,106,18,5,5,108,18,5,5,110,18,5,5,112,18,5,5,114,18,5,5,116,18,255,255,255,255,255,255,255,255,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,206,192,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,206,224,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,178,6,13,193,185,6,13,193,192,6,13,193,199,6,13,193,206,6,13,193,213,6,13,193,220,6,13,193,227,6,13,193,234,6,13,193,241,6,13,193,248,6,13,193,255,6,13,193,8,7,13,193,15,7,13,193,22,7,13,255,255,255,255,255,255,255,255,193,29,7,13,193,36,7,13,193,43,7,13,193,50,7,13,193,57,7,13,193,64,7,13,193,71,7,13,193,78,7,13,193,85,7,13,193,92,7,13,193,99,7,13,193,106,7,13,193,113,7,13,193,120,7,13,193,127,7,13,255,255,255,255,193,134,7,13,193,141,7,13,193,148,7,13,193,155,7,13,193,162,7,13,193,169,7,13,193,176,7,13,193,183,7,13,193,190,7,13,193,197,7,13,193,204,7,13,193,211,7,13,193,218,7,13,193,225,7,13,193,232,7,13,255,255,255,255,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,206,0,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,206,96,244,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,70,11,13,193,77,11,13,193,84,11,13,193,91,11,13,193,98,11,13,193,105,11,13,193,112,11,13,193,119,11,13,193,126,11,13,193,133,11,13,193,140,11,13,193,147,11,13,193,154,11,13,193,161,11,13,255,255,255,255,255,255,255,255,193,40,40,13,193,47,40,13,193,54,40,13,193,61,40,13,193,68,40,13,255,255,255,255,255,255,255,255,255,255,255,255,193,75,40,13,193,82,40,13,193,89,40,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,176,5,0,74,168,5,0,76,168,5,0,78,168,5,0,80,168,5,0,82,168,5,0,84,176,5,0,86,168,5,0,88,168,5,0,90,168,5,0,92,197,34,155,0,197,98,155,0,197,98,158,0,193,189,11,13,193,196,11,13,193,203,11,13,180,5,0,42,177,5,0,44,177,5,0,46,177,5,0,48,180,5,0,50,177,5,0,52,177,5,0,54,180,5,0,56,180,5,0,58,177,5,0,60,180,5,0,62,180,5,0,64,180,5,0,66,180,5,0,68,180,5,0,70,180,5,0,72,193,210,11,13,193,217,11,13,193,224,11,13,193,231,11,13,193,238,11,13,193,245,11,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,206,32,243,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,205,2,0,0,205,0,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,0,0,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,206,0,244,0,255,255,255,255,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,206,32,244,0,255,255,255,255,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,206,64,244,0,193,96,40,13,193,103,40,13,193,110,40,13,193,117,40,13,193,124,40,13,193,131,40,13,193,138,40,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,206,128,244,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,66,41,13,193,73,41,13,193,80,41,13,193,87,41,13,193,94,41,13,193,101,41,13,193,108,41,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,115,41,13,193,122,41,13,193,129,41,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,136,41,13,193,143,41,13,193,150,41,13,193,157,41,13,193,164,41,13,193,171,41,13,193,178,41,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,206,64,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,173,47,13,193,180,47,13,193,187,47,13,193,194,47,13,193,201,47,13,193,208,47,13,193,215,47,13,193,222,47,13,193,229,47,13,193,236,47,13,193,243,47,13,193,250,47,13,193,3,48,13,255,255,255,255,255,255,255,255,255,255,255,255,193,10,48,13,193,17,48,13,193,24,48,13,193,31,48,13,193,38,48,13,193,45,48,13,193,52,48,13,193,59,48,13,193,66,48,13,193,73,48,13,193,80,48,13,193,87,48,13,193,94,48,13,255,255,255,255,255,255,255,255,255,255,255,255,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,206,96,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,206,128,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,12,54,13,193,19,54,13,193,26,54,13,193,33,54,13,193,40,54,13,193,47,54,13,193,54,54,13,193,61,54,13,193,68,54,13,193,75,54,13,193,82,54,13,193,89,54,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,96,54,13,193,103,54,13,193,110,54,13,193,117,54,13,193,124,54,13,193,131,54,13,193,138,54,13,193,145,54,13,193,152,54,13,193,159,54,13,193,166,54,13,193,173,54,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,206,160,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,64,56,13,193,71,56,13,193,78,56,13,193,85,56,13,193,92,56,13,193,99,56,13,193,106,56,13,193,113,56,13,193,120,56,13,193,127,56,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,206,192,243,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,206,224,243,0,255,255,255,255,255,255,255,255,193,116,58,13,193,123,58,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,206,32,242,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,100,73,13,193,107,73,13,193,114,73,13,193,121,73,13,193,128,73,13,193,135,73,13,193,142,73,13,193,149,73,13,193,156,73,13,193,163,73,13,193,170,73,13,193,177,73,13,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,206,224,231,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,22,122,16,5,30,122,16,5,32,122,16,5,46,122,16,5,52,122,16,5,58,122,16,5,60,122,16,5,62,122,16,5,64,122,16,5,66,122,16,5,72,122,16,5,84,122,16,5,86,122,16,5,88,122,16,5,90,122,16,5,92,122,198,161,170,0,198,193,170,0,198,193,171,0,198,225,171,0,32,5,95,121,32,5,97,121,32,5,99,121,32,5,147,121,32,5,149,121,32,5,155,121,32,5,159,121,32,5,161,121,32,5,165,121,32,5,169,121,32,5,175,121,255,255,255,255,193,37,78,13,193,44,78,13,198,97,172,0,198,225,175,0,198,1,173,0,198,225,183,0,198,97,173,0,198,65,174,0,198,161,173,0,198,1,202,0,198,1,175,0,198,193,173,0,198,161,172,0,198,129,185,0,198,33,184,0,198,161,176,0,30,5,6,121,30,5,10,121,30,5,12,121,30,5,16,121,30,5,18,121,30,5,20,121,30,5,24,121,30,5,28,121,30,5,30,121,30,5,34,121,30,5,36,121,30,5,38,121,30,5,40,121,30,5,42,121,197,130,174,2,197,194,174,2,197,2,175,2,197,66,175,2,197,130,175,2,197,194,175,2,197,2,176,2,197,66,176,2,197,194,176,2,197,130,177,2,197,98,178,2,197,162,178,2,197,226,178,2,197,34,179,2,197,197,177,2,197,4,177,2,197,130,176,2,193,51,78,13,193,72,79,117,193,128,79,117,193,198,79,117,193,98,80,117,193,19,81,117,193,177,89,117,5,5,96,13,193,254,79,117,193,238,80,117,193,58,79,117,193,79,79,117,193,163,79,117,193,212,79,117,193,56,80,117,193,77,80,117,193,105,80,117,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,58,85,117,193,140,80,117,193,161,80,117,193,5,81,117,193,26,81,117,255,255,255,255,5,5,68,114,5,5,70,114,5,5,72,114,5,5,74,114,5,5,76,114,5,5,78,114,5,5,80,114,5,5,82,114,5,5,84,114,5,5,86,114,5,5,88,114,5,5,90,114,5,5,92,114,5,5,94,114,5,5,96,114,5,5,98,114,5,5,100,114,5,5,102,114,5,5,104,114,5,5,106,114,5,5,108,114,5,5,110,114,5,5,112,114,5,5,114,114,5,5,116,114,5,5,118,114,5,5,120,114,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,170,13,5,5,176,13,5,5,178,13,5,5,180,13,5,5,182,13,5,5,184,13,5,5,186,13,5,5,188,13,5,5,190,13,5,5,240,13,5,5,192,13,5,5,194,13,5,5,196,13,5,5,198,13,5,5,200,13,5,5,202,13,5,5,204,13,5,5,206,13,5,5,208,13,5,5,210,13,5,5,212,13,5,5,214,13,5,5,216,13,5,5,218,13,5,5,220,13,5,5,222,13,5,5,224,13,5,5,228,13,5,5,230,13,5,5,232,13,5,5,234,13,5,5,236,13,5,5,238,13,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,156,16,5,5,158,16,5,5,160,16,5,5,162,16,5,5,164,16,5,5,166,16,5,5,168,16,5,5,170,16,5,5,172,16,5,5,174,16,5,5,176,16,5,5,178,16,5,5,180,16,5,5,182,16,5,5,184,16,5,5,186,16,5,5,188,16,5,5,190,16,5,5,192,16,5,5,194,16,5,5,196,16,5,5,198,16,255,255,255,255,5,5,0,21,5,5,0,29,193,9,200,16,193,16,200,16,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,233,251,123,193,240,251,123,193,247,251,123,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,5,5,112,119,5,5,114,119,5,5,116,119,5,112,116,119,5,5,118,119,5,5,120,119,5,5,122,119,5,5,124,119,5,5,126,119,5,5,128,119,5,5,130,119,5,112,130,119,5,5,132,119,5,112,132,119,5,5,134,119,5,5,136,119,5,5,138,119,5,5,140,119,5,5,142,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,29,193,23,200,16,193,30,200,16,193,37,200,16,193,44,200,16,5,5,20,17,5,5,22,17,5,5,0,21,5,5,0,29,5,5,24,17,5,5,26,17,5,5,28,17,5,5,30,17,5,5,0,29,5,5,32,17,5,5,34,17,5,5,36,17,5,5,38,17,5,5,40,17,5,5,42,17,5,5,0,29,5,5,44,17,5,5,46,17,5,5,48,17,5,5,50,17,5,5,52,17,5,5,54,17,5,5,56,17,5,5,58,17,5,5,0,21,5,5,0,21,5,5,0,21,5,5,0,23,5,5,0,23,5,5,0,23,5,5,0,23,5,5,0,29,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,27,5,5,0,29,193,37,146,17,193,44,146,17,193,51,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,157,124,193,16,157,124,193,23,157,124,193,30,157,124,193,37,157,124,193,44,157,124,193,51,157,124,193,58,157,124,193,65,157,124,193,72,157,124,193,79,157,124,193,86,157,124,193,93,157,124,193,100,157,124,193,107,157,124,193,114,157,124,193,121,157,124,193,128,157,124,193,135,157,124,255,255,255,255,193,142,157,124,193,149,157,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,29,193,58,146,17,193,65,146,17,193,72,146,17,193,9,118,124,193,16,118,124,193,23,118,124,193,30,118,124,193,37,118,124,193,44,118,124,193,51,118,124,193,58,118,124,193,65,118,124,193,72,118,124,193,79,118,124,193,86,118,124,193,93,118,124,193,100,118,124,193,107,118,124,193,114,118,124,193,121,118,124,193,128,118,124,193,135,118,124,193,142,118,124,193,149,118,124,193,156,118,124,193,163,118,124,193,170,118,124,193,177,118,124,193,184,118,124,193,191,118,124,193,198,118,124,193,205,118,124,5,5,0,21,193,86,146,17,193,93,146,17,193,9,159,124,193,16,159,124,193,23,159,124,193,30,159,124,193,37,159,124,193,44,159,124,193,51,159,124,193,58,159,124,193,65,159,124,193,72,159,124,193,79,159,124,193,86,159,124,193,93,159,124,193,100,159,124,193,107,159,124,193,114,159,124,193,121,159,124,193,128,159,124,193,135,159,124,193,142,159,124,193,149,159,124,193,156,159,124,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,177,146,17,193,184,146,17,193,191,146,17,193,198,146,17,193,9,160,124,193,16,160,124,193,23,160,124,193,30,160,124,193,37,160,124,193,44,160,124,193,51,160,124,193,58,160,124,193,65,160,124,193,72,160,124,193,79,160,124,193,86,160,124,193,93,160,124,193,100,160,124,193,107,160,124,193,114,160,124,193,121,160,124,193,128,160,124,193,135,160,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,205,146,17,193,212,146,17,193,219,146,17,193,226,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,233,146,17,193,240,146,17,193,247,146,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,27,5,5,0,29,193,254,146,17,193,7,147,17,193,14,147,17,193,21,147,17,193,28,147,17,197,2,237,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,196,124,193,16,196,124,193,23,196,124,193,30,196,124,193,37,196,124,193,44,196,124,193,51,196,124,193,58,196,124,193,65,196,124,193,72,196,124,193,79,196,124,193,86,196,124,193,93,196,124,193,100,196,124,193,107,196,124,193,114,196,124,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,193,56,147,17,193,63,147,17,193,70,147,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,206,192,236,0,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,231,245,113,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,150,17,5,5,152,17,5,5,154,17,5,5,156,17,5,5,158,17,5,5,160,17,5,5,162,17,5,5,164,17,5,5,166,17,5,5,168,17,5,5,170,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,193,2,172,17,193,9,172,17,193,16,172,17,193,23,172,17,193,30,172,17,193,37,172,17,193,44,172,17,193,51,172,17,193,58,172,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,172,123,193,100,172,17,193,107,172,17,255,255,255,255,193,105,241,123,193,112,241,123,193,119,241,123,193,126,241,123,193,133,241,123,193,140,241,123,193,147,241,123,193,154,241,123,193,161,241,123,193,168,241,123,193,175,241,123,193,182,241,123,193,189,241,123,193,196,241,123,193,203,241,123,193,210,241,123,193,217,241,123,193,224,241,123,193,231,241,123,193,238,241,123,193,245,241,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,252,241,123,193,5,242,123,193,12,242,123,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,174,17,5,5,176,17,5,5,178,17,5,5,180,17,5,5,182,17,5,5,184,17,5,5,186,17,5,5,188,17,5,5,190,17,5,5,192,17,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,194,17,5,5,196,17,5,5,198,17,5,5,200,17,5,5,202,17,5,5,204,17,5,5,206,17,5,5,208,17,5,5,210,17,5,5,212,17,5,5,214,17,5,5,216,17,5,5,218,17,5,5,220,17,5,5,222,17,5,5,224,17,5,5,226,17,5,5,228,17,5,5,230,17,5,5,232,17,5,5,234,17,5,5,236,17,5,5,238,17,5,5,240,17,5,5,242,17,5,5,244,17,5,5,246,17,5,5,248,17,5,5,250,17,5,5,252,17,5,5,254,17,5,5,2,18,5,5,4,18,5,5,6,18,5,5,8,18,5,5,10,18,5,5,12,18,5,5,14,18,255,255,255,255,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,32,18,5,5,34,18,5,5,36,18,5,5,38,18,5,5,40,18,5,5,42,18,5,5,44,18,5,5,46,18,5,5,48,18,5,5,50,18,5,5,52,18,5,5,54,18,5,5,56,18,5,5,58,18,5,5,60,18,5,5,62,18,5,5,64,18,5,5,66,18,5,5,68,18,5,5,70,18,5,5,72,18,5,5,74,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,193,2,118,18,193,9,118,18,193,16,118,18,193,23,118,18,193,30,118,18,193,37,118,18,193,44,118,18,255,255,255,255,255,255,255,255,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,206,0,236,0,193,56,119,18,193,63,119,18,193,70,119,18,193,77,119,18,193,84,119,18,193,91,119,18,193,98,119,18,193,105,119,18,193,112,119,18,193,119,119,18,5,5,36,125,5,5,38,125,5,5,40,125,5,5,42,125,5,5,44,125,5,5,46,125,5,5,48,125,5,5,50,125,5,5,52,125,5,5,54,125,5,5,56,125,5,5,58,125,5,5,60,125,5,5,62,125,5,5,64,125,5,5,66,125,5,112,66,125,5,5,68,125,5,5,70,125,5,5,72,125,5,5,74,125,5,5,76,125,5,5,78,125,5,5,80,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,126,119,18,193,49,119,18,193,2,82,125,193,9,82,125,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,23,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,29,193,133,119,18,193,140,119,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,25,5,5,0,25,5,5,0,27,5,5,0,27,5,5,0,27,5,5,0,27,5,5,0,31,5,5,0,33,5,5,0,33,5,5,0,33,5,5,0,35,5,5,0,35,5,5,0,37,5,5,0,37,5,5,0,37,5,5,0,37,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,27,5,5,0,29,5,5,0,29,5,5,0,23,5,5,0,25,5,5,0,21,5,5,0,23,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,206,224,239,0,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,121,18,5,5,123,18,5,5,125,18,5,5,127,18,5,5,129,18,5,5,131,18,5,5,133,18,5,5,135,18,5,5,137,18,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,21,5,5,0,29,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,20,111,5,5,24,111,5,5,132,111,5,5,134,111,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,5,5,112,111,5,5,114,111,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,65,13,118,5,5,15,118,193,2,17,118,193,9,17,118,193,16,17,118,193,23,17,118,193,30,17,118,193,37,17,118,193,44,17,118,193,51,17,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,5,5,0,21,255,255,255,255,255,255,255,255,255,255,255,255,197,2,154,2,197,67,154,2,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,100,243,113,193,16,243,113,193,30,243,113,193,51,243,113,193,107,243,113,193,114,243,113,193,121,243,113,193,128,243,113,193,135,243,113,193,142,243,113,193,149,243,113,193,156,243,113,193,2,243,113,193,72,243,113,193,2,239,113,193,93,243,113,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,32,5,233,113,193,37,243,113,193,58,243,113,193,107,239,113,32,5,237,113,32,5,241,113,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,193,79,6,117,193,86,6,117,193,93,6,117,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,206,96,228,0,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,32,5,42,120,32,5,63,120,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,206,128,233,0,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,193,165,0,198,225,165,0,198,1,166,0,198,33,166,0,198,65,166,0,198,97,166,0,198,129,166,0,198,161,166,0,198,193,166,0,198,225,166,0,198,1,167,0,198,33,167,0,198,65,167,0,198,97,167,0,198,129,167,0,198,161,167,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,206,224,236,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,237,0,206,0,237,0,206,0,237,0,206,0,237,0,193,247,96,117,193,254,96,117,193,7,97,117,193,21,97,117,193,28,97,117,193,35,97,117,193,42,97,117,193,49,97,117,193,56,97,117,193,63,97,117,193,70,97,117,193,77,97,117,193,84,97,117,201,32,23,2,201,32,24,2,193,119,97,117,193,126,97,117,255,255,255,255,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,202,160,245,2,202,193,245,2,202,226,245,2,202,3,246,2,202,36,246,2,202,69,246,2,202,102,246,2,202,135,246,2,202,168,246,2,202,201,246,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,202,32,248,2,202,65,248,2,202,98,248,2,202,131,248,2,202,164,248,2,202,197,248,2,202,230,248,2,202,7,249,2,202,40,249,2,202,73,249,2,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,28,5,0,74,25,5,0,76,25,5,0,78,25,5,0,80,25,5,0,82,25,5,0,84,28,5,0,86,25,5,0,88,25,5,0,90,25,5,0,92,31,5,0,19,197,2,72,0,197,162,72,0,197,194,73,0,197,98,74,0,197,2,75,0,197,162,75,0,197,66,76,0,197,226,76,0,197,130,77,0,197,34,79,0,31,5,0,21,31,5,0,23,31,5,0,25,31,5,0,27,31,5,0,29,31,5,0,31,31,5,0,33,31,5,0,35,34,5,0,37,197,98,71,0,31,5,0,19,197,5,226,2,197,163,223,2,197,3,224,2,197,164,226,2,197,35,227,2,197,195,227,2,197,35,228,2,197,133,228,2,197,36,229,2,197,162,229,2,197,230,229,2,197,163,230,2,197,5,231,2,197,68,192,2,197,164,231,2,197,35,232,2,197,131,232,2,197,36,233,2,197,162,233,2,197,132,234,2,197,229,233,2,197,2,235,2,197,70,235,2,197,3,193,2,198,130,136,0,198,194,138,0,198,226,139,0,198,162,140,0,198,98,141,0,198,34,142,0,198,226,142,0,198,162,143,0,5,5,170,124,32,5,170,124,5,5,172,124,32,5,172,124,5,5,174,124,5,5,176,124,32,5,176,124,193,2,178,124,193,9,178,124,193,16,178,124,193,23,178,124,193,30,178,124,193,37,178,124,193,44,178,124,5,5,180,124,32,5,180,124,5,112,180,124,5,5,182,124,5,5,184,124,5,112,184,124,5,5,186,124,5,5,188,124,32,5,188,124,5,112,188,124,5,5,190,124,5,5,192,124,5,5,194,124,32,5,194,124,5,112,194,124,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,5,5,0,21,5,5,0,23,198,2,138,0,198,34,139,0,198,66,140,0,198,2,141,0,198,194,141,0,198,130,142,0,198,66,143,0,198,2,144,0,198,194,144,0,198,195,136,0,198,227,137,0,198,3,139,0,198,35,140,0,198,227,140,0,198,163,141,0,198,99,142,0,198,35,143,0,198,227,143,0,198,163,144,0,198,99,145,0,198,35,146,0,198,227,146,0,198,163,147,0,198,99,148,0,198,35,149,0,198,131,149,0,198,227,149,0,198,67,150,0,198,163,150,0,198,3,151,0,198,99,151,0,197,227,133,0,198,98,138,0,198,130,139,0,198,194,151,0,198,2,152,0,198,66,152,0,198,130,152,0,198,194,152,0,198,2,153,0,198,66,153,0,198,35,137,0,198,67,138,0,198,99,139,0,197,162,136,0,197,99,130,0,197,194,130,0,197,163,152,0,44,5,6,122,44,5,8,122,44,5,10,122,44,5,14,122,44,5,16,122,40,5,18,122,38,5,20,122,40,5,22,122,40,5,24,122,32,5,26,122,38,5,28,122,40,5,30,122,40,5,32,122,38,5,34,122,38,5,36,122,38,5,38,122,198,98,144,0,198,34,145,0,198,131,137,0,198,163,138,0,198,195,139,0,198,131,140,0,198,67,141,0,198,3,142,0,198,195,142,0,198,131,143,0,198,67,144,0,198,3,145,0,198,195,145,0,198,131,146,0,198,67,147,0,198,3,148,0,198,195,148,0,197,227,137,0,197,130,119,0,197,98,111,0,197,99,113,0,197,66,180,0,197,130,181,0,197,194,120,0,197,3,121,0,197,99,121,0,197,194,141,0,198,2,189,0,198,162,194,0,198,66,185,0,198,66,194,0,198,228,195,0,184,5,0,74,180,5,0,76,180,5,0,78,180,5,0,80,177,5,0,82,180,5,0,84,184,5,0,86,180,5,0,88,177,5,0,90,177,5,0,92,180,5,0,72,197,66,139,0,197,66,181,0,197,162,190,0,197,226,107,0,197,34,210,0,197,66,120,0,197,98,117,0,197,4,119,0,197,228,132,0,197,130,139,0,197,227,160,0,197,130,161,0,197,130,179,0,197,195,191,0,197,195,205,0,197,34,209,0,197,66,87,0,197,199,82,0,197,130,82,0,197,34,90,0,197,162,94,0,198,193,219,0,198,65,177,0,198,129,178,0,198,161,196,0,198,65,173,0,198,33,174,0,198,129,173,0,198,65,188,0,198,193,182,0,198,161,180,0,198,129,186,0,198,65,186,0,198,65,203,0,198,33,177,0,198,193,213,0,198,33,181,0,198,1,185,0,197,66,86,0,197,130,86,0,197,194,86,0,197,2,87,0,197,34,88,0,197,98,88,0,197,34,81,0,197,226,85,0,197,162,88,0,197,226,88,0,197,34,89,0,197,98,89,0,197,162,89,0,197,226,89,0,197,194,91,0,165,5,0,42,165,5,0,44,165,5,0,46,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,165,5,0,56,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,255,255,255,255,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,255,255,255,255,165,5,0,46,165,5,0,48,255,255,255,255,255,255,255,255,165,5,0,54,255,255,255,255,255,255,255,255,165,5,0,60,165,5,0,62,255,255,255,255,255,255,255,255,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,255,255,255,255,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,255,255,255,255,22,5,0,52,255,255,255,255,22,5,0,56,22,5,0,58,22,5,0,60,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,165,5,0,44,255,255,255,255,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,255,255,255,255,255,255,255,255,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,255,255,255,255,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,255,255,255,255,22,5,0,42,22,5,0,44,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,255,255,255,255,165,5,0,70,255,255,255,255,255,255,255,255,255,255,255,255,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,255,255,255,255,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,22,5,0,70,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,165,5,0,44,165,5,0,46,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,165,5,0,56,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,172,5,0,74,165,5,0,76,165,5,0,78,165,5,0,80,165,5,0,82,165,5,0,84,172,5,0,86,165,5,0,88,165,5,0,90,165,5,0,92,22,5,0,42,22,5,0,44,22,5,0,46,22,5,0,48,22,5,0,50,22,5,0,52,22,5,0,54,22,5,0,56,22,5,0,58,22,5,0,60,168,5,0,62,168,5,0,64,168,5,0,66,168,5,0,68,168,5,0,70,168,5,0,72,176,5,0,74,168,5,0,76,168,5,0,78,168,5,0,80,168,5,0,82,168,5,0,84,176,5,0,86,168,5,0,88,168,5,0,90,168,5,0,92,25,5,0,42,25,5,0,44,25,5,0,46,25,5,0,48,25,5,0,50,25,5,0,52,25,5,0,54,25,5,0,56,25,5,0,58,25,5,0,60,25,5,0,62,25,5,0,64,25,5,0,66,25,5,0,68,25,5,0,70,25,5,0,72,22,5,0,62,22,5,0,64,22,5,0,66,22,5,0,68,255,255,255,255,22,5,0,72,24,5,0,74,22,5,0,76,22,5,0,78,22,5,0,80,22,5,0,82,22,5,0,84,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,165,5,0,42,165,5,0,44,165,5,0,46,165,5,0,48,165,5,0,50,165,5,0,52,165,5,0,54,165,5,0,56,165,5,0,58,165,5,0,60,165,5,0,62,165,5,0,64,165,5,0,66,165,5,0,68,165,5,0,70,165,5,0,72,184,5,0,74,180,5,0,76,180,5,0,78,180,5,0,80,177,5,0,82,180,5,0,84,184,5,0,86,180,5,0,88,177,5,0,90,177,5,0,92,197,66,138,0,197,34,159,0,197,226,190,0,197,34,192,0,197,163,182,0,197,34,210,0,168,5,0,42,168,5,0,44,168,5,0,46,168,5,0,48,168,5,0,50,168,5,0,52,168,5,0,54,168,5,0,56,168,5,0,58,168,5,0,60,168,5,0,62,168,5,0,64,168,5,0,66,168,5,0,68,168,5,0,70,168,5,0,72,180,5,0,80,177,5,0,82,184,5,0,86,43,5,0,42,46,5,20,43,44,5,22,43,32,5,16,43,43,5,0,44,43,5,0,48,43,5,0,50,38,5,24,51,44,5,28,51,32,5,40,51,43,5,0,54,32,5,14,59,43,5,0,62,43,5,0,66,44,5,30,69,43,5,0,70,46,5,30,71,32,5,44,71,32,5,46,71,43,5,0,72,43,5,0,80,43,5,0,82,32,5,10,83,46,5,40,83,43,5,0,84,32,5,102,93,44,5,8,96,40,5,10,96,49,5,14,96,5,5,6,85,5,5,6,87,5,5,6,93,5,5,28,93,5,5,100,93,5,5,102,93,5,5,12,96,5,5,40,96,5,5,52,96,5,5,62,96,5,5,84,96,5,5,100,97,180,5,0,42,197,162,108,0,177,5,0,44,5,5,10,45,177,5,0,48,180,5,0,50,174,5,20,51,177,5,0,54,180,5,0,56,180,5,0,58,177,5,0,60,180,5,0,62,180,5,0,64,180,5,0,66,180,5,0,68,5,5,8,69,180,5,0,70,174,5,58,71,180,5,0,72,180,5,0,76,196,196,156,42,196,196,5,42,196,182,156,42,196,182,5,42,197,131,98,0,197,35,98,0,197,67,99,0,197,227,98,0,197,195,100,0,197,99,100,0,197,3,100,0,197,163,99,0,197,3,105,0,197,163,104,0,197,131,95,0,197,35,95,0,197,67,96,0,197,227,95,0,197,195,97,0,197,99,97,0,197,3,97,0,197,163,96,0,197,67,104,0,197,227,103,0,196,196,156,50,196,196,5,50,196,182,156,50,196,182,5,50,196,154,156,50,196,154,5,50,197,195,124,0,197,99,124,0,196,200,156,42,196,200,5,42,196,156,156,44,196,156,5,44,196,196,156,44,196,196,5,44,196,210,156,44,196,210,5,44,197,163,114,0,197,67,114,0,196,156,156,48,196,156,5,48,196,196,156,48,196,196,5,48,196,210,156,48,196,210,5,48,196,160,156,48,196,160,5,48,196,204,156,48,196,204,5,48,197,67,129,0,197,227,128,0,197,131,128,0,197,35,128,0,196,204,156,50,196,204,5,50,196,208,156,50,196,208,5,50,197,195,127,0,197,99,127,0,196,156,156,52,196,156,5,52,197,194,147,0,197,226,159,0,197,100,105,0,197,194,113,0,197,162,116,0,197,34,117,0,197,196,115,0,197,163,118,0,197,2,120,0,197,66,135,0,197,194,135,0,197,162,137,0,197,130,141,0,197,226,144,0,197,162,145,0,197,2,147,0,197,130,150,0,197,194,150,0,197,3,151,0,197,2,153,0,197,162,154,0,197,67,156,0,197,163,157,0,197,2,182,0,197,132,180,0,197,67,182,0,197,2,183,0,197,194,186,0,197,98,193,0,197,226,209,0,197,35,206,0,197,3,107,0,196,138,160,86,196,138,5,86,196,136,160,86,196,136,5,86,196,150,160,86,196,150,5,86,196,156,160,86,196,156,5,86,196,196,160,86,196,196,5,86,196,156,156,88,196,156,5,88,196,150,156,88,196,150,5,88,196,156,156,90,196,156,5,90,196,142,156,92,196,142,5,92,196,196,156,92,196,196,5,92,196,210,156,92,196,210,5,92,196,210,5,56,196,150,5,80,196,146,5,86,196,146,5,90,197,34,113,0,197,98,190,0,5,5,18,79,5,5,20,79,197,162,192,0,5,5,28,49,5,5,6,43,5,5,14,43,5,5,16,43,5,5,12,45,5,5,6,47,5,5,6,49,5,5,8,49,5,5,6,51,5,5,40,51,5,5,14,59,5,5,8,61,5,5,6,63,5,5,10,65,5,5,6,67,5,5,10,69,5,5,6,71,5,5,32,71,5,5,8,71,5,5,34,71,5,5,26,71,5,5,14,71,5,5,60,71,5,5,44,71,5,5,46,71,5,5,6,73,5,5,14,77,5,5,22,77,5,5,6,81,5,5,6,83,5,5,10,83,5,5,12,83,5,5,44,83,160,5,16,65,5,5,16,65,160,5,18,65,160,5,8,73,160,5,34,77,5,5,8,43,5,5,10,81,160,5,14,57,5,5,14,57,160,5,12,63,5,5,12,63,160,5,22,93,5,5,22,93,158,5,22,43,160,5,12,67,160,5,20,43,160,5,28,43,5,5,14,85,160,5,10,87,5,5,10,87,5,5,16,85,160,5,16,57,5,5,16,57,5,5,26,73,5,5,18,51,5,5,30,77,5,5,48,71,5,5,22,51,46,5,0,60,180,5,0,84,160,5,16,79,160,5,20,93,5,5,18,45,5,5,14,49,5,5,14,53,5,5,14,55,5,5,8,63,5,5,28,65,5,5,10,67,5,5,20,69,5,5,14,73,5,5,26,77,5,5,12,79,5,5,26,79,5,5,10,85,5,5,6,89,5,5,12,93,5,5,10,43,5,5,26,43,5,5,20,49,5,5,14,51,5,5,30,51,5,5,38,51,5,5,26,51,5,5,20,59,5,5,38,71,5,5,32,79,5,5,28,83,5,5,32,93,46,5,28,43,43,5,0,46,46,5,16,47,46,112,0,48,46,5,36,51,197,162,133,0,197,98,133,0,197,66,143,0,197,2,143,0,197,98,160,0,197,34,160,0,197,226,184,0,197,162,184,0,197,98,189,0,197,34,189,0,160,5,12,57,160,5,36,51,160,5,6,55,160,5,24,65,160,5,8,59,5,5,6,75,160,5,20,63,160,5,24,81,160,5,12,61,160,5,16,89,174,5,24,45,5,5,24,45,160,5,56,71,5,5,56,71,160,5,24,83,5,5,24,83,160,5,12,43,5,5,12,43,160,5,22,59,5,5,22,59,160,5,32,83,5,5,32,83,193,33,152,103,193,40,152,103,193,47,152,103,193,54,152,103,193,61,152,103,193,68,152,103,193,75,152,103,255,255,255,255,193,201,152,103,193,208,152,103,193,215,152,103,193,222,152,103,193,229,152,103,193,236,152,103,193,243,152,103,255,255,255,255,5,5,24,43,5,5,18,43,5,5,8,51,5,5,10,51,5,5,16,51,5,5,8,53,5,5,8,55,5,5,26,65,5,5,20,65,5,5,22,65,5,5,14,67,5,5,26,69,5,5,32,69,5,5,10,71,5,5,28,71,5,5,36,71,44,5,78,96,40,5,80,96,46,5,0,58,46,5,0,76,46,5,0,82,46,5,0,84,51,5,8,96,48,5,10,96,48,5,60,96,51,5,78,96,48,5,80,96,5,5,14,83,5,5,14,45,5,5,12,49,5,5,12,53,5,5,8,67,5,5,12,69,5,5,12,73,5,5,18,77,5,5,40,77,5,5,10,79,5,5,12,81,5,5,10,93,5,5,20,55,44,5,120,97,5,112,0,54,197,66,194,0,5,5,18,59,5,5,26,59,5,5,8,73,5,5,26,83,5,5,50,83,162,5,0,58,197,2,140,0,197,163,140,0,197,66,142,0,162,5,0,84,197,194,206,0,197,99,207,0,197,68,208,0,197,194,142,0,162,5,0,88,197,226,210,0,197,131,211,0,162,5,0,64,162,5,0,46,162,5,0,48,162,5,0,66,19,5,0,58,197,194,139,0,197,67,140,0,197,2,142,0,19,5,0,84,197,130,206,0,197,3,207,0,197,196,207,0,197,130,142,0,19,5,0,88,197,162,210,0,197,35,211,0,19,5,0,64,19,5,0,46,19,5,0,48,19,5,0,66,197,2,181,0,197,162,160,0,197,194,4,1,197,98,154,0,197,130,143,0,197,194,143,0,197,226,154,0,197,66,134,0,197,67,116,0,197,4,144,0,197,194,181,0,197,66,161,0,197,2,5,1,197,66,5,1,197,162,155,0,197,2,116,0,197,162,134,0,197,131,144,0,197,227,155,0,197,131,134,0,197,131,194,0,197,130,5,1,197,162,150,0,197,130,120,0,197,34,145,0,197,98,132,0,197,130,162,0,197,194,5,1,197,162,156,0,197,162,117,0,197,98,145,0,197,227,156,0,197,227,117,0,197,2,118,0,197,227,145,0,197,67,157,0,197,67,118,0,197,98,118,0,197,67,146,0,197,131,153,0,197,228,153,0,197,2,135,0,197,163,146,0,197,3,158,0,197,227,134,0,197,227,185,0,197,69,186,0,197,230,186,0,197,66,183,0,197,2,163,0,197,2,6,1,197,162,158,0,197,226,183,0,197,66,163,0,197,66,6,1,197,226,158,0,197,66,147,0,197,34,159,0,197,34,184,0,197,130,163,0,197,130,6,1,197,98,159,0,197,130,147,0,197,162,159,0,255,255,255,255,255,255,255,255,160,5,8,87,5,5,8,87,160,5,12,47,158,5,14,79,160,5,12,93,160,5,10,49,5,5,10,49,160,5,8,79,5,5,8,79,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,162,209,0,197,98,209,0,160,5,24,93,5,5,24,93,160,5,40,93,5,5,40,93,160,5,42,93,5,5,42,93,160,5,46,93,5,5,46,93,160,5,54,93,5,5,54,93,160,5,56,93,5,5,56,93,158,5,58,93,5,5,58,93,44,5,58,93,5,5,26,49,5,5,36,65,5,5,20,67,5,5,28,69,5,5,58,77,5,5,60,77,5,5,22,81,5,5,60,93,160,120,0,48,5,120,0,48,160,112,0,52,5,112,0,52,160,112,0,54,160,5,22,55,5,5,22,55,197,131,125,0,197,35,125,0,197,3,127,0,197,163,126,0,197,67,126,0,197,227,125,0,197,3,130,0,197,163,129,0,196,182,156,58,196,182,5,58,196,196,156,58,196,196,5,58,196,196,156,70,196,196,5,70,196,182,156,70,196,182,5,70,197,35,164,0,197,195,163,0,197,227,164,0,197,131,164,0,197,99,166,0,197,3,166,0,197,163,165,0,197,67,165,0,197,99,178,0,197,3,178,0,197,163,174,0,197,67,174,0,197,99,175,0,197,3,175,0,197,227,176,0,197,131,176,0,43,5,0,52,32,5,14,61,46,5,6,55,46,5,34,83,46,5,16,59,46,5,24,59,46,5,8,59,32,5,18,59,46,5,12,61,32,5,30,65,32,5,28,65,46,5,6,65,46,5,12,67,32,5,46,83,46,5,14,69,32,5,22,69,46,5,6,69,46,5,50,71,32,5,24,73,44,5,14,79,44,5,22,79,32,5,14,81,46,5,20,83,46,5,48,83,32,5,6,83,46,5,12,85,46,5,20,85,43,5,0,92,46,5,16,93,46,5,18,93,44,5,26,93,51,5,30,96,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,18,57,5,5,18,57,5,5,12,59,197,130,135,0,197,66,179,0,5,5,42,83,5,5,20,53,5,5,22,73,5,5,16,67,5,5,10,59,5,5,18,67,196,164,156,54,196,164,5,54,196,156,156,56,196,156,5,56,196,196,156,56,196,196,5,56,196,150,156,56,196,150,5,56,196,160,156,56,196,160,5,56,196,206,156,56,196,206,5,56,196,208,156,58,196,208,5,58,197,227,138,0,197,131,138,0,196,136,156,62,196,136,5,62,196,196,156,62,196,196,5,62,196,210,156,62,196,210,5,62,196,196,156,64,196,196,5,64,197,99,148,0,197,3,148,0,196,210,156,64,196,210,5,64,196,204,156,64,196,204,5,64,196,136,156,66,196,136,5,66,24,5,0,86,22,5,0,88,22,5,0,90,22,5,0,92,32,5,6,59,32,5,6,61,255,255,255,255,255,255,255,255,177,5,6,96,165,5,8,96,160,5,10,96,166,5,14,96,177,5,16,96,172,5,24,96,172,5,28,96,172,5,30,96,177,5,32,96,176,5,36,96,172,5,38,96,168,5,42,96,172,5,44,96,172,5,46,96,172,5,48,96,177,5,50,96,168,5,60,96,172,5,30,96,172,5,66,96,172,5,74,96,177,5,76,96,165,5,78,96,160,5,80,96,172,5,82,96,160,5,14,63,5,5,14,63,160,5,16,63,5,5,16,63,160,5,18,63,5,5,18,63,160,5,8,65,5,5,8,65,160,5,12,65,5,5,12,65,160,5,52,71,5,5,52,71,160,5,42,71,5,5,42,71,197,2,180,0,197,194,179,0,160,5,10,73,5,5,10,73,160,5,18,73,5,5,18,73,160,5,20,73,5,5,20,73,160,5,8,75,5,5,8,75,160,5,10,75,5,5,10,75,174,5,12,77,5,5,12,77,160,5,62,77,5,5,62,77,160,5,8,85,5,5,8,85,197,35,176,0,197,195,175,0,197,163,177,0,197,67,177,0,196,196,156,82,196,196,5,82,196,182,156,82,196,182,5,82,197,3,202,0,197,163,201,0,197,195,202,0,197,99,202,0,197,67,204,0,197,227,203,0,197,131,203,0,197,35,203,0,197,3,205,0,197,163,204,0,196,138,156,90,196,138,5,90,196,196,156,90,196,196,5,90,196,182,156,90,196,182,5,90,196,154,156,90,196,154,5,90,197,66,150,0,197,2,150,0,160,5,18,85,5,5,18,85,160,5,12,91,5,5,12,91,196,156,156,66,196,156,5,66,196,196,156,66,196,196,5,66,196,156,156,68,196,156,5,68,196,196,156,68,196,196,5,68,196,210,156,68,196,210,5,68,196,204,156,68,196,204,5,68,197,99,168,0,197,3,168,0,197,35,169,0,197,195,168,0,197,163,173,0,197,67,173,0,197,227,172,0,197,131,172,0,196,136,156,72,196,136,5,72,196,156,156,72,196,156,5,72,196,156,156,76,196,156,5,76,196,196,156,76,196,196,5,76,197,131,185,0,197,35,185,0,196,210,156,76,196,210,5,76,196,156,156,78,196,156,5,78,196,196,156,78,196,196,5,78,197,3,188,0,197,163,187,0,197,195,188,0,197,99,188,0,197,3,190,0,197,163,189,0,196,156,156,80,196,156,5,80,196,196,156,80,196,196,5,80,196,210,156,80,196,210,5,80,196,204,156,80,196,204,5,80,196,198,156,82,196,198,5,82,196,208,156,82,196,208,5,82,196,204,156,82,196,204,5,82,197,67,200,0,197,227,199,0,197,3,201,0,197,163,200,0,196,154,156,84,196,154,5,84,196,196,156,84,196,196,5,84,32,5,12,87,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,226,212,0,197,98,219,0,197,35,215,0,197,163,221,0,197,99,213,0,197,227,219,0,197,227,216,0,197,99,223,0,197,34,213,0,197,162,219,0,197,131,215,0,197,3,222,0,197,195,213,0,197,67,220,0,197,67,217,0,197,195,223,0,197,194,229,0,197,194,231,0,197,3,231,0,197,3,233,0,197,67,230,0,197,67,232,0,255,255,255,255,255,255,255,255,197,2,230,0,197,2,232,0,197,99,231,0,197,99,233,0,197,163,230,0,197,163,232,0,255,255,255,255,255,255,255,255,197,163,218,0,197,35,225,0,197,228,215,0,197,100,222,0,197,36,214,0,197,164,220,0,197,164,217,0,197,36,224,0,197,3,219,0,197,131,225,0,197,100,216,0,197,228,222,0,197,164,214,0,197,36,221,0,197,36,218,0,197,164,224,0,197,131,240,0,197,3,247,0,197,196,237,0,197,68,244,0,197,4,236,0,197,132,242,0,197,132,239,0,197,4,246,0,197,227,240,0,197,99,247,0,197,68,238,0,197,196,244,0,197,132,236,0,197,4,243,0,197,4,240,0,197,132,246,0,197,2,21,1,197,130,27,1,197,67,23,1,197,195,29,1,197,131,21,1,197,3,28,1,197,3,25,1,197,131,31,1,197,66,21,1,197,194,27,1,197,163,23,1,197,35,30,1,197,227,21,1,197,99,28,1,197,99,25,1,197,227,31,1,197,194,226,0,197,226,225,0,197,66,234,0,197,194,233,0,197,162,248,0,197,194,247,0,197,162,0,1,197,34,0,1,197,66,11,1,197,194,10,1,197,98,17,1,197,162,16,1,197,226,34,1,197,2,34,1,255,255,255,255,255,255,255,255,197,194,234,0,197,66,241,0,197,3,237,0,197,131,243,0,197,67,235,0,197,195,241,0,197,195,238,0,197,67,245,0,197,2,235,0,197,130,241,0,197,99,237,0,197,227,243,0,197,163,235,0,197,35,242,0,197,35,239,0,197,163,245,0,197,162,250,0,197,98,253,0,197,227,251,0,197,163,254,0,197,35,251,0,197,227,253,0,197,163,252,0,197,99,255,0,197,226,250,0,197,162,253,0,197,67,252,0,197,3,255,0,197,131,251,0,197,67,254,0,197,3,253,0,197,195,255,0,197,194,6,1,197,194,8,1,197,3,8,1,197,3,10,1,197,67,7,1,197,67,9,1,255,255,255,255,255,255,255,255,197,2,7,1,197,2,9,1,197,99,8,1,197,99,10,1,197,163,7,1,197,163,9,1,255,255,255,255,255,255,255,255,197,130,12,1,197,226,13,1,197,35,13,1,197,35,15,1,197,195,12,1,197,99,14,1,197,131,13,1,197,227,15,1,255,255,255,255,197,34,14,1,255,255,255,255,197,131,15,1,255,255,255,255,197,195,14,1,255,255,255,255,197,67,16,1,174,5,98,96,5,5,98,96,160,5,100,96,5,5,100,96,160,5,102,96,5,5,102,96,160,5,104,96,5,5,104,96,160,5,106,96,5,5,106,96,160,5,110,96,5,5,110,96,160,5,112,96,5,5,112,96,160,5,114,96,5,5,114,96,160,5,116,96,5,5,116,96,174,5,118,96,5,5,118,96,174,5,120,96,5,5,120,96,160,5,124,96,5,5,124,96,160,5,126,96,5,5,126,96,160,5,128,96,5,5,128,96,160,5,134,96,5,5,134,96,160,5,136,96,5,5,136,96,160,5,138,96,5,5,138,96,160,5,140,96,5,5,140,96,160,5,142,96,5,5,142,96,160,5,144,96,5,5,144,96,160,5,146,96,5,5,146,96,160,5,148,96,5,5,148,96,160,5,150,96,5,5,150,96,160,5,152,96,5,5,152,96,160,5,154,96,5,5,154,96,160,5,208,96,5,5,208,96,160,5,210,96,5,5,210,96,160,5,108,96,5,5,108,96,160,5,122,96,5,5,122,96,160,5,130,96,5,5,130,96,160,5,132,96,5,5,132,96,160,5,156,96,5,5,156,96,160,5,158,96,5,5,158,96,160,5,164,96,5,5,164,96,160,5,166,96,5,5,166,96,160,5,168,96,5,5,168,96,160,5,176,96,5,5,176,96,160,5,180,96,5,5,180,96,160,5,182,96,5,5,182,96,160,5,184,96,5,5,184,96,160,5,186,96,5,5,186,96,160,5,188,96,5,5,188,96,160,5,190,96,5,5,190,96,160,5,196,96,5,5,196,96,160,5,200,96,5,5,200,96,160,5,202,96,5,5,202,96,160,5,204,96,5,5,204,96,160,5,212,96,5,5,212,96,32,5,12,97,32,5,14,97,32,5,16,97,32,5,26,97,32,5,44,97,32,5,50,97,32,5,84,97,32,5,98,97,32,5,114,97,16,5,120,97,16,5,138,97,32,5,142,97,32,5,150,97,32,5,156,97,32,5,162,97,32,5,182,97,32,5,192,97,32,5,200,97,32,5,218,97,32,5,222,97,198,193,159,0,197,2,46,1,32,5,6,97,32,5,40,97,32,5,82,97,198,225,154,0,198,33,157,0,32,5,240,97,198,161,157,0,198,65,158,0,198,161,158,0,198,65,159,0,32,5,14,97,32,5,26,97,16,5,138,97,32,5,156,97,32,5,162,97,32,5,162,97,16,5,226,97,198,33,157,0,198,225,154,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,6,99,160,5,10,99,160,5,14,99,160,5,18,99,160,5,22,99,160,5,26,99,160,5,30,99,160,5,38,99,160,5,42,99,160,5,46,99,160,5,50,99,160,5,54,99,160,5,58,99,160,5,66,99,160,5,70,99,160,5,74,99,160,5,30,97,5,5,30,97,160,5,68,97,5,5,68,97,198,161,153,0,193,9,46,97,160,5,210,97,5,5,210,97,160,5,64,97,5,5,64,97,160,5,168,97,5,5,168,97,198,161,154,0,193,2,164,97,198,161,156,0,193,9,194,97,160,5,198,97,5,5,198,97,198,225,156,0,193,9,202,97,198,161,155,0,193,9,190,97,160,5,220,97,5,5,220,97,172,5,138,97,16,5,138,97,172,5,138,97,16,5,138,97,44,5,226,97,44,5,232,97,32,5,180,97,198,1,158,0,160,5,52,97,5,5,52,97,198,225,153,0,193,9,56,97,160,5,60,97,5,5,60,97,160,5,76,97,5,5,76,97,174,5,82,97,5,5,82,97,198,1,155,0,193,2,178,97,198,33,156,0,193,30,190,97,198,1,157,0,193,2,224,97,160,5,228,97,5,5,228,97,198,97,157,0,193,9,236,97,198,129,157,0,193,2,242,97,198,193,157,0,193,9,242,97,198,129,158,0,193,23,246,97,198,225,158,0,193,37,246,97,198,33,159,0,193,51,246,97,198,97,160,0,193,93,246,97,174,5,70,98,174,5,72,98,160,5,74,98,174,5,76,98,174,5,78,98,160,5,80,98,174,5,82,98,174,5,84,98,174,5,86,98,174,5,88,98,174,5,90,98,160,5,92,98,160,5,94,98,160,5,96,98,160,5,98,98,255,255,255,255,5,5,6,98,5,5,8,98,5,5,10,98,5,5,12,98,5,5,14,98,5,5,16,98,5,5,18,98,5,5,20,98,5,5,22,98,5,5,24,98,5,5,26,98,5,5,28,98,5,5,30,98,5,5,32,98,5,5,34,98,5,5,36,98,32,5,6,98,32,5,8,98,32,5,10,98,32,5,12,98,32,5,14,98,32,5,16,98,32,5,18,98,255,255,255,255,32,5,22,98,32,5,24,98,32,5,26,98,32,5,28,98,32,5,30,98,32,5,32,98,32,5,34,98,32,5,36,98,32,5,38,98,32,5,40,98,32,5,42,98,32,5,44,98,32,5,46,98,32,5,48,98,32,5,50,98,32,5,52,98,32,5,54,98,255,255,255,255,255,255,255,255,32,5,60,98,32,5,62,98,32,5,64,98,32,5,66,98,32,5,68,98,174,5,6,98,174,5,8,98,174,5,10,98,174,5,12,98,174,5,14,98,174,5,16,98,174,5,18,98,160,5,20,98,174,5,22,98,174,5,24,98,174,5,26,98,174,5,28,98,174,5,30,98,174,5,32,98,174,5,34,98,174,5,36,98,174,5,38,98,174,5,40,98,174,5,42,98,174,5,44,98,174,5,46,98,174,5,48,98,174,5,50,98,174,5,52,98,174,5,54,98,160,5,56,98,160,5,58,98,174,5,60,98,174,5,62,98,174,5,64,98,174,5,66,98,174,5,68,98,5,5,38,98,5,5,40,98,5,5,42,98,5,5,44,98,5,5,46,98,5,5,48,98,5,5,50,98,5,5,52,98,5,5,54,98,5,5,56,98,5,5,58,98,5,5,60,98,5,5,62,98,5,5,64,98,5,5,66,98,5,5,68,98,5,5,70,98,5,5,72,98,5,5,74,98,5,5,76,98,5,5,78,98,5,5,80,98,5,5,82,98,5,5,84,98,5,5,86,98,5,5,88,98,5,5,90,98,5,5,92,98,5,5,94,98,5,5,96,98,5,5,98,98,255,255,255,255,32,5,70,98,32,5,72,98,255,255,255,255,32,5,76,98,32,5,78,98,255,255,255,255,32,5,82,98,32,5,84,98,32,5,86,98,32,5,88,98,32,5,90,98,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,206,0,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,102,98,193,2,104,98,193,9,104,98,5,5,106,98,193,2,108,98,193,9,108,98,193,16,108,98,5,5,110,98,193,2,112,98,193,9,112,98,193,16,112,98,193,23,112,98,193,30,112,98,5,5,114,98,193,2,116,98,193,9,116,98,193,16,116,98,5,5,118,98,193,2,120,98,193,9,120,98,193,16,120,98,193,23,120,98,193,30,120,98,193,37,120,98,193,44,120,98,193,51,120,98,193,58,120,98,193,65,120,98,193,72,120,98,193,79,120,98,193,86,120,98,193,93,120,98,193,100,120,98,193,107,120,98,193,114,120,98,193,121,120,98,193,128,120,98,193,135,120,98,32,5,102,98,32,5,106,98,32,5,110,98,32,5,114,98,32,5,118,98,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,152,99,160,5,36,99,160,5,64,99,160,5,92,99,160,5,144,99,160,5,156,99,255,255,255,255,160,5,162,99,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,160,5,172,99,255,255,255,255,255,255,255,255,5,5,6,99,5,5,10,99,5,5,14,99,5,5,18,99,5,5,22,99,5,5,26,99,5,5,30,99,5,5,38,99,5,5,42,99,5,5,46,99,5,5,50,99,5,5,54,99,5,5,58,99,5,5,66,99,5,5,70,99,5,5,74,99,5,5,8,99,5,5,12,99,5,5,16,99,5,5,20,99,5,5,24,99,5,5,28,99,5,5,32,99,5,5,40,99,5,5,44,99,5,5,48,99,5,5,52,99,5,5,56,99,5,5,60,99,5,5,68,99,5,5,72,99,5,5,76,99,5,5,80,99,5,5,84,99,5,5,88,99,5,5,96,99,5,5,100,99,5,5,104,99,5,5,108,99,5,5,112,99,5,5,116,99,5,5,120,99,5,5,124,99,5,5,128,99,5,5,132,99,5,5,136,99,5,5,140,99,5,5,148,99,160,5,8,99,160,5,12,99,160,5,16,99,160,5,20,99,160,5,24,99,160,5,28,99,160,5,32,99,160,5,40,99,160,5,44,99,160,5,48,99,160,5,52,99,160,5,56,99,160,5,60,99,160,5,68,99,160,5,72,99,160,5,76,99,160,5,80,99,160,5,84,99,160,5,88,99,160,5,96,99,160,5,100,99,160,5,104,99,160,5,108,99,160,5,112,99,160,5,116,99,160,5,120,99,160,5,124,99,160,5,128,99,160,5,132,99,160,5,136,99,160,5,140,99,160,5,148,99,160,5,78,99,160,5,82,99,160,5,86,99,160,5,94,99,160,5,98,99,160,5,102,99,160,5,106,99,160,5,110,99,160,5,114,99,160,5,118,99,160,5,122,99,160,5,126,99,160,5,130,99,160,5,134,99,160,5,138,99,160,5,146,99,160,5,150,99,160,5,34,99,160,5,62,99,160,5,90,99,160,5,142,99,160,5,154,99,160,5,158,99,160,5,160,99,160,5,164,99,160,5,166,99,160,5,168,99,255,255,255,255,255,255,255,255,160,5,170,99,160,5,174,99,160,5,176,99,5,5,152,99,5,5,36,99,5,5,64,99,5,5,92,99,5,5,144,99,5,5,156,99,255,255,255,255,5,5,162,99,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,172,99,255,255,255,255,255,255,255,255,193,9,141,103,193,16,141,103,193,23,141,103,193,30,141,103,193,37,141,103,193,44,141,103,193,51,141,103,193,58,141,103,193,65,141,103,193,72,141,103,193,79,141,103,193,86,141,103,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,197,34,58,1,197,98,58,1,255,255,255,255,197,226,58,1,197,162,58,1,255,255,255,255,197,98,59,1,197,162,59,1,197,226,59,1,197,162,60,1,197,162,61,1,197,194,53,1,197,194,52,1,197,98,57,1,197,34,59,1,197,66,52,1,46,5,14,102,32,5,14,102,49,5,32,102,38,5,32,102,16,5,32,102,27,5,32,102,49,5,34,102,38,5,34,102,16,5,34,102,27,5,34,102,49,5,36,102,38,5,36,102,16,5,36,102,27,5,36,102,49,5,48,102,38,5,48,102,46,5,6,102,46,5,8,102,32,5,8,102,46,5,10,102,32,5,10,102,46,5,16,102,32,5,16,102,46,5,18,102,32,5,18,102,49,5,22,102,38,5,22,102,16,5,22,102,27,5,22,102,49,5,26,102,38,5,26,102,48,5,30,102,40,5,30,102,24,5,30,102,32,5,30,102,46,5,40,102,32,5,40,102,48,5,42,102,40,5,42,102,24,5,42,102,32,5,42,102,48,5,44,102,40,5,44,102,24,5,44,102,32,5,44,102,48,5,58,102,40,5,58,102,24,5,58,102,198,97,165,0,198,65,165,0,46,5,232,102,32,5,232,102,49,5,246,102,38,5,246,102,16,5,246,102,27,5,246,102,16,5,236,102,27,5,236,102,197,34,62,1,197,226,61,1,198,194,160,0,198,130,160,0,197,34,66,1,197,226,65,1,197,162,66,1,197,98,66,1,198,66,161,0,198,2,161,0,197,34,67,1,197,226,66,1,197,34,69,1,197,226,68,1,197,162,68,1,197,226,67,1,197,162,67,1,197,98,67,1,49,5,240,102,38,5,240,102,16,5,240,102,27,5,240,102,197,130,149,1,197,2,152,1,197,2,153,1,197,162,154,1,197,34,155,1,197,130,163,1,197,34,165,1,197,98,165,1,197,162,165,1,197,2,106,1,197,162,176,1,197,226,176,1,197,162,177,1,197,226,178,1,197,162,179,1,197,34,180,1,197,34,184,1,197,226,186,1,197,34,187,1,197,130,165,1,197,194,178,1,197,194,189,1,197,66,190,1,197,98,62,1,197,226,62,1,197,98,63,1,197,34,64,1,197,98,65,1,197,34,71,1,197,162,71,1,197,130,72,1,197,226,73,1,197,162,62,1,197,34,63,1,197,226,64,1,197,226,67,1,197,98,68,1,197,98,71,1,197,226,71,1,197,194,72,1,197,162,74,1,197,226,75,1,197,98,76,1,197,226,76,1,197,130,78,1,197,34,80,1,197,194,82,1,197,226,85,1,197,98,86,1,197,162,86,1,197,34,88,1,197,34,89,1,197,162,89,1,197,34,90,1,197,34,92,1,197,98,94,1,197,2,95,1,197,194,96,1,197,2,97,1,197,66,97,1,197,130,99,1,197,2,101,1,197,34,102,1,197,34,104,1,197,130,142,1,197,194,143,1,197,162,145,1,197,130,146,1,197,2,150,1,197,130,150,1,197,2,151,1,197,130,151,1,197,130,152,1,197,98,157,1,197,194,159,1,197,194,161,1,197,2,163,1,197,226,164,1,197,34,83,1,197,130,83,1,197,226,83,1,197,162,105,1,197,194,171,1,197,130,174,1,197,34,176,1,197,34,177,1,197,34,179,1,197,226,180,1,197,34,181,1,197,162,180,1,197,226,184,1,197,194,185,1,197,98,186,1,197,98,187,1,197,66,189,1,197,98,64,1,193,44,38,102,193,65,38,102,193,2,70,102,5,5,164,102,193,37,176,102,193,30,180,102,193,37,198,102,193,16,202,102,193,2,24,102,193,9,24,102,193,37,132,102,193,44,234,102,193,16,24,102,16,5,26,102,5,5,100,102,5,5,152,102,193,2,194,102,193,16,234,102,193,44,132,102,193,37,172,102,193,30,190,102,255,255,255,255,193,72,38,102,193,79,38,102,193,2,56,102,193,51,132,102,193,58,248,102,193,16,176,102,193,9,180,102,193,2,208,102,193,58,38,102,193,9,56,102,27,5,26,102,16,5,30,102,16,5,58,102,16,5,84,102,255,255,255,255,27,5,222,102,16,5,112,102,16,5,72,102,16,5,158,102,23,5,238,102,16,5,182,102,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,16,5,110,102,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,16,5,86,102,16,5,148,102,16,5,160,102,16,5,168,102,32,5,28,102,16,5,206,102,198,129,161,0,198,161,162,0,27,5,26,102,16,5,30,102,16,5,58,102,16,5,84,102,16,5,214,102,27,5,222,102,16,5,112,102,16,5,72,102,16,5,158,102,23,5,238,102,255,255,255,255,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,16,5,110,102,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,16,5,86,102,16,5,148,102,16,5,160,102,16,5,168,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,30,102,16,5,58,102,255,255,255,255,16,5,214,102,255,255,255,255,255,255,255,255,16,5,72,102,16,5,158,102,23,5,238,102,16,5,182,102,255,255,255,255,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,255,255,255,255,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,255,255,255,255,16,5,148,102,16,5,160,102,16,5,168,102,32,5,28,102,255,255,255,255,198,129,161,0,255,255,255,255,255,255,255,255,16,5,30,102,16,5,58,102,255,255,255,255,16,5,214,102,255,255,255,255,255,255,255,255,16,5,72,102,255,255,255,255,23,5,238,102,16,5,182,102,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,255,255,255,255,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,255,255,255,255,16,5,148,102,255,255,255,255,16,5,168,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,30,102,16,5,58,102,16,5,84,102,255,255,255,255,27,5,222,102,16,5,112,102,16,5,72,102,16,5,158,102,23,5,238,102,255,255,255,255,16,5,196,102,16,5,200,102,16,5,204,102,16,5,134,102,16,5,166,102,16,5,174,102,16,5,146,102,16,5,178,102,16,5,110,102,16,5,136,102,16,5,42,102,16,5,44,102,16,5,74,102,16,5,86,102,16,5,148,102,16,5,160,102,16,5,168,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,163,160,1,197,99,161,1,197,3,161,1,197,227,157,1,197,67,158,1,197,163,162,1,197,67,162,1,197,35,164,1,197,195,163,1,197,227,167,1,197,67,168,1,197,35,169,1,197,35,166,1,197,227,166,1,197,131,169,1,197,227,169,1,255,255,255,255,255,255,255,255,197,131,166,1,197,163,181,1,197,3,182,1,197,3,175,1,197,99,175,1,197,99,173,1,197,3,173,1,197,195,173,1,197,131,178,1,197,35,178,1,197,131,188,1,197,35,188,1,197,3,73,1,197,227,77,1,197,34,75,1,197,162,76,1,197,66,78,1,197,226,79,1,197,2,82,1,197,34,85,1,197,98,87,1,197,226,89,1,197,66,77,1,197,226,78,1,197,162,79,1,197,130,96,1,197,130,80,1,197,2,99,1,197,130,100,1,197,162,101,1,197,162,103,1,197,194,116,1,197,98,118,1,197,162,122,1,197,226,124,1,197,98,125,1,197,162,126,1,197,98,128,1,197,226,129,1,197,162,133,1,197,98,134,1,197,162,135,1,197,98,138,1,197,226,138,1,197,130,141,1,197,2,142,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,35,77,1,197,35,79,1,197,195,78,1,197,131,79,1,197,99,80,1,197,3,83,1,197,99,83,1,197,195,83,1,197,195,92,1,197,99,92,1,197,163,95,1,197,67,95,1,197,67,101,1,197,195,99,1,197,35,100,1,197,35,105,1,197,131,77,1,197,35,81,1,197,195,80,1,197,131,84,1,197,35,84,1,197,131,93,1,197,99,90,1,197,35,93,1,197,99,102,1,197,3,118,1,197,227,110,1,197,67,126,1,197,99,159,1,197,131,164,1,197,3,186,1,197,99,185,1,197,227,188,1,197,227,170,1,197,35,148,1,197,195,175,1,197,3,147,1,197,67,160,1,197,3,137,1,197,67,154,1,197,67,172,1,197,67,170,1,197,163,158,1,197,227,153,1,197,3,159,1,197,163,172,1,197,195,90,1,197,163,94,1,16,5,48,102,27,5,48,102,49,5,54,102,38,5,54,102,16,5,54,102,27,5,54,102,49,5,46,102,38,5,46,102,16,5,46,102,27,5,46,102,198,1,162,0,198,225,161,0,198,161,161,0,198,193,161,0,198,129,162,0,198,97,162,0,198,33,162,0,198,65,162,0,49,5,62,102,38,5,62,102,16,5,62,102,27,5,62,102,49,5,60,102,38,5,60,102,16,5,60,102,27,5,60,102,49,5,64,102,38,5,64,102,16,5,64,102,27,5,64,102,49,5,68,102,38,5,68,102,255,255,255,255,255,255,255,255,16,5,58,102,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,72,102,255,255,255,255,23,5,238,102,255,255,255,255,16,5,196,102,255,255,255,255,16,5,204,102,16,5,134,102,16,5,166,102,255,255,255,255,16,5,146,102,16,5,178,102,255,255,255,255,16,5,136,102,255,255,255,255,255,255,255,255,16,5,74,102,255,255,255,255,16,5,148,102,255,255,255,255,16,5,168,102,255,255,255,255,16,5,206,102,255,255,255,255,198,161,162,0,32,5,58,102,48,5,72,102,40,5,72,102,24,5,72,102,32,5,72,102,48,5,74,102,40,5,74,102,24,5,74,102,32,5,74,102,44,5,84,102,30,5,84,102,44,5,86,102,30,5,86,102,44,5,110,102,30,5,110,102,44,5,112,102,30,5,112,102,48,5,134,102,40,5,134,102,24,5,134,102,32,5,134,102,48,5,136,102,40,5,136,102,24,5,136,102,32,5,136,102,48,5,146,102,40,5,146,102,24,5,146,102,32,5,146,102,48,5,148,102,40,5,148,102,24,5,148,102,197,66,96,1,197,226,93,1,197,34,94,1,197,130,97,1,197,194,97,1,197,34,124,1,197,162,124,1,197,34,129,1,197,162,129,1,197,130,108,1,197,226,109,1,197,2,112,1,197,130,113,1,197,130,112,1,197,98,103,1,197,226,118,1,197,34,128,1,197,162,132,1,197,34,133,1,197,98,137,1,197,226,137,1,197,130,140,1,197,2,141,1,197,194,106,1,197,66,107,1,197,194,115,1,197,66,116,1,197,130,90,1,197,66,72,1,197,162,77,1,197,2,78,1,197,226,80,1,16,5,68,102,27,5,68,102,46,5,98,102,32,5,98,102,46,5,96,102,32,5,96,102,46,5,102,102,32,5,102,102,46,5,88,102,32,5,88,102,46,5,128,102,32,5,128,102,46,5,114,102,32,5,114,102,49,5,184,102,38,5,184,102,16,5,184,102,27,5,184,102,49,5,192,102,38,5,192,102,16,5,192,102,27,5,192,102,198,33,164,0,198,1,164,0,198,193,163,0,198,225,163,0,198,161,163,0,198,129,163,0,198,65,163,0,198,97,163,0,44,5,206,102,30,5,206,102,197,195,104,1,197,99,104,1,197,227,105,1,197,131,105,1,197,163,117,1,197,67,117,1,197,131,123,1,197,131,110,1,197,35,110,1,197,195,108,1,197,35,114,1,197,195,113,1,197,227,114,1,197,131,114,1,197,227,125,1,197,131,127,1,197,35,127,1,197,131,131,1,197,35,131,1,197,227,131,1,197,67,132,1,197,67,135,1,197,67,136,1,197,227,135,1,197,163,136,1,197,99,139,1,197,35,140,1,197,195,139,1,197,99,143,1,197,3,143,1,197,99,147,1,197,195,147,1,197,2,117,1,197,226,122,1,197,34,125,1,197,162,125,1,197,226,126,1,197,162,128,1,197,34,130,1,197,226,130,1,197,34,134,1,197,162,134,1,197,98,119,1,197,162,138,1,197,34,139,1,197,194,141,1,197,66,142,1,197,194,142,1,197,2,144,1,197,226,144,1,197,98,145,1,197,226,145,1,197,194,146,1,197,194,148,1,197,66,149,1,197,194,149,1,197,66,150,1,197,194,150,1,197,66,151,1,197,66,152,1,197,66,153,1,197,226,154,1,197,98,155,1,197,162,157,1,32,5,148,102,48,5,158,102,40,5,158,102,24,5,158,102,32,5,158,102,48,5,160,102,40,5,160,102,24,5,160,102,32,5,160,102,48,5,166,102,40,5,166,102,24,5,166,102,32,5,166,102,48,5,168,102,40,5,168,102,24,5,168,102,32,5,168,102,48,5,174,102,40,5,174,102,24,5,174,102,32,5,174,102,48,5,178,102,40,5,178,102,24,5,178,102,32,5,178,102,48,5,182,102,40,5,182,102,24,5,182,102,32,5,182,102,48,5,196,102,40,5,196,102,24,5,196,102,193,44,26,103,193,51,26,103,193,58,26,103,193,65,26,103,193,72,26,103,193,79,26,103,193,86,26,103,193,93,26,103,193,100,26,103,193,107,26,103,193,114,26,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,160,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,206,192,231,0,193,9,143,103,193,16,143,103,193,23,143,103,193,30,143,103,193,37,143,103,193,44,143,103,193,51,143,103,193,58,143,103,193,65,143,103,193,72,143,103,193,79,143,103,193,86,143,103,193,93,143,103,193,100,143,103,193,107,143,103,193,114,143,103,193,128,143,103,193,135,143,103,193,142,143,103,193,149,143,103,193,156,143,103,193,163,143,103,193,170,143,103,193,177,143,103,193,184,143,103,193,191,143,103,193,198,143,103,193,205,143,103,193,212,143,103,193,219,143,103,193,226,143,103,193,233,143,103,193,121,143,103,193,14,144,103,193,133,144,103,193,196,144,103,193,47,145,103,193,59,146,103,193,178,146,103,193,241,146,103,193,141,147,103,193,204,147,103,193,13,148,103,193,102,149,103,193,65,150,103,193,170,150,103,193,233,150,103,193,217,151,103,193,26,152,103,193,138,152,103,193,220,153,103,193,133,151,103,193,140,151,103,193,147,151,103,193,154,151,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,21,144,103,193,28,144,103,193,35,144,103,193,42,144,103,193,49,144,103,193,56,144,103,193,63,144,103,193,70,144,103,193,77,144,103,193,84,144,103,193,91,144,103,193,98,144,103,193,105,144,103,193,112,144,103,193,119,144,103,193,126,144,103,193,140,144,103,193,147,144,103,193,154,144,103,193,161,144,103,193,168,144,103,193,175,144,103,193,182,144,103,193,189,144,103,193,245,144,103,193,252,144,103,193,5,145,103,193,12,145,103,193,19,145,103,193,26,145,103,193,33,145,103,193,40,145,103,255,255,255,255,193,203,144,103,193,210,144,103,193,217,144,103,193,224,144,103,193,231,144,103,193,238,144,103,255,255,255,255,255,255,255,255,193,72,150,103,193,79,150,103,193,86,150,103,193,93,150,103,193,100,150,103,193,107,150,103,255,255,255,255,255,255,255,255,193,109,149,103,193,116,149,103,193,123,149,103,193,130,149,103,193,137,149,103,193,144,149,103,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,54,145,103,193,61,145,103,193,68,145,103,193,75,145,103,193,82,145,103,193,89,145,103,193,96,145,103,193,103,145,103,193,110,145,103,255,255,255,255,193,117,145,103,193,124,145,103,193,131,145,103,193,138,145,103,255,255,255,255,255,255,255,255,193,145,145,103,193,152,145,103,193,159,145,103,193,166,145,103,193,173,145,103,193,180,145,103,193,187,145,103,255,255,255,255,193,194,145,103,255,255,255,255,193,201,145,103,193,208,145,103,193,215,145,103,193,222,145,103,255,255,255,255,255,255,255,255,193,229,145,103,193,236,145,103,193,243,145,103,193,250,145,103,193,3,146,103,193,10,146,103,193,17,146,103,193,24,146,103,193,66,146,103,193,73,146,103,193,80,146,103,193,87,146,103,193,94,146,103,193,101,146,103,193,108,146,103,193,115,146,103,193,122,146,103,193,129,146,103,193,136,146,103,193,143,146,103,193,150,146,103,193,157,146,103,193,164,146,103,193,171,146,103,193,185,146,103,193,192,146,103,193,199,146,103,193,206,146,103,193,213,146,103,193,220,146,103,193,227,146,103,193,234,146,103,193,248,146,103,193,255,146,103,193,8,147,103,193,15,147,103,193,22,147,103,193,29,147,103,193,36,147,103,193,43,147,103,193,50,147,103,255,255,255,255,193,57,147,103,193,64,147,103,193,71,147,103,193,78,147,103,255,255,255,255,255,255,255,255,193,85,147,103,193,92,147,103,193,99,147,103,193,106,147,103,193,113,147,103,193,120,147,103,193,127,147,103,193,134,147,103,193,148,147,103,193,155,147,103,193,162,147,103,193,169,147,103,193,176,147,103,193,183,147,103,193,190,147,103,193,197,147,103,193,211,147,103,193,218,147,103,193,225,147,103,193,232,147,103,193,239,147,103,193,246,147,103,193,253,147,103,193,6,148,103,193,20,148,103,193,27,148,103,193,34,148,103,193,41,148,103,193,48,148,103,193,55,148,103,193,62,148,103,193,69,148,103,193,76,148,103,255,255,255,255,193,83,148,103,193,90,148,103,193,97,148,103,193,104,148,103,255,255,255,255,255,255,255,255,193,111,148,103,193,118,148,103,193,125,148,103,193,132,148,103,193,139,148,103,193,146,148,103,193,153,148,103,255,255,255,255,193,160,148,103,255,255,255,255,193,167,148,103,193,174,148,103,193,181,148,103,193,188,148,103,255,255,255,255,255,255,255,255,193,195,148,103,193,202,148,103,193,209,148,103,193,216,148,103,193,223,148,103,193,230,148,103,193,237,148,103,193,244,148,103,193,251,148,103,193,4,149,103,193,11,149,103,193,18,149,103,193,25,149,103,193,32,149,103,193,39,149,103,255,255,255,255,193,46,149,103,193,53,149,103,193,60,149,103,193,67,149,103,193,74,149,103,193,81,149,103,193,88,149,103,193,95,149,103,193,151,149,103,193,158,149,103,193,165,149,103,193,172,149,103,193,179,149,103,193,186,149,103,193,193,149,103,193,200,149,103,193,207,149,103,193,214,149,103,193,221,149,103,193,228,149,103,193,235,149,103,193,242,149,103,193,249,149,103,193,2,150,103,193,9,150,103,193,16,150,103,193,23,150,103,193,30,150,103,193,37,150,103,193,44,150,103,193,51,150,103,193,58,150,103,193,114,150,103,193,121,150,103,193,128,150,103,193,135,150,103,193,142,150,103,193,149,150,103,193,156,150,103,193,163,150,103,193,177,150,103,193,184,150,103,193,191,150,103,193,198,150,103,193,205,150,103,193,212,150,103,193,219,150,103,193,226,150,103,193,240,150,103,193,247,150,103,193,254,150,103,193,7,151,103,193,14,151,103,193,21,151,103,193,28,151,103,193,35,151,103,193,42,151,103,255,255,255,255,193,49,151,103,193,56,151,103,193,63,151,103,193,70,151,103,255,255,255,255,255,255,255,255,193,77,151,103,193,84,151,103,193,91,151,103,193,98,151,103,193,105,151,103,193,112,151,103,193,119,151,103,193,126,151,103,193,161,151,103,193,168,151,103,193,175,151,103,193,182,151,103,193,189,151,103,193,196,151,103,193,203,151,103,193,210,151,103,193,224,151,103,193,231,151,103,193,238,151,103,193,245,151,103,193,252,151,103,193,5,152,103,193,12,152,103,193,19,152,103,193,82,152,103,193,89,152,103,193,96,152,103,193,103,152,103,193,110,152,103,193,117,152,103,193,124,152,103,193,131,152,103,193,145,152,103,193,152,152,103,193,159,152,103,193,166,152,103,193,173,152,103,193,180,152,103,193,187,152,103,193,194,152,103,193,248,153,103,193,255,153,103,193,8,154,103,193,15,154,103,193,22,154,103,193,29,154,103,193,36,154,103,255,255,255,255,193,43,154,103,193,50,154,103,193,57,154,103,193,64,154,103,193,71,154,103,193,78,154,103,193,85,154,103,255,255,255,255,193,92,154,103,193,99,154,103,193,106,154,103,193,113,154,103,193,120,154,103,193,127,154,103,193,134,154,103,255,255,255,255,193,141,154,103,193,148,154,103,193,155,154,103,193,162,154,103,193,169,154,103,193,176,154,103,193,183,154,103,255,255,255,255,193,190,154,103,193,197,154,103,193,204,154,103,193,211,154,103,193,218,154,103,193,225,154,103,193,232,154,103,255,255,255,255,193,239,154,103,193,246,154,103,193,253,154,103,193,6,155,103,193,13,155,103,193,20,155,103,193,27,155,103,255,255,255,255,193,34,155,103,193,41,155,103,193,48,155,103,193,55,155,103,193,62,155,103,193,69,155,103,193,76,155,103,255,255,255,255,193,83,155,103,193,90,155,103,193,97,155,103,193,104,155,103,193,111,155,103,193,118,155,103,193,125,155,103,255,255,255,255,5,5,110,105,5,5,112,105,5,5,114,105,5,5,116,105,5,5,118,105,255,255,255,255,255,255,255,255,201,192,6,0,5,5,126,105,255,255,255,255,255,255,255,255,5,5,128,105,5,5,130,105,5,5,132,105,197,194,194,1,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,134,105,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,66,194,1,197,130,194,1,255,255,255,255,197,2,195,1,5,5,104,106,5,5,106,106,5,5,108,106,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,110,106,5,5,112,106,255,255,255,255,255,255,255,255,5,5,114,106,5,5,116,106,5,5,118,106,255,255,255,255,255,255,255,255,255,255,255,255,5,5,36,106,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,197,130,195,1,197,194,195,1,197,2,196,1,5,5,98,106,255,255,255,255,197,66,196,1,255,255,255,255,5,5,116,107,5,5,118,107,5,5,120,107,5,5,122,107,5,5,124,107,5,5,130,107,255,255,255,255,5,5,132,107,5,5,134,107,5,5,136,107,255,255,255,255,5,5,138,107,5,5,140,107,5,5,142,107,255,255,255,255,255,255,255,255,5,5,6,107,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,84,109,5,5,86,109,5,5,88,109,255,255,255,255,255,255,255,255,255,255,255,255,201,224,10,0,201,64,12,0,5,5,94,109,255,255,255,255,5,5,96,109,5,5,98,109,5,5,100,109,5,5,102,109,255,255,255,255,255,255,255,255,5,5,6,109,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,104,109,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,44,109,5,5,46,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,48,109,5,5,68,109,5,5,50,109,255,255,255,255,255,255,255,255,255,255,255,255,5,5,52,109,5,5,54,109,5,5,56,109,5,5,66,109,5,5,58,109,5,5,64,109,5,5,62,109,5,5,60,109,5,5,72,109,5,5,74,109,5,5,76,109,5,5,78,109,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,80,109,5,5,82,109,5,5,122,110,5,5,124,110,5,5,126,110,5,5,128,110,5,5,130,110,255,255,255,255,201,38,13,0,5,5,138,110,5,5,140,110,255,255,255,255,5,5,142,110,5,5,144,110,5,5,146,110,5,5,148,110,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,150,110,5,5,152,110,255,255,255,255,5,5,50,110,5,5,56,110,5,5,114,110,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,64,110,5,5,66,110,5,5,68,110,5,5,70,110,5,5,72,110,5,5,74,110,5,5,76,110,5,5,78,110,5,5,80,110,255,255,255,255,5,5,82,110,5,5,84,110,5,5,86,110,5,5,88,110,5,5,90,110,5,5,92,110,5,5,94,110,5,5,96,110,5,5,98,110,5,5,110,110,5,5,112,110,5,5,100,110,5,5,102,110,5,5,104,110,5,5,106,110,5,5,108,110,255,255,255,255,255,255,255,255,255,255,255,255,5,5,116,110,5,5,118,110,5,5,120,110,5,5,122,111,5,5,124,111,5,5,126,111,5,5,128,111,5,5,130,111,255,255,255,255,201,224,14,0,5,5,138,111,5,5,140,111,255,255,255,255,201,96,17,0,5,5,144,111,5,5,146,111,5,5,148,111,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,150,111,5,5,152,111,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,108,111,255,255,255,255,5,5,62,112,5,5,64,112,5,5,66,112,5,5,68,112,5,5,70,112,5,5,72,112,5,5,74,112,5,5,76,112,5,5,78,112,5,5,80,112,5,5,82,112,5,5,84,112,5,5,86,112,5,5,88,112,5,5,90,112,5,5,92,112,5,5,94,112,5,5,112,112,5,5,96,112,5,5,108,112,5,5,110,112,5,5,98,112,5,5,100,112,5,5,102,112,5,5,104,112,5,5,106,112,5,5,114,112,32,5,152,112,32,5,152,112,5,5,116,112,5,5,120,112,5,5,122,112,5,5,54,113,5,5,56,113,5,5,58,113,5,5,60,113,5,5,62,113,5,5,64,113,5,5,66,113,5,5,68,113,5,5,70,113,5,5,72,113,5,5,74,113,5,5,76,113,5,5,78,113,5,5,80,113,5,5,82,113,5,5,84,113,5,5,86,113,5,5,88,113,255,255,255,255,5,5,90,113,5,5,92,113,5,5,94,113,5,5,96,113,5,5,98,113,5,5,100,113,5,5,102,113,5,5,104,113,5,5,106,113,255,255,255,255,5,5,108,113,255,255,255,255,255,255,255,255,5,5,110,113,5,5,112,113,5,5,114,113,5,5,116,113,5,5,118,113,5,5,120,113,5,5,122,113,255,255,255,255,255,255,255,255,255,255,255,255,5,5,158,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,124,113,5,5,126,113,5,5,128,113,5,5,130,113,5,5,132,113,5,5,134,113,255,255,255,255,5,5,136,113,255,255,255,255,5,5,138,113,201,132,20,0,5,5,148,113,5,5,150,113,201,6,23,0,5,5,154,113,5,5,156,113,5,5,142,113,193,16,160,113,193,23,160,113,193,30,160,113,193,37,160,113,193,44,160,113,193,51,160,113,193,58,160,113,193,65,160,113,193,72,160,113,193,79,160,113,193,86,160,113,193,93,160,113,193,100,160,113,193,107,160,113,193,114,160,113,193,121,160,113,193,128,160,113,193,135,160,113,193,142,160,113,193,149,160,113,193,156,160,113,193,163,160,113,193,170,160,113,193,177,160,113,193,184,160,113,193,191,160,113,193,198,160,113,193,126,161,113,193,133,161,113,193,140,161,113,193,147,161,113,193,154,161,113,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,96,233,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,206,64,237,0,193,133,171,113,193,140,171,113,193,147,171,113,193,154,171,113,193,161,171,113,193,168,171,113,193,175,171,113,193,182,171,113,193,189,171,113,193,196,171,113,193,210,171,113,193,217,171,113,193,224,171,113,193,9,172,113,193,16,172,113,193,23,172,113,193,30,172,113,193,37,172,113,193,44,172,113,193,51,172,113,193,58,172,113,193,65,172,113,193,72,172,113,193,79,172,113,193,86,172,113,193,93,172,113,193,100,172,113,193,107,172,113,193,114,172,113,193,121,172,113,193,128,172,113,255,255,255,255,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,206,96,237,0,193,9,176,113,193,16,176,113,193,23,176,113,193,30,176,113,193,51,176,113,193,58,176,113,193,65,176,113,255,255,255,255,193,72,176,113,255,255,255,255,193,79,176,113,193,86,176,113,193,93,176,113,193,100,176,113,255,255,255,255,193,107,176,113,193,114,176,113,193,121,176,113,193,128,176,113,193,135,176,113,193,142,176,113,193,149,176,113,193,156,176,113,193,163,176,113,193,170,176,113,193,177,176,113,193,184,176,113,193,191,176,113,193,198,176,113,193,205,176,113,255,255,255,255,193,212,176,113,193,133,179,113,193,140,179,113,193,147,179,113,193,154,179,113,193,161,179,113,255,255,255,255,255,255,255,255,201,32,25,2,193,189,179,113,255,255,255,255,255,255,255,255,193,196,179,113,193,203,179,113,193,210,179,113,255,255,255,255,255,255,255,255,193,9,178,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,217,179,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,224,179,113,193,105,179,113,193,112,179,113,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,206,192,237,0,193,175,181,113,193,182,181,113,193,189,181,113,193,196,181,113,193,203,181,113,193,210,181,113,193,217,181,113,193,224,181,113,193,231,181,113,193,238,181,113,193,245,181,113,193,147,181,113,193,154,181,113,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,206,224,237,0,193,9,185,113,193,16,185,113,5,5,187,113,5,5,189,113,5,5,191,113,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,0,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,206,32,238,0,193,9,203,113,193,16,203,113,193,23,203,113,193,30,203,113,193,37,203,113,193,44,203,113,193,51,203,113,193,58,203,113,193,65,203,113,193,72,203,113,193,100,203,113,193,107,203,113,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,206,64,238,0,193,9,205,113,193,16,205,113,193,23,205,113,193,30,205,113,193,37,205,113,193,44,205,113,193,51,205,113,255,255,255,255,255,255,255,255,193,58,205,113,255,255,255,255,255,255,255,255,193,65,205,113,193,72,205,113,193,79,205,113,193,86,205,113,193,93,205,113,193,107,205,113,193,114,205,113,193,121,205,113,255,255,255,255,193,128,205,113,193,135,205,113,255,255,255,255,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,206,128,238,0,193,9,207,113,193,16,207,113,193,23,207,113,193,30,207,113,193,37,207,113,193,44,207,113,193,51,207,113,193,58,207,113,255,255,255,255,255,255,255,255,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,160,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,206,96,238,0,193,9,211,113,193,16,211,113,193,23,211,113,193,30,211,113,5,5,213,113,5,112,213,113,193,2,215,113,193,9,215,113,5,5,217,113,193,2,219,113,193,9,219,113,193,16,219,113,193,23,219,113,193,30,219,113,193,37,219,113,193,44,219,113,193,51,219,113,193,58,219,113,193,65,219,113,193,72,219,113,193,79,219,113,5,5,221,113,5,112,221,113,193,2,223,113,193,9,223,113,193,16,223,113,5,112,217,113,255,255,255,255,255,255,255,255,193,107,223,113,193,114,223,113,193,121,223,113,193,9,224,113,193,16,224,113,193,23,224,113,193,30,224,113,193,37,224,113,193,44,224,113,193,51,224,113,255,255,255,255,193,58,224,113,193,65,224,113,255,255,255,255,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,206,64,239,0,5,5,226,113,193,2,228,113,193,9,228,113,193,16,228,113,193,23,228,113,193,30,228,113,193,37,228,113,193,44,228,113,193,51,228,113,193,58,228,113,193,65,228,113,193,72,228,113,193,79,228,113,193,86,228,113,193,93,228,113,193,100,228,113,193,107,228,113,255,255,255,255,255,255,255,255,255,255,255,255,193,114,228,113,255,255,255,255,193,121,228,113,193,128,228,113,255,255,255,255,193,135,228,113,193,16,229,113,193,23,229,113,193,30,229,113,193,37,229,113,193,44,229,113,193,51,229,113,255,255,255,255,193,58,229,113,193,65,229,113,255,255,255,255,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,96,239,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,128,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,206,160,236,0,193,9,248,113,193,16,248,113,193,23,248,113,193,30,248,113,193,37,248,113,193,44,248,113,193,51,248,113,193,58,248,113,193,65,248,113,255,255,255,255,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,206,224,238,0,255,255,255,255,5,5,6,114,5,5,8,114,5,5,10,114,5,5,12,114,5,5,14,114,5,5,16,114,5,5,18,114,5,5,20,114,5,5,22,114,5,5,24,114,5,5,26,114,5,5,28,114,5,5,30,114,5,5,32,114,5,5,34,114,5,5,36,114,5,5,38,114,5,5,40,114,5,5,42,114,5,5,44,114,5,5,46,114,5,5,48,114,5,5,50,114,5,5,52,114,5,5,54,114,5,5,56,114,5,5,58,114,5,5,60,114,5,5,62,114,5,5,64,114,5,5,66,114,255,255,255,255,5,5,8,115,5,5,10,115,255,255,255,255,5,5,12,115,255,255,255,255,5,5,14,115,5,5,16,115,5,5,18,115,5,5,20,115,5,5,24,115,255,255,255,255,5,5,26,115,5,5,32,115,5,5,28,115,5,5,34,115,5,5,36,115,5,5,38,115,5,5,40,115,5,5,42,115,5,5,44,115,5,5,46,115,5,5,48,115,5,5,50,115,5,5,52,115,5,5,54,115,5,5,56,115,5,5,58,115,5,5,60,115,5,5,62,115,5,5,64,115,5,5,66,115,5,5,68,115,5,5,70,115,5,5,72,115,5,5,74,115,255,255,255,255,5,5,76,115,255,255,255,255,5,5,78,115,5,5,80,115,5,5,82,115,5,5,22,115,5,5,84,115,5,5,86,115,5,5,88,115,5,5,90,115,5,5,92,115,5,5,94,115,5,5,96,115,5,5,98,115,5,5,100,115,5,5,102,115,5,5,104,115,5,5,106,115,5,5,108,115,5,5,110,115,5,5,112,115,5,5,114,115,5,5,116,115,5,5,118,115,5,5,120,115,255,255,255,255,255,255,255,255,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,206,0,234,0,5,5,6,116,5,5,12,116,5,5,16,116,197,66,120,2,5,5,20,116,5,5,24,116,5,5,28,116,5,5,32,116,255,255,255,255,5,5,36,116,5,5,40,116,5,5,44,116,5,5,48,116,197,194,120,2,5,5,52,116,5,5,56,116,5,5,60,116,5,5,64,116,197,66,121,2,5,5,68,116,5,5,72,116,5,5,76,116,5,5,80,116,197,194,121,2,5,5,84,116,5,5,88,116,5,5,92,116,5,5,96,116,197,66,122,2,5,5,100,116,5,5,104,116,5,5,108,116,193,30,208,116,193,37,208,116,193,44,208,116,193,51,208,116,193,58,208,116,193,65,208,116,193,72,208,116,193,79,208,116,193,86,208,116,193,93,208,116,193,100,208,116,193,9,198,116,193,23,198,116,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,206,192,238,0,5,5,219,116,193,2,221,116,193,9,221,116,193,16,221,116,193,23,221,116,193,30,221,116,193,37,221,116,193,44,221,116,193,51,221,116,193,58,221,116,193,65,221,116,5,5,223,116,193,2,225,116,193,9,225,116,193,16,225,116,5,5,227,116,5,5,229,116,193,2,231,116,193,9,231,116,193,16,231,116,5,5,233,116,193,2,235,116,193,9,235,116,193,16,235,116,193,23,235,116,193,30,235,116,5,5,237,116,5,5,239,116,5,5,241,116,5,5,243,116,5,5,245,116,5,5,247,116,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,206,0,239,0,193,70,5,117,193,84,5,117,193,98,5,117,193,112,5,117,193,126,5,117,193,140,5,117,193,154,5,117,255,255,255,255,255,255,255,255,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,206,32,239,0,193,9,6,117,193,16,6,117,193,23,6,117,193,30,6,117,193,37,6,117,193,44,6,117,193,51,6,117,193,58,6,117,193,65,6,117,193,72,6,117,193,100,6,117,193,107,6,117,193,114,6,117,193,121,6,117,193,128,6,117,193,135,6,117,193,142,6,117,193,149,6,117,193,156,6,117,193,163,6,117,193,170,6,117,193,177,6,117,193,184,6,117,193,191,6,117,193,198,6,117,193,205,6,117,193,212,6,117,193,226,6,117,193,240,6,117,193,247,6,117,193,254,6,117,193,7,7,117,193,9,8,117,193,16,8,117,193,23,8,117,193,30,8,117,193,37,8,117,193,44,8,117,193,51,8,117,193,58,8,117,193,93,8,117,193,100,8,117,193,107,8,117,193,114,8,117,193,121,8,117,193,128,8,117,193,135,8,117,193,142,8,117,193,149,8,117,193,156,8,117,193,163,8,117,193,170,8,117,193,184,8,117,193,191,8,117,193,198,8,117,193,205,8,117,193,226,8,117,193,247,8,117,193,254,8,117,193,14,9,117,193,21,9,117,193,42,9,117,193,77,9,117,193,84,9,117,193,9,10,117,193,16,10,117,193,23,10,117,193,30,10,117,193,37,10,117,193,44,10,117,193,51,10,117,193,58,10,117,5,5,12,117,193,2,14,117,193,9,14,117,5,5,16,117,193,2,18,117,193,9,18,117,193,16,18,117,193,23,18,117,193,30,18,117,193,37,18,117,193,44,18,117,193,51,18,117,193,58,18,117,193,65,18,117,193,72,18,117,193,79,18,117,193,86,18,117,193,93,18,117,193,100,18,117,193,107,18,117,193,114,18,117,197,162,124,2,197,226,124,2,255,255,255,255,193,9,25,117,193,16,25,117,193,23,25,117,193,30,25,117,193,37,25,117,193,44,25,117,193,51,25,117,193,58,25,117,193,65,25,117,193,72,25,117,193,79,25,117,193,86,25,117,193,93,25,117,255,255,255,255,193,100,25,117,193,107,25,117,193,114,25,117,193,121,25,117,193,128,25,117,193,135,25,117,193,142,25,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,27,117,193,16,27,117,193,23,27,117,193,30,27,117,193,37,27,117,193,44,27,117,193,51,27,117,193,58,27,117,193,65,27,117,193,72,27,117,193,79,27,117,193,86,27,117,193,93,27,117,193,100,27,117,193,107,27,117,193,114,27,117,193,121,27,117,193,128,27,117,193,135,27,117,193,142,27,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,28,117,193,16,28,117,193,23,28,117,193,30,28,117,193,37,28,117,193,44,28,117,193,51,28,117,193,58,28,117,193,65,28,117,193,72,28,117,193,79,28,117,193,86,28,117,193,93,28,117,255,255,255,255,193,100,28,117,193,107,28,117,193,114,28,117,255,255,255,255,193,121,28,117,193,128,28,117,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,33,117,32,5,33,117,5,5,35,117,32,5,35,117,32,5,35,117,5,5,37,117,32,5,37,117,5,5,39,117,32,5,39,117,5,5,41,117,32,5,41,117,5,5,43,117,32,5,43,117,32,5,43,117,5,5,45,117,32,5,45,117,193,2,47,117,193,9,47,117,5,5,49,117,32,5,49,117,5,5,51,117,32,5,51,117,5,5,53,117,32,5,53,117,5,5,55,117,32,5,55,117,32,5,55,117,5,5,57,117,32,5,57,117,5,5,59,117,5,5,61,117,32,5,61,117,193,9,79,117,193,23,79,117,193,37,79,117,193,65,79,117,193,86,79,117,193,100,79,117,193,121,79,117,193,149,79,117,193,184,79,117,193,233,79,117,193,7,80,117,193,14,80,117,193,28,80,117,193,42,80,117,193,63,80,117,193,84,80,117,193,112,80,117,193,119,80,117,193,126,80,117,193,147,80,117,193,168,80,117,193,196,80,117,193,203,80,117,193,245,80,117,193,12,81,117,193,33,81,117,193,47,81,117,193,61,81,117,193,89,81,117,193,103,81,117,5,5,83,117,193,9,85,117,193,96,81,117,193,219,79,117,193,156,89,117,193,9,93,117,193,16,93,117,193,145,81,117,193,93,85,117,193,163,89,117,193,170,89,117,193,23,93,117,193,30,93,117,193,37,93,117,193,44,93,117,193,51,93,117,193,91,80,117,193,79,85,117,193,86,85,117,193,30,89,117,193,9,89,117,193,58,89,117,193,65,89,117,193,16,79,117,193,30,79,117,193,44,79,117,193,107,79,117,193,170,79,117,193,240,79,117,193,133,80,117,193,175,80,117,193,210,80,117,193,217,80,117,193,252,80,117,193,9,94,117,193,51,94,117,193,58,94,117,193,65,94,117,193,72,94,117,193,79,94,117,193,86,94,117,193,93,94,117,193,100,94,117,193,107,94,117,193,114,94,117,193,121,94,117,193,128,94,117,193,135,94,117,193,142,94,117,193,149,94,117,193,156,94,117,193,163,94,117,193,170,94,117,193,177,94,117,193,184,94,117,193,191,94,117,193,198,94,117,193,205,94,117,193,212,94,117,193,219,94,117,193,226,94,117,193,233,94,117,193,240,94,117,193,16,94,117,193,23,94,117,193,30,94,117,5,5,100,117,5,5,102,117,5,5,104,117,5,5,106,117,5,5,108,117,5,5,110,117,5,5,112,117,5,5,114,117,5,5,116,117,5,5,118,117,5,5,120,117,5,5,122,117,5,5,124,117,5,5,126,117,5,5,128,117,5,5,130,117,5,5,132,117,5,5,134,117,5,5,136,117,5,5,138,117,5,5,140,117,5,5,142,117,5,5,144,117,5,5,146,117,5,5,148,117,5,5,150,117,5,5,152,117,5,5,154,117,5,5,156,117,5,5,158,117,5,5,160,117,5,5,162,117,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,206,32,228,0,255,255,255,255,255,255,255,255,193,219,4,118,193,226,4,118,193,233,4,118,193,240,4,118,193,247,4,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,5,118,193,16,5,118,193,23,5,118,193,30,5,118,193,37,5,118,193,44,5,118,193,51,5,118,193,58,5,118,193,65,5,118,193,72,5,118,193,79,5,118,193,86,5,118,193,93,5,118,193,100,5,118,193,107,5,118,193,114,5,118,193,121,5,118,193,128,5,118,193,135,5,118,193,142,5,118,193,149,5,118,193,156,5,118,193,163,5,118,193,170,5,118,193,177,5,118,193,184,5,118,193,191,5,118,193,198,5,118,5,5,7,118,193,2,9,118,193,9,9,118,193,16,9,118,193,23,9,118,193,30,9,118,193,37,9,118,193,44,9,118,193,51,9,118,193,58,9,118,193,65,9,118,193,72,9,118,193,79,9,118,193,86,9,118,193,93,9,118,193,100,9,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,107,9,118,193,114,9,118,193,121,9,118,193,128,9,118,193,135,9,118,201,0,242,0,201,160,5,1,201,64,25,1,193,9,13,118,193,16,13,118,201,224,44,1,193,30,13,118,193,37,13,118,193,44,13,118,193,51,13,118,193,58,13,118,193,9,18,118,193,16,18,118,193,23,18,118,193,30,18,118,193,37,18,118,193,44,18,118,5,5,20,118,193,2,22,118,193,9,22,118,193,16,22,118,193,23,22,118,193,30,22,118,193,37,22,118,193,44,22,118,193,51,22,118,193,58,22,118,193,65,22,118,193,72,22,118,193,79,22,118,193,86,22,118,193,93,22,118,193,100,22,118,193,107,22,118,193,114,22,118,193,121,22,118,193,128,22,118,193,135,22,118,5,5,24,118,206,64,228,0,206,64,228,0,206,64,228,0,206,64,228,0,206,64,228,0,206,64,228,0,5,5,28,118,193,2,30,118,193,9,30,118,193,16,30,118,193,23,30,118,193,30,30,118,193,37,30,118,193,100,30,118,193,107,30,118,193,114,30,118,193,121,30,118,193,128,30,118,193,135,30,118,193,44,30,118,197,35,170,2,193,58,30,118,193,65,30,118,193,72,30,118,32,5,20,118,32,5,20,118,32,5,24,118,32,5,24,118,193,79,30,118,193,86,30,118,193,93,30,118,255,255,255,255,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,206,224,233,0,193,70,39,118,193,77,39,118,193,84,39,118,193,91,39,118,193,98,39,118,193,105,39,118,193,112,39,118,193,119,39,118,193,126,39,118,193,133,39,118,193,42,39,118,193,49,39,118,193,56,39,118,193,63,39,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,52,118,193,16,52,118,193,23,52,118,193,30,52,118,193,37,52,118,193,44,52,118,193,51,52,118,193,72,52,118,193,128,52,118,193,124,54,118,193,247,52,118,193,245,53,118,193,3,55,118,193,17,55,118,193,24,55,118,193,38,55,118,193,45,55,118,193,66,55,118,193,80,55,118,193,87,55,118,193,101,55,118,193,115,55,118,193,129,55,118,193,136,55,118,193,52,55,118,193,122,55,118,193,77,53,118,193,254,52,118,193,133,53,118,193,140,53,118,193,10,55,118,193,31,55,118,193,215,54,118,193,222,54,118,193,229,54,118,193,58,52,118,193,86,52,118,193,107,52,118,193,149,52,118,193,163,52,118,193,184,52,118,193,198,52,118,193,233,52,118,193,14,53,118,193,28,53,118,193,49,53,118,193,63,53,118,193,98,53,118,193,175,53,118,193,196,53,118,193,217,53,118,193,5,54,118,193,145,54,118,193,33,54,118,193,68,54,118,193,103,54,118,193,173,54,118,193,194,54,118,193,236,54,118,193,243,54,118,193,238,53,118,193,93,52,118,193,114,52,118,193,135,52,118,193,65,52,118,193,79,52,118,193,100,52,118,193,142,52,118,193,156,52,118,193,177,52,118,193,191,52,118,193,212,52,118,193,219,52,118,193,226,52,118,193,7,53,118,193,21,53,118,193,42,53,118,193,56,53,118,193,91,53,118,193,105,53,118,193,112,53,118,193,119,53,118,193,168,53,118,193,189,53,118,193,210,53,118,193,252,53,118,193,26,54,118,193,47,54,118,193,61,54,118,193,75,54,118,193,96,54,118,193,131,54,118,193,138,54,118,193,159,54,118,193,187,54,118,193,208,54,118,193,205,52,118,193,170,52,118,193,240,52,118,193,110,54,118,193,70,53,118,193,84,53,118,193,35,53,118,193,126,53,118,193,182,53,118,193,203,53,118,193,12,54,118,193,82,54,118,193,180,54,118,193,201,54,118,193,152,54,118,193,166,54,118,193,250,54,118,193,224,53,118,193,40,54,118,193,121,52,118,193,117,54,118,193,54,54,118,193,89,54,118,193,19,54,118,193,231,53,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,59,55,118,193,73,55,118,193,147,53,118,193,108,55,118,193,154,53,118,193,161,53,118,193,143,55,118,193,150,55,118,193,94,55,118,193,164,55,118,193,157,55,118,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,160,5,60,118,160,5,62,118,160,5,64,118,160,5,66,118,160,5,68,118,160,5,70,118,160,5,72,118,160,5,74,118,160,5,76,118,160,5,78,118,160,5,80,118,160,5,82,118,160,5,84,118,160,5,86,118,160,5,88,118,160,5,90,118,160,5,92,118,160,5,94,118,160,5,96,118,160,5,98,118,160,5,100,118,160,5,102,118,160,5,104,118,160,5,106,118,160,5,108,118,160,5,110,118,160,5,112,118,160,5,114,118,160,5,116,118,160,5,118,118,160,5,120,118,160,5,122,118,5,5,92,118,5,5,94,118,5,5,96,118,5,5,98,118,5,5,100,118,5,5,102,118,5,5,104,118,5,5,106,118,5,5,108,118,5,5,110,118,5,5,112,118,5,5,114,118,5,5,116,118,5,5,118,118,5,5,120,118,5,5,122,118,5,5,124,118,5,5,126,118,5,5,128,118,5,5,130,118,5,5,132,118,5,5,134,118,5,5,136,118,5,5,138,118,5,5,140,118,5,5,142,118,5,5,144,118,5,5,146,118,5,5,148,118,5,5,150,118,5,5,152,118,5,5,154,118,160,5,124,118,160,5,126,118,160,5,128,118,160,5,130,118,160,5,132,118,160,5,134,118,160,5,136,118,160,5,138,118,160,5,140,118,160,5,142,118,160,5,144,118,160,5,146,118,160,5,148,118,160,5,150,118,160,5,152,118,160,5,154,118,160,5,156,118,160,5,158,118,160,5,160,118,160,5,162,118,160,5,164,118,160,5,166,118,160,5,168,118,160,5,170,118,160,5,172,118,160,5,174,118,160,5,176,118,160,5,178,118,160,5,180,118,160,5,182,118,160,5,184,118,160,5,186,118,5,5,156,118,5,5,158,118,5,5,160,118,5,5,162,118,5,5,164,118,5,5,166,118,5,5,168,118,5,5,170,118,5,5,172,118,5,5,174,118,5,5,176,118,5,5,178,118,5,5,180,118,5,5,182,118,5,5,184,118,5,5,186,118,5,5,188,118,5,5,190,118,5,5,192,118,5,5,194,118,5,5,196,118,5,5,198,118,5,5,200,118,5,5,202,118,5,5,204,118,5,5,206,118,5,5,208,118,5,5,210,118,5,5,212,118,5,5,214,118,5,5,216,118,5,5,218,118,160,5,188,118,160,5,190,118,160,5,192,118,160,5,194,118,160,5,196,118,160,5,198,118,160,5,200,118,160,5,202,118,160,5,204,118,160,5,206,118,160,5,208,118,160,5,210,118,160,5,212,118,160,5,214,118,160,5,216,118,160,5,218,118,160,5,220,118,160,5,222,118,160,5,224,118,160,5,226,118,160,5,228,118,160,5,230,118,255,255,255,255,255,255,255,255,5,5,220,118,5,5,222,118,5,5,224,118,5,5,226,118,5,5,228,118,5,5,230,118,255,255,255,255,255,255,255,255,198,193,167,0,198,225,167,0,198,1,168,0,198,33,168,0,198,65,168,0,198,97,168,0,198,129,168,0,198,161,168,0,198,193,168,0,198,225,168,0,198,1,169,0,198,33,169,0,198,65,169,0,198,97,169,0,198,129,169,0,198,161,169,0,198,193,169,0,198,225,169,0,198,1,170,0,198,33,170,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,206,96,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,206,160,227,0,193,218,245,118,193,122,244,118,193,136,244,118,193,143,244,118,193,150,244,118,193,157,244,118,193,164,244,118,193,171,244,118,193,178,244,118,193,185,244,118,193,192,244,118,193,199,244,118,193,206,244,118,193,213,244,118,193,220,244,118,193,227,244,118,193,234,244,118,193,241,244,118,193,255,244,118,193,8,245,118,193,15,245,118,193,22,245,118,193,29,245,118,193,36,245,118,193,43,245,118,193,50,245,118,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,192,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,224,227,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,206,0,228,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,119,5,112,6,119,5,5,8,119,193,51,56,119,5,112,8,119,5,120,8,119,5,5,10,119,5,112,10,119,5,5,12,119,5,112,12,119,193,23,56,119,193,37,56,119,5,116,12,119,5,120,12,119,5,124,12,119,193,9,14,119,193,16,14,119,193,23,14,119,5,5,16,119,5,112,16,119,5,116,16,119,5,120,16,119,5,124,16,119,193,9,18,119,193,72,56,119,5,5,20,119,5,5,22,119,5,112,22,119,5,117,22,119,5,122,22,119,5,5,24,119,5,112,24,119,5,120,24,119,5,5,26,119,5,112,26,119,5,5,30,119,5,112,30,119,5,5,32,119,5,112,32,119,5,5,34,119,5,5,36,119,5,5,38,119,5,5,40,119,5,112,40,119,5,118,40,119,5,121,40,119,5,124,40,119,5,5,44,119,5,112,44,119,5,120,44,119,5,5,46,119,5,112,46,119,5,120,46,119,5,112,36,119,193,2,48,119,5,5,50,119,5,112,50,119,5,120,50,119,5,5,52,119,5,112,52,119,5,5,54,119,5,112,54,119,193,2,56,119,193,9,56,119,5,5,62,119,5,112,62,119,5,5,64,119,5,5,66,119,5,5,68,119,5,5,70,119,5,5,72,119,5,5,74,119,5,5,76,119,5,5,78,119,5,112,78,119,5,120,78,119,5,5,80,119,5,5,82,119,5,5,84,119,5,5,86,119,5,5,88,119,5,112,88,119,5,5,90,119,5,5,92,119,5,5,94,119,5,5,96,119,5,5,98,119,5,5,100,119,5,5,102,119,5,5,104,119,5,5,106,119,5,5,108,119,5,112,108,119,5,5,110,119,5,112,110,119,5,120,110,119,160,5,62,119,160,112,62,119,160,5,64,119,160,5,66,119,160,5,68,119,160,5,70,119,160,5,72,119,160,5,74,119,160,5,76,119,160,5,78,119,160,112,78,119,160,120,78,119,160,5,80,119,160,5,82,119,160,5,84,119,160,5,86,119,160,5,88,119,160,112,88,119,160,5,90,119,160,5,92,119,160,5,94,119,160,5,96,119,160,5,98,119,160,5,100,119,160,5,102,119,160,5,104,119,160,5,106,119,160,5,108,119,160,112,108,119,160,5,110,119,160,112,110,119,160,120,110,119,160,5,112,119,160,5,114,119,160,5,116,119,160,112,116,119,160,5,118,119,160,5,120,119,160,5,122,119,160,5,124,119,160,5,126,119,160,5,128,119,160,5,130,119,160,112,130,119,160,5,132,119,160,112,132,119,160,5,134,119,160,5,136,119,160,5,138,119,160,5,140,119,160,5,142,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,146,119,5,112,146,119,5,5,148,119,5,5,150,119,5,112,150,119,193,2,152,119,193,9,152,119,5,5,154,119,5,112,154,119,5,5,156,119,5,112,156,119,5,5,158,119,5,112,158,119,5,5,160,119,5,112,160,119,5,5,162,119,5,112,162,119,5,5,164,119,5,112,164,119,5,5,166,119,5,5,168,119,5,112,168,119,5,5,170,119,5,112,170,119,5,5,172,119,5,112,172,119,5,5,174,119,5,112,174,119,5,5,176,119,5,112,176,119,5,5,178,119,5,112,178,119,193,2,180,119,193,9,180,119,193,16,180,119,193,23,180,119,5,5,182,119,5,112,182,119,5,5,184,119,5,112,184,119,5,5,186,119,5,112,186,119,5,5,188,119,5,112,188,119,5,5,190,119,5,5,192,119,5,112,192,119,193,2,194,119,193,9,194,119,193,16,194,119,5,5,196,119,5,112,196,119,5,5,198,119,5,112,198,119,5,5,200,119,5,112,200,119,5,5,202,119,5,112,202,119,5,5,204,119,5,112,204,119,193,2,206,119,193,9,206,119,193,16,206,119,5,5,208,119,5,112,208,119,5,5,210,119,5,112,210,119,5,5,212,119,5,112,212,119,5,5,214,119,5,112,214,119,193,2,216,119,193,9,216,119,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,4,120,193,16,4,120,193,23,4,120,193,30,4,120,193,37,4,120,193,44,4,120,193,51,4,120,193,58,4,120,193,65,4,120,193,72,4,120,193,79,4,120,193,86,4,120,5,5,6,120,193,2,8,120,193,9,8,120,193,16,8,120,193,23,8,120,193,30,8,120,193,37,8,120,193,44,8,120,193,51,8,120,193,58,8,120,193,65,8,120,193,72,8,120,193,79,8,120,193,86,8,120,193,93,8,120,193,100,8,120,193,107,8,120,193,114,8,120,5,5,10,120,193,2,12,120,193,9,12,120,193,16,12,120,193,23,12,120,193,30,12,120,193,37,12,120,193,44,12,120,193,51,12,120,193,58,12,120,193,65,12,120,193,72,12,120,193,79,12,120,193,86,12,120,193,93,12,120,193,100,12,120,193,107,12,120,193,114,12,120,193,121,12,120,193,128,12,120,193,135,12,120,5,5,14,120,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,206,128,232,0,5,5,18,120,193,2,20,120,193,9,20,120,193,16,20,120,193,23,20,120,193,30,20,120,193,37,20,120,193,44,20,120,193,51,20,120,193,58,20,120,193,65,20,120,5,5,22,120,193,2,24,120,193,9,24,120,193,16,24,120,193,23,24,120,193,30,24,120,5,5,26,120,5,5,28,120,5,5,30,120,193,2,32,120,193,9,32,120,193,16,32,120,193,23,32,120,193,30,32,120,5,5,34,120,193,2,36,120,193,9,36,120,193,16,36,120,193,23,36,120,193,30,36,120,193,37,36,120,193,44,36,120,193,51,36,120,193,58,36,120,5,5,38,120,193,2,40,120,193,9,40,120,193,16,40,120,5,5,42,120,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,206,160,232,0,5,5,46,120,5,5,48,120,5,5,50,120,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,206,192,232,0,5,5,55,120,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,206,224,232,0,5,5,59,120,193,2,61,120,193,9,61,120,193,16,61,120,193,23,61,120,193,30,61,120,5,5,63,120,193,2,65,120,193,9,65,120,193,16,65,120,193,23,65,120,193,30,65,120,193,37,65,120,5,5,67,120,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,0,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,32,233,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,206,96,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,128,240,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,206,160,242,0,5,5,103,120,5,5,105,120,5,5,107,120,5,5,109,120,5,5,111,120,5,5,113,120,5,5,115,120,5,5,117,120,5,5,119,120,5,5,121,120,5,5,123,120,5,5,125,120,5,5,127,120,5,5,129,120,5,5,131,120,5,5,133,120,5,5,135,120,5,5,137,120,5,5,139,120,5,5,141,120,5,5,143,120,5,5,145,120,5,5,147,120,5,5,149,120,5,5,151,120,5,5,153,120,5,5,155,120,5,5,157,120,5,5,159,120,5,5,161,120,5,5,163,120,5,5,165,120,160,5,103,120,160,5,105,120,160,5,107,120,160,5,109,120,160,5,111,120,160,5,113,120,160,5,115,120,160,5,117,120,160,5,119,120,160,5,121,120,160,5,123,120,160,5,125,120,160,5,127,120,160,5,129,120,160,5,131,120,160,5,133,120,160,5,135,120,160,5,137,120,160,5,139,120,160,5,141,120,160,5,143,120,160,5,145,120,160,5,147,120,160,5,149,120,160,5,151,120,160,5,153,120,160,5,155,120,160,5,157,120,160,5,159,120,160,5,161,120,160,5,163,120,160,5,165,120,160,5,233,120,160,5,235,120,5,5,169,120,5,5,171,120,5,5,173,120,5,5,175,120,5,5,177,120,5,5,179,120,5,5,181,120,5,5,183,120,5,5,185,120,5,5,187,120,5,5,189,120,5,5,191,120,5,5,193,120,5,5,195,120,5,5,197,120,5,5,199,120,5,5,201,120,5,5,203,120,5,5,205,120,5,5,207,120,5,5,209,120,5,5,211,120,5,5,213,120,5,5,215,120,5,5,217,120,5,5,219,120,5,5,221,120,5,5,223,120,5,5,225,120,5,5,227,120,160,5,169,120,160,5,171,120,160,5,173,120,160,5,175,120,160,5,177,120,160,5,179,120,160,5,181,120,160,5,183,120,160,5,185,120,160,5,187,120,160,5,189,120,160,5,191,120,160,5,193,120,160,5,195,120,160,5,197,120,160,5,199,120,160,5,201,120,160,5,203,120,160,5,205,120,160,5,207,120,160,5,209,120,160,5,211,120,160,5,213,120,160,5,215,120,160,5,217,120,160,5,219,120,160,5,221,120,160,5,223,120,160,5,225,120,160,5,227,120,160,5,229,120,160,5,231,120,5,5,6,121,5,5,8,121,5,5,10,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,44,121,5,5,46,121,5,5,48,121,193,2,50,121,193,9,50,121,193,16,50,121,193,23,50,121,5,5,52,121,5,5,54,121,5,5,56,121,5,5,58,121,5,5,60,121,5,5,62,121,5,5,86,123,5,5,88,123,5,5,90,123,5,5,92,123,5,5,94,123,5,5,98,123,5,5,104,123,5,5,106,123,5,5,108,123,5,5,110,123,5,5,16,123,5,5,32,123,5,5,44,123,5,5,112,123,32,5,76,123,5,5,24,123,255,255,255,255,16,5,6,121,32,5,8,121,32,5,183,121,16,5,10,121,32,5,187,121,32,5,189,121,16,5,12,121,32,5,14,121,16,5,16,121,32,5,195,121,32,5,197,121,32,5,199,121,32,5,201,121,32,5,203,121,32,5,205,121,198,1,171,0,172,5,6,121,174,5,8,121,174,5,183,121,172,5,10,121,174,5,187,121,174,5,189,121,172,5,12,121,174,5,14,121,172,5,16,121,174,5,195,121,174,5,197,121,174,5,199,121,174,5,201,121,174,5,203,121,174,5,205,121,174,5,52,121,172,5,18,121,172,5,20,121,174,5,22,121,174,5,66,121,172,5,24,121,174,5,26,121,172,5,28,121,172,5,30,121,174,5,32,121,172,5,34,121,172,5,36,121,172,5,38,121,172,5,40,121,172,5,42,121,255,255,255,255,32,5,52,121,16,5,18,121,16,5,20,121,32,5,22,121,32,5,66,121,16,5,24,121,32,5,26,121,16,5,28,121,16,5,30,121,32,5,32,121,16,5,34,121,16,5,36,121,16,5,38,121,16,5,40,121,16,5,42,121,16,5,103,121,32,5,105,121,32,5,107,121,32,5,109,121,32,5,111,121,32,5,113,121,32,5,115,121,32,5,117,121,16,5,119,121,32,5,121,121,32,5,123,121,32,5,125,121,32,5,127,121,16,5,129,121,32,5,131,121,32,5,133,121,32,5,135,121,32,5,137,121,32,5,139,121,16,5,141,121,32,5,143,121,198,225,170,0,32,5,46,121,32,5,48,121,32,5,235,121,32,5,237,121,32,5,241,121,32,5,245,121,198,33,171,0,198,65,171,0,198,97,171,0,32,5,56,121,198,129,171,0,198,161,171,0,32,5,58,121,32,5,60,121,32,5,64,121,32,5,68,121,32,5,70,121,32,5,74,121,32,5,78,121,32,5,82,121,32,5,84,121,32,5,86,121,32,5,88,121,32,5,90,121,198,65,170,0,198,97,170,0,198,129,170,0,5,5,64,121,5,5,66,121,5,5,68,121,5,5,70,121,193,2,72,121,193,9,72,121,193,16,72,121,5,5,74,121,5,5,76,121,5,5,78,121,5,5,80,121,5,5,82,121,5,5,84,121,5,5,86,121,5,5,88,121,5,5,90,121,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,206,64,227,0,5,5,95,121,5,5,97,121,5,5,99,121,193,2,101,121,193,9,101,121,193,16,101,121,193,23,101,121,193,30,101,121,193,240,101,121,193,37,101,121,193,44,101,121,193,51,101,121,193,58,101,121,193,65,101,121,193,72,101,121,193,79,101,121,193,86,101,121,193,93,101,121,193,100,101,121,193,107,101,121,193,114,101,121,193,121,101,121,193,128,101,121,193,135,101,121,193,142,101,121,193,149,101,121,193,156,101,121,193,163,101,121,193,170,101,121,193,177,101,121,193,184,101,121,193,191,101,121,193,198,101,121,193,205,101,121,193,212,101,121,193,219,101,121,193,226,101,121,193,233,101,121,255,255,255,255,255,255,255,255,255,255,255,255,193,247,101,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,255,255,255,255,255,255,255,255,172,5,103,121,174,5,105,121,174,5,107,121,174,5,109,121,174,5,111,121,174,5,113,121,255,255,255,255,255,255,255,255,174,5,115,121,174,5,117,121,172,5,119,121,174,5,121,121,174,5,123,121,174,5,125,121,255,255,255,255,255,255,255,255,174,5,127,121,172,5,129,121,174,5,131,121,174,5,133,121,174,5,135,121,174,5,137,121,255,255,255,255,255,255,255,255,174,5,139,121,172,5,141,121,174,5,143,121,255,255,255,255,255,255,255,255,255,255,255,255,206,96,227,0,206,96,227,0,206,96,227,0,206,96,227,0,5,5,147,121,5,5,149,121,5,5,151,121,5,5,153,121,5,5,155,121,193,2,157,121,193,9,157,121,193,16,157,121,193,23,157,121,193,30,157,121,193,37,157,121,193,44,157,121,193,51,157,121,5,5,159,121,5,5,161,121,5,5,163,121,5,5,165,121,193,2,167,121,193,9,167,121,193,16,167,121,193,23,167,121,193,30,167,121,193,37,167,121,193,44,167,121,193,51,167,121,193,58,167,121,5,5,169,121,5,5,171,121,5,5,173,121,5,5,175,121,193,2,177,121,193,9,177,121,193,16,177,121,193,23,177,121,193,30,177,121,193,37,177,121,5,5,179,121,5,5,181,121,5,5,183,121,5,5,185,121,5,5,187,121,5,5,189,121,5,5,191,121,5,5,193,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,207,121,5,5,209,121,5,5,211,121,5,5,213,121,5,5,215,121,5,5,217,121,5,5,219,121,5,5,221,121,5,5,223,121,5,5,225,121,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,206,32,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,5,5,227,121,5,5,229,121,5,5,231,121,193,2,233,121,193,9,233,121,193,16,233,121,193,23,233,121,5,5,235,121,5,5,237,121,193,2,239,121,193,9,239,121,193,16,239,121,5,5,241,121,5,5,243,121,5,5,245,121,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,128,227,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,206,64,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,5,6,122,133,5,6,122,3,5,8,122,133,5,8,122,3,5,10,122,133,5,10,122,3,5,14,122,133,5,14,122,3,5,16,122,133,5,16,122,133,5,18,122,197,98,185,2,133,5,20,122,197,66,188,2,133,5,22,122,197,98,193,2,133,5,24,122,197,226,195,2,133,5,26,122,197,194,196,2,133,5,28,122,197,162,198,2,133,5,30,122,197,66,200,2,133,5,32,122,197,162,201,2,133,5,34,122,197,34,202,2,133,5,36,122,197,98,203,2,133,5,38,122,197,197,179,2,197,100,180,2,197,229,180,2,197,99,179,2,197,133,181,2,197,35,182,2,197,3,183,2,197,230,183,2,197,100,183,2,197,3,185,2,197,163,184,2,197,227,185,2,197,68,186,2,197,196,186,2,197,68,187,2,197,196,187,2,197,196,188,2,197,68,189,2,197,196,189,2,197,70,190,2,197,2,191,2,197,70,191,2,197,6,192,2,197,197,192,2,197,132,191,2,197,230,193,2,197,166,194,2,197,100,195,2,197,99,196,2,197,67,198,2,197,68,197,2,197,36,199,2,133,5,12,122,193,93,104,122,193,2,104,122,193,9,104,122,193,16,104,122,193,23,104,122,193,30,104,122,193,37,104,122,193,44,104,122,193,51,104,122,193,58,104,122,193,65,104,122,193,72,104,122,193,79,104,122,193,86,104,122,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,197,2,225,2,197,194,197,2,49,5,28,122,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,193,191,0,198,33,186,0,198,97,182,0,197,98,206,2,198,1,176,0,198,225,184,0,198,129,212,0,198,161,185,0,198,97,176,0,198,129,194,0,198,1,199,0,198,65,193,0,198,161,179,0,198,193,190,0,198,65,178,0,198,129,193,0,197,165,199,2,197,5,201,2,197,163,202,2,197,3,203,2,197,100,204,2,197,163,206,2,197,131,207,2,197,98,194,2,197,226,207,2,197,35,208,2,197,99,211,2,197,134,209,2,197,68,210,2,197,197,210,2,197,198,212,2,197,132,213,2,197,3,214,2,197,99,214,2,197,198,215,2,197,132,216,2,197,6,217,2,197,195,217,2,197,69,220,2,197,227,220,2,197,68,221,2,197,195,221,2,197,36,222,2,197,37,219,2,197,196,219,2,197,101,224,2,197,68,225,2,197,194,225,2,197,226,203,2,133,5,40,122,197,226,204,2,3,5,42,122,133,5,42,122,197,98,205,2,133,5,44,122,197,226,205,2,133,5,46,122,197,2,207,2,133,5,48,122,133,5,50,122,133,5,52,122,133,5,54,122,133,5,56,122,133,5,58,122,197,130,208,2,197,2,209,2,133,5,60,122,197,194,211,2,197,66,212,2,133,5,62,122,197,194,214,2,197,66,215,2,133,5,64,122,197,34,218,2,197,162,218,2,133,5,66,122,197,162,222,2,197,34,223,2,133,5,68,122,133,5,70,122,197,34,204,2,144,5,40,122,197,34,205,2,16,5,42,122,158,5,42,122,197,162,205,2,144,5,44,122,197,34,206,2,151,5,46,122,197,66,207,2,144,5,48,122,144,5,50,122,155,5,52,122,144,5,54,122,144,5,56,122,152,5,58,122,197,194,208,2,197,66,209,2,152,5,60,122,197,2,212,2,197,130,212,2,152,5,62,122,197,2,215,2,197,130,215,2,152,5,64,122,197,98,218,2,197,226,218,2,152,5,66,122,197,226,222,2,197,98,223,2,144,5,68,122,144,5,70,122,38,5,40,122,44,5,42,122,38,5,44,122,37,5,46,122,38,5,48,122,38,5,50,122,49,5,52,122,38,5,54,122,38,5,56,122,40,5,58,122,40,5,60,122,40,5,62,122,40,5,64,122,40,5,66,122,38,5,68,122,38,5,70,122,40,5,72,122,38,5,74,122,44,5,76,122,44,5,78,122,44,5,80,122,40,5,82,122,40,5,84,122,37,5,86,122,40,5,88,122,40,5,90,122,40,5,92,122,40,5,94,122,44,5,96,122,44,5,98,122,49,5,100,122,198,226,176,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,3,5,96,122,3,5,98,122,3,5,100,122,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,16,5,96,122,16,5,98,122,16,5,100,122,16,5,102,122,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,206,32,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,5,5,6,123,5,5,8,123,5,5,10,123,5,5,14,123,5,5,18,123,5,5,20,123,5,5,22,123,5,5,26,123,5,5,28,123,5,5,30,123,5,5,36,123,5,5,38,123,5,5,40,123,5,5,42,123,5,5,50,123,5,5,52,123,5,5,54,123,5,5,56,123,5,5,58,123,5,5,60,123,5,5,62,123,5,5,70,123,5,5,72,123,5,5,76,123,5,5,78,123,5,5,82,123,5,5,84,123,5,112,6,123,5,112,58,123,5,112,38,123,5,112,28,123,5,5,80,123,5,112,80,123,5,5,74,123,5,112,72,123,5,120,108,123,5,112,70,123,5,112,106,123,5,112,108,123,5,5,12,123,5,5,34,123,5,112,82,123,5,112,86,123,5,5,100,123,5,5,102,123,5,5,96,123,32,112,106,123,32,5,8,123,32,5,20,123,32,5,30,123,32,5,36,123,5,5,64,123,5,5,66,123,5,5,68,123,32,5,28,123,5,5,46,123,5,5,48,123,5,5,114,123,5,5,116,123,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,206,32,232,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,7,152,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,153,123,193,16,153,123,193,23,153,123,193,30,153,123,5,5,155,123,193,2,157,123,32,5,155,123,193,9,157,123,193,16,157,123,193,23,157,123,193,30,157,123,193,37,157,123,193,44,157,123,193,51,157,123,193,65,157,123,193,72,157,123,5,5,159,123,193,2,161,123,193,9,161,123,32,5,159,123,193,16,161,123,193,23,161,123,193,30,161,123,193,37,161,123,193,44,161,123,193,51,161,123,193,58,161,123,193,65,161,123,193,72,161,123,193,79,161,123,193,86,161,123,193,93,161,123,193,9,169,123,193,16,169,123,193,23,169,123,193,30,169,123,193,37,169,123,193,37,153,123,193,114,165,123,193,100,165,123,193,58,157,123,193,163,165,123,193,79,157,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,72,169,123,193,44,169,123,193,51,169,123,193,58,169,123,193,65,169,123,193,79,169,123,193,86,169,123,193,93,169,123,193,100,169,123,193,107,169,123,193,121,169,123,193,128,169,123,193,135,169,123,193,142,169,123,193,156,169,123,193,163,169,123,193,170,169,123,193,100,161,123,193,107,161,123,193,114,161,123,5,5,163,123,193,2,165,123,32,5,163,123,193,9,165,123,193,16,165,123,193,23,165,123,193,30,165,123,193,37,165,123,193,44,165,123,193,51,165,123,193,58,165,123,193,65,165,123,193,72,165,123,193,79,165,123,193,86,165,123,193,93,165,123,193,107,165,123,193,121,165,123,193,128,165,123,193,135,165,123,193,142,165,123,193,149,165,123,193,156,165,123,193,170,165,123,193,177,165,123,193,184,165,123,5,5,167,123,193,2,169,123,32,5,167,123,193,84,170,123,193,114,169,123,193,112,170,123,193,149,169,123,193,184,169,123,193,105,170,123,193,226,169,123,193,42,170,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,189,170,123,193,196,170,123,193,203,170,123,193,210,170,123,193,217,170,123,193,224,170,123,193,231,170,123,193,238,170,123,193,245,170,123,193,252,170,123,193,5,171,123,193,12,171,123,193,19,171,123,193,26,171,123,193,33,171,123,193,40,171,123,193,47,171,123,193,177,169,123,193,191,169,123,193,198,169,123,193,205,169,123,193,212,169,123,193,219,169,123,193,233,169,123,193,240,169,123,193,247,169,123,193,254,169,123,193,7,170,123,193,14,170,123,193,21,170,123,193,28,170,123,193,49,170,123,193,56,170,123,193,63,170,123,193,70,170,123,193,77,170,123,193,91,170,123,193,98,170,123,193,119,170,123,193,126,170,123,193,133,170,123,193,140,170,123,193,147,170,123,193,154,170,123,193,161,170,123,193,168,170,123,193,175,170,123,193,182,170,123,193,35,170,123,5,5,174,123,5,5,176,123,5,5,178,123,5,5,180,123,5,5,182,123,5,5,184,123,5,5,186,123,5,5,188,123,5,5,190,123,5,5,192,123,5,5,194,123,5,5,196,123,5,5,198,123,5,5,200,123,5,5,202,123,5,5,204,123,5,5,206,123,5,5,208,123,5,5,210,123,5,5,212,123,5,5,214,123,5,5,216,123,5,5,218,123,5,5,220,123,5,5,222,123,5,5,224,123,5,5,226,123,5,5,228,123,5,5,230,123,5,5,232,123,5,5,234,123,5,5,236,123,160,5,174,123,160,5,176,123,160,5,178,123,160,5,180,123,160,5,182,123,160,5,184,123,160,5,186,123,160,5,188,123,160,5,190,123,160,5,192,123,160,5,194,123,160,5,196,123,160,5,198,123,160,5,200,123,160,5,202,123,160,5,204,123,160,5,206,123,160,5,208,123,160,5,210,123,160,5,212,123,160,5,214,123,160,5,216,123,160,5,218,123,160,5,220,123,160,5,222,123,160,5,224,123,160,5,226,123,160,5,228,123,160,5,230,123,160,5,232,123,160,5,234,123,160,5,236,123,193,58,238,123,193,65,238,123,193,72,238,123,193,79,238,123,193,86,238,123,193,93,238,123,193,100,238,123,193,107,238,123,193,114,238,123,193,121,238,123,193,128,238,123,193,135,238,123,193,142,238,123,193,149,238,123,193,156,238,123,193,163,238,123,193,170,238,123,193,177,238,123,193,184,238,123,193,191,238,123,193,198,238,123,193,9,238,123,193,16,238,123,193,23,238,123,193,30,238,123,193,37,238,123,193,44,238,123,193,51,238,123,193,205,238,123,193,212,238,123,193,254,238,123,193,219,238,123,193,226,238,123,193,233,238,123,193,240,238,123,193,247,238,123,193,7,239,123,193,49,239,123,193,35,239,123,193,133,239,123,193,56,239,123,193,42,239,123,193,140,239,123,193,105,239,123,193,91,239,123,193,112,239,123,193,98,239,123,193,14,239,123,193,147,239,123,193,28,239,123,193,21,239,123,193,77,239,123,193,63,239,123,193,119,239,123,193,84,239,123,193,70,239,123,193,126,239,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,206,160,240,0,193,19,242,123,193,26,242,123,193,33,242,123,193,40,242,123,193,47,242,123,193,54,242,123,193,61,242,123,193,68,242,123,193,75,242,123,193,82,242,123,193,89,242,123,193,96,242,123,193,103,242,123,193,110,242,123,193,117,242,123,193,124,242,123,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,96,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,206,128,242,0,193,9,247,123,193,16,247,123,193,23,247,123,193,30,247,123,193,37,247,123,193,44,247,123,193,51,247,123,193,58,247,123,193,65,247,123,193,72,247,123,193,79,247,123,193,86,247,123,193,93,247,123,193,100,247,123,193,107,247,123,193,114,247,123,193,121,247,123,193,128,247,123,193,135,247,123,193,142,247,123,193,149,247,123,193,156,247,123,193,163,247,123,193,170,247,123,193,177,247,123,193,184,247,123,193,191,247,123,193,198,247,123,193,205,247,123,255,255,255,255,255,255,255,255,255,255,255,255,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,206,224,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,251,123,193,16,251,123,193,23,251,123,193,30,251,123,193,37,251,123,193,44,251,123,193,51,251,123,193,58,251,123,193,65,251,123,193,72,251,123,193,79,251,123,193,86,251,123,193,93,251,123,193,100,251,123,193,107,251,123,193,121,251,123,193,128,251,123,193,135,251,123,193,142,251,123,193,149,251,123,193,156,251,123,193,163,251,123,193,170,251,123,193,177,251,123,193,184,251,123,193,191,251,123,193,198,251,123,193,205,251,123,193,212,251,123,193,219,251,123,193,226,251,123,193,114,251,123,160,5,70,124,160,5,72,124,160,5,74,124,160,5,76,124,160,5,78,124,160,5,80,124,160,5,82,124,160,5,84,124,5,5,6,124,5,5,8,124,5,5,10,124,5,5,12,124,5,5,14,124,5,5,16,124,5,5,18,124,5,5,20,124,5,5,22,124,5,5,24,124,5,5,26,124,5,5,28,124,5,5,30,124,5,5,32,124,5,5,34,124,5,5,36,124,5,5,38,124,5,5,40,124,5,5,42,124,5,5,44,124,5,5,46,124,5,5,48,124,5,5,50,124,5,5,52,124,160,5,6,124,160,5,8,124,160,5,10,124,160,5,12,124,160,5,14,124,160,5,16,124,160,5,18,124,160,5,20,124,160,5,22,124,160,5,24,124,160,5,26,124,160,5,28,124,160,5,30,124,160,5,32,124,160,5,34,124,160,5,36,124,160,5,38,124,160,5,40,124,160,5,42,124,160,5,44,124,160,5,46,124,160,5,48,124,160,5,50,124,160,5,52,124,160,5,54,124,160,5,56,124,160,5,58,124,160,5,60,124,160,5,62,124,160,5,64,124,160,5,66,124,160,5,68,124,5,5,54,124,5,5,56,124,5,5,58,124,5,5,60,124,5,5,62,124,5,5,64,124,5,5,66,124,5,5,68,124,5,5,70,124,5,5,72,124,5,5,74,124,5,5,76,124,5,5,78,124,5,5,80,124,5,5,82,124,5,5,84,124,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,64,235,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,206,96,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,250,90,124,193,3,91,124,193,10,91,124,193,17,91,124,193,24,91,124,193,31,91,124,193,38,91,124,193,45,91,124,193,52,91,124,193,59,91,124,193,66,91,124,193,73,91,124,193,80,91,124,255,255,255,255,255,255,255,255,255,255,255,255,193,9,92,124,193,16,92,124,193,23,92,124,193,30,92,124,193,37,92,124,193,44,92,124,193,51,92,124,193,58,92,124,193,65,92,124,193,72,92,124,193,79,92,124,193,86,92,124,193,93,92,124,193,100,92,124,193,107,92,124,193,114,92,124,193,121,92,124,193,128,92,124,193,135,92,124,193,142,92,124,193,149,92,124,193,156,92,124,193,163,92,124,193,170,92,124,193,177,92,124,193,184,92,124,193,191,92,124,193,198,92,124,193,205,92,124,193,212,92,124,255,255,255,255,255,255,255,255,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,206,128,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,206,160,235,0,193,9,98,124,193,16,98,124,193,23,98,124,193,30,98,124,193,37,98,124,193,44,98,124,193,51,98,124,193,58,98,124,193,65,98,124,193,72,98,124,193,79,98,124,193,86,98,124,193,93,98,124,193,100,98,124,193,107,98,124,193,114,98,124,193,121,98,124,193,128,98,124,193,135,98,124,193,142,98,124,193,149,98,124,193,156,98,124,193,163,98,124,193,170,98,124,193,177,98,124,193,184,98,124,193,191,98,124,193,198,98,124,193,205,98,124,193,212,98,124,193,219,98,124,255,255,255,255,193,9,99,124,193,16,99,124,193,23,99,124,193,30,99,124,193,37,99,124,193,44,99,124,193,51,99,124,193,58,99,124,193,65,99,124,193,72,99,124,193,79,99,124,193,86,99,124,255,255,255,255,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,206,96,234,0,255,255,255,255,193,21,100,124,193,28,100,124,193,35,100,124,193,42,100,124,193,49,100,124,193,56,100,124,193,63,100,124,193,70,100,124,193,77,100,124,193,84,100,124,193,91,100,124,193,98,100,124,193,105,100,124,193,112,100,124,193,119,100,124,193,126,100,124,193,133,100,124,193,140,100,124,193,147,100,124,255,255,255,255,193,154,100,124,193,161,100,124,255,255,255,255,193,168,100,124,193,175,100,124,193,182,100,124,193,189,100,124,193,196,100,124,193,203,100,124,193,210,100,124,193,217,100,124,193,224,100,124,193,231,100,124,193,238,100,124,193,245,100,124,193,252,100,124,193,5,101,124,193,12,101,124,255,255,255,255,255,255,255,255,193,19,101,124,193,26,101,124,193,33,101,124,193,40,101,124,193,47,101,124,193,54,101,124,193,61,101,124,193,68,101,124,193,75,101,124,193,82,101,124,193,89,101,124,193,96,101,124,193,103,101,124,193,110,101,124,255,255,255,255,255,255,255,255,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,206,128,234,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,206,192,235,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,154,113,124,193,161,113,124,193,168,113,124,193,175,113,124,193,182,113,124,193,189,113,124,193,196,113,124,193,203,113,124,193,210,113,124,193,217,113,124,193,224,113,124,193,231,113,124,193,238,113,124,193,245,113,124,193,252,113,124,193,5,114,124,193,12,114,124,193,19,114,124,193,26,114,124,193,33,114,124,193,40,114,124,193,47,114,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,54,114,124,193,61,114,124,193,68,114,124,193,75,114,124,193,82,114,124,193,89,114,124,193,96,114,124,193,103,114,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,115,124,193,16,115,124,193,23,115,124,193,30,115,124,193,37,115,124,193,44,115,124,255,255,255,255,255,255,255,255,193,51,115,124,255,255,255,255,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,206,224,235,0,255,255,255,255,193,112,116,124,193,119,116,124,255,255,255,255,255,255,255,255,255,255,255,255,193,126,116,124,255,255,255,255,255,255,255,255,193,133,116,124,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,206,64,236,0,32,5,132,124,5,5,132,124,32,5,134,124,5,5,134,124,193,2,136,124,193,9,136,124,32,5,138,124,5,5,138,124,193,2,140,124,193,9,140,124,193,16,140,124,193,23,140,124,32,5,142,124,5,5,142,124,32,5,144,124,5,5,144,124,32,5,146,124,5,5,146,124,32,5,148,124,5,5,148,124,32,5,150,124,5,5,150,124,193,2,152,124,193,9,152,124,193,16,152,124,193,23,152,124,193,30,152,124,193,37,152,124,32,5,154,124,5,5,154,124,193,2,156,124,255,255,255,255,193,9,162,124,193,16,162,124,193,23,162,124,193,30,162,124,193,37,162,124,193,44,162,124,193,51,162,124,193,58,162,124,193,65,162,124,193,72,162,124,193,79,162,124,193,86,162,124,193,93,162,124,193,100,162,124,193,107,162,124,193,114,162,124,193,121,162,124,193,128,162,124,193,135,162,124,193,142,162,124,193,149,162,124,193,156,162,124,198,2,172,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,9,163,124,193,16,163,124,193,23,163,124,193,30,163,124,193,37,163,124,193,44,163,124,193,51,163,124,5,5,165,124,5,112,165,124,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,206,32,236,0,193,9,201,124,193,16,201,124,193,23,201,124,193,30,201,124,193,37,201,124,193,44,201,124,193,51,201,124,193,58,201,124,193,65,201,124,193,72,201,124,193,79,201,124,193,86,201,124,193,93,201,124,193,100,201,124,193,107,201,124,193,114,201,124,193,121,201,124,193,128,201,124,193,135,201,124,193,142,201,124,193,149,201,124,193,156,201,124,193,163,201,124,193,170,201,124,193,177,201,124,193,184,201,124,193,191,201,124,193,198,201,124,193,205,201,124,193,212,201,124,193,219,201,124,193,226,201,124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,206,96,236,0,193,9,205,124,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,32,235,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,128,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,193,222,223,124,193,229,223,124,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,160,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,206,192,239,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,206,0,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,206,32,240,0,5,112,36,125,5,112,38,125,5,112,40,125,5,112,42,125,5,112,44,125,5,112,46,125,5,112,48,125,5,120,48,125,5,112,50,125,5,112,52,125,5,112,54,125,5,120,54,125,5,112,56,125,5,120,56,125,5,112,58,125,5,120,58,125,5,112,60,125,5,112,62,125,5,112,64,125,5,117,66,125,5,122,66,125,5,112,68,125,5,112,70,125,5,112,72,125,5,112,74,125,5,120,74,125,5,112,76,125,5,120,76,125,5,112,78,125,5,112,80,125,193,16,82,125,193,23,82,125,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,206,64,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,206,192,240,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,206,224,240,0,193,96,154,125,193,98,154,125,193,100,154,125,193,102,154,125,193,104,154,125,193,106,154,125,193,108,154,125,193,110,154,125,193,112,154,125,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,206,64,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,206,0,241,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,193,119,0,198,225,173,0,198,129,174,0,198,193,174,0,198,225,174,0,198,161,175,0,198,65,121,0,198,65,176,0,198,129,176,0,198,129,177,0,198,161,177,0,198,33,123,0,198,1,178,0,198,97,178,0,198,161,178,0,198,193,178,0,198,1,179,0,198,33,179,0,198,225,179,0,198,33,180,0,198,65,180,0,198,97,180,0,198,129,180,0,198,65,124,0,198,65,181,0,198,129,181,0,198,225,181,0,198,33,182,0,198,65,182,0,198,129,182,0,198,161,183,0,198,33,126,0,198,65,172,0,198,193,175,0,198,225,172,0,198,193,183,0,198,33,176,0,198,225,177,0,198,193,172,0,198,193,177,0,198,129,175,0,198,193,180,0,198,1,195,0,198,193,198,0,198,1,198,0,198,161,195,0,198,193,216,0,198,1,184,0,198,1,194,0,198,193,195,0,198,97,195,0,198,97,204,0,198,33,183,0,198,97,200,0,198,129,213,0,198,129,204,0,198,1,180,0,198,1,205,0,198,65,202,0,198,225,185,0,198,225,215,0,198,97,177,0,198,193,181,0,198,97,198,0,198,129,179,0,198,65,206,0,198,161,201,0,198,161,213,0,198,97,184,0,198,65,183,0,198,161,198,0,198,33,192,0,198,97,192,0,198,129,172,0,198,33,173,0,198,193,215,0,198,97,188,0,198,97,174,0,198,225,182,0,198,65,192,0,198,65,214,0,198,1,192,0,198,161,204,0,198,65,205,0,198,1,183,0,198,129,198,0,198,129,195,0,198,33,195,0,198,33,202,0,198,193,179,0,198,129,183,0,198,97,216,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,193,220,171,251,193,122,79,252,193,172,95,252,193,248,45,251,193,116,132,252,193,160,14,251,193,44,168,251,193,76,2,251,193,12,24,252,193,74,216,251,193,226,174,252,193,14,54,251,193,190,93,251,193,20,114,252,193,254,232,252,193,156,33,253,193,244,14,252,193,128,78,253,193,254,22,252,193,236,194,251,193,222,224,252,193,162,198,251,193,164,95,252,193,76,9,251,193,248,27,251,193,82,32,251,193,12,241,251,193,218,172,252,193,108,222,252,193,140,34,253,193,124,98,253,193,176,44,251,193,106,20,253,193,198,136,252,193,174,35,253,193,116,37,253,193,132,50,253,193,148,52,253,193,178,78,253,193,170,81,253,193,218,133,253,193,88,148,253,193,28,150,253,193,120,173,251,193,10,56,252,193,28,219,252,255,255,255,255,255,255,255,255,193,48,3,251,193,146,31,251,193,210,27,251,193,90,13,251,193,40,26,251,193,66,29,251,193,254,42,251,193,246,44,251,193,92,67,251,193,192,64,251,193,84,67,251,193,228,69,251,193,182,93,251,193,52,96,251,193,132,103,251,193,254,103,251,198,193,197,0,198,33,198,0,198,65,198,0,198,225,198,0,198,65,199,0,198,97,199,0,198,1,174,0,198,65,200,0,198,161,200,0,198,1,201,0,198,129,202,0,198,129,203,0,198,33,204,0,198,65,204,0,198,161,205,0,198,33,206,0,198,97,206,0,198,1,207,0,198,193,206,0,198,33,207,0,198,65,207,0,198,225,206,0,198,129,207,0,198,161,207,0,198,193,207,0,198,33,208,0,198,225,208,0,198,193,208,0,198,33,209,0,198,129,209,0,198,97,210,0,198,129,210,0,193,100,44,253,193,102,232,251,193,218,70,253,193,10,50,253,193,144,34,252,193,112,4,251,193,130,56,251,193,118,224,253,193,118,224,253,193,248,103,251,193,242,98,253,193,50,67,251,193,140,103,251,193,224,186,251,193,20,106,252,193,164,192,252,193,126,251,252,193,46,9,253,193,152,19,253,193,54,87,253,193,92,250,251,193,108,25,252,193,20,51,252,193,94,81,252,193,230,232,252,193,142,94,253,193,72,167,253,193,202,7,251,193,56,50,251,193,224,4,252,193,76,63,252,193,32,250,252,198,161,174,0,198,1,182,0,198,97,175,0,198,65,175,0,198,33,175,0,198,193,176,0,198,33,178,0,198,225,178,0,198,65,179,0,198,97,179,0,198,97,181,0,198,161,181,0,198,225,186,0,198,1,187,0,198,65,187,0,198,97,187,0,198,33,187,0,198,129,187,0,198,161,188,0,198,65,189,0,198,97,190,0,198,65,190,0,198,65,191,0,198,33,191,0,198,225,191,0,198,193,192,0,255,255,255,255,198,225,193,0,198,33,194,0,198,65,195,0,198,225,196,0,198,65,197,0,193,250,2,251,193,206,4,251,193,2,5,251,193,116,8,251,193,106,12,251,193,126,14,251,193,152,14,251,193,20,16,251,193,14,18,251,193,68,19,251,193,160,21,251,193,112,21,251,193,76,24,251,193,14,34,251,193,68,26,251,193,102,26,251,193,164,27,251,193,156,28,251,193,228,28,251,193,98,29,251,193,194,27,251,193,162,29,251,193,166,29,251,193,76,30,251,193,180,30,251,193,114,10,251,193,78,31,251,193,146,31,251,193,24,140,253,193,200,34,251,193,140,35,251,193,124,36,251,193,178,209,253,193,148,34,253,193,232,98,251,193,134,160,251,193,236,166,252,193,102,203,252,193,126,68,252,193,22,131,252,193,252,49,253,193,44,135,253,193,118,98,251,193,24,134,251,193,126,250,251,193,38,29,252,193,174,36,252,193,130,175,252,193,210,181,252,193,170,126,253,193,146,43,251,193,234,203,252,193,94,33,251,193,88,32,251,193,86,143,252,193,104,178,252,193,94,230,252,193,196,127,253,193,180,39,253,193,198,193,251,193,92,250,251,193,168,35,253,193,216,4,251,193,158,125,251,193,36,18,253,193,156,33,253,193,160,157,251,193,216,170,251,193,88,198,251,193,86,14,252,193,216,164,252,193,192,78,252,193,182,10,251,193,252,83,251,193,158,125,251,193,98,145,251,193,240,171,251,193,128,80,252,193,64,85,252,193,128,193,252,193,212,200,252,193,80,100,253,193,42,135,253,193,76,139,253,193,36,149,253,193,112,13,251,193,138,139,252,193,88,97,253,193,212,131,253,193,116,176,251,193,252,7,251,193,134,21,251,193,48,126,251,193,254,131,251,193,206,218,251,193,92,250,251,193,32,223,251,193,232,235,251,193,90,241,251,193,60,24,252,193,70,82,252,193,214,100,252,193,10,192,252,193,192,18,253,193,228,18,253,193,98,98,253,193,216,133,253,193,166,47,251,193,102,34,252,193,144,57,251,193,110,59,252,193,214,86,252,193,190,248,252,193,34,130,253,193,252,190,253,193,236,210,253,193,196,236,251,193,8,29,252,193,190,215,252,193,118,152,252,193,148,155,252,193,18,169,252,193,144,72,252,193,98,49,252,193,56,38,253,193,90,10,251,193,44,226,252,193,244,36,251,193,16,206,253,193,90,141,251,193,16,43,252,193,184,245,252,193,114,23,253,193,186,193,251,193,80,214,252,193,200,12,253,193,48,157,251,193,240,233,251,193,236,26,252,193,98,74,252,193,196,88,253,193,102,13,251,193,150,31,251,193,208,43,251,193,192,207,251,193,44,3,252,193,174,62,252,193,104,112,252,193,84,198,252,193,214,248,252,193,56,253,252,193,36,61,253,193,36,138,253,193,126,184,253,193,208,203,253,193,58,129,252,193,76,137,252,193,44,178,252,193,14,230,252,193,206,103,253,193,106,59,252,193,118,104,252,193,118,238,252,193,226,84,253,193,12,224,253,193,114,227,251,193,228,125,253,193,248,40,251,193,142,236,251,193,36,238,251,193,184,25,252,193,42,34,252,193,136,81,252,193,54,95,252,193,110,128,252,193,190,174,252,193,166,151,253,193,80,28,251,193,254,189,251,193,202,127,253,193,102,16,251,193,232,139,251,193,70,29,252,193,46,73,253,193,6,167,251,193,18,180,251,193,22,239,251,193,122,79,252,193,122,128,253,193,114,36,251,193,6,57,251,193,78,134,251,193,70,204,251,193,180,198,251,193,188,204,251,193,128,204,251,193,170,204,251,193,74,206,251,193,156,204,251,193,116,210,251,193,36,214,251,193,90,215,251,193,42,217,251,193,64,222,251,193,146,232,251,193,150,224,251,193,18,230,251,193,128,226,251,193,162,227,251,193,8,224,251,193,230,29,251,193,10,30,251,193,22,30,251,193,110,228,251,193,124,204,252,193,184,204,252,193,240,233,251,193,248,233,251,193,116,209,252,193,10,236,251,193,242,235,251,193,50,236,251,193,246,236,251,193,50,238,251,193,88,60,251,193,102,62,251,193,154,62,251,193,188,64,251,193,216,64,251,193,44,67,251,193,44,67,251,193,84,67,251,193,120,67,251,193,136,67,251,193,164,69,251,193,40,85,251,193,34,72,251,193,42,85,251,193,98,72,251,193,172,74,251,193,150,35,251,193,228,99,251,193,168,88,251,193,218,90,251,193,14,91,251,193,82,88,251,193,68,92,251,193,66,92,251,193,38,96,251,193,30,99,251,193,238,99,251,193,32,100,251,193,198,100,251,193,154,101,251,193,76,102,251,193,226,104,251,193,218,57,251,193,100,106,251,193,108,159,251,193,166,220,251,193,46,44,252,193,228,133,252,193,130,121,253,193,220,171,253,193,136,210,253,193,132,214,253,193,8,42,251,193,250,229,251,193,88,11,252,193,208,75,253,193,176,153,251,193,4,183,251,193,206,187,251,193,68,206,251,193,212,36,252,193,12,55,252,193,26,86,252,193,208,140,252,193,168,179,252,193,164,202,252,193,38,73,253,193,90,238,252,193,8,81,253,193,98,105,253,193,250,35,251,193,52,42,251,193,142,60,251,193,240,50,252,193,246,36,251,193,158,37,251,193,126,39,251,193,248,39,251,193,66,42,251,193,254,42,251,193,4,43,251,193,12,44,251,193,246,44,251,193,20,45,251,193,22,45,251,193,248,45,251,193,208,47,251,193,46,48,251,193,154,48,251,193,52,50,251,193,94,50,251,193,118,50,251,193,118,50,251,193,118,50,251,193,188,50,251,193,158,48,252,193,128,54,251,193,110,55,251,193,178,55,251,193,142,56,251,193,154,56,251,193,242,56,251,193,80,60,251,193,198,57,251,193,230,57,251,193,242,58,251,193,102,233,251,193,176,204,252,193,134,204,252,193,108,206,252,193,144,208,252,193,54,208,252,193,192,113,251,193,240,210,252,193,14,211,252,193,200,234,251,193,16,235,251,193,52,217,252,193,96,217,252,193,224,77,253,193,70,220,252,193,108,223,252,193,96,223,252,193,192,223,252,193,112,42,251,193,232,223,252,193,236,223,252,193,2,224,252,193,224,224,252,193,94,225,252,193,222,224,252,193,180,227,252,193,130,226,252,193,190,232,252,193,182,227,252,193,82,228,252,193,74,230,252,193,206,230,252,198,65,184,0,198,129,184,0,198,161,184,0,198,193,184,0,198,33,185,0,198,193,185,0,198,1,186,0,198,97,186,0,198,161,186,0,198,193,186,0,198,33,187,0,198,161,187,0,198,193,187,0,198,225,187,0,198,1,188,0,198,33,188,0,198,129,188,0,198,193,188,0,198,225,188,0,198,65,189,0,198,129,189,0,198,161,189,0,198,193,189,0,198,225,189,0,198,1,190,0,198,33,190,0,198,129,190,0,198,161,190,0,198,1,191,0,198,97,191,0,198,129,191,0,198,161,191,0,193,118,106,251,193,80,108,251,193,176,109,251,193,214,109,251,193,238,109,251,193,162,108,251,193,56,111,251,193,160,112,251,193,188,112,251,193,240,115,251,193,122,118,251,193,122,118,251,193,236,121,251,193,196,123,251,193,248,124,251,193,158,125,251,193,104,127,251,193,6,128,251,193,46,128,251,193,80,128,251,193,216,164,251,193,144,130,251,193,6,131,251,193,132,133,251,193,8,135,251,193,52,137,251,193,212,137,251,193,46,139,251,193,66,141,251,193,50,139,251,193,106,142,251,193,100,142,251,193,48,111,251,193,160,117,251,193,250,157,251,193,98,158,251,193,208,165,251,193,130,168,251,193,98,176,251,193,38,180,251,193,46,178,251,193,254,182,251,193,124,181,251,193,70,186,251,193,116,190,251,193,96,200,251,193,154,202,251,193,226,200,251,193,50,214,251,193,96,226,251,193,240,233,251,193,248,233,251,193,248,235,251,193,192,11,252,193,244,14,252,193,184,25,252,193,162,34,252,193,94,32,252,193,210,36,252,193,100,45,252,193,188,53,252,193,206,120,252,193,94,65,252,193,58,72,252,193,32,143,251,193,212,78,253,193,158,147,251,193,142,148,251,193,220,148,251,193,146,150,251,193,98,151,251,193,232,152,251,193,234,152,251,193,158,153,251,193,214,155,251,193,144,156,251,193,150,156,251,193,156,156,251,193,48,157,251,193,102,213,253,193,102,160,251,193,122,160,251,193,122,160,251,193,52,217,252,193,122,162,251,193,122,162,251,193,234,164,251,193,86,230,251,193,36,185,252,193,140,165,251,193,210,165,251,193,84,167,251,193,34,168,251,193,54,170,251,193,74,170,251,193,224,170,251,193,44,85,253,193,170,85,253,193,116,87,253,193,212,89,253,193,244,90,253,193,196,90,253,193,92,91,253,193,88,100,253,193,154,102,253,193,156,102,253,193,178,103,253,193,170,108,253,193,176,109,253,193,122,113,253,193,84,120,253,193,54,121,253,193,108,122,253,193,186,122,253,193,44,130,253,193,36,132,253,193,234,144,251,193,66,137,253,193,222,137,253,193,232,140,253,193,72,143,253,193,36,144,253,193,184,146,253,193,150,147,253,193,174,148,253,193,188,149,253,193,198,148,253,193,198,148,253,193,138,174,251,193,178,173,251,193,142,173,251,193,176,174,251,193,242,176,251,193,64,176,251,193,26,180,251,193,34,180,251,193,38,180,251,193,34,180,251,193,172,181,251,193,254,182,251,193,72,183,251,193,44,183,251,193,66,183,251,193,144,185,251,193,70,186,251,193,224,186,251,193,100,188,251,193,40,189,251,193,234,191,251,193,138,193,251,193,208,193,251,193,200,196,251,193,180,195,251,193,162,196,251,193,232,194,251,193,50,198,251,193,104,198,251,193,158,200,251,193,20,201,251,193,166,202,251,193,70,186,251,193,36,214,251,193,54,222,251,193,128,226,251,193,20,241,251,193,8,27,252,193,160,29,252,193,210,36,252,193,188,53,252,193,50,64,252,193,8,83,252,193,68,129,252,193,240,134,252,193,40,135,252,193,38,135,252,193,132,135,252,193,144,135,252,193,158,135,252,193,242,137,252,193,244,137,252,193,236,144,252,193,94,148,252,193,104,157,252,193,168,179,252,193,180,180,252,193,230,181,252,193,66,191,252,193,114,198,252,193,246,215,252,193,8,223,252,193,8,223,252,193,206,230,252,198,129,192,0,198,161,192,0,198,225,192,0,198,33,193,0,198,97,193,0,198,161,193,0,198,193,193,0,198,225,126,0,198,225,194,0,198,65,127,0,198,1,128,0,198,97,196,0,198,129,196,0,198,193,196,0,198,1,197,0,198,33,197,0,198,97,197,0,198,129,197,0,198,161,197,0,198,225,197,0,198,193,128,0,198,33,129,0,198,33,199,0,198,129,199,0,198,161,199,0,198,193,199,0,198,225,199,0,198,1,200,0,198,33,200,0,198,129,200,0,198,193,200,0,198,225,200,0,193,160,236,251,193,140,239,251,193,20,241,251,193,80,240,251,193,38,241,251,193,38,239,251,193,74,243,251,193,16,246,251,193,80,245,251,193,234,247,251,193,44,250,251,193,220,254,251,193,104,253,251,193,60,3,252,193,116,5,252,193,190,6,252,193,112,7,252,193,32,9,252,193,182,9,252,193,234,10,252,193,198,13,252,193,244,14,252,193,246,14,252,193,254,14,252,193,52,135,251,193,158,16,252,193,74,22,252,193,152,24,252,193,240,23,252,193,14,24,252,193,188,22,252,193,194,26,252,193,178,25,252,193,8,27,252,193,184,25,252,193,234,26,252,193,10,27,252,193,36,27,252,193,140,27,252,193,158,25,252,193,162,31,252,193,34,32,252,193,222,34,252,193,94,32,252,193,128,34,252,193,78,37,252,193,100,29,252,193,4,39,252,193,194,39,252,193,36,40,252,193,132,41,252,193,92,46,252,193,100,45,252,193,94,45,252,193,10,47,252,193,244,46,252,193,218,48,252,193,206,48,252,193,10,50,252,193,2,29,251,193,4,55,252,193,216,53,252,193,22,58,252,193,192,59,252,193,36,64,252,193,94,65,252,193,158,67,252,193,50,68,252,193,244,69,252,193,200,70,252,193,184,72,252,193,174,76,252,193,248,78,252,193,134,79,252,193,194,79,252,193,248,79,252,193,194,80,252,193,194,80,252,193,42,84,252,193,84,84,252,193,80,85,252,193,18,86,252,193,170,88,252,193,160,90,252,193,108,93,252,193,214,94,252,193,104,94,252,193,128,96,252,193,172,95,252,193,24,154,251,193,106,102,252,193,174,108,252,193,244,108,252,193,210,110,252,193,232,110,252,193,108,112,252,193,54,75,252,193,80,85,252,193,158,91,252,193,100,94,252,193,36,103,252,193,124,102,252,193,12,111,252,193,104,111,252,193,180,113,252,193,114,116,252,193,96,116,252,193,26,131,252,193,158,150,252,193,104,157,252,193,124,168,252,193,46,177,252,193,168,179,252,193,18,189,252,193,114,198,252,193,98,226,252,193,90,230,252,193,184,7,253,193,214,21,253,193,4,25,253,193,198,136,252,193,102,34,253,193,156,35,253,193,126,34,253,193,174,35,253,193,168,35,253,193,134,35,253,193,116,37,253,198,33,201,0,198,65,201,0,198,97,201,0,198,129,201,0,198,193,201,0,198,225,201,0,198,97,202,0,198,161,202,0,198,193,202,0,198,225,202,0,198,1,203,0,198,33,203,0,198,97,203,0,198,161,203,0,198,193,203,0,198,225,203,0,198,1,204,0,198,193,204,0,198,225,204,0,198,33,205,0,198,97,205,0,198,129,205,0,198,225,205,0,198,1,206,0,198,129,206,0,198,161,206,0,198,97,207,0,198,225,207,0,198,1,208,0,198,65,208,0,198,97,208,0,198,129,208,0,193,180,113,252,193,196,113,252,193,194,113,252,193,110,114,252,193,22,115,252,193,224,114,252,193,226,114,252,193,226,114,252,193,114,116,252,193,152,116,252,193,62,119,252,193,140,117,252,193,136,125,252,193,190,125,252,193,136,127,252,193,58,129,252,193,26,131,252,193,144,132,252,193,98,135,252,193,144,135,252,193,142,137,252,193,148,138,252,193,246,137,252,193,172,141,252,193,32,141,252,193,236,144,252,193,46,144,252,193,158,145,252,193,120,149,252,193,240,153,252,193,240,153,252,193,8,154,252,193,136,158,252,193,222,158,252,193,166,159,252,193,218,160,252,193,242,159,252,193,170,162,252,193,228,171,252,193,130,172,252,193,120,172,252,193,210,172,252,193,108,174,252,193,90,174,252,193,106,176,252,193,236,179,252,193,122,178,252,193,196,179,252,193,238,181,252,193,166,185,252,193,232,188,252,193,98,189,252,193,16,191,252,193,114,191,252,193,12,192,252,193,236,192,252,193,126,193,252,193,224,197,252,193,114,198,252,193,10,199,252,193,32,200,252,193,38,201,252,193,46,202,252,193,166,202,252,198,161,208,0,198,1,209,0,198,65,209,0,198,97,131,0,198,193,131,0,198,97,209,0,198,161,209,0,198,193,209,0,198,225,209,0,198,1,210,0,198,33,210,0,198,65,210,0,198,193,210,0,198,1,211,0,198,33,211,0,198,65,211,0,198,97,211,0,198,161,211,0,198,1,212,0,198,65,212,0,198,161,212,0,198,225,212,0,198,1,213,0,198,33,213,0,198,65,213,0,198,97,213,0,198,1,214,0,198,33,214,0,198,97,214,0,198,161,214,0,198,193,214,0,198,1,215,0,198,161,210,0,198,225,210,0,198,129,211,0,198,225,211,0,198,193,211,0,198,33,212,0,198,65,212,0,198,97,212,0,198,193,212,0,198,225,213,0,198,129,214,0,198,225,214,0,198,97,215,0,198,129,215,0,198,161,215,0,198,33,216,0,198,225,216,0,198,1,217,0,198,33,217,0,198,65,217,0,198,129,217,0,198,193,217,0,198,225,217,0,198,97,218,0,198,161,218,0,198,65,219,0,198,225,219,0,198,33,220,0,198,97,220,0,198,129,220,0,198,193,220,0,198,161,220,0,193,244,229,252,193,16,230,252,193,20,230,252,193,52,230,252,193,32,231,252,193,120,236,252,193,210,233,252,193,52,239,252,193,96,238,252,193,100,238,252,193,170,238,252,193,112,8,253,193,42,241,252,193,214,243,252,193,222,245,252,193,140,247,252,193,238,245,252,193,58,250,252,193,254,248,252,193,194,252,252,193,56,253,252,193,28,254,252,193,60,254,252,193,118,255,252,193,228,2,253,193,26,4,253,193,10,3,253,193,184,7,253,193,28,5,253,193,164,6,253,193,196,7,253,193,16,8,253,193,206,6,253,193,96,9,253,193,140,11,253,193,6,16,253,193,52,16,253,193,86,18,253,193,208,18,253,193,222,18,253,193,182,19,253,193,156,19,253,193,12,30,251,193,138,27,253,193,138,30,253,193,240,30,253,193,204,31,253,193,172,32,253,193,134,35,253,193,22,40,253,193,112,45,253,193,76,47,253,193,18,49,253,193,154,49,253,193,168,53,253,193,120,55,253,193,196,57,253,193,96,41,251,193,84,60,253,193,2,61,253,193,38,61,253,193,88,45,251,193,8,71,253,193,200,73,253,193,22,40,253,193,148,52,253,193,200,73,253,193,208,84,253,193,58,96,253,193,64,101,253,193,102,128,253,193,218,133,253,193,234,139,253,193,182,146,253,193,88,148,253,193,198,148,253,193,28,150,253,193,244,178,253,193,118,224,253,193,154,183,251,193,142,183,251,193,10,237,251,193,16,246,251,193,52,114,252,193,152,116,252,193,128,119,252,193,234,163,252,193,142,56,253,193,110,220,253,193,14,224,253,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,33,215,0,198,65,215,0,198,1,216,0,198,65,216,0,198,129,216,0,198,161,216,0,198,225,132,0,198,1,217,0,198,97,217,0,198,161,217,0,198,1,218,0,198,33,218,0,198,65,218,0,198,129,218,0,198,193,218,0,198,225,218,0,198,1,219,0,198,33,219,0,198,97,219,0,198,129,219,0,198,161,219,0,198,1,220,0,198,65,220,0,198,129,220,0,198,1,221,0,198,65,221,0,198,97,221,0,198,161,221,0,198,225,221,0,198,1,222,0,198,33,222,0,198,65,222,0,193,158,149,253,193,192,154,253,193,188,157,253,193,122,158,253,193,190,159,253,193,114,165,253,193,54,166,253,193,220,167,253,193,18,174,253,193,162,177,253,193,244,178,253,193,58,190,253,193,118,196,253,193,106,198,253,193,58,201,253,193,218,199,253,193,114,201,253,193,246,202,253,193,84,202,253,193,182,205,253,193,220,209,253,193,94,213,253,193,190,214,253,193,36,217,253,193,222,217,253,193,158,217,253,193,10,218,253,193,86,218,253,193,240,219,253,193,176,221,253,255,255,255,255,255,255,255,255,198,225,220,0,198,33,221,0,198,129,221,0,198,193,221,0,198,161,222,0,198,225,222,0,198,33,223,0,198,97,223,0,198,193,223,0,198,33,224,0,198,193,224,0,198,129,225,0,198,161,225,0,198,225,225,0,198,1,226,0,198,65,226,0,198,97,226,0,198,161,226,0,198,193,226,0,198,225,226,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,198,97,222,0,198,129,222,0,198,193,222,0,198,1,223,0,198,65,223,0,198,129,223,0,198,161,223,0,198,225,223,0,198,1,224,0,198,65,224,0,198,97,224,0,198,129,224,0,198,161,224,0,198,225,224,0,198,1,225,0,198,33,225,0,198,65,225,0,198,97,225,0,198,193,225,0,198,33,226,0,198,129,226,0,198,1,227,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,2,212,78,0,0,150,10,251,2,238,78,0,0,2,11,251,2,180,1,2,0,148,11,251,2,45,79,0,0,4,12,251,2,105,79,0,0,44,13,251,2,3,2,2,0,212,13,251,2,123,207,2,0,66,14,251,2,113,0,3,0,86,14,251,2,174,79,0,0,126,14,251,2,238,79,0,0,234,15,251,2,99,2,2,0,164,16,251,2,154,207,2,0,104,17,251,2,64,80,0,0,152,17,251,2,167,2,2,0,38,18,251,2,128,80,0,0,18,19,251,2,237,2,2,0,120,19,251,2,170,80,0,0,82,20,251,2,206,80,0,0,110,21,251,2,109,3,2,0,220,21,251,2,248,80,0,0,188,22,251,2,183,3,2,0,252,22,251,2,212,3,2,0,50,23,251,2,232,3,2,0,200,23,251,2,249,184,2,0,238,24,251,2,216,5,2,0,100,32,251,2,250,5,2,0,16,33,251,2,60,6,2,0,32,34,251,2,188,6,2,0,20,36,251,2,28,82,0,0,88,36,251,2,206,6,2,0,128,36,251,2,231,6,2,0,20,37,251,2,16,7,2,0,192,37,251,2,82,82,0,0,42,38,251,2,49,7,2,0,96,38,251,2,250,7,2,0,76,41,251,2,123,8,2,0,164,43,251,2,87,10,2,0,126,51,251,2,153,10,2,0,192,52,251,2,85,11,2,0,150,55,251,2,171,11,2,0,32,57,251,2,24,84,0,0,134,57,251,2,203,11,2,0,48,58,251,2,8,12,2,0,114,59,251,2,80,12,2,0,246,60,251,2,58,168,2,0,176,61,251,2,212,1,3,0,26,62,251,2,224,84,0,0,58,62,251,2,172,12,2,0,234,62,251,2,236,12,2,0,104,63,251,2,245,209,2,0,30,64,251,2,40,85,0,0,102,64,251,2,39,13,2,0,54,65,251,2,146,186,2,0,114,66,251,2,12,210,2,0,176,66,251,2,122,85,0,0,24,67,251,2,142,85,0,0,62,67,251,2,182,53,0,0,162,67,251,2,227,13,2,0,50,68,251,2,92,168,2,0,224,68,251,2,47,210,2,0,34,69,251,2,115,14,2,0,156,70,251,2,90,210,2,0,156,71,251,2,246,85,0,0,2,72,251,2,212,14,2,0,134,72,251,2,120,168,2,0,162,73,251,2,211,186,2,0,190,73,251,2,40,86,0,0,72,74,251,2,97,15,2,0,206,74,251,2,168,15,2,0,92,75,251,2,251,53,0,0,90,76,251,2,199,15,2,0,110,76,251,2,21,16,2,0,10,77,251,2,246,186,2,0,106,77,251,2,61,16,2,0,10,78,251,2,220,210,2,0,206,78,251,2,148,86,0,0,6,79,251,2,143,16,2,0,54,79,251,2,240,210,2,0,252,79,251,2,241,16,2,0,122,80,251,2,28,187,2,0,190,80,251,2,17,17,2,0,44,81,251,2,187,86,0,0,170,81,251,2,49,17,2,0,198,81,251,2,121,17,2,0,186,82,251,2,180,17,2,0,192,83,251,2,88,18,2,0,180,86,251,2,91,187,2,0,36,87,251,2,97,87,0,0,84,87,251,2,132,18,2,0,178,87,251,2,139,87,0,0,82,88,251,2,183,18,2,0,190,88,251,2,182,87,0,0,118,89,251,2,237,18,2,0,210,89,251,2,212,168,2,0,72,90,251,2,156,211,2,0,128,90,251,2,220,87,0,0,172,90,251,2,235,87,0,0,200,90,251,2,38,19,2,0,46,91,251,2,124,187,2,0,198,91,251,2,22,88,0,0,12,92,251,2,100,19,2,0,132,92,251,2,182,211,2,0,76,93,251,2,73,88,0,0,148,93,251,2,174,19,2,0,244,93,251,2,114,88,0,0,226,94,251,2,237,19,2,0,70,95,251,2,153,2,3,0,236,95,251,2,156,88,0,0,8,96,251,2,186,88,0,0,40,97,251,2,123,20,2,0,150,97,251,2,220,20,2,0,14,99,251,2,247,21,2,0,162,103,251,2,52,22,2,0,158,104,251,2,91,22,2,0,72,105,251,2,119,22,2,0,184,105,251,2,119,89,0,0,144,106,251,2,142,89,0,0,246,106,251,2,188,22,2,0,68,107,251,2,172,89,0,0,176,107,251,2,216,89,0,0,162,108,251,2,237,89,0,0,202,108,251,2,2,23,2,0,24,109,251,2,28,188,2,0,126,109,251,2,9,90,0,0,178,109,251,2,46,23,2,0,58,110,251,2,123,169,2,0,232,111,251,2,119,90,0,0,46,112,251,2,145,90,0,0,96,112,251,2,238,54,0,0,160,112,251,2,156,23,2,0,206,112,251,2,176,90,0,0,182,113,251,2,232,23,2,0,32,114,251,2,213,90,0,0,186,114,251,2,51,24,2,0,70,115,251,2,243,90,0,0,198,115,251,2,79,24,2,0,20,116,251,2,145,24,2,0,250,116,251,2,120,188,2,0,110,117,251,2,91,25,2,0,42,120,251,2,214,25,2,0,110,122,251,2,218,188,2,0,196,124,251,2,123,26,2,0,170,125,251,2,252,26,2,0,174,127,251,2,122,28,2,0,58,133,251,2,148,28,2,0,140,133,251,2,172,28,2,0,202,133,251,2,27,29,2,0,86,135,251,2,120,92,0,0,196,135,251,2,185,55,0,0,64,137,251,2,131,29,2,0,86,137,251,2,198,92,0,0,214,137,251,2,171,29,2,0,34,138,251,2,232,92,0,0,178,138,251,2,213,29,2,0,16,139,251,2,6,93,0,0,194,139,251,2,215,55,0,0,26,140,251,2,17,30,2,0,56,140,251,2,49,93,0,0,30,141,251,2,106,30,2,0,140,141,251,2,170,30,2,0,142,142,251,2,119,93,0,0,22,143,251,2,249,55,0,0,70,143,251,2,216,30,2,0,94,143,251,2,143,93,0,0,250,143,251,2,10,31,2,0,66,144,251,2,188,31,2,0,188,146,251,2,85,32,2,0,66,149,251,2,123,32,2,0,224,149,251,2,144,32,2,0,66,150,251,2,177,32,2,0,170,150,251,2,205,32,2,0,20,151,251,2,235,32,2,0,138,151,251,2,92,94,0,0,144,152,251,2,51,33,2,0,168,152,251,2,242,33,2,0,146,155,251,2,25,34,2,0,54,156,251,2,51,34,2,0,180,156,251,2,91,34,2,0,58,157,251,2,149,34,2,0,18,158,251,2,217,94,0,0,98,158,251,2,124,214,2,0,2,159,251,2,251,34,2,0,162,159,251,2,183,35,2,0,80,162,251,2,212,35,2,0,220,162,251,2,124,95,0,0,184,166,251,2,220,36,2,0,30,167,251,2,155,95,0,0,162,167,251,2,50,37,2,0,140,168,251,2,79,37,2,0,226,168,251,2,121,37,2,0,114,169,251,2,178,37,2,0,96,170,251,2,201,37,2,0,20,171,251,2,7,96,0,0,198,171,251,2,25,215,2,0,218,172,251,2,64,96,0,0,14,173,251,2,26,57,0,0,138,173,251,2,52,38,2,0,180,173,251,2,113,38,2,0,8,175,251,2,54,215,2,0,206,175,251,2,92,4,3,0,250,175,251,2,176,96,0,0,18,176,251,2,192,38,2,0,202,176,251,2,240,96,0,0,252,177,251,2,90,57,0,0,110,178,251,2,40,39,2,0,146,178,251,2,39,97,0,0,214,179,251,2,141,39,2,0,78,180,251,2,119,215,2,0,34,181,251,2,124,4,3,0,78,181,251,2,82,97,0,0,96,181,251,2,110,97,0,0,148,181,251,2,124,57,0,0,202,181,251,2,224,39,2,0,230,181,251,2,141,215,2,0,180,182,251,2,137,97,0,0,244,182,251,2,49,40,2,0,104,183,251,2,188,97,0,0,142,184,251,2,146,40,2,0,198,184,251,2,186,215,2,0,96,185,251,2,213,97,0,0,126,185,251,2,206,40,2,0,180,185,251,2,251,40,2,0,80,186,251,2,38,41,2,0,240,186,251,2,87,41,2,0,160,187,251,2,154,41,2,0,160,188,251,2,242,41,2,0,12,190,251,2,24,42,2,0,134,190,251,2,54,42,2,0,246,190,251,2,121,98,0,0,100,192,251,2,131,42,2,0,208,192,251,2,166,98,0,0,116,193,251,2,180,42,2,0,28,194,251,2,234,98,0,0,196,194,251,2,228,42,2,0,100,195,251,2,215,4,3,0,80,196,251,2,40,99,0,0,120,196,251,2,47,43,2,0,2,197,251,2,51,216,2,0,224,197,251,2,101,99,0,0,44,198,251,2,249,57,0,0,220,198,251,2,129,43,2,0,252,198,251,2,250,4,3,0,60,200,251,2,198,99,0,0,98,200,251,2,233,43,2,0,4,201,251,2,87,191,2,0,8,202,251,2,6,100,0,0,110,202,251,2,50,100,0,0,196,202,251,2,25,58,0,0,248,202,251,2,95,44,2,0,34,203,251,2,114,216,2,0,2,204,251,2,87,100,0,0,92,204,251,2,179,44,2,0,230,204,251,2,136,100,0,0,32,206,251,2,32,45,2,0,168,206,251,2,187,100,0,0,174,207,251,2,127,45,2,0,6,208,251,2,203,45,2,0,16,209,251,2,242,100,0,0,150,209,251,2,35,46,2,0,120,210,251,2,243,46,2,0,36,213,251,2,27,47,2,0,186,213,251,2,57,47,2,0,72,214,251,2,92,101,0,0,174,214,251,2,166,47,2,0,230,215,251,2,252,48,2,0,44,221,251,2,249,101,0,0,234,222,251,2,90,49,2,0,52,223,251,2,26,102,0,0,168,223,251,2,219,58,0,0,244,223,251,2,119,49,2,0,10,224,251,2,146,49,2,0,198,224,251,2,25,172,2,0,8,225,251,2,110,217,2,0,46,225,251,2,87,102,0,0,108,225,251,2,106,102,0,0,76,226,251,2,226,49,2,0,154,226,251,2,153,217,2,0,58,227,251,2,36,50,2,0,172,227,251,2,154,102,0,0,106,228,251,2,123,50,2,0,80,229,251,2,184,102,0,0,222,229,251,2,119,51,2,0,50,234,251,2,49,103,0,0,148,235,251,2,68,103,0,0,212,235,251,2,130,103,0,0,154,236,251,2,212,51,2,0,8,237,251,2,174,103,0,0,152,237,251,2,8,52,2,0,112,238,251,2,18,104,0,0,12,239,251,2,88,59,0,0,192,239,251,2,53,52,2,0,224,239,251,2,220,5,3,0,200,240,251,2,107,104,0,0,222,240,251,2,127,52,2,0,174,241,251,2,195,104,0,0,166,242,251,2,120,59,0,0,130,243,251,2,193,52,2,0,168,243,251,2,152,218,2,0,218,244,251,2,47,105,0,0,42,245,251,2,49,53,2,0,28,246,251,2,101,53,2,0,130,246,251,2,176,172,2,0,14,247,251,2,212,192,2,0,62,247,251,2,182,218,2,0,116,247,251,2,250,5,3,0,166,247,251,2,153,105,0,0,214,247,251,2,170,53,2,0,166,248,251,2,239,192,2,0,172,249,251,2,234,105,0,0,44,250,251,2,21,54,2,0,232,250,251,2,83,54,2,0,100,251,251,2,22,6,3,0,54,252,251,2,50,106,0,0,84,252,251,2,123,54,2,0,24,253,251,2,25,193,2,0,38,254,251,2,251,218,2,0,76,254,251,2,171,106,0,0,238,255,251,2,90,55,2,0,110,2,252,2,203,106,0,0,28,3,252,2,144,55,2,0,112,3,252,2,210,55,2,0,106,4,252,2,248,106,0,0,200,4,252,2,25,56,2,0,120,5,252,2,55,56,2,0,216,5,252,2,151,56,2,0,44,7,252,2,186,56,2,0,186,7,252,2,242,56,2,0,172,8,252,2,121,57,2,0,178,10,252,2,242,57,2,0,152,12,252,2,22,58,2,0,68,13,252,2,49,58,2,0,148,13,252,2,187,58,2,0,212,15,252,2,56,59,2,0,134,17,252,2,92,59,2,0,250,17,252,2,113,59,2,0,70,18,252,2,136,59,2,0,158,18,252,2,168,59,2,0,14,19,252,2,248,59,2,0,14,20,252,2,26,60,2,0,114,20,252,2,74,108,0,0,66,22,252,2,101,108,0,0,184,22,252,2,142,60,2,0,92,23,252,2,171,108,0,0,200,23,252,2,219,108,0,0,40,24,252,2,178,60,2,0,132,24,252,2,23,109,0,0,100,25,252,2,214,60,0,0,226,25,252,2,228,60,2,0,254,25,252,2,86,109,0,0,196,26,252,2,154,109,0,0,76,27,252,2,30,61,2,0,140,27,252,2,23,220,2,0,124,28,252,2,170,109,0,0,196,28,252,2,244,60,0,0,164,29,252,2,119,61,2,0,218,29,252,2,219,61,2,0,162,30,252,2,245,193,2,0,254,30,252,2,27,110,0,0,122,31,252,2,117,110,0,0,46,32,252,2,15,61,0,0,100,32,252,2,252,61,2,0,144,32,252,2,11,62,2,0,172,32,252,2,151,173,2,0,82,33,252,2,12,7,3,0,216,33,252,2,141,110,0,0,12,34,252,2,93,62,2,0,240,34,252,2,22,194,2,0,6,36,252,2,235,110,0,0,104,36,252,2,20,111,0,0,182,36,252,2,60,61,0,0,42,37,252,2,205,62,2,0,70,37,252,2,245,62,2,0,148,37,252,2,118,220,2,0,98,38,252,2,78,111,0,0,194,38,252,2,67,63,2,0,140,39,252,2,50,194,2,0,180,40,252,2,146,220,2,0,224,40,252,2,197,63,2,0,198,41,252,2,215,111,0,0,230,42,252,2,35,64,2,0,72,43,252,2,188,220,2,0,232,43,252,2,249,111,0,0,36,44,252,2,97,64,2,0,108,44,252,2,21,112,0,0,82,45,252,2,179,64,2,0,154,45,252,2,220,220,2,0,32,46,252,2,232,64,2,0,122,46,252,2,14,65,2,0,18,47,252,2,54,65,2,0,150,47,252,2,188,65,2,0,72,50,252,2,196,112,0,0,232,50,252,2,239,65,2,0,76,51,252,2,27,221,2,0,214,51,252,2,239,112,0,0,28,52,252,2,98,66,2,0,214,53,252,2,51,174,2,0,120,54,252,2,151,194,2,0,154,54,252,2,56,221,2,0,190,54,252,2,65,113,0,0,250,54,252,2,178,66,2,0,144,55,252,2,244,66,2,0,20,56,252,2,186,7,3,0,156,56,252,2,123,113,0,0,184,56,252,2,7,67,2,0,20,57,252,2,51,67,2,0,106,57,252,2,154,113,0,0,18,58,252,2,80,67,2,0,96,58,252,2,182,113,0,0,58,59,252,2,245,67,2,0,234,60,252,2,248,113,0,0,140,61,252,2,82,68,2,0,78,62,252,2,123,69,2,0,92,66,252,2,28,70,2,0,178,68,252,2,56,70,2,0,30,69,252,2,91,70,2,0,192,69,252,2,111,70,2,0,18,70,252,2,185,114,0,0,130,72,252,2,47,71,2,0,172,72,252,2,79,71,2,0,66,73,252,2,111,71,2,0,214,73,252,2,243,114,0,0,80,74,252,2,220,71,2,0,230,75,252,2,246,71,2,0,26,76,252,2,13,72,2,0,160,76,252,2,86,115,0,0,162,77,252,2,99,72,2,0,204,77,252,2,140,72,2,0,76,78,252,2,180,72,2,0,202,78,252,2,156,115,0,0,230,79,252,2,249,72,2,0,36,80,252,2,178,115,0,0,128,80,252,2,15,73,2,0,208,80,252,2,60,222,2,0,48,81,252,2,210,115,0,0,70,81,252,2,53,73,2,0,160,81,252,2,248,115,0,0,42,82,252,2,86,73,2,0,112,82,252,2,123,73,2,0,86,83,252,2,175,73,2,0,112,84,252,2,234,73,2,0,104,85,252,2,123,195,2,0,216,85,252,2,121,116,0,0,248,85,252,2,20,74,2,0,58,86,252,2,66,74,2,0,2,87,252,2,107,74,2,0,196,87,252,2,139,74,2,0,76,88,252,2,91,75,2,0,108,91,252,2,121,75,2,0,228,91,252,2,41,76,2,0,188,94,252,2,123,76,2,0,28,96,252,2,145,76,2,0,126,96,252,2,183,76,2,0,6,97,252,2,220,76,2,0,148,97,252,2,55,77,2,0,50,99,252,2,187,117,0,0,168,99,252,2,87,77,2,0,224,99,252,2,119,77,2,0,106,100,252,2,215,117,0,0,192,100,252,2,236,117,0,0,130,101,252,2,194,77,2,0,200,101,252,2,251,77,2,0,152,102,252,2,42,78,2,0,86,103,252,2,186,78,2,0,72,105,252,2,213,78,2,0,152,105,252,2,88,79,2,0,124,107,252,2,121,79,2,0,18,108,252,2,147,80,2,0,110,112,252,2,246,118,0,0,252,113,252,2,3,81,2,0,66,114,252,2,14,119,0,0,192,114,252,2,49,81,2,0,18,115,252,2,90,81,2,0,208,115,252,2,138,81,2,0,168,116,252,2,201,81,2,0,156,117,252,2,110,119,0,0,72,118,252,2,2,82,2,0,148,118,252,2,60,82,2,0,102,119,252,2,148,119,0,0,4,120,252,2,116,82,2,0,54,120,252,2,136,82,2,0,92,120,252,2,170,82,2,0,4,121,252,2,216,82,2,0,158,121,252,2,26,83,2,0,106,122,252,2,185,83,2,0,108,124,252,2,216,83,2,0,194,124,252,2,41,84,2,0,38,126,252,2,70,84,2,0,230,126,252,2,115,84,2,0,180,127,252,2,92,120,0,0,80,128,252,2,170,84,2,0,150,128,252,2,188,9,3,0,254,128,252,2,183,64,0,0,94,129,252,2,202,84,2,0,128,129,252,2,250,84,2,0,98,130,252,2,45,85,2,0,72,131,252,2,76,85,2,0,222,131,252,2,59,224,2,0,58,132,252,2,239,120,0,0,92,132,252,2,112,85,2,0,156,132,252,2,151,85,2,0,74,133,252,2,187,85,2,0,242,133,252,2,21,86,2,0,64,135,252,2,43,86,2,0,176,135,252,2,78,86,2,0,62,136,252,2,107,86,2,0,210,136,252,2,121,121,0,0,64,137,252,2,136,86,2,0,106,137,252,2,166,86,2,0,26,138,252,2,154,121,0,0,122,138,252,2,216,86,2,0,232,138,252,2,216,121,0,0,134,141,252,2,58,65,0,0,58,142,252,2,152,87,2,0,92,142,252,2,178,87,2,0,230,142,252,2,15,122,0,0,60,143,252,2,205,87,2,0,130,143,252,2,52,122,0,0,212,144,252,2,49,88,2,0,12,145,252,2,92,88,2,0,180,145,252,2,138,88,2,0,84,146,252,2,180,88,2,0,220,146,252,2,124,122,0,0,84,148,252,2,52,89,2,0,108,148,252,2,118,89,2,0,108,149,252,2,155,89,2,0,238,149,252,2,184,89,2,0,86,150,252,2,59,90,2,0,44,152,252,2,152,90,2,0,186,153,252,2,252,122,0,0,176,154,252,2,239,90,2,0,32,155,252,2,22,123,0,0,128,155,252,2,12,91,2,0,228,155,252,2,80,91,2,0,130,157,252,2,129,123,0,0,48,158,252,2,141,91,2,0,162,158,252,2,14,66,0,0,192,159,252,2,209,91,2,0,248,159,252,2,212,123,0,0,220,160,252,2,24,92,2,0,54,161,252,2,240,123,0,0,40,162,252,2,56,66,0,0,116,162,252,2,117,92,2,0,148,162,252,2,118,225,2,0,80,163,252,2,24,124,0,0,120,163,252,2,198,92,2,0,214,163,252,2,33,93,2,0,246,164,252,2,92,93,2,0,188,165,252,2,133,93,2,0,66,166,252,2,181,93,2,0,248,166,252,2,212,93,2,0,106,167,252,2,252,93,2,0,210,167,252,2,90,94,2,0,194,169,252,2,114,94,2,0,68,170,252,2,193,94,2,0,114,171,252,2,23,95,2,0,234,172,252,2,54,95,2,0,84,173,252,2,10,125,0,0,178,174,252,2,186,66,0,0,238,174,252,2,40,125,0,0,116,175,252,2,195,95,2,0,216,175,252,2,92,125,0,0,92,176,252,2,230,95,2,0,168,176,252,2,120,125,0,0,48,177,252,2,18,96,2,0,138,177,252,2,156,125,0,0,36,178,252,2,70,96,2,0,172,178,252,2,214,125,0,0,108,179,252,2,243,66,0,0,208,179,252,2,128,96,2,0,244,179,252,2,8,126,0,0,178,180,252,2,41,126,0,0,182,181,252,2,9,97,2,0,20,182,252,2,57,226,2,0,146,182,252,2,78,126,0,0,174,182,252,2,60,97,2,0,238,182,252,2,117,97,2,0,192,183,252,2,123,126,0,0,46,184,252,2,156,97,2,0,74,184,252,2,212,97,2,0,24,185,252,2,25,127,0,0,12,188,252,2,142,98,2,0,136,190,252,2,188,98,2,0,20,191,252,2,87,99,2,0,88,193,252,2,121,99,2,0,212,193,252,2,183,99,2,0,200,194,252,2,56,100,2,0,168,196,252,2,88,100,2,0,44,197,252,2,60,101,2,0,154,200,252,2,117,101,2,0,106,201,252,2,188,101,2,0,110,202,252,2,88,102,2,0,242,204,252,2,194,128,0,0,64,205,252,2,106,102,2,0,172,205,252,2,237,128,0,0,64,206,252,2,21,129,0,0,56,207,252,2,212,102,2,0,154,207,252,2,57,129,0,0,44,208,252,2,252,67,0,0,114,208,252,2,6,103,2,0,148,208,252,2,52,103,2,0,238,208,252,2,91,129,0,0,118,209,252,2,90,103,2,0,220,209,252,2,28,68,0,0,182,210,252,2,153,103,2,0,212,210,252,2,146,129,0,0,144,211,252,2,3,104,2,0,144,212,252,2,183,129,0,0,62,213,252,2,88,104,2,0,158,213,252,2,112,104,2,0,252,213,252,2,138,104,2,0,88,214,252,2,123,105,2,0,150,217,252,2,145,106,2,0,198,221,252,2,152,130,0,0,182,223,252,2,154,68,0,0,40,224,252,2,19,107,2,0,64,224,252,2,208,130,0,0,180,224,252,2,55,107,2,0,84,225,252,2,84,131,0,0,100,226,252,2,109,107,2,0,194,226,252,2,112,131,0,0,184,227,252,2,182,107,2,0,126,228,252,2,242,107,2,0,244,228,252,2,23,108,2,0,62,229,252,2,185,227,2,0,164,229,252,2,190,131,0,0,246,229,252,2,215,68,0,0,212,230,252,2,42,108,2,0,8,231,252,2,59,199,2,0,90,232,252,2,45,132,0,0,198,232,252,2,88,132,0,0,28,233,252,2,193,108,2,0,170,233,252,2,55,109,2,0,150,234,252,2,144,132,0,0,144,235,252,2,185,132,0,0,224,235,252,2,252,68,0,0,60,236,252,2,97,109,2,0,100,236,252,2,54,178,2,0,162,237,252,2,90,199,2,0,200,237,252,2,231,132,0,0,76,238,252,2,14,69,0,0,248,238,252,2,62,110,2,0,180,239,252,2,117,199,2,0,112,240,252,2,45,69,0,0,78,241,252,2,134,110,2,0,128,241,252,2,200,110,2,0,4,242,252,2,57,228,2,0,240,242,252,2,118,133,0,0,66,243,252,2,41,111,2,0,208,243,252,2,110,111,2,0,90,244,252,2,154,199,2,0,246,244,252,2,90,228,2,0,30,245,252,2,175,133,0,0,124,245,252,2,170,111,2,0,224,245,252,2,249,111,2,0,118,246,252,2,117,178,2,0,196,246,252,2,124,228,2,0,10,247,252,2,212,133,0,0,68,247,252,2,32,112,2,0,156,247,252,2,151,228,2,0,130,248,252,2,246,133,0,0,182,248,252,2,123,112,2,0,16,249,252,2,207,112,2,0,52,250,252,2,184,228,2,0,196,250,252,2,13,113,2,0,246,250,252,2,54,113,2,0,138,251,252,2,86,113,2,0,234,251,252,2,122,113,2,0,80,252,252,2,220,113,2,0,230,253,252,2,115,134,0,0,200,254,252,2,137,134,0,0,54,255,252,2,59,114,2,0,130,255,252,2,173,134,0,0,250,255,252,2,215,134,0,0,242,2,253,2,143,114,2,0,66,3,253,2,175,114,2,0,126,3,253,2,245,134,0,0,230,3,253,2,24,135,0,0,250,4,253,2,44,135,0,0,34,5,253,2,49,115,2,0,212,5,253,2,76,135,0,0,102,6,253,2,82,115,2,0,232,6,253,2,129,135,0,0,186,7,253,2,161,115,2,0,32,8,253,2,200,115,2,0,108,8,253,2,170,135,0,0,14,9,253,2,248,115,2,0,132,9,253,2,49,116,2,0,244,9,253,2,68,116,2,0,148,10,253,2,142,116,2,0,146,11,253,2,201,116,2,0,76,12,253,2,26,136,0,0,190,12,253,2,241,116,2,0,220,12,253,2,91,117,2,0,20,14,253,2,109,136,0,0,150,16,253,2,136,136,0,0,48,17,253,2,177,136,0,0,2,18,253,2,202,136,0,0,182,18,253,2,128,118,2,0,246,18,253,2,231,136,0,0,118,19,253,2,188,118,2,0,2,20,253,2,207,118,2,0,158,20,253,2,248,118,2,0,76,21,253,2,53,137,0,0,190,21,253,2,66,119,2,0,144,22,253,2,113,119,2,0,40,23,253,2,152,119,2,0,152,23,253,2,28,120,2,0,140,25,253,2,59,120,2,0,244,25,253,2,187,120,2,0,36,28,253,2,244,120,2,0,8,29,253,2,58,121,2,0,196,29,253,2,27,138,0,0,168,30,253,2,179,70,0,0,218,30,253,2,110,121,2,0,252,30,253,2,97,138,0,0,88,32,253,2,195,121,2,0,194,32,253,2,244,121,2,0,190,33,253,2,175,138,0,0,70,34,253,2,219,138,0,0,100,35,253,2,234,138,0,0,128,35,253,2,99,122,2,0,190,35,253,2,152,122,2,0,168,36,253,2,186,200,2,0,36,37,253,2,210,122,2,0,144,37,253,2,92,123,2,0,200,39,253,2,120,123,2,0,38,40,253,2,211,139,0,0,144,41,253,2,247,139,0,0,54,42,253,2,88,124,2,0,58,46,253,2,217,124,2,0,234,47,253,2,51,125,2,0,30,49,253,2,99,125,2,0,32,50,253,2,217,140,0,0,226,50,253,2,155,125,2,0,32,51,253,2,177,125,2,0,146,51,253,2,252,125,2,0,160,52,253,2,22,126,2,0,250,52,253,2,60,141,0,0,36,54,253,2,182,126,2,0,38,56,253,2,208,126,2,0,136,56,253,2,239,126,2,0,244,56,253,2,155,141,0,0,72,57,253,2,40,127,2,0,182,57,253,2,118,127,2,0,166,58,253,2,210,127,2,0,228,59,253,2,242,127,2,0,156,60,253,2,21,128,2,0,72,61,253,2,252,141,0,0,200,61,253,2,64,128,2,0,2,62,253,2,15,142,0,0,144,62,253,2,117,128,2,0,242,62,253,2,59,142,0,0,156,63,253,2,160,128,2,0,202,63,253,2,188,201,2,0,60,64,253,2,26,14,3,0,110,64,253,2,84,142,0,0,64,65,253,2,5,129,2,0,120,65,253,2,129,129,2,0,20,67,253,2,214,129,2,0,48,68,253,2,24,130,2,0,8,69,253,2,56,130,2,0,112,69,253,2,214,142,0,0,46,71,253,2,179,130,2,0,92,71,253,2,206,130,2,0,224,71,253,2,22,143,0,0,6,73,253,2,32,131,2,0,60,73,253,2,71,131,2,0,220,73,253,2,105,131,2,0,86,74,253,2,138,131,2,0,202,74,253,2,178,131,2,0,100,75,253,2,124,14,3,0,212,76,253,2,124,143,0,0,228,76,253,2,130,132,2,0,222,79,253,2,244,143,0,0,70,80,253,2,165,132,2,0,130,80,253,2,11,144,0,0,214,80,253,2,197,132,2,0,24,81,253,2,235,132,2,0,188,81,253,2,150,231,2,0,62,82,253,2,60,144,0,0,116,82,253,2,33,133,2,0,182,82,253,2,88,144,0,0,112,83,253,2,134,133,2,0,54,84,253,2,180,133,2,0,238,84,253,2,212,133,2,0,46,85,253,2,229,133,2,0,154,85,253,2,92,202,2,0,90,86,253,2,118,134,2,0,206,87,253,2,147,134,2,0,72,88,253,2,188,144,0,0,160,88,253,2,175,134,2,0,222,88,253,2,212,144,0,0,46,89,253,2,203,134,2,0,100,89,253,2,235,134,2,0,240,89,253,2,249,144,0,0,94,90,253,2,24,135,2,0,152,90,253,2,50,135,2,0,16,91,253,2,24,145,0,0,86,91,253,2,75,135,2,0,124,91,253,2,122,135,2,0,20,92,253,2,145,135,2,0,90,92,253,2,186,135,2,0,224,92,253,2,244,135,2,0,234,93,253,2,11,136,2,0,70,94,253,2,55,136,2,0,6,95,253,2,76,136,2,0,106,95,253,2,105,136,2,0,226,95,253,2,152,145,0,0,56,96,253,2,214,136,2,0,98,97,253,2,74,137,2,0,228,99,253,2,45,146,0,0,66,100,253,2,144,146,0,0,112,101,253,2,178,146,0,0,80,102,253,2,172,137,2,0,236,102,253,2,247,146,0,0,180,103,253,2,41,147,0,0,24,104,253,2,230,137,2,0,98,104,253,2,73,147,0,0,96,105,253,2,47,138,2,0,234,105,253,2,153,232,2,0,184,106,253,2,136,147,0,0,228,106,253,2,135,138,2,0,108,107,253,2,192,147,0,0,68,108,253,2,207,138,2,0,196,108,253,2,250,147,0,0,122,109,253,2,22,139,2,0,250,109,253,2,85,139,2,0,24,111,253,2,146,139,2,0,252,111,253,2,85,148,0,0,114,112,253,2,184,139,2,0,162,112,253,2,250,139,2,0,122,113,253,2,152,148,0,0,160,114,253,2,92,15,3,0,6,115,253,2,176,148,0,0,24,115,253,2,207,148,0,0,162,115,253,2,248,148,0,0,50,116,253,2,22,149,0,0,170,116,253,2,50,149,0,0,42,117,253,2,148,15,3,0,114,117,253,2,90,140,2,0,220,118,253,2,184,140,2,0,226,119,253,2,215,140,2,0,118,120,253,2,243,140,2,0,214,120,253,2,13,141,2,0,68,121,253,2,39,141,2,0,154,121,253,2,72,141,2,0,24,122,253,2,156,141,2,0,66,123,253,2,26,142,2,0,4,126,253,2,55,150,0,0,54,126,253,2,91,150,0,0,36,127,253,2,88,142,2,0,80,127,253,2,117,142,2,0,222,127,253,2,123,150,0,0,100,128,253,2,192,142,2,0,44,129,253,2,238,142,2,0,192,129,253,2,10,143,2,0,48,130,253,2,178,143,2,0,166,132,253,2,23,144,2,0,182,133,253,2,52,144,2,0,8,134,253,2,92,144,2,0,108,134,253,2,183,144,2,0,208,135,253,2,210,144,2,0,72,136,253,2,156,233,2,0,40,137,253,2,23,145,2,0,86,137,253,2,59,145,2,0,202,137,253,2,124,145,2,0,148,138,253,2,145,145,2,0,222,138,253,2,122,151,0,0,24,142,253,2,120,146,2,0,62,142,253,2,144,146,2,0,148,142,253,2,3,147,2,0,50,144,253,2,83,147,2,0,34,145,253,2,152,147,2,0,242,145,253,2,184,147,2,0,84,146,253,2,89,148,2,0,224,148,253,2,112,148,2,0,58,149,253,2,27,152,0,0,134,149,253,2,143,148,2,0,174,149,253,2,174,148,2,0,50,150,253,2,25,149,2,0,188,151,253,2,51,149,2,0,22,152,253,2,124,152,0,0,90,153,253,2,180,149,2,0,188,154,253,2,211,149,2,0,36,155,253,2,232,149,2,0,102,155,253,2,28,150,2,0,18,156,253,2,56,150,2,0,118,156,253,2,149,150,2,0,32,158,253,2,168,150,2,0,126,158,253,2,45,151,2,0,108,160,253,2,56,153,0,0,226,160,253,2,89,151,2,0,6,161,253,2,211,151,2,0,144,162,253,2,182,153,0,0,30,166,253,2,141,152,2,0,210,166,253,2,174,152,2,0,92,167,253,2,244,153,0,0,200,167,253,2,214,152,2,0,242,167,253,2,237,152,2,0,108,168,253,2,20,154,0,0,220,168,253,2,57,154,0,0,32,170,253,2,28,154,2,0,220,173,253,2,87,154,2,0,178,174,253,2,17,155,2,0,70,177,253,2,48,155,2,0,162,177,253,2,122,155,2,0,168,178,253,2,150,155,2,0,2,179,253,2,219,155,2,0,186,179,253,2,86,156,2,0,68,181,253,2,186,156,2,0,94,182,253,2,245,156,2,0,20,183,253,2,28,157,2,0,132,183,253,2,122,155,0,0,250,184,253,2,184,157,2,0,36,186,253,2,187,155,0,0,124,186,253,2,205,157,2,0,196,186,253,2,212,155,0,0,68,187,253,2,89,76,0,0,138,187,253,2,247,157,2,0,174,187,253,2,113,158,2,0,126,189,253,2,49,156,0,0,28,190,253,2,173,158,2,0,102,190,253,2,92,156,0,0,142,191,253,2,2,159,2,0,184,191,253,2,59,159,2,0,120,192,253,2,90,159,2,0,216,192,253,2,218,17,3,0,204,193,253,2,247,156,0,0,106,196,253,2,176,159,2,0,178,196,253,2,15,157,0,0,46,197,253,2,185,76,0,0,106,197,253,2,220,159,2,0,142,197,253,2,45,157,0,0,42,198,253,2,18,160,2,0,120,198,253,2,74,157,0,0,14,199,253,2,74,160,2,0,84,199,253,2,102,157,0,0,216,199,253,2,119,160,2,0,66,200,253,2,60,235,2,0,220,200,253,2,146,157,0,0,246,200,253,2,182,160,2,0,66,201,253,2,172,157,0,0,234,201,253,2,250,160,2,0,62,202,253,2,45,161,2,0,4,203,253,2,111,161,2,0,232,203,253,2,174,161,2,0,170,204,253,2,24,162,2,0,218,205,253,2,155,162,2,0,4,210,253,2,180,162,2,0,84,210,253,2,60,163,2,0,252,211,253,2,28,164,2,0,24,215,253,2,152,164,2,0,164,216,253,2,219,165,2,0,36,221,253,2,89,159,0,0,68,221,253,2,247,165,2,0,158,221,253,2,14,166,2,0,228,221,253,2,57,166,2,0,104,222,253,0,23,0,5,0,0,142,9,0,16,0,5,0,2,2,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,10,2,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,32,2,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,48,6,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,74,8,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,96,8,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,180,10,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,40,11,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,72,11,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,74,28,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,80,28,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,114,42,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,180,47,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,52,48,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,2,57,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,28,59,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,90,83,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,186,85,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,232,119,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,86,222,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,86,233,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,90,233,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,114,235,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,60,239,251,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,230,21,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,142,48,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,116,69,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,8,112,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,240,134,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,158,135,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,50,136,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,222,215,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,152,216,252,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,218,48,253,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,8,50,253,0,23,0,5,0,0,144,9,0,23,0,5,0,0,142,9,0,16,0,5,0,242,98,253,0,23,0,5,0,0,144,9,0,16,0,5,0,0,82,10,0,16,0,5,0,32,2,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,74,8,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,206,43,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,208,121,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,182,191,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,52,214,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,128,235,251,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,34,50,252,0,16,0,5,0,0,84,10,0,16,0,5,0,0,82,10,0,16,0,5,0,100,111,252,0,16,0,5,0,0,84,10,0,21,0,5,0,0,0,19,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,19,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,19,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,19,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,21,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,21,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,21,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,23,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,23,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,23,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,25,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,25,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,27,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,27,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,29,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,29,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,31,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,31,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,33,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,33,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,35,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,21,0,5,0,0,0,35,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,21,0,22,0,5,0,0,0,37,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,21,0,22,0,5,0,0,0,37,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,19,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,19,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,21,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,21,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,23,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,23,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,25,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,25,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,27,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,27,0,16,0,5,0,34,50,252,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,29,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,31,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,33,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,21,0,5,0,0,0,35,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,23,0,22,0,5,0,0,0,37,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,25,0,21,0,5,0,0,0,19,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,25,0,21,0,5,0,0,0,21,0,16,0,5,0,86,222,251,0,21,0,5,0,0,0,25,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,27,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,29,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,31,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,33,0,16,0,5,0,86,233,251,0,21,0,5,0,0,0,35,0,16,0,5,0,86,233,251,0,22,0,5,0,0,0,37,0,16,0,5,0,86,233,251,0,160,0,5,0,2,46,97,0,160,0,5,0,9,46,97,0,160,0,5,0,2,56,97,0,160,0,5,0,9,56,97,0,160,0,5,0,2,96,97,0,160,0,5,0,9,96,97,0,160,0,5,0,2,104,97,0,160,0,5,0,9,104,97,0,160,0,5,0,16,104,97,0,160,0,5,0,2,164,97,0,160,0,5,0,9,164,97,0,32,0,5,0,2,178,97,0,174,0,5,0,2,178,97,0,160,0,5,0,9,178,97,0,160,0,5,0,2,184,97,0,160,0,5,0,9,184,97,0,160,0,5,0,2,190,97,0,160,0,5,0,9,190,97,0,32,0,5,0,16,190,97,0,174,0,5,0,16,190,97,0,160,0,5,0,23,190,97,0,160,0,5,0,30,190,97,0,160,0,5,0,37,190,97,0,160,0,5,0,44,190,97,0,160,0,5,0,2,194,97,0,160,0,5,0,9,194,97,0,160,0,5,0,2,202,97,0,160,0,5,0,9,202,97,0,160,0,5,0,2,224,97,0,32,0,5,0,2,236,97,0,174,0,5,0,2,236,97,0,160,0,5,0,9,236,97,0,160,0,5,0,2,242,97,0,32,0,5,0,9,242,97,0,174,0,5,0,9,242,97,0,160,0,5,0,2,246,97,0,32,0,5,0,9,246,97,0,174,0,5,0,9,246,97,0,32,0,5,0,16,246,97,0,174,0,5,0,16,246,97,0,160,0,5,0,23,246,97,0,32,0,5,0,30,246,97,0,174,0,5,0,30,246,97,0,160,0,5,0,37,246,97,0,160,0,5,0,44,246,97,0,160,0,5,0,51,246,97,0,32,0,5,0,58,246,97,0,174,0,5,0,58,246,97,0,160,0,5,0,65,246,97,0,160,0,5,0,72,246,97,0,32,0,5,0,79,246,97,0,174,0,5,0,79,246,97,0,160,0,5,0,86,246,97,0,160,0,5,0,86,246,97,0,5,0,184,0,0,0,0,0,160,0,5,0,93,246,97,0,38,0,5,0,0,22,102,0,32,0,5,0,16,220,102,0,49,0,5,0,0,22,102,0,46,0,5,0,16,220,102,0,38,0,5,0,0,22,102,0,32,0,5,0,9,226,102,0,49,0,5,0,0,22,102,0,46,0,5,0,9,226,102,0,32,0,5,0,2,176,102,0,16,0,5,0,30,176,102,0,27,0,5,0,30,176,102,0,38,0,5,0,30,176,102,0,49,0,5,0,30,176,102,0,16,0,5,0,51,176,102,0,27,0,5,0,51,176,102,0,38,0,5,0,51,176,102,0,49,0,5,0,51,176,102,0,32,0,5,0,72,176,102,0,16,0,5,0,16,190,102,0,27,0,5,0,16,190,102,0,38,0,5,0,16,190,102,0,49,0,5,0,16,190,102,0,16,0,5,0,16,194,102,0,27,0,5,0,16,194,102,0,38,0,5,0,16,194,102,0,49,0,5,0,16,194,102,0,16,0,5,0,30,194,102,0,27,0,5,0,30,194,102,0,38,0,5,0,30,194,102,0,49,0,5,0,30,194,102,0,16,0,5,0,9,208,102,0,27,0,5,0,9,208,102,0,38,0,5,0,9,208,102,0,49,0,5,0,9,208,102,0,32,0,5,0,16,220,102,0,32,128,232,0,0,0,0,0,46,0,5,0,16,220,102,0,46,128,232,0,0,0,0,0,32,0,5,0,2,226,102,0,46,0,5,0,2,226,102,0,32,0,5,0,9,234,102,0,46,0,5,0,9,234,102,0,160,0,5,0,9,232,118,0,160,0,5,0,16,232,118,0,160,0,5,0,23,232,118,0,160,0,5,0,30,232,118,0,160,0,5,0,37,232,118,0,160,0,5,0,44,232,118,0,160,0,5,0,51,232,118,0,160,0,5,0,58,232,118,0,160,0,5,0,65,232,118,0,160,0,5,0,72,232,118,0,160,0,5,0,79,232,118,0,160,0,5,0,86,232,118,0,160,0,5,0,93,232,118,0,160,0,5,0,100,232,118,0,160,0,5,0,107,232,118,0,160,0,5,0,114,232,118,0,160,0,5,0,121,232,118,0,160,0,5,0,128,232,118,0,160,0,5,0,135,232,118,0,160,0,5,0,142,232,118,0,160,0,5,0,149,232,118,0,160,0,5,0,156,232,118,0,160,0,5,0,163,232,118,0,160,0,5,0,170,232,118,0,160,0,5,0,177,232,118,0,160,0,5,0,184,232,118,0,160,0,5,0,191,232,118,0,160,0,5,0,198,232,118,0,160,0,5,0,205,232,118,0,160,0,5,0,212,232,118,0,160,0,5,0,219,232,118,0,160,0,5,0,226,232,118,0,160,0,5,0,233,232,118,0,160,0,5,0,240,232,118,0,160,0,5,0,247,232,118,0,160,0,5,0,254,232,118,0,32,0,5,0,16,92,121,0,32,0,5,0,44,92,121,0,32,0,5,0,114,92,121,0,32,0,5,0,163,92,121,0,32,0,5,0,198,92,121,0,32,0,5,0,247,101,121,0,174,0,5,0,247,101,121,0,32,0,5,0,30,247,121,0,32,0,5,0,58,247,121,0,32,0,5,0,72,247,121,0,32,0,5,0,100,247,121,0,32,0,5,0,114,247,121,0,32,0,5,0,240,247,121,0,32,0,5,0,247,247,121,0,32,0,5,0,51,162,124,0,32,0,5,0,72,162,124,0,27,0,5,0,2,2,251,0,38,0,5,0,2,2,251,0,49,0,5,0,2,2,251,0,38,0,5,0,6,2,251,0,27,0,5,0,10,2,251,0,27,0,5,0,32,2,251,0,38,0,5,0,32,2,251,0,49,0,5,0,32,2,251,0,27,0,5,0,34,2,251,0,38,0,5,0,34,2,251,0,27,0,5,0,36,2,251,0,38,0,5,0,36,2,251,0,38,0,5,0,132,2,251,0,16,0,5,0,60,4,251,0,16,0,5,0,14,66,252,0,27,0,5,0,82,4,251,0,38,0,5,0,82,4,251,0,49,0,5,0,82,4,251,0,16,0,5,0,200,4,251,0,5,0,112,0,200,4,251,0,16,0,5,0,252,4,251,0,16,0,5,0,26,6,251,0,38,0,5,0,26,6,251,0,5,0,112,0,26,6,251,0,16,0,5,0,28,6,251,0,16,0,5,0,30,6,251,0,27,0,5,0,48,6,251,0,16,0,5,0,248,7,251,0,27,0,5,0,74,8,251,0,38,0,5,0,74,8,251,0,49,0,5,0,74,8,251,0,27,0,5,0,96,8,251,0,16,0,5,0,232,8,251,0,49,0,5,0,250,8,251,0,16,0,5,0,68,10,251,0,38,0,5,0,68,10,251,0,16,0,5,0,70,10,251,0,49,0,5,0,182,10,251,0,49,0,5,0,60,59,251,0,27,0,5,0,40,11,251,0,27,0,5,0,72,11,251,0,27,0,5,0,70,24,251,0,16,0,5,0,4,26,251,0,16,0,5,0,188,27,251,0,27,0,5,0,74,28,251,0,27,0,5,0,80,28,251,0,16,0,5,0,104,29,251,0,5,0,112,0,104,29,251,0,49,0,5,0,162,29,251,0,16,0,5,0,74,30,251,0,27,0,5,0,88,30,251,0,16,0,5,0,62,31,251,0,16,0,5,0,196,33,251,0,5,0,112,0,196,33,251,0,16,0,5,0,200,34,251,0,16,0,5,0,132,35,251,0,5,0,112,0,132,35,251,0,16,0,5,0,136,35,251,0,49,0,5,0,90,36,251,0,49,0,5,0,172,37,251,0,49,0,5,0,126,39,251,0,16,0,5,0,8,42,251,0,27,0,5,0,114,42,251,0,16,0,5,0,244,44,251,0,16,0,5,0,234,45,251,0,16,0,5,0,82,46,251,0,16,0,5,0,118,47,251,0,27,0,5,0,134,47,251,0,27,0,5,0,180,47,251,0,16,0,5,0,42,2,251,0,16,0,5,0,186,47,251,0,27,0,5,0,52,48,251,0,16,0,5,0,44,49,251,0,5,0,112,0,44,49,251,0,16,0,5,0,240,49,251,0,5,0,112,0,240,49,251,0,27,0,5,0,26,50,251,0,16,0,5,0,178,50,251,0,5,0,112,0,178,50,251,0,16,0,5,0,120,53,251,0,16,0,5,0,122,54,251,0,49,0,5,0,132,54,251,0,16,0,5,0,112,56,251,0,27,0,5,0,150,56,251,0,27,0,5,0,158,56,251,0,49,0,5,0,158,56,251,0,49,0,5,0,246,56,251,0,27,0,5,0,2,57,251,0,49,0,5,0,200,57,251,0,27,0,5,0,180,64,251,0,49,0,5,0,142,67,251,0,16,0,5,0,76,83,251,0,27,0,5,0,90,83,251,0,38,0,5,0,90,83,251,0,27,0,5,0,186,85,251,0,38,0,5,0,12,86,251,0,16,0,5,0,220,99,251,0,49,0,5,0,234,99,251,0,16,0,5,0,178,100,251,0,16,0,5,0,232,100,251,0,16,0,5,0,136,101,251,0,49,0,5,0,154,101,251,0,27,0,5,0,182,101,251,0,16,0,5,0,204,102,251,0,49,0,5,0,204,102,251,0,49,0,5,0,196,9,252,0,38,0,5,0,208,102,251,0,49,0,5,0,208,102,251,0,16,0,5,0,100,106,251,0,27,0,5,0,100,106,251,0,16,0,5,0,108,119,251,0,49,0,5,0,146,119,251,0,27,0,5,0,232,119,251,0,16,0,5,0,174,121,251,0,27,0,5,0,86,122,251,0,16,0,5,0,22,128,251,0,16,0,5,0,34,129,251,0,5,0,112,0,34,129,251,0,5,0,120,0,34,129,251,0,16,0,5,0,144,130,251,0,5,0,112,0,144,130,251,0,16,0,5,0,146,130,251,0,5,0,112,0,146,130,251,0,16,0,5,0,192,131,251,0,16,0,5,0,8,135,251,0,16,0,5,0,128,135,251,0,16,0,5,0,66,147,251,0,16,0,5,0,210,147,251,0,27,0,5,0,228,147,251,0,49,0,5,0,228,147,251,0,16,0,5,0,132,148,251,0,16,0,5,0,136,148,251,0,16,0,5,0,20,149,251,0,16,0,5,0,170,153,251,0,49,0,5,0,172,153,251,0,49,0,5,0,100,188,251,0,16,0,5,0,92,154,251,0,27,0,5,0,106,154,251,0,16,0,5,0,218,154,251,0,16,0,5,0,254,159,251,0,16,0,5,0,102,160,251,0,16,0,5,0,108,161,251,0,16,0,5,0,216,161,251,0,16,0,5,0,210,164,251,0,5,0,112,0,210,164,251,0,16,0,5,0,212,164,251,0,16,0,5,0,122,165,251,0,16,0,5,0,88,166,251,0,49,0,5,0,8,167,251,0,27,0,5,0,156,167,251,0,16,0,5,0,252,169,251,0,5,0,112,0,252,169,251,0,16,0,5,0,254,169,251,0,16,0,5,0,76,188,251,0,16,0,5,0,162,190,251,0,16,0,5,0,156,191,251,0,49,0,5,0,156,191,251,0,16,0,5,0,158,191,251,0,49,0,5,0,182,191,251,0,49,0,5,0,156,192,251,0,49,0,5,0,254,194,251,0,49,0,5,0,210,196,251,0,16,0,5,0,60,212,251,0,16,0,5,0,230,212,251,0,16,0,5,0,232,212,251,0,16,0,5,0,254,217,251,0,27,0,5,0,254,217,251,0,16,0,5,0,178,218,251,0,49,0,5,0,206,218,251,0,16,0,5,0,74,219,251,0,49,0,5,0,188,219,251,0,16,0,5,0,68,220,251,0,16,0,5,0,42,222,251,0,16,0,5,0,44,222,251,0,27,0,5,0,86,222,251,0,5,0,112,0,86,222,251,0,49,0,5,0,22,223,251,0,49,0,5,0,232,23,252,0,49,0,5,0,180,223,251,0,49,0,5,0,206,223,251,0,49,0,5,0,60,59,251,0,16,0,5,0,90,232,251,0,27,0,5,0,86,233,251,0,49,0,5,0,86,233,251,0,5,0,112,0,86,233,251,0,27,0,5,0,90,233,251,0,49,0,5,0,90,233,251,0,27,0,5,0,114,235,251,0,27,0,5,0,60,239,251,0,49,0,5,0,60,239,251,0,49,0,5,0,130,161,251,0,49,0,5,0,90,11,251,0,49,0,5,0,240,134,252,0,16,0,5,0,188,6,252,0,16,0,5,0,190,9,252,0,27,0,5,0,196,9,252,0,16,0,5,0,192,11,252,0,5,0,112,0,198,11,252,0,16,0,5,0,174,14,252,0,16,0,5,0,104,16,252,0,16,0,5,0,110,16,252,0,16,0,5,0,180,16,252,0,16,0,5,0,22,17,252,0,16,0,5,0,236,20,252,0,16,0,5,0,240,20,252,0,16,0,5,0,54,21,252,0,27,0,5,0,230,21,252,0,16,0,5,0,232,21,252,0,16,0,5,0,234,21,252,0,27,0,5,0,66,24,252,0,49,0,5,0,68,32,252,0,49,0,5,0,182,36,252,0,27,0,5,0,142,48,252,0,16,0,5,0,144,48,252,0,49,0,5,0,124,53,252,0,16,0,5,0,48,64,252,0,16,0,5,0,50,64,252,0,5,0,112,0,50,64,252,0,16,0,5,0,150,65,252,0,16,0,5,0,218,65,252,0,16,0,5,0,16,66,252,0,16,0,5,0,252,66,252,0,16,0,5,0,28,68,252,0,16,0,5,0,94,68,252,0,5,0,112,0,94,68,252,0,27,0,5,0,116,69,252,0,16,0,5,0,46,72,252,0,16,0,5,0,48,72,252,0,16,0,5,0,112,79,252,0,16,0,5,0,132,79,252,0,5,0,112,0,134,79,252,0,16,0,5,0,158,89,252,0,16,0,5,0,104,90,252,0,16,0,5,0,188,92,252,0,16,0,5,0,36,93,252,0,49,0,5,0,36,93,252,0,16,0,5,0,208,93,252,0,16,0,5,0,32,94,252,0,38,0,5,0,36,94,252,0,49,0,5,0,38,94,252,0,27,0,5,0,56,94,252,0,16,0,5,0,100,98,252,0,5,0,112,0,100,98,252,0,16,0,5,0,176,98,252,0,16,0,5,0,156,106,252,0,16,0,5,0,250,106,252,0,16,0,5,0,26,109,252,0,16,0,5,0,184,110,252,0,27,0,5,0,8,112,252,0,16,0,5,0,128,113,252,0,5,0,112,0,128,113,252,0,16,0,5,0,54,123,252,0,16,0,5,0,16,124,252,0,16,0,5,0,134,125,252,0,16,0,5,0,210,134,252,0,5,0,112,0,210,134,252,0,16,0,5,0,212,134,252,0,27,0,5,0,240,134,252,0,27,0,5,0,158,135,252,0,49,0,5,0,80,137,252,0,16,0,5,0,88,140,252,0,16,0,5,0,156,140,252,0,27,0,5,0,134,141,252,0,16,0,5,0,22,148,252,0,49,0,5,0,50,148,252,0,16,0,5,0,118,152,252,0,16,0,5,0,154,154,252,0,5,0,112,0,154,154,252,0,27,0,5,0,76,158,252,0,16,0,5,0,76,168,252,0,16,0,5,0,70,174,252,0,16,0,5,0,72,174,252,0,49,0,5,0,168,175,252,0,16,0,5,0,220,185,252,0,16,0,5,0,198,188,252,0,16,0,5,0,238,189,252,0,16,0,5,0,240,189,252,0,5,0,112,0,240,189,252,0,16,0,5,0,242,189,252,0,5,0,112,0,242,189,252,0,5,0,120,0,242,189,252,0,16,0,5,0,14,193,252,0,5,0,112,0,14,193,252,0,5,0,120,0,14,193,252,0,16,0,5,0,22,193,252,0,16,0,5,0,136,195,252,0,16,0,5,0,84,198,252,0,16,0,5,0,86,198,252,0,16,0,5,0,214,198,252,0,16,0,5,0,40,199,252,0,16,0,5,0,74,200,252,0,16,0,5,0,128,203,252,0,5,0,112,0,128,203,252,0,16,0,5,0,130,203,252,0,16,0,5,0,226,203,252,0,5,0,112,0,226,203,252,0,16,0,5,0,90,215,252,0,16,0,5,0,10,217,252,0,5,0,112,0,10,217,252,0,16,0,5,0,106,218,252,0,16,0,5,0,90,219,252,0,16,0,5,0,128,219,252,0,16,0,5,0,106,222,252,0,16,0,5,0,140,222,252,0,16,0,5,0,6,223,252,0,16,0,5,0,8,223,252,0,5,0,112,0,8,223,252,0,5,0,120,0,8,223,252,0,16,0,5,0,174,252,252,0,16,0,5,0,178,252,252,0,16,0,5,0,150,254,252,0,16,0,5,0,202,14,253,0,16,0,5,0,118,15,253,0,16,0,5,0,52,16,253,0,16,0,5,0,54,16,253,0,16,0,5,0,136,24,253,0,16,0,5,0,138,24,253,0,16,0,5,0,140,24,253,0,16,0,5,0,42,25,253,0,16,0,5,0,148,27,253,0,16,0,5,0,240,27,253,0,5,0,112,0,240,27,253,0,49,0,5,0,152,28,253,0,16,0,5,0,38,30,253,0,16,0,5,0,192,40,253,0,16,0,5,0,160,43,253,0,16,0,5,0,90,44,253,0,16,0,5,0,112,45,253,0,16,0,5,0,36,47,253,0,16,0,5,0,190,48,253,0,27,0,5,0,218,48,253,0,49,0,5,0,14,49,253,0,27,0,5,0,8,50,253,0,16,0,5,0,202,53,253,0,16,0,5,0,190,54,253,0,16,0,5,0,84,55,253,0,49,0,5,0,84,55,253,0,16,0,5,0,84,59,253,0,5,0,112,0,84,59,253,0,16,0,5,0,230,68,253,0,16,0,5,0,218,70,253,0,16,0,5,0,100,76,253,0,16,0,5,0,186,77,253,0,16,0,5,0,128,78,253,0,16,0,5,0,176,78,253,0,16,0,5,0,178,78,253,0,5,0,112,0,178,78,253,0,5,0,120,0,178,78,253,0,49,0,5,0,144,82,253,0,27,0,5,0,26,84,253,0,16,0,5,0,98,87,253,0,5,0,112,0,98,87,253,0,16,0,5,0,148,93,253,0,49,0,5,0,166,93,253,0,16,0,5,0,30,98,253,0,16,0,5,0,98,98,253,0,27,0,5,0,242,98,253,0,16,0,5,0,86,114,253,0,16,0,5,0,200,118,253,0,16,0,5,0,202,118,253,0,16,0,5,0,2,120,253,0,16,0,5,0,6,120,253,0,16,0,5,0,84,124,253,0,16,0,5,0,154,125,253,0,5,0,112,0,154,125,253,0,16,0,5,0,156,125,253,0,16,0,5,0,186,131,253,0,16,0,5,0,228,131,253,0,16,0,5,0,178,134,253,0,5,0,112,0,178,134,253,0,16,0,5,0,216,139,253,0,16,0,5,0,218,139,253,0,16,0,5,0,44,140,253,0,16,0,5,0,152,140,253,0,16,0,5,0,160,141,253,0,16,0,5,0,196,145,253,0,16,0,5,0,30,147,253,0,16,0,5,0,108,147,253,0,16,0,5,0,184,147,253,0,16,0,5,0,142,148,253,0,27,0,5,0,162,148,253,0,16,0,5,0,70,153,253,0,16,0,5,0,82,154,253,0,16,0,5,0,242,156,253,0,16,0,5,0,122,157,253,0,16,0,5,0,164,157,253,0,16,0,5,0,170,157,253,0,16,0,5,0,172,157,253,0,5,0,112,0,172,157,253,0,16,0,5,0,20,163,253,0,16,0,5,0,110,164,253,0,5,0,112,0,110,164,253,0,16,0,5,0,252,164,253,0,16,0,5,0,208,165,253,0,16,0,5,0,244,171,253,0,16,0,5,0,168,173,253,0,5,0,112,0,168,173,253,0,16,0,5,0,232,175,253,0,16,0,5,0,186,176,253,0,16,0,5,0,58,180,253,0,16,0,5,0,136,180,253,0,16,0,5,0,172,180,253,0,16,0,5,0,166,181,253,0,5,0,112,0,166,181,253,0,16,0,5,0,2,184,253,0,16,0,5,0,64,193,253,0,16,0,5,0,218,195,253,0,16,0,5,0,72,206,253,0,16,0,5,0,240,208,253,0,5,0,112,0,240,208,253,0,16,0,5,0,178,209,253,0,16,0,5,0,56,211,253,0,16,0,5,0,196,212,253,0,16,0,5,0,94,213,253,0,16,0,5,0,210,213,253,0,16,0,5,0,212,213,253,0,16,0,5,0,124,214,253,0,16,0,5,0,252,214,253,0,16,0,5,0,36,217,253,0,16,0,5,0,62,217,253,0,16,0,5,0,222,217,253,0,16,0,5,0,6,218,253,0,16,0,5,0,62,218,253,0,16,0,5,0,220,218,253,0,16,0,5,0,240,219,253,0,16,0,5,0,176,220,253,0,5,0,112,0,176,220,253,0,16,0,5,0,236,220,253,0,16,0,5,0,248,220,253,0,5,0,112,0,248,220,253,0,16,0,5,0,110,223,253,0,16,0,5,0,12,224,253,0,5,0,112,0,12,224,253,0,16,0,5,0,96,224,253,0,16,0,5,0,118,224,253,0,5,0,112,0,118,224,253,0,5,0,120,0,118,224,253,0,16,0,5,0,218,224,253,0,16,0,5,0,236,224,253,135,218,7,0,0,2,140,103,135,48,17,0,0,2,92,121,135,118,17,0,0,2,145,121,135,207,17,0,0,2,247,121,135,2,20,0,0,16,234,118,135,150,21,0,0,99,245,118,135,167,21,0,0,225,245,118,135,176,24,0,0,150,251,118,135,80,25,0,0,9,4,118,135,60,26,0,0,2,26,118,135,90,28,0,0,9,56,118,7,156,33,0,0,44,107,12,7,175,33,0,0,170,107,12,7,138,34,0,0,224,158,12,7,238,34,0,0,85,161,12,7,12,35,0,0,13,162,12,7,43,35,0,0,216,162,12,7,3,37,0,0,2,174,12,7,161,37,0,0,2,182,12,7,204,37,0,0,2,187,12,7,0,38,0,0,2,194,12,7,56,38,0,0,84,195,12,7,112,38,0,0,201,196,12,7,144,38,0,0,129,197,12,7,33,39,0,0,70,202,12,7,148,39,0,0,59,204,12,7,199,39,0,0,148,205,12,7,0,40,0,0,55,227,12,7,0,41,0,0,223,206,12,7,153,41,0,0,124,210,12,7,220,41,0,0,57,212,12,7,13,42,0,0,125,213,12,7,119,42,0,0,84,216,12,7,221,42,0,0,29,219,12,7,118,43,0,0,70,223,12,7,151,43,0,0,40,224,12,135,60,45,0,0,100,141,103,135,84,45,0,0,21,142,103,7,192,49,0,0,184,73,13,7,192,77,0,0,167,234,12,135,0,160,0,0,9,118,123,7,144,164,0,0,208,238,12,135,208,164,0,0,51,151,123,135,52,165,0,0,2,16,120,135,111,165,0,0,2,44,120,135,136,165,0,0,2,52,120,135,181,165,0,0,2,57,120,135,217,165,0,0,2,69,120,135,160,166,0,0,9,76,120,135,12,168,0,0,93,162,113,135,130,168,0,0,9,164,113,135,10,169,0,0,9,78,117,135,48,169,0,0,9,76,117,135,132,169,0,0,9,42,118,135,0,170,0,0,9,38,118,135,128,170,0,0,9,132,115,135,176,215,0,0,44,177,121,135,203,215,0,0,91,248,121,135,13,0,1,0,93,99,124,135,128,0,1,0,117,101,124,7,121,1,1,0,148,240,12,7,208,1,1,0,132,241,12,135,160,2,1,0,9,248,123,135,48,3,1,0,9,252,123,135,161,3,1,0,16,205,124,135,80,4,1,0,9,86,124,135,216,4,1,0,9,232,118,135,0,5,1,0,9,93,124,135,48,5,1,0,9,95,124,135,0,6,1,0,9,105,124,135,10,8,1,0,58,115,124,7,210,9,1,0,51,118,18,135,201,10,1,0,2,167,124,135,0,11,1,0,9,119,124,135,176,15,1,0,9,203,124,135,5,16,1,0,9,244,113,135,52,16,1,0,98,245,113,7,91,16,1,0,91,147,17,135,208,16,1,0,9,97,124,135,3,17,1,0,9,96,117,135,80,17,1,0,9,168,113,135,131,17,1,0,23,170,113,135,19,18,1,0,135,172,113,135,176,18,1,0,9,174,113,135,19,19,1,0,100,178,113,135,0,20,1,0,23,180,113,135,128,20,1,0,16,183,113,135,133,21,1,0,2,193,113,135,0,22,1,0,9,201,113,135,140,22,1,0,121,203,113,135,0,24,1,0,9,209,113,135,24,25,1,0,142,205,113,135,170,25,1,0,65,207,113,135,13,26,1,0,30,198,116,135,10,28,1,0,72,248,113,142,114,28,1,0,9,4,117,142,146,28,1,0,16,4,117,135,11,29,1,0,72,224,113,135,106,29,1,0,72,229,113,135,0,32,1,0,9,207,124,135,99,34,1,0,236,223,124,135,214,34,1,0,11,227,124,7,90,36,1,0,147,119,18,135,128,36,1,0,113,232,124,135,0,48,1,0,9,4,125,135,0,68,1,0,9,83,125,135,0,104,1,0,61,78,120,135,208,106,1,0,9,94,120,135,0,107,1,0,9,240,123,130,0,112,1,0,4,100,125,130,0,136,1,0,84,148,125,135,0,139,1,0,9,166,125,135,15,176,1,0,100,104,122,135,112,177,1,0,9,155,125,135,0,188,1,0,9,88,124,7,0,208,1,0,249,242,12,7,0,209,1,0,193,249,12,7,58,209,1,0,98,251,12,7,140,209,1,0,131,252,12,7,0,211,1,0,107,236,12,7,0,216,1,0,130,58,13,7,118,218,1,0,242,72,13,135,0,225,1,0,9,243,123,135,192,226,1,0,9,245,123,135,0,232,1,0,9,95,120,7,0,240,1,0,186,2,13,7,48,240,1,0,240,3,13,7,209,240,1,0,239,7,13,7,0,243,1,0,252,11,13,7,0,246,1,0,185,41,13,7,0,247,1,0,101,48,13,7,128,247,1,0,151,51,13,7,16,248,1,0,180,54,13,7,96,248,1,0,134,56,13,7,144,248,1,0,160,57,13,7,0,249,1,0,40,33,13,7,122,249,1,0,125,36,13,7,205,249,1,0,191,38,13,7,0,250,1,0,244,8,13,7,144,250,1,0,145,40,13,7,0,251,1,0,112,188,12,7,148,251,1,0,125,192,12,0,0,0,0,5,150,0,0,5,136,0,0,194,32,9,230,194,46,29,232,194,32,108,230,194,46,29,232,194,32,207,230,194,32,29,232,194,46,207,230,194,46,29,232,194,32,85,231,194,32,29,232,194,46,85,231,194,46,29,232,194,32,184,231,194,32,29,232,194,46,184,231,194,46,29,232,194,46,29,232,194,44,59,235,27,5,54,7,27,5,54,7,24,5,131,12,24,5,90,7,24,5,90,7,24,5,90,7,27,5,98,7,27,5,98,7,24,5,90,7,24,5,0,8,24,5,0,8,40,5,0,8,40,5,0,8,24,5,0,8,24,5,0,8,24,5,0,8,40,5,0,8,40,5,0,8,40,5,0,8,23,5,142,9,21,5,0,21,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,19,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,21,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,23,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,25,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,27,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,29,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,31,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,33,23,5,144,9,23,5,142,9,21,5,0,21,21,5,0,35,23,5,144,9,23,5,142,9,21,5,0,21,22,5,0,37,23,5,144,9,23,5,142,9,21,5,0,23,23,5,144,9,23,5,142,9,21,5,0,23,21,5,0,19,23,5,144,9,23,5,142,9,21,5,0,25,23,5,144,9,23,5,142,9,21,5,0,27,23,5,144,9,23,5,142,9,21,5,0,29,23,5,144,9,23,5,142,9,21,5,0,31,23,5,144,9,23,5,142,9,21,5,0,33,23,5,144,9,23,5,142,9,21,5,0,35,23,5,144,9,23,5,142,9,22,5,0,37,23,5,144,9,23,5,142,9,19,5,0,42,23,5,144,9,23,5,142,9,162,5,0,42,23,5,144,9,23,5,142,9,19,5,0,44,23,5,144,9,23,5,142,9,162,5,0,44,23,5,144,9,23,5,142,9,19,5,0,46,23,5,144,9,23,5,142,9,162,5,0,46,23,5,144,9,23,5,142,9,19,5,0,48,23,5,144,9,23,5,142,9,162,5,0,48,23,5,144,9,23,5,142,9,19,5,0,50,23,5,144,9,23,5,142,9,162,5,0,50,23,5,144,9,23,5,142,9,19,5,0,52,23,5,144,9,23,5,142,9,162,5,0,52,23,5,144,9,23,5,142,9,19,5,0,54,23,5,144,9,23,5,142,9,162,5,0,54,23,5,144,9,23,5,142,9,19,5,0,56,23,5,144,9,23,5,142,9,162,5,0,56,23,5,144,9,23,5,142,9,19,5,0,58,23,5,144,9,23,5,142,9,162,5,0,58,23,5,144,9,23,5,142,9,19,5,0,60,23,5,144,9,23,5,142,9,162,5,0,60,23,5,144,9,23,5,142,9,19,5,0,62,23,5,144,9,23,5,142,9,162,5,0,62,23,5,144,9,23,5,142,9,19,5,0,64,23,5,144,9,23,5,142,9,162,5,0,64,23,5,144,9,23,5,142,9,19,5,0,66,23,5,144,9,23,5,142,9,162,5,0,66,23,5,144,9,23,5,142,9,19,5,0,68,23,5,144,9,23,5,142,9,162,5,0,68,23,5,144,9,23,5,142,9,19,5,0,70,23,5,144,9,23,5,142,9,162,5,0,70,23,5,144,9,23,5,142,9,19,5,0,72,23,5,144,9,23,5,142,9,162,5,0,72,23,5,144,9,23,5,142,9,20,5,0,74,23,5,144,9,23,5,142,9,168,5,0,74,23,5,144,9,23,5,142,9,19,5,0,76,23,5,144,9,23,5,142,9,162,5,0,76,23,5,144,9,23,5,142,9,19,5,0,78,23,5,144,9,23,5,142,9,162,5,0,78,23,5,144,9,23,5,142,9,19,5,0,80,23,5,144,9,23,5,142,9,162,5,0,80,23,5,144,9,23,5,142,9,19,5,0,82,23,5,144,9,23,5,142,9,162,5,0,82,23,5,144,9,23,5,142,9,19,5,0,84,23,5,144,9,23,5,142,9,162,5,0,84,23,5,144,9,23,5,142,9,20,5,0,86,23,5,144,9,23,5,142,9,168,5,0,86,23,5,144,9,23,5,142,9,19,5,0,88,23,5,144,9,23,5,142,9,162,5,0,88,23,5,144,9,23,5,142,9,19,5,0,90,23,5,144,9,23,5,142,9,162,5,0,90,23,5,144,9,23,5,142,9,19,5,0,92,23,5,144,9,23,5,142,9,162,5,0,92,23,5,144,9,23,5,142,9,16,5,6,121,23,5,144,9,23,5,142,9,16,5,6,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,10,121,23,5,144,9,23,5,142,9,16,5,10,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,12,121,23,5,144,9,23,5,142,9,16,5,12,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,16,121,23,5,144,9,23,5,142,9,16,5,16,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,18,121,23,5,144,9,23,5,142,9,16,5,18,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,20,121,23,5,144,9,23,5,142,9,16,5,20,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,24,121,23,5,144,9,23,5,142,9,16,5,24,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,28,121,23,5,144,9,23,5,142,9,16,5,28,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,28,121,16,5,119,121,16,5,30,121,32,5,111,121,32,5,185,121,23,5,144,9,23,5,142,9,16,5,28,121,16,5,119,121,16,5,42,121,16,5,129,121,23,5,144,9,23,5,142,9,16,5,30,121,23,5,144,9,23,5,142,9,16,5,30,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,30,121,16,5,129,121,23,5,144,9,23,5,142,9,16,5,34,121,23,5,144,9,23,5,142,9,16,5,34,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,36,121,23,5,144,9,23,5,142,9,16,5,36,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,38,121,23,5,144,9,23,5,142,9,16,5,38,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,40,121,23,5,144,9,23,5,142,9,16,5,40,121,16,5,103,121,23,5,144,9,23,5,142,9,16,5,42,121,23,5,144,9,23,5,142,9,16,5,42,121,16,5,103,121,23,5,144,9,16,5,82,10,162,5,0,78,16,5,84,10,32,5,188,10,32,5,188,10,32,5,188,10,32,5,188,10,32,5,188,10,32,5,190,10,32,5,190,10,32,5,190,10,32,5,190,10,32,5,190,10,5,5,16,12,5,136,0,0,5,5,16,12,5,138,0,0,5,5,16,12,5,148,0,0,193,9,22,12,5,136,0,0,193,9,22,12,5,138,0,0,193,9,22,12,5,148,0,0,193,16,22,12,5,136,0,0,193,16,22,12,5,138,0,0,193,16,22,12,5,148,0,0,32,5,83,12,162,5,0,46,32,5,83,12,162,5,0,52,5,5,99,12,5,158,0,0,5,5,101,12,5,158,0,0,193,2,107,12,5,158,0,0,193,126,108,12,5,158,0,0,193,140,108,12,5,158,0,0,193,154,108,12,5,158,0,0,193,2,113,12,5,158,0,0,193,2,117,12,5,158,0,0,193,16,117,12,5,158,0,0,5,5,129,12,5,158,0,0,5,5,131,12,5,158,0,0,24,5,131,12,24,5,131,12,24,5,131,12,24,5,131,12,24,5,131,12,5,5,133,12,5,158,0,0,193,107,151,12,5,158,0,0,193,114,151,12,5,158,0,0,32,5,153,12,32,5,153,12,32,5,153,12,32,5,153,12,32,5,153,12,32,5,155,12,32,5,155,12,32,5,155,12,32,5,155,12,32,5,155,12,193,79,157,12,5,158,0,0,193,121,157,12,5,158,0,0,193,128,157,12,5,158,0,0,193,142,157,12,5,158,0,0,193,170,157,12,5,158,0,0,193,49,158,12,5,158,0,0,193,63,158,12,5,158,0,0,193,70,158,12,5,158,0,0,193,126,158,12,5,158,0,0,193,133,158,12,5,158,0,0,193,140,158,12,5,158,0,0,193,147,158,12,5,158,0,0,193,154,158,12,5,158,0,0,193,161,158,12,5,158,0,0,193,168,158,12,5,158,0,0,193,175,158,12,5,158,0,0,193,196,158,12,5,158,0,0,193,203,158,12,5,158,0,0,193,210,158,12,5,158,0,0,193,217,158,12,5,158,0,0,193,19,159,12,5,158,0,0,193,26,159,12,5,158,0,0,193,138,159,12,5,158,0,0,193,180,159,12,5,158,0,0,193,187,159,12,5,158,0,0,193,201,159,12,5,158,0,0,193,222,159,12,5,158,0,0,193,229,159,12,5,158,0,0,193,236,159,12,5,158,0,0,193,243,159,12,5,158,0,0,193,29,219,12,5,158,0,0,5,5,110,13,5,174,0,0,5,5,112,13,5,174,0,0,5,5,116,13,5,174,0,0,5,5,120,13,5,174,0,0,21,5,0,19,27,5,0,6,21,5,0,19,24,5,0,8,51,5,0,19,32,5,149,12,51,5,0,25,21,5,0,21,27,5,0,6,21,5,0,21,24,5,0,8,51,5,0,21,32,5,149,12,51,5,0,21,32,5,149,12,51,5,0,21,51,5,0,19,51,5,0,21,32,5,149,12,51,5,0,23,51,5,0,21,32,5,149,12,51,5,0,25,51,5,0,21,32,5,149,12,51,5,0,27,51,5,0,21,32,5,149,12,51,5,0,29,51,5,0,21,32,5,149,12,51,5,0,31,51,5,0,21,32,5,149,12,51,5,0,33,51,5,0,21,32,5,149,12,51,5,0,35,51,5,0,21,32,5,149,12,52,5,0,37,31,5,0,21,31,5,0,19,21,5,0,21,21,5,0,19,24,5,0,8,31,5,0,21,31,5,0,21,21,5,0,21,21,5,0,21,24,5,0,8,31,5,0,21,31,5,0,23,21,5,0,21,21,5,0,23,24,5,0,8,46,5,0,21,46,5,0,23,46,5,0,19,180,5,0,72,31,5,0,21,31,5,0,25,21,5,0,21,21,5,0,25,24,5,0,8,31,5,0,21,31,5,0,27,21,5,0,21,21,5,0,27,24,5,0,8,31,5,0,21,31,5,0,29,21,5,0,21,21,5,0,29,24,5,0,8,31,5,0,21,31,5,0,31,21,5,0,21,21,5,0,31,24,5,0,8,31,5,0,21,31,5,0,33,21,5,0,21,21,5,0,33,24,5,0,8,31,5,0,21,31,5,0,35,21,5,0,21,21,5,0,35,24,5,0,8,31,5,0,21,34,5,0,37,21,5,0,21,22,5,0,37,24,5,0,8,21,5,0,23,27,5,0,6,51,5,0,23,32,5,149,12,51,5,0,25,51,5,0,23,32,5,149,12,51,5,0,29,31,5,0,23,31,5,0,19,21,5,0,23,21,5,0,19,24,5,0,8,31,5,0,23,31,5,0,21,31,5,0,23,31,5,0,23,46,5,0,23,46,5,0,23,48,5,0,8,46,5,0,23,31,5,0,23,31,5,0,25,31,5,0,23,31,5,0,27,31,5,0,23,31,5,0,29,31,5,0,23,31,5,0,31,31,5,0,23,31,5,0,33,31,5,0,23,31,5,0,35,31,5,0,23,34,5,0,37,46,5,0,23,180,5,0,62,46,5,0,23,49,5,0,68,46,5,0,48,48,5,0,4,180,5,0,78,46,5,0,46,49,5,0,76,21,5,0,25,27,5,0,6,51,5,0,25,32,5,149,12,51,5,0,27,51,5,0,25,32,5,149,12,51,5,0,29,51,5,0,25,32,5,149,12,51,5,0,35,31,5,0,25,31,5,0,19,31,5,0,25,31,5,0,21,31,5,0,25,31,5,0,25,31,5,0,25,31,5,0,27,31,5,0,25,31,5,0,29,31,5,0,25,31,5,0,31,31,5,0,25,31,5,0,33,31,5,0,25,31,5,0,35,31,5,0,25,34,5,0,37,46,5,0,25,177,5,0,48,21,5,0,27,27,5,0,6,51,5,0,27,32,5,149,12,51,5,0,29,31,5,0,27,31,5,0,19,31,5,0,27,31,5,0,21,31,5,0,27,31,5,0,27,31,5,0,27,31,5,0,29,31,5,0,27,31,5,0,31,31,5,0,27,31,5,0,33,31,5,0,27,31,5,0,35,31,5,0,27,34,5,0,37,46,5,0,27,180,5,0,62,21,5,0,29,27,5,0,6,46,5,0,29,48,5,0,8,46,5,0,21,51,5,0,29,32,5,149,12,51,5,0,31,51,5,0,29,32,5,149,12,51,5,0,35,31,5,0,29,31,5,0,19,21,5,0,31,27,5,0,6,31,5,0,31,31,5,0,19,46,5,0,31,46,5,0,19,180,5,0,72,21,5,0,33,27,5,0,6,46,5,0,33,48,5,0,8,46,5,0,21,51,5,0,33,32,5,149,12,51,5,0,35,31,5,0,33,31,5,0,19,21,5,0,35,27,5,0,6,31,5,0,35,31,5,0,19,46,5,0,35,180,5,0,62,22,5,0,37,27,5,0,6,5,5,0,42,5,140,0,0,5,136,0,0,156,5,0,42,5,140,0,0,5,136,0,0,5,5,0,42,5,140,0,0,5,138,0,0,156,5,0,42,5,140,0,0,5,138,0,0,5,5,0,42,5,140,0,0,5,154,0,0,156,5,0,42,5,140,0,0,5,154,0,0,5,5,0,42,5,140,0,0,5,182,0,0,156,5,0,42,5,140,0,0,5,182,0,0,5,5,0,42,5,142,0,0,5,136,0,0,156,5,0,42,5,142,0,0,5,136,0,0,5,5,0,42,5,142,0,0,5,138,0,0,156,5,0,42,5,142,0,0,5,138,0,0,5,5,0,42,5,142,0,0,5,154,0,0,156,5,0,42,5,142,0,0,5,154,0,0,5,5,0,42,5,142,0,0,5,182,0,0,156,5,0,42,5,142,0,0,5,182,0,0,5,5,0,42,5,146,0,0,5,136,0,0,156,5,0,42,5,146,0,0,5,136,0,0,19,5,0,42,32,150,0,0,162,5,0,42,32,150,0,0,5,5,0,42,5,150,0,0,5,164,0,0,156,5,0,42,5,150,0,0,5,164,0,0,5,5,0,42,5,156,0,0,5,164,0,0,156,5,0,42,5,156,0,0,5,164,0,0,5,5,0,42,5,196,0,0,5,140,0,0,156,5,0,42,5,196,0,0,5,140,0,0,5,5,0,42,5,196,0,0,5,142,0,0,156,5,0,42,5,196,0,0,5,142,0,0,49,5,0,42,48,5,0,8,49,5,0,66,48,5,0,8,19,5,0,42,46,5,138,10,19,5,0,46,19,5,0,42,46,5,138,10,19,5,0,78,162,5,0,42,46,5,138,10,162,5,0,78,180,5,0,42,32,5,147,12,49,5,0,66,19,5,0,42,19,5,0,42,162,5,0,42,162,5,0,42,180,5,0,42,177,5,0,44,5,112,0,42,19,5,0,50,160,112,0,42,162,5,0,50,46,112,0,42,43,5,0,50,5,112,0,42,19,5,0,50,5,136,0,0,160,112,0,42,162,5,0,50,5,136,0,0,5,112,0,42,19,5,0,50,5,164,0,0,160,112,0,42,162,5,0,50,5,164,0,0,19,5,0,42,19,5,0,70,162,5,0,42,162,5,0,70,19,5,0,42,19,5,0,82,162,5,0,42,162,5,0,82,180,5,0,42,177,5,0,82,19,5,0,42,19,5,0,84,162,5,0,42,162,5,0,84,5,112,0,42,19,5,0,84,160,112,0,42,162,5,0,84,19,5,0,42,19,5,0,90,162,5,0,42,162,5,0,90,19,5,0,42,32,5,86,93,46,5,0,44,49,5,0,42,49,5,0,76,177,5,0,44,52,5,0,74,19,5,0,46,32,160,0,0,5,5,0,46,5,160,0,0,5,136,0,0,156,5,0,46,5,160,0,0,5,136,0,0,19,5,0,46,46,5,138,10,19,5,0,70,19,5,0,46,46,5,138,10,19,5,0,82,177,5,0,46,32,5,147,12,49,5,0,62,46,5,0,54,46,5,0,46,49,5,0,42,49,5,0,64,46,5,0,46,46,5,0,46,168,5,0,46,168,5,0,48,46,5,0,46,46,5,0,48,177,5,0,46,180,5,0,64,46,5,0,46,49,5,0,66,46,5,0,46,49,5,0,66,46,5,0,23,46,5,0,46,49,5,0,66,46,5,0,25,177,5,0,46,49,5,0,70,48,5,0,8,177,5,0,46,180,5,0,70,180,5,0,70,180,5,0,64,46,5,0,48,49,5,0,42,19,5,0,48,19,5,0,44,46,5,0,48,177,5,0,44,177,5,0,48,177,5,0,60,46,5,0,48,49,5,0,64,46,5,0,48,49,5,0,66,46,5,0,48,49,5,0,66,46,5,0,23,46,5,0,48,49,5,0,66,46,5,0,25,19,5,0,48,19,5,0,92,162,5,0,48,19,5,0,92,162,5,0,48,162,5,0,92,19,5,0,48,19,5,0,92,32,144,0,0,162,5,0,48,19,5,0,92,32,144,0,0,162,5,0,48,162,5,0,92,32,144,0,0,19,5,0,48,32,5,16,93,19,5,0,48,32,5,18,93,19,5,0,48,16,5,26,93,5,5,0,50,5,142,0,0,5,136,0,0,156,5,0,50,5,142,0,0,5,136,0,0,5,5,0,50,5,142,0,0,5,138,0,0,156,5,0,50,5,142,0,0,5,138,0,0,5,5,0,50,5,142,0,0,5,154,0,0,156,5,0,50,5,142,0,0,5,154,0,0,5,5,0,50,5,142,0,0,5,182,0,0,156,5,0,50,5,142,0,0,5,182,0,0,5,5,0,50,5,160,0,0,5,140,0,0,156,5,0,50,5,160,0,0,5,140,0,0,5,5,0,50,5,164,0,0,5,136,0,0,156,5,0,50,5,164,0,0,5,136,0,0,5,5,0,50,5,164,0,0,5,138,0,0,156,5,0,50,5,164,0,0,5,138,0,0,5,5,0,50,5,196,0,0,5,142,0,0,156,5,0,50,5,196,0,0,5,142,0,0,49,5,0,50,49,5,0,76,46,5,0,54,49,5,0,50,180,5,0,84,162,5,0,52,162,5,0,42,162,5,0,88,19,5,0,52,19,5,0,52,19,5,0,52,19,5,0,52,19,5,0,58,19,5,0,52,19,5,0,52,19,5,0,64,46,5,0,52,49,5,0,66,19,5,0,52,16,5,30,69,177,5,0,52,180,5,0,76,180,5,0,50,180,5,0,50,19,5,0,54,32,170,0,0,162,5,0,54,32,170,0,0,46,5,0,54,49,5,0,42,49,5,0,64,177,5,0,54,177,5,0,44,177,5,0,54,180,5,0,56,46,5,0,92,177,5,0,54,180,5,0,72,49,5,0,42,177,5,0,54,46,5,0,90,43,5,0,56,32,178,0,0,49,5,0,56,49,5,0,42,180,5,0,56,46,5,0,46,180,5,0,56,46,5,0,48,180,5,0,76,180,5,0,56,46,5,0,54,180,5,0,56,49,5,0,58,48,5,0,4,180,5,0,76,49,5,0,50,49,5,0,78,180,5,0,56,180,5,0,72,49,5,0,56,180,5,0,72,49,5,0,42,180,5,0,56,180,5,0,84,5,5,0,58,5,150,0,0,5,136,0,0,156,5,0,58,5,150,0,0,5,136,0,0,180,5,0,58,177,5,0,46,180,5,0,58,177,5,0,48,19,5,0,58,19,5,0,58,162,5,0,58,162,5,0,58,19,5,0,58,19,5,0,58,19,5,0,58,162,5,0,58,162,5,0,58,162,5,0,58,19,5,0,58,19,5,0,60,162,5,0,58,162,5,0,60,49,5,0,58,49,5,0,68,180,5,0,58,177,5,0,82,19,5,0,58,19,5,0,84,162,5,0,58,162,5,0,84,19,5,0,58,19,5,0,88,162,5,0,58,162,5,0,88,19,5,0,62,32,170,0,0,162,5,0,62,32,170,0,0,49,5,0,62,180,5,0,42,180,5,0,62,177,5,0,44,49,5,0,62,46,5,0,46,49,5,0,42,49,5,0,64,49,5,0,62,180,5,0,56,46,5,0,92,180,5,0,62,180,5,0,62,49,5,0,62,49,5,0,64,49,5,0,62,49,5,0,66,180,5,0,62,180,5,0,66,49,5,0,62,49,5,0,66,46,5,0,23,49,5,0,62,49,5,0,66,46,5,0,25,49,5,0,62,180,5,0,72,49,5,0,42,49,5,0,62,49,5,0,80,49,5,0,62,180,5,0,84,49,5,0,62,184,5,0,86,49,5,0,62,177,5,86,96,5,5,0,64,5,196,0,0,5,164,0,0,156,5,0,64,5,196,0,0,5,164,0,0,5,5,0,64,194,5,219,251,156,5,0,64,194,5,219,251,19,5,0,64,19,5,0,60,162,5,0,64,19,5,0,60,162,5,0,64,162,5,0,60,19,5,0,64,19,5,0,64,162,5,0,64,162,5,0,64,49,5,0,64,49,5,0,66,49,5,0,64,49,5,0,68,49,5,0,64,49,5,0,70,46,5,0,54,180,5,0,64,49,5,0,70,49,5,0,78,49,5,0,78,49,5,0,64,49,5,0,50,49,5,0,78,49,5,0,78,19,5,0,64,19,5,0,78,180,5,0,64,180,5,0,80,177,5,0,48,49,5,0,64,49,5,0,88,19,5,0,64,19,5,0,92,49,5,0,66,32,5,147,12,49,5,0,78,49,5,0,66,32,5,147,12,49,5,0,78,46,5,0,23,49,5,0,66,180,5,0,42,49,5,0,66,46,5,0,44,180,5,0,66,177,5,0,44,43,5,0,66,43,5,0,46,43,5,0,66,43,5,0,48,49,5,0,66,46,5,0,54,180,5,0,66,180,5,0,56,46,5,0,92,49,5,0,66,49,5,0,58,49,5,0,64,49,5,0,66,49,5,0,66,49,5,0,66,49,5,0,66,46,5,0,23,49,5,0,66,49,5,0,66,46,5,0,25,49,5,0,66,49,5,0,70,49,5,0,64,180,5,0,66,180,5,0,72,49,5,0,42,43,5,0,66,43,5,0,76,49,5,0,66,49,5,0,78,49,5,0,66,180,5,0,84,180,5,0,66,180,5,0,84,49,5,0,66,184,5,0,86,180,5,0,66,184,5,0,86,180,5,0,66,177,5,86,96,19,5,0,68,32,170,0,0,162,5,0,68,32,170,0,0,49,5,0,68,180,5,0,42,180,5,0,68,180,5,0,50,184,5,0,86,49,5,0,68,177,5,0,52,180,5,0,68,177,5,0,54,19,5,0,68,19,5,0,60,162,5,0,68,19,5,0,60,162,5,0,68,162,5,0,60,49,5,0,68,49,5,0,66,162,5,0,68,19,5,0,70,49,5,0,68,49,5,0,78,49,5,0,68,180,5,0,84,49,5,0,68,184,5,0,86,5,5,0,70,5,142,0,0,5,136,0,0,156,5,0,70,5,142,0,0,5,136,0,0,5,5,0,70,5,142,0,0,5,138,0,0,156,5,0,70,5,142,0,0,5,138,0,0,5,5,0,70,5,142,0,0,5,154,0,0,156,5,0,70,5,142,0,0,5,154,0,0,5,5,0,70,5,142,0,0,5,182,0,0,156,5,0,70,5,142,0,0,5,182,0,0,19,5,0,70,32,150,0,0,162,5,0,70,32,150,0,0,5,5,0,70,5,150,0,0,5,164,0,0,156,5,0,70,5,150,0,0,5,164,0,0,5,5,0,70,5,154,0,0,5,136,0,0,156,5,0,70,5,154,0,0,5,136,0,0,5,5,0,70,5,154,0,0,5,150,0,0,156,5,0,70,5,154,0,0,5,150,0,0,5,5,0,70,5,154,0,0,5,164,0,0,156,5,0,70,5,154,0,0,5,164,0,0,5,5,0,70,5,156,0,0,5,164,0,0,156,5,0,70,5,156,0,0,5,164,0,0,5,5,0,70,5,158,0,0,5,136,0,0,156,5,0,70,5,158,0,0,5,136,0,0,5,5,0,70,5,162,0,0,5,164,0,0,156,5,0,70,5,162,0,0,5,164,0,0,5,5,0,70,5,164,0,0,5,136,0,0,156,5,0,70,5,164,0,0,5,136,0,0,5,5,0,70,5,164,0,0,5,138,0,0,156,5,0,70,5,164,0,0,5,138,0,0,19,5,0,70,32,168,0,0,5,5,0,70,5,190,0,0,5,136,0,0,156,5,0,70,5,190,0,0,5,136,0,0,5,5,0,70,5,190,0,0,5,138,0,0,156,5,0,70,5,190,0,0,5,138,0,0,5,5,0,70,5,190,0,0,5,154,0,0,156,5,0,70,5,190,0,0,5,154,0,0,5,5,0,70,5,190,0,0,5,182,0,0,156,5,0,70,5,190,0,0,5,182,0,0,5,5,0,70,5,190,0,0,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,196,0,0,5,142,0,0,156,5,0,70,5,196,0,0,5,142,0,0,5,112,0,70,19,5,0,50,160,112,0,70,162,5,0,50,46,112,0,70,43,5,0,50,180,5,0,70,180,5,0,62,19,5,0,70,19,5,0,70,162,5,0,70,162,5,0,70,49,5,0,70,180,5,0,84,49,5,0,72,48,5,0,8,49,5,0,66,48,5,0,8,49,5,0,72,180,5,0,42,180,5,0,72,180,5,0,42,49,5,0,72,46,5,0,46,49,5,0,72,177,5,0,52,180,5,0,72,180,5,0,56,180,5,0,72,180,5,0,72,180,5,0,66,180,5,0,72,180,5,0,72,180,5,0,84,180,5,0,72,180,5,0,76,49,5,0,72,49,5,0,78,180,5,0,72,180,5,0,80,180,5,0,50,49,5,0,72,180,5,0,84,49,5,0,72,184,5,0,86,20,5,0,74,19,5,0,72,19,5,0,76,32,170,0,0,162,5,0,76,32,170,0,0,5,5,0,76,5,196,0,0,5,164,0,0,156,5,0,76,5,196,0,0,5,164,0,0,49,5,0,76,49,5,0,42,46,5,0,48,49,5,0,76,49,5,0,42,46,5,0,48,32,5,147,12,49,5,0,78,49,5,0,76,49,5,0,42,46,5,0,48,32,5,147,12,49,5,0,78,46,5,0,23,5,5,0,78,5,136,0,0,5,156,0,0,156,5,0,78,5,136,0,0,5,156,0,0,5,5,0,78,5,144,0,0,5,156,0,0,156,5,0,78,5,144,0,0,5,156,0,0,19,5,0,78,32,170,0,0,162,5,0,78,32,170,0,0,5,5,0,78,5,196,0,0,5,156,0,0,156,5,0,78,5,196,0,0,5,156,0,0,5,120,0,78,5,156,0,0,180,5,0,78,180,5,0,42,180,5,0,78,177,5,0,48,180,5,0,78,180,5,0,56,180,5,0,84,43,5,0,78,43,5,0,66,180,5,0,78,180,5,0,70,180,5,0,78,180,5,0,78,180,5,0,78,5,112,0,78,19,5,0,78,160,112,0,78,162,5,0,78,19,5,0,78,19,5,0,80,5,120,0,78,19,5,0,80,180,5,0,78,49,5,0,84,19,5,0,80,32,5,16,47,162,5,0,80,162,5,0,50,162,5,0,64,5,112,0,80,19,5,0,56,180,5,0,80,180,5,0,56,46,5,0,92,43,5,0,80,43,5,0,66,19,5,0,80,19,5,0,78,19,5,0,80,16,5,14,79,19,5,0,80,16,5,22,79,19,5,0,80,19,5,0,92,162,5,0,80,19,5,0,92,19,5,0,82,32,150,0,0,162,5,0,82,32,150,0,0,5,5,0,82,5,150,0,0,5,136,0,0,156,5,0,82,5,150,0,0,5,136,0,0,5,5,0,82,5,150,0,0,5,138,0,0,156,5,0,82,5,150,0,0,5,138,0,0,5,5,0,82,5,150,0,0,5,144,0,0,156,5,0,82,5,150,0,0,5,144,0,0,5,5,0,82,5,150,0,0,5,164,0,0,156,5,0,82,5,150,0,0,5,164,0,0,5,5,0,82,5,154,0,0,5,136,0,0,156,5,0,82,5,154,0,0,5,136,0,0,5,5,0,82,5,164,0,0,5,150,0,0,156,5,0,82,5,164,0,0,5,150,0,0,19,5,0,82,32,168,0,0,5,5,0,82,5,190,0,0,5,136,0,0,156,5,0,82,5,190,0,0,5,136,0,0,5,5,0,82,5,190,0,0,5,138,0,0,156,5,0,82,5,190,0,0,5,138,0,0,5,5,0,82,5,190,0,0,5,154,0,0,156,5,0,82,5,190,0,0,5,154,0,0,5,5,0,82,5,190,0,0,5,182,0,0,156,5,0,82,5,190,0,0,5,182,0,0,5,5,0,82,5,190,0,0,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,177,5,0,82,180,5,0,56,177,5,0,48,177,5,0,82,180,5,0,72,48,5,90,7,180,5,0,84,32,5,147,12,49,5,0,66,19,5,0,84,19,5,0,58,162,5,0,84,162,5,0,58,19,5,0,84,19,5,0,58,19,5,0,58,162,5,0,84,162,5,0,58,162,5,0,58,19,5,0,84,19,5,0,58,19,5,0,58,19,5,0,58,162,5,0,84,162,5,0,58,162,5,0,58,162,5,0,58,180,5,0,84,180,5,0,70,177,5,0,48,180,5,0,84,180,5,0,78,19,5,0,84,19,5,0,90,162,5,0,84,162,5,0,90,184,5,0,86,46,5,0,44,184,5,0,86,177,5,0,46,176,5,0,86,168,5,0,92,19,5,0,88,19,5,0,58,162,5,0,88,162,5,0,58,19,5,0,88,19,5,0,58,19,5,0,58,162,5,0,88,162,5,0,58,162,5,0,58,19,5,0,92,20,5,0,86,5,5,26,93,5,144,0,0,158,5,26,93,5,144,0,0,32,5,82,93,19,5,0,68,5,5,6,96,5,132,0,0,166,5,6,96,5,132,0,0,5,5,6,96,5,132,0,0,5,136,0,0,166,5,6,96,5,132,0,0,5,136,0,0,5,5,6,96,5,132,0,0,5,136,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,136,0,0,5,216,0,0,5,5,6,96,5,132,0,0,5,138,0,0,166,5,6,96,5,132,0,0,5,138,0,0,5,5,6,96,5,132,0,0,5,138,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,138,0,0,5,216,0,0,5,5,6,96,5,132,0,0,5,148,0,0,166,5,6,96,5,132,0,0,5,148,0,0,5,5,6,96,5,132,0,0,5,148,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,148,0,0,5,216,0,0,5,5,6,96,5,132,0,0,5,216,0,0,166,5,6,96,5,132,0,0,5,216,0,0,5,5,6,96,5,134,0,0,166,5,6,96,5,134,0,0,5,5,6,96,5,134,0,0,5,136,0,0,166,5,6,96,5,134,0,0,5,136,0,0,5,5,6,96,5,134,0,0,5,136,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,136,0,0,5,216,0,0,5,5,6,96,5,134,0,0,5,138,0,0,166,5,6,96,5,134,0,0,5,138,0,0,5,5,6,96,5,134,0,0,5,138,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,138,0,0,5,216,0,0,5,5,6,96,5,134,0,0,5,148,0,0,166,5,6,96,5,134,0,0,5,148,0,0,5,5,6,96,5,134,0,0,5,148,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,148,0,0,5,216,0,0,5,5,6,96,5,134,0,0,5,216,0,0,166,5,6,96,5,134,0,0,5,216,0,0,5,5,6,96,5,136,0,0,166,5,6,96,5,136,0,0,5,5,6,96,5,136,0,0,5,216,0,0,5,5,6,96,5,138,0,0,166,5,6,96,5,138,0,0,5,5,6,96,5,138,0,0,5,216,0,0,5,5,6,96,5,140,0,0,166,5,6,96,5,140,0,0,5,5,6,96,5,148,0,0,5,5,6,96,5,148,0,0,5,216,0,0,5,5,6,96,5,164,0,0,166,5,6,96,5,164,0,0,5,5,6,96,5,216,0,0,166,5,6,96,5,216,0,0,5,5,16,96,5,132,0,0,166,5,16,96,5,132,0,0,5,5,16,96,5,132,0,0,5,136,0,0,166,5,16,96,5,132,0,0,5,136,0,0,5,5,16,96,5,132,0,0,5,138,0,0,166,5,16,96,5,132,0,0,5,138,0,0,5,5,16,96,5,134,0,0,166,5,16,96,5,134,0,0,5,5,16,96,5,134,0,0,5,136,0,0,166,5,16,96,5,134,0,0,5,136,0,0,5,5,16,96,5,134,0,0,5,138,0,0,166,5,16,96,5,134,0,0,5,138,0,0,5,5,16,96,5,136,0,0,166,5,16,96,5,136,0,0,5,5,16,96,5,138,0,0,166,5,16,96,5,138,0,0,5,5,28,96,5,132,0,0,158,5,28,96,5,132,0,0,5,5,28,96,5,132,0,0,5,136,0,0,158,5,28,96,5,132,0,0,5,136,0,0,5,5,28,96,5,132,0,0,5,136,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,136,0,0,5,216,0,0,5,5,28,96,5,132,0,0,5,138,0,0,158,5,28,96,5,132,0,0,5,138,0,0,5,5,28,96,5,132,0,0,5,138,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,138,0,0,5,216,0,0,5,5,28,96,5,132,0,0,5,148,0,0,158,5,28,96,5,132,0,0,5,148,0,0,5,5,28,96,5,132,0,0,5,148,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,148,0,0,5,216,0,0,5,5,28,96,5,132,0,0,5,216,0,0,158,5,28,96,5,132,0,0,5,216,0,0,5,5,28,96,5,134,0,0,158,5,28,96,5,134,0,0,5,5,28,96,5,134,0,0,5,136,0,0,158,5,28,96,5,134,0,0,5,136,0,0,5,5,28,96,5,134,0,0,5,136,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,136,0,0,5,216,0,0,5,5,28,96,5,134,0,0,5,138,0,0,158,5,28,96,5,134,0,0,5,138,0,0,5,5,28,96,5,134,0,0,5,138,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,138,0,0,5,216,0,0,5,5,28,96,5,134,0,0,5,148,0,0,158,5,28,96,5,134,0,0,5,148,0,0,5,5,28,96,5,134,0,0,5,148,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,148,0,0,5,216,0,0,5,5,28,96,5,134,0,0,5,216,0,0,158,5,28,96,5,134,0,0,5,216,0,0,5,5,28,96,5,136,0,0,158,5,28,96,5,136,0,0,5,5,28,96,5,136,0,0,5,216,0,0,5,5,28,96,5,138,0,0,158,5,28,96,5,138,0,0,5,5,28,96,5,138,0,0,5,216,0,0,5,5,28,96,5,148,0,0,5,5,28,96,5,148,0,0,5,216,0,0,5,5,28,96,5,216,0,0,158,5,28,96,5,216,0,0,5,5,32,96,5,132,0,0,166,5,32,96,5,132,0,0,5,5,32,96,5,132,0,0,5,136,0,0,166,5,32,96,5,132,0,0,5,136,0,0,5,5,32,96,5,132,0,0,5,138,0,0,166,5,32,96,5,132,0,0,5,138,0,0,5,5,32,96,5,132,0,0,5,148,0,0,166,5,32,96,5,132,0,0,5,148,0,0,5,5,32,96,5,134,0,0,166,5,32,96,5,134,0,0,5,5,32,96,5,134,0,0,5,136,0,0,166,5,32,96,5,134,0,0,5,136,0,0,5,5,32,96,5,134,0,0,5,138,0,0,166,5,32,96,5,134,0,0,5,138,0,0,5,5,32,96,5,134,0,0,5,148,0,0,166,5,32,96,5,134,0,0,5,148,0,0,5,5,32,96,5,136,0,0,166,5,32,96,5,136,0,0,5,5,32,96,5,138,0,0,166,5,32,96,5,138,0,0,5,5,32,96,5,140,0,0,166,5,32,96,5,140,0,0,5,5,32,96,5,148,0,0,5,5,32,96,5,150,0,0,166,5,32,96,5,150,0,0,5,5,32,96,5,150,0,0,5,136,0,0,5,5,32,96,5,150,0,0,5,138,0,0,5,5,32,96,5,150,0,0,5,148,0,0,5,5,32,96,5,164,0,0,166,5,32,96,5,164,0,0,16,5,36,96,16,5,6,96,16,5,32,96,168,5,36,96,16,5,6,96,16,5,32,96,48,5,42,96,180,5,0,42,48,5,42,96,177,5,0,52,48,5,42,96,46,5,0,54,48,5,42,96,49,5,0,64,48,5,42,96,49,5,0,66,48,5,42,96,49,5,0,78,48,5,42,96,180,5,0,84,48,5,42,96,184,5,0,86,5,5,48,96,5,132,0,0,158,5,48,96,5,132,0,0,5,5,48,96,5,132,0,0,5,136,0,0,158,5,48,96,5,132,0,0,5,136,0,0,5,5,48,96,5,132,0,0,5,138,0,0,158,5,48,96,5,132,0,0,5,138,0,0,5,5,48,96,5,134,0,0,158,5,48,96,5,134,0,0,5,5,48,96,5,134,0,0,5,136,0,0,158,5,48,96,5,134,0,0,5,136,0,0,5,5,48,96,5,134,0,0,5,138,0,0,158,5,48,96,5,134,0,0,5,138,0,0,5,5,48,96,5,136,0,0,158,5,48,96,5,136,0,0,5,5,48,96,5,138,0,0,158,5,48,96,5,138,0,0,5,5,60,96,5,132,0,0,5,5,60,96,5,134,0,0,160,5,60,96,5,134,0,0,5,5,76,96,5,132,0,0,5,5,76,96,5,132,0,0,5,136,0,0,5,5,76,96,5,132,0,0,5,138,0,0,5,5,76,96,5,132,0,0,5,148,0,0,5,5,76,96,5,134,0,0,155,5,76,96,5,134,0,0,5,5,76,96,5,134,0,0,5,136,0,0,155,5,76,96,5,134,0,0,5,136,0,0,5,5,76,96,5,134,0,0,5,138,0,0,155,5,76,96,5,134,0,0,5,138,0,0,5,5,76,96,5,134,0,0,5,148,0,0,155,5,76,96,5,134,0,0,5,148,0,0,5,5,76,96,5,136,0,0,155,5,76,96,5,136,0,0,166,5,76,96,5,136,0,0,5,5,76,96,5,138,0,0,155,5,76,96,5,138,0,0,5,5,76,96,5,140,0,0,155,5,76,96,5,140,0,0,5,5,76,96,5,148,0,0,5,5,76,96,5,150,0,0,155,5,76,96,5,150,0,0,166,5,76,96,5,150,0,0,5,5,76,96,5,150,0,0,5,136,0,0,5,5,76,96,5,150,0,0,5,138,0,0,5,5,76,96,5,150,0,0,5,148,0,0,5,5,76,96,5,164,0,0,155,5,76,96,5,164,0,0,5,5,86,96,5,132,0,0,155,5,86,96,5,132,0,0,5,5,86,96,5,132,0,0,5,136,0,0,155,5,86,96,5,132,0,0,5,136,0,0,5,5,86,96,5,132,0,0,5,136,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,136,0,0,5,216,0,0,5,5,86,96,5,132,0,0,5,138,0,0,155,5,86,96,5,132,0,0,5,138,0,0,5,5,86,96,5,132,0,0,5,138,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,138,0,0,5,216,0,0,5,5,86,96,5,132,0,0,5,148,0,0,155,5,86,96,5,132,0,0,5,148,0,0,5,5,86,96,5,132,0,0,5,148,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,148,0,0,5,216,0,0,5,5,86,96,5,132,0,0,5,216,0,0,155,5,86,96,5,132,0,0,5,216,0,0,5,5,86,96,5,134,0,0,155,5,86,96,5,134,0,0,5,5,86,96,5,134,0,0,5,136,0,0,155,5,86,96,5,134,0,0,5,136,0,0,5,5,86,96,5,134,0,0,5,136,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,136,0,0,5,216,0,0,5,5,86,96,5,134,0,0,5,138,0,0,155,5,86,96,5,134,0,0,5,138,0,0,5,5,86,96,5,134,0,0,5,138,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,138,0,0,5,216,0,0,5,5,86,96,5,134,0,0,5,148,0,0,155,5,86,96,5,134,0,0,5,148,0,0,5,5,86,96,5,134,0,0,5,148,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,148,0,0,5,216,0,0,5,5,86,96,5,134,0,0,5,216,0,0,155,5,86,96,5,134,0,0,5,216,0,0,5,5,86,96,5,136,0,0,155,5,86,96,5,136,0,0,5,5,86,96,5,136,0,0,5,216,0,0,5,5,86,96,5,138,0,0,155,5,86,96,5,138,0,0,5,5,86,96,5,138,0,0,5,216,0,0,5,5,86,96,5,148,0,0,5,5,86,96,5,148,0,0,5,216,0,0,5,5,86,96,5,216,0,0,155,5,86,96,5,216,0,0,32,5,120,96,32,5,98,96,32,5,118,96,5,5,6,97,5,140,0,0,174,5,6,97,5,140,0,0,5,5,6,97,5,150,0,0,174,5,6,97,5,150,0,0,5,5,8,97,5,150,0,0,160,5,8,97,5,150,0,0,5,5,16,97,5,136,0,0,174,5,16,97,5,136,0,0,5,5,40,97,5,138,0,0,174,5,40,97,5,138,0,0,5,5,40,97,5,140,0,0,174,5,40,97,5,140,0,0,5,5,40,97,5,150,0,0,174,5,40,97,5,150,0,0,5,5,44,97,5,140,0,0,174,5,44,97,5,140,0,0,5,5,44,97,5,150,0,0,174,5,44,97,5,150,0,0,5,5,50,97,5,150,0,0,174,5,50,97,5,150,0,0,5,5,70,97,5,138,0,0,174,5,70,97,5,138,0,0,5,5,70,97,5,150,0,0,174,5,70,97,5,150,0,0,5,5,70,97,5,164,0,0,174,5,70,97,5,164,0,0,5,5,74,97,5,150,0,0,32,5,74,97,32,150,0,0,174,5,74,97,5,150,0,0,5,5,84,97,5,136,0,0,174,5,84,97,5,136,0,0,5,5,138,97,5,150,0,0,158,5,138,97,5,150,0,0,5,5,140,97,5,150,0,0,160,5,140,97,5,150,0,0,32,5,156,97,32,5,162,97,5,5,172,97,5,140,0,0,174,5,172,97,5,140,0,0,5,5,172,97,5,150,0,0,174,5,172,97,5,150,0,0,5,5,172,97,5,152,0,0,174,5,172,97,5,152,0,0,5,5,172,97,5,164,0,0,174,5,172,97,5,164,0,0,5,5,200,97,5,150,0,0,174,5,200,97,5,150,0,0,5,5,230,97,5,150,0,0,174,5,230,97,5,150,0,0,5,5,238,97,5,150,0,0,160,5,238,97,5,150,0,0,193,86,246,97,5,184,0,0,32,5,16,100,32,5,76,100,32,5,46,100,32,5,16,100,32,5,46,100,32,5,28,100,32,5,46,100,32,5,32,100,32,5,46,100,32,5,52,100,32,5,68,100,32,5,52,100,5,5,6,101,194,5,12,227,5,5,6,101,194,5,45,227,5,5,6,101,194,5,210,227,32,5,6,101,32,5,28,101,5,5,8,101,194,5,210,227,5,5,8,101,194,5,243,227,5,5,10,101,194,5,210,227,5,5,12,101,194,5,210,227,5,5,14,101,194,5,210,227,5,5,16,101,194,5,78,227,5,5,16,101,194,5,210,227,32,5,16,101,32,5,16,101,32,5,16,101,32,5,24,101,5,5,18,101,194,5,210,227,5,5,22,101,194,5,210,227,5,5,24,101,194,5,167,226,5,5,24,101,194,5,210,227,32,5,24,101,32,5,14,101,32,5,16,101,32,5,14,101,32,5,24,101,32,5,24,101,32,5,24,101,32,5,24,101,194,5,12,227,5,5,26,101,194,5,210,227,46,5,26,101,194,5,210,227,5,5,26,101,194,5,243,227,5,5,28,101,194,5,210,227,5,5,30,101,194,5,210,227,5,5,32,101,194,5,210,227,5,5,34,101,194,5,210,227,5,5,38,101,194,5,210,227,32,5,38,101,194,5,210,227,5,5,38,101,194,5,243,227,5,5,40,101,194,5,210,227,5,5,42,101,194,5,210,227,5,5,44,101,194,5,210,227,5,5,46,101,194,5,144,227,5,5,46,101,194,5,177,227,5,5,46,101,194,5,210,227,5,5,46,101,194,5,210,227,194,5,144,227,5,5,46,101,194,5,210,227,194,5,177,227,5,5,48,101,194,5,210,227,38,5,22,102,38,5,26,102,49,5,22,102,49,5,26,102,16,5,22,102,24,5,58,102,49,5,22,102,48,5,58,102,16,5,22,102,24,5,72,102,49,5,22,102,48,5,72,102,16,5,22,102,24,5,74,102,38,5,22,102,30,5,110,102,38,5,22,102,30,5,112,102,16,5,22,102,24,5,200,102,27,5,22,102,32,5,200,102,38,5,22,102,40,5,200,102,49,5,22,102,48,5,200,102,38,5,22,102,40,5,204,102,16,5,22,102,24,5,214,102,27,5,22,102,32,5,214,102,38,5,22,102,38,5,222,102,49,5,22,102,49,5,222,102,38,5,22,102,30,5,228,102,49,5,22,102,44,5,228,102,38,5,22,102,32,5,230,102,49,5,22,102,46,5,230,102,16,5,22,102,16,5,236,102,38,5,22,102,38,5,236,102,49,5,22,102,49,5,236,102,38,5,22,102,44,5,238,102,49,5,22,102,51,5,238,102,16,5,22,102,16,5,246,102,38,5,22,102,38,5,246,102,49,5,22,102,49,5,246,102,38,5,26,102,194,30,164,229,49,5,26,102,194,44,164,229,16,5,26,102,32,5,6,102,49,5,26,102,48,5,182,102,48,5,30,102,44,5,110,102,49,5,26,102,48,5,196,102,48,5,196,102,48,5,214,102,24,5,30,102,24,5,58,102,48,5,30,102,48,5,58,102,24,5,30,102,24,5,72,102,48,5,30,102,48,5,72,102,40,5,30,102,40,5,72,102,44,5,238,102,24,5,30,102,24,5,74,102,48,5,30,102,48,5,74,102,40,5,30,102,40,5,74,102,44,5,238,102,40,5,30,102,30,5,110,102,40,5,30,102,30,5,112,102,24,5,30,102,24,5,200,102,32,5,30,102,32,5,200,102,40,5,30,102,40,5,200,102,48,5,30,102,48,5,200,102,40,5,30,102,40,5,204,102,24,5,30,102,24,5,214,102,32,5,30,102,32,5,214,102,40,5,30,102,38,5,236,102,48,5,30,102,49,5,236,102,40,5,30,102,44,5,238,102,48,5,30,102,51,5,238,102,24,5,42,102,24,5,58,102,48,5,42,102,48,5,58,102,24,5,42,102,24,5,58,102,24,5,200,102,40,5,42,102,40,5,58,102,38,5,236,102,40,5,42,102,40,5,58,102,44,5,238,102,24,5,42,102,24,5,72,102,48,5,42,102,48,5,72,102,24,5,42,102,24,5,72,102,24,5,58,102,40,5,42,102,40,5,72,102,40,5,58,102,24,5,42,102,24,5,72,102,24,5,200,102,24,5,42,102,24,5,74,102,48,5,42,102,48,5,74,102,24,5,42,102,24,5,74,102,24,5,200,102,40,5,42,102,40,5,74,102,38,5,236,102,40,5,42,102,40,5,74,102,44,5,238,102,40,5,42,102,30,5,110,102,40,5,42,102,30,5,112,102,24,5,42,102,24,5,200,102,32,5,42,102,32,5,200,102,40,5,42,102,40,5,200,102,48,5,42,102,48,5,200,102,24,5,42,102,24,5,200,102,24,5,58,102,24,5,42,102,24,5,200,102,24,5,72,102,24,5,42,102,24,5,200,102,24,5,74,102,40,5,42,102,40,5,200,102,38,5,236,102,40,5,42,102,40,5,200,102,44,5,238,102,40,5,42,102,40,5,204,102,24,5,42,102,24,5,214,102,32,5,42,102,32,5,214,102,40,5,42,102,38,5,236,102,48,5,42,102,49,5,236,102,40,5,42,102,44,5,238,102,48,5,42,102,51,5,238,102,48,5,44,102,48,5,58,102,40,5,44,102,30,5,110,102,40,5,44,102,30,5,112,102,24,5,44,102,24,5,200,102,32,5,44,102,32,5,200,102,40,5,44,102,40,5,200,102,48,5,44,102,48,5,200,102,40,5,44,102,40,5,204,102,32,5,44,102,32,5,214,102,40,5,44,102,38,5,236,102,48,5,44,102,49,5,236,102,40,5,44,102,44,5,238,102,48,5,44,102,51,5,238,102,24,5,58,102,24,5,72,102,48,5,58,102,48,5,72,102,40,5,58,102,40,5,72,102,38,5,236,102,40,5,58,102,40,5,72,102,44,5,238,102,48,5,58,102,48,5,196,102,32,5,0,4,48,5,58,102,48,5,196,102,49,5,26,102,48,5,196,102,48,5,214,102,48,5,58,102,48,5,200,102,24,5,58,102,24,5,200,102,24,5,72,102,40,5,58,102,40,5,200,102,40,5,72,102,40,5,58,102,40,5,200,102,38,5,236,102,40,5,58,102,40,5,200,102,44,5,238,102,48,5,58,102,49,5,236,102,48,5,58,102,51,5,238,102,48,5,72,102,48,5,58,102,40,5,72,102,40,5,58,102,44,5,238,102,48,5,72,102,48,5,200,102,40,5,72,102,40,5,200,102,38,5,236,102,40,5,72,102,40,5,200,102,44,5,238,102,48,5,72,102,49,5,236,102,48,5,72,102,51,5,238,102,24,5,74,102,24,5,58,102,48,5,74,102,48,5,58,102,48,5,74,102,48,5,72,102,48,5,74,102,48,5,200,102,48,5,74,102,49,5,236,102,48,5,74,102,51,5,238,102,44,5,86,102,194,44,59,235,44,5,110,102,194,44,59,235,44,5,110,102,48,5,134,102,49,5,222,102,48,5,196,102,24,5,134,102,24,5,58,102,32,5,134,102,32,5,58,102,48,5,134,102,48,5,58,102,24,5,134,102,24,5,58,102,24,5,72,102,40,5,134,102,40,5,58,102,38,5,236,102,24,5,134,102,24,5,72,102,32,5,134,102,32,5,72,102,48,5,134,102,48,5,72,102,24,5,134,102,24,5,72,102,24,5,58,102,24,5,134,102,24,5,74,102,32,5,134,102,32,5,74,102,48,5,134,102,48,5,74,102,40,5,134,102,40,5,74,102,38,5,236,102,40,5,134,102,40,5,74,102,44,5,238,102,40,5,134,102,30,5,110,102,48,5,134,102,44,5,110,102,24,5,134,102,24,5,200,102,32,5,134,102,32,5,200,102,48,5,134,102,48,5,200,102,24,5,134,102,24,5,200,102,24,5,58,102,24,5,134,102,24,5,200,102,24,5,72,102,40,5,134,102,40,5,200,102,40,5,72,102,24,5,134,102,24,5,200,102,24,5,200,102,40,5,134,102,40,5,200,102,40,5,200,102,24,5,134,102,24,5,214,102,32,5,134,102,32,5,214,102,40,5,134,102,38,5,236,102,48,5,134,102,49,5,236,102,40,5,134,102,44,5,238,102,48,5,134,102,51,5,238,102,24,5,136,102,24,5,58,102,32,5,136,102,32,5,58,102,40,5,136,102,40,5,58,102,48,5,136,102,48,5,58,102,40,5,136,102,40,5,58,102,44,5,238,102,24,5,136,102,24,5,72,102,32,5,136,102,32,5,72,102,40,5,136,102,40,5,72,102,48,5,136,102,48,5,72,102,24,5,136,102,24,5,72,102,24,5,200,102,40,5,136,102,40,5,72,102,40,5,200,102,40,5,136,102,40,5,72,102,44,5,238,102,24,5,136,102,24,5,74,102,32,5,136,102,32,5,74,102,40,5,136,102,40,5,74,102,48,5,136,102,48,5,74,102,40,5,136,102,30,5,110,102,48,5,136,102,44,5,110,102,24,5,136,102,24,5,200,102,32,5,136,102,32,5,200,102,40,5,136,102,40,5,200,102,48,5,136,102,48,5,200,102,24,5,136,102,24,5,200,102,24,5,74,102,40,5,136,102,40,5,200,102,40,5,74,102,24,5,136,102,24,5,200,102,24,5,200,102,40,5,136,102,40,5,200,102,40,5,200,102,24,5,136,102,24,5,214,102,32,5,136,102,32,5,214,102,40,5,136,102,38,5,236,102,48,5,136,102,49,5,236,102,40,5,136,102,44,5,238,102,48,5,136,102,51,5,238,102,24,5,146,102,24,5,72,102,48,5,146,102,48,5,72,102,24,5,146,102,24,5,72,102,24,5,72,102,40,5,146,102,40,5,72,102,40,5,72,102,40,5,146,102,40,5,72,102,44,5,238,102,24,5,146,102,24,5,74,102,40,5,146,102,30,5,110,102,48,5,146,102,44,5,110,102,48,5,146,102,48,5,196,102,48,5,166,102,48,5,200,102,48,5,146,102,48,5,196,102,49,5,236,102,48,5,146,102,48,5,196,102,49,5,236,102,32,5,0,4,49,5,26,102,48,5,196,102,48,5,196,102,48,5,214,102,32,5,0,4,48,5,166,102,48,5,196,102,51,5,238,102,48,5,214,102,32,5,0,4,49,5,222,102,48,5,134,102,48,5,196,102,48,5,200,102,48,5,146,102,48,5,196,102,46,5,250,102,24,5,146,102,24,5,200,102,48,5,146,102,48,5,200,102,24,5,146,102,24,5,200,102,24,5,200,102,40,5,146,102,40,5,200,102,40,5,200,102,40,5,146,102,38,5,236,102,48,5,146,102,49,5,236,102,40,5,146,102,44,5,238,102,48,5,146,102,51,5,238,102,24,5,148,102,24,5,58,102,48,5,148,102,48,5,58,102,24,5,148,102,24,5,72,102,48,5,148,102,48,5,72,102,40,5,148,102,40,5,72,102,38,5,236,102,40,5,148,102,40,5,72,102,44,5,238,102,24,5,148,102,24,5,74,102,48,5,148,102,48,5,74,102,24,5,148,102,24,5,74,102,24,5,200,102,40,5,148,102,40,5,74,102,40,5,200,102,40,5,148,102,30,5,110,102,48,5,148,102,44,5,110,102,24,5,148,102,24,5,200,102,48,5,148,102,48,5,200,102,40,5,148,102,38,5,236,102,48,5,148,102,49,5,236,102,40,5,148,102,44,5,238,102,48,5,148,102,51,5,238,102,24,5,158,102,24,5,72,102,48,5,158,102,48,5,72,102,24,5,158,102,24,5,200,102,32,5,158,102,32,5,200,102,48,5,158,102,48,5,200,102,24,5,158,102,24,5,200,102,24,5,72,102,40,5,158,102,40,5,200,102,40,5,72,102,24,5,158,102,24,5,200,102,24,5,200,102,40,5,158,102,40,5,200,102,44,5,238,102,40,5,158,102,38,5,236,102,48,5,158,102,49,5,236,102,40,5,158,102,44,5,238,102,48,5,158,102,51,5,238,102,24,5,160,102,24,5,200,102,32,5,160,102,32,5,200,102,48,5,160,102,48,5,200,102,24,5,166,102,24,5,58,102,48,5,166,102,48,5,58,102,24,5,166,102,24,5,58,102,24,5,200,102,40,5,166,102,40,5,58,102,40,5,200,102,24,5,166,102,24,5,200,102,24,5,166,102,24,5,200,102,24,5,200,102,40,5,166,102,40,5,200,102,40,5,200,102,40,5,166,102,40,5,200,102,38,5,236,102,40,5,166,102,40,5,200,102,44,5,238,102,40,5,166,102,38,5,236,102,48,5,166,102,49,5,236,102,40,5,166,102,44,5,238,102,48,5,166,102,51,5,238,102,24,5,168,102,24,5,58,102,48,5,168,102,48,5,58,102,24,5,168,102,24,5,200,102,48,5,168,102,48,5,200,102,40,5,168,102,40,5,200,102,40,5,200,102,40,5,168,102,40,5,200,102,38,5,236,102,40,5,168,102,40,5,200,102,44,5,238,102,40,5,168,102,38,5,236,102,48,5,168,102,49,5,236,102,40,5,168,102,44,5,238,102,48,5,168,102,51,5,238,102,24,5,174,102,24,5,58,102,48,5,174,102,48,5,58,102,24,5,174,102,24,5,72,102,48,5,174,102,48,5,72,102,24,5,174,102,24,5,74,102,48,5,174,102,48,5,74,102,24,5,174,102,24,5,74,102,24,5,200,102,40,5,174,102,40,5,74,102,40,5,200,102,24,5,174,102,24,5,200,102,48,5,174,102,48,5,200,102,40,5,174,102,40,5,200,102,44,5,238,102,40,5,174,102,38,5,236,102,48,5,174,102,49,5,236,102,40,5,174,102,44,5,238,102,48,5,174,102,51,5,238,102,24,5,178,102,24,5,72,102,48,5,178,102,48,5,72,102,48,5,178,102,48,5,196,102,46,5,250,102,24,5,178,102,24,5,200,102,48,5,178,102,48,5,200,102,24,5,178,102,24,5,200,102,24,5,72,102,40,5,178,102,40,5,200,102,40,5,72,102,40,5,178,102,40,5,200,102,40,5,200,102,40,5,178,102,40,5,200,102,44,5,238,102,40,5,178,102,38,5,236,102,48,5,178,102,49,5,236,102,40,5,178,102,44,5,238,102,48,5,178,102,51,5,238,102,40,5,182,102,38,5,26,102,48,5,182,102,49,5,26,102,24,5,182,102,24,5,58,102,48,5,182,102,48,5,58,102,24,5,182,102,24,5,72,102,48,5,182,102,48,5,72,102,24,5,182,102,24,5,74,102,48,5,182,102,48,5,74,102,24,5,182,102,24,5,196,102,32,5,182,102,32,5,196,102,40,5,182,102,40,5,196,102,48,5,182,102,48,5,196,102,24,5,182,102,24,5,200,102,32,5,182,102,32,5,200,102,40,5,182,102,40,5,200,102,48,5,182,102,48,5,200,102,24,5,182,102,24,5,200,102,24,5,200,102,40,5,182,102,40,5,200,102,40,5,200,102,40,5,182,102,40,5,200,102,44,5,238,102,40,5,182,102,38,5,236,102,48,5,182,102,49,5,236,102,40,5,182,102,44,5,238,102,48,5,182,102,51,5,238,102,40,5,196,102,32,5,8,102,48,5,196,102,46,5,8,102,40,5,196,102,32,5,10,102,48,5,196,102,46,5,10,102,40,5,196,102,32,5,18,102,48,5,196,102,46,5,18,102,40,5,196,102,38,5,26,102,24,5,196,102,24,5,58,102,48,5,196,102,48,5,58,102,24,5,196,102,24,5,58,102,24,5,58,102,40,5,196,102,40,5,58,102,40,5,58,102,24,5,196,102,24,5,58,102,24,5,200,102,40,5,196,102,40,5,58,102,40,5,200,102,40,5,196,102,40,5,58,102,44,5,238,102,24,5,196,102,24,5,72,102,48,5,196,102,48,5,72,102,24,5,196,102,24,5,72,102,24,5,200,102,40,5,196,102,40,5,72,102,40,5,200,102,40,5,196,102,40,5,72,102,38,5,236,102,40,5,196,102,40,5,72,102,44,5,238,102,24,5,196,102,24,5,74,102,48,5,196,102,48,5,74,102,24,5,196,102,24,5,74,102,24,5,200,102,40,5,196,102,40,5,74,102,40,5,200,102,24,5,196,102,24,5,200,102,32,5,196,102,32,5,200,102,40,5,196,102,40,5,200,102,24,5,196,102,24,5,200,102,24,5,72,102,40,5,196,102,40,5,200,102,40,5,72,102,40,5,196,102,40,5,200,102,44,5,238,102,24,5,196,102,24,5,214,102,40,5,196,102,38,5,236,102,40,5,196,102,44,5,238,102,40,5,200,102,38,5,26,102,48,5,200,102,48,5,58,102,24,5,200,102,24,5,58,102,24,5,72,102,24,5,200,102,24,5,58,102,24,5,74,102,24,5,200,102,24,5,58,102,24,5,200,102,40,5,200,102,40,5,58,102,44,5,238,102,48,5,200,102,48,5,72,102,24,5,200,102,24,5,72,102,24,5,58,102,24,5,200,102,24,5,72,102,24,5,200,102,48,5,200,102,48,5,72,102,48,5,200,102,44,5,84,102,40,5,200,102,40,5,72,102,44,5,238,102,24,5,200,102,24,5,74,102,24,5,58,102,24,5,200,102,24,5,74,102,24,5,200,102,40,5,200,102,40,5,74,102,44,5,238,102,48,5,200,102,48,5,200,102,40,5,200,102,40,5,200,102,44,5,238,102,48,5,200,102,49,5,236,102,48,5,200,102,51,5,238,102,24,5,204,102,24,5,58,102,48,5,204,102,48,5,58,102,24,5,204,102,24,5,58,102,24,5,72,102,40,5,204,102,40,5,58,102,40,5,72,102,24,5,204,102,24,5,58,102,24,5,200,102,40,5,204,102,40,5,58,102,40,5,200,102,40,5,204,102,40,5,58,102,38,5,236,102,40,5,204,102,40,5,58,102,44,5,238,102,24,5,204,102,24,5,72,102,48,5,204,102,48,5,72,102,24,5,204,102,24,5,72,102,24,5,200,102,40,5,204,102,40,5,72,102,38,5,236,102,40,5,204,102,40,5,72,102,44,5,238,102,24,5,204,102,24,5,74,102,48,5,204,102,48,5,74,102,40,5,204,102,30,5,110,102,40,5,204,102,30,5,112,102,24,5,204,102,24,5,200,102,32,5,204,102,32,5,200,102,40,5,204,102,40,5,200,102,48,5,204,102,48,5,200,102,40,5,204,102,40,5,200,102,38,5,236,102,40,5,204,102,40,5,200,102,44,5,238,102,40,5,204,102,40,5,204,102,24,5,204,102,24,5,214,102,32,5,204,102,32,5,214,102,40,5,204,102,38,5,236,102,48,5,204,102,49,5,236,102,40,5,204,102,44,5,238,102,48,5,204,102,51,5,238,102,24,5,214,102,194,16,59,235,24,5,214,102,24,5,58,102,24,5,214,102,24,5,200,102,48,5,214,102,48,5,200,102,24,5,214,102,24,5,200,102,24,5,58,102,24,5,214,102,24,5,200,102,24,5,200,102,48,5,214,102,49,5,236,102,48,5,214,102,51,5,238,102,5,5,218,102,194,5,128,232,193,16,220,102,194,5,128,232,16,5,222,102,32,5,6,102,16,5,228,102,32,5,6,102,44,5,228,102,46,5,6,102,38,5,236,102,194,30,59,235,49,5,236,102,194,44,59,235,16,5,238,102,32,5,6,102,30,5,238,102,24,5,58,102,51,5,238,102,48,5,58,102,44,5,238,102,40,5,58,102,44,5,238,102,30,5,238,102,24,5,72,102,44,5,238,102,40,5,72,102,44,5,238,102,30,5,238,102,24,5,74,102,51,5,238,102,48,5,74,102,44,5,238,102,30,5,110,102,44,5,238,102,30,5,112,102,30,5,238,102,24,5,200,102,37,5,238,102,32,5,200,102,51,5,238,102,48,5,200,102,30,5,238,102,24,5,200,102,24,5,200,102,44,5,238,102,40,5,200,102,40,5,200,102,44,5,238,102,40,5,200,102,44,5,238,102,30,5,238,102,24,5,214,102,37,5,238,102,32,5,214,102,44,5,238,102,38,5,236,102,51,5,238,102,49,5,236,102,44,5,238,102,44,5,238,102,51,5,238,102,51,5,238,102,5,5,250,102,194,5,128,232,32,5,250,102,194,32,128,232,46,5,250,102,194,46,128,232,5,5,62,104,194,5,175,240,5,5,64,104,194,5,175,240,5,5,66,104,194,5,175,240,5,5,78,104,194,5,175,240,5,5,94,104,194,5,175,240,5,5,98,104,194,5,175,240,5,5,110,104,194,5,175,240,5,5,114,104,194,5,175,240,5,5,124,104,194,5,175,240,5,5,128,104,194,5,175,240,5,5,132,104,194,5,175,240,5,5,60,105,194,5,175,240,5,5,62,105,194,5,175,240,32,5,66,105,32,5,132,105,5,5,86,105,194,5,175,240,5,5,32,106,194,5,175,240,5,5,40,106,194,5,175,240,5,5,42,106,194,5,175,240,5,5,52,106,194,5,175,240,5,5,80,106,194,5,175,240,5,5,94,106,194,5,175,240,5,5,58,108,194,5,175,240,5,5,60,108,194,5,175,240,32,5,40,112,32,5,152,112,32,5,68,112,32,5,152,112,32,5,78,112,32,5,152,112,32,5,90,112,32,5,152,112,32,5,92,112,32,5,152,112,32,5,94,112,32,5,152,112,32,5,96,112,32,5,152,112,32,5,108,112,32,5,152,112,32,5,110,112,32,5,152,112,193,163,166,113,194,5,175,240,193,170,166,113,194,5,175,240,193,233,166,113,194,5,175,240,5,5,6,114,5,5,122,114,5,5,6,114,5,5,124,114,5,5,6,114,5,5,126,114,5,5,6,114,5,5,128,114,5,5,6,114,5,5,130,114,5,5,8,114,5,5,122,114,5,5,8,114,5,5,124,114,5,5,8,114,5,5,126,114,5,5,8,114,5,5,128,114,5,5,8,114,5,5,130,114,5,5,10,114,5,5,122,114,5,5,10,114,5,5,124,114,5,5,10,114,5,5,126,114,5,5,10,114,5,5,128,114,5,5,10,114,5,5,130,114,5,5,12,114,5,5,122,114,5,5,12,114,5,5,124,114,5,5,12,114,5,5,126,114,5,5,12,114,5,5,128,114,5,5,12,114,5,5,130,114,5,5,14,114,5,5,122,114,5,5,14,114,5,5,124,114,5,5,14,114,5,5,126,114,5,5,14,114,5,5,128,114,5,5,14,114,5,5,130,114,5,5,16,114,5,5,122,114,5,5,16,114,5,5,124,114,5,5,16,114,5,5,126,114,5,5,16,114,5,5,128,114,5,5,16,114,5,5,130,114,5,5,18,114,5,5,122,114,5,5,18,114,5,5,124,114,5,5,18,114,5,5,126,114,5,5,18,114,5,5,128,114,5,5,18,114,5,5,130,114,5,5,20,114,5,5,122,114,5,5,20,114,5,5,124,114,5,5,20,114,5,5,126,114,5,5,20,114,5,5,128,114,5,5,20,114,5,5,130,114,5,5,22,114,5,5,122,114,5,5,22,114,5,5,124,114,5,5,22,114,5,5,126,114,5,5,22,114,5,5,128,114,5,5,22,114,5,5,130,114,5,5,24,114,5,5,122,114,5,5,24,114,5,5,124,114,5,5,24,114,5,5,126,114,5,5,24,114,5,5,128,114,5,5,24,114,5,5,130,114,5,5,26,114,5,5,122,114,5,5,26,114,5,5,124,114,5,5,26,114,5,5,126,114,5,5,26,114,5,5,128,114,5,5,26,114,5,5,130,114,5,5,28,114,5,5,122,114,5,5,28,114,5,5,124,114,5,5,28,114,5,5,126,114,5,5,28,114,5,5,128,114,5,5,28,114,5,5,130,114,5,5,30,114,5,5,122,114,5,5,30,114,5,5,124,114,5,5,30,114,5,5,126,114,5,5,30,114,5,5,128,114,5,5,30,114,5,5,130,114,5,5,32,114,5,5,122,114,5,5,32,114,5,5,124,114,5,5,32,114,5,5,126,114,5,5,32,114,5,5,128,114,5,5,32,114,5,5,130,114,5,5,34,114,5,5,122,114,5,5,34,114,5,5,124,114,5,5,34,114,5,5,126,114,5,5,34,114,5,5,128,114,5,5,34,114,5,5,130,114,5,5,36,114,5,5,122,114,5,5,36,114,5,5,124,114,5,5,36,114,5,5,126,114,5,5,36,114,5,5,128,114,5,5,36,114,5,5,130,114,5,5,38,114,5,5,122,114,5,5,38,114,5,5,124,114,5,5,38,114,5,5,126,114,5,5,38,114,5,5,128,114,5,5,38,114,5,5,130,114,5,5,40,114,5,5,122,114,5,5,40,114,5,5,124,114,5,5,40,114,5,5,126,114,5,5,40,114,5,5,128,114,5,5,40,114,5,5,130,114,5,5,42,114,5,5,122,114,5,5,42,114,5,5,124,114,5,5,42,114,5,5,126,114,5,5,42,114,5,5,128,114,5,5,42,114,5,5,130,114,5,5,44,114,5,5,122,114,5,5,44,114,5,5,124,114,5,5,44,114,5,5,126,114,5,5,44,114,5,5,128,114,5,5,44,114,5,5,130,114,5,5,46,114,5,5,122,114,5,5,46,114,5,5,124,114,5,5,46,114,5,5,126,114,5,5,46,114,5,5,128,114,5,5,46,114,5,5,130,114,5,5,48,114,5,5,122,114,5,5,48,114,5,5,124,114,5,5,48,114,5,5,126,114,5,5,48,114,5,5,128,114,5,5,48,114,5,5,130,114,5,5,50,114,5,5,122,114,5,5,50,114,5,5,124,114,5,5,50,114,5,5,126,114,5,5,50,114,5,5,128,114,5,5,50,114,5,5,130,114,5,5,52,114,5,5,122,114,5,5,52,114,5,5,124,114,5,5,52,114,5,5,126,114,5,5,52,114,5,5,128,114,5,5,52,114,5,5,130,114,5,5,54,114,5,5,122,114,5,5,54,114,5,5,124,114,5,5,54,114,5,5,126,114,5,5,54,114,5,5,128,114,5,5,54,114,5,5,130,114,5,5,56,114,5,5,122,114,5,5,56,114,5,5,124,114,5,5,56,114,5,5,126,114,5,5,56,114,5,5,128,114,5,5,56,114,5,5,130,114,5,5,58,114,5,5,122,114,5,5,58,114,5,5,124,114,5,5,58,114,5,5,126,114,5,5,58,114,5,5,128,114,5,5,58,114,5,5,130,114,5,5,60,114,5,5,122,114,5,5,60,114,5,5,124,114,5,5,60,114,5,5,126,114,5,5,60,114,5,5,128,114,5,5,60,114,5,5,130,114,5,5,62,114,5,5,122,114,5,5,62,114,5,5,124,114,5,5,62,114,5,5,126,114,5,5,62,114,5,5,128,114,5,5,62,114,5,5,130,114,5,5,64,114,5,5,122,114,5,5,64,114,5,5,124,114,5,5,64,114,5,5,126,114,5,5,64,114,5,5,128,114,5,5,64,114,5,5,130,114,5,5,66,114,5,5,122,114,5,5,66,114,5,5,124,114,5,5,66,114,5,5,126,114,5,5,66,114,5,5,128,114,5,5,66,114,5,5,130,114,5,5,68,114,5,5,122,114,5,5,68,114,5,5,124,114,5,5,68,114,5,5,126,114,5,5,68,114,5,5,128,114,5,5,68,114,5,5,130,114,5,5,70,114,5,5,122,114,5,5,70,114,5,5,124,114,5,5,70,114,5,5,126,114,5,5,70,114,5,5,128,114,5,5,70,114,5,5,130,114,5,5,72,114,5,5,122,114,5,5,72,114,5,5,124,114,5,5,72,114,5,5,126,114,5,5,72,114,5,5,128,114,5,5,72,114,5,5,130,114,5,5,74,114,5,5,122,114,5,5,74,114,5,5,124,114,5,5,74,114,5,5,126,114,5,5,74,114,5,5,128,114,5,5,74,114,5,5,130,114,5,5,76,114,5,5,122,114,5,5,76,114,5,5,124,114,5,5,76,114,5,5,126,114,5,5,76,114,5,5,128,114,5,5,76,114,5,5,130,114,5,5,78,114,5,5,122,114,5,5,78,114,5,5,124,114,5,5,78,114,5,5,126,114,5,5,78,114,5,5,128,114,5,5,78,114,5,5,130,114,5,5,80,114,5,5,122,114,5,5,80,114,5,5,124,114,5,5,80,114,5,5,126,114,5,5,80,114,5,5,128,114,5,5,80,114,5,5,130,114,5,5,82,114,5,5,122,114,5,5,82,114,5,5,124,114,5,5,82,114,5,5,126,114,5,5,82,114,5,5,128,114,5,5,82,114,5,5,130,114,5,5,84,114,5,5,122,114,5,5,84,114,5,5,124,114,5,5,84,114,5,5,126,114,5,5,84,114,5,5,128,114,5,5,84,114,5,5,130,114,5,5,86,114,5,5,122,114,5,5,86,114,5,5,124,114,5,5,86,114,5,5,126,114,5,5,86,114,5,5,128,114,5,5,86,114,5,5,130,114,5,5,88,114,5,5,122,114,5,5,88,114,5,5,124,114,5,5,88,114,5,5,126,114,5,5,88,114,5,5,128,114,5,5,88,114,5,5,130,114,5,5,90,114,5,5,122,114,5,5,90,114,5,5,124,114,5,5,90,114,5,5,126,114,5,5,90,114,5,5,128,114,5,5,90,114,5,5,130,114,5,5,92,114,5,5,122,114,5,5,92,114,5,5,124,114,5,5,92,114,5,5,126,114,5,5,92,114,5,5,128,114,5,5,92,114,5,5,130,114,5,5,94,114,5,5,122,114,5,5,94,114,5,5,124,114,5,5,94,114,5,5,126,114,5,5,94,114,5,5,128,114,5,5,94,114,5,5,130,114,5,5,96,114,5,5,122,114,5,5,96,114,5,5,124,114,5,5,96,114,5,5,126,114,5,5,96,114,5,5,128,114,5,5,96,114,5,5,130,114,5,5,6,115,5,5,122,115,5,5,6,115,5,5,124,115,5,5,6,115,5,5,126,115,5,5,6,115,5,5,128,115,5,5,6,115,5,5,130,115,5,5,8,115,5,5,122,115,5,5,8,115,5,5,124,115,5,5,8,115,5,5,126,115,5,5,8,115,5,5,128,115,5,5,8,115,5,5,130,115,5,5,10,115,5,5,122,115,5,5,10,115,5,5,124,115,5,5,10,115,5,5,126,115,5,5,10,115,5,5,128,115,5,5,10,115,5,5,130,115,5,5,12,115,5,5,122,115,5,5,12,115,5,5,124,115,5,5,12,115,5,5,126,115,5,5,12,115,5,5,128,115,5,5,12,115,5,5,130,115,5,5,14,115,5,5,122,115,5,5,14,115,5,5,124,115,5,5,14,115,5,5,126,115,5,5,14,115,5,5,128,115,5,5,14,115,5,5,130,115,5,5,16,115,5,5,122,115,5,5,16,115,5,5,124,115,5,5,16,115,5,5,126,115,5,5,16,115,5,5,128,115,5,5,16,115,5,5,130,115,5,5,18,115,5,5,122,115,5,5,18,115,5,5,124,115,5,5,18,115,5,5,126,115,5,5,18,115,5,5,128,115,5,5,18,115,5,5,130,115,5,5,20,115,5,5,122,115,5,5,20,115,5,5,124,115,5,5,20,115,5,5,126,115,5,5,20,115,5,5,128,115,5,5,20,115,5,5,130,115,5,5,22,115,5,5,122,115,5,5,22,115,5,5,124,115,5,5,22,115,5,5,126,115,5,5,22,115,5,5,128,115,5,5,22,115,5,5,130,115,5,5,24,115,5,5,122,115,5,5,24,115,5,5,124,115,5,5,24,115,5,5,126,115,5,5,24,115,5,5,128,115,5,5,24,115,5,5,130,115,5,5,26,115,5,5,122,115,5,5,26,115,5,5,124,115,5,5,26,115,5,5,126,115,5,5,26,115,5,5,128,115,5,5,26,115,5,5,130,115,5,5,28,115,5,5,122,115,5,5,28,115,5,5,124,115,5,5,28,115,5,5,126,115,5,5,28,115,5,5,128,115,5,5,28,115,5,5,130,115,5,5,30,115,5,5,122,115,5,5,30,115,5,5,124,115,5,5,30,115,5,5,126,115,5,5,30,115,5,5,128,115,5,5,30,115,5,5,130,115,5,5,32,115,5,5,122,115,5,5,32,115,5,5,124,115,5,5,32,115,5,5,126,115,5,5,32,115,5,5,128,115,5,5,32,115,5,5,130,115,5,5,34,115,5,5,122,115,5,5,34,115,5,5,124,115,5,5,34,115,5,5,126,115,5,5,34,115,5,5,128,115,5,5,34,115,5,5,130,115,5,5,36,115,5,5,122,115,5,5,36,115,5,5,124,115,5,5,36,115,5,5,126,115,5,5,36,115,5,5,128,115,5,5,36,115,5,5,130,115,5,5,38,115,5,5,122,115,5,5,38,115,5,5,124,115,5,5,38,115,5,5,126,115,5,5,38,115,5,5,128,115,5,5,38,115,5,5,130,115,5,5,40,115,5,5,122,115,5,5,40,115,5,5,124,115,5,5,40,115,5,5,126,115,5,5,40,115,5,5,128,115,5,5,40,115,5,5,130,115,5,5,42,115,5,5,122,115,5,5,42,115,5,5,124,115,5,5,42,115,5,5,126,115,5,5,42,115,5,5,128,115,5,5,42,115,5,5,130,115,5,5,44,115,5,5,122,115,5,5,44,115,5,5,124,115,5,5,44,115,5,5,126,115,5,5,44,115,5,5,128,115,5,5,44,115,5,5,130,115,5,5,46,115,5,5,122,115,5,5,46,115,5,5,124,115,5,5,46,115,5,5,126,115,5,5,46,115,5,5,128,115,5,5,46,115,5,5,130,115,5,5,48,115,5,5,122,115,5,5,48,115,5,5,124,115,5,5,48,115,5,5,126,115,5,5,48,115,5,5,128,115,5,5,48,115,5,5,130,115,5,5,50,115,5,5,122,115,5,5,50,115,5,5,124,115,5,5,50,115,5,5,126,115,5,5,50,115,5,5,128,115,5,5,50,115,5,5,130,115,5,5,52,115,5,5,122,115,5,5,52,115,5,5,124,115,5,5,52,115,5,5,126,115,5,5,52,115,5,5,128,115,5,5,52,115,5,5,130,115,5,5,54,115,5,5,122,115,5,5,54,115,5,5,124,115,5,5,54,115,5,5,126,115,5,5,54,115,5,5,128,115,5,5,54,115,5,5,130,115,5,5,56,115,5,5,122,115,5,5,56,115,5,5,124,115,5,5,56,115,5,5,126,115,5,5,56,115,5,5,128,115,5,5,56,115,5,5,130,115,5,5,58,115,5,5,122,115,5,5,58,115,5,5,124,115,5,5,58,115,5,5,126,115,5,5,58,115,5,5,128,115,5,5,58,115,5,5,130,115,5,5,60,115,5,5,122,115,5,5,60,115,5,5,124,115,5,5,60,115,5,5,126,115,5,5,60,115,5,5,128,115,5,5,60,115,5,5,130,115,5,5,62,115,5,5,122,115,5,5,62,115,5,5,124,115,5,5,62,115,5,5,126,115,5,5,62,115,5,5,128,115,5,5,62,115,5,5,130,115,5,5,64,115,5,5,122,115,5,5,64,115,5,5,124,115,5,5,64,115,5,5,126,115,5,5,64,115,5,5,128,115,5,5,64,115,5,5,130,115,5,5,66,115,5,5,122,115,5,5,66,115,5,5,124,115,5,5,66,115,5,5,126,115,5,5,66,115,5,5,128,115,5,5,66,115,5,5,130,115,5,5,68,115,5,5,122,115,5,5,68,115,5,5,124,115,5,5,68,115,5,5,126,115,5,5,68,115,5,5,128,115,5,5,68,115,5,5,130,115,5,5,70,115,5,5,122,115,5,5,70,115,5,5,124,115,5,5,70,115,5,5,126,115,5,5,70,115,5,5,128,115,5,5,70,115,5,5,130,115,5,5,72,115,5,5,122,115,5,5,72,115,5,5,124,115,5,5,72,115,5,5,126,115,5,5,72,115,5,5,128,115,5,5,72,115,5,5,130,115,5,5,74,115,5,5,122,115,5,5,74,115,5,5,124,115,5,5,74,115,5,5,126,115,5,5,74,115,5,5,128,115,5,5,74,115,5,5,130,115,5,5,76,115,5,5,122,115,5,5,76,115,5,5,124,115,5,5,76,115,5,5,126,115,5,5,76,115,5,5,128,115,5,5,76,115,5,5,130,115,5,5,78,115,5,5,122,115,5,5,78,115,5,5,124,115,5,5,78,115,5,5,126,115,5,5,78,115,5,5,128,115,5,5,78,115,5,5,130,115,5,5,80,115,5,5,122,115,5,5,80,115,5,5,124,115,5,5,80,115,5,5,126,115,5,5,80,115,5,5,128,115,5,5,80,115,5,5,130,115,5,5,82,115,5,5,122,115,5,5,82,115,5,5,124,115,5,5,82,115,5,5,126,115,5,5,82,115,5,5,128,115,5,5,82,115,5,5,130,115,32,5,84,115,32,5,54,115,32,5,84,115,32,5,54,115,5,5,122,115,32,5,84,115,32,5,54,115,5,5,124,115,32,5,84,115,32,5,54,115,5,5,126,115,32,5,84,115,32,5,54,115,5,5,128,115,32,5,84,115,32,5,54,115,5,5,130,115,32,5,84,115,32,5,70,115,32,5,84,115,32,5,70,115,5,5,122,115,32,5,84,115,32,5,70,115,5,5,124,115,32,5,84,115,32,5,70,115,5,5,126,115,32,5,84,115,32,5,70,115,5,5,128,115,32,5,84,115,32,5,70,115,5,5,130,115,5,5,84,115,5,5,122,115,5,5,84,115,5,5,124,115,5,5,84,115,5,5,126,115,5,5,84,115,5,5,128,115,5,5,84,115,5,5,130,115,5,5,86,115,5,5,122,115,5,5,86,115,5,5,124,115,5,5,86,115,5,5,126,115,5,5,86,115,5,5,128,115,5,5,86,115,5,5,130,115,5,5,88,115,5,5,122,115,5,5,88,115,5,5,124,115,5,5,88,115,5,5,126,115,5,5,88,115,5,5,128,115,5,5,88,115,5,5,130,115,5,5,90,115,5,5,122,115,5,5,90,115,5,5,124,115,5,5,90,115,5,5,126,115,5,5,90,115,5,5,128,115,5,5,90,115,5,5,130,115,193,9,132,115,193,126,133,115,193,9,132,115,193,133,133,115,193,9,132,115,193,154,133,115,193,9,132,115,193,168,133,115,193,9,132,115,193,175,133,115,193,16,132,115,193,126,133,115,193,16,132,115,193,133,133,115,193,16,132,115,193,154,133,115,193,16,132,115,193,168,133,115,193,16,132,115,193,175,133,115,193,23,132,115,193,126,133,115,193,23,132,115,193,133,133,115,193,23,132,115,193,154,133,115,193,23,132,115,193,168,133,115,193,23,132,115,193,175,133,115,193,30,132,115,193,126,133,115,193,30,132,115,193,133,133,115,193,30,132,115,193,154,133,115,193,30,132,115,193,168,133,115,193,30,132,115,193,175,133,115,193,37,132,115,193,126,133,115,193,37,132,115,193,133,133,115,193,37,132,115,193,154,133,115,193,37,132,115,193,168,133,115,193,37,132,115,193,175,133,115,193,44,132,115,193,126,133,115,193,44,132,115,193,133,133,115,193,44,132,115,193,154,133,115,193,44,132,115,193,168,133,115,193,44,132,115,193,175,133,115,193,51,132,115,193,126,133,115,193,51,132,115,193,133,133,115,193,51,132,115,193,154,133,115,193,51,132,115,193,168,133,115,193,51,132,115,193,175,133,115,193,58,132,115,193,126,133,115,193,58,132,115,193,133,133,115,193,58,132,115,193,154,133,115,193,58,132,115,193,168,133,115,193,58,132,115,193,175,133,115,193,65,132,115,193,126,133,115,193,65,132,115,193,133,133,115,193,65,132,115,193,154,133,115,193,65,132,115,193,168,133,115,193,65,132,115,193,175,133,115,193,72,132,115,193,126,133,115,193,72,132,115,193,133,133,115,193,72,132,115,193,154,133,115,193,72,132,115,193,168,133,115,193,72,132,115,193,175,133,115,193,79,132,115,193,126,133,115,193,79,132,115,193,133,133,115,193,79,132,115,193,154,133,115,193,79,132,115,193,168,133,115,193,79,132,115,193,175,133,115,193,86,132,115,193,126,133,115,193,86,132,115,193,133,133,115,193,86,132,115,193,154,133,115,193,86,132,115,193,168,133,115,193,86,132,115,193,175,133,115,193,93,132,115,193,126,133,115,193,93,132,115,193,133,133,115,193,93,132,115,193,154,133,115,193,93,132,115,193,168,133,115,193,93,132,115,193,175,133,115,193,100,132,115,193,126,133,115,193,100,132,115,193,133,133,115,193,100,132,115,193,154,133,115,193,100,132,115,193,168,133,115,193,100,132,115,193,175,133,115,193,107,132,115,193,126,133,115,193,107,132,115,193,133,133,115,193,107,132,115,193,154,133,115,193,107,132,115,193,168,133,115,193,107,132,115,193,175,133,115,193,114,132,115,193,126,133,115,193,114,132,115,193,133,133,115,193,114,132,115,193,154,133,115,193,114,132,115,193,168,133,115,193,114,132,115,193,175,133,115,193,121,132,115,193,126,133,115,193,121,132,115,193,133,133,115,193,121,132,115,193,154,133,115,193,121,132,115,193,168,133,115,193,121,132,115,193,175,133,115,193,128,132,115,193,126,133,115,193,128,132,115,193,133,133,115,193,128,132,115,193,154,133,115,193,128,132,115,193,168,133,115,193,128,132,115,193,175,133,115,193,135,132,115,193,126,133,115,193,135,132,115,193,133,133,115,193,135,132,115,193,154,133,115,193,135,132,115,193,168,133,115,193,135,132,115,193,175,133,115,193,142,132,115,193,126,133,115,193,142,132,115,193,133,133,115,193,142,132,115,193,154,133,115,193,142,132,115,193,168,133,115,193,142,132,115,193,175,133,115,193,149,132,115,193,126,133,115,193,149,132,115,193,133,133,115,193,149,132,115,193,154,133,115,193,149,132,115,193,168,133,115,193,149,132,115,193,175,133,115,193,156,132,115,193,126,133,115,193,156,132,115,193,133,133,115,193,156,132,115,193,154,133,115,193,156,132,115,193,168,133,115,193,156,132,115,193,175,133,115,193,163,132,115,193,126,133,115,193,163,132,115,193,133,133,115,193,163,132,115,193,154,133,115,193,163,132,115,193,168,133,115,193,163,132,115,193,175,133,115,193,170,132,115,193,126,133,115,193,170,132,115,193,133,133,115,193,170,132,115,193,154,133,115,193,170,132,115,193,168,133,115,193,170,132,115,193,175,133,115,193,177,132,115,193,126,133,115,193,177,132,115,193,133,133,115,193,177,132,115,193,154,133,115,193,177,132,115,193,168,133,115,193,177,132,115,193,175,133,115,193,184,132,115,193,126,133,115,193,184,132,115,193,133,133,115,193,184,132,115,193,154,133,115,193,184,132,115,193,168,133,115,193,184,132,115,193,175,133,115,193,191,132,115,193,126,133,115,193,191,132,115,193,133,133,115,193,191,132,115,193,154,133,115,193,191,132,115,193,168,133,115,193,191,132,115,193,175,133,115,193,198,132,115,193,126,133,115,193,198,132,115,193,133,133,115,193,198,132,115,193,154,133,115,193,198,132,115,193,168,133,115,193,198,132,115,193,175,133,115,193,205,132,115,193,126,133,115,193,205,132,115,193,133,133,115,193,205,132,115,193,154,133,115,193,205,132,115,193,168,133,115,193,205,132,115,193,175,133,115,193,212,132,115,193,126,133,115,193,212,132,115,193,133,133,115,193,212,132,115,193,154,133,115,193,212,132,115,193,168,133,115,193,212,132,115,193,175,133,115,193,219,132,115,193,126,133,115,193,219,132,115,193,133,133,115,193,219,132,115,193,154,133,115,193,219,132,115,193,168,133,115,193,219,132,115,193,175,133,115,193,226,132,115,193,126,133,115,193,226,132,115,193,133,133,115,193,226,132,115,193,154,133,115,193,226,132,115,193,168,133,115,193,226,132,115,193,175,133,115,193,233,132,115,193,126,133,115,193,233,132,115,193,133,133,115,193,233,132,115,193,154,133,115,193,233,132,115,193,168,133,115,193,233,132,115,193,175,133,115,193,240,132,115,193,126,133,115,193,240,132,115,193,133,133,115,193,240,132,115,193,154,133,115,193,240,132,115,193,168,133,115,193,240,132,115,193,175,133,115,193,247,132,115,193,126,133,115,193,247,132,115,193,133,133,115,193,247,132,115,193,154,133,115,193,247,132,115,193,168,133,115,193,247,132,115,193,175,133,115,193,254,132,115,193,126,133,115,193,254,132,115,193,133,133,115,193,254,132,115,193,154,133,115,193,254,132,115,193,168,133,115,193,254,132,115,193,175,133,115,193,7,133,115,193,126,133,115,193,7,133,115,193,133,133,115,193,7,133,115,193,154,133,115,193,7,133,115,193,168,133,115,193,7,133,115,193,175,133,115,193,14,133,115,193,126,133,115,193,14,133,115,193,133,133,115,193,14,133,115,193,154,133,115,193,14,133,115,193,168,133,115,193,14,133,115,193,175,133,115,193,21,133,115,193,126,133,115,193,21,133,115,193,133,133,115,193,21,133,115,193,154,133,115,193,21,133,115,193,168,133,115,193,21,133,115,193,175,133,115,193,28,133,115,193,126,133,115,193,28,133,115,193,133,133,115,193,28,133,115,193,154,133,115,193,28,133,115,193,168,133,115,193,28,133,115,193,175,133,115,193,35,133,115,193,126,133,115,193,35,133,115,193,133,133,115,193,35,133,115,193,154,133,115,193,35,133,115,193,168,133,115,193,35,133,115,193,175,133,115,193,42,133,115,193,126,133,115,193,42,133,115,193,133,133,115,193,42,133,115,193,154,133,115,193,42,133,115,193,168,133,115,193,42,133,115,193,175,133,115,193,49,133,115,193,126,133,115,193,49,133,115,193,133,133,115,193,49,133,115,193,154,133,115,193,49,133,115,193,168,133,115,193,49,133,115,193,175,133,115,193,56,133,115,193,126,133,115,193,56,133,115,193,133,133,115,193,56,133,115,193,154,133,115,193,56,133,115,193,168,133,115,193,56,133,115,193,175,133,115,193,63,133,115,193,126,133,115,193,63,133,115,193,133,133,115,193,63,133,115,193,154,133,115,193,63,133,115,193,168,133,115,193,63,133,115,193,175,133,115,193,70,133,115,193,126,133,115,193,70,133,115,193,133,133,115,193,70,133,115,193,154,133,115,193,70,133,115,193,168,133,115,193,70,133,115,193,175,133,115,193,77,133,115,193,126,133,115,193,77,133,115,193,133,133,115,193,77,133,115,193,154,133,115,193,77,133,115,193,168,133,115,193,77,133,115,193,175,133,115,193,84,133,115,193,126,133,115,193,84,133,115,193,133,133,115,193,84,133,115,193,154,133,115,193,84,133,115,193,168,133,115,193,84,133,115,193,175,133,115,5,5,6,116,5,5,136,116,5,5,8,116,5,5,136,116,5,5,16,116,5,5,144,116,5,5,18,116,5,5,144,116,5,5,48,116,5,5,144,116,5,5,50,116,5,5,144,116,5,5,64,116,5,5,144,116,5,5,66,116,5,5,144,116,5,5,80,116,5,5,144,116,5,5,82,116,5,5,144,116,5,5,96,116,5,5,144,116,5,5,98,116,5,5,144,116,5,5,122,116,5,5,166,116,5,5,122,116,5,5,170,116,5,5,122,116,5,5,178,116,5,5,128,116,5,5,166,116,5,5,128,116,5,5,170,116,5,5,128,116,5,5,178,116,32,5,146,116,32,5,192,116,194,32,241,240,32,5,12,117,32,5,20,117,32,5,16,117,32,5,22,117,32,5,83,117,32,5,91,117,32,5,83,117,193,9,5,118,193,142,9,118,193,9,5,118,5,5,11,118,193,9,5,118,193,2,13,118,193,9,5,118,193,23,13,118,193,16,5,118,193,142,9,118,193,16,5,118,5,5,11,118,193,16,5,118,193,2,13,118,193,16,5,118,193,23,13,118,193,23,5,118,193,142,9,118,193,23,5,118,5,5,11,118,193,23,5,118,193,2,13,118,193,23,5,118,193,23,13,118,193,30,5,118,193,142,9,118,193,30,5,118,5,5,11,118,193,30,5,118,193,2,13,118,193,30,5,118,193,23,13,118,193,37,5,118,193,142,9,118,193,37,5,118,5,5,11,118,193,37,5,118,193,2,13,118,193,37,5,118,193,23,13,118,193,44,5,118,193,142,9,118,193,44,5,118,5,5,11,118,193,44,5,118,193,2,13,118,193,44,5,118,193,23,13,118,193,51,5,118,193,142,9,118,193,51,5,118,5,5,11,118,193,51,5,118,193,2,13,118,193,51,5,118,193,23,13,118,193,58,5,118,193,142,9,118,193,58,5,118,5,5,11,118,193,58,5,118,193,2,13,118,193,58,5,118,193,23,13,118,193,65,5,118,193,142,9,118,193,65,5,118,5,5,11,118,193,65,5,118,193,2,13,118,193,65,5,118,193,23,13,118,193,72,5,118,193,142,9,118,193,72,5,118,5,5,11,118,193,72,5,118,193,2,13,118,193,72,5,118,193,23,13,118,193,79,5,118,193,142,9,118,193,79,5,118,5,5,11,118,193,79,5,118,193,2,13,118,193,79,5,118,193,23,13,118,193,86,5,118,193,142,9,118,193,86,5,118,5,5,11,118,193,86,5,118,193,2,13,118,193,86,5,118,193,23,13,118,193,93,5,118,193,142,9,118,193,93,5,118,5,5,11,118,193,93,5,118,193,2,13,118,193,93,5,118,193,23,13,118,193,100,5,118,193,142,9,118,193,100,5,118,5,5,11,118,193,100,5,118,193,2,13,118,193,100,5,118,193,23,13,118,193,107,5,118,193,142,9,118,193,107,5,118,5,5,11,118,193,107,5,118,193,2,13,118,193,107,5,118,193,23,13,118,193,114,5,118,193,142,9,118,193,114,5,118,5,5,11,118,193,114,5,118,193,2,13,118,193,114,5,118,193,23,13,118,193,121,5,118,193,142,9,118,193,121,5,118,5,5,11,118,193,121,5,118,193,2,13,118,193,121,5,118,193,23,13,118,193,128,5,118,193,142,9,118,193,128,5,118,5,5,11,118,193,128,5,118,193,2,13,118,193,128,5,118,193,23,13,118,193,135,5,118,193,142,9,118,193,135,5,118,5,5,11,118,193,135,5,118,193,2,13,118,193,135,5,118,193,23,13,118,193,142,5,118,193,142,9,118,193,142,5,118,5,5,11,118,193,142,5,118,193,2,13,118,193,142,5,118,193,23,13,118,193,149,5,118,193,142,9,118,193,149,5,118,5,5,11,118,193,149,5,118,193,2,13,118,193,149,5,118,193,23,13,118,193,156,5,118,193,142,9,118,193,156,5,118,5,5,11,118,193,156,5,118,193,2,13,118,193,156,5,118,193,23,13,118,193,163,5,118,193,142,9,118,193,163,5,118,5,5,11,118,193,163,5,118,193,2,13,118,193,163,5,118,193,23,13,118,193,170,5,118,193,142,9,118,193,170,5,118,5,5,11,118,193,170,5,118,193,2,13,118,193,170,5,118,193,23,13,118,193,177,5,118,193,142,9,118,193,177,5,118,5,5,11,118,193,177,5,118,193,2,13,118,193,177,5,118,193,23,13,118,193,184,5,118,193,142,9,118,193,184,5,118,5,5,11,118,193,184,5,118,193,2,13,118,193,184,5,118,193,23,13,118,193,191,5,118,193,142,9,118,193,191,5,118,5,5,11,118,193,191,5,118,193,2,13,118,193,191,5,118,193,23,13,118,193,198,5,118,193,142,9,118,193,198,5,118,5,5,11,118,193,198,5,118,193,2,13,118,193,198,5,118,193,23,13,118,5,5,7,118,193,142,9,118,5,5,7,118,5,5,11,118,32,5,7,118,32,5,11,118,32,5,7,118,32,5,11,118,32,5,15,118,5,5,7,118,193,2,13,118,5,5,7,118,193,23,13,118,193,2,9,118,193,142,9,118,193,2,9,118,5,5,11,118,193,2,9,118,193,2,13,118,193,2,9,118,193,23,13,118,193,9,9,118,193,142,9,118,193,9,9,118,5,5,11,118,193,9,9,118,193,2,13,118,193,9,9,118,193,23,13,118,193,16,9,118,193,142,9,118,193,16,9,118,5,5,11,118,193,16,9,118,193,2,13,118,193,16,9,118,193,23,13,118,193,23,9,118,193,142,9,118,193,23,9,118,5,5,11,118,193,23,9,118,193,2,13,118,193,23,9,118,193,23,13,118,193,30,9,118,193,142,9,118,193,30,9,118,5,5,11,118,193,30,9,118,193,2,13,118,193,30,9,118,193,23,13,118,193,37,9,118,193,142,9,118,193,37,9,118,5,5,11,118,193,37,9,118,193,2,13,118,193,37,9,118,193,23,13,118,193,44,9,118,193,142,9,118,193,44,9,118,5,5,11,118,193,44,9,118,193,2,13,118,193,44,9,118,193,23,13,118,193,51,9,118,193,142,9,118,193,51,9,118,5,5,11,118,193,51,9,118,193,2,13,118,193,51,9,118,193,23,13,118,193,58,9,118,193,142,9,118,193,58,9,118,5,5,11,118,193,58,9,118,193,2,13,118,193,58,9,118,193,23,13,118,193,65,9,118,193,142,9,118,193,65,9,118,5,5,11,118,193,65,9,118,193,2,13,118,193,65,9,118,193,23,13,118,193,72,9,118,193,142,9,118,193,72,9,118,5,5,11,118,193,72,9,118,193,2,13,118,193,72,9,118,193,23,13,118,193,79,9,118,193,142,9,118,193,79,9,118,5,5,11,118,193,79,9,118,193,2,13,118,193,79,9,118,193,23,13,118,193,86,9,118,193,142,9,118,193,86,9,118,5,5,11,118,193,86,9,118,193,2,13,118,193,86,9,118,193,23,13,118,193,93,9,118,193,142,9,118,193,93,9,118,5,5,11,118,193,93,9,118,193,2,13,118,193,93,9,118,193,23,13,118,193,100,9,118,193,142,9,118,193,100,9,118,5,5,11,118,193,100,9,118,193,2,13,118,193,100,9,118,193,23,13,118,32,5,28,118,32,5,36,118,32,5,28,118,32,5,10,119,32,5,10,119,32,5,32,119,32,5,52,119,5,112,50,119,5,112,50,119,32,5,6,120,32,5,72,120,32,5,10,120,32,5,72,120,32,5,14,120,32,5,72,120,32,5,18,120,32,5,74,120,32,5,22,120,32,5,72,120,32,5,26,120,32,5,74,120,32,5,30,120,32,5,74,120,32,5,34,120,32,5,72,120,32,5,46,120,32,5,72,120,32,5,55,120,32,5,72,120,32,5,59,120,32,5,72,120,32,5,63,120,32,5,74,120,32,5,67,120,32,5,72,120,30,5,6,121,30,5,103,121,30,5,10,121,30,5,103,121,30,5,12,121,30,5,103,121,30,5,16,121,30,5,103,121,30,5,18,121,30,5,103,121,30,5,20,121,30,5,103,121,30,5,24,121,30,5,103,121,30,5,28,121,30,5,103,121,30,5,28,121,30,5,129,121,30,5,30,121,30,5,103,121,30,5,30,121,30,5,129,121,30,5,28,121,30,5,141,121,30,5,34,121,30,5,103,121,30,5,34,121,30,5,103,121,32,5,209,121,30,5,6,121,30,5,119,121,30,5,36,121,30,5,103,121,30,5,38,121,30,5,103,121,30,5,40,121,30,5,103,121,30,5,42,121,30,5,103,121,51,5,6,122,46,5,118,13,48,5,88,122,51,5,6,122,48,5,58,122,46,176,0,0,46,5,118,13,51,5,46,122,51,5,6,122,48,5,88,122,48,5,62,122,51,5,6,122,51,5,6,122,49,5,102,122,48,5,64,122,46,176,0,0,51,5,6,122,51,5,8,122,49,5,50,122,49,5,102,122,48,5,22,122,46,174,0,0,51,5,8,122,49,5,102,122,49,5,40,122,133,5,10,122,5,174,0,0,158,5,10,122,5,174,0,0,51,5,10,122,51,5,16,122,49,5,102,122,51,5,14,122,46,5,118,13,48,5,18,122,46,5,118,13,51,5,14,122,48,5,32,122,48,5,22,122,46,5,118,13,51,5,46,122,46,174,0,0,51,5,16,122,46,5,118,13,48,5,72,122,51,5,16,122,49,5,102,122,48,5,32,122,133,5,18,122,5,174,0,0,152,5,18,122,5,174,0,0,48,5,18,122,51,5,8,122,51,5,86,122,48,5,18,122,48,5,84,122,51,5,42,122,51,5,46,122,48,5,18,122,48,5,92,122,51,5,86,122,46,5,118,13,48,5,18,122,46,174,0,0,48,5,92,122,49,5,102,122,48,5,18,122,46,174,0,0,49,5,102,122,49,5,68,122,133,5,20,122,5,174,0,0,144,5,20,122,5,174,0,0,49,5,20,122,46,174,0,0,48,5,18,122,46,174,0,0,49,5,20,122,46,174,0,0,49,5,50,122,46,5,118,13,49,5,20,122,51,5,80,122,51,5,86,122,46,5,118,13,49,5,20,122,46,174,0,0,48,5,88,122,49,5,38,122,46,174,0,0,46,5,118,13,49,5,20,122,48,5,92,122,49,5,20,122,48,5,92,122,48,5,22,122,46,174,0,0,48,5,84,122,48,5,72,122,49,5,20,122,48,5,92,122,49,5,74,122,46,5,118,13,51,5,46,122,48,5,88,122,49,5,20,122,48,5,92,122,48,5,94,122,51,5,42,122,51,5,46,122,133,5,22,122,5,174,0,0,152,5,22,122,5,174,0,0,48,5,22,122,46,174,0,0,48,5,84,122,48,5,72,122,51,5,46,122,49,5,102,122,48,5,22,122,48,5,88,122,49,5,34,122,46,174,0,0,51,5,8,122,48,5,92,122,48,5,22,122,48,5,92,122,46,5,118,13,49,5,54,122,133,5,24,122,5,174,0,0,152,5,24,122,5,174,0,0,48,5,24,122,46,5,118,13,48,5,32,122,133,5,26,122,5,174,0,0,144,5,26,122,5,174,0,0,48,5,26,122,46,5,118,13,48,5,66,122,46,176,0,0,48,5,26,122,48,5,26,122,40,5,26,122,44,5,46,122,48,5,26,122,48,5,88,122,49,5,48,122,133,5,28,122,5,174,0,0,144,5,28,122,5,174,0,0,49,5,28,122,51,5,8,122,48,5,22,122,48,5,88,122,49,5,28,122,49,5,102,122,49,5,40,122,46,5,118,13,48,5,72,122,133,5,30,122,5,174,0,0,152,5,30,122,5,174,0,0,3,5,30,122,3,5,74,122,48,5,30,122,51,5,86,122,49,5,102,122,48,5,22,122,46,174,0,0,133,5,32,122,5,174,0,0,152,5,32,122,5,174,0,0,133,5,34,122,5,174,0,0,144,5,34,122,5,174,0,0,49,5,34,122,49,5,102,122,49,5,40,122,49,5,34,122,49,5,102,122,51,5,46,122,133,5,36,122,5,174,0,0,144,5,36,122,5,174,0,0,133,5,38,122,5,174,0,0,144,5,38,122,5,174,0,0,49,5,38,122,46,174,0,0,46,5,118,13,48,5,32,122,133,5,40,122,5,174,0,0,144,5,40,122,5,174,0,0,133,5,42,122,5,174,0,0,158,5,42,122,5,174,0,0,133,5,44,122,5,174,0,0,144,5,44,122,5,174,0,0,49,5,44,122,46,174,0,0,49,5,44,122,46,174,0,0,48,5,30,122,133,5,46,122,5,174,0,0,151,5,46,122,5,174,0,0,51,5,46,122,46,174,0,0,48,5,88,122,49,5,48,122,49,5,56,122,49,5,56,122,51,5,42,122,51,5,46,122,133,5,58,122,5,174,0,0,152,5,58,122,5,174,0,0,133,5,58,122,5,176,0,0,152,5,58,122,5,176,0,0,48,5,58,122,46,176,0,0,46,5,118,13,49,5,34,122,49,5,102,122,51,5,46,122,48,5,58,122,46,176,0,0,46,5,118,13,51,5,42,122,48,5,58,122,46,174,0,0,46,5,118,13,48,5,90,122,48,5,88,122,48,5,58,122,51,5,8,122,51,5,42,122,133,5,60,122,5,174,0,0,152,5,60,122,5,174,0,0,133,5,60,122,5,176,0,0,152,5,60,122,5,176,0,0,48,5,60,122,46,176,0,0,51,5,6,122,48,5,32,122,51,5,46,122,48,5,88,122,48,5,60,122,46,176,0,0,48,5,22,122,48,5,88,122,48,5,60,122,46,176,0,0,48,5,26,122,48,5,60,122,46,174,0,0,48,5,88,122,133,5,62,122,5,174,0,0,152,5,62,122,5,174,0,0,133,5,62,122,5,176,0,0,152,5,62,122,5,176,0,0,48,5,62,122,51,5,6,122,48,5,84,122,51,5,42,122,51,5,46,122,46,174,0,0,48,5,62,122,51,5,8,122,46,5,118,13,51,5,46,122,48,5,62,122,46,174,0,0,51,5,42,122,48,5,30,122,51,5,14,122,48,5,88,122,48,5,62,122,48,5,84,122,49,5,102,122,133,5,64,122,5,174,0,0,152,5,64,122,5,174,0,0,133,5,64,122,5,176,0,0,152,5,64,122,5,176,0,0,48,5,64,122,46,176,0,0,46,5,118,13,48,5,30,122,46,174,0,0,48,5,64,122,46,174,0,0,46,5,118,13,49,5,38,122,48,5,64,122,48,5,22,122,49,5,38,122,46,5,118,13,48,5,88,122,48,5,64,122,46,176,0,0,49,5,36,122,48,5,64,122,46,176,0,0,49,5,50,122,48,5,60,122,48,5,64,122,48,5,88,122,51,5,42,122,48,5,64,122,46,176,0,0,49,5,102,122,48,5,32,122,133,5,66,122,5,174,0,0,152,5,66,122,5,174,0,0,133,5,66,122,5,176,0,0,152,5,66,122,5,176,0,0,48,5,66,122,46,5,118,13,48,5,88,122,48,5,66,122,46,5,118,13,49,5,102,122,48,5,66,122,46,176,0,0,51,5,8,122,49,5,102,122,51,5,46,122,48,5,66,122,48,5,18,122,48,5,66,122,46,174,0,0,48,5,88,122,51,5,46,122,48,5,66,122,49,5,102,122,48,5,66,122,46,176,0,0,49,5,102,122,51,5,46,122,46,174,0,0,49,5,68,122,51,5,8,122,48,5,22,122,48,5,92,122,49,5,68,122,51,5,8,122,48,5,88,122,3,5,68,122,3,5,32,122,49,5,68,122,51,5,42,122,48,5,58,122,49,5,68,122,48,5,88,122,48,5,22,122,49,5,68,122,49,5,102,122,48,5,30,122,52,5,82,122,49,5,102,122,49,5,70,122,48,5,22,122,48,5,92,122,49,5,102,122,49,5,70,122,51,5,86,122,49,5,70,122,51,5,86,122,48,5,58,122,46,174,0,0,46,5,118,13,48,5,88,122,49,5,74,122,48,5,18,122,46,174,0,0,49,5,74,122,48,5,18,122,46,174,0,0,51,5,46,122,49,5,102,122,51,5,78,122,46,5,118,13,51,5,46,122,46,174,0,0,51,5,78,122,46,5,118,13,48,5,88,122,51,5,80,122,51,5,6,122,49,5,102,122,46,5,82,122,44,5,86,122,51,5,86,122,51,5,42,122,51,5,46,122,48,5,88,122,51,5,86,122,48,5,84,122,48,5,88,122,46,5,118,13,48,5,62,122,46,174,0,0,48,5,88,122,48,5,88,122,48,5,60,122,46,176,0,0,46,5,118,13,48,5,90,122,48,5,72,122,48,5,90,122,49,5,102,122,51,5,46,122,48,5,24,122,46,174,0,0,49,5,102,122,152,5,94,122,5,174,0,0,158,5,96,122,5,174,0,0,158,5,98,122,5,174,0,0,155,5,100,122,5,174,0,0,32,5,184,124,32,5,190,124,5,5,6,121,5,5,8,121,5,5,10,121,5,5,12,121,5,5,14,121,5,5,16,121,5,5,18,121,5,5,20,121,5,5,22,121,5,5,24,121,5,5,26,121,5,5,28,121,5,5,30,121,5,5,32,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,5,5,105,121,5,5,107,121,5,5,109,121,5,5,111,121,5,5,113,121,5,5,115,121,5,5,117,121,5,5,119,121,5,5,121,121,5,5,123,121,5,5,125,121,5,5,127,121,5,5,129,121,5,5,131,121,5,5,133,121,5,5,135,121,5,5,137,121,5,5,139,121,5,5,141,121,5,5,143,121,5,5,179,121,5,5,181,121,5,5,183,121,5,5,185,121,5,5,187,121,5,5,189,121,5,5,191,121,5,5,193,121,5,5,195,121,5,5,197,121,5,5,199,121,5,5,201,121,5,5,203,121,5,5,205,121,5,5,207,121,5,5,209,121,5,5,211,121,5,5,213,121,5,5,215,121,5,5,217,121,5,5,219,121,5,5,221,121,5,5,223,121,5,5,225,121,5,5,227,121,5,5,229,121,5,5,231,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,16,5,0,19,16,5,0,21,16,5,0,23,16,5,0,25,16,5,0,27,16,5,0,29,16,5,0,31,16,5,0,33,16,5,0,35,16,5,0,37,26,5,0,19,26,5,0,21,26,5,0,23,26,5,0,25,26,5,0,27,26,5,0,29,26,5,0,31,26,5,0,33,26,5,0,35,28,5,0,37,5,0,0,0,6,0,0,0,29,1,0,0,0,5,0,5,60,0,128,69,130,61,0,0,128,5,0,130,128,5,0,132,128,5,0,134,128,5,0,136,128,5,0,138,128,5,0,140,128,5,0,142,128,5,0,144,128,32,0,144,128,5,0,146,128,5,0,148,128,5,0,150,128,32,0,150,128,5,0,152,128,5,0,154,128,5,0,156,128,5,0,158,128,5,0,160,128,32,0,160,128,5,0,162,128,5,0,164,128,5,0,166,128,5,0,168,128,32,0,168,128,5,0,170,128,32,0,170,128,5,0,172,128,5,0,174,128,32,0,174,128,46,0,174,128,5,0,176,128,32,0,176,128,46,0,176,128,5,0,178,128,32,0,178,128,5,0,180,128,5,0,182,128,5,0,184,128,5,0,186,128,5,0,188,128,5,0,190,128,5,0,192,128,5,0,194,128,5,0,196,128,5,0,198,128,5,0,200,128,5,0,202,128,5,0,204,128,5,0,206,128,5,0,208,128,5,0,210,128,5,0,212,128,5,0,214,128,5,0,216,128,5,0,218,128,5,0,220,128,5,0,222,128,5,0,224,128,5,2,226,128,5,35,226,128,5,68,226,128,5,101,226,128,5,134,226,128,5,167,226,128,5,200,226,128,5,233,226,128,5,12,227,128,5,45,227,128,5,78,227,128,5,111,227,128,5,144,227,128,5,177,227,128,5,210,227,128,5,243,227,128,5,22,228,128,5,55,228,128,5,88,228,128,5,121,228,128,5,154,228,128,5,187,228,128,5,220,228,128,5,253,228,128,5,32,229,128,5,65,229,128,5,98,229,128,5,131,229,128,5,164,229,128,16,164,229,128,30,164,229,128,44,164,229,128,5,197,229,128,5,230,229,128,5,9,230,128,32,9,230,128,5,42,230,128,5,75,230,128,5,108,230,128,32,108,230,128,5,141,230,128,5,174,230,128,5,207,230,128,32,207,230,128,46,207,230,128,5,240,230,128,5,19,231,128,5,52,231,128,5,85,231,128,32,85,231,128,46,85,231,128,5,118,231,128,5,151,231,128,5,184,231,128,32,184,231,128,46,184,231,128,5,217,231,128,5,250,231,128,5,29,232,128,32,29,232,128,46,29,232,128,5,62,232,128,32,62,232,128,46,62,232,128,5,95,232,128,5,128,232,128,32,128,232,128,46,128,232,128,5,161,232,128,5,194,232,128,5,227,232,128,5,6,233,128,5,39,233,128,5,72,233,128,5,105,233,128,5,138,233,128,5,171,233,128,5,204,233,128,5,237,233,128,5,16,234,128,5,49,234,128,5,82,234,128,5,115,234,128,5,148,234,128,5,181,234,128,5,214,234,128,5,247,234,128,5,26,235,128,5,59,235,128,16,59,235,128,30,59,235,128,44,59,235,128,5,92,235,128,5,125,235,128,5,158,235,128,5,191,235,128,5,224,235,128,5,3,236,128,5,36,236,128,5,69,236,128,5,102,236,128,5,135,236,128,5,168,236,128,5,201,236,128,5,234,236,128,5,13,237,128,5,46,237,128,5,79,237,128,5,112,237,128,5,145,237,128,5,178,237,128,5,211,237,128,5,244,237,128,5,23,238,128,5,56,238,128,5,89,238,128,5,122,238,128,5,155,238,128,5,188,238,128,5,221,238,128,5,254,238,128,5,33,239,128,5,66,239,128,5,99,239,128,5,132,239,128,5,165,239,128,5,198,239,128,5,231,239,128,5,10,240,128,5,43,240,128,5,76,240,128,5,109,240,128,5,142,240,128,5,175,240,128,5,208,240,128,5,241,240,128,32,241,240,128,5,20,241,128,5,53,241,128,5,86,241,128,5,119,241,128,5,152,241,128,5,185,241,128,5,218,241,128,5,251,241,128,5,30,242,128,5,63,242,128,5,96,242,128,5,129,242,128,5,162,242,128,5,195,242,128,5,228,242,128,5,7,243,128,5,40,243,128,5,73,243,128,5,106,243,128,5,139,243,128,5,172,243,128,5,205,243,128,5,238,243,128,5,17,244,128,5,50,244,128,5,83,244,128,5,116,244,128,5,149,244,128,5,182,244,128,5,215,244,128,5,248,244,128,5,27,245,128,5,60,245,128,5,93,245,128,5,126,245,128,5,159,245,128,5,192,245,128,5,225,245,128,5,4,246,128,5,37,246,128,5,70,246,128,5,103,246,128,5,136,246,128,5,169,246,128,5,202,246,128,5,235,246,128,5,14,247,128,5,47,247,128,5,80,247,128,5,113,247,128,5,146,247,128,5,179,247,128,5,212,247,128,5,245,247,128,5,24,248,128,5,57,248,128,5,90,248,128,5,123,248,128,5,156,248,128,5,189,248,128,5,222,248,128,5,255,248,128,5,34,249,128,5,67,249,128,5,100,249,128,5,133,249,128,5,166,249,128,5,199,249,128,5,232,249,128,5,11,250,128,5,44,250,128,5,77,250,128,5,110,250,128,5,143,250,128,5,176,250,128,5,209,250,128,5,242,250,128,5,21,251,128,5,54,251,128,5,87,251,128,5,120,251,128,5,153,251,128,5,186,251,128,5,219,251,0,2,2,3,0,0,4,3,2,0,18,3,0,0,0,4,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,6,5,0,0,8,5,128,32,0,5,0,0,10,5,128,16,0,5,128,30,0,5,128,44,0,5,0,0,12,5,0,0,14,5,128,32,0,5,128,46,0,5,0,0,16,5,0,2,18,5,7,23,18,5,0,0,20,5,128,32,0,5,0,0,22,5,0,0,24,5,128,32,0,5,0,0,26,5,128,32,0,5,128,46,0,5,0,0,28,5,2,0,48,5,128,32,0,5,0,0,50,5,0,0,0,6,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,6,7,0,0,8,7,2,0,30,7,0,2,32,7,7,30,32,7,0,0,34,7,128,16,0,5,128,30,0,5,128,44,0,5,0,0,36,7,2,0,42,7,128,16,0,5,128,30,0,5,128,44,0,5,0,0,44,7,2,0,54,7,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,56,7,0,0,58,7,0,2,60,7,7,142,60,7,0,0,62,7,0,0,64,7,2,0,78,7,0,2,80,7,0,9,80,7,0,0,82,7,2,0,90,7,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,92,7,0,0,94,7,0,2,96,7,7,16,96,7,0,0,98,7,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,100,7,2,0,110,7,0,2,112,7,7,51,112,7,0,0,114,7,0,0,116,7,0,0,0,8,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,6,9,0,0,8,9,0,2,10,9,0,9,10,9,0,0,12,9,0,0,14,9,0,2,16,9,7,30,16,9,0,0,18,9,0,0,20,9,0,2,22,9,7,37,22,9,0,0,24,9,128,32,0,5,128,46,0,5,0,0,26,9,2,0,34,9,0,2,36,9,7,37,36,9,0,0,38,9,2,0,50,9,0,2,52,9,7,35,53,9,0,0,55,9,2,0,59,9,0,2,61,9,7,14,62,9,0,0,64,9,2,0,90,9,0,2,92,9,0,9,92,9,0,0,94,9,2,0,102,9,0,2,104,9,7,51,104,9,0,0,106,9,128,32,0,5,0,0,108,9,2,0,120,9,128,32,0,5,0,0,122,9,2,0,142,9,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,144,9,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,146,9,128,32,0,5,128,46,0,5,0,0,148,9,128,32,0,5,128,46,0,5,0,0,150,9,128,16,0,5,128,30,0,5,128,44,0,5,0,0,152,9,128,16,0,5,128,30,0,5,128,44,0,5,0,0,154,9,2,0,160,9,0,2,162,9,0,9,162,9,0,0,164,9,2,0,184,9,128,32,0,5,0,0,186,9,128,32,0,5,0,0,188,9,2,0,62,10,128,32,0,5,0,0,64,10,128,32,0,5,0,0,66,10,128,32,0,5,0,0,68,10,128,32,0,5,0,0,70,10,128,32,0,5,128,46,0,5,0,0,72,10,128,32,0,5,128,46,0,5,0,0,74,10,128,32,0,5,0,0,76,10,128,32,0,5,0,0,78,10,128,32,0,5,0,0,80,10,128,32,0,5,0,0,82,10,128,16,0,5,128,30,0,5,128,44,0,5,0,0,84,10,128,16,0,5,128,30,0,5,128,44,0,5,0,0,86,10,128,32,0,5,0,0,88,10,128,32,0,5,0,0,90,10,2,0,126,10,128,32,0,5,128,46,0,5,0,0,128,10,128,32,0,5,128,46,0,5,0,0,130,10,2,0,138,10,128,32,0,5,128,46,0,5,0,0,140,10,128,32,0,5,128,46,0,5,0,0,142,10,0,0,144,10,128,32,0,5,128,46,0,5,0,0,146,10,2,0,150,10,128,32,0,5,128,46,0,5,0,0,152,10,128,32,0,5,128,46,0,5,0,0,154,10,2,0,188,10,128,32,0,5,0,0,190,10,128,32,0,5,0,0,192,10,2,0,24,11,0,2,26,11,7,128,26,11,0,0,28,11,2,0,54,11,0,2,56,11,0,9,56,11,0,0,58,11,2,0,76,11,128,32,0,5,0,0,78,11,2,0,100,11,0,2,102,11,7,142,102,11,0,0,104,11,2,0,116,11,0,2,118,11,7,163,118,11,0,0,120,11,0,2,122,11,7,12,124,11,0,0,126,11,0,2,128,11,7,93,128,11,0,2,2,12,0,0,4,12,128,32,0,5,0,0,6,12,0,0,8,12,0,0,10,12,128,32,0,5,0,0,12,12,128,32,0,5,0,2,14,12,0,9,14,12,0,0,16,12,0,2,18,12,0,9,18,12,0,0,20,12,0,2,22,12,7,37,22,12,0,0,24,12,2,0,28,12,0,2,30,12,7,23,30,12,0,0,32,12,2,0,50,12,0,2,52,12,7,114,52,12,0,0,54,12,0,2,56,12,7,98,57,12,0,0,59,12,2,0,75,12,0,2,77,12,0,9,77,12,0,0,79,12,0,2,81,12,7,16,81,12,0,0,83,12,128,32,0,5,0,2,85,12,7,148,89,12,0,0,91,12,2,0,95,12,0,2,97,12,7,156,97,12,0,0,99,12,128,32,0,5,0,0,101,12,128,32,0,5,0,0,103,12,128,32,0,5,0,0,105,12,128,32,0,5,0,2,107,12,7,215,109,12,0,0,111,12,128,32,0,5,0,2,113,12,7,16,113,12,0,0,115,12,128,32,0,5,0,2,117,12,7,51,117,12,0,0,119,12,128,32,0,5,0,0,121,12,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,123,12,2,0,129,12,128,32,0,5,128,46,0,5,0,0,131,12,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,133,12,128,32,0,5,128,46,0,5,0,0,135,12,128,32,0,5,0,0,137,12,128,32,0,5,0,0,139,12,128,32,0,5,0,0,141,12,128,32,0,5,0,0,143,12,128,32,0,5,128,46,0,5,0,2,145,12,7,16,145,12,0,0,147,12,128,32,0,5,0,0,149,12,128,32,0,5,0,2,151,12,7,142,151,12,0,0,153,12,128,32,0,5,0,0,155,12,128,32,0,5,0,2,157,12,7,32,170,12,0,0,172,12,128,32,0,5,0,2,174,12,7,78,178,12,0,0,180,12,128,32,0,5,0,2,182,12,7,35,183,12,0,0,185,12,128,32,0,5,0,2,187,12,7,182,74,13,0,0,76,13,128,32,0,5,0,2,78,13,7,58,78,13,0,0,80,13,2,0,98,13,0,2,100,13,7,44,100,13,0,0,102,13,0,0,104,13,0,2,106,13,0,9,106,13,0,0,108,13,2,0,118,13,128,32,0,5,128,46,0,5,0,0,120,13,0,2,132,13,0,0,134,13,0,0,136,13,128,32,0,5,0,0,138,13,128,32,0,5,128,46,0,5,0,0,140,13,128,32,0,5,0,0,142,13,128,32,0,5,0,0,144,13,0,0,146,13,0,2,148,13,0,9,148,13,0,0,150,13,2,0,192,13,128,32,0,5,0,0,194,13,2,0,242,13,0,2,2,14,0,0,0,15,0,0,6,16,0,0,8,16,2,0,198,16,0,2,200,16,7,44,200,16,0,0,202,16,2,0,144,17,0,2,146,17,7,12,148,17,0,0,150,17,2,0,170,17,0,2,172,17,7,177,172,17,0,0,174,17,2,0,116,18,0,2,118,18,7,245,119,18,0,0,121,18,2,0,137,18,0,0,0,19,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,0,0,0,21,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,23,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,25,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,128,32,0,112,0,0,0,27,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,29,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,31,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,33,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,35,128,16,0,5,128,21,0,5,128,26,0,5,128,31,0,5,128,36,0,5,128,41,0,5,128,46,0,5,128,51,0,5,128,5,0,112,0,0,0,37,128,16,0,5,128,22,0,5,128,28,0,5,128,34,0,5,128,40,0,5,128,46,0,5,128,52,0,5,128,5,0,112,0,2,2,39,0,2,2,41,0,0,0,42,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,128,46,0,112,0,0,6,43,0,0,8,43,128,32,0,5,0,0,10,43,0,0,12,43,128,32,0,5,0,0,14,43,0,0,16,43,128,32,0,5,0,0,18,43,0,0,20,43,128,32,0,5,128,46,0,5,0,0,22,43,128,16,0,5,128,30,0,5,128,44,0,5,0,0,24,43,2,0,28,43,128,32,0,5,128,46,0,5,0,0,30,43,0,0,0,44,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,45,0,0,8,45,128,32,0,5,0,0,10,45,2,0,16,45,128,32,0,5,0,0,18,45,0,0,20,45,128,32,0,5,0,0,22,45,128,32,0,5,0,0,24,45,128,32,0,5,128,46,0,5,0,0,0,46,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,47,0,0,8,47,128,32,0,5,0,0,10,47,128,32,0,5,0,0,12,47,128,32,0,5,0,0,14,47,128,32,0,5,0,0,16,47,128,32,0,5,128,46,0,5,0,0,18,47,128,32,0,5,0,0,20,47,128,32,0,5,0,0,0,48,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,5,0,112,128,32,0,112,128,46,0,112,128,5,0,120,128,32,0,120,0,0,6,49,0,0,8,49,0,0,10,49,128,32,0,5,0,0,12,49,2,0,16,49,128,32,0,5,0,0,18,49,128,32,0,5,0,0,20,49,0,0,22,49,128,32,0,5,0,0,24,49,2,0,28,49,0,0,0,50,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,51,0,0,8,51,2,0,12,51,128,32,0,5,0,0,14,51,0,0,16,51,2,0,20,51,128,32,0,5,128,46,0,5,0,0,22,51,0,0,24,51,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,26,51,0,0,28,51,128,16,0,5,128,30,0,5,128,44,0,5,0,0,30,51,0,0,32,51,2,0,36,51,128,32,0,5,128,46,0,5,0,0,38,51,0,0,40,51,128,32,0,5,0,0,42,51,2,0,48,51,0,0,0,52,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,5,0,112,128,32,0,112,0,0,6,53,0,0,8,53,0,0,10,53,128,32,0,5,0,0,12,53,2,0,16,53,128,32,0,5,0,0,18,53,128,32,0,5,0,0,20,53,0,0,0,54,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,5,0,112,128,32,0,112,0,0,6,55,128,32,0,5,128,46,0,5,0,0,8,55,0,0,10,55,128,32,0,5,0,0,12,55,128,32,0,5,0,0,14,55,0,0,16,55,128,32,0,5,0,0,18,55,2,0,22,55,128,32,0,5,0,0,24,55,128,32,0,5,128,46,0,5,0,0,26,55,128,32,0,5,0,0,0,56,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,57,0,0,8,57,128,32,0,5,0,0,10,57,0,0,12,57,128,32,0,5,128,46,0,5,0,0,14,57,128,32,0,5,0,0,16,57,128,32,0,5,0,0,18,57,128,32,0,5,0,0,20,57,128,32,0,5,128,46,0,5,0,0,22,57,2,0,26,57,0,0,0,58,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,59,128,32,0,5,0,0,8,59,128,32,0,5,128,46,0,5,0,0,10,59,2,0,14,59,128,32,0,5,0,0,16,59,128,32,0,5,128,46,0,5,0,0,18,59,128,32,0,5,0,0,20,59,0,0,22,59,128,32,0,5,0,0,24,59,128,32,0,5,128,46,0,5,0,0,26,59,0,0,0,60,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,61,128,32,0,5,0,0,8,61,0,0,10,61,128,32,0,5,0,0,12,61,128,32,0,5,128,46,0,5,0,0,14,61,128,32,0,5,0,0,16,61,0,0,0,62,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,63,0,0,8,63,0,0,10,63,128,32,0,5,0,0,12,63,128,32,0,5,0,0,14,63,128,32,0,5,0,0,16,63,128,32,0,5,0,0,18,63,128,32,0,5,0,0,20,63,128,32,0,5,0,0,0,64,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,65,128,32,0,5,128,46,0,5,0,0,8,65,128,32,0,5,0,0,10,65,0,0,12,65,128,32,0,5,0,0,14,65,128,32,0,5,0,0,16,65,128,32,0,5,0,0,18,65,128,32,0,5,128,46,0,5,0,0,20,65,128,32,0,5,0,0,22,65,0,0,24,65,128,32,0,5,0,0,26,65,128,32,0,5,0,0,28,65,128,32,0,5,0,0,30,65,128,32,0,5,0,0,32,65,2,0,40,65,128,32,0,5,0,0,42,65,0,0,44,65,0,0,0,66,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,67,128,32,0,5,0,0,8,67,2,0,12,67,128,32,0,5,128,46,0,5,0,0,14,67,0,0,16,67,2,0,20,67,0,0,0,68,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,69,128,32,0,5,128,46,0,5,0,0,8,69,2,0,14,69,128,32,0,5,128,46,0,5,0,0,16,69,128,32,0,5,0,0,18,69,128,32,0,5,0,0,20,69,0,0,22,69,128,32,0,5,0,0,24,69,2,0,30,69,128,16,0,5,128,30,0,5,128,44,0,5,0,0,32,69,0,0,0,70,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,128,46,0,112,0,0,6,71,0,0,8,71,2,0,30,71,128,32,0,5,128,46,0,5,0,0,32,71,2,0,42,71,128,32,0,5,0,0,44,71,128,32,0,5,0,0,46,71,128,32,0,5,0,0,48,71,0,0,50,71,128,32,0,5,128,46,0,5,0,0,52,71,128,32,0,5,0,0,54,71,0,0,56,71,128,32,0,5,0,0,58,71,128,32,0,5,128,46,0,5,0,0,60,71,0,0,0,72,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,73,0,0,8,73,128,32,0,5,0,0,10,73,128,32,0,5,0,0,12,73,2,0,16,73,128,32,0,5,0,0,18,73,128,32,0,5,0,0,20,73,128,32,0,5,0,0,22,73,0,0,24,73,128,32,0,5,0,0,26,73,0,0,0,74,128,16,0,5,128,20,0,5,128,24,0,5,128,28,0,5,128,32,0,5,128,36,0,5,128,40,0,5,128,44,0,5,128,48,0,5,128,52,0,5,128,56,0,5,0,0,6,75,0,0,8,75,128,32,0,5,0,0,10,75,128,32,0,5,0,0,12,75,0,0,14,75,128,32,0,5,0,0,16,75,0,0,0,76,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,0,0,6,77,0,0,8,77,128,32,0,5,128,46,0,5,0,0,10,77,0,0,12,77,128,32,0,5,128,46,0,5,0,0,14,77,0,0,16,77,128,32,0,5,0,0,18,77,0,0,20,77,128,32,0,5,0,0,22,77,2,0,28,77,128,32,0,5,0,0,30,77,0,0,32,77,0,0,34,77,128,32,0,5,0,0,36,77,2,0,54,77,128,32,0,5,0,0,56,77,2,0,62,77,128,32,0,5,0,0,0,78,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,32,0,112,128,5,0,120,128,32,0,120,0,0,6,79,0,0,8,79,128,32,0,5,0,0,10,79,2,0,14,79,128,16,0,5,128,30,0,5,128,44,0,5,0,0,16,79,128,32,0,5,0,0,18,79,2,0,22,79,128,16,0,5,128,30,0,5,128,44,0,5,0,0,24,79,2,0,34,79,0,0,0,80,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,128,5,0,112,128,5,0,120,128,32,0,120,0,0,6,81,0,0,8,81,128,32,0,5,0,0,10,81,128,32,0,5,0,0,12,81,0,0,14,81,128,32,0,5,0,0,16,81,128,32,0,5,0,0,18,81,128,32,0,5,0,0,20,81,2,0,24,81,128,32,0,5,0,0,0,82,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,83,128,32,0,5,0,0,8,83,0,0,10,83,128,32,0,5,0,0,12,83,2,0,20,83,128,32,0,5,128,46,0,5,0,0,22,83,0,0,24,83,128,32,0,5,0,0,26,83,2,0,30,83,128,32,0,5,0,0,32,83,128,32,0,5,0,0,34,83,128,32,0,5,128,46,0,5,0,0,36,83,2,0,40,83,128,32,0,5,128,46,0,5,0,0,42,83,2,0,46,83,128,32,0,5,0,0,48,83,128,32,0,5,128,46,0,5,0,0,50,83,0,0,0,84,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,85,0,0,8,85,128,32,0,5,0,0,10,85,0,0,12,85,128,32,0,5,128,46,0,5,0,0,14,85,0,0,16,85,0,0,18,85,128,32,0,5,0,0,20,85,128,32,0,5,128,46,0,5,0,0,0,86,128,16,0,5,128,20,0,5,128,24,0,5,128,28,0,5,128,32,0,5,128,36,0,5,128,40,0,5,128,44,0,5,128,48,0,5,128,52,0,5,128,56,0,5,0,0,6,87,0,0,8,87,128,32,0,5,0,0,10,87,128,32,0,5,0,0,12,87,128,32,0,5,128,46,0,5,0,0,0,88,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,128,52,0,5,0,0,6,89,0,0,8,89,2,0,16,89,128,32,0,5,0,0,18,89,0,0,20,89,0,0,0,90,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,91,0,0,8,91,128,32,0,5,0,0,10,91,128,32,0,5,0,0,12,91,128,32,0,5,0,0,14,91,0,0,16,91,128,32,0,5,0,0,0,92,128,16,0,5,128,19,0,5,128,22,0,5,128,25,0,5,128,28,0,5,128,31,0,5,128,34,0,5,128,37,0,5,128,40,0,5,128,43,0,5,128,46,0,5,128,49,0,5,0,0,6,93,0,0,8,93,128,32,0,5,0,0,10,93,0,0,12,93,128,32,0,5,0,0,14,93,128,32,0,5,0,0,16,93,128,32,0,5,128,46,0,5,0,0,18,93,128,32,0,5,128,46,0,5,0,0,20,93,128,32,0,5,0,0,22,93,128,32,0,5,0,0,24,93,128,32,0,5,0,0,26,93,128,16,0,5,128,30,0,5,128,44,0,5,0,0,28,93,0,0,30,93,128,32,0,5,0,0,32,93,2,0,38,93,128,32,0,5,0,0,40,93,128,32,0,5,0,0,42,93,128,32,0,5,0,0,44,93,128,32,0,5,0,0,46,93,128,32,0,5,0,0,48,93,2,0,54,93,128,32,0,5,0,0,56,93,128,32,0,5,0,0,58,93,128,16,0,5,128,30,0,5,128,44,0,5,0,0,60,93,2,0,64,93,128,32,0,5,0,0,66,93,128,32,0,5,0,0,68,93,128,32,0,5,0,0,70,93,128,32,0,5,0,0,72,93,128,32,0,5,0,0,74,93,128,32,0,5,0,0,76,93,0,0,78,93,128,32,0,5,0,0,80,93,0,0,82,93,128,32,0,5,0,0,84,93,0,0,86,93,128,32,0,5,0,0,88,93,128,32,0,5,0,0,90,93,128,32,0,5,0,0,92,93,0,0,94,93,128,32,0,5,0,0,96,93,2,0,102,93,128,32,0,5,0,0,104,93,128,32,0,5,0,0,106,93,2,0,126,93,0,2,2,94,0,2,4,96,0,0,6,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,8,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,10,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,12,96,0,0,14,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,16,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,18,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,20,96,128,32,0,5,0,0,22,96,128,32,0,5,0,0,24,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,26,96,128,32,0,5,0,0,28,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,30,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,32,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,34,96,128,32,0,5,0,0,36,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,38,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,40,96,0,0,42,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,44,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,46,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,48,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,50,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,52,96,0,0,54,96,128,32,0,5,0,0,56,96,128,32,0,5,0,0,58,96,128,32,0,5,0,0,60,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,62,96,0,0,64,96,0,0,66,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,68,96,128,32,0,5,0,0,70,96,128,32,0,5,0,0,72,96,128,32,0,5,0,0,74,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,76,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,78,96,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,80,96,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,82,96,128,16,0,5,128,30,0,5,128,44,0,5,0,0,84,96,0,0,86,96,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,88,96,0,0,90,96,128,32,0,5,0,0,92,96,128,32,0,5,0,0,94,96,128,32,0,5,0,2,96,96,0,0,98,96,128,32,0,5,128,46,0,5,0,0,100,96,128,32,0,5,0,0,102,96,128,32,0,5,0,0,104,96,128,32,0,5,0,0,106,96,128,32,0,5,0,0,108,96,128,32,0,5,0,0,110,96,128,32,0,5,0,0,112,96,128,32,0,5,0,0,114,96,128,32,0,5,0,0,116,96,128,32,0,5,0,0,118,96,128,32,0,5,128,46,0,5,0,0,120,96,128,32,0,5,128,46,0,5,0,0,122,96,128,32,0,5,0,0,124,96,128,32,0,5,0,0,126,96,128,32,0,5,0,0,128,96,128,32,0,5,0,0,130,96,128,32,0,5,0,0,132,96,128,32,0,5,0,0,134,96,128,32,0,5,0,0,136,96,128,32,0,5,0,0,138,96,128,32,0,5,0,0,140,96,128,32,0,5,0,0,142,96,128,32,0,5,0,0,144,96,128,32,0,5,0,0,146,96,128,32,0,5,0,0,148,96,128,32,0,5,0,0,150,96,128,32,0,5,0,0,152,96,128,32,0,5,0,0,154,96,128,32,0,5,0,0,156,96,128,32,0,5,0,0,158,96,128,32,0,5,0,0,160,96,128,32,0,5,0,0,162,96,128,32,0,5,0,0,164,96,128,32,0,5,0,0,166,96,128,32,0,5,0,0,168,96,128,32,0,5,0,0,170,96,128,32,0,5,0,0,172,96,128,32,0,5,0,0,174,96,128,32,0,5,0,0,176,96,128,32,0,5,0,0,178,96,128,32,0,5,0,0,180,96,128,32,0,5,0,0,182,96,128,32,0,5,0,0,184,96,128,32,0,5,0,0,186,96,128,32,0,5,0,0,188,96,128,32,0,5,0,0,190,96,128,32,0,5,0,0,192,96,128,32,0,5,0,0,194,96,128,32,0,5,0,0,196,96,128,32,0,5,0,0,198,96,128,32,0,5,0,0,200,96,128,32,0,5,0,0,202,96,128,32,0,5,0,0,204,96,128,32,0,5,0,0,206,96,128,32,0,5,0,0,208,96,128,32,0,5,0,0,210,96,128,32,0,5,0,0,212,96,128,32,0,5,0,0,214,96,128,32,0,5,0,0,216,96,128,32,0,5,0,2,4,97,0,0,6,97,128,32,0,5,128,46,0,5,0,0,8,97,128,32,0,5,0,0,10,97,128,32,0,5,0,0,12,97,128,32,0,5,128,46,0,5,0,0,14,97,128,32,0,5,128,46,0,5,0,0,16,97,128,32,0,5,128,46,0,5,128,5,0,112,128,32,0,112,0,0,18,97,128,32,0,5,0,0,20,97,128,32,0,5,0,0,22,97,128,32,0,5,0,0,24,97,128,32,0,5,0,0,26,97,128,32,0,5,128,46,0,5,0,0,28,97,128,32,0,5,0,0,30,97,128,32,0,5,0,0,32,97,128,32,0,5,0,0,34,97,128,32,0,5,0,0,36,97,128,32,0,5,0,0,38,97,128,32,0,5,0,0,40,97,128,32,0,5,128,46,0,5,0,0,42,97,128,32,0,5,128,46,0,5,0,0,44,97,128,32,0,5,128,46,0,5,0,2,46,97,128,32,0,5,0,9,46,97,128,32,0,5,0,0,48,97,128,32,0,5,0,0,50,97,128,32,0,5,128,46,0,5,0,0,52,97,128,32,0,5,0,0,54,97,128,32,0,5,0,2,56,97,128,32,0,5,0,9,56,97,128,32,0,5,0,0,58,97,128,32,0,5,0,0,60,97,128,32,0,5,0,0,62,97,128,32,0,5,0,0,64,97,128,32,0,5,0,0,66,97,128,32,0,5,0,0,68,97,128,32,0,5,0,0,70,97,128,32,0,5,128,46,0,5,0,0,72,97,128,32,0,5,0,0,74,97,128,32,0,5,128,46,0,5,0,0,76,97,128,32,0,5,0,0,78,97,128,32,0,5,0,0,80,97,128,32,0,5,0,0,82,97,128,32,0,5,128,46,0,5,0,0,84,97,128,32,0,5,128,46,0,5,0,0,86,97,128,32,0,5,0,0,88,97,128,32,0,5,0,0,90,97,128,32,0,5,0,0,92,97,128,32,0,5,0,0,94,97,128,32,0,5,0,2,96,97,128,32,0,5,0,9,96,97,128,32,0,5,0,0,98,97,128,32,0,5,128,46,0,5,0,0,100,97,0,0,102,97,128,32,0,5,0,2,104,97,128,32,0,5,0,9,104,97,128,32,0,5,0,16,104,97,128,32,0,5,0,0,106,97,128,32,0,5,0,0,108,97,128,32,0,5,0,0,110,97,128,32,0,5,0,0,112,97,128,32,0,5,0,0,114,97,128,32,0,5,128,46,0,5,0,0,116,97,128,32,0,5,0,0,118,97,128,32,0,5,0,0,120,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,122,97,128,32,0,5,0,0,124,97,128,32,0,5,0,0,126,97,128,32,0,5,0,0,128,97,128,32,0,5,0,0,130,97,128,32,0,5,0,0,132,97,128,32,0,5,0,0,134,97,128,32,0,5,0,0,136,97,128,32,0,5,0,0,138,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,140,97,128,32,0,5,0,0,142,97,128,32,0,5,128,46,0,5,0,0,144,97,128,32,0,5,0,0,146,97,128,32,0,5,0,0,148,97,128,32,0,5,0,0,150,97,128,32,0,5,128,46,0,5,0,0,152,97,128,32,0,5,0,0,154,97,128,32,0,5,0,0,156,97,128,32,0,5,128,46,0,5,0,0,158,97,128,32,0,5,0,0,160,97,128,32,0,5,0,0,162,97,128,32,0,5,128,46,0,5,0,2,164,97,128,32,0,5,0,9,164,97,128,32,0,5,0,0,166,97,128,32,0,5,0,0,168,97,128,32,0,5,0,0,170,97,128,32,0,5,0,0,172,97,128,32,0,5,128,46,0,5,0,0,174,97,128,32,0,5,0,0,176,97,128,32,0,5,0,2,178,97,128,32,0,5,128,46,0,5,0,9,178,97,128,32,0,5,0,0,180,97,128,32,0,5,128,46,0,5,0,0,182,97,128,32,0,5,128,46,0,5,0,2,184,97,128,32,0,5,0,9,184,97,128,32,0,5,0,0,186,97,128,32,0,5,0,0,188,97,128,32,0,5,0,2,190,97,128,32,0,5,0,9,190,97,128,32,0,5,0,16,190,97,128,32,0,5,128,46,0,5,0,23,190,97,128,32,0,5,0,30,190,97,128,32,0,5,0,37,190,97,128,32,0,5,0,44,190,97,128,32,0,5,0,0,192,97,128,32,0,5,128,46,0,5,0,2,194,97,128,32,0,5,0,9,194,97,128,32,0,5,0,0,196,97,128,32,0,5,0,0,198,97,128,32,0,5,0,0,200,97,128,32,0,5,128,46,0,5,0,2,202,97,128,32,0,5,0,9,202,97,128,32,0,5,0,0,204,97,128,32,0,5,0,0,206,97,128,32,0,5,0,0,208,97,128,32,0,5,0,0,210,97,128,32,0,5,0,0,212,97,128,32,0,5,0,0,214,97,128,32,0,5,0,0,216,97,128,32,0,5,0,0,218,97,128,32,0,5,128,46,0,5,0,0,220,97,128,32,0,5,0,0,222,97,128,32,0,5,128,46,0,5,0,2,224,97,128,32,0,5,0,9,224,97,0,16,224,97,0,0,226,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,228,97,128,32,0,5,0,0,230,97,128,32,0,5,128,46,0,5,0,0,232,97,128,16,0,5,128,30,0,5,128,44,0,5,0,0,234,97,128,32,0,5,0,2,236,97,128,32,0,5,128,46,0,5,0,9,236,97,128,32,0,5,0,0,238,97,128,32,0,5,0,0,240,97,128,32,0,5,128,46,0,5,0,2,242,97,128,32,0,5,0,9,242,97,128,32,0,5,128,46,0,5,0,0,244,97,128,32,0,5,0,2,246,97,128,32,0,5,0,9,246,97,128,32,0,5,128,46,0,5,0,16,246,97,128,32,0,5,128,46,0,5,0,23,246,97,128,32,0,5,0,30,246,97,128,32,0,5,128,46,0,5,0,37,246,97,128,32,0,5,0,44,246,97,128,32,0,5,0,51,246,97,128,32,0,5,0,58,246,97,128,32,0,5,128,46,0,5,0,65,246,97,128,32,0,5,0,72,246,97,128,32,0,5,0,79,246,97,128,32,0,5,128,46,0,5,0,86,246,97,128,32,0,5,0,93,246,97,128,32,0,5,0,0,248,97,128,32,0,5,0,0,250,97,128,32,0,5,0,0,252,97,128,32,0,5,0,2,4,98,0,0,6,98,128,32,0,5,128,46,0,5,0,0,8,98,128,32,0,5,128,46,0,5,0,0,10,98,128,32,0,5,128,46,0,5,0,0,12,98,128,32,0,5,128,46,0,5,0,0,14,98,128,32,0,5,128,46,0,5,0,0,16,98,128,32,0,5,128,46,0,5,0,0,18,98,128,32,0,5,128,46,0,5,0,0,20,98,128,32,0,5,0,0,22,98,128,32,0,5,128,46,0,5,0,0,24,98,128,32,0,5,128,46,0,5,0,0,26,98,128,32,0,5,128,46,0,5,0,0,28,98,128,32,0,5,128,46,0,5,0,0,30,98,128,32,0,5,128,46,0,5,0,0,32,98,128,32,0,5,128,46,0,5,0,0,34,98,128,32,0,5,128,46,0,5,0,0,36,98,128,32,0,5,128,46,0,5,0,0,38,98,128,32,0,5,128,46,0,5,0,0,40,98,128,32,0,5,128,46,0,5,0,0,42,98,128,32,0,5,128,46,0,5,0,0,44,98,128,32,0,5,128,46,0,5,0,0,46,98,128,32,0,5,128,46,0,5,0,0,48,98,128,32,0,5,128,46,0,5,0,0,50,98,128,32,0,5,128,46,0,5,0,0,52,98,128,32,0,5,128,46,0,5,0,0,54,98,128,32,0,5,128,46,0,5,0,0,56,98,128,32,0,5,0,0,58,98,128,32,0,5,0,0,60,98,128,32,0,5,128,46,0,5,0,0,62,98,128,32,0,5,128,46,0,5,0,0,64,98,128,32,0,5,128,46,0,5,0,0,66,98,128,32,0,5,128,46,0,5,0,0,68,98,128,32,0,5,128,46,0,5,0,0,70,98,128,32,0,5,128,46,0,5,0,0,72,98,128,32,0,5,128,46,0,5,0,0,74,98,128,32,0,5,0,0,76,98,128,32,0,5,128,46,0,5,0,0,78,98,128,32,0,5,128,46,0,5,0,0,80,98,128,32,0,5,0,0,82,98,128,32,0,5,128,46,0,5,0,0,84,98,128,32,0,5,128,46,0,5,0,0,86,98,128,32,0,5,128,46,0,5,0,0,88,98,128,32,0,5,128,46,0,5,0,0,90,98,128,32,0,5,128,46,0,5,0,0,92,98,128,32,0,5,0,0,94,98,128,32,0,5,0,0,96,98,128,32,0,5,0,0,98,98,128,32,0,5,0,2,100,98,0,0,102,98,128,32,0,5,0,2,104,98,0,9,104,98,0,0,106,98,128,32,0,5,0,2,108,98,7,16,108,98,0,0,110,98,128,32,0,5,0,2,112,98,7,30,112,98,0,0,114,98,128,32,0,5,0,2,116,98,7,16,116,98,0,0,118,98,128,32,0,5,0,2,120,98,7,135,120,98,0,2,4,99,0,0,6,99,128,32,0,5,0,0,8,99,128,32,0,5,0,0,10,99,128,32,0,5,0,0,12,99,128,32,0,5,0,0,14,99,128,32,0,5,0,0,16,99,128,32,0,5,0,0,18,99,128,32,0,5,0,0,20,99,128,32,0,5,0,0,22,99,128,32,0,5,0,0,24,99,128,32,0,5,0,0,26,99,128,32,0,5,0,0,28,99,128,32,0,5,0,0,30,99,128,32,0,5,0,0,32,99,128,32,0,5,0,0,34,99,128,32,0,5,0,0,36,99,128,32,0,5,0,0,38,99,128,32,0,5,0,0,40,99,128,32,0,5,0,0,42,99,128,32,0,5,0,0,44,99,128,32,0,5,0,0,46,99,128,32,0,5,0,0,48,99,128,32,0,5,0,0,50,99,128,32,0,5,0,0,52,99,128,32,0,5,0,0,54,99,128,32,0,5,0,0,56,99,128,32,0,5,0,0,58,99,128,32,0,5,128,46,0,5,0,0,60,99,128,32,0,5,0,0,62,99,128,32,0,5,0,0,64,99,128,32,0,5,0,0,66,99,128,32,0,5,0,0,68,99,128,32,0,5,0,0,70,99,128,32,0,5,0,0,72,99,128,32,0,5,0,0,74,99,128,32,0,5,0,0,76,99,128,32,0,5,0,0,78,99,128,32,0,5,0,0,80,99,128,32,0,5,0,0,82,99,128,32,0,5,0,0,84,99,128,32,0,5,0,0,86,99,128,32,0,5,0,0,88,99,128,32,0,5,0,0,90,99,128,32,0,5,0,0,92,99,128,32,0,5,0,0,94,99,128,32,0,5,0,0,96,99,128,32,0,5,0,0,98,99,128,32,0,5,0,0,100,99,128,32,0,5,0,0,102,99,128,32,0,5,0,0,104,99,128,32,0,5,0,0,106,99,128,32,0,5,0,0,108,99,128,32,0,5,0,0,110,99,128,32,0,5,0,0,112,99,128,32,0,5,0,0,114,99,128,32,0,5,0,0,116,99,128,32,0,5,0,0,118,99,128,32,0,5,0,0,120,99,128,32,0,5,0,0,122,99,128,32,0,5,0,0,124,99,128,32,0,5,0,0,126,99,128,32,0,5,0,0,128,99,128,32,0,5,0,0,130,99,128,32,0,5,0,0,132,99,128,32,0,5,0,0,134,99,128,32,0,5,0,0,136,99,128,32,0,5,0,0,138,99,128,32,0,5,0,0,140,99,128,32,0,5,0,0,142,99,128,32,0,5,0,0,144,99,128,32,0,5,0,0,146,99,128,32,0,5,0,0,148,99,128,32,0,5,0,0,150,99,128,32,0,5,0,0,152,99,128,32,0,5,0,0,154,99,128,32,0,5,0,0,156,99,128,32,0,5,0,0,158,99,128,32,0,5,0,0,160,99,128,32,0,5,0,0,162,99,128,32,0,5,0,0,164,99,128,32,0,5,0,0,166,99,128,32,0,5,0,0,168,99,128,32,0,5,0,0,170,99,128,32,0,5,0,0,172,99,128,32,0,5,0,0,174,99,128,32,0,5,0,0,176,99,128,32,0,5,0,2,4,100,0,0,6,100,128,32,0,5,0,0,8,100,0,0,10,100,128,32,0,5,0,0,12,100,128,32,0,5,0,0,14,100,128,32,0,5,0,0,16,100,128,32,0,5,128,46,0,5,0,0,18,100,128,32,0,5,0,0,20,100,128,32,0,5,0,0,22,100,128,32,0,5,0,0,24,100,128,32,0,5,0,0,26,100,128,32,0,5,0,0,28,100,128,32,0,5,128,46,0,5,0,0,30,100,128,32,0,5,0,0,32,100,128,32,0,5,128,46,0,5,0,0,34,100,128,32,0,5,0,0,36,100,128,32,0,5,0,0,38,100,128,32,0,5,0,0,40,100,128,32,0,5,0,0,42,100,128,32,0,5,0,0,44,100,128,32,0,5,0,0,46,100,128,32,0,5,128,46,0,5,0,0,48,100,128,32,0,5,0,0,50,100,0,0,52,100,128,32,0,5,128,46,0,5,0,0,54,100,128,32,0,5,0,0,56,100,128,32,0,5,0,0,58,100,128,32,0,5,0,0,60,100,128,32,0,5,0,0,62,100,128,32,0,5,0,0,64,100,128,32,0,5,0,0,66,100,128,32,0,5,0,0,68,100,128,32,0,5,128,46,0,5,0,0,70,100,128,32,0,5,0,0,72,100,128,32,0,5,0,0,74,100,128,32,0,5,0,0,76,100,128,32,0,5,128,46,0,5,0,0,78,100,128,32,0,5,0,0,80,100,128,32,0,5,0,0,82,100,128,32,0,5,0,0,84,100,128,32,0,5,0,0,86,100,0,2,4,101,0,0,6,101,128,32,0,5,128,46,0,5,0,0,8,101,128,32,0,5,0,0,10,101,128,32,0,5,0,0,12,101,128,32,0,5,128,46,0,5,0,0,14,101,128,32,0,5,128,46,0,5,0,0,16,101,128,32,0,5,0,0,18,101,2,0,24,101,128,32,0,5,0,0,26,101,128,32,0,5,128,46,0,5,0,0,28,101,128,32,0,5,128,46,0,5,0,0,30,101,128,32,0,5,128,46,0,5,0,0,32,101,128,32,0,5,0,0,34,101,0,0,36,101,128,32,0,5,0,0,38,101,128,32,0,5,0,0,40,101,128,32,0,5,0,0,42,101,0,0,44,101,128,32,0,5,0,0,46,101,0,0,48,101,128,32,0,5,0,2,50,101,7,156,50,101,0,2,51,101,7,184,51,101,0,2,4,102,0,0,6,102,128,32,0,5,128,46,0,5,128,5,0,112,0,0,8,102,128,32,0,5,128,46,0,5,0,0,10,102,128,32,0,5,128,46,0,5,0,0,12,102,0,0,14,102,128,32,0,5,128,46,0,5,0,0,16,102,128,32,0,5,128,46,0,5,0,0,18,102,128,32,0,5,128,46,0,5,0,2,20,102,7,16,20,102,0,0,22,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,24,102,7,16,24,102,0,0,26,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,28,102,128,32,0,5,0,0,30,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,32,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,34,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,36,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,38,102,7,79,38,102,0,0,40,102,128,32,0,5,128,46,0,5,0,0,42,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,44,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,46,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,48,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,50,102,2,0,54,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,56,102,7,16,56,102,0,0,58,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,60,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,62,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,64,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,66,102,0,0,68,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,70,102,7,23,70,102,0,0,72,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,74,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,76,102,2,0,80,102,0,2,82,102,7,37,82,102,0,0,84,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,86,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,88,102,128,32,0,5,128,46,0,5,0,0,90,102,2,0,96,102,128,32,0,5,128,46,0,5,0,0,98,102,128,32,0,5,128,46,0,5,0,0,100,102,0,0,102,102,128,32,0,5,128,46,0,5,0,0,104,102,0,0,106,102,0,2,108,102,7,16,108,102,0,0,110,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,112,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,114,102,128,32,0,5,128,46,0,5,0,0,116,102,2,0,128,102,128,32,0,5,128,46,0,5,0,0,130,102,0,2,132,102,7,51,132,102,0,0,134,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,136,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,138,102,2,0,142,102,0,2,144,102,7,37,144,102,0,0,146,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,148,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,150,102,2,0,158,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,160,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,162,102,2,0,166,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,168,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,170,102,0,2,172,102,7,37,172,102,0,0,174,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,176,102,128,32,0,5,0,9,176,102,7,30,176,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,37,176,102,7,51,176,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,58,176,102,7,72,176,102,128,32,0,5,0,0,178,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,180,102,7,30,180,102,0,0,182,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,184,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,186,102,0,0,188,102,0,2,190,102,7,16,190,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,23,190,102,0,30,190,102,0,0,192,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,194,102,7,16,194,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,23,194,102,0,30,194,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,37,194,102,7,79,194,102,0,0,196,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,2,198,102,7,44,198,102,0,0,200,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,128,5,0,112,0,2,202,102,7,16,202,102,0,0,204,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,206,102,128,16,0,5,128,30,0,5,128,44,0,5,0,2,208,102,0,9,208,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,210,102,0,2,212,102,7,30,212,102,0,0,214,102,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,216,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,218,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,220,102,7,16,220,102,128,32,0,5,128,46,0,5,0,0,222,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,224,102,0,2,226,102,128,32,0,5,128,46,0,5,0,9,226,102,128,32,0,5,128,46,0,5,0,0,228,102,128,16,0,5,128,30,0,5,128,44,0,5,0,0,230,102,128,32,0,5,128,46,0,5,0,0,232,102,128,32,0,5,128,46,0,5,0,2,234,102,0,9,234,102,128,32,0,5,128,46,0,5,0,16,234,102,7,44,234,102,0,0,236,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,238,102,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,240,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,242,102,2,0,246,102,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,248,102,7,58,248,102,0,0,250,102,128,32,0,5,128,46,0,5,0,2,252,102,0,9,252,102,0,2,4,103,0,9,4,103,0,0,6,103,128,5,0,112,0,0,8,103,128,5,0,112,128,5,0,120,0,0,10,103,0,0,12,103,128,5,0,112,0,2,14,103,7,30,14,103,0,0,16,103,128,5,0,112,0,2,18,103,7,44,18,103,0,0,20,103,128,32,0,5,0,0,22,103,0,0,24,103,128,5,0,112,0,2,26,103,7,114,26,103,0,2,27,103,7,177,27,103,0,2,28,103,0,0,30,103,0,0,32,103,2,0,128,103,0,2,130,103,7,86,130,103,0,0,132,103,128,5,0,112,0,0,134,103,128,5,0,112,0,0,136,103,0,0,138,103,128,5,0,112,0,2,140,103,7,107,140,103,0,2,141,103,7,147,142,103,0,2,143,103,7,125,155,103,0,2,4,104,0,0,6,104,0,0,8,104,2,0,148,104,128,32,0,5,0,0,150,104,2,0,154,104,128,32,0,5,0,0,156,104,2,0,208,104,0,2,4,105,0,0,6,105,0,0,8,105,2,0,66,105,128,32,0,5,0,0,68,105,2,0,132,105,128,32,0,5,0,0,134,105,0,0,136,105,0,2,4,106,0,0,6,106,0,0,8,106,2,0,118,106,0,2,4,107,0,0,6,107,0,0,8,107,2,0,142,107,0,2,4,108,0,0,6,108,0,0,8,108,2,0,138,108,0,2,4,109,0,0,6,109,0,0,8,109,2,0,104,109,0,2,4,110,0,0,6,110,0,0,8,110,2,0,152,110,0,2,4,111,0,0,6,111,0,0,8,111,2,0,152,111,0,2,4,112,0,0,6,112,0,0,8,112,2,0,40,112,128,32,0,5,0,0,42,112,2,0,68,112,128,32,0,5,0,0,70,112,2,0,78,112,128,32,0,5,0,0,80,112,2,0,90,112,128,32,0,5,0,0,92,112,128,32,0,5,0,0,94,112,128,32,0,5,0,0,96,112,128,32,0,5,0,0,98,112,2,0,108,112,128,32,0,5,0,0,110,112,128,32,0,5,0,0,112,112,2,0,152,112,128,32,0,5,0,2,4,113,0,0,6,113,0,0,8,113,2,0,158,113,0,2,160,113,7,189,161,113,0,2,162,113,7,28,163,113,0,2,164,113,7,217,165,113,0,2,166,113,7,112,167,113,0,2,168,113,7,254,168,113,0,2,170,113,7,231,171,113,0,2,172,113,7,112,173,113,0,2,174,113,7,147,175,113,0,2,176,113,7,7,177,113,0,2,178,113,7,224,179,113,0,2,180,113,7,12,182,113,0,2,183,113,7,217,184,113,0,2,185,113,7,16,185,113,0,0,187,113,128,5,0,112,128,5,0,120,0,0,189,113,128,5,0,112,0,0,191,113,128,5,0,112,0,2,193,113,7,56,194,113,0,0,196,113,128,5,0,112,0,0,198,113,128,5,0,112,0,2,200,113,7,44,200,113,0,2,201,113,7,189,202,113,0,2,203,113,7,126,204,113,0,2,205,113,7,140,206,113,0,2,207,113,7,182,208,113,0,2,209,113,7,140,210,113,0,2,211,113,7,30,211,113,0,0,213,113,128,5,0,112,0,2,215,113,0,9,215,113,0,0,217,113,128,5,0,112,0,2,219,113,7,79,219,113,0,0,221,113,128,5,0,112,0,2,223,113,7,121,223,113,0,2,224,113,7,254,224,113,0,0,226,113,128,32,0,5,128,46,0,5,0,2,228,113,7,149,228,113,0,2,229,113,7,105,230,113,0,2,231,113,0,0,233,113,128,32,0,5,0,2,235,113,7,37,235,113,0,0,237,113,128,32,0,5,0,2,239,113,7,107,239,113,0,0,241,113,128,32,0,5,0,2,243,113,7,156,243,113,0,2,244,113,7,231,245,113,0,2,246,113,7,56,247,113,0,2,248,113,7,168,249,113,0,2,4,114,0,0,6,114,0,0,8,114,2,0,132,114,0,2,4,115,0,0,6,115,0,0,8,115,2,0,54,115,128,32,0,5,0,0,56,115,2,0,70,115,128,32,0,5,0,0,72,115,2,0,84,115,128,32,0,5,0,0,86,115,2,0,130,115,0,2,132,115,7,217,133,115,0,2,4,116,0,0,6,116,0,0,8,116,2,0,102,116,128,5,0,112,0,0,104,116,2,0,118,116,128,5,0,112,0,0,120,116,128,5,0,112,0,0,122,116,128,5,0,112,0,0,124,116,2,0,146,116,128,32,0,5,0,0,148,116,2,0,192,116,128,32,0,5,0,0,194,116,0,0,196,116,0,2,198,116,7,226,198,116,0,0,200,116,128,32,0,5,0,0,202,116,128,32,0,5,128,46,0,5,0,0,204,116,128,32,0,5,0,0,206,116,128,32,0,5,0,2,208,116,7,114,208,116,0,2,209,116,7,86,209,116,0,0,211,116,128,32,0,5,0,0,213,116,0,0,215,116,128,32,0,5,0,2,217,116,0,9,217,116,0,0,219,116,128,32,0,5,0,2,221,116,7,65,221,116,0,0,223,116,128,32,0,5,0,2,225,116,7,16,225,116,0,0,227,116,128,32,0,5,0,0,229,116,128,32,0,5,0,2,231,116,7,16,231,116,0,0,233,116,128,32,0,5,0,2,235,116,7,30,235,116,0,0,237,116,128,32,0,5,0,0,239,116,0,0,241,116,128,32,0,5,128,46,0,5,0,0,243,116,128,32,0,5,128,46,0,5,0,0,245,116,0,0,247,116,128,32,0,5,128,46,0,5,0,0,249,116,0,0,251,116,128,32,0,5,128,46,0,5,0,2,253,116,7,30,253,116,0,2,4,117,7,196,5,117,0,2,6,117,7,154,7,117,0,2,8,117,7,112,9,117,0,2,10,117,7,58,10,117,0,0,12,117,128,32,0,5,0,2,14,117,0,9,14,117,0,0,16,117,128,32,0,5,0,2,18,117,7,177,18,117,0,0,20,117,128,32,0,5,0,0,22,117,128,32,0,5,0,2,24,117,7,65,24,117,0,2,25,117,7,142,25,117,0,2,26,117,7,149,26,117,0,2,27,117,7,142,27,117,0,2,28,117,7,128,28,117,0,2,29,117,7,198,29,117,0,2,30,117,7,163,30,117,0,2,31,117,0,0,33,117,128,32,0,5,0,0,35,117,128,32,0,5,0,0,37,117,128,32,0,5,0,0,39,117,128,32,0,5,0,0,41,117,128,32,0,5,0,0,43,117,128,32,0,5,0,0,45,117,128,32,0,5,0,2,47,117,0,9,47,117,0,0,49,117,128,32,0,5,0,0,51,117,128,32,0,5,0,0,53,117,128,32,0,5,0,0,55,117,128,32,0,5,0,0,57,117,128,32,0,5,0,0,59,117,0,0,61,117,128,32,0,5,0,2,63,117,7,37,63,117,0,0,65,117,128,32,0,5,0,0,67,117,0,0,69,117,128,32,0,5,0,0,71,117,128,32,0,5,0,0,73,117,128,32,0,5,0,2,75,117,7,23,75,117,0,2,76,117,7,254,76,117,0,2,78,117,7,233,78,117,0,2,79,117,7,145,81,117,0,0,83,117,128,32,0,5,0,2,85,117,7,191,85,117,0,0,87,117,128,32,0,5,0,2,89,117,7,184,89,117,0,0,91,117,128,32,0,5,0,2,93,117,7,163,93,117,0,2,94,117,7,254,94,117,0,2,96,117,7,126,97,117,0,2,98,117,0,0,100,117,2,0,238,117,0,2,4,118,7,247,4,118,0,2,5,118,7,198,5,118,0,0,7,118,128,32,0,5,0,2,9,118,7,142,9,118,0,0,11,118,128,32,0,5,0,2,13,118,7,65,13,118,0,0,15,118,128,32,0,5,0,2,17,118,7,51,17,118,0,2,18,118,7,44,18,118,0,0,20,118,128,32,0,5,0,2,22,118,7,135,22,118,0,0,24,118,128,32,0,5,0,2,26,118,7,65,26,118,0,0,28,118,128,32,0,5,0,2,30,118,7,156,30,118,0,0,32,118,128,32,0,5,0,2,34,118,7,86,34,118,0,0,36,118,128,32,0,5,0,2,38,118,7,231,39,118,0,2,40,118,7,238,41,118,0,2,42,118,7,28,43,118,0,0,45,118,128,32,0,5,0,2,47,118,7,44,47,118,0,0,49,118,128,32,0,5,0,2,51,118,7,58,51,118,0,2,52,118,7,164,55,118,0,2,56,118,7,254,56,118,0,2,58,118,0,0,60,118,128,32,0,5,0,0,62,118,128,32,0,5,0,0,64,118,128,32,0,5,0,0,66,118,128,32,0,5,0,0,68,118,128,32,0,5,0,0,70,118,128,32,0,5,0,0,72,118,128,32,0,5,0,0,74,118,128,32,0,5,0,0,76,118,128,32,0,5,0,0,78,118,128,32,0,5,0,0,80,118,128,32,0,5,0,0,82,118,128,32,0,5,0,0,84,118,128,32,0,5,0,0,86,118,128,32,0,5,0,0,88,118,128,32,0,5,0,0,90,118,128,32,0,5,0,0,92,118,128,32,0,5,0,0,94,118,128,32,0,5,0,0,96,118,128,32,0,5,0,0,98,118,128,32,0,5,0,0,100,118,128,32,0,5,0,0,102,118,128,32,0,5,0,0,104,118,128,32,0,5,0,0,106,118,128,32,0,5,0,0,108,118,128,32,0,5,0,0,110,118,128,32,0,5,0,0,112,118,128,32,0,5,0,0,114,118,128,32,0,5,0,0,116,118,128,32,0,5,0,0,118,118,128,32,0,5,0,0,120,118,128,32,0,5,0,0,122,118,128,32,0,5,0,0,124,118,128,32,0,5,0,0,126,118,128,32,0,5,0,0,128,118,128,32,0,5,0,0,130,118,128,32,0,5,0,0,132,118,128,32,0,5,0,0,134,118,128,32,0,5,0,0,136,118,128,32,0,5,0,0,138,118,128,32,0,5,0,0,140,118,128,32,0,5,0,0,142,118,128,32,0,5,0,0,144,118,128,32,0,5,0,0,146,118,128,32,0,5,0,0,148,118,128,32,0,5,0,0,150,118,128,32,0,5,0,0,152,118,128,32,0,5,0,0,154,118,128,32,0,5,0,0,156,118,128,32,0,5,0,0,158,118,128,32,0,5,0,0,160,118,128,32,0,5,0,0,162,118,128,32,0,5,0,0,164,118,128,32,0,5,0,0,166,118,128,32,0,5,0,0,168,118,128,32,0,5,0,0,170,118,128,32,0,5,0,0,172,118,128,32,0,5,0,0,174,118,128,32,0,5,0,0,176,118,128,32,0,5,0,0,178,118,128,32,0,5,0,0,180,118,128,32,0,5,0,0,182,118,128,32,0,5,0,0,184,118,128,32,0,5,0,0,186,118,128,32,0,5,0,0,188,118,128,32,0,5,0,0,190,118,128,32,0,5,0,0,192,118,128,32,0,5,0,0,194,118,128,32,0,5,0,0,196,118,128,32,0,5,0,0,198,118,128,32,0,5,0,0,200,118,128,32,0,5,0,0,202,118,128,32,0,5,0,0,204,118,128,32,0,5,0,0,206,118,128,32,0,5,0,0,208,118,128,32,0,5,0,0,210,118,128,32,0,5,0,0,212,118,128,32,0,5,0,0,214,118,128,32,0,5,0,0,216,118,128,32,0,5,0,0,218,118,128,32,0,5,0,0,220,118,128,32,0,5,0,0,222,118,128,32,0,5,0,0,224,118,128,32,0,5,0,0,226,118,128,32,0,5,0,0,228,118,128,32,0,5,0,0,230,118,128,32,0,5,0,2,232,118,0,9,232,118,128,32,0,5,0,16,232,118,128,32,0,5,0,23,232,118,128,32,0,5,0,30,232,118,128,32,0,5,0,37,232,118,128,32,0,5,0,44,232,118,128,32,0,5,0,51,232,118,128,32,0,5,0,58,232,118,128,32,0,5,0,65,232,118,128,32,0,5,0,72,232,118,128,32,0,5,0,79,232,118,128,32,0,5,0,86,232,118,128,32,0,5,0,93,232,118,128,32,0,5,0,100,232,118,128,32,0,5,0,107,232,118,128,32,0,5,0,114,232,118,128,32,0,5,0,121,232,118,128,32,0,5,0,128,232,118,128,32,0,5,0,135,232,118,128,32,0,5,0,142,232,118,128,32,0,5,0,149,232,118,128,32,0,5,0,156,232,118,128,32,0,5,0,163,232,118,128,32,0,5,0,170,232,118,128,32,0,5,0,177,232,118,128,32,0,5,0,184,232,118,128,32,0,5,0,191,232,118,128,32,0,5,0,198,232,118,128,32,0,5,0,205,232,118,128,32,0,5,0,212,232,118,128,32,0,5,0,219,232,118,128,32,0,5,0,226,232,118,128,32,0,5,0,233,232,118,128,32,0,5,0,240,232,118,128,32,0,5,0,247,232,118,128,32,0,5,0,254,232,118,128,32,0,5,0,2,234,118,7,125,253,118,0,2,254,118,7,184,254,118,0,2,4,119,0,0,6,119,128,5,0,112,0,0,8,119,128,5,0,112,128,5,0,120,0,0,10,119,128,32,0,5,128,5,0,112,0,0,12,119,128,5,0,112,128,5,0,116,128,5,0,120,128,5,0,124,0,2,14,119,7,23,14,119,0,0,16,119,128,5,0,112,128,5,0,116,128,5,0,120,128,5,0,124,0,2,18,119,0,9,18,119,0,0,20,119,128,5,0,112,0,0,22,119,128,5,0,112,128,5,0,117,128,5,0,122,0,0,24,119,128,5,0,112,128,5,0,120,0,0,26,119,128,5,0,112,0,0,28,119,0,0,30,119,128,5,0,112,0,0,32,119,128,32,0,5,128,5,0,112,0,0,34,119,0,0,36,119,128,5,0,112,0,0,38,119,0,0,40,119,128,5,0,112,128,5,0,115,128,5,0,118,128,5,0,121,128,5,0,124,0,0,42,119,0,0,44,119,128,5,0,112,128,5,0,120,0,0,46,119,128,5,0,112,128,5,0,120,0,2,48,119,0,9,48,119,0,0,50,119,128,5,0,112,128,5,0,120,0,0,52,119,128,32,0,5,128,5,0,112,0,0,54,119,128,5,0,112,0,2,56,119,7,100,56,119,0,0,58,119,128,5,0,112,128,5,0,120,0,2,60,119,0,0,62,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,64,119,128,32,0,5,0,0,66,119,128,32,0,5,0,0,68,119,128,32,0,5,0,0,70,119,128,32,0,5,0,0,72,119,128,32,0,5,0,0,74,119,128,32,0,5,0,0,76,119,128,32,0,5,0,0,78,119,128,32,0,5,128,5,0,112,128,32,0,112,128,5,0,120,128,32,0,120,0,0,80,119,128,32,0,5,0,0,82,119,128,32,0,5,0,0,84,119,128,32,0,5,0,0,86,119,128,32,0,5,0,0,88,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,90,119,128,32,0,5,0,0,92,119,128,32,0,5,0,0,94,119,128,32,0,5,0,0,96,119,128,32,0,5,0,0,98,119,128,32,0,5,0,0,100,119,128,32,0,5,0,0,102,119,128,32,0,5,0,0,104,119,128,32,0,5,0,0,106,119,128,32,0,5,0,0,108,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,110,119,128,32,0,5,128,5,0,112,128,32,0,112,128,5,0,120,128,32,0,120,0,0,112,119,128,32,0,5,0,0,114,119,128,32,0,5,0,0,116,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,118,119,128,32,0,5,0,0,120,119,128,32,0,5,0,0,122,119,128,32,0,5,0,0,124,119,128,32,0,5,0,0,126,119,128,32,0,5,0,0,128,119,128,32,0,5,0,0,130,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,132,119,128,32,0,5,128,5,0,112,128,32,0,112,0,0,134,119,128,32,0,5,0,0,136,119,128,32,0,5,0,0,138,119,128,32,0,5,0,0,140,119,128,32,0,5,0,0,142,119,128,32,0,5,0,2,144,119,0,0,146,119,128,5,0,112,0,0,148,119,0,0,150,119,128,5,0,112,0,2,152,119,0,9,152,119,0,0,154,119,128,5,0,112,0,0,156,119,128,5,0,112,0,0,158,119,128,5,0,112,0,0,160,119,128,5,0,112,0,0,162,119,128,5,0,112,0,0,164,119,128,5,0,112,0,0,166,119,0,0,168,119,128,5,0,112,0,0,170,119,128,5,0,112,0,0,172,119,128,5,0,112,0,0,174,119,128,5,0,112,0,0,176,119,128,5,0,112,0,0,178,119,128,5,0,112,0,2,180,119,7,23,180,119,0,0,182,119,128,5,0,112,0,0,184,119,128,5,0,112,0,0,186,119,128,5,0,112,0,0,188,119,128,5,0,112,0,0,190,119,0,0,192,119,128,5,0,112,0,2,194,119,7,16,194,119,0,0,196,119,128,5,0,112,0,0,198,119,128,5,0,112,0,0,200,119,128,5,0,112,0,0,202,119,128,5,0,112,0,0,204,119,128,5,0,112,0,2,206,119,7,16,206,119,0,0,208,119,128,5,0,112,0,0,210,119,128,5,0,112,0,0,212,119,128,5,0,112,0,0,214,119,128,5,0,112,0,2,216,119,0,9,216,119,0,2,4,120,7,86,4,120,0,0,6,120,128,32,0,5,0,2,8,120,7,114,8,120,0,0,10,120,128,32,0,5,0,2,12,120,7,135,12,120,0,0,14,120,128,32,0,5,0,2,16,120,7,128,16,120,0,0,18,120,128,32,0,5,0,2,20,120,7,65,20,120,0,0,22,120,128,32,0,5,0,2,24,120,7,30,24,120,0,0,26,120,128,32,0,5,0,0,28,120,0,0,30,120,128,32,0,5,0,2,32,120,7,30,32,120,0,0,34,120,128,32,0,5,0,2,36,120,7,58,36,120,0,0,38,120,128,32,0,5,0,2,40,120,7,16,40,120,0,0,42,120,128,32,0,5,0,2,44,120,7,149,44,120,0,0,46,120,128,32,0,5,0,0,48,120,0,0,50,120,128,32,0,5,0,2,52,120,7,49,53,120,0,0,55,120,128,32,0,5,0,2,57,120,7,149,57,120,0,0,59,120,128,32,0,5,0,2,61,120,7,30,61,120,0,0,63,120,128,32,0,5,0,2,65,120,7,37,65,120,0,0,67,120,128,32,0,5,0,2,69,120,7,91,70,120,0,0,72,120,128,32,0,5,0,0,74,120,128,32,0,5,0,2,76,120,7,227,93,120,0,2,94,120,7,212,94,120,0,2,95,120,7,111,100,120,0,2,101,120,0,0,103,120,128,32,0,5,0,0,105,120,128,32,0,5,0,0,107,120,128,32,0,5,0,0,109,120,128,32,0,5,0,0,111,120,128,32,0,5,0,0,113,120,128,32,0,5,0,0,115,120,128,32,0,5,0,0,117,120,128,32,0,5,0,0,119,120,128,32,0,5,0,0,121,120,128,32,0,5,0,0,123,120,128,32,0,5,0,0,125,120,128,32,0,5,0,0,127,120,128,32,0,5,0,0,129,120,128,32,0,5,0,0,131,120,128,32,0,5,0,0,133,120,128,32,0,5,0,0,135,120,128,32,0,5,0,0,137,120,128,32,0,5,0,0,139,120,128,32,0,5,0,0,141,120,128,32,0,5,0,0,143,120,128,32,0,5,0,0,145,120,128,32,0,5,0,0,147,120,128,32,0,5,0,0,149,120,128,32,0,5,0,0,151,120,128,32,0,5,0,0,153,120,128,32,0,5,0,0,155,120,128,32,0,5,0,0,157,120,128,32,0,5,0,0,159,120,128,32,0,5,0,0,161,120,128,32,0,5,0,0,163,120,128,32,0,5,0,0,165,120,128,32,0,5,0,2,167,120,0,0,169,120,128,32,0,5,0,0,171,120,128,32,0,5,0,0,173,120,128,32,0,5,0,0,175,120,128,32,0,5,0,0,177,120,128,32,0,5,0,0,179,120,128,32,0,5,0,0,181,120,128,32,0,5,0,0,183,120,128,32,0,5,0,0,185,120,128,32,0,5,0,0,187,120,128,32,0,5,0,0,189,120,128,32,0,5,0,0,191,120,128,32,0,5,0,0,193,120,128,32,0,5,0,0,195,120,128,32,0,5,0,0,197,120,128,32,0,5,0,0,199,120,128,32,0,5,0,0,201,120,128,32,0,5,0,0,203,120,128,32,0,5,0,0,205,120,128,32,0,5,0,0,207,120,128,32,0,5,0,0,209,120,128,32,0,5,0,0,211,120,128,32,0,5,0,0,213,120,128,32,0,5,0,0,215,120,128,32,0,5,0,0,217,120,128,32,0,5,0,0,219,120,128,32,0,5,0,0,221,120,128,32,0,5,0,0,223,120,128,32,0,5,0,0,225,120,128,32,0,5,0,0,227,120,128,32,0,5,0,0,229,120,128,32,0,5,0,0,231,120,128,32,0,5,0,0,233,120,128,32,0,5,0,0,235,120,128,32,0,5,0,2,237,120,0,2,4,121,0,0,6,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,8,121,128,32,0,5,128,46,0,5,0,0,10,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,12,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,14,121,128,32,0,5,128,46,0,5,0,0,16,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,18,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,20,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,22,121,128,32,0,5,128,46,0,5,0,0,24,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,26,121,128,32,0,5,128,46,0,5,0,0,28,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,30,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,32,121,128,32,0,5,128,46,0,5,0,0,34,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,36,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,38,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,40,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,42,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,44,121,0,0,46,121,128,32,0,5,0,0,48,121,128,32,0,5,0,2,50,121,7,23,50,121,0,0,52,121,128,32,0,5,128,46,0,5,0,0,54,121,0,0,56,121,128,32,0,5,0,0,58,121,128,32,0,5,0,0,60,121,128,32,0,5,0,0,62,121,0,0,64,121,128,32,0,5,0,0,66,121,128,32,0,5,128,46,0,5,0,0,68,121,128,32,0,5,0,0,70,121,128,32,0,5,0,2,72,121,7,16,72,121,0,0,74,121,128,32,0,5,0,0,76,121,0,0,78,121,128,32,0,5,0,0,80,121,0,0,82,121,128,32,0,5,0,0,84,121,128,32,0,5,0,0,86,121,128,32,0,5,0,0,88,121,128,32,0,5,0,0,90,121,128,32,0,5,0,2,92,121,7,16,92,121,128,32,0,5,0,23,92,121,7,44,92,121,128,32,0,5,0,51,92,121,7,114,92,121,128,32,0,5,0,121,92,121,7,163,92,121,128,32,0,5,0,170,92,121,7,198,92,121,128,32,0,5,0,205,92,121,7,14,93,121,0,0,95,121,128,32,0,5,0,0,97,121,128,32,0,5,0,0,99,121,128,32,0,5,0,2,101,121,7,247,101,121,128,32,0,5,128,46,0,5,0,0,103,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,105,121,128,32,0,5,128,46,0,5,0,0,107,121,128,32,0,5,128,46,0,5,0,0,109,121,128,32,0,5,128,46,0,5,0,0,111,121,128,32,0,5,128,46,0,5,0,0,113,121,128,32,0,5,128,46,0,5,0,0,115,121,128,32,0,5,128,46,0,5,0,0,117,121,128,32,0,5,128,46,0,5,0,0,119,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,121,121,128,32,0,5,128,46,0,5,0,0,123,121,128,32,0,5,128,46,0,5,0,0,125,121,128,32,0,5,128,46,0,5,0,0,127,121,128,32,0,5,128,46,0,5,0,0,129,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,131,121,128,32,0,5,128,46,0,5,0,0,133,121,128,32,0,5,128,46,0,5,0,0,135,121,128,32,0,5,128,46,0,5,0,0,137,121,128,32,0,5,128,46,0,5,0,0,139,121,128,32,0,5,128,46,0,5,0,0,141,121,128,16,0,5,128,30,0,5,128,44,0,5,0,0,143,121,128,32,0,5,128,46,0,5,0,2,145,121,7,93,145,121,0,0,147,121,128,32,0,5,0,0,149,121,128,32,0,5,0,0,151,121,2,0,155,121,128,32,0,5,0,2,157,121,7,51,157,121,0,0,159,121,128,32,0,5,0,0,161,121,128,32,0,5,0,0,163,121,0,0,165,121,128,32,0,5,0,2,167,121,7,58,167,121,0,0,169,121,128,32,0,5,0,0,171,121,2,0,175,121,128,32,0,5,0,2,177,121,7,198,177,121,0,0,179,121,2,0,183,121,128,32,0,5,128,46,0,5,0,0,185,121,128,32,0,5,0,0,187,121,128,32,0,5,128,46,0,5,0,0,189,121,128,32,0,5,128,46,0,5,0,0,191,121,2,0,195,121,128,32,0,5,128,46,0,5,0,0,197,121,128,32,0,5,128,46,0,5,0,0,199,121,128,32,0,5,128,46,0,5,0,0,201,121,128,32,0,5,128,46,0,5,0,0,203,121,128,32,0,5,128,46,0,5,0,0,205,121,128,32,0,5,128,46,0,5,0,0,207,121,0,0,209,121,128,32,0,5,0,0,211,121,2,0,231,121,0,2,233,121,7,23,233,121,0,0,235,121,128,32,0,5,0,0,237,121,128,32,0,5,0,2,239,121,7,16,239,121,0,0,241,121,128,32,0,5,0,0,243,121,0,0,245,121,128,32,0,5,0,2,247,121,7,30,247,121,128,32,0,5,0,37,247,121,7,58,247,121,128,32,0,5,0,65,247,121,0,72,247,121,128,32,0,5,0,79,247,121,7,100,247,121,128,32,0,5,0,107,247,121,0,114,247,121,128,32,0,5,0,121,247,121,7,240,247,121,128,32,0,5,0,247,247,121,128,32,0,5,0,254,247,121,7,173,249,121,0,2,4,122,0,0,6,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,8,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,10,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,12,122,0,0,14,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,16,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,18,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,20,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,22,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,24,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,26,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,28,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,30,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,32,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,34,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,36,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,38,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,40,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,42,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,44,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,46,122,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,48,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,50,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,52,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,54,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,56,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,58,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,60,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,62,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,64,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,66,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,68,122,128,3,0,5,128,5,0,5,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,70,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,72,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,74,122,128,3,0,5,128,5,0,5,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,76,122,128,16,0,5,128,30,0,5,128,44,0,5,0,0,78,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,80,122,128,3,0,5,128,5,0,5,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,82,122,128,3,0,5,128,5,0,5,128,16,0,5,128,22,0,5,128,28,0,5,128,34,0,5,128,40,0,5,128,46,0,5,128,52,0,5,0,0,84,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,86,122,128,16,0,5,128,23,0,5,128,30,0,5,128,37,0,5,128,44,0,5,128,51,0,5,0,0,88,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,90,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,92,122,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,94,122,128,3,0,5,128,5,0,5,128,16,0,5,128,24,0,5,128,32,0,5,128,40,0,5,128,48,0,5,0,0,96,122,128,3,0,5,128,5,0,5,128,16,0,5,128,30,0,5,128,44,0,5,0,0,98,122,128,3,0,5,128,5,0,5,128,16,0,5,128,30,0,5,128,44,0,5,0,0,100,122,128,3,0,5,128,5,0,5,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,0,102,122,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,2,104,122,7,219,111,122,0,2,4,123,0,0,6,123,128,5,0,112,0,0,8,123,128,32,0,5,0,0,10,123,2,0,20,123,128,32,0,5,0,0,22,123,2,0,28,123,128,32,0,5,128,5,0,112,0,0,30,123,128,32,0,5,0,0,32,123,2,0,36,123,128,32,0,5,0,0,38,123,128,5,0,112,0,0,40,123,2,0,58,123,128,5,0,112,0,0,60,123,2,0,70,123,128,5,0,112,0,0,72,123,128,5,0,112,0,0,74,123,0,0,76,123,128,32,0,5,0,0,78,123,0,0,80,123,128,5,0,112,0,0,82,123,128,5,0,112,0,0,84,123,0,0,86,123,128,5,0,112,0,0,88,123,2,0,106,123,128,5,0,112,128,32,0,112,0,0,108,123,128,5,0,112,128,5,0,120,0,0,110,123,2,0,116,123,0,2,118,123,7,29,150,123,0,2,151,123,7,77,152,123,0,2,153,123,7,37,153,123,0,0,155,123,128,32,0,5,0,2,157,123,7,79,157,123,0,0,159,123,128,32,0,5,0,2,161,123,7,114,161,123,0,0,163,123,128,32,0,5,0,2,165,123,7,184,165,123,0,0,167,123,128,32,0,5,0,2,169,123,7,47,171,123,0,2,172,123,0,9,172,123,0,0,174,123,128,32,0,5,0,0,176,123,128,32,0,5,0,0,178,123,128,32,0,5,0,0,180,123,128,32,0,5,0,0,182,123,128,32,0,5,0,0,184,123,128,32,0,5,0,0,186,123,128,32,0,5,0,0,188,123,128,32,0,5,0,0,190,123,128,32,0,5,0,0,192,123,128,32,0,5,0,0,194,123,128,32,0,5,0,0,196,123,128,32,0,5,0,0,198,123,128,32,0,5,0,0,200,123,128,32,0,5,0,0,202,123,128,32,0,5,0,0,204,123,128,32,0,5,0,0,206,123,128,32,0,5,0,0,208,123,128,32,0,5,0,0,210,123,128,32,0,5,0,0,212,123,128,32,0,5,0,0,214,123,128,32,0,5,0,0,216,123,128,32,0,5,0,0,218,123,128,32,0,5,0,0,220,123,128,32,0,5,0,0,222,123,128,32,0,5,0,0,224,123,128,32,0,5,0,0,226,123,128,32,0,5,0,0,228,123,128,32,0,5,0,0,230,123,128,32,0,5,0,0,232,123,128,32,0,5,0,0,234,123,128,32,0,5,0,0,236,123,128,32,0,5,0,2,238,123,7,147,239,123,0,2,240,123,7,124,242,123,0,2,243,123,7,105,244,123,0,2,245,123,7,56,246,123,0,2,247,123,7,205,247,123,0,2,248,123,7,91,249,123,0,2,250,123,7,184,250,123,0,2,251,123,7,247,251,123,0,2,252,123,7,191,252,123,0,2,4,124,0,0,6,124,128,32,0,5,0,0,8,124,128,32,0,5,0,0,10,124,128,32,0,5,0,0,12,124,128,32,0,5,0,0,14,124,128,32,0,5,0,0,16,124,128,32,0,5,0,0,18,124,128,32,0,5,0,0,20,124,128,32,0,5,0,0,22,124,128,32,0,5,0,0,24,124,128,32,0,5,0,0,26,124,128,32,0,5,0,0,28,124,128,32,0,5,0,0,30,124,128,32,0,5,0,0,32,124,128,32,0,5,0,0,34,124,128,32,0,5,0,0,36,124,128,32,0,5,0,0,38,124,128,32,0,5,0,0,40,124,128,32,0,5,0,0,42,124,128,32,0,5,0,0,44,124,128,32,0,5,0,0,46,124,128,32,0,5,0,0,48,124,128,32,0,5,0,0,50,124,128,32,0,5,0,0,52,124,128,32,0,5,0,0,54,124,128,32,0,5,0,0,56,124,128,32,0,5,0,0,58,124,128,32,0,5,0,0,60,124,128,32,0,5,0,0,62,124,128,32,0,5,0,0,64,124,128,32,0,5,0,0,66,124,128,32,0,5,0,0,68,124,128,32,0,5,0,0,70,124,128,32,0,5,0,0,72,124,128,32,0,5,0,0,74,124,128,32,0,5,0,0,76,124,128,32,0,5,0,0,78,124,128,32,0,5,0,0,80,124,128,32,0,5,0,0,82,124,128,32,0,5,0,0,84,124,128,32,0,5,0,2,86,124,7,84,87,124,0,2,88,124,7,213,91,124,0,2,92,124,7,212,92,124,0,2,93,124,7,28,94,124,0,2,95,124,7,112,96,124,0,2,97,124,7,177,97,124,0,2,98,124,7,219,98,124,0,2,99,124,7,209,104,124,0,2,105,124,7,103,114,124,0,2,115,124,7,133,116,124,0,2,117,124,7,205,117,124,0,2,118,124,7,205,118,124,0,2,119,124,7,63,120,124,0,0,122,124,128,5,0,112,0,2,124,124,7,44,124,124,0,2,125,124,7,93,125,124,0,0,127,124,128,32,0,5,0,2,129,124,7,51,129,124,0,2,130,124,0,0,132,124,128,32,0,5,0,0,134,124,128,32,0,5,0,2,136,124,0,9,136,124,0,0,138,124,128,32,0,5,0,2,140,124,7,23,140,124,0,0,142,124,128,32,0,5,0,0,144,124,128,32,0,5,0,0,146,124,128,32,0,5,0,0,148,124,128,32,0,5,0,0,150,124,128,32,0,5,0,2,152,124,7,37,152,124,0,0,154,124,128,32,0,5,0,2,156,124,0,2,157,124,7,149,157,124,0,2,158,124,7,156,158,124,0,2,159,124,7,156,159,124,0,2,160,124,7,135,160,124,0,2,161,124,7,128,161,124,0,2,162,124,7,51,162,124,128,32,0,5,0,58,162,124,7,72,162,124,128,32,0,5,0,79,162,124,7,156,162,124,0,2,163,124,7,51,163,124,0,0,165,124,128,5,0,112,0,2,167,124,7,191,167,124,0,2,168,124,0,0,170,124,128,32,0,5,0,0,172,124,128,32,0,5,0,0,174,124,0,0,176,124,128,32,0,5,0,2,178,124,7,44,178,124,0,0,180,124,128,32,0,5,128,5,0,112,0,0,182,124,0,0,184,124,128,32,0,5,128,5,0,112,0,0,186,124,0,0,188,124,128,32,0,5,128,5,0,112,0,0,190,124,128,32,0,5,0,0,192,124,0,0,194,124,128,32,0,5,128,5,0,112,0,2,196,124,7,121,196,124,0,0,198,124,128,5,0,112,0,2,200,124,7,16,200,124,0,2,201,124,7,56,202,124,0,2,203,124,7,149,203,124,0,2,204,124,7,212,204,124,0,2,205,124,7,56,206,124,0,2,207,124,7,208,237,124,0,2,4,125,7,133,33,125,0,2,34,125,0,0,36,125,128,5,0,112,0,0,38,125,128,5,0,112,0,0,40,125,128,5,0,112,0,0,42,125,128,5,0,112,0,0,44,125,128,5,0,112,0,0,46,125,128,5,0,112,0,0,48,125,128,5,0,112,128,5,0,120,0,0,50,125,128,5,0,112,0,0,52,125,128,5,0,112,0,0,54,125,128,5,0,112,128,5,0,120,0,0,56,125,128,5,0,112,128,5,0,120,0,0,58,125,128,5,0,112,128,5,0,120,0,0,60,125,128,5,0,112,0,0,62,125,128,5,0,112,0,0,64,125,128,5,0,112,0,0,66,125,128,5,0,112,128,5,0,117,128,5,0,122,0,0,68,125,128,5,0,112,0,0,70,125,128,5,0,112,0,0,72,125,128,5,0,112,0,0,74,125,128,5,0,112,128,5,0,120,0,0,76,125,128,5,0,112,128,5,0,120,0,0,78,125,128,5,0,112,0,0,80,125,128,5,0,112,0,2,82,125,7,23,82,125,0,2,83,125,7,19,99,125,0,2,100,125,2,112,154,125,0,2,155,125,7,234,165,125,0,2,166,125,7,244,178,125,0,2,2,126,0,2,2,251,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,4,2,251,2,6,2,251,128,38,0,5,0,8,2,251,2,10,2,251,128,16,0,5,128,27,0,5,0,12,2,251,2,32,2,251,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,34,2,251,128,27,0,5,128,38,0,5,0,36,2,251,128,27,0,5,128,38,0,5,0,38,2,251,2,42,2,251,128,16,0,5,0,44,2,251,2,132,2,251,128,38,0,5,0,134,2,251,2,60,4,251,128,16,0,5,0,62,4,251,2,82,4,251,128,27,0,5,128,38,0,5,128,49,0,5,0,84,4,251,2,200,4,251,128,16,0,5,128,5,0,112,0,202,4,251,2,252,4,251,128,16,0,5,0,254,4,251,2,26,6,251,128,16,0,5,128,38,0,5,128,5,0,112,0,28,6,251,128,16,0,5,0,30,6,251,128,16,0,5,0,32,6,251,2,48,6,251,128,16,0,5,128,27,0,5,0,50,6,251,2,248,7,251,128,16,0,5,0,250,7,251,2,74,8,251,128,16,0,5,128,27,0,5,128,38,0,5,128,49,0,5,0,76,8,251,2,96,8,251,128,16,0,5,128,27,0,5,0,98,8,251,2,232,8,251,128,16,0,5,0,234,8,251,2,250,8,251,128,49,0,5,0,252,8,251,2,68,10,251,128,16,0,5,128,38,0,5,0,70,10,251,128,16,0,5,0,72,10,251,2,180,10,251,128,16,0,5,0,182,10,251,128,49,0,5,0,184,10,251,2,40,11,251,128,16,0,5,128,27,0,5,0,42,11,251,2,72,11,251,128,16,0,5,128,27,0,5,0,74,11,251,2,90,11,251,128,49,0,5,0,92,11,251,2,70,24,251,128,27,0,5,0,72,24,251,2,4,26,251,128,16,0,5,0,6,26,251,2,188,27,251,128,16,0,5,0,190,27,251,2,74,28,251,128,16,0,5,128,27,0,5,0,76,28,251,2,80,28,251,128,16,0,5,128,27,0,5,0,82,28,251,2,104,29,251,128,16,0,5,128,5,0,112,0,106,29,251,2,162,29,251,128,49,0,5,0,164,29,251,2,74,30,251,128,16,0,5,0,76,30,251,2,88,30,251,128,27,0,5,0,90,30,251,2,62,31,251,128,16,0,5,0,64,31,251,2,196,33,251,128,16,0,5,128,5,0,112,0,198,33,251,2,200,34,251,128,16,0,5,0,202,34,251,2,132,35,251,128,16,0,5,128,5,0,112,0,134,35,251,2,136,35,251,128,16,0,5,0,138,35,251,2,90,36,251,128,49,0,5,0,92,36,251,2,172,37,251,128,49,0,5,0,174,37,251,2,126,39,251,128,49,0,5,0,128,39,251,2,8,42,251,128,16,0,5,0,10,42,251,2,114,42,251,128,16,0,5,128,27,0,5,0,116,42,251,2,206,43,251,128,16,0,5,0,208,43,251,2,244,44,251,128,16,0,5,0,246,44,251,2,234,45,251,128,16,0,5,0,236,45,251,2,82,46,251,128,16,0,5,0,84,46,251,2,118,47,251,128,16,0,5,0,120,47,251,2,134,47,251,128,27,0,5,0,136,47,251,2,180,47,251,128,16,0,5,128,27,0,5,0,182,47,251,2,186,47,251,128,16,0,5,0,188,47,251,2,52,48,251,128,16,0,5,128,27,0,5,0,54,48,251,2,44,49,251,128,16,0,5,128,5,0,112,0,46,49,251,2,240,49,251,128,16,0,5,128,5,0,112,0,242,49,251,2,26,50,251,128,27,0,5,0,28,50,251,2,178,50,251,128,16,0,5,128,5,0,112,0,180,50,251,2,120,53,251,128,16,0,5,0,122,53,251,2,122,54,251,128,16,0,5,0,124,54,251,2,132,54,251,128,49,0,5,0,134,54,251,2,112,56,251,128,16,0,5,0,114,56,251,2,150,56,251,128,27,0,5,0,152,56,251,2,158,56,251,128,27,0,5,128,49,0,5,0,160,56,251,2,246,56,251,128,49,0,5,0,248,56,251,2,2,57,251,128,16,0,5,128,27,0,5,0,4,57,251,2,200,57,251,128,49,0,5,0,202,57,251,2,28,59,251,128,16,0,5,0,30,59,251,2,60,59,251,128,49,0,5,0,62,59,251,2,180,64,251,128,27,0,5,0,182,64,251,2,142,67,251,128,49,0,5,0,144,67,251,2,76,83,251,128,16,0,5,0,78,83,251,2,90,83,251,128,16,0,5,128,27,0,5,128,38,0,5,0,92,83,251,2,186,85,251,128,16,0,5,128,27,0,5,0,188,85,251,2,12,86,251,128,38,0,5,0,14,86,251,2,220,99,251,128,16,0,5,0,222,99,251,2,234,99,251,128,49,0,5,0,236,99,251,2,178,100,251,128,16,0,5,0,180,100,251,2,232,100,251,128,16,0,5,0,234,100,251,2,136,101,251,128,16,0,5,0,138,101,251,2,154,101,251,128,49,0,5,0,156,101,251,2,182,101,251,128,27,0,5,0,184,101,251,2,204,102,251,128,16,0,5,128,49,0,5,0,206,102,251,2,208,102,251,128,38,0,5,128,49,0,5,0,210,102,251,2,100,106,251,128,16,0,5,128,27,0,5,0,102,106,251,2,108,119,251,128,16,0,5,0,110,119,251,2,146,119,251,128,49,0,5,0,148,119,251,2,232,119,251,128,16,0,5,128,27,0,5,0,234,119,251,2,174,121,251,128,16,0,5,0,176,121,251,2,208,121,251,128,16,0,5,0,210,121,251,2,86,122,251,128,27,0,5,0,88,122,251,2,22,128,251,128,16,0,5,0,24,128,251,2,34,129,251,128,16,0,5,128,5,0,112,128,5,0,120,0,36,129,251,2,144,130,251,128,16,0,5,128,5,0,112,0,146,130,251,128,16,0,5,128,5,0,112,0,148,130,251,2,192,131,251,128,16,0,5,0,194,131,251,2,8,135,251,128,16,0,5,0,10,135,251,2,128,135,251,128,16,0,5,0,130,135,251,2,66,147,251,128,16,0,5,0,68,147,251,2,210,147,251,128,16,0,5,0,212,147,251,2,228,147,251,128,27,0,5,128,49,0,5,0,230,147,251,2,132,148,251,128,16,0,5,0,134,148,251,2,136,148,251,128,16,0,5,0,138,148,251,2,20,149,251,128,16,0,5,0,22,149,251,2,170,153,251,128,16,0,5,0,172,153,251,128,49,0,5,0,174,153,251,2,92,154,251,128,16,0,5,0,94,154,251,2,106,154,251,128,27,0,5,0,108,154,251,2,218,154,251,128,16,0,5,0,220,154,251,2,254,159,251,128,16,0,5,0,2,160,251,2,102,160,251,128,16,0,5,0,104,160,251,2,108,161,251,128,16,0,5,0,110,161,251,2,130,161,251,128,49,0,5,0,132,161,251,2,216,161,251,128,16,0,5,0,218,161,251,2,210,164,251,128,16,0,5,128,5,0,112,0,212,164,251,128,16,0,5,0,214,164,251,2,122,165,251,128,16,0,5,0,124,165,251,2,88,166,251,128,16,0,5,0,90,166,251,2,8,167,251,128,49,0,5,0,10,167,251,2,156,167,251,128,27,0,5,0,158,167,251,2,252,169,251,128,16,0,5,128,5,0,112,0,254,169,251,128,16,0,5,0,2,170,251,2,76,188,251,128,16,0,5,0,78,188,251,2,100,188,251,128,49,0,5,0,102,188,251,2,162,190,251,128,16,0,5,0,164,190,251,2,156,191,251,128,16,0,5,128,49,0,5,0,158,191,251,128,16,0,5,0,160,191,251,2,182,191,251,128,16,0,5,128,49,0,5,0,184,191,251,2,156,192,251,128,49,0,5,0,158,192,251,2,254,194,251,128,49,0,5,0,2,195,251,2,210,196,251,128,49,0,5,0,212,196,251,2,60,212,251,128,16,0,5,0,62,212,251,2,230,212,251,128,16,0,5,0,232,212,251,128,16,0,5,0,234,212,251,2,52,214,251,128,16,0,5,0,54,214,251,2,254,217,251,128,16,0,5,128,27,0,5,0,2,218,251,2,178,218,251,128,16,0,5,0,180,218,251,2,206,218,251,128,49,0,5,0,208,218,251,2,74,219,251,128,16,0,5,0,76,219,251,2,188,219,251,128,49,0,5,0,190,219,251,2,68,220,251,128,16,0,5,0,70,220,251,2,42,222,251,128,16,0,5,0,44,222,251,128,16,0,5,0,46,222,251,2,86,222,251,128,16,0,5,128,27,0,5,128,5,0,112,0,88,222,251,2,22,223,251,128,49,0,5,0,24,223,251,2,180,223,251,128,49,0,5,0,182,223,251,2,206,223,251,128,49,0,5,0,208,223,251,2,90,232,251,128,16,0,5,0,92,232,251,2,86,233,251,128,16,0,5,128,27,0,5,128,49,0,5,128,5,0,112,0,88,233,251,2,90,233,251,128,16,0,5,128,27,0,5,128,49,0,5,0,92,233,251,2,114,235,251,128,16,0,5,128,27,0,5,0,116,235,251,2,128,235,251,128,16,0,5,0,130,235,251,2,60,239,251,128,16,0,5,128,27,0,5,128,49,0,5,0,62,239,251,2,188,6,252,128,16,0,5,0,190,6,252,2,190,9,252,128,16,0,5,0,192,9,252,2,196,9,252,128,27,0,5,128,49,0,5,0,198,9,252,2,192,11,252,128,16,0,5,0,194,11,252,2,198,11,252,128,5,0,112,0,200,11,252,2,174,14,252,128,16,0,5,0,176,14,252,2,104,16,252,128,16,0,5,0,106,16,252,2,110,16,252,128,16,0,5,0,112,16,252,2,180,16,252,128,16,0,5,0,182,16,252,2,22,17,252,128,16,0,5,0,24,17,252,2,236,20,252,128,16,0,5,0,238,20,252,2,240,20,252,128,16,0,5,0,242,20,252,2,54,21,252,128,16,0,5,0,56,21,252,2,230,21,252,128,16,0,5,128,27,0,5,0,232,21,252,128,16,0,5,0,234,21,252,128,16,0,5,0,236,21,252,2,232,23,252,128,49,0,5,0,234,23,252,2,66,24,252,128,27,0,5,0,68,24,252,2,68,32,252,128,49,0,5,0,70,32,252,2,182,36,252,128,49,0,5,0,184,36,252,2,142,48,252,128,16,0,5,128,27,0,5,0,144,48,252,128,16,0,5,0,146,48,252,2,34,50,252,128,16,0,5,0,36,50,252,2,124,53,252,128,49,0,5,0,126,53,252,2,48,64,252,128,16,0,5,0,50,64,252,128,16,0,5,128,5,0,112,0,52,64,252,2,150,65,252,128,16,0,5,0,152,65,252,2,218,65,252,128,16,0,5,0,220,65,252,2,14,66,252,128,16,0,5,0,16,66,252,128,16,0,5,0,18,66,252,2,252,66,252,128,16,0,5,0,254,66,252,2,28,68,252,128,16,0,5,0,30,68,252,2,94,68,252,128,16,0,5,128,5,0,112,0,96,68,252,2,116,69,252,128,16,0,5,128,27,0,5,0,118,69,252,2,46,72,252,128,16,0,5,0,48,72,252,128,16,0,5,0,50,72,252,2,112,79,252,128,16,0,5,0,114,79,252,2,132,79,252,128,16,0,5,0,134,79,252,128,5,0,112,0,136,79,252,2,158,89,252,128,16,0,5,0,160,89,252,2,104,90,252,128,16,0,5,0,106,90,252,2,188,92,252,128,16,0,5,0,190,92,252,2,36,93,252,128,16,0,5,128,49,0,5,0,38,93,252,2,208,93,252,128,16,0,5,0,210,93,252,2,32,94,252,128,16,0,5,0,34,94,252,2,36,94,252,128,38,0,5,0,38,94,252,128,49,0,5,0,40,94,252,2,56,94,252,128,27,0,5,0,58,94,252,2,100,98,252,128,16,0,5,128,5,0,112,0,102,98,252,2,176,98,252,128,16,0,5,0,178,98,252,2,156,106,252,128,16,0,5,0,158,106,252,2,250,106,252,128,16,0,5,0,252,106,252,2,26,109,252,128,16,0,5,0,28,109,252,2,184,110,252,128,16,0,5,0,186,110,252,2,100,111,252,128,16,0,5,0,102,111,252,2,8,112,252,128,16,0,5,128,27,0,5,0,10,112,252,2,128,113,252,128,16,0,5,128,5,0,112,0,130,113,252,2,54,123,252,128,16,0,5,0,56,123,252,2,16,124,252,128,16,0,5,0,18,124,252,2,134,125,252,128,16,0,5,0,136,125,252,2,210,134,252,128,16,0,5,128,5,0,112,0,212,134,252,128,16,0,5,0,214,134,252,2,240,134,252,128,16,0,5,128,27,0,5,128,49,0,5,0,242,134,252,2,158,135,252,128,16,0,5,128,27,0,5,0,160,135,252,2,50,136,252,128,16,0,5,0,52,136,252,2,80,137,252,128,49,0,5,0,82,137,252,2,88,140,252,128,16,0,5,0,90,140,252,2,156,140,252,128,16,0,5,0,158,140,252,2,134,141,252,128,27,0,5,0,136,141,252,2,22,148,252,128,16,0,5,0,24,148,252,2,50,148,252,128,49,0,5,0,52,148,252,2,118,152,252,128,16,0,5,0,120,152,252,2,154,154,252,128,16,0,5,128,5,0,112,0,156,154,252,2,76,158,252,128,27,0,5,0,78,158,252,2,76,168,252,128,16,0,5,0,78,168,252,2,70,174,252,128,16,0,5,0,72,174,252,128,16,0,5,0,74,174,252,2,168,175,252,128,49,0,5,0,170,175,252,2,220,185,252,128,16,0,5,0,222,185,252,2,198,188,252,128,16,0,5,0,200,188,252,2,238,189,252,128,16,0,5,0,240,189,252,128,16,0,5,128,5,0,112,0,242,189,252,128,16,0,5,128,5,0,112,128,5,0,120,0,244,189,252,2,14,193,252,128,16,0,5,128,5,0,112,128,5,0,120,0,16,193,252,2,22,193,252,128,16,0,5,0,24,193,252,2,136,195,252,128,16,0,5,0,138,195,252,2,84,198,252,128,16,0,5,0,86,198,252,128,16,0,5,0,88,198,252,2,214,198,252,128,16,0,5,0,216,198,252,2,40,199,252,128,16,0,5,0,42,199,252,2,74,200,252,128,16,0,5,0,76,200,252,2,128,203,252,128,16,0,5,128,5,0,112,0,130,203,252,128,16,0,5,0,132,203,252,2,226,203,252,128,16,0,5,128,5,0,112,0,228,203,252,2,90,215,252,128,16,0,5,0,92,215,252,2,222,215,252,128,16,0,5,0,224,215,252,2,152,216,252,128,16,0,5,0,154,216,252,2,10,217,252,128,16,0,5,128,5,0,112,0,12,217,252,2,106,218,252,128,16,0,5,0,108,218,252,2,90,219,252,128,16,0,5,0,92,219,252,2,128,219,252,128,16,0,5,0,130,219,252,2,106,222,252,128,16,0,5,0,108,222,252,2,140,222,252,128,16,0,5,0,142,222,252,2,6,223,252,128,16,0,5,0,8,223,252,128,16,0,5,128,5,0,112,128,5,0,120,0,10,223,252,2,174,252,252,128,16,0,5,0,176,252,252,2,178,252,252,128,16,0,5,0,180,252,252,2,150,254,252,128,16,0,5,0,152,254,252,2,202,14,253,128,16,0,5,0,204,14,253,2,118,15,253,128,16,0,5,0,120,15,253,2,52,16,253,128,16,0,5,0,54,16,253,128,16,0,5,0,56,16,253,2,136,24,253,128,16,0,5,0,138,24,253,128,16,0,5,0,140,24,253,128,16,0,5,0,142,24,253,2,42,25,253,128,16,0,5,0,44,25,253,2,148,27,253,128,16,0,5,0,150,27,253,2,240,27,253,128,16,0,5,128,5,0,112,0,242,27,253,2,152,28,253,128,49,0,5,0,154,28,253,2,38,30,253,128,16,0,5,0,40,30,253,2,192,40,253,128,16,0,5,0,194,40,253,2,160,43,253,128,16,0,5,0,162,43,253,2,90,44,253,128,16,0,5,0,92,44,253,2,112,45,253,128,16,0,5,0,114,45,253,2,36,47,253,128,16,0,5,0,38,47,253,2,190,48,253,128,16,0,5,0,192,48,253,2,218,48,253,128,16,0,5,128,27,0,5,0,220,48,253,2,14,49,253,128,49,0,5,0,16,49,253,2,8,50,253,128,16,0,5,128,27,0,5,0,10,50,253,2,202,53,253,128,16,0,5,0,204,53,253,2,190,54,253,128,16,0,5,0,192,54,253,2,84,55,253,128,16,0,5,128,49,0,5,0,86,55,253,2,84,59,253,128,16,0,5,128,5,0,112,0,86,59,253,2,230,68,253,128,16,0,5,0,232,68,253,2,218,70,253,128,16,0,5,0,220,70,253,2,100,76,253,128,16,0,5,0,102,76,253,2,186,77,253,128,16,0,5,0,188,77,253,2,128,78,253,128,16,0,5,0,130,78,253,2,176,78,253,128,16,0,5,0,178,78,253,128,16,0,5,128,5,0,112,128,5,0,120,0,180,78,253,2,144,82,253,128,49,0,5,0,146,82,253,2,26,84,253,128,27,0,5,0,28,84,253,2,98,87,253,128,16,0,5,128,5,0,112,0,100,87,253,2,148,93,253,128,16,0,5,0,150,93,253,2,166,93,253,128,49,0,5,0,168,93,253,2,30,98,253,128,16,0,5,0,32,98,253,2,98,98,253,128,16,0,5,0,100,98,253,2,242,98,253,128,16,0,5,128,27,0,5,0,244,98,253,2,86,114,253,128,16,0,5,0,88,114,253,2,200,118,253,128,16,0,5,0,202,118,253,128,16,0,5,0,204,118,253,2,2,120,253,128,16,0,5,0,4,120,253,2,6,120,253,128,16,0,5,0,8,120,253,2,84,124,253,128,16,0,5,0,86,124,253,2,154,125,253,128,16,0,5,128,5,0,112,0,156,125,253,128,16,0,5,0,158,125,253,2,186,131,253,128,16,0,5,0,188,131,253,2,228,131,253,128,16,0,5,0,230,131,253,2,178,134,253,128,16,0,5,128,5,0,112,0,180,134,253,2,216,139,253,128,16,0,5,0,218,139,253,128,16,0,5,0,220,139,253,2,44,140,253,128,16,0,5,0,46,140,253,2,152,140,253,128,16,0,5,0,154,140,253,2,160,141,253,128,16,0,5,0,162,141,253,2,196,145,253,128,16,0,5,0,198,145,253,2,30,147,253,128,16,0,5,0,32,147,253,2,108,147,253,128,16,0,5,0,110,147,253,2,184,147,253,128,16,0,5,0,186,147,253,2,142,148,253,128,16,0,5,0,144,148,253,2,162,148,253,128,27,0,5,0,164,148,253,2,70,153,253,128,16,0,5,0,72,153,253,2,82,154,253,128,16,0,5,0,84,154,253,2,242,156,253,128,16,0,5,0,244,156,253,2,122,157,253,128,16,0,5,0,124,157,253,2,164,157,253,128,16,0,5,0,166,157,253,2,170,157,253,128,16,0,5,0,172,157,253,128,16,0,5,128,5,0,112,0,174,157,253,2,20,163,253,128,16,0,5,0,22,163,253,2,110,164,253,128,16,0,5,128,5,0,112,0,112,164,253,2,252,164,253,128,16,0,5,0,254,164,253,2,208,165,253,128,16,0,5,0,210,165,253,2,244,171,253,128,16,0,5,0,246,171,253,2,168,173,253,128,16,0,5,128,5,0,112,0,170,173,253,2,232,175,253,128,16,0,5,0,234,175,253,2,186,176,253,128,16,0,5,0,188,176,253,2,58,180,253,128,16,0,5,0,60,180,253,2,136,180,253,128,16,0,5,0,138,180,253,2,172,180,253,128,16,0,5,0,174,180,253,2,166,181,253,128,16,0,5,128,5,0,112,0,168,181,253,2,2,184,253,128,16,0,5,0,4,184,253,2,64,193,253,128,16,0,5,0,66,193,253,2,218,195,253,128,16,0,5,0,220,195,253,2,72,206,253,128,16,0,5,0,74,206,253,2,240,208,253,128,16,0,5,128,5,0,112,0,242,208,253,2,178,209,253,128,16,0,5,0,180,209,253,2,56,211,253,128,16,0,5,0,58,211,253,2,196,212,253,128,16,0,5,0,198,212,253,2,94,213,253,128,16,0,5,0,96,213,253,2,210,213,253,128,16,0,5,0,212,213,253,128,16,0,5,0,214,213,253,2,124,214,253,128,16,0,5,0,126,214,253,2,252,214,253,128,16,0,5,0,254,214,253,2,36,217,253,128,16,0,5,0,38,217,253,2,62,217,253,128,16,0,5,0,64,217,253,2,222,217,253,128,16,0,5,0,224,217,253,2,6,218,253,128,16,0,5,0,8,218,253,2,62,218,253,128,16,0,5,0,64,218,253,2,220,218,253,128,16,0,5,0,222,218,253,2,240,219,253,128,16,0,5,0,242,219,253,2,176,220,253,128,16,0,5,128,5,0,112,0,178,220,253,2,236,220,253,128,16,0,5,0,238,220,253,2,248,220,253,128,16,0,5,128,5,0,112,0,250,220,253,2,110,223,253,128,16,0,5,0,112,223,253,2,12,224,253,128,16,0,5,128,5,0,112,0,14,224,253,2,96,224,253,128,16,0,5,0,98,224,253,2,118,224,253,128,16,0,5,128,5,0,112,128,5,0,120,0,120,224,253,2,218,224,253,128,16,0,5,0,220,224,253,2,236,224,253,128,16,0,5,0,238,224,253,2,40,225,253,0,2,4,254,0,2,2,255,0,0,253,255,0,0,255,255,0,255,255,255,26,9,5,5,1,0,76,0,255,255,219,251,194,5,108,0,255,255,219,251,194,5,70,97,174,5,48,0,6,3,255,255,78,97,160,5,70,97,5,5,48,0,6,3,255,255,78,97,5,5,26,102,5,5,2,0,83,6,255,255,8,102,5,5,84,6,255,255,10,102,5,5,85,6,255,255,18,102,5,5,222,102,5,5,48,0,84,6,255,255,16,102,5,5,238,102,5,5,48,0,84,6,255,255,22,102,5,5,124,105,5,5,1,0,190,9,255,255,128,105,5,5,215,9,255,255,130,105,5,5,126,108,5,5,2,0,62,11,255,255,130,108,5,5,86,11,255,255,128,108,5,5,87,11,255,255,132,108,5,5,26,109,5,5,48,0,215,11,255,255,30,109,5,5,90,109,5,5,1,0,190,11,255,255,96,109,5,5,215,11,255,255,100,109,5,5,92,109,5,5,48,0,190,11,255,255,98,109,5,5,136,110,5,5,48,0,86,12,255,255,140,110,5,5,120,111,5,5,48,0,213,12,255,255,122,111,5,5,136,111,5,5,2,0,194,12,8,0,213,12,255,255,138,111,5,5,214,12,255,255,140,111,5,5,240,127,142,111,5,5,213,12,255,255,144,111,5,5,142,111,5,5,48,0,213,12,255,255,144,111,5,5,138,112,5,5,1,0,62,13,255,255,144,112,5,5,87,13,255,255,148,112,5,5,140,112,5,5,48,0,62,13,255,255,146,112,5,5,146,113,5,5,2,0,202,13,255,255,148,113,5,5,207,13,4,0,223,13,255,255,156,113,5,5,240,127,152,113,5,5,202,13,255,255,154,113,5,5,152,113,5,5,48,0,202,13,255,255,154,113,5,5,122,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,2,45,14,255,193,197,66,46,14,0,194,197,130,41,14,250,193,197,66,42,14,251,193,197,130,43,14,252,193,197,194,38,14,9,0,38,14,246,193,197,130,39,14,247,193,197,194,40,14,249,193,197,2,35,14,242,193,197,194,36,14,244,193,197,2,37,14,245,193,197,66,29,14,20,0,32,14,9,0,32,14,239,193,197,2,33,14,240,193,197,66,34,14,241,193,197,130,29,14,235,193,197,66,30,14,236,193,197,130,31,14,237,193,197,194,24,14,229,193,197,2,25,14,230,193,197,66,26,14,231,193,197,130,27,14,232,193,197,194,28,14,234,193,197,2,12,14,42,0,18,14,20,0,21,14,9,0,21,14,225,193,197,66,22,14,226,193,197,130,23,14,227,193,197,194,18,14,221,193,197,130,19,14,222,193,197,194,20,14,224,193,197,2,15,14,9,0,15,14,217,193,197,194,16,14,219,193,197,2,17,14,220,193,197,66,12,14,214,193,197,2,13,14,215,193,197,66,14,14,216,193,197,130,6,14,20,0,9,14,9,0,9,14,210,193,197,66,10,14,211,193,197,130,11,14,212,193,197,194,6,14,206,193,197,130,7,14,207,193,197,194,8,14,209,193,197,2,1,14,200,193,197,66,2,14,201,193,197,130,3,14,202,193,197,194,4,14,204,193,197,2,5,14,205,193,197,66,124,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,66,45,14,255,193,197,130,46,14,0,194,197,194,41,14,250,193,197,130,42,14,251,193,197,194,43,14,253,193,197,2,38,14,9,0,38,14,246,193,197,194,39,14,248,193,197,2,40,14,249,193,197,66,35,14,243,193,197,2,36,14,244,193,197,66,37,14,245,193,197,130,29,14,20,0,32,14,9,0,32,14,239,193,197,66,33,14,240,193,197,130,34,14,241,193,197,194,29,14,235,193,197,130,30,14,236,193,197,194,31,14,238,193,197,2,24,14,229,193,197,66,25,14,230,193,197,130,26,14,231,193,197,194,27,14,233,193,197,2,28,14,234,193,197,66,12,14,42,0,18,14,20,0,21,14,9,0,21,14,225,193,197,130,22,14,226,193,197,194,23,14,228,193,197,2,18,14,221,193,197,194,19,14,223,193,197,2,20,14,224,193,197,66,15,14,9,0,15,14,218,193,197,2,16,14,219,193,197,66,17,14,220,193,197,130,12,14,214,193,197,66,13,14,215,193,197,130,14,14,216,193,197,194,6,14,20,0,9,14,9,0,9,14,210,193,197,130,10,14,211,193,197,194,11,14,213,193,197,2,6,14,206,193,197,194,7,14,208,193,197,2,8,14,209,193,197,66,1,14,200,193,197,130,2,14,201,193,197,194,3,14,203,193,197,2,4,14,204,193,197,66,5,14,205,193,197,130,126,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,130,45,14,255,193,197,194,46,14,1,194,197,2,41,14,250,193,197,194,42,14,252,193,197,2,43,14,253,193,197,66,38,14,9,0,38,14,247,193,197,2,39,14,248,193,197,66,40,14,249,193,197,130,35,14,243,193,197,66,36,14,244,193,197,130,37,14,245,193,197,194,29,14,20,0,32,14,9,0,32,14,239,193,197,130,33,14,240,193,197,194,34,14,242,193,197,2,29,14,235,193,197,194,30,14,237,193,197,2,31,14,238,193,197,66,24,14,229,193,197,130,25,14,230,193,197,194,26,14,232,193,197,2,27,14,233,193,197,66,28,14,234,193,197,130,12,14,42,0,18,14,20,0,21,14,9,0,21,14,225,193,197,194,22,14,227,193,197,2,23,14,228,193,197,66,18,14,222,193,197,2,19,14,223,193,197,66,20,14,224,193,197,130,15,14,9,0,15,14,218,193,197,66,16,14,219,193,197,130,17,14,220,193,197,194,12,14,214,193,197,130,13,14,215,193,197,194,14,14,217,193,197,2,6,14,20,0,9,14,9,0,9,14,210,193,197,194,10,14,212,193,197,2,11,14,213,193,197,66,6,14,207,193,197,2,7,14,208,193,197,66,8,14,209,193,197,130,1,14,200,193,197,194,2,14,202,193,197,2,3,14,203,193,197,66,4,14,204,193,197,130,5,14,205,193,197,194,128,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,254,193,197,194,45,14,0,194,197,2,46,14,1,194,197,66,41,14,251,193,197,2,42,14,252,193,197,66,43,14,253,193,197,130,38,14,9,0,38,14,247,193,197,66,39,14,248,193,197,130,40,14,249,193,197,194,35,14,243,193,197,130,36,14,244,193,197,194,37,14,246,193,197,2,29,14,20,0,32,14,9,0,32,14,239,193,197,194,33,14,241,193,197,2,34,14,242,193,197,66,29,14,236,193,197,2,30,14,237,193,197,66,31,14,238,193,197,130,24,14,229,193,197,194,25,14,231,193,197,2,26,14,232,193,197,66,27,14,233,193,197,130,28,14,234,193,197,194,12,14,42,0,18,14,20,0,21,14,9,0,21,14,226,193,197,2,22,14,227,193,197,66,23,14,228,193,197,130,18,14,222,193,197,66,19,14,223,193,197,130,20,14,224,193,197,194,15,14,9,0,15,14,218,193,197,130,16,14,219,193,197,194,17,14,221,193,197,2,12,14,214,193,197,194,13,14,216,193,197,2,14,14,217,193,197,66,6,14,20,0,9,14,9,0,9,14,211,193,197,2,10,14,212,193,197,66,11,14,213,193,197,130,6,14,207,193,197,66,7,14,208,193,197,130,8,14,209,193,197,194,1,14,201,193,197,2,2,14,202,193,197,66,3,14,203,193,197,130,4,14,204,193,197,194,5,14,206,193,197,2,130,114,5,5,45,0,24,14,81,0,35,14,42,0,41,14,20,0,44,14,9,0,44,14,255,193,197,2,45,14,0,194,197,66,46,14,1,194,197,130,41,14,251,193,197,66,42,14,252,193,197,130,43,14,253,193,197,194,38,14,9,0,38,14,247,193,197,130,39,14,248,193,197,194,40,14,250,193,197,2,35,14,243,193,197,194,36,14,245,193,197,2,37,14,246,193,197,66,29,14,20,0,32,14,9,0,32,14,240,193,197,2,33,14,241,193,197,66,34,14,242,193,197,130,29,14,236,193,197,66,30,14,237,193,197,130,31,14,238,193,197,194,24,14,230,193,197,2,25,14,231,193,197,66,26,14,232,193,197,130,27,14,233,193,197,194,28,14,235,193,197,2,12,14,42,0,18,14,20,0,21,14,9,0,21,14,226,193,197,66,22,14,227,193,197,130,23,14,228,193,197,194,18,14,222,193,197,130,19,14,223,193,197,194,20,14,225,193,197,2,15,14,9,0,15,14,218,193,197,194,16,14,220,193,197,2,17,14,221,193,197,66,12,14,215,193,197,2,13,14,216,193,197,66,14,14,217,193,197,130,6,14,20,0,9,14,9,0,9,14,211,193,197,66,10,14,212,193,197,130,11,14,213,193,197,194,6,14,207,193,197,130,7,14,208,193,197,194,8,14,210,193,197,2,1,14,201,193,197,66,2,14,202,193,197,130,3,14,203,193,197,194,4,14,205,193,197,2,5,14,206,193,197,66,205,243,194,5,48,0,50,14,255,255,106,114,5,5,122,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,52,194,197,227,222,14,1,194,197,194,223,14,16,194,197,194,173,14,57,194,197,66,174,14,58,194,197,130,220,14,50,194,197,195,170,14,9,0,170,14,11,194,197,194,171,14,54,194,197,194,172,14,56,194,197,2,167,14,46,194,197,194,168,14,48,194,197,2,169,14,49,194,197,66,159,14,20,0,162,14,9,0,162,14,43,194,197,2,163,14,44,194,197,66,165,14,45,194,197,130,159,14,39,194,197,66,160,14,40,194,197,130,161,14,41,194,197,194,154,14,33,194,197,2,155,14,34,194,197,66,156,14,35,194,197,130,157,14,36,194,197,194,158,14,38,194,197,2,143,14,37,0,148,14,20,0,151,14,9,0,151,14,29,194,197,66,152,14,30,194,197,130,153,14,31,194,197,194,148,14,25,194,197,130,149,14,26,194,197,194,150,14,28,194,197,2,143,14,19,194,197,66,144,14,20,194,197,130,145,14,21,194,197,194,146,14,23,194,197,2,147,14,24,194,197,66,136,14,20,0,140,14,9,0,140,14,14,194,197,66,141,14,18,194,197,2,142,14,15,194,197,130,136,14,9,194,197,66,137,14,10,194,197,130,138,14,13,194,197,2,129,14,3,194,197,2,130,14,4,194,197,66,132,14,5,194,197,130,134,14,6,194,197,194,135,14,8,194,197,2,124,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,53,194,197,67,222,14,2,194,197,2,223,14,17,194,197,2,173,14,57,194,197,130,174,14,58,194,197,194,220,14,51,194,197,35,170,14,9,0,170,14,12,194,197,2,171,14,55,194,197,2,172,14,56,194,197,66,167,14,47,194,197,2,168,14,48,194,197,66,169,14,49,194,197,130,159,14,20,0,162,14,9,0,162,14,43,194,197,66,163,14,44,194,197,130,165,14,45,194,197,194,159,14,39,194,197,130,160,14,40,194,197,194,161,14,42,194,197,2,154,14,33,194,197,66,155,14,34,194,197,130,156,14,35,194,197,194,157,14,37,194,197,2,158,14,38,194,197,66,143,14,37,0,148,14,20,0,151,14,9,0,151,14,29,194,197,130,152,14,30,194,197,194,153,14,32,194,197,2,148,14,25,194,197,194,149,14,27,194,197,2,150,14,28,194,197,66,143,14,19,194,197,130,144,14,20,194,197,194,145,14,22,194,197,2,146,14,23,194,197,66,147,14,24,194,197,130,136,14,20,0,140,14,9,0,140,14,14,194,197,130,141,14,18,194,197,66,142,14,15,194,197,194,136,14,9,194,197,130,137,14,10,194,197,194,138,14,13,194,197,66,129,14,3,194,197,66,130,14,4,194,197,130,132,14,5,194,197,194,134,14,7,194,197,2,135,14,8,194,197,66,126,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,53,194,197,163,222,14,2,194,197,66,223,14,17,194,197,66,173,14,57,194,197,194,174,14,59,194,197,2,220,14,51,194,197,131,170,14,9,0,170,14,12,194,197,66,171,14,55,194,197,66,172,14,56,194,197,130,167,14,47,194,197,66,168,14,48,194,197,130,169,14,49,194,197,194,159,14,20,0,162,14,9,0,162,14,43,194,197,130,163,14,44,194,197,194,165,14,46,194,197,2,159,14,39,194,197,194,160,14,41,194,197,2,161,14,42,194,197,66,154,14,33,194,197,130,155,14,34,194,197,194,156,14,36,194,197,2,157,14,37,194,197,66,158,14,38,194,197,130,143,14,37,0,148,14,20,0,151,14,9,0,151,14,29,194,197,194,152,14,31,194,197,2,153,14,32,194,197,66,148,14,26,194,197,2,149,14,27,194,197,66,150,14,28,194,197,130,143,14,19,194,197,194,144,14,21,194,197,2,145,14,22,194,197,66,146,14,23,194,197,130,147,14,24,194,197,194,136,14,20,0,140,14,9,0,140,14,14,194,197,194,141,14,18,194,197,130,142,14,16,194,197,2,136,14,9,194,197,194,137,14,11,194,197,2,138,14,13,194,197,130,129,14,3,194,197,130,130,14,4,194,197,194,132,14,6,194,197,2,134,14,7,194,197,66,135,14,8,194,197,130,128,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,54,194,197,3,222,14,2,194,197,130,223,14,17,194,197,130,173,14,58,194,197,2,174,14,59,194,197,66,220,14,51,194,197,227,170,14,9,0,170,14,12,194,197,130,171,14,55,194,197,130,172,14,56,194,197,194,167,14,47,194,197,130,168,14,48,194,197,194,169,14,50,194,197,2,159,14,20,0,162,14,9,0,162,14,43,194,197,194,163,14,45,194,197,2,165,14,46,194,197,66,159,14,40,194,197,2,160,14,41,194,197,66,161,14,42,194,197,130,154,14,33,194,197,194,155,14,35,194,197,2,156,14,36,194,197,66,157,14,37,194,197,130,158,14,38,194,197,194,143,14,37,0,148,14,20,0,151,14,9,0,151,14,30,194,197,2,152,14,31,194,197,66,153,14,32,194,197,130,148,14,26,194,197,66,149,14,27,194,197,130,150,14,28,194,197,194,143,14,20,194,197,2,144,14,21,194,197,66,145,14,22,194,197,130,146,14,23,194,197,194,147,14,25,194,197,2,136,14,20,0,140,14,9,0,140,14,15,194,197,2,141,14,18,194,197,194,142,14,16,194,197,66,136,14,10,194,197,2,137,14,11,194,197,66,138,14,13,194,197,194,129,14,3,194,197,194,130,14,5,194,197,2,132,14,6,194,197,66,134,14,7,194,197,130,135,14,8,194,197,194,130,115,5,5,44,0,154,14,81,0,167,14,42,0,173,14,20,0,221,14,9,0,221,14,54,194,197,99,222,14,2,194,197,194,223,14,17,194,197,194,173,14,58,194,197,66,174,14,59,194,197,130,220,14,52,194,197,67,170,14,9,0,170,14,12,194,197,194,171,14,55,194,197,194,172,14,57,194,197,2,167,14,47,194,197,194,168,14,49,194,197,2,169,14,50,194,197,66,159,14,20,0,162,14,9,0,162,14,44,194,197,2,163,14,45,194,197,66,165,14,46,194,197,130,159,14,40,194,197,66,160,14,41,194,197,130,161,14,42,194,197,194,154,14,34,194,197,2,155,14,35,194,197,66,156,14,36,194,197,130,157,14,37,194,197,194,158,14,39,194,197,2,143,14,37,0,148,14,20,0,151,14,9,0,151,14,30,194,197,66,152,14,31,194,197,130,153,14,32,194,197,194,148,14,26,194,197,130,149,14,27,194,197,194,150,14,29,194,197,2,143,14,20,194,197,66,144,14,21,194,197,130,145,14,22,194,197,194,146,14,24,194,197,2,147,14,25,194,197,66,136,14,20,0,140,14,9,0,140,14,15,194,197,66,141,14,19,194,197,2,142,14,16,194,197,130,136,14,10,194,197,66,137,14,11,194,197,130,138,14,14,194,197,2,129,14,4,194,197,2,130,14,5,194,197,66,132,14,6,194,197,130,134,14,7,194,197,194,135,14,9,194,197,2,149,244,194,5,48,0,178,14,255,255,100,115,5,5,166,116,5,5,2,0,114,15,255,255,170,116,5,5,116,15,255,255,178,116,5,5,128,15,255,255,174,116,5,5,122,116,5,5,4,0,113,15,14,0,115,15,123,194,197,2,117,15,123,194,197,66,128,15,255,255,180,116,5,5,129,15,255,255,182,116,5,5,194,127,122,2,197,194,114,15,123,194,197,2,116,15,123,194,197,66,128,15,255,255,182,116,5,5,128,116,5,5,4,0,113,15,14,0,115,15,123,194,197,194,117,15,124,194,197,2,128,15,255,255,184,116,5,5,129,15,255,255,186,116,5,5,194,127,123,2,197,130,114,15,123,194,197,194,116,15,124,194,197,2,128,15,255,255,186,116,5,5,85,117,193,128,48,0,46,16,255,255,85,117,193,135,9,118,193,142,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,34,170,25,168,194,197,34,171,25,169,194,197,34,166,25,164,194,197,34,167,25,165,194,197,34,168,25,166,194,197,34,161,25,159,194,197,34,162,25,160,194,197,34,163,25,161,194,197,34,164,25,162,194,197,34,165,25,163,194,197,34,155,25,20,0,158,25,9,0,158,25,156,194,197,34,159,25,157,194,197,34,160,25,158,194,197,34,155,25,152,194,197,130,156,25,153,194,197,130,157,25,155,194,197,34,150,25,147,194,197,130,151,25,148,194,197,130,152,25,149,194,197,130,153,25,150,194,197,130,154,25,151,194,197,130,139,25,37,0,144,25,20,0,147,25,9,0,147,25,144,194,197,130,148,25,145,194,197,130,149,25,146,194,197,130,144,25,141,194,197,130,145,25,142,194,197,130,146,25,143,194,197,130,139,25,136,194,197,130,140,25,137,194,197,130,141,25,138,194,197,130,142,25,139,194,197,130,143,25,140,194,197,130,133,25,20,0,136,25,9,0,136,25,133,194,197,130,137,25,134,194,197,130,138,25,135,194,197,130,133,25,130,194,197,130,134,25,131,194,197,130,135,25,132,194,197,130,128,25,125,194,197,130,129,25,126,194,197,130,130,25,127,194,197,130,131,25,128,194,197,130,132,25,129,194,197,130,11,118,5,5,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,98,170,25,168,194,197,98,171,25,169,194,197,98,166,25,164,194,197,98,167,25,165,194,197,98,168,25,166,194,197,98,161,25,159,194,197,98,162,25,160,194,197,98,163,25,161,194,197,98,164,25,162,194,197,98,165,25,163,194,197,98,155,25,20,0,158,25,9,0,158,25,156,194,197,98,159,25,157,194,197,98,160,25,158,194,197,98,155,25,152,194,197,194,156,25,153,194,197,194,157,25,155,194,197,98,150,25,147,194,197,194,151,25,148,194,197,194,152,25,149,194,197,194,153,25,150,194,197,194,154,25,151,194,197,194,139,25,37,0,144,25,20,0,147,25,9,0,147,25,144,194,197,194,148,25,145,194,197,194,149,25,146,194,197,194,144,25,141,194,197,194,145,25,142,194,197,194,146,25,143,194,197,194,139,25,136,194,197,194,140,25,137,194,197,194,141,25,138,194,197,194,142,25,139,194,197,194,143,25,140,194,197,194,133,25,20,0,136,25,9,0,136,25,133,194,197,194,137,25,134,194,197,194,138,25,135,194,197,194,133,25,130,194,197,194,134,25,131,194,197,194,135,25,132,194,197,194,128,25,125,194,197,194,129,25,126,194,197,194,130,25,127,194,197,194,131,25,128,194,197,194,132,25,129,194,197,194,13,118,193,2,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,162,170,25,168,194,197,162,171,25,169,194,197,162,166,25,164,194,197,162,167,25,165,194,197,162,168,25,166,194,197,162,161,25,159,194,197,162,162,25,160,194,197,162,163,25,161,194,197,162,164,25,162,194,197,162,165,25,163,194,197,162,155,25,20,0,158,25,9,0,158,25,156,194,197,162,159,25,157,194,197,162,160,25,158,194,197,162,155,25,153,194,197,2,156,25,154,194,197,162,157,25,155,194,197,162,150,25,148,194,197,2,151,25,149,194,197,2,152,25,150,194,197,2,153,25,151,194,197,2,154,25,152,194,197,2,139,25,37,0,144,25,20,0,147,25,9,0,147,25,145,194,197,2,148,25,146,194,197,2,149,25,147,194,197,2,144,25,142,194,197,2,145,25,143,194,197,2,146,25,144,194,197,2,139,25,137,194,197,2,140,25,138,194,197,2,141,25,139,194,197,2,142,25,140,194,197,2,143,25,141,194,197,2,133,25,20,0,136,25,9,0,136,25,134,194,197,2,137,25,135,194,197,2,138,25,136,194,197,2,133,25,131,194,197,2,134,25,132,194,197,2,135,25,133,194,197,2,128,25,126,194,197,2,129,25,127,194,197,2,130,25,128,194,197,2,131,25,129,194,197,2,132,25,130,194,197,2,13,118,193,23,43,0,150,25,76,0,161,25,37,0,166,25,20,0,169,25,9,0,169,25,167,194,197,226,170,25,168,194,197,226,171,25,169,194,197,226,166,25,164,194,197,226,167,25,165,194,197,226,168,25,166,194,197,226,161,25,159,194,197,226,162,25,160,194,197,226,163,25,161,194,197,226,164,25,162,194,197,226,165,25,163,194,197,226,155,25,20,0,158,25,9,0,158,25,156,194,197,226,159,25,157,194,197,226,160,25,158,194,197,226,155,25,153,194,197,66,156,25,154,194,197,226,157,25,155,194,197,226,150,25,148,194,197,66,151,25,149,194,197,66,152,25,150,194,197,66,153,25,151,194,197,66,154,25,152,194,197,66,139,25,37,0,144,25,20,0,147,25,9,0,147,25,145,194,197,66,148,25,146,194,197,66,149,25,147,194,197,66,144,25,142,194,197,66,145,25,143,194,197,66,146,25,144,194,197,66,139,25,137,194,197,66,140,25,138,194,197,66,141,25,139,194,197,66,142,25,140,194,197,66,143,25,141,194,197,66,133,25,20,0,136,25,9,0,136,25,134,194,197,66,137,25,135,194,197,66,138,25,136,194,197,66,133,25,131,194,197,66,134,25,132,194,197,66,135,25,133,194,197,66,128,25,126,194,197,66,129,25,127,194,197,66,130,25,128,194,197,66,131,25,129,194,197,66,132,25,130,194,197,66,40,118,193,9,48,0,53,27,255,255,40,118,193,16,40,118,193,23,48,0,53,27,255,255,40,118,193,30,40,118,193,37,48,0,53,27,255,255,40,118,193,44,40,118,193,51,48,0,53,27,255,255,40,118,193,58,40,118,193,65,48,0,53,27,255,255,40,118,193,72,40,118,193,93,48,0,53,27,255,255,40,118,193,100,41,118,193,168,48,0,53,27,255,255,41,118,193,175,41,118,193,182,48,0,53,27,255,255,41,118,193,189,41,118,193,196,48,0,53,27,255,255,41,118,193,210,41,118,193,203,48,0,53,27,255,255,41,118,193,217,41,118,193,224,48,0,53,27,255,255,41,118,193,231,133,115,193,126,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,2,174,170,117,194,197,66,175,170,118,194,197,130,170,170,112,194,197,66,171,170,113,194,197,130,172,170,114,194,197,194,167,170,9,0,167,170,108,194,197,130,168,170,109,194,197,194,169,170,111,194,197,2,164,170,104,194,197,194,165,170,106,194,197,2,166,170,107,194,197,66,158,170,20,0,161,170,9,0,161,170,101,194,197,2,162,170,102,194,197,66,163,170,103,194,197,130,158,170,97,194,197,66,159,170,98,194,197,130,160,170,99,194,197,194,155,170,9,0,155,170,93,194,197,130,156,170,94,194,197,194,157,170,96,194,197,2,152,170,89,194,197,194,153,170,91,194,197,2,154,170,92,194,197,66,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,2,150,170,87,194,197,66,151,170,88,194,197,130,146,170,82,194,197,66,147,170,83,194,197,130,148,170,84,194,197,194,143,170,9,0,143,170,78,194,197,130,144,170,79,194,197,194,145,170,81,194,197,2,140,170,74,194,197,194,141,170,76,194,197,2,142,170,77,194,197,66,134,170,20,0,137,170,9,0,137,170,71,194,197,2,138,170,72,194,197,66,139,170,73,194,197,130,134,170,67,194,197,66,135,170,68,194,197,130,136,170,69,194,197,194,131,170,9,0,131,170,63,194,197,130,132,170,64,194,197,194,133,170,66,194,197,2,128,170,59,194,197,194,129,170,61,194,197,2,130,170,62,194,197,66,133,115,193,133,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,66,174,170,117,194,197,130,175,170,118,194,197,194,170,170,112,194,197,130,171,170,113,194,197,194,172,170,115,194,197,2,167,170,9,0,167,170,108,194,197,194,168,170,110,194,197,2,169,170,111,194,197,66,164,170,105,194,197,2,165,170,106,194,197,66,166,170,107,194,197,130,158,170,20,0,161,170,9,0,161,170,101,194,197,66,162,170,102,194,197,130,163,170,103,194,197,194,158,170,97,194,197,130,159,170,98,194,197,194,160,170,100,194,197,2,155,170,9,0,155,170,93,194,197,194,156,170,95,194,197,2,157,170,96,194,197,66,152,170,90,194,197,2,153,170,91,194,197,66,154,170,92,194,197,130,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,66,150,170,87,194,197,130,151,170,88,194,197,194,146,170,82,194,197,130,147,170,83,194,197,194,148,170,85,194,197,2,143,170,9,0,143,170,78,194,197,194,144,170,80,194,197,2,145,170,81,194,197,66,140,170,75,194,197,2,141,170,76,194,197,66,142,170,77,194,197,130,134,170,20,0,137,170,9,0,137,170,71,194,197,66,138,170,72,194,197,130,139,170,73,194,197,194,134,170,67,194,197,130,135,170,68,194,197,194,136,170,70,194,197,2,131,170,9,0,131,170,63,194,197,194,132,170,65,194,197,2,133,170,66,194,197,66,128,170,60,194,197,2,129,170,61,194,197,66,130,170,62,194,197,130,133,115,193,154,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,130,174,170,117,194,197,194,175,170,119,194,197,2,170,170,112,194,197,194,171,170,114,194,197,2,172,170,115,194,197,66,167,170,9,0,167,170,109,194,197,2,168,170,110,194,197,66,169,170,111,194,197,130,164,170,105,194,197,66,165,170,106,194,197,130,166,170,107,194,197,194,158,170,20,0,161,170,9,0,161,170,101,194,197,130,162,170,102,194,197,194,163,170,104,194,197,2,158,170,97,194,197,194,159,170,99,194,197,2,160,170,100,194,197,66,155,170,9,0,155,170,94,194,197,2,156,170,95,194,197,66,157,170,96,194,197,130,152,170,90,194,197,66,153,170,91,194,197,130,154,170,92,194,197,194,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,130,150,170,87,194,197,194,151,170,89,194,197,2,146,170,82,194,197,194,147,170,84,194,197,2,148,170,85,194,197,66,143,170,9,0,143,170,79,194,197,2,144,170,80,194,197,66,145,170,81,194,197,130,140,170,75,194,197,66,141,170,76,194,197,130,142,170,77,194,197,194,134,170,20,0,137,170,9,0,137,170,71,194,197,130,138,170,72,194,197,194,139,170,74,194,197,2,134,170,67,194,197,194,135,170,69,194,197,2,136,170,70,194,197,66,131,170,9,0,131,170,64,194,197,2,132,170,65,194,197,66,133,170,66,194,197,130,128,170,60,194,197,66,129,170,61,194,197,130,130,170,62,194,197,194,133,115,193,168,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,116,194,197,194,174,170,118,194,197,2,175,170,119,194,197,66,170,170,113,194,197,2,171,170,114,194,197,66,172,170,115,194,197,130,167,170,9,0,167,170,109,194,197,66,168,170,110,194,197,130,169,170,111,194,197,194,164,170,105,194,197,130,165,170,106,194,197,194,166,170,108,194,197,2,158,170,20,0,161,170,9,0,161,170,101,194,197,194,162,170,103,194,197,2,163,170,104,194,197,66,158,170,98,194,197,2,159,170,99,194,197,66,160,170,100,194,197,130,155,170,9,0,155,170,94,194,197,66,156,170,95,194,197,130,157,170,96,194,197,194,152,170,90,194,197,130,153,170,91,194,197,194,154,170,93,194,197,2,140,170,42,0,146,170,20,0,149,170,9,0,149,170,86,194,197,194,150,170,88,194,197,2,151,170,89,194,197,66,146,170,83,194,197,2,147,170,84,194,197,66,148,170,85,194,197,130,143,170,9,0,143,170,79,194,197,66,144,170,80,194,197,130,145,170,81,194,197,194,140,170,75,194,197,130,141,170,76,194,197,194,142,170,78,194,197,2,134,170,20,0,137,170,9,0,137,170,71,194,197,194,138,170,73,194,197,2,139,170,74,194,197,66,134,170,68,194,197,2,135,170,69,194,197,66,136,170,70,194,197,130,131,170,9,0,131,170,64,194,197,66,132,170,65,194,197,130,133,170,66,194,197,194,128,170,60,194,197,130,129,170,61,194,197,194,130,170,63,194,197,2,133,115,193,175,47,0,152,170,86,0,164,170,42,0,170,170,20,0,173,170,9,0,173,170,117,194,197,2,174,170,118,194,197,66,175,170,119,194,197,130,170,170,113,194,197,66,171,170,114,194,197,130,172,170,115,194,197,194,167,170,9,0,167,170,109,194,197,130,168,170,110,194,197,194,169,170,112,194,197,2,164,170,105,194,197,194,165,170,107,194,197,2,166,170,108,194,197,66,158,170,20,0,161,170,9,0,161,170,102,194,197,2,162,170,103,194,197,66,163,170,104,194,197,130,158,170,98,194,197,66,159,170,99,194,197,130,160,170,100,194,197,194,155,170,9,0,155,170,94,194,197,130,156,170,95,194,197,194,157,170,97,194,197,2,152,170,90,194,197,194,153,170,92,194,197,2,154,170,93,194,197,66,140,170,42,0,146,170,20,0,149,170,9,0,149,170,87,194,197,2,150,170,88,194,197,66,151,170,89,194,197,130,146,170,83,194,197,66,147,170,84,194,197,130,148,170,85,194,197,194,143,170,9,0,143,170,79,194,197,130,144,170,80,194,197,194,145,170,82,194,197,2,140,170,75,194,197,194,141,170,77,194,197,2,142,170,78,194,197,66,134,170,20,0,137,170,9,0,137,170,72,194,197,2,138,170,73,194,197,66,139,170,74,194,197,130,134,170,68,194,197,66,135,170,69,194,197,130,136,170,70,194,197,194,131,170,9,0,131,170,64,194,197,130,132,170,65,194,197,194,133,170,67,194,197,2,128,170,60,194,197,194,129,170,62,194,197,2,130,170,63,194,197,66,255,255,255,255,0,0,92,0,131,27,30,2,0,170,183,1,8,216,104,0,35,216,48,0,56,216,26,0,56,216,6,0,58,216,13,0,208,253,255,255,4,254,193,2,1,0,8,221,255,255,243,123,193,2,225,222,255,255,245,123,193,2,1,0,2,220,255,255,95,120,193,2,9,221,255,255,167,120,193,2,35,216,8,0,44,216,11,0,47,216,48,0,32,220,255,255,88,124,193,2,48,0,101,220,255,255,166,125,193,2,48,0,196,221,255,255,155,125,193,2,26,216,32,0,26,216,8,0,27,216,19,0,32,216,48,0,41,222,255,255,100,125,193,2,2,0,79,222,255,255,98,124,193,2,230,222,255,255,94,120,193,2,28,223,255,255,240,123,193,2,1,0,64,222,255,255,101,120,193,2,0,223,255,255,153,123,193,2,8,216,8,0,12,216,11,0,17,216,48,0,0,220,255,255,83,125,193,2,48,0,0,220,255,255,207,124,193,2,48,0,83,221,255,255,4,125,193,2,2,216,244,0,5,216,84,0,5,216,24,0,6,216,49,0,7,216,4,0,14,220,255,255,248,113,193,2,114,220,255,255,4,117,193,2,16,221,255,255,224,113,193,2,113,221,255,255,229,113,193,2,229,222,255,255,30,117,193,2,5,0,14,222,12,0,14,222,255,255,201,113,193,2,128,222,255,255,203,113,193,2,23,223,255,255,211,113,193,2,18,220,255,255,180,113,193,2,132,220,255,255,183,113,193,2,142,221,255,255,185,113,193,2,6,0,206,221,16,0,206,221,255,255,207,113,193,2,11,222,255,255,198,116,193,2,92,222,255,255,209,116,193,2,192,222,255,255,238,123,193,2,11,220,255,255,209,113,193,2,180,220,255,255,172,123,193,2,12,221,255,255,205,113,193,2,2,216,46,0,3,216,119,0,4,216,9,0,131,221,20,0,131,221,255,255,170,113,193,2,8,222,255,255,172,113,193,2,143,222,255,255,176,113,193,2,190,222,255,255,174,113,193,2,21,223,255,255,178,113,193,2,5,220,255,255,244,113,193,2,131,220,255,255,166,113,193,2,208,220,255,255,97,124,193,2,3,221,255,255,96,117,193,2,82,221,255,255,168,113,193,2,16,0,160,221,38,0,216,222,20,0,216,222,255,255,163,124,193,2,0,223,255,255,119,124,193,2,64,223,255,255,159,124,193,2,96,223,255,255,160,124,193,2,143,223,255,255,161,124,193,2,160,221,255,255,34,125,193,2,0,222,255,255,246,113,193,2,96,222,255,255,117,124,193,2,149,222,255,255,118,124,193,2,244,220,16,0,244,220,255,255,157,124,193,2,0,221,255,255,50,101,193,2,32,221,255,255,250,123,193,2,128,221,255,255,34,125,193,2,0,220,255,255,115,124,193,2,64,220,255,255,158,124,193,2,115,220,255,255,125,124,193,2,150,220,255,255,130,124,193,2,7,0,25,223,16,0,25,223,255,255,168,124,193,2,66,223,255,255,196,124,193,2,191,223,255,255,203,124,193,2,241,223,255,255,162,124,193,2,0,220,255,255,144,119,193,2,161,220,255,255,60,119,193,2,18,221,255,255,94,117,193,2,136,222,255,255,201,124,193,2,0,172,73,0,0,172,255,255,4,121,193,2,0,216,32,0,1,216,6,0,181,220,16,0,181,220,255,255,232,118,193,2,0,221,255,255,93,124,193,2,55,221,255,255,95,124,193,2,71,222,255,255,105,124,193,2,20,220,255,255,4,124,193,2,80,220,255,255,86,124,193,2,128,220,255,255,92,124,193,2,7,0,48,223,16,0,48,223,255,255,252,123,193,2,107,223,255,255,100,98,193,2,128,223,255,255,204,124,193,2,160,223,255,255,205,124,193,2,0,220,255,255,99,124,193,2,128,222,255,255,247,123,193,2,160,222,255,255,248,123,193,2,0,223,255,255,251,123,193,2,0,170,255,255,38,118,193,2,128,170,255,255,132,115,193,2,192,171,255,255,160,113,193,2,5,49,54,0,0,168,26,0,10,169,12,0,10,169,255,255,78,117,193,2,48,169,255,255,76,117,193,2,132,169,255,255,42,118,193,2,0,168,255,255,162,113,193,2,64,168,255,255,8,117,193,2,130,168,255,255,164,113,193,2,208,164,12,0,208,164,255,255,151,123,193,2,73,165,255,255,4,120,193,2,160,166,255,255,76,120,193,2,5,49,255,255,4,123,193,2,87,91,255,255,2,126,193,2,136,162,255,255,118,123,193,2,172,32,24,0,48,45,12,0,48,45,255,255,141,103,193,2,75,48,255,255,4,122,193,2,171,48,255,255,4,122,193,2,172,32,132,205,193,2,58,38,2,204,193,2,0,44,255,255,4,98,193,2,131,27,255,255,231,113,193,2,192,27,255,255,31,117,193,2,0,28,255,255,6,117,193,2,90,28,255,255,56,118,193,2,28,32,6,197,193,2,133,13,104,0,3,23,54,0,0,25,26,0,0,26,12,0,0,26,255,255,29,117,193,2,32,26,255,255,18,118,193,2,5,27,255,255,40,118,193,2,0,25,255,255,10,117,193,2,80,25,255,255,4,118,193,2,128,25,255,255,5,118,193,2,99,23,12,0,99,23,255,255,28,117,193,2,128,23,255,255,98,117,193,2,38,24,255,255,52,118,193,2,3,23,255,255,25,117,193,2,35,23,255,255,26,117,193,2,67,23,255,255,27,117,193,2,211,16,26,0,192,20,12,0,192,20,255,255,234,118,193,2,143,22,255,255,254,118,193,2,160,22,255,255,4,119,193,2,211,16,255,255,4,99,193,2,160,18,255,255,143,103,193,2,196,19,255,255,58,118,193,2,133,13,255,255,4,113,193,2,23,14,255,255,4,114,193,2,165,14,255,255,4,115,193,2,64,15,255,255,4,116,193,2,0,16,255,255,79,117,193,2,202,7,54,0,149,10,26,0,21,12,12,0,21,12,255,255,4,110,193,2,149,12,255,255,4,111,193,2,21,13,255,255,4,112,193,2,149,10,255,255,4,107,193,2,21,11,255,255,4,108,193,2,149,11,255,255,4,109,193,2,5,9,12,0,5,9,255,255,4,104,193,2,149,9,255,255,4,105,193,2,21,10,255,255,4,106,193,2,202,7,255,255,130,103,193,2,0,8,255,255,51,101,193,2,64,8,255,255,27,103,193,2,47,4,26,0,40,6,12,0,40,6,255,255,4,102,193,2,16,7,255,255,4,103,193,2,140,7,255,255,28,103,193,2,47,4,255,255,4,97,193,2,49,5,255,255,4,100,193,2,208,5,255,255,4,101,193,2,52,0,2,206,193,2,76,0,2,233,193,2,160,0,2,195,193,2,169,3,255,255,4,96,193,2,226,3,255,255,96,96,193,2,97,117,193,91,49,0,4,216,39,221,255,255,97,117,193,70,97,117,193,98,49,0,4,216,39,221,255,255,97,117,193,77,179,113,193,182,48,0,4,216,1,0,62,223,255,255,179,113,193,196,87,223,255,255,179,113,193,203,184,113,193,175,48,0,5,216,2,0,176,220,255,255,184,113,193,196,186,220,255,255,184,113,193,189,189,220,255,255,184,113,193,210,200,113,193,16,49,0,5,216,175,221,255,255,200,113,193,30,200,113,193,23,49,0,5,216,175,221,255,255,200,113,193,37,206,113,193,112,49,0,6,216,48,221,255,255,206,113,193,126,80,130,224,0,52,0,53,0,76,0,77,0,160,0,161,0,6,3,7,3,169,3,170,3,226,3,227,3,47,4,48,4,49,5,50,5,208,5,209,5,40,6,41,6,83,6,86,6,16,7,17,7,140,7,141,7,202,7,203,7,0,8,1,8,64,8,65,8,5,9,6,9,149,9,150,9,190,9,191,9,215,9,216,9,21,10,22,10,149,10,150,10,21,11,22,11,62,11,63,11,86,11,88,11,149,11,150,11,190,11,191,11,215,11,216,11,21,12,22,12,86,12,87,12,149,12,150,12,194,12,195,12,213,12,215,12,21,13,22,13,62,13,63,13,87,13,88,13,133,13,134,13,202,13,203,13,207,13,208,13,223,13,224,13,1,14,47,14,50,14,51,14,129,14,131,14,132,14,133,14,134,14,139,14,140,14,164,14,165,14,166,14,167,14,175,14,178,14,179,14,220,14,224,14,64,15,65,15,113,15,118,15,128,15,130,15,0,16,1,16,46,16,47,16,211,16,212,16,160,18,161,18,196,19,197,19,192,20,193,20,143,22,144,22,160,22,161,22,3,23,4,23,35,23,36,23,67,23,68,23,99,23,100,23,128,23,129,23,38,24,39,24,0,25,1,25,80,25,81,25,128,25,172,25,0,26,1,26,32,26,33,26,5,27,6,27,53,27,54,27,131,27,132,27,192,27,193,27,0,28,1,28,90,28,91,28,28,32,29,32,172,32,173,32,58,38,59,38,0,44,1,44,48,45,49,45,75,48,76,48,171,48,172,48,5,49,6,49,87,91,88,91,136,162,137,162,208,164,209,164,73,165,74,165,160,166,161,166,0,168,1,168,64,168,65,168,130,168,131,168,10,169,11,169,48,169,49,169,132,169,133,169,0,170,1,170,128,170,176,170,192,171,193,171,0,172,1,172,0,216,9,216,12,216,13,216,17,216,18,216,26,216,28,216,32,216,33,216,35,216,36,216,44,216,45,216,47,216,48,216,56,216,57,216,58,216,59,216,208,253,209,253,1,0,0,0,1,0,1,0,1,0,128,2,1,0,129,2,1,0,160,2,1,0,161,2,1,0,0,3,1,0,1,3,1,0,48,3,1,0,49,3,1,0,107,3,1,0,108,3,1,0,128,3,1,0,129,3,1,0,160,3,1,0,161,3,1,0,20,4,1,0,21,4,1,0,80,4,1,0,81,4,1,0,128,4,1,0,129,4,1,0,181,4,1,0,182,4,1,0,0,5,1,0,1,5,1,0,55,5,1,0,56,5,1,0,71,6,1,0,72,6,1,0,0,8,1,0,1,8,1,0,64,8,1,0,65,8,1,0,115,8,1,0,116,8,1,0,150,8,1,0,151,8,1,0,244,8,1,0,245,8,1,0,0,9,1,0,1,9,1,0,32,9,1,0,33,9,1,0,128,9,1,0,129,9,1,0,160,9,1,0,161,9,1,0,0,10,1,0,1,10,1,0,96,10,1,0,97,10,1,0,149,10,1,0,150,10,1,0,216,10,1,0,217,10,1,0,0,11,1,0,1,11,1,0,64,11,1,0,65,11,1,0,96,11,1,0,97,11,1,0,143,11,1,0,144,11,1,0,0,12,1,0,1,12,1,0,161,12,1,0,162,12,1,0,18,13,1,0,19,13,1,0,136,14,1,0,137,14,1,0,25,15,1,0,26,15,1,0,66,15,1,0,67,15,1,0,191,15,1,0,192,15,1,0,241,15,1,0,242,15,1,0,5,16,1,0,6,16,1,0,131,16,1,0,132,16,1,0,208,16,1,0,209,16,1,0,3,17,1,0,4,17,1,0,39,17,1,0,40,17,1,0,82,17,1,0,83,17,1,0,131,17,1,0,132,17,1,0,8,18,1,0,9,18,1,0,143,18,1,0,144,18,1,0,190,18,1,0,191,18,1,0,21,19,1,0,22,19,1,0,62,19,1,0,63,19,1,0,87,19,1,0,88,19,1,0,18,20,1,0,19,20,1,0,132,20,1,0,133,20,1,0,176,20,1,0,177,20,1,0,186,20,1,0,187,20,1,0,189,20,1,0,190,20,1,0,142,21,1,0,143,21,1,0,175,21,1,0,176,21,1,0,14,22,1,0,15,22,1,0,128,22,1,0,129,22,1,0,23,23,1,0,24,23,1,0,11,24,1,0,12,24,1,0,180,24,1,0,181,24,1,0,12,25,1,0,13,25,1,0,48,25,1,0,49,25,1,0,206,25,1,0,207,25,1,0,11,26,1,0,12,26,1,0,92,26,1,0,93,26,1,0,192,26,1,0,193,26,1,0,14,28,1,0,15,28,1,0,114,28,1,0,115,28,1,0,16,29,1,0,17,29,1,0,113,29,1,0,114,29,1,0,229,30,1,0,230,30,1,0,0,32,1,0,1,32,1,0,83,49,1,0,84,49,1,0,0,68,1,0,1,68,1,0,79,106,1,0,80,106,1,0,230,106,1,0,231,106,1,0,28,107,1,0,29,107,1,0,64,110,1,0,65,110,1,0,0,111,1,0,1,111,1,0,41,130,1,0,42,130,1,0,101,140,1,0,102,140,1,0,196,177,1,0,197,177,1,0,32,188,1,0,33,188,1,0,8,225,1,0,9,225,1,0,225,226,1,0,226,226,1,0,2,232,1,0,3,232,1,0,9,233,1,0,10,233,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,186,72,185,76,185,80,185,84,186,88,186,96,185,100,185,104,185,108,186,112,185,120,185,124,185,128,185,136,186,140,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,168,72,168,76,168,80,168,84,168,88,168,96,168,100,168,104,168,108,168,112,168,120,168,124,168,128,168,136,168,140,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,176,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,176,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,1,193,0,0,0,0,0,19,0,15,0,27,0,107,0,92,0,10,0,11,0,121,0,26,0,25,0,14,0,120,0,9,0,29,0,28,0,157,0,105,0,16,0,106,0,33,0,106,0,83,0,62,0,7,0,34,0,90,0,80,0,95,0,119,0,30,0,96,0,35,0,20,0,31,0,32,0,22,0,61,0,64,0,94,0,108,0,71,0,72,0,73,0,74,0,0,0,131,0,70,0,129,0,124,0,122,0,84,0,148,0,106,0,75,0,12,0,59,0,37,0,85,0,24,0,149,0,88,0,77,0,0,0,58,0,87,0,0,0,0,0,0,0,0,0,151,0,0,0,157,0,157,0,113,0,97,0,0,0,89,0,79,0,0,0,0,0,68,0,130,0,21,0,0,0,152,0,23,0,98,0,13,0,69,0,17,0,110,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,150,0,0,0,158,0,117,0,0,0,86,0,116,0,118,0,91,0,78,0,38,0,0,0,57,0,0,0,36,0,138,0,134,0,82,0,0,0,39,0,143,0,140,0,141,0,0,0,139,0,18,0,63,0,0,0,0,0,100,0,109,0,0,0,132,0,101,0,123,0,125,0,45,0,0,0,0,0,102,0,152,0,133,0,136,0,135,0,43,0,111,0,0,0,0,0,128,0,155,0,41,0,127,0,50,0,154,0,0,0,153,0,42,0,47,0,126,0,40,0,54,0,137,0,49,0,44,0,112,0,48,0,104,0,60,0,67,0,46,0,93,0,0,0,0,0,0,0,55,0,66,0,65,0,53,0,56,0,76,0,103,0,81,0,145,0,144,0,142,0,114,0,52,0,115,0,147,0,51,0,156,0,146,0,1,0,2,0,3,0,4,0,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,8,0,0,0,0,3,6,5,0,12,132,13,0,14,0,39,0,41,0,94,0,96,96,96,0,97,0,98,100,98,0,99,0,100,0,101,50,101,51,101,0,102,0,103,27,103,28,103,130,103,141,103,143,103,0,104,0,105,0,106,0,107,0,108,0,109,0,110,0,111,0,112,0,113,160,113,162,113,164,113,166,113,168,113,170,113,172,113,174,113,176,113,178,113,180,113,183,113,185,113,201,113,203,113,205,113,207,113,209,113,211,113,224,113,229,113,231,113,244,113,246,113,248,113,0,114,0,115,132,115,0,116,198,116,209,116,0,117,6,117,8,117,10,117,25,117,26,117,27,117,28,117,29,117,30,117,31,117,76,117,78,117,79,117,94,117,96,117,98,117,0,118,5,118,18,118,38,118,40,118,42,118,52,118,56,118,58,118,232,118,234,118,254,118,0,119,60,119,144,119,0,120,76,120,94,120,95,120,101,120,167,120,0,121,0,122,0,123,118,123,151,123,153,123,172,123,238,123,240,123,243,123,245,123,247,123,248,123,250,123,251,123,252,123,0,124,86,124,88,124,92,124,93,124,95,124,97,124,98,124,99,124,105,124,115,124,117,124,118,124,119,124,125,124,130,124,157,124,158,124,159,124,160,124,161,124,162,124,163,124,168,124,196,124,201,124,203,124,204,124,205,124,207,124,0,125,34,125,83,125,100,125,155,125,166,125,0,126,0,254,0,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,63,7,0,32,7,0,0,0,21,0,0,0,65,7,0,0,65,7,0,0,3,0,0,0,0,0,0,0,47,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,46,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,39,6,60,0,213,6,60,0,40,6,38,0,67,6,60,0,175,6,60,0,173,6,60,0,68,6,38,0,190,6,60,0,72,6,60,0,199,6,60,0,198,6,60,0,200,6,60,0,203,6,60,0,208,6,60,0,73,6,60,0,74,6,0,0,32,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,160,27,0,0,160,27,0,0,160,27,0,0,160,27,0,0,236,27,0,0,236,27,0,0,8,28,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,157,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,95,0,103,0,100,0,108,0,116,0,124,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,148,0,140,0,48,0,48,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,132,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,124,1,144,1,208,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,3,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,183,102,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,193,8,217,102,201,230,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,3,183,102,192,0,0,0,193,2,183,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,4,217,102,193,3,217,102,193,5,217,102,192,0,0,0,192,0,0,0,193,6,217,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,7,217,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,2,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,193,2,27,102,194,5,128,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,217,102,193,2,48,0,84,6,255,255,16,102,5,5,217,102,193,9,48,0,84,6,255,255,22,102,5,5,3,0,69,0,52,0,61,0,47,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,56,7,0,32,1,0,32,0,61,7,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,17,7,0,32,7,0,0,0,21,0,0,0,19,7,0,0,19,7,0,0,3,0,0,0,0,0,0,0,41,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,67,0,121,0,114,0,108,0,93,0,38,0,19,4,60,0,145,4,60,0,60,0,60,0,144,4,38,0,71,166,60,0,87,4,60,0,60,0,60,0,118,166,60,0,60,0,60,0,7,4,0,0,170,170,170,170,170,170,170,170,170,170,120,27,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,15,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,60,0,0,0,64,0,0,0,64,1,0,0,0,27,0,0,0,27,0,0,0,27,0,0,0,27,0,0,68,27,0,0,68,27,0,0,96,27,0,0,8,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,39,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,147,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,91,0,99,0,103,0,111,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,138,0,127,0,48,0,48,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,119,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,108,1,156,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,0,0,202,1,1,0,202,34,1,0,202,67,1,0,202,100,1,0,202,133,1,0,202,166,1,0,202,199,1,0,202,232,1,0,202,9,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,135,5,77,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,0,0,5,5,77,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,17,97,5,5,17,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,77,97,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,74,97,174,5,48,0,8,3,255,255,77,97,135,5,74,97,5,5,48,0,8,3,255,255,77,97,5,5,3,0,69,0,52,0,61,0,43,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,10,7,0,32,1,0,32,0,15,7,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,55,8,0,32,7,0,0,0,21,0,0,0,57,8,0,0,57,8,0,0,3,0,0,0,0,0,0,0,150,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,252,220,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,65,0,114,0,97,0,98,0,93,0,38,0,39,6,60,0,60,0,35,6,60,0,34,6,60,0,40,6,60,0,40,6,190,6,60,0,126,6,60,0,126,6,190,6,60,0,42,6,60,0,42,6,190,6,60,0,121,6,60,0,121,6,190,6,60,0,43,6,60,0,44,6,60,0,44,6,190,6,60,0,134,6,60,0,134,6,190,6,60,0,45,6,60,0,46,6,60,0,47,6,60,0,47,6,190,6,60,0,136,6,60,0,136,6,190,6,60,0,48,6,60,0,49,6,60,0,49,6,190,6,60,0,145,6,60,0,145,6,190,6,60,0,50,6,60,0,152,6,60,0,51,6,60,0,52,6,60,0,53,6,60,0,54,6,60,0,55,6,60,0,56,6,60,0,57,6,60,0,58,6,60,0,65,6,60,0,66,6,60,0,169,6,60,0,169,6,190,6,60,0,175,6,60,0,175,6,190,6,60,0,68,6,60,0,68,6,190,6,60,0,69,6,60,0,69,6,190,6,60,0,70,6,60,0,70,6,190,6,60,0,186,6,60,0,186,6,190,6,60,0,72,6,60,0,60,0,36,6,60,0,72,6,190,6,60,0,193,6,60,0,60,0,194,6,60,0,190,6,60,0,195,6,60,0,33,6,60,0,204,6,60,0,60,0,38,6,60,0,204,6,190,6,60,0,210,6,60,0,60,0,211,6,38,0,82,6,60,0,60,0,78,6,60,0,60,0,80,6,60,0,60,0,79,6,60,0,60,0,112,6,60,0,60,0,86,6,60,0,60,0,87,6,60,0,60,0,75,6,60,0,60,0,77,6,60,0,60,0,76,6,60,0,60,0,84,6,60,0,60,0,81,6,60,0,60,0,88,6,60,0,60,0,83,6,38,0,91,0,108,0,97,0,115,0,116,0,32,0,116,0,101,0,114,0,116,0,105,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,60,0,16,6,60,0,60,0,60,0,17,6,60,0,60,0,60,0,19,6,60,0,60,0,60,0,18,6,60,0,60,0,60,0,20,6,0,0,170,170,170,170,94,30,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,16,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,68,0,0,0,68,1,0,0,100,28,0,0,100,28,0,0,172,28,0,0,172,28,0,0,248,28,0,0,248,28,0,0,60,30,0,0,66,30,0,0,2,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,39,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,169,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,96,0,104,0,112,0,120,0,128,0,136,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,160,0,152,0,48,0,48,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,144,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,128,1,192,1,0,2,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,1,0,202,65,1,0,202,98,1,0,202,131,1,0,202,164,1,0,202,197,1,0,202,230,1,0,202,7,2,0,202,40,2,0,202,73,2,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,0,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,0,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,0,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,198,33,0,0,198,65,0,0,198,97,0,0,198,129,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,56,27,102,193,2,27,102,5,70,26,102,198,161,0,0,192,0,0,0,198,193,0,0,201,6,0,0,201,224,1,0,192,0,0,0,201,192,2,0,193,11,27,102,201,160,3,0,193,16,27,102,193,17,27,102,201,128,4,0,193,22,27,102,201,96,5,0,193,27,27,102,193,29,27,102,193,30,27,102,193,31,27,102,193,32,27,102,193,33,27,102,193,34,27,102,193,35,27,102,193,36,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,37,27,102,193,38,27,102,192,0,0,0,201,64,6,0,201,32,7,0,201,0,8,0,192,0,0,0,201,228,8,0,192,0,0,0,201,38,10,0,194,5,69,232,194,5,71,232,194,5,70,232,194,5,63,232,194,5,65,232,194,5,64,232,194,5,73,232,192,0,0,0,194,5,75,232,194,5,72,232,192,0,0,0,194,5,67,232,194,5,68,232,194,5,74,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,66,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,224,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,192,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,160,12,0,192,0,0,0,201,128,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,96,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,28,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,64,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,0,17,0,192,0,0,0,192,0,0,0,192,0,0,0,193,54,27,102,192,0,0,0,197,34,0,0,201,230,17,0,198,225,0,0,193,55,27,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,160,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,19,0,198,1,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,2,188,0,0,0,0,0,0,3,188,0,0,0,0,0,0,5,188,0,0,0,0,0,0,4,188,0,0,0,0,0,0,6,188,0,0,0,0,0,0,0,5,0,70,0,51,27,102,0,5,0,70,0,57,27,102,0,5,0,70,0,53,27,102,0,5,0,70,0,59,27,102,0,0,0,0,193,16,220,102,194,5,72,232,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,26,102,5,5,2,0,83,6,255,255,27,102,193,2,84,6,255,255,26,102,5,70,85,6,255,255,18,102,5,5,27,102,193,3,48,0,190,6,255,255,27,102,193,4,27,102,193,7,48,0,190,6,255,255,27,102,193,8,27,102,193,12,48,0,190,6,255,255,27,102,193,13,27,102,193,18,48,0,190,6,255,255,27,102,193,19,27,102,193,23,48,0,190,6,255,255,27,102,193,24,27,102,193,43,48,0,190,6,255,255,27,102,193,44,27,102,193,45,48,0,190,6,255,255,27,102,193,46,27,102,193,47,48,0,190,6,255,255,27,102,193,48,27,102,193,51,1,0,84,6,0,192,198,161,190,6,255,255,27,102,193,52,238,102,5,5,48,0,84,6,0,192,198,193,27,102,193,9,48,0,190,6,255,255,27,102,193,10,27,102,193,5,48,0,190,6,255,255,27,102,193,6,27,102,193,14,48,0,190,6,255,255,27,102,193,15,27,102,193,20,48,0,190,6,255,255,27,102,193,21,27,102,193,25,48,0,190,6,255,255,27,102,193,26,27,102,193,39,48,0,190,6,255,255,27,102,193,40,27,102,193,41,48,0,190,6,255,255,27,102,193,42,27,102,193,49,48,0,190,6,255,255,27,102,193,50,27,102,193,53,48,0,84,6,0,192,198,225,27,102,193,57,48,0,190,6,255,255,27,102,193,58,27,102,193,59,48,0,84,6,1,192,198,1,2,0,190,6,191,6,170,170,3,0,69,0,52,0,61,0,151,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,48,8,0,32,1,0,32,0,53,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,108,8,0,32,7,0,0,0,21,0,0,0,110,8,0,0,110,8,0,0,3,0,0,0,0,0,0,0,65,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,82,220,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,146,2,60,0,111,0,187,2,61,0,111,0,24,32,61,0,111,0,39,0,39,0,60,0,60,0,60,0,79,0,187,2,61,0,79,0,24,32,61,0,79,0,39,0,39,0,60,0,103,0,187,2,61,0,103,0,24,32,61,0,103,0,39,0,39,0,60,0,60,0,60,0,71,0,187,2,61,0,71,0,24,32,61,0,71,0,39,0,39,0,60,0,115,0,104,0,60,0,60,0,60,0,83,0,104,0,60,0,60,0,60,0,83,0,72,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,0,0,170,170,170,170,170,170,170,170,132,32,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,100,23,0,0,100,23,0,0,116,25,0,0,116,25,0,0,56,26,0,0,56,26,0,0,18,28,0,0,56,28,0,0,104,32,0,0,50,105,114,84,1,0,64,8,105,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,88,0,48,0,48,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,80,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,224,4,0,202,1,5,0,202,34,5,0,202,67,5,0,202,100,5,0,202,133,5,0,202,166,5,0,202,199,5,0,202,232,5,0,202,9,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,201,0,0,0,156,5,0,48,156,5,0,50,156,5,0,52,201,64,7,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,192,8,0,156,5,0,72,160,5,0,74,156,5,0,76,201,64,10,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,201,192,17,0,5,5,0,48,5,5,0,50,5,5,0,52,201,192,21,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,160,23,0,5,5,0,72,5,5,0,74,5,5,0,76,201,128,25,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,4,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,98,4,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,4,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,135,0,5,0,5,25,93,0,70,0,5,0,5,25,93,0,135,0,5,0,5,25,93,0,5,0,142,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,142,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,144,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,144,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,156,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,156,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,196,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,196,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,150,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,150,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,160,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,160,0,0,0,0,0,135,0,5,0,5,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,5,25,93,0,5,0,210,0,0,0,0,0,70,0,5,0,3,25,93,0,70,0,5,0,2,25,93,0,135,0,5,0,4,25,93,0,70,0,5,0,4,25,93,0,135,0,5,0,4,25,93,0,5,0,142,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,142,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,144,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,144,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,156,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,156,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,196,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,196,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,150,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,150,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,160,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,160,0,0,0,0,0,135,0,5,0,4,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,206,0,0,0,0,0,70,0,5,0,4,25,93,0,5,0,210,0,0,0,0,0,0,0,0,193,5,25,93,5,142,0,0,193,5,25,93,5,144,0,0,193,5,25,93,5,156,0,0,193,5,25,93,5,196,0,0,193,5,25,93,5,150,0,0,193,5,25,93,5,160,0,0,193,5,25,93,5,206,0,0,193,5,25,93,5,210,0,0,193,4,25,93,5,142,0,0,193,4,25,93,5,144,0,0,193,4,25,93,5,156,0,0,193,4,25,93,5,196,0,0,193,4,25,93,5,150,0,0,193,4,25,93,5,160,0,0,193,4,25,93,5,206,0,0,193,4,25,93,5,210,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,198,194,41,30,3,192,198,2,42,30,3,192,198,66,43,30,3,192,198,130,150,30,3,192,198,194,36,30,1,192,198,194,37,30,2,192,198,2,38,30,2,192,198,66,39,30,2,192,198,130,30,2,12,0,30,2,0,192,198,194,31,2,1,192,198,2,34,30,1,192,198,66,35,30,1,192,198,130,72,0,198,129,104,0,198,161,36,1,0,192,198,66,37,1,0,192,198,130,0,54,156,5,2,0,39,0,4,192,198,1,187,2,4,192,198,1,24,32,4,192,198,1,0,70,156,5,2,0,39,0,4,192,198,33,187,2,4,192,198,33,24,32,4,192,198,33,0,78,156,5,16,0,36,30,29,0,40,30,15,0,40,30,7,192,198,2,41,30,7,192,198,66,42,30,7,192,198,130,43,30,7,192,198,194,150,30,8,192,198,2,36,30,6,192,198,2,37,30,6,192,198,66,38,30,6,192,198,130,39,30,6,192,198,194,30,2,12,0,30,2,5,192,198,2,31,2,5,192,198,66,34,30,5,192,198,130,35,30,5,192,198,194,72,0,4,192,198,65,104,0,4,192,198,97,36,1,4,192,198,130,37,1,4,192,198,194,0,46,5,5,8,0,37,30,15,0,37,30,0,192,197,226,39,30,1,192,197,34,41,30,1,192,197,98,43,30,1,192,197,162,150,30,1,192,197,226,104,0,255,255,25,93,193,5,37,1,197,162,31,2,0,192,197,98,35,30,0,192,197,162,0,54,5,5,2,0,39,0,255,255,25,93,193,3,187,2,255,255,25,93,193,3,24,32,255,255,25,93,193,3,0,70,5,5,2,0,39,0,255,255,25,93,193,2,187,2,255,255,25,93,193,2,24,32,255,255,25,93,193,2,0,78,5,5,8,0,37,30,15,0,37,30,2,192,197,226,39,30,3,192,197,34,41,30,3,192,197,98,43,30,3,192,197,162,150,30,3,192,197,226,104,0,255,255,25,93,193,4,37,1,2,192,197,34,31,2,2,192,197,98,35,30,2,192,197,162,18,0,39,0,40,0,72,0,73,0,104,0,105,0,36,1,38,1,30,2,32,2,187,2,188,2,34,30,44,30,150,30,151,30,24,32,25,32,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,26,4,185,68,186,72,185,76,36,4,185,84,186,88,186,96,185,100,185,104,185,108,186,112,42,4,185,124,185,128,185,136,48,4,185,144,185,152,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,58,4,168,68,168,72,168,76,64,4,168,84,168,88,168,96,168,100,168,104,168,108,168,112,70,4,168,124,168,128,168,136,76,4,168,144,168,152,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,89,154,89,250,89,90,90,217,68,154,114,185,121,153,121,249,121,153,122,89,122,136,14,217,122,185,153,153,153,249,153,89,154,153,169,185,192,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,89,136,89,232,89,72,90,200,68,136,114,168,121,136,121,232,121,136,122,72,122,128,14,200,122,168,153,136,153,232,153,72,154,136,169,168,192,72,170,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,26,75,8,75,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,85,232,85,89,87,72,87,154,90,136,90,58,91,40,91,218,89,200,89,26,91,8,91,186,90,168,92,6,8,8,8,250,97,232,97,249,102,232,102,168,132,153,105,136,105,249,106,232,106,25,106,8,106,121,107,104,107,89,107,72,107,154,113,136,113,250,114,232,114,26,114,8,114,10,8,185,116,168,116,57,123,40,123,217,121,200,121,121,122,104,122,12,8,14,8,153,137,136,137,249,138,232,138,25,138,8,138,154,141,136,141,250,141,232,141,250,142,232,142,26,142,8,142,249,146,232,146,25,146,8,146,185,148,168,148,153,154,136,154,57,155,40,155,217,153,200,153,57,154,40,154,121,154,104,154,25,155,8,155,249,161,232,161,249,169,232,169,89,170,153,173,136,173,185,174,168,174,25,174,8,174,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,196,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,64,72,4,186,188,104,4,177,188,36,5,250,189,37,5,241,189,255,5,185,80,39,4,177,180,152,5,177,180,255,5,185,120,39,4,177,176,152,5,177,176,255,5,186,140,72,4,186,184,104,4,177,184,36,5,250,185,37,5,241,185,255,5,168,64,104,4,168,188,37,5,232,189,255,5,168,80,39,4,168,180,152,5,168,180,255,5,168,120,39,4,168,176,152,5,168,176,255,5,168,140,104,4,168,184,37,5,232,185,255,1,3,0,69,0,52,0,61,0,67,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,101,8,0,32,1,0,32,0,106,8,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,44,36,0,32,7,0,0,0,24,0,0,0,46,36,0,0,46,36,0,0,3,0,0,0,0,0,0,0,195,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,116,114,97,100,105,116,105,111,110,97,108,0,0,0,52,0,50,0,0,0,84,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,0,3,60,0,60,0,9,3,60,0,60,0,3,3,60,0,60,0,1,3,60,0,60,0,35,3,38,0,97,0,60,0,3,1,60,0,60,0,60,0,2,1,60,0,226,0,60,0,60,0,60,0,194,0,38,0,100,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,101,0,60,0,234,0,60,0,60,0,60,0,202,0,38,0,111,0,60,0,244,0,60,0,60,0,60,0,212,0,60,0,161,1,60,0,60,0,60,0,160,1,38,0,117,0,60,0,176,1,60,0,60,0,60,0,175,1,0,0,250,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,0,3,60,0,60,0,9,3,60,0,60,0,3,3,60,0,60,0,1,3,60,0,60,0,35,3,38,0,97,0,60,0,3,1,60,0,60,0,60,0,2,1,60,0,226,0,60,0,60,0,60,0,194,0,38,0,67,0,60,0,99,0,104,0,60,0,60,0,60,0,67,0,104,0,60,0,60,0,60,0,67,0,72,0,38,0,100,0,60,0,17,1,60,0,60,0,60,0,16,1,38,0,101,0,60,0,234,0,60,0,60,0,60,0,202,0,38,0,71,0,60,0,103,0,104,0,60,0,60,0,60,0,71,0,104,0,60,0,60,0,60,0,71,0,72,0,60,0,103,0,105,0,60,0,60,0,60,0,71,0,105,0,60,0,60,0,60,0,71,0,73,0,38,0,75,0,60,0,107,0,104,0,60,0,60,0,60,0,75,0,104,0,60,0,60,0,60,0,75,0,72,0,38,0,78,0,60,0,110,0,104,0,60,0,60,0,60,0,78,0,104,0,60,0,60,0,60,0,78,0,72,0,60,0,110,0,103,0,60,0,60,0,60,0,78,0,103,0,60,0,60,0,60,0,78,0,71,0,60,0,110,0,103,0,104,0,60,0,60,0,60,0,78,0,103,0,104,0,60,0,60,0,60,0,78,0,71,0,104,0,60,0,60,0,60,0,78,0,71,0,72,0,38,0,111,0,60,0,244,0,60,0,60,0,60,0,212,0,60,0,161,1,60,0,60,0,60,0,160,1,38,0,80,0,60,0,112,0,104,0,60,0,60,0,60,0,80,0,104,0,60,0,60,0,60,0,80,0,72,0,38,0,81,0,60,0,113,0,117,0,60,0,60,0,60,0,81,0,117,0,60,0,60,0,60,0,81,0,85,0,38,0,84,0,60,0,116,0,104,0,60,0,60,0,60,0,84,0,104,0,60,0,60,0,60,0,84,0,72,0,60,0,116,0,114,0,60,0,60,0,60,0,84,0,114,0,60,0,60,0,60,0,84,0,82,0,38,0,117,0,60,0,176,1,60,0,60,0,60,0,175,1,0,0,236,57,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,41,0,0,116,41,0,0,116,41,0,0,116,41,0,0,240,51,0,0,240,51,0,0,220,53,0,0,220,53,0,0,212,57,0,0,50,105,114,84,1,0,64,8,138,1,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,111,0,119,0,124,0,132,0,140,0,148,0,48,0,56,0,48,0,56,0,48,0,56,0,156,0,164,0,172,0,180,0,187,0,195,0,200,0,208,0,216,0,224,0,228,0,236,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,11,1,19,1,27,1,35,1,43,1,51,1,59,1,66,1,74,1,82,1,90,1,98,1,106,1,113,1,121,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,252,0,48,0,48,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,188,1,240,1,48,2,192,0,192,0,192,0,112,2,176,2,236,2,32,3,96,3,144,3,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,82,0,202,193,82,0,202,226,82,0,202,3,83,0,202,36,83,0,202,69,83,0,202,102,83,0,202,135,83,0,202,168,83,0,202,201,83,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,38,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,230,1,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,70,3,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,38,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,70,5,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,6,6,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,7,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,197,34,0,0,134,5,3,43,197,98,0,0,196,150,156,42,196,146,156,42,197,34,14,0,196,160,156,46,196,138,156,50,197,162,0,0,134,5,2,51,196,150,156,50,196,138,156,58,197,226,0,0,196,142,156,58,196,150,156,58,160,112,0,48,197,34,1,0,196,138,156,70,197,98,1,0,134,5,2,71,197,162,1,0,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,197,226,1,0,196,142,156,82,196,150,156,82,197,34,2,0,160,5,38,93,197,98,82,0,196,138,5,42,197,98,2,0,5,5,3,43,197,162,2,0,196,150,5,42,196,146,5,42,197,130,14,0,196,160,5,46,196,138,5,50,197,226,2,0,5,5,2,51,196,150,5,50,196,138,5,58,197,34,3,0,196,142,5,58,196,150,5,58,5,112,0,48,197,98,3,0,196,138,5,70,197,162,3,0,5,5,2,71,197,226,3,0,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,197,34,4,0,196,142,5,82,196,150,5,82,197,98,4,0,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,201,70,8,0,201,102,9,0,197,162,5,0,197,226,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,10,0,201,70,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,6,0,197,226,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,7,0,197,98,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,7,0,197,226,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,8,0,197,98,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,9,0,197,98,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,12,0,201,198,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,10,0,197,98,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,13,0,201,70,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,11,0,197,131,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,15,0,201,38,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,12,0,197,34,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,13,0,197,195,13,0,197,35,14,0,197,131,14,0,197,227,14,0,197,67,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,17,0,201,6,18,0,192,0,0,0,192,0,0,0,197,35,16,0,197,131,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,194,5,3,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,2,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,5,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,192,0,0,0,197,66,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,16,0,197,34,17,0,192,0,0,0,197,98,17,0,197,162,17,0,197,226,17,0,192,0,0,0,197,34,18,0,192,0,0,0,197,98,18,0,197,162,18,0,197,227,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,19,0,197,130,19,0,197,194,19,0,197,2,20,0,197,67,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,20,0,197,226,20,0,197,34,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,18,0,201,230,19,0,192,0,0,0,192,0,0,0,197,162,23,0,197,226,23,0,192,0,0,0,192,0,0,0,197,35,24,0,197,131,24,0,192,0,0,0,192,0,0,0,197,226,24,0,197,34,25,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,25,0,197,195,25,0,201,6,21,0,201,198,21,0,201,134,22,0,201,70,23,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,27,0,197,98,27,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,27,0,197,3,28,0,197,98,28,0,197,162,28,0,197,226,28,0,197,34,29,0,192,0,0,0,192,0,0,0,197,98,29,0,197,162,29,0,197,227,29,0,197,67,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,30,0,197,226,30,0,192,0,0,0,192,0,0,0,197,34,31,0,197,98,31,0,192,0,0,0,192,0,0,0,197,162,31,0,197,226,31,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,32,0,197,131,32,0,197,227,32,0,197,67,33,0,192,0,0,0,192,0,0,0,197,163,33,0,197,3,34,0,197,98,34,0,197,162,34,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,34,0,197,34,35,0,197,99,35,0,197,195,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,36,0,197,98,36,0,197,163,36,0,197,3,37,0,192,0,0,0,192,0,0,0,197,99,37,0,197,195,37,0,192,0,0,0,192,0,0,0,197,34,38,0,197,98,38,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,38,0,197,3,39,0,192,0,0,0,192,0,0,0,197,98,39,0,197,162,39,0,197,226,39,0,197,34,40,0,192,0,0,0,192,0,0,0,197,98,40,0,197,162,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,40,0,197,34,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,41,0,197,162,41,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,24,0,201,38,25,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,34,45,0,197,98,45,0,197,162,45,0,197,34,42,0,197,226,42,0,197,226,45,0,197,34,46,0,197,98,46,0,197,162,46,0,197,226,46,0,197,34,47,0,197,98,47,0,197,162,47,0,197,98,42,0,197,34,43,0,201,70,26,0,201,6,27,0,197,226,48,0,197,34,49,0,197,98,49,0,197,162,49,0,197,226,49,0,197,34,50,0,197,98,50,0,197,162,50,0,197,226,50,0,197,34,51,0,197,98,51,0,197,162,51,0,197,34,48,0,197,162,48,0,197,226,51,0,197,34,52,0,197,98,52,0,197,162,52,0,201,198,27,0,201,134,28,0,197,226,53,0,197,34,54,0,197,98,54,0,197,162,54,0,197,226,54,0,197,34,55,0,197,98,55,0,197,162,55,0,197,226,55,0,197,34,56,0,197,34,53,0,197,162,53,0,197,98,56,0,197,162,56,0,197,226,56,0,197,34,57,0,197,98,57,0,197,162,57,0,197,226,57,0,197,34,58,0,201,70,29,0,201,6,30,0,197,162,59,0,197,226,59,0,197,34,60,0,197,98,60,0,197,162,60,0,197,226,60,0,197,34,61,0,197,98,61,0,197,162,61,0,197,226,61,0,197,34,62,0,197,98,62,0,197,162,62,0,197,226,62,0,192,0,0,0,192,0,0,0,197,34,63,0,197,98,63,0,197,162,63,0,197,226,63,0,197,34,64,0,197,98,64,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,64,0,197,3,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,65,0,197,195,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,66,0,197,131,66,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,66,0,197,67,67,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,67,0,197,3,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,68,0,197,195,68,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,69,0,197,131,69,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,69,0,197,67,70,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,70,0,197,3,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,71,0,197,195,71,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,72,0,197,131,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,73,0,197,163,73,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,74,0,197,99,74,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,19,0,192,0,0,0,197,130,19,0,192,0,0,0,197,194,19,0,192,0,0,0,197,2,20,0,192,0,0,0,197,162,20,0,192,0,0,0,197,226,20,0,192,0,0,0,197,34,21,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,74,0,197,68,75,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,75,0,197,68,76,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,76,0,197,68,77,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,77,0,197,68,78,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,78,0,197,68,79,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,196,79,0,197,68,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,80,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,35,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,17,0,192,0,0,0,197,162,17,0,192,0,0,0,192,0,0,0,197,130,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,17,0,192,0,0,0,192,0,0,0,197,194,81,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,20,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,18,0,192,0,0,0,192,0,0,0,197,226,16,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,82,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,18,0,192,0,0,0,197,162,18,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,156,5,0,42,194,5,4,139,156,5,0,42,194,5,3,139,156,5,0,50,194,5,4,139,156,5,0,58,194,5,4,139,156,5,0,68,194,5,3,139,156,5,0,70,194,5,4,139,156,5,0,70,194,5,3,139,156,5,0,82,194,5,4,139,156,5,0,90,194,5,4,139,5,5,0,42,194,5,4,139,5,5,0,42,194,5,3,139,5,5,0,50,194,5,4,139,5,5,0,58,194,5,4,139,5,5,0,68,194,5,3,139,5,5,0,70,194,5,4,139,5,5,0,70,194,5,3,139,5,5,0,82,194,5,4,139,5,5,0,90,194,5,4,139,134,5,3,43,5,162,0,0,134,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,156,5,0,46,194,5,4,139,5,5,0,46,194,5,4,139,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,156,5,0,58,194,5,3,139,5,5,0,58,194,5,3,139,156,5,0,64,194,5,4,139,5,5,0,64,194,5,4,139,156,5,0,68,194,5,4,139,5,5,0,68,194,5,4,139,156,5,0,76,194,5,4,139,5,5,0,76,194,5,4,139,156,5,0,78,194,5,4,139,5,5,0,78,194,5,4,139,156,5,0,82,194,5,3,139,5,5,0,82,194,5,3,139,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,156,5,0,92,194,5,4,139,5,5,0,92,194,5,4,139,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,156,5,0,82,5,150,0,0,194,5,4,139,5,5,0,82,5,150,0,0,194,5,4,139,134,5,2,71,5,162,0,0,134,5,3,71,5,162,0,0,5,5,2,71,5,162,0,0,5,5,3,71,5,162,0,0,156,5,0,54,194,5,4,139,5,5,0,54,194,5,4,139,156,5,0,42,5,146,0,0,194,5,4,139,5,5,0,42,5,146,0,0,194,5,4,139,160,112,0,42,162,5,0,50,194,5,4,139,5,112,0,42,19,5,0,50,194,5,4,139,156,5,0,70,5,158,0,0,194,5,4,139,5,5,0,70,5,158,0,0,194,5,4,139,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,156,5,0,70,194,5,3,139,5,164,0,0,5,5,0,70,194,5,3,139,5,164,0,0,5,5,16,12,194,5,4,139,166,5,6,96,194,5,4,139,166,5,16,96,194,5,4,139,158,5,28,96,194,5,4,139,166,5,32,96,194,5,4,139,158,5,48,96,194,5,4,139,155,5,76,96,194,5,4,139,155,5,86,96,194,5,4,139,5,5,32,96,5,150,0,0,194,5,4,139,5,5,6,96,194,5,4,139,5,5,16,96,194,5,4,139,5,5,28,96,194,5,4,139,5,5,32,96,194,5,4,139,5,5,76,96,5,150,0,0,194,5,4,139,5,5,48,96,194,5,4,139,5,5,76,96,194,5,4,139,5,5,86,96,194,5,4,139,166,5,76,96,194,5,4,139,174,5,16,97,194,5,4,139,174,5,84,97,194,5,4,139,5,5,16,97,194,5,4,139,5,5,84,97,194,5,4,139,134,5,3,43,5,200,0,0,134,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,156,5,0,44,194,5,5,139,5,5,0,44,194,5,5,139,156,5,0,46,5,160,0,0,194,5,4,139,5,5,0,46,5,160,0,0,194,5,4,139,156,5,0,48,194,5,5,139,5,5,0,48,194,5,5,139,156,5,0,50,5,164,0,0,194,5,4,139,5,5,0,50,5,164,0,0,194,5,4,139,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,156,5,0,56,194,5,5,139,5,5,0,56,194,5,5,139,156,5,0,58,5,150,0,0,194,5,4,139,5,5,0,58,5,150,0,0,194,5,4,139,156,5,0,62,194,5,4,139,5,5,0,62,194,5,4,139,156,5,0,62,194,5,5,139,5,5,0,62,194,5,5,139,156,5,0,64,194,5,5,139,5,5,0,64,194,5,5,139,156,5,0,64,194,5,5,139,5,164,0,0,5,5,0,64,194,5,5,139,5,164,0,0,156,5,0,66,194,5,4,139,5,5,0,66,194,5,4,139,156,5,0,66,194,5,5,139,5,5,0,66,194,5,5,139,156,5,0,68,194,5,5,139,5,5,0,68,194,5,5,139,156,5,0,70,194,5,3,139,194,5,4,139,5,5,0,70,194,5,3,139,194,5,4,139,156,5,0,70,194,5,3,139,5,150,0,0,5,5,0,70,194,5,3,139,5,150,0,0,156,5,0,70,5,164,0,0,194,5,4,139,5,5,0,70,5,164,0,0,194,5,4,139,156,5,0,72,194,5,4,139,5,5,0,72,194,5,4,139,156,5,0,76,194,5,5,139,5,5,0,76,194,5,5,139,156,5,0,76,194,5,5,139,5,164,0,0,5,5,0,76,194,5,5,139,5,164,0,0,156,5,0,78,194,5,5,139,5,5,0,78,194,5,5,139,156,5,0,78,194,5,4,139,5,156,0,0,5,5,0,78,194,5,4,139,5,156,0,0,156,5,0,78,194,5,5,139,5,156,0,0,5,5,0,78,194,5,5,139,5,156,0,0,156,5,0,80,194,5,5,139,5,5,0,80,194,5,5,139,156,5,0,82,194,5,3,139,194,5,4,139,5,5,0,82,194,5,3,139,194,5,4,139,156,5,0,84,194,5,3,139,5,5,0,84,194,5,3,139,156,5,0,84,194,5,5,139,5,5,0,84,194,5,5,139,160,5,0,86,194,5,4,139,5,5,0,86,194,5,4,139,160,5,0,86,194,5,5,139,5,5,0,86,194,5,5,139,156,5,0,92,194,5,5,139,5,5,0,92,194,5,5,139,156,5,0,42,194,5,5,139,134,5,3,43,194,5,5,139,134,5,2,43,194,5,5,139,5,5,0,42,194,5,5,139,5,5,3,43,194,5,5,139,5,5,2,43,194,5,5,139,156,5,0,42,194,5,2,139,5,5,0,42,194,5,2,139,134,5,3,43,194,5,4,139,5,5,3,43,194,5,4,139,134,5,3,43,5,138,0,0,5,5,3,43,5,138,0,0,134,5,3,43,194,5,2,139,5,5,3,43,194,5,2,139,134,5,3,43,194,5,3,139,5,5,3,43,194,5,3,139,134,5,2,43,194,5,4,139,5,5,2,43,194,5,4,139,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,194,5,2,139,5,5,2,43,194,5,2,139,134,5,2,43,194,5,3,139,5,5,2,43,194,5,3,139,156,5,0,50,194,5,5,139,134,5,2,51,194,5,5,139,5,5,0,50,194,5,5,139,5,5,2,51,194,5,5,139,156,5,0,50,194,5,2,139,5,5,0,50,194,5,2,139,156,5,0,50,194,5,3,139,5,5,0,50,194,5,3,139,134,5,2,51,194,5,4,139,5,5,2,51,194,5,4,139,134,5,2,51,5,138,0,0,5,5,2,51,5,138,0,0,134,5,2,51,194,5,2,139,5,5,2,51,194,5,2,139,134,5,2,51,194,5,3,139,5,5,2,51,194,5,3,139,156,5,0,58,194,5,2,139,5,5,0,58,194,5,2,139,156,5,0,58,194,5,5,139,5,5,0,58,194,5,5,139,156,5,0,70,194,5,5,139,134,5,2,71,194,5,5,139,5,5,0,70,194,5,5,139,5,5,2,71,194,5,5,139,156,5,0,70,194,5,2,139,5,5,0,70,194,5,2,139,134,5,2,71,194,5,4,139,5,5,2,71,194,5,4,139,134,5,2,71,5,138,0,0,5,5,2,71,5,138,0,0,134,5,2,71,194,5,2,139,5,5,2,71,194,5,2,139,134,5,2,71,194,5,3,139,5,5,2,71,194,5,3,139,134,5,3,71,194,5,4,139,5,5,3,71,194,5,4,139,134,5,3,71,5,138,0,0,5,5,3,71,5,138,0,0,134,5,3,71,194,5,2,139,5,5,3,71,194,5,2,139,134,5,3,71,194,5,3,139,5,5,3,71,194,5,3,139,134,5,3,71,194,5,5,139,134,5,2,71,5,190,0,0,194,5,5,139,5,5,3,71,194,5,5,139,5,5,2,71,5,190,0,0,194,5,5,139,156,5,0,82,194,5,5,139,5,5,0,82,194,5,5,139,156,5,0,82,194,5,2,139,5,5,0,82,194,5,2,139,134,5,2,83,194,5,4,139,5,5,2,83,194,5,4,139,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,83,194,5,2,139,5,5,2,83,194,5,2,139,134,5,2,83,194,5,3,139,5,5,2,83,194,5,3,139,134,5,2,83,194,5,5,139,5,5,2,83,194,5,5,139,156,5,0,90,194,5,5,139,5,5,0,90,194,5,5,139,156,5,0,90,194,5,2,139,5,5,0,90,194,5,2,139,156,5,0,90,194,5,3,139,5,5,0,90,194,5,3,139,5,5,6,96,5,132,0,0,194,5,4,139,5,5,6,96,5,134,0,0,194,5,4,139,166,5,6,96,5,132,0,0,194,5,4,139,166,5,6,96,5,134,0,0,194,5,4,139,5,5,16,96,5,132,0,0,194,5,4,139,5,5,16,96,5,134,0,0,194,5,4,139,166,5,16,96,5,132,0,0,194,5,4,139,166,5,16,96,5,134,0,0,194,5,4,139,5,5,28,96,5,132,0,0,194,5,4,139,5,5,28,96,5,134,0,0,194,5,4,139,158,5,28,96,5,132,0,0,194,5,4,139,158,5,28,96,5,134,0,0,194,5,4,139,5,5,32,96,5,132,0,0,194,5,4,139,5,5,32,96,5,134,0,0,194,5,4,139,166,5,32,96,5,132,0,0,194,5,4,139,166,5,32,96,5,134,0,0,194,5,4,139,5,5,48,96,5,132,0,0,194,5,4,139,5,5,48,96,5,134,0,0,194,5,4,139,158,5,48,96,5,132,0,0,194,5,4,139,158,5,48,96,5,134,0,0,194,5,4,139,5,5,76,96,5,132,0,0,194,5,4,139,5,5,76,96,5,134,0,0,194,5,4,139,155,5,76,96,5,134,0,0,194,5,4,139,5,5,86,96,5,132,0,0,194,5,4,139,5,5,86,96,5,134,0,0,194,5,4,139,155,5,86,96,5,132,0,0,194,5,4,139,155,5,86,96,5,134,0,0,194,5,4,139,5,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,6,96,194,5,4,139,5,216,0,0,5,5,28,96,194,5,4,139,5,216,0,0,193,9,22,12,194,5,4,139,193,16,22,12,194,5,4,139,5,5,86,96,194,5,4,139,5,216,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,2,3,3,235,134,5,6,3,2,235,134,5,0,50,156,5,48,0,2,3,2,243,134,5,0,70,156,5,1,0,2,3,255,255,2,71,134,5,27,3,255,255,3,71,134,5,0,82,156,5,48,0,27,3,255,255,2,83,134,5,0,42,5,5,1,0,2,3,3,235,5,5,6,3,2,235,5,5,0,50,5,5,48,0,2,3,2,243,5,5,0,70,5,5,1,0,2,3,255,255,2,71,5,5,27,3,255,255,3,71,5,5,0,82,5,5,48,0,27,3,255,255,2,83,5,5,156,42,196,162,1,0,2,3,4,192,197,162,6,3,4,192,197,226,5,42,196,162,1,0,2,3,5,192,197,34,6,3,5,192,197,98,156,50,196,162,48,0,2,3,6,192,197,34,5,50,196,162,48,0,2,3,6,192,197,98,156,82,196,162,48,0,27,3,9,192,197,162,5,82,196,162,48,0,27,3,9,192,197,226,3,71,134,5,48,0,2,3,10,192,197,162,3,71,5,5,48,0,2,3,10,192,197,226,156,70,196,162,1,0,2,3,11,192,197,226,27,3,12,192,197,34,5,70,196,162,1,0,2,3,12,192,197,98,27,3,12,192,197,162,156,50,196,160,48,0,2,3,15,192,197,162,5,50,196,160,48,0,2,3,15,192,197,226,156,42,196,200,1,0,2,3,22,192,197,162,6,3,22,192,197,226,5,42,196,200,1,0,2,3,23,192,197,34,6,3,23,192,197,98,156,50,196,204,48,0,2,3,26,192,197,34,5,50,196,204,48,0,2,3,26,192,197,98,156,50,196,208,48,0,2,3,26,192,197,162,5,50,196,208,48,0,2,3,26,192,197,226,41,0,197,226,1,0,2,3,42,192,197,34,6,3,42,192,197,98,42,0,197,162,1,0,2,3,42,192,197,226,6,3,43,192,197,34,47,0,197,226,48,0,2,3,48,192,197,34,48,0,197,98,48,0,2,3,48,192,197,162,52,0,197,226,48,0,2,3,53,192,197,34,53,0,197,98,48,0,2,3,53,192,197,162,58,0,197,98,48,0,2,3,58,192,197,163,59,0,197,2,48,0,2,3,59,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,68,185,72,185,76,28,4,185,92,185,96,185,100,186,104,186,112,185,116,185,120,185,124,186,128,30,4,185,144,185,148,185,156,186,160,185,164,32,4,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,68,168,72,168,76,36,4,168,92,168,96,168,100,168,104,168,112,168,116,168,120,168,124,168,128,38,4,168,144,168,148,168,156,168,160,168,164,40,4,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,153,57,217,57,185,64,185,57,121,58,89,58,0,8,249,74,154,85,218,85,185,88,122,86,154,105,218,105,26,106,122,106,217,76,186,129,153,137,217,137,185,140,185,137,121,138,136,14,217,138,153,173,217,173,25,174,121,174,217,189,185,196,2,8,136,57,200,57,168,64,168,57,104,58,72,58,4,8,232,74,136,85,200,85,168,88,104,86,136,105,200,105,8,106,104,106,200,76,168,129,136,137,200,137,168,140,168,137,104,138,128,14,200,138,136,173,200,173,8,174,104,174,200,189,168,196,104,190,57,59,40,59,185,60,168,60,42,4,44,4,217,73,200,73,25,74,8,74,185,74,168,74,57,74,40,74,57,78,40,78,185,80,168,80,58,87,40,87,250,85,232,85,186,86,168,86,46,4,48,4,58,86,40,86,25,98,8,98,249,97,232,97,185,98,168,98,249,98,232,98,25,102,8,102,89,103,72,103,186,105,168,105,58,107,40,107,250,105,232,105,26,107,8,107,186,106,168,108,6,8,8,8,26,114,8,114,249,118,232,118,168,152,217,121,200,121,249,122,232,122,57,122,40,122,121,123,104,123,89,123,72,123,218,129,200,129,250,130,232,130,58,130,40,130,10,8,185,132,168,132,57,139,40,139,249,137,232,137,153,138,136,138,12,8,14,8,217,157,200,157,249,158,232,158,57,158,40,158,218,161,200,161,26,162,8,162,250,162,232,162,58,162,40,162,249,166,232,166,57,166,40,166,185,168,168,168,185,173,168,173,57,175,40,175,249,173,232,173,89,174,72,174,153,174,136,174,50,4,52,4,25,182,8,182,25,190,8,190,121,190,217,193,200,193,185,194,168,194,57,194,40,194,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,84,200,160,169,160,200,56,169,84,187,104,187,112,169,104,169,112,169,200,169,128,217,136,187,84,200,136,169,84,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,84,255,5,185,136,255,5,185,172,255,5,168,56,255,5,168,84,255,5,168,136,255,5,168,172,255,5,25,59,255,5,8,59,255,5,26,87,255,5,8,87,255,5,25,175,255,5,8,175,255,1,3,0,69,0,52,0,61,0,195,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,108,83,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,228,41,0,0,228,41,0,0,228,41,0,0,228,41,0,0,212,63,0,0,212,63,0,0,212,76,0,0,70,77,0,0,84,83,0,0,50,105,114,84,1,0,64,8,145,1,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,111,0,119,0,124,0,132,0,140,0,148,0,48,0,56,0,48,0,56,0,48,0,56,0,156,0,164,0,172,0,180,0,187,0,195,0,200,0,208,0,216,0,224,0,228,0,236,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,1,11,1,19,1,27,1,35,1,43,1,51,1,59,1,66,1,74,1,82,1,90,1,98,1,106,1,113,1,121,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,252,0,48,0,48,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,244,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,188,1,240,1,48,2,192,0,192,0,192,0,112,2,176,2,236,2,32,3,96,3,144,3,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,64,174,0,202,97,174,0,202,130,174,0,202,163,174,0,202,196,174,0,202,229,174,0,202,6,175,0,202,39,175,0,202,72,175,0,202,105,175,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,201,32,1,0,156,5,0,48,201,134,8,0,156,5,0,52,201,68,9,0,156,5,0,56,156,5,0,58,156,5,0,60,201,128,33,0,156,5,0,64,156,5,0,66,201,0,41,0,201,102,67,0,201,192,68,0,201,132,76,0,156,5,0,76,156,5,0,78,201,64,105,0,201,198,121,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,166,122,0,5,5,0,44,201,192,123,0,5,5,0,48,201,198,127,0,5,5,0,52,201,132,128,0,5,5,0,56,5,5,0,58,5,5,0,60,201,160,140,0,5,5,0,64,5,5,0,66,201,160,144,0,201,70,156,0,201,160,157,0,201,196,161,0,5,5,0,76,5,5,0,78,201,32,176,0,201,166,184,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,197,194,91,0,134,5,3,43,197,2,92,0,196,150,156,42,196,146,156,42,197,194,105,0,196,160,156,46,196,138,156,50,197,66,92,0,134,5,2,51,196,150,156,50,196,138,156,58,197,130,92,0,196,142,156,58,196,150,156,58,160,112,0,48,197,194,92,0,196,138,156,70,197,2,93,0,134,5,2,71,197,66,93,0,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,197,130,93,0,196,142,156,82,196,150,156,82,197,194,93,0,160,5,38,93,197,2,174,0,196,138,5,42,197,2,94,0,5,5,3,43,197,66,94,0,196,150,5,42,196,146,5,42,197,34,106,0,196,160,5,46,196,138,5,50,197,130,94,0,5,5,2,51,196,150,5,50,196,138,5,58,197,194,94,0,196,142,5,58,196,150,5,58,5,112,0,48,197,2,95,0,196,138,5,70,197,66,95,0,5,5,2,71,197,130,95,0,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,197,194,95,0,196,142,5,82,196,150,5,82,197,2,96,0,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,134,5,2,43,5,5,2,43,201,134,185,0,201,166,186,0,197,66,97,0,197,130,97,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,49,5,5,2,49,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,187,0,201,134,188,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,98,0,197,130,98,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,98,0,197,2,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,99,0,197,130,99,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,99,0,197,2,100,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,100,0,197,130,100,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,100,0,197,2,101,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,189,0,201,6,190,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,101,0,197,2,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,190,0,201,134,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,83,5,5,2,83,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,102,0,197,35,103,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,192,0,201,102,193,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,104,0,197,194,104,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,105,0,197,99,105,0,197,195,105,0,197,35,106,0,197,131,106,0,197,227,106,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,194,0,201,70,195,0,192,0,0,0,192,0,0,0,197,195,107,0,197,35,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,194,5,3,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,2,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,5,139,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,4,139,192,0,0,0,192,0,0,0,197,2,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,108,0,197,194,108,0,192,0,0,0,197,2,109,0,197,66,109,0,197,130,109,0,192,0,0,0,197,194,109,0,192,0,0,0,197,2,110,0,197,66,110,0,197,131,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,110,0,197,34,111,0,197,98,111,0,197,162,111,0,197,227,111,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,112,0,197,130,112,0,197,194,112,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,113,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,114,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,196,0,201,38,197,0,192,0,0,0,192,0,0,0,197,66,115,0,197,130,115,0,192,0,0,0,192,0,0,0,197,195,115,0,197,35,116,0,192,0,0,0,192,0,0,0,197,130,116,0,197,194,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,117,0,197,99,117,0,201,70,198,0,201,6,199,0,201,198,199,0,201,134,200,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,118,0,197,2,119,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,119,0,197,163,119,0,197,2,120,0,197,66,120,0,197,130,120,0,197,194,120,0,192,0,0,0,192,0,0,0,197,2,121,0,197,66,121,0,197,131,121,0,197,227,121,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,122,0,197,130,122,0,192,0,0,0,192,0,0,0,197,194,122,0,197,2,123,0,192,0,0,0,192,0,0,0,197,66,123,0,197,130,123,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,123,0,197,35,124,0,197,131,124,0,197,227,124,0,192,0,0,0,192,0,0,0,197,67,125,0,197,163,125,0,197,2,126,0,197,66,126,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,126,0,197,194,126,0,197,3,127,0,197,99,127,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,127,0,197,2,128,0,197,67,128,0,197,163,128,0,192,0,0,0,192,0,0,0,197,3,129,0,197,99,129,0,192,0,0,0,192,0,0,0,197,194,129,0,197,2,130,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,130,0,197,163,130,0,192,0,0,0,192,0,0,0,197,2,131,0,197,66,131,0,197,130,131,0,197,194,131,0,192,0,0,0,192,0,0,0,197,2,132,0,197,66,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,132,0,197,194,132,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,133,0,197,66,133,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,201,0,201,102,202,0,197,2,135,0,197,66,135,0,197,130,135,0,197,194,135,0,197,2,136,0,197,66,136,0,197,130,136,0,197,194,136,0,197,2,137,0,197,66,137,0,197,194,133,0,197,130,134,0,197,130,137,0,197,194,137,0,197,2,138,0,197,66,138,0,197,130,138,0,197,194,138,0,197,2,139,0,197,66,139,0,197,2,134,0,197,194,134,0,201,134,203,0,201,70,204,0,197,130,140,0,197,194,140,0,197,2,141,0,197,66,141,0,197,130,141,0,197,194,141,0,197,2,142,0,197,66,142,0,197,130,142,0,197,194,142,0,197,2,143,0,197,66,143,0,197,194,139,0,197,66,140,0,197,130,143,0,197,194,143,0,197,2,144,0,197,66,144,0,201,6,205,0,201,198,205,0,197,130,145,0,197,194,145,0,197,2,146,0,197,66,146,0,197,130,146,0,197,194,146,0,197,2,147,0,197,66,147,0,197,130,147,0,197,194,147,0,197,194,144,0,197,66,145,0,197,2,148,0,197,66,148,0,197,130,148,0,197,194,148,0,197,2,149,0,197,66,149,0,197,130,149,0,197,194,149,0,201,134,206,0,201,70,207,0,197,66,151,0,197,130,151,0,197,194,151,0,197,2,152,0,197,66,152,0,197,130,152,0,197,194,152,0,197,2,153,0,197,66,153,0,197,130,153,0,197,194,153,0,197,2,154,0,197,66,154,0,197,130,154,0,192,0,0,0,192,0,0,0,197,194,154,0,197,2,155,0,197,66,155,0,197,130,155,0,197,194,155,0,197,2,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,156,0,197,163,156,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,157,0,197,99,157,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,157,0,197,35,158,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,158,0,197,227,158,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,159,0,197,163,159,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,160,0,197,99,160,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,160,0,197,35,161,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,161,0,197,227,161,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,67,162,0,197,163,162,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,163,0,197,99,163,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,163,0,197,35,164,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,164,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,164,0,197,67,165,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,165,0,197,3,166,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,110,0,192,0,0,0,197,34,111,0,192,0,0,0,197,98,111,0,192,0,0,0,197,162,111,0,192,0,0,0,197,66,112,0,192,0,0,0,197,130,112,0,192,0,0,0,197,194,112,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,166,0,197,228,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,167,0,197,228,167,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,168,0,197,228,168,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,169,0,197,228,169,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,170,0,197,228,170,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,100,171,0,197,228,171,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,99,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,172,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,109,0,192,0,0,0,197,66,109,0,192,0,0,0,192,0,0,0,197,34,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,131,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,130,109,0,192,0,0,0,192,0,0,0,197,98,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,111,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,110,0,192,0,0,0,192,0,0,0,197,130,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,163,173,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,109,0,192,0,0,0,197,66,110,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,128,33,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,47,5,142,0,0,70,5,2,47,5,142,0,0,135,5,2,47,5,144,0,0,70,5,2,47,5,144,0,0,135,5,2,47,5,156,0,0,70,5,2,47,5,156,0,0,135,5,2,47,194,5,5,139,70,5,2,47,194,5,5,139,135,5,2,47,5,150,0,0,70,5,2,47,5,150,0,0,135,5,2,47,5,160,0,0,70,5,2,47,5,160,0,0,135,5,2,47,5,206,0,0,70,5,2,47,5,206,0,0,70,5,2,47,5,210,0,0,135,5,3,55,5,150,0,0,194,5,4,139,70,5,3,55,5,150,0,0,194,5,4,139,135,5,3,55,5,138,0,0,135,5,3,55,194,5,4,139,135,5,3,55,5,142,0,0,70,5,3,55,5,138,0,0,70,5,3,55,194,5,4,139,70,5,3,55,5,142,0,0,135,5,2,55,5,142,0,0,70,5,2,55,5,142,0,0,135,5,3,55,194,5,3,139,70,5,3,55,194,5,3,139,135,5,3,55,5,164,0,0,70,5,3,55,5,164,0,0,135,5,3,55,5,140,0,0,70,5,3,55,5,140,0,0,135,5,3,55,5,162,0,0,70,5,3,55,5,162,0,0,135,5,3,55,5,156,0,0,135,5,3,55,5,144,0,0,70,5,3,55,5,144,0,0,135,5,3,55,5,184,0,0,70,5,3,55,5,184,0,0,135,5,3,55,5,188,0,0,70,5,3,55,5,188,0,0,135,5,2,55,5,144,0,0,70,5,2,55,5,144,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,194,5,5,139,70,5,2,55,194,5,5,139,135,5,2,55,5,150,0,0,70,5,2,55,5,150,0,0,135,5,2,55,5,160,0,0,70,5,2,55,5,160,0,0,135,5,2,55,5,206,0,0,70,5,2,55,5,206,0,0,135,5,3,55,5,208,0,0,70,5,3,55,5,208,0,0,70,5,2,55,5,210,0,0,135,5,3,55,194,5,2,139,70,5,3,55,194,5,2,139,135,5,3,55,194,5,5,139,70,5,3,55,194,5,5,139,135,5,2,63,5,142,0,0,70,5,2,63,5,142,0,0,135,5,2,63,5,144,0,0,70,5,2,63,5,144,0,0,135,5,2,63,5,156,0,0,70,5,2,63,5,156,0,0,135,5,2,63,194,5,5,139,70,5,2,63,194,5,5,139,135,5,2,63,5,150,0,0,70,5,2,63,5,150,0,0,135,5,2,63,5,160,0,0,70,5,2,63,5,160,0,0,135,5,2,63,5,206,0,0,70,5,2,63,5,206,0,0,70,5,2,63,5,210,0,0,136,5,4,69,5,142,0,0,71,5,4,69,5,142,0,0,136,5,4,69,5,144,0,0,71,5,4,69,5,144,0,0,136,5,4,69,5,156,0,0,71,5,4,69,5,156,0,0,136,5,4,69,194,5,5,139,71,5,4,69,194,5,5,139,136,5,4,69,5,150,0,0,71,5,4,69,5,150,0,0,136,5,4,69,5,160,0,0,71,5,4,69,5,160,0,0,136,5,4,69,5,206,0,0,71,5,4,69,5,206,0,0,71,5,4,69,5,210,0,0,70,5,4,69,5,142,0,0,70,5,4,69,5,144,0,0,70,5,4,69,5,156,0,0,70,5,4,69,194,5,5,139,70,5,4,69,5,150,0,0,70,5,4,69,5,160,0,0,70,5,4,69,5,206,0,0,70,5,4,69,5,210,0,0,135,5,3,69,5,142,0,0,70,5,3,69,5,142,0,0,135,5,3,69,5,140,0,0,70,5,3,69,5,140,0,0,135,5,3,69,5,156,0,0,70,5,3,69,5,156,0,0,135,5,3,69,5,160,0,0,70,5,3,69,5,160,0,0,135,5,2,69,5,142,0,0,70,5,2,69,5,142,0,0,135,5,3,69,5,144,0,0,70,5,3,69,5,144,0,0,135,5,3,69,194,5,4,139,70,5,3,69,194,5,4,139,135,5,2,69,5,144,0,0,70,5,2,69,5,144,0,0,135,5,3,69,5,164,0,0,70,5,3,69,5,164,0,0,135,5,2,69,5,156,0,0,70,5,2,69,5,156,0,0,135,5,2,69,194,5,5,139,70,5,2,69,194,5,5,139,135,5,2,69,5,150,0,0,70,5,2,69,5,150,0,0,135,5,2,69,5,160,0,0,70,5,2,69,5,160,0,0,135,5,2,69,5,206,0,0,70,5,2,69,5,206,0,0,70,5,2,69,5,210,0,0,135,5,2,73,5,142,0,0,70,5,2,73,5,142,0,0,135,5,2,73,5,144,0,0,70,5,2,73,5,144,0,0,135,5,2,73,5,156,0,0,70,5,2,73,5,156,0,0,135,5,2,73,194,5,5,139,70,5,2,73,194,5,5,139,135,5,2,73,5,150,0,0,70,5,2,73,5,150,0,0,135,5,2,73,5,160,0,0,70,5,2,73,5,160,0,0,135,5,2,73,5,206,0,0,70,5,2,73,5,206,0,0,70,5,2,73,5,210,0,0,135,5,2,75,5,150,0,0,194,5,4,139,70,5,2,75,5,150,0,0,194,5,4,139,135,5,2,75,5,138,0,0,135,5,2,75,194,5,4,139,135,5,2,75,5,142,0,0,70,5,2,75,5,138,0,0,70,5,2,75,194,5,4,139,70,5,2,75,5,142,0,0,135,5,2,75,194,5,3,139,70,5,2,75,194,5,3,139,135,5,2,75,5,164,0,0,70,5,2,75,5,164,0,0,135,5,2,75,5,140,0,0,70,5,2,75,5,140,0,0,135,5,2,75,5,146,0,0,70,5,2,75,5,146,0,0,135,5,2,75,5,152,0,0,70,5,2,75,5,152,0,0,135,5,2,75,5,162,0,0,70,5,2,75,5,162,0,0,135,5,2,75,5,190,0,0,70,5,2,75,5,190,0,0,135,5,2,75,5,144,0,0,70,5,2,75,5,144,0,0,135,5,2,75,5,150,0,0,5,164,0,0,70,5,2,75,5,150,0,0,5,164,0,0,135,5,2,75,5,150,0,0,5,144,0,0,70,5,2,75,5,150,0,0,5,144,0,0,135,5,2,75,5,150,0,0,5,138,0,0,70,5,2,75,5,150,0,0,5,138,0,0,135,5,2,75,5,184,0,0,70,5,2,75,5,184,0,0,135,5,2,75,5,188,0,0,70,5,2,75,5,188,0,0,135,5,2,75,5,198,0,0,70,5,2,75,5,198,0,0,135,5,2,75,5,208,0,0,70,5,2,75,5,208,0,0,135,5,2,75,5,204,0,0,70,5,2,75,5,204,0,0,135,5,2,75,194,5,3,139,194,5,4,139,70,5,2,75,194,5,3,139,194,5,4,139,135,5,2,75,5,164,0,0,5,150,0,0,70,5,2,75,5,164,0,0,5,150,0,0,135,5,2,75,194,5,5,139,70,5,2,75,194,5,5,139,135,5,2,75,194,5,2,139,70,5,2,75,194,5,2,139,135,5,2,75,5,190,0,0,194,5,4,139,70,5,2,75,5,190,0,0,194,5,4,139,135,5,2,75,5,190,0,0,5,138,0,0,70,5,2,75,5,190,0,0,5,138,0,0,135,5,2,75,5,190,0,0,194,5,2,139,70,5,2,75,5,190,0,0,194,5,2,139,135,5,2,75,5,190,0,0,194,5,3,139,70,5,2,75,5,190,0,0,194,5,3,139,135,5,2,75,5,190,0,0,194,5,5,139,70,5,2,75,5,190,0,0,194,5,5,139,135,5,2,81,5,142,0,0,70,5,2,81,5,142,0,0,135,5,3,81,194,5,4,139,70,5,3,81,194,5,4,139,135,5,3,81,5,160,0,0,70,5,3,81,5,160,0,0,135,5,3,81,5,144,0,0,70,5,3,81,5,144,0,0,135,5,3,81,5,184,0,0,70,5,3,81,5,184,0,0,135,5,3,81,5,188,0,0,70,5,3,81,5,188,0,0,135,5,2,81,5,144,0,0,70,5,2,81,5,144,0,0,135,5,2,81,5,156,0,0,70,5,2,81,5,156,0,0,135,5,2,81,194,5,5,139,70,5,2,81,194,5,5,139,135,5,2,81,5,150,0,0,70,5,2,81,5,150,0,0,135,5,2,81,5,160,0,0,70,5,2,81,5,160,0,0,135,5,2,81,5,206,0,0,70,5,2,81,5,206,0,0,135,5,3,81,5,156,0,0,70,5,3,81,5,156,0,0,135,5,3,81,194,5,5,139,70,5,3,81,194,5,5,139,135,5,3,81,194,5,5,139,5,164,0,0,70,5,3,81,194,5,5,139,5,164,0,0,135,5,3,81,5,210,0,0,70,5,3,81,5,210,0,0,70,5,2,81,5,210,0,0,5,5,2,47,5,142,0,0,5,5,2,47,5,144,0,0,5,5,2,47,5,156,0,0,5,5,2,47,194,5,5,139,5,5,2,47,5,150,0,0,5,5,2,47,5,160,0,0,5,5,2,47,5,206,0,0,5,5,2,47,5,210,0,0,5,5,3,55,5,150,0,0,194,5,4,139,5,5,3,55,5,138,0,0,5,5,3,55,194,5,4,139,5,5,3,55,5,142,0,0,5,5,2,55,5,142,0,0,5,5,3,55,194,5,3,139,5,5,3,55,5,164,0,0,5,5,3,55,5,140,0,0,5,5,3,55,5,162,0,0,5,5,3,55,5,144,0,0,5,5,3,55,5,184,0,0,5,5,3,55,5,188,0,0,5,5,2,55,5,144,0,0,5,5,2,55,5,156,0,0,5,5,2,55,194,5,5,139,5,5,2,55,5,150,0,0,5,5,2,55,5,160,0,0,5,5,2,55,5,206,0,0,5,5,3,55,5,208,0,0,5,5,2,55,5,210,0,0,5,5,3,55,194,5,2,139,5,5,3,55,194,5,5,139,5,5,2,63,5,142,0,0,5,5,2,63,5,144,0,0,5,5,2,63,5,156,0,0,5,5,2,63,194,5,5,139,5,5,2,63,5,150,0,0,5,5,2,63,5,160,0,0,5,5,2,63,5,206,0,0,5,5,2,63,5,210,0,0,5,5,4,69,5,142,0,0,5,5,4,69,5,144,0,0,5,5,4,69,5,156,0,0,5,5,4,69,194,5,5,139,5,5,4,69,5,150,0,0,5,5,4,69,5,160,0,0,5,5,4,69,5,206,0,0,5,5,4,69,5,210,0,0,5,5,3,69,5,142,0,0,5,5,3,69,5,140,0,0,5,5,3,69,5,156,0,0,5,5,3,69,5,160,0,0,5,5,2,69,5,142,0,0,5,5,3,69,5,144,0,0,5,5,3,69,194,5,4,139,5,5,2,69,5,144,0,0,5,5,3,69,5,164,0,0,5,5,2,69,5,156,0,0,5,5,2,69,194,5,5,139,5,5,2,69,5,150,0,0,5,5,2,69,5,160,0,0,5,5,2,69,5,206,0,0,5,5,2,69,5,210,0,0,5,5,2,73,5,142,0,0,5,5,2,73,5,144,0,0,5,5,2,73,5,156,0,0,5,5,2,73,194,5,5,139,5,5,2,73,5,150,0,0,5,5,2,73,5,160,0,0,5,5,2,73,5,206,0,0,5,5,2,73,5,210,0,0,5,5,2,75,5,150,0,0,194,5,4,139,5,5,2,75,5,138,0,0,5,5,2,75,194,5,4,139,5,5,2,75,5,142,0,0,5,5,2,75,194,5,3,139,5,5,2,75,5,164,0,0,5,5,2,75,5,140,0,0,5,5,2,75,5,146,0,0,5,5,2,75,5,152,0,0,5,5,2,75,5,162,0,0,5,5,2,75,5,190,0,0,5,5,2,75,5,144,0,0,5,5,2,75,5,150,0,0,5,164,0,0,5,5,2,75,5,150,0,0,5,144,0,0,5,5,2,75,5,150,0,0,5,138,0,0,5,5,2,75,5,184,0,0,5,5,2,75,5,188,0,0,5,5,2,75,5,198,0,0,5,5,2,75,5,208,0,0,5,5,2,75,5,204,0,0,5,5,2,75,194,5,3,139,194,5,4,139,5,5,2,75,5,164,0,0,5,150,0,0,5,5,2,75,194,5,5,139,5,5,2,75,194,5,2,139,5,5,2,75,5,190,0,0,194,5,4,139,5,5,2,75,5,190,0,0,5,138,0,0,5,5,2,75,5,190,0,0,194,5,2,139,5,5,2,75,5,190,0,0,194,5,3,139,5,5,2,75,5,190,0,0,194,5,5,139,5,5,2,81,5,142,0,0,5,5,3,81,194,5,4,139,5,5,3,81,5,160,0,0,5,5,3,81,5,144,0,0,5,5,3,81,5,184,0,0,5,5,3,81,5,188,0,0,5,5,2,81,5,144,0,0,5,5,2,81,5,156,0,0,5,5,2,81,194,5,5,139,5,5,2,81,5,150,0,0,5,5,2,81,5,160,0,0,5,5,2,81,5,206,0,0,5,5,3,81,5,156,0,0,5,5,3,81,194,5,5,139,5,5,3,81,194,5,5,139,5,164,0,0,5,5,3,81,5,210,0,0,5,5,2,81,5,210,0,0,156,5,0,42,194,5,4,139,156,5,0,42,194,5,3,139,156,5,0,50,194,5,4,139,156,5,0,58,194,5,4,139,156,5,0,68,194,5,3,139,156,5,0,70,194,5,4,139,156,5,0,70,194,5,3,139,156,5,0,82,194,5,4,139,156,5,0,90,194,5,4,139,5,5,0,42,194,5,4,139,5,5,0,42,194,5,3,139,5,5,0,50,194,5,4,139,5,5,0,58,194,5,4,139,5,5,0,68,194,5,3,139,5,5,0,70,194,5,4,139,5,5,0,70,194,5,3,139,5,5,0,82,194,5,4,139,5,5,0,90,194,5,4,139,134,5,3,43,5,162,0,0,134,5,2,43,5,162,0,0,5,5,3,43,5,162,0,0,5,5,2,43,5,162,0,0,156,5,0,46,194,5,4,139,5,5,0,46,194,5,4,139,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,156,5,0,58,194,5,3,139,5,5,0,58,194,5,3,139,156,5,0,64,194,5,4,139,5,5,0,64,194,5,4,139,156,5,0,68,194,5,4,139,5,5,0,68,194,5,4,139,156,5,0,76,194,5,4,139,5,5,0,76,194,5,4,139,156,5,0,78,194,5,4,139,5,5,0,78,194,5,4,139,156,5,0,82,194,5,3,139,5,5,0,82,194,5,3,139,134,5,2,83,5,162,0,0,5,5,2,83,5,162,0,0,156,5,0,92,194,5,4,139,5,5,0,92,194,5,4,139,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,156,5,0,82,5,150,0,0,194,5,4,139,5,5,0,82,5,150,0,0,194,5,4,139,134,5,2,71,5,162,0,0,134,5,3,71,5,162,0,0,5,5,2,71,5,162,0,0,5,5,3,71,5,162,0,0,156,5,0,54,194,5,4,139,5,5,0,54,194,5,4,139,156,5,0,42,5,146,0,0,194,5,4,139,5,5,0,42,5,146,0,0,194,5,4,139,160,112,0,42,162,5,0,50,194,5,4,139,5,112,0,42,19,5,0,50,194,5,4,139,156,5,0,70,5,158,0,0,194,5,4,139,5,5,0,70,5,158,0,0,194,5,4,139,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,156,5,0,70,194,5,3,139,5,164,0,0,5,5,0,70,194,5,3,139,5,164,0,0,5,5,16,12,194,5,4,139,166,5,6,96,194,5,4,139,166,5,16,96,194,5,4,139,158,5,28,96,194,5,4,139,166,5,32,96,194,5,4,139,158,5,48,96,194,5,4,139,155,5,76,96,194,5,4,139,155,5,86,96,194,5,4,139,5,5,32,96,5,150,0,0,194,5,4,139,5,5,6,96,194,5,4,139,5,5,16,96,194,5,4,139,5,5,28,96,194,5,4,139,5,5,32,96,194,5,4,139,5,5,76,96,5,150,0,0,194,5,4,139,5,5,48,96,194,5,4,139,5,5,76,96,194,5,4,139,5,5,86,96,194,5,4,139,166,5,76,96,194,5,4,139,174,5,16,97,194,5,4,139,174,5,84,97,194,5,4,139,5,5,16,97,194,5,4,139,5,5,84,97,194,5,4,139,134,5,3,43,5,200,0,0,134,5,2,43,5,200,0,0,5,5,3,43,5,200,0,0,5,5,2,43,5,200,0,0,156,5,0,44,194,5,5,139,5,5,0,44,194,5,5,139,156,5,0,46,5,160,0,0,194,5,4,139,5,5,0,46,5,160,0,0,194,5,4,139,156,5,0,48,194,5,5,139,5,5,0,48,194,5,5,139,156,5,0,50,5,164,0,0,194,5,4,139,5,5,0,50,5,164,0,0,194,5,4,139,134,5,2,51,5,204,0,0,5,5,2,51,5,204,0,0,134,5,2,51,5,208,0,0,5,5,2,51,5,208,0,0,156,5,0,56,194,5,5,139,5,5,0,56,194,5,5,139,156,5,0,58,5,150,0,0,194,5,4,139,5,5,0,58,5,150,0,0,194,5,4,139,156,5,0,62,194,5,4,139,5,5,0,62,194,5,4,139,156,5,0,62,194,5,5,139,5,5,0,62,194,5,5,139,156,5,0,64,194,5,5,139,5,5,0,64,194,5,5,139,156,5,0,64,194,5,5,139,5,164,0,0,5,5,0,64,194,5,5,139,5,164,0,0,156,5,0,66,194,5,4,139,5,5,0,66,194,5,4,139,156,5,0,66,194,5,5,139,5,5,0,66,194,5,5,139,156,5,0,68,194,5,5,139,5,5,0,68,194,5,5,139,156,5,0,70,194,5,3,139,194,5,4,139,5,5,0,70,194,5,3,139,194,5,4,139,156,5,0,70,194,5,3,139,5,150,0,0,5,5,0,70,194,5,3,139,5,150,0,0,156,5,0,70,5,164,0,0,194,5,4,139,5,5,0,70,5,164,0,0,194,5,4,139,156,5,0,72,194,5,4,139,5,5,0,72,194,5,4,139,156,5,0,76,194,5,5,139,5,5,0,76,194,5,5,139,156,5,0,76,194,5,5,139,5,164,0,0,5,5,0,76,194,5,5,139,5,164,0,0,156,5,0,78,194,5,5,139,5,5,0,78,194,5,5,139,156,5,0,78,194,5,4,139,5,156,0,0,5,5,0,78,194,5,4,139,5,156,0,0,156,5,0,78,194,5,5,139,5,156,0,0,5,5,0,78,194,5,5,139,5,156,0,0,156,5,0,80,194,5,5,139,5,5,0,80,194,5,5,139,156,5,0,82,194,5,3,139,194,5,4,139,5,5,0,82,194,5,3,139,194,5,4,139,156,5,0,84,194,5,3,139,5,5,0,84,194,5,3,139,156,5,0,84,194,5,5,139,5,5,0,84,194,5,5,139,160,5,0,86,194,5,4,139,5,5,0,86,194,5,4,139,160,5,0,86,194,5,5,139,5,5,0,86,194,5,5,139,156,5,0,92,194,5,5,139,5,5,0,92,194,5,5,139,156,5,0,42,194,5,5,139,134,5,3,43,194,5,5,139,134,5,2,43,194,5,5,139,5,5,0,42,194,5,5,139,5,5,3,43,194,5,5,139,5,5,2,43,194,5,5,139,156,5,0,42,194,5,2,139,5,5,0,42,194,5,2,139,134,5,3,43,194,5,4,139,5,5,3,43,194,5,4,139,134,5,3,43,5,138,0,0,5,5,3,43,5,138,0,0,134,5,3,43,194,5,2,139,5,5,3,43,194,5,2,139,134,5,3,43,194,5,3,139,5,5,3,43,194,5,3,139,134,5,2,43,194,5,4,139,5,5,2,43,194,5,4,139,134,5,2,43,5,138,0,0,5,5,2,43,5,138,0,0,134,5,2,43,194,5,2,139,5,5,2,43,194,5,2,139,134,5,2,43,194,5,3,139,5,5,2,43,194,5,3,139,156,5,0,50,194,5,5,139,134,5,2,51,194,5,5,139,5,5,0,50,194,5,5,139,5,5,2,51,194,5,5,139,156,5,0,50,194,5,2,139,5,5,0,50,194,5,2,139,156,5,0,50,194,5,3,139,5,5,0,50,194,5,3,139,134,5,2,51,194,5,4,139,5,5,2,51,194,5,4,139,134,5,2,51,5,138,0,0,5,5,2,51,5,138,0,0,134,5,2,51,194,5,2,139,5,5,2,51,194,5,2,139,134,5,2,51,194,5,3,139,5,5,2,51,194,5,3,139,156,5,0,58,194,5,2,139,5,5,0,58,194,5,2,139,156,5,0,58,194,5,5,139,5,5,0,58,194,5,5,139,156,5,0,70,194,5,5,139,134,5,2,71,194,5,5,139,5,5,0,70,194,5,5,139,5,5,2,71,194,5,5,139,156,5,0,70,194,5,2,139,5,5,0,70,194,5,2,139,134,5,2,71,194,5,4,139,5,5,2,71,194,5,4,139,134,5,2,71,5,138,0,0,5,5,2,71,5,138,0,0,134,5,2,71,194,5,2,139,5,5,2,71,194,5,2,139,134,5,2,71,194,5,3,139,5,5,2,71,194,5,3,139,134,5,3,71,194,5,4,139,5,5,3,71,194,5,4,139,134,5,3,71,5,138,0,0,5,5,3,71,5,138,0,0,134,5,3,71,194,5,2,139,5,5,3,71,194,5,2,139,134,5,3,71,194,5,3,139,5,5,3,71,194,5,3,139,134,5,3,71,194,5,5,139,134,5,2,71,5,190,0,0,194,5,5,139,5,5,3,71,194,5,5,139,5,5,2,71,5,190,0,0,194,5,5,139,156,5,0,82,194,5,5,139,5,5,0,82,194,5,5,139,156,5,0,82,194,5,2,139,5,5,0,82,194,5,2,139,134,5,2,83,194,5,4,139,5,5,2,83,194,5,4,139,134,5,2,83,5,138,0,0,5,5,2,83,5,138,0,0,134,5,2,83,194,5,2,139,5,5,2,83,194,5,2,139,134,5,2,83,194,5,3,139,5,5,2,83,194,5,3,139,134,5,2,83,194,5,5,139,5,5,2,83,194,5,5,139,156,5,0,90,194,5,5,139,5,5,0,90,194,5,5,139,156,5,0,90,194,5,2,139,5,5,0,90,194,5,2,139,156,5,0,90,194,5,3,139,5,5,0,90,194,5,3,139,5,5,6,96,5,132,0,0,194,5,4,139,5,5,6,96,5,134,0,0,194,5,4,139,166,5,6,96,5,132,0,0,194,5,4,139,166,5,6,96,5,134,0,0,194,5,4,139,5,5,16,96,5,132,0,0,194,5,4,139,5,5,16,96,5,134,0,0,194,5,4,139,166,5,16,96,5,132,0,0,194,5,4,139,166,5,16,96,5,134,0,0,194,5,4,139,5,5,28,96,5,132,0,0,194,5,4,139,5,5,28,96,5,134,0,0,194,5,4,139,158,5,28,96,5,132,0,0,194,5,4,139,158,5,28,96,5,134,0,0,194,5,4,139,5,5,32,96,5,132,0,0,194,5,4,139,5,5,32,96,5,134,0,0,194,5,4,139,166,5,32,96,5,132,0,0,194,5,4,139,166,5,32,96,5,134,0,0,194,5,4,139,5,5,48,96,5,132,0,0,194,5,4,139,5,5,48,96,5,134,0,0,194,5,4,139,158,5,48,96,5,132,0,0,194,5,4,139,158,5,48,96,5,134,0,0,194,5,4,139,5,5,76,96,5,132,0,0,194,5,4,139,5,5,76,96,5,134,0,0,194,5,4,139,155,5,76,96,5,134,0,0,194,5,4,139,5,5,86,96,5,132,0,0,194,5,4,139,5,5,86,96,5,134,0,0,194,5,4,139,155,5,86,96,5,132,0,0,194,5,4,139,155,5,86,96,5,134,0,0,194,5,4,139,5,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,132,0,0,194,5,4,139,5,216,0,0,166,5,6,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,132,0,0,194,5,4,139,5,216,0,0,158,5,28,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,5,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,132,0,0,194,5,4,139,5,216,0,0,155,5,86,96,5,134,0,0,194,5,4,139,5,216,0,0,5,5,6,96,194,5,4,139,5,216,0,0,5,5,28,96,194,5,4,139,5,216,0,0,193,9,22,12,194,5,4,139,193,16,22,12,194,5,4,139,5,5,86,96,194,5,4,139,5,216,0,0,5,112,0,78,19,5,0,78,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,2,3,3,235,134,5,6,3,2,235,134,5,0,46,156,5,16,0,36,30,29,0,40,30,15,0,40,30,2,192,197,162,41,30,2,192,197,226,42,30,3,192,197,34,43,30,3,192,197,98,150,30,3,192,197,162,36,30,1,192,197,162,37,30,1,192,197,226,38,30,2,192,197,34,39,30,2,192,197,98,30,2,12,0,30,2,0,192,197,162,31,2,0,192,197,226,34,30,1,192,197,34,35,30,1,192,197,98,72,0,2,239,135,5,104,0,2,239,70,5,36,1,197,162,37,1,0,192,197,98,0,50,156,5,48,0,2,3,2,243,134,5,0,54,156,5,0,0,49,0,8,2,89,0,40,30,45,0,46,30,23,0,200,30,12,0,200,30,14,192,197,34,201,30,14,192,197,98,202,30,14,192,197,162,203,30,14,192,197,226,46,30,3,192,197,227,47,30,4,192,197,67,150,30,13,192,197,226,43,30,9,0,43,30,13,192,197,34,44,30,13,192,197,98,45,30,13,192,197,162,40,30,12,192,197,98,41,30,12,192,197,162,42,30,12,192,197,226,34,30,20,0,37,30,9,0,37,30,11,192,197,162,38,30,11,192,197,226,39,30,12,192,197,34,34,30,10,192,197,226,35,30,11,192,197,34,36,30,11,192,197,98,11,2,9,0,11,2,10,192,197,34,30,2,10,192,197,98,31,2,10,192,197,162,8,2,9,192,197,98,9,2,9,192,197,162,10,2,9,192,197,226,36,1,45,0,44,1,23,0,47,1,12,0,47,1,8,192,197,98,48,1,8,192,197,162,207,1,8,192,197,226,208,1,9,192,197,34,44,1,7,192,197,162,45,1,7,192,197,226,46,1,8,192,197,34,41,1,9,0,41,1,6,192,197,226,42,1,7,192,197,34,43,1,7,192,197,98,36,1,6,192,197,34,37,1,6,192,197,98,40,1,6,192,197,162,206,0,20,0,237,0,9,0,237,0,5,192,197,162,238,0,5,192,197,226,239,0,4,192,197,66,206,0,5,192,197,34,207,0,3,192,197,226,236,0,5,192,197,98,105,0,14,0,105,0,6,0,204,0,4,192,197,162,205,0,4,192,197,226,240,127,3,55,70,5,68,3,4,192,197,67,72,0,2,247,135,5,73,0,3,0,104,0,2,247,70,5,240,127,3,55,135,5,68,3,3,192,197,227,0,62,156,5,16,0,36,30,29,0,40,30,15,0,40,30,17,192,197,162,41,30,17,192,197,226,42,30,18,192,197,34,43,30,18,192,197,98,150,30,18,192,197,162,36,30,16,192,197,162,37,30,16,192,197,226,38,30,17,192,197,34,39,30,17,192,197,98,30,2,12,0,30,2,15,192,197,162,31,2,15,192,197,226,34,30,16,192,197,34,35,30,16,192,197,98,72,0,2,255,135,5,104,0,2,255,70,5,36,1,15,192,197,34,37,1,15,192,197,98,0,68,156,5,32,0,244,1,57,0,36,30,29,0,40,30,15,0,40,30,30,192,197,162,41,30,30,192,197,226,42,30,31,192,197,34,43,30,31,192,197,98,150,30,31,192,197,162,36,30,29,192,197,162,37,30,29,192,197,226,38,30,30,192,197,34,39,30,30,192,197,98,32,30,12,0,32,30,28,192,197,162,33,30,28,192,197,226,34,30,29,192,197,34,35,30,29,192,197,98,244,1,27,192,197,162,245,1,27,192,197,226,30,2,28,192,197,34,31,2,28,192,197,98,32,1,26,0,36,1,12,0,36,1,26,192,197,162,37,1,26,192,197,226,230,1,27,192,197,34,231,1,27,192,197,98,32,1,25,192,197,162,33,1,25,192,197,226,34,1,26,192,197,34,35,1,26,192,197,98,28,1,12,0,28,1,24,192,197,162,29,1,24,192,197,226,30,1,25,192,197,34,31,1,25,192,197,98,71,0,10,0,72,0,255,255,2,69,135,5,103,0,66,0,104,0,255,255,2,69,70,5,208,127,3,69,135,5,36,30,29,0,40,30,15,0,40,30,21,192,197,98,41,30,21,192,197,162,42,30,21,192,197,226,43,30,22,192,197,34,150,30,22,192,197,98,36,30,20,192,197,98,37,30,20,192,197,162,38,30,20,192,197,226,39,30,21,192,197,34,30,2,12,0,30,2,19,192,197,98,31,2,19,192,197,162,34,30,19,192,197,226,35,30,20,192,197,34,72,0,255,255,4,69,136,5,104,0,255,255,4,69,71,5,36,1,18,192,197,226,37,1,19,192,197,34,200,127,3,69,70,5,37,30,15,0,37,30,23,192,197,98,39,30,23,192,197,162,41,30,23,192,197,226,43,30,24,192,197,34,150,30,24,192,197,98,104,0,255,255,4,69,70,5,37,1,22,192,197,162,31,2,22,192,197,226,35,30,23,192,197,34,0,70,156,5,1,0,2,3,255,255,2,71,134,5,27,3,255,255,3,71,134,5,0,72,156,5,16,0,36,30,29,0,40,30,15,0,40,30,34,192,197,98,41,30,34,192,197,162,42,30,34,192,197,226,43,30,35,192,197,34,150,30,35,192,197,98,36,30,33,192,197,98,37,30,33,192,197,162,38,30,33,192,197,226,39,30,34,192,197,34,30,2,12,0,30,2,32,192,197,98,31,2,32,192,197,162,34,30,32,192,197,226,35,30,33,192,197,34,72,0,255,255,2,73,135,5,104,0,255,255,2,73,70,5,36,1,31,192,197,226,37,1,32,192,197,34,0,74,160,5,0,0,61,0,218,1,107,0,122,30,54,0,234,30,26,0,238,30,12,0,238,30,51,192,197,99,239,30,51,192,197,195,240,30,52,192,197,35,241,30,52,192,197,131,234,30,49,192,197,227,235,30,50,192,197,67,236,30,50,192,197,163,237,30,51,192,197,3,230,30,12,0,230,30,48,192,197,162,231,30,48,192,197,226,232,30,49,192,197,35,233,30,49,192,197,131,122,30,47,192,197,99,123,30,47,192,197,195,228,30,48,192,197,34,229,30,48,192,197,98,114,30,26,0,118,30,12,0,118,30,46,192,197,34,119,30,46,192,197,98,120,30,46,192,197,163,121,30,47,192,197,3,114,30,45,192,197,34,115,30,45,192,197,98,116,30,45,192,197,162,117,30,45,192,197,226,20,2,12,0,20,2,44,192,197,34,21,2,44,192,197,98,22,2,44,192,197,162,23,2,44,192,197,226,218,1,43,192,197,3,219,1,43,192,197,99,220,1,43,192,197,195,109,1,54,0,176,1,26,0,214,1,12,0,214,1,42,192,197,67,215,1,35,192,197,163,216,1,36,192,197,3,217,1,42,192,197,163,176,1,41,192,197,34,211,1,41,192,197,98,212,1,41,192,197,162,213,1,41,192,197,227,113,1,12,0,113,1,40,192,197,34,114,1,40,192,197,98,115,1,40,192,197,162,175,1,40,192,197,226,109,1,39,192,197,34,110,1,39,192,197,98,111,1,39,192,197,162,112,1,39,192,197,226,250,0,26,0,105,1,12,0,105,1,38,192,197,34,106,1,38,192,197,98,107,1,38,192,197,162,108,1,38,192,197,226,250,0,37,192,197,98,251,0,37,192,197,162,252,0,36,192,197,2,104,1,37,192,197,226,218,0,12,0,218,0,36,192,197,162,219,0,36,192,197,226,220,0,35,192,197,162,249,0,37,192,197,34,85,0,5,0,117,0,9,0,217,0,36,192,197,98,240,127,2,75,135,5,68,3,35,192,197,163,240,127,2,75,70,5,68,3,36,192,197,3,0,80,156,5,36,0,34,30,63,0,43,30,32,0,92,30,15,0,92,30,59,192,197,227,93,30,60,192,197,67,94,30,60,192,197,162,95,30,60,192,197,226,150,30,61,192,197,34,43,30,58,192,197,162,88,30,58,192,197,226,89,30,59,192,197,34,90,30,59,192,197,98,91,30,59,192,197,162,38,30,15,0,38,30,57,192,197,98,39,30,57,192,197,162,40,30,57,192,197,226,41,30,58,192,197,34,42,30,58,192,197,98,34,30,56,192,197,98,35,30,56,192,197,162,36,30,56,192,197,226,37,30,57,192,197,34,87,1,29,0,17,2,15,0,17,2,55,192,197,34,18,2,55,192,197,98,19,2,55,192,197,162,30,2,55,192,197,226,31,2,56,192,197,34,87,1,54,192,197,34,88,1,54,192,197,98,89,1,54,192,197,162,16,2,54,192,197,226,36,1,15,0,36,1,52,192,197,226,37,1,53,192,197,34,84,1,53,192,197,98,85,1,53,192,197,162,86,1,53,192,197,226,72,0,255,255,2,81,135,5,82,0,255,255,3,81,135,5,104,0,255,255,2,81,70,5,114,0,255,255,3,81,70,5,0,82,156,5,48,0,27,3,255,255,2,83,134,5,0,42,5,5,1,0,2,3,3,235,5,5,6,3,2,235,5,5,0,46,5,5,8,0,37,30,15,0,37,30,62,192,197,34,39,30,62,192,197,98,41,30,62,192,197,162,43,30,62,192,197,226,150,30,63,192,197,34,104,0,2,239,5,5,37,1,61,192,197,98,31,2,61,192,197,162,35,30,61,192,197,226,0,50,5,5,48,0,2,3,2,243,5,5,0,54,5,5,24,0,9,2,45,0,41,30,23,0,47,30,12,0,47,30,63,192,197,99,150,30,68,192,197,66,201,30,68,192,197,130,203,30,68,192,197,194,41,30,67,192,197,130,43,30,67,192,197,194,45,30,68,192,197,2,35,30,9,0,35,30,66,192,197,194,37,30,67,192,197,2,39,30,67,192,197,66,9,2,66,192,197,2,11,2,66,192,197,66,31,2,66,192,197,130,37,1,20,0,45,1,9,0,45,1,65,192,197,66,47,1,65,192,197,130,208,1,65,192,197,194,37,1,64,192,197,130,41,1,64,192,197,194,43,1,65,192,197,2,237,0,9,0,237,0,64,192,197,2,238,0,64,192,197,66,239,0,63,192,197,98,104,0,2,247,5,5,105,0,3,0,236,0,63,192,197,194,240,127,3,55,5,5,68,3,63,192,197,99,0,62,5,5,8,0,37,30,15,0,37,30,69,192,197,194,39,30,70,192,197,2,41,30,70,192,197,66,43,30,70,192,197,130,150,30,70,192,197,194,104,0,2,255,5,5,37,1,69,192,197,2,31,2,69,192,197,66,35,30,69,192,197,130,0,68,5,5,16,0,245,1,29,0,37,30,15,0,37,30,75,192,197,130,39,30,75,192,197,194,41,30,76,192,197,2,43,30,76,192,197,66,150,30,76,192,197,130,245,1,74,192,197,130,31,2,74,192,197,194,33,30,75,192,197,2,35,30,75,192,197,66,33,1,12,0,33,1,73,192,197,130,35,1,73,192,197,194,37,1,74,192,197,2,231,1,74,192,197,66,103,0,10,0,104,0,255,255,2,69,5,5,29,1,73,192,197,2,31,1,73,192,197,66,200,127,3,69,5,5,37,30,15,0,37,30,71,192,197,194,39,30,72,192,197,2,41,30,72,192,197,66,43,30,72,192,197,130,150,30,72,192,197,194,104,0,255,255,4,69,5,5,37,1,71,192,197,2,31,2,71,192,197,66,35,30,71,192,197,130,0,70,5,5,1,0,2,3,255,255,2,71,5,5,27,3,255,255,3,71,5,5,0,72,5,5,8,0,37,30,15,0,37,30,77,192,197,130,39,30,77,192,197,194,41,30,78,192,197,2,43,30,78,192,197,66,150,30,78,192,197,130,104,0,255,255,2,73,5,5,37,1,76,192,197,194,31,2,77,192,197,2,35,30,77,192,197,66,0,74,5,5,30,0,218,1,54,0,123,30,26,0,235,30,12,0,235,30,85,192,197,227,237,30,86,192,197,67,239,30,86,192,197,163,241,30,87,192,197,3,123,30,84,192,197,163,229,30,85,192,197,2,231,30,85,192,197,66,233,30,85,192,197,131,115,30,12,0,115,30,83,192,197,130,117,30,83,192,197,194,119,30,84,192,197,2,121,30,84,192,197,67,218,1,82,192,197,67,220,1,82,192,197,163,21,2,83,192,197,2,23,2,83,192,197,66,109,1,26,0,176,1,12,0,176,1,81,192,197,98,212,1,81,192,197,162,214,1,81,192,197,227,216,1,78,192,197,195,109,1,80,192,197,98,111,1,80,192,197,162,113,1,80,192,197,226,115,1,81,192,197,34,251,0,12,0,251,0,79,192,197,162,252,0,78,192,197,194,105,1,79,192,197,226,107,1,80,192,197,34,117,0,6,0,249,0,79,192,197,34,250,0,79,192,197,98,240,127,2,75,5,5,68,3,78,192,197,195,0,80,5,5,18,0,35,30,32,0,89,30,15,0,89,30,90,192,197,98,91,30,90,192,197,162,93,30,90,192,197,227,95,30,91,192,197,66,150,30,91,192,197,130,35,30,89,192,197,34,37,30,89,192,197,98,39,30,89,192,197,162,41,30,89,192,197,226,43,30,90,192,197,34,87,1,15,0,87,1,87,192,197,226,89,1,88,192,197,34,17,2,88,192,197,98,19,2,88,192,197,162,31,2,88,192,197,226,104,0,255,255,2,81,5,5,114,0,255,255,3,81,5,5,37,1,87,192,197,98,85,1,87,192,197,162,0,82,5,5,48,0,27,3,255,255,2,83,5,5,156,42,196,162,1,0,2,3,96,192,197,66,6,3,96,192,197,130,5,42,196,162,1,0,2,3,96,192,197,194,6,3,97,192,197,2,156,50,196,162,48,0,2,3,97,192,197,194,5,50,196,162,48,0,2,3,98,192,197,2,156,82,196,162,48,0,27,3,101,192,197,66,5,82,196,162,48,0,27,3,101,192,197,130,3,71,134,5,48,0,2,3,102,192,197,66,3,71,5,5,48,0,2,3,102,192,197,130,156,70,196,162,1,0,2,3,103,192,197,130,27,3,103,192,197,194,5,70,196,162,1,0,2,3,104,192,197,2,27,3,104,192,197,66,156,50,196,160,48,0,2,3,107,192,197,66,5,50,196,160,48,0,2,3,107,192,197,130,156,42,196,200,1,0,2,3,114,192,197,66,6,3,114,192,197,130,5,42,196,200,1,0,2,3,114,192,197,194,6,3,115,192,197,2,156,50,196,204,48,0,2,3,117,192,197,194,5,50,196,204,48,0,2,3,118,192,197,2,156,50,196,208,48,0,2,3,118,192,197,66,5,50,196,208,48,0,2,3,118,192,197,130,133,0,197,130,1,0,2,3,133,192,197,194,6,3,134,192,197,2,134,0,197,66,1,0,2,3,134,192,197,130,6,3,134,192,197,194,139,0,197,130,48,0,2,3,139,192,197,194,140,0,197,2,48,0,2,3,140,192,197,66,144,0,197,130,48,0,2,3,144,192,197,194,145,0,197,2,48,0,2,3,145,192,197,66,150,0,197,2,48,0,2,3,150,192,197,67,150,0,197,162,48,0,2,3,150,192,197,227,56,0,71,0,74,0,82,0,83,0,85,0,86,0,103,0,106,0,114,0,115,0,117,0,118,0,204,0,208,0,217,0,221,0,236,0,240,0,249,0,253,0,28,1,38,1,40,1,49,1,84,1,90,1,104,1,116,1,175,1,177,1,207,1,209,1,211,1,221,1,230,1,232,1,244,1,246,1,8,2,12,2,16,2,24,2,30,2,32,2,32,30,48,30,88,30,96,30,114,30,124,30,150,30,151,30,200,30,204,30,228,30,242,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,68,28,4,185,80,38,4,185,96,40,4,185,112,186,116,186,124,86,4,185,136,185,140,96,4,124,4,126,4,136,4,185,188,186,192,180,4,206,4,185,216,185,220,185,224,185,228,185,232,88,13,168,13,96,13,56,14,80,12,40,14,208,4,168,68,210,4,168,80,216,4,168,96,218,4,168,112,168,116,168,124,241,4,168,136,168,140,247,4,6,5,8,5,14,5,168,188,168,192,37,5,51,5,168,216,168,220,168,224,168,228,168,232,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,160,64,13,1,0,1,0,1,0,192,12,153,57,217,57,185,64,185,57,121,58,89,58,0,8,249,74,154,89,218,89,185,92,122,90,154,117,218,117,26,118,122,118,217,80,186,145,153,161,217,161,185,164,185,161,121,162,136,14,217,162,153,213,217,213,25,214,121,214,217,229,185,236,2,8,136,57,200,57,168,64,168,57,104,58,72,58,4,8,232,74,136,89,200,89,168,92,104,90,136,117,200,117,8,118,104,118,200,80,168,145,136,161,200,161,168,164,168,161,104,162,128,14,200,162,136,213,200,213,8,214,104,214,200,229,168,236,104,230,57,59,40,59,185,60,168,60,53,5,55,5,217,73,200,73,25,74,8,74,185,74,168,74,57,74,40,74,57,82,40,82,185,84,168,84,58,91,40,91,250,89,232,89,186,90,168,90,57,5,59,5,58,90,40,90,25,102,8,102,249,101,232,101,185,102,168,102,249,102,232,102,25,114,8,114,89,115,72,115,186,117,168,117,58,119,40,119,250,117,232,117,26,119,8,119,186,118,168,120,6,8,8,8,26,126,8,126,249,130,232,130,168,184,217,137,200,137,249,138,232,138,57,138,40,138,121,139,104,139,89,139,72,139,218,145,200,145,250,146,232,146,58,146,40,146,10,8,185,156,168,156,57,163,40,163,249,161,232,161,153,162,136,162,12,8,14,8,217,189,200,189,249,190,232,190,57,190,40,190,218,193,200,193,26,194,8,194,250,194,232,194,58,194,40,194,249,198,232,198,57,198,40,198,185,208,168,208,185,213,168,213,57,215,40,215,249,213,232,213,89,214,72,214,153,214,136,214,61,5,63,5,25,222,8,222,25,230,8,230,121,230,217,233,200,233,185,234,168,234,57,234,40,234,232,192,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,88,200,192,169,192,200,56,169,88,187,116,187,124,169,116,169,124,169,240,169,144,217,160,187,88,200,160,169,88,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,185,72,72,4,186,76,104,4,177,76,36,5,26,78,37,5,17,78,255,5,186,88,255,5,185,100,72,4,186,104,73,2,104,4,177,104,105,2,204,4,154,109,205,4,218,109,206,4,26,110,207,4,122,110,236,4,145,109,237,4,209,109,238,4,17,110,239,4,113,110,36,5,26,106,37,5,17,106,40,5,186,109,41,5,177,109,42,5,58,111,43,5,49,111,44,5,250,109,45,5,241,109,46,5,26,111,47,5,17,111,48,5,186,110,255,5,185,128,72,4,186,132,104,4,177,132,36,5,26,134,37,5,17,134,255,5,186,144,71,2,72,4,186,148,103,2,104,4,177,148,28,5,26,154,29,5,17,154,30,5,250,153,31,5,241,153,32,5,186,154,33,5,177,154,34,5,250,154,35,5,241,154,36,5,26,150,37,5,17,150,255,5,185,160,255,5,185,168,72,4,186,172,104,4,177,172,36,5,26,174,37,5,17,174,255,5,185,176,85,2,117,2,217,4,154,181,218,4,218,181,219,4,26,182,220,4,122,182,249,4,145,181,250,4,209,181,251,4,17,182,252,4,113,182,104,5,186,181,105,5,177,181,106,5,58,183,107,5,49,183,108,5,250,181,109,5,241,181,110,5,90,182,111,5,81,182,112,5,154,182,113,5,145,182,114,5,26,183,115,5,17,183,255,5,185,196,72,4,186,200,82,4,186,204,104,4,177,200,114,4,177,204,36,5,26,202,37,5,17,202,84,5,218,205,85,5,209,205,86,5,250,206,87,5,241,206,88,5,58,206,89,5,49,206,255,5,185,212,255,5,168,56,255,5,168,72,104,4,168,76,37,5,8,78,255,5,168,88,255,5,168,100,104,4,168,104,105,2,236,4,136,109,237,4,200,109,238,4,8,110,239,4,104,110,37,5,8,106,41,5,168,109,43,5,40,111,45,5,232,109,47,5,8,111,255,5,168,128,104,4,168,132,37,5,8,134,255,5,168,144,103,2,104,4,168,148,29,5,8,154,31,5,232,153,33,5,168,154,35,5,232,154,37,5,8,150,255,5,168,160,255,5,168,168,104,4,168,172,37,5,8,174,255,5,168,176,117,2,249,4,136,181,250,4,200,181,251,4,8,182,252,4,104,182,105,5,168,181,107,5,40,183,109,5,232,181,111,5,72,182,113,5,136,182,115,5,8,183,255,5,168,196,104,4,168,200,114,4,168,204,37,5,8,202,85,5,200,205,87,5,232,206,89,5,40,206,255,5,168,212,255,5,25,59,255,5,8,59,255,5,26,91,255,5,8,91,255,5,25,215,255,5,8,215,255,1,3,0,69,0,52,0,61,0,71,15,0,16,90,0,0,96,1,0,0,96,2,0,43,0,84,0,170,170,63,15,0,32,35,36,0,32,1,0,32,0,40,36,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,198,9,0,32,7,0,0,0,21,0,0,0,200,9,0,0,200,9,0,0,3,0,0,0,0,0,0,0,55,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,62,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,65,0,60,0,224,0,60,0,60,0,60,0,192,0,38,0,69,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,235,0,60,0,60,0,60,0,203,0,38,0,78,0,60,0,241,0,60,0,60,0,60,0,209,0,60,0,75,1,60,0,60,0,60,0,74,1,38,0,79,0,60,0,243,0,60,0,60,0,60,0,211,0,0,0,28,38,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,116,29,0,0,116,29,0,0,116,29,0,0,116,29,0,0,40,31,0,0,40,31,0,0,12,34,0,0,12,34,0,0,4,38,0,0,50,105,114,84,1,0,64,8,202,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,95,0,103,0,103,0,111,0,112,0,120,0,123,0,131,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,155,0,48,0,162,0,48,0,48,0,170,0,177,0,185,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,193,0,147,0,48,0,48,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,139,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,124,1,156,1,192,1,236,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,96,12,0,202,129,12,0,202,162,12,0,202,195,12,0,202,228,12,0,202,5,13,0,202,38,13,0,202,71,13,0,202,104,13,0,202,137,13,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,38,1,0,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,201,166,2,0,201,134,3,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,230,4,0,5,5,0,44,5,5,0,46,5,5,0,48,201,6,6,0,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,201,134,7,0,201,102,8,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,43,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,162,11,0,196,160,156,46,196,138,156,50,134,5,2,51,196,142,156,50,134,5,3,51,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,134,5,2,69,196,138,156,70,134,5,2,71,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,226,11,0,5,5,2,43,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,34,12,0,196,160,5,46,196,138,5,50,5,5,2,51,196,142,5,50,5,5,3,51,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,5,5,2,69,196,138,5,70,5,5,2,71,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,9,0,201,166,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,11,0,201,70,13,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,14,0,201,134,15,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,3,69,5,5,3,69,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,16,0,201,102,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,18,0,201,166,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,20,0,201,70,22,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,23,0,201,230,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,26,0,201,134,27,0,201,6,29,0,201,134,30,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,32,0,201,198,32,0,201,134,33,0,201,70,34,0,201,6,35,0,201,198,35,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,134,36,0,201,166,37,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,38,0,201,70,40,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,198,41,0,201,230,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,2,0,197,98,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,44,0,201,38,45,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,134,5,2,43,5,162,0,0,5,5,2,43,5,162,0,0,134,5,2,51,5,162,0,0,134,5,3,51,5,162,0,0,5,5,2,51,5,162,0,0,5,5,3,51,5,162,0,0,134,5,2,69,5,160,0,0,5,5,2,69,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,51,5,160,0,0,134,5,3,51,5,160,0,0,5,5,2,51,5,160,0,0,5,5,3,51,5,160,0,0,134,5,2,43,5,200,0,0,5,5,2,43,5,200,0,0,134,5,2,51,5,204,0,0,134,5,3,51,5,204,0,0,5,5,2,51,5,204,0,0,5,5,3,51,5,204,0,0,134,5,2,51,5,208,0,0,134,5,3,51,5,208,0,0,5,5,2,51,5,208,0,0,5,5,3,51,5,208,0,0,134,5,2,69,5,196,0,0,5,5,2,69,5,196,0,0,134,5,2,69,5,210,0,0,5,5,2,69,5,210,0,0,134,5,2,69,5,204,0,0,5,5,2,69,5,204,0,0,134,5,2,43,5,196,0,0,5,5,2,43,5,196,0,0,134,5,2,51,5,196,0,0,134,5,3,51,5,196,0,0,5,5,2,51,5,196,0,0,5,5,3,51,5,196,0,0,134,5,2,71,5,196,0,0,5,5,2,71,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,5,2,71,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,5,2,71,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,1,0,0,3,2,235,134,5,64,3,2,235,134,5,0,50,156,5,2,0,1,3,2,243,134,5,8,3,3,243,134,5,65,3,2,243,134,5,0,68,156,5,48,0,3,3,255,255,2,69,134,5,0,70,156,5,1,0,1,3,255,255,2,71,134,5,65,3,255,255,2,71,134,5,0,42,5,5,1,0,0,3,2,235,5,5,64,3,2,235,5,5,0,50,5,5,2,0,1,3,2,243,5,5,8,3,3,243,5,5,65,3,2,243,5,5,0,68,5,5,48,0,3,3,255,255,2,69,5,5,0,70,5,5,1,0,1,3,255,255,2,71,5,5,65,3,255,255,2,71,5,5,156,42,196,162,1,0,0,3,197,162,64,3,197,162,5,42,196,162,1,0,0,3,0,192,197,98,64,3,0,192,197,98,156,50,196,162,2,0,1,3,0,192,197,162,8,3,0,192,197,226,65,3,0,192,197,162,5,50,196,162,2,0,1,3,1,192,197,34,8,3,1,192,197,98,65,3,1,192,197,34,156,68,196,160,48,0,3,3,1,192,197,162,5,68,196,160,48,0,3,3,1,192,197,226,156,70,196,190,1,0,1,3,2,192,197,34,65,3,2,192,197,34,5,70,196,190,1,0,1,3,2,192,197,98,65,3,2,192,197,98,156,70,196,162,1,0,1,3,2,192,197,162,65,3,2,192,197,162,5,70,196,162,1,0,1,3,2,192,197,226,65,3,2,192,197,226,156,50,196,160,2,0,1,3,3,192,197,34,8,3,3,192,197,98,65,3,3,192,197,34,5,50,196,160,2,0,1,3,3,192,197,162,8,3,3,192,197,226,65,3,3,192,197,162,156,42,196,200,1,0,0,3,4,192,197,34,64,3,4,192,197,34,5,42,196,200,1,0,0,3,4,192,197,98,64,3,4,192,197,98,156,50,196,204,2,0,1,3,4,192,197,162,8,3,4,192,197,226,65,3,4,192,197,162,5,50,196,204,2,0,1,3,5,192,197,34,8,3,5,192,197,98,65,3,5,192,197,34,156,50,196,208,2,0,1,3,5,192,197,162,8,3,5,192,197,226,65,3,5,192,197,162,5,50,196,208,2,0,1,3,6,192,197,34,8,3,6,192,197,98,65,3,6,192,197,34,156,68,196,196,48,0,3,3,6,192,197,162,5,68,196,196,48,0,3,3,6,192,197,226,156,68,196,210,48,0,3,3,7,192,197,34,5,68,196,210,48,0,3,3,7,192,197,98,156,68,196,204,48,0,3,3,7,192,197,162,5,68,196,204,48,0,3,3,7,192,197,226,156,42,196,196,1,0,0,3,8,192,197,34,64,3,8,192,197,34,5,42,196,196,1,0,0,3,8,192,197,98,64,3,8,192,197,98,156,50,196,196,2,0,1,3,8,192,197,162,8,3,8,192,197,226,65,3,8,192,197,162,5,50,196,196,2,0,1,3,9,192,197,34,8,3,9,192,197,98,65,3,9,192,197,34,156,70,196,196,1,0,1,3,9,192,197,162,65,3,9,192,197,162,5,70,196,196,1,0,1,3,9,192,197,226,65,3,9,192,197,226,10,0,197,35,1,0,1,3,10,192,197,131,65,3,10,192,197,131,10,0,197,227,1,0,1,3,11,192,197,67,65,3,11,192,197,67,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,64,185,68,185,72,28,4,185,88,185,92,185,96,186,100,186,108,185,112,185,116,185,120,30,4,32,4,185,144,185,148,185,156,186,160,185,164,185,172,185,176,185,180,185,184,185,188,185,192,88,13,168,13,96,13,56,14,80,12,40,14,34,4,168,64,168,68,168,72,36,4,168,88,168,92,168,96,168,100,168,108,168,112,168,116,168,120,38,4,40,4,168,144,168,148,168,156,168,160,168,164,168,172,168,176,168,180,168,184,168,188,168,192,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,136,64,13,1,0,1,0,1,0,192,12,185,60,153,57,249,57,153,58,89,58,57,58,0,8,249,70,186,77,185,80,250,77,185,84,186,101,154,101,250,101,90,102,217,72,185,128,185,137,185,140,249,137,153,138,89,138,136,14,217,138,185,173,153,173,249,173,89,174,153,189,185,196,2,8,168,60,136,57,232,57,136,58,72,58,40,58,4,8,232,70,168,77,168,80,232,77,168,84,168,101,136,101,232,101,72,102,200,72,168,128,168,137,168,140,232,137,136,138,72,138,128,14,200,138,168,173,136,173,232,173,72,174,136,189,168,196,72,190,57,59,40,59,217,57,200,57,42,4,44,4,153,69,136,69,249,69,232,69,185,70,168,70,25,70,8,70,25,74,8,74,89,75,72,75,58,79,40,79,218,77,200,77,186,78,168,78,46,4,48,4,26,78,8,78,249,93,232,93,217,93,200,93,185,94,168,94,249,94,232,94,249,97,232,97,89,99,72,99,154,102,136,102,58,103,40,103,218,101,200,101,26,103,8,103,186,102,168,104,6,8,8,8,250,109,232,109,249,114,232,114,168,152,153,117,136,117,249,118,232,118,25,118,8,118,121,119,104,119,89,119,72,119,154,125,136,125,50,4,52,4,26,126,8,126,10,8,185,132,168,132,57,139,40,139,217,137,200,137,121,138,104,138,12,8,14,8,153,157,136,157,249,158,232,158,25,158,8,158,154,161,136,161,250,161,232,161,250,162,232,162,26,162,8,162,249,166,232,166,25,166,8,166,185,168,168,168,153,174,136,174,57,175,40,175,217,173,200,173,57,174,40,174,121,174,104,174,25,175,8,175,249,181,232,181,249,189,232,189,89,190,153,193,136,193,185,194,168,194,25,194,8,194,232,160,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,76,200,160,169,160,200,56,169,76,187,100,187,108,169,100,169,108,169,200,169,124,217,136,187,76,200,136,169,76,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,76,255,5,186,124,255,5,185,136,255,5,168,56,255,5,168,76,255,5,168,124,255,5,168,136,255,5,25,59,255,5,8,59,255,5,26,79,255,5,8,79,255,5,250,126,255,5,232,126,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,191,9,0,32,1,0,32,0,196,9,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,76,16,0,32,7,0,0,0,23,0,0,0,78,16,0,0,78,16,0,0,3,0,0,0,0,0,0,0,124,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,101,97,114,99,104,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,115,116,97,110,100,97,114,100,0,170,0,0,52,0,50,0,0,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,115,0,101,0,97,0,114,0,99,0,104,0,93,0,14,32,38,0,243,5,60,0,60,0,39,0,39,0,14,32,38,0,244,5,60,0,60,0,39,0,34,0,39,0,0,0,155,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,101,0,98,0,114,0,93,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,39,0,60,0,60,0,243,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,39,0,34,0,39,0,60,0,60,0,244,5,38,0,209,5,60,0,209,5,191,5,38,0,213,5,60,0,60,0,213,5,188,5,60,0,60,0,213,5,213,5,60,0,60,0,213,5,217,5,38,0,217,5,60,0,60,0,217,5,180,5,60,0,60,0,217,5,217,5,60,0,60,0,242,5,183,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,219,5,60,0,219,5,188,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,228,5,60,0,228,5,188,5,38,0,228,5,191,5,60,0,60,0,60,0,227,5,38,0,233,5,60,0,233,5,194,5,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,49,0,93,0,234,5,60,0,234,5,188,5,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,106,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,0,15,0,0,0,0,0,0,0,0,61,0,0,0,68,0,0,0,68,0,0,0,68,0,0,0,228,31,0,0,228,31,0,0,228,31,0,0,228,31,0,0,12,34,0,0,12,34,0,0,82,34,0,0,82,34,0,0,82,34,0,0,50,105,114,84,1,0,64,8,241,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,94,0,102,0,110,0,118,0,48,0,56,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,142,0,150,0,48,0,48,0,48,0,158,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,0,48,0,48,0,174,0,48,0,180,0,188,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,191,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,202,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,140,0,48,0,48,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,232,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,210,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,224,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,120,1,184,1,192,0,212,1,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,253,0,0,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,194,5,221,251,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,0,16,0,202,33,16,0,202,66,16,0,202,99,16,0,202,132,16,0,202,165,16,0,202,198,16,0,202,231,16,0,202,8,17,0,202,41,17,0,5,5,54,7,5,5,42,7,5,5,129,12,201,6,0,0,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,34,7,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,7,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,220,251,5,252,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,26,102,5,71,26,102,5,70,222,102,5,72,26,102,5,70,238,102,201,198,0,0,192,0,0,0,5,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,2,0,5,71,238,102,201,134,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,222,102,6,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,204,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,114,5,5,124,114,5,5,126,114,5,5,128,114,5,5,130,114,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,115,5,5,124,115,5,5,126,115,5,5,128,115,5,5,130,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,0,0,192,0,0,0,192,0,0,0,197,98,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,0,0,192,0,0,0,197,226,0,0,192,0,0,0,192,0,0,0,197,34,1,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,1,0,192,0,0,0,197,162,1,0,192,0,0,0,197,226,1,0,192,0,0,0,197,34,2,0,192,0,0,0,197,98,2,0,197,163,2,0,197,2,3,0,192,0,0,0,192,0,0,0,197,66,3,0,197,131,3,0,197,226,3,0,192,0,0,0,192,0,0,0,197,34,4,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,142,9,118,5,5,11,118,193,2,13,118,192,0,0,0,192,0,0,0,193,23,13,118,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,12,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,193,126,133,115,193,133,133,115,192,0,0,0,192,0,0,0,193,154,133,115,192,0,0,0,193,168,133,115,193,175,133,115,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,71,238,102,7,71,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,26,102,6,70,26,102,7,71,26,102,6,71,26,102,7,70,222,102,6,70,222,102,7,72,26,102,6,72,26,102,9,70,238,102,8,70,238,102,6,70,238,102,7,70,238,102,7,5,26,102,6,5,26,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,70,214,102,6,70,214,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,214,102,8,5,214,102,6,5,214,102,7,5,214,102,8,5,222,102,7,5,222,102,9,71,238,102,8,71,238,102,10,5,238,102,9,5,238,102,7,5,238,102,8,5,238,102,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,5,6,121,5,5,6,121,5,5,12,121,5,5,12,121,5,5,20,121,5,5,20,121,5,5,24,121,5,5,24,121,5,5,30,121,5,5,30,121,5,5,103,121,5,5,143,121,5,5,107,121,5,5,143,121,5,5,111,121,5,5,143,121,5,5,115,121,5,5,143,121,5,5,119,121,5,5,103,121,5,5,119,121,5,5,103,121,5,5,143,121,5,5,119,121,5,5,143,121,5,5,129,121,5,5,111,121,5,5,129,121,5,5,111,121,5,5,143,121,5,5,129,121,5,5,143,121,5,5,139,121,5,5,143,121,5,5,6,121,5,5,24,121,5,5,10,121,5,5,30,121,5,5,10,121,5,5,42,121,5,5,16,121,5,5,6,121,5,5,16,121,5,5,18,121,5,5,16,121,5,5,20,121,5,5,16,121,5,5,24,121,5,5,16,121,5,5,38,121,5,5,16,121,5,5,40,121,5,5,16,121,5,5,42,121,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,6,121,197,34,0,0,5,5,10,121,5,5,12,121,197,98,0,0,5,5,16,121,5,5,18,121,5,5,20,121,197,162,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,197,34,1,0,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,103,121,197,98,1,0,5,5,107,121,197,162,1,0,5,5,111,121,197,226,1,0,5,5,115,121,197,34,2,0,5,5,119,121,197,98,2,0,197,163,2,0,197,2,3,0,5,5,127,121,5,5,129,121,197,66,3,0,197,131,3,0,197,226,3,0,5,5,137,121,5,5,139,121,197,34,4,0,5,5,143,121,5,5,6,121,197,34,0,0,197,98,4,0,5,5,10,121,197,162,4,0,197,226,4,0,5,5,12,121,5,5,16,121,197,34,5,0,197,98,5,0,197,162,5,0,197,226,5,0,197,34,6,0,197,98,6,0,197,162,6,0,5,5,18,121,5,5,20,121,197,194,0,0,5,5,24,121,197,226,0,0,5,5,28,121,5,5,30,121,5,5,34,121,5,5,36,121,5,5,38,121,5,5,40,121,5,5,42,121,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,131,12,5,5,48,0,56,3,132,204,5,5,26,102,5,5,2,0,83,6,255,255,26,102,5,70,84,6,255,255,26,102,5,71,85,6,255,255,26,102,5,72,222,102,5,5,48,0,84,6,255,255,222,102,5,70,238,102,5,5,48,0,84,6,255,255,238,102,5,70,170,170,3,0,67,0,50,0,59,0,127,0,0,16,4,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,124,28,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,16,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,64,0,0,0,76,0,0,0,76,1,0,0,124,26,0,0,124,26,0,0,124,26,0,0,124,26,0,0,84,27,0,0,84,27,0,0,74,28,0,0,100,28,0,0,19,0,0,0,0,0,0,101,194,255,50,101,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,0,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,50,105,114,84,1,0,64,8,138,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,80,0,88,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,129,0,104,0,48,0,48,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,96,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,105,0,113,0,121,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,128,5,0,202,161,5,0,202,194,5,0,202,227,5,0,202,4,6,0,202,37,6,0,202,70,6,0,202,103,6,0,202,136,6,0,202,169,6,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,156,5,0,50,156,5,0,52,156,5,0,54,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,156,5,0,70,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,5,5,0,50,5,5,0,52,5,5,0,54,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,5,5,0,70,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,194,4,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,2,5,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,66,5,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,228,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,4,0,192,0,0,0,201,134,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,1,0,201,102,7,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,70,8,0,201,38,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,6,10,0,5,2,106,9,5,2,120,9,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,24,101,192,0,0,0,5,72,24,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,10,0,193,2,47,101,201,166,11,0,197,2,3,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,12,0,192,0,0,0,192,0,0,0,192,0,0,0,5,70,16,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,3,0,5,5,37,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,13,0,193,3,47,101,201,166,14,0,5,5,9,101,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,5,72,16,101,194,5,167,226,5,71,16,101,194,5,210,227,5,72,16,101,194,5,210,227,5,71,16,101,194,5,78,227,5,71,24,101,194,5,167,226,5,71,24,101,194,5,210,227,5,5,38,101,194,6,243,227,32,5,24,101,32,5,24,101,5,5,46,101,194,5,177,227,193,2,47,101,194,5,177,227,5,5,46,101,194,5,210,227,194,5,177,227,193,2,47,101,194,5,210,227,194,5,177,227,5,5,8,101,194,5,210,227,5,5,9,101,194,5,210,227,5,5,38,101,194,6,243,227,194,5,210,227,5,5,16,101,194,5,78,227,5,70,16,101,194,5,78,227,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,8,101,5,5,48,0,191,5,255,255,9,101,5,5,16,101,5,5,6,0,29,251,11,0,29,251,197,162,53,251,0,192,197,98,57,251,0,192,197,162,75,251,0,192,197,226,188,5,255,255,16,101,5,70,213,5,255,255,16,101,5,71,217,5,255,255,16,101,5,72,24,101,5,5,3,0,180,5,255,255,24,101,5,70,217,5,255,255,24,101,5,71,29,251,1,192,197,34,57,251,1,192,197,98,26,101,5,5,48,0,188,5,255,255,25,101,5,5,38,101,5,5,48,0,188,5,255,255,37,101,5,5,46,101,5,5,48,0,194,5,255,255,47,101,193,2,48,101,5,5,48,0,188,5,255,255,47,101,193,3,1,0,197,226,48,0,183,5,255,255,24,101,5,72,2,0,197,34,48,0,194,5,2,192,197,98,2,0,197,163,48,0,194,5,3,192,197,3,3,0,197,98,48,0,191,5,3,192,197,162,2,0,197,162,1,0,193,5,3,0,194,5,3,192,197,2,48,0,194,5,3,192,197,3,4,0,197,66,48,0,188,5,4,192,197,130,12,0,213,5,214,5,217,5,218,5,29,251,30,251,53,251,54,251,57,251,58,251,75,251,76,251,3,0,67,0,50,0,59,0,35,9,0,16,44,0,0,96,1,0,0,96,2,0,43,0,82,0,170,170,27,9,0,32,67,16,0,32,1,0,32,0,72,16,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,231,8,0,32,7,0,0,0,21,0,0,0,233,8,0,0,233,8,0,0,3,0,0,0,0,0,0,0,53,0,0,0,99,111,108,108,97,116,105,111,110,115,0,115,116,97,110,100,97,114,100,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,0,0,52,0,50,0,0,0,57,220,91,0,110,0,111,0,114,0,109,0,97,0,108,0,105,0,122,0,97,0,116,0,105,0,111,0,110,0,32,0,111,0,110,0,93,0,38,0,69,0,60,0,185,30,60,0,60,0,60,0,184,30,38,0,71,0,60,0,103,0,98,0,60,0,60,0,60,0,71,0,98,0,60,0,60,0,60,0,71,0,66,0,38,0,79,0,60,0,205,30,60,0,60,0,60,0,204,30,38,0,83,0,60,0,99,30,60,0,60,0,60,0,98,30,0,0,170,170,170,170,170,170,170,170,170,170,160,34,0,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,17,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,68,0,0,0,68,0,0,0,84,28,0,0,84,28,0,0,84,28,0,0,84,28,0,0,96,29,0,0,96,29,0,0,126,30,0,0,140,30,0,0,136,34,0,0,50,105,114,84,1,0,64,8,184,0,255,255,192,0,28,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,89,0,97,0,97,0,105,0,106,0,114,0,117,0,125,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,149,0,48,0,152,0,159,0,167,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,175,0,141,0,48,0,48,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,133,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,100,1,132,1,168,1,212,1,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,32,7,0,202,65,7,0,202,98,7,0,202,131,7,0,202,164,7,0,202,197,7,0,202,230,7,0,202,7,8,0,202,40,8,0,202,73,8,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,156,5,0,42,156,5,0,44,156,5,0,46,156,5,0,48,201,6,0,0,156,5,0,52,201,192,0,0,156,5,0,56,156,5,0,58,156,5,0,60,156,5,0,62,156,5,0,64,156,5,0,66,156,5,0,68,201,70,4,0,156,5,0,72,160,5,0,74,156,5,0,76,201,38,5,0,156,5,0,80,156,5,0,82,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,5,5,0,42,5,5,0,44,5,5,0,46,5,5,0,48,201,6,6,0,5,5,0,52,201,192,6,0,5,5,0,56,5,5,0,58,5,5,0,60,5,5,0,62,5,5,0,64,5,5,0,66,5,5,0,68,201,166,8,0,5,5,0,72,5,5,0,74,5,5,0,76,201,134,9,0,5,5,0,80,5,5,0,82,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,196,138,156,42,196,136,156,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,6,0,196,160,156,46,196,138,156,50,196,136,156,50,196,142,156,50,196,150,156,50,196,138,156,58,196,136,156,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,196,138,156,70,196,136,156,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,196,138,156,82,196,136,156,82,196,142,156,82,196,150,156,82,196,136,156,90,160,5,38,93,197,162,6,0,196,138,5,42,196,136,5,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,6,0,196,160,5,46,196,138,5,50,196,136,5,50,196,142,5,50,196,150,5,50,196,138,5,58,196,136,5,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,196,138,5,70,196,136,5,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,196,138,5,82,196,136,5,82,196,142,5,82,196,150,5,82,196,136,5,90,5,5,38,93,196,150,5,90,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,10,0,201,38,11,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,11,0,201,166,12,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,13,0,201,38,14,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,14,0,201,166,15,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,16,0,201,38,17,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,79,5,5,2,79,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,4,0,197,34,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,51,5,5,2,51,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,5,0,197,162,5,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,5,2,71,5,5,2,71,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,5,0,197,34,6,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,98,3,0,197,162,3,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,0,0,0,135,5,2,55,5,156,0,0,70,5,2,55,5,156,0,0,135,5,2,55,5,196,0,0,70,5,2,55,5,196,0,0,135,5,2,55,5,210,0,0,70,5,2,55,5,210,0,0,5,5,2,55,5,156,0,0,5,5,2,55,5,196,0,0,5,5,2,55,5,210,0,0,134,5,2,51,5,162,0,0,5,5,2,51,5,162,0,0,134,5,2,79,5,160,0,0,5,5,2,79,5,160,0,0,134,5,2,71,5,190,0,0,5,5,2,71,5,190,0,0,134,5,2,71,5,162,0,0,5,5,2,71,5,162,0,0,134,5,2,51,5,160,0,0,5,5,2,51,5,160,0,0,134,5,2,79,5,156,0,0,5,5,2,79,5,156,0,0,134,5,2,51,5,142,0,0,5,5,2,51,5,142,0,0,134,5,2,71,5,142,0,0,5,5,2,71,5,142,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,50,156,5,48,0,35,3,2,243,134,5,0,54,156,5,7,0,4,30,12,0,4,30,0,192,197,162,5,30,0,192,197,226,6,30,1,192,197,34,7,30,1,192,197,98,66,0,2,247,135,5,98,0,2,247,70,5,2,30,197,162,3,30,0,192,197,98,0,70,156,5,48,0,35,3,255,255,2,71,134,5,0,78,156,5,48,0,35,3,255,255,2,79,134,5,0,50,5,5,48,0,35,3,2,243,5,5,0,54,5,5,3,0,98,0,2,247,5,5,3,30,1,192,197,162,5,30,1,192,197,226,7,30,2,192,197,34,0,70,5,5,48,0,35,3,255,255,2,71,5,5,0,78,5,5,48,0,35,3,255,255,2,79,5,5,156,50,196,162,48,0,35,3,2,192,197,98,5,50,196,162,48,0,35,3,2,192,197,162,156,78,196,160,48,0,35,3,2,192,197,226,5,78,196,160,48,0,35,3,3,192,197,34,156,70,196,190,48,0,35,3,3,192,197,98,5,70,196,190,48,0,35,3,3,192,197,162,156,70,196,162,48,0,35,3,3,192,197,226,5,70,196,162,48,0,35,3,4,192,197,34,156,50,196,160,48,0,35,3,4,192,197,98,5,50,196,160,48,0,35,3,4,192,197,162,6,0,66,0,67,0,98,0,99,0,2,30,8,30,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,185,56,185,60,185,64,185,68,26,4,185,76,28,4,185,88,186,92,186,100,185,104,185,108,185,112,186,116,34,4,185,128,185,132,185,140,36,4,185,148,185,156,185,160,185,164,185,168,185,172,185,176,88,13,168,13,96,13,56,14,80,12,40,14,168,56,168,60,168,64,168,68,38,4,168,76,40,4,168,88,168,92,168,100,168,104,168,108,168,112,168,116,44,4,168,128,168,132,168,140,46,4,168,148,168,156,168,160,168,164,168,168,168,172,168,176,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,124,64,13,1,0,1,0,1,0,192,12,185,57,153,57,249,57,153,58,89,58,57,58,0,8,249,66,186,73,154,73,250,73,90,74,186,93,154,93,250,93,90,94,217,68,154,118,185,125,153,125,249,125,153,126,89,126,136,14,217,126,185,157,153,157,249,157,89,158,153,173,185,180,2,8,168,57,136,57,232,57,136,58,72,58,40,58,4,8,232,66,168,73,136,73,232,73,72,74,168,93,136,93,232,93,72,94,200,68,136,118,168,125,136,125,232,125,136,126,72,126,128,14,200,126,168,157,136,157,232,157,72,158,136,173,168,180,72,174,57,59,40,59,217,57,200,57,25,59,8,59,153,65,136,65,249,65,232,65,185,66,168,66,25,66,8,66,25,70,8,70,89,71,72,71,58,75,40,75,218,73,200,73,186,74,168,74,48,4,50,4,26,74,8,74,249,81,232,81,217,81,200,81,185,82,168,82,249,82,232,82,249,89,232,89,89,91,72,91,154,94,136,94,58,95,40,95,218,93,200,93,26,95,8,95,186,94,168,96,6,8,8,8,250,101,232,101,249,106,232,106,168,136,153,109,136,109,249,110,232,110,25,110,8,110,121,111,104,111,89,111,72,111,154,117,136,117,250,118,232,118,26,118,8,118,10,8,185,120,168,120,57,127,40,127,217,125,200,125,121,126,104,126,12,8,14,8,153,141,136,141,249,142,232,142,25,142,8,142,154,145,136,145,250,145,232,145,52,4,54,4,26,146,8,146,249,150,232,150,25,150,8,150,185,152,168,152,153,158,136,158,57,159,40,159,217,157,200,157,57,158,40,158,121,158,104,158,25,159,8,159,249,165,232,165,249,173,232,173,89,174,153,177,136,177,185,178,168,178,25,178,8,178,232,144,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,144,169,144,200,56,169,72,187,92,187,100,169,92,169,100,169,184,169,116,217,124,187,72,200,124,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,186,72,255,5,185,80,66,4,186,84,98,4,177,84,255,5,185,124,255,5,186,144,255,5,168,72,255,5,168,80,98,4,168,84,255,5,168,124,255,5,168,144,255,5,26,75,255,5,8,75,255,5,250,146,255,5,232,146,255,1,3,0,69,0,52,0,61,0,55,0,0,16,4,0,0,96,1,0,0,96,1,0,43,0,224,8,0,32,1,0,32,0,229,8,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,9,0,0,80,7,0,0,0,10,0,0,0,16,0,0,0,16,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,1,0,32,0,1,0,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,23,129,3,32,7,0,0,0,35,0,0,0,25,129,3,0,25,129,3,0,8,0,0,0,0,0,0,0,26,206,0,0,99,111,108,108,97,116,105,111,110,115,0,98,105,103,53,104,97,110,0,83,101,113,117,101,110,99,101,0,86,101,114,115,105,111,110,0,37,37,67,111,108,108,97,116,105,111,110,66,105,110,0,100,101,102,97,117,108,116,0,103,98,50,51,49,50,104,97,110,0,112,114,105,118,97,116,101,45,112,105,110,121,105,110,0,115,116,114,111,107,101,0,117,110,105,104,97,110,0,122,104,117,121,105,110,0,170,170,170,0,0,52,0,50,0,0,0,112,0,105,0,110,0,121,0,105,0,110,0,0,0,82,220,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,117,0,110,0,100,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,117,0,110,0,105,0,104,0,97,0,110,0,93,0,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,0,0,115,221,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,97,0,60,0,60,0,1,1,60,0,60,0,60,0,0,1,60,0,60,0,225,0,60,0,60,0,60,0,193,0,60,0,60,0,206,1,60,0,60,0,60,0,205,1,60,0,60,0,224,0,60,0,60,0,60,0,192,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,101,0,60,0,60,0,19,1,60,0,60,0,60,0,18,1,60,0,60,0,233,0,60,0,60,0,60,0,201,0,60,0,60,0,27,1,60,0,60,0,60,0,26,1,60,0,60,0,232,0,60,0,60,0,60,0,200,0,38,0,101,0,60,0,60,0,101,0,2,3,4,3,60,0,60,0,60,0,69,0,2,3,4,3,60,0,60,0,101,0,2,3,1,3,60,0,60,0,60,0,69,0,2,3,1,3,60,0,60,0,101,0,2,3,12,3,60,0,60,0,60,0,69,0,2,3,12,3,60,0,60,0,101,0,2,3,0,3,60,0,60,0,60,0,69,0,2,3,0,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,105,0,60,0,60,0,43,1,60,0,60,0,60,0,42,1,60,0,60,0,237,0,60,0,60,0,60,0,205,0,60,0,60,0,208,1,60,0,60,0,60,0,207,1,60,0,60,0,236,0,60,0,60,0,60,0,204,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,109,0,60,0,60,0,109,0,4,3,60,0,60,0,60,0,77,0,4,3,60,0,60,0,63,30,60,0,60,0,60,0,62,30,60,0,60,0,109,0,12,3,60,0,60,0,60,0,77,0,12,3,60,0,60,0,109,0,0,3,60,0,60,0,60,0,77,0,0,3,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,110,0,60,0,60,0,110,0,4,3,60,0,60,0,60,0,78,0,4,3,60,0,60,0,68,1,60,0,60,0,60,0,67,1,60,0,60,0,72,1,60,0,60,0,60,0,71,1,60,0,60,0,249,1,60,0,60,0,60,0,248,1,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,111,0,60,0,60,0,77,1,60,0,60,0,60,0,76,1,60,0,60,0,243,0,60,0,60,0,60,0,211,0,60,0,60,0,210,1,60,0,60,0,60,0,209,1,60,0,60,0,242,0,60,0,60,0,60,0,210,0,38,0,91,0,98,0,101,0,102,0,111,0,114,0,101,0,32,0,50,0,93,0,117,0,60,0,60,0,107,1,60,0,60,0,60,0,106,1,60,0,60,0,250,0,60,0,60,0,60,0,218,0,60,0,60,0,212,1,60,0,60,0,60,0,211,1,60,0,60,0,249,0,60,0,60,0,60,0,217,0,38,0,85,0,60,0,60,0,214,1,60,0,60,0,60,0,213,1,60,0,60,0,216,1,60,0,60,0,60,0,215,1,60,0,60,0,218,1,60,0,60,0,60,0,217,1,60,0,60,0,220,1,60,0,60,0,60,0,219,1,60,0,60,0,252,0,60,0,60,0,60,0,220,0,0,0,239,223,181,26,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,72,0,97,0,110,0,105,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,42,0,74,85,63,150,195,87,40,99,206,84,9,85,192,84,145,118,76,118,60,133,238,119,126,130,141,120,49,114,152,150,141,151,40,108,137,91,250,79,9,99,151,102,184,92,250,128,72,104,174,128,2,102,206,118,249,81,86,101,172,113,241,127,132,136,178,80,101,89,202,97,179,111,173,130,76,99,82,98,237,83,39,84,6,123,107,81,164,117,244,93,212,98,203,141,118,151,138,98,25,128,93,87,56,151,98,127,56,114,125,118,207,103,126,118,70,100,112,79,37,141,220,98,23,122,145,101,237,115,44,100,115,98,44,130,129,152,127,103,72,114,110,98,204,98,52,79,227,116,74,83,158,82,202,126,166,144,46,94,134,104,156,105,128,129,209,126,210,104,197,120,140,134,81,149,141,80,36,140,222,130,222,128,5,83,18,137,101,82,132,133,249,150,221,79,33,88,113,153,157,91,177,98,165,98,180,102,121,140,141,156,6,114,111,103,145,120,178,96,81,83,23,83,136,143,204,128,29,141,161,148,13,80,200,114,7,89,235,96,25,113,171,136,84,89,239,130,44,103,40,123,41,93,247,126,45,117,245,108,102,142,248,143,60,144,59,159,212,107,25,145,20,123,124,95,167,120,214,132,61,133,213,107,217,107,214,107,1,94,135,94,249,117,237,149,93,101,10,95,197,95,159,143,193,88,194,129,127,144,91,150,173,151,185,143,22,127,44,141,65,98,191,79,216,83,94,83,168,143,169,143,171,143,77,144,7,104,106,95,152,129,104,136,214,156,139,97,43,82,42,118,108,95,140,101,210,111,232,110,190,91,72,100,117,81,176,81,196,103,25,78,201,121,124,153,179,112,197,117,118,94,187,115,224,131,173,100,232,98,181,148,226,108,90,83,195,82,15,100,194,148,148,123,47,79,27,94,54,130,22,129,138,129,36,110,202,108,115,154,85,99,92,83,250,84,101,136,224,87,13,78,3,94,101,107,63,124,232,144,22,96,230,100,28,115,193,136,80,103,77,98,34,141,108,119,41,142,199,145,105,95,220,131,33,133,16,153,194,83,149,134,139,107,237,96,232,96,127,112,205,130,49,130,211,78,167,108,207,133,205,100,217,124,253,105,249,102,73,131,149,83,86,123,167,79,140,81,75,109,66,92,109,142,210,99,201,83,44,131,54,131,229,103,180,120,61,100,223,91,148,92,238,93,231,139,198,98,244,103,122,140,0,100,186,99,73,135,139,153,23,140,32,127,242,148,167,78,16,150,164,152,12,102,22,115,58,87,29,92,56,94,127,149,127,80,160,128,130,83,94,101,69,117,49,85,33,80,133,141,132,98,158,148,29,103,50,86,110,111,226,93,53,84,146,112,102,143,111,98,164,100,163,99,123,95,136,111,244,144,227,129,176,143,24,92,104,102,241,95,137,108,72,150,129,141,108,136,145,100,240,121,206,87,89,106,16,98,72,84,88,78,11,122,233,96,132,111,218,139,127,98,30,144,139,154,228,121,3,84,244,117,1,99,25,83,96,108,223,143,27,95,112,154,59,128,127,159,136,79,58,92,100,141,197,127,165,101,189,112,69,81,178,81,107,134,7,93,160,91,189,98,108,145,116,117,12,142,32,122,1,97,121,123,199,78,248,126,133,119,17,78,237,129,29,82,250,81,113,106,168,83,135,142,4,149,207,150,193,110,100,150,90,105,64,120,168,80,215,119,16,100,230,137,4,89,227,99,221,93,127,122,61,105,32,79,57,130,152,85,50,78,174,117,151,122,98,94,138,94,239,149,27,82,57,84,138,112,118,99,36,149,130,87,37,102,63,105,135,145,7,85,243,109,175,126,34,136,51,98,240,126,181,117,40,131,193,120,204,150,158,143,72,97,247,116,205,139,100,107,58,82,80,141,33,107,106,128,113,132,241,86,6,83,206,78,27,78,209,81,151,124,139,145,7,124,195,79,127,142,225,123,156,122,103,100,20,93,172,80,6,129,1,118,185,124,236,109,224,127,81,103,88,91,248,91,203,120,174,100,19,100,170,99,43,99,25,149,45,100,190,143,84,123,41,118,83,98,39,89,70,84,121,107,163,80,52,98,38,94,134,107,227,78,55,141,139,136,133,95,46,144,32,96,61,128,197,98,57,78,85,83,248,144,184,99,198,128,230,101,46,108,70,79,238,96,225,109,222,139,57,95,203,134,83,95,33,99,90,81,97,131,99,104,0,82,99,99,72,142,18,80,155,92,119,121,252,91,48,82,59,122,188,96,83,144,215,118,183,95,151,95,132,118,108,142,111,112,123,118,73,123,170,119,243,81,147,144,36,88,78,79,244,110,234,143,76,101,27,123,196,114,164,109,223,127,225,90,181,98,149,94,48,87,130,132,44,123,29,94,31,95,18,144,20,127,160,152,130,99,199,110,152,120,185,112,120,81,91,151,171,87,53,117,67,79,56,117,151,94,230,96,96,89,192,109,191,107,137,120,252,83,213,150,203,81,1,82,137,99,10,84,147,148,3,140,204,141,57,114,159,120,118,135,237,143,13,140,224,83,1,78,239,118,238,83,137,148,118,152,14,159,45,149,154,91,162,139,34,78,28,78,172,81,99,132,194,97,168,82,11,104,151,79,107,96,187,81,30,109,92,81,150,98,151,101,97,150,70,140,23,144,216,117,253,144,99,119,210,107,138,114,236,114,251,139,53,88,121,119,76,141,92,103,64,149,154,128,166,94,33,110,146,89,239,122,237,119,59,149,181,107,173,101,14,127,6,88,81,81,31,150,249,91,169,88,40,84,114,142,102,101,127,152,228,86,157,148,254,118,65,144,135,99,198,84,26,89,58,89,155,87,178,142,53,103,250,141,53,130,65,82,240,96,21,88,254,134,232,92,69,158,196,79,157,152,185,139,37,90,118,96,132,83,124,98,79,144,2,145,127,153,105,96,12,128,63,81,51,128,20,92,117,153,49,109,140,78,48,141,209,83,90,127,79,123,16,79,79,78,0,150,213,108,208,115,233,133,6,94,106,117,251,127,10,106,254,119,146,148,65,126,225,81,230,112,205,83,212,143,3,131,41,141,175,114,109,153,219,108,74,87,179,130,185,101,170,128,63,98,50,150,168,89,255,78,191,139,186,126,62,101,242,131,94,151,97,85,222,152,165,128,42,83,253,139,32,84,186,128,159,94,184,108,57,141,172,130,90,145,41,84,27,108,6,82,183,126,95,87,26,113,126,108,137,124,75,89,253,78,255,95,36,97,170,124,48,78,1,92,171,103,2,135,240,92,11,149,206,152,175,117,253,112,34,144,175,81,29,127,189,139,73,89,228,81,91,79,38,84,43,89,119,101,164,128,117,91,118,98,194,98,144,143,69,94,31,108,38,123,15,79,216,79,13,103,110,109,170,109,143,121,177,136,23,95,43,117,154,98,133,143,239,79,220,145,167,101,47,129,81,129,156,94,80,129,116,141,111,82,134,137,75,141,13,89,133,80,216,78,28,150,54,114,121,129,31,141,204,91,163,139,68,150,135,89,26,127,144,84,118,86,14,86,229,139,57,101,130,105,153,148,214,118,137,110,114,94,24,117,70,103,209,103,255,122,157,128,118,141,31,97,198,121,98,101,99,141,136,81,26,82,162,148,56,127,155,128,178,126,151,92,47,110,96,103,217,123,139,118,216,154,143,129,148,127,213,124,30,100,80,149,63,122,74,84,229,84,76,107,1,100,8,98,61,158,243,128,153,117,114,82,105,151,91,132,60,104,228,134,1,150,148,150,236,148,42,78,4,84,217,126,57,104,223,141,21,128,244,102,154,94,185,127,194,87,63,128,151,104,229,93,59,101,159,82,109,96,154,159,155,79,172,142,108,81,171,91,19,95,233,93,94,108,241,98,33,141,113,81,169,148,254,82,159,108,223,130,215,114,162,87,132,103,45,141,31,89,156,143,199,131,149,84,141,123,48,79,189,108,100,91,209,89,19,159,228,83,202,134,168,154,55,140,161,128,69,101,126,152,250,86,199,150,46,82,220,116,80,82,225,91,2,99,2,137,86,78,208,98,42,96,250,104,115,81,152,91,160,81,194,137,161,123,134,153,80,127,239,96,76,112,47,141,73,81,127,94,27,144,112,116,196,137,45,87,69,120,82,95,159,159,250,149,104,143,60,155,225,139,120,118,66,104,220,103,234,141,53,141,61,82,138,143,218,110,205,104,5,149,237,144,253,86,156,103,249,136,199,143,200,84,184,154,105,91,119,109,38,108,165,78,179,91,135,154,99,145,168,97,175,144,233,151,43,84,181,109,210,91,253,81,138,85,85,127,240,127,188,100,77,99,241,101,190,97,141,96,10,113,87,108,73,108,47,89,109,103,42,130,213,88,142,86,106,140,235,107,221,144,125,89,23,128,247,83,105,109,117,84,157,85,119,131,207,131,56,104,190,121,140,84,85,79,8,84,210,118,137,140,2,150,179,108,184,109,107,141,16,137,100,158,58,141,63,86,209,158,213,117,136,95,224,114,104,96,252,84,168,78,42,106,97,136,82,96,112,143,196,84,216,112,121,134,63,158,42,109,143,91,24,95,162,126,137,85,175,79,52,115,60,84,154,83,25,80,14,84,124,84,78,78,253,95,90,116,246,88,107,132,225,128,116,135,208,114,202,124,86,110,39,95,78,134,44,85,164,98,146,78,170,108,55,98,177,130,215,84,78,83,62,115,209,110,59,117,18,82,22,83,221,139,208,105,138,95,0,96,238,109,79,87,34,107,175,115,83,104,216,143,19,127,98,99,163,96,36,85,234,117,98,140,21,113,163,109,166,91,123,94,82,131,76,97,196,158,250,120,87,135,39,124,135,118,240,81,246,96,76,113,67,102,76,94,77,96,14,140,112,112,37,99,137,143,189,95,98,96,212,134,222,86,193,107,148,96,103,97,73,83,224,96,102,102,63,141,253,121,26,79,233,112,71,108,179,139,242,139,216,126,100,131,15,102,90,90,66,155,81,109,247,109,65,140,59,109,25,79,107,112,183,131,22,98,209,96,13,151,39,141,120,121,251,81,62,87,250,87,58,103,120,117,61,122,239,121,149,123,140,128,101,153,249,143,192,111,165,139,33,158,236,89,233,126,9,127,9,84,129,103,216,104,145,143,77,124,198,150,202,83,37,96,190,117,114,108,115,83,201,90,167,126,36,99,224,81,10,129,241,93,223,132,128,98,128,81,99,91,14,79,109,121,66,82,184,96,78,109,196,91,194,91,161,139,176,139,226,101,204,95,69,150,147,89,231,126,170,126,9,86,183,103,57,89,115,79,182,91,160,82,90,131,138,152,62,141,50,117,190,148,71,80,60,122,247,78,182,103,126,154,193,90,124,107,209,118,90,87,22,92,58,123,244,149,78,113,124,81,169,128,112,130,120,89,4,127,39,131,192,104,236,103,177,120,119,120,227,98,97,99,128,123,237,79,106,82,207,81,80,131,219,105,116,146,245,141,49,141,193,137,46,149,173,123,246,78,101,80,48,130,81,82,111,153,16,110,133,110,167,109,250,94,245,80,220,89,6,92,70,109,95,108,134,117,139,132,104,104,86,89,178,139,32,83,113,145,77,150,73,133,18,105,1,121,38,113,246,128,164,78,202,144,71,109,132,154,7,90,188,86,5,100,240,148,235,119,165,79,26,129,225,114,210,137,122,153,52,127,222,126,127,82,89,101,117,145,127,143,131,143,235,83,150,122,237,99,165,99,134,118,248,121,87,136,54,150,42,98,171,82,130,130,84,104,112,103,119,99,107,119,237,122,1,109,211,126,227,137,208,89,18,98,201,133,165,130,76,117,31,80,203,78,165,117,235,139,74,92,254,93,75,123,164,101,209,145,202,78,37,109,95,137,39,125,38,149,197,78,40,140,219,143,115,151,75,102,129,121,209,143,236,112,120,109,61,92,178,82,70,131,98,81,14,131,91,119,118,102,184,156,172,78,202,96,190,124,179,124,207,126,149,78,102,139,111,102,136,152,89,151,131,88,108,101,92,149,132,95,201,117,86,151,223,122,222,122,192,81,175,112,152,122,234,99,118,122,160,126,150,115,237,151,69,78,120,112,93,78,82,145,169,83,81,101,231,101,252,129,5,130,142,84,49,92,154,117,160,151,216,98,217,114,189,117,69,92,121,154,202,131,64,92,128,84,233,119,62,78,174,108,90,128,210,98,110,99,232,93,119,81,221,141,30,142,47,149,241,79,229,83,231,96,172,112,103,82,80,99,67,158,31,90,38,80,55,119,119,83,226,126,133,100,43,101,137,98,152,99,20,80,53,114,201,137,179,81,192,139,221,126,71,87,204,131,167,148,155,81,27,84,251,92,202,79,227,122,90,109,225,144,143,154,128,85,150,84,97,83,175,84,0,95,233,99,119,105,239,81,104,97,10,82,42,88,216,82,78,87,13,120,11,119,183,94,119,97,224,124,91,98,151,98,162,78,149,112,3,128,247,98,228,112,96,151,119,87,219,130,239,103,245,104,213,120,151,152,209,121,243,88,179,84,239,83,52,110,75,81,59,82,162,91,254,139,175,128,67,85,166,87,115,96,81,87,45,84,122,122,80,96,84,91,167,99,160,98,227,83,99,98,199,91,175,103,237,84,159,122,230,130,119,145,147,94,228,136,56,89,174,87,14,99,232,141,239,128,87,87,119,123,169,79,235,95,189,91,62,107,33,83,80,123,194,114,70,104,255,119,54,119,247,101,181,81,143,78,212,118,191,92,165,122,117,132,78,89,65,155,128,80,136,153,39,97,131,110,100,87,6,102,70,99,240,86,236,98,105,98,211,94,20,150,131,87,201,98,135,85,33,135,74,129,163,143,102,85,177,131,101,103,86,141,221,132,106,90,15,104,230,98,238,123,17,150,112,81,156,111,48,140,253,99,200,137,210,97,6,127,194,112,229,110,5,116,148,105,252,114,202,94,206,144,23,103,106,109,94,99,179,82,98,114,1,128,108,79,229,89,106,145,217,112,157,109,210,82,80,78,247,150,109,149,126,133,202,120,47,125,33,81,146,87,194,100,139,128,123,124,234,108,241,104,94,105,183,81,152,83,168,104,129,114,206,158,241,123,248,114,187,121,19,111,6,116,78,103,204,145,164,156,60,121,137,131,84,131,15,84,23,104,61,78,137,83,177,82,62,120,134,83,41,82,136,80,139,79,208,79,226,117,203,122,146,124,165,108,182,150,155,82,131,116,233,84,233,79,84,128,178,131,222,143,112,149,201,94,28,96,159,109,24,94,91,101,56,129,254,148,75,96,188,112,195,126,174,124,201,81,129,104,177,124,111,130,36,78,134,143,207,145,126,102,174,78,5,140,169,100,74,128,218,80,151,117,206,113,229,91,189,143,102,111,134,78,130,100,99,149,214,94,153,101,23,82,194,136,200,112,163,82,14,115,51,116,151,103,247,120,22,151,52,78,187,144,222,156,203,109,219,81,65,141,29,84,206,98,178,115,241,131,246,150,132,159,195,148,54,79,154,127,204,81,117,112,117,150,173,92,134,152,230,83,228,78,156,110,9,116,180,105,107,120,143,153,89,117,24,82,36,118,65,109,243,103,109,81,153,159,75,128,153,84,60,123,191,122,134,150,132,87,226,98,71,150,124,105,4,90,2,100,211,123,15,111,75,150,166,130,98,83,133,152,144,94,137,112,179,99,100,83,79,134,129,156,147,158,140,120,50,151,239,141,66,141,127,158,94,111,132,121,85,95,70,150,46,98,116,154,21,84,221,148,163,79,197,101,101,92,97,92,21,127,81,134,47,108,139,95,135,115,228,110,255,126,230,92,27,99,106,91,230,110,117,83,113,78,160,99,101,117,161,98,110,143,38,79,209,78,166,108,182,126,186,139,29,132,186,135,87,127,59,144,35,149,169,123,161,154,248,136,61,132,27,109,134,154,220,126,136,89,187,158,155,115,1,120,130,134,108,154,130,154,27,86,23,84,203,87,112,78,166,158,86,83,200,143,9,129,146,119,146,153,238,134,225,110,19,133,252,102,98,97,43,111,41,140,146,130,43,131,242,118,19,108,217,95,189,131,43,115,5,131,26,149,219,107,219,119,198,148,111,83,2,131,146,81,61,94,140,140,56,141,72,78,171,115,154,103,133,104,118,145,9,151,100,113,161,108,9,119,146,90,65,149,207,107,142,127,39,102,208,91,185,89,154,90,232,149,247,149,236,78,12,132,153,132,172,106,223,118,48,149,27,115,166,104,95,91,47,119,154,145,97,151,220,124,247,143,28,140,37,95,115,124,216,121,197,137,204,108,28,135,198,91,66,94,201,104,32,119,245,126,149,81,77,81,201,82,41,90,5,127,98,151,215,130,207,99,132,119,208,133,210,121,58,110,153,94,153,89,17,133,109,112,17,108,191,98,191,118,79,101,175,96,253,149,14,102,159,135,35,158,237,148,13,84,125,84,44,140,120,100,121,100,17,134,33,106,156,129,232,120,105,100,84,155,185,98,43,103,171,131,168,88,216,158,171,108,32,111,222,91,76,150,11,140,95,114,208,103,199,98,97,114,169,78,198,89,205,107,147,88,174,102,85,94,223,82,85,97,40,103,238,118,102,119,103,114,70,122,255,98,234,84,80,84,160,148,163,144,28,90,179,126,22,108,67,78,118,89,16,128,72,89,87,83,55,117,190,150,202,86,32,99,17,129,124,96,249,149,214,109,98,84,129,153,133,81,233,90,253,128,174,89,19,151,42,80,229,108,60,92,223,98,96,79,63,83,123,129,6,144,186,110,43,133,200,98,116,94,190,120,181,100,123,99,245,95,24,90,127,145,31,158,63,92,79,99,66,128,125,91,110,85,74,149,77,149,133,109,168,96,224,103,222,114,221,81,129,91,231,98,222,108,91,114,109,98,174,148,189,126,19,129,83,109,156,81,4,95,116,89,170,82,18,96,115,89,150,102,80,134,159,117,42,99,230,97,239,124,250,139,230,84,39,107,37,158,180,107,213,133,85,84,118,80,164,108,106,85,180,141,44,114,21,94,21,96,54,116,205,98,146,99,76,114,152,95,67,110,62,109,0,101,88,111,216,118,208,120,252,118,84,117,36,82,219,83,83,78,158,94,193,101,42,128,214,128,155,98,134,84,40,82,174,112,141,136,209,141,225,108,120,84,218,128,249,87,244,136,84,141,106,150,77,145,105,79,155,108,183,85,198,118,48,120,168,98,249,112,142,111,109,95,236,132,218,104,124,120,247,123,168,129,11,103,79,158,103,99,176,120,111,87,18,120,57,151,121,98,171,98,136,82,53,116,215,107,100,85,62,129,178,117,174,118,57,83,222,117,251,80,65,92,108,139,199,123,79,80,71,114,151,154,216,152,2,111,226,116,104,121,135,100,165,119,252,98,145,152,43,141,193,84,88,128,82,78,106,87,249,130,13,132,115,94,237,81,246,116,196,139,79,92,97,87,252,108,135,152,70,90,52,120,68,155,235,143,149,124,86,82,81,98,250,148,198,78,134,131,97,132,233,131,178,132,212,87,52,103,3,87,110,102,102,109,49,140,221,102,17,112,31,103,58,107,22,104,26,98,187,89,3,78,196,81,6,111,210,103,143,108,118,81,203,104,71,89,103,107,102,117,14,93,16,129,80,159,215,101,72,121,65,121,145,154,119,141,130,92,94,78,1,79,47,84,81,89,12,120,104,86,20,108,196,143,3,95,125,108,227,108,171,139,144,99,112,96,61,109,117,114,102,98,142,148,197,148,67,83,193,143,126,123,223,78,38,140,126,78,212,158,177,148,179,148,77,82,92,111,99,144,69,109,52,140,17,88,76,93,32,107,73,107,170,103,91,84,84,129,140,127,153,88,55,133,58,95,162,98,71,106,57,149,114,101,132,96,101,104,167,119,84,78,168,79,231,93,152,151,172,100,216,127,237,92,207,79,141,122,7,82,4,131,20,78,47,96,131,122,166,148,181,79,178,78,230,121,52,116,228,82,185,130,210,100,189,121,221,91,129,108,82,151,123,143,34,108,62,80,127,83,5,110,206,100,116,102,48,108,197,96,119,152,247,139,134,94,60,116,119,122,203,121,24,78,177,144,3,116,66,108,218,86,75,145,197,108,139,141,58,83,198,134,242,102,175,142,72,92,113,154,32,110,214,83,54,90,139,159,163,141,187,83,8,87,167,152,67,103,155,145,201,108,104,81,202,117,243,98,172,114,56,82,157,82,58,127,148,112,56,118,116,83,74,158,183,105,110,120,192,150,217,136,164,127,54,113,195,113,137,81,211,103,228,116,228,88,24,101,183,86,169,139,118,153,112,98,213,126,249,96,237,112,236,88,193,78,186,78,205,95,231,151,251,78,164,139,3,82,138,89,171,126,84,98,205,78,229,101,14,98,56,131,201,132,99,131,141,135,148,113,182,110,185,91,210,126,151,81,201,99,212,103,137,128,57,131,21,136,18,81,122,91,130,89,177,143,115,78,93,108,101,81,37,137,111,143,46,150,74,133,94,116,16,149,240,149,166,109,229,130,49,95,146,100,18,109,40,132,110,129,195,156,94,88,91,141,9,78,193,83,30,79,99,101,81,104,211,85,39,78,20,100,154,154,107,98,194,90,95,116,114,130,169,109,238,104,231,80,142,131,2,120,64,103,57,82,153,108,177,126,187,80,101,85,94,113,91,123,82,102,202,115,235,130,73,103,113,92,32,82,125,113,107,136,234,149,85,150,197,100,97,141,179,129,132,85,85,108,71,98,46,127,146,88,36,79,70,85,79,141,76,102,10,78,26,92,243,136,162,104,78,99,13,122,231,112,141,130,250,82,246,151,17,92,232,84,181,144,205,126,98,89,74,141,199,134,12,130,13,130,102,141,68,100,4,92,81,97,137,109,62,121,190,139,55,120,51,117,123,84,56,79,171,142,241,109,32,90,197,126,94,121,136,108,161,91,118,90,26,117,190,128,78,97,23,110,240,88,31,117,37,117,114,114,71,83,243,126,1,119,219,118,105,82,220,128,35,87,8,94,49,89,238,114,189,101,127,110,215,139,56,92,113,134,65,83,243,119,254,98,246,101,192,78,223,152,128,134,158,91,198,139,242,83,226,119,127,79,78,92,118,154,203,89,15,95,58,121,235,88,22,78,255,103,139,78,237,98,147,138,29,144,191,82,47,102,220,85,108,86,2,144,213,78,141,79,202,145,112,153,15,108,2,94,67,96,164,91,198,137,213,139,54,101,75,98,150,153,136,91,255,91,136,99,46,85,215,83,38,118,125,81,44,133,162,103,179,104,138,107,146,98,147,143,212,83,18,130,209,109,143,117,102,78,78,141,112,91,159,113,175,133,145,102,217,102,114,127,0,135,205,158,32,159,94,92,47,103,240,143,17,104,95,103,13,98,214,122,133,88,182,94,112,101,49,111,85,96,55,82,13,128,84,100,112,136,41,117,5,94,19,104,244,98,28,151,204,83,61,114,1,140,52,108,97,119,14,122,46,84,172,119,122,152,28,130,244,139,85,120,20,103,193,112,175,101,149,100,54,86,29,96,193,121,248,83,29,78,123,107,134,128,250,91,227,85,219,86,58,79,60,79,114,153,243,93,126,103,56,128,2,96,130,152,1,144,139,91,188,139,245,139,28,100,88,130,222,100,253,85,207,130,101,145,215,79,32,125,31,144,159,124,243,80,81,88,175,110,191,91,201,139,131,128,120,145,156,132,151,123,125,134,139,150,143,150,229,126,211,154,142,120,129,92,87,122,66,144,167,150,95,121,89,91,95,99,11,123,209,132,173,104,6,85,41,127,16,116,34,125,1,149,64,98,76,88,214,78,131,91,121,89,84,88,109,115,30,99,75,142,15,142,206,128,212,130,172,98,240,83,240,108,94,145,42,89,1,96,112,108,77,87,74,100,42,141,43,118,233,110,91,87,128,106,240,117,109,111,45,140,8,140,102,87,239,107,146,136,179,120,162,99,249,83,173,112,100,108,88,88,42,100,2,88,224,104,155,129,16,85,214,124,24,80,186,142,204,109,159,141,235,112,143,99,155,109,212,110,230,126,4,132,67,104,3,144,216,109,118,150,168,139,87,89,121,114,228,133,126,129,188,117,138,138,175,104,84,82,34,142,17,149,208,99,152,152,68,142,124,85,83,79,255,102,143,86,213,96,149,109,67,82,73,92,41,89,251,109,107,88,48,117,28,117,108,96,20,130,70,129,17,99,97,103,226,143,58,119,243,141,52,141,193,148,22,94,133,83,44,84,195,112,64,108,247,94,92,80,173,78,173,94,58,99,71,130,26,144,80,104,110,145,179,119,12,84,220,148,100,95,229,122,118,104,69,99,82,123,223,126,219,117,119,80,149,98,52,89,15,144,248,81,195,121,129,122,254,86,146,95,20,144,130,109,96,92,31,87,16,84,84,81,77,110,226,86,168,99,147,152,127,129,21,135,42,137,0,144,30,84,111,92,192,129,214,98,88,98,49,129,53,158,64,150,110,154,124,154,45,105,165,89,211,98,62,85,22,99,199,84,217,134,60,109,3,90,230,116,156,136,106,107,22,89,76,140,47,95,126,110,169,115,125,152,56,78,247,112,140,91,151,120,61,99,90,102,150,118,203,96,155,91,73,90,7,78,85,129,106,108,139,115,161,78,137,103,81,127,128,95,250,101,27,103,216,95,132,89,1,90,205,93,174,95,113,83,230,151,221,143,69,104,244,86,47,85,223,96,58,78,77,111,244,126,199,130,14,132,212,89,31,79,42,79,62,92,172,126,42,103,26,133,115,84,79,117,195,128,130,85,79,155,77,79,45,110,19,140,9,92,112,97,107,83,31,118,41,110,138,134,135,101,251,149,185,126,59,84,51,122,10,125,238,149,225,85,193,127,238,116,29,99,23,135,161,109,157,122,17,98,161,101,103,83,225,99,131,108,235,93,92,84,168,148,76,78,97,108,236,139,75,92,224,101,156,130,167,104,62,84,52,84,203,107,102,107,148,78,66,99,72,83,30,130,13,79,174,79,94,87,10,98,254,150,100,102,105,114,255,82,161,82,159,96,239,139,20,102,153,113,144,103,127,137,82,120,253,119,112,102,59,86,56,84,33,149,122,114,0,122,111,96,12,94,137,96,157,129,21,89,220,96,132,113,239,112,170,110,80,108,128,114,132,106,173,136,45,94,96,78,179,90,156,85,227,148,23,109,251,124,153,150,15,98,198,126,142,119,126,134,35,83,30,151,150,143,135,102,225,92,160,79,237,114,11,78,166,83,15,89,19,84,128,99,40,149,72,81,217,78,156,156,164,126,184,84,36,141,84,136,55,130,242,149,142,109,38,95,204,90,62,102,105,150,176,115,46,115,191,83,122,129,133,153,161,127,170,91,119,150,80,150,191,126,248,118,162,83,118,149,153,153,177,123,68,137,88,110,97,78,212,127,101,121,230,139,243,96,205,84,171,78,121,152,247,93,97,106,207,80,17,84,97,140,39,132,93,120,4,151,74,82,238,84,163,86,0,149,136,109,181,91,198,109,83,102,15,92,93,91,33,104,150,128,120,85,17,123,72,101,84,105,155,78,71,107,78,135,139,151,79,83,31,99,58,100,170,144,156,101,193,128,16,140,153,81,176,104,120,83,249,135,200,97,196,108,251,108,34,140,81,92,170,133,175,130,12,149,35,107,155,143,176,101,251,95,195,95,225,79,69,136,31,102,101,129,41,115,250,96,116,81,17,82,139,87,98,95,162,144,76,136,146,145,120,94,79,103,39,96,211,89,68,81,246,81,248,128,8,83,121,108,196,150,138,113,17,79,238,79,158,127,61,103,197,85,8,149,192,121,150,136,227,126,159,88,12,98,0,151,90,134,24,86,123,152,144,95,184,139,196,132,87,145,217,83,237,101,143,94,92,117,100,96,110,125,127,90,234,126,237,126,105,143,167,85,163,91,172,96,203,101,132,115,9,144,99,118,41,119,218,126,116,151,155,133,102,91,116,122,234,150,64,136,203,82,143,113,170,95,236,101,226,139,251,91,111,154,225,93,137,107,91,108,173,139,175,139,10,144,197,143,139,83,188,98,38,158,45,158,64,84,43,78,189,130,89,114,156,134,22,93,89,136,175,109,197,150,209,84,154,78,182,139,9,113,189,84,9,150,223,112,249,109,208,118,37,78,20,120,18,135,169,92,246,94,0,138,156,152,14,150,142,112,191,108,68,89,169,99,60,119,77,136,20,111,115,130,48,88,213,113,140,83,26,120,193,150,1,85,102,95,48,113,180,91,26,140,140,154,131,107,46,89,47,158,231,121,104,103,108,98,111,79,161,117,138,127,11,109,51,150,39,108,240,78,210,117,123,81,55,104,62,111,128,144,112,129,150,89,118,116,71,100,39,92,101,144,145,122,35,140,218,89,172,84,0,130,111,131,129,137,0,128,48,105,78,86,54,128,55,114,206,145,182,81,95,78,117,152,150,99,26,78,246,83,243,102,75,129,28,89,178,109,0,78,249,88,59,83,214,99,241,148,157,79,10,79,99,136,144,152,55,89,87,144,251,121,234,78,240,128,145,117,130,108,156,91,232,89,93,95,5,105,129,134,26,80,242,93,89,78,227,119,229,78,122,130,145,98,19,102,145,144,121,92,191,78,121,95,198,129,56,144,132,128,171,117,166,78,212,136,15,97,197,107,198,95,73,78,202,118,162,110,227,139,174,139,10,140,209,139,2,95,252,127,204,127,206,126,53,131,107,131,224,86,183,107,243,151,52,150,251,89,31,84,246,148,235,109,197,91,110,153,57,92,21,95,144,150,112,83,241,130,49,106,116,90,112,158,148,94,40,127,185,131,36,132,37,132,103,131,71,135,206,143,98,141,200,118,113,95,150,152,108,120,32,102,223,84,229,98,99,79,195,129,200,117,184,94,205,150,10,142,249,134,143,84,243,108,140,109,56,108,127,96,199,82,40,117,125,94,24,79,160,96,231,95,36,92,49,117,174,144,192,148,185,114,185,108,56,110,73,145,9,103,203,83,243,83,81,79,201,145,241,139,200,83,124,94,194,143,228,109,142,78,194,118,134,105,94,134,26,97,6,130,89,79,222,79,62,144,124,156,9,97,29,110,20,110,133,150,136,78,49,90,232,150,14,78,127,92,185,121,135,91,237,139,189,127,137,115,223,87,139,130,193,144,1,84,71,144,187,85,234,92,161,95,8,97,50,107,241,114,178,128,137,138,116,109,211,91,213,136,132,152,107,140,109,154,51,158,10,110,164,81,67,81,163,87,129,136,159,83,244,99,149,143,237,86,88,84,6,87,63,115,144,110,24,127,220,143,209,130,63,97,40,96,98,150,240,102,166,126,138,141,195,141,165,148,179,92,164,124,8,103,166,96,5,150,24,128,145,78,231,144,0,83,104,150,65,81,208,143,116,133,93,145,85,102,245,151,85,91,29,83,56,120,66,103,61,104,201,84,126,112,176,91,125,143,141,81,40,87,177,84,18,101,130,102,94,141,67,141,15,129,108,132,109,144,223,124,255,81,251,133,163,103,233,101,161,111,164,134,129,142,106,86,32,144,130,118,118,112,229,113,35,141,233,98,25,82,253,108,60,141,14,96,158,88,142,97,254,102,96,141,78,98,179,85,35,110,45,103,103,143,225,148,248,149,40,119,5,104,168,105,139,84,77,78,184,112,200,139,88,100,139,101,133,91,132,122,58,80,232,91,187,119,225,107,121,138,152,124,190,108,207,118,169,101,151,143,45,93,85,92,56,134,8,104,96,83,24,98,217,122,91,110,253,126,31,106,224,122,112,95,51,111,32,95,140,99,168,109,86,103,8,78,16,94,38,141,215,78,192,128,52,118,156,150,219,98,45,102,126,98,188,108,117,141,103,113,105,127,70,81,135,128,236,83,110,144,152,98,242,84,240,134,153,143,5,128,23,149,23,133,217,143,89,109,205,115,159,101,31,119,4,117,39,120,251,129,30,141,136,148,166,79,149,103,185,117,202,139,7,151,47,99,71,149,53,150,184,132,35,99,65,119,129,95,240,114,137,78,20,96,116,101,239,98,99,107,63,101,39,94,199,117,209,144,193,139,157,130,157,103,47,101,49,84,24,135,229,119,162,128,2,129,65,108,75,78,199,126,76,128,244,118,13,105,150,107,103,98,60,80,132,79,64,87,7,99,98,107,190,141,234,83,232,101,184,126,215,95,26,99,183,99,243,129,244,129,110,127,28,94,217,92,54,82,122,102,233,121,26,122,40,141,153,112,212,117,222,110,187,108,146,122,45,78,197,118,224,95,159,148,119,136,200,126,205,121,191,128,205,145,242,78,23,79,31,130,104,84,222,93,50,109,204,139,165,124,116,143,152,128,26,94,146,84,177,118,153,91,60,102,164,154,224,115,42,104,219,134,49,103,42,115,248,139,219,139,16,144,249,122,219,112,110,113,196,98,169,119,49,86,59,78,87,132,241,103,169,82,192,134,46,141,248,148,81,123,79,79,232,108,93,121,123,154,147,98,42,114,253,98,19,78,22,120,108,143,176,100,90,141,198,123,105,104,132,94,197,136,134,89,158,100,238,88,182,114,14,105,37,149,253,143,88,141,96,87,0,127,6,140,198,81,73,99,217,98,83,83,76,104,34,116,1,131,76,145,68,85,64,119,124,112,74,109,121,81,168,84,68,141,255,89,203,110,196,109,92,91,43,125,212,78,125,124,211,110,80,91,234,129,13,110,87,91,3,155,213,104,42,142,151,91,252,126,59,96,181,126,185,144,112,141,79,89,205,99,223,121,179,141,82,83,207,101,86,121,197,139,59,150,196,126,187,148,130,126,52,86,137,145,0,103,106,127,10,92,117,144,40,102,230,93,80,79,222,103,90,80,92,79,80,87,167,94,90,216,17,221,90,216,14,221,161,118,165,118,183,118,141,78,12,78,64,81,16,78,255,94,69,83,21,78,152,78,30,78,50,155,108,91,105,86,40,78,186,121,63,78,21,83,71,78,45,89,59,114,110,83,16,108,223,86,228,128,151,153,211,107,126,119,23,159,54,78,159,78,16,159,92,78,105,78,147,78,136,130,91,91,108,85,15,86,196,78,141,83,157,83,163,83,165,83,174,83,101,151,93,141,26,83,245,83,38,83,46,83,62,83,92,141,102,83,99,83,2,82,8,82,14,82,45,82,51,82,63,82,64,82,76,82,94,82,97,82,92,82,175,132,125,82,130,82,129,82,144,82,147,82,130,81,84,127,187,78,195,78,201,78,194,78,232,78,225,78,235,78,222,78,27,79,243,78,34,79,100,79,245,78,37,79,39,79,9,79,43,79,94,79,103,79,56,101,90,79,93,79,95,79,87,79,50,79,61,79,118,79,116,79,145,79,137,79,131,79,143,79,126,79,123,79,170,79,124,79,172,79,148,79,230,79,232,79,234,79,197,79,218,79,227,79,220,79,209,79,223,79,248,79,41,80,76,80,243,79,44,80,15,80,46,80,45,80,254,79,28,80,12,80,37,80,40,80,126,80,67,80,85,80,72,80,78,80,108,80,123,80,165,80,167,80,169,80,186,80,214,80,6,81,237,80,236,80,230,80,238,80,7,81,11,81,221,78,61,108,88,79,101,79,206,79,160,159,70,108,116,124,110,81,253,93,201,158,152,153,129,81,20,89,249,82,13,83,7,138,16,83,235,81,25,89,85,81,160,78,86,81,179,78,110,136,164,136,181,78,20,129,210,136,128,121,52,91,3,136,184,127,171,81,177,81,189,81,188,81,199,81,150,81,162,81,165,81,160,139,166,139,167,139,170,139,180,139,181,139,183,139,194,139,195,139,203,139,207,139,206,139,210,139,211,139,212,139,214,139,216,139,217,139,220,139,223,139,224,139,228,139,232,139,233,139,238,139,240,139,243,139,246,139,249,139,252,139,255,139,0,140,2,140,4,140,7,140,12,140,15,140,17,140,18,140,20,140,21,140,22,140,25,140,27,140,24,140,29,140,31,140,32,140,33,140,37,140,39,140,42,140,43,140,46,140,47,140,50,140,51,140,53,140,54,140,105,83,122,83,29,150,34,150,33,150,49,150,42,150,61,150,60,150,66,150,73,150,84,150,95,150,103,150,108,150,114,150,116,150,136,150,141,150,151,150,176,150,151,144,155,144,157,144,153,144,172,144,161,144,180,144,179,144,182,144,186,144,184,144,176,144,207,144,197,144,190,144,208,144,196,144,199,144,211,144,230,144,226,144,220,144,215,144,219,144,235,144,239,144,254,144,4,145,34,145,30,145,35,145,49,145,47,145,57,145,67,145,70,145,13,82,66,89,162,82,172,82,173,82,190,82,255,84,208,82,214,82,240,82,223,83,238,113,205,119,244,94,245,81,252,81,47,155,182,83,1,95,90,117,239,93,76,87,169,87,161,87,126,88,188,88,197,88,209,88,41,87,44,87,42,87,51,87,57,87,46,87,47,87,92,87,59,87,66,87,105,87,133,87,107,87,134,87,124,87,123,87,104,87,109,87,118,87,115,87,173,87,164,87,140,87,178,87,207,87,167,87,180,87,147,87,160,87,213,87,216,87,218,87,217,87,210,87,184,87,244,87,239,87,248,87,228,87,221,87,11,88,13,88,253,87,237,87,0,88,30,88,25,88,68,88,32,88,101,88,108,88,129,88,137,88,154,88,128,88,168,153,25,159,255,97,121,130,125,130,127,130,143,130,138,130,168,130,132,130,142,130,145,130,151,130,153,130,171,130,184,130,190,130,176,130,200,130,202,130,227,130,152,130,183,130,174,130,203,130,204,130,193,130,169,130,180,130,161,130,170,130,159,130,196,130,206,130,164,130,225,130,9,131,247,130,228,130,15,131,7,131,220,130,244,130,210,130,216,130,12,131,251,130,211,130,17,131,26,131,6,131,20,131,21,131,224,130,213,130,28,131,81,131,91,131,92,131,8,131,146,131,60,131,52,131,49,131,155,131,94,131,47,131,79,131,71,131,67,131,95,131,64,131,23,131,96,131,45,131,58,131,51,131,102,131,101,131,104,131,27,131,105,131,108,131,106,131,109,131,110,131,176,131,120,131,179,131,180,131,160,131,170,131,147,131,156,131,133,131,124,131,182,131,169,131,125,131,184,131,123,131,152,131,158,131,168,131,186,131,188,131,193,131,1,132,229,131,216,131,7,88,24,132,11,132,221,131,253,131,214,131,28,132,56,132,17,132,6,132,212,131,223,131,15,132,3,132,248,131,249,131,234,131,197,131,192,131,38,132,240,131,225,131,92,132,81,132,90,132,89,132,115,132,135,132,136,132,122,132,137,132,120,132,60,132,70,132,105,132,118,132,140,132,142,132,49,132,109,132,193,132,205,132,208,132,230,132,189,132,211,132,202,132,191,132,186,132,224,132,161,132,185,132,180,132,151,132,229,132,227,132,12,133,13,117,56,133,240,132,57,133,31,133,58,133,86,133,59,133,255,132,252,132,89,133,72,133,104,133,100,133,94,133,122,133,162,119,67,133,114,133,123,133,164,133,168,133,135,133,143,133,121,133,174,133,156,133,133,133,185,133,183,133,176,133,211,133,193,133,220,133,255,133,39,134,5,134,41,134,22,134,60,134,254,94,8,95,60,89,65,89,55,128,85,89,90,89,88,89,15,83,34,92,37,92,44,92,52,92,76,98,106,98,159,98,187,98,202,98,218,98,215,98,238,98,34,99,246,98,57,99,75,99,67,99,173,99,246,99,113,99,122,99,142,99,180,99,109,99,172,99,138,99,105,99,174,99,188,99,242,99,248,99,224,99,255,99,196,99,222,99,206,99,82,100,198,99,190,99,69,100,65,100,11,100,27,100,32,100,12,100,38,100,33,100,94,100,132,100,109,100,150,100,122,100,183,100,184,100,153,100,186,100,192,100,208,100,215,100,228,100,226,100,9,101,37,101,46,101,11,95,210,95,25,117,17,95,95,83,241,83,253,83,233,83,232,83,251,83,18,84,22,84,6,84,75,84,82,84,83,84,84,84,86,84,67,84,33,84,87,84,89,84,35,84,50,84,130,84,148,84,119,84,113,84,100,84,154,84,155,84,132,84,118,84,102,84,157,84,208,84,173,84,194,84,180,84,210,84,167,84,166,84,211,84,212,84,114,84,163,84,213,84,187,84,191,84,204,84,217,84,218,84,220,84,169,84,170,84,164,84,221,84,207,84,222,84,27,85,231,84,32,85,253,84,20,85,243,84,34,85,35,85,15,85,17,85,39,85,42,85,103,85,143,85,181,85,73,85,109,85,65,85,85,85,63,85,80,85,60,85,55,85,86,85,117,85,118,85,119,85,51,85,48,85,92,85,139,85,210,85,131,85,177,85,185,85,136,85,129,85,159,85,126,85,214,85,145,85,123,85,223,85,189,85,190,85,148,85,153,85,234,85,247,85,201,85,31,86,209,85,235,85,236,85,212,85,230,85,221,85,196,85,239,85,229,85,242,85,243,85,204,85,205,85,232,85,245,85,228,85,148,143,30,86,8,86,12,86,1,86,36,86,35,86,254,85,0,86,39,86,45,86,88,86,57,86,87,86,44,86,77,86,98,86,89,86,92,86,76,86,84,86,134,86,100,86,113,86,107,86,123,86,124,86,133,86,147,86,175,86,212,86,215,86,221,86,225,86,245,86,235,86,249,86,255,86,4,87,10,87,9,87,28,87,15,94,25,94,20,94,17,94,49,94,59,94,60,94,55,94,68,94,84,94,91,94,94,94,97,94,140,92,122,92,141,92,144,92,150,92,136,92,152,92,153,92,145,92,154,92,156,92,181,92,162,92,189,92,172,92,171,92,177,92,163,92,193,92,183,92,196,92,210,92,228,92,203,92,229,92,2,93,3,93,39,93,38,93,46,93,36,93,30,93,6,93,27,93,88,93,62,93,52,93,61,93,108,93,91,93,111,93,93,93,107,93,75,93,74,93,105,93,116,93,130,93,153,93,157,93,115,140,183,93,197,93,115,95,119,95,130,95,135,95,137,95,140,95,149,95,153,95,156,95,168,95,173,95,181,95,188,95,98,136,97,95,173,114,176,114,180,114,183,114,184,114,195,114,193,114,206,114,205,114,210,114,232,114,239,114,233,114,242,114,244,114,247,114,1,115,243,114,3,115,250,114,251,114,23,115,19,115,33,115,10,115,30,115,29,115,21,115,34,115,57,115,37,115,44,115,56,115,49,115,80,115,77,115,87,115,96,115,108,115,111,115,126,115,27,130,37,89,231,152,36,89,2,89,99,153,103,153,104,153,105,153,106,153,107,153,108,153,116,153,119,153,125,153,128,153,132,153,135,153,138,153,141,153,144,153,145,153,147,153,148,153,149,153,128,94,145,94,139,94,150,94,165,94,160,94,185,94,181,94,190,94,179,94,83,141,210,94,209,94,219,94,232,94,234,94,186,129,196,95,201,95,214,95,207,95,3,96,238,95,4,96,225,95,228,95,254,95,5,96,6,96,234,95,237,95,248,95,25,96,53,96,38,96,27,96,15,96,13,96,41,96,43,96,10,96,63,96,33,96,120,96,121,96,123,96,122,96,66,96,106,96,125,96,150,96,154,96,173,96,157,96,131,96,146,96,140,96,155,96,236,96,187,96,177,96,221,96,216,96,198,96,218,96,180,96,32,97,38,97,21,97,35,97,244,96,0,97,14,97,43,97,74,97,117,97,172,97,148,97,167,97,183,97,212,97,245,97,221,95,179,150,233,149,235,149,241,149,243,149,245,149,246,149,252,149,254,149,3,150,4,150,6,150,8,150,10,150,11,150,12,150,13,150,15,150,18,150,21,150,22,150,23,150,25,150,26,150,44,78,63,114,21,98,53,108,84,108,92,108,74,108,163,108,133,108,144,108,148,108,140,108,104,108,105,108,116,108,118,108,134,108,169,108,208,108,212,108,173,108,247,108,248,108,241,108,215,108,178,108,224,108,214,108,250,108,235,108,238,108,177,108,211,108,239,108,254,108,57,109,39,109,12,109,67,109,72,109,7,109,4,109,25,109,14,109,43,109,77,109,46,109,53,109,26,109,79,109,82,109,84,109,51,109,145,109,111,109,158,109,160,109,94,109,147,109,148,109,92,109,96,109,124,109,99,109,26,110,199,109,197,109,222,109,14,110,191,109,224,109,17,110,230,109,221,109,217,109,22,110,171,109,12,110,174,109,43,110,110,110,78,110,107,110,178,110,95,110,134,110,83,110,84,110,50,110,37,110,68,110,223,110,177,110,152,110,224,110,45,111,226,110,165,110,167,110,189,110,187,110,183,110,215,110,180,110,207,110,143,110,194,110,159,110,98,111,70,111,71,111,36,111,21,111,249,110,47,111,54,111,75,111,116,111,42,111,9,111,41,111,137,111,141,111,140,111,120,111,114,111,124,111,122,111,209,111,201,111,167,111,185,111,182,111,194,111,225,111,238,111,222,111,224,111,239,111,26,112,35,112,27,112,57,112,53,112,79,112,94,112,128,91,132,91,149,91,147,91,165,91,184,91,47,117,158,154,52,100,228,91,238,91,48,137,240,91,71,142,7,139,182,143,211,143,213,143,229,143,238,143,228,143,233,143,230,143,243,143,232,143,5,144,4,144,11,144,38,144,17,144,13,144,22,144,33,144,53,144,54,144,45,144,47,144,68,144,81,144,82,144,80,144,104,144,88,144,98,144,91,144,185,102,116,144,125,144,130,144,136,144,131,144,139,144,80,95,87,95,86,95,88,95,59,92,171,84,80,92,89,92,113,91,99,92,102,92,188,127,42,95,41,95,45,95,116,130,60,95,59,155,110,92,129,89,131,89,141,89,169,89,170,89,163,89,151,89,202,89,171,89,158,89,164,89,210,89,178,89,175,89,215,89,190,89,5,90,6,90,221,89,8,90,227,89,216,89,249,89,12,90,9,90,50,90,52,90,17,90,35,90,19,90,64,90,103,90,74,90,85,90,60,90,98,90,117,90,236,128,170,90,155,90,119,90,122,90,190,90,235,90,178,90,210,90,212,90,184,90,224,90,227,90,241,90,214,90,230,90,216,90,220,90,9,91,23,91,22,91,50,91,55,91,64,91,21,92,28,92,90,91,101,91,115,91,81,91,83,91,98,91,117,154,119,154,120,154,122,154,127,154,125,154,128,154,129,154,133,154,136,154,138,154,144,154,146,154,147,154,150,154,152,154,155,154,156,154,157,154,159,154,160,154,162,154,163,154,165,154,167,154,159,126,161,126,163,126,165,126,168,126,169,126,173,126,176,126,190,126,192,126,193,126,194,126,201,126,203,126,204,126,208,126,212,126,215,126,219,126,224,126,225,126,232,126,235,126,238,126,239,126,241,126,242,126,13,127,246,126,250,126,251,126,254,126,1,127,2,127,3,127,7,127,8,127,11,127,12,127,15,127,17,127,18,127,23,127,25,127,28,127,27,127,31,127,33,127,34,127,35,127,36,127,37,127,38,127,39,127,42,127,43,127,44,127,45,127,47,127,48,127,49,127,50,127,51,127,53,127,122,94,127,117,219,93,62,117,149,144,142,115,145,115,174,115,162,115,159,115,207,115,194,115,209,115,183,115,179,115,192,115,201,115,200,115,229,115,217,115,124,152,10,116,233,115,231,115,222,115,186,115,242,115,15,116,42,116,91,116,38,116,37,116,40,116,48,116,46,116,44,116,27,116,26,116,65,116,92,116,87,116,85,116,89,116,119,116,109,116,126,116,156,116,142,116,128,116,129,116,135,116,139,116,158,116,168,116,169,116,144,116,167,116,210,116,186,116,234,151,235,151,236,151,76,103,83,103,94,103,72,103,105,103,165,103,135,103,106,103,115,103,152,103,167,103,117,103,168,103,158,103,173,103,139,103,119,103,124,103,240,103,9,104,216,103,10,104,233,103,176,103,12,104,217,103,181,103,218,103,179,103,221,103,0,104,195,103,184,103,226,103,14,104,193,103,253,103,50,104,51,104,96,104,97,104,78,104,98,104,68,104,100,104,131,104,29,104,85,104,102,104,65,104,103,104,64,104,62,104,74,104,73,104,41,104,181,104,143,104,116,104,119,104,147,104,107,104,194,104,110,105,252,104,31,105,32,105,249,104,36,105,240,104,11,105,1,105,87,105,227,104,16,105,113,105,57,105,96,105,66,105,93,105,132,105,107,105,128,105,152,105,120,105,52,105,204,105,135,105,136,105,206,105,137,105,102,105,99,105,121,105,155,105,167,105,187,105,171,105,173,105,212,105,177,105,193,105,202,105,223,105,149,105,224,105,141,105,255,105,47,106,237,105,23,106,24,106,101,106,242,105,68,106,62,106,160,106,80,106,91,106,53,106,142,106,121,106,61,106,40,106,88,106,124,106,145,106,144,106,169,106,151,106,171,106,55,115,82,115,129,107,130,107,135,107,132,107,146,107,147,107,141,107,154,107,155,107,161,107,170,107,107,143,109,143,113,143,114,143,115,143,117,143,118,143,120,143,119,143,121,143,122,143,124,143,126,143,129,143,130,143,132,143,135,143,139,143,141,143,142,143,143,143,152,143,154,143,206,142,11,98,23,98,27,98,31,98,34,98,33,98,37,98,36,98,44,98,231,129,239,116,244,116,255,116,15,117,17,117,19,117,52,101,238,101,239,101,240,101,10,102,25,102,114,103,3,102,21,102,0,102,133,112,247,102,29,102,52,102,49,102,54,102,53,102,6,128,95,102,84,102,65,102,79,102,86,102,97,102,87,102,119,102,132,102,140,102,167,102,157,102,190,102,219,102,220,102,230,102,233,102,50,141,51,141,54,141,59,141,61,141,64,141,69,141,70,141,72,141,73,141,71,141,77,141,85,141,89,141,199,137,202,137,203,137,204,137,206,137,207,137,208,137,209,137,110,114,159,114,93,114,102,114,111,114,126,114,127,114,132,114,139,114,141,114,143,114,146,114,8,99,50,99,176,99,63,100,216,100,4,128,234,107,243,107,253,107,245,107,249,107,5,108,7,108,6,108,13,108,21,108,24,108,25,108,26,108,33,108,41,108,36,108,42,108,50,108,53,101,85,101,107,101,77,114,82,114,86,114,48,114,98,134,22,82,159,128,156,128,147,128,188,128,10,103,189,128,177,128,171,128,173,128,180,128,183,128,231,128,232,128,233,128,234,128,219,128,194,128,196,128,217,128,205,128,215,128,16,103,221,128,235,128,241,128,244,128,237,128,13,129,14,129,242,128,252,128,21,103,18,129,90,140,54,129,30,129,44,129,24,129,50,129,72,129,76,129,83,129,116,129,89,129,90,129,113,129,96,129,105,129,124,129,125,129,109,129,103,129,77,88,181,90,136,129,130,129,145,129,213,110,163,129,170,129,204,129,38,103,202,129,187,129,193,129,166,129,36,107,55,107,57,107,67,107,70,107,89,107,209,152,210,152,211,152,213,152,217,152,218,152,179,107,64,95,194,107,243,137,144,101,81,159,147,101,188,101,198,101,196,101,195,101,204,101,206,101,210,101,214,101,128,112,156,112,150,112,157,112,187,112,192,112,183,112,171,112,177,112,232,112,202,112,16,113,19,113,22,113,47,113,49,113,115,113,92,113,104,113,69,113,114,113,74,113,120,113,122,113,152,113,179,113,181,113,168,113,160,113,224,113,212,113,231,113,249,113,29,114,40,114,108,112,24,113,102,113,185,113,62,98,61,98,67,98,72,98,73,98,59,121,64,121,70,121,73,121,91,121,92,121,83,121,90,121,98,121,87,121,96,121,111,121,103,121,122,121,133,121,138,121,154,121,167,121,179,121,209,95,208,95,60,96,93,96,90,96,103,96,65,96,89,96,99,96,171,96,6,97,13,97,93,97,169,97,157,97,203,97,209,97,6,98,128,128,127,128,147,108,246,108,252,109,246,119,248,119,0,120,9,120,23,120,24,120,17,120,171,101,45,120,28,120,29,120,57,120,58,120,59,120,31,120,60,120,37,120,44,120,35,120,41,120,78,120,109,120,86,120,87,120,38,120,80,120,71,120,76,120,106,120,155,120,147,120,154,120,135,120,156,120,161,120,163,120,178,120,185,120,165,120,212,120,217,120,201,120,236,120,242,120,5,121,244,120,19,121,36,121,30,121,52,121,155,159,249,158,251,158,252,158,241,118,4,119,13,119,249,118,7,119,8,119,26,119,34,119,25,119,45,119,38,119,53,119,56,119,80,119,81,119,71,119,67,119,90,119,104,119,98,119,101,119,127,119,141,119,125,119,128,119,140,119,145,119,159,119,160,119,176,119,181,119,189,119,58,117,64,117,78,117,75,117,72,117,91,117,114,117,121,117,131,117,88,127,97,127,95,127,72,138,104,127,116,127,113,127,121,127,129,127,126,127,205,118,229,118,50,136,133,148,134,148,135,148,139,148,138,148,140,148,141,148,143,148,144,148,148,148,151,148,149,148,154,148,155,148,156,148,163,148,164,148,171,148,170,148,173,148,172,148,175,148,176,148,178,148,180,148,182,148,183,148,184,148,185,148,186,148,188,148,189,148,191,148,196,148,200,148,201,148,202,148,203,148,204,148,205,148,206,148,208,148,209,148,210,148,213,148,214,148,215,148,217,148,216,148,219,148,222,148,223,148,224,148,226,148,228,148,229,148,231,148,232,148,234,148,233,148,235,148,238,148,239,148,243,148,244,148,245,148,247,148,249,148,252,148,253,148,255,148,3,149,2,149,6,149,7,149,9,149,10,149,13,149,14,149,15,149,18,149,19,149,20,149,21,149,22,149,24,149,27,149,29,149,30,149,31,149,34,149,42,149,43,149,41,149,44,149,49,149,50,149,52,149,54,149,55,149,56,149,60,149,62,149,63,149,66,149,53,149,68,149,69,149,70,149,73,149,76,149,78,149,79,149,82,149,83,149,84,149,86,149,87,149,88,149,89,149,91,149,94,149,95,149,93,149,97,149,98,149,100,149,101,149,102,149,103,149,104,149,105,149,106,149,107,149,108,149,111,149,113,149,114,149,115,149,58,149,231,119,236,119,201,150,213,121,237,121,227,121,235,121,6,122,71,93,3,122,2,122,30,122,20,122,57,122,55,122,81,122,207,158,165,153,112,122,136,118,142,118,147,118,153,118,164,118,222,116,224,116,44,117,32,158,34,158,40,158,41,158,42,158,43,158,44,158,50,158,49,158,54,158,56,158,55,158,57,158,58,158,62,158,65,158,66,158,68,158,70,158,71,158,72,158,73,158,75,158,76,158,78,158,81,158,85,158,87,158,90,158,91,158,92,158,94,158,99,158,102,158,103,158,104,158,105,158,106,158,107,158,108,158,113,158,109,158,115,158,146,117,148,117,150,117,160,117,157,117,172,117,163,117,179,117,180,117,184,117,196,117,177,117,176,117,195,117,194,117,214,117,205,117,227,117,232,117,230,117,228,117,235,117,231,117,3,118,241,117,252,117,255,117,16,118,0,118,5,118,12,118,23,118,10,118,37,118,24,118,21,118,25,118,27,118,60,118,34,118,32,118,64,118,45,118,48,118,63,118,53,118,67,118,62,118,51,118,77,118,94,118,84,118,92,118,86,118,107,118,111,118,202,127,230,122,120,122,121,122,128,122,134,122,136,122,149,122,166,122,160,122,172,122,168,122,173,122,179,122,100,136,105,136,114,136,125,136,127,136,130,136,162,136,198,136,183,136,188,136,201,136,226,136,206,136,227,136,229,136,241,136,26,137,252,136,232,136,254,136,240,136,33,137,25,137,19,137,27,137,10,137,52,137,43,137,54,137,65,137,102,137,123,137,139,117,229,128,178,118,180,118,220,119,18,128,20,128,22,128,28,128,32,128,34,128,37,128,38,128,39,128,41,128,40,128,49,128,11,128,53,128,67,128,70,128,77,128,82,128,105,128,113,128,131,137,120,152,128,152,131,152,137,152,140,152,141,152,143,152,148,152,154,152,155,152,158,152,159,152,161,152,162,152,165,152,166,152,77,134,84,134,108,134,110,134,127,134,122,134,124,134,123,134,168,134,141,134,139,134,172,134,157,134,167,134,163,134,170,134,147,134,169,134,182,134,196,134,181,134,206,134,176,134,186,134,177,134,175,134,201,134,207,134,180,134,233,134,241,134,242,134,237,134,243,134,208,134,19,135,222,134,244,134,223,134,216,134,209,134,3,135,7,135,248,134,8,135,10,135,13,135,9,135,35,135,59,135,30,135,37,135,46,135,26,135,62,135,72,135,52,135,49,135,41,135,55,135,63,135,130,135,34,135,125,135,126,135,123,135,96,135,112,135,76,135,110,135,139,135,83,135,99,135,124,135,100,135,89,135,101,135,147,135,175,135,168,135,210,135,198,135,136,135,133,135,173,135,151,135,131,135,171,135,229,135,172,135,181,135,179,135,203,135,211,135,189,135,209,135,192,135,202,135,219,135,234,135,224,135,238,135,22,136,19,136,254,135,10,136,27,136,33,136,57,136,60,136,54,127,66,127,68,127,69,127,16,130,250,122,253,122,8,123,3,123,4,123,21,123,10,123,43,123,15,123,71,123,56,123,42,123,25,123,46,123,49,123,32,123,37,123,36,123,51,123,62,123,30,123,88,123,90,123,69,123,117,123,76,123,93,123,96,123,110,123,123,123,98,123,114,123,113,123,144,123,166,123,167,123,184,123,172,123,157,123,168,123,133,123,170,123,156,123,162,123,171,123,180,123,209,123,193,123,204,123,221,123,218,123,229,123,230,123,234,123,12,124,254,123,252,123,15,124,22,124,11,124,31,124,42,124,38,124,56,124,65,124,64,124,254,129,1,130,2,130,4,130,236,129,68,136,33,130,34,130,35,130,45,130,47,130,40,130,43,130,56,130,59,130,51,130,52,130,62,130,68,130,73,130,75,130,79,130,90,130,95,130,104,130,126,136,133,136,136,136,216,136,223,136,94,137,157,127,159,127,167,127,175,127,176,127,178,127,124,124,73,101,145,124,157,124,156,124,158,124,162,124,178,124,188,124,189,124,193,124,199,124,204,124,205,124,200,124,197,124,215,124,232,124,110,130,168,102,191,127,206,127,213,127,229,127,225,127,230,127,233,127,238,127,243,127,248,124,119,125,166,125,174,125,71,126,155,126,184,158,180,158,115,141,132,141,148,141,145,141,177,141,103,141,109,141,71,140,73,140,74,145,80,145,78,145,79,145,100,145,98,145,97,145,112,145,105,145,111,145,125,145,126,145,114,145,116,145,121,145,140,145,133,145,144,145,141,145,145,145,162,145,163,145,170,145,173,145,174,145,175,145,181,145,180,145,186,145,85,140,126,158,184,141,235,141,5,142,89,142,105,142,181,141,191,141,188,141,186,141,196,141,214,141,215,141,218,141,222,141,206,141,207,141,219,141,198,141,236,141,247,141,248,141,227,141,249,141,251,141,228,141,9,142,253,141,20,142,29,142,31,142,44,142,46,142,35,142,47,142,58,142,64,142,57,142,53,142,61,142,49,142,73,142,65,142,66,142,81,142,82,142,74,142,112,142,118,142,124,142,111,142,116,142,133,142,143,142,148,142,144,142,156,142,158,142,120,140,130,140,138,140,133,140,152,140,148,140,155,101,214,137,222,137,218,137,220,137,229,137,235,137,239,137,62,138,38,139,83,151,233,150,243,150,239,150,6,151,1,151,8,151,15,151,14,151,42,151,45,151,48,151,62,151,128,159,131,159,133,159,134,159,135,159,136,159,137,159,138,159,140,159,254,158,11,159,13,159,185,150,188,150,189,150,206,150,210,150,191,119,224,150,142,146,174,146,200,146,62,147,106,147,202,147,143,147,62,148,107,148,127,156,130,156,133,156,134,156,135,156,136,156,35,122,139,156,142,156,144,156,145,156,146,156,148,156,149,156,154,156,155,156,158,156,159,156,160,156,161,156,162,156,163,156,165,156,166,156,167,156,168,156,169,156,171,156,173,156,174,156,176,156,177,156,178,156,179,156,180,156,181,156,182,156,183,156,186,156,187,156,188,156,189,156,196,156,197,156,198,156,199,156,202,156,203,156,204,156,205,156,206,156,207,156,208,156,211,156,212,156,213,156,215,156,216,156,217,156,220,156,221,156,223,156,226,156,124,151,133,151,145,151,146,151,148,151,175,151,171,151,163,151,178,151,180,151,177,154,176,154,183,154,88,158,182,154,186,154,188,154,193,154,192,154,197,154,194,154,203,154,204,154,209,154,69,155,67,155,71,155,73,155,72,155,77,155,81,155,232,152,13,153,46,153,85,153,84,153,223,154,225,154,230,154,239,154,235,154,251,154,237,154,249,154,8,155,15,155,19,155,31,155,35,155,189,158,190,158,59,126,130,158,135,158,136,158,139,158,146,158,214,147,157,158,159,158,219,158,220,158,221,158,224,158,223,158,226,158,233,158,231,158,229,158,234,158,239,158,34,159,44,159,47,159,57,159,55,159,61,159,62,159,68,159,0,0,239,223,76,51,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,76,0,97,0,116,0,110,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,42,0,89,81,91,81,94,81,93,81,97,81,99,81,231,85,233,116,206,124,0,78,89,78,1,78,3,78,67,78,93,78,134,78,140,78,186,78,63,81,101,81,107,81,224,81,0,82,1,82,155,82,21,83,65,83,92,83,200,83,9,78,11,78,8,78,10,78,43,78,56,78,225,81,69,78,72,78,95,78,94,78,142,78,161,78,64,81,3,82,250,82,67,83,201,83,227,83,31,87,235,88,21,89,39,89,115,89,80,91,81,91,83,91,248,91,15,92,34,92,56,92,113,92,221,93,229,93,241,93,242,93,243,93,254,93,114,94,254,94,11,95,19,95,77,98,17,78,16,78,13,78,45,78,48,78,57,78,75,78,57,92,136,78,145,78,149,78,146,78,148,78,162,78,193,78,192,78,195,78,198,78,199,78,205,78,202,78,203,78,196,78,67,81,65,81,103,81,109,81,110,81,108,81,151,81,246,81,6,82,7,82,8,82,251,82,254,82,255,82,22,83,57,83,72,83,71,83,69,83,94,83,132,83,203,83,202,83,205,83,236,88,41,89,43,89,42,89,45,89,84,91,17,92,36,92,58,92,111,92,244,93,123,94,255,94,20,95,21,95,195,95,8,98,54,98,75,98,78,98,47,101,135,101,151,101,164,101,185,101,229,101,240,102,8,103,40,103,32,107,98,107,121,107,203,107,212,107,219,107,15,108,52,108,107,112,42,114,54,114,59,114,71,114,89,114,91,114,172,114,139,115,25,78,22,78,21,78,20,78,24,78,59,78,77,78,79,78,78,78,229,78,216,78,212,78,213,78,214,78,215,78,227,78,228,78,217,78,222,78,69,81,68,81,137,81,138,81,172,81,249,81,250,81,248,81,10,82,160,82,159,82,5,83,6,83,23,83,29,83,223,78,74,83,73,83,97,83,96,83,111,83,110,83,187,83,239,83,228,83,243,83,236,83,238,83,233,83,232,83,252,83,248,83,245,83,235,83,230,83,234,83,242,83,241,83,240,83,229,83,237,83,251,83,219,86,218,86,22,89,46,89,49,89,116,89,118,89,85,91,131,91,60,92,232,93,231,93,230,93,2,94,3,94,115,94,124,94,1,95,24,95,23,95,197,95,10,98,83,98,84,98,82,98,81,98,165,101,230,101,46,103,44,103,42,103,43,103,45,103,99,107,205,107,17,108,16,108,56,108,65,108,64,108,62,108,175,114,132,115,137,115,220,116,230,116,24,117,31,117,40,117,41,117,48,117,49,117,50,117,51,117,139,117,125,118,174,118,191,118,238,118,219,119,226,119,243,119,58,121,190,121,116,122,203,122,30,78,31,78,82,78,83,78,105,78,153,78,164,78,166,78,165,78,255,78,9,79,25,79,10,79,21,79,13,79,16,79,17,79,15,79,242,78,246,78,251,78,240,78,243,78,253,78,1,79,11,79,73,81,71,81,70,81,72,81,104,81,113,81,141,81,176,81,23,82,17,82,18,82,14,82,22,82,163,82,8,83,33,83,32,83,112,83,113,83,9,84,15,84,12,84,10,84,16,84,1,84,11,84,4,84,17,84,13,84,8,84,3,84,14,84,6,84,18,84,224,86,222,86,221,86,51,87,48,87,40,87,45,87,44,87,47,87,41,87,25,89,26,89,55,89,56,89,132,89,120,89,131,89,125,89,121,89,130,89,129,89,87,91,88,91,135,91,136,91,133,91,137,91,250,91,22,92,121,92,222,93,6,94,118,94,116,94,15,95,27,95,217,95,214,95,14,98,12,98,13,98,16,98,99,98,91,98,88,98,54,101,233,101,232,101,236,101,237,101,242,102,243,102,9,103,61,103,52,103,49,103,53,103,33,107,100,107,123,107,22,108,93,108,87,108,89,108,95,108,96,108,80,108,85,108,97,108,91,108,77,108,78,108,112,112,95,114,93,114,126,118,249,122,115,124,248,124,54,127,138,127,189,127,1,128,3,128,12,128,18,128,51,128,127,128,137,128,139,128,140,128,227,129,234,129,243,129,252,129,12,130,27,130,31,130,110,130,114,130,126,130,107,134,64,136,76,136,99,136,127,137,33,150,50,78,168,78,77,79,79,79,71,79,87,79,94,79,52,79,91,79,85,79,48,79,80,79,81,79,61,79,58,79,56,79,67,79,84,79,60,79,70,79,99,79,92,79,96,79,47,79,78,79,54,79,89,79,93,79,72,79,90,79,76,81,75,81,77,81,117,81,182,81,183,81,37,82,36,82,41,82,42,82,40,82,171,82,169,82,170,82,172,82,35,83,115,83,117,83,29,84,45,84,30,84,62,84,38,84,78,84,39,84,70,84,67,84,51,84,72,84,66,84,27,84,41,84,74,84,57,84,59,84,56,84,46,84,53,84,54,84,32,84,60,84,64,84,49,84,43,84,31,84,44,84,234,86,240,86,228,86,235,86,74,87,81,87,64,87,77,87,71,87,78,87,62,87,80,87,79,87,59,87,239,88,62,89,157,89,146,89,168,89,158,89,163,89,153,89,150,89,141,89,164,89,147,89,138,89,165,89,93,91,92,91,90,91,91,91,140,91,139,91,143,91,44,92,64,92,65,92,63,92,62,92,144,92,145,92,148,92,140,92,235,93,12,94,143,94,135,94,138,94,247,94,4,95,31,95,100,95,98,95,119,95,121,95,216,95,204,95,215,95,205,95,241,95,235,95,248,95,234,95,18,98,17,98,132,98,151,98,150,98,128,98,118,98,137,98,109,98,138,98,124,98,126,98,121,98,115,98,146,98,111,98,152,98,110,98,149,98,147,98,145,98,134,98,57,101,59,101,56,101,241,101,244,102,95,103,78,103,79,103,80,103,81,103,92,103,86,103,94,103,73,103,70,103,96,103,83,103,87,103,101,107,207,107,66,108,94,108,153,108,129,108,136,108,137,108,133,108,155,108,106,108,122,108,144,108,112,108,140,108,104,108,150,108,146,108,125,108,131,108,114,108,126,108,116,108,134,108,118,108,141,108,148,108,152,108,130,108,118,112,124,112,125,112,120,112,98,114,97,114,96,114,196,114,194,114,150,115,44,117,43,117,55,117,56,117,130,118,239,118,227,119,193,121,192,121,191,121,118,122,251,124,85,127,150,128,147,128,157,128,152,128,155,128,154,128,178,128,111,130,146,130,139,130,141,130,139,137,210,137,0,138,55,140,70,140,85,140,157,140,100,141,112,141,179,141,171,142,202,142,155,143,176,143,194,143,198,143,197,143,196,143,225,93,145,144,162,144,170,144,166,144,163,144,73,145,198,145,204,145,50,150,46,150,49,150,42,150,44,150,38,78,86,78,115,78,139,78,155,78,158,78,171,78,172,78,111,79,157,79,141,79,115,79,127,79,108,79,155,79,139,79,134,79,131,79,112,79,117,79,136,79,105,79,123,79,150,79,126,79,143,79,145,79,122,79,84,81,82,81,85,81,105,81,119,81,118,81,120,81,189,81,253,81,59,82,56,82,55,82,58,82,48,82,46,82,54,82,65,82,190,82,187,82,82,83,84,83,83,83,81,83,102,83,119,83,120,83,121,83,214,83,212,83,215,83,115,84,117,84,150,84,120,84,149,84,128,84,123,84,119,84,132,84,146,84,134,84,124,84,144,84,113,84,118,84,140,84,154,84,98,84,104,84,139,84,125,84,142,84,250,86,131,87,119,87,106,87,105,87,97,87,102,87,100,87,124,87,28,89,73,89,71,89,72,89,68,89,84,89,190,89,187,89,212,89,185,89,174,89,209,89,198,89,208,89,205,89,203,89,211,89,202,89,175,89,179,89,210,89,197,89,95,91,100,91,99,91,151,91,154,91,152,91,156,91,153,91,155,91,26,92,72,92,69,92,70,92,183,92,161,92,184,92,169,92,171,92,177,92,179,92,24,94,26,94,22,94,21,94,27,94,17,94,120,94,154,94,151,94,156,94,149,94,150,94,246,94,38,95,39,95,41,95,128,95,129,95,127,95,124,95,221,95,224,95,253,95,245,95,255,95,15,96,20,96,47,96,53,96,22,96,42,96,21,96,33,96,39,96,41,96,43,96,27,96,22,98,21,98,63,98,62,98,64,98,127,98,201,98,204,98,196,98,191,98,194,98,185,98,210,98,219,98,171,98,211,98,212,98,203,98,200,98,168,98,189,98,188,98,208,98,217,98,199,98,205,98,181,98,218,98,177,98,216,98,214,98,215,98,198,98,172,98,206,98,62,101,167,101,188,101,250,101,20,102,19,102,12,102,6,102,2,102,14,102,0,102,15,102,21,102,10,102,7,102,13,103,11,103,109,103,139,103,149,103,113,103,156,103,115,103,119,103,135,103,157,103,151,103,111,103,112,103,127,103,137,103,126,103,144,103,117,103,154,103,147,103,124,103,106,103,114,103,35,107,102,107,103,107,127,107,19,108,27,108,227,108,232,108,243,108,177,108,204,108,229,108,179,108,189,108,190,108,188,108,226,108,171,108,213,108,211,108,184,108,196,108,185,108,193,108,174,108,215,108,197,108,241,108,191,108,187,108,225,108,219,108,202,108,172,108,239,108,220,108,214,108,224,108,149,112,142,112,146,112,138,112,153,112,44,114,45,114,56,114,72,114,103,114,105,114,192,114,206,114,217,114,215,114,208,114,169,115,168,115,159,115,171,115,165,115,61,117,157,117,153,117,154,117,132,118,194,118,242,118,244,118,229,119,253,119,62,121,64,121,65,121,201,121,200,121,122,122,121,122,250,122,254,124,84,127,140,127,139,127,5,128,186,128,165,128,162,128,177,128,161,128,171,128,169,128,180,128,170,128,175,128,229,129,254,129,13,130,179,130,157,130,153,130,173,130,189,130,159,130,185,130,177,130,172,130,165,130,175,130,184,130,163,130,176,130,190,130,183,130,78,134,113,134,29,82,104,136,203,142,206,143,212,143,209,143,181,144,184,144,177,144,182,144,199,145,209,145,119,149,128,149,28,150,64,150,63,150,59,150,68,150,66,150,185,150,232,150,82,151,94,151,159,78,173,78,174,78,225,79,181,79,175,79,191,79,224,79,209,79,207,79,221,79,195,79,182,79,216,79,223,79,202,79,215,79,174,79,208,79,196,79,194,79,218,79,206,79,222,79,183,79,87,81,146,81,145,81,160,81,78,82,67,82,74,82,77,82,76,82,75,82,71,82,199,82,201,82,195,82,193,82,13,83,87,83,123,83,154,83,219,83,172,84,192,84,168,84,206,84,201,84,184,84,166,84,179,84,199,84,194,84,189,84,170,84,193,84,196,84,200,84,175,84,171,84,177,84,187,84,169,84,167,84,191,84,255,86,130,87,139,87,160,87,163,87,162,87,206,87,174,87,147,87,85,89,81,89,79,89,78,89,80,89,220,89,216,89,255,89,227,89,232,89,3,90,229,89,234,89,218,89,230,89,1,90,251,89,105,91,163,91,166,91,164,91,162,91,165,91,1,92,78,92,79,92,77,92,75,92,217,92,210,92,247,93,29,94,37,94,31,94,125,94,160,94,166,94,250,94,8,95,45,95,101,95,136,95,133,95,138,95,139,95,135,95,140,95,137,95,18,96,29,96,32,96,37,96,14,96,40,96,77,96,112,96,104,96,98,96,70,96,67,96,108,96,107,96,106,96,100,96,65,98,220,98,22,99,9,99,252,98,237,98,1,99,238,98,253,98,7,99,241,98,247,98,239,98,236,98,254,98,244,98,17,99,2,99,63,101,69,101,171,101,189,101,226,101,37,102,45,102,32,102,39,102,47,102,31,102,40,102,49,102,36,102,247,102,255,103,211,103,241,103,212,103,208,103,236,103,182,103,175,103,245,103,233,103,239,103,196,103,209,103,180,103,218,103,229,103,184,103,207,103,222,103,243,103,176,103,217,103,226,103,221,103,210,103,106,107,131,107,134,107,181,107,210,107,215,107,31,108,201,108,11,109,50,109,42,109,65,109,37,109,12,109,49,109,30,109,23,109,59,109,61,109,62,109,54,109,27,109,245,108,57,109,39,109,56,109,41,109,46,109,53,109,14,109,43,109,171,112,186,112,179,112,172,112,175,112,173,112,184,112,174,112,164,112,48,114,114,114,111,114,116,114,233,114,224,114,225,114,183,115,202,115,187,115,178,115,205,115,192,115,179,115,26,117,45,117,79,117,76,117,78,117,75,117,171,117,164,117,165,117,162,117,163,117,120,118,134,118,135,118,136,118,200,118,198,118,195,118,197,118,1,119,249,118,248,118,9,119,11,119,254,118,252,118,7,119,220,119,2,120,20,120,12,120,13,120,70,121,73,121,72,121,71,121,185,121,186,121,209,121,210,121,203,121,127,122,129,122,255,122,253,122,125,124,2,125,5,125,0,125,9,125,7,125,4,125,6,125,56,127,142,127,191,127,4,128,16,128,13,128,17,128,54,128,214,128,229,128,218,128,195,128,196,128,204,128,225,128,219,128,206,128,222,128,228,128,221,128,244,129,34,130,231,130,3,131,5,131,227,130,219,130,230,130,4,131,229,130,2,131,9,131,210,130,215,130,241,130,1,131,220,130,212,130,209,130,222,130,211,130,223,130,239,130,6,131,80,134,121,134,123,134,122,134,77,136,107,136,129,137,212,137,8,138,2,138,3,138,158,140,160,140,116,141,115,141,180,141,205,142,204,142,240,143,230,143,226,143,234,143,229,143,237,143,235,143,228,143,232,143,202,144,206,144,193,144,195,144,75,145,74,145,205,145,130,149,80,150,75,150,76,150,77,150,98,151,105,151,203,151,237,151,243,151,1,152,168,152,219,152,223,152,150,153,153,153,88,78,179,78,12,80,13,80,35,80,239,79,38,80,37,80,248,79,41,80,22,80,6,80,60,80,31,80,26,80,18,80,17,80,250,79,0,80,20,80,40,80,241,79,33,80,11,80,25,80,24,80,243,79,238,79,45,80,42,80,254,79,43,80,9,80,124,81,164,81,165,81,162,81,205,81,204,81,198,81,203,81,86,82,92,82,84,82,91,82,93,82,42,83,127,83,159,83,157,83,223,83,232,84,16,85,1,85,55,85,252,84,229,84,242,84,6,85,250,84,20,85,233,84,237,84,225,84,9,85,238,84,234,84,230,84,39,85,7,85,253,84,15,85,3,87,4,87,194,87,212,87,203,87,195,87,9,88,15,89,87,89,88,89,90,89,17,90,24,90,28,90,31,90,27,90,19,90,236,89,32,90,35,90,41,90,37,90,12,90,9,90,107,91,88,92,176,91,179,91,182,91,180,91,174,91,181,91,185,91,184,91,4,92,81,92,85,92,80,92,237,92,253,92,251,92,234,92,232,92,240,92,246,92,1,93,244,92,238,93,45,94,43,94,171,94,173,94,167,94,49,95,146,95,145,95,144,95,89,96,99,96,101,96,80,96,85,96,109,96,105,96,111,96,132,96,159,96,154,96,141,96,148,96,140,96,133,96,150,96,71,98,243,98,8,99,255,98,78,99,62,99,47,99,85,99,66,99,70,99,79,99,73,99,58,99,80,99,61,99,42,99,43,99,40,99,77,99,76,99,72,101,73,101,153,101,193,101,197,101,66,102,73,102,79,102,67,102,82,102,76,102,69,102,65,102,248,102,20,103,21,103,23,103,33,104,56,104,72,104,70,104,83,104,57,104,66,104,84,104,41,104,179,104,23,104,76,104,81,104,61,104,244,103,80,104,64,104,60,104,67,104,42,104,69,104,19,104,24,104,65,104,138,107,137,107,183,107,35,108,39,108,40,108,38,108,36,108,240,108,106,109,149,109,136,109,135,109,102,109,120,109,119,109,89,109,147,109,108,109,137,109,110,109,90,109,116,109,105,109,140,109,138,109,121,109,133,109,101,109,148,109,202,112,216,112,228,112,217,112,200,112,207,112,57,114,121,114,252,114,249,114,253,114,248,114,247,114,134,115,237,115,9,116,238,115,224,115,234,115,222,115,84,117,93,117,92,117,90,117,89,117,190,117,197,117,199,117,178,117,179,117,189,117,188,117,185,117,194,117,184,117,139,118,176,118,202,118,205,118,206,118,41,119,31,119,32,119,40,119,233,119,48,120,39,120,56,120,29,120,52,120,55,120,37,120,45,120,32,120,31,120,50,120,85,121,80,121,96,121,95,121,86,121,94,121,93,121,87,121,90,121,228,121,227,121,231,121,223,121,230,121,233,121,216,121,132,122,136,122,217,122,6,123,17,123,137,124,33,125,23,125,11,125,10,125,32,125,34,125,20,125,16,125,21,125,26,125,28,125,13,125,25,125,27,125,58,127,95,127,148,127,197,127,193,127,6,128,24,128,21,128,25,128,23,128,61,128,63,128,241,128,2,129,240,128,5,129,237,128,244,128,6,129,248,128,243,128,8,129,253,128,10,129,252,128,239,128,237,129,236,129,0,130,16,130,42,130,43,130,40,130,44,130,187,130,43,131,82,131,84,131,74,131,56,131,80,131,73,131,53,131,52,131,79,131,50,131,57,131,54,131,23,131,64,131,49,131,40,131,67,131,84,134,138,134,170,134,147,134,164,134,169,134,140,134,163,134,156,134,112,136,119,136,129,136,130,136,125,136,121,136,24,138,16,138,14,138,12,138,21,138,10,138,23,138,19,138,22,138,15,138,17,138,72,140,122,140,121,140,161,140,162,140,119,141,172,142,210,142,212,142,207,142,177,143,1,144,6,144,247,143,0,144,250,143,244,143,3,144,253,143,5,144,248,143,149,144,225,144,221,144,226,144,82,145,77,145,76,145,216,145,221,145,215,145,220,145,217,145,131,149,98,150,99,150,97,150,91,150,93,150,100,150,88,150,94,150,187,150,226,152,172,153,168,154,216,154,37,155,50,155,60,155,126,78,122,80,125,80,92,80,71,80,67,80,76,80,90,80,73,80,101,80,118,80,78,80,85,80,117,80,116,80,119,80,79,80,15,80,111,80,109,80,92,81,149,81,240,81,106,82,111,82,210,82,217,82,216,82,213,82,16,83,15,83,25,83,63,83,64,83,62,83,195,83,252,102,70,85,106,85,102,85,68,85,94,85,97,85,67,85,74,85,49,85,86,85,79,85,85,85,47,85,100,85,56,85,46,85,92,85,44,85,99,85,51,85,65,85,87,85,8,87,11,87,9,87,223,87,5,88,10,88,6,88,224,87,228,87,250,87,2,88,53,88,247,87,249,87,32,89,98,89,54,90,65,90,73,90,102,90,106,90,64,90,60,90,98,90,90,90,70,90,74,90,112,91,199,91,197,91,196,91,194,91,191,91,198,91,9,92,8,92,7,92,96,92,92,92,93,92,7,93,6,93,14,93,27,93,22,93,34,93,17,93,41,93,20,93,25,93,36,93,39,93,23,93,226,93,56,94,54,94,51,94,55,94,183,94,184,94,182,94,181,94,190,94,53,95,55,95,87,95,108,95,105,95,107,95,151,95,153,95,158,95,152,95,161,95,160,95,156,95,127,96,163,96,137,96,160,96,168,96,203,96,180,96,230,96,189,96,197,96,187,96,181,96,220,96,188,96,216,96,213,96,198,96,223,96,184,96,218,96,199,96,26,98,27,98,72,98,160,99,167,99,114,99,150,99,162,99,165,99,119,99,103,99,152,99,170,99,113,99,169,99,137,99,131,99,155,99,107,99,168,99,132,99,136,99,153,99,161,99,172,99,146,99,143,99,128,99,123,99,105,99,104,99,122,99,93,101,86,101,81,101,89,101,87,101,95,85,79,101,88,101,85,101,84,101,156,101,155,101,172,101,207,101,203,101,204,101,206,101,93,102,90,102,100,102,104,102,102,102,94,102,249,102,215,82,27,103,129,104,175,104,162,104,147,104,181,104,127,104,118,104,177,104,167,104,151,104,176,104,131,104,196,104,173,104,134,104,133,104,148,104,157,104,168,104,159,104,161,104,130,104,50,107,186,107,235,107,236,107,43,108,142,109,188,109,243,109,217,109,178,109,225,109,204,109,228,109,251,109,250,109,5,110,199,109,203,109,175,109,209,109,174,109,222,109,249,109,184,109,247,109,245,109,197,109,210,109,26,110,181,109,218,109,235,109,216,109,234,109,241,109,238,109,232,109,198,109,196,109,170,109,236,109,191,109,230,109,249,112,9,113,10,113,253,112,239,112,61,114,125,114,129,114,28,115,27,115,22,115,19,115,25,115,135,115,5,116,10,116,3,116,6,116,254,115,13,116,224,116,246,116,247,116,28,117,34,117,101,117,102,117,98,117,112,117,143,117,212,117,213,117,181,117,202,117,205,117,142,118,212,118,210,118,219,118,55,119,62,119,60,119,54,119,56,119,58,119,107,120,67,120,78,120,101,121,104,121,109,121,251,121,146,122,149,122,32,123,40,123,27,123,44,123,38,123,25,123,30,123,46,123,146,124,151,124,149,124,70,125,67,125,113,125,46,125,57,125,60,125,64,125,48,125,51,125,68,125,47,125,66,125,50,125,49,125,61,127,158,127,154,127,204,127,206,127,210,127,28,128,74,128,70,128,47,129,22,129,35,129,43,129,41,129,48,129,36,129,2,130,53,130,55,130,54,130,57,130,142,131,158,131,152,131,120,131,162,131,150,131,189,131,171,131,146,131,138,131,147,131,137,131,160,131,119,131,123,131,124,131,134,131,167,131,85,134,106,95,199,134,192,134,182,134,196,134,181,134,198,134,203,134,177,134,175,134,201,134,83,136,158,136,136,136,171,136,146,136,150,136,141,136,139,136,147,137,143,137,42,138,29,138,35,138,37,138,49,138,45,138,31,138,27,138,34,138,73,140,90,140,169,140,172,140,171,140,168,140,170,140,167,140,103,141,102,141,190,141,186,141,219,142,223,142,25,144,13,144,26,144,23,144,35,144,31,144,29,144,16,144,21,144,30,144,32,144,15,144,34,144,22,144,27,144,20,144,232,144,237,144,253,144,87,145,206,145,245,145,230,145,227,145,231,145,237,145,233,145,137,149,106,150,117,150,115,150,120,150,112,150,116,150,118,150,119,150,108,150,192,150,234,150,233,150,224,122,223,122,2,152,3,152,90,155,229,156,117,158,127,158,165,158,187,158,162,80,141,80,133,80,153,80,145,80,128,80,150,80,152,80,154,80,0,103,241,81,114,82,116,82,117,82,105,82,222,82,221,82,219,82,90,83,165,83,123,85,128,85,167,85,124,85,138,85,157,85,152,85,130,85,156,85,170,85,148,85,135,85,139,85,131,85,179,85,174,85,159,85,62,85,178,85,154,85,187,85,172,85,177,85,126,85,137,85,171,85,153,85,13,87,47,88,42,88,52,88,36,88,48,88,49,88,33,88,29,88,32,88,249,88,250,88,96,89,119,90,154,90,127,90,146,90,155,90,167,90,115,91,113,91,210,91,204,91,211,91,208,91,10,92,11,92,49,92,76,93,80,93,52,93,71,93,253,93,69,94,61,94,64,94,67,94,126,94,202,94,193,94,194,94,196,94,60,95,109,95,169,95,170,95,168,95,209,96,225,96,178,96,182,96,224,96,28,97,35,97,250,96,21,97,240,96,251,96,244,96,104,97,241,96,14,97,246,96,9,97,0,97,18,97,31,98,73,98,163,99,140,99,207,99,192,99,233,99,201,99,198,99,205,99,210,99,227,99,208,99,225,99,214,99,237,99,238,99,118,99,244,99,234,99,219,99,82,100,218,99,249,99,94,101,102,101,98,101,99,101,145,101,144,101,175,101,110,102,112,102,116,102,118,102,111,102,145,102,122,102,126,102,119,102,254,102,255,102,31,103,29,103,250,104,213,104,224,104,216,104,215,104,5,105,223,104,245,104,238,104,231,104,249,104,210,104,242,104,227,104,203,104,205,104,13,105,18,105,14,105,201,104,218,104,110,105,251,104,62,107,58,107,61,107,152,107,150,107,188,107,239,107,46,108,47,108,44,108,47,110,56,110,84,110,33,110,50,110,103,110,74,110,32,110,37,110,35,110,27,110,91,110,88,110,36,110,86,110,110,110,45,110,38,110,111,110,52,110,77,110,58,110,44,110,67,110,29,110,62,110,203,110,137,110,25,110,78,110,99,110,68,110,114,110,105,110,95,110,25,113,26,113,38,113,48,113,33,113,54,113,110,113,28,113,76,114,132,114,128,114,54,115,37,115,52,115,41,115,58,116,42,116,51,116,34,116,37,116,53,116,54,116,52,116,47,116,27,116,38,116,40,116,37,117,38,117,107,117,106,117,226,117,219,117,227,117,217,117,216,117,222,117,224,117,123,118,124,118,150,118,147,118,180,118,220,118,79,119,237,119,93,120,108,120,111,120,13,122,8,122,11,122,5,122,0,122,152,122,151,122,150,122,229,122,227,122,73,123,86,123,70,123,80,123,82,123,84,123,77,123,75,123,79,123,81,123,159,124,165,124,94,125,80,125,104,125,85,125,43,125,110,125,114,125,97,125,102,125,98,125,112,125,115,125,132,85,212,127,213,127,11,128,82,128,133,128,85,129,84,129,75,129,81,129,78,129,57,129,70,129,62,129,76,129,83,129,116,129,18,130,28,130,233,131,3,132,248,131,13,132,224,131,197,131,11,132,193,131,239,131,241,131,244,131,87,132,10,132,240,131,12,132,204,131,253,131,242,131,202,131,56,132,14,132,4,132,220,131,7,132,212,131,223,131,91,134,223,134,217,134,237,134,212,134,219,134,228,134,208,134,222,134,87,136,193,136,194,136,177,136,131,137,150,137,59,138,96,138,85,138,94,138,60,138,65,138,84,138,91,138,80,138,70,138,52,138,58,138,54,138,86,138,97,140,130,140,175,140,188,140,179,140,189,140,193,140,187,140,192,140,180,140,183,140,182,140,191,140,184,140,138,141,133,141,129,141,206,141,221,141,203,141,218,141,209,141,204,141,219,141,198,141,251,142,248,142,252,142,156,143,46,144,53,144,49,144,56,144,50,144,54,144,2,145,245,144,9,145,254,144,99,145,101,145,207,145,20,146,21,146,35,146,9,146,30,146,13,146,16,146,7,146,17,146,148,149,143,149,139,149,145,149,147,149,146,149,142,149,138,150,142,150,139,150,125,150,133,150,134,150,141,150,114,150,132,150,193,150,197,150,196,150,198,150,199,150,239,150,242,150,204,151,5,152,6,152,8,152,231,152,234,152,239,152,233,152,242,152,237,152,174,153,173,153,195,158,205,158,209,158,130,78,173,80,181,80,178,80,179,80,197,80,190,80,172,80,183,80,187,80,175,80,199,80,127,82,119,82,125,82,223,82,230,82,228,82,226,82,227,82,47,83,223,85,232,85,211,85,230,85,206,85,220,85,199,85,209,85,227,85,228,85,239,85,218,85,225,85,197,85,198,85,229,85,201,85,18,87,19,87,94,88,81,88,88,88,87,88,90,88,84,88,107,88,76,88,109,88,74,88,98,88,82,88,75,88,103,89,193,90,201,90,204,90,190,90,189,90,188,90,179,90,194,90,178,90,105,93,111,93,76,94,121,94,201,94,200,94,18,95,89,95,172,95,174,95,26,97,15,97,72,97,31,97,243,96,27,97,249,96,1,97,8,97,78,97,76,97,68,97,77,97,62,97,52,97,39,97,13,97,6,97,55,97,33,98,34,98,19,100,62,100,30,100,42,100,45,100,61,100,44,100,15,100,28,100,20,100,13,100,54,100,22,100,23,100,6,100,108,101,159,101,176,101,151,102,137,102,135,102,136,102,150,102,132,102,152,102,141,102,3,103,148,105,109,105,90,105,119,105,96,105,84,105,117,105,48,105,130,105,74,105,104,105,107,105,94,105,83,105,121,105,134,105,93,105,99,105,91,105,71,107,114,107,192,107,191,107,211,107,253,107,162,110,175,110,211,110,182,110,194,110,144,110,157,110,199,110,197,110,165,110,152,110,188,110,186,110,171,110,209,110,150,110,156,110,196,110,212,110,170,110,167,110,180,110,78,113,89,113,105,113,100,113,73,113,103,113,92,113,108,113,102,113,76,113,101,113,94,113,70,113,104,113,86,113,58,114,82,114,55,115,69,115,63,115,62,115,111,116,90,116,85,116,95,116,94,116,65,116,63,116,89,116,91,116,92,116,118,117,120,117,0,118,240,117,1,118,242,117,241,117,250,117,255,117,244,117,243,117,222,118,223,118,91,119,107,119,102,119,94,119,99,119,121,119,106,119,108,119,92,119,101,119,104,119,98,119,238,119,142,120,176,120,151,120,152,120,140,120,137,120,124,120,145,120,147,120,127,120,122,121,127,121,129,121,44,132,189,121,28,122,26,122,32,122,20,122,31,122,30,122,159,122,160,122,119,123,192,123,96,123,110,123,103,123,177,124,179,124,181,124,147,125,121,125,145,125,129,125,143,125,91,125,110,127,105,127,106,127,114,127,169,127,168,127,164,127,86,128,88,128,134,128,132,128,113,129,112,129,120,129,101,129,110,129,115,129,107,129,121,129,122,129,102,129,5,130,71,130,130,132,119,132,61,132,49,132,117,132,102,132,107,132,73,132,108,132,91,132,60,132,53,132,97,132,99,132,105,132,109,132,70,132,94,134,92,134,95,134,249,134,19,135,8,135,7,135,0,135,254,134,251,134,2,135,3,135,6,135,10,135,89,136,223,136,212,136,217,136,220,136,216,136,221,136,225,136,202,136,213,136,210,136,156,137,227,137,107,138,114,138,115,138,102,138,105,138,112,138,135,138,124,138,99,138,160,138,113,138,133,138,109,138,98,138,110,138,108,138,121,138,123,138,62,138,104,138,98,140,138,140,137,140,202,140,199,140,200,140,196,140,178,140,195,140,194,140,197,140,225,141,223,141,232,141,239,141,243,141,250,141,234,141,228,141,230,141,178,142,3,143,9,143,254,142,10,143,159,143,178,143,75,144,74,144,83,144,66,144,84,144,60,144,85,144,80,144,71,144,79,144,78,144,77,144,81,144,62,144,65,144,18,145,23,145,108,145,106,145,105,145,201,145,55,146,87,146,56,146,61,146,64,146,62,146,91,146,75,146,100,146,81,146,52,146,73,146,77,146,69,146,57,146,63,146,90,146,152,149,152,150,148,150,149,150,205,150,203,150,201,150,202,150,247,150,251,150,249,150,246,150,86,151,116,151,118,151,16,152,17,152,19,152,10,152,18,152,12,152,252,152,244,152,253,152,254,152,179,153,177,153,180,153,225,154,233,156,130,158,14,159,19,159,32,159,231,80,238,80,229,80,214,80,237,80,218,80,213,80,207,80,209,80,241,80,206,80,233,80,98,81,243,81,131,82,130,82,49,83,173,83,254,85,0,86,27,86,23,86,253,85,20,86,6,86,9,86,13,86,14,86,247,85,22,86,31,86,8,86,16,86,246,85,24,87,22,87,117,88,126,88,131,88,147,88,138,88,121,88,133,88,125,88,253,88,37,89,34,89,36,89,106,89,105,89,225,90,230,90,233,90,215,90,214,90,216,90,227,90,117,91,222,91,231,91,225,91,229,91,230,91,232,91,226,91,228,91,223,91,13,92,98,92,132,93,135,93,91,94,99,94,85,94,87,94,84,94,211,94,214,94,10,95,70,95,112,95,185,95,71,97,63,97,75,97,119,97,98,97,99,97,95,97,90,97,88,97,117,97,42,98,135,100,88,100,84,100,164,100,120,100,95,100,122,100,81,100,103,100,52,100,109,100,123,100,114,101,161,101,215,101,214,101,162,102,168,102,157,102,156,105,168,105,149,105,193,105,174,105,211,105,203,105,155,105,183,105,187,105,171,105,180,105,208,105,205,105,173,105,204,105,166,105,195,105,163,105,73,107,76,107,51,108,51,111,20,111,254,110,19,111,244,110,41,111,62,111,32,111,44,111,15,111,2,111,34,111,255,110,239,110,6,111,49,111,56,111,50,111,35,111,21,111,43,111,47,111,136,111,42,111,236,110,1,111,242,110,204,110,247,110,148,113,153,113,125,113,138,113,132,113,146,113,62,114,146,114,150,114,68,115,80,115,100,116,99,116,106,116,112,116,109,116,4,117,145,117,39,118,13,118,11,118,9,118,19,118,225,118,227,118,132,119,125,119,127,119,97,119,193,120,159,120,167,120,179,120,169,120,163,120,142,121,143,121,141,121,46,122,49,122,170,122,169,122,237,122,239,122,161,123,149,123,139,123,117,123,151,123,157,123,148,123,143,123,184,123,135,123,132,123,185,124,189,124,190,124,187,125,176,125,156,125,189,125,190,125,160,125,202,125,180,125,178,125,177,125,186,125,162,125,191,125,181,125,184,125,173,125,210,125,199,125,172,125,112,127,224,127,225,127,223,127,94,128,90,128,135,128,80,129,128,129,143,129,136,129,138,129,127,129,130,129,231,129,250,129,7,130,20,130,30,130,75,130,201,132,191,132,198,132,196,132,153,132,158,132,178,132,156,132,203,132,184,132,192,132,211,132,144,132,188,132,209,132,202,132,63,135,28,135,59,135,34,135,37,135,52,135,24,135,85,135,55,135,41,135,243,136,2,137,244,136,249,136,248,136,253,136,232,136,26,137,239,136,166,138,140,138,158,138,163,138,141,138,161,138,147,138,164,138,170,138,165,138,168,138,152,138,145,138,154,138,167,138,106,140,141,140,140,140,211,140,209,140,210,140,107,141,153,141,149,141,252,141,20,143,18,143,21,143,19,143,163,143,96,144,88,144,92,144,99,144,89,144,94,144,98,144,93,144,91,144,25,145,24,145,30,145,117,145,120,145,119,145,116,145,120,146,128,146,133,146,152,146,150,146,123,146,147,146,156,146,168,146,124,146,145,146,161,149,168,149,169,149,163,149,165,149,164,149,153,150,156,150,155,150,204,150,210,150,0,151,124,151,133,151,246,151,23,152,24,152,175,152,177,152,3,153,5,153,12,153,9,153,193,153,175,154,176,154,230,154,65,155,66,155,244,156,246,156,243,156,188,158,59,159,74,159,4,81,0,81,251,80,245,80,249,80,2,81,8,81,9,81,5,81,220,81,135,82,136,82,137,82,141,82,138,82,240,82,178,83,46,86,59,86,57,86,50,86,63,86,52,86,41,86,83,86,78,86,87,86,116,86,54,86,47,86,48,86,128,88,159,88,158,88,179,88,156,88,174,88,169,88,166,88,109,89,9,91,251,90,11,91,245,90,12,91,8,91,238,91,236,91,233,91,235,91,100,92,101,92,157,93,148,93,98,94,95,94,97,94,226,94,218,94,223,94,221,94,227,94,224,94,72,95,113,95,183,95,181,95,118,97,103,97,110,97,93,97,85,97,130,97,124,97,112,97,107,97,126,97,167,97,144,97,171,97,142,97,172,97,154,97,164,97,148,97,174,97,46,98,105,100,111,100,121,100,158,100,178,100,136,100,144,100,176,100,165,100,147,100,149,100,169,100,146,100,174,100,173,100,171,100,154,100,172,100,153,100,162,100,179,100,117,101,119,101,120,101,174,102,171,102,180,102,177,102,35,106,31,106,232,105,1,106,30,106,25,106,253,105,33,106,19,106,10,106,243,105,2,106,5,106,237,105,17,106,80,107,78,107,164,107,197,107,198,107,63,111,124,111,132,111,81,111,102,111,84,111,134,111,109,111,91,111,120,111,110,111,142,111,122,111,112,111,100,111,151,111,88,111,213,110,111,111,96,111,95,111,159,113,172,113,177,113,168,113,86,114,155,114,78,115,87,115,105,116,139,116,131,116,126,116,128,116,127,117,32,118,41,118,31,118,36,118,38,118,33,118,34,118,154,118,186,118,228,118,142,119,135,119,140,119,145,119,139,119,203,120,197,120,186,120,202,120,190,120,213,120,188,120,208,120,63,122,60,122,64,122,61,122,55,122,59,122,175,122,174,122,173,123,177,123,196,123,180,123,198,123,199,123,193,123,160,123,204,123,202,124,224,125,244,125,239,125,251,125,216,125,236,125,221,125,232,125,227,125,218,125,222,125,233,125,158,125,217,125,242,125,249,125,117,127,119,127,175,127,233,127,38,128,155,129,156,129,157,129,160,129,154,129,152,129,23,133,61,133,26,133,238,132,44,133,45,133,19,133,17,133,35,133,33,133,20,133,236,132,37,133,255,132,6,133,130,135,116,135,118,135,96,135,102,135,120,135,104,135,89,135,87,135,76,135,83,135,91,136,93,136,16,137,7,137,18,137,19,137,21,137,10,137,188,138,210,138,199,138,196,138,149,138,203,138,248,138,178,138,201,138,194,138,191,138,176,138,214,138,205,138,182,138,185,138,219,138,76,140,78,140,108,140,224,140,222,140,230,140,228,140,236,140,237,140,226,140,227,140,220,140,234,140,225,140,109,141,159,141,163,141,43,142,16,142,29,142,34,142,15,142,41,142,31,142,33,142,30,142,186,142,29,143,27,143,31,143,41,143,38,143,42,143,28,143,30,143,37,143,105,144,110,144,104,144,109,144,119,144,48,145,45,145,39,145,49,145,135,145,137,145,139,145,131,145,197,146,187,146,183,146,234,146,172,146,228,146,193,146,179,146,188,146,210,146,199,146,240,146,178,146,173,149,177,149,4,151,6,151,7,151,9,151,96,151,141,151,139,151,143,151,33,152,43,152,28,152,179,152,10,153,19,153,18,153,24,153,221,153,208,153,223,153,219,153,209,153,213,153,210,153,217,153,183,154,238,154,239,154,39,155,69,155,68,155,119,155,111,155,6,157,9,157,3,157,169,158,190,158,206,158,168,88,82,159,18,81,24,81,20,81,16,81,21,81,128,81,170,81,221,81,145,82,147,82,243,82,89,86,107,86,121,86,105,86,100,86,120,86,106,86,104,86,101,86,113,86,111,86,108,86,98,86,118,86,193,88,190,88,199,88,197,88,110,89,29,91,52,91,120,91,240,91,14,92,74,95,178,97,145,97,169,97,138,97,205,97,182,97,190,97,202,97,200,97,48,98,197,100,193,100,203,100,187,100,188,100,218,100,196,100,199,100,194,100,205,100,191,100,210,100,212,100,190,100,116,101,198,102,201,102,185,102,196,102,199,102,184,102,61,106,56,106,58,106,89,106,107,106,88,106,57,106,68,106,98,106,97,106,75,106,71,106,53,106,95,106,72,106,89,107,119,107,5,108,194,111,177,111,161,111,195,111,164,111,193,111,167,111,179,111,192,111,185,111,182,111,166,111,160,111,180,111,190,113,201,113,208,113,210,113,200,113,213,113,185,113,206,113,217,113,220,113,195,113,196,113,104,115,156,116,163,116,152,116,159,116,158,116,226,116,12,117,13,117,52,118,56,118,58,118,231,118,229,118,160,119,158,119,159,119,165,119,232,120,218,120,236,120,231,120,166,121,77,122,78,122,70,122,76,122,75,122,186,122,217,123,17,124,201,123,228,123,219,123,225,123,233,123,230,123,213,124,214,124,10,126,17,126,8,126,27,126,35,126,30,126,29,126,9,126,16,126,121,127,178,127,240,127,241,127,238,127,40,128,179,129,169,129,168,129,251,129,8,130,88,130,89,130,74,133,89,133,72,133,104,133,105,133,67,133,73,133,109,133,106,133,94,133,131,135,159,135,158,135,162,135,141,135,97,136,42,137,50,137,37,137,43,137,33,137,170,137,166,137,230,138,250,138,235,138,241,138,0,139,220,138,231,138,238,138,254,138,1,139,2,139,247,138,237,138,243,138,246,138,252,138,107,140,109,140,147,140,244,140,68,142,49,142,52,142,66,142,57,142,53,142,59,143,47,143,56,143,51,143,168,143,166,143,117,144,116,144,120,144,114,144,124,144,122,144,52,145,146,145,32,147,54,147,248,146,51,147,47,147,34,147,252,146,43,147,4,147,26,147,16,147,38,147,33,147,21,147,46,147,25,147,187,149,167,150,168,150,170,150,213,150,14,151,17,151,22,151,13,151,19,151,15,151,91,151,92,151,102,151,152,151,48,152,56,152,59,152,55,152,45,152,57,152,36,152,16,153,40,153,30,153,27,153,33,153,26,153,237,153,226,153,241,153,184,154,188,154,251,154,237,154,40,155,145,155,21,157,35,157,38,157,40,157,18,157,27,157,216,158,212,158,141,159,156,159,42,81,31,81,33,81,50,81,245,82,142,86,128,86,144,86,133,86,135,86,143,86,213,88,211,88,209,88,206,88,48,91,42,91,36,91,122,91,55,92,104,92,188,93,186,93,189,93,184,93,107,94,76,95,189,95,201,97,194,97,199,97,230,97,203,97,50,98,52,98,206,100,202,100,216,100,224,100,240,100,230,100,236,100,241,100,226,100,237,100,130,101,131,101,217,102,214,102,128,106,148,106,132,106,162,106,156,106,219,106,163,106,126,106,151,106,144,106,160,106,92,107,174,107,218,107,8,108,216,111,241,111,223,111,224,111,219,111,228,111,235,111,239,111,128,111,236,111,225,111,233,111,213,111,238,111,240,111,231,113,223,113,238,113,230,113,229,113,237,113,236,113,244,113,224,113,53,114,70,114,112,115,114,115,169,116,176,116,166,116,168,116,70,118,66,118,76,118,234,118,179,119,170,119,176,119,172,119,167,119,173,119,239,119,247,120,250,120,244,120,239,120,1,121,167,121,170,121,87,122,191,122,7,124,13,124,254,123,247,123,12,124,224,123,224,124,220,124,222,124,226,124,223,124,217,124,221,124,46,126,62,126,70,126,55,126,50,126,67,126,43,126,61,126,49,126,69,126,65,126,52,126,57,126,72,126,53,126,63,126,47,126,68,127,243,127,252,127,113,128,114,128,112,128,111,128,115,128,198,129,195,129,186,129,194,129,192,129,191,129,189,129,201,129,190,129,232,129,9,130,113,130,170,133,132,133,126,133,156,133,145,133,148,133,175,133,155,133,135,133,168,133,138,133,103,134,192,135,209,135,179,135,210,135,198,135,171,135,187,135,186,135,200,135,203,135,59,137,54,137,68,137,56,137,61,137,172,137,14,139,23,139,25,139,27,139,10,139,32,139,29,139,4,139,16,139,65,140,63,140,115,140,250,140,253,140,252,140,248,140,251,140,168,141,73,142,75,142,72,142,74,142,68,143,62,143,66,143,69,143,63,143,127,144,125,144,132,144,129,144,130,144,128,144,57,145,163,145,158,145,156,145,77,147,130,147,40,147,117,147,74,147,101,147,75,147,24,147,126,147,108,147,91,147,112,147,90,147,84,147,202,149,203,149,204,149,200,149,198,149,177,150,184,150,214,150,28,151,30,151,160,151,211,151,70,152,182,152,53,153,1,154,255,153,174,155,171,155,170,155,173,155,59,157,63,157,139,158,207,158,222,158,220,158,221,158,219,158,62,159,75,159,226,83,149,86,174,86,217,88,216,88,56,91,93,95,227,97,51,98,244,100,242,100,254,100,6,101,250,100,251,100,247,100,183,101,220,102,38,103,179,106,172,106,195,106,187,106,184,106,194,106,174,106,175,106,95,107,120,107,175,107,9,112,11,112,254,111,6,112,250,111,17,112,15,112,251,113,252,113,254,113,248,113,119,115,117,115,167,116,191,116,21,117,86,118,88,118,82,118,189,119,191,119,187,119,188,119,14,121,174,121,97,122,98,122,96,122,196,122,197,122,43,124,39,124,42,124,30,124,35,124,33,124,231,124,84,126,85,126,94,126,90,126,97,126,82,126,89,126,72,127,249,127,251,127,119,128,118,128,205,129,207,129,10,130,207,133,169,133,205,133,208,133,201,133,176,133,186,133,185,133,166,133,239,135,236,135,242,135,224,135,134,137,178,137,244,137,40,139,57,139,44,139,43,139,80,140,5,141,89,142,99,142,102,142,100,142,95,142,85,142,192,142,73,143,77,143,135,144,131,144,136,144,171,145,172,145,208,145,148,147,138,147,150,147,162,147,179,147,174,147,172,147,176,147,152,147,154,147,151,147,212,149,214,149,208,149,213,149,226,150,220,150,217,150,219,150,222,150,36,151,163,151,166,151,173,151,249,151,77,152,79,152,76,152,78,152,83,152,186,152,62,153,63,153,61,153,46,153,165,153,14,154,193,154,3,155,6,155,79,155,78,155,77,155,202,155,201,155,253,155,200,155,192,155,81,157,93,157,96,157,224,158,21,159,44,159,51,81,165,86,222,88,223,88,226,88,245,91,144,159,236,94,242,97,247,97,246,97,245,97,0,101,15,101,224,102,221,102,229,106,221,106,218,106,211,106,27,112,31,112,40,112,26,112,29,112,21,112,24,112,6,114,13,114,88,114,162,114,120,115,122,115,189,116,202,116,227,116,135,117,134,117,95,118,97,118,199,119,25,121,177,121,107,122,105,122,62,124,63,124,56,124,61,124,55,124,64,124,107,126,109,126,121,126,105,126,106,126,133,127,115,126,182,127,185,127,184,127,216,129,233,133,221,133,234,133,213,133,228,133,229,133,247,133,251,135,5,136,13,136,249,135,254,135,96,137,95,137,86,137,94,137,65,139,92,139,88,139,73,139,90,139,78,139,79,139,70,139,89,139,8,141,10,141,124,142,114,142,135,142,118,142,108,142,122,142,116,142,84,143,78,143,173,143,138,144,139,144,177,145,174,145,225,147,209,147,223,147,195,147,200,147,220,147,221,147,214,147,226,147,205,147,216,147,228,147,215,147,232,147,220,149,180,150,227,150,42,151,39,151,97,151,220,151,251,151,94,152,88,152,91,152,188,152,69,153,73,153,22,154,25,154,13,155,232,155,231,155,214,155,219,155,137,157,97,157,114,157,106,157,108,157,146,158,151,158,147,158,180,158,248,82,168,86,183,86,182,86,180,86,188,86,228,88,64,91,67,91,125,91,246,91,201,93,248,97,250,97,24,101,20,101,25,101,230,102,39,103,236,106,62,112,48,112,50,112,16,114,123,115,207,116,98,118,101,118,38,121,42,121,44,121,43,121,199,122,246,122,76,124,67,124,77,124,239,124,240,124,174,143,125,126,124,126,130,126,76,127,0,128,218,129,102,130,251,133,249,133,17,134,250,133,6,134,11,134,7,134,10,134,20,136,21,136,100,137,186,137,248,137,112,139,108,139,102,139,111,139,95,139,107,139,15,141,13,141,137,142,129,142,133,142,130,142,180,145,203,145,24,148,3,148,253,147,225,149,48,151,196,152,82,153,81,153,168,153,43,154,48,154,55,154,53,154,19,156,13,156,121,158,181,158,232,158,47,159,95,159,99,159,97,159,55,81,56,81,193,86,192,86,194,86,20,89,108,92,205,93,252,97,254,97,29,101,28,101,149,101,233,102,251,106,4,107,250,106,178,107,76,112,27,114,167,114,214,116,212,116,105,118,211,119,80,124,143,126,140,126,188,127,23,134,45,134,26,134,35,136,34,136,33,136,31,136,106,137,108,137,189,137,116,139,119,139,125,139,19,141,138,142,141,142,139,142,95,143,175,143,186,145,46,148,51,148,53,148,58,148,56,148,50,148,43,148,226,149,56,151,57,151,50,151,255,151,103,152,101,152,87,153,69,154,67,154,64,154,62,154,207,154,84,155,81,155,45,156,37,156,175,157,180,157,194,157,184,157,157,158,239,158,25,159,92,159,102,159,103,159,60,81,59,81,200,86,202,86,201,86,127,91,212,93,210,93,78,95,255,97,36,101,10,107,97,107,81,112,88,112,128,115,228,116,138,117,110,118,108,118,179,121,96,124,95,124,126,128,125,128,223,129,114,137,111,137,252,137,128,139,22,141,23,141,145,142,147,142,97,143,72,145,68,148,81,148,82,148,61,151,62,151,195,151,193,151,107,152,85,153,85,154,77,154,210,154,26,155,73,156,49,156,62,156,59,156,211,157,215,157,52,159,108,159,106,159,148,159,204,86,214,93,0,98,35,101,43,101,42,101,236,102,16,107,218,116,202,122,100,124,99,124,101,124,147,126,150,126,148,126,226,129,56,134,63,134,49,136,138,139,144,144,143,144,99,148,96,148,100,148,104,151,111,152,92,153,90,154,91,154,87,154,211,154,212,154,209,154,84,156,87,156,86,156,229,157,159,158,244,158,209,86,233,88,44,101,94,112,113,118,114,118,215,119,80,127,136,127,54,136,57,136,98,136,147,139,146,139,150,139,119,130,27,141,192,145,106,148,66,151,72,151,68,151,198,151,112,152,95,154,34,155,88,155,95,156,249,157,250,157,124,158,125,158,7,159,119,159,114,159,243,94,22,107,99,112,108,124,110,124,59,136,192,137,161,142,193,145,114,148,112,148,113,152,94,153,214,154,35,155,204,158,100,112,218,119,154,139,119,148,201,151,98,154,101,154,156,126,156,139,170,142,197,145,125,148,126,148,124,148,119,156,120,156,247,158,84,140,127,148,26,158,40,114,106,154,49,155,27,158,30,158,114,124,66,78,92,78,245,81,26,83,130,83,7,78,12,78,71,78,141,78,215,86,110,92,115,95,15,78,135,81,14,78,46,78,147,78,194,78,201,78,200,78,152,81,252,82,108,83,185,83,32,87,3,89,44,89,16,92,255,93,225,101,179,107,204,107,20,108,63,114,49,78,60,78,232,78,220,78,233,78,225,78,221,78,218,78,12,82,28,83,76,83,34,87,35,87,23,89,47,89,129,91,132,91,18,92,59,92,116,92,115,92,4,94,128,94,130,94,201,95,9,98,80,98,21,108,54,108,67,108,63,108,59,108,174,114,176,114,138,115,184,121,138,128,30,150,14,79,24,79,44,79,245,78,20,79,241,78,0,79,247,78,8,79,29,79,2,79,5,79,34,79,19,79,4,79,244,78,18,79,177,81,19,82,9,82,16,82,166,82,34,83,31,83,77,83,138,83,7,84,225,86,223,86,46,87,42,87,52,87,60,89,128,89,124,89,133,89,123,89,126,89,119,89,127,89,86,91,21,92,37,92,124,92,122,92,123,92,126,92,223,93,117,94,132,94,2,95,26,95,116,95,213,95,212,95,207,95,92,98,94,98,100,98,97,98,102,98,98,98,89,98,96,98,90,98,101,98,239,101,238,101,62,103,57,103,56,103,59,103,58,103,63,103,60,103,51,103,24,108,70,108,82,108,92,108,79,108,74,108,84,108,75,108,76,108,113,112,94,114,180,114,181,114,142,115,42,117,127,118,117,122,81,127,120,130,124,130,128,130,125,130,127,130,77,134,126,137,153,144,151,144,152,144,155,144,148,144,34,150,36,150,32,150,35,150,86,79,59,79,98,79,73,79,83,79,100,79,62,79,103,79,82,79,95,79,65,79,88,79,45,79,51,79,63,79,97,79,143,81,185,81,28,82,30,82,33,82,173,82,174,82,9,83,99,83,114,83,142,83,143,83,48,84,55,84,42,84,84,84,69,84,25,84,28,84,37,84,24,84,61,84,79,84,65,84,40,84,36,84,71,84,238,86,231,86,229,86,65,87,69,87,76,87,73,87,75,87,82,87,6,89,64,89,166,89,152,89,160,89,151,89,142,89,162,89,144,89,143,89,167,89,161,89,142,91,146,91,40,92,42,92,141,92,143,92,136,92,139,92,137,92,146,92,138,92,134,92,147,92,149,92,224,93,10,94,14,94,139,94,137,94,140,94,136,94,141,94,5,95,29,95,120,95,118,95,210,95,209,95,208,95,237,95,232,95,238,95,243,95,225,95,228,95,227,95,250,95,239,95,247,95,251,95,0,96,244,95,58,98,131,98,140,98,142,98,143,98,148,98,135,98,113,98,123,98,122,98,112,98,129,98,136,98,119,98,125,98,114,98,116,98,55,101,240,101,244,101,243,101,242,101,245,101,69,103,71,103,89,103,85,103,76,103,72,103,93,103,77,103,90,103,75,103,208,107,25,108,26,108,120,108,103,108,107,108,132,108,139,108,143,108,113,108,111,108,105,108,154,108,109,108,135,108,149,108,156,108,102,108,115,108,101,108,123,108,142,108,116,112,122,112,99,114,191,114,189,114,195,114,198,114,193,114,186,114,197,114,149,115,151,115,147,115,148,115,146,115,58,117,57,117,148,117,149,117,129,118,61,121,52,128,149,128,153,128,144,128,146,128,156,128,144,130,143,130,133,130,142,130,145,130,147,130,138,130,131,130,132,130,120,140,201,143,191,143,159,144,161,144,165,144,158,144,167,144,160,144,48,150,40,150,47,150,45,150,51,78,152,79,124,79,133,79,125,79,128,79,135,79,118,79,116,79,137,79,132,79,119,79,76,79,151,79,106,79,154,79,121,79,129,79,120,79,144,79,156,79,148,79,158,79,146,79,130,79,149,79,107,79,110,79,158,81,188,81,190,81,53,82,50,82,51,82,70,82,49,82,188,82,10,83,11,83,60,83,146,83,148,83,135,84,127,84,129,84,145,84,130,84,136,84,107,84,122,84,126,84,101,84,108,84,116,84,102,84,141,84,111,84,97,84,96,84,152,84,99,84,103,84,100,84,247,86,249,86,111,87,114,87,109,87,107,87,113,87,112,87,118,87,128,87,117,87,123,87,115,87,116,87,98,87,104,87,125,87,12,89,69,89,181,89,186,89,207,89,206,89,178,89,204,89,193,89,182,89,188,89,195,89,214,89,177,89,189,89,192,89,200,89,180,89,199,89,98,91,101,91,147,91,149,91,68,92,71,92,174,92,164,92,160,92,181,92,175,92,168,92,172,92,159,92,163,92,173,92,162,92,170,92,167,92,157,92,165,92,182,92,176,92,166,92,23,94,20,94,25,94,40,95,34,95,35,95,36,95,84,95,130,95,126,95,125,95,222,95,229,95,45,96,38,96,25,96,50,96,11,96,52,96,10,96,23,96,51,96,26,96,30,96,44,96,34,96,13,96,16,96,46,96,19,96,17,96,12,96,9,96,28,96,20,98,61,98,173,98,180,98,209,98,190,98,170,98,182,98,202,98,174,98,179,98,175,98,187,98,169,98,176,98,184,98,61,101,168,101,187,101,9,102,252,101,4,102,18,102,8,102,251,101,3,102,11,102,13,102,5,102,253,101,17,102,16,102,246,102,10,103,133,103,108,103,142,103,146,103,118,103,123,103,152,103,134,103,132,103,116,103,141,103,140,103,122,103,159,103,145,103,153,103,131,103,125,103,129,103,120,103,121,103,148,103,37,107,128,107,126,107,222,107,29,108,147,108,236,108,235,108,238,108,217,108,182,108,212,108,173,108,231,108,183,108,208,108,194,108,186,108,195,108,198,108,237,108,242,108,210,108,221,108,180,108,138,108,157,108,128,108,222,108,192,108,48,109,205,108,199,108,176,108,249,108,207,108,233,108,209,108,148,112,152,112,133,112,147,112,134,112,132,112,145,112,150,112,130,112,154,112,131,112,106,114,214,114,203,114,216,114,201,114,220,114,210,114,212,114,218,114,204,114,209,114,164,115,161,115,173,115,166,115,162,115,160,115,172,115,157,115,221,116,232,116,63,117,64,117,62,117,140,117,152,117,175,118,243,118,241,118,240,118,245,118,248,119,252,119,249,119,251,119,250,119,247,119,66,121,63,121,197,121,120,122,123,122,251,122,117,124,253,124,53,128,143,128,174,128,163,128,184,128,181,128,173,128,32,130,160,130,192,130,171,130,154,130,152,130,155,130,181,130,167,130,174,130,188,130,158,130,186,130,180,130,168,130,161,130,169,130,194,130,164,130,195,130,182,130,162,130,112,134,111,134,109,134,110,134,86,140,210,143,203,143,211,143,205,143,214,143,213,143,215,143,178,144,180,144,175,144,179,144,176,144,57,150,61,150,60,150,58,150,67,150,205,79,197,79,211,79,178,79,201,79,203,79,193,79,212,79,220,79,217,79,187,79,179,79,219,79,199,79,214,79,186,79,192,79,185,79,236,79,68,82,73,82,192,82,194,82,61,83,124,83,151,83,150,83,153,83,152,83,186,84,161,84,173,84,165,84,207,84,195,84,13,131,183,84,174,84,214,84,182,84,197,84,198,84,160,84,112,84,188,84,162,84,190,84,114,84,222,84,176,84,181,87,158,87,159,87,164,87,140,87,151,87,157,87,155,87,148,87,152,87,143,87,153,87,165,87,154,87,149,87,244,88,13,89,83,89,225,89,222,89,238,89,0,90,241,89,221,89,250,89,253,89,252,89,246,89,228,89,242,89,247,89,219,89,233,89,243,89,245,89,224,89,254,89,244,89,237,89,168,91,76,92,208,92,216,92,204,92,215,92,203,92,219,92,222,92,218,92,201,92,199,92,202,92,214,92,211,92,212,92,207,92,200,92,198,92,206,92,223,92,248,92,249,93,33,94,34,94,35,94,32,94,36,94,176,94,164,94,162,94,155,94,163,94,165,94,7,95,46,95,86,95,134,95,55,96,57,96,84,96,114,96,94,96,69,96,83,96,71,96,73,96,91,96,76,96,64,96,66,96,95,96,36,96,68,96,88,96,102,96,110,96,66,98,67,98,207,98,13,99,11,99,245,98,14,99,3,99,235,98,249,98,15,99,12,99,248,98,246,98,0,99,19,99,20,99,250,98,21,99,251,98,240,98,65,101,67,101,170,101,191,101,54,102,33,102,50,102,53,102,28,102,38,102,34,102,51,102,43,102,58,102,29,102,52,102,57,102,46,102,15,103,16,103,193,103,242,103,200,103,186,103,220,103,187,103,248,103,216,103,192,103,183,103,197,103,235,103,228,103,223,103,181,103,205,103,179,103,247,103,246,103,238,103,227,103,194,103,185,103,206,103,231,103,240,103,178,103,252,103,198,103,237,103,204,103,174,103,230,103,219,103,250,103,201,103,202,103,195,103,234,103,203,103,40,107,130,107,132,107,182,107,214,107,216,107,224,107,32,108,33,108,40,109,52,109,45,109,31,109,60,109,63,109,18,109,10,109,218,108,51,109,4,109,25,109,58,109,26,109,17,109,0,109,29,109,66,109,1,109,24,109,55,109,3,109,15,109,64,109,7,109,32,109,44,109,8,109,34,109,9,109,16,109,183,112,159,112,190,112,177,112,176,112,161,112,180,112,181,112,169,112,65,114,73,114,74,114,108,114,112,114,115,114,110,114,202,114,228,114,232,114,235,114,223,114,234,114,230,114,227,114,133,115,204,115,194,115,200,115,197,115,185,115,182,115,181,115,180,115,235,115,191,115,199,115,190,115,195,115,198,115,184,115,203,115,236,116,238,116,46,117,71,117,72,117,167,117,170,117,121,118,196,118,8,119,3,119,4,119,5,119,10,119,247,118,251,118,250,118,231,119,232,119,6,120,17,120,18,120,5,120,16,120,15,120,14,120,9,120,3,120,19,120,74,121,76,121,75,121,69,121,68,121,213,121,205,121,207,121,214,121,206,121,128,122,126,122,209,122,0,123,1,123,122,124,120,124,121,124,127,124,128,124,129,124,3,125,8,125,1,125,88,127,145,127,141,127,190,127,7,128,14,128,15,128,20,128,55,128,216,128,199,128,224,128,209,128,200,128,194,128,208,128,197,128,227,128,217,128,220,128,202,128,213,128,201,128,207,128,215,128,230,128,205,128,255,129,33,130,148,130,217,130,254,130,249,130,7,131,232,130,0,131,213,130,58,131,235,130,214,130,244,130,236,130,225,130,242,130,245,130,12,131,251,130,246,130,240,130,234,130,228,130,224,130,250,130,243,130,237,130,119,134,116,134,124,134,115,134,65,136,78,136,103,136,106,136,105,136,211,137,4,138,7,138,114,141,227,143,225,143,238,143,224,143,241,144,189,144,191,144,213,144,197,144,190,144,199,144,203,144,200,144,212,145,211,145,84,150,79,150,81,150,83,150,74,150,78,150,30,80,5,80,7,80,19,80,34,80,48,80,27,80,245,79,244,79,51,80,55,80,44,80,246,79,247,79,23,80,28,80,32,80,39,80,53,80,47,80,49,80,14,80,90,81,148,81,147,81,202,81,196,81,197,81,200,81,206,81,97,82,90,82,82,82,94,82,95,82,85,82,98,82,205,82,14,83,158,83,38,85,226,84,23,85,18,85,231,84,243,84,228,84,26,85,255,84,4,85,8,85,235,84,17,85,5,85,241,84,10,85,251,84,247,84,248,84,224,84,14,85,3,85,11,85,1,87,2,87,204,87,50,88,213,87,210,87,186,87,198,87,189,87,188,87,184,87,182,87,191,87,199,87,208,87,185,87,193,87,14,89,74,89,25,90,22,90,45,90,46,90,21,90,15,90,23,90,10,90,30,90,51,90,108,91,167,91,173,91,172,91,3,92,86,92,84,92,236,92,255,92,238,92,241,92,247,92,0,93,249,92,41,94,40,94,168,94,174,94,170,94,172,94,51,95,48,95,103,95,93,96,90,96,103,96,65,96,162,96,136,96,128,96,146,96,129,96,157,96,131,96,149,96,155,96,151,96,135,96,156,96,142,96,25,98,70,98,242,98,16,99,86,99,44,99,68,99,69,99,54,99,67,99,228,99,57,99,75,99,74,99,60,99,41,99,65,99,52,99,88,99,84,99,89,99,45,99,71,99,51,99,90,99,81,99,56,99,87,99,64,99,72,99,74,101,70,101,198,101,195,101,196,101,194,101,74,102,95,102,71,102,81,102,18,103,19,103,31,104,26,104,73,104,50,104,51,104,59,104,75,104,79,104,22,104,49,104,28,104,53,104,43,104,45,104,47,104,78,104,68,104,52,104,29,104,18,104,20,104,38,104,40,104,46,104,77,104,58,104,37,104,32,104,44,107,47,107,45,107,49,107,52,107,109,107,130,128,136,107,230,107,228,107,232,107,227,107,226,107,231,107,37,108,122,109,99,109,100,109,118,109,13,109,97,109,146,109,88,109,98,109,109,109,111,109,145,109,141,109,239,109,127,109,134,109,94,109,103,109,96,109,151,109,112,109,124,109,95,109,130,109,152,109,47,109,104,109,139,109,126,109,128,109,132,109,22,109,131,109,123,109,125,109,117,109,144,109,220,112,211,112,209,112,221,112,203,112,57,127,226,112,215,112,210,112,222,112,224,112,212,112,205,112,197,112,198,112,199,112,218,112,206,112,225,112,66,114,120,114,119,114,118,114,0,115,250,114,244,114,254,114,246,114,243,114,251,114,1,115,211,115,217,115,229,115,214,115,188,115,231,115,227,115,233,115,220,115,210,115,219,115,212,115,221,115,218,115,215,115,216,115,232,115,222,116,223,116,244,116,245,116,33,117,91,117,95,117,176,117,193,117,187,117,196,117,192,117,191,117,182,117,186,117,138,118,201,118,29,119,27,119,16,119,19,119,18,119,35,119,17,119,21,119,25,119,26,119,34,119,39,119,35,120,44,120,34,120,53,120,47,120,40,120,46,120,43,120,33,120,41,120,51,120,42,120,49,120,84,121,91,121,79,121,92,121,83,121,82,121,81,121,235,121,236,121,224,121,238,121,237,121,234,121,220,121,222,121,221,121,134,122,137,122,133,122,139,122,140,122,138,122,135,122,216,122,16,123,4,123,19,123,5,123,15,123,8,123,10,123,14,123,9,123,18,123,132,124,145,124,138,124,140,124,136,124,141,124,133,124,30,125,29,125,17,125,14,125,24,125,22,125,19,125,31,125,18,125,15,125,12,125,92,127,97,127,94,127,96,127,93,127,91,127,150,127,146,127,195,127,194,127,192,127,22,128,62,128,57,128,250,128,242,128,249,128,245,128,1,129,251,128,0,129,1,130,47,130,37,130,51,131,45,131,68,131,25,131,81,131,37,131,86,131,63,131,65,131,38,131,28,131,34,131,66,131,78,131,27,131,42,131,8,131,60,131,77,131,22,131,36,131,32,131,55,131,47,131,41,131,71,131,69,131,76,131,83,131,30,131,44,131,75,131,39,131,72,131,83,134,82,134,162,134,168,134,150,134,141,134,145,134,158,134,135,134,151,134,134,134,139,134,154,134,133,134,165,134,153,134,161,134,167,134,149,134,152,134,142,134,157,134,144,134,148,134,67,136,68,136,109,136,117,136,118,136,114,136,128,136,113,136,127,136,111,136,131,136,126,136,116,136,124,136,18,138,71,140,87,140,123,140,164,140,163,140,118,141,120,141,181,141,183,141,182,141,209,142,211,142,254,143,245,143,2,144,255,143,251,143,4,144,252,143,246,143,214,144,224,144,217,144,218,144,227,144,223,144,229,144,216,144,219,144,215,144,220,144,228,144,80,145,78,145,79,145,213,145,226,145,218,145,92,150,95,150,188,150,227,152,223,154,47,155,127,78,112,80,106,80,97,80,94,80,96,80,83,80,75,80,93,80,114,80,72,80,77,80,65,80,91,80,74,80,98,80,21,80,69,80,95,80,105,80,107,80,99,80,100,80,70,80,64,80,110,80,115,80,87,80,81,80,208,81,107,82,109,82,108,82,110,82,214,82,211,82,45,83,156,83,117,85,118,85,60,85,77,85,80,85,52,85,42,85,81,85,98,85,54,85,53,85,48,85,82,85,69,85,12,85,50,85,101,85,78,85,57,85,72,85,45,85,59,85,64,85,75,85,10,87,7,87,251,87,20,88,226,87,246,87,220,87,244,87,0,88,237,87,253,87,8,88,248,87,11,88,243,87,207,87,7,88,238,87,227,87,242,87,229,87,236,87,225,87,14,88,252,87,16,88,231,87,1,88,12,88,241,87,233,87,240,87,13,88,4,88,92,89,96,90,88,90,85,90,103,90,94,90,56,90,53,90,109,90,80,90,95,90,101,90,108,90,83,90,100,90,87,90,67,90,93,90,82,90,68,90,91,90,72,90,142,90,62,90,77,90,57,90,76,90,112,90,105,90,71,90,81,90,86,90,66,90,92,90,114,91,110,91,193,91,192,91,89,92,30,93,11,93,29,93,26,93,32,93,12,93,40,93,13,93,38,93,37,93,15,93,48,93,18,93,35,93,31,93,46,93,62,94,52,94,177,94,180,94,185,94,178,94,179,94,54,95,56,95,155,95,150,95,159,95,138,96,144,96,134,96,190,96,176,96,186,96,211,96,212,96,207,96,228,96,217,96,221,96,200,96,177,96,219,96,183,96,202,96,191,96,195,96,205,96,192,96,50,99,101,99,138,99,130,99,125,99,189,99,158,99,173,99,157,99,151,99,171,99,142,99,111,99,135,99,144,99,110,99,175,99,117,99,156,99,109,99,174,99,124,99,164,99,59,99,159,99,120,99,133,99,129,99,145,99,141,99,112,99,83,101,205,101,101,102,97,102,91,102,89,102,92,102,98,102,24,103,121,104,135,104,144,104,156,104,109,104,110,104,174,104,171,104,86,105,111,104,163,104,172,104,169,104,117,104,116,104,178,104,143,104,119,104,146,104,124,104,107,104,114,104,170,104,128,104,113,104,126,104,155,104,150,104,139,104,160,104,137,104,164,104,120,104,123,104,145,104,140,104,138,104,125,104,54,107,51,107,55,107,56,107,145,107,143,107,141,107,142,107,140,107,42,108,192,109,171,109,180,109,179,109,116,110,172,109,233,109,226,109,183,109,246,109,212,109,0,110,200,109,224,109,223,109,214,109,190,109,229,109,220,109,221,109,219,109,244,109,202,109,189,109,237,109,240,109,186,109,213,109,194,109,207,109,201,109,208,109,242,109,211,109,253,109,215,109,205,109,227,109,187,109,250,112,13,113,247,112,23,113,244,112,12,113,240,112,4,113,243,112,16,113,252,112,255,112,6,113,19,113,0,113,248,112,246,112,11,113,2,113,14,113,126,114,123,114,124,114,127,114,29,115,23,115,7,115,17,115,24,115,10,115,8,115,255,114,15,115,30,115,136,115,246,115,248,115,245,115,4,116,1,116,253,115,7,116,0,116,250,115,252,115,255,115,12,116,11,116,244,115,8,116,100,117,99,117,206,117,210,117,207,117,203,117,204,117,209,117,208,117,143,118,137,118,211,118,57,119,47,119,45,119,49,119,50,119,52,119,51,119,61,119,37,119,59,119,53,119,72,120,82,120,73,120,77,120,74,120,76,120,38,120,69,120,80,120,100,121,103,121,105,121,106,121,99,121,107,121,97,121,187,121,250,121,248,121,246,121,247,121,143,122,148,122,144,122,53,123,71,123,52,123,37,123,48,123,34,123,36,123,51,123,24,123,42,123,29,123,49,123,43,123,45,123,47,123,50,123,56,123,26,123,35,123,148,124,152,124,150,124,163,124,53,125,61,125,56,125,54,125,58,125,69,125,44,125,41,125,65,125,71,125,62,125,63,125,74,125,59,125,40,125,99,127,149,127,156,127,157,127,155,127,202,127,203,127,205,127,208,127,209,127,199,127,207,127,201,127,31,128,30,128,27,128,71,128,67,128,72,128,24,129,37,129,25,129,27,129,45,129,31,129,44,129,30,129,33,129,21,129,39,129,29,129,34,129,17,130,56,130,51,130,58,130,52,130,50,130,116,130,144,131,163,131,168,131,141,131,122,131,115,131,164,131,116,131,143,131,129,131,149,131,153,131,117,131,148,131,169,131,125,131,131,131,140,131,157,131,155,131,170,131,139,131,126,131,165,131,175,131,136,131,151,131,176,131,127,131,166,131,135,131,174,131,118,131,154,131,89,134,86,134,191,134,183,134,194,134,193,134,197,134,186,134,176,134,200,134,185,134,179,134,184,134,204,134,180,134,187,134,188,134,195,134,189,134,190,134,82,136,137,136,149,136,168,136,162,136,170,136,154,136,145,136,161,136,159,136,152,136,167,136,153,136,155,136,151,136,164,136,172,136,140,136,147,136,142,136,130,137,214,137,217,137,213,137,48,138,39,138,44,138,30,138,57,140,59,140,92,140,93,140,125,140,165,140,125,141,123,141,121,141,188,141,194,141,185,141,191,141,193,141,216,142,222,142,221,142,220,142,215,142,224,142,225,142,36,144,11,144,17,144,28,144,12,144,33,144,239,144,234,144,240,144,244,144,242,144,243,144,212,144,235,144,236,144,233,144,86,145,88,145,90,145,83,145,85,145,236,145,244,145,241,145,243,145,248,145,228,145,249,145,234,145,235,145,247,145,232,145,238,145,122,149,134,149,136,149,124,150,109,150,107,150,113,150,111,150,191,150,106,151,4,152,229,152,151,153,155,80,149,80,148,80,158,80,139,80,163,80,131,80,140,80,142,80,157,80,104,80,156,80,146,80,130,80,135,80,95,81,212,81,18,83,17,83,164,83,167,83,145,85,168,85,165,85,173,85,119,85,69,86,162,85,147,85,136,85,143,85,181,85,129,85,163,85,146,85,164,85,125,85,140,85,166,85,127,85,149,85,161,85,142,85,12,87,41,88,55,88,25,88,30,88,39,88,35,88,40,88,245,87,72,88,37,88,28,88,27,88,51,88,63,88,54,88,46,88,57,88,56,88,45,88,44,88,59,88,97,89,175,90,148,90,159,90,122,90,162,90,158,90,120,90,166,90,124,90,165,90,172,90,149,90,174,90,55,90,132,90,138,90,151,90,131,90,139,90,169,90,123,90,125,90,140,90,156,90,143,90,147,90,157,90,234,91,205,91,203,91,212,91,209,91,202,91,206,91,12,92,48,92,55,93,67,93,107,93,65,93,75,93,63,93,53,93,81,93,78,93,85,93,51,93,58,93,82,93,61,93,49,93,89,93,66,93,57,93,73,93,56,93,60,93,50,93,54,93,64,93,69,93,68,94,65,94,88,95,166,95,165,95,171,95,201,96,185,96,204,96,226,96,206,96,196,96,20,97,242,96,10,97,22,97,5,97,245,96,19,97,248,96,252,96,254,96,193,96,3,97,24,97,29,97,16,97,255,96,4,97,11,97,74,98,148,99,177,99,176,99,206,99,229,99,232,99,239,99,195,99,157,100,243,99,202,99,224,99,246,99,213,99,242,99,245,99,97,100,223,99,190,99,221,99,220,99,196,99,216,99,211,99,194,99,199,99,204,99,203,99,200,99,240,99,215,99,217,99,50,101,103,101,106,101,100,101,92,101,104,101,101,101,140,101,157,101,158,101,174,101,208,101,210,101,124,102,108,102,123,102,128,102,113,102,121,102,106,102,114,102,1,103,12,105,211,104,4,105,220,104,42,105,236,104,234,104,241,104,15,105,214,104,247,104,235,104,228,104,246,104,19,105,16,105,243,104,225,104,7,105,204,104,8,105,112,105,180,104,17,105,239,104,198,104,20,105,248,104,208,104,253,104,252,104,232,104,11,105,10,105,23,105,206,104,200,104,221,104,222,104,230,104,244,104,209,104,6,105,212,104,233,104,21,105,37,105,199,104,57,107,59,107,63,107,60,107,148,107,151,107,153,107,149,107,189,107,240,107,242,107,243,107,48,108,252,109,70,110,71,110,31,110,73,110,136,110,60,110,61,110,69,110,98,110,43,110,63,110,65,110,93,110,115,110,28,110,51,110,75,110,64,110,81,110,59,110,3,110,46,110,94,110,104,110,92,110,97,110,49,110,40,110,96,110,113,110,107,110,57,110,34,110,48,110,83,110,101,110,39,110,120,110,100,110,119,110,85,110,121,110,82,110,102,110,53,110,54,110,90,110,32,113,30,113,47,113,251,112,46,113,49,113,35,113,37,113,34,113,50,113,31,113,40,113,58,113,27,113,75,114,90,114,136,114,137,114,134,114,133,114,139,114,18,115,11,115,48,115,34,115,49,115,51,115,39,115,50,115,45,115,38,115,35,115,53,115,12,115,46,116,44,116,48,116,43,116,22,116,26,116,33,116,45,116,49,116,36,116,35,116,29,116,41,116,32,116,50,116,251,116,47,117,111,117,108,117,231,117,218,117,225,117,230,117,221,117,223,117,228,117,215,117,149,118,146,118,218,118,70,119,71,119,68,119,77,119,69,119,74,119,78,119,75,119,76,119,222,119,236,119,96,120,100,120,101,120,92,120,109,120,113,120,106,120,110,120,112,120,105,120,104,120,94,120,98,120,116,121,115,121,114,121,112,121,2,122,10,122,3,122,12,122,4,122,153,122,230,122,228,122,74,123,59,123,68,123,72,123,76,123,78,123,64,123,88,123,69,123,162,124,158,124,168,124,161,124,88,125,111,125,99,125,83,125,86,125,103,125,106,125,79,125,109,125,92,125,107,125,82,125,84,125,105,125,81,125,95,125,78,125,62,127,63,127,101,127,102,127,162,127,160,127,161,127,215,127,81,128,79,128,80,128,254,128,212,128,67,129,74,129,82,129,79,129,71,129,61,129,77,129,58,129,230,129,238,129,247,129,248,129,249,129,4,130,60,130,61,130,63,130,117,130,59,131,207,131,249,131,35,132,192,131,232,131,18,132,231,131,228,131,252,131,246,131,16,132,198,131,200,131,235,131,227,131,191,131,1,132,221,131,229,131,216,131,255,131,225,131,203,131,206,131,214,131,245,131,201,131,9,132,15,132,222,131,17,132,6,132,194,131,243,131,213,131,250,131,199,131,209,131,234,131,19,132,195,131,236,131,238,131,196,131,251,131,215,131,226,131,27,132,219,131,254,131,216,134,226,134,230,134,211,134,227,134,218,134,234,134,221,134,235,134,220,134,236,134,233,134,215,134,232,134,209,134,72,136,86,136,85,136,186,136,215,136,185,136,184,136,192,136,190,136,182,136,188,136,183,136,189,136,178,136,1,137,201,136,149,137,152,137,151,137,221,137,218,137,219,137,78,138,77,138,57,138,89,138,64,138,87,138,88,138,68,138,69,138,82,138,72,138,81,138,74,138,76,138,79,138,95,140,129,140,128,140,186,140,190,140,176,140,185,140,181,140,132,141,128,141,137,141,216,141,211,141,205,141,199,141,214,141,220,141,207,141,213,141,217,141,200,141,215,141,197,141,239,142,247,142,250,142,249,142,230,142,238,142,229,142,245,142,231,142,232,142,246,142,235,142,241,142,236,142,244,142,233,142,45,144,52,144,47,144,6,145,44,145,4,145,255,144,252,144,8,145,249,144,251,144,1,145,0,145,7,145,5,145,3,145,97,145,100,145,95,145,98,145,96,145,1,146,10,146,37,146,3,146,26,146,38,146,15,146,12,146,0,146,18,146,255,145,253,145,6,146,4,146,39,146,2,146,28,146,36,146,25,146,23,146,5,146,22,146,123,149,141,149,140,149,144,149,135,150,126,150,136,150,137,150,131,150,128,150,194,150,200,150,195,150,241,150,240,150,108,151,112,151,110,151,7,152,169,152,235,152,230,156,249,158,131,78,132,78,182,78,189,80,191,80,198,80,174,80,196,80,202,80,180,80,200,80,194,80,176,80,193,80,186,80,177,80,203,80,201,80,182,80,184,80,215,81,122,82,120,82,123,82,124,82,195,85,219,85,204,85,208,85,203,85,202,85,221,85,192,85,212,85,196,85,233,85,191,85,210,85,141,85,207,85,213,85,226,85,214,85,200,85,242,85,205,85,217,85,194,85,20,87,83,88,104,88,100,88,79,88,77,88,73,88,111,88,85,88,78,88,93,88,89,88,101,88,91,88,61,88,99,88,113,88,252,88,199,90,196,90,203,90,186,90,184,90,177,90,181,90,176,90,191,90,200,90,187,90,198,90,183,90,192,90,202,90,180,90,182,90,205,90,185,90,144,90,214,91,216,91,217,91,31,92,51,92,113,93,99,93,74,93,101,93,114,93,108,93,94,93,104,93,103,93,98,93,240,93,79,94,78,94,74,94,77,94,75,94,197,94,204,94,198,94,203,94,199,94,64,95,175,95,173,95,247,96,73,97,74,97,43,97,69,97,54,97,50,97,46,97,70,97,47,97,79,97,41,97,64,97,32,98,104,145,35,98,37,98,36,98,197,99,241,99,235,99,16,100,18,100,9,100,32,100,36,100,51,100,67,100,31,100,21,100,24,100,57,100,55,100,34,100,35,100,12,100,38,100,48,100,40,100,65,100,53,100,47,100,10,100,26,100,64,100,37,100,39,100,11,100,231,99,27,100,46,100,33,100,14,100,111,101,146,101,211,101,134,102,140,102,149,102,144,102,139,102,138,102,153,102,148,102,120,102,32,103,102,105,95,105,56,105,78,105,98,105,113,105,63,105,69,105,106,105,57,105,66,105,87,105,89,105,122,105,72,105,73,105,53,105,108,105,51,105,61,105,101,105,240,104,120,105,52,105,105,105,64,105,111,105,68,105,118,105,88,105,65,105,116,105,76,105,59,105,75,105,55,105,92,105,79,105,81,105,50,105,82,105,47,105,123,105,60,105,70,107,69,107,67,107,66,107,72,107,65,107,155,107,251,107,252,107,249,107,247,107,248,107,155,110,214,110,200,110,143,110,192,110,159,110,147,110,148,110,160,110,177,110,185,110,198,110,210,110,189,110,193,110,158,110,201,110,183,110,176,110,205,110,166,110,207,110,178,110,190,110,195,110,220,110,216,110,153,110,146,110,142,110,141,110,164,110,161,110,191,110,179,110,208,110,202,110,151,110,174,110,163,110,71,113,84,113,82,113,99,113,96,113,65,113,93,113,98,113,114,113,120,113,106,113,97,113,66,113,88,113,67,113,75,113,112,113,95,113,80,113,83,113,68,113,77,113,90,113,79,114,141,114,140,114,145,114,144,114,142,114,60,115,66,115,59,115,58,115,64,115,74,115,73,115,68,116,74,116,75,116,82,116,81,116,87,116,64,116,79,116,80,116,78,116,66,116,70,116,77,116,84,116,225,116,255,116,254,116,253,116,29,117,121,117,119,117,131,105,239,117,15,118,3,118,247,117,254,117,252,117,249,117,248,117,16,118,251,117,246,117,237,117,245,117,253,117,153,118,181,118,221,118,85,119,95,119,96,119,82,119,86,119,90,119,105,119,103,119,84,119,89,119,109,119,224,119,135,120,154,120,148,120,143,120,132,120,149,120,133,120,134,120,161,120,131,120,121,120,153,120,128,120,150,120,123,120,124,121,130,121,125,121,121,121,17,122,24,122,25,122,18,122,23,122,21,122,34,122,19,122,27,122,16,122,163,122,162,122,158,122,235,122,102,123,100,123,109,123,116,123,105,123,114,123,101,123,115,123,113,123,112,123,97,123,120,123,118,123,99,123,178,124,180,124,175,124,136,125,134,125,128,125,141,125,127,125,133,125,122,125,142,125,123,125,131,125,124,125,140,125,148,125,132,125,125,125,146,125,109,127,107,127,103,127,104,127,108,127,166,127,165,127,167,127,219,127,220,127,33,128,100,129,96,129,119,129,92,129,105,129,91,129,98,129,114,129,33,103,94,129,118,129,103,129,111,129,68,129,97,129,29,130,73,130,68,130,64,130,66,130,69,130,241,132,63,132,86,132,118,132,121,132,143,132,141,132,101,132,81,132,64,132,134,132,103,132,48,132,77,132,125,132,90,132,89,132,116,132,115,132,93,132,7,133,94,132,55,132,58,132,52,132,122,132,67,132,120,132,50,132,69,132,41,132,217,131,75,132,47,132,66,132,45,132,95,132,112,132,57,132,78,132,76,132,82,132,111,132,197,132,142,132,59,132,71,132,54,132,51,132,104,132,126,132,68,132,43,132,96,132,84,132,110,132,80,132,11,135,4,135,247,134,12,135,250,134,214,134,245,134,77,135,248,134,14,135,9,135,1,135,246,134,13,135,5,135,214,136,203,136,205,136,206,136,222,136,219,136,218,136,204,136,208,136,133,137,155,137,223,137,229,137,228,137,225,137,224,137,226,137,220,137,230,137,118,138,134,138,127,138,97,138,63,138,119,138,130,138,132,138,117,138,131,138,129,138,116,138,122,138,60,140,75,140,74,140,101,140,100,140,102,140,134,140,132,140,133,140,204,140,104,141,105,141,145,141,140,141,142,141,143,141,141,141,147,141,148,141,144,141,146,141,240,141,224,141,236,141,241,141,238,141,208,141,233,141,227,141,226,141,231,141,242,141,235,141,244,141,6,143,255,142,1,143,0,143,5,143,7,143,8,143,2,143,11,143,82,144,63,144,68,144,73,144,61,144,16,145,13,145,15,145,17,145,22,145,20,145,11,145,14,145,110,145,111,145,72,146,82,146,48,146,58,146,102,146,51,146,101,146,94,146,131,146,46,146,74,146,70,146,109,146,108,146,79,146,96,146,103,146,111,146,54,146,97,146,112,146,49,146,84,146,99,146,80,146,114,146,78,146,83,146,76,146,86,146,50,146,159,149,156,149,158,149,155,149,146,150,147,150,145,150,151,150,206,150,250,150,253,150,248,150,245,150,115,151,119,151,120,151,114,151,15,152,13,152,14,152,172,152,246,152,249,152,175,153,178,153,176,153,181,153,173,154,171,154,91,155,234,156,237,156,231,156,128,158,253,158,230,80,212,80,215,80,232,80,243,80,219,80,234,80,221,80,228,80,211,80,236,80,240,80,239,80,227,80,224,80,216,81,128,82,129,82,233,82,235,82,48,83,172,83,39,86,21,86,12,86,18,86,252,85,15,86,28,86,1,86,19,86,2,86,250,85,29,86,4,86,255,85,249,85,137,88,124,88,144,88,152,88,134,88,129,88,127,88,116,88,139,88,122,88,135,88,145,88,142,88,118,88,130,88,136,88,123,88,148,88,143,88,254,88,107,89,220,90,238,90,229,90,213,90,234,90,218,90,237,90,235,90,243,90,226,90,224,90,219,90,236,90,222,90,221,90,217,90,232,90,223,90,119,91,224,91,227,91,99,92,130,93,128,93,125,93,134,93,122,93,129,93,119,93,138,93,137,93,136,93,126,93,124,93,141,93,121,93,127,93,88,94,89,94,83,94,216,94,209,94,215,94,206,94,220,94,213,94,217,94,210,94,212,94,68,95,67,95,111,95,182,95,44,97,40,97,65,97,94,97,113,97,115,97,82,97,83,97,114,97,108,97,128,97,116,97,84,97,122,97,91,97,101,97,59,97,106,97,97,97,86,97,41,98,39,98,43,98,43,100,77,100,91,100,93,100,116,100,118,100,114,100,115,100,125,100,117,100,102,100,166,100,78,100,130,100,94,100,92,100,75,100,83,100,96,100,80,100,127,100,63,100,108,100,107,100,89,100,101,100,119,100,115,101,160,101,161,102,160,102,159,102,5,103,4,103,34,103,177,105,182,105,201,105,160,105,206,105,150,105,176,105,172,105,188,105,145,105,153,105,142,105,167,105,141,105,169,105,190,105,175,105,191,105,196,105,189,105,164,105,212,105,185,105,202,105,154,105,207,105,179,105,147,105,170,105,161,105,158,105,217,105,151,105,144,105,194,105,181,105,165,105,198,105,74,107,77,107,75,107,158,107,159,107,160,107,195,107,196,107,254,107,206,110,245,110,241,110,3,111,37,111,248,110,55,111,251,110,46,111,9,111,78,111,25,111,26,111,39,111,24,111,59,111,18,111,237,110,10,111,54,111,115,111,249,110,238,110,45,111,64,111,48,111,60,111,53,111,235,110,7,111,14,111,67,111,5,111,253,110,246,110,57,111,28,111,252,110,58,111,31,111,13,111,30,111,8,111,33,111,135,113,144,113,137,113,128,113,133,113,130,113,143,113,123,113,134,113,129,113,151,113,68,114,83,114,151,114,149,114,147,114,67,115,77,115,81,115,76,115,98,116,115,116,113,116,117,116,114,116,103,116,110,116,0,117,2,117,3,117,125,117,144,117,22,118,8,118,12,118,21,118,17,118,10,118,20,118,184,118,129,119,124,119,133,119,130,119,110,119,128,119,111,119,126,119,131,119,178,120,170,120,180,120,173,120,168,120,126,120,171,120,158,120,165,120,160,120,172,120,162,120,164,120,152,121,138,121,139,121,150,121,149,121,148,121,147,121,151,121,136,121,146,121,144,121,43,122,74,122,48,122,47,122,40,122,38,122,168,122,171,122,172,122,238,122,136,123,156,123,138,123,145,123,144,123,150,123,141,123,140,123,155,123,142,123,133,123,152,123,132,82,153,123,164,123,130,123,187,124,191,124,188,124,186,124,167,125,183,125,194,125,163,125,170,125,193,125,192,125,197,125,157,125,206,125,196,125,198,125,203,125,204,125,175,125,185,125,150,125,188,125,159,125,166,125,174,125,169,125,161,125,201,125,115,127,226,127,227,127,229,127,222,127,36,128,93,128,92,128,137,129,134,129,131,129,135,129,141,129,140,129,139,129,21,130,151,132,164,132,161,132,159,132,186,132,206,132,194,132,172,132,174,132,171,132,185,132,180,132,193,132,205,132,170,132,154,132,177,132,208,132,157,132,167,132,187,132,162,132,148,132,199,132,204,132,155,132,169,132,175,132,168,132,214,132,152,132,182,132,207,132,160,132,215,132,212,132,210,132,219,132,176,132,145,132,97,134,51,135,35,135,40,135,107,135,64,135,46,135,30,135,33,135,25,135,27,135,67,135,44,135,65,135,62,135,70,135,32,135,50,135,42,135,45,135,60,135,18,135,58,135,49,135,53,135,66,135,38,135,39,135,56,135,36,135,26,135,48,135,17,135,247,136,231,136,241,136,242,136,250,136,254,136,238,136,252,136,246,136,251,136,240,136,236,136,235,136,157,137,161,137,159,137,158,137,233,137,235,137,232,137,171,138,153,138,139,138,146,138,143,138,150,138,61,140,104,140,105,140,213,140,207,140,215,140,150,141,9,142,2,142,255,141,13,142,253,141,10,142,3,142,7,142,6,142,5,142,254,141,0,142,4,142,16,143,17,143,14,143,13,143,35,145,28,145,32,145,34,145,31,145,29,145,26,145,36,145,33,145,27,145,122,145,114,145,121,145,115,145,165,146,164,146,118,146,155,146,122,146,160,146,148,146,170,146,141,146,166,146,154,146,171,146,121,146,151,146,127,146,163,146,238,146,142,146,130,146,149,146,162,146,125,146,136,146,161,146,138,146,134,146,140,146,153,146,167,146,126,146,135,146,169,146,157,146,139,146,45,146,158,150,161,150,255,150,88,151,125,151,122,151,126,151,131,151,128,151,130,151,123,151,132,151,129,151,127,151,206,151,205,151,22,152,173,152,174,152,2,153,0,153,7,153,157,153,156,153,195,153,185,153,187,153,186,153,194,153,189,153,199,153,177,154,227,154,231,154,62,155,63,155,96,155,97,155,95,155,241,156,242,156,245,156,167,158,255,80,3,81,48,81,248,80,6,81,7,81,246,80,254,80,11,81,12,81,253,80,10,81,139,82,140,82,241,82,239,82,72,86,66,86,76,86,53,86,65,86,74,86,73,86,70,86,88,86,90,86,64,86,51,86,61,86,44,86,62,86,56,86,42,86,58,86,26,87,171,88,157,88,177,88,160,88,163,88,175,88,172,88,165,88,161,88,255,88,255,90,244,90,253,90,247,90,246,90,3,91,248,90,2,91,249,90,1,91,7,91,5,91,15,91,103,92,153,93,151,93,159,93,146,93,162,93,147,93,149,93,160,93,156,93,161,93,154,93,158,93,105,94,93,94,96,94,92,94,243,125,219,94,222,94,225,94,73,95,178,95,139,97,131,97,121,97,177,97,176,97,162,97,137,97,155,97,147,97,175,97,173,97,159,97,146,97,170,97,161,97,141,97,102,97,179,97,45,98,110,100,112,100,150,100,160,100,133,100,151,100,156,100,143,100,139,100,138,100,140,100,163,100,159,100,104,100,177,100,152,100,118,101,122,101,121,101,123,101,178,101,179,101,181,102,176,102,169,102,178,102,183,102,170,102,175,102,0,106,6,106,23,106,229,105,248,105,21,106,241,105,228,105,32,106,255,105,236,105,226,105,27,106,29,106,254,105,39,106,242,105,238,105,20,106,247,105,231,105,64,106,8,106,230,105,251,105,13,106,252,105,235,105,9,106,4,106,24,106,37,106,15,106,246,105,38,106,7,106,244,105,22,106,81,107,165,107,163,107,162,107,166,107,1,108,0,108,255,107,2,108,65,111,38,111,126,111,135,111,198,111,146,111,141,111,137,111,140,111,98,111,79,111,133,111,90,111,150,111,118,111,108,111,130,111,85,111,114,111,82,111,80,111,87,111,148,111,147,111,93,111,0,111,97,111,107,111,125,111,103,111,144,111,83,111,139,111,105,111,127,111,149,111,99,111,119,111,106,111,123,111,178,113,175,113,155,113,176,113,160,113,154,113,169,113,181,113,157,113,165,113,158,113,164,113,161,113,170,113,156,113,167,113,179,113,152,114,154,114,88,115,82,115,94,115,95,115,96,115,93,115,91,115,97,115,90,115,89,115,98,115,135,116,137,116,138,116,134,116,129,116,125,116,133,116,136,116,124,116,121,116,8,117,7,117,126,117,37,118,30,118,25,118,29,118,28,118,35,118,26,118,40,118,27,118,156,118,157,118,158,118,155,118,141,119,143,119,137,119,136,119,205,120,187,120,207,120,204,120,209,120,206,120,212,120,200,120,195,120,196,120,201,120,154,121,161,121,160,121,156,121,162,121,155,121,118,107,57,122,178,122,180,122,179,122,183,123,203,123,190,123,172,123,206,123,175,123,185,123,202,123,181,123,197,124,200,124,204,124,203,124,247,125,219,125,234,125,231,125,215,125,225,125,3,126,250,125,230,125,246,125,241,125,240,125,238,125,223,125,118,127,172,127,176,127,173,127,237,127,235,127,234,127,236,127,230,127,232,127,100,128,103,128,163,129,159,129,158,129,149,129,162,129,153,129,151,129,22,130,79,130,83,130,82,130,80,130,78,130,81,130,36,133,59,133,15,133,0,133,41,133,14,133,9,133,13,133,31,133,10,133,39,133,28,133,251,132,43,133,250,132,8,133,12,133,244,132,42,133,242,132,21,133,247,132,235,132,243,132,252,132,18,133,234,132,233,132,22,133,254,132,40,133,29,133,46,133,2,133,253,132,30,133,246,132,49,133,38,133,231,132,232,132,240,132,239,132,249,132,24,133,32,133,48,133,11,133,25,133,47,133,98,134,86,135,99,135,100,135,119,135,225,135,115,135,88,135,84,135,91,135,82,135,97,135,90,135,81,135,94,135,109,135,106,135,80,135,78,135,95,135,93,135,111,135,108,135,122,135,110,135,92,135,101,135,79,135,123,135,117,135,98,135,103,135,105,135,90,136,5,137,12,137,20,137,11,137,23,137,24,137,25,137,6,137,22,137,17,137,14,137,9,137,162,137,164,137,163,137,237,137,240,137,236,137,207,138,198,138,184,138,211,138,209,138,212,138,213,138,187,138,215,138,190,138,192,138,197,138,216,138,195,138,186,138,189,138,217,138,62,140,77,140,143,140,229,140,223,140,217,140,232,140,218,140,221,140,231,140,160,141,156,141,161,141,155,141,32,142,35,142,37,142,36,142,46,142,21,142,27,142,22,142,17,142,25,142,38,142,39,142,20,142,18,142,24,142,19,142,28,142,23,142,26,142,44,143,36,143,24,143,26,143,32,143,35,143,22,143,23,143,115,144,112,144,111,144,103,144,107,144,47,145,43,145,41,145,42,145,50,145,38,145,46,145,133,145,134,145,138,145,129,145,130,145,132,145,128,145,208,146,195,146,196,146,192,146,217,146,182,146,207,146,241,146,223,146,216,146,233,146,215,146,221,146,204,146,239,146,194,146,232,146,202,146,200,146,206,146,230,146,205,146,213,146,201,146,224,146,222,146,231,146,209,146,211,146,181,146,225,146,198,146,180,146,124,149,172,149,171,149,174,149,176,149,164,150,162,150,211,150,5,151,8,151,2,151,90,151,138,151,142,151,136,151,208,151,207,151,30,152,29,152,38,152,41,152,40,152,32,152,27,152,39,152,178,152,8,153,250,152,17,153,20,153,22,153,23,153,21,153,220,153,205,153,207,153,211,153,212,153,206,153,201,153,214,153,216,153,203,153,215,153,204,153,179,154,236,154,235,154,243,154,242,154,241,154,70,155,67,155,103,155,116,155,113,155,102,155,118,155,117,155,112,155,104,155,100,155,108,155,252,156,250,156,253,156,255,156,247,156,7,157,0,157,249,156,251,156,8,157,5,157,4,157,131,158,211,158,15,159,16,159,28,81,19,81,23,81,26,81,17,81,222,81,52,83,225,83,112,86,96,86,110,86,115,86,102,86,99,86,109,86,114,86,94,86,119,86,28,87,27,87,200,88,189,88,201,88,191,88,186,88,194,88,188,88,198,88,23,91,25,91,27,91,33,91,20,91,19,91,16,91,22,91,40,91,26,91,32,91,30,91,239,91,172,93,177,93,169,93,167,93,181,93,176,93,174,93,170,93,168,93,178,93,173,93,175,93,180,93,103,94,104,94,102,94,111,94,233,94,231,94,230,94,232,94,229,94,75,95,188,95,157,97,168,97,150,97,197,97,180,97,198,97,193,97,204,97,186,97,191,97,184,97,140,97,215,100,214,100,208,100,207,100,201,100,189,100,137,100,195,100,219,100,243,100,217,100,51,101,127,101,124,101,162,101,200,102,190,102,192,102,202,102,203,102,207,102,189,102,187,102,186,102,204,102,35,103,52,106,102,106,73,106,103,106,50,106,104,106,62,106,93,106,109,106,118,106,91,106,81,106,40,106,90,106,59,106,63,106,65,106,106,106,100,106,80,106,79,106,84,106,111,106,105,106,96,106,60,106,94,106,86,106,85,106,77,106,78,106,70,106,85,107,84,107,86,107,167,107,170,107,171,107,200,107,199,107,4,108,3,108,6,108,173,111,203,111,163,111,199,111,188,111,206,111,200,111,94,111,196,111,189,111,158,111,202,111,168,111,4,112,165,111,174,111,186,111,172,111,170,111,207,111,191,111,184,111,162,111,201,111,171,111,205,111,175,111,178,111,176,111,197,113,194,113,191,113,184,113,214,113,192,113,193,113,203,113,212,113,202,113,199,113,207,113,189,113,216,113,188,113,198,113,218,113,219,113,157,114,158,114,105,115,102,115,103,115,108,115,101,115,107,115,106,115,127,116,154,116,160,116,148,116,146,116,149,116,161,116,11,117,128,117,47,118,45,118,49,118,61,118,51,118,60,118,53,118,50,118,48,118,187,118,230,118,154,119,157,119,161,119,156,119,155,119,162,119,163,119,149,119,153,119,151,119,221,120,233,120,229,120,234,120,222,120,227,120,219,120,225,120,226,120,237,120,223,120,224,120,164,121,68,122,72,122,71,122,182,122,184,122,181,122,177,122,183,122,222,123,227,123,231,123,221,123,213,123,229,123,218,123,232,123,249,123,212,123,234,123,226,123,220,123,235,123,216,123,223,123,210,124,212,124,215,124,208,124,209,124,18,126,33,126,23,126,12,126,31,126,32,126,19,126,14,126,28,126,21,126,26,126,34,126,11,126,15,126,22,126,13,126,20,126,37,126,36,126,67,127,123,127,124,127,122,127,177,127,239,127,42,128,41,128,108,128,177,129,166,129,174,129,185,129,181,129,171,129,176,129,172,129,180,129,178,129,183,129,167,129,242,129,85,130,86,130,87,130,86,133,69,133,107,133,77,133,83,133,97,133,88,133,64,133,70,133,100,133,65,133,98,133,68,133,81,133,71,133,99,133,62,133,91,133,113,133,78,133,110,133,117,133,85,133,103,133,96,133,140,133,102,133,93,133,84,133,101,133,108,133,99,134,101,134,100,134,155,135,143,135,151,135,147,135,146,135,136,135,129,135,150,135,152,135,121,135,135,135,163,135,133,135,144,135,145,135,157,135,132,135,148,135,156,135,154,135,137,135,30,137,38,137,48,137,45,137,46,137,39,137,49,137,34,137,41,137,35,137,47,137,44,137,31,137,241,137,224,138,226,138,242,138,244,138,245,138,221,138,20,139,228,138,223,138,240,138,200,138,222,138,225,138,232,138,255,138,239,138,251,138,145,140,146,140,144,140,245,140,238,140,241,140,240,140,243,140,108,141,110,141,165,141,167,141,51,142,62,142,56,142,64,142,69,142,54,142,60,142,61,142,65,142,48,142,63,142,189,142,54,143,46,143,53,143,50,143,57,143,55,143,52,143,118,144,121,144,123,144,134,144,250,144,51,145,53,145,54,145,147,145,144,145,145,145,141,145,143,145,39,147,30,147,8,147,31,147,6,147,15,147,122,147,56,147,60,147,27,147,35,147,18,147,1,147,70,147,45,147,14,147,13,147,203,146,29,147,250,146,37,147,19,147,249,146,247,146,52,147,2,147,36,147,255,146,41,147,57,147,53,147,42,147,20,147,12,147,11,147,254,146,9,147,0,147,251,146,22,147,188,149,205,149,190,149,185,149,186,149,182,149,191,149,181,149,189,149,169,150,212,150,11,151,18,151,16,151,153,151,151,151,148,151,240,151,248,151,53,152,47,152,50,152,36,153,31,153,39,153,41,153,158,153,238,153,236,153,229,153,228,153,240,153,227,153,234,153,233,153,231,153,185,154,191,154,180,154,187,154,246,154,250,154,249,154,247,154,51,155,128,155,133,155,135,155,124,155,126,155,123,155,130,155,147,155,146,155,144,155,122,155,149,155,125,155,136,155,37,157,23,157,32,157,30,157,20,157,41,157,29,157,24,157,34,157,16,157,25,157,31,157,136,158,134,158,135,158,174,158,173,158,213,158,214,158,250,158,18,159,61,159,38,81,37,81,34,81,36,81,32,81,41,81,244,82,147,86,140,86,141,86,134,86,132,86,131,86,126,86,130,86,127,86,129,86,214,88,212,88,207,88,210,88,45,91,37,91,50,91,35,91,44,91,39,91,38,91,47,91,46,91,123,91,241,91,242,91,183,93,108,94,106,94,190,95,187,95,195,97,181,97,188,97,231,97,224,97,229,97,228,97,232,97,222,97,239,100,233,100,227,100,235,100,228,100,232,100,129,101,128,101,182,101,218,101,210,102,141,106,150,106,129,106,165,106,137,106,159,106,155,106,161,106,158,106,135,106,147,106,142,106,149,106,131,106,168,106,164,106,145,106,127,106,166,106,154,106,133,106,140,106,146,106,91,107,173,107,9,108,204,111,169,111,244,111,212,111,227,111,220,111,237,111,231,111,230,111,222,111,242,111,221,111,226,111,232,111,225,113,241,113,232,113,242,113,228,113,240,113,226,113,115,115,110,115,111,115,151,116,178,116,171,116,144,116,170,116,173,116,177,116,165,116,175,116,16,117,17,117,18,117,15,117,132,117,67,118,72,118,73,118,71,118,164,118,233,118,181,119,171,119,178,119,183,119,182,119,180,119,177,119,168,119,240,119,243,120,253,120,2,121,251,120,252,120,242,120,5,121,249,120,254,120,4,121,171,121,168,121,92,122,91,122,86,122,88,122,84,122,90,122,190,122,192,122,193,122,5,124,15,124,242,123,0,124,255,123,251,123,14,124,244,123,11,124,243,123,2,124,9,124,3,124,1,124,248,123,253,123,6,124,240,123,241,123,16,124,10,124,232,124,45,126,60,126,66,126,51,126,72,152,56,126,42,126,73,126,64,126,71,126,41,126,76,126,48,126,59,126,54,126,68,126,58,126,69,127,127,127,126,127,125,127,244,127,242,127,44,128,187,129,196,129,204,129,202,129,197,129,199,129,188,129,233,129,91,130,90,130,92,130,131,133,128,133,143,133,167,133,149,133,160,133,139,133,163,133,123,133,164,133,154,133,158,133,119,133,124,133,137,133,161,133,122,133,120,133,87,133,142,133,150,133,134,133,141,133,153,133,157,133,129,133,162,133,130,133,136,133,133,133,121,133,118,133,152,133,144,133,159,133,104,134,190,135,170,135,173,135,197,135,176,135,172,135,185,135,181,135,188,135,174,135,201,135,195,135,194,135,204,135,183,135,175,135,196,135,202,135,180,135,182,135,191,135,184,135,189,135,222,135,178,135,53,137,51,137,60,137,62,137,65,137,82,137,55,137,66,137,173,137,175,137,174,137,242,137,243,137,30,139,24,139,22,139,17,139,5,139,11,139,34,139,15,139,18,139,21,139,7,139,13,139,8,139,6,139,28,139,19,139,26,139,79,140,112,140,114,140,113,140,111,140,149,140,148,140,249,140,111,141,78,142,77,142,83,142,80,142,76,142,71,142,67,143,64,143,133,144,126,144,56,145,154,145,162,145,155,145,153,145,159,145,161,145,157,145,160,145,161,147,131,147,175,147,100,147,86,147,71,147,124,147,88,147,92,147,118,147,73,147,80,147,81,147,96,147,109,147,143,147,76,147,106,147,121,147,87,147,85,147,82,147,79,147,113,147,119,147,123,147,97,147,94,147,99,147,103,147,128,147,78,147,89,147,199,149,192,149,201,149,195,149,197,149,183,149,174,150,176,150,172,150,32,151,31,151,24,151,29,151,25,151,154,151,161,151,156,151,158,151,157,151,213,151,212,151,241,151,65,152,68,152,74,152,73,152,69,152,67,152,37,153,43,153,44,153,42,153,51,153,50,153,47,153,45,153,49,153,48,153,152,153,163,153,161,153,2,154,250,153,244,153,247,153,249,153,248,153,246,153,251,153,253,153,254,153,252,153,3,154,190,154,254,154,253,154,1,155,252,154,72,155,154,155,168,155,158,155,155,155,166,155,161,155,165,155,164,155,134,155,162,155,160,155,175,155,51,157,65,157,103,157,54,157,46,157,47,157,49,157,56,157,48,157,69,157,66,157,67,157,62,157,55,157,64,157,61,157,245,127,45,157,138,158,137,158,141,158,176,158,200,158,218,158,251,158,255,158,36,159,35,159,34,159,84,159,160,159,49,81,45,81,46,81,152,86,156,86,151,86,154,86,157,86,153,86,112,89,60,91,105,92,106,92,192,93,109,94,110,94,216,97,223,97,237,97,238,97,241,97,234,97,240,97,235,97,214,97,233,97,255,100,4,101,253,100,248,100,1,101,3,101,252,100,148,101,219,101,218,102,219,102,216,102,197,106,185,106,189,106,225,106,198,106,186,106,182,106,183,106,199,106,180,106,173,106,94,107,201,107,11,108,7,112,12,112,13,112,1,112,5,112,20,112,14,112,255,111,0,112,251,111,38,112,252,111,247,111,10,112,1,114,255,113,249,113,3,114,253,113,118,115,184,116,192,116,181,116,193,116,190,116,182,116,187,116,194,116,20,117,19,117,92,118,100,118,89,118,80,118,83,118,87,118,90,118,166,118,189,118,236,118,194,119,186,119,255,120,12,121,19,121,20,121,9,121,16,121,18,121,17,121,173,121,172,121,95,122,28,124,41,124,25,124,32,124,31,124,45,124,29,124,38,124,40,124,34,124,37,124,48,124,92,126,80,126,86,126,99,126,88,126,98,126,95,126,81,126,96,126,87,126,83,126,181,127,179,127,247,127,248,127,117,128,209,129,210,129,208,129,95,130,94,130,180,133,198,133,192,133,195,133,194,133,179,133,181,133,189,133,199,133,196,133,191,133,203,133,206,133,200,133,197,133,177,133,182,133,210,133,36,134,184,133,183,133,190,133,105,134,231,135,230,135,226,135,219,135,235,135,234,135,229,135,223,135,243,135,228,135,212,135,220,135,211,135,237,135,216,135,227,135,164,135,215,135,217,135,1,136,244,135,232,135,221,135,83,137,75,137,79,137,76,137,70,137,80,137,81,137,73,137,42,139,39,139,35,139,51,139,48,139,53,139,71,139,47,139,60,139,62,139,49,139,37,139,55,139,38,139,54,139,46,139,36,139,59,139,61,139,58,139,66,140,117,140,153,140,152,140,151,140,254,140,4,141,2,141,0,141,92,142,98,142,96,142,87,142,86,142,94,142,101,142,103,142,91,142,90,142,97,142,93,142,105,142,84,142,70,143,71,143,72,143,75,143,40,145,58,145,59,145,62,145,168,145,165,145,167,145,175,145,170,145,181,147,140,147,146,147,183,147,155,147,157,147,137,147,167,147,142,147,170,147,158,147,166,147,149,147,136,147,153,147,159,147,141,147,177,147,145,147,178,147,164,147,168,147,180,147,163,147,165,147,210,149,211,149,209,149,179,150,215,150,218,150,194,93,223,150,216,150,221,150,35,151,34,151,37,151,172,151,174,151,168,151,171,151,164,151,170,151,162,151,165,151,215,151,217,151,214,151,216,151,250,151,80,152,81,152,82,152,184,152,65,153,60,153,58,153,15,154,11,154,9,154,13,154,4,154,17,154,10,154,5,154,7,154,6,154,192,154,220,154,8,155,4,155,5,155,41,155,53,155,74,155,76,155,75,155,199,155,198,155,195,155,191,155,193,155,181,155,184,155,211,155,182,155,196,155,185,155,189,155,92,157,83,157,79,157,74,157,91,157,75,157,89,157,86,157,76,157,87,157,82,157,84,157,95,157,88,157,90,157,142,158,140,158,223,158,1,159,0,159,22,159,37,159,43,159,42,159,41,159,40,159,76,159,85,159,52,81,53,81,150,82,247,82,180,83,171,86,173,86,166,86,167,86,170,86,172,86,218,88,221,88,219,88,18,89,61,91,62,91,63,91,195,93,112,94,191,95,251,97,7,101,16,101,13,101,9,101,12,101,14,101,132,101,222,101,221,101,222,102,231,106,224,106,204,106,209,106,217,106,203,106,223,106,220,106,208,106,235,106,207,106,205,106,222,106,96,107,176,107,12,108,25,112,39,112,32,112,22,112,43,112,33,112,34,112,35,112,41,112,23,112,36,112,28,112,42,112,12,114,10,114,7,114,2,114,5,114,165,114,166,114,164,114,163,114,161,114,203,116,197,116,183,116,195,116,22,117,96,118,201,119,202,119,196,119,241,119,29,121,27,121,33,121,28,121,23,121,30,121,176,121,103,122,104,122,51,124,60,124,57,124,44,124,59,124,236,124,234,124,118,126,117,126,120,126,112,126,119,126,111,126,122,126,114,126,116,126,104,126,75,127,74,127,131,127,134,127,183,127,253,127,254,127,120,128,215,129,213,129,100,130,97,130,99,130,235,133,241,133,237,133,217,133,225,133,232,133,218,133,215,133,236,133,242,133,248,133,216,133,223,133,227,133,220,133,209,133,240,133,230,133,239,133,222,133,226,133,0,136,250,135,3,136,246,135,247,135,9,136,12,136,11,136,6,136,252,135,8,136,255,135,10,136,2,136,98,137,90,137,91,137,87,137,97,137,92,137,88,137,93,137,89,137,136,137,183,137,182,137,246,137,80,139,72,139,74,139,64,139,83,139,86,139,84,139,75,139,85,139,81,139,66,139,82,139,87,139,67,140,119,140,118,140,154,140,6,141,7,141,9,141,172,141,170,141,173,141,171,141,109,142,120,142,115,142,106,142,111,142,123,142,194,142,82,143,81,143,79,143,80,143,83,143,180,143,64,145,63,145,176,145,173,145,222,147,199,147,207,147,194,147,218,147,208,147,249,147,236,147,204,147,217,147,169,147,230,147,202,147,212,147,238,147,227,147,213,147,196,147,206,147,192,147,210,147,231,147,125,149,218,149,219,149,225,150,41,151,43,151,44,151,40,151,38,151,179,151,183,151,182,151,221,151,222,151,223,151,92,152,89,152,93,152,87,152,191,152,189,152,187,152,190,152,72,153,71,153,67,153,166,153,167,153,26,154,21,154,37,154,29,154,36,154,27,154,34,154,32,154,39,154,35,154,30,154,28,154,20,154,194,154,11,155,10,155,14,155,12,155,55,155,234,155,235,155,224,155,222,155,228,155,230,155,226,155,240,155,212,155,215,155,236,155,220,155,217,155,229,155,213,155,225,155,218,155,119,157,129,157,138,157,132,157,136,157,113,157,128,157,120,157,134,157,139,157,140,157,125,157,107,157,116,157,117,157,112,157,105,157,133,157,115,157,123,157,130,157,111,157,121,157,127,157,135,157,104,157,148,158,145,158,192,158,252,158,45,159,64,159,65,159,77,159,86,159,87,159,88,159,55,83,178,86,181,86,179,86,227,88,69,91,198,93,199,93,238,94,239,94,192,95,193,95,249,97,23,101,22,101,21,101,19,101,223,101,232,102,227,102,228,102,243,106,240,106,234,106,232,106,249,106,241,106,238,106,239,106,60,112,53,112,47,112,55,112,52,112,49,112,66,112,56,112,63,112,58,112,57,112,64,112,59,112,51,112,65,112,19,114,20,114,168,114,125,115,124,115,186,116,171,118,170,118,190,118,237,118,204,119,206,119,207,119,205,119,242,119,37,121,35,121,39,121,40,121,36,121,41,121,178,121,110,122,108,122,109,122,247,122,73,124,72,124,74,124,71,124,69,124,238,124,123,126,126,126,129,126,128,126,186,127,255,127,121,128,219,129,217,129,11,130,104,130,105,130,34,134,255,133,1,134,254,133,27,134,0,134,246,133,4,134,9,134,5,134,12,134,253,133,25,136,16,136,17,136,23,136,19,136,22,136,99,137,102,137,185,137,247,137,96,139,106,139,93,139,104,139,99,139,101,139,103,139,109,139,174,141,134,142,136,142,132,142,89,143,86,143,87,143,85,143,88,143,90,143,141,144,67,145,65,145,183,145,181,145,178,145,179,145,11,148,19,148,251,147,32,148,15,148,20,148,254,147,21,148,16,148,40,148,25,148,13,148,245,147,0,148,247,147,7,148,14,148,22,148,18,148,250,147,9,148,248,147,10,148,255,147,252,147,12,148,246,147,17,148,6,148,222,149,224,149,223,149,46,151,47,151,185,151,187,151,253,151,254,151,96,152,98,152,99,152,95,152,193,152,194,152,80,153,78,153,89,153,76,153,75,153,83,153,50,154,52,154,49,154,44,154,42,154,54,154,41,154,46,154,56,154,45,154,199,154,202,154,198,154,16,155,18,155,17,155,11,156,8,156,247,155,5,156,18,156,248,155,64,156,7,156,14,156,6,156,23,156,20,156,9,156,159,157,153,157,164,157,157,157,146,157,152,157,144,157,155,157,160,157,148,157,156,157,170,157,151,157,161,157,154,157,162,157,168,157,158,157,163,157,191,157,169,157,150,157,166,157,167,157,153,158,155,158,154,158,229,158,228,158,231,158,230,158,48,159,46,159,91,159,96,159,94,159,93,159,89,159,145,159,58,81,57,81,152,82,151,82,195,86,189,86,190,86,72,91,71,91,203,93,207,93,241,94,253,97,27,101,2,107,252,106,3,107,248,106,0,107,67,112,68,112,74,112,72,112,73,112,69,112,70,112,29,114,26,114,25,114,126,115,23,117,106,118,208,119,45,121,49,121,47,121,84,124,83,124,242,124,138,126,135,126,136,126,139,126,134,126,141,126,77,127,187,127,48,128,221,129,24,134,42,134,38,134,31,134,35,134,28,134,25,134,39,134,46,134,33,134,32,134,41,134,30,134,37,134,41,136,29,136,27,136,32,136,36,136,28,136,43,136,74,136,109,137,105,137,110,137,107,137,250,137,121,139,120,139,69,139,122,139,123,139,16,141,20,141,175,141,142,142,140,142,94,143,91,143,93,143,70,145,68,145,69,145,185,145,63,148,59,148,54,148,41,148,61,148,60,148,48,148,57,148,42,148,55,148,44,148,64,148,49,148,229,149,228,149,227,149,53,151,58,151,191,151,225,151,100,152,201,152,198,152,192,152,88,153,86,153,57,154,61,154,70,154,68,154,66,154,65,154,58,154,63,154,205,154,21,155,23,155,24,155,22,155,58,155,82,155,43,156,29,156,28,156,44,156,35,156,40,156,41,156,36,156,33,156,183,157,182,157,188,157,193,157,199,157,202,157,207,157,190,157,197,157,195,157,187,157,181,157,206,157,185,157,186,157,172,157,200,157,177,157,173,157,204,157,179,157,205,157,178,157,122,158,156,158,235,158,238,158,237,158,27,159,24,159,26,159,49,159,78,159,101,159,100,159,146,159,185,78,198,86,197,86,203,86,113,89,75,91,76,91,213,93,209,93,242,94,33,101,32,101,38,101,34,101,11,107,8,107,9,107,13,108,85,112,86,112,87,112,82,112,30,114,31,114,169,114,127,115,216,116,213,116,217,116,215,116,109,118,173,118,53,121,180,121,112,122,113,122,87,124,92,124,89,124,91,124,90,124,244,124,241,124,145,126,79,127,135,127,222,129,107,130,52,134,53,134,51,134,44,134,50,134,54,134,44,136,40,136,38,136,42,136,37,136,113,137,191,137,190,137,251,137,126,139,132,139,130,139,134,139,133,139,127,139,21,141,149,142,148,142,154,142,146,142,144,142,150,142,151,142,96,143,98,143,71,145,76,148,80,148,74,148,75,148,79,148,71,148,69,148,72,148,73,148,70,148,63,151,227,151,106,152,105,152,203,152,84,153,91,153,78,154,83,154,84,154,76,154,79,154,72,154,74,154,73,154,82,154,80,154,208,154,25,155,43,155,59,155,86,155,85,155,70,156,72,156,63,156,68,156,57,156,51,156,65,156,60,156,55,156,52,156,50,156,61,156,54,156,219,157,210,157,222,157,218,157,203,157,208,157,220,157,209,157,223,157,233,157,217,157,216,157,214,157,245,157,213,157,221,157,182,158,240,158,53,159,51,159,50,159,66,159,107,159,149,159,162,159,61,81,153,82,232,88,231,88,114,89,77,91,216,93,47,136,79,95,1,98,3,98,4,98,41,101,37,101,150,101,235,102,17,107,18,107,15,107,202,107,91,112,90,112,34,114,130,115,129,115,131,115,112,118,212,119,103,124,102,124,149,126,108,130,58,134,64,134,57,134,60,134,49,134,59,134,62,134,48,136,50,136,46,136,51,136,118,137,116,137,115,137,254,137,140,139,142,139,139,139,136,139,69,140,25,141,152,142,100,143,99,143,188,145,98,148,85,148,93,148,87,148,94,148,196,151,197,151,0,152,86,154,89,154,30,155,31,155,32,155,82,156,88,156,80,156,74,156,77,156,75,156,85,156,89,156,76,156,78,156,251,157,247,157,239,157,227,157,235,157,248,157,228,157,246,157,225,157,238,157,230,157,242,157,240,157,226,157,236,157,244,157,243,157,232,157,237,157,194,158,208,158,242,158,243,158,6,159,28,159,56,159,55,159,54,159,67,159,79,159,113,159,112,159,110,159,111,159,211,86,205,86,78,91,109,92,45,101,237,102,238,102,19,107,95,112,97,112,93,112,96,112,35,114,219,116,229,116,213,119,56,121,183,121,182,121,106,124,151,126,137,127,109,130,67,134,56,136,55,136,53,136,75,136,148,139,149,139,158,142,159,142,160,142,157,142,190,145,189,145,194,145,107,148,104,148,105,148,229,150,70,151,67,151,71,151,199,151,229,151,94,154,213,154,89,155,99,156,103,156,102,156,98,156,94,156,96,156,2,158,254,157,7,158,3,158,6,158,5,158,0,158,1,158,9,158,255,157,253,157,4,158,160,158,30,159,70,159,116,159,117,159,118,159,212,86,46,101,184,101,24,107,25,107,23,107,26,107,98,112,38,114,170,114,216,119,217,119,57,121,105,124,107,124,246,124,154,126,152,126,155,126,153,126,224,129,225,129,70,134,71,134,72,134,121,137,122,137,124,137,123,137,255,137,152,139,153,139,165,142,164,142,163,142,110,148,109,148,111,148,113,148,115,148,73,151,114,152,95,153,104,156,110,156,109,156,11,158,13,158,16,158,15,158,18,158,17,158,161,158,245,158,9,159,71,159,120,159,123,159,122,159,121,159,30,87,102,112,111,124,60,136,178,141,166,142,195,145,116,148,120,148,118,148,117,148,96,154,116,156,115,156,113,156,117,156,20,158,19,158,246,158,10,159,164,159,104,112,101,112,247,124,106,134,62,136,61,136,63,136,158,139,156,140,169,142,201,142,75,151,115,152,116,152,204,152,97,153,171,153,100,154,102,154,103,154,36,155,21,158,23,158,72,159,7,98,30,107,39,114,76,134,168,142,130,148,128,148,129,148,105,154,104,154,46,155,25,158,41,114,75,134,159,139,131,148,121,156,183,158,117,118,107,154,122,156,29,158,105,112,106,112,164,158,126,159,73,159,152,159,0,0,239,223,29,105,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,39,0,208,253,65,0,39,0,60,0,42,0,63,150,21,149,60,0,42,0,196,85,60,0,42,0,74,85,60,0,42,0,206,84,192,84,9,85,195,87,45,90,40,99,56,107,190,110,243,85,176,146,63,149,111,86,132,147,60,0,42,0,64,85,113,99,145,118,210,81,176,110,10,86,113,101,115,101,154,118,76,118,3,154,60,0,42,0,208,107,57,102,62,90,238,119,60,133,183,142,237,111,249,133,106,139,45,151,68,151,60,0,42,0,126,130,12,79,49,114,57,120,75,120,152,150,204,85,103,88,210,90,27,97,141,120,198,83,167,102,119,116,161,149,254,80,210,88,33,91,211,97,134,133,49,157,221,97,214,102,166,116,50,153,167,118,185,119,164,153,25,121,122,139,64,148,107,156,73,151,60,0,42,0,137,91,146,79,214,92,73,104,40,108,181,94,244,131,25,140,149,90,59,132,74,132,247,117,100,129,76,158,237,132,157,138,140,151,141,151,230,118,243,138,163,153,235,118,106,157,253,151,149,157,60,0,42,0,181,115,125,85,248,150,17,81,60,0,42,0,181,87,250,79,53,85,239,87,245,148,140,150,222,99,111,127,168,146,60,0,42,0,180,114,184,92,9,99,29,109,76,131,72,104,250,128,123,140,19,88,105,90,123,102,151,102,139,140,12,147,199,149,159,155,239,158,60,0,42,0,174,128,175,154,60,0,42,0,108,83,135,92,2,102,59,102,60,0,42,0,138,103,206,118,160,145,60,0,42,0,249,81,234,103,142,104,234,142,10,114,60,0,42,0,86,101,171,83,158,150,247,85,248,85,133,93,210,94,246,110,83,115,28,133,104,144,110,100,172,113,82,115,136,116,221,120,241,127,113,128,175,135,246,127,55,139,56,139,250,127,204,156,214,147,50,156,212,157,7,159,60,0,42,0,157,98,186,130,215,98,132,136,122,149,170,90,188,90,86,137,60,0,42,0,153,92,119,98,115,87,135,87,176,92,178,80,97,89,101,89,103,89,239,90,96,97,156,154,169,150,186,88,180,93,202,97,179,111,217,100,202,147,65,154,60,0,39,0,208,253,66,0,39,0,60,0,42,0,55,78,107,81,200,78,244,93,237,83,82,98,51,103,144,115,63,89,156,92,173,130,199,92,237,103,164,117,245,84,252,93,76,99,6,123,145,124,147,127,134,134,219,145,223,145,93,140,131,156,94,155,60,0,42,0,208,83,174,114,156,98,122,87,173,89,212,98,7,131,166,112,121,118,200,128,221,131,89,138,203,141,247,142,176,152,67,155,162,88,37,159,60,0,42,0,138,98,175,148,0,146,118,151,60,0,42,0,93,87,29,95,56,114,187,87,98,127,25,128,193,141,133,156,140,156,119,127,138,155,135,137,242,119,56,151,233,88,94,112,27,107,60,0,42,0,39,84,38,125,60,0,42,0,0,99,176,99,216,100,60,0,42,0,125,118,60,0,42,0,126,118,112,79,207,103,34,104,109,99,248,116,225,122,168,124,84,125,70,100,250,100,108,137,60,0,42,0,141,94,221,98,37,141,220,98,87,101,8,115,23,122,186,124,173,133,1,141,219,151,60,0,42,0,115,98,61,101,237,115,44,130,129,152,145,101,44,100,146,101,18,152,34,118,251,156,140,135,41,137,77,118,172,143,60,0,42,0,42,150,66,87,133,92,4,102,127,103,72,114,234,116,163,148,132,124,40,130,17,146,66,135,108,155,198,149,60,0,42,0,158,82,74,83,52,79,110,98,98,87,197,89,17,96,204,98,202,126,200,103,218,121,116,110,70,125,97,146,125,151,166,143,227,116,60,0,42,0,129,135,60,0,42,0,166,144,185,87,46,94,96,99,134,104,92,109,171,144,71,94,90,94,13,126,107,94,164,151,60,0,42,0,209,126,129,125,156,105,83,114,128,129,200,154,60,0,42,0,164,115,140,134,141,80,210,104,211,104,36,140,93,88,18,100,22,122,161,132,47,135,197,120,81,149,85,130,23,139,138,147,60,0,42,0,249,82,5,83,104,79,98,91,222,130,185,103,222,128,35,123,114,113,133,159,84,133,18,137,67,137,193,149,89,159,60,0,42,0,135,122,209,90,249,150,132,133,60,0,42,0,157,91,9,96,113,153,221,79,40,158,178,91,228,115,33,88,34,88,172,90,70,132,218,91,249,152,253,152,19,137,194,153,245,156,229,125,7,157,242,140,245,133,243,91,246,91,76,151,60,0,42,0,253,82,165,98,177,98,121,140,181,141,199,148,226,131,171,134,140,136,49,88,75,146,141,156,100,151,178,154,180,102,241,154,99,134,145,155,36,81,211,102,6,114,193,95,100,148,60,0,42,0,66,150,81,83,111,103,195,118,110,104,178,96,249,99,17,105,145,120,78,158,227,133,111,157,60,0,42,0,23,83,115,146,60,0,42,0,29,141,91,91,200,114,157,140,182,144,7,89,1,102,108,114,221,130,204,128,229,144,161,148,251,79,13,80,150,96,253,114,171,136,93,80,121,80,150,104,252,115,1,145,153,80,195,80,235,96,25,113,50,116,240,142,136,143,2,97,154,120,153,121,211,132,253,134,149,114,25,137,150,138,129,151,179,154,41,143,199,146,138,97,210,124,180,151,62,148,60,0,42,0,87,84,4,85,60,0,42,0,84,89,205,108,50,141,31,104,135,114,27,149,27,147,60,0,42,0,44,103,239,130,89,89,90,117,201,127,77,105,60,0,42,0,75,87,76,87,52,80,121,99,115,104,0,110,40,123,41,144,170,100,86,115,61,143,60,0,42,0,59,79,74,121,95,89,41,93,247,126,99,125,141,149,176,80,109,93,237,117,35,86,179,125,60,0,42,0,45,117,60,0,42,0,196,87,242,87,246,131,35,116,43,116,67,126,155,151,60,0,42,0,245,108,248,143,44,144,116,88,15,117,90,149,102,142,240,147,60,0,42,0,252,99,60,0,42,0,68,92,106,80,244,107,60,144,69,105,140,105,77,140,149,135,86,157,190,156,158,147,15,156,60,0,42,0,120,131,59,159,54,91,60,0,42,0,21,83,212,107,54,89,60,103,74,79,33,84,163,89,152,108,149,117,124,95,192,103,213,121,254,79,20,123,131,124,45,130,90,85,70,123,25,145,132,123,91,128,143,140,60,0,42,0,1,94,197,95,213,107,237,149,86,79,82,87,135,94,208,139,178,144,188,89,45,96,54,96,136,103,64,117,65,117,254,130,212,84,242,103,214,107,204,115,170,117,92,131,91,150,217,107,244,114,98,117,19,123,138,124,144,136,203,148,98,90,179,94,93,101,144,104,6,132,30,132,135,149,137,149,27,88,59,95,60,95,10,97,14,97,98,110,149,118,134,121,90,123,86,138,177,140,193,140,81,141,246,85,67,95,215,110,237,110,79,113,249,117,250,117,100,119,119,129,214,132,253,132,12,135,232,136,248,141,77,146,159,149,246,152,99,94,10,95,154,113,89,115,167,120,133,123,134,123,188,125,61,133,42,145,157,153,100,94,119,111,88,115,124,127,69,137,220,153,242,154,193,88,22,91,230,94,230,123,243,123,42,126,156,133,241,137,127,144,133,155,131,101,222,111,194,129,85,142,192,154,112,89,167,116,40,145,206,147,70,153,116,126,94,137,99,137,184,151,224,151,83,155,131,142,132,142,70,154,20,141,52,148,221,157,233,157,10,159,60,0,42,0,185,143,186,143,45,120,62,123,217,99,53,115,22,127,120,113,81,114,2,117,175,123,232,125,89,135,113,115,137,144,125,147,202,156,138,144,173,151,254,155,255,155,105,124,60,0,42,0,44,141,65,98,134,122,62,83,182,140,252,96,57,132,165,120,40,122,10,137,196,124,24,157,202,133,60,0,42,0,94,83,1,95,237,95,131,98,115,108,116,108,196,130,198,145,216,83,197,92,163,115,191,79,9,89,42,102,141,137,167,95,15,127,77,144,158,149,161,143,246,125,81,130,167,143,168,143,169,143,171,143,174,143,175,143,138,139,60,0,42,0,158,112,60,0,42,0,108,112,83,103,7,104,209,152,137,154,223,154,242,109,106,95,11,115,63,129,169,152,130,88,86,94,125,100,238,110,8,133,174,152,160,154,25,106,155,113,152,129,45,118,230,120,86,149,217,152,218,152,38,81,183,152,12,112,232,133,36,139,2,114,213,129,6,141,226,147,110,122,115,149,198,152,199,152,200,152,202,152,67,154,99,148,107,154,60,0,42,0,104,136,74,90,241,136,216,138,62,137,54,147,166,106,60,0,42,0,245,79,212,156,62,156,60,0,42,0,139,97,222,135,214,156,73,156,8,159,76,134,158,159,60,0,42,0,37,82,43,82,135,84,130,131,194,134,182,95,82,137,105,142,60,0,42,0,42,118,95,118,60,0,42,0,70,95,60,0,42,0,67,108,160,144,162,115,15,120,190,91,108,95,185,104,167,80,140,101,21,105,232,110,36,127,223,105,120,116,105,140,211,140,212,140,84,149,16,81,210,111,241,111,245,111,104,134,115,140,179,106,184,116,21,112,38,151,125,126,76,148,110,152,60,0,42,0,72,100,161,107,145,129,233,154,239,100,2,155,175,107,207,129,204,154,19,155,213,154,34,155,60,0,42,0,30,108,60,0,42,0,171,81,204,78,210,78,55,108,176,81,117,81,164,99,242,146,60,0,42,0,25,78,180,144,67,150,50,96,166,98,201,121,234,130,30,102,58,102,196,103,179,112,124,153,42,119,137,122,195,134,82,100,197,104,128,121,31,122,53,146,124,146,134,151,5,153,32,153,158,151,60,0,42,0,118,94,38,78,117,79,119,94,170,87,176,94,2,80,36,104,197,117,221,122,75,80,161,80,206,91,129,138,169,155,80,151,60,0,42,0,118,118,23,94,232,98,226,108,119,118,187,115,93,82,101,82,241,84,203,118,53,120,154,136,181,148,125,153,117,85,52,125,61,127,224,131,176,136,138,110,134,120,98,146,224,80,147,93,165,100,173,100,17,153,129,155,115,142,75,154,77,156,60,0,42,0,226,78,47,79,187,114,145,128,115,154,27,94,219,114,221,116,233,130,188,79,195,82,201,128,227,144,179,78,44,99,97,109,223,116,225,121,175,136,185,148,194,148,255,109,22,129,54,130,185,136,90,83,36,110,103,132,65,158,61,97,15,100,60,115,56,146,81,146,142,153,240,80,127,113,84,114,148,123,138,129,74,130,20,133,155,153,193,153,35,142,205,146,72,149,158,153,238,153,79,137,112,140,151,86,234,97,33,121,25,124,155,147,58,153,83,157,166,114,198,154,201,154,2,107,110,137,52,121,110,148,60,0,42,0,219,141,165,123,56,124,60,0,42,0,121,91,151,106,234,124,82,139,23,134,60,0,42,0,92,83,33,132,60,0,42,0,236,92,175,94,11,144,184,148,97,102,61,146,167,138,60,0,42,0,234,156,80,143,173,145,60,0,42,0,95,83,101,136,250,84,85,99,184,85,220,136,79,157,20,158,60,0,42,0,13,78,3,94,72,79,37,84,101,107,152,84,22,96,170,98,104,107,105,107,232,103,154,148,207,82,212,87,215,87,145,96,87,99,121,131,232,144,224,87,255,116,205,94,0,133,4,142,246,144,20,153,240,123,34,153,63,124,60,0,39,0,208,253,67,0,39,0,60,0,42,0,147,86,230,100,3,101,60,0,42,0,36,121,56,121,60,0,42,0,106,144,195,86,60,0,42,0,114,80,28,115,60,0,42,0,77,98,80,103,34,141,161,140,193,136,148,126,60,0,42,0,221,107,199,145,56,80,75,85,71,90,192,91,105,95,161,99,108,119,244,141,181,125,41,142,60,0,42,0,240,87,220,131,204,104,33,133,41,126,60,0,42,0,194,83,195,83,196,83,225,152,150,154,197,83,176,85,76,110,170,80,32,91,16,153,24,114,66,154,60,0,42,0,139,107,149,134,237,96,152,107,90,97,69,135,89,97,54,136,58,136,60,0,42,0,232,96,1,103,88,97,175,97,71,122,248,123,234,158,242,158,60,0,42,0,127,112,186,99,113,91,178,124,123,100,15,81,175,111,146,133,230,113,168,116,50,139,60,0,42,0,211,78,250,78,39,79,167,108,205,130,39,158,9,80,49,130,150,80,98,93,196,110,74,115,188,132,248,111,89,130,165,135,172,157,60,0,42,0,207,133,12,107,118,148,60,0,42,0,246,140,60,0,42,0,161,100,205,100,217,124,60,0,42,0,250,102,249,102,8,86,134,93,21,111,248,132,253,105,63,137,90,130,172,135,234,147,60,0,42,0,120,130,73,131,58,97,198,97,50,154,60,0,42,0,143,128,53,145,89,137,60,0,42,0,121,130,60,0,42,0,138,81,140,81,167,79,149,83,123,96,250,98,75,109,93,131,71,101,95,117,116,80,160,83,39,123,163,124,23,132,193,94,251,96,44,110,86,123,52,132,94,123,116,123,219,132,132,88,163,123,161,97,14,124,60,0,42,0,126,93,60,0,42,0,145,92,148,109,18,123,163,104,60,0,42,0,253,102,76,86,60,0,42,0,66,92,254,102,100,92,146,93,242,122,83,154,60,0,42,0,109,142,60,0,42,0,201,83,96,98,72,103,158,128,255,129,63,99,91,80,207,85,210,99,247,99,135,153,159,146,56,149,86,130,128,117,100,147,55,153,60,0,42,0,197,121,158,87,229,103,44,131,54,131,86,93,61,100,57,115,107,151,206,105,103,138,223,91,180,120,171,106,60,0,42,0,105,136,69,142,114,149,84,148,60,0,42,0,124,89,74,108,148,92,152,79,231,139,249,89,238,93,1,125,107,138,60,0,42,0,134,130,198,98,151,148,245,145,60,0,42,0,178,114,170,79,244,103,122,140,97,121,141,85,21,81,92,159,60,0,42,0,29,131,60,0,42,0,127,134,131,136,13,138,37,118,6,136,198,86,60,0,42,0,191,143,199,137,180,104,0,100,152,137,231,136,70,146,211,146,104,94,92,137,25,101,60,0,42,0,117,90,23,140,206,104,121,110,133,121,139,153,88,113,32,127,221,80,81,115,73,135,151,138,203,146,3,81,11,91,219,94,121,111,122,111,254,125,182,111,219,120,170,121,218,107,61,145,97,149,13,112,236,135,51,81,150,82,254,135,65,145,181,86,229,88,201,93,58,112,3,107,143,126,146,126,148,142,117,149,108,130,146,139,113,148,94,153,60,0,42,0,167,78,44,82,245,101,51,78,186,101,80,109,87,82,4,140,116,85,34,117,35,117,242,148,16,150,135,132,119,82,124,93,76,100,251,110,61,86,93,94,70,133,194,138,179,149,163,154,192,113,5,124,129,81,95,126,66,139,180,143,223,147,225,149,197,86,91,112,135,139,60,0,42,0,207,95,95,120,114,100,244,97,164,152,250,97,188,127,194,151,107,152,60,0,42,0,37,79,12,102,0,80,60,90,208,109,22,115,214,131,10,150,127,102,25,105,41,116,238,136,32,149,41,147,182,149,179,156,231,155,26,159,60,0,42,0,231,78,233,78,79,81,160,128,204,130,120,149,29,92,127,80,56,94,156,95,250,116,7,132,30,117,120,129,23,86,114,88,230,90,122,116,147,129,255,146,31,81,144,86,191,156,219,147,104,156,60,0,42,0,130,83,58,87,54,102,221,96,52,88,94,101,216,80,176,83,224,94,5,108,249,146,60,0,42,0,5,96,154,115,69,117,33,80,47,155,49,85,181,96,59,113,82,116,162,102,124,117,175,138,212,151,60,0,42,0,208,135,60,0,42,0,132,98,40,95,10,96,41,107,158,148,44,138,47,113,133,141,20,146,230,82,60,0,42,0,74,114,65,102,226,93,227,93,29,103,27,145,12,159,5,111,50,86,20,106,110,111,178,122,122,127,72,143,2,159,63,139,60,0,42,0,53,84,146,112,39,119,35,113,124,113,168,158,208,93,60,0,42,0,230,78,239,78,22,128,216,137,60,0,42,0,102,143,33,79,202,142,229,79,23,120,19,85,151,131,104,120,252,134,60,0,42,0,111,98,86,80,166,100,60,0,42,0,110,92,123,95,124,87,224,143,226,112,69,128,163,99,105,120,25,152,185,95,164,100,136,111,246,82,174,119,33,114,60,0,42,0,187,98,244,144,117,99,27,116,212,85,157,125,139,119,195,138,221,140,29,126,19,139,60,0,42,0,24,92,227,129,241,95,137,108,176,143,72,150,231,143,30,131,184,91,128,131,144,131,115,150,80,101,104,102,38,138,12,140,217,142,22,97,232,99,2,146,65,113,47,133,117,88,4,106,14,118,3,151,180,135,246,138,188,133,142,158,223,102,208,157,60,0,42,0,187,141,118,120,156,120,139,88,38,89,227,120,56,142,86,147,2,141,166,145,60,0,42,0,108,136,162,117,128,159,129,141,130,141,135,105,83,159,84,159,45,81,171,86,54,140,236,106,111,137,150,139,60,0,42,0,55,150,223,108,253,103,47,114,230,104,126,109,36,116,240,121,65,80,207,134,94,110,90,114,106,141,220,80,134,97,90,100,49,122,87,151,144,100,145,100,253,125,85,106,160,119,108,141,51,152,137,106,192,122,73,127,106,122,246,135,243,147,255,147,35,148,83,153,60,0,42,0,30,78,16,98,62,103,72,84,127,98,168,103,218,139,213,144,87,78,206,87,13,90,172,91,248,92,6,109,127,131,88,78,213,87,48,99,95,102,249,115,0,129,129,99,245,115,128,120,154,122,45,129,214,148,24,88,233,96,214,104,9,105,11,122,108,123,126,125,206,136,77,88,86,88,151,110,160,138,123,117,114,145,238,146,149,97,130,111,132,111,89,106,153,106,206,155,19,112,242,97,44,154,60,0,42,0,177,79,142,95,156,96,30,144,139,154,177,94,72,119,1,154,60,0,42,0,228,121,60,0,42,0,3,84,155,89,153,79,231,84,104,95,245,128,169,134,49,158,251,116,53,119,30,123,154,124,171,85,53,138,228,85,184,90,91,100,244,117,122,125,68,86,157,119,186,138,173,135,31,157,68,157,97,118,81,155,93,159,33,101,114,95,208,158,60,0,42,0,27,95,96,108,112,154,223,143,123,87,187,92,12,131,1,99,254,122,78,131,109,107,179,134,127,141,66,123,190,140,69,144,141,141,95,144,179,153,142,123,128,88,38,111,31,142,114,144,234,123,24,139,60,0,42,0,58,92,250,83,78,84,148,128,136,79,118,83,127,159,145,87,227,128,101,96,59,128,135,134,179,136,60,107,111,107,178,136,237,136,121,146,43,137,82,159,60,0,42,0,115,95,241,83,165,101,88,103,123,112,100,141,108,153,182,98,197,82,92,96,189,112,209,82,196,127,197,127,85,101,254,112,211,117,123,85,65,110,115,120,237,152,186,80,248,117,95,129,238,141,83,146,244,150,143,97,8,118,228,127,107,144,144,146,87,97,27,118,232,127,190,113,216,97,169,141,78,153,146,157,216,157,60,0,42,0,182,158,60,0,42,0,69,81,178,81,225,95,150,108,58,131,122,109,235,115,192,127,2,130,3,86,79,100,184,95,131,97,167,97,93,136,127,127,95,130,86,142,60,0,42,0,107,134,7,93,8,93,128,150,8,137,223,125,105,135,242,135,30,114,60,0,42,0,160,91,235,87,245,91,60,0,42,0,243,148,240,99,131,146,60,0,42,0,189,98,100,90,10,100,51,118,216,123,168,114,171,114,60,0,42,0,199,78,30,96,230,79,49,94,38,104,198,96,44,125,248,126,215,131,6,105,116,117,82,125,1,97,151,118,32,122,121,123,239,136,103,145,108,145,162,125,12,142,20,81,212,150,139,86,38,91,108,94,228,97,181,133,253,113,224,150,135,117,76,124,138,142,187,145,142,139,144,139,60,0,42,0,17,78,18,78,28,84,123,103,125,103,180,79,98,80,133,119,156,145,193,119,87,155,60,0,42,0,237,129,240,129,90,144,160,107,60,0,42,0,250,81,128,92,29,82,116,100,23,106,153,140,99,159,60,0,42,0,13,82,100,150,187,130,168,83,193,110,162,132,96,140,4,149,176,90,33,128,173,132,13,135,142,141,79,146,207,150,147,114,79,133,218,94,232,123,228,146,113,106,110,94,201,106,248,133,245,135,135,142,219,150,229,106,112,142,181,157,149,142,60,0,42,0,230,81,117,103,64,120,24,105,168,80,110,105,90,105,26,137,203,111,50,81,154,106,180,116,14,121,109,159,124,159,60,0,42,0,141,78,4,89,204,122,53,96,192,98,204,126,86,140,247,103,42,107,208,122,246,79,74,101,92,117,241,87,255,115,64,125,85,134,151,80,33,116,16,145,16,100,192,110,235,132,230,137,0,142,166,149,10,81,60,86,212,138,183,97,182,101,92,107,197,129,220,158,248,137,215,119,60,0,42,0,139,105,123,106,60,0,42,0,59,107,88,107,60,0,42,0,227,99,11,100,60,0,42,0,151,129,60,0,42,0,92,85,44,86,170,129,57,142,60,0,42,0,219,93,221,93,26,108,127,122,118,82,45,115,79,116,60,0,42,0,32,79,33,130,41,130,57,130,12,87,68,144,179,80,61,105,183,102,197,123,50,143,60,0,42,0,27,130,72,131,152,85,66,107,226,80,51,142,60,0,42,0,76,108,50,78,148,115,143,148,231,145,215,140,168,157,60,0,42,0,5,82,174,117,147,122,151,122,78,114,80,100,85,114,33,118,187,122,60,0,42,0,138,94,64,114,71,86,98,94,60,0,42,0,239,149,184,80,100,100,226,120,214,149,60,0,42,0,27,82,6,96,49,82,79,82,89,82,212,81,117,82,52,97,60,0,42,0,57,84,138,112,161,159,60,0,42,0,130,87,21,80,192,87,114,150,118,99,217,131,37,100,240,104,14,105,68,129,204,105,36,149,160,123,24,147,154,147,64,152,60,0,42,0,254,101,118,103,37,102,5,132,62,88,139,90,153,102,63,105,198,105,67,116,186,123,125,135,65,106,52,143,196,106,6,156,158,157,60,0,42,0,175,126,89,150,7,85,113,109,20,125,188,131,243,109,35,129,123,110,137,114,227,110,147,132,81,158,24,111,244,132,135,145,149,145,30,147,217,155,137,157,60,0,42,0,70,80,54,132,247,96,118,119,240,140,34,136,60,0,42,0,52,144,20,142,51,98,60,0,42,0,182,143,181,143,21,90,22,90,124,90,217,96,176,109,240,126,79,129,141,143,107,145,189,125,160,141,31,143,138,159,201,100,237,120,91,126,96,107,189,86,106,159,97,148,60,0,42,0,114,84,181,117,128,141,104,80,208,141,18,126,180,154,202,154,0,136,121,159,60,0,42,0,205,139,193,115,144,87,204,103,96,121,8,131,40,131,50,88,247,116,94,138,157,143,72,97,6,117,158,143,193,120,204,150,90,158,205,124,164,143,250,152,8,153,40,91,232,111,139,133,28,157,32,121,173,143,191,157,192,157,60,0,42,0,100,107,76,79,218,108,188,115,137,118,134,155,60,0,42,0,63,103,33,107,58,79,125,79,58,82,62,82,155,94,38,131,40,104,191,131,88,125,211,134,80,141,134,135,220,140,60,0,42,0,6,83,234,86,241,86,193,130,233,95,158,103,16,131,49,96,164,96,199,104,39,113,113,132,23,111,97,128,239,132,37,133,162,154,176,102,5,106,44,106,156,113,125,116,129,116,235,125,102,128,106,128,155,119,245,123,112,128,204,135,111,147,113,126,230,147,24,154,68,154,60,0,42,0,206,78,27,78,147,95,67,90,110,91,150,95,158,95,176,96,217,109,46,116,82,97,14,111,64,111,104,111,180,138,232,140,233,140,55,106,194,133,226,83,71,112,9,107,28,114,60,0,42,0,129,97,37,139,60,0,42,0,209,81,74,110,96,129,143,143,51,143,60,0,42,0,151,124,213,137,129,158,132,158,164,158,60,0,42,0,130,95,130,107,60,0,42,0,195,79,29,115,40,129,168,90,98,145,4,118,31,133,142,138,151,141,72,86,177,97,39,142,139,145,47,118,7,124,44,126,89,142,0,159,116,142,117,142,99,152,60,0,42,0,70,108,186,100,209,146,105,149,127,142,27,101,165,142,121,148,60,0,42,0,213,106,209,93,17,107,115,122,60,0,42,0,156,122,169,107,182,113,225,123,18,124,196,122,40,114,60,0,42,0,20,93,172,80,215,81,30,127,148,88,137,93,91,97,103,100,177,105,85,115,239,105,234,120,23,126,217,147,60,0,42,0,60,111,128,116,161,141,160,118,60,0,42,0,28,79,240,95,169,117,5,80,139,124,35,125,198,127,3,129,6,129,80,85,91,85,180,96,236,109,3,132,243,107,32,113,58,129,1,118,185,124,183,125,224,127,181,129,172,129,226,111,193,122,74,137,71,152,206,129,60,0,42,0,124,78,60,0,42,0,168,144,81,103,180,118,6,142,138,111,244,122,165,129,60,0,42,0,88,91,159,79,245,98,60,0,42,0,12,82,214,95,60,0,42,0,248,91,11,84,127,124,60,0,42,0,19,100,115,116,115,144,203,120,174,100,73,142,157,145,60,0,42,0,88,134,111,93,115,93,228,117,73,119,236,119,171,132,22,133,126,158,66,145,122,158,166,142,60,0,42,0,30,129,60,0,42,0,73,82,82,82,157,83,14,89,43,99,157,131,161,131,170,99,42,144,174,101,228,104,9,149,204,132,25,149,188,146,47,147,60,0,39,0,208,253,68,0,39,0,60,0,42,0,145,84,55,128,69,131,26,123,210,85,45,100,33,137,96,86,152,100,157,147,60,0,42,0,190,143,207,143,214,143,218,143,126,84,178,89,27,96,147,108,210,84,159,112,141,127,89,131,87,117,115,82,18,83,99,117,42,123,57,144,84,123,90,138,84,144,246,141,24,150,124,151,152,133,145,151,245,113,253,135,137,147,130,142,61,148,195,151,150,159,152,159,60,0,42,0,83,98,60,0,42,0,39,89,163,78,79,108,20,119,60,0,42,0,175,87,41,118,182,88,104,126,60,0,42,0,70,84,84,84,67,115,219,97,60,0,42,0,121,107,46,144,163,80,60,0,42,0,227,78,106,143,162,79,136,87,177,92,18,94,25,117,208,126,232,143,128,154,38,94,133,95,32,96,203,103,134,107,179,115,55,141,47,94,209,142,237,87,54,94,63,125,174,134,139,136,218,142,184,140,233,142,71,116,215,94,199,83,195,102,255,125,15,157,52,98,92,130,219,158,36,124,91,142,59,112,52,151,118,137,241,158,70,151,60,0,42,0,152,155,60,0,42,0,57,78,137,89,85,83,197,98,88,83,8,119,3,120,60,128,61,128,248,144,67,128,173,142,174,85,133,90,154,107,5,118,48,83,170,123,29,137,50,145,21,152,11,81,239,82,212,100,171,107,20,117,73,118,76,137,30,124,120,128,60,0,42,0,20,79,16,82,140,98,172,115,237,116,198,128,116,136,184,117,30,125,184,99,85,141,182,78,162,100,163,100,184,111,213,158,189,129,238,158,60,0,42,0,230,101,70,79,14,94,138,108,249,108,218,114,222,139,230,103,141,117,86,85,87,85,57,95,238,96,225,109,15,132,203,134,127,85,62,95,46,108,69,129,17,135,219,137,158,122,149,138,228,80,73,86,190,153,231,154,62,86,72,95,154,97,186,97,185,111,171,121,222,132,243,153,32,157,90,118,170,86,117,126,9,141,46,151,79,153,60,0,42,0,83,95,240,115,198,136,219,148,92,123,118,117,121,86,162,111,171,116,96,137,57,124,97,130,247,135,58,148,60,0,42,0,33,99,90,81,32,140,203,100,97,139,232,158,41,101,89,112,19,107,156,139,60,0,42,0,57,108,252,81,53,87,149,91,0,120,177,87,97,131,99,104,234,131,120,90,19,97,253,116,63,144,99,93,252,150,82,111,173,120,5,81,138,119,105,133,164,141,203,88,148,106,151,116,234,118,17,121,28,124,47,134,227,149,60,0,42,0,0,82,2,82,232,83,201,95,55,103,24,108,32,130,214,145,125,156,91,155,60,0,42,0,111,99,60,0,42,0,252,91,155,92,102,150,246,92,99,99,119,121,130,121,23,100,157,150,139,93,140,93,221,105,14,92,175,150,212,88,185,93,227,100,72,142,177,121,60,0,42,0,48,82,18,80,188,96,24,113,215,118,255,131,33,105,220,118,83,144,50,122,140,123,226,127,117,86,59,122,84,130,92,136,164,106,95,136,254,113,255,127,199,142,217,116,155,126,60,0,42,0,26,86,60,0,42,0,116,96,151,95,194,109,179,96,234,96,207,104,29,149,179,95,183,95,64,147,60,0,42,0,48,87,132,118,38,129,60,0,42,0,101,98,125,98,60,0,42,0,111,112,123,118,75,140,84,86,1,91,200,113,146,116,243,122,38,124,96,130,180,137,108,142,60,0,42,0,41,103,73,123,37,98,60,0,42,0,147,144,243,81,39,145,165,150,177,88,157,93,170,119,244,120,107,149,200,106,25,148,60,0,42,0,16,108,254,78,78,79,67,89,125,95,155,136,114,85,222,87,157,127,132,150,36,88,134,141,244,110,93,149,254,120,73,147,174,151,60,0,42,0,248,94,196,114,116,124,214,130,234,143,25,85,76,101,164,109,123,131,145,104,27,123,204,137,110,151,204,110,176,153,226,154,0,86,225,90,223,127,11,133,16,133,20,152,117,101,0,106,244,123,129,86,225,133,116,140,98,142,4,155,209,147,244,124,191,137,16,158,60,0,42,0,142,83,88,87,203,139,184,144,58,150,103,84,149,94,36,95,181,98,222,98,226,103,116,114,37,120,139,99,231,131,221,137,70,138,231,142,92,128,182,154,243,155,60,0,42,0,84,87,31,95,243,101,85,103,147,115,31,96,164,103,228,79,29,94,202,87,35,90,18,144,19,144,89,80,71,85,138,104,13,113,246,115,49,119,118,121,44,123,194,131,27,140,241,145,130,90,227,104,39,110,71,119,20,127,130,132,192,80,152,121,99,129,94,144,106,146,145,88,172,88,85,100,178,120,21,133,67,135,112,144,120,97,11,117,224,125,179,93,230,138,54,142,174,135,60,0,42,0,56,117,65,101,130,99,142,80,167,83,110,93,199,110,199,105,217,105,40,118,160,152,78,142,197,93,90,152,91,152,107,118,211,93,212,93,39,101,114,118,123,159,60,0,42,0,120,81,76,89,185,112,112,90,32,115,95,101,35,105,213,141,152,120,167,132,71,133,46,142,222,158,184,86,60,0,42,0,53,117,67,79,61,150,107,87,151,94,171,87,66,98,183,115,191,148,93,90,230,96,192,109,96,89,20,116,191,107,20,135,251,150,138,88,194,88,66,106,93,106,177,111,91,151,92,118,31,124,84,154,60,0,42,0,1,82,252,83,72,108,31,82,109,134,203,81,93,89,52,95,107,95,193,134,49,116,130,140,137,120,237,156,166,107,151,119,213,150,137,155,183,156,19,124,38,159,219,155,112,157,60,0,42,0,90,98,76,92,60,0,42,0,20,95,4,79,10,84,147,148,142,122,11,138,3,140,137,99,227,145,222,148,235,148,31,146,232,122,231,132,177,146,255,150,97,155,191,138,57,118,181,122,253,146,203,133,67,148,60,0,42,0,57,114,204,141,242,85,58,137,60,0,42,0,245,130,237,143,164,87,204,92,78,96,21,99,51,102,214,126,197,128,222,116,35,119,10,128,28,98,13,140,139,85,30,88,73,94,245,96,242,99,115,117,112,125,11,128,247,129,68,138,131,141,123,149,224,83,156,107,67,114,82,114,125,93,159,120,40,135,11,137,83,130,118,135,130,117,220,138,64,142,189,156,225,102,137,117,8,156,138,117,14,108,60,0,42,0,203,84,48,119,60,0,42,0,1,78,195,78,238,83,4,94,142,115,148,117,239,118,137,148,53,128,112,134,74,145,216,145,106,151,60,0,42,0,117,89,118,152,2,152,14,159,127,93,17,159,206,111,161,133,36,148,60,0,42,0,162,139,202,95,100,153,244,119,154,91,2,138,227,152,118,85,35,132,228,148,23,105,90,129,135,120,45,149,160,120,98,128,74,135,204,146,32,147,248,120,65,152,60,0,42,0,31,78,34,78,229,148,169,146,60,0,42,0,28,78,172,81,154,84,189,92,113,103,243,130,56,102,33,108,50,80,43,158,236,87,59,90,32,93,44,93,183,109,23,123,196,131,154,95,45,108,64,135,151,155,21,159,223,155,135,157,171,157,60,0,42,0,99,132,165,88,30,91,194,97,189,123,107,133,204,138,60,0,42,0,168,82,187,81,151,79,140,87,219,89,210,92,107,96,15,99,11,104,30,109,232,128,245,143,205,81,25,98,244,128,213,82,80,120,223,104,105,110,103,125,86,129,205,80,231,153,24,151,60,0,42,0,58,84,23,85,253,144,92,81,96,81,56,133,119,106,252,123,60,0,42,0,103,78,39,150,150,98,147,103,97,150,30,85,170,134,4,146,60,0,42,0,151,101,70,140,214,144,98,109,115,131,23,144,126,153,37,155,170,104,237,107,48,129,88,145,216,117,151,149,166,122,38,155,22,153,163,101,216,149,199,122,42,155,45,155,44,155,60,0,42,0,190,83,98,82,7,150,31,86,99,119,143,145,205,149,60,0,42,0,210,107,236,114,156,109,251,139,14,110,31,105,77,114,138,114,161,120,251,136,173,138,115,135,104,115,22,147,223,81,53,83,59,91,6,112,221,106,176,107,88,114,162,114,196,116,190,118,51,154,233,158,128,139,68,140,21,141,227,151,209,154,95,148,199,151,229,151,247,158,159,139,60,0,42,0,3,123,53,88,62,94,61,116,76,141,121,119,169,137,237,140,228,123,60,0,42,0,143,130,146,89,92,103,154,128,172,89,166,94,112,131,250,121,33,110,111,151,64,149,153,135,172,107,77,147,39,136,57,136,60,0,42,0,17,128,115,80,108,82,143,90,239,122,13,137,116,147,60,0,42,0,237,119,60,0,42,0,181,107,173,101,69,88,14,127,110,132,52,105,69,113,86,116,118,129,171,120,59,149,222,125,200,107,22,124,91,147,183,101,150,142,106,124,60,0,42,0,150,87,6,88,96,88,95,93,253,117,211,120,45,157,28,148,60,0,42,0,39,152,60,0,42,0,31,150,249,91,74,81,76,81,81,81,254,91,75,121,60,96,110,150,138,150,147,120,144,125,13,92,158,97,157,97,231,111,177,133,102,149,223,97,41,112,72,139,104,137,19,148,117,139,60,0,42,0,40,84,199,96,102,101,51,135,169,88,170,88,180,100,100,115,120,86,137,100,84,106,156,114,5,121,114,142,126,142,80,154,60,0,42,0,249,118,184,141,137,142,60,0,42,0,5,79,228,86,137,94,140,108,150,112,254,118,24,120,7,144,157,148,127,152,65,144,13,146,111,105,19,152,183,120,111,144,97,111,201,113,50,142,60,0,42,0,26,89,27,89,132,84,198,84,83,117,95,82,28,93,135,99,96,101,106,101,242,107,240,136,137,86,60,0,42,0,58,89,206,148,107,82,83,101,90,101,165,85,229,117,44,146,106,89,217,81,49,142,181,155,56,148,60,0,42,0,53,103,54,103,218,84,155,87,156,87,5,99,6,99,245,87,13,127,47,105,147,141,177,142,178,142,158,125,184,78,122,147,195,142,178,86,114,89,60,0,42,0,52,82,65,82,74,150,79,150,115,153,46,92,193,103,238,103,87,104,21,88,53,130,240,96,226,141,229,141,250,141,255,152,174,88,158,93,156,97,175,88,125,157,60,0,39,0,208,253,69,0,39,0,60,0,42,0,184,89,191,89,63,90,64,90,89,92,254,117,60,0,42,0,185,139,42,84,238,86,215,143,196,79,37,90,232,92,233,92,144,109,170,131,244,115,27,138,146,118,75,119,11,146,7,149,69,158,254,134,192,120,144,138,31,152,157,152,100,155,77,152,93,157,94,157,76,139,42,156,60,0,42,0,153,103,8,120,11,152,65,86,0,154,72,157,60,0,42,0,132,83,117,92,57,98,122,107,139,92,40,150,67,84,124,98,202,130,56,150,93,84,16,120,109,143,162,84,185,84,169,87,246,89,201,92,14,83,118,96,40,120,133,134,127,153,84,80,126,83,10,88,170,96,70,120,20,140,219,142,2,145,15,150,46,88,63,93,225,96,21,97,66,110,60,132,95,140,246,142,76,144,79,144,42,146,197,94,36,100,57,100,39,116,109,129,123,138,235,80,65,135,55,149,101,155,87,158,90,133,123,144,30,152,154,152,19,153,105,86,220,100,168,137,228,138,188,149,41,153,84,147,196,156,94,107,78,152,24,121,238,106,16,156,154,157,141,139,67,159,105,148,118,159,119,156,60,0,42,0,246,139,146,138,60,0,42,0,64,89,105,96,189,132,126,113,60,0,42,0,206,92,60,0,42,0,65,100,60,0,42,0,165,151,60,0,42,0,63,81,12,128,80,81,149,79,82,81,81,150,207,92,15,109,75,131,45,104,249,128,50,85,187,136,56,158,171,124,79,128,0,143,149,156,173,150,245,154,158,155,47,157,92,143,60,0,42,0,188,83,18,92,19,92,20,92,51,128,233,143,49,109,117,153,46,104,230,107,229,115,210,148,62,114,12,153,236,153,190,133,135,144,176,141,60,0,42,0,140,78,13,95,16,95,116,79,53,82,161,84,48,141,174,140,72,136,179,140,128,138,122,146,50,106,60,0,39,0,208,253,70,0,39,0,60,0,42,0,209,83,183,108,122,118,124,118,66,95,177,145,60,0,42,0,79,78,16,79,194,89,161,87,76,109,186,117,90,127,55,131,0,150,48,104,29,120,41,123,160,80,79,123,130,119,112,127,165,149,120,127,67,106,197,133,60,0,42,0,113,79,213,108,69,147,75,112,60,0,42,0,208,115,58,116,234,154,95,133,238,154,60,0,42,0,6,94,219,95,106,117,235,82,67,86,15,91,97,94,163,97,67,133,217,101,219,101,89,126,251,127,233,133,83,143,191,152,83,124,220,152,85,156,60,0,42,0,225,81,226,81,227,81,62,108,37,83,75,103,201,103,254,119,117,124,146,148,36,130,230,112,39,130,50,123,229,104,34,110,105,113,208,125,166,88,10,106,78,106,212,113,160,116,176,129,160,133,65,126,78,137,179,127,111,142,42,112,63,112,44,121,41,134,7,148,34,148,28,136,237,157,60,0,42,0,205,83,85,98,238,78,212,143,233,145,60,0,42,0,175,114,127,89,78,108,219,108,109,153,3,131,41,141,72,117,9,138,211,142,79,90,181,104,213,118,53,123,169,140,236,142,239,152,240,152,252,110,14,91,196,123,60,0,42,0,26,83,185,101,161,144,74,87,120,108,179,130,139,103,101,114,171,148,211,109,132,134,1,146,58,147,11,157,60,0,42,0,50,150,168,89,63,98,170,128,197,87,130,156,116,155,31,156,60,0,42,0,255,78,191,139,119,95,186,126,9,102,24,102,236,116,6,119,35,80,202,101,33,125,43,130,42,138,227,154,173,157,60,0,42,0,62,101,189,141,60,0,42,0,15,88,60,0,42,0,222,152,131,89,94,151,219,152,97,85,83,90,84,90,4,110,239,126,242,131,73,98,131,102,6,115,95,151,246,136,203,125,26,135,15,151,177,156,37,153,161,153,17,154,27,154,221,152,60,0,42,0,165,128,221,109,83,129,48,135,230,135,60,0,42,0,15,103,208,128,42,83,253,139,92,89,177,96,144,101,208,104,167,105,225,127,92,133,185,138,218,123,60,0,42,0,32,84,190,130,159,94,110,103,184,108,210,114,186,128,50,102,199,128,57,141,247,79,85,82,158,83,191,117,107,150,93,92,9,132,195,94,187,140,241,117,68,149,226,94,202,102,72,118,35,159,247,111,224,106,225,155,40,148,69,151,60,0,42,0,6,82,41,84,9,94,183,126,172,130,16,102,27,108,219,84,213,122,111,136,122,81,27,125,194,127,93,81,251,104,28,138,174,142,90,145,22,146,240,150,6,103,52,153,89,153,60,0,42,0,95,87,162,89,142,92,126,108,12,103,140,103,131,112,166,128,146,127,160,134,161,134,164,104,252,104,26,113,182,132,154,153,171,150,179,88,105,94,198,111,97,133,117,155,104,106,204,113,211,113,110,140,34,159,181,127,22,159,118,140,82,143,60,148,169,153,194,158,60,0,42,0,137,124,250,158,60,0,42,0,253,78,5,95,75,89,255,95,206,121,126,80,36,97,170,124,232,80,164,97,110,89,185,129,222,124,188,156,53,112,93,156,60,0,42,0,48,78,206,152,249,78,232,81,236,81,166,89,163,108,168,108,238,81,171,103,1,92,175,117,253,118,28,120,168,152,239,92,240,92,81,80,123,104,253,112,18,116,54,93,38,115,81,132,11,149,83,105,142,114,2,135,11,118,184,120,252,80,200,123,55,145,210,146,146,106,207,149,80,140,189,147,224,147,70,145,247,91,67,112,52,134,59,151,45,136,74,151,204,152,183,158,60,0,42,0,175,81,6,89,64,99,114,109,34,144,56,88,132,110,174,153,83,100,40,111,152,125,66,130,60,0,42,0,189,139,130,137,42,85,247,138,60,0,42,0,228,81,73,89,46,117,248,79,87,110,40,113,72,113,29,127,87,141,239,156,243,156,12,157,43,126,245,140,60,0,42,0,133,137,60,0,42,0,207,78,114,87,187,104,60,0,42,0,17,125,230,136,60,0,42,0,54,127,38,84,154,89,57,127,59,127,149,107,236,150,0,157,60,0,42,0,43,89,21,79,158,144,75,84,139,89,199,89,158,115,164,128,36,96,206,103,6,120,66,131,109,136,186,87,16,90,3,92,116,131,201,101,40,125,186,141,184,158,225,117,3,122,215,141,7,146,95,123,146,125,28,145,117,91,103,140,119,101,154,129,250,156,169,158,208,124,172,158,177,158,239,97,60,0,42,0,64,78,255,93,23,95,15,79,235,81,54,117,91,79,185,81,28,82,90,91,118,98,153,130,163,130,136,84,170,92,127,95,43,96,194,98,13,103,142,103,237,108,194,126,203,126,251,130,0,131,216,79,152,87,235,103,31,108,17,109,165,112,184,115,73,117,80,117,83,121,88,127,47,131,219,144,232,151,249,84,63,104,110,109,41,120,169,131,168,134,16,83,116,104,170,109,240,112,8,116,38,123,48,123,49,125,60,125,199,127,116,130,212,131,89,134,177,136,69,94,244,104,101,125,102,127,77,132,143,121,176,124,141,125,64,130,9,135,144,143,88,146,92,146,171,152,231,156,145,105,42,122,153,123,205,151,94,94,147,111,96,135,244,154,20,157,232,138,62,142,59,143,132,155,65,118,70,137,178,155,251,158,101,137,105,157,157,157,60,0,42,0,82,84,154,98,43,117,118,78,156,94,35,95,202,98,167,101,204,79,219,79,213,128,217,144,236,156,239,79,220,145,225,145,108,99,133,143,40,105,36,113,217,118,81,129,207,110,5,135,80,129,20,143,56,86,168,100,171,100,43,152,52,155,32,124,252,158,60,0,42,0,29,150,54,114,163,139,216,78,135,89,31,141,68,150,144,84,127,87,206,122,28,150,120,154,13,89,202,92,84,121,3,138,160,140,116,141,165,134,157,136,90,150,105,80,168,81,111,82,102,90,185,134,133,80,141,90,204,91,169,95,255,121,47,132,215,134,132,137,66,138,75,141,49,105,26,127,121,129,139,156,163,121,7,137,20,137,89,141,238,125,103,133,92,135,110,135,230,140,217,153,20,91,27,126,57,143,146,155,251,140,81,147,98,147,198,156,134,137,165,153,18,156,60,0,42,0,92,145,60,0,39,0,208,253,71,0,39,0,60,0,42,0,238,101,119,84,14,86,32,86,60,0,42,0,134,148,28,92,118,86,55,147,60,0,42,0,21,92,141,115,60,0,42,0,44,92,64,155,60,0,42,0,133,79,229,139,194,144,84,150,147,87,223,89,208,92,68,131,80,102,69,141,97,117,116,121,111,125,114,138,101,140,197,140,204,140,60,0,42,0,203,95,57,101,96,125,60,0,42,0,16,78,98,78,3,83,4,83,35,150,90,103,153,148,214,118,97,100,137,110,98,132,35,146,145,150,36,98,130,105,233,105,203,132,17,111,234,105,194,116,60,0,42,0,24,117,211,95,137,130,192,143,60,101,70,103,149,115,157,128,105,87,212,108,248,119,247,130,121,78,209,103,255,122,179,117,80,145,147,124,129,78,242,81,50,92,52,92,120,123,39,111,241,156,54,92,55,92,80,155,60,0,42,0,224,78,94,98,175,118,198,121,102,136,118,141,98,101,127,104,52,123,8,122,31,97,137,111,149,141,68,106,192,100,51,124,20,156,225,156,100,156,60,0,42,0,114,94,240,101,117,108,240,118,192,126,29,80,206,81,230,109,58,125,76,138,173,154,121,94,166,105,138,106,17,141,99,141,27,141,104,112,60,0,42,0,136,81,83,127,174,81,26,82,96,103,178,126,155,128,161,92,104,114,152,117,252,119,56,127,162,148,91,82,97,127,8,88,134,99,237,145,225,104,133,114,61,88,177,125,65,127,252,146,160,147,60,0,42,0,151,92,23,93,47,110,60,0,42,0,53,113,57,113,123,123,211,105,5,98,6,98,60,0,42,0,139,118,148,127,153,127,216,154,144,118,217,154,239,129,220,110,212,105,126,119,143,129,249,105,112,106,217,123,213,124,59,153,220,106,223,151,206,157,27,159,241,157,60,0,42,0,48,89,114,103,210,131,1,122,30,100,31,127,160,102,192,105,193,105,62,122,63,122,80,149,30,126,193,133,186,106,243,133,60,0,42,0,63,84,74,84,194,82,240,139,220,144,252,92,110,121,112,121,6,149,118,123,158,121,165,138,239,146,60,0,42,0,8,98,225,78,42,87,181,114,165,126,19,98,144,128,107,114,153,117,175,84,113,114,229,84,243,128,188,136,61,158,114,82,1,100,65,95,210,110,40,98,76,107,16,157,26,157,241,100,12,139,63,157,182,147,60,0,42,0,68,84,110,79,12,83,12,99,22,131,1,150,105,151,75,101,60,104,50,155,5,97,245,129,91,132,210,134,211,136,148,150,221,85,101,88,198,110,225,137,63,100,197,105,136,129,163,149,164,149,102,115,73,149,136,151,208,151,188,154,253,138,53,143,175,155,202,106,218,151,85,143,183,151,20,154,60,0,42,0,255,84,56,130,240,85,60,0,42,0,42,78,4,84,124,134,11,80,76,120,236,148,135,123,60,0,42,0,217,126,102,125,60,0,42,0,57,104,223,141,60,0,42,0,207,84,60,0,42,0,110,130,60,0,42,0,152,78,153,78,27,131,239,99,4,100,60,0,42,0,47,82,154,94,74,117,109,109,21,128,238,131,41,105,63,113,90,125,83,141,82,158,234,125,6,126,174,127,225,140,185,127,138,157,60,0,42,0,224,144,253,84,194,87,250,92,45,99,224,126,63,128,132,131,151,104,134,125,160,156,190,154,193,155,60,0,42,0,244,102,41,88,133,102,60,0,42,0,229,93,19,95,108,81,183,83,159,82,59,101,91,103,155,79,252,124,177,128,171,91,174,91,109,96,163,134,172,142,154,159,17,83,104,88,74,94,41,97,229,137,179,142,149,113,20,83,189,120,248,154,245,137,143,159,148,159,60,0,42,0,254,94,233,93,94,108,241,98,242,98,49,104,217,115,1,143,143,151,60,0,42,0,113,81,33,141,190,127,29,85,162,140,187,131,60,0,42,0,80,97,60,0,42,0,254,82,93,79,159,108,169,148,167,136,17,127,14,146,157,110,100,146,241,125,32,137,221,123,60,124,178,151,221,151,60,0,42,0,182,130,163,92,215,114,223,130,184,103,189,115,7,128,9,128,49,123,8,128,188,134,127,140,60,0,42,0,120,87,132,103,223,139,45,141,162,87,228,89,41,131,147,81,31,89,32,89,61,138,190,90,64,95,6,100,108,138,88,144,202,150,203,105,121,113,207,137,128,100,175,137,252,140,60,0,42,0,48,79,113,84,149,84,209,89,100,91,189,108,210,108,253,130,231,103,113,143,2,85,91,127,42,158,31,123,199,131,240,131,196,134,218,137,241,142,242,142,156,143,100,145,50,146,141,123,155,123,244,90,208,123,109,106,149,155,35,157,60,0,42,0,187,157,60,0,42,0,3,89,228,83,98,98,105,108,194,139,55,140,161,128,111,114,168,154,3,85,95,127,150,127,39,144,180,148,166,80,82,85,200,109,53,129,202,134,204,134,51,92,50,97,199,132,65,138,137,153,68,158,190,105,194,107,55,146,19,159,20,159,15,86,150,105,183,118,88,158,64,122,14,126,211,124,163,133,242,111,188,118,204,129,66,143,54,153,20,112,236,118,189,119,49,136,60,0,42,0,250,86,69,101,197,81,126,152,12,88,19,93,46,93,143,104,127,114,221,104,123,121,199,150,252,117,18,122,34,149,241,80,46,147,180,156,221,155,103,152,60,0,42,0,220,116,46,82,205,128,29,104,57,158,68,107,113,113,82,128,170,152,143,141,128,82,250,125,59,142,189,146,179,152,48,157,39,154,60,0,42,0,142,81,231,83,80,82,110,82,225,91,60,0,42,0,102,83,108,87,214,139,2,99,105,85,155,99,99,127,83,125,107,127,2,137,127,138,60,0,42,0,86,78,180,99,81,100,60,0,42,0,208,98,180,103,250,103,137,123,60,0,42,0,44,89,207,83,42,96,96,96,60,0,42,0,115,81,194,137,152,91,160,81,140,137,12,80,250,104,132,132,164,122,162,149,29,118,79,118,179,137,215,149,207,156,220,149,37,156,192,137,94,156,60,0,42,0,158,131,134,153,47,116,239,117,102,123,161,123,40,143,24,130,39,147,40,153,228,156,60,0,42,0,204,107,49,78,47,141,244,108,186,96,239,96,188,99,171,109,171,140,185,96,124,121,99,97,92,100,69,111,102,144,12,106,229,118,70,127,218,150,128,142,198,147,76,112,31,114,216,116,212,119,54,121,115,158,80,127,117,148,121,156,27,158,60,0,42,0,73,81,110,112,138,79,151,112,154,112,155,112,163,84,153,87,239,89,56,109,42,131,68,104,225,112,214,115,241,128,217,80,4,143,167,146,198,158,60,0,42,0,127,94,131,94,183,114,227,94,119,115,233,129,60,0,42,0,199,79,27,144,230,129,151,100,60,0,42,0,31,107,60,0,42,0,82,95,45,87,171,89,159,159,196,137,189,144,136,118,37,131,250,149,48,94,234,115,255,128,128,78,128,80,69,120,144,122,191,136,143,137,175,90,198,94,29,105,112,116,204,144,226,90,107,100,168,149,145,156,0,91,251,105,252,105,157,135,157,116,161,119,173,129,173,155,156,159,194,93,120,107,54,155,41,154,204,116,57,155,247,106,60,0,42,0,132,91,63,108,57,103,104,143,139,94,121,79,38,83,225,139,82,150,157,87,253,89,81,96,49,101,120,118,204,142,60,155,170,94,106,121,45,83,119,102,64,110,235,134,228,137,109,138,172,83,11,124,225,135,60,0,42,0,48,101,61,82,63,82,11,102,220,103,148,112,53,141,66,104,103,104,34,105,36,115,64,123,180,140,213,132,234,141,49,83,138,82,140,82,161,93,140,100,246,105,156,106,182,119,172,121,2,124,195,106,80,118,88,137,220,156,188,151,86,156,101,156,60,0,42,0,40,78,110,136,195,96,242,126,158,136,138,143,218,110,216,132,254,110,196,125,9,133,217,120,37,143,167,156,140,155,192,155,60,0,42,0,205,104,84,119,116,119,173,116,52,139,60,0,42,0,89,84,188,84,218,87,237,144,111,85,29,88,30,93,27,146,5,149,142,88,17,118,19,86,73,95,196,111,72,135,75,147,77,95,200,135,60,0,42,0,239,86,246,86,251,86,253,86,0,87,11,87,60,94,88,129,87,94,86,97,13,111,93,128,46,133,149,129,98,134,152,153,60,0,42,0,156,103,200,96,201,109,19,115,211,131,131,153,1,105,1,137,232,105,191,124,182,125,62,135,249,136,32,143,1,147,28,153,57,148,60,0,42,0,199,143,78,144,60,0,39,0,208,253,72,0,39,0,60,0,42,0,200,84,234,148,60,0,42,0,228,134,60,0,42,0,100,89,60,0,42,0,141,84,179,84,232,85,60,0,42,0,216,143,105,91,38,152,184,154,132,144,60,0,42,0,119,109,242,128,248,112,112,88,124,145,162,145,60,0,42,0,165,78,142,89,135,154,179,91,38,108,208,85,0,153,237,153,244,153,90,153,60,0,42,0,161,86,60,0,42,0,68,79,120,152,251,84,182,134,99,145,7,152,232,90,61,140,168,97,160,153,91,107,62,159,60,0,42,0,151,144,43,84,175,144,253,81,129,84,163,128,254,81,119,134,5,85,5,87,34,90,91,109,33,93,87,102,146,104,181,109,19,113,0,116,210,91,69,93,233,151,29,117,104,123,44,135,143,111,225,146,125,155,211,151,60,0,42,0,6,78,136,83,85,127,107,109,138,85,10,133,26,150,67,140,43,155,60,0,42,0,73,108,125,92,87,108,236,149,241,101,190,92,190,87,141,96,77,99,134,109,2,115,159,131,88,102,10,113,225,131,236,145,136,149,148,118,69,119,188,80,255,134,148,152,175,153,150,100,34,111,45,135,181,102,175,113,178,146,206,146,190,97,188,100,240,127,146,135,55,152,68,152,251,153,64,139,215,150,26,112,43,134,190,157,60,0,42,0,111,81,51,114,60,0,42,0,47,89,60,0,42,0,192,130,210,143,187,101,109,103,179,87,215,126,233,115,16,123,42,130,162,134,131,152,165,140,85,123,78,125,15,152,103,155,60,0,42,0,134,108,60,0,42,0,32,131,191,132,134,86,133,133,167,133,60,0,42,0,220,107,211,122,157,134,235,107,3,105,229,85,70,115,137,140,81,86,84,115,106,140,55,86,75,115,213,138,43,81,142,86,213,88,224,111,71,124,20,136,121,139,60,0,42,0,125,89,221,144,60,0,42,0,247,83,10,102,38,102,207,121,224,84,79,96,142,96,105,109,23,128,103,102,207,109,144,80,147,118,23,145,200,110,85,128,95,134,164,102,173,102,148,111,156,118,158,118,205,102,161,118,131,133,165,118,172,147,162,152,79,112,101,152,29,156,93,112,60,0,42,0,195,139,117,84,178,98,49,107,157,85,54,138,236,85,26,136,60,0,42,0,190,121,8,84,85,79,190,82,138,84,140,84,192,89,179,108,195,144,198,92,247,102,199,103,226,114,199,118,122,124,7,125,2,150,120,153,236,84,70,101,56,104,201,118,205,118,119,131,93,85,184,109,46,110,210,118,244,121,207,131,2,132,181,134,129,159,210,96,173,124,56,138,140,152,65,105,252,107,149,111,101,138,136,140,5,143,76,146,22,150,132,156,134,113,86,158,167,158,28,152,213,123,238,127,155,135,122,155,9,121,212,149,168,151,85,159,136,137,161,157,172,118,73,148,162,159,60,0,42,0,107,79,142,87,58,141,148,136,201,91,3,113,192,140,195,85,66,113,139,120,135,113,16,137,107,141,100,158,82,122,239,127,209,88,75,118,30,139,250,113,0,114,174,157,180,157,77,151,78,151,22,158,79,151,60,0,42,0,210,158,209,158,63,86,118,111,60,0,42,0,235,98,213,117,142,151,60,0,42,0,119,79,136,95,224,114,106,138,60,0,42,0,104,96,60,0,42,0,168,78,252,84,153,96,165,109,72,85,29,129,60,0,42,0,238,89,70,96,82,96,65,104,198,112,251,128,59,158,42,106,107,106,97,136,52,157,70,157,5,134,69,148,60,0,42,0,60,88,60,0,42,0,119,86,60,0,42,0,255,83,61,84,77,84,116,112,112,143,196,84,7,138,216,112,227,142,200,99,57,110,34,113,97,120,62,140,168,133,55,143,157,86,103,147,95,143,60,0,42,0,220,78,24,95,133,89,162,126,48,84,143,91,111,108,146,115,174,126,243,149,150,91,211,108,156,115,240,130,172,87,2,90,42,109,209,122,5,125,109,131,121,134,100,109,24,125,195,127,62,128,84,120,45,125,57,140,63,158,49,110,228,122,160,124,82,132,83,132,28,146,142,149,139,125,221,127,60,140,66,111,119,146,131,151,95,155,208,146,75,95,123,133,16,151,201,158,31,151,59,157,204,158,60,0,42,0,78,102,202,85,60,0,42,0,167,139,12,138,167,149,148,100,139,111,146,111,190,146,194,149,40,155,192,149,60,0,42,0,65,159,60,0,42,0,175,79,230,119,7,145,137,85,63,94,52,115,84,132,10,118,122,119,204,123,199,124,237,127,186,154,245,127,109,147,49,153,248,155,60,0,42,0,60,84,188,114,60,0,42,0,14,84,200,144,154,83,149,87,140,95,9,109,5,144,25,80,32,88,94,140,142,156,152,156,156,155,95,156,60,0,42,0,78,78,111,78,34,83,77,134,124,84,128,87,253,95,18,102,246,102,216,108,248,130,87,96,192,112,119,143,43,83,63,85,218,96,244,109,86,134,228,142,17,86,227,91,249,110,208,150,96,94,47,98,81,107,180,129,60,139,60,0,42,0,235,86,135,98,39,95,208,114,243,116,225,128,246,88,186,150,247,88,155,101,0,113,150,85,250,88,169,90,48,100,86,110,34,115,87,125,107,132,92,105,115,113,90,116,29,86,27,133,85,158,242,105,182,123,202,124,116,135,90,136,113,155,32,126,156,135,144,145,54,152,243,137,120,147,44,153,96,157,43,112,13,155,23,156,152,157,166,157,60,0,42,0,85,78,123,108,78,134,82,109,255,79,44,85,0,132,37,116,93,134,248,110,63,147,241,155,60,0,42,0,101,78,146,78,22,95,54,98,55,98,56,98,177,81,180,81,144,130,13,94,164,98,141,108,170,108,181,92,25,96,61,98,8,102,145,103,24,96,92,121,15,123,144,124,95,90,72,98,224,116,91,105,192,85,148,125,32,145,253,150,237,90,238,90,98,100,236,110,48,133,244,105,169,113,248,156,4,124,89,147,155,86,113,158,119,139,224,156,196,151,0,152,111,156,12,158,60,0,42,0,177,130,178,130,215,84,214,87,114,90,27,105,116,120,41,86,192,124,174,138,138,132,53,147,36,134,60,0,42,0,78,83,225,89,133,154,239,131,234,145,235,145,231,148,209,110,62,115,51,100,182,100,198,120,80,133,150,135,216,146,65,139,245,147,74,154,232,157,60,0,42,0,22,83,18,82,59,89,121,103,59,117,221,139,11,93,102,104,115,90,107,117,5,91,117,117,223,137,113,138,131,82,102,100,58,106,255,90,236,105,133,111,217,138,227,138,202,158,99,126,25,130,110,139,60,0,42,0,0,96,138,95,238,109,208,105,34,137,29,142,208,97,49,137,247,97,36,112,240,106,50,128,57,134,60,0,42,0,79,87,182,84,202,88,222,88,62,134,60,0,42,0,34,107,191,114,83,107,5,157,77,157,68,145,190,86,253,97,126,115,97,107,153,139,155,140,105,154,60,0,42,0,175,115,199,144,216,92,57,109,223,114,65,131,83,104,8,132,17,132,207,91,89,125,200,150,132,125,166,127,134,140,110,146,62,149,28,87,27,91,240,91,180,111,51,127,27,150,176,116,114,140,112,147,110,149,110,158,235,124,111,126,88,143,54,148,228,149,31,155,219,116,60,0,42,0,19,127,233,125,12,101,60,0,42,0,123,94,66,89,146,128,80,89,166,91,36,85,98,99,99,109,163,109,201,112,163,96,153,104,21,113,45,144,154,85,155,85,72,93,12,97,219,99,25,110,234,117,70,119,101,113,77,116,98,140,54,111,19,118,245,105,169,156,208,100,163,111,231,133,199,155,246,155,0,156,60,0,42,0,223,93,147,128,82,131,65,136,26,103,67,88,76,97,60,0,42,0,135,118,95,80,240,81,141,150,196,158,164,85,45,88,147,90,50,93,168,95,246,96,95,110,95,132,81,144,195,158,123,105,76,113,93,116,180,88,98,111,90,115,61,149,191,113,156,116,193,123,202,123,78,130,87,135,64,118,250,120,84,122,251,138,39,124,229,135,96,147,45,153,199,156,170,141,249,151,4,148,28,154,9,156,81,156,236,157,60,0,42,0,51,96,77,96,190,112,186,91,67,102,68,102,91,89,14,140,76,94,100,138,128,113,40,126,10,139,206,106,100,81,60,0,42,0,48,97,201,110,165,105,194,102,157,118,164,147,169,118,60,0,42,0,112,112,115,112,217,139,180,84,98,96,251,98,37,99,3,109,122,134,134,136,86,102,227,112,242,115,87,140,78,90,136,90,238,99,218,127,137,143,147,150,137,102,78,105,71,113,136,121,124,138,81,94,115,119,24,137,69,86,157,100,85,86,236,127,29,143,190,158,189,95,179,150,8,112,51,134,52,156,60,0,42,0,216,86,222,86,236,86,106,79,251,94,253,94,91,96,4,109,52,131,244,143,224,112,152,134,37,144,208,117,212,134,213,134,22,135,176,155,60,0,42,0,148,96,192,107,193,107,199,107,147,106,236,113,109,139,60,0,42,0,73,83,118,92,119,92,71,108,26,79,179,139,203,108,213,84,77,109,216,126,148,130,95,131,242,139,90,96,117,96,233,112,63,141,87,95,102,102,253,121,153,85,224,96,79,110,117,125,11,127,217,127,19,150,47,83,89,95,90,95,3,103,217,110,111,138,196,140,146,152,225,80,18,86,35,118,39,133,168,138,26,87,237,91,103,97,147,97,179,102,229,105,83,111,89,133,102,86,18,91,187,95,94,106,168,107,174,111,202,111,105,115,164,116,136,133,137,133,241,138,46,152,133,106,244,113,175,116,242,123,241,133,47,153,150,86,186,119,98,122,98,126,234,135,216,106,106,126,253,127,83,139,54,81,248,147,224,149,72,91,44,148,103,151,127,139,106,152,60,0,42,0,243,97,60,0,42,0,15,102,44,102,100,131,90,90,219,96,189,109,13,150,212,104,153,107,119,132,103,119,111,119,189,149,60,0,42,0,246,95,81,109,161,104,132,153,26,88,62,110,63,116,66,155,27,153,73,126,75,143,50,159,60,0,42,0,232,139,210,79,49,80,2,87,141,99,247,109,29,113,183,110,65,97,232,137,226,138,60,0,42,0,25,84,104,82,32,128,42,149,144,82,132,86,67,147,65,140,9,101,30,154,60,0,42,0,120,79,59,109,238,121,243,121,60,0,42,0,107,112,25,79,169,144,172,148,37,146,55,111,37,89,60,0,42,0,142,108,22,98,39,141,159,84,9,120,240,79,71,99,19,119,183,131,132,149,157,99,120,121,168,140,209,96,228,101,71,105,113,110,141,121,166,132,111,89,233,111,114,115,13,151,180,106,11,139,198,119,107,122,108,149,175,86,22,112,47,128,103,130,255,133,22,136,191,86,228,102,219,129,104,118,208,119,74,148,67,151,60,0,39,0,208,253,74,0,39,0,60,0,42,0,12,78,165,139,251,81,9,82,253,83,101,153,105,78,15,82,62,87,58,103,145,115,140,128,168,130,246,119,33,158,133,103,173,84,235,89,249,143,94,82,39,85,236,89,80,92,239,121,4,123,226,152,250,87,233,126,158,85,70,93,71,93,103,101,30,103,132,114,83,123,9,127,77,141,227,82,216,85,120,117,24,122,225,141,251,141,238,156,223,80,196,107,149,123,136,146,48,86,131,100,227,105,45,106,127,117,61,122,221,125,237,137,235,140,184,142,81,159,188,88,95,106,192,111,163,116,168,121,77,122,64,137,36,147,174,150,202,100,239,120,10,124,62,126,129,127,247,140,63,145,197,106,45,128,95,142,222,150,79,139,242,151,143,157,100,139,22,148,81,153,106,118,139,142,191,151,196,157,78,159,135,127,64,134,71,148,137,137,89,148,79,159,136,127,4,158,138,137,60,0,42,0,188,78,189,78,202,83,11,79,9,84,140,92,118,95,227,95,114,108,167,126,115,83,129,103,128,118,159,78,118,79,216,139,198,144,125,83,221,83,222,89,37,96,228,114,141,118,8,123,26,125,228,99,190,117,10,129,217,137,110,80,89,83,180,94,15,113,59,140,34,98,216,104,117,105,155,107,82,110,198,150,73,88,201,90,49,97,107,105,186,132,140,141,145,143,201,105,36,128,140,129,161,146,175,93,87,111,200,111,32,118,191,123,64,133,122,133,22,142,97,158,118,106,157,106,143,135,47,143,201,133,75,137,80,142,83,147,101,130,77,124,90,143,246,147,53,151,186,157,209,157,164,142,230,150,231,150,60,0,42,0,224,81,241,93,46,78,128,89,177,114,242,108,110,134,36,99,142,99,126,156,126,94,31,98,116,93,130,158,98,155,160,100,224,100,86,122,227,135,85,155,60,0,42,0,80,95,81,95,225,101,161,139,176,139,14,79,170,126,86,87,147,89,204,95,128,98,176,130,69,150,66,82,99,91,220,84,141,87,220,92,226,101,14,109,78,109,0,125,13,131,36,131,96,131,8,138,100,82,18,125,231,126,202,137,24,138,72,80,194,91,196,91,155,95,184,96,227,101,158,104,8,110,109,121,72,88,206,96,238,129,106,132,7,133,126,81,245,117,153,125,223,132,218,136,155,150,62,155,168,102,3,111,8,111,157,121,41,122,74,122,139,138,253,141,1,151,154,156,169,102,55,122,197,138,171,156,128,81,145,82,193,102,68,122,138,133,251,154,140,86,149,106,223,111,75,126,125,127,186,133,172,137,181,106,75,157,76,159,237,94,251,97,96,118,103,122,14,134,165,154,218,155,49,112,124,126,46,134,64,156,59,134,61,151,54,156,63,156,109,156,101,154,60,0,42,0,160,82,107,78,57,89,61,79,62,89,184,98,115,79,193,98,199,108,4,131,230,143,183,103,224,107,67,109,200,115,201,87,182,91,121,109,194,117,156,104,51,123,30,128,136,136,162,80,51,115,109,132,207,141,140,114,117,129,107,146,9,86,127,146,83,149,216,124,109,140,145,140,181,147,154,158,60,0,42,0,63,87,230,95,116,98,207,144,90,131,223,144,10,85,93,96,162,131,27,98,215,148,30,98,241,134,204,136,138,152,250,134,242,141,4,153,207,146,44,152,48,152,54,157,74,157,60,0,42,0,50,117,172,92,190,115,219,128,154,101,62,141,190,148,71,80,125,90,166,95,157,101,53,105,200,140,64,146,142,105,218,105,21,118,159,106,60,0,42,0,247,78,126,154,182,103,193,90,79,94,162,105,249,80,60,122,213,153,60,0,42,0,11,98,120,89,22,92,117,94,90,87,124,107,244,149,191,81,20,98,170,115,169,128,112,130,230,89,231,89,124,81,209,118,5,88,228,96,15,115,58,123,197,131,250,131,92,140,84,110,75,114,141,114,4,127,76,132,147,149,27,100,55,105,62,105,78,113,74,116,119,119,138,120,35,127,185,132,99,140,227,118,139,123,43,106,158,113,216,125,81,133,115,133,163,156,253,156,99,158,184,113,239,123,17,126,113,130,172,151,48,153,162,153,137,158,16,112,175,151,210,156,177,107,27,121,184,137,115,157,56,112,39,148,252,106,178,107,188,157,192,151,57,156,207,86,67,134,111,148,201,151,60,0,42,0,221,86,227,98,167,103,237,79,236,103,39,131,57,80,56,99,97,99,21,123,207,81,106,82,152,104,192,104,85,110,188,141,63,88,192,99,195,99,28,105,27,110,81,119,119,120,229,136,67,138,15,149,63,95,149,102,80,116,103,123,128,123,120,125,43,140,69,95,41,98,44,98,177,120,9,81,230,127,191,100,162,106,198,133,71,137,73,137,7,139,71,142,188,119,6,121,33,124,109,126,45,139,11,155,14,156,120,158,61,112,18,136,23,148,151,82,123,158,91,124,126,139,122,137,124,158,60,0,42,0,193,137,246,78,139,137,250,94,111,153,81,82,10,109,110,114,80,131,49,141,244,79,101,80,99,82,43,104,167,109,212,115,48,130,113,82,164,95,16,110,184,136,15,140,252,145,203,91,212,101,87,105,253,107,133,110,113,129,246,129,101,132,245,141,206,140,116,146,46,149,237,80,151,105,56,111,42,133,141,82,142,82,185,88,151,111,173,123,203,124,211,138,228,140,157,141,16,142,58,142,146,82,148,82,166,133,235,138,251,146,117,147,30,153,183,119,245,120,0,121,185,135,115,147,246,100,250,111,93,126,51,112,181,137,233,147,102,130,124,139,94,143,49,148,81,148,82,148,108,148,115,148,60,0,42,0,122,106,60,0,42,0,95,108,220,89,6,92,51,131,70,109,85,117,71,140,7,92,65,132,122,117,106,100,222,127,245,80,63,111,128,135,195,88,48,127,145,133,127,106,173,107,191,135,201,156,133,117,19,121,134,117,110,126,193,151,66,156,60,0,42,0,178,139,86,89,104,104,139,80,139,132,104,89,108,89,35,133,243,105,78,115,41,128,153,129,27,139,92,152,60,0,42,0,30,83,32,83,5,89,28,95,77,150,26,109,219,126,54,95,182,136,115,125,113,145,229,82,240,110,121,93,126,100,74,95,159,114,225,124,164,145,232,124,172,145,228,106,61,139,60,0,42,0,98,103,60,0,42,0,125,130,129,130,164,78,202,144,227,89,7,90,231,92,71,109,45,131,46,131,132,154,246,128,18,105,38,113,223,134,228,141,236,80,4,86,96,134,155,156,12,91,149,93,163,93,141,97,134,111,160,129,73,133,203,113,178,129,1,121,90,122,171,155,65,157,106,158,37,124,237,135,71,143,14,148,85,154,230,157,238,157,60,0,42,0,235,129,210,137,124,79,165,79,84,96,34,99,225,114,222,126,122,153,65,99,72,102,196,112,5,123,142,118,235,119,26,129,240,148,5,100,107,110,94,125,127,82,107,101,108,110,77,113,115,129,203,140,229,80,119,100,158,102,11,142,120,146,3,153,12,81,139,82,186,95,159,100,185,100,166,150,188,95,191,97,125,101,127,101,222,113,52,127,210,102,172,116,239,119,166,118,220,135,115,126,81,139,66,91,144,126,42,101,90,112,78,156,60,0,42,0,235,83,76,84,228,92,13,99,6,138,211,115,140,122,127,143,131,143,78,101,89,101,150,122,216,110,3,143,2,86,38,86,160,101,22,111,117,145,77,86,160,93,80,111,109,86,19,91,101,115,224,133,173,141,78,143,174,145,101,139,173,118,194,145,60,0,42,0,100,157,245,106,60,0,42,0,54,150,150,117,134,118,165,99,178,99,206,117,248,121,232,131,142,150,136,85,188,85,223,85,38,88,152,90,197,90,237,99,4,105,93,110,59,129,87,136,111,113,45,122,130,151,209,100,84,135,100,118,47,139,155,157,60,0,42,0,105,83,106,83,81,91,16,92,130,130,166,139,38,82,39,82,171,82,138,92,5,102,60,82,188,82,112,103,140,117,113,136,238,98,1,109,211,126,252,143,34,80,64,104,93,104,173,131,16,138,124,80,85,90,40,93,119,99,182,99,186,136,145,80,171,90,80,125,92,125,137,152,101,93,108,105,118,105,208,110,107,119,192,123,16,135,77,135,112,138,99,146,93,155,42,98,164,105,163,120,237,122,245,132,146,156,84,111,175,127,177,138,21,142,138,151,111,94,187,93,238,100,13,121,123,147,154,155,192,93,237,106,30,136,24,136,61,136,60,0,42,0,208,89,209,107,142,90,227,137,231,137,247,152,158,106,60,0,42,0,47,78,203,78,36,84,149,92,142,94,18,98,165,130,70,92,74,92,160,115,76,117,77,117,165,117,14,120,120,136,235,139,31,80,136,96,167,134,163,95,58,88,80,105,62,116,246,134,177,154,151,114,161,138,47,137,106,155,133,147,60,0,42,0,254,93,202,78,164,101,133,148,83,81,209,145,210,145,37,109,220,119,27,120,85,131,127,136,212,137,208,87,210,115,221,119,31,125,205,96,59,88,59,116,75,123,255,145,156,93,118,158,197,158,95,137,60,0,42,0,197,78,61,92,173,79,122,83,249,93,39,125,7,88,235,131,197,80,170,83,40,140,38,149,228,90,209,94,12,111,225,118,202,125,243,132,145,153,255,105,126,116,24,81,38,147,57,139,73,153,60,0,42,0,18,79,164,82,178,82,151,89,209,143,219,143,131,103,193,82,85,109,105,131,73,102,75,102,120,109,236,112,70,141,43,85,14,116,114,121,50,144,97,113,214,91,34,100,141,110,129,121,25,127,115,151,144,88,104,116,248,80,218,81,79,107,163,107,161,116,208,137,100,86,197,111,9,126,238,140,141,86,215,88,39,91,220,111,206,133,252,113,182,116,178,137,16,141,125,159,60,0,42,0,85,87,89,87,224,93,172,78,254,108,207,126,14,131,176,78,212,121,70,131,74,131,135,109,150,131,91,90,202,96,204,101,205,101,4,115,76,125,193,131,118,102,9,122,72,129,79,132,91,119,179,124,147,125,98,81,190,124,89,128,120,106,184,156,91,157,232,155,129,157,132,157,150,158,49,159,90,154,160,158,60,0,42,0,149,78,60,78,49,150,45,82,83,87,145,91,107,108,108,108,188,128,68,82,125,122,136,152,111,102,6,81,26,152,92,94,172,97,132,116,188,97,187,102,159,116,165,116,56,152,252,135,102,139,60,0,42,0,140,89,192,81,42,95,132,95,243,143,211,79,89,90,68,109,235,128,30,80,200,81,51,95,145,95,201,117,222,122,21,144,103,90,113,104,183,104,232,109,235,122,27,129,223,122,108,101,217,117,231,122,83,151,185,80,86,151,131,88,77,115,169,138,1,142,89,151,90,151,212,102,92,149,92,151,30,112,225,147,246,122,248,122,60,0,42,0,221,113,60,0,42,0,130,81,139,81,112,87,67,98,219,87,69,125,201,153,235,153,15,134,20,134,60,0,42,0,143,81,231,86,194,108,133,112,229,143,176,79,175,112,8,144,123,109,241,112,90,113,152,122,142,152,151,125,210,80,91,113,178,113,131,111,219,113,39,137,60,0,42,0,41,78,252,82,160,126,59,103,94,114,118,122,250,124,32,158,254,124,115,141,4,150,27,132,126,85,194,99,234,99,235,99,233,156,78,100,27,106,15,155,46,155,60,0,42,0,93,78,69,78,70,78,99,78,122,89,99,108,102,103,120,112,150,115,15,130,237,151,36,125,82,145,121,149,238,151,60,0,42,0,27,83,231,101,252,129,142,84,154,117,233,103,254,103,3,80,68,99,85,104,19,83,169,83,81,101,49,92,196,94,208,94,5,130,230,80,207,94,102,97,167,107,10,130,107,158,54,83,230,155,148,158,13,107,104,159,242,157,60,0,42,0,229,81,133,98,10,83,69,92,216,98,195,108,217,114,244,130,121,154,54,99,189,117,192,117,23,119,32,120,93,127,113,150,53,90,110,90,12,93,172,99,174,104,186,109,249,131,16,105,26,116,82,129,132,141,212,141,20,149,254,136,206,150,77,130,27,135,202,138,24,142,230,146,210,153,136,155,33,157,160,151,171,151,139,157,60,0,42,0,64,92,230,108,183,79,202,114,84,104,233,107,121,85,69,90,215,109,23,113,202,131,249,144,8,105,241,107,104,110,145,114,2,143,234,80,183,124,252,141,176,149,156,141,185,142,88,106,139,106,246,153,89,157,107,142,116,157,200,93,28,134,170,157,48,159,51,159,103,154,60,0,42,0,128,84,6,95,174,108,62,78,233,119,146,131,25,99,7,105,101,123,137,105,152,105,159,132,131,159,101,128,9,130,61,142,231,100,248,106,95,159,5,107,119,137,60,0,42,0,232,93,229,83,108,78,234,93,181,139,214,89,160,92,7,96,210,98,48,109,227,130,173,144,119,81,16,96,26,96,224,98,27,102,107,107,172,112,236,121,156,148,241,79,40,80,54,80,163,81,103,82,229,112,148,124,31,128,183,134,147,136,231,87,254,87,231,96,110,99,78,138,221,141,139,114,217,141,69,146,211,152,97,134,102,140,47,149,224,91,51,97,173,122,90,128,207,153,135,82,238,82,102,92,30,142,148,155,201,88,197,97,218,100,189,111,182,122,125,144,248,146,104,92,182,152,151,140,52,124,134,142,181,145,252,97,59,148,60,0,42,0,32,114,60,0,42,0,226,89,31,90,80,99,147,109,6,113,249,116,39,129,208,136,67,158,236,82,76,149,184,147,81,157,43,148,50,136,60,0,42,0,119,83,95,84,35,94,205,87,114,99,228,131,41,149,199,129,8,147,60,0,42,0,70,89,181,82,251,93,38,80,204,82,74,104,247,114,226,126,189,150,195,109,55,119,4,145,74,119,109,125,101,127,203,150,96,119,121,125,236,152,123,97,40,133,11,153,103,115,51,126,130,127,60,0,42,0,88,86,133,100,167,100,105,92,123,142,60,0,42,0,133,78,82,91,83,91,179,81,20,82,18,108,192,139,33,95,137,98,122,108,181,130,236,108,166,115,168,115,23,99,207,115,166,117,4,120,221,126,115,134,201,137,20,80,84,99,46,107,151,134,27,93,152,99,141,101,119,104,140,107,144,137,214,137,35,138,125,141,185,141,43,144,149,80,165,83,51,113,85,125,118,125,154,137,137,141,12,146,130,82,234,82,116,116,50,140,195,153,165,93,176,97,166,113,52,114,87,115,26,118,93,133,104,133,2,157,3,157,113,86,160,97,91,106,92,106,53,114,196,129,98,149,232,135,233,135,107,92,17,114,78,139,118,142,119,142,140,157,55,83,188,86,205,119,186,137,13,148,29,148,77,112,29,114,252,137,79,95,4,98,43,101,131,115,226,157,20,107,225,119,163,159,156,140,169,142,129,148,60,0,42,0,155,81,27,84,71,87,110,108,240,89,128,136,205,142,167,148,153,131,144,134,126,104,178,118,204,131,30,146,133,120,184,118,185,118,160,137,129,146,158,146,170,156,135,158,85,147,182,155,143,158,149,158,60,0,42,0,65,84,202,79,225,144,86,150,200,87,251,92,67,99,90,109,130,153,143,154,89,102,12,113,250,115,222,104,111,117,227,122,1,81,152,123,159,123,32,135,239,91,207,97,21,153,199,113,236,111,255,153,84,157,85,157,88,157,8,101,31,101,60,0,39,0,208,253,75,0,39,0,60,0,42,0,148,84,150,84,128,85,73,136,214,100,60,0,42,0,97,83,103,79,176,87,233,128,195,136,114,146,60,0,42,0,0,95,82,89,233,99,14,149,139,149,38,148,60,0,42,0,239,81,64,82,178,87,122,96,255,149,224,148,241,81,116,82,5,86,104,97,136,132,79,88,102,93,55,97,119,105,6,143,159,102,52,149,71,147,167,147,211,149,189,152,60,0,42,0,254,95,140,112,143,112,44,107,215,112,211,82,18,97,62,97,142,147,60,0,42,0,10,82,30,104,216,82,155,159,42,88,65,93,33,98,149,159,60,0,42,0,154,81,78,87,131,79,13,120,176,131,88,80,243,87,194,96,63,107,106,88,65,107,219,105,33,143,187,106,81,152,247,122,87,143,60,0,42,0,11,119,78,136,1,93,136,88,176,119,225,120,222,149,217,119,60,0,42,0,252,95,246,149,10,120,135,124,183,94,221,90,123,93,119,97,46,111,250,105,69,122,224,124,191,142,238,147,71,156,60,0,42,0,91,98,67,100,60,0,42,0,162,78,9,79,31,83,159,144,229,86,151,98,186,114,149,112,170,148,39,146,140,149,60,0,42,0,59,92,219,154,60,0,42,0,2,78,55,101,3,128,247,98,24,109,50,104,228,112,60,0,42,0,208,148,146,114,172,146,147,156,96,151,179,155,204,155,60,0,42,0,60,83,219,130,239,103,65,114,194,115,209,121,226,128,114,143,180,117,34,120,183,141,182,148,89,93,245,104,42,132,251,142,143,152,209,85,21,100,144,114,30,122,160,122,51,146,188,105,150,133,151,152,22,106,140,119,213,120,76,135,18,147,152,145,70,152,193,154,26,121,60,0,42,0,243,88,226,99,188,107,215,127,60,0,42,0,239,83,119,87,162,92,163,112,7,110,81,93,100,101,52,110,177,93,60,0,42,0,75,81,59,82,192,82,202,82,162,91,106,96,20,90,5,92,254,139,1,88,42,108,146,154,2,127,25,97,152,110,30,149,166,120,217,125,80,130,178,138,10,121,13,154,60,0,42,0,75,82,60,0,42,0,142,128,175,128,187,128,166,87,115,96,67,85,100,140,136,159,190,88,57,147,199,97,102,159,60,0,42,0,175,99,201,136,3,137,60,0,42,0,165,82,44,150,45,84,81,87,148,89,51,99,65,120,124,114,92,120,255,148,123,120,124,100,153,138,181,146,94,147,215,147,60,0,42,0,122,122,37,80,234,87,6,93,190,96,179,109,127,120,156,123,187,142,19,147,124,157,60,0,42,0,84,91,80,96,60,0,42,0,167,99,154,151,60,0,42,0,160,98,164,130,13,119,126,82,68,95,115,100,152,119,60,0,42,0,227,83,182,82,60,0,42,0,233,83,99,98,66,101,166,81,188,91,199,91,230,145,155,122,88,123,241,110,50,133,59,133,137,119,6,124,199,157,60,0,42,0,93,98,51,82,251,119,192,144,175,103,237,84,77,104,0,88,43,93,16,87,205,141,159,122,183,154,172,155,60,0,42,0,220,114,230,130,60,0,42,0,147,94,200,79,212,126,171,94,217,121,182,141,5,113,180,136,190,85,93,125,228,136,20,118,119,145,228,94,50,137,179,86,60,0,42,0,56,89,241,89,63,130,135,138,60,0,42,0,137,79,181,84,174,87,153,146,60,0,42,0,14,99,239,128,232,141,187,154,60,0,42,0,175,132,211,100,60,0,42,0,220,93,247,81,38,87,87,87,235,95,169,79,208,144,217,84,239,114,13,129,74,88,119,123,153,156,8,81,164,88,54,145,114,86,229,94,106,115,190,129,221,101,233,124,96,156,60,0,42,0,189,91,219,91,236,91,215,129,203,154,103,148,214,154,60,0,42,0,53,107,62,107,64,107,189,122,190,122,60,0,42,0,33,83,187,82,211,139,188,144,41,83,208,84,71,96,45,109,70,104,68,120,80,123,122,123,134,138,237,142,60,0,42,0,249,95,130,98,194,114,197,114,243,139,214,142,224,142,145,138,95,157,60,0,42,0,60,89,35,81,237,97,60,0,42,0,93,83,157,144,57,87,169,126,181,81,247,101,178,92,193,108,255,119,63,102,54,141,22,119,63,120,54,119,75,125,86,125,186,140,230,142,113,146,219,146,58,145,217,88,203,158,236,97,224,102,12,114,204,119,38,121,108,122,138,126,91,148,60,0,42,0,143,78,50,82,191,92,157,96,212,118,165,122,103,128,186,122,103,134,93,152,218,149,203,93,44,134,60,0,42,0,78,89,70,102,53,144,8,145,151,150,4,152,151,153,185,85,198,99,117,132,153,154,35,98,140,102,79,105,81,105,65,155,125,119,112,135,47,152,198,106,200,133,104,147,119,147,36,154,20,89,55,134,217,93,65,134,170,114,168,142,60,0,42,0,67,113,236,141,13,152,94,142,60,0,42,0,47,92,46,83,51,107,159,85,191,90,38,97,39,97,131,110,67,129,137,132,136,153,134,119,51,86,7,91,146,97,112,111,209,123,105,128,109,128,98,133,59,106,9,139,61,153,35,124,117,128,68,124,0,148,75,153,78,148,60,0,42,0,100,87,6,102,3,88,18,88,107,90,16,93,17,93,92,102,17,115,206,131,200,136,28,113,40,116,224,154,233,136,135,140,31,149,225,154,77,158,73,111,43,135,12,137,232,154,180,113,123,116,140,145,21,147,178,156,9,154,228,155,126,157,164,157,60,0,42,0,131,96,70,99,3,150,248,88,177,104,117,121,113,120,7,122,205,136,252,88,27,122,145,125,171,149,184,149,60,0,42,0,240,86,131,109,79,119,60,0,42,0,33,92,60,0,42,0,105,98,225,98,236,98,4,99,112,104,72,123,63,132,64,132,222,134,20,150,211,94,34,152,250,154,244,100,246,111,202,149,159,151,213,151,214,97,41,151,185,151,32,155,60,0,39,0,208,253,76,0,39,0,60,0,42,0,131,87,201,98,198,103,203,127,200,131,26,100,139,144,60,0,42,0,239,101,76,82,44,120,230,99,214,120,185,86,60,0,42,0,135,85,222,133,60,0,42,0,130,110,74,129,231,99,75,105,12,118,33,135,75,135,162,143,163,143,114,135,200,129,11,101,9,114,216,129,14,155,206,116,116,149,251,155,31,136,94,148,60,0,42,0,102,85,161,151,60,0,42,0,101,103,134,79,235,79,8,80,3,93,149,95,158,109,177,131,242,144,97,90,13,93,178,94,160,95,190,104,246,109,13,115,10,132,40,144,246,104,28,116,89,123,252,148,130,123,56,147,11,154,224,155,134,157,179,158,60,0,42,0,59,85,73,141,80,119,94,119,86,141,218,140,209,111,244,140,60,152,66,152,94,118,99,157,40,112,44,112,65,124,254,133,244,106,105,118,112,137,95,124,60,0,42,0,112,81,154,92,230,98,15,104,106,90,207,96,80,93,123,132,17,150,221,132,48,140,177,83,156,111,52,137,22,81,147,101,238,123,226,97,227,113,247,113,205,133,85,137,103,149,204,149,188,116,100,137,75,139,113,94,20,101,62,112,70,112,67,124,127,126,45,134,149,101,4,107,55,121,116,137,210,86,97,112,99,124,23,107,149,139,157,142,125,137,132,148,202,151,60,0,42,0,200,137,104,109,253,99,6,127,132,105,36,111,113,127,130,145,200,88,210,97,167,137,229,100,62,91,246,97,68,91,189,137,79,91,44,101,96,112,213,86,22,107,38,114,114,152,156,126,60,0,42,0,194,112,229,110,215,113,130,86,235,111,1,114,27,114,211,116,36,114,109,148,247,124,60,0,42,0,119,85,60,0,42,0,198,82,206,144,222,144,52,107,252,114,6,150,207,90,202,94,143,101,121,104,5,116,200,132,148,105,111,116,96,120,2,122,18,149,100,123,70,130,11,135,210,144,130,135,180,142,195,146,175,147,250,153,60,0,42,0,23,103,22,103,250,112,113,88,226,132,3,106,143,138,36,103,60,0,42,0,204,87,0,93,106,109,168,131,151,132,172,149,60,0,42,0,37,85,60,0,42,0,94,99,169,124,136,100,60,0,42,0,179,82,180,82,98,114,130,122,240,84,32,85,2,93,118,109,222,82,232,117,249,148,215,80,46,86,151,93,165,97,37,103,70,118,241,120,41,124,231,135,170,145,18,148,95,152,221,154,60,0,42,0,2,128,1,128,108,79,190,84,229,89,69,96,235,114,86,131,51,104,239,115,83,120,209,148,239,134,160,146,102,111,81,106,177,155,81,143,60,0,42,0,157,109,217,112,224,85,34,128,106,145,234,90,166,97,135,111,188,142,111,106,46,128,194,142,60,0,42,0,139,128,60,0,42,0,194,78,30,150,80,78,251,83,199,95,80,98,59,108,123,130,143,115,208,108,251,122,51,120,125,105,247,151,2,106,21,124,211,156,51,156,60,0,42,0,134,78,121,153,14,153,60,0,42,0,210,82,60,0,42,0,247,150,216,90,39,127,2,133,126,117,194,100,145,106,50,126,12,121,109,149,209,106,195,116,184,127,39,121,141,126,77,127,50,134,51,148,96,143,61,81,232,88,88,148,65,151,70,134,105,156,25,107,157,126,58,159,60,0,42,0,189,83,18,128,212,139,146,87,65,88,107,125,66,129,171,80,132,138,15,106,202,120,76,133,229,120,126,133,33,81,216,88,87,118,223,133,208,106,203,119,40,121,69,112,29,136,61,134,132,139,120,148,19,158,60,0,42,0,234,108,33,109,123,124,153,109,218,109,47,125,121,145,135,146,27,152,42,152,17,147,2,101,163,152,94,152,135,126,49,134,183,121,60,0,42,0,30,86,60,0,42,0,26,93,68,88,241,104,94,105,144,120,28,122,24,143,144,133,60,0,42,0,183,81,60,0,42,0,48,80,14,88,35,97,86,119,28,142,60,0,42,0,233,84,60,0,42,0,21,82,93,103,152,83,83,82,248,114,187,121,114,131,138,154,161,96,168,104,169,104,184,104,129,114,13,116,222,131,177,85,195,104,130,114,66,158,122,82,19,111,93,119,99,123,33,127,67,130,224,132,10,135,224,90,119,91,6,106,131,116,224,118,240,122,141,140,206,124,62,133,53,137,235,146,161,156,206,158,241,123,45,126,121,127,5,147,205,135,39,139,168,145,159,86,220,133,140,144,226,150,207,155,132,101,200,116,235,147,236,155,121,157,231,158,196,86,85,112,58,134,33,136,43,136,75,91,242,94,153,82,87,148,114,122,108,124,154,126,106,154,122,156,29,158,60,0,42,0,60,121,78,103,204,145,218,79,219,92,226,92,12,90,242,92,108,109,38,144,6,116,225,136,2,149,180,124,207,136,74,140,240,146,164,156,99,81,167,111,174,121,201,155,248,135,180,145,226,156,144,144,103,156,26,107,60,0,42,0,155,82,134,83,137,83,116,92,203,122,15,84,56,103,61,78,41,82,177,82,86,84,92,87,165,108,200,130,139,79,166,92,62,98,165,103,180,108,160,117,217,130,182,150,208,79,234,79,3,104,14,104,172,117,5,120,24,131,84,131,114,141,121,143,230,144,14,85,51,90,167,96,23,104,27,104,150,109,1,115,213,115,58,120,62,120,221,121,133,131,137,131,51,85,111,90,183,96,32,123,146,124,157,124,55,129,184,134,206,134,136,80,211,81,164,83,217,104,226,117,224,134,72,138,222,141,243,150,175,83,91,88,68,97,46,100,167,110,154,132,158,132,93,146,232,156,178,83,166,102,116,107,110,116,159,125,39,135,119,135,245,82,198,102,119,107,229,123,183,150,23,157,193,93,170,106,255,111,88,118,255,120,184,150,1,155,46,81,222,102,212,106,4,114,161,114,178,121,7,136,152,147,166,86,226,88,10,101,223,106,29,112,197,116,42,121,246,133,151,158,234,106,15,114,209,116,170,118,237,118,43,121,242,124,35,136,55,81,103,118,48,121,72,145,197,157,156,158,199,86,38,101,251,137,146,142,60,0,42,0,98,143,16,107,136,139,99,143,45,101,229,116,66,151,113,156,115,156,75,151,60,0,42,0,233,79,6,80,60,0,42,0,65,89,222,143,24,94,28,96,159,109,178,131,35,144,191,104,84,128,226,136,183,78,249,85,201,94,105,97,147,110,35,111,238,132,50,83,105,89,228,105,145,113,157,137,134,82,51,83,82,86,254,90,144,97,207,120,104,128,107,128,51,137,162,156,194,111,211,111,58,126,244,127,110,128,149,133,138,135,227,106,235,113,111,128,193,129,48,139,101,142,140,147,112,149,62,124,10,136,17,155,46,148,49,156,98,124,104,124,60,0,42,0,91,101,15,116,56,129,227,136,89,100,137,116,57,133,26,91,130,101,201,129,59,145,93,137,183,127,29,134,30,134,60,0,42,0,195,126,188,112,75,96,112,109,147,107,198,80,28,88,161,90,69,110,48,132,254,148,93,105,73,113,83,116,75,111,244,125,176,111,44,147,174,107,74,147,200,147,50,112,10,156,0,98,158,126,60,0,42,0,111,130,205,79,201,81,129,104,188,109,11,105,140,143,174,124,177,124,154,88,161,125,9,142,17,106,44,143,231,124,60,0,42,0,33,78,36,78,105,81,33,85,98,85,154,99,60,129,242,136,201,125,61,135,73,155,78,155,60,0,42,0,174,78,244,84,162,96,5,140,134,143,168,85,126,102,120,110,207,145,12,143,210,138,27,143,68,147,60,0,42,0,119,113,23,124,60,0,42,0,169,100,125,142,60,0,42,0,189,143,151,117,74,128,218,80,229,91,122,93,128,97,59,111,139,129,57,86,253,90,238,91,154,93,155,93,121,101,96,115,45,127,124,144,184,102,206,113,153,116,171,129,66,118,194,122,105,158,106,92,235,94,29,124,90,126,223,135,66,140,255,140,88,142,14,114,16,148,206,154,212,133,201,152,239,157,60,0,42,0,254,83,140,148,213,145,29,145,252,132,173,97,226,102,125,149,18,114,60,0,42,0,37,92,38,92,147,112,153,101,30,92,214,94,130,100,183,122,173,119,99,149,60,0,42,0,223,107,167,84,24,99,60,0,42,0,23,82,163,82,189,81,189,82,244,89,18,99,12,109,34,131,254,143,247,84,210,87,211,87,53,104,86,109,200,112,238,112,105,99,14,115,31,115,31,129,218,134,194,136,109,113,89,119,87,128,148,141,228,93,178,152,32,81,164,155,55,157,248,100,117,115,163,114,144,142,27,155,35,155,114,156,60,0,42,0,206,98,60,0,42,0,184,83,187,144,151,103,52,78,167,81,73,85,10,93,203,109,125,102,51,116,166,124,243,117,132,120,150,123,188,124,48,145,163,150,153,93,126,111,92,115,116,144,180,101,189,102,208,113,152,116,154,143,22,151,181,119,247,120,232,129,87,126,247,127,144,158,84,143,227,88,54,112,251,147,222,156,78,154,87,156,159,158,60,0,42,0,251,131,131,78,219,81,220,81,155,100,233,94,234,94,205,97,212,97,159,111,129,106,169,106,91,118,93,118,60,0,42,0,29,84,97,96,139,96,65,141,27,113,195,140,239,80,58,133,73,106,16,117,166,129,181,149,132,117,250,133,120,142,143,142,153,142,170,142,101,143,60,0,42,0,7,48,54,79,34,82,117,112,249,86,125,87,12,89,200,89,186,92,126,95,224,108,209,114,211,130,36,102,14,103,195,103,178,115,244,116,204,81,138,118,49,120,226,121,219,122,195,148,117,150,48,158,72,90,149,99,194,104,233,109,12,116,45,123,55,125,235,126,154,127,206,127,70,128,50,130,241,131,201,134,81,136,126,121,69,138,201,141,232,142,228,132,236,136,52,146,157,149,246,150,132,159,190,125,6,133,10,151,214,153,170,111,118,133,2,147,23,151,127,155,174,156,18,157,119,158,239,113,27,151,29,151,98,159,67,145,234,155,65,91,38,134,97,159,250,106,189,145,72,151,30,107,39,114,162,158,151,159,60,0,42,0,62,150,173,92,138,136,134,152,24,152,186,93,60,0,42,0,228,78,230,83,100,84,169,112,60,0,42,0,46,112,60,0,42,0,156,110,152,113,83,142,60,0,42,0,24,82,160,108,68,117,79,109,65,109,89,117,200,101,9,116,113,117,107,120,215,136,185,90,103,93,210,101,165,132,197,132,91,144,143,153,157,154,180,105,96,116,215,152,137,82,108,116,36,118,194,120,79,149,224,153,96,158,74,106,162,116,129,117,96,149,69,118,201,135,245,153,160,86,240,97,15,112,240,133,143,147,166,147,141,158,208,147,192,152,2,148,46,154,197,152,33,156,185,157,81,154,60,0,42,0,243,103,1,104,94,104,203,115,122,104,250,126,13,149,90,146,185,125,174,113,118,127,246,146,110,106,60,91,128,127,60,0,42,0,109,81,66,117,207,127,111,88,199,94,145,111,223,120,104,158,36,151,62,153,225,150,194,152,56,155,218,157,60,0,42,0,214,86,60,0,42,0,153,159,120,92,153,84,247,108,15,131,61,102,10,104,209,115,231,128,44,119,59,120,220,122,60,123,75,128,134,150,112,110,221,110,144,93,222,105,11,111,111,133,67,118,191,122,237,123,141,159,168,86,195,93,196,93,39,112,34,134,231,147,51,151,232,102,39,103,243,106,22,114,207,116,211,119,49,121,50,121,113,137,146,159,96,124,126,128,42,136,44,136,69,140,152,142,104,148,71,151,97,154,23,158,60,0,42,0,71,150,132,87,133,87,226,98,226,123,49,81,180,150,223,88,224,88,15,101,201,122,147,159,60,0,42,0,226,84,135,104,191,95,26,141,60,0,42,0,156,119,60,0,42,0,69,82,4,90,123,80,65,90,189,85,135,110,140,132,194,80,124,105,13,86,212,94,122,97,10,111,30,133,113,144,19,106,161,113,39,128,124,135,44,128,91,130,187,135,49,139,193,142,197,154,187,151,207,154,60,0,42,0,93,93,2,100,127,88,129,93,95,100,10,117,211,123,13,124,60,0,42,0,75,150,90,92,15,111,24,118,66,149,58,118,59,118,228,147,60,0,42,0,92,86,184,100,34,139,60,0,42,0,98,83,144,94,166,130,134,87,166,103,248,108,137,112,12,104,234,128,115,143,46,130,44,158,136,115,59,130,133,152,41,146,136,156,114,155,231,118,167,86,218,88,236,94,14,101,24,112,121,115,183,116,6,134,229,102,232,106,16,114,208,116,218,129,209,119,90,124,145,126,79,127,107,130,38,136,100,143,106,148,113,152,215,154,120,156,21,158,248,158,60,0,42,0,100,83,79,134,179,99,117,158,117,120,129,156,92,134,119,88,247,110,254,132,16,106,155,111,111,155,196,100,121,106,224,120,101,149,149,86,252,100,2,112,211,106,12,108,99,130,192,147,106,130,42,148,101,148,60,0,42,0,37,87,42,117,70,150,147,79,116,87,84,95,85,95,205,92,206,82,66,141,130,143,120,150,61,90,213,109,229,109,12,110,73,120,201,131,47,144,127,158,2,105,45,116,132,121,127,121,199,80,121,82,224,82,221,118,105,119,140,120,17,122,194,140,239,141,118,88,216,94,93,100,9,111,147,123,182,124,13,133,46,98,26,106,157,113,148,129,238,137,162,141,27,142,152,143,129,145,94,111,75,122,87,133,4,147,50,147,52,147,144,116,15,124,176,135,54,124,87,142,70,143,4,154,109,158,44,124,53,124,213,147,229,155,102,157,113,157,147,158,244,147,50,151,60,154,89,124,66,134,250,157,60,0,42,0,7,108,60,0,42,0,116,154,254,149,136,105,173,149,191,153,0,108,162,129,218,106,216,133,220,157,98,154,60,0,42,0,21,84,66,84,163,79,216,144,182,79,20,99,91,99,75,99,197,101,160,104,18,113,99,121,6,122,221,148,97,92,125,125,21,127,98,92,130,129,27,137,193,146,101,92,144,129,56,137,34,81,94,122,55,126,109,122,60,0,42,0,253,91,143,87,139,95,81,134,135,115,255,126,66,93,47,108,78,132,228,110,160,125,209,125,110,97,187,123,159,129,244,82,66,126,254,111,214,106,8,114,98,148,60,0,42,0,8,90,106,91,230,92,27,99,62,104,62,158,20,129,230,110,174,146,73,157,29,87,113,89,76,91,127,91,210,93,35,101,235,102,18,107,83,112,137,127,224,129,30,87,100,112,74,134,126,148,116,118,117,118,30,158,60,0,42,0,117,83,60,0,42,0,113,78,224,145,130,78,60,0,42,0,160,99,101,117,103,117,10,149,36,122,25,87,221,146,226,146,253,100,60,0,42,0,161,98,132,99,60,0,42,0,209,78,38,79,245,86,166,108,182,126,150,79,110,143,43,80,111,150,7,87,104,90,24,93,25,93,192,96,234,109,213,131,198,104,64,129,184,125,38,135,26,142,42,143,238,120,0,147,233,155,60,0,42,0,232,87,150,120,16,122,35,128,60,0,42,0,186,139,163,110,214,138,60,0,42,0,87,127,112,85,49,152,201,86,60,0,42,0,86,127,33,115,54,129,29,132,59,144,36,105,97,129,153,137,35,149,169,123,161,154,89,149,186,135,133,127,182,137,205,147,56,81,188,137,62,154,30,101,128,115,63,134,143,144,15,107,88,154,1,158,110,124,124,148,96,153,60,0,42,0,70,82,46,80,207,132,248,136,182,142,48,118,3,136,221,129,234,102,115,118,60,0,42,0,250,108,200,92,27,109,220,126,102,131,134,154,28,109,222,115,102,120,63,123,97,125,61,132,94,100,47,111,150,114,123,146,210,150,241,153,165,155,60,157,69,157,252,111,153,126,60,0,39,0,208,253,77,0,39,0,60,0,42,0,99,84,60,0,42,0,136,89,86,91,189,90,36,91,55,91,60,0,42,0,187,158,242,117,52,133,152,114,198,135,199,135,60,0,42,0,108,154,155,115,1,120,130,134,172,153,164,110,100,144,106,116,188,120,158,135,183,147,34,156,204,157,60,0,42,0,184,114,105,103,67,121,129,149,130,154,27,85,140,80,65,115,112,119,28,86,170,105,161,121,117,127,225,153,35,121,21,155,60,0,42,0,135,78,23,84,206,85,27,86,242,90,60,0,42,0,203,87,182,133,62,151,60,0,42,0,112,78,108,131,183,140,42,86,82,133,246,157,60,0,42,0,162,82,200,143,69,79,242,88,166,158,86,83,9,129,8,129,165,158,71,136,241,82,227,140,129,144,33,151,34,151,60,0,42,0,218,90,159,152,60,0,42,0,207,89,151,96,238,134,200,80,41,140,114,97,146,153,32,106,146,119,158,119,148,151,82,142,62,139,69,153,215,156,98,152,23,155,24,155,59,156,59,136,60,0,42,0,88,92,128,110,76,119,225,110,255,110,168,135,84,137,206,135,203,147,213,119,60,0,42,0,252,102,36,145,129,88,84,94,98,97,113,100,43,111,76,115,38,127,4,133,19,133,254,105,179,113,183,111,88,149,53,126,221,147,48,134,60,0,42,0,100,114,60,0,42,0,153,144,2,84,217,95,82,108,146,130,40,92,87,103,103,103,19,108,242,118,126,96,0,123,43,131,228,84,15,90,172,94,93,109,245,114,123,114,109,120,239,145,211,148,221,117,214,134,233,146,249,153,60,0,42,0,189,131,190,131,101,120,59,131,254,88,45,111,210,135,14,136,60,0,42,0,43,115,147,140,60,0,42,0,219,107,219,119,134,103,102,114,5,131,6,131,196,101,94,127,94,81,53,110,222,142,85,145,37,88,26,149,230,154,2,108,155,114,101,135,243,154,40,147,202,135,156,157,60,0,42,0,135,81,111,83,24,89,110,78,60,98,193,92,214,108,52,102,198,148,55,123,233,132,60,0,42,0,131,81,131,118,188,130,144,81,2,131,146,81,213,103,10,119,56,141,4,128,164,136,146,137,162,90,61,94,58,132,191,140,26,145,23,97,147,102,89,105,247,107,65,116,128,119,140,140,46,145,80,135,203,97,60,0,42,0,146,86,60,0,42,0,72,78,188,158,249,111,156,86,102,118,60,0,42,0,69,84,70,87,146,108,161,108,154,103,171,115,250,130,2,104,9,119,18,90,4,129,147,131,133,104,251,115,34,129,255,144,51,88,146,90,75,93,68,110,72,110,56,115,66,119,127,132,99,105,115,105,100,113,66,116,150,121,92,129,122,88,209,105,118,145,69,149,91,158,194,146,9,151,72,122,190,95,135,147,192,119,23,101,42,134,165,157,244,158,60,0,42,0,206,107,207,107,194,81,142,127,52,99,124,109,132,90,68,93,60,110,186,90,65,149,13,91,216,113,190,142,130,147,227,158,60,0,42,0,185,89,186,98,172,108,192,101,39,102,89,121,130,136,27,119,154,90,208,91,215,117,202,141,61,155,93,113,120,119,206,151,69,155,195,123,94,135,60,0,42,0,26,105,60,0,42,0,232,149,106,98,167,115,148,148,128,149,133,149,107,99,219,131,138,116,70,147,185,78,75,134,60,0,42,0,247,149,22,113,182,96,170,102,220,113,209,97,227,97,60,0,42,0,236,78,17,80,60,0,42,0,221,100,60,0,42,0,63,117,123,134,161,81,148,131,12,132,149,110,223,118,153,132,13,117,26,81,87,106,162,119,68,133,113,135,51,145,56,145,106,94,222,97,219,111,218,102,38,103,172,106,11,108,199,119,30,121,205,155,114,158,104,130,9,134,210,119,63,151,64,151,91,153,109,152,6,159,15,158,60,0,42,0,208,82,27,115,254,116,48,149,75,130,34,135,220,97,116,115,51,147,245,97,19,136,237,155,60,0,42,0,95,91,166,104,34,89,35,89,37,151,60,0,42,0,185,99,60,0,42,0,170,84,47,119,135,119,60,0,42,0,158,81,37,95,98,121,247,143,174,136,21,115,28,140,190,132,120,138,14,139,154,145,76,95,223,100,220,124,59,126,138,158,139,158,176,121,97,151,48,112,124,115,155,158,126,149,2,98,32,101,213,116,60,134,34,114,190,145,191,145,13,158,196,145,60,0,42,0,115,124,136,130,142,79,181,108,139,127,45,95,35,109,73,101,43,119,142,124,18,129,51,110,94,132,29,133,164,146,212,111,74,91,86,112,60,0,42,0,150,81,248,124,104,108,149,108,147,91,204,108,197,137,218,92,85,121,187,91,216,121,198,91,231,109,147,137,148,137,66,94,39,140,83,88,78,94,155,137,39,86,147,105,245,110,30,111,144,113,36,133,28,135,15,159,170,81,18,106,102,94,215,111,204,133,16,139,193,106,26,124,131,127,60,0,42,0,128,91,135,130,99,103,32,119,66,90,245,126,148,90,201,104,191,125,220,125,241,129,82,135,53,91,176,106,203,106,200,119,202,119,207,119,60,0,42,0,15,78,69,108,77,81,148,108,254,158,201,82,4,119,41,90,109,80,149,81,212,82,17,110,149,85,16,97,78,110,5,127,66,132,123,125,124,129,253,158,236,125,160,111,184,155,60,0,42,0,99,151,98,151,198,124,170,158,171,158,186,158,181,158,60,0,42,0,181,85,60,0,42,0,215,130,140,90,207,99,132,119,75,158,249,90,226,125,147,157,89,156,60,0,42,0,106,103,7,119,210,121,252,109,58,110,8,127,206,123,242,125,208,133,136,144,60,0,42,0,153,89,153,94,133,115,215,122,191,94,223,94,60,0,42,0,92,78,0,84,169,84,246,84,109,91,60,0,42,0,109,112,213,112,149,137,35,100,197,110,17,133,142,133,19,157,109,94,241,97,254,123,215,106,27,136,74,136,86,148,116,156,60,0,42,0,17,108,196,89,183,92,222,95,11,96,251,101,252,101,224,130,201,115,255,118,7,120,96,127,15,93,106,99,24,116,29,116,23,127,73,116,251,117,136,120,49,146,205,125,225,125,9,147,22,157,114,147,60,0,42,0,191,118,186,81,33,82,245,149,191,98,239,108,196,82,67,101,253,149,175,96,79,101,34,123,61,123,253,96,99,110,148,149,13,97,111,101,139,102,169,149,246,80,92,97,171,97,99,111,34,124,216,156,32,136,53,156,60,0,42,0,138,87,60,0,42,0,13,84,14,102,35,158,58,109,0,119,23,131,165,81,25,103,51,119,237,148,13,145,199,90,159,110,61,115,194,132,157,102,160,105,152,146,244,156,145,119,159,135,173,137,60,0,42,0,114,79,243,89,213,81,79,97,105,145,60,0,42,0,125,84,39,105,122,138,60,0,42,0,181,99,60,0,42,0,44,140,44,139,60,0,42,0,120,100,60,0,42,0,133,94,27,92,31,140,235,90,141,153,121,100,33,106,156,129,189,158,105,100,121,155,69,106,232,120,226,124,40,139,41,139,164,86,245,100,67,153,169,86,176,86,17,134,205,154,84,155,152,82,93,153,60,0,42,0,185,98,225,97,60,0,42,0,43,103,176,82,61,87,186,89,19,94,126,107,127,107,129,107,171,108,9,131,76,150,30,94,41,102,186,103,28,85,140,118,28,119,63,119,30,120,227,121,136,131,171,131,61,119,150,124,72,125,80,110,232,134,131,140,252,85,123,88,222,91,32,111,79,115,230,132,138,140,175,102,134,146,122,151,252,90,217,158,60,118,144,119,153,119,70,149,105,155,168,88,216,158,14,112,152,140,230,133,212,135,204,147,5,114,64,154,51,121,134,126,49,128,60,0,42,0,61,96,191,158,60,0,42,0,222,84,60,0,42,0,95,114,148,79,186,82,72,96,32,109,56,119,11,140,209,134,42,127,14,142,126,146,0,139,180,119,70,126,106,147,62,157,176,158,60,0,42,0,208,103,60,0,42,0,234,107,1,108,178,88,60,0,42,0,205,107,169,78,97,114,118,87,198,89,199,98,212,92,115,114,70,117,82,117,223,128,93,117,94,117,42,120,110,117,103,146,7,142,60,0,42,0,40,103,235,78,48,103,238,118,233,81,144,108,199,114,145,112,103,114,220,130,227,107,175,131,158,134,188,148,223,82,238,150,147,88,85,94,89,94,84,97,88,105,102,119,108,146,85,97,174,102,82,130,2,151,70,122,56,126,170,151,60,0,39,0,208,253,78,0,39,0,60,0,42,0,239,85,60,0,42,0,207,98,255,98,16,99,241,85,78,149,191,147,60,0,42,0,120,78,234,84,235,150,60,0,42,0,163,144,54,84,80,84,160,89,179,126,173,128,28,90,114,136,160,148,13,125,166,136,122,99,29,123,125,140,220,142,128,140,9,146,179,132,121,151,118,155,60,0,42,0,73,129,139,113,104,100,123,91,60,0,42,0,67,78,118,89,127,130,22,108,147,117,179,89,252,94,250,143,55,80,226,145,45,91,60,0,42,0,72,89,240,103,15,128,16,128,24,132,63,110,16,159,38,137,154,135,60,147,60,0,42,0,225,86,60,0,42,0,55,117,169,98,143,103,189,79,87,83,223,103,26,90,88,117,174,131,190,150,131,85,86,144,148,102,96,105,245,138,227,150,60,0,42,0,103,141,199,99,115,110,51,132,117,113,105,129,123,135,1,98,60,0,42,0,123,90,60,0,42,0,212,86,60,0,42,0,106,78,162,86,104,139,202,86,48,136,30,155,149,153,28,107,98,153,60,0,42,0,195,100,233,102,46,101,98,112,60,0,42,0,62,81,73,159,60,0,42,0,108,91,60,0,42,0,118,84,19,96,32,99,241,92,71,120,217,148,49,115,242,134,73,138,153,120,147,100,169,93,185,97,239,135,18,89,74,139,3,148,206,93,60,0,42,0,180,87,124,96,169,96,17,129,24,83,51,129,22,88,241,96,208,90,89,116,102,129,175,120,118,115,127,115,60,0,42,0,249,149,101,90,214,109,153,149,39,155,209,129,60,0,42,0,146,117,183,139,144,98,50,119,37,138,60,0,42,0,98,84,60,0,42,0,30,90,129,153,46,129,71,129,18,153,190,155,216,155,60,0,42,0,103,81,133,81,29,108,23,147,60,0,42,0,65,96,233,90,240,90,60,0,42,0,253,128,60,0,42,0,174,89,60,0,42,0,60,92,109,87,41,96,229,108,126,124,42,80,84,92,220,121,243,144,204,148,255,87,87,90,227,109,10,115,173,134,255,104,220,141,93,129,99,128,58,135,236,137,142,140,23,143,19,151,181,156,226,155,145,158,111,159,225,129,60,0,42,0,49,79,96,79,223,98,179,98,212,114,232,130,197,103,206,101,114,102,116,91,46,146,156,153,23,81,30,81,172,150,236,100,191,133,183,106,123,128,60,0,42,0,112,92,60,108,50,79,225,143,53,102,210,128,6,144,63,83,36,119,4,88,196,96,223,90,53,97,186,110,104,119,123,129,177,102,12,126,189,138,169,129,58,91,60,0,42,0,200,98,43,133,60,0,42,0,116,94,202,121,214,84,229,121,135,156,142,155,182,156,71,157,207,158,240,155,60,0,42,0,138,109,123,99,240,109,62,113,200,141,135,143,151,143,154,100,181,100,190,120,38,143,16,124,77,142,6,101,104,142,142,142,60,0,42,0,68,83,255,94,245,95,233,89,56,85,221,87,76,130,60,0,42,0,24,90,34,91,67,91,60,0,42,0,127,145,184,145,192,145,60,0,42,0,31,158,17,131,133,136,229,156,203,90,202,136,38,133,34,106,29,91,45,137,50,91,60,0,42,0,63,92,50,129,60,0,42,0,79,99,209,99,60,0,42,0,246,130,60,0,42,0,7,94,60,87,191,103,103,150,133,109,198,117,66,128,236,129,110,85,215,96,205,131,137,150,166,85,92,101,124,110,235,85,114,93,2,142,91,86,112,100,247,105,23,142,25,142,74,149,77,149,173,93,222,123,242,129,28,147,158,152,81,142,153,86,118,128,179,147,209,149,124,91,125,91,241,106,75,124,22,134,193,86,103,159,213,93,241,124,245,124,37,136,72,148,211,86,152,139,161,142,119,148,115,152,128,148,60,0,42,0,220,86,168,96,60,0,42,0,240,98,60,0,42,0,12,129,60,0,42,0,129,91,155,84,231,98,222,114,231,130,224,103,77,128,205,91,213,91,47,117,215,91,220,91,231,91,28,81,221,81,128,86,35,91,240,100,112,115,180,133,184,106,121,128,79,148,33,155,11,158,60,0,42,0,99,106,195,119,60,0,42,0,94,79,171,79,222,108,63,80,157,111,216,111,60,0,42,0,158,89,60,0,42,0,91,114,92,114,124,108,60,0,42,0,248,95,109,98,195,114,189,126,132,112,174,148,16,125,165,131,21,146,117,151,60,0,42,0,156,81,172,79,221,84,83,109,19,129,254,121,178,143,2,81,179,143,101,86,195,111,125,133,130,106,246,113,175,121,191,129,96,122,91,137,178,145,1,107,60,0,42,0,119,126,60,0,42,0,4,95,10,99,53,99,81,118,72,159,60,0,42,0,186,127,60,0,42,0,66,85,60,0,42,0,200,105,40,128,115,115,189,106,146,147,30,148,115,139,60,0,42,0,116,89,101,91,125,154,47,123,209,153,60,0,42,0,46,79,170,82,41,95,46,120,236,128,60,0,42,0,18,96,137,80,25,100,60,0,42,0,115,89,149,148,121,124,249,145,60,0,42,0,145,108,66,136,103,96,18,103,68,136,60,0,42,0,123,89,60,0,42,0,28,110,150,102,86,113,87,113,42,153,60,0,42,0,159,117,80,134,120,120,39,118,60,0,42,0,193,158,60,0,42,0,205,144,42,99,155,104,169,80,58,81,60,0,42,0,96,106,60,0,42,0,250,139,143,85,191,99,61,144,30,97,38,100,24,149,59,100,146,105,44,122,254,138,67,142,209,124,230,97,231,97,229,124,100,122,239,124,60,0,39,0,208,253,79,0,39,0,60,0,42,0,148,85,98,86,60,0,42,0,230,84,60,0,42,0,180,139,164,108,39,107,180,107,239,116,37,158,125,123,120,88,26,111,80,107,198,107,176,113,12,117,146,129,14,157,217,106,242,133,51,139,194,147,215,157,60,0,42,0,117,159,60,0,42,0,24,84,85,84,118,80,98,129,20,86,38,128,69,133,213,133,60,0,42,0,4,96,106,97,60,0,39,0,208,253,80,0,39,0,60,0,42,0,145,89,133,118,180,141,37,130,106,85,105,132,60,0,42,0,119,103,44,114,177,99,54,116,98,123,86,111,60,0,42,0,10,94,21,94,21,96,153,136,60,0,42,0,205,98,60,0,42,0,243,79,152,95,146,99,5,115,209,104,76,114,43,143,48,124,50,124,164,114,60,0,42,0,249,94,60,0,42,0,204,84,62,109,18,110,67,110,142,132,131,147,60,0,42,0,5,119,104,117,32,132,88,111,0,101,60,0,42,0,63,114,0,109,216,118,216,141,187,90,75,94,176,132,43,100,195,105,228,118,208,120,15,126,251,120,10,112,224,135,99,142,156,147,182,151,60,0,42,0,184,81,36,82,156,108,218,98,238,108,141,112,219,83,73,114,252,118,84,117,65,128,162,136,74,138,191,110,22,152,236,146,101,157,123,137,123,148,60,0,42,0,83,78,151,108,238,128,241,150,194,110,150,129,54,151,60,0,42,0,144,83,158,94,150,83,4,144,193,101,61,130,206,90,172,95,131,135,209,156,142,159,144,159,60,0,42,0,217,85,42,128,171,137,60,0,42,0,144,112,168,128,214,128,60,0,42,0,155,98,203,98,44,129,34,132,60,0,42,0,40,82,134,84,137,87,150,94,205,114,176,112,46,114,141,136,15,83,243,142,132,151,28,137,131,158,133,158,60,0,42,0,209,141,60,0,42,0,69,89,225,108,174,112,177,117,176,118,50,120,173,158,31,121,46,121,60,0,42,0,120,84,12,96,167,128,248,103,218,128,67,136,133,145,60,0,42,0,43,150,106,150,249,87,240,107,84,141,43,149,244,136,245,136,224,140,205,153,60,0,42,0,214,79,60,0,42,0,2,79,155,108,105,79,20,94,245,89,190,101,198,101,127,109,238,115,77,145,220,132,148,143,183,153,143,93,8,151,97,143,60,0,42,0,183,85,116,86,85,107,60,0,42,0,235,116,198,118,83,110,80,132,60,0,42,0,96,84,248,127,60,0,42,0,175,85,60,0,42,0,9,83,38,96,168,98,114,96,48,120,136,104,249,112,81,120,239,142,155,149,48,111,45,86,142,111,222,120,60,0,42,0,131,130,11,103,55,99,252,122,23,80,145,131,11,88,56,95,109,95,218,104,22,105,115,88,124,120,29,122,236,132,79,158,240,105,37,106,162,113,137,97,35,143,227,123,247,123,168,129,11,147,248,151,252,154,218,135,219,135,5,155,132,126,21,134,252,151,108,157,47,154,20,155,93,148,60,0,42,0,103,99,206,109,143,118,123,82,60,0,42,0,189,99,42,105,176,120,43,142,60,0,42,0,21,78,19,79,62,79,121,98,176,126,179,144,111,87,171,98,183,98,139,112,201,114,18,120,130,96,219,121,224,121,21,125,205,148,199,101,205,127,26,128,126,140,8,146,26,146,57,146,95,146,148,146,136,82,199,120,211,153,236,154,124,86,3,147,13,147,126,155,141,155,181,97,20,121,21,121,57,151,60,0,42,0,174,118,48,150,152,130,175,92,135,103,222,107,211,114,182,128,215,107,216,107,178,117,141,134,235,144,116,150,100,85,228,87,37,93,189,134,190,134,124,140,55,113,53,116,62,129,87,129,143,156,116,127,141,129,49,135,110,155,192,88,250,123,183,135,148,140,103,157,134,127,7,103,25,159,47,136,60,0,42,0,57,83,128,94,139,117,243,78,46,87,201,130,52,129,222,117,162,146,192,138,4,157,215,100,125,86,86,118,173,86,60,0,42,0,65,92,224,109,202,99,253,145,178,90,211,90,101,119,159,143,78,111,43,122,251,80,188,111,138,86,19,117,136,117,108,139,226,149,255,157,10,158,60,0,42,0,232,86,79,80,165,90,143,114,199,123,233,127,66,147,163,157,60,0,42,0,136,154,252,128,29,140,65,129,68,105,105,105,198,140,240,141,218,138,191,154,65,142,226,153,8,154,60,0,42,0,145,137,181,140,222,138,60,0,42,0,71,114,151,154,120,155,23,154,25,154,60,0,42,0,125,82,111,95,83,97,37,127,216,152,218,101,242,127,181,135,165,114,195,152,196,152,82,155,60,0,42,0,214,90,226,116,184,133,221,149,60,0,42,0,141,107,159,119,251,123,57,126,165,145,171,118,96,152,60,0,42,0,104,121,196,80,225,82,12,86,177,95,2,111,60,0,42,0,21,108,135,100,134,100,188,102,165,119,60,0,42,0,63,78,228,130,5,148,60,0,42,0,243,90,60,0,42,0,216,89,252,98,23,121,102,122,170,153,94,154,60,0,42,0,173,115,43,141,38,90,167,140,21,116,212,90,145,152,59,152,42,91,178,133,172,86,201,119,25,136,166,152,112,152,60,0,42,0,193,84,128,105,60,0,42,0,93,114,86,108,88,128,60,0,42,0,82,78,57,117,220,79,9,90,132,109,47,120,96,128,117,130,238,122,41,152,60,0,42,0,115,94,196,139,237,81,111,84,106,87,188,92,217,108,249,130,241,144,79,92,33,94,176,103,52,109,182,115,211,128,83,131,246,116,91,92,50,94,220,109,13,132,178,134,64,88,72,94,41,113,1,117,62,127,241,132,226,134,85,138,255,142,134,156,244,81,127,97,179,123,39,143,145,97,131,155,152,106,8,124,11,134,60,0,42,0,139,148,97,87,165,92,202,108,252,108,140,110,85,146,23,152,81,111,250,147,60,0,42,0,70,90,25,86,34,133,49,145,164,118,8,139,199,106,60,0,42,0,245,83,0,92,183,148,56,123,135,152,202,153,60,0,42,0,182,92,235,143,64,101,34,102,38,109,192,115,222,112,52,120,54,120,217,145,149,124,102,145,170,132,68,155,151,145,60,0,42,0,114,104,60,0,42,0,86,82,29,90,60,0,42,0,148,98,153,98,74,99,138,99,210,136,129,123,7,147,60,0,42,0,133,84,227,84,68,90,131,114,60,0,42,0,198,78,52,101,53,101,81,98,135,112,96,150,87,86,178,100,125,111,200,100,198,155,60,0,42,0,36,87,13,83,134,131,47,129,233,131,208,131,97,132,177,132,178,132,213,80,122,145,163,88,91,115,158,116,238,111,168,119,89,122,100,149,12,141,128,126,247,147,60,0,42,0,52,103,3,87,102,109,243,112,110,102,17,87,165,110,156,102,49,140,233,138,56,106,6,108,143,106,104,149,92,139,124,142,32,148,60,0,42,0,250,148,22,130,23,130,234,146,17,112,221,102,60,0,42,0,236,93,237,93,60,0,39,0,208,253,81,0,39,0,60,0,42,0,3,78,201,143,143,108,187,89,210,103,27,80,196,81,22,104,100,104,234,144,56,90,189,96,26,98,127,99,124,104,210,109,11,132,50,101,31,103,242,104,58,107,42,125,227,134,4,137,219,80,1,86,125,97,191,105,6,111,192,125,124,97,237,105,198,138,255,138,11,151,74,142,76,155,218,147,136,157,60,0,42,0,147,78,65,121,80,159,59,87,144,92,147,92,239,95,170,130,157,78,118,81,71,89,137,101,103,107,71,121,72,121,181,128,223,79,167,117,210,122,88,82,138,101,194,101,6,128,16,129,145,134,148,134,154,134,128,152,252,87,14,93,58,94,145,99,199,109,9,115,102,117,1,132,21,132,194,141,221,142,238,145,144,154,145,154,92,93,202,104,203,104,38,116,42,116,122,121,244,134,45,97,129,120,149,120,0,137,28,149,14,152,63,155,215,101,184,124,165,125,166,125,168,125,29,135,30,135,74,159,130,116,165,121,114,133,17,142,167,135,33,147,175,156,224,97,221,111,196,133,177,106,192,106,49,124,205,129,14,154,15,154,205,156,4,134,213,155,120,157,128,157,146,158,79,124,131,126,105,130,16,136,16,155,57,154,45,156,130,115,161,158,60,0,42,0,94,78,148,144,1,79,122,92,130,92,145,130,47,84,71,84,94,103,152,115,192,118,24,85,72,140,119,141,83,85,84,85,77,90,95,85,238,126,117,102,232,104,174,125,186,125,236,138,217,149,60,0,42,0,20,108,171,139,212,95,23,108,84,108,196,143,3,95,125,108,245,119,158,130,110,84,227,108,129,112,245,118,160,84,81,89,12,120,20,104,35,108,22,138,45,85,43,107,33,89,196,104,70,110,71,110,122,132,155,120,86,100,163,102,8,117,182,120,80,86,135,97,104,86,169,97,220,120,231,120,233,120,74,127,255,135,28,159,60,0,42,0,60,127,213,125,47,124,60,0,42,0,144,99,183,136,92,132,60,0,42,0,228,98,60,0,42,0,224,92,210,141,96,145,144,151,60,0,42,0,54,87,190,81,34,94,112,96,61,109,142,107,72,120,24,97,194,154,60,0,42,0,67,83,223,78,33,150,49,87,50,87,119,89,102,98,88,108,138,130,193,143,101,79,141,92,68,103,103,108,233,116,62,131,38,107,207,122,228,129,142,148,234,98,117,114,129,124,91,81,173,96,136,134,56,140,197,148,92,90,111,91,125,114,250,145,148,99,38,140,6,146,195,150,201,80,6,97,126,123,91,146,158,154,80,158,115,97,52,100,129,100,158,123,208,138,119,144,48,137,25,139,69,152,182,106,16,101,17,101,207,106,61,124,110,157,69,91,19,101,43,154,29,155,28,155,100,124,198,151,60,0,42,0,241,78,146,92,244,95,114,98,209,98,77,82,164,148,108,107,84,134,177,148,179,148,126,78,66,80,174,99,245,99,225,142,138,90,16,146,108,151,87,146,152,88,169,105,157,123,173,146,91,111,92,111,172,127,65,133,108,106,34,147,212,158,218,158,29,154,243,111,26,154,74,112,44,156,60,0,42,0,245,81,69,109,183,128,250,109,37,129,219,85,112,93,99,144,207,105,129,129,56,135,52,140,49,127,126,126,116,139,83,148,60,0,42,0,32,107,11,82,161,130,212,79,28,131,41,80,147,96,17,88,148,80,76,93,200,104,32,105,74,97,152,118,168,132,121,88,73,107,170,125,51,133,25,81,231,105,207,123,36,143,223,123,205,88,49,91,52,126,28,156,60,0,42,0,134,147,242,147,86,124,60,0,42,0,91,84,140,127,21,98,23,98,168,101,170,103,177,115,151,127,16,115,196,141,244,85,12,105,172,110,71,115,84,129,198,85,35,135,22,149,136,93,39,98,205,105,68,114,114,116,171,127,53,149,236,123,6,147,18,139,76,142,106,149,97,142,151,147,216,147,60,0,42,0,44,78,55,95,58,95,153,88,241,90,55,133,47,106,18,111,3,133,187,88,25,91,231,94,148,133,163,106,70,114,98,130,32,134,60,0,42,0,162,98,159,127,54,100,165,127,143,88,72,126,65,137,102,126,249,147,60,0,42,0,157,112,52,85,151,113,187,127,60,0,42,0,132,96,87,120,251,144,106,93,247,141,33,145,37,145,129,82,114,101,195,107,13,142,57,149,157,88,29,152,185,154,189,88,103,94,71,106,198,113,50,127,253,120,107,147,108,147,81,126,172,141,122,142,48,148,60,0,42,0,84,78,168,79,77,131,94,131,101,104,90,120,236,131,172,85,209,80,215,105,47,140,58,86,246,90,148,97,78,133,146,151,53,106,75,106,158,114,68,118,167,119,4,121,238,133,171,141,8,148,189,151,102,152,60,0,42,0,231,93,229,145,0,97,220,154,60,0,42,0,207,79,238,139,87,150,237,92,41,94,141,122,187,107,216,127,154,138,218,154,250,80,172,100,189,100,152,151,210,151,197,122,249,127,169,151,89,139,136,142,60,0,42,0,198,130,60,0,42,0,127,118,122,128,60,0,42,0,20,78,60,0,42,0,7,82,146,83,190,89,47,96,196,144,39,83,131,122,143,96,8,99,47,109,236,96,193,109,33,123,28,97,234,134,5,103,167,123,193,125,50,149,203,123,37,142,85,122,210,133,101,147,220,155,17,148,202,122,97,124,60,0,42,0,178,78,181,79,166,148,126,136,142,154,135,90,90,93,61,107,133,125,155,138,148,93,170,137,73,152,248,153,188,155,244,91,60,0,42,0,136,94,169,130,185,130,193,87,225,115,230,121,57,128,230,131,153,134,102,99,243,131,52,116,57,116,189,121,25,146,43,146,194,150,228,82,234,85,192,90,177,110,114,151,108,97,89,86,210,100,179,101,249,156,196,97,142,106,191,111,61,118,147,135,195,97,4,136,53,155,109,157,60,0,42,0,69,87,17,102,9,123,171,104,126,141,209,91,19,149,221,91,226,91,223,146,188,135,60,0,42,0,34,84,35,84,139,98,129,108,26,85,227,131,255,99,7,100,179,100,25,112,253,133,60,0,42,0,81,151,82,151,34,108,123,143,62,80,127,83,236,144,10,87,229,87,200,91,43,108,248,109,5,110,190,80,59,135,21,143,173,156,75,148,60,0,42,0,29,89,32,117,96,82,205,82,197,96,145,107,116,102,254,104,48,108,93,132,146,102,207,100,8,106,206,100,160,106,229,158,60,0,42,0,216,130,119,152,247,139,188,94,3,152,206,94,0,111,203,138,190,106,60,0,42,0,134,94,202,81,133,99,184,107,131,120,144,123,88,151,118,97,236,120,44,81,234,111,68,127,38,139,230,106,60,0,42,0,88,120,60,0,42,0,142,130,60,0,42,0,109,83,155,144,134,91,119,122,121,122,21,131,79,104,59,123,71,123,121,141,248,96,42,113,45,113,60,116,60,130,233,134,236,134,98,113,141,113,88,119,235,141,142,146,143,119,174,122,29,81,140,97,105,106,154,116,209,133,202,116,198,122,237,133,215,116,60,0,42,0,24,78,32,78,177,144,117,87,88,96,203,121,204,121,175,134,157,90,41,132,120,105,242,132,89,158,205,123,231,125,117,135,80,122,165,141,197,156,215,135,166,151,167,151,18,134,12,156,13,156,150,157,36,136,157,159,60,0,42,0,244,83,218,86,79,98,176,114,140,115,83,108,141,128,66,108,108,134,197,108,111,134,197,79,211,137,4,138,5,138,75,145,211,145,18,85,87,109,12,125,141,131,14,144,17,144,218,145,130,104,143,107,236,107,3,116,71,141,251,145,55,93,239,93,30,110,109,110,179,118,218,118,82,144,106,113,127,125,247,134,216,136,240,93,233,137,213,140,134,116,100,135,182,146,148,145,130,155,61,159,196,155,61,156,60,0,42,0,29,100,215,124,60,0,42,0,58,83,242,102,57,79,73,79,36,83,150,92,206,139,57,150,113,154,101,87,72,92,168,92,180,92,190,98,64,109,91,121,224,128,170,136,64,83,54,125,198,134,175,142,65,123,172,124,208,134,88,138,139,141,135,93,136,97,198,153,122,101,179,138,124,149,200,153,185,158,247,154,124,155,168,141,175,158,176,137,192,142,180,158,226,158,187,137,69,154,56,156,75,156,60,0,42,0,98,79,172,82,170,101,16,103,202,128,195,131,80,136,50,158,237,109,32,110,71,125,209,127,75,132,229,142,86,133,150,116,242,120,182,135,29,157,169,116,221,135,191,119,41,159,39,134,194,95,72,112,53,98,11,107,13,108,103,124,222,129,111,118,55,136,98,136,163,142,60,136,122,148,28,158,60,0,42,0,214,83,216,122,54,90,83,138,236,122,122,135,139,159,114,159,60,0,42,0,186,83,187,83,30,82,127,84,31,85,29,128,18,150,209,137,163,141,180,149,174,158,195,149,183,137,1,159,60,0,42,0,242,143,60,0,42,0,77,89,209,92,46,95,110,96,155,96,8,87,15,87,236,104,233,153,9,148,60,0,42,0,104,81,67,103,122,79,224,139,254,89,201,108,36,109,67,131,243,98,119,114,129,143,115,85,226,87,88,90,211,96,202,117,66,120,232,148,118,110,136,114,76,123,95,125,114,132,60,100,126,105,84,116,224,137,110,138,231,141,7,143,55,135,147,146,41,106,33,142,19,126,155,145,206,149,200,156,8,155,33,154,73,91,207,93,1,156,10,107,100,159,56,136,167,152,116,152,60,0,42,0,173,114,172,114,113,108,78,117,199,112,251,126,163,125,71,134,60,0,42,0,157,82,56,82,118,114,231,82,207,151,248,82,60,0,42,0,38,105,60,0,42,0,58,127,155,132,25,150,60,0,42,0,56,118,60,0,42,0,116,83,123,83,198,87,5,93,171,96,55,116,192,150,94,120,110,120,21,150,89,88,9,100,181,118,143,120,74,158,40,97,183,105,167,88,100,97,186,120,187,120,158,141,233,113,203,149,16,121,213,149,114,157,45,121,60,0,42,0,11,89,247,86,238,92,33,144,60,0,42,0,173,91,44,94,217,136,163,127,164,127,224,136,60,0,39,0,208,253,82,0,39,0,60,0,42,0,101,84,176,128,123,136,135,136,166,134,161,136,186,134,54,113,229,154,43,86,239,154,195,113,78,126,60,0,42,0,132,81,137,81,204,89,210,130,211,103,195,115,163,90,133,132,106,106,60,0,42,0,99,122,52,81,247,82,60,112,125,115,24,134,179,121,228,116,112,122,159,142,36,155,60,0,42,0,204,88,183,86,228,88,24,101,25,114,149,126,60,0,42,0,169,139,249,97,114,139,147,139,60,0,42,0,6,90,91,131,118,153,97,104,8,91,88,133,72,106,83,137,82,153,60,0,42,0,112,98,162,150,254,100,60,0,42,0,213,126,118,144,94,126,60,0,42,0,249,96,60,0,42,0,237,112,177,113,60,0,42,0,186,78,187,78,193,78,236,88,200,95,50,103,206,95,194,121,162,130,19,146,92,155,139,146,64,157,60,0,42,0,205,95,79,131,32,104,35,104,117,131,249,121,239,104,20,122,155,125,181,142,60,0,42,0,3,82,4,82,164,139,222,78,237,78,177,139,251,78,123,92,131,92,104,98,171,126,138,89,82,103,99,114,180,126,149,128,107,143,231,151,106,153,217,89,77,121,9,125,125,136,29,125,18,138,212,142,149,104,181,136,77,125,77,129,90,132,109,151,113,151,204,151,234,152,141,138,1,153,60,0,42,0,84,98,60,0,42,0,205,78,184,143,61,121,126,150,60,0,42,0,191,130,60,0,42,0,229,101,114,154,248,86,240,145,36,146,185,153,60,0,42,0,56,131,60,0,42,0,14,98,156,128,4,104,232,114,210,126,25,131,99,131,185,91,245,92,231,107,255,112,182,90,88,93,17,100,104,125,162,127,198,90,100,93,8,100,181,105,182,110,201,132,149,105,174,105,148,113,98,116,65,122,25,126,126,135,35,137,85,149,141,135,142,135,229,153,246,154,43,91,184,93,3,114,148,147,198,93,28,112,231,102,17,136,60,0,42,0,151,81,130,91,72,87,135,80,245,142,4,108,60,0,42,0,67,122,60,0,42,0,185,83,184,121,212,103,136,124,131,90,201,99,24,110,71,132,99,113,72,116,108,129,197,124,90,135,66,142,46,143,82,147,163,151,199,116,37,154,7,156,148,157,60,0,42,0,122,105,214,151,60,0,42,0,137,128,141,91,60,0,42,0,154,144,130,89,158,79,36,94,57,131,71,104,189,136,247,148,42,110,78,123,152,132,163,146,96,133,97,135,18,81,17,157,133,86,44,91,122,91,225,111,183,133,61,157,216,102,248,113,102,137,21,136,165,152,185,145,108,152,108,156,60,0,42,0,93,108,151,128,115,78,177,143,15,145,233,100,60,0,42,0,101,81,86,98,65,103,51,109,213,85,183,90,189,110,27,127,208,132,240,156,37,137,31,126,60,0,42,0,191,93,60,0,42,0,60,99,60,0,42,0,39,88,139,100,214,88,60,0,42,0,46,150,10,103,111,143,14,128,68,80,223,142,134,90,76,116,157,120,219,125,45,143,192,116,29,121,60,0,42,0,81,90,117,104,36,117,204,125,100,133,60,0,42,0,74,133,75,133,100,106,96,126,2,134,3,134,60,0,42,0,109,108,174,130,152,103,139,134,16,149,94,116,57,135,127,119,179,146,237,146,225,83,225,88,60,0,42,0,164,119,60,0,42,0,240,149,166,109,143,149,160,149,100,111,77,106,182,129,60,0,42,0,124,99,60,0,42,0,210,83,229,130,76,80,49,95,0,145,3,110,43,113,73,105,118,93,187,132,172,123,219,123,7,114,25,156,47,156,184,157,60,0,39,0,208,253,83,0,39,0,60,0,42,0,232,78,49,99,50,99,146,100,60,0,42,0,18,109,47,138,120,151,117,111,81,112,160,142,60,0,42,0,69,83,231,108,145,148,210,152,14,129,40,132,18,146,75,100,161,150,186,153,175,152,169,133,210,106,68,134,60,0,42,0,226,107,34,97,204,99,94,88,248,107,110,129,37,86,123,86,195,156,75,152,19,156,60,0,42,0,238,85,91,141,255,80,253,140,58,124,60,0,42,0,9,78,14,95,193,83,245,107,246,107,129,83,255,107,153,114,22,155,60,0,42,0,208,78,30,79,152,80,193,124,194,124,147,153,221,124,227,124,228,124,86,126,210,147,254,147,74,153,60,0,42,0,213,79,52,94,99,101,144,149,60,0,42,0,237,88,117,106,60,0,42,0,82,104,81,104,225,105,60,0,42,0,211,85,33,100,201,120,44,137,161,152,159,147,89,152,60,0,42,0,39,78,170,85,60,0,42,0,187,99,69,97,20,100,158,110,154,154,43,127,166,135,69,126,202,129,203,156,18,154,55,154,32,156,98,156,60,0,42,0,107,98,131,99,194,90,60,0,42,0,253,87,25,118,9,108,194,119,222,154,60,0,42,0,170,149,60,0,42,0,114,130,19,109,28,104,169,109,108,85,11,110,239,148,237,150,110,107,23,116,199,85,95,116,112,107,171,146,129,111,206,97,204,100,199,111,207,111,55,118,81,122,128,111,177,116,18,112,97,122,108,126,111,122,86,143,252,147,69,139,203,152,60,0,42,0,238,104,46,105,238,105,66,137,60,0,42,0,231,80,25,155,60,0,42,0,64,103,153,108,177,126,119,78,57,82,78,82,2,120,38,85,186,107,0,115,134,124,23,125,142,131,108,104,238,107,233,148,231,117,112,120,94,113,49,133,223,136,157,105,39,106,102,155,168,156,169,147,202,155,203,155,60,0,42,0,187,80,13,81,60,0,42,0,61,80,60,85,81,85,101,85,57,94,16,132,166,83,162,85,200,94,67,107,220,127,145,123,227,127,175,149,14,151,60,0,42,0,76,126,60,0,42,0,91,123,126,145,233,123,1,124,27,124,195,145,60,0,42,0,122,126,60,0,42,0,82,102,183,149,236,102,60,0,42,0,113,92,97,95,150,144,56,87,32,82,42,82,73,103,159,130,205,89,215,89,235,130,107,136,144,148,207,87,59,99,245,103,230,114,202,115,34,130,193,117,32,129,213,142,24,123,138,149,218,141,124,82,39,100,7,86,83,94,125,113,120,111,152,111,134,106,63,126,187,129,197,155,180,127,182,127,60,0,42,0,234,149,85,150,182,112,93,150,131,149,113,102,84,113,82,119,140,113,162,137,60,0,42,0,170,139,85,108,157,117,97,82,71,98,21,138,120,141,158,99,228,145,147,80,132,85,43,105,143,146,159,154,208,80,47,145,160,88,161,88,108,111,46,127,23,91,197,100,126,101,63,106,90,107,179,129,240,120,6,139,97,141,85,126,238,135,250,135,113,139,13,141,37,148,77,153,56,154,221,156,87,112,83,156,84,156,60,0,42,0,36,79,135,107,70,85,222,137,183,80,146,88,111,97,243,110,33,111,15,133,164,107,181,113,170,135,244,137,42,139,58,155,60,0,42,0,167,87,68,98,76,102,79,141,222,140,24,141,92,148,60,0,42,0,4,78,10,78,25,92,26,92,102,96,241,126,212,125,157,151,60,0,42,0,243,136,60,0,42,0,48,95,78,99,231,112,166,131,162,104,60,113,13,122,211,101,114,123,68,130,248,134,14,143,113,133,210,113,181,152,254,154,185,155,60,0,42,0,250,82,141,130,213,130,214,103,191,115,246,151,60,0,42,0,17,92,60,0,42,0,173,82,114,83,181,144,205,126,232,84,11,90,145,136,57,125,68,119,164,125,114,111,60,0,42,0,98,89,30,115,74,141,108,117,114,117,11,143,210,140,214,140,168,106,60,0,42,0,12,130,88,79,117,134,199,134,229,134,60,0,42,0,13,130,104,99,60,0,42,0,141,83,190,139,62,121,14,130,153,83,4,92,137,109,187,109,9,110,45,138,102,141,61,95,81,97,66,100,68,100,224,110,116,97,117,100,14,133,89,107,2,136,216,151,7,154,254,97,29,101,68,112,157,158,7,107,60,0,42,0,1,140,60,0,42,0,51,117,126,92,95,98,56,79,171,142,129,79,123,84,189,89,118,124,197,126,89,127,220,139,250,89,219,103,32,108,197,115,124,122,120,124,32,90,247,92,33,117,18,119,55,120,152,131,20,88,82,101,241,109,51,125,95,81,253,104,96,132,209,136,55,138,225,132,117,138,39,117,24,133,202,113,147,133,234,153,185,156,209,102,211,155,98,157,245,155,58,156,60,0,42,0,192,78,26,117,94,121,138,105,48,156,60,0,42,0,165,144,30,95,136,108,161,91,228,119,194,84,231,119,183,91,2,140,9,140,118,90,22,110,32,138,233,91,215,138,35,152,107,155,203,102,171,119,56,91,11,112,190,137,133,139,60,0,42,0,190,128,186,79,26,102,194,128,129,109,24,119,23,110,115,121,36,129,78,129,60,97,78,97,57,105,6,118,103,127,3,135,4,135,242,110,224,146,46,118,60,0,42,0,71,83,31,117,41,150,79,84,240,88,152,101,7,102,161,103,233,108,204,114,252,130,13,104,133,107,114,114,196,115,212,122,94,150,251,102,121,150,25,123,102,110,58,113,37,117,78,146,114,128,95,147,42,159,127,157,60,0,42,0,243,126,4,126,180,97,105,126,93,139,60,0,42,0,1,119,26,119,87,80,59,110,60,0,42,0,35,87,220,128,96,102,112,82,219,118,105,82,221,82,185,140,74,93,30,116,86,128,173,88,186,105,66,133,115,106,248,140,60,0,42,0,56,92,49,89,8,94,94,84,113,134,215,139,191,144,36,158,77,92,189,101,73,109,238,114,43,94,65,125,246,145,100,110,127,110,121,132,174,110,188,110,69,115,146,132,205,132,105,138,71,146,72,146,97,116,242,156,104,135,254,156,55,137,186,156,213,111,102,147,244,155,36,156,179,157,121,137,60,0,42,0,65,83,99,153,243,119,187,143,109,78,246,101,205,122,198,139,158,91,159,91,249,101,224,152,252,89,213,92,254,98,187,112,79,121,128,134,223,152,216,87,66,102,179,131,212,91,92,110,72,144,82,88,117,93,161,110,148,132,80,146,230,91,175,105,85,135,165,156,150,155,43,159,88,139,45,159,35,156,60,0,42,0,242,83,226,119,104,78,85,140,127,79,203,89,118,154,88,81,169,91,78,92,54,123,129,105,66,146,219,153,60,0,42,0,235,88,15,108,59,121,23,78,22,78,213,78,2,94,58,121,60,79,75,83,15,95,213,95,138,78,211,83,58,98,139,78,141,79,191,82,105,84,249,103,198,137,213,139,112,153,159,81,164,91,64,96,67,96,237,98,47,102,48,102,190,103,255,103,2,119,51,141,2,144,59,104,210,112,14,119,33,119,16,130,124,143,29,144,200,148,150,137,73,140,200,145,158,90,60,93,17,95,165,95,211,99,37,140,176,140,202,145,226,82,220,85,18,95,118,113,87,119,110,123,226,137,102,138,254,142,48,146,67,146,254,152,19,130,147,138,105,144,125,146,109,89,180,146,25,153,29,153,108,86,21,91,168,111,223,138,225,138,126,144,171,135,26,139,45,124,107,137,203,145,24,156,60,0,42,0,102,79,25,83,210,123,66,124,60,0,42,0,206,83,54,101,60,0,42,0,75,98,136,91,168,87,150,153,79,130,60,0,42,0,255,91,215,83,233,114,125,81,46,85,136,99,173,109,246,126,233,117,132,129,253,88,0,89,38,118,172,125,99,115,120,115,201,147,60,0,42,0,76,98,60,0,42,0,102,78,179,107,23,92,146,98,190,126,212,83,120,103,162,103,78,150,221,89,15,80,16,80,248,102,138,107,19,125,147,99,179,104,209,109,2,113,253,131,215,142,3,145,142,117,143,117,18,130,69,100,249,107,250,107,128,125,147,143,121,116,254,141,8,142,30,106,44,133,56,143,126,106,155,155,53,81,4,101,45,112,104,157,60,0,42,0,235,121,76,90,112,91,78,141,126,88,159,113,185,116,22,141,60,0,42,0,33,159,94,92,145,102,143,102,205,158,114,127,0,135,32,159,123,111,165,133,175,133,217,102,89,118,247,133,97,137,236,124,105,137,108,92,52,136,106,156,112,156,0,158,60,0,42,0,46,103,47,103,13,98,95,103,173,108,240,143,184,79,176,84,55,96,17,104,214,122,87,131,85,96,82,99,182,94,187,94,73,125,129,132,83,136,131,150,12,92,203,136,112,101,234,122,103,129,101,146,133,88,49,111,68,111,120,101,141,111,78,140,57,106,214,111,48,147,227,147,144,157,106,134,60,0,42,0,55,82,48,85,60,0,42,0,13,128,60,0,42,0,156,138,60,0,42,0,112,136,84,100,60,0,42,0,41,117,60,0,42,0,5,94,37,94,192,135,91,83,60,0,42,0,233,149,244,98,130,149,19,104,60,0,42,0,174,109,104,129,60,0,42,0,204,83,28,151,217,150,64,91,166,154,71,91,59,154,6,107,53,121,222,157,116,158,109,130,102,154,24,158,60,0,42,0,61,114,125,88,97,97,58,111,9,106,20,126,239,147,60,0,42,0,64,112,60,0,42,0,61,129,176,138,60,0,42,0,52,108,58,108,60,0,42,0,40,94,151,109,154,109,113,121,5,122,14,122,222,136,97,119,147,119,60,0,42,0,53,108,150,149,60,0,42,0,46,84,60,0,42,0,122,152,28,130,6,152,99,133,83,106,154,119,172,119,10,155,60,0,42,0,244,139,254,84,170,138,172,138,60,0,42,0,129,89,193,112,20,103,196,148,54,107,85,120,223,119,32,100,180,132,202,105,97,115,169,120,190,123,153,147,13,114,96,148,60,0,42,0,182,83,159,126,29,78,248,83,249,124,193,121,157,84,192,108,236,79,29,96,82,134,86,96,54,158,164,90,175,101,114,125,12,127,243,134,82,105,151,121,112,146,212,152,216,81,174,83,185,105,160,121,115,127,36,135,175,146,54,149,54,86,93,86,221,94,149,100,140,111,195,120,230,125,108,133,214,146,205,113,132,135,214,135,244,135,184,152,38,154,1,148,229,157,54,159,109,124,60,0,42,0,123,107,60,0,42,0,243,93,150,78,219,86,250,91,92,108,64,79,85,81,210,89,228,108,64,121,161,79,96,91,107,103,215,108,114,153,119,154,48,90,246,103,109,114,13,109,152,109,130,128,228,152,37,123,28,128,242,145,226,122,151,137,227,85,134,128,132,140,54,146,59,146,252,152,169,121,223,153,124,133,41,81,3,112,60,0,42,0,234,95,126,103,128,103,169,103,0,90,215,103,47,80,199,81,39,93,186,94,165,104,222,109,216,131,105,93,121,120,25,135,189,97,205,111,167,106,118,147,6,155,60,0,42,0,2,96,154,96,56,128,230,122,177,80,47,97,100,105,119,93,107,97,115,128,247,153,60,0,42,0,188,139,139,91,245,139,1,144,130,152,31,138,12,152,166,138,185,147,56,153,60,0,42,0,193,81,92,99,11,145,214,85,192,94,203,94,28,100,178,110,64,115,144,132,195,132,138,153,73,100,213,152,87,100,60,149,88,130,139,135,153,145,170,147,63,153,188,152,190,152,42,154,60,0,42,0,220,83,223,83,129,80,254,85,141,119,222,100,174,133,251,100,234,133,226,106,84,124,60,0,42,0,253,85,54,118,60,0,42,0,207,130,38,117,101,145,35,122,163,122,76,122,194,155,7,134,19,134,239,106,204,86,60,0,42,0,215,79,60,0,42,0,138,115,25,89,201,139,221,108,131,128,44,109,145,109,223,115,32,125,164,131,31,144,191,91,128,104,144,107,155,124,149,154,131,80,159,124,52,138,33,140,201,85,80,88,81,88,202,90,43,97,175,110,184,110,133,128,97,144,84,158,243,80,44,97,161,105,134,129,12,133,235,137,154,141,108,144,159,97,14,106,21,106,101,111,191,120,201,146,23,153,90,111,36,126,90,106,155,116,12,124,215,133,22,139,92,142,76,154,80,156,235,157,60,0,42,0,251,114,224,117,120,145,60,0,42,0,52,83,60,0,42,0,88,121,7,123,109,123,156,132,151,123,60,0,42,0,10,89,149,130,125,134,32,80,248,84,125,109,125,131,126,131,45,119,112,132,214,110,98,119,143,125,163,113,201,111,150,151,214,150,60,0,42,0,229,126,139,150,143,150,64,144,168,150,205,116,60,0,42,0,33,112,184,129,196,154,211,154,60,0,42,0,151,78,129,92,21,120,95,121,7,140,227,87,87,93,66,144,114,107,115,107,107,113,95,119,142,120,167,150,24,91,187,111,66,122,182,138,229,140,150,106,231,113,178,116,173,121,87,122,95,122,64,126,90,137,131,144,222,101,80,126,120,126,98,139,6,148,41,148,226,151,60,0,42,0,89,91,242,114,106,131,107,91,231,152,14,100,59,115,192,132,241,152,194,105,117,133,158,133,60,0,42,0,95,99,11,123,188,150,77,123,13,100,171,105,176,123,40,124,168,147,189,157,60,0,42,0,6,85,17,90,143,131,158,80,107,104,173,104,67,119,205,85,167,127,209,132,77,100,41,127,150,141,17,124,20,124,46,126,255,154,187,155,60,0,42,0,64,98,122,78,34,85,34,125,16,116,17,116,226,96,1,149,233,85,155,102,145,110,99,116,40,137,133,116,136,147,141,147,150,147,187,147,193,147,60,0,42,0,36,144,185,110,54,135,60,0,42,0,230,85,60,0,39,0,208,253,84,0,39,0,60,0,42,0,214,78,131,91,121,89,96,114,66,121,191,141,202,148,76,88,153,105,187,110,31,137,131,86,231,149,60,0,42,0,121,142,60,0,42,0,84,88,154,110,150,88,109,115,206,156,122,115,40,156,60,0,42,0,211,98,30,99,231,114,252,149,9,93,190,109,40,100,93,144,98,144,187,105,254,107,162,121,187,100,190,111,187,138,15,142,125,106,20,147,204,111,75,142,156,151,153,155,210,149,179,151,186,86,229,149,118,139,162,142,60,0,42,0,164,79,156,84,60,0,42,0,252,86,97,91,206,128,60,0,42,0,240,83,242,101,176,144,110,87,172,98,212,130,177,103,177,112,178,112,237,131,198,141,144,156,136,123,250,129,177,152,216,153,19,81,144,155,47,91,225,100,185,133,175,106,73,124,60,0,42,0,42,89,173,81,51,89,242,95,112,108,1,96,189,128,155,148,240,108,38,130,94,145,38,146,153,110,75,97,228,113,60,0,42,0,143,124,60,0,42,0,77,87,42,141,57,96,209,117,17,130,170,140,74,100,233,110,43,118,249,100,36,101,88,112,113,118,60,0,42,0,91,87,25,102,19,80,8,140,239,144,82,90,212,96,131,137,131,105,240,117,44,149,45,140,176,88,181,88,155,97,109,111,199,138,136,145,199,88,199,102,194,113,31,147,36,153,128,106,249,120,67,152,72,127,235,133,220,88,90,139,154,140,176,145,96,139,78,127,60,0,42,0,208,95,102,87,146,136,189,148,252,131,239,107,109,146,255,85,179,97,187,97,186,102,147,145,174,116,98,137,60,0,42,0,249,83,173,112,238,87,162,99,157,80,96,110,203,80,6,86,179,120,21,130,78,107,231,140,60,0,42,0,100,108,244,148,111,110,33,86,37,128,143,82,176,127,106,135,154,133,87,149,90,142,220,147,11,148,186,151,30,159,60,0,42,0,103,153,99,87,16,85,2,88,143,80,122,85,224,104,12,145,88,88,42,100,143,110,206,132,154,150,182,105,31,111,123,113,109,116,159,121,133,129,24,106,196,120,195,124,155,129,86,106,214,123,214,124,151,135,60,142,219,124,179,135,111,141,163,145,51,153,149,147,57,153,219,149,68,153,182,157,60,0,42,0,22,79,17,94,24,80,82,80,204,109,165,80,186,142,75,149,178,147,59,81,3,98,237,102,35,114,216,119,130,148,60,0,42,0,235,112,101,100,159,141,217,113,60,0,42,0,50,89,34,95,155,109,230,126,143,99,91,125,92,138,205,90,77,94,70,97,47,100,212,110,196,105,107,116,236,151,248,152,26,126,39,126,228,111,31,139,65,143,177,151,220,151,85,153,60,0,42,0,11,83,239,143,183,84,46,109,3,144,67,104,118,150,85,85,188,104,216,109,249,126,4,132,121,121,234,136,175,125,42,135,128,151,132,145,137,151,254,146,45,147,227,153,174,106,64,153,10,154,23,159,60,0,42,0,168,139,14,138,60,0,42,0,87,89,60,0,42,0,209,95,210,95,121,114,163,140,253,148,93,97,241,146,163,135,216,135,60,0,42,0,165,113,175,129,31,159,60,0,42,0,188,117,203,117,80,94,126,129,138,138,27,111,213,110,134,144,34,126,230,153,4,139,47,81,228,133,48,154,80,124,39,156,88,124,69,134,99,154,60,0,42,0,47,151,60,0,42,0,84,82,175,104,17,149,34,142,255,100,200,157,201,157,60,0,42,0,208,130,151,83,81,131,232,126,77,80,124,85,57,93,255,96,208,99,10,122,7,127,100,127,70,144,72,158,193,85,69,116,136,125,174,120,6,137,178,95,61,111,249,125,91,133,109,135,187,146,152,152,167,141,68,142,141,145,21,139,79,142,87,147,192,156,58,157,76,152,183,155,92,157,32,154,247,155,151,157,153,157,181,121,228,157,60,0,42,0,83,79,46,99,176,142,181,154,167,155,198,142,212,154,60,0,42,0,59,98,73,92,67,82,31,109,17,103,28,80,140,96,149,109,22,144,92,92,144,96,213,96,166,99,55,144,214,96,229,99,255,102,116,105,252,136,5,137,82,107,162,107,240,154,153,133,143,86,0,155,148,86,203,116,74,124,175,141,60,0,42,0,57,123,60,0,42,0,41,89,114,81,86,90,251,109,95,145,84,151,199,158,93,151,60,0,42,0,48,117,71,92,186,108,108,96,75,117,81,117,247,118,203,128,96,117,27,117,28,117,254,131,73,110,97,88,107,88,55,100,63,146,23,150,181,120,194,125,204,120,180,122,43,157,179,116,208,149,198,157,207,157,60,0,42,0,221,95,132,107,14,80,58,85,191,96,223,109,106,102,32,116,70,129,205,137,246,117,83,119,20,130,2,153,165,137,223,140,42,147,105,147,102,151,60,0,42,0,173,99,124,119,26,130,60,0,42,0,235,101,123,79,163,94,76,96,17,99,103,121,78,128,60,0,42,0,128,130,97,103,167,92,185,92,226,143,82,121,157,104,36,123,20,132,218,132,232,132,146,141,134,159,36,106,41,135,218,146,151,151,235,154,166,156,200,155,165,147,96,159,55,156,60,0,42,0,168,91,64,102,19,103,1,129,149,122,130,138,162,101,177,122,37,91,60,0,42,0,58,119,156,124,105,125,156,137,243,141,246,124,60,0,42,0,169,135,60,0,42,0,22,94,23,96,52,141,28,132,81,128,188,140,60,0,42,0,193,148,200,134,227,80,149,146,232,146,41,157,33,148,53,148,86,154,60,0,42,0,107,84,251,152,46,153,60,0,42,0,133,83,129,94,64,108,124,130,44,84,58,117,19,128,155,83,195,112,111,104,244,112,142,125,147,151,116,128,124,128,240,94,125,128,243,94,60,0,42,0,146,144,247,94,173,78,173,94,155,131,92,80,119,90,73,93,31,110,115,123,118,132,19,135,95,105,179,105,174,149,6,151,100,128,79,135,234,138,46,159,60,0,42,0,34,87,60,117,185,79,23,90,58,99,143,109,131,104,246,112,253,115,33,129,71,130,139,152,148,138,50,152,60,0,42,0,242,86,181,112,26,144,204,117,245,85,234,132,11,106,60,0,42,0,221,78,12,84,95,79,100,95,194,92,157,94,195,84,221,92,234,114,60,131,77,102,80,104,117,109,212,112,60,120,146,134,46,119,241,121,220,148,229,122,161,124,105,123,119,138,104,141,110,145,86,146,238,80,237,82,117,146,133,146,7,153,150,156,124,111,94,115,200,102,35,103,102,106,3,108,209,113,157,114,167,129,179,119,166,155,60,0,42,0,223,126,69,99,118,104,82,123,113,125,130,125,60,0,42,0,120,96,219,117,85,136,95,97,133,97,60,0,42,0,119,80,120,80,126,90,174,90,192,146,110,147,60,0,42,0,160,78,52,89,149,98,176,154,240,125,45,152,60,0,42,0,181,89,173,148,15,125,104,101,243,152,200,158,35,134,60,0,42,0,15,144,137,125,60,0,42,0,248,81,138,91,191,121,195,121,34,96,129,122,11,85,139,109,120,99,23,88,101,110,220,117,86,132,128,93,245,146,90,157,53,159,60,0,42,0,243,86,254,86,195,81,249,92,169,94,146,95,135,96,72,99,130,109,124,131,20,144,96,92,140,104,223,131,236,99,12,122,21,87,87,88,94,93,15,118,97,123,111,129,164,132,47,146,22,87,23,87,220,94,115,111,255,141,116,145,159,153,78,147,252,153,76,157,159,157,203,157,245,157,60,0,42,0,31,87,33,87,16,84,141,148,247,145,60,0,42,0,78,81,204,143,84,81,181,131,13,88,117,157,60,0,42,0,98,108,60,0,42,0,77,110,47,115,83,113,146,140,60,0,42,0,226,86,227,86,159,98,120,82,24,87,113,97,118,100,25,111,235,105,255,123,178,106,196,147,240,124,210,157,251,157,60,0,42,0,131,117,60,0,42,0,86,95,106,110,22,137,60,0,42,0,168,99,247,132,236,133,60,0,42,0,26,95,147,152,164,150,53,92,57,152,58,152,61,152,75,155,104,122,8,134,106,142,60,0,42,0,192,79,127,129,211,80,70,142,189,154,60,0,42,0,187,79,0,144,39,90,122,113,251,134,21,135,42,137,254,153,60,0,42,0,30,84,81,84,253,101,146,109,77,85,28,103,30,113,75,86,190,102,215,158,60,0,42,0,111,92,73,87,243,95,154,130,104,153,88,140,90,140,216,142,233,152,128,156,104,155,21,151,192,129,203,129,60,0,42,0,61,108,125,117,60,0,42,0,71,78,219,78,172,139,88,98,97,98,81,108,102,153,84,103,130,79,131,84,213,98,214,98,176,108,41,99,93,99,140,131,165,136,23,138,182,109,43,129,49,129,229,152,96,155,93,154,60,0,42,0,110,154,87,79,64,150,65,150,104,87,174,92,177,108,178,108,207,114,241,143,124,154,35,120,36,120,137,136,53,158,61,125,54,88,206,141,97,145,162,120,177,153,214,105,196,153,221,153,222,153,80,106,128,155,21,157,39,159,40,154,13,159,82,154,9,159,60,0,42,0,117,95,165,89,185,94,160,90,45,105,85,105,247,90,98,106,78,157,12,155,22,156,60,0,42,0,221,103,228,107,62,85,26,132,197,141,251,107,168,123,0,134,92,124,60,0,39,0,208,253,87,0,39,0,60,0,42,0,114,92,117,122,184,82,22,99,60,109,50,90,86,117,138,122,167,90,215,85,217,134,50,100,155,110,37,111,170,122,3,159,40,101,60,0,42,0,3,90,60,0,42,0,230,116,100,79,183,144,147,84,25,120,60,0,42,0,156,136,73,128,226,85,125,129,131,129,106,137,200,151,228,151,60,0,42,0,242,116,199,84,60,0,42,0,106,107,142,85,245,122,60,0,42,0,52,93,60,0,42,0,22,89,30,89,97,152,60,0,42,0,47,95,92,82,96,90,53,94,70,88,126,110,63,135,107,111,76,140,78,95,234,88,99,112,60,0,42,0,56,78,19,82,77,108,168,126,132,130,140,91,143,92,143,98,169,115,2,123,8,125,86,99,125,152,247,112,19,116,166,140,17,152,235,127,60,0,42,0,155,91,7,80,13,85,61,99,204,118,230,87,73,90,203,96,90,102,101,102,154,104,254,126,24,129,192,131,22,132,105,102,124,102,0,105,44,116,150,118,121,117,85,119,151,120,169,125,176,125,19,143,32,142,212,146,60,0,42,0,7,78,77,83,80,83,167,89,232,95,100,103,101,99,21,129,44,132,85,129,16,143,171,111,196,146,163,119,141,133,61,147,195,135,3,141,171,147,14,141,60,0,42,0,35,92,42,92,43,92,106,108,41,92,60,0,42,0,161,78,190,78,102,81,139,115,252,78,122,95,163,131,159,134,60,0,42,0,82,127,81,127,128,95,131,95,137,103,84,127,141,95,216,96,245,131,128,102,226,104,231,134,139,143,178,125,68,135,183,138,30,143,7,112,77,155,60,0,42,0,132,89,216,95,203,143,250,101,243,118,27,103,34,103,60,0,42,0,113,83,1,90,211,112,78,80,14,132,54,144,135,150,136,150,180,85,153,90,4,97,203,99,251,99,40,110,104,132,115,132,174,95,51,105,114,105,166,110,104,113,116,138,50,135,5,126,91,135,163,137,182,93,135,133,240,113,194,156,205,93,3,156,4,156,60,0,42,0,215,86,230,151,41,87,244,86,15,94,169,108,221,143,241,149,215,92,222,92,8,109,203,151,69,104,160,109,47,85,55,94,223,96,89,120,244,126,161,85,13,87,129,90,108,93,67,94,75,110,136,110,31,116,85,144,77,111,173,125,246,132,44,145,89,111,127,111,209,120,128,145,240,111,79,147,200,149,160,155,83,118,185,137,169,114,58,151,8,107,60,0,42,0,131,83,31,79,42,79,62,92,172,126,155,130,199,130,212,89,156,112,174,115,39,109,19,90,87,92,100,99,88,109,113,131,255,139,73,80,125,80,35,93,182,104,207,117,74,120,169,154,84,93,171,95,7,97,37,115,102,132,141,132,170,154,171,154,144,102,50,105,82,113,75,116,255,117,114,129,73,130,234,151,222,80,177,100,200,120,148,156,234,91,239,125,63,133,201,138,19,142,209,151,32,152,179,133,48,81,251,111,97,147,170,155,221,88,34,112,217,151,185,152,225,151,150,101,60,0,42,0,107,83,58,78,42,103,77,79,115,84,255,130,186,112,79,117,195,128,222,83,206,142,9,92,203,131,19,140,130,85,166,90,45,110,50,114,44,115,95,113,155,88,168,120,26,133,60,135,112,97,173,113,154,114,237,125,95,135,91,136,192,97,143,116,123,127,94,136,2,139,39,153,135,155,177,135,61,137,53,153,79,155,239,133,74,143,207,147,40,151,218,156,54,134,86,153,134,139,151,142,143,139,155,142,60,0,42,0,64,113,60,0,42,0,55,102,109,88,41,110,133,105,159,107,171,110,101,116,146,143,178,105,31,118,112,133,113,140,60,143,64,143,190,147,66,153,193,156,176,151,27,156,46,156,60,0,42,0,1,83,135,101,99,95,185,126,160,130,134,112,159,115,251,149,11,125,137,134,138,134,243,115,12,150,239,150,18,118,94,128,188,153,199,153,112,155,252,156,13,157,161,135,186,149,191,149,193,135,197,149,36,159,230,149,60,0,42,0,14,82,59,84,223,95,134,98,97,84,179,128,10,125,125,104,23,129,51,122,79,122,105,122,60,0,42,0,238,149,143,89,118,108,172,131,79,85,2,110,254,99,53,100,80,152,186,116,60,0,42,0,90,84,60,0,42,0,193,127,225,85,195,110,95,158,137,135,147,147,178,157,60,0,42,0,220,82,99,89,85,88,97,93,202,132,161,102,136,119,108,128,26,101,60,0,42,0,238,116,121,133,21,117,75,127,70,159,60,0,42,0,29,99,45,80,161,109,180,131,41,85,185,109,38,110,39,115,53,132,157,122,169,122,23,135,190,100,120,135,18,142,60,0,42,0,17,98,80,90,112,99,60,0,42,0,244,78,131,108,159,128,103,83,130,103,229,129,83,80,126,99,180,109,137,90,68,94,225,99,37,110,37,113,106,120,67,105,91,129,161,101,131,119,237,100,227,111,193,116,210,129,216,150,140,159,119,159,60,0,42,0,76,78,44,87,25,95,89,108,90,108,97,108,172,144,92,84,235,93,71,103,75,92,63,109,236,139,168,148,207,112,109,82,143,122,20,145,218,85,136,138,77,107,163,138,188,123,144,135,46,157,162,147,30,156,60,0,42,0,224,101,203,107,51,84,52,84,62,84,73,84,156,130,218,144,20,85,42,90,22,109,111,109,35,131,129,131,167,104,248,115,102,121,33,113,251,148,64,158,145,121,8,135,106,133,145,116,241,135,195,155,80,157,85,139,47,159,225,157,60,0,42,0,68,78,148,78,72,83,245,78,13,79,169,89,145,94,228,95,3,96,255,101,102,107,157,115,174,79,201,79,53,80,66,99,78,85,44,90,126,114,247,115,64,100,148,120,73,158,147,113,102,116,30,130,245,90,225,94,174,97,85,111,27,81,70,106,18,117,97,157,140,142,60,0,42,0,64,81,255,82,161,82,10,98,34,150,6,79,124,92,100,98,94,87,137,92,76,103,180,130,213,143,226,95,105,114,249,119,124,83,68,101,239,139,217,82,158,96,159,96,174,96,133,124,28,144,100,102,16,113,122,90,77,93,230,117,150,150,112,151,155,154,98,88,102,89,104,93,169,110,250,150,254,150,228,91,131,113,164,138,92,158,200,146,185,122,26,151,63,159,39,151,64,159,1,134,22,154,169,157,60,0,42,0,59,147,60,0,39,0,208,253,88,0,39,0,60,0,42,0,21,89,110,81,156,144,56,84,218,95,113,98,80,108,127,137,128,137,12,94,120,98,101,83,20,102,144,103,120,122,184,128,185,128,217,79,134,95,56,96,83,96,215,144,123,153,15,85,90,89,86,92,111,96,149,96,37,108,96,109,122,114,246,114,131,131,61,85,137,96,220,96,94,102,120,104,55,107,197,109,19,110,239,112,1,113,8,113,11,116,82,120,229,131,101,141,248,145,146,80,193,96,112,102,115,102,31,113,44,113,128,114,78,119,0,122,158,124,213,127,214,127,62,130,14,145,128,83,96,93,175,95,170,110,153,118,160,132,33,149,214,80,189,105,85,113,132,113,136,113,153,113,198,125,37,135,104,140,15,153,59,86,79,86,6,91,9,91,178,93,93,111,28,118,206,120,157,129,222,81,153,97,40,106,64,106,185,113,186,113,187,113,184,122,24,126,178,127,133,135,135,135,43,147,232,113,160,114,166,119,2,121,203,135,63,140,64,140,111,140,149,140,230,124,101,126,208,145,223,150,209,155,87,157,249,137,70,139,175,145,237,147,181,150,199,93,230,102,20,114,167,114,69,145,253,137,60,0,42,0,55,159,53,136,2,158,255,137,116,148,60,0,42,0,96,78,203,144,45,94,210,127,173,136,203,137,186,85,179,90,58,105,181,132,198,132,141,93,29,111,161,137,152,141,226,105,130,133,176,150,132,106,53,139,180,147,43,151,219,156,193,152,49,154,61,154,114,137,60,156,104,154,60,0,42,0,178,103,23,109,186,115,153,95,227,148,156,85,72,132,120,132,34,146,104,146,105,146,99,92,7,111,240,132,152,97,191,102,114,106,86,107,167,121,240,138,208,88,48,126,17,139,226,135,93,142,189,116,205,86,90,156,214,119,167,142,60,0,42,0,56,83,76,83,15,98,67,92,251,124,105,153,108,84,229,95,44,96,253,119,198,126,194,79,165,84,68,96,251,118,228,144,47,107,228,126,48,125,243,145,11,150,30,105,3,130,4,130,135,141,153,150,64,97,202,110,138,121,140,125,105,141,159,150,141,88,130,113,148,114,39,122,95,111,153,111,110,133,164,137,49,98,214,158,50,98,246,120,105,134,60,153,41,155,107,126,177,86,223,149,60,151,109,92,75,136,60,0,42,0,114,134,168,117,126,134,58,140,132,80,149,149,70,113,172,152,142,119,102,135,21,156,60,0,42,0,35,83,160,79,206,114,224,79,218,83,225,92,217,103,160,112,237,114,92,150,253,92,218,112,249,114,232,115,107,121,86,120,200,127,58,130,127,150,100,120,80,144,110,101,135,102,85,116,106,123,29,130,172,120,150,143,205,120,0,126,120,133,22,126,110,141,123,155,68,143,92,147,30,151,139,147,224,158,34,154,183,157,60,0,42,0,156,149,60,0,42,0,5,78,11,78,100,78,19,84,55,87,156,117,15,89,186,104,113,119,135,86,215,97,69,127,188,147,19,89,236,147,60,0,42,0,217,78,218,78,115,92,72,81,126,89,164,126,97,79,250,95,25,108,116,103,70,121,200,121,238,130,174,103,124,124,215,115,182,131,128,99,230,148,249,141,112,145,40,149,202,80,242,80,21,86,155,146,156,156,185,102,239,151,16,91,184,97,159,133,65,147,74,126,60,137,241,151,174,155,110,142,166,153,239,94,21,101,142,126,177,157,115,137,154,142,150,126,123,156,60,0,42,0,45,79,242,149,182,89,38,95,36,141,184,84,12,85,38,99,142,109,216,128,52,90,57,90,113,90,67,125,55,130,191,134,84,136,99,85,122,110,235,117,221,134,145,149,146,149,71,158,204,90,88,136,9,117,156,146,250,90,251,90,170,97,143,100,150,111,52,122,184,138,226,140,244,138,49,143,142,145,71,118,78,118,175,119,214,133,37,121,121,158,153,158,18,141,243,157,244,157,252,157,60,0,42,0,188,81,221,114,62,102,105,150,4,93,232,107,205,112,3,115,172,134,122,150,123,141,69,123,31,92,32,92,31,100,146,121,227,141,145,146,178,123,170,150,174,93,107,115,110,115,211,133,76,147,249,113,85,152,112,94,7,101,246,106,26,134,99,139,129,115,197,151,111,152,102,112,60,0,42,0,35,79,191,83,158,84,152,92,203,130,176,115,191,126,253,129,80,150,237,89,170,91,12,119,101,150,239,84,183,87,10,90,40,90,244,92,128,109,167,131,119,150,91,102,254,115,77,120,133,153,77,119,100,125,16,127,161,127,46,115,175,124,168,127,122,129,6,135,233,80,244,80,171,125,162,138,138,100,218,125,231,146,178,97,76,106,35,126,14,147,33,153,207,88,79,140,178,158,23,112,212,129,123,115,238,124,48,151,56,159,60,0,42,0,102,148,60,0,42,0,97,78,151,130,248,118,153,153,247,144,162,83,76,85,9,145,10,145,194,94,88,110,3,127,89,132,21,145,127,105,37,122,140,133,177,123,215,125,183,129,68,137,192,95,167,154,152,158,0,107,214,116,118,149,92,156,114,148,100,154,60,0,42,0,232,116,109,79,230,139,160,94,25,104,101,121,116,125,212,127,115,138,237,141,60,0,42,0,171,78,175,78,205,84,131,134,119,153,81,102,232,152,243,96,132,146,9,153,158,156,207,102,1,136,157,155,215,155,255,151,87,153,95,153,118,156,60,0,42,0,17,84,224,89,247,93,121,152,230,115,97,140,66,88,63,127,43,132,86,136,5,152,207,80,232,82,145,93,151,146,97,106,80,137,174,86,211,135,12,148,76,156,60,0,42,0,113,112,114,112,122,84,173,103,190,79,211,84,181,103,129,154,238,84,175,91,181,91,168,94,136,109,225,126,83,134,13,144,46,158,75,90,159,104,7,113,7,115,39,132,218,117,223,117,93,120,99,120,153,122,219,127,55,132,0,149,241,99,131,125,16,86,74,107,71,111,171,123,3,142,53,86,162,97,98,115,183,146,4,151,71,95,174,129,109,133,72,155,30,157,88,122,24,124,195,133,194,135,207,135,53,157,163,86,31,112,43,124,240,135,199,154,249,106,187,86,194,86,208,154,205,157,40,136,77,154,202,107,72,134,60,0,42,0,40,109,233,144,36,93,198,109,36,138,189,107,74,123,181,138,60,0,42,0,15,92,83,102,129,102,113,123,127,123,155,118,201,102,224,123,15,139,162,118,60,0,42,0,93,91,150,128,185,82,178,84,242,79,72,101,33,104,141,109,17,123,120,85,154,80,105,101,104,138,11,86,40,86,159,138,47,86,87,107,189,113,133,101,134,101,60,0,42,0,119,96,60,0,42,0,155,78,243,99,50,115,84,105,71,107,78,135,13,136,60,0,42,0,166,82,79,83,234,101,170,144,84,83,193,128,165,87,74,89,235,92,74,96,249,98,31,99,62,99,5,129,7,129,11,129,122,136,85,80,156,101,16,140,211,127,203,85,54,97,58,100,78,116,138,125,129,113,142,129,240,82,183,100,213,100,243,125,44,127,98,135,139,151,33,152,231,138,242,113,247,100,181,151,109,137,28,101,136,126,151,139,164,159,60,0,42,0,153,81,169,81,235,91,219,133,60,0,42,0,51,79,122,112,196,108,251,108,68,121,193,126,55,127,120,83,41,109,167,112,168,112,104,83,14,90,81,92,83,92,94,80,112,80,162,95,176,104,242,112,14,113,188,121,50,125,181,78,159,90,95,92,43,110,79,125,108,125,34,140,193,80,110,88,141,105,173,105,9,137,103,86,103,92,172,102,228,125,176,93,232,94,200,97,165,111,108,115,207,124,162,133,164,133,130,144,240,151,238,113,59,137,29,139,17,89,9,112,162,151,35,112,21,114,114,126,249,135,15,136,88,159,91,159,101,159,66,159,158,142,60,0,42,0,195,95,164,144,161,89,251,95,175,130,155,143,21,102,122,103,35,107,152,112,250,118,253,79,222,96,34,138,10,146,12,149,176,101,70,107,222,94,197,146,122,86,28,91,170,133,168,153,107,148,171,153,60,0,42,0,148,103,81,137,20,148,60,0,42,0,8,79,60,0,42,0,32,150,41,79,223,86,94,91,225,79,208,142,42,129,69,136,43,138,46,113,184,153,86,152,11,130,193,145,60,0,42,0,196,95,60,0,42,0,31,102,182,87,141,154,250,96,41,115,75,113,70,116,101,129,245,134,234,137,181,123,194,123,3,139,143,155,208,102,242,137,2,154,168,118,249,155,60,0,42,0,17,82,76,136,162,144,98,95,73,150,128,79,201,144,139,87,16,109,101,131,152,148,88,150,25,90,78,120,207,148,3,146,206,110,118,146,146,146,222,146,60,0,42,0,114,119,146,145,228,100,60,0,42,0,116,81,79,103,211,89,120,94,39,96,71,131,22,80,149,131,94,90,187,96,172,109,200,125,8,130,57,91,214,129,60,0,42,0,216,84,196,136,60,0,42,0,246,81,2,83,68,81,71,81,8,83,187,139,247,95,121,108,197,84,95,96,54,109,247,128,248,128,41,138,126,138,239,140,60,0,42,0,196,150,138,113,60,0,42,0,61,113,60,0,42,0,199,139,56,113,87,138,16,89,123,101,60,0,42,0,17,79,226,79,238,79,187,84,165,94,203,112,204,112,158,127,41,129,25,129,58,158,249,129,133,140,144,153,7,106,157,146,228,154,249,154,128,147,180,155,66,157,197,147,72,153,67,156,205,152,60,0,42,0,236,130,60,0,42,0,61,103,235,110,67,111,135,125,212,124,60,0,42,0,192,121,171,92,192,92,219,115,227,126,150,136,7,116,8,149,197,85,180,110,147,116,14,137,15,137,185,146,145,135,77,126,97,126,229,147,253,147,69,159,60,0,42,0,1,84,12,98,244,101,158,117,241,118,40,107,229,128,123,152,71,102,15,138,124,152,87,134,90,134,30,140,173,90,65,94,223,99,81,110,91,134,199,136,8,152,72,105,162,122,10,152,24,86,159,88,0,151,70,155,83,86,3,91,84,107,3,126,102,133,81,135,221,138,67,139,123,126,86,155,73,154,80,148,26,155,60,0,42,0,198,79,144,95,163,132,60,0,42,0,184,139,116,84,193,89,233,139,148,81,41,104,221,115,102,80,49,138,138,102,97,138,48,122,38,145,200,124,145,145,232,118,60,0,42,0,237,101,53,79,143,94,127,108,167,130,144,79,121,83,52,96,128,108,217,83,100,96,43,102,43,109,191,87,48,107,136,107,197,112,236,115,214,82,77,101,88,101,215,82,252,112,234,126,237,126,87,145,163,85,251,88,127,90,2,103,134,110,110,125,83,128,57,138,73,97,102,113,154,125,196,132,201,140,210,105,53,111,74,111,226,118,129,119,210,125,95,128,138,146,93,115,56,122,214,125,99,155,199,133,178,119,218,133,140,126,110,156,60,0,42,0,255,132,60,0,42,0,5,84,105,143,13,102,163,91,50,95,210,142,139,104,22,140,167,85,71,88,151,90,3,97,11,97,206,99,49,132,50,132,132,102,74,113,68,116,210,132,123,119,7,81,164,121,174,123,7,126,231,127,86,135,215,146,193,97,127,133,224,138,252,138,121,147,253,153,206,119,254,127,252,133,16,134,9,136,94,139,26,156,60,0,42,0,132,115,185,115,195,117,172,96,203,101,1,116,1,135,217,90,41,111,182,102,135,116,136,106,191,116,248,97,60,0,42,0,186,84,9,144,69,102,220,112,120,144,72,152,99,118,108,118,60,0,42,0,48,96,235,108,33,102,171,112,218,126,41,119,168,136,201,148,4,116,52,119,82,136,50,110,98,125,101,105,102,105,73,146,185,120,25,133,95,149,153,151,180,152,60,126,79,126,199,147,130,139,25,141,60,0,42,0,74,82,182,117,134,132,116,151,155,133,165,143,170,143,190,151,60,0,42,0,116,122,136,101,116,78,102,91,164,92,195,92,19,131,246,108,149,136,52,158,5,142,198,88,120,91,168,93,169,111,226,113,247,137,228,150,253,157,60,0,42,0,234,150,164,129,48,106,93,130,76,143,213,156,72,156,60,0,42,0,64,136,55,84,121,87,216,114,86,104,17,140,144,141,20,139,37,112,60,0,42,0,67,87,203,82,217,87,4,113,219,82,100,88,143,113,168,122,18,133,242,82,243,82,171,133,232,153,145,86,206,88,111,115,176,133,219,102,251,113,208,129,196,119,13,134,230,88,11,114,129,126,186,145,60,0,42,0,245,94,251,91,236,101,225,93,111,154,74,103,67,117,226,139,203,92,66,96,53,109,84,109,3,125,64,131,104,131,18,104,106,104,229,107,227,115,113,80,11,92,170,95,215,99,98,138,180,153,41,145,159,156,90,86,111,111,51,101,51,106,197,113,214,113,149,116,243,135,79,156,88,156,101,112,60,0,42,0,66,83,173,139,175,139,40,79,91,108,197,143,154,79,250,93,135,95,229,114,255,143,10,144,137,107,10,138,19,138,25,138,94,89,253,93,190,107,4,122,92,144,59,97,208,140,64,86,96,111,72,133,104,152,66,148,60,0,39,0,208,253,89,0,39,0,60,0,42,0,43,78,39,87,139,83,22,84,152,94,188,98,146,103,173,87,38,158,96,104,45,158,225,87,114,91,212,148,15,105,9,157,15,147,40,157,211,88,118,157,26,148,60,0,42,0,89,114,34,79,145,83,136,92,189,130,147,83,161,115,10,116,12,123,156,134,16,88,21,93,22,93,175,109,26,115,88,116,90,119,89,136,4,111,86,159,60,0,42,0,138,83,140,94,209,84,22,85,94,85,214,117,197,150,2,118,101,133,60,0,42,0,156,82,32,87,103,143,154,78,126,137,182,139,156,78,189,114,211,143,158,78,203,142,5,90,28,99,17,120,249,79,41,108,109,90,151,99,29,138,224,99,44,108,48,115,80,128,20,87,15,122,171,122,126,159,60,0,42,0,91,78,64,84,60,0,42,0,121,96,102,82,223,112,218,115,237,128,99,80,38,93,202,109,249,109,9,113,17,113,248,131,9,150,110,110,76,129,89,113,125,120,34,145,227,90,57,111,150,93,46,106,131,145,185,149,46,91,232,97,246,123,213,97,217,129,235,158,60,0,42,0,160,139,246,94,235,149,37,78,141,89,171,130,0,138,1,138,169,92,22,102,191,108,142,112,212,144,248,89,43,90,255,114,20,120,154,131,46,90,208,118,113,85,2,116,79,120,46,138,134,149,14,150,82,93,83,93,117,123,150,125,18,135,105,88,197,99,76,105,125,138,158,120,5,133,156,152,179,83,100,134,187,149,144,106,79,152,84,152,180,86,219,88,204,93,55,124,233,106,236,158,231,88,77,91,215,93,214,93,21,107,57,121,125,158,163,158,60,0,42,0,53,89,129,98,135,108,117,78,86,81,68,89,232,79,87,81,61,83,7,95,77,136,67,80,163,83,169,99,60,119,18,132,254,144,83,145,67,93,29,97,74,98,220,99,234,104,48,110,55,110,48,116,67,144,146,150,60,105,104,127,250,136,20,111,23,137,45,98,88,135,71,155,94,86,189,142,47,126,191,106,225,158,180,83,23,117,11,156,160,157,228,158,94,159,145,159,60,81,237,158,105,152,52,159,216,93,218,93,238,102,88,155,57,159,116,159,246,158,60,0,42,0,140,83,159,89,195,137,106,114,189,84,242,89,101,95,102,95,26,120,1,85,180,91,79,102,251,112,115,130,142,137,140,154,80,80,20,113,26,140,129,150,173,85,48,88,101,101,48,113,49,113,18,115,111,120,85,132,193,150,191,80,59,105,142,110,223,110,235,156,173,83,149,88,165,102,150,113,125,145,10,91,51,140,13,153,8,157,196,113,213,113,250,138,93,141,51,155,213,102,51,157,64,145,16,154,19,154,165,86,63,91,118,130,11,141,197,142,227,102,19,114,182,145,52,154,195,157,84,112,23,141,254,137,140,139,188,145,92,153,87,154,240,157,119,130,78,112,197,145,96,154,103,112,158,139,83,140,84,140,105,112,60,0,42,0,46,89,137,84,206,89,176,98,241,108,131,107,230,128,15,119,231,121,47,158,96,146,245,150,133,151,38,157,60,0,42,0,108,98,138,127,38,150,51,150,248,101,104,103,128,112,207,152,111,79,183,82,28,108,161,117,150,148,159,87,137,95,28,102,11,109,143,127,202,112,220,115,59,119,125,150,53,93,56,93,218,99,216,134,109,101,152,102,74,105,108,113,147,121,13,118,249,138,48,143,90,147,57,157,186,152,10,148,17,156,55,151,9,158,60,0,42,0,240,78,82,79,113,87,159,92,123,81,205,103,180,112,39,108,210,117,59,125,159,80,103,105,238,142,67,97,49,108,70,135,10,153,218,153,233,97,1,101,98,118,34,121,60,0,42,0,15,96,89,96,55,104,149,127,71,138,216,105,62,111,35,106,1,112,60,0,42,0,170,127,60,0,42,0,122,94,45,89,6,84,150,89,150,103,128,107,69,121,30,138,147,85,125,132,70,105,112,129,1,157,128,144,60,0,42,0,59,114,39,92,45,92,180,128,154,87,218,89,227,92,122,143,4,80,209,112,231,115,145,122,156,80,47,88,250,99,35,140,250,142,194,85,177,90,173,95,46,97,22,100,71,100,231,110,58,115,89,144,101,144,127,100,154,102,163,105,100,116,118,116,154,146,214,152,6,153,162,93,164,93,216,120,175,122,176,122,26,153,71,126,32,139,33,139,144,147,208,156,187,152,40,134,142,144,100,152,41,156,60,0,42,0,248,78,142,91,134,92,173,98,115,103,213,114,237,130,172,84,252,103,17,119,133,122,136,122,0,130,96,80,121,90,62,93,148,110,212,132,154,105,34,157,196,149,21,154,105,159,213,157,60,0,42,0,126,122,111,131,129,137,165,148,142,136,148,122,68,123,111,132,79,138,142,113,158,137,127,151,95,115,94,158,172,133,60,159,220,102,255,113,94,130,229,133,197,119,0,128,133,126,194,157,145,139,112,148,60,0,42,0,59,80,150,99,48,105,141,102,78,86,113,111,46,136,60,0,42,0,55,114,54,128,83,99,246,99,216,148,58,114,254,145,227,146,129,147,232,100,60,0,42,0,95,78,20,84,182,81,220,87,206,145,34,86,28,111,196,88,60,0,42,0,26,78,246,83,243,102,117,152,245,102,186,144,28,89,180,98,177,78,188,103,2,109,1,152,89,99,84,102,189,103,232,112,88,85,178,109,18,140,40,88,151,107,75,129,73,132,19,145,183,88,106,105,109,105,140,153,247,80,196,102,197,102,75,107,193,113,141,116,219,100,163,118,177,119,52,145,101,151,170,93,171,93,178,111,1,139,35,153,136,86,235,100,215,102,184,119,113,147,234,100,23,114,15,121,145,147,65,153,122,157,55,148,104,151,92,154,8,158,60,0,42,0,170,78,60,0,42,0,0,78,74,78,12,95,183,143,100,136,10,79,99,136,59,83,26,84,241,88,157,79,78,121,191,84,34,109,152,96,15,110,23,115,105,117,252,144,241,148,249,88,214,99,57,107,220,134,149,121,219,90,42,111,38,122,165,146,4,91,107,86,1,89,127,116,101,158,68,126,185,106,201,107,171,145,223,158,105,139,214,157,243,158,60,0,42,0,65,78,234,78,28,83,47,87,55,89,198,143,157,81,144,91,130,108,210,139,135,79,156,91,33,96,182,108,203,114,106,136,228,143,116,153,166,84,232,89,211,92,94,96,248,98,194,103,198,115,245,116,59,141,251,143,167,91,248,93,44,95,69,98,24,104,75,104,25,119,240,128,152,136,17,138,164,140,205,117,251,121,27,128,19,132,44,105,160,127,230,134,81,138,82,138,189,140,87,144,144,90,134,102,56,105,131,138,224,141,9,152,144,152,244,152,145,117,0,81,170,113,183,123,122,144,172,93,91,95,92,95,148,135,36,152,37,152,242,91,183,93,3,124,74,152,93,95,94,95,59,139,212,147,78,124,250,137,137,139,3,158,60,0,42,0,89,78,242,93,229,78,135,148,65,79,58,101,227,119,225,130,226,130,161,94,35,130,129,134,212,145,26,80,70,98,22,123,24,144,79,145,111,80,58,93,209,101,5,105,24,146,111,146,230,156,255,136,214,101,38,142,34,143,124,101,152,135,165,106,18,121,100,130,251,135,87,152,89,143,110,159,60,0,42,0,66,78,73,78,191,78,11,95,8,82,198,95,122,130,7,83,138,128,174,139,166,78,7,79,121,92,2,95,133,130,63,79,90,79,174,82,83,84,68,87,121,95,145,98,89,103,52,128,197,130,209,139,145,144,126,79,109,84,121,84,196,92,8,96,63,96,19,102,141,103,37,107,198,108,136,112,199,121,206,126,227,139,127,154,203,79,85,89,31,94,32,94,8,95,187,103,66,109,180,115,171,117,191,127,117,136,118,143,8,85,188,87,146,96,57,99,39,104,58,104,45,107,101,109,115,109,202,118,163,136,10,140,109,150,218,82,246,87,248,87,165,96,156,99,185,107,112,117,91,120,155,127,202,127,204,127,31,132,50,138,51,138,89,140,91,140,56,144,244,145,191,150,70,94,97,101,121,102,237,104,148,107,89,110,50,113,225,134,77,138,199,141,252,142,32,146,174,154,132,78,127,81,15,97,162,110,72,115,236,117,106,119,233,122,34,127,169,127,132,128,212,136,219,136,99,138,233,82,213,90,217,94,143,105,105,111,23,118,137,129,250,132,52,135,126,151,197,153,4,81,142,100,248,105,197,107,60,0,42,0,160,113,164,113,188,113,30,118,188,138,82,149,93,158,98,158,211,158,147,82,27,87,191,88,17,91,31,91,167,93,182,97,204,97,192,102,170,107,186,111,218,113,49,118,150,119,83,122,10,126,87,130,143,133,160,135,57,137,241,91,129,101,206,102,141,106,93,107,225,113,241,113,243,127,252,127,198,129,150,140,249,140,168,155,84,118,217,133,221,133,0,141,176,147,113,149,118,126,121,126,119,140,44,151,227,155,130,157,131,157,141,157,55,112,25,134,111,139,112,139,179,145,183,145,80,153,200,86,63,148,193,157,202,157,255,97,124,137,91,154,231,157,73,134,254,157,155,139,120,159,60,0,42,0,217,86,224,86,37,150,52,150,140,79,148,87,251,89,7,109,53,131,107,131,243,151,131,154,54,104,183,107,36,108,112,150,208,81,245,121,192,136,223,148,123,150,130,150,145,85,25,88,99,90,20,97,67,123,106,125,69,107,181,110,139,121,145,132,45,133,71,97,22,118,166,146,248,125,135,151,242,138,18,151,240,153,126,86,201,149,32,151,254,151,60,0,42,0,152,81,81,78,31,84,190,114,194,130,166,101,206,112,160,87,255,108,1,87,254,92,250,114,226,115,118,131,20,138,26,138,108,90,197,91,31,93,47,93,235,109,33,138,246,148,29,146,130,159,219,110,146,120,30,145,36,89,41,133,128,146,86,86,165,107,140,116,190,138,154,86,173,106,235,135,42,151,87,159,227,157,60,0,42,0,90,78,244,94,57,92,21,95,50,84,110,153,147,134,122,141,144,150,254,109,15,146,242,152,160,150,119,151,238,152,4,103,17,143,228,120,155,141,131,106,62,118,177,150,190,93,229,111,230,111,190,135,31,134,253,106,110,118,148,139,60,0,42,0,112,83,26,131,21,109,228,128,189,87,55,88,90,110,12,115,213,94,115,145,109,97,74,118,150,97,151,97,163,155,218,97,188,106,60,0,42,0,140,124,60,0,42,0,148,94,220,95,241,130,64,80,92,104,241,115,186,131,104,85,116,90,150,90,37,97,54,110,236,126,32,103,80,113,91,116,200,90,164,120,51,149,36,86,132,100,7,117,211,125,40,127,66,127,103,135,207,140,49,106,142,116,67,127,46,137,72,147,25,151,44,157,102,158,48,91,201,97,186,129,250,151,22,117,112,158,145,157,167,157,182,86,70,91,126,91,22,101,76,127,33,134,77,139,251,106,212,116,47,121,123,139,175,157,77,148,147,126,51,136,234,157,200,142,249,157,14,158,26,158,60,0,42,0,193,118,206,143,20,131,200,118,103,131,185,131,182,85,36,132,37,132,38,132,205,134,129,110,139,110,62,132,204,80,75,88,121,105,226,110,229,132,70,111,146,113,71,135,105,116,127,135,52,91,223,113,8,126,162,135,217,111,218,111,244,111,192,133,174,137,13,139,98,141,5,112,163,147,13,101,27,112,32,112,47,112,5,136,255,106,52,112,15,141,80,112,93,124,92,112,111,124,60,0,42,0,232,119,226,144,103,109,172,104,141,152,149,152,150,152,108,100,113,95,65,111,63,118,78,122,52,152,202,93,238,94,27,148,109,118,60,0,42,0,32,102,142,102,108,120,181,90,161,129,95,86,149,151,102,156,60,0,42,0,223,84,55,85,178,85,60,0,42,0,99,79,229,98,200,117,149,144,184,94,173,80,200,85,24,145,205,150,137,88,222,90,117,97,253,110,230,105,69,114,112,86,197,88,193,100,173,111,250,144,91,149,195,129,85,118,221,150,222,147,217,156,241,94,73,112,84,153,69,156,219,157,112,118,60,0,42,0,129,85,216,99,153,152,82,152,43,156,60,0,42,0,56,108,44,117,143,84,58,96,243,108,209,79,199,82,200,82,16,104,199,87,128,96,225,103,140,109,127,96,155,80,229,96,17,97,103,110,103,120,96,138,78,88,113,93,110,95,57,97,249,134,66,97,10,142,156,121,172,156,52,142,210,155,60,0,42,0,40,117,218,130,61,120,159,145,60,0,42,0,24,79,231,95,56,101,102,84,46,96,209,108,125,94,12,144,160,96,128,158,250,110,130,97,42,81,62,145,152,86,0,112,204,106,139,126,48,128,60,0,42,0,34,92,36,92,49,117,139,108,185,114,174,144,185,108,172,128,35,96,191,101,163,117,243,92,95,109,222,121,156,131,184,131,245,144,192,148,100,80,176,134,39,138,48,144,56,110,54,115,74,144,127,156,98,105,55,115,62,146,137,156,15,143,192,153,85,133,99,135,119,155,54,143,139,155,254,106,60,0,42,0,203,83,9,103,35,78,99,83,195,130,73,145,145,127,174,94,47,104,144,127,160,131,132,104,72,128,28,129,213,148,117,110,137,121,15,135,170,146,241,105,86,114,87,114,221,158,238,97,60,0,42,0,200,83,243,83,124,94,81,79,145,79,103,91,214,114,255,124,202,84,255,86,247,89,165,91,223,92,218,103,112,114,80,121,241,139,246,143,0,85,180,134,180,78,129,140,201,145,109,145,152,138,44,159,60,0,42,0,143,132,60,0,42,0,188,143,92,98,161,126,194,143,195,143,123,122,83,150,6,125,118,134,57,85,228,109,211,118,0,118,138,123,60,0,42,0,144,78,142,78,152,144,3,79,89,79,164,89,117,98,69,103,36,107,151,115,153,115,188,101,194,118,254,129,103,136,124,156,123,78,222,79,106,81,186,121,253,122,1,130,48,131,27,90,47,90,49,90,89,104,243,114,0,140,81,145,128,153,20,110,56,132,133,150,233,150,90,155,35,88,44,88,51,93,78,93,91,93,9,97,196,99,112,105,29,110,97,110,109,117,98,120,116,129,46,132,62,144,172,154,26,97,213,101,97,105,134,105,72,107,79,114,92,116,69,130,94,134,206,137,1,111,110,119,172,122,6,130,21,137,118,107,173,127,77,133,83,135,219,138,211,150,24,153,41,91,158,111,166,137,48,142,95,107,181,116,184,135,63,143,93,147,35,139,195,154,189,155,223,101,69,124,31,154,242,155,27,134,5,156,224,157,6,158,60,0,42,0,14,78,136,78,27,79,135,91,127,92,189,127,232,150,193,79,227,79,39,99,185,121,237,139,4,87,255,92,100,121,74,80,44,83,9,87,190,94,84,101,5,145,158,101,45,132,180,80,217,91,64,105,64,116,16,118,7,130,158,138,179,122,217,146,40,152,137,159,115,86,188,93,217,97,144,140,148,101,140,158,12,134,108,159,60,0,42,0,128,128,137,115,109,154,43,87,127,128,139,130,140,130,170,89,236,95,107,153,178,128,193,144,49,102,241,114,215,121,31,131,252,79,234,92,103,95,116,109,33,120,176,148,132,152,144,85,223,87,9,88,134,96,208,96,50,107,226,109,239,109,172,136,21,140,51,144,8,150,133,85,169,85,187,85,128,90,211,91,189,94,161,95,219,104,220,104,235,104,52,113,25,116,222,119,114,120,213,136,71,144,235,152,173,153,70,158,8,97,234,110,92,113,34,122,109,127,72,130,174,132,227,132,137,138,58,146,16,152,215,90,142,93,43,98,211,107,68,115,9,118,206,125,31,135,46,135,13,143,137,146,74,86,126,97,79,111,54,122,249,132,129,133,107,140,121,144,202,146,255,156,166,111,207,113,224,113,119,133,237,138,37,147,190,149,37,157,39,157,42,157,37,81,7,121,166,121,74,155,108,158,82,118,22,121,28,121,101,122,253,123,88,126,167,145,82,157,242,106,71,153,125,139,93,143,45,148,49,151,14,107,72,154,59,155,94,124,74,156,248,157,18,158,29,107,165,159,201,142,48,155,49,155,106,112,60,0,42,0,114,124,41,114,60,0,42,0,154,111,60,0,42,0,230,86,34,158,72,82,164,81,129,96,34,119,51,158,195,91,1,110,6,110,10,110,21,110,204,96,245,109,126,132,233,104,172,132,14,135,247,136,83,158,162,123,246,156,53,135,204,153,27,157,61,91,119,157,65,112,24,159,29,159,60,0,42,0,67,81,134,81,32,141,167,144,88,84,237,86,133,108,108,103,163,87,48,114,159,140,159,83,225,84,6,87,14,123,150,134,129,136,161,83,91,145,14,87,244,99,114,110,40,115,24,127,18,131,40,146,11,159,18,87,19,87,108,88,180,90,196,90,144,110,146,110,63,115,66,115,157,132,158,105,172,105,149,143,227,125,1,126,93,135,111,135,109,155,124,106,177,127,151,133,136,135,28,139,69,143,255,158,177,147,222,106,141,144,53,154,162,157,176,157,181,83,60,0,42,0,220,143,246,118,58,144,96,144,250,146,60,0,42,0,23,89,153,128,180,89,209,130,40,96,98,150,184,87,79,136,134,80,155,90,190,99,87,116,144,121,63,97,235,136,17,137,36,137,110,86,88,152,60,0,42,0,240,102,241,102,166,126,4,125,185,123,241,119,95,95,96,95,60,0,42,0,8,103,9,98,22,82,156,89,132,92,136,98,63,121,179,92,165,115,113,96,133,96,166,96,142,134,143,134,207,142,186,148,5,150,115,99,192,141,195,141,164,124,138,141,5,146,181,124,94,146,177,149,178,149,51,91,62,106,215,123,189,93,160,159,70,124,57,112,37,134,230,158,26,114,180,121,141,142,101,124,17,158,112,124,25,158,60,0,42,0,85,102,10,127,128,132,136,102,50,108,116,113,149,132,51,108,107,89,121,135,95,141,53,152,167,153,7,141,60,0,42,0,145,78,251,82,0,83,29,79,233,86,152,89,132,108,173,126,184,130,0,102,71,117,3,119,208,121,231,144,162,109,28,125,24,128,58,128,22,145,242,150,42,97,179,110,96,123,124,123,183,132,137,113,144,111,83,133,198,146,82,106,212,123,28,126,60,0,42,0,65,81,45,150,61,89,142,98,193,114,104,150,122,131,146,107,151,85,23,146,149,150,158,107,30,137,187,153,210,120,241,140,35,151,107,159,115,159,60,0,42,0,85,91,208,143,159,103,211,144,125,96,6,145,93,145,138,80,242,96,32,97,75,144,77,97,106,129,235,151,245,151,133,113,168,113,247,125,252,125,116,133,21,126,128,133,150,145,158,145,43,153,244,133,215,151,222,151,10,134,251,151,60,0,42,0,163,98,103,126,60,0,39,0,208,253,90,0,39,0,60,0,42,0,0,94,29,83,158,108,202,143,130,84,246,98,37,125,46,125,84,146,115,155,220,129,226,129,60,0,42,0,66,103,175,108,56,120,122,80,146,85,244,151,209,150,252,120,77,137,220,150,203,86,208,86,229,150,60,0,42,0,139,84,60,0,42,0,125,112,126,112,62,117,201,84,61,104,214,112,209,131,61,110,168,110,117,119,243,140,60,0,42,0,176,91,61,93,60,0,42,0,141,81,40,87,87,98,5,109,125,143,164,80,9,143,104,145,14,81,33,126,60,0,42,0,66,81,204,124,42,124,46,124,21,148,31,148,60,0,42,0,177,84,60,0,42,0,29,102,90,104,193,91,221,99,70,86,141,100,39,81,5,101,18,101,57,81,34,101,177,141,178,141,60,0,42,0,130,102,171,102,219,140,94,141,62,147,60,145,253,111,84,142,201,116,10,141,232,147,210,116,71,145,82,112,131,139,218,116,182,121,120,137,154,139,97,153,60,0,42,0,40,83,66,114,152,127,67,141,205,140,231,129,53,133,216,140,19,141,210,154,28,141,60,0,42,0,117,154,212,153,60,0,42,0,88,89,9,95,15,129,95,88,108,132,186,146,211,129,223,129,60,0,42,0,174,80,109,144,223,124,103,142,169,145,60,0,42,0,255,81,127,148,60,0,42,0,233,101,163,103,6,104,164,134,215,104,161,111,170,116,187,133,112,126,251,133,60,0,42,0,118,112,129,118,130,118,21,85,35,85,32,144,141,104,191,85,101,97,112,113,65,130,106,86,9,124,229,113,195,122,95,139,174,141,129,142,200,122,60,0,42,0,25,82,158,98,162,108,233,98,206,108,253,108,35,141,238,143,71,82,54,85,103,85,59,94,46,123,52,130,172,140,173,110,224,119,22,86,231,90,88,94,166,123,54,133,13,106,117,107,206,138,92,141,199,100,164,111,159,118,148,119,0,124,11,121,87,137,46,139,254,140,12,136,90,159,112,159,5,158,60,0,42,0,40,89,196,78,130,94,68,108,3,102,23,102,81,99,49,93,60,0,42,0,44,79,60,0,42,0,60,141,29,98,202,140,151,156,253,155,8,136,2,156,97,156,60,0,42,0,14,96,60,0,42,0,46,140,86,139,91,139,60,0,42,0,206,86,60,0,42,0,151,88,43,145,158,88,142,97,47,127,103,106,183,113,148,116,240,119,243,120,126,127,82,126,68,139,91,156,60,0,42,0,3,149,229,146,17,117,96,141,8,141,60,0,42,0,78,98,18,84,175,98,83,89,19,99,228,103,251,103,243,84,103,80,179,85,248,99,35,110,66,105,132,82,99,100,182,118,29,106,240,137,187,118,71,139,68,159,71,159,60,0,42,0,45,103,52,117,248,149,187,134,225,148,96,113,80,114,152,149,154,123,43,128,88,147,87,139,60,0,42,0,143,83,195,98,242,130,40,119,31,120,41,100,138,156,157,156,55,142,147,155,186,155,60,0,42,0,77,78,121,112,200,139,164,84,222,103,5,104,184,112,177,91,196,117,177,134,160,110,80,138,62,100,168,105,5,151,161,145,60,0,42,0,8,89,130,124,90,99,139,101,142,101,88,100,184,105,75,159,60,0,42,0,133,91,161,106,60,0,42,0,132,122,89,146,60,0,42,0,58,80,38,120,181,80,232,91,53,118,60,0,42,0,172,103,190,108,225,107,195,101,52,104,152,124,197,134,230,152,201,96,64,138,136,141,121,138,154,149,53,140,97,86,166,93,157,133,133,144,17,151,8,108,10,108,187,119,111,158,220,101,107,139,88,153,227,156,89,154,89,155,99,156,7,158,157,139,60,0,42,0,169,101,208,152,85,92,207,118,45,93,172,101,22,116,12,100,222,118,131,93,132,93,144,105,173,152,248,90,134,145,79,106,62,143,245,158,60,0,42,0,96,83,84,79,24,98,8,104,95,104,217,122,97,80,253,126,218,131,231,104,91,110,38,98,187,125,152,93,26,143,48,98,101,134,102,134,177,137,79,143,103,139,56,134,79,154,60,0,42,0,32,95,53,95,224,122,189,80,35,145,220,90,112,95,94,97,51,111,80,115,187,124,1,133,103,144,178,102,31,106,139,116,38,153,209,135,63,154,70,156,158,158,60,0,42,0,201,78,127,149,119,149,168,109,140,99,50,111,101,94,3,121,60,0,42,0,8,78,215,78,89,98,16,94,86,103,192,128,38,141,128,124,51,94,177,109,57,129,238,117,156,150,135,88,130,93,91,94,236,140,44,118,52,118,149,119,60,0,42,0,241,147,60,0,42,0,75,79,138,148,177,89,246,93,219,98,45,102,196,118,215,145,65,85,74,146,203,153,188,122,99,147,189,118,60,0,42,0,42,114,43,114,126,98,188,108,117,116,60,0,42,0,236,83,70,81,207,139,155,103,151,87,164,112,227,114,117,141,10,123,129,128,208,101,249,104,84,138,103,113,105,127,135,128,136,128,153,141,204,102,243,113,161,155,194,106,190,119,132,127,60,0,42,0,64,127,60,0,42,0,7,135,251,85,236,90,110,144,60,0,42,0,135,83,152,98,125,107,250,119,19,120,119,124,116,134,242,84,209,87,141,124,169,136,96,85,138,96,98,102,99,102,132,143,134,85,240,134,95,138,42,140,178,153,122,100,18,143,212,120,25,143,184,146,153,143,196,135,158,86,43,139,58,139,191,155,77,143,129,139,139,139,60,0,42,0,5,128,125,78,107,85,135,121,23,149,109,141,54,137,117,137,60,0,42,0,217,143,216,103,89,109,25,144,219,109,23,133,28,106,106,111,103,158,197,135,211,157,60,0,42,0,64,119,87,132,60,0,42,0,30,141,136,148,166,79,72,109,205,115,206,115,215,128,158,140,42,94,21,104,98,104,30,119,31,119,39,120,111,121,221,145,117,80,109,104,89,145,202,91,116,132,73,144,195,90,56,100,159,101,104,105,73,115,4,117,142,121,150,132,193,132,65,146,85,151,155,105,157,107,103,116,170,120,155,121,103,111,180,123,60,106,181,111,251,129,189,133,49,147,67,143,124,147,72,124,117,156,60,0,42,0,202,139,174,98,149,103,43,95,35,102,120,143,82,92,91,117,185,117,21,119,151,136,62,125,68,128,25,132,214,136,58,138,235,142,28,127,57,122,215,153,37,126,18,155,240,158,60,0,42,0,51,87,53,150,188,126,61,117,178,79,11,99,99,150,41,158,47,99,21,103,26,104,22,125,57,119,72,141,86,145,102,88,213,99,124,125,118,101,113,116,171,138,209,140,244,146,71,149,7,151,6,157,173,147,174,147,60,0,42,0,231,81,137,78,66,79,195,89,129,95,20,96,45,114,228,139,233,87,229,92,35,99,161,112,240,114,221,112,16,119,178,148,29,93,34,93,153,99,25,115,65,119,71,128,238,148,156,90,193,99,93,123,176,95,184,132,92,119,45,142,102,146,180,95,143,123,26,147,220,123,7,155,214,155,101,118,60,0,42,0,54,108,141,98,253,124,239,98,159,99,120,102,56,97,156,100,116,101,60,0,42,0,99,107,193,139,209,144,39,94,63,101,199,117,64,94,60,138,99,88,205,138,45,145,10,157,73,139,60,0,42,0,75,78,47,101,110,83,65,108,157,130,49,84,245,93,101,108,103,87,157,103,220,108,229,119,199,126,162,128,0,104,87,121,211,121,214,121,209,128,221,128,124,136,1,80,183,117,108,121,234,121,2,129,187,150,148,104,32,98,37,105,248,129,24,100,148,121,25,122,149,125,176,105,24,135,182,153,247,156,50,157,84,126,53,134,5,159,60,0,42,0,103,98,132,79,183,89,244,118,234,89,36,80,60,80,64,128,222,145,244,87,247,87,212,109,76,128,13,105,150,107,134,114,131,121,119,125,214,141,237,85,225,116,68,146,140,88,109,100,189,153,2,91,121,97,16,111,47,142,52,106,177,129,54,126,119,128,217,135,96,142,196,142,145,142,60,0,42,0,2,89,98,107,234,83,234,81,167,82,232,101,47,150,64,87,65,87,11,94,122,98,102,108,154,108,184,126,183,130,62,96,167,98,73,121,11,131,171,84,73,96,7,99,179,103,20,109,11,120,121,136,117,143,253,109,187,117,25,125,40,138,190,141,249,142,249,158,111,145,181,95,226,133,103,137,60,0,42,0,36,150,243,129,150,130,215,95,238,95,123,98,120,140,54,82,148,83,129,87,25,94,28,94,187,108,153,112,40,141,227,143,197,144,231,79,217,92,162,94,164,94,3,99,227,103,9,104,55,109,81,121,95,150,33,90,143,95,26,99,74,102,78,104,254,114,233,121,244,129,159,136,61,141,126,143,127,78,107,80,157,95,183,99,189,104,86,105,24,115,100,117,212,117,242,121,247,121,146,122,41,125,208,127,160,136,215,137,173,140,218,148,55,158,130,80,59,93,88,95,122,102,222,110,227,117,237,134,253,142,152,154,216,91,204,94,49,100,205,110,26,122,107,123,110,127,241,141,10,143,39,149,201,150,134,88,239,110,76,111,144,117,253,136,159,137,140,138,141,146,95,94,132,97,111,100,171,113,58,122,163,129,239,137,234,140,44,142,213,146,243,100,216,101,4,112,251,125,178,150,228,153,25,157,40,81,149,82,229,97,242,100,219,106,73,122,178,135,235,97,4,141,205,106,198,116,246,137,45,154,239,155,41,121,81,140,58,154,71,154,147,142,217,157,85,148,82,140,60,0,42,0,148,95,60,0,42,0,45,78,0,79,119,108,35,82,144,89,120,95,224,95,200,108,130,112,200,126,202,103,197,118,115,136,159,148,47,130,119,136,66,125,33,146,82,94,32,133,58,149,191,146,164,135,36,157,189,135,126,147,40,159,113,142,24,148,102,124,60,0,42,0,191,128,205,121,162,81,160,85,48,92,90,88,92,88,113,107,68,113,107,129,7,118,46,122,53,142,92,122,60,0,42,0,242,78,23,79,149,89,198,114,76,121,61,131,118,136,205,145,155,134,69,80,62,119,57,88,145,90,87,123,70,136,229,138,60,0,42,0,222,93,31,130,204,139,156,79,104,84,50,109,191,112,234,139,208,112,216,115,128,143,238,144,159,95,171,99,205,109,234,119,49,144,60,158,140,85,165,124,82,141,8,143,130,146,217,140,22,143,12,151,242,153,233,118,5,139,67,157,6,154,120,139,60,0,42,0,175,89,116,143,248,142,60,0,42,0,152,128,26,94,155,117,247,131,109,102,109,119,146,123,222,155,60,0,42,0,163,126,55,79,106,84,146,84,153,91,201,126,145,81,174,84,60,102,2,125,196,128,110,131,177,118,78,145,93,102,153,124,100,132,75,138,3,117,118,138,253,80,186,118,206,153,99,86,16,126,164,154,64,124,85,124,82,124,95,154,60,0,42,0,49,103,175,82,143,79,219,139,190,144,25,109,49,131,42,104,224,115,248,139,42,115,67,120,252,121,190,136,226,148,81,125,219,134,133,138,230,141,224,105,116,111,107,135,150,146,101,106,248,138,108,140,239,153,162,155,56,157,38,112,235,106,231,106,250,155,4,159,41,136,60,0,42,0,249,122,207,108,250,122,162,112,1,123,63,131,219,112,139,122,16,144,28,123,51,130,3,118,201,123,237,113,11,136,133,142,65,156,78,91,95,112,239,102,24,107,37,114,62,136,131,148,60,0,42,0,54,78,59,78,148,91,196,98,92,127,124,150,26,110,110,113,81,113,93,138,49,86,208,111,136,158,169,119,154,82,209,86,184,101,218,119,60,0,42,0,43,79,71,79,79,79,169,82,187,126,206,130,126,87,124,103,232,108,46,141,236,143,123,154,244,88,241,103,182,107,183,112,93,121,176,117,29,119,43,120,105,121,218,122,135,131,53,125,56,125,156,127,192,134,64,93,81,123,59,138,175,140,211,141,244,142,248,148,111,123,82,146,181,153,184,88,184,123,229,127,38,106,243,146,208,153,235,123,20,151,134,158,68,148,60,0,42,0,147,98,155,106,188,129,59,124,253,154,60,0,42,0,253,98,60,0,42,0,233,141,60,0,42,0,19,78,192,83,2,92,22,120,8,92,31,145,124,88,229,90,124,116,14,117,215,120,158,129,155,152,218,120,239,138,228,135,83,152,68,156,60,0,42,0,108,143,104,91,226,142,241,122,73,143,60,0,42,0,119,112,109,85,31,88,131,132,81,116,94,129,206,80,90,141,176,100,198,123,148,153,249,123,72,137,250,140,84,139,76,153,192,86,81,124,60,0,42,0,134,89,132,94,157,89,146,94,88,131,36,90,105,104,138,131,137,104,119,110,167,124,197,136,221,136,1,106,218,124,60,0,42,0,238,88,239,88,182,114,192,114,245,88,11,113,52,111,158,100,7,98,60,0,42,0,185,150,253,143,147,154,37,149,16,147,5,154,123,157,60,0,42,0,157,108,60,0,42,0,96,87,88,104,13,123,55,90,0,127,244,96,0,117,18,127,119,117,126,120,135,129,156,88,180,125,88,141,11,126,200,138,138,145,35,147,31,153,8,121,5,141,91,143,70,148,60,0,42,0,146,91,205,143,171,128,128,122,6,140,196,138,96,136,60,0,42,0,198,81,251,87,214,81,150,110,167,125,60,0,42,0,48,138,21,122,60,0,42,0,83,83,217,98,170,112,44,80,73,99,76,104,193,104,191,109,243,104,213,105,91,122,113,122,63,136,60,0,42,0,52,87,116,95,75,108,179,114,124,112,213,83,176,89,1,131,171,101,74,109,53,78,94,109,245,112,252,139,76,145,68,85,69,85,58,90,178,104,177,101,107,102,19,105,56,116,122,120,161,122,108,127,175,100,198,100,178,101,154,121,133,82,193,138,209,138,220,146,193,111,231,123,226,100,128,101,181,101,239,111,225,106,54,139,111,149,47,148,107,157,66,112,23,136,50,148,87,124,223,157,113,124,60,0,42,0,167,122,60,0,42,0,114,78,92,91,10,131,121,81,168,84,213,89,255,89,50,131,37,104,134,115,14,125,64,141,68,141,48,93,196,109,246,121,1,127,24,140,124,141,222,85,115,91,107,93,20,105,125,110,203,110,162,124,88,132,142,143,17,145,118,91,140,121,220,137,62,138,178,140,199,140,145,141,49,149,53,122,199,125,45,146,67,149,135,159,28,143,18,159,172,111,238,138,166,141,58,143,25,147,237,154,187,156,127,147,161,147,190,116,63,152,62,152,212,155,133,157,77,159,38,156,60,0,42,0,251,132,60,0,42,0,212,78,7,84,201,89,202,89,77,103,247,119,196,121,207,128,112,84,237,121,125,124,20,128,120,134,43,123,147,104,232,145,89,85,43,125,211,110,63,138,159,105,116,106,60,0,42,0,87,91,234,129,147,130,33,131,98,131,51,80,90,82,99,96,120,114,13,110,37,119,38,119,212,128,254,128,44,111,60,0,42,0,80,91,60,0,42,0,151,91,39,80,252,126,148,154,43,88,79,93,85,93,254,96,213,104,35,115,89,129,124,132,54,105,33,103,120,93,47,122,156,125,195,125,167,113,245,125,234,127,108,135,40,142,42,142,235,120,80,147,117,140,100,142,12,154,3,155,35,154,9,155,55,155,238,155,252,155,65,148,60,0,42,0,59,96,108,80,116,99,227,96,33,97,212,99,3,100,175,80,215,132,96,100,207,125,2,126,234,113,61,126,211,147,60,0,42,0,181,126,46,102,173,117,10,80,20,115,130,120,189,124,201,124,50,118,38,126,29,147,49,126,237,124,60,0,42,0,72,111,60,0,42,0,185,144,122,154,249,139,240,144,108,150,198,131,247,104,248,104,18,145,131,123,197,125,207,138,57,145,176,156,235,155,192,158,54,154,113,159,122,159,60,0,42,0,113,141,112,141,208,155,60,0,42,0,79,89,205,99,113,105,60,0,42,0,223,121,69,132,169,132,60,0,42,0,70,83,179,141,82,83,235,84,18,93,42,93,207,101,182,80,164,123,36,142,63,142,94,149,195,147,60,0,42,0,197,139,59,150,196,126,206,79,60,114,199,115,86,121,40,85,68,125,91,138,123,151,186,147,60,0,42,0,187,148,156,142,125,148,60,0,42,0,100,126,53,127,130,126,137,126,107,124,152,126,60,0,42,0,37,101,90,148,60,0,42,0,156,83,24,103,250,85,54,106,213,135,151,126,60,0,42,0,138,93,52,86,181,93,127,86,187,116,60,0,42,0,44,104,74,125,84,145,0,103,108,102,125,121,33,122,106,127,160,143,220,105,123,145,94,133,137,145,135,106,247,146,10,147,140,106,60,0,42,0,160,103,93,122,60,0,42,0,10,92,171,88,255,88,159,93,117,144,61,106,92,126,71,127,142,157,15,148,223,156,82,156,247,157,60,0,42,0,212,80,66,86,153,100,80,139,60,0,42,0,88,99,140,146,60,0,42,0,40,102,232,121,139,131,125,99,10,105,34,116,19,122,112,123,60,146,60,0,42,0,230,93,80,79,83,126,60,0,42,0,92,79,80,87,60,150,157,92,158,92,13,96,179,79,90,121,217,128,17,85,167,94,143,136,90,80,67,132,68,132,217,132,245,152,243,124,60,0,42,0,151,84,38,0,39,0,40,0,0,78,41,0,39,0,60,0,60,0,60,0,32,50,38,0,39,0,40,0,3,78,41,0,39,0,60,0,60,0,60,0,38,50,38,0,39,0,40,0,9,78,41,0,39,0,60,0,60,0,60,0,34,50,38,0,39,0,40,0,93,78,41,0,39,0,60,0,60,0,60,0,40,50,38,0,39,0,40,0,140,78,41,0,39,0,60,0,60,0,60,0,33,50,38,0,39,0,40,0,148,78,41,0,39,0,60,0,60,0,60,0,36,50,38,0,39,0,40,0,227,78,41,0,39,0,60,0,60,0,60,0,57,50,38,0,39,0,40,0,1,79,41,0,39,0,60,0,60,0,60,0,61,50,38,0,39,0,40,0,17,79,41,0,39,0,60,0,60,0,60,0,65,50,38,0,39,0,40,0,107,81,41,0,39,0,60,0,60,0,60,0,39,50,38,0,39,0,40,0,109,81,41,0,39,0,60,0,60,0,60,0,37,50,38,0,39,0,40,0,180,82,41,0,39,0,60,0,60,0,60,0,56,50,38,0,39,0,40,0,65,83,41,0,39,0,60,0,60,0,60,0,41,50,38,0,39,0,40,0,84,83,41,0,39,0,60,0,60,0,60,0,63,50,38,0,39,0,40,0,13,84,41,0,39,0,60,0,60,0,60,0,52,50,38,0,39,0,40,0,124,84,41,0,39,0,60,0,60,0,60,0,58,50,38,0,39,0,40,0,219,86,41,0,39,0,60,0,60,0,60,0,35,50,38,0,39,0,40,0,31,87,41,0,39,0,60,0,60,0,60,0,47,50,38,0,39,0,40,0,102,91,41,0,39,0,60,0,60,0,60,0,59,50,38,0,39,0,40,0,229,101,41,0,39,0,60,0,60,0,60,0,48,50,38,0,39,0,40,0,8,103,41,0,39,0,60,0,60,0,60,0,42,50,38,0,39,0,40,0,9,103,41,0,39,0,60,0,60,0,60,0,50,50,38,0,39,0,40,0,40,103,41,0,39,0,60,0,60,0,60,0,45,50,38,0,39,0,40,0,42,104,41,0,39,0,60,0,60,0,60,0,49,50,38,0,39,0,40,0,52,108,41,0,39,0,60,0,60,0,60,0,44,50,38,0,39,0,40,0,107,112,41,0,39,0,60,0,60,0,60,0,43,50,38,0,39,0,40,0,121,114,41,0,39,0,60,0,60,0,60,0,53,50,38,0,39,0,40,0,227,118,41,0,39,0,60,0,60,0,60,0,60,50,38,0,39,0,40,0,62,121,41,0,39,0,60,0,60,0,60,0,51,50,38,0,39,0,40,0,93,121,41,0,39,0,60,0,60,0,60,0,55,50,38,0,39,0,40,0,109,121,41,0,39,0,60,0,60,0,60,0,64,50,38,0,39,0,40,0,234,129,41,0,39,0,60,0,60,0,60,0,66,50,38,0,39,0,40,0,243,129,41,0,39,0,60,0,60,0,60,0,67,50,38,0,39,0,40,0,161,140,41,0,39,0,60,0,60,0,60,0,54,50,38,0,39,0,40,0,199,140,41,0,39,0,60,0,60,0,60,0,62,50,38,0,39,0,40,0,209,145,41,0,39,0,60,0,60,0,60,0,46,50,38,0,48,0,185,112,60,0,60,0,60,0,88,51,38,0,49,0,48,0,229,101,60,0,60,0,60,0,233,51,38,0,49,0,48,0,8,103,60,0,60,0,60,0,201,50,38,0,49,0,48,0,185,112,60,0,60,0,60,0,98,51,38,0,49,0,49,0,229,101,60,0,60,0,60,0,234,51,38,0,49,0,49,0,8,103,60,0,60,0,60,0,202,50,38,0,49,0,49,0,185,112,60,0,60,0,60,0,99,51,38,0,49,0,50,0,229,101,60,0,60,0,60,0,235,51,38,0,49,0,50,0,8,103,60,0,60,0,60,0,203,50,38,0,49,0,50,0,185,112,60,0,60,0,60,0,100,51,38,0,49,0,51,0,229,101,60,0,60,0,60,0,236,51,38,0,49,0,51,0,185,112,60,0,60,0,60,0,101,51,38,0,49,0,52,0,229,101,60,0,60,0,60,0,237,51,38,0,49,0,52,0,185,112,60,0,60,0,60,0,102,51,38,0,49,0,53,0,229,101,60,0,60,0,60,0,238,51,38,0,49,0,53,0,185,112,60,0,60,0,60,0,103,51,38,0,49,0,54,0,229,101,60,0,60,0,60,0,239,51,38,0,49,0,54,0,185,112,60,0,60,0,60,0,104,51,38,0,49,0,55,0,229,101,60,0,60,0,60,0,240,51,38,0,49,0,55,0,185,112,60,0,60,0,60,0,105,51,38,0,49,0,56,0,229,101,60,0,60,0,60,0,241,51,38,0,49,0,56,0,185,112,60,0,60,0,60,0,106,51,38,0,49,0,57,0,229,101,60,0,60,0,60,0,242,51,38,0,49,0,57,0,185,112,60,0,60,0,60,0,107,51,38,0,49,0,229,101,60,0,60,0,60,0,224,51,38,0,49,0,8,103,60,0,60,0,60,0,192,50,38,0,49,0,185,112,60,0,60,0,60,0,89,51,38,0,50,0,48,0,229,101,60,0,60,0,60,0,243,51,38,0,50,0,48,0,185,112,60,0,60,0,60,0,108,51,38,0,50,0,49,0,229,101,60,0,60,0,60,0,244,51,38,0,50,0,49,0,185,112,60,0,60,0,60,0,109,51,38,0,50,0,50,0,229,101,60,0,60,0,60,0,245,51,38,0,50,0,50,0,185,112,60,0,60,0,60,0,110,51,38,0,50,0,51,0,229,101,60,0,60,0,60,0,246,51,38,0,50,0,51,0,185,112,60,0,60,0,60,0,111,51,38,0,50,0,52,0,229,101,60,0,60,0,60,0,247,51,38,0,50,0,52,0,185,112,60,0,60,0,60,0,112,51,38,0,50,0,53,0,229,101,60,0,60,0,60,0,248,51,38,0,50,0,54,0,229,101,60,0,60,0,60,0,249,51,38,0,50,0,55,0,229,101,60,0,60,0,60,0,250,51,38,0,50,0,56,0,229,101,60,0,60,0,60,0,251,51,38,0,50,0,57,0,229,101,60,0,60,0,60,0,252,51,38,0,50,0,229,101,60,0,60,0,60,0,225,51,38,0,50,0,8,103,60,0,60,0,60,0,193,50,38,0,50,0,185,112,60,0,60,0,60,0,90,51,38,0,51,0,48,0,229,101,60,0,60,0,60,0,253,51,38,0,51,0,49,0,229,101,60,0,60,0,60,0,254,51,38,0,51,0,229,101,60,0,60,0,60,0,226,51,38,0,51,0,8,103,60,0,60,0,60,0,194,50,38,0,51,0,185,112,60,0,60,0,60,0,91,51,38,0,52,0,229,101,60,0,60,0,60,0,227,51,38,0,52,0,8,103,60,0,60,0,60,0,195,50,38,0,52,0,185,112,60,0,60,0,60,0,92,51,38,0,53,0,229,101,60,0,60,0,60,0,228,51,38,0,53,0,8,103,60,0,60,0,60,0,196,50,38,0,53,0,185,112,60,0,60,0,60,0,93,51,38,0,54,0,229,101,60,0,60,0,60,0,229,51,38,0,54,0,8,103,60,0,60,0,60,0,197,50,38,0,54,0,185,112,60,0,60,0,60,0,94,51,38,0,55,0,229,101,60,0,60,0,60,0,230,51,38,0,55,0,8,103,60,0,60,0,60,0,198,50,38,0,55,0,185,112,60,0,60,0,60,0,95,51,38,0,56,0,229,101,60,0,60,0,60,0,231,51,38,0,56,0,8,103,60,0,60,0,60,0,199,50,38,0,56,0,185,112,60,0,60,0,60,0,96,51,38,0,57,0,229,101,60,0,60,0,60,0,232,51,38,0,57,0,8,103,60,0,60,0,60,0,200,50,38,0,57,0,185,112,60,0,60,0,60,0,97,51,38,0,39,0,20,48,9,78,21,48,39,0,60,0,60,0,60,0,60,216,65,222,38,0,39,0,20,48,140,78,21,48,39,0,60,0,60,0,60,0,60,216,66,222,38,0,39,0,20,48,221,82,21,48,39,0,60,0,60,0,60,0,60,216,71,222,38,0,39,0,20,48,137,91,21,48,39,0,60,0,60,0,60,0,60,216,67,222,38,0,39,0,20,48,83,98,21,48,39,0,60,0,60,0,60,0,60,216,69,222,38,0,39,0,20,48,87,101,21,48,39,0,60,0,60,0,60,0,60,216,72,222,38,0,39,0,20,48,44,103,21,48,39,0,60,0,60,0,60,0,60,216,64,222,38,0,39,0,20,48,185,112,21,48,39,0,60,0,60,0,60,0,60,216,68,222,38,0,39,0,20,48,215,118,21,48,39,0,60,0,60,0,60,0,60,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,38,0,0,78,60,0,60,0,60,0,146,49,38,0,0,78,60,0,60,0,60,0,128,50,38,0,0,78,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,148,49,38,0,9,78,60,0,60,0,60,0,130,50,38,0,9,78,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,150,49,38,0,10,78,60,0,60,0,60,0,164,50,38,0,11,78,60,0,60,0,60,0,152,49,38,0,11,78,60,0,60,0,60,0,166,50,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,45,78,60,0,60,0,60,0,151,49,38,0,45,78,60,0,60,0,60,0,165,50,38,0,45,78,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,38,0,89,78,60,0,60,0,60,0,154,49,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,38,0,140,78,60,0,60,0,60,0,147,49,38,0,140,78,60,0,60,0,60,0,129,50,38,0,140,78,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,38,0,186,78,60,0,60,0,60,0,159,49,38,0,228,78,140,84,60,0,60,0,60,0,255,50,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,38,0,107,81,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,38,0,65,83,60,0,60,0,60,0,56,48,38,0,65,83,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,38,0,105,83,60,0,60,0,60,0,25,47,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,38,0,243,83,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,149,49,38,0,219,86,60,0,60,0,60,0,131,50,38,0,31,87,60,0,60,0,60,0,31,47,38,0,31,87,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,38,0,39,89,99,107,60,0,60,0,60,0,125,51,38,0,41,89,60,0,60,0,60,0,157,49,38,0,41,89,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,38,0,115,89,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,38,0,34,92,60,0,60,0,60,0,42,47,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,38,0,230,93,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,16,98,60,0,60,0,60,0,123,51,38,0,122,94,60,0,60,0,60,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,38,0,75,98,60,0,60,0,60,0,60,216,16,222,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,135,101,60,0,60,0,60,0,66,47,38,0,135,101,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,229,101,60,0,60,0,60,0,71,47,38,0,229,101,60,0,60,0,60,0,144,50,38,0,14,102,187,108,60,0,60,0,60,0,126,51,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,140,84,60,0,60,0,60,0,124,51,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,38,0,8,103,60,0,60,0,60,0,138,50,38,0,8,103,60,0,60,0,60,0,60,216,55,222,38,0,9,103,60,0,60,0,60,0,146,50,38,0,9,103,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,38,0,40,103,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,38,0,42,104,15,95,26,79,62,121,60,0,60,0,60,0,127,51,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,38,0,52,108,60,0,60,0,60,0,140,50,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,38,0,107,112,60,0,60,0,60,0,139,50,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,38,0,31,117,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,138,127,60,0,60,0,60,0,122,47,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,38,0,137,128,60,0,60,0,60,0,129,47,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,77,134,60,0,60,0,60,0,140,47,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,126,137,60,0,60,0,60,0,145,47,38,0,139,137,60,0,60,0,60,0,146,47,38,0,210,137,60,0,60,0,60,0,147,47,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,38,0,112,141,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,38,0,73,145,60,0,60,0,60,0,163,47,38,0,77,145,60,0,60,0,60,0,60,216,59,222,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,38,0,209,145,60,0,60,0,60,0,142,50,38,0,119,149,60,0,60,0,60,0,167,47,38,0,128,149,60,0,60,0,60,0,168,47,38,0,28,150,60,0,60,0,60,0,169,47,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,38,0,81,151,60,0,60,0,60,0,173,47,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,168,152,60,0,60,0,60,0,181,47,38,0,219,152,60,0,60,0,60,0,182,47,38,0,223,152,60,0,60,0,60,0,183,47,38,0,150,153,60,0,60,0,60,0,184,47,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,168,154,60,0,60,0,60,0,187,47,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,38,0,90,155,60,0,60,0,60,0,194,47,38,0,229,156,60,0,60,0,60,0,195,47,38,0,117,158,60,0,60,0,60,0,196,47,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,38,0,82,159,60,0,60,0,60,0,210,47,38,0,141,159,60,0,60,0,60,0,211,47,38,0,156,159,60,0,60,0,60,0,212,47,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,38,0,107,134,60,0,205,145,134,94,47,0,134,94,38,0,30,95,60,0,136,108,51,150,47,0,51,150,38,0,186,146,60,0,207,133,135,101,47,0,135,101,0,0,239,223,208,112,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,112,0,114,0,105,0,109,0,97,0,114,0,121,0,32,0,105,0,103,0,110,0,111,0,114,0,97,0,98,0,108,0,101,0,93,0,60,0,60,0,201,2,60,0,60,0,202,2,60,0,60,0,199,2,60,0,60,0,203,2,60,0,60,0,217,2,60,0,60,0,234,2,60,0,60,0,235,2,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,39,0,208,253,39,0,5,49,60,0,42,0,107,81,200,78,244,93,237,83,82,98,51,103,144,115,63,89,156,92,173,130,199,92,237,103,164,117,245,84,252,93,76,99,6,123,145,124,147,127,134,134,219,145,223,145,109,59,93,140,131,156,62,76,60,0,42,0,208,83,174,114,156,98,122,87,173,89,212,98,166,112,121,118,200,128,7,131,221,131,89,138,203,141,247,142,176,152,162,88,67,155,37,159,60,0,42,0,138,98,175,148,0,146,118,151,60,0,42,0,93,87,29,95,56,114,187,87,98,127,25,128,193,141,133,156,140,156,119,127,172,67,138,155,135,137,242,119,56,151,233,88,94,112,27,107,60,0,42,0,39,84,38,125,94,155,60,0,42,0,118,118,23,94,232,98,226,108,119,118,187,115,93,82,101,82,241,84,203,118,53,120,181,148,125,153,52,125,61,127,154,136,176,136,224,131,134,120,98,146,224,80,147,93,165,100,173,100,17,153,129,155,115,142,75,154,77,156,60,0,42,0,226,78,47,79,187,114,145,128,115,154,27,94,219,114,221,116,188,79,195,82,201,128,233,130,179,78,44,99,97,109,223,116,225,121,227,144,185,148,194,148,141,58,191,61,64,62,14,63,22,129,54,130,175,136,90,83,36,110,185,136,65,158,61,97,15,100,60,115,103,132,56,146,81,146,142,153,240,80,13,59,127,113,84,114,148,123,138,129,74,130,111,75,155,153,193,153,20,133,35,142,205,146,72,149,79,70,101,216,208,220,158,153,238,153,112,140,96,216,109,223,151,86,234,97,103,58,39,59,25,124,79,137,155,147,58,153,83,157,166,114,33,121,198,154,201,154,2,107,52,121,110,137,110,148,60,0,42,0,219,141,165,123,56,124,60,0,42,0,121,91,151,106,234,124,82,139,23,134,60,0,42,0,138,46,92,83,117,85,33,132,60,0,42,0,0,99,176,99,216,100,60,0,42,0,125,118,60,0,42,0,126,118,112,79,207,103,34,104,109,99,248,116,168,124,84,125,70,100,250,100,108,137,60,0,42,0,141,94,221,98,37,141,220,98,87,101,8,115,23,122,253,134,186,124,37,53,1,141,219,151,60,0,42,0,225,122,173,133,60,0,42,0,81,83,111,103,66,150,195,118,110,104,178,96,249,99,17,105,145,120,134,121,78,158,3,147,227,133,111,157,60,0,42,0,23,83,51,57,115,146,60,0,42,0,29,141,91,91,200,114,157,140,7,89,1,102,108,114,182,144,204,128,221,130,161,148,251,79,13,80,221,54,150,96,253,114,229,144,93,80,121,80,242,58,150,104,252,115,171,136,153,80,235,96,25,113,50,116,240,142,136,143,1,145,195,80,2,97,215,62,154,120,34,62,149,114,211,132,150,138,129,151,25,137,41,143,199,146,179,154,138,97,210,124,180,151,62,148,60,0,42,0,87,84,4,85,153,121,60,0,42,0,249,82,5,83,98,91,185,103,222,128,222,130,35,123,114,113,133,159,18,137,84,133,193,149,67,137,89,159,60,0,42,0,135,122,209,90,249,150,15,66,132,133,90,216,138,220,250,63,60,0,42,0,157,91,9,96,113,153,221,79,40,158,178,91,228,115,33,88,34,88,172,90,218,91,70,132,253,152,194,153,245,156,229,125,19,137,7,157,242,140,75,75,243,91,246,91,99,216,38,220,76,151,16,77,99,216,59,220,60,0,42,0,253,82,165,98,177,98,121,140,181,141,199,148,171,134,140,136,49,88,226,131,75,146,141,156,100,151,180,102,178,154,241,154,99,134,145,155,36,81,211,102,6,114,193,95,100,148,20,158,60,0,42,0,104,79,245,133,60,0,42,0,115,98,61,101,237,115,44,130,129,152,145,101,44,100,146,101,18,152,34,118,251,156,50,66,140,135,41,137,77,118,172,143,60,0,42,0,66,87,133,92,42,150,4,102,127,103,72,114,234,116,163,148,132,124,40,130,17,146,66,135,108,155,198,149,60,0,42,0,158,82,74,83,52,79,110,98,98,87,197,89,17,96,204,98,202,126,200,103,218,121,116,110,70,125,97,146,125,151,166,143,227,116,60,0,42,0,129,135,60,0,42,0,84,89,205,108,50,141,31,104,135,114,27,149,27,147,60,0,42,0,44,103,239,130,89,89,90,117,201,127,77,105,60,0,42,0,75,87,76,87,52,80,121,99,115,104,0,110,40,123,90,216,192,223,41,144,170,100,86,115,61,143,60,0,42,0,166,144,185,87,46,94,96,99,92,109,134,104,171,144,71,94,90,94,13,126,107,94,164,151,60,0,42,0,209,126,129,125,156,105,83,114,128,129,200,154,60,0,42,0,75,59,164,115,140,134,141,80,210,104,211,104,36,140,93,88,18,100,22,122,161,132,47,135,197,120,81,149,85,130,23,139,138,147,60,0,42,0,59,79,74,121,95,89,41,93,99,125,141,149,176,80,109,93,237,117,35,86,179,125,60,0,42,0,45,117,60,0,42,0,196,87,242,87,247,126,35,116,43,116,246,131,67,126,155,151,60,0,42,0,245,108,248,143,44,144,116,88,90,149,15,117,101,216,244,221,112,75,102,142,240,147,47,136,60,0,42,0,252,99,60,0,42,0,68,92,106,80,244,107,69,105,60,144,77,140,149,135,190,156,158,147,86,157,15,156,60,0,42,0,120,131,59,159,60,0,42,0,21,83,212,107,50,56,54,89,60,103,74,79,33,84,163,89,152,108,149,117,124,95,192,103,213,121,254,79,20,123,131,124,45,130,90,85,143,58,70,123,132,123,91,128,25,145,143,140,60,0,42,0,1,94,197,95,213,107,237,149,86,79,41,54,82,87,135,94,208,139,32,54,188,89,45,96,54,96,217,57,136,103,64,117,178,144,212,84,242,103,214,107,204,115,170,117,254,130,217,107,244,114,19,123,138,124,92,131,203,148,91,150,98,90,179,94,93,101,144,104,98,117,144,136,135,149,137,149,27,88,59,95,60,95,10,97,14,97,98,110,149,118,90,123,6,132,86,138,177,140,193,140,81,141,215,110,79,113,249,117,250,117,100,119,119,129,12,135,248,141,77,146,159,149,246,152,246,85,99,94,10,95,67,95,237,110,167,120,133,123,134,123,188,125,214,132,232,136,157,153,119,111,154,113,88,115,89,115,235,62,253,132,61,133,11,72,42,145,220,153,242,154,193,88,22,91,230,94,101,61,230,123,124,127,241,137,133,155,131,101,222,111,243,123,42,126,194,129,156,133,127,144,70,153,112,89,167,116,85,142,40,145,192,154,116,126,94,137,206,147,87,69,99,137,131,142,132,142,184,151,224,151,20,141,52,148,70,154,83,155,221,157,233,157,10,159,60,0,42,0,2,83,30,132,100,94,54,91,69,137,60,0,42,0,139,97,222,135,214,156,73,156,8,159,76,134,158,159,60,0,42,0,37,82,43,82,135,84,223,67,130,131,194,134,182,95,82,137,105,142,60,0,42,0,42,118,95,118,220,63,60,0,42,0,70,95,24,67,60,0,42,0,108,112,83,103,7,104,209,152,137,154,223,154,242,109,106,95,11,115,63,129,169,152,130,88,86,94,125,100,238,110,174,152,160,154,25,106,155,113,152,129,8,133,45,118,230,120,86,149,217,152,218,152,38,81,183,152,12,112,36,139,2,114,213,129,232,133,6,141,226,147,110,122,115,149,198,152,199,152,200,152,67,154,99,148,189,75,107,154,60,0,42,0,104,136,74,90,241,136,216,138,54,147,166,106,62,137,60,0,42,0,245,79,212,156,62,156,60,0,42,0,202,152,60,0,42,0,185,143,186,143,45,120,62,123,217,99,53,115,22,127,120,113,81,114,2,117,175,123,232,125,89,135,137,144,125,147,202,156,173,151,138,144,254,155,255,155,105,124,60,0,42,0,44,141,65,98,134,122,62,83,252,96,182,140,57,132,165,120,40,122,196,124,10,137,24,157,202,133,60,0,42,0,94,83,1,95,37,83,237,95,131,98,115,108,116,108,198,145,216,83,163,115,196,130,191,79,9,89,42,102,83,59,141,137,167,95,15,127,77,144,158,149,161,143,246,125,81,130,167,143,168,143,169,143,171,143,174,143,175,143,138,139,60,0,42,0,197,92,158,112,60,0,42,0,67,108,160,144,162,115,15,120,190,91,108,95,185,104,167,80,140,101,21,105,232,110,222,62,36,127,223,105,120,116,105,140,211,140,212,140,84,149,16,81,210,111,241,111,104,134,115,140,179,106,184,116,21,112,38,151,125,126,76,148,110,152,60,0,42,0,72,100,161,107,145,129,233,154,239,100,2,155,175,107,207,129,204,154,19,155,213,154,34,155,60,0,42,0,30,108,245,111,60,0,42,0,171,81,204,78,210,78,55,108,176,81,117,81,164,99,60,0,42,0,25,78,50,96,166,98,201,121,180,144,67,150,30,102,58,102,196,103,179,112,234,130,124,153,42,119,137,122,0,58,195,134,82,100,128,121,31,122,53,146,124,146,5,153,32,153,158,151,60,0,42,0,118,94,200,52,38,78,117,79,119,94,176,94,2,80,36,104,197,117,221,122,75,80,161,80,206,91,197,104,129,138,169,155,80,151,60,0,42,0,170,87,134,151,242,146,60,0,42,0,236,92,175,94,97,102,11,144,61,146,167,138,60,0,42,0,234,156,80,143,173,145,60,0,42,0,95,83,82,216,240,220,101,136,250,84,85,99,184,85,220,136,79,157,60,0,42,0,13,78,3,94,72,79,37,84,101,107,152,84,53,54,22,96,170,98,104,107,105,107,205,60,232,103,154,148,207,82,212,87,215,87,145,96,87,99,184,148,224,87,121,131,232,144,255,116,4,142,0,133,246,144,20,153,34,153,240,123,63,124,60,0,39,0,208,253,39,0,6,49,60,0,42,0,145,89,85,216,25,220,80,216,181,221,133,118,180,141,37,130,106,85,105,132,60,0,42,0,119,103,44,114,177,99,54,116,98,123,86,111,60,0,42,0,10,94,21,94,21,96,153,136,60,0,42,0,139,148,97,87,165,92,202,108,252,108,135,152,140,110,85,146,23,152,81,111,250,147,60,0,42,0,70,90,25,86,34,133,49,145,164,118,8,139,199,106,60,0,42,0,245,83,0,92,183,148,56,123,202,153,60,0,42,0,182,92,135,112,64,101,34,102,38,109,192,115,235,143,222,112,52,120,54,120,217,145,149,124,170,132,68,155,151,145,150,74,60,0,42,0,114,104,60,0,42,0,205,98,60,0,42,0,243,79,152,95,146,99,5,115,209,104,76,114,43,143,48,124,50,124,164,114,60,0,42,0,249,94,60,0,42,0,204,84,62,109,91,59,67,110,142,132,131,147,60,0,42,0,120,84,176,54,12,96,167,128,248,103,218,128,67,136,133,145,60,0,42,0,43,150,249,87,106,150,240,107,84,141,43,149,244,136,245,136,224,140,205,153,60,0,42,0,214,79,60,0,42,0,2,79,155,108,105,79,20,94,245,89,190,101,198,101,127,109,238,115,77,145,41,123,131,66,148,143,183,153,143,93,8,151,97,143,60,0,42,0,220,132,60,0,42,0,155,98,203,98,44,129,60,0,42,0,40,82,134,84,137,87,150,94,205,114,176,112,46,114,15,83,141,136,243,142,132,151,131,158,133,158,60,0,42,0,209,141,60,0,42,0,69,89,225,108,174,112,177,117,176,118,50,120,173,158,31,121,46,121,60,0,42,0,34,132,28,137,60,0,42,0,86,82,29,90,60,0,42,0,148,98,153,98,74,99,138,99,210,136,129,123,7,147,60,0,42,0,133,84,227,84,68,90,131,114,205,94,60,0,42,0,52,52,5,119,25,120,104,117,88,111,0,101,60,0,42,0,63,114,0,109,216,118,216,141,187,90,75,94,43,100,195,105,176,132,228,118,208,120,15,126,251,120,82,142,76,216,102,220,10,112,224,135,99,142,156,147,182,151,60,0,42,0,184,81,36,82,156,108,218,98,238,108,141,112,219,83,73,114,252,118,84,117,65,128,162,136,74,138,191,110,22,152,236,146,123,137,123,148,60,0,42,0,101,157,60,0,42,0,183,85,116,86,85,107,60,0,42,0,235,116,198,118,83,110,80,132,60,0,42,0,96,84,248,127,60,0,42,0,175,85,60,0,42,0,83,78,151,108,238,128,241,150,194,110,150,129,38,74,54,151,60,0,42,0,144,83,158,94,150,83,193,101,4,144,61,130,206,90,172,95,82,216,237,221,131,135,209,156,142,159,144,159,60,0,42,0,217,85,42,128,171,137,60,0,42,0,144,112,168,128,214,128,60,0,42,0,9,83,193,54,38,96,168,98,114,96,248,57,48,120,136,104,249,112,81,120,239,142,155,149,48,111,45,86,142,111,222,120,60,0,42,0,131,130,11,103,252,122,23,80,55,99,11,88,56,95,145,131,109,95,218,104,22,105,124,120,29,122,79,158,115,88,137,97,240,105,37,106,162,113,236,132,96,216,131,220,35,143,227,123,168,129,11,147,248,151,247,123,252,154,218,135,219,135,5,155,54,77,252,151,108,157,47,154,132,126,20,155,93,148,60,0,42,0,103,99,206,109,143,118,123,82,60,0,42,0,189,99,42,105,176,120,43,142,60,0,42,0,21,78,19,79,62,79,121,98,176,126,111,87,171,98,183,98,139,112,201,114,179,144,18,120,65,216,49,223,130,96,219,121,224,121,21,125,205,148,199,101,205,127,26,128,126,140,8,146,26,146,57,146,95,146,148,146,136,82,199,120,211,153,236,154,124,86,13,147,126,155,141,155,181,97,20,121,21,121,57,151,60,0,42,0,174,118,223,52,48,150,175,92,135,103,222,107,211,114,182,128,152,130,215,107,216,107,178,117,141,134,100,85,228,87,37,93,90,216,45,222,189,134,190,134,124,140,96,216,26,222,235,144,116,150,55,113,53,116,62,129,87,129,143,156,116,127,141,129,49,135,110,155,192,88,250,123,183,135,148,140,103,157,134,127,7,103,25,159,60,0,42,0,57,83,128,94,139,117,243,78,46,87,201,130,52,129,222,117,162,146,192,138,4,157,215,100,125,86,86,118,38,76,173,86,60,0,42,0,65,92,224,109,18,110,202,99,253,145,178,90,211,90,101,119,159,143,78,111,43,122,251,80,188,111,138,86,19,117,68,68,136,117,108,139,226,149,255,157,10,158,60,0,42,0,140,105,60,0,42,0,21,108,135,100,75,216,194,220,134,100,188,102,165,119,60,0,42,0,63,78,228,130,5,148,60,0,42,0,243,90,60,0,42,0,125,82,83,97,37,127,216,152,218,101,242,127,181,135,165,114,195,152,196,152,82,155,60,0,42,0,214,90,226,116,194,122,184,133,221,149,60,0,42,0,141,107,111,95,159,119,251,123,57,126,165,145,171,118,96,152,60,0,42,0,104,121,196,80,225,82,12,86,177,95,2,111,19,59,60,0,42,0,232,86,79,80,165,90,143,114,199,123,233,127,66,147,163,157,60,0,42,0,136,154,252,128,65,129,68,105,105,105,198,140,240,141,218,138,65,142,226,153,191,154,8,154,60,0,42,0,145,137,29,140,181,140,222,138,60,0,42,0,71,114,151,154,23,154,25,154,60,0,42,0,120,155,60,0,42,0,216,89,252,98,102,56,23,121,102,122,170,153,94,154,60,0,42,0,173,115,43,141,38,90,167,140,21,116,212,90,145,152,59,152,42,91,113,115,178,133,172,86,201,119,25,136,166,152,112,152,60,0,42,0,193,84,128,105,60,0,42,0,93,114,86,108,88,128,60,0,42,0,82,78,57,117,220,79,9,90,132,109,47,120,96,128,117,130,238,122,41,152,102,216,77,222,60,0,42,0,115,94,196,139,237,81,111,84,106,87,217,108,79,92,33,94,176,103,52,109,182,115,211,128,249,130,241,144,184,62,194,62,83,131,91,92,50,94,220,109,246,116,178,134,72,94,41,113,62,127,13,132,226,134,85,138,1,117,241,132,255,142,134,156,244,81,2,66,127,97,179,123,39,143,145,97,131,155,152,106,8,124,11,134,60,0,42,0,188,92,64,88,60,0,42,0,198,78,52,101,53,101,81,98,96,150,87,86,178,100,125,111,200,100,198,155,60,0,42,0,170,62,13,83,47,129,134,131,208,131,233,131,97,132,213,80,177,132,178,132,122,145,163,88,91,115,158,116,238,111,168,119,89,122,59,66,100,149,86,216,200,220,128,126,101,137,247,147,60,0,42,0,36,87,52,103,3,87,102,109,243,112,110,102,165,110,49,140,233,138,56,106,6,108,143,106,104,149,92,139,124,142,32,148,60,0,42,0,250,148,22,130,23,130,234,146,37,59,17,112,221,102,60,0,42,0,236,93,237,93,12,141,60,0,39,0,208,253,39,0,7,49,60,0,42,0,99,84,60,0,42,0,136,89,86,91,189,90,36,91,55,91,60,0,42,0,187,158,242,117,152,114,52,133,198,135,199,135,60,0,42,0,108,154,55,52,155,115,1,120,130,134,172,153,164,110,106,116,188,120,158,135,183,147,34,156,204,157,60,0,42,0,184,114,105,103,67,121,129,149,130,154,27,85,140,80,65,115,28,86,56,58,170,105,112,119,161,121,117,127,43,55,225,153,35,121,21,155,60,0,42,0,135,78,23,84,206,85,27,86,242,90,100,144,60,0,42,0,120,100,60,0,42,0,133,94,31,140,141,153,235,90,189,158,105,100,121,100,33,106,156,129,69,106,232,120,226,124,164,86,245,100,40,139,169,86,176,86,67,153,17,134,152,82,205,154,84,155,250,64,93,153,60,0,42,0,185,98,225,97,75,74,60,0,42,0,43,103,176,82,61,87,186,89,19,94,126,107,127,107,129,107,171,108,82,216,251,220,30,94,41,102,186,103,9,131,76,150,28,85,140,118,28,119,63,119,30,120,227,121,61,119,150,124,72,125,136,131,171,131,80,110,232,134,131,140,138,140,252,85,123,88,222,91,32,111,79,115,230,132,134,146,122,151,252,90,175,102,115,60,217,158,144,119,70,149,105,155,168,88,60,118,153,119,216,158,14,112,212,135,41,139,152,140,5,114,230,133,204,147,51,121,134,126,64,154,49,128,60,0,42,0,61,96,27,92,121,155,191,158,60,0,42,0,72,78,188,158,146,86,156,86,249,111,102,118,60,0,42,0,203,87,37,55,182,133,62,151,60,0,42,0,112,78,108,131,183,140,42,86,82,133,246,157,60,0,42,0,162,82,69,79,242,88,200,143,166,158,86,83,9,129,8,129,165,158,71,136,241,82,227,140,129,144,33,151,34,151,104,216,51,221,60,0,42,0,69,84,70,87,146,108,161,108,154,103,171,115,2,104,9,119,250,130,18,90,4,129,133,104,251,115,34,129,147,131,51,88,146,90,75,93,68,110,72,110,56,115,66,119,255,144,99,105,115,105,100,113,66,116,127,132,122,88,209,105,150,121,118,145,69,149,91,158,194,146,9,151,72,122,190,95,135,147,192,119,23,101,165,157,42,134,244,158,60,0,42,0,206,107,207,107,194,81,142,127,52,99,124,109,132,90,68,93,60,110,186,90,92,129,65,149,13,91,216,113,130,147,227,158,60,0,42,0,185,89,186,98,172,108,192,101,39,102,81,59,27,119,89,121,130,136,154,90,208,91,215,117,202,141,93,113,61,155,120,119,206,151,195,123,94,135,69,155,60,0,42,0,190,142,60,0,42,0,43,115,147,140,60,0,42,0,219,107,219,119,134,103,102,114,5,131,6,131,196,101,94,127,94,81,222,142,85,145,37,88,53,110,98,216,104,221,26,149,230,154,249,90,2,108,155,114,101,135,243,154,202,135,40,147,156,157,60,0,42,0,135,81,111,83,24,89,110,78,60,98,185,54,193,92,214,108,52,102,198,148,55,123,233,132,60,0,42,0,131,81,131,118,144,81,188,130,146,81,213,103,10,119,2,131,56,141,4,128,164,136,146,137,162,90,61,94,191,140,23,97,147,102,89,105,247,107,65,116,58,132,128,119,140,140,26,145,80,135,46,145,203,97,60,0,42,0,222,84,60,0,42,0,95,114,148,79,186,82,76,59,72,96,32,109,56,119,11,140,209,134,42,127,14,142,126,146,0,139,180,119,70,126,106,147,62,157,176,158,60,0,42,0,208,103,91,216,209,220,60,0,42,0,218,90,159,152,60,0,42,0,207,89,151,96,188,52,238,134,200,80,41,140,114,97,146,153,32,106,146,119,158,119,148,151,87,216,145,220,62,139,69,153,215,156,98,152,23,155,24,155,59,156,59,136,60,0,42,0,88,92,128,110,76,119,225,110,255,110,168,135,206,135,84,137,203,147,213,119,60,0,42,0,252,102,5,59,129,88,84,94,98,97,113,100,43,111,76,115,38,127,36,145,254,105,179,113,4,133,19,133,98,56,183,111,88,149,53,126,221,147,100,216,77,221,85,69,80,216,78,221,60,0,42,0,48,134,60,0,42,0,232,149,106,98,167,115,148,148,128,149,133,149,107,99,219,131,138,116,70,147,185,78,75,134,60,0,42,0,247,149,22,113,182,96,170,102,220,113,209,97,227,97,60,0,42,0,236,78,17,80,26,105,60,0,42,0,100,114,60,0,42,0,2,84,217,95,82,108,153,144,40,92,87,103,103,103,146,130,19,108,242,118,0,123,228,84,15,90,172,94,54,57,126,96,93,109,245,114,43,131,123,114,202,62,239,145,211,148,221,117,109,120,214,134,13,66,77,216,119,222,233,146,249,153,103,216,246,221,60,0,42,0,189,131,101,120,59,131,190,131,254,88,45,111,18,59,210,135,14,136,60,0,42,0,63,117,123,134,161,81,148,131,12,132,32,132,4,64,223,118,153,132,113,135,26,81,87,106,13,117,162,119,68,133,51,145,106,94,222,97,218,102,219,111,56,145,38,103,172,106,11,108,67,68,69,68,205,155,199,119,30,121,114,158,104,130,9,134,210,119,63,151,64,151,91,153,109,152,6,159,15,158,60,0,42,0,208,82,27,115,254,116,69,64,48,149,75,130,34,135,51,147,220,97,116,115,245,97,237,155,19,136,60,0,42,0,95,91,67,216,124,221,166,104,149,110,34,89,35,89,221,68,37,151,52,55,60,0,42,0,185,99,221,100,60,0,42,0,170,84,47,119,135,119,60,0,42,0,158,81,37,95,89,127,98,121,247,143,21,115,28,140,120,138,190,132,76,95,223,100,220,124,59,126,14,139,154,145,138,158,139,158,176,121,97,151,55,55,48,112,124,115,155,158,2,98,32,101,213,116,126,149,34,114,119,69,60,134,190,145,191,145,13,158,196,145,60,0,42,0,115,124,136,130,142,79,181,108,139,127,45,95,35,109,73,101,43,119,18,129,51,110,94,132,164,146,29,133,212,111,74,91,86,112,60,0,42,0,150,81,248,124,104,108,149,108,147,91,204,108,197,137,218,92,187,91,85,121,216,121,198,91,231,109,255,109,147,137,148,137,66,94,39,140,83,88,78,94,32,58,155,137,39,86,147,105,245,110,30,111,144,113,28,135,18,106,36,133,15,159,170,81,102,94,215,111,16,139,193,106,26,124,204,133,131,127,60,0,42,0,92,78,0,84,169,84,246,84,109,91,60,0,42,0,109,112,213,112,149,137,35,100,197,110,17,133,19,157,254,123,142,133,109,94,241,97,215,106,27,136,74,136,86,148,116,156,60,0,42,0,181,85,60,0,42,0,215,130,100,52,140,90,207,99,75,158,132,119,226,125,147,157,89,156,60,0,42,0,106,103,7,119,210,121,252,109,58,110,8,127,206,123,242,125,208,133,136,144,60,0,42,0,153,89,153,94,133,115,215,122,191,94,223,94,60,0,42,0,44,140,44,139,60,0,42,0,128,91,135,130,32,119,66,90,245,126,148,90,201,104,191,125,220,125,241,129,82,135,53,91,176,106,203,106,200,119,202,119,207,119,60,0,42,0,15,78,69,108,77,81,148,108,254,158,201,82,4,119,41,90,67,55,109,80,149,81,212,82,17,110,149,85,16,97,78,110,5,127,123,125,124,129,66,132,253,158,240,62,236,125,171,158,160,111,184,155,60,0,42,0,99,151,98,151,198,124,170,158,186,158,181,158,60,0,42,0,17,108,196,89,183,92,222,95,11,96,251,101,252,101,201,115,255,118,7,120,224,130,96,127,15,93,106,99,24,116,23,127,111,101,73,116,251,117,136,120,49,146,205,125,184,74,225,125,9,147,22,157,114,147,60,0,42,0,191,118,186,81,33,82,245,149,191,98,239,108,196,82,67,101,253,149,175,96,79,101,34,123,253,96,99,110,148,149,13,97,6,59,139,102,169,149,246,80,92,97,171,97,99,111,34,124,92,216,75,220,216,156,32,136,53,156,104,216,52,221,60,0,42,0,138,87,61,123,60,0,42,0,13,84,14,102,35,158,58,109,0,119,165,81,23,131,25,103,51,119,237,148,199,90,159,110,61,115,13,145,157,102,160,105,194,132,152,146,244,156,145,119,159,135,173,137,228,74,60,0,42,0,114,79,243,89,213,81,79,97,105,145,60,0,42,0,125,84,39,105,122,138,60,0,42,0,181,99,60,0,42,0,234,107,178,88,1,108,60,0,42,0,205,107,169,78,97,114,118,87,198,89,199,98,212,92,115,114,70,117,82,117,223,128,93,117,94,117,42,120,110,117,95,216,249,223,67,216,150,222,103,146,7,142,60,0,42,0,40,103,235,78,48,103,238,118,144,108,199,114,145,112,103,114,220,130,227,107,158,134,188,148,175,131,238,150,223,82,8,55,88,105,102,119,108,146,147,88,85,94,89,94,84,97,85,97,174,102,82,130,2,151,70,122,56,126,170,151,60,0,42,0,233,81,60,0,39,0,208,253,39,0,8,49,60,0,42,0,209,83,183,108,122,118,160,80,124,118,66,95,102,145,177,145,60,0,42,0,79,78,16,79,194,89,161,87,76,109,186,117,90,127,0,150,48,104,29,120,55,131,79,123,130,119,112,127,165,149,120,127,67,106,197,133,60,0,42,0,113,79,213,108,75,112,60,0,42,0,208,115,58,116,234,154,238,154,95,133,94,216,11,223,60,0,42,0,69,147,60,0,42,0,207,78,114,87,60,0,42,0,187,104,60,0,42,0,222,152,131,89,94,151,219,152,97,85,83,90,4,110,239,126,100,216,235,221,73,98,6,115,242,131,95,151,203,125,26,135,246,136,15,151,177,156,37,153,161,153,17,154,27,154,221,152,60,0,42,0,165,128,221,109,83,129,8,66,48,135,230,135,60,0,42,0,15,103,42,83,253,139,92,89,177,96,144,101,208,104,167,105,225,127,185,138,218,123,92,133,100,216,60,221,60,0,42,0,32,84,159,94,110,103,184,108,210,114,186,128,190,130,50,102,199,128,57,141,247,79,85,82,158,83,191,117,93,92,107,150,195,94,67,62,9,132,187,140,241,117,68,149,226,94,202,102,53,73,72,118,35,159,247,111,1,76,224,106,225,155,40,148,69,151,60,0,42,0,84,90,131,102,60,0,42,0,17,125,230,136,60,0,42,0,54,127,38,84,154,89,57,127,59,127,149,107,236,150,0,157,60,0,42,0,6,94,9,138,106,117,235,82,67,86,15,91,97,94,163,97,217,101,67,133,219,101,89,126,251,127,233,133,83,143,191,152,83,124,220,152,85,156,60,0,42,0,225,81,226,81,227,81,54,56,219,95,75,103,254,119,117,124,146,148,201,103,230,112,39,130,50,123,229,104,34,110,105,113,208,125,166,88,10,106,78,106,212,113,160,116,176,129,65,126,160,133,179,127,78,137,111,142,42,112,63,112,44,121,7,148,34,148,41,134,28,136,237,157,60,0,42,0,205,83,85,98,212,143,74,72,233,145,60,0,42,0,64,216,169,221,62,108,175,114,127,89,78,108,109,153,219,108,41,141,72,117,3,131,0,64,211,142,79,90,181,104,0,61,213,118,53,123,169,140,236,142,239,152,240,152,252,110,14,91,196,123,60,0,42,0,36,130,60,0,42,0,6,82,41,84,9,94,183,126,16,102,27,108,172,130,219,84,122,81,27,125,194,127,111,136,93,81,28,138,90,145,251,104,22,146,240,150,31,59,6,103,211,113,52,153,89,153,60,0,42,0,95,87,162,89,142,92,126,108,12,103,140,103,131,112,166,128,146,127,160,134,161,134,164,104,252,104,26,113,154,153,182,132,179,88,105,94,198,111,117,155,104,106,204,113,97,133,110,140,171,150,34,159,181,127,22,159,118,140,82,143,60,148,169,153,194,158,60,0,42,0,137,124,250,158,60,0,42,0,253,78,5,95,75,89,255,95,206,121,126,80,36,97,170,124,232,80,164,97,110,89,185,129,222,124,188,156,53,112,93,156,60,0,42,0,213,122,174,142,60,0,42,0,26,83,185,101,74,87,120,108,161,144,139,103,101,114,179,130,171,148,132,134,211,109,1,146,11,157,60,0,42,0,168,89,50,150,63,98,170,128,197,87,130,156,116,155,31,156,60,0,42,0,255,78,191,139,119,95,186,126,9,102,24,102,236,116,6,119,35,80,202,101,33,125,43,130,42,138,227,154,173,157,60,0,42,0,62,101,189,141,60,0,42,0,15,88,58,147,60,0,42,0,48,78,206,152,249,78,232,81,236,81,166,89,163,108,168,108,238,81,171,103,1,92,175,117,253,118,28,120,168,152,212,54,239,92,240,92,160,68,81,80,123,104,253,112,54,93,38,115,11,149,83,105,142,114,81,132,2,135,11,118,184,120,252,80,200,123,210,146,55,145,146,106,207,149,80,140,224,147,165,52,247,91,38,56,67,112,70,145,59,151,52,134,45,136,74,151,204,152,183,158,60,0,42,0,175,81,6,89,64,99,114,109,34,144,56,88,174,153,152,125,66,130,128,57,83,100,40,111,111,61,60,0,42,0,189,139,42,85,130,137,247,138,60,0,42,0,228,81,73,89,46,117,248,79,87,110,40,113,72,113,29,127,87,141,239,156,243,156,12,157,245,140,43,126,60,0,42,0,18,116,132,110,189,147,21,134,60,0,42,0,133,137,60,0,42,0,43,89,21,79,75,84,139,89,158,144,199,89,158,115,164,128,36,96,206,103,6,120,186,87,16,90,3,92,66,131,109,136,201,101,106,59,40,125,116,131,186,141,184,158,225,117,3,122,215,141,7,146,95,123,146,125,117,91,103,140,28,145,119,101,154,129,250,156,169,158,208,124,172,158,177,158,239,97,60,0,42,0,64,78,255,93,23,95,15,79,235,81,54,117,91,79,185,81,28,82,90,91,118,98,136,84,170,92,127,95,43,96,194,98,13,103,142,103,237,108,194,126,203,126,153,130,163,130,216,79,152,87,132,58,235,103,31,108,17,109,165,112,184,115,73,117,80,117,88,127,251,130,0,131,232,151,249,84,63,104,110,109,41,120,83,121,47,131,168,134,219,144,16,83,116,104,170,109,240,112,8,116,38,123,48,123,49,125,60,125,199,127,116,130,169,131,89,134,69,94,244,104,101,125,102,127,212,131,177,136,176,124,141,125,64,130,77,132,9,135,144,143,88,146,92,146,171,152,231,156,145,105,143,121,42,122,153,123,205,151,94,94,147,111,96,135,244,154,232,138,62,142,59,143,132,155,20,157,65,118,101,216,50,223,251,158,70,137,105,157,157,157,60,0,42,0,82,84,154,98,43,117,118,78,156,94,35,95,202,98,167,101,204,79,219,79,213,128,236,156,239,79,217,144,220,145,225,145,108,99,133,143,36,113,217,118,81,129,207,110,5,135,232,66,80,129,20,143,56,86,168,100,171,100,43,152,52,155,32,124,252,158,60,0,42,0,207,46,214,46,29,150,54,114,163,139,216,78,135,89,31,141,144,84,127,87,20,57,206,122,28,150,68,150,120,154,13,89,202,92,3,138,160,140,116,141,49,57,84,121,165,134,90,150,105,80,168,81,111,82,102,90,185,134,157,136,133,80,141,90,204,91,169,95,198,61,255,121,215,134,66,138,75,141,17,87,49,105,26,127,121,129,47,132,139,156,89,141,123,75,60,59,238,125,92,135,110,135,7,137,20,137,230,140,217,153,20,91,27,126,103,133,57,143,146,155,251,140,81,147,98,147,198,156,134,137,165,153,0,70,18,156,65,216,215,220,60,0,42,0,92,145,40,105,132,137,163,121,178,155,60,0,39,0,208,253,39,0,9,49,60,0,42,0,145,84,210,84,55,128,69,131,26,123,210,85,45,100,69,216,63,220,152,100,96,86,89,216,191,221,33,137,157,147,60,0,42,0,190,143,126,84,178,89,27,96,147,108,214,143,159,112,141,127,87,117,99,117,42,123,89,131,115,82,18,83,84,123,90,138,57,144,84,144,24,150,124,151,145,151,152,133,137,147,253,135,130,142,61,148,195,151,150,159,152,159,60,0,42,0,83,98,60,0,42,0,39,89,79,108,20,119,60,0,42,0,175,87,182,88,41,118,245,113,104,126,60,0,42,0,26,86,60,0,42,0,43,57,116,96,151,95,194,109,234,96,207,104,29,149,179,95,183,95,64,147,60,0,42,0,48,87,132,118,38,129,60,0,42,0,70,84,84,84,67,115,219,97,60,0,42,0,121,107,163,80,46,144,60,0,42,0,50,52,227,78,106,143,67,216,58,220,136,87,177,92,18,94,25,117,208,126,128,154,38,94,133,95,32,96,203,103,134,107,179,115,55,141,232,143,47,94,209,142,237,87,54,94,63,125,139,136,218,142,214,62,184,140,233,142,71,116,215,94,6,66,199,83,194,59,255,125,195,102,15,157,52,98,88,216,2,221,92,130,219,158,36,124,91,142,59,112,52,151,241,158,118,137,70,151,60,0,42,0,152,155,60,0,42,0,136,46,0,82,2,82,232,83,201,95,55,103,24,108,32,130,214,145,125,156,91,155,60,0,42,0,111,99,60,0,42,0,252,91,155,92,246,92,99,99,119,121,23,100,130,121,0,56,139,93,140,93,54,58,157,150,14,92,212,88,185,93,227,100,72,142,175,150,177,121,60,0,42,0,48,82,18,80,188,96,24,113,215,118,220,118,255,131,83,144,50,122,140,123,226,127,59,122,92,136,117,86,95,136,164,106,254,113,38,67,255,127,199,142,217,116,155,126,60,0,42,0,118,92,102,150,33,105,221,105,60,0,42,0,58,84,23,85,92,81,253,144,96,81,56,133,119,106,252,123,60,0,42,0,150,98,39,150,147,103,161,103,30,85,170,134,97,150,4,146,60,0,42,0,151,101,70,140,98,109,214,144,126,153,37,155,170,104,237,107,48,129,115,131,23,144,88,145,216,117,151,149,166,122,38,75,38,155,22,153,163,101,68,216,157,220,216,149,70,69,199,122,42,155,44,155,45,155,60,0,42,0,103,78,84,130,60,0,42,0,57,78,137,89,85,83,197,98,88,83,8,119,3,120,60,128,61,128,159,68,67,128,173,142,248,144,174,85,133,90,154,107,5,118,48,83,170,123,21,152,11,81,239,82,29,137,50,145,212,100,171,107,73,118,20,117,30,124,76,137,120,128,60,0,42,0,20,79,16,82,140,98,172,115,237,116,198,128,184,117,30,125,116,136,184,99,85,141,182,78,162,100,163,100,184,111,213,158,189,129,238,158,60,0,42,0,230,101,70,79,14,94,138,108,249,108,218,114,222,139,230,103,141,117,86,85,87,85,57,95,238,96,225,109,203,134,127,85,62,95,46,108,69,129,15,132,219,137,214,53,158,122,228,80,17,135,190,153,231,154,62,86,73,86,72,95,154,97,149,138,186,97,186,102,185,111,222,132,32,157,171,121,243,153,90,118,170,86,117,126,9,141,46,151,79,153,53,74,60,0,42,0,101,98,125,98,60,0,42,0,83,95,240,115,219,148,92,123,198,136,118,117,121,86,162,111,171,116,57,124,97,130,247,135,96,137,58,148,60,0,42,0,33,99,90,81,32,140,203,100,97,139,232,158,41,101,89,112,19,107,156,139,60,0,42,0,57,108,252,81,53,87,149,91,0,120,177,87,99,104,97,131,120,90,19,97,234,131,99,93,253,116,63,144,252,150,173,120,5,81,82,111,138,119,164,141,203,88,105,133,148,106,151,116,234,118,17,121,28,124,47,134,227,149,60,0,42,0,111,112,123,118,75,140,84,86,1,91,200,113,146,116,243,122,38,124,180,137,108,142,60,0,42,0,41,103,73,123,37,98,60,0,42,0,147,144,243,81,177,88,157,93,39,145,165,150,170,119,244,120,107,149,200,106,25,148,60,0,42,0,96,130,60,0,42,0,16,108,254,78,78,79,67,89,125,95,157,127,155,136,36,88,134,141,132,150,244,110,0,106,93,149,254,120,73,147,174,151,60,0,42,0,196,114,248,94,116,124,214,130,234,143,25,85,76,101,164,109,145,104,27,123,123,131,204,137,110,151,176,153,226,154,0,86,225,90,204,110,223,127,20,152,117,101,11,133,16,133,0,74,129,86,244,123,36,74,116,140,98,142,4,155,225,133,209,147,174,66,244,124,191,137,16,158,60,0,42,0,142,83,88,87,203,139,103,84,149,94,36,95,181,98,222,98,184,144,58,150,226,103,116,114,11,131,37,120,222,87,139,99,125,59,231,131,221,137,70,138,231,142,92,128,182,154,60,0,42,0,84,87,31,95,243,101,85,103,147,115,31,96,228,79,29,94,202,87,35,90,89,80,71,85,114,85,138,104,13,113,246,115,49,119,44,123,27,140,18,144,19,144,241,145,130,90,227,104,39,110,71,119,118,121,20,127,194,131,192,80,99,129,130,132,106,146,145,88,85,100,178,120,152,121,67,135,94,144,172,88,120,97,224,125,21,133,112,144,179,93,11,117,230,138,54,142,174,135,60,0,42,0,243,155,60,0,42,0,242,85,60,0,42,0,57,114,204,141,58,137,60,0,42,0,164,87,204,92,78,96,21,99,51,102,214,126,197,128,245,130,237,143,222,116,35,119,28,98,242,67,13,140,139,85,30,88,245,96,242,99,115,117,112,125,11,128,247,129,68,138,131,141,123,149,224,83,156,107,67,114,82,114,125,93,159,120,40,135,83,130,118,135,11,137,75,216,163,221,220,138,64,142,189,156,42,59,225,102,137,117,8,156,138,117,14,108,60,0,42,0,203,84,10,128,48,119,60,0,42,0,73,94,130,117,60,0,42,0,1,82,252,83,72,108,109,134,203,81,93,89,52,95,107,95,193,134,49,116,130,140,137,120,237,156,166,107,151,119,213,150,137,155,183,156,38,159,219,155,112,157,60,0,42,0,90,98,76,92,60,0,42,0,20,95,4,79,10,84,147,148,142,122,11,138,3,140,137,99,227,145,222,148,235,148,232,122,177,146,255,150,97,155,231,132,191,138,57,118,181,122,253,146,203,133,67,148,60,0,42,0,19,124,60,0,42,0,31,78,34,78,67,216,141,220,229,148,169,146,60,0,42,0,56,117,65,101,67,216,167,221,130,99,142,80,167,83,110,93,199,110,199,105,217,105,40,118,160,152,78,142,197,93,90,152,91,152,107,118,211,93,212,93,39,101,114,118,123,159,60,0,42,0,120,81,76,89,185,112,112,90,32,115,68,67,95,101,213,141,152,120,167,132,46,142,71,133,222,158,184,86,60,0,42,0,53,117,67,79,107,87,151,94,61,150,171,87,66,98,183,115,191,148,93,90,230,96,192,109,96,89,20,116,191,107,20,135,251,150,138,88,194,88,66,106,93,106,177,111,91,151,82,216,113,222,92,118,31,124,84,154,60,0,42,0,35,105,60,0,42,0,1,78,195,78,238,83,4,94,142,115,148,117,239,118,137,148,53,128,112,134,74,145,216,145,106,151,60,0,42,0,117,89,118,152,2,152,192,58,14,159,127,93,17,159,206,111,161,133,36,148,60,0,42,0,162,139,202,95,100,153,244,119,154,91,2,138,227,152,118,85,228,148,23,105,90,129,35,132,135,120,45,149,160,120,74,135,204,146,32,147,248,120,65,152,60,0,42,0,98,128,60,0,42,0,190,83,71,216,42,220,98,82,7,150,99,119,31,86,143,145,205,149,60,0,42,0,210,107,236,114,156,109,251,139,14,110,31,105,105,60,77,114,138,114,161,120,251,136,173,138,115,135,104,115,22,147,223,81,53,83,59,91,6,112,221,106,176,107,88,114,162,114,196,116,190,118,51,154,233,158,128,139,68,140,21,141,227,151,95,148,209,154,199,151,229,151,247,158,159,139,60,0,42,0,3,123,53,88,62,94,76,141,61,116,121,119,169,137,237,140,228,123,60,0,42,0,146,89,92,103,154,128,143,130,172,89,166,94,250,121,112,131,33,110,111,151,64,149,103,216,90,221,153,135,172,107,77,147,53,124,39,136,57,136,60,0,42,0,26,89,27,89,132,84,198,84,83,117,95,82,28,93,135,99,96,101,242,107,240,136,137,86,60,0,42,0,58,89,206,148,107,82,83,101,90,101,165,85,179,96,106,101,229,117,44,146,106,89,217,81,49,142,181,155,56,148,60,0,42,0,53,103,54,103,218,84,155,87,156,87,5,99,6,99,245,87,13,127,47,105,147,141,177,142,178,142,158,125,42,73,156,97,184,78,122,147,195,142,178,86,114,89,60,0,42,0,52,82,65,82,115,153,46,92,193,103,238,103,168,112,74,150,79,150,87,104,21,88,53,130,240,96,226,141,229,141,250,141,255,152,231,62,174,88,175,88,158,93,125,157,60,0,42,0,164,103,60,0,42,0,150,87,6,88,96,88,95,93,253,117,211,120,45,157,28,148,60,0,42,0,3,58,39,152,60,0,42,0,249,91,31,150,74,81,76,81,81,81,254,91,60,96,75,121,110,150,138,150,147,120,207,65,144,125,13,92,158,97,157,97,231,111,102,149,223,97,104,137,35,59,177,133,41,112,72,139,19,148,60,0,42,0,17,128,115,80,108,82,143,90,239,122,13,137,116,147,60,0,42,0,74,216,67,223,237,119,60,0,42,0,181,107,173,101,69,88,14,127,52,105,69,113,86,116,118,129,110,132,171,120,59,149,222,125,200,107,22,124,91,147,183,101,150,142,106,124,60,0,42,0,40,84,199,96,102,101,51,135,169,88,170,88,180,100,100,115,120,86,137,100,84,106,156,114,5,121,59,69,114,142,126,142,80,154,60,0,42,0,76,216,180,223,249,118,184,141,137,142,60,0,42,0,5,79,228,86,137,94,140,108,150,112,254,118,24,120,157,148,7,144,127,152,13,146,111,105,65,144,19,152,97,111,111,144,201,113,50,142,60,0,42,0,183,120,60,0,42,0,28,78,172,81,154,84,181,54,189,92,113,103,56,102,33,108,243,130,50,80,43,158,236,87,59,90,32,93,44,93,183,109,23,123,154,95,45,108,196,131,100,216,147,220,64,135,36,157,21,159,223,155,135,157,60,0,42,0,2,58,99,132,165,88,189,123,204,138,30,91,79,216,197,223,107,133,194,97,60,0,42,0,168,82,187,81,151,79,140,87,219,89,210,92,107,96,15,99,11,104,30,109,232,128,205,81,25,98,244,128,245,143,213,82,80,120,223,104,105,110,103,125,86,129,205,80,231,153,24,151,60,0,42,0,151,155,171,157,60,0,39,0,208,253,39,0,10,49,60,0,42,0,214,78,131,91,121,89,96,114,66,121,202,148,191,141,76,88,187,110,153,105,31,137,131,86,231,149,60,0,42,0,121,142,60,0,42,0,84,88,154,110,150,88,243,53,109,115,206,156,122,115,40,156,60,0,42,0,163,78,211,98,30,99,231,114,252,149,67,216,50,221,229,54,9,93,190,109,124,59,40,100,191,64,246,141,187,105,254,107,11,66,93,144,98,144,147,52,162,121,187,138,15,142,187,100,190,111,20,147,125,106,204,111,75,142,156,151,153,155,249,63,210,149,179,151,186,86,118,139,229,149,105,216,1,222,162,142,60,0,42,0,164,79,156,84,60,0,42,0,209,95,210,95,121,114,163,140,174,134,253,148,93,97,241,146,163,135,216,135,60,0,42,0,252,86,97,91,206,128,60,0,42,0,173,81,240,83,242,101,110,87,172,98,176,144,177,103,177,112,178,112,212,130,237,131,198,141,3,59,144,156,136,123,250,129,177,152,26,66,216,153,19,81,144,155,47,91,225,100,0,62,175,106,185,133,73,124,60,0,42,0,42,89,51,89,242,95,112,108,1,96,189,128,155,148,240,108,38,130,237,72,94,145,38,146,153,110,75,97,228,113,60,0,42,0,143,124,60,0,42,0,50,89,34,95,155,109,230,126,143,99,92,138,205,90,77,94,70,97,47,100,212,110,91,125,196,105,107,116,236,151,248,152,49,66,26,126,39,126,228,111,31,139,65,143,62,73,177,151,220,151,85,153,60,0,42,0,11,83,183,84,46,109,239,143,67,104,3,144,85,85,188,104,216,109,59,65,249,126,118,150,4,132,121,121,175,125,42,135,234,136,128,151,132,145,137,151,254,146,45,147,227,153,174,106,64,153,10,154,23,159,60,0,42,0,168,139,14,138,60,0,42,0,87,89,60,0,42,0,119,80,120,80,126,90,174,90,192,146,110,147,60,0,42,0,160,78,52,89,149,98,176,154,240,125,45,152,60,0,42,0,181,89,173,148,15,125,151,58,104,101,243,152,200,158,35,134,60,0,42,0,15,144,137,125,60,0,42,0,77,87,49,54,169,98,42,141,57,96,209,117,17,130,170,140,74,100,233,110,43,118,249,100,36,101,88,112,113,118,60,0,42,0,91,87,68,216,168,222,25,102,19,80,8,140,82,90,212,96,239,144,131,137,131,105,240,117,44,149,45,140,176,88,181,88,155,97,109,111,199,138,136,145,199,88,199,102,194,113,31,147,36,153,128,106,249,120,67,152,72,127,220,88,235,133,90,139,154,140,176,145,96,139,78,127,60,0,42,0,208,95,102,87,217,67,189,148,146,136,239,107,252,131,161,71,109,146,255,85,179,97,187,97,147,145,174,116,98,137,60,0,42,0,249,83,173,112,238,87,162,99,157,80,96,110,203,80,6,86,179,120,21,130,78,107,231,140,60,0,42,0,100,108,99,87,244,148,111,110,33,86,37,128,143,82,176,127,106,135,182,71,0,72,87,149,154,133,90,142,220,147,11,148,186,151,30,159,60,0,42,0,103,153,16,85,2,88,143,80,122,85,123,59,224,104,125,52,88,88,13,55,42,100,143,110,12,145,182,105,31,111,123,113,109,116,133,129,206,132,154,150,24,106,77,216,95,222,196,120,159,121,195,124,155,129,86,106,214,123,214,124,151,135,60,142,219,124,179,135,111,141,163,145,51,153,78,66,149,147,57,153,219,149,68,153,96,216,137,221,182,157,60,0,42,0,22,79,17,94,24,80,82,80,204,109,165,80,186,142,75,149,178,147,59,81,3,98,237,102,35,114,216,119,130,148,60,0,42,0,235,112,101,100,159,141,217,113,60,0,42,0,165,113,175,129,31,159,60,0,42,0,188,117,203,117,80,94,126,129,138,138,27,111,213,110,34,126,134,144,230,153,4,139,47,81,228,133,48,154,80,124,39,156,88,124,99,154,60,0,42,0,47,151,60,0,42,0,69,134,60,0,42,0,84,82,175,104,56,53,17,149,34,142,255,100,200,157,201,157,60,0,42,0,151,83,208,130,232,126,81,131,77,80,124,85,57,93,255,96,208,99,10,122,7,127,100,127,72,158,193,85,69,116,136,125,70,144,174,120,178,95,61,111,249,125,109,135,6,137,187,146,152,152,91,133,167,141,68,142,141,145,21,139,79,142,87,147,192,156,58,157,76,152,183,155,92,157,32,154,247,155,151,157,153,157,181,121,228,157,60,0,42,0,83,79,46,99,176,142,181,154,167,155,198,142,212,154,60,0,42,0,59,98,78,216,194,221,73,92,207,143,67,82,17,103,31,109,28,80,140,96,149,109,92,92,144,96,213,96,166,99,22,144,214,96,229,99,255,102,55,144,116,105,252,136,82,107,162,107,5,137,240,154,49,59,143,86,153,133,0,155,148,86,203,116,74,124,175,141,145,77,60,0,42,0,57,123,92,93,60,0,42,0,22,94,23,96,52,141,81,128,28,132,188,140,60,0,42,0,193,148,200,134,227,80,149,146,232,146,41,157,33,148,53,148,86,154,60,0,42,0,107,84,251,152,52,77,46,153,60,0,42,0,235,101,123,79,163,94,76,96,17,99,103,121,56,59,78,128,60,0,42,0,128,130,97,103,167,92,185,92,226,143,82,121,157,104,36,123,20,132,237,71,146,141,134,159,218,132,41,135,36,106,232,132,218,146,235,154,166,156,151,151,165,147,200,155,96,159,55,156,60,0,42,0,168,91,64,102,19,103,32,62,1,129,149,122,130,138,55,72,177,122,162,101,37,91,60,0,42,0,58,119,156,124,105,125,156,137,243,141,246,124,60,0,42,0,169,135,60,0,42,0,41,89,114,81,86,90,251,109,95,145,84,151,236,66,50,59,199,158,93,151,60,0,42,0,48,117,71,92,186,108,108,96,75,117,81,117,247,118,203,128,96,117,27,117,28,117,73,110,254,131,82,72,97,88,107,88,55,100,63,146,23,150,194,125,204,120,180,122,179,116,208,149,198,157,207,157,60,0,42,0,221,95,132,107,14,80,173,53,58,85,73,54,191,96,223,109,106,102,32,116,70,129,205,137,246,117,83,119,20,130,2,153,165,137,223,140,42,147,102,151,105,147,60,0,42,0,1,52,173,99,124,119,26,130,60,0,42,0,181,120,43,157,60,0,42,0,133,83,129,94,64,108,124,130,44,84,58,117,19,128,155,83,195,112,111,104,244,112,142,125,252,66,147,151,116,128,240,94,124,128,125,128,243,94,60,0,42,0,146,144,247,94,173,78,173,94,92,80,155,131,119,90,73,93,31,110,95,105,115,123,118,132,19,135,179,105,100,128,79,135,174,149,6,151,234,138,46,159,60,0,42,0,68,216,60,222,34,87,60,117,185,79,23,90,58,99,143,109,131,104,246,112,253,115,33,129,139,152,71,130,148,138,50,152,104,216,182,222,60,0,42,0,248,81,138,91,191,121,195,121,34,96,129,122,11,85,139,109,120,99,23,88,101,110,220,117,86,132,128,93,245,146,90,157,53,159,60,0,42,0,243,86,254,86,195,81,249,92,169,94,146,95,135,96,72,99,130,109,96,92,140,104,204,62,124,131,20,144,236,99,120,59,12,122,223,131,21,87,87,88,94,93,76,216,37,222,15,118,97,123,111,129,47,146,22,87,23,87,220,94,115,111,164,132,255,141,116,145,221,72,159,153,78,147,252,153,76,157,159,157,203,157,245,157,60,0,42,0,31,87,33,87,16,84,141,148,247,145,60,0,42,0,78,81,84,81,204,143,13,88,117,157,60,0,42,0,98,108,181,131,60,0,42,0,71,78,219,78,172,139,88,98,97,98,81,108,102,153,84,103,130,79,131,84,213,98,214,98,176,108,41,99,93,99,23,138,182,109,43,129,49,129,140,131,165,136,229,152,96,155,93,154,60,0,42,0,110,154,87,79,104,87,174,92,177,108,178,108,207,114,64,150,65,150,124,154,241,143,35,120,36,120,53,158,61,125,137,136,54,88,206,141,97,145,177,153,214,105,162,120,126,75,196,153,221,153,222,153,80,106,128,155,21,157,39,159,40,154,13,159,82,154,9,159,60,0,42,0,117,95,165,89,185,94,160,90,45,105,85,105,247,90,98,106,78,157,12,155,22,156,60,0,42,0,221,103,228,107,62,85,26,132,197,141,251,107,168,123,0,134,92,124,60,0,42,0,168,99,247,132,236,133,60,0,42,0,26,95,3,64,147,152,53,92,164,150,57,152,58,152,61,152,75,155,104,122,106,142,8,134,215,63,60,0,42,0,192,79,211,80,127,129,70,142,189,154,60,0,42,0,187,79,39,90,0,144,122,113,251,134,21,135,42,137,254,153,60,0,42,0,77,110,47,115,83,113,78,71,146,140,78,77,60,0,42,0,226,86,227,86,159,98,120,82,24,87,113,97,118,100,25,111,235,105,255,123,178,106,196,147,240,124,210,157,251,157,60,0,42,0,131,117,60,0,42,0,86,95,106,110,22,137,60,0,42,0,30,84,81,84,146,109,77,85,28,103,30,113,75,86,190,102,63,59,215,158,60,0,42,0,111,92,73,87,243,95,104,153,154,130,88,140,90,140,216,142,233,152,128,156,104,155,84,58,21,151,192,129,203,129,60,0,42,0,61,108,125,117,60,0,42,0,253,101,60,0,42,0,242,86,181,112,204,117,26,144,245,85,234,132,60,0,42,0,221,78,12,84,95,79,100,95,194,92,157,94,195,84,221,92,234,114,77,102,80,104,117,109,212,112,60,120,60,131,146,134,46,119,241,121,220,148,229,122,161,124,90,216,52,222,105,123,119,138,104,141,110,145,86,146,238,80,237,82,117,146,133,146,7,153,150,156,124,111,94,115,200,102,35,103,102,106,3,108,209,113,157,114,167,129,63,63,179,119,166,155,89,216,141,220,0,77,60,0,42,0,223,126,69,99,140,58,118,104,82,123,113,125,130,125,11,106,60,0,42,0,120,96,219,117,85,136,95,97,133,97,60,0,39,0,208,253,39,0,11,49,60,0,42,0,239,85,60,0,42,0,207,98,255,98,16,99,241,85,78,149,191,147,60,0,42,0,120,78,234,84,235,150,60,0,42,0,54,84,80,84,160,89,179,126,163,144,173,128,160,148,28,90,13,125,114,136,122,99,29,123,87,216,73,222,166,136,125,140,220,142,128,140,9,146,121,151,179,132,83,216,59,222,118,155,43,66,60,0,42,0,146,117,183,139,144,98,50,119,37,138,60,0,42,0,98,84,60,0,42,0,73,129,139,113,104,100,123,91,60,0,42,0,67,78,118,89,22,108,127,130,147,117,179,89,252,94,55,80,250,143,226,145,45,91,60,0,42,0,72,89,240,103,15,128,16,128,69,216,171,223,63,110,24,132,16,159,154,135,38,137,60,147,60,0,42,0,30,90,129,153,46,129,71,129,18,153,190,155,216,155,60,0,42,0,103,81,133,81,59,52,29,108,23,147,60,0,42,0,108,91,60,0,42,0,118,84,19,96,32,99,241,92,71,120,217,148,49,115,242,134,73,138,153,120,147,100,169,93,185,97,239,135,18,89,74,139,3,148,206,93,60,0,42,0,180,87,124,96,169,96,17,129,24,83,22,88,241,96,208,90,89,116,102,129,175,120,0,71,118,115,127,115,60,0,42,0,249,149,101,90,214,109,153,149,39,155,209,129,60,0,42,0,51,129,60,0,42,0,186,127,60,0,42,0,66,85,60,0,42,0,200,105,40,128,115,115,189,106,146,147,30,148,115,139,60,0,42,0,225,86,60,0,42,0,55,117,143,103,172,103,189,79,87,83,223,103,26,90,88,117,190,150,174,131,131,85,148,102,96,105,245,138,227,150,93,216,116,221,60,0,42,0,103,141,199,99,115,110,105,129,51,132,18,66,123,135,1,98,60,0,42,0,89,216,218,222,123,90,46,59,60,0,42,0,86,144,60,0,42,0,65,96,233,90,240,90,60,0,42,0,212,86,60,0,42,0,106,78,162,86,104,139,202,86,48,136,30,155,149,153,28,107,98,153,60,0,42,0,195,100,233,102,46,101,98,112,60,0,42,0,62,81,73,159,60,0,42,0,253,128,60,0,42,0,67,216,76,222,99,216,153,221,60,0,42,0,174,89,60,0,42,0,60,92,109,87,190,55,41,96,229,108,126,124,42,80,84,92,220,121,204,148,255,87,87,90,227,109,10,115,173,134,38,70,243,144,255,104,82,216,164,221,207,70,220,141,93,129,99,128,58,135,236,137,142,140,23,143,19,151,181,156,211,155,226,155,145,158,111,159,225,129,60,0,42,0,49,79,96,79,179,98,223,98,212,114,197,103,232,130,206,101,114,102,116,91,46,146,156,153,23,81,30,81,236,100,172,150,183,106,191,133,123,128,60,0,42,0,112,92,60,108,50,79,79,216,183,220,53,102,210,128,225,143,36,119,6,144,63,83,4,88,196,96,53,97,186,110,104,119,123,129,223,90,177,102,189,138,101,64,12,126,169,129,58,91,105,216,91,222,60,0,42,0,174,136,60,0,42,0,79,99,209,99,60,0,42,0,246,130,60,0,42,0,7,94,89,216,18,222,60,87,191,103,133,109,198,117,66,128,236,129,103,150,110,85,215,96,166,85,92,101,124,110,205,131,137,150,235,85,114,93,2,142,91,86,112,100,247,105,23,142,74,149,77,149,173,93,222,123,242,129,28,147,158,152,81,142,153,86,118,128,179,147,209,149,124,91,56,55,125,91,241,106,75,124,193,86,22,134,103,159,76,216,51,220,241,124,37,136,72,148,245,124,211,86,152,139,161,142,119,148,115,152,128,148,192,75,60,0,42,0,213,93,60,0,42,0,31,158,17,131,100,59,133,136,229,156,203,90,202,136,34,106,38,133,29,91,45,137,50,91,53,55,60,0,42,0,63,92,50,129,60,0,42,0,158,89,60,0,42,0,167,46,91,114,124,108,60,0,42,0,248,95,109,98,195,114,189,126,132,112,174,148,16,125,165,131,21,146,117,151,60,0,42,0,66,136,244,66,60,0,42,0,92,114,60,0,42,0,200,98,43,133,60,0,42,0,116,94,202,121,214,84,229,121,135,156,142,155,182,156,207,158,240,155,60,0,42,0,138,109,123,99,240,109,62,113,200,141,135,143,151,143,154,100,181,100,190,120,38,143,16,124,77,142,6,101,104,142,142,142,60,0,42,0,68,83,255,94,245,95,233,89,56,85,221,87,76,130,48,159,60,0,42,0,71,157,60,0,42,0,220,86,168,96,251,66,60,0,42,0,240,98,60,0,42,0,12,129,60,0,42,0,24,90,34,91,67,91,60,0,42,0,127,145,184,145,192,145,60,0,42,0,129,91,155,84,231,98,222,114,224,103,231,130,77,128,205,91,213,91,47,117,215,91,220,91,231,91,28,81,221,81,128,86,35,91,240,100,112,115,184,106,180,133,121,128,94,216,72,223,79,148,33,155,11,158,60,0,42,0,99,106,195,119,60,0,42,0,94,79,171,79,222,108,216,111,60,0,42,0,157,111,60,0,42,0,116,89,101,91,125,154,47,123,209,153,60,0,42,0,46,79,170,82,41,95,46,120,236,128,60,0,42,0,18,96,137,80,25,100,60,0,42,0,205,144,42,99,155,104,169,80,58,81,60,0,42,0,96,106,60,0,42,0,250,139,143,85,30,97,73,216,42,223,191,99,38,100,61,144,24,149,59,100,146,105,44,122,209,124,254,138,67,142,230,97,231,97,229,124,100,122,239,124,60,0,42,0,123,89,60,0,42,0,28,110,9,59,150,102,86,113,87,113,42,153,60,0,42,0,193,158,60,0,42,0,156,81,172,79,221,84,83,109,19,129,254,121,178,143,2,81,179,143,101,86,195,111,130,106,246,113,191,129,125,133,175,121,96,122,91,137,178,145,1,107,60,0,42,0,119,126,60,0,42,0,4,95,10,99,81,118,72,159,60,0,42,0,115,89,149,148,121,124,249,145,60,0,42,0,145,108,103,96,18,103,68,136,188,70,60,0,42,0,159,117,80,134,120,120,39,118,60,0,39,0,208,253,39,0,12,49,60,0,42,0,131,87,201,98,198,103,203,127,200,131,26,100,139,144,60,0,42,0,239,101,76,82,44,120,230,99,214,120,185,86,60,0,42,0,135,85,222,133,60,0,42,0,74,129,231,99,75,105,12,118,33,135,75,135,162,143,163,143,114,135,200,129,11,101,9,114,216,129,14,155,206,116,116,149,251,155,31,136,94,148,60,0,42,0,102,85,130,110,161,151,60,0,42,0,214,86,60,0,42,0,139,128,60,0,42,0,194,78,57,53,80,78,251,83,199,95,80,98,59,108,30,150,143,115,123,130,208,108,251,122,51,120,125,105,247,151,2,106,21,124,161,57,211,156,51,156,60,0,42,0,134,78,121,153,14,153,60,0,42,0,101,103,134,79,235,79,8,80,3,93,149,95,158,109,97,90,13,93,178,94,160,95,190,104,246,109,13,115,177,131,242,144,246,104,28,116,89,123,10,132,40,144,252,148,130,123,241,66,96,216,144,220,56,147,11,154,224,155,134,157,179,158,60,0,42,0,59,85,73,141,80,119,94,119,86,141,218,140,209,111,244,140,60,152,66,152,68,216,150,220,94,118,99,157,40,112,44,112,65,124,244,106,10,62,254,133,105,118,95,124,112,137,60,0,42,0,210,82,60,0,42,0,247,150,216,90,39,127,126,117,2,133,194,100,98,61,145,106,50,126,12,121,109,149,209,106,195,116,184,127,39,121,141,126,77,127,29,136,51,148,50,134,96,143,61,81,232,88,88,148,65,151,25,107,70,134,157,126,58,159,60,0,42,0,189,83,18,128,212,139,146,87,107,125,66,129,171,80,132,138,15,106,202,120,229,120,76,133,33,81,66,66,126,133,216,88,125,61,87,118,208,106,223,133,40,121,69,112,132,139,61,134,120,148,19,158,60,0,42,0,234,108,33,109,123,124,153,109,218,109,47,125,96,216,36,220,121,145,135,146,27,152,42,152,17,147,174,72,2,101,163,152,94,152,106,66,135,126,49,134,183,121,60,0,42,0,65,88,30,86,105,156,60,0,42,0,94,99,136,100,60,0,42,0,179,82,180,82,98,114,130,122,240,84,32,85,2,93,118,109,222,82,232,117,249,148,215,80,46,86,160,55,151,93,165,97,82,216,66,222,70,118,241,120,41,124,231,135,170,145,18,148,95,152,221,154,60,0,42,0,2,128,1,128,108,79,190,84,229,89,69,96,235,114,51,104,86,131,209,148,237,65,160,146,102,111,81,106,81,143,60,0,42,0,157,109,217,112,34,128,106,145,234,90,166,97,135,111,188,142,111,106,46,128,194,142,60,0,42,0,239,115,83,120,89,216,232,222,169,124,239,134,37,103,177,155,60,0,42,0,156,119,60,0,42,0,69,82,4,90,123,80,65,90,189,85,135,110,194,80,124,105,140,132,13,86,212,94,122,97,10,111,19,106,161,113,39,128,30,133,124,135,113,144,44,128,91,130,187,135,49,139,193,142,197,154,187,151,207,154,60,0,42,0,93,93,2,100,127,88,129,93,95,100,211,123,10,117,13,124,60,0,42,0,55,53,75,150,90,92,15,111,24,118,66,149,58,118,59,118,228,147,60,0,42,0,112,81,154,92,230,98,15,104,106,90,207,96,80,93,17,150,123,132,221,132,48,140,177,83,156,111,22,81,147,101,238,123,52,137,226,97,227,113,247,113,103,149,204,149,188,116,205,133,85,137,75,139,96,216,79,221,113,94,20,101,62,112,67,124,127,126,100,137,149,101,4,107,70,112,45,134,55,121,99,124,116,137,210,86,97,112,149,139,157,142,23,107,132,148,202,151,60,0,42,0,200,137,104,109,230,54,253,99,6,127,132,105,36,111,113,127,130,145,200,88,210,97,167,137,92,58,229,100,62,91,246,97,68,91,189,137,43,67,79,91,44,101,96,112,213,86,22,107,38,114,114,152,156,126,60,0,42,0,194,112,229,110,215,113,130,86,235,111,1,114,27,114,211,116,36,114,109,148,247,124,60,0,42,0,125,137,60,0,42,0,119,85,60,0,42,0,198,82,206,144,52,107,252,114,222,144,6,150,143,101,121,104,98,60,5,116,207,90,202,94,96,120,2,122,18,149,148,105,111,116,100,123,70,130,200,132,11,135,180,142,130,135,195,146,175,147,250,153,60,0,42,0,23,103,22,103,250,112,95,54,113,88,3,106,226,132,143,138,190,59,36,103,60,0,42,0,204,87,0,93,106,109,240,58,168,131,67,216,152,222,151,132,172,149,60,0,42,0,37,85,210,144,60,0,42,0,4,54,60,0,42,0,26,93,68,88,241,104,94,105,144,120,28,122,24,143,68,66,144,133,60,0,42,0,183,81,60,0,42,0,48,80,14,88,35,97,86,119,28,142,60,0,42,0,233,84,60,0,42,0,21,82,93,103,152,83,83,82,248,114,138,154,161,96,168,104,169,104,184,104,129,114,13,116,187,121,154,124,114,131,177,85,195,104,29,61,130,114,222,131,66,158,122,82,19,111,72,62,93,119,99,123,33,127,67,130,10,135,67,216,215,222,67,216,29,223,224,90,119,91,224,118,141,140,146,57,6,106,131,116,206,124,224,132,235,146,161,156,206,158,121,127,62,133,91,216,153,222,5,147,241,123,45,126,39,69,205,135,53,137,159,86,39,139,168,145,208,145,226,150,132,101,0,60,200,116,220,133,140,144,235,147,236,155,121,157,231,158,196,86,33,136,57,154,75,91,242,94,33,101,85,112,153,82,58,134,87,148,114,122,108,124,154,126,106,154,122,156,29,158,60,0,42,0,60,121,78,103,204,145,218,79,219,92,226,92,12,90,242,92,108,109,6,116,38,144,2,149,180,124,207,136,225,136,74,140,240,146,164,156,99,81,167,111,174,121,201,155,248,135,180,145,226,156,144,144,103,156,26,107,60,0,42,0,155,82,134,83,137,83,116,92,203,122,15,84,56,103,61,78,41,82,177,82,86,84,92,87,165,108,139,79,120,53,166,92,62,98,165,103,180,108,160,117,200,130,182,150,208,79,234,79,38,57,14,104,172,117,5,120,217,130,114,141,121,143,102,52,14,85,51,90,167,96,23,104,27,104,150,109,1,115,213,115,58,120,62,120,221,121,24,131,84,131,230,144,51,85,111,90,32,123,146,124,157,124,55,129,133,131,137,131,184,134,206,134,136,80,211,81,164,83,217,104,226,117,224,134,72,138,222,141,243,150,175,83,91,88,68,97,46,100,167,110,93,146,232,156,15,59,166,102,116,107,110,116,159,125,154,132,158,132,39,135,178,83,119,135,198,102,119,107,229,123,9,69,183,150,103,216,152,221,23,157,245,82,250,62,255,120,184,150,1,155,46,81,193,93,255,111,88,118,152,147,166,86,226,88,10,101,222,102,212,106,223,106,29,112,4,114,161,114,197,116,7,136,151,158,234,106,15,114,209,116,170,118,237,118,203,119,42,121,43,121,178,121,246,133,167,52,55,81,103,118,48,121,242,124,35,136,43,136,197,157,156,158,199,86,38,101,94,216,157,220,251,137,146,142,98,143,72,145,16,107,136,139,96,216,155,222,99,143,45,101,229,116,66,151,102,216,195,221,113,156,115,156,75,151,60,0,42,0,3,104,170,106,207,155,60,0,42,0,233,79,6,80,60,0,42,0,167,84,60,0,42,0,23,82,163,82,189,81,189,82,220,57,244,89,18,99,12,109,247,84,210,87,211,87,32,57,94,59,53,104,86,109,200,112,34,131,254,143,105,99,105,59,14,115,31,129,218,134,194,136,109,113,89,119,87,128,148,141,228,93,178,152,32,81,164,155,55,157,248,100,117,115,163,114,144,142,27,155,47,59,35,155,114,156,60,0,42,0,223,107,24,99,238,112,31,115,60,0,42,0,169,100,125,142,60,0,42,0,189,143,151,117,74,128,218,80,229,91,122,93,128,97,59,111,139,129,57,86,253,90,238,91,154,93,155,93,121,101,96,115,45,127,184,102,206,113,153,116,171,129,124,144,115,61,66,118,105,158,106,92,235,94,29,124,90,126,223,135,66,140,255,140,88,142,16,148,212,133,201,152,206,154,239,157,60,0,42,0,254,83,38,65,140,148,213,145,29,145,173,97,252,132,173,119,226,102,125,149,18,114,60,0,42,0,37,92,38,92,147,112,153,101,30,92,214,94,130,100,183,122,99,149,60,0,42,0,14,114,60,0,42,0,156,110,152,113,83,142,60,0,42,0,24,82,160,108,68,117,65,109,79,109,9,116,89,117,200,101,113,117,107,120,215,136,99,216,231,222,185,90,103,93,210,101,197,132,143,153,157,154,180,105,96,116,165,132,91,144,215,152,137,82,108,116,36,118,194,120,79,149,224,153,96,158,74,106,162,116,129,117,96,149,69,118,201,135,101,216,233,221,245,153,160,86,240,97,15,112,143,147,166,147,141,158,240,133,208,147,192,152,46,154,197,152,33,156,185,157,81,154,60,0,42,0,213,57,243,103,1,104,203,115,122,104,250,126,13,149,90,146,249,152,185,125,174,113,118,127,246,146,110,106,60,91,128,127,60,0,42,0,109,81,66,117,207,127,111,88,199,94,145,111,223,120,104,158,36,151,62,153,225,150,2,148,194,152,56,155,218,157,60,0,42,0,94,104,60,0,42,0,65,89,24,94,28,96,222,143,159,109,191,104,178,131,122,70,35,144,84,128,183,78,201,94,147,110,50,83,249,85,105,89,105,97,35,111,145,113,226,136,157,137,134,82,51,83,82,86,254,90,144,97,228,105,207,120,107,128,238,132,162,156,194,111,211,111,110,128,138,135,235,113,58,126,244,127,111,128,193,129,149,133,51,137,48,139,101,142,140,147,112,149,227,106,62,124,10,136,17,155,101,73,46,148,49,156,98,124,104,124,60,0,42,0,91,101,15,116,56,129,227,136,89,100,137,116,57,133,26,91,130,101,236,59,201,129,59,145,183,127,93,137,30,134,60,0,42,0,195,126,188,112,75,96,112,109,147,107,28,88,3,55,161,90,104,60,69,110,254,148,198,80,93,105,73,113,83,116,48,132,75,111,244,125,176,111,44,147,174,107,74,147,200,147,145,61,50,112,10,156,29,134,0,98,59,55,158,126,60,0,42,0,104,128,60,0,42,0,206,98,60,0,42,0,184,83,151,103,187,144,52,78,167,81,221,119,73,85,10,93,203,109,125,102,51,116,166,124,243,117,132,120,150,123,188,124,153,93,126,111,92,115,48,145,163,150,180,101,189,102,208,113,152,116,154,143,116,144,22,151,181,119,247,120,232,129,87,126,247,127,144,158,84,143,227,88,54,112,251,147,222,156,78,154,87,156,159,158,60,0,42,0,45,52,6,58,251,131,131,78,219,81,220,81,155,100,233,94,234,94,205,97,212,97,159,111,129,106,169,106,91,118,93,118,60,0,42,0,29,84,97,96,139,96,65,141,27,113,195,140,239,80,58,133,73,106,166,129,181,149,16,117,132,117,120,142,250,133,143,142,153,142,170,142,101,143,60,0,42,0,111,130,205,79,201,81,129,104,188,109,11,105,140,143,174,124,177,124,154,88,161,125,9,142,17,106,44,143,231,124,60,0,42,0,33,78,36,78,179,52,105,81,33,85,98,85,154,99,60,129,201,125,61,135,242,136,73,155,78,155,60,0,42,0,174,78,244,84,162,96,5,140,134,143,168,85,126,102,120,110,207,145,12,143,210,138,27,143,68,147,60,0,42,0,119,113,23,124,60,0,42,0,7,48,54,79,34,82,117,112,249,86,125,87,12,89,200,89,186,92,126,95,224,108,209,114,36,102,14,103,195,103,178,115,211,130,204,81,244,116,138,118,49,120,226,121,219,122,195,148,48,158,72,90,149,99,194,104,233,109,12,116,45,123,55,125,235,126,69,67,154,127,206,127,70,128,50,130,201,134,81,136,117,150,241,131,69,138,201,141,232,142,126,121,52,146,157,149,246,150,132,159,10,66,190,125,236,136,6,133,10,151,214,153,170,111,2,147,127,155,174,156,18,157,119,158,33,59,239,113,65,66,22,69,118,133,27,151,29,151,98,159,234,155,65,91,67,145,97,159,250,106,38,134,189,145,72,151,76,216,31,223,30,107,39,114,82,216,233,222,162,158,133,69,151,159,60,0,42,0,173,92,62,150,138,136,134,152,24,152,186,93,60,0,42,0,228,78,230,83,100,84,169,112,60,0,42,0,228,132,23,151,46,112,60,0,42,0,92,86,184,100,60,0,42,0,98,83,144,94,134,87,248,108,137,112,166,130,84,59,12,104,234,128,115,143,44,158,136,115,59,130,133,152,136,156,114,155,231,118,167,86,218,88,32,56,236,94,14,101,218,106,24,112,121,115,183,116,229,102,232,106,16,114,208,116,218,129,6,134,209,119,90,124,145,126,79,127,107,130,38,136,100,143,106,148,113,152,215,154,120,156,21,158,248,158,60,0,42,0,100,83,79,134,179,99,117,158,117,120,129,156,92,134,119,88,247,110,16,106,155,111,254,132,111,155,196,100,121,106,224,120,101,149,149,86,252,100,2,112,211,106,12,108,99,130,192,147,106,130,42,148,101,148,60,0,42,0,37,87,42,117,147,79,116,87,84,95,85,95,70,150,205,92,206,82,66,141,130,143,61,90,213,109,229,109,12,110,73,120,120,150,127,158,144,58,2,105,45,116,132,121,2,68,201,131,47,144,199,80,121,82,224,82,221,118,105,119,140,120,127,121,17,122,194,140,239,141,118,88,216,94,93,100,9,111,147,123,182,124,68,216,20,220,46,98,26,106,157,113,148,129,13,133,238,137,162,141,27,142,152,143,129,145,221,59,94,111,75,122,4,147,50,147,52,147,144,116,15,124,87,133,176,135,87,142,70,143,4,154,102,216,241,220,109,158,44,124,54,124,213,147,229,155,102,157,113,157,147,158,244,147,50,151,60,154,89,124,250,157,66,134,60,0,42,0,166,103,46,130,41,146,7,108,60,0,42,0,87,127,112,85,49,152,201,86,60,0,42,0,86,127,33,115,54,129,36,105,29,132,153,137,59,144,97,129,35,149,169,123,161,154,89,149,186,135,133,127,182,137,205,147,56,81,188,137,62,154,70,216,34,221,30,101,128,115,15,107,90,216,199,220,63,134,143,144,88,154,1,158,110,124,124,148,96,153,60,0,42,0,70,82,46,80,207,132,248,136,182,142,48,118,97,58,1,60,3,136,221,129,234,102,115,118,60,0,42,0,250,108,200,92,27,109,220,126,134,154,28,109,222,115,102,131,102,120,63,123,97,125,224,85,61,132,94,100,47,111,150,114,123,146,210,150,241,153,165,155,60,157,69,157,252,111,93,216,204,223,153,126,60,0,42,0,8,90,106,91,230,92,27,99,62,104,62,158,20,129,230,110,174,146,73,157,29,87,113,89,76,91,127,91,210,93,35,101,235,102,18,107,83,112,137,127,224,129,30,87,100,112,74,134,126,148,116,118,117,118,30,158,60,0,42,0,117,83,60,0,42,0,113,78,224,145,130,78,60,0,42,0,161,98,132,99,60,0,42,0,209,78,38,79,245,86,166,108,182,126,150,79,110,143,43,80,7,87,104,90,24,93,25,93,192,96,234,109,111,150,198,104,205,61,64,129,213,131,1,66,184,125,38,135,26,142,42,143,0,147,233,155,60,0,42,0,232,87,150,120,16,122,35,128,60,0,42,0,186,139,163,110,214,138,60,0,42,0,238,120,60,0,42,0,153,159,120,92,153,84,247,108,61,102,10,104,209,115,231,128,15,131,44,119,59,120,220,122,60,123,75,128,112,110,134,150,221,110,67,216,144,223,144,93,11,111,99,56,237,123,111,133,141,159,67,118,191,122,168,86,195,93,196,93,39,112,60,124,231,147,232,102,39,103,13,60,243,106,22,114,207,116,34,134,51,151,211,119,49,121,50,121,146,159,96,124,126,128,42,136,44,136,113,137,69,140,152,142,104,148,71,151,190,75,97,154,23,158,60,0,42,0,132,87,133,87,226,98,71,150,51,61,226,123,49,81,223,88,224,88,15,101,180,150,201,122,147,159,60,0,42,0,226,84,53,99,135,104,191,95,26,141,60,0,42,0,222,105,60,0,42,0,116,154,254,149,216,144,136,105,191,153,0,108,162,129,173,149,216,133,220,157,98,154,60,0,42,0,21,84,66,84,163,79,182,79,20,99,206,54,75,99,91,99,197,101,90,59,160,104,99,121,6,122,221,148,97,92,21,127,125,125,98,92,130,129,101,92,27,137,193,146,144,129,34,81,94,122,55,126,56,137,109,122,60,0,42,0,253,91,143,87,139,95,81,134,135,115,255,126,67,216,200,221,66,93,47,108,228,110,78,132,160,125,209,125,110,97,187,123,159,129,244,82,66,126,254,111,214,106,8,114,98,148,60,0,42,0,18,113,60,0,42,0,103,117,10,149,36,122,0,53,25,87,60,58,221,146,226,146,253,100,60,0,39,0,208,253,39,0,13,49,60,0,42,0,238,101,119,84,14,86,32,86,60,0,42,0,134,148,28,92,118,86,55,147,60,0,42,0,21,92,141,115,60,0,42,0,44,92,64,155,60,0,42,0,8,98,225,78,42,87,181,114,165,126,66,216,235,223,19,98,144,128,107,114,153,117,175,84,113,114,229,84,243,128,61,158,114,82,1,100,188,136,67,216,157,222,210,110,40,98,76,107,103,216,183,223,16,157,26,157,241,100,12,139,63,157,182,147,60,0,42,0,68,84,55,56,110,79,12,83,12,99,1,150,105,151,75,101,88,59,60,104,22,131,50,155,5,97,245,129,210,134,221,85,101,88,198,110,91,132,211,136,225,137,148,150,63,100,197,105,136,129,163,149,164,149,19,66,73,149,136,151,208,151,102,115,253,138,53,143,188,154,175,155,218,151,183,151,20,154,1,70,85,143,60,0,42,0,255,84,56,130,60,0,42,0,42,78,4,84,124,134,11,80,76,120,236,148,240,85,135,123,60,0,42,0,65,95,202,106,60,0,42,0,133,79,229,139,147,87,223,89,208,92,194,144,84,150,80,102,68,131,69,141,97,117,116,121,111,125,114,138,101,140,197,140,60,0,42,0,203,95,57,101,96,125,60,0,42,0,16,78,98,78,3,83,4,83,35,150,90,103,153,148,214,118,97,100,137,110,35,146,36,98,130,105,98,132,204,140,145,150,17,111,203,132,98,53,233,105,234,105,194,116,60,0,42,0,217,126,102,125,60,0,42,0,139,118,148,127,153,127,216,154,144,118,90,216,14,221,217,154,239,129,220,110,212,105,126,119,143,129,249,105,112,106,217,123,213,124,59,153,220,106,223,151,206,157,27,159,241,157,60,0,42,0,48,89,114,103,210,131,30,100,31,127,160,102,192,105,193,105,70,61,62,122,63,122,80,149,30,126,186,106,193,133,243,133,60,0,42,0,63,84,74,84,194,82,221,83,240,139,220,144,110,121,112,121,6,149,112,113,118,123,165,138,158,121,239,146,60,0,42,0,254,82,93,79,159,108,169,148,167,136,17,127,14,146,157,110,100,146,241,125,221,123,32,137,178,151,221,151,60,0,42,0,163,92,215,114,182,130,184,103,189,115,7,128,223,130,49,123,8,128,9,128,188,134,127,140,60,0,42,0,120,87,132,103,223,139,45,141,162,87,228,89,147,81,41,131,31,89,32,89,61,138,190,90,64,95,6,100,108,138,202,150,203,105,121,113,207,137,88,144,128,100,175,137,252,140,60,0,42,0,24,117,211,95,60,101,70,103,165,61,149,115,157,128,137,130,192,143,105,87,212,108,248,119,121,78,209,103,255,122,247,130,179,117,80,145,126,78,147,124,129,78,242,81,50,92,52,92,120,123,39,111,241,156,54,92,55,92,80,155,60,0,42,0,224,78,94,98,175,118,198,121,102,136,118,141,127,104,52,123,98,101,8,122,31,97,149,141,137,111,192,100,68,106,51,124,20,156,225,156,100,156,60,0,42,0,114,94,240,101,117,108,240,118,192,126,29,80,206,81,230,109,58,125,76,138,121,94,173,154,166,105,138,106,17,141,99,141,27,141,104,112,60,0,42,0,57,104,223,141,60,0,42,0,207,84,60,0,42,0,110,130,60,0,42,0,152,78,153,78,27,131,239,99,60,0,42,0,136,81,83,127,174,81,26,82,96,103,178,126,155,128,161,92,78,59,104,114,152,117,252,119,56,127,162,148,91,82,97,127,8,88,134,99,237,145,225,104,133,114,61,88,177,125,65,127,252,146,160,147,60,0,42,0,151,92,88,63,23,93,47,110,60,0,42,0,53,113,123,123,211,105,5,98,6,98,60,0,42,0,47,82,154,94,74,117,109,109,116,62,21,128,4,100,63,113,90,125,238,131,83,141,82,158,234,125,6,126,174,127,225,140,185,127,138,157,60,0,42,0,253,84,194,87,250,92,45,99,224,126,63,128,224,144,76,216,179,221,151,104,132,131,152,63,134,125,4,67,160,156,190,154,193,155,60,0,42,0,244,102,41,88,133,102,77,76,109,76,60,0,42,0,182,99,41,105,60,0,42,0,48,79,113,84,149,84,209,89,100,91,189,108,210,108,231,103,253,130,113,143,2,85,91,127,42,158,31,123,196,134,199,131,240,131,218,137,241,142,242,142,156,143,100,145,50,146,141,123,155,123,244,90,109,106,59,68,149,155,35,157,60,0,42,0,187,157,60,0,42,0,3,89,228,83,98,98,105,108,194,139,55,140,161,128,111,114,227,46,3,85,38,64,95,127,150,127,180,148,168,154,82,85,200,109,53,129,202,134,204,134,65,138,68,158,51,92,50,97,194,107,55,146,137,153,19,159,20,159,15,86,150,105,190,105,183,118,199,132,64,122,88,158,211,124,14,126,242,111,188,118,204,129,163,133,66,143,20,112,236,118,189,119,54,153,156,77,49,136,60,0,42,0,250,86,69,101,197,81,126,152,12,88,19,93,46,93,143,104,127,114,221,104,199,150,252,117,123,121,18,122,34,149,241,80,46,147,180,156,221,155,103,152,60,0,42,0,224,92,39,144,166,80,208,123,60,0,42,0,220,116,46,82,205,128,29,104,67,216,111,221,57,158,82,128,183,68,68,107,113,113,143,141,128,82,250,125,189,146,179,152,59,142,48,157,39,154,60,0,42,0,231,83,142,81,80,82,110,82,225,91,17,66,60,0,42,0,102,83,108,87,214,139,2,99,105,85,155,99,99,127,83,125,107,127,127,138,2,137,60,0,42,0,170,152,60,0,42,0,89,84,188,84,218,87,111,85,30,93,237,144,29,88,27,146,5,149,19,86,142,88,17,118,72,135,73,95,251,53,196,111,200,135,75,147,77,95,60,0,42,0,239,86,246,86,251,86,253,86,0,87,11,87,60,94,88,129,87,94,86,97,13,111,93,128,149,129,46,133,98,134,152,153,95,216,18,220,144,65,60,0,42,0,156,103,200,96,201,109,19,115,131,153,1,105,211,131,191,124,182,125,62,135,249,136,232,105,32,143,1,147,28,153,57,148,60,0,42,0,199,143,78,144,60,0,42,0,86,78,180,99,81,100,60,0,42,0,208,98,180,103,250,103,92,216,133,222,137,123,60,0,42,0,44,89,207,83,42,96,212,57,96,96,60,0,42,0,82,95,45,87,171,89,159,159,196,137,136,118,189,144,250,149,48,94,234,115,255,128,37,131,128,78,69,120,69,65,144,122,143,137,128,80,175,90,29,105,191,136,198,94,204,144,226,90,107,100,112,116,168,149,145,156,0,91,251,105,252,105,157,116,173,129,157,135,156,159,173,155,194,93,120,107,54,155,204,116,41,154,57,155,247,106,60,0,42,0,132,91,63,108,57,103,104,143,139,94,121,79,38,83,225,139,67,216,83,220,157,87,253,89,81,96,49,101,120,118,204,142,82,150,170,94,60,155,45,83,106,121,119,102,64,110,111,67,235,134,51,53,228,137,109,138,172,83,51,58,37,73,225,135,161,119,11,124,60,0,42,0,48,101,61,82,63,82,11,102,148,112,220,103,53,141,136,58,66,104,103,104,34,105,36,115,64,123,180,140,234,141,49,83,213,132,138,82,140,82,161,93,140,100,246,105,16,66,52,68,156,106,182,119,2,124,195,106,80,118,172,121,88,137,220,156,188,151,86,156,101,156,60,0,42,0,115,81,194,137,152,91,160,81,140,137,12,80,67,216,40,221,250,104,164,122,132,132,162,149,29,118,79,118,179,137,215,149,207,156,220,149,37,156,94,156,192,137,60,0,42,0,158,131,134,153,47,116,239,117,102,123,161,123,40,143,24,130,39,147,40,153,228,156,60,0,42,0,204,107,49,78,47,141,244,108,186,96,239,96,188,99,171,109,171,140,185,96,38,61,161,59,124,121,99,97,92,100,69,111,12,106,102,144,229,118,70,127,91,70,218,150,198,147,76,112,31,114,216,116,115,158,212,119,54,121,80,127,117,148,121,156,27,158,60,0,42,0,40,78,64,216,204,220,110,136,195,96,242,126,158,136,172,136,138,143,218,110,254,110,196,125,216,132,217,120,9,133,37,143,167,156,85,216,102,221,140,155,192,155,60,0,42,0,205,104,84,119,101,54,116,119,173,116,52,139,60,0,42,0,73,81,110,112,138,79,151,112,154,112,155,112,163,84,153,87,239,89,56,109,68,104,225,112,241,128,42,131,4,143,217,80,167,146,198,158,102,216,201,221,60,0,42,0,127,94,131,94,183,114,227,94,233,129,119,115,104,216,245,221,60,0,42,0,199,79,214,115,27,144,230,129,151,100,101,216,72,220,60,0,42,0,31,107,60,0,42,0,229,93,19,95,108,81,183,83,159,82,59,101,91,103,155,79,156,115,252,124,177,128,171,91,174,91,109,96,163,134,172,142,154,159,17,83,104,88,74,94,41,97,229,137,149,113,179,142,189,120,248,154,205,76,245,137,143,159,148,159,60,0,42,0,254,94,233,93,94,108,241,98,236,57,242,98,95,59,49,104,217,115,38,63,1,143,219,146,143,151,75,76,60,0,42,0,113,81,33,141,190,127,29,85,162,140,187,131,54,53,60,0,42,0,80,97,60,0,39,0,208,253,39,0,14,49,60,0,42,0,148,84,150,84,128,85,73,136,214,100,60,0,42,0,97,83,103,79,233,128,114,146,60,0,42,0,176,87,195,136,60,0,42,0,60,83,47,62,72,216,8,222,239,103,65,114,194,115,209,121,226,128,219,130,114,143,180,117,34,120,183,141,245,104,251,142,143,152,209,85,21,100,144,114,30,122,160,122,42,132,51,146,188,105,38,68,151,152,22,106,140,119,213,120,0,67,76,135,18,147,150,133,152,145,70,152,193,154,26,121,60,0,42,0,243,88,226,99,188,107,215,127,60,0,42,0,239,83,119,87,185,55,162,92,188,58,163,112,7,110,81,93,100,101,52,110,177,93,13,121,60,0,42,0,75,81,59,82,75,82,192,82,202,82,162,91,106,96,67,216,237,220,20,90,5,92,254,139,67,216,178,221,1,88,42,108,146,154,2,127,25,97,152,110,30,149,166,120,217,125,80,130,178,138,10,121,13,154,104,216,237,220,60,0,42,0,89,93,60,0,42,0,0,95,82,89,233,99,14,149,139,149,36,73,38,148,60,0,42,0,239,81,64,82,178,87,122,96,255,149,224,148,241,81,116,82,104,97,79,88,102,93,55,97,119,105,136,132,6,143,5,86,159,102,52,149,87,64,71,147,167,147,211,149,189,152,60,0,42,0,254,95,140,112,143,112,44,107,215,112,211,82,18,97,62,97,142,147,60,0,42,0,59,92,219,154,60,0,42,0,2,78,55,101,3,128,247,98,24,109,50,104,228,112,1,122,147,156,250,113,60,0,42,0,208,148,146,114,172,146,96,151,179,155,204,155,60,0,42,0,160,98,90,216,5,223,164,130,13,119,126,82,68,95,115,100,152,119,113,64,60,0,42,0,227,83,81,216,24,222,182,82,60,0,42,0,233,83,99,98,66,101,166,81,188,91,199,91,47,60,230,145,155,122,88,123,241,110,137,119,50,133,59,133,6,124,199,157,60,0,42,0,10,82,30,104,216,82,155,159,42,88,65,93,33,98,149,159,60,0,42,0,154,81,78,87,131,79,13,120,88,80,243,87,194,96,176,131,63,107,106,88,65,107,219,105,33,143,187,106,81,152,247,122,87,143,60,0,42,0,11,119,78,136,1,93,136,88,225,120,176,119,222,149,217,119,60,0,42,0,142,128,175,128,187,128,166,87,115,96,67,85,100,140,136,159,190,88,57,147,199,97,102,159,60,0,42,0,175,99,201,136,3,137,60,0,42,0,252,95,246,149,10,120,135,124,183,94,69,216,19,220,221,90,123,93,119,97,46,111,250,105,69,122,178,65,224,124,191,142,238,147,71,156,60,0,42,0,91,98,67,100,60,0,42,0,73,72,60,0,42,0,162,78,9,79,31,83,229,86,151,98,186,114,159,144,149,112,170,148,39,146,140,149,60,0,42,0,165,82,45,84,81,87,148,89,44,150,51,99,65,120,124,114,92,120,255,148,123,120,124,100,153,138,181,146,216,64,94,147,215,147,60,0,42,0,93,98,51,82,251,119,175,103,208,128,192,144,237,84,77,104,0,88,43,93,196,53,16,87,205,141,159,122,183,154,90,216,70,220,172,155,60,0,42,0,220,114,230,130,60,0,42,0,56,56,147,94,200,79,212,126,171,94,217,121,182,141,5,113,190,85,93,125,180,136,228,136,20,118,119,145,228,94,50,137,179,86,60,0,42,0,56,89,241,89,135,138,60,0,42,0,137,79,181,84,174,87,153,146,60,0,42,0,4,52,14,99,239,128,232,141,187,154,60,0,42,0,63,130,60,0,42,0,105,98,225,98,236,98,4,99,112,104,72,123,222,134,20,150,63,132,64,132,211,94,34,152,250,154,246,111,202,149,159,151,214,97,244,100,41,151,185,151,32,155,60,0,42,0,213,151,60,0,42,0,223,57,175,132,211,100,60,0,42,0,220,93,247,81,87,87,235,95,169,79,217,84,239,114,208,144,13,129,74,88,110,60,119,123,153,156,8,81,164,88,114,86,229,94,106,115,54,145,190,129,221,101,233,124,96,156,60,0,42,0,38,87,60,0,42,0,143,78,50,82,191,92,157,96,212,118,165,122,103,128,186,122,103,134,218,149,93,152,203,93,44,134,60,0,42,0,78,89,70,102,4,152,151,153,185,85,198,99,175,69,53,144,8,145,153,154,35,98,140,102,79,105,81,105,117,132,151,150,125,119,65,155,112,135,6,73,47,152,122,54,104,147,119,147,198,106,200,133,36,154,20,89,55,134,65,134,217,93,104,216,180,221,170,114,168,142,60,0,42,0,67,113,236,141,13,152,94,142,60,0,42,0,47,92,46,83,51,107,159,85,38,97,131,110,67,129,136,153,191,90,39,97,137,132,134,119,51,86,7,91,146,97,112,111,209,123,105,128,70,70,59,106,109,128,98,133,9,139,35,124,117,128,61,153,68,124,0,148,75,153,78,148,14,76,60,0,42,0,189,91,219,91,236,91,215,129,203,154,214,154,60,0,42,0,53,107,62,107,64,107,190,122,64,69,60,0,42,0,189,122,103,148,60,0,42,0,100,87,6,102,3,88,107,90,16,93,17,93,92,102,17,115,28,113,40,116,206,131,200,136,224,154,135,140,31,149,225,154,77,158,43,135,233,136,232,154,123,116,12,137,140,145,21,147,178,156,9,154,228,155,126,157,164,157,60,0,42,0,131,96,70,99,3,150,248,88,177,104,113,120,117,121,7,122,252,88,27,122,145,125,205,136,171,149,184,149,107,159,60,0,42,0,240,86,131,109,251,58,79,119,60,0,42,0,18,88,33,92,73,111,180,113,60,0,42,0,33,83,76,52,187,82,211,139,41,83,208,84,71,96,45,109,188,144,70,104,68,120,80,123,176,68,134,138,237,142,60,0,42,0,249,95,130,98,194,114,243,139,214,142,145,138,95,157,60,0,42,0,60,89,35,81,237,97,60,0,42,0,93,83,57,87,169,126,157,144,181,81,247,101,178,92,193,108,255,119,63,102,54,141,22,119,54,119,86,125,186,140,230,142,113,146,217,88,128,142,58,145,203,158,236,97,224,102,12,114,204,119,38,121,108,122,138,126,91,148,60,0,42,0,63,120,75,125,122,123,60,0,42,0,122,122,154,54,37,80,234,87,6,93,190,96,179,109,127,120,156,123,19,147,124,157,60,0,42,0,84,91,76,216,250,223,80,96,60,0,42,0,167,99,88,216,72,220,154,151,60,0,42,0,187,142,60,0,39,0,208,253,39,0,15,49,60,0,42,0,119,86,60,0,42,0,200,84,234,148,60,0,42,0,228,134,60,0,42,0,100,89,60,0,42,0,55,78,60,0,42,0,195,139,178,98,49,107,157,85,54,138,236,85,26,136,60,0,42,0,190,121,8,84,85,79,190,82,146,83,138,84,140,84,192,89,179,108,198,92,131,58,247,102,199,103,226,114,199,118,122,124,7,125,195,144,2,150,120,153,236,84,137,58,70,101,56,104,201,118,205,118,93,85,113,59,184,109,210,118,244,121,119,131,181,134,129,159,210,96,46,110,207,131,2,132,56,138,140,152,65,105,252,107,101,138,136,140,166,71,5,143,76,146,22,150,132,156,97,53,134,113,86,158,167,158,149,111,229,63,28,152,213,123,238,127,155,135,122,155,9,121,212,149,168,151,85,159,136,137,161,157,172,118,73,148,162,159,60,0,42,0,107,79,142,87,58,141,3,113,148,136,192,140,195,85,66,113,139,120,135,113,107,141,81,61,16,137,100,158,30,59,82,122,239,127,209,88,75,118,30,139,0,114,174,157,180,157,78,151,22,158,79,151,60,0,42,0,173,124,77,151,60,0,42,0,141,84,179,84,232,85,60,0,42,0,216,143,105,91,38,152,184,154,132,144,60,0,42,0,119,109,242,128,248,112,124,145,162,145,60,0,42,0,165,78,142,89,225,57,135,154,179,91,38,108,208,85,0,153,237,153,90,216,38,221,90,153,60,0,42,0,112,88,161,86,60,0,42,0,210,158,209,158,63,86,118,111,98,216,70,223,60,0,42,0,32,131,191,132,134,86,133,133,167,133,60,0,42,0,220,107,157,134,235,107,3,105,229,85,70,115,137,140,81,86,84,115,106,140,101,216,184,221,55,86,20,59,75,115,213,138,43,81,142,86,213,88,25,56,224,111,71,124,20,136,121,139,60,0,42,0,125,89,221,144,60,0,42,0,247,83,170,54,64,55,10,102,38,102,207,121,224,84,252,92,79,96,142,96,105,109,23,128,103,102,54,59,207,109,144,80,147,118,200,110,85,128,95,134,23,145,164,102,173,102,148,111,156,118,158,118,205,102,161,118,165,118,131,133,172,147,162,152,79,112,101,152,29,156,93,112,60,0,42,0,211,122,60,0,42,0,65,159,60,0,42,0,175,79,39,57,230,119,137,85,63,94,52,115,7,145,11,59,84,132,10,118,122,119,204,123,199,124,237,127,186,154,245,127,109,147,49,153,248,155,60,0,42,0,60,84,188,114,60,0,42,0,14,84,154,83,149,87,140,95,9,109,200,144,25,80,5,144,32,88,94,140,142,156,152,156,156,155,95,156,60,0,42,0,68,79,182,112,120,152,55,57,182,134,99,145,7,152,232,90,61,140,168,97,160,153,91,107,62,159,60,0,42,0,151,144,43,84,253,81,129,84,163,128,175,144,254,81,119,134,5,85,5,87,34,90,91,109,33,93,87,102,146,104,181,109,19,113,0,116,210,91,69,93,128,59,233,151,29,117,104,123,4,66,44,135,143,111,225,146,125,155,211,151,60,0,42,0,6,78,136,83,85,127,107,109,138,85,26,150,10,133,1,62,67,140,43,155,26,54,60,0,42,0,73,108,125,92,87,108,236,149,241,101,190,92,251,84,190,87,141,96,77,99,134,109,2,115,139,58,88,102,101,102,10,113,159,131,236,145,136,149,148,118,69,119,225,131,188,80,255,134,148,152,175,153,34,111,45,135,139,140,150,100,181,102,175,113,178,146,206,146,190,97,188,100,83,216,201,220,240,127,146,135,55,152,68,152,251,153,215,150,26,112,64,139,43,134,190,157,60,0,42,0,111,81,51,114,60,0,42,0,235,98,213,117,142,151,60,0,42,0,119,79,136,95,224,114,106,138,60,0,42,0,104,96,60,0,42,0,47,89,32,60,60,0,42,0,187,101,109,103,192,130,210,143,215,126,233,115,16,123,42,130,162,134,21,70,131,152,165,140,85,123,78,125,15,152,96,216,72,220,103,155,60,0,42,0,134,108,60,0,42,0,179,87,60,0,42,0,168,78,252,84,153,96,72,85,29,129,60,0,42,0,48,53,238,89,70,96,82,96,65,104,198,112,251,128,59,158,42,106,107,106,97,136,52,157,5,134,69,148,60,0,42,0,60,88,60,0,42,0,165,109,70,157,60,0,42,0,78,78,111,78,34,83,77,134,124,84,128,87,253,95,18,102,246,102,216,108,87,96,192,112,248,130,119,143,43,83,63,85,218,96,254,57,244,109,86,134,228,142,17,86,227,91,249,110,228,68,208,150,96,94,47,98,81,107,94,216,83,222,180,129,60,139,60,0,42,0,235,86,135,98,39,95,208,114,225,128,246,88,243,116,186,150,67,216,49,221,247,88,155,101,0,113,197,53,150,85,250,88,169,90,86,110,34,115,87,125,48,100,92,105,115,113,90,116,107,132,29,86,80,216,13,223,85,158,242,105,182,123,202,124,27,133,116,135,90,136,113,155,32,126,156,135,144,145,54,152,243,137,120,147,44,153,76,75,96,157,43,112,13,155,23,156,152,157,166,157,60,0,42,0,85,78,123,108,78,134,82,109,255,79,44,85,37,116,0,132,93,134,248,110,60,0,42,0,101,78,146,78,22,95,54,98,55,98,56,98,38,62,177,81,180,81,13,94,164,98,141,108,170,108,144,130,181,92,25,96,61,98,8,102,145,103,24,96,92,121,15,123,95,90,72,98,224,116,192,85,91,105,148,125,253,150,237,90,238,90,98,100,236,110,32,145,244,105,169,113,48,133,248,156,4,124,89,147,155,86,113,158,119,139,224,156,196,151,0,152,111,156,12,158,60,0,42,0,144,124,63,147,241,155,60,0,42,0,177,130,178,130,215,84,41,86,138,132,53,147,60,0,42,0,78,83,114,53,73,59,225,89,133,154,234,145,235,145,231,148,239,131,51,100,209,110,62,115,15,56,138,57,182,100,198,120,216,146,80,133,150,135,65,139,245,147,74,154,232,157,60,0,42,0,22,83,18,82,102,53,59,89,119,53,121,103,59,117,221,139,102,104,115,90,11,93,107,117,117,117,223,137,113,138,131,82,102,100,255,90,5,91,236,105,133,111,58,106,227,138,99,126,25,130,202,158,110,139,60,0,42,0,214,87,114,90,27,105,116,120,192,124,174,138,141,116,60,0,42,0,25,84,104,82,32,128,42,149,144,82,67,147,132,86,65,140,9,101,30,154,60,0,42,0,120,79,59,109,238,121,243,121,60,0,42,0,107,112,25,79,169,144,172,148,37,146,37,89,55,111,60,0,42,0,142,108,22,98,39,141,159,84,9,120,0,65,240,79,71,99,19,119,132,149,67,216,126,221,157,99,183,131,168,140,209,96,113,110,120,121,228,101,71,105,47,58,141,121,166,132,242,53,111,89,13,151,233,111,114,115,11,139,180,106,108,149,175,86,22,112,198,119,107,122,91,76,228,102,47,128,219,129,103,130,255,133,22,136,191,86,104,118,208,119,74,148,67,151,60,0,42,0,0,96,138,95,238,109,208,105,29,142,208,97,34,137,49,137,51,55,34,56,247,97,36,112,240,106,50,128,57,134,60,0,42,0,79,87,182,84,217,138,202,88,222,88,62,134,60,0,42,0,112,112,209,57,217,139,180,84,98,96,251,98,37,99,3,109,122,134,86,102,227,112,242,115,134,136,87,140,78,90,69,86,136,90,238,99,199,61,218,127,137,143,137,102,78,105,71,113,124,138,147,150,81,94,115,119,136,121,157,100,85,86,236,127,24,137,29,143,190,158,189,95,8,112,179,150,51,134,52,156,60,0,42,0,216,86,222,86,236,86,106,79,251,94,91,96,4,109,253,94,224,112,52,131,152,134,244,143,208,117,37,144,212,134,213,134,22,135,176,155,60,0,42,0,148,96,192,107,193,107,89,216,153,223,199,107,147,106,236,113,109,139,60,0,42,0,73,83,71,108,26,79,179,139,203,108,213,84,69,216,38,223,77,109,216,126,148,130,242,139,90,96,117,96,233,112,95,131,63,141,87,95,102,102,253,121,153,85,224,96,79,110,117,125,11,127,217,127,19,150,47,83,89,95,90,95,99,57,3,103,217,110,111,138,196,140,146,152,225,80,18,86,57,58,168,138,26,87,237,91,103,97,147,97,179,102,229,105,83,111,35,118,39,133,229,73,102,86,18,91,187,95,94,106,168,107,174,111,202,111,105,115,89,133,241,138,46,152,244,113,175,116,242,123,136,133,137,133,47,153,150,86,186,119,98,122,98,126,234,135,41,59,216,106,106,126,253,127,241,133,83,139,54,81,248,147,224,149,72,91,44,148,103,151,127,139,106,152,60,0,42,0,119,92,115,112,164,116,243,97,60,0,42,0,34,107,191,114,83,107,5,157,85,62,77,157,190,86,253,97,126,115,68,145,97,107,153,139,155,140,105,154,60,0,42,0,175,115,216,92,57,109,223,114,199,144,83,104,65,131,207,91,89,125,8,132,17,132,200,150,132,125,166,127,134,140,110,146,62,149,28,87,27,91,240,91,180,111,51,127,161,73,27,150,176,116,114,140,112,147,110,149,110,158,235,124,111,126,88,143,54,148,228,149,31,155,219,116,9,77,60,0,42,0,19,127,32,66,233,125,12,101,60,0,42,0,123,94,66,89,146,128,80,89,166,91,36,85,98,99,99,109,163,109,201,112,163,96,153,104,21,113,154,85,155,85,72,93,12,97,219,99,25,110,234,117,70,119,45,144,7,59,10,59,101,113,77,116,98,140,54,111,19,118,245,105,169,156,208,100,163,111,199,155,231,133,0,156,60,0,42,0,163,119,60,0,42,0,15,102,44,102,100,131,90,90,219,96,189,109,13,150,212,104,153,107,103,119,119,132,111,119,189,149,60,0,42,0,246,95,81,109,161,104,132,153,26,88,62,110,63,116,66,155,27,153,73,126,75,143,157,75,50,159,60,0,42,0,246,155,60,0,42,0,232,139,210,79,49,80,2,87,141,99,247,109,29,113,183,110,65,97,232,137,226,138,60,0,42,0,223,93,53,56,147,128,65,136,82,131,26,103,67,88,76,97,59,59,60,0,42,0,135,118,95,80,240,81,164,85,45,88,147,90,50,93,168,95,246,96,95,110,141,150,195,158,196,158,123,105,76,113,93,116,95,132,81,144,61,149,180,88,98,111,90,115,193,123,202,123,78,130,87,135,191,113,156,116,251,138,64,118,250,120,127,65,84,122,96,147,45,153,199,156,39,124,229,135,249,151,170,141,28,154,4,148,9,156,100,81,81,156,236,157,60,0,42,0,51,96,77,96,190,112,186,91,67,102,68,102,91,89,14,140,76,94,100,138,128,113,32,68,10,139,206,106,60,0,42,0,48,97,42,58,201,110,165,105,157,118,194,102,164,147,169,118,60,0,42,0,40,126,60,0,42,0,255,83,61,84,77,84,116,112,112,143,196,84,7,138,216,112,227,142,200,99,57,110,34,113,97,120,62,140,101,216,32,220,55,143,168,133,103,147,157,86,95,143,60,0,42,0,220,78,24,95,133,89,162,126,48,84,143,91,111,108,146,115,174,126,243,149,150,91,211,108,172,87,2,90,42,109,209,122,122,66,5,125,240,130,121,134,245,92,100,109,24,125,195,127,62,128,109,131,84,120,45,125,57,140,63,158,49,110,228,122,160,124,28,146,142,149,139,125,221,127,82,132,83,132,60,140,66,111,96,216,6,223,119,146,131,151,95,155,208,146,75,95,16,151,123,133,31,151,59,157,201,158,80,216,15,221,204,158,60,0,42,0,78,102,52,59,202,85,60,0,42,0,167,139,12,138,167,149,148,100,139,111,146,111,190,146,194,149,40,155,60,0,39,0,208,253,39,0,16,49,60,0,42,0,12,78,74,216,102,222,165,139,251,81,9,82,253,83,101,153,105,78,15,82,58,103,145,115,140,128,62,87,246,119,33,158,133,103,168,130,173,84,235,89,94,82,39,85,236,89,80,92,239,121,4,123,249,143,226,152,250,87,233,126,158,85,70,93,71,93,103,101,30,103,132,114,83,123,9,127,77,141,227,82,216,85,120,117,24,122,225,141,251,141,238,156,223,80,67,216,59,223,196,107,149,123,136,146,48,86,227,105,127,117,61,122,221,125,237,137,235,140,184,142,81,159,188,88,95,106,192,111,163,116,77,122,36,147,202,100,239,120,168,121,10,124,62,126,129,127,64,137,247,140,174,150,197,106,45,128,95,142,222,150,79,139,63,145,242,151,143,157,100,139,22,148,81,153,106,118,139,142,191,151,196,157,78,159,135,127,71,148,64,134,137,137,89,148,79,159,136,127,4,158,138,137,60,0,42,0,188,78,202,83,11,79,9,84,167,126,115,83,140,92,118,95,227,95,129,103,114,108,128,118,159,78,118,79,216,139,145,148,125,83,222,89,37,96,228,114,198,144,228,99,190,117,141,118,8,123,26,125,10,129,152,71,110,80,89,83,180,94,114,59,15,113,217,137,59,140,202,53,216,104,82,110,198,150,73,88,201,90,49,97,34,98,107,105,117,105,155,107,140,141,145,143,201,105,36,128,140,129,186,132,161,146,241,53,131,100,87,111,32,118,157,121,191,123,22,142,97,158,175,93,118,106,200,111,64,133,143,135,47,143,238,100,157,106,122,133,80,142,83,147,201,133,75,137,101,130,77,124,90,143,246,147,237,76,53,151,186,157,209,157,230,150,231,150,60,0,42,0,224,81,241,93,46,78,128,89,177,114,242,108,110,134,36,99,142,99,126,156,126,94,184,57,31,98,24,146,116,93,130,158,98,155,160,100,224,100,86,122,227,135,85,155,60,0,42,0,149,46,80,95,81,95,225,101,161,139,176,139,14,79,170,126,86,87,147,89,204,95,128,98,66,82,99,91,176,130,69,150,220,84,141,87,220,92,226,101,14,109,78,109,0,125,13,131,8,138,100,82,18,125,231,126,36,131,96,131,202,137,24,138,72,80,194,91,196,91,49,56,155,95,77,57,184,96,227,101,158,104,8,110,109,121,72,88,206,96,209,62,0,68,238,129,126,81,245,117,153,125,106,132,7,133,218,136,168,102,3,111,8,111,41,122,74,122,223,132,0,137,139,138,253,141,155,150,1,151,62,155,154,156,169,102,55,122,197,138,171,156,128,81,145,82,193,102,68,122,251,154,140,86,149,106,223,111,125,127,138,133,172,137,181,106,4,62,186,133,75,157,76,159,251,97,96,118,103,122,75,126,165,154,218,155,49,112,124,126,14,134,102,216,73,221,64,156,46,134,61,151,54,156,63,156,59,134,109,156,101,154,60,0,42,0,189,78,45,106,237,94,60,0,42,0,160,82,107,78,57,89,61,79,62,89,115,79,184,98,193,98,199,108,98,62,183,103,224,107,67,109,200,115,4,131,230,143,201,87,182,91,121,109,194,117,156,104,51,123,30,128,136,136,162,80,51,115,207,141,67,216,162,222,140,114,117,129,109,132,107,146,9,86,127,146,83,149,109,140,145,140,103,216,155,221,181,147,82,69,154,158,60,0,42,0,63,87,230,95,116,98,207,144,10,85,93,96,90,131,223,144,27,98,162,131,215,148,30,98,241,134,183,136,138,152,150,59,250,134,204,136,242,141,130,151,4,153,207,146,44,152,48,152,54,157,74,157,60,0,42,0,50,117,238,78,172,92,218,83,190,115,219,128,154,101,62,141,190,148,71,80,125,90,166,95,157,101,53,105,200,140,64,146,142,105,218,105,21,118,159,106,60,0,42,0,247,78,126,154,182,103,75,216,76,220,193,90,79,94,162,105,249,80,60,122,213,153,60,0,42,0,216,124,60,0,42,0,150,117,54,150,134,118,165,99,178,99,79,216,143,221,206,117,248,121,136,85,38,88,152,90,237,99,4,105,93,110,59,129,232,131,87,136,142,150,223,85,197,90,111,113,200,64,45,122,84,135,209,100,100,118,47,139,155,157,60,0,42,0,105,83,106,83,81,91,16,92,166,139,130,130,38,82,39,82,171,82,138,92,60,82,26,53,188,82,5,102,112,103,140,117,54,54,195,54,238,98,1,109,211,126,34,80,64,104,113,136,16,138,252,143,124,80,85,90,40,93,119,99,173,131,145,80,188,85,23,58,57,64,80,125,92,125,186,136,137,152,101,93,41,58,108,105,118,105,208,110,107,119,192,123,16,135,77,135,112,138,99,146,93,155,42,98,164,105,163,120,237,122,91,216,116,221,146,156,84,111,175,127,245,132,177,138,21,142,138,151,111,94,123,147,154,155,192,93,237,106,30,136,24,136,61,136,60,0,42,0,208,89,209,107,142,90,227,137,231,137,247,152,158,106,60,0,42,0,47,78,203,78,36,84,149,92,57,56,142,94,18,98,70,92,74,92,160,115,165,130,76,117,77,117,165,117,14,120,235,139,31,80,136,96,167,134,120,136,163,95,58,88,80,105,62,116,246,134,151,114,161,138,177,154,106,155,47,137,133,147,164,142,60,0,42,0,93,104,60,0,42,0,164,78,125,130,129,130,227,89,7,90,231,92,71,109,202,144,132,154,246,128,45,131,46,131,18,105,38,113,223,134,228,141,236,80,4,86,68,216,237,223,96,134,155,156,12,91,149,93,163,93,141,97,134,111,160,129,203,113,178,129,73,133,1,121,90,122,171,155,65,157,106,158,37,124,237,135,71,143,14,148,205,157,85,154,230,157,238,157,60,0,42,0,66,59,235,129,210,137,124,79,165,79,84,96,34,99,225,114,222,126,122,153,65,99,72,102,196,112,142,118,235,119,26,129,240,148,5,100,107,110,94,125,127,82,107,101,108,110,77,113,115,129,203,140,229,80,119,100,158,102,11,142,120,146,3,153,12,81,139,82,186,95,159,100,185,100,188,95,191,97,125,101,127,101,222,113,52,127,166,150,210,102,172,116,239,119,166,118,220,135,115,126,81,139,66,91,112,58,92,216,136,220,42,101,90,112,78,156,60,0,42,0,235,83,76,84,228,92,13,99,6,138,211,115,140,122,127,143,131,143,78,101,89,101,150,122,62,60,216,110,3,143,2,86,38,86,160,101,22,111,117,145,77,86,160,93,80,111,109,86,19,91,101,115,224,133,173,141,78,143,174,145,101,139,45,59,173,118,194,145,60,0,42,0,100,157,245,106,144,126,60,0,42,0,41,78,252,82,160,126,59,103,94,114,118,122,250,124,32,158,254,124,115,141,99,216,202,220,4,150,126,85,194,99,234,99,27,132,235,99,233,156,78,100,27,106,15,155,46,155,60,0,42,0,93,78,69,78,70,78,99,78,122,89,120,112,150,115,15,130,237,151,36,125,82,145,121,149,238,151,60,0,42,0,27,83,231,101,169,62,252,129,142,84,154,117,146,65,233,103,254,103,3,80,68,99,85,104,19,83,169,83,81,101,168,90,49,92,196,94,5,130,230,80,207,94,208,94,102,97,167,107,107,158,10,130,54,83,230,155,148,158,104,159,242,157,60,0,42,0,99,108,102,103,13,107,60,0,42,0,11,98,120,89,22,92,117,94,90,87,124,107,244,149,191,81,20,98,170,115,169,128,112,130,230,89,231,89,124,81,209,118,66,80,5,88,228,96,116,59,15,115,58,123,92,140,84,110,75,114,4,127,197,131,250,131,147,149,27,100,55,105,62,105,78,113,141,114,74,116,138,120,35,127,76,132,99,140,227,118,119,119,139,123,185,132,43,106,158,113,216,125,163,156,253,156,99,158,184,113,86,216,93,220,239,123,17,126,81,133,115,133,113,130,48,153,162,153,137,158,16,112,172,151,175,151,210,156,27,121,32,67,184,137,115,157,56,112,39,148,252,106,178,107,188,157,192,151,57,156,207,86,67,134,111,148,201,151,60,0,42,0,221,86,227,98,167,103,237,79,236,103,57,80,56,99,97,99,21,123,39,131,207,81,106,82,152,104,192,104,63,88,192,99,195,99,28,105,27,110,85,110,81,119,119,120,67,138,15,149,63,95,149,102,80,116,103,123,128,123,120,125,229,136,43,140,188,141,41,98,44,98,53,58,177,120,9,81,230,127,191,100,162,106,77,216,45,223,7,139,71,142,188,119,6,121,33,124,198,133,71,137,73,137,45,139,109,126,11,155,120,158,61,112,18,136,23,148,14,156,151,82,123,158,91,124,126,139,124,158,122,137,60,0,42,0,193,137,246,78,139,137,111,153,81,82,250,94,10,109,110,114,49,141,244,79,99,82,43,104,167,109,212,115,48,130,80,131,101,80,113,82,164,95,16,110,15,140,252,145,203,91,133,110,246,129,184,136,245,141,212,101,87,105,253,107,82,216,227,221,113,129,101,132,206,140,116,146,46,149,237,80,52,58,151,105,56,111,141,82,142,82,78,61,151,111,173,123,203,124,42,133,211,138,228,140,157,141,16,142,58,142,146,82,148,82,235,138,251,146,30,153,183,119,245,120,166,133,185,135,115,147,117,147,246,100,250,111,93,126,4,60,181,137,233,147,51,112,102,130,124,139,94,143,49,148,81,148,82,148,108,148,115,148,60,0,42,0,69,95,185,88,122,106,0,121,177,107,60,0,42,0,254,93,202,78,164,101,133,148,83,81,209,145,210,145,37,109,220,119,212,137,208,87,210,115,31,125,85,131,127,136,205,96,59,88,75,123,255,145,156,93,118,158,197,158,95,137,60,0,42,0,197,78,61,92,173,79,122,83,249,93,39,125,7,88,235,131,197,80,170,83,40,140,38,149,228,90,209,94,12,111,225,118,202,125,145,153,255,105,126,116,243,132,24,81,38,147,57,139,73,153,60,0,42,0,18,79,164,82,178,82,151,89,131,103,209,143,219,143,193,82,85,109,73,102,75,102,120,109,236,112,105,131,70,141,43,85,14,116,114,121,50,144,214,91,34,100,141,110,129,121,25,127,115,151,144,88,55,58,16,59,156,102,104,116,248,80,218,81,79,107,163,107,208,137,100,86,28,59,197,111,161,116,9,126,238,140,141,86,39,91,242,59,220,111,252,113,182,116,206,133,178,137,16,141,125,159,60,0,42,0,27,120,59,116,215,88,60,0,42,0,95,108,220,89,6,92,70,109,85,117,51,131,71,140,7,92,122,117,65,132,106,100,222,127,245,80,63,111,128,135,195,88,48,127,127,106,173,107,145,133,191,135,201,156,133,117,19,121,134,117,110,126,193,151,66,156,60,0,42,0,178,139,86,89,104,104,139,80,104,89,139,132,108,89,243,105,78,115,153,129,35,133,41,128,67,66,27,139,92,152,60,0,42,0,30,83,32,83,5,89,28,95,26,109,219,126,77,150,54,95,115,125,182,136,229,82,113,145,121,93,126,100,240,110,74,95,77,216,166,222,159,114,225,124,232,124,164,145,61,139,172,145,60,0,42,0,98,103,228,106,60,0,42,0,85,87,89,87,224,93,172,78,254,108,207,126,176,78,212,121,14,131,135,109,74,131,91,90,202,96,204,101,205,101,4,115,76,125,150,131,118,102,9,122,72,129,70,131,193,131,91,119,179,124,147,125,79,132,98,81,190,124,89,128,184,156,91,157,232,155,129,157,132,157,150,158,49,159,90,154,160,158,60,0,42,0,149,78,60,78,45,82,43,54,83,87,145,91,107,108,49,150,108,108,188,128,68,82,125,122,136,152,111,102,26,152,6,81,92,94,172,97,187,102,219,113,159,116,56,152,188,97,165,116,252,135,24,71,102,139,60,0,42,0,140,89,192,81,42,95,132,95,211,79,65,216,202,221,68,109,235,128,243,143,30,80,200,81,51,95,145,95,201,117,222,122,89,90,103,90,113,104,183,104,232,109,27,129,21,144,100,216,213,221,223,122,217,117,231,122,83,151,185,80,108,101,12,59,235,122,86,151,131,88,77,115,169,138,1,142,89,151,124,71,90,151,92,149,92,151,212,102,234,111,30,112,225,147,246,122,248,122,60,0,42,0,120,106,221,113,60,0,42,0,229,81,31,82,133,98,10,83,69,92,216,98,195,108,217,114,121,154,244,130,54,99,189,117,192,117,23,119,32,120,93,127,53,90,110,90,12,93,172,99,174,104,186,109,113,150,16,105,26,116,82,129,249,131,132,141,212,141,20,149,206,150,77,130,27,135,254,136,24,142,25,142,230,146,210,153,136,155,33,157,160,151,171,151,139,157,60,0,42,0,90,216,81,221,64,92,50,54,230,108,183,79,202,114,84,104,233,107,121,85,69,90,215,109,23,113,8,105,241,107,104,110,202,131,249,144,145,114,2,143,234,80,183,124,252,141,202,138,156,141,185,142,176,149,88,106,139,106,246,153,212,76,89,157,107,142,116,157,200,93,170,157,28,134,51,159,103,154,60,0,42,0,128,84,6,95,174,108,62,78,25,99,233,119,146,131,7,105,137,105,152,105,101,123,131,159,159,132,101,128,9,130,61,142,231,100,95,159,248,106,5,107,60,0,42,0,229,83,232,93,108,78,234,93,181,139,119,81,214,89,160,92,7,96,16,96,26,96,210,98,224,98,48,109,173,144,27,102,107,107,172,112,227,130,156,148,241,79,40,80,54,80,163,81,103,82,236,121,231,87,254,87,231,96,110,99,148,124,31,128,183,134,147,136,139,114,78,138,217,141,221,141,211,152,102,140,69,146,47,149,224,91,51,97,173,122,90,128,97,134,135,82,238,82,102,92,30,142,207,153,201,88,197,97,218,100,189,111,182,122,46,66,248,146,148,155,104,92,125,144,182,152,151,140,52,124,134,142,181,145,252,97,59,148,44,59,60,0,42,0,32,114,119,137,60,0,42,0,88,86,133,100,167,100,105,92,123,142,60,0,42,0,133,78,64,216,12,221,82,91,83,91,179,81,20,82,18,108,192,139,137,98,122,108,33,95,72,59,236,108,166,115,168,115,181,130,23,99,207,115,166,117,4,120,221,126,115,134,201,137,20,80,84,99,46,107,151,134,27,93,152,99,141,101,119,104,140,107,144,137,214,137,35,138,125,141,185,141,72,72,149,80,165,83,126,59,51,113,85,125,118,125,154,137,137,141,43,144,12,146,242,55,130,82,34,53,234,82,116,116,50,140,195,153,165,93,176,97,166,113,52,114,87,115,26,118,2,157,3,157,113,86,160,97,91,106,92,106,93,133,104,133,53,114,196,129,98,149,232,135,233,135,107,92,78,139,118,142,119,142,140,157,55,83,188,86,17,114,205,119,186,137,13,148,29,148,29,114,252,137,79,95,4,98,43,101,131,115,226,157,20,107,225,119,163,159,99,216,28,220,156,140,169,142,129,148,60,0,42,0,226,89,31,90,80,99,147,109,6,113,39,129,249,116,67,158,208,136,236,82,250,72,76,149,184,147,81,157,43,148,50,136,60,0,42,0,119,83,95,84,35,94,205,87,114,99,228,131,41,149,247,61,8,147,199,129,60,0,42,0,181,82,70,89,251,93,38,80,204,82,74,104,247,114,226,126,189,150,195,109,55,119,74,119,109,125,101,127,173,69,4,145,96,119,121,125,203,150,236,152,70,216,64,220,123,97,40,133,11,153,103,115,51,126,130,127,60,0,42,0,155,81,66,216,213,220,27,84,71,87,172,54,110,108,240,89,205,142,167,148,144,134,128,136,126,104,178,118,153,131,204,131,30,146,133,120,184,118,185,118,160,137,129,146,158,146,170,156,135,158,85,147,182,155,143,158,149,158,60,0,42,0,65,84,202,79,89,63,200,87,251,92,67,99,90,109,225,144,86,150,130,153,143,154,165,53,89,102,12,113,250,115,94,216,122,221,122,52,222,104,111,117,227,122,102,55,249,65,152,123,159,123,32,135,96,216,24,223,1,81,89,53,21,153,239,91,207,97,199,113,236,111,255,153,84,157,88,157,8,101,81,69,31,101,60,0,42,0,134,46,130,81,139,81,112,87,67,98,219,87,69,125,201,153,235,153,15,134,20,134,60,0,42,0,143,81,231,86,160,56,194,108,133,112,176,79,175,112,229,143,123,109,8,144,241,112,155,72,152,122,142,152,90,113,151,125,210,80,91,113,178,113,131,111,39,137,60,0,39,0,208,253,39,0,17,49,60,0,42,0,3,78,143,108,201,143,187,89,210,103,27,80,196,81,22,104,100,104,56,90,189,96,26,98,124,104,210,109,234,144,50,101,31,103,242,104,58,107,102,60,11,132,227,134,219,80,1,86,125,97,191,105,6,111,192,125,124,97,237,105,84,216,80,222,198,138,255,138,11,151,233,69,74,142,36,59,76,155,83,73,218,147,136,157,60,0,42,0,147,78,80,159,59,87,144,92,147,92,239,95,157,78,118,81,71,89,137,101,103,107,65,117,65,121,181,128,170,130,223,79,167,117,71,121,72,121,210,122,88,82,138,101,194,101,6,128,16,129,145,134,148,134,154,134,128,152,252,87,14,93,58,94,145,99,199,109,9,115,102,117,194,141,221,142,238,145,144,154,145,154,202,104,203,104,38,116,42,116,1,132,21,132,244,134,45,97,129,120,149,120,122,121,197,68,28,149,14,152,215,101,184,124,165,125,166,125,168,125,235,68,29,135,30,135,63,155,74,159,130,116,17,142,165,121,114,133,33,147,175,156,224,97,221,111,105,216,198,221,177,106,192,106,82,216,140,222,205,129,196,133,14,154,15,154,205,156,7,76,213,155,120,157,128,157,146,158,131,126,105,130,4,134,16,136,16,155,45,156,130,115,161,158,60,0,42,0,94,78,1,79,122,92,130,92,148,144,47,84,71,84,94,103,152,115,192,118,145,130,24,85,72,140,119,141,83,85,84,85,77,90,95,85,238,126,117,102,232,104,14,65,174,125,186,125,236,138,217,149,60,0,42,0,20,108,171,139,212,95,23,108,84,108,3,95,125,108,245,119,196,143,110,84,227,108,129,112,245,118,158,130,160,84,81,89,12,120,20,104,43,107,35,108,22,138,45,85,33,89,196,104,70,110,71,110,155,120,122,132,86,100,163,102,182,120,80,86,135,97,8,117,94,216,88,220,104,86,169,97,220,120,231,120,233,120,141,70,74,127,255,135,28,159,60,0,42,0,60,127,15,110,213,125,4,137,167,135,47,124,49,124,79,124,60,0,42,0,144,99,92,132,60,0,42,0,228,98,60,0,42,0,210,141,96,145,60,0,42,0,54,87,190,81,228,52,34,94,112,96,61,109,142,107,72,120,24,97,194,154,60,0,42,0,144,151,60,0,42,0,127,118,71,216,144,221,167,73,122,128,60,0,42,0,20,78,60,0,42,0,7,82,190,89,47,96,39,83,131,122,196,144,67,216,181,220,143,96,8,99,47,109,50,57,236,96,193,109,33,123,28,97,234,134,102,57,5,103,167,123,193,125,50,149,69,216,36,220,203,123,37,142,85,122,101,147,210,133,220,155,17,148,202,122,78,216,58,220,60,0,42,0,198,130,63,80,171,90,97,124,60,0,42,0,132,96,87,120,251,144,106,93,247,141,129,82,114,101,195,107,13,142,33,145,37,145,57,149,157,88,29,152,189,88,103,94,75,216,227,223,71,106,198,113,50,127,185,154,253,120,107,147,108,147,81,126,172,141,122,142,48,148,60,0,42,0,84,78,168,79,101,104,77,131,94,131,90,120,172,85,236,131,209,80,47,140,58,86,246,90,111,55,148,97,146,151,53,106,75,106,78,133,68,118,9,64,167,119,4,121,151,67,171,141,238,133,8,148,189,151,102,152,92,216,13,221,60,0,42,0,231,93,229,145,0,97,220,154,60,0,42,0,207,79,238,139,237,92,41,94,141,122,87,150,187,107,216,127,154,138,218,154,250,80,172,100,189,100,152,151,210,151,197,122,249,127,89,139,136,142,129,54,60,0,42,0,215,105,158,114,60,0,42,0,0,52,24,78,32,78,67,216,11,220,117,87,177,54,203,60,177,144,88,96,203,121,204,121,175,134,157,90,120,105,41,132,89,158,205,123,231,125,242,132,117,135,80,122,165,141,2,74,197,156,215,135,166,151,167,151,12,156,13,156,150,157,36,136,157,159,60,0,42,0,244,83,218,86,79,98,176,114,140,115,83,108,141,128,66,108,108,134,197,108,181,66,111,134,197,79,211,137,4,138,5,138,75,145,211,145,18,85,151,55,57,57,93,59,87,109,12,125,218,145,130,104,143,107,236,107,3,116,141,131,71,141,14,144,17,144,55,93,239,93,98,57,30,110,109,110,179,118,218,118,240,93,106,113,127,125,247,134,216,136,82,144,233,137,213,140,134,116,100,135,182,146,148,145,130,155,61,159,196,155,61,156,60,0,42,0,29,100,215,124,60,0,42,0,251,145,18,134,60,0,42,0,67,83,223,78,49,87,50,87,119,89,102,98,88,108,33,150,101,79,141,92,68,103,103,108,138,130,193,143,38,107,233,116,228,129,62,131,142,148,234,98,117,114,129,124,91,81,173,96,56,140,197,148,92,90,111,91,125,114,250,145,148,99,136,134,38,140,6,146,195,150,201,80,6,97,126,123,91,146,158,154,80,158,115,97,52,100,129,100,158,123,208,138,119,144,48,137,25,139,69,152,182,106,16,101,207,106,61,124,110,157,69,91,19,101,43,154,17,101,29,155,28,155,119,58,100,124,198,151,60,0,42,0,241,78,146,92,244,95,114,98,209,98,77,82,164,148,108,107,84,134,177,148,179,148,174,99,225,142,138,90,245,99,16,146,108,151,87,146,152,88,169,105,157,123,173,146,91,111,92,111,172,127,108,106,65,133,34,147,212,158,218,158,243,111,26,154,29,154,74,112,44,156,60,0,42,0,245,81,183,128,69,109,250,109,37,129,219,85,112,93,207,105,129,129,56,135,99,144,52,140,49,127,126,126,116,139,60,0,42,0,32,107,11,82,56,52,161,130,212,79,41,80,147,96,28,131,17,88,148,80,76,93,200,104,32,105,74,97,152,118,121,88,30,55,251,55,73,107,170,125,168,132,231,105,207,123,51,133,36,143,25,81,223,123,205,88,52,126,69,73,28,156,60,0,42,0,207,122,134,147,242,147,86,124,83,148,60,0,42,0,178,78,181,79,166,148,126,136,142,154,135,90,90,93,61,107,133,125,155,138,148,93,170,137,73,152,248,153,188,155,244,91,60,0,42,0,38,54,136,94,129,58,169,130,185,130,193,87,225,115,230,121,57,128,153,134,102,99,52,116,57,116,230,131,243,131,25,146,194,150,228,82,234,85,192,90,177,110,189,121,114,151,108,97,89,86,179,101,249,156,196,97,82,58,210,100,191,111,61,118,147,135,195,97,142,106,53,155,4,136,109,157,60,0,42,0,69,87,17,102,9,123,171,104,126,141,209,91,19,149,221,91,226,91,223,146,188,135,60,0,42,0,34,84,35,84,8,57,139,98,129,108,26,85,255,99,227,131,100,216,136,220,7,100,179,100,28,66,25,112,253,133,60,0,42,0,91,84,21,98,23,98,168,101,170,103,177,115,140,127,151,127,16,115,196,141,12,105,84,129,198,85,172,110,22,149,136,93,39,98,205,105,68,114,114,116,171,127,35,135,53,149,236,123,6,147,18,139,76,142,106,149,97,142,151,147,216,147,60,0,42,0,44,78,55,95,58,95,153,88,241,90,18,111,47,106,3,133,55,133,187,88,25,91,231,94,163,106,70,114,148,133,98,130,32,134,60,0,42,0,162,98,159,127,54,100,165,127,143,88,72,126,65,137,102,126,249,147,60,0,42,0,157,112,52,85,151,113,187,127,60,0,42,0,244,85,71,115,60,0,42,0,197,114,81,151,82,151,34,108,123,143,62,80,127,83,10,87,229,87,200,91,43,108,248,109,5,110,236,144,190,80,59,135,21,143,29,74,173,156,75,148,60,0,42,0,29,89,32,117,96,82,205,82,197,96,145,107,116,102,254,104,48,108,146,102,93,132,8,106,207,100,206,100,243,59,160,106,229,158,60,0,42,0,119,152,216,130,247,139,188,94,3,152,206,94,0,111,235,61,203,138,190,106,60,0,42,0,134,94,202,81,133,99,184,107,131,120,144,123,88,151,118,97,216,120,236,120,68,127,38,139,60,0,42,0,88,120,230,106,60,0,42,0,58,83,242,102,57,79,73,79,36,83,150,92,206,139,113,154,101,87,72,92,168,92,180,92,190,98,57,150,85,59,64,109,224,128,91,121,64,83,54,125,198,134,170,136,175,142,65,123,172,124,208,134,88,138,139,141,135,93,136,97,12,66,198,153,122,101,179,138,124,149,200,153,185,158,247,154,124,155,168,141,175,158,176,137,192,142,180,158,226,158,187,137,69,154,56,156,75,156,60,0,42,0,98,79,172,82,170,101,16,103,202,128,50,158,237,109,71,125,209,127,32,110,195,131,229,142,75,132,82,216,14,222,150,116,86,133,29,157,169,116,242,120,182,135,191,119,221,135,41,159,57,55,194,95,72,112,39,134,53,98,11,107,13,108,222,129,111,118,103,124,55,136,98,136,163,142,60,136,122,148,28,158,60,0,42,0,214,83,216,122,54,90,83,138,236,122,122,135,139,159,114,159,60,0,42,0,186,83,187,83,30,82,127,84,38,60,31,85,29,128,18,150,209,137,163,141,180,149,174,158,195,149,1,159,183,137,60,0,42,0,242,143,80,136,60,0,42,0,58,127,25,150,155,132,60,0,42,0,56,118,60,0,42,0,116,83,123,83,198,87,5,93,201,91,171,96,192,150,55,116,94,120,110,120,21,150,89,88,9,100,181,118,143,120,74,158,40,97,183,105,167,88,100,97,186,120,187,120,158,141,233,113,203,149,16,121,213,149,114,157,77,112,45,121,60,0,42,0,209,92,46,95,110,96,155,96,8,87,15,87,236,104,233,153,9,148,60,0,42,0,176,52,104,81,67,103,122,79,224,139,254,89,201,108,36,109,243,98,119,114,67,131,129,143,115,85,226,87,88,90,211,96,202,117,66,120,232,148,118,110,136,114,76,123,95,125,60,100,84,116,114,132,224,137,110,138,231,141,7,143,55,135,147,146,41,106,33,142,19,126,155,145,200,156,8,155,33,154,1,156,73,91,207,93,100,159,10,107,167,152,56,136,116,152,60,0,42,0,71,216,232,223,173,114,172,114,113,108,78,117,199,112,251,126,163,125,71,134,60,0,42,0,157,82,56,82,118,114,231,82,207,151,248,82,60,0,42,0,38,105,126,105,206,149,60,0,42,0,11,89,247,86,238,92,33,144,60,0,42,0,173,91,44,94,138,58,163,127,164,127,217,136,224,136,60,0,42,0,142,130,20,83,60,0,42,0,109,83,134,91,155,144,119,122,121,122,21,131,79,104,67,65,59,123,121,141,248,96,42,113,45,113,60,116,71,123,60,130,233,134,236,134,70,216,131,221,98,113,88,119,235,141,142,146,143,119,174,122,29,81,140,97,105,106,154,116,202,116,198,122,209,133,237,133,215,116,60,0,42,0,141,113,60,0,39,0,208,253,39,0,18,49,60,0,42,0,21,89,110,81,218,95,80,108,127,137,128,137,56,84,12,94,113,98,120,98,101,83,20,102,144,103,120,122,184,128,185,128,217,79,134,95,56,96,83,96,123,153,15,85,90,89,211,54,86,92,111,96,149,96,37,108,96,109,122,114,246,114,215,144,61,85,137,96,220,96,127,99,94,102,120,104,55,107,197,109,239,112,1,113,8,113,11,116,82,120,131,131,101,141,248,145,146,80,193,96,112,102,115,102,100,60,31,113,44,113,128,114,78,119,0,122,158,124,213,127,62,130,229,131,128,83,96,93,175,95,170,110,153,118,14,145,33,149,214,80,189,105,85,113,132,113,136,113,153,113,198,125,160,132,37,135,104,140,15,153,59,86,79,86,6,91,9,91,93,111,183,63,28,118,206,120,157,129,222,81,65,216,21,222,178,93,153,97,27,59,40,106,64,106,185,113,186,113,187,113,184,122,24,126,178,127,133,135,135,135,43,147,70,60,232,113,111,64,166,119,203,135,63,140,64,140,111,140,149,140,230,124,101,126,223,150,87,157,70,139,175,145,237,147,199,93,230,102,20,114,167,114,249,137,181,150,69,145,253,137,55,159,53,136,2,158,255,137,116,148,60,0,42,0,96,78,203,144,45,94,210,127,173,136,203,137,179,90,58,105,4,56,141,93,29,111,181,132,198,132,161,137,152,141,226,105,87,58,132,106,130,133,176,150,53,139,180,147,43,151,219,156,193,152,49,154,61,154,114,137,60,156,104,154,60,0,42,0,178,103,23,109,186,115,153,95,227,148,156,85,34,146,72,132,120,132,104,146,105,146,99,92,7,111,152,97,240,132,191,102,86,107,240,138,208,88,167,121,48,126,17,139,226,135,93,142,189,116,205,86,90,156,214,119,167,142,60,0,42,0,56,83,76,83,15,98,67,92,251,124,105,153,108,84,229,95,44,96,253,119,198,126,194,79,165,84,68,96,251,118,56,57,97,59,47,107,228,126,228,144,48,125,243,145,11,150,186,85,30,105,214,127,3,130,4,130,135,141,64,97,202,110,140,125,105,141,141,88,130,113,148,114,138,121,39,122,153,150,159,150,95,111,164,137,49,98,153,111,42,66,110,133,214,158,50,98,246,120,142,75,105,134,60,153,41,155,107,126,177,86,223,149,13,62,60,151,109,92,75,136,60,0,42,0,19,110,114,106,160,114,2,121,209,155,60,0,42,0,114,134,168,117,126,134,32,53,58,140,132,80,149,149,70,113,117,113,172,152,92,216,205,221,142,119,102,135,21,156,60,0,42,0,35,83,160,79,206,114,224,79,225,92,217,103,160,112,237,114,253,92,218,112,249,114,232,115,92,150,86,120,107,121,200,127,58,130,199,53,100,120,127,150,110,101,135,102,85,116,106,123,29,130,80,144,172,120,150,143,205,120,0,126,22,126,110,141,123,155,120,133,68,143,92,147,30,151,139,147,224,158,34,154,183,157,60,0,42,0,156,149,60,0,42,0,5,78,11,78,100,78,19,84,156,117,15,89,72,54,113,119,135,86,215,97,69,127,19,89,188,147,236,147,60,0,42,0,55,87,186,104,138,110,60,0,42,0,155,78,84,60,243,99,50,115,84,105,71,107,78,135,13,136,60,0,42,0,166,82,79,83,234,101,170,144,84,83,193,128,165,87,74,96,249,98,31,99,74,89,235,92,62,99,5,129,7,129,122,136,85,80,156,101,104,59,16,140,191,53,211,127,203,85,54,97,58,100,78,116,138,125,91,216,195,220,102,54,129,113,142,129,240,82,183,100,243,125,44,127,98,135,139,151,33,152,213,100,231,138,242,113,102,58,247,100,181,151,28,101,136,126,109,137,151,139,164,159,60,0,42,0,153,81,169,81,235,91,219,133,60,0,42,0,51,79,122,112,120,83,196,108,251,108,193,126,55,127,41,109,167,112,68,121,14,90,81,92,83,92,74,216,63,223,94,80,112,80,104,83,162,95,176,104,242,112,14,113,50,125,181,78,159,90,95,92,43,110,81,216,200,221,188,121,79,125,108,125,34,140,193,80,110,88,141,105,173,105,61,61,103,92,172,102,228,125,9,137,103,86,176,93,232,94,200,97,165,111,108,115,207,124,93,216,53,223,240,151,238,113,162,133,164,133,59,137,29,139,130,144,244,153,9,112,162,151,35,112,21,114,79,66,114,126,249,135,15,136,88,159,91,159,101,159,66,159,158,142,60,0,42,0,11,129,17,89,60,0,42,0,113,112,114,112,122,84,173,103,190,79,211,84,181,103,129,154,238,84,175,91,181,91,168,94,136,109,225,126,83,134,46,158,75,90,159,104,7,113,7,115,13,144,218,117,223,117,93,120,99,120,153,122,39,132,0,149,241,99,131,125,219,127,55,132,11,86,16,86,74,107,71,111,171,123,3,142,53,86,71,95,162,97,75,58,98,115,183,146,4,151,174,129,109,133,30,157,88,122,24,124,194,135,207,135,72,155,53,157,163,86,43,124,195,133,240,135,31,112,249,106,81,216,115,220,199,154,187,86,194,86,40,136,77,154,208,154,202,107,72,134,60,0,42,0,40,109,53,59,5,123,36,93,198,109,36,138,233,144,189,107,74,123,181,138,60,0,42,0,140,46,141,46,15,92,83,102,129,102,113,123,127,123,155,118,201,102,224,123,162,118,15,139,60,0,42,0,93,91,150,128,185,82,178,84,242,79,72,101,33,104,141,109,17,123,120,85,154,80,105,101,219,53,104,138,40,86,159,138,47,86,87,107,189,113,169,151,133,101,134,101,103,69,60,0,42,0,119,96,231,110,60,0,42,0,17,79,226,79,187,84,165,94,220,60,238,79,203,112,204,112,158,127,25,129,41,129,58,158,249,129,133,140,144,153,157,146,228,154,7,106,249,154,128,147,66,157,197,147,72,153,67,156,205,152,60,0,42,0,236,130,60,0,42,0,61,103,135,125,235,110,212,124,60,0,42,0,192,121,171,92,192,92,219,115,227,126,7,116,150,136,8,149,197,85,180,110,147,116,14,137,15,137,185,146,145,135,77,126,97,126,229,147,253,147,69,159,60,0,42,0,180,155,60,0,42,0,62,53,217,78,218,78,115,92,72,81,126,89,164,126,97,79,250,95,25,108,116,103,200,121,174,103,70,121,124,124,238,130,215,115,128,99,182,131,46,138,230,148,77,216,25,221,202,80,249,141,112,145,40,149,21,86,155,146,156,156,239,151,16,91,184,97,185,102,65,147,159,133,60,137,241,151,174,155,110,142,166,153,76,77,239,94,21,101,142,126,177,157,154,142,150,126,115,137,123,156,60,0,42,0,45,79,242,149,182,89,38,95,36,141,184,84,38,99,216,128,52,90,12,85,99,85,57,90,113,90,142,109,67,125,55,130,191,134,84,136,121,59,235,117,221,134,145,149,146,149,71,158,204,90,88,136,156,146,250,90,251,90,170,97,143,100,150,111,9,117,52,122,184,138,226,140,215,59,106,61,197,113,244,138,49,143,142,145,71,118,78,118,175,119,214,133,10,60,37,121,84,69,121,158,153,158,18,141,243,157,244,157,252,157,60,0,42,0,188,81,221,114,229,57,62,102,4,93,96,59,232,107,205,112,3,115,172,134,105,150,123,141,122,150,69,123,31,92,32,92,31,100,227,141,14,59,146,121,145,146,178,123,174,93,107,115,170,150,110,115,76,147,249,113,211,133,85,152,112,94,7,101,246,106,99,139,26,134,6,70,106,73,129,115,197,151,111,152,102,112,60,0,42,0,35,79,191,83,152,92,65,216,14,223,176,115,191,126,253,129,203,130,158,84,237,89,170,91,12,119,80,150,239,84,183,87,10,90,40,90,244,92,135,58,128,109,101,150,91,102,254,115,77,120,167,131,119,150,133,153,77,119,100,125,16,127,161,127,46,115,175,124,168,127,122,129,6,135,223,73,233,80,244,80,69,216,22,220,171,125,162,138,138,100,218,125,231,146,178,97,23,59,76,106,35,126,14,147,33,153,207,88,79,140,60,73,178,158,23,112,212,129,123,115,238,124,56,159,60,0,42,0,242,80,74,126,102,148,60,0,42,0,195,95,161,89,251,95,155,143,164,144,21,102,122,103,35,107,152,112,175,130,250,118,253,79,98,59,222,96,34,138,10,146,12,149,176,101,70,107,222,94,197,146,28,91,170,133,168,153,107,148,171,153,60,0,42,0,148,103,38,55,81,137,20,148,60,0,42,0,8,79,60,0,42,0,48,52,41,79,223,86,32,150,94,91,68,59,82,216,242,220,225,79,208,142,42,129,69,136,43,138,46,113,97,113,184,153,11,130,86,152,193,145,60,0,42,0,196,95,122,86,60,0,42,0,97,78,151,130,248,118,153,153,162,83,76,85,247,144,194,94,88,110,3,127,9,145,10,145,37,122,89,132,21,145,177,123,215,125,183,129,140,133,68,137,192,95,167,154,152,158,0,107,214,116,118,149,114,148,100,154,60,0,42,0,109,79,232,116,230,139,160,94,25,104,101,121,116,125,212,127,115,138,237,141,60,0,42,0,171,78,175,78,205,84,119,153,81,102,232,152,243,96,132,146,9,153,158,156,207,102,157,155,1,136,215,155,255,151,87,153,95,153,118,156,60,0,42,0,17,84,224,89,247,93,131,134,121,152,230,115,66,88,63,127,86,136,97,140,5,152,43,132,207,80,232,82,151,146,145,93,97,106,192,149,174,86,211,135,80,137,12,148,76,156,60,0,42,0,127,105,92,156,60,0,42,0,31,102,182,87,141,154,250,96,41,115,75,113,70,116,101,129,245,134,234,137,181,123,194,123,143,155,208,102,242,137,95,147,2,154,168,118,249,155,60,0,42,0,17,82,76,136,98,95,162,144,128,79,73,150,139,87,16,109,201,144,152,148,25,90,101,131,88,150,78,120,207,148,3,146,206,110,118,146,146,146,222,146,60,0,42,0,24,58,114,119,146,145,228,100,60,0,42,0,116,81,79,103,211,89,120,94,39,96,22,80,71,131,94,90,187,96,172,109,149,131,200,125,8,130,57,91,214,129,60,0,42,0,216,84,196,136,3,139,60,0,42,0,1,84,12,98,244,101,158,117,241,118,40,107,229,128,123,152,71,102,15,138,124,152,87,134,90,134,30,140,173,90,65,94,223,99,81,110,81,216,224,223,91,134,199,136,8,152,72,105,162,122,10,152,24,86,0,151,83,86,159,88,3,91,3,126,81,135,70,155,84,107,102,133,221,138,67,139,123,126,80,148,73,154,26,155,86,155,60,0,42,0,198,79,144,95,163,132,60,0,42,0,184,139,116,84,193,89,233,139,148,81,41,104,221,115,102,80,49,138,138,102,97,138,48,122,200,124,38,145,145,145,232,118,60,0,42,0,237,101,53,79,143,94,127,108,144,79,121,83,52,96,128,108,167,130,217,83,100,96,43,102,43,109,15,70,191,87,48,107,136,107,197,112,236,115,214,82,77,101,88,101,215,82,252,112,234,126,237,126,87,145,163,85,251,88,127,90,2,103,134,110,110,125,57,138,73,97,102,113,201,140,210,105,53,111,74,111,226,118,129,119,210,125,95,128,196,132,138,146,93,115,56,122,214,125,99,155,178,119,199,133,218,133,140,126,110,156,60,0,42,0,83,128,154,125,255,132,60,0,42,0,74,82,182,117,225,62,134,132,116,151,254,53,165,143,170,143,155,133,190,151,60,0,42,0,116,122,136,101,116,78,102,91,164,92,195,92,246,108,19,131,52,158,149,136,5,142,198,88,120,91,168,93,169,111,226,113,133,61,247,137,228,150,253,157,60,0,42,0,234,150,213,156,72,156,60,0,42,0,64,136,112,53,55,84,121,87,216,114,86,104,17,140,144,141,20,139,37,112,60,0,42,0,164,129,48,106,93,130,76,143,60,0,42,0,5,84,105,143,13,102,163,91,50,95,210,142,139,104,22,140,167,85,71,88,151,90,3,97,11,97,206,99,132,102,74,113,68,116,49,132,50,132,123,119,210,132,7,81,174,123,7,126,231,127,86,135,215,146,193,97,164,121,224,138,252,138,127,133,121,147,253,153,254,127,9,136,206,119,252,133,16,134,94,139,60,0,42,0,132,115,185,115,35,54,195,117,172,96,203,101,1,116,1,135,217,90,41,111,182,102,135,116,98,64,136,106,191,116,248,97,60,0,42,0,186,84,69,102,220,112,9,144,53,53,120,144,72,152,99,118,108,118,60,0,42,0,48,96,235,108,230,57,33,102,171,112,218,126,41,119,201,148,4,116,52,119,82,136,168,136,50,110,98,125,101,105,102,105,73,146,185,120,25,133,95,149,153,151,180,152,60,126,79,126,199,147,130,139,25,141,60,0,42,0,26,156,60,0,42,0,67,87,203,82,217,87,4,113,219,82,100,88,143,113,168,122,242,82,18,133,243,82,232,153,206,88,111,115,171,133,219,102,251,113,208,129,176,133,196,119,129,126,13,134,230,88,186,145,60,0,42,0,251,91,245,94,236,101,111,154,74,103,225,93,67,117,226,139,203,92,66,96,53,109,84,109,3,125,18,104,106,104,229,107,227,115,64,131,104,131,113,80,4,55,11,92,170,95,215,99,101,216,176,221,98,138,180,153,198,105,67,111,159,156,90,86,76,61,111,111,41,145,51,101,51,106,214,113,149,116,243,135,79,156,88,156,101,112,60,0,42,0,66,83,173,139,175,139,40,79,91,108,197,143,154,79,250,93,135,95,229,114,137,107,10,138,19,138,25,138,255,143,10,144,94,89,253,93,190,107,4,122,59,97,208,140,92,144,64,86,96,111,72,133,85,157,11,114,104,152,66,148,60,0,42,0,145,86,60,0,42,0,246,81,68,81,43,52,71,81,8,83,187,139,247,95,121,108,197,84,95,96,54,109,247,128,248,128,41,138,126,138,239,140,60,0,42,0,196,150,138,113,60,0,42,0,61,113,60,0,42,0,199,139,56,113,87,138,16,89,123,101,75,216,204,223,60,0,39,0,208,253,39,0,19,49,60,0,42,0,75,78,47,101,110,83,65,108,49,84,245,93,101,108,103,87,157,103,220,108,229,119,199,126,162,128,157,130,0,104,211,121,214,121,209,128,221,128,1,80,183,117,87,121,234,121,2,129,124,136,187,150,148,104,108,121,37,105,248,129,32,98,24,100,25,122,149,125,176,105,148,121,24,135,182,153,196,59,247,156,50,157,68,157,84,126,5,159,53,134,60,0,42,0,103,98,132,79,183,89,244,118,234,89,36,80,60,80,64,128,222,145,244,87,247,87,71,216,28,222,212,109,76,128,173,140,13,105,150,107,134,114,119,125,1,137,214,141,237,85,225,116,131,121,68,146,140,88,109,100,189,153,2,91,121,97,16,111,47,142,52,106,177,129,40,81,54,126,119,128,217,135,96,142,196,142,145,142,60,0,42,0,2,89,98,107,234,83,167,82,232,101,64,87,65,87,11,94,122,98,102,108,154,108,184,126,47,150,62,96,167,98,79,216,181,220,183,130,171,84,73,96,7,99,179,103,20,109,11,120,73,121,117,143,187,117,219,65,25,125,121,136,253,109,40,138,190,141,249,142,32,73,249,158,111,145,226,133,103,137,60,0,42,0,243,129,36,150,215,95,238,95,123,98,150,130,120,140,97,216,104,220,54,82,148,83,129,87,25,94,28,94,187,108,153,112,40,141,217,92,162,94,164,94,3,99,227,103,9,104,55,109,244,129,227,143,197,144,33,90,143,95,73,216,122,222,26,99,74,102,78,104,254,114,81,121,233,121,61,141,126,143,95,150,127,78,107,80,64,216,183,222,157,95,1,58,183,99,189,104,86,105,24,115,100,117,212,117,242,121,247,121,146,122,41,125,208,127,159,136,160,136,215,137,218,148,55,158,130,80,68,216,118,223,59,93,88,95,122,102,222,110,227,117,237,134,253,142,152,154,216,91,204,94,49,100,205,110,26,122,107,123,110,127,241,141,10,143,39,149,201,150,134,88,70,216,57,220,239,110,76,111,144,117,186,67,253,136,159,137,140,138,141,146,95,94,132,97,111,100,171,113,58,122,251,125,45,68,163,129,239,137,234,140,44,142,213,146,243,100,216,101,4,112,228,153,25,157,149,82,229,97,219,106,73,122,69,66,178,135,9,54,49,55,235,97,242,100,4,141,205,106,198,116,246,137,239,155,41,121,81,140,45,154,58,154,71,154,147,142,217,157,85,148,82,140,60,0,42,0,234,81,231,79,148,95,34,139,60,0,42,0,78,98,18,84,175,98,83,89,19,99,228,103,251,103,243,84,103,80,179,85,248,99,35,110,66,105,132,82,99,100,182,118,29,106,240,137,187,118,71,139,68,159,71,159,60,0,42,0,45,103,52,117,248,149,187,134,225,148,96,113,80,114,152,149,154,123,43,128,88,147,87,139,60,0,42,0,143,83,195,98,242,130,40,119,31,120,41,100,138,156,157,156,55,142,147,155,186,155,98,69,60,0,42,0,77,78,121,112,200,139,164,84,222,103,5,104,184,112,177,91,196,117,177,134,80,138,62,100,160,110,168,105,94,216,10,222,5,151,161,145,60,0,42,0,7,135,251,85,236,90,110,144,60,0,42,0,135,83,152,98,125,107,250,119,19,120,119,124,116,134,242,84,209,87,89,59,141,124,96,85,138,96,98,102,99,102,111,59,169,136,132,143,134,85,240,134,95,138,253,65,42,140,178,153,122,100,18,143,212,120,25,143,184,146,153,143,196,135,158,86,43,139,58,139,191,155,77,143,129,139,139,139,60,0,42,0,5,128,125,78,107,85,23,149,135,121,109,141,54,137,117,137,60,0,42,0,217,143,216,103,89,109,219,109,25,144,28,106,106,111,23,133,103,158,197,135,38,72,211,157,60,0,42,0,64,119,87,132,60,0,42,0,90,99,139,101,142,101,88,100,184,105,29,69,75,159,103,216,115,220,60,0,42,0,133,91,161,106,60,0,42,0,132,122,89,146,60,0,42,0,58,80,38,120,181,80,232,91,53,118,60,0,42,0,8,89,130,124,60,0,42,0,75,79,138,148,177,89,246,93,219,98,45,102,196,118,215,145,65,85,74,146,203,153,188,122,99,147,189,118,60,0,42,0,42,114,126,98,188,108,117,116,3,66,60,0,42,0,236,83,70,81,207,139,155,103,151,87,164,112,227,114,117,141,10,123,129,128,208,101,249,104,110,67,84,138,103,113,105,127,7,66,135,128,136,128,153,141,204,102,243,113,161,155,194,106,190,119,132,127,60,0,42,0,165,46,43,114,64,127,60,0,42,0,222,93,31,130,204,139,156,79,104,84,50,109,234,139,208,112,216,115,128,143,159,95,4,58,171,99,205,109,234,119,238,144,60,158,140,85,165,124,82,141,49,144,8,143,223,68,130,146,217,140,22,143,12,151,233,118,5,139,67,157,6,154,120,139,60,0,42,0,175,89,116,143,248,142,60,0,42,0,152,128,26,94,155,117,109,102,247,131,109,119,146,123,222,155,60,0,42,0,163,126,55,79,106,84,146,84,153,91,201,126,145,81,174,84,60,102,2,125,196,128,177,118,110,131,78,145,93,102,153,124,115,52,75,138,100,132,118,138,3,117,253,80,186,118,206,153,99,86,80,216,242,223,16,126,164,154,64,124,85,124,82,124,95,154,60,0,42,0,191,112,242,153,60,0,42,0,190,108,225,107,195,101,52,104,152,124,197,134,230,152,201,96,64,138,136,141,121,138,154,149,53,140,97,86,166,93,17,151,8,108,10,108,157,133,133,144,187,119,111,158,220,101,107,139,88,153,227,156,89,154,89,155,99,156,7,158,60,0,42,0,157,139,60,0,42,0,169,101,208,152,85,92,207,118,45,93,172,101,45,56,43,105,22,116,10,55,12,100,222,118,131,93,132,93,144,105,173,152,248,90,134,145,79,106,106,64,62,143,98,216,192,222,94,216,6,223,72,216,122,221,245,158,60,0,42,0,96,83,84,79,24,98,8,104,95,104,217,122,97,80,253,126,231,104,91,110,218,131,38,98,187,125,152,93,26,143,48,98,101,134,102,134,177,137,79,143,103,139,102,216,71,221,79,154,56,134,60,0,42,0,30,141,48,54,136,148,166,79,72,109,205,115,206,115,215,128,158,140,152,53,42,94,21,104,98,104,30,119,31,119,39,120,221,145,117,80,109,104,111,121,89,145,202,91,195,90,71,216,200,222,56,100,159,101,104,105,73,115,116,132,73,144,65,146,85,151,155,105,157,107,103,116,4,117,170,120,142,121,150,132,193,132,103,111,155,121,180,123,60,106,181,111,251,129,49,147,67,143,124,147,189,133,72,124,117,156,60,0,42,0,49,52,202,139,174,98,149,103,43,95,35,102,120,143,82,92,91,117,185,117,21,119,62,125,68,128,151,136,58,138,235,142,124,125,28,127,214,136,180,74,57,122,215,153,37,126,18,155,240,158,60,0,42,0,51,87,188,126,53,150,61,117,178,79,11,99,182,66,41,158,47,99,21,103,26,104,22,125,99,150,57,119,72,141,86,145,213,99,102,88,113,116,171,138,209,140,244,71,118,101,71,149,7,151,6,157,173,147,174,147,60,0,42,0,25,132,244,146,60,0,42,0,32,95,53,95,224,122,189,80,135,88,220,90,112,95,73,216,84,221,94,97,51,111,80,115,187,124,35,145,178,102,31,106,80,216,100,223,139,116,1,133,103,144,38,153,209,135,63,154,70,156,158,158,60,0,42,0,201,78,127,149,119,149,168,109,140,99,50,111,3,121,60,0,42,0,8,78,215,78,89,98,16,94,86,103,192,128,38,141,51,94,177,109,57,129,238,117,130,93,91,94,156,150,236,140,44,118,52,118,149,119,60,0,42,0,128,124,101,94,241,147,35,148,60,0,42,0,137,78,66,79,195,89,129,95,20,96,45,114,228,139,67,216,156,220,229,92,35,99,161,112,240,114,221,112,16,119,178,148,233,87,29,93,34,93,153,99,25,115,65,119,71,128,97,216,19,223,238,148,156,90,193,99,93,123,57,59,176,95,92,119,102,146,180,95,184,132,143,123,181,95,45,142,220,123,26,147,7,155,214,155,101,118,60,0,42,0,54,108,141,98,253,124,239,98,159,99,120,102,56,97,156,100,116,101,60,0,42,0,99,107,193,139,39,94,63,101,209,144,199,117,64,94,60,138,99,88,187,64,95,216,132,221,35,66,205,138,45,145,10,157,73,139,109,73,60,0,42,0,231,81,60,0,42,0,49,103,175,82,143,79,219,139,25,109,190,144,42,104,224,115,49,131,248,139,42,115,67,120,252,121,226,148,81,125,219,134,190,136,133,138,230,141,224,105,107,135,150,146,101,106,116,111,248,138,108,140,239,153,162,155,56,157,38,112,235,106,231,106,250,155,4,159,41,136,60,0,42,0,249,122,207,108,250,122,162,112,1,123,219,112,139,122,63,131,28,123,51,130,16,144,3,118,201,123,237,113,11,136,133,142,65,156,78,91,95,112,239,102,24,107,37,114,62,136,60,0,42,0,54,78,59,78,67,216,13,220,148,91,196,98,92,127,26,110,124,150,110,113,93,138,81,113,49,86,208,111,136,158,169,119,154,82,209,86,184,101,218,119,60,0,42,0,43,79,71,79,79,79,169,82,187,126,126,87,124,103,232,108,206,130,46,141,236,143,123,154,244,88,241,103,182,107,183,112,176,117,29,119,43,120,93,121,218,122,105,121,53,125,56,125,156,127,135,131,192,134,64,93,81,123,59,138,175,140,211,141,244,142,248,148,111,123,82,146,181,153,184,123,229,127,38,106,243,146,208,153,235,123,20,151,134,158,68,148,60,0,42,0,184,88,60,0,42,0,147,98,155,106,188,129,253,154,59,124,60,0,42,0,83,83,217,98,170,112,44,80,73,99,76,104,193,104,191,109,243,104,91,122,87,216,26,223,147,75,113,122,63,136,60,0,42,0,52,87,116,95,75,108,179,114,124,112,213,83,176,89,171,101,74,109,1,131,53,78,94,109,252,139,76,145,68,85,69,85,58,90,251,57,108,59,178,104,245,112,177,101,107,102,19,105,56,116,1,68,84,216,205,221,122,120,161,122,108,127,178,101,213,105,175,100,198,100,154,121,117,65,193,138,209,138,220,146,193,111,231,123,98,216,231,221,226,100,128,101,181,101,239,111,80,216,248,223,225,106,54,139,111,149,107,157,66,112,23,136,47,148,50,148,87,124,223,157,113,124,60,0,42,0,133,82,60,0,42,0,167,122,60,0,42,0,253,98,60,0,42,0,233,141,60,0,42,0,185,150,253,143,147,154,37,149,16,147,5,154,123,157,60,0,42,0,157,108,60,0,42,0,96,87,88,104,13,123,55,90,0,127,244,96,18,127,119,117,0,117,126,120,180,125,135,129,88,141,156,88,200,138,138,145,11,126,35,147,31,153,8,121,5,141,117,139,91,143,70,148,60,0,42,0,19,78,192,83,2,92,22,120,8,92,124,88,229,90,31,145,124,116,215,120,158,129,155,152,14,117,218,120,239,138,228,135,83,152,68,156,60,0,42,0,108,143,104,91,226,142,241,122,113,72,73,143,60,0,42,0,119,112,109,85,31,88,81,116,94,129,131,132,206,80,90,141,176,100,198,123,148,153,249,123,250,140,72,137,84,139,76,153,192,86,81,124,60,0,42,0,146,91,171,128,205,143,128,122,6,140,196,138,96,136,60,0,42,0,198,81,251,87,150,110,167,125,60,0,42,0,48,138,21,122,60,0,42,0,214,81,60,0,42,0,134,89,132,94,157,89,36,90,105,104,88,131,137,104,138,131,119,110,167,124,197,136,221,136,1,106,218,124,60,0,42,0,238,88,239,88,182,114,192,114,245,88,11,113,52,111,158,100,7,98,60,0,42,0,146,94,60,0,42,0,45,78,0,79,119,108,35,82,144,89,120,95,224,95,200,108,130,112,200,126,90,216,21,223,202,103,197,118,159,148,215,65,47,130,115,136,119,136,66,125,33,146,82,94,58,149,32,133,191,146,164,135,189,135,126,147,40,159,113,142,24,148,100,216,94,221,102,124,60,0,42,0,191,128,205,121,162,81,160,85,48,92,90,88,92,88,113,107,68,113,107,129,7,118,46,122,53,142,92,122,60,0,42,0,242,78,23,79,149,89,198,114,76,121,205,145,61,131,155,134,118,136,69,80,62,119,57,88,145,90,87,123,70,136,229,138,60,0,42,0,218,143,60,0,39,0,208,253,39,0,20,49,60,0,42,0,3,84,153,79,231,84,104,95,245,128,169,134,49,158,53,119,30,123,171,85,251,116,53,138,228,85,184,90,244,117,122,125,91,100,68,86,186,138,157,119,31,157,173,135,97,118,93,159,81,155,114,95,208,158,60,0,42,0,27,95,96,108,112,154,123,87,187,92,223,143,1,99,254,122,12,131,109,107,78,131,179,134,127,141,66,123,190,140,141,141,69,144,179,153,142,123,95,144,128,88,38,111,31,142,234,123,114,144,24,139,98,216,50,222,60,0,42,0,58,92,250,83,78,84,136,79,118,83,127,159,145,87,227,128,101,96,180,61,142,124,188,66,59,128,135,134,60,107,111,107,178,136,179,136,237,136,121,146,82,159,43,137,60,0,42,0,115,95,241,83,165,101,88,103,123,112,100,141,108,153,182,98,197,82,92,96,189,112,209,82,196,127,197,127,85,101,254,112,211,117,123,85,97,57,65,110,115,120,237,152,186,80,248,117,95,129,238,141,83,146,244,150,8,118,228,127,144,146,87,97,143,97,27,118,232,127,107,144,190,113,216,97,169,141,32,72,78,153,146,157,216,157,60,0,42,0,155,89,182,158,60,0,42,0,201,83,96,98,72,103,81,216,47,223,158,128,255,129,63,99,91,80,210,99,247,99,135,153,207,85,159,146,56,149,128,117,86,130,100,147,55,153,60,0,42,0,197,121,158,87,229,103,44,131,54,131,86,93,57,115,107,151,61,100,103,138,223,91,206,105,180,120,87,216,215,222,171,106,101,216,212,223,60,0,42,0,105,136,69,142,114,149,84,148,60,0,42,0,124,89,74,108,148,92,152,79,231,139,249,89,1,125,238,93,213,71,107,138,60,0,42,0,102,143,33,79,202,142,229,79,23,120,19,85,151,131,104,120,252,134,60,0,42,0,111,98,86,80,163,71,166,100,60,0,42,0,110,92,123,95,124,87,224,143,52,57,226,112,237,63,45,53,69,128,163,99,105,120,25,152,185,95,164,100,136,111,26,59,246,82,174,119,32,71,33,114,60,0,42,0,134,130,198,98,151,148,245,145,60,0,42,0,170,79,244,103,122,140,97,121,141,85,21,81,92,159,60,0,42,0,29,131,60,0,42,0,127,134,131,136,13,138,37,118,6,136,198,86,60,0,42,0,132,98,72,216,126,220,40,95,10,96,41,107,158,148,44,138,47,113,81,216,116,222,133,141,20,146,230,82,255,74,60,0,42,0,74,114,65,102,226,93,227,93,29,103,12,159,5,111,27,145,50,86,20,106,110,111,178,122,122,127,72,143,2,159,63,139,60,0,42,0,53,84,146,112,39,119,35,113,124,113,168,158,208,93,60,0,42,0,230,78,239,78,22,128,216,137,60,0,42,0,189,98,100,90,10,100,51,118,216,123,168,114,171,114,60,0,42,0,199,78,30,96,230,79,49,94,38,104,198,96,44,125,248,126,6,105,116,117,82,125,215,131,1,97,151,118,32,122,121,123,103,145,108,145,162,125,239,136,12,142,20,81,212,150,139,86,38,91,108,94,228,97,253,113,181,133,224,150,135,117,76,124,138,142,187,145,142,139,144,139,60,0,42,0,17,78,18,78,28,84,123,103,125,103,180,79,98,80,133,119,156,145,193,119,87,155,60,0,42,0,237,129,240,129,160,107,90,144,60,0,42,0,191,143,199,137,0,100,180,104,152,137,70,146,231,136,211,146,104,94,92,137,25,101,60,0,42,0,117,90,23,140,206,104,121,110,139,153,88,113,133,121,32,127,221,80,81,115,73,135,151,138,3,81,11,91,219,94,121,111,122,111,254,125,182,111,219,120,203,146,218,107,170,121,97,149,13,112,236,135,61,145,51,81,150,82,254,135,181,86,201,93,58,112,65,145,3,107,143,126,146,126,148,142,117,149,108,130,146,139,113,148,94,153,60,0,42,0,167,78,44,82,245,101,51,78,186,101,80,109,87,82,4,140,116,85,34,117,35,117,242,148,16,150,119,82,135,132,124,93,76,100,251,110,61,86,93,94,194,138,179,149,163,154,192,113,70,133,5,124,129,81,95,126,66,139,180,143,223,147,225,149,197,86,91,112,135,139,60,0,42,0,207,95,95,120,4,59,114,100,244,97,164,152,250,97,188,127,194,151,107,152,60,0,42,0,229,88,60,0,42,0,187,98,117,99,244,144,27,116,212,85,157,125,139,119,195,138,221,140,29,126,19,139,60,0,42,0,24,92,227,129,241,95,136,108,137,108,176,143,72,150,231,143,184,91,30,131,80,101,104,102,128,131,144,131,38,138,12,140,217,142,115,150,22,97,232,99,2,146,65,113,117,88,14,118,4,106,47,133,3,151,246,138,180,135,188,133,142,158,223,102,208,157,60,0,42,0,187,141,118,120,156,120,139,88,38,89,227,120,56,142,86,147,2,141,166,145,60,0,42,0,162,117,108,136,128,159,129,141,130,141,135,105,83,159,44,81,84,159,45,81,171,86,54,140,236,106,111,137,150,139,60,0,42,0,229,112,60,0,42,0,37,79,12,102,0,80,60,90,208,109,22,115,10,150,127,102,41,116,214,131,32,149,238,136,41,147,182,149,179,156,150,75,231,155,104,216,135,220,26,159,60,0,42,0,231,78,79,81,160,128,204,130,120,149,29,92,127,80,56,94,156,95,250,116,7,132,30,117,120,129,23,86,114,88,230,90,122,116,147,129,255,146,31,81,144,86,191,156,219,147,104,156,60,0,42,0,130,83,58,87,54,102,221,96,52,88,94,101,216,80,176,83,224,94,5,108,249,146,60,0,42,0,5,96,154,115,69,117,33,80,47,155,49,85,181,96,59,113,82,116,162,102,124,117,175,138,212,151,60,0,42,0,25,105,208,135,60,0,42,0,223,108,55,150,253,103,47,114,126,109,240,121,65,80,207,134,245,54,230,104,94,110,90,114,36,116,106,141,220,80,134,97,90,100,49,122,87,151,144,100,145,100,253,125,85,106,160,119,108,141,51,152,137,106,192,122,106,122,246,135,243,147,255,147,83,153,60,0,42,0,30,78,16,98,62,103,72,84,127,98,168,103,218,139,87,78,206,87,13,90,248,92,6,109,213,144,88,78,213,87,172,91,48,99,95,102,249,115,0,129,129,99,245,115,154,122,45,129,127,131,214,148,24,88,233,96,214,104,9,105,11,122,108,123,126,125,77,88,86,88,151,110,128,120,248,65,206,136,160,138,123,117,114,145,238,146,149,97,130,111,132,111,89,106,153,106,19,112,242,97,96,216,93,221,44,154,60,0,42,0,177,79,142,95,156,96,139,154,177,94,30,144,72,119,1,154,60,0,42,0,228,121,60,0,42,0,206,155,60,0,42,0,250,81,128,92,29,82,116,100,23,106,153,140,99,159,60,0,42,0,13,82,187,130,100,150,168,83,96,140,4,149,176,90,193,110,33,128,13,135,142,141,79,146,207,150,81,53,147,114,162,132,173,132,97,56,218,94,79,133,228,146,113,106,232,123,110,94,201,106,219,150,229,106,248,133,112,142,135,142,181,157,149,142,60,0,42,0,230,81,117,103,64,120,168,80,24,105,110,105,90,105,26,137,203,111,50,81,154,106,14,121,109,159,0,158,124,159,60,0,42,0,141,78,4,89,204,122,53,96,192,98,204,126,86,140,247,103,42,107,208,122,246,79,74,101,92,117,71,54,241,87,255,115,64,125,85,134,151,80,33,116,16,100,192,110,230,137,16,145,0,142,166,149,10,81,60,86,235,132,212,138,183,97,182,101,92,107,197,129,220,158,248,137,215,119,60,0,42,0,139,105,123,106,180,116,245,135,60,0,42,0,59,107,88,107,60,0,42,0,52,144,20,142,51,98,60,0,42,0,204,46,205,46,182,143,181,143,139,60,21,90,22,90,217,96,176,109,240,126,124,90,79,129,141,143,206,68,107,145,189,125,160,141,31,143,138,159,201,100,237,120,91,126,96,107,189,86,106,159,97,148,60,0,42,0,227,99,11,100,60,0,42,0,151,129,60,0,42,0,92,85,44,86,170,129,57,142,60,0,42,0,57,84,138,112,60,0,42,0,130,87,21,80,192,87,118,99,240,104,14,105,68,129,114,150,37,100,217,131,36,149,204,105,160,123,24,147,64,152,154,147,60,0,42,0,161,159,60,0,42,0,219,93,221,93,26,108,127,122,118,82,45,115,79,116,60,0,42,0,29,79,32,79,33,130,41,130,57,130,12,87,179,80,61,105,68,144,183,102,197,123,50,143,60,0,42,0,27,130,72,131,152,85,66,107,226,80,51,142,60,0,42,0,76,108,50,78,148,115,143,148,231,145,215,140,168,157,60,0,42,0,254,101,118,103,37,102,62,88,139,90,5,132,153,102,63,105,67,116,186,123,125,135,65,106,52,143,165,129,196,106,6,156,158,157,104,216,185,220,60,0,42,0,175,126,7,85,113,109,20,125,89,150,243,109,35,129,188,131,123,110,137,114,227,110,81,158,24,111,147,132,244,132,135,145,149,145,30,147,217,155,137,157,60,0,42,0,70,80,247,96,54,132,118,119,240,140,34,136,60,0,42,0,5,82,174,117,147,122,151,122,78,114,80,100,85,114,33,118,187,122,60,0,42,0,138,94,64,114,71,86,98,94,60,0,42,0,239,149,184,80,100,100,226,120,214,149,60,0,42,0,27,82,6,96,49,82,79,82,89,82,212,81,117,82,52,97,60,0,42,0,69,81,178,81,225,95,150,108,58,131,122,109,235,115,192,127,2,130,3,86,79,100,184,95,131,97,167,97,93,136,185,65,127,127,95,130,86,142,60,0,42,0,107,134,7,93,8,93,128,150,223,125,105,135,8,137,242,135,30,114,60,0,42,0,160,91,235,87,65,216,165,221,245,91,60,0,42,0,243,148,240,99,131,146,60,0,39,0,208,253,39,0,21,49,60,0,42,0,56,92,49,89,8,94,94,84,113,134,215,139,36,158,77,92,189,101,73,109,238,114,191,144,43,94,65,125,246,145,100,110,127,110,31,146,174,110,188,110,69,115,121,132,105,138,71,146,72,146,97,116,146,132,205,132,242,156,104,135,254,156,94,216,121,222,186,156,213,111,89,216,136,220,55,137,102,147,104,216,20,220,244,155,36,156,179,157,121,137,60,0,42,0,65,83,99,153,243,119,109,78,187,143,246,101,198,139,67,216,52,220,158,91,159,91,249,101,252,89,213,92,254,98,187,112,128,134,223,152,224,152,216,87,66,102,79,121,179,131,212,91,92,110,82,88,161,110,72,144,80,146,230,91,175,105,148,132,85,135,21,66,165,156,43,159,88,139,45,159,35,156,60,0,42,0,242,83,226,119,104,78,85,140,127,79,203,89,118,154,88,81,169,91,78,92,54,123,66,146,219,153,60,0,42,0,235,88,15,108,59,121,23,78,22,78,213,78,2,94,172,46,58,121,75,83,15,95,213,95,174,46,138,78,60,79,211,83,58,98,139,78,141,79,191,82,105,84,249,103,213,139,112,153,159,81,164,91,64,96,67,96,237,98,47,102,48,102,190,103,255,103,2,119,198,137,51,141,59,104,210,112,14,119,33,119,16,130,124,143,2,144,200,148,150,137,73,140,29,144,200,145,158,90,60,93,17,95,165,95,211,99,37,140,176,140,202,145,226,82,220,85,18,95,87,119,110,123,226,137,102,138,254,142,48,146,67,146,254,152,19,130,147,138,125,146,109,89,105,144,45,73,180,146,25,153,108,86,21,91,168,111,223,138,225,138,29,153,171,135,26,139,126,144,45,124,203,145,107,137,60,0,42,0,102,79,205,122,25,83,117,93,129,105,118,113,210,123,150,155,66,124,24,156,60,0,42,0,64,103,153,108,177,126,119,78,57,82,78,82,2,120,38,85,0,115,134,124,23,125,108,104,186,107,238,107,58,62,142,131,233,148,231,117,112,120,94,113,223,136,157,105,39,106,49,133,102,155,168,156,202,155,203,155,169,147,60,0,42,0,187,80,13,81,60,0,42,0,61,80,60,85,81,85,101,85,57,94,166,83,162,85,16,132,200,94,60,60,67,107,220,127,9,66,145,123,227,127,175,149,14,151,60,0,42,0,76,126,60,0,42,0,98,89,30,115,74,141,108,117,114,117,11,143,210,140,214,140,168,106,60,0,42,0,12,130,88,79,117,134,199,134,229,134,95,216,115,221,60,0,42,0,13,130,104,99,55,75,60,0,42,0,141,83,190,139,62,121,153,83,4,92,137,109,187,109,9,110,45,138,102,141,61,95,81,97,66,100,68,100,224,110,116,97,117,100,14,133,89,107,216,151,7,154,2,136,19,71,254,97,29,101,68,112,157,158,7,107,60,0,42,0,14,130,60,0,42,0,19,61,91,123,126,145,233,123,1,124,27,124,195,145,60,0,42,0,122,126,60,0,42,0,82,102,32,59,183,149,236,102,60,0,42,0,48,95,78,99,231,112,162,104,166,131,60,113,13,122,211,101,114,123,68,130,248,134,14,143,210,113,48,66,181,152,254,154,185,155,60,0,42,0,250,82,141,130,214,103,191,115,213,130,240,122,246,151,60,0,42,0,17,92,96,216,24,222,32,69,60,0,42,0,173,82,114,83,205,126,181,144,232,84,11,90,57,125,145,136,68,119,164,125,114,111,60,0,42,0,113,133,60,0,42,0,206,83,54,101,60,0,42,0,75,98,136,91,168,87,150,153,79,130,60,0,42,0,255,91,215,83,233,114,125,81,46,85,136,99,173,109,246,126,233,117,253,88,172,125,0,89,38,118,245,70,120,115,201,147,60,0,42,0,76,98,99,115,60,0,42,0,113,92,97,95,150,144,32,82,42,82,73,103,205,89,215,89,159,130,144,148,245,103,230,114,202,115,34,130,235,130,107,136,207,87,193,117,213,142,59,99,24,123,32,129,218,141,124,82,39,100,7,86,83,94,125,113,120,111,152,111,134,106,63,126,187,129,180,127,182,127,197,155,17,60,60,0,42,0,94,216,62,222,60,0,42,0,234,149,85,150,131,149,93,150,142,58,113,102,84,113,82,119,140,113,162,137,60,0,42,0,170,139,85,108,204,56,157,117,97,82,71,98,21,138,120,141,158,99,228,145,147,80,132,85,143,146,159,154,208,80,160,88,161,88,108,111,85,216,49,221,46,127,47,145,23,91,197,100,63,106,90,107,179,129,73,76,240,120,6,139,97,141,32,65,85,126,238,135,71,73,250,135,113,139,13,141,37,148,77,153,56,154,221,156,87,112,83,156,84,156,60,0,42,0,56,87,99,103,138,149,126,101,60,0,42,0,51,117,126,92,95,98,56,79,171,142,129,79,123,84,189,89,118,124,197,126,220,139,250,89,219,103,32,108,197,115,124,122,120,124,32,90,247,92,33,117,18,119,55,120,82,101,241,109,51,125,152,131,95,81,253,104,55,138,96,132,209,136,117,138,67,216,221,222,39,117,225,132,24,133,202,113,234,153,185,156,209,102,147,133,98,157,245,155,58,156,60,0,42,0,192,78,26,117,94,121,32,76,60,0,42,0,30,95,165,144,161,91,228,119,194,84,231,119,183,91,2,140,9,140,118,90,22,110,32,138,233,91,215,138,35,152,107,155,203,102,37,152,171,119,56,91,11,112,2,60,190,137,133,139,60,0,42,0,190,128,186,79,26,102,194,128,129,109,24,119,23,110,36,129,115,121,78,129,60,97,78,97,57,105,6,118,103,127,3,135,4,135,242,110,224,146,46,118,60,0,42,0,20,88,138,105,48,156,60,0,42,0,36,79,135,107,70,85,222,137,183,80,146,88,111,97,243,110,33,111,164,107,181,113,15,133,170,135,244,137,42,139,58,155,60,0,42,0,167,87,68,98,76,102,79,141,222,140,24,141,92,148,60,0,42,0,4,78,10,78,25,92,26,92,102,96,241,126,212,125,157,151,60,0,42,0,233,78,243,136,60,0,42,0,71,83,31,117,79,84,240,88,152,101,41,150,7,102,233,108,204,114,13,104,133,107,114,114,196,115,252,130,97,60,94,150,25,123,121,150,102,110,58,113,37,117,78,146,114,128,42,159,127,157,60,0,42,0,243,126,180,97,105,126,93,139,60,0,42,0,1,119,26,119,87,80,59,110,60,0,42,0,35,87,220,128,96,102,112,82,219,118,105,82,221,82,185,140,74,93,30,116,86,128,173,88,186,105,66,133,248,140,60,0,42,0,212,122,251,102,115,106,60,0,42,0,102,78,179,107,23,92,146,98,190,126,80,52,212,83,120,103,162,103,221,89,78,150,15,80,16,80,248,102,138,107,19,125,147,99,179,104,209,109,2,113,215,142,142,117,143,117,18,130,253,131,3,145,69,100,249,107,128,125,147,143,254,141,8,142,30,106,121,116,44,133,56,143,126,106,155,155,4,101,53,81,104,157,60,0,42,0,235,121,76,90,112,91,78,141,126,88,159,113,185,116,22,141,60,0,42,0,33,159,94,92,145,102,205,158,143,102,114,127,0,135,32,159,123,111,217,102,255,62,165,133,175,133,89,118,247,133,97,137,108,92,105,137,131,148,60,0,42,0,46,103,47,103,13,98,95,103,173,108,184,79,193,81,176,84,55,96,17,104,214,122,240,143,85,96,82,99,87,131,182,94,187,94,73,125,83,136,12,92,131,150,112,101,234,122,103,129,129,132,203,136,101,146,133,88,49,111,68,111,120,101,141,111,78,140,57,106,214,111,48,147,64,66,227,147,144,157,106,134,60,0,42,0,45,112,236,124,52,136,106,156,112,156,60,0,42,0,55,82,48,85,60,0,42,0,13,128,60,0,42,0,156,138,60,0,42,0,244,139,254,84,170,138,172,138,60,0,42,0,129,89,193,112,20,103,196,148,54,107,85,120,223,119,32,100,202,105,169,120,180,132,97,115,190,123,88,216,151,220,153,147,13,114,96,148,60,0,42,0,112,136,84,100,96,216,46,221,60,0,42,0,41,117,60,0,42,0,5,94,37,94,77,216,26,222,192,135,91,83,60,0,42,0,1,140,61,129,176,138,60,0,42,0,52,108,60,0,42,0,40,94,151,109,154,109,113,121,5,122,14,122,97,119,222,136,147,119,60,0,42,0,53,108,58,108,150,149,60,0,42,0,233,149,244,98,130,149,19,104,60,0,42,0,174,109,104,129,60,0,42,0,46,84,60,0,42,0,122,152,28,130,6,152,83,106,154,119,99,133,172,119,10,155,60,0,42,0,204,83,28,151,217,150,64,91,166,154,71,91,59,154,6,107,53,121,222,157,116,158,118,66,109,130,102,154,24,158,60,0,42,0,61,114,125,88,97,97,58,111,9,106,20,126,238,69,60,0,42,0,64,112,60,0,42,0,239,147,60,0,39,0,208,253,39,0,22,49,60,0,42,0,156,46,229,101,114,154,248,86,240,145,36,146,185,153,60,0,42,0,249,96,60,0,42,0,237,112,177,113,60,0,42,0,6,90,118,153,97,104,91,131,8,91,72,106,88,133,83,137,82,153,60,0,42,0,112,98,162,150,254,100,60,0,42,0,213,126,118,144,94,126,60,0,42,0,185,83,184,121,212,103,131,90,201,99,24,110,99,113,72,116,19,68,71,132,197,124,90,135,66,142,46,143,82,147,163,151,199,116,37,154,7,156,148,157,60,0,42,0,136,124,122,105,214,151,60,0,42,0,188,46,137,128,141,91,108,129,60,0,42,0,101,84,176,128,166,134,123,136,135,136,186,134,161,136,54,113,229,154,43,86,35,55,239,154,195,113,78,126,51,69,60,0,42,0,132,81,137,81,204,89,211,103,195,115,210,130,163,90,106,106,60,0,42,0,133,132,60,0,42,0,186,78,187,78,193,78,236,88,200,95,50,103,206,95,194,121,162,130,19,146,92,155,139,146,62,67,64,157,60,0,42,0,205,95,32,104,35,104,79,131,249,121,117,131,239,104,20,122,60,0,42,0,3,82,4,82,164,139,222,78,237,78,177,139,251,78,123,92,131,92,52,56,104,98,171,126,182,46,88,216,76,223,138,89,82,103,99,114,180,126,149,128,107,143,231,151,106,153,217,89,77,121,9,125,29,125,125,136,18,138,212,142,149,104,62,62,224,142,238,65,77,125,77,129,181,136,109,151,113,151,204,151,234,152,90,132,141,138,1,153,60,0,42,0,155,125,181,142,60,0,42,0,99,122,52,81,247,82,60,112,125,115,24,134,228,116,179,121,112,122,116,66,159,142,36,155,60,0,42,0,204,88,183,86,228,88,24,101,25,114,149,126,60,0,42,0,169,139,249,97,114,139,147,139,60,0,42,0,84,98,60,0,42,0,205,78,66,216,168,223,65,59,184,143,61,121,177,62,126,150,60,0,42,0,191,130,60,0,42,0,130,89,154,144,158,79,36,94,71,104,57,131,247,148,42,110,78,123,189,136,152,132,163,146,97,135,18,81,96,133,17,157,133,86,44,91,122,91,225,111,61,157,216,102,248,113,183,133,21,136,102,137,165,152,185,145,108,152,108,156,60,0,42,0,93,108,151,128,115,78,177,143,15,145,233,100,60,0,42,0,101,81,51,109,213,85,183,90,189,110,27,127,208,132,31,126,37,137,60,0,42,0,86,98,65,103,188,143,240,156,191,93,60,0,42,0,60,99,60,0,42,0,124,99,60,0,42,0,210,83,229,130,49,95,76,80,3,110,43,113,0,145,73,105,187,132,172,123,219,123,7,114,25,156,47,156,184,157,60,0,42,0,118,93,60,0,42,0,81,90,117,104,36,117,204,125,100,133,16,75,60,0,42,0,100,106,74,133,75,133,96,126,2,134,3,134,60,0,42,0,109,108,152,103,174,130,50,65,139,134,16,149,94,116,127,119,57,135,179,146,237,146,225,83,98,216,232,221,171,58,225,88,60,0,42,0,39,88,139,100,214,88,60,0,42,0,46,150,10,103,111,143,14,128,68,80,223,142,134,90,76,116,157,120,219,125,244,68,45,143,192,116,29,121,60,0,42,0,164,119,60,0,42,0,240,149,166,109,143,149,160,149,100,111,77,106,182,129,60,0,42,0,56,131,60,0,42,0,14,98,156,128,4,104,232,114,210,126,185,91,92,59,231,107,25,131,99,131,255,112,70,72,88,93,239,65,104,125,162,127,182,90,198,90,100,93,8,100,17,100,182,110,209,56,149,105,174,105,181,105,148,113,98,116,201,132,65,122,126,135,85,149,25,126,141,135,142,135,35,137,229,153,246,154,43,91,184,93,3,114,148,147,28,112,198,93,231,102,17,136,104,216,254,220,60,0,42,0,151,81,130,91,72,87,74,216,232,222,135,80,245,142,4,108,60,0,42,0,39,157,60,0,42,0,67,122,60,0,39,0,208,253,39,0,23,49,60,0,42,0,114,78,92,91,121,81,168,84,213,89,255,89,10,131,37,104,134,115,14,125,50,131,64,141,68,141,196,109,246,121,1,127,24,140,222,85,115,91,107,93,20,105,125,110,203,110,162,124,142,143,118,91,88,132,220,137,62,138,178,140,199,140,145,141,17,145,49,149,140,121,53,122,199,125,45,146,67,149,135,159,28,143,172,111,238,138,166,141,58,143,25,147,237,154,187,156,18,159,127,147,161,147,190,116,63,152,62,152,212,155,133,157,77,159,105,216,203,221,38,156,60,0,42,0,251,132,60,0,42,0,64,216,148,220,212,78,7,84,77,103,173,62,201,89,202,89,247,119,196,121,112,84,125,124,20,128,207,128,120,134,237,121,147,104,43,123,232,145,89,85,43,125,211,110,63,138,159,105,60,0,42,0,87,91,234,129,147,130,216,57,51,80,90,82,99,96,120,114,33,131,13,110,37,119,38,119,212,128,254,128,44,111,116,60,60,0,42,0,80,91,48,93,116,106,60,0,42,0,0,94,29,83,158,108,130,84,202,143,246,98,37,125,46,125,84,146,115,155,220,129,226,129,60,0,42,0,66,103,56,120,122,80,146,85,244,151,209,150,75,216,141,221,187,93,252,120,77,137,220,150,203,86,208,86,229,150,60,0,42,0,139,84,60,0,42,0,25,82,158,98,162,108,233,98,206,108,253,108,35,141,71,82,238,143,93,131,54,85,103,85,59,94,46,123,52,130,172,140,173,110,224,119,22,86,231,90,88,94,166,123,13,106,206,138,92,141,199,100,164,111,159,118,148,119,0,124,11,121,46,139,254,140,12,136,87,137,90,159,106,69,112,159,5,158,60,0,42,0,40,89,196,78,130,94,68,108,3,102,23,102,81,99,49,93,60,0,42,0,44,79,54,133,60,0,42,0,125,112,126,112,62,117,201,84,61,104,214,112,61,110,209,131,117,119,243,140,60,0,42,0,176,91,61,93,193,67,60,0,42,0,141,81,40,87,87,98,162,79,5,109,125,143,164,80,9,143,104,145,14,81,33,126,60,0,42,0,60,141,29,98,202,140,151,156,253,155,8,136,2,156,97,156,60,0,42,0,174,80,109,144,223,124,103,142,169,145,60,0,42,0,255,81,127,148,60,0,42,0,233,101,163,103,164,134,215,104,161,111,170,116,187,133,112,126,251,133,60,0,42,0,118,112,129,118,130,118,21,85,35,85,141,104,32,144,191,85,65,130,101,97,106,86,229,113,9,124,95,139,174,141,129,142,195,122,200,122,60,0,42,0,6,104,60,0,42,0,185,144,122,154,249,139,240,144,108,150,247,104,248,104,198,131,18,145,131,123,197,125,207,138,176,156,57,145,235,155,192,158,54,154,113,159,122,159,60,0,42,0,113,141,112,141,60,0,42,0,79,89,205,99,113,105,117,61,60,0,42,0,208,155,60,0,42,0,66,81,204,124,42,124,46,124,21,148,31,148,60,0,42,0,177,84,60,0,42,0,29,102,175,108,90,104,193,91,235,60,221,99,70,86,141,100,39,81,5,101,18,101,57,81,34,101,177,141,56,121,178,141,60,0,42,0,130,102,6,53,171,102,219,140,94,141,62,147,253,111,84,142,60,145,201,116,10,141,232,147,210,116,58,55,82,112,131,139,71,145,218,116,182,121,120,137,154,139,97,153,60,0,42,0,14,96,60,0,42,0,46,140,86,139,91,139,60,0,42,0,206,86,60,0,42,0,40,83,66,114,152,127,67,141,205,140,231,129,216,140,53,133,19,141,210,154,28,141,60,0,42,0,117,154,212,153,60,0,42,0,56,54,88,89,9,95,15,129,95,88,108,132,186,146,211,129,223,129,60,0,42,0,151,88,158,88,142,97,47,127,43,145,103,106,183,113,148,116,240,119,243,120,126,127,82,126,68,139,60,0,42,0,3,149,229,146,96,141,17,117,8,141,60,0,42,0,91,156,60,0,42,0,223,121,69,132,169,132,60,0,42,0,70,83,179,141,82,83,235,84,18,93,42,93,207,101,182,80,164,123,36,142,63,142,94,149,195,147,60,0,42,0,197,139,196,126,59,150,206,79,60,114,199,115,86,121,68,125,91,138,123,151,3,69,60,0,42,0,186,147,60,0,42,0,40,102,232,121,125,99,139,131,10,105,34,116,19,122,112,123,60,146,60,0,42,0,64,216,135,220,230,93,80,79,40,85,83,126,60,0,42,0,92,79,80,87,52,54,157,92,158,92,13,96,60,150,179,79,217,128,17,85,167,94,90,121,90,80,48,57,110,59,143,136,67,132,68,132,245,152,0,54,243,124,60,0,42,0,151,84,217,132,60,0,42,0,156,83,24,103,112,59,250,85,54,106,213,135,151,126,60,0,42,0,138,93,52,86,181,93,127,86,187,116,60,0,42,0,44,104,74,125,84,145,0,103,108,102,125,121,33,122,106,127,160,143,220,105,123,145,137,145,94,133,247,146,10,147,135,106,140,106,60,0,42,0,160,103,93,122,60,0,42,0,187,148,96,216,86,222,156,142,125,148,60,0,42,0,100,126,53,127,130,126,137,126,107,124,152,126,60,0,42,0,37,101,90,148,60,0,42,0,10,92,171,88,255,88,159,93,61,106,117,144,92,126,71,127,15,148,223,156,82,156,247,157,60,0,42,0,212,80,66,86,153,100,63,69,80,139,60,0,42,0,88,99,140,146,60,0,42,0,142,157,60,0,42,0,151,91,39,80,252,126,148,154,43,88,79,93,85,93,254,96,213,104,35,115,89,129,33,103,54,105,124,132,120,93,83,64,47,122,156,125,195,125,167,113,38,66,245,125,234,127,108,135,40,142,42,142,235,120,80,147,117,140,100,142,12,154,3,155,35,154,9,155,55,155,238,155,252,155,65,148,60,0,42,0,59,96,108,80,116,99,227,96,33,97,212,99,3,100,175,80,211,61,96,100,207,125,215,132,2,126,61,126,211,147,60,0,42,0,181,126,46,102,173,117,10,80,20,115,130,120,189,124,201,124,50,118,38,126,29,147,49,126,237,124,60,0,42,0,72,111,60,0,39,0,208,253,39,0,24,49,60,0,42,0,114,84,181,117,124,141,104,80,128,141,208,141,102,216,40,222,180,154,18,126,0,136,202,154,121,159,60,0,42,0,205,139,57,54,144,87,204,103,193,115,50,88,96,121,8,131,40,131,53,57,247,116,208,70,94,138,157,143,158,143,72,97,6,117,193,120,204,150,15,74,90,158,205,124,164,143,250,152,8,153,2,54,40,91,232,111,139,133,28,157,32,121,173,143,191,157,192,157,60,0,42,0,100,107,76,79,218,108,188,115,137,118,42,125,134,155,60,0,42,0,63,103,33,107,58,79,125,79,58,82,62,82,155,94,40,104,38,131,88,125,191,131,211,134,80,141,220,140,134,135,94,58,60,0,42,0,147,86,230,100,3,101,60,0,42,0,36,121,60,0,42,0,106,144,195,86,60,0,42,0,138,81,140,81,167,79,149,83,123,96,250,98,75,109,71,101,95,117,116,80,160,83,39,123,163,124,193,94,251,96,44,110,86,123,23,132,94,123,116,123,52,132,132,88,50,58,163,123,219,132,161,97,87,216,33,220,14,124,60,0,42,0,114,80,71,90,28,115,60,0,42,0,77,98,178,114,80,103,34,141,161,140,193,136,168,110,148,126,60,0,42,0,221,107,199,145,56,80,75,85,192,91,105,95,161,99,108,119,244,141,181,125,41,142,60,0,42,0,240,87,204,104,220,131,33,133,41,126,60,0,42,0,161,100,205,100,217,124,60,0,42,0,250,102,249,102,8,86,134,93,21,111,253,105,248,132,85,216,98,221,90,130,172,135,63,137,234,147,60,0,42,0,120,130,73,131,58,97,198,97,50,154,60,0,42,0,143,128,53,145,89,137,60,0,42,0,190,46,121,130,60,0,42,0,209,81,74,110,96,129,143,143,51,143,60,0,42,0,194,83,195,83,196,83,225,152,150,154,197,83,176,85,76,110,170,80,32,91,16,153,66,154,60,0,42,0,139,107,149,134,237,96,152,107,90,97,69,135,89,97,221,69,49,91,54,136,58,136,60,0,42,0,232,96,1,103,88,97,175,97,71,122,248,123,234,158,242,158,60,0,42,0,127,112,209,54,186,99,113,91,178,124,123,100,175,111,230,113,168,116,146,133,50,139,60,0,42,0,15,81,24,114,60,0,42,0,126,93,60,0,42,0,145,92,148,109,18,123,163,104,60,0,42,0,211,78,250,78,39,79,167,108,205,130,39,158,9,80,49,130,150,80,98,93,196,110,74,115,188,132,89,130,165,135,172,157,60,0,42,0,207,133,118,148,60,0,42,0,110,65,246,140,60,0,42,0,248,111,73,127,12,107,60,0,42,0,253,102,76,86,60,0,42,0,66,92,254,102,100,92,146,93,29,59,242,122,85,66,83,154,60,0,42,0,109,142,60,0,42,0,151,124,213,137,129,158,132,158,164,158,60,0,42,0,130,95,130,107,60,0,42,0,195,79,29,115,40,129,98,145,4,118,142,138,151,141,72,86,177,97,31,133,39,142,139,145,47,118,7,124,44,126,89,142,68,73,0,159,116,142,117,142,99,152,60,0,42,0,19,100,115,116,174,100,203,120,115,144,73,142,157,145,60,0,42,0,107,59,88,134,228,117,73,119,236,119,111,93,115,93,171,132,22,133,126,158,66,145,122,158,166,142,60,0,42,0,30,129,60,0,42,0,73,82,82,82,157,83,14,89,43,99,170,99,157,131,161,131,174,101,228,104,42,144,9,149,25,149,204,132,117,107,188,146,47,147,60,0,42,0,20,93,172,80,215,81,30,127,148,88,32,55,137,93,91,97,103,100,177,105,85,115,239,105,234,120,23,126,217,147,60,0,42,0,60,111,128,116,161,141,160,118,60,0,42,0,28,79,240,95,169,117,5,80,139,124,35,125,198,127,3,129,6,129,80,85,91,85,180,96,236,109,243,107,32,113,58,129,3,132,1,118,185,124,183,125,224,127,172,129,181,129,226,111,193,122,71,152,206,129,74,137,60,0,42,0,124,78,60,0,42,0,70,108,186,100,209,146,105,149,127,142,27,101,165,142,121,148,60,0,42,0,213,106,209,93,17,107,115,122,60,0,42,0,156,122,169,107,182,113,225,123,18,124,196,122,40,114,60,0,42,0,81,103,168,144,180,118,6,142,138,111,244,122,60,0,42,0,88,91,159,79,245,98,60,0,42,0,12,82,214,95,60,0,42,0,248,91,11,84,127,124,60,0,42,0,6,83,234,86,241,86,233,95,158,103,193,130,49,96,164,96,69,216,223,223,199,104,39,113,82,216,218,221,113,132,23,111,97,128,162,154,176,102,5,106,44,106,156,113,125,116,129,116,235,125,102,128,106,128,239,132,37,133,155,119,234,113,245,123,112,128,204,135,111,147,113,126,230,147,24,154,68,154,60,0,42,0,206,78,27,78,147,95,67,90,110,91,150,95,158,95,176,96,217,109,46,116,82,97,14,111,64,111,104,111,180,138,232,140,233,140,55,106,226,83,194,133,71,112,9,107,28,114,60,0,42,0,129,97,37,139,60,0,42,0,16,131,60,0,39,0,208,253,39,0,25,49,60,0,42,0,182,83,159,126,29,78,248,83,168,62,249,124,193,121,157,84,192,108,236,79,29,96,82,134,54,158,164,90,175,101,114,125,12,127,243,134,82,105,50,61,112,146,212,152,216,81,174,83,185,105,151,121,115,127,36,135,54,149,54,86,93,86,70,216,82,220,221,94,149,100,140,111,195,120,160,121,86,216,232,223,230,125,214,146,205,113,108,133,132,135,46,69,214,135,244,135,184,152,38,154,1,148,100,216,112,221,229,157,54,159,109,124,60,0,42,0,123,107,60,0,42,0,243,93,150,78,219,86,250,91,92,108,64,79,161,79,85,81,210,89,96,91,107,103,215,108,228,108,64,121,114,153,119,154,82,59,246,103,109,114,48,90,13,109,152,109,130,128,228,152,37,123,28,128,242,145,226,122,151,137,227,85,134,128,132,140,54,146,59,146,252,152,223,153,169,121,41,81,124,133,3,112,60,0,42,0,86,96,175,146,60,0,42,0,232,78,49,99,50,99,146,100,60,0,42,0,18,109,47,138,120,151,117,111,81,112,160,142,60,0,42,0,69,83,231,108,210,152,14,129,18,146,40,132,75,100,175,152,186,153,169,133,210,106,68,134,60,0,42,0,66,216,191,223,161,150,60,0,42,0,170,149,60,0,42,0,114,130,19,109,28,104,169,109,108,85,239,148,110,107,23,116,237,150,199,85,95,116,112,107,171,146,129,111,206,97,204,100,199,111,207,111,55,118,81,122,128,111,177,116,18,112,97,122,108,126,86,143,252,147,69,139,203,152,60,0,42,0,11,110,111,122,60,0,42,0,226,107,34,97,204,99,94,88,248,107,110,129,123,86,195,156,75,152,4,76,19,156,60,0,42,0,34,66,60,0,42,0,238,85,91,141,255,80,253,140,58,124,60,0,42,0,37,86,60,0,42,0,187,99,154,154,69,97,20,100,158,110,43,127,69,126,202,129,203,156,18,154,55,154,32,156,98,156,60,0,42,0,107,98,131,99,194,90,69,69,60,0,42,0,253,87,25,118,9,108,194,119,222,154,60,0,42,0,166,135,60,0,42,0,92,99,192,94,138,153,214,85,203,94,28,100,73,100,178,110,64,115,11,145,87,100,75,216,183,220,144,132,195,132,60,149,213,152,45,66,88,130,139,135,153,145,170,147,63,153,188,152,190,152,42,154,60,0,42,0,220,83,223,83,129,80,254,85,141,119,222,100,174,133,251,100,226,106,234,133,84,124,60,0,42,0,253,85,132,129,54,118,60,0,42,0,9,78,14,95,193,83,245,107,0,66,255,107,153,114,22,155,60,0,42,0,208,78,30,79,152,80,193,124,194,124,147,153,221,124,227,124,228,124,86,126,210,147,254,147,48,151,74,153,60,0,42,0,213,79,52,94,183,96,99,101,144,149,60,0,42,0,237,88,246,107,129,83,117,106,60,0,42,0,238,104,46,105,238,105,66,137,60,0,42,0,82,104,81,104,60,0,42,0,211,85,33,100,201,120,44,137,161,152,159,147,89,152,60,0,42,0,39,78,170,85,60,0,42,0,225,105,60,0,42,0,231,80,143,68,25,155,60,0,42,0,207,130,38,117,101,145,35,122,163,122,76,122,239,106,7,134,19,134,204,86,60,0,42,0,215,79,60,0,42,0,138,115,25,89,201,139,221,108,131,128,44,109,145,109,223,115,32,125,191,91,128,104,144,107,155,124,164,131,31,144,149,154,131,80,159,124,52,138,33,140,201,85,80,88,81,88,202,90,43,97,175,110,184,110,133,128,84,158,243,80,4,53,44,97,161,105,134,129,235,137,154,141,97,144,159,97,14,106,21,106,90,111,101,111,82,216,130,220,191,120,12,133,108,144,201,146,23,153,24,59,90,106,155,116,36,126,12,124,22,139,92,142,215,133,76,154,80,156,235,157,60,0,42,0,194,155,60,0,42,0,6,85,214,54,17,90,107,104,173,104,143,131,158,80,67,119,205,85,167,127,77,100,41,127,209,132,150,141,17,124,11,69,20,124,46,126,255,154,187,155,60,0,42,0,64,98,122,78,189,58,34,85,34,125,16,116,226,96,1,149,233,85,75,216,98,220,145,110,155,102,99,116,133,116,40,137,155,69,136,147,141,147,150,147,187,147,193,147,60,0,42,0,36,144,185,110,54,135,60,0,42,0,17,116,230,85,60,0,42,0,10,89,149,130,125,134,32,80,248,84,125,109,45,119,125,131,126,131,214,110,98,119,143,125,112,132,163,113,201,111,150,151,214,150,60,0,42,0,229,126,139,150,64,144,143,150,168,150,205,116,60,0,42,0,184,129,73,75,33,112,196,154,211,154,60,0,42,0,151,78,129,92,21,120,95,121,7,140,227,87,87,93,71,216,213,222,114,107,115,107,107,113,95,119,142,120,66,144,66,122,182,138,229,140,24,91,187,111,167,150,133,106,150,106,231,113,178,116,87,122,64,126,131,144,173,121,95,122,80,126,222,101,120,126,90,137,98,139,6,148,41,148,226,151,60,0,42,0,251,114,224,117,120,145,60,0,42,0,52,83,60,0,42,0,88,121,7,123,109,123,151,123,156,132,60,0,42,0,89,91,242,114,107,91,106,131,231,152,14,100,59,115,241,152,194,105,192,132,117,133,158,133,60,0,42,0,95,99,11,123,188,150,77,123,13,100,171,105,176,123,40,124,168,147,189,157,60,0,42,0,234,95,126,103,128,103,0,90,215,103,47,80,199,81,39,93,186,94,165,104,222,109,216,131,105,93,121,120,25,135,189,97,205,111,100,216,237,220,167,106,118,147,6,155,60,0,42,0,2,96,154,96,56,128,230,122,177,80,47,97,38,58,100,105,119,93,107,97,115,128,247,153,60,0,42,0,188,139,139,91,245,139,1,144,130,152,31,138,12,152,166,138,56,153,60,0,42,0,169,103,185,147,60,0,39,0,208,253,39,0,26,49,60,0,42,0,117,84,63,150,21,149,60,0,42,0,196,85,60,0,42,0,74,85,60,0,39,0,208,253,39,0,27,49,60,0,42,0,148,85,98,86,60,0,42,0,230,84,60,0,42,0,125,123,60,0,39,0,208,253,39,0,28,49,60,0,42,0,184,89,191,89,182,148,63,90,64,90,89,92,254,117,60,0,42,0,185,139,42,84,238,86,215,143,196,79,37,90,232,92,233,92,144,109,244,115,170,131,27,138,146,118,75,119,9,65,11,146,7,149,69,158,254,134,144,138,192,120,31,152,157,152,100,155,178,150,77,152,93,157,94,157,76,139,68,216,69,221,42,156,60,0,42,0,153,103,8,120,11,152,65,86,0,154,60,0,42,0,132,83,117,92,57,98,122,107,67,84,139,92,124,98,40,150,93,84,202,130,109,143,56,150,162,84,185,84,67,216,101,220,169,87,246,89,201,92,16,120,14,83,118,96,40,120,101,68,133,134,127,153,84,80,126,83,10,88,170,96,160,99,101,117,101,117,70,120,20,140,219,142,15,150,193,53,46,88,63,93,225,96,21,97,66,110,72,71,95,140,246,142,2,145,42,146,197,94,36,100,57,100,153,59,39,116,109,129,60,132,123,138,76,144,79,144,235,80,65,135,55,149,87,158,30,152,154,152,19,153,101,155,105,86,90,133,168,137,228,138,188,149,41,153,150,140,84,147,196,156,94,107,78,152,24,121,238,106,16,156,154,157,141,139,67,159,105,148,118,159,119,156,60,0,42,0,220,100,72,157,60,0,39,0,208,253,39,0,30,49,60,0,42,0,192,84,206,84,9,85,195,87,45,90,40,99,56,107,243,85,190,110,176,146,63,149,111,86,132,147,60,0,42,0,64,85,113,99,145,118,176,110,10,86,113,101,115,101,154,118,76,118,3,154,60,0,42,0,208,107,57,102,62,90,238,119,60,133,183,142,237,111,45,151,249,133,68,151,60,0,42,0,12,79,126,130,55,54,49,114,57,120,75,120,210,53,204,85,103,88,210,90,27,97,141,120,152,150,198,83,167,102,119,116,161,149,254,80,108,65,33,91,211,97,210,88,221,97,214,102,166,116,134,133,50,153,49,157,167,118,185,119,61,69,164,153,25,121,106,139,122,139,64,148,73,151,60,0,42,0,107,156,60,0,39,0,208,253,39,0,31,49,60,0,42,0,246,139,146,138,60,0,39,0,208,253,39,0,32,49,60,0,42,0,249,81,109,53,234,103,142,104,234,142,10,114,60,0,42,0,86,101,171,83,247,85,248,85,133,93,210,94,246,110,83,115,82,115,158,150,110,100,76,216,129,222,172,113,136,116,28,133,104,144,221,120,241,127,113,128,175,135,250,127,55,139,56,139,204,156,214,147,50,156,212,157,7,159,60,0,42,0,157,98,215,98,186,130,132,136,122,149,170,90,188,90,86,137,60,0,42,0,45,54,153,92,119,98,115,87,135,87,176,92,97,89,101,89,178,80,103,89,156,154,28,55,239,90,96,97,75,216,198,220,186,88,180,93,202,97,217,100,179,111,169,150,202,147,65,154,60,0,42,0,246,127,60,0,39,0,208,253,39,0,33,49,60,0,42,0,180,139,164,108,39,107,180,107,239,116,37,158,120,88,26,111,80,107,198,107,176,113,14,157,12,117,68,216,191,220,51,139,217,106,194,147,215,157,114,73,60,0,42,0,146,129,117,159,60,0,42,0,65,216,118,222,24,84,85,84,118,80,98,129,20,86,150,52,38,128,69,133,213,133,60,0,42,0,4,96,106,97,60,0,42,0,242,133,60,0,39,0,208,253,39,0,34,49,60,0,42,0,137,91,146,79,214,92,73,104,40,108,181,94,2,64,25,140,149,90,244,131,247,117,100,129,59,132,74,132,76,158,157,138,237,132,140,151,141,151,230,118,243,138,163,153,235,118,106,157,253,151,149,157,60,0,42,0,181,115,125,85,248,150,17,81,60,0,42,0,181,87,250,79,53,85,239,87,245,148,222,99,140,150,111,127,168,146,60,0,42,0,180,114,184,92,9,99,29,109,72,104,250,128,76,131,123,140,19,88,105,90,65,65,123,102,151,102,12,147,199,149,159,155,151,75,239,158,60,0,39,0,208,253,39,0,35,49,60,0,42,0,64,89,105,96,69,216,239,223,126,113,189,132,60,0,42,0,206,92,60,0,42,0,65,100,83,75,60,0,39,0,208,253,39,0,36,49,60,0,42,0,174,128,175,154,60,0,42,0,108,83,135,92,2,102,59,102,162,68,127,59,60,0,42,0,138,103,206,118,160,145,60,0,39,0,208,253,39,0,37,49,60,0,42,0,165,151,60,0,39,0,208,253,39,0,38,49,60,0,42,0,63,81,12,128,80,81,149,79,82,81,207,92,15,109,81,150,45,104,249,128,75,131,50,85,56,158,171,124,79,128,187,136,0,143,233,66,149,156,245,154,173,150,158,155,47,157,92,143,60,0,42,0,188,83,18,92,19,92,20,92,51,128,49,109,233,143,117,153,46,104,230,107,229,115,210,148,62,114,12,153,236,153,190,133,135,144,176,141,60,0,42,0,140,78,13,95,16,95,116,79,53,82,161,84,197,54,48,141,174,140,72,136,179,140,128,138,122,146,50,106,60,0,39,0,208,253,39,0,39,49,60,0,42,0,0,78,74,78,12,95,100,136,10,79,99,136,59,83,26,84,241,88,157,79,191,84,67,216,150,220,196,54,214,60,34,109,78,121,77,216,63,220,152,96,23,115,241,148,249,88,214,99,57,107,220,134,252,144,219,90,42,111,149,121,38,122,165,146,4,91,107,86,1,89,127,116,101,158,68,126,209,74,185,106,201,107,171,145,223,158,105,139,214,157,243,158,60,0,42,0,65,78,234,78,28,83,47,87,55,89,157,81,144,91,130,108,210,139,198,143,135,79,156,91,33,96,182,108,203,114,116,153,166,84,232,89,211,92,248,93,44,95,94,96,248,98,194,103,198,115,106,136,59,141,228,143,167,91,69,98,24,104,75,104,191,62,245,116,25,119,240,128,17,138,164,140,251,143,205,117,251,121,27,128,152,136,210,81,160,127,19,132,230,134,81,138,82,138,189,140,144,90,134,102,56,105,131,138,224,141,87,144,9,152,144,152,244,152,145,117,0,81,170,113,183,123,172,93,91,95,92,95,148,135,122,144,36,152,242,91,183,93,3,124,74,152,101,216,231,220,76,76,93,95,94,95,59,139,212,147,250,137,24,60,137,139,3,158,60,0,42,0,89,78,242,93,229,78,135,148,65,79,66,216,203,223,58,101,227,119,148,128,161,94,35,130,225,130,226,130,129,134,212,145,26,80,70,98,79,145,111,80,22,123,24,144,58,93,209,101,5,105,230,156,111,146,214,101,255,136,38,142,34,143,124,101,152,135,231,73,165,106,114,75,18,121,100,130,251,135,87,152,89,143,110,159,60,0,42,0,66,78,64,216,134,220,73,78,191,78,11,95,8,82,198,95,138,128,122,130,174,139,166,78,57,52,7,79,121,92,2,95,63,79,90,79,174,82,83,84,68,87,121,95,145,98,89,103,52,128,133,130,209,139,145,144,126,79,109,84,121,84,196,92,8,96,63,96,19,102,141,103,37,107,209,60,198,108,136,112,199,121,206,126,197,130,227,139,127,154,203,79,85,89,31,94,32,94,8,95,72,216,215,223,187,103,2,109,66,109,180,115,171,117,191,127,88,216,248,223,118,143,101,52,8,85,188,87,146,96,57,99,89,99,39,104,58,104,45,107,101,109,115,109,202,118,117,136,10,140,218,82,246,87,248,87,165,96,156,99,185,107,112,117,91,120,155,127,202,127,204,127,163,136,50,138,51,138,89,140,91,140,244,145,109,150,191,150,70,94,97,101,121,102,237,104,148,107,89,110,50,113,82,216,127,221,59,67,225,134,77,138,199,141,252,142,56,144,32,146,132,78,127,81,52,53,15,97,162,110,72,115,236,117,106,119,233,122,252,65,34,127,169,127,132,128,212,136,219,136,99,138,174,154,233,82,213,90,217,94,143,105,23,118,137,129,52,135,126,151,197,153,4,81,137,57,142,100,248,105,197,107,105,111,160,113,164,113,30,118,250,132,188,138,82,149,93,158,98,158,211,158,147,82,1,54,27,87,191,88,17,91,31,91,167,93,182,97,204,97,192,102,170,107,105,61,186,111,188,113,218,113,49,118,150,119,83,122,10,126,87,130,160,135,241,91,129,101,206,102,141,106,93,107,225,113,241,113,243,127,252,127,198,129,143,133,57,137,249,140,168,155,84,118,0,141,176,147,113,149,118,126,121,126,217,133,221,133,119,140,44,151,227,155,130,157,131,157,164,57,55,112,111,139,112,139,179,145,183,145,80,153,68,216,59,221,85,216,37,223,25,134,63,148,193,157,202,157,200,86,255,97,91,154,231,157,254,157,73,134,124,137,120,159,155,139,60,0,42,0,7,83,183,143,105,117,44,105,31,132,141,157,78,124,60,0,42,0,43,78,39,87,139,83,22,84,152,94,188,98,146,103,173,87,38,158,96,104,45,158,225,87,114,91,15,105,9,157,15,147,40,157,211,88,118,157,26,148,60,0,42,0,89,114,34,79,145,83,136,92,147,83,161,115,189,130,12,123,156,134,16,88,21,93,22,93,175,109,26,115,10,116,88,116,90,119,89,136,4,111,86,159,105,216,50,222,60,0,42,0,83,216,19,221,138,83,140,94,209,84,22,85,94,85,214,117,197,150,2,118,94,216,221,221,101,133,60,0,42,0,156,82,32,87,103,143,154,78,126,137,182,139,156,78,189,114,158,78,203,142,211,143,5,90,28,99,17,120,249,79,41,108,109,90,151,99,29,138,212,148,224,99,44,108,48,115,80,128,89,216,22,223,20,87,15,122,171,122,126,159,60,0,42,0,132,46,91,78,64,84,60,0,42,0,223,84,55,85,178,85,60,0,42,0,59,80,150,99,141,102,48,105,78,86,113,111,46,136,60,0,42,0,55,114,54,128,83,99,216,148,246,99,254,145,58,114,227,146,232,100,129,147,60,0,42,0,95,78,20,84,182,81,220,87,206,145,34,86,28,111,196,88,60,0,42,0,26,78,246,83,243,102,117,152,245,102,28,89,180,98,186,144,177,78,188,103,1,152,84,102,189,103,232,112,161,53,88,85,178,109,18,140,40,88,151,107,75,129,106,105,109,105,73,132,19,145,140,153,247,80,75,107,183,88,14,66,101,151,170,93,171,93,219,100,196,102,197,102,178,111,193,113,90,216,28,220,1,139,52,145,35,153,136,86,235,100,215,102,163,118,177,119,113,147,234,100,184,119,15,121,166,66,145,147,65,153,122,157,23,114,55,148,104,151,92,154,8,158,60,0,42,0,170,78,60,0,42,0,122,94,45,89,6,84,150,89,150,103,128,107,69,121,30,138,147,85,70,105,112,129,125,132,1,67,69,70,1,157,128,144,60,0,42,0,59,114,39,92,45,92,180,128,154,87,218,89,227,92,154,64,122,143,4,80,209,112,231,115,145,122,156,80,47,88,250,99,35,140,250,142,126,52,194,85,177,90,173,95,46,97,22,100,71,100,58,115,49,58,154,102,163,105,100,116,118,116,89,144,101,144,154,146,214,152,6,153,162,93,164,93,175,122,176,122,4,69,26,153,71,126,32,139,33,139,91,216,190,223,144,147,208,156,25,75,187,152,40,134,142,144,100,152,41,156,60,0,42,0,248,78,142,91,134,92,173,98,115,103,213,114,172,84,252,103,237,130,17,119,133,122,136,122,0,130,96,80,121,90,62,93,148,110,154,105,212,132,34,157,60,159,196,149,21,154,105,159,213,157,60,0,42,0,126,122,129,137,165,148,84,216,82,220,111,131,148,122,142,136,68,123,79,138,111,132,142,113,158,137,127,151,95,115,94,158,86,216,175,222,172,133,220,102,255,113,94,130,197,119,229,133,0,128,133,126,194,157,145,139,112,148,60,0,42,0,24,79,231,95,56,101,102,84,46,96,209,108,125,94,160,96,12,144,128,158,250,110,130,97,42,81,152,86,0,112,62,145,204,106,139,126,48,128,60,0,42,0,34,92,36,92,49,117,139,108,185,114,85,63,76,216,222,223,185,108,172,128,174,144,35,96,191,101,163,117,243,92,95,109,222,121,67,67,192,148,100,80,156,131,184,131,176,134,39,138,56,110,54,115,48,144,245,144,127,156,98,105,55,115,74,144,62,146,137,156,15,143,192,153,99,135,119,155,85,133,54,143,139,155,254,106,60,0,42,0,203,83,9,103,35,78,99,83,73,145,195,130,173,61,145,127,174,94,47,104,144,127,132,104,72,128,28,129,160,131,213,148,117,110,15,135,137,121,170,146,0,75,241,105,86,114,221,158,238,97,60,0,42,0,128,46,200,83,243,83,124,94,81,79,145,79,214,114,255,124,202,84,255,86,247,89,165,91,223,92,218,103,112,114,241,139,0,85,80,121,246,143,1,64,180,134,180,78,129,140,201,145,109,145,152,138,44,159,60,0,42,0,103,91,143,132,87,114,60,0,42,0,121,96,102,82,223,112,218,115,237,128,99,80,113,85,38,93,63,57,202,109,249,109,9,113,17,113,155,71,9,150,110,110,18,115,76,129,248,131,89,113,125,120,227,90,57,111,103,65,34,145,131,145,185,149,46,91,232,97,246,123,213,97,217,129,235,158,60,0,42,0,160,139,37,78,0,138,1,138,169,92,246,94,22,102,191,108,142,112,171,130,141,89,248,89,20,120,46,90,208,118,43,90,255,114,2,116,79,120,212,144,134,149,14,150,82,93,83,93,122,110,154,131,105,88,197,99,76,105,254,65,125,138,158,120,117,123,150,125,18,135,5,133,156,152,100,134,187,149,179,83,144,106,79,152,84,152,219,88,55,124,180,86,204,93,233,106,236,158,215,93,231,88,77,91,214,93,125,158,57,121,163,158,60,0,42,0,53,89,129,98,135,108,117,78,86,81,68,89,232,79,87,81,61,83,7,95,77,136,67,80,163,83,169,99,60,119,83,145,67,93,29,97,74,98,220,99,122,59,234,104,48,110,55,110,48,116,18,132,254,144,60,105,104,127,67,144,146,150,20,111,250,136,150,93,45,98,88,135,23,137,94,86,189,142,71,155,47,126,191,106,19,154,225,158,180,83,84,216,44,220,11,156,160,157,228,158,94,159,145,159,23,117,237,158,60,81,105,152,52,159,216,93,218,93,57,159,238,102,88,155,116,159,246,158,60,0,42,0,140,83,235,149,159,89,195,137,106,114,189,84,242,89,101,95,102,95,26,120,1,85,180,91,79,102,115,130,142,137,140,154,80,80,20,113,26,140,173,85,48,88,101,101,251,112,48,113,49,113,111,120,129,150,193,150,191,80,59,105,142,110,223,110,85,132,235,156,173,83,149,88,165,102,125,145,10,91,51,140,100,216,192,220,13,153,8,157,243,61,252,61,196,113,213,113,250,138,93,141,173,72,51,155,213,102,51,157,16,154,165,86,63,91,118,130,11,141,64,145,4,74,225,76,43,59,227,102,19,114,182,145,52,154,195,157,84,112,23,141,254,137,140,139,188,145,92,153,87,154,240,157,119,130,105,216,74,222,78,112,96,154,103,112,158,139,83,140,197,145,84,140,105,112,60,0,42,0,46,106,150,113,197,142,21,107,60,0,42,0,217,86,224,86,37,150,52,150,140,79,148,87,251,89,226,57,7,109,243,151,131,154,54,104,183,107,36,108,53,131,208,81,99,90,4,65,245,121,107,131,223,148,112,150,145,85,25,88,20,97,67,123,106,125,192,136,123,150,130,150,69,107,181,110,71,97,127,100,22,118,139,121,166,146,248,125,45,133,135,151,242,138,18,151,100,216,236,220,240,153,126,86,201,149,32,151,143,61,254,151,60,0,42,0,152,81,81,78,66,53,31,84,190,114,166,101,194,130,160,87,255,108,151,53,1,87,254,92,206,112,250,114,226,115,20,138,26,138,108,90,197,91,31,93,47,93,235,109,118,131,33,138,246,148,29,146,130,159,219,110,146,120,36,89,30,145,128,146,86,86,165,107,140,116,41,133,190,138,154,86,173,106,235,135,38,77,42,151,87,159,227,157,60,0,42,0,90,78,64,216,202,220,244,94,57,92,21,95,50,84,110,153,147,134,122,141,254,109,15,146,144,150,242,152,119,151,238,152,4,103,17,143,160,150,228,120,155,141,62,118,190,93,131,106,229,111,230,111,190,135,177,150,253,106,31,134,110,118,148,139,60,0,42,0,112,83,21,109,228,128,189,87,26,131,55,88,90,110,12,115,213,94,145,132,115,145,109,97,150,97,151,97,74,118,163,155,101,56,218,97,188,106,67,69,60,0,42,0,140,124,60,0,42,0,46,89,137,84,206,89,176,98,241,108,131,107,230,128,15,119,231,121,47,158,96,146,245,150,133,151,38,157,60,0,42,0,108,98,138,127,248,101,104,103,128,112,38,150,51,150,207,152,111,79,183,82,28,108,161,117,150,148,159,87,137,95,28,102,11,109,143,127,202,112,220,115,90,216,117,223,59,119,53,93,56,93,218,99,216,134,125,150,109,101,152,102,74,105,108,113,13,118,147,121,21,59,249,138,48,143,90,147,57,157,186,152,10,148,17,156,55,151,9,158,60,0,42,0,240,78,82,79,113,87,159,92,123,81,205,103,180,112,39,108,210,117,59,125,159,80,238,142,67,97,103,105,49,108,70,135,10,153,218,153,38,53,233,97,1,101,70,68,98,118,60,0,42,0,15,96,89,96,55,104,149,127,71,138,216,105,62,111,35,106,1,112,60,0,42,0,77,89,170,127,34,121,60,0,42,0,148,94,220,95,241,130,92,104,64,80,104,85,116,90,236,126,186,131,67,216,4,222,68,216,152,223,150,90,54,110,208,72,200,90,32,103,80,113,91,116,36,86,132,100,164,120,40,127,66,127,207,140,51,149,49,106,142,116,7,117,211,125,103,135,67,127,46,137,72,147,44,157,102,158,48,91,201,97,186,129,25,151,250,151,112,158,22,117,145,157,182,86,70,91,126,91,22,101,76,127,77,139,167,157,251,106,212,116,47,121,33,134,123,139,175,157,77,148,147,126,51,136,234,157,249,157,14,158,26,158,60,0,42,0,193,118,206,143,200,118,20,131,103,131,182,85,185,131,205,134,97,216,15,223,129,110,139,110,36,132,38,132,204,80,75,88,121,105,226,110,37,132,62,132,70,111,146,113,229,132,71,135,105,116,148,66,127,135,52,91,8,126,162,135,217,111,218,111,244,111,223,113,174,137,13,139,98,141,5,112,192,133,163,147,13,101,27,112,32,112,5,136,74,216,79,221,47,112,52,112,15,141,255,106,93,124,111,124,60,0,42,0,232,119,103,109,226,144,172,104,141,152,149,152,150,152,108,100,44,75,113,95,65,111,132,116,63,118,78,122,52,152,202,93,238,94,109,118,60,0,42,0,32,102,108,120,181,90,142,102,161,129,95,86,149,151,27,148,102,156,60,0,42,0,241,115,37,97,4,126,26,101,80,112,92,112,200,142,60,0,39,0,208,253,39,0,40,49,60,0,42,0,76,78,44,87,25,95,89,108,90,108,97,108,92,84,235,93,71,103,172,144,75,92,63,109,236,139,168,148,207,112,109,82,143,122,218,85,20,145,77,107,163,138,188,123,144,135,46,157,162,147,30,156,60,0,42,0,224,101,203,107,51,84,52,84,62,84,73,84,156,130,20,85,42,90,22,109,111,109,218,144,167,104,248,115,35,131,129,131,33,113,102,121,251,148,64,158,8,135,136,138,145,121,145,116,106,133,241,135,195,155,80,157,85,139,47,159,225,157,60,0,42,0,148,78,72,83,245,78,13,79,169,89,145,94,228,95,3,96,255,101,51,59,102,107,157,115,174,79,201,79,53,80,66,99,78,85,44,90,126,114,247,115,64,100,148,120,73,158,147,113,102,116,30,130,245,90,225,94,174,97,85,111,27,81,70,106,18,117,97,157,140,142,60,0,42,0,64,81,255,82,51,52,161,82,10,98,6,79,124,92,100,98,34,150,94,87,137,92,76,103,226,95,105,114,249,119,180,130,213,143,124,83,68,101,239,139,158,96,159,96,174,96,133,124,217,82,100,102,16,113,28,144,122,90,77,93,230,117,112,151,155,154,98,88,102,89,104,93,169,110,150,150,250,150,254,150,228,91,131,113,164,138,92,158,200,146,185,122,123,144,1,74,26,151,63,159,39,151,22,154,64,159,1,134,169,157,60,0,42,0,68,78,59,147,60,0,42,0,117,122,184,82,22,99,60,109,50,90,86,117,138,122,167,90,217,134,215,85,50,100,155,110,37,111,170,122,3,159,40,101,60,0,42,0,3,90,60,0,42,0,230,116,100,79,147,84,218,57,183,144,60,0,42,0,73,128,156,136,226,85,125,129,131,129,106,137,200,151,228,151,60,0,42,0,114,92,199,84,242,116,60,0,42,0,29,99,45,80,161,109,41,85,185,109,180,131,38,110,39,115,157,122,53,132,23,135,169,122,120,135,18,142,190,100,60,0,42,0,17,98,80,90,112,99,0,76,60,0,42,0,244,78,131,108,159,128,103,83,130,103,229,129,83,80,126,99,180,109,137,90,68,94,225,99,37,110,37,113,106,120,67,105,91,129,161,101,131,119,67,216,223,223,237,100,227,111,140,159,193,116,210,129,216,150,119,159,60,0,42,0,106,107,142,85,245,122,60,0,42,0,52,93,60,0,42,0,22,89,67,216,59,220,30,89,97,152,60,0,42,0,113,83,1,90,67,216,255,220,211,112,78,80,180,85,78,54,153,90,4,97,203,99,251,99,40,110,14,132,54,144,135,150,136,150,174,95,51,105,114,105,166,110,104,113,104,132,115,132,116,138,50,135,91,135,163,137,240,113,135,133,194,156,3,156,4,156,205,93,60,0,42,0,215,86,230,151,41,87,244,86,15,94,169,108,241,149,221,143,215,92,222,92,8,109,203,151,69,104,160,109,47,85,55,94,223,96,89,120,244,126,161,85,13,87,129,90,67,94,75,110,136,110,31,116,44,145,108,93,85,144,77,111,173,125,89,111,127,111,209,120,246,132,128,145,240,111,79,147,200,149,160,155,83,118,96,66,185,137,58,151,8,107,169,114,60,0,42,0,131,83,31,79,42,79,62,92,172,126,212,89,79,59,156,112,174,115,155,130,199,130,39,109,19,90,87,92,88,109,255,139,73,80,125,80,35,93,182,104,207,117,74,120,113,131,234,91,84,93,171,95,7,97,37,115,169,154,144,102,50,105,82,113,75,116,255,117,251,65,114,129,73,130,102,132,141,132,234,151,170,154,171,154,222,80,148,156,48,81,177,100,200,120,86,216,228,223,239,125,201,138,19,142,209,151,32,152,25,59,63,133,97,216,232,221,97,147,170,155,251,111,179,133,217,151,185,152,221,88,34,112,36,134,225,151,150,101,60,0,42,0,107,83,58,78,42,103,77,79,115,84,186,112,79,117,195,128,255,130,222,83,206,142,9,92,19,140,130,85,166,90,45,110,201,61,50,114,44,115,203,131,95,113,168,120,60,135,112,97,173,113,154,114,237,125,26,133,95,135,91,136,192,97,143,116,123,127,94,136,2,139,39,153,135,155,177,135,61,137,53,153,74,143,79,155,239,133,207,147,40,151,218,156,86,153,54,134,134,139,151,142,129,76,143,139,155,142,60,0,42,0,100,99,64,113,155,88,5,126,182,93,60,0,42,0,47,95,92,82,96,90,53,94,70,88,126,110,63,135,107,111,76,140,78,95,234,88,99,112,60,0,42,0,56,78,19,82,77,108,168,126,140,91,143,92,143,98,132,130,169,115,8,125,86,99,125,152,247,112,19,116,17,152,200,75,235,127,60,0,42,0,155,91,7,80,13,85,61,99,204,118,230,87,73,90,203,96,90,102,105,102,154,104,254,126,24,129,124,102,0,105,44,116,150,118,192,131,22,132,121,117,85,119,151,120,169,125,176,125,19,143,32,142,196,146,212,146,74,74,54,55,60,0,42,0,7,78,77,83,80,83,167,89,232,95,101,99,21,129,166,140,85,129,44,132,16,143,171,111,61,147,141,133,195,135,3,141,171,147,81,73,14,141,60,0,42,0,156,144,100,103,2,123,60,0,42,0,55,102,41,110,109,88,8,59,133,105,171,110,146,143,159,107,101,116,31,118,112,133,60,143,113,140,64,143,193,156,176,151,102,216,72,221,27,156,46,156,60,0,42,0,1,83,135,101,99,95,185,126,134,112,159,115,160,130,251,149,11,125,137,134,138,134,243,115,12,150,29,116,239,150,18,118,94,128,188,153,199,153,112,155,252,156,13,157,161,135,186,149,191,149,193,135,197,149,36,159,230,149,60,0,42,0,14,82,59,84,223,95,134,98,97,84,179,128,10,125,125,104,23,129,51,122,79,122,105,122,60,0,42,0,238,149,143,89,118,108,79,85,2,110,172,131,254,99,53,100,80,152,186,116,60,0,42,0,90,84,43,146,190,147,60,0,42,0,70,216,193,223,35,92,41,92,42,92,43,92,106,108,60,0,42,0,161,78,190,78,102,81,139,115,252,78,122,95,159,134,163,131,60,0,42,0,193,52,82,127,81,127,128,95,131,95,137,103,84,127,141,95,216,96,128,102,226,104,245,131,231,134,139,143,178,125,68,135,183,138,30,143,7,112,77,155,60,0,42,0,132,89,216,95,250,101,243,118,203,143,27,103,34,103,17,73,60,0,42,0,57,113,60,0,42,0,193,127,225,85,195,110,95,158,137,135,147,147,178,157,60,0,42,0,34,54,220,82,99,89,85,88,97,93,161,102,37,68,202,132,136,119,108,128,50,55,60,0,42,0,238,116,121,133,21,117,75,127,70,159,60,0,39,0,208,253,39,0,41,49,60,0,42,0,92,98,161,126,194,143,195,143,123,122,6,125,118,134,83,150,57,85,228,109,211,118,250,107,0,118,138,123,60,0,42,0,144,78,142,78,3,79,165,54,48,59,152,144,89,79,164,89,117,98,69,103,36,107,151,115,153,115,188,101,194,118,254,129,124,156,123,78,222,79,106,81,186,121,253,122,66,67,103,136,27,90,47,90,49,90,89,104,243,114,1,130,48,131,0,140,81,145,128,153,20,110,233,150,90,155,35,88,44,88,51,93,78,93,91,93,101,57,9,97,196,99,112,105,29,110,97,110,109,117,98,120,116,129,56,132,133,150,26,97,213,101,2,59,97,105,134,105,72,107,79,114,92,116,69,130,46,132,94,134,206,137,62,144,172,154,1,111,110,119,172,122,118,107,173,127,51,68,83,135,21,137,219,138,211,150,24,153,59,76,158,111,6,130,77,133,166,137,48,142,41,91,184,135,63,143,93,147,98,216,54,222,95,107,181,116,35,139,189,155,31,154,195,154,223,101,69,124,27,134,5,156,163,76,224,157,6,158,60,0,42,0,14,78,136,78,27,79,135,91,127,92,189,127,215,46,232,150,193,79,227,79,185,121,237,139,4,87,255,92,74,80,49,53,44,83,9,87,190,94,84,101,100,121,98,55,158,101,5,145,180,80,217,91,64,105,64,116,16,118,45,132,195,56,7,130,158,138,179,122,217,146,40,152,137,159,115,86,144,140,188,93,217,97,155,57,148,101,140,158,12,134,108,159,60,0,42,0,128,128,137,115,109,154,43,87,127,128,170,89,236,95,139,130,140,130,107,153,178,128,34,57,49,102,241,114,215,121,193,144,252,79,234,92,103,95,116,109,33,120,31,131,176,148,132,152,223,87,9,88,161,95,134,96,208,96,50,107,226,109,239,109,21,140,8,150,133,85,144,85,169,85,187,85,128,90,211,91,189,94,219,104,220,104,235,104,52,113,25,116,222,119,114,120,91,216,64,220,51,144,235,152,173,153,70,158,8,97,211,107,234,110,92,113,99,63,34,122,109,127,72,130,213,136,137,138,71,144,58,146,16,152,215,90,142,93,43,98,68,115,9,118,5,66,237,66,206,125,174,132,227,132,31,135,46,135,59,70,13,143,137,146,74,86,126,97,79,111,54,122,249,132,202,146,255,156,73,216,176,220,166,111,207,113,166,121,237,138,107,140,121,144,37,147,190,149,37,157,42,157,37,81,69,216,138,220,224,113,253,123,119,133,129,133,108,158,82,118,7,121,22,121,88,126,93,216,80,220,167,145,74,155,82,157,28,121,101,122,71,153,242,106,49,151,125,139,93,143,45,148,14,107,72,154,59,155,94,124,74,156,248,157,29,107,18,158,165,159,201,142,48,155,49,155,106,112,114,124,41,114,60,0,42,0,39,99,98,131,154,111,242,155,60,0,42,0,240,102,241,102,166,126,4,125,185,123,95,95,241,119,96,95,60,0,42,0,157,46,8,103,9,98,22,82,156,89,132,92,136,98,69,216,223,222,179,92,165,115,63,121,113,96,149,65,133,96,166,96,142,134,143,134,207,142,186,148,5,150,115,99,192,141,195,141,71,72,164,124,138,141,5,146,181,124,94,146,38,73,177,149,178,149,62,106,215,123,51,91,189,93,101,216,229,220,160,159,48,55,38,59,57,112,70,124,230,158,26,114,37,134,141,142,180,121,101,124,17,158,112,124,25,158,60,0,42,0,230,86,34,158,72,82,164,81,129,96,34,119,51,158,195,91,245,109,1,110,6,110,10,110,21,110,204,96,233,104,147,63,126,132,14,135,83,158,162,123,172,132,53,135,247,136,246,156,93,72,204,153,27,157,61,91,73,73,119,157,65,112,24,159,29,159,60,0,42,0,67,81,134,81,32,141,88,84,237,86,133,108,167,144,108,103,163,87,48,114,159,140,159,83,225,84,6,87,14,123,150,134,129,136,161,83,14,87,244,99,114,110,40,115,24,127,18,131,11,159,18,87,19,87,108,88,180,90,196,90,144,110,146,110,63,115,66,115,158,105,172,105,157,132,149,143,227,125,1,126,93,135,111,135,109,155,174,76,124,106,177,127,136,135,151,133,28,139,69,143,255,158,177,147,222,106,141,144,53,154,162,157,176,157,181,83,60,0,42,0,220,143,246,118,58,144,96,144,250,146,60,0,42,0,23,89,153,128,180,89,71,59,40,96,209,130,184,87,79,136,98,150,134,80,155,90,190,99,87,116,63,97,144,121,235,136,17,137,110,86,36,137,88,152,60,0,42,0,91,145,40,146,60,0,42,0,85,102,10,127,136,102,116,113,128,132,107,89,50,108,51,108,149,132,21,126,121,135,95,141,53,152,7,141,167,153,60,0,42,0,145,78,251,82,0,83,233,86,152,89,132,108,173,126,0,102,184,130,71,117,3,119,208,121,162,109,28,125,24,128,58,128,231,144,242,150,42,97,179,110,96,123,124,123,22,145,178,105,137,113,183,132,144,111,198,146,82,106,212,123,28,126,83,133,66,153,60,0,42,0,65,81,61,89,142,98,193,114,45,150,104,150,146,107,122,131,151,85,30,73,23,146,149,150,158,107,187,153,210,120,30,137,241,140,35,151,115,159,60,0,42,0,85,91,159,103,208,143,125,96,211,144,93,145,138,80,242,96,32,97,6,145,77,97,106,129,75,144,235,151,245,151,133,113,168,113,247,125,252,125,176,76,116,133,150,145,128,133,158,145,43,153,215,151,244,133,222,151,251,151,10,134,60,0,42,0,163,98,103,126,60,0,42,0,99,79,229,98,200,117,149,144,184,94,173,80,200,85,205,150,137,88,222,90,117,97,253,110,24,145,230,105,112,86,197,88,193,100,173,111,250,144,91,149,195,129,85,118,221,150,222,147,217,156,241,94,73,112,84,153,69,156,219,157,112,118,60,0,42,0,129,85,216,99,69,114,153,152,82,152,43,156,60,0,42,0,56,108,44,117,143,84,243,108,209,79,199,82,200,82,16,104,199,87,128,96,225,103,140,109,127,96,4,61,155,80,229,96,17,97,103,110,103,120,96,138,78,88,113,93,110,95,57,97,249,134,66,97,10,142,156,121,172,156,52,142,210,155,60,0,42,0,40,117,218,130,159,145,60,0,42,0,58,96,61,120,38,0,39,0,40,0,39,0,0,78,39,0,41,0,39,0,60,0,60,0,60,0,32,50,38,0,39,0,40,0,39,0,3,78,39,0,41,0,39,0,60,0,60,0,60,0,38,50,38,0,39,0,40,0,39,0,9,78,39,0,41,0,39,0,60,0,60,0,60,0,34,50,38,0,39,0,40,0,39,0,93,78,39,0,41,0,39,0,60,0,60,0,60,0,40,50,38,0,39,0,40,0,39,0,140,78,39,0,41,0,39,0,60,0,60,0,60,0,33,50,38,0,39,0,40,0,39,0,148,78,39,0,41,0,39,0,60,0,60,0,60,0,36,50,38,0,39,0,40,0,39,0,227,78,39,0,41,0,39,0,60,0,60,0,60,0,57,50,38,0,39,0,40,0,39,0,1,79,39,0,41,0,39,0,60,0,60,0,60,0,61,50,38,0,39,0,40,0,39,0,17,79,39,0,41,0,39,0,60,0,60,0,60,0,65,50,38,0,39,0,40,0,39,0,107,81,39,0,41,0,39,0,60,0,60,0,60,0,39,50,38,0,39,0,40,0,39,0,109,81,39,0,41,0,39,0,60,0,60,0,60,0,37,50,38,0,39,0,40,0,39,0,180,82,39,0,41,0,39,0,60,0,60,0,60,0,56,50,38,0,39,0,40,0,39,0,65,83,39,0,41,0,39,0,60,0,60,0,60,0,41,50,38,0,39,0,40,0,39,0,84,83,39,0,41,0,39,0,60,0,60,0,60,0,63,50,38,0,39,0,40,0,39,0,13,84,39,0,41,0,39,0,60,0,60,0,60,0,52,50,38,0,39,0,40,0,39,0,124,84,39,0,41,0,39,0,60,0,60,0,60,0,58,50,38,0,39,0,40,0,39,0,219,86,39,0,41,0,39,0,60,0,60,0,60,0,35,50,38,0,39,0,40,0,39,0,31,87,39,0,41,0,39,0,60,0,60,0,60,0,47,50,38,0,39,0,40,0,39,0,102,91,39,0,41,0,39,0,60,0,60,0,60,0,59,50,38,0,39,0,40,0,39,0,229,101,39,0,41,0,39,0,60,0,60,0,60,0,48,50,38,0,39,0,40,0,39,0,8,103,39,0,41,0,39,0,60,0,60,0,60,0,42,50,38,0,39,0,40,0,39,0,9,103,39,0,41,0,39,0,60,0,60,0,60,0,50,50,38,0,39,0,40,0,39,0,40,103,39,0,41,0,39,0,60,0,60,0,60,0,45,50,38,0,39,0,40,0,39,0,42,104,39,0,41,0,39,0,60,0,60,0,60,0,49,50,38,0,39,0,40,0,39,0,52,108,39,0,41,0,39,0,60,0,60,0,60,0,44,50,38,0,39,0,40,0,39,0,107,112,39,0,41,0,39,0,60,0,60,0,60,0,43,50,38,0,39,0,40,0,39,0,121,114,39,0,41,0,39,0,60,0,60,0,60,0,53,50,38,0,39,0,40,0,39,0,227,118,39,0,41,0,39,0,60,0,60,0,60,0,60,50,38,0,39,0,40,0,39,0,62,121,39,0,41,0,39,0,60,0,60,0,60,0,51,50,38,0,39,0,40,0,39,0,93,121,39,0,41,0,39,0,60,0,60,0,60,0,55,50,38,0,39,0,40,0,39,0,109,121,39,0,41,0,39,0,60,0,60,0,60,0,64,50,38,0,39,0,40,0,39,0,234,129,39,0,41,0,39,0,60,0,60,0,60,0,66,50,38,0,39,0,40,0,39,0,243,129,39,0,41,0,39,0,60,0,60,0,60,0,67,50,38,0,39,0,40,0,39,0,161,140,39,0,41,0,39,0,60,0,60,0,60,0,54,50,38,0,39,0,40,0,39,0,199,140,39,0,41,0,39,0,60,0,60,0,60,0,62,50,38,0,39,0,40,0,39,0,209,145,39,0,41,0,39,0,60,0,60,0,60,0,46,50,38,0,48,0,185,112,60,0,60,0,60,0,88,51,38,0,49,0,48,0,229,101,60,0,60,0,60,0,233,51,38,0,49,0,48,0,8,103,60,0,60,0,60,0,201,50,38,0,49,0,48,0,185,112,60,0,60,0,60,0,98,51,38,0,49,0,49,0,229,101,60,0,60,0,60,0,234,51,38,0,49,0,49,0,8,103,60,0,60,0,60,0,202,50,38,0,49,0,49,0,185,112,60,0,60,0,60,0,99,51,38,0,49,0,50,0,229,101,60,0,60,0,60,0,235,51,38,0,49,0,50,0,8,103,60,0,60,0,60,0,203,50,38,0,49,0,50,0,185,112,60,0,60,0,60,0,100,51,38,0,49,0,51,0,229,101,60,0,60,0,60,0,236,51,38,0,49,0,51,0,185,112,60,0,60,0,60,0,101,51,38,0,49,0,52,0,229,101,60,0,60,0,60,0,237,51,38,0,49,0,52,0,185,112,60,0,60,0,60,0,102,51,38,0,49,0,53,0,229,101,60,0,60,0,60,0,238,51,38,0,49,0,53,0,185,112,60,0,60,0,60,0,103,51,38,0,49,0,54,0,229,101,60,0,60,0,60,0,239,51,38,0,49,0,54,0,185,112,60,0,60,0,60,0,104,51,38,0,49,0,55,0,229,101,60,0,60,0,60,0,240,51,38,0,49,0,55,0,185,112,60,0,60,0,60,0,105,51,38,0,49,0,56,0,229,101,60,0,60,0,60,0,241,51,38,0,49,0,56,0,185,112,60,0,60,0,60,0,106,51,38,0,49,0,57,0,229,101,60,0,60,0,60,0,242,51,38,0,49,0,57,0,185,112,60,0,60,0,60,0,107,51,38,0,49,0,229,101,60,0,60,0,60,0,224,51,38,0,49,0,8,103,60,0,60,0,60,0,192,50,38,0,49,0,185,112,60,0,60,0,60,0,89,51,38,0,50,0,48,0,229,101,60,0,60,0,60,0,243,51,38,0,50,0,48,0,185,112,60,0,60,0,60,0,108,51,38,0,50,0,49,0,229,101,60,0,60,0,60,0,244,51,38,0,50,0,49,0,185,112,60,0,60,0,60,0,109,51,38,0,50,0,50,0,229,101,60,0,60,0,60,0,245,51,38,0,50,0,50,0,185,112,60,0,60,0,60,0,110,51,38,0,50,0,51,0,229,101,60,0,60,0,60,0,246,51,38,0,50,0,51,0,185,112,60,0,60,0,60,0,111,51,38,0,50,0,52,0,229,101,60,0,60,0,60,0,247,51,38,0,50,0,52,0,185,112,60,0,60,0,60,0,112,51,38,0,50,0,53,0,229,101,60,0,60,0,60,0,248,51,38,0,50,0,54,0,229,101,60,0,60,0,60,0,249,51,38,0,50,0,55,0,229,101,60,0,60,0,60,0,250,51,38,0,50,0,56,0,229,101,60,0,60,0,60,0,251,51,38,0,50,0,57,0,229,101,60,0,60,0,60,0,252,51,38,0,50,0,229,101,60,0,60,0,60,0,225,51,38,0,50,0,8,103,60,0,60,0,60,0,193,50,38,0,50,0,185,112,60,0,60,0,60,0,90,51,38,0,51,0,48,0,229,101,60,0,60,0,60,0,253,51,38,0,51,0,49,0,229,101,60,0,60,0,60,0,254,51,38,0,51,0,229,101,60,0,60,0,60,0,226,51,38,0,51,0,8,103,60,0,60,0,60,0,194,50,38,0,51,0,185,112,60,0,60,0,60,0,91,51,38,0,52,0,229,101,60,0,60,0,60,0,227,51,38,0,52,0,8,103,60,0,60,0,60,0,195,50,38,0,52,0,185,112,60,0,60,0,60,0,92,51,38,0,53,0,229,101,60,0,60,0,60,0,228,51,38,0,53,0,8,103,60,0,60,0,60,0,196,50,38,0,53,0,185,112,60,0,60,0,60,0,93,51,38,0,54,0,229,101,60,0,60,0,60,0,229,51,38,0,54,0,8,103,60,0,60,0,60,0,197,50,38,0,54,0,185,112,60,0,60,0,60,0,94,51,38,0,55,0,229,101,60,0,60,0,60,0,230,51,38,0,55,0,8,103,60,0,60,0,60,0,198,50,38,0,55,0,185,112,60,0,60,0,60,0,95,51,38,0,56,0,229,101,60,0,60,0,60,0,231,51,38,0,56,0,8,103,60,0,60,0,60,0,199,50,38,0,56,0,185,112,60,0,60,0,60,0,96,51,38,0,57,0,229,101,60,0,60,0,60,0,232,51,38,0,57,0,8,103,60,0,60,0,60,0,200,50,38,0,57,0,185,112,60,0,60,0,60,0,97,51,38,0,20,48,9,78,21,48,60,0,60,0,60,0,60,216,65,222,38,0,20,48,140,78,21,48,60,0,60,0,60,0,60,216,66,222,38,0,20,48,221,82,21,48,60,0,60,0,60,0,60,216,71,222,38,0,20,48,137,91,21,48,60,0,60,0,60,0,60,216,67,222,38,0,20,48,83,98,21,48,60,0,60,0,60,0,60,216,69,222,38,0,20,48,87,101,21,48,60,0,60,0,60,0,60,216,72,222,38,0,20,48,44,103,21,48,60,0,60,0,60,0,60,216,64,222,38,0,20,48,185,112,21,48,60,0,60,0,60,0,60,216,68,222,38,0,20,48,215,118,21,48,60,0,60,0,60,0,60,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,38,0,0,78,60,0,60,0,60,0,146,49,38,0,0,78,60,0,60,0,60,0,128,50,38,0,0,78,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,148,49,38,0,9,78,60,0,60,0,60,0,130,50,38,0,9,78,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,150,49,38,0,10,78,60,0,60,0,60,0,164,50,38,0,11,78,60,0,60,0,60,0,152,49,38,0,11,78,60,0,60,0,60,0,166,50,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,45,78,60,0,60,0,60,0,151,49,38,0,45,78,60,0,60,0,60,0,165,50,38,0,45,78,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,38,0,89,78,60,0,60,0,60,0,154,49,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,38,0,140,78,60,0,60,0,60,0,147,49,38,0,140,78,60,0,60,0,60,0,129,50,38,0,140,78,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,38,0,186,78,60,0,60,0,60,0,159,49,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,38,0,107,81,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,38,0,65,83,60,0,60,0,60,0,56,48,38,0,65,83,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,38,0,105,83,60,0,60,0,60,0,25,47,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,38,0,243,83,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,149,49,38,0,219,86,60,0,60,0,60,0,131,50,38,0,31,87,60,0,60,0,60,0,31,47,38,0,31,87,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,38,0,39,89,99,107,60,0,60,0,60,0,125,51,38,0,41,89,60,0,60,0,60,0,157,49,38,0,41,89,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,38,0,115,89,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,38,0,34,92,60,0,60,0,60,0,42,47,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,38,0,230,93,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,16,98,60,0,60,0,60,0,123,51,38,0,122,94,60,0,60,0,60,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,38,0,75,98,60,0,60,0,60,0,60,216,16,222,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,135,101,60,0,60,0,60,0,66,47,38,0,135,101,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,229,101,60,0,60,0,60,0,71,47,38,0,229,101,60,0,60,0,60,0,144,50,38,0,14,102,187,108,60,0,60,0,60,0,126,51,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,140,84,60,0,60,0,60,0,124,51,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,38,0,8,103,60,0,60,0,60,0,138,50,38,0,8,103,60,0,60,0,60,0,60,216,55,222,38,0,9,103,60,0,60,0,60,0,146,50,38,0,9,103,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,38,0,40,103,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,38,0,42,104,15,95,26,79,62,121,60,0,60,0,60,0,127,51,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,38,0,52,108,60,0,60,0,60,0,140,50,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,38,0,107,112,60,0,60,0,60,0,139,50,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,38,0,31,117,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,138,127,60,0,60,0,60,0,122,47,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,38,0,137,128,60,0,60,0,60,0,129,47,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,77,134,60,0,60,0,60,0,140,47,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,126,137,60,0,60,0,60,0,145,47,38,0,139,137,60,0,60,0,60,0,146,47,38,0,210,137,60,0,60,0,60,0,147,47,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,38,0,112,141,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,38,0,73,145,60,0,60,0,60,0,163,47,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,38,0,209,145,60,0,60,0,60,0,142,50,38,0,119,149,60,0,60,0,60,0,167,47,38,0,128,149,60,0,60,0,60,0,168,47,38,0,28,150,60,0,60,0,60,0,169,47,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,38,0,81,151,60,0,60,0,60,0,173,47,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,168,152,60,0,60,0,60,0,181,47,38,0,219,152,60,0,60,0,60,0,182,47,38,0,223,152,60,0,60,0,60,0,183,47,38,0,150,153,60,0,60,0,60,0,184,47,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,168,154,60,0,60,0,60,0,187,47,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,38,0,90,155,60,0,60,0,60,0,194,47,38,0,229,156,60,0,60,0,60,0,195,47,38,0,117,158,60,0,60,0,60,0,196,47,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,38,0,82,159,60,0,60,0,60,0,210,47,38,0,141,159,60,0,60,0,60,0,211,47,38,0,156,159,60,0,60,0,60,0,212,47,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,0,0,239,223,24,114,91,0,105,0,109,0,112,0,111,0,114,0,116,0,32,0,122,0,104,0,45,0,117,0,45,0,99,0,111,0,45,0,112,0,114,0,105,0,118,0,97,0,116,0,101,0,45,0,112,0,105,0,110,0,121,0,105,0,110,0,93,0,91,0,114,0,101,0,111,0,114,0,100,0,101,0,114,0,32,0,72,0,97,0,110,0,105,0,32,0,66,0,111,0,112,0,111,0,93,0,38,0,91,0,108,0,97,0,115,0,116,0,32,0,114,0,101,0,103,0,117,0,108,0,97,0,114,0,93,0,60,0,39,0,208,253,1,40,39,0,60,0,42,0,0,78,40,78,54,78,63,78,64,78,65,78,89,78,90,78,132,46,91,78,64,216,202,220,64,216,203,220,64,216,204,220,64,216,205,220,64,216,209,220,133,78,64,216,12,221,71,216,232,223,6,48,7,48,33,48,37,48,59,48,60,0,39,0,208,253,2,40,39,0,60,0,42,0,1,78,2,78,3,78,4,78,5,78,6,78,41,78,55,78,66,78,67,78,68,78,64,216,134,220,64,216,135,220,64,216,138,220,92,78,93,78,134,78,64,216,14,221,140,78,160,78,186,78,187,78,63,81,101,81,107,81,134,46,130,81,150,81,171,81,224,81,135,46,245,81,0,82,1,82,136,46,2,82,155,82,249,82,21,83,26,83,56,83,65,83,138,46,92,83,105,83,130,83,182,83,128,46,200,83,220,93,160,139,207,46,214,46,34,48,36,48,38,48,60,0,39,0,208,253,3,40,39,0,60,0,42,0,7,78,8,78,9,78,10,78,11,78,12,78,144,78,68,83,42,78,43,78,4,52,56,78,73,78,69,78,70,78,71,78,72,78,74,78,94,78,95,78,96,78,135,78,141,78,142,78,143,78,161,78,188,78,189,78,190,78,191,78,64,216,164,221,64,81,102,81,225,81,226,81,227,81,3,82,4,82,156,82,250,82,66,83,67,83,106,83,107,83,62,53,201,83,227,83,215,86,31,87,235,88,2,89,10,89,21,89,39,89,40,89,115,89,80,91,81,91,82,91,83,91,128,91,248,91,140,46,141,46,15,92,34,92,70,216,193,223,70,216,194,223,56,92,110,92,113,92,219,93,221,93,229,93,241,93,242,93,243,93,254,93,114,94,97,78,122,94,127,94,244,94,254,94,11,95,19,95,80,95,149,46,81,95,97,95,115,95,196,95,76,98,77,98,53,108,173,114,159,126,190,46,121,130,204,46,232,149,29,150,222,152,99,153,108,154,5,48,35,48,39,48,60,0,39,0,208,253,4,40,39,0,60,0,42,0,13,78,14,78,15,78,16,78,17,78,18,78,19,78,45,78,46,78,47,78,48,78,57,78,58,78,75,78,76,78,57,92,99,78,100,78,101,78,102,78,136,78,145,78,146,78,147,78,148,78,149,78,150,78,162,78,163,78,192,78,193,78,194,78,195,78,196,78,197,78,198,78,199,78,200,78,201,78,202,78,203,78,204,78,205,78,206,78,207,78,208,78,209,78,210,78,211,78,65,81,66,81,67,81,103,81,108,81,109,81,110,81,111,81,131,81,132,81,133,81,134,81,135,81,136,81,151,81,152,81,193,52,228,81,65,216,48,222,246,81,65,216,118,222,5,82,6,82,7,82,8,82,157,82,158,82,251,82,252,82,253,82,254,82,255,82,0,83,1,83,2,83,22,83,43,53,57,83,58,83,69,83,70,83,71,83,72,83,57,53,93,83,94,83,108,83,131,83,132,83,133,83,134,83,183,83,184,83,185,83,202,83,203,83,204,83,205,83,206,83,32,87,33,87,68,216,60,222,236,88,3,89,41,89,42,89,43,89,44,89,45,89,84,91,16,92,17,92,35,92,36,92,58,92,111,92,98,78,114,92,244,93,60,0,42,0,255,93,0,94,1,94,123,94,255,94,0,95,12,95,20,95,21,95,22,95,73,216,188,220,195,95,198,95,8,98,54,98,55,98,56,98,75,98,78,98,74,216,102,222,47,101,52,101,53,101,135,101,151,101,164,101,185,101,224,101,225,101,156,46,229,101,240,102,157,46,8,103,40,103,41,103,76,216,180,223,32,107,98,107,176,159,121,107,179,107,203,107,204,107,212,107,219,107,15,108,20,108,52,108,107,112,108,112,42,114,165,46,43,114,54,114,59,114,44,78,63,114,71,114,89,114,38,62,167,46,91,114,92,114,172,114,139,115,82,216,233,220,59,121,85,216,5,222,83,127,2,128,128,128,188,46,93,216,7,222,193,137,161,139,162,139,163,139,164,139,165,139,29,141,102,143,205,46,182,143,233,149,230,151,206,152,40,48,41,48,60,0,39,0,208,253,5,40,39,0,60,0,42,0,23,78,20,78,21,78,22,78,24,78,25,78,26,78,27,78,28,78,29,78,0,52,49,78,59,78,60,78,77,78,78,78,79,78,80,78,64,216,148,220,103,78,151,78,212,78,213,78,214,78,215,78,216,78,217,78,218,78,219,78,220,78,221,78,222,78,223,78,224,78,225,78,226,78,227,78,228,78,229,78,230,78,231,78,232,78,233,78,234,78,235,78,236,78,237,78,48,52,49,52,50,52,51,52,52,52,53,52,54,52,55,52,64,216,169,221,64,216,171,221,68,81,69,81,176,52,112,81,137,81,138,81,139,81,140,81,65,216,71,221,153,81,154,81,172,81,173,81,174,81,175,81,229,81,230,81,231,81,247,81,248,81,249,81,250,81,251,81,9,82,10,82,11,82,12,82,13,82,159,82,160,82,161,82,162,82,3,83,4,83,5,83,6,83,7,83,23,83,27,83,28,83,29,83,30,83,73,83,74,83,76,83,95,83,96,83,97,83,98,83,109,83,110,83,111,83,66,216,17,222,135,83,136,83,137,83,186,83,187,83,188,83,207,83,208,83,209,83,228,83,229,83,230,83,231,83,232,83,233,83,234,83,235,83,236,83,60,0,42,0,237,83,238,83,239,83,240,83,241,83,242,83,243,83,244,83,245,83,246,83,247,83,248,83,249,83,250,83,251,83,252,83,253,83,254,83,66,216,159,223,66,216,168,223,66,216,169,223,216,86,217,86,218,86,219,86,220,86,177,159,34,87,35,87,36,87,37,87,38,87,39,87,38,54,237,88,4,89,22,89,23,89,24,89,46,89,47,89,48,89,49,89,50,89,51,89,52,89,116,89,117,89,118,89,85,91,129,91,130,91,131,91,132,91,249,91,18,92,19,92,20,92,21,92,59,92,60,92,115,92,116,92,117,92,118,92,119,92,230,93,231,93,232,93,2,94,3,94,4,94,5,94,50,56,51,56,115,94,124,94,128,94,129,94,130,94,131,94,1,95,13,95,23,95,24,95,82,95,212,56,197,95,250,56,199,95,201,95,202,95,73,216,175,221,9,98,10,98,11,98,57,98,80,98,81,98,82,98,83,98,84,98,85,98,86,98,79,98,165,101,230,101,231,101,76,216,61,221,241,102,42,103,43,103,44,103,45,103,46,103,47,103,48,103,99,107,122,107,205,107,16,108,17,108,21,108,58,108,54,108,55,108,56,108,57,108,60,0,42,0,59,108,62,108,63,108,64,108,65,108,67,108,68,108,69,108,71,108,72,108,73,108,109,112,174,114,175,114,176,114,132,115,137,115,138,115,140,115,141,115,220,116,230,116,24,117,31,117,40,117,41,117,48,117,49,117,50,117,51,117,52,117,53,117,139,117,83,216,19,221,170,46,146,117,118,118,125,118,174,118,191,118,238,118,219,119,226,119,243,119,58,121,172,46,184,121,190,121,116,122,203,122,160,126,82,127,88,216,106,222,88,216,107,222,89,216,18,222,138,128,122,130,100,136,166,139,167,139,168,139,169,139,170,139,171,139,172,139,173,139,174,139,175,139,176,139,177,139,103,143,183,143,146,144,147,144,133,148,127,149,234,149,30,150,31,150,100,153,101,153,109,154,31,158,153,159,60,0,39,0,208,253,6,40,39,0,60,0,42,0,30,78,31,78,32,78,33,78,34,78,1,52,81,78,82,78,83,78,84,78,104,78,105,78,106,78,107,78,108,78,109,78,110,78,111,78,112,78,137,78,152,78,153,78,154,78,164,78,165,78,166,78,167,78,43,52,238,78,239,78,240,78,241,78,242,78,243,78,244,78,245,78,246,78,247,78,248,78,249,78,250,78,251,78,252,78,253,78,254,78,255,78,0,79,1,79,2,79,3,79,4,79,5,79,6,79,7,79,8,79,9,79,10,79,11,79,12,79,13,79,14,79,15,79,16,79,17,79,18,79,19,79,20,79,21,79,22,79,23,79,24,79,25,79,26,79,27,79,28,79,29,79,30,79,31,79,32,79,33,79,34,79,35,79,36,79,37,79,38,79,39,79,40,79,41,79,42,79,43,79,44,79,100,79,56,52,57,52,59,52,63,52,64,52,64,216,193,221,64,216,212,221,70,81,71,81,72,81,73,81,74,81,104,81,61,108,113,81,114,81,115,81,116,81,141,81,142,81,155,81,156,81,176,81,177,81,178,81,179,81,180,81,65,216,179,221,232,81,233,81,234,81,235,81,252,81,14,82,15,82,16,82,60,0,42,0,17,82,18,82,19,82,20,82,21,82,22,82,23,82,24,82,25,82,26,82,27,82,163,82,164,82,165,82,166,82,167,82,168,82,8,83,31,83,32,83,33,83,34,83,75,83,77,83,78,83,79,83,80,83,59,53,112,83,113,83,138,83,139,83,140,83,141,83,66,53,189,83,190,83,210,83,255,83,0,84,1,84,2,84,3,84,4,84,5,84,6,84,7,84,8,84,9,84,10,84,11,84,12,84,13,84,14,84,15,84,16,84,17,84,18,84,19,84,20,84,21,84,22,84,23,84,102,53,66,216,191,223,66,216,198,223,221,86,222,86,223,86,224,86,225,86,226,86,227,86,40,87,41,87,42,87,43,87,44,87,45,87,46,87,47,87,48,87,49,87,50,87,51,87,52,87,53,87,54,87,55,87,56,87,57,87,58,87,68,216,79,222,238,88,5,89,25,89,26,89,27,89,53,89,54,89,55,89,56,89,57,89,58,89,59,89,60,89,119,89,120,89,121,89,122,89,123,89,124,89,125,89,126,89,127,89,128,89,129,89,130,89,131,89,132,89,133,89,134,89,135,89,136,89,165,54,69,216,184,222,69,216,186,222,86,91,60,0,42,0,87,91,88,91,89,91,70,216,68,221,133,91,134,91,135,91,136,91,137,91,250,91,251,91,252,91,22,92,23,92,24,92,37,92,38,92,39,92,61,92,71,216,42,220,112,92,120,92,121,92,122,92,123,92,124,92,125,92,126,92,127,92,128,92,129,92,130,92,131,92,71,216,70,221,222,93,223,93,233,93,234,93,6,94,7,94,8,94,52,56,53,56,54,56,116,94,117,94,118,94,132,94,133,94,134,94,245,94,2,95,14,95,15,95,16,95,25,95,26,95,27,95,28,95,83,95,116,95,117,95,73,216,193,220,200,95,203,95,207,95,211,95,212,95,213,95,214,95,217,95,218,95,219,95,73,216,190,221,12,98,13,98,14,98,15,98,16,98,87,98,88,98,89,98,90,98,91,98,92,98,93,98,94,98,96,98,97,98,98,98,99,98,100,98,101,98,102,98,103,98,104,98,105,98,106,98,107,98,108,98,95,98,48,101,54,101,55,101,232,101,233,101,234,101,235,101,236,101,237,101,238,101,239,101,242,102,243,102,48,59,9,103,49,103,50,103,51,103,52,103,53,103,54,103,55,103,56,103,57,103,58,103,59,103,60,103,60,0,42,0,61,103,62,103,63,103,64,103,65,103,66,103,67,103,65,59,33,107,34,107,100,107,123,107,206,107,213,107,18,108,22,108,23,108,24,108,60,108,70,108,74,108,75,108,76,108,77,108,78,108,79,108,80,108,81,108,82,108,83,108,84,108,85,108,87,108,88,108,89,108,90,108,91,108,92,108,93,108,95,108,96,108,97,108,98,108,99,108,100,108,119,108,110,112,111,112,112,112,113,112,114,112,115,112,55,114,93,114,94,114,95,114,177,114,178,114,179,114,180,114,181,114,183,114,184,114,81,216,37,223,142,115,143,115,144,115,145,115,168,62,169,62,170,62,42,117,54,117,126,118,127,118,174,46,60,121,117,122,249,122,115,124,248,124,249,124,161,126,162,126,163,126,164,126,165,126,166,126,167,126,168,126,169,126,170,126,171,126,54,127,81,127,138,127,88,216,75,223,182,46,88,216,76,223,189,127,1,128,3,128,12,128,18,128,51,128,127,128,137,128,139,128,140,128,141,128,142,128,227,129,234,129,243,129,252,129,90,216,81,221,12,130,27,130,31,130,110,130,114,130,120,130,145,68,123,130,124,130,125,130,126,130,127,130,60,0,42,0,128,130,129,130,130,130,77,134,107,134,64,136,76,136,99,136,126,137,127,137,128,137,194,137,178,139,179,139,180,139,181,139,182,139,183,139,184,139,185,139,186,139,187,139,188,139,189,139,190,139,191,139,192,139,30,141,31,141,32,141,113,141,104,143,184,143,185,143,186,143,187,143,188,143,189,143,36,250,148,144,150,144,151,144,152,144,153,144,154,144,155,144,156,144,157,144,134,148,135,148,235,149,236,149,237,149,238,149,239,149,32,150,33,150,34,150,35,150,36,150,117,152,102,153,103,153,110,154,111,154,112,154,80,159,60,0,39,0,208,253,7,40,39,0,60,0,42,0,35,78,36,78,37,78,61,78,64,216,33,220,50,78,64,216,104,220,85,78,113,78,114,78,138,78,64,216,24,221,156,78,168,78,169,78,170,78,45,79,46,79,47,79,48,79,49,79,50,79,51,79,52,79,53,79,54,79,55,79,56,79,57,79,58,79,59,79,60,79,61,79,62,79,63,79,64,79,65,79,66,79,67,79,68,79,69,79,70,79,71,79,72,79,73,79,74,79,75,79,77,79,78,79,79,79,80,79,81,79,82,79,83,79,84,79,85,79,86,79,87,79,88,79,89,79,90,79,91,79,92,79,93,79,94,79,95,79,96,79,97,79,98,79,99,79,101,79,102,79,103,79,104,79,70,52,64,216,242,221,75,81,76,81,77,81,78,81,79,81,80,81,81,81,179,52,117,81,143,81,157,81,181,81,182,81,183,81,184,81,185,81,186,81,187,81,200,52,236,81,28,82,29,82,30,82,31,82,32,82,33,82,34,82,35,82,36,82,37,82,38,82,39,82,40,82,41,82,42,82,43,82,44,82,45,82,223,52,169,82,170,82,171,82,172,82,173,82,174,82,175,82,176,82,177,82,178,82,179,82,180,82,9,83,60,0,42,0,66,216,213,220,35,83,36,83,37,83,48,53,59,83,55,53,99,83,100,83,114,83,115,83,116,83,117,83,142,83,143,83,144,83,145,83,191,83,211,83,24,84,25,84,26,84,27,84,28,84,29,84,30,84,31,84,32,84,33,84,34,84,35,84,36,84,37,84,38,84,39,84,40,84,41,84,42,84,43,84,44,84,45,84,46,84,47,84,48,84,49,84,50,84,51,84,52,84,53,84,54,84,55,84,56,84,57,84,58,84,59,84,60,84,61,84,62,84,63,84,64,84,65,84,66,84,67,84,68,84,69,84,70,84,71,84,72,84,73,84,74,84,75,84,76,84,77,84,78,84,79,84,80,84,81,84,82,84,83,84,84,84,85,84,86,84,87,84,88,84,89,84,90,84,91,84,92,84,109,53,112,53,114,53,66,216,203,223,66,216,226,223,66,216,235,223,66,216,251,223,66,216,255,223,228,86,229,86,230,86,231,86,232,86,233,86,234,86,235,86,236,86,237,86,238,86,239,86,240,86,241,86,242,86,243,86,244,86,245,86,59,87,60,87,61,87,62,87,63,87,64,87,65,87,66,87,67,87,68,87,69,87,70,87,71,87,72,87,60,0,42,0,73,87,74,87,75,87,76,87,77,87,78,87,79,87,80,87,81,87,82,87,83,87,84,87,85,87,86,87,87,87,88,87,89,87,90,87,91,87,92,87,93,87,94,87,95,87,96,87,41,54,43,54,45,54,46,54,48,54,68,216,124,222,239,88,240,88,241,88,242,88,243,88,6,89,11,89,61,89,62,89,63,89,64,89,65,89,66,89,137,89,138,89,139,89,140,89,142,89,143,89,144,89,145,89,146,89,147,89,148,89,149,89,150,89,151,89,152,89,153,89,154,89,155,89,156,89,157,89,158,89,159,89,160,89,161,89,162,89,163,89,164,89,165,89,166,89,167,89,168,89,169,89,170,89,171,89,170,54,172,54,69,216,192,222,69,216,193,222,69,216,194,222,69,216,211,222,69,216,213,222,90,91,91,91,92,91,93,91,94,91,138,91,139,91,140,91,141,91,142,91,143,91,144,91,145,91,146,91,253,91,254,91,255,91,40,92,41,92,42,92,43,92,44,92,62,92,63,92,64,92,65,92,66,92,67,92,132,92,133,92,134,92,135,92,136,92,137,92,138,92,139,92,140,92,142,92,143,92,144,92,145,92,146,92,147,92,148,92,60,0,42,0,149,92,150,92,151,92,152,92,153,92,154,92,155,92,156,92,71,216,83,221,71,216,94,221,141,92,224,93,235,93,245,93,9,94,10,94,11,94,12,94,13,94,14,94,15,94,16,94,55,56,56,56,57,56,59,56,135,94,136,94,137,94,138,94,139,94,140,94,141,94,142,94,143,94,144,94,145,94,146,94,147,94,148,94,247,94,3,95,4,95,5,95,29,95,30,95,31,95,32,95,72,216,189,223,98,95,99,95,100,95,118,95,119,95,120,95,121,95,122,95,123,95,200,159,201,159,73,216,201,220,73,216,204,220,204,95,205,95,206,95,208,95,209,95,210,95,215,95,216,95,220,95,0,57,223,95,225,95,227,95,228,95,230,95,231,95,232,95,234,95,235,95,236,95,237,95,238,95,239,95,240,95,241,95,242,95,243,95,244,95,246,95,247,95,248,95,249,95,250,95,251,95,252,95,254,95,0,96,3,96,4,96,5,96,6,96,8,57,17,98,18,98,19,98,74,216,147,221,58,98,59,98,60,98,109,98,110,98,111,98,112,98,113,98,114,98,115,98,116,98,117,98,118,98,119,98,121,98,122,98,123,98,124,98,125,98,126,98,60,0,42,0,128,98,129,98,130,98,131,98,132,98,133,98,134,98,135,98,136,98,137,98,138,98,139,98,140,98,141,98,142,98,143,98,144,98,145,98,146,98,147,98,148,98,149,98,150,98,151,98,152,98,153,98,154,98,155,98,156,98,157,98,158,98,159,98,160,98,161,98,162,98,163,98,164,98,165,98,209,57,120,98,56,101,57,101,58,101,59,101,60,101,75,216,239,222,136,101,152,101,240,101,241,101,242,101,243,101,244,101,245,101,246,101,247,101,248,101,244,102,245,102,68,103,69,103,70,103,71,103,72,103,73,103,74,103,75,103,76,103,77,103,78,103,79,103,80,103,81,103,82,103,83,103,84,103,85,103,86,103,87,103,88,103,89,103,90,103,91,103,92,103,93,103,94,103,95,103,96,103,97,103,98,103,99,103,100,103,101,103,102,103,103,103,104,103,105,103,129,103,66,59,67,59,68,59,69,59,70,59,76,216,204,223,36,107,101,107,80,60,124,107,78,216,194,221,207,107,208,107,78,216,238,222,220,107,221,107,25,108,26,108,66,108,86,108,94,108,101,108,102,108,103,108,104,108,105,108,106,108,107,108,109,108,110,108,60,0,42,0,111,108,112,108,113,108,114,108,115,108,116,108,117,108,118,108,120,108,121,108,122,108,123,108,124,108,125,108,126,108,127,108,129,108,130,108,131,108,132,108,133,108,134,108,135,108,136,108,137,108,139,108,140,108,141,108,142,108,143,108,144,108,145,108,146,108,148,108,149,108,150,108,152,108,153,108,154,108,155,108,156,108,158,108,159,108,160,108,161,108,162,108,163,108,164,108,165,108,166,108,167,108,168,108,169,108,170,108,79,216,153,220,79,216,154,220,79,216,155,220,116,112,117,112,118,112,119,112,120,112,121,112,122,112,123,112,124,112,125,112,126,112,127,112,128,112,165,61,96,114,97,114,98,114,99,114,100,114,81,216,24,222,182,114,185,114,186,114,187,114,188,114,189,114,190,114,191,114,193,114,194,114,195,114,196,114,197,114,198,114,199,114,200,114,81,216,47,223,146,115,147,115,148,115,149,115,150,115,151,115,152,115,153,115,154,115,155,115,173,62,82,216,240,220,82,216,241,220,82,216,242,220,82,216,243,220,231,116,43,117,44,117,55,117,56,117,57,117,58,117,60,117,85,63,147,117,148,117,149,117,150,117,151,117,128,118,129,118,130,118,131,118,192,118,60,0,42,0,193,118,239,118,227,119,244,119,245,119,246,119,85,216,25,220,61,121,191,121,192,121,193,121,194,121,195,121,38,65,118,122,119,122,204,122,205,122,250,124,251,124,182,126,172,126,173,126,174,126,175,126,176,126,177,126,178,126,179,126,180,126,181,126,183,126,184,126,185,126,186,126,187,126,188,126,189,126,190,126,85,127,52,128,144,128,145,128,146,128,147,128,148,128,149,128,150,128,151,128,152,128,153,128,154,128,155,128,156,128,157,128,158,128,159,128,160,128,235,129,111,130,131,130,132,130,133,130,134,130,135,130,136,130,137,130,138,130,139,130,140,130,141,130,142,130,143,130,144,130,145,130,146,130,147,130,149,130,150,130,151,130,90,216,5,223,90,216,10,223,108,134,93,216,12,222,139,137,195,137,210,137,198,46,94,216,178,220,0,138,1,138,193,139,194,139,195,139,196,139,197,139,198,139,199,139,200,139,201,139,202,139,203,139,204,139,205,139,206,139,207,139,208,139,209,139,210,139,55,140,70,140,85,140,120,140,157,140,33,141,34,141,100,141,112,141,179,141,202,46,171,142,202,142,105,143,106,143,107,143,155,143,176,143,181,143,60,0,42,0,225,93,190,143,191,143,192,143,193,143,194,143,195,143,196,143,197,143,198,143,199,143,200,143,201,143,97,216,104,220,97,216,108,220,97,216,115,220,145,144,158,144,159,144,160,144,161,144,162,144,163,144,164,144,165,144,166,144,167,144,168,144,169,144,170,144,172,144,97,216,170,222,97,216,171,222,73,145,198,145,204,145,136,148,137,148,138,148,139,148,140,148,240,149,241,149,242,149,243,149,244,149,245,149,246,149,247,149,37,150,38,150,39,150,40,150,41,150,42,150,43,150,44,150,45,150,46,150,47,150,48,150,49,150,50,150,51,150,52,150,53,150,54,150,99,216,54,222,99,216,57,222,231,151,207,152,104,153,105,153,106,153,107,153,108,153,109,153,110,153,113,154,114,154,115,154,116,154,32,158,33,158,166,158,159,159,60,0,39,0,208,253,8,40,39,0,60,0,42,0,38,78,39,78,51,78,86,78,115,78,116,78,117,78,118,78,119,78,120,78,64,216,238,220,139,78,155,78,157,78,158,78,159,78,171,78,172,78,45,52,76,79,105,79,106,79,107,79,108,79,109,79,110,79,111,79,112,79,113,79,114,79,115,79,116,79,117,79,118,79,119,79,120,79,121,79,122,79,123,79,124,79,125,79,126,79,127,79,128,79,129,79,130,79,131,79,132,79,133,79,134,79,135,79,136,79,137,79,138,79,139,79,140,79,141,79,142,79,143,79,144,79,145,79,146,79,147,79,148,79,149,79,150,79,151,79,152,79,153,79,154,79,155,79,156,79,157,79,158,79,159,79,160,79,161,79,162,79,163,79,164,79,165,79,166,79,167,79,168,79,169,79,170,79,171,79,172,79,173,79,199,159,74,52,76,52,80,52,64,216,4,222,64,216,12,222,64,216,20,222,82,81,83,81,84,81,85,81,86,81,65,216,135,220,105,81,118,81,119,81,120,81,144,81,158,81,188,81,189,81,190,81,191,81,192,81,65,216,195,221,237,81,238,81,239,81,253,81,46,82,47,82,48,82,49,82,50,82,51,82,52,82,53,82,54,82,55,82,60,0,42,0,56,82,57,82,58,82,59,82,60,82,61,82,62,82,63,82,64,82,65,82,66,82,228,52,230,52,65,216,14,223,70,82,181,82,182,82,183,82,184,82,185,82,186,82,187,82,188,82,189,82,190,82,191,82,26,53,198,82,10,83,11,83,12,83,66,216,22,221,38,83,60,83,81,83,82,83,83,83,84,83,85,83,86,83,101,83,102,83,103,83,66,216,231,221,118,83,119,83,120,83,121,83,122,83,146,83,147,83,148,83,149,83,66,216,80,222,192,83,193,83,194,83,212,83,213,83,214,83,215,83,216,83,93,84,94,84,95,84,96,84,97,84,98,84,99,84,100,84,101,84,102,84,103,84,104,84,105,84,106,84,107,84,108,84,109,84,110,84,111,84,113,84,115,84,116,84,117,84,118,84,119,84,120,84,121,84,122,84,123,84,124,84,125,84,126,84,127,84,128,84,129,84,130,84,131,84,132,84,133,84,134,84,135,84,136,84,137,84,138,84,139,84,140,84,141,84,142,84,143,84,144,84,145,84,146,84,147,84,148,84,149,84,150,84,151,84,152,84,153,84,154,84,155,84,156,84,157,84,119,53,120,53,67,216,11,220,60,0,42,0,67,216,13,220,67,216,32,220,67,216,52,220,67,216,58,220,67,216,59,220,67,216,65,220,67,216,66,220,67,216,67,220,246,86,247,86,248,86,249,86,250,86,251,86,252,86,253,86,254,86,32,54,97,87,98,87,99,87,100,87,101,87,102,87,103,87,104,87,105,87,106,87,107,87,108,87,109,87,110,87,111,87,112,87,113,87,114,87,115,87,116,87,117,87,118,87,119,87,120,87,121,87,122,87,123,87,124,87,125,87,126,87,127,87,128,87,129,87,130,87,131,87,132,87,133,87,134,87,135,87,136,87,137,87,138,87,49,54,50,54,51,54,52,54,53,54,68,216,168,222,68,216,169,222,68,216,176,222,7,89,12,89,28,89,29,89,67,89,68,89,69,89,70,89,71,89,72,89,73,89,75,89,76,89,77,89,84,89,69,216,10,222,172,89,173,89,174,89,175,89,176,89,177,89,178,89,179,89,180,89,181,89,182,89,183,89,184,89,185,89,186,89,187,89,188,89,189,89,190,89,191,89,192,89,193,89,194,89,195,89,196,89,197,89,198,89,199,89,200,89,201,89,202,89,203,89,204,89,205,89,206,89,207,89,208,89,209,89,210,89,211,89,212,89,214,89,215,89,176,54,60,0,42,0,177,54,181,54,185,54,188,54,193,54,69,216,223,222,69,216,230,222,69,216,231,222,69,216,232,222,69,216,250,222,69,216,251,222,69,216,252,222,69,216,254,222,95,91,96,91,97,91,98,91,99,91,100,91,101,91,102,91,103,91,64,55,70,216,88,221,147,91,148,91,149,91,150,91,151,91,152,91,153,91,154,91,155,91,156,91,157,91,158,91,159,91,160,91,161,91,70,216,219,221,0,92,25,92,26,92,45,92,68,92,69,92,70,92,71,92,72,92,73,92,74,92,157,92,158,92,159,92,160,92,161,92,162,92,163,92,164,92,165,92,166,92,167,92,168,92,169,92,170,92,171,92,172,92,173,92,174,92,175,92,176,92,177,92,178,92,179,92,180,92,181,92,182,92,183,92,184,92,185,92,186,92,187,92,188,92,189,92,190,92,191,92,192,92,193,92,194,92,195,92,196,92,197,92,185,55,190,55,71,216,144,221,246,93,48,56,17,94,18,94,19,94,20,94,21,94,22,94,23,94,24,94,25,94,26,94,27,94,28,94,72,216,126,220,119,94,120,94,152,94,149,94,150,94,151,94,153,94,154,94,156,94,157,94,158,94,159,94,117,56,246,94,248,94,249,94,160,56,6,95,60,0,42,0,33,95,34,95,35,95,36,95,37,95,38,95,39,95,40,95,41,95,42,95,72,216,208,223,84,95,85,95,204,56,73,216,139,220,124,95,125,95,126,95,127,95,128,95,129,95,130,95,131,95,132,95,221,95,222,95,224,95,226,95,229,95,233,95,245,95,253,95,255,95,1,96,2,96,7,96,8,96,9,96,10,96,11,96,12,96,13,96,15,96,16,96,17,96,19,96,20,96,21,96,22,96,23,96,25,96,26,96,27,96,28,96,30,96,31,96,33,96,34,96,38,96,39,96,41,96,42,96,43,96,44,96,45,96,46,96,47,96,48,96,50,96,51,96,52,96,53,96,54,96,58,96,61,96,62,96,63,96,20,57,73,216,27,222,73,216,28,222,73,216,43,222,20,98,21,98,22,98,23,98,61,98,62,98,63,98,64,98,127,98,166,98,167,98,168,98,169,98,170,98,171,98,172,98,173,98,174,98,175,98,176,98,177,98,178,98,179,98,180,98,181,98,182,98,183,98,184,98,185,98,186,98,187,98,188,98,189,98,190,98,191,98,192,98,193,98,194,98,195,98,196,98,197,98,198,98,199,98,200,98,201,98,202,98,203,98,60,0,42,0,204,98,205,98,206,98,208,98,209,98,210,98,211,98,212,98,213,98,214,98,215,98,216,98,217,98,218,98,219,98,221,98,222,98,223,98,224,98,225,98,226,98,227,98,228,98,229,98,230,98,231,98,232,98,233,98,212,57,213,57,217,57,218,57,220,57,221,57,222,57,223,57,74,216,207,222,74,216,213,222,61,101,62,101,129,58,137,101,76,216,68,220,166,101,167,101,168,101,169,101,186,101,187,101,188,101,76,216,218,220,249,101,250,101,251,101,252,101,253,101,254,101,255,101,0,102,1,102,2,102,3,102,4,102,5,102,6,102,7,102,8,102,9,102,10,102,11,102,12,102,13,102,14,102,15,102,16,102,17,102,18,102,19,102,20,102,21,102,22,102,23,102,24,102,25,102,246,102,10,103,11,103,12,103,13,103,51,59,106,103,107,103,108,103,109,103,110,103,111,103,112,103,113,103,114,103,115,103,116,103,117,103,118,103,119,103,120,103,121,103,122,103,123,103,124,103,125,103,126,103,127,103,128,103,130,103,131,103,132,103,133,103,134,103,135,103,136,103,137,103,138,103,139,103,140,103,141,103,142,103,143,103,144,103,60,0,42,0,145,103,146,103,147,103,148,103,149,103,150,103,151,103,152,103,153,103,154,103,155,103,156,103,157,103,158,103,159,103,160,103,161,103,162,103,163,103,164,103,165,103,166,103,167,103,168,103,169,103,170,103,171,103,172,103,173,103,71,59,72,59,73,59,74,59,75,59,76,59,77,59,78,59,79,59,80,59,76,216,222,223,76,216,230,223,76,216,244,223,76,216,245,223,76,216,249,223,76,216,250,223,76,216,254,223,77,216,0,220,249,103,35,107,37,107,38,107,39,107,32,60,102,107,103,107,104,107,105,107,125,107,126,107,127,107,128,107,129,107,180,107,209,107,222,107,223,107,19,108,27,108,28,108,29,108,108,108,128,108,138,108,147,108,157,108,171,108,172,108,173,108,174,108,176,108,177,108,178,108,179,108,180,108,181,108,182,108,183,108,184,108,185,108,186,108,187,108,188,108,189,108,190,108,191,108,192,108,193,108,194,108,195,108,196,108,197,108,198,108,199,108,200,108,202,108,203,108,204,108,205,108,206,108,207,108,208,108,209,108,210,108,211,108,212,108,213,108,214,108,215,108,216,108,217,108,219,108,220,108,221,108,222,108,223,108,224,108,225,108,226,108,60,0,42,0,227,108,228,108,229,108,230,108,231,108,232,108,233,108,234,108,235,108,236,108,237,108,238,108,239,108,241,108,242,108,243,108,247,108,248,108,249,108,250,108,251,108,252,108,253,108,254,108,203,60,205,60,209,60,79,216,181,220,79,216,183,220,79,216,199,220,79,216,200,220,79,216,201,220,48,109,135,112,129,112,130,112,131,112,132,112,133,112,134,112,136,112,137,112,138,112,139,112,140,112,141,112,142,112,143,112,144,112,145,112,146,112,147,112,148,112,149,112,150,112,151,112,152,112,153,112,154,112,155,112,156,112,157,112,158,112,80,216,163,221,80,216,164,221,80,216,165,221,80,216,172,221,80,216,181,221,44,114,45,114,56,114,64,114,72,114,101,114,102,114,103,114,104,114,105,114,106,114,107,114,108,114,47,62,81,216,42,222,192,114,201,114,203,114,204,114,205,114,206,114,207,114,208,114,209,114,210,114,211,114,212,114,213,114,214,114,215,114,216,114,217,114,218,114,219,114,220,114,221,114,222,114,98,62,105,62,156,115,157,115,158,115,159,115,160,115,161,115,162,115,163,115,164,115,165,115,166,115,167,115,168,115,169,115,170,115,171,115,172,115,173,115,174,115,175,115,176,115,60,0,42,0,177,115,82,216,251,220,82,216,255,220,82,216,0,221,82,216,1,221,82,216,12,221,221,116,232,116,233,116,25,117,59,117,61,117,62,117,63,117,64,117,65,117,66,117,67,117,68,117,69,117,140,117,152,117,153,117,154,117,155,117,156,117,157,117,158,117,159,117,160,117,161,117,119,118,132,118,175,118,194,118,240,118,241,118,242,118,243,118,244,118,245,118,228,119,229,119,247,119,248,119,249,119,250,119,251,119,252,119,253,119,254,119,255,119,0,120,1,120,85,216,37,220,62,121,63,121,64,121,65,121,66,121,67,121,196,121,197,121,198,121,199,121,200,121,201,121,202,121,120,122,121,122,122,122,123,122,146,65,206,122,207,122,196,65,250,122,251,122,116,124,117,124,118,124,252,124,253,124,254,124,255,124,181,66,191,126,192,126,193,126,194,126,195,126,196,126,197,126,198,126,199,126,200,126,201,126,202,126,203,126,204,126,205,126,206,126,207,126,208,126,55,127,84,127,86,127,87,127,89,127,139,127,140,127,5,128,19,128,53,128,131,128,143,128,161,128,162,128,163,128,164,128,165,128,166,128,167,128,168,128,169,128,170,128,171,128,172,128,60,0,42,0,173,128,174,128,175,128,176,128,177,128,178,128,179,128,180,128,181,128,182,128,183,128,184,128,185,128,186,128,187,128,188,128,189,128,190,128,191,128,192,128,193,128,217,67,228,129,229,129,253,129,254,129,13,130,14,130,15,130,32,130,112,130,152,130,153,130,154,130,155,130,156,130,157,130,158,130,159,130,160,130,161,130,162,130,163,130,164,130,165,130,166,130,167,130,168,130,169,130,170,130,171,130,172,130,173,130,174,130,175,130,176,130,177,130,178,130,179,130,180,130,181,130,182,130,183,130,184,130,185,130,186,130,188,130,189,130,190,130,192,130,193,130,194,130,195,130,196,130,197,130,198,130,199,130,200,130,201,130,202,130,203,130,204,130,205,130,206,130,207,130,62,131,90,216,19,223,90,216,21,223,90,216,35,223,90,216,40,223,191,130,78,134,79,134,109,134,110,134,111,134,112,134,113,134,114,134,93,216,224,221,101,136,104,136,196,137,197,137,211,139,212,139,213,139,214,139,215,139,216,139,217,139,218,139,219,139,220,139,221,139,222,139,223,139,224,139,225,139,226,139,227,139,228,139,229,139,230,139,231,139,232,139,233,139,86,140,60,0,42,0,35,141,36,141,37,141,38,141,39,141,40,141,41,141,42,141,43,141,44,141,45,141,46,141,47,141,203,142,108,143,109,143,110,143,111,143,112,143,202,143,203,143,204,143,205,143,206,143,207,143,208,143,209,143,210,143,211,143,212,143,213,143,214,143,215,143,216,143,217,143,218,143,219,143,220,143,221,143,222,143,223,143,236,143,97,216,130,220,173,144,174,144,175,144,176,144,177,144,178,144,179,144,180,144,181,144,182,144,183,144,184,144,185,144,186,144,187,144,97,216,178,222,97,216,188,222,199,145,209,145,210,145,141,148,142,148,143,148,144,148,145,148,146,148,147,148,148,148,149,148,150,148,151,148,119,149,120,149,128,149,248,149,249,149,28,150,99,216,15,222,55,150,56,150,57,150,58,150,59,150,60,150,61,150,62,150,63,150,64,150,65,150,66,150,67,150,68,150,69,150,70,150,71,150,72,150,73,150,182,150,185,150,215,46,232,150,81,151,82,151,94,151,99,151,118,152,119,152,111,153,112,153,113,153,114,153,115,153,116,153,117,154,118,154,119,154,120,154,121,154,122,154,123,154,124,154,125,154,126,154,127,154,128,154,60,0,42,0,124,156,34,158,35,158,36,158,254,158,33,159,127,159,60,0,39,0,208,253,9,40,39,0,60,0,42,0,52,78,62,78,87,78,121,78,122,78,123,78,124,78,32,52,173,78,174,78,175,78,176,78,177,78,178,78,174,79,175,79,176,79,177,79,178,79,179,79,180,79,181,79,182,79,183,79,184,79,185,79,186,79,187,79,188,79,189,79,190,79,191,79,192,79,193,79,194,79,195,79,196,79,197,79,198,79,199,79,200,79,201,79,202,79,203,79,204,79,205,79,206,79,207,79,208,79,209,79,210,79,211,79,212,79,213,79,214,79,215,79,216,79,217,79,218,79,219,79,220,79,221,79,222,79,223,79,224,79,225,79,226,79,227,79,228,79,229,79,230,79,231,79,232,79,233,79,234,79,235,79,236,79,237,79,64,216,57,222,64,216,91,222,87,81,88,81,89,81,65,216,142,220,106,81,121,81,123,81,145,81,146,81,159,81,160,81,193,81,194,81,195,81,65,216,202,221,65,216,208,221,65,216,213,221,254,81,67,82,68,82,69,82,71,82,72,82,73,82,74,82,75,82,76,82,77,82,78,82,79,82,80,82,81,82,192,82,193,82,194,82,195,82,196,82,197,82,199,82,200,82,201,82,202,82,203,82,13,83,39,83,40,83,41,83,61,83,60,0,42,0,87,83,88,83,123,83,124,83,125,83,150,83,151,83,152,83,153,83,154,83,155,83,217,83,218,83,219,83,220,83,221,83,112,84,114,84,158,84,159,84,160,84,161,84,162,84,163,84,164,84,165,84,166,84,167,84,168,84,169,84,170,84,171,84,172,84,173,84,174,84,175,84,176,84,177,84,178,84,179,84,180,84,181,84,182,84,183,84,184,84,185,84,186,84,187,84,188,84,189,84,190,84,191,84,192,84,193,84,194,84,195,84,196,84,197,84,198,84,199,84,200,84,201,84,202,84,203,84,204,84,205,84,206,84,207,84,208,84,209,84,210,84,211,84,212,84,213,84,214,84,215,84,216,84,217,84,218,84,219,84,220,84,221,84,222,84,223,84,132,53,67,216,83,220,67,216,101,220,67,216,119,220,67,216,120,220,67,216,124,220,67,216,141,220,67,216,150,220,67,216,156,220,255,86,0,87,34,54,68,216,217,221,139,87,140,87,141,87,142,87,143,87,144,87,145,87,146,87,147,87,148,87,149,87,150,87,151,87,152,87,153,87,154,87,155,87,156,87,157,87,158,87,159,87,160,87,161,87,162,87,163,87,164,87,165,87,166,87,167,87,168,87,169,87,60,0,42,0,170,87,171,87,172,87,173,87,174,87,175,87,176,87,177,87,178,87,179,87,180,87,181,87,206,87,54,54,55,54,56,54,57,54,59,54,62,54,68,216,227,222,244,88,245,88,8,89,9,89,13,89,78,89,79,89,80,89,81,89,82,89,83,89,85,89,86,89,154,54,69,216,19,222,69,216,25,222,213,89,141,89,216,89,217,89,218,89,219,89,220,89,221,89,222,89,223,89,224,89,225,89,226,89,227,89,228,89,229,89,230,89,231,89,232,89,233,89,234,89,235,89,237,89,238,89,239,89,240,89,241,89,242,89,243,89,244,89,245,89,246,89,247,89,248,89,249,89,250,89,251,89,252,89,253,89,254,89,255,89,0,90,1,90,2,90,3,90,5,90,6,90,7,90,8,90,195,54,196,54,197,54,199,54,200,54,69,216,13,223,69,216,16,223,69,216,38,223,13,90,104,91,105,91,106,91,162,91,163,91,164,91,165,91,166,91,168,91,169,91,170,91,171,91,70,216,243,221,1,92,2,92,6,92,27,92,28,92,29,92,46,92,47,92,75,92,76,92,77,92,78,92,79,92,198,92,199,92,200,92,201,92,202,92,203,92,204,92,205,92,60,0,42,0,206,92,207,92,208,92,209,92,210,92,211,92,212,92,213,92,214,92,215,92,216,92,217,92,218,92,219,92,220,92,221,92,222,92,223,92,224,92,225,92,226,92,227,92,228,92,229,92,230,92,231,92,71,216,182,221,71,216,186,221,71,216,202,221,71,216,209,221,248,92,236,93,237,93,247,93,248,93,249,93,250,93,251,93,29,94,30,94,31,94,32,94,33,94,34,94,35,94,36,94,37,94,38,94,39,94,72,216,154,220,125,94,155,94,160,94,161,94,162,94,163,94,164,94,165,94,166,94,72,216,8,222,176,94,250,94,251,94,252,94,72,216,33,223,72,216,37,223,7,95,8,95,43,95,44,95,45,95,46,95,47,95,72,216,215,223,86,95,101,95,102,95,133,95,134,95,135,95,136,95,137,95,138,95,139,95,140,95,141,95,148,95,14,96,18,96,24,96,29,96,32,96,35,96,36,96,37,96,40,96,49,96,55,96,56,96,57,96,59,96,60,96,64,96,66,96,67,96,68,96,69,96,70,96,71,96,72,96,73,96,74,96,76,96,77,96,78,96,81,96,82,96,83,96,84,96,87,96,88,96,91,96,92,96,94,96,95,96,96,96,97,96,98,96,60,0,42,0,100,96,102,96,104,96,106,96,107,96,108,96,110,96,112,96,113,96,114,96,120,96,121,96,122,96,123,96,124,96,125,96,34,57,38,57,39,57,45,57,73,216,104,222,24,98,65,98,66,98,67,98,207,98,220,98,216,57,234,98,235,98,236,98,237,98,238,98,239,98,240,98,241,98,244,98,245,98,246,98,247,98,248,98,249,98,250,98,251,98,252,98,253,98,254,98,0,99,1,99,2,99,3,99,4,99,5,99,6,99,7,99,9,99,10,99,11,99,12,99,13,99,14,99,15,99,17,99,18,99,19,99,20,99,21,99,22,99,23,99,24,99,28,99,29,99,30,99,31,99,32,99,33,99,34,99,35,99,36,99,37,99,38,99,39,99,225,57,226,57,229,57,230,57,74,216,230,222,74,216,232,222,74,216,14,223,74,216,34,223,49,101,63,101,64,101,65,101,66,101,67,101,68,101,69,101,131,58,132,58,133,58,170,101,171,101,188,58,189,58,189,101,190,101,191,101,192,101,198,58,226,101,26,102,27,102,28,102,29,102,30,102,31,102,32,102,33,102,34,102,35,102,36,102,37,102,38,102,39,102,40,102,41,102,42,102,60,0,42,0,43,102,44,102,45,102,46,102,47,102,48,102,49,102,50,102,51,102,52,102,53,102,54,102,55,102,56,102,57,102,58,102,59,102,60,102,61,102,62,102,63,102,222,58,224,58,76,216,125,221,76,216,130,221,247,102,14,103,15,103,16,103,174,103,175,103,176,103,177,103,178,103,179,103,180,103,181,103,182,103,183,103,184,103,185,103,186,103,187,103,188,103,190,103,191,103,192,103,193,103,194,103,195,103,196,103,197,103,198,103,199,103,200,103,201,103,202,103,203,103,204,103,205,103,206,103,207,103,208,103,209,103,210,103,211,103,212,103,213,103,214,103,215,103,216,103,217,103,218,103,219,103,220,103,221,103,222,103,223,103,224,103,226,103,227,103,228,103,229,103,230,103,231,103,232,103,233,103,234,103,235,103,236,103,237,103,238,103,239,103,240,103,241,103,242,103,243,103,245,103,246,103,247,103,248,103,250,103,251,103,252,103,253,103,254,103,255,103,0,104,1,104,2,104,3,104,4,104,5,104,6,104,7,104,8,104,9,104,10,104,11,104,12,104,13,104,14,104,15,104,16,104,17,104,81,59,82,59,83,59,60,0,42,0,84,59,85,59,86,59,87,59,82,104,40,107,41,107,42,107,38,60,106,107,107,107,84,60,130,107,131,107,132,107,133,107,134,107,135,107,181,107,182,107,210,107,214,107,215,107,216,107,139,60,224,107,225,107,78,216,90,223,30,108,31,108,32,108,33,108,34,108,151,108,175,108,201,108,244,108,246,108,218,108,255,108,0,109,1,109,2,109,3,109,4,109,5,109,6,109,7,109,8,109,9,109,10,109,11,109,12,109,14,109,15,109,16,109,17,109,18,109,19,109,20,109,21,109,23,109,24,109,25,109,26,109,27,109,29,109,30,109,31,109,32,109,33,109,34,109,35,109,36,109,37,109,38,109,39,109,40,109,41,109,42,109,43,109,44,109,45,109,46,109,49,109,50,109,51,109,52,109,53,109,54,109,55,109,56,109,57,109,58,109,59,109,60,109,61,109,62,109,63,109,64,109,65,109,66,109,67,109,68,109,69,109,71,109,72,109,73,109,74,109,75,109,76,109,77,109,78,109,79,109,80,109,81,109,82,109,83,109,84,109,85,109,214,60,220,60,79,216,252,220,79,216,253,220,79,216,254,220,79,216,255,220,159,112,160,112,60,0,42,0,161,112,162,112,163,112,164,112,165,112,166,112,167,112,168,112,169,112,170,112,171,112,172,112,173,112,174,112,175,112,176,112,177,112,178,112,179,112,180,112,181,112,182,112,183,112,184,112,185,112,186,112,187,112,188,112,189,112,190,112,191,112,192,112,193,112,194,112,195,112,173,61,80,216,205,221,80,216,226,221,46,114,47,114,48,114,81,216,5,221,60,114,65,114,73,114,74,114,109,114,110,114,111,114,112,114,113,114,114,114,115,114,116,114,117,114,202,114,223,114,224,114,225,114,226,114,227,114,228,114,229,114,230,114,231,114,232,114,233,114,234,114,235,114,236,114,237,114,238,114,239,114,240,114,241,114,242,114,81,216,143,223,133,115,177,62,178,115,179,115,180,115,181,115,182,115,183,115,184,115,185,115,187,115,189,115,190,115,191,115,192,115,193,115,194,115,195,115,196,115,197,115,198,115,199,115,200,115,201,115,202,115,203,115,204,115,205,115,206,115,207,115,208,115,209,115,82,216,22,221,82,216,23,221,82,216,25,221,82,216,47,221,82,216,51,221,82,216,52,221,234,116,235,116,236,116,237,116,238,116,239,116,240,116,241,116,242,116,26,117,32,117,45,117,46,117,60,0,42,0,70,117,71,117,72,117,73,117,74,117,75,117,76,117,77,117,78,117,79,117,80,117,81,117,82,117,83,117,88,63,89,63,162,117,163,117,164,117,165,117,166,117,167,117,168,117,169,117,170,117,171,117,172,117,173,117,174,117,175,117,186,117,124,63,120,118,121,118,122,118,133,118,134,118,135,118,136,118,195,118,196,118,197,118,198,118,199,118,200,118,246,118,247,118,248,118,249,118,250,118,251,118,252,118,253,118,254,118,255,118,0,119,1,119,2,119,3,119,4,119,5,119,6,119,7,119,8,119,9,119,10,119,11,119,12,119,13,119,29,64,84,216,43,221,220,119,230,119,231,119,232,119,245,108,2,120,3,120,4,120,5,120,6,120,7,120,8,120,9,120,10,120,11,120,12,120,13,120,14,120,15,120,16,120,17,120,18,120,19,120,20,120,21,120,22,120,23,120,24,120,25,120,26,120,27,120,28,120,154,64,85,216,47,220,85,216,48,220,68,121,69,121,70,121,71,121,72,121,73,121,74,121,75,121,76,121,77,121,78,121,198,137,0,65,85,216,53,222,185,121,186,121,203,121,204,121,205,121,206,121,207,121,208,121,60,0,42,0,209,121,210,121,211,121,212,121,213,121,214,121,215,121,49,65,50,65,85,216,114,223,124,122,125,122,126,122,127,122,128,122,129,122,130,122,131,122,149,65,86,216,70,221,208,122,209,122,210,122,211,122,212,122,213,122,214,122,215,122,252,122,253,122,254,122,255,122,0,123,1,123,2,123,3,123,86,216,233,222,4,90,119,124,120,124,121,124,122,124,123,124,124,124,125,124,126,124,127,124,128,124,129,124,130,124,122,66,0,125,1,125,2,125,3,125,4,125,5,125,6,125,7,125,8,125,9,125,182,66,183,66,185,66,209,126,210,126,211,126,212,126,213,126,214,126,215,126,216,126,217,126,218,126,219,126,220,126,221,126,222,126,223,126,56,127,66,67,88,127,90,127,141,127,142,127,143,127,145,127,88,216,81,223,190,127,191,127,88,216,245,223,88,216,248,223,7,128,13,128,14,128,15,128,16,128,17,128,20,128,54,128,55,128,17,103,194,128,195,128,196,128,197,128,198,128,199,128,200,128,201,128,202,128,203,128,204,128,205,128,206,128,207,128,208,128,209,128,210,128,211,128,213,128,214,128,215,128,216,128,217,128,218,128,219,128,220,128,60,0,42,0,221,128,222,128,223,128,224,128,225,128,226,128,227,128,228,128,229,128,230,128,231,128,232,128,233,128,234,128,235,128,9,129,223,67,244,129,255,129,33,130,34,130,35,130,36,130,148,130,208,130,209,130,210,130,211,130,212,130,213,130,214,130,215,130,216,130,217,130,218,130,219,130,220,130,221,130,222,130,223,130,224,130,225,130,226,130,227,130,228,130,229,130,230,130,231,130,232,130,233,130,234,130,235,130,236,130,237,130,238,130,239,130,240,130,241,130,242,130,243,130,244,130,245,130,246,130,247,130,248,130,249,130,250,130,251,130,252,130,253,130,254,130,255,130,0,131,1,131,2,131,3,131,4,131,5,131,6,131,7,131,9,131,10,131,11,131,12,131,13,131,14,131,15,131,16,131,17,131,19,131,20,131,21,131,90,216,80,223,90,216,81,223,90,216,82,223,90,216,83,223,90,216,91,223,58,131,80,134,115,134,116,134,117,134,118,134,119,134,120,134,121,134,122,134,123,134,124,134,125,134,126,134,127,134,128,134,129,134,130,134,131,134,65,136,66,136,15,70,77,136,78,136,93,216,228,221,102,136,103,136,105,136,106,136,107,136,108,136,60,0,42,0,93,216,50,222,93,216,57,222,129,137,140,137,199,137,200,137,201,137,211,137,212,137,2,138,3,138,4,138,5,138,6,138,7,138,8,138,174,70,234,139,235,139,236,139,237,139,238,139,239,139,240,139,241,139,242,139,243,139,244,139,245,139,246,139,158,140,159,140,160,140,48,141,49,141,50,141,51,141,52,141,53,141,54,141,55,141,56,141,57,141,58,141,59,141,114,141,115,141,116,141,117,141,170,159,180,141,204,142,205,142,113,143,114,143,115,143,116,143,117,143,118,143,119,143,120,143,121,143,122,143,123,143,224,143,225,143,226,143,227,143,228,143,229,143,230,143,231,143,232,143,233,143,234,143,235,143,237,143,238,143,239,143,240,143,241,143,242,143,243,143,188,144,189,144,190,144,191,144,192,144,193,144,194,144,195,144,196,144,197,144,198,144,199,144,200,144,201,144,202,144,203,144,205,144,206,144,207,144,208,144,209,144,211,144,213,144,97,216,216,222,97,216,230,222,241,144,74,145,75,145,205,145,211,145,212,145,152,148,153,148,154,148,155,148,156,148,157,148,158,148,159,148,160,148,161,148,162,148,163,148,164,148,165,148,60,0,42,0,166,148,167,148,168,148,169,148,170,148,171,148,172,148,173,148,174,148,175,148,129,149,130,149,250,149,251,149,252,149,253,149,254,149,255,149,0,150,1,150,2,150,74,150,75,150,76,150,77,150,78,150,79,150,80,150,81,150,82,150,83,150,84,150,85,150,99,216,101,222,99,216,102,222,98,151,105,151,203,151,232,151,237,151,243,151,1,152,120,152,121,152,122,152,123,152,168,152,208,152,209,152,210,152,219,152,223,152,224,152,222,46,117,153,118,153,119,153,120,153,121,153,122,153,123,153,124,153,150,153,102,216,16,220,153,153,129,154,130,154,131,154,132,154,133,154,134,154,135,154,136,154,137,154,227,46,236,156,37,158,38,158,39,158,40,158,41,158,60,0,39,0,208,253,10,40,39,0,60,0,42,0,64,216,62,220,53,78,88,78,125,78,179,78,238,79,239,79,240,79,241,79,242,79,243,79,244,79,245,79,246,79,247,79,248,79,249,79,250,79,251,79,252,79,253,79,254,79,255,79,0,80,1,80,2,80,3,80,4,80,5,80,6,80,7,80,8,80,9,80,10,80,11,80,12,80,13,80,14,80,15,80,16,80,17,80,18,80,19,80,20,80,21,80,22,80,23,80,24,80,25,80,26,80,27,80,28,80,29,80,30,80,31,80,32,80,33,80,34,80,35,80,36,80,37,80,38,80,39,80,40,80,41,80,42,80,43,80,44,80,45,80,46,80,47,80,48,80,49,80,50,80,51,80,52,80,53,80,54,80,55,80,56,80,57,80,58,80,59,80,60,80,61,80,62,80,63,80,101,52,102,52,64,216,116,222,64,216,117,222,64,216,153,222,64,216,158,222,64,216,160,222,86,80,90,81,91,81,65,216,145,220,65,216,146,220,122,81,124,81,147,81,148,81,161,81,162,81,163,81,164,81,165,81,166,81,167,81,65,216,142,221,196,81,197,81,198,81,199,81,200,81,201,81,202,81,203,81,204,81,205,81,206,81,65,216,223,221,65,216,224,221,65,216,86,222,82,82,83,82,84,82,60,0,42,0,85,82,86,82,87,82,88,82,89,82,90,82,91,82,92,82,93,82,94,82,95,82,96,82,97,82,98,82,99,82,100,82,101,82,102,82,103,82,65,216,49,223,204,82,205,82,206,82,207,82,208,82,209,82,66,216,115,220,14,83,42,83,43,83,168,159,127,83,156,83,157,83,158,83,159,83,82,134,66,216,111,222,222,83,223,83,224,84,225,84,226,84,227,84,228,84,229,84,230,84,231,84,232,84,233,84,234,84,235,84,236,84,237,84,238,84,239,84,240,84,241,84,242,84,243,84,244,84,245,84,246,84,247,84,248,84,249,84,250,84,251,84,252,84,253,84,254,84,255,84,0,85,1,85,2,85,3,85,4,85,5,85,6,85,7,85,8,85,9,85,10,85,11,85,13,85,14,85,15,85,16,85,17,85,18,85,19,85,20,85,21,85,22,85,23,85,24,85,25,85,26,85,27,85,28,85,29,85,30,85,31,85,32,85,33,85,34,85,35,85,36,85,37,85,38,85,39,85,151,53,152,53,67,216,181,220,67,216,184,220,67,216,207,220,67,216,211,220,67,216,212,220,67,216,213,220,67,216,214,220,67,216,221,220,67,216,237,220,67,216,255,220,67,216,21,221,1,87,2,87,3,87,4,87,60,0,42,0,5,87,6,87,35,54,182,87,183,87,184,87,185,87,186,87,187,87,188,87,189,87,190,87,191,87,192,87,193,87,194,87,195,87,196,87,197,87,198,87,199,87,200,87,201,87,202,87,203,87,204,87,205,87,207,87,208,87,209,87,210,87,211,87,212,87,213,87,214,87,215,87,216,87,217,87,218,87,219,87,15,250,68,216,254,222,68,216,2,223,68,216,3,223,68,216,4,223,68,216,5,223,50,88,246,88,14,89,15,89,30,89,69,216,150,221,74,89,87,89,88,89,89,89,90,89,236,89,9,90,10,90,11,90,12,90,14,90,15,90,16,90,17,90,18,90,19,90,20,90,21,90,22,90,23,90,24,90,25,90,26,90,27,90,28,90,29,90,30,90,31,90,32,90,33,90,34,90,35,90,36,90,37,90,38,90,39,90,40,90,41,90,42,90,45,90,46,90,47,90,48,90,49,90,50,90,51,90,52,90,206,54,209,54,211,54,212,54,214,54,221,54,225,54,226,54,69,216,58,223,69,216,59,223,69,216,60,223,69,216,87,223,107,91,108,91,109,91,67,55,70,216,106,221,167,91,172,91,173,91,174,91,175,91,176,91,177,91,178,91,179,91,180,91,181,91,182,91,60,0,42,0,183,91,184,91,185,91,186,91,187,91,188,91,189,91,190,91,3,92,4,92,5,92,80,92,81,92,82,92,83,92,84,92,85,92,86,92,87,92,88,92,151,55,71,216,112,220,232,92,233,92,234,92,235,92,236,92,237,92,238,92,239,92,240,92,241,92,242,92,243,92,244,92,245,92,246,92,247,92,249,92,250,92,251,92,252,92,253,92,254,92,255,92,0,93,1,93,2,93,3,93,4,93,5,93,214,55,71,216,235,221,71,216,249,221,238,93,43,56,252,93,40,94,41,94,42,94,43,94,44,94,45,94,46,94,47,94,48,94,49,94,72,216,199,220,72,216,193,221,72,216,195,221,167,94,168,94,169,94,170,94,171,94,172,94,173,94,174,94,175,94,253,94,9,95,48,95,49,95,50,95,51,95,103,95,104,95,73,216,145,220,142,95,143,95,144,95,145,95,146,95,147,95,149,95,73,216,237,220,65,96,75,96,79,96,80,96,85,96,86,96,89,96,90,96,93,96,99,96,101,96,103,96,105,96,109,96,111,96,115,96,116,96,117,96,118,96,119,96,32,57,43,57,126,96,128,96,129,96,130,96,131,96,132,96,133,96,135,96,136,96,139,96,60,0,42,0,140,96,141,96,142,96,143,96,145,96,146,96,147,96,148,96,149,96,150,96,151,96,153,96,154,96,155,96,156,96,157,96,158,96,159,96,162,96,166,96,167,96,169,96,173,96,174,96,175,96,49,57,51,57,52,57,54,57,55,57,56,57,57,57,73,216,122,222,73,216,150,222,73,216,152,222,25,98,68,98,69,98,70,98,71,98,242,98,243,98,255,98,8,99,16,99,25,99,26,99,27,99,236,57,40,99,41,99,42,99,43,99,44,99,45,99,46,99,47,99,48,99,49,99,51,99,52,99,53,99,54,99,55,99,56,99,57,99,58,99,60,99,61,99,62,99,63,99,64,99,65,99,66,99,67,99,68,99,69,99,70,99,71,99,72,99,73,99,74,99,75,99,76,99,77,99,78,99,79,99,80,99,81,99,82,99,83,99,84,99,85,99,86,99,87,99,88,99,89,99,90,99,91,99,92,99,93,99,94,99,95,99,96,99,97,99,98,99,99,99,100,99,248,57,74,216,63,223,74,216,67,223,74,216,106,223,228,99,70,101,71,101,72,101,73,101,74,101,75,101,76,101,135,58,136,58,137,58,76,216,75,220,138,101,139,101,153,101,154,101,60,0,42,0,193,101,194,101,195,101,196,101,197,101,198,101,202,101,201,58,64,102,65,102,66,102,67,102,68,102,69,102,70,102,71,102,72,102,73,102,74,102,75,102,76,102,77,102,78,102,79,102,80,102,81,102,82,102,83,102,84,102,85,102,86,102,76,216,164,221,76,216,165,221,95,102,96,102,248,102,250,102,251,102,18,103,19,103,20,103,21,103,52,59,53,59,23,103,189,103,225,103,244,103,18,104,19,104,20,104,21,104,22,104,23,104,24,104,25,104,26,104,27,104,28,104,29,104,30,104,31,104,32,104,33,104,34,104,35,104,36,104,37,104,38,104,39,104,40,104,41,104,42,104,43,104,44,104,45,104,46,104,47,104,48,104,49,104,50,104,51,104,52,104,53,104,54,104,55,104,56,104,57,104,58,104,59,104,60,104,61,104,62,104,63,104,64,104,65,104,66,104,67,104,68,104,69,104,70,104,71,104,72,104,73,104,74,104,75,104,76,104,77,104,78,104,79,104,80,104,81,104,83,104,84,104,85,104,86,104,87,104,88,104,89,104,90,104,91,104,92,104,93,104,94,104,95,104,96,104,97,104,98,104,60,0,42,0,99,104,100,104,101,104,102,104,103,104,104,104,105,104,106,104,88,59,89,59,90,59,91,59,92,59,93,59,94,59,95,59,96,59,97,59,98,59,99,59,100,59,101,59,102,59,103,59,77,216,63,220,77,216,80,220,77,216,111,220,77,216,114,220,43,107,44,107,45,107,46,107,47,107,48,107,49,107,52,107,108,107,109,107,136,107,137,107,138,107,139,107,97,60,183,107,217,107,226,107,227,107,228,107,229,107,230,107,231,107,232,107,233,107,234,107,35,108,36,108,37,108,38,108,39,108,40,108,41,108,240,108,28,109,47,109,70,109,13,109,22,109,86,109,87,109,88,109,89,109,90,109,91,109,92,109,93,109,94,109,95,109,96,109,97,109,98,109,99,109,100,109,101,109,102,109,103,109,104,109,105,109,106,109,107,109,108,109,109,109,110,109,111,109,112,109,113,109,114,109,115,109,116,109,117,109,118,109,119,109,120,109,121,109,122,109,123,109,124,109,125,109,126,109,127,109,128,109,129,109,130,109,131,109,132,109,133,109,134,109,135,109,136,109,137,109,138,109,139,109,140,109,141,109,143,109,144,109,145,109,146,109,147,109,60,0,42,0,148,109,149,109,150,109,151,109,152,109,154,109,155,109,156,109,157,109,158,109,159,109,160,109,161,109,162,109,163,109,164,109,165,109,166,109,167,109,168,109,169,109,239,60,79,216,64,221,79,216,91,221,196,112,197,112,198,112,199,112,200,112,201,112,202,112,203,112,204,112,205,112,206,112,207,112,208,112,209,112,210,112,211,112,212,112,213,112,214,112,215,112,216,112,217,112,218,112,219,112,220,112,221,112,222,112,223,112,224,112,225,112,226,112,227,112,228,112,229,112,230,112,231,112,232,112,233,112,234,112,235,112,236,112,237,112,238,112,180,61,80,216,252,221,80,216,27,222,49,114,57,114,66,114,81,216,120,221,32,62,118,114,119,114,120,114,121,114,122,114,243,114,244,114,245,114,246,114,247,114,248,114,249,114,250,114,251,114,252,114,253,114,254,114,0,115,1,115,2,115,3,115,116,62,134,115,186,115,188,115,184,62,210,115,211,115,212,115,213,115,214,115,215,115,216,115,217,115,218,115,219,115,220,115,221,115,222,115,223,115,224,115,225,115,226,115,227,115,228,115,229,115,230,115,231,115,232,115,233,115,234,115,235,115,236,115,60,0,42,0,237,115,238,115,239,115,240,115,241,115,242,115,9,116,191,62,194,62,199,62,82,216,62,221,82,216,63,221,82,216,64,221,82,216,65,221,82,216,66,221,82,216,67,221,249,115,222,116,223,116,243,116,244,116,245,116,33,117,84,117,85,117,86,117,87,117,88,117,89,117,90,117,91,117,92,117,93,117,94,117,95,117,141,117,176,117,177,117,178,117,179,117,180,117,182,117,183,117,184,117,185,117,187,117,188,117,189,117,190,117,191,117,192,117,193,117,194,117,195,117,196,117,197,117,198,117,199,117,200,117,201,117,96,117,138,118,139,118,140,118,141,118,83,216,92,223,176,118,177,118,237,63,201,118,202,118,203,118,204,118,205,118,206,118,207,118,208,118,209,118,0,64,84,216,82,220,14,119,15,119,16,119,17,119,18,119,19,119,20,119,21,119,22,119,23,119,24,119,25,119,26,119,27,119,28,119,29,119,30,119,31,119,32,119,33,119,34,119,35,119,36,119,39,119,40,119,41,119,42,119,43,119,44,119,63,119,38,64,84,216,72,221,221,119,233,119,29,120,30,120,31,120,32,120,33,120,34,120,35,120,36,120,37,120,39,120,40,120,41,120,42,120,43,120,60,0,42,0,44,120,45,120,46,120,47,120,48,120,49,120,50,120,51,120,52,120,53,120,54,120,55,120,56,120,57,120,58,120,59,120,60,120,61,120,62,120,63,120,64,120,65,120,168,64,85,216,70,220,85,216,108,220,85,216,110,220,79,121,80,121,81,121,82,121,83,121,84,121,85,121,86,121,87,121,88,121,89,121,90,121,91,121,92,121,93,121,94,121,95,121,96,121,98,121,2,65,3,65,85,216,81,222,85,216,61,223,216,121,217,121,218,121,219,121,220,121,221,121,222,121,223,121,224,121,225,121,226,121,227,121,228,121,229,121,230,121,231,121,232,121,233,121,234,121,235,121,236,121,237,121,238,121,239,121,240,121,132,122,133,122,134,122,135,122,136,122,137,122,138,122,139,122,140,122,141,122,142,122,86,216,86,221,216,122,217,122,218,122,219,122,220,122,221,122,222,122,202,65,5,123,6,123,7,123,8,123,9,123,10,123,11,123,12,123,13,123,14,123,15,123,16,123,17,123,18,123,19,123,20,123,21,123,215,65,219,65,4,123,131,124,132,124,133,124,134,124,135,124,136,124,137,124,138,124,139,124,140,124,141,124,142,124,143,124,144,124,60,0,42,0,145,124,10,125,11,125,12,125,13,125,14,125,15,125,16,125,17,125,18,125,19,125,20,125,21,125,22,125,23,125,24,125,25,125,26,125,27,125,28,125,29,125,30,125,31,125,32,125,33,125,34,125,35,125,36,125,37,125,38,125,39,125,188,66,224,126,225,126,226,126,227,126,228,126,229,126,230,126,231,126,232,126,57,127,58,127,60,127,67,67,91,127,92,127,93,127,94,127,95,127,96,127,97,127,98,127,144,127,146,127,147,127,148,127,150,127,151,127,152,127,153,127,192,127,193,127,194,127,195,127,196,127,197,127,198,127,89,216,2,220,89,216,16,220,89,216,17,220,89,216,18,220,4,128,6,128,10,128,21,128,22,128,23,128,24,128,25,128,56,128,57,128,58,128,59,128,60,128,61,128,62,128,63,128,64,128,65,128,66,128,129,128,130,128,237,128,238,128,239,128,240,128,241,128,242,128,243,128,244,128,245,128,246,128,247,128,248,128,249,128,250,128,251,128,252,128,253,128,255,128,0,129,1,129,2,129,3,129,4,129,5,129,6,129,7,129,8,129,10,129,11,129,12,129,13,129,14,129,15,129,16,129,17,129,60,0,42,0,18,129,19,129,237,67,89,216,175,222,89,216,177,222,89,216,181,222,236,129,237,129,90,216,57,221,0,130,1,130,16,130,37,130,38,130,39,130,40,130,41,130,42,130,43,130,44,130,45,130,46,130,47,130,48,130,49,130,101,68,115,130,187,130,159,68,160,68,162,68,8,131,22,131,23,131,24,131,25,131,26,131,27,131,28,131,30,131,31,131,32,131,33,131,34,131,36,131,37,131,38,131,39,131,40,131,41,131,42,131,43,131,44,131,45,131,46,131,47,131,48,131,49,131,50,131,51,131,52,131,53,131,54,131,55,131,56,131,57,131,60,131,61,131,63,131,64,131,65,131,66,131,67,131,68,131,69,131,71,131,72,131,73,131,74,131,75,131,76,131,77,131,78,131,79,131,80,131,81,131,82,131,84,131,85,131,86,131,87,131,88,131,90,131,91,131,92,131,93,131,94,131,95,131,96,131,97,131,98,131,99,131,100,131,101,131,102,131,103,131,104,131,105,131,106,131,108,131,109,131,110,131,111,131,90,216,117,223,90,216,130,223,90,216,150,223,90,216,151,223,90,216,157,223,90,216,179,223,83,131,81,134,83,134,84,134,132,134,133,134,134,134,135,134,137,134,60,0,42,0,138,134,139,134,140,134,141,134,142,134,143,134,144,134,145,134,146,134,147,134,148,134,149,134,150,134,151,134,152,134,153,134,154,134,155,134,156,134,157,134,158,134,159,134,160,134,161,134,162,134,163,134,164,134,165,134,166,134,167,134,168,134,169,134,170,134,172,134,67,136,68,136,79,136,21,70,109,136,110,136,111,136,112,136,113,136,114,136,115,136,116,136,117,136,118,136,119,136,120,136,121,136,122,136,123,136,124,136,125,136,126,136,127,136,128,136,129,136,130,136,131,136,132,136,133,136,134,136,135,136,93,216,85,222,93,216,86,222,93,216,87,222,141,137,142,137,202,137,9,138,10,138,11,138,12,138,13,138,14,138,15,138,16,138,17,138,18,138,19,138,20,138,21,138,22,138,23,138,24,138,25,138,26,138,94,216,103,221,247,139,248,139,249,139,250,139,251,139,252,139,253,139,254,139,255,139,0,140,1,140,2,140,3,140,4,140,5,140,6,140,7,140,8,140,9,140,10,140,56,140,71,140,72,140,87,140,121,140,122,140,123,140,161,140,162,140,163,140,164,140,95,216,47,221,60,141,61,141,62,141,63,141,64,141,65,141,60,0,42,0,66,141,67,141,68,141,69,141,70,141,118,141,119,141,120,141,152,71,181,141,182,141,183,141,184,141,213,71,172,142,206,142,207,142,208,142,209,142,210,142,211,142,212,142,213,142,124,143,125,143,126,143,127,143,128,143,129,143,130,143,131,143,177,143,244,143,245,143,246,143,247,143,248,143,249,143,250,143,251,143,252,143,253,143,254,143,255,143,0,144,1,144,2,144,3,144,4,144,5,144,6,144,7,144,8,144,9,144,10,144,149,144,214,144,215,144,216,144,217,144,218,144,219,144,220,144,221,144,222,144,223,144,224,144,225,144,226,144,227,144,228,144,229,144,230,144,231,144,76,145,77,145,78,145,79,145,80,145,81,145,82,145,213,145,214,145,215,145,216,145,217,145,218,145,219,145,220,145,221,145,222,145,223,145,224,145,225,145,226,145,176,148,177,148,178,148,179,148,180,148,181,148,182,148,183,148,184,148,185,148,186,148,187,148,188,148,189,148,190,148,191,148,192,148,193,148,194,148,195,148,196,148,197,148,198,148,199,148,200,148,201,148,202,148,203,148,204,148,205,148,206,148,131,149,132,149,60,0,42,0,133,149,99,216,202,220,99,216,205,220,3,150,4,150,5,150,6,150,86,150,87,150,88,150,89,150,91,150,92,150,93,150,94,150,95,150,96,150,97,150,98,150,99,150,100,150,101,150,102,150,103,150,104,150,105,150,90,150,99,216,151,222,186,150,187,150,188,150,189,150,190,150,124,152,125,152,126,152,127,152,128,152,129,152,130,152,131,152,132,152,226,152,227,152,228,152,125,153,126,153,127,153,128,153,129,153,130,153,172,153,138,154,139,154,140,154,141,154,142,154,143,154,168,154,216,154,223,154,37,155,47,155,50,155,60,155,125,156,42,158,43,158,44,158,45,158,46,158,47,158,48,158,49,158,50,158,51,158,52,158,53,158,54,158,128,159,60,0,39,0,208,253,11,40,39,0,60,0,42,0,126,78,127,78,128,78,34,52,64,80,65,80,66,80,67,80,68,80,69,80,70,80,71,80,72,80,73,80,74,80,75,80,76,80,77,80,78,80,79,80,80,80,81,80,82,80,83,80,84,80,85,80,87,80,88,80,89,80,90,80,91,80,92,80,93,80,94,80,95,80,96,80,97,80,98,80,99,80,100,80,101,80,102,80,103,80,105,80,106,80,107,80,108,80,109,80,110,80,111,80,112,80,113,80,114,80,115,80,116,80,117,80,118,80,119,80,120,80,121,80,122,80,123,80,124,80,125,80,126,80,127,80,100,52,64,216,183,222,64,216,191,222,64,216,192,222,64,216,229,222,92,81,93,81,94,81,125,81,149,81,188,52,168,81,207,81,208,81,209,81,65,216,235,221,240,81,104,82,106,82,107,82,108,82,109,82,110,82,111,82,112,82,113,82,118,82,65,216,121,223,210,82,211,82,212,82,213,82,214,82,216,82,217,82,218,82,32,53,15,83,16,83,19,83,24,83,25,83,45,53,44,83,45,83,46,83,49,53,62,83,63,83,64,83,89,83,104,83,126,83,160,83,161,83,162,83,163,83,169,83,195,83,196,83,12,85,40,85,60,0,42,0,41,85,42,85,43,85,44,85,45,85,46,85,47,85,48,85,49,85,50,85,51,85,52,85,53,85,54,85,55,85,56,85,57,85,58,85,59,85,60,85,61,85,62,85,63,85,64,85,65,85,66,85,67,85,68,85,69,85,70,85,71,85,72,85,73,85,74,85,75,85,76,85,77,85,78,85,79,85,80,85,81,85,82,85,83,85,84,85,85,85,86,85,87,85,88,85,90,85,91,85,92,85,93,85,94,85,96,85,97,85,98,85,99,85,100,85,101,85,102,85,103,85,104,85,105,85,106,85,108,85,109,85,110,85,111,85,112,85,113,85,114,85,115,85,116,85,117,85,118,85,119,85,120,85,121,85,161,53,165,53,173,53,67,216,40,221,67,216,49,221,67,216,50,221,67,216,70,221,67,216,71,221,67,216,72,221,67,216,73,221,67,216,76,221,67,216,77,221,67,216,78,221,67,216,111,221,67,216,113,221,67,216,116,221,67,216,124,221,67,216,126,221,67,216,127,221,67,216,150,221,67,216,156,221,67,216,167,221,67,216,178,221,107,85,182,85,7,87,8,87,9,87,10,87,11,87,15,87,220,87,221,87,222,87,223,87,224,87,225,87,226,87,227,87,228,87,229,87,230,87,231,87,232,87,233,87,235,87,236,87,237,87,238,87,239,87,60,0,42,0,240,87,241,87,242,87,243,87,244,87,245,87,246,87,247,87,248,87,249,87,250,87,251,87,252,87,253,87,254,87,255,87,0,88,1,88,2,88,3,88,4,88,5,88,6,88,7,88,8,88,9,88,10,88,11,88,12,88,13,88,14,88,15,88,16,88,17,88,18,88,19,88,20,88,21,88,71,54,72,54,73,54,68,216,54,223,68,216,58,223,234,87,53,88,247,88,248,88,31,89,32,89,91,89,92,89,93,89,94,89,95,89,69,216,62,222,98,89,43,90,61,90,44,90,53,90,54,90,55,90,56,90,57,90,58,90,59,90,60,90,62,90,63,90,64,90,65,90,66,90,67,90,68,90,69,90,70,90,71,90,72,90,73,90,74,90,75,90,76,90,77,90,78,90,79,90,80,90,81,90,82,90,83,90,84,90,85,90,86,90,87,90,88,90,89,90,90,90,91,90,92,90,93,90,94,90,95,90,96,90,97,90,98,90,99,90,100,90,101,90,102,90,103,90,104,90,105,90,106,90,107,90,108,90,109,90,110,90,111,90,112,90,113,90,114,90,115,90,116,90,117,90,118,90,229,54,230,54,69,216,108,223,69,216,109,223,60,0,42,0,69,216,110,223,69,216,111,223,69,216,112,223,69,216,113,223,69,216,115,223,69,216,116,223,142,90,110,91,111,91,112,91,114,91,191,91,192,91,193,91,194,91,195,91,196,91,197,91,198,91,199,91,200,91,201,91,70,216,45,222,70,216,52,222,7,92,8,92,9,92,89,92,90,92,91,92,92,92,93,92,96,92,6,93,7,93,8,93,9,93,10,93,11,93,12,93,13,93,14,93,15,93,16,93,17,93,18,93,19,93,20,93,21,93,22,93,23,93,24,93,25,93,26,93,27,93,28,93,29,93,30,93,31,93,32,93,33,93,34,93,35,93,36,93,37,93,38,93,39,93,40,93,41,93,42,93,43,93,44,93,45,93,46,93,47,93,48,93,71,216,28,222,71,216,35,222,71,216,55,222,71,216,61,222,226,93,227,93,49,56,50,94,51,94,52,94,53,94,54,94,55,94,56,94,57,94,58,94,59,94,60,94,62,94,177,94,178,94,179,94,180,94,181,94,182,94,183,94,184,94,185,94,186,94,187,94,188,94,190,94,52,95,53,95,54,95,55,95,56,95,57,95,72,216,250,223,87,95,105,95,107,95,108,95,150,95,151,95,152,95,153,95,155,95,156,95,157,95,158,95,159,95,60,0,42,0,160,95,161,95,162,95,163,95,164,95,73,216,19,221,73,216,27,221,127,96,134,96,137,96,138,96,144,96,152,96,160,96,161,96,163,96,164,96,165,96,168,96,170,96,171,96,172,96,48,57,50,57,53,57,59,57,176,96,177,96,180,96,181,96,183,96,184,96,186,96,187,96,188,96,189,96,190,96,191,96,192,96,194,96,195,96,197,96,198,96,199,96,200,96,202,96,203,96,205,96,207,96,208,96,211,96,212,96,213,96,215,96,216,96,217,96,218,96,219,96,220,96,221,96,222,96,223,96,228,96,230,96,231,96,232,96,236,96,237,96,238,96,239,96,63,57,77,57,73,216,244,222,73,216,245,222,73,216,246,222,73,216,18,223,73,216,20,223,73,216,27,223,73,216,31,223,26,98,27,98,28,98,29,98,72,98,50,99,59,99,101,99,102,99,103,99,104,99,105,99,106,99,107,99,108,99,109,99,110,99,111,99,112,99,113,99,114,99,115,99,116,99,117,99,118,99,119,99,120,99,121,99,122,99,123,99,124,99,125,99,126,99,127,99,128,99,129,99,130,99,131,99,132,99,133,99,134,99,135,99,136,99,137,99,138,99,139,99,141,99,142,99,143,99,60,0,42,0,144,99,145,99,146,99,147,99,149,99,150,99,151,99,152,99,153,99,154,99,155,99,156,99,157,99,158,99,159,99,160,99,161,99,162,99,164,99,165,99,166,99,167,99,168,99,169,99,170,99,171,99,172,99,173,99,174,99,175,99,179,99,180,99,181,99,182,99,183,99,184,99,185,99,186,99,187,99,188,99,189,99,251,57,254,57,0,58,1,58,2,58,3,58,4,58,6,58,74,216,202,223,74,216,206,223,178,99,95,85,77,101,78,101,79,101,80,101,81,101,82,101,83,101,84,101,85,101,86,101,87,101,88,101,89,101,90,101,91,101,138,58,139,58,140,58,141,58,142,58,93,101,141,101,142,101,143,101,155,101,156,101,172,101,173,101,199,101,200,101,201,101,203,101,204,101,205,101,206,101,207,101,203,58,227,101,215,82,87,102,88,102,89,102,90,102,91,102,92,102,93,102,94,102,97,102,98,102,99,102,100,102,101,102,102,102,103,102,104,102,105,102,253,102,240,58,242,58,76,216,179,221,76,216,200,221,76,216,201,221,249,102,252,102,22,103,24,103,25,103,26,103,27,103,54,59,55,59,107,104,108,104,109,104,110,104,60,0,42,0,111,104,112,104,113,104,114,104,115,104,116,104,117,104,118,104,119,104,120,104,121,104,122,104,123,104,124,104,125,104,126,104,127,104,128,104,129,104,130,104,131,104,132,104,133,104,134,104,135,104,136,104,137,104,138,104,139,104,140,104,141,104,142,104,143,104,144,104,145,104,146,104,147,104,148,104,149,104,150,104,151,104,152,104,153,104,154,104,155,104,156,104,157,104,158,104,159,104,160,104,161,104,162,104,163,104,164,104,165,104,166,104,167,104,168,104,169,104,170,104,171,104,172,104,173,104,174,104,175,104,176,104,177,104,178,104,179,104,181,104,182,104,183,104,184,104,185,104,186,104,187,104,188,104,189,104,190,104,191,104,192,104,193,104,194,104,104,59,105,59,106,59,107,59,108,59,109,59,110,59,111,59,112,59,113,59,114,59,115,59,116,59,117,59,119,59,86,105,50,107,51,107,53,107,54,107,55,107,56,107,47,60,140,107,141,107,142,107,143,107,144,107,145,107,146,107,147,107,98,60,184,107,185,107,186,107,187,107,235,107,236,107,237,107,238,107,42,108,43,108,79,216,99,220,142,109,235,60,60,0,42,0,153,109,170,109,171,109,172,109,173,109,174,109,175,109,176,109,177,109,178,109,179,109,180,109,181,109,182,109,183,109,184,109,185,109,186,109,187,109,188,109,189,109,190,109,191,109,192,109,193,109,194,109,195,109,196,109,197,109,198,109,199,109,200,109,201,109,202,109,203,109,204,109,205,109,206,109,207,109,208,109,209,109,210,109,211,109,212,109,213,109,214,109,215,109,216,109,217,109,218,109,219,109,220,109,221,109,222,109,223,109,224,109,225,109,226,109,227,109,228,109,229,109,230,109,231,109,232,109,233,109,234,109,235,109,236,109,237,109,238,109,239,109,240,109,241,109,242,109,243,109,244,109,245,109,246,109,247,109,248,109,249,109,250,109,251,109,253,109,255,109,0,110,1,110,2,110,4,110,5,110,6,110,7,110,8,110,9,110,10,110,11,110,12,110,13,110,14,110,15,110,16,110,17,110,18,110,19,110,20,110,21,110,22,110,23,110,26,110,116,110,0,61,4,61,79,216,126,221,79,216,143,221,79,216,182,221,79,216,183,221,79,216,184,221,79,216,185,221,79,216,186,221,79,216,187,221,79,216,188,221,79,216,189,221,79,216,227,221,79,216,248,221,239,112,240,112,241,112,242,112,60,0,42,0,243,112,244,112,245,112,246,112,247,112,248,112,249,112,250,112,252,112,253,112,254,112,255,112,0,113,1,113,2,113,3,113,4,113,5,113,6,113,7,113,8,113,9,113,10,113,11,113,12,113,13,113,14,113,15,113,16,113,17,113,18,113,19,113,21,113,22,113,23,113,24,113,191,61,80,216,75,222,80,216,86,222,80,216,89,222,20,113,61,114,123,114,124,114,125,114,126,114,127,114,129,114,58,62,60,62,62,62,64,62,81,216,101,222,255,114,4,115,5,115,7,115,8,115,9,115,10,115,13,115,14,115,15,115,16,115,17,115,19,115,20,115,21,115,22,115,23,115,24,115,25,115,26,115,27,115,28,115,29,115,30,115,31,115,32,115,33,115,42,115,135,115,136,115,243,115,244,115,245,115,246,115,248,115,250,115,251,115,252,115,253,115,254,115,255,115,0,116,1,116,2,116,3,116,4,116,5,116,6,116,7,116,8,116,10,116,11,116,12,116,13,116,14,116,15,116,16,116,17,116,18,116,19,116,202,62,204,62,208,62,82,216,98,221,82,216,99,221,82,216,116,221,82,216,117,221,82,216,118,221,224,116,14,63,246,116,247,116,248,116,38,63,27,117,60,0,42,0,28,117,34,117,35,117,97,117,98,117,99,117,100,117,101,117,102,117,103,117,105,117,112,117,181,117,202,117,203,117,204,117,205,117,206,117,207,117,208,117,209,117,210,117,211,117,212,117,213,117,214,117,137,118,142,118,143,118,144,118,145,118,178,118,210,118,211,118,212,118,213,118,214,118,215,118,216,118,219,118,1,64,2,64,37,119,38,119,45,119,46,119,47,119,48,119,49,119,50,119,51,119,52,119,53,119,54,119,55,119,56,119,57,119,58,119,59,119,60,119,61,119,62,119,65,119,84,216,125,221,84,216,126,221,64,119,234,119,235,119,38,120,66,120,67,120,68,120,69,120,70,120,71,120,72,120,73,120,74,120,75,120,76,120,77,120,78,120,79,120,80,120,81,120,82,120,83,120,84,120,85,120,86,120,87,120,88,120,89,120,90,120,91,120,85,216,154,220,97,121,99,121,100,121,101,121,103,121,104,121,105,121,106,121,107,121,108,121,109,121,110,121,111,121,4,65,150,137,85,216,131,222,187,121,241,121,242,121,243,121,244,121,245,121,246,121,247,121,248,121,249,121,250,121,251,121,252,121,253,121,254,121,6,122,60,0,42,0,59,65,65,65,67,65,69,65,143,122,144,122,145,122,146,122,147,122,148,122,149,122,154,122,225,122,22,123,23,123,24,123,25,123,26,123,27,123,28,123,29,123,30,123,31,123,32,123,33,123,34,123,35,123,36,123,37,123,38,123,39,123,40,123,41,123,42,123,43,123,44,123,45,123,46,123,47,123,48,123,49,123,50,123,51,123,52,123,53,123,54,123,55,123,56,123,57,123,58,123,59,123,60,123,61,123,62,123,104,117,146,124,147,124,148,124,149,124,150,124,151,124,152,124,153,124,154,124,155,124,156,124,157,124,163,124,87,216,73,222,40,125,41,125,44,125,45,125,46,125,47,125,48,125,49,125,50,125,51,125,52,125,53,125,54,125,55,125,56,125,57,125,58,125,59,125,60,125,61,125,62,125,63,125,64,125,65,125,66,125,67,125,68,125,69,125,70,125,71,125,72,125,73,125,74,125,75,125,76,125,87,216,225,223,87,216,226,223,233,126,234,126,235,126,236,126,237,126,238,126,239,126,240,126,241,126,242,126,243,126,244,126,245,126,246,126,247,126,248,126,249,126,250,126,251,126,252,126,253,126,254,126,60,0,42,0,255,126,0,127,1,127,59,127,61,127,68,67,69,67,99,127,149,127,154,127,155,127,156,127,157,127,158,127,159,127,199,127,200,127,201,127,202,127,203,127,204,127,205,127,206,127,207,127,208,127,209,127,210,127,8,128,9,128,26,128,27,128,28,128,29,128,30,128,31,128,67,128,68,128,69,128,70,128,71,128,72,128,73,128,74,128,75,128,76,128,77,128,236,128,21,129,22,129,23,129,24,129,25,129,26,129,27,129,28,129,29,129,30,129,31,129,33,129,34,129,35,129,36,129,37,129,38,129,39,129,40,129,41,129,42,129,43,129,44,129,45,129,46,129,47,129,48,129,49,129,50,129,51,129,52,129,53,129,54,129,55,129,56,129,240,67,242,67,89,216,218,222,89,216,232,222,89,216,252,222,90,216,14,221,2,130,17,130,50,130,51,130,52,130,53,130,54,130,55,130,56,130,57,130,58,130,59,130,90,216,45,222,90,216,46,222,116,130,89,131,107,131,29,131,35,131,112,131,113,131,114,131,115,131,116,131,117,131,118,131,119,131,120,131,121,131,122,131,123,131,124,131,125,131,126,131,127,131,128,131,129,131,130,131,131,131,132,131,60,0,42,0,133,131,134,131,135,131,136,131,137,131,138,131,139,131,140,131,141,131,142,131,143,131,144,131,145,131,146,131,147,131,148,131,149,131,150,131,151,131,152,131,153,131,155,131,156,131,157,131,158,131,159,131,160,131,161,131,162,131,163,131,164,131,165,131,166,131,167,131,168,131,169,131,170,131,171,131,172,131,174,131,175,131,176,131,177,131,178,131,179,131,180,131,181,131,182,131,183,131,184,131,185,131,186,131,188,131,189,131,202,159,90,216,192,223,90,216,247,223,91,216,33,220,173,131,106,95,85,134,86,134,87,134,88,134,89,134,90,134,171,134,173,134,174,134,175,134,176,134,177,134,178,134,179,134,180,134,181,134,182,134,183,134,184,134,185,134,186,134,187,134,188,134,189,134,190,134,191,134,192,134,193,134,194,134,195,134,196,134,197,134,198,134,199,134,200,134,201,134,202,134,203,134,204,134,205,134,206,134,207,134,33,250,166,69,92,216,103,222,92,216,128,222,92,216,133,222,92,216,139,222,69,136,80,136,81,136,82,136,83,136,84,136,136,136,137,136,138,136,139,136,140,136,141,136,142,136,143,136,144,136,145,136,146,136,147,136,148,136,149,136,60,0,42,0,150,136,151,136,152,136,153,136,154,136,155,136,156,136,157,136,158,136,159,136,160,136,161,136,162,136,163,136,164,136,165,136,166,136,167,136,168,136,169,136,170,136,171,136,172,136,173,136,174,136,176,136,38,70,175,136,130,137,143,137,144,137,145,137,146,137,147,137,148,137,122,70,203,137,213,137,214,137,215,137,216,137,217,137,94,216,200,220,27,138,28,138,29,138,30,138,31,138,32,138,33,138,34,138,35,138,36,138,37,138,38,138,39,138,40,138,41,138,42,138,43,138,44,138,45,138,46,138,47,138,48,138,49,138,50,138,51,138,187,70,188,70,94,216,122,221,11,140,12,140,13,140,14,140,15,140,16,140,17,140,18,140,19,140,20,140,21,140,22,140,23,140,24,140,25,140,26,140,27,140,28,140,29,140,30,140,57,140,58,140,59,140,73,140,88,140,89,140,90,140,91,140,92,140,93,140,70,71,71,71,124,140,125,140,165,140,166,140,167,140,168,140,169,140,170,140,171,140,172,140,173,140,174,140,71,141,72,141,73,141,74,141,101,141,102,141,103,141,121,141,122,141,123,141,124,141,125,141,126,141,60,0,42,0,127,141,35,250,155,71,185,141,186,141,187,141,189,141,190,141,191,141,192,141,193,141,194,141,195,141,196,141,173,142,174,142,175,142,96,216,24,222,96,216,26,222,214,142,215,142,216,142,217,142,218,142,219,142,220,142,221,142,222,142,223,142,224,142,225,142,226,142,227,142,70,72,71,72,72,72,73,72,74,72,96,216,205,222,132,143,133,143,134,143,11,144,12,144,13,144,14,144,15,144,16,144,17,144,18,144,19,144,20,144,21,144,22,144,23,144,24,144,25,144,26,144,27,144,28,144,29,144,30,144,31,144,32,144,33,144,34,144,35,144,36,144,37,144,38,144,39,144,155,72,97,216,1,221,171,144,212,144,232,144,233,144,234,144,235,144,236,144,237,144,238,144,239,144,240,144,242,144,243,144,244,144,247,144,248,144,253,144,97,216,15,223,97,216,19,223,83,145,84,145,85,145,86,145,87,145,88,145,89,145,90,145,91,145,92,145,93,145,94,145,237,72,98,216,4,220,200,145,206,145,227,145,228,145,229,145,230,145,231,145,232,145,233,145,234,145,235,145,236,145,237,145,238,145,239,145,240,145,241,145,242,145,243,145,244,145,245,145,246,145,60,0,42,0,247,145,248,145,249,145,250,145,251,145,252,145,98,216,72,221,98,216,73,221,207,148,208,148,209,148,210,148,211,148,212,148,213,148,214,148,215,148,216,148,217,148,218,148,219,148,220,148,221,148,222,148,223,148,224,148,225,148,226,148,227,148,228,148,229,148,230,148,231,148,232,148,233,148,234,148,235,148,236,148,237,148,238,148,239,148,240,148,241,148,242,148,243,148,244,148,245,148,246,148,247,148,121,149,122,149,134,149,135,149,136,149,137,149,138,149,99,216,210,220,7,150,8,150,9,150,10,150,11,150,12,150,13,150,14,150,15,150,16,150,106,150,107,150,108,150,109,150,110,150,111,150,112,150,113,150,115,150,116,150,117,150,118,150,119,150,120,150,121,150,122,150,124,150,99,216,172,222,99,216,178,222,99,216,179,222,191,150,192,150,233,150,234,150,235,150,100,216,121,220,100,216,213,221,100,216,235,221,106,151,223,122,224,122,2,152,3,152,4,152,133,152,134,152,135,152,136,152,225,152,229,152,230,152,131,153,132,153,133,153,134,153,151,153,144,154,145,154,146,154,147,154,148,154,149,154,150,154,217,154,90,155,126,156,229,156,55,158,56,158,57,158,58,158,60,0,42,0,59,158,60,158,61,158,62,158,63,158,117,158,127,158,165,158,184,158,187,158,210,158,129,159,154,159,155,159,60,0,39,0,208,253,12,40,39,0,60,0,42,0,64,216,70,220,129,78,180,78,181,78,104,80,128,80,129,80,130,80,131,80,132,80,133,80,134,80,135,80,136,80,137,80,138,80,139,80,140,80,141,80,142,80,143,80,144,80,145,80,146,80,147,80,148,80,149,80,150,80,151,80,152,80,153,80,154,80,155,80,156,80,157,80,158,80,159,80,160,80,161,80,162,80,163,80,164,80,165,80,166,80,167,80,168,80,169,80,115,52,122,52,64,216,10,223,64,216,37,223,95,81,96,81,65,216,163,220,0,103,210,81,211,81,212,81,213,81,214,81,241,81,242,81,255,81,105,82,114,82,115,82,116,82,117,82,251,52,219,82,220,82,221,82,222,82,17,83,18,83,66,216,35,221,66,216,84,221,56,53,90,83,164,83,165,83,166,83,167,83,168,83,66,216,138,222,197,83,89,85,122,85,123,85,124,85,125,85,126,85,127,85,128,85,129,85,130,85,131,85,132,85,133,85,134,85,135,85,136,85,137,85,138,85,139,85,140,85,142,85,143,85,144,85,145,85,146,85,147,85,148,85,149,85,150,85,151,85,152,85,153,85,154,85,155,85,156,85,157,85,158,85,159,85,160,85,161,85,162,85,163,85,60,0,42,0,164,85,165,85,166,85,167,85,168,85,169,85,170,85,171,85,172,85,173,85,174,85,175,85,176,85,177,85,178,85,179,85,180,85,181,85,183,85,184,85,185,85,186,85,187,85,188,85,189,85,190,85,69,86,191,53,193,53,196,53,197,53,199,53,202,53,206,53,67,216,200,221,67,216,4,222,67,216,9,222,67,216,10,222,67,216,13,222,67,216,14,222,67,216,15,222,67,216,16,222,67,216,17,222,67,216,22,222,67,216,29,222,222,85,12,87,13,87,14,87,16,87,22,88,23,88,24,88,25,88,26,88,27,88,28,88,29,88,30,88,31,88,32,88,33,88,34,88,35,88,36,88,37,88,38,88,39,88,40,88,41,88,42,88,43,88,44,88,45,88,46,88,47,88,48,88,49,88,51,88,52,88,54,88,55,88,56,88,57,88,58,88,59,88,60,88,62,88,63,88,64,88,65,88,66,88,68,88,69,88,70,88,71,88,72,88,78,54,68,216,117,223,68,216,118,223,68,216,142,223,68,216,152,223,68,216,156,223,249,88,250,88,251,88,33,89,96,89,97,89,99,89,100,89,101,89,119,90,120,90,121,90,122,90,123,90,124,90,125,90,126,90,127,90,128,90,129,90,130,90,131,90,132,90,133,90,134,90,60,0,42,0,135,90,136,90,137,90,138,90,139,90,140,90,141,90,143,90,145,90,146,90,147,90,148,90,149,90,150,90,151,90,152,90,153,90,154,90,155,90,156,90,157,90,158,90,159,90,160,90,161,90,162,90,163,90,164,90,165,90,166,90,167,90,168,90,169,90,170,90,171,90,172,90,173,90,174,90,175,90,207,90,245,54,0,55,1,55,3,55,4,55,69,216,171,223,69,216,176,223,69,216,177,223,69,216,178,223,69,216,179,223,69,216,180,223,69,216,181,223,69,216,195,223,69,216,199,223,69,216,217,223,69,216,218,223,69,216,219,223,69,216,220,223,69,216,223,223,113,91,70,216,124,221,70,216,128,221,115,91,202,91,203,91,204,91,205,91,206,91,207,91,208,91,209,91,210,91,211,91,212,91,213,91,234,91,98,55,70,216,69,222,70,216,75,222,10,92,11,92,12,92,30,92,48,92,49,92,94,92,95,92,97,92,71,216,162,220,71,216,165,220,49,93,50,93,51,93,52,93,53,93,54,93,55,93,56,93,57,93,58,93,59,93,60,93,61,93,62,93,63,93,64,93,65,93,66,93,67,93,68,93,69,93,70,93,71,93,72,93,73,93,75,93,76,93,77,93,78,93,79,93,80,93,81,93,82,93,83,93,84,93,85,93,86,93,87,93,60,0,42,0,88,93,89,93,90,93,91,93,92,93,93,93,17,250,71,216,137,222,71,216,164,222,71,216,168,222,107,93,239,93,45,56,253,93,72,216,69,220,72,216,73,220,61,94,63,94,64,94,65,94,66,94,67,94,68,94,69,94,70,94,71,94,73,94,72,216,252,220,72,94,126,94,189,94,191,94,192,94,193,94,194,94,195,94,202,94,196,94,17,95,58,95,59,95,60,95,61,95,62,95,88,95,109,95,154,95,165,95,166,95,167,95,168,95,169,95,170,95,171,95,73,216,48,221,178,96,179,96,182,96,185,96,193,96,196,96,201,96,204,96,206,96,209,96,210,96,214,96,224,96,225,96,226,96,227,96,229,96,233,96,234,96,235,96,240,96,241,96,242,96,244,96,245,96,246,96,248,96,250,96,251,96,252,96,253,96,254,96,255,96,0,97,3,97,4,97,5,97,7,97,9,97,10,97,11,97,12,97,14,97,16,97,17,97,18,97,19,97,20,97,21,97,22,97,24,97,28,97,29,97,30,97,32,97,33,97,34,97,35,97,36,97,37,97,38,97,104,97,97,57,98,57,101,57,73,216,42,223,73,216,117,223,73,216,129,223,30,98,31,98,184,57,73,98,74,98,60,0,42,0,140,99,148,99,163,99,176,99,177,99,190,99,191,99,192,99,193,99,194,99,195,99,196,99,198,99,199,99,200,99,201,99,202,99,203,99,204,99,205,99,206,99,207,99,208,99,209,99,210,99,211,99,212,99,213,99,214,99,215,99,216,99,217,99,218,99,219,99,220,99,221,99,222,99,223,99,224,99,225,99,226,99,227,99,229,99,230,99,232,99,233,99,234,99,236,99,237,99,238,99,239,99,240,99,242,99,243,99,244,99,245,99,246,99,247,99,248,99,249,99,250,99,251,99,252,99,253,99,254,99,255,99,0,100,1,100,2,100,3,100,4,100,5,100,82,100,23,58,24,58,75,216,38,220,75,216,39,220,75,216,56,220,75,216,76,220,75,216,81,220,75,216,85,220,97,100,50,101,92,101,94,101,95,101,96,101,97,101,98,101,99,101,100,101,101,101,102,101,103,101,104,101,105,101,106,101,143,58,144,58,151,58,75,216,116,223,140,101,144,101,145,101,157,101,184,58,76,216,125,220,76,216,126,220,158,101,174,101,175,101,192,58,177,101,208,101,209,101,76,216,3,221,106,102,107,102,108,102,109,102,110,102,111,102,112,102,113,102,114,102,115,102,116,102,117,102,60,0,42,0,118,102,119,102,121,102,122,102,123,102,124,102,125,102,126,102,127,102,128,102,129,102,130,102,131,102,145,102,245,58,251,58,0,59,76,216,234,221,76,216,247,221,76,216,248,221,76,216,249,221,76,216,15,222,254,102,255,102,1,103,2,103,28,103,29,103,30,103,31,103,56,59,180,104,195,104,196,104,197,104,198,104,199,104,200,104,201,104,202,104,203,104,204,104,205,104,206,104,207,104,208,104,209,104,210,104,211,104,212,104,213,104,214,104,215,104,216,104,217,104,218,104,219,104,220,104,221,104,222,104,223,104,224,104,225,104,226,104,227,104,228,104,229,104,230,104,231,104,232,104,233,104,234,104,235,104,236,104,237,104,238,104,239,104,240,104,241,104,242,104,243,104,244,104,245,104,246,104,247,104,248,104,249,104,250,104,251,104,252,104,253,104,254,104,255,104,0,105,1,105,2,105,3,105,4,105,5,105,6,105,7,105,8,105,9,105,10,105,11,105,12,105,13,105,14,105,15,105,16,105,17,105,18,105,19,105,20,105,21,105,22,105,23,105,24,105,25,105,26,105,27,105,28,105,29,105,30,105,31,105,32,105,33,105,34,105,60,0,42,0,35,105,36,105,37,105,38,105,39,105,40,105,41,105,42,105,43,105,44,105,45,105,46,105,118,59,120,59,121,59,122,59,123,59,124,59,125,59,126,59,127,59,128,59,77,216,229,220,77,216,25,221,77,216,48,221,110,105,112,105,19,250,57,107,58,107,59,107,60,107,61,107,62,107,63,107,110,107,111,107,148,107,149,107,150,107,151,107,152,107,153,107,154,107,100,60,102,60,104,60,105,60,188,107,189,107,190,107,239,107,240,107,241,107,242,107,243,107,244,107,245,107,246,107,44,108,45,108,46,108,47,108,48,108,252,109,254,109,3,110,24,110,25,110,27,110,28,110,29,110,30,110,31,110,32,110,33,110,34,110,35,110,36,110,37,110,38,110,39,110,40,110,41,110,42,110,43,110,44,110,45,110,46,110,47,110,48,110,49,110,50,110,51,110,52,110,53,110,54,110,55,110,56,110,57,110,58,110,59,110,60,110,61,110,62,110,63,110,64,110,65,110,66,110,67,110,68,110,69,110,70,110,71,110,72,110,73,110,74,110,75,110,76,110,77,110,78,110,79,110,80,110,81,110,82,110,83,110,84,110,85,110,60,0,42,0,86,110,87,110,88,110,89,110,90,110,91,110,92,110,93,110,94,110,95,110,96,110,97,110,98,110,99,110,100,110,101,110,102,110,103,110,104,110,105,110,106,110,107,110,109,110,110,110,111,110,112,110,113,110,114,110,115,110,117,110,118,110,119,110,120,110,121,110,122,110,123,110,124,110,125,110,126,110,127,110,128,110,129,110,130,110,131,110,132,110,133,110,134,110,135,110,136,110,137,110,138,110,139,110,140,110,203,110,222,110,18,61,19,61,29,61,32,61,34,61,79,216,6,222,79,216,17,222,79,216,44,222,79,216,45,222,79,216,46,222,79,216,47,222,79,216,48,222,79,216,49,222,79,216,57,222,251,112,25,113,26,113,27,113,28,113,29,113,30,113,31,113,32,113,33,113,34,113,35,113,36,113,37,113,38,113,39,113,40,113,41,113,42,113,43,113,44,113,45,113,46,113,47,113,48,113,49,113,50,113,51,113,52,113,53,113,54,113,55,113,56,113,57,113,58,113,59,113,60,113,61,113,62,113,63,113,64,113,110,113,198,61,199,61,201,61,204,61,205,61,80,216,118,222,80,216,119,222,80,216,120,222,80,216,132,222,80,216,147,222,80,216,149,222,80,216,165,222,50,114,75,114,76,114,77,114,81,216,200,221,60,0,42,0,90,114,128,114,130,114,131,114,132,114,133,114,134,114,135,114,136,114,137,114,138,114,139,114,67,62,81,216,116,222,6,115,11,115,12,115,18,115,43,115,34,115,35,115,36,115,37,115,38,115,39,115,40,115,41,115,44,115,45,115,47,115,48,115,49,115,50,115,51,115,52,115,53,115,54,115,56,115,57,115,81,216,224,223,247,115,20,116,21,116,22,116,23,116,24,116,25,116,26,116,27,116,28,116,29,116,31,116,32,116,33,116,34,116,35,116,36,116,37,116,38,116,40,116,41,116,42,116,43,116,44,116,45,116,46,116,47,116,48,116,49,116,50,116,51,116,52,116,53,116,54,116,55,116,56,116,57,116,58,116,59,116,60,116,209,62,214,62,218,62,219,62,82,216,123,221,82,216,127,221,82,216,130,221,82,216,136,221,82,216,137,221,82,216,138,221,82,216,139,221,82,216,140,221,82,216,141,221,82,216,142,221,82,216,143,221,82,216,148,221,82,216,164,221,82,216,167,221,82,216,169,221,82,216,171,221,82,216,172,221,82,216,173,221,249,116,250,116,251,116,252,116,36,117,37,117,38,117,47,117,83,216,9,220,106,117,107,117,108,117,109,117,110,117,111,117,114,117,115,117,116,117,113,117,142,117,143,117,215,117,216,117,217,117,218,117,219,117,60,0,42,0,220,117,221,117,222,117,223,117,224,117,225,117,226,117,227,117,228,117,229,117,230,117,231,117,232,117,233,117,234,117,235,117,147,63,152,63,83,216,184,221,123,118,124,118,146,118,147,118,148,118,149,118,150,118,179,118,180,118,217,118,218,118,220,118,3,64,66,119,67,119,68,119,69,119,70,119,71,119,72,119,73,119,74,119,75,119,76,119,77,119,78,119,79,119,80,119,81,119,57,64,64,64,222,119,223,119,236,119,237,119,92,120,93,120,94,120,95,120,96,120,97,120,98,120,99,120,100,120,101,120,102,120,103,120,104,120,105,120,106,120,107,120,108,120,109,120,110,120,111,120,112,120,113,120,114,120,115,120,116,120,117,120,118,120,119,120,180,64,102,121,112,121,113,121,114,121,115,121,116,121,117,121,118,121,119,121,120,121,132,121,9,65,85,216,149,222,188,121,255,121,0,122,1,122,2,122,3,122,4,122,5,122,7,122,8,122,9,122,10,122,11,122,12,122,13,122,14,122,85,216,199,223,150,122,151,122,152,122,153,122,155,122,156,122,157,122,226,122,227,122,228,122,229,122,230,122,231,122,63,123,64,123,60,0,42,0,65,123,66,123,67,123,68,123,69,123,70,123,71,123,72,123,73,123,74,123,75,123,76,123,77,123,78,123,79,123,80,123,81,123,82,123,83,123,84,123,85,123,86,123,87,123,88,123,89,123,90,123,91,123,92,123,93,123,237,65,238,65,239,65,108,123,158,124,159,124,160,124,161,124,162,124,164,124,165,124,166,124,167,124,168,124,169,124,170,124,171,124,172,124,173,124,131,66,42,125,43,125,77,125,78,125,79,125,80,125,81,125,82,125,83,125,84,125,85,125,86,125,87,125,88,125,89,125,90,125,92,125,93,125,94,125,95,125,96,125,97,125,98,125,99,125,100,125,101,125,102,125,103,125,104,125,105,125,106,125,107,125,108,125,109,125,110,125,111,125,112,125,113,125,114,125,115,125,116,125,117,125,118,125,119,125,126,125,59,67,2,127,3,127,4,127,5,127,6,127,7,127,8,127,9,127,10,127,11,127,12,127,13,127,14,127,15,127,16,127,17,127,18,127,19,127,20,127,21,127,22,127,23,127,24,127,62,127,63,127,64,127,100,127,101,127,102,127,160,127,161,127,162,127,110,67,60,0,42,0,111,67,211,127,212,127,213,127,214,127,215,127,216,127,217,127,218,127,11,128,32,128,78,128,79,128,80,128,81,128,82,128,83,128,84,128,96,128,89,216,114,221,212,128,254,128,20,129,32,129,57,129,58,129,59,129,60,129,61,129,62,129,63,129,64,129,65,129,66,129,67,129,68,129,69,129,70,129,71,129,72,129,73,129,74,129,75,129,76,129,77,129,78,129,79,129,81,129,82,129,83,129,84,129,85,129,86,129,87,129,88,129,89,129,90,129,57,59,0,68,1,68,2,68,89,216,22,223,89,216,65,223,116,129,230,129,238,129,239,129,240,129,90,216,17,221,245,129,246,129,247,129,248,129,249,129,3,130,4,130,18,130,28,130,60,130,61,130,62,130,63,130,90,216,52,222,117,130,18,131,59,131,70,131,176,68,183,68,189,68,192,68,154,131,190,131,191,131,192,131,193,131,194,131,195,131,196,131,197,131,198,131,199,131,200,131,201,131,202,131,203,131,204,131,205,131,206,131,207,131,208,131,209,131,210,131,211,131,212,131,213,131,214,131,215,131,216,131,218,131,219,131,220,131,221,131,222,131,223,131,224,131,225,131,226,131,60,0,42,0,227,131,228,131,229,131,230,131,231,131,232,131,233,131,234,131,235,131,236,131,237,131,238,131,239,131,240,131,241,131,242,131,243,131,244,131,245,131,246,131,247,131,248,131,249,131,250,131,251,131,252,131,253,131,254,131,255,131,0,132,1,132,2,132,3,132,4,132,5,132,6,132,7,132,8,132,9,132,10,132,11,132,12,132,13,132,14,132,15,132,16,132,17,132,18,132,19,132,20,132,21,132,22,132,23,132,24,132,25,132,26,132,27,132,28,132,29,132,30,132,31,132,32,132,33,132,34,132,35,132,36,132,38,132,39,132,87,132,91,216,64,220,91,216,65,220,91,216,70,220,91,216,126,220,91,216,127,220,91,216,128,220,91,216,129,220,91,216,130,220,91,216,164,220,91,216,183,220,91,216,184,220,91,216,189,220,91,216,192,220,56,132,91,134,93,134,136,134,208,134,209,134,210,134,211,134,212,134,213,134,215,134,216,134,217,134,218,134,219,134,220,134,221,134,222,134,223,134,224,134,225,134,226,134,227,134,228,134,229,134,230,134,231,134,232,134,233,134,234,134,235,134,236,134,237,134,238,134,239,134,240,134,241,134,242,134,243,134,244,134,173,69,175,69,179,69,92,216,178,222,92,216,182,222,70,136,60,0,42,0,71,136,72,136,73,136,85,136,86,136,87,136,177,136,178,136,179,136,180,136,181,136,182,136,183,136,184,136,185,136,186,136,187,136,188,136,189,136,190,136,191,136,192,136,193,136,194,136,195,136,196,136,197,136,198,136,199,136,200,136,201,136,215,136,93,216,148,222,1,137,131,137,132,137,153,137,149,137,151,137,152,137,154,137,204,137,205,137,218,137,219,137,221,137,222,137,52,138,53,138,54,138,55,138,56,138,57,138,58,138,59,138,60,138,61,138,64,138,65,138,66,138,67,138,68,138,69,138,70,138,71,138,72,138,73,138,74,138,75,138,76,138,77,138,78,138,79,138,80,138,81,138,82,138,83,138,84,138,85,138,86,138,87,138,88,138,89,138,90,138,91,138,92,138,93,138,94,138,95,138,96,138,207,70,208,70,94,216,160,221,31,140,32,140,33,140,34,140,35,140,36,140,37,140,38,140,39,140,94,140,95,140,96,140,97,140,72,71,126,140,127,140,128,140,129,140,130,140,131,140,95,216,177,220,175,140,176,140,177,140,179,140,180,140,181,140,182,140,183,140,184,140,185,140,186,140,187,140,188,140,189,140,60,0,42,0,190,140,191,140,192,140,193,140,95,216,83,221,95,216,84,221,75,141,76,141,77,141,78,141,79,141,80,141,81,141,82,141,83,141,84,141,85,141,128,141,129,141,130,141,131,141,132,141,133,141,134,141,135,141,136,141,137,141,138,141,139,141,161,71,163,71,197,141,198,141,199,141,200,141,201,141,202,141,203,141,204,141,205,141,206,141,207,141,209,141,210,141,211,141,212,141,213,141,214,141,215,141,216,141,217,141,218,141,219,141,220,141,221,141,222,141,245,141,237,71,95,216,249,223,96,216,2,220,96,216,9,220,176,142,228,142,229,142,230,142,231,142,232,142,233,142,234,142,235,142,236,142,238,142,239,142,240,142,241,142,242,142,243,142,244,142,245,142,246,142,247,142,248,142,249,142,250,142,251,142,252,142,253,142,171,159,82,72,96,216,226,222,135,143,136,143,137,143,138,143,139,143,140,143,141,143,142,143,156,143,157,143,97,216,18,220,40,144,41,144,42,144,43,144,44,144,45,144,46,144,47,144,48,144,49,144,50,144,51,144,52,144,53,144,54,144,55,144,56,144,57,144,58,144,59,144,97,216,60,221,97,216,61,221,245,144,249,144,251,144,252,144,254,144,60,0,42,0,255,144,0,145,1,145,2,145,3,145,4,145,5,145,6,145,7,145,8,145,9,145,10,145,208,72,44,145,95,145,96,145,97,145,98,145,99,145,100,145,101,145,243,72,201,145,202,145,207,145,253,145,254,145,255,145,0,146,1,146,2,146,3,146,4,146,5,146,6,146,7,146,8,146,9,146,10,146,11,146,12,146,13,146,14,146,15,146,16,146,17,146,18,146,19,146,20,146,21,146,22,146,23,146,24,146,25,146,26,146,27,146,28,146,29,146,30,146,31,146,32,146,33,146,34,146,35,146,36,146,37,146,38,146,39,146,40,146,41,146,42,146,43,146,44,146,30,73,32,73,98,216,86,221,98,216,100,221,248,148,249,148,250,148,251,148,252,148,253,148,254,148,255,148,0,149,1,149,2,149,3,149,4,149,5,149,6,149,7,149,8,149,9,149,10,149,11,149,12,149,13,149,14,149,15,149,16,149,17,149,18,149,19,149,20,149,21,149,123,149,139,149,140,149,141,149,142,149,143,149,144,149,145,149,146,149,147,149,148,149,149,149,150,149,151,149,17,150,18,150,19,150,20,150,21,150,114,150,123,150,60,0,42,0,125,150,126,150,127,150,128,150,129,150,130,150,131,150,132,150,133,150,134,150,135,150,136,150,137,150,138,150,139,150,140,150,141,150,142,150,144,150,99,216,217,222,99,216,231,222,193,150,194,150,195,150,196,150,197,150,198,150,199,150,200,150,236,150,237,150,238,150,239,150,240,150,241,150,242,150,243,150,100,216,136,220,100,216,139,220,83,151,84,151,95,151,107,151,108,151,109,151,110,151,111,151,112,151,113,151,204,151,233,151,5,152,6,152,7,152,8,152,137,152,138,152,139,152,140,152,141,152,142,152,143,152,169,152,170,152,101,216,158,221,211,152,231,152,232,152,233,152,234,152,235,152,237,152,239,152,240,152,242,152,135,153,136,153,138,153,139,153,173,153,174,153,151,154,152,154,153,154,154,154,155,154,169,154,224,154,50,76,127,156,128,156,129,156,130,156,131,156,230,156,64,158,65,158,66,158,67,158,68,158,69,158,70,158,71,158,72,158,195,158,196,158,205,158,209,158,249,158,11,159,130,159,60,0,39,0,208,253,13,40,39,0,60,0,42,0,130,78,131,78,132,78,182,78,183,78,170,80,171,80,172,80,173,80,174,80,175,80,176,80,177,80,178,80,179,80,180,80,181,80,182,80,183,80,184,80,185,80,186,80,187,80,188,80,189,80,190,80,191,80,192,80,193,80,194,80,195,80,196,80,197,80,198,80,199,80,200,80,201,80,202,80,203,80,204,80,205,80,125,52,126,52,64,216,65,223,64,216,69,223,64,216,70,223,64,216,71,223,64,216,181,223,97,81,126,81,127,81,215,81,119,82,120,82,121,82,122,82,123,82,124,82,125,82,126,82,127,82,223,82,224,82,225,82,226,82,227,82,228,82,229,82,230,82,231,82,47,83,50,53,51,53,52,53,128,83,129,83,170,83,171,83,175,83,224,83,141,85,191,85,192,85,193,85,194,85,195,85,196,85,197,85,198,85,199,85,200,85,201,85,202,85,203,85,204,85,205,85,206,85,207,85,208,85,209,85,210,85,211,85,212,85,213,85,214,85,215,85,216,85,217,85,218,85,219,85,220,85,221,85,223,85,224,85,225,85,226,85,227,85,228,85,229,85,230,85,231,85,232,85,233,85,234,85,235,85,236,85,237,85,238,85,60,0,42,0,239,85,240,85,241,85,242,85,243,85,244,85,245,85,210,53,214,53,219,53,221,53,224,53,67,216,76,222,67,216,109,222,67,216,115,222,67,216,117,222,67,216,118,222,67,216,119,222,67,216,120,222,67,216,121,222,67,216,122,222,67,216,123,222,67,216,140,222,67,216,150,222,67,216,152,222,67,216,157,222,67,216,162,222,67,216,170,222,67,216,171,222,67,216,172,222,67,216,182,222,17,87,18,87,19,87,20,87,21,87,61,88,67,88,73,88,74,88,75,88,76,88,77,88,78,88,79,88,80,88,81,88,82,88,83,88,84,88,85,88,86,88,87,88,88,88,89,88,90,88,91,88,92,88,93,88,94,88,95,88,96,88,97,88,98,88,99,88,100,88,101,88,102,88,103,88,104,88,105,88,106,88,107,88,108,88,109,88,110,88,111,88,112,88,113,88,95,54,68,216,197,223,68,216,198,223,252,88,102,89,103,89,104,89,69,216,97,222,144,90,176,90,177,90,178,90,179,90,180,90,181,90,182,90,183,90,184,90,185,90,186,90,187,90,188,90,189,90,190,90,191,90,192,90,193,90,194,90,195,90,196,90,197,90,198,90,199,90,200,90,201,90,202,90,203,90,204,90,205,90,206,90,208,90,209,90,210,90,211,90,212,90,8,55,10,55,13,55,69,216,239,223,60,0,42,0,69,216,245,223,69,216,246,223,69,216,248,223,69,216,249,223,69,216,250,223,69,216,251,223,69,216,252,223,116,91,70,216,131,221,70,216,136,221,118,91,214,91,215,91,216,91,217,91,218,91,219,91,220,91,221,91,102,55,70,216,99,222,31,92,32,92,50,92,51,92,52,92,71,216,172,220,74,93,94,93,95,93,96,93,97,93,98,93,99,93,100,93,101,93,102,93,103,93,104,93,105,93,106,93,108,93,109,93,110,93,111,93,112,93,113,93,114,93,115,93,116,93,117,93,118,93,242,55,248,55,71,216,200,222,71,216,213,222,240,93,74,94,75,94,76,94,77,94,78,94,79,94,121,94,197,94,198,94,199,94,200,94,201,94,203,94,204,94,72,216,124,222,18,95,63,95,64,95,65,95,66,95,89,95,90,95,73,216,101,220,110,95,172,95,173,95,174,95,175,95,176,95,243,96,247,96,249,96,1,97,2,97,6,97,8,97,13,97,15,97,23,97,25,97,26,97,27,97,31,97,99,57,100,57,102,57,39,97,41,97,42,97,43,97,45,97,46,97,47,97,48,97,49,97,50,97,52,97,53,97,54,97,55,97,57,97,58,97,60,97,61,97,62,97,64,97,67,97,68,97,69,97,70,97,73,97,60,0,42,0,74,97,76,97,77,97,78,97,79,97,81,97,73,216,150,223,73,216,180,223,73,216,181,223,73,216,205,223,38,98,32,98,33,98,34,98,35,98,36,98,37,98,231,99,235,99,241,99,6,100,7,100,8,100,9,100,10,100,11,100,12,100,13,100,14,100,15,100,16,100,17,100,18,100,19,100,20,100,21,100,22,100,23,100,24,100,25,100,26,100,27,100,28,100,29,100,30,100,31,100,32,100,33,100,34,100,35,100,36,100,37,100,38,100,39,100,40,100,41,100,42,100,44,100,45,100,46,100,47,100,48,100,50,100,51,100,53,100,54,100,55,100,56,100,57,100,58,100,60,100,61,100,62,100,64,100,65,100,66,100,67,100,68,100,69,100,70,100,71,100,72,100,73,100,74,100,32,58,35,58,38,58,41,58,42,58,75,216,98,220,75,216,136,220,75,216,155,220,75,216,161,220,75,216,169,220,75,216,178,220,197,99,49,100,109,101,107,101,108,101,110,101,111,101,112,101,146,101,101,216,176,221,159,101,176,101,210,101,211,101,212,101,213,101,228,101,120,102,132,102,133,102,134,102,135,102,136,102,137,102,138,102,139,102,140,102,141,102,142,102,143,102,144,102,146,102,147,102,60,0,42,0,148,102,149,102,150,102,151,102,152,102,153,102,1,59,2,59,3,59,4,59,5,59,6,59,7,59,8,59,9,59,10,59,11,59,12,59,76,216,37,222,76,216,47,222,76,216,49,222,76,216,50,222,76,216,51,222,76,216,52,222,3,103,32,103,58,59,47,105,48,105,49,105,50,105,51,105,52,105,53,105,54,105,55,105,56,105,57,105,58,105,59,105,60,105,61,105,62,105,63,105,64,105,65,105,66,105,67,105,68,105,69,105,70,105,71,105,72,105,73,105,74,105,75,105,76,105,77,105,78,105,79,105,80,105,81,105,82,105,83,105,84,105,85,105,87,105,88,105,89,105,90,105,91,105,92,105,93,105,94,105,95,105,96,105,97,105,98,105,99,105,100,105,101,105,102,105,103,105,104,105,105,105,106,105,107,105,108,105,109,105,111,105,113,105,114,105,115,105,116,105,117,105,118,105,119,105,120,105,121,105,122,105,123,105,124,105,125,105,126,105,127,105,128,105,129,105,130,105,131,105,132,105,133,105,134,105,135,105,136,105,137,105,139,105,140,105,148,105,152,105,149,59,150,59,153,59,77,216,81,221,77,216,90,221,77,216,103,221,77,216,149,221,77,216,153,221,77,216,156,221,60,0,42,0,64,107,65,107,66,107,67,107,68,107,69,107,70,107,71,107,72,107,60,60,62,60,113,107,114,107,115,107,155,107,156,107,110,60,191,107,192,107,193,107,194,107,78,216,167,222,211,107,247,107,248,107,249,107,250,107,251,107,252,107,253,107,49,108,108,110,141,110,142,110,143,110,144,110,145,110,146,110,147,110,148,110,149,110,150,110,151,110,152,110,153,110,154,110,155,110,156,110,157,110,158,110,159,110,160,110,161,110,162,110,163,110,164,110,165,110,166,110,167,110,168,110,169,110,170,110,171,110,172,110,173,110,174,110,175,110,176,110,177,110,178,110,179,110,180,110,181,110,182,110,183,110,184,110,185,110,186,110,187,110,188,110,189,110,190,110,191,110,192,110,193,110,194,110,195,110,196,110,197,110,198,110,199,110,200,110,201,110,202,110,205,110,207,110,208,110,209,110,210,110,211,110,212,110,214,110,215,110,216,110,217,110,219,110,220,110,221,110,223,110,224,110,225,110,226,110,227,110,228,110,229,110,230,110,231,110,232,110,233,110,234,110,19,111,38,61,50,61,51,61,59,61,79,216,136,222,79,216,137,222,79,216,138,222,60,0,42,0,79,216,139,222,79,216,185,222,79,216,191,222,218,110,65,113,66,113,67,113,68,113,69,113,70,113,71,113,72,113,73,113,74,113,75,113,76,113,77,113,78,113,79,113,80,113,81,113,82,113,83,113,84,113,86,113,87,113,88,113,89,113,90,113,92,113,93,113,94,113,95,113,96,113,97,113,98,113,99,113,100,113,101,113,102,113,103,113,104,113,105,113,106,113,107,113,108,113,109,113,111,113,112,113,113,113,114,113,115,113,116,113,117,113,118,113,119,113,120,113,122,113,161,59,211,61,219,61,80,216,191,222,80,216,193,222,80,216,201,222,80,216,202,222,80,216,238,222,80,216,250,222,81,216,33,221,58,114,67,114,78,114,79,114,80,114,81,114,82,114,140,114,141,114,142,114,143,114,144,114,145,114,72,62,81,216,151,222,46,115,55,115,65,115,58,115,59,115,60,115,61,115,62,115,63,115,64,115,66,115,69,115,70,115,71,115,72,115,73,115,74,115,82,216,18,220,82,216,35,220,39,116,215,62,30,116,61,116,62,116,63,116,64,116,65,116,66,116,67,116,68,116,69,116,70,116,71,116,72,116,73,116,74,116,75,116,76,116,77,116,78,116,79,116,80,116,81,116,82,116,83,116,60,0,42,0,84,116,85,116,86,116,87,116,88,116,89,116,90,116,91,116,92,116,93,116,94,116,95,116,222,62,225,62,226,62,82,216,183,221,82,216,184,221,82,216,185,221,82,216,186,221,82,216,187,221,82,216,197,221,82,216,208,221,82,216,218,221,82,216,222,221,82,216,223,221,82,216,227,221,82,216,229,221,111,116,225,116,253,116,254,116,255,116,1,117,29,117,30,117,117,117,118,117,119,117,120,117,121,117,122,117,99,63,83,216,158,220,83,216,159,220,236,117,237,117,238,117,239,117,240,117,241,117,242,117,243,117,244,117,245,117,246,117,247,117,248,117,249,117,250,117,251,117,252,117,253,117,254,117,255,117,0,118,1,118,2,118,3,118,4,118,5,118,6,118,83,216,234,221,83,216,235,221,15,118,16,118,151,118,152,118,153,118,83,216,130,223,83,216,134,223,181,118,221,118,222,118,223,118,4,64,82,119,83,119,84,119,85,119,86,119,87,119,88,119,89,119,90,119,91,119,92,119,93,119,94,119,95,119,96,119,98,119,99,119,100,119,101,119,102,119,103,119,104,119,105,119,106,119,107,119,108,119,109,119,69,64,84,216,205,221,84,216,227,221,84,216,230,221,84,216,231,221,97,119,121,119,224,119,238,119,120,120,121,120,122,120,123,120,124,120,125,120,127,120,60,0,42,0,128,120,129,120,130,120,131,120,132,120,133,120,134,120,135,120,136,120,137,120,138,120,139,120,140,120,141,120,142,120,143,120,144,120,145,120,146,120,147,120,148,120,149,120,150,120,151,120,152,120,153,120,154,120,155,120,156,120,176,120,187,64,191,64,121,121,122,121,123,121,124,121,125,121,126,121,127,121,128,121,129,121,130,121,131,121,133,121,134,121,14,65,189,121,44,132,15,122,16,122,17,122,18,122,19,122,20,122,21,122,22,122,23,122,24,122,25,122,26,122,27,122,28,122,29,122,30,122,31,122,32,122,33,122,34,122,35,122,36,122,37,122,85,216,223,223,85,216,224,223,85,216,225,223,158,122,159,122,160,122,161,122,162,122,163,122,164,122,165,122,166,122,167,122,86,216,172,221,232,122,233,122,234,122,235,122,207,65,86,216,149,222,94,123,95,123,96,123,97,123,98,123,99,123,100,123,101,123,102,123,103,123,104,123,105,123,106,123,107,123,109,123,110,123,111,123,112,123,113,123,114,123,115,123,116,123,118,123,119,123,120,123,121,123,122,123,123,123,124,123,125,123,126,123,127,123,128,123,192,123,248,65,249,65,251,65,60,0,42,0,252,65,253,65,254,65,255,65,0,66,86,216,116,223,86,216,137,223,174,124,175,124,176,124,177,124,178,124,179,124,180,124,181,124,192,124,140,66,87,216,129,222,87,216,130,222,87,216,131,222,91,125,120,125,121,125,122,125,123,125,124,125,125,125,127,125,128,125,129,125,130,125,131,125,132,125,133,125,134,125,135,125,136,125,137,125,138,125,139,125,140,125,141,125,142,125,143,125,144,125,145,125,146,125,147,125,148,125,149,125,151,125,152,125,153,125,154,125,155,125,88,216,33,220,88,216,41,220,25,127,26,127,27,127,28,127,29,127,30,127,31,127,32,127,33,127,34,127,35,127,36,127,103,127,104,127,105,127,106,127,107,127,108,127,109,127,110,127,114,127,88,216,208,222,163,127,164,127,165,127,166,127,167,127,168,127,169,127,170,127,219,127,220,127,221,127,33,128,34,128,85,128,86,128,87,128,88,128,132,128,133,128,134,128,80,94,33,103,91,129,92,129,93,129,94,129,95,129,96,129,97,129,98,129,99,129,100,129,101,129,102,129,103,129,104,129,105,129,106,129,107,129,108,129,109,129,110,129,111,129,112,129,113,129,114,129,115,129,117,129,118,129,60,0,42,0,119,129,120,129,121,129,122,129,123,129,124,129,125,129,126,129,19,68,5,130,29,130,64,130,65,130,66,130,67,130,68,130,69,130,70,130,71,130,72,130,73,130,90,216,66,222,187,131,195,68,197,68,206,68,217,131,37,132,40,132,41,132,42,132,43,132,45,132,46,132,47,132,48,132,49,132,50,132,51,132,52,132,53,132,54,132,55,132,57,132,58,132,59,132,60,132,61,132,62,132,63,132,64,132,65,132,66,132,67,132,68,132,69,132,70,132,71,132,72,132,73,132,74,132,75,132,76,132,77,132,78,132,79,132,80,132,81,132,82,132,83,132,84,132,85,132,86,132,88,132,89,132,90,132,91,132,92,132,93,132,94,132,95,132,96,132,97,132,98,132,99,132,100,132,101,132,102,132,103,132,104,132,105,132,106,132,107,132,108,132,109,132,110,132,111,132,112,132,113,132,114,132,115,132,116,132,117,132,118,132,119,132,120,132,121,132,122,132,123,132,124,132,125,132,126,132,127,132,128,132,129,132,130,132,131,132,132,132,133,132,134,132,135,132,136,132,137,132,139,132,140,132,141,132,142,132,143,132,60,0,42,0,91,216,195,220,91,216,209,220,91,216,34,221,91,216,35,221,91,216,36,221,91,216,37,221,91,216,38,221,91,216,39,221,91,216,40,221,91,216,41,221,91,216,42,221,91,216,81,221,197,132,200,132,241,132,7,133,92,134,94,134,95,134,214,134,245,134,246,134,247,134,248,134,249,134,250,134,251,134,252,134,253,134,254,134,255,134,0,135,1,135,2,135,3,135,4,135,5,135,6,135,7,135,8,135,9,135,10,135,11,135,12,135,13,135,14,135,15,135,16,135,19,135,20,135,21,135,22,135,23,135,70,135,92,216,230,222,77,135,88,136,89,136,202,136,203,136,204,136,205,136,206,136,207,136,208,136,209,136,210,136,211,136,212,136,213,136,214,136,216,136,217,136,218,136,219,136,220,136,221,136,222,136,223,136,224,136,225,136,227,136,228,136,229,136,133,137,155,137,156,137,128,70,206,137,220,137,223,137,224,137,225,137,226,137,227,137,228,137,229,137,230,137,231,137,62,138,63,138,97,138,98,138,99,138,100,138,101,138,102,138,103,138,104,138,105,138,106,138,107,138,108,138,109,138,110,138,111,138,112,138,113,138,114,138,115,138,116,138,117,138,118,138,119,138,120,138,121,138,122,138,123,138,60,0,42,0,124,138,125,138,126,138,127,138,128,138,129,138,130,138,131,138,132,138,133,138,134,138,135,138,136,138,137,138,138,138,160,138,94,216,221,221,40,140,41,140,42,140,43,140,44,140,60,140,74,140,75,140,54,71,98,140,99,140,100,140,101,140,102,140,132,140,133,140,134,140,135,140,136,140,137,140,138,140,95,216,197,220,178,140,194,140,195,140,196,140,197,140,198,140,199,140,200,140,201,140,202,140,203,140,204,140,205,140,206,140,95,216,102,221,95,216,115,221,95,216,132,221,86,141,87,141,104,141,105,141,106,141,140,141,141,141,142,141,143,141,144,141,145,141,146,141,147,141,148,141,166,71,208,141,188,141,223,141,224,141,225,141,226,141,227,141,228,141,229,141,230,141,231,141,232,141,233,141,234,141,235,141,236,141,237,141,238,141,239,141,240,141,241,141,242,141,243,141,244,141,246,141,247,141,248,141,249,141,250,141,251,141,96,216,30,220,96,216,35,220,96,216,36,220,177,142,178,142,55,72,237,142,254,142,255,142,0,143,1,143,2,143,3,143,4,143,5,143,6,143,7,143,8,143,9,143,10,143,11,143,12,143,143,143,144,143,145,143,146,143,147,143,60,0,42,0,148,143,158,143,159,143,160,143,178,143,60,144,61,144,62,144,63,144,64,144,65,144,66,144,67,144,68,144,69,144,70,144,71,144,72,144,73,144,74,144,75,144,76,144,77,144,78,144,79,144,80,144,81,144,82,144,83,144,84,144,85,144,86,144,87,144,97,216,108,221,204,144,11,145,12,145,13,145,14,145,15,145,16,145,17,145,18,145,19,145,20,145,21,145,22,145,23,145,102,145,103,145,104,145,105,145,106,145,107,145,108,145,109,145,110,145,111,145,112,145,113,145,98,216,43,220,46,146,47,146,48,146,49,146,50,146,51,146,52,146,53,146,54,146,55,146,56,146,57,146,58,146,59,146,60,146,61,146,62,146,63,146,64,146,65,146,66,146,67,146,68,146,69,146,70,146,71,146,72,146,73,146,74,146,75,146,76,146,77,146,78,146,79,146,80,146,81,146,82,146,83,146,84,146,85,146,86,146,87,146,88,146,89,146,90,146,91,146,92,146,93,146,94,146,95,146,96,146,97,146,98,146,99,146,100,146,101,146,102,146,103,146,104,146,105,146,106,146,107,146,108,146,109,146,110,146,111,146,112,146,60,0,42,0,113,146,114,146,115,146,116,146,143,146,175,159,98,216,104,221,98,216,108,221,98,216,109,221,98,216,126,221,22,149,23,149,24,149,25,149,26,149,27,149,28,149,29,149,30,149,31,149,32,149,33,149,34,149,35,149,36,149,37,149,38,149,39,149,40,149,41,149,42,149,43,149,44,149,45,149,46,149,47,149,48,149,49,149,137,73,152,149,153,149,154,149,155,149,156,149,157,149,158,149,159,149,160,149,22,150,23,150,24,150,25,150,143,150,145,150,146,150,147,150,148,150,149,150,150,150,151,150,152,150,41,250,223,73,201,150,202,150,203,150,205,150,206,150,207,150,244,150,245,150,246,150,247,150,248,150,249,150,250,150,251,150,252,150,253,150,254,150,100,216,147,220,85,151,86,151,114,151,115,151,116,151,117,151,118,151,119,151,120,151,121,151,234,151,235,151,238,151,244,151,245,151,9,152,10,152,11,152,12,152,13,152,14,152,15,152,16,152,17,152,18,152,19,152,180,74,144,152,145,152,146,152,147,152,148,152,149,152,150,152,171,152,172,152,212,152,236,152,238,152,241,152,38,75,243,152,244,152,245,152,246,152,247,152,249,152,60,0,42,0,251,152,252,152,253,152,254,152,255,152,137,153,140,153,141,153,142,153,143,153,144,153,154,153,175,153,176,153,177,153,178,153,179,153,180,153,181,153,156,154,157,154,158,154,159,154,170,154,171,154,172,154,173,154,174,154,102,216,40,222,225,154,226,154,61,155,91,155,92,155,93,155,94,155,132,156,133,156,134,156,135,156,136,156,137,156,138,156,139,156,140,156,141,156,142,156,143,156,144,156,231,156,232,156,233,156,234,156,235,156,237,156,238,156,239,156,240,156,73,158,74,158,75,158,76,158,77,158,78,158,79,158,80,158,81,158,82,158,83,158,84,158,128,158,129,158,130,158,104,216,255,222,253,158,12,159,14,159,19,159,20,159,32,159,131,159,132,159,133,159,134,159,60,0,39,0,208,253,14,40,39,0,60,0,42,0,64,216,78,220,72,216,161,221,206,80,207,80,208,80,209,80,210,80,211,80,212,80,213,80,214,80,215,80,216,80,217,80,218,80,219,80,220,80,221,80,222,80,223,80,224,80,225,80,226,80,227,80,228,80,229,80,230,80,231,80,232,80,233,80,234,80,235,80,236,80,237,80,238,80,239,80,240,80,241,80,243,80,244,80,247,80,64,216,126,223,64,216,127,223,64,216,128,223,64,216,160,223,64,216,167,223,242,80,98,81,169,81,216,81,243,81,244,81,128,82,129,82,130,82,131,82,132,82,0,53,4,53,6,53,232,82,233,82,234,82,235,82,236,82,237,82,34,53,48,83,49,83,50,83,53,53,172,83,173,83,174,83,176,83,81,53,198,83,66,216,13,223,14,250,97,53,246,85,247,85,248,85,249,85,250,85,251,85,252,85,253,85,254,85,255,85,0,86,1,86,2,86,3,86,4,86,5,86,6,86,7,86,8,86,9,86,10,86,11,86,12,86,13,86,14,86,15,86,16,86,17,86,18,86,19,86,20,86,21,86,22,86,23,86,24,86,25,86,26,86,27,86,28,86,29,86,30,86,33,86,34,86,35,86,36,86,37,86,38,86,39,86,60,0,42,0,81,86,67,216,215,222,67,216,216,222,67,216,221,222,67,216,248,222,67,216,249,222,67,216,250,222,67,216,251,222,67,216,29,223,67,216,38,223,67,216,45,223,67,216,46,223,67,216,48,223,67,216,49,223,67,216,59,223,67,216,76,223,31,86,40,86,22,87,23,87,24,87,25,87,114,88,115,88,116,88,117,88,118,88,119,88,120,88,121,88,122,88,123,88,124,88,125,88,126,88,127,88,129,88,130,88,131,88,132,88,133,88,134,88,135,88,136,88,137,88,138,88,139,88,140,88,141,88,142,88,143,88,144,88,145,88,146,88,147,88,148,88,149,88,150,88,151,88,152,88,153,88,154,88,155,88,97,54,101,54,102,54,68,216,237,223,68,216,254,223,69,216,19,220,69,216,22,220,173,88,253,88,254,88,16,89,34,89,35,89,36,89,37,89,105,89,106,89,107,89,108,89,213,90,214,90,215,90,216,90,217,90,218,90,219,90,220,90,221,90,222,90,223,90,224,90,225,90,226,90,227,90,228,90,229,90,230,90,231,90,232,90,233,90,234,90,235,90,236,90,237,90,238,90,239,90,240,90,241,90,242,90,28,55,30,55,32,55,34,55,70,216,32,220,70,216,40,220,70,216,41,220,70,216,42,220,70,216,45,220,70,216,57,220,70,216,58,220,70,216,59,220,70,216,64,220,70,216,69,220,243,90,117,91,60,0,42,0,119,91,70,216,150,221,222,91,223,91,224,91,225,91,226,91,227,91,228,91,229,91,230,91,231,91,232,91,13,92,33,92,98,92,99,92,119,93,120,93,121,93,122,93,123,93,124,93,125,93,126,93,127,93,128,93,129,93,130,93,131,93,132,93,133,93,134,93,135,93,136,93,137,93,138,93,139,93,140,93,141,93,142,93,251,55,0,56,1,56,4,56,81,94,82,94,83,94,84,94,85,94,86,94,87,94,88,94,89,94,91,94,72,216,42,221,99,94,205,94,206,94,207,94,208,94,209,94,210,94,211,94,212,94,213,94,214,94,215,94,216,94,217,94,220,94,10,95,67,95,68,95,69,95,195,56,70,95,111,95,112,95,209,56,177,95,179,95,180,95,73,216,84,221,182,95,40,97,44,97,51,97,56,97,59,97,63,97,65,97,66,97,71,97,72,97,75,97,80,97,120,57,82,97,83,97,84,97,86,97,88,97,90,97,91,97,94,97,95,97,96,97,97,97,98,97,99,97,101,97,105,97,106,97,108,97,111,97,113,97,114,97,115,97,116,97,117,97,119,97,122,97,123,97,125,97,128,97,129,97,134,97,60,0,42,0,136,97,128,57,74,216,3,220,39,98,40,98,41,98,42,98,43,98,44,98,43,100,52,100,59,100,63,100,75,100,76,100,77,100,78,100,79,100,80,100,81,100,83,100,84,100,85,100,87,100,88,100,89,100,90,100,91,100,92,100,93,100,94,100,95,100,96,100,98,100,99,100,100,100,101,100,102,100,103,100,106,100,107,100,108,100,109,100,113,100,114,100,115,100,116,100,117,100,118,100,119,100,120,100,122,100,123,100,124,100,125,100,126,100,127,100,129,100,130,100,132,100,135,100,47,58,49,58,50,58,51,58,52,58,53,58,54,58,55,58,56,58,57,58,75,216,183,220,75,216,194,220,75,216,198,220,75,216,201,220,75,216,7,221,75,216,8,221,75,216,18,221,86,100,166,100,113,101,114,101,115,101,160,101,161,101,178,101,76,216,183,220,214,101,215,101,154,102,155,102,156,102,157,102,158,102,159,102,160,102,161,102,162,102,163,102,164,102,165,102,166,102,167,102,168,102,13,59,14,59,15,59,16,59,76,216,86,222,76,216,94,222,76,216,98,222,4,103,5,103,34,103,59,59,138,105,141,105,142,105,143,105,144,105,145,105,146,105,147,105,149,105,150,105,151,105,153,105,154,105,60,0,42,0,155,105,156,105,157,105,158,105,159,105,160,105,161,105,162,105,163,105,164,105,165,105,166,105,167,105,168,105,169,105,170,105,171,105,172,105,173,105,174,105,175,105,176,105,177,105,178,105,179,105,180,105,181,105,182,105,183,105,184,105,185,105,186,105,187,105,188,105,189,105,190,105,191,105,192,105,193,105,194,105,195,105,196,105,197,105,198,105,199,105,200,105,201,105,202,105,203,105,204,105,205,105,206,105,207,105,208,105,209,105,210,105,211,105,212,105,213,105,214,105,215,105,216,105,217,105,218,105,219,105,220,105,221,105,222,105,223,105,224,105,225,105,46,106,20,250,188,59,77,216,187,221,77,216,205,221,77,216,206,221,77,216,207,221,77,216,243,221,77,216,0,222,3,106,73,107,74,107,75,107,76,107,77,107,112,107,116,107,157,107,158,107,159,107,160,107,161,107,195,107,196,107,78,216,250,222,254,107,50,108,51,108,206,110,204,110,235,110,236,110,237,110,238,110,239,110,240,110,241,110,242,110,243,110,244,110,245,110,246,110,247,110,248,110,249,110,250,110,251,110,252,110,253,110,254,110,255,110,1,111,2,111,3,111,4,111,5,111,6,111,60,0,42,0,7,111,8,111,9,111,10,111,12,111,13,111,14,111,15,111,17,111,18,111,20,111,21,111,22,111,23,111,24,111,25,111,26,111,27,111,28,111,29,111,30,111,31,111,32,111,33,111,34,111,35,111,36,111,37,111,39,111,40,111,41,111,42,111,43,111,44,111,45,111,46,111,47,111,48,111,49,111,50,111,51,111,52,111,53,111,54,111,55,111,56,111,57,111,58,111,59,111,60,111,62,111,64,111,66,111,67,111,68,111,69,111,70,111,71,111,72,111,73,111,74,111,75,111,76,111,77,111,61,61,70,61,79,216,215,222,79,216,247,222,79,216,248,222,79,216,249,222,79,216,250,222,79,216,251,222,79,216,252,222,79,216,53,223,79,216,65,223,78,111,115,111,85,113,91,113,121,113,123,113,124,113,125,113,126,113,127,113,128,113,129,113,130,113,131,113,132,113,133,113,134,113,135,113,136,113,137,113,138,113,139,113,140,113,141,113,142,113,143,113,144,113,145,113,146,113,147,113,148,113,149,113,150,113,151,113,152,113,153,113,184,132,231,61,232,61,80,216,13,223,80,216,26,223,80,216,52,223,80,216,72,223,51,114,62,114,68,114,83,114,84,114,34,62,146,114,147,114,148,114,149,114,60,0,42,0,150,114,151,114,67,115,68,115,76,115,77,115,79,115,80,115,81,115,82,115,83,115,84,115,85,115,96,116,97,116,98,116,99,116,100,116,101,116,102,116,103,116,104,116,106,116,107,116,109,116,110,116,112,116,113,116,114,116,115,116,116,116,117,116,118,116,119,116,120,116,231,62,233,62,82,216,236,221,82,216,237,221,82,216,246,221,82,216,247,221,82,216,248,221,82,216,249,221,82,216,251,221,82,216,14,222,82,216,18,222,82,216,19,222,0,117,2,117,3,117,4,117,5,117,6,117,82,216,110,223,39,117,123,117,124,117,125,117,144,117,145,117,7,118,8,118,9,118,10,118,11,118,12,118,13,118,14,118,17,118,18,118,19,118,20,118,21,118,22,118,23,118,24,118,39,118,182,118,183,118,184,118,185,118,224,118,225,118,226,118,227,118,110,119,111,119,112,119,113,119,114,119,115,119,116,119,117,119,118,119,119,119,120,119,122,119,123,119,124,119,125,119,126,119,127,119,128,119,129,119,130,119,131,119,132,119,133,119,134,119,83,64,84,216,32,222,84,216,33,222,126,120,157,120,158,120,159,120,160,120,161,120,162,120,163,120,164,120,165,120,166,120,167,120,168,120,169,120,170,120,171,120,60,0,42,0,172,120,173,120,174,120,175,120,177,120,178,120,179,120,180,120,181,120,182,120,183,120,184,120,185,120,193,120,200,64,135,121,136,121,137,121,138,121,139,121,140,121,141,121,142,121,143,121,144,121,145,121,146,121,147,121,148,121,149,121,150,121,151,121,152,121,153,121,38,122,39,122,40,122,41,122,42,122,43,122,44,122,45,122,46,122,47,122,48,122,49,122,50,122,51,122,74,122,103,65,53,122,168,122,169,122,170,122,171,122,172,122,173,122,86,216,204,221,236,122,237,122,239,122,240,122,86,216,156,222,238,122,117,123,129,123,130,123,131,123,132,123,133,123,134,123,135,123,136,123,137,123,138,123,139,123,140,123,141,123,142,123,143,123,144,123,145,123,146,123,147,123,148,123,149,123,150,123,151,123,152,123,153,123,154,123,155,123,156,123,157,123,158,123,159,123,160,123,161,123,162,123,163,123,164,123,165,123,166,123,167,123,168,123,169,123,170,123,171,123,1,66,2,66,3,66,4,66,5,66,6,66,7,66,8,66,9,66,10,66,11,66,12,66,13,66,86,216,179,223,86,216,180,223,86,216,198,223,184,123,182,124,183,124,184,124,60,0,42,0,185,124,186,124,187,124,188,124,189,124,190,124,191,124,193,124,87,216,166,222,87,216,188,222,150,125,208,125,156,125,157,125,158,125,159,125,160,125,161,125,162,125,163,125,164,125,165,125,166,125,167,125,168,125,169,125,170,125,171,125,172,125,173,125,174,125,175,125,176,125,177,125,178,125,179,125,180,125,181,125,182,125,183,125,184,125,185,125,186,125,187,125,188,125,189,125,190,125,191,125,192,125,193,125,194,125,195,125,196,125,197,125,198,125,199,125,200,125,201,125,202,125,203,125,204,125,205,125,206,125,207,125,209,125,210,125,212,125,213,125,232,66,233,66,236,66,237,66,241,66,88,216,72,220,88,216,100,220,37,127,38,127,39,127,40,127,41,127,42,127,43,127,65,127,66,127,111,127,112,127,113,127,115,127,116,127,171,127,222,127,223,127,224,127,225,127,226,127,227,127,228,127,89,216,74,220,229,127,35,128,36,128,37,128,89,128,90,128,91,128,92,128,93,128,94,128,95,128,97,128,98,128,99,128,186,67,89,216,160,221,135,128,136,128,80,129,127,129,128,129,129,129,130,129,131,129,132,129,133,129,134,129,135,129,136,129,137,129,60,0,42,0,138,129,139,129,140,129,141,129,142,129,143,129,145,129,32,68,37,68,38,68,89,216,153,223,89,216,179,223,89,216,180,223,89,216,204,223,231,129,250,129,7,130,19,130,20,130,21,130,30,130,74,130,75,130,76,130,77,130,90,216,81,222,90,216,82,222,221,68,222,68,223,68,225,68,228,68,233,68,234,68,235,68,236,68,144,132,145,132,146,132,147,132,148,132,149,132,150,132,151,132,152,132,153,132,154,132,155,132,156,132,157,132,158,132,159,132,160,132,161,132,162,132,163,132,164,132,165,132,166,132,167,132,168,132,169,132,170,132,171,132,172,132,173,132,174,132,175,132,176,132,177,132,178,132,179,132,180,132,181,132,182,132,183,132,185,132,186,132,187,132,188,132,189,132,190,132,191,132,192,132,193,132,194,132,195,132,196,132,198,132,199,132,201,132,202,132,203,132,204,132,205,132,206,132,207,132,208,132,209,132,210,132,211,132,212,132,213,132,214,132,215,132,216,132,217,132,218,132,219,132,220,132,221,132,223,132,225,132,226,132,227,132,228,132,230,132,91,216,116,221,91,216,160,221,91,216,161,221,91,216,162,221,91,216,163,221,91,216,164,221,91,216,165,221,91,216,166,221,91,216,167,221,91,216,174,221,91,216,220,221,60,0,42,0,91,216,234,221,91,216,235,221,91,216,240,221,229,132,96,134,97,134,92,216,205,221,17,135,18,135,43,135,24,135,25,135,26,135,27,135,28,135,29,135,30,135,31,135,32,135,33,135,34,135,35,135,36,135,37,135,38,135,39,135,40,135,41,135,42,135,44,135,45,135,46,135,47,135,48,135,49,135,50,135,51,135,52,135,53,135,54,135,55,135,56,135,57,135,58,135,59,135,60,135,61,135,62,135,63,135,64,135,65,135,66,135,67,135,68,135,69,135,71,135,72,135,73,135,74,135,75,135,85,135,107,135,226,136,231,136,232,136,233,136,234,136,235,136,236,136,237,136,238,136,239,136,240,136,241,136,242,136,243,136,244,136,245,136,246,136,247,136,248,136,249,136,250,136,251,136,252,136,253,136,254,136,255,136,0,137,2,137,3,137,4,137,59,70,26,137,157,137,158,137,159,137,160,137,161,137,207,137,232,137,233,137,234,137,235,137,139,138,140,138,141,138,142,138,143,138,144,138,145,138,146,138,147,138,148,138,150,138,151,138,152,138,153,138,154,138,155,138,156,138,157,138,158,138,159,138,161,138,162,138,163,138,164,138,60,0,42,0,165,138,166,138,167,138,168,138,169,138,170,138,171,138,172,138,173,138,174,138,94,216,253,221,94,216,10,222,94,216,14,222,45,140,46,140,47,140,48,140,49,140,50,140,61,140,103,140,104,140,105,140,106,140,139,140,140,140,141,140,207,140,208,140,209,140,210,140,211,140,212,140,213,140,214,140,215,140,216,140,98,53,95,216,143,221,95,216,152,221,88,141,89,141,90,141,91,141,107,141,149,141,150,141,151,141,152,141,153,141,154,141,252,141,253,141,254,141,255,141,0,142,1,142,2,142,3,142,4,142,5,142,6,142,7,142,8,142,9,142,10,142,11,142,12,142,13,142,14,142,244,71,96,216,72,220,179,142,180,142,181,142,13,143,14,143,15,143,16,143,17,143,18,143,19,143,20,143,21,143,96,216,6,223,96,216,24,223,149,143,150,143,151,143,161,143,162,143,163,143,88,144,89,144,90,144,91,144,92,144,93,144,94,144,95,144,96,144,97,144,98,144,99,144,100,144,101,144,210,144,24,145,25,145,26,145,27,145,28,145,29,145,30,145,31,145,32,145,33,145,34,145,35,145,36,145,37,145,114,145,115,145,116,145,117,145,118,145,119,145,120,145,60,0,42,0,121,145,122,145,123,145,124,145,125,145,126,145,127,145,250,72,45,146,117,146,118,146,119,146,120,146,121,146,122,146,123,146,125,146,126,146,127,146,128,146,129,146,130,146,131,146,132,146,133,146,134,146,135,146,136,146,137,146,138,146,139,146,140,146,141,146,142,146,144,146,145,146,146,146,147,146,148,146,149,146,150,146,151,146,152,146,153,146,154,146,155,146,156,146,157,146,158,146,159,146,160,146,161,146,162,146,163,146,164,146,165,146,166,146,167,146,168,146,169,146,170,146,171,146,172,146,173,146,174,146,175,146,176,146,177,146,36,73,37,73,38,73,42,73,98,216,137,221,98,216,168,221,98,216,170,221,98,216,171,221,238,146,124,146,50,149,51,149,52,149,53,149,54,149,55,149,56,149,57,149,58,149,59,149,60,149,61,149,62,149,63,149,64,149,65,149,66,149,67,149,68,149,69,149,161,149,162,149,163,149,164,149,165,149,166,149,167,149,168,149,169,149,170,149,26,150,153,150,154,150,155,150,156,150,157,150,158,150,159,150,160,150,161,150,204,150,208,150,209,150,210,150,99,216,197,223,255,150,0,151,1,151,15,74,100,216,175,220,60,0,42,0,100,216,176,220,100,216,177,220,87,151,88,151,89,151,100,151,122,151,123,151,124,151,125,151,126,151,127,151,128,151,129,151,130,151,131,151,132,151,133,151,134,151,205,151,206,151,236,151,246,151,247,151,101,216,29,220,25,152,20,152,21,152,22,152,23,152,24,152,26,152,184,74,151,152,173,152,174,152,175,152,176,152,177,152,255,74,0,75,101,216,184,221,214,152,213,152,215,152,248,152,44,75,0,153,1,153,2,153,3,153,4,153,5,153,6,153,7,153,9,153,12,153,14,153,15,153,145,153,146,153,155,153,156,153,157,153,111,75,182,153,183,153,184,153,185,153,186,153,187,153,188,153,189,153,190,153,191,153,192,153,193,153,194,153,195,153,196,153,197,153,198,153,199,153,123,75,126,75,160,154,161,154,162,154,175,154,176,154,177,154,200,75,218,154,227,154,228,154,229,154,230,154,231,154,232,154,233,154,234,154,102,216,5,223,102,216,14,223,38,155,62,155,63,155,64,155,65,155,66,155,103,216,173,220,95,155,96,155,97,155,98,155,103,216,90,221,145,156,146,156,147,156,148,156,149,156,150,156,151,156,152,156,153,156,154,156,155,156,156,156,157,156,60,0,42,0,158,156,159,156,241,156,242,156,243,156,244,156,245,156,246,156,85,158,86,158,87,158,89,158,90,158,91,158,92,158,167,158,188,158,189,158,59,159,74,159,135,159,136,159,60,0,39,0,208,253,15,40,39,0,60,0,42,0,245,80,246,80,248,80,249,80,250,80,251,80,252,80,253,80,254,80,255,80,0,81,1,81,2,81,3,81,4,81,5,81,6,81,7,81,8,81,9,81,10,81,11,81,12,81,13,81,14,81,15,81,147,52,150,52,152,52,64,216,201,223,64,216,203,223,48,81,217,81,218,81,219,81,220,81,65,216,17,222,133,82,134,82,135,82,136,82,137,82,138,82,139,82,140,82,141,82,142,82,143,82,238,82,239,82,240,82,241,82,242,82,20,83,51,83,177,83,178,83,66,216,180,222,199,83,89,53,83,86,32,86,41,86,42,86,43,86,44,86,45,86,46,86,47,86,48,86,49,86,50,86,51,86,52,86,53,86,54,86,55,86,56,86,57,86,58,86,59,86,60,86,61,86,62,86,63,86,64,86,65,86,66,86,67,86,68,86,70,86,71,86,72,86,73,86,74,86,75,86,76,86,77,86,78,86,79,86,80,86,82,86,84,86,86,86,87,86,88,86,89,86,90,86,91,86,92,86,93,86,116,86,241,53,242,53,243,53,67,216,100,223,67,216,141,223,67,216,144,223,67,216,173,223,67,216,180,223,67,216,181,223,67,216,182,223,67,216,188,223,68,216,20,220,26,87,128,88,156,88,157,88,60,0,42,0,158,88,159,88,160,88,161,88,162,88,163,88,164,88,165,88,166,88,167,88,169,88,170,88,171,88,172,88,174,88,175,88,176,88,177,88,178,88,179,88,180,88,181,88,182,88,183,88,184,88,185,88,69,216,36,220,69,216,63,220,69,216,82,220,69,216,84,220,69,216,85,220,255,88,0,89,69,216,119,221,38,89,109,89,244,90,245,90,246,90,247,90,248,90,249,90,250,90,251,90,252,90,253,90,254,90,255,90,0,91,1,91,2,91,3,91,4,91,5,91,6,91,7,91,8,91,9,91,10,91,11,91,12,91,13,91,14,91,15,91,35,55,37,55,38,55,70,216,82,220,70,216,94,220,70,216,97,220,70,216,98,220,70,216,99,220,70,216,100,220,70,216,119,220,70,216,123,220,70,216,131,220,70,216,132,220,70,216,133,220,233,91,235,91,236,91,237,91,238,91,111,55,14,92,70,216,68,223,53,92,100,92,101,92,102,92,103,92,160,55,143,93,144,93,145,93,146,93,147,93,148,93,149,93,150,93,151,93,152,93,153,93,154,93,155,93,156,93,157,93,158,93,159,93,160,93,161,93,162,93,163,93,164,93,165,93,15,56,71,216,15,223,71,216,21,223,228,93,90,94,92,94,93,94,94,94,95,94,96,94,97,94,98,94,100,94,60,0,42,0,101,94,97,56,105,94,218,94,219,94,221,94,222,94,223,94,224,94,225,94,226,94,227,94,228,94,71,95,72,95,73,95,113,95,178,95,181,95,183,95,184,95,185,95,186,95,85,97,87,97,89,97,92,97,93,97,100,97,102,97,103,97,107,97,110,97,112,97,118,97,120,97,121,97,124,97,126,97,127,97,130,97,131,97,132,97,133,97,135,97,109,97,137,97,139,97,141,97,142,97,143,97,144,97,146,97,147,97,148,97,149,97,152,97,154,97,155,97,156,97,158,97,159,97,161,97,162,97,163,97,164,97,166,97,167,97,170,97,171,97,172,97,173,97,174,97,175,97,176,97,177,97,179,97,137,57,138,57,146,57,74,216,95,220,74,216,96,220,74,216,113,220,45,98,46,98,47,98,104,100,105,100,110,100,111,100,112,100,121,100,128,100,131,100,60,58,133,100,134,100,136,100,138,100,139,100,140,100,141,100,142,100,143,100,144,100,145,100,146,100,147,100,148,100,149,100,150,100,151,100,152,100,153,100,154,100,155,100,156,100,157,100,158,100,159,100,160,100,161,100,162,100,163,100,164,100,165,100,167,100,168,100,60,0,42,0,169,100,170,100,171,100,172,100,173,100,174,100,175,100,176,100,177,100,178,100,179,100,180,100,181,100,182,100,183,100,184,100,185,100,186,100,198,100,75,58,75,216,68,221,75,216,76,221,75,216,103,221,117,101,118,101,119,101,120,101,121,101,122,101,123,101,75,216,204,223,179,101,76,216,188,220,169,102,170,102,171,102,172,102,173,102,174,102,175,102,176,102,177,102,178,102,179,102,180,102,181,102,182,102,183,102,17,59,18,59,19,59,20,59,21,59,22,59,76,216,129,222,76,216,138,222,188,102,164,129,60,59,61,59,62,59,233,105,226,105,227,105,228,105,229,105,230,105,231,105,232,105,234,105,235,105,236,105,237,105,238,105,239,105,240,105,241,105,242,105,243,105,244,105,245,105,246,105,247,105,248,105,249,105,250,105,251,105,252,105,253,105,254,105,255,105,0,106,1,106,2,106,4,106,5,106,6,106,7,106,8,106,9,106,10,106,11,106,12,106,13,106,14,106,15,106,16,106,17,106,18,106,19,106,20,106,21,106,22,106,23,106,24,106,25,106,26,106,27,106,28,106,29,106,30,106,31,106,32,106,33,106,34,106,35,106,36,106,37,106,60,0,42,0,38,106,39,106,41,106,42,106,43,106,44,106,45,106,47,106,48,106,49,106,101,106,190,59,194,59,196,59,77,216,23,222,77,216,26,222,77,216,60,222,77,216,64,222,77,216,89,222,77,216,95,222,77,216,119,222,78,107,79,107,80,107,81,107,82,107,83,107,117,107,118,107,162,107,163,107,164,107,165,107,166,107,115,60,116,60,197,107,198,107,255,107,0,108,1,108,2,108,213,110,0,111,16,111,38,111,63,111,65,111,11,111,61,111,79,111,80,111,81,111,82,111,83,111,84,111,85,111,86,111,87,111,88,111,89,111,90,111,91,111,92,111,93,111,95,111,96,111,97,111,98,111,99,111,100,111,101,111,102,111,103,111,104,111,105,111,106,111,107,111,108,111,109,111,110,111,111,111,112,111,113,111,114,111,116,111,117,111,118,111,119,111,120,111,121,111,122,111,123,111,124,111,125,111,126,111,127,111,129,111,130,111,132,111,133,111,134,111,135,111,136,111,137,111,138,111,139,111,140,111,141,111,142,111,143,111,144,111,145,111,146,111,147,111,148,111,149,111,150,111,151,111,152,111,154,111,155,111,156,111,157,111,208,111,76,61,78,61,81,61,60,0,42,0,79,216,74,223,79,216,97,223,79,216,127,223,79,216,128,223,79,216,129,223,79,216,130,223,79,216,143,223,79,216,180,223,79,216,183,223,198,111,166,113,154,113,155,113,156,113,157,113,158,113,159,113,160,113,161,113,162,113,163,113,164,113,165,113,167,113,168,113,169,113,170,113,171,113,172,113,173,113,174,113,175,113,176,113,177,113,178,113,179,113,180,113,181,113,217,158,166,159,235,61,80,216,98,223,80,216,99,223,80,216,100,223,80,216,101,223,80,216,140,223,80,216,150,223,80,216,156,223,85,86,52,114,69,114,85,114,86,114,87,114,152,114,153,114,154,114,155,114,81,216,212,222,78,115,75,115,86,115,87,115,88,115,89,115,90,115,91,115,92,115,93,115,94,115,95,115,96,115,97,115,98,115,100,115,82,216,130,220,105,116,108,116,121,116,122,116,123,116,124,116,125,116,126,116,128,116,129,116,130,116,131,116,132,116,133,116,134,116,135,116,136,116,137,116,138,116,139,116,140,116,142,116,147,116,235,62,236,62,240,62,243,62,244,62,82,216,21,222,82,216,33,222,82,216,34,222,82,216,35,222,82,216,36,222,82,216,37,222,82,216,38,222,82,216,39,222,82,216,40,222,82,216,41,222,82,216,42,222,82,216,62,222,7,117,8,117,9,117,83,63,82,216,245,223,126,117,127,117,31,118,25,118,26,118,27,118,28,118,60,0,42,0,29,118,30,118,32,118,33,118,34,118,35,118,36,118,37,118,38,118,40,118,41,118,42,118,43,118,183,63,192,63,83,216,59,222,83,216,80,222,154,118,155,118,156,118,157,118,158,118,229,63,83,216,151,223,83,216,154,223,186,118,228,118,135,119,136,119,137,119,138,119,139,119,140,119,141,119,142,119,143,119,144,119,145,119,146,119,147,119,87,64,84,216,80,222,186,120,187,120,188,120,189,120,190,120,191,120,192,120,194,120,195,120,196,120,197,120,198,120,199,120,200,120,201,120,202,120,203,120,204,120,205,120,206,120,207,120,208,120,209,120,210,120,211,120,212,120,213,120,215,120,216,120,217,120,228,120,85,216,49,221,85,216,53,221,85,216,63,221,154,121,155,121,156,121,157,121,158,121,159,121,160,121,161,121,162,121,163,121,85,216,227,222,52,122,54,122,55,122,56,122,57,122,58,122,59,122,60,122,61,122,62,122,63,122,64,122,65,122,66,122,67,122,108,65,110,65,117,65,86,216,87,220,174,122,175,122,176,122,177,122,178,122,179,122,180,122,172,123,173,123,174,123,175,123,176,123,177,123,178,123,179,123,180,123,181,123,182,123,183,123,185,123,186,123,187,123,60,0,42,0,188,123,189,123,190,123,191,123,193,123,194,123,195,123,196,123,197,123,198,123,199,123,200,123,202,123,203,123,204,123,205,123,206,123,207,123,208,123,209,123,210,123,211,123,14,66,15,66,16,66,17,66,18,66,19,66,20,66,21,66,26,66,28,66,32,66,34,66,35,66,38,66,41,66,86,216,228,223,86,216,232,223,87,216,1,220,87,216,6,220,194,124,195,124,196,124,197,124,198,124,199,124,200,124,201,124,202,124,203,124,204,124,205,124,206,124,148,66,87,216,215,222,87,216,216,222,211,125,214,125,215,125,216,125,217,125,218,125,219,125,220,125,221,125,222,125,223,125,224,125,225,125,226,125,227,125,228,125,229,125,230,125,231,125,232,125,233,125,234,125,235,125,236,125,237,125,238,125,239,125,240,125,241,125,242,125,243,125,244,125,245,125,246,125,247,125,248,125,249,125,250,125,251,125,252,125,253,125,254,125,255,125,0,126,1,126,2,126,3,126,4,126,5,126,6,126,7,126,244,66,251,66,252,66,0,67,1,67,4,67,88,216,131,220,88,216,151,220,88,216,164,220,88,216,165,220,62,67,44,127,45,127,46,127,47,127,117,127,118,127,119,127,120,127,172,127,60,0,42,0,173,127,174,127,175,127,176,127,230,127,231,127,232,127,233,127,234,127,235,127,236,127,237,127,89,216,105,220,38,128,39,128,172,67,100,128,101,128,102,128,103,128,104,128,105,128,106,128,107,128,89,216,173,221,146,129,147,129,148,129,149,129,150,129,151,129,152,129,153,129,154,129,155,129,156,129,157,129,158,129,159,129,160,129,161,129,162,129,163,129,45,68,51,68,52,68,241,129,22,130,23,130,78,130,79,130,80,130,81,130,82,130,83,130,84,130,122,68,138,132,244,68,224,132,231,132,232,132,233,132,234,132,235,132,236,132,237,132,238,132,239,132,240,132,242,132,243,132,244,132,245,132,246,132,247,132,248,132,249,132,250,132,251,132,252,132,253,132,254,132,255,132,0,133,1,133,2,133,3,133,4,133,5,133,6,133,8,133,9,133,10,133,11,133,12,133,13,133,14,133,15,133,16,133,17,133,18,133,19,133,20,133,21,133,22,133,23,133,24,133,25,133,26,133,27,133,28,133,29,133,30,133,31,133,32,133,33,133,34,133,35,133,36,133,37,133,38,133,39,133,40,133,41,133,42,133,43,133,44,133,60,0,42,0,45,133,46,133,47,133,48,133,49,133,50,133,51,133,52,133,53,133,54,133,55,133,56,133,57,133,58,133,59,133,60,133,91,216,0,222,91,216,5,222,91,216,7,222,91,216,18,222,91,216,66,222,91,216,67,222,91,216,68,222,91,216,69,222,91,216,110,222,91,216,114,222,91,216,119,222,91,216,132,222,61,133,79,133,98,134,76,135,78,135,79,135,80,135,81,135,82,135,83,135,84,135,86,135,87,135,88,135,89,135,90,135,91,135,92,135,93,135,94,135,95,135,96,135,97,135,98,135,99,135,100,135,101,135,102,135,103,135,104,135,105,135,106,135,108,135,109,135,110,135,111,135,112,135,113,135,114,135,115,135,116,135,117,135,118,135,119,135,120,135,122,135,123,135,124,135,125,135,126,135,127,135,128,135,225,135,92,216,82,223,92,216,154,223,130,135,90,136,91,136,92,136,93,136,93,216,253,221,230,136,5,137,6,137,7,137,8,137,9,137,10,137,11,137,12,137,13,137,14,137,15,137,16,137,17,137,18,137,19,137,20,137,21,137,22,137,23,137,24,137,25,137,27,137,28,137,29,137,69,70,70,70,93,216,15,223,162,137,163,137,164,137,165,137,94,216,88,220,169,137,208,137,209,137,236,137,237,137,238,137,60,0,42,0,239,137,240,137,149,138,175,138,176,138,177,138,178,138,179,138,180,138,181,138,182,138,183,138,184,138,185,138,186,138,187,138,188,138,189,138,190,138,191,138,192,138,193,138,194,138,195,138,196,138,197,138,198,138,199,138,200,138,201,138,202,138,203,138,204,138,205,138,206,138,207,138,208,138,209,138,210,138,211,138,212,138,213,138,214,138,215,138,216,138,217,138,218,138,233,138,245,70,247,70,94,216,62,222,94,216,83,222,94,216,89,222,219,138,248,138,51,140,52,140,53,140,62,140,76,140,77,140,78,140,94,216,239,223,94,216,244,223,108,140,142,140,143,140,217,140,218,140,219,140,220,140,221,140,222,140,223,140,224,140,225,140,226,140,227,140,228,140,229,140,230,140,231,140,232,140,233,140,234,140,235,140,236,140,124,71,237,140,92,141,109,141,155,141,156,141,157,141,158,141,159,141,160,141,161,141,162,141,163,141,164,141,15,142,16,142,17,142,18,142,19,142,20,142,21,142,22,142,23,142,24,142,25,142,26,142,27,142,28,142,29,142,30,142,31,142,32,142,33,142,34,142,35,142,36,142,37,142,38,142,39,142,40,142,41,142,60,0,42,0,42,142,44,142,45,142,46,142,47,142,58,142,0,72,1,72,11,72,96,216,131,220,96,216,144,220,43,142,55,142,182,142,183,142,184,142,185,142,186,142,187,142,188,142,96,216,86,222,22,143,23,143,24,143,25,143,26,143,27,143,28,143,29,143,30,143,31,143,32,143,33,143,34,143,35,143,36,143,37,143,38,143,39,143,40,143,41,143,42,143,43,143,44,143,93,72,96,216,47,223,96,216,58,223,152,143,164,143,179,143,102,144,103,144,104,144,105,144,106,144,107,144,108,144,109,144,110,144,111,144,112,144,113,144,115,144,119,144,246,144,38,145,39,145,41,145,42,145,43,145,45,145,46,145,47,145,48,145,49,145,50,145,221,72,128,145,129,145,130,145,131,145,132,145,133,145,134,145,135,145,136,145,137,145,138,145,139,145,140,145,178,146,179,146,180,146,181,146,182,146,183,146,184,146,185,146,186,146,187,146,188,146,189,146,190,146,191,146,192,146,193,146,194,146,195,146,196,146,197,146,198,146,199,146,200,146,201,146,202,146,204,146,205,146,206,146,207,146,208,146,209,146,210,146,211,146,212,146,213,146,214,146,215,146,216,146,60,0,42,0,217,146,218,146,219,146,220,146,221,146,222,146,223,146,224,146,225,146,226,146,227,146,228,146,229,146,230,146,231,146,232,146,233,146,234,146,235,146,236,146,237,146,239,146,240,146,241,146,242,146,243,146,244,146,245,146,246,146,39,250,45,73,47,73,48,73,98,216,184,221,98,216,188,221,98,216,192,221,98,216,220,221,98,216,222,221,98,216,225,221,98,216,227,221,98,216,228,221,70,149,71,149,72,149,73,149,74,149,75,149,76,149,77,149,78,149,79,149,80,149,81,149,82,149,83,149,84,149,85,149,124,149,171,149,172,149,173,149,174,149,175,149,176,149,177,149,178,149,179,149,180,149,99,216,52,221,162,150,163,150,164,150,165,150,229,73,211,150,2,151,3,151,4,151,5,151,6,151,7,151,8,151,9,151,10,151,100,216,192,220,90,151,96,151,101,151,135,151,136,151,137,151,138,151,139,151,140,151,141,151,142,151,143,151,144,151,145,151,146,151,207,151,208,151,209,151,239,151,101,216,32,220,27,152,28,152,29,152,30,152,31,152,32,152,33,152,34,152,35,152,38,152,39,152,40,152,41,152,42,152,43,152,44,152,152,152,153,152,154,152,155,152,156,152,157,152,178,152,60,0,42,0,179,152,216,152,250,152,8,153,10,153,11,153,13,153,55,75,17,153,18,153,19,153,20,153,21,153,22,153,23,153,24,153,25,153,147,153,148,153,200,153,201,153,202,153,203,153,204,153,205,153,206,153,207,153,208,153,209,153,210,153,211,153,212,153,213,153,214,153,215,153,216,153,217,153,218,153,219,153,220,153,221,153,222,153,223,153,224,153,102,216,164,220,163,154,178,154,179,154,180,154,181,154,182,154,183,154,219,154,235,154,236,154,238,154,239,154,240,154,241,154,242,154,243,154,244,154,39,155,67,155,68,155,69,155,70,155,32,76,99,155,100,155,101,155,102,155,103,155,104,155,105,155,106,155,107,155,108,155,109,155,110,155,111,155,112,155,113,155,114,155,115,155,116,155,117,155,118,155,119,155,120,155,121,155,59,76,62,76,103,216,124,221,160,156,161,156,162,156,163,156,164,156,165,156,166,156,167,156,168,156,169,156,170,156,171,156,172,156,247,156,248,156,249,156,250,156,251,156,252,156,253,156,254,156,255,156,0,157,1,157,2,157,3,157,4,157,5,157,6,157,7,157,8,157,9,157,11,157,12,157,60,0,42,0,13,157,14,157,174,76,176,76,183,76,103,216,183,223,88,158,93,158,94,158,95,158,96,158,97,158,98,158,99,158,100,158,118,158,131,158,132,158,104,216,147,222,168,158,169,158,170,158,171,158,185,158,190,158,206,158,168,88,211,158,15,159,16,159,17,159,81,159,82,159,137,159,138,159,60,0,39,0,208,253,16,40,39,0,60,0,42,0,184,78,16,81,17,81,18,81,19,81,20,81,21,81,22,81,23,81,24,81,25,81,26,81,27,81,28,81,29,81,30,81,43,81,64,216,245,223,64,216,252,223,99,81,65,216,252,220,128,81,170,81,221,81,222,81,65,216,21,222,144,82,145,82,146,82,147,82,148,82,243,82,52,83,225,83,94,86,95,86,96,86,97,86,98,86,99,86,100,86,101,86,102,86,103,86,104,86,105,86,106,86,107,86,108,86,109,86,110,86,111,86,112,86,113,86,114,86,115,86,117,86,118,86,119,86,120,86,121,86,122,86,123,86,124,86,251,53,254,53,0,54,1,54,2,54,3,54,4,54,67,216,223,223,67,216,234,223,67,216,235,223,67,216,236,223,67,216,237,223,68,216,29,220,68,216,30,220,27,87,28,87,186,88,187,88,188,88,189,88,190,88,191,88,192,88,193,88,194,88,195,88,196,88,197,88,198,88,199,88,200,88,201,88,202,88,203,88,204,88,179,159,1,89,110,89,111,89,16,91,17,91,18,91,19,91,20,91,21,91,22,91,23,91,24,91,25,91,26,91,27,91,28,91,29,91,30,91,31,91,32,91,33,91,34,91,52,91,43,55,44,55,45,55,70,216,158,220,70,216,159,220,60,0,42,0,70,216,160,220,70,216,161,220,70,216,162,220,70,216,190,220,70,216,191,220,40,91,120,91,121,91,239,91,240,91,166,93,167,93,168,93,169,93,170,93,171,93,172,93,173,93,174,93,175,93,176,93,177,93,178,93,179,93,180,93,181,93,182,93,102,94,103,94,104,94,98,56,99,56,100,56,72,216,91,221,111,94,229,94,230,94,231,94,232,94,233,94,234,94,74,95,75,95,91,95,92,95,73,216,113,220,73,216,176,220,187,95,188,95,138,97,140,97,145,97,150,97,151,97,153,97,157,97,160,97,165,97,168,97,169,97,178,97,180,97,182,97,183,97,184,97,185,97,186,97,189,97,190,97,191,97,192,97,193,97,196,97,197,97,198,97,200,97,202,97,204,97,205,97,206,97,207,97,208,97,210,97,211,97,212,97,153,57,74,216,173,220,74,216,193,220,187,97,49,98,48,98,137,100,187,100,188,100,189,100,190,100,191,100,192,100,193,100,194,100,195,100,196,100,197,100,199,100,200,100,201,100,203,100,204,100,205,100,207,100,208,100,209,100,210,100,211,100,212,100,213,100,214,100,215,100,217,100,218,100,219,100,220,100,221,100,222,100,82,58,84,58,87,58,75,216,141,221,60,0,42,0,75,216,149,221,75,216,160,221,75,216,163,221,75,216,164,221,75,216,183,221,243,100,51,101,116,101,124,101,125,101,126,101,127,101,75,216,227,223,147,101,162,101,180,101,216,101,217,101,184,102,185,102,186,102,187,102,189,102,190,102,191,102,192,102,193,102,194,102,195,102,196,102,197,102,198,102,199,102,200,102,201,102,202,102,203,102,204,102,205,102,167,159,23,59,24,59,25,59,26,59,27,59,28,59,29,59,30,59,31,59,76,216,137,222,76,216,171,222,76,216,172,222,76,216,173,222,207,102,6,103,49,59,35,103,36,103,63,59,40,106,116,106,50,106,51,106,52,106,53,106,54,106,55,106,56,106,57,106,58,106,59,106,60,106,61,106,62,106,63,106,64,106,65,106,66,106,67,106,68,106,69,106,70,106,71,106,72,106,73,106,74,106,75,106,76,106,77,106,78,106,79,106,80,106,81,106,82,106,83,106,84,106,85,106,86,106,87,106,88,106,89,106,90,106,91,106,92,106,93,106,94,106,95,106,96,106,97,106,98,106,99,106,100,106,102,106,103,106,104,106,105,106,106,106,107,106,108,106,109,106,110,106,111,106,112,106,113,106,114,106,115,106,117,106,118,106,60,0,42,0,119,106,120,106,121,106,122,106,123,106,124,106,215,59,221,59,77,216,142,222,77,216,158,222,77,216,166,222,77,216,173,222,77,216,186,222,77,216,223,222,77,216,238,222,84,107,85,107,86,107,87,107,88,107,89,107,90,107,119,107,167,107,168,107,169,107,170,107,171,107,199,107,200,107,3,108,4,108,5,108,6,108,7,108,94,111,131,111,153,111,158,111,159,111,160,111,161,111,162,111,163,111,164,111,165,111,166,111,167,111,168,111,170,111,171,111,172,111,173,111,174,111,175,111,176,111,177,111,178,111,179,111,180,111,181,111,182,111,183,111,184,111,185,111,186,111,187,111,188,111,189,111,190,111,191,111,192,111,193,111,194,111,195,111,196,111,197,111,199,111,200,111,201,111,202,111,203,111,205,111,206,111,207,111,209,111,210,111,211,111,214,111,95,61,98,61,101,61,105,61,106,61,79,216,197,223,79,216,235,223,79,216,236,223,79,216,237,223,79,216,238,223,79,216,239,223,79,216,240,223,80,216,17,220,4,112,182,113,183,113,184,113,185,113,186,113,187,113,188,113,189,113,190,113,191,113,192,113,193,113,194,113,195,113,196,113,197,113,198,113,199,113,200,113,201,113,202,113,203,113,204,113,205,113,206,113,60,0,42,0,207,113,208,113,209,113,210,113,211,113,212,113,213,113,214,113,215,113,216,113,217,113,218,113,219,113,220,113,221,113,222,113,243,61,244,61,247,61,252,61,253,61,80,216,189,223,80,216,193,223,80,216,233,223,80,216,234,223,80,216,242,223,156,114,157,114,158,114,159,114,99,115,101,115,102,115,103,115,104,115,105,115,106,115,107,115,108,115,109,115,127,116,141,116,143,116,145,116,146,116,148,116,149,116,150,116,152,116,153,116,154,116,155,116,156,116,157,116,158,116,159,116,160,116,161,116,163,116,164,116,252,62,82,216,66,222,82,216,69,222,82,216,74,222,82,216,78,222,82,216,79,222,82,216,80,222,82,216,81,222,82,216,93,222,82,216,101,222,82,216,102,222,82,216,103,222,162,116,226,116,82,216,15,223,10,117,11,117,12,117,13,117,14,117,128,117,129,117,130,117,83,216,201,220,44,118,45,118,46,118,47,118,48,118,49,118,50,118,51,118,52,118,53,118,54,118,55,118,56,118,57,118,58,118,59,118,60,118,61,118,62,118,63,118,74,118,200,63,159,118,160,118,161,118,187,118,229,118,230,118,231,118,84,216,157,220,148,119,149,119,150,119,151,119,152,119,153,119,154,119,155,119,156,119,157,119,158,119,159,119,160,119,161,119,60,0,42,0,162,119,163,119,98,64,101,64,106,64,84,216,153,222,165,119,214,120,220,120,218,120,219,120,221,120,222,120,223,120,224,120,225,120,226,120,227,120,229,120,230,120,231,120,232,120,233,120,234,120,235,120,236,120,237,120,238,120,216,64,85,216,91,221,85,216,92,221,85,216,93,221,85,216,94,221,85,216,98,221,85,216,101,221,85,216,102,221,164,121,165,121,166,121,169,121,85,216,246,222,68,122,69,122,70,122,71,122,72,122,75,122,76,122,77,122,78,122,79,122,80,122,81,122,82,122,124,65,86,216,93,220,86,216,114,220,83,122,181,122,182,122,183,122,184,122,185,122,186,122,187,122,188,122,189,122,178,65,241,122,86,216,174,222,201,123,212,123,213,123,214,123,215,123,216,123,217,123,218,123,219,123,220,123,221,123,222,123,223,123,224,123,225,123,226,123,227,123,228,123,229,123,230,123,231,123,232,123,233,123,234,123,235,123,236,123,237,123,238,123,239,123,17,124,42,66,43,66,45,66,46,66,48,66,49,66,50,66,87,216,33,220,87,216,74,220,87,216,101,220,249,123,207,124,208,124,209,124,210,124,211,124,212,124,213,124,214,124,215,124,216,124,0,74,8,126,9,126,10,126,11,126,12,126,13,126,60,0,42,0,14,126,15,126,16,126,17,126,18,126,19,126,20,126,21,126,22,126,23,126,24,126,25,126,26,126,27,126,28,126,29,126,30,126,31,126,32,126,33,126,34,126,35,126,36,126,37,126,38,126,39,126,40,126,10,67,48,127,49,127,50,127,51,127,52,127,67,127,121,127,122,127,123,127,124,127,177,127,178,127,238,127,239,127,240,127,241,127,40,128,41,128,42,128,89,216,18,221,108,128,109,128,193,67,89,216,191,221,110,128,144,129,37,103,166,129,167,129,168,129,169,129,170,129,171,129,172,129,173,129,174,129,175,129,176,129,177,129,178,129,179,129,180,129,181,129,182,129,59,68,90,216,28,220,90,216,110,220,183,129,185,129,242,129,251,129,8,130,6,130,9,130,24,130,85,130,86,130,87,130,88,130,89,130,222,132,0,69,3,69,4,69,9,69,11,69,62,133,63,133,64,133,65,133,66,133,67,133,68,133,69,133,70,133,71,133,72,133,73,133,74,133,75,133,76,133,77,133,78,133,80,133,81,133,82,133,83,133,84,133,85,133,86,133,88,133,89,133,90,133,91,133,92,133,93,133,94,133,95,133,96,133,97,133,60,0,42,0,98,133,99,133,100,133,101,133,102,133,103,133,104,133,105,133,106,133,107,133,108,133,109,133,110,133,111,133,112,133,113,133,114,133,115,133,116,133,117,133,91,216,136,222,91,216,139,222,91,216,153,222,91,216,208,222,91,216,209,222,91,216,210,222,91,216,211,222,91,216,212,222,91,216,213,222,91,216,214,222,91,216,215,222,91,216,38,223,140,133,31,250,99,134,100,134,101,134,102,134,121,135,129,135,131,135,132,135,133,135,134,135,135,135,136,135,137,135,138,135,139,135,140,135,141,135,142,135,143,135,144,135,145,135,146,135,147,135,148,135,149,135,150,135,151,135,152,135,153,135,154,135,155,135,156,135,157,135,158,135,159,135,160,135,161,135,162,135,163,135,164,135,165,135,166,135,167,135,168,135,169,135,218,69,221,69,94,136,95,136,96,136,97,136,23,70,93,216,254,221,30,137,31,137,32,137,33,137,34,137,35,137,36,137,37,137,38,137,39,137,40,137,41,137,42,137,43,137,44,137,45,137,46,137,47,137,48,137,49,137,50,137,52,137,79,70,93,216,53,223,93,216,54,223,93,216,65,223,166,137,167,137,168,137,170,137,94,216,112,220,241,137,161,70,220,138,221,138,222,138,223,138,224,138,225,138,226,138,227,138,60,0,42,0,228,138,229,138,230,138,231,138,232,138,234,138,235,138,236,138,237,138,238,138,239,138,240,138,241,138,242,138,243,138,244,138,245,138,246,138,247,138,249,138,250,138,251,138,252,138,253,138,254,138,255,138,0,139,1,139,2,139,3,139,94,216,121,222,94,216,132,222,20,139,107,140,109,140,110,140,78,71,95,216,108,220,144,140,145,140,146,140,147,140,238,140,239,140,240,140,241,140,242,140,243,140,244,140,245,140,95,216,189,221,93,141,94,141,95,141,96,141,108,141,110,141,165,141,166,141,167,141,95,216,46,223,48,142,49,142,50,142,51,142,52,142,53,142,54,142,56,142,57,142,59,142,60,142,61,142,62,142,63,142,64,142,65,142,66,142,67,142,68,142,69,142,96,216,189,220,96,216,190,220,189,142,190,142,45,143,46,143,47,143,48,143,49,143,50,143,51,143,52,143,53,143,54,143,55,143,56,143,57,143,58,143,59,143,60,143,96,216,101,223,153,143,154,143,165,143,166,143,167,143,168,143,169,143,170,143,114,144,116,144,117,144,118,144,120,144,121,144,122,144,123,144,124,144,134,144,173,72,97,216,232,221,97,216,244,221,97,216,0,222,250,144,51,145,52,145,53,145,60,0,42,0,54,145,55,145,141,145,142,145,143,145,144,145,145,145,146,145,147,145,148,145,149,145,150,145,151,145,0,73,6,73,203,146,247,146,248,146,249,146,250,146,251,146,252,146,253,146,254,146,255,146,0,147,1,147,2,147,3,147,4,147,5,147,6,147,7,147,8,147,9,147,10,147,11,147,12,147,13,147,14,147,15,147,16,147,17,147,18,147,19,147,20,147,21,147,22,147,23,147,24,147,25,147,26,147,27,147,28,147,29,147,30,147,31,147,32,147,33,147,34,147,35,147,36,147,37,147,38,147,39,147,41,147,42,147,43,147,44,147,45,147,46,147,47,147,48,147,49,147,50,147,51,147,52,147,53,147,54,147,55,147,56,147,57,147,58,147,59,147,60,147,61,147,62,147,63,147,64,147,65,147,66,147,67,147,68,147,69,147,70,147,72,147,172,159,40,250,53,73,98,216,231,221,98,216,232,221,98,216,249,221,98,216,250,221,98,216,251,221,98,216,252,221,98,216,15,222,98,216,22,222,98,216,37,222,98,216,41,222,122,147,86,149,87,149,88,149,89,149,90,149,91,149,92,149,93,149,94,149,95,149,96,149,181,149,182,149,184,149,185,149,186,149,187,149,188,149,60,0,42,0,189,149,190,149,191,149,193,149,194,149,161,73,167,73,205,149,27,150,166,150,167,150,168,150,169,150,170,150,171,150,231,73,183,150,212,150,213,150,11,151,12,151,13,151,14,151,15,151,16,151,17,151,18,151,19,151,20,151,21,151,22,151,23,151,29,74,100,216,228,220,100,216,229,220,100,216,236,220,100,216,237,220,91,151,92,151,102,151,147,151,148,151,149,151,150,151,151,151,152,151,153,151,210,151,240,151,248,151,36,152,37,152,45,152,46,152,47,152,48,152,49,152,50,152,51,152,52,152,53,152,54,152,55,152,56,152,57,152,58,152,59,152,60,152,61,152,101,216,208,220,101,216,217,220,101,216,218,220,158,152,159,152,160,152,161,152,180,152,181,152,101,216,215,221,217,152,218,152,16,153,29,153,26,153,27,153,28,153,30,153,31,153,32,153,33,153,34,153,35,153,36,153,38,153,39,153,40,153,41,153,101,216,32,223,52,153,158,153,159,153,160,153,225,153,226,153,227,153,228,153,229,153,230,153,231,153,232,153,233,153,234,153,235,153,236,153,237,153,238,153,239,153,240,153,241,153,242,153,102,216,209,220,184,154,185,154,186,154,187,154,188,154,102,216,77,222,191,154,60,0,42,0,237,154,245,154,246,154,247,154,248,154,249,154,250,154,251,154,7,155,40,155,51,155,71,155,122,155,123,155,124,155,125,155,126,155,127,155,128,155,129,155,130,155,131,155,132,155,133,155,135,155,136,155,137,155,138,155,139,155,140,155,141,155,142,155,143,155,144,155,145,155,146,155,147,155,148,155,149,155,150,155,151,155,152,155,163,155,64,76,71,76,73,76,103,216,152,221,103,216,155,221,173,156,174,156,175,156,176,156,177,156,178,156,179,156,180,156,181,156,182,156,183,156,184,156,185,156,186,156,187,156,10,157,15,157,16,157,17,157,18,157,19,157,20,157,21,157,22,157,23,157,24,157,25,157,26,157,27,157,29,157,30,157,31,157,32,157,33,157,34,157,35,157,36,157,37,157,38,157,39,157,40,157,41,157,42,157,43,157,44,157,103,216,222,223,101,158,102,158,103,158,104,158,119,158,126,158,133,158,134,158,135,158,136,158,104,216,159,222,172,158,173,158,174,158,52,77,186,158,197,158,198,158,212,158,213,158,214,158,215,158,216,158,250,158,18,159,60,159,61,159,83,159,141,159,156,159,60,0,39,0,208,253,17,40,39,0,60,0,42,0,31,81,32,81,33,81,34,81,35,81,36,81,37,81,38,81,39,81,40,81,41,81,42,81,44,81,65,216,19,220,65,216,20,220,65,216,31,220,50,81,223,81,65,216,25,222,65,216,26,222,149,82,244,82,245,82,246,82,37,53,38,53,53,83,179,83,83,53,66,216,143,223,125,86,126,86,127,86,128,86,129,86,130,86,131,86,132,86,133,86,134,86,135,86,136,86,137,86,138,86,139,86,140,86,141,86,142,86,143,86,144,86,145,86,146,86,147,86,68,216,79,220,68,216,92,220,68,216,111,220,68,216,117,220,68,216,118,220,68,216,119,220,68,216,120,220,68,216,123,220,68,216,136,220,205,88,206,88,207,88,208,88,209,88,210,88,211,88,212,88,213,88,214,88,215,88,122,54,69,216,138,220,69,216,151,220,69,216,146,222,35,91,36,91,37,91,38,91,39,91,41,91,42,91,43,91,44,91,45,91,46,91,47,91,48,91,49,91,50,91,51,91,53,91,54,91,55,91,70,216,209,220,70,216,214,220,70,216,215,220,70,216,216,220,70,216,217,220,122,91,123,91,241,91,242,91,54,92,55,92,104,92,183,93,184,93,185,93,186,93,188,93,189,93,190,93,191,93,25,56,71,216,106,223,187,93,106,94,107,94,108,94,101,56,102,56,76,95,189,95,190,95,73,216,141,221,60,0,42,0,181,97,188,97,194,97,195,97,199,97,201,97,203,97,209,97,215,97,217,97,218,97,219,97,220,97,221,97,222,97,224,97,225,97,226,97,228,97,229,97,230,97,231,97,232,97,74,216,247,220,50,98,52,98,202,100,206,100,216,100,223,100,224,100,225,100,226,100,227,100,228,100,230,100,232,100,233,100,235,100,236,100,237,100,238,100,239,100,240,100,241,100,92,58,94,58,75,216,238,221,128,101,129,101,130,101,131,101,163,101,181,101,182,101,218,101,206,102,208,102,209,102,210,102,211,102,212,102,213,102,214,102,215,102,218,102,32,59,33,59,34,59,76,216,210,222,217,102,50,59,64,59,125,106,126,106,127,106,128,106,129,106,130,106,131,106,132,106,133,106,134,106,135,106,136,106,137,106,138,106,139,106,140,106,141,106,142,106,143,106,144,106,145,106,146,106,147,106,148,106,149,106,150,106,151,106,152,106,153,106,154,106,155,106,156,106,157,106,158,106,159,106,160,106,161,106,162,106,163,106,164,106,165,106,166,106,167,106,168,106,169,106,170,106,236,59,242,59,243,59,244,59,77,216,3,223,77,216,22,223,77,216,32,223,77,216,45,223,77,216,47,223,60,0,42,0,77,216,63,223,219,106,91,107,92,107,93,107,70,60,172,107,173,107,174,107,218,107,8,108,9,108,10,108,169,111,204,111,128,111,212,111,213,111,215,111,216,111,217,111,218,111,219,111,220,111,221,111,222,111,223,111,224,111,225,111,226,111,227,111,228,111,229,111,230,111,231,111,232,111,233,111,234,111,235,111,236,111,237,111,238,111,239,111,240,111,241,111,242,111,244,111,245,111,246,111,248,111,111,61,115,61,117,61,79,216,192,223,80,216,57,220,80,216,58,220,80,216,59,220,80,216,60,220,80,216,61,220,80,216,87,220,223,113,224,113,225,113,226,113,227,113,228,113,229,113,230,113,231,113,232,113,233,113,234,113,235,113,236,113,237,113,238,113,239,113,240,113,241,113,242,113,243,113,244,113,245,113,246,113,247,113,0,62,1,62,2,62,80,216,248,223,81,216,4,220,53,114,70,114,160,114,85,62,110,115,111,115,112,115,113,115,114,115,115,115,116,115,144,116,151,116,250,62,165,116,166,116,168,116,169,116,170,116,171,116,172,116,173,116,174,116,175,116,176,116,177,116,178,116,179,116,180,116,255,62,0,63,1,63,82,216,113,222,82,216,119,222,82,216,120,222,82,216,121,222,82,216,122,222,15,117,60,0,42,0,16,117,17,117,18,117,63,63,131,117,132,117,83,216,217,220,64,118,65,118,66,118,67,118,68,118,69,118,70,118,71,118,72,118,73,118,75,118,76,118,77,118,78,118,83,216,165,222,83,216,167,222,162,118,163,118,164,118,165,118,188,118,232,118,233,118,234,118,9,64,164,119,166,119,167,119,168,119,169,119,170,119,171,119,172,119,173,119,174,119,175,119,176,119,177,119,178,119,179,119,180,119,181,119,182,119,183,119,111,64,113,64,84,216,199,222,239,119,240,119,239,120,240,120,241,120,242,120,243,120,244,120,245,120,246,120,247,120,248,120,249,120,250,120,251,120,252,120,253,120,254,120,255,120,0,121,1,121,2,121,3,121,4,121,5,121,223,64,85,216,129,221,85,216,132,221,85,216,143,221,167,121,168,121,170,121,171,121,85,216,6,223,73,122,84,122,85,122,86,122,87,122,88,122,89,122,90,122,91,122,92,122,93,122,94,122,127,65,190,122,191,122,192,122,193,122,194,122,185,65,242,122,243,122,244,122,86,216,175,222,21,124,240,123,241,123,242,123,243,123,244,123,245,123,246,123,247,123,248,123,250,123,251,123,252,123,253,123,254,123,255,123,0,124,60,0,42,0,1,124,2,124,3,124,4,124,5,124,6,124,7,124,8,124,9,124,10,124,11,124,12,124,13,124,14,124,15,124,16,124,18,124,19,124,20,124,22,124,23,124,59,66,64,66,65,66,66,66,67,66,68,66,69,66,87,216,145,220,87,216,164,220,87,216,192,220,24,124,217,124,218,124,219,124,220,124,221,124,222,124,223,124,224,124,225,124,226,124,232,124,162,66,41,126,42,126,43,126,44,126,45,126,46,126,47,126,48,126,49,126,50,126,51,126,52,126,53,126,54,126,55,126,56,126,57,126,58,126,59,126,60,126,61,126,62,126,63,126,64,126,65,126,66,126,67,126,68,126,69,126,70,126,71,126,73,126,74,126,76,126,77,126,88,216,2,221,88,216,33,221,72,126,68,127,69,127,70,127,125,127,126,127,127,127,129,127,88,216,190,223,242,127,243,127,244,127,245,127,246,127,252,127,89,216,132,220,89,216,136,220,89,216,137,220,43,128,44,128,111,128,112,128,113,128,114,128,115,128,116,128,89,216,38,222,165,129,184,129,186,129,187,129,188,129,189,129,190,129,191,129,192,129,193,129,194,129,195,129,196,129,197,129,198,129,199,129,200,129,201,129,202,129,204,129,60,0,42,0,90,216,70,220,90,216,94,220,232,129,233,129,90,216,242,221,90,130,91,130,92,130,93,130,113,130,22,69,27,69,29,69,32,69,38,69,39,69,87,133,118,133,119,133,120,133,121,133,122,133,123,133,124,133,125,133,126,133,127,133,128,133,129,133,130,133,131,133,132,133,133,133,134,133,135,133,136,133,137,133,138,133,139,133,141,133,142,133,143,133,144,133,145,133,146,133,147,133,148,133,149,133,150,133,151,133,152,133,153,133,154,133,155,133,156,133,157,133,158,133,159,133,160,133,161,133,162,133,163,133,164,133,165,133,166,133,167,133,168,133,170,133,171,133,172,133,174,133,169,159,91,216,115,223,91,216,116,223,91,216,159,223,91,216,161,223,173,133,175,133,103,134,104,134,170,135,171,135,172,135,173,135,174,135,175,135,176,135,177,135,178,135,179,135,180,135,181,135,182,135,183,135,184,135,185,135,186,135,187,135,188,135,189,135,190,135,191,135,192,135,193,135,194,135,195,135,196,135,197,135,198,135,199,135,200,135,201,135,202,135,203,135,204,135,205,135,206,135,207,135,208,135,209,135,210,135,233,69,234,69,238,69,92,216,255,223,93,216,34,220,222,135,51,137,60,0,42,0,53,137,54,137,55,137,56,137,57,137,58,137,59,137,60,137,61,137,62,137,63,137,64,137,65,137,66,137,67,137,68,137,69,137,84,137,91,70,82,137,203,159,93,216,94,223,171,137,172,137,173,137,174,137,175,137,242,137,243,137,94,216,36,221,4,139,5,139,6,139,7,139,8,139,9,139,10,139,11,139,12,139,13,139,14,139,15,139,16,139,17,139,18,139,19,139,21,139,22,139,23,139,24,139,25,139,26,139,27,139,28,139,29,139,30,139,31,139,32,139,33,139,34,139,0,71,94,216,189,222,94,216,190,222,38,71,63,140,64,140,65,140,79,140,111,140,112,140,113,140,114,140,115,140,148,140,149,140,150,140,246,140,247,140,248,140,249,140,250,140,251,140,252,140,253,140,95,216,220,221,97,141,98,141,111,141,168,141,70,142,71,142,72,142,73,142,74,142,75,142,76,142,77,142,78,142,79,142,80,142,81,142,82,142,83,142,96,216,232,220,96,216,233,220,96,216,244,220,61,143,62,143,63,143,64,143,65,143,66,143,67,143,68,143,69,143,96,216,109,223,96,216,125,223,171,143,125,144,126,144,127,144,128,144,129,144,130,144,131,144,132,144,133,144,137,144,60,0,42,0,174,72,97,216,11,222,56,145,57,145,152,145,153,145,154,145,155,145,156,145,157,145,158,145,159,145,160,145,161,145,162,145,163,145,164,145,98,216,51,221,40,147,71,147,73,147,74,147,75,147,76,147,77,147,78,147,79,147,80,147,81,147,82,147,83,147,84,147,85,147,86,147,87,147,88,147,89,147,90,147,91,147,92,147,93,147,94,147,95,147,96,147,97,147,98,147,99,147,100,147,101,147,102,147,103,147,104,147,105,147,106,147,107,147,108,147,109,147,110,147,111,147,112,147,113,147,114,147,115,147,116,147,117,147,118,147,119,147,120,147,121,147,123,147,124,147,125,147,126,147,127,147,128,147,129,147,130,147,131,147,132,147,133,147,134,147,135,147,60,73,98,216,50,222,98,216,54,222,98,216,68,222,98,216,69,222,98,216,70,222,98,216,71,222,98,216,72,222,98,216,73,222,98,216,74,222,98,216,75,222,98,216,89,222,98,216,90,222,98,216,129,222,98,216,130,222,98,216,131,222,161,147,175,147,97,149,98,149,99,149,100,149,101,149,102,149,103,149,104,149,105,149,106,149,107,149,192,149,183,149,195,149,196,149,197,149,198,149,199,149,200,149,201,149,202,149,203,149,204,149,206,149,207,149,172,150,173,150,174,150,60,0,42,0,175,150,176,150,177,150,178,150,184,150,214,150,1,74,2,74,24,151,25,151,26,151,27,151,28,151,29,151,30,151,31,151,32,151,36,74,100,216,13,221,100,216,16,221,33,151,74,74,154,151,155,151,156,151,157,151,158,151,159,151,160,151,161,151,211,151,212,151,213,151,241,151,64,152,65,152,66,152,67,152,68,152,69,152,70,152,71,152,72,152,73,152,74,152,209,74,101,216,229,220,101,216,231,220,182,152,183,152,16,75,101,216,233,221,101,216,244,221,32,75,37,153,42,153,43,153,44,153,45,153,47,153,48,153,49,153,50,153,51,153,53,153,55,153,101,216,50,223,66,153,70,153,152,153,161,153,162,153,163,153,112,75,114,75,244,153,245,153,246,153,247,153,248,153,249,153,250,153,251,153,252,153,253,153,254,153,255,153,0,154,1,154,2,154,3,154,142,75,144,75,102,216,234,220,243,153,164,154,189,154,190,154,252,154,253,154,254,154,255,154,0,155,1,155,2,155,52,155,72,155,73,155,134,155,153,155,154,155,155,155,156,155,157,155,158,155,159,155,160,155,161,155,162,155,164,155,165,155,166,155,167,155,168,155,169,155,170,155,171,155,172,155,60,0,42,0,173,155,174,155,175,155,176,155,177,155,178,155,179,155,180,155,186,155,75,76,76,76,77,76,206,155,188,156,189,156,191,156,192,156,193,156,194,156,195,156,196,156,197,156,198,156,199,156,200,156,201,156,202,156,203,156,190,156,28,157,45,157,46,157,47,157,48,157,49,157,50,157,51,157,52,157,53,157,54,157,55,157,56,157,57,157,58,157,59,157,60,157,61,157,62,157,63,157,64,157,65,157,66,157,67,157,68,157,69,157,70,157,71,157,72,157,73,157,205,76,212,76,104,216,20,220,103,157,105,158,106,158,107,158,108,158,137,158,138,158,139,158,104,216,178,222,175,158,176,158,199,158,200,158,201,158,207,158,218,158,219,158,220,158,221,158,222,158,105,216,52,220,251,158,255,158,34,159,35,159,36,159,62,159,63,159,75,159,105,216,198,221,84,159,98,159,139,159,140,159,160,159,60,0,39,0,208,253,18,40,39,0,60,0,42,0,45,81,46,81,47,81,49,81,175,52,65,216,254,220,129,81,65,216,165,221,66,216,194,222,226,83,148,86,149,86,150,86,151,86,152,86,153,86,154,86,155,86,156,86,157,86,158,86,159,86,160,86,161,86,162,86,163,86,164,86,9,54,68,216,150,220,68,216,157,220,68,216,180,220,68,216,191,220,68,216,192,220,68,216,193,220,68,216,199,220,68,216,200,220,68,216,201,220,68,216,207,220,68,216,211,220,174,86,216,88,217,88,69,216,182,220,17,89,19,89,112,89,56,91,58,91,59,91,60,91,48,55,49,55,70,216,250,220,105,92,106,92,192,93,193,93,194,93,109,94,110,94,235,94,77,95,93,95,94,95,213,97,214,97,216,97,223,97,227,97,155,57,233,97,234,97,235,97,237,97,238,97,240,97,241,97,243,97,244,97,161,57,51,98,231,100,234,100,229,100,242,100,244,100,245,100,246,100,247,100,248,100,249,100,250,100,251,100,252,100,253,100,254,100,255,100,1,101,2,101,3,101,4,101,5,101,6,101,97,58,102,58,103,58,75,216,13,222,1,141,171,58,76,216,102,220,148,101,76,216,142,220,183,101,219,101,216,102,219,102,220,102,35,59,36,59,37,59,38,59,39,59,40,59,76,216,224,222,76,216,225,222,38,103,171,106,172,106,60,0,42,0,173,106,174,106,175,106,176,106,177,106,178,106,179,106,180,106,181,106,182,106,183,106,184,106,185,106,186,106,187,106,188,106,189,106,190,106,191,106,192,106,193,106,194,106,195,106,196,106,197,106,198,106,199,106,200,106,201,106,202,106,77,216,102,223,77,216,129,223,225,106,237,106,94,107,95,107,120,107,175,107,201,107,11,108,247,111,249,111,250,111,251,111,252,111,253,111,254,111,255,111,0,112,1,112,2,112,3,112,5,112,6,112,7,112,8,112,9,112,10,112,11,112,12,112,13,112,14,112,15,112,16,112,17,112,18,112,19,112,20,112,125,61,80,216,133,220,80,216,139,220,80,216,140,220,80,216,141,220,80,216,145,220,38,112,248,113,249,113,250,113,251,113,252,113,253,113,254,113,255,113,0,114,1,114,3,114,4,62,81,216,53,220,81,216,54,220,90,216,168,221,117,115,118,115,119,115,167,116,181,116,182,116,184,116,185,116,187,116,188,116,190,116,191,116,192,116,193,116,194,116,82,216,140,222,82,216,147,222,82,216,148,222,82,216,149,222,82,216,150,222,82,216,164,222,82,216,165,222,82,216,166,222,82,216,167,222,19,117,20,117,21,117,133,117,79,118,80,118,81,118,82,118,83,118,84,118,85,118,86,118,87,118,88,118,60,0,42,0,89,118,90,118,91,118,92,118,93,118,94,118,100,118,166,118,167,118,168,118,83,216,169,223,189,118,249,63,235,118,236,118,184,119,185,119,186,119,187,119,188,119,189,119,190,119,191,119,192,119,193,119,194,119,84,216,216,222,6,121,7,121,8,121,9,121,10,121,11,121,12,121,13,121,14,121,15,121,16,121,17,121,18,121,19,121,20,121,21,121,22,121,172,121,173,121,174,121,175,121,32,65,95,122,96,122,97,122,98,122,99,122,129,65,86,216,200,220,196,122,197,122,245,122,25,124,26,124,27,124,28,124,29,124,30,124,31,124,32,124,33,124,34,124,35,124,36,124,37,124,38,124,39,124,40,124,41,124,42,124,43,124,45,124,46,124,47,124,48,124,49,124,50,124,78,66,85,66,87,216,193,220,87,216,254,220,87,216,32,221,227,124,228,124,229,124,230,124,231,124,166,66,87,216,26,223,78,126,79,126,80,126,81,126,82,126,83,126,84,126,85,126,86,126,87,126,88,126,89,126,90,126,91,126,92,126,93,126,94,126,95,126,96,126,97,126,98,126,99,126,100,126,101,126,103,126,113,126,24,67,88,216,89,221,88,216,90,221,88,216,91,221,88,216,92,221,71,127,60,0,42,0,72,127,73,127,88,216,88,222,128,127,130,127,179,127,180,127,181,127,247,127,248,127,249,127,250,127,251,127,151,67,89,216,141,220,89,216,152,220,45,128,46,128,117,128,118,128,119,128,205,129,206,129,207,129,208,129,209,129,210,129,211,129,67,68,68,68,69,68,90,216,136,220,10,130,25,130,94,130,95,130,96,130,143,68,46,69,51,69,54,69,59,69,61,69,63,69,64,69,67,69,68,69,169,133,176,133,177,133,178,133,179,133,180,133,181,133,182,133,183,133,184,133,185,133,186,133,187,133,188,133,189,133,190,133,191,133,192,133,193,133,194,133,195,133,196,133,197,133,198,133,199,133,200,133,201,133,202,133,203,133,204,133,205,133,206,133,207,133,208,133,210,133,211,133,91,216,190,223,91,216,222,223,91,216,223,223,92,216,14,220,105,134,155,69,215,135,211,135,212,135,214,135,216,135,217,135,218,135,219,135,220,135,221,135,223,135,224,135,226,135,227,135,228,135,229,135,230,135,231,135,232,135,233,135,234,135,235,135,236,135,237,135,238,135,239,135,240,135,241,135,242,135,243,135,244,135,245,135,14,136,93,216,80,220,93,216,132,220,93,216,134,220,70,137,71,137,72,137,60,0,42,0,73,137,74,137,75,137,76,137,77,137,78,137,79,137,80,137,81,137,83,137,85,137,93,216,132,223,93,216,133,223,134,137,176,137,177,137,178,137,179,137,141,70,244,137,100,157,35,139,36,139,37,139,38,139,39,139,40,139,41,139,42,139,43,139,44,139,45,139,46,139,47,139,48,139,49,139,50,139,51,139,52,139,53,139,54,139,55,139,56,139,57,139,58,139,59,139,60,139,61,139,62,139,94,216,244,222,71,139,66,140,80,140,116,140,117,140,79,71,151,140,152,140,153,140,254,140,255,140,0,141,2,141,3,141,4,141,5,141,169,141,84,142,85,142,86,142,87,142,88,142,89,142,90,142,91,142,92,142,93,142,94,142,95,142,96,142,97,142,98,142,99,142,100,142,101,142,102,142,103,142,110,142,128,142,32,72,96,216,46,221,105,142,191,142,192,142,193,142,96,216,124,222,70,143,71,143,72,143,73,143,74,143,75,143,76,143,113,72,96,216,138,223,172,143,135,144,136,144,97,216,37,222,40,145,58,145,59,145,60,145,61,145,62,145,165,145,166,145,167,145,168,145,169,145,170,145,171,145,172,145,208,145,136,147,137,147,138,147,139,147,60,0,42,0,140,147,141,147,142,147,143,147,144,147,145,147,146,147,147,147,148,147,149,147,150,147,151,147,152,147,153,147,154,147,155,147,156,147,157,147,158,147,159,147,160,147,162,147,163,147,164,147,165,147,166,147,167,147,168,147,170,147,171,147,172,147,173,147,174,147,176,147,177,147,178,147,179,147,180,147,181,147,182,147,183,147,184,147,185,147,186,147,187,147,188,147,189,147,190,147,191,147,178,159,62,73,68,73,69,73,71,73,98,216,154,222,98,216,155,222,98,216,156,222,98,216,192,222,98,216,198,222,98,216,203,222,98,216,204,222,98,216,206,222,108,149,109,149,110,149,111,149,112,149,113,149,208,149,209,149,210,149,211,149,212,149,213,149,214,149,215,149,216,149,99,216,153,221,179,150,215,150,216,150,217,150,218,150,219,150,220,150,221,150,222,150,223,150,224,150,3,74,226,150,34,151,35,151,36,151,37,151,38,74,93,151,162,151,163,151,164,151,165,151,166,151,167,151,168,151,169,151,170,151,171,151,172,151,173,151,174,151,175,151,176,151,214,151,215,151,216,151,217,151,218,151,150,74,249,151,250,151,101,216,51,220,63,152,62,152,75,152,76,152,77,152,78,152,79,152,60,0,42,0,80,152,81,152,82,152,83,152,84,152,85,152,162,152,163,152,184,152,185,152,186,152,46,153,73,75,75,75,76,75,54,153,56,153,57,153,58,153,59,153,60,153,61,153,62,153,63,153,64,153,65,153,164,153,165,153,4,154,5,154,6,154,7,154,8,154,9,154,10,154,11,154,12,154,13,154,14,154,15,154,16,154,17,154,18,154,19,154,147,75,150,75,151,75,102,216,241,220,102,216,250,220,102,216,3,221,102,216,5,221,192,154,193,154,220,154,3,155,4,155,5,155,6,155,8,155,0,76,1,76,41,155,53,155,54,155,74,155,75,155,76,155,77,155,78,155,79,155,38,76,181,155,182,155,183,155,184,155,185,155,187,155,188,155,189,155,190,155,191,155,192,155,193,155,194,155,195,155,196,155,198,155,199,155,200,155,201,155,202,155,203,155,204,155,205,155,207,155,208,155,209,155,210,155,211,155,253,155,87,76,103,216,246,221,204,156,205,156,206,156,207,156,208,156,209,156,210,156,164,76,74,157,75,157,76,157,77,157,78,157,79,157,80,157,81,157,82,157,83,157,84,157,85,157,86,157,87,157,88,157,89,157,90,157,91,157,60,0,42,0,92,157,93,157,94,157,95,157,96,157,98,157,99,157,101,157,109,158,110,158,111,158,112,158,140,158,141,158,142,158,143,158,144,158,38,77,104,216,180,222,104,216,182,222,104,216,186,222,104,216,189,222,177,158,178,158,54,77,191,158,202,158,203,158,223,158,224,158,225,158,0,159,1,159,2,159,118,77,21,159,22,159,37,159,38,159,39,159,40,159,41,159,42,159,43,159,44,159,76,159,85,159,142,159,60,0,39,0,208,253,19,40,39,0,60,0,42,0,38,52,51,81,52,81,53,81,163,52,150,82,247,82,248,82,54,83,180,83,225,88,165,86,166,86,167,86,168,86,169,86,170,86,171,86,172,86,173,86,175,86,176,86,68,216,228,220,68,216,244,220,68,216,245,220,68,216,246,220,218,88,219,88,220,88,221,88,222,88,223,88,224,88,226,88,18,89,61,91,57,91,62,91,63,91,50,55,51,55,52,55,53,55,70,216,3,221,70,216,4,221,70,216,5,221,124,91,243,91,244,91,245,91,107,92,195,93,196,93,197,93,32,56,34,56,71,216,158,223,71,216,161,223,112,94,72,216,115,221,236,94,237,94,144,159,95,95,191,95,236,97,239,97,242,97,245,97,246,97,247,97,74,216,38,221,74,216,57,221,251,97,0,101,7,101,8,101,9,101,10,101,11,101,12,101,13,101,14,101,15,101,16,101,18,101,75,216,54,222,75,216,66,222,132,101,220,101,221,101,222,101,221,102,222,102,223,102,224,102,225,102,226,102,41,59,42,59,203,106,204,106,205,106,206,106,207,106,208,106,209,106,210,106,211,106,212,106,213,106,214,106,215,106,216,106,217,106,218,106,220,106,221,106,222,106,223,106,224,106,226,106,227,106,228,106,229,106,230,106,235,106,0,60,60,0,42,0,1,60,2,60,4,60,77,216,162,223,77,216,188,223,77,216,194,223,231,106,96,107,176,107,177,107,78,216,219,222,12,108,243,111,21,112,22,112,23,112,24,112,25,112,26,112,27,112,28,112,29,112,30,112,31,112,32,112,33,112,34,112,35,112,36,112,37,112,39,112,40,112,41,112,43,112,44,112,45,112,46,112,133,61,136,61,138,61,80,216,201,220,80,216,225,220,107,216,255,221,2,114,4,114,5,114,6,114,7,114,8,114,9,114,10,114,12,114,13,114,14,114,21,114,6,62,81,216,90,220,81,216,91,220,88,114,161,114,162,114,163,114,164,114,165,114,166,114,120,115,121,115,122,115,183,116,189,116,195,116,196,116,197,116,198,116,199,116,200,116,201,116,202,116,203,116,4,63,6,63,82,216,177,222,82,216,178,222,82,216,179,222,82,216,186,222,82,216,187,222,82,216,188,222,227,116,22,117,134,117,135,117,95,118,96,118,97,118,99,118,169,118,84,216,44,220,195,119,196,119,197,119,198,119,199,119,200,119,201,119,202,119,84,216,14,223,84,216,17,223,84,216,19,223,241,119,23,121,24,121,25,121,26,121,27,121,28,121,29,121,30,121,31,121,32,121,33,121,85,216,185,221,176,121,177,121,85,216,29,223,100,122,101,122,102,122,103,122,60,0,42,0,104,122,105,122,106,122,107,122,86,216,222,220,86,216,225,220,198,122,44,124,51,124,52,124,53,124,54,124,55,124,56,124,57,124,58,124,59,124,60,124,61,124,62,124,63,124,64,124,65,124,66,124,79,66,96,66,87,216,48,221,87,216,67,221,233,124,234,124,235,124,236,124,237,124,87,216,75,223,75,126,102,126,104,126,105,126,106,126,107,126,108,126,109,126,110,126,111,126,112,126,114,126,115,126,116,126,117,126,118,126,119,126,120,126,121,126,122,126,32,67,53,127,74,127,75,127,131,127,132,127,133,127,134,127,182,127,183,127,184,127,185,127,253,127,254,127,120,128,203,129,212,129,213,129,215,129,216,129,70,68,90,216,138,220,90,216,147,220,90,216,38,221,11,130,26,130,97,130,98,130,99,130,100,130,101,130,118,130,69,69,70,69,81,69,209,133,213,133,214,133,215,133,216,133,217,133,218,133,219,133,220,133,221,133,222,133,223,133,224,133,225,133,226,133,227,133,228,133,229,133,230,133,231,133,232,133,233,133,234,133,235,133,236,133,237,133,239,133,240,133,241,133,242,133,243,133,244,133,245,133,92,216,75,220,92,216,82,220,92,216,83,220,247,133,248,133,1,136,60,0,42,0,213,135,246,135,247,135,248,135,249,135,250,135,251,135,252,135,253,135,254,135,255,135,0,136,2,136,3,136,4,136,5,136,6,136,7,136,8,136,9,136,10,136,11,136,12,136,13,136,15,136,30,136,86,137,87,137,88,137,89,137,90,137,91,137,92,137,93,137,94,137,95,137,96,137,97,137,98,137,135,137,136,137,180,137,181,137,182,137,183,137,184,137,245,137,246,137,63,139,64,139,65,139,66,139,67,139,68,139,70,139,72,139,73,139,74,139,75,139,76,139,78,139,79,139,80,139,81,139,82,139,83,139,84,139,85,139,86,139,87,139,88,139,89,139,90,139,91,139,92,139,94,216,6,223,94,216,11,223,94,216,24,223,54,140,67,140,119,140,118,140,154,140,6,141,7,141,8,141,9,141,10,141,11,141,12,141,170,141,171,141,172,141,173,141,104,142,106,142,107,142,108,142,109,142,111,142,112,142,113,142,114,142,115,142,116,142,117,142,118,142,119,142,120,142,121,142,122,142,123,142,124,142,125,142,126,142,127,142,38,72,96,216,79,221,96,216,93,221,96,216,111,221,135,142,194,142,195,142,196,142,197,142,77,143,78,143,79,143,60,0,42,0,80,143,81,143,82,143,83,143,84,143,173,143,180,143,138,144,139,144,140,144,97,216,59,222,63,145,64,145,66,145,173,145,174,145,175,145,176,145,177,145,17,73,169,147,192,147,193,147,194,147,195,147,196,147,197,147,198,147,199,147,200,147,201,147,202,147,203,147,204,147,205,147,206,147,207,147,208,147,209,147,210,147,211,147,212,147,213,147,214,147,215,147,216,147,217,147,218,147,219,147,220,147,221,147,222,147,223,147,224,147,225,147,226,147,227,147,228,147,229,147,230,147,231,147,232,147,233,147,234,147,235,147,236,147,237,147,238,147,239,147,240,147,241,147,242,147,249,147,73,73,81,73,83,73,98,216,222,222,98,216,223,222,98,216,224,222,98,216,225,222,98,216,226,222,98,216,227,222,98,216,229,222,98,216,234,222,98,216,252,222,98,216,12,223,114,149,125,149,217,149,218,149,219,149,220,149,221,149,180,150,225,150,227,150,4,74,38,151,39,151,40,151,41,151,42,151,43,151,44,151,45,151,100,216,60,221,100,216,77,221,100,216,91,221,97,151,177,151,178,151,179,151,180,151,181,151,182,151,183,151,220,151,221,151,222,151,223,151,242,151,251,151,252,151,86,152,87,152,88,152,89,152,90,152,60,0,42,0,91,152,92,152,93,152,94,152,228,74,164,152,187,152,188,152,189,152,190,152,191,152,192,152,25,75,67,153,83,75,68,153,69,153,71,153,72,153,73,153,166,153,167,153,102,216,87,220,20,154,21,154,22,154,23,154,24,154,25,154,26,154,27,154,28,154,29,154,30,154,31,154,32,154,33,154,34,154,35,154,36,154,37,154,38,154,39,154,40,154,157,75,102,216,47,221,165,154,194,154,195,154,197,154,9,155,10,155,11,155,12,155,13,155,14,155,15,155,4,76,7,76,55,155,197,155,212,155,213,155,214,155,215,155,216,155,217,155,218,155,219,155,220,155,221,155,222,155,223,155,224,155,225,155,226,155,227,155,228,155,229,155,230,155,231,155,232,155,233,155,234,155,235,155,236,155,237,155,238,155,239,155,240,155,241,155,242,155,243,155,244,155,245,155,91,76,103,216,6,222,103,216,45,222,250,155,211,156,212,156,213,156,214,156,215,156,216,156,217,156,218,156,219,156,97,157,102,157,104,157,105,157,106,157,107,157,108,157,109,157,110,157,111,157,112,157,113,157,114,157,115,157,116,157,117,157,118,157,119,157,120,157,121,157,60,0,42,0,122,157,123,157,124,157,125,157,126,157,127,157,128,157,129,157,130,157,131,157,132,157,133,157,134,157,135,157,136,157,137,157,138,157,139,157,140,157,141,157,142,157,143,157,145,157,225,76,226,76,104,216,135,220,113,158,114,158,120,158,145,158,146,158,147,158,148,158,149,158,150,158,151,158,179,158,180,158,192,158,76,77,226,158,227,158,252,158,3,159,4,159,119,77,23,159,45,159,64,159,65,159,77,159,86,159,87,159,88,159,143,159,105,216,169,222,60,0,39,0,208,253,20,40,39,0,60,0,42,0,54,81,165,52,55,83,177,86,178,86,179,86,180,86,181,86,182,86,183,86,184,86,185,86,68,216,47,221,188,86,37,54,227,88,228,88,229,88,69,216,232,220,64,91,65,91,66,91,67,91,68,91,69,91,70,91,54,55,55,55,56,55,70,216,16,221,70,216,17,221,70,216,18,221,70,216,21,221,125,91,126,91,246,91,198,93,199,93,200,93,201,93,202,93,204,93,113,94,72,216,122,221,238,94,239,94,240,94,192,95,193,95,248,97,164,57,249,97,250,97,74,216,79,221,19,101,20,101,21,101,22,101,23,101,24,101,25,101,26,101,112,58,133,101,134,101,223,101,227,102,228,102,229,102,230,102,231,102,232,102,43,59,76,216,0,223,39,103,232,106,233,106,234,106,236,106,238,106,239,106,240,106,241,106,242,106,243,106,244,106,245,106,246,106,9,60,10,60,13,60,17,60,77,216,213,223,77,216,214,223,77,216,215,223,249,106,42,112,47,112,48,112,49,112,50,112,51,112,52,112,53,112,54,112,55,112,56,112,57,112,58,112,59,112,60,112,61,112,62,112,63,112,64,112,65,112,143,61,145,61,80,216,236,220,80,216,4,221,66,112,11,114,15,114,16,114,17,114,18,114,19,114,20,114,60,0,42,0,22,114,23,114,24,114,10,62,81,216,115,220,81,216,135,220,81,216,136,220,167,114,168,114,81,216,6,223,123,115,124,115,125,115,186,116,204,116,205,116,206,116,207,116,208,116,209,116,210,116,7,63,82,216,192,222,82,216,199,222,136,117,137,117,98,118,101,118,102,118,170,118,171,118,190,118,250,63,237,118,203,119,204,119,205,119,206,119,207,119,242,119,34,121,35,121,36,121,37,121,38,121,39,121,40,121,41,121,42,121,43,121,44,121,178,121,108,122,109,122,110,122,111,122,199,122,246,122,247,122,67,124,68,124,69,124,70,124,71,124,72,124,73,124,74,124,75,124,76,124,77,124,78,124,79,124,85,124,238,124,239,124,240,124,174,66,123,126,124,126,125,126,126,126,127,126,128,126,129,126,130,126,131,126,38,67,88,216,173,221,88,216,174,221,88,216,178,221,76,127,88,216,53,223,186,127,255,127,0,128,47,128,121,128,122,128,123,128,124,128,214,129,217,129,218,129,219,129,220,129,90,216,181,221,102,130,103,130,104,130,105,130,36,134,82,69,84,69,85,69,87,69,88,69,92,69,238,133,246,133,249,133,250,133,251,133,252,133,253,133,254,133,255,133,0,134,1,134,60,0,42,0,2,134,3,134,4,134,5,134,6,134,7,134,8,134,9,134,10,134,11,134,12,134,13,134,14,134,15,134,16,134,17,134,19,134,20,134,34,134,92,216,136,220,92,216,173,220,92,216,174,220,92,216,175,220,18,134,27,134,48,134,16,136,17,136,18,136,19,136,20,136,21,136,22,136,23,136,24,136,25,136,0,70,1,70,99,137,100,137,101,137,102,137,103,137,104,137,185,137,186,137,187,137,247,137,248,137,249,137,77,139,93,139,94,139,95,139,96,139,97,139,98,139,99,139,100,139,101,139,102,139,103,139,104,139,105,139,106,139,107,139,108,139,109,139,110,139,111,139,112,139,113,139,114,139,19,71,24,71,94,216,56,223,94,216,57,223,94,216,58,223,81,140,95,216,18,220,13,141,14,141,15,141,174,141,129,142,130,142,131,142,132,142,133,142,134,142,136,142,137,142,96,216,137,221,198,142,85,143,86,143,87,143,88,143,89,143,90,143,174,143,141,144,65,145,67,145,178,145,179,145,180,145,181,145,182,145,183,145,184,145,203,145,243,147,245,147,246,147,247,147,248,147,250,147,251,147,252,147,253,147,254,147,255,147,0,148,1,148,2,148,3,148,4,148,60,0,42,0,5,148,6,148,7,148,8,148,9,148,10,148,11,148,12,148,13,148,14,148,15,148,16,148,17,148,18,148,19,148,20,148,21,148,22,148,23,148,24,148,25,148,26,148,27,148,28,148,29,148,30,148,31,148,32,148,33,148,34,148,35,148,36,148,37,148,38,148,39,148,40,148,98,216,19,223,98,216,33,223,98,216,34,223,98,216,43,223,98,216,44,223,98,216,45,223,98,216,47,223,98,216,70,223,98,216,76,223,98,216,78,223,98,216,80,223,47,148,60,148,115,149,116,149,222,149,223,149,224,149,225,149,99,216,185,221,181,150,46,151,47,151,48,151,49,151,51,151,52,151,100,216,94,221,100,216,112,221,75,74,184,151,185,151,186,151,187,151,219,151,224,151,253,151,254,151,255,151,95,152,96,152,97,152,98,152,99,152,165,152,193,152,194,152,195,152,196,152,74,153,75,153,76,153,77,153,78,153,80,153,81,153,82,153,83,153,89,153,168,153,41,154,42,154,43,154,44,154,45,154,46,154,47,154,48,154,49,154,50,154,51,154,52,154,53,154,54,154,55,154,56,154,102,216,69,221,102,216,71,221,102,216,72,221,102,216,73,221,102,216,93,221,102,216,106,221,166,154,167,154,196,154,198,154,199,154,200,154,201,154,202,154,203,154,204,154,60,0,42,0,16,155,17,155,18,155,19,155,42,155,56,155,80,155,251,155,246,155,247,155,248,155,249,155,252,155,254,155,255,155,0,156,1,156,2,156,3,156,4,156,5,156,6,156,7,156,8,156,9,156,10,156,11,156,12,156,13,156,14,156,15,156,16,156,17,156,18,156,19,156,20,156,21,156,22,156,23,156,24,156,25,156,26,156,27,156,32,156,109,76,103,216,104,222,64,156,220,156,221,156,222,156,223,156,144,157,146,157,147,157,148,157,149,157,150,157,151,157,152,157,153,157,154,157,155,157,156,157,157,157,158,157,159,157,160,157,161,157,162,157,163,157,164,157,165,157,166,157,167,157,168,157,169,157,170,157,171,157,237,76,104,216,185,220,104,216,225,220,104,216,237,220,104,216,243,220,104,216,248,220,191,157,121,158,152,158,153,158,154,158,155,158,181,158,104,216,81,223,193,158,104,216,169,223,77,77,228,158,229,158,230,158,231,158,232,158,233,158,234,158,105,216,91,220,13,159,46,159,47,159,48,159,105,216,203,221,89,159,90,159,91,159,93,159,94,159,95,159,96,159,97,159,99,159,145,159,60,0,39,0,208,253,21,40,39,0,60,0,42,0,55,81,56,81,57,81,58,81,167,52,100,81,151,82,152,82,66,216,44,220,91,83,186,86,187,86,189,86,190,86,191,86,192,86,193,86,194,86,195,86,196,86,205,86,68,216,59,221,68,216,61,221,68,216,69,221,68,216,72,221,68,216,79,221,230,88,69,216,253,220,20,89,71,91,72,91,73,91,57,55,70,216,28,221,247,91,108,92,203,93,205,93,207,93,208,93,38,56,241,94,194,95,252,97,253,97,254,97,17,101,27,101,28,101,29,101,75,216,120,222,149,101,233,102,76,216,10,223,7,103,248,106,250,106,251,106,252,106,253,106,254,106,255,106,0,107,1,107,2,107,3,107,4,107,5,107,12,107,21,60,178,107,67,112,68,112,69,112,70,112,71,112,72,112,73,112,74,112,75,112,76,112,77,112,79,112,80,112,80,216,15,221,80,216,25,221,25,114,26,114,27,114,13,62,81,216,185,220,29,114,126,115,211,116,212,116,214,116,82,216,202,222,82,216,209,222,23,117,103,118,104,118,105,118,106,118,107,118,215,63,172,118,83,216,184,223,208,119,209,119,210,119,211,119,45,121,46,121,47,121,48,121,49,121,50,121,51,121,52,121,85,216,213,221,85,216,219,221,85,216,37,223,86,216,3,221,195,122,200,122,201,122,86,124,80,124,60,0,42,0,81,124,82,124,83,124,84,124,106,66,87,216,153,221,242,124,132,126,133,126,134,126,135,126,136,126,137,126,138,126,139,126,140,126,141,126,142,126,143,126,144,126,77,127,187,127,188,127,154,67,48,128,221,129,106,130,212,133,97,69,98,69,21,134,22,134,23,134,24,134,25,134,26,134,28,134,29,134,30,134,31,134,32,134,33,134,35,134,37,134,38,134,39,134,40,134,41,134,42,134,43,134,45,134,46,134,47,134,92,216,205,220,92,216,210,220,92,216,248,220,92,216,9,221,92,216,12,221,26,136,27,136,28,136,29,136,31,136,32,136,33,136,34,136,35,136,36,136,2,70,3,70,41,136,43,136,74,136,105,137,106,137,107,137,108,137,109,137,110,137,188,137,189,137,250,137,69,139,115,139,116,139,117,139,118,139,119,139,120,139,121,139,122,139,123,139,124,139,125,139,94,216,72,223,16,141,17,141,18,141,19,141,20,141,99,141,175,141,176,141,138,142,139,142,140,142,141,142,142,142,143,142,96,216,175,221,96,216,188,221,199,142,91,143,92,143,93,143,94,143,95,143,175,143,142,144,68,145,69,145,70,145,185,145,186,145,187,145,244,147,41,148,42,148,60,0,42,0,43,148,44,148,45,148,46,148,48,148,49,148,50,148,51,148,52,148,53,148,54,148,55,148,56,148,57,148,58,148,59,148,61,148,62,148,63,148,64,148,65,148,101,73,98,216,99,223,98,216,100,223,98,216,101,223,98,216,102,223,98,216,108,223,98,216,143,223,226,149,227,149,228,149,229,149,230,149,228,150,50,151,53,151,54,151,55,151,56,151,57,151,58,151,59,151,103,151,188,151,189,151,190,151,191,151,225,151,226,151,164,74,101,216,63,220,100,152,101,152,102,152,103,152,104,152,166,152,197,152,198,152,199,152,200,152,201,152,202,152,220,152,79,153,86,153,87,153,88,153,169,153,57,154,58,154,59,154,60,154,61,154,62,154,63,154,64,154,65,154,66,154,67,154,68,154,69,154,70,154,71,154,173,159,205,154,206,154,207,154,20,155,21,155,22,155,23,155,24,155,57,155,58,155,81,155,82,155,83,155,84,155,28,156,29,156,30,156,31,156,33,156,34,156,35,156,36,156,37,156,38,156,39,156,40,156,41,156,42,156,43,156,44,156,45,156,46,156,47,156,48,156,119,76,123,76,125,76,103,216,172,222,163,76,224,156,225,156,226,156,227,156,60,0,42,0,172,157,173,157,174,157,175,157,176,157,177,157,178,157,179,157,180,157,181,157,182,157,183,157,184,157,185,157,186,157,187,157,188,157,189,157,190,157,192,157,193,157,194,157,195,157,196,157,197,157,198,157,199,157,200,157,201,157,202,157,204,157,205,157,206,157,207,157,104,216,254,220,104,216,7,221,104,216,35,221,122,158,123,158,156,158,157,158,78,77,235,158,236,158,237,158,238,158,239,158,5,159,24,159,25,159,26,159,27,159,49,159,78,159,92,159,100,159,101,159,102,159,103,159,104,159,105,159,105,216,1,222,146,159,157,159,161,159,60,0,39,0,208,253,22,40,39,0,60,0,42,0,185,78,59,81,60,81,65,216,101,220,66,216,121,221,197,86,198,86,199,86,200,86,201,86,202,86,203,86,206,86,24,54,29,87,113,89,74,91,75,91,76,91,58,55,70,216,34,221,70,216,39,221,127,91,206,93,209,93,210,93,211,93,212,93,213,93,215,93,242,94,78,95,114,95,255,97,2,98,74,216,103,221,74,216,107,221,53,98,30,101,31,101,32,101,33,101,34,101,36,101,38,101,39,101,75,216,139,222,76,216,51,220,44,59,45,59,247,106,6,107,7,107,8,107,9,107,10,107,11,107,13,107,14,107,24,60,97,107,13,108,81,112,82,112,84,112,85,112,86,112,87,112,88,112,80,216,63,221,80,216,64,221,80,216,68,221,28,114,30,114,31,114,32,114,169,114,127,115,128,115,213,116,215,116,216,116,217,116,228,116,138,117,108,118,109,118,110,118,83,216,14,223,173,118,53,121,248,64,85,216,224,221,179,121,180,121,112,122,113,122,202,122,248,122,87,124,88,124,89,124,90,124,91,124,92,124,93,124,95,124,96,124,97,124,87,216,185,221,241,124,244,124,145,126,146,126,43,67,88,216,221,221,78,127,79,127,88,216,97,222,135,127,49,128,50,128,125,128,126,128,222,129,223,129,90,216,250,221,107,130,60,0,42,0,103,69,106,69,109,69,44,134,50,134,51,134,52,134,53,134,54,134,55,134,92,216,13,221,92,216,38,221,92,216,39,221,37,136,38,136,39,136,40,136,42,136,44,136,6,70,111,137,112,137,113,137,114,137,190,137,191,137,94,216,157,220,251,137,252,137,126,139,127,139,128,139,129,139,130,139,131,139,132,139,133,139,32,71,94,216,101,223,134,139,68,140,21,141,22,141,23,141,24,141,144,142,145,142,146,142,147,142,148,142,149,142,150,142,151,142,154,142,96,143,97,143,98,143,71,145,72,145,66,148,67,148,68,148,69,148,70,148,71,148,72,148,73,148,74,148,75,148,76,148,77,148,78,148,79,148,80,148,81,148,82,148,83,148,84,148,103,148,106,73,109,73,98,216,153,223,98,216,156,223,98,216,157,223,117,149,118,149,126,149,231,149,60,151,61,151,62,151,63,151,64,151,100,216,156,221,192,151,193,151,194,151,195,151,227,151,105,152,106,152,107,152,203,152,84,153,85,153,90,153,91,153,101,216,212,223,72,154,73,154,74,154,75,154,76,154,77,154,78,154,79,154,80,154,81,154,82,154,83,154,84,154,85,154,102,216,157,221,208,154,210,154,221,154,29,155,25,155,60,0,42,0,26,155,27,155,28,155,14,76,102,216,213,223,43,155,59,155,85,155,86,155,49,156,50,156,51,156,52,156,53,156,54,156,55,156,56,156,57,156,58,156,59,156,60,156,61,156,62,156,63,156,65,156,66,156,67,156,68,156,69,156,70,156,71,156,72,156,224,157,129,76,133,76,103,216,176,222,103,216,195,222,73,156,228,156,203,157,208,157,209,157,210,157,211,157,212,157,213,157,214,157,215,157,216,157,217,157,218,157,219,157,220,157,221,157,222,157,223,157,104,216,51,221,104,216,52,221,104,216,80,221,233,157,245,157,115,158,116,158,158,158,104,216,223,222,182,158,208,158,240,158,241,158,50,159,51,159,52,159,53,159,66,159,106,159,107,159,108,159,156,77,147,159,148,159,149,159,162,159,60,0,39,0,208,253,23,40,39,0,60,0,42,0,61,81,153,82,154,82,66,216,205,222,204,86,207,86,208,86,26,54,231,88,232,88,69,216,130,221,114,89,77,91,214,93,216,93,218,93,79,95,0,98,1,98,3,98,4,98,35,101,37,101,40,101,41,101,42,101,43,101,119,58,150,101,234,102,235,102,236,102,46,59,15,107,16,107,17,107,18,107,78,216,58,220,202,107,83,112,89,112,90,112,91,112,92,112,80,216,78,221,80,216,85,221,80,216,86,221,80,216,87,221,80,216,92,221,80,216,95,221,33,114,34,114,81,216,188,220,81,216,206,220,81,216,211,220,81,216,214,220,129,115,130,115,131,115,218,116,82,216,223,222,111,118,112,118,212,119,54,121,55,121,181,121,94,124,98,124,99,124,100,124,101,124,102,124,103,124,104,124,116,66,245,124,147,126,148,126,149,126,150,126,226,129,90,216,199,220,108,130,119,69,49,134,56,134,57,134,58,134,59,134,60,134,61,134,62,134,63,134,64,134,65,134,92,216,27,222,52,136,45,136,46,136,47,136,48,136,49,136,50,136,51,136,115,137,116,137,118,137,137,137,253,137,254,137,135,139,136,139,137,139,138,139,139,139,140,139,141,139,142,139,143,139,144,139,69,140,25,141,26,141,177,141,152,142,153,142,155,142,60,0,42,0,156,142,96,216,155,222,99,143,100,143,143,144,144,144,188,145,85,148,86,148,87,148,88,148,89,148,90,148,91,148,92,148,93,148,94,148,95,148,96,148,97,148,98,148,99,148,100,148,101,148,102,148,114,73,98,216,185,223,98,216,194,223,98,216,197,223,98,216,212,223,98,216,215,223,98,216,217,223,98,216,218,223,65,151,53,74,100,216,168,221,104,151,196,151,197,151,0,152,108,152,109,152,110,152,111,152,167,152,92,153,170,153,86,154,87,154,88,154,89,154,90,154,91,154,92,154,209,154,211,154,212,154,222,154,30,155,31,155,32,155,74,156,75,156,76,156,77,156,78,156,79,156,80,156,81,156,82,156,83,156,84,156,85,156,86,156,87,156,88,156,89,156,90,156,91,156,103,216,248,222,106,156,225,157,226,157,227,157,228,157,229,157,230,157,231,157,232,157,234,157,235,157,236,157,237,157,238,157,239,157,240,157,241,157,242,157,243,157,244,157,246,157,247,157,248,157,251,157,252,157,0,77,104,216,146,221,104,216,147,221,104,216,171,221,159,158,194,158,242,158,243,158,244,158,6,159,7,159,28,159,54,159,55,159,56,159,57,159,137,77,67,159,68,159,79,159,109,159,110,159,111,159,60,0,42,0,112,159,113,159,105,216,50,222,60,0,39,0,208,253,24,40,39,0,60,0,42,0,62,81,65,216,215,220,209,86,210,86,211,86,68,216,128,221,233,88,129,54,78,91,79,91,109,92,217,93,74,216,128,221,44,101,45,101,237,102,238,102,19,107,20,107,21,107,93,112,94,112,95,112,96,112,97,112,80,216,97,221,35,114,219,116,229,116,113,118,114,118,83,216,194,223,213,119,215,119,214,119,56,121,250,64,182,121,183,121,115,122,114,122,106,124,118,66,151,126,80,127,136,127,137,127,109,130,119,130,120,69,67,134,69,134,92,216,100,221,92,216,101,221,53,136,54,136,55,136,56,136,57,136,58,136,75,136,98,136,117,137,119,137,93,216,204,223,145,139,146,139,147,139,148,139,149,139,150,139,27,141,157,142,158,142,159,142,160,142,200,142,189,145,190,145,191,145,192,145,194,145,104,148,105,148,106,148,107,148,108,148,98,216,231,223,98,216,232,223,98,216,233,223,98,216,234,223,98,216,235,223,98,216,236,223,98,216,245,223,229,150,230,150,66,151,67,151,68,151,69,151,70,151,71,151,72,151,198,151,199,151,200,151,228,151,229,151,101,216,72,220,112,152,93,153,93,154,94,154,95,154,213,154,33,155,34,155,44,155,45,155,87,155,88,155,89,155,103,216,62,221,92,156,93,156,94,156,95,156,96,156,60,0,42,0,97,156,98,156,99,156,100,156,101,156,102,156,103,156,105,156,107,156,103,216,35,223,112,156,250,157,249,157,253,157,254,157,255,157,0,158,1,158,2,158,3,158,4,158,5,158,6,158,7,158,8,158,9,158,10,158,7,77,9,77,104,216,180,221,104,216,181,221,124,158,125,158,160,158,30,159,69,159,70,159,114,159,115,159,116,159,117,159,118,159,119,159,60,0,39,0,208,253,25,40,39,0,60,0,42,0,212,86,213,86,68,216,135,221,234,88,243,94,5,98,6,98,46,101,184,101,239,102,47,59,22,107,23,107,24,107,25,107,26,107,27,107,29,107,98,112,99,112,36,114,37,114,38,114,170,114,83,216,6,221,216,119,217,119,225,119,57,121,105,124,107,124,108,124,109,124,110,124,246,124,152,126,153,126,154,126,155,126,224,129,225,129,66,134,70,134,71,134,72,134,73,134,59,136,93,216,116,221,120,137,121,137,122,137,123,137,124,137,138,137,192,137,255,137,151,139,152,139,153,139,82,140,68,71,155,140,28,141,95,216,77,222,161,142,162,142,163,142,164,142,165,142,193,145,109,148,110,148,111,148,112,148,113,148,114,148,115,148,98,216,255,223,99,216,3,220,73,151,113,152,114,152,94,153,95,153,149,153,189,75,102,216,195,221,102,216,201,221,214,154,35,155,104,156,108,156,109,156,110,156,111,156,103,216,48,223,11,158,12,158,13,158,14,158,15,158,16,158,17,158,18,158,104,216,223,221,161,158,204,158,245,158,8,159,9,159,29,159,31,159,71,159,120,159,121,159,122,159,123,159,105,216,74,222,163,159,60,0,39,0,208,253,26,40,39,0,60,0,42,0,54,53,30,87,59,55,96,95,28,107,14,108,78,112,100,112,102,112,82,216,226,222,115,118,218,119,111,124,112,124,87,216,14,222,243,124,68,134,106,134,60,136,154,139,155,139,95,216,79,222,178,141,166,142,167,142,195,145,196,145,116,148,117,148,118,148,119,148,120,148,121,148,122,148,99,216,9,220,99,216,28,220,99,216,29,220,74,151,201,151,96,154,97,154,98,154,99,154,190,75,101,154,215,154,113,156,114,156,115,156,116,156,117,156,118,156,19,158,20,158,104,216,245,221,246,158,10,159,105,216,91,222,164,159,165,159,60,0,39,0,208,253,27,40,39,0,60,0,42,0,78,216,26,223,101,112,103,112,104,112,80,216,119,221,80,216,122,221,171,114,247,124,156,126,157,126,74,134,61,136,62,136,63,136,125,137,156,139,157,139,158,139,83,140,156,140,169,142,170,142,201,142,101,143,197,145,123,148,124,148,125,148,126,148,99,216,35,220,99,216,38,220,75,151,76,151,77,151,78,151,115,152,116,152,204,152,205,152,221,152,96,153,97,153,171,153,100,154,102,154,103,154,174,159,36,155,46,155,48,155,119,156,120,156,21,158,22,158,23,158,247,158,72,159,60,0,39,0,208,253,28,40,39,0,60,0,42,0,214,86,7,98,75,216,179,222,76,216,31,223,30,107,31,107,39,114,82,216,233,222,116,118,220,63,92,216,117,221,76,134,84,140,168,142,96,216,7,222,127,148,128,148,129,148,130,148,99,216,43,220,99,216,48,220,231,150,104,154,105,154,192,75,24,158,25,158,26,158,104,216,32,222,162,158,248,158,58,159,124,159,125,159,158,159,60,0,39,0,208,253,29,40,39,0,60,0,42,0,40,114,86,216,84,222,158,126,75,134,159,139,131,148,132,148,121,73,79,151,106,154,49,155,121,156,27,158,28,158,183,158,60,0,39,0,208,253,30,40,39,0,60,0,42,0,181,83,117,118,144,65,113,124,133,69,99,216,57,220,202,151,98,153,107,154,103,216,115,220,122,156,29,158,30,158,104,216,51,222,145,77,60,0,39,0,208,253,31,40,39,0,60,0,42,0,105,112,93,216,163,221,98,216,13,221,16,77,163,158,60,0,39,0,208,253,32,40,39,0,60,0,42,0,106,112,114,124,99,216,59,220,150,159,60,0,39,0,208,253,33,40,39,0,60,0,42,0,70,216,59,221,41,114,123,156,164,158,151,159,60,0,39,0,208,253,35,40,39,0,60,0,42,0,126,159,60,0,39,0,208,253,36,40,39,0,60,0,42,0,73,159,60,0,39,0,208,253,39,40,39,0,60,0,42,0,80,151,60,0,39,0,208,253,48,40,39,0,60,0,42,0,152,159,38,0,39,0,40,0,0,78,41,0,39,0,60,0,60,0,60,0,32,50,38,0,39,0,40,0,3,78,41,0,39,0,60,0,60,0,60,0,38,50,38,0,39,0,40,0,9,78,41,0,39,0,60,0,60,0,60,0,34,50,38,0,39,0,40,0,93,78,41,0,39,0,60,0,60,0,60,0,40,50,38,0,39,0,40,0,140,78,41,0,39,0,60,0,60,0,60,0,33,50,38,0,39,0,40,0,148,78,41,0,39,0,60,0,60,0,60,0,36,50,38,0,39,0,40,0,227,78,41,0,39,0,60,0,60,0,60,0,57,50,38,0,39,0,40,0,1,79,41,0,39,0,60,0,60,0,60,0,61,50,38,0,39,0,40,0,17,79,41,0,39,0,60,0,60,0,60,0,65,50,38,0,39,0,40,0,107,81,41,0,39,0,60,0,60,0,60,0,39,50,38,0,39,0,40,0,109,81,41,0,39,0,60,0,60,0,60,0,37,50,38,0,39,0,40,0,180,82,41,0,39,0,60,0,60,0,60,0,56,50,38,0,39,0,40,0,65,83,41,0,39,0,60,0,60,0,60,0,41,50,38,0,39,0,40,0,84,83,41,0,39,0,60,0,60,0,60,0,63,50,38,0,39,0,40,0,13,84,41,0,39,0,60,0,60,0,60,0,52,50,38,0,39,0,40,0,124,84,41,0,39,0,60,0,60,0,60,0,58,50,38,0,39,0,40,0,219,86,41,0,39,0,60,0,60,0,60,0,35,50,38,0,39,0,40,0,31,87,41,0,39,0,60,0,60,0,60,0,47,50,38,0,39,0,40,0,102,91,41,0,39,0,60,0,60,0,60,0,59,50,38,0,39,0,40,0,229,101,41,0,39,0,60,0,60,0,60,0,48,50,38,0,39,0,40,0,8,103,41,0,39,0,60,0,60,0,60,0,42,50,38,0,39,0,40,0,9,103,41,0,39,0,60,0,60,0,60,0,50,50,38,0,39,0,40,0,40,103,41,0,39,0,60,0,60,0,60,0,45,50,38,0,39,0,40,0,42,104,41,0,39,0,60,0,60,0,60,0,49,50,38,0,39,0,40,0,52,108,41,0,39,0,60,0,60,0,60,0,44,50,38,0,39,0,40,0,107,112,41,0,39,0,60,0,60,0,60,0,43,50,38,0,39,0,40,0,121,114,41,0,39,0,60,0,60,0,60,0,53,50,38,0,39,0,40,0,227,118,41,0,39,0,60,0,60,0,60,0,60,50,38,0,39,0,40,0,62,121,41,0,39,0,60,0,60,0,60,0,51,50,38,0,39,0,40,0,93,121,41,0,39,0,60,0,60,0,60,0,55,50,38,0,39,0,40,0,109,121,41,0,39,0,60,0,60,0,60,0,64,50,38,0,39,0,40,0,234,129,41,0,39,0,60,0,60,0,60,0,66,50,38,0,39,0,40,0,243,129,41,0,39,0,60,0,60,0,60,0,67,50,38,0,39,0,40,0,161,140,41,0,39,0,60,0,60,0,60,0,54,50,38,0,39,0,40,0,199,140,41,0,39,0,60,0,60,0,60,0,62,50,38,0,39,0,40,0,209,145,41,0,39,0,60,0,60,0,60,0,46,50,38,0,48,0,185,112,60,0,60,0,60,0,88,51,38,0,49,0,48,0,229,101,60,0,60,0,60,0,233,51,38,0,49,0,48,0,8,103,60,0,60,0,60,0,201,50,38,0,49,0,48,0,185,112,60,0,60,0,60,0,98,51,38,0,49,0,49,0,229,101,60,0,60,0,60,0,234,51,38,0,49,0,49,0,8,103,60,0,60,0,60,0,202,50,38,0,49,0,49,0,185,112,60,0,60,0,60,0,99,51,38,0,49,0,50,0,229,101,60,0,60,0,60,0,235,51,38,0,49,0,50,0,8,103,60,0,60,0,60,0,203,50,38,0,49,0,50,0,185,112,60,0,60,0,60,0,100,51,38,0,49,0,51,0,229,101,60,0,60,0,60,0,236,51,38,0,49,0,51,0,185,112,60,0,60,0,60,0,101,51,38,0,49,0,52,0,229,101,60,0,60,0,60,0,237,51,38,0,49,0,52,0,185,112,60,0,60,0,60,0,102,51,38,0,49,0,53,0,229,101,60,0,60,0,60,0,238,51,38,0,49,0,53,0,185,112,60,0,60,0,60,0,103,51,38,0,49,0,54,0,229,101,60,0,60,0,60,0,239,51,38,0,49,0,54,0,185,112,60,0,60,0,60,0,104,51,38,0,49,0,55,0,229,101,60,0,60,0,60,0,240,51,38,0,49,0,55,0,185,112,60,0,60,0,60,0,105,51,38,0,49,0,56,0,229,101,60,0,60,0,60,0,241,51,38,0,49,0,56,0,185,112,60,0,60,0,60,0,106,51,38,0,49,0,57,0,229,101,60,0,60,0,60,0,242,51,38,0,49,0,57,0,185,112,60,0,60,0,60,0,107,51,38,0,49,0,229,101,60,0,60,0,60,0,224,51,38,0,49,0,8,103,60,0,60,0,60,0,192,50,38,0,49,0,185,112,60,0,60,0,60,0,89,51,38,0,50,0,48,0,229,101,60,0,60,0,60,0,243,51,38,0,50,0,48,0,185,112,60,0,60,0,60,0,108,51,38,0,50,0,49,0,229,101,60,0,60,0,60,0,244,51,38,0,50,0,49,0,185,112,60,0,60,0,60,0,109,51,38,0,50,0,50,0,229,101,60,0,60,0,60,0,245,51,38,0,50,0,50,0,185,112,60,0,60,0,60,0,110,51,38,0,50,0,51,0,229,101,60,0,60,0,60,0,246,51,38,0,50,0,51,0,185,112,60,0,60,0,60,0,111,51,38,0,50,0,52,0,229,101,60,0,60,0,60,0,247,51,38,0,50,0,52,0,185,112,60,0,60,0,60,0,112,51,38,0,50,0,53,0,229,101,60,0,60,0,60,0,248,51,38,0,50,0,54,0,229,101,60,0,60,0,60,0,249,51,38,0,50,0,55,0,229,101,60,0,60,0,60,0,250,51,38,0,50,0,56,0,229,101,60,0,60,0,60,0,251,51,38,0,50,0,57,0,229,101,60,0,60,0,60,0,252,51,38,0,50,0,229,101,60,0,60,0,60,0,225,51,38,0,50,0,8,103,60,0,60,0,60,0,193,50,38,0,50,0,185,112,60,0,60,0,60,0,90,51,38,0,51,0,48,0,229,101,60,0,60,0,60,0,253,51,38,0,51,0,49,0,229,101,60,0,60,0,60,0,254,51,38,0,51,0,229,101,60,0,60,0,60,0,226,51,38,0,51,0,8,103,60,0,60,0,60,0,194,50,38,0,51,0,185,112,60,0,60,0,60,0,91,51,38,0,52,0,229,101,60,0,60,0,60,0,227,51,38,0,52,0,8,103,60,0,60,0,60,0,195,50,38,0,52,0,185,112,60,0,60,0,60,0,92,51,38,0,53,0,229,101,60,0,60,0,60,0,228,51,38,0,53,0,8,103,60,0,60,0,60,0,196,50,38,0,53,0,185,112,60,0,60,0,60,0,93,51,38,0,54,0,229,101,60,0,60,0,60,0,229,51,38,0,54,0,8,103,60,0,60,0,60,0,197,50,38,0,54,0,185,112,60,0,60,0,60,0,94,51,38,0,55,0,229,101,60,0,60,0,60,0,230,51,38,0,55,0,8,103,60,0,60,0,60,0,198,50,38,0,55,0,185,112,60,0,60,0,60,0,95,51,38,0,56,0,229,101,60,0,60,0,60,0,231,51,38,0,56,0,8,103,60,0,60,0,60,0,199,50,38,0,56,0,185,112,60,0,60,0,60,0,96,51,38,0,57,0,229,101,60,0,60,0,60,0,232,51,38,0,57,0,8,103,60,0,60,0,60,0,200,50,38,0,57,0,185,112,60,0,60,0,60,0,97,51,38,0,39,0,20,48,9,78,21,48,39,0,60,0,60,0,60,0,60,216,65,222,38,0,39,0,20,48,140,78,21,48,39,0,60,0,60,0,60,0,60,216,66,222,38,0,39,0,20,48,221,82,21,48,39,0,60,0,60,0,60,0,60,216,71,222,38,0,39,0,20,48,137,91,21,48,39,0,60,0,60,0,60,0,60,216,67,222,38,0,39,0,20,48,83,98,21,48,39,0,60,0,60,0,60,0,60,216,69,222,38,0,39,0,20,48,87,101,21,48,39,0,60,0,60,0,60,0,60,216,72,222,38,0,39,0,20,48,44,103,21,48,39,0,60,0,60,0,60,0,60,216,64,222,38,0,39,0,20,48,185,112,21,48,39,0,60,0,60,0,60,0,60,216,68,222,38,0,39,0,20,48,215,118,21,48,39,0,60,0,60,0,60,0,60,216,70,222,38,0,0,78,60,0,60,0,60,0,0,47,38,0,0,78,60,0,60,0,60,0,146,49,38,0,0,78,60,0,60,0,60,0,128,50,38,0,0,78,60,0,60,0,60,0,60,216,41,222,38,0,1,78,60,0,60,0,60,0,156,49,38,0,3,78,60,0,60,0,60,0,134,50,38,0,9,78,60,0,60,0,60,0,148,49,38,0,9,78,60,0,60,0,60,0,130,50,38,0,9,78,60,0,60,0,60,0,60,216,42,222,38,0,10,78,60,0,60,0,60,0,150,49,38,0,10,78,60,0,60,0,60,0,164,50,38,0,11,78,60,0,60,0,60,0,152,49,38,0,11,78,60,0,60,0,60,0,166,50,38,0,25,78,60,0,60,0,60,0,155,49,38,0,40,78,60,0,60,0,60,0,1,47,38,0,45,78,60,0,60,0,60,0,151,49,38,0,45,78,60,0,60,0,60,0,165,50,38,0,45,78,60,0,60,0,60,0,60,216,45,222,38,0,54,78,60,0,60,0,60,0,2,47,38,0,63,78,60,0,60,0,60,0,3,47,38,0,89,78,60,0,60,0,60,0,4,47,38,0,89,78,60,0,60,0,60,0,154,49,38,0,93,78,60,0,60,0,60,0,136,50,38,0,133,78,60,0,60,0,60,0,5,47,38,0,140,78,60,0,60,0,60,0,6,47,38,0,140,78,60,0,60,0,60,0,147,49,38,0,140,78,60,0,60,0,60,0,129,50,38,0,140,78,60,0,60,0,60,0,60,216,20,222,38,0,148,78,60,0,60,0,60,0,132,50,38,0,160,78,60,0,60,0,60,0,7,47,38,0,164,78,60,0,60,0,60,0,60,216,24,222,38,0,186,78,60,0,60,0,60,0,8,47,38,0,186,78,60,0,60,0,60,0,159,49,38,0,228,78,140,84,60,0,60,0,60,0,255,50,38,0,1,79,60,0,60,0,60,0,173,50,38,0,17,79,60,0,60,0,60,0,161,50,38,0,42,81,60,0,60,0,60,0,157,50,38,0,63,81,60,0,60,0,60,0,9,47,38,0,101,81,60,0,60,0,60,0,10,47,38,0,107,81,60,0,60,0,60,0,11,47,38,0,107,81,60,0,60,0,60,0,135,50,38,0,109,81,60,0,60,0,60,0,133,50,38,0,130,81,60,0,60,0,60,0,12,47,38,0,141,81,60,0,60,0,60,0,60,216,30,222,38,0,150,81,60,0,60,0,60,0,13,47,38,0,153,81,60,0,60,0,60,0,162,50,38,0,171,81,60,0,60,0,60,0,14,47,38,0,224,81,60,0,60,0,60,0,15,47,38,0,245,81,60,0,60,0,60,0,16,47,38,0,0,82,60,0,60,0,60,0,17,47,38,0,29,82,60,0,60,0,60,0,60,216,32,222,38,0,77,82,60,0,60,0,60,0,60,216,28,222,38,0,114,82,60,0,60,0,60,0,60,216,57,222,38,0,155,82,60,0,60,0,60,0,18,47,38,0,180,82,60,0,60,0,60,0,152,50,38,0,249,82,60,0,60,0,60,0,19,47,38,0,21,83,60,0,60,0,60,0,20,47,38,0,26,83,60,0,60,0,60,0,21,47,38,0,56,83,60,0,60,0,60,0,22,47,38,0,59,83,60,0,60,0,60,0,169,50,38,0,65,83,60,0,60,0,60,0,23,47,38,0,65,83,60,0,60,0,60,0,56,48,38,0,65,83,60,0,60,0,60,0,137,50,38,0,68,83,60,0,60,0,60,0,57,48,38,0,69,83,60,0,60,0,60,0,58,48,38,0,84,83,60,0,60,0,60,0,175,50,38,0,92,83,60,0,60,0,60,0,24,47,38,0,105,83,60,0,60,0,60,0,25,47,38,0,112,83,60,0,60,0,60,0,158,50,38,0,130,83,60,0,60,0,60,0,26,47,38,0,182,83,60,0,60,0,60,0,27,47,38,0,200,83,60,0,60,0,60,0,28,47,38,0,204,83,60,0,60,0,60,0,60,216,18,222,38,0,227,83,60,0,60,0,60,0,29,47,38,0,239,83,60,0,60,0,60,0,60,216,81,222,38,0,243,83,60,0,60,0,60,0,168,50,38,0,243,83,60,0,60,0,60,0,60,216,46,222,38,0,8,84,60,0,60,0,60,0,60,216,52,222,38,0,13,84,60,0,60,0,60,0,148,50,38,0,57,84,60,0,60,0,60,0,60,216,37,222,38,0,79,85,60,0,60,0,60,0,68,50,38,0,182,85,60,0,60,0,60,0,60,216,58,222,38,0,215,86,60,0,60,0,60,0,30,47,38,0,219,86,60,0,60,0,60,0,149,49,38,0,219,86,60,0,60,0,60,0,131,50,38,0,31,87,60,0,60,0,60,0,31,47,38,0,31,87,60,0,60,0,60,0,143,50,38,0,48,87,60,0,60,0,60,0,158,49,38,0,235,88,60,0,60,0,60,0,32,47,38,0,240,88,60,0,60,0,60,0,60,216,36,222,38,0,2,89,60,0,60,0,60,0,33,47,38,0,10,89,60,0,60,0,60,0,34,47,38,0,21,89,60,0,60,0,60,0,35,47,38,0,26,89,60,0,60,0,60,0,60,216,21,222,38,0,28,89,60,0,60,0,60,0,176,50,38,0,39,89,60,0,60,0,60,0,36,47,38,0,39,89,99,107,60,0,60,0,60,0,125,51,38,0,41,89,60,0,60,0,60,0,157,49,38,0,41,89,60,0,60,0,60,0,60,216,23,222,38,0,115,89,60,0,60,0,60,0,37,47,38,0,115,89,60,0,60,0,60,0,155,50,38,0,80,91,60,0,60,0,60,0,38,47,38,0,87,91,60,0,60,0,60,0,60,216,17,222,38,0,102,91,60,0,60,0,60,0,171,50,38,0,128,91,60,0,60,0,60,0,39,47,38,0,151,91,60,0,60,0,60,0,170,50,38,0,248,91,60,0,60,0,60,0,40,47,38,0,15,92,60,0,60,0,60,0,41,47,38,0,34,92,60,0,60,0,60,0,42,47,38,0,56,92,60,0,60,0,60,0,43,47,38,0,110,92,60,0,60,0,60,0,44,47,38,0,113,92,60,0,60,0,60,0,45,47,38,0,219,93,60,0,60,0,60,0,46,47,38,0,229,93,60,0,60,0,60,0,47,47,38,0,230,93,60,0,60,0,60,0,167,50,38,0,230,93,60,0,60,0,60,0,60,216,44,222,38,0,241,93,60,0,60,0,60,0,48,47,38,0,254,93,60,0,60,0,60,0,49,47,38,0,114,94,60,0,60,0,60,0,50,47,38,0,115,94,16,98,60,0,60,0,60,0,123,51,38,0,122,94,60,0,60,0,60,0,51,47,38,0,124,94,60,0,60,0,60,0,69,50,38,0,127,94,60,0,60,0,60,0,52,47,38,0,244,94,60,0,60,0,60,0,53,47,38,0,254,94,60,0,60,0,60,0,54,47,38,0,11,95,60,0,60,0,60,0,55,47,38,0,19,95,60,0,60,0,60,0,56,47,38,0,80,95,60,0,60,0,60,0,57,47,38,0,97,95,60,0,60,0,60,0,58,47,38,0,115,95,60,0,60,0,60,0,59,47,38,0,140,95,60,0,60,0,60,0,60,216,29,222,38,0,151,95,60,0,60,0,60,0,60,216,80,222,38,0,195,95,60,0,60,0,60,0,60,47,38,0,8,98,60,0,60,0,60,0,61,47,38,0,54,98,60,0,60,0,60,0,62,47,38,0,75,98,60,0,60,0,60,0,63,47,38,0,75,98,60,0,60,0,60,0,60,216,16,222,38,0,83,98,60,0,60,0,60,0,60,216,49,222,38,0,149,98,60,0,60,0,60,0,60,216,39,222,38,0,7,99,60,0,60,0,60,0,60,216,47,222,38,0,85,99,60,0,60,0,60,0,60,216,40,222,38,0,47,101,60,0,60,0,60,0,64,47,38,0,52,101,60,0,60,0,60,0,65,47,38,0,135,101,60,0,60,0,60,0,66,47,38,0,135,101,60,0,60,0,60,0,70,50,38,0,151,101,60,0,60,0,60,0,67,47,38,0,153,101,60,0,60,0,60,0,60,216,27,222,38,0,164,101,60,0,60,0,60,0,68,47,38,0,176,101,60,0,60,0,60,0,60,216,31,222,38,0,185,101,60,0,60,0,60,0,69,47,38,0,224,101,60,0,60,0,60,0,70,47,38,0,229,101,60,0,60,0,60,0,71,47,38,0,229,101,60,0,60,0,60,0,144,50,38,0,14,102,187,108,60,0,60,0,60,0,126,51,38,0,32,102,60,0,60,0,60,0,60,216,25,222,38,0,45,102,140,84,60,0,60,0,60,0,124,51,38,0,240,102,60,0,60,0,60,0,72,47,38,0,8,103,60,0,60,0,60,0,73,47,38,0,8,103,60,0,60,0,60,0,138,50,38,0,8,103,60,0,60,0,60,0,60,216,55,222,38,0,9,103,60,0,60,0,60,0,146,50,38,0,9,103,60,0,60,0,60,0,60,216,54,222,38,0,40,103,60,0,60,0,60,0,74,47,38,0,40,103,60,0,60,0,60,0,141,50,38,0,42,104,60,0,60,0,60,0,145,50,38,0,42,104,15,95,26,79,62,121,60,0,60,0,60,0,127,51,38,0,32,107,60,0,60,0,60,0,75,47,38,0,98,107,60,0,60,0,60,0,76,47,38,0,99,107,60,0,60,0,60,0,163,50,38,0,121,107,60,0,60,0,60,0,77,47,38,0,179,107,60,0,60,0,60,0,78,47,38,0,203,107,60,0,60,0,60,0,79,47,38,0,205,107,60,0,60,0,60,0,159,46,38,0,212,107,60,0,60,0,60,0,80,47,38,0,219,107,60,0,60,0,60,0,81,47,38,0,15,108,60,0,60,0,60,0,82,47,38,0,20,108,60,0,60,0,60,0,83,47,38,0,52,108,60,0,60,0,60,0,84,47,38,0,52,108,60,0,60,0,60,0,140,50,38,0,232,108,60,0,60,0,60,0,159,50,38,0,128,110,60,0,60,0,60,0,60,216,53,222,38,0,20,111,60,0,60,0,60,0,60,216,38,222,38,0,107,112,60,0,60,0,60,0,85,47,38,0,107,112,60,0,60,0,60,0,139,50,38,0,33,113,60,0,60,0,60,0,60,216,26,222,38,0,42,114,60,0,60,0,60,0,86,47,38,0,54,114,60,0,60,0,60,0,87,47,38,0,59,114,60,0,60,0,60,0,88,47,38,0,63,114,60,0,60,0,60,0,89,47,38,0,71,114,60,0,60,0,60,0,90,47,38,0,89,114,60,0,60,0,60,0,91,47,38,0,91,114,60,0,60,0,60,0,92,47,38,0,121,114,60,0,60,0,60,0,149,50,38,0,172,114,60,0,60,0,60,0,93,47,38,0,132,115,60,0,60,0,60,0,94,47,38,0,137,115,60,0,60,0,60,0,95,47,38,0,220,116,60,0,60,0,60,0,96,47,38,0,230,116,60,0,60,0,60,0,97,47,38,0,24,117,60,0,60,0,60,0,98,47,38,0,31,117,60,0,60,0,60,0,99,47,38,0,31,117,60,0,60,0,60,0,60,216,34,222,38,0,40,117,60,0,60,0,60,0,100,47,38,0,48,117,60,0,60,0,60,0,101,47,38,0,50,117,60,0,60,0,60,0,153,49,38,0,51,117,60,0,60,0,60,0,60,216,56,222,38,0,55,117,60,0,60,0,60,0,154,50,38,0,139,117,60,0,60,0,60,0,102,47,38,0,146,117,60,0,60,0,60,0,103,47,38,0,118,118,60,0,60,0,60,0,104,47,38,0,125,118,60,0,60,0,60,0,105,47,38,0,174,118,60,0,60,0,60,0,106,47,38,0,191,118,60,0,60,0,60,0,107,47,38,0,227,118,60,0,60,0,60,0,172,50,38,0,238,118,60,0,60,0,60,0,108,47,38,0,219,119,60,0,60,0,60,0,109,47,38,0,226,119,60,0,60,0,60,0,110,47,38,0,243,119,60,0,60,0,60,0,111,47,38,0,58,121,60,0,60,0,60,0,112,47,38,0,62,121,60,0,60,0,60,0,147,50,38,0,93,121,60,0,60,0,60,0,151,50,38,0,129,121,60,0,60,0,60,0,60,216,50,222,38,0,184,121,60,0,60,0,60,0,113,47,38,0,190,121,60,0,60,0,60,0,114,47,38,0,216,121,60,0,60,0,60,0,153,50,38,0,116,122,60,0,60,0,60,0,115,47,38,0,122,122,60,0,60,0,60,0,60,216,51,222,38,0,203,122,60,0,60,0,60,0,116,47,38,0,249,122,60,0,60,0,60,0,117,47,38,0,143,123,60,0,60,0,60,0,71,50,38,0,115,124,60,0,60,0,60,0,118,47,38,0,248,124,60,0,60,0,60,0,119,47,38,0,66,125,60,0,60,0,60,0,60,216,33,222,38,0,54,127,60,0,60,0,60,0,120,47,38,0,81,127,60,0,60,0,60,0,121,47,38,0,138,127,60,0,60,0,60,0,122,47,38,0,189,127,60,0,60,0,60,0,123,47,38,0,1,128,60,0,60,0,60,0,124,47,38,0,12,128,60,0,60,0,60,0,125,47,38,0,18,128,60,0,60,0,60,0,126,47,38,0,51,128,60,0,60,0,60,0,127,47,38,0,127,128,60,0,60,0,60,0,128,47,38,0,137,128,60,0,60,0,60,0,129,47,38,0,227,129,60,0,60,0,60,0,130,47,38,0,234,129,60,0,60,0,60,0,131,47,38,0,243,129,60,0,60,0,60,0,132,47,38,0,252,129,60,0,60,0,60,0,133,47,38,0,12,130,60,0,60,0,60,0,134,47,38,0,27,130,60,0,60,0,60,0,135,47,38,0,31,130,60,0,60,0,60,0,136,47,38,0,110,130,60,0,60,0,60,0,137,47,38,0,114,130,60,0,60,0,60,0,138,47,38,0,120,130,60,0,60,0,60,0,139,47,38,0,77,134,60,0,60,0,60,0,140,47,38,0,107,134,60,0,60,0,60,0,141,47,38,0,64,136,60,0,60,0,60,0,142,47,38,0,76,136,60,0,60,0,60,0,143,47,38,0,99,136,60,0,60,0,60,0,144,47,38,0,126,137,60,0,60,0,60,0,145,47,38,0,139,137,60,0,60,0,60,0,146,47,38,0,210,137,60,0,60,0,60,0,147,47,38,0,227,137,60,0,60,0,60,0,60,216,22,222,38,0,0,138,60,0,60,0,60,0,148,47,38,0,55,140,60,0,60,0,60,0,149,47,38,0,70,140,60,0,60,0,60,0,150,47,38,0,85,140,60,0,60,0,60,0,151,47,38,0,120,140,60,0,60,0,60,0,152,47,38,0,157,140,60,0,60,0,60,0,153,47,38,0,161,140,60,0,60,0,60,0,150,50,38,0,169,140,60,0,60,0,60,0,60,216,35,222,38,0,199,140,60,0,60,0,60,0,174,50,38,0,100,141,60,0,60,0,60,0,154,47,38,0,112,141,60,0,60,0,60,0,155,47,38,0,112,141,60,0,60,0,60,0,60,216,48,222,38,0,179,141,60,0,60,0,60,0,156,47,38,0,171,142,60,0,60,0,60,0,157,47,38,0,202,142,60,0,60,0,60,0,158,47,38,0,155,143,60,0,60,0,60,0,159,47,38,0,176,143,60,0,60,0,60,0,160,47,38,0,181,143,60,0,60,0,60,0,161,47,38,0,74,144,60,0,60,0,60,0,60,216,43,222,38,0,105,144,60,0,60,0,60,0,156,50,38,0,145,144,60,0,60,0,60,0,162,47,38,0,73,145,60,0,60,0,60,0,163,47,38,0,77,145,60,0,60,0,60,0,60,216,59,222,38,0,198,145,60,0,60,0,60,0,164,47,38,0,204,145,60,0,60,0,60,0,165,47,38,0,209,145,60,0,60,0,60,0,166,47,38,0,209,145,60,0,60,0,60,0,142,50,38,0,119,149,60,0,60,0,60,0,167,47,38,0,128,149,60,0,60,0,60,0,168,47,38,0,28,150,60,0,60,0,60,0,169,47,38,0,182,150,60,0,60,0,60,0,170,47,38,0,185,150,60,0,60,0,60,0,171,47,38,0,232,150,60,0,60,0,60,0,172,47,38,0,81,151,60,0,60,0,60,0,173,47,38,0,94,151,60,0,60,0,60,0,174,47,38,0,98,151,60,0,60,0,60,0,175,47,38,0,105,151,60,0,60,0,60,0,176,47,38,0,203,151,60,0,60,0,60,0,177,47,38,0,237,151,60,0,60,0,60,0,178,47,38,0,243,151,60,0,60,0,60,0,179,47,38,0,1,152,60,0,60,0,60,0,180,47,38,0,5,152,60,0,60,0,60,0,160,50,38,0,168,152,60,0,60,0,60,0,181,47,38,0,219,152,60,0,60,0,60,0,182,47,38,0,223,152,60,0,60,0,60,0,183,47,38,0,150,153,60,0,60,0,60,0,184,47,38,0,153,153,60,0,60,0,60,0,185,47,38,0,172,153,60,0,60,0,60,0,186,47,38,0,168,154,60,0,60,0,60,0,187,47,38,0,216,154,60,0,60,0,60,0,188,47,38,0,223,154,60,0,60,0,60,0,189,47,38,0,37,155,60,0,60,0,60,0,190,47,38,0,47,155,60,0,60,0,60,0,191,47,38,0,50,155,60,0,60,0,60,0,192,47,38,0,60,155,60,0,60,0,60,0,193,47,38,0,90,155,60,0,60,0,60,0,194,47,38,0,229,156,60,0,60,0,60,0,195,47,38,0,117,158,60,0,60,0,60,0,196,47,38,0,127,158,60,0,60,0,60,0,197,47,38,0,165,158,60,0,60,0,60,0,198,47,38,0,187,158,60,0,60,0,60,0,199,47,38,0,195,158,60,0,60,0,60,0,200,47,38,0,205,158,60,0,60,0,60,0,201,47,38,0,209,158,60,0,60,0,60,0,202,47,38,0,249,158,60,0,60,0,60,0,203,47,38,0,253,158,60,0,60,0,60,0,204,47,38,0,14,159,60,0,60,0,60,0,205,47,38,0,19,159,60,0,60,0,60,0,206,47,38,0,32,159,60,0,60,0,60,0,207,47,38,0,59,159,60,0,60,0,60,0,208,47,38,0,74,159,60,0,60,0,60,0,209,47,38,0,82,159,60,0,60,0,60,0,210,47,38,0,141,159,60,0,60,0,60,0,211,47,38,0,156,159,60,0,60,0,60,0,212,47,38,0,159,159,60,0,60,0,60,0,243,46,38,0,160,159,60,0,60,0,60,0,213,47,0,0,2,0,51,0,60,0,95,0,1,0,170,170,170,170,222,137,1,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,148,106,1,0,148,106,1,0,116,114,1,0,116,114,1,0,48,119,1,0,48,119,1,0,146,133,1,0,146,133,1,0,194,137,1,0,25,0,0,0,17,0,0,0,5,0,0,0,0,0,0,96,127,0,0,123,99,0,118,123,127,0,0,126,224,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,0,251,252,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,254,255,50,105,114,84,1,0,192,8,122,21,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,53,1,61,1,69,1,77,1,85,1,93,1,101,1,109,1,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,21,2,29,2,37,2,45,2,53,2,61,2,69,2,77,2,85,2,93,2,101,2,109,2,117,2,125,2,133,2,141,2,149,2,157,2,164,2,172,2,180,2,188,2,196,2,204,2,212,2,220,2,228,2,236,2,244,2,252,2,4,3,12,3,20,3,28,3,36,3,44,3,52,3,60,3,68,3,76,3,84,3,92,3,100,3,108,3,116,3,124,3,132,3,140,3,148,3,156,3,164,3,172,3,180,3,188,3,196,3,204,3,212,3,220,3,228,3,236,3,244,3,252,3,4,4,12,4,20,4,28,4,36,4,44,4,52,4,60,4,68,4,76,4,84,4,92,4,100,4,108,4,116,4,124,4,132,4,139,4,147,4,155,4,163,4,171,4,179,4,187,4,195,4,203,4,211,4,219,4,227,4,235,4,243,4,251,4,3,5,11,5,19,5,27,5,35,5,43,5,51,5,59,5,67,5,75,5,83,5,91,5,99,5,107,5,115,5,123,5,131,5,139,5,147,5,155,5,163,5,171,5,179,5,187,5,195,5,203,5,211,5,219,5,227,5,235,5,243,5,251,5,2,6,10,6,18,6,26,6,32,6,40,6,47,6,55,6,63,6,71,6,79,6,86,6,94,6,102,6,110,6,118,6,126,6,134,6,142,6,150,6,158,6,166,6,174,6,182,6,190,6,198,6,206,6,214,6,222,6,230,6,238,6,246,6,254,6,6,7,14,7,22,7,30,7,38,7,46,7,54,7,62,7,70,7,78,7,86,7,94,7,102,7,108,7,116,7,124,7,131,7,139,7,147,7,154,7,162,7,170,7,178,7,186,7,194,7,202,7,210,7,218,7,226,7,234,7,242,7,250,7,2,8,10,8,18,8,26,8,34,8,42,8,50,8,58,8,66,8,74,8,82,8,90,8,98,8,106,8,114,8,122,8,130,8,138,8,146,8,154,8,162,8,170,8,178,8,185,8,193,8,201,8,209,8,217,8,225,8,233,8,240,8,248,8,0,9,8,9,16,9,24,9,32,9,40,9,48,9,56,9,64,9,72,9,80,9,88,9,96,9,104,9,112,9,120,9,128,9,136,9,144,9,152,9,160,9,168,9,176,9,184,9,192,9,200,9,208,9,216,9,224,9,232,9,240,9,248,9,0,10,8,10,16,10,24,10,32,10,40,10,48,10,56,10,64,10,72,10,80,10,88,10,96,10,104,10,112,10,120,10,128,10,136,10,144,10,152,10,160,10,168,10,176,10,184,10,192,10,200,10,208,10,216,10,224,10,232,10,240,10,248,10,0,11,8,11,16,11,24,11,32,11,40,11,48,11,56,11,64,11,72,11,80,11,88,11,96,11,104,11,112,11,120,11,128,11,136,11,144,11,152,11,160,11,168,11,176,11,184,11,192,11,200,11,208,11,216,11,224,11,232,11,240,11,248,11,0,12,8,12,16,12,24,12,32,12,40,12,48,12,56,12,64,12,72,12,80,12,88,12,96,12,104,12,112,12,120,12,128,12,136,12,144,12,152,12,160,12,168,12,176,12,184,12,192,12,200,12,208,12,216,12,224,12,232,12,240,12,48,0,48,0,48,0,48,0,248,12,0,13,8,13,16,13,24,13,32,13,40,13,48,13,56,13,64,13,72,13,80,13,88,13,96,13,104,13,112,13,120,13,128,13,136,13,144,13,152,13,160,13,168,13,176,13,184,13,192,13,200,13,208,13,216,13,224,13,232,13,240,13,248,13,0,14,6,14,14,14,22,14,30,14,38,14,46,14,54,14,62,14,70,14,78,14,86,14,94,14,101,14,109,14,117,14,125,14,133,14,141,14,149,14,157,14,165,14,173,14,181,14,189,14,197,14,205,14,213,14,221,14,229,14,237,14,245,14,253,14,5,15,13,15,21,15,29,15,37,15,45,15,53,15,61,15,69,15,77,15,85,15,93,15,101,15,109,15,117,15,125,15,133,15,141,15,149,15,157,15,165,15,173,15,181,15,189,15,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,5,16,13,16,48,0,48,0,48,0,48,0,21,16,29,16,37,16,45,16,53,16,61,16,69,16,77,16,48,0,48,0,84,16,92,16,100,16,108,16,116,16,124,16,132,16,140,16,148,16,156,16,164,16,172,16,180,16,188,16,196,16,204,16,212,16,214,16,222,16,230,16,238,16,246,16,254,16,6,17,14,17,22,17,30,17,38,17,46,17,54,17,62,17,70,17,78,17,86,17,94,17,102,17,110,17,118,17,126,17,134,17,142,17,150,17,158,17,166,17,174,17,182,17,190,17,198,17,206,17,214,17,222,17,230,17,238,17,246,17,254,17,6,18,14,18,22,18,48,0,48,0,48,0,48,0,48,0,48,0,25,18,33,18,41,18,49,18,57,18,59,18,67,18,75,18,83,18,91,18,99,18,107,18,115,18,123,18,131,18,139,18,147,18,155,18,163,18,171,18,179,18,187,18,195,18,203,18,211,18,48,0,217,18,225,18,233,18,241,18,249,18,1,19,9,19,12,19,20,19,28,19,36,19,44,19,52,19,60,19,68,19,48,0,74,19,82,19,90,19,98,19,106,19,114,19,122,19,130,19,138,19,146,19,154,19,162,19,170,19,178,19,186,19,48,0,48,0,48,0,193,19,201,19,209,19,217,19,225,19,233,19,241,19,249,19,1,20,9,20,48,0,48,0,17,20,25,20,33,20,41,20,49,20,57,20,65,20,73,20,81,20,89,20,97,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,105,21,161,0,48,0,48,0,153,0,153,0,153,0,113,21,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,105,20,113,20,121,20,129,20,137,20,145,20,153,20,161,20,169,20,177,20,185,20,193,20,201,20,209,20,217,20,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,225,20,233,20,241,20,249,20,1,21,9,21,17,21,25,21,33,21,41,21,49,21,57,21,65,21,73,21,81,21,89,21,97,21,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,36,0,202,193,36,0,202,226,36,0,202,3,37,0,202,36,37,0,202,69,37,0,202,102,37,0,202,135,37,0,202,168,37,0,202,201,37,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,35,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,34,36,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,36,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,136,5,5,0,138,192,0,0,0,5,5,0,139,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,220,5,5,0,158,5,5,0,156,5,5,0,159,5,5,0,157,5,5,12,220,5,5,4,199,5,5,20,220,5,5,18,220,5,5,3,199,5,5,2,199,192,0,0,0,192,0,0,0,5,5,98,199,5,5,97,199,5,5,96,199,192,0,0,0,5,5,99,199,5,5,95,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,199,5,5,223,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,160,192,0,0,0,5,5,5,199,5,5,21,220,192,0,0,0,5,5,6,199,5,5,40,220,5,5,135,200,5,5,144,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,161,5,5,7,199,192,0,0,0,5,5,100,199,5,5,41,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,220,5,5,0,140,192,0,0,0,5,5,0,163,192,0,0,0,5,5,13,220,5,5,0,164,192,0,0,0,192,0,0,0,5,5,8,199,192,0,0,0,5,5,101,199,5,5,103,199,5,5,102,199,192,0,0,0,192,0,0,0,5,5,224,199,5,5,225,199,192,0,0,0,192,0,0,0,5,5,157,201,192,0,0,0,5,5,172,204,5,5,0,137,192,0,0,0,192,0,0,0,5,5,7,220,5,5,0,141,5,5,0,166,5,5,0,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,206,5,5,219,226,192,0,0,0,192,0,0,0,5,5,68,210,5,5,19,232,5,5,20,232,192,0,0,0,5,5,0,142,192,0,0,0,5,5,10,199,192,0,0,0,192,0,0,0,5,5,159,201,5,5,0,143,5,5,14,220,5,5,0,167,192,0,0,0,192,0,0,0,5,5,11,199,5,5,13,199,5,5,22,220,5,5,14,199,5,5,12,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,199,192,0,0,0,5,5,160,201,192,0,0,0,192,0,0,0,5,5,161,201,5,5,27,203,192,0,0,0,5,5,0,168,5,5,15,199,192,0,0,0,5,5,228,199,5,5,230,199,5,5,229,199,192,0,0,0,5,5,136,200,192,0,0,0,192,0,0,0,5,5,162,201,5,5,163,201,5,5,28,203,5,5,29,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,204,192,0,0,0,192,0,0,0,5,5,21,232,192,0,0,0,192,0,0,0,5,5,73,248,5,5,0,144,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,199,5,5,16,199,5,5,23,220,5,5,18,199,5,5,24,199,192,0,0,0,5,5,19,199,5,5,20,199,5,5,25,220,5,5,24,220,5,5,22,199,5,5,23,199,192,0,0,0,5,5,21,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,199,5,5,107,199,5,5,108,199,5,5,109,199,5,5,105,199,5,5,112,199,5,5,47,220,192,0,0,0,5,5,43,220,5,5,46,220,5,5,113,199,5,5,129,199,192,0,0,0,5,5,45,220,192,0,0,0,5,5,110,199,5,5,111,199,5,5,104,199,192,0,0,0,192,0,0,0,5,5,42,220,5,5,44,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,199,5,5,83,220,5,5,240,199,5,5,244,199,5,5,93,220,5,5,81,220,5,5,241,199,5,5,85,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,199,192,0,0,0,5,5,245,199,192,0,0,0,5,5,231,199,5,5,84,220,5,5,246,199,5,5,88,220,192,0,0,0,5,5,92,220,5,5,89,220,192,0,0,0,192,0,0,0,5,5,86,220,5,5,232,199,5,5,234,199,5,5,247,199,192,0,0,0,5,5,236,199,5,5,78,220,5,5,239,199,5,5,237,199,5,5,238,199,5,5,94,220,5,5,91,220,5,5,82,220,5,5,235,199,192,0,0,0,192,0,0,0,5,5,79,220,5,5,233,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,220,5,5,200,220,192,0,0,0,5,5,158,200,5,5,145,200,192,0,0,0,192,0,0,0,5,5,201,220,5,5,142,200,192,0,0,0,5,5,160,200,192,0,0,0,5,5,150,200,192,0,0,0,5,5,149,200,5,5,189,220,5,5,153,200,5,5,148,200,5,5,194,220,5,5,202,220,192,0,0,0,5,5,198,220,192,0,0,0,5,5,151,200,192,0,0,0,192,0,0,0,5,5,154,200,5,5,139,200,5,5,163,200,5,5,191,220,192,0,0,0,192,0,0,0,5,5,156,221,5,5,137,200,5,5,159,200,5,5,138,200,5,5,146,200,5,5,147,200,5,5,196,220,5,5,192,220,5,5,152,200,5,5,144,200,5,5,188,220,5,5,140,200,5,5,199,220,5,5,161,200,5,5,164,200,5,5,143,200,5,5,156,200,5,5,162,200,5,5,141,200,5,5,197,220,5,5,157,200,5,5,203,220,5,5,190,220,5,5,155,200,5,5,193,220,192,0,0,0,192,0,0,0,5,5,195,220,192,0,0,0,5,5,177,201,5,5,158,221,5,5,170,221,5,5,169,201,192,0,0,0,5,5,171,221,5,5,164,201,5,5,174,201,192,0,0,0,192,0,0,0,5,5,167,201,5,5,152,221,5,5,175,201,5,5,151,221,5,5,155,221,5,5,162,221,5,5,160,221,5,5,183,201,5,5,178,201,5,5,146,221,5,5,148,221,5,5,180,201,5,5,168,201,5,5,149,221,5,5,161,221,5,5,168,221,5,5,173,201,5,5,154,221,5,5,147,221,5,5,172,201,5,5,150,221,5,5,176,201,5,5,153,221,192,0,0,0,5,5,171,201,192,0,0,0,5,5,166,201,192,0,0,0,5,5,181,201,5,5,163,221,5,5,182,201,5,5,167,221,192,0,0,0,5,5,165,221,5,5,169,221,5,5,179,201,5,5,157,221,5,5,145,221,192,0,0,0,5,5,159,221,5,5,170,201,5,5,164,221,5,5,165,201,5,5,166,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,203,5,5,32,203,192,0,0,0,192,0,0,0,5,5,251,222,5,5,5,223,192,0,0,0,5,5,31,203,5,5,39,203,5,5,51,203,192,0,0,0,5,5,11,223,5,5,9,223,5,5,4,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,203,5,5,10,223,5,5,254,222,5,5,47,203,5,5,38,203,5,5,46,203,5,5,249,222,192,0,0,0,5,5,7,223,192,0,0,0,5,5,252,222,5,5,42,203,5,5,253,222,192,0,0,0,5,5,248,222,5,5,49,203,5,5,36,203,5,5,45,203,5,5,35,203,192,0,0,0,5,5,250,222,5,5,255,222,192,0,0,0,5,5,8,223,5,5,43,203,5,5,40,203,5,5,3,223,5,5,48,203,5,5,6,223,5,5,2,223,5,5,37,203,5,5,50,203,5,5,41,203,5,5,34,203,5,5,30,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,223,192,0,0,0,5,5,199,204,5,5,177,204,192,0,0,0,5,5,193,204,192,0,0,0,5,5,198,204,5,5,198,224,5,5,197,224,5,5,202,224,5,5,203,224,5,5,180,204,192,0,0,0,5,5,189,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,204,192,0,0,0,5,5,190,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,224,5,5,183,204,5,5,192,224,192,0,0,0,5,5,204,204,192,0,0,0,5,5,195,204,5,5,174,204,5,5,175,204,5,5,211,224,5,5,138,206,192,0,0,0,5,5,188,204,5,5,187,204,5,5,193,224,5,5,191,204,5,5,235,226,5,5,182,204,5,5,204,224,5,5,197,204,5,5,196,204,5,5,186,204,5,5,196,224,5,5,205,224,192,0,0,0,5,5,190,224,5,5,185,204,5,5,206,224,5,5,194,204,5,5,194,224,5,5,176,204,192,0,0,0,5,5,179,204,5,5,178,204,5,5,207,224,5,5,192,204,5,5,181,204,5,5,201,204,5,5,203,204,5,5,201,224,5,5,200,204,192,0,0,0,5,5,209,224,5,5,195,224,5,5,210,224,192,0,0,0,5,5,199,224,192,0,0,0,5,5,208,224,192,0,0,0,5,5,200,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,226,5,5,231,226,192,0,0,0,5,5,126,206,192,0,0,0,5,5,236,226,5,5,242,226,5,5,125,206,5,5,229,226,5,5,129,206,5,5,233,226,5,5,226,226,5,5,127,206,5,5,230,226,5,5,132,206,5,5,137,206,192,0,0,0,5,5,247,226,192,0,0,0,5,5,225,226,192,0,0,0,5,5,133,206,192,0,0,0,5,5,246,226,192,0,0,0,192,0,0,0,5,5,128,206,5,5,232,226,5,5,124,206,5,5,227,226,5,5,223,226,5,5,237,226,5,5,224,226,5,5,222,226,5,5,234,226,5,5,240,226,5,5,241,226,5,5,130,206,192,0,0,0,192,0,0,0,5,5,101,229,5,5,238,226,5,5,221,226,5,5,239,226,192,0,0,0,5,5,140,206,5,5,244,226,5,5,139,206,5,5,220,226,192,0,0,0,5,5,228,226,5,5,245,226,5,5,135,206,5,5,134,206,5,5,131,206,5,5,136,206,192,0,0,0,192,0,0,0,5,5,122,206,192,0,0,0,192,0,0,0,5,5,123,206,192,0,0,0,192,0,0,0,5,5,110,208,192,0,0,0,5,5,104,229,5,5,97,229,192,0,0,0,5,5,107,208,192,0,0,0,5,5,105,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,229,5,5,98,229,5,5,106,208,5,5,99,229,192,0,0,0,192,0,0,0,5,5,109,208,5,5,103,229,192,0,0,0,5,5,93,229,5,5,92,229,5,5,111,208,192,0,0,0,5,5,112,208,5,5,108,208,5,5,113,208,5,5,91,229,5,5,102,229,5,5,100,229,5,5,94,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,208,5,5,96,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,210,5,5,69,210,5,5,25,232,5,5,78,210,5,5,31,232,5,5,34,232,5,5,71,210,5,5,72,210,5,5,28,232,5,5,70,210,5,5,37,232,5,5,76,210,5,5,38,232,192,0,0,0,5,5,33,232,5,5,77,210,192,0,0,0,5,5,22,232,5,5,74,210,5,5,23,232,192,0,0,0,5,5,32,232,5,5,30,232,192,0,0,0,5,5,26,232,5,5,73,210,5,5,24,232,5,5,79,210,5,5,29,232,5,5,36,232,5,5,27,232,5,5,35,232,192,0,0,0,192,0,0,0,5,5,18,212,5,5,15,212,192,0,0,0,5,5,16,212,192,0,0,0,5,5,210,234,5,5,202,234,5,5,14,212,5,5,11,212,5,5,203,234,192,0,0,0,192,0,0,0,5,5,13,212,5,5,206,234,192,0,0,0,5,5,208,234,192,0,0,0,192,0,0,0,5,5,215,234,192,0,0,0,192,0,0,0,5,5,214,234,5,5,209,234,5,5,10,212,5,5,201,234,5,5,8,212,5,5,204,234,5,5,19,212,5,5,207,234,192,0,0,0,5,5,211,234,5,5,12,212,5,5,9,212,5,5,213,234,5,5,212,234,5,5,17,212,192,0,0,0,5,5,205,234,192,0,0,0,5,5,144,213,5,5,63,237,192,0,0,0,5,5,60,237,5,5,145,213,192,0,0,0,5,5,143,213,192,0,0,0,5,5,67,237,5,5,64,237,5,5,57,237,5,5,142,213,192,0,0,0,5,5,146,213,5,5,58,237,5,5,141,213,5,5,149,213,5,5,61,237,5,5,62,237,5,5,147,213,5,5,148,213,5,5,68,237,5,5,65,237,5,5,66,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,215,5,5,195,239,5,5,26,215,5,5,192,239,5,5,28,215,5,5,30,215,192,0,0,0,5,5,193,239,5,5,27,215,192,0,0,0,5,5,194,239,192,0,0,0,5,5,191,239,192,0,0,0,192,0,0,0,5,5,71,216,5,5,2,242,5,5,72,216,5,5,254,241,192,0,0,0,5,5,255,241,5,5,253,241,5,5,252,241,192,0,0,0,192,0,0,0,5,5,3,242,5,5,70,216,192,0,0,0,192,0,0,0,5,5,214,243,5,5,215,243,192,0,0,0,5,5,59,237,5,5,213,243,5,5,73,216,5,5,11,218,5,5,71,245,5,5,72,245,192,0,0,0,5,5,254,218,5,5,255,218,5,5,149,247,5,5,148,247,5,5,84,219,5,5,83,219,5,5,224,248,192,0,0,0,5,5,0,145,5,5,0,169,5,5,26,199,192,0,0,0,5,5,25,199,5,5,115,199,5,5,114,199,5,5,250,199,5,5,249,199,5,5,251,199,5,5,248,199,192,0,0,0,5,5,166,200,5,5,165,200,5,5,167,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,201,192,0,0,0,5,5,184,201,5,5,186,201,192,0,0,0,5,5,52,203,192,0,0,0,5,5,0,127,5,5,212,224,5,5,0,128,5,5,141,206,5,5,0,130,5,5,0,129,5,5,106,229,192,0,0,0,5,5,0,131,5,5,20,212,5,5,0,132,192,0,0,0,5,5,0,146,192,0,0,0,5,5,27,199,5,5,252,199,5,5,187,201,192,0,0,0,5,5,0,147,5,5,30,199,5,5,28,199,5,5,29,199,192,0,0,0,192,0,0,0,5,5,253,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,200,5,5,189,201,5,5,188,201,5,5,190,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,220,192,0,0,0,5,5,116,199,5,5,117,199,192,0,0,0,192,0,0,0,5,5,254,199,192,0,0,0,5,5,204,220,192,0,0,0,5,5,54,203,5,5,53,203,5,5,214,224,5,5,213,224,5,5,142,206,192,0,0,0,5,5,31,199,5,5,26,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,221,192,0,0,0,5,5,55,203,192,0,0,0,5,5,208,204,192,0,0,0,5,5,206,204,5,5,207,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,215,192,0,0,0,5,5,118,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,199,5,5,95,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,200,5,5,170,200,192,0,0,0,5,5,205,220,192,0,0,0,192,0,0,0,5,5,173,221,5,5,191,201,5,5,174,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,224,5,5,217,224,5,5,211,204,192,0,0,0,5,5,218,224,192,0,0,0,5,5,215,224,5,5,212,204,5,5,210,204,5,5,209,204,5,5,219,224,192,0,0,0,5,5,248,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,229,192,0,0,0,192,0,0,0,5,5,39,232,5,5,216,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,213,5,5,33,215,5,5,196,239,192,0,0,0,5,5,0,148,5,5,0,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,206,5,5,115,208,192,0,0,0,5,5,21,212,192,0,0,0,5,5,8,220,5,5,32,199,192,0,0,0,5,5,121,199,5,5,119,199,5,5,120,199,192,0,0,0,192,0,0,0,5,5,192,201,192,0,0,0,192,0,0,0,5,5,0,149,5,5,0,150,192,0,0,0,5,5,0,170,192,0,0,0,192,0,0,0,5,5,33,199,5,5,34,199,5,5,35,199,5,5,97,220,5,5,122,199,192,0,0,0,5,5,48,220,192,0,0,0,5,5,5,200,192,0,0,0,5,5,98,220,5,5,3,200,5,5,4,200,5,5,96,220,192,0,0,0,192,0,0,0,5,5,6,200,5,5,2,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,220,5,5,3,203,5,5,207,220,192,0,0,0,192,0,0,0,5,5,208,220,192,0,0,0,192,0,0,0,5,5,172,200,5,5,171,200,192,0,0,0,192,0,0,0,5,5,175,200,5,5,173,200,5,5,174,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,201,192,0,0,0,5,5,197,201,5,5,179,221,5,5,176,221,5,5,177,221,192,0,0,0,5,5,175,221,5,5,199,201,5,5,195,201,5,5,194,201,192,0,0,0,5,5,196,201,5,5,193,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,201,192,0,0,0,5,5,57,203,5,5,13,223,192,0,0,0,5,5,178,221,5,5,62,203,192,0,0,0,5,5,14,223,5,5,58,203,5,5,61,203,5,5,60,203,5,5,59,203,5,5,56,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,224,192,0,0,0,5,5,215,204,5,5,225,224,5,5,213,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,224,5,5,216,204,5,5,214,204,5,5,217,204,5,5,223,224,5,5,224,224,192,0,0,0,5,5,220,224,5,5,226,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,208,5,5,144,206,5,5,249,226,5,5,251,226,5,5,250,226,5,5,252,226,5,5,145,206,192,0,0,0,192,0,0,0,5,5,116,208,192,0,0,0,5,5,117,208,5,5,118,208,192,0,0,0,5,5,81,210,5,5,41,232,192,0,0,0,5,5,40,232,5,5,42,232,5,5,43,232,5,5,82,210,192,0,0,0,5,5,80,210,5,5,217,234,5,5,218,234,5,5,23,212,5,5,22,212,5,5,48,236,192,0,0,0,192,0,0,0,5,5,151,213,5,5,152,213,5,5,153,213,5,5,155,213,5,5,69,237,5,5,70,237,5,5,154,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,215,192,0,0,0,5,5,35,215,192,0,0,0,192,0,0,0,5,5,73,245,5,5,151,247,5,5,150,247,5,5,225,248,192,0,0,0,5,5,0,151,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,199,5,5,123,199,192,0,0,0,192,0,0,0,5,5,7,200,192,0,0,0,192,0,0,0,5,5,99,220,192,0,0,0,192,0,0,0,5,5,177,200,5,5,178,200,5,5,176,200,5,5,179,200,5,5,209,220,5,5,210,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,201,5,5,180,221,192,0,0,0,5,5,201,201,192,0,0,0,5,5,15,223,5,5,66,203,5,5,16,223,5,5,65,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,203,192,0,0,0,5,5,64,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,206,5,5,254,226,192,0,0,0,5,5,149,206,5,5,253,226,5,5,79,207,5,5,148,206,5,5,147,206,192,0,0,0,5,5,122,208,192,0,0,0,5,5,121,208,5,5,120,208,5,5,83,210,192,0,0,0,192,0,0,0,5,5,86,210,5,5,87,210,5,5,85,210,192,0,0,0,5,5,84,210,192,0,0,0,192,0,0,0,5,5,219,234,192,0,0,0,5,5,220,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,237,5,5,156,213,5,5,71,237,192,0,0,0,5,5,36,215,5,5,4,242,5,5,74,216,192,0,0,0,5,5,74,245,5,5,158,218,192,0,0,0,5,5,0,171,5,5,36,199,5,5,27,220,192,0,0,0,5,5,37,199,5,5,38,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,199,5,5,126,199,192,0,0,0,5,5,8,200,5,5,211,220,5,5,181,221,5,5,182,221,192,0,0,0,5,5,67,203,5,5,228,224,5,5,151,206,5,5,150,206,5,5,109,229,5,5,108,229,192,0,0,0,192,0,0,0,5,5,0,152,5,5,39,199,5,5,127,199,192,0,0,0,5,5,152,206,5,5,9,220,192,0,0,0,5,5,49,220,5,5,128,199,192,0,0,0,5,5,101,220,5,5,10,200,5,5,9,200,5,5,100,220,5,5,180,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,204,192,0,0,0,192,0,0,0,5,5,255,226,192,0,0,0,5,5,88,210,5,5,221,234,5,5,24,212,192,0,0,0,192,0,0,0,5,5,197,239,192,0,0,0,192,0,0,0,5,5,149,246,192,0,0,0,5,5,40,199,192,0,0,0,192,0,0,0,5,5,183,221,5,5,17,223,5,5,155,206,5,5,153,206,5,5,154,206,5,5,0,153,192,0,0,0,5,5,0,172,192,0,0,0,5,5,43,199,192,0,0,0,5,5,42,199,5,5,41,199,5,5,131,199,5,5,130,199,192,0,0,0,5,5,50,220,5,5,102,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,201,5,5,203,201,5,5,205,201,5,5,204,201,192,0,0,0,192,0,0,0,5,5,68,203,192,0,0,0,192,0,0,0,5,5,123,208,192,0,0,0,5,5,0,154,192,0,0,0,5,5,44,199,192,0,0,0,5,5,133,199,5,5,132,199,192,0,0,0,5,5,212,220,192,0,0,0,192,0,0,0,5,5,207,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,220,192,0,0,0,5,5,135,199,5,5,134,199,5,5,11,200,5,5,12,200,5,5,213,220,5,5,181,200,192,0,0,0,5,5,182,200,192,0,0,0,5,5,208,201,5,5,209,201,5,5,210,201,192,0,0,0,5,5,69,203,5,5,18,223,192,0,0,0,192,0,0,0,5,5,219,204,192,0,0,0,192,0,0,0,5,5,10,220,192,0,0,0,5,5,45,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,220,5,5,215,220,192,0,0,0,192,0,0,0,5,5,184,221,192,0,0,0,5,5,185,221,192,0,0,0,5,5,20,223,5,5,19,223,5,5,22,223,5,5,21,223,5,5,70,203,192,0,0,0,5,5,2,227,5,5,221,204,5,5,229,224,5,5,220,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,229,5,5,124,208,192,0,0,0,5,5,111,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,234,5,5,25,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,213,192,0,0,0,5,5,75,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,220,192,0,0,0,5,5,136,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,155,5,5,0,173,5,5,47,199,5,5,46,199,192,0,0,0,5,5,48,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,201,192,0,0,0,5,5,211,201,5,5,213,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,204,192,0,0,0,5,5,198,239,5,5,92,217,5,5,0,174,5,5,138,199,5,5,153,199,5,5,148,199,192,0,0,0,5,5,143,199,5,5,142,199,5,5,149,199,5,5,147,199,5,5,140,199,5,5,154,199,5,5,141,199,5,5,137,199,5,5,152,199,5,5,151,199,5,5,150,199,5,5,139,199,192,0,0,0,5,5,146,199,192,0,0,0,192,0,0,0,5,5,145,199,192,0,0,0,192,0,0,0,5,5,155,199,5,5,144,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,200,192,0,0,0,5,5,24,200,5,5,20,200,192,0,0,0,5,5,26,200,5,5,104,220,5,5,23,200,5,5,13,200,5,5,16,200,5,5,19,200,5,5,15,200,5,5,22,200,5,5,25,200,5,5,14,200,5,5,17,200,5,5,21,200,5,5,27,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,220,5,5,221,220,192,0,0,0,5,5,195,200,5,5,222,220,5,5,183,200,5,5,185,200,5,5,209,200,5,5,204,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,220,5,5,223,220,5,5,187,200,5,5,189,200,5,5,228,220,5,5,196,200,5,5,218,220,5,5,208,200,5,5,210,200,5,5,184,200,5,5,201,200,192,0,0,0,5,5,216,220,5,5,207,200,192,0,0,0,5,5,192,200,192,0,0,0,5,5,202,200,5,5,203,200,5,5,217,220,5,5,200,200,5,5,198,200,192,0,0,0,5,5,199,200,5,5,205,200,5,5,225,220,5,5,186,200,192,0,0,0,5,5,206,200,5,5,227,220,5,5,194,200,5,5,191,200,192,0,0,0,5,5,220,220,5,5,190,200,5,5,230,220,5,5,193,200,192,0,0,0,5,5,197,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,200,5,5,226,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,221,5,5,201,221,5,5,231,201,5,5,204,221,5,5,206,221,5,5,195,221,5,5,198,221,5,5,205,221,5,5,232,201,192,0,0,0,192,0,0,0,5,5,192,221,5,5,196,221,192,0,0,0,192,0,0,0,5,5,200,221,5,5,37,223,5,5,227,201,5,5,41,223,5,5,214,201,5,5,197,221,5,5,215,201,5,5,228,201,5,5,221,201,5,5,217,201,192,0,0,0,5,5,193,221,5,5,220,201,5,5,225,201,5,5,234,201,5,5,194,221,5,5,187,221,5,5,219,201,5,5,188,221,5,5,190,221,192,0,0,0,5,5,222,201,192,0,0,0,5,5,224,201,5,5,186,221,5,5,191,221,192,0,0,0,192,0,0,0,5,5,233,201,5,5,229,201,5,5,199,221,5,5,235,201,192,0,0,0,5,5,226,201,5,5,189,221,5,5,223,201,192,0,0,0,192,0,0,0,5,5,218,201,5,5,216,201,192,0,0,0,5,5,203,221,192,0,0,0,5,5,230,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,223,5,5,24,223,5,5,39,223,192,0,0,0,192,0,0,0,5,5,26,223,5,5,78,203,5,5,92,203,5,5,74,203,5,5,91,203,5,5,83,203,5,5,88,203,5,5,72,203,5,5,25,223,5,5,31,223,5,5,87,203,5,5,43,223,5,5,89,203,192,0,0,0,5,5,79,203,192,0,0,0,192,0,0,0,5,5,33,223,5,5,30,223,5,5,77,203,192,0,0,0,5,5,23,223,5,5,90,203,5,5,38,223,5,5,82,203,5,5,40,223,5,5,93,203,5,5,73,203,5,5,84,203,5,5,81,203,5,5,28,223,5,5,85,203,5,5,34,223,5,5,35,223,5,5,80,203,5,5,86,203,5,5,76,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,203,5,5,27,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,223,192,0,0,0,5,5,249,224,5,5,235,204,5,5,231,224,192,0,0,0,5,5,236,224,5,5,228,204,5,5,239,204,5,5,234,224,5,5,223,204,5,5,233,204,5,5,238,204,5,5,241,224,192,0,0,0,5,5,234,204,5,5,237,204,192,0,0,0,192,0,0,0,5,5,244,224,5,5,229,204,5,5,235,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,224,5,5,248,224,192,0,0,0,5,5,231,204,5,5,246,224,5,5,227,204,5,5,242,204,192,0,0,0,5,5,238,224,192,0,0,0,5,5,225,204,192,0,0,0,5,5,251,224,5,5,239,224,5,5,243,224,5,5,230,204,5,5,241,204,5,5,240,224,5,5,236,204,5,5,245,224,5,5,252,224,5,5,17,227,192,0,0,0,5,5,250,224,5,5,243,204,5,5,224,204,5,5,242,224,5,5,233,224,192,0,0,0,5,5,232,204,192,0,0,0,192,0,0,0,5,5,232,224,192,0,0,0,192,0,0,0,5,5,237,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,224,5,5,240,204,192,0,0,0,192,0,0,0,5,5,9,227,192,0,0,0,5,5,175,206,5,5,23,227,5,5,173,206,5,5,170,206,5,5,14,227,5,5,166,206,5,5,18,227,5,5,177,206,5,5,8,227,5,5,13,227,5,5,12,227,5,5,226,204,5,5,172,206,5,5,21,227,192,0,0,0,5,5,24,227,5,5,5,227,192,0,0,0,5,5,142,208,192,0,0,0,5,5,25,227,5,5,178,206,192,0,0,0,5,5,164,206,5,5,161,206,5,5,16,227,5,5,158,206,192,0,0,0,5,5,22,227,192,0,0,0,5,5,165,206,5,5,26,227,192,0,0,0,5,5,6,227,5,5,20,227,5,5,168,206,5,5,7,227,5,5,10,227,5,5,15,227,192,0,0,0,192,0,0,0,5,5,169,206,5,5,167,206,5,5,179,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,206,192,0,0,0,5,5,162,206,5,5,60,207,192,0,0,0,5,5,163,206,5,5,11,227,5,5,176,206,5,5,171,206,5,5,19,227,5,5,160,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,227,5,5,4,227,5,5,116,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,208,5,5,128,208,5,5,127,229,5,5,148,208,5,5,130,229,5,5,126,208,5,5,123,229,5,5,132,208,5,5,138,208,5,5,159,209,192,0,0,0,192,0,0,0,5,5,136,208,5,5,120,229,5,5,149,208,5,5,129,208,5,5,137,208,5,5,128,229,5,5,57,232,5,5,133,229,5,5,121,229,192,0,0,0,5,5,112,229,5,5,125,229,5,5,119,229,5,5,135,208,5,5,131,229,192,0,0,0,192,0,0,0,5,5,131,208,5,5,151,208,5,5,144,208,192,0,0,0,5,5,133,208,5,5,130,208,192,0,0,0,5,5,141,208,192,0,0,0,5,5,132,229,5,5,118,229,5,5,124,229,5,5,126,229,5,5,114,229,5,5,129,229,5,5,127,208,5,5,113,229,192,0,0,0,5,5,134,208,5,5,150,208,5,5,146,208,5,5,115,229,5,5,140,208,192,0,0,0,192,0,0,0,5,5,147,208,5,5,143,208,5,5,139,208,192,0,0,0,5,5,122,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,232,5,5,51,232,192,0,0,0,5,5,66,232,5,5,44,232,5,5,53,232,5,5,102,210,5,5,103,210,5,5,95,210,5,5,62,232,5,5,105,210,5,5,49,232,5,5,48,232,5,5,46,232,5,5,64,232,5,5,93,210,5,5,58,232,5,5,47,232,5,5,96,210,5,5,56,232,5,5,91,210,5,5,52,232,5,5,59,232,5,5,61,232,192,0,0,0,192,0,0,0,5,5,65,232,5,5,100,210,5,5,45,232,5,5,94,210,5,5,50,232,192,0,0,0,5,5,89,210,192,0,0,0,5,5,101,210,5,5,60,232,5,5,97,210,5,5,98,210,5,5,104,210,5,5,92,210,5,5,0,133,5,5,90,210,5,5,54,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,210,192,0,0,0,192,0,0,0,5,5,63,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,212,5,5,36,212,192,0,0,0,5,5,237,234,5,5,233,234,192,0,0,0,5,5,227,234,5,5,30,212,5,5,26,212,5,5,236,234,5,5,27,212,5,5,230,234,5,5,232,234,192,0,0,0,5,5,235,234,192,0,0,0,5,5,32,212,192,0,0,0,5,5,39,212,5,5,33,212,192,0,0,0,192,0,0,0,5,5,225,234,5,5,34,212,5,5,35,212,5,5,228,234,5,5,40,212,192,0,0,0,5,5,226,234,5,5,231,234,5,5,31,212,5,5,224,234,5,5,37,212,5,5,29,212,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,212,5,5,229,234,5,5,234,234,192,0,0,0,5,5,38,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,234,192,0,0,0,5,5,164,213,5,5,89,237,192,0,0,0,5,5,86,237,192,0,0,0,5,5,158,213,5,5,170,213,5,5,171,213,192,0,0,0,5,5,161,213,5,5,84,237,5,5,163,213,5,5,76,237,5,5,169,213,192,0,0,0,5,5,88,237,5,5,160,213,5,5,90,237,5,5,159,213,192,0,0,0,5,5,85,237,5,5,87,237,5,5,162,213,5,5,83,237,5,5,77,237,5,5,74,237,192,0,0,0,192,0,0,0,5,5,117,229,5,5,80,237,192,0,0,0,5,5,73,237,5,5,79,237,5,5,78,237,192,0,0,0,5,5,75,237,192,0,0,0,5,5,166,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,213,5,5,81,237,5,5,37,215,5,5,82,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,239,192,0,0,0,5,5,200,239,192,0,0,0,5,5,49,215,5,5,204,239,5,5,41,215,5,5,45,215,5,5,203,239,192,0,0,0,5,5,44,215,5,5,40,215,5,5,43,215,5,5,38,215,5,5,48,215,5,5,205,239,5,5,201,239,5,5,47,215,5,5,199,239,5,5,46,215,5,5,206,239,5,5,202,239,5,5,168,213,192,0,0,0,5,5,50,215,5,5,208,239,5,5,42,215,5,5,39,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,242,5,5,13,242,5,5,76,216,5,5,14,242,5,5,12,242,5,5,10,242,5,5,9,242,5,5,78,216,5,5,8,242,5,5,79,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,242,5,5,7,242,5,5,75,216,5,5,80,216,5,5,77,216,192,0,0,0,192,0,0,0,5,5,5,242,192,0,0,0,5,5,93,217,192,0,0,0,5,5,218,243,5,5,216,243,5,5,221,243,5,5,219,243,192,0,0,0,5,5,217,243,5,5,220,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,218,5,5,78,245,5,5,79,245,5,5,159,218,192,0,0,0,5,5,80,245,5,5,76,245,5,5,81,245,5,5,77,245,5,5,94,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,246,5,5,152,246,5,5,162,218,5,5,151,246,5,5,161,218,5,5,160,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,218,5,5,153,247,5,5,154,247,192,0,0,0,5,5,3,219,5,5,2,219,5,5,4,219,5,5,152,247,192,0,0,0,5,5,75,248,5,5,74,248,192,0,0,0,5,5,85,219,5,5,87,219,5,5,86,219,5,5,76,248,5,5,142,219,5,5,85,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,219,192,0,0,0,5,5,84,249,5,5,157,249,192,0,0,0,192,0,0,0,5,5,15,220,192,0,0,0,192,0,0,0,5,5,157,199,5,5,156,199,192,0,0,0,5,5,30,200,5,5,29,200,5,5,106,220,5,5,28,200,5,5,105,220,192,0,0,0,192,0,0,0,5,5,213,200,5,5,233,220,192,0,0,0,5,5,232,220,192,0,0,0,192,0,0,0,5,5,211,200,5,5,214,200,192,0,0,0,192,0,0,0,5,5,231,220,192,0,0,0,5,5,212,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,221,192,0,0,0,5,5,208,221,5,5,236,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,203,192,0,0,0,5,5,253,224,5,5,254,224,5,5,244,204,5,5,245,204,192,0,0,0,192,0,0,0,5,5,28,227,5,5,180,206,5,5,182,206,5,5,27,227,5,5,181,206,5,5,134,229,5,5,152,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,210,5,5,107,210,5,5,67,232,192,0,0,0,5,5,43,212,192,0,0,0,5,5,42,212,192,0,0,0,5,5,91,237,5,5,210,239,5,5,209,239,192,0,0,0,5,5,217,249,5,5,0,175,5,5,30,220,192,0,0,0,5,5,51,220,5,5,52,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,200,5,5,37,200,5,5,108,220,192,0,0,0,5,5,35,200,5,5,34,200,5,5,107,220,5,5,36,200,5,5,32,200,192,0,0,0,192,0,0,0,5,5,31,200,5,5,109,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,200,192,0,0,0,192,0,0,0,5,5,221,200,192,0,0,0,5,5,217,200,5,5,234,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,220,192,0,0,0,5,5,219,200,192,0,0,0,5,5,237,220,5,5,215,200,5,5,238,220,5,5,236,220,5,5,218,200,5,5,220,200,5,5,223,200,5,5,222,200,5,5,216,200,5,5,239,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,201,5,5,221,221,192,0,0,0,5,5,243,201,192,0,0,0,5,5,242,201,192,0,0,0,5,5,222,221,5,5,240,201,5,5,239,201,5,5,212,221,192,0,0,0,5,5,211,221,192,0,0,0,5,5,209,221,5,5,214,221,5,5,213,221,5,5,210,221,5,5,219,221,5,5,220,221,5,5,217,221,5,5,215,221,5,5,238,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,221,5,5,244,201,5,5,223,221,192,0,0,0,192,0,0,0,5,5,216,221,192,0,0,0,5,5,95,203,5,5,237,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,203,5,5,48,223,192,0,0,0,192,0,0,0,5,5,54,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,203,5,5,52,223,5,5,58,223,192,0,0,0,5,5,49,223,5,5,53,223,5,5,55,223,5,5,57,223,5,5,51,223,192,0,0,0,5,5,50,223,5,5,45,223,5,5,46,223,5,5,97,203,192,0,0,0,5,5,99,203,5,5,98,203,5,5,47,223,5,5,56,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,223,5,5,10,225,192,0,0,0,5,5,9,225,5,5,14,225,5,5,5,225,192,0,0,0,5,5,8,225,5,5,7,225,192,0,0,0,5,5,11,225,192,0,0,0,5,5,15,225,5,5,246,204,5,5,249,204,192,0,0,0,192,0,0,0,5,5,6,225,5,5,12,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,204,5,5,255,224,192,0,0,0,5,5,100,203,5,5,42,227,5,5,13,225,192,0,0,0,5,5,4,225,192,0,0,0,5,5,247,204,5,5,3,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,227,192,0,0,0,192,0,0,0,5,5,183,206,5,5,187,206,5,5,49,227,5,5,31,227,5,5,45,227,5,5,188,206,5,5,47,227,192,0,0,0,5,5,53,227,192,0,0,0,5,5,57,227,192,0,0,0,192,0,0,0,5,5,48,227,5,5,36,227,5,5,44,227,192,0,0,0,5,5,58,227,5,5,56,227,5,5,46,227,5,5,41,227,5,5,34,227,5,5,142,229,5,5,32,227,5,5,192,206,5,5,39,227,5,5,193,206,5,5,189,206,5,5,29,227,5,5,51,227,5,5,37,227,192,0,0,0,192,0,0,0,5,5,35,227,5,5,54,227,5,5,190,206,192,0,0,0,5,5,60,227,5,5,184,206,5,5,186,206,5,5,43,227,5,5,38,227,5,5,250,204,5,5,185,206,5,5,40,227,5,5,55,227,5,5,59,227,5,5,50,227,192,0,0,0,5,5,52,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,229,192,0,0,0,5,5,146,229,5,5,145,229,5,5,160,208,5,5,138,229,192,0,0,0,5,5,161,208,5,5,159,208,192,0,0,0,5,5,140,229,5,5,156,208,5,5,144,229,192,0,0,0,5,5,139,229,5,5,141,229,5,5,135,229,5,5,154,208,192,0,0,0,5,5,154,229,5,5,153,229,5,5,150,229,5,5,153,208,5,5,157,208,5,5,158,208,5,5,2,225,5,5,147,229,5,5,155,208,5,5,191,206,5,5,149,229,5,5,136,229,5,5,152,229,5,5,151,229,192,0,0,0,5,5,155,229,192,0,0,0,5,5,81,232,192,0,0,0,5,5,148,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,229,5,5,73,232,5,5,117,210,5,5,120,210,5,5,115,210,5,5,72,232,5,5,76,232,5,5,71,232,192,0,0,0,5,5,109,210,5,5,119,210,5,5,68,232,5,5,113,210,5,5,75,232,192,0,0,0,5,5,111,210,5,5,110,210,5,5,78,232,5,5,112,210,5,5,80,232,192,0,0,0,5,5,77,232,5,5,108,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,210,5,5,82,232,5,5,70,232,5,5,79,232,192,0,0,0,192,0,0,0,5,5,69,232,192,0,0,0,192,0,0,0,5,5,114,210,192,0,0,0,5,5,116,210,192,0,0,0,5,5,74,232,192,0,0,0,5,5,83,232,192,0,0,0,192,0,0,0,5,5,245,234,5,5,44,212,5,5,251,234,192,0,0,0,192,0,0,0,5,5,49,212,5,5,247,234,5,5,254,234,5,5,239,234,5,5,51,212,5,5,45,212,5,5,244,234,5,5,172,213,5,5,243,234,5,5,252,234,5,5,46,212,192,0,0,0,5,5,50,212,5,5,242,234,5,5,248,234,5,5,253,234,5,5,238,234,5,5,48,212,5,5,246,234,192,0,0,0,192,0,0,0,5,5,250,234,5,5,2,235,5,5,240,234,5,5,249,234,192,0,0,0,5,5,47,212,5,5,255,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,213,5,5,93,237,5,5,174,213,5,5,173,213,5,5,95,237,5,5,100,237,192,0,0,0,5,5,96,237,192,0,0,0,5,5,99,237,5,5,179,213,192,0,0,0,5,5,24,215,5,5,178,213,192,0,0,0,5,5,92,237,5,5,98,237,192,0,0,0,5,5,177,213,5,5,97,237,192,0,0,0,5,5,94,237,192,0,0,0,5,5,175,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,239,192,0,0,0,5,5,217,239,5,5,212,239,5,5,52,215,5,5,214,239,192,0,0,0,5,5,51,215,5,5,216,239,192,0,0,0,192,0,0,0,5,5,54,215,5,5,218,239,5,5,53,215,5,5,211,239,5,5,213,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,216,5,5,17,242,192,0,0,0,5,5,83,216,5,5,18,242,5,5,82,216,5,5,16,242,5,5,81,216,5,5,15,242,192,0,0,0,5,5,96,217,5,5,95,217,5,5,82,245,5,5,84,245,192,0,0,0,5,5,83,245,5,5,13,218,5,5,14,218,192,0,0,0,192,0,0,0,5,5,15,218,5,5,153,246,5,5,164,218,192,0,0,0,192,0,0,0,5,5,227,248,5,5,226,248,5,5,184,219,192,0,0,0,5,5,0,176,5,5,49,199,192,0,0,0,192,0,0,0,5,5,225,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,208,5,5,163,208,192,0,0,0,5,5,84,232,5,5,52,212,5,5,3,235,5,5,101,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,220,192,0,0,0,192,0,0,0,5,5,240,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,221,5,5,60,223,5,5,16,225,5,5,251,204,192,0,0,0,192,0,0,0,5,5,85,245,192,0,0,0,5,5,5,219,5,5,0,177,5,5,158,199,5,5,53,220,192,0,0,0,5,5,38,200,5,5,39,200,192,0,0,0,5,5,245,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,206,192,0,0,0,5,5,54,212,192,0,0,0,5,5,55,212,5,5,53,212,192,0,0,0,5,5,0,178,192,0,0,0,5,5,50,199,5,5,52,199,5,5,51,199,5,5,32,220,5,5,53,199,5,5,159,199,5,5,54,220,192,0,0,0,5,5,160,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,200,5,5,41,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,220,192,0,0,0,5,5,226,200,192,0,0,0,5,5,241,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,201,5,5,225,221,192,0,0,0,5,5,247,201,5,5,248,201,5,5,246,201,5,5,17,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,203,5,5,105,203,5,5,107,203,5,5,104,203,192,0,0,0,5,5,61,223,5,5,250,201,5,5,103,203,192,0,0,0,5,5,252,204,5,5,253,204,192,0,0,0,5,5,254,204,192,0,0,0,5,5,61,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,208,5,5,156,229,5,5,195,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,210,192,0,0,0,5,5,57,212,5,5,56,212,5,5,4,235,192,0,0,0,5,5,180,213,5,5,55,215,192,0,0,0,5,5,222,243,5,5,77,248,5,5,228,248,5,5,0,179,5,5,161,199,192,0,0,0,5,5,162,199,5,5,116,220,5,5,43,200,5,5,46,200,192,0,0,0,5,5,114,220,5,5,112,220,5,5,45,200,5,5,115,220,5,5,117,220,5,5,111,220,5,5,48,200,5,5,47,200,5,5,44,200,5,5,42,200,5,5,113,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,200,192,0,0,0,192,0,0,0,5,5,234,200,5,5,246,220,5,5,249,220,5,5,248,220,192,0,0,0,5,5,228,200,5,5,236,200,192,0,0,0,192,0,0,0,5,5,233,200,5,5,245,220,5,5,243,220,5,5,232,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,200,5,5,230,200,192,0,0,0,5,5,244,220,5,5,251,220,5,5,247,220,5,5,231,200,5,5,235,200,5,5,238,200,5,5,242,220,5,5,250,220,5,5,229,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,201,5,5,9,202,192,0,0,0,5,5,237,221,5,5,230,221,5,5,10,202,5,5,241,221,5,5,226,221,5,5,233,221,192,0,0,0,192,0,0,0,5,5,254,201,5,5,227,221,5,5,252,201,5,5,234,221,5,5,238,221,5,5,251,201,192,0,0,0,5,5,239,221,5,5,232,221,192,0,0,0,5,5,235,221,192,0,0,0,5,5,12,202,5,5,3,202,5,5,242,221,5,5,240,221,192,0,0,0,5,5,8,202,5,5,6,202,5,5,231,221,5,5,5,202,5,5,229,221,5,5,228,221,5,5,4,202,5,5,2,202,5,5,11,202,5,5,7,202,5,5,253,201,192,0,0,0,5,5,236,221,192,0,0,0,5,5,109,203,192,0,0,0,5,5,116,203,5,5,75,223,5,5,108,203,5,5,67,223,5,5,63,223,192,0,0,0,5,5,79,223,5,5,62,223,192,0,0,0,5,5,111,203,5,5,72,223,5,5,114,203,5,5,117,203,192,0,0,0,5,5,112,203,5,5,76,223,5,5,115,203,192,0,0,0,5,5,7,205,5,5,82,223,5,5,64,223,192,0,0,0,192,0,0,0,5,5,66,223,5,5,73,223,5,5,77,223,5,5,81,223,5,5,78,223,5,5,71,223,5,5,74,223,192,0,0,0,192,0,0,0,5,5,68,223,5,5,119,203,5,5,70,223,5,5,69,223,5,5,80,223,5,5,110,203,5,5,65,223,5,5,118,203,192,0,0,0,5,5,113,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,205,5,5,25,225,192,0,0,0,5,5,12,205,192,0,0,0,192,0,0,0,5,5,23,225,192,0,0,0,5,5,255,204,192,0,0,0,5,5,6,205,192,0,0,0,5,5,22,225,5,5,19,225,5,5,24,225,5,5,2,205,5,5,18,225,192,0,0,0,5,5,5,205,5,5,3,205,192,0,0,0,5,5,26,225,5,5,4,205,5,5,8,205,192,0,0,0,192,0,0,0,5,5,9,205,192,0,0,0,5,5,11,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,225,5,5,21,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,225,192,0,0,0,5,5,68,227,5,5,196,206,5,5,170,229,5,5,67,227,5,5,86,227,192,0,0,0,192,0,0,0,5,5,202,206,192,0,0,0,5,5,84,227,192,0,0,0,5,5,201,206,5,5,197,206,5,5,93,227,5,5,77,227,5,5,80,227,192,0,0,0,5,5,205,206,5,5,90,227,5,5,82,227,5,5,198,206,5,5,206,206,192,0,0,0,5,5,87,227,5,5,85,227,192,0,0,0,192,0,0,0,5,5,70,227,5,5,91,227,5,5,79,227,5,5,74,227,192,0,0,0,5,5,64,227,5,5,92,227,5,5,76,227,5,5,63,227,192,0,0,0,5,5,204,206,5,5,81,227,5,5,94,227,5,5,78,227,5,5,66,227,5,5,71,227,5,5,62,227,192,0,0,0,5,5,203,206,192,0,0,0,5,5,75,227,5,5,72,227,5,5,199,206,5,5,65,227,192,0,0,0,5,5,89,227,5,5,200,206,192,0,0,0,5,5,73,227,5,5,69,227,192,0,0,0,192,0,0,0,5,5,88,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,208,5,5,163,229,192,0,0,0,5,5,160,229,5,5,177,229,5,5,165,229,5,5,178,229,192,0,0,0,5,5,167,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,229,5,5,171,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,229,5,5,175,229,5,5,179,229,192,0,0,0,5,5,83,227,5,5,181,229,5,5,104,232,192,0,0,0,5,5,168,208,5,5,182,229,5,5,158,229,5,5,168,229,192,0,0,0,5,5,173,229,192,0,0,0,192,0,0,0,5,5,166,208,5,5,169,208,5,5,180,229,5,5,183,229,5,5,162,229,5,5,159,229,192,0,0,0,192,0,0,0,5,5,161,229,192,0,0,0,192,0,0,0,5,5,166,229,5,5,164,229,5,5,170,208,192,0,0,0,5,5,176,229,192,0,0,0,192,0,0,0,5,5,167,229,192,0,0,0,5,5,169,229,5,5,157,229,5,5,92,232,5,5,90,232,5,5,130,210,5,5,128,210,5,5,100,232,5,5,91,232,5,5,101,232,5,5,97,232,5,5,89,232,5,5,103,232,5,5,88,232,5,5,95,232,5,5,127,210,5,5,126,210,5,5,125,210,5,5,93,232,5,5,98,232,5,5,122,210,5,5,129,210,192,0,0,0,5,5,86,232,192,0,0,0,5,5,96,232,5,5,85,232,5,5,94,232,5,5,123,210,5,5,99,232,5,5,87,232,5,5,124,210,5,5,102,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,235,5,5,62,212,5,5,61,212,5,5,63,212,5,5,20,235,5,5,10,235,5,5,16,235,5,5,5,235,5,5,19,235,5,5,18,235,5,5,22,235,5,5,15,235,5,5,58,212,5,5,14,235,5,5,64,212,192,0,0,0,5,5,7,235,5,5,59,212,192,0,0,0,5,5,21,235,5,5,60,212,5,5,9,235,5,5,12,235,5,5,17,235,5,5,11,235,5,5,6,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,235,5,5,103,237,5,5,184,213,5,5,106,237,5,5,105,237,5,5,108,237,5,5,110,237,192,0,0,0,5,5,182,213,192,0,0,0,5,5,104,237,192,0,0,0,5,5,102,237,192,0,0,0,5,5,111,237,5,5,109,237,5,5,107,237,192,0,0,0,5,5,113,237,192,0,0,0,5,5,112,237,5,5,186,213,5,5,181,213,192,0,0,0,5,5,183,213,5,5,185,213,192,0,0,0,192,0,0,0,5,5,114,237,5,5,225,239,192,0,0,0,192,0,0,0,5,5,224,239,5,5,223,239,192,0,0,0,5,5,226,239,5,5,219,239,192,0,0,0,5,5,220,239,5,5,228,239,5,5,221,239,192,0,0,0,5,5,56,215,5,5,230,239,192,0,0,0,5,5,229,239,5,5,222,239,192,0,0,0,5,5,22,242,5,5,87,216,5,5,20,242,5,5,25,242,5,5,24,242,5,5,227,239,192,0,0,0,5,5,86,216,192,0,0,0,5,5,23,242,5,5,19,242,5,5,27,242,5,5,26,242,5,5,85,216,192,0,0,0,5,5,21,242,192,0,0,0,5,5,57,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,243,5,5,86,245,5,5,87,245,5,5,88,245,5,5,165,218,192,0,0,0,192,0,0,0,5,5,166,218,192,0,0,0,5,5,154,246,192,0,0,0,5,5,156,247,5,5,155,247,192,0,0,0,192,0,0,0,5,5,78,248,5,5,79,248,5,5,229,248,5,5,86,249,192,0,0,0,5,5,0,180,5,5,0,181,192,0,0,0,5,5,0,182,5,5,54,199,5,5,163,199,5,5,118,220,5,5,49,200,5,5,50,200,192,0,0,0,5,5,241,200,5,5,242,200,5,5,240,200,5,5,239,200,192,0,0,0,5,5,13,202,192,0,0,0,192,0,0,0,5,5,243,221,5,5,15,202,5,5,14,202,5,5,244,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,203,192,0,0,0,5,5,14,205,5,5,28,225,192,0,0,0,5,5,96,227,192,0,0,0,5,5,207,206,5,5,172,208,5,5,95,227,5,5,171,208,192,0,0,0,5,5,65,212,192,0,0,0,5,5,23,235,5,5,58,215,192,0,0,0,5,5,88,216,5,5,28,242,192,0,0,0,5,5,167,218,192,0,0,0,5,5,88,219,192,0,0,0,5,5,55,220,192,0,0,0,5,5,164,199,5,5,56,220,5,5,53,200,192,0,0,0,5,5,51,200,5,5,52,200,5,5,54,200,192,0,0,0,5,5,244,200,5,5,243,200,192,0,0,0,5,5,252,220,5,5,245,200,192,0,0,0,192,0,0,0,5,5,253,220,5,5,245,221,192,0,0,0,5,5,246,221,192,0,0,0,5,5,16,202,5,5,18,202,5,5,20,202,5,5,17,202,5,5,21,202,5,5,19,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,203,5,5,121,203,5,5,123,203,5,5,125,203,5,5,122,203,5,5,29,225,5,5,83,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,225,5,5,30,225,5,5,20,205,192,0,0,0,5,5,16,205,192,0,0,0,192,0,0,0,5,5,17,205,5,5,19,205,5,5,21,205,5,5,18,205,192,0,0,0,5,5,23,205,5,5,22,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,206,5,5,98,227,5,5,97,227,5,5,211,206,192,0,0,0,5,5,210,206,5,5,209,206,5,5,213,206,5,5,208,206,192,0,0,0,192,0,0,0,5,5,189,229,5,5,186,229,5,5,174,208,5,5,185,229,5,5,190,229,192,0,0,0,5,5,176,208,5,5,188,229,5,5,173,208,5,5,175,208,5,5,187,229,192,0,0,0,5,5,105,232,192,0,0,0,5,5,106,232,5,5,107,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,212,5,5,74,212,5,5,24,235,5,5,68,212,5,5,72,212,5,5,25,235,5,5,73,212,5,5,69,212,5,5,70,212,5,5,67,212,5,5,71,212,5,5,189,213,5,5,184,229,5,5,190,213,5,5,188,213,192,0,0,0,5,5,187,213,5,5,231,239,5,5,59,215,5,5,29,242,5,5,30,242,192,0,0,0,192,0,0,0,5,5,16,218,5,5,168,218,192,0,0,0,5,5,0,183,192,0,0,0,5,5,55,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,203,192,0,0,0,5,5,32,225,5,5,24,205,192,0,0,0,192,0,0,0,5,5,216,206,5,5,215,206,5,5,214,206,5,5,177,208,5,5,178,208,5,5,191,229,5,5,75,212,5,5,60,215,5,5,0,184,5,5,33,220,5,5,55,199,5,5,57,220,192,0,0,0,192,0,0,0,5,5,119,220,5,5,56,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,232,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,5,5,56,199,5,5,120,220,192,0,0,0,192,0,0,0,5,5,254,220,192,0,0,0,5,5,255,220,192,0,0,0,5,5,246,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,229,5,5,179,208,192,0,0,0,5,5,109,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,216,5,5,0,186,5,5,9,199,5,5,57,199,5,5,58,220,5,5,165,199,192,0,0,0,5,5,250,200,5,5,249,200,5,5,247,200,5,5,248,200,192,0,0,0,192,0,0,0,5,5,247,221,5,5,24,202,5,5,25,202,5,5,248,221,5,5,23,202,192,0,0,0,192,0,0,0,5,5,130,203,5,5,84,223,5,5,129,203,5,5,127,203,5,5,128,203,5,5,27,205,5,5,25,205,192,0,0,0,192,0,0,0,5,5,34,225,5,5,26,205,5,5,33,225,192,0,0,0,5,5,15,205,5,5,99,227,192,0,0,0,192,0,0,0,5,5,218,206,5,5,219,206,192,0,0,0,192,0,0,0,5,5,217,206,192,0,0,0,5,5,76,212,5,5,26,235,5,5,191,213,5,5,192,213,192,0,0,0,5,5,115,237,5,5,90,216,5,5,224,243,5,5,225,243,192,0,0,0,5,5,6,219,5,5,87,249,5,5,16,220,5,5,58,199,192,0,0,0,5,5,0,187,192,0,0,0,5,5,60,220,5,5,59,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,200,5,5,122,220,5,5,123,220,5,5,121,220,192,0,0,0,5,5,124,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,221,192,0,0,0,5,5,4,221,5,5,6,221,5,5,8,221,5,5,5,221,5,5,254,200,5,5,2,221,192,0,0,0,5,5,3,221,5,5,251,200,5,5,252,200,5,5,7,221,5,5,10,221,5,5,253,200,5,5,11,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,222,192,0,0,0,5,5,2,222,5,5,251,221,5,5,27,202,5,5,5,222,5,5,3,222,5,5,250,221,5,5,9,222,5,5,12,222,5,5,7,222,5,5,254,221,5,5,29,202,5,5,6,222,5,5,30,202,5,5,255,221,5,5,4,222,5,5,249,221,5,5,253,221,5,5,11,222,5,5,31,202,192,0,0,0,5,5,32,202,192,0,0,0,5,5,252,221,5,5,10,222,5,5,26,202,5,5,28,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,223,5,5,94,223,5,5,100,223,5,5,93,223,5,5,95,223,5,5,89,223,5,5,87,223,192,0,0,0,5,5,102,223,5,5,99,223,5,5,85,223,192,0,0,0,5,5,132,203,5,5,97,223,5,5,98,223,192,0,0,0,5,5,96,223,5,5,88,223,5,5,86,223,5,5,131,203,5,5,92,223,5,5,90,223,192,0,0,0,192,0,0,0,5,5,91,223,5,5,103,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,205,192,0,0,0,5,5,31,205,192,0,0,0,5,5,35,225,5,5,28,205,5,5,37,225,192,0,0,0,5,5,33,205,5,5,38,225,192,0,0,0,192,0,0,0,5,5,36,205,192,0,0,0,5,5,34,205,5,5,39,225,5,5,104,223,5,5,41,225,192,0,0,0,5,5,30,205,192,0,0,0,5,5,29,205,192,0,0,0,5,5,36,225,5,5,40,225,5,5,35,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,206,5,5,220,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,227,5,5,105,227,5,5,107,227,5,5,222,206,5,5,110,227,192,0,0,0,5,5,226,206,5,5,112,227,192,0,0,0,5,5,228,206,192,0,0,0,5,5,224,206,5,5,232,206,192,0,0,0,5,5,229,206,5,5,103,227,5,5,223,206,192,0,0,0,5,5,102,227,5,5,100,227,5,5,114,227,5,5,104,227,192,0,0,0,5,5,225,206,5,5,113,227,5,5,230,206,5,5,109,227,5,5,108,227,5,5,231,206,5,5,106,227,5,5,227,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,227,192,0,0,0,5,5,111,227,5,5,207,229,5,5,214,229,5,5,203,229,5,5,182,208,5,5,199,229,5,5,215,229,5,5,193,229,5,5,212,229,5,5,210,229,5,5,204,229,192,0,0,0,5,5,213,229,5,5,206,229,192,0,0,0,5,5,198,229,5,5,216,229,5,5,196,229,5,5,209,229,5,5,194,229,192,0,0,0,5,5,217,229,192,0,0,0,5,5,183,208,192,0,0,0,5,5,211,229,5,5,112,232,5,5,197,229,5,5,180,208,192,0,0,0,5,5,201,229,192,0,0,0,5,5,181,208,5,5,200,229,5,5,205,229,192,0,0,0,192,0,0,0,5,5,202,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,232,5,5,111,232,192,0,0,0,5,5,113,232,192,0,0,0,5,5,118,232,5,5,117,232,5,5,131,210,192,0,0,0,5,5,195,229,5,5,115,232,192,0,0,0,192,0,0,0,5,5,132,210,192,0,0,0,5,5,110,232,5,5,114,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,235,192,0,0,0,5,5,40,235,5,5,31,235,192,0,0,0,5,5,38,235,5,5,29,235,5,5,37,235,5,5,41,235,5,5,28,235,5,5,32,235,5,5,27,235,192,0,0,0,5,5,77,212,192,0,0,0,5,5,30,235,5,5,78,212,5,5,36,235,5,5,35,235,5,5,34,235,192,0,0,0,192,0,0,0,5,5,39,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,237,5,5,121,237,5,5,194,213,5,5,122,237,192,0,0,0,5,5,117,237,192,0,0,0,5,5,116,237,5,5,126,237,192,0,0,0,5,5,124,237,5,5,193,213,5,5,127,237,5,5,118,237,5,5,123,237,5,5,125,237,5,5,120,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,239,5,5,240,239,5,5,234,239,5,5,239,239,192,0,0,0,5,5,232,239,5,5,242,239,5,5,238,239,5,5,243,239,5,5,237,239,5,5,233,239,5,5,241,239,192,0,0,0,5,5,244,239,5,5,236,239,192,0,0,0,5,5,31,242,5,5,94,216,192,0,0,0,5,5,92,216,192,0,0,0,5,5,91,216,5,5,93,216,192,0,0,0,192,0,0,0,5,5,226,243,192,0,0,0,5,5,238,244,5,5,89,245,192,0,0,0,192,0,0,0,5,5,155,246,5,5,156,246,192,0,0,0,5,5,169,218,192,0,0,0,5,5,157,247,192,0,0,0,5,5,7,219,192,0,0,0,5,5,158,247,192,0,0,0,5,5,81,248,5,5,90,219,192,0,0,0,5,5,89,219,5,5,80,248,5,5,143,219,192,0,0,0,5,5,230,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,188,5,5,58,200,5,5,125,220,5,5,12,221,5,5,142,201,5,5,233,206,192,0,0,0,192,0,0,0,5,5,0,189,5,5,168,199,5,5,167,199,5,5,166,199,192,0,0,0,192,0,0,0,5,5,255,200,192,0,0,0,192,0,0,0,5,5,37,205,192,0,0,0,5,5,120,232,5,5,0,190,5,5,0,191,5,5,0,192,5,5,59,199,192,0,0,0,192,0,0,0,5,5,133,203,192,0,0,0,5,5,105,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,208,5,5,0,193,5,5,34,220,192,0,0,0,192,0,0,0,5,5,169,199,5,5,170,199,5,5,61,220,192,0,0,0,5,5,59,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,221,192,0,0,0,5,5,2,201,192,0,0,0,5,5,14,221,192,0,0,0,192,0,0,0,5,5,38,202,192,0,0,0,192,0,0,0,5,5,14,222,5,5,36,202,5,5,35,202,5,5,13,222,5,5,33,202,5,5,15,222,5,5,34,202,5,5,37,202,192,0,0,0,5,5,134,203,192,0,0,0,5,5,136,203,5,5,109,223,5,5,106,223,5,5,107,223,5,5,108,223,5,5,110,223,5,5,135,203,192,0,0,0,192,0,0,0,5,5,43,225,5,5,42,225,192,0,0,0,5,5,39,205,192,0,0,0,5,5,38,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,206,5,5,117,227,192,0,0,0,5,5,235,206,5,5,237,206,5,5,234,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,208,5,5,116,227,192,0,0,0,5,5,187,208,5,5,219,229,192,0,0,0,5,5,188,208,5,5,218,229,5,5,185,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,232,5,5,125,232,5,5,133,210,5,5,124,232,5,5,122,232,5,5,121,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,235,5,5,83,212,5,5,81,212,192,0,0,0,5,5,82,212,5,5,42,235,5,5,43,235,192,0,0,0,5,5,79,212,5,5,131,237,5,5,129,237,192,0,0,0,5,5,196,213,5,5,130,237,5,5,197,213,5,5,195,213,5,5,80,212,192,0,0,0,192,0,0,0,5,5,247,239,5,5,245,239,5,5,246,239,5,5,128,237,5,5,33,242,5,5,95,216,5,5,32,242,5,5,227,243,5,5,228,243,5,5,248,239,5,5,90,245,192,0,0,0,5,5,0,194,5,5,171,199,5,5,61,200,5,5,126,220,5,5,60,200,192,0,0,0,5,5,39,202,5,5,134,210,192,0,0,0,5,5,60,199,5,5,172,199,5,5,137,203,5,5,189,208,192,0,0,0,5,5,62,220,192,0,0,0,5,5,63,220,192,0,0,0,5,5,127,220,192,0,0,0,192,0,0,0,5,5,4,201,5,5,18,221,5,5,16,221,5,5,5,201,5,5,15,221,5,5,17,221,5,5,19,221,192,0,0,0,5,5,3,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,202,5,5,44,202,5,5,41,202,192,0,0,0,192,0,0,0,5,5,40,202,5,5,114,223,5,5,42,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,203,192,0,0,0,5,5,113,223,5,5,115,223,5,5,112,223,5,5,116,223,5,5,139,203,5,5,42,205,5,5,44,225,192,0,0,0,5,5,46,225,5,5,40,205,5,5,47,225,5,5,41,205,5,5,45,225,192,0,0,0,5,5,111,223,5,5,118,227,5,5,121,227,5,5,122,227,5,5,119,227,5,5,241,206,5,5,240,206,5,5,238,206,5,5,239,206,5,5,120,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,206,192,0,0,0,192,0,0,0,5,5,191,208,5,5,192,208,192,0,0,0,5,5,193,208,5,5,126,232,5,5,128,232,5,5,130,232,5,5,136,210,5,5,135,210,5,5,190,208,5,5,129,232,5,5,127,232,192,0,0,0,5,5,48,235,192,0,0,0,192,0,0,0,5,5,46,235,5,5,52,235,5,5,84,212,5,5,53,235,5,5,50,235,5,5,85,212,5,5,47,235,5,5,45,235,5,5,51,235,5,5,199,213,5,5,133,237,5,5,49,235,5,5,201,213,5,5,134,237,5,5,200,213,5,5,203,213,5,5,135,237,5,5,198,213,5,5,202,213,192,0,0,0,5,5,253,239,5,5,251,239,5,5,250,239,5,5,252,239,5,5,249,239,192,0,0,0,192,0,0,0,5,5,18,218,192,0,0,0,5,5,157,246,5,5,158,246,192,0,0,0,5,5,159,247,5,5,82,248,5,5,218,219,192,0,0,0,192,0,0,0,5,5,45,202,5,5,6,201,192,0,0,0,192,0,0,0,5,5,140,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,195,5,5,61,199,192,0,0,0,5,5,173,199,5,5,128,220,192,0,0,0,5,5,7,201,5,5,20,221,192,0,0,0,5,5,117,223,5,5,141,203,192,0,0,0,5,5,86,212,5,5,0,196,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,200,192,0,0,0,192,0,0,0,5,5,137,210,5,5,0,197,5,5,62,199,5,5,63,199,192,0,0,0,5,5,175,199,5,5,174,199,192,0,0,0,5,5,129,220,5,5,63,200,192,0,0,0,5,5,21,221,192,0,0,0,5,5,8,201,192,0,0,0,192,0,0,0,5,5,17,222,5,5,18,222,5,5,19,222,192,0,0,0,5,5,46,202,5,5,47,202,5,5,16,222,5,5,48,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,203,5,5,118,223,192,0,0,0,5,5,49,225,5,5,43,205,192,0,0,0,5,5,48,225,192,0,0,0,5,5,243,206,5,5,123,227,5,5,244,206,5,5,124,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,232,192,0,0,0,192,0,0,0,5,5,55,235,5,5,54,235,192,0,0,0,5,5,87,212,192,0,0,0,5,5,204,213,5,5,136,237,5,5,61,215,5,5,254,239,5,5,96,216,192,0,0,0,5,5,91,219,5,5,232,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,222,192,0,0,0,5,5,119,223,5,5,245,206,5,5,220,229,5,5,138,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,201,192,0,0,0,5,5,9,201,5,5,143,203,192,0,0,0,5,5,50,225,192,0,0,0,5,5,247,206,5,5,11,208,5,5,248,206,5,5,246,206,5,5,195,208,192,0,0,0,5,5,56,235,5,5,88,212,5,5,205,213,192,0,0,0,5,5,17,220,5,5,130,220,192,0,0,0,5,5,23,221,5,5,11,201,5,5,22,221,5,5,12,201,192,0,0,0,192,0,0,0,5,5,52,202,5,5,23,222,5,5,22,222,5,5,51,202,5,5,49,202,5,5,50,202,5,5,21,222,192,0,0,0,192,0,0,0,5,5,145,203,5,5,120,223,5,5,148,203,5,5,144,203,5,5,150,203,5,5,146,203,5,5,147,203,5,5,149,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,205,5,5,45,205,5,5,44,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,227,5,5,249,206,5,5,252,206,5,5,250,206,192,0,0,0,5,5,125,227,5,5,255,206,192,0,0,0,5,5,251,206,5,5,127,227,5,5,254,206,5,5,253,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,229,5,5,221,229,192,0,0,0,5,5,198,208,5,5,196,208,5,5,197,208,5,5,223,229,5,5,139,210,5,5,133,232,5,5,140,210,5,5,132,232,192,0,0,0,192,0,0,0,5,5,137,237,192,0,0,0,192,0,0,0,5,5,207,213,5,5,57,235,5,5,206,213,192,0,0,0,5,5,89,212,192,0,0,0,5,5,35,242,5,5,255,239,5,5,97,216,5,5,34,242,5,5,91,245,5,5,159,246,5,5,160,246,192,0,0,0,5,5,64,199,192,0,0,0,5,5,176,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,220,192,0,0,0,192,0,0,0,5,5,14,201,5,5,16,201,192,0,0,0,5,5,133,220,5,5,26,221,5,5,25,221,5,5,24,221,192,0,0,0,5,5,132,220,5,5,131,220,5,5,65,200,5,5,15,201,5,5,13,201,5,5,64,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,202,5,5,24,222,192,0,0,0,5,5,54,202,5,5,31,221,192,0,0,0,5,5,33,221,5,5,32,221,5,5,25,222,192,0,0,0,192,0,0,0,5,5,28,221,192,0,0,0,5,5,20,201,5,5,18,201,192,0,0,0,5,5,27,221,5,5,29,221,5,5,35,221,192,0,0,0,5,5,17,201,192,0,0,0,5,5,30,221,5,5,39,221,5,5,56,202,192,0,0,0,5,5,36,221,5,5,19,201,192,0,0,0,5,5,34,221,5,5,37,221,192,0,0,0,5,5,55,202,192,0,0,0,5,5,57,202,5,5,38,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,222,5,5,32,222,5,5,30,222,5,5,44,222,5,5,39,222,5,5,155,203,5,5,58,202,5,5,40,222,5,5,43,222,5,5,151,203,5,5,42,222,5,5,59,202,5,5,64,202,5,5,62,202,5,5,33,222,192,0,0,0,5,5,28,222,5,5,35,222,5,5,69,202,5,5,46,222,5,5,152,203,5,5,36,222,192,0,0,0,5,5,153,203,5,5,65,202,5,5,38,222,192,0,0,0,5,5,135,223,5,5,154,203,5,5,27,222,5,5,66,202,5,5,156,203,5,5,67,202,5,5,63,202,5,5,68,202,5,5,37,222,5,5,26,222,5,5,41,222,5,5,60,202,192,0,0,0,192,0,0,0,5,5,29,222,5,5,34,222,5,5,31,222,5,5,61,202,192,0,0,0,5,5,121,223,192,0,0,0,5,5,122,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,223,5,5,54,225,5,5,133,223,5,5,162,203,5,5,136,223,5,5,126,223,5,5,161,203,5,5,128,223,192,0,0,0,5,5,129,223,192,0,0,0,192,0,0,0,5,5,131,223,5,5,157,203,192,0,0,0,192,0,0,0,5,5,50,205,192,0,0,0,192,0,0,0,5,5,127,223,5,5,123,223,5,5,51,205,192,0,0,0,192,0,0,0,5,5,137,223,5,5,47,205,5,5,52,225,5,5,130,223,192,0,0,0,5,5,51,225,5,5,125,223,5,5,134,223,192,0,0,0,192,0,0,0,5,5,160,203,5,5,48,205,5,5,166,203,5,5,49,205,5,5,138,223,5,5,53,225,5,5,159,203,5,5,53,205,5,5,165,203,5,5,164,203,5,5,163,203,5,5,52,205,5,5,139,223,5,5,54,205,5,5,158,203,192,0,0,0,5,5,124,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,207,5,5,57,225,5,5,59,225,192,0,0,0,5,5,61,225,5,5,55,205,5,5,61,205,5,5,130,227,5,5,65,225,5,5,56,225,5,5,4,207,5,5,128,227,192,0,0,0,5,5,60,205,5,5,58,205,5,5,67,225,192,0,0,0,5,5,129,227,192,0,0,0,5,5,58,225,192,0,0,0,5,5,59,205,5,5,62,225,5,5,62,205,5,5,64,225,192,0,0,0,192,0,0,0,5,5,57,205,5,5,63,225,5,5,66,225,5,5,60,225,192,0,0,0,5,5,56,205,5,5,5,207,192,0,0,0,5,5,55,225,5,5,3,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,227,5,5,141,227,5,5,201,208,192,0,0,0,5,5,8,207,5,5,13,207,5,5,202,208,5,5,143,227,5,5,20,207,5,5,225,229,5,5,133,227,5,5,12,207,5,5,15,207,5,5,10,207,5,5,131,227,5,5,145,227,5,5,148,227,5,5,240,229,192,0,0,0,5,5,146,227,5,5,229,229,5,5,11,207,5,5,18,207,5,5,22,207,5,5,140,227,5,5,224,229,5,5,144,227,5,5,7,207,5,5,226,229,5,5,147,227,5,5,228,229,5,5,136,227,192,0,0,0,5,5,199,208,192,0,0,0,5,5,134,227,5,5,135,227,5,5,17,207,192,0,0,0,192,0,0,0,5,5,16,207,5,5,138,227,5,5,21,207,5,5,142,227,5,5,14,207,5,5,139,227,192,0,0,0,5,5,19,207,5,5,203,208,5,5,200,208,5,5,227,229,192,0,0,0,5,5,137,227,192,0,0,0,5,5,9,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,208,5,5,212,208,5,5,231,229,5,5,145,210,5,5,210,208,5,5,235,229,5,5,214,208,5,5,134,232,5,5,237,229,5,5,147,210,5,5,206,208,5,5,209,208,5,5,238,229,192,0,0,0,5,5,239,229,5,5,245,229,5,5,216,208,5,5,148,210,192,0,0,0,5,5,241,229,5,5,246,229,5,5,234,229,5,5,158,210,192,0,0,0,5,5,149,210,5,5,215,208,5,5,232,229,5,5,247,229,192,0,0,0,5,5,157,210,5,5,213,208,5,5,142,210,5,5,244,229,192,0,0,0,5,5,217,208,5,5,236,229,5,5,230,229,5,5,207,208,5,5,233,229,192,0,0,0,5,5,242,229,192,0,0,0,5,5,141,210,5,5,146,210,5,5,204,208,5,5,243,229,192,0,0,0,5,5,144,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,210,5,5,59,235,5,5,145,232,192,0,0,0,5,5,137,232,5,5,58,235,192,0,0,0,5,5,141,232,5,5,143,232,192,0,0,0,192,0,0,0,5,5,140,232,192,0,0,0,5,5,155,210,192,0,0,0,5,5,139,232,5,5,159,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,235,192,0,0,0,192,0,0,0,5,5,154,210,5,5,91,212,5,5,146,232,5,5,60,235,192,0,0,0,192,0,0,0,5,5,152,210,5,5,138,232,5,5,142,232,5,5,90,212,5,5,143,210,5,5,135,232,5,5,136,232,5,5,92,212,5,5,151,210,5,5,153,210,5,5,150,210,5,5,144,232,192,0,0,0,192,0,0,0,5,5,64,235,5,5,65,235,5,5,70,235,5,5,212,213,5,5,77,235,192,0,0,0,5,5,98,212,192,0,0,0,5,5,97,212,5,5,72,235,192,0,0,0,5,5,211,213,5,5,61,235,5,5,96,212,192,0,0,0,5,5,76,235,5,5,94,212,5,5,95,212,192,0,0,0,5,5,73,235,5,5,154,237,5,5,209,213,5,5,211,208,192,0,0,0,5,5,75,235,5,5,216,213,5,5,67,235,192,0,0,0,5,5,210,213,192,0,0,0,5,5,215,213,5,5,62,235,5,5,66,235,5,5,63,235,5,5,69,235,5,5,99,212,5,5,208,213,5,5,93,212,192,0,0,0,5,5,140,237,5,5,71,235,192,0,0,0,5,5,214,213,192,0,0,0,5,5,217,213,192,0,0,0,5,5,68,235,192,0,0,0,5,5,213,213,5,5,139,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,237,5,5,65,215,5,5,138,237,5,5,13,240,5,5,153,237,5,5,221,213,192,0,0,0,5,5,219,213,5,5,63,215,5,5,150,237,5,5,146,237,5,5,225,213,192,0,0,0,5,5,4,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,213,5,5,145,237,192,0,0,0,5,5,2,240,192,0,0,0,5,5,149,237,192,0,0,0,5,5,152,237,5,5,143,237,192,0,0,0,5,5,224,213,192,0,0,0,192,0,0,0,5,5,218,213,5,5,3,240,5,5,64,215,5,5,151,237,5,5,220,213,5,5,222,213,5,5,148,237,5,5,226,213,5,5,147,237,5,5,142,237,5,5,141,237,5,5,62,215,5,5,155,237,5,5,6,240,5,5,37,242,5,5,67,215,192,0,0,0,5,5,12,240,192,0,0,0,5,5,10,240,192,0,0,0,5,5,38,242,192,0,0,0,5,5,68,215,5,5,11,240,192,0,0,0,5,5,8,240,5,5,99,216,5,5,36,242,192,0,0,0,5,5,5,240,5,5,7,240,5,5,100,216,5,5,70,215,5,5,98,216,5,5,69,215,5,5,102,216,5,5,9,240,5,5,66,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,243,192,0,0,0,5,5,229,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,242,5,5,230,243,5,5,40,242,192,0,0,0,192,0,0,0,5,5,99,217,5,5,42,242,5,5,41,242,5,5,101,216,5,5,39,242,5,5,43,242,5,5,238,243,5,5,234,243,5,5,236,243,192,0,0,0,5,5,231,243,5,5,232,243,192,0,0,0,5,5,235,243,5,5,233,243,5,5,19,218,192,0,0,0,192,0,0,0,5,5,22,218,5,5,21,218,5,5,20,218,5,5,170,218,5,5,161,246,5,5,171,218,5,5,92,245,5,5,8,219,5,5,160,247,5,5,9,219,5,5,92,219,5,5,144,219,5,5,233,248,192,0,0,0,5,5,234,248,5,5,235,248,192,0,0,0,192,0,0,0,5,5,8,250,5,5,65,199,5,5,65,220,5,5,177,199,192,0,0,0,5,5,67,200,5,5,68,200,5,5,66,200,192,0,0,0,5,5,69,200,5,5,22,201,5,5,21,201,192,0,0,0,5,5,47,222,5,5,71,202,5,5,70,202,192,0,0,0,192,0,0,0,5,5,68,225,5,5,23,207,5,5,24,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,208,5,5,147,232,5,5,160,210,5,5,161,210,5,5,149,232,5,5,151,232,5,5,150,232,192,0,0,0,5,5,79,235,192,0,0,0,5,5,78,235,5,5,100,212,5,5,80,235,192,0,0,0,5,5,156,237,5,5,227,213,192,0,0,0,5,5,71,215,192,0,0,0,5,5,103,216,5,5,100,217,5,5,104,216,192,0,0,0,5,5,66,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,221,192,0,0,0,192,0,0,0,5,5,48,222,5,5,73,202,5,5,72,202,5,5,74,202,5,5,167,203,5,5,140,223,5,5,141,223,192,0,0,0,192,0,0,0,5,5,69,225,5,5,63,205,5,5,25,207,5,5,219,208,5,5,248,229,5,5,67,199,192,0,0,0,5,5,0,198,5,5,68,199,192,0,0,0,5,5,66,220,5,5,181,199,5,5,180,199,5,5,178,199,5,5,179,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,200,5,5,140,220,5,5,142,220,5,5,71,200,5,5,134,220,192,0,0,0,5,5,135,220,192,0,0,0,5,5,141,220,5,5,137,220,5,5,139,220,5,5,70,200,5,5,136,220,5,5,143,220,5,5,138,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,201,5,5,38,201,5,5,36,201,5,5,50,221,5,5,47,221,5,5,55,221,5,5,34,201,5,5,56,221,192,0,0,0,5,5,27,201,5,5,53,221,192,0,0,0,5,5,33,201,5,5,49,221,5,5,48,221,5,5,31,201,5,5,54,221,5,5,32,201,5,5,75,202,5,5,26,201,5,5,51,221,192,0,0,0,5,5,41,221,5,5,23,201,192,0,0,0,5,5,42,201,5,5,46,221,5,5,52,221,5,5,28,201,5,5,30,201,192,0,0,0,5,5,42,221,192,0,0,0,5,5,43,221,5,5,44,221,192,0,0,0,5,5,41,201,5,5,35,201,5,5,40,201,5,5,45,221,5,5,39,201,5,5,25,201,5,5,24,201,5,5,37,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,202,5,5,60,222,5,5,53,222,5,5,84,202,5,5,103,202,5,5,49,222,5,5,56,222,5,5,58,222,5,5,61,222,5,5,98,202,192,0,0,0,5,5,57,222,5,5,50,222,5,5,96,202,5,5,54,222,192,0,0,0,5,5,62,222,5,5,81,202,192,0,0,0,5,5,59,222,5,5,91,202,5,5,90,202,5,5,52,222,5,5,79,202,192,0,0,0,192,0,0,0,5,5,80,202,192,0,0,0,5,5,78,202,192,0,0,0,5,5,102,202,5,5,94,202,5,5,88,202,5,5,76,202,5,5,55,222,5,5,87,202,5,5,77,202,5,5,95,202,5,5,104,202,5,5,142,223,5,5,92,202,5,5,51,222,5,5,82,202,5,5,85,202,5,5,86,202,192,0,0,0,5,5,100,202,5,5,101,202,5,5,99,202,5,5,93,202,5,5,97,202,5,5,83,202,5,5,168,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,223,5,5,180,203,5,5,172,203,5,5,174,203,5,5,179,203,5,5,160,223,5,5,177,203,5,5,70,225,5,5,64,205,5,5,182,203,5,5,145,223,5,5,153,223,5,5,178,203,5,5,152,223,5,5,149,223,5,5,157,223,5,5,159,223,5,5,171,203,5,5,175,203,5,5,181,203,5,5,66,205,5,5,154,223,5,5,173,203,5,5,184,203,5,5,147,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,203,5,5,65,205,5,5,170,203,192,0,0,0,5,5,144,223,5,5,151,223,5,5,143,223,5,5,146,223,5,5,150,223,5,5,71,225,5,5,183,203,192,0,0,0,5,5,155,223,5,5,156,223,5,5,158,223,5,5,169,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,205,5,5,83,225,5,5,78,205,5,5,79,205,5,5,73,225,5,5,89,225,192,0,0,0,5,5,69,205,192,0,0,0,192,0,0,0,5,5,149,227,5,5,91,225,5,5,85,225,192,0,0,0,5,5,76,225,192,0,0,0,5,5,94,225,5,5,79,225,5,5,75,205,5,5,172,227,5,5,82,225,5,5,77,205,5,5,68,205,192,0,0,0,5,5,96,225,5,5,84,225,5,5,71,205,5,5,77,225,5,5,74,225,5,5,75,225,5,5,72,205,5,5,90,225,5,5,97,225,5,5,74,205,5,5,81,225,5,5,80,225,5,5,82,205,5,5,81,205,5,5,67,205,5,5,73,205,5,5,76,205,5,5,93,225,192,0,0,0,192,0,0,0,5,5,87,225,5,5,70,205,5,5,72,225,5,5,95,225,5,5,86,225,5,5,88,225,5,5,92,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,227,192,0,0,0,5,5,33,207,5,5,53,207,5,5,52,207,192,0,0,0,5,5,41,207,192,0,0,0,5,5,168,227,5,5,164,227,5,5,161,227,5,5,179,227,5,5,36,207,5,5,28,207,192,0,0,0,192,0,0,0,5,5,166,227,5,5,235,208,5,5,32,207,5,5,174,227,192,0,0,0,5,5,54,207,5,5,51,207,5,5,170,227,5,5,153,227,192,0,0,0,192,0,0,0,5,5,50,207,5,5,176,227,5,5,152,227,5,5,39,207,5,5,43,207,5,5,175,227,192,0,0,0,5,5,162,227,5,5,44,207,5,5,38,207,5,5,151,227,192,0,0,0,5,5,221,208,5,5,178,227,5,5,160,227,5,5,49,207,5,5,163,227,5,5,177,227,5,5,48,207,192,0,0,0,5,5,249,229,192,0,0,0,5,5,29,207,5,5,158,227,5,5,34,207,5,5,45,207,192,0,0,0,5,5,40,207,5,5,167,227,5,5,157,227,5,5,155,227,5,5,173,227,5,5,26,207,5,5,46,207,5,5,30,207,5,5,220,208,5,5,171,227,5,5,31,207,192,0,0,0,5,5,27,207,5,5,42,207,5,5,37,207,5,5,35,207,5,5,159,227,5,5,47,207,5,5,156,227,5,5,169,227,5,5,165,227,5,5,251,229,5,5,250,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,227,5,5,13,230,192,0,0,0,5,5,223,208,192,0,0,0,5,5,19,230,5,5,2,230,5,5,16,230,5,5,152,232,5,5,226,208,5,5,20,230,5,5,23,230,5,5,225,208,5,5,5,230,5,5,22,230,5,5,21,230,5,5,227,208,5,5,252,229,5,5,222,208,5,5,230,208,192,0,0,0,5,5,228,208,5,5,18,230,192,0,0,0,5,5,8,230,5,5,232,208,5,5,25,230,5,5,17,230,5,5,26,230,5,5,240,208,5,5,238,208,5,5,15,230,5,5,14,230,192,0,0,0,5,5,12,230,5,5,6,230,5,5,231,208,192,0,0,0,5,5,229,208,5,5,78,225,5,5,253,229,192,0,0,0,5,5,182,232,5,5,254,229,5,5,224,208,5,5,237,208,5,5,154,232,192,0,0,0,5,5,233,208,5,5,234,208,5,5,255,229,5,5,24,230,5,5,153,232,5,5,9,230,5,5,4,230,5,5,236,208,5,5,10,230,5,5,7,230,192,0,0,0,192,0,0,0,5,5,241,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,210,192,0,0,0,192,0,0,0,5,5,157,232,5,5,176,232,5,5,181,232,5,5,169,232,5,5,172,210,5,5,186,232,5,5,169,210,5,5,155,232,192,0,0,0,5,5,156,232,5,5,162,210,5,5,171,210,5,5,163,232,5,5,174,210,5,5,175,210,5,5,164,232,192,0,0,0,5,5,177,232,5,5,183,232,5,5,170,210,192,0,0,0,5,5,164,210,5,5,162,232,5,5,158,232,5,5,185,232,5,5,167,232,5,5,168,232,5,5,159,232,5,5,179,232,5,5,170,232,5,5,180,232,5,5,172,232,192,0,0,0,5,5,165,210,5,5,81,235,5,5,168,210,5,5,166,210,5,5,184,232,5,5,175,232,5,5,171,232,192,0,0,0,192,0,0,0,5,5,160,232,5,5,110,212,5,5,174,232,5,5,173,210,5,5,166,232,192,0,0,0,5,5,165,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,210,5,5,163,210,5,5,102,235,5,5,178,232,5,5,173,232,192,0,0,0,5,5,161,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,235,192,0,0,0,5,5,82,235,5,5,93,235,192,0,0,0,5,5,100,235,5,5,108,212,5,5,239,208,5,5,98,235,5,5,103,212,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,212,5,5,105,235,192,0,0,0,5,5,83,235,5,5,96,235,5,5,84,235,5,5,95,235,5,5,106,212,5,5,99,235,5,5,11,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,235,5,5,91,235,5,5,109,212,5,5,170,237,5,5,228,213,192,0,0,0,5,5,104,235,5,5,103,235,5,5,111,212,5,5,157,237,5,5,229,213,5,5,158,237,192,0,0,0,5,5,87,235,5,5,88,235,5,5,85,235,5,5,90,235,5,5,86,235,5,5,107,235,5,5,105,212,5,5,230,213,5,5,107,212,5,5,112,212,192,0,0,0,5,5,89,235,192,0,0,0,5,5,101,235,192,0,0,0,192,0,0,0,5,5,94,235,192,0,0,0,192,0,0,0,5,5,161,237,192,0,0,0,5,5,101,212,5,5,233,213,5,5,20,240,5,5,166,237,5,5,165,237,5,5,167,237,192,0,0,0,192,0,0,0,5,5,164,237,5,5,234,213,192,0,0,0,5,5,240,213,5,5,237,213,192,0,0,0,5,5,238,213,5,5,159,237,5,5,162,237,5,5,172,237,5,5,246,213,5,5,244,213,192,0,0,0,5,5,163,237,5,5,3,230,5,5,231,213,5,5,169,237,5,5,160,237,192,0,0,0,5,5,247,213,5,5,168,237,5,5,104,212,5,5,236,213,5,5,92,235,192,0,0,0,192,0,0,0,5,5,239,213,192,0,0,0,5,5,243,213,5,5,245,213,5,5,242,213,5,5,241,213,192,0,0,0,5,5,235,213,5,5,171,237,5,5,232,213,5,5,248,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,215,5,5,76,215,5,5,19,240,5,5,85,215,5,5,82,215,192,0,0,0,5,5,73,215,5,5,80,215,5,5,21,240,5,5,78,215,5,5,72,215,192,0,0,0,5,5,79,215,192,0,0,0,5,5,18,240,5,5,106,216,5,5,74,215,192,0,0,0,5,5,81,215,5,5,105,216,5,5,17,240,5,5,16,240,192,0,0,0,5,5,83,215,192,0,0,0,5,5,84,215,192,0,0,0,5,5,15,240,5,5,14,240,5,5,107,216,5,5,24,240,5,5,77,215,5,5,22,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,216,192,0,0,0,5,5,113,216,5,5,47,242,5,5,49,242,192,0,0,0,5,5,110,216,192,0,0,0,5,5,50,242,5,5,46,242,192,0,0,0,5,5,48,242,5,5,111,216,5,5,114,216,192,0,0,0,5,5,45,242,5,5,109,216,5,5,112,216,5,5,102,217,5,5,23,240,5,5,101,217,192,0,0,0,192,0,0,0,5,5,107,217,5,5,242,243,192,0,0,0,5,5,105,217,5,5,106,217,5,5,245,243,5,5,241,243,5,5,103,217,5,5,239,243,5,5,23,218,5,5,243,243,192,0,0,0,5,5,244,243,5,5,240,243,192,0,0,0,5,5,104,217,5,5,93,245,192,0,0,0,5,5,96,245,192,0,0,0,192,0,0,0,5,5,97,245,5,5,95,245,5,5,98,245,5,5,24,218,5,5,94,245,192,0,0,0,192,0,0,0,5,5,165,246,5,5,173,218,5,5,164,246,5,5,163,246,5,5,162,246,5,5,172,218,5,5,174,218,192,0,0,0,5,5,161,247,5,5,11,219,5,5,10,219,192,0,0,0,192,0,0,0,5,5,84,248,5,5,83,248,5,5,86,248,5,5,145,219,5,5,93,219,5,5,237,248,5,5,85,248,192,0,0,0,192,0,0,0,5,5,236,248,5,5,147,219,5,5,146,219,5,5,185,219,5,5,88,249,5,5,158,249,5,5,69,199,192,0,0,0,192,0,0,0,5,5,27,230,5,5,25,240,192,0,0,0,192,0,0,0,5,5,73,200,5,5,57,221,5,5,45,201,5,5,43,201,192,0,0,0,5,5,44,201,192,0,0,0,5,5,63,222,5,5,105,202,5,5,185,203,192,0,0,0,5,5,161,223,192,0,0,0,5,5,162,223,192,0,0,0,5,5,186,203,5,5,99,225,192,0,0,0,5,5,83,205,5,5,84,205,5,5,98,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,207,192,0,0,0,5,5,57,207,192,0,0,0,5,5,180,227,5,5,64,207,5,5,63,207,5,5,56,207,5,5,59,207,5,5,62,207,5,5,58,207,192,0,0,0,192,0,0,0,5,5,31,230,5,5,55,207,5,5,242,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,208,5,5,245,208,5,5,30,230,5,5,33,230,5,5,243,208,5,5,28,230,5,5,32,230,192,0,0,0,5,5,29,230,192,0,0,0,5,5,177,210,192,0,0,0,192,0,0,0,5,5,187,232,192,0,0,0,192,0,0,0,5,5,113,212,5,5,108,235,5,5,86,215,5,5,249,213,5,5,173,237,5,5,250,213,5,5,251,213,5,5,175,237,5,5,174,237,5,5,176,237,5,5,27,240,192,0,0,0,192,0,0,0,5,5,26,240,5,5,52,242,5,5,51,242,5,5,115,216,5,5,116,216,5,5,99,245,192,0,0,0,192,0,0,0,5,5,70,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,208,5,5,246,208,5,5,188,232,192,0,0,0,5,5,246,243,5,5,12,219,5,5,238,248,5,5,71,199,192,0,0,0,5,5,85,205,192,0,0,0,5,5,66,207,5,5,65,207,5,5,35,230,5,5,36,230,5,5,178,210,5,5,109,235,5,5,114,212,5,5,28,240,192,0,0,0,5,5,72,199,5,5,182,199,192,0,0,0,5,5,106,202,5,5,64,222,192,0,0,0,5,5,163,223,5,5,187,203,5,5,67,207,192,0,0,0,5,5,37,230,5,5,248,208,5,5,179,210,192,0,0,0,5,5,177,237,5,5,178,237,192,0,0,0,192,0,0,0,5,5,53,242,5,5,108,217,5,5,159,249,5,5,73,199,192,0,0,0,5,5,65,222,5,5,107,202,5,5,188,203,192,0,0,0,5,5,164,223,192,0,0,0,5,5,86,205,5,5,103,225,5,5,101,225,5,5,102,225,5,5,87,205,5,5,100,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,207,5,5,70,207,5,5,181,227,5,5,71,207,5,5,68,207,5,5,38,230,192,0,0,0,5,5,39,230,5,5,189,232,192,0,0,0,192,0,0,0,5,5,116,212,5,5,115,212,192,0,0,0,192,0,0,0,5,5,54,242,5,5,247,243,192,0,0,0,5,5,101,245,5,5,100,245,5,5,166,246,192,0,0,0,5,5,35,220,5,5,189,203,192,0,0,0,192,0,0,0,5,5,74,199,5,5,183,199,192,0,0,0,5,5,75,200,5,5,74,200,192,0,0,0,192,0,0,0,5,5,76,200,5,5,77,200,5,5,145,220,5,5,144,220,5,5,58,221,5,5,46,201,5,5,61,221,5,5,60,221,5,5,59,221,5,5,62,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,202,5,5,71,222,5,5,67,222,5,5,76,222,192,0,0,0,192,0,0,0,5,5,115,202,192,0,0,0,5,5,113,202,5,5,72,222,5,5,68,222,5,5,75,222,5,5,112,202,5,5,119,202,5,5,70,222,5,5,66,222,5,5,118,202,5,5,73,222,5,5,111,202,5,5,74,222,5,5,114,202,5,5,116,202,5,5,78,222,5,5,77,222,5,5,69,222,5,5,110,202,5,5,109,202,5,5,117,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,223,5,5,175,223,192,0,0,0,5,5,195,203,5,5,192,203,5,5,166,223,5,5,171,223,192,0,0,0,5,5,198,203,5,5,190,203,5,5,170,223,5,5,193,203,5,5,196,203,192,0,0,0,192,0,0,0,5,5,173,223,192,0,0,0,5,5,191,203,5,5,178,223,5,5,194,203,192,0,0,0,5,5,197,203,5,5,167,223,5,5,172,223,5,5,176,223,5,5,168,223,5,5,165,223,192,0,0,0,192,0,0,0,5,5,177,223,5,5,174,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,205,5,5,88,205,5,5,91,205,192,0,0,0,5,5,94,205,192,0,0,0,5,5,106,225,192,0,0,0,5,5,89,205,5,5,104,225,192,0,0,0,5,5,93,205,192,0,0,0,192,0,0,0,5,5,90,205,192,0,0,0,5,5,107,225,5,5,92,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,227,5,5,73,207,5,5,184,227,5,5,186,227,5,5,72,207,5,5,77,207,5,5,105,225,192,0,0,0,5,5,183,227,5,5,187,227,192,0,0,0,5,5,74,207,5,5,182,227,5,5,76,207,192,0,0,0,5,5,75,207,192,0,0,0,5,5,46,230,192,0,0,0,5,5,41,230,192,0,0,0,5,5,249,208,5,5,253,208,5,5,250,208,5,5,44,230,5,5,47,230,192,0,0,0,5,5,251,208,192,0,0,0,5,5,252,208,5,5,3,209,5,5,198,232,5,5,45,230,5,5,255,208,5,5,42,230,5,5,40,230,192,0,0,0,5,5,2,209,192,0,0,0,5,5,43,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,210,192,0,0,0,5,5,190,232,5,5,182,210,5,5,183,210,5,5,181,210,5,5,195,232,5,5,194,232,5,5,191,232,5,5,187,210,192,0,0,0,192,0,0,0,5,5,193,232,5,5,254,208,192,0,0,0,192,0,0,0,5,5,197,232,5,5,192,232,5,5,184,210,5,5,180,210,5,5,186,210,5,5,196,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,212,192,0,0,0,5,5,112,235,5,5,111,235,5,5,110,235,5,5,117,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,212,5,5,181,237,5,5,184,237,5,5,253,213,192,0,0,0,192,0,0,0,5,5,252,213,5,5,185,237,5,5,180,237,5,5,255,213,5,5,182,237,192,0,0,0,5,5,254,213,5,5,179,237,192,0,0,0,5,5,183,237,5,5,92,215,5,5,89,215,5,5,37,240,5,5,36,240,192,0,0,0,5,5,35,240,5,5,30,240,192,0,0,0,5,5,31,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,215,192,0,0,0,5,5,87,215,5,5,91,215,5,5,29,240,5,5,88,215,5,5,32,240,5,5,33,240,5,5,38,240,192,0,0,0,192,0,0,0,5,5,34,240,192,0,0,0,192,0,0,0,5,5,55,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,216,192,0,0,0,5,5,250,243,5,5,117,216,5,5,248,243,5,5,249,243,5,5,109,217,5,5,26,218,5,5,102,245,192,0,0,0,5,5,25,218,192,0,0,0,192,0,0,0,5,5,168,246,5,5,169,246,192,0,0,0,5,5,175,218,192,0,0,0,5,5,167,246,5,5,13,219,192,0,0,0,5,5,239,248,5,5,148,219,5,5,89,249,5,5,90,249,192,0,0,0,5,5,75,199,192,0,0,0,5,5,78,200,5,5,79,200,5,5,47,201,192,0,0,0,5,5,79,222,5,5,199,203,5,5,96,205,5,5,78,207,192,0,0,0,192,0,0,0,5,5,157,206,192,0,0,0,5,5,4,209,5,5,5,209,5,5,114,208,5,5,48,230,192,0,0,0,5,5,188,210,5,5,114,235,5,5,113,235,192,0,0,0,192,0,0,0,5,5,76,199,5,5,80,200,5,5,80,222,5,5,121,202,192,0,0,0,5,5,120,202,192,0,0,0,5,5,179,223,5,5,180,223,192,0,0,0,5,5,108,225,5,5,109,225,5,5,97,205,5,5,98,205,192,0,0,0,5,5,99,205,5,5,188,227,192,0,0,0,192,0,0,0,5,5,80,207,192,0,0,0,5,5,7,209,192,0,0,0,5,5,6,209,5,5,199,232,5,5,214,233,5,5,115,235,5,5,39,240,192,0,0,0,192,0,0,0,5,5,110,217,5,5,176,218,5,5,77,199,192,0,0,0,5,5,186,199,5,5,187,199,5,5,185,199,5,5,188,199,5,5,184,199,192,0,0,0,192,0,0,0,5,5,83,200,192,0,0,0,5,5,153,220,5,5,82,200,5,5,84,200,192,0,0,0,192,0,0,0,5,5,148,220,5,5,147,220,5,5,150,220,5,5,149,220,5,5,152,220,5,5,81,200,5,5,146,220,5,5,151,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,221,5,5,57,201,5,5,64,221,5,5,68,221,5,5,56,201,192,0,0,0,5,5,72,221,5,5,67,221,5,5,70,221,5,5,49,201,5,5,50,201,5,5,51,201,5,5,52,201,192,0,0,0,5,5,59,201,192,0,0,0,5,5,66,221,5,5,54,201,5,5,60,201,192,0,0,0,5,5,65,221,5,5,71,221,192,0,0,0,5,5,53,201,5,5,69,221,5,5,55,201,5,5,48,201,5,5,58,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,202,192,0,0,0,5,5,82,222,5,5,122,202,192,0,0,0,5,5,132,202,5,5,133,202,5,5,125,202,5,5,143,202,5,5,127,202,5,5,90,222,5,5,138,202,5,5,85,222,5,5,128,202,5,5,100,222,5,5,101,222,5,5,93,222,5,5,86,222,5,5,141,202,5,5,98,222,5,5,136,202,5,5,134,202,192,0,0,0,5,5,99,222,192,0,0,0,5,5,97,222,5,5,89,222,5,5,81,222,5,5,88,222,5,5,129,202,192,0,0,0,5,5,135,202,192,0,0,0,5,5,123,202,5,5,92,222,5,5,91,222,5,5,83,222,192,0,0,0,5,5,137,202,5,5,95,222,5,5,84,222,5,5,140,202,5,5,102,222,5,5,124,202,192,0,0,0,5,5,131,202,5,5,87,222,5,5,96,222,5,5,139,202,192,0,0,0,5,5,126,202,5,5,130,202,192,0,0,0,5,5,94,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,223,5,5,207,203,5,5,220,203,192,0,0,0,5,5,207,223,5,5,197,223,5,5,213,203,5,5,195,223,5,5,206,203,5,5,190,223,5,5,216,203,5,5,203,223,5,5,184,223,5,5,186,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,223,5,5,181,223,5,5,202,223,5,5,218,223,5,5,211,203,5,5,191,223,5,5,209,223,192,0,0,0,5,5,183,223,5,5,216,223,5,5,217,223,5,5,220,223,5,5,211,223,5,5,196,223,5,5,204,223,5,5,217,203,5,5,204,203,5,5,212,203,5,5,224,203,5,5,201,203,5,5,203,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,223,5,5,221,203,5,5,214,203,5,5,214,223,5,5,185,223,5,5,223,203,5,5,218,203,5,5,194,223,192,0,0,0,192,0,0,0,5,5,222,203,5,5,201,223,5,5,193,223,5,5,215,203,5,5,213,223,5,5,205,223,192,0,0,0,5,5,209,203,5,5,219,223,5,5,192,223,5,5,205,203,5,5,210,223,5,5,200,223,5,5,210,203,5,5,206,223,5,5,202,203,5,5,182,223,5,5,219,203,5,5,114,205,5,5,208,203,5,5,199,223,5,5,198,223,5,5,187,223,192,0,0,0,5,5,215,223,192,0,0,0,5,5,208,223,192,0,0,0,192,0,0,0,5,5,200,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,225,5,5,121,205,5,5,130,225,192,0,0,0,5,5,118,225,5,5,110,205,5,5,122,205,192,0,0,0,5,5,111,225,192,0,0,0,5,5,120,225,5,5,128,225,192,0,0,0,5,5,110,225,5,5,137,225,5,5,100,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,225,5,5,131,225,192,0,0,0,5,5,132,225,5,5,108,205,5,5,119,205,5,5,122,225,192,0,0,0,5,5,123,225,5,5,133,225,5,5,124,225,192,0,0,0,5,5,119,225,5,5,113,225,5,5,114,225,5,5,127,225,5,5,121,225,192,0,0,0,192,0,0,0,5,5,101,205,5,5,105,205,5,5,135,225,5,5,115,225,5,5,117,205,5,5,113,205,192,0,0,0,192,0,0,0,5,5,116,205,5,5,123,205,5,5,106,205,5,5,118,205,5,5,126,225,5,5,120,205,5,5,103,205,192,0,0,0,5,5,102,205,5,5,112,225,192,0,0,0,5,5,116,225,5,5,111,205,5,5,134,225,5,5,125,225,5,5,117,225,5,5,115,205,5,5,112,205,192,0,0,0,5,5,104,205,5,5,107,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,227,192,0,0,0,5,5,193,227,5,5,194,227,5,5,198,227,192,0,0,0,5,5,213,227,5,5,210,227,192,0,0,0,5,5,203,227,5,5,202,227,5,5,87,207,5,5,206,227,5,5,221,227,5,5,189,227,192,0,0,0,5,5,222,227,5,5,208,227,5,5,226,227,5,5,214,227,5,5,86,207,5,5,212,227,5,5,81,207,5,5,102,207,5,5,92,207,192,0,0,0,5,5,96,207,5,5,95,207,5,5,190,227,192,0,0,0,5,5,219,227,5,5,225,227,5,5,217,227,5,5,224,227,192,0,0,0,192,0,0,0,5,5,205,227,5,5,191,227,5,5,223,227,5,5,207,227,5,5,84,207,5,5,97,207,192,0,0,0,5,5,216,227,5,5,90,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,227,5,5,192,227,5,5,98,207,192,0,0,0,5,5,100,207,5,5,218,227,5,5,101,207,5,5,83,207,5,5,199,227,5,5,220,227,192,0,0,0,192,0,0,0,5,5,89,207,5,5,99,207,5,5,201,227,5,5,211,227,5,5,196,227,5,5,200,227,5,5,94,207,5,5,195,227,5,5,82,207,5,5,91,207,5,5,88,207,5,5,204,227,5,5,109,205,5,5,71,230,5,5,85,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,207,192,0,0,0,5,5,74,230,5,5,96,230,5,5,85,230,5,5,27,209,192,0,0,0,5,5,22,209,5,5,68,230,5,5,23,209,5,5,84,230,192,0,0,0,5,5,77,230,5,5,90,230,5,5,19,209,5,5,50,230,5,5,92,230,5,5,9,209,5,5,58,230,5,5,12,209,5,5,11,209,192,0,0,0,5,5,28,209,192,0,0,0,5,5,52,230,5,5,86,230,5,5,87,230,5,5,14,209,5,5,10,209,5,5,66,230,192,0,0,0,5,5,21,209,5,5,61,230,192,0,0,0,5,5,88,230,5,5,17,209,5,5,80,230,5,5,93,230,5,5,55,230,5,5,60,230,5,5,54,230,192,0,0,0,5,5,16,209,5,5,73,230,5,5,221,232,5,5,56,230,5,5,20,209,5,5,65,230,5,5,89,230,5,5,15,209,5,5,62,230,5,5,59,230,5,5,76,230,5,5,18,209,5,5,8,209,5,5,30,209,5,5,79,230,5,5,78,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,230,5,5,13,209,5,5,91,230,5,5,67,230,5,5,69,230,192,0,0,0,5,5,82,230,5,5,81,230,5,5,49,230,5,5,24,209,5,5,26,209,5,5,57,230,5,5,64,230,5,5,72,230,5,5,25,209,5,5,63,230,5,5,75,230,5,5,94,230,192,0,0,0,5,5,83,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,232,5,5,196,210,192,0,0,0,5,5,239,232,5,5,218,232,5,5,223,232,5,5,216,232,192,0,0,0,5,5,235,232,5,5,202,232,5,5,209,232,192,0,0,0,5,5,233,232,5,5,243,232,5,5,219,232,192,0,0,0,5,5,206,232,5,5,225,232,5,5,230,232,5,5,210,232,192,0,0,0,5,5,227,232,5,5,207,232,192,0,0,0,192,0,0,0,5,5,214,232,5,5,215,232,5,5,198,210,5,5,234,232,5,5,232,232,192,0,0,0,5,5,203,232,5,5,237,232,192,0,0,0,5,5,238,232,5,5,240,232,5,5,202,210,5,5,194,210,192,0,0,0,5,5,197,227,5,5,211,232,5,5,229,232,5,5,212,232,5,5,191,210,5,5,207,210,5,5,236,232,5,5,205,210,5,5,201,210,5,5,201,232,5,5,193,210,192,0,0,0,5,5,204,232,5,5,206,210,192,0,0,0,5,5,220,232,5,5,200,232,192,0,0,0,5,5,199,210,5,5,224,232,5,5,208,232,5,5,200,210,5,5,217,232,5,5,190,210,5,5,29,209,5,5,226,232,5,5,70,230,5,5,205,232,192,0,0,0,192,0,0,0,5,5,231,232,5,5,195,210,5,5,228,232,5,5,192,210,5,5,222,232,5,5,203,210,5,5,213,232,5,5,242,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,210,5,5,99,233,192,0,0,0,192,0,0,0,5,5,204,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,235,5,5,127,235,192,0,0,0,5,5,149,235,5,5,125,235,192,0,0,0,5,5,143,235,5,5,189,210,5,5,122,212,5,5,121,235,5,5,148,235,192,0,0,0,5,5,126,235,5,5,140,235,5,5,127,212,5,5,120,212,192,0,0,0,5,5,146,235,192,0,0,0,5,5,119,235,5,5,145,235,192,0,0,0,5,5,138,212,5,5,136,235,5,5,152,235,5,5,136,212,5,5,128,235,5,5,121,212,5,5,130,235,5,5,144,235,5,5,130,212,5,5,123,235,5,5,134,212,5,5,124,212,5,5,132,235,5,5,122,235,5,5,116,235,192,0,0,0,5,5,142,235,5,5,131,212,5,5,151,235,5,5,117,235,5,5,128,212,192,0,0,0,5,5,138,235,192,0,0,0,5,5,129,212,5,5,124,235,5,5,135,235,5,5,131,235,5,5,133,235,192,0,0,0,5,5,123,212,5,5,150,235,5,5,137,212,5,5,134,235,192,0,0,0,5,5,153,235,192,0,0,0,192,0,0,0,5,5,118,235,5,5,139,235,5,5,126,212,5,5,135,212,5,5,133,212,5,5,120,235,5,5,141,235,5,5,132,212,192,0,0,0,192,0,0,0,5,5,125,212,5,5,137,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,237,192,0,0,0,5,5,193,237,5,5,189,237,5,5,209,237,5,5,206,237,5,5,4,214,192,0,0,0,192,0,0,0,5,5,213,237,5,5,196,237,5,5,15,214,5,5,203,237,192,0,0,0,192,0,0,0,5,5,192,237,5,5,202,237,5,5,12,214,5,5,222,237,192,0,0,0,5,5,219,237,5,5,205,237,5,5,190,237,192,0,0,0,192,0,0,0,5,5,210,237,5,5,212,237,5,5,8,214,5,5,200,237,5,5,195,237,5,5,186,237,5,5,5,214,5,5,13,214,192,0,0,0,5,5,215,237,5,5,14,214,5,5,187,237,5,5,221,237,5,5,208,237,5,5,214,237,5,5,11,214,192,0,0,0,192,0,0,0,5,5,211,237,192,0,0,0,5,5,218,237,192,0,0,0,5,5,16,214,192,0,0,0,5,5,10,214,5,5,204,237,5,5,191,237,5,5,223,237,5,5,188,237,5,5,216,237,5,5,7,214,192,0,0,0,5,5,198,237,192,0,0,0,5,5,199,237,5,5,6,214,5,5,3,214,5,5,194,237,5,5,9,214,192,0,0,0,5,5,2,214,192,0,0,0,5,5,217,237,5,5,220,237,5,5,201,237,5,5,52,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,240,192,0,0,0,5,5,40,240,5,5,105,215,192,0,0,0,192,0,0,0,5,5,94,215,5,5,99,215,5,5,95,215,5,5,54,240,5,5,65,240,5,5,93,215,5,5,46,240,5,5,55,240,5,5,207,237,5,5,56,240,192,0,0,0,192,0,0,0,5,5,100,215,192,0,0,0,5,5,71,240,5,5,104,215,5,5,107,215,5,5,42,240,192,0,0,0,5,5,103,215,192,0,0,0,5,5,69,240,5,5,70,240,5,5,60,240,5,5,59,240,5,5,51,240,192,0,0,0,192,0,0,0,5,5,61,240,5,5,68,240,5,5,67,240,192,0,0,0,5,5,98,215,5,5,96,215,5,5,53,240,5,5,50,240,192,0,0,0,5,5,47,240,5,5,66,240,5,5,106,215,5,5,64,240,5,5,102,215,5,5,101,215,192,0,0,0,5,5,58,240,192,0,0,0,5,5,41,240,5,5,43,240,5,5,45,240,5,5,63,240,5,5,57,240,5,5,97,215,192,0,0,0,5,5,48,240,192,0,0,0,5,5,62,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,216,5,5,73,242,5,5,119,216,5,5,58,242,192,0,0,0,5,5,69,242,5,5,121,216,5,5,76,242,192,0,0,0,5,5,65,242,192,0,0,0,5,5,60,242,192,0,0,0,192,0,0,0,5,5,77,242,5,5,56,242,5,5,67,242,192,0,0,0,5,5,128,216,5,5,72,242,5,5,78,242,5,5,66,242,5,5,120,216,5,5,68,242,5,5,57,242,5,5,127,216,192,0,0,0,192,0,0,0,5,5,75,242,5,5,62,242,5,5,123,216,192,0,0,0,5,5,64,242,5,5,61,242,5,5,129,216,5,5,63,242,5,5,122,216,5,5,125,216,5,5,71,242,5,5,59,242,5,5,74,242,192,0,0,0,5,5,70,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,217,5,5,7,244,5,5,117,217,5,5,118,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,217,5,5,6,244,192,0,0,0,5,5,3,244,5,5,4,244,5,5,115,217,5,5,252,243,5,5,2,244,5,5,114,217,192,0,0,0,5,5,253,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,217,5,5,113,217,192,0,0,0,5,5,251,243,5,5,255,243,5,5,5,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,245,5,5,105,245,5,5,114,245,192,0,0,0,5,5,113,245,5,5,111,245,5,5,106,245,192,0,0,0,5,5,30,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,245,5,5,29,218,5,5,124,216,5,5,110,245,5,5,28,218,5,5,115,245,5,5,109,245,5,5,104,245,5,5,254,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,218,192,0,0,0,5,5,103,245,5,5,173,246,192,0,0,0,5,5,172,246,5,5,112,245,5,5,177,218,192,0,0,0,5,5,176,246,5,5,177,246,5,5,171,246,5,5,175,246,192,0,0,0,5,5,170,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,247,5,5,174,246,5,5,16,219,5,5,14,219,5,5,163,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,247,192,0,0,0,5,5,162,247,5,5,164,247,5,5,15,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,248,5,5,89,248,5,5,94,219,5,5,87,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,248,5,5,149,219,5,5,240,248,5,5,241,248,5,5,91,249,192,0,0,0,192,0,0,0,5,5,219,219,5,5,162,249,5,5,160,249,5,5,161,249,5,5,163,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,250,192,0,0,0,5,5,78,199,5,5,85,200,192,0,0,0,5,5,144,202,192,0,0,0,5,5,103,222,192,0,0,0,192,0,0,0,5,5,221,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,225,5,5,140,225,192,0,0,0,5,5,139,225,192,0,0,0,5,5,141,225,5,5,103,207,5,5,228,227,5,5,142,225,192,0,0,0,5,5,227,227,5,5,229,227,5,5,230,227,5,5,97,230,5,5,32,209,5,5,98,230,5,5,100,230,5,5,33,209,5,5,31,209,5,5,99,230,192,0,0,0,5,5,249,232,5,5,247,232,5,5,246,232,192,0,0,0,5,5,245,232,5,5,244,232,5,5,208,210,5,5,248,232,5,5,139,212,5,5,154,235,5,5,156,235,5,5,140,212,5,5,155,235,5,5,18,214,192,0,0,0,5,5,17,214,5,5,224,237,192,0,0,0,192,0,0,0,5,5,73,240,5,5,72,240,5,5,74,240,192,0,0,0,192,0,0,0,5,5,108,215,192,0,0,0,5,5,79,242,5,5,130,216,192,0,0,0,5,5,8,244,5,5,119,217,5,5,116,245,5,5,95,219,5,5,79,199,5,5,189,199,5,5,86,200,5,5,61,201,5,5,145,202,5,5,146,202,192,0,0,0,192,0,0,0,5,5,225,203,192,0,0,0,192,0,0,0,5,5,143,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,238,5,5,109,215,5,5,120,217,5,5,80,199,192,0,0,0,5,5,87,200,192,0,0,0,192,0,0,0,5,5,105,222,5,5,147,202,5,5,104,222,192,0,0,0,5,5,222,223,5,5,226,203,5,5,223,223,192,0,0,0,5,5,227,203,192,0,0,0,5,5,145,225,5,5,125,205,5,5,124,205,192,0,0,0,5,5,235,227,5,5,233,227,5,5,234,227,5,5,232,227,192,0,0,0,5,5,231,227,192,0,0,0,192,0,0,0,5,5,101,230,5,5,104,230,5,5,35,209,5,5,102,230,5,5,34,209,5,5,103,230,192,0,0,0,5,5,250,232,192,0,0,0,192,0,0,0,5,5,157,235,5,5,158,235,5,5,159,235,192,0,0,0,5,5,227,237,5,5,226,237,5,5,19,214,5,5,225,237,5,5,228,237,5,5,75,240,192,0,0,0,192,0,0,0,5,5,76,240,5,5,77,240,192,0,0,0,5,5,80,242,5,5,131,216,5,5,121,217,5,5,117,245,192,0,0,0,5,5,17,219,5,5,36,220,192,0,0,0,5,5,228,203,5,5,224,223,5,5,126,205,192,0,0,0,192,0,0,0,5,5,104,207,192,0,0,0,5,5,36,209,5,5,105,230,192,0,0,0,5,5,211,210,5,5,210,210,192,0,0,0,192,0,0,0,5,5,160,235,5,5,161,235,5,5,20,214,5,5,21,214,5,5,79,240,5,5,78,240,5,5,9,244,5,5,243,248,5,5,81,199,5,5,37,220,5,5,190,199,192,0,0,0,5,5,62,201,5,5,73,221,192,0,0,0,5,5,229,203,5,5,212,210,5,5,82,199,192,0,0,0,5,5,225,223,5,5,230,203,5,5,226,223,192,0,0,0,5,5,132,216,5,5,83,199,192,0,0,0,192,0,0,0,5,5,106,222,192,0,0,0,5,5,227,223,192,0,0,0,5,5,150,225,5,5,149,225,5,5,147,225,192,0,0,0,5,5,146,225,5,5,151,225,5,5,148,225,192,0,0,0,192,0,0,0,5,5,105,207,5,5,106,207,192,0,0,0,192,0,0,0,5,5,37,209,5,5,106,230,192,0,0,0,5,5,107,230,5,5,108,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,232,5,5,255,232,5,5,253,232,192,0,0,0,5,5,251,232,5,5,252,232,5,5,213,210,5,5,162,235,5,5,231,237,5,5,230,237,5,5,229,237,5,5,232,237,5,5,81,240,5,5,80,240,5,5,110,215,5,5,82,240,192,0,0,0,5,5,133,216,5,5,81,242,192,0,0,0,5,5,10,244,5,5,118,245,5,5,90,248,192,0,0,0,5,5,84,199,5,5,192,199,5,5,191,199,192,0,0,0,5,5,148,202,5,5,38,220,5,5,67,220,5,5,88,200,192,0,0,0,5,5,154,220,5,5,74,221,5,5,75,221,5,5,149,202,192,0,0,0,5,5,107,222,192,0,0,0,5,5,231,203,5,5,228,223,5,5,229,223,192,0,0,0,5,5,127,205,5,5,131,205,5,5,152,225,5,5,130,205,5,5,128,205,5,5,129,205,192,0,0,0,5,5,236,227,5,5,107,207,5,5,40,209,192,0,0,0,5,5,38,209,5,5,39,209,5,5,109,230,192,0,0,0,192,0,0,0,5,5,141,212,5,5,85,199,192,0,0,0,5,5,68,220,192,0,0,0,5,5,193,199,192,0,0,0,192,0,0,0,5,5,71,220,192,0,0,0,192,0,0,0,5,5,196,199,5,5,70,220,5,5,195,199,5,5,194,199,5,5,63,201,5,5,69,220,192,0,0,0,192,0,0,0,5,5,155,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,220,5,5,161,220,5,5,162,220,5,5,98,200,5,5,99,200,5,5,158,220,5,5,94,200,192,0,0,0,5,5,156,220,192,0,0,0,5,5,160,220,5,5,95,200,192,0,0,0,5,5,90,200,192,0,0,0,5,5,91,200,192,0,0,0,5,5,97,200,5,5,157,220,5,5,89,200,5,5,64,201,5,5,92,200,5,5,93,200,5,5,96,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,221,5,5,90,221,5,5,77,221,5,5,76,201,5,5,84,221,5,5,71,201,5,5,78,221,192,0,0,0,5,5,86,221,192,0,0,0,5,5,83,221,5,5,74,201,5,5,82,221,5,5,81,201,5,5,91,221,5,5,83,201,192,0,0,0,5,5,85,201,192,0,0,0,5,5,76,221,192,0,0,0,5,5,72,201,5,5,93,221,192,0,0,0,5,5,79,201,5,5,82,201,192,0,0,0,5,5,130,222,5,5,66,201,5,5,89,201,5,5,80,201,5,5,79,221,5,5,69,201,5,5,84,201,5,5,87,221,5,5,67,201,5,5,68,201,5,5,128,222,5,5,80,221,5,5,75,201,5,5,86,201,5,5,94,221,5,5,81,221,5,5,73,201,192,0,0,0,5,5,78,201,5,5,108,222,5,5,87,201,5,5,88,221,5,5,77,201,192,0,0,0,5,5,88,201,5,5,65,201,5,5,85,221,5,5,70,201,5,5,89,221,5,5,129,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,202,5,5,177,202,5,5,115,222,5,5,168,202,192,0,0,0,5,5,136,222,5,5,153,202,192,0,0,0,5,5,156,202,5,5,127,222,192,0,0,0,5,5,113,222,5,5,117,222,5,5,164,202,5,5,166,202,5,5,120,222,5,5,173,202,5,5,159,202,5,5,157,202,5,5,158,202,5,5,172,202,5,5,132,222,5,5,167,202,5,5,119,222,5,5,121,222,5,5,165,202,5,5,170,202,5,5,122,222,5,5,135,222,192,0,0,0,5,5,232,203,5,5,176,202,192,0,0,0,5,5,154,202,5,5,134,222,192,0,0,0,5,5,138,222,5,5,118,222,5,5,140,222,5,5,125,222,5,5,163,202,5,5,114,222,5,5,162,202,5,5,180,202,5,5,169,202,192,0,0,0,5,5,112,222,5,5,238,223,5,5,175,202,5,5,179,202,5,5,126,222,5,5,131,222,192,0,0,0,5,5,181,202,5,5,174,202,5,5,160,202,5,5,150,202,192,0,0,0,5,5,155,202,192,0,0,0,5,5,116,222,5,5,151,202,5,5,139,222,192,0,0,0,5,5,110,222,5,5,109,222,5,5,123,222,5,5,111,222,5,5,178,202,5,5,132,205,5,5,171,202,5,5,124,222,5,5,152,202,192,0,0,0,5,5,247,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,223,5,5,248,223,192,0,0,0,5,5,251,223,5,5,240,223,192,0,0,0,192,0,0,0,5,5,254,223,5,5,3,224,5,5,5,224,5,5,237,223,5,5,233,203,5,5,238,203,5,5,157,225,5,5,254,203,5,5,252,223,5,5,6,224,5,5,244,223,5,5,236,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,225,5,5,241,203,5,5,249,223,5,5,241,223,5,5,243,223,5,5,246,203,192,0,0,0,5,5,246,223,5,5,240,203,5,5,233,223,5,5,255,223,192,0,0,0,5,5,4,224,192,0,0,0,192,0,0,0,5,5,237,203,192,0,0,0,5,5,249,203,5,5,230,223,5,5,251,203,5,5,235,203,5,5,255,203,5,5,2,224,5,5,232,223,5,5,252,203,5,5,178,225,5,5,133,222,5,5,239,203,5,5,234,203,5,5,239,223,5,5,231,223,5,5,253,203,5,5,245,203,5,5,250,223,5,5,250,203,5,5,248,203,5,5,242,223,5,5,242,203,5,5,234,223,5,5,243,203,5,5,244,203,5,5,235,223,5,5,253,223,5,5,236,203,5,5,247,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,225,5,5,140,205,5,5,145,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,225,5,5,175,225,5,5,171,225,5,5,158,225,5,5,161,225,5,5,154,225,5,5,155,225,5,5,152,205,5,5,137,205,5,5,170,225,5,5,179,225,5,5,147,205,5,5,133,205,192,0,0,0,5,5,142,205,5,5,162,225,5,5,144,205,5,5,163,225,5,5,173,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,205,5,5,188,225,5,5,156,225,5,5,139,205,5,5,138,205,5,5,150,205,5,5,153,225,5,5,186,225,5,5,174,225,5,5,187,225,5,5,181,225,5,5,167,225,5,5,182,225,192,0,0,0,5,5,176,225,5,5,185,225,5,5,183,225,5,5,151,205,5,5,168,225,5,5,136,205,5,5,135,205,5,5,143,205,5,5,149,205,5,5,180,225,5,5,148,205,5,5,165,225,5,5,108,207,192,0,0,0,5,5,189,225,5,5,164,225,5,5,159,225,5,5,141,205,5,5,153,205,5,5,134,205,192,0,0,0,5,5,172,225,5,5,177,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,207,5,5,238,227,5,5,242,227,192,0,0,0,5,5,123,207,5,5,121,207,192,0,0,0,192,0,0,0,5,5,112,207,5,5,240,227,5,5,239,227,5,5,132,207,192,0,0,0,5,5,245,227,5,5,126,207,192,0,0,0,5,5,9,228,5,5,21,228,5,5,109,207,5,5,6,228,5,5,253,227,5,5,144,207,5,5,237,227,192,0,0,0,5,5,11,228,192,0,0,0,5,5,141,207,5,5,129,207,5,5,140,207,5,5,119,207,5,5,249,227,5,5,13,228,5,5,5,228,5,5,120,207,5,5,114,207,5,5,19,228,192,0,0,0,5,5,12,228,5,5,14,228,5,5,122,207,5,5,130,207,5,5,16,228,5,5,247,227,5,5,10,228,5,5,252,227,5,5,18,228,5,5,135,207,5,5,111,207,5,5,133,207,5,5,3,228,5,5,255,227,5,5,2,228,5,5,124,207,5,5,251,227,5,5,250,227,5,5,113,207,5,5,244,227,5,5,20,228,5,5,115,207,5,5,254,227,5,5,145,207,192,0,0,0,5,5,139,207,5,5,243,227,5,5,136,207,5,5,134,207,5,5,143,207,5,5,7,228,5,5,138,207,5,5,166,225,5,5,8,228,5,5,137,207,5,5,15,228,5,5,110,207,5,5,4,228,5,5,128,207,5,5,246,227,5,5,127,207,192,0,0,0,5,5,125,207,5,5,117,207,5,5,116,207,5,5,110,230,5,5,17,228,192,0,0,0,192,0,0,0,5,5,248,227,192,0,0,0,192,0,0,0,5,5,131,230,192,0,0,0,5,5,118,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,209,5,5,131,207,5,5,51,209,5,5,125,230,5,5,65,209,192,0,0,0,5,5,113,230,5,5,48,209,5,5,44,209,5,5,143,230,5,5,50,209,5,5,54,209,5,5,49,209,5,5,58,209,5,5,147,230,5,5,138,230,192,0,0,0,192,0,0,0,5,5,120,230,5,5,63,209,5,5,57,209,5,5,132,230,5,5,41,209,5,5,144,230,5,5,137,230,5,5,45,209,5,5,126,230,5,5,60,209,5,5,155,230,5,5,156,230,192,0,0,0,5,5,42,209,5,5,142,230,5,5,62,209,5,5,130,230,5,5,116,230,5,5,117,230,5,5,66,209,5,5,121,230,5,5,128,230,5,5,122,230,192,0,0,0,5,5,64,209,5,5,72,209,5,5,118,230,5,5,111,230,5,5,112,230,192,0,0,0,5,5,114,230,5,5,47,209,5,5,127,230,192,0,0,0,5,5,61,209,5,5,70,209,192,0,0,0,192,0,0,0,5,5,129,230,5,5,153,230,5,5,145,230,5,5,43,209,5,5,151,230,5,5,55,209,192,0,0,0,5,5,53,209,192,0,0,0,5,5,157,230,5,5,52,209,5,5,135,230,5,5,123,230,5,5,133,230,5,5,75,209,5,5,139,230,5,5,136,230,5,5,119,230,5,5,71,209,5,5,149,230,5,5,146,230,5,5,154,230,5,5,46,209,5,5,134,230,5,5,74,209,192,0,0,0,5,5,141,230,192,0,0,0,192,0,0,0,5,5,56,209,5,5,59,209,192,0,0,0,5,5,140,230,5,5,73,209,5,5,124,230,5,5,241,227,192,0,0,0,192,0,0,0,5,5,150,230,5,5,148,230,5,5,152,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,230,5,5,68,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,233,5,5,31,233,5,5,5,233,5,5,219,210,192,0,0,0,5,5,30,233,5,5,8,233,5,5,9,233,192,0,0,0,5,5,229,210,5,5,39,233,5,5,224,210,5,5,29,233,192,0,0,0,5,5,2,233,5,5,230,210,5,5,220,210,5,5,17,233,5,5,7,233,5,5,10,233,5,5,34,233,5,5,214,210,5,5,41,233,5,5,33,233,5,5,223,210,5,5,22,233,5,5,234,210,192,0,0,0,192,0,0,0,5,5,233,210,5,5,227,210,192,0,0,0,192,0,0,0,5,5,40,233,5,5,215,210,5,5,20,233,5,5,11,233,5,5,24,233,5,5,36,233,5,5,235,210,192,0,0,0,5,5,217,210,5,5,19,233,192,0,0,0,5,5,12,233,5,5,226,210,192,0,0,0,5,5,225,210,5,5,15,233,5,5,25,233,5,5,35,233,5,5,6,233,5,5,16,233,5,5,218,210,5,5,26,233,5,5,231,210,5,5,222,210,5,5,13,233,5,5,221,210,5,5,4,233,5,5,18,233,5,5,38,233,5,5,67,209,5,5,169,212,5,5,21,233,5,5,163,235,5,5,23,233,5,5,37,233,5,5,228,210,5,5,14,233,5,5,216,210,5,5,232,210,5,5,39,214,5,5,3,233,192,0,0,0,5,5,28,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,235,5,5,166,212,5,5,180,235,5,5,185,235,5,5,155,212,192,0,0,0,5,5,165,235,5,5,168,212,192,0,0,0,5,5,146,212,5,5,164,235,5,5,197,235,5,5,170,212,5,5,168,235,5,5,184,235,192,0,0,0,5,5,170,235,5,5,200,235,5,5,196,235,5,5,144,212,5,5,154,212,5,5,4,238,5,5,167,212,5,5,152,212,5,5,166,235,192,0,0,0,5,5,195,235,5,5,156,212,5,5,192,235,5,5,205,235,5,5,172,235,5,5,181,235,192,0,0,0,192,0,0,0,5,5,203,235,5,5,193,235,5,5,151,212,192,0,0,0,192,0,0,0,5,5,179,235,5,5,145,212,5,5,143,212,5,5,161,212,192,0,0,0,192,0,0,0,5,5,177,235,5,5,174,235,5,5,175,235,192,0,0,0,5,5,199,235,192,0,0,0,5,5,204,235,5,5,202,235,5,5,149,212,5,5,206,235,5,5,153,212,5,5,160,212,192,0,0,0,5,5,167,235,5,5,234,237,5,5,176,235,192,0,0,0,5,5,147,212,5,5,165,212,5,5,162,212,5,5,150,212,5,5,186,235,5,5,171,235,5,5,163,212,5,5,188,235,5,5,157,212,5,5,159,212,5,5,142,212,192,0,0,0,5,5,190,235,5,5,182,235,5,5,169,235,5,5,158,212,5,5,198,235,5,5,201,235,5,5,178,235,5,5,189,235,192,0,0,0,5,5,148,212,5,5,22,214,5,5,187,235,5,5,233,237,192,0,0,0,5,5,194,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,235,5,5,243,237,5,5,253,237,5,5,25,214,5,5,252,237,5,5,10,238,5,5,27,214,5,5,250,237,192,0,0,0,5,5,254,237,5,5,38,214,192,0,0,0,5,5,245,237,5,5,30,214,192,0,0,0,5,5,3,238,5,5,90,240,5,5,42,214,5,5,41,214,5,5,5,238,5,5,242,237,5,5,15,238,5,5,36,214,192,0,0,0,5,5,26,214,5,5,8,238,192,0,0,0,5,5,12,238,5,5,17,238,5,5,6,238,5,5,248,237,5,5,29,214,5,5,32,214,5,5,40,214,5,5,35,214,192,0,0,0,5,5,251,237,5,5,183,235,192,0,0,0,192,0,0,0,5,5,247,237,5,5,16,238,5,5,31,214,192,0,0,0,5,5,34,214,5,5,18,238,5,5,23,214,5,5,7,238,5,5,235,237,5,5,13,238,5,5,142,216,192,0,0,0,5,5,249,237,192,0,0,0,5,5,24,214,5,5,244,237,5,5,28,214,5,5,236,237,5,5,164,212,5,5,240,237,192,0,0,0,5,5,11,238,5,5,241,237,5,5,239,237,5,5,33,214,192,0,0,0,5,5,9,238,192,0,0,0,5,5,238,237,5,5,2,238,5,5,255,237,5,5,14,238,5,5,246,237,5,5,37,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,240,192,0,0,0,5,5,123,215,5,5,113,215,5,5,105,240,5,5,85,240,5,5,115,215,5,5,97,240,5,5,122,215,5,5,117,215,5,5,95,240,5,5,83,242,5,5,101,240,5,5,107,240,5,5,100,240,5,5,83,240,5,5,98,240,5,5,109,240,5,5,111,240,5,5,112,215,5,5,110,240,5,5,118,215,5,5,124,215,192,0,0,0,5,5,121,215,192,0,0,0,5,5,104,240,5,5,120,215,5,5,99,240,192,0,0,0,5,5,87,240,5,5,92,240,192,0,0,0,5,5,103,240,5,5,119,215,5,5,116,215,5,5,111,215,5,5,114,215,5,5,91,240,192,0,0,0,5,5,237,237,5,5,86,240,5,5,89,240,5,5,106,240,5,5,94,240,5,5,84,240,5,5,82,242,5,5,108,240,5,5,88,240,5,5,102,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,242,5,5,146,216,192,0,0,0,192,0,0,0,5,5,134,216,192,0,0,0,192,0,0,0,5,5,138,216,5,5,87,242,5,5,93,242,5,5,91,242,5,5,136,216,5,5,137,216,5,5,144,216,5,5,94,242,5,5,86,242,5,5,139,216,192,0,0,0,5,5,90,242,5,5,89,242,5,5,95,242,5,5,145,216,192,0,0,0,5,5,140,216,5,5,143,216,5,5,88,242,5,5,147,216,5,5,141,216,5,5,148,216,5,5,135,216,5,5,92,242,192,0,0,0,5,5,84,242,192,0,0,0,192,0,0,0,5,5,23,244,192,0,0,0,192,0,0,0,5,5,126,217,5,5,20,244,5,5,22,244,192,0,0,0,5,5,124,217,5,5,18,244,5,5,19,244,5,5,14,244,192,0,0,0,192,0,0,0,5,5,96,240,5,5,15,244,5,5,125,217,5,5,11,244,192,0,0,0,5,5,122,217,5,5,24,244,5,5,123,217,5,5,12,244,5,5,13,244,5,5,17,244,5,5,128,217,192,0,0,0,5,5,127,217,192,0,0,0,192,0,0,0,5,5,16,244,5,5,36,218,5,5,122,245,5,5,128,245,5,5,37,218,5,5,119,245,5,5,34,218,5,5,31,218,5,5,130,245,5,5,35,218,192,0,0,0,5,5,32,218,5,5,121,245,5,5,124,245,5,5,125,245,5,5,126,245,5,5,129,245,192,0,0,0,5,5,21,244,5,5,120,245,5,5,33,218,5,5,127,245,5,5,131,245,5,5,123,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,246,5,5,179,218,5,5,183,246,5,5,180,218,5,5,191,246,5,5,182,246,5,5,179,246,192,0,0,0,5,5,181,246,5,5,185,246,5,5,188,246,5,5,187,246,5,5,190,246,5,5,178,246,192,0,0,0,5,5,178,218,5,5,186,246,5,5,189,246,5,5,192,246,5,5,184,246,5,5,167,247,5,5,168,247,5,5,172,247,5,5,173,247,192,0,0,0,5,5,170,247,5,5,171,247,5,5,169,247,192,0,0,0,5,5,18,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,219,5,5,94,248,192,0,0,0,192,0,0,0,5,5,91,248,5,5,92,248,5,5,93,248,5,5,97,219,192,0,0,0,5,5,245,248,5,5,244,248,192,0,0,0,5,5,94,249,5,5,186,219,5,5,92,249,5,5,95,249,5,5,93,249,5,5,164,249,5,5,220,219,5,5,234,219,5,5,239,249,5,5,218,249,192,0,0,0,5,5,238,249,5,5,30,250,5,5,31,250,5,5,86,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,200,5,5,163,220,192,0,0,0,192,0,0,0,5,5,95,221,192,0,0,0,5,5,90,201,192,0,0,0,5,5,93,201,192,0,0,0,5,5,96,221,192,0,0,0,5,5,91,201,5,5,92,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,222,5,5,151,222,5,5,146,222,5,5,143,222,5,5,145,222,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,202,192,0,0,0,192,0,0,0,5,5,147,222,5,5,184,202,5,5,144,222,5,5,141,222,5,5,182,202,5,5,148,222,192,0,0,0,5,5,142,222,5,5,186,202,5,5,150,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,224,192,0,0,0,5,5,12,224,192,0,0,0,192,0,0,0,5,5,10,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,224,192,0,0,0,5,5,2,204,5,5,5,204,5,5,7,204,5,5,9,204,5,5,6,204,5,5,11,224,5,5,10,224,192,0,0,0,5,5,4,204,5,5,13,224,5,5,14,224,192,0,0,0,5,5,7,224,5,5,8,204,192,0,0,0,5,5,3,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,225,5,5,204,225,5,5,205,225,5,5,158,205,192,0,0,0,5,5,154,205,5,5,194,225,192,0,0,0,5,5,202,225,5,5,207,225,5,5,159,205,192,0,0,0,5,5,192,225,5,5,198,225,5,5,191,225,5,5,201,225,192,0,0,0,192,0,0,0,5,5,197,225,5,5,155,205,5,5,157,205,5,5,206,225,192,0,0,0,5,5,190,225,5,5,193,225,5,5,199,225,192,0,0,0,5,5,200,225,5,5,208,225,5,5,196,225,192,0,0,0,5,5,156,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,207,5,5,28,228,192,0,0,0,192,0,0,0,5,5,30,228,5,5,26,228,192,0,0,0,5,5,38,228,5,5,24,228,5,5,37,228,5,5,146,207,5,5,22,228,5,5,161,230,5,5,32,228,5,5,149,207,192,0,0,0,5,5,33,228,5,5,36,228,192,0,0,0,5,5,40,228,192,0,0,0,5,5,29,228,192,0,0,0,5,5,34,228,192,0,0,0,192,0,0,0,5,5,147,207,5,5,148,207,5,5,39,228,5,5,27,228,5,5,23,228,5,5,41,228,192,0,0,0,5,5,31,228,192,0,0,0,192,0,0,0,5,5,35,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,228,192,0,0,0,5,5,76,209,5,5,77,209,5,5,171,230,5,5,83,209,192,0,0,0,5,5,159,230,5,5,168,230,5,5,158,230,5,5,80,209,5,5,166,230,5,5,164,230,192,0,0,0,5,5,165,230,5,5,78,209,192,0,0,0,5,5,169,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,230,5,5,160,230,5,5,79,209,5,5,163,230,5,5,167,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,233,5,5,54,233,5,5,56,233,5,5,62,233,192,0,0,0,5,5,248,210,5,5,42,233,192,0,0,0,5,5,240,210,192,0,0,0,5,5,57,233,5,5,245,210,5,5,63,233,5,5,236,210,192,0,0,0,5,5,60,233,192,0,0,0,5,5,44,233,5,5,61,233,5,5,43,233,192,0,0,0,5,5,250,210,192,0,0,0,5,5,55,233,5,5,237,210,5,5,64,233,192,0,0,0,5,5,242,210,5,5,48,233,5,5,247,210,5,5,59,233,5,5,46,233,5,5,53,233,5,5,49,233,5,5,45,233,5,5,239,210,5,5,246,210,5,5,244,210,5,5,241,210,5,5,249,210,5,5,238,210,5,5,52,233,192,0,0,0,5,5,243,210,192,0,0,0,5,5,82,209,192,0,0,0,5,5,58,233,192,0,0,0,5,5,50,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,233,192,0,0,0,192,0,0,0,5,5,214,235,192,0,0,0,5,5,173,212,192,0,0,0,192,0,0,0,5,5,210,235,5,5,216,235,5,5,212,235,192,0,0,0,5,5,175,212,5,5,211,235,5,5,215,235,5,5,207,235,192,0,0,0,5,5,209,235,5,5,174,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,235,5,5,208,235,192,0,0,0,5,5,176,212,192,0,0,0,5,5,171,212,192,0,0,0,192,0,0,0,5,5,217,235,192,0,0,0,5,5,172,212,5,5,24,238,5,5,21,238,5,5,33,238,5,5,27,238,5,5,29,238,5,5,43,214,5,5,23,238,5,5,31,238,192,0,0,0,192,0,0,0,5,5,30,238,5,5,28,238,192,0,0,0,5,5,34,238,5,5,46,214,5,5,25,238,5,5,32,238,192,0,0,0,5,5,44,214,192,0,0,0,192,0,0,0,5,5,20,238,5,5,22,238,5,5,45,214,5,5,19,238,5,5,35,238,192,0,0,0,5,5,26,238,192,0,0,0,192,0,0,0,5,5,115,240,5,5,131,215,192,0,0,0,192,0,0,0,5,5,126,240,5,5,124,240,5,5,125,215,5,5,114,240,5,5,117,240,5,5,118,240,5,5,113,240,5,5,135,215,5,5,136,215,5,5,112,240,5,5,127,240,5,5,122,240,5,5,129,215,5,5,126,215,5,5,121,240,5,5,119,240,192,0,0,0,192,0,0,0,5,5,132,215,5,5,123,240,5,5,127,215,192,0,0,0,5,5,128,215,192,0,0,0,5,5,120,240,5,5,130,215,5,5,116,240,192,0,0,0,5,5,125,240,5,5,133,215,5,5,128,240,5,5,129,240,5,5,134,215,192,0,0,0,192,0,0,0,5,5,150,216,5,5,157,216,5,5,96,242,5,5,102,242,192,0,0,0,5,5,100,242,5,5,153,216,5,5,152,216,5,5,149,216,5,5,98,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,216,5,5,154,216,5,5,151,216,192,0,0,0,5,5,101,242,5,5,97,242,5,5,99,242,192,0,0,0,5,5,156,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,217,5,5,27,244,192,0,0,0,5,5,129,217,5,5,130,217,5,5,29,244,5,5,131,217,5,5,26,244,192,0,0,0,5,5,25,244,5,5,135,245,5,5,28,244,192,0,0,0,5,5,136,245,5,5,38,218,5,5,134,245,192,0,0,0,192,0,0,0,5,5,133,245,192,0,0,0,5,5,132,245,5,5,39,218,192,0,0,0,192,0,0,0,5,5,181,218,192,0,0,0,192,0,0,0,5,5,193,246,5,5,194,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,247,5,5,175,247,5,5,19,219,192,0,0,0,5,5,174,247,5,5,95,248,5,5,96,248,192,0,0,0,192,0,0,0,5,5,246,248,5,5,96,249,192,0,0,0,192,0,0,0,5,5,165,249,5,5,10,250,5,5,254,219,5,5,20,250,5,5,87,199,192,0,0,0,5,5,187,202,5,5,188,202,192,0,0,0,192,0,0,0,5,5,11,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,216,5,5,88,199,192,0,0,0,5,5,189,202,5,5,160,205,5,5,251,210,5,5,89,199,192,0,0,0,5,5,151,207,5,5,177,212,5,5,39,220,192,0,0,0,5,5,16,224,5,5,209,225,192,0,0,0,5,5,218,235,192,0,0,0,5,5,159,216,5,5,90,199,5,5,190,202,5,5,17,224,5,5,18,224,5,5,172,230,5,5,84,209,192,0,0,0,192,0,0,0,5,5,65,233,192,0,0,0,192,0,0,0,5,5,252,210,5,5,219,235,192,0,0,0,192,0,0,0,5,5,47,214,192,0,0,0,5,5,40,218,5,5,91,199,5,5,173,230,5,5,92,199,192,0,0,0,5,5,102,200,5,5,164,220,5,5,101,200,5,5,96,201,5,5,95,201,5,5,94,201,5,5,97,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,202,192,0,0,0,5,5,192,202,5,5,152,222,192,0,0,0,5,5,19,224,192,0,0,0,5,5,22,224,5,5,13,204,5,5,20,224,192,0,0,0,5,5,12,204,5,5,21,224,5,5,14,204,192,0,0,0,5,5,212,225,5,5,211,225,5,5,210,225,5,5,161,205,192,0,0,0,5,5,43,228,5,5,44,228,5,5,152,207,5,5,42,228,5,5,45,228,5,5,86,209,5,5,153,207,192,0,0,0,192,0,0,0,5,5,85,209,5,5,177,230,5,5,176,230,192,0,0,0,5,5,174,230,5,5,175,230,192,0,0,0,5,5,178,230,5,5,67,233,5,5,66,233,5,5,70,233,192,0,0,0,5,5,69,233,5,5,68,233,5,5,178,212,5,5,222,235,192,0,0,0,5,5,221,235,5,5,179,212,5,5,220,235,5,5,36,238,192,0,0,0,5,5,37,238,5,5,48,214,192,0,0,0,5,5,130,240,5,5,131,240,192,0,0,0,192,0,0,0,5,5,141,245,5,5,41,218,5,5,140,245,5,5,139,245,5,5,137,245,5,5,138,245,5,5,20,219,5,5,195,246,5,5,97,248,5,5,166,249,192,0,0,0,5,5,93,199,192,0,0,0,5,5,72,220,5,5,197,199,5,5,73,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,220,5,5,166,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,221,192,0,0,0,192,0,0,0,5,5,99,221,192,0,0,0,5,5,98,221,5,5,193,202,5,5,102,221,5,5,98,201,5,5,100,221,5,5,97,201,5,5,104,221,5,5,101,221,192,0,0,0,192,0,0,0,5,5,156,222,5,5,23,224,5,5,154,222,5,5,161,222,192,0,0,0,5,5,194,202,192,0,0,0,5,5,197,202,5,5,162,222,5,5,158,222,192,0,0,0,5,5,159,222,192,0,0,0,5,5,153,222,5,5,196,202,5,5,155,222,5,5,195,202,5,5,160,222,192,0,0,0,5,5,157,222,192,0,0,0,192,0,0,0,5,5,27,224,5,5,16,204,5,5,17,204,192,0,0,0,5,5,30,224,5,5,24,224,192,0,0,0,5,5,29,224,192,0,0,0,5,5,25,224,5,5,15,204,5,5,28,224,5,5,26,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,225,5,5,215,225,192,0,0,0,5,5,217,225,5,5,166,205,5,5,165,205,5,5,163,205,5,5,214,225,5,5,219,225,5,5,162,205,5,5,164,205,5,5,216,225,5,5,53,228,5,5,213,225,5,5,220,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,228,5,5,52,228,192,0,0,0,5,5,51,228,5,5,180,230,5,5,191,230,192,0,0,0,192,0,0,0,5,5,54,228,192,0,0,0,5,5,49,228,5,5,179,230,5,5,157,207,192,0,0,0,192,0,0,0,5,5,156,207,5,5,47,228,5,5,50,228,5,5,158,207,192,0,0,0,5,5,155,207,5,5,154,207,5,5,46,228,5,5,55,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,230,5,5,189,230,192,0,0,0,5,5,88,209,5,5,188,230,5,5,185,230,192,0,0,0,5,5,90,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,230,192,0,0,0,192,0,0,0,5,5,181,230,5,5,183,230,5,5,186,230,5,5,184,230,5,5,89,209,5,5,190,230,5,5,87,209,5,5,253,210,192,0,0,0,192,0,0,0,5,5,74,233,5,5,73,233,5,5,71,233,192,0,0,0,5,5,2,211,5,5,255,210,5,5,75,233,192,0,0,0,5,5,72,233,5,5,223,235,5,5,180,212,5,5,254,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,233,5,5,76,233,192,0,0,0,5,5,226,235,5,5,224,235,5,5,49,214,192,0,0,0,5,5,181,212,5,5,225,235,5,5,39,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,214,5,5,38,238,5,5,47,238,5,5,46,238,5,5,44,238,192,0,0,0,5,5,43,238,5,5,40,238,5,5,41,238,5,5,42,238,5,5,45,238,5,5,48,238,192,0,0,0,192,0,0,0,5,5,136,240,5,5,133,240,5,5,134,240,5,5,137,215,5,5,132,240,5,5,138,240,5,5,137,240,5,5,135,240,192,0,0,0,5,5,104,242,5,5,105,242,5,5,160,216,192,0,0,0,5,5,161,216,5,5,103,242,192,0,0,0,5,5,134,217,5,5,30,244,5,5,133,217,5,5,42,218,192,0,0,0,5,5,43,218,5,5,182,218,5,5,197,246,5,5,196,246,5,5,177,247,5,5,98,248,5,5,98,219,5,5,248,248,5,5,247,248,5,5,249,248,5,5,198,199,5,5,31,224,5,5,167,205,5,5,159,207,5,5,56,228,5,5,199,199,5,5,74,220,5,5,94,199,192,0,0,0,192,0,0,0,5,5,167,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,221,5,5,107,221,5,5,108,221,5,5,105,221,5,5,99,201,5,5,106,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,222,192,0,0,0,5,5,200,202,5,5,168,222,5,5,164,222,5,5,167,222,192,0,0,0,5,5,163,222,5,5,202,202,5,5,166,222,192,0,0,0,5,5,199,202,5,5,198,202,192,0,0,0,5,5,201,202,5,5,169,222,5,5,165,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,204,5,5,24,204,5,5,39,224,5,5,38,224,5,5,37,224,5,5,18,204,5,5,46,224,5,5,36,224,192,0,0,0,5,5,20,204,5,5,225,225,192,0,0,0,5,5,43,224,5,5,41,224,5,5,23,204,192,0,0,0,5,5,33,224,5,5,44,224,192,0,0,0,5,5,35,224,5,5,45,224,5,5,42,224,5,5,34,224,192,0,0,0,5,5,19,204,5,5,47,224,5,5,32,224,5,5,22,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,225,5,5,221,225,5,5,232,225,192,0,0,0,5,5,224,225,5,5,235,225,5,5,236,225,5,5,222,225,5,5,234,225,5,5,231,225,5,5,229,225,5,5,233,225,5,5,173,205,192,0,0,0,5,5,171,205,192,0,0,0,192,0,0,0,5,5,227,225,192,0,0,0,5,5,223,225,192,0,0,0,5,5,226,225,5,5,237,225,5,5,228,225,5,5,172,205,5,5,40,224,192,0,0,0,5,5,168,205,5,5,170,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,228,5,5,59,228,5,5,57,228,192,0,0,0,5,5,58,228,192,0,0,0,5,5,65,228,192,0,0,0,5,5,66,228,5,5,62,228,5,5,164,207,5,5,67,228,5,5,64,228,5,5,61,228,192,0,0,0,5,5,162,207,5,5,60,228,5,5,160,207,5,5,163,207,5,5,63,228,5,5,71,228,5,5,169,205,5,5,161,207,5,5,69,228,5,5,68,228,5,5,165,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,230,5,5,100,209,192,0,0,0,5,5,203,230,192,0,0,0,192,0,0,0,5,5,205,230,5,5,198,230,5,5,94,209,5,5,202,230,5,5,201,230,5,5,95,209,5,5,101,209,192,0,0,0,5,5,102,209,5,5,204,230,5,5,92,209,5,5,195,230,5,5,193,230,5,5,199,230,5,5,192,230,5,5,99,209,5,5,194,230,5,5,200,230,5,5,206,230,5,5,93,209,5,5,98,209,5,5,96,209,5,5,97,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,211,5,5,84,233,5,5,8,211,5,5,88,233,192,0,0,0,5,5,78,233,192,0,0,0,5,5,89,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,233,5,5,80,233,192,0,0,0,5,5,90,233,5,5,87,233,5,5,85,233,5,5,86,233,5,5,82,233,5,5,81,233,192,0,0,0,5,5,91,233,5,5,5,211,192,0,0,0,5,5,83,233,192,0,0,0,5,5,10,211,5,5,4,211,5,5,11,211,5,5,12,211,192,0,0,0,5,5,7,211,5,5,6,211,192,0,0,0,192,0,0,0,5,5,227,235,5,5,183,212,5,5,182,212,192,0,0,0,192,0,0,0,5,5,232,235,192,0,0,0,5,5,51,214,5,5,184,212,192,0,0,0,192,0,0,0,5,5,186,212,5,5,233,235,5,5,3,211,5,5,185,212,5,5,229,235,5,5,231,235,5,5,228,235,192,0,0,0,5,5,230,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,5,5,57,238,5,5,54,238,5,5,54,214,5,5,139,240,5,5,55,214,5,5,53,238,192,0,0,0,5,5,53,214,192,0,0,0,5,5,55,238,5,5,52,238,5,5,49,238,5,5,56,238,5,5,50,238,5,5,51,238,5,5,52,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,242,192,0,0,0,5,5,143,240,192,0,0,0,5,5,142,240,5,5,144,240,192,0,0,0,5,5,106,242,5,5,140,215,192,0,0,0,5,5,140,240,192,0,0,0,5,5,138,215,192,0,0,0,5,5,142,215,5,5,141,215,5,5,141,240,5,5,145,240,192,0,0,0,5,5,139,215,192,0,0,0,5,5,113,242,5,5,164,216,5,5,135,217,5,5,165,216,5,5,162,216,5,5,110,242,5,5,108,242,192,0,0,0,5,5,111,242,192,0,0,0,5,5,114,242,5,5,163,216,5,5,112,242,5,5,107,242,192,0,0,0,192,0,0,0,5,5,33,244,5,5,36,244,5,5,144,245,5,5,31,244,192,0,0,0,5,5,198,246,5,5,37,244,192,0,0,0,5,5,44,218,5,5,35,244,5,5,136,217,5,5,32,244,5,5,34,244,5,5,38,244,5,5,145,245,192,0,0,0,5,5,143,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,218,5,5,142,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,219,5,5,100,248,5,5,21,219,5,5,102,248,5,5,99,248,5,5,101,248,5,5,150,219,5,5,97,249,5,5,200,199,5,5,171,222,5,5,238,225,5,5,239,225,5,5,166,207,5,5,92,233,5,5,143,215,5,5,46,218,5,5,99,219,5,5,98,249,5,5,201,199,192,0,0,0,5,5,172,222,5,5,0,134,192,0,0,0,192,0,0,0,5,5,48,224,192,0,0,0,5,5,49,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,225,5,5,241,225,5,5,167,207,5,5,168,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,230,192,0,0,0,5,5,95,233,5,5,94,233,5,5,93,233,5,5,234,235,192,0,0,0,5,5,235,235,5,5,236,235,5,5,187,212,192,0,0,0,192,0,0,0,5,5,60,238,5,5,59,238,192,0,0,0,192,0,0,0,5,5,146,240,5,5,144,215,5,5,145,215,192,0,0,0,5,5,118,242,5,5,115,242,5,5,116,242,5,5,117,242,5,5,40,244,5,5,39,244,5,5,137,217,5,5,146,245,5,5,178,247,5,5,202,199,192,0,0,0,5,5,25,204,192,0,0,0,5,5,169,207,5,5,96,233,192,0,0,0,5,5,203,199,192,0,0,0,5,5,242,225,5,5,170,207,192,0,0,0,192,0,0,0,5,5,103,209,5,5,104,209,192,0,0,0,5,5,204,199,5,5,205,199,5,5,168,220,5,5,101,201,5,5,100,201,5,5,26,204,5,5,50,224,5,5,208,230,5,5,206,199,5,5,207,199,5,5,208,199,5,5,209,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,201,5,5,103,201,5,5,111,221,5,5,110,221,192,0,0,0,192,0,0,0,5,5,203,202,5,5,175,222,5,5,173,222,5,5,174,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,224,5,5,52,224,192,0,0,0,192,0,0,0,5,5,30,204,5,5,28,204,192,0,0,0,5,5,29,204,5,5,27,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,205,5,5,177,205,5,5,243,225,5,5,176,205,5,5,175,205,192,0,0,0,5,5,244,225,192,0,0,0,192,0,0,0,5,5,173,207,5,5,73,228,5,5,72,228,5,5,171,207,5,5,172,207,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,209,5,5,105,209,5,5,210,230,192,0,0,0,192,0,0,0,5,5,209,230,5,5,174,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,211,5,5,98,233,5,5,14,211,5,5,97,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,235,5,5,61,238,5,5,56,214,5,5,147,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,242,192,0,0,0,5,5,48,218,5,5,47,218,192,0,0,0,192,0,0,0,5,5,100,219,5,5,210,199,5,5,176,222,192,0,0,0,192,0,0,0,5,5,175,207,5,5,238,235,5,5,188,212,192,0,0,0,192,0,0,0,5,5,112,221,5,5,113,221,192,0,0,0,192,0,0,0,5,5,177,222,5,5,205,202,5,5,206,202,192,0,0,0,192,0,0,0,5,5,204,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,204,5,5,35,204,5,5,32,204,5,5,33,204,192,0,0,0,5,5,53,224,192,0,0,0,192,0,0,0,5,5,54,224,5,5,31,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,225,192,0,0,0,5,5,182,205,5,5,183,205,192,0,0,0,5,5,178,207,5,5,251,225,192,0,0,0,5,5,188,205,5,5,186,205,5,5,252,225,5,5,247,225,5,5,185,205,5,5,184,205,5,5,179,205,5,5,250,225,5,5,249,225,5,5,246,225,5,5,187,205,192,0,0,0,5,5,248,225,5,5,180,205,192,0,0,0,5,5,181,205,192,0,0,0,192,0,0,0,5,5,179,207,5,5,77,228,5,5,78,228,5,5,180,207,5,5,74,228,5,5,76,228,5,5,80,228,5,5,79,228,5,5,75,228,192,0,0,0,5,5,176,207,5,5,177,207,192,0,0,0,5,5,218,230,5,5,111,209,5,5,110,209,5,5,212,230,5,5,108,209,192,0,0,0,5,5,215,230,5,5,112,209,5,5,216,230,5,5,113,209,5,5,213,230,5,5,107,209,5,5,109,209,5,5,217,230,192,0,0,0,5,5,214,230,5,5,211,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,233,192,0,0,0,5,5,100,233,5,5,16,211,5,5,19,211,5,5,18,211,5,5,23,211,5,5,22,211,5,5,112,233,5,5,110,233,5,5,103,233,5,5,107,233,5,5,106,233,5,5,20,211,5,5,109,233,5,5,105,233,5,5,113,233,5,5,104,233,5,5,21,211,5,5,15,211,5,5,17,211,192,0,0,0,5,5,102,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,235,5,5,192,212,5,5,244,235,5,5,191,212,5,5,241,235,5,5,190,212,192,0,0,0,5,5,101,233,5,5,108,233,5,5,243,235,192,0,0,0,5,5,193,212,5,5,245,235,5,5,242,235,5,5,239,235,192,0,0,0,192,0,0,0,5,5,64,238,5,5,68,238,5,5,70,238,5,5,66,238,5,5,65,238,5,5,63,238,5,5,59,214,5,5,57,214,5,5,62,214,5,5,63,214,5,5,67,238,5,5,60,214,5,5,62,238,5,5,61,214,5,5,189,212,5,5,69,238,5,5,58,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,240,192,0,0,0,5,5,148,240,5,5,156,240,5,5,150,240,5,5,155,240,5,5,152,240,5,5,146,215,5,5,154,240,192,0,0,0,192,0,0,0,5,5,147,215,192,0,0,0,5,5,148,215,192,0,0,0,5,5,153,240,5,5,151,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,216,5,5,120,242,192,0,0,0,192,0,0,0,5,5,166,216,5,5,123,242,5,5,121,242,5,5,122,242,192,0,0,0,192,0,0,0,5,5,168,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,244,192,0,0,0,5,5,140,217,5,5,45,244,192,0,0,0,192,0,0,0,5,5,138,217,5,5,46,244,5,5,139,217,5,5,43,244,5,5,47,244,192,0,0,0,5,5,41,244,192,0,0,0,192,0,0,0,5,5,49,218,5,5,147,245,5,5,50,218,5,5,184,218,192,0,0,0,5,5,42,244,5,5,185,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,219,5,5,179,247,192,0,0,0,5,5,102,219,5,5,103,248,5,5,101,219,192,0,0,0,5,5,250,248,5,5,187,219,5,5,188,219,192,0,0,0,192,0,0,0,5,5,26,250,192,0,0,0,192,0,0,0,5,5,36,204,5,5,55,224,192,0,0,0,5,5,114,209,5,5,115,209,5,5,211,199,5,5,103,200,5,5,169,220,192,0,0,0,5,5,114,221,5,5,104,201,192,0,0,0,5,5,207,202,192,0,0,0,5,5,37,204,5,5,38,204,5,5,39,204,5,5,82,228,5,5,253,225,5,5,189,205,192,0,0,0,192,0,0,0,5,5,181,207,5,5,81,228,192,0,0,0,192,0,0,0,5,5,220,230,5,5,117,209,192,0,0,0,5,5,219,230,5,5,116,209,192,0,0,0,192,0,0,0,5,5,114,233,5,5,64,214,5,5,74,238,5,5,71,238,5,5,72,238,5,5,73,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,242,192,0,0,0,5,5,48,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,246,5,5,199,246,192,0,0,0,5,5,104,248,5,5,212,199,5,5,178,222,5,5,190,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,209,5,5,115,233,192,0,0,0,192,0,0,0,5,5,246,235,192,0,0,0,5,5,65,214,5,5,157,240,192,0,0,0,5,5,49,244,5,5,201,246,5,5,213,199,192,0,0,0,192,0,0,0,5,5,208,202,5,5,42,204,5,5,56,224,5,5,43,204,5,5,41,204,192,0,0,0,5,5,40,204,5,5,254,225,5,5,191,205,192,0,0,0,192,0,0,0,5,5,192,205,5,5,193,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,207,5,5,83,228,5,5,182,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,230,5,5,184,207,5,5,119,209,5,5,116,233,5,5,24,211,5,5,25,211,192,0,0,0,5,5,194,212,192,0,0,0,5,5,195,212,5,5,66,214,5,5,150,215,5,5,158,240,5,5,149,215,192,0,0,0,5,5,125,242,5,5,169,216,192,0,0,0,5,5,50,244,5,5,202,246,5,5,214,199,5,5,105,201,5,5,181,222,5,5,180,222,5,5,209,202,5,5,179,222,5,5,210,202,5,5,182,222,192,0,0,0,5,5,62,224,5,5,46,204,5,5,45,204,5,5,64,224,5,5,63,224,5,5,50,204,192,0,0,0,5,5,49,204,192,0,0,0,192,0,0,0,5,5,44,204,192,0,0,0,5,5,58,224,5,5,59,224,5,5,60,224,192,0,0,0,5,5,51,204,5,5,57,224,5,5,47,204,5,5,61,224,5,5,48,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,226,5,5,7,226,5,5,5,226,5,5,4,226,192,0,0,0,5,5,8,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,226,5,5,10,226,5,5,2,226,192,0,0,0,5,5,255,225,192,0,0,0,5,5,195,205,5,5,196,205,192,0,0,0,5,5,11,226,5,5,6,226,192,0,0,0,5,5,92,228,192,0,0,0,5,5,12,226,5,5,197,205,5,5,194,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,228,192,0,0,0,5,5,85,228,192,0,0,0,5,5,87,228,5,5,88,228,5,5,90,228,5,5,89,228,5,5,94,228,5,5,188,207,5,5,185,207,5,5,189,207,5,5,84,228,5,5,190,207,5,5,93,228,5,5,187,207,5,5,91,228,5,5,186,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,230,5,5,226,230,5,5,222,230,5,5,223,230,192,0,0,0,192,0,0,0,5,5,227,230,5,5,229,230,5,5,230,230,5,5,225,230,5,5,228,230,5,5,120,209,192,0,0,0,192,0,0,0,5,5,120,233,192,0,0,0,5,5,125,233,5,5,117,233,5,5,121,233,192,0,0,0,192,0,0,0,5,5,126,233,5,5,122,233,5,5,26,211,5,5,34,211,192,0,0,0,5,5,29,211,5,5,118,233,5,5,119,233,5,5,199,212,5,5,37,211,5,5,30,211,192,0,0,0,5,5,35,211,5,5,28,211,5,5,124,233,5,5,36,211,5,5,123,233,5,5,32,211,5,5,27,211,5,5,33,211,5,5,127,233,5,5,251,235,5,5,253,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,211,192,0,0,0,192,0,0,0,5,5,248,235,5,5,197,212,5,5,254,235,5,5,198,212,5,5,252,235,5,5,247,235,5,5,250,235,5,5,255,235,5,5,196,212,5,5,249,235,192,0,0,0,5,5,68,214,5,5,78,238,5,5,77,238,192,0,0,0,5,5,71,214,5,5,69,214,5,5,75,238,5,5,67,214,5,5,76,238,192,0,0,0,5,5,70,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,240,192,0,0,0,5,5,168,240,192,0,0,0,5,5,167,240,5,5,159,240,5,5,163,240,5,5,162,240,5,5,160,240,5,5,152,215,5,5,153,215,5,5,151,215,5,5,161,240,5,5,164,240,5,5,165,240,192,0,0,0,5,5,154,215,192,0,0,0,5,5,174,216,5,5,133,242,192,0,0,0,5,5,171,216,5,5,127,242,5,5,173,216,5,5,175,216,192,0,0,0,192,0,0,0,5,5,172,216,5,5,132,242,5,5,128,242,5,5,170,216,5,5,131,242,5,5,126,242,5,5,130,242,5,5,129,242,192,0,0,0,192,0,0,0,5,5,52,244,5,5,143,217,5,5,144,217,5,5,141,217,192,0,0,0,5,5,142,217,192,0,0,0,192,0,0,0,5,5,51,244,192,0,0,0,5,5,150,245,192,0,0,0,192,0,0,0,5,5,51,218,192,0,0,0,5,5,148,245,5,5,149,245,192,0,0,0,5,5,203,246,5,5,206,246,5,5,204,246,5,5,205,246,5,5,180,247,192,0,0,0,192,0,0,0,5,5,24,219,5,5,251,248,5,5,99,249,192,0,0,0,5,5,189,219,5,5,167,249,5,5,168,249,5,5,235,219,5,5,215,199,5,5,52,204,192,0,0,0,5,5,231,230,192,0,0,0,5,5,128,233,192,0,0,0,5,5,216,199,5,5,106,201,192,0,0,0,5,5,211,202,192,0,0,0,5,5,65,224,5,5,66,224,5,5,198,205,192,0,0,0,192,0,0,0,5,5,232,230,5,5,121,209,5,5,38,211,5,5,176,216,5,5,134,242,5,5,151,245,5,5,207,246,5,5,217,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,222,5,5,183,222,5,5,185,222,5,5,187,222,5,5,186,222,5,5,184,222,5,5,212,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,204,5,5,75,224,192,0,0,0,5,5,70,224,5,5,67,224,192,0,0,0,192,0,0,0,5,5,74,224,192,0,0,0,192,0,0,0,5,5,55,204,5,5,56,204,5,5,73,224,5,5,72,224,5,5,71,224,5,5,68,224,5,5,69,224,5,5,76,224,5,5,54,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,205,192,0,0,0,5,5,208,205,5,5,207,205,5,5,21,226,5,5,15,226,5,5,13,226,192,0,0,0,5,5,205,205,5,5,101,228,5,5,200,205,5,5,18,226,5,5,22,226,5,5,24,226,5,5,20,226,5,5,14,226,5,5,206,205,5,5,19,226,5,5,17,226,5,5,199,205,5,5,25,226,5,5,209,205,5,5,23,226,5,5,203,205,5,5,16,226,192,0,0,0,5,5,204,205,5,5,201,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,207,192,0,0,0,5,5,102,228,192,0,0,0,192,0,0,0,5,5,95,228,5,5,97,228,5,5,99,228,192,0,0,0,5,5,100,228,5,5,98,228,5,5,193,207,192,0,0,0,5,5,103,228,192,0,0,0,5,5,96,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,230,5,5,122,209,5,5,244,230,192,0,0,0,5,5,233,230,192,0,0,0,5,5,245,230,192,0,0,0,5,5,234,230,5,5,235,230,192,0,0,0,192,0,0,0,5,5,243,230,5,5,242,230,5,5,239,230,5,5,191,207,5,5,123,209,5,5,237,230,5,5,240,230,5,5,124,209,5,5,241,230,5,5,238,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,233,192,0,0,0,5,5,143,233,5,5,45,211,192,0,0,0,5,5,7,236,5,5,48,211,5,5,141,233,192,0,0,0,192,0,0,0,5,5,138,233,5,5,133,233,5,5,135,233,5,5,136,233,5,5,129,233,192,0,0,0,5,5,44,211,192,0,0,0,192,0,0,0,5,5,43,211,192,0,0,0,5,5,39,211,5,5,132,233,192,0,0,0,5,5,46,211,192,0,0,0,5,5,47,211,5,5,131,233,5,5,134,233,5,5,142,233,5,5,41,211,5,5,42,211,5,5,140,233,5,5,130,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,236,5,5,201,212,5,5,11,236,5,5,137,233,5,5,13,236,5,5,205,212,5,5,14,236,5,5,10,236,192,0,0,0,5,5,202,212,5,5,6,236,5,5,204,212,5,5,3,236,5,5,8,236,5,5,12,236,5,5,5,236,192,0,0,0,192,0,0,0,5,5,40,211,192,0,0,0,5,5,2,236,5,5,203,212,5,5,4,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,214,5,5,80,238,5,5,78,214,192,0,0,0,5,5,76,214,192,0,0,0,192,0,0,0,5,5,200,212,192,0,0,0,5,5,87,238,5,5,88,238,5,5,73,214,192,0,0,0,192,0,0,0,5,5,86,238,5,5,89,238,5,5,75,214,5,5,72,214,5,5,82,238,5,5,79,238,5,5,84,238,5,5,81,238,5,5,79,214,5,5,83,238,192,0,0,0,192,0,0,0,5,5,85,238,5,5,77,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,215,5,5,175,240,192,0,0,0,5,5,169,240,5,5,173,240,5,5,179,240,5,5,180,240,5,5,176,240,5,5,177,240,5,5,174,240,192,0,0,0,5,5,171,240,192,0,0,0,5,5,158,215,5,5,155,215,5,5,170,240,5,5,172,240,192,0,0,0,5,5,157,215,5,5,178,240,192,0,0,0,5,5,180,216,192,0,0,0,192,0,0,0,5,5,140,242,5,5,135,242,5,5,179,216,192,0,0,0,192,0,0,0,5,5,177,216,192,0,0,0,5,5,142,242,5,5,178,216,5,5,138,242,5,5,139,242,5,5,136,242,5,5,143,242,5,5,53,244,192,0,0,0,5,5,181,216,5,5,137,242,192,0,0,0,5,5,144,242,5,5,141,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,244,192,0,0,0,192,0,0,0,5,5,54,244,192,0,0,0,5,5,145,217,192,0,0,0,5,5,58,244,5,5,60,244,5,5,59,244,5,5,55,244,5,5,56,244,192,0,0,0,192,0,0,0,5,5,156,245,192,0,0,0,5,5,52,218,192,0,0,0,5,5,153,245,5,5,155,245,5,5,152,245,5,5,157,245,192,0,0,0,192,0,0,0,5,5,154,245,192,0,0,0,5,5,209,246,5,5,212,246,5,5,208,246,5,5,186,218,5,5,210,246,5,5,211,246,5,5,213,246,5,5,187,218,5,5,189,218,5,5,188,218,5,5,181,247,192,0,0,0,5,5,183,247,192,0,0,0,5,5,182,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,248,192,0,0,0,192,0,0,0,5,5,100,249,5,5,169,249,5,5,218,199,192,0,0,0,192,0,0,0,5,5,115,221,5,5,213,202,5,5,190,222,5,5,214,202,5,5,215,202,5,5,189,222,192,0,0,0,5,5,81,224,5,5,80,224,5,5,57,204,5,5,60,204,5,5,59,204,5,5,58,204,5,5,77,224,5,5,79,224,5,5,78,224,192,0,0,0,192,0,0,0,5,5,28,226,5,5,211,205,5,5,32,226,5,5,31,226,5,5,30,226,5,5,26,226,5,5,210,205,5,5,214,205,5,5,217,205,192,0,0,0,192,0,0,0,5,5,218,205,5,5,27,226,5,5,29,226,5,5,216,205,5,5,215,205,5,5,213,205,5,5,212,205,5,5,110,228,192,0,0,0,5,5,108,228,5,5,104,228,5,5,194,207,192,0,0,0,5,5,105,228,5,5,195,207,5,5,106,228,5,5,107,228,5,5,109,228,192,0,0,0,5,5,196,207,192,0,0,0,192,0,0,0,5,5,249,230,192,0,0,0,5,5,248,230,5,5,247,230,5,5,246,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,233,5,5,49,211,192,0,0,0,5,5,144,233,5,5,146,233,192,0,0,0,5,5,50,211,192,0,0,0,5,5,51,211,5,5,145,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,236,192,0,0,0,5,5,16,236,5,5,17,236,192,0,0,0,5,5,208,212,5,5,206,212,5,5,207,212,5,5,25,236,192,0,0,0,5,5,24,236,5,5,21,236,5,5,20,236,5,5,19,236,5,5,18,236,5,5,22,236,5,5,15,236,192,0,0,0,5,5,90,238,5,5,95,238,5,5,93,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,238,5,5,91,238,5,5,94,238,192,0,0,0,5,5,181,240,192,0,0,0,5,5,159,215,5,5,182,216,5,5,146,242,192,0,0,0,5,5,183,216,5,5,145,242,5,5,62,244,5,5,61,244,5,5,146,217,192,0,0,0,5,5,158,245,5,5,53,218,5,5,214,246,5,5,103,219,5,5,106,248,192,0,0,0,5,5,102,249,5,5,101,249,5,5,75,220,5,5,61,204,5,5,62,204,5,5,111,228,192,0,0,0,5,5,53,211,5,5,219,199,5,5,109,201,5,5,108,201,5,5,107,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,222,192,0,0,0,192,0,0,0,5,5,217,202,5,5,216,202,192,0,0,0,5,5,65,204,192,0,0,0,5,5,83,224,5,5,86,224,5,5,84,224,192,0,0,0,5,5,63,204,5,5,64,204,192,0,0,0,192,0,0,0,5,5,82,224,5,5,85,224,192,0,0,0,5,5,225,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,226,5,5,41,226,5,5,40,226,5,5,222,205,5,5,35,226,192,0,0,0,192,0,0,0,5,5,220,205,5,5,219,205,192,0,0,0,5,5,223,205,5,5,221,205,192,0,0,0,5,5,224,205,5,5,38,226,5,5,33,226,5,5,34,226,5,5,37,226,5,5,36,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,228,5,5,115,228,5,5,113,228,192,0,0,0,5,5,112,228,5,5,197,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,209,192,0,0,0,5,5,250,230,5,5,252,230,5,5,254,230,5,5,128,209,192,0,0,0,192,0,0,0,5,5,126,209,192,0,0,0,5,5,251,230,5,5,127,209,5,5,253,230,5,5,125,209,192,0,0,0,192,0,0,0,5,5,157,233,5,5,148,233,5,5,151,233,5,5,155,233,5,5,57,211,5,5,153,233,192,0,0,0,5,5,152,233,5,5,149,233,5,5,150,233,5,5,55,211,5,5,156,233,5,5,54,211,192,0,0,0,5,5,59,211,5,5,58,211,5,5,56,211,192,0,0,0,5,5,154,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,236,192,0,0,0,5,5,30,236,192,0,0,0,192,0,0,0,5,5,26,236,192,0,0,0,192,0,0,0,5,5,209,212,5,5,29,236,5,5,28,236,5,5,210,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,214,192,0,0,0,5,5,97,238,192,0,0,0,5,5,85,214,5,5,81,214,5,5,83,214,192,0,0,0,5,5,80,214,5,5,82,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,240,192,0,0,0,5,5,162,215,5,5,184,240,5,5,183,240,192,0,0,0,5,5,27,236,5,5,164,215,5,5,163,215,5,5,160,215,5,5,161,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,242,192,0,0,0,5,5,149,242,5,5,184,216,5,5,150,242,192,0,0,0,5,5,152,242,5,5,148,242,5,5,147,242,192,0,0,0,192,0,0,0,5,5,63,244,5,5,149,217,5,5,147,217,5,5,148,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,245,5,5,160,245,5,5,55,218,192,0,0,0,5,5,54,218,5,5,216,246,5,5,217,246,5,5,215,246,192,0,0,0,5,5,107,248,5,5,108,248,192,0,0,0,192,0,0,0,5,5,220,199,5,5,170,220,5,5,110,201,192,0,0,0,5,5,192,222,5,5,219,202,5,5,218,202,5,5,193,222,192,0,0,0,192,0,0,0,5,5,88,224,5,5,66,204,5,5,87,224,5,5,67,204,192,0,0,0,192,0,0,0,5,5,226,205,5,5,44,226,5,5,42,226,5,5,48,226,5,5,227,205,5,5,43,226,5,5,47,226,5,5,45,226,5,5,46,226,192,0,0,0,192,0,0,0,5,5,116,228,5,5,118,228,192,0,0,0,5,5,198,207,192,0,0,0,5,5,117,228,5,5,199,207,5,5,132,209,5,5,131,209,5,5,130,209,5,5,255,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,233,5,5,60,211,5,5,61,211,192,0,0,0,5,5,159,233,5,5,158,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,236,5,5,212,212,5,5,211,212,5,5,33,236,5,5,34,236,192,0,0,0,5,5,87,214,5,5,86,214,192,0,0,0,5,5,188,240,5,5,98,238,5,5,100,238,5,5,99,238,5,5,187,240,5,5,185,240,5,5,189,240,5,5,186,240,192,0,0,0,5,5,165,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,242,5,5,185,216,5,5,154,242,5,5,155,242,192,0,0,0,192,0,0,0,5,5,150,217,5,5,151,217,192,0,0,0,5,5,190,218,192,0,0,0,192,0,0,0,5,5,151,219,5,5,221,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,226,5,5,228,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,208,5,5,95,208,192,0,0,0,192,0,0,0,5,5,134,209,5,5,3,231,5,5,133,209,5,5,2,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,233,192,0,0,0,5,5,213,212,5,5,35,236,5,5,214,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,218,5,5,218,246,192,0,0,0,5,5,104,200,5,5,220,202,5,5,194,222,192,0,0,0,5,5,69,204,192,0,0,0,5,5,68,204,5,5,90,224,5,5,91,224,192,0,0,0,192,0,0,0,5,5,51,226,5,5,53,226,5,5,229,205,192,0,0,0,5,5,55,226,5,5,58,226,5,5,56,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,226,5,5,54,226,5,5,50,226,5,5,230,205,5,5,59,226,5,5,52,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,228,5,5,205,207,5,5,136,228,5,5,202,207,192,0,0,0,5,5,129,228,5,5,206,207,192,0,0,0,5,5,200,207,192,0,0,0,5,5,124,228,5,5,137,228,5,5,125,228,5,5,122,228,5,5,204,207,192,0,0,0,5,5,201,207,192,0,0,0,5,5,128,228,5,5,131,228,5,5,203,207,5,5,132,228,5,5,207,207,5,5,133,228,5,5,123,228,5,5,130,228,5,5,134,228,5,5,126,228,5,5,121,228,5,5,119,228,192,0,0,0,192,0,0,0,5,5,135,228,192,0,0,0,192,0,0,0,5,5,5,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,231,5,5,12,231,5,5,137,209,5,5,120,228,5,5,7,231,5,5,135,209,5,5,4,231,5,5,142,209,5,5,8,231,5,5,141,209,5,5,9,231,5,5,143,209,5,5,138,209,5,5,144,209,5,5,139,209,192,0,0,0,5,5,140,209,192,0,0,0,5,5,136,209,192,0,0,0,5,5,11,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,211,5,5,172,233,192,0,0,0,5,5,175,233,5,5,163,233,5,5,168,233,5,5,162,233,5,5,66,211,192,0,0,0,5,5,166,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,233,5,5,65,211,192,0,0,0,5,5,171,233,5,5,170,233,5,5,167,233,5,5,169,233,5,5,165,233,5,5,218,212,5,5,174,233,5,5,62,211,5,5,173,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,236,192,0,0,0,5,5,225,212,5,5,46,236,192,0,0,0,5,5,224,212,5,5,36,236,192,0,0,0,5,5,38,236,5,5,217,212,5,5,43,236,5,5,42,236,5,5,45,236,5,5,222,212,5,5,40,236,5,5,39,236,192,0,0,0,192,0,0,0,5,5,221,212,5,5,216,212,5,5,41,236,5,5,219,212,5,5,47,236,5,5,49,236,192,0,0,0,5,5,44,236,5,5,37,236,5,5,220,212,192,0,0,0,192,0,0,0,5,5,95,214,5,5,215,212,192,0,0,0,192,0,0,0,5,5,50,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,238,5,5,88,214,192,0,0,0,5,5,106,238,192,0,0,0,5,5,89,214,192,0,0,0,192,0,0,0,5,5,91,214,5,5,109,238,192,0,0,0,5,5,101,238,5,5,223,212,5,5,107,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,238,192,0,0,0,5,5,63,211,5,5,94,214,192,0,0,0,192,0,0,0,5,5,90,214,192,0,0,0,5,5,92,214,5,5,93,214,192,0,0,0,5,5,168,215,5,5,108,238,5,5,102,238,5,5,96,214,192,0,0,0,5,5,105,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,240,5,5,194,240,192,0,0,0,192,0,0,0,5,5,204,240,5,5,166,215,5,5,196,240,5,5,170,215,5,5,202,240,5,5,193,240,5,5,190,240,5,5,205,240,5,5,191,216,5,5,171,215,5,5,201,240,5,5,191,240,5,5,169,215,5,5,195,240,5,5,173,215,5,5,192,240,5,5,197,240,5,5,172,215,5,5,200,240,5,5,203,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,242,5,5,174,242,5,5,158,242,5,5,165,242,5,5,163,242,192,0,0,0,192,0,0,0,5,5,189,216,5,5,170,242,5,5,198,240,192,0,0,0,5,5,161,242,192,0,0,0,5,5,171,242,5,5,188,216,5,5,160,242,5,5,159,242,5,5,169,242,5,5,166,242,5,5,168,242,192,0,0,0,5,5,156,242,5,5,172,242,5,5,186,216,192,0,0,0,5,5,167,242,5,5,176,242,5,5,164,242,5,5,190,216,5,5,187,216,5,5,162,242,5,5,157,242,5,5,175,242,5,5,167,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,244,192,0,0,0,192,0,0,0,5,5,64,244,5,5,70,244,5,5,155,217,5,5,68,244,5,5,67,244,5,5,157,217,5,5,73,244,5,5,156,217,192,0,0,0,5,5,74,244,5,5,71,244,5,5,153,217,5,5,72,244,5,5,65,244,5,5,154,217,5,5,152,217,5,5,164,245,5,5,69,244,192,0,0,0,192,0,0,0,5,5,75,244,192,0,0,0,192,0,0,0,5,5,161,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,218,5,5,58,218,5,5,163,245,192,0,0,0,5,5,165,245,5,5,162,245,5,5,59,218,5,5,56,218,5,5,57,218,5,5,61,218,192,0,0,0,192,0,0,0,5,5,193,218,192,0,0,0,5,5,223,246,192,0,0,0,5,5,222,246,5,5,220,246,5,5,219,246,5,5,221,246,192,0,0,0,5,5,192,218,5,5,194,218,192,0,0,0,192,0,0,0,5,5,25,219,192,0,0,0,192,0,0,0,5,5,185,247,5,5,184,247,192,0,0,0,192,0,0,0,5,5,109,248,192,0,0,0,5,5,111,248,5,5,113,248,5,5,112,248,5,5,110,248,192,0,0,0,192,0,0,0,5,5,105,219,5,5,104,219,192,0,0,0,192,0,0,0,5,5,153,219,5,5,152,219,5,5,154,219,5,5,253,248,5,5,252,248,192,0,0,0,5,5,170,249,5,5,103,249,5,5,171,249,5,5,221,219,192,0,0,0,5,5,222,219,5,5,219,249,192,0,0,0,192,0,0,0,5,5,5,220,5,5,105,200,192,0,0,0,5,5,195,222,192,0,0,0,192,0,0,0,5,5,93,224,5,5,94,224,5,5,92,224,192,0,0,0,192,0,0,0,5,5,70,204,192,0,0,0,5,5,95,224,5,5,96,224,5,5,97,224,192,0,0,0,192,0,0,0,5,5,60,226,5,5,66,226,192,0,0,0,192,0,0,0,5,5,64,226,5,5,231,205,5,5,62,226,192,0,0,0,5,5,63,226,5,5,65,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,226,5,5,208,207,192,0,0,0,5,5,138,228,5,5,210,207,5,5,140,228,5,5,209,207,5,5,139,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,231,5,5,145,209,192,0,0,0,5,5,16,231,5,5,13,231,5,5,141,228,192,0,0,0,5,5,146,209,192,0,0,0,192,0,0,0,5,5,15,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,233,192,0,0,0,5,5,67,211,5,5,176,233,5,5,68,211,5,5,177,233,5,5,69,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,212,5,5,55,236,5,5,52,236,5,5,54,236,5,5,227,212,5,5,228,212,5,5,53,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,238,192,0,0,0,192,0,0,0,5,5,111,238,192,0,0,0,5,5,97,214,5,5,113,238,5,5,112,238,192,0,0,0,5,5,0,135,192,0,0,0,5,5,209,240,5,5,210,240,5,5,206,240,192,0,0,0,5,5,207,240,5,5,174,215,5,5,175,215,5,5,208,240,192,0,0,0,5,5,197,216,192,0,0,0,192,0,0,0,5,5,193,216,5,5,198,216,5,5,194,216,5,5,196,216,5,5,192,216,192,0,0,0,5,5,195,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,217,5,5,177,242,192,0,0,0,5,5,167,245,192,0,0,0,5,5,166,245,192,0,0,0,5,5,224,246,5,5,195,218,5,5,196,218,5,5,115,248,5,5,186,247,192,0,0,0,5,5,114,248,192,0,0,0,5,5,172,249,5,5,240,249,5,5,106,200,192,0,0,0,192,0,0,0,5,5,111,201,192,0,0,0,5,5,196,222,5,5,221,202,192,0,0,0,5,5,73,204,5,5,100,224,5,5,71,204,5,5,98,224,5,5,76,204,5,5,72,204,5,5,77,204,5,5,75,204,5,5,99,224,5,5,74,204,5,5,235,205,5,5,234,205,5,5,77,226,5,5,243,205,5,5,70,226,5,5,76,226,5,5,239,205,5,5,69,226,5,5,75,226,5,5,73,226,5,5,238,205,5,5,240,205,5,5,72,226,5,5,233,205,5,5,71,226,5,5,244,205,5,5,241,205,5,5,245,205,5,5,242,205,5,5,68,226,5,5,67,226,5,5,74,226,5,5,236,205,5,5,232,205,5,5,237,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,228,5,5,149,228,192,0,0,0,5,5,151,209,5,5,148,228,192,0,0,0,5,5,214,207,5,5,221,207,5,5,218,207,5,5,224,207,5,5,223,207,5,5,219,207,192,0,0,0,5,5,142,228,5,5,145,228,192,0,0,0,5,5,144,228,5,5,215,207,5,5,146,228,5,5,155,228,5,5,216,207,5,5,143,228,5,5,152,228,5,5,153,228,5,5,217,207,5,5,150,228,5,5,222,207,5,5,212,207,5,5,220,207,5,5,147,228,5,5,211,207,5,5,151,228,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,231,5,5,24,231,5,5,148,209,5,5,31,231,5,5,28,231,5,5,20,231,5,5,29,231,5,5,150,209,5,5,21,231,192,0,0,0,5,5,17,231,192,0,0,0,192,0,0,0,5,5,75,211,5,5,26,231,192,0,0,0,5,5,147,209,5,5,32,231,192,0,0,0,5,5,154,209,5,5,156,209,5,5,19,231,192,0,0,0,192,0,0,0,5,5,155,209,5,5,22,231,5,5,149,209,5,5,30,231,5,5,23,231,5,5,27,231,192,0,0,0,5,5,25,231,5,5,152,209,5,5,18,231,5,5,157,209,5,5,213,207,5,5,153,209,5,5,158,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,211,5,5,185,233,5,5,187,233,5,5,189,233,5,5,193,233,192,0,0,0,5,5,183,233,5,5,181,233,5,5,73,211,192,0,0,0,5,5,188,233,5,5,192,233,5,5,184,233,5,5,180,233,192,0,0,0,5,5,179,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,233,5,5,182,233,5,5,186,233,5,5,74,211,192,0,0,0,5,5,72,211,5,5,194,233,5,5,70,211,5,5,191,233,192,0,0,0,5,5,72,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,212,5,5,64,236,5,5,110,214,5,5,74,236,5,5,234,212,5,5,78,236,5,5,240,212,5,5,59,236,192,0,0,0,192,0,0,0,5,5,75,236,5,5,56,236,192,0,0,0,5,5,77,236,5,5,60,236,192,0,0,0,5,5,247,212,5,5,244,212,5,5,76,236,5,5,70,236,5,5,230,212,5,5,238,212,5,5,237,212,192,0,0,0,5,5,236,212,5,5,242,212,192,0,0,0,5,5,57,236,5,5,243,212,5,5,71,236,5,5,239,212,5,5,229,212,5,5,73,236,5,5,232,212,5,5,233,212,5,5,241,212,5,5,62,236,5,5,61,236,5,5,58,236,192,0,0,0,5,5,66,236,5,5,63,236,5,5,67,236,5,5,246,212,192,0,0,0,5,5,79,236,5,5,235,212,5,5,68,236,5,5,69,236,192,0,0,0,5,5,65,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,238,5,5,102,214,5,5,111,214,5,5,107,214,5,5,115,238,192,0,0,0,5,5,104,214,5,5,108,214,5,5,127,238,5,5,98,214,5,5,119,238,192,0,0,0,5,5,106,214,192,0,0,0,192,0,0,0,5,5,122,238,5,5,117,238,5,5,105,214,5,5,109,214,5,5,116,238,192,0,0,0,5,5,103,214,192,0,0,0,5,5,126,238,5,5,100,214,5,5,125,238,5,5,124,238,5,5,112,214,5,5,132,237,5,5,99,214,192,0,0,0,5,5,123,238,5,5,114,238,192,0,0,0,5,5,113,214,5,5,121,238,5,5,101,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,215,5,5,183,215,5,5,176,215,5,5,223,240,5,5,214,240,5,5,226,240,5,5,218,240,5,5,224,240,5,5,184,215,5,5,177,215,5,5,211,240,5,5,217,240,5,5,227,240,5,5,220,240,5,5,225,240,5,5,213,240,192,0,0,0,192,0,0,0,5,5,221,240,5,5,179,215,5,5,219,240,5,5,182,215,5,5,181,215,5,5,215,240,5,5,216,240,5,5,212,240,5,5,222,240,5,5,180,215,5,5,229,240,5,5,228,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,242,5,5,184,242,5,5,205,216,192,0,0,0,5,5,178,242,5,5,199,216,5,5,215,216,5,5,190,242,5,5,207,216,5,5,203,216,5,5,181,242,5,5,210,216,5,5,213,216,5,5,192,242,5,5,202,216,5,5,183,242,5,5,211,216,5,5,194,242,5,5,191,242,5,5,179,242,5,5,206,216,5,5,200,216,5,5,214,216,5,5,186,242,5,5,209,216,5,5,180,242,5,5,204,216,5,5,193,242,5,5,208,216,5,5,201,216,5,5,187,242,5,5,212,216,5,5,185,242,192,0,0,0,192,0,0,0,5,5,189,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,244,5,5,83,244,5,5,164,217,5,5,86,244,5,5,159,217,5,5,160,217,5,5,78,244,5,5,85,244,5,5,80,244,5,5,165,217,5,5,162,217,192,0,0,0,5,5,76,244,192,0,0,0,5,5,161,217,5,5,82,244,5,5,84,244,5,5,163,217,5,5,81,244,5,5,79,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,245,5,5,65,218,5,5,66,218,5,5,62,218,192,0,0,0,5,5,63,218,192,0,0,0,5,5,173,245,5,5,171,245,192,0,0,0,5,5,175,245,5,5,68,218,5,5,176,245,5,5,169,245,5,5,168,245,5,5,172,245,5,5,170,245,5,5,64,218,5,5,174,245,5,5,225,246,5,5,199,218,5,5,198,218,5,5,226,246,192,0,0,0,5,5,228,246,5,5,227,246,5,5,200,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,247,5,5,188,247,5,5,189,247,192,0,0,0,5,5,187,247,5,5,190,247,5,5,27,219,5,5,192,247,192,0,0,0,5,5,26,219,192,0,0,0,5,5,116,248,192,0,0,0,5,5,155,219,5,5,157,219,5,5,254,248,5,5,156,219,5,5,104,249,5,5,174,249,5,5,176,249,5,5,173,249,5,5,175,249,5,5,241,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,200,192,0,0,0,5,5,78,204,5,5,195,225,5,5,246,205,192,0,0,0,192,0,0,0,5,5,225,207,5,5,34,231,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,240,5,5,216,216,5,5,195,242,192,0,0,0,192,0,0,0,5,5,166,217,192,0,0,0,5,5,179,245,5,5,178,245,5,5,201,218,5,5,193,247,192,0,0,0,5,5,117,248,5,5,190,219,5,5,171,220,192,0,0,0,192,0,0,0,5,5,222,202,5,5,112,201,192,0,0,0,192,0,0,0,5,5,101,224,192,0,0,0,192,0,0,0,5,5,83,226,5,5,78,226,5,5,82,226,5,5,80,226,5,5,247,205,5,5,81,226,5,5,79,226,192,0,0,0,5,5,157,228,192,0,0,0,5,5,36,231,5,5,37,231,5,5,197,233,5,5,198,233,5,5,77,211,5,5,78,211,5,5,196,233,5,5,199,233,5,5,195,233,5,5,76,211,192,0,0,0,5,5,248,212,192,0,0,0,5,5,79,211,5,5,80,236,192,0,0,0,5,5,114,214,5,5,128,238,5,5,115,214,192,0,0,0,5,5,185,215,5,5,233,240,5,5,231,240,5,5,232,240,5,5,198,242,5,5,197,242,5,5,196,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,245,192,0,0,0,5,5,67,218,5,5,181,245,5,5,118,248,5,5,191,219,5,5,105,249,5,5,108,200,5,5,224,202,5,5,223,202,5,5,103,224,5,5,79,204,192,0,0,0,192,0,0,0,5,5,102,224,5,5,85,226,192,0,0,0,5,5,248,205,5,5,158,228,5,5,84,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,207,5,5,161,228,5,5,159,228,5,5,160,228,5,5,226,207,192,0,0,0,5,5,39,231,5,5,40,231,5,5,38,231,192,0,0,0,5,5,82,211,5,5,201,233,5,5,200,233,5,5,202,233,5,5,81,211,5,5,80,211,192,0,0,0,192,0,0,0,5,5,129,238,5,5,131,238,192,0,0,0,5,5,116,214,5,5,130,238,5,5,234,240,5,5,186,215,5,5,88,244,192,0,0,0,5,5,87,244,5,5,69,218,5,5,182,245,5,5,71,218,5,5,70,218,5,5,229,246,5,5,194,247,5,5,28,219,5,5,109,200,5,5,104,224,5,5,80,204,5,5,88,226,5,5,250,205,5,5,87,226,5,5,86,226,192,0,0,0,5,5,249,205,192,0,0,0,5,5,167,228,192,0,0,0,5,5,169,228,5,5,162,228,5,5,163,228,5,5,228,207,5,5,164,228,5,5,229,207,5,5,168,228,5,5,165,228,5,5,166,228,5,5,230,207,192,0,0,0,5,5,160,209,5,5,161,209,192,0,0,0,5,5,41,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,233,5,5,204,233,192,0,0,0,5,5,84,236,5,5,251,212,5,5,249,212,5,5,250,212,5,5,81,236,5,5,82,236,192,0,0,0,5,5,83,236,5,5,136,238,192,0,0,0,5,5,137,238,5,5,117,214,5,5,134,238,5,5,133,238,5,5,135,238,5,5,132,238,5,5,189,215,5,5,235,240,5,5,187,215,5,5,188,215,5,5,200,242,5,5,217,216,5,5,199,242,5,5,198,243,192,0,0,0,5,5,89,244,5,5,90,244,5,5,167,217,192,0,0,0,5,5,168,217,5,5,218,216,5,5,183,245,5,5,184,245,5,5,230,246,5,5,202,218,5,5,110,200,192,0,0,0,5,5,111,200,5,5,81,204,5,5,225,202,5,5,251,205,5,5,105,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,209,5,5,112,200,5,5,83,204,5,5,106,224,5,5,107,224,5,5,82,204,5,5,84,204,5,5,113,200,192,0,0,0,5,5,108,224,5,5,253,205,5,5,89,226,5,5,255,205,5,5,252,205,5,5,254,205,192,0,0,0,5,5,172,228,5,5,231,207,192,0,0,0,5,5,171,228,5,5,170,228,192,0,0,0,5,5,205,233,192,0,0,0,192,0,0,0,5,5,85,236,192,0,0,0,5,5,118,214,192,0,0,0,5,5,190,215,5,5,237,240,5,5,236,240,192,0,0,0,5,5,201,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,247,192,0,0,0,192,0,0,0,5,5,114,200,5,5,116,221,5,5,197,222,5,5,85,204,5,5,109,224,192,0,0,0,5,5,91,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,206,5,5,90,226,5,5,3,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,5,5,233,207,5,5,173,228,5,5,175,228,192,0,0,0,5,5,232,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,231,5,5,44,231,5,5,42,231,5,5,163,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,211,192,0,0,0,5,5,84,211,192,0,0,0,5,5,253,212,192,0,0,0,5,5,87,236,5,5,86,236,5,5,252,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,238,192,0,0,0,192,0,0,0,5,5,139,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,240,192,0,0,0,192,0,0,0,5,5,222,216,5,5,221,216,5,5,219,216,5,5,220,216,5,5,223,216,192,0,0,0,5,5,91,244,5,5,170,217,5,5,169,217,5,5,185,245,5,5,231,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,219,5,5,106,219,5,5,115,200,192,0,0,0,192,0,0,0,5,5,144,225,192,0,0,0,5,5,86,211,5,5,164,209,5,5,85,211,5,5,254,212,192,0,0,0,5,5,116,200,5,5,76,220,5,5,117,200,5,5,118,200,192,0,0,0,192,0,0,0,5,5,198,222,5,5,119,221,192,0,0,0,5,5,120,221,5,5,114,201,192,0,0,0,5,5,117,221,5,5,113,201,192,0,0,0,5,5,116,201,5,5,118,221,5,5,118,201,5,5,117,201,5,5,121,221,5,5,115,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,202,5,5,228,202,5,5,200,222,192,0,0,0,5,5,227,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,202,5,5,234,202,5,5,231,202,192,0,0,0,5,5,203,222,5,5,199,222,5,5,235,202,192,0,0,0,5,5,229,202,5,5,119,201,192,0,0,0,5,5,233,202,5,5,202,222,192,0,0,0,192,0,0,0,5,5,201,222,192,0,0,0,5,5,226,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,224,5,5,89,204,5,5,90,204,5,5,117,224,192,0,0,0,5,5,111,224,5,5,114,224,5,5,123,224,5,5,121,224,192,0,0,0,5,5,91,204,5,5,127,224,5,5,94,204,5,5,124,224,5,5,116,224,5,5,113,224,192,0,0,0,192,0,0,0,5,5,46,231,5,5,122,224,5,5,86,204,5,5,125,224,5,5,110,224,5,5,119,224,5,5,88,204,5,5,93,204,5,5,120,224,5,5,97,204,5,5,95,204,192,0,0,0,5,5,112,224,5,5,92,204,192,0,0,0,5,5,118,224,5,5,96,204,5,5,87,204,5,5,126,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,206,192,0,0,0,5,5,17,206,5,5,6,206,5,5,4,206,5,5,93,226,5,5,12,206,5,5,9,206,5,5,95,226,192,0,0,0,192,0,0,0,5,5,11,206,5,5,94,226,5,5,92,226,5,5,97,226,5,5,16,206,5,5,14,206,5,5,45,231,192,0,0,0,5,5,98,226,5,5,96,226,5,5,5,206,192,0,0,0,192,0,0,0,5,5,7,206,5,5,10,206,192,0,0,0,5,5,13,206,192,0,0,0,5,5,15,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,228,5,5,235,207,192,0,0,0,5,5,176,228,5,5,178,228,192,0,0,0,5,5,179,228,192,0,0,0,5,5,187,228,5,5,183,228,5,5,181,228,192,0,0,0,5,5,184,228,5,5,188,228,5,5,236,207,5,5,240,207,5,5,177,228,192,0,0,0,5,5,186,228,192,0,0,0,5,5,238,207,192,0,0,0,5,5,237,207,5,5,182,228,5,5,180,228,192,0,0,0,5,5,234,207,5,5,239,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,209,5,5,54,231,192,0,0,0,192,0,0,0,5,5,52,231,5,5,172,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,231,5,5,219,233,192,0,0,0,5,5,171,209,5,5,51,231,192,0,0,0,192,0,0,0,5,5,48,231,5,5,167,209,5,5,173,209,5,5,53,231,5,5,169,209,5,5,50,231,5,5,255,212,5,5,168,209,5,5,49,231,5,5,174,209,5,5,166,209,5,5,165,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,233,5,5,209,233,192,0,0,0,5,5,215,233,192,0,0,0,5,5,207,233,5,5,220,233,5,5,212,233,192,0,0,0,5,5,206,233,5,5,90,211,5,5,96,211,5,5,217,233,192,0,0,0,5,5,210,233,192,0,0,0,5,5,93,211,192,0,0,0,192,0,0,0,5,5,91,211,5,5,218,233,5,5,88,211,5,5,87,211,5,5,213,233,5,5,92,211,5,5,175,209,192,0,0,0,5,5,216,233,5,5,208,233,5,5,89,211,5,5,94,211,5,5,95,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,213,5,5,2,213,192,0,0,0,5,5,7,213,5,5,90,236,192,0,0,0,192,0,0,0,5,5,89,236,5,5,91,236,5,5,4,213,5,5,88,236,5,5,5,213,5,5,94,236,5,5,93,236,5,5,92,236,192,0,0,0,5,5,3,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,238,192,0,0,0,5,5,146,238,5,5,124,214,5,5,145,238,5,5,123,214,5,5,119,214,5,5,120,214,5,5,121,214,5,5,142,238,5,5,141,238,5,5,122,214,192,0,0,0,5,5,144,238,5,5,140,238,192,0,0,0,192,0,0,0,5,5,240,240,5,5,250,240,5,5,193,215,5,5,192,215,192,0,0,0,5,5,244,240,5,5,246,240,192,0,0,0,5,5,241,240,192,0,0,0,5,5,245,240,5,5,239,240,5,5,248,240,5,5,191,215,5,5,247,240,5,5,243,240,192,0,0,0,5,5,249,240,192,0,0,0,5,5,242,240,5,5,226,216,5,5,202,242,5,5,208,242,5,5,230,216,5,5,232,216,5,5,229,216,5,5,228,216,192,0,0,0,5,5,227,216,5,5,225,216,5,5,203,242,5,5,206,242,5,5,224,216,5,5,207,242,192,0,0,0,5,5,231,216,5,5,205,242,192,0,0,0,5,5,204,242,5,5,171,217,192,0,0,0,5,5,172,217,5,5,94,244,5,5,92,244,5,5,93,244,192,0,0,0,192,0,0,0,5,5,187,245,192,0,0,0,5,5,186,245,5,5,72,218,5,5,233,246,5,5,203,218,5,5,232,246,192,0,0,0,5,5,196,247,5,5,119,248,5,5,108,219,5,5,177,249,5,5,178,249,5,5,158,219,5,5,119,200,192,0,0,0,5,5,236,202,5,5,55,231,5,5,8,213,5,5,233,216,5,5,209,242,5,5,120,200,192,0,0,0,5,5,19,206,5,5,18,206,5,5,56,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,240,5,5,121,200,5,5,98,204,192,0,0,0,192,0,0,0,5,5,57,231,5,5,58,231,5,5,59,231,5,5,9,213,5,5,194,215,5,5,122,200,192,0,0,0,5,5,237,202,5,5,128,224,5,5,20,206,5,5,99,226,5,5,241,207,192,0,0,0,5,5,60,231,5,5,97,211,192,0,0,0,5,5,10,213,5,5,195,215,5,5,234,216,5,5,173,217,5,5,234,246,5,5,123,200,5,5,238,202,192,0,0,0,192,0,0,0,5,5,21,206,5,5,189,228,5,5,176,209,192,0,0,0,5,5,11,213,5,5,95,236,5,5,147,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,200,5,5,177,209,5,5,221,233,5,5,12,213,5,5,125,200,5,5,204,222,5,5,129,224,5,5,99,204,192,0,0,0,192,0,0,0,5,5,101,226,192,0,0,0,192,0,0,0,5,5,24,206,192,0,0,0,5,5,22,206,5,5,23,206,5,5,25,206,192,0,0,0,192,0,0,0,5,5,100,226,192,0,0,0,192,0,0,0,5,5,194,228,5,5,191,228,5,5,193,228,5,5,242,207,5,5,244,207,5,5,243,207,5,5,190,228,5,5,245,207,5,5,192,228,192,0,0,0,5,5,61,231,5,5,62,231,192,0,0,0,5,5,63,231,5,5,224,233,192,0,0,0,5,5,225,233,192,0,0,0,5,5,223,233,5,5,226,233,192,0,0,0,5,5,98,211,192,0,0,0,5,5,222,233,192,0,0,0,5,5,13,213,192,0,0,0,192,0,0,0,5,5,152,238,5,5,148,238,5,5,151,238,5,5,153,238,5,5,150,238,5,5,149,238,192,0,0,0,5,5,252,240,5,5,253,240,5,5,254,240,5,5,196,215,5,5,197,215,5,5,211,242,5,5,210,242,5,5,212,242,192,0,0,0,5,5,96,244,5,5,95,244,192,0,0,0,5,5,189,245,192,0,0,0,5,5,190,245,5,5,188,245,192,0,0,0,5,5,204,218,192,0,0,0,5,5,235,246,5,5,236,246,192,0,0,0,5,5,120,248,5,5,255,248,5,5,106,249,5,5,126,200,5,5,120,201,192,0,0,0,5,5,235,216,5,5,127,200,192,0,0,0,5,5,195,228,5,5,64,231,192,0,0,0,5,5,198,219,5,5,172,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,220,5,5,175,220,5,5,128,200,5,5,176,220,5,5,174,220,192,0,0,0,192,0,0,0,5,5,129,221,5,5,130,221,5,5,124,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,221,5,5,122,201,192,0,0,0,5,5,123,201,5,5,125,221,5,5,123,221,5,5,122,221,5,5,126,221,5,5,121,201,5,5,127,221,5,5,130,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,222,5,5,241,202,5,5,208,222,5,5,210,222,192,0,0,0,5,5,240,202,5,5,215,222,5,5,244,202,5,5,205,222,5,5,219,222,5,5,225,222,5,5,251,202,5,5,222,222,5,5,248,202,192,0,0,0,5,5,212,222,5,5,218,222,5,5,220,222,192,0,0,0,5,5,207,222,5,5,247,202,5,5,242,202,5,5,213,222,5,5,249,202,5,5,252,202,5,5,246,202,192,0,0,0,5,5,239,202,5,5,217,222,5,5,211,222,5,5,224,222,5,5,254,202,5,5,250,202,5,5,245,202,5,5,216,222,5,5,26,206,5,5,214,222,5,5,243,202,5,5,253,202,192,0,0,0,5,5,206,222,192,0,0,0,5,5,221,222,5,5,223,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,204,5,5,110,204,5,5,118,204,5,5,115,204,5,5,137,224,5,5,140,224,5,5,111,204,192,0,0,0,5,5,131,224,192,0,0,0,5,5,104,204,5,5,114,204,192,0,0,0,5,5,117,204,5,5,119,204,5,5,152,224,5,5,143,224,192,0,0,0,5,5,103,204,5,5,151,224,5,5,107,204,5,5,105,204,5,5,100,204,5,5,135,224,192,0,0,0,5,5,150,224,5,5,139,224,5,5,142,224,5,5,155,224,192,0,0,0,5,5,120,204,5,5,149,224,5,5,112,204,5,5,144,224,5,5,154,224,5,5,141,224,5,5,145,224,5,5,148,224,192,0,0,0,192,0,0,0,5,5,133,224,5,5,153,224,5,5,147,224,192,0,0,0,192,0,0,0,5,5,132,224,192,0,0,0,5,5,136,224,5,5,113,204,5,5,108,204,5,5,101,204,5,5,106,204,5,5,102,204,5,5,121,204,5,5,134,224,5,5,118,226,5,5,109,204,192,0,0,0,192,0,0,0,5,5,146,224,5,5,29,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,226,5,5,40,206,192,0,0,0,5,5,105,226,192,0,0,0,5,5,116,226,5,5,112,226,192,0,0,0,5,5,131,226,192,0,0,0,5,5,123,226,192,0,0,0,5,5,113,226,192,0,0,0,5,5,122,226,5,5,107,226,5,5,111,226,5,5,134,226,5,5,43,206,5,5,126,226,5,5,117,226,5,5,27,206,5,5,132,226,5,5,103,226,192,0,0,0,5,5,125,226,192,0,0,0,5,5,42,206,5,5,37,206,5,5,102,226,5,5,35,206,5,5,34,206,5,5,39,206,5,5,124,226,5,5,31,206,5,5,38,206,5,5,138,224,5,5,65,231,5,5,119,226,192,0,0,0,192,0,0,0,5,5,109,226,5,5,41,206,5,5,110,226,5,5,114,226,5,5,44,206,5,5,104,226,5,5,128,226,192,0,0,0,5,5,127,226,5,5,135,226,5,5,33,206,5,5,30,206,5,5,133,226,5,5,129,226,5,5,120,226,5,5,115,226,5,5,36,206,5,5,32,206,5,5,106,226,5,5,28,206,5,5,130,226,5,5,29,206,192,0,0,0,5,5,108,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,228,5,5,203,228,5,5,208,228,5,5,228,228,5,5,5,208,5,5,249,207,192,0,0,0,5,5,200,228,5,5,6,208,5,5,7,208,5,5,211,228,5,5,218,228,5,5,224,228,192,0,0,0,5,5,205,228,192,0,0,0,5,5,212,228,192,0,0,0,192,0,0,0,5,5,8,208,5,5,226,228,5,5,221,228,5,5,3,208,5,5,255,207,5,5,217,228,5,5,213,228,5,5,199,228,5,5,246,207,5,5,204,228,5,5,196,228,192,0,0,0,5,5,254,207,5,5,2,208,5,5,209,228,5,5,206,228,5,5,251,207,5,5,222,228,5,5,248,207,5,5,207,228,5,5,229,228,5,5,215,228,192,0,0,0,5,5,214,228,5,5,247,207,192,0,0,0,5,5,4,208,192,0,0,0,5,5,250,207,5,5,197,228,5,5,202,228,5,5,219,228,5,5,225,228,5,5,9,208,5,5,198,228,5,5,210,228,5,5,216,228,5,5,253,207,192,0,0,0,192,0,0,0,5,5,227,228,5,5,220,228,5,5,223,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,207,192,0,0,0,5,5,81,231,5,5,69,231,5,5,185,209,5,5,98,231,5,5,106,231,5,5,109,231,5,5,183,209,5,5,77,231,5,5,102,231,5,5,78,231,5,5,92,231,5,5,196,209,5,5,88,231,5,5,193,209,192,0,0,0,5,5,89,231,5,5,66,231,192,0,0,0,5,5,103,231,192,0,0,0,192,0,0,0,5,5,202,209,5,5,100,231,5,5,90,231,5,5,111,231,5,5,85,231,5,5,4,234,192,0,0,0,5,5,114,231,5,5,200,209,5,5,83,231,5,5,95,231,5,5,203,209,5,5,182,209,5,5,87,231,5,5,112,231,5,5,80,231,5,5,73,231,5,5,84,231,192,0,0,0,5,5,72,231,5,5,70,231,5,5,178,209,5,5,104,231,5,5,79,231,5,5,107,231,192,0,0,0,5,5,108,231,5,5,186,209,5,5,191,209,5,5,187,209,5,5,195,209,5,5,99,231,5,5,188,209,5,5,91,231,5,5,75,231,192,0,0,0,5,5,180,209,5,5,67,231,5,5,101,231,5,5,110,231,5,5,74,231,5,5,194,209,5,5,115,231,5,5,86,231,192,0,0,0,5,5,82,231,192,0,0,0,5,5,179,209,5,5,199,209,192,0,0,0,5,5,97,231,5,5,201,209,192,0,0,0,5,5,93,231,5,5,190,209,5,5,184,209,5,5,192,209,5,5,181,209,5,5,198,209,5,5,94,231,5,5,76,231,5,5,96,231,5,5,71,231,5,5,105,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,234,192,0,0,0,5,5,25,234,5,5,52,211,5,5,8,234,192,0,0,0,5,5,6,234,5,5,239,233,5,5,102,211,5,5,255,233,5,5,21,234,5,5,251,233,5,5,110,211,5,5,20,234,5,5,249,233,5,5,197,209,5,5,11,234,5,5,250,233,5,5,18,234,5,5,109,211,5,5,101,211,192,0,0,0,5,5,228,233,5,5,236,233,192,0,0,0,5,5,7,234,5,5,253,233,5,5,24,234,5,5,2,234,5,5,115,211,5,5,19,234,192,0,0,0,5,5,106,211,192,0,0,0,5,5,5,234,5,5,13,234,5,5,240,233,5,5,12,234,192,0,0,0,5,5,29,234,5,5,235,233,5,5,14,234,192,0,0,0,5,5,27,234,192,0,0,0,5,5,229,233,5,5,189,209,192,0,0,0,5,5,243,233,5,5,242,233,5,5,108,211,192,0,0,0,5,5,246,233,5,5,248,233,5,5,9,234,5,5,26,234,5,5,111,211,192,0,0,0,5,5,112,211,192,0,0,0,5,5,234,233,5,5,104,211,5,5,238,233,5,5,22,234,5,5,113,211,192,0,0,0,5,5,105,211,5,5,107,211,5,5,114,211,5,5,28,234,5,5,15,234,5,5,10,234,192,0,0,0,192,0,0,0,5,5,245,233,5,5,244,233,5,5,103,211,5,5,230,233,5,5,100,211,5,5,254,233,5,5,231,233,5,5,252,233,192,0,0,0,192,0,0,0,5,5,241,233,5,5,23,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,233,5,5,17,234,5,5,232,233,5,5,26,213,5,5,135,236,192,0,0,0,192,0,0,0,5,5,118,236,192,0,0,0,192,0,0,0,5,5,96,236,5,5,126,236,5,5,18,213,5,5,111,236,5,5,121,236,5,5,21,213,5,5,114,236,5,5,19,213,5,5,99,236,5,5,129,236,5,5,98,236,5,5,117,236,192,0,0,0,5,5,97,236,192,0,0,0,192,0,0,0,5,5,115,236,5,5,124,236,5,5,122,236,5,5,110,236,5,5,105,236,5,5,103,236,192,0,0,0,5,5,104,236,5,5,123,236,5,5,134,236,5,5,112,236,5,5,20,213,192,0,0,0,5,5,107,236,192,0,0,0,5,5,127,236,192,0,0,0,5,5,23,213,5,5,106,236,5,5,100,236,5,5,116,236,5,5,27,213,192,0,0,0,192,0,0,0,5,5,15,213,5,5,24,213,5,5,108,236,5,5,102,236,192,0,0,0,5,5,17,213,5,5,16,234,5,5,16,213,5,5,119,236,192,0,0,0,5,5,14,213,5,5,29,213,5,5,22,213,5,5,120,236,5,5,109,236,5,5,101,236,5,5,128,236,5,5,113,236,5,5,28,213,5,5,132,236,5,5,25,213,5,5,131,236,192,0,0,0,5,5,125,236,5,5,130,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,238,5,5,194,238,5,5,181,238,5,5,180,238,5,5,176,238,5,5,136,214,192,0,0,0,5,5,128,214,5,5,196,238,5,5,195,238,5,5,227,233,5,5,173,238,5,5,177,238,5,5,171,238,192,0,0,0,5,5,190,238,5,5,175,238,192,0,0,0,5,5,197,238,5,5,168,238,5,5,166,238,5,5,178,238,5,5,188,238,5,5,183,238,5,5,138,214,5,5,157,238,192,0,0,0,5,5,187,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,214,5,5,247,233,5,5,169,238,5,5,160,238,5,5,163,238,5,5,201,238,5,5,170,238,5,5,161,238,5,5,159,238,5,5,156,238,192,0,0,0,5,5,132,214,5,5,179,238,5,5,131,214,5,5,135,214,5,5,174,238,5,5,182,238,5,5,125,214,5,5,198,238,5,5,202,238,5,5,127,214,192,0,0,0,5,5,165,238,5,5,185,238,5,5,189,238,5,5,162,238,5,5,199,238,5,5,134,214,192,0,0,0,5,5,133,214,5,5,154,238,5,5,137,214,5,5,192,238,5,5,164,238,5,5,184,238,5,5,158,238,5,5,172,238,5,5,167,238,5,5,129,214,5,5,130,214,5,5,186,238,5,5,203,238,5,5,200,238,5,5,191,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,238,192,0,0,0,5,5,126,214,5,5,17,241,192,0,0,0,5,5,8,241,5,5,11,241,192,0,0,0,5,5,203,215,5,5,13,241,5,5,2,241,5,5,9,241,5,5,15,241,5,5,200,215,5,5,204,215,5,5,198,215,192,0,0,0,192,0,0,0,5,5,4,241,5,5,20,241,192,0,0,0,192,0,0,0,5,5,14,241,192,0,0,0,5,5,5,241,5,5,29,241,5,5,23,241,5,5,255,240,5,5,231,242,5,5,7,241,5,5,199,215,192,0,0,0,5,5,18,241,192,0,0,0,5,5,28,241,5,5,207,215,192,0,0,0,5,5,25,241,5,5,6,241,5,5,12,241,5,5,16,241,5,5,10,241,5,5,30,241,5,5,27,241,5,5,24,241,5,5,201,215,5,5,202,215,5,5,206,215,5,5,3,241,5,5,31,241,5,5,205,215,5,5,21,241,192,0,0,0,192,0,0,0,5,5,19,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,241,5,5,244,242,5,5,225,242,5,5,230,242,5,5,243,242,5,5,229,242,5,5,221,242,5,5,226,242,192,0,0,0,5,5,238,216,192,0,0,0,5,5,214,242,5,5,238,242,5,5,240,242,5,5,213,242,5,5,237,216,5,5,242,242,5,5,234,242,5,5,244,216,5,5,241,242,5,5,227,242,5,5,246,216,5,5,219,242,5,5,26,241,5,5,235,242,5,5,232,242,5,5,215,242,5,5,246,242,5,5,240,216,192,0,0,0,192,0,0,0,5,5,241,216,5,5,217,242,5,5,233,242,192,0,0,0,5,5,245,242,5,5,236,242,5,5,223,242,5,5,243,216,5,5,239,216,5,5,237,242,5,5,224,242,5,5,247,242,5,5,218,242,5,5,228,242,5,5,239,242,5,5,220,242,5,5,222,242,192,0,0,0,5,5,182,217,5,5,216,242,5,5,245,216,5,5,175,217,5,5,236,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,216,5,5,179,217,5,5,112,244,192,0,0,0,5,5,102,244,5,5,97,244,5,5,103,244,5,5,113,244,5,5,117,244,5,5,116,244,5,5,181,217,5,5,180,217,192,0,0,0,192,0,0,0,5,5,104,244,5,5,118,244,5,5,107,244,5,5,99,244,192,0,0,0,5,5,101,244,5,5,100,244,5,5,106,244,5,5,111,244,5,5,98,244,5,5,105,244,5,5,110,244,5,5,178,217,192,0,0,0,5,5,108,244,192,0,0,0,5,5,176,217,5,5,109,244,5,5,174,217,5,5,177,217,5,5,206,245,5,5,114,244,192,0,0,0,192,0,0,0,5,5,76,218,192,0,0,0,5,5,198,245,5,5,202,245,5,5,194,245,5,5,197,245,192,0,0,0,5,5,205,245,5,5,74,218,5,5,210,245,5,5,203,245,192,0,0,0,5,5,195,245,5,5,211,245,5,5,204,245,5,5,77,218,5,5,78,218,5,5,208,245,192,0,0,0,5,5,196,245,5,5,73,218,5,5,75,218,5,5,191,245,5,5,199,245,5,5,193,245,192,0,0,0,5,5,209,245,5,5,207,245,5,5,192,245,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,246,5,5,79,218,5,5,201,245,5,5,206,218,5,5,208,218,5,5,205,218,192,0,0,0,5,5,248,246,5,5,240,246,5,5,238,246,5,5,242,246,5,5,239,246,192,0,0,0,192,0,0,0,5,5,244,246,5,5,246,246,5,5,209,218,5,5,211,218,192,0,0,0,5,5,245,246,5,5,212,218,5,5,210,218,5,5,247,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,219,5,5,197,247,5,5,203,247,5,5,31,219,5,5,241,246,5,5,202,247,192,0,0,0,5,5,209,247,5,5,200,247,5,5,207,247,5,5,206,247,5,5,237,246,5,5,201,247,5,5,115,244,5,5,210,247,5,5,199,247,5,5,204,247,192,0,0,0,5,5,208,247,5,5,198,247,192,0,0,0,5,5,124,248,5,5,30,219,5,5,205,247,192,0,0,0,192,0,0,0,5,5,6,249,5,5,125,248,5,5,123,248,5,5,121,248,5,5,122,248,5,5,126,248,192,0,0,0,5,5,159,219,5,5,4,249,5,5,2,249,5,5,7,249,5,5,5,249,192,0,0,0,5,5,8,249,5,5,160,219,5,5,3,249,192,0,0,0,192,0,0,0,5,5,107,249,192,0,0,0,192,0,0,0,5,5,179,249,5,5,180,249,5,5,181,249,192,0,0,0,192,0,0,0,5,5,21,250,5,5,11,250,5,5,177,220,5,5,255,202,192,0,0,0,5,5,122,204,192,0,0,0,5,5,137,226,5,5,136,226,5,5,45,206,5,5,10,208,5,5,231,228,192,0,0,0,192,0,0,0,5,5,230,228,192,0,0,0,5,5,204,209,5,5,117,211,192,0,0,0,5,5,116,211,5,5,118,211,192,0,0,0,5,5,136,236,5,5,204,238,5,5,32,241,5,5,34,241,5,5,33,241,192,0,0,0,5,5,247,216,5,5,248,242,5,5,119,244,5,5,241,249,5,5,129,200,192,0,0,0,5,5,228,222,5,5,229,222,5,5,227,222,5,5,226,222,5,5,2,203,192,0,0,0,5,5,159,224,5,5,157,224,192,0,0,0,192,0,0,0,5,5,156,224,192,0,0,0,5,5,123,204,5,5,125,204,5,5,124,204,5,5,158,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,226,5,5,146,226,5,5,144,226,192,0,0,0,192,0,0,0,5,5,46,206,5,5,147,226,5,5,51,206,5,5,141,226,5,5,156,226,192,0,0,0,5,5,158,226,5,5,142,226,192,0,0,0,5,5,48,206,5,5,159,226,5,5,154,226,5,5,140,226,5,5,145,226,5,5,155,226,5,5,151,226,5,5,148,226,192,0,0,0,5,5,53,206,5,5,157,226,5,5,143,226,192,0,0,0,192,0,0,0,5,5,152,226,5,5,138,226,5,5,52,206,5,5,49,206,5,5,150,226,192,0,0,0,5,5,153,226,5,5,139,226,5,5,50,206,5,5,47,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,208,5,5,238,228,5,5,19,208,192,0,0,0,5,5,241,228,5,5,244,228,5,5,16,208,5,5,14,208,5,5,233,228,5,5,242,228,5,5,240,228,5,5,237,228,5,5,245,228,5,5,246,228,5,5,248,228,5,5,249,228,5,5,232,228,5,5,13,208,5,5,235,228,5,5,234,228,5,5,247,228,5,5,15,208,5,5,236,228,5,5,17,208,5,5,12,208,5,5,239,228,5,5,21,208,192,0,0,0,5,5,18,208,5,5,243,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,209,5,5,130,231,192,0,0,0,5,5,119,231,5,5,208,209,192,0,0,0,5,5,35,234,5,5,128,231,5,5,116,231,5,5,206,209,5,5,121,231,5,5,209,209,5,5,125,231,5,5,123,231,5,5,212,209,5,5,205,209,192,0,0,0,192,0,0,0,5,5,117,231,5,5,120,231,5,5,210,209,192,0,0,0,5,5,118,231,192,0,0,0,5,5,129,231,5,5,127,231,5,5,122,231,5,5,124,231,5,5,126,231,5,5,207,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,5,5,42,234,5,5,32,234,5,5,38,234,5,5,119,211,5,5,34,234,5,5,125,211,192,0,0,0,192,0,0,0,5,5,124,211,192,0,0,0,5,5,123,211,5,5,41,234,5,5,126,211,5,5,127,211,5,5,31,234,5,5,44,234,5,5,128,211,5,5,122,211,5,5,121,211,5,5,40,234,5,5,129,211,5,5,30,234,5,5,33,234,5,5,43,234,5,5,39,234,192,0,0,0,192,0,0,0,5,5,168,236,5,5,157,236,5,5,120,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,213,5,5,145,236,5,5,166,236,5,5,146,236,5,5,31,213,192,0,0,0,5,5,143,236,192,0,0,0,5,5,152,236,5,5,144,236,5,5,33,213,5,5,138,236,5,5,165,236,5,5,34,213,5,5,162,236,5,5,163,236,5,5,139,236,5,5,39,213,5,5,154,236,192,0,0,0,5,5,148,236,5,5,155,236,5,5,142,236,192,0,0,0,5,5,167,236,5,5,159,236,5,5,153,236,5,5,137,236,5,5,35,213,5,5,160,236,192,0,0,0,5,5,38,213,5,5,164,236,192,0,0,0,5,5,158,236,5,5,32,213,5,5,156,236,192,0,0,0,5,5,150,236,5,5,30,213,5,5,141,236,5,5,149,236,5,5,161,236,5,5,147,236,192,0,0,0,192,0,0,0,5,5,151,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,214,5,5,37,234,5,5,222,238,5,5,231,238,5,5,221,238,5,5,217,238,5,5,214,238,5,5,150,214,5,5,212,238,5,5,37,213,5,5,205,238,5,5,148,214,5,5,211,238,5,5,147,214,5,5,216,238,5,5,213,238,5,5,229,238,5,5,224,238,5,5,218,238,5,5,223,238,5,5,143,214,5,5,215,238,5,5,234,238,5,5,206,238,5,5,207,238,5,5,230,238,5,5,144,214,5,5,235,238,5,5,146,214,5,5,236,238,5,5,220,238,5,5,140,236,5,5,226,238,5,5,219,238,5,5,228,238,5,5,225,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,238,5,5,141,214,5,5,233,238,5,5,142,214,5,5,208,238,5,5,145,214,5,5,44,241,5,5,227,238,5,5,232,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,241,5,5,140,214,5,5,208,215,5,5,51,241,5,5,47,241,192,0,0,0,5,5,45,241,5,5,40,241,5,5,55,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,215,192,0,0,0,5,5,36,241,5,5,48,241,5,5,49,241,5,5,39,241,5,5,38,241,5,5,52,241,192,0,0,0,5,5,42,241,5,5,37,241,5,5,43,241,192,0,0,0,5,5,54,241,5,5,35,241,5,5,53,241,5,5,50,241,5,5,210,215,5,5,209,215,192,0,0,0,192,0,0,0,5,5,211,215,5,5,46,241,5,5,136,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,242,5,5,253,216,5,5,254,242,5,5,251,242,5,5,4,243,5,5,10,243,5,5,253,242,192,0,0,0,5,5,19,243,5,5,250,216,5,5,13,243,5,5,2,243,5,5,14,243,5,5,9,243,5,5,16,243,5,5,255,242,5,5,255,216,5,5,254,216,5,5,3,243,5,5,17,243,5,5,249,242,5,5,15,243,5,5,248,216,192,0,0,0,5,5,7,243,5,5,6,243,5,5,11,243,5,5,252,242,5,5,252,216,192,0,0,0,5,5,2,217,5,5,5,243,5,5,12,243,5,5,3,217,5,5,8,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,216,5,5,251,216,5,5,132,244,5,5,130,244,192,0,0,0,192,0,0,0,5,5,137,244,5,5,134,244,5,5,138,244,192,0,0,0,5,5,123,244,5,5,131,244,5,5,142,244,5,5,18,243,5,5,127,244,5,5,186,217,5,5,209,238,5,5,122,244,5,5,135,244,5,5,129,244,5,5,126,244,5,5,121,244,5,5,120,244,5,5,141,244,192,0,0,0,5,5,125,244,5,5,124,244,5,5,184,217,5,5,133,244,192,0,0,0,5,5,183,217,192,0,0,0,192,0,0,0,5,5,185,217,5,5,128,244,5,5,140,244,192,0,0,0,5,5,215,245,5,5,216,245,192,0,0,0,5,5,83,218,5,5,213,245,5,5,80,218,5,5,221,245,192,0,0,0,5,5,84,218,5,5,223,245,5,5,212,245,5,5,139,244,5,5,225,245,5,5,214,245,192,0,0,0,5,5,81,218,5,5,220,245,192,0,0,0,5,5,222,245,5,5,217,245,5,5,224,245,5,5,219,245,5,5,218,245,5,5,82,218,192,0,0,0,192,0,0,0,5,5,250,246,5,5,251,246,192,0,0,0,5,5,253,246,5,5,213,218,5,5,214,218,5,5,254,246,5,5,252,246,192,0,0,0,5,5,249,246,192,0,0,0,5,5,213,247,5,5,216,247,5,5,212,247,192,0,0,0,5,5,35,219,5,5,214,247,5,5,34,219,5,5,33,219,5,5,32,219,5,5,215,247,5,5,131,248,5,5,129,248,192,0,0,0,5,5,128,248,5,5,211,247,5,5,130,248,5,5,217,247,5,5,127,248,192,0,0,0,5,5,11,249,5,5,231,248,5,5,9,249,5,5,161,219,5,5,10,249,5,5,12,249,192,0,0,0,5,5,110,249,5,5,192,219,5,5,109,249,5,5,108,249,5,5,193,219,192,0,0,0,5,5,223,219,5,5,220,249,5,5,243,249,5,5,242,249,5,5,244,249,5,5,130,200,5,5,160,224,192,0,0,0,5,5,160,226,5,5,161,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,231,192,0,0,0,5,5,218,247,5,5,111,249,5,5,131,200,5,5,126,204,5,5,161,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,228,5,5,22,208,192,0,0,0,5,5,133,231,5,5,132,231,5,5,213,209,192,0,0,0,5,5,130,211,5,5,237,238,5,5,151,214,192,0,0,0,5,5,152,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,215,5,5,194,219,5,5,132,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,224,5,5,4,203,5,5,164,224,5,5,163,224,5,5,127,204,192,0,0,0,5,5,162,226,192,0,0,0,5,5,169,226,5,5,54,206,5,5,167,226,5,5,165,226,192,0,0,0,5,5,172,226,5,5,163,226,5,5,164,226,5,5,55,206,192,0,0,0,5,5,59,206,192,0,0,0,192,0,0,0,5,5,173,226,5,5,58,206,5,5,171,226,5,5,168,226,5,5,166,226,5,5,56,206,5,5,57,206,5,5,170,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,208,5,5,251,228,192,0,0,0,5,5,29,208,5,5,13,229,5,5,28,208,5,5,15,229,192,0,0,0,192,0,0,0,5,5,3,229,5,5,26,208,5,5,14,229,192,0,0,0,5,5,252,228,5,5,27,208,5,5,10,229,5,5,6,229,5,5,8,229,5,5,2,229,5,5,9,229,192,0,0,0,192,0,0,0,5,5,23,208,5,5,5,229,192,0,0,0,5,5,4,229,5,5,254,228,192,0,0,0,5,5,11,229,192,0,0,0,192,0,0,0,5,5,7,229,5,5,253,228,192,0,0,0,5,5,255,228,5,5,25,208,5,5,12,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,209,5,5,144,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,231,5,5,142,231,5,5,137,231,5,5,136,231,5,5,134,231,192,0,0,0,5,5,141,231,5,5,143,231,5,5,139,231,192,0,0,0,5,5,138,231,5,5,214,209,5,5,215,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,231,5,5,138,211,5,5,46,234,5,5,52,234,5,5,47,234,5,5,48,234,192,0,0,0,5,5,53,234,192,0,0,0,5,5,140,211,192,0,0,0,5,5,132,211,5,5,139,211,5,5,45,234,5,5,135,231,5,5,135,211,5,5,133,211,5,5,51,234,5,5,50,234,5,5,134,211,5,5,136,211,5,5,49,234,5,5,131,211,192,0,0,0,5,5,137,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,236,5,5,46,213,192,0,0,0,192,0,0,0,5,5,181,236,5,5,180,236,192,0,0,0,5,5,175,236,5,5,48,213,5,5,179,236,5,5,171,236,5,5,172,236,5,5,40,213,5,5,42,213,192,0,0,0,5,5,177,236,5,5,169,236,5,5,44,213,5,5,43,213,5,5,173,236,5,5,178,236,5,5,176,236,5,5,45,213,5,5,174,236,192,0,0,0,192,0,0,0,5,5,145,231,5,5,41,213,192,0,0,0,192,0,0,0,5,5,238,238,5,5,245,238,5,5,154,214,192,0,0,0,5,5,249,238,5,5,158,214,5,5,241,238,5,5,239,238,192,0,0,0,5,5,248,238,192,0,0,0,5,5,153,214,5,5,247,238,5,5,155,214,5,5,156,214,5,5,240,238,5,5,157,214,5,5,246,238,5,5,242,238,5,5,243,238,5,5,244,238,5,5,47,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,241,5,5,68,241,192,0,0,0,5,5,218,215,5,5,63,241,5,5,65,241,192,0,0,0,5,5,216,215,5,5,57,241,5,5,61,241,192,0,0,0,5,5,64,241,5,5,214,215,5,5,217,215,5,5,67,241,5,5,59,241,5,5,60,241,5,5,66,241,5,5,58,241,5,5,62,241,5,5,215,215,5,5,21,243,192,0,0,0,5,5,20,243,5,5,5,217,5,5,26,243,5,5,7,217,192,0,0,0,192,0,0,0,5,5,4,217,5,5,22,243,5,5,8,217,5,5,23,243,192,0,0,0,192,0,0,0,5,5,24,243,5,5,27,243,192,0,0,0,5,5,6,217,192,0,0,0,5,5,147,244,192,0,0,0,192,0,0,0,5,5,150,244,192,0,0,0,5,5,144,244,5,5,146,244,192,0,0,0,192,0,0,0,5,5,145,244,5,5,148,244,5,5,149,244,5,5,25,243,5,5,143,244,192,0,0,0,192,0,0,0,5,5,87,218,5,5,229,245,5,5,232,245,5,5,234,245,5,5,227,245,5,5,228,245,5,5,231,245,5,5,233,245,5,5,88,218,5,5,86,218,5,5,85,218,5,5,230,245,5,5,226,245,5,5,255,246,5,5,215,218,192,0,0,0,5,5,2,247,192,0,0,0,192,0,0,0,5,5,220,247,5,5,36,219,5,5,222,247,5,5,37,219,5,5,219,247,5,5,221,247,5,5,110,219,192,0,0,0,5,5,132,248,5,5,109,219,5,5,15,249,5,5,14,249,192,0,0,0,5,5,13,249,192,0,0,0,192,0,0,0,5,5,182,249,5,5,183,249,5,5,185,249,5,5,184,249,192,0,0,0,5,5,178,220,5,5,133,200,192,0,0,0,5,5,128,204,5,5,16,229,5,5,217,209,192,0,0,0,5,5,54,234,5,5,187,217,192,0,0,0,5,5,235,245,192,0,0,0,192,0,0,0,5,5,124,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,208,192,0,0,0,5,5,147,231,5,5,218,209,5,5,149,231,5,5,148,231,192,0,0,0,192,0,0,0,5,5,55,234,5,5,141,211,5,5,182,236,5,5,185,236,5,5,184,236,192,0,0,0,5,5,183,236,5,5,250,238,5,5,252,238,5,5,251,238,192,0,0,0,5,5,220,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,215,192,0,0,0,5,5,9,217,5,5,28,243,5,5,30,243,5,5,29,243,192,0,0,0,192,0,0,0,5,5,188,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,245,5,5,236,245,192,0,0,0,5,5,3,247,5,5,216,218,192,0,0,0,192,0,0,0,5,5,38,219,5,5,134,248,5,5,133,248,5,5,224,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,201,5,5,165,224,5,5,129,204,5,5,19,229,5,5,17,229,192,0,0,0,192,0,0,0,5,5,18,229,5,5,151,231,5,5,152,231,5,5,62,234,5,5,150,231,192,0,0,0,5,5,56,234,5,5,60,234,5,5,59,234,5,5,61,234,5,5,142,211,5,5,58,234,5,5,57,234,5,5,63,234,192,0,0,0,5,5,188,236,5,5,186,236,192,0,0,0,5,5,187,236,5,5,255,238,5,5,253,238,192,0,0,0,192,0,0,0,5,5,254,238,5,5,69,241,5,5,31,243,5,5,32,243,5,5,189,217,192,0,0,0,5,5,238,245,5,5,4,247,5,5,217,218,192,0,0,0,5,5,223,247,5,5,135,248,5,5,111,219,192,0,0,0,5,5,16,249,5,5,186,249,5,5,126,201,192,0,0,0,5,5,131,204,5,5,132,204,5,5,166,224,192,0,0,0,192,0,0,0,5,5,167,224,5,5,130,204,192,0,0,0,5,5,65,206,192,0,0,0,5,5,63,206,192,0,0,0,5,5,62,206,5,5,69,206,5,5,61,206,5,5,70,206,5,5,174,226,5,5,67,206,192,0,0,0,5,5,64,206,5,5,68,206,5,5,66,206,5,5,60,206,192,0,0,0,192,0,0,0,5,5,39,208,192,0,0,0,5,5,33,208,5,5,23,229,5,5,38,208,192,0,0,0,192,0,0,0,5,5,40,208,5,5,34,208,192,0,0,0,5,5,35,208,192,0,0,0,5,5,21,229,192,0,0,0,192,0,0,0,5,5,32,208,192,0,0,0,5,5,22,229,5,5,37,208,192,0,0,0,192,0,0,0,5,5,20,229,5,5,36,208,192,0,0,0,192,0,0,0,5,5,229,209,192,0,0,0,5,5,231,209,192,0,0,0,192,0,0,0,5,5,155,231,5,5,230,209,5,5,219,209,5,5,223,209,192,0,0,0,5,5,161,211,5,5,68,234,5,5,157,231,5,5,224,209,192,0,0,0,192,0,0,0,5,5,160,231,5,5,161,231,5,5,228,209,192,0,0,0,5,5,163,231,192,0,0,0,5,5,165,231,192,0,0,0,5,5,166,231,5,5,154,231,5,5,153,231,5,5,167,231,5,5,227,209,5,5,164,231,5,5,162,231,192,0,0,0,5,5,225,209,5,5,221,209,5,5,232,209,5,5,158,231,5,5,159,231,5,5,156,231,192,0,0,0,5,5,226,209,192,0,0,0,192,0,0,0,5,5,222,209,192,0,0,0,5,5,220,209,5,5,67,234,5,5,156,211,5,5,151,211,192,0,0,0,192,0,0,0,5,5,146,211,192,0,0,0,5,5,162,211,5,5,147,211,192,0,0,0,5,5,143,211,5,5,158,211,5,5,155,211,5,5,157,211,192,0,0,0,5,5,148,211,5,5,153,211,5,5,144,211,5,5,145,211,5,5,75,234,5,5,72,234,5,5,64,234,5,5,69,234,192,0,0,0,5,5,159,211,5,5,76,234,5,5,160,211,5,5,150,211,192,0,0,0,192,0,0,0,5,5,66,234,192,0,0,0,5,5,74,234,5,5,70,234,5,5,73,234,5,5,71,234,5,5,154,211,5,5,65,234,5,5,149,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,236,5,5,50,213,5,5,53,213,192,0,0,0,5,5,193,236,192,0,0,0,5,5,61,213,5,5,192,236,5,5,55,213,192,0,0,0,5,5,163,214,5,5,194,236,192,0,0,0,5,5,60,213,5,5,190,236,5,5,62,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,213,192,0,0,0,5,5,152,211,5,5,54,213,192,0,0,0,5,5,52,213,5,5,56,213,5,5,58,213,5,5,49,213,5,5,63,213,5,5,59,213,192,0,0,0,5,5,57,213,5,5,189,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,214,192,0,0,0,5,5,166,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,214,192,0,0,0,5,5,4,239,5,5,174,214,5,5,16,239,5,5,9,239,5,5,159,214,5,5,17,239,5,5,11,239,5,5,169,214,5,5,12,239,192,0,0,0,5,5,168,214,5,5,15,239,5,5,162,214,5,5,13,239,5,5,3,239,5,5,161,214,5,5,80,241,5,5,167,214,192,0,0,0,5,5,164,214,192,0,0,0,5,5,172,214,192,0,0,0,5,5,2,239,192,0,0,0,5,5,6,239,5,5,160,214,5,5,5,239,5,5,7,239,5,5,8,239,5,5,171,214,5,5,10,239,5,5,14,239,5,5,18,239,192,0,0,0,5,5,175,214,5,5,226,215,5,5,75,241,5,5,81,241,5,5,78,241,5,5,70,241,5,5,82,241,5,5,71,241,192,0,0,0,5,5,77,241,192,0,0,0,5,5,221,215,5,5,227,215,5,5,83,241,192,0,0,0,192,0,0,0,5,5,223,215,192,0,0,0,5,5,233,215,5,5,228,215,5,5,85,241,5,5,79,241,5,5,224,215,5,5,72,241,5,5,234,215,5,5,73,241,5,5,74,241,5,5,235,215,5,5,232,215,5,5,165,214,192,0,0,0,5,5,222,215,5,5,86,241,5,5,236,215,192,0,0,0,5,5,229,215,5,5,84,241,5,5,225,215,5,5,230,215,5,5,231,215,192,0,0,0,5,5,17,217,5,5,37,243,5,5,46,243,5,5,43,243,5,5,45,243,192,0,0,0,5,5,14,217,5,5,38,243,192,0,0,0,5,5,44,243,5,5,10,217,5,5,40,243,5,5,18,217,5,5,36,243,5,5,41,243,5,5,48,243,5,5,76,241,5,5,42,243,5,5,35,243,5,5,11,217,5,5,34,243,5,5,12,217,5,5,49,243,5,5,13,217,5,5,47,243,5,5,16,217,5,5,33,243,192,0,0,0,5,5,15,217,192,0,0,0,5,5,39,243,5,5,153,244,5,5,167,244,5,5,162,244,5,5,164,244,5,5,152,244,5,5,190,217,192,0,0,0,5,5,151,244,5,5,193,217,5,5,192,217,192,0,0,0,5,5,166,244,5,5,158,244,5,5,155,244,5,5,161,244,192,0,0,0,5,5,154,244,192,0,0,0,5,5,156,244,5,5,165,244,5,5,163,244,192,0,0,0,5,5,191,217,5,5,170,244,5,5,168,244,5,5,159,244,5,5,169,244,5,5,160,244,192,0,0,0,5,5,242,245,5,5,89,218,5,5,249,245,192,0,0,0,192,0,0,0,5,5,226,247,5,5,96,218,5,5,157,244,5,5,240,245,5,5,92,218,5,5,241,245,5,5,246,245,192,0,0,0,192,0,0,0,5,5,94,218,5,5,95,218,5,5,239,245,5,5,248,245,5,5,250,245,5,5,243,245,5,5,245,245,5,5,247,245,5,5,244,245,5,5,251,245,5,5,91,218,5,5,97,218,5,5,93,218,192,0,0,0,5,5,90,218,5,5,7,247,192,0,0,0,5,5,222,218,5,5,5,247,192,0,0,0,192,0,0,0,5,5,9,247,192,0,0,0,5,5,10,247,5,5,220,218,5,5,11,247,5,5,8,247,192,0,0,0,5,5,6,247,5,5,223,218,5,5,219,218,5,5,12,247,192,0,0,0,5,5,221,218,5,5,218,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,219,192,0,0,0,192,0,0,0,5,5,40,219,5,5,225,247,5,5,224,247,5,5,227,247,5,5,228,247,192,0,0,0,5,5,41,219,5,5,136,248,5,5,141,248,5,5,112,219,192,0,0,0,5,5,138,248,192,0,0,0,5,5,137,248,5,5,140,248,5,5,139,248,192,0,0,0,5,5,20,249,192,0,0,0,5,5,162,219,5,5,19,249,5,5,17,249,192,0,0,0,5,5,18,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,219,5,5,195,219,5,5,112,249,5,5,113,249,5,5,197,219,192,0,0,0,5,5,187,249,5,5,188,249,5,5,236,219,192,0,0,0,5,5,242,219,192,0,0,0,5,5,245,249,5,5,22,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,201,192,0,0,0,5,5,24,229,192,0,0,0,5,5,25,229,5,5,77,234,5,5,195,236,5,5,19,239,5,5,20,217,192,0,0,0,5,5,19,217,5,5,171,244,5,5,252,245,192,0,0,0,5,5,21,249,5,5,128,201,5,5,175,226,5,5,71,206,5,5,41,208,5,5,79,234,5,5,78,234,5,5,176,214,5,5,20,239,5,5,177,214,5,5,50,243,5,5,194,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,219,5,5,129,201,5,5,230,222,5,5,176,226,192,0,0,0,192,0,0,0,5,5,42,208,192,0,0,0,5,5,26,229,5,5,27,229,192,0,0,0,5,5,168,231,192,0,0,0,5,5,233,209,5,5,163,211,192,0,0,0,5,5,81,234,5,5,80,234,5,5,82,234,192,0,0,0,5,5,196,236,5,5,197,236,5,5,64,213,5,5,237,215,5,5,178,214,5,5,238,215,192,0,0,0,5,5,54,243,5,5,51,243,5,5,53,243,5,5,52,243,5,5,21,217,192,0,0,0,5,5,172,244,5,5,254,245,5,5,253,245,5,5,131,221,5,5,73,206,5,5,72,206,5,5,177,226,192,0,0,0,5,5,28,229,192,0,0,0,192,0,0,0,5,5,170,231,5,5,169,231,5,5,234,209,192,0,0,0,5,5,84,234,5,5,85,234,5,5,83,234,192,0,0,0,192,0,0,0,5,5,165,211,5,5,164,211,192,0,0,0,5,5,66,213,5,5,65,213,192,0,0,0,5,5,21,239,5,5,89,241,5,5,87,241,5,5,88,241,5,5,239,215,5,5,56,243,5,5,55,243,192,0,0,0,5,5,175,244,5,5,174,244,5,5,173,244,5,5,255,245,192,0,0,0,5,5,246,249,5,5,130,201,5,5,133,204,192,0,0,0,5,5,134,204,5,5,74,206,5,5,75,206,5,5,179,226,5,5,178,226,5,5,29,229,192,0,0,0,5,5,48,208,5,5,46,208,5,5,43,208,5,5,47,208,5,5,45,208,5,5,44,208,192,0,0,0,192,0,0,0,5,5,235,209,5,5,173,231,192,0,0,0,5,5,170,211,5,5,237,209,5,5,242,209,5,5,175,231,5,5,244,209,5,5,243,209,5,5,246,209,5,5,174,231,5,5,171,231,5,5,240,209,5,5,236,209,5,5,238,209,5,5,172,231,5,5,245,209,5,5,241,209,5,5,239,209,5,5,172,211,5,5,171,211,5,5,169,211,5,5,173,211,192,0,0,0,5,5,167,211,5,5,168,211,192,0,0,0,5,5,166,211,192,0,0,0,5,5,86,234,192,0,0,0,192,0,0,0,5,5,199,236,192,0,0,0,5,5,68,213,5,5,69,213,5,5,67,213,192,0,0,0,5,5,198,236,192,0,0,0,5,5,200,236,192,0,0,0,5,5,24,239,5,5,26,239,192,0,0,0,5,5,187,214,5,5,27,239,5,5,180,214,5,5,23,239,5,5,179,214,5,5,189,214,5,5,185,214,5,5,186,214,5,5,182,214,5,5,22,239,5,5,181,214,5,5,28,239,5,5,25,239,192,0,0,0,5,5,188,214,192,0,0,0,5,5,183,214,5,5,184,214,5,5,91,241,192,0,0,0,5,5,93,241,5,5,92,241,192,0,0,0,5,5,94,241,5,5,240,215,5,5,90,241,192,0,0,0,192,0,0,0,5,5,25,217,5,5,57,243,5,5,22,217,5,5,26,217,5,5,24,217,5,5,23,217,5,5,176,244,192,0,0,0,5,5,179,244,192,0,0,0,5,5,178,244,192,0,0,0,5,5,177,244,5,5,195,217,5,5,2,246,5,5,3,246,5,5,98,218,5,5,4,246,5,5,99,218,192,0,0,0,192,0,0,0,5,5,225,218,192,0,0,0,5,5,224,218,5,5,229,247,192,0,0,0,192,0,0,0,5,5,42,219,5,5,230,247,5,5,142,248,5,5,113,219,5,5,114,219,192,0,0,0,5,5,22,249,192,0,0,0,5,5,199,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,201,192,0,0,0,5,5,50,208,5,5,49,208,5,5,87,234,5,5,88,234,192,0,0,0,5,5,70,213,5,5,95,241,5,5,190,214,5,5,96,241,5,5,58,243,5,5,132,201,192,0,0,0,5,5,168,224,5,5,136,204,5,5,135,204,192,0,0,0,5,5,180,226,5,5,76,206,5,5,181,226,5,5,32,229,192,0,0,0,5,5,31,229,192,0,0,0,5,5,30,229,192,0,0,0,192,0,0,0,5,5,177,231,5,5,249,209,192,0,0,0,192,0,0,0,5,5,176,231,5,5,248,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,231,5,5,247,209,192,0,0,0,5,5,90,234,5,5,93,234,5,5,91,234,5,5,92,234,5,5,96,234,5,5,89,234,5,5,97,234,5,5,94,234,5,5,95,234,5,5,72,213,5,5,201,236,192,0,0,0,192,0,0,0,5,5,71,213,192,0,0,0,5,5,32,239,5,5,30,239,192,0,0,0,192,0,0,0,5,5,191,214,5,5,29,239,5,5,31,239,192,0,0,0,5,5,192,214,192,0,0,0,5,5,97,241,192,0,0,0,5,5,98,241,5,5,27,217,192,0,0,0,5,5,6,246,5,5,8,246,5,5,5,246,5,5,7,246,5,5,13,247,5,5,231,247,192,0,0,0,192,0,0,0,5,5,221,249,5,5,133,201,5,5,137,204,5,5,182,226,5,5,184,226,5,5,183,226,192,0,0,0,5,5,35,229,5,5,52,208,192,0,0,0,5,5,33,229,192,0,0,0,5,5,51,208,5,5,36,229,192,0,0,0,5,5,37,229,5,5,34,229,192,0,0,0,192,0,0,0,5,5,190,231,5,5,3,210,5,5,182,231,5,5,188,231,192,0,0,0,192,0,0,0,5,5,252,209,5,5,255,209,5,5,181,231,5,5,250,209,5,5,185,231,5,5,103,234,5,5,254,209,192,0,0,0,5,5,180,231,192,0,0,0,5,5,186,231,5,5,183,231,5,5,189,231,5,5,179,231,5,5,187,231,5,5,253,209,5,5,2,210,5,5,184,231,5,5,251,209,192,0,0,0,5,5,175,211,5,5,99,234,5,5,174,211,5,5,106,234,5,5,105,234,5,5,181,211,192,0,0,0,5,5,182,211,5,5,107,234,5,5,176,211,5,5,104,234,5,5,180,211,5,5,109,234,5,5,100,234,192,0,0,0,5,5,102,234,5,5,177,211,5,5,98,234,5,5,101,234,5,5,108,234,5,5,178,211,5,5,110,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,211,192,0,0,0,5,5,73,213,5,5,206,236,5,5,212,236,5,5,204,236,5,5,213,236,192,0,0,0,5,5,203,236,5,5,208,236,5,5,214,236,5,5,211,236,5,5,210,236,5,5,209,236,192,0,0,0,5,5,202,236,5,5,207,236,192,0,0,0,192,0,0,0,5,5,205,236,192,0,0,0,5,5,197,214,5,5,194,214,5,5,41,239,5,5,46,239,5,5,48,239,5,5,45,239,5,5,38,239,5,5,40,239,5,5,50,239,5,5,47,239,5,5,42,239,5,5,51,239,5,5,39,239,5,5,49,239,5,5,195,214,5,5,201,214,5,5,199,214,5,5,33,239,5,5,200,214,5,5,196,214,5,5,34,239,5,5,36,239,5,5,35,239,5,5,43,239,5,5,44,239,192,0,0,0,5,5,198,214,192,0,0,0,5,5,193,214,192,0,0,0,192,0,0,0,5,5,37,239,192,0,0,0,5,5,108,241,5,5,242,215,192,0,0,0,5,5,99,241,5,5,243,215,5,5,246,215,5,5,104,241,192,0,0,0,5,5,101,241,5,5,245,215,192,0,0,0,192,0,0,0,5,5,105,241,5,5,106,241,5,5,100,241,5,5,109,241,5,5,102,241,5,5,107,241,5,5,244,215,192,0,0,0,5,5,241,215,5,5,103,241,192,0,0,0,5,5,64,243,5,5,30,217,5,5,28,217,5,5,31,217,5,5,29,217,5,5,63,243,5,5,60,243,5,5,59,243,192,0,0,0,5,5,62,243,192,0,0,0,192,0,0,0,5,5,61,243,5,5,193,244,5,5,201,217,5,5,184,244,5,5,183,244,192,0,0,0,5,5,196,217,5,5,189,244,5,5,188,244,5,5,180,244,5,5,191,244,5,5,185,244,5,5,200,217,5,5,182,244,5,5,190,244,5,5,181,244,5,5,197,217,5,5,199,217,5,5,186,244,5,5,198,217,5,5,187,244,192,0,0,0,5,5,192,244,5,5,12,246,192,0,0,0,5,5,104,218,5,5,9,246,192,0,0,0,5,5,13,246,192,0,0,0,192,0,0,0,5,5,101,218,5,5,11,246,5,5,106,218,192,0,0,0,5,5,103,218,192,0,0,0,5,5,10,246,192,0,0,0,5,5,105,218,5,5,14,246,5,5,100,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,218,5,5,229,218,192,0,0,0,5,5,16,247,5,5,228,218,5,5,14,247,5,5,102,218,5,5,15,247,5,5,226,218,5,5,43,219,5,5,45,219,5,5,233,247,5,5,44,219,5,5,232,247,192,0,0,0,5,5,147,248,5,5,115,219,5,5,146,248,5,5,116,219,5,5,144,248,5,5,143,248,5,5,148,248,5,5,149,248,5,5,23,249,192,0,0,0,5,5,145,248,192,0,0,0,192,0,0,0,5,5,117,249,5,5,114,249,5,5,115,249,5,5,116,249,5,5,225,219,192,0,0,0,5,5,191,249,5,5,190,249,5,5,189,249,5,5,222,249,192,0,0,0,5,5,12,250,5,5,247,249,5,5,243,219,5,5,134,201,5,5,77,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,214,192,0,0,0,192,0,0,0,5,5,110,241,192,0,0,0,192,0,0,0,5,5,202,217,192,0,0,0,5,5,15,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,249,5,5,135,201,5,5,5,203,5,5,139,204,5,5,138,204,192,0,0,0,5,5,80,206,192,0,0,0,5,5,185,226,5,5,78,206,5,5,186,226,5,5,79,206,192,0,0,0,192,0,0,0,5,5,42,229,5,5,38,229,192,0,0,0,192,0,0,0,5,5,53,208,5,5,41,229,5,5,40,229,5,5,39,229,5,5,54,208,5,5,43,229,5,5,44,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,231,5,5,195,231,5,5,199,231,5,5,200,231,5,5,206,231,192,0,0,0,5,5,202,231,5,5,204,231,192,0,0,0,5,5,196,231,5,5,191,231,192,0,0,0,5,5,203,231,192,0,0,0,192,0,0,0,5,5,205,231,5,5,198,231,5,5,201,231,5,5,192,231,5,5,5,210,5,5,194,231,5,5,193,231,5,5,4,210,5,5,6,210,192,0,0,0,5,5,186,211,5,5,112,234,5,5,114,234,5,5,113,234,5,5,118,234,5,5,184,211,192,0,0,0,5,5,115,234,5,5,111,234,5,5,116,234,5,5,117,234,5,5,185,211,5,5,187,211,5,5,119,234,192,0,0,0,5,5,218,236,5,5,217,236,192,0,0,0,5,5,215,236,5,5,216,236,5,5,75,213,5,5,77,213,5,5,74,213,5,5,76,213,5,5,58,239,5,5,59,239,5,5,54,239,192,0,0,0,5,5,55,239,5,5,204,214,5,5,209,214,5,5,203,214,5,5,210,214,5,5,205,214,5,5,56,239,192,0,0,0,192,0,0,0,5,5,57,239,5,5,53,239,5,5,211,214,5,5,207,214,192,0,0,0,192,0,0,0,5,5,206,214,5,5,208,214,192,0,0,0,5,5,52,239,192,0,0,0,5,5,112,241,5,5,248,215,192,0,0,0,192,0,0,0,5,5,114,241,5,5,250,215,5,5,117,241,5,5,113,241,5,5,111,241,5,5,116,241,5,5,249,215,5,5,115,241,192,0,0,0,5,5,247,215,192,0,0,0,192,0,0,0,5,5,33,217,5,5,36,217,5,5,66,243,192,0,0,0,5,5,34,217,5,5,65,243,5,5,32,217,5,5,35,217,5,5,194,244,5,5,195,244,5,5,196,244,5,5,203,217,192,0,0,0,5,5,197,244,192,0,0,0,5,5,204,217,5,5,108,218,5,5,18,246,5,5,19,246,5,5,17,246,5,5,16,246,5,5,20,246,5,5,107,218,5,5,20,247,5,5,18,247,5,5,19,247,5,5,21,247,5,5,17,247,5,5,22,247,5,5,235,247,192,0,0,0,5,5,236,247,5,5,234,247,5,5,46,219,5,5,150,248,5,5,117,219,5,5,151,248,5,5,25,249,5,5,24,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,201,5,5,7,210,192,0,0,0,192,0,0,0,5,5,188,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,213,192,0,0,0,192,0,0,0,5,5,252,215,192,0,0,0,5,5,251,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,218,5,5,197,218,5,5,47,219,5,5,137,201,5,5,81,206,5,5,189,211,192,0,0,0,5,5,21,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,221,192,0,0,0,192,0,0,0,5,5,138,201,192,0,0,0,5,5,141,201,5,5,140,201,5,5,139,201,192,0,0,0,192,0,0,0,5,5,132,221,192,0,0,0,5,5,232,222,192,0,0,0,5,5,234,222,5,5,6,203,192,0,0,0,192,0,0,0,5,5,8,203,5,5,231,222,5,5,233,222,5,5,7,203,5,5,236,222,5,5,235,222,5,5,237,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,224,5,5,170,224,5,5,142,204,5,5,169,224,5,5,147,204,5,5,144,204,5,5,141,204,192,0,0,0,5,5,148,204,192,0,0,0,5,5,143,204,5,5,146,204,192,0,0,0,5,5,145,204,5,5,171,224,192,0,0,0,5,5,140,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,206,5,5,188,226,5,5,194,226,5,5,84,206,5,5,91,206,192,0,0,0,5,5,86,206,5,5,191,226,5,5,193,226,5,5,89,206,5,5,187,226,5,5,190,226,5,5,85,206,5,5,82,206,5,5,189,226,5,5,88,206,5,5,192,226,5,5,90,206,5,5,83,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,229,5,5,49,229,5,5,56,208,192,0,0,0,5,5,66,208,5,5,62,208,5,5,47,229,192,0,0,0,192,0,0,0,5,5,70,208,5,5,63,208,5,5,68,208,5,5,58,208,192,0,0,0,5,5,55,208,5,5,57,208,5,5,69,208,5,5,48,229,5,5,61,208,5,5,64,208,5,5,60,208,5,5,65,208,5,5,50,229,5,5,67,208,5,5,59,208,5,5,45,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,231,5,5,8,210,5,5,209,231,192,0,0,0,5,5,10,210,5,5,12,210,192,0,0,0,5,5,208,231,5,5,9,210,5,5,13,210,192,0,0,0,5,5,11,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,211,5,5,124,234,5,5,203,211,5,5,121,234,192,0,0,0,5,5,204,211,5,5,193,211,192,0,0,0,5,5,122,234,192,0,0,0,192,0,0,0,5,5,198,211,192,0,0,0,5,5,123,234,5,5,191,211,5,5,190,211,192,0,0,0,5,5,201,211,5,5,200,211,5,5,199,211,5,5,197,211,5,5,202,211,5,5,120,234,5,5,192,211,5,5,194,211,5,5,196,211,192,0,0,0,192,0,0,0,5,5,80,213,5,5,83,213,192,0,0,0,5,5,87,213,5,5,81,213,5,5,86,213,5,5,84,213,192,0,0,0,5,5,79,213,192,0,0,0,5,5,85,213,5,5,82,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,239,5,5,214,214,5,5,212,214,192,0,0,0,5,5,64,239,192,0,0,0,5,5,215,214,5,5,213,214,5,5,62,239,5,5,61,239,192,0,0,0,5,5,2,216,5,5,60,239,5,5,254,215,5,5,253,215,5,5,118,241,5,5,216,214,5,5,255,215,5,5,119,241,5,5,4,216,5,5,120,241,5,5,3,216,5,5,38,217,5,5,68,243,5,5,37,217,5,5,42,217,5,5,40,217,5,5,41,217,5,5,206,217,5,5,39,217,5,5,67,243,5,5,121,241,5,5,205,217,5,5,207,217,192,0,0,0,5,5,110,218,5,5,111,218,192,0,0,0,5,5,23,247,192,0,0,0,5,5,164,219,5,5,163,219,5,5,143,201,192,0,0,0,192,0,0,0,5,5,183,220,5,5,92,206,192,0,0,0,5,5,180,220,5,5,181,220,5,5,179,220,192,0,0,0,5,5,182,220,192,0,0,0,192,0,0,0,5,5,137,221,5,5,134,221,5,5,139,221,5,5,135,221,5,5,144,201,5,5,147,201,192,0,0,0,5,5,136,221,5,5,146,201,5,5,138,221,192,0,0,0,192,0,0,0,5,5,145,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,222,5,5,242,222,5,5,11,203,5,5,238,222,5,5,241,222,5,5,239,222,5,5,9,203,5,5,12,203,192,0,0,0,5,5,10,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,224,5,5,178,224,5,5,175,224,192,0,0,0,5,5,151,204,192,0,0,0,5,5,152,204,192,0,0,0,5,5,177,224,192,0,0,0,5,5,179,224,5,5,181,224,192,0,0,0,5,5,149,204,5,5,180,224,192,0,0,0,192,0,0,0,5,5,150,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,229,5,5,176,224,5,5,195,226,5,5,204,226,5,5,202,226,5,5,197,226,5,5,198,226,5,5,203,226,5,5,205,226,5,5,94,206,192,0,0,0,5,5,200,226,5,5,196,226,5,5,93,206,5,5,95,206,5,5,199,226,5,5,206,226,5,5,201,226,192,0,0,0,192,0,0,0,5,5,71,208,5,5,60,229,5,5,52,229,5,5,58,229,5,5,59,229,5,5,72,208,192,0,0,0,5,5,51,229,5,5,53,229,5,5,173,224,5,5,55,229,5,5,56,229,5,5,54,229,5,5,15,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,231,5,5,122,241,5,5,217,231,5,5,214,231,5,5,73,208,5,5,17,210,5,5,213,231,5,5,219,231,5,5,218,231,5,5,14,210,5,5,222,231,5,5,212,231,5,5,221,231,5,5,210,231,5,5,220,231,5,5,215,231,5,5,16,210,192,0,0,0,5,5,131,234,192,0,0,0,5,5,126,234,5,5,132,234,5,5,127,234,5,5,125,234,5,5,128,234,5,5,205,211,192,0,0,0,5,5,130,234,192,0,0,0,5,5,129,234,5,5,206,211,5,5,89,213,5,5,88,213,5,5,225,236,5,5,228,236,5,5,220,236,5,5,224,236,5,5,90,213,5,5,223,236,5,5,221,236,5,5,227,236,5,5,222,236,5,5,219,236,5,5,226,236,192,0,0,0,5,5,70,239,5,5,219,214,5,5,198,244,5,5,67,239,5,5,68,239,5,5,66,239,5,5,211,231,5,5,218,214,5,5,71,239,5,5,65,239,5,5,217,214,5,5,220,214,5,5,69,239,5,5,123,241,5,5,5,216,5,5,124,241,5,5,125,241,192,0,0,0,5,5,69,243,5,5,43,217,5,5,199,244,5,5,200,244,192,0,0,0,192,0,0,0,5,5,201,244,5,5,23,246,5,5,22,246,5,5,25,247,192,0,0,0,5,5,24,247,5,5,238,247,5,5,239,247,5,5,237,247,5,5,152,248,5,5,118,219,5,5,148,201,5,5,154,204,5,5,153,204,5,5,98,206,5,5,97,206,5,5,208,226,5,5,209,226,5,5,207,226,192,0,0,0,5,5,96,206,5,5,64,229,192,0,0,0,5,5,65,229,5,5,61,229,5,5,74,208,5,5,62,229,192,0,0,0,5,5,63,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,231,5,5,227,231,5,5,223,231,5,5,226,231,5,5,18,210,5,5,224,231,5,5,19,210,192,0,0,0,192,0,0,0,5,5,148,232,5,5,209,211,5,5,208,211,192,0,0,0,5,5,207,211,192,0,0,0,5,5,133,234,5,5,134,234,192,0,0,0,192,0,0,0,5,5,230,236,5,5,232,236,5,5,94,213,5,5,91,213,192,0,0,0,5,5,93,213,5,5,92,213,5,5,231,236,5,5,229,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,239,5,5,75,239,5,5,76,239,5,5,224,214,5,5,77,239,5,5,72,239,5,5,73,239,5,5,221,214,192,0,0,0,5,5,222,214,5,5,74,239,5,5,223,214,192,0,0,0,5,5,129,241,192,0,0,0,5,5,130,241,5,5,127,241,5,5,128,241,5,5,6,216,5,5,126,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,243,5,5,70,243,5,5,72,243,5,5,46,217,5,5,76,243,5,5,45,217,5,5,74,243,5,5,77,243,5,5,75,243,5,5,71,243,5,5,44,217,192,0,0,0,5,5,203,244,192,0,0,0,5,5,204,244,5,5,202,244,192,0,0,0,5,5,206,244,5,5,208,217,5,5,209,217,5,5,25,246,5,5,113,218,5,5,205,244,5,5,24,246,5,5,112,218,5,5,28,247,5,5,29,247,5,5,230,218,5,5,27,247,192,0,0,0,5,5,26,247,192,0,0,0,5,5,240,247,5,5,48,219,192,0,0,0,5,5,26,249,5,5,119,249,5,5,118,249,192,0,0,0,5,5,200,219,5,5,226,219,5,5,120,249,5,5,223,249,192,0,0,0,5,5,244,219,5,5,149,201,5,5,13,203,192,0,0,0,5,5,210,211,192,0,0,0,5,5,231,218,5,5,150,201,5,5,155,204,5,5,75,208,5,5,20,210,5,5,210,217,5,5,14,203,192,0,0,0,5,5,183,224,5,5,182,224,5,5,210,226,192,0,0,0,5,5,101,206,5,5,99,206,5,5,103,206,5,5,212,226,192,0,0,0,5,5,102,206,5,5,100,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,226,5,5,78,208,5,5,71,229,192,0,0,0,5,5,77,208,5,5,79,208,5,5,76,229,5,5,81,208,5,5,73,229,5,5,74,229,5,5,66,229,5,5,80,208,5,5,77,229,192,0,0,0,192,0,0,0,5,5,68,229,192,0,0,0,5,5,69,229,5,5,67,229,5,5,76,208,192,0,0,0,5,5,75,229,5,5,70,229,5,5,72,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,231,192,0,0,0,5,5,238,231,5,5,236,231,5,5,228,231,5,5,243,231,5,5,231,231,5,5,241,231,5,5,248,231,5,5,240,231,5,5,28,210,192,0,0,0,5,5,24,210,5,5,229,231,192,0,0,0,5,5,235,231,5,5,26,210,192,0,0,0,5,5,234,231,5,5,27,210,5,5,29,210,5,5,237,231,192,0,0,0,5,5,21,210,5,5,22,210,5,5,249,231,5,5,247,231,192,0,0,0,5,5,246,231,5,5,232,231,192,0,0,0,5,5,244,231,192,0,0,0,5,5,25,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,210,5,5,245,231,5,5,230,231,5,5,233,231,5,5,242,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,237,5,5,144,234,192,0,0,0,5,5,137,234,5,5,156,234,5,5,165,234,5,5,140,234,5,5,221,211,192,0,0,0,5,5,153,234,5,5,211,211,5,5,213,211,5,5,225,211,5,5,138,234,192,0,0,0,192,0,0,0,5,5,214,211,5,5,216,211,5,5,226,211,5,5,215,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,211,5,5,146,234,192,0,0,0,5,5,135,234,5,5,222,211,5,5,145,234,5,5,218,211,5,5,163,234,5,5,223,211,5,5,161,234,5,5,149,234,5,5,159,234,5,5,220,211,5,5,136,234,5,5,162,234,5,5,157,234,192,0,0,0,5,5,164,234,5,5,212,211,192,0,0,0,192,0,0,0,5,5,227,211,5,5,217,211,192,0,0,0,192,0,0,0,5,5,142,234,192,0,0,0,5,5,150,234,5,5,154,234,192,0,0,0,5,5,158,234,5,5,219,211,5,5,141,234,5,5,139,234,5,5,151,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,234,5,5,147,234,192,0,0,0,5,5,152,234,5,5,155,234,192,0,0,0,5,5,160,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,236,192,0,0,0,5,5,95,213,5,5,245,236,5,5,237,236,5,5,100,213,5,5,104,213,5,5,254,236,5,5,8,237,5,5,247,236,5,5,96,213,192,0,0,0,5,5,251,236,5,5,143,234,192,0,0,0,5,5,97,213,5,5,4,237,5,5,9,237,5,5,255,236,192,0,0,0,5,5,3,237,5,5,12,237,5,5,5,237,5,5,241,236,5,5,250,236,192,0,0,0,192,0,0,0,5,5,105,213,192,0,0,0,5,5,101,213,5,5,239,236,5,5,252,236,5,5,99,213,5,5,246,236,5,5,98,213,5,5,6,237,5,5,243,236,5,5,236,236,5,5,102,213,5,5,11,237,192,0,0,0,192,0,0,0,5,5,238,236,5,5,2,237,5,5,253,236,5,5,248,236,5,5,234,236,5,5,233,236,5,5,242,236,5,5,7,237,5,5,103,213,5,5,10,237,5,5,240,236,5,5,244,236,5,5,229,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,214,5,5,232,214,5,5,111,239,5,5,108,239,5,5,84,239,5,5,227,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,214,5,5,233,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,5,5,231,214,5,5,94,239,5,5,80,239,5,5,81,239,5,5,225,214,5,5,110,239,5,5,235,214,5,5,97,239,5,5,102,239,5,5,96,239,5,5,148,241,5,5,92,239,5,5,100,239,5,5,98,239,5,5,85,239,5,5,79,239,5,5,106,239,5,5,234,214,5,5,107,239,192,0,0,0,5,5,101,239,192,0,0,0,5,5,90,239,5,5,88,239,5,5,83,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,239,5,5,104,239,5,5,87,239,5,5,103,239,5,5,109,239,192,0,0,0,192,0,0,0,5,5,230,214,192,0,0,0,5,5,99,239,5,5,105,239,5,5,95,239,5,5,89,239,5,5,228,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,236,5,5,93,239,5,5,236,214,5,5,86,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,241,5,5,9,216,5,5,153,241,5,5,150,241,5,5,169,241,5,5,13,216,192,0,0,0,5,5,166,241,5,5,158,241,5,5,168,241,5,5,143,241,5,5,156,241,192,0,0,0,5,5,15,216,192,0,0,0,5,5,135,241,192,0,0,0,5,5,133,241,5,5,167,241,192,0,0,0,5,5,165,241,5,5,164,241,5,5,147,241,5,5,146,241,5,5,136,241,5,5,17,216,192,0,0,0,5,5,142,241,5,5,152,241,5,5,163,241,5,5,20,216,5,5,170,241,192,0,0,0,5,5,54,217,5,5,22,216,5,5,16,216,5,5,140,241,192,0,0,0,5,5,149,241,5,5,132,241,5,5,134,241,5,5,7,216,5,5,19,216,5,5,12,216,5,5,141,241,5,5,157,241,5,5,151,241,5,5,18,216,5,5,131,241,5,5,49,217,5,5,159,241,5,5,162,241,5,5,14,216,192,0,0,0,5,5,145,241,5,5,21,216,5,5,11,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,216,5,5,155,241,5,5,161,241,5,5,8,216,192,0,0,0,5,5,138,241,5,5,160,241,192,0,0,0,192,0,0,0,5,5,139,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,241,5,5,83,243,192,0,0,0,5,5,88,243,5,5,51,217,5,5,53,217,5,5,94,243,5,5,47,217,5,5,109,243,5,5,100,243,5,5,89,243,5,5,90,243,5,5,99,243,192,0,0,0,5,5,60,217,5,5,98,243,5,5,82,243,5,5,97,243,5,5,85,243,5,5,110,243,5,5,59,217,5,5,57,217,5,5,86,243,192,0,0,0,5,5,105,243,192,0,0,0,5,5,91,243,5,5,104,243,192,0,0,0,5,5,106,243,5,5,81,243,5,5,52,217,192,0,0,0,5,5,107,243,192,0,0,0,192,0,0,0,5,5,95,243,192,0,0,0,5,5,56,217,5,5,92,243,192,0,0,0,192,0,0,0,5,5,58,217,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,217,5,5,87,243,5,5,102,243,192,0,0,0,5,5,96,243,5,5,137,241,5,5,103,243,5,5,84,243,192,0,0,0,5,5,55,217,192,0,0,0,5,5,108,243,192,0,0,0,5,5,48,217,5,5,79,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,244,5,5,213,244,5,5,212,217,192,0,0,0,5,5,208,244,5,5,223,244,5,5,215,244,5,5,93,243,192,0,0,0,5,5,225,244,5,5,209,244,192,0,0,0,5,5,211,217,5,5,219,244,5,5,213,217,5,5,221,217,5,5,219,217,5,5,221,244,5,5,220,217,5,5,211,244,192,0,0,0,5,5,212,244,5,5,217,244,5,5,222,244,192,0,0,0,5,5,78,243,5,5,214,217,5,5,230,244,5,5,227,244,5,5,231,244,5,5,218,244,5,5,214,244,5,5,228,244,5,5,36,246,5,5,216,244,192,0,0,0,5,5,217,217,192,0,0,0,5,5,216,217,5,5,80,243,5,5,218,217,5,5,224,244,5,5,226,244,5,5,215,217,5,5,229,244,5,5,207,244,192,0,0,0,5,5,210,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,246,192,0,0,0,5,5,29,246,5,5,117,218,5,5,43,246,192,0,0,0,192,0,0,0,5,5,27,246,5,5,118,218,192,0,0,0,5,5,38,246,192,0,0,0,5,5,34,246,5,5,123,218,5,5,44,246,5,5,28,246,5,5,31,246,5,5,115,218,5,5,46,246,192,0,0,0,5,5,39,246,5,5,42,246,5,5,121,218,5,5,126,218,5,5,124,218,5,5,35,246,5,5,30,246,192,0,0,0,5,5,119,218,5,5,120,218,5,5,26,246,5,5,116,218,192,0,0,0,5,5,114,218,5,5,122,218,5,5,41,246,5,5,125,218,192,0,0,0,5,5,37,246,5,5,47,246,5,5,127,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,246,192,0,0,0,5,5,40,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,247,5,5,56,247,5,5,44,247,5,5,51,247,5,5,32,246,5,5,49,247,5,5,32,247,5,5,54,247,5,5,234,218,5,5,36,247,5,5,53,247,5,5,43,247,192,0,0,0,192,0,0,0,5,5,233,218,192,0,0,0,192,0,0,0,5,5,58,247,5,5,45,247,192,0,0,0,5,5,50,247,5,5,52,247,5,5,30,247,5,5,55,247,5,5,41,247,5,5,46,247,5,5,34,247,5,5,38,247,5,5,57,247,5,5,48,247,5,5,31,247,5,5,35,247,5,5,37,247,5,5,47,247,192,0,0,0,5,5,232,218,5,5,40,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,247,5,5,244,247,5,5,249,247,5,5,55,219,5,5,251,247,192,0,0,0,5,5,49,219,192,0,0,0,5,5,247,247,5,5,253,247,5,5,54,219,5,5,50,219,192,0,0,0,5,5,51,219,5,5,243,247,5,5,250,247,5,5,53,219,5,5,248,247,5,5,52,219,5,5,242,247,5,5,246,247,5,5,245,247,192,0,0,0,5,5,241,247,5,5,252,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,219,5,5,159,248,5,5,162,248,5,5,158,248,5,5,160,248,5,5,161,248,5,5,155,248,5,5,156,248,5,5,153,248,192,0,0,0,192,0,0,0,5,5,157,248,5,5,154,248,5,5,120,219,5,5,121,219,192,0,0,0,192,0,0,0,5,5,28,249,192,0,0,0,5,5,30,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,249,5,5,31,249,192,0,0,0,5,5,166,219,192,0,0,0,5,5,27,249,5,5,165,219,5,5,167,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,249,5,5,123,249,5,5,201,219,5,5,121,249,192,0,0,0,5,5,193,249,5,5,192,249,5,5,194,249,5,5,228,219,5,5,195,249,5,5,227,219,5,5,196,249,5,5,224,249,5,5,227,249,5,5,226,249,5,5,237,219,5,5,225,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,219,5,5,245,219,5,5,246,219,5,5,252,219,5,5,14,250,5,5,15,250,5,5,13,250,5,5,23,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,203,192,0,0,0,192,0,0,0,5,5,78,229,5,5,250,231,5,5,112,239,5,5,48,246,192,0,0,0,192,0,0,0,5,5,16,203,192,0,0,0,5,5,156,204,5,5,104,206,192,0,0,0,192,0,0,0,5,5,79,229,192,0,0,0,5,5,80,229,5,5,82,208,192,0,0,0,5,5,32,210,5,5,252,231,5,5,251,231,5,5,36,210,5,5,31,210,5,5,253,231,5,5,33,210,5,5,35,210,5,5,34,210,5,5,30,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,211,192,0,0,0,192,0,0,0,5,5,169,234,5,5,167,234,192,0,0,0,5,5,168,234,5,5,166,234,192,0,0,0,5,5,106,213,192,0,0,0,5,5,109,213,5,5,111,213,5,5,110,213,192,0,0,0,192,0,0,0,5,5,107,213,5,5,108,213,192,0,0,0,5,5,114,239,5,5,113,239,5,5,238,214,5,5,115,239,192,0,0,0,5,5,116,239,5,5,239,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,241,5,5,176,241,5,5,116,243,192,0,0,0,5,5,174,241,5,5,175,241,5,5,23,216,5,5,171,241,5,5,179,241,5,5,173,241,5,5,177,241,5,5,112,243,192,0,0,0,192,0,0,0,5,5,114,243,192,0,0,0,5,5,115,243,5,5,65,217,5,5,111,243,5,5,64,217,5,5,113,243,5,5,61,217,5,5,62,217,5,5,63,217,5,5,172,241,192,0,0,0,192,0,0,0,5,5,224,217,5,5,234,244,5,5,232,244,5,5,233,244,5,5,222,217,5,5,225,217,5,5,223,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,246,5,5,50,246,5,5,128,218,192,0,0,0,5,5,59,247,5,5,61,247,5,5,60,247,5,5,235,218,5,5,56,219,5,5,2,248,5,5,255,247,5,5,254,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,203,192,0,0,0,5,5,77,220,192,0,0,0,5,5,186,220,5,5,134,200,5,5,184,220,5,5,187,220,5,5,185,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,221,192,0,0,0,5,5,154,201,192,0,0,0,5,5,155,201,5,5,143,221,5,5,152,201,5,5,142,221,5,5,140,221,5,5,153,201,5,5,151,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,222,5,5,246,222,5,5,20,203,5,5,245,222,5,5,244,222,192,0,0,0,5,5,19,203,5,5,18,203,192,0,0,0,5,5,22,203,5,5,247,222,5,5,21,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,224,5,5,158,204,5,5,159,204,5,5,160,204,5,5,189,224,5,5,185,224,5,5,157,204,5,5,186,224,192,0,0,0,5,5,187,224,5,5,184,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,206,192,0,0,0,192,0,0,0,5,5,108,206,5,5,213,226,5,5,109,206,5,5,112,206,5,5,214,226,192,0,0,0,5,5,107,206,5,5,105,206,5,5,106,206,5,5,110,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,208,5,5,83,229,5,5,91,208,5,5,82,229,192,0,0,0,5,5,85,229,5,5,87,208,5,5,84,229,5,5,44,210,5,5,85,208,5,5,88,208,5,5,84,208,5,5,89,208,5,5,90,208,5,5,86,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,229,5,5,40,210,5,5,255,231,192,0,0,0,5,5,5,232,192,0,0,0,192,0,0,0,5,5,4,232,5,5,45,210,5,5,41,210,5,5,42,210,5,5,254,231,5,5,2,232,5,5,3,232,5,5,37,210,5,5,39,210,192,0,0,0,5,5,43,210,5,5,38,210,192,0,0,0,192,0,0,0,5,5,172,234,5,5,170,234,5,5,171,234,5,5,230,211,5,5,231,211,192,0,0,0,5,5,173,234,5,5,229,211,5,5,112,213,192,0,0,0,5,5,114,213,5,5,113,213,192,0,0,0,5,5,14,237,192,0,0,0,192,0,0,0,5,5,15,237,5,5,118,239,192,0,0,0,5,5,117,239,192,0,0,0,192,0,0,0,5,5,24,216,5,5,25,216,5,5,180,241,5,5,26,216,192,0,0,0,5,5,119,243,192,0,0,0,5,5,117,243,192,0,0,0,5,5,118,243,5,5,66,217,192,0,0,0,5,5,235,244,5,5,129,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,217,5,5,23,203,192,0,0,0,5,5,113,206,5,5,215,226,192,0,0,0,192,0,0,0,5,5,86,229,5,5,92,208,5,5,46,210,5,5,6,232,5,5,8,232,5,5,48,210,5,5,47,210,5,5,49,210,5,5,50,210,5,5,7,232,5,5,234,211,5,5,235,211,5,5,233,211,5,5,115,213,5,5,232,211,5,5,174,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,213,5,5,119,239,5,5,181,241,5,5,27,216,5,5,68,217,5,5,236,244,5,5,240,244,5,5,228,217,5,5,237,244,5,5,229,217,5,5,227,217,5,5,241,244,5,5,230,217,5,5,239,244,192,0,0,0,5,5,51,246,5,5,226,217,5,5,130,218,192,0,0,0,5,5,124,249,192,0,0,0,192,0,0,0,5,5,24,203,5,5,94,208,5,5,93,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,210,5,5,10,232,5,5,9,232,5,5,52,210,192,0,0,0,192,0,0,0,5,5,178,234,5,5,239,211,5,5,236,211,5,5,177,234,5,5,238,211,5,5,175,234,5,5,237,211,192,0,0,0,5,5,176,234,192,0,0,0,5,5,16,237,5,5,117,213,192,0,0,0,5,5,122,239,192,0,0,0,5,5,240,214,5,5,120,239,5,5,241,214,5,5,242,214,5,5,121,239,5,5,243,214,192,0,0,0,5,5,182,241,192,0,0,0,5,5,31,216,5,5,28,216,5,5,33,216,5,5,184,241,5,5,29,216,5,5,183,241,5,5,32,216,192,0,0,0,192,0,0,0,5,5,30,216,192,0,0,0,5,5,122,243,5,5,124,243,192,0,0,0,192,0,0,0,5,5,69,217,5,5,123,243,5,5,70,217,5,5,121,243,5,5,120,243,192,0,0,0,5,5,243,244,5,5,242,244,5,5,231,217,5,5,244,244,5,5,56,246,5,5,132,218,5,5,55,246,5,5,52,246,5,5,131,218,5,5,53,246,5,5,54,246,192,0,0,0,5,5,62,247,5,5,63,247,5,5,236,218,192,0,0,0,5,5,59,219,192,0,0,0,192,0,0,0,5,5,3,248,192,0,0,0,192,0,0,0,5,5,57,219,5,5,58,219,5,5,4,248,192,0,0,0,192,0,0,0,5,5,122,219,5,5,123,219,5,5,163,248,192,0,0,0,192,0,0,0,5,5,202,219,5,5,126,249,5,5,204,219,192,0,0,0,5,5,125,249,5,5,127,249,5,5,203,219,5,5,197,249,192,0,0,0,5,5,249,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,211,192,0,0,0,5,5,17,237,192,0,0,0,5,5,123,239,5,5,34,216,5,5,35,216,192,0,0,0,5,5,26,203,192,0,0,0,5,5,244,214,5,5,133,218,5,5,161,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,216,192,0,0,0,5,5,168,219,5,5,162,204,5,5,87,229,192,0,0,0,5,5,11,232,192,0,0,0,5,5,13,232,192,0,0,0,5,5,12,232,192,0,0,0,5,5,182,234,5,5,179,234,5,5,241,211,192,0,0,0,5,5,242,211,5,5,180,234,5,5,181,234,192,0,0,0,5,5,19,237,5,5,24,237,5,5,118,213,5,5,18,237,5,5,20,237,5,5,27,237,5,5,22,237,5,5,26,237,5,5,23,237,5,5,21,237,5,5,25,237,5,5,119,213,192,0,0,0,192,0,0,0,5,5,126,239,192,0,0,0,5,5,124,239,5,5,246,214,192,0,0,0,5,5,245,214,5,5,125,239,5,5,247,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,241,192,0,0,0,192,0,0,0,5,5,186,241,5,5,37,216,5,5,185,241,5,5,125,243,192,0,0,0,5,5,127,243,5,5,129,243,5,5,128,243,192,0,0,0,5,5,71,217,5,5,126,243,5,5,251,244,5,5,232,217,5,5,249,244,5,5,252,244,5,5,233,217,192,0,0,0,5,5,247,244,192,0,0,0,5,5,250,244,5,5,248,244,5,5,245,244,5,5,234,217,5,5,246,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,246,192,0,0,0,192,0,0,0,5,5,59,246,5,5,58,246,192,0,0,0,5,5,64,247,192,0,0,0,5,5,65,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,248,192,0,0,0,5,5,125,219,192,0,0,0,5,5,124,219,5,5,32,249,5,5,33,249,5,5,205,219,5,5,128,249,192,0,0,0,5,5,238,219,192,0,0,0,5,5,163,204,5,5,53,210,5,5,29,237,5,5,28,237,5,5,128,239,5,5,127,239,192,0,0,0,192,0,0,0,5,5,72,217,5,5,131,243,5,5,130,243,5,5,255,244,5,5,253,244,5,5,2,245,5,5,254,244,192,0,0,0,192,0,0,0,5,5,134,218,5,5,60,246,5,5,61,246,5,5,62,246,192,0,0,0,5,5,6,248,192,0,0,0,5,5,164,248,192,0,0,0,5,5,129,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,204,192,0,0,0,192,0,0,0,5,5,188,241,5,5,132,243,192,0,0,0,5,5,165,204,192,0,0,0,192,0,0,0,5,5,120,213,192,0,0,0,5,5,189,241,5,5,235,217,5,5,3,245,5,5,135,218,192,0,0,0,5,5,66,247,5,5,67,247,5,5,60,219,5,5,34,249,5,5,166,204,5,5,97,208,5,5,98,208,5,5,88,229,5,5,54,210,5,5,55,210,5,5,14,232,5,5,56,210,192,0,0,0,5,5,246,211,192,0,0,0,5,5,248,211,5,5,184,234,5,5,185,234,5,5,183,234,5,5,243,211,5,5,244,211,5,5,247,211,5,5,245,211,192,0,0,0,192,0,0,0,5,5,30,237,5,5,121,213,5,5,122,213,192,0,0,0,192,0,0,0,5,5,135,239,5,5,250,214,5,5,130,239,5,5,129,239,192,0,0,0,5,5,134,239,5,5,248,214,192,0,0,0,192,0,0,0,5,5,44,216,192,0,0,0,5,5,131,239,5,5,136,239,5,5,133,239,5,5,132,239,192,0,0,0,5,5,249,214,192,0,0,0,5,5,42,216,192,0,0,0,5,5,191,241,5,5,38,216,192,0,0,0,5,5,192,241,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,5,5,41,216,5,5,39,216,5,5,43,216,192,0,0,0,5,5,40,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,243,192,0,0,0,5,5,138,243,5,5,134,243,5,5,137,243,5,5,73,217,192,0,0,0,5,5,182,242,5,5,136,243,5,5,135,243,192,0,0,0,5,5,238,217,5,5,236,217,5,5,239,217,5,5,237,217,5,5,4,245,5,5,5,245,5,5,6,245,5,5,240,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,246,5,5,137,218,5,5,64,246,192,0,0,0,5,5,138,218,5,5,63,246,5,5,65,246,5,5,136,218,5,5,71,247,5,5,68,247,192,0,0,0,5,5,69,247,5,5,70,247,5,5,7,248,5,5,62,219,192,0,0,0,5,5,61,219,192,0,0,0,5,5,166,248,5,5,165,248,5,5,126,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,219,5,5,206,219,5,5,229,219,5,5,198,249,5,5,250,249,5,5,251,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,204,5,5,15,232,192,0,0,0,192,0,0,0,5,5,186,234,5,5,31,237,5,5,32,237,5,5,123,213,192,0,0,0,5,5,124,213,5,5,137,239,5,5,251,214,192,0,0,0,192,0,0,0,5,5,74,217,192,0,0,0,5,5,7,245,192,0,0,0,5,5,241,217,5,5,69,246,5,5,139,218,5,5,68,246,5,5,70,246,5,5,67,246,5,5,10,248,5,5,72,247,5,5,73,247,192,0,0,0,5,5,237,218,192,0,0,0,5,5,9,248,192,0,0,0,192,0,0,0,5,5,8,248,192,0,0,0,5,5,167,248,5,5,252,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,204,192,0,0,0,192,0,0,0,5,5,114,206,5,5,216,226,192,0,0,0,5,5,89,229,192,0,0,0,5,5,57,210,192,0,0,0,5,5,60,210,5,5,58,210,5,5,16,232,192,0,0,0,5,5,62,210,192,0,0,0,5,5,59,210,192,0,0,0,192,0,0,0,5,5,61,210,192,0,0,0,5,5,250,211,192,0,0,0,5,5,187,234,192,0,0,0,192,0,0,0,5,5,188,234,5,5,139,239,192,0,0,0,5,5,249,211,5,5,251,211,5,5,252,211,192,0,0,0,5,5,34,237,192,0,0,0,5,5,33,237,5,5,125,213,192,0,0,0,5,5,126,213,192,0,0,0,5,5,35,237,5,5,138,239,5,5,128,213,5,5,252,214,192,0,0,0,5,5,127,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,216,5,5,140,239,5,5,254,214,5,5,253,214,5,5,141,239,5,5,144,239,5,5,142,239,5,5,143,239,5,5,255,214,192,0,0,0,5,5,50,216,5,5,48,216,192,0,0,0,192,0,0,0,5,5,47,216,5,5,194,241,192,0,0,0,5,5,49,216,192,0,0,0,192,0,0,0,5,5,193,241,5,5,139,243,192,0,0,0,5,5,195,241,5,5,46,216,5,5,196,241,5,5,142,243,5,5,140,243,5,5,141,243,5,5,146,243,5,5,245,217,5,5,145,243,5,5,148,243,5,5,147,243,5,5,144,243,5,5,143,243,192,0,0,0,5,5,75,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,245,192,0,0,0,5,5,9,245,5,5,244,217,5,5,242,217,5,5,243,217,192,0,0,0,5,5,8,245,192,0,0,0,5,5,73,246,192,0,0,0,5,5,140,218,192,0,0,0,5,5,72,246,5,5,71,246,5,5,141,218,192,0,0,0,5,5,78,247,5,5,77,247,192,0,0,0,5,5,75,247,192,0,0,0,5,5,74,247,5,5,239,218,5,5,238,218,5,5,79,247,5,5,168,248,5,5,127,219,5,5,12,248,5,5,63,219,5,5,11,248,5,5,76,247,192,0,0,0,5,5,169,248,5,5,170,219,192,0,0,0,5,5,230,219,5,5,199,249,192,0,0,0,5,5,253,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,204,5,5,90,229,5,5,149,243,5,5,171,204,192,0,0,0,192,0,0,0,5,5,37,237,5,5,36,237,5,5,197,241,192,0,0,0,192,0,0,0,5,5,151,243,192,0,0,0,5,5,150,243,192,0,0,0,5,5,246,217,5,5,74,246,5,5,75,246,5,5,240,218,192,0,0,0,192,0,0,0,5,5,254,249,5,5,115,206,5,5,64,210,5,5,63,210,5,5,189,234,5,5,191,234,5,5,254,211,5,5,190,234,5,5,253,211,5,5,255,211,5,5,192,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,237,5,5,41,237,5,5,40,237,192,0,0,0,5,5,43,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,213,5,5,42,237,5,5,38,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,237,192,0,0,0,5,5,151,239,192,0,0,0,5,5,154,239,5,5,156,239,5,5,146,239,5,5,150,239,5,5,147,239,5,5,3,215,5,5,6,215,5,5,8,215,5,5,148,239,5,5,149,239,5,5,7,215,5,5,152,239,5,5,155,239,5,5,153,239,5,5,9,215,192,0,0,0,5,5,5,215,5,5,145,239,5,5,2,215,192,0,0,0,5,5,4,215,192,0,0,0,192,0,0,0,5,5,52,216,5,5,203,241,5,5,201,241,5,5,200,241,192,0,0,0,5,5,206,241,192,0,0,0,5,5,205,241,5,5,204,241,192,0,0,0,5,5,199,241,5,5,51,216,5,5,198,241,192,0,0,0,5,5,202,241,5,5,53,216,192,0,0,0,192,0,0,0,5,5,154,243,192,0,0,0,5,5,158,243,5,5,155,243,5,5,157,243,5,5,156,243,5,5,153,243,5,5,159,243,5,5,162,243,5,5,160,243,5,5,161,243,5,5,77,217,192,0,0,0,5,5,76,217,5,5,152,243,5,5,163,243,5,5,15,245,5,5,18,245,5,5,20,245,5,5,19,245,192,0,0,0,5,5,13,245,5,5,17,245,5,5,12,245,192,0,0,0,5,5,14,245,5,5,247,217,5,5,11,245,192,0,0,0,5,5,16,245,192,0,0,0,192,0,0,0,5,5,88,246,5,5,77,246,5,5,142,218,192,0,0,0,192,0,0,0,5,5,143,218,5,5,76,246,5,5,81,246,5,5,87,246,5,5,79,246,5,5,86,246,192,0,0,0,5,5,83,246,192,0,0,0,5,5,82,246,5,5,85,246,5,5,80,246,5,5,78,246,192,0,0,0,5,5,84,246,192,0,0,0,5,5,86,247,5,5,84,247,5,5,241,218,5,5,83,247,5,5,89,247,5,5,87,247,192,0,0,0,5,5,242,218,5,5,82,247,5,5,80,247,192,0,0,0,5,5,81,247,5,5,244,218,5,5,85,247,5,5,243,218,5,5,88,247,5,5,13,248,5,5,19,248,192,0,0,0,192,0,0,0,5,5,14,248,5,5,67,219,5,5,20,248,5,5,66,219,5,5,18,248,5,5,17,248,5,5,65,219,5,5,16,248,5,5,64,219,5,5,15,248,192,0,0,0,5,5,175,248,5,5,177,248,5,5,176,248,192,0,0,0,5,5,173,248,5,5,129,219,5,5,170,248,5,5,174,248,5,5,179,248,192,0,0,0,5,5,178,248,5,5,171,248,5,5,172,248,5,5,128,219,5,5,35,249,5,5,173,219,192,0,0,0,5,5,36,249,5,5,171,219,5,5,172,219,192,0,0,0,192,0,0,0,5,5,130,249,5,5,207,219,5,5,228,249,192,0,0,0,5,5,239,219,192,0,0,0,5,5,255,249,5,5,240,219,5,5,2,250,5,5,3,250,5,5,17,250,5,5,16,250,5,5,255,219,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,206,192,0,0,0,192,0,0,0,5,5,194,234,192,0,0,0,5,5,193,234,192,0,0,0,5,5,130,213,5,5,131,213,5,5,45,237,192,0,0,0,5,5,157,239,5,5,209,241,192,0,0,0,192,0,0,0,5,5,10,215,5,5,54,216,5,5,207,241,192,0,0,0,5,5,210,241,5,5,55,216,192,0,0,0,5,5,164,243,5,5,208,241,5,5,21,245,5,5,248,217,5,5,89,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,247,5,5,90,247,192,0,0,0,192,0,0,0,5,5,91,247,192,0,0,0,192,0,0,0,5,5,21,248,192,0,0,0,5,5,68,219,5,5,180,248,5,5,176,219,5,5,130,219,5,5,174,219,5,5,175,219,5,5,131,249,5,5,231,219,192,0,0,0,5,5,117,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,245,192,0,0,0,192,0,0,0,5,5,217,226,192,0,0,0,5,5,2,212,192,0,0,0,5,5,46,237,192,0,0,0,192,0,0,0,5,5,132,213,5,5,47,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,239,5,5,158,239,5,5,57,216,5,5,11,215,5,5,12,215,192,0,0,0,5,5,162,239,5,5,161,239,5,5,160,239,192,0,0,0,192,0,0,0,5,5,211,241,5,5,214,241,192,0,0,0,5,5,213,241,5,5,212,241,5,5,56,216,5,5,168,243,5,5,166,243,5,5,165,243,192,0,0,0,192,0,0,0,5,5,167,243,192,0,0,0,5,5,249,217,5,5,24,245,5,5,25,245,5,5,250,217,192,0,0,0,5,5,23,245,192,0,0,0,5,5,91,246,5,5,90,246,5,5,93,246,5,5,144,218,5,5,92,246,192,0,0,0,5,5,93,247,5,5,95,247,5,5,94,247,192,0,0,0,192,0,0,0,5,5,22,248,5,5,25,248,5,5,23,248,5,5,24,248,5,5,181,248,5,5,131,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,249,5,5,38,249,5,5,39,249,192,0,0,0,5,5,208,219,5,5,232,219,5,5,4,250,5,5,118,206,192,0,0,0,5,5,13,215,5,5,58,216,5,5,26,245,192,0,0,0,5,5,182,248,192,0,0,0,192,0,0,0,5,5,18,250,5,5,218,226,192,0,0,0,5,5,2,220,5,5,119,206,5,5,215,241,192,0,0,0,5,5,27,245,192,0,0,0,5,5,94,246,192,0,0,0,192,0,0,0,5,5,26,248,5,5,183,248,5,5,120,206,192,0,0,0,5,5,48,237,5,5,49,237,192,0,0,0,5,5,133,213,5,5,134,213,5,5,164,239,5,5,15,215,5,5,14,215,5,5,163,239,192,0,0,0,5,5,169,243,192,0,0,0,5,5,28,245,5,5,30,245,5,5,29,245,5,5,253,217,5,5,252,217,5,5,251,217,192,0,0,0,5,5,70,219,5,5,27,248,192,0,0,0,5,5,69,219,5,5,185,248,5,5,184,248,192,0,0,0,5,5,209,219,5,5,132,249,5,5,99,208,5,5,195,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,237,5,5,50,237,5,5,51,237,192,0,0,0,192,0,0,0,5,5,173,239,192,0,0,0,5,5,168,239,5,5,165,239,5,5,172,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,239,192,0,0,0,192,0,0,0,5,5,17,215,5,5,171,239,5,5,167,239,192,0,0,0,192,0,0,0,5,5,166,239,5,5,170,239,5,5,169,239,5,5,16,215,192,0,0,0,192,0,0,0,5,5,226,241,5,5,221,241,5,5,219,241,5,5,228,241,5,5,220,241,192,0,0,0,5,5,216,241,192,0,0,0,5,5,222,241,192,0,0,0,192,0,0,0,5,5,217,241,5,5,178,243,5,5,218,241,5,5,229,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,241,5,5,59,216,5,5,224,241,5,5,223,241,192,0,0,0,5,5,227,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,243,5,5,173,243,192,0,0,0,192,0,0,0,5,5,172,243,192,0,0,0,5,5,180,243,5,5,175,243,5,5,179,243,192,0,0,0,5,5,177,243,5,5,176,243,5,5,174,243,192,0,0,0,5,5,171,243,192,0,0,0,5,5,80,217,5,5,79,217,192,0,0,0,5,5,81,217,5,5,78,217,5,5,181,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,245,5,5,39,245,192,0,0,0,5,5,37,245,5,5,41,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,245,192,0,0,0,5,5,34,245,5,5,4,218,5,5,35,245,192,0,0,0,5,5,33,245,5,5,40,245,192,0,0,0,5,5,32,245,5,5,31,245,5,5,3,218,5,5,255,217,5,5,254,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,245,5,5,103,246,5,5,109,246,5,5,147,218,5,5,104,246,192,0,0,0,5,5,107,246,5,5,111,246,5,5,148,218,5,5,106,246,192,0,0,0,5,5,98,246,192,0,0,0,5,5,97,246,5,5,110,246,5,5,101,246,192,0,0,0,5,5,99,246,5,5,108,246,5,5,100,246,5,5,146,218,5,5,145,218,192,0,0,0,5,5,95,246,5,5,96,246,5,5,105,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,247,5,5,101,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,247,5,5,105,247,5,5,103,247,5,5,97,247,5,5,108,247,192,0,0,0,5,5,96,247,192,0,0,0,5,5,246,218,5,5,104,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,247,5,5,245,218,5,5,107,247,192,0,0,0,192,0,0,0,5,5,106,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,248,5,5,29,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,248,192,0,0,0,5,5,32,248,5,5,35,248,5,5,72,219,192,0,0,0,192,0,0,0,5,5,33,248,5,5,34,248,192,0,0,0,5,5,28,248,5,5,31,248,5,5,71,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,219,5,5,196,248,5,5,191,248,5,5,195,248,192,0,0,0,5,5,198,248,5,5,194,248,192,0,0,0,5,5,190,248,192,0,0,0,5,5,135,219,5,5,193,248,5,5,197,248,5,5,134,219,5,5,188,248,5,5,102,247,5,5,192,248,192,0,0,0,192,0,0,0,5,5,189,248,192,0,0,0,5,5,186,248,192,0,0,0,5,5,187,248,5,5,132,219,5,5,43,249,5,5,45,249,5,5,48,249,5,5,44,249,5,5,49,249,192,0,0,0,5,5,42,249,192,0,0,0,5,5,40,249,192,0,0,0,5,5,177,219,5,5,46,249,5,5,179,219,5,5,178,219,5,5,41,249,5,5,47,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,249,5,5,210,219,5,5,138,249,192,0,0,0,5,5,136,249,5,5,133,249,192,0,0,0,192,0,0,0,5,5,135,249,5,5,134,249,5,5,200,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,249,5,5,201,249,192,0,0,0,192,0,0,0,5,5,231,249,192,0,0,0,5,5,230,249,5,5,229,249,5,5,232,249,192,0,0,0,5,5,248,219,5,5,249,219,5,5,24,250,5,5,28,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,208,5,5,17,232,5,5,198,234,192,0,0,0,5,5,3,212,5,5,196,234,192,0,0,0,192,0,0,0,5,5,197,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,237,5,5,54,237,5,5,137,213,5,5,135,213,5,5,55,237,5,5,136,213,5,5,179,239,192,0,0,0,5,5,182,239,5,5,176,239,5,5,183,239,5,5,175,239,5,5,177,239,192,0,0,0,5,5,178,239,5,5,181,239,192,0,0,0,192,0,0,0,5,5,20,215,5,5,186,239,5,5,185,239,5,5,18,215,5,5,180,239,5,5,184,239,5,5,19,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,241,192,0,0,0,5,5,64,216,192,0,0,0,5,5,234,241,5,5,60,216,192,0,0,0,5,5,231,241,5,5,237,241,5,5,240,241,192,0,0,0,5,5,65,216,192,0,0,0,5,5,236,241,5,5,233,241,5,5,241,241,5,5,232,241,192,0,0,0,5,5,238,241,5,5,61,216,192,0,0,0,5,5,230,241,5,5,62,216,192,0,0,0,5,5,63,216,5,5,235,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,243,5,5,186,243,5,5,187,243,5,5,190,243,5,5,188,243,192,0,0,0,5,5,182,243,192,0,0,0,192,0,0,0,5,5,185,243,5,5,195,243,5,5,189,243,192,0,0,0,192,0,0,0,5,5,82,217,192,0,0,0,5,5,197,243,5,5,194,243,5,5,83,217,5,5,196,243,5,5,183,243,5,5,192,243,5,5,193,243,192,0,0,0,5,5,191,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,245,5,5,48,245,5,5,51,245,192,0,0,0,192,0,0,0,5,5,45,245,192,0,0,0,5,5,5,218,5,5,53,245,5,5,44,245,5,5,54,245,192,0,0,0,5,5,50,245,5,5,52,245,5,5,56,245,5,5,49,245,5,5,57,245,5,5,47,245,5,5,43,245,5,5,6,218,192,0,0,0,5,5,55,245,5,5,7,218,5,5,150,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,243,5,5,137,246,5,5,128,246,5,5,152,218,5,5,124,246,5,5,153,218,192,0,0,0,192,0,0,0,5,5,133,246,5,5,127,246,5,5,117,246,5,5,151,218,5,5,130,246,5,5,125,246,5,5,126,246,192,0,0,0,5,5,112,246,5,5,119,246,5,5,134,246,192,0,0,0,5,5,131,246,192,0,0,0,5,5,123,246,192,0,0,0,5,5,135,246,5,5,118,246,5,5,113,246,5,5,132,246,192,0,0,0,5,5,115,246,5,5,129,246,5,5,120,246,5,5,136,246,5,5,116,246,5,5,149,218,5,5,114,246,5,5,121,246,5,5,122,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,247,192,0,0,0,5,5,113,247,192,0,0,0,5,5,118,247,192,0,0,0,5,5,130,247,5,5,121,247,5,5,114,247,5,5,110,247,5,5,123,247,5,5,116,247,5,5,119,247,5,5,112,247,5,5,126,247,5,5,109,247,5,5,117,247,5,5,122,247,5,5,124,247,5,5,127,247,5,5,111,247,192,0,0,0,5,5,131,247,5,5,132,247,5,5,125,247,5,5,129,247,5,5,120,247,192,0,0,0,5,5,52,248,5,5,55,248,192,0,0,0,5,5,73,219,192,0,0,0,5,5,54,248,5,5,59,248,5,5,57,248,5,5,74,219,5,5,48,248,5,5,38,248,5,5,37,248,5,5,76,219,5,5,50,248,5,5,51,248,5,5,47,248,5,5,39,248,192,0,0,0,5,5,44,248,5,5,128,247,192,0,0,0,5,5,40,248,5,5,75,219,5,5,46,248,192,0,0,0,5,5,45,248,192,0,0,0,5,5,41,248,5,5,53,248,192,0,0,0,5,5,42,248,5,5,203,248,5,5,56,248,5,5,58,248,5,5,49,248,5,5,43,248,5,5,204,248,5,5,206,248,5,5,200,248,5,5,136,219,192,0,0,0,5,5,213,248,5,5,211,248,5,5,137,219,5,5,210,248,5,5,209,248,5,5,202,248,5,5,199,248,5,5,205,248,5,5,214,248,5,5,201,248,5,5,207,248,192,0,0,0,5,5,58,249,5,5,63,249,5,5,53,249,5,5,56,249,5,5,180,219,5,5,60,249,192,0,0,0,5,5,67,249,5,5,208,248,192,0,0,0,5,5,54,249,5,5,64,249,5,5,68,249,5,5,59,249,5,5,52,249,5,5,62,249,192,0,0,0,5,5,61,249,5,5,66,249,5,5,65,249,5,5,212,248,5,5,57,249,5,5,51,249,5,5,55,249,5,5,211,219,5,5,212,219,5,5,50,249,192,0,0,0,5,5,149,249,5,5,140,249,5,5,148,249,5,5,145,249,5,5,146,249,5,5,139,249,5,5,142,249,5,5,150,249,5,5,144,249,5,5,143,249,5,5,141,249,192,0,0,0,5,5,147,249,192,0,0,0,5,5,203,249,192,0,0,0,5,5,204,249,192,0,0,0,5,5,206,249,5,5,205,249,5,5,208,249,5,5,207,249,5,5,234,249,5,5,233,249,5,5,5,250,192,0,0,0,5,5,6,250,192,0,0,0,5,5,19,250,5,5,253,219,5,5,3,220,192,0,0,0,5,5,29,250,5,5,4,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,218,5,5,60,248,192,0,0,0,5,5,213,219,5,5,214,219,192,0,0,0,5,5,102,208,5,5,199,234,192,0,0,0,5,5,4,212,5,5,187,239,192,0,0,0,192,0,0,0,5,5,243,241,5,5,244,241,5,5,242,241,5,5,201,243,5,5,200,243,5,5,84,217,5,5,59,245,5,5,202,243,5,5,58,245,192,0,0,0,192,0,0,0,5,5,139,246,5,5,154,218,5,5,156,218,5,5,138,246,192,0,0,0,192,0,0,0,5,5,155,218,192,0,0,0,5,5,133,247,5,5,135,247,5,5,134,247,5,5,61,248,5,5,77,219,192,0,0,0,5,5,181,219,5,5,151,249,5,5,209,249,192,0,0,0,192,0,0,0,5,5,32,250,5,5,103,208,192,0,0,0,5,5,56,237,192,0,0,0,5,5,21,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,241,5,5,245,241,192,0,0,0,5,5,203,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,218,5,5,248,218,5,5,215,248,5,5,25,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,208,5,5,138,213,192,0,0,0,5,5,22,215,192,0,0,0,5,5,140,246,192,0,0,0,5,5,69,249,5,5,65,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,219,5,5,66,210,5,5,23,215,5,5,85,217,5,5,70,249,5,5,67,210,192,0,0,0,5,5,188,239,5,5,67,216,5,5,247,241,5,5,248,241,192,0,0,0,5,5,66,216,192,0,0,0,5,5,205,243,5,5,89,217,5,5,87,217,5,5,88,217,5,5,86,217,5,5,60,245,5,5,8,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,247,5,5,136,247,5,5,139,247,5,5,138,247,5,5,249,218,192,0,0,0,192,0,0,0,5,5,62,248,192,0,0,0,5,5,64,248,5,5,63,248,5,5,78,219,5,5,216,248,192,0,0,0,5,5,71,249,5,5,72,249,5,5,182,219,5,5,210,249,5,5,235,249,5,5,250,219,192,0,0,0,5,5,18,232,5,5,249,241,5,5,206,243,5,5,141,246,5,5,200,234,192,0,0,0,5,5,207,243,5,5,62,245,5,5,61,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,249,5,5,215,219,192,0,0,0,5,5,211,249,5,5,236,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,212,5,5,189,239,5,5,190,239,192,0,0,0,5,5,250,241,5,5,6,212,192,0,0,0,5,5,9,218,5,5,63,245,192,0,0,0,5,5,66,248,5,5,79,219,5,5,67,248,5,5,65,248,5,5,74,249,192,0,0,0,5,5,152,249,192,0,0,0,5,5,7,212,192,0,0,0,5,5,210,243,5,5,209,243,5,5,208,243,5,5,64,245,192,0,0,0,192,0,0,0,5,5,68,245,5,5,67,245,5,5,66,245,5,5,65,245,5,5,10,218,5,5,142,246,5,5,141,247,5,5,250,218,5,5,140,247,5,5,68,248,5,5,219,248,5,5,218,248,5,5,138,219,5,5,217,248,5,5,77,249,5,5,76,249,5,5,75,249,192,0,0,0,192,0,0,0,5,5,139,213,192,0,0,0,5,5,251,241,5,5,90,217,192,0,0,0,5,5,143,246,5,5,144,246,5,5,220,248,5,5,78,249,192,0,0,0,192,0,0,0,5,5,153,249,5,5,212,249,5,5,7,250,5,5,34,250,5,5,140,213,5,5,91,217,5,5,69,245,5,5,145,246,5,5,69,248,5,5,79,249,192,0,0,0,192,0,0,0,5,5,25,215,192,0,0,0,5,5,211,243,5,5,70,245,5,5,146,246,5,5,147,246,5,5,148,246,5,5,146,247,192,0,0,0,5,5,142,247,5,5,80,219,5,5,145,247,5,5,144,247,5,5,251,218,5,5,143,247,5,5,253,218,192,0,0,0,5,5,252,218,5,5,71,248,5,5,70,248,5,5,81,219,5,5,82,219,192,0,0,0,192,0,0,0,5,5,140,219,5,5,221,248,5,5,139,219,192,0,0,0,5,5,82,249,5,5,83,249,5,5,81,249,5,5,80,249,5,5,217,219,192,0,0,0,5,5,154,249,5,5,155,249,5,5,156,249,5,5,216,219,5,5,213,249,5,5,216,249,5,5,215,249,5,5,214,249,192,0,0,0,192,0,0,0,5,5,33,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,216,192,0,0,0,192,0,0,0,5,5,17,218,5,5,147,247,5,5,72,248,192,0,0,0,5,5,141,219,5,5,222,248,192,0,0,0,192,0,0,0,5,5,35,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,243,192,0,0,0,5,5,223,248,192,0,0,0,5,5,237,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,206,5,5,47,201,5,5,135,201,5,5,168,211,5,5,228,210,5,5,135,200,5,5,153,199,5,5,69,216,5,5,69,216,5,5,104,203,5,5,14,203,5,5,136,208,5,5,248,201,5,5,21,218,5,5,23,219,5,5,67,218,5,5,160,219,5,5,255,216,5,5,44,213,5,5,164,219,5,5,13,214,5,5,246,203,5,5,157,205,5,5,173,205,5,5,101,211,5,5,208,211,5,5,53,216,5,5,68,210,5,5,182,200,5,5,15,219,5,5,19,219,5,5,30,219,5,5,4,220,5,5,181,208,5,5,140,216,5,5,176,217,5,5,215,218,5,5,76,202,5,5,72,218,5,5,35,219,5,5,190,208,5,5,99,205,5,5,133,205,5,5,162,205,5,5,150,204,5,5,172,201,5,5,170,200,5,5,120,208,5,5,78,215,5,5,30,218,5,5,181,218,5,5,149,215,5,5,110,200,5,5,209,218,5,5,117,211,5,5,177,211,5,5,59,219,5,5,17,215,5,5,212,219,5,5,43,211,5,5,50,211,5,5,234,212,5,5,92,231,5,5,15,216,5,5,102,208,5,5,171,214,5,5,14,218,5,5,7,201,5,5,104,219,5,5,106,219,5,5,94,201,5,5,75,214,5,5,172,211,5,5,236,211,5,5,96,217,5,5,76,212,5,5,10,214,5,5,133,207,5,5,151,212,5,5,221,207,5,5,202,216,5,5,158,204,5,5,146,206,5,5,117,200,5,5,150,213,5,5,210,204,5,5,54,211,5,5,233,212,5,5,187,209,5,5,84,208,5,5,112,219,5,5,142,223,5,5,13,214,5,5,229,215,5,5,7,199,5,5,67,212,5,5,151,203,5,5,159,207,5,5,174,207,5,5,127,199,5,5,138,242,5,5,33,203,5,5,196,208,5,5,4,199,5,5,154,202,5,5,251,213,5,5,237,205,5,5,156,206,5,5,108,210,5,5,44,204,5,5,106,211,5,5,57,213,5,5,104,207,5,5,137,201,5,5,67,201,5,5,181,203,5,5,107,204,5,5,26,207,5,5,171,207,5,5,29,203,5,5,187,201,192,0,0,0,5,5,81,207,5,5,158,217,5,5,120,201,5,5,160,214,5,5,20,210,5,5,74,216,5,5,194,200,5,5,0,179,5,5,18,218,5,5,87,205,5,5,124,217,5,5,187,218,5,5,238,214,5,5,255,219,5,5,155,218,5,5,23,215,5,5,0,151,5,5,87,215,5,5,109,215,5,5,151,248,5,5,61,200,5,5,219,213,5,5,144,219,5,5,244,213,5,5,160,212,5,5,240,210,5,5,50,238,192,0,0,0,5,5,99,214,5,5,222,216,5,5,207,214,5,5,128,214,5,5,59,208,5,5,51,217,5,5,2,200,5,5,7,200,5,5,82,203,5,5,158,205,5,5,215,209,5,5,57,213,5,5,135,210,5,5,56,202,5,5,51,207,5,5,131,216,5,5,56,218,5,5,134,217,5,5,111,199,5,5,208,221,5,5,67,212,5,5,92,216,5,5,46,222,5,5,21,204,5,5,51,214,5,5,227,207,5,5,233,207,5,5,221,211,5,5,239,211,5,5,203,219,5,5,122,213,5,5,171,201,5,5,146,217,5,5,230,218,5,5,67,217,5,5,200,208,5,5,0,142,5,5,13,212,5,5,187,213,5,5,249,200,5,5,85,205,5,5,13,214,5,5,132,215,5,5,167,216,5,5,178,238,5,5,3,216,5,5,68,216,5,5,183,210,5,5,152,201,5,5,153,213,5,5,86,222,5,5,219,203,5,5,236,203,5,5,230,210,5,5,169,205,5,5,178,205,5,5,191,207,5,5,239,205,5,5,136,218,5,5,28,199,5,5,227,213,5,5,86,208,5,5,203,204,5,5,229,206,5,5,136,207,5,5,208,214,5,5,147,203,5,5,152,210,5,5,110,205,5,5,159,207,5,5,42,210,5,5,173,200,5,5,14,200,5,5,192,213,5,5,110,202,5,5,49,201,5,5,99,207,5,5,155,202,5,5,163,207,5,5,107,209,5,5,185,215,192,0,0,0,5,5,137,211,5,5,150,201,5,5,226,217,5,5,153,206,5,5,226,210,5,5,183,200,5,5,127,215,5,5,140,215,5,5,208,218,192,0,0,0,5,5,178,219,5,5,181,219,5,5,131,202,5,5,120,207,5,5,233,216,5,5,221,199,5,5,200,207,5,5,208,207,5,5,193,202,5,5,186,202,5,5,91,218,5,5,17,199,5,5,39,206,5,5,196,201,5,5,34,199,5,5,139,203,5,5,85,202,5,5,175,215,5,5,53,200,5,5,240,203,5,5,254,213,5,5,247,215,5,5,131,200,5,5,160,204,5,5,124,201,5,5,84,212,5,5,0,169,5,5,51,232,192,0,0,0,192,0,0,0,5,5,112,210,192,0,0,0,5,5,251,208,192,0,0,0,192,0,0,0,5,5,196,239,192,0,0,0,5,5,191,205,192,0,0,0,5,5,215,205,5,5,194,207,5,5,207,212,5,5,240,211,5,5,228,212,5,5,109,200,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,214,192,0,0,0,192,0,0,0,5,5,11,210,5,5,73,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,210,5,5,249,211,5,5,46,216,5,5,74,219,192,0,0,0,192,0,0,0,5,5,44,203,5,5,8,212,5,5,167,200,5,5,64,203,5,5,85,210,5,5,206,201,5,5,130,208,5,5,32,212,5,5,44,215,192,0,0,0,5,5,24,215,5,5,191,213,5,5,16,220,5,5,59,205,5,5,211,208,5,5,221,213,5,5,19,218,5,5,61,207,5,5,189,203,5,5,254,208,5,5,96,207,5,5,139,205,5,5,131,207,5,5,153,212,5,5,82,209,192,0,0,0,5,5,94,209,5,5,46,211,5,5,213,202,5,5,58,204,5,5,59,204,5,5,211,205,5,5,214,205,5,5,216,205,5,5,208,212,5,5,206,212,5,5,82,214,5,5,67,204,5,5,63,211,5,5,99,214,5,5,183,215,5,5,209,216,5,5,79,211,5,5,225,202,5,5,18,206,192,0,0,0,192,0,0,0,5,5,189,209,5,5,153,214,5,5,218,209,5,5,230,215,5,5,191,217,5,5,67,213,5,5,98,218,192,0,0,0,5,5,11,210,5,5,130,218,5,5,60,219,5,5,40,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,201,192,0,0,0,5,5,252,199,5,5,149,221,5,5,114,199,5,5,31,215,5,5,63,203,5,5,0,171,5,5,130,208,5,5,169,206,5,5,151,208,5,5,60,232,5,5,112,210,5,5,175,213,5,5,249,201,5,5,250,201,5,5,203,206,5,5,227,239,5,5,52,235,5,5,51,235,5,5,247,206,5,5,133,232,5,5,16,207,5,5,150,210,5,5,149,210,5,5,221,213,192,0,0,0,5,5,19,218,5,5,104,216,5,5,16,230,5,5,170,210,5,5,239,208,5,5,56,207,5,5,251,208,5,5,99,205,5,5,80,207,5,5,54,201,5,5,80,199,5,5,104,207,5,5,236,203,192,0,0,0,5,5,67,209,5,5,153,212,192,0,0,0,5,5,82,209,5,5,174,216,5,5,158,216,5,5,197,199,192,0,0,0,5,5,229,235,192,0,0,0,192,0,0,0,5,5,65,238,5,5,59,214,5,5,191,205,5,5,184,207,5,5,210,202,5,5,227,230,192,0,0,0,5,5,82,238,5,5,188,240,5,5,63,211,192,0,0,0,5,5,75,211,5,5,99,214,5,5,34,231,5,5,225,202,5,5,28,206,5,5,186,209,5,5,44,241,5,5,24,243,5,5,187,217,5,5,218,209,5,5,169,214,5,5,165,214,5,5,164,214,5,5,230,215,5,5,229,215,5,5,233,215,5,5,191,217,5,5,162,219,5,5,98,218,5,5,249,215,5,5,2,216,5,5,73,243,5,5,235,236,5,5,81,229,5,5,130,218,5,5,240,211,192,0,0,0,5,5,60,219,192,0,0,0,5,5,40,216,5,5,94,247,5,5,69,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,161,192,0,0,0,192,0,0,0,5,5,157,200,5,5,44,203,5,5,4,223,192,0,0,0,5,5,122,206,5,5,108,208,5,5,8,212,5,5,15,212,192,0,0,0,192,0,0,0,5,5,167,200,5,5,184,201,192,0,0,0,5,5,188,201,192,0,0,0,192,0,0,0,5,5,27,199,5,5,254,199,192,0,0,0,5,5,31,199,5,5,206,204,192,0,0,0,5,5,118,199,192,0,0,0,192,0,0,0,5,5,8,220,5,5,0,170,192,0,0,0,5,5,193,201,5,5,178,221,5,5,116,208,5,5,81,210,192,0,0,0,5,5,63,203,5,5,64,203,5,5,85,210,5,5,0,171,5,5,125,199,5,5,126,199,5,5,127,199,5,5,131,199,5,5,206,201,5,5,123,208,5,5,181,200,192,0,0,0,5,5,219,204,5,5,219,204,5,5,219,204,192,0,0,0,5,5,100,200,5,5,47,199,5,5,222,204,192,0,0,0,5,5,147,199,5,5,151,199,5,5,26,200,192,0,0,0,5,5,200,200,5,5,193,200,5,5,232,201,5,5,39,223,192,0,0,0,5,5,224,204,192,0,0,0,5,5,176,206,5,5,159,209,5,5,159,209,5,5,151,208,5,5,150,208,5,5,139,208,5,5,66,232,5,5,43,212,5,5,32,212,192,0,0,0,192,0,0,0,5,5,168,213,5,5,34,199,192,0,0,0,5,5,100,203,5,5,34,227,5,5,59,227,5,5,96,203,5,5,2,225,5,5,158,208,5,5,98,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,220,5,5,39,200,5,5,54,212,5,5,195,206,192,0,0,0,192,0,0,0,5,5,7,205,5,5,5,205,192,0,0,0,5,5,109,203,5,5,199,206,192,0,0,0,192,0,0,0,5,5,186,213,5,5,87,245,5,5,87,245,192,0,0,0,192,0,0,0,5,5,106,232,5,5,67,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,185,192,0,0,0,5,5,217,206,5,5,16,220,192,0,0,0,5,5,2,221,192,0,0,0,5,5,194,229,192,0,0,0,192,0,0,0,5,5,195,229,5,5,38,235,5,5,142,201,5,5,233,206,192,0,0,0,5,5,184,208,5,5,43,225,5,5,186,208,5,5,128,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,223,5,5,122,227,5,5,240,206,5,5,190,208,192,0,0,0,5,5,0,195,192,0,0,0,192,0,0,0,5,5,99,226,5,5,17,222,5,5,17,222,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,201,5,5,248,206,192,0,0,0,192,0,0,0,5,5,16,201,5,5,15,201,192,0,0,0,5,5,59,225,192,0,0,0,192,0,0,0,5,5,59,205,192,0,0,0,5,5,22,207,5,5,143,210,5,5,151,210,5,5,150,210,5,5,151,210,5,5,71,235,5,5,221,213,5,5,62,215,5,5,224,213,5,5,147,237,5,5,44,242,5,5,19,218,5,5,21,218,5,5,69,200,5,5,24,207,192,0,0,0,5,5,98,202,5,5,86,202,5,5,76,205,192,0,0,0,5,5,77,205,5,5,171,203,5,5,53,207,5,5,39,207,5,5,78,225,192,0,0,0,5,5,167,232,5,5,152,232,5,5,37,207,192,0,0,0,5,5,228,213,192,0,0,0,5,5,3,230,5,5,107,235,192,0,0,0,5,5,61,207,5,5,177,210,192,0,0,0,192,0,0,0,5,5,96,205,5,5,89,205,192,0,0,0,5,5,254,208,192,0,0,0,192,0,0,0,5,5,53,203,5,5,142,206,5,5,114,208,192,0,0,0,5,5,203,222,192,0,0,0,5,5,99,205,5,5,80,207,5,5,214,233,5,5,55,201,5,5,59,201,192,0,0,0,192,0,0,0,5,5,215,223,5,5,81,222,192,0,0,0,5,5,96,207,192,0,0,0,192,0,0,0,5,5,110,225,5,5,75,230,192,0,0,0,5,5,210,232,5,5,138,212,192,0,0,0,5,5,70,242,192,0,0,0,5,5,124,216,192,0,0,0,5,5,85,200,192,0,0,0,5,5,73,240,192,0,0,0,5,5,209,210,5,5,158,235,5,5,104,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,200,192,0,0,0,5,5,172,202,5,5,134,222,5,5,77,221,5,5,184,225,5,5,244,203,5,5,139,205,5,5,236,203,5,5,147,205,5,5,138,205,5,5,151,205,192,0,0,0,5,5,231,223,5,5,41,209,5,5,56,209,192,0,0,0,5,5,67,209,5,5,221,210,192,0,0,0,5,5,125,207,5,5,32,214,192,0,0,0,192,0,0,0,5,5,237,237,5,5,188,246,192,0,0,0,5,5,31,218,192,0,0,0,5,5,169,247,5,5,92,201,192,0,0,0,5,5,7,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,238,192,0,0,0,5,5,254,219,5,5,158,216,192,0,0,0,192,0,0,0,5,5,86,209,5,5,221,235,192,0,0,0,192,0,0,0,5,5,43,218,5,5,94,199,192,0,0,0,5,5,202,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,211,5,5,229,235,5,5,55,238,5,5,45,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,222,192,0,0,0,5,5,174,207,192,0,0,0,5,5,108,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,205,5,5,195,205,5,5,227,230,192,0,0,0,5,5,71,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,207,5,5,43,211,5,5,82,238,192,0,0,0,192,0,0,0,5,5,214,205,192,0,0,0,192,0,0,0,5,5,207,212,5,5,33,226,192,0,0,0,5,5,82,214,5,5,27,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,236,192,0,0,0,192,0,0,0,5,5,92,214,5,5,168,215,192,0,0,0,192,0,0,0,5,5,206,240,192,0,0,0,5,5,177,242,192,0,0,0,5,5,73,204,192,0,0,0,5,5,19,231,192,0,0,0,5,5,246,212,192,0,0,0,5,5,208,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,240,192,0,0,0,5,5,158,228,192,0,0,0,5,5,225,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,216,192,0,0,0,192,0,0,0,5,5,119,201,192,0,0,0,192,0,0,0,5,5,172,209,5,5,91,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,226,5,5,60,231,192,0,0,0,192,0,0,0,5,5,126,221,5,5,122,201,5,5,240,202,192,0,0,0,5,5,246,202,5,5,239,202,5,5,243,202,5,5,105,204,192,0,0,0,5,5,107,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,207,5,5,72,231,5,5,189,209,5,5,130,226,5,5,196,209,5,5,193,209,5,5,200,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,233,5,5,177,238,5,5,182,238,192,0,0,0,5,5,10,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,204,5,5,117,211,5,5,247,216,5,5,119,244,5,5,50,206,192,0,0,0,5,5,39,234,5,5,117,231,5,5,44,241,5,5,139,236,5,5,140,236,192,0,0,0,192,0,0,0,5,5,209,238,5,5,139,244,192,0,0,0,192,0,0,0,5,5,132,200,192,0,0,0,5,5,135,231,5,5,49,234,192,0,0,0,5,5,173,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,211,5,5,233,215,5,5,162,219,5,5,129,201,192,0,0,0,5,5,45,208,5,5,239,209,5,5,199,219,5,5,76,206,192,0,0,0,192,0,0,0,5,5,252,209,5,5,33,229,5,5,98,234,192,0,0,0,5,5,79,206,5,5,249,215,192,0,0,0,192,0,0,0,5,5,183,220,5,5,173,224,5,5,128,234,192,0,0,0,5,5,228,236,5,5,213,211,5,5,90,239,5,5,88,239,5,5,104,213,5,5,32,246,5,5,37,247,192,0,0,0,5,5,32,210,192,0,0,0,5,5,116,243,192,0,0,0,192,0,0,0,5,5,8,232,5,5,241,239,5,5,242,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,239,192,0,0,0,5,5,114,206,192,0,0,0,5,5,196,241,5,5,75,246,5,5,42,237,5,5,161,243,192,0,0,0,192,0,0,0,5,5,94,247,5,5,102,247,5,5,177,239,192,0,0,0,192,0,0,0,5,5,184,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,208,192,0,0,0,5,5,18,232,192,0,0,0,192,0,0,0,5,5,189,239,5,5,63,245,5,5,139,213,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,27,206,0,16,140,28,0,96,1,0,0,96,170,170,170,170,170,170,170,170,166,114,1,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,76,0,0,0,76,1,0,0,92,83,1,0,92,83,1,0,60,91,1,0,60,91,1,0,248,95,1,0,248,95,1,0,90,110,1,0,90,110,1,0,138,114,1,0,25,0,0,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,254,255,50,105,114,84,1,0,0,9,0,20,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,53,1,61,1,69,1,77,1,85,1,93,1,101,1,109,1,117,1,125,1,133,1,140,1,147,1,154,1,162,1,170,1,178,1,186,1,194,1,202,1,210,1,218,1,226,1,234,1,242,1,250,1,2,2,10,2,18,2,26,2,34,2,42,2,50,2,58,2,66,2,74,2,82,2,90,2,98,2,106,2,114,2,122,2,130,2,138,2,146,2,154,2,162,2,170,2,178,2,186,2,194,2,202,2,210,2,218,2,226,2,234,2,242,2,250,2,2,3,10,3,18,3,26,3,34,3,42,3,50,3,58,3,66,3,74,3,82,3,90,3,98,3,105,3,113,3,121,3,129,3,137,3,144,3,152,3,160,3,168,3,176,3,184,3,192,3,200,3,208,3,216,3,224,3,232,3,240,3,248,3,255,3,7,4,15,4,21,4,27,4,35,4,43,4,51,4,59,4,67,4,75,4,83,4,91,4,99,4,107,4,115,4,123,4,131,4,139,4,147,4,155,4,163,4,171,4,179,4,187,4,194,4,202,4,210,4,218,4,226,4,234,4,242,4,250,4,2,5,9,5,17,5,25,5,33,5,41,5,49,5,57,5,65,5,73,5,81,5,89,5,97,5,105,5,113,5,121,5,129,5,137,5,145,5,153,5,161,5,169,5,175,5,183,5,191,5,198,5,206,5,214,5,222,5,230,5,238,5,246,5,254,5,6,6,14,6,22,6,30,6,38,6,46,6,54,6,62,6,70,6,78,6,86,6,94,6,102,6,110,6,118,6,126,6,134,6,142,6,149,6,157,6,165,6,172,6,180,6,188,6,196,6,204,6,212,6,220,6,228,6,236,6,244,6,252,6,4,7,12,7,20,7,28,7,36,7,44,7,52,7,60,7,68,7,76,7,84,7,92,7,100,7,108,7,116,7,124,7,132,7,140,7,148,7,156,7,164,7,172,7,180,7,188,7,196,7,204,7,212,7,220,7,228,7,236,7,244,7,48,0,48,0,48,0,252,7,4,8,12,8,20,8,28,8,36,8,44,8,52,8,60,8,68,8,76,8,84,8,92,8,100,8,108,8,116,8,124,8,132,8,140,8,148,8,156,8,164,8,172,8,180,8,188,8,196,8,204,8,212,8,220,8,228,8,236,8,244,8,252,8,4,9,12,9,20,9,28,9,36,9,44,9,48,9,56,9,63,9,71,9,79,9,87,9,95,9,103,9,111,9,118,9,125,9,133,9,141,9,149,9,157,9,165,9,172,9,180,9,188,9,196,9,204,9,212,9,220,9,228,9,236,9,244,9,252,9,4,10,12,10,20,10,28,10,36,10,44,10,52,10,60,10,68,10,76,10,84,10,91,10,99,10,107,10,115,10,123,10,131,10,139,10,147,10,155,10,163,10,171,10,179,10,187,10,195,10,203,10,211,10,219,10,227,10,235,10,243,10,251,10,3,11,11,11,19,11,27,11,35,11,43,11,51,11,59,11,67,11,75,11,83,11,91,11,98,11,106,11,114,11,122,11,130,11,138,11,145,11,153,11,161,11,169,11,177,11,185,11,191,11,199,11,207,11,215,11,223,11,231,11,239,11,247,11,255,11,7,12,15,12,23,12,31,12,39,12,47,12,55,12,59,12,67,12,75,12,83,12,91,12,98,12,106,12,48,0,111,12,48,0,118,12,48,0,48,0,48,0,122,12,130,12,48,0,138,12,146,12,154,12,162,12,170,12,178,12,186,12,194,12,202,12,210,12,218,12,226,12,234,12,242,12,250,12,1,13,9,13,17,13,25,13,33,13,41,13,49,13,57,13,65,13,73,13,81,13,89,13,97,13,105,13,113,13,121,13,129,13,137,13,145,13,153,13,161,13,169,13,177,13,185,13,193,13,201,13,209,13,217,13,225,13,233,13,241,13,249,13,1,14,9,14,17,14,25,14,33,14,41,14,49,14,57,14,65,14,73,14,81,14,89,14,97,14,105,14,112,14,120,14,128,14,136,14,144,14,152,14,160,14,168,14,176,14,184,14,192,14,200,14,208,14,216,14,224,14,232,14,240,14,248,14,0,15,8,15,16,15,24,15,32,15,40,15,48,15,56,15,64,15,72,15,48,0,80,15,88,15,96,15,98,15,106,15,109,15,116,15,48,0,48,0,48,0,123,15,130,15,48,0,137,15,48,0,145,15,153,15,161,15,169,15,177,15,185,15,193,15,201,15,48,0,48,0,48,0,208,15,216,15,224,15,232,15,240,15,248,15,0,16,8,16,16,16,24,16,32,16,39,16,47,16,55,16,62,16,48,0,48,0,48,0,48,0,69,16,77,16,85,16,93,16,101,16,109,16,117,16,125,16,133,16,141,16,149,16,157,16,165,16,173,16,181,16,189,16,197,16,205,16,213,16,220,16,48,0,48,0,48,0,48,0,228,16,234,16,239,16,245,16,48,0,48,0,248,16,48,0,0,17,5,17,48,0,11,17,48,0,48,0,17,17,48,0,25,17,32,17,40,17,48,17,56,17,64,17,72,17,80,17,88,17,48,0,48,0,48,0,96,17,104,17,112,17,120,17,128,17,135,17,143,17,151,17,159,17,167,17,175,17,183,17,191,17,199,17,207,17,48,0,214,17,48,0,48,0,48,0,220,17,228,17,236,17,241,17,249,17,254,17,3,18,7,18,15,18,23,18,30,18,48,0,48,0,48,0,48,0,48,0,35,18,43,18,51,18,59,18,67,18,75,18,83,18,91,18,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,97,18,105,18,113,18,121,18,129,18,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,130,18,138,18,146,18,154,18,162,18,170,18,178,18,186,18,194,18,202,18,210,18,215,18,223,18,231,18,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,232,19,161,0,48,0,48,0,153,0,153,0,240,19,247,19,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,239,18,247,18,255,18,7,19,15,19,23,19,31,19,39,19,47,19,55,19,63,19,71,19,79,19,87,19,93,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,192,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,98,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,106,19,114,19,122,19,130,19,138,19,146,19,154,19,162,19,170,19,178,19,186,19,194,19,202,19,210,19,217,19,48,0,224,19,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,36,0,202,193,36,0,202,226,36,0,202,3,37,0,202,36,37,0,202,69,37,0,202,102,37,0,202,135,37,0,202,168,37,0,202,201,37,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,35,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,34,36,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,36,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,236,5,5,215,225,192,0,0,0,5,5,3,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,234,5,5,121,237,5,5,221,232,5,5,15,233,5,5,58,235,5,5,110,238,5,5,119,224,5,5,221,236,192,0,0,0,5,5,112,238,5,5,15,225,192,0,0,0,5,5,22,238,5,5,84,232,5,5,115,238,5,5,94,233,192,0,0,0,5,5,114,232,5,5,89,224,5,5,73,236,5,5,78,225,5,5,225,225,5,5,187,233,5,5,117,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,225,192,0,0,0,5,5,7,230,5,5,5,236,192,0,0,0,5,5,227,232,5,5,121,238,192,0,0,0,5,5,234,226,5,5,242,235,5,5,186,242,5,5,222,237,192,0,0,0,192,0,0,0,5,5,119,226,192,0,0,0,5,5,40,225,192,0,0,0,5,5,35,230,192,0,0,0,5,5,136,238,192,0,0,0,5,5,162,234,5,5,124,225,5,5,194,234,5,5,7,238,192,0,0,0,5,5,224,229,5,5,7,229,5,5,123,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,231,192,0,0,0,5,5,239,228,192,0,0,0,5,5,125,238,5,5,186,230,5,5,121,236,192,0,0,0,5,5,188,237,5,5,242,234,5,5,87,237,5,5,167,227,5,5,60,226,5,5,192,229,192,0,0,0,5,5,219,231,5,5,150,231,5,5,73,232,192,0,0,0,5,5,40,227,192,0,0,0,5,5,229,224,5,5,102,236,192,0,0,0,192,0,0,0,5,5,139,238,5,5,241,228,5,5,22,232,5,5,70,236,5,5,40,235,5,5,95,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,233,192,0,0,0,192,0,0,0,5,5,140,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,230,5,5,122,230,192,0,0,0,5,5,201,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,230,192,0,0,0,5,5,218,236,5,5,169,237,192,0,0,0,5,5,96,233,5,5,54,226,5,5,109,238,5,5,204,236,5,5,131,229,192,0,0,0,5,5,24,237,5,5,181,227,5,5,141,238,5,5,253,234,5,5,218,228,192,0,0,0,192,0,0,0,5,5,116,238,192,0,0,0,5,5,251,235,5,5,127,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,238,5,5,27,239,5,5,176,234,5,5,70,229,192,0,0,0,5,5,137,228,5,5,87,227,5,5,116,236,5,5,182,224,5,5,146,227,5,5,28,231,192,0,0,0,5,5,101,235,5,5,213,228,5,5,94,234,5,5,11,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,232,5,5,29,239,192,0,0,0,5,5,32,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,232,5,5,181,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,236,5,5,80,233,5,5,170,232,5,5,184,238,5,5,182,238,5,5,146,238,5,5,196,228,5,5,239,231,5,5,12,225,192,0,0,0,5,5,183,238,5,5,191,228,5,5,183,228,192,0,0,0,5,5,180,232,5,5,77,225,192,0,0,0,192,0,0,0,5,5,128,230,192,0,0,0,5,5,146,224,5,5,62,238,5,5,105,233,5,5,247,233,5,5,124,237,5,5,170,226,5,5,65,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,239,5,5,188,238,5,5,44,232,192,0,0,0,5,5,186,238,192,0,0,0,5,5,116,225,5,5,56,230,5,5,104,236,192,0,0,0,192,0,0,0,5,5,185,238,192,0,0,0,5,5,91,236,5,5,187,238,5,5,205,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,236,192,0,0,0,5,5,231,237,5,5,190,238,192,0,0,0,5,5,193,238,5,5,110,228,5,5,75,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,232,192,0,0,0,5,5,115,226,192,0,0,0,5,5,88,226,192,0,0,0,5,5,23,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,238,5,5,85,236,192,0,0,0,192,0,0,0,5,5,3,235,5,5,47,228,5,5,146,226,5,5,59,226,5,5,179,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,237,5,5,183,236,5,5,255,227,5,5,241,227,5,5,189,238,192,0,0,0,192,0,0,0,5,5,223,232,5,5,200,234,5,5,37,225,192,0,0,0,5,5,191,238,192,0,0,0,5,5,11,233,5,5,194,238,5,5,127,230,5,5,195,238,192,0,0,0,192,0,0,0,5,5,201,234,5,5,197,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,224,5,5,20,227,192,0,0,0,5,5,205,238,192,0,0,0,5,5,0,199,192,0,0,0,5,5,48,230,192,0,0,0,5,5,44,233,192,0,0,0,5,5,193,233,192,0,0,0,5,5,194,233,5,5,206,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,225,192,0,0,0,192,0,0,0,5,5,131,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,234,5,5,165,225,5,5,15,238,5,5,98,238,5,5,197,236,192,0,0,0,5,5,65,234,192,0,0,0,5,5,128,227,192,0,0,0,5,5,204,238,5,5,8,239,5,5,210,236,5,5,201,238,5,5,134,226,5,5,101,238,5,5,202,238,5,5,198,238,5,5,203,238,5,5,73,231,192,0,0,0,192,0,0,0,5,5,168,236,5,5,192,238,5,5,9,239,192,0,0,0,5,5,199,238,192,0,0,0,5,5,169,231,192,0,0,0,192,0,0,0,5,5,186,229,192,0,0,0,192,0,0,0,5,5,38,236,5,5,0,185,192,0,0,0,192,0,0,0,5,5,65,228,5,5,208,238,192,0,0,0,5,5,207,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,238,5,5,216,238,192,0,0,0,5,5,213,238,5,5,87,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,238,5,5,196,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,224,5,5,210,238,192,0,0,0,5,5,231,229,192,0,0,0,5,5,106,233,192,0,0,0,5,5,212,238,192,0,0,0,5,5,209,238,192,0,0,0,192,0,0,0,5,5,218,238,192,0,0,0,192,0,0,0,5,5,231,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,226,192,0,0,0,5,5,84,236,192,0,0,0,192,0,0,0,5,5,56,235,192,0,0,0,192,0,0,0,5,5,106,230,192,0,0,0,5,5,146,228,5,5,156,237,5,5,156,224,5,5,74,232,5,5,119,229,5,5,215,238,192,0,0,0,5,5,217,238,192,0,0,0,5,5,4,235,5,5,160,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,225,5,5,37,226,5,5,222,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,239,5,5,80,232,5,5,232,229,5,5,226,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,233,5,5,147,226,192,0,0,0,5,5,223,238,192,0,0,0,5,5,225,238,5,5,0,223,5,5,211,236,5,5,227,238,192,0,0,0,5,5,155,235,192,0,0,0,5,5,224,238,192,0,0,0,192,0,0,0,5,5,219,238,192,0,0,0,5,5,220,238,5,5,241,229,5,5,221,238,192,0,0,0,192,0,0,0,5,5,99,228,5,5,180,235,5,5,157,226,192,0,0,0,5,5,17,229,192,0,0,0,5,5,231,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,238,192,0,0,0,5,5,0,145,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,238,5,5,20,224,192,0,0,0,5,5,233,238,192,0,0,0,192,0,0,0,5,5,145,225,192,0,0,0,5,5,33,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,5,5,164,227,5,5,100,236,192,0,0,0,5,5,237,238,192,0,0,0,192,0,0,0,5,5,182,228,192,0,0,0,5,5,197,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,238,5,5,25,229,192,0,0,0,5,5,240,238,5,5,229,238,5,5,69,231,192,0,0,0,5,5,232,238,5,5,235,238,5,5,234,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,237,192,0,0,0,5,5,195,237,192,0,0,0,5,5,101,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,228,5,5,244,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,238,192,0,0,0,5,5,245,238,5,5,205,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,238,192,0,0,0,5,5,93,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,231,5,5,111,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,238,192,0,0,0,192,0,0,0,5,5,241,238,5,5,191,224,5,5,138,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,226,192,0,0,0,192,0,0,0,5,5,230,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,225,192,0,0,0,5,5,248,238,192,0,0,0,5,5,249,238,5,5,28,225,5,5,250,238,192,0,0,0,192,0,0,0,5,5,89,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,238,5,5,243,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,239,5,5,236,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,238,5,5,254,238,5,5,3,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,233,192,0,0,0,5,5,119,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,238,5,5,4,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,226,5,5,111,238,5,5,28,237,192,0,0,0,5,5,250,236,5,5,172,235,5,5,254,224,5,5,135,237,192,0,0,0,5,5,64,235,5,5,54,227,192,0,0,0,5,5,87,229,192,0,0,0,5,5,232,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,226,192,0,0,0,192,0,0,0,5,5,125,234,5,5,26,239,5,5,28,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,225,192,0,0,0,5,5,235,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,228,192,0,0,0,192,0,0,0,5,5,203,232,192,0,0,0,192,0,0,0,5,5,139,232,192,0,0,0,192,0,0,0,5,5,0,169,5,5,253,226,5,5,67,230,5,5,14,239,192,0,0,0,5,5,166,229,5,5,6,227,192,0,0,0,5,5,44,227,5,5,161,235,5,5,86,224,5,5,8,232,5,5,13,229,5,5,188,225,5,5,54,238,192,0,0,0,5,5,46,236,5,5,86,228,5,5,124,233,192,0,0,0,192,0,0,0,5,5,45,228,5,5,18,239,5,5,179,238,192,0,0,0,192,0,0,0,5,5,64,231,192,0,0,0,192,0,0,0,5,5,200,226,5,5,157,232,192,0,0,0,192,0,0,0,5,5,157,224,5,5,43,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,230,192,0,0,0,192,0,0,0,5,5,231,230,5,5,44,239,5,5,191,232,192,0,0,0,5,5,138,235,192,0,0,0,5,5,42,229,5,5,109,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,227,192,0,0,0,5,5,45,239,192,0,0,0,5,5,249,236,5,5,46,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,239,5,5,226,225,192,0,0,0,192,0,0,0,5,5,129,226,5,5,87,224,5,5,40,239,5,5,255,224,5,5,36,229,192,0,0,0,5,5,130,229,5,5,69,236,5,5,206,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,225,5,5,42,239,5,5,41,239,192,0,0,0,192,0,0,0,5,5,231,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,232,192,0,0,0,5,5,42,238,5,5,43,239,192,0,0,0,5,5,3,230,192,0,0,0,5,5,202,225,5,5,50,230,192,0,0,0,192,0,0,0,5,5,101,228,192,0,0,0,5,5,79,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,230,192,0,0,0,5,5,99,231,192,0,0,0,192,0,0,0,5,5,40,228,5,5,72,226,192,0,0,0,192,0,0,0,5,5,133,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,239,192,0,0,0,5,5,224,231,192,0,0,0,5,5,57,229,5,5,219,227,192,0,0,0,192,0,0,0,5,5,162,225,192,0,0,0,5,5,177,239,5,5,173,235,192,0,0,0,5,5,115,234,5,5,0,154,5,5,18,225,5,5,9,228,5,5,178,239,5,5,97,227,192,0,0,0,5,5,54,237,5,5,142,225,5,5,203,225,5,5,162,238,5,5,176,232,192,0,0,0,192,0,0,0,5,5,108,226,5,5,82,232,5,5,163,238,192,0,0,0,5,5,59,229,192,0,0,0,192,0,0,0,5,5,163,239,5,5,164,238,192,0,0,0,192,0,0,0,5,5,162,235,5,5,190,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,245,5,5,26,230,5,5,63,230,5,5,68,237,5,5,201,226,5,5,46,225,192,0,0,0,5,5,17,225,192,0,0,0,192,0,0,0,5,5,252,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,231,5,5,229,229,192,0,0,0,5,5,78,224,192,0,0,0,5,5,165,238,5,5,34,227,192,0,0,0,5,5,149,225,192,0,0,0,192,0,0,0,5,5,166,238,192,0,0,0,192,0,0,0,5,5,212,237,5,5,158,233,5,5,143,232,5,5,240,232,5,5,70,225,5,5,88,229,192,0,0,0,5,5,72,227,192,0,0,0,5,5,167,238,5,5,168,238,5,5,31,226,5,5,49,228,5,5,70,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,235,192,0,0,0,5,5,169,238,5,5,50,232,192,0,0,0,192,0,0,0,5,5,36,227,5,5,113,228,192,0,0,0,192,0,0,0,5,5,58,234,192,0,0,0,5,5,236,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,238,192,0,0,0,5,5,170,238,192,0,0,0,192,0,0,0,5,5,171,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,220,192,0,0,0,5,5,21,229,192,0,0,0,5,5,65,233,5,5,100,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,226,192,0,0,0,192,0,0,0,5,5,226,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,238,192,0,0,0,5,5,153,228,192,0,0,0,5,5,176,238,5,5,175,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,238,192,0,0,0,192,0,0,0,5,5,178,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,229,192,0,0,0,5,5,144,232,5,5,0,202,5,5,248,226,5,5,67,228,5,5,11,235,5,5,165,239,5,5,29,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,225,5,5,10,238,5,5,112,231,5,5,167,228,5,5,166,239,5,5,167,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,229,5,5,206,228,5,5,183,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,239,5,5,100,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,236,192,0,0,0,5,5,233,230,192,0,0,0,5,5,223,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,239,192,0,0,0,5,5,191,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,239,192,0,0,0,5,5,61,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,239,5,5,23,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,227,5,5,10,235,5,5,26,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,218,5,5,76,225,192,0,0,0,5,5,175,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,239,192,0,0,0,5,5,207,240,5,5,23,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,238,5,5,191,227,5,5,15,224,192,0,0,0,5,5,241,224,5,5,154,238,192,0,0,0,192,0,0,0,5,5,35,237,192,0,0,0,192,0,0,0,5,5,129,228,5,5,123,229,192,0,0,0,5,5,51,235,192,0,0,0,192,0,0,0,5,5,156,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,231,5,5,122,232,5,5,81,236,192,0,0,0,192,0,0,0,5,5,158,238,5,5,74,231,192,0,0,0,5,5,76,233,192,0,0,0,5,5,41,232,192,0,0,0,5,5,114,238,192,0,0,0,5,5,61,233,5,5,255,234,5,5,236,227,5,5,0,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,227,5,5,131,235,192,0,0,0,5,5,14,224,5,5,82,238,5,5,45,238,192,0,0,0,5,5,125,225,5,5,156,230,5,5,53,231,192,0,0,0,192,0,0,0,5,5,101,224,192,0,0,0,5,5,115,224,192,0,0,0,5,5,67,224,5,5,22,241,5,5,108,237,5,5,52,229,5,5,84,230,5,5,161,238,5,5,89,230,192,0,0,0,5,5,160,238,5,5,236,234,192,0,0,0,5,5,106,239,192,0,0,0,5,5,216,234,192,0,0,0,192,0,0,0,5,5,128,238,5,5,180,230,5,5,147,236,5,5,187,234,192,0,0,0,5,5,36,228,5,5,148,232,5,5,121,230,192,0,0,0,5,5,27,229,5,5,140,235,192,0,0,0,5,5,107,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,232,192,0,0,0,192,0,0,0,5,5,193,224,192,0,0,0,5,5,42,226,5,5,88,234,5,5,228,229,192,0,0,0,192,0,0,0,5,5,225,229,192,0,0,0,5,5,237,235,5,5,23,236,5,5,147,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,224,192,0,0,0,192,0,0,0,5,5,207,229,192,0,0,0,5,5,163,227,192,0,0,0,192,0,0,0,5,5,148,238,192,0,0,0,5,5,253,236,192,0,0,0,192,0,0,0,5,5,89,235,5,5,149,238,192,0,0,0,5,5,150,238,5,5,59,235,192,0,0,0,5,5,20,225,5,5,243,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,235,192,0,0,0,5,5,222,232,5,5,138,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,236,5,5,162,224,5,5,32,228,5,5,195,236,5,5,167,233,5,5,74,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,226,192,0,0,0,192,0,0,0,5,5,131,233,192,0,0,0,5,5,129,232,5,5,122,233,5,5,66,224,5,5,198,235,192,0,0,0,5,5,149,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,239,5,5,214,225,192,0,0,0,192,0,0,0,5,5,102,229,5,5,25,227,5,5,18,229,5,5,55,230,192,0,0,0,5,5,26,241,5,5,25,241,5,5,201,237,5,5,158,228,5,5,137,237,5,5,0,166,5,5,217,225,5,5,85,229,5,5,4,234,5,5,23,241,5,5,85,233,5,5,196,236,192,0,0,0,5,5,155,238,5,5,74,236,5,5,119,227,5,5,186,233,5,5,26,234,192,0,0,0,5,5,27,241,5,5,200,225,5,5,24,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,236,192,0,0,0,5,5,238,224,5,5,235,226,192,0,0,0,5,5,30,241,192,0,0,0,5,5,129,227,5,5,26,228,5,5,205,225,192,0,0,0,5,5,102,234,5,5,3,231,5,5,165,227,5,5,222,229,5,5,124,234,5,5,106,235,5,5,28,241,5,5,61,235,192,0,0,0,5,5,104,230,5,5,29,241,5,5,152,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,229,192,0,0,0,5,5,41,230,5,5,134,234,5,5,139,236,5,5,99,226,5,5,37,241,192,0,0,0,5,5,40,241,192,0,0,0,192,0,0,0,5,5,135,226,5,5,0,167,5,5,14,226,5,5,106,226,192,0,0,0,5,5,94,227,5,5,89,234,5,5,96,229,5,5,173,233,5,5,24,232,192,0,0,0,5,5,182,237,5,5,41,241,192,0,0,0,5,5,250,234,5,5,205,224,192,0,0,0,192,0,0,0,5,5,22,235,5,5,47,225,192,0,0,0,5,5,223,234,5,5,162,227,192,0,0,0,5,5,249,234,192,0,0,0,5,5,241,235,192,0,0,0,192,0,0,0,5,5,36,241,192,0,0,0,192,0,0,0,5,5,110,225,192,0,0,0,5,5,228,224,192,0,0,0,5,5,218,226,5,5,31,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,231,192,0,0,0,5,5,32,241,5,5,33,241,5,5,34,241,5,5,127,231,5,5,35,241,5,5,38,241,5,5,3,237,5,5,39,241,192,0,0,0,5,5,60,232,5,5,240,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,231,192,0,0,0,5,5,46,241,192,0,0,0,5,5,51,241,192,0,0,0,5,5,234,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,241,5,5,62,241,5,5,206,234,192,0,0,0,5,5,121,227,5,5,50,241,5,5,44,241,5,5,162,231,192,0,0,0,192,0,0,0,5,5,43,233,5,5,166,227,5,5,4,231,192,0,0,0,192,0,0,0,5,5,5,229,192,0,0,0,5,5,42,241,192,0,0,0,5,5,49,241,192,0,0,0,5,5,156,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,237,5,5,127,227,192,0,0,0,5,5,248,228,5,5,175,236,5,5,180,226,192,0,0,0,5,5,242,237,192,0,0,0,5,5,43,241,5,5,18,227,5,5,51,229,192,0,0,0,192,0,0,0,5,5,70,230,5,5,47,241,5,5,48,241,192,0,0,0,5,5,52,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,241,5,5,73,241,192,0,0,0,5,5,59,241,5,5,58,241,5,5,55,238,5,5,71,241,5,5,72,241,5,5,135,243,5,5,59,236,5,5,54,241,192,0,0,0,5,5,53,229,192,0,0,0,5,5,45,237,192,0,0,0,5,5,84,229,5,5,56,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,235,192,0,0,0,192,0,0,0,5,5,65,241,192,0,0,0,5,5,254,235,192,0,0,0,5,5,66,241,5,5,0,133,5,5,217,231,5,5,55,241,192,0,0,0,5,5,151,227,192,0,0,0,5,5,23,226,5,5,149,234,5,5,82,227,5,5,39,237,192,0,0,0,192,0,0,0,5,5,67,241,5,5,100,235,5,5,0,131,5,5,75,241,5,5,53,241,5,5,250,235,5,5,57,241,5,5,60,241,5,5,61,241,5,5,64,241,192,0,0,0,5,5,185,227,192,0,0,0,5,5,68,241,5,5,69,241,192,0,0,0,5,5,70,241,5,5,74,241,5,5,76,241,5,5,166,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,226,5,5,122,231,5,5,78,241,5,5,26,233,5,5,240,229,5,5,42,231,192,0,0,0,192,0,0,0,5,5,106,229,5,5,112,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,237,5,5,82,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,224,192,0,0,0,5,5,145,227,5,5,80,241,192,0,0,0,5,5,169,239,192,0,0,0,5,5,26,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,233,5,5,55,225,192,0,0,0,5,5,0,132,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,241,5,5,34,234,5,5,86,241,192,0,0,0,192,0,0,0,5,5,81,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,241,192,0,0,0,5,5,83,241,5,5,84,241,5,5,205,227,192,0,0,0,192,0,0,0,5,5,87,241,192,0,0,0,192,0,0,0,5,5,88,241,192,0,0,0,5,5,179,227,192,0,0,0,5,5,121,233,5,5,192,234,5,5,105,241,5,5,196,224,192,0,0,0,5,5,104,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,241,192,0,0,0,5,5,147,234,5,5,96,241,192,0,0,0,5,5,94,241,192,0,0,0,5,5,92,229,5,5,50,238,192,0,0,0,5,5,12,233,192,0,0,0,192,0,0,0,5,5,92,241,5,5,0,127,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,241,5,5,100,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,226,192,0,0,0,192,0,0,0,5,5,195,231,5,5,244,232,5,5,156,229,5,5,89,241,192,0,0,0,192,0,0,0,5,5,130,231,192,0,0,0,5,5,144,238,5,5,93,241,5,5,92,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,241,5,5,102,241,5,5,103,241,5,5,123,235,192,0,0,0,192,0,0,0,5,5,118,241,5,5,64,234,192,0,0,0,5,5,115,241,192,0,0,0,5,5,50,229,5,5,113,241,5,5,209,234,5,5,109,241,5,5,6,233,192,0,0,0,192,0,0,0,5,5,152,229,5,5,112,241,5,5,159,227,5,5,98,227,5,5,107,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,241,192,0,0,0,5,5,117,241,192,0,0,0,192,0,0,0,5,5,122,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,225,5,5,123,241,192,0,0,0,192,0,0,0,5,5,42,235,5,5,122,227,192,0,0,0,5,5,114,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,241,192,0,0,0,5,5,77,237,192,0,0,0,5,5,91,241,192,0,0,0,5,5,171,231,192,0,0,0,5,5,111,241,192,0,0,0,5,5,233,236,192,0,0,0,5,5,120,241,5,5,121,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,241,5,5,183,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,241,192,0,0,0,192,0,0,0,5,5,139,241,5,5,140,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,241,5,5,108,241,5,5,226,232,5,5,131,241,192,0,0,0,5,5,116,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,233,5,5,133,241,192,0,0,0,5,5,119,241,192,0,0,0,5,5,227,234,192,0,0,0,5,5,191,233,5,5,143,241,5,5,136,241,5,5,132,241,192,0,0,0,5,5,141,241,192,0,0,0,5,5,124,241,5,5,129,241,5,5,130,241,192,0,0,0,192,0,0,0,5,5,135,241,192,0,0,0,192,0,0,0,5,5,137,241,5,5,138,241,192,0,0,0,5,5,142,241,192,0,0,0,5,5,125,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,233,5,5,151,241,192,0,0,0,5,5,152,241,5,5,148,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,241,5,5,62,228,192,0,0,0,192,0,0,0,5,5,147,241,192,0,0,0,5,5,182,226,5,5,145,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,235,192,0,0,0,192,0,0,0,5,5,151,230,192,0,0,0,192,0,0,0,5,5,145,241,5,5,127,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,241,5,5,149,241,192,0,0,0,192,0,0,0,5,5,153,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,241,5,5,154,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,238,5,5,202,224,192,0,0,0,5,5,90,238,192,0,0,0,5,5,183,233,192,0,0,0,192,0,0,0,5,5,156,241,192,0,0,0,5,5,21,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,241,5,5,159,241,5,5,65,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,241,192,0,0,0,192,0,0,0,5,5,157,241,5,5,155,241,5,5,161,241,192,0,0,0,192,0,0,0,5,5,162,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,241,192,0,0,0,5,5,166,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,232,5,5,120,238,5,5,61,237,5,5,168,241,5,5,103,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,241,5,5,170,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,241,5,5,165,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,227,5,5,67,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,241,192,0,0,0,192,0,0,0,5,5,175,241,192,0,0,0,192,0,0,0,5,5,118,232,5,5,192,233,192,0,0,0,5,5,176,241,5,5,232,227,5,5,130,238,5,5,134,236,5,5,177,241,5,5,127,234,192,0,0,0,5,5,18,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,241,192,0,0,0,5,5,2,237,192,0,0,0,192,0,0,0,5,5,145,229,5,5,75,225,192,0,0,0,192,0,0,0,5,5,191,234,5,5,178,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,241,5,5,32,227,192,0,0,0,192,0,0,0,5,5,78,227,5,5,118,234,5,5,181,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,231,5,5,182,241,192,0,0,0,5,5,4,237,192,0,0,0,5,5,134,232,5,5,184,241,5,5,183,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,241,192,0,0,0,192,0,0,0,5,5,123,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,237,5,5,191,239,5,5,193,239,192,0,0,0,5,5,192,239,5,5,59,227,5,5,196,239,5,5,197,239,5,5,176,225,192,0,0,0,192,0,0,0,5,5,194,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,239,5,5,187,224,5,5,199,239,192,0,0,0,192,0,0,0,5,5,10,228,192,0,0,0,5,5,197,237,192,0,0,0,5,5,200,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,229,192,0,0,0,192,0,0,0,5,5,81,226,192,0,0,0,5,5,184,239,5,5,10,234,5,5,62,229,5,5,197,227,5,5,102,238,5,5,95,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,229,192,0,0,0,192,0,0,0,5,5,81,228,5,5,15,234,5,5,198,239,5,5,0,177,5,5,5,235,5,5,110,226,5,5,39,238,5,5,228,231,192,0,0,0,192,0,0,0,5,5,142,229,192,0,0,0,5,5,21,234,192,0,0,0,5,5,207,239,5,5,201,239,5,5,220,231,5,5,203,239,192,0,0,0,5,5,208,239,192,0,0,0,5,5,187,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,239,192,0,0,0,192,0,0,0,5,5,209,239,5,5,76,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,239,5,5,205,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,225,5,5,150,229,5,5,74,230,5,5,202,239,5,5,204,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,235,5,5,213,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,229,5,5,218,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,239,5,5,186,239,5,5,12,227,5,5,251,236,5,5,212,239,192,0,0,0,5,5,93,229,5,5,216,239,192,0,0,0,5,5,185,239,192,0,0,0,5,5,190,225,192,0,0,0,5,5,211,239,5,5,113,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,239,192,0,0,0,5,5,217,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,226,5,5,0,129,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,230,192,0,0,0,192,0,0,0,5,5,225,224,5,5,215,239,192,0,0,0,192,0,0,0,5,5,224,239,192,0,0,0,5,5,244,231,5,5,220,239,192,0,0,0,192,0,0,0,5,5,221,239,5,5,223,239,5,5,222,239,192,0,0,0,192,0,0,0,5,5,230,239,192,0,0,0,5,5,228,236,5,5,118,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,239,192,0,0,0,5,5,227,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,239,5,5,164,231,5,5,11,228,192,0,0,0,192,0,0,0,5,5,233,239,192,0,0,0,192,0,0,0,5,5,235,239,192,0,0,0,5,5,31,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,226,5,5,102,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,239,192,0,0,0,5,5,232,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,239,192,0,0,0,5,5,239,239,5,5,2,224,192,0,0,0,192,0,0,0,5,5,164,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,233,5,5,199,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,233,192,0,0,0,192,0,0,0,5,5,250,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,234,5,5,241,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,239,192,0,0,0,5,5,245,239,5,5,242,239,192,0,0,0,5,5,223,228,192,0,0,0,5,5,153,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,233,5,5,31,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,232,5,5,244,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,237,5,5,188,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,231,5,5,13,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,233,5,5,169,232,192,0,0,0,5,5,33,238,192,0,0,0,5,5,57,233,192,0,0,0,192,0,0,0,5,5,83,229,192,0,0,0,192,0,0,0,5,5,170,227,192,0,0,0,192,0,0,0,5,5,80,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,242,192,0,0,0,5,5,32,225,192,0,0,0,192,0,0,0,5,5,22,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,226,192,0,0,0,5,5,60,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,239,5,5,30,235,5,5,156,234,192,0,0,0,192,0,0,0,5,5,25,239,5,5,24,226,192,0,0,0,5,5,77,236,192,0,0,0,192,0,0,0,5,5,15,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,242,5,5,55,242,192,0,0,0,5,5,109,225,192,0,0,0,5,5,72,234,5,5,7,234,5,5,136,226,192,0,0,0,5,5,126,238,5,5,33,236,5,5,109,227,192,0,0,0,5,5,69,233,192,0,0,0,192,0,0,0,5,5,113,234,192,0,0,0,192,0,0,0,5,5,88,236,5,5,112,229,5,5,64,228,5,5,25,226,192,0,0,0,5,5,201,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,240,5,5,164,239,192,0,0,0,5,5,15,236,192,0,0,0,192,0,0,0,5,5,10,232,5,5,52,231,5,5,132,226,192,0,0,0,5,5,114,226,192,0,0,0,192,0,0,0,5,5,136,229,5,5,78,238,192,0,0,0,5,5,25,232,192,0,0,0,192,0,0,0,5,5,26,224,5,5,204,240,5,5,127,228,5,5,51,234,5,5,206,240,192,0,0,0,5,5,205,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,225,192,0,0,0,5,5,29,233,192,0,0,0,192,0,0,0,5,5,0,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,231,5,5,111,231,192,0,0,0,5,5,50,231,192,0,0,0,5,5,89,228,5,5,249,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,243,5,5,199,232,5,5,150,243,5,5,183,234,192,0,0,0,5,5,31,238,5,5,178,226,5,5,144,230,192,0,0,0,5,5,177,232,192,0,0,0,192,0,0,0,5,5,151,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,226,5,5,59,228,192,0,0,0,192,0,0,0,5,5,51,236,5,5,155,243,192,0,0,0,5,5,244,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,243,5,5,159,243,5,5,145,234,192,0,0,0,192,0,0,0,5,5,87,226,5,5,152,243,5,5,153,243,5,5,157,243,192,0,0,0,192,0,0,0,5,5,67,231,5,5,162,243,192,0,0,0,192,0,0,0,5,5,161,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,230,192,0,0,0,5,5,2,232,192,0,0,0,192,0,0,0,5,5,164,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,243,5,5,90,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,228,5,5,23,227,5,5,160,243,5,5,171,235,5,5,199,234,192,0,0,0,192,0,0,0,5,5,163,243,5,5,170,243,192,0,0,0,5,5,58,236,192,0,0,0,5,5,120,228,5,5,167,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,243,192,0,0,0,5,5,187,229,192,0,0,0,192,0,0,0,5,5,96,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,243,192,0,0,0,5,5,138,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,238,192,0,0,0,5,5,184,234,192,0,0,0,5,5,152,234,5,5,78,230,5,5,165,243,5,5,166,243,5,5,141,228,5,5,168,243,5,5,173,243,192,0,0,0,192,0,0,0,5,5,172,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,243,192,0,0,0,5,5,178,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,231,192,0,0,0,192,0,0,0,5,5,24,229,5,5,47,233,192,0,0,0,192,0,0,0,5,5,177,243,192,0,0,0,5,5,40,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,236,5,5,174,243,192,0,0,0,5,5,175,243,192,0,0,0,5,5,130,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,231,192,0,0,0,192,0,0,0,5,5,171,234,5,5,181,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,243,192,0,0,0,192,0,0,0,5,5,161,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,236,5,5,185,243,5,5,52,233,5,5,189,243,192,0,0,0,192,0,0,0,5,5,190,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,230,5,5,188,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,243,5,5,41,235,192,0,0,0,5,5,200,245,192,0,0,0,192,0,0,0,5,5,196,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,243,192,0,0,0,192,0,0,0,5,5,78,228,5,5,231,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,228,192,0,0,0,192,0,0,0,5,5,75,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,243,192,0,0,0,5,5,195,243,192,0,0,0,5,5,200,243,192,0,0,0,5,5,202,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,243,5,5,173,225,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,5,5,201,243,192,0,0,0,192,0,0,0,5,5,65,231,192,0,0,0,5,5,192,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,243,5,5,205,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,243,192,0,0,0,5,5,36,239,192,0,0,0,192,0,0,0,5,5,208,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,238,5,5,215,243,192,0,0,0,5,5,216,243,5,5,99,229,5,5,34,237,192,0,0,0,5,5,68,238,5,5,96,225,5,5,235,233,5,5,212,243,5,5,143,238,5,5,60,238,5,5,120,235,192,0,0,0,5,5,213,230,192,0,0,0,192,0,0,0,5,5,217,243,5,5,46,228,5,5,22,227,5,5,213,243,5,5,219,235,192,0,0,0,192,0,0,0,5,5,84,227,5,5,119,230,192,0,0,0,5,5,119,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,233,5,5,138,243,192,0,0,0,5,5,214,243,192,0,0,0,5,5,139,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,232,192,0,0,0,192,0,0,0,5,5,91,231,192,0,0,0,192,0,0,0,5,5,78,243,5,5,100,231,192,0,0,0,5,5,248,233,5,5,79,243,5,5,92,237,192,0,0,0,5,5,224,236,5,5,118,233,5,5,0,144,192,0,0,0,5,5,202,233,5,5,164,234,192,0,0,0,192,0,0,0,5,5,156,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,243,192,0,0,0,5,5,80,243,192,0,0,0,5,5,72,238,5,5,45,227,5,5,244,237,5,5,222,225,5,5,170,234,5,5,95,236,5,5,4,224,5,5,83,233,192,0,0,0,5,5,4,225,5,5,51,233,5,5,89,229,5,5,209,235,5,5,112,233,5,5,82,243,5,5,210,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,235,5,5,254,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,237,192,0,0,0,192,0,0,0,5,5,88,227,5,5,29,236,5,5,116,235,5,5,66,228,192,0,0,0,5,5,83,243,5,5,189,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,229,5,5,84,224,5,5,218,233,192,0,0,0,192,0,0,0,5,5,53,228,192,0,0,0,5,5,52,228,5,5,142,236,5,5,226,230,5,5,104,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,230,192,0,0,0,5,5,96,227,5,5,242,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,232,5,5,21,231,5,5,168,224,192,0,0,0,5,5,37,227,192,0,0,0,192,0,0,0,5,5,87,243,5,5,18,230,192,0,0,0,192,0,0,0,5,5,95,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,243,192,0,0,0,5,5,90,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,225,5,5,12,226,5,5,190,233,5,5,228,235,5,5,148,225,192,0,0,0,192,0,0,0,5,5,119,233,192,0,0,0,5,5,120,226,192,0,0,0,192,0,0,0,5,5,36,233,192,0,0,0,5,5,121,228,192,0,0,0,192,0,0,0,5,5,214,234,5,5,94,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,235,192,0,0,0,5,5,25,233,192,0,0,0,192,0,0,0,5,5,51,226,5,5,210,243,5,5,82,228,192,0,0,0,5,5,216,224,192,0,0,0,5,5,16,233,192,0,0,0,5,5,211,243,5,5,188,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,240,192,0,0,0,5,5,186,236,5,5,209,240,192,0,0,0,5,5,54,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,228,192,0,0,0,192,0,0,0,5,5,211,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,233,5,5,144,236,5,5,249,224,5,5,134,243,5,5,71,231,5,5,205,228,5,5,202,234,5,5,88,231,5,5,4,229,5,5,202,231,5,5,159,224,192,0,0,0,192,0,0,0,5,5,255,228,192,0,0,0,192,0,0,0,5,5,126,232,5,5,71,234,5,5,186,228,5,5,245,234,192,0,0,0,192,0,0,0,5,5,88,233,5,5,227,231,5,5,136,243,5,5,146,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,233,192,0,0,0,5,5,122,234,5,5,109,230,192,0,0,0,5,5,139,243,192,0,0,0,5,5,108,230,5,5,140,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,243,5,5,135,234,192,0,0,0,5,5,251,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,236,5,5,200,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,236,192,0,0,0,5,5,230,233,5,5,21,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,241,5,5,201,241,192,0,0,0,192,0,0,0,5,5,202,241,5,5,207,241,192,0,0,0,192,0,0,0,5,5,169,224,192,0,0,0,5,5,203,241,5,5,206,226,5,5,205,241,5,5,206,241,5,5,208,241,5,5,146,225,5,5,209,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,241,5,5,216,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,236,192,0,0,0,5,5,214,241,5,5,213,241,5,5,53,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,241,192,0,0,0,5,5,18,237,192,0,0,0,5,5,210,241,192,0,0,0,5,5,218,241,5,5,0,148,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,241,192,0,0,0,5,5,133,229,192,0,0,0,5,5,217,241,192,0,0,0,192,0,0,0,5,5,219,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,235,192,0,0,0,192,0,0,0,5,5,221,241,5,5,223,241,5,5,117,230,192,0,0,0,5,5,35,226,192,0,0,0,5,5,234,236,192,0,0,0,192,0,0,0,5,5,79,232,192,0,0,0,192,0,0,0,5,5,123,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,241,5,5,225,241,192,0,0,0,192,0,0,0,5,5,231,241,5,5,3,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,225,192,0,0,0,5,5,246,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,241,192,0,0,0,192,0,0,0,5,5,230,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,241,192,0,0,0,5,5,227,241,5,5,226,241,192,0,0,0,5,5,30,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,237,5,5,228,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,241,5,5,234,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,247,192,0,0,0,192,0,0,0,5,5,243,241,5,5,242,241,5,5,56,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,241,192,0,0,0,192,0,0,0,5,5,238,241,192,0,0,0,5,5,240,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,241,192,0,0,0,5,5,241,241,5,5,237,241,192,0,0,0,192,0,0,0,5,5,239,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,244,192,0,0,0,5,5,34,225,5,5,235,237,192,0,0,0,192,0,0,0,5,5,230,235,5,5,204,224,192,0,0,0,192,0,0,0,5,5,246,226,5,5,97,238,5,5,75,232,5,5,12,229,5,5,2,227,192,0,0,0,5,5,239,234,192,0,0,0,192,0,0,0,5,5,170,224,5,5,183,239,192,0,0,0,5,5,42,228,5,5,101,236,5,5,196,233,5,5,0,171,192,0,0,0,192,0,0,0,5,5,103,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,239,5,5,187,228,192,0,0,0,192,0,0,0,5,5,48,224,5,5,110,233,5,5,120,224,192,0,0,0,5,5,163,233,5,5,65,226,192,0,0,0,5,5,68,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,235,192,0,0,0,192,0,0,0,5,5,186,241,5,5,122,237,5,5,189,241,192,0,0,0,192,0,0,0,5,5,188,241,5,5,133,231,5,5,87,234,192,0,0,0,5,5,249,229,5,5,187,241,5,5,241,237,5,5,107,224,5,5,210,237,5,5,179,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,225,5,5,175,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,235,5,5,0,205,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,241,5,5,189,224,192,0,0,0,192,0,0,0,5,5,191,241,5,5,192,241,5,5,183,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,230,192,0,0,0,5,5,194,241,5,5,143,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,241,5,5,33,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,241,192,0,0,0,192,0,0,0,5,5,197,241,192,0,0,0,192,0,0,0,5,5,198,241,5,5,43,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,226,5,5,223,231,5,5,80,231,192,0,0,0,5,5,94,224,192,0,0,0,5,5,168,235,192,0,0,0,5,5,53,244,5,5,211,227,5,5,201,236,5,5,182,236,192,0,0,0,5,5,55,227,5,5,79,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,238,192,0,0,0,5,5,110,232,5,5,49,224,192,0,0,0,192,0,0,0,5,5,44,225,5,5,81,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,235,5,5,86,230,5,5,80,242,192,0,0,0,5,5,110,229,5,5,152,236,5,5,175,225,5,5,82,242,5,5,194,225,192,0,0,0,5,5,243,230,5,5,241,226,192,0,0,0,5,5,162,226,192,0,0,0,5,5,151,231,5,5,101,226,5,5,84,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,242,5,5,254,225,5,5,103,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,242,192,0,0,0,5,5,86,242,5,5,154,233,5,5,65,229,5,5,171,236,5,5,85,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,229,5,5,178,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,242,5,5,90,242,5,5,148,229,192,0,0,0,192,0,0,0,5,5,24,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,242,192,0,0,0,5,5,94,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,239,192,0,0,0,5,5,9,236,5,5,92,234,192,0,0,0,192,0,0,0,5,5,118,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,240,5,5,113,238,5,5,54,229,5,5,181,239,5,5,128,236,5,5,30,232,5,5,110,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,240,192,0,0,0,5,5,53,224,5,5,18,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,233,192,0,0,0,5,5,21,241,192,0,0,0,5,5,255,226,192,0,0,0,5,5,145,236,192,0,0,0,5,5,153,226,5,5,157,227,192,0,0,0,192,0,0,0,5,5,244,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,225,5,5,117,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,230,5,5,74,235,5,5,177,227,192,0,0,0,5,5,143,243,5,5,142,243,192,0,0,0,192,0,0,0,5,5,144,243,192,0,0,0,5,5,158,234,192,0,0,0,5,5,213,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,225,5,5,65,232,192,0,0,0,5,5,146,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,243,192,0,0,0,5,5,61,227,5,5,137,225,192,0,0,0,5,5,100,230,5,5,132,243,5,5,131,243,5,5,133,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,242,5,5,164,235,192,0,0,0,5,5,104,234,192,0,0,0,5,5,27,236,192,0,0,0,192,0,0,0,5,5,134,224,5,5,73,224,192,0,0,0,5,5,80,224,5,5,177,231,192,0,0,0,192,0,0,0,5,5,115,237,5,5,162,236,192,0,0,0,5,5,252,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,241,192,0,0,0,5,5,111,236,192,0,0,0,5,5,211,224,5,5,41,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,234,5,5,167,237,5,5,254,241,192,0,0,0,5,5,226,228,5,5,119,225,192,0,0,0,5,5,255,241,5,5,142,227,5,5,2,242,5,5,194,227,5,5,113,230,5,5,3,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,235,192,0,0,0,5,5,119,234,192,0,0,0,192,0,0,0,5,5,4,242,192,0,0,0,5,5,155,225,5,5,139,231,5,5,5,242,192,0,0,0,192,0,0,0,5,5,6,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,242,192,0,0,0,5,5,225,235,192,0,0,0,192,0,0,0,5,5,8,242,5,5,186,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,242,192,0,0,0,5,5,154,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,242,5,5,229,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,235,5,5,96,242,5,5,54,224,5,5,120,236,192,0,0,0,192,0,0,0,5,5,97,242,192,0,0,0,192,0,0,0,5,5,57,228,5,5,172,232,192,0,0,0,5,5,99,242,5,5,50,246,5,5,49,246,5,5,19,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,242,5,5,204,237,5,5,182,234,5,5,172,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,242,192,0,0,0,192,0,0,0,5,5,224,237,5,5,103,242,192,0,0,0,192,0,0,0,5,5,104,242,192,0,0,0,192,0,0,0,5,5,185,236,192,0,0,0,192,0,0,0,5,5,108,242,5,5,120,229,192,0,0,0,5,5,109,242,5,5,101,242,192,0,0,0,192,0,0,0,5,5,218,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,231,192,0,0,0,192,0,0,0,5,5,110,242,192,0,0,0,192,0,0,0,5,5,153,235,192,0,0,0,5,5,168,227,5,5,105,242,5,5,116,226,5,5,195,227,5,5,8,234,5,5,199,233,5,5,100,242,5,5,102,242,5,5,106,242,5,5,107,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,242,192,0,0,0,192,0,0,0,5,5,116,242,5,5,71,237,5,5,115,242,192,0,0,0,192,0,0,0,5,5,113,231,192,0,0,0,5,5,170,237,5,5,134,231,5,5,124,224,192,0,0,0,192,0,0,0,5,5,111,242,192,0,0,0,5,5,114,242,5,5,247,229,5,5,184,233,192,0,0,0,192,0,0,0,5,5,121,225,5,5,121,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,228,5,5,113,242,5,5,170,235,5,5,11,237,5,5,117,242,5,5,42,227,5,5,118,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,238,5,5,51,246,192,0,0,0,192,0,0,0,5,5,120,242,192,0,0,0,5,5,55,246,5,5,126,242,5,5,111,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,229,192,0,0,0,5,5,224,227,192,0,0,0,192,0,0,0,5,5,98,229,192,0,0,0,5,5,149,227,192,0,0,0,192,0,0,0,5,5,157,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,246,5,5,53,246,192,0,0,0,192,0,0,0,5,5,52,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,227,5,5,57,246,5,5,202,235,192,0,0,0,192,0,0,0,5,5,54,246,5,5,144,227,5,5,47,226,5,5,127,242,5,5,232,225,5,5,77,234,5,5,249,226,192,0,0,0,5,5,26,235,5,5,35,232,192,0,0,0,192,0,0,0,5,5,94,229,192,0,0,0,192,0,0,0,5,5,41,226,192,0,0,0,5,5,122,242,5,5,123,242,5,5,125,242,5,5,124,242,5,5,59,231,5,5,128,242,192,0,0,0,5,5,179,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,242,5,5,70,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,235,192,0,0,0,192,0,0,0,5,5,135,242,5,5,105,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,242,192,0,0,0,5,5,234,227,192,0,0,0,5,5,129,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,242,5,5,136,242,192,0,0,0,5,5,132,242,192,0,0,0,5,5,12,235,5,5,184,236,192,0,0,0,192,0,0,0,5,5,204,227,192,0,0,0,192,0,0,0,5,5,21,237,192,0,0,0,5,5,96,231,192,0,0,0,192,0,0,0,5,5,58,246,5,5,210,235,5,5,131,242,192,0,0,0,5,5,251,230,192,0,0,0,5,5,139,242,5,5,13,224,192,0,0,0,5,5,144,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,228,192,0,0,0,192,0,0,0,5,5,138,242,5,5,151,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,232,5,5,142,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,228,5,5,169,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,234,192,0,0,0,192,0,0,0,5,5,141,242,192,0,0,0,5,5,143,242,192,0,0,0,5,5,31,235,5,5,140,242,192,0,0,0,5,5,193,234,5,5,237,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,225,5,5,19,229,5,5,142,224,5,5,231,224,192,0,0,0,5,5,23,224,5,5,137,242,5,5,141,224,5,5,132,225,5,5,51,227,5,5,32,226,192,0,0,0,192,0,0,0,5,5,99,235,5,5,149,242,192,0,0,0,5,5,220,227,192,0,0,0,192,0,0,0,5,5,167,232,5,5,160,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,242,5,5,10,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,246,192,0,0,0,5,5,236,236,5,5,214,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,246,5,5,151,242,5,5,118,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,226,5,5,145,242,192,0,0,0,192,0,0,0,5,5,148,242,5,5,117,226,192,0,0,0,5,5,146,242,5,5,140,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,225,192,0,0,0,5,5,153,242,192,0,0,0,5,5,213,227,192,0,0,0,5,5,55,233,192,0,0,0,192,0,0,0,5,5,37,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,227,5,5,58,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,242,192,0,0,0,5,5,66,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,224,192,0,0,0,192,0,0,0,5,5,73,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,242,5,5,91,227,5,5,62,246,192,0,0,0,192,0,0,0,5,5,155,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,235,192,0,0,0,5,5,0,161,5,5,64,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,246,5,5,171,229,192,0,0,0,5,5,159,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,246,192,0,0,0,5,5,222,226,192,0,0,0,5,5,6,235,5,5,29,245,5,5,189,235,5,5,151,233,5,5,182,232,5,5,47,235,5,5,227,224,5,5,234,234,5,5,178,228,192,0,0,0,192,0,0,0,5,5,188,242,5,5,4,228,5,5,30,245,5,5,109,237,192,0,0,0,5,5,255,231,5,5,31,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,245,192,0,0,0,5,5,34,245,5,5,33,245,192,0,0,0,5,5,36,245,5,5,35,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,228,192,0,0,0,5,5,37,245,192,0,0,0,5,5,102,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,225,5,5,113,225,192,0,0,0,192,0,0,0,5,5,183,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,246,5,5,25,246,5,5,85,226,5,5,245,233,5,5,64,224,192,0,0,0,5,5,27,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,233,5,5,28,246,5,5,29,246,192,0,0,0,5,5,116,233,5,5,212,240,5,5,129,224,5,5,76,237,192,0,0,0,192,0,0,0,5,5,237,231,5,5,0,165,5,5,108,225,5,5,179,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,234,192,0,0,0,192,0,0,0,5,5,68,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,229,192,0,0,0,192,0,0,0,5,5,38,232,5,5,194,237,192,0,0,0,5,5,147,229,5,5,213,240,5,5,230,232,5,5,37,236,5,5,104,231,5,5,0,197,5,5,208,224,5,5,165,232,192,0,0,0,192,0,0,0,5,5,0,192,192,0,0,0,192,0,0,0,5,5,140,226,192,0,0,0,192,0,0,0,5,5,190,231,192,0,0,0,192,0,0,0,5,5,43,226,192,0,0,0,5,5,130,237,5,5,234,224,5,5,44,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,229,5,5,0,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,236,5,5,129,233,5,5,19,238,192,0,0,0,5,5,112,234,5,5,236,225,5,5,69,229,5,5,139,237,192,0,0,0,5,5,155,226,5,5,155,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,240,5,5,101,229,5,5,125,230,5,5,66,232,192,0,0,0,5,5,180,227,5,5,6,224,192,0,0,0,192,0,0,0,5,5,174,231,192,0,0,0,192,0,0,0,5,5,191,231,5,5,3,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,231,192,0,0,0,5,5,215,240,5,5,238,235,5,5,5,225,192,0,0,0,5,5,248,230,192,0,0,0,192,0,0,0,5,5,141,226,192,0,0,0,5,5,4,238,5,5,123,225,5,5,172,224,5,5,26,231,5,5,79,231,5,5,151,229,5,5,216,240,192,0,0,0,5,5,0,198,5,5,136,231,5,5,42,230,192,0,0,0,5,5,41,227,192,0,0,0,5,5,10,229,5,5,146,234,5,5,0,172,192,0,0,0,5,5,137,234,5,5,218,240,5,5,252,228,5,5,44,238,5,5,217,240,5,5,128,237,5,5,0,187,192,0,0,0,192,0,0,0,5,5,72,231,192,0,0,0,192,0,0,0,5,5,75,230,5,5,96,228,192,0,0,0,5,5,167,236,5,5,163,229,5,5,101,231,5,5,98,224,5,5,67,237,192,0,0,0,192,0,0,0,5,5,146,229,5,5,97,233,5,5,219,240,5,5,172,237,192,0,0,0,5,5,4,227,192,0,0,0,5,5,141,232,5,5,165,233,192,0,0,0,5,5,221,240,5,5,73,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,231,5,5,21,238,5,5,78,233,5,5,41,231,192,0,0,0,5,5,240,224,5,5,38,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,237,5,5,114,245,5,5,0,146,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,229,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,237,5,5,118,230,192,0,0,0,5,5,230,234,5,5,252,233,5,5,132,235,5,5,57,231,5,5,138,225,5,5,220,240,5,5,165,237,5,5,39,228,5,5,227,227,192,0,0,0,192,0,0,0,5,5,0,130,192,0,0,0,5,5,118,231,5,5,102,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,237,192,0,0,0,192,0,0,0,5,5,115,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,240,5,5,96,234,192,0,0,0,192,0,0,0,5,5,166,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,234,5,5,224,240,192,0,0,0,5,5,107,234,5,5,144,229,192,0,0,0,192,0,0,0,5,5,43,238,192,0,0,0,5,5,223,240,5,5,0,164,5,5,102,227,5,5,19,233,5,5,89,231,5,5,22,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,229,5,5,236,233,192,0,0,0,5,5,97,228,5,5,203,227,5,5,143,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,231,192,0,0,0,5,5,234,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,240,5,5,11,229,192,0,0,0,192,0,0,0,5,5,227,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,225,5,5,171,228,192,0,0,0,192,0,0,0,5,5,228,240,5,5,83,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,235,192,0,0,0,5,5,184,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,226,5,5,120,233,5,5,204,225,5,5,233,240,192,0,0,0,5,5,118,237,192,0,0,0,5,5,229,240,5,5,41,234,5,5,34,232,192,0,0,0,5,5,137,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,236,192,0,0,0,5,5,32,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,230,192,0,0,0,5,5,25,234,5,5,210,224,192,0,0,0,5,5,161,228,192,0,0,0,5,5,100,229,5,5,128,234,5,5,16,236,5,5,101,225,192,0,0,0,5,5,232,240,5,5,225,240,5,5,235,240,192,0,0,0,5,5,116,245,192,0,0,0,192,0,0,0,5,5,88,230,5,5,230,240,192,0,0,0,192,0,0,0,5,5,206,237,5,5,127,225,192,0,0,0,5,5,176,224,192,0,0,0,5,5,236,240,192,0,0,0,5,5,246,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,240,192,0,0,0,5,5,245,240,192,0,0,0,192,0,0,0,5,5,192,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,238,5,5,243,240,5,5,238,230,5,5,61,234,192,0,0,0,5,5,161,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,240,192,0,0,0,5,5,239,240,5,5,237,234,192,0,0,0,5,5,33,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,229,5,5,234,228,192,0,0,0,192,0,0,0,5,5,160,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,240,192,0,0,0,5,5,254,236,192,0,0,0,5,5,226,240,192,0,0,0,5,5,238,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,229,192,0,0,0,5,5,240,240,5,5,175,224,5,5,221,226,5,5,79,230,192,0,0,0,192,0,0,0,5,5,143,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,240,5,5,252,240,192,0,0,0,192,0,0,0,5,5,103,224,5,5,30,225,192,0,0,0,192,0,0,0,5,5,100,225,5,5,228,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,240,5,5,205,233,192,0,0,0,5,5,215,226,192,0,0,0,5,5,251,240,5,5,254,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,234,192,0,0,0,5,5,0,191,5,5,104,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,235,192,0,0,0,192,0,0,0,5,5,167,224,192,0,0,0,5,5,117,245,192,0,0,0,5,5,248,240,192,0,0,0,192,0,0,0,5,5,35,233,5,5,247,240,5,5,0,184,5,5,53,236,5,5,85,224,192,0,0,0,5,5,11,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,240,192,0,0,0,5,5,160,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,225,192,0,0,0,5,5,12,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,231,5,5,7,231,5,5,5,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,230,192,0,0,0,5,5,2,241,5,5,29,229,192,0,0,0,5,5,212,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,224,5,5,214,232,192,0,0,0,192,0,0,0,5,5,182,233,5,5,4,241,192,0,0,0,192,0,0,0,5,5,8,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,230,192,0,0,0,192,0,0,0,5,5,77,232,5,5,97,224,5,5,99,225,192,0,0,0,5,5,25,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,231,192,0,0,0,5,5,6,241,5,5,7,241,192,0,0,0,5,5,9,241,192,0,0,0,5,5,101,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,241,192,0,0,0,5,5,200,229,192,0,0,0,192,0,0,0,5,5,3,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,224,5,5,104,232,192,0,0,0,5,5,11,241,192,0,0,0,5,5,94,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,241,5,5,118,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,241,192,0,0,0,5,5,13,241,192,0,0,0,5,5,125,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,229,192,0,0,0,192,0,0,0,5,5,17,241,5,5,181,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,245,5,5,138,245,5,5,115,233,192,0,0,0,5,5,200,238,5,5,184,226,192,0,0,0,5,5,247,226,192,0,0,0,192,0,0,0,5,5,91,226,5,5,174,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,5,5,125,235,5,5,245,248,192,0,0,0,192,0,0,0,5,5,168,225,192,0,0,0,192,0,0,0,5,5,250,230,192,0,0,0,5,5,244,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,245,5,5,0,155,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,5,5,250,229,192,0,0,0,5,5,52,224,5,5,194,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,226,5,5,224,232,192,0,0,0,192,0,0,0,5,5,16,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,245,5,5,224,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,233,192,0,0,0,5,5,69,232,192,0,0,0,5,5,171,237,192,0,0,0,192,0,0,0,5,5,137,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,237,5,5,81,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,245,5,5,0,189,192,0,0,0,5,5,231,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,225,192,0,0,0,5,5,25,230,192,0,0,0,5,5,130,249,5,5,135,235,192,0,0,0,192,0,0,0,5,5,149,237,192,0,0,0,5,5,235,234,192,0,0,0,192,0,0,0,5,5,189,228,5,5,252,224,192,0,0,0,5,5,159,226,192,0,0,0,5,5,102,237,192,0,0,0,5,5,79,246,192,0,0,0,5,5,7,226,192,0,0,0,5,5,181,233,5,5,152,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,226,192,0,0,0,192,0,0,0,5,5,232,245,5,5,71,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,231,192,0,0,0,5,5,235,245,5,5,234,245,5,5,107,230,5,5,233,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,235,5,5,236,245,192,0,0,0,5,5,237,245,5,5,83,238,192,0,0,0,192,0,0,0,5,5,238,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,245,5,5,16,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,234,192,0,0,0,5,5,56,228,192,0,0,0,192,0,0,0,5,5,181,232,5,5,129,225,5,5,245,228,5,5,202,237,5,5,57,237,192,0,0,0,192,0,0,0,5,5,226,235,5,5,199,235,5,5,46,245,5,5,47,245,5,5,48,245,5,5,103,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,233,5,5,129,229,192,0,0,0,192,0,0,0,5,5,180,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,245,192,0,0,0,5,5,0,152,5,5,52,245,192,0,0,0,192,0,0,0,5,5,143,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,245,192,0,0,0,5,5,185,224,192,0,0,0,5,5,253,230,5,5,248,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,236,5,5,14,235,5,5,53,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,245,192,0,0,0,5,5,157,235,5,5,165,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,225,192,0,0,0,5,5,199,230,5,5,96,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,237,192,0,0,0,5,5,101,233,192,0,0,0,5,5,59,245,192,0,0,0,192,0,0,0,5,5,58,245,5,5,61,245,5,5,60,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,237,192,0,0,0,5,5,76,235,192,0,0,0,192,0,0,0,5,5,65,245,192,0,0,0,5,5,222,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,228,5,5,14,233,192,0,0,0,192,0,0,0,5,5,66,245,192,0,0,0,192,0,0,0,5,5,247,232,5,5,118,235,5,5,64,245,5,5,32,237,5,5,67,245,5,5,69,245,192,0,0,0,192,0,0,0,5,5,167,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,245,192,0,0,0,5,5,68,245,192,0,0,0,192,0,0,0,5,5,8,235,192,0,0,0,5,5,238,227,192,0,0,0,5,5,217,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,231,5,5,220,228,5,5,20,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,232,192,0,0,0,5,5,211,228,5,5,70,245,192,0,0,0,192,0,0,0,5,5,213,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,237,192,0,0,0,5,5,71,245,192,0,0,0,192,0,0,0,5,5,54,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,231,5,5,0,147,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,245,5,5,9,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,233,192,0,0,0,5,5,76,245,5,5,77,245,5,5,250,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,245,192,0,0,0,192,0,0,0,5,5,79,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,237,192,0,0,0,5,5,124,232,5,5,75,236,5,5,240,226,192,0,0,0,192,0,0,0,5,5,56,245,192,0,0,0,5,5,152,224,192,0,0,0,192,0,0,0,5,5,164,230,192,0,0,0,5,5,74,237,5,5,66,234,5,5,92,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,237,5,5,194,236,5,5,151,245,5,5,183,231,192,0,0,0,5,5,148,226,192,0,0,0,192,0,0,0,5,5,168,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,233,5,5,178,245,192,0,0,0,5,5,180,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,234,192,0,0,0,5,5,201,224,192,0,0,0,5,5,252,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,245,192,0,0,0,5,5,36,231,192,0,0,0,5,5,204,234,5,5,15,231,5,5,28,224,5,5,79,237,192,0,0,0,5,5,147,233,192,0,0,0,5,5,250,237,192,0,0,0,192,0,0,0,5,5,245,231,5,5,28,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,228,192,0,0,0,192,0,0,0,5,5,182,235,192,0,0,0,192,0,0,0,5,5,239,232,192,0,0,0,5,5,37,237,5,5,136,232,192,0,0,0,192,0,0,0,5,5,191,226,192,0,0,0,5,5,118,244,5,5,250,232,192,0,0,0,192,0,0,0,5,5,115,244,192,0,0,0,5,5,216,229,5,5,169,235,5,5,128,224,5,5,95,225,192,0,0,0,5,5,116,244,192,0,0,0,192,0,0,0,5,5,120,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,225,192,0,0,0,5,5,117,244,5,5,150,233,5,5,208,226,5,5,81,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,229,192,0,0,0,192,0,0,0,5,5,36,236,5,5,119,244,5,5,122,244,192,0,0,0,192,0,0,0,5,5,110,227,192,0,0,0,5,5,11,224,5,5,170,228,192,0,0,0,5,5,51,245,5,5,123,244,192,0,0,0,5,5,126,244,192,0,0,0,5,5,131,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,244,192,0,0,0,5,5,197,233,5,5,0,195,192,0,0,0,5,5,27,228,192,0,0,0,192,0,0,0,5,5,13,227,192,0,0,0,192,0,0,0,5,5,121,244,192,0,0,0,5,5,177,234,192,0,0,0,5,5,130,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,237,192,0,0,0,5,5,32,230,5,5,124,244,192,0,0,0,5,5,188,230,192,0,0,0,5,5,79,227,5,5,180,237,5,5,128,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,233,5,5,56,237,192,0,0,0,5,5,120,244,192,0,0,0,5,5,125,244,5,5,127,244,192,0,0,0,5,5,59,232,5,5,121,226,192,0,0,0,5,5,129,244,192,0,0,0,5,5,105,229,5,5,138,244,192,0,0,0,192,0,0,0,5,5,143,244,192,0,0,0,5,5,141,244,5,5,76,228,5,5,63,228,5,5,147,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,244,192,0,0,0,5,5,146,244,5,5,88,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,182,5,5,25,231,5,5,192,226,5,5,6,232,5,5,158,232,5,5,193,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,244,5,5,140,244,5,5,142,244,192,0,0,0,5,5,69,227,5,5,144,244,5,5,99,238,192,0,0,0,5,5,97,231,192,0,0,0,5,5,148,244,192,0,0,0,192,0,0,0,5,5,165,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,244,192,0,0,0,192,0,0,0,5,5,93,228,192,0,0,0,192,0,0,0,5,5,78,229,5,5,133,244,5,5,9,238,192,0,0,0,5,5,66,230,5,5,173,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,244,192,0,0,0,5,5,95,233,5,5,145,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,237,192,0,0,0,5,5,72,224,5,5,107,237,5,5,134,244,5,5,136,244,5,5,230,225,5,5,139,244,192,0,0,0,5,5,149,244,5,5,162,229,192,0,0,0,5,5,149,233,192,0,0,0,5,5,164,233,192,0,0,0,192,0,0,0,5,5,254,231,5,5,223,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,244,5,5,248,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,244,5,5,153,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,236,5,5,125,227,5,5,237,226,192,0,0,0,192,0,0,0,5,5,229,226,5,5,38,237,5,5,167,244,192,0,0,0,5,5,166,244,5,5,164,244,5,5,68,227,5,5,46,234,5,5,158,244,5,5,190,234,5,5,126,229,192,0,0,0,5,5,0,150,5,5,169,244,5,5,168,244,192,0,0,0,5,5,46,238,192,0,0,0,5,5,156,244,192,0,0,0,5,5,99,234,5,5,225,232,192,0,0,0,5,5,200,227,5,5,169,228,5,5,162,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,244,5,5,155,244,5,5,157,244,5,5,141,225,5,5,159,244,5,5,71,232,5,5,163,244,5,5,165,244,5,5,126,228,5,5,28,238,192,0,0,0,5,5,176,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,244,192,0,0,0,5,5,106,234,5,5,174,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,230,192,0,0,0,5,5,160,244,192,0,0,0,5,5,189,230,5,5,0,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,230,5,5,248,234,5,5,208,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,233,192,0,0,0,5,5,57,234,5,5,139,235,192,0,0,0,192,0,0,0,5,5,127,233,192,0,0,0,5,5,171,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,228,192,0,0,0,5,5,177,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,230,192,0,0,0,5,5,9,232,192,0,0,0,5,5,75,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,210,192,0,0,0,192,0,0,0,5,5,70,238,192,0,0,0,192,0,0,0,5,5,28,228,192,0,0,0,5,5,179,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,234,192,0,0,0,192,0,0,0,5,5,188,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,232,192,0,0,0,5,5,184,244,5,5,204,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,244,5,5,43,227,192,0,0,0,5,5,179,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,244,192,0,0,0,5,5,192,237,5,5,35,238,192,0,0,0,5,5,189,244,192,0,0,0,5,5,133,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,244,5,5,181,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,234,192,0,0,0,192,0,0,0,5,5,64,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,225,192,0,0,0,5,5,53,225,192,0,0,0,192,0,0,0,5,5,193,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,235,192,0,0,0,192,0,0,0,5,5,187,244,192,0,0,0,192,0,0,0,5,5,26,225,192,0,0,0,192,0,0,0,5,5,194,244,5,5,205,229,192,0,0,0,5,5,192,244,192,0,0,0,192,0,0,0,5,5,207,244,192,0,0,0,192,0,0,0,5,5,206,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,244,192,0,0,0,192,0,0,0,5,5,178,244,192,0,0,0,192,0,0,0,5,5,190,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,229,5,5,199,244,5,5,208,244,192,0,0,0,192,0,0,0,5,5,77,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,244,192,0,0,0,5,5,185,226,192,0,0,0,5,5,195,244,192,0,0,0,5,5,206,236,5,5,202,244,5,5,203,244,5,5,205,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,229,5,5,219,244,192,0,0,0,192,0,0,0,5,5,198,244,192,0,0,0,192,0,0,0,5,5,209,244,5,5,0,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,244,5,5,85,237,192,0,0,0,192,0,0,0,5,5,212,244,192,0,0,0,5,5,213,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,244,192,0,0,0,192,0,0,0,5,5,59,230,192,0,0,0,192,0,0,0,5,5,150,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,244,192,0,0,0,5,5,201,244,192,0,0,0,5,5,204,244,192,0,0,0,5,5,193,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,244,5,5,220,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,224,192,0,0,0,5,5,222,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,244,5,5,226,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,237,192,0,0,0,5,5,9,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,244,192,0,0,0,5,5,147,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,244,192,0,0,0,5,5,149,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,244,5,5,230,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,244,192,0,0,0,192,0,0,0,5,5,67,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,244,5,5,226,224,192,0,0,0,5,5,233,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,244,192,0,0,0,192,0,0,0,5,5,240,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,244,192,0,0,0,5,5,242,244,5,5,241,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,244,192,0,0,0,5,5,245,244,5,5,208,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,232,5,5,72,225,5,5,198,227,5,5,150,235,5,5,213,245,192,0,0,0,192,0,0,0,5,5,123,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,245,192,0,0,0,5,5,215,245,5,5,253,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,245,192,0,0,0,192,0,0,0,5,5,217,245,5,5,128,235,192,0,0,0,5,5,58,232,192,0,0,0,192,0,0,0,5,5,220,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,237,5,5,173,237,5,5,69,225,5,5,121,224,5,5,252,234,5,5,11,232,192,0,0,0,192,0,0,0,5,5,155,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,225,192,0,0,0,5,5,188,233,5,5,79,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,244,5,5,249,244,5,5,32,236,5,5,251,244,192,0,0,0,5,5,115,225,5,5,250,244,192,0,0,0,5,5,231,235,5,5,128,233,5,5,140,224,192,0,0,0,5,5,254,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,244,5,5,253,244,192,0,0,0,192,0,0,0,5,5,193,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,244,5,5,2,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,245,5,5,125,231,5,5,6,226,192,0,0,0,5,5,135,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,225,192,0,0,0,5,5,233,227,5,5,227,245,192,0,0,0,192,0,0,0,5,5,119,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,234,192,0,0,0,5,5,30,231,192,0,0,0,5,5,197,230,192,0,0,0,192,0,0,0,5,5,244,225,5,5,133,238,5,5,38,224,5,5,45,224,5,5,47,224,5,5,194,231,192,0,0,0,5,5,46,224,192,0,0,0,5,5,177,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,245,5,5,115,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,245,192,0,0,0,5,5,123,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,245,5,5,127,245,5,5,126,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,245,192,0,0,0,5,5,109,233,5,5,129,238,5,5,247,230,192,0,0,0,5,5,171,230,5,5,28,232,5,5,129,245,5,5,48,231,192,0,0,0,5,5,130,245,5,5,131,245,5,5,132,245,5,5,107,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,226,192,0,0,0,5,5,133,245,5,5,100,232,192,0,0,0,5,5,135,245,192,0,0,0,5,5,86,227,5,5,43,236,5,5,0,143,5,5,134,245,5,5,136,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,225,5,5,112,230,5,5,106,232,192,0,0,0,5,5,137,245,192,0,0,0,5,5,170,233,5,5,189,242,192,0,0,0,192,0,0,0,5,5,178,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,239,192,0,0,0,192,0,0,0,5,5,91,234,5,5,187,237,5,5,117,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,239,5,5,243,227,192,0,0,0,5,5,108,227,5,5,192,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,242,5,5,7,233,192,0,0,0,5,5,107,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,235,5,5,191,242,5,5,202,232,5,5,3,227,5,5,123,228,5,5,242,224,5,5,243,234,192,0,0,0,192,0,0,0,5,5,28,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,242,5,5,199,242,5,5,174,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,234,192,0,0,0,5,5,35,228,192,0,0,0,5,5,200,242,192,0,0,0,5,5,201,242,192,0,0,0,192,0,0,0,5,5,176,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,232,5,5,112,226,192,0,0,0,192,0,0,0,5,5,97,232,5,5,94,236,5,5,238,234,192,0,0,0,5,5,194,242,5,5,202,242,192,0,0,0,5,5,50,233,5,5,219,224,192,0,0,0,192,0,0,0,5,5,197,242,192,0,0,0,192,0,0,0,5,5,7,232,5,5,195,242,192,0,0,0,192,0,0,0,5,5,69,246,5,5,196,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,232,192,0,0,0,5,5,170,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,227,192,0,0,0,5,5,193,230,192,0,0,0,5,5,193,242,5,5,129,231,5,5,236,229,5,5,129,230,5,5,147,224,192,0,0,0,5,5,203,242,5,5,182,227,5,5,19,231,192,0,0,0,5,5,206,242,5,5,8,229,192,0,0,0,192,0,0,0,5,5,217,242,5,5,211,242,5,5,133,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,226,5,5,191,236,192,0,0,0,5,5,220,237,5,5,131,237,5,5,21,227,5,5,100,237,5,5,14,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,235,5,5,120,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,232,5,5,112,224,192,0,0,0,5,5,224,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,242,192,0,0,0,192,0,0,0,5,5,218,242,5,5,205,242,5,5,62,226,5,5,213,242,5,5,210,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,226,192,0,0,0,192,0,0,0,5,5,102,231,192,0,0,0,5,5,212,242,5,5,161,231,5,5,100,224,5,5,32,232,192,0,0,0,5,5,70,231,192,0,0,0,192,0,0,0,5,5,16,238,192,0,0,0,5,5,203,229,5,5,215,242,192,0,0,0,192,0,0,0,5,5,216,242,5,5,219,242,5,5,5,234,5,5,209,242,192,0,0,0,5,5,176,236,192,0,0,0,5,5,33,224,5,5,70,246,5,5,207,242,5,5,208,242,192,0,0,0,5,5,214,242,5,5,144,235,5,5,229,231,5,5,69,237,5,5,220,242,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,5,5,227,242,192,0,0,0,192,0,0,0,5,5,226,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,236,5,5,223,242,192,0,0,0,5,5,229,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,235,192,0,0,0,5,5,228,242,5,5,234,242,5,5,141,230,192,0,0,0,192,0,0,0,5,5,234,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,228,192,0,0,0,5,5,222,242,192,0,0,0,192,0,0,0,5,5,155,227,5,5,230,242,192,0,0,0,192,0,0,0,5,5,232,242,192,0,0,0,192,0,0,0,5,5,53,226,5,5,236,237,5,5,238,242,192,0,0,0,5,5,233,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,242,192,0,0,0,5,5,254,227,5,5,151,234,5,5,36,232,5,5,141,231,192,0,0,0,192,0,0,0,5,5,65,230,192,0,0,0,5,5,224,242,192,0,0,0,5,5,53,232,5,5,122,228,5,5,139,228,5,5,225,242,192,0,0,0,5,5,53,238,5,5,158,224,192,0,0,0,5,5,231,242,5,5,51,228,5,5,235,242,192,0,0,0,5,5,251,227,5,5,236,242,5,5,108,231,5,5,237,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,237,5,5,47,229,192,0,0,0,5,5,246,242,192,0,0,0,5,5,243,242,192,0,0,0,5,5,247,242,192,0,0,0,192,0,0,0,5,5,249,242,192,0,0,0,192,0,0,0,5,5,248,231,192,0,0,0,192,0,0,0,5,5,120,227,5,5,181,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,226,5,5,240,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,236,192,0,0,0,192,0,0,0,5,5,85,227,5,5,204,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,234,192,0,0,0,192,0,0,0,5,5,95,231,192,0,0,0,192,0,0,0,5,5,115,235,5,5,38,233,192,0,0,0,192,0,0,0,5,5,177,236,192,0,0,0,5,5,73,235,192,0,0,0,192,0,0,0,5,5,239,242,192,0,0,0,5,5,244,242,5,5,245,242,5,5,69,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,234,192,0,0,0,5,5,190,229,5,5,241,242,5,5,248,229,5,5,242,242,5,5,232,234,192,0,0,0,5,5,209,227,5,5,171,225,192,0,0,0,5,5,211,232,5,5,117,228,5,5,119,237,5,5,234,232,5,5,150,226,5,5,8,243,192,0,0,0,192,0,0,0,5,5,10,243,5,5,248,235,192,0,0,0,192,0,0,0,5,5,78,236,192,0,0,0,192,0,0,0,5,5,95,227,192,0,0,0,192,0,0,0,5,5,134,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,242,5,5,197,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,238,5,5,252,242,5,5,117,235,5,5,251,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,230,5,5,38,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,231,192,0,0,0,5,5,48,234,5,5,6,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,243,5,5,253,242,192,0,0,0,5,5,2,243,5,5,133,225,192,0,0,0,192,0,0,0,5,5,203,236,192,0,0,0,5,5,4,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,236,5,5,93,225,192,0,0,0,5,5,196,227,192,0,0,0,192,0,0,0,5,5,46,233,192,0,0,0,5,5,56,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,227,192,0,0,0,5,5,3,236,192,0,0,0,5,5,73,234,5,5,71,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,236,192,0,0,0,5,5,9,243,5,5,67,238,5,5,254,242,192,0,0,0,5,5,115,228,5,5,3,243,192,0,0,0,192,0,0,0,5,5,216,236,192,0,0,0,5,5,7,243,5,5,56,233,192,0,0,0,192,0,0,0,5,5,250,242,192,0,0,0,192,0,0,0,5,5,215,236,192,0,0,0,192,0,0,0,5,5,128,232,5,5,255,225,192,0,0,0,5,5,78,237,5,5,111,224,5,5,21,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,234,192,0,0,0,5,5,11,243,192,0,0,0,5,5,212,234,192,0,0,0,5,5,207,226,192,0,0,0,192,0,0,0,5,5,20,243,192,0,0,0,5,5,86,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,236,192,0,0,0,5,5,242,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,231,5,5,22,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,234,5,5,13,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,243,5,5,19,243,192,0,0,0,5,5,176,227,192,0,0,0,5,5,94,235,192,0,0,0,192,0,0,0,5,5,111,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,243,192,0,0,0,192,0,0,0,5,5,12,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,234,5,5,72,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,229,192,0,0,0,5,5,116,228,5,5,17,243,192,0,0,0,192,0,0,0,5,5,188,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,243,5,5,6,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,230,192,0,0,0,192,0,0,0,5,5,39,243,192,0,0,0,192,0,0,0,5,5,123,236,192,0,0,0,192,0,0,0,5,5,29,243,192,0,0,0,5,5,30,243,192,0,0,0,192,0,0,0,5,5,34,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,233,192,0,0,0,5,5,24,243,5,5,15,243,192,0,0,0,5,5,35,243,192,0,0,0,5,5,188,232,5,5,33,243,192,0,0,0,192,0,0,0,5,5,77,231,5,5,32,243,192,0,0,0,5,5,31,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,225,5,5,38,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,243,192,0,0,0,5,5,188,227,192,0,0,0,5,5,64,238,5,5,43,234,5,5,204,245,192,0,0,0,5,5,34,243,192,0,0,0,192,0,0,0,5,5,74,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,237,5,5,23,243,5,5,26,243,5,5,162,230,5,5,28,243,192,0,0,0,5,5,115,230,5,5,174,229,5,5,120,230,192,0,0,0,5,5,83,224,5,5,14,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,232,192,0,0,0,192,0,0,0,5,5,51,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,229,5,5,19,236,5,5,44,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,243,5,5,50,243,5,5,166,230,192,0,0,0,5,5,27,243,192,0,0,0,5,5,46,243,192,0,0,0,5,5,156,233,192,0,0,0,5,5,116,237,192,0,0,0,192,0,0,0,5,5,47,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,243,5,5,42,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,243,192,0,0,0,5,5,195,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,232,192,0,0,0,5,5,98,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,234,5,5,203,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,243,192,0,0,0,5,5,49,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,243,192,0,0,0,5,5,59,243,192,0,0,0,5,5,58,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,224,5,5,53,243,192,0,0,0,192,0,0,0,5,5,55,243,5,5,54,243,5,5,176,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,162,192,0,0,0,192,0,0,0,5,5,64,243,192,0,0,0,192,0,0,0,5,5,63,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,228,192,0,0,0,5,5,65,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,243,5,5,82,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,243,192,0,0,0,5,5,69,243,5,5,66,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,243,5,5,70,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,243,5,5,73,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,227,192,0,0,0,192,0,0,0,5,5,76,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,228,5,5,21,246,5,5,246,230,192,0,0,0,5,5,158,225,5,5,226,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,230,5,5,64,237,192,0,0,0,5,5,240,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,238,192,0,0,0,5,5,40,237,5,5,143,224,5,5,240,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,230,5,5,48,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,224,192,0,0,0,5,5,146,232,5,5,71,229,5,5,242,245,192,0,0,0,192,0,0,0,5,5,217,237,192,0,0,0,192,0,0,0,5,5,241,245,5,5,243,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,245,5,5,20,229,5,5,27,234,5,5,158,231,5,5,232,228,192,0,0,0,5,5,248,245,192,0,0,0,5,5,92,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,245,5,5,88,237,5,5,187,225,192,0,0,0,5,5,244,245,5,5,254,229,5,5,253,224,192,0,0,0,192,0,0,0,5,5,245,245,5,5,180,233,5,5,173,229,5,5,90,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,230,192,0,0,0,5,5,250,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,227,5,5,189,229,192,0,0,0,5,5,2,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,229,192,0,0,0,5,5,73,226,5,5,21,233,5,5,249,245,5,5,242,227,192,0,0,0,5,5,40,234,5,5,203,228,5,5,168,232,192,0,0,0,5,5,33,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,234,192,0,0,0,5,5,175,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,235,5,5,106,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,245,192,0,0,0,192,0,0,0,5,5,252,245,192,0,0,0,5,5,208,227,5,5,253,245,192,0,0,0,5,5,22,246,5,5,24,224,5,5,111,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,245,5,5,28,236,5,5,255,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,246,192,0,0,0,5,5,221,227,192,0,0,0,5,5,85,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,246,192,0,0,0,5,5,245,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,230,192,0,0,0,5,5,23,246,5,5,133,237,5,5,4,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,246,5,5,2,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,246,192,0,0,0,5,5,9,246,192,0,0,0,192,0,0,0,5,5,253,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,246,5,5,15,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,233,5,5,14,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,156,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,246,192,0,0,0,5,5,12,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,246,5,5,22,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,237,192,0,0,0,5,5,17,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,246,192,0,0,0,5,5,20,238,192,0,0,0,5,5,132,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,245,5,5,0,140,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,229,5,5,172,226,5,5,67,236,5,5,0,180,5,5,209,225,192,0,0,0,5,5,127,238,192,0,0,0,5,5,168,233,192,0,0,0,5,5,187,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,231,5,5,0,196,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,231,5,5,141,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,245,192,0,0,0,192,0,0,0,5,5,244,235,192,0,0,0,5,5,103,231,192,0,0,0,5,5,104,245,192,0,0,0,5,5,24,231,192,0,0,0,5,5,27,231,5,5,184,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,245,5,5,39,231,192,0,0,0,5,5,9,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,245,5,5,106,245,192,0,0,0,192,0,0,0,5,5,60,233,192,0,0,0,192,0,0,0,5,5,37,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,234,5,5,24,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,245,5,5,108,245,5,5,36,235,5,5,209,229,192,0,0,0,192,0,0,0,5,5,109,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,225,5,5,110,245,192,0,0,0,5,5,111,245,192,0,0,0,5,5,112,245,192,0,0,0,192,0,0,0,5,5,113,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,232,5,5,13,242,192,0,0,0,5,5,78,226,5,5,14,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,242,192,0,0,0,5,5,34,238,5,5,16,242,5,5,17,242,5,5,190,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,242,5,5,125,229,5,5,18,242,5,5,170,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,242,5,5,20,242,192,0,0,0,5,5,174,227,192,0,0,0,5,5,22,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,227,192,0,0,0,5,5,253,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,231,192,0,0,0,5,5,143,227,5,5,148,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,242,5,5,25,242,192,0,0,0,192,0,0,0,5,5,246,225,5,5,57,235,5,5,70,233,5,5,24,242,5,5,168,237,5,5,238,236,5,5,26,242,5,5,30,242,5,5,27,242,192,0,0,0,192,0,0,0,5,5,28,242,5,5,212,229,192,0,0,0,5,5,32,242,5,5,33,242,5,5,177,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,242,192,0,0,0,5,5,31,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,242,192,0,0,0,5,5,40,242,5,5,186,224,5,5,34,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,230,5,5,126,224,5,5,39,242,5,5,38,242,192,0,0,0,192,0,0,0,5,5,36,242,5,5,41,242,192,0,0,0,192,0,0,0,5,5,43,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,235,5,5,251,237,5,5,174,230,5,5,44,242,192,0,0,0,5,5,79,235,192,0,0,0,192,0,0,0,5,5,46,242,192,0,0,0,192,0,0,0,5,5,161,227,192,0,0,0,192,0,0,0,5,5,246,244,5,5,45,242,5,5,42,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,227,5,5,5,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,242,192,0,0,0,192,0,0,0,5,5,47,242,192,0,0,0,5,5,247,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,242,5,5,251,233,192,0,0,0,5,5,52,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,235,192,0,0,0,192,0,0,0,5,5,114,230,192,0,0,0,5,5,227,236,192,0,0,0,5,5,175,234,192,0,0,0,192,0,0,0,5,5,58,244,192,0,0,0,192,0,0,0,5,5,59,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,244,192,0,0,0,192,0,0,0,5,5,61,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,234,192,0,0,0,5,5,187,230,192,0,0,0,192,0,0,0,5,5,60,244,5,5,199,227,5,5,78,235,192,0,0,0,5,5,43,230,5,5,67,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,244,192,0,0,0,192,0,0,0,5,5,78,244,5,5,95,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,244,192,0,0,0,5,5,64,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,244,5,5,69,244,5,5,248,232,192,0,0,0,192,0,0,0,5,5,148,237,192,0,0,0,5,5,63,244,5,5,63,226,5,5,65,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,244,192,0,0,0,5,5,247,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,244,192,0,0,0,5,5,76,244,192,0,0,0,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,232,192,0,0,0,5,5,175,229,5,5,215,229,192,0,0,0,192,0,0,0,5,5,58,230,5,5,74,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,244,5,5,242,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,244,5,5,89,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,238,192,0,0,0,192,0,0,0,5,5,84,244,5,5,83,244,192,0,0,0,5,5,85,244,192,0,0,0,5,5,81,244,192,0,0,0,5,5,88,244,192,0,0,0,5,5,87,244,192,0,0,0,5,5,86,244,192,0,0,0,192,0,0,0,5,5,31,230,5,5,91,232,5,5,193,231,5,5,135,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,244,192,0,0,0,5,5,93,244,192,0,0,0,5,5,95,244,5,5,169,227,5,5,82,244,5,5,92,244,192,0,0,0,5,5,208,232,5,5,232,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,244,192,0,0,0,192,0,0,0,5,5,57,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,236,5,5,96,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,244,192,0,0,0,5,5,101,244,5,5,102,244,192,0,0,0,5,5,239,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,244,192,0,0,0,192,0,0,0,5,5,100,244,192,0,0,0,5,5,108,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,244,192,0,0,0,5,5,105,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,244,5,5,106,244,5,5,107,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,227,192,0,0,0,5,5,90,247,192,0,0,0,5,5,91,247,192,0,0,0,5,5,210,231,5,5,0,200,5,5,159,232,192,0,0,0,5,5,153,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,234,5,5,39,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,245,192,0,0,0,5,5,225,231,5,5,67,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,240,192,0,0,0,5,5,42,245,192,0,0,0,5,5,43,245,192,0,0,0,5,5,44,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,226,5,5,20,241,5,5,53,233,192,0,0,0,5,5,76,234,192,0,0,0,192,0,0,0,5,5,58,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,233,192,0,0,0,192,0,0,0,5,5,181,236,5,5,162,233,192,0,0,0,5,5,154,226,5,5,92,247,5,5,32,224,192,0,0,0,5,5,84,243,5,5,75,234,5,5,187,236,5,5,71,228,5,5,42,233,192,0,0,0,5,5,191,225,192,0,0,0,5,5,54,231,5,5,193,225,192,0,0,0,5,5,158,246,5,5,189,227,192,0,0,0,192,0,0,0,5,5,56,244,192,0,0,0,5,5,159,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,224,192,0,0,0,192,0,0,0,5,5,162,246,192,0,0,0,192,0,0,0,5,5,161,246,5,5,181,228,192,0,0,0,5,5,160,246,5,5,207,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,230,5,5,182,239,5,5,163,246,5,5,201,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,230,5,5,12,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,246,192,0,0,0,5,5,7,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,228,5,5,165,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,246,192,0,0,0,192,0,0,0,5,5,124,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,233,192,0,0,0,5,5,93,236,5,5,136,247,192,0,0,0,5,5,137,247,192,0,0,0,5,5,138,247,5,5,16,230,192,0,0,0,5,5,225,226,5,5,250,228,192,0,0,0,192,0,0,0,5,5,140,247,192,0,0,0,5,5,117,231,5,5,139,247,5,5,39,236,192,0,0,0,5,5,142,247,5,5,0,170,5,5,184,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,236,5,5,141,247,192,0,0,0,5,5,41,225,5,5,126,226,5,5,148,247,5,5,147,247,5,5,197,231,5,5,143,247,5,5,144,247,5,5,61,225,192,0,0,0,192,0,0,0,5,5,145,247,5,5,158,237,192,0,0,0,192,0,0,0,5,5,55,234,5,5,254,228,5,5,34,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,247,5,5,149,247,5,5,146,247,5,5,93,224,192,0,0,0,5,5,176,237,5,5,170,236,5,5,227,228,5,5,140,232,192,0,0,0,192,0,0,0,5,5,152,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,236,192,0,0,0,5,5,218,237,5,5,141,227,5,5,151,247,192,0,0,0,5,5,241,225,192,0,0,0,192,0,0,0,5,5,110,234,192,0,0,0,192,0,0,0,5,5,200,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,229,5,5,153,247,5,5,156,247,192,0,0,0,5,5,155,247,5,5,158,247,5,5,154,247,192,0,0,0,5,5,206,227,5,5,157,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,234,5,5,160,247,192,0,0,0,192,0,0,0,5,5,239,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,224,192,0,0,0,192,0,0,0,5,5,161,247,192,0,0,0,192,0,0,0,5,5,162,247,5,5,164,247,5,5,91,225,192,0,0,0,5,5,159,247,192,0,0,0,5,5,165,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,247,192,0,0,0,5,5,166,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,247,192,0,0,0,5,5,167,247,5,5,170,247,5,5,172,247,192,0,0,0,5,5,173,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,234,5,5,176,247,192,0,0,0,5,5,175,247,192,0,0,0,5,5,64,230,5,5,169,247,5,5,123,233,192,0,0,0,192,0,0,0,5,5,107,225,5,5,79,224,5,5,13,234,192,0,0,0,5,5,178,247,192,0,0,0,192,0,0,0,5,5,179,247,192,0,0,0,192,0,0,0,5,5,184,247,5,5,126,237,5,5,181,247,192,0,0,0,192,0,0,0,5,5,147,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,247,192,0,0,0,5,5,183,247,5,5,180,247,5,5,177,247,192,0,0,0,192,0,0,0,5,5,182,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,135,5,5,185,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,247,192,0,0,0,5,5,189,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,247,192,0,0,0,5,5,186,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,227,192,0,0,0,192,0,0,0,5,5,159,225,192,0,0,0,5,5,0,181,5,5,0,183,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,237,192,0,0,0,5,5,156,225,192,0,0,0,5,5,162,228,5,5,218,227,5,5,85,247,192,0,0,0,192,0,0,0,5,5,210,226,192,0,0,0,192,0,0,0,5,5,86,247,192,0,0,0,192,0,0,0,5,5,0,134,192,0,0,0,5,5,87,247,192,0,0,0,192,0,0,0,5,5,168,234,192,0,0,0,192,0,0,0,5,5,88,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,238,192,0,0,0,192,0,0,0,5,5,89,247,5,5,107,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,231,192,0,0,0,192,0,0,0,5,5,243,237,5,5,240,247,192,0,0,0,5,5,241,247,192,0,0,0,192,0,0,0,5,5,108,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,230,192,0,0,0,192,0,0,0,5,5,205,236,192,0,0,0,192,0,0,0,5,5,223,237,5,5,172,231,192,0,0,0,5,5,161,236,192,0,0,0,5,5,122,236,192,0,0,0,192,0,0,0,5,5,177,246,5,5,0,153,5,5,101,237,5,5,4,236,5,5,80,228,5,5,130,227,192,0,0,0,5,5,132,229,192,0,0,0,5,5,187,226,5,5,153,225,5,5,144,231,192,0,0,0,192,0,0,0,5,5,64,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,231,5,5,216,225,192,0,0,0,5,5,126,246,5,5,170,230,192,0,0,0,5,5,191,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,235,5,5,129,246,192,0,0,0,192,0,0,0,5,5,146,231,192,0,0,0,5,5,20,226,192,0,0,0,192,0,0,0,5,5,63,233,192,0,0,0,192,0,0,0,5,5,127,246,192,0,0,0,192,0,0,0,5,5,130,246,5,5,131,246,5,5,194,230,192,0,0,0,5,5,64,229,192,0,0,0,5,5,128,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,246,5,5,132,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,237,5,5,229,230,192,0,0,0,5,5,133,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,246,192,0,0,0,5,5,83,237,5,5,215,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,246,192,0,0,0,5,5,214,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,246,5,5,128,229,5,5,26,229,5,5,138,246,192,0,0,0,5,5,83,234,192,0,0,0,5,5,17,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,238,5,5,166,237,192,0,0,0,5,5,142,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,246,5,5,140,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,246,5,5,210,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,233,5,5,145,246,5,5,243,225,192,0,0,0,5,5,146,246,5,5,38,231,192,0,0,0,5,5,144,246,192,0,0,0,192,0,0,0,5,5,172,228,5,5,131,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,246,5,5,134,238,5,5,147,246,5,5,150,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,230,5,5,14,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,246,5,5,148,246,5,5,49,235,192,0,0,0,192,0,0,0,5,5,152,246,5,5,159,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,246,5,5,154,246,192,0,0,0,5,5,175,240,192,0,0,0,192,0,0,0,5,5,213,231,192,0,0,0,5,5,72,232,192,0,0,0,5,5,5,238,5,5,161,225,192,0,0,0,5,5,174,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,246,192,0,0,0,192,0,0,0,5,5,101,234,192,0,0,0,5,5,156,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,237,192,0,0,0,5,5,157,246,192,0,0,0,5,5,170,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,230,5,5,242,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,233,5,5,103,236,192,0,0,0,5,5,184,237,192,0,0,0,5,5,66,247,192,0,0,0,5,5,6,229,192,0,0,0,5,5,145,228,5,5,67,247,5,5,4,226,5,5,0,137,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,233,192,0,0,0,192,0,0,0,5,5,72,246,192,0,0,0,5,5,73,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,235,5,5,69,226,5,5,127,229,5,5,74,246,5,5,147,230,5,5,238,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,246,192,0,0,0,192,0,0,0,5,5,26,232,5,5,63,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,246,5,5,188,231,192,0,0,0,5,5,6,236,192,0,0,0,5,5,23,238,5,5,76,246,5,5,77,246,192,0,0,0,5,5,24,236,192,0,0,0,5,5,81,246,5,5,82,246,192,0,0,0,5,5,86,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,246,192,0,0,0,5,5,88,246,5,5,96,246,5,5,152,237,192,0,0,0,5,5,91,246,192,0,0,0,192,0,0,0,5,5,89,246,5,5,80,246,192,0,0,0,192,0,0,0,5,5,173,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,231,192,0,0,0,192,0,0,0,5,5,41,233,5,5,36,237,5,5,83,246,5,5,84,246,5,5,85,246,5,5,87,246,192,0,0,0,5,5,227,229,192,0,0,0,5,5,27,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,227,192,0,0,0,5,5,98,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,246,192,0,0,0,5,5,92,246,192,0,0,0,5,5,97,246,192,0,0,0,5,5,18,235,192,0,0,0,192,0,0,0,5,5,178,233,5,5,94,246,5,5,95,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,246,5,5,60,230,5,5,164,236,5,5,93,246,5,5,151,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,246,192,0,0,0,5,5,199,225,192,0,0,0,192,0,0,0,5,5,93,230,5,5,0,139,5,5,229,233,192,0,0,0,192,0,0,0,5,5,12,224,192,0,0,0,5,5,102,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,234,5,5,186,225,192,0,0,0,5,5,103,246,5,5,101,246,5,5,105,246,192,0,0,0,192,0,0,0,5,5,210,225,192,0,0,0,5,5,106,246,192,0,0,0,5,5,107,246,192,0,0,0,5,5,110,246,192,0,0,0,5,5,42,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,231,5,5,94,228,5,5,108,246,5,5,24,234,5,5,166,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,231,192,0,0,0,192,0,0,0,5,5,63,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,246,5,5,196,229,5,5,98,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,246,5,5,80,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,246,192,0,0,0,5,5,117,246,192,0,0,0,192,0,0,0,5,5,33,230,192,0,0,0,192,0,0,0,5,5,215,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,233,5,5,30,246,5,5,219,229,192,0,0,0,5,5,39,233,192,0,0,0,5,5,31,246,5,5,18,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,246,192,0,0,0,5,5,17,232,5,5,33,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,246,192,0,0,0,192,0,0,0,5,5,84,238,5,5,39,246,192,0,0,0,192,0,0,0,5,5,37,246,5,5,34,246,5,5,35,246,5,5,17,238,5,5,49,233,5,5,234,233,5,5,40,246,192,0,0,0,5,5,38,246,192,0,0,0,192,0,0,0,5,5,97,235,192,0,0,0,5,5,42,246,5,5,211,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,228,192,0,0,0,5,5,41,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,225,5,5,8,228,192,0,0,0,5,5,43,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,239,5,5,201,228,192,0,0,0,192,0,0,0,5,5,99,230,5,5,44,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,236,5,5,122,238,5,5,213,229,192,0,0,0,5,5,95,232,5,5,126,227,192,0,0,0,5,5,185,235,5,5,185,233,192,0,0,0,5,5,116,234,192,0,0,0,192,0,0,0,5,5,197,226,192,0,0,0,192,0,0,0,5,5,90,224,192,0,0,0,5,5,113,232,192,0,0,0,5,5,228,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,229,5,5,241,230,192,0,0,0,192,0,0,0,5,5,69,247,192,0,0,0,192,0,0,0,5,5,222,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,247,5,5,237,224,192,0,0,0,5,5,90,232,5,5,35,236,192,0,0,0,5,5,214,237,192,0,0,0,5,5,72,247,192,0,0,0,5,5,70,247,192,0,0,0,5,5,15,228,5,5,224,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,228,192,0,0,0,192,0,0,0,5,5,90,236,192,0,0,0,5,5,240,227,192,0,0,0,192,0,0,0,5,5,25,235,192,0,0,0,5,5,76,247,5,5,75,247,192,0,0,0,192,0,0,0,5,5,73,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,224,192,0,0,0,5,5,20,233,5,5,172,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,247,192,0,0,0,192,0,0,0,5,5,0,188,192,0,0,0,192,0,0,0,5,5,215,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,247,192,0,0,0,5,5,9,225,192,0,0,0,192,0,0,0,5,5,187,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,247,192,0,0,0,5,5,79,247,192,0,0,0,5,5,150,225,5,5,74,228,5,5,14,228,192,0,0,0,5,5,217,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,235,192,0,0,0,5,5,235,228,5,5,112,232,5,5,194,247,5,5,195,247,5,5,97,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,225,5,5,196,247,5,5,117,234,192,0,0,0,5,5,86,232,5,5,93,237,192,0,0,0,5,5,197,247,192,0,0,0,5,5,198,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,236,5,5,221,237,192,0,0,0,192,0,0,0,5,5,199,247,5,5,159,228,5,5,42,225,5,5,233,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,225,5,5,233,234,192,0,0,0,5,5,107,229,5,5,201,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,229,5,5,200,247,192,0,0,0,5,5,203,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,247,5,5,204,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,233,192,0,0,0,192,0,0,0,5,5,110,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,228,5,5,229,228,5,5,114,237,192,0,0,0,192,0,0,0,5,5,46,229,192,0,0,0,5,5,105,234,5,5,193,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,228,192,0,0,0,5,5,3,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,237,5,5,141,248,192,0,0,0,192,0,0,0,5,5,142,248,192,0,0,0,5,5,193,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,248,5,5,145,248,192,0,0,0,5,5,0,168,192,0,0,0,5,5,143,248,192,0,0,0,5,5,147,248,5,5,237,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,248,192,0,0,0,5,5,124,235,192,0,0,0,192,0,0,0,5,5,40,224,5,5,146,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,248,192,0,0,0,5,5,169,225,192,0,0,0,192,0,0,0,5,5,161,248,192,0,0,0,5,5,156,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,248,5,5,157,248,5,5,145,226,192,0,0,0,5,5,29,224,192,0,0,0,5,5,152,248,5,5,148,248,5,5,178,225,192,0,0,0,5,5,154,248,192,0,0,0,192,0,0,0,5,5,155,248,192,0,0,0,5,5,159,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,248,192,0,0,0,5,5,83,228,192,0,0,0,5,5,71,230,192,0,0,0,5,5,160,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,248,192,0,0,0,5,5,150,248,192,0,0,0,5,5,160,225,192,0,0,0,5,5,188,228,5,5,166,248,192,0,0,0,192,0,0,0,5,5,58,226,5,5,124,229,5,5,14,238,5,5,108,234,192,0,0,0,5,5,106,225,192,0,0,0,5,5,155,224,192,0,0,0,5,5,162,248,192,0,0,0,5,5,163,248,5,5,246,232,192,0,0,0,5,5,167,248,192,0,0,0,192,0,0,0,5,5,168,248,192,0,0,0,5,5,171,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,248,192,0,0,0,192,0,0,0,5,5,173,248,5,5,172,248,192,0,0,0,192,0,0,0,5,5,165,248,192,0,0,0,5,5,118,229,192,0,0,0,5,5,11,225,192,0,0,0,5,5,170,248,192,0,0,0,192,0,0,0,5,5,43,232,192,0,0,0,5,5,98,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,227,192,0,0,0,192,0,0,0,5,5,174,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,224,5,5,16,228,192,0,0,0,5,5,223,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,248,5,5,179,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,227,5,5,184,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,248,5,5,176,248,5,5,180,248,5,5,137,230,5,5,182,248,5,5,185,248,5,5,178,248,5,5,109,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,235,192,0,0,0,192,0,0,0,5,5,186,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,238,5,5,204,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,248,192,0,0,0,5,5,80,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,226,5,5,191,248,192,0,0,0,192,0,0,0,5,5,190,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,248,5,5,193,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,229,192,0,0,0,192,0,0,0,5,5,211,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,248,192,0,0,0,5,5,196,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,248,5,5,195,248,192,0,0,0,192,0,0,0,5,5,198,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,248,5,5,217,227,192,0,0,0,192,0,0,0,5,5,202,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,224,5,5,206,248,5,5,205,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,230,5,5,13,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,229,5,5,244,248,5,5,63,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,248,5,5,235,229,192,0,0,0,192,0,0,0,5,5,235,231,192,0,0,0,5,5,80,225,5,5,99,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,248,5,5,247,248,5,5,249,248,5,5,214,233,192,0,0,0,192,0,0,0,5,5,250,248,192,0,0,0,5,5,19,237,5,5,238,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,230,192,0,0,0,192,0,0,0,5,5,5,230,5,5,251,248,5,5,216,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,225,192,0,0,0,192,0,0,0,5,5,252,248,5,5,253,248,5,5,215,228,192,0,0,0,192,0,0,0,5,5,254,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,249,192,0,0,0,5,5,255,248,5,5,4,249,192,0,0,0,5,5,175,227,192,0,0,0,5,5,2,249,5,5,3,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,226,5,5,35,234,5,5,6,249,192,0,0,0,5,5,150,224,192,0,0,0,192,0,0,0,5,5,217,230,192,0,0,0,192,0,0,0,5,5,53,237,5,5,67,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,249,192,0,0,0,192,0,0,0,5,5,45,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,233,192,0,0,0,5,5,243,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,243,5,5,236,228,5,5,244,243,5,5,158,227,5,5,245,243,5,5,67,235,5,5,246,243,5,5,14,237,5,5,38,228,5,5,247,243,5,5,248,243,5,5,61,228,5,5,178,232,5,5,203,234,5,5,249,243,192,0,0,0,5,5,57,225,5,5,250,243,5,5,242,232,5,5,205,226,5,5,47,231,192,0,0,0,5,5,75,238,5,5,130,230,5,5,109,226,5,5,203,237,5,5,222,234,5,5,90,226,192,0,0,0,192,0,0,0,5,5,106,231,5,5,251,243,5,5,87,235,5,5,252,243,5,5,253,243,5,5,254,243,5,5,255,229,5,5,87,238,5,5,48,233,5,5,48,235,5,5,189,237,5,5,227,237,5,5,255,243,5,5,0,203,5,5,2,244,5,5,3,244,5,5,28,233,5,5,131,236,5,5,217,228,5,5,4,244,5,5,0,209,5,5,190,232,5,5,175,228,5,5,5,244,5,5,166,232,192,0,0,0,5,5,6,244,5,5,246,227,5,5,236,226,5,5,216,235,5,5,7,244,5,5,143,230,5,5,38,229,5,5,152,228,5,5,109,234,5,5,8,244,5,5,9,244,5,5,28,229,5,5,187,235,192,0,0,0,5,5,227,233,5,5,44,234,5,5,60,228,5,5,10,244,5,5,24,228,5,5,205,235,5,5,11,244,192,0,0,0,5,5,206,235,5,5,12,244,5,5,13,244,5,5,60,225,5,5,14,244,5,5,15,244,5,5,62,233,5,5,196,234,5,5,230,230,5,5,17,244,5,5,31,224,5,5,13,225,192,0,0,0,5,5,18,244,5,5,19,244,5,5,73,238,5,5,112,237,5,5,20,244,5,5,116,230,5,5,40,238,5,5,21,244,5,5,22,244,5,5,23,244,5,5,90,228,5,5,235,230,5,5,172,229,5,5,24,244,5,5,25,244,5,5,25,228,192,0,0,0,5,5,26,244,5,5,27,244,5,5,16,244,5,5,8,226,5,5,28,244,192,0,0,0,5,5,29,244,5,5,30,244,5,5,202,227,5,5,182,225,5,5,110,230,5,5,62,224,5,5,31,244,5,5,7,237,5,5,32,244,5,5,179,226,5,5,34,244,5,5,33,244,5,5,130,226,192,0,0,0,5,5,35,244,5,5,180,224,5,5,36,244,5,5,37,244,5,5,38,244,5,5,39,244,5,5,40,244,5,5,41,244,5,5,42,244,5,5,153,236,5,5,241,233,5,5,43,244,5,5,44,244,5,5,45,244,5,5,46,244,5,5,9,233,5,5,47,244,5,5,48,244,5,5,49,244,5,5,50,244,5,5,51,244,5,5,151,228,5,5,52,244,5,5,136,248,192,0,0,0,5,5,203,226,192,0,0,0,5,5,145,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,248,192,0,0,0,5,5,138,248,5,5,139,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,227,5,5,178,234,192,0,0,0,192,0,0,0,5,5,180,238,5,5,99,227,192,0,0,0,5,5,134,230,5,5,167,246,192,0,0,0,5,5,57,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,246,192,0,0,0,5,5,168,246,5,5,0,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,246,5,5,134,237,5,5,93,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,237,192,0,0,0,192,0,0,0,5,5,173,246,5,5,142,233,192,0,0,0,5,5,172,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,246,192,0,0,0,192,0,0,0,5,5,175,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,236,192,0,0,0,5,5,62,232,192,0,0,0,5,5,198,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,230,192,0,0,0,192,0,0,0,5,5,238,248,5,5,181,235,5,5,239,248,192,0,0,0,5,5,83,235,192,0,0,0,192,0,0,0,5,5,154,232,192,0,0,0,192,0,0,0,5,5,240,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,248,5,5,242,248,192,0,0,0,5,5,243,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,239,5,5,242,226,192,0,0,0,192,0,0,0,5,5,141,243,5,5,226,236,192,0,0,0,5,5,10,249,192,0,0,0,5,5,228,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,247,192,0,0,0,5,5,130,236,192,0,0,0,5,5,11,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,235,5,5,12,249,192,0,0,0,192,0,0,0,5,5,78,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,225,5,5,94,225,5,5,14,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,249,5,5,15,249,192,0,0,0,192,0,0,0,5,5,16,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,249,192,0,0,0,5,5,100,227,5,5,0,157,192,0,0,0,5,5,18,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,226,5,5,129,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,236,5,5,185,229,192,0,0,0,5,5,72,229,5,5,119,245,5,5,143,237,5,5,62,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,247,5,5,48,226,5,5,159,233,192,0,0,0,192,0,0,0,5,5,51,231,192,0,0,0,5,5,243,247,192,0,0,0,5,5,244,247,5,5,239,226,5,5,245,247,5,5,118,227,5,5,23,237,5,5,0,176,192,0,0,0,192,0,0,0,5,5,246,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,247,192,0,0,0,5,5,248,247,192,0,0,0,192,0,0,0,5,5,249,247,5,5,250,247,5,5,251,247,5,5,253,247,5,5,252,247,5,5,153,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,247,192,0,0,0,5,5,50,226,192,0,0,0,5,5,2,248,5,5,66,236,5,5,203,240,5,5,198,233,192,0,0,0,192,0,0,0,5,5,246,224,192,0,0,0,5,5,122,225,192,0,0,0,5,5,244,226,192,0,0,0,192,0,0,0,5,5,90,231,5,5,3,248,192,0,0,0,192,0,0,0,5,5,4,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,230,5,5,69,230,5,5,190,237,5,5,5,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,248,192,0,0,0,5,5,242,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,231,192,0,0,0,5,5,9,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,248,5,5,73,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,246,5,5,67,246,192,0,0,0,192,0,0,0,5,5,220,233,5,5,114,236,192,0,0,0,5,5,189,233,5,5,136,237,192,0,0,0,5,5,194,232,192,0,0,0,5,5,201,229,5,5,17,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,245,192,0,0,0,192,0,0,0,5,5,122,235,192,0,0,0,5,5,240,237,192,0,0,0,5,5,253,225,5,5,204,226,5,5,148,245,5,5,194,226,192,0,0,0,5,5,147,245,5,5,192,224,5,5,29,227,5,5,185,237,192,0,0,0,5,5,138,226,5,5,96,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,228,5,5,84,226,5,5,154,245,192,0,0,0,5,5,155,245,5,5,0,151,5,5,91,229,192,0,0,0,5,5,153,245,5,5,239,236,192,0,0,0,5,5,156,245,192,0,0,0,192,0,0,0,5,5,157,245,192,0,0,0,192,0,0,0,5,5,100,226,192,0,0,0,5,5,150,245,5,5,152,245,5,5,54,233,5,5,229,237,5,5,125,237,5,5,136,235,5,5,163,245,5,5,208,234,5,5,164,245,192,0,0,0,5,5,128,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,224,5,5,166,245,5,5,255,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,231,5,5,167,245,192,0,0,0,5,5,165,245,5,5,163,231,5,5,162,245,5,5,66,233,5,5,169,245,5,5,0,217,192,0,0,0,192,0,0,0,5,5,172,227,192,0,0,0,192,0,0,0,5,5,131,238,5,5,239,247,192,0,0,0,5,5,158,245,5,5,159,245,5,5,160,245,5,5,161,245,5,5,170,245,5,5,186,243,5,5,173,245,192,0,0,0,5,5,116,229,5,5,92,236,5,5,171,245,5,5,176,245,5,5,224,226,5,5,172,245,192,0,0,0,5,5,136,228,192,0,0,0,5,5,174,235,192,0,0,0,5,5,0,149,192,0,0,0,5,5,177,245,5,5,66,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,225,192,0,0,0,192,0,0,0,5,5,158,230,5,5,41,228,192,0,0,0,192,0,0,0,5,5,174,245,5,5,175,245,5,5,50,237,5,5,14,232,5,5,58,231,5,5,179,245,5,5,107,231,5,5,33,239,192,0,0,0,5,5,109,224,192,0,0,0,5,5,184,245,192,0,0,0,5,5,147,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,245,192,0,0,0,192,0,0,0,5,5,160,226,192,0,0,0,5,5,139,234,5,5,185,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,245,192,0,0,0,5,5,251,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,234,192,0,0,0,5,5,186,245,192,0,0,0,5,5,154,229,5,5,76,236,5,5,187,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,226,5,5,161,226,192,0,0,0,5,5,188,245,5,5,61,232,5,5,173,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,245,5,5,191,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,235,192,0,0,0,5,5,198,245,192,0,0,0,5,5,194,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,245,5,5,217,232,192,0,0,0,5,5,50,236,5,5,192,245,192,0,0,0,192,0,0,0,5,5,189,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,226,5,5,81,235,5,5,75,231,5,5,195,245,5,5,196,245,5,5,54,234,5,5,130,234,5,5,0,208,192,0,0,0,5,5,202,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,245,192,0,0,0,5,5,110,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,226,192,0,0,0,5,5,203,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,224,192,0,0,0,192,0,0,0,5,5,33,234,5,5,10,231,5,5,29,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,245,192,0,0,0,192,0,0,0,5,5,212,245,192,0,0,0,5,5,182,231,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,242,5,5,210,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,234,5,5,211,245,5,5,57,224,5,5,169,236,192,0,0,0,192,0,0,0,5,5,112,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,245,192,0,0,0,5,5,207,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,245,192,0,0,0,192,0,0,0,5,5,66,238,192,0,0,0,5,5,211,248,5,5,16,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,237,5,5,208,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,237,5,5,246,228,192,0,0,0,5,5,207,248,192,0,0,0,5,5,60,236,5,5,208,248,5,5,209,248,192,0,0,0,5,5,210,248,5,5,247,228,5,5,209,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,233,5,5,33,233,192,0,0,0,192,0,0,0,5,5,140,248,192,0,0,0,5,5,132,233,192,0,0,0,5,5,78,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,242,5,5,176,233,192,0,0,0,5,5,2,235,5,5,233,237,192,0,0,0,5,5,213,248,5,5,214,248,5,5,215,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,248,192,0,0,0,5,5,111,227,5,5,219,248,5,5,0,193,5,5,216,248,192,0,0,0,5,5,217,248,5,5,112,228,5,5,145,224,192,0,0,0,5,5,222,248,5,5,223,248,5,5,30,226,5,5,108,224,5,5,71,235,5,5,220,248,5,5,38,225,192,0,0,0,5,5,221,248,192,0,0,0,192,0,0,0,5,5,224,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,248,192,0,0,0,192,0,0,0,5,5,97,234,192,0,0,0,5,5,226,248,192,0,0,0,5,5,227,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,233,192,0,0,0,5,5,229,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,249,5,5,6,230,5,5,88,228,192,0,0,0,5,5,233,232,5,5,20,236,5,5,145,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,239,5,5,105,236,192,0,0,0,192,0,0,0,5,5,250,239,5,5,0,138,5,5,251,239,192,0,0,0,192,0,0,0,5,5,168,228,192,0,0,0,5,5,255,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,238,192,0,0,0,5,5,253,239,5,5,229,236,192,0,0,0,5,5,22,233,5,5,2,240,5,5,252,239,192,0,0,0,5,5,3,240,5,5,168,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,240,5,5,13,240,5,5,5,240,192,0,0,0,192,0,0,0,5,5,247,234,5,5,179,237,192,0,0,0,5,5,23,240,192,0,0,0,5,5,21,240,192,0,0,0,192,0,0,0,5,5,26,240,5,5,180,228,5,5,83,230,192,0,0,0,5,5,254,239,5,5,19,240,5,5,22,240,5,5,6,240,5,5,104,226,5,5,0,163,5,5,15,240,5,5,148,235,5,5,9,240,5,5,184,227,192,0,0,0,5,5,82,226,5,5,20,240,192,0,0,0,192,0,0,0,5,5,14,240,5,5,7,240,5,5,93,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,235,5,5,8,240,192,0,0,0,192,0,0,0,5,5,18,240,192,0,0,0,192,0,0,0,5,5,24,240,192,0,0,0,192,0,0,0,5,5,197,234,5,5,10,240,192,0,0,0,5,5,11,240,5,5,16,240,5,5,17,240,5,5,144,224,5,5,25,240,5,5,209,233,192,0,0,0,5,5,9,237,5,5,35,240,5,5,39,240,5,5,2,234,5,5,46,240,192,0,0,0,5,5,237,230,5,5,36,240,192,0,0,0,192,0,0,0,5,5,77,229,5,5,33,240,192,0,0,0,5,5,0,216,5,5,10,227,5,5,45,240,5,5,27,240,192,0,0,0,5,5,12,240,5,5,30,240,5,5,212,232,5,5,108,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,224,192,0,0,0,5,5,148,236,192,0,0,0,192,0,0,0,5,5,34,240,192,0,0,0,192,0,0,0,5,5,29,240,192,0,0,0,5,5,221,231,192,0,0,0,5,5,38,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,238,5,5,181,230,5,5,76,226,5,5,83,232,5,5,175,230,5,5,42,240,5,5,32,240,5,5,51,240,5,5,28,240,192,0,0,0,192,0,0,0,5,5,37,240,192,0,0,0,5,5,209,228,5,5,31,240,192,0,0,0,5,5,40,240,192,0,0,0,192,0,0,0,5,5,43,240,5,5,44,240,192,0,0,0,5,5,64,240,192,0,0,0,192,0,0,0,5,5,41,240,5,5,72,240,5,5,47,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,228,5,5,62,225,192,0,0,0,192,0,0,0,5,5,169,230,5,5,163,224,5,5,66,240,192,0,0,0,5,5,58,240,192,0,0,0,5,5,55,240,192,0,0,0,5,5,68,240,5,5,54,240,5,5,132,236,5,5,164,224,192,0,0,0,5,5,183,232,5,5,195,232,5,5,67,240,192,0,0,0,5,5,53,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,240,192,0,0,0,192,0,0,0,5,5,61,240,192,0,0,0,192,0,0,0,5,5,207,228,5,5,60,240,192,0,0,0,5,5,153,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,240,5,5,102,228,5,5,48,240,5,5,212,227,192,0,0,0,5,5,221,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,228,5,5,49,240,5,5,50,240,192,0,0,0,5,5,57,240,5,5,62,240,5,5,65,240,5,5,140,225,192,0,0,0,5,5,185,232,5,5,247,227,5,5,70,240,5,5,69,240,5,5,157,236,5,5,71,240,5,5,73,240,5,5,75,240,5,5,133,236,5,5,74,240,5,5,76,240,5,5,77,240,5,5,61,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,227,5,5,79,240,192,0,0,0,192,0,0,0,5,5,92,240,5,5,87,240,5,5,90,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,240,5,5,240,231,192,0,0,0,192,0,0,0,5,5,220,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,240,5,5,84,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,240,192,0,0,0,192,0,0,0,5,5,56,240,5,5,85,240,192,0,0,0,5,5,94,240,192,0,0,0,5,5,82,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,240,5,5,89,240,5,5,83,240,5,5,16,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,240,5,5,157,229,5,5,243,229,5,5,80,240,5,5,81,240,192,0,0,0,5,5,88,240,5,5,3,228,5,5,91,240,5,5,154,236,5,5,96,240,192,0,0,0,5,5,97,240,5,5,173,230,192,0,0,0,192,0,0,0,5,5,120,240,5,5,98,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,240,192,0,0,0,5,5,17,227,192,0,0,0,192,0,0,0,5,5,3,229,192,0,0,0,5,5,40,229,192,0,0,0,192,0,0,0,5,5,124,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,240,192,0,0,0,5,5,107,240,192,0,0,0,5,5,101,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,224,5,5,105,240,192,0,0,0,5,5,113,240,5,5,96,224,5,5,123,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,231,5,5,118,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,240,5,5,44,230,5,5,92,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,240,5,5,117,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,240,192,0,0,0,5,5,115,240,5,5,45,234,192,0,0,0,5,5,111,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,240,5,5,206,230,5,5,222,231,5,5,198,234,5,5,114,240,192,0,0,0,5,5,110,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,240,5,5,132,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,236,5,5,156,236,5,5,121,240,5,5,108,235,5,5,216,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,240,5,5,140,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,238,192,0,0,0,5,5,127,240,5,5,126,240,5,5,228,226,5,5,124,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,231,192,0,0,0,5,5,227,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,240,192,0,0,0,5,5,171,227,5,5,51,237,5,5,141,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,225,192,0,0,0,5,5,128,240,192,0,0,0,5,5,135,229,5,5,137,240,192,0,0,0,5,5,133,240,192,0,0,0,5,5,131,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,240,5,5,130,240,5,5,132,240,192,0,0,0,5,5,125,228,5,5,138,240,192,0,0,0,5,5,139,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,240,192,0,0,0,5,5,207,230,192,0,0,0,192,0,0,0,5,5,222,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,238,192,0,0,0,192,0,0,0,5,5,243,231,192,0,0,0,5,5,154,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,237,5,5,153,240,5,5,150,240,192,0,0,0,192,0,0,0,5,5,146,240,192,0,0,0,5,5,149,240,192,0,0,0,5,5,142,240,192,0,0,0,192,0,0,0,5,5,196,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,232,5,5,148,240,192,0,0,0,192,0,0,0,5,5,143,240,192,0,0,0,192,0,0,0,5,5,144,240,5,5,238,233,192,0,0,0,5,5,147,240,192,0,0,0,192,0,0,0,5,5,43,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,229,192,0,0,0,5,5,43,228,5,5,151,240,192,0,0,0,192,0,0,0,5,5,157,240,192,0,0,0,5,5,156,240,5,5,145,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,5,5,167,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,230,192,0,0,0,5,5,163,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,237,192,0,0,0,192,0,0,0,5,5,205,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,240,192,0,0,0,5,5,136,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,231,5,5,125,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,232,5,5,160,240,5,5,162,240,5,5,164,240,5,5,166,240,5,5,0,136,5,5,44,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,240,5,5,132,228,5,5,207,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,240,192,0,0,0,192,0,0,0,5,5,169,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,240,192,0,0,0,5,5,30,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,240,5,5,174,240,5,5,178,240,192,0,0,0,192,0,0,0,5,5,195,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,221,5,5,186,240,192,0,0,0,5,5,181,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,235,5,5,185,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,240,192,0,0,0,5,5,147,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,240,5,5,139,233,5,5,189,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,240,192,0,0,0,5,5,187,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,224,5,5,240,230,192,0,0,0,192,0,0,0,5,5,190,240,192,0,0,0,5,5,126,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,240,192,0,0,0,5,5,196,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,248,5,5,178,227,5,5,90,230,5,5,116,231,5,5,111,230,192,0,0,0,192,0,0,0,5,5,27,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,225,5,5,28,248,192,0,0,0,5,5,29,248,192,0,0,0,192,0,0,0,5,5,75,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,227,5,5,31,248,5,5,33,248,5,5,32,248,5,5,224,233,5,5,50,235,5,5,30,248,5,5,82,233,5,5,99,236,5,5,148,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,234,5,5,36,248,5,5,0,212,5,5,35,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,248,192,0,0,0,5,5,139,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,235,5,5,38,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,248,5,5,59,237,192,0,0,0,192,0,0,0,5,5,39,248,5,5,34,248,5,5,43,248,5,5,41,248,192,0,0,0,5,5,37,248,192,0,0,0,192,0,0,0,5,5,51,248,5,5,48,248,5,5,50,248,192,0,0,0,192,0,0,0,5,5,54,248,5,5,46,248,5,5,44,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,248,192,0,0,0,5,5,123,232,5,5,31,233,192,0,0,0,5,5,52,248,5,5,26,227,5,5,136,225,192,0,0,0,192,0,0,0,5,5,47,248,5,5,53,248,5,5,60,248,5,5,66,248,192,0,0,0,192,0,0,0,5,5,231,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,248,5,5,150,234,192,0,0,0,5,5,249,237,192,0,0,0,192,0,0,0,5,5,62,248,5,5,64,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,248,5,5,161,230,192,0,0,0,5,5,141,237,5,5,56,248,5,5,57,248,5,5,59,248,5,5,63,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,248,5,5,174,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,226,192,0,0,0,5,5,143,233,192,0,0,0,5,5,122,226,5,5,67,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,248,5,5,70,248,5,5,73,248,5,5,71,248,192,0,0,0,192,0,0,0,5,5,72,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,236,5,5,61,248,192,0,0,0,5,5,131,234,192,0,0,0,5,5,231,234,5,5,183,237,192,0,0,0,5,5,79,248,192,0,0,0,5,5,225,230,192,0,0,0,5,5,76,248,192,0,0,0,192,0,0,0,5,5,153,229,5,5,88,248,5,5,74,248,192,0,0,0,5,5,77,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,248,192,0,0,0,192,0,0,0,5,5,83,248,192,0,0,0,192,0,0,0,5,5,82,248,192,0,0,0,192,0,0,0,5,5,85,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,248,192,0,0,0,192,0,0,0,5,5,80,248,5,5,86,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,236,5,5,81,248,5,5,177,224,192,0,0,0,192,0,0,0,5,5,94,248,192,0,0,0,5,5,129,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,227,192,0,0,0,5,5,101,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,248,192,0,0,0,192,0,0,0,5,5,98,248,5,5,100,248,5,5,102,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,248,192,0,0,0,5,5,93,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,227,192,0,0,0,5,5,211,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,248,5,5,99,248,5,5,89,248,5,5,90,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,248,5,5,112,248,192,0,0,0,5,5,109,248,192,0,0,0,192,0,0,0,5,5,108,248,192,0,0,0,192,0,0,0,5,5,96,248,192,0,0,0,5,5,186,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,248,192,0,0,0,192,0,0,0,5,5,113,248,5,5,115,248,5,5,110,248,192,0,0,0,5,5,104,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,248,192,0,0,0,5,5,116,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,230,192,0,0,0,192,0,0,0,5,5,120,248,192,0,0,0,192,0,0,0,5,5,122,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,248,5,5,118,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,248,5,5,106,248,5,5,119,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,248,192,0,0,0,5,5,196,232,5,5,128,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,248,5,5,58,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,248,192,0,0,0,192,0,0,0,5,5,135,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,248,5,5,156,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,235,5,5,18,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,235,192,0,0,0,192,0,0,0,5,5,164,228,192,0,0,0,5,5,247,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,227,5,5,11,242,5,5,86,236,5,5,206,247,5,5,117,224,192,0,0,0,192,0,0,0,5,5,75,224,5,5,207,247,192,0,0,0,5,5,254,232,5,5,222,224,192,0,0,0,5,5,30,239,192,0,0,0,5,5,161,233,192,0,0,0,5,5,208,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,247,5,5,232,248,5,5,210,247,192,0,0,0,5,5,252,236,5,5,211,247,192,0,0,0,5,5,0,158,5,5,233,248,192,0,0,0,192,0,0,0,5,5,234,248,192,0,0,0,192,0,0,0,5,5,118,225,192,0,0,0,5,5,159,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,247,192,0,0,0,5,5,31,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,224,192,0,0,0,5,5,38,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,224,5,5,27,230,192,0,0,0,192,0,0,0,5,5,30,238,5,5,213,247,192,0,0,0,192,0,0,0,5,5,216,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,239,192,0,0,0,5,5,117,236,5,5,243,236,192,0,0,0,192,0,0,0,5,5,235,248,5,5,153,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,248,192,0,0,0,192,0,0,0,5,5,217,247,5,5,219,247,5,5,111,229,5,5,220,247,192,0,0,0,192,0,0,0,5,5,224,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,247,5,5,221,247,192,0,0,0,5,5,17,233,5,5,165,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,230,5,5,80,227,192,0,0,0,192,0,0,0,5,5,223,247,192,0,0,0,5,5,225,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,227,192,0,0,0,5,5,0,219,5,5,229,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,247,5,5,222,247,5,5,230,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,234,5,5,233,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,247,192,0,0,0,5,5,234,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,247,192,0,0,0,192,0,0,0,5,5,93,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,248,5,5,193,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,235,192,0,0,0,5,5,62,236,192,0,0,0,5,5,9,248,192,0,0,0,192,0,0,0,5,5,166,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,228,5,5,47,227,192,0,0,0,5,5,58,227,5,5,223,230,5,5,113,233,5,5,94,245,5,5,170,229,5,5,35,229,5,5,95,245,5,5,96,245,5,5,97,245,192,0,0,0,5,5,98,245,5,5,99,245,5,5,100,245,5,5,101,245,5,5,149,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,249,192,0,0,0,5,5,134,249,192,0,0,0,5,5,132,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,228,192,0,0,0,5,5,135,249,5,5,31,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,236,5,5,56,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,239,5,5,54,228,5,5,223,225,5,5,176,226,5,5,175,232,5,5,21,228,5,5,48,239,5,5,49,239,5,5,50,234,5,5,163,232,5,5,50,239,5,5,33,232,192,0,0,0,5,5,233,235,5,5,125,236,5,5,234,235,5,5,55,228,192,0,0,0,5,5,128,228,5,5,244,227,5,5,51,239,5,5,52,239,5,5,252,235,5,5,53,239,5,5,195,235,5,5,39,226,5,5,131,230,192,0,0,0,5,5,203,233,5,5,131,226,5,5,40,233,5,5,89,226,5,5,37,229,5,5,178,237,5,5,54,239,5,5,55,239,5,5,226,231,5,5,85,238,5,5,84,233,192,0,0,0,5,5,89,237,5,5,219,233,5,5,159,237,5,5,56,239,5,5,237,237,5,5,68,225,5,5,58,239,5,5,57,239,192,0,0,0,5,5,127,236,5,5,59,239,5,5,60,239,5,5,61,239,5,5,114,233,5,5,62,239,5,5,73,233,5,5,63,239,5,5,64,239,5,5,233,224,5,5,253,237,5,5,65,239,5,5,192,227,5,5,134,225,5,5,66,239,5,5,67,239,5,5,66,227,5,5,227,235,5,5,124,236,5,5,68,239,5,5,183,226,5,5,98,235,5,5,171,224,5,5,69,239,5,5,70,239,192,0,0,0,5,5,185,228,5,5,244,234,5,5,225,236,5,5,71,239,5,5,13,235,5,5,72,239,5,5,199,236,5,5,245,227,5,5,73,239,5,5,177,233,5,5,204,233,5,5,74,239,5,5,109,232,5,5,252,237,5,5,75,239,5,5,121,231,5,5,247,225,5,5,76,239,5,5,98,226,5,5,90,229,5,5,77,239,5,5,78,239,5,5,169,233,5,5,79,239,5,5,207,225,5,5,80,239,5,5,12,230,5,5,41,238,5,5,81,239,5,5,20,234,192,0,0,0,5,5,126,236,5,5,23,231,5,5,82,239,5,5,213,225,5,5,225,227,5,5,83,239,5,5,137,235,5,5,84,239,5,5,85,239,5,5,213,234,5,5,86,239,5,5,87,239,5,5,88,239,5,5,179,224,5,5,91,239,5,5,89,239,5,5,30,236,5,5,90,239,5,5,219,230,5,5,92,239,192,0,0,0,5,5,93,239,5,5,94,239,5,5,95,239,5,5,145,235,5,5,57,236,5,5,0,215,5,5,96,239,5,5,45,232,5,5,97,239,5,5,197,228,5,5,167,230,5,5,98,239,5,5,99,239,5,5,5,231,5,5,19,234,5,5,100,239,5,5,101,239,5,5,168,229,5,5,249,231,5,5,102,239,5,5,103,239,5,5,54,232,5,5,104,239,5,5,105,239,5,5,28,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,225,5,5,34,249,192,0,0,0,5,5,35,249,192,0,0,0,192,0,0,0,5,5,157,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,235,5,5,207,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,227,5,5,245,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,249,5,5,8,224,5,5,174,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,249,192,0,0,0,192,0,0,0,5,5,127,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,227,5,5,126,249,192,0,0,0,5,5,184,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,224,5,5,154,237,5,5,174,226,192,0,0,0,5,5,5,227,5,5,130,224,5,5,66,237,5,5,69,235,5,5,0,186,5,5,123,237,5,5,7,228,5,5,216,237,5,5,77,226,5,5,12,234,5,5,216,231,5,5,63,224,5,5,14,227,5,5,12,238,5,5,53,227,5,5,55,226,5,5,106,228,5,5,80,245,5,5,81,245,5,5,85,234,5,5,71,227,5,5,82,245,5,5,117,225,5,5,185,230,5,5,103,226,5,5,138,227,5,5,83,245,5,5,70,237,5,5,84,245,5,5,70,228,5,5,239,227,5,5,85,245,5,5,40,230,5,5,96,230,5,5,49,237,5,5,56,238,5,5,86,245,5,5,87,245,5,5,90,245,5,5,88,245,5,5,89,245,5,5,30,233,5,5,167,226,5,5,250,225,5,5,91,245,5,5,136,233,5,5,13,233,5,5,71,225,192,0,0,0,192,0,0,0,5,5,89,242,5,5,166,231,5,5,92,245,5,5,159,229,192,0,0,0,5,5,38,238,5,5,93,245,5,5,26,238,5,5,220,232,5,5,159,238,5,5,153,238,5,5,48,237,192,0,0,0,5,5,75,237,5,5,4,233,5,5,160,236,5,5,199,226,5,5,250,224,192,0,0,0,5,5,34,233,5,5,32,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,227,192,0,0,0,5,5,33,249,192,0,0,0,192,0,0,0,5,5,77,238,192,0,0,0,192,0,0,0,5,5,27,249,5,5,164,226,5,5,132,237,5,5,195,226,5,5,20,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,224,192,0,0,0,192,0,0,0,5,5,28,249,5,5,198,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,237,5,5,121,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,249,192,0,0,0,192,0,0,0,5,5,29,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,249,192,0,0,0,5,5,81,238,5,5,131,231,5,5,72,249,192,0,0,0,192,0,0,0,5,5,67,249,192,0,0,0,5,5,75,249,192,0,0,0,5,5,74,249,192,0,0,0,5,5,200,237,5,5,73,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,237,5,5,76,249,192,0,0,0,5,5,84,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,173,5,5,208,225,192,0,0,0,5,5,81,249,5,5,82,249,192,0,0,0,5,5,160,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,249,5,5,78,249,192,0,0,0,192,0,0,0,5,5,79,249,5,5,83,249,192,0,0,0,5,5,14,229,5,5,80,249,5,5,238,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,249,5,5,91,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,229,192,0,0,0,5,5,70,227,5,5,68,249,5,5,85,249,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,234,192,0,0,0,5,5,105,228,192,0,0,0,5,5,86,249,5,5,87,249,5,5,89,249,5,5,29,226,5,5,90,249,192,0,0,0,5,5,93,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,249,5,5,173,236,192,0,0,0,5,5,8,225,192,0,0,0,192,0,0,0,5,5,254,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,249,5,5,15,229,5,5,96,249,192,0,0,0,192,0,0,0,5,5,59,234,5,5,99,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,224,5,5,71,238,192,0,0,0,5,5,97,249,192,0,0,0,5,5,98,249,5,5,100,249,192,0,0,0,5,5,106,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,249,5,5,101,249,192,0,0,0,192,0,0,0,5,5,105,249,192,0,0,0,192,0,0,0,5,5,102,249,5,5,108,249,5,5,109,249,192,0,0,0,5,5,63,234,192,0,0,0,192,0,0,0,5,5,91,243,5,5,144,225,5,5,107,249,5,5,112,249,5,5,253,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,249,5,5,111,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,224,192,0,0,0,192,0,0,0,5,5,71,249,192,0,0,0,192,0,0,0,5,5,157,225,5,5,160,224,192,0,0,0,5,5,116,249,5,5,113,249,192,0,0,0,5,5,15,226,192,0,0,0,5,5,117,249,192,0,0,0,5,5,114,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,249,192,0,0,0,192,0,0,0,5,5,84,225,192,0,0,0,5,5,60,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,249,192,0,0,0,5,5,21,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,249,5,5,121,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,249,192,0,0,0,5,5,123,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,233,5,5,252,226,192,0,0,0,192,0,0,0,5,5,125,232,192,0,0,0,192,0,0,0,5,5,27,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,224,5,5,80,237,5,5,64,227,5,5,207,235,192,0,0,0,5,5,5,245,5,5,24,238,5,5,6,245,5,5,126,230,5,5,205,232,5,5,150,227,5,5,7,245,5,5,8,245,5,5,9,245,5,5,239,237,5,5,10,245,5,5,11,245,5,5,13,245,5,5,12,245,5,5,14,245,5,5,15,245,5,5,99,232,5,5,16,245,5,5,42,237,5,5,17,245,5,5,156,228,192,0,0,0,5,5,18,245,5,5,19,245,5,5,157,228,5,5,20,245,5,5,156,226,5,5,8,230,5,5,21,245,5,5,16,224,5,5,228,227,5,5,73,227,5,5,22,245,192,0,0,0,5,5,23,245,5,5,24,245,5,5,25,245,5,5,142,226,5,5,29,228,192,0,0,0,5,5,130,233,5,5,144,241,5,5,255,236,5,5,53,235,5,5,103,237,5,5,26,245,5,5,142,237,5,5,27,245,5,5,151,235,5,5,16,227,192,0,0,0,5,5,65,225,5,5,55,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,224,5,5,69,224,192,0,0,0,5,5,70,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,224,5,5,200,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,243,192,0,0,0,192,0,0,0,5,5,61,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,230,5,5,105,225,192,0,0,0,192,0,0,0,5,5,42,232,5,5,202,236,192,0,0,0,5,5,29,232,5,5,236,235,192,0,0,0,5,5,81,227,5,5,157,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,236,192,0,0,0,5,5,29,237,5,5,202,228,192,0,0,0,5,5,94,243,5,5,75,226,5,5,95,243,192,0,0,0,192,0,0,0,5,5,201,227,5,5,146,237,192,0,0,0,5,5,198,228,5,5,8,237,5,5,189,234,5,5,244,229,5,5,243,224,192,0,0,0,192,0,0,0,5,5,82,234,192,0,0,0,5,5,98,243,5,5,96,243,5,5,100,243,192,0,0,0,5,5,102,243,5,5,99,243,5,5,167,225,5,5,234,231,192,0,0,0,5,5,212,225,5,5,97,243,192,0,0,0,5,5,148,233,192,0,0,0,192,0,0,0,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,230,5,5,35,224,5,5,19,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,238,192,0,0,0,192,0,0,0,5,5,133,234,5,5,201,233,5,5,104,233,5,5,47,234,5,5,104,243,5,5,103,243,5,5,76,231,192,0,0,0,192,0,0,0,5,5,213,235,5,5,235,235,5,5,105,243,192,0,0,0,5,5,108,243,192,0,0,0,5,5,114,234,5,5,254,237,5,5,107,243,5,5,181,225,192,0,0,0,5,5,120,234,192,0,0,0,5,5,109,243,5,5,240,225,192,0,0,0,192,0,0,0,5,5,98,234,5,5,56,227,192,0,0,0,5,5,99,233,5,5,235,224,5,5,213,233,5,5,62,237,5,5,110,243,5,5,128,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,243,5,5,120,225,5,5,114,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,243,5,5,112,243,192,0,0,0,5,5,113,236,192,0,0,0,192,0,0,0,5,5,135,230,5,5,36,224,192,0,0,0,5,5,212,236,192,0,0,0,192,0,0,0,5,5,21,226,5,5,232,233,192,0,0,0,5,5,115,243,192,0,0,0,192,0,0,0,5,5,232,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,224,192,0,0,0,5,5,44,226,5,5,118,243,5,5,116,243,5,5,117,243,5,5,152,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,236,5,5,120,243,192,0,0,0,192,0,0,0,5,5,122,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,243,5,5,52,232,192,0,0,0,5,5,55,236,192,0,0,0,192,0,0,0,5,5,119,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,237,5,5,138,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,243,5,5,95,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,243,192,0,0,0,5,5,58,224,5,5,49,236,192,0,0,0,5,5,126,243,5,5,128,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,243,192,0,0,0,192,0,0,0,5,5,129,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,236,192,0,0,0,5,5,163,225,192,0,0,0,5,5,57,244,192,0,0,0,5,5,127,239,192,0,0,0,5,5,130,239,192,0,0,0,5,5,128,239,192,0,0,0,5,5,129,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,239,5,5,165,235,5,5,45,231,192,0,0,0,192,0,0,0,5,5,0,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,235,192,0,0,0,5,5,131,239,192,0,0,0,5,5,188,236,5,5,92,227,5,5,138,239,5,5,115,232,192,0,0,0,5,5,134,239,5,5,133,239,5,5,27,233,5,5,135,239,192,0,0,0,5,5,137,239,5,5,76,238,5,5,136,239,5,5,36,230,192,0,0,0,192,0,0,0,5,5,141,239,192,0,0,0,192,0,0,0,5,5,230,236,192,0,0,0,192,0,0,0,5,5,143,239,5,5,140,239,192,0,0,0,5,5,144,239,192,0,0,0,192,0,0,0,5,5,138,228,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,229,5,5,139,239,5,5,142,239,5,5,177,237,192,0,0,0,5,5,145,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,239,5,5,148,239,5,5,116,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,229,5,5,147,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,239,5,5,25,237,5,5,123,224,192,0,0,0,192,0,0,0,5,5,151,239,192,0,0,0,5,5,77,227,192,0,0,0,5,5,152,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,225,5,5,153,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,226,192,0,0,0,5,5,154,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,239,5,5,157,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,239,192,0,0,0,5,5,158,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,239,192,0,0,0,192,0,0,0,5,5,162,239,192,0,0,0,192,0,0,0,5,5,193,236,5,5,36,249,5,5,119,232,5,5,49,238,5,5,168,231,5,5,38,249,5,5,39,249,5,5,37,249,192,0,0,0,5,5,242,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,235,192,0,0,0,192,0,0,0,5,5,105,226,192,0,0,0,192,0,0,0,5,5,31,237,5,5,6,234,192,0,0,0,192,0,0,0,5,5,42,249,5,5,41,249,5,5,90,227,5,5,40,249,5,5,210,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,249,5,5,188,229,192,0,0,0,5,5,6,225,192,0,0,0,5,5,100,234,5,5,45,249,5,5,43,249,5,5,130,228,5,5,48,249,192,0,0,0,5,5,49,249,5,5,155,228,5,5,190,230,5,5,109,229,5,5,221,233,5,5,50,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,249,5,5,47,249,5,5,86,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,249,192,0,0,0,5,5,54,225,192,0,0,0,5,5,91,238,192,0,0,0,5,5,81,225,5,5,51,249,5,5,54,249,192,0,0,0,192,0,0,0,5,5,53,249,5,5,55,249,5,5,167,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,230,5,5,137,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,249,5,5,57,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,249,192,0,0,0,192,0,0,0,5,5,59,249,5,5,60,249,5,5,61,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,249,5,5,62,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,224,192,0,0,0,5,5,198,236,5,5,107,233,192,0,0,0,5,5,217,229,5,5,230,237,5,5,68,236,5,5,9,230,192,0,0,0,5,5,190,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,246,5,5,181,246,5,5,182,246,5,5,155,237,5,5,218,225,5,5,184,246,5,5,183,246,5,5,185,246,5,5,186,246,5,5,39,232,5,5,187,246,5,5,188,246,192,0,0,0,5,5,70,226,5,5,206,225,5,5,189,246,5,5,191,246,192,0,0,0,5,5,190,246,192,0,0,0,5,5,186,226,5,5,192,246,5,5,193,246,5,5,194,246,5,5,19,226,5,5,200,224,5,5,225,237,5,5,44,231,5,5,19,224,5,5,202,226,5,5,195,246,5,5,196,246,5,5,17,237,5,5,87,232,5,5,41,229,5,5,241,234,5,5,7,227,5,5,198,246,5,5,197,246,5,5,200,246,5,5,199,246,5,5,105,231,5,5,201,246,5,5,202,246,5,5,48,232,5,5,203,246,5,5,49,232,5,5,204,246,5,5,99,224,5,5,205,246,5,5,206,246,5,5,207,246,5,5,208,246,5,5,209,246,5,5,88,238,5,5,210,246,5,5,211,246,5,5,72,228,5,5,212,246,5,5,189,236,5,5,86,234,5,5,104,224,5,5,47,230,5,5,213,246,5,5,40,232,5,5,179,230,192,0,0,0,5,5,214,246,5,5,215,246,5,5,216,246,5,5,217,246,5,5,218,246,5,5,219,246,5,5,220,246,192,0,0,0,5,5,221,246,5,5,222,246,5,5,223,246,192,0,0,0,192,0,0,0,5,5,224,246,5,5,225,246,5,5,226,246,5,5,228,246,5,5,227,246,192,0,0,0,5,5,229,246,5,5,103,234,5,5,105,230,5,5,230,246,5,5,231,246,5,5,232,246,5,5,81,237,5,5,233,246,5,5,43,235,5,5,234,246,5,5,235,246,192,0,0,0,5,5,236,246,5,5,237,246,5,5,239,246,5,5,238,246,5,5,240,246,5,5,233,226,5,5,2,231,5,5,241,246,5,5,242,246,5,5,144,228,5,5,83,236,5,5,181,224,5,5,243,246,5,5,244,246,5,5,245,246,5,5,140,236,5,5,246,246,5,5,13,238,5,5,247,246,5,5,238,231,192,0,0,0,5,5,248,246,5,5,249,246,5,5,252,229,5,5,250,246,5,5,114,235,5,5,244,233,5,5,252,246,5,5,251,246,5,5,22,225,5,5,76,227,5,5,253,246,5,5,254,246,5,5,184,235,5,5,255,246,5,5,2,247,5,5,124,226,5,5,149,235,5,5,3,247,5,5,4,247,5,5,5,247,5,5,209,232,5,5,60,234,5,5,6,247,5,5,7,247,5,5,8,247,5,5,9,247,5,5,10,247,5,5,144,237,5,5,11,247,5,5,103,225,5,5,176,230,5,5,12,247,192,0,0,0,5,5,13,247,5,5,14,247,5,5,15,247,192,0,0,0,5,5,23,235,5,5,16,247,5,5,136,230,5,5,50,225,5,5,36,238,5,5,195,228,192,0,0,0,5,5,63,235,5,5,19,247,5,5,17,247,5,5,18,247,5,5,20,247,5,5,221,225,5,5,108,228,5,5,16,229,5,5,210,230,5,5,21,247,5,5,22,247,192,0,0,0,5,5,23,247,5,5,31,247,5,5,24,247,5,5,25,247,5,5,26,247,5,5,68,232,5,5,65,247,5,5,5,226,5,5,27,247,192,0,0,0,5,5,28,247,5,5,29,247,5,5,252,225,5,5,196,230,5,5,30,247,192,0,0,0,5,5,32,247,5,5,33,247,5,5,34,247,5,5,162,237,192,0,0,0,5,5,35,247,5,5,93,231,192,0,0,0,5,5,36,247,5,5,94,231,5,5,37,247,5,5,38,247,5,5,216,226,5,5,0,213,5,5,39,247,5,5,40,247,5,5,41,247,192,0,0,0,5,5,42,247,5,5,43,247,5,5,44,247,5,5,45,247,192,0,0,0,5,5,46,247,5,5,225,228,5,5,49,247,5,5,47,247,5,5,48,247,192,0,0,0,5,5,50,247,5,5,51,247,5,5,23,230,5,5,52,247,5,5,53,247,5,5,54,247,5,5,55,247,5,5,56,247,5,5,57,247,5,5,58,247,5,5,59,247,5,5,60,247,5,5,194,229,192,0,0,0,5,5,61,247,5,5,245,229,5,5,62,247,5,5,63,247,5,5,64,247,192,0,0,0,192,0,0,0,5,5,90,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,230,5,5,163,242,5,5,255,232,5,5,164,242,192,0,0,0,5,5,51,224,5,5,226,234,5,5,45,225,5,5,210,232,5,5,165,242,5,5,72,235,5,5,166,242,5,5,84,228,5,5,167,242,5,5,168,242,5,5,204,230,5,5,82,237,5,5,60,231,5,5,63,227,5,5,221,234,5,5,169,242,5,5,252,230,5,5,170,242,192,0,0,0,5,5,61,226,5,5,231,226,5,5,132,227,5,5,171,242,5,5,172,242,5,5,22,237,5,5,173,242,192,0,0,0,5,5,174,242,5,5,255,235,5,5,175,242,5,5,176,242,5,5,177,242,5,5,178,242,5,5,12,236,5,5,179,242,5,5,183,224,5,5,165,229,5,5,180,242,192,0,0,0,5,5,149,229,5,5,181,242,5,5,182,242,5,5,183,242,192,0,0,0,5,5,184,242,5,5,185,242,192,0,0,0,5,5,171,226,5,5,108,239,192,0,0,0,5,5,11,226,192,0,0,0,5,5,110,239,5,5,109,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,232,192,0,0,0,192,0,0,0,5,5,111,239,5,5,86,226,5,5,42,236,5,5,137,236,5,5,163,237,5,5,165,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,238,5,5,114,239,5,5,113,239,192,0,0,0,5,5,0,128,5,5,141,234,192,0,0,0,5,5,115,239,192,0,0,0,5,5,177,226,5,5,58,228,5,5,101,230,5,5,76,230,5,5,220,224,5,5,116,239,192,0,0,0,5,5,82,230,5,5,22,231,5,5,131,228,192,0,0,0,192,0,0,0,5,5,86,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,239,5,5,2,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,239,192,0,0,0,5,5,238,225,5,5,12,237,192,0,0,0,5,5,25,225,192,0,0,0,192,0,0,0,5,5,119,239,5,5,27,237,5,5,77,235,5,5,167,231,192,0,0,0,5,5,120,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,239,192,0,0,0,5,5,122,239,5,5,52,230,5,5,49,234,5,5,85,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,236,5,5,73,230,192,0,0,0,5,5,123,239,192,0,0,0,192,0,0,0,5,5,225,233,192,0,0,0,5,5,124,239,192,0,0,0,5,5,226,233,5,5,146,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,5,5,125,239,5,5,0,141,5,5,46,235,192,0,0,0,192,0,0,0,5,5,127,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,239,192,0,0,0,192,0,0,0,5,5,162,242,192,0,0,0,192,0,0,0,5,5,237,229,192,0,0,0,192,0,0,0,5,5,165,249,192,0,0,0,192,0,0,0,5,5,166,249,5,5,167,249,5,5,55,231,192,0,0,0,5,5,152,232,5,5,25,236,192,0,0,0,192,0,0,0,5,5,177,235,5,5,249,235,5,5,31,228,5,5,33,227,192,0,0,0,5,5,68,247,192,0,0,0,192,0,0,0,5,5,64,225,5,5,172,236,5,5,168,249,5,5,23,225,192,0,0,0,192,0,0,0,5,5,169,249,192,0,0,0,192,0,0,0,5,5,201,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,236,5,5,141,249,5,5,221,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,249,192,0,0,0,192,0,0,0,5,5,45,230,5,5,193,229,192,0,0,0,5,5,0,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,235,192,0,0,0,5,5,190,235,5,5,145,249,192,0,0,0,192,0,0,0,5,5,110,235,192,0,0,0,5,5,144,249,5,5,160,237,5,5,146,249,5,5,191,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,228,5,5,148,249,5,5,147,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,231,192,0,0,0,192,0,0,0,5,5,34,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,233,192,0,0,0,5,5,52,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,249,192,0,0,0,192,0,0,0,5,5,150,249,192,0,0,0,192,0,0,0,5,5,151,249,192,0,0,0,5,5,94,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,178,5,5,189,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,232,5,5,140,249,192,0,0,0,192,0,0,0,5,5,228,228,192,0,0,0,192,0,0,0,5,5,222,228,192,0,0,0,5,5,189,225,192,0,0,0,192,0,0,0,5,5,93,226,192,0,0,0,5,5,75,229,5,5,216,230,5,5,236,230,192,0,0,0,192,0,0,0,5,5,152,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,228,5,5,217,235,192,0,0,0,5,5,0,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,235,192,0,0,0,5,5,0,142,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,249,5,5,247,249,192,0,0,0,5,5,248,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,228,192,0,0,0,192,0,0,0,5,5,251,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,249,192,0,0,0,5,5,60,224,192,0,0,0,5,5,249,249,192,0,0,0,192,0,0,0,5,5,252,249,192,0,0,0,5,5,253,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,234,5,5,173,232,192,0,0,0,5,5,93,227,5,5,112,244,5,5,113,244,5,5,114,244,5,5,238,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,236,192,0,0,0,5,5,33,237,5,5,24,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,236,5,5,219,225,5,5,108,232,5,5,10,248,5,5,102,235,5,5,175,233,5,5,193,235,5,5,73,244,5,5,161,234,5,5,31,227,5,5,17,226,5,5,11,248,5,5,0,194,5,5,200,233,5,5,12,248,5,5,244,236,5,5,85,230,5,5,54,230,5,5,230,231,5,5,221,228,5,5,13,248,5,5,69,228,192,0,0,0,5,5,14,248,5,5,15,248,192,0,0,0,5,5,16,248,5,5,87,236,5,5,215,231,192,0,0,0,5,5,129,234,5,5,17,248,192,0,0,0,5,5,163,236,5,5,81,229,5,5,62,234,192,0,0,0,5,5,18,248,5,5,19,248,5,5,11,236,5,5,38,226,5,5,20,248,5,5,21,248,5,5,183,225,5,5,22,248,5,5,23,248,192,0,0,0,5,5,184,224,5,5,24,248,5,5,25,248,5,5,135,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,226,192,0,0,0,192,0,0,0,5,5,219,245,5,5,220,245,5,5,221,245,192,0,0,0,5,5,222,245,192,0,0,0,192,0,0,0,5,5,208,231,5,5,223,245,5,5,224,245,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,226,5,5,81,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,242,5,5,21,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,250,192,0,0,0,192,0,0,0,5,5,137,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,250,5,5,24,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,242,192,0,0,0,5,5,18,228,192,0,0,0,5,5,60,242,5,5,61,242,5,5,62,242,5,5,63,242,5,5,64,242,5,5,65,242,5,5,79,226,5,5,143,236,5,5,114,228,5,5,108,233,5,5,3,224,5,5,195,233,192,0,0,0,5,5,66,242,5,5,52,226,5,5,164,232,5,5,67,242,192,0,0,0,192,0,0,0,5,5,150,228,192,0,0,0,5,5,91,224,5,5,68,242,192,0,0,0,5,5,46,226,5,5,69,242,5,5,63,231,192,0,0,0,192,0,0,0,5,5,70,242,5,5,82,235,5,5,49,227,5,5,71,242,5,5,139,229,192,0,0,0,5,5,72,242,5,5,178,224,192,0,0,0,5,5,73,242,192,0,0,0,5,5,61,230,5,5,74,242,5,5,75,242,5,5,160,230,5,5,76,242,5,5,77,242,5,5,78,242,5,5,117,233,5,5,132,238,5,5,17,239,5,5,91,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,247,192,0,0,0,192,0,0,0,5,5,246,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,230,5,5,246,236,5,5,142,234,5,5,229,235,5,5,245,224,5,5,127,232,192,0,0,0,5,5,113,224,5,5,103,230,5,5,218,243,5,5,89,233,5,5,219,243,5,5,220,243,5,5,2,229,5,5,221,243,5,5,18,238,5,5,143,234,5,5,223,243,5,5,77,228,5,5,222,243,5,5,224,243,5,5,225,243,5,5,150,230,192,0,0,0,5,5,140,228,5,5,226,243,5,5,142,230,5,5,89,227,5,5,227,243,192,0,0,0,5,5,228,243,5,5,236,224,5,5,31,236,192,0,0,0,192,0,0,0,5,5,49,229,5,5,229,243,5,5,19,232,5,5,230,243,5,5,231,243,192,0,0,0,192,0,0,0,5,5,232,243,5,5,207,231,5,5,233,243,192,0,0,0,5,5,229,232,5,5,234,243,5,5,235,243,5,5,236,243,5,5,85,243,5,5,237,243,5,5,238,243,5,5,138,230,5,5,239,243,5,5,240,243,5,5,246,237,5,5,241,243,192,0,0,0,5,5,242,243,5,5,27,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,249,5,5,254,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,250,5,5,2,250,5,5,83,227,192,0,0,0,5,5,5,250,192,0,0,0,5,5,6,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,250,5,5,7,250,5,5,10,250,192,0,0,0,192,0,0,0,5,5,9,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,250,5,5,12,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,250,192,0,0,0,5,5,228,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,250,192,0,0,0,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,250,192,0,0,0,5,5,32,250,192,0,0,0,5,5,29,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,250,192,0,0,0,5,5,31,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,239,192,0,0,0,192,0,0,0,5,5,118,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,243,5,5,65,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,229,5,5,250,227,5,5,15,250,5,5,233,231,5,5,14,250,192,0,0,0,5,5,16,250,5,5,18,250,5,5,17,250,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,250,192,0,0,0,5,5,210,234,192,0,0,0,5,5,20,250,192,0,0,0,192,0,0,0,5,5,13,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,236,192,0,0,0,192,0,0,0,5,5,181,249,192,0,0,0,5,5,91,230,5,5,182,249,192,0,0,0,192,0,0,0,5,5,183,249,5,5,184,249,5,5,185,249,5,5,186,249,192,0,0,0,192,0,0,0,5,5,188,249,192,0,0,0,5,5,9,224,5,5,189,249,192,0,0,0,5,5,190,249,5,5,191,249,5,5,192,249,192,0,0,0,5,5,193,249,5,5,194,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,249,5,5,196,249,5,5,66,235,192,0,0,0,5,5,197,249,5,5,198,249,5,5,199,249,5,5,200,249,5,5,201,249,5,5,202,249,5,5,218,229,5,5,203,249,5,5,204,249,5,5,205,249,5,5,206,249,5,5,207,249,192,0,0,0,5,5,208,249,192,0,0,0,5,5,209,249,5,5,210,249,192,0,0,0,5,5,211,249,5,5,212,249,5,5,213,249,5,5,214,249,5,5,215,249,5,5,216,249,5,5,217,249,5,5,218,249,5,5,212,228,192,0,0,0,5,5,219,249,5,5,220,249,5,5,221,249,5,5,222,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,232,5,5,223,249,5,5,224,249,5,5,225,249,5,5,226,249,192,0,0,0,192,0,0,0,5,5,227,249,5,5,228,249,5,5,229,249,5,5,230,249,5,5,231,249,5,5,232,249,5,5,233,249,192,0,0,0,192,0,0,0,5,5,234,249,5,5,235,249,5,5,236,249,5,5,76,224,5,5,237,249,5,5,238,249,5,5,239,249,192,0,0,0,192,0,0,0,5,5,240,249,5,5,241,249,5,5,37,230,5,5,242,249,192,0,0,0,192,0,0,0,5,5,243,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,231,5,5,93,247,5,5,22,228,5,5,94,247,5,5,255,230,192,0,0,0,5,5,124,231,5,5,239,235,192,0,0,0,5,5,95,247,5,5,96,247,5,5,97,247,5,5,98,247,5,5,99,247,5,5,240,235,192,0,0,0,5,5,34,236,192,0,0,0,5,5,101,247,5,5,100,247,5,5,247,236,192,0,0,0,5,5,140,234,5,5,102,247,5,5,104,247,5,5,103,247,5,5,105,247,5,5,106,247,192,0,0,0,192,0,0,0,5,5,223,226,5,5,107,247,5,5,154,227,192,0,0,0,5,5,108,247,5,5,109,247,5,5,23,229,5,5,110,247,5,5,36,226,5,5,111,247,5,5,112,247,5,5,113,247,5,5,114,247,5,5,149,232,5,5,115,247,5,5,116,247,192,0,0,0,5,5,117,247,5,5,184,231,192,0,0,0,5,5,118,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,247,192,0,0,0,5,5,120,247,5,5,3,250,192,0,0,0,5,5,121,247,5,5,122,247,5,5,123,247,192,0,0,0,5,5,124,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,247,5,5,137,227,192,0,0,0,5,5,126,247,5,5,127,247,5,5,128,247,5,5,129,247,5,5,130,247,5,5,131,247,5,5,132,247,5,5,134,247,192,0,0,0,192,0,0,0,5,5,151,236,5,5,133,247,192,0,0,0,5,5,135,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,249,5,5,97,230,192,0,0,0,192,0,0,0,5,5,42,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,250,5,5,44,250,192,0,0,0,192,0,0,0,5,5,45,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,250,5,5,92,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,250,192,0,0,0,5,5,49,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,249,192,0,0,0,192,0,0,0,5,5,145,230,192,0,0,0,5,5,39,250,5,5,40,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,233,5,5,210,229,5,5,82,247,192,0,0,0,5,5,140,227,192,0,0,0,192,0,0,0,5,5,47,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,231,192,0,0,0,192,0,0,0,5,5,50,250,5,5,51,250,5,5,52,250,192,0,0,0,5,5,54,250,5,5,53,250,192,0,0,0,5,5,55,250,192,0,0,0,192,0,0,0,5,5,58,250,192,0,0,0,5,5,57,250,192,0,0,0,5,5,56,250,5,5,59,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,246,192,0,0,0,5,5,124,246,5,5,125,246,192,0,0,0,5,5,162,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,249,192,0,0,0,5,5,164,249,5,5,220,225,192,0,0,0,5,5,138,238,192,0,0,0,192,0,0,0,5,5,24,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,238,192,0,0,0,5,5,247,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,233,192,0,0,0,5,5,61,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,250,192,0,0,0,192,0,0,0,5,5,63,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,250,192,0,0,0,5,5,64,250,192,0,0,0,5,5,37,224,192,0,0,0,5,5,66,250,5,5,67,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,232,5,5,230,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,224,5,5,153,249,192,0,0,0,192,0,0,0,5,5,154,249,5,5,46,230,5,5,155,249,5,5,156,249,5,5,157,249,5,5,158,249,5,5,159,249,5,5,160,249,5,5,131,232,5,5,161,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,230,5,5,250,226,5,5,122,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,227,5,5,11,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,226,192,0,0,0,192,0,0,0,5,5,188,227,5,5,40,225,5,5,18,229,192,0,0,0,192,0,0,0,5,5,25,232,5,5,190,228,5,5,152,229,5,5,52,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,230,5,5,139,230,192,0,0,0,192,0,0,0,5,5,141,230,5,5,189,229,5,5,77,244,5,5,140,230,5,5,188,229,192,0,0,0,192,0,0,0,5,5,121,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,229,192,0,0,0,192,0,0,0,5,5,178,229,5,5,180,229,5,5,181,229,5,5,177,229,5,5,179,229,192,0,0,0,5,5,206,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,229,192,0,0,0,192,0,0,0,5,5,95,230,5,5,94,230,192,0,0,0,192,0,0,0,5,5,93,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,230,192,0,0,0,192,0,0,0,5,5,110,231,192,0,0,0,192,0,0,0,5,5,184,229,5,5,196,229,192,0,0,0,5,5,193,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,230,5,5,197,229,192,0,0,0,5,5,82,230,5,5,191,229,5,5,201,229,192,0,0,0,5,5,50,230,192,0,0,0,192,0,0,0,5,5,44,230,5,5,52,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,225,192,0,0,0,5,5,113,231,5,5,114,230,192,0,0,0,5,5,15,224,192,0,0,0,5,5,65,224,192,0,0,0,5,5,119,224,5,5,224,230,192,0,0,0,5,5,243,233,192,0,0,0,5,5,219,232,5,5,63,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,224,5,5,50,233,5,5,78,233,5,5,212,232,5,5,123,230,5,5,124,230,5,5,11,230,192,0,0,0,5,5,3,230,5,5,4,230,192,0,0,0,5,5,6,230,192,0,0,0,5,5,9,230,192,0,0,0,192,0,0,0,5,5,114,231,192,0,0,0,5,5,107,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,229,5,5,238,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,230,5,5,29,230,5,5,254,235,5,5,28,230,5,5,27,230,192,0,0,0,5,5,246,229,5,5,84,231,5,5,83,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,230,5,5,180,241,192,0,0,0,192,0,0,0,5,5,247,229,5,5,43,230,192,0,0,0,5,5,49,230,5,5,4,248,192,0,0,0,5,5,45,230,192,0,0,0,192,0,0,0,5,5,231,229,192,0,0,0,5,5,63,249,192,0,0,0,192,0,0,0,5,5,21,230,5,5,15,230,5,5,88,243,5,5,88,231,5,5,25,230,192,0,0,0,5,5,17,230,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,232,192,0,0,0,192,0,0,0,5,5,66,230,5,5,65,230,5,5,57,230,5,5,58,230,5,5,62,230,5,5,60,230,192,0,0,0,192,0,0,0,5,5,67,230,5,5,102,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,230,192,0,0,0,5,5,223,229,5,5,114,230,5,5,73,230,5,5,229,229,5,5,222,229,5,5,108,230,5,5,107,236,5,5,216,229,5,5,208,229,5,5,70,231,5,5,215,229,5,5,233,229,5,5,174,246,192,0,0,0,192,0,0,0,5,5,217,229,192,0,0,0,5,5,74,231,5,5,77,231,5,5,41,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,250,5,5,32,230,5,5,38,230,192,0,0,0,5,5,234,229,5,5,156,248,5,5,235,229,192,0,0,0,5,5,217,237,192,0,0,0,5,5,80,233,5,5,164,224,5,5,70,225,5,5,82,232,5,5,254,225,5,5,146,234,5,5,35,234,5,5,92,237,5,5,234,225,5,5,7,224,192,0,0,0,5,5,166,235,5,5,131,228,192,0,0,0,5,5,148,229,5,5,111,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,237,5,5,122,236,5,5,219,229,5,5,49,233,5,5,97,235,5,5,151,226,5,5,228,228,5,5,215,228,5,5,226,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,236,5,5,242,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,235,5,5,236,232,5,5,232,230,5,5,233,230,5,5,92,232,5,5,14,224,5,5,122,227,192,0,0,0,5,5,27,232,192,0,0,0,5,5,17,231,192,0,0,0,5,5,148,243,5,5,234,227,5,5,58,229,5,5,73,237,192,0,0,0,5,5,250,230,5,5,56,228,5,5,140,233,5,5,189,230,5,5,85,227,5,5,250,242,192,0,0,0,5,5,3,238,192,0,0,0,5,5,47,238,5,5,12,224,5,5,39,233,5,5,33,246,5,5,17,232,192,0,0,0,5,5,84,238,5,5,17,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,5,5,142,233,5,5,143,237,5,5,16,225,5,5,249,239,5,5,249,239,5,5,8,238,5,5,136,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,243,5,5,113,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,229,5,5,139,232,192,0,0,0,5,5,254,224,5,5,45,228,5,5,180,236,5,5,23,233,5,5,122,227,5,5,95,241,5,5,123,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,236,5,5,26,224,5,5,184,243,192,0,0,0,5,5,90,242,192,0,0,0,5,5,134,224,5,5,8,242,5,5,141,242,5,5,55,233,5,5,236,236,5,5,73,237,192,0,0,0,192,0,0,0,5,5,113,225,5,5,241,240,5,5,205,233,5,5,244,240,5,5,0,155,5,5,105,232,5,5,180,229,5,5,181,234,5,5,120,237,5,5,111,225,192,0,0,0,5,5,65,230,192,0,0,0,5,5,58,238,192,0,0,0,192,0,0,0,5,5,3,238,5,5,72,232,5,5,34,229,5,5,78,226,5,5,251,237,192,0,0,0,192,0,0,0,5,5,189,227,192,0,0,0,5,5,217,234,5,5,122,236,5,5,64,233,5,5,191,237,192,0,0,0,5,5,51,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,237,5,5,212,227,192,0,0,0,192,0,0,0,5,5,235,247,5,5,166,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,238,192,0,0,0,192,0,0,0,5,5,104,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,229,5,5,162,234,192,0,0,0,192,0,0,0,5,5,73,231,5,5,4,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,232,5,5,105,235,192,0,0,0,192,0,0,0,5,5,232,230,5,5,125,234,192,0,0,0,5,5,13,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,237,192,0,0,0,5,5,191,232,5,5,249,236,192,0,0,0,5,5,226,225,5,5,130,229,192,0,0,0,5,5,177,239,5,5,176,232,192,0,0,0,5,5,88,229,192,0,0,0,5,5,226,226,192,0,0,0,192,0,0,0,5,5,180,236,5,5,233,230,5,5,92,232,5,5,23,233,5,5,0,218,5,5,76,225,5,5,15,224,5,5,236,227,5,5,14,224,5,5,101,224,5,5,36,228,192,0,0,0,5,5,102,232,5,5,102,232,5,5,102,232,192,0,0,0,5,5,226,227,5,5,32,228,5,5,173,239,192,0,0,0,5,5,158,228,5,5,23,241,5,5,30,241,192,0,0,0,5,5,22,235,5,5,228,224,5,5,234,237,192,0,0,0,192,0,0,0,5,5,34,234,192,0,0,0,192,0,0,0,5,5,6,233,5,5,6,233,5,5,123,241,192,0,0,0,5,5,77,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,232,5,5,33,238,5,5,225,224,5,5,226,239,5,5,232,239,5,5,163,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,226,192,0,0,0,5,5,29,233,192,0,0,0,192,0,0,0,5,5,23,228,192,0,0,0,192,0,0,0,5,5,170,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,233,5,5,121,228,5,5,137,225,5,5,208,240,192,0,0,0,5,5,122,234,5,5,148,243,192,0,0,0,5,5,201,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,241,192,0,0,0,5,5,230,235,5,5,204,224,192,0,0,0,5,5,15,239,192,0,0,0,5,5,183,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,242,5,5,154,233,5,5,178,229,192,0,0,0,5,5,199,240,192,0,0,0,192,0,0,0,5,5,208,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,232,5,5,204,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,227,192,0,0,0,192,0,0,0,5,5,66,225,5,5,213,227,5,5,55,233,5,5,213,227,192,0,0,0,5,5,73,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,224,5,5,31,245,192,0,0,0,5,5,5,224,5,5,0,172,5,5,22,229,192,0,0,0,5,5,166,234,5,5,214,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,236,192,0,0,0,5,5,12,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,230,5,5,224,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,233,192,0,0,0,192,0,0,0,5,5,182,230,5,5,231,230,5,5,92,238,192,0,0,0,5,5,155,245,192,0,0,0,5,5,180,229,5,5,181,234,192,0,0,0,5,5,117,244,5,5,116,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,236,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,231,5,5,85,227,5,5,65,230,5,5,120,227,5,5,204,228,5,5,95,231,192,0,0,0,192,0,0,0,5,5,207,226,5,5,12,243,192,0,0,0,5,5,58,238,5,5,185,225,192,0,0,0,5,5,3,236,5,5,203,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,243,192,0,0,0,5,5,73,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,234,192,0,0,0,5,5,5,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,246,5,5,34,229,192,0,0,0,192,0,0,0,5,5,36,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,237,5,5,150,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,246,5,5,93,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,238,192,0,0,0,192,0,0,0,5,5,151,226,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,236,192,0,0,0,192,0,0,0,5,5,196,231,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,248,5,5,210,248,5,5,65,225,192,0,0,0,5,5,3,240,5,5,229,236,5,5,179,237,5,5,183,229,5,5,184,227,5,5,82,226,5,5,243,235,5,5,108,229,192,0,0,0,5,5,212,232,192,0,0,0,5,5,185,232,192,0,0,0,192,0,0,0,5,5,173,230,192,0,0,0,5,5,8,238,192,0,0,0,5,5,3,229,5,5,40,229,5,5,135,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,232,192,0,0,0,192,0,0,0,5,5,0,173,5,5,74,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,230,192,0,0,0,5,5,123,246,5,5,162,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,224,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,155,48,1,16,212,1,0,96,1,0,0,96,98,186,1,0,24,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,72,0,0,0,72,1,0,0,248,132,1,0,248,132,1,0,104,143,1,0,104,143,1,0,40,158,1,0,40,158,1,0,44,179,1,0,26,182,1,0,74,186,1,0,17,0,0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,0,9,26,23,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,226,0,234,0,242,0,250,0,2,1,10,1,18,1,26,1,48,0,33,1,35,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,42,1,48,0,48,0,48,0,48,0,50,1,58,1,48,0,66,1,74,1,82,1,85,1,48,0,48,0,93,1,101,1,48,0,48,0,48,0,109,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,117,1,125,1,133,1,141,1,149,1,157,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,237,1,245,1,253,1,5,2,13,2,21,2,29,2,37,2,45,2,53,2,61,2,69,2,77,2,85,2,93,2,101,2,109,2,117,2,125,2,133,2,141,2,149,2,157,2,165,2,173,2,181,2,189,2,197,2,205,2,213,2,221,2,229,2,237,2,245,2,253,2,5,3,13,3,21,3,29,3,37,3,45,3,53,3,61,3,69,3,77,3,85,3,93,3,101,3,109,3,117,3,125,3,133,3,141,3,149,3,157,3,165,3,173,3,181,3,189,3,197,3,205,3,213,3,221,3,229,3,237,3,245,3,253,3,5,4,13,4,21,4,29,4,37,4,45,4,53,4,61,4,69,4,77,4,85,4,93,4,101,4,109,4,117,4,125,4,133,4,141,4,149,4,157,4,165,4,173,4,181,4,189,4,197,4,205,4,213,4,221,4,229,4,237,4,245,4,253,4,5,5,13,5,21,5,29,5,37,5,45,5,53,5,61,5,69,5,77,5,85,5,93,5,101,5,109,5,117,5,125,5,133,5,141,5,149,5,157,5,165,5,173,5,181,5,189,5,197,5,205,5,213,5,221,5,229,5,237,5,245,5,253,5,5,6,13,6,21,6,29,6,37,6,45,6,53,6,61,6,69,6,77,6,85,6,93,6,101,6,109,6,117,6,125,6,133,6,141,6,149,6,157,6,165,6,173,6,181,6,189,6,197,6,205,6,213,6,221,6,229,6,237,6,245,6,253,6,5,7,13,7,21,7,29,7,37,7,45,7,53,7,61,7,69,7,77,7,85,7,93,7,101,7,109,7,117,7,125,7,133,7,141,7,149,7,157,7,165,7,173,7,181,7,189,7,197,7,205,7,213,7,221,7,229,7,237,7,245,7,253,7,5,8,13,8,21,8,29,8,37,8,45,8,53,8,61,8,69,8,77,8,85,8,93,8,101,8,109,8,117,8,125,8,133,8,141,8,149,8,157,8,165,8,173,8,181,8,189,8,197,8,205,8,213,8,221,8,229,8,237,8,245,8,253,8,5,9,13,9,21,9,29,9,37,9,45,9,53,9,61,9,69,9,77,9,85,9,93,9,101,9,109,9,117,9,125,9,133,9,141,9,149,9,157,9,165,9,173,9,181,9,189,9,197,9,205,9,213,9,221,9,229,9,237,9,245,9,253,9,5,10,13,10,21,10,29,10,37,10,45,10,53,10,61,10,69,10,77,10,85,10,93,10,101,10,109,10,117,10,125,10,133,10,141,10,149,10,157,10,165,10,173,10,181,10,189,10,197,10,205,10,213,10,221,10,229,10,237,10,245,10,253,10,5,11,13,11,21,11,29,11,37,11,45,11,53,11,61,11,69,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,141,11,149,11,157,11,165,11,173,11,181,11,189,11,197,11,205,11,213,11,221,11,229,11,237,11,245,11,253,11,5,12,13,12,21,12,29,12,37,12,45,12,53,12,61,12,69,12,77,12,85,12,93,12,101,12,109,12,117,12,125,12,133,12,141,12,149,12,157,12,165,12,173,12,181,12,189,12,197,12,205,12,213,12,221,12,229,12,237,12,245,12,253,12,5,13,13,13,21,13,29,13,37,13,45,13,53,13,61,13,69,13,77,13,85,13,93,13,101,13,109,13,117,13,125,13,133,13,141,13,149,13,157,13,165,13,173,13,181,13,189,13,197,13,205,13,213,13,221,13,229,13,237,13,245,13,253,13,5,14,13,14,21,14,29,14,37,14,45,14,53,14,61,14,69,14,77,14,85,14,93,14,101,14,109,14,117,14,125,14,133,14,141,14,149,14,157,14,165,14,173,14,181,14,189,14,197,14,205,14,213,14,221,14,229,14,237,14,245,14,253,14,5,15,13,15,21,15,29,15,37,15,45,15,53,15,61,15,69,15,77,15,85,15,93,15,101,15,109,15,117,15,125,15,133,15,141,15,149,15,157,15,165,15,173,15,181,15,189,15,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,5,16,13,16,21,16,29,16,37,16,45,16,53,16,61,16,69,16,77,16,85,16,93,16,101,16,109,16,117,16,125,16,133,16,141,16,149,16,157,16,165,16,173,16,181,16,189,16,197,16,205,16,213,16,221,16,229,16,237,16,245,16,253,16,5,17,13,17,21,17,29,17,37,17,45,17,53,17,61,17,69,17,77,17,85,17,93,17,101,17,109,17,117,17,125,17,133,17,141,17,149,17,157,17,165,17,173,17,181,17,189,17,197,17,205,17,213,17,221,17,229,17,237,17,245,17,253,17,5,18,13,18,21,18,29,18,37,18,45,18,53,18,61,18,69,18,77,18,85,18,93,18,101,18,109,18,117,18,125,18,133,18,141,18,149,18,157,18,165,18,173,18,181,18,189,18,197,18,205,18,213,18,221,18,229,18,237,18,245,18,253,18,5,19,13,19,21,19,29,19,37,19,45,19,53,19,61,19,69,19,77,19,85,19,93,19,101,19,109,19,117,19,125,19,133,19,141,19,149,19,157,19,165,19,173,19,181,19,189,19,197,19,205,19,213,19,221,19,229,19,237,19,245,19,253,19,5,20,13,20,21,20,29,20,37,20,45,20,53,20,61,20,69,20,77,20,85,20,93,20,101,20,109,20,117,20,125,20,133,20,141,20,149,20,157,20,165,20,173,20,181,20,189,20,197,20,205,20,213,20,221,20,229,20,237,20,245,20,253,20,5,21,13,21,21,21,29,21,37,21,45,21,53,21,61,21,69,21,77,21,85,21,93,21,101,21,109,21,117,21,125,21,133,21,141,21,149,21,157,21,165,21,173,21,181,21,189,21,197,21,205,21,213,21,221,21,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,161,0,48,0,48,0,153,0,9,23,153,0,17,23,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,229,21,237,21,245,21,253,21,5,22,13,22,21,22,29,22,37,22,45,22,53,22,61,22,69,22,77,22,85,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,192,8,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,97,22,105,22,113,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,121,22,129,22,137,22,145,22,153,22,161,22,169,22,177,22,185,22,193,22,201,22,209,22,217,22,225,22,233,22,241,22,249,22,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,41,0,202,65,39,0,202,130,39,0,202,195,39,0,202,4,40,0,202,69,40,0,202,134,40,0,202,199,40,0,202,8,41,0,202,73,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,66,117,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,130,117,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,194,117,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,167,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,25,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,57,238,6,5,124,187,6,5,5,248,6,5,121,213,7,5,180,238,6,5,177,197,9,5,5,182,6,5,60,227,7,5,117,218,6,5,218,181,6,5,47,219,7,5,161,168,6,5,114,196,6,5,91,208,6,5,91,171,6,5,170,192,6,5,126,215,6,5,103,178,6,5,90,202,6,5,81,169,6,5,22,170,6,5,136,182,6,5,103,231,8,5,201,221,6,5,244,171,6,5,55,195,6,5,149,173,6,5,54,223,6,5,86,241,6,5,70,199,6,5,231,228,7,5,129,227,6,5,254,221,6,5,158,246,6,5,45,224,6,5,165,230,6,5,154,177,7,5,143,211,6,5,96,249,6,5,128,208,6,5,69,177,6,5,60,233,6,5,24,241,6,5,163,221,6,5,223,173,6,5,68,220,6,5,202,175,6,5,201,185,6,5,171,192,6,5,161,195,6,5,234,184,6,5,111,237,6,5,11,187,6,5,254,239,6,5,230,185,6,5,221,238,6,5,202,185,6,5,190,192,6,5,69,220,6,5,222,174,6,5,213,233,6,5,82,185,6,5,227,189,7,5,92,222,6,5,79,246,6,5,255,213,7,5,158,229,6,5,90,180,6,5,163,195,6,5,137,182,6,5,46,230,7,5,183,218,6,5,253,242,8,5,7,243,7,5,184,209,6,5,142,215,6,5,159,246,6,5,166,177,6,5,116,222,6,5,47,230,6,5,23,170,6,5,69,207,6,5,255,221,6,5,217,214,7,5,12,223,7,5,198,191,6,5,82,245,6,5,73,184,6,5,125,237,6,5,8,212,6,5,82,213,6,5,247,235,6,5,82,211,6,5,253,217,6,5,42,235,6,5,10,242,6,5,141,186,6,5,59,228,6,5,187,184,7,5,111,221,6,5,255,240,6,5,82,226,6,5,26,213,6,5,97,210,6,5,140,171,6,5,230,168,6,5,240,212,6,5,249,208,6,5,187,209,6,5,70,207,6,5,241,221,6,5,203,221,6,5,7,222,6,5,241,218,6,5,153,188,6,5,98,235,6,5,94,202,6,5,235,247,6,5,73,208,6,5,92,208,6,5,153,183,6,5,173,228,6,5,39,237,6,5,226,241,6,5,103,201,6,5,219,181,6,5,184,201,6,5,245,181,6,5,13,242,6,5,9,219,6,5,250,173,6,5,82,249,6,5,197,246,6,5,182,196,6,5,233,220,6,5,220,175,6,5,128,247,6,5,162,185,6,5,229,219,6,5,148,172,6,5,142,189,6,5,28,175,6,5,124,235,6,5,24,234,6,5,63,238,6,5,26,236,6,5,9,194,6,5,192,194,6,5,87,236,6,5,78,186,6,5,91,180,6,5,243,221,6,5,202,246,6,5,164,169,6,5,227,174,7,5,182,249,6,5,191,249,6,5,19,221,6,5,213,173,6,5,218,233,6,5,253,173,6,5,71,176,6,5,244,238,6,5,67,241,6,5,206,170,6,5,64,202,7,5,166,195,6,5,41,245,6,5,220,207,6,5,82,184,6,5,111,202,6,5,142,248,6,5,227,241,6,5,166,216,6,5,178,182,6,5,170,208,6,5,115,185,6,5,242,228,6,5,175,196,6,5,177,239,6,5,8,238,6,5,83,183,6,5,179,182,6,5,219,221,6,5,95,222,6,5,162,232,6,5,182,206,6,5,81,186,6,5,35,185,6,5,234,170,6,5,97,180,6,5,164,173,6,5,118,185,6,5,80,187,6,5,162,241,6,5,232,210,6,5,117,205,6,5,160,205,6,5,229,206,6,5,172,206,6,5,201,190,6,5,169,222,6,5,244,188,6,5,191,246,6,5,165,208,6,5,241,179,6,5,102,186,6,5,172,222,6,5,20,170,6,5,160,214,6,5,221,174,6,5,232,204,6,5,57,187,6,5,38,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,201,221,6,5,216,210,6,5,136,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,5,57,238,8,5,5,182,8,5,166,219,7,5,106,223,7,5,181,220,8,5,67,247,7,5,210,231,6,5,96,193,6,5,180,238,6,5,99,171,6,5,225,179,7,5,74,226,6,5,167,178,6,5,117,218,198,131,31,0,198,227,31,0,198,67,32,0,198,163,32,0,198,3,33,0,198,99,33,0,198,195,33,0,198,35,34,0,198,131,34,0,198,227,34,0,198,67,35,0,198,163,35,0,198,3,36,0,198,99,36,0,197,227,35,0,198,195,36,0,198,35,37,0,198,131,37,0,198,227,37,0,197,67,36,0,198,67,38,0,198,163,38,0,197,163,36,0,197,3,37,0,198,3,39,0,198,99,39,0,198,195,39,0,198,35,40,0,197,99,37,0,198,131,40,0,197,195,37,0,198,227,40,0,197,35,38,0,198,67,41,0,197,131,38,0,197,227,38,0,6,5,201,229,6,5,88,241,6,5,158,229,6,5,50,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,57,238,7,5,5,182,7,5,166,219,6,5,106,223,6,5,77,230,6,5,193,204,6,5,58,214,6,5,161,168,6,5,165,196,6,5,201,221,7,5,7,243,6,5,198,191,6,5,12,223,6,5,184,209,6,5,166,195,6,5,129,227,6,5,183,218,6,5,207,247,7,5,63,241,6,5,242,220,6,5,24,209,6,5,210,225,6,5,52,172,6,5,39,248,6,5,79,201,6,5,101,208,6,5,17,210,6,5,143,211,6,5,68,222,6,5,17,241,6,5,29,240,6,5,31,248,6,5,228,232,6,5,87,234,6,5,144,233,6,5,65,246,6,5,181,220,7,5,67,247,6,5,210,231,7,5,30,250,7,5,87,241,6,5,64,238,6,5,97,249,6,5,101,235,6,5,162,193,6,5,194,214,6,5,32,249,6,5,103,233,6,5,3,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,39,0,197,130,39,0,197,194,39,0,197,2,40,0,197,66,40,0,197,130,40,0,197,194,40,0,197,2,41,0,197,66,41,0,197,131,41,0,197,227,41,0,197,67,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,34,45,0,197,99,45,0,197,195,45,0,197,35,46,0,197,131,46,0,197,227,46,0,197,67,47,0,197,163,47,0,197,3,48,0,197,99,48,0,197,195,48,0,197,35,49,0,197,131,49,0,197,227,49,0,197,67,50,0,197,163,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,51,0,197,66,51,0,197,130,51,0,197,194,51,0,197,4,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,197,130,53,0,197,194,53,0,197,2,54,0,197,66,54,0,197,130,54,0,197,195,54,0,197,35,55,0,197,131,55,0,197,227,55,0,197,67,56,0,197,163,56,0,197,3,57,0,197,99,57,0,197,195,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,197,227,61,0,197,67,62,0,197,163,62,0,192,0,0,0,5,5,57,238,5,5,225,179,5,5,186,198,5,5,58,214,5,5,180,220,5,5,209,231,5,5,14,188,5,5,139,228,5,5,47,245,5,5,166,219,5,5,181,220,5,5,210,231,5,5,247,191,5,5,10,172,5,5,221,241,5,5,146,208,5,5,167,184,5,5,87,175,5,5,88,175,5,5,77,248,5,5,63,216,5,5,201,212,5,5,4,222,5,5,3,222,5,5,4,217,5,5,99,171,5,5,251,237,5,5,188,176,5,5,18,180,5,5,56,223,5,5,85,174,5,5,14,180,5,5,5,217,5,5,85,203,5,5,15,180,5,5,64,241,5,5,86,203,5,5,84,236,5,5,125,171,5,5,204,219,5,5,124,187,5,5,144,196,5,5,150,185,5,5,226,235,5,5,206,215,5,5,67,247,5,5,172,192,5,5,131,195,5,5,69,183,5,5,216,186,5,5,227,175,5,5,65,173,5,5,217,203,5,5,210,248,5,5,5,248,5,5,160,168,5,5,93,228,5,5,213,177,5,5,85,229,5,5,6,248,5,5,47,196,5,5,97,202,5,5,35,197,5,5,121,213,5,5,199,183,5,5,99,238,5,5,218,238,5,5,249,209,5,5,76,230,5,5,166,196,5,5,167,196,5,5,217,227,5,5,130,207,5,5,219,238,5,5,58,238,5,5,78,246,5,5,19,230,5,5,166,244,5,5,139,189,5,5,25,182,5,5,135,201,5,5,213,239,5,5,151,213,5,5,45,212,5,5,9,216,5,5,212,189,5,5,174,186,5,5,93,174,5,5,100,174,5,5,180,238,5,5,253,239,5,5,49,236,5,5,202,208,5,5,165,196,5,5,192,214,5,5,243,237,5,5,44,231,5,5,159,232,5,5,168,184,5,5,168,196,5,5,211,231,5,5,224,189,5,5,115,222,5,5,82,180,5,5,242,221,5,5,253,191,5,5,43,210,5,5,36,193,5,5,55,197,5,5,205,221,5,5,94,207,5,5,140,189,5,5,215,206,5,5,53,206,5,5,252,248,5,5,43,219,5,5,100,235,5,5,142,236,5,5,42,184,5,5,15,220,5,5,222,209,5,5,199,184,5,5,148,224,5,5,143,241,5,5,56,177,5,5,152,245,5,5,100,215,5,5,234,246,5,5,34,187,5,5,205,184,5,5,55,206,5,5,2,204,5,5,63,239,5,5,177,197,5,5,151,201,5,5,207,206,5,5,222,241,5,5,19,246,5,5,12,222,5,5,15,222,5,5,5,182,5,5,155,175,5,5,128,241,5,5,225,199,5,5,127,241,5,5,64,243,5,5,225,189,5,5,97,214,5,5,77,230,5,5,46,196,5,5,105,223,5,5,72,224,5,5,163,185,5,5,164,185,5,5,25,236,5,5,92,233,5,5,28,236,5,5,105,214,5,5,31,236,5,5,105,192,5,5,60,227,5,5,164,228,5,5,173,198,5,5,155,177,5,5,152,194,5,5,217,187,5,5,228,238,5,5,62,173,5,5,255,188,5,5,168,209,5,5,56,238,5,5,199,232,5,5,9,196,5,5,215,226,5,5,97,203,5,5,200,232,5,5,13,196,5,5,5,238,5,5,92,216,5,5,184,171,5,5,106,241,5,5,171,233,5,5,254,177,5,5,240,202,5,5,64,181,5,5,226,207,5,5,117,218,5,5,118,218,5,5,92,192,5,5,93,192,5,5,165,228,5,5,220,238,5,5,61,221,5,5,119,218,5,5,133,201,5,5,226,179,5,5,81,244,5,5,187,195,5,5,254,213,5,5,51,175,5,5,162,168,5,5,39,245,5,5,162,195,5,5,132,195,5,5,92,171,5,5,178,218,5,5,187,176,5,5,148,183,5,5,175,219,5,5,67,206,5,5,93,171,5,5,113,172,5,5,59,249,5,5,5,222,5,5,171,224,5,5,48,245,5,5,75,184,5,5,224,231,5,5,225,231,5,5,218,227,5,5,42,189,5,5,254,226,5,5,143,218,5,5,26,215,5,5,215,184,5,5,83,185,5,5,171,171,5,5,169,177,5,5,119,204,5,5,182,238,5,5,207,173,5,5,124,173,5,5,126,219,5,5,125,173,5,5,100,238,5,5,185,209,5,5,235,207,5,5,144,218,5,5,112,182,5,5,208,173,5,5,79,237,5,5,89,215,5,5,111,247,5,5,27,213,5,5,247,229,5,5,79,230,5,5,8,194,5,5,114,193,5,5,176,237,5,5,71,183,5,5,114,172,5,5,146,218,5,5,168,228,5,5,53,183,5,5,199,178,5,5,158,182,5,5,68,247,5,5,194,214,5,5,116,212,5,5,130,241,5,5,152,179,5,5,5,181,5,5,116,230,5,5,229,238,5,5,242,233,5,5,174,198,5,5,62,238,5,5,95,192,5,5,2,168,5,5,80,230,5,5,195,192,5,5,202,183,5,5,26,182,5,5,87,234,5,5,212,195,5,5,202,212,5,5,243,177,5,5,162,183,5,5,136,225,5,5,112,247,5,5,5,241,5,5,199,191,5,5,67,191,5,5,223,241,5,5,28,177,5,5,67,243,5,5,176,219,5,5,23,229,5,5,209,175,5,5,212,173,5,5,248,235,5,5,103,232,5,5,157,220,5,5,106,173,5,5,68,206,5,5,115,172,5,5,200,235,5,5,244,233,5,5,24,229,5,5,23,248,5,5,88,244,5,5,17,232,5,5,135,211,5,5,172,171,5,5,42,186,5,5,148,210,5,5,169,210,5,5,148,233,5,5,31,169,5,5,199,234,5,5,35,204,5,5,171,247,5,5,18,221,5,5,88,217,5,5,139,176,5,5,232,169,5,5,8,222,5,5,38,193,5,5,203,212,5,5,233,238,5,5,109,223,5,5,184,238,5,5,20,246,5,5,101,179,5,5,228,187,5,5,223,206,5,5,8,178,5,5,24,248,5,5,12,172,5,5,89,217,5,5,26,170,5,5,68,245,5,5,132,176,5,5,87,229,5,5,200,178,5,5,25,248,5,5,31,250,5,5,89,241,5,5,80,237,5,5,36,226,5,5,250,244,5,5,155,188,5,5,48,170,5,5,242,227,5,5,234,220,5,5,131,241,5,5,234,238,5,5,205,183,5,5,33,250,5,5,247,185,5,5,75,211,5,5,2,227,5,5,149,210,5,5,230,231,5,5,133,217,5,5,187,240,5,5,60,228,5,5,35,215,5,5,86,222,5,5,81,198,5,5,83,169,5,5,118,212,5,5,41,191,5,5,216,188,5,5,104,201,5,5,190,232,5,5,110,185,5,5,46,237,5,5,232,168,5,5,45,182,5,5,46,209,5,5,41,193,5,5,8,182,5,5,126,171,5,5,106,192,5,5,250,188,5,5,194,191,5,5,70,187,5,5,206,217,5,5,132,226,5,5,193,194,5,5,140,176,5,5,245,238,5,5,244,221,5,5,28,234,5,5,20,221,5,5,225,227,5,5,133,198,5,5,122,246,5,5,147,184,5,5,158,200,5,5,109,238,5,5,206,174,5,5,123,199,5,5,248,186,5,5,104,202,5,5,171,239,5,5,16,222,5,5,75,208,5,5,202,247,5,5,203,234,5,5,90,241,5,5,35,168,5,5,144,205,5,5,147,209,5,5,221,181,5,5,72,206,5,5,52,180,5,5,236,172,5,5,147,174,5,5,203,235,5,5,208,185,5,5,130,247,5,5,67,238,5,5,13,219,5,5,65,177,5,5,168,231,5,5,114,223,5,5,171,177,5,5,231,205,5,5,220,224,5,5,194,194,5,5,174,245,5,5,159,172,5,5,10,216,5,5,138,199,5,5,247,172,5,5,76,211,5,5,96,211,5,5,189,195,5,5,88,230,5,5,106,189,5,5,129,196,5,5,136,174,5,5,248,245,5,5,39,250,5,5,92,175,5,5,93,216,5,5,233,205,5,5,253,196,5,5,193,222,5,5,235,226,5,5,91,221,5,5,183,227,5,5,180,171,5,5,20,210,5,5,243,232,5,5,210,170,5,5,178,227,5,5,228,241,5,5,114,231,5,5,224,176,5,5,101,181,5,5,43,217,5,5,179,234,5,5,17,187,5,5,104,199,5,5,89,230,5,5,44,198,5,5,6,239,5,5,47,184,5,5,71,203,5,5,206,249,5,5,40,216,5,5,112,202,5,5,229,240,5,5,174,191,5,5,76,196,5,5,145,215,5,5,188,219,5,5,115,212,5,5,233,223,5,5,224,183,5,5,182,230,5,5,65,202,5,5,48,184,5,5,153,213,5,5,103,169,5,5,144,241,5,5,113,214,5,5,170,231,5,5,247,233,5,5,88,234,5,5,229,241,5,5,23,179,5,5,214,173,5,5,53,175,5,5,213,246,5,5,145,236,5,5,228,202,5,5,113,202,5,5,159,200,5,5,62,223,5,5,201,193,5,5,89,234,5,5,52,184,5,5,210,191,5,5,74,197,5,5,74,233,5,5,240,211,5,5,17,194,5,5,26,171,5,5,165,175,5,5,228,182,5,5,136,183,5,5,36,236,5,5,64,168,5,5,173,169,5,5,25,242,5,5,224,233,5,5,34,170,5,5,216,189,5,5,108,173,5,5,99,246,5,5,130,171,5,5,187,196,5,5,133,237,5,5,31,177,5,5,229,202,5,5,112,228,5,5,160,200,5,5,119,172,5,5,151,249,5,5,153,185,5,5,190,186,5,5,174,169,5,5,111,226,5,5,125,222,5,5,126,222,5,5,236,207,5,5,134,178,5,5,25,225,5,5,198,197,5,5,9,176,5,5,52,234,5,5,160,212,5,5,138,225,5,5,132,189,5,5,193,238,5,5,63,214,5,5,48,226,5,5,239,184,5,5,80,196,5,5,147,195,5,5,48,224,5,5,163,173,5,5,75,195,5,5,166,182,5,5,126,246,5,5,49,199,5,5,150,197,5,5,98,249,5,5,75,197,5,5,147,215,5,5,124,210,5,5,74,206,5,5,190,248,5,5,230,229,5,5,133,206,5,5,149,223,5,5,237,201,5,5,175,191,5,5,26,180,5,5,86,249,5,5,223,169,5,5,90,230,5,5,76,197,5,5,3,210,5,5,57,172,5,5,204,193,5,5,194,244,5,5,226,237,5,5,127,246,5,5,42,220,5,5,170,216,5,5,78,211,5,5,50,240,5,5,59,174,5,5,101,215,5,5,150,236,5,5,68,219,5,5,120,247,5,5,61,176,5,5,103,193,5,5,221,192,5,5,39,229,5,5,236,241,5,5,134,171,5,5,111,219,5,5,251,225,5,5,201,228,5,5,59,213,5,5,214,236,5,5,86,183,5,5,139,225,5,5,253,229,5,5,154,181,5,5,116,233,5,5,221,173,5,5,145,221,5,5,136,198,5,5,29,179,5,5,45,250,5,5,204,172,5,5,218,226,5,5,178,169,5,5,163,233,5,5,188,190,5,5,189,237,5,5,255,244,5,5,93,175,5,5,56,236,5,5,42,241,5,5,18,194,5,5,189,234,5,5,129,244,5,5,95,176,5,5,93,184,5,5,8,170,5,5,235,246,5,5,134,249,5,5,154,208,5,5,121,192,5,5,198,238,5,5,164,233,5,5,178,235,5,5,47,172,5,5,182,180,5,5,167,172,5,5,188,245,5,5,214,211,5,5,54,227,5,5,55,227,5,5,179,169,5,5,163,243,5,5,25,205,5,5,80,195,5,5,40,229,5,5,58,183,5,5,131,173,5,5,35,187,5,5,211,223,5,5,253,246,5,5,250,223,5,5,160,231,5,5,98,184,5,5,242,242,5,5,236,218,5,5,145,202,5,5,141,211,5,5,122,243,5,5,115,194,5,5,197,206,5,5,67,169,5,5,68,179,5,5,102,225,5,5,124,188,5,5,86,195,5,5,214,230,5,5,125,220,5,5,150,215,5,5,213,197,5,5,121,172,5,5,172,175,5,5,177,219,5,5,183,169,5,5,80,233,5,5,238,240,5,5,137,237,5,5,75,225,5,5,132,224,5,5,89,237,5,5,37,182,5,5,135,171,5,5,58,193,5,5,168,177,5,5,192,243,5,5,141,225,5,5,87,186,5,5,54,171,5,5,144,175,5,5,166,211,5,5,80,172,5,5,190,201,5,5,11,177,5,5,192,240,5,5,5,244,5,5,140,249,5,5,239,169,5,5,168,223,5,5,144,168,5,5,215,175,5,5,244,241,5,5,196,244,5,5,197,249,5,5,161,220,5,5,247,175,5,5,98,196,5,5,243,174,5,5,40,220,5,5,42,188,5,5,21,245,5,5,179,216,5,5,227,236,5,5,46,179,5,5,178,233,5,5,30,205,5,5,184,169,5,5,111,213,5,5,195,195,5,5,50,203,5,5,165,205,5,5,241,206,5,5,61,215,5,5,246,231,5,5,77,225,5,5,124,240,5,5,71,180,5,5,106,248,5,5,229,232,5,5,130,220,5,5,17,216,5,5,138,196,5,5,180,227,5,5,15,250,5,5,20,214,5,5,235,230,5,5,89,201,5,5,155,173,5,5,7,187,5,5,117,203,5,5,82,214,5,5,64,174,5,5,26,173,5,5,62,229,5,5,37,192,5,5,162,171,5,5,98,191,5,5,224,175,5,5,185,226,5,5,31,178,5,5,217,194,5,5,197,196,5,5,10,220,5,5,61,183,5,5,137,232,5,5,14,197,5,5,180,181,5,5,166,194,5,5,42,194,5,5,26,227,5,5,21,204,5,5,206,171,5,5,136,186,5,5,247,231,5,5,10,224,5,5,138,232,5,5,96,194,5,5,15,209,5,5,25,238,5,5,240,195,5,5,120,193,5,5,50,216,5,5,49,213,5,5,99,183,5,5,190,247,5,5,16,168,5,5,163,219,5,5,158,238,5,5,59,198,5,5,102,211,5,5,31,173,5,5,88,239,5,5,91,178,5,5,59,196,5,5,22,235,5,5,146,199,5,5,235,193,5,5,181,175,5,5,234,177,5,5,223,194,5,5,41,220,5,5,195,243,5,5,107,172,5,5,65,171,5,5,62,168,5,5,25,219,5,5,241,224,5,5,72,175,5,5,252,172,5,5,219,200,5,5,160,210,5,5,208,195,5,5,161,215,5,5,247,207,5,5,106,230,5,5,61,211,5,5,249,216,5,5,161,210,5,5,144,173,5,5,203,203,5,5,197,201,5,5,253,205,5,5,192,199,5,5,142,169,5,5,105,242,5,5,255,170,5,5,210,243,5,5,44,247,5,5,141,223,5,5,17,241,5,5,104,188,5,5,218,216,5,5,45,174,5,5,183,202,5,5,231,225,5,5,74,229,5,5,11,205,5,5,149,175,5,5,45,173,5,5,79,218,5,5,153,222,5,5,139,191,5,5,208,202,5,5,119,206,5,5,213,243,5,5,167,211,5,5,145,225,5,5,187,236,5,5,174,201,5,5,56,210,5,5,218,181,5,5,111,230,5,5,96,243,5,5,197,243,5,5,170,242,5,5,65,234,5,5,10,175,5,5,88,245,5,5,66,234,5,5,227,231,5,5,246,186,5,5,218,180,5,5,248,198,5,5,219,180,5,5,148,208,5,5,134,227,5,5,126,173,5,5,220,181,5,5,220,180,5,5,222,181,5,5,165,195,5,5,136,227,5,5,110,223,5,5,143,236,5,5,146,236,5,5,247,221,192,0,0,0,5,5,65,178,5,5,48,215,5,5,77,180,5,5,7,183,5,5,77,207,5,5,43,221,5,5,78,180,192,0,0,0,5,5,33,196,5,5,80,202,5,5,245,190,5,5,47,219,5,5,166,228,5,5,110,210,5,5,204,217,5,5,87,203,5,5,145,241,5,5,161,168,5,5,203,185,5,5,193,204,5,5,166,230,5,5,65,188,5,5,205,200,5,5,239,185,5,5,75,226,5,5,185,186,5,5,46,234,5,5,96,171,5,5,106,214,5,5,65,197,5,5,86,179,5,5,255,248,5,5,4,183,5,5,83,237,5,5,137,193,5,5,100,222,5,5,235,192,5,5,64,239,5,5,2,193,5,5,88,173,5,5,114,196,5,5,102,207,5,5,69,218,5,5,111,210,5,5,171,242,5,5,91,207,5,5,252,184,5,5,70,218,5,5,157,172,5,5,115,196,5,5,158,172,5,5,187,243,5,5,158,186,5,5,124,196,5,5,105,207,5,5,176,247,5,5,107,207,5,5,26,186,5,5,186,234,5,5,155,208,5,5,91,208,5,5,233,218,5,5,212,239,5,5,144,233,5,5,131,198,5,5,17,198,5,5,95,211,5,5,105,238,5,5,41,208,5,5,23,222,5,5,188,186,5,5,240,207,5,5,99,247,5,5,77,197,5,5,143,242,5,5,30,209,5,5,75,199,5,5,218,203,5,5,94,184,5,5,145,233,5,5,119,208,5,5,91,171,5,5,19,180,5,5,249,224,5,5,254,184,5,5,117,183,5,5,95,171,5,5,230,189,5,5,11,175,5,5,180,197,5,5,231,189,5,5,198,199,5,5,245,237,5,5,236,201,5,5,26,212,5,5,206,183,5,5,250,208,5,5,51,180,5,5,67,232,5,5,177,203,5,5,17,215,5,5,130,193,5,5,72,196,5,5,185,223,5,5,182,207,5,5,94,227,5,5,64,214,5,5,123,186,5,5,180,248,5,5,150,223,5,5,81,196,5,5,72,203,5,5,210,216,5,5,131,179,5,5,52,204,5,5,62,180,5,5,240,184,5,5,208,193,5,5,183,239,5,5,212,176,5,5,0,148,5,5,146,202,5,5,2,176,5,5,48,209,5,5,182,248,5,5,12,177,5,5,76,223,5,5,46,181,5,5,241,195,5,5,3,204,5,5,4,204,5,5,62,211,5,5,254,230,5,5,134,180,5,5,170,192,5,5,73,182,5,5,74,182,5,5,75,182,5,5,133,183,5,5,209,196,5,5,140,175,5,5,18,246,5,5,72,183,5,5,188,209,5,5,161,246,5,5,203,183,5,5,73,183,5,5,163,213,5,5,77,183,5,5,92,198,5,5,189,190,5,5,98,198,5,5,206,184,5,5,188,178,5,5,193,213,5,5,126,215,5,5,63,234,5,5,134,199,5,5,75,227,5,5,98,168,5,5,102,175,5,5,249,191,5,5,75,178,5,5,243,187,5,5,246,187,5,5,10,244,5,5,103,178,5,5,126,179,5,5,104,178,5,5,140,218,5,5,141,218,5,5,233,175,5,5,248,182,5,5,64,216,5,5,222,238,5,5,250,191,5,5,123,198,5,5,143,215,5,5,67,177,5,5,109,175,5,5,185,229,5,5,254,191,5,5,244,177,5,5,23,234,5,5,51,190,5,5,94,228,5,5,181,197,5,5,243,201,5,5,9,243,5,5,175,203,5,5,127,204,5,5,41,244,5,5,255,184,5,5,251,175,5,5,207,183,5,5,104,175,5,5,181,217,5,5,129,179,5,5,72,220,5,5,251,208,5,5,36,204,5,5,70,247,5,5,27,212,5,5,36,171,5,5,61,195,5,5,62,195,5,5,74,212,5,5,98,202,5,5,73,220,5,5,37,171,5,5,63,173,5,5,49,196,5,5,142,186,5,5,168,185,5,5,133,178,5,5,253,175,5,5,226,199,5,5,88,199,5,5,69,181,5,5,9,182,5,5,203,246,5,5,225,222,5,5,7,218,5,5,16,220,5,5,141,176,5,5,249,198,5,5,66,195,5,5,93,187,5,5,142,176,5,5,94,187,5,5,93,198,5,5,70,181,5,5,203,192,5,5,45,226,5,5,55,196,5,5,23,205,5,5,132,206,5,5,49,244,5,5,142,242,5,5,92,177,5,5,90,235,5,5,16,199,5,5,128,200,5,5,94,215,5,5,17,220,5,5,254,175,5,5,160,186,5,5,12,194,5,5,93,177,5,5,246,201,5,5,240,225,5,5,229,182,5,5,241,213,5,5,68,173,5,5,116,214,5,5,255,175,5,5,87,249,5,5,11,185,5,5,82,228,5,5,146,171,5,5,12,192,5,5,29,181,5,5,186,216,5,5,119,220,5,5,114,180,5,5,19,194,5,5,216,192,5,5,147,171,5,5,52,236,5,5,78,197,5,5,185,191,5,5,152,221,5,5,209,193,5,5,39,181,5,5,183,180,5,5,34,230,5,5,161,186,5,5,95,184,5,5,150,221,5,5,24,194,5,5,97,185,5,5,132,177,5,5,99,198,5,5,3,176,5,5,206,175,5,5,76,173,5,5,148,227,5,5,166,205,5,5,8,202,5,5,196,212,5,5,93,220,5,5,87,213,5,5,66,199,5,5,211,194,5,5,151,186,5,5,243,215,5,5,221,197,5,5,64,190,5,5,134,244,5,5,230,248,5,5,252,202,5,5,102,197,5,5,227,212,5,5,149,204,5,5,108,187,5,5,224,194,5,5,109,187,5,5,46,194,5,5,47,194,5,5,88,225,5,5,188,191,5,5,3,193,5,5,57,194,5,5,101,239,5,5,58,194,5,5,45,247,5,5,46,173,5,5,255,193,5,5,82,209,5,5,54,202,5,5,19,248,5,5,90,202,5,5,22,236,5,5,6,218,5,5,29,169,5,5,205,185,5,5,35,193,5,5,113,230,5,5,221,206,5,5,176,203,5,5,213,195,5,5,32,199,5,5,99,233,5,5,162,246,5,5,50,180,5,5,26,248,5,5,136,211,5,5,63,195,5,5,134,217,5,5,213,220,5,5,235,238,5,5,201,247,5,5,87,209,5,5,99,202,5,5,214,195,5,5,78,201,5,5,79,201,5,5,148,197,5,5,71,199,5,5,47,237,5,5,43,228,5,5,72,233,5,5,148,209,5,5,169,199,5,5,67,195,5,5,178,203,5,5,156,188,5,5,17,222,5,5,250,198,5,5,219,195,5,5,71,185,5,5,181,171,5,5,255,208,5,5,230,174,5,5,34,201,5,5,230,240,5,5,231,240,5,5,151,208,5,5,251,198,5,5,134,235,5,5,151,197,5,5,187,216,5,5,149,205,5,5,22,172,5,5,20,208,5,5,233,174,5,5,154,201,5,5,119,198,5,5,156,208,5,5,65,180,5,5,216,234,5,5,219,234,5,5,125,198,5,5,130,230,5,5,31,239,5,5,137,235,5,5,215,229,5,5,153,221,5,5,86,201,5,5,198,209,5,5,167,205,5,5,112,213,5,5,54,222,5,5,30,192,5,5,125,216,5,5,137,194,5,5,183,173,5,5,9,218,5,5,230,232,5,5,77,239,5,5,222,197,5,5,57,182,5,5,132,197,5,5,27,227,5,5,103,197,5,5,235,177,5,5,127,233,5,5,231,206,5,5,142,235,5,5,143,235,5,5,18,206,5,5,170,202,5,5,235,173,5,5,80,218,5,5,11,218,5,5,81,169,5,5,206,220,5,5,65,243,5,5,145,196,5,5,124,169,5,5,246,185,5,5,112,230,5,5,66,243,5,5,157,229,5,5,64,234,5,5,169,184,5,5,170,184,5,5,82,169,5,5,152,176,5,5,225,238,5,5,67,234,5,5,142,212,5,5,211,196,5,5,179,225,5,5,111,185,5,5,12,214,5,5,149,181,5,5,82,212,5,5,244,183,5,5,217,185,5,5,133,177,5,5,190,196,5,5,224,185,5,5,22,170,5,5,50,190,5,5,159,169,5,5,81,210,5,5,87,222,5,5,136,182,5,5,180,196,5,5,101,238,5,5,149,243,5,5,126,194,5,5,175,198,5,5,127,194,5,5,168,199,5,5,141,189,5,5,167,231,5,5,90,217,5,5,77,182,5,5,71,187,5,5,69,216,5,5,237,243,5,5,172,199,5,5,207,182,5,5,153,189,5,5,237,241,5,5,83,187,5,5,19,200,5,5,90,191,5,5,229,177,5,5,107,187,5,5,247,202,5,5,253,202,5,5,39,224,5,5,135,180,5,5,203,196,5,5,251,197,5,5,103,231,5,5,24,213,5,5,86,217,5,5,64,238,5,5,200,198,5,5,147,236,5,5,189,170,5,5,174,210,5,5,104,217,5,5,201,221,5,5,197,235,5,5,25,215,5,5,216,210,5,5,136,219,5,5,190,249,5,5,110,221,5,5,78,230,5,5,63,191,5,5,30,169,5,5,9,222,5,5,104,231,5,5,140,228,5,5,31,190,5,5,100,233,5,5,141,228,5,5,148,169,5,5,192,249,5,5,187,248,5,5,103,233,5,5,215,177,5,5,226,206,5,5,21,210,5,5,217,177,5,5,122,192,5,5,196,171,5,5,235,222,5,5,244,171,5,5,194,199,5,5,199,170,5,5,2,172,5,5,249,244,5,5,80,198,5,5,69,205,5,5,65,241,5,5,114,205,5,5,176,230,5,5,163,186,5,5,250,229,5,5,159,233,5,5,55,195,5,5,56,195,5,5,84,229,5,5,91,168,5,5,225,216,5,5,80,246,5,5,92,207,5,5,29,240,5,5,198,228,5,5,214,220,5,5,102,192,5,5,17,218,5,5,52,206,5,5,207,174,5,5,138,197,5,5,155,233,5,5,204,234,5,5,190,195,5,5,18,218,5,5,127,230,5,5,109,192,5,5,155,181,5,5,171,216,5,5,228,230,5,5,171,219,5,5,149,173,5,5,22,229,5,5,131,181,5,5,195,226,5,5,91,202,5,5,116,245,5,5,15,188,5,5,92,202,5,5,13,236,5,5,228,235,5,5,198,236,5,5,240,220,5,5,249,178,5,5,155,244,5,5,52,212,5,5,249,235,5,5,65,216,5,5,252,235,5,5,204,246,5,5,160,172,5,5,54,212,5,5,248,225,5,5,245,201,5,5,244,220,5,5,127,189,5,5,202,226,5,5,226,249,5,5,94,177,5,5,230,182,5,5,181,242,5,5,168,172,5,5,187,242,5,5,164,232,5,5,151,236,5,5,147,202,5,5,214,197,5,5,48,220,5,5,69,179,5,5,112,175,5,5,191,196,5,5,196,195,5,5,104,168,5,5,89,187,5,5,232,236,5,5,77,223,5,5,154,202,5,5,156,173,5,5,216,200,5,5,163,202,5,5,119,236,5,5,180,236,5,5,228,242,5,5,54,223,5,5,204,185,5,5,214,203,5,5,240,218,5,5,179,217,5,5,180,217,5,5,241,181,5,5,183,201,5,5,113,180,5,5,104,232,5,5,78,248,5,5,168,219,5,5,72,172,5,5,73,172,5,5,74,172,5,5,77,172,5,5,12,168,5,5,198,177,5,5,86,241,5,5,198,172,5,5,94,192,5,5,62,241,5,5,242,222,5,5,110,182,5,5,90,222,5,5,182,186,5,5,186,168,5,5,19,182,5,5,109,219,5,5,13,222,5,5,120,222,5,5,205,248,5,5,171,217,5,5,98,222,5,5,207,170,5,5,207,234,5,5,171,231,5,5,32,212,5,5,209,223,5,5,110,192,5,5,93,229,5,5,210,223,5,5,204,179,5,5,98,219,5,5,206,176,5,5,70,199,5,5,74,186,5,5,54,197,5,5,120,204,5,5,159,186,5,5,105,178,5,5,72,199,5,5,160,246,5,5,247,194,5,5,87,245,5,5,164,168,5,5,227,179,5,5,239,198,5,5,225,224,5,5,223,174,5,5,240,221,5,5,87,241,5,5,32,217,5,5,219,213,5,5,252,237,5,5,113,188,5,5,57,223,5,5,71,225,5,5,203,174,5,5,136,201,5,5,127,179,5,5,251,191,5,5,153,203,5,5,23,189,5,5,203,208,5,5,138,234,5,5,34,207,5,5,145,174,5,5,151,185,5,5,255,234,5,5,113,237,5,5,60,249,5,5,154,188,5,5,96,192,5,5,153,179,5,5,70,177,5,5,255,226,5,5,24,209,5,5,125,189,5,5,95,202,5,5,131,227,5,5,218,232,5,5,122,244,5,5,212,231,5,5,244,237,5,5,229,205,5,5,229,235,5,5,208,206,5,5,212,211,5,5,184,191,5,5,65,238,5,5,18,198,5,5,89,175,5,5,15,204,5,5,191,227,5,5,214,239,5,5,218,182,5,5,27,170,5,5,155,216,5,5,156,216,5,5,133,195,5,5,13,172,5,5,154,183,5,5,225,168,5,5,240,180,5,5,249,182,5,5,98,181,5,5,241,187,5,5,199,226,5,5,34,199,5,5,25,223,5,5,198,214,5,5,46,189,5,5,83,246,5,5,3,240,5,5,48,230,5,5,49,230,5,5,200,173,5,5,226,209,5,5,125,235,5,5,168,230,5,5,5,176,5,5,74,180,5,5,186,229,5,5,123,189,5,5,24,189,5,5,50,230,5,5,69,185,5,5,50,236,5,5,43,198,5,5,230,205,5,5,137,181,5,5,109,185,5,5,135,207,5,5,162,177,5,5,199,214,5,5,88,174,5,5,51,230,5,5,70,185,5,5,164,183,5,5,248,194,5,5,25,189,5,5,204,174,5,5,113,221,5,5,227,209,5,5,192,227,5,5,39,184,5,5,236,238,5,5,163,177,5,5,213,211,5,5,100,202,5,5,206,169,5,5,174,242,5,5,145,187,5,5,207,229,5,5,173,215,5,5,26,230,5,5,141,181,5,5,166,221,5,5,139,197,5,5,139,212,5,5,189,229,5,5,102,210,5,5,166,206,5,5,121,204,5,5,56,218,5,5,8,241,5,5,254,178,5,5,131,247,5,5,18,222,5,5,172,247,5,5,192,226,5,5,109,231,5,5,246,238,5,5,227,214,5,5,164,213,5,5,67,249,5,5,43,186,5,5,92,176,5,5,88,229,5,5,183,234,5,5,146,188,5,5,59,210,5,5,136,184,5,5,98,212,5,5,247,238,5,5,241,232,5,5,21,221,5,5,143,189,5,5,51,209,5,5,123,177,5,5,182,217,5,5,32,197,5,5,244,187,5,5,152,243,5,5,226,227,5,5,26,181,5,5,250,213,5,5,75,212,5,5,38,171,5,5,212,183,5,5,25,237,5,5,157,188,5,5,173,243,5,5,158,188,5,5,203,187,5,5,183,196,5,5,226,240,5,5,79,184,5,5,109,177,5,5,173,247,5,5,62,228,5,5,75,198,5,5,44,186,5,5,76,198,5,5,51,250,5,5,15,172,5,5,210,204,5,5,20,180,5,5,49,211,5,5,221,224,5,5,60,223,5,5,105,232,5,5,208,191,5,5,231,214,5,5,10,182,5,5,144,181,5,5,252,186,5,5,169,244,5,5,115,231,5,5,117,238,5,5,173,203,5,5,2,249,5,5,204,208,5,5,38,208,5,5,177,246,5,5,183,237,5,5,9,192,5,5,177,247,5,5,91,185,5,5,194,222,5,5,203,243,5,5,73,233,5,5,204,187,5,5,2,191,5,5,124,199,5,5,90,190,5,5,181,225,5,5,22,232,5,5,145,181,5,5,56,235,5,5,90,234,5,5,146,187,5,5,202,236,5,5,105,201,5,5,69,238,5,5,0,133,5,5,146,213,5,5,72,221,5,5,6,227,5,5,28,189,5,5,71,234,5,5,27,181,5,5,73,228,5,5,199,187,5,5,177,243,5,5,94,241,5,5,223,179,5,5,251,211,5,5,201,232,5,5,0,132,5,5,161,185,5,5,173,199,5,5,15,236,5,5,127,177,5,5,244,232,5,5,60,170,5,5,70,191,5,5,192,210,5,5,20,190,5,5,61,234,5,5,140,199,5,5,52,181,5,5,255,182,5,5,205,192,5,5,97,211,5,5,145,209,5,5,184,240,5,5,117,188,5,5,182,242,5,5,18,205,5,5,251,213,5,5,46,207,5,5,93,185,5,5,190,211,5,5,148,174,5,5,217,220,5,5,242,201,5,5,223,209,5,5,193,249,5,5,171,188,5,5,92,199,5,5,247,232,5,5,116,232,5,5,82,201,5,5,148,171,5,5,123,245,5,5,128,244,5,5,98,203,5,5,174,168,5,5,205,208,5,5,184,203,5,5,49,224,5,5,238,183,5,5,4,172,5,5,230,187,5,5,2,189,5,5,186,185,5,5,35,223,5,5,147,185,5,5,104,241,5,5,207,236,5,5,52,186,5,5,82,186,5,5,207,169,5,5,248,187,5,5,129,224,5,5,43,176,5,5,18,239,5,5,0,134,5,5,79,193,5,5,81,227,5,5,23,232,5,5,113,228,5,5,123,202,5,5,188,230,5,5,100,225,5,5,42,250,5,5,49,217,5,5,216,173,5,5,54,230,5,5,25,244,5,5,16,236,5,5,75,180,5,5,203,214,5,5,220,178,5,5,159,216,5,5,196,206,5,5,100,209,5,5,242,185,5,5,87,180,5,5,183,217,5,5,83,201,5,5,88,203,5,5,149,224,5,5,26,244,5,5,150,190,5,5,74,201,5,5,19,220,5,5,13,192,5,5,210,249,5,5,233,229,5,5,131,183,5,5,227,195,5,5,217,189,5,5,237,214,5,5,101,222,5,5,245,228,5,5,226,222,5,5,165,173,5,5,229,181,5,5,136,202,5,5,233,215,5,5,65,168,5,5,50,244,5,5,185,240,5,5,220,210,5,5,122,241,5,5,112,226,5,5,185,200,5,5,43,220,5,5,198,230,5,5,33,228,5,5,154,189,5,5,0,145,5,5,76,245,5,5,122,211,5,5,22,199,5,5,215,248,5,5,216,248,5,5,159,220,5,5,30,179,5,5,5,189,5,5,219,203,5,5,0,131,5,5,58,172,5,5,165,232,5,5,195,227,5,5,92,230,5,5,201,229,5,5,37,177,5,5,44,220,5,5,88,186,5,5,206,214,5,5,207,214,5,5,186,225,5,5,16,178,5,5,17,178,5,5,13,238,5,5,75,249,5,5,38,170,5,5,38,177,5,5,198,175,5,5,177,188,5,5,17,236,5,5,209,214,5,5,127,245,5,5,180,182,5,5,89,203,5,5,34,232,5,5,254,212,5,5,45,220,5,5,155,200,5,5,51,244,5,5,54,240,5,5,167,186,5,5,227,211,5,5,153,245,5,5,233,219,5,5,101,248,5,5,253,210,5,5,149,187,5,5,100,206,5,5,101,236,5,5,204,178,5,5,215,217,5,5,70,173,5,5,154,171,5,5,254,179,5,5,33,201,5,5,79,233,5,5,3,197,5,5,103,225,5,5,239,174,5,5,252,225,5,5,60,168,5,5,156,196,5,5,23,178,5,5,77,198,5,5,219,240,5,5,98,229,5,5,27,210,5,5,126,220,5,5,44,242,5,5,132,245,5,5,133,200,5,5,36,195,5,5,109,189,5,5,18,188,5,5,192,179,5,5,145,247,5,5,251,172,5,5,75,228,5,5,170,211,5,5,32,242,5,5,189,239,5,5,164,243,5,5,119,237,5,5,188,211,5,5,158,208,5,5,179,189,5,5,104,243,5,5,222,175,5,5,83,191,5,5,159,190,5,5,160,190,5,5,78,231,5,5,149,188,5,5,21,192,5,5,21,200,5,5,100,247,5,5,250,228,5,5,49,220,5,5,224,234,5,5,192,190,5,5,42,181,5,5,3,211,5,5,9,235,5,5,102,203,5,5,45,242,5,5,205,219,5,5,157,174,5,5,16,216,5,5,218,236,5,5,225,177,5,5,141,212,5,5,78,172,5,5,4,202,5,5,186,240,5,5,130,244,5,5,206,228,5,5,176,208,5,5,116,240,5,5,132,212,5,5,6,172,5,5,245,199,5,5,50,231,5,5,46,242,5,5,37,195,5,5,27,205,5,5,111,199,5,5,29,244,5,5,250,189,5,5,7,226,5,5,142,237,5,5,223,188,5,5,0,130,5,5,126,234,5,5,188,215,5,5,239,219,5,5,193,240,5,5,254,223,5,5,94,189,5,5,120,233,5,5,7,168,5,5,136,224,5,5,209,206,5,5,205,172,5,5,222,187,5,5,217,198,5,5,113,177,5,5,197,219,5,5,242,173,5,5,51,219,5,5,188,223,5,5,50,228,5,5,31,192,5,5,64,212,5,5,37,230,5,5,131,215,5,5,55,222,5,5,125,185,5,5,17,249,5,5,38,195,5,5,122,201,5,5,209,229,5,5,66,228,5,5,132,223,5,5,159,174,5,5,95,188,5,5,169,224,192,0,0,0,5,5,205,187,5,5,155,224,5,5,126,216,5,5,6,211,5,5,151,188,5,5,140,246,5,5,161,219,5,5,215,209,5,5,149,185,5,5,219,209,5,5,176,179,5,5,0,140,5,5,183,215,5,5,251,226,5,5,95,170,5,5,106,168,5,5,107,168,5,5,241,202,5,5,228,249,5,5,113,245,5,5,114,209,5,5,220,223,5,5,212,223,5,5,64,225,5,5,231,178,5,5,83,214,5,5,7,195,5,5,19,175,5,5,167,194,5,5,100,198,5,5,78,225,5,5,95,220,5,5,139,172,5,5,65,193,5,5,0,150,5,5,83,233,5,5,113,213,5,5,32,205,5,5,137,184,5,5,104,186,5,5,17,233,5,5,159,189,5,5,99,191,5,5,156,187,5,5,216,211,5,5,248,231,5,5,58,244,5,5,138,173,5,5,162,234,5,5,213,213,5,5,156,178,5,5,210,206,5,5,200,206,5,5,190,189,5,5,227,201,5,5,116,180,5,5,138,184,5,5,86,225,5,5,248,237,5,5,242,169,5,5,66,240,5,5,156,219,5,5,8,195,5,5,111,208,5,5,84,233,5,5,25,190,5,5,218,206,5,5,65,218,5,5,199,175,5,5,153,212,5,5,90,201,5,5,86,233,5,5,41,192,5,5,15,248,5,5,192,173,5,5,30,200,5,5,233,249,5,5,22,233,5,5,84,223,5,5,101,188,5,5,65,184,5,5,123,203,5,5,20,216,5,5,245,230,5,5,182,175,5,5,80,173,5,5,35,178,5,5,245,188,5,5,220,235,5,5,128,181,5,5,16,250,5,5,58,182,5,5,164,174,5,5,27,191,5,5,208,243,5,5,244,175,5,5,233,176,5,5,32,178,5,5,85,242,5,5,198,227,5,5,190,172,5,5,12,195,5,5,230,237,5,5,246,230,5,5,249,214,5,5,98,188,5,5,254,202,5,5,166,234,5,5,175,178,5,5,29,191,5,5,243,239,5,5,6,214,5,5,172,197,5,5,131,216,5,5,186,235,5,5,9,211,5,5,66,205,5,5,85,223,5,5,175,236,5,5,181,240,5,5,116,177,5,5,213,244,5,5,189,211,5,5,193,247,5,5,246,195,5,5,104,211,5,5,111,191,5,5,183,233,5,5,251,214,5,5,190,181,5,5,33,244,5,5,87,238,5,5,74,222,5,5,15,195,5,5,251,242,5,5,0,143,5,5,202,240,5,5,236,197,5,5,149,199,5,5,255,241,5,5,133,212,5,5,145,178,5,5,141,184,5,5,22,189,5,5,248,180,5,5,56,178,5,5,233,233,5,5,157,219,5,5,231,212,5,5,36,213,5,5,208,239,5,5,235,249,5,5,63,211,5,5,240,178,5,5,25,201,5,5,182,224,5,5,189,191,5,5,27,219,5,5,87,188,5,5,218,231,5,5,41,238,5,5,36,181,5,5,51,213,5,5,74,175,5,5,8,193,5,5,250,195,5,5,105,188,5,5,67,226,5,5,145,173,5,5,146,235,5,5,129,207,5,5,40,172,5,5,69,226,5,5,131,205,5,5,130,191,5,5,222,171,5,5,19,241,5,5,22,211,5,5,247,239,5,5,10,190,5,5,133,207,5,5,39,189,5,5,144,245,5,5,36,202,5,5,163,204,5,5,227,187,5,5,44,210,5,5,38,233,5,5,74,209,5,5,251,236,5,5,191,202,5,5,88,205,5,5,233,204,5,5,77,209,5,5,45,178,5,5,46,174,5,5,141,213,5,5,38,213,5,5,235,232,5,5,233,191,5,5,78,209,5,5,151,231,5,5,67,181,5,5,118,199,5,5,125,236,5,5,49,173,5,5,90,240,5,5,90,218,5,5,99,179,5,5,132,200,5,5,216,224,5,5,44,233,5,5,252,197,5,5,89,176,5,5,100,190,5,5,239,191,5,5,116,248,5,5,31,211,5,5,45,233,5,5,46,172,5,5,47,202,5,5,94,173,5,5,6,173,5,5,214,202,5,5,155,239,5,5,102,206,5,5,46,210,5,5,170,243,5,5,232,223,5,5,99,231,5,5,101,244,5,5,194,193,5,5,171,243,5,5,20,248,5,5,243,200,5,5,38,211,5,5,42,210,5,5,17,201,5,5,207,204,5,5,231,228,5,5,38,191,5,5,167,239,5,5,33,217,5,5,106,223,5,5,44,211,5,5,198,193,5,5,39,191,5,5,245,233,5,5,168,239,5,5,16,210,5,5,145,227,5,5,146,227,5,5,6,181,5,5,177,198,5,5,140,242,5,5,125,196,5,5,58,213,5,5,68,243,5,5,153,176,5,5,168,189,5,5,40,191,5,5,175,242,5,5,99,181,5,5,163,187,5,5,93,200,5,5,154,176,5,5,247,226,5,5,92,227,5,5,234,228,5,5,69,206,5,5,164,187,5,5,46,218,5,5,185,218,5,5,38,204,5,5,121,186,5,5,165,187,5,5,222,224,5,5,166,187,5,5,93,227,5,5,95,241,5,5,167,187,5,5,221,239,5,5,176,191,5,5,33,214,5,5,233,241,5,5,249,187,5,5,183,242,5,5,76,206,5,5,199,217,5,5,238,241,5,5,173,216,5,5,168,187,5,5,213,175,5,5,251,228,5,5,189,242,5,5,200,217,5,5,96,199,5,5,37,214,5,5,197,242,5,5,198,242,5,5,45,236,5,5,108,227,5,5,116,227,5,5,117,227,5,5,149,227,5,5,61,206,5,5,103,191,5,5,102,239,5,5,124,190,5,5,34,206,5,5,45,206,5,5,129,227,5,5,23,236,5,5,130,227,5,5,233,226,5,5,147,221,5,5,11,214,5,5,141,205,5,5,135,199,5,5,227,235,5,5,188,243,5,5,233,228,5,5,84,185,5,5,12,242,5,5,20,230,5,5,23,187,5,5,28,213,5,5,102,238,5,5,167,178,5,5,28,215,5,5,29,215,5,5,244,245,5,5,200,248,5,5,76,178,5,5,16,215,5,5,213,231,5,5,71,220,5,5,196,199,5,5,150,173,5,5,100,214,5,5,246,210,5,5,88,209,5,5,255,191,5,5,73,193,5,5,165,246,5,5,166,246,5,5,16,169,5,5,133,235,5,5,237,238,5,5,144,216,5,5,136,207,5,5,19,198,5,5,235,218,5,5,202,227,5,5,139,182,5,5,221,169,5,5,222,169,5,5,10,225,5,5,132,198,5,5,89,190,5,5,34,250,5,5,35,199,5,5,49,170,5,5,50,196,5,5,16,179,5,5,6,196,5,5,197,192,5,5,136,199,5,5,250,178,5,5,7,196,5,5,127,193,5,5,23,225,5,5,101,202,5,5,208,168,5,5,119,230,5,5,17,183,5,5,150,248,5,5,203,213,5,5,33,169,5,5,99,225,5,5,47,200,5,5,95,217,5,5,58,225,5,5,86,246,5,5,245,227,5,5,195,184,5,5,165,213,5,5,103,179,5,5,164,186,5,5,120,210,5,5,228,224,5,5,207,212,5,5,116,196,5,5,81,237,5,5,149,183,5,5,141,168,5,5,145,205,5,5,7,217,5,5,170,209,5,5,240,198,5,5,19,186,5,5,126,235,5,5,189,168,5,5,180,174,5,5,225,173,5,5,39,204,5,5,29,248,5,5,80,184,5,5,144,189,5,5,205,246,5,5,8,176,5,5,120,200,5,5,7,205,5,5,8,205,5,5,72,205,5,5,142,168,5,5,172,177,5,5,76,212,5,5,23,209,5,5,30,234,5,5,53,180,5,5,206,192,5,5,217,188,5,5,4,206,5,5,104,176,5,5,209,174,5,5,186,201,5,5,151,184,5,5,172,239,5,5,128,189,5,5,207,180,5,5,91,245,5,5,225,183,5,5,253,186,5,5,129,237,5,5,53,181,5,5,54,181,5,5,74,187,5,5,216,172,5,5,51,237,5,5,219,239,5,5,28,182,5,5,23,186,5,5,178,242,5,5,180,179,5,5,105,233,5,5,20,199,5,5,173,220,5,5,94,222,5,5,146,181,5,5,128,171,5,5,105,179,5,5,56,189,5,5,233,235,5,5,125,199,5,5,158,177,5,5,82,198,5,5,79,178,5,5,94,198,5,5,72,188,5,5,77,210,5,5,63,168,5,5,5,234,5,5,117,232,5,5,240,242,5,5,48,169,5,5,174,183,5,5,211,168,5,5,19,239,5,5,33,240,5,5,29,188,5,5,211,234,5,5,10,176,5,5,111,216,5,5,187,185,5,5,0,135,5,5,245,169,5,5,154,182,5,5,19,218,5,5,233,240,5,5,47,198,5,5,50,193,5,5,25,179,5,5,212,206,5,5,68,201,5,5,141,197,5,5,94,174,5,5,81,220,5,5,174,195,5,5,124,245,5,5,185,203,5,5,186,203,5,5,23,172,5,5,101,174,5,5,21,190,5,5,24,172,5,5,220,221,5,5,135,235,5,5,147,187,5,5,118,196,5,5,246,237,5,5,221,210,5,5,205,178,5,5,33,242,5,5,29,172,5,5,237,235,5,5,216,217,5,5,77,224,5,5,255,212,5,5,174,216,5,5,116,228,5,5,84,197,5,5,92,206,5,5,26,246,5,5,50,199,5,5,39,175,5,5,28,180,5,5,188,177,5,5,73,225,5,5,66,168,5,5,67,172,5,5,168,175,5,5,246,169,5,5,137,198,5,5,130,246,5,5,57,181,5,5,32,239,5,5,131,246,5,5,33,239,5,5,107,212,5,5,19,192,5,5,181,248,5,5,125,214,5,5,223,219,5,5,85,197,5,5,129,210,5,5,94,199,5,5,3,199,5,5,101,225,5,5,49,200,5,5,176,210,5,5,139,193,5,5,208,180,5,5,193,195,5,5,13,185,5,5,34,242,5,5,156,181,5,5,162,212,5,5,125,186,5,5,138,227,5,5,238,201,5,5,175,182,5,5,3,236,5,5,149,215,5,5,50,200,5,5,80,168,5,5,39,221,5,5,78,181,5,5,83,210,5,5,84,227,5,5,112,174,5,5,190,239,5,5,165,191,5,5,82,170,5,5,51,203,5,5,150,187,5,5,193,179,5,5,102,248,5,5,133,189,5,5,107,169,5,5,108,169,5,5,163,241,5,5,208,178,5,5,81,207,5,5,39,195,5,5,61,219,5,5,16,238,5,5,199,185,5,5,127,198,5,5,101,249,5,5,164,241,5,5,193,190,5,5,163,181,5,5,138,237,5,5,219,236,5,5,133,169,5,5,109,176,5,5,151,207,5,5,153,173,5,5,157,180,5,5,3,228,5,5,34,240,5,5,122,183,5,5,122,247,5,5,151,195,5,5,179,195,5,5,21,189,5,5,18,185,5,5,28,176,5,5,214,193,5,5,183,213,5,5,187,201,5,5,224,232,5,5,185,190,5,5,229,201,5,5,191,180,5,5,85,228,5,5,10,235,5,5,230,192,5,5,132,192,5,5,143,199,5,5,125,240,5,5,178,224,5,5,120,174,5,5,244,240,5,5,103,198,5,5,255,223,5,5,2,224,5,5,226,221,5,5,108,208,5,5,185,224,5,5,217,229,5,5,121,174,5,5,109,227,5,5,106,225,5,5,27,218,5,5,102,247,5,5,155,202,5,5,103,247,5,5,71,169,5,5,153,219,5,5,253,243,5,5,209,180,5,5,95,226,5,5,144,230,5,5,73,246,5,5,138,235,5,5,126,185,5,5,5,246,5,5,8,168,5,5,218,185,5,5,112,236,5,5,140,198,5,5,96,226,5,5,199,242,5,5,138,229,5,5,179,233,5,5,196,204,5,5,214,187,5,5,63,201,5,5,139,173,5,5,167,212,5,5,255,169,5,5,17,174,5,5,174,205,5,5,121,205,5,5,198,211,5,5,157,215,5,5,165,207,5,5,115,209,5,5,83,248,5,5,3,223,5,5,161,222,5,5,52,205,5,5,196,174,5,5,16,207,5,5,240,170,5,5,100,196,5,5,180,172,5,5,213,222,5,5,19,247,5,5,60,245,5,5,151,198,5,5,196,240,5,5,117,179,5,5,30,174,5,5,143,246,5,5,135,231,5,5,154,187,5,5,227,215,5,5,238,195,5,5,51,179,5,5,162,220,5,5,200,209,5,5,14,177,5,5,233,236,5,5,187,224,5,5,102,244,5,5,109,215,5,5,209,215,5,5,79,203,5,5,104,229,5,5,161,248,5,5,248,215,5,5,104,244,5,5,163,234,5,5,132,220,5,5,133,220,5,5,202,168,5,5,22,214,5,5,147,199,5,5,44,180,5,5,91,182,5,5,34,218,5,5,131,209,5,5,244,180,5,5,245,180,5,5,3,250,5,5,52,179,5,5,158,221,5,5,85,181,5,5,88,181,5,5,35,225,5,5,191,178,5,5,166,209,5,5,34,183,5,5,205,190,5,5,36,225,5,5,160,177,5,5,21,238,5,5,60,248,5,5,48,194,5,5,152,168,5,5,215,215,5,5,52,192,5,5,251,215,5,5,25,199,5,5,103,239,5,5,15,213,5,5,130,170,5,5,118,179,5,5,99,194,5,5,250,237,5,5,203,240,5,5,109,235,5,5,41,225,5,5,6,201,5,5,107,197,5,5,91,190,5,5,95,178,5,5,89,218,5,5,166,215,5,5,147,235,5,5,149,232,5,5,93,231,5,5,232,188,5,5,17,168,5,5,244,235,5,5,128,178,5,5,106,188,5,5,63,219,5,5,251,195,5,5,198,201,5,5,215,199,5,5,89,205,5,5,126,236,5,5,51,225,5,5,78,229,5,5,92,190,5,5,13,205,5,5,14,205,5,5,99,219,5,5,192,202,5,5,248,203,5,5,91,218,5,5,50,173,5,5,155,235,5,5,131,236,5,5,175,201,5,5,222,168,5,5,91,228,5,5,254,221,5,5,120,218,5,5,192,219,5,5,133,248,5,5,134,248,5,5,114,221,5,5,66,238,5,5,224,206,5,5,235,198,5,5,35,248,5,5,137,248,5,5,174,189,5,5,176,189,5,5,82,200,5,5,77,238,5,5,180,189,5,5,225,234,5,5,88,200,5,5,107,222,5,5,63,207,5,5,4,250,5,5,108,222,5,5,88,238,5,5,158,246,5,5,73,186,5,5,156,175,5,5,128,194,5,5,118,183,5,5,166,169,5,5,182,244,5,5,211,170,5,5,45,224,5,5,45,218,5,5,40,204,5,5,84,184,5,5,95,177,5,5,215,231,5,5,85,234,5,5,200,233,5,5,73,210,5,5,222,231,5,5,8,200,5,5,165,230,5,5,78,228,5,5,234,242,5,5,93,207,5,5,235,223,5,5,24,181,5,5,25,181,5,5,3,238,5,5,184,216,5,5,79,228,5,5,27,186,5,5,28,186,5,5,239,214,5,5,34,208,5,5,35,208,5,5,240,239,5,5,204,191,5,5,31,174,5,5,154,177,5,5,80,244,5,5,74,226,5,5,248,224,5,5,161,183,5,5,181,186,5,5,112,237,5,5,24,237,5,5,67,188,5,5,53,185,5,5,164,221,5,5,155,225,5,5,250,224,5,5,61,227,5,5,139,236,5,5,24,170,5,5,103,238,5,5,119,199,5,5,37,193,5,5,37,181,5,5,52,190,5,5,191,199,5,5,98,243,5,5,39,193,5,5,168,168,5,5,211,181,5,5,230,202,5,5,146,190,5,5,201,178,5,5,144,236,5,5,89,212,5,5,147,197,5,5,107,214,5,5,6,210,5,5,134,183,5,5,106,233,5,5,55,183,5,5,87,179,5,5,194,217,5,5,238,199,5,5,184,249,5,5,148,190,5,5,232,214,5,5,87,198,5,5,124,244,5,5,208,169,5,5,7,239,5,5,113,194,5,5,207,225,5,5,250,243,5,5,217,169,5,5,189,230,5,5,237,190,5,5,209,182,5,5,132,179,5,5,213,235,5,5,234,169,5,5,112,179,5,5,145,168,5,5,224,220,5,5,216,229,5,5,202,187,5,5,146,168,5,5,145,230,5,5,147,168,5,5,117,194,5,5,248,202,5,5,45,181,5,5,58,243,5,5,118,194,5,5,70,222,5,5,63,183,5,5,224,191,5,5,145,170,5,5,35,206,5,5,68,181,5,5,143,211,5,5,130,211,5,5,238,179,5,5,250,209,5,5,30,215,5,5,124,193,5,5,173,224,5,5,169,196,5,5,152,211,5,5,233,172,5,5,111,188,5,5,228,231,5,5,116,182,5,5,173,192,5,5,38,223,5,5,12,219,5,5,177,182,5,5,191,228,5,5,44,189,5,5,118,248,5,5,76,184,5,5,167,206,5,5,214,177,5,5,151,218,5,5,165,183,5,5,71,196,5,5,85,236,5,5,218,187,5,5,198,229,5,5,71,247,5,5,223,211,5,5,166,180,5,5,198,192,5,5,36,199,5,5,113,247,5,5,114,237,5,5,215,195,5,5,69,243,5,5,196,208,5,5,155,183,5,5,146,174,5,5,10,243,5,5,120,248,5,5,81,211,5,5,199,236,5,5,228,209,5,5,215,233,5,5,18,183,5,5,28,170,5,5,132,241,5,5,21,228,5,5,74,183,5,5,142,228,5,5,151,182,5,5,81,230,5,5,16,242,5,5,24,187,5,5,169,180,5,5,190,168,5,5,118,210,5,5,159,247,5,5,206,248,5,5,70,245,5,5,124,177,5,5,254,209,5,5,236,242,5,5,66,227,5,5,19,232,5,5,123,246,5,5,91,181,5,5,196,207,5,5,89,209,5,5,61,214,5,5,53,170,5,5,22,221,5,5,66,216,5,5,92,181,5,5,159,188,5,5,184,234,5,5,27,182,5,5,21,246,5,5,224,208,5,5,34,169,5,5,171,209,5,5,166,183,5,5,41,204,5,5,61,249,5,5,62,249,5,5,245,221,5,5,71,218,5,5,76,220,5,5,26,237,5,5,238,206,5,5,124,195,5,5,45,186,5,5,111,223,5,5,48,234,5,5,29,229,5,5,3,249,5,5,58,197,5,5,77,220,5,5,125,213,5,5,159,218,5,5,130,237,5,5,54,180,5,5,85,194,5,5,124,222,5,5,111,192,5,5,152,184,5,5,219,232,5,5,32,190,5,5,123,197,5,5,154,194,5,5,24,186,5,5,106,201,5,5,135,193,5,5,136,193,5,5,118,238,5,5,219,210,5,5,125,246,5,5,10,192,5,5,14,192,5,5,112,232,5,5,7,189,5,5,254,186,5,5,21,198,5,5,120,199,5,5,203,236,5,5,47,209,5,5,179,203,5,5,120,212,5,5,147,181,5,5,96,241,5,5,94,236,5,5,238,172,5,5,27,221,5,5,173,239,5,5,213,221,5,5,75,187,5,5,208,217,5,5,4,249,5,5,147,223,5,5,199,228,5,5,57,189,5,5,58,228,5,5,24,205,5,5,33,236,5,5,99,218,5,5,155,194,5,5,24,206,5,5,154,213,5,5,118,232,5,5,218,220,5,5,68,202,5,5,95,174,5,5,160,233,5,5,47,207,5,5,175,183,5,5,130,224,5,5,144,207,5,5,33,229,5,5,254,198,5,5,72,176,5,5,73,176,5,5,236,226,5,5,223,210,5,5,35,234,5,5,23,210,5,5,150,241,5,5,231,209,5,5,242,213,5,5,103,210,5,5,124,197,5,5,33,221,5,5,223,246,5,5,250,187,5,5,26,179,5,5,123,248,5,5,102,181,5,5,133,213,5,5,185,227,5,5,119,232,5,5,153,208,5,5,55,230,5,5,95,236,5,5,93,230,5,5,0,136,5,5,99,236,5,5,151,241,5,5,120,223,5,5,152,241,5,5,46,228,5,5,124,202,5,5,27,232,5,5,225,196,5,5,173,217,5,5,153,248,5,5,68,214,5,5,28,232,5,5,217,248,5,5,29,180,5,5,109,173,5,5,153,205,5,5,0,158,5,5,93,181,5,5,94,181,5,5,26,205,5,5,132,208,5,5,190,176,5,5,252,213,5,5,4,197,5,5,212,213,5,5,59,172,5,5,60,204,5,5,117,228,5,5,20,171,5,5,2,233,5,5,158,222,5,5,208,214,5,5,13,191,5,5,125,182,5,5,245,229,5,5,77,219,5,5,28,225,5,5,181,182,5,5,182,182,5,5,81,195,5,5,76,226,5,5,130,210,5,5,217,217,5,5,77,196,5,5,151,191,5,5,19,196,5,5,53,215,5,5,109,179,5,5,54,234,5,5,246,189,5,5,83,228,5,5,166,200,5,5,74,170,5,5,191,239,5,5,45,175,5,5,92,210,5,5,96,184,5,5,87,196,5,5,77,206,5,5,81,168,5,5,209,200,5,5,51,200,5,5,228,239,5,5,38,236,5,5,226,196,5,5,137,202,5,5,89,179,5,5,29,232,5,5,22,190,5,5,58,190,5,5,55,240,5,5,18,173,5,5,77,221,5,5,219,226,5,5,83,178,5,5,190,237,5,5,138,230,5,5,41,210,5,5,74,176,5,5,104,193,5,5,56,227,5,5,226,234,5,5,47,242,5,5,252,228,5,5,40,179,5,5,244,218,5,5,186,207,5,5,226,177,5,5,70,219,5,5,97,216,5,5,14,191,5,5,2,230,5,5,105,215,5,5,29,176,5,5,178,208,5,5,99,184,5,5,126,195,5,5,184,180,5,5,149,238,5,5,123,247,5,5,152,207,5,5,194,190,5,5,134,208,5,5,42,168,5,5,56,240,5,5,11,235,5,5,40,195,5,5,207,228,5,5,204,207,5,5,243,242,5,5,41,246,5,5,12,217,5,5,46,222,5,5,172,233,5,5,23,228,5,5,52,203,5,5,114,207,5,5,75,218,5,5,67,223,5,5,60,213,5,5,99,229,5,5,49,228,5,5,227,176,5,5,181,189,5,5,136,168,5,5,87,195,5,5,109,169,5,5,152,234,5,5,57,227,5,5,40,187,5,5,117,175,5,5,143,237,5,5,43,213,5,5,51,231,5,5,200,242,5,5,179,240,5,5,201,218,5,5,52,219,5,5,160,174,5,5,138,204,5,5,189,207,5,5,12,212,5,5,137,168,5,5,169,206,5,5,30,186,5,5,22,200,5,5,127,216,5,5,117,193,5,5,222,219,5,5,194,245,5,5,201,242,5,5,41,195,5,5,206,218,5,5,35,209,5,5,63,240,5,5,133,192,5,5,3,224,5,5,233,210,5,5,41,232,5,5,162,225,5,5,58,212,5,5,40,201,5,5,85,210,5,5,97,169,5,5,9,168,5,5,44,213,5,5,136,213,5,5,78,239,5,5,99,213,5,5,74,242,5,5,156,201,5,5,49,235,5,5,236,206,5,5,82,238,5,5,23,245,5,5,161,198,5,5,197,240,5,5,178,210,5,5,16,202,5,5,232,178,5,5,45,187,5,5,69,236,5,5,199,195,5,5,84,248,5,5,140,173,5,5,59,244,5,5,234,187,5,5,115,210,5,5,125,201,5,5,61,209,5,5,114,245,5,5,254,189,5,5,255,189,5,5,148,168,5,5,116,210,5,5,210,215,5,5,211,206,5,5,124,213,5,5,67,186,5,5,102,230,5,5,21,216,5,5,26,228,5,5,244,244,5,5,182,208,5,5,45,232,5,5,46,232,5,5,124,209,5,5,124,203,5,5,255,202,5,5,67,190,5,5,49,187,5,5,176,178,5,5,146,246,5,5,167,234,5,5,86,238,5,5,60,190,5,5,247,230,5,5,31,200,5,5,103,218,5,5,248,230,5,5,237,236,5,5,32,173,5,5,170,194,5,5,191,207,5,5,134,182,5,5,59,182,5,5,253,231,5,5,104,239,5,5,112,191,5,5,16,195,5,5,122,184,5,5,75,222,5,5,131,170,5,5,136,220,5,5,86,224,5,5,216,215,5,5,37,203,5,5,125,190,5,5,234,233,5,5,237,210,5,5,45,180,5,5,105,239,5,5,81,172,5,5,18,168,5,5,224,210,5,5,64,211,5,5,170,206,5,5,169,226,5,5,75,175,5,5,252,195,5,5,123,176,5,5,201,241,5,5,139,213,5,5,225,218,5,5,28,219,5,5,5,210,5,5,75,236,5,5,243,224,5,5,82,240,5,5,167,215,5,5,239,210,5,5,34,243,5,5,134,240,5,5,140,208,5,5,21,170,5,5,171,206,5,5,86,221,5,5,59,234,5,5,187,210,5,5,136,180,5,5,191,204,5,5,165,242,5,5,10,201,5,5,252,236,5,5,245,222,5,5,103,204,5,5,242,194,5,5,225,210,5,5,12,201,5,5,82,215,5,5,91,240,5,5,247,222,5,5,142,191,5,5,244,217,5,5,89,208,5,5,52,202,5,5,36,206,5,5,132,236,5,5,252,247,5,5,14,201,5,5,96,249,5,5,57,195,5,5,178,197,5,5,179,197,5,5,59,199,5,5,115,243,5,5,168,206,5,5,81,249,5,5,64,177,5,5,107,224,5,5,208,183,5,5,162,169,5,5,253,248,5,5,70,233,5,5,246,233,5,5,32,208,5,5,115,223,5,5,223,224,5,5,84,169,5,5,204,192,5,5,46,186,5,5,131,211,5,5,101,235,5,5,91,241,5,5,96,248,5,5,207,187,5,5,25,206,5,5,110,224,5,5,58,210,5,5,206,208,5,5,191,176,5,5,54,215,5,5,159,222,5,5,104,172,5,5,238,235,5,5,18,249,5,5,157,210,5,5,189,183,5,5,27,249,5,5,17,202,5,5,110,235,5,5,239,171,5,5,29,219,5,5,248,209,5,5,26,211,5,5,27,211,5,5,92,240,5,5,37,206,5,5,128,208,5,5,48,211,5,5,234,218,5,5,172,224,5,5,65,187,5,5,190,244,5,5,227,216,5,5,224,241,5,5,93,222,5,5,34,168,5,5,76,227,5,5,176,223,5,5,98,228,5,5,10,219,5,5,177,237,5,5,47,189,5,5,106,238,5,5,51,196,5,5,173,248,5,5,95,208,5,5,7,248,5,5,77,178,5,5,52,189,5,5,97,249,5,5,187,186,5,5,174,247,5,5,251,179,5,5,111,228,5,5,110,238,5,5,100,169,5,5,209,221,5,5,210,221,5,5,38,175,5,5,70,221,5,5,252,198,5,5,4,235,5,5,24,222,5,5,97,241,5,5,149,190,5,5,127,238,5,5,161,226,5,5,248,221,5,5,113,232,5,5,211,185,5,5,96,174,5,5,49,218,5,5,212,185,5,5,248,232,5,5,185,243,5,5,173,244,5,5,105,169,5,5,220,187,5,5,208,236,5,5,249,232,5,5,51,193,5,5,74,221,5,5,3,174,5,5,197,218,5,5,234,190,5,5,100,208,5,5,76,199,5,5,156,199,5,5,51,171,5,5,245,223,5,5,60,172,5,5,206,243,5,5,222,192,5,5,147,242,5,5,223,192,5,5,229,239,5,5,102,208,5,5,77,199,5,5,175,216,5,5,220,188,5,5,191,245,5,5,30,194,5,5,100,184,5,5,55,211,5,5,136,171,5,5,116,190,5,5,205,207,5,5,149,216,5,5,4,188,5,5,48,242,5,5,223,221,5,5,56,211,5,5,232,195,5,5,58,211,5,5,8,247,5,5,245,241,5,5,111,169,5,5,157,199,5,5,59,211,5,5,151,216,5,5,116,209,5,5,226,172,5,5,97,197,5,5,162,186,5,5,152,216,5,5,160,189,5,5,150,230,5,5,118,203,5,5,231,221,5,5,60,211,5,5,197,244,5,5,80,221,5,5,66,229,5,5,146,233,5,5,158,199,5,5,104,191,5,5,125,203,5,5,63,198,5,5,126,190,5,5,121,239,5,5,168,238,5,5,121,169,5,5,107,216,5,5,40,175,5,5,122,169,5,5,109,183,5,5,69,177,5,5,217,180,5,5,107,223,5,5,160,235,5,5,114,178,5,5,3,206,5,5,221,180,5,5,97,222,5,5,220,213,5,5,79,183,5,5,79,248,5,5,176,183,5,5,245,220,5,5,255,198,5,5,86,194,5,5,91,194,5,5,81,248,5,5,95,229,5,5,2,250,5,5,179,235,5,5,207,222,5,5,228,180,5,5,126,178,5,5,60,233,5,5,58,195,5,5,212,220,5,5,242,181,5,5,243,181,5,5,244,181,5,5,143,184,5,5,125,193,5,5,117,222,5,5,249,173,5,5,182,220,5,5,183,220,5,5,59,209,5,5,140,184,5,5,130,173,5,5,166,203,5,5,79,232,5,5,80,232,5,5,96,200,5,5,24,241,5,5,159,228,5,5,25,241,5,5,162,203,5,5,163,203,5,5,126,237,5,5,38,207,5,5,163,228,5,5,160,228,5,5,161,228,5,5,145,184,5,5,127,237,5,5,74,181,5,5,18,200,5,5,101,247,5,5,193,196,5,5,207,184,5,5,93,186,5,5,208,184,5,5,170,227,5,5,212,184,5,5,213,184,5,5,163,221,5,5,255,239,5,5,202,174,5,5,184,198,5,5,119,210,5,5,188,195,5,5,25,229,5,5,240,210,5,5,251,196,5,5,39,213,5,5,191,172,5,5,106,231,5,5,7,170,5,5,212,196,5,5,138,195,5,5,83,226,5,5,96,217,5,5,44,226,5,5,139,195,5,5,29,230,5,5,150,179,5,5,171,221,5,5,249,221,5,5,170,213,5,5,15,192,5,5,161,233,5,5,227,245,5,5,162,233,5,5,125,210,5,5,233,244,5,5,190,230,5,5,34,229,5,5,4,207,5,5,95,181,5,5,59,205,5,5,178,213,5,5,52,226,5,5,233,182,5,5,166,222,5,5,173,233,5,5,103,227,5,5,243,205,5,5,246,205,5,5,84,231,5,5,193,172,5,5,250,205,5,5,104,197,5,5,184,233,5,5,114,197,5,5,175,197,5,5,139,203,5,5,245,197,5,5,182,222,5,5,154,231,5,5,223,173,5,5,201,227,5,5,167,210,5,5,68,220,5,5,41,228,5,5,226,231,5,5,93,202,5,5,132,181,5,5,64,191,5,5,65,191,5,5,209,204,5,5,230,238,5,5,195,214,5,5,147,218,5,5,117,230,5,5,24,188,5,5,16,221,5,5,225,241,5,5,103,175,5,5,73,224,5,5,196,214,5,5,148,218,5,5,11,243,5,5,17,169,5,5,178,237,5,5,92,168,5,5,250,235,5,5,120,230,5,5,64,195,5,5,135,181,5,5,97,192,5,5,36,215,5,5,19,183,5,5,99,228,5,5,101,214,5,5,185,172,5,5,90,215,5,5,102,214,5,5,235,172,5,5,134,195,5,5,91,217,5,5,23,185,5,5,106,232,5,5,139,168,5,5,206,200,5,5,115,178,5,5,169,168,5,5,36,250,5,5,37,250,5,5,82,237,5,5,59,197,5,5,5,185,5,5,241,198,5,5,8,186,5,5,102,235,5,5,204,213,5,5,105,202,5,5,140,226,5,5,97,217,5,5,89,236,5,5,213,183,5,5,119,234,5,5,97,193,5,5,114,204,5,5,246,227,5,5,243,212,5,5,143,168,5,5,173,177,5,5,200,199,5,5,14,243,5,5,98,217,5,5,237,189,5,5,225,213,5,5,225,208,5,5,73,168,5,5,141,226,5,5,42,204,5,5,181,174,5,5,166,213,5,5,21,180,5,5,28,188,5,5,227,199,5,5,120,234,5,5,96,207,5,5,4,227,5,5,103,235,5,5,248,238,5,5,208,170,5,5,162,188,5,5,171,168,5,5,143,206,5,5,148,181,5,5,85,184,5,5,167,235,5,5,181,179,5,5,148,205,5,5,215,181,5,5,224,181,5,5,153,184,5,5,195,217,5,5,55,180,5,5,119,238,5,5,173,209,5,5,214,221,5,5,36,168,5,5,239,228,5,5,109,190,5,5,214,246,5,5,98,208,5,5,66,202,5,5,207,192,5,5,7,227,5,5,240,228,5,5,98,241,5,5,12,215,5,5,172,231,5,5,67,202,5,5,131,237,5,5,249,194,5,5,27,246,5,5,26,206,5,5,156,194,5,5,103,181,5,5,104,181,5,5,26,242,5,5,107,233,5,5,246,171,5,5,43,216,5,5,47,218,5,5,84,183,5,5,85,183,5,5,62,210,5,5,69,202,5,5,35,241,5,5,120,232,5,5,198,218,5,5,117,178,5,5,34,221,5,5,97,174,5,5,95,227,5,5,188,185,5,5,48,198,5,5,74,185,5,5,177,231,5,5,222,239,5,5,234,241,5,5,69,201,5,5,150,198,5,5,84,201,5,5,161,200,5,5,71,232,5,5,20,218,5,5,51,199,5,5,30,175,5,5,31,175,5,5,196,224,5,5,220,203,5,5,56,190,5,5,227,196,5,5,167,200,5,5,126,214,5,5,235,208,5,5,52,200,5,5,53,200,5,5,194,249,5,5,126,186,5,5,10,177,5,5,4,236,5,5,5,236,5,5,24,185,5,5,78,206,5,5,79,206,5,5,228,201,5,5,202,197,5,5,30,181,5,5,34,246,5,5,151,187,5,5,230,239,5,5,30,180,5,5,252,187,5,5,35,246,5,5,41,229,5,5,54,233,5,5,2,213,5,5,57,236,5,5,151,223,5,5,82,195,5,5,235,169,5,5,195,249,5,5,95,199,5,5,31,180,5,5,235,244,5,5,127,186,5,5,231,239,5,5,11,249,5,5,87,244,5,5,195,190,5,5,165,241,5,5,77,228,5,5,60,237,5,5,90,183,5,5,62,217,5,5,61,237,5,5,253,225,5,5,199,238,5,5,254,246,5,5,47,222,5,5,186,243,5,5,191,237,5,5,164,181,5,5,50,248,5,5,128,198,5,5,9,206,5,5,157,236,5,5,187,207,5,5,5,188,5,5,22,192,5,5,23,192,5,5,161,190,5,5,220,226,5,5,155,221,5,5,153,207,5,5,151,215,5,5,139,230,5,5,166,241,5,5,102,249,5,5,211,200,5,5,244,198,5,5,107,236,5,5,108,236,5,5,46,229,5,5,103,249,5,5,220,172,5,5,78,224,5,5,202,218,5,5,212,198,5,5,98,216,5,5,167,241,5,5,139,214,5,5,50,205,5,5,110,227,5,5,210,180,5,5,229,230,5,5,218,229,5,5,122,172,5,5,87,178,5,5,207,218,5,5,91,195,5,5,104,198,5,5,139,204,5,5,146,230,5,5,156,223,5,5,239,215,5,5,19,249,5,5,253,228,5,5,240,169,5,5,70,179,5,5,80,177,5,5,132,215,5,5,245,240,5,5,7,211,5,5,81,177,5,5,182,192,5,5,227,221,5,5,117,219,5,5,171,223,5,5,111,249,5,5,139,194,5,5,119,203,5,5,162,198,5,5,77,173,5,5,208,179,5,5,184,172,5,5,242,179,5,5,88,227,5,5,53,205,5,5,61,245,5,5,240,244,5,5,241,244,5,5,108,168,5,5,140,172,5,5,113,217,5,5,191,215,5,5,15,177,5,5,232,249,5,5,123,178,5,5,124,178,5,5,55,231,5,5,75,242,5,5,129,212,5,5,225,204,5,5,231,232,5,5,194,172,5,5,163,171,5,5,102,216,5,5,171,194,5,5,71,236,5,5,91,201,5,5,8,245,5,5,231,203,5,5,126,203,5,5,127,203,5,5,183,195,5,5,192,178,5,5,86,181,5,5,5,250,5,5,13,195,5,5,110,187,5,5,160,237,5,5,172,194,5,5,161,237,5,5,226,197,5,5,214,244,5,5,106,239,5,5,111,235,5,5,70,210,5,5,36,238,5,5,37,238,5,5,162,238,5,5,16,211,5,5,87,232,5,5,143,192,5,5,187,233,5,5,247,198,5,5,249,230,5,5,61,179,5,5,153,168,5,5,234,249,5,5,224,228,5,5,169,238,5,5,226,218,5,5,129,178,5,5,118,204,5,5,114,195,5,5,2,242,5,5,37,243,5,5,21,240,5,5,59,219,5,5,119,195,5,5,176,202,5,5,58,187,5,5,234,204,5,5,235,204,5,5,77,179,5,5,229,218,5,5,33,231,5,5,26,197,5,5,51,173,5,5,172,240,5,5,236,199,5,5,127,236,5,5,228,228,5,5,76,210,5,5,245,217,5,5,206,173,5,5,254,176,5,5,38,206,5,5,81,179,5,5,82,179,5,5,33,211,5,5,134,236,5,5,133,236,5,5,191,236,5,5,10,200,5,5,192,236,5,5,202,175,5,5,133,199,5,5,203,175,5,5,127,247,5,5,180,190,5,5,8,196,5,5,162,235,5,5,186,173,5,5,187,173,5,5,201,203,5,5,201,185,5,5,30,250,5,5,36,216,5,5,53,197,5,5,231,185,5,5,56,197,5,5,27,230,5,5,55,214,5,5,56,214,5,5,239,172,5,5,63,217,5,5,73,217,5,5,171,192,5,5,181,238,5,5,104,223,5,5,163,168,5,5,84,246,5,5,71,245,5,5,220,232,5,5,128,238,5,5,191,195,5,5,204,235,5,5,149,197,5,5,175,168,5,5,214,235,5,5,161,195,5,5,200,183,5,5,148,243,5,5,44,170,5,5,6,222,5,5,11,172,5,5,228,179,5,5,232,222,5,5,54,182,5,5,245,210,5,5,165,221,5,5,250,182,5,5,235,211,5,5,167,246,5,5,174,230,5,5,233,189,5,5,9,178,5,5,235,228,5,5,50,245,5,5,137,225,5,5,174,177,5,5,90,209,5,5,119,212,5,5,236,211,5,5,177,226,5,5,141,171,5,5,232,202,5,5,206,246,5,5,163,247,5,5,176,171,5,5,207,246,5,5,24,179,5,5,97,209,5,5,8,239,5,5,9,239,5,5,171,213,5,5,18,215,5,5,140,197,5,5,14,219,5,5,233,222,5,5,179,177,5,5,68,246,5,5,14,223,5,5,44,216,5,5,180,245,5,5,175,221,5,5,50,218,5,5,46,231,5,5,49,169,5,5,186,177,5,5,31,187,5,5,54,175,5,5,179,213,5,5,55,245,5,5,189,219,5,5,84,228,5,5,189,177,5,5,246,228,5,5,132,173,5,5,46,220,5,5,127,214,5,5,52,244,5,5,169,187,5,5,115,207,5,5,158,180,5,5,110,189,5,5,71,246,5,5,153,234,5,5,106,208,5,5,254,228,5,5,3,230,5,5,4,184,5,5,50,239,5,5,54,169,5,5,184,213,5,5,194,179,5,5,219,185,5,5,13,212,5,5,239,190,5,5,163,225,5,5,109,208,5,5,118,193,5,5,222,225,5,5,24,191,5,5,85,247,5,5,96,220,5,5,17,207,5,5,201,209,5,5,241,170,5,5,171,187,5,5,60,244,5,5,202,209,5,5,55,169,5,5,62,245,5,5,61,196,5,5,81,173,5,5,23,184,5,5,27,247,5,5,163,189,5,5,60,182,5,5,245,175,5,5,112,170,5,5,123,170,5,5,45,245,5,5,121,208,5,5,252,215,5,5,15,173,5,5,35,183,5,5,254,207,5,5,57,169,5,5,76,175,5,5,215,208,5,5,130,175,5,5,113,195,5,5,94,232,5,5,232,200,5,5,234,184,5,5,161,213,5,5,190,210,5,5,126,193,5,5,124,171,5,5,127,171,5,5,49,234,5,5,245,184,5,5,111,237,5,5,145,190,5,5,88,241,5,5,11,241,5,5,180,192,5,5,11,187,5,5,25,213,5,5,196,226,5,5,82,244,5,5,12,187,5,5,119,248,5,5,58,209,5,5,209,216,5,5,50,170,5,5,108,216,5,5,7,181,5,5,242,175,5,5,69,187,5,5,14,236,5,5,243,168,5,5,135,195,5,5,200,234,5,5,70,205,5,5,82,230,5,5,121,248,5,5,103,199,5,5,47,240,5,5,255,178,5,5,77,212,5,5,104,179,5,5,230,235,5,5,197,208,5,5,169,185,5,5,143,176,5,5,43,184,5,5,5,227,5,5,53,212,5,5,220,182,5,5,192,232,5,5,189,238,5,5,215,246,5,5,133,226,5,5,216,246,5,5,91,234,5,5,170,180,5,5,43,250,5,5,250,232,5,5,96,227,5,5,81,187,5,5,106,199,5,5,48,207,5,5,216,226,5,5,69,241,5,5,247,171,5,5,129,171,5,5,141,174,5,5,168,200,5,5,75,170,5,5,123,192,5,5,39,168,5,5,201,222,5,5,160,198,5,5,191,240,5,5,22,228,5,5,152,223,5,5,202,222,5,5,203,216,5,5,49,242,5,5,239,241,5,5,200,208,5,5,189,223,5,5,172,172,5,5,168,232,5,5,235,182,5,5,194,196,5,5,174,181,5,5,41,187,5,5,197,204,5,5,50,220,5,5,242,202,5,5,41,201,5,5,190,223,5,5,9,247,5,5,31,172,5,5,205,216,5,5,198,196,5,5,195,196,5,5,200,195,5,5,109,168,5,5,107,200,5,5,33,205,5,5,37,240,5,5,167,203,5,5,197,177,5,5,175,205,5,5,79,239,5,5,126,175,5,5,33,173,5,5,118,227,5,5,86,223,5,5,231,233,5,5,201,208,5,5,157,173,5,5,103,230,5,5,239,182,5,5,14,187,5,5,116,199,5,5,150,199,5,5,132,170,5,5,217,215,5,5,188,233,5,5,6,204,5,5,7,204,5,5,140,203,5,5,90,205,5,5,18,193,5,5,173,240,5,5,9,232,5,5,210,226,5,5,213,240,5,5,53,202,5,5,212,226,5,5,254,239,5,5,159,235,5,5,82,236,5,5,214,226,5,5,215,178,5,5,250,211,5,5,10,194,5,5,42,191,5,5,255,209,5,5,43,191,5,5,230,185,5,5,217,210,5,5,86,198,5,5,200,170,5,5,231,238,5,5,223,214,5,5,116,211,5,5,54,183,5,5,33,197,5,5,148,236,5,5,10,239,5,5,251,243,5,5,113,170,5,5,221,238,5,5,59,238,5,5,6,182,5,5,167,219,5,5,10,222,5,5,7,182,5,5,48,222,5,5,56,222,5,5,202,185,5,5,151,179,5,5,2,240,5,5,226,189,5,5,201,183,5,5,43,189,5,5,21,230,5,5,167,227,5,5,176,174,5,5,129,194,5,5,209,168,5,5,67,221,5,5,17,179,5,5,18,245,5,5,184,197,5,5,156,225,5,5,44,184,5,5,2,179,5,5,42,208,5,5,20,232,5,5,170,189,5,5,175,173,5,5,137,211,5,5,73,196,5,5,224,245,5,5,129,238,5,5,78,208,5,5,196,217,5,5,81,228,5,5,189,220,5,5,112,219,5,5,5,235,5,5,82,196,5,5,133,179,5,5,19,245,5,5,133,194,5,5,207,215,5,5,163,212,5,5,18,178,5,5,208,215,5,5,83,170,5,5,84,170,5,5,251,220,5,5,24,178,5,5,224,193,5,5,31,186,5,5,99,185,5,5,23,182,5,5,96,170,5,5,67,199,5,5,231,193,5,5,46,171,5,5,27,233,5,5,36,178,5,5,157,187,5,5,141,194,5,5,86,189,5,5,52,208,5,5,161,187,5,5,90,228,5,5,6,198,5,5,190,192,5,5,191,192,5,5,22,187,5,5,50,178,5,5,146,205,5,5,147,205,5,5,161,227,5,5,80,191,5,5,255,246,5,5,91,191,5,5,92,191,5,5,163,238,5,5,164,238,5,5,172,238,5,5,173,238,5,5,5,243,5,5,6,243,5,5,69,220,5,5,26,234,5,5,159,229,5,5,3,227,5,5,204,236,5,5,205,236,5,5,27,242,5,5,149,174,5,5,61,172,5,5,236,170,5,5,134,179,5,5,52,171,5,5,164,212,5,5,246,240,5,5,88,213,5,5,24,245,5,5,167,240,5,5,174,174,5,5,222,174,5,5,201,248,5,5,20,228,5,5,98,192,5,5,160,182,5,5,72,247,5,5,238,238,5,5,169,228,5,5,224,173,5,5,31,170,5,5,202,178,5,5,43,204,5,5,214,183,5,5,174,228,5,5,22,246,5,5,222,176,5,5,175,228,5,5,74,196,5,5,180,177,5,5,183,230,5,5,205,235,5,5,251,188,5,5,52,237,5,5,77,190,5,5,5,206,5,5,129,189,5,5,178,228,5,5,137,174,5,5,224,246,5,5,180,234,5,5,83,196,5,5,97,227,5,5,189,176,5,5,66,247,5,5,162,200,5,5,192,176,5,5,158,178,5,5,241,211,5,5,76,231,5,5,35,180,5,5,224,192,5,5,133,173,5,5,236,246,5,5,193,176,5,5,139,247,5,5,169,200,5,5,50,242,5,5,165,233,5,5,150,195,5,5,25,194,5,5,49,222,5,5,105,193,5,5,214,170,5,5,196,190,5,5,101,184,5,5,180,235,5,5,47,229,5,5,59,212,5,5,144,237,5,5,214,228,5,5,230,230,5,5,44,246,5,5,114,213,5,5,12,226,5,5,164,178,5,5,49,246,5,5,193,246,5,5,41,171,5,5,165,178,5,5,21,175,5,5,232,173,5,5,225,194,5,5,113,191,5,5,229,194,5,5,33,191,5,5,173,207,5,5,20,205,5,5,180,232,5,5,145,169,5,5,157,217,5,5,213,233,5,5,3,234,5,5,45,170,5,5,223,238,5,5,137,201,5,5,121,218,5,5,106,178,5,5,248,179,5,5,164,184,5,5,199,192,5,5,130,218,5,5,123,218,5,5,97,173,5,5,57,225,5,5,208,225,5,5,209,225,5,5,188,184,5,5,219,214,5,5,11,222,5,5,68,177,5,5,199,246,5,5,192,228,5,5,35,207,5,5,169,230,5,5,55,182,5,5,48,240,5,5,109,226,5,5,226,208,5,5,187,229,5,5,73,247,5,5,12,175,5,5,124,230,5,5,99,192,5,5,83,230,5,5,110,231,5,5,74,193,5,5,6,241,5,5,143,228,5,5,156,176,5,5,143,223,5,5,137,199,5,5,17,242,5,5,201,170,5,5,200,246,5,5,103,214,5,5,29,177,5,5,251,173,5,5,251,224,5,5,203,227,5,5,91,215,5,5,218,210,5,5,161,191,5,5,69,234,5,5,85,211,5,5,182,199,5,5,231,231,5,5,216,233,5,5,156,198,5,5,145,189,5,5,114,198,5,5,56,183,5,5,76,190,5,5,253,224,5,5,164,223,5,5,84,230,5,5,220,211,5,5,160,173,5,5,252,175,5,5,60,197,5,5,249,238,5,5,101,169,5,5,176,173,5,5,227,208,5,5,99,212,5,5,38,250,5,5,97,244,5,5,101,237,5,5,66,197,5,5,35,169,5,5,140,211,5,5,60,210,5,5,23,246,5,5,237,211,5,5,16,172,5,5,178,226,5,5,242,189,5,5,238,189,5,5,67,197,5,5,125,177,5,5,233,202,5,5,63,223,5,5,52,175,5,5,21,179,5,5,181,177,5,5,111,238,5,5,79,227,5,5,32,241,5,5,169,183,5,5,112,192,5,5,143,212,5,5,50,234,5,5,238,242,5,5,121,210,5,5,183,186,5,5,215,183,5,5,111,231,5,5,54,170,5,5,9,241,5,5,67,216,5,5,64,235,5,5,159,176,5,5,102,171,5,5,231,190,5,5,205,234,5,5,158,175,5,5,55,170,5,5,195,222,5,5,184,230,5,5,12,225,5,5,227,240,5,5,133,249,5,5,223,180,5,5,143,209,5,5,173,246,5,5,250,238,5,5,25,222,5,5,114,210,5,5,168,235,5,5,26,222,5,5,116,231,5,5,107,201,5,5,8,189,5,5,174,199,5,5,149,209,5,5,178,246,5,5,108,233,5,5,47,203,5,5,134,226,5,5,232,190,5,5,182,179,5,5,118,188,5,5,60,199,5,5,76,187,5,5,9,189,5,5,185,230,5,5,195,194,5,5,199,222,5,5,65,223,5,5,150,189,5,5,8,217,5,5,102,237,5,5,76,191,5,5,44,191,5,5,231,174,5,5,80,193,5,5,120,238,5,5,72,234,5,5,184,186,5,5,16,204,5,5,3,191,5,5,88,249,5,5,208,234,5,5,211,174,5,5,184,220,5,5,149,211,5,5,254,188,5,5,212,181,5,5,253,198,5,5,56,180,5,5,85,226,5,5,213,185,5,5,197,217,5,5,191,230,5,5,19,215,5,5,16,243,5,5,145,212,5,5,21,199,5,5,157,178,5,5,77,191,5,5,150,181,5,5,91,233,5,5,49,227,5,5,51,236,5,5,95,198,5,5,161,172,5,5,78,210,5,5,119,243,5,5,43,207,5,5,237,240,5,5,234,240,5,5,144,242,5,5,213,212,5,5,79,200,5,5,236,215,5,5,17,243,5,5,35,242,5,5,98,227,5,5,148,195,5,5,199,230,5,5,128,245,5,5,17,204,5,5,49,226,5,5,30,188,5,5,119,188,5,5,71,216,5,5,53,226,5,5,25,172,5,5,20,239,5,5,148,215,5,5,56,191,5,5,192,230,5,5,175,169,5,5,239,206,5,5,71,238,5,5,3,189,5,5,165,223,5,5,198,217,5,5,138,174,5,5,228,199,5,5,131,230,5,5,132,230,5,5,13,241,5,5,251,201,5,5,99,203,5,5,155,190,5,5,160,176,5,5,34,239,5,5,18,243,5,5,125,202,5,5,45,211,5,5,79,210,5,5,157,181,5,5,21,218,5,5,45,235,5,5,49,215,5,5,133,230,5,5,4,209,5,5,194,176,5,5,210,182,5,5,152,169,5,5,160,178,5,5,39,177,5,5,166,173,5,5,230,207,5,5,138,202,5,5,225,192,5,5,224,186,5,5,219,186,5,5,55,234,5,5,135,178,5,5,69,214,5,5,52,199,5,5,113,226,5,5,80,206,5,5,215,230,5,5,138,198,5,5,126,187,5,5,177,210,5,5,188,216,5,5,56,175,5,5,241,180,5,5,180,187,5,5,207,244,5,5,20,196,5,5,118,228,5,5,152,242,5,5,178,195,5,5,231,192,5,5,210,200,5,5,36,242,5,5,218,191,5,5,186,188,5,5,218,217,5,5,29,225,5,5,54,226,5,5,57,226,5,5,254,210,5,5,179,228,5,5,75,176,5,5,155,189,5,5,152,191,5,5,200,230,5,5,152,173,5,5,225,233,5,5,247,228,5,5,84,191,5,5,165,181,5,5,153,224,5,5,136,249,5,5,140,193,5,5,239,240,5,5,110,179,5,5,86,197,5,5,94,172,5,5,113,174,5,5,161,178,5,5,185,169,5,5,74,216,5,5,87,172,5,5,19,178,5,5,220,186,5,5,80,181,5,5,84,210,5,5,123,243,5,5,206,232,5,5,155,248,5,5,195,179,5,5,197,190,5,5,63,176,5,5,235,216,5,5,114,218,5,5,7,234,5,5,173,172,5,5,191,170,5,5,8,209,5,5,104,249,5,5,254,225,5,5,38,216,5,5,63,175,5,5,190,169,5,5,12,235,5,5,208,228,5,5,119,185,5,5,62,215,5,5,48,229,5,5,63,242,5,5,168,241,5,5,85,170,5,5,13,235,5,5,162,190,5,5,11,209,5,5,86,170,5,5,65,239,5,5,159,208,5,5,240,240,5,5,120,198,5,5,84,178,5,5,192,239,5,5,166,181,5,5,12,174,5,5,119,207,5,5,23,215,5,5,7,199,5,5,179,241,5,5,10,168,5,5,77,216,5,5,158,236,5,5,173,211,5,5,225,184,5,5,124,243,5,5,137,249,5,5,151,219,5,5,239,201,5,5,59,183,5,5,57,240,5,5,23,200,5,5,24,200,5,5,32,218,5,5,220,185,5,5,84,243,5,5,4,224,5,5,11,224,5,5,146,214,5,5,145,237,5,5,169,223,5,5,246,190,5,5,134,192,5,5,94,186,5,5,98,197,5,5,4,176,5,5,179,210,5,5,121,233,5,5,105,198,5,5,62,246,5,5,247,240,5,5,150,172,5,5,218,235,5,5,100,221,5,5,200,171,5,5,121,198,5,5,247,242,5,5,129,231,5,5,181,191,5,5,249,240,5,5,92,237,5,5,156,202,5,5,207,219,5,5,164,225,5,5,200,239,5,5,113,176,5,5,232,234,5,5,154,215,5,5,7,225,5,5,186,190,5,5,126,243,5,5,101,221,5,5,49,209,5,5,245,185,5,5,252,220,5,5,197,176,5,5,89,213,5,5,203,209,5,5,207,209,5,5,172,187,5,5,254,174,5,5,96,172,5,5,91,172,5,5,89,172,5,5,16,177,5,5,16,209,5,5,213,225,5,5,25,245,5,5,52,227,5,5,149,168,5,5,4,223,5,5,18,207,5,5,226,186,5,5,35,218,5,5,30,244,5,5,199,196,5,5,105,191,5,5,101,198,5,5,243,202,5,5,221,211,5,5,172,223,5,5,130,216,5,5,39,240,5,5,15,206,5,5,163,220,5,5,108,229,5,5,150,227,5,5,243,206,5,5,67,215,5,5,2,221,5,5,198,240,5,5,216,216,5,5,163,198,5,5,58,179,5,5,147,246,5,5,34,205,5,5,166,197,5,5,88,214,5,5,84,214,5,5,86,242,5,5,194,213,5,5,120,203,5,5,210,176,5,5,16,241,5,5,22,175,5,5,28,247,5,5,53,227,5,5,65,174,5,5,250,214,5,5,114,217,5,5,175,212,5,5,202,169,5,5,29,171,5,5,250,216,5,5,173,194,5,5,105,244,5,5,249,174,5,5,2,203,5,5,197,213,5,5,32,200,5,5,106,191,5,5,22,216,5,5,127,174,5,5,41,240,5,5,42,240,5,5,87,231,5,5,255,230,5,5,37,178,5,5,37,225,5,5,87,181,5,5,230,180,5,5,229,180,5,5,18,224,5,5,237,197,5,5,182,172,5,5,23,233,5,5,61,182,5,5,62,183,5,5,92,201,5,5,126,201,5,5,23,175,5,5,236,187,5,5,252,214,5,5,47,232,5,5,17,209,5,5,62,196,5,5,158,203,5,5,104,230,5,5,97,172,5,5,227,197,5,5,234,176,5,5,144,232,5,5,65,225,5,5,140,221,5,5,236,212,5,5,107,239,5,5,184,175,5,5,254,231,5,5,71,210,5,5,38,178,5,5,66,225,5,5,64,196,5,5,159,223,5,5,53,188,5,5,230,194,5,5,114,229,5,5,29,235,5,5,46,180,5,5,140,216,5,5,135,216,5,5,108,197,5,5,151,172,5,5,27,199,5,5,189,233,5,5,83,240,5,5,154,168,5,5,128,207,5,5,108,239,5,5,8,204,5,5,244,219,5,5,64,198,5,5,82,190,5,5,233,207,5,5,7,201,5,5,19,168,5,5,9,204,5,5,78,236,5,5,115,200,5,5,219,231,5,5,4,175,5,5,3,242,5,5,44,240,5,5,165,177,5,5,26,208,5,5,22,168,5,5,255,207,5,5,234,180,5,5,168,214,5,5,85,209,5,5,222,200,5,5,234,207,5,5,77,175,5,5,46,247,5,5,182,211,5,5,183,211,5,5,76,236,5,5,97,237,5,5,223,171,5,5,51,247,5,5,217,199,5,5,193,199,5,5,85,241,5,5,198,183,5,5,164,204,5,5,216,208,5,5,134,174,5,5,147,191,5,5,100,173,5,5,29,208,5,5,11,201,5,5,84,190,5,5,55,235,5,5,96,218,5,5,102,173,5,5,19,193,5,5,120,197,5,5,101,190,5,5,9,221,5,5,159,239,5,5,68,203,5,5,40,210,5,5,64,208,5,5,146,225,5,5,7,198,5,5,30,185,5,5,31,185,5,5,141,248,5,5,82,185,5,5,8,243,5,5,114,230,5,5,123,193,5,5,139,234,5,5,189,222,5,5,190,218,5,5,105,231,5,5,86,174,5,5,244,229,5,5,136,195,5,5,87,185,5,5,131,193,5,5,175,215,5,5,206,191,5,5,176,215,5,5,251,244,5,5,63,180,5,5,70,214,5,5,82,193,5,5,190,179,5,5,90,244,5,5,84,193,5,5,181,192,5,5,106,246,5,5,129,198,5,5,126,192,5,5,249,199,5,5,180,184,5,5,186,178,5,5,6,245,5,5,192,215,5,5,101,185,5,5,232,193,5,5,102,195,5,5,76,242,5,5,233,193,5,5,172,236,5,5,181,205,5,5,164,189,5,5,10,245,5,5,143,231,5,5,145,231,5,5,69,176,5,5,202,177,5,5,159,217,5,5,227,189,5,5,228,189,5,5,229,189,5,5,133,181,5,5,14,222,5,5,43,226,5,5,95,207,5,5,239,189,5,5,106,202,5,5,152,182,5,5,147,224,5,5,187,170,5,5,106,179,5,5,117,196,5,5,174,220,5,5,130,238,5,5,194,238,5,5,120,220,5,5,247,189,5,5,186,182,5,5,159,236,5,5,92,222,5,5,114,222,5,5,49,172,5,5,121,244,5,5,34,217,5,5,138,201,5,5,3,214,5,5,165,168,5,5,153,177,5,5,177,218,5,5,111,182,5,5,48,219,5,5,189,243,5,5,220,227,5,5,49,245,5,5,149,179,5,5,171,198,5,5,114,241,5,5,87,199,5,5,216,184,5,5,17,221,5,5,199,172,5,5,221,227,5,5,75,186,5,5,73,199,5,5,118,230,5,5,170,178,5,5,31,215,5,5,121,246,5,5,149,218,5,5,97,200,5,5,217,207,5,5,220,219,5,5,38,237,5,5,86,211,5,5,32,169,5,5,220,173,5,5,108,218,5,5,170,230,5,5,92,215,5,5,254,168,5,5,75,193,5,5,133,241,5,5,209,183,5,5,140,168,5,5,175,230,5,5,204,212,5,5,168,246,5,5,201,246,5,5,138,181,5,5,171,178,5,5,84,245,5,5,89,174,5,5,200,192,5,5,140,236,5,5,183,199,5,5,202,170,5,5,174,173,5,5,210,196,5,5,188,229,5,5,169,189,5,5,12,243,5,5,185,197,5,5,204,168,5,5,157,216,5,5,245,177,5,5,57,246,5,5,99,243,5,5,100,228,5,5,99,210,5,5,239,238,5,5,118,222,5,5,70,248,5,5,243,213,5,5,62,227,5,5,84,180,5,5,178,198,5,5,117,245,5,5,244,213,5,5,40,184,5,5,70,212,5,5,188,168,5,5,131,168,5,5,42,244,5,5,147,227,5,5,63,199,5,5,65,206,5,5,223,215,5,5,145,243,5,5,234,189,5,5,125,169,5,5,103,171,5,5,174,246,5,5,144,212,5,5,18,210,5,5,17,172,5,5,208,212,5,5,229,224,5,5,179,237,5,5,222,245,5,5,123,244,5,5,27,237,5,5,126,169,5,5,147,188,5,5,151,210,5,5,4,238,5,5,3,179,5,5,229,174,5,5,209,212,5,5,40,193,5,5,84,209,5,5,197,207,5,5,238,173,5,5,231,235,5,5,44,175,5,5,99,217,5,5,253,208,5,5,159,175,5,5,42,193,5,5,216,183,5,5,156,244,5,5,8,248,5,5,216,177,5,5,243,172,5,5,172,209,5,5,188,210,5,5,121,200,5,5,45,184,5,5,71,212,5,5,36,169,5,5,239,211,5,5,213,203,5,5,216,209,5,5,177,186,5,5,93,215,5,5,61,197,5,5,192,224,5,5,191,168,5,5,227,227,5,5,228,227,5,5,133,168,5,5,213,196,5,5,188,248,5,5,29,212,5,5,72,245,5,5,246,168,5,5,244,168,5,5,4,179,5,5,150,210,5,5,68,197,5,5,98,200,5,5,9,205,5,5,199,193,5,5,11,215,5,5,188,240,5,5,207,200,5,5,50,211,5,5,142,171,5,5,44,244,5,5,45,215,5,5,247,188,5,5,99,200,5,5,27,222,5,5,71,195,5,5,59,246,5,5,46,211,5,5,233,185,5,5,234,185,5,5,212,217,5,5,237,222,5,5,66,177,5,5,153,243,5,5,189,198,5,5,121,238,5,5,109,233,5,5,162,172,5,5,4,191,5,5,126,213,5,5,75,248,5,5,215,221,5,5,217,209,5,5,227,168,5,5,183,174,5,5,166,186,5,5,217,246,5,5,100,200,5,5,55,181,5,5,56,181,5,5,179,246,5,5,72,216,5,5,74,168,5,5,117,211,5,5,249,245,5,5,112,185,5,5,250,194,5,5,127,199,5,5,57,180,5,5,218,209,5,5,135,226,5,5,180,203,5,5,125,244,5,5,234,205,5,5,183,179,5,5,44,228,5,5,191,197,5,5,174,203,5,5,38,197,5,5,225,246,5,5,27,206,5,5,34,236,5,5,229,229,5,5,193,224,5,5,110,233,5,5,61,210,5,5,64,178,5,5,196,194,5,5,28,246,5,5,177,192,5,5,5,191,5,5,24,232,5,5,230,241,5,5,0,137,5,5,230,227,5,5,164,211,5,5,96,177,5,5,185,171,5,5,189,185,5,5,37,226,5,5,252,245,5,5,102,174,5,5,127,219,5,5,128,219,5,5,37,199,5,5,184,207,5,5,118,211,5,5,218,196,5,5,158,212,5,5,205,193,5,5,21,239,5,5,237,226,5,5,82,220,5,5,60,219,5,5,114,228,5,5,111,233,5,5,203,172,5,5,119,183,5,5,200,194,5,5,91,230,5,5,49,198,5,5,188,196,5,5,44,227,5,5,80,200,5,5,211,191,5,5,99,227,5,5,191,248,5,5,245,213,5,5,236,205,5,5,176,168,5,5,31,188,5,5,190,220,5,5,242,210,5,5,125,197,5,5,86,244,5,5,200,222,5,5,235,237,5,5,199,197,5,5,5,172,5,5,104,228,5,5,26,172,5,5,19,250,5,5,9,238,5,5,184,244,5,5,235,205,5,5,186,223,5,5,231,227,5,5,75,201,5,5,119,224,5,5,50,169,5,5,206,193,5,5,151,190,5,5,118,178,5,5,35,229,5,5,145,228,5,5,117,216,5,5,193,212,5,5,239,220,5,5,191,203,5,5,236,208,5,5,222,207,5,5,55,184,5,5,235,168,5,5,87,197,5,5,113,178,5,5,246,229,5,5,0,146,5,5,142,197,5,5,24,243,5,5,135,249,5,5,240,173,5,5,12,176,5,5,83,195,5,5,83,227,5,5,224,169,5,5,236,209,5,5,201,210,5,5,108,219,5,5,24,250,5,5,254,229,5,5,71,214,5,5,241,231,5,5,106,174,5,5,67,179,5,5,221,219,5,5,66,206,5,5,211,216,5,5,14,185,5,5,31,181,5,5,102,222,5,5,158,179,5,5,246,213,5,5,8,179,5,5,43,245,5,5,177,191,5,5,178,192,5,5,159,225,5,5,8,215,5,5,128,214,5,5,242,211,5,5,130,222,5,5,57,215,5,5,61,204,5,5,227,237,5,5,39,236,5,5,203,197,5,5,36,246,5,5,90,203,5,5,168,186,5,5,35,239,5,5,215,191,5,5,123,220,5,5,60,246,5,5,56,206,5,5,62,172,5,5,74,225,5,5,229,173,5,5,97,171,5,5,30,195,5,5,55,226,5,5,61,199,5,5,164,227,5,5,152,236,5,5,99,177,5,5,140,247,5,5,228,196,5,5,128,226,5,5,102,215,5,5,29,199,5,5,228,168,5,5,231,211,5,5,31,195,5,5,116,205,5,5,175,186,5,5,54,209,5,5,84,195,5,5,237,246,5,5,252,177,5,5,37,208,5,5,103,172,5,5,206,219,5,5,221,186,5,5,197,212,5,5,244,242,5,5,171,211,5,5,215,193,5,5,42,246,5,5,157,196,5,5,216,193,5,5,169,241,5,5,113,236,5,5,246,199,5,5,34,210,5,5,32,189,5,5,245,218,5,5,41,213,5,5,209,228,5,5,152,219,5,5,185,249,5,5,14,235,5,5,179,208,5,5,255,225,5,5,243,210,5,5,206,172,5,5,50,222,5,5,138,249,5,5,6,246,5,5,78,238,5,5,181,235,5,5,220,240,5,5,168,170,5,5,62,237,5,5,163,190,5,5,160,236,5,5,207,243,5,5,69,168,5,5,154,234,5,5,41,236,5,5,4,230,5,5,236,198,5,5,195,175,5,5,117,192,5,5,58,226,5,5,130,200,5,5,137,200,5,5,13,174,5,5,88,198,5,5,158,196,5,5,159,196,5,5,106,227,5,5,42,195,5,5,15,191,5,5,166,185,5,5,42,175,5,5,15,233,5,5,196,179,5,5,93,233,5,5,190,242,5,5,103,215,5,5,236,237,5,5,207,172,5,5,131,244,5,5,153,169,5,5,139,237,5,5,210,228,5,5,6,170,5,5,254,200,5,5,203,229,5,5,161,216,5,5,10,173,5,5,98,185,5,5,51,205,5,5,139,249,5,5,167,185,5,5,208,194,5,5,32,186,5,5,162,216,5,5,208,218,5,5,28,218,5,5,46,175,5,5,196,175,5,5,238,244,5,5,123,224,5,5,112,224,5,5,201,171,5,5,175,175,5,5,203,218,5,5,72,169,5,5,72,177,5,5,208,219,5,5,218,198,5,5,146,237,5,5,121,178,5,5,109,246,5,5,142,211,5,5,125,200,5,5,152,193,5,5,191,223,5,5,84,217,5,5,57,185,5,5,81,232,5,5,45,223,5,5,198,219,5,5,233,195,5,5,210,208,5,5,175,181,5,5,14,176,5,5,174,211,5,5,94,220,5,5,198,224,5,5,160,244,5,5,107,225,5,5,15,212,5,5,6,169,5,5,114,177,5,5,157,202,5,5,165,225,5,5,182,189,5,5,10,247,5,5,52,228,5,5,40,190,5,5,68,215,5,5,204,229,5,5,225,215,5,5,97,226,5,5,195,245,5,5,176,181,5,5,122,233,5,5,176,211,5,5,227,217,5,5,221,172,5,5,178,244,5,5,129,185,5,5,96,230,5,5,216,181,5,5,253,220,5,5,172,198,5,5,254,220,5,5,140,222,5,5,240,168,5,5,147,237,5,5,78,171,5,5,197,223,5,5,16,225,5,5,143,219,5,5,78,173,5,5,139,224,5,5,161,196,5,5,20,175,5,5,238,175,5,5,176,186,5,5,114,171,5,5,125,183,5,5,230,222,5,5,53,179,5,5,245,214,5,5,199,223,5,5,187,244,5,5,34,203,5,5,66,174,5,5,161,174,5,5,227,186,5,5,176,205,5,5,154,206,5,5,54,205,5,5,142,249,5,5,175,184,5,5,2,190,5,5,135,244,5,5,248,175,5,5,152,225,5,5,65,190,5,5,17,177,5,5,247,209,5,5,67,209,5,5,94,194,5,5,46,187,5,5,166,240,5,5,144,246,5,5,114,168,5,5,29,247,5,5,10,211,5,5,19,207,5,5,99,173,5,5,68,199,5,5,105,175,5,5,3,221,5,5,151,227,5,5,218,194,5,5,57,209,5,5,63,209,5,5,137,245,5,5,106,172,5,5,43,199,5,5,242,170,5,5,140,194,5,5,152,237,5,5,39,186,5,5,69,215,5,5,168,203,5,5,42,192,5,5,67,240,5,5,173,197,5,5,118,213,5,5,117,213,5,5,77,201,5,5,249,180,5,5,141,232,5,5,62,219,5,5,111,187,5,5,209,243,5,5,89,239,5,5,48,232,5,5,69,174,5,5,70,174,5,5,129,219,5,5,69,210,5,5,98,189,5,5,87,223,5,5,46,188,5,5,20,187,5,5,117,177,5,5,17,250,5,5,207,210,5,5,5,204,5,5,63,246,5,5,28,191,5,5,140,248,5,5,226,194,5,5,185,192,5,5,134,172,5,5,255,177,5,5,2,178,5,5,233,173,5,5,164,171,5,5,222,173,5,5,174,197,5,5,66,184,5,5,112,203,5,5,229,169,5,5,67,184,5,5,51,216,5,5,165,171,5,5,76,177,5,5,226,248,5,5,108,248,5,5,63,229,5,5,7,214,5,5,163,216,5,5,246,180,5,5,208,210,5,5,41,190,5,5,128,233,5,5,67,205,5,5,227,194,5,5,246,176,5,5,204,224,5,5,54,188,5,5,52,216,5,5,241,229,5,5,237,193,5,5,229,184,5,5,204,240,5,5,160,201,5,5,52,210,5,5,127,205,5,5,137,220,5,5,227,248,5,5,67,244,5,5,9,214,5,5,85,176,5,5,61,192,5,5,67,178,5,5,245,219,5,5,135,172,5,5,197,216,5,5,195,216,5,5,174,190,5,5,50,195,5,5,132,216,5,5,132,199,5,5,236,177,5,5,129,233,5,5,79,198,5,5,35,213,5,5,229,168,5,5,156,168,5,5,109,197,5,5,31,238,5,5,191,181,5,5,237,207,5,5,214,223,5,5,53,208,5,5,186,192,5,5,244,224,5,5,236,248,5,5,130,178,5,5,45,234,5,5,9,201,5,5,41,172,5,5,48,197,5,5,242,237,5,5,46,219,5,5,46,238,5,5,42,238,5,5,163,210,5,5,12,230,5,5,115,195,5,5,82,171,5,5,65,211,5,5,105,185,5,5,47,247,5,5,37,247,5,5,110,200,5,5,75,209,5,5,69,194,5,5,137,233,5,5,206,203,5,5,19,225,5,5,241,168,5,5,216,223,5,5,132,205,5,5,64,206,5,5,110,218,5,5,244,225,5,5,7,212,5,5,98,237,5,5,221,201,5,5,42,172,5,5,154,222,5,5,211,243,5,5,213,210,5,5,95,232,5,5,72,198,5,5,192,191,5,5,193,202,5,5,146,200,5,5,144,190,5,5,147,240,5,5,91,205,5,5,15,205,5,5,77,215,5,5,78,215,5,5,212,243,5,5,83,215,5,5,233,200,5,5,10,232,5,5,93,240,5,5,176,207,5,5,92,218,5,5,17,173,5,5,223,229,5,5,250,176,5,5,140,233,5,5,10,221,5,5,122,206,5,5,73,198,5,5,65,208,5,5,173,174,5,5,214,243,5,5,39,206,5,5,20,225,5,5,224,249,5,5,215,202,5,5,83,179,5,5,57,228,5,5,70,178,5,5,244,194,5,5,8,198,5,5,15,201,5,5,222,202,5,5,54,210,5,5,79,246,5,5,92,187,5,5,77,187,5,5,75,214,5,5,188,235,5,5,255,213,5,5,2,214,5,5,91,222,5,5,187,198,5,5,7,241,5,5,165,184,5,5,185,238,5,5,206,185,5,5,191,184,5,5,255,168,5,5,173,182,5,5,69,246,5,5,227,213,5,5,66,179,5,5,74,199,5,5,2,209,5,5,128,230,5,5,122,186,5,5,172,188,5,5,165,172,5,5,75,233,5,5,80,208,5,5,166,175,5,5,116,185,5,5,221,178,5,5,217,234,5,5,2,195,5,5,5,209,5,5,7,174,5,5,192,196,5,5,40,221,5,5,40,181,5,5,240,241,5,5,236,174,5,5,103,168,5,5,247,168,5,5,218,234,5,5,3,195,5,5,41,181,5,5,30,203,5,5,4,211,5,5,76,170,5,5,154,173,5,5,91,179,5,5,32,181,5,5,51,239,5,5,221,184,5,5,190,219,5,5,245,198,5,5,220,236,5,5,242,180,5,5,24,192,5,5,69,227,5,5,81,233,5,5,33,181,5,5,212,194,5,5,94,196,5,5,64,237,5,5,188,231,5,5,12,209,5,5,209,222,5,5,0,151,5,5,244,215,5,5,0,152,5,5,64,246,5,5,237,178,5,5,8,246,5,5,191,183,5,5,216,222,5,5,128,203,5,5,116,217,5,5,86,234,5,5,209,238,5,5,231,194,5,5,138,220,5,5,232,194,5,5,237,248,5,5,122,239,5,5,38,203,5,5,140,170,5,5,41,202,5,5,89,233,5,5,90,233,5,5,158,229,5,5,99,235,5,5,108,214,5,5,117,214,5,5,185,244,5,5,55,171,5,5,204,197,5,5,186,244,5,5,42,201,5,5,211,182,5,5,5,169,5,5,7,169,5,5,220,200,5,5,5,242,5,5,239,200,5,5,83,229,5,5,90,180,5,5,115,221,5,5,165,203,5,5,100,193,5,5,177,189,5,5,117,233,5,5,106,193,5,5,242,241,5,5,196,245,5,5,9,195,5,5,10,230,5,5,167,226,5,5,107,180,5,5,163,195,5,5,224,174,5,5,217,239,5,5,46,184,5,5,177,215,5,5,231,244,5,5,135,217,5,5,208,248,5,5,236,244,5,5,190,180,5,5,101,177,5,5,68,223,5,5,229,233,5,5,219,248,5,5,228,248,5,5,133,216,5,5,235,203,5,5,238,248,5,5,185,175,5,5,204,180,5,5,21,248,5,5,137,182,5,5,66,173,5,5,70,188,5,5,138,241,5,5,172,221,5,5,121,212,5,5,33,241,5,5,199,207,5,5,56,212,5,5,118,214,5,5,202,244,5,5,75,207,5,5,237,205,5,5,122,212,5,5,218,212,5,5,133,204,5,5,178,183,5,5,167,182,5,5,46,235,5,5,21,196,5,5,22,196,5,5,155,210,5,5,196,249,5,5,97,245,5,5,200,238,5,5,140,204,5,5,196,220,5,5,31,194,5,5,180,241,5,5,206,238,5,5,153,214,5,5,38,247,5,5,63,182,5,5,92,213,5,5,64,182,5,5,222,244,5,5,153,199,5,5,100,224,5,5,213,241,5,5,46,230,5,5,192,192,5,5,208,192,5,5,226,192,5,5,219,191,5,5,183,218,5,5,7,178,5,5,181,196,5,5,163,246,5,5,12,244,5,5,101,233,5,5,131,226,5,5,161,235,5,5,198,234,5,5,135,184,5,5,127,200,5,5,235,184,5,5,27,188,5,5,226,224,5,5,18,179,5,5,140,234,5,5,64,173,5,5,206,221,5,5,199,199,5,5,42,237,5,5,211,221,5,5,194,228,5,5,228,208,5,5,229,208,5,5,193,227,5,5,24,176,5,5,85,230,5,5,73,243,5,5,167,169,5,5,93,168,5,5,84,244,5,5,18,169,5,5,65,195,5,5,48,200,5,5,116,221,5,5,240,189,5,5,162,182,5,5,114,188,5,5,95,187,5,5,107,173,5,5,3,235,5,5,25,209,5,5,148,191,5,5,253,182,5,5,145,216,5,5,146,189,5,5,251,238,5,5,177,230,5,5,219,233,5,5,90,236,5,5,85,244,5,5,163,182,5,5,24,225,5,5,92,221,5,5,69,197,5,5,53,237,5,5,204,243,5,5,106,171,5,5,4,234,5,5,176,240,5,5,66,235,5,5,228,213,5,5,225,245,5,5,47,204,5,5,26,176,5,5,115,188,5,5,200,207,5,5,21,250,5,5,98,209,5,5,212,170,5,5,209,234,5,5,149,191,5,5,73,245,5,5,149,249,5,5,28,222,5,5,29,222,5,5,21,242,5,5,225,182,5,5,184,179,5,5,98,207,5,5,171,210,5,5,151,173,5,5,137,229,5,5,24,180,5,5,0,157,5,5,107,171,5,5,94,168,5,5,178,247,5,5,213,204,5,5,69,232,5,5,203,199,5,5,162,226,5,5,185,173,5,5,221,221,5,5,235,190,5,5,236,190,5,5,58,235,5,5,239,199,5,5,146,234,5,5,201,194,5,5,222,195,5,5,226,246,5,5,223,195,5,5,175,220,5,5,10,227,5,5,93,189,5,5,209,236,5,5,155,184,5,5,204,232,5,5,65,220,5,5,61,233,5,5,10,238,5,5,50,243,5,5,9,191,5,5,253,187,5,5,35,188,5,5,53,198,5,5,119,228,5,5,124,232,5,5,54,200,5,5,184,247,5,5,201,230,5,5,103,174,5,5,149,221,5,5,250,171,5,5,129,245,5,5,130,245,5,5,136,230,5,5,120,228,5,5,81,191,5,5,122,188,5,5,8,174,5,5,126,228,5,5,115,226,5,5,220,248,5,5,241,249,5,5,166,247,5,5,36,214,5,5,58,196,5,5,216,230,5,5,111,220,5,5,156,210,5,5,217,230,5,5,190,216,5,5,211,214,5,5,26,196,5,5,84,187,5,5,61,246,5,5,52,239,5,5,2,247,5,5,82,168,5,5,127,228,5,5,222,203,5,5,103,203,5,5,114,173,5,5,181,228,5,5,62,233,5,5,217,243,5,5,187,182,5,5,17,235,5,5,200,185,5,5,150,238,5,5,189,231,5,5,53,243,5,5,19,191,5,5,191,234,5,5,13,209,5,5,250,199,5,5,229,237,5,5,177,240,5,5,168,222,5,5,54,229,5,5,167,222,5,5,194,216,5,5,120,207,5,5,29,210,5,5,225,193,5,5,154,211,5,5,83,168,5,5,65,237,5,5,30,176,5,5,153,237,5,5,156,224,5,5,39,214,5,5,39,209,5,5,219,194,5,5,108,198,5,5,59,185,5,5,220,229,5,5,169,173,5,5,246,214,5,5,130,188,5,5,234,236,5,5,164,202,5,5,13,168,5,5,242,192,5,5,252,192,5,5,231,207,5,5,218,243,5,5,185,233,5,5,131,188,5,5,208,209,5,5,121,209,5,5,169,176,5,5,183,210,5,5,31,245,5,5,107,191,5,5,138,169,5,5,49,188,5,5,51,235,5,5,217,175,5,5,132,203,5,5,251,231,5,5,67,225,5,5,65,196,5,5,119,213,5,5,236,203,5,5,199,227,5,5,88,231,5,5,109,239,5,5,4,193,5,5,249,190,5,5,199,177,5,5,26,238,5,5,27,238,5,5,171,202,5,5,42,225,5,5,34,227,5,5,66,233,5,5,240,182,5,5,84,221,5,5,105,245,5,5,135,188,5,5,123,239,5,5,210,232,5,5,18,234,5,5,56,221,5,5,235,194,5,5,143,169,5,5,106,196,5,5,246,236,5,5,23,168,5,5,43,238,5,5,33,219,5,5,176,222,5,5,3,208,5,5,150,235,5,5,216,237,5,5,54,214,5,5,184,202,5,5,25,174,5,5,218,199,5,5,218,179,5,5,159,203,5,5,2,237,5,5,240,191,5,5,96,205,5,5,34,231,5,5,231,218,5,5,240,204,5,5,53,210,5,5,140,206,5,5,40,206,5,5,67,220,5,5,147,225,5,5,193,236,5,5,254,247,5,5,253,242,5,5,254,242,5,5,87,217,5,5,253,237,5,5,198,185,5,5,255,237,5,5,147,189,5,5,163,188,5,5,127,222,5,5,138,172,5,5,137,172,5,5,127,221,5,5,14,207,5,5,189,172,5,5,192,172,5,5,59,226,5,5,240,249,5,5,95,172,5,5,227,234,5,5,93,191,5,5,14,240,5,5,79,216,5,5,14,183,5,5,21,213,5,5,7,243,5,5,63,241,5,5,65,219,5,5,157,212,5,5,21,183,5,5,217,183,5,5,48,204,5,5,205,182,5,5,136,217,5,5,47,226,5,5,150,211,5,5,163,226,5,5,40,223,5,5,253,245,5,5,61,201,5,5,60,201,5,5,227,249,5,5,31,209,5,5,184,190,5,5,196,228,5,5,196,227,5,5,188,173,5,5,25,192,5,5,76,214,5,5,60,240,5,5,110,249,5,5,197,228,5,5,35,227,5,5,67,201,5,5,93,201,5,5,4,208,5,5,241,204,5,5,184,209,5,5,184,178,5,5,86,229,5,5,86,209,5,5,215,169,5,5,143,244,5,5,187,222,5,5,188,222,5,5,186,209,5,5,200,247,5,5,122,218,5,5,166,168,5,5,32,214,5,5,50,181,5,5,51,181,5,5,107,178,5,5,96,202,5,5,67,187,5,5,2,192,5,5,147,196,5,5,25,170,5,5,113,234,5,5,87,174,5,5,137,176,5,5,12,220,5,5,49,219,5,5,160,243,5,5,205,217,5,5,37,215,5,5,134,241,5,5,192,184,5,5,28,230,5,5,200,172,5,5,74,220,5,5,164,235,5,5,78,182,5,5,121,230,5,5,63,249,5,5,63,202,5,5,47,234,5,5,50,172,5,5,58,177,5,5,152,218,5,5,230,170,5,5,224,227,5,5,19,179,5,5,51,245,5,5,39,207,5,5,225,174,5,5,240,238,5,5,172,184,5,5,207,185,5,5,167,180,5,5,244,201,5,5,200,214,5,5,190,222,5,5,2,185,5,5,139,226,5,5,149,194,5,5,130,208,5,5,144,228,5,5,157,200,5,5,171,196,5,5,40,207,5,5,43,237,5,5,192,206,5,5,186,208,5,5,116,223,5,5,177,242,5,5,71,188,5,5,221,182,5,5,149,169,5,5,68,195,5,5,22,180,5,5,54,185,5,5,180,237,5,5,233,231,5,5,141,175,5,5,25,176,5,5,229,211,5,5,121,222,5,5,53,190,5,5,220,233,5,5,90,175,5,5,30,248,5,5,91,175,5,5,144,223,5,5,19,169,5,5,145,223,5,5,103,192,5,5,251,229,5,5,218,195,5,5,20,186,5,5,8,192,5,5,71,207,5,5,244,212,5,5,56,170,5,5,176,228,5,5,95,168,5,5,142,182,5,5,22,183,5,5,252,238,5,5,218,183,5,5,19,210,5,5,178,230,5,5,241,189,5,5,232,235,5,5,85,180,5,5,239,233,5,5,223,245,5,5,115,237,5,5,216,203,5,5,90,219,5,5,125,181,5,5,139,207,5,5,90,245,5,5,179,187,5,5,87,246,5,5,157,176,5,5,117,243,5,5,254,249,5,5,117,221,5,5,122,222,5,5,13,244,5,5,22,179,5,5,107,202,5,5,73,205,5,5,200,193,5,5,90,174,5,5,146,223,5,5,178,215,5,5,78,183,5,5,199,244,5,5,242,232,5,5,237,231,5,5,91,199,5,5,172,213,5,5,231,224,5,5,73,231,5,5,180,246,5,5,178,186,5,5,245,232,5,5,116,193,5,5,46,193,5,5,11,186,5,5,86,169,5,5,99,209,5,5,11,239,5,5,6,238,5,5,11,238,5,5,30,222,5,5,247,210,5,5,32,170,5,5,75,181,5,5,122,238,5,5,49,204,5,5,108,171,5,5,154,210,5,5,122,200,5,5,164,188,5,5,38,169,5,5,79,182,5,5,77,247,5,5,182,177,5,5,105,176,5,5,84,237,5,5,170,183,5,5,233,168,5,5,163,209,5,5,200,184,5,5,62,214,5,5,73,218,5,5,242,218,5,5,108,207,5,5,209,220,5,5,148,223,5,5,160,245,5,5,173,231,5,5,99,241,5,5,28,221,5,5,96,187,5,5,31,228,5,5,170,244,5,5,22,210,5,5,53,211,5,5,235,240,5,5,5,179,5,5,218,246,5,5,126,244,5,5,217,172,5,5,14,178,5,5,50,186,5,5,20,172,5,5,185,196,5,5,99,168,5,5,226,183,5,5,202,193,5,5,172,168,5,5,76,181,5,5,202,198,5,5,7,210,5,5,36,248,5,5,61,170,5,5,178,204,5,5,248,172,5,5,83,220,5,5,121,223,5,5,162,175,5,5,101,212,5,5,19,222,5,5,179,186,5,5,127,244,5,5,184,237,5,5,53,174,5,5,186,196,5,5,31,222,5,5,92,246,5,5,179,204,5,5,142,207,5,5,114,202,5,5,192,218,5,5,171,244,5,5,14,244,5,5,231,170,5,5,252,244,5,5,219,246,5,5,214,204,5,5,58,180,5,5,76,205,5,5,121,221,5,5,115,202,5,5,208,200,5,5,232,240,5,5,196,222,5,5,174,235,5,5,239,222,5,5,234,214,5,5,181,245,5,5,65,214,5,5,126,202,5,5,131,238,5,5,193,232,5,5,254,245,5,5,127,202,5,5,231,219,5,5,144,186,5,5,124,198,5,5,211,169,5,5,132,218,5,5,76,233,5,5,234,168,5,5,133,218,5,5,131,171,5,5,6,249,5,5,55,175,5,5,22,239,5,5,145,176,5,5,187,234,5,5,207,247,5,5,20,194,5,5,237,249,5,5,227,181,5,5,249,181,5,5,70,241,5,5,34,182,5,5,235,185,5,5,191,198,5,5,110,201,5,5,203,244,5,5,187,203,5,5,179,239,5,5,103,237,5,5,173,188,5,5,159,185,5,5,23,239,5,5,35,222,5,5,117,185,5,5,178,243,5,5,28,206,5,5,239,183,5,5,76,195,5,5,10,189,5,5,99,187,5,5,184,225,5,5,3,187,5,5,243,228,5,5,176,199,5,5,16,219,5,5,77,168,5,5,37,168,5,5,152,197,5,5,132,238,5,5,192,248,5,5,93,199,5,5,227,246,5,5,231,216,5,5,11,227,5,5,195,219,5,5,194,219,5,5,113,190,5,5,255,196,5,5,189,196,5,5,128,235,5,5,77,181,5,5,151,248,5,5,153,241,5,5,205,243,192,0,0,0,5,5,51,240,5,5,77,195,5,5,180,204,5,5,253,244,5,5,235,235,5,5,102,218,5,5,182,245,5,5,81,178,5,5,66,214,5,5,13,216,5,5,57,190,5,5,100,187,5,5,114,194,5,5,124,248,5,5,175,235,5,5,133,224,5,5,25,220,5,5,189,245,5,5,151,169,5,5,204,226,5,5,101,200,5,5,88,196,5,5,240,213,5,5,225,169,5,5,245,183,5,5,78,219,5,5,45,227,5,5,205,197,5,5,202,230,5,5,43,201,5,5,182,204,5,5,87,183,5,5,72,214,5,5,192,229,5,5,27,198,5,5,222,184,5,5,246,223,5,5,73,203,5,5,56,217,5,5,239,226,5,5,73,241,5,5,147,207,5,5,51,169,5,5,19,205,5,5,147,212,5,5,126,248,5,5,31,179,5,5,7,235,5,5,104,227,5,5,28,244,5,5,100,168,5,5,128,186,5,5,77,170,5,5,224,178,5,5,254,187,5,5,73,249,5,5,105,246,5,5,166,218,5,5,180,169,5,5,193,185,5,5,210,193,5,5,156,190,5,5,121,228,5,5,165,211,5,5,54,193,5,5,144,226,5,5,227,192,5,5,3,233,5,5,238,205,5,5,163,191,5,5,193,220,5,5,188,172,5,5,28,183,5,5,153,223,5,5,33,208,5,5,60,230,5,5,252,201,5,5,253,201,5,5,98,180,5,5,147,216,5,5,162,240,5,5,134,224,5,5,229,196,5,5,241,225,5,5,166,233,5,5,83,200,5,5,218,248,5,5,131,222,5,5,9,173,5,5,126,182,5,5,42,229,5,5,89,196,5,5,254,201,5,5,53,171,5,5,216,231,5,5,150,183,5,5,187,225,5,5,238,246,5,5,170,200,5,5,237,202,5,5,211,193,5,5,193,248,5,5,62,204,5,5,5,202,5,5,240,214,5,5,115,171,5,5,83,206,5,5,161,176,5,5,152,215,5,5,135,208,5,5,140,214,5,5,141,214,5,5,69,172,5,5,140,187,5,5,20,173,5,5,162,178,5,5,212,182,5,5,244,211,5,5,68,169,5,5,69,169,5,5,155,191,5,5,105,249,5,5,114,174,5,5,16,244,5,5,127,192,5,5,148,202,5,5,165,212,5,5,51,242,5,5,52,242,5,5,130,186,5,5,56,198,5,5,67,180,5,5,104,225,5,5,16,185,5,5,182,228,5,5,41,179,5,5,102,177,5,5,87,182,5,5,55,174,5,5,4,245,5,5,212,214,5,5,155,242,5,5,161,236,5,5,53,242,5,5,201,217,5,5,53,239,5,5,6,220,5,5,136,218,5,5,15,176,5,5,230,201,5,5,77,214,5,5,195,248,5,5,5,184,5,5,213,198,5,5,175,200,5,5,168,249,5,5,169,249,5,5,98,245,5,5,191,186,5,5,8,183,5,5,29,183,5,5,44,221,5,5,191,216,5,5,134,210,5,5,128,228,5,5,185,187,5,5,161,205,5,5,94,188,5,5,43,195,5,5,201,238,5,5,60,175,5,5,39,197,5,5,9,197,5,5,115,174,5,5,25,250,5,5,75,203,5,5,184,215,5,5,134,246,5,5,16,176,5,5,240,235,5,5,232,196,5,5,154,169,5,5,162,194,5,5,221,248,5,5,20,249,5,5,56,171,5,5,166,212,5,5,3,180,5,5,143,175,5,5,115,173,5,5,215,207,5,5,23,190,5,5,217,193,5,5,42,187,5,5,124,231,5,5,125,180,5,5,153,215,5,5,139,178,5,5,101,187,5,5,92,179,5,5,108,206,5,5,107,246,5,5,12,218,5,5,52,209,5,5,57,184,5,5,174,185,5,5,198,212,5,5,127,220,5,5,142,238,5,5,24,228,5,5,7,220,5,5,59,181,5,5,228,237,5,5,108,184,5,5,55,229,5,5,215,228,5,5,194,180,5,5,107,193,5,5,109,249,5,5,153,193,5,5,151,238,5,5,102,221,5,5,52,231,5,5,228,236,5,5,167,236,5,5,216,175,5,5,154,193,5,5,31,176,5,5,246,241,5,5,190,188,5,5,133,244,5,5,8,230,5,5,70,213,5,5,11,170,5,5,121,237,5,5,220,191,5,5,159,234,5,5,116,219,5,5,66,237,5,5,138,200,5,5,114,236,5,5,220,169,5,5,20,191,5,5,251,199,5,5,152,195,5,5,252,199,5,5,72,223,5,5,94,183,5,5,95,233,5,5,25,228,5,5,239,246,5,5,32,194,5,5,204,209,5,5,121,207,5,5,146,175,5,5,249,189,5,5,187,189,5,5,56,203,5,5,231,201,5,5,225,226,5,5,30,210,5,5,181,241,5,5,50,241,5,5,159,207,5,5,170,223,5,5,77,235,5,5,78,235,5,5,90,237,5,5,197,245,5,5,71,213,5,5,22,238,5,5,135,192,5,5,92,195,5,5,23,238,5,5,145,175,5,5,17,181,5,5,170,241,5,5,186,249,5,5,216,228,5,5,160,207,5,5,60,226,5,5,128,192,5,5,93,195,5,5,106,198,5,5,14,217,5,5,126,240,5,5,7,219,5,5,202,190,5,5,31,205,5,5,145,201,5,5,228,217,5,5,173,232,5,5,147,213,5,5,251,221,5,5,181,184,5,5,31,225,5,5,2,201,5,5,140,229,5,5,182,241,5,5,42,174,5,5,220,205,5,5,41,197,5,5,64,221,5,5,191,175,5,5,12,170,5,5,180,233,5,5,110,193,5,5,80,239,5,5,242,244,5,5,19,184,5,5,177,211,5,5,112,208,5,5,46,201,5,5,212,218,5,5,105,186,5,5,43,194,5,5,42,197,5,5,179,224,5,5,194,237,5,5,205,245,5,5,61,169,5,5,33,220,5,5,207,242,5,5,79,249,5,5,40,209,5,5,12,224,5,5,119,193,5,5,154,237,5,5,103,195,5,5,248,190,5,5,246,184,5,5,213,182,5,5,179,244,5,5,110,215,5,5,201,206,5,5,124,224,5,5,208,242,5,5,181,233,5,5,213,218,5,5,232,221,5,5,113,246,5,5,18,177,5,5,145,229,5,5,226,226,5,5,146,204,5,5,209,218,5,5,111,225,5,5,33,218,5,5,188,244,5,5,78,223,5,5,159,221,5,5,201,224,5,5,223,198,5,5,236,230,5,5,99,186,5,5,85,214,5,5,60,185,5,5,61,185,5,5,116,224,5,5,16,212,5,5,167,225,5,5,130,185,5,5,32,176,5,5,72,179,5,5,123,211,5,5,139,192,5,5,47,223,5,5,36,186,5,5,18,176,5,5,193,215,5,5,224,172,5,5,134,215,5,5,79,190,5,5,166,207,5,5,237,234,5,5,29,185,5,5,40,185,5,5,196,248,5,5,8,228,5,5,18,216,5,5,106,237,5,5,73,179,5,5,111,193,5,5,142,198,5,5,246,249,5,5,125,178,5,5,226,204,5,5,59,171,5,5,219,247,5,5,196,219,5,5,59,231,5,5,43,192,5,5,249,202,5,5,108,191,5,5,200,240,5,5,162,215,5,5,187,187,5,5,182,184,5,5,185,184,5,5,153,227,5,5,68,190,5,5,89,214,5,5,8,220,5,5,20,177,5,5,172,212,5,5,81,241,5,5,193,189,5,5,120,194,5,5,5,190,5,5,172,190,5,5,112,187,5,5,11,211,5,5,90,239,5,5,43,185,5,5,165,198,5,5,50,187,5,5,51,187,5,5,143,172,5,5,25,207,5,5,206,195,5,5,238,178,5,5,131,248,5,5,147,201,5,5,65,201,5,5,18,174,5,5,170,176,5,5,18,202,5,5,101,234,5,5,196,216,5,5,6,223,5,5,92,182,5,5,253,226,5,5,230,186,5,5,63,244,5,5,19,224,5,5,192,201,5,5,124,205,5,5,82,203,5,5,120,208,5,5,38,205,5,5,193,173,5,5,20,224,5,5,226,198,5,5,106,175,5,5,117,225,5,5,247,170,5,5,182,205,5,5,162,196,5,5,165,245,5,5,137,244,5,5,148,222,5,5,32,245,5,5,245,206,5,5,64,209,5,5,236,210,5,5,108,237,5,5,151,226,5,5,173,212,5,5,63,248,5,5,34,220,5,5,2,231,5,5,236,217,5,5,14,189,5,5,164,193,5,5,171,176,5,5,44,192,5,5,72,236,5,5,212,215,5,5,119,235,5,5,74,240,5,5,17,182,5,5,189,235,5,5,150,246,5,5,25,216,5,5,229,249,5,5,204,176,5,5,42,214,5,5,219,222,5,5,66,190,5,5,38,200,5,5,212,245,5,5,7,250,5,5,35,243,5,5,139,220,5,5,3,231,5,5,36,176,5,5,119,179,5,5,43,182,5,5,228,184,5,5,69,209,5,5,107,230,5,5,253,215,5,5,105,218,5,5,23,204,5,5,156,204,5,5,26,216,5,5,145,232,5,5,106,219,5,5,93,182,5,5,246,244,5,5,12,228,5,5,117,201,5,5,93,243,5,5,30,223,5,5,250,180,5,5,72,174,5,5,121,225,5,5,248,207,5,5,20,197,5,5,130,174,5,5,27,224,5,5,238,197,5,5,239,197,5,5,120,179,5,5,114,191,5,5,53,192,5,5,168,211,5,5,233,232,5,5,27,228,5,5,73,211,5,5,84,219,5,5,223,247,5,5,36,227,5,5,107,244,5,5,39,183,5,5,251,216,5,5,77,218,5,5,15,189,5,5,117,215,5,5,69,186,5,5,190,204,5,5,129,201,5,5,44,185,5,5,129,175,5,5,89,231,5,5,161,221,5,5,80,249,5,5,193,219,5,5,152,192,5,5,80,180,5,5,36,196,5,5,128,205,5,5,83,194,5,5,192,175,5,5,215,242,5,5,208,224,5,5,151,222,5,5,102,194,5,5,46,225,5,5,11,204,5,5,107,211,5,5,18,240,5,5,62,231,5,5,124,191,5,5,100,220,5,5,250,249,5,5,53,235,5,5,76,174,5,5,247,184,5,5,21,197,5,5,253,249,5,5,124,239,5,5,136,216,5,5,44,214,5,5,122,236,5,5,161,201,5,5,103,183,5,5,60,191,5,5,96,178,5,5,9,193,5,5,91,224,5,5,240,171,5,5,199,213,5,5,131,174,5,5,150,175,5,5,71,248,5,5,113,187,5,5,153,192,5,5,130,195,5,5,113,193,5,5,198,216,5,5,191,244,5,5,238,193,5,5,219,215,5,5,149,178,5,5,211,238,5,5,25,171,5,5,161,223,5,5,232,220,5,5,12,204,5,5,177,202,5,5,228,172,5,5,5,208,5,5,248,239,5,5,201,225,5,5,246,224,5,5,141,208,5,5,171,214,5,5,155,227,5,5,71,171,5,5,228,191,5,5,15,193,5,5,76,215,5,5,165,210,5,5,68,211,5,5,92,238,5,5,67,185,5,5,144,198,5,5,45,240,5,5,126,211,5,5,208,216,5,5,178,236,5,5,172,214,5,5,125,208,5,5,108,245,5,5,117,187,5,5,38,176,5,5,68,192,5,5,3,200,5,5,218,213,5,5,196,178,5,5,131,175,5,5,142,185,5,5,142,208,5,5,21,241,5,5,53,247,5,5,244,190,5,5,79,215,5,5,201,201,5,5,165,201,5,5,148,219,5,5,134,205,5,5,185,202,5,5,253,176,5,5,21,206,5,5,218,208,5,5,135,191,5,5,206,211,5,5,225,205,5,5,48,247,5,5,48,185,5,5,138,180,5,5,223,242,5,5,194,202,5,5,244,182,5,5,240,248,5,5,218,223,5,5,15,203,5,5,147,194,5,5,136,175,5,5,222,216,5,5,231,247,5,5,97,205,5,5,129,236,5,5,200,202,5,5,230,247,5,5,48,174,5,5,120,195,5,5,201,181,5,5,231,223,5,5,86,190,5,5,28,211,5,5,118,242,5,5,242,204,5,5,201,200,5,5,26,195,5,5,96,232,5,5,64,187,5,5,49,197,5,5,43,233,5,5,106,204,5,5,97,240,5,5,189,193,5,5,26,240,5,5,61,241,5,5,152,240,5,5,183,232,5,5,114,211,5,5,232,171,5,5,53,173,5,5,240,200,5,5,51,197,5,5,249,222,5,5,13,221,5,5,21,229,5,5,208,176,5,5,247,217,5,5,160,217,5,5,131,172,5,5,206,196,5,5,124,242,5,5,126,206,5,5,219,202,5,5,255,176,5,5,41,206,5,5,72,178,5,5,11,198,5,5,135,236,5,5,18,201,5,5,246,200,5,5,255,247,5,5,180,201,5,5,89,202,5,5,224,168,5,5,50,210,5,5,131,242,5,5,109,204,5,5,21,187,5,5,142,215,5,5,138,176,5,5,94,190,5,5,221,233,5,5,135,241,5,5,253,238,5,5,41,215,5,5,193,211,5,5,143,234,5,5,177,173,5,5,163,175,5,5,238,214,5,5,117,198,5,5,24,239,5,5,200,197,5,5,119,231,5,5,212,234,5,5,148,188,5,5,37,242,5,5,20,200,5,5,37,201,5,5,163,199,5,5,42,223,5,5,203,230,5,5,0,138,5,5,79,238,5,5,78,214,5,5,193,175,5,5,215,174,5,5,99,216,5,5,164,199,5,5,139,198,5,5,165,199,5,5,141,198,5,5,223,175,5,5,51,220,5,5,146,186,5,5,195,239,5,5,230,233,5,5,96,233,5,5,183,241,5,5,158,215,5,5,18,233,5,5,28,238,5,5,102,185,5,5,39,230,5,5,81,225,5,5,242,195,5,5,200,211,5,5,165,189,5,5,63,226,5,5,96,190,5,5,168,234,5,5,134,212,5,5,90,231,5,5,87,233,5,5,194,175,5,5,5,221,5,5,140,220,5,5,238,187,5,5,186,175,5,5,125,239,5,5,198,181,5,5,205,241,5,5,88,176,5,5,103,190,5,5,159,246,5,5,65,246,5,5,131,176,5,5,14,172,5,5,86,230,5,5,109,214,5,5,18,172,5,5,19,172,5,5,74,228,5,5,70,197,5,5,96,215,5,5,186,174,5,5,237,219,5,5,216,174,5,5,241,219,5,5,104,247,5,5,80,224,5,5,81,224,5,5,165,202,5,5,64,244,5,5,194,241,5,5,172,202,5,5,59,187,5,5,166,177,5,5,134,181,5,5,103,223,5,5,128,193,5,5,118,245,5,5,91,209,5,5,92,209,5,5,116,237,5,5,93,209,5,5,223,176,5,5,29,237,5,5,110,226,5,5,122,221,5,5,183,177,5,5,158,220,5,5,213,234,5,5,209,235,5,5,128,222,5,5,85,172,5,5,206,197,5,5,103,213,5,5,21,215,5,5,57,217,5,5,247,223,5,5,189,216,5,5,103,243,5,5,49,203,5,5,54,239,5,5,158,183,5,5,135,246,5,5,17,238,5,5,88,172,5,5,156,191,5,5,227,177,5,5,129,192,5,5,205,179,5,5,206,245,5,5,107,243,5,5,141,229,5,5,101,175,5,5,79,171,5,5,64,226,5,5,243,195,5,5,167,220,5,5,244,239,5,5,140,179,5,5,200,196,5,5,115,191,5,5,4,177,5,5,110,239,5,5,237,177,5,5,177,180,5,5,103,194,5,5,63,203,5,5,84,171,5,5,139,180,5,5,183,193,5,5,190,193,5,5,116,222,5,5,194,211,5,5,189,180,5,5,37,248,5,5,180,239,5,5,212,216,5,5,36,239,5,5,20,220,5,5,46,216,5,5,237,198,5,5,57,233,5,5,215,235,5,5,114,179,5,5,57,191,5,5,58,191,5,5,100,186,5,5,245,215,5,5,38,192,5,5,91,239,5,5,201,211,5,5,59,191,5,5,201,180,5,5,93,238,5,5,50,233,5,5,47,230,5,5,215,186,5,5,167,209,5,5,180,207,5,5,181,207,5,5,0,156,5,5,125,195,5,5,120,180,5,5,77,242,5,5,23,170,5,5,46,170,5,5,62,170,5,5,248,212,5,5,249,212,5,5,67,170,5,5,40,173,5,5,69,207,5,5,90,188,5,5,55,172,5,5,245,212,5,5,172,203,5,5,47,193,5,5,201,244,5,5,150,219,5,5,194,209,5,5,32,228,5,5,176,235,5,5,250,181,5,5,199,218,5,5,72,232,5,5,2,197,5,5,164,209,5,5,93,188,5,5,58,217,5,5,99,180,5,5,26,220,5,5,62,225,5,5,108,212,5,5,10,197,5,5,34,181,5,5,42,177,5,5,9,170,5,5,169,219,5,5,170,219,5,5,122,207,5,5,154,219,5,5,141,222,5,5,142,222,5,5,36,228,5,5,191,188,5,5,33,194,5,5,202,224,5,5,172,219,5,5,223,205,5,5,165,209,5,5,84,207,5,5,37,227,5,5,238,218,5,5,158,173,5,5,43,214,5,5,217,205,5,5,218,244,5,5,225,219,5,5,219,244,5,5,6,208,5,5,135,205,5,5,161,217,5,5,222,179,5,5,255,221,5,5,198,178,5,5,223,208,5,5,182,197,5,5,41,207,5,5,217,214,5,5,116,213,5,5,252,209,5,5,220,214,5,5,108,178,5,5,232,231,5,5,204,175,5,5,254,182,5,5,48,237,5,5,112,210,5,5,90,171,5,5,227,183,5,5,29,221,5,5,25,180,5,5,168,216,5,5,235,214,5,5,181,239,5,5,193,230,5,5,221,187,5,5,86,237,5,5,38,168,5,5,37,236,5,5,4,199,5,5,176,216,5,5,42,236,5,5,36,180,5,5,25,178,5,5,10,206,5,5,192,216,5,5,93,237,5,5,54,243,5,5,57,243,5,5,12,223,5,5,23,223,5,5,56,246,5,5,94,171,5,5,224,240,5,5,74,178,5,5,13,223,5,5,139,201,5,5,168,210,5,5,215,227,5,5,76,182,5,5,66,187,5,5,197,226,5,5,81,246,5,5,39,217,5,5,47,171,5,5,83,244,5,5,147,208,5,5,245,176,5,5,66,191,5,5,128,179,5,5,23,188,5,5,234,172,5,5,202,248,5,5,226,175,5,5,95,228,5,5,117,182,5,5,156,177,5,5,171,230,5,5,222,227,5,5,36,207,5,5,37,217,5,5,221,214,5,5,117,220,5,5,149,213,5,5,25,188,5,5,32,215,5,5,22,230,5,5,23,230,5,5,201,235,5,5,108,223,5,5,41,219,5,5,232,185,5,5,84,194,5,5,177,174,5,5,24,230,5,5,140,227,5,5,170,196,5,5,83,225,5,5,85,246,5,5,169,246,5,5,38,215,5,5,93,208,5,5,76,186,5,5,162,228,5,5,52,196,5,5,53,196,5,5,88,219,5,5,20,198,5,5,48,189,5,5,252,224,5,5,254,217,5,5,100,192,5,5,203,170,5,5,204,170,5,5,236,184,5,5,199,229,5,5,69,247,5,5,140,182,5,5,70,234,5,5,186,197,5,5,213,189,5,5,84,211,5,5,224,214,5,5,20,183,5,5,201,234,5,5,206,234,5,5,158,216,5,5,107,238,5,5,248,229,5,5,70,243,5,5,176,242,5,5,84,188,5,5,141,236,201,32,230,0,5,5,252,173,5,5,10,178,5,5,27,241,5,5,8,181,5,5,235,189,5,5,205,191,5,5,60,214,5,5,189,209,5,5,147,211,5,5,137,207,5,5,126,177,5,5,149,208,5,5,94,208,5,5,13,175,5,5,46,212,5,5,29,170,5,5,13,220,5,5,170,246,5,5,117,212,5,5,28,212,5,5,149,248,5,5,150,243,5,5,248,185,5,5,128,204,5,5,138,207,5,5,43,244,5,5,75,183,5,5,192,211,5,5,102,202,5,5,70,206,5,5,116,172,5,5,76,183,5,5,236,228,5,5,236,189,5,5,94,209,5,5,198,207,5,5,191,222,5,5,34,197,5,5,161,243,5,5,229,227,5,5,247,227,5,5,248,227,5,5,160,188,5,5,108,202,5,5,76,208,5,5,112,238,5,5,20,182,5,5,222,182,5,5,30,241,5,5,84,226,5,5,208,246,5,5,85,245,5,5,47,186,5,5,200,244,5,5,91,236,5,5,61,223,5,5,201,199,5,5,126,196,5,5,214,196,5,5,150,233,5,5,41,217,5,5,254,238,5,5,43,193,5,5,74,247,5,5,209,217,5,5,205,213,5,5,69,191,5,5,96,208,5,5,209,169,5,5,45,244,5,5,236,247,5,5,142,201,5,5,10,241,5,5,48,186,5,5,53,189,5,5,196,184,5,5,46,182,5,5,97,207,5,5,117,223,5,5,148,189,5,5,167,213,5,5,133,176,5,5,118,182,5,5,88,246,5,5,237,223,5,5,77,211,5,5,52,174,5,5,44,204,5,5,90,212,5,5,143,171,5,5,228,214,5,5,112,223,5,5,122,210,5,5,252,196,5,5,137,219,5,5,31,248,5,5,118,221,5,5,210,201,5,5,65,235,5,5,188,197,5,5,219,183,5,5,30,212,5,5,254,208,5,5,2,225,5,5,28,237,5,5,175,192,5,5,228,240,5,5,218,186,5,5,252,169,5,5,105,235,5,5,211,204,5,5,74,205,5,5,11,178,5,5,142,206,5,5,151,233,5,5,206,213,5,5,46,244,5,5,10,196,5,5,220,239,5,5,9,212,5,5,72,195,5,5,7,238,5,5,6,191,5,5,45,191,5,5,190,243,5,5,98,174,5,5,174,239,5,5,241,228,5,5,130,189,5,5,13,194,5,5,54,237,5,5,181,203,5,5,123,223,5,5,209,192,5,5,225,181,5,5,31,234,5,5,228,183,5,5,130,219,5,5,230,219,5,5,181,246,5,5,31,240,5,5,56,230,5,5,74,231,5,5,190,198,5,5,205,247,5,5,131,194,5,5,144,206,5,5,148,206,5,5,75,168,5,5,59,180,5,5,46,226,5,5,150,209,5,5,211,201,5,5,70,238,5,5,79,208,5,5,210,217,5,5,168,195,5,5,229,213,5,5,32,229,5,5,52,233,5,5,156,233,5,5,58,189,5,5,210,234,5,5,239,223,5,5,175,199,5,5,182,225,5,5,73,216,5,5,62,197,5,5,247,181,5,5,132,247,5,5,50,219,5,5,173,213,5,5,169,235,5,5,73,234,5,5,220,246,5,5,255,186,5,5,110,190,5,5,27,209,5,5,195,191,5,5,45,228,5,5,20,215,5,5,252,211,5,5,30,230,5,5,100,217,5,5,131,204,5,5,12,239,5,5,48,193,5,5,78,196,5,5,127,215,5,5,88,194,5,5,157,194,5,5,175,245,5,5,173,221,5,5,209,248,5,5,163,172,5,5,29,182,5,5,71,191,5,5,210,192,5,5,130,204,5,5,67,173,5,5,162,191,5,5,215,189,5,5,98,211,5,5,170,235,5,5,220,195,5,5,188,203,5,5,50,217,5,5,36,229,5,5,161,245,5,5,50,198,5,5,251,187,5,5,52,169,5,5,49,207,5,5,211,248,5,5,36,241,5,5,194,230,5,5,186,171,5,5,93,180,5,5,152,190,5,5,63,189,5,5,25,239,5,5,34,214,5,5,161,240,5,5,253,200,5,5,120,188,5,5,70,201,5,5,17,188,5,5,70,202,5,5,171,185,5,5,240,183,5,5,57,230,5,5,48,203,5,5,44,176,5,5,120,183,5,5,26,239,5,5,28,242,5,5,12,227,5,5,85,201,5,5,211,187,5,5,224,195,5,5,52,193,5,5,15,175,5,5,132,196,5,5,185,207,5,5,50,224,5,5,56,174,5,5,123,212,5,5,121,232,5,5,94,221,5,5,100,227,5,5,94,200,5,5,155,213,5,5,249,210,5,5,32,188,5,5,17,196,5,5,251,232,5,5,246,220,5,5,200,210,5,5,82,227,5,5,236,240,5,5,77,233,5,5,25,232,5,5,238,226,5,5,105,181,5,5,240,223,5,5,194,227,5,5,126,197,5,5,186,172,5,5,50,226,5,5,128,202,5,5,15,223,5,5,124,223,5,5,213,201,5,5,16,223,5,5,157,225,5,5,122,180,5,5,120,201,5,5,163,200,5,5,234,202,5,5,244,228,5,5,231,229,5,5,78,243,5,5,153,190,5,5,222,178,5,5,4,189,5,5,102,219,5,5,21,194,5,5,42,245,5,5,232,219,5,5,246,183,5,5,222,186,5,5,56,234,5,5,103,222,5,5,240,222,5,5,6,236,5,5,76,176,5,5,56,245,5,5,14,238,5,5,53,199,5,5,255,229,5,5,255,187,5,5,235,227,5,5,32,180,5,5,178,188,5,5,234,229,5,5,230,196,5,5,247,220,5,5,74,203,5,5,153,191,5,5,197,224,5,5,194,248,5,5,111,179,5,5,75,216,5,5,159,178,5,5,156,197,5,5,12,249,5,5,204,230,5,5,55,233,5,5,129,214,5,5,89,186,5,5,181,187,5,5,58,236,5,5,221,203,5,5,140,225,5,5,141,247,5,5,194,212,5,5,123,188,5,5,110,173,5,5,132,222,5,5,73,214,5,5,145,182,5,5,132,246,5,5,154,205,5,5,93,210,5,5,5,197,5,5,188,225,5,5,195,176,5,5,214,201,5,5,163,245,5,5,180,213,5,5,201,182,5,5,154,223,5,5,114,226,5,5,40,213,5,5,20,178,5,5,38,242,5,5,131,210,5,5,123,241,5,5,155,205,5,5,241,184,5,5,103,208,5,5,90,196,5,5,63,204,5,5,81,206,5,5,232,239,5,5,40,177,5,5,141,217,5,5,78,190,5,5,39,242,5,5,202,210,5,5,41,221,5,5,235,170,5,5,47,176,5,5,156,189,5,5,153,242,5,5,171,200,5,5,178,191,5,5,177,216,5,5,59,236,5,5,129,215,5,5,77,226,5,5,189,208,5,5,185,246,5,5,8,240,5,5,192,171,5,5,226,169,5,5,148,242,5,5,202,229,5,5,114,219,5,5,183,182,5,5,178,216,5,5,149,242,5,5,243,198,5,5,228,192,5,5,248,220,5,5,150,242,5,5,234,219,5,5,156,205,5,5,90,249,5,5,124,180,5,5,72,238,5,5,26,194,5,5,157,208,5,5,253,211,5,5,205,230,5,5,158,241,5,5,151,242,5,5,78,221,5,5,96,221,5,5,246,218,5,5,164,190,5,5,11,248,5,5,218,193,5,5,153,211,5,5,171,241,5,5,64,217,5,5,221,226,5,5,142,217,5,5,173,180,5,5,88,182,5,5,132,244,5,5,197,171,5,5,5,230,5,5,235,229,5,5,42,179,5,5,211,228,5,5,139,229,5,5,19,219,5,5,174,233,5,5,174,172,5,5,100,229,5,5,179,188,5,5,25,185,5,5,162,236,5,5,71,189,5,5,75,235,5,5,84,208,5,5,246,198,5,5,78,207,5,5,58,240,5,5,163,236,5,5,46,241,5,5,33,189,5,5,190,208,5,5,146,221,5,5,188,207,5,5,181,243,5,5,166,191,5,5,11,210,5,5,85,187,5,5,240,174,5,5,167,181,5,5,254,211,5,5,154,207,5,5,53,203,5,5,241,214,5,5,242,214,5,5,155,207,5,5,94,226,5,5,213,176,5,5,255,228,5,5,79,172,5,5,141,227,5,5,160,208,5,5,85,191,5,5,111,209,5,5,155,234,5,5,130,192,5,5,137,212,5,5,146,193,5,5,212,193,5,5,183,189,5,5,137,183,5,5,169,232,5,5,55,239,5,5,35,240,5,5,5,245,5,5,224,221,5,5,44,195,5,5,61,174,5,5,198,190,5,5,76,225,5,5,172,241,5,5,87,170,5,5,9,209,5,5,178,221,5,5,85,227,5,5,130,221,5,5,241,240,5,5,11,197,5,5,68,180,5,5,162,227,5,5,209,194,5,5,213,194,5,5,65,217,5,5,64,236,5,5,85,225,5,5,223,204,5,5,221,191,5,5,191,242,5,5,35,210,5,5,40,169,5,5,77,241,5,5,222,217,5,5,127,248,5,5,104,203,5,5,21,173,5,5,35,232,5,5,49,176,5,5,5,211,5,5,21,249,5,5,86,228,5,5,179,221,5,5,5,207,5,5,121,240,5,5,135,200,5,5,25,200,5,5,123,183,5,5,34,194,5,5,228,234,5,5,28,205,5,5,2,229,5,5,176,184,5,5,159,171,5,5,122,240,5,5,207,213,5,5,234,195,5,5,229,236,5,5,108,225,5,5,202,242,5,5,157,224,5,5,203,242,5,5,244,202,5,5,192,237,5,5,243,207,5,5,183,248,5,5,122,174,5,5,8,199,5,5,6,225,5,5,186,224,5,5,53,228,5,5,124,204,5,5,253,185,5,5,209,219,5,5,36,209,5,5,176,244,5,5,228,221,5,5,66,239,5,5,97,206,5,5,183,206,5,5,38,214,5,5,217,228,5,5,158,202,5,5,182,243,5,5,147,230,5,5,231,230,5,5,142,229,5,5,185,215,5,5,56,244,5,5,181,221,5,5,5,224,5,5,0,149,5,5,128,216,5,5,192,223,5,5,85,243,5,5,127,234,5,5,196,239,5,5,210,218,5,5,180,191,5,5,6,224,5,5,167,224,5,5,180,210,5,5,180,224,5,5,182,221,5,5,53,219,5,5,0,139,5,5,39,212,5,5,176,175,5,5,113,175,5,5,49,212,5,5,210,229,5,5,123,172,5,5,211,208,5,5,127,185,5,5,71,179,5,5,127,188,5,5,247,190,5,5,130,231,5,5,22,249,5,5,228,178,5,5,11,247,5,5,39,234,5,5,61,184,5,5,94,195,5,5,38,190,5,5,100,185,5,5,77,249,5,5,166,225,5,5,226,225,5,5,55,224,5,5,97,170,5,5,5,195,5,5,94,191,5,5,130,187,5,5,237,239,5,5,39,185,5,5,224,204,5,5,3,247,5,5,230,236,5,5,255,220,5,5,7,207,5,5,127,240,5,5,51,176,5,5,12,206,5,5,23,201,5,5,31,206,5,5,148,237,5,5,57,171,5,5,17,225,5,5,64,242,5,5,114,234,5,5,3,190,5,5,98,170,5,5,243,170,5,5,20,247,5,5,138,194,5,5,81,199,5,5,107,221,5,5,164,220,5,5,210,178,5,5,113,208,5,5,110,168,5,5,122,205,5,5,221,189,5,5,161,189,5,5,15,241,5,5,79,173,5,5,133,182,5,5,199,240,5,5,132,187,5,5,8,207,5,5,206,216,5,5,189,241,5,5,115,213,5,5,243,192,5,5,11,236,5,5,191,173,5,5,86,214,5,5,85,231,5,5,244,192,5,5,177,205,5,5,35,205,5,5,227,204,5,5,201,195,5,5,173,187,5,5,198,176,5,5,60,205,5,5,148,246,5,5,184,184,5,5,213,215,5,5,9,202,5,5,170,236,5,5,141,172,5,5,10,195,5,5,164,176,5,5,54,176,5,5,152,227,5,5,199,211,5,5,225,225,5,5,249,237,5,5,56,231,5,5,114,208,5,5,112,225,5,5,117,209,5,5,165,220,5,5,47,188,5,5,245,202,5,5,3,201,5,5,54,228,5,5,197,174,5,5,210,184,5,5,126,183,5,5,50,235,5,5,83,238,5,5,20,207,5,5,95,249,5,5,64,207,5,5,164,198,5,5,155,206,5,5,152,212,5,5,214,222,5,5,44,245,5,5,26,245,5,5,139,248,5,5,238,234,5,5,170,190,5,5,203,191,5,5,44,194,5,5,70,236,5,5,5,223,5,5,121,203,5,5,24,177,5,5,13,226,5,5,107,237,5,5,97,194,5,5,199,176,5,5,168,240,5,5,81,189,5,5,115,234,5,5,215,222,5,5,228,186,5,5,129,240,5,5,19,233,5,5,161,249,5,5,66,200,5,5,239,234,5,5,59,203,5,5,21,247,5,5,5,229,5,5,47,213,5,5,87,242,5,5,14,195,5,5,210,213,5,5,89,178,5,5,109,191,5,5,108,195,5,5,105,230,5,5,234,211,5,5,144,192,5,5,6,212,5,5,9,229,5,5,25,224,5,5,113,215,5,5,114,215,5,5,250,230,5,5,190,205,5,5,139,231,5,5,221,235,5,5,21,181,5,5,206,190,5,5,18,209,5,5,105,219,5,5,21,224,5,5,116,201,5,5,210,245,5,5,200,176,5,5,81,239,5,5,166,245,5,5,88,228,5,5,134,220,5,5,38,225,5,5,194,173,5,5,187,235,5,5,33,200,5,5,231,237,5,5,223,220,5,5,119,227,5,5,220,247,5,5,133,219,5,5,246,188,5,5,124,170,5,5,98,220,5,5,34,173,5,5,35,173,5,5,173,222,5,5,32,227,5,5,8,214,5,5,232,203,5,5,10,229,5,5,250,219,5,5,243,219,5,5,128,174,5,5,141,196,5,5,129,174,5,5,69,190,5,5,174,194,5,5,127,201,5,5,234,173,5,5,226,184,5,5,61,177,5,5,99,189,5,5,88,223,5,5,217,222,5,5,154,212,5,5,10,188,5,5,90,243,5,5,198,204,5,5,100,189,5,5,24,184,5,5,132,188,5,5,192,188,5,5,49,232,5,5,49,194,5,5,99,220,5,5,140,231,5,5,139,242,5,5,125,205,5,5,217,200,5,5,79,211,5,5,202,241,5,5,10,204,5,5,167,208,5,5,17,244,5,5,57,178,5,5,175,190,5,5,68,244,5,5,190,233,5,5,95,242,5,5,81,202,5,5,76,222,5,5,112,235,5,5,89,204,5,5,150,228,5,5,42,249,5,5,205,240,5,5,116,191,5,5,108,172,5,5,61,203,5,5,121,179,5,5,38,238,5,5,155,168,5,5,127,190,5,5,213,245,5,5,37,173,5,5,27,207,5,5,3,178,5,5,39,178,5,5,111,239,5,5,87,224,5,5,50,213,5,5,110,197,5,5,205,224,5,5,137,216,5,5,54,192,5,5,234,248,5,5,8,203,5,5,105,211,5,5,158,187,5,5,247,195,5,5,36,183,5,5,246,219,5,5,145,192,5,5,59,224,5,5,117,191,5,5,148,175,5,5,210,224,5,5,160,223,5,5,244,179,5,5,247,219,5,5,16,248,5,5,191,200,5,5,66,171,5,5,9,203,5,5,88,208,5,5,195,221,5,5,220,222,5,5,122,208,5,5,80,211,5,5,138,240,5,5,139,240,5,5,2,208,5,5,253,195,5,5,169,214,5,5,141,170,5,5,10,193,5,5,107,188,5,5,30,219,5,5,51,177,5,5,13,230,5,5,173,225,5,5,22,240,5,5,23,240,5,5,231,180,5,5,124,176,5,5,225,191,5,5,219,216,5,5,26,201,5,5,67,198,5,5,0,162,5,5,25,214,5,5,239,248,5,5,13,229,5,5,67,171,5,5,112,186,5,5,122,215,5,5,140,240,5,5,68,171,5,5,111,200,5,5,243,182,5,5,126,172,5,5,132,207,5,5,70,194,5,5,75,229,5,5,163,206,5,5,223,243,5,5,20,206,5,5,178,202,5,5,20,241,5,5,109,237,5,5,133,205,5,5,142,223,5,5,39,247,5,5,145,240,5,5,137,180,5,5,189,228,5,5,35,191,5,5,201,233,5,5,21,212,5,5,87,221,5,5,3,171,5,5,43,173,5,5,133,209,5,5,165,204,5,5,180,193,5,5,53,214,5,5,252,219,5,5,133,174,5,5,117,186,5,5,73,171,5,5,234,191,5,5,152,232,5,5,92,205,5,5,164,216,5,5,62,188,5,5,148,240,5,5,230,218,5,5,195,202,5,5,109,196,5,5,39,233,5,5,149,240,5,5,68,224,5,5,79,229,5,5,203,233,5,5,85,190,5,5,132,235,5,5,229,247,5,5,236,204,5,5,197,200,5,5,235,180,5,5,102,182,5,5,207,189,5,5,198,200,5,5,155,222,5,5,123,204,5,5,150,240,5,5,60,208,5,5,25,193,5,5,66,203,5,5,72,194,5,5,153,240,5,5,67,183,5,5,249,203,5,5,148,239,5,5,187,193,5,5,40,243,5,5,52,173,5,5,207,177,5,5,81,218,5,5,252,193,5,5,234,200,5,5,103,182,5,5,9,223,5,5,167,242,5,5,245,248,5,5,110,183,5,5,11,221,5,5,204,201,5,5,235,200,5,5,207,176,5,5,158,217,5,5,214,240,5,5,124,215,5,5,48,182,5,5,236,186,5,5,3,198,5,5,16,237,5,5,141,188,5,5,155,240,5,5,134,219,5,5,230,243,5,5,42,206,5,5,7,237,5,5,48,202,5,5,90,208,5,5,154,220,5,5,21,225,5,5,71,178,5,5,245,194,5,5,95,173,5,5,157,240,5,5,144,188,5,5,223,168,5,5,253,247,5,5,16,201,5,5,244,200,5,5,55,210,5,5,92,228,5,5,46,206,5,5,196,235,5,5,102,232,5,5,19,237,5,5,251,184,5,5,23,237,5,5,136,242,5,5,198,191,5,5,229,170,5,5,207,208,5,5,247,186,5,5,172,178,5,5,253,190,5,5,239,232,5,5,240,232,5,5,254,190,5,5,26,189,5,5,37,204,5,5,22,244,5,5,100,248,5,5,172,196,5,5,167,244,5,5,149,233,5,5,226,174,5,5,204,248,5,5,174,243,5,5,175,243,5,5,102,172,5,5,44,237,5,5,229,214,5,5,75,247,5,5,23,183,5,5,89,211,5,5,127,196,5,5,162,229,5,5,4,214,5,5,255,238,5,5,75,205,5,5,6,176,5,5,210,212,5,5,115,198,5,5,31,212,5,5,92,236,5,5,116,198,5,5,67,212,5,5,191,209,5,5,201,173,5,5,164,203,5,5,97,187,5,5,180,198,5,5,9,181,5,5,249,186,5,5,222,233,5,5,209,246,5,5,250,186,5,5,251,186,5,5,30,229,5,5,232,215,5,5,228,170,5,5,128,177,5,5,174,231,5,5,29,246,5,5,238,247,5,5,242,198,5,5,92,245,5,5,229,183,5,5,193,168,5,5,157,233,5,5,158,233,5,5,122,204,5,5,189,248,5,5,67,235,5,5,71,197,5,5,72,225,5,5,91,212,5,5,130,196,5,5,79,212,5,5,232,224,5,5,233,224,5,5,109,171,5,5,85,237,5,5,248,226,5,5,108,220,5,5,38,248,5,5,172,244,5,5,88,179,5,5,90,229,5,5,216,221,5,5,46,203,5,5,232,174,5,5,233,190,5,5,133,247,5,5,151,189,5,5,39,223,5,5,22,201,5,5,203,226,5,5,202,194,5,5,214,234,5,5,11,189,5,5,2,218,5,5,189,203,5,5,154,190,5,5,56,237,5,5,92,234,5,5,93,234,5,5,73,232,5,5,218,239,5,5,33,230,5,5,135,247,5,5,134,237,5,5,36,222,5,5,200,228,5,5,13,227,5,5,208,208,5,5,179,243,5,5,118,198,5,5,30,189,5,5,121,201,5,5,178,231,5,5,241,247,5,5,59,235,5,5,31,246,5,5,231,213,5,5,53,236,5,5,48,191,5,5,4,187,5,5,227,173,5,5,10,191,5,5,192,198,5,5,79,197,5,5,84,182,5,5,191,220,5,5,12,238,5,5,78,191,192,0,0,0,5,5,151,225,5,5,225,195,5,5,115,218,5,5,190,203,5,5,206,230,5,5,247,183,5,5,133,196,5,5,167,233,5,5,35,214,5,5,205,226,5,5,212,248,5,5,240,226,5,5,106,228,5,5,213,187,5,5,148,212,5,5,62,201,5,5,210,236,5,5,220,234,5,5,88,183,5,5,237,174,5,5,200,218,5,5,178,189,5,5,207,230,5,5,133,222,5,5,221,188,5,5,136,235,5,5,109,199,5,5,127,197,5,5,4,233,5,5,208,230,5,5,60,236,5,5,36,188,5,5,138,248,5,5,54,198,5,5,32,179,5,5,168,233,5,5,124,192,5,5,137,230,5,5,61,236,5,5,239,205,5,5,2,188,5,5,215,236,5,5,157,190,5,5,229,207,5,5,6,197,5,5,136,178,5,5,186,169,5,5,30,183,5,5,19,204,5,5,58,200,5,5,179,191,5,5,197,227,5,5,218,230,5,5,43,177,5,5,63,230,5,5,34,189,5,5,203,173,5,5,58,184,5,5,6,230,5,5,163,194,5,5,162,176,5,5,138,183,5,5,185,213,5,5,236,216,5,5,115,219,5,5,219,230,5,5,237,216,5,5,252,233,5,5,180,173,5,5,221,236,5,5,222,236,5,5,56,239,5,5,215,197,5,5,54,242,5,5,26,185,5,5,63,218,5,5,6,213,5,5,83,234,5,5,27,185,5,5,131,221,5,5,167,173,5,5,194,220,5,5,81,234,5,5,203,210,5,5,175,185,5,5,136,229,5,5,15,174,5,5,224,188,5,5,14,200,5,5,105,247,5,5,195,180,5,5,162,231,5,5,21,191,5,5,139,183,5,5,57,203,5,5,18,235,5,5,9,234,5,5,203,190,5,5,214,194,5,5,155,193,5,5,99,170,5,5,61,240,5,5,13,248,5,5,56,229,5,5,143,227,5,5,112,220,5,5,237,230,5,5,155,211,5,5,156,211,5,5,24,173,5,5,66,236,5,5,134,196,5,5,139,196,5,5,65,242,5,5,209,207,5,5,30,220,5,5,103,229,5,5,148,244,5,5,231,195,5,5,242,216,5,5,248,218,5,5,161,207,5,5,167,190,5,5,233,234,5,5,100,245,5,5,218,228,5,5,89,182,5,5,69,217,5,5,82,224,5,5,67,237,5,5,197,203,5,5,12,248,5,5,47,195,5,5,31,244,5,5,147,186,5,5,89,169,5,5,188,189,5,5,55,243,5,5,37,210,5,5,57,222,5,5,110,203,5,5,171,170,5,5,37,186,5,5,186,227,5,5,113,225,5,5,204,173,5,5,97,220,5,5,214,181,5,5,207,171,5,5,241,190,5,5,125,233,5,5,136,231,5,5,151,230,5,5,238,230,5,5,130,243,5,5,199,188,5,5,226,188,5,5,239,230,5,5,89,243,5,5,80,234,5,5,246,209,5,5,114,220,5,5,243,216,5,5,209,237,5,5,139,235,5,5,115,208,5,5,250,202,5,5,130,240,5,5,99,230,5,5,214,218,5,5,223,185,5,5,235,236,5,5,234,215,5,5,125,204,5,5,240,230,5,5,114,170,5,5,248,170,5,5,172,176,5,5,183,205,5,5,165,193,5,5,162,222,5,5,92,239,5,5,39,205,5,5,174,212,5,5,58,224,5,5,93,239,5,5,217,225,5,5,228,197,5,5,115,249,5,5,131,243,5,5,6,190,5,5,159,238,5,5,30,247,5,5,115,168,5,5,109,229,5,5,187,204,5,5,50,188,5,5,202,211,5,5,116,218,5,5,140,196,5,5,26,207,5,5,70,200,5,5,168,220,5,5,5,177,5,5,108,244,5,5,172,193,5,5,4,231,5,5,5,231,5,5,6,231,5,5,94,239,5,5,88,233,5,5,3,175,5,5,209,190,5,5,86,173,5,5,29,238,5,5,43,225,5,5,67,218,5,5,241,236,5,5,190,235,5,5,254,215,5,5,66,198,5,5,177,178,5,5,22,181,5,5,52,221,5,5,177,194,5,5,40,183,5,5,93,223,5,5,133,203,5,5,96,242,5,5,237,203,5,5,38,227,5,5,202,220,5,5,41,183,5,5,94,182,5,5,242,236,5,5,191,235,5,5,24,201,5,5,192,207,5,5,154,225,5,5,112,239,5,5,142,196,5,5,232,207,5,5,113,196,5,5,233,194,5,5,135,240,5,5,97,242,5,5,126,239,5,5,113,235,5,5,223,200,5,5,8,225,5,5,35,244,5,5,110,172,5,5,92,224,5,5,13,231,5,5,39,218,5,5,145,249,5,5,16,203,5,5,61,191,5,5,248,247,5,5,197,233,5,5,97,204,5,5,226,228,5,5,127,239,5,5,136,233,5,5,106,245,5,5,125,191,5,5,145,177,5,5,108,211,5,5,224,200,5,5,34,219,5,5,92,232,5,5,235,188,5,5,151,235,5,5,255,195,5,5,79,175,5,5,151,178,5,5,217,237,5,5,236,188,5,5,27,201,5,5,6,171,5,5,227,218,5,5,186,202,5,5,138,209,5,5,144,169,5,5,121,219,5,5,22,206,5,5,147,200,5,5,102,168,5,5,156,235,5,5,219,199,5,5,52,223,5,5,147,203,5,5,201,202,5,5,98,205,5,5,246,197,5,5,161,203,5,5,3,237,5,5,35,231,5,5,204,233,5,5,243,204,5,5,47,238,5,5,83,172,5,5,93,218,5,5,43,243,5,5,28,201,5,5,209,176,5,5,4,198,5,5,37,175,5,5,237,186,5,5,122,197,5,5,237,173,5,5,68,208,5,5,148,225,5,5,30,201,5,5,2,248,5,5,19,201,5,5,110,204,5,5,9,177,5,5,138,242,5,5,82,245,5,5,83,245,5,5,230,211,5,5,24,246,5,5,80,212,5,5,54,174,5,5,179,242,5,5,3,168,5,5,101,229,5,5,66,188,5,5,229,197,5,5,240,197,5,5,73,184,5,5,233,237,5,5,210,168,5,5,174,179,5,5,238,237,5,5,125,237,5,5,207,249,5,5,2,223,5,5,253,181,5,5,8,212,5,5,243,175,5,5,203,198,5,5,238,243,5,5,206,179,5,5,194,215,5,5,201,240,5,5,220,215,5,5,82,213,5,5,20,169,5,5,33,212,5,5,184,173,5,5,147,193,5,5,245,211,5,5,126,180,5,5,237,175,5,5,184,241,5,5,149,244,5,5,172,170,5,5,207,179,5,5,62,169,5,5,208,171,5,5,239,175,5,5,82,241,5,5,83,241,5,5,140,180,5,5,247,235,5,5,62,174,5,5,82,211,5,5,83,211,5,5,148,213,5,5,148,196,5,5,146,209,5,5,174,224,5,5,169,209,5,5,80,201,5,5,153,218,5,5,32,207,5,5,143,182,5,5,72,207,5,5,192,209,5,5,6,185,5,5,125,230,5,5,201,236,5,5,89,185,5,5,168,169,5,5,122,223,5,5,14,194,5,5,80,186,5,5,100,241,5,5,92,185,5,5,123,221,5,5,174,209,5,5,6,179,5,5,46,215,5,5,8,218,5,5,213,217,5,5,89,249,5,5,210,225,5,5,195,230,5,5,51,207,5,5,39,199,5,5,55,215,5,5,94,230,5,5,129,186,5,5,220,230,5,5,255,201,5,5,6,202,5,5,253,213,5,5,26,192,5,5,17,185,5,5,136,246,5,5,212,169,5,5,223,217,5,5,50,176,5,5,127,180,5,5,90,197,5,5,62,193,5,5,148,193,5,5,95,183,5,5,61,213,5,5,219,198,5,5,12,197,5,5,194,198,5,5,124,175,5,5,137,231,5,5,195,169,5,5,156,206,5,5,156,195,5,5,175,206,5,5,173,219,5,5,110,229,5,5,85,207,5,5,251,180,5,5,39,227,5,5,27,216,5,5,142,194,5,5,14,231,5,5,187,202,5,5,141,180,5,5,208,203,5,5,249,211,5,5,95,213,5,5,229,171,5,5,36,231,5,5,49,175,5,5,19,229,5,5,12,200,5,5,50,175,5,5,253,217,5,5,252,217,5,5,187,168,5,5,115,182,5,5,35,217,5,5,174,192,5,5,246,172,5,5,203,248,5,5,72,168,5,5,85,185,5,5,135,248,5,5,13,187,5,5,191,206,5,5,28,241,5,5,179,198,5,5,173,171,5,5,124,189,5,5,29,236,5,5,215,239,5,5,95,190,5,5,136,248,5,5,100,243,5,5,184,199,5,5,87,211,5,5,216,178,5,5,185,199,5,5,114,247,5,5,190,209,5,5,163,169,5,5,211,212,5,5,254,196,5,5,113,238,5,5,119,221,5,5,78,212,5,5,169,231,5,5,249,227,5,5,171,189,5,5,45,204,5,5,223,182,5,5,246,212,5,5,152,210,5,5,181,237,5,5,92,241,5,5,9,186,5,5,127,235,5,5,215,196,5,5,12,178,5,5,177,171,5,5,101,199,5,5,68,232,5,5,51,211,5,5,111,190,5,5,252,188,5,5,197,194,5,5,165,188,5,5,93,245,5,5,113,192,5,5,206,235,5,5,84,220,5,5,194,224,5,5,193,218,5,5,99,222,5,5,8,227,5,5,108,201,5,5,121,180,5,5,175,231,5,5,174,221,5,5,141,199,5,5,30,246,5,5,22,242,5,5,108,224,5,5,154,241,5,5,68,170,5,5,50,207,5,5,196,230,5,5,153,197,5,5,247,201,5,5,179,231,5,5,223,239,5,5,36,224,5,5,38,201,5,5,176,169,5,5,228,246,5,5,96,236,5,5,21,220,5,5,129,202,5,5,33,188,5,5,74,232,5,5,23,196,5,5,243,211,5,5,188,182,5,5,5,233,5,5,248,168,5,5,130,214,5,5,132,210,5,5,237,170,5,5,36,240,5,5,172,200,5,5,192,203,5,5,141,193,5,5,181,215,5,5,55,200,5,5,223,236,5,5,182,187,5,5,152,249,5,5,46,208,5,5,111,173,5,5,73,238,5,5,240,246,5,5,37,246,5,5,7,236,5,5,21,208,5,5,48,172,5,5,225,176,5,5,225,220,5,5,193,203,5,5,90,179,5,5,104,206,5,5,184,189,5,5,106,249,5,5,102,187,5,5,49,229,5,5,91,183,5,5,236,229,5,5,192,242,5,5,8,234,5,5,210,247,5,5,67,207,5,5,102,229,5,5,207,175,5,5,132,232,5,5,142,227,5,5,43,236,5,5,65,210,5,5,94,233,5,5,59,193,5,5,111,189,5,5,169,170,5,5,47,241,5,5,51,241,5,5,156,207,5,5,222,172,5,5,149,237,5,5,113,224,5,5,202,171,5,5,37,209,5,5,39,190,5,5,204,242,5,5,193,223,5,5,198,206,5,5,205,242,5,5,164,177,5,5,78,242,5,5,183,221,5,5,96,188,5,5,186,215,5,5,67,239,5,5,198,245,5,5,124,172,5,5,102,188,5,5,21,207,5,5,101,196,5,5,121,194,5,5,118,209,5,5,27,245,5,5,27,173,5,5,116,168,5,5,111,168,5,5,99,188,5,5,19,177,5,5,230,169,5,5,230,197,5,5,125,170,5,5,115,170,5,5,207,190,5,5,23,214,5,5,233,203,5,5,245,234,5,5,33,227,5,5,212,237,5,5,129,203,5,5,48,223,5,5,24,233,5,5,111,222,5,5,247,180,5,5,17,195,5,5,134,185,5,5,169,197,5,5,132,180,5,5,118,191,5,5,151,199,5,5,88,232,5,5,191,233,5,5,188,224,5,5,89,232,5,5,148,235,5,5,66,211,5,5,177,170,5,5,226,191,5,5,125,211,5,5,27,208,5,5,207,203,5,5,89,210,5,5,15,187,5,5,112,222,5,5,93,205,5,5,190,224,5,5,154,232,5,5,61,208,5,5,82,218,5,5,102,190,5,5,90,210,5,5,123,206,5,5,99,232,5,5,190,214,5,5,9,198,5,5,42,235,5,5,198,208,5,5,7,249,5,5,7,206,5,5,81,205,5,5,10,242,5,5,234,223,5,5,167,228,5,5,36,217,5,5,144,184,5,5,229,179,5,5,141,201,5,5,167,168,5,5,3,192,5,5,49,189,5,5,20,179,5,5,228,175,5,5,193,184,5,5,173,196,5,5,136,241,5,5,201,214,5,5,137,241,5,5,161,173,5,5,179,206,5,5,54,189,5,5,87,230,5,5,167,183,5,5,163,229,5,5,140,195,5,5,253,235,5,5,49,171,5,5,209,170,5,5,65,169,5,5,15,243,5,5,189,197,5,5,218,207,5,5,190,197,5,5,101,228,5,5,132,193,5,5,140,207,5,5,246,177,5,5,131,213,5,5,31,229,5,5,107,190,5,5,108,232,5,5,179,215,5,5,50,204,5,5,184,177,5,5,13,239,5,5,59,168,5,5,174,213,5,5,107,179,5,5,230,183,5,5,43,235,5,5,75,231,5,5,145,171,5,5,134,176,5,5,12,186,5,5,98,193,5,5,210,220,5,5,230,213,5,5,103,176,5,5,204,198,5,5,74,218,5,5,124,221,5,5,30,221,5,5,123,238,5,5,208,249,5,5,49,193,5,5,231,208,5,5,85,220,5,5,181,204,5,5,63,170,5,5,176,245,5,5,177,245,5,5,192,197,5,5,49,182,5,5,215,204,5,5,175,195,5,5,252,194,5,5,22,194,5,5,130,202,5,5,5,187,5,5,239,231,5,5,136,247,5,5,236,185,5,5,54,236,5,5,121,234,5,5,57,237,5,5,188,234,5,5,149,206,5,5,241,223,5,5,208,247,5,5,112,216,5,5,224,239,5,5,177,235,5,5,106,169,5,5,251,181,5,5,222,232,5,5,135,237,5,5,180,231,5,5,74,188,5,5,32,187,5,5,16,175,5,5,215,234,5,5,2,169,5,5,124,212,5,5,111,201,5,5,51,178,5,5,52,240,5,5,11,191,5,5,168,229,5,5,107,181,5,5,107,174,5,5,33,179,5,5,95,230,5,5,61,230,5,5,104,174,5,5,55,198,5,5,148,207,5,5,181,169,5,5,241,226,5,5,125,232,5,5,169,175,5,5,3,188,5,5,47,235,5,5,102,236,5,5,59,217,5,5,72,235,5,5,44,201,5,5,72,202,5,5,124,234,5,5,248,183,5,5,134,204,5,5,254,235,5,5,209,230,5,5,64,204,5,5,2,202,5,5,228,195,5,5,31,203,5,5,151,224,5,5,152,224,5,5,89,183,5,5,107,228,5,5,113,179,5,5,135,213,5,5,237,244,5,5,238,219,5,5,237,208,5,5,55,242,5,5,233,196,5,5,241,173,5,5,176,200,5,5,238,208,5,5,156,221,5,5,3,229,5,5,116,226,5,5,173,175,5,5,26,250,5,5,248,169,5,5,57,174,5,5,219,189,5,5,142,214,5,5,177,181,5,5,59,200,5,5,116,173,5,5,143,214,5,5,249,169,5,5,129,228,5,5,162,205,5,5,196,176,5,5,206,186,5,5,164,236,5,5,136,179,5,5,187,169,5,5,223,203,5,5,119,216,5,5,7,213,5,5,232,211,5,5,22,218,5,5,222,248,5,5,120,216,5,5,50,182,5,5,180,195,5,5,238,216,5,5,159,180,5,5,153,195,5,5,167,191,5,5,247,241,5,5,123,207,5,5,162,207,5,5,33,176,5,5,19,235,5,5,8,226,5,5,10,234,5,5,196,177,5,5,249,218,5,5,240,208,5,5,156,193,5,5,57,229,5,5,71,219,5,5,168,190,5,5,123,233,5,5,208,175,5,5,226,193,5,5,104,248,5,5,168,173,5,5,58,203,5,5,229,217,5,5,190,231,5,5,196,180,5,5,245,242,5,5,8,236,5,5,86,210,5,5,189,189,5,5,62,240,5,5,185,241,5,5,204,190,5,5,93,219,5,5,240,219,5,5,147,204,5,5,189,221,5,5,215,218,5,5,158,224,5,5,155,237,5,5,143,229,5,5,100,230,5,5,207,245,5,5,239,195,5,5,132,240,5,5,185,206,5,5,168,225,5,5,150,204,5,5,114,225,5,5,166,202,5,5,47,201,5,5,43,187,5,5,9,246,5,5,195,215,5,5,73,177,5,5,223,197,5,5,86,245,5,5,156,237,5,5,14,168,5,5,60,171,5,5,145,222,5,5,141,173,5,5,71,200,5,5,85,248,5,5,173,176,5,5,207,195,5,5,89,238,5,5,25,177,5,5,174,176,5,5,161,214,5,5,19,202,5,5,63,196,5,5,160,224,5,5,76,217,5,5,52,235,5,5,117,168,5,5,35,203,5,5,224,207,5,5,33,245,5,5,245,239,5,5,30,238,5,5,75,240,5,5,115,229,5,5,196,205,5,5,69,230,5,5,178,178,5,5,128,234,5,5,109,244,5,5,192,235,5,5,148,217,5,5,97,178,5,5,238,203,5,5,134,203,5,5,252,216,5,5,28,224,5,5,210,190,5,5,53,187,5,5,24,214,5,5,66,196,5,5,95,182,5,5,244,195,5,5,157,204,5,5,55,192,5,5,119,191,5,5,67,196,5,5,24,168,5,5,146,170,5,5,111,172,5,5,152,217,5,5,18,244,5,5,58,178,5,5,236,194,5,5,143,187,5,5,69,225,5,5,126,191,5,5,130,190,5,5,251,219,5,5,93,224,5,5,105,226,5,5,151,175,5,5,206,241,5,5,2,196,5,5,94,205,5,5,72,171,5,5,163,222,5,5,206,229,5,5,236,249,5,5,229,200,5,5,98,231,5,5,51,249,5,5,54,235,5,5,75,219,5,5,14,230,5,5,186,184,5,5,166,201,5,5,142,180,5,5,196,202,5,5,54,247,5,5,3,219,5,5,42,202,5,5,225,243,5,5,254,216,5,5,70,226,5,5,62,187,5,5,67,224,5,5,150,200,5,5,244,204,5,5,99,205,5,5,202,202,5,5,228,243,5,5,29,201,5,5,98,240,5,5,66,208,5,5,184,232,5,5,3,217,5,5,238,186,5,5,154,178,5,5,232,243,5,5,141,190,5,5,141,186,5,5,178,171,5,5,187,179,5,5,187,171,5,5,248,189,5,5,141,246,5,5,100,213,5,5,45,169,5,5,85,218,5,5,223,202,5,5,59,228,192,0,0,0,5,5,189,232,5,5,39,215,5,5,21,169,5,5,135,212,5,5,164,182,5,5,247,177,5,5,224,229,5,5,195,211,192,0,0,0,192,0,0,0,5,5,72,228,5,5,172,189,5,5,51,204,5,5,124,238,5,5,177,213,5,5,110,176,5,5,236,168,5,5,128,197,5,5,134,173,5,5,153,174,192,0,0,0,5,5,85,178,5,5,22,208,5,5,30,172,5,5,156,248,5,5,186,213,5,5,173,170,5,5,188,247,5,5,199,245,192,0,0,0,5,5,114,176,5,5,68,240,5,5,247,214,5,5,43,232,5,5,55,205,5,5,59,179,5,5,203,211,5,5,246,207,5,5,86,248,5,5,2,170,5,5,24,204,5,5,118,244,5,5,108,230,5,5,52,213,5,5,238,177,5,5,226,229,5,5,86,240,5,5,181,236,5,5,187,184,5,5,175,177,5,5,62,221,5,5,91,226,5,5,92,226,5,5,7,188,5,5,136,173,5,5,111,221,5,5,185,216,5,5,35,221,5,5,71,173,5,5,72,173,5,5,79,219,5,5,132,221,5,5,223,223,5,5,50,221,5,5,255,240,5,5,231,222,5,5,142,205,5,5,41,184,5,5,225,240,5,5,244,169,5,5,135,183,5,5,57,211,5,5,82,226,5,5,26,241,5,5,96,193,5,5,15,221,5,5,144,244,5,5,100,179,5,5,204,183,5,5,17,210,5,5,65,179,5,5,152,213,5,5,200,226,5,5,54,190,5,5,234,226,5,5,247,245,5,5,176,243,5,5,238,207,5,5,57,170,5,5,58,170,5,5,194,204,5,5,165,235,5,5,129,204,5,5,162,173,5,5,175,209,5,5,74,243,5,5,122,182,5,5,231,183,5,5,170,185,5,5,86,226,5,5,141,195,5,5,142,195,5,5,255,217,5,5,91,229,5,5,232,183,5,5,87,226,5,5,176,209,5,5,28,181,5,5,35,212,5,5,89,194,5,5,47,228,5,5,131,177,5,5,24,210,5,5,132,204,5,5,218,169,5,5,228,245,5,5,167,175,5,5,178,209,5,5,179,209,5,5,166,172,5,5,90,226,5,5,157,184,5,5,69,170,5,5,134,177,5,5,241,246,5,5,57,206,5,5,131,214,5,5,58,206,5,5,4,212,5,5,74,238,5,5,56,182,5,5,59,190,5,5,227,220,5,5,173,241,5,5,181,209,5,5,57,198,5,5,37,239,5,5,135,204,5,5,228,220,5,5,197,179,5,5,61,175,5,5,61,190,5,5,55,178,5,5,158,248,5,5,32,192,5,5,131,228,5,5,93,194,5,5,124,174,5,5,170,173,5,5,216,227,5,5,159,201,5,5,45,192,5,5,212,172,5,5,158,204,5,5,214,179,5,5,160,227,5,5,27,204,5,5,106,194,5,5,108,194,5,5,81,175,5,5,53,213,5,5,219,179,5,5,221,179,5,5,26,213,5,5,69,195,5,5,15,178,5,5,137,222,5,5,138,222,5,5,22,247,5,5,157,238,5,5,97,210,5,5,253,209,5,5,230,179,5,5,30,170,5,5,28,195,5,5,115,203,5,5,7,185,5,5,90,185,5,5,184,196,5,5,164,247,5,5,214,231,5,5,118,220,5,5,141,234,5,5,158,211,5,5,109,202,5,5,49,237,5,5,38,174,5,5,34,241,5,5,173,168,5,5,143,195,5,5,193,197,5,5,114,214,5,5,157,231,5,5,30,177,5,5,64,170,5,5,14,239,5,5,116,202,5,5,150,249,5,5,234,175,5,5,80,183,5,5,40,248,5,5,92,212,5,5,250,212,5,5,202,184,5,5,208,198,5,5,93,176,5,5,91,235,5,5,100,246,5,5,250,177,5,5,229,245,5,5,30,182,5,5,186,246,5,5,220,225,5,5,219,196,5,5,118,192,5,5,231,182,5,5,220,196,5,5,87,220,5,5,53,193,5,5,44,235,5,5,174,244,5,5,132,171,5,5,250,210,5,5,70,246,5,5,189,240,5,5,84,196,5,5,219,217,5,5,221,225,5,5,250,226,5,5,138,238,5,5,32,195,5,5,43,229,5,5,51,191,5,5,13,225,5,5,87,237,5,5,238,174,5,5,242,246,5,5,248,188,5,5,18,236,5,5,206,207,5,5,102,180,5,5,95,196,5,5,7,233,5,5,50,227,5,5,86,227,5,5,55,207,5,5,31,213,5,5,8,233,5,5,37,224,5,5,182,183,5,5,149,202,5,5,4,247,5,5,82,177,5,5,43,181,5,5,140,230,5,5,28,220,5,5,87,201,5,5,105,222,5,5,165,190,5,5,36,232,5,5,68,239,5,5,241,169,5,5,58,245,5,5,207,186,5,5,32,225,5,5,237,182,5,5,173,206,5,5,225,203,5,5,162,174,5,5,236,192,5,5,119,226,5,5,45,168,5,5,244,174,5,5,100,170,5,5,101,170,5,5,241,208,5,5,133,186,5,5,211,180,5,5,96,181,5,5,58,229,5,5,125,241,5,5,45,177,5,5,20,236,5,5,246,247,5,5,229,176,5,5,228,177,5,5,103,221,5,5,107,247,5,5,250,174,5,5,79,242,5,5,113,189,5,5,97,183,5,5,139,200,5,5,69,237,5,5,19,174,5,5,111,227,5,5,248,241,5,5,155,187,5,5,171,229,5,5,171,190,5,5,114,199,5,5,112,193,5,5,201,239,5,5,82,239,5,5,61,205,5,5,224,219,5,5,231,197,5,5,255,174,5,5,251,230,5,5,195,186,5,5,95,239,5,5,146,229,5,5,146,192,5,5,240,175,5,5,9,169,5,5,100,191,5,5,151,204,5,5,4,173,5,5,109,222,5,5,161,211,5,5,74,179,5,5,159,177,5,5,44,171,5,5,18,225,5,5,64,245,5,5,250,170,5,5,109,221,5,5,237,176,5,5,137,206,5,5,113,239,5,5,156,249,5,5,47,175,5,5,65,245,5,5,198,244,5,5,221,223,5,5,248,219,5,5,16,218,5,5,169,179,5,5,63,205,5,5,64,205,5,5,126,209,5,5,138,216,5,5,19,240,5,5,169,240,5,5,215,190,5,5,32,184,5,5,136,203,5,5,229,204,5,5,28,216,5,5,160,204,5,5,94,201,5,5,56,232,5,5,241,182,5,5,239,177,5,5,40,240,5,5,233,188,5,5,0,154,5,5,13,169,5,5,57,232,5,5,196,186,5,5,118,187,5,5,119,211,5,5,110,242,5,5,17,229,5,5,134,239,5,5,209,240,5,5,37,213,5,5,199,201,5,5,179,202,5,5,177,222,5,5,44,178,5,5,13,204,5,5,123,179,5,5,14,204,5,5,195,200,5,5,45,171,5,5,20,193,5,5,170,174,5,5,99,237,5,5,62,235,5,5,52,195,5,5,55,246,5,5,134,207,5,5,209,202,5,5,242,191,5,5,202,200,5,5,78,192,5,5,80,179,5,5,63,235,5,5,175,240,5,5,27,240,5,5,164,217,5,5,218,240,5,5,22,225,5,5,84,179,5,5,141,206,5,5,49,206,5,5,50,206,5,5,140,171,5,5,144,171,5,5,78,187,5,5,194,168,5,5,21,182,5,5,173,178,5,5,22,182,5,5,230,168,5,5,231,168,5,5,61,216,5,5,104,192,5,5,23,244,5,5,24,244,5,5,103,207,5,5,168,178,5,5,224,211,5,5,29,195,5,5,187,190,5,5,28,187,5,5,135,176,5,5,53,204,5,5,32,185,5,5,101,209,5,5,114,192,5,5,204,194,5,5,195,212,5,5,36,185,5,5,0,147,5,5,109,181,5,5,125,188,5,5,40,188,5,5,88,170,5,5,130,228,5,5,64,175,5,5,155,215,5,5,232,230,5,5,0,153,5,5,65,233,5,5,133,188,5,5,250,190,5,5,134,188,5,5,69,244,5,5,27,177,5,5,136,188,5,5,69,233,5,5,32,238,5,5,216,213,5,5,138,188,5,5,238,194,5,5,26,168,5,5,21,234,5,5,252,190,5,5,203,202,5,5,108,213,5,5,213,188,5,5,23,195,5,5,240,212,5,5,217,184,5,5,93,212,5,5,182,247,5,5,28,198,5,5,66,217,5,5,59,177,5,5,29,218,5,5,136,244,5,5,106,186,5,5,32,198,5,5,33,198,5,5,191,247,5,5,139,244,5,5,113,186,5,5,81,245,5,5,143,180,5,5,249,208,5,5,202,214,5,5,110,240,5,5,139,241,5,5,150,169,5,5,74,245,5,5,78,247,5,5,136,212,5,5,166,188,5,5,113,240,5,5,174,188,5,5,27,239,5,5,149,171,5,5,115,228,5,5,175,188,5,5,96,168,5,5,234,244,5,5,100,236,5,5,138,193,5,5,180,188,5,5,124,241,5,5,229,199,5,5,127,182,5,5,174,184,5,5,137,178,5,5,10,212,5,5,59,184,5,5,67,217,5,5,151,221,5,5,140,178,5,5,168,205,5,5,239,244,5,5,244,207,5,5,20,202,5,5,202,195,5,5,240,234,5,5,162,193,5,5,17,212,5,5,231,186,5,5,52,168,5,5,87,205,5,5,197,234,5,5,154,247,5,5,98,178,5,5,55,168,5,5,118,186,5,5,204,202,5,5,187,209,5,5,231,179,5,5,237,184,5,5,142,234,5,5,42,207,5,5,195,228,5,5,124,246,5,5,230,214,5,5,230,242,5,5,88,226,5,5,161,232,5,5,2,181,5,5,223,233,5,5,117,231,5,5,34,212,5,5,81,183,5,5,10,181,5,5,232,208,5,5,28,209,5,5,143,221,5,5,32,222,5,5,75,243,5,5,152,208,5,5,3,212,5,5,165,182,5,5,187,208,5,5,218,177,5,5,143,207,5,5,109,207,5,5,148,198,5,5,114,232,5,5,65,199,5,5,37,222,5,5,31,237,5,5,32,246,5,5,185,237,5,5,36,221,5,5,212,191,5,5,157,177,5,5,230,245,5,5,205,199,5,5,221,196,5,5,95,221,5,5,133,238,5,5,144,221,5,5,203,207,5,5,102,209,5,5,41,248,5,5,183,245,5,5,184,245,5,5,131,208,5,5,38,222,5,5,145,242,5,5,188,179,5,5,175,210,5,5,91,249,5,5,92,249,5,5,202,173,5,5,158,244,5,5,69,235,5,5,111,171,5,5,81,208,5,5,217,204,5,5,53,224,5,5,16,227,5,5,39,208,5,5,224,179,5,5,34,179,5,5,100,210,5,5,32,209,5,5,73,235,5,5,154,174,5,5,207,199,5,5,157,197,5,5,151,209,5,5,2,246,5,5,170,226,5,5,58,237,5,5,153,236,5,5,108,209,5,5,121,247,5,5,103,209,5,5,170,245,5,5,38,246,5,5,157,207,5,5,135,224,5,5,221,220,5,5,41,188,5,5,166,190,5,5,43,179,5,5,142,174,5,5,83,177,5,5,159,197,5,5,110,181,5,5,6,207,5,5,128,232,5,5,221,230,5,5,95,200,5,5,187,200,5,5,219,193,5,5,113,220,5,5,120,226,5,5,141,187,5,5,132,228,5,5,240,201,5,5,58,222,5,5,244,216,5,5,198,203,5,5,9,236,5,5,30,196,5,5,46,246,5,5,10,202,5,5,188,200,5,5,83,224,5,5,163,197,5,5,21,223,5,5,56,224,5,5,117,180,5,5,102,170,5,5,45,213,5,5,205,209,5,5,158,191,5,5,181,210,5,5,169,205,5,5,69,239,5,5,95,195,5,5,63,172,5,5,167,247,5,5,190,241,5,5,159,191,5,5,199,206,5,5,217,231,5,5,43,234,5,5,25,191,5,5,142,187,5,5,183,243,5,5,64,176,5,5,157,193,5,5,210,207,5,5,161,180,5,5,114,189,5,5,21,235,5,5,129,226,5,5,254,199,5,5,41,185,5,5,95,219,5,5,124,207,5,5,241,234,5,5,39,182,5,5,11,230,5,5,180,208,5,5,94,175,5,5,29,200,5,5,40,208,5,5,221,229,5,5,84,199,5,5,92,178,5,5,244,173,5,5,227,198,5,5,213,223,5,5,164,231,5,5,247,216,5,5,127,209,5,5,43,209,5,5,246,206,5,5,22,223,5,5,70,244,5,5,66,245,5,5,114,239,5,5,141,179,5,5,69,199,5,5,128,209,5,5,31,223,5,5,178,176,5,5,22,205,5,5,165,174,5,5,247,206,5,5,104,213,5,5,73,174,5,5,54,187,5,5,249,207,5,5,152,228,5,5,100,219,5,5,120,213,5,5,15,231,5,5,29,216,5,5,26,214,5,5,18,248,5,5,193,178,5,5,85,221,5,5,32,223,5,5,170,203,5,5,236,173,5,5,58,232,5,5,152,198,5,5,33,238,5,5,250,234,5,5,41,227,5,5,158,209,5,5,241,203,5,5,114,187,5,5,64,194,5,5,44,238,5,5,27,168,5,5,131,191,5,5,220,244,5,5,244,193,5,5,119,186,5,5,109,245,5,5,154,217,5,5,175,207,5,5,96,175,5,5,226,219,5,5,74,211,5,5,153,235,5,5,220,237,5,5,230,191,5,5,7,208,5,5,143,208,5,5,142,213,5,5,144,208,5,5,202,201,5,5,220,199,5,5,253,197,5,5,35,235,5,5,145,208,5,5,243,191,5,5,101,205,5,5,13,208,5,5,245,204,5,5,239,186,5,5,13,207,5,5,101,231,5,5,190,175,5,5,149,225,5,5,155,198,5,5,22,248,5,5,70,207,5,5,169,195,5,5,176,195,5,5,56,242,5,5,44,223,5,5,57,244,5,5,12,198,5,5,241,221,5,5,186,238,5,5,71,221,5,5,89,246,5,5,107,189,5,5,73,221,5,5,159,240,5,5,36,197,5,5,142,247,5,5,205,194,5,5,84,177,5,5,188,180,5,5,0,159,5,5,237,194,5,5,110,244,5,5,4,243,5,5,220,168,5,5,203,221,5,5,250,179,5,5,225,214,5,5,6,192,5,5,64,249,5,5,197,184,5,5,126,230,5,5,119,245,5,5,89,199,5,5,8,185,5,5,112,231,5,5,80,182,5,5,202,199,5,5,78,178,5,5,180,206,5,5,18,220,5,5,219,177,5,5,194,197,5,5,117,202,5,5,171,183,5,5,233,208,5,5,126,181,5,5,209,191,5,5,158,198,5,5,182,246,5,5,233,214,5,5,134,198,5,5,144,195,5,5,50,171,5,5,142,181,5,5,35,236,5,5,212,212,5,5,120,245,5,5,97,236,5,5,74,224,5,5,80,248,5,5,215,173,5,5,11,181,5,5,63,228,5,5,206,236,5,5,170,195,5,5,82,183,5,5,35,182,5,5,104,209,5,5,159,244,5,5,222,196,5,5,29,242,5,5,209,198,5,5,252,227,5,5,253,227,5,5,7,179,5,5,195,244,5,5,185,245,5,5,151,181,5,5,241,183,5,5,180,209,5,5,42,248,5,5,129,200,5,5,166,170,5,5,138,211,5,5,156,213,5,5,146,212,5,5,54,204,5,5,94,212,5,5,144,201,5,5,232,213,5,5,150,171,5,5,233,213,5,5,37,221,5,5,162,243,5,5,4,168,5,5,131,202,5,5,218,204,5,5,14,227,5,5,3,241,5,5,132,202,5,5,206,199,5,5,142,175,5,5,38,199,5,5,220,217,5,5,211,247,5,5,177,199,5,5,36,187,5,5,158,181,5,5,63,210,5,5,22,215,5,5,157,205,5,5,44,229,5,5,5,168,5,5,154,185,5,5,126,232,5,5,36,234,5,5,103,236,5,5,66,180,5,5,149,212,5,5,210,230,5,5,112,201,5,5,67,189,5,5,43,223,5,5,182,231,5,5,237,215,5,5,223,216,5,5,248,228,5,5,14,216,5,5,38,239,5,5,40,199,5,5,9,233,5,5,24,218,5,5,98,173,5,5,48,201,5,5,35,189,5,5,174,241,5,5,10,233,5,5,186,231,5,5,61,207,5,5,150,206,5,5,242,240,5,5,218,173,5,5,230,173,5,5,7,230,5,5,136,204,5,5,178,240,5,5,52,207,5,5,25,218,5,5,224,236,5,5,29,220,5,5,85,200,5,5,57,242,5,5,241,174,5,5,24,190,5,5,118,205,5,5,28,174,5,5,220,193,5,5,160,211,5,5,157,223,5,5,223,248,5,5,42,199,5,5,168,212,5,5,67,236,5,5,159,248,5,5,54,199,5,5,108,174,5,5,147,214,5,5,153,249,5,5,213,216,5,5,226,203,5,5,31,198,5,5,160,171,5,5,5,180,5,5,242,208,5,5,138,179,5,5,158,193,5,5,225,188,5,5,170,205,5,5,11,168,5,5,84,224,5,5,30,218,5,5,232,201,5,5,155,169,5,5,238,239,5,5,226,180,5,5,97,230,5,5,148,214,5,5,93,206,5,5,133,228,5,5,94,179,5,5,68,210,5,5,191,169,5,5,244,214,5,5,29,174,5,5,72,219,5,5,116,236,5,5,209,179,5,5,7,180,5,5,128,180,5,5,6,228,5,5,104,195,5,5,64,240,5,5,193,170,5,5,10,199,5,5,116,170,5,5,105,229,5,5,49,223,5,5,208,245,5,5,198,180,5,5,193,231,5,5,90,178,5,5,10,226,5,5,88,210,5,5,199,212,5,5,234,193,5,5,54,179,5,5,79,225,5,5,227,172,5,5,100,226,5,5,248,214,5,5,19,181,5,5,98,183,5,5,80,235,5,5,36,218,5,5,37,218,5,5,186,206,5,5,225,185,5,5,209,210,5,5,22,224,5,5,115,181,5,5,116,176,5,5,152,204,5,5,89,223,5,5,118,225,5,5,76,169,5,5,42,190,5,5,228,212,5,5,64,229,5,5,199,219,5,5,193,201,5,5,75,177,5,5,102,226,5,5,195,231,5,5,252,230,5,5,3,203,5,5,18,212,5,5,11,229,5,5,110,243,5,5,212,180,5,5,139,245,5,5,228,198,5,5,131,200,5,5,87,248,5,5,162,237,5,5,135,187,5,5,90,248,5,5,38,173,5,5,253,214,5,5,118,168,5,5,155,212,5,5,199,204,5,5,129,205,5,5,153,198,5,5,249,175,5,5,32,174,5,5,16,240,5,5,195,201,5,5,251,170,5,5,254,214,5,5,70,209,5,5,255,214,5,5,21,177,5,5,121,249,5,5,217,216,5,5,86,176,5,5,89,206,5,5,62,192,5,5,142,220,5,5,95,201,5,5,149,217,5,5,111,244,5,5,194,178,5,5,65,194,5,5,146,231,5,5,242,203,5,5,12,180,5,5,47,225,5,5,216,190,5,5,20,212,5,5,167,243,5,5,2,216,5,5,212,178,5,5,180,202,5,5,66,194,5,5,179,194,5,5,16,231,5,5,46,245,5,5,30,216,5,5,252,180,5,5,245,193,5,5,106,242,5,5,169,248,5,5,207,188,5,5,14,199,5,5,72,244,5,5,163,201,5,5,116,195,5,5,152,175,5,5,48,238,5,5,41,218,5,5,99,178,5,5,212,238,5,5,107,194,5,5,237,212,5,5,238,212,5,5,111,242,5,5,127,213,5,5,200,181,5,5,29,168,5,5,234,198,5,5,184,193,5,5,112,242,5,5,76,219,5,5,8,208,5,5,96,212,5,5,127,176,5,5,224,171,5,5,100,237,5,5,205,206,5,5,43,172,5,5,60,232,5,5,221,199,5,5,168,201,5,5,203,201,5,5,58,247,5,5,197,202,5,5,205,202,5,5,104,182,5,5,44,218,5,5,97,212,5,5,99,240,5,5,210,202,5,5,246,204,5,5,247,204,5,5,140,209,5,5,234,171,5,5,250,222,5,5,240,186,5,5,241,200,5,5,44,172,5,5,136,236,5,5,7,222,5,5,2,222,5,5,62,202,5,5,180,218,5,5,242,220,5,5,13,243,5,5,113,223,5,5,98,214,5,5,175,224,5,5,193,206,5,5,152,233,5,5,117,237,5,5,234,231,5,5,110,214,5,5,111,214,5,5,175,246,5,5,233,169,5,5,222,180,5,5,115,247,5,5,160,218,5,5,68,238,5,5,217,221,5,5,101,241,5,5,221,246,5,5,143,226,5,5,233,183,5,5,86,184,5,5,99,208,5,5,209,249,5,5,93,246,5,5,40,224,5,5,201,207,5,5,40,250,5,5,101,217,5,5,243,189,5,5,39,248,5,5,63,221,5,5,75,224,5,5,106,176,5,5,250,172,5,5,43,208,5,5,240,205,5,5,235,241,5,5,194,232,5,5,62,230,5,5,136,226,5,5,110,213,5,5,43,248,5,5,82,187,5,5,181,231,5,5,101,246,5,5,229,192,5,5,75,185,5,5,186,245,5,5,76,185,5,5,17,223,5,5,229,195,5,5,97,221,5,5,158,184,5,5,84,200,5,5,35,179,5,5,119,178,5,5,216,191,5,5,191,225,5,5,144,214,5,5,131,186,5,5,225,186,5,5,242,249,5,5,75,204,5,5,164,205,5,5,116,171,5,5,235,195,5,5,120,178,5,5,137,246,5,5,163,205,5,5,22,173,5,5,89,170,5,5,154,245,5,5,22,191,5,5,78,241,5,5,131,231,5,5,197,239,5,5,28,249,5,5,222,191,5,5,200,245,5,5,9,184,5,5,246,242,5,5,66,230,5,5,82,232,5,5,68,237,5,5,110,246,5,5,81,238,5,5,163,207,5,5,73,223,5,5,47,179,5,5,192,169,5,5,229,248,5,5,209,245,5,5,251,240,5,5,245,192,5,5,79,185,5,5,115,225,5,5,79,223,5,5,202,206,5,5,203,224,5,5,112,184,5,5,23,235,5,5,162,214,5,5,107,242,5,5,91,231,5,5,56,192,5,5,138,223,5,5,39,173,5,5,40,178,5,5,115,187,5,5,94,224,5,5,82,202,5,5,109,211,5,5,58,208,5,5,132,178,5,5,188,202,5,5,84,218,5,5,44,243,5,5,34,226,5,5,233,243,5,5,226,201,5,5,241,218,5,5,231,241,5,5,146,241,5,5,248,201,5,5,169,233,5,5,121,216,5,5,153,188,5,5,77,227,5,5,118,234,5,5,59,223,5,5,124,218,5,5,78,227,5,5,65,249,5,5,215,172,5,5,218,184,5,5,2,239,5,5,235,231,5,5,104,171,5,5,191,210,5,5,9,217,5,5,10,217,5,5,98,247,5,5,57,183,5,5,116,188,5,5,76,243,5,5,205,198,5,5,188,208,5,5,94,246,5,5,14,196,5,5,33,170,5,5,95,246,5,5,23,242,5,5,101,208,5,5,107,199,5,5,39,169,5,5,214,212,5,5,126,210,5,5,133,202,5,5,37,241,5,5,187,249,5,5,215,212,5,5,188,171,5,5,55,204,5,5,105,209,5,5,144,174,5,5,193,210,5,5,113,216,5,5,32,237,5,5,22,250,5,5,229,246,5,5,102,246,5,5,157,222,5,5,72,197,5,5,68,249,5,5,196,191,5,5,16,192,5,5,58,174,5,5,17,227,5,5,243,246,5,5,197,191,5,5,181,188,5,5,184,239,5,5,13,249,5,5,244,246,5,5,33,195,5,5,135,218,5,5,172,180,5,5,139,238,5,5,212,247,5,5,82,191,5,5,100,211,5,5,102,184,5,5,222,230,5,5,56,185,5,5,49,201,5,5,183,183,5,5,216,235,5,5,18,223,5,5,241,205,5,5,86,200,5,5,224,184,5,5,27,196,5,5,2,226,5,5,116,174,5,5,107,227,5,5,195,220,5,5,19,223,5,5,46,236,5,5,94,206,5,5,171,205,5,5,134,186,5,5,27,250,5,5,137,218,5,5,186,248,5,5,73,169,5,5,249,168,5,5,33,192,5,5,111,246,5,5,12,247,5,5,89,200,5,5,233,201,5,5,169,212,5,5,220,198,5,5,117,171,5,5,65,175,5,5,243,249,5,5,66,242,5,5,225,223,5,5,60,206,5,5,174,232,5,5,84,238,5,5,138,231,5,5,194,170,5,5,246,192,5,5,20,184,5,5,48,213,5,5,178,211,5,5,48,195,5,5,108,247,5,5,112,249,5,5,193,234,5,5,67,174,5,5,142,178,5,5,194,229,5,5,50,232,5,5,35,249,5,5,88,242,5,5,253,192,5,5,246,234,5,5,239,245,5,5,31,247,5,5,146,178,5,5,121,193,5,5,46,192,5,5,62,185,5,5,63,185,5,5,108,186,5,5,216,218,5,5,88,224,5,5,239,218,5,5,5,193,5,5,166,198,5,5,211,209,5,5,98,172,5,5,172,207,5,5,49,247,5,5,247,192,5,5,191,205,5,5,227,223,5,5,57,192,5,5,170,240,5,5,195,229,5,5,20,217,5,5,249,219,5,5,230,188,5,5,115,239,5,5,217,190,5,5,85,216,5,5,187,192,5,5,95,224,5,5,32,233,5,5,27,214,5,5,180,194,5,5,197,248,5,5,110,247,5,5,255,249,5,5,254,205,5,5,96,224,5,5,111,211,5,5,253,219,5,5,132,191,5,5,78,218,5,5,185,211,5,5,113,242,5,5,128,213,5,5,21,193,5,5,175,227,5,5,196,229,5,5,79,174,5,5,231,191,5,5,222,199,5,5,2,206,5,5,10,171,5,5,255,219,5,5,86,218,5,5,198,248,5,5,56,202,5,5,2,177,5,5,98,235,5,5,42,228,5,5,149,196,5,5,228,216,5,5,179,230,5,5,229,216,5,5,48,199,5,5,118,241,5,5,31,221,5,5,56,196,5,5,200,237,5,5,205,175,5,5,176,248,5,5,80,227,5,5,81,201,5,5,70,216,5,5,192,244,5,5,186,237,5,5,188,170,5,5,96,169,5,5,187,237,5,5,112,171,5,5,48,228,5,5,242,247,5,5,253,194,5,5,45,216,5,5,155,179,5,5,35,230,5,5,37,187,5,5,136,237,5,5,245,246,5,5,235,175,5,5,205,237,5,5,165,226,5,5,4,195,5,5,236,175,5,5,135,196,5,5,11,233,5,5,109,174,5,5,79,199,5,5,3,177,5,5,238,229,5,5,29,178,5,5,98,199,5,5,221,198,5,5,224,248,5,5,160,234,5,5,226,223,5,5,193,186,5,5,230,199,5,5,104,180,5,5,251,248,5,5,140,235,5,5,239,229,5,5,55,228,5,5,47,236,5,5,191,241,5,5,99,197,5,5,248,216,5,5,163,237,5,5,164,237,5,5,168,226,5,5,195,173,5,5,251,241,5,5,103,226,5,5,170,179,5,5,111,197,5,5,169,203,5,5,7,231,5,5,155,230,5,5,232,199,5,5,241,175,5,5,79,245,5,5,166,199,5,5,167,199,5,5,230,204,5,5,77,174,5,5,52,177,5,5,137,203,5,5,36,244,5,5,8,177,5,5,55,216,5,5,255,216,5,5,109,180,5,5,40,244,5,5,16,205,5,5,90,216,5,5,94,202,5,5,157,175,5,5,207,221,5,5,81,184,5,5,42,215,5,5,164,175,5,5,59,189,5,5,115,214,5,5,91,188,5,5,125,221,5,5,2,183,5,5,197,222,5,5,199,208,5,5,172,217,5,5,254,244,5,5,44,248,5,5,56,204,5,5,219,204,5,5,133,171,5,5,85,196,5,5,93,196,5,5,20,245,5,5,237,168,5,5,130,223,5,5,58,198,5,5,72,189,5,5,19,227,5,5,167,223,5,5,96,196,5,5,163,179,5,5,70,239,5,5,210,222,5,5,91,196,5,5,175,217,5,5,105,195,5,5,159,213,5,5,185,180,5,5,21,202,5,5,98,248,5,5,195,172,5,5,179,178,5,5,62,177,5,5,76,228,5,5,111,196,5,5,146,198,5,5,112,196,5,5,235,247,5,5,237,247,5,5,143,201,5,5,159,212,5,5,147,241,5,5,184,174,5,5,201,184,5,5,44,207,5,5,239,247,5,5,102,228,5,5,156,180,5,5,17,192,5,5,203,194,5,5,177,168,5,5,41,224,5,5,115,192,5,5,146,216,5,5,95,245,5,5,120,224,5,5,255,235,5,5,152,248,5,5,184,242,5,5,244,189,5,5,75,188,5,5,78,233,5,5,187,172,5,5,70,170,5,5,35,170,5,5,207,193,5,5,195,238,5,5,33,180,5,5,90,220,5,5,129,221,5,5,112,177,5,5,225,178,5,5,244,247,5,5,237,209,5,5,155,174,5,5,55,186,5,5,139,202,5,5,76,216,5,5,6,209,5,5,88,169,5,5,145,226,5,5,127,223,5,5,249,183,5,5,169,172,5,5,227,169,5,5,36,182,5,5,135,177,5,5,72,249,5,5,36,179,5,5,65,204,5,5,53,244,5,5,133,211,5,5,250,183,5,5,15,186,5,5,86,182,5,5,55,193,5,5,223,184,5,5,128,182,5,5,250,221,5,5,100,207,5,5,222,213,5,5,73,226,5,5,142,193,5,5,232,216,5,5,220,204,5,5,7,209,5,5,167,170,5,5,151,206,5,5,103,187,5,5,108,217,5,5,189,174,5,5,193,239,5,5,206,237,5,5,78,232,5,5,39,170,5,5,233,216,5,5,102,200,5,5,185,178,5,5,58,233,5,5,181,195,5,5,224,217,5,5,122,224,5,5,20,219,5,5,38,182,5,5,178,199,5,5,51,248,5,5,46,227,5,5,27,192,5,5,137,177,5,5,80,188,5,5,175,172,5,5,124,247,5,5,80,199,5,5,177,200,5,5,90,170,5,5,58,220,5,5,54,178,5,5,43,246,5,5,177,172,5,5,186,183,5,5,86,243,5,5,112,227,5,5,233,211,5,5,11,202,5,5,51,201,5,5,40,197,5,5,208,186,5,5,227,193,5,5,8,188,5,5,21,227,5,5,191,231,5,5,13,247,5,5,117,174,5,5,42,224,5,5,59,222,5,5,57,248,5,5,28,250,5,5,63,233,5,5,197,220,5,5,222,226,5,5,178,172,5,5,109,236,5,5,78,185,5,5,144,199,5,5,209,184,5,5,66,175,5,5,179,199,5,5,28,185,5,5,87,243,5,5,197,211,5,5,63,215,5,5,64,233,5,5,228,193,5,5,248,213,5,5,179,200,5,5,171,249,5,5,41,170,5,5,117,170,5,5,118,170,5,5,156,185,5,5,237,224,5,5,180,186,5,5,126,241,5,5,163,193,5,5,143,178,5,5,65,186,5,5,195,174,5,5,50,246,5,5,214,216,5,5,53,220,5,5,168,247,5,5,178,205,5,5,209,171,5,5,39,192,5,5,227,203,5,5,44,224,5,5,60,198,5,5,21,184,5,5,151,244,5,5,66,186,5,5,55,199,5,5,111,215,5,5,70,215,5,5,61,198,5,5,20,176,5,5,209,186,5,5,160,242,5,5,181,172,5,5,198,249,5,5,237,171,5,5,61,244,5,5,80,216,5,5,37,228,5,5,112,206,5,5,230,177,5,5,20,233,5,5,119,219,5,5,50,194,5,5,24,235,5,5,174,170,5,5,125,224,5,5,176,232,5,5,85,232,5,5,195,213,5,5,211,245,5,5,14,234,5,5,194,189,5,5,160,238,5,5,61,248,5,5,3,243,5,5,34,176,5,5,16,206,5,5,41,230,5,5,47,180,5,5,50,223,5,5,147,192,5,5,96,195,5,5,211,190,5,5,15,234,5,5,213,207,5,5,135,182,5,5,218,175,5,5,109,248,5,5,62,213,5,5,100,183,5,5,247,247,5,5,212,190,5,5,83,216,5,5,115,189,5,5,17,217,5,5,192,208,5,5,163,215,5,5,68,186,5,5,34,200,5,5,88,222,5,5,56,205,5,5,94,243,5,5,203,188,5,5,122,225,5,5,36,243,5,5,48,175,5,5,45,185,5,5,217,182,5,5,120,219,5,5,52,246,5,5,3,186,5,5,17,211,5,5,165,215,5,5,67,233,5,5,6,177,5,5,10,205,5,5,177,212,5,5,164,180,5,5,173,202,5,5,133,170,5,5,235,248,5,5,127,175,5,5,60,220,5,5,200,174,5,5,66,248,5,5,198,215,5,5,231,204,5,5,221,200,5,5,173,193,5,5,36,172,5,5,29,202,5,5,127,191,5,5,134,170,5,5,239,178,5,5,179,176,5,5,77,236,5,5,178,212,5,5,99,172,5,5,111,248,5,5,16,213,5,5,105,213,5,5,81,180,5,5,114,242,5,5,217,208,5,5,154,227,5,5,71,244,5,5,61,220,5,5,116,187,5,5,170,238,5,5,8,190,5,5,87,173,5,5,85,199,5,5,238,176,5,5,200,213,5,5,34,244,5,5,63,192,5,5,90,187,5,5,29,224,5,5,57,205,5,5,183,172,5,5,197,205,5,5,211,210,5,5,142,224,5,5,7,177,5,5,145,179,5,5,143,224,5,5,148,201,5,5,202,180,5,5,111,203,5,5,33,233,5,5,225,171,5,5,126,208,5,5,62,220,5,5,100,178,5,5,141,203,5,5,241,177,5,5,124,179,5,5,70,184,5,5,246,193,5,5,19,209,5,5,41,200,5,5,205,177,5,5,184,194,5,5,180,178,5,5,219,190,5,5,126,224,5,5,96,201,5,5,199,243,5,5,40,233,5,5,204,205,5,5,82,222,5,5,200,243,5,5,7,215,5,5,247,211,5,5,173,214,5,5,248,211,5,5,230,184,5,5,117,197,5,5,205,205,5,5,199,205,5,5,128,236,5,5,238,171,5,5,60,178,5,5,165,219,5,5,73,248,5,5,4,186,5,5,80,215,5,5,23,203,5,5,38,172,5,5,196,247,5,5,199,200,5,5,89,222,5,5,236,200,5,5,43,200,5,5,214,241,5,5,39,243,5,5,108,188,5,5,219,245,5,5,247,224,5,5,71,226,5,5,29,211,5,5,82,175,5,5,161,192,5,5,176,238,5,5,183,214,5,5,234,225,5,5,117,248,5,5,198,247,5,5,70,182,5,5,219,223,5,5,197,247,5,5,172,215,5,5,248,248,5,5,236,225,5,5,214,205,5,5,102,205,5,5,3,194,5,5,39,228,5,5,156,240,5,5,127,242,5,5,204,200,5,5,250,204,5,5,91,216,5,5,28,203,5,5,245,200,5,5,87,215,5,5,46,243,5,5,96,247,5,5,162,217,5,5,29,203,5,5,185,170,5,5,206,180,5,5,222,249,5,5,57,202,5,5,102,223,5,5,129,206,5,5,158,240,5,5,48,243,5,5,250,248,5,5,137,242,5,5,73,208,5,5,217,178,5,5,81,182,5,5,23,221,5,5,121,245,5,5,32,221,5,5,145,211,5,5,167,188,5,5,212,201,5,5,238,231,5,5,69,249,5,5,123,210,5,5,71,177,5,5,54,245,5,5,47,215,5,5,183,244,5,5,36,170,5,5,23,169,5,5,134,230,5,5,22,220,5,5,159,198,5,5,243,218,5,5,51,183,5,5,71,170,5,5,32,177,5,5,46,240,5,5,125,245,5,5,82,208,5,5,9,225,5,5,245,189,5,5,178,168,5,5,140,202,5,5,204,184,5,5,80,197,5,5,235,213,5,5,109,209,5,5,217,176,5,5,204,244,5,5,185,247,5,5,156,174,5,5,248,223,5,5,171,226,5,5,141,202,5,5,223,230,5,5,251,223,5,5,73,189,5,5,20,227,5,5,23,249,5,5,170,172,5,5,27,243,5,5,146,247,5,5,224,203,5,5,128,248,5,5,238,168,5,5,76,201,5,5,60,183,5,5,232,181,5,5,109,217,5,5,187,188,5,5,77,203,5,5,133,232,5,5,10,184,5,5,78,203,5,5,105,172,5,5,31,196,5,5,75,202,5,5,30,243,5,5,179,205,5,5,15,197,5,5,154,214,5,5,46,177,5,5,250,168,5,5,28,245,5,5,228,203,5,5,154,249,5,5,34,196,5,5,188,187,5,5,26,190,5,5,178,219,5,5,179,219,5,5,119,225,5,5,196,170,5,5,251,218,5,5,171,208,5,5,116,189,5,5,195,234,5,5,155,249,5,5,195,189,5,5,51,194,5,5,198,243,5,5,119,176,5,5,23,202,5,5,192,233,5,5,195,183,5,5,181,211,5,5,203,169,5,5,110,186,5,5,117,234,5,5,46,185,5,5,123,225,5,5,85,217,5,5,68,193,5,5,136,172,5,5,132,248,5,5,126,225,5,5,54,208,5,5,181,219,5,5,65,183,5,5,7,244,5,5,167,198,5,5,143,194,5,5,71,209,5,5,182,219,5,5,183,219,5,5,184,211,5,5,22,231,5,5,84,203,5,5,145,194,5,5,154,199,5,5,241,171,5,5,135,190,5,5,180,222,5,5,160,249,5,5,155,232,5,5,186,211,5,5,157,227,5,5,34,211,5,5,206,202,5,5,50,250,5,5,246,178,5,5,35,211,5,5,175,226,5,5,32,201,5,5,92,208,5,5,58,223,5,5,150,196,5,5,107,231,5,5,209,185,5,5,58,246,5,5,152,196,5,5,93,241,5,5,211,192,5,5,240,172,5,5,179,247,5,5,171,235,5,5,2,243,5,5,60,189,5,5,120,241,5,5,168,188,5,5,103,228,5,5,161,218,5,5,191,229,5,5,165,229,5,5,51,217,5,5,234,209,5,5,8,249,5,5,68,227,5,5,91,211,5,5,151,183,5,5,217,192,5,5,129,222,5,5,45,176,5,5,216,212,5,5,255,245,5,5,23,220,5,5,64,189,5,5,187,246,5,5,116,192,5,5,5,183,5,5,79,243,5,5,163,218,5,5,251,177,5,5,177,195,5,5,242,223,5,5,168,182,5,5,150,224,5,5,33,177,5,5,176,196,5,5,154,243,5,5,226,168,5,5,192,195,5,5,179,183,5,5,246,246,5,5,79,214,5,5,76,249,5,5,57,175,5,5,68,189,5,5,155,243,5,5,215,201,5,5,121,231,5,5,251,183,5,5,170,233,5,5,42,221,5,5,155,171,5,5,46,248,5,5,105,217,5,5,66,204,5,5,47,248,5,5,220,220,5,5,242,184,5,5,88,237,5,5,252,183,5,5,2,228,5,5,232,245,5,5,190,177,5,5,170,175,5,5,176,221,5,5,83,247,5,5,30,232,5,5,211,249,5,5,119,196,5,5,41,169,5,5,143,217,5,5,110,209,5,5,203,222,5,5,238,249,5,5,208,199,5,5,24,196,5,5,168,218,5,5,81,188,5,5,175,233,5,5,88,195,5,5,215,247,5,5,62,175,5,5,170,186,5,5,239,168,5,5,216,197,5,5,209,199,5,5,185,189,5,5,147,176,5,5,117,190,5,5,176,185,5,5,160,225,5,5,89,195,5,5,112,199,5,5,210,194,5,5,225,217,5,5,166,184,5,5,152,206,5,5,76,235,5,5,237,169,5,5,129,232,5,5,6,184,5,5,158,185,5,5,69,180,5,5,204,218,5,5,172,226,5,5,194,239,5,5,188,201,5,5,176,233,5,5,160,197,5,5,229,234,5,5,159,184,5,5,198,179,5,5,47,227,5,5,69,223,5,5,135,194,5,5,195,232,5,5,86,191,5,5,217,197,5,5,138,246,5,5,229,193,5,5,164,197,5,5,163,174,5,5,163,208,5,5,7,246,5,5,244,205,5,5,118,174,5,5,70,217,5,5,143,222,5,5,60,169,5,5,48,227,5,5,16,233,5,5,119,190,5,5,100,216,5,5,194,185,5,5,116,234,5,5,9,226,5,5,74,227,5,5,124,233,5,5,78,189,5,5,132,231,5,5,11,184,5,5,206,226,5,5,57,224,5,5,227,180,5,5,90,200,5,5,187,183,5,5,32,196,5,5,251,189,5,5,112,246,5,5,110,236,5,5,137,196,5,5,127,183,5,5,237,192,5,5,234,234,5,5,138,218,5,5,113,249,5,5,243,173,5,5,63,181,5,5,167,202,5,5,13,206,5,5,80,203,5,5,70,175,5,5,4,218,5,5,222,220,5,5,155,214,5,5,156,214,5,5,184,248,5,5,157,214,5,5,134,228,5,5,159,215,5,5,139,232,5,5,110,222,5,5,6,229,5,5,213,214,5,5,193,225,5,5,135,228,5,5,19,185,5,5,185,228,5,5,243,169,5,5,162,248,5,5,65,172,5,5,189,187,5,5,47,177,5,5,85,206,5,5,186,204,5,5,214,214,5,5,7,245,5,5,119,170,5,5,81,176,5,5,85,204,5,5,136,208,5,5,87,214,5,5,81,216,5,5,101,226,5,5,114,249,5,5,133,187,5,5,172,249,5,5,241,230,5,5,36,249,5,5,57,234,5,5,93,203,5,5,203,195,5,5,191,182,5,5,80,219,5,5,244,208,5,5,80,242,5,5,143,249,5,5,90,182,5,5,14,206,5,5,242,234,5,5,69,240,5,5,186,220,5,5,6,215,5,5,247,234,5,5,177,232,5,5,166,193,5,5,11,199,5,5,142,232,5,5,73,219,5,5,137,208,5,5,47,192,5,5,200,180,5,5,34,175,5,5,60,179,5,5,245,208,5,5,183,208,5,5,210,242,5,5,186,233,5,5,117,169,5,5,90,223,5,5,18,217,5,5,175,170,5,5,143,190,5,5,179,185,5,5,175,176,5,5,166,208,5,5,111,229,5,5,116,184,5,5,67,229,5,5,64,227,5,5,255,185,5,5,193,208,5,5,130,233,5,5,60,203,5,5,116,249,5,5,219,170,5,5,132,243,5,5,203,239,5,5,14,226,5,5,152,186,5,5,40,247,5,5,133,243,5,5,71,174,5,5,36,173,5,5,200,177,5,5,196,231,5,5,211,242,5,5,144,249,5,5,169,234,5,5,139,221,5,5,221,228,5,5,180,185,5,5,25,235,5,5,136,240,5,5,248,195,5,5,116,239,5,5,164,248,5,5,184,210,5,5,56,169,5,5,109,186,5,5,19,212,5,5,194,247,5,5,174,193,5,5,97,176,5,5,238,217,5,5,7,223,5,5,135,243,5,5,198,231,5,5,22,177,5,5,8,231,5,5,217,218,5,5,171,225,5,5,123,184,5,5,95,243,5,5,247,173,5,5,65,185,5,5,58,219,5,5,199,189,5,5,196,243,5,5,228,225,5,5,146,232,5,5,26,224,5,5,241,245,5,5,157,249,5,5,172,225,5,5,242,190,5,5,71,172,5,5,135,170,5,5,145,183,5,5,239,176,5,5,30,202,5,5,144,224,5,5,177,236,5,5,94,231,5,5,159,249,5,5,162,201,5,5,170,197,5,5,168,215,5,5,29,207,5,5,152,246,5,5,255,205,5,5,212,209,5,5,106,213,5,5,10,203,5,5,55,208,5,5,85,235,5,5,146,249,5,5,64,192,5,5,101,220,5,5,97,224,5,5,98,182,5,5,19,206,5,5,250,169,5,5,91,238,5,5,213,219,5,5,159,209,5,5,166,237,5,5,228,215,5,5,170,191,5,5,3,232,5,5,11,193,5,5,57,220,5,5,133,234,5,5,68,218,5,5,86,235,5,5,101,224,5,5,5,216,5,5,113,244,5,5,32,250,5,5,118,246,5,5,145,220,5,5,184,219,5,5,244,203,5,5,115,242,5,5,65,182,5,5,142,203,5,5,87,176,5,5,8,250,5,5,71,194,5,5,113,218,5,5,89,173,5,5,85,219,5,5,134,234,5,5,133,191,5,5,73,190,5,5,218,249,5,5,23,231,5,5,230,215,5,5,146,243,5,5,161,177,5,5,141,221,5,5,136,191,5,5,150,231,5,5,254,219,5,5,247,193,5,5,109,194,5,5,136,190,5,5,20,244,5,5,183,176,5,5,205,233,5,5,240,194,5,5,150,170,5,5,46,178,5,5,140,239,5,5,115,211,5,5,102,224,5,5,141,239,5,5,64,220,5,5,174,234,5,5,26,193,5,5,75,171,5,5,139,215,5,5,237,200,5,5,30,214,5,5,157,235,5,5,220,249,5,5,184,214,5,5,186,212,5,5,222,237,5,5,141,209,5,5,224,201,5,5,141,233,5,5,221,249,5,5,223,199,5,5,22,241,5,5,252,234,5,5,169,201,5,5,11,232,5,5,54,173,5,5,243,194,5,5,103,205,5,5,55,173,5,5,103,240,5,5,54,172,5,5,94,218,5,5,15,232,5,5,231,249,5,5,223,249,5,5,164,206,5,5,58,202,5,5,155,178,5,5,21,201,5,5,181,201,5,5,69,203,5,5,55,223,5,5,146,196,5,5,115,241,5,5,45,189,5,5,170,247,5,5,229,231,5,5,86,185,5,5,255,242,5,5,101,192,5,5,96,228,5,5,197,199,5,5,196,192,5,5,150,218,5,5,26,229,5,5,71,243,5,5,50,189,5,5,41,176,5,5,205,212,5,5,14,220,5,5,3,185,5,5,229,209,5,5,154,218,5,5,148,249,5,5,71,206,5,5,251,182,5,5,171,246,5,5,160,229,5,5,161,182,5,5,27,248,5,5,246,245,5,5,88,211,5,5,119,222,5,5,109,232,5,5,238,184,5,5,153,233,5,5,220,183,5,5,45,203,5,5,205,249,5,5,24,221,5,5,113,231,5,5,90,246,5,5,76,247,5,5,175,247,5,5,37,169,5,5,221,183,5,5,160,175,5,5,216,220,5,5,3,239,5,5,11,196,5,5,176,177,5,5,59,169,5,5,194,218,5,5,73,195,5,5,105,199,5,5,111,218,5,5,185,179,5,5,73,188,5,5,72,191,5,5,157,185,5,5,68,235,5,5,132,194,5,5,145,206,5,5,195,197,5,5,198,194,5,5,43,227,5,5,190,185,5,5,252,232,5,5,154,197,5,5,122,234,5,5,120,231,5,5,62,224,5,5,158,225,5,5,218,192,5,5,250,225,5,5,20,192,5,5,221,234,5,5,67,204,5,5,59,240,5,5,222,234,5,5,210,214,5,5,184,182,5,5,77,176,5,5,185,220,5,5,127,187,5,5,138,221,5,5,249,228,5,5,133,208,5,5,104,222,5,5,236,169,5,5,58,175,5,5,189,225,5,5,183,204,5,5,3,218,5,5,99,249,5,5,2,245,5,5,122,228,5,5,8,206,5,5,154,248,5,5,14,249,5,5,6,199,5,5,170,232,5,5,149,193,5,5,161,208,5,5,255,200,5,5,3,226,5,5,191,208,5,5,28,192,5,5,51,243,5,5,87,191,5,5,70,223,5,5,58,181,5,5,192,180,5,5,215,170,5,5,130,232,5,5,251,185,5,5,157,248,5,5,142,190,5,5,44,179,5,5,245,205,5,5,170,170,5,5,239,208,5,5,193,242,5,5,236,195,5,5,109,184,5,5,54,219,5,5,238,245,5,5,140,183,5,5,13,177,5,5,58,185,5,5,25,173,5,5,12,202,5,5,71,239,5,5,159,193,5,5,58,171,5,5,90,213,5,5,22,207,5,5,157,201,5,5,70,240,5,5,140,224,5,5,154,209,5,5,211,219,5,5,131,233,5,5,130,203,5,5,135,220,5,5,106,244,5,5,100,194,5,5,138,215,5,5,255,215,5,5,128,190,5,5,234,194,5,5,219,249,5,5,153,183,5,5,154,233,5,5,9,185,5,5,156,183,5,5,13,218,5,5,157,183,5,5,5,215,5,5,156,171,5,5,187,213,5,5,225,232,5,5,111,245,5,5,20,185,5,5,71,240,5,5,76,240,5,5,220,216,5,5,220,231,5,5,232,186,5,5,9,250,5,5,49,225,5,5,78,174,5,5,2,215,5,5,227,229,5,5,94,240,5,5,170,201,5,5,56,225,5,5,104,205,5,5,242,186,5,5,173,228,5,5,172,228,5,5,253,184,5,5,177,228,5,5,16,188,5,5,103,206,5,5,99,206,5,5,234,183,5,5,25,221,5,5,31,182,5,5,53,186,5,5,9,248,5,5,223,196,5,5,76,207,5,5,83,186,5,5,234,208,5,5,12,185,5,5,212,168,5,5,169,186,5,5,4,226,5,5,161,197,5,5,7,184,5,5,104,221,5,5,168,236,5,5,101,245,5,5,244,249,5,5,171,186,5,5,225,248,5,5,67,242,5,5,14,247,5,5,70,168,5,5,40,182,5,5,4,201,5,5,170,222,5,5,80,223,5,5,11,213,5,5,203,206,5,5,188,204,5,5,217,168,5,5,42,182,5,5,31,202,5,5,196,173,5,5,116,229,5,5,126,170,5,5,12,193,5,5,112,244,5,5,25,175,5,5,192,204,5,5,65,192,5,5,171,197,5,5,127,208,5,5,110,245,5,5,116,206,5,5,20,213,5,5,83,192,5,5,89,192,5,5,43,206,5,5,39,237,5,5,77,208,5,5,174,215,5,5,129,177,5,5,183,207,5,5,55,237,5,5,71,241,5,5,68,241,5,5,25,183,5,5,179,168,5,5,33,185,5,5,104,237,5,5,84,186,5,5,180,215,5,5,239,243,5,5,34,185,5,5,68,204,5,5,39,239,5,5,48,248,5,5,206,178,5,5,94,234,5,5,224,215,5,5,143,238,5,5,131,232,5,5,205,218,5,5,52,218,5,5,53,218,5,5,226,215,5,5,120,190,5,5,137,224,5,5,134,232,5,5,72,239,5,5,110,237,5,5,196,215,5,5,115,215,5,5,195,241,5,5,181,185,5,5,109,195,5,5,89,225,5,5,216,242,5,5,9,231,5,5,100,182,5,5,104,220,5,5,44,183,5,5,105,220,5,5,42,203,5,5,167,201,5,5,183,185,5,5,121,211,5,5,235,215,5,5,103,173,5,5,226,241,5,5,241,185,5,5,15,239,5,5,17,175,5,5,208,229,5,5,6,183,5,5,65,189,5,5,234,174,5,5,235,174,5,5,34,177,5,5,253,183,5,5,183,231,5,5,219,169,5,5,40,239,5,5,123,200,5,5,41,239,5,5,219,212,5,5,69,204,5,5,195,204,5,5,247,246,5,5,144,217,5,5,47,231,5,5,119,233,5,5,196,232,5,5,224,230,5,5,225,230,5,5,238,198,5,5,47,216,5,5,88,191,5,5,16,191,5,5,12,233,5,5,52,220,5,5,79,189,5,5,95,194,5,5,233,178,5,5,48,177,5,5,214,182,5,5,144,178,5,5,54,220,5,5,251,174,5,5,62,248,5,5,236,193,5,5,26,235,5,5,2,175,5,5,63,213,5,5,117,249,5,5,110,228,5,5,30,191,5,5,117,189,5,5,204,188,5,5,231,188,5,5,55,188,5,5,119,168,5,5,93,213,5,5,128,239,5,5,11,203,5,5,119,189,5,5,122,168,5,5,245,203,5,5,140,212,5,5,56,216,5,5,125,168,5,5,66,182,5,5,129,239,5,5,137,191,5,5,36,235,5,5,152,178,5,5,221,237,5,5,103,201,5,5,102,201,5,5,188,198,5,5,111,207,5,5,151,245,5,5,119,214,5,5,13,186,5,5,16,186,5,5,14,186,5,5,189,179,5,5,199,179,5,5,219,181,5,5,227,222,5,5,67,219,5,5,8,210,5,5,9,210,5,5,181,180,5,5,184,201,5,5,201,226,5,5,70,249,5,5,172,185,5,5,209,173,5,5,121,188,5,5,80,243,5,5,213,168,5,5,220,212,5,5,140,238,5,5,128,223,5,5,184,217,5,5,56,193,5,5,81,197,5,5,186,191,5,5,118,175,5,5,123,201,5,5,95,206,5,5,140,192,5,5,87,225,5,5,217,211,5,5,40,205,5,5,124,211,5,5,122,194,5,5,65,212,5,5,152,244,5,5,42,205,5,5,69,192,5,5,130,201,5,5,235,191,5,5,23,241,5,5,142,209,5,5,87,190,5,5,245,181,5,5,241,238,5,5,233,179,5,5,234,237,5,5,110,177,5,5,166,223,5,5,114,216,5,5,81,243,5,5,212,174,5,5,220,177,5,5,221,177,5,5,66,189,5,5,191,185,5,5,128,246,5,5,36,212,5,5,251,210,5,5,223,177,5,5,233,245,5,5,228,173,5,5,70,204,5,5,39,246,5,5,74,241,5,5,65,228,5,5,116,203,5,5,221,204,5,5,133,246,5,5,54,211,5,5,137,226,5,5,233,181,5,5,44,236,5,5,181,226,5,5,148,186,5,5,230,234,5,5,238,202,5,5,128,188,5,5,157,221,5,5,199,203,5,5,150,213,5,5,35,196,5,5,100,197,5,5,42,170,5,5,13,179,5,5,174,187,5,5,172,229,5,5,243,234,5,5,157,213,5,5,165,176,5,5,8,180,5,5,137,210,5,5,229,226,5,5,45,197,5,5,176,176,5,5,231,199,5,5,4,203,5,5,35,200,5,5,177,176,5,5,5,203,5,5,222,229,5,5,36,200,5,5,12,203,5,5,17,203,5,5,180,176,5,5,120,168,5,5,134,221,5,5,173,223,5,5,208,226,5,5,42,200,5,5,23,211,5,5,153,246,5,5,242,177,5,5,69,211,5,5,62,216,5,5,166,210,5,5,209,226,5,5,211,226,5,5,251,204,5,5,13,242,5,5,9,242,5,5,96,245,5,5,125,223,5,5,238,223,5,5,73,239,5,5,7,224,5,5,133,223,5,5,102,245,5,5,103,245,5,5,9,219,5,5,226,238,5,5,132,201,5,5,4,192,5,5,38,217,5,5,17,199,5,5,153,172,5,5,88,185,5,5,174,171,5,5,147,190,5,5,181,190,5,5,205,174,5,5,155,218,5,5,71,233,5,5,42,219,5,5,162,247,5,5,235,242,5,5,168,180,5,5,4,185,5,5,191,218,5,5,194,184,5,5,201,172,5,5,249,229,5,5,127,173,5,5,79,186,5,5,91,246,5,5,245,187,5,5,168,183,5,5,200,182,5,5,24,183,5,5,100,212,5,5,68,212,5,5,133,193,5,5,153,182,5,5,175,248,5,5,31,241,5,5,230,209,5,5,89,168,5,5,18,199,5,5,57,218,5,5,210,185,5,5,19,242,5,5,190,229,5,5,128,237,5,5,112,214,5,5,247,212,5,5,128,215,5,5,180,230,5,5,181,230,5,5,224,182,5,5,19,199,5,5,54,196,5,5,254,224,5,5,90,221,5,5,97,247,5,5,52,245,5,5,104,233,5,5,93,221,5,5,92,229,5,5,180,247,5,5,186,179,5,5,248,177,5,5,226,182,5,5,195,168,5,5,182,171,5,5,137,217,5,5,89,226,5,5,170,169,5,5,143,186,5,5,224,224,5,5,66,249,5,5,206,182,5,5,96,246,5,5,172,210,5,5,175,213,5,5,93,249,5,5,49,184,5,5,69,212,5,5,178,245,5,5,26,232,5,5,41,250,5,5,102,212,5,5,99,193,5,5,148,221,5,5,97,246,5,5,87,169,5,5,177,209,5,5,102,217,5,5,173,189,5,5,206,198,5,5,210,174,5,5,32,240,5,5,144,234,5,5,30,237,5,5,216,204,5,5,60,180,5,5,83,198,5,5,77,205,5,5,79,196,5,5,139,211,5,5,55,236,5,5,47,212,5,5,128,199,5,5,134,238,5,5,6,187,5,5,212,187,5,5,94,185,5,5,64,180,5,5,150,174,5,5,161,194,5,5,74,234,5,5,75,234,5,5,228,181,5,5,78,168,5,5,12,189,5,5,67,213,5,5,117,210,5,5,94,249,5,5,33,187,5,5,105,174,5,5,164,226,5,5,103,246,5,5,35,177,5,5,145,207,5,5,112,233,5,5,36,177,5,5,113,233,5,5,228,206,5,5,227,206,5,5,119,192,5,5,114,233,5,5,47,211,5,5,142,199,5,5,140,219,5,5,252,243,5,5,120,214,5,5,80,210,5,5,83,208,5,5,99,211,5,5,30,206,5,5,146,228,5,5,193,171,5,5,193,229,5,5,123,228,5,5,96,234,5,5,206,194,5,5,92,196,5,5,75,241,5,5,6,189,5,5,91,177,5,5,194,203,5,5,88,220,5,5,242,226,5,5,149,207,5,5,48,176,5,5,98,221,5,5,130,215,5,5,169,178,5,5,129,197,5,5,226,176,5,5,95,234,5,5,249,233,5,5,236,227,5,5,72,212,5,5,110,174,5,5,105,210,5,5,14,214,5,5,100,180,5,5,237,227,5,5,241,210,5,5,82,210,5,5,30,213,5,5,90,186,5,5,105,206,5,5,142,202,5,5,32,203,5,5,57,245,5,5,44,177,5,5,45,195,5,5,91,203,5,5,10,223,5,5,8,213,5,5,238,170,5,5,84,206,5,5,69,213,5,5,189,201,5,5,26,200,5,5,17,176,5,5,26,178,5,5,117,226,5,5,106,210,5,5,28,196,5,5,245,209,5,5,136,200,5,5,18,238,5,5,65,236,5,5,169,218,5,5,99,221,5,5,78,176,5,5,63,184,5,5,60,184,5,5,234,196,5,5,202,182,5,5,187,215,5,5,148,228,5,5,70,180,5,5,9,213,5,5,170,187,5,5,107,249,5,5,4,180,5,5,9,230,5,5,164,207,5,5,136,210,5,5,105,248,5,5,245,174,5,5,214,176,5,5,109,206,5,5,215,211,5,5,48,179,5,5,46,168,5,5,11,234,5,5,87,210,5,5,211,222,5,5,241,222,5,5,38,210,5,5,127,243,5,5,106,247,5,5,250,218,5,5,178,181,5,5,155,219,5,5,113,227,5,5,122,237,5,5,35,194,5,5,59,229,5,5,215,194,5,5,175,241,5,5,63,193,5,5,197,180,5,5,103,170,5,5,137,173,5,5,110,184,5,5,135,232,5,5,182,210,5,5,164,208,5,5,67,228,5,5,223,225,5,5,179,227,5,5,63,169,5,5,135,215,5,5,247,205,5,5,68,228,5,5,106,222,5,5,116,225,5,5,13,224,5,5,160,248,5,5,131,185,5,5,83,239,5,5,210,171,5,5,122,203,5,5,141,192,5,5,12,213,5,5,126,233,5,5,42,185,5,5,251,205,5,5,80,171,5,5,204,211,5,5,142,173,5,5,184,205,5,5,176,187,5,5,50,212,5,5,197,175,5,5,249,170,5,5,123,194,5,5,192,183,5,5,120,225,5,5,65,209,5,5,253,230,5,5,88,248,5,5,17,206,5,5,175,194,5,5,180,240,5,5,224,205,5,5,32,247,5,5,118,235,5,5,63,177,5,5,25,204,5,5,40,227,5,5,179,212,5,5,186,210,5,5,200,175,5,5,135,203,5,5,50,177,5,5,55,187,5,5,28,233,5,5,218,225,5,5,96,182,5,5,151,246,5,5,178,194,5,5,141,220,5,5,166,189,5,5,49,177,5,5,107,219,5,5,178,232,5,5,69,224,5,5,64,183,5,5,84,240,5,5,102,220,5,5,72,248,5,5,5,178,5,5,152,199,5,5,110,211,5,5,213,227,5,5,18,203,5,5,142,170,5,5,208,240,5,5,241,197,5,5,187,175,5,5,130,239,5,5,145,197,5,5,145,200,5,5,39,203,5,5,214,219,5,5,214,227,5,5,114,186,5,5,174,214,5,5,55,177,5,5,85,171,5,5,152,235,5,5,96,210,5,5,15,230,5,5,3,244,5,5,153,232,5,5,7,171,5,5,60,234,5,5,159,199,5,5,148,200,5,5,79,236,5,5,100,205,5,5,241,191,5,5,158,243,5,5,139,206,5,5,163,217,5,5,4,244,5,5,44,206,5,5,147,210,5,5,159,243,5,5,250,173,5,5,43,215,5,5,252,229,5,5,19,187,5,5,242,243,5,5,243,203,5,5,16,187,5,5,82,249,5,5,191,194,5,5,252,210,5,5,98,175,5,5,232,192,5,5,38,185,5,5,99,175,5,5,138,208,5,5,18,211,5,5,197,246,5,5,230,246,5,5,120,185,5,5,36,194,5,5,200,179,5,5,108,246,5,5,98,234,5,5,238,224,5,5,214,245,5,5,182,196,5,5,110,232,5,5,140,241,5,5,202,172,5,5,188,237,5,5,148,241,5,5,18,175,5,5,125,231,5,5,126,231,5,5,196,196,5,5,192,241,5,5,249,241,5,5,58,234,5,5,46,197,5,5,201,196,5,5,255,233,5,5,233,220,5,5,238,220,5,5,243,220,5,5,174,196,5,5,39,222,5,5,14,225,5,5,139,222,5,5,66,222,5,5,121,226,5,5,80,225,5,5,50,214,5,5,51,214,5,5,211,186,5,5,74,190,5,5,130,226,5,5,220,175,5,5,27,223,5,5,192,231,5,5,101,230,5,5,128,247,5,5,109,178,5,5,210,175,5,5,86,220,5,5,190,238,5,5,83,182,5,5,226,211,5,5,3,225,5,5,85,182,5,5,24,169,5,5,211,175,5,5,76,188,5,5,169,182,5,5,3,169,5,5,37,170,5,5,79,205,5,5,81,247,5,5,23,194,5,5,120,172,5,5,71,204,5,5,245,247,5,5,54,244,5,5,79,181,5,5,194,171,5,5,31,232,5,5,148,185,5,5,212,175,5,5,184,231,5,5,82,205,5,5,239,216,5,5,57,212,5,5,226,230,5,5,121,199,5,5,12,184,5,5,32,244,5,5,128,183,5,5,13,202,5,5,198,220,5,5,186,241,5,5,52,201,5,5,243,226,5,5,68,242,5,5,60,229,5,5,211,171,5,5,24,208,5,5,222,210,5,5,240,196,5,5,213,190,5,5,96,222,5,5,12,199,5,5,220,170,5,5,209,209,5,5,212,179,5,5,147,178,5,5,78,169,5,5,211,172,5,5,117,239,5,5,201,223,5,5,127,172,5,5,145,172,5,5,43,205,5,5,203,177,5,5,120,235,5,5,218,237,5,5,26,175,5,5,181,178,5,5,61,178,5,5,221,215,5,5,136,205,5,5,213,238,5,5,160,192,5,5,75,194,5,5,236,191,5,5,11,208,5,5,185,214,5,5,138,205,5,5,105,205,5,5,58,173,5,5,253,222,5,5,162,185,5,5,70,203,5,5,134,193,5,5,175,193,5,5,229,219,5,5,211,236,5,5,254,183,5,5,158,213,5,5,253,236,5,5,15,237,5,5,148,172,5,5,156,172,5,5,224,238,5,5,140,201,5,5,198,226,5,5,150,194,5,5,0,167,5,5,251,209,5,5,138,226,5,5,151,194,5,5,59,195,5,5,156,212,5,5,97,228,5,5,232,238,5,5,242,172,5,5,129,208,5,5,74,208,5,5,189,184,5,5,33,215,5,5,14,242,5,5,15,242,5,5,207,220,5,5,224,216,5,5,165,180,5,5,232,189,5,5,197,214,5,5,37,207,5,5,83,249,5,5,73,191,5,5,46,224,5,5,198,246,5,5,160,232,5,5,242,212,5,5,210,183,5,5,204,227,5,5,27,229,5,5,52,230,5,5,82,246,5,5,226,214,5,5,75,220,5,5,161,229,5,5,144,215,5,5,125,218,5,5,211,183,5,5,64,199,5,5,137,195,5,5,71,205,5,5,202,234,5,5,5,192,5,5,109,216,5,5,104,214,5,5,86,236,5,5,252,182,5,5,170,168,5,5,89,219,5,5,217,233,5,5,201,192,5,5,18,190,5,5,19,190,5,5,141,182,5,5,122,230,5,5,187,197,5,5,7,186,5,5,172,246,5,5,72,243,5,5,110,216,5,5,132,168,5,5,111,175,5,5,104,207,5,5,251,235,5,5,219,182,5,5,182,218,5,5,68,188,5,5,155,176,5,5,216,239,5,5,66,241,5,5,205,170,5,5,242,238,5,5,60,216,5,5,28,229,5,5,103,202,5,5,29,213,5,5,139,181,5,5,107,232,5,5,128,173,5,5,117,172,5,5,28,248,5,5,222,223,5,5,247,225,5,5,237,242,5,5,72,218,5,5,46,204,5,5,230,224,5,5,208,220,5,5,218,178,5,5,177,208,5,5,200,216,5,5,110,202,5,5,2,241,5,5,201,198,5,5,193,209,5,5,169,169,5,5,85,169,5,5,10,186,5,5,230,208,5,5,187,238,5,5,188,238,5,5,63,197,5,5,122,213,5,5,110,219,5,5,102,199,5,5,52,211,5,5,153,210,5,5,179,171,5,5,105,171,5,5,78,220,5,5,112,234,5,5,182,237,5,5,236,231,5,5,216,169,5,5,55,189,5,5,49,240,5,5,157,244,5,5,23,180,5,5,216,196,5,5,178,179,5,5,244,210,5,5,198,184,5,5,149,189,5,5,168,213,5,5,141,207,5,5,222,183,5,5,120,221,5,5,49,186,5,5,59,170,5,5,89,229,5,5,223,183,5,5,207,248,5,5,106,207,5,5,120,182,5,5,44,193,5,5,73,207,5,5,74,207,5,5,192,168,5,5,107,176,5,5,95,209,5,5,254,248,5,5,176,246,5,5,182,174,5,5,212,192,5,5,12,196,5,5,212,204,5,5,158,176,5,5,230,210,5,5,194,242,5,5,104,235,5,5,112,240,5,5,230,216,5,5,113,185,5,5,29,209,5,5,118,202,5,5,195,218,5,5,30,240,5,5,165,185,5,5,146,215,5,5,254,172,5,5,2,174,5,5,24,242,5,5,85,188,5,5,84,249,5,5,182,203,5,5,58,230,5,5,213,192,5,5,29,187,5,5,144,176,5,5,203,193,5,5,108,176,5,5,25,186,5,5,2,187,5,5,45,207,5,5,218,172,5,5,158,194,5,5,159,194,5,5,235,183,5,5,149,241,5,5,206,247,5,5,5,249,5,5,87,194,5,5,46,191,5,5,175,239,5,5,219,172,5,5,32,182,5,5,189,218,5,5,15,219,5,5,14,175,5,5,62,207,5,5,9,227,5,5,116,247,5,5,40,215,5,5,240,247,5,5,172,235,5,5,112,190,5,5,172,183,5,5,211,217,5,5,154,184,5,5,111,177,5,5,15,196,5,5,51,234,5,5,221,175,5,5,149,172,5,5,16,196,5,5,226,181,5,5,76,168,5,5,11,216,5,5,185,174,5,5,131,218,5,5,15,194,5,5,249,225,5,5,182,190,5,5,176,213,5,5,119,202,5,5,171,195,5,5,109,201,5,5,198,222,5,5,122,248,5,5,130,177,5,5,77,193,5,5,100,218,5,5,65,170,5,5,164,172,5,5,12,216,5,5,74,191,5,5,214,192,5,5,80,178,5,5,85,249,5,5,196,218,5,5,150,191,5,5,32,234,5,5,146,206,5,5,114,240,5,5,173,235,5,5,221,195,5,5,109,224,5,5,176,239,5,5,216,206,5,5,61,189,5,5,181,247,5,5,201,237,5,5,171,180,5,5,37,229,5,5,249,201,5,5,94,180,5,5,177,183,5,5,134,218,5,5,225,239,5,5,176,188,5,5,19,170,5,5,27,172,5,5,102,243,5,5,223,178,5,5,101,227,5,5,51,224,5,5,52,224,5,5,99,174,5,5,4,174,5,5,59,230,5,5,39,171,5,5,197,230,5,5,192,185,5,5,134,202,5,5,13,214,5,5,45,248,5,5,106,209,5,5,135,202,5,5,125,248,5,5,23,250,5,5,232,227,5,5,52,217,5,5,24,220,5,5,131,224,5,5,5,174,5,5,161,212,5,5,37,197,5,5,146,207,5,5,241,207,5,5,53,234,5,5,18,196,5,5,217,173,5,5,38,221,5,5,25,198,5,5,98,236,5,5,217,226,5,5,38,241,5,5,97,177,5,5,204,186,5,5,34,188,5,5,72,241,5,5,98,177,5,5,81,193,5,5,170,228,5,5,243,223,5,5,92,211,5,5,192,220,5,5,122,232,5,5,71,201,5,5,242,183,5,5,106,181,5,5,107,209,5,5,200,229,5,5,78,195,5,5,25,210,5,5,195,209,5,5,135,198,5,5,164,200,5,5,235,202,5,5,222,221,5,5,232,229,5,5,137,227,5,5,240,231,5,5,213,191,5,5,39,241,5,5,115,240,5,5,53,240,5,5,244,185,5,5,46,176,5,5,59,207,5,5,60,207,5,5,146,176,5,5,124,228,5,5,25,196,5,5,37,179,5,5,138,217,5,5,34,180,5,5,143,193,5,5,167,249,5,5,56,186,5,5,124,200,5,5,158,205,5,5,7,197,5,5,96,229,5,5,29,198,5,5,255,210,5,5,56,200,5,5,182,188,5,5,16,214,5,5,180,243,5,5,55,185,5,5,183,187,5,5,255,183,5,5,82,206,5,5,112,173,5,5,59,175,5,5,155,223,5,5,13,176,5,5,3,245,5,5,223,207,5,5,68,172,5,5,196,168,5,5,3,202,5,5,105,227,5,5,157,171,5,5,37,188,5,5,130,169,5,5,160,216,5,5,143,197,5,5,211,230,5,5,115,216,5,5,9,179,5,5,34,195,5,5,15,214,5,5,82,178,5,5,194,195,5,5,15,216,5,5,234,224,5,5,173,185,5,5,34,190,5,5,57,186,5,5,72,204,5,5,185,182,5,5,118,216,5,5,40,168,5,5,180,228,5,5,247,169,5,5,165,247,5,5,62,236,5,5,231,196,5,5,144,193,5,5,255,203,5,5,61,225,5,5,134,222,5,5,93,226,5,5,138,178,5,5,218,189,5,5,132,214,5,5,183,188,5,5,41,177,5,5,190,225,5,5,27,176,5,5,78,170,5,5,135,173,5,5,114,190,5,5,234,182,5,5,173,200,5,5,74,214,5,5,242,207,5,5,181,213,5,5,202,228,5,5,21,178,5,5,47,220,5,5,115,190,5,5,154,236,5,5,141,238,5,5,146,226,5,5,133,214,5,5,125,228,5,5,171,172,5,5,10,210,5,5,234,245,5,5,34,228,5,5,155,196,5,5,180,226,5,5,106,206,5,5,79,170,5,5,42,239,5,5,5,212,5,5,245,171,5,5,73,212,5,5,255,179,5,5,117,240,5,5,118,240,5,5,119,240,5,5,6,233,5,5,141,219,5,5,13,217,5,5,214,198,5,5,226,232,5,5,147,228,5,5,243,241,5,5,176,241,5,5,103,184,5,5,54,203,5,5,15,235,5,5,16,235,5,5,36,210,5,5,176,172,5,5,237,229,5,5,62,176,5,5,13,233,5,5,159,241,5,5,192,170,5,5,116,207,5,5,43,168,5,5,168,181,5,5,153,206,5,5,123,240,5,5,103,200,5,5,104,200,5,5,92,194,5,5,162,208,5,5,46,250,5,5,47,250,5,5,188,249,5,5,110,169,5,5,247,218,5,5,79,231,5,5,19,238,5,5,44,168,5,5,145,217,5,5,150,193,5,5,8,184,5,5,11,206,5,5,29,196,5,5,138,212,5,5,92,183,5,5,74,189,5,5,75,189,5,5,112,189,5,5,225,236,5,5,87,227,5,5,171,245,5,5,24,249,5,5,171,232,5,5,170,218,5,5,121,185,5,5,10,215,5,5,193,216,5,5,85,208,5,5,199,190,5,5,45,221,5,5,17,214,5,5,177,184,5,5,43,180,5,5,186,247,5,5,37,194,5,5,50,229,5,5,198,171,5,5,212,228,5,5,228,211,5,5,233,192,5,5,186,189,5,5,254,243,5,5,60,193,5,5,193,180,5,5,207,237,5,5,54,224,5,5,163,176,5,5,226,217,5,5,213,228,5,5,192,245,5,5,247,199,5,5,223,226,5,5,157,191,5,5,80,231,5,5,180,221,5,5,243,214,5,5,212,200,5,5,108,249,5,5,120,237,5,5,154,242,5,5,158,207,5,5,52,243,5,5,204,222,5,5,45,179,5,5,103,248,5,5,192,186,5,5,76,218,5,5,92,235,5,5,75,173,5,5,102,198,5,5,27,200,5,5,28,190,5,5,116,194,5,5,29,205,5,5,51,229,5,5,255,211,5,5,112,241,5,5,194,223,5,5,198,239,5,5,184,221,5,5,52,176,5,5,229,221,5,5,56,243,5,5,201,245,5,5,72,201,5,5,21,219,5,5,245,207,5,5,159,202,5,5,14,218,5,5,43,224,5,5,206,242,5,5,160,202,5,5,43,197,5,5,233,230,5,5,74,169,5,5,114,175,5,5,181,234,5,5,114,227,5,5,141,204,5,5,223,191,5,5,95,179,5,5,156,215,5,5,189,249,5,5,237,213,5,5,85,177,5,5,156,242,5,5,119,175,5,5,69,242,5,5,131,199,5,5,14,212,5,5,18,214,5,5,19,214,5,5,242,209,5,5,46,223,5,5,53,231,5,5,31,183,5,5,88,243,5,5,45,246,5,5,160,193,5,5,136,192,5,5,118,219,5,5,125,172,5,5,213,181,5,5,48,208,5,5,86,188,5,5,114,224,5,5,202,245,5,5,38,209,5,5,195,223,5,5,235,234,5,5,142,204,5,5,54,231,5,5,95,186,5,5,45,201,5,5,211,218,5,5,219,229,5,5,183,184,5,5,104,177,5,5,185,221,5,5,109,225,5,5,134,206,5,5,55,219,5,5,138,224,5,5,20,235,5,5,193,169,5,5,193,237,5,5,105,187,5,5,104,170,5,5,141,249,5,5,131,187,5,5,48,250,5,5,147,226,5,5,179,172,5,5,126,212,5,5,214,200,5,5,41,178,5,5,238,192,5,5,14,202,5,5,48,221,5,5,64,201,5,5,70,242,5,5,79,204,5,5,128,240,5,5,119,209,5,5,164,179,5,5,148,226,5,5,101,207,5,5,252,226,5,5,177,175,5,5,170,212,5,5,48,168,5,5,246,202,5,5,166,176,5,5,86,231,5,5,188,213,5,5,15,217,5,5,204,195,5,5,55,176,5,5,106,195,5,5,7,229,5,5,165,227,5,5,142,172,5,5,89,242,5,5,84,239,5,5,58,249,5,5,157,203,5,5,105,170,5,5,123,205,5,5,254,234,5,5,32,172,5,5,29,245,5,5,158,201,5,5,214,215,5,5,23,207,5,5,117,236,5,5,86,204,5,5,234,192,5,5,244,170,5,5,134,187,5,5,19,188,5,5,234,178,5,5,14,224,5,5,180,205,5,5,4,221,5,5,166,220,5,5,235,178,5,5,212,208,5,5,141,235,5,5,24,207,5,5,212,171,5,5,55,179,5,5,86,177,5,5,164,245,5,5,51,221,5,5,81,235,5,5,106,229,5,5,191,189,5,5,112,168,5,5,86,208,5,5,36,205,5,5,230,176,5,5,86,247,5,5,70,172,5,5,214,213,5,5,119,194,5,5,116,208,5,5,167,176,5,5,235,210,5,5,101,191,5,5,167,197,5,5,241,239,5,5,45,194,5,5,189,210,5,5,149,222,5,5,199,239,5,5,175,187,5,5,16,174,5,5,4,190,5,5,31,220,5,5,82,199,5,5,160,215,5,5,174,206,5,5,243,243,5,5,62,244,5,5,211,215,5,5,79,180,5,5,36,203,5,5,22,204,5,5,83,199,5,5,0,160,5,5,120,170,5,5,24,202,5,5,68,229,5,5,148,192,5,5,116,215,5,5,160,221,5,5,62,182,5,5,250,207,5,5,218,211,5,5,82,173,5,5,96,179,5,5,222,235,5,5,176,194,5,5,82,219,5,5,83,219,5,5,194,201,5,5,196,241,5,5,23,216,5,5,125,175,5,5,43,190,5,5,167,193,5,5,219,206,5,5,91,243,5,5,91,169,5,5,56,241,5,5,147,217,5,5,192,205,5,5,104,218,5,5,110,191,5,5,185,181,5,5,15,226,5,5,215,182,5,5,232,197,5,5,248,249,5,5,52,182,5,5,23,219,5,5,37,183,5,5,37,200,5,5,29,223,5,5,81,219,5,5,21,236,5,5,170,234,5,5,117,184,5,5,233,197,5,5,93,178,5,5,68,230,5,5,48,180,5,5,91,223,5,5,29,233,5,5,141,231,5,5,228,204,5,5,147,229,5,5,201,220,5,5,163,214,5,5,168,193,5,5,134,243,5,5,117,224,5,5,90,204,5,5,98,242,5,5,197,231,5,5,225,229,5,5,149,192,5,5,87,189,5,5,140,223,5,5,106,211,5,5,196,201,5,5,30,235,5,5,136,243,5,5,90,242,5,5,60,231,5,5,137,188,5,5,99,169,5,5,88,188,5,5,20,168,5,5,225,228,5,5,120,191,5,5,121,191,5,5,6,193,5,5,125,176,5,5,175,232,5,5,153,228,5,5,213,208,5,5,118,239,5,5,235,201,5,5,101,194,5,5,109,172,5,5,53,221,5,5,218,215,5,5,13,203,5,5,224,198,5,5,217,242,5,5,143,177,5,5,66,226,5,5,91,225,5,5,94,235,5,5,136,170,5,5,215,244,5,5,118,224,5,5,255,231,5,5,97,182,5,5,245,179,5,5,193,233,5,5,111,186,5,5,194,233,5,5,174,222,5,5,59,194,5,5,89,188,5,5,37,189,5,5,147,219,5,5,235,233,5,5,144,235,5,5,214,237,5,5,251,168,5,5,215,223,5,5,175,222,5,5,149,235,5,5,232,180,5,5,140,213,5,5,73,229,5,5,67,211,5,5,78,175,5,5,213,206,5,5,31,219,5,5,101,213,5,5,245,224,5,5,13,193,5,5,19,244,5,5,23,174,5,5,215,245,5,5,2,182,5,5,164,210,5,5,141,240,5,5,66,185,5,5,205,176,5,5,34,233,5,5,170,214,5,5,44,182,5,5,239,193,5,5,249,234,5,5,4,200,5,5,156,192,5,5,198,170,5,5,172,179,5,5,123,208,5,5,225,200,5,5,254,195,201,224,230,0,5,5,194,208,5,5,253,216,5,5,86,216,5,5,90,232,5,5,150,203,5,5,219,211,5,5,59,232,5,5,30,224,5,5,226,205,5,5,135,239,5,5,251,234,5,5,147,233,5,5,37,202,5,5,136,239,5,5,134,200,5,5,200,201,5,5,18,195,5,5,241,178,5,5,194,246,5,5,157,169,5,5,232,225,5,5,219,237,5,5,135,209,5,5,176,190,5,5,4,171,5,5,67,182,5,5,217,223,5,5,50,225,5,5,166,227,5,5,2,217,5,5,31,216,5,5,125,229,5,5,166,204,5,5,128,191,5,5,207,211,5,5,68,185,5,5,140,243,5,5,120,169,5,5,198,202,5,5,178,222,5,5,132,175,5,5,0,163,5,5,28,204,5,5,21,244,5,5,37,235,5,5,165,216,5,5,200,200,5,5,237,191,5,5,38,228,5,5,160,230,5,5,86,219,5,5,87,219,5,5,178,214,5,5,19,189,5,5,95,205,5,5,229,223,5,5,176,227,5,5,12,208,5,5,143,243,5,5,201,213,5,5,7,242,5,5,154,235,5,5,22,193,5,5,122,196,5,5,38,235,5,5,79,209,5,5,26,217,5,5,230,223,5,5,123,196,5,5,187,212,5,5,30,211,5,5,243,171,5,5,83,218,5,5,149,239,5,5,97,232,5,5,217,241,5,5,27,197,5,5,43,203,5,5,44,203,5,5,25,240,5,5,222,215,5,5,95,240,5,5,237,204,5,5,72,227,5,5,30,190,5,5,41,243,5,5,104,204,5,5,156,217,5,5,172,237,5,5,105,182,5,5,177,207,5,5,63,188,5,5,237,199,5,5,238,200,5,5,27,193,5,5,101,178,5,5,31,207,5,5,225,201,5,5,171,201,5,5,36,191,5,5,111,183,5,5,119,246,5,5,130,229,5,5,9,200,5,5,16,245,5,5,88,190,5,5,49,202,5,5,29,193,5,5,67,208,5,5,206,201,5,5,93,190,5,5,124,206,5,5,84,192,5,5,11,200,5,5,215,205,5,5,195,193,5,5,149,219,5,5,237,225,5,5,178,201,5,5,5,218,5,5,51,233,5,5,163,239,5,5,47,206,5,5,227,207,5,5,34,171,5,5,142,189,5,5,214,189,5,5,115,205,5,5,159,211,5,5,6,206,5,5,64,223,5,5,253,232,5,5,97,215,5,5,171,175,5,5,157,189,5,5,149,234,5,5,79,177,5,5,2,184,5,5,150,234,5,5,156,234,5,5,120,205,5,5,220,189,5,5,187,241,5,5,129,188,5,5,168,194,5,5,94,197,5,5,177,187,5,5,140,169,5,5,120,236,5,5,11,245,5,5,12,245,5,5,233,199,5,5,69,171,5,5,147,231,5,5,224,222,5,5,28,175,5,5,40,217,5,5,130,179,5,5,176,192,5,5,42,217,5,5,234,179,5,5,167,221,5,5,156,231,5,5,196,197,5,5,122,245,5,5,235,220,5,5,121,241,5,5,247,187,5,5,71,249,5,5,62,189,5,5,7,191,5,5,239,207,5,5,152,185,5,5,47,224,5,5,158,231,5,5,255,172,5,5,218,221,5,5,191,238,5,5,181,206,5,5,202,232,5,5,146,182,5,5,152,181,5,5,180,168,5,5,213,174,5,5,50,215,5,5,166,229,5,5,167,229,5,5,91,219,5,5,66,169,5,5,251,212,5,5,19,243,5,5,20,243,5,5,26,198,5,5,121,214,5,5,15,227,5,5,5,240,5,5,122,214,5,5,86,172,5,5,185,242,5,5,201,197,5,5,49,191,5,5,116,216,5,5,123,214,5,5,119,247,5,5,2,236,5,5,92,188,5,5,196,209,5,5,171,228,5,5,26,183,5,5,27,183,5,5,77,188,5,5,214,185,5,5,15,244,5,5,90,184,5,5,60,218,5,5,149,195,5,5,243,183,5,5,151,174,5,5,88,180,5,5,131,169,5,5,75,232,5,5,133,210,5,5,191,177,5,5,11,217,5,5,43,241,5,5,175,244,5,5,182,213,5,5,187,174,5,5,105,241,5,5,184,188,5,5,231,187,5,5,82,197,5,5,143,202,5,5,97,184,5,5,62,218,5,5,146,244,5,5,17,186,5,5,3,213,5,5,4,213,5,5,32,232,5,5,49,248,5,5,135,179,5,5,40,171,5,5,113,171,5,5,58,186,5,5,205,244,5,5,106,217,5,5,236,220,5,5,184,226,5,5,73,204,5,5,91,186,5,5,22,178,5,5,92,186,5,5,120,240,5,5,144,202,5,5,60,174,5,5,110,217,5,5,153,209,5,5,122,185,5,5,148,176,5,5,52,191,5,5,53,191,5,5,56,207,5,5,104,184,5,5,63,237,5,5,51,228,5,5,195,203,5,5,216,247,5,5,80,238,5,5,37,232,5,5,105,200,5,5,164,194,5,5,150,202,5,5,57,239,5,5,189,213,5,5,80,214,5,5,201,187,5,5,237,220,5,5,144,238,5,5,183,228,5,5,112,209,5,5,240,216,5,5,78,216,5,5,86,187,5,5,241,216,5,5,5,247,5,5,240,206,5,5,114,201,5,5,133,245,5,5,85,193,5,5,66,210,5,5,71,223,5,5,145,214,5,5,12,234,5,5,154,195,5,5,71,217,5,5,199,220,5,5,248,240,5,5,88,193,5,5,187,227,5,5,219,173,5,5,194,169,5,5,114,181,5,5,43,188,5,5,171,222,5,5,48,235,5,5,96,183,5,5,105,221,5,5,106,221,5,5,62,184,5,5,136,232,5,5,112,245,5,5,67,230,5,5,13,184,5,5,15,202,5,5,53,201,5,5,106,170,5,5,120,175,5,5,157,242,5,5,79,241,5,5,97,195,5,5,27,178,5,5,111,236,5,5,224,226,5,5,115,179,5,5,188,227,5,5,54,191,5,5,240,229,5,5,114,246,5,5,158,223,5,5,192,182,5,5,241,196,5,5,117,208,5,5,158,214,5,5,159,214,5,5,81,242,5,5,62,198,5,5,140,200,5,5,25,208,5,5,189,215,5,5,81,223,5,5,242,230,5,5,86,206,5,5,168,202,5,5,210,179,5,5,152,226,5,5,194,225,5,5,67,200,5,5,9,188,5,5,48,188,5,5,82,242,5,5,75,169,5,5,203,182,5,5,13,213,5,5,220,228,5,5,243,180,5,5,85,239,5,5,162,242,5,5,168,224,5,5,234,217,5,5,136,215,5,5,94,219,5,5,138,210,5,5,180,216,5,5,107,229,5,5,94,203,5,5,190,187,5,5,87,228,5,5,37,180,5,5,181,181,5,5,26,169,5,5,56,179,5,5,186,228,5,5,90,172,5,5,94,237,5,5,131,240,5,5,159,187,5,5,28,173,5,5,9,180,5,5,141,200,5,5,229,198,5,5,98,195,5,5,97,233,5,5,230,226,5,5,127,207,5,5,171,234,5,5,139,208,5,5,197,241,5,5,51,195,5,5,233,221,5,5,27,235,5,5,214,190,5,5,173,236,5,5,176,170,5,5,252,218,5,5,222,228,5,5,118,184,5,5,212,242,5,5,214,207,5,5,112,229,5,5,25,184,5,5,24,219,5,5,132,233,5,5,57,241,5,5,77,217,5,5,86,207,5,5,165,231,5,5,72,240,5,5,191,221,5,5,35,175,5,5,90,225,5,5,221,247,5,5,118,249,5,5,16,226,5,5,119,184,5,5,213,242,5,5,255,199,5,5,251,207,5,5,144,200,5,5,131,180,5,5,196,189,5,5,19,217,5,5,213,179,5,5,169,202,5,5,242,229,5,5,59,243,5,5,176,217,5,5,39,210,5,5,41,205,5,5,35,176,5,5,218,218,5,5,133,240,5,5,98,194,5,5,46,169,5,5,55,201,5,5,60,212,5,5,94,223,5,5,10,231,5,5,150,176,5,5,11,231,5,5,218,242,5,5,212,229,5,5,14,203,5,5,202,223,5,5,11,169,5,5,221,218,5,5,222,218,5,5,154,192,5,5,42,230,5,5,132,234,5,5,56,188,5,5,139,216,5,5,165,238,5,5,14,170,5,5,44,190,5,5,124,225,5,5,210,238,5,5,176,180,5,5,14,210,5,5,205,188,5,5,200,189,5,5,52,187,5,5,187,206,5,5,44,209,5,5,119,239,5,5,178,229,5,5,137,240,5,5,215,225,5,5,89,247,5,5,128,172,5,5,212,219,5,5,165,214,5,5,9,207,5,5,176,226,5,5,169,220,5,5,80,222,5,5,146,172,5,5,167,174,5,5,64,179,5,5,121,168,5,5,198,205,5,5,121,229,5,5,50,247,5,5,127,225,5,5,21,174,5,5,94,213,5,5,150,217,5,5,17,213,5,5,207,241,5,5,67,194,5,5,115,206,5,5,44,205,5,5,154,216,5,5,91,247,5,5,24,240,5,5,104,194,5,5,234,222,5,5,181,229,5,5,35,233,5,5,155,228,5,5,143,245,5,5,168,245,5,5,176,206,5,5,177,206,5,5,162,187,5,5,161,204,5,5,89,207,5,5,17,231,5,5,181,176,5,5,33,202,5,5,11,207,5,5,36,233,5,5,173,173,5,5,35,245,5,5,65,207,5,5,236,232,5,5,136,209,5,5,230,249,5,5,95,223,5,5,23,217,5,5,216,225,5,5,154,246,5,5,183,212,5,5,184,212,5,5,239,194,5,5,153,217,5,5,30,171,5,5,143,203,5,5,22,212,5,5,91,187,5,5,96,231,5,5,188,192,5,5,92,248,5,5,220,190,5,5,204,182,5,5,97,201,5,5,243,197,5,5,244,197,5,5,134,191,5,5,249,239,5,5,44,173,5,5,185,194,5,5,146,220,5,5,72,210,5,5,41,233,5,5,70,230,5,5,36,175,5,5,193,235,5,5,96,223,5,5,133,175,5,5,80,174,5,5,62,178,5,5,84,202,5,5,206,233,5,5,147,220,5,5,214,238,5,5,69,196,5,5,146,177,5,5,47,173,5,5,3,215,5,5,100,176,5,5,211,232,5,5,6,221,5,5,138,206,5,5,141,216,5,5,151,240,5,5,5,173,5,5,189,202,5,5,94,244,5,5,39,235,5,5,24,203,5,5,249,247,5,5,76,244,5,5,98,233,5,5,66,207,5,5,207,233,5,5,186,214,5,5,232,218,5,5,253,193,5,5,30,208,5,5,109,188,5,5,36,219,5,5,238,191,5,5,246,248,5,5,122,195,5,5,143,213,5,5,152,188,5,5,219,208,5,5,108,182,5,5,205,201,5,5,121,195,5,5,153,200,5,5,21,209,5,5,50,202,5,5,66,176,5,5,207,202,5,5,30,217,5,5,36,211,5,5,106,205,5,5,179,180,5,5,48,233,5,5,234,247,5,5,252,204,5,5,51,202,5,5,253,204,5,5,113,183,5,5,232,237,5,5,23,213,5,5,47,210,5,5,120,186,5,5,137,197,5,5,104,240,5,5,183,222,5,5,40,231,5,5,92,172,5,5,165,217,5,5,249,217,5,5,180,180,5,5,93,172,5,5,3,207,5,5,168,217,5,5,123,195,5,5,3,248,5,5,199,248,5,5,124,235,5,5,183,190,5,5,148,211,5,5,103,212,5,5,151,211,5,5,250,233,5,5,125,247,5,5,230,206,5,5,13,182,5,5,78,198,5,5,220,208,5,5,155,231,5,5,24,234,5,5,149,236,5,5,149,198,5,5,241,242,5,5,139,217,5,5,74,204,5,5,74,235,5,5,205,222,5,5,33,232,5,5,51,227,5,5,227,232,5,5,46,195,5,5,42,232,5,5,10,236,5,5,197,189,5,5,113,229,5,5,148,178,5,5,24,175,5,5,117,229,5,5,150,178,5,5,179,248,5,5,16,189,5,5,166,217,5,5,63,238,5,5,61,238,5,5,3,172,5,5,219,184,5,5,141,241,5,5,19,171,5,5,229,172,5,5,114,238,5,5,79,220,5,5,37,174,5,5,173,183,5,5,125,187,5,5,3,183,5,5,229,222,5,5,70,195,5,5,232,209,5,5,79,247,5,5,249,177,5,5,16,239,5,5,117,247,5,5,82,247,5,5,145,195,5,5,183,246,5,5,115,233,5,5,58,218,5,5,98,246,5,5,162,218,5,5,95,216,5,5,172,195,5,5,22,198,5,5,186,242,5,5,202,207,5,5,2,173,5,5,134,168,5,5,231,210,5,5,8,191,5,5,59,218,5,5,57,193,5,5,254,227,5,5,115,204,5,5,192,177,5,5,132,169,5,5,81,212,5,5,204,237,5,5,44,250,5,5,72,170,5,5,219,220,5,5,59,225,5,5,83,197,5,5,219,188,5,5,106,235,5,5,123,234,5,5,231,245,5,5,135,238,5,5,238,211,5,5,151,171,5,5,203,178,5,5,64,228,5,5,91,184,5,5,128,187,5,5,231,246,5,5,248,246,5,5,61,218,5,5,37,212,5,5,28,239,5,5,112,207,5,5,233,227,5,5,235,209,5,5,250,185,5,5,70,235,5,5,126,245,5,5,103,217,5,5,177,169,5,5,40,242,5,5,48,231,5,5,45,208,5,5,189,171,5,5,158,171,5,5,3,184,5,5,217,174,5,5,214,174,5,5,110,199,5,5,167,218,5,5,134,194,5,5,9,215,5,5,27,194,5,5,195,171,5,5,85,195,5,5,230,181,5,5,95,185,5,5,17,219,5,5,213,247,5,5,38,187,5,5,185,239,5,5,53,172,5,5,196,203,5,5,84,198,5,5,62,234,5,5,129,248,5,5,52,178,5,5,157,234,5,5,57,200,5,5,30,199,5,5,234,210,5,5,208,222,5,5,86,193,5,5,87,200,5,5,119,174,5,5,76,202,5,5,130,197,5,5,46,221,5,5,247,213,5,5,123,185,5,5,74,239,5,5,58,242,5,5,235,245,5,5,137,204,5,5,72,217,5,5,51,218,5,5,239,192,5,5,75,239,5,5,7,172,5,5,130,248,5,5,20,223,5,5,32,220,5,5,54,218,5,5,73,202,5,5,239,202,5,5,33,203,5,5,113,199,5,5,221,193,5,5,152,183,5,5,12,173,5,5,107,170,5,5,61,200,5,5,192,225,5,5,248,242,5,5,80,204,5,5,218,174,5,5,117,173,5,5,67,175,5,5,35,181,5,5,21,171,5,5,92,203,5,5,188,220,5,5,111,212,5,5,112,212,5,5,190,182,5,5,158,242,5,5,135,206,5,5,191,187,5,5,169,236,5,5,129,180,5,5,61,226,5,5,23,247,5,5,238,196,5,5,205,238,5,5,149,214,5,5,186,187,5,5,172,186,5,5,31,199,5,5,81,214,5,5,62,226,5,5,11,226,5,5,113,184,5,5,33,175,5,5,182,233,5,5,195,170,5,5,211,179,5,5,68,200,5,5,186,180,5,5,129,234,5,5,130,234,5,5,227,188,5,5,249,242,5,5,92,169,5,5,114,169,5,5,114,184,5,5,193,241,5,5,163,227,5,5,171,236,5,5,26,191,5,5,196,169,5,5,147,175,5,5,248,205,5,5,85,212,5,5,231,177,5,5,108,243,5,5,181,224,5,5,2,186,5,5,115,177,5,5,80,190,5,5,219,218,5,5,250,242,5,5,57,219,5,5,13,210,5,5,143,196,5,5,159,224,5,5,12,169,5,5,189,227,5,5,220,174,5,5,200,219,5,5,238,210,5,5,77,240,5,5,158,195,5,5,73,215,5,5,83,190,5,5,117,199,5,5,6,203,5,5,218,200,5,5,25,202,5,5,157,245,5,5,193,221,5,5,252,205,5,5,120,239,5,5,177,179,5,5,198,233,5,5,4,232,5,5,122,229,5,5,23,171,5,5,144,172,5,5,58,192,5,5,229,215,5,5,9,220,5,5,93,169,5,5,179,232,5,5,127,170,5,5,33,184,5,5,240,193,5,5,112,248,5,5,241,193,5,5,53,177,5,5,157,192,5,5,240,177,5,5,168,243,5,5,99,182,5,5,220,171,5,5,234,232,5,5,240,233,5,5,42,171,5,5,106,218,5,5,10,207,5,5,226,200,5,5,138,168,5,5,73,244,5,5,119,187,5,5,155,172,5,5,98,224,5,5,112,211,5,5,16,173,5,5,41,203,5,5,151,170,5,5,186,195,5,5,59,178,5,5,179,222,5,5,70,225,5,5,152,170,5,5,230,200,5,5,36,184,5,5,35,219,5,5,195,246,5,5,237,180,5,5,181,222,5,5,69,228,5,5,83,222,5,5,242,168,5,5,139,233,5,5,233,171,5,5,49,174,5,5,203,200,5,5,248,204,5,5,70,231,5,5,13,232,5,5,242,200,5,5,158,245,5,5,209,177,5,5,52,197,5,5,234,243,5,5,200,221,5,5,5,194,5,5,43,212,5,5,160,239,5,5,249,200,5,5,26,236,5,5,172,230,5,5,173,230,5,5,202,237,5,5,130,183,5,5,30,225,5,5,105,184,5,5,147,183,5,5,130,184,5,5,219,168,5,5,211,188,5,5,86,192,5,5,91,192,5,5,9,194,5,5,189,186,5,5,213,170,5,5,212,236,5,5,39,187,5,5,207,197,5,5,79,213,5,5,113,207,5,5,104,208,5,5,105,208,5,5,209,208,5,5,43,222,5,5,131,223,5,5,11,173,5,5,110,206,5,5,218,197,5,5,110,208,5,5,173,226,5,5,251,202,5,5,210,237,5,5,24,247,5,5,34,198,5,5,57,231,5,5,115,220,5,5,223,228,5,5,142,231,5,5,123,226,5,5,203,241,5,5,8,201,5,5,192,181,5,5,162,180,5,5,103,216,5,5,66,212,5,5,14,193,5,5,45,209,5,5,142,240,5,5,40,186,5,5,125,217,5,5,13,245,5,5,3,196,5,5,197,186,5,5,182,178,5,5,73,194,5,5,117,206,5,5,191,217,5,5,185,193,5,5,18,229,5,5,254,197,5,5,129,217,5,5,120,206,5,5,13,201,5,5,88,221,5,5,247,178,5,5,202,186,5,5,7,194,5,5,186,186,5,5,200,236,5,5,26,187,5,5,97,208,5,5,20,222,5,5,8,173,5,5,252,200,5,5,197,197,5,5,219,192,5,5,49,231,5,5,226,178,5,5,118,226,5,5,188,241,5,5,38,186,5,5,245,195,5,5,186,217,5,5,192,194,5,5,44,217,5,5,173,195,5,5,218,176,5,5,208,197,5,5,249,246,5,5,210,173,5,5,120,192,5,5,59,186,5,5,28,178,5,5,29,249,5,5,10,179,5,5,160,220,5,5,62,190,5,5,230,217,5,5,128,185,5,5,60,222,5,5,127,195,5,5,87,187,5,5,221,185,5,5,178,175,5,5,128,195,5,5,182,191,5,5,74,217,5,5,13,234,5,5,15,224,5,5,139,210,5,5,48,192,5,5,185,205,5,5,33,247,5,5,138,244,5,5,137,170,5,5,19,234,5,5,203,189,5,5,170,220,5,5,227,185,5,5,55,247,5,5,114,235,5,5,189,175,5,5,28,231,5,5,177,238,5,5,216,202,5,5,5,198,5,5,38,231,5,5,9,237,5,5,42,231,5,5,87,236,5,5,88,236,5,5,252,179,5,5,87,184,5,5,45,217,5,5,46,217,5,5,251,194,5,5,29,189,5,5,215,192,5,5,123,182,5,5,210,235,5,5,156,179,5,5,96,189,5,5,3,173,5,5,206,225,5,5,147,234,5,5,79,195,5,5,136,238,5,5,164,218,5,5,211,235,5,5,226,239,5,5,121,220,5,5,236,214,5,5,234,227,5,5,220,192,5,5,212,235,5,5,227,239,5,5,108,181,5,5,9,183,5,5,40,236,5,5,118,237,5,5,180,223,5,5,79,221,5,5,233,239,5,5,226,233,5,5,209,197,5,5,56,233,5,5,101,210,5,5,9,174,5,5,44,241,5,5,188,246,5,5,76,234,5,5,170,182,5,5,251,233,5,5,179,173,5,5,249,220,5,5,104,236,5,5,131,219,5,5,185,248,5,5,190,234,5,5,43,239,5,5,44,239,5,5,252,223,5,5,158,174,5,5,150,188,5,5,47,221,5,5,188,188,5,5,231,234,5,5,236,245,5,5,52,248,5,5,72,246,5,5,29,186,5,5,30,249,5,5,78,249,5,5,208,244,5,5,96,186,5,5,106,184,5,5,222,193,5,5,201,179,5,5,76,204,5,5,11,179,5,5,105,237,5,5,151,202,5,5,67,210,5,5,38,212,5,5,187,247,5,5,243,184,5,5,58,239,5,5,88,197,5,5,208,237,5,5,177,244,5,5,145,238,5,5,146,238,5,5,174,217,5,5,99,245,5,5,190,213,5,5,91,170,5,5,84,234,5,5,111,217,5,5,197,168,5,5,138,177,5,5,212,249,5,5,161,225,5,5,14,248,5,5,111,176,5,5,134,245,5,5,243,240,5,5,192,234,5,5,182,235,5,5,76,239,5,5,240,190,5,5,193,188,5,5,61,222,5,5,225,172,5,5,82,233,5,5,186,221,5,5,253,188,5,5,241,172,5,5,33,186,5,5,88,187,5,5,231,217,5,5,95,191,5,5,99,195,5,5,63,190,5,5,160,184,5,5,197,232,5,5,219,228,5,5,49,221,5,5,189,247,5,5,22,227,5,5,49,208,5,5,210,244,5,5,53,209,5,5,179,181,5,5,23,191,5,5,115,236,5,5,77,234,5,5,173,186,5,5,15,182,5,5,137,171,5,5,166,226,5,5,152,238,5,5,191,201,5,5,217,247,5,5,180,199,5,5,122,199,5,5,38,230,5,5,71,242,5,5,224,225,5,5,248,192,5,5,25,247,5,5,175,218,5,5,231,176,5,5,66,201,5,5,116,181,5,5,189,199,5,5,210,181,5,5,67,222,5,5,245,226,5,5,30,178,5,5,197,169,5,5,29,173,5,5,110,241,5,5,44,199,5,5,48,216,5,5,101,216,5,5,228,222,5,5,49,168,5,5,250,241,5,5,85,233,5,5,123,174,5,5,157,195,5,5,140,232,5,5,40,230,5,5,152,230,5,5,80,185,5,5,182,223,5,5,252,171,5,5,102,191,5,5,102,196,5,5,36,223,5,5,10,246,5,5,37,223,5,5,130,180,5,5,27,190,5,5,171,173,5,5,11,223,5,5,110,195,5,5,13,199,5,5,117,217,5,5,201,176,5,5,59,233,5,5,89,224,5,5,187,228,5,5,51,232,5,5,216,182,5,5,166,174,5,5,206,224,5,5,96,239,5,5,185,210,5,5,246,239,5,5,168,179,5,5,33,213,5,5,231,248,5,5,83,173,5,5,245,173,5,5,178,248,5,5,254,192,5,5,90,214,5,5,39,225,5,5,165,248,5,5,69,229,5,5,242,196,5,5,207,216,5,5,49,180,5,5,74,246,5,5,65,244,5,5,173,249,5,5,71,215,5,5,232,248,5,5,107,203,5,5,52,194,5,5,183,175,5,5,103,188,5,5,98,206,5,5,81,221,5,5,22,171,5,5,70,190,5,5,74,213,5,5,198,241,5,5,215,179,5,5,172,234,5,5,81,213,5,5,77,222,5,5,31,235,5,5,78,222,5,5,183,191,5,5,71,190,5,5,193,181,5,5,126,247,5,5,62,179,5,5,135,233,5,5,28,184,5,5,41,214,5,5,231,226,5,5,60,194,5,5,215,214,5,5,99,242,5,5,43,249,5,5,91,248,5,5,92,231,5,5,122,191,5,5,205,239,5,5,53,168,5,5,53,232,5,5,31,210,5,5,22,174,5,5,132,183,5,5,224,247,5,5,70,237,5,5,243,236,5,5,218,190,5,5,32,235,5,5,139,185,5,5,179,211,5,5,91,214,5,5,157,209,5,5,39,238,5,5,118,229,5,5,16,234,5,5,230,225,5,5,155,247,5,5,143,220,5,5,242,193,5,5,217,213,5,5,39,200,5,5,243,190,5,5,229,191,5,5,106,185,5,5,143,240,5,5,50,208,5,5,68,233,5,5,124,208,5,5,95,231,5,5,200,215,5,5,248,173,5,5,131,235,5,5,22,226,5,5,31,224,5,5,79,169,5,5,201,174,5,5,74,215,5,5,81,222,5,5,124,194,5,5,219,242,5,5,199,233,5,5,234,188,5,5,174,225,5,5,167,237,5,5,168,237,5,5,68,205,5,5,210,241,5,5,5,171,5,5,211,176,5,5,221,216,5,5,34,202,5,5,72,209,5,5,73,209,5,5,171,220,5,5,145,245,5,5,56,209,5,5,248,193,5,5,74,244,5,5,53,195,5,5,19,203,5,5,45,205,5,5,112,172,5,5,208,211,5,5,144,187,5,5,63,231,5,5,241,248,5,5,123,168,5,5,124,168,5,5,210,195,5,5,146,245,5,5,174,238,5,5,167,189,5,5,148,194,5,5,250,206,5,5,199,173,5,5,60,188,5,5,46,190,5,5,90,173,5,5,173,234,5,5,114,244,5,5,4,220,5,5,29,231,5,5,140,244,5,5,236,180,5,5,77,246,5,5,74,210,5,5,231,200,5,5,123,181,5,5,96,240,5,5,247,197,5,5,72,192,5,5,18,250,5,5,241,194,5,5,242,171,5,5,138,191,5,5,114,248,5,5,73,230,5,5,99,244,5,5,154,244,5,5,237,221,5,5,58,216,5,5,52,225,5,5,100,244,5,5,46,214,5,5,142,221,5,5,40,235,5,5,37,244,5,5,55,225,5,5,68,178,5,5,103,224,5,5,98,232,5,5,75,192,5,5,22,195,5,5,70,196,5,5,15,245,5,5,45,210,5,5,96,238,5,5,0,164,5,5,223,244,5,5,54,213,5,5,62,191,5,5,75,190,5,5,150,239,5,5,151,239,5,5,148,220,5,5,97,218,5,5,129,211,5,5,140,215,5,5,239,180,5,5,218,224,5,5,12,190,5,5,158,247,5,5,110,188,5,5,30,168,5,5,100,240,5,5,76,194,5,5,120,242,5,5,4,194,5,5,145,191,5,5,146,180,5,5,149,245,5,5,88,235,5,5,231,243,5,5,207,201,5,5,89,221,5,5,132,229,5,5,96,173,5,5,220,202,5,5,178,238,5,5,227,170,5,5,150,245,5,5,10,237,5,5,204,181,5,5,85,175,5,5,134,229,5,5,86,175,5,5,224,237,5,5,59,173,5,5,98,218,5,5,28,240,5,5,247,200,5,5,50,174,5,5,142,233,5,5,39,211,5,5,104,190,5,5,235,243,5,5,165,239,5,5,73,178,5,5,230,244,5,5,20,237,5,5,155,180,5,5,81,236,5,5,193,192,5,5,247,179,5,5,74,184,5,5,142,218,5,5,248,191,5,5,60,195,5,5,95,189,5,5,205,225,5,5,95,218,5,5,116,220,5,5,218,214,5,5,219,227,5,5,198,235,5,5,227,238,5,5,199,235,5,5,194,192,5,5,145,218,5,5,112,194,5,5,68,191,5,5,191,211,5,5,57,197,5,5,27,236,5,5,98,210,5,5,182,234,5,5,97,181,5,5,96,206,5,5,68,234,5,5,175,223,5,5,129,183,5,5,241,220,5,5,159,182,5,5,183,197,5,5,66,246,5,5,77,186,5,5,145,188,5,5,162,213,5,5,203,249,5,5,208,221,5,5,82,234,5,5,168,244,5,5,236,223,5,5,221,245,5,5,251,178,5,5,129,247,5,5,102,176,5,5,92,217,5,5,89,245,5,5,51,170,5,5,243,238,5,5,108,238,5,5,170,199,5,5,185,201,5,5,21,222,5,5,165,186,5,5,168,221,5,5,107,192,5,5,255,190,5,5,91,174,5,5,203,247,5,5,26,221,5,5,55,190,5,5,13,178,5,5,21,186,5,5,207,217,5,5,72,187,5,5,166,235,5,5,4,239,5,5,25,246,5,5,148,184,5,5,191,232,5,5,237,172,5,5,173,191,5,5,185,234,5,5,134,247,5,5,146,195,5,5,31,230,5,5,232,241,5,5,41,216,5,5,129,230,5,5,72,185,5,5,102,241,5,5,75,191,5,5,186,199,5,5,34,223,5,5,177,223,5,5,209,181,5,5,202,216,5,5,209,247,5,5,164,249,5,5,169,211,5,5,123,180,5,5,213,248,5,5,208,182,5,5,2,199,5,5,38,229,5,5,155,241,5,5,14,221,5,5,75,221,5,5,157,179,5,5,69,173,5,5,100,203,5,5,177,248,5,5,76,224,5,5,26,225,5,5,76,221,5,5,29,239,5,5,152,209,5,5,10,174,5,5,191,179,5,5,238,190,5,5,28,194,5,5,118,233,5,5,129,235,5,5,15,238,5,5,97,229,5,5,159,181,5,5,41,242,5,5,8,235,5,5,19,173,5,5,15,249,5,5,41,168,5,5,216,236,5,5,38,179,5,5,47,208,5,5,68,213,5,5,151,234,5,5,60,209,5,5,66,178,5,5,253,223,5,5,177,233,5,5,140,237,5,5,70,169,5,5,51,222,5,5,58,215,5,5,107,208,5,5,197,195,5,5,242,206,5,5,135,245,5,5,230,193,5,5,55,209,5,5,34,225,5,5,98,244,5,5,19,216,5,5,215,200,5,5,40,214,5,5,224,197,5,5,238,236,5,5,137,215,5,5,212,244,5,5,47,174,5,5,78,186,5,5,51,215,5,5,69,189,5,5,159,231,5,5,125,192,5,5,80,189,5,5,235,187,5,5,36,189,5,5,18,231,5,5,19,231,5,5,191,191,5,5,144,203,5,5,21,188,5,5,147,180,5,5,254,204,5,5,91,180,5,5,90,194,5,5,204,214,5,5,44,222,5,5,77,202,5,5,174,178,5,5,89,228,5,5,13,170,5,5,218,222,5,5,150,232,5,5,105,183,5,5,59,247,5,5,65,247,5,5,21,237,5,5,22,237,5,5,243,221,5,5,161,175,5,5,12,191,5,5,206,227,5,5,45,239,5,5,207,227,5,5,46,239,5,5,145,193,5,5,183,168,5,5,134,189,5,5,169,181,5,5,115,175,5,5,223,232,5,5,169,190,5,5,161,193,5,5,23,199,5,5,161,184,5,5,95,197,5,5,190,183,5,5,243,230,5,5,61,171,5,5,100,188,5,5,91,242,5,5,225,247,5,5,69,193,5,5,42,183,5,5,20,231,5,5,221,171,5,5,148,229,5,5,131,190,5,5,70,171,5,5,242,178,5,5,123,249,5,5,46,183,5,5,142,239,5,5,202,246,5,5,127,169,5,5,249,172,5,5,79,168,5,5,5,213,5,5,238,209,5,5,221,212,5,5,18,186,5,5,240,209,5,5,107,241,5,5,137,179,5,5,113,209,5,5,134,223,5,5,99,234,5,5,121,190,5,5,62,200,5,5,194,188,5,5,97,188,5,5,120,209,5,5,84,168,5,5,125,207,5,5,22,202,5,5,140,210,5,5,43,170,5,5,4,242,5,5,70,193,5,5,144,227,5,5,68,207,5,5,18,213,5,5,21,231,5,5,131,239,5,5,116,197,5,5,134,209,5,5,107,175,5,5,53,225,5,5,105,190,5,5,14,198,5,5,164,169,5,5,179,245,5,5,180,242,5,5,88,184,5,5,52,172,5,5,243,185,5,5,211,225,5,5,137,238,5,5,79,188,5,5,108,228,5,5,134,213,5,5,217,191,5,5,129,182,5,5,15,225,5,5,223,186,5,5,55,244,5,5,250,246,5,5,12,182,5,5,53,248,5,5,52,222,5,5,92,170,5,5,31,249,5,5,14,182,5,5,104,187,5,5,80,213,5,5,190,170,5,5,217,206,5,5,194,177,5,5,154,221,5,5,210,199,5,5,236,182,5,5,182,226,5,5,147,238,5,5,190,174,5,5,117,207,5,5,222,188,5,5,93,170,5,5,172,205,5,5,20,204,5,5,96,191,5,5,162,184,5,5,72,213,5,5,32,249,5,5,108,193,5,5,236,234,5,5,91,244,5,5,216,194,5,5,163,184,5,5,241,243,5,5,39,194,5,5,73,240,5,5,219,235,5,5,11,246,5,5,230,220,5,5,62,171,5,5,63,171,5,5,75,217,5,5,231,220,5,5,231,175,5,5,244,243,5,5,150,247,5,5,190,200,5,5,219,243,5,5,151,176,5,5,246,173,5,5,177,220,5,5,124,226,5,5,113,212,5,5,182,185,5,5,52,232,5,5,232,206,5,5,53,194,5,5,90,224,5,5,120,184,5,5,82,225,5,5,202,176,5,5,203,176,5,5,34,247,5,5,49,192,5,5,63,245,5,5,163,180,5,5,249,195,5,5,78,234,5,5,65,176,5,5,111,243,5,5,119,169,5,5,184,243,5,5,192,200,5,5,146,183,5,5,133,172,5,5,66,192,5,5,162,221,5,5,132,239,5,5,113,248,5,5,126,184,5,5,41,186,5,5,164,219,5,5,75,244,5,5,145,203,5,5,137,239,5,5,252,168,5,5,35,174,5,5,156,228,5,5,52,247,5,5,170,248,5,5,8,171,5,5,63,243,5,5,120,244,5,5,47,178,5,5,226,243,5,5,254,236,5,5,29,214,5,5,149,220,5,5,158,228,5,5,154,240,5,5,4,196,5,5,248,184,5,5,63,232,5,5,245,243,5,5,159,170,5,5,148,180,5,5,164,222,5,5,8,237,5,5,178,220,5,5,89,235,5,5,21,205,5,5,250,184,5,5,247,243,5,5,161,169,5,5,172,245,5,5,77,184,5,5,172,242,5,5,240,185,5,5,51,172,5,5,47,244,5,5,21,232,5,5,245,168,5,5,53,245,5,5,207,191,5,5,210,246,5,5,121,182,5,5,11,225,5,5,132,213,5,5,186,170,5,5,22,186,5,5,32,248,5,5,217,186,5,5,11,182,5,5,16,194,5,5,210,169,5,5,33,222,5,5,179,226,5,5,98,187,5,5,204,199,5,5,185,177,5,5,110,207,5,5,227,182,5,5,218,188,5,5,125,238,5,5,89,244,5,5,232,246,5,5,101,193,5,5,79,191,5,5,9,249,5,5,18,204,5,5,150,205,5,5,240,243,5,5,10,249,5,5,156,184,5,5,226,195,5,5,60,217,5,5,3,246,5,5,186,200,5,5,226,220,5,5,107,184,5,5,160,180,5,5,29,192,5,5,160,222,5,5,176,220,5,5,149,176,5,5,94,170,5,5,147,247,5,5,177,185,5,5,109,212,5,5,253,177,5,5,189,200,5,5,141,183,5,5,163,248,5,5,115,184,5,5,107,248,5,5,162,219,5,5,66,244,5,5,244,236,5,5,220,243,5,5,60,243,5,5,119,244,5,5,144,220,5,5,144,240,5,5,249,184,5,5,227,174,5,5,212,230,5,5,250,220,5,5,33,210,5,5,23,227,5,5,133,231,5,5,63,174,5,5,228,188,5,5,74,174,5,5,156,245,5,5,199,231,5,5,128,225,5,5,182,249,5,5,181,249,5,5,120,202,5,5,153,196,5,5,89,184,5,5,94,245,5,5,220,184,5,5,205,214,5,5,122,220,5,5,234,216,5,5,6,240,5,5,77,232,5,5,16,249,5,5,210,197,5,5,148,216,5,5,188,174,5,5,94,176,5,5,40,174,5,5,41,174,5,5,202,179,5,5,235,196,5,5,181,173,5,5,209,178,5,5,127,231,5,5,209,244,5,5,219,197,5,5,28,243,5,5,112,217,5,5,137,192,5,5,192,174,5,5,121,175,5,5,150,186,5,5,130,235,5,5,33,249,5,5,149,226,5,5,60,181,5,5,200,203,5,5,227,184,5,5,141,224,5,5,232,176,5,5,58,231,5,5,104,245,5,5,16,224,5,5,17,240,5,5,18,197,5,5,54,194,5,5,38,218,5,5,153,225,5,5,82,176,5,5,26,177,5,5,186,205,5,5,187,217,5,5,94,178,5,5,21,217,5,5,44,249,5,5,19,226,5,5,123,217,5,5,5,175,5,5,224,190,5,5,32,216,5,5,6,216,5,5,19,195,5,5,38,244,5,5,72,226,5,5,4,182,5,5,215,243,5,5,216,243,5,5,191,249,5,5,225,211,5,5,128,169,5,5,108,199,5,5,210,198,5,5,3,181,5,5,211,197,5,5,180,183,5,5,27,174,5,5,213,193,5,5,174,182,5,5,189,246,5,5,176,224,5,5,25,243,5,5,214,168,5,5,134,214,5,5,26,243,5,5,182,215,5,5,35,228,5,5,235,224,5,5,59,239,5,5,204,210,5,5,77,204,5,5,207,207,5,5,198,168,5,5,175,179,5,5,97,199,5,5,4,228,5,5,61,193,5,5,96,176,5,5,88,212,5,5,13,215,5,5,54,248,5,5,236,196,5,5,93,179,5,5,139,246,5,5,184,183,5,5,11,212,5,5,91,197,5,5,92,220,5,5,236,171,5,5,135,210,5,5,89,197,5,5,152,202,5,5,160,185,5,5,153,238,5,5,34,192,5,5,81,181,5,5,83,232,5,5,165,194,5,5,82,181,5,5,218,247,5,5,232,217,5,5,129,199,5,5,76,248,5,5,106,187,5,5,245,216,5,5,15,200,5,5,198,232,5,5,246,174,5,5,173,205,5,5,73,213,5,5,15,247,5,5,89,193,5,5,174,226,5,5,64,172,5,5,38,194,5,5,140,177,5,5,240,215,5,5,108,170,5,5,243,231,5,5,83,181,5,5,35,192,5,5,16,197,5,5,249,192,5,5,146,222,5,5,120,227,5,5,179,175,5,5,103,196,5,5,8,211,5,5,21,233,5,5,33,172,5,5,108,235,5,5,60,177,5,5,183,209,5,5,147,222,5,5,81,203,5,5,250,240,5,5,220,194,5,5,71,175,5,5,246,215,5,5,155,209,5,5,207,224,5,5,55,194,5,5,164,214,5,5,243,229,5,5,70,229,5,5,68,176,5,5,111,195,5,5,150,192,5,5,12,211,5,5,243,196,5,5,13,211,5,5,87,206,5,5,187,205,5,5,241,201,5,5,81,190,5,5,105,197,5,5,198,174,5,5,137,228,5,5,237,217,5,5,243,225,5,5,215,171,5,5,199,249,5,5,84,216,5,5,207,238,5,5,235,176,5,5,119,249,5,5,66,172,5,5,120,249,5,5,200,212,5,5,35,247,5,5,47,246,5,5,97,179,5,5,149,246,5,5,204,241,5,5,47,181,5,5,23,181,5,5,225,175,5,5,253,240,5,5,109,247,5,5,63,179,5,5,163,244,5,5,33,174,5,5,201,175,5,5,56,194,5,5,153,186,5,5,125,225,5,5,47,197,5,5,29,184,5,5,200,249,5,5,216,179,5,5,76,213,5,5,253,218,5,5,180,211,5,5,20,226,5,5,230,172,5,5,181,227,5,5,243,193,5,5,131,178,5,5,77,177,5,5,93,214,5,5,211,224,5,5,201,215,5,5,212,210,5,5,76,179,5,5,23,226,5,5,158,192,5,5,21,211,5,5,249,206,5,5,126,204,5,5,224,243,5,5,143,170,5,5,27,175,5,5,200,205,5,5,146,203,5,5,240,176,5,5,93,225,5,5,206,177,5,5,32,224,5,5,97,231,5,5,17,200,5,5,70,192,5,5,155,246,5,5,203,215,5,5,243,178,5,5,23,212,5,5,124,249,5,5,20,203,5,5,4,170,5,5,8,244,5,5,214,210,5,5,43,171,5,5,177,227,5,5,24,197,5,5,183,178,5,5,197,172,5,5,7,232,5,5,101,182,5,5,137,175,5,5,94,247,5,5,253,180,5,5,168,171,5,5,242,176,5,5,243,176,5,5,248,197,5,5,249,197,5,5,29,204,5,5,184,224,5,5,7,216,5,5,176,197,5,5,47,214,5,5,113,203,5,5,254,180,5,5,249,176,5,5,234,186,5,5,39,244,5,5,148,177,5,5,156,170,5,5,157,170,5,5,250,247,5,5,118,197,5,5,134,175,5,5,59,216,5,5,4,181,5,5,83,175,5,5,79,192,5,5,110,230,5,5,45,243,5,5,215,210,5,5,30,204,5,5,209,203,5,5,157,246,5,5,217,202,5,5,62,247,5,5,56,173,5,5,139,175,5,5,205,180,5,5,133,229,5,5,255,204,5,5,31,204,5,5,14,232,5,5,135,229,5,5,216,249,5,5,248,200,5,5,212,233,5,5,87,218,5,5,135,219,5,5,40,211,5,5,219,224,5,5,167,217,5,5,167,192,5,5,251,176,5,5,90,177,5,5,102,231,5,5,13,200,5,5,15,198,5,5,32,204,5,5,19,221,5,5,215,185,5,5,224,177,5,5,10,183,5,5,107,217,5,5,38,226,5,5,61,181,5,5,62,181,5,5,222,185,5,5,56,201,5,5,139,218,5,5,136,206,5,5,0,161,5,5,50,192,5,5,19,197,5,5,142,225,5,5,56,199,5,5,128,201,5,5,176,236,5,5,193,207,5,5,168,198,5,5,126,217,5,5,46,205,5,5,131,201,5,5,66,181,5,5,156,246,5,5,255,236,5,5,41,226,5,5,153,178,5,5,106,240,5,5,133,242,5,5,213,173,5,5,32,236,5,5,79,187,5,5,23,198,5,5,94,229,5,5,21,243,5,5,248,233,5,5,187,177,5,5,6,235,5,5,124,182,5,5,165,218,5,5,89,220,5,5,187,199,5,5,135,222,5,5,208,227,5,5,11,174,5,5,193,177,5,5,160,181,5,5,239,209,5,5,135,214,5,5,79,207,5,5,69,219,5,5,188,199,5,5,104,215,5,5,97,248,5,5,31,189,5,5,158,189,5,5,146,217,5,5,211,199,5,5,12,179,5,5,78,204,5,5,195,177,5,5,101,168,5,5,237,245,5,5,130,182,5,5,181,199,5,5,91,237,5,5,150,212,5,5,188,169,5,5,60,186,5,5,61,186,5,5,83,212,5,5,55,248,5,5,237,218,5,5,170,181,5,5,199,168,5,5,161,247,5,5,190,246,5,5,141,237,5,5,215,198,5,5,60,239,5,5,6,247,5,5,62,222,5,5,191,213,5,5,234,181,5,5,237,185,5,5,13,197,5,5,6,195,5,5,8,187,5,5,195,188,5,5,107,198,5,5,233,217,5,5,148,247,5,5,193,243,5,5,16,247,5,5,229,220,5,5,106,203,5,5,83,242,5,5,200,220,5,5,54,241,5,5,149,228,5,5,15,240,5,5,138,245,5,5,136,228,5,5,64,184,5,5,181,216,5,5,151,247,5,5,141,210,5,5,234,201,5,5,140,245,5,5,9,245,5,5,108,203,5,5,40,249,5,5,31,191,5,5,188,228,5,5,83,176,5,5,192,187,5,5,143,198,5,5,208,238,5,5,176,212,5,5,164,215,5,5,136,187,5,5,210,210,5,5,196,213,5,5,210,186,5,5,200,169,5,5,88,206,5,5,246,211,5,5,83,203,5,5,74,219,5,5,254,218,5,5,155,192,5,5,71,237,5,5,54,232,5,5,219,175,5,5,216,176,5,5,37,176,5,5,140,185,5,5,59,241,5,5,38,189,5,5,150,222,5,5,124,184,5,5,45,249,5,5,30,184,5,5,149,229,5,5,231,169,5,5,247,244,5,5,208,241,5,5,150,229,5,5,175,225,5,5,115,186,5,5,217,245,5,5,201,231,5,5,220,242,5,5,201,205,5,5,186,194,5,5,197,173,5,5,99,248,5,5,126,229,5,5,171,191,5,5,121,235,5,5,148,245,5,5,20,195,5,5,14,245,5,5,254,171,5,5,119,201,5,5,47,183,5,5,68,182,5,5,247,203,5,5,144,185,5,5,2,220,5,5,147,198,5,5,137,190,5,5,216,238,5,5,162,192,5,5,171,248,5,5,240,181,5,5,121,242,5,5,77,194,5,5,41,189,5,5,173,201,5,5,131,212,5,5,218,202,5,5,221,202,5,5,107,205,5,5,33,204,5,5,211,173,5,5,24,236,5,5,68,187,5,5,2,235,5,5,170,177,5,5,156,218,5,5,95,248,5,5,143,181,5,5,73,206,5,5,66,219,5,5,27,189,5,5,51,186,5,5,207,198,5,5,78,205,5,5,160,247,5,5,184,246,5,5,17,239,5,5,152,189,5,5,226,245,5,5,121,202,5,5,132,237,5,5,169,216,5,5,40,222,5,5,191,243,5,5,233,246,5,5,254,194,5,5,137,247,5,5,214,217,5,5,151,205,5,5,255,194,5,5,131,245,5,5,56,184,5,5,101,203,5,5,205,210,5,5,189,169,5,5,17,191,5,5,129,187,5,5,184,228,5,5,76,203,5,5,79,176,5,5,25,249,5,5,215,176,5,5,14,184,5,5,138,192,5,5,144,229,5,5,144,222,5,5,127,212,5,5,209,242,5,5,194,231,5,5,206,210,5,5,188,205,5,5,142,245,5,5,239,203,5,5,218,233,5,5,62,186,5,5,112,176,5,5,115,176,5,5,46,213,5,5,245,249,5,5,218,170,5,5,142,200,5,5,143,200,5,5,120,176,5,5,95,235,5,5,44,169,5,5,221,170,5,5,222,170,5,5,223,170,5,5,96,235,5,5,224,170,5,5,14,169,5,5,128,176,5,5,225,170,5,5,226,170,5,5,253,173,5,5,44,219,5,5,101,211,5,5,103,211,5,5,91,173,5,5,71,176,5,5,70,176,5,5,60,238,5,5,179,218,5,5,164,170,5,5,165,170,5,5,204,221,5,5,113,241,5,5,114,203,5,5,119,177,5,5,7,173,5,5,190,184,5,5,34,215,5,5,116,241,5,5,117,241,5,5,222,214,5,5,202,235,5,5,104,238,5,5,196,187,5,5,222,206,5,5,59,214,5,5,151,243,5,5,193,228,5,5,135,227,5,5,174,248,5,5,111,240,5,5,120,177,5,5,116,243,5,5,216,195,5,5,69,188,5,5,30,236,5,5,113,182,5,5,123,230,5,5,121,177,5,5,100,181,5,5,206,187,5,5,159,245,5,5,122,177,5,5,217,195,5,5,229,242,5,5,237,228,5,5,231,202,5,5,179,174,5,5,226,173,5,5,170,210,5,5,142,226,5,5,211,246,5,5,115,238,5,5,128,196,5,5,45,193,5,5,255,173,5,5,177,177,5,5,246,181,5,5,219,178,5,5,226,213,5,5,33,248,5,5,179,179,5,5,48,244,5,5,180,225,5,5,192,222,5,5,250,227,5,5,193,217,5,5,75,196,5,5,47,191,5,5,61,180,5,5,103,241,5,5,44,208,5,5,253,169,5,5,11,192,5,5,2,210,5,5,126,238,5,5,74,195,5,5,143,248,5,5,183,203,5,5,207,235,5,5,184,227,5,5,178,223,5,5,34,222,5,5,183,225,5,5,55,212,5,5,131,189,5,5,173,210,5,5,12,181,5,5,131,196,5,5,57,235,5,5,208,235,5,5,248,171,5,5,12,241,5,5,254,232,5,5,53,217,5,5,73,227,5,5,243,247,5,5,54,217,5,5,27,179,5,5,28,179,5,5,102,227,5,5,86,196,5,5,51,226,5,5,95,180,5,5,196,238,5,5,162,245,5,5,249,226,5,5,18,187,5,5,135,230,5,5,41,222,5,5,139,174,5,5,244,223,5,5,27,244,5,5,48,218,5,5,121,183,5,5,236,202,5,5,166,224,5,5,50,191,5,5,71,202,5,5,85,186,5,5,174,200,5,5,228,169,5,5,100,177,5,5,212,197,5,5,254,169,5,5,158,190,5,5,167,177,5,5,159,205,5,5,45,241,5,5,143,247,5,5,230,195,5,5,42,242,5,5,67,176,5,5,240,199,5,5,203,228,5,5,56,226,5,5,47,239,5,5,136,177,5,5,231,242,5,5,107,206,5,5,10,170,5,5,172,211,5,5,177,241,5,5,86,178,5,5,65,224,5,5,15,181,5,5,79,224,5,5,165,236,5,5,214,175,5,5,191,174,5,5,5,226,5,5,59,242,5,5,225,221,5,5,193,245,5,5,48,241,5,5,125,243,5,5,171,181,5,5,216,170,5,5,197,187,5,5,172,181,5,5,187,231,5,5,200,190,5,5,68,217,5,5,141,178,5,5,139,177,5,5,4,229,5,5,28,210,5,5,148,238,5,5,34,186,5,5,150,237,5,5,100,175,5,5,143,204,5,5,217,235,5,5,199,224,5,5,49,179,5,5,193,174,5,5,232,242,5,5,8,224,5,5,200,224,5,5,133,215,5,5,184,206,5,5,151,237,5,5,229,186,5,5,30,245,5,5,113,168,5,5,68,222,5,5,45,172,5,5,252,174,5,5,17,224,5,5,6,244,5,5,115,245,5,5,20,181,5,5,57,179,5,5,37,205,5,5,199,174,5,5,74,177,5,5,234,203,5,5,6,250,5,5,112,218,5,5,72,215,5,5,60,235,5,5,92,242,5,5,161,238,5,5,186,181,5,5,131,203,5,5,112,197,5,5,79,222,5,5,138,170,5,5,124,237,5,5,233,206,5,5,195,233,5,5,99,224,5,5,210,187,5,5,216,244,5,5,227,225,5,5,3,182,5,5,195,208,5,5,178,170,5,5,181,170,5,5,126,200,5,5,38,202,5,5,224,242,5,5,173,237,5,5,125,206,5,5,87,202,5,5,244,238,5,5,213,226,5,5,187,178,5,5,193,214,5,5,190,240,5,5,70,220,5,5,240,187,5,5,129,241,5,5,33,207,5,5,11,219,5,5,226,216,5,5,167,230,5,5,195,199,5,5,163,183,5,5,176,198,5,5,48,171,5,5,138,182,5,5,25,234,5,5,225,209,5,5,214,233,5,5,66,221,5,5,47,169,5,5,173,242,5,5,57,177,5,5,200,191,5,5,102,233,5,5,53,169,5,5,25,230,5,5,64,197,5,5,29,241,5,5,242,187,5,5,227,224,5,5,6,217,5,5,52,170,5,5,206,212,5,5,100,171,5,5,215,220,5,5,165,169,5,5,61,228,5,5,252,178,5,5,162,249,5,5,2,238,5,5,215,203,5,5,171,199,5,5,27,187,5,5,204,247,5,5,169,221,5,5,90,199,5,5,20,242,5,5,149,184,5,5,161,188,5,5,68,216,5,5,212,246,5,5,108,192,5,5,108,190,5,5,126,189,5,5,29,234,5,5,153,194,5,5,45,231,5,5,44,187,5,5,163,211,5,5,35,201,5,5,76,193,5,5,139,199,5,5,67,246,5,5,54,201,5,5,118,243,5,5,93,236,5,5,92,174,5,5,92,180,5,5,186,230,5,5,232,205,5,5,50,184,5,5,53,230,5,5,236,183,5,5,73,185,5,5,112,188,5,5,36,201,5,5,78,193,5,5,185,185,5,5,45,198,5,5,160,240,5,5,183,171,5,5,118,231,5,5,171,169,5,5,122,202,5,5,77,243,5,5,28,172,5,5,53,233,5,5,67,214,5,5,252,212,5,5,172,216,5,5,148,187,5,5,138,247,5,5,27,225,5,5,165,249,5,5,169,213,5,5,165,200,5,5,127,210,5,5,239,173,5,5,40,241,5,5,34,172,5,5,163,232,5,5,222,177,5,5,8,197,5,5,206,240,5,5,238,215,5,5,75,238,5,5,76,180,5,5,155,236,5,5,150,207,5,5,113,219,5,5,182,169,5,5,161,181,5,5,136,222,5,5,158,197,5,5,241,241,5,5,120,243,5,5,108,189,5,5,241,199,5,5,166,232,5,5,167,232,5,5,187,223,5,5,105,225,5,5,34,209,5,5,227,230,5,5,45,219,5,5,174,175,5,5,26,249,5,5,170,249,5,5,20,238,5,5,36,230,5,5,172,232,5,5,82,243,5,5,126,188,5,5,194,240,5,5,40,170,5,5,118,207,5,5,189,173,5,5,188,183,5,5,156,203,5,5,239,239,5,5,82,248,5,5,252,189,5,5,241,215,5,5,68,236,5,5,22,245,5,5,15,207,5,5,242,215,5,5,194,234,5,5,189,178,5,5,147,170,5,5,184,235,5,5,121,170,5,5,103,244,5,5,8,229,5,5,75,246,5,5,126,207,5,5,131,220,5,5,229,203,5,5,215,213,5,5,232,177,5,5,252,207,5,5,34,238,5,5,154,172,5,5,148,199,5,5,101,183,5,5,253,207,5,5,174,249,5,5,214,199,5,5,40,203,5,5,222,243,5,5,41,173,5,5,18,241,5,5,67,192,5,5,248,236,5,5,48,173,5,5,88,177,5,5,101,204,5,5,99,190,5,5,37,231,5,5,108,183,5,5,229,243,5,5,211,202,5,5,67,241,5,5,235,179,5,5,47,217,5,5,214,248,5,5,125,212,5,5,183,247,5,5,197,238,5,5,203,184,5,5,156,241,5,5,177,196,5,5,156,236,5,5,239,249,5,5,80,207,5,5,4,246,5,5,223,234,5,5,101,180,5,5,190,245,5,5,11,183,5,5,188,242,5,5,133,184,5,5,121,243,5,5,4,225,5,5,78,226,5,5,14,215,5,5,5,228,5,5,228,176,5,5,232,187,5,5,63,186,5,5,224,223,5,5,236,213,5,5,68,175,5,5,194,243,5,5,50,209,5,5,124,201,5,5,80,176,5,5,69,175,5,5,109,241,5,5,24,227,5,5,192,246,5,5,244,231,5,5,136,194,5,5,125,174,5,5,38,240,5,5,121,227,5,5,11,195,5,5,167,207,5,5,115,199,5,5,38,224,5,5,216,201,5,5,21,214,5,5,247,249,5,5,215,187,5,5,236,236,5,5,59,220,5,5,226,210,5,5,12,229,5,5,189,205,5,5,5,201,5,5,73,236,5,5,196,225,5,5,104,212,5,5,245,244,5,5,56,176,5,5,40,225,5,5,249,249,5,5,166,248,5,5,236,176,5,5,72,200,5,5,21,226,5,5,55,232,5,5,118,180,5,5,201,189,5,5,196,234,5,5,44,234,5,5,68,225,5,5,79,217,5,5,57,176,5,5,137,243,5,5,239,213,5,5,231,198,5,5,203,223,5,5,51,208,5,5,239,217,5,5,95,175,5,5,78,177,5,5,138,243,5,5,4,241,5,5,97,168,5,5,181,244,5,5,216,187,5,5,129,225,5,5,144,194,5,5,107,213,5,5,36,174,5,5,116,242,5,5,35,202,5,5,9,244,5,5,98,201,5,5,94,238,5,5,146,194,5,5,255,171,5,5,21,195,5,5,30,231,5,5,54,225,5,5,24,182,5,5,113,211,5,5,152,239,5,5,85,202,5,5,119,197,5,5,4,237,5,5,153,239,5,5,227,210,5,5,38,219,5,5,158,235,5,5,84,175,5,5,11,237,5,5,107,204,5,5,69,208,5,5,70,208,5,5,228,210,5,5,2,234,5,5,24,195,5,5,63,220,5,5,72,208,5,5,17,237,5,5,206,170,5,5,56,172,5,5,45,222,5,5,108,241,5,5,53,222,5,5,84,222,5,5,64,202,201,160,231,0,5,5,247,237,5,5,105,203,5,5,24,231,5,5,166,195,5,5,167,195,5,5,48,217,5,5,192,238,5,5,155,203,5,5,110,178,5,5,75,245,5,5,236,179,5,5,234,213,5,5,55,217,5,5,181,168,5,5,53,184,5,5,187,245,5,5,129,246,5,5,182,168,5,5,54,206,5,5,54,184,5,5,4,210,5,5,159,179,5,5,124,220,5,5,37,216,5,5,78,199,5,5,230,175,5,5,74,249,5,5,114,182,5,5,35,190,5,5,36,190,5,5,38,188,5,5,15,185,5,5,136,214,5,5,53,207,5,5,186,218,5,5,39,179,5,5,129,223,5,5,122,231,5,5,48,239,5,5,245,172,5,5,177,221,5,5,133,227,5,5,213,230,5,5,146,211,5,5,56,215,5,5,61,217,5,5,29,194,5,5,42,213,5,5,239,237,5,5,182,195,5,5,206,168,5,5,147,182,5,5,14,174,5,5,38,234,5,5,89,180,5,5,29,243,5,5,59,215,5,5,185,183,5,5,222,212,5,5,241,209,5,5,227,233,5,5,111,181,5,5,220,197,5,5,16,181,5,5,252,185,5,5,9,240,5,5,106,215,5,5,25,169,5,5,142,219,5,5,126,218,5,5,182,173,5,5,93,211,5,5,12,183,5,5,105,243,5,5,202,238,5,5,122,216,5,5,223,212,5,5,152,187,5,5,76,189,5,5,235,239,5,5,30,198,5,5,162,179,5,5,61,239,5,5,84,247,5,5,81,231,5,5,178,184,5,5,187,218,5,5,202,191,5,5,5,225,5,5,182,198,5,5,195,242,5,5,84,205,5,5,173,181,5,5,123,216,5,5,44,181,5,5,37,249,5,5,158,210,5,5,115,227,5,5,63,222,5,5,243,208,5,5,64,186,5,5,222,198,5,5,81,204,5,5,118,171,5,5,135,223,5,5,101,186,5,5,203,171,5,5,224,212,5,5,72,242,5,5,136,223,5,5,29,250,5,5,251,171,5,5,52,241,5,5,98,226,5,5,109,193,5,5,203,245,5,5,252,221,5,5,64,222,5,5,142,246,5,5,92,197,5,5,13,173,5,5,187,221,5,5,188,221,5,5,79,235,5,5,77,245,5,5,134,169,5,5,196,188,5,5,109,170,5,5,133,221,5,5,122,175,5,5,230,221,5,5,204,171,5,5,58,248,5,5,247,174,5,5,156,243,5,5,208,213,5,5,25,227,5,5,108,215,5,5,15,184,5,5,193,244,5,5,185,204,5,5,64,215,5,5,16,184,5,5,161,202,5,5,31,243,5,5,225,212,5,5,34,237,5,5,42,169,5,5,161,171,5,5,100,195,5,5,254,185,5,5,212,222,5,5,48,246,5,5,182,209,5,5,82,231,5,5,83,231,5,5,50,179,5,5,64,193,5,5,206,209,5,5,63,225,5,5,122,190,5,5,203,238,5,5,74,223,5,5,212,199,5,5,85,198,5,5,160,169,5,5,40,194,5,5,28,227,5,5,40,234,5,5,82,189,5,5,221,194,5,5,219,174,5,5,16,182,5,5,157,206,5,5,119,171,5,5,69,222,5,5,156,209,5,5,66,193,5,5,242,239,5,5,35,198,5,5,149,247,5,5,43,175,5,5,207,232,5,5,29,227,5,5,122,209,5,5,217,201,5,5,40,192,5,5,84,242,5,5,244,234,5,5,128,218,5,5,20,250,5,5,26,247,5,5,246,216,5,5,128,220,5,5,253,174,5,5,84,232,5,5,41,234,5,5,235,217,5,5,226,212,5,5,186,226,5,5,222,247,5,5,232,232,5,5,41,209,5,5,126,199,5,5,157,237,5,5,249,231,5,5,44,232,5,5,102,234,5,5,36,198,5,5,209,172,5,5,115,201,5,5,142,192,5,5,32,213,5,5,22,219,5,5,87,208,5,5,85,238,5,5,202,239,5,5,9,187,5,5,71,168,5,5,17,180,5,5,80,241,5,5,242,219,5,5,195,198,5,5,112,215,5,5,32,206,5,5,82,223,5,5,0,141,5,5,165,179,5,5,51,188,5,5,96,219,5,5,71,222,5,5,45,199,5,5,78,217,5,5,25,233,5,5,141,245,5,5,131,234,5,5,255,243,5,5,17,226,5,5,106,177,5,5,154,186,5,5,101,189,5,5,88,247,5,5,58,227,5,5,249,205,5,5,170,207,5,5,57,201,5,5,151,228,5,5,232,233,5,5,92,243,5,5,201,169,5,5,154,230,5,5,23,224,5,5,93,242,5,5,30,173,5,5,10,180,5,5,216,171,5,5,52,188,5,5,91,193,5,5,85,189,5,5,247,176,5,5,102,183,5,5,14,173,5,5,138,228,5,5,36,247,5,5,92,223,5,5,28,235,5,5,45,190,5,5,252,241,5,5,153,226,5,5,213,199,5,5,233,248,5,5,62,206,5,5,42,234,5,5,153,216,5,5,108,221,5,5,11,188,5,5,63,206,5,5,240,237,5,5,128,175,5,5,117,244,5,5,244,196,5,5,143,232,5,5,187,226,5,5,57,207,5,5,52,214,5,5,26,202,5,5,41,212,5,5,97,219,5,5,126,174,5,5,81,185,5,5,78,202,5,5,214,225,5,5,98,171,5,5,64,248,5,5,12,246,5,5,89,227,5,5,189,204,5,5,251,249,5,5,113,197,5,5,159,173,5,5,233,242,5,5,61,194,5,5,21,185,5,5,171,179,5,5,198,225,5,5,143,173,5,5,90,206,5,5,193,187,5,5,91,204,5,5,232,212,5,5,193,205,5,5,32,202,5,5,199,215,5,5,249,213,5,5,146,197,5,5,246,208,5,5,252,249,5,5,180,212,5,5,85,168,5,5,233,212,5,5,147,232,5,5,242,235,5,5,146,248,5,5,220,201,5,5,230,198,5,5,57,199,5,5,209,224,5,5,73,200,5,5,133,180,5,5,113,210,5,5,21,176,5,5,46,249,5,5,51,246,5,5,214,169,5,5,19,211,5,5,158,249,5,5,58,176,5,5,44,225,5,5,11,180,5,5,166,214,5,5,118,215,5,5,167,248,5,5,59,192,5,5,100,242,5,5,209,195,5,5,212,186,5,5,88,207,5,5,119,173,5,5,125,226,5,5,12,231,5,5,62,203,5,5,199,225,5,5,137,186,5,5,107,177,5,5,221,222,5,5,216,245,5,5,194,205,5,5,28,208,5,5,195,205,5,5,29,190,5,5,24,171,5,5,142,184,5,5,180,200,5,5,26,199,5,5,148,182,5,5,163,230,5,5,15,210,5,5,154,228,5,5,221,243,5,5,222,189,5,5,166,178,5,5,2,232,5,5,64,213,5,5,190,191,5,5,109,203,5,5,47,182,5,5,225,207,5,5,110,198,5,5,78,240,5,5,213,178,5,5,64,203,5,5,160,187,5,5,91,232,5,5,178,180,5,5,123,227,5,5,14,229,5,5,122,249,5,5,127,184,5,5,255,218,5,5,159,192,5,5,196,181,5,5,39,198,5,5,34,174,5,5,24,226,5,5,153,244,5,5,9,190,5,5,72,237,5,5,203,180,5,5,202,231,5,5,209,241,5,5,46,199,5,5,135,221,5,5,221,190,5,5,76,229,5,5,128,184,5,5,80,245,5,5,213,172,5,5,87,216,5,5,196,221,5,5,40,189,5,5,5,200,5,5,126,226,5,5,160,209,5,5,3,216,5,5,4,216,5,5,120,189,5,5,59,227,5,5,182,176,5,5,132,190,5,5,45,238,5,5,248,208,5,5,68,194,5,5,187,180,5,5,62,194,5,5,162,223,5,5,6,200,5,5,204,189,5,5,33,235,5,5,65,181,5,5,117,195,5,5,218,245,5,5,179,170,5,5,92,247,5,5,49,249,5,5,105,234,5,5,241,237,5,5,194,207,5,5,2,212,5,5,0,144,5,5,160,195,5,5,170,215,5,5,174,207,5,5,161,224,5,5,147,177,5,5,80,169,5,5,204,231,5,5,21,203,5,5,162,224,5,5,122,198,5,5,167,204,5,5,169,237,5,5,49,238,5,5,127,211,5,5,213,229,5,5,228,218,5,5,131,225,5,5,163,224,5,5,204,215,5,5,190,202,5,5,51,223,5,5,22,176,5,5,226,171,5,5,24,212,5,5,118,177,5,5,17,170,5,5,202,219,5,5,22,185,5,5,50,249,5,5,44,230,5,5,146,240,5,5,251,190,5,5,158,226,5,5,168,204,5,5,111,198,5,5,127,224,5,5,37,220,5,5,204,223,5,5,157,228,5,5,139,188,5,5,16,246,5,5,17,246,5,5,58,201,5,5,138,239,5,5,222,242,5,5,144,225,5,5,24,211,5,5,64,231,5,5,71,193,5,5,108,185,5,5,188,206,5,5,134,197,5,5,183,223,5,5,214,249,5,5,164,224,5,5,221,231,5,5,106,183,5,5,151,229,5,5,221,209,5,5,137,205,5,5,165,224,5,5,209,211,5,5,202,249,5,5,156,227,5,5,108,234,5,5,235,186,5,5,87,235,5,5,65,203,5,5,113,222,5,5,157,168,5,5,12,207,5,5,137,209,5,5,118,206,5,5,148,170,5,5,127,229,5,5,170,204,5,5,245,178,5,5,185,219,5,5,147,249,5,5,175,238,5,5,206,205,5,5,127,168,5,5,47,199,5,5,205,215,5,5,23,177,5,5,95,214,5,5,147,173,5,5,94,225,5,5,30,207,5,5,211,240,5,5,92,173,5,5,107,183,5,5,110,196,5,5,9,171,5,5,222,222,5,5,65,205,5,5,135,234,5,5,184,176,5,5,238,204,5,5,227,243,5,5,74,194,5,5,147,172,5,5,43,202,5,5,223,231,5,5,31,231,5,5,169,198,5,5,8,223,5,5,5,170,5,5,67,245,5,5,171,215,5,5,81,174,5,5,211,205,5,5,47,190,5,5,163,192,5,5,31,214,5,5,140,191,5,5,231,215,5,5,211,213,5,5,250,203,5,5,3,220,5,5,136,234,5,5,186,219,5,5,82,174,5,5,44,200,5,5,99,223,5,5,172,204,5,5,75,210,5,5,226,190,5,5,123,213,5,5,104,224,5,5,106,182,5,5,33,216,5,5,203,217,5,5,75,237,5,5,95,225,5,5,237,232,5,5,255,197,5,5,187,194,5,5,11,250,5,5,148,203,5,5,89,216,5,5,99,201,5,5,238,180,5,5,241,233,5,5,201,243,5,5,76,192,5,5,254,193,5,5,95,247,5,5,197,178,5,5,246,235,5,5,174,240,5,5,214,180,5,5,2,198,5,5,128,211,5,5,202,243,5,5,48,214,5,5,189,226,5,5,107,182,5,5,83,174,5,5,246,179,5,5,150,220,5,5,91,198,5,5,188,193,5,5,246,182,5,5,105,224,5,5,139,205,5,5,136,197,5,5,143,191,5,5,122,242,5,5,26,203,5,5,243,248,5,5,8,216,5,5,78,194,5,5,247,248,5,5,172,201,5,5,160,170,5,5,190,226,5,5,138,190,5,5,52,238,5,5,49,181,5,5,195,187,5,5,63,178,5,5,121,197,5,5,48,183,5,5,149,177,5,5,205,169,5,5,156,239,5,5,31,168,5,5,132,249,5,5,224,235,5,5,173,179,5,5,69,248,5,5,20,189,5,5,172,248,5,5,85,192,5,5,37,211,5,5,214,188,5,5,244,191,5,5,183,216,5,5,76,171,5,5,102,240,5,5,46,200,5,5,70,211,5,5,177,234,5,5,79,194,5,5,80,194,5,5,141,215,5,5,232,172,5,5,64,247,5,5,221,208,5,5,55,202,5,5,176,201,5,5,87,192,5,5,225,249,5,5,224,199,5,5,179,220,5,5,192,212,5,5,154,200,5,5,151,180,5,5,53,223,5,5,91,176,5,5,23,206,5,5,17,171,5,5,146,169,5,5,140,205,5,5,158,232,5,5,161,199,5,5,2,205,5,5,206,181,5,5,108,205,5,5,237,233,5,5,81,194,5,5,31,201,5,5,235,171,5,5,196,193,5,5,225,237,5,5,60,173,5,5,187,232,5,5,82,194,5,5,43,231,5,5,243,186,5,5,132,172,5,5,41,211,5,5,208,201,5,5,252,176,5,5,169,217,5,5,44,212,5,5,130,206,5,5,217,249,5,5,48,206,5,5,11,244,5,5,43,211,5,5,16,198,5,5,150,225,5,5,4,248,5,5,250,200,5,5,164,195,5,5,139,184,5,5,183,238,5,5,173,245,5,5,232,179,5,5,69,245,5,5,202,213,5,5,154,203,5,5,132,227,5,5,44,215,5,5,229,175,5,5,80,220,5,5,138,219,5,5,82,182,5,5,154,179,5,5,219,207,5,5,144,211,5,5,50,237,5,5,244,172,5,5,33,234,5,5,173,184,5,5,21,172,5,5,255,224,5,5,73,197,5,5,13,181,5,5,178,173,5,5,80,247,5,5,233,209,5,5,172,169,5,5,10,185,5,5,22,169,5,5,95,215,5,5,203,237,5,5,94,216,5,5,24,198,5,5,32,230,5,5,249,185,5,5,181,198,5,5,144,182,5,5,201,191,5,5,67,227,5,5,90,211,5,5,205,168,5,5,30,242,5,5,98,215,5,5,33,246,5,5,99,215,5,5,86,186,5,5,152,171,5,5,211,198,5,5,221,213,5,5,249,171,5,5,190,171,5,5,22,243,5,5,215,249,5,5,197,209,5,5,60,225,5,5,102,193,5,5,108,179,5,5,41,241,5,5,183,226,5,5,191,171,5,5,57,204,5,5,41,223,5,5,52,215,5,5,99,207,5,5,129,169,5,5,42,222,5,5,71,235,5,5,177,224,5,5,73,170,5,5,128,210,5,5,217,212,5,5,38,181,5,5,37,234,5,5,193,198,5,5,113,201,5,5,252,181,5,5,54,207,5,5,239,235,5,5,76,241,5,5,111,174,5,5,83,193,5,5,237,237,5,5,64,210,5,5,251,246,5,5,53,178,5,5,18,227,5,5,242,205,5,5,160,179,5,5,186,239,5,5,97,198,5,5,147,244,5,5,214,247,5,5,77,231,5,5,2,180,5,5,16,180,5,5,242,231,5,5,37,190,5,5,221,217,5,5,27,220,5,5,200,187,5,5,161,179,5,5,155,185,5,5,33,209,5,5,40,246,5,5,235,219,5,5,207,194,5,5,76,238,5,5,73,173,5,5,41,175,5,5,84,225,5,5,67,168,5,5,234,239,5,5,18,219,5,5,56,248,5,5,88,201,5,5,49,214,5,5,64,230,5,5,178,200,5,5,212,225,5,5,55,203,5,5,41,199,5,5,14,233,5,5,154,224,5,5,74,202,5,5,116,244,5,5,116,175,5,5,153,187,5,5,77,185,5,5,112,181,5,5,125,234,5,5,103,177,5,5,59,206,5,5,93,183,5,5,228,233,5,5,184,204,5,5,89,198,5,5,223,193,5,5,92,219,5,5,242,225,5,5,50,201,5,5,150,216,5,5,237,196,5,5,0,129,5,5,190,215,5,5,155,245,5,5,175,211,5,5,105,177,5,5,82,207,5,5,213,169,5,5,150,214,5,5,163,178,5,5,9,199,5,5,63,200,5,5,118,173,5,5,234,230,5,5,135,186,5,5,111,206,5,5,19,176,5,5,145,248,5,5,198,195,5,5,17,247,5,5,245,231,5,5,144,197,5,5,187,191,5,5,110,212,5,5,33,225,5,5,6,180,5,5,41,194,5,5,96,197,5,5,23,208,5,5,34,249,5,5,82,216,5,5,65,240,5,5,109,198,5,5,197,215,5,5,83,223,5,5,182,181,5,5,210,172,5,5,247,215,5,5,87,247,5,5,199,180,5,5,200,223,5,5,208,190,5,5,123,190,5,5,0,142,5,5,175,180,5,5,190,207,5,5,62,205,5,5,38,249,5,5,238,182,5,5,168,207,5,5,129,209,5,5,13,246,5,5,217,171,5,5,135,185,5,5,14,211,5,5,143,225,5,5,133,197,5,5,15,211,5,5,220,209,5,5,153,204,5,5,64,185,5,5,77,169,5,5,97,239,5,5,67,193,5,5,64,171,5,5,220,218,5,5,252,170,5,5,92,225,5,5,28,207,5,5,114,206,5,5,3,170,5,5,207,240,5,5,107,196,5,5,211,178,5,5,201,249,5,5,82,235,5,5,159,204,5,5,42,173,5,5,242,197,5,5,171,203,5,5,28,214,5,5,130,205,5,5,233,180,5,5,227,200,5,5,45,214,5,5,248,176,5,5,202,215,5,5,195,178,5,5,232,191,5,5,164,201,5,5,133,190,5,5,242,248,5,5,22,203,5,5,139,239,5,5,231,172,5,5,11,171,5,5,151,200,5,5,57,173,5,5,185,232,5,5,41,245,5,5,129,173,5,5,178,196,5,5,135,168,5,5,203,179,5,5,118,217,5,5,160,203,5,5,63,208,5,5,40,245,5,5,220,207,5,5,194,206,5,5,238,222,5,5,110,220,5,5,214,191,5,5,221,207,5,5,105,236,5,5,80,170,5,5,39,188,5,5,81,170,5,5,91,220,5,5,90,198,5,5,183,198,5,5,238,169,5,5,77,189,5,5,103,219,5,5,191,219,5,5,38,232,5,5,39,232,5,5,151,193,5,5,10,209,5,5,161,231,5,5,24,223,5,5,103,180,5,5,150,244,5,5,94,210,5,5,211,244,5,5,151,212,5,5,208,231,5,5,82,204,5,5,217,170,5,5,110,170,5,5,104,219,5,5,15,168,5,5,194,186,5,5,132,185,5,5,133,185,5,5,41,182,5,5,180,175,5,5,97,189,5,5,47,187,5,5,14,209,5,5,228,219,5,5,91,200,5,5,73,201,5,5,221,205,5,5,227,226,5,5,55,220,5,5,17,197,5,5,32,243,5,5,33,243,5,5,84,173,5,5,188,217,5,5,26,204,5,5,120,173,5,5,66,220,5,5,92,200,5,5,74,236,5,5,179,229,5,5,121,236,5,5,194,181,5,5,160,191,5,5,101,242,5,5,180,229,5,5,104,189,5,5,94,169,5,5,102,189,5,5,190,217,5,5,196,237,5,5,182,229,5,5,28,169,5,5,86,168,5,5,15,229,5,5,209,239,5,5,112,200,5,5,40,218,5,5,228,200,5,5,119,180,5,5,240,217,5,5,104,183,5,5,106,226,5,5,25,211,5,5,214,224,5,5,112,198,5,5,208,188,5,5,42,218,5,5,250,175,5,5,198,186,5,5,108,180,5,5,216,214,5,5,235,199,5,5,133,225,5,5,200,186,5,5,102,213,5,5,154,198,5,5,152,231,5,5,141,191,5,5,93,173,5,5,55,213,5,5,102,178,5,5,139,190,5,5,217,224,5,5,184,229,5,5,183,224,5,5,216,207,5,5,236,222,5,5,106,220,5,5,83,236,5,5,26,188,5,5,47,170,5,5,197,229,5,5,246,175,5,5,101,219,5,5,238,228,5,5,18,232,5,5,51,189,5,5,129,193,5,5,252,208,5,5,157,198,5,5,228,207,5,5,145,244,5,5,91,210,5,5,30,187,5,5,164,229,5,5,195,224,5,5,3,209,5,5,219,205,5,5,96,198,5,5,33,182,5,5,114,185,5,5,169,188,5,5,81,200,5,5,154,196,5,5,23,243,5,5,39,201,5,5,115,180,5,5,43,242,5,5,63,236,5,5,113,173,5,5,123,231,5,5,169,229,5,5,154,191,5,5,106,236,5,5,162,181,5,5,74,173,5,5,213,200,5,5,185,217,5,5,89,191,5,5,106,200,5,5,26,218,5,5,197,188,5,5,99,226,5,5,141,177,5,5,15,218,5,5,20,188,5,5,129,190,5,5,82,184,5,5,72,184,5,5,134,201,5,5,216,180,5,5,243,233,5,5,27,215,5,5,115,230,5,5,171,184,5,5,196,246,5,5,169,239,5,5,40,237,5,5,83,180,5,5,136,181,5,5,112,221,5,5,15,169,5,5,105,212,5,5,33,199,5,5,97,243,5,5,64,219,5,5,164,246,5,5,241,212,5,5,48,196,5,5,150,182,5,5,41,237,5,5,170,239,5,5,245,245,5,5,27,195,5,5,51,174,5,5,140,181,5,5,93,217,5,5,253,178,5,5,204,249,5,5,35,250,5,5,102,179,5,5,113,204,5,5,0,128,5,5,243,227,5,5,244,227,5,5,147,169,5,5,101,171,5,5,78,184,5,5,202,192,5,5,143,205,5,5,6,205,5,5,254,173,5,5,27,234,5,5,71,181,5,5,58,205,5,5,96,209,5,5,130,194,5,5,123,222,5,5,72,181,5,5,111,232,5,5,223,181,5,5,73,187,5,5,119,241,5,5,150,184,5,5,107,220,5,5,46,198,5,5,42,216,5,5,34,234,5,5,42,176,5,5,92,184,5,5,66,170,5,5,176,231,5,5,109,220,5,5,126,221,5,5,222,246,5,5,5,214,5,5,86,180,5,5,239,242,5,5,250,245,5,5,110,175,5,5,115,232,5,5,116,178,5,5,248,210,5,5,101,243,5,5,70,232,5,5,106,212,5,5,232,182,5,5,166,249,5,5,30,239,5,5,224,180,5,5,75,206,5,5,182,239,5,5,224,196,5,5,11,176,5,5,6,174,5,5,253,212,5,5,58,204,5,5,185,225,5,5,123,232,5,5,152,205,5,5,128,221,5,5,76,232,5,5,187,239,5,5,10,248,5,5,59,237,5,5,181,218,5,5,185,231,5,5,32,175,5,5,217,236,5,5,188,239,5,5,206,222,5,5,207,178,5,5,160,241,5,5,222,204,5,5,204,228,5,5,205,228,5,5,2,211,5,5,225,180,5,5,63,224,5,5,68,168,5,5,190,190,5,5,35,195,5,5,64,224,5,5,7,240,5,5,179,184,5,5,166,236,5,5,18,191,5,5,124,185,5,5,106,243,5,5,141,230,5,5,242,199,5,5,6,168,5,5,128,231,5,5,110,225,5,5,240,192,5,5,59,245,5,5,122,178,5,5,105,168,5,5,134,231,5,5,11,240,5,5,144,219,5,5,109,218,5,5,230,203,5,5,169,227,5,5,190,178,5,5,228,194,5,5,85,224,5,5,66,224,5,5,151,168,5,5,86,232,5,5,33,183,5,5,162,210,5,5,236,181,5,5,60,192,5,5,127,178,5,5,61,231,5,5,20,240,5,5,41,247,5,5,34,191,5,5,12,205,5,5,32,231,5,5,111,202,5,5,174,202,5,5,181,202,5,5,142,248,5,5,175,189,5,5,104,246,5,5,121,224,5,5,155,197,5,5,26,210,5,5,49,239,5,5,23,218,5,5,226,236,5,5,124,216,5,5,60,215,5,5,79,234,5,5,19,236,5,5,131,192,5,5,132,186,5,5,118,190,5,5,18,247,5,5,35,186,5,5,162,197,5,5,117,176,5,5,195,240,5,5,239,196,5,5,123,175,5,5,162,189,5,5,166,243,5,5,158,206,5,5,199,241,5,5,73,175,5,5,142,179,5,5,61,224,5,5,61,188,5,5,16,230,5,5,244,222,5,5,233,186,5,5,135,175,5,5,169,243,5,5,210,240,5,5,71,192,5,5,25,231,5,5,80,175,5,5,203,204,5,5,39,202,5,5,32,210,5,5,115,235,5,5,172,243,5,5,168,192,5,5,169,192,5,5,227,241,5,5,161,241,5,5,117,235,5,5,224,209,5,5,159,183,5,5,236,219,5,5,199,209,5,5,170,229,5,5,13,183,5,5,48,212,5,5,83,243,5,5,153,202,5,5,248,174,5,5,35,237,5,5,83,204,5,5,155,201,5,5,61,168,5,5,98,169,5,5,148,230,5,5,116,179,5,5,88,178,5,5,253,189,5,5,149,230,5,5,166,179,5,5,164,234,5,5,250,192,5,5,210,209,5,5,20,174,5,5,26,233,5,5,180,244,5,5,228,226,5,5,14,246,5,5,130,212,5,5,171,207,5,5,87,204,5,5,92,214,5,5,152,247,5,5,227,191,5,5,56,220,5,5,193,182,5,5,88,189,5,5,217,244,5,5,206,239,5,5,142,210,5,5,67,248,5,5,212,227,5,5,240,203,5,5,92,204,5,5,73,180,5,5,79,240,5,5,156,230,5,5,98,204,5,5,243,222,5,5,99,204,5,5,203,231,5,5,90,189,5,5,210,239,5,5,234,206,5,5,235,206,5,5,112,243,5,5,201,204,5,5,36,208,5,5,74,171,5,5,158,230,5,5,128,229,5,5,116,200,5,5,250,239,5,5,65,231,5,5,143,239,5,5,0,165,5,5,48,178,5,5,239,225,5,5,156,232,5,5,123,242,5,5,212,205,5,5,239,204,5,5,208,177,5,5,164,192,5,5,51,212,5,5,77,237,5,5,221,168,5,5,239,212,5,5,20,229,5,5,112,183,5,5,153,231,5,5,30,193,5,5,214,206,5,5,14,208,5,5,15,208,5,5,177,201,5,5,224,202,5,5,245,191,5,5,0,166,5,5,247,182,5,5,211,177,5,5,3,205,5,5,108,204,5,5,33,168,5,5,114,183,5,5,227,202,5,5,123,169,5,5,239,188,5,5,240,188,5,5,242,188,5,5,139,171,5,5,166,216,5,5,167,216,5,5,97,196,5,5,79,226,5,5,204,245,5,5,99,196,5,5,68,174,5,5,215,216,5,5,104,196,5,5,105,196,5,5,122,179,5,5,108,196,5,5,81,226,5,5,178,182,5,5,189,182,5,5,197,198,5,5,59,208,5,5,170,208,5,5,169,208,5,5,136,169,5,5,35,238,5,5,127,226,5,5,144,191,5,5,53,238,5,5,115,185,5,5,237,179,5,5,223,172,5,5,107,215,5,5,171,218,5,5,227,178,5,5,174,180,5,5,142,230,5,5,172,218,5,5,129,216,5,5,237,195,5,5,93,235,5,5,94,211,5,5,207,168,5,5,12,240,5,5,132,219,5,5,243,209,5,5,123,209,5,5,213,249,5,5,142,177,5,5,43,169,5,5,86,239,5,5,211,237,5,5,195,225,5,5,198,169,5,5,49,195,5,5,83,189,5,5,84,212,5,5,36,237,5,5,120,171,5,5,204,239,5,5,136,185,5,5,197,225,5,5,112,195,5,5,133,233,5,5,50,168,5,5,51,168,5,5,249,188,5,5,238,185,5,5,15,215,5,5,144,177,5,5,24,216,5,5,207,226,5,5,248,206,5,5,182,240,5,5,60,224,5,5,154,226,5,5,53,216,5,5,83,235,5,5,62,199,5,5,251,169,5,5,212,224,5,5,187,220,5,5,123,171,5,5,113,200,5,5,248,196,5,5,156,200,5,5,202,233,5,5,2,219,5,5,58,169,5,5,217,181,5,5,24,217,5,5,25,217,5,5,209,188,5,5,57,216,5,5,213,209,5,5,249,196,5,5,176,193,5,5,182,170,5,5,214,178,5,5,181,193,5,5,154,229,5,5,176,225,5,5,5,186,5,5,215,224,5,5,204,169,5,5,138,233,5,5,25,212,5,5,145,185,5,5,153,170,5,5,117,200,5,5,96,225,5,5,48,205,5,5,121,187,5,5,34,216,5,5,97,235,5,5,80,192,5,5,192,193,5,5,110,194,5,5,104,173,5,5,150,177,5,5,14,190,5,5,100,232,5,5,88,215,5,5,152,180,5,5,70,228,5,5,197,193,5,5,251,200,5,5,242,228,5,5,173,218,5,5,22,184,5,5,211,207,5,5,10,218,5,5,137,185,5,5,71,229,5,5,54,216,5,5,13,188,5,5,172,173,5,5,114,200,5,5,8,219,5,5,141,243,5,5,7,221,5,5,80,229,5,5,143,185,5,5,253,168,5,5,177,225,5,5,6,186,5,5,142,243,5,5,49,185,5,5,154,170,5,5,82,229,5,5,106,224,5,5,149,180,5,5,71,228,5,5,153,180,5,5,232,228,5,5,157,218,5,5,237,183,5,5,6,188,5,5,61,229,5,5,128,243,5,5,169,225,5,5,175,196,5,5,179,196,5,5,252,231,5,5,196,233,5,5,5,232,5,5,73,192,5,5,177,239,5,5,165,243,5,5,129,243,5,5,211,220,5,5,146,201,5,5,181,212,5,5,225,190,5,5,85,240,5,5,144,243,5,5,188,212,5,5,57,168,5,5,211,239,5,5,214,232,5,5,15,190,5,5,8,238,5,5,240,179,5,5,204,216,5,5,243,199,5,5,228,232,5,5,28,223,5,5,233,187,5,5,158,234,5,5,154,238,5,5,161,234,5,5,127,181,5,5,181,223,5,5,16,200,5,5,151,214,5,5,82,188,5,5,73,242,5,5,109,228,5,5,8,169,5,5,18,181,5,5,236,178,5,5,233,177,5,5,40,212,5,5,209,213,5,5,117,204,5,5,231,173,5,5,60,196,5,5,218,201,5,5,202,188,5,5,249,215,5,5,187,181,5,5,117,181,5,5,72,229,5,5,134,233,5,5,108,200,5,5,82,221,5,5,166,238,5,5,167,238,5,5,208,187,5,5,215,180,5,5,253,241,5,5,160,213,5,5,219,201,5,5,68,184,5,5,92,193,5,5,65,227,5,5,123,191,5,5,2,200,5,5,93,193,5,5,101,206,5,5,246,226,5,5,75,174,5,5,171,240,5,5,61,243,5,5,202,189,5,5,57,188,5,5,68,196,5,5,171,227,5,5,172,227,5,5,138,213,5,5,193,200,5,5,173,227,5,5,53,249,5,5,52,249,5,5,23,176,5,5,13,180,5,5,194,200,5,5,48,225,5,5,58,188,5,5,75,215,5,5,232,198,5,5,54,177,5,5,61,235,5,5,104,216,5,5,171,238,5,5,159,219,5,5,27,226,5,5,120,181,5,5,199,181,5,5,123,236,5,5,205,229,5,5,145,198,5,5,222,240,5,5,93,248,5,5,124,236,5,5,93,232,5,5,254,233,5,5,215,238,5,5,252,242,5,5,203,219,5,5,78,179,5,5,79,179,5,5,125,194,5,5,234,199,5,5,223,201,5,5,100,201,5,5,109,213,5,5,80,228,5,5,253,206,5,5,244,176,5,5,174,237,5,5,142,188,5,5,35,216,5,5,140,186,5,5,223,235,5,5,189,236,5,5,146,191,5,5,105,173,5,5,39,219,5,5,17,208,5,5,77,171,5,5,101,232,5,5,145,213,5,5,109,205,5,5,20,201,5,5,42,211,5,5,251,217,5,5,254,237,5,5,239,179,5,5,201,216,5,5,229,187,5,5,221,232,5,5,26,223,5,5,145,234,5,5,148,234,5,5,105,228,5,5,124,186,5,5,14,181,5,5,124,214,5,5,4,169,5,5,179,223,5,5,78,188,5,5,31,242,5,5,83,205,5,5,116,204,5,5,223,213,5,5,57,196,5,5,90,195,5,5,87,193,5,5,244,226,5,5,189,188,5,5,163,240,5,5,136,196,5,5,216,198,5,5,155,238,5,5,137,213,5,5,97,191,5,5,168,227,5,5,44,188,5,5,164,240,5,5,165,240,5,5,225,198,5,5,18,226,5,5,221,240,5,5,188,181,5,5,89,248,5,5,118,236,5,5,118,181,5,5,20,211,5,5,237,206,5,5,75,179,5,5,201,219,5,5,140,188,5,5,222,201,5,5,101,173,5,5,37,219,5,5,144,213,5,5,250,217,5,5,83,183,5,5,239,170,5,5,149,186,5,5,17,184,5,5,163,231,5,5,243,244,5,5,245,170,5,5,146,219,5,5,200,168,5,5,239,224,5,5,202,203,5,5,155,186,5,5,84,235,5,5,203,220,5,5,115,197,5,5,2,171,5,5,97,223,5,5,81,229,5,5,74,237,5,5,171,237,5,5,206,223,5,5,113,198,5,5,207,223,5,5,69,182,5,5,171,204,5,5,67,231,5,5,204,204,5,5,96,213,5,5,97,213,5,5,174,204,5,5,12,171,5,5,13,171,5,5,14,171,5,5,151,203,5,5,15,171,5,5,5,220,5,5,115,183,5,5,111,234,5,5,70,183,5,5,45,237,5,5,232,244,5,5,232,170,5,5,139,219,5,5,93,197,5,5,75,223,5,5,198,223,5,5,158,237,5,5,148,204,5,5,91,213,5,5,253,170,5,5,254,170,5,5,179,182,5,5,71,182,5,5,199,182,5,5,176,182,5,5,219,221,5,5,212,221,5,5,75,172,5,5,18,192,5,5,253,179,5,5,126,223,5,5,238,227,5,5,206,244,5,5,111,224,5,5,205,232,5,5,209,227,5,5,174,218,5,5,60,242,5,5,165,197,5,5,242,174,5,5,13,240,5,5,131,182,5,5,132,182,5,5,115,224,5,5,10,240,5,5,70,227,5,5,156,238,5,5,49,250,5,5,111,170,5,5,129,195,5,5,170,225,5,5,112,169,5,5,121,176,5,5,193,226,5,5,137,223,5,5,113,169,5,5,65,222,5,5,84,181,5,5,223,187,5,5,176,218,5,5,122,226,5,5,222,194,5,5,90,193,5,5,121,171,5,5,159,237,5,5,30,227,5,5,122,176,5,5,208,232,5,5,95,237,5,5,168,197,5,5,254,181,5,5,239,236,5,5,153,201,5,5,244,230,5,5,82,172,5,5,166,171,5,5,107,210,5,5,189,181,5,5,35,172,5,5,65,198,5,5,106,180,5,5,24,224,5,5,200,241,5,5,72,222,5,5,165,237,5,5,169,191,5,5,194,187,5,5,73,222,5,5,63,194,5,5,168,248,5,5,122,171,5,5,148,232,5,5,37,172,5,5,40,238,5,5,45,225,5,5,195,182,5,5,34,245,5,5,119,229,5,5,213,186,5,5,195,181,5,5,157,211,5,5,139,243,5,5,205,189,5,5,222,190,5,5,194,226,5,5,129,191,5,5,177,193,5,5,121,189,5,5,25,168,5,5,130,225,5,5,15,183,5,5,123,229,5,5,116,186,5,5,214,172,5,5,184,223,5,5,132,225,5,5,227,171,5,5,47,185,5,5,148,231,5,5,40,200,5,5,202,204,5,5,205,223,5,5,202,225,5,5,50,238,5,5,152,229,5,5,76,209,5,5,134,225,5,5,251,206,5,5,149,170,5,5,119,242,5,5,109,234,5,5,211,195,5,5,187,219,5,5,45,200,5,5,115,248,5,5,151,220,5,5,6,175,5,5,49,178,5,5,154,239,5,5,77,192,5,5,107,218,5,5,84,174,5,5,215,240,5,5,178,225,5,5,131,229,5,5,215,232,5,5,224,244,5,5,16,183,5,5,226,187,5,5,16,208,5,5,12,237,5,5,83,209,5,5,61,173,5,5,216,232,5,5,131,206,5,5,236,243,5,5,51,210,5,5,202,221,5,5,249,179,5,5,252,191,5,5,223,227,5,5,98,225,5,5,205,227,5,5,108,231,5,5,158,218,5,5,18,242,5,5,228,174,5,5,119,182,5,5,4,240,5,5,11,194,5,5,22,222,5,5,102,169,5,5,118,223,5,5,73,181,5,5,116,238,5,5,248,181,5,5,101,218,5,5,203,232,5,5,170,188,5,5,152,201,5,5,199,194,5,5,187,230,5,5,110,171,5,5,153,171,5,5,96,180,5,5,153,181,5,5,157,241,5,5,104,210,5,5,51,198,5,5,184,187,5,5,164,191,5,5,127,232,5,5,205,186,5,5,208,172,5,5,28,200,5,5,97,186,5,5,196,223,5,5,23,173,5,5,24,238,5,5,62,209,5,5,205,171,5,5,144,204,5,5,100,234,5,5,205,195,5,5,244,206,5,5,180,219,5,5,110,248,5,5,49,210,5,5,95,222,5,5,244,199,5,5,178,187,5,5,162,232,5,5,32,183,5,5,213,171,5,5,159,210,5,5,122,170,5,5,218,171,5,5,122,227,5,5,237,187,5,5,196,182,5,5,178,193,5,5,54,168,5,5,28,168,5,5,131,184,5,5,8,232,5,5,62,243,5,5,236,233,5,5,49,183,5,5,129,213,5,5,238,233,5,5,182,206,5,5,61,242,5,5,124,183,5,5,45,188,5,5,229,178,5,5,7,228,5,5,136,245,5,5,194,174,5,5,183,235,5,5,59,248,5,5,115,246,5,5,128,212,5,5,253,233,5,5,188,218,5,5,145,219,5,5,109,243,5,5,173,229,5,5,145,246,5,5,33,178,5,5,222,205,5,5,55,241,5,5,214,171,5,5,115,169,5,5,225,197,5,5,9,228,5,5,87,239,5,5,115,217,5,5,174,229,5,5,119,217,5,5,120,196,5,5,224,213,5,5,78,245,5,5,163,242,5,5,114,212,5,5,192,247,5,5,101,197,5,5,65,248,5,5,134,211,5,5,245,196,5,5,229,212,5,5,249,243,5,5,122,193,5,5,88,204,5,5,240,245,5,5,240,224,5,5,121,184,5,5,96,237,5,5,253,221,5,5,128,170,5,5,10,228,5,5,11,228,5,5,139,223,5,5,154,204,5,5,204,206,5,5,77,213,5,5,200,225,5,5,42,247,5,5,223,218,5,5,229,225,5,5,72,180,5,5,145,235,5,5,202,217,5,5,54,221,5,5,121,196,5,5,255,181,5,5,224,187,5,5,219,171,5,5,226,247,5,5,207,239,5,5,159,206,5,5,153,247,5,5,42,178,5,5,225,187,5,5,162,204,5,5,22,197,5,5,174,223,5,5,105,216,5,5,58,207,5,5,59,201,5,5,59,188,5,5,124,227,5,5,34,235,5,5,190,227,5,5,68,198,5,5,129,181,5,5,143,174,5,5,20,234,5,5,0,155,5,5,202,205,5,5,147,248,5,5,157,247,5,5,8,221,5,5,78,213,5,5,75,200,5,5,203,225,5,5,181,200,5,5,125,249,5,5,15,199,5,5,175,214,5,5,176,214,5,5,249,236,5,5,197,182,5,5,216,219,5,5,250,236,5,5,146,185,5,5,197,237,5,5,161,230,5,5,85,213,5,5,185,176,5,5,86,213,5,5,123,215,5,5,198,182,5,5,227,190,5,5,121,215,5,5,193,191,5,5,215,241,5,5,30,226,5,5,243,217,5,5,206,231,5,5,127,249,5,5,7,200,5,5,4,219,5,5,98,223,5,5,157,186,5,5,16,228,5,5,61,187,5,5,208,223,5,5,84,215,5,5,135,174,5,5,56,247,5,5,173,204,5,5,190,212,5,5,233,225,5,5,68,231,5,5,152,172,5,5,144,180,5,5,5,237,5,5,225,242,5,5,178,249,5,5,217,219,5,5,152,220,5,5,188,214,5,5,60,247,5,5,248,222,5,5,213,205,5,5,69,231,5,5,121,206,5,5,36,245,5,5,139,209,5,5,158,168,5,5,84,172,5,5,16,171,5,5,186,176,5,5,130,217,5,5,158,170,5,5,61,247,5,5,125,242,5,5,176,234,5,5,48,190,5,5,169,171,5,5,33,224,5,5,49,233,5,5,252,203,5,5,17,245,5,5,255,180,5,5,177,204,5,5,18,228,5,5,196,172,5,5,125,179,5,5,188,194,5,5,191,226,5,5,13,237,5,5,127,206,5,5,226,244,5,5,44,196,5,5,161,239,5,5,54,238,5,5,240,227,5,5,130,213,5,5,199,247,5,5,18,237,5,5,4,205,5,5,228,205,5,5,238,225,5,5,188,232,5,5,34,193,5,5,254,222,5,5,31,197,5,5,72,231,5,5,106,190,5,5,59,202,5,5,18,171,5,5,178,206,5,5,11,242,5,5,241,227,5,5,163,235,5,5,178,174,5,5,94,217,5,5,184,218,5,5,175,171,5,5,218,205,5,5,248,243,5,5,246,221,5,5,119,223,5,5,83,184,5,5,217,196,5,5,163,249,5,5,34,248,5,5,251,227,5,5,132,211,5,5,115,193,5,5,5,239,5,5,178,177,5,5,246,232,5,5,195,206,5,5,178,239,5,5,160,194,5,5,33,190,5,5,147,206,5,5,219,187,5,5,66,213,5,5,233,170,5,5,250,201,5,5,140,174,5,5,213,236,5,5,6,234,5,5,96,216,5,5,52,198,5,5,137,214,5,5,138,214,5,5,5,199,5,5,144,248,5,5,100,249,5,5,249,223,5,5,76,172,5,5,83,213,5,5,7,247,5,5,248,199,5,5,210,219,5,5,143,230,5,5,150,168,5,5,145,204,5,5,65,215,5,5,129,220,5,5,246,170,5,5,113,206,5,5,168,176,5,5,85,173,5,5,195,247,5,5,23,193,5,5,246,222,5,5,181,232,5,5,81,186,5,5,45,229,5,5,52,229,5,5,53,229,5,5,178,241,5,5,244,184,5,5,62,239,5,5,90,168,5,5,63,227,5,5,155,195,5,5,137,169,5,5,199,169,5,5,98,176,5,5,39,226,5,5,14,179,5,5,99,199,5,5,209,187,5,5,250,215,5,5,118,189,5,5,130,199,5,5,138,185,5,5,182,227,5,5,196,185,5,5,75,213,5,5,144,170,5,5,233,198,5,5,24,215,5,5,211,241,5,5,70,224,5,5,47,205,5,5,230,171,5,5,42,233,5,5,64,169,5,5,231,171,5,5,99,176,5,5,160,199,5,5,86,171,5,5,80,209,5,5,149,203,5,5,49,205,5,5,46,233,5,5,150,180,5,5,246,243,5,5,71,224,5,5,42,226,5,5,88,171,5,5,162,199,5,5,110,205,5,5,35,185,5,5,37,185,5,5,49,216,5,5,185,198,5,5,39,216,5,5,101,201,5,5,227,219,5,5,234,170,5,5,60,200,5,5,64,200,5,5,230,178,5,5,171,182,5,5,103,234,5,5,64,218,5,5,83,207,5,5,34,178,5,5,69,200,5,5,81,171,5,5,51,182,5,5,155,226,5,5,230,212,5,5,47,249,5,5,53,182,5,5,66,218,5,5,65,226,5,5,139,169,5,5,129,170,5,5,87,207,5,5,26,184,5,5,237,181,5,5,224,218,5,5,121,217,5,5,226,185,5,5,104,234,5,5,109,200,5,5,7,193,5,5,182,212,5,5,74,248,5,5,204,220,5,5,145,224,5,5,68,226,5,5,182,202,5,5,83,171,5,5,126,249,5,5,244,178,5,5,185,212,5,5,163,223,5,5,53,246,5,5,242,217,5,5,128,249,5,5,33,223,5,5,249,193,5,5,29,228,5,5,208,189,5,5,149,200,5,5,163,196,5,5,187,214,5,5,25,203,5,5,242,245,5,5,87,171,5,5,191,212,5,5,206,206,5,5,174,219,5,5,254,206,5,5,255,206,5,5,11,220,5,5,178,234,5,5,210,203,5,5,86,215,5,5,85,215,5,5,48,210,5,5,140,190,5,5,118,200,5,5,71,211,5,5,89,171,5,5,211,203,5,5,88,218,5,5,97,180,5,5,105,180,5,5,95,210,5,5,103,189,5,5,149,231,5,5,110,180,5,5,22,188,5,5,112,180,5,5,111,180,5,5,164,196,5,5,164,173,5,5,134,242,5,5,135,242,5,5,118,185,5,5,245,236,5,5,69,184,5,5,142,216,5,5,60,187,5,5,129,249,5,5,205,204,5,5,63,187,5,5,172,220,5,5,126,242,5,5,80,187,5,5,208,207,5,5,241,192,5,5,152,214,5,5,146,184,5,5,253,199,5,5,168,191,5,5,201,168,5,5,238,213,5,5,212,207,5,5,165,234,5,5,174,236,5,5,30,233,5,5,95,203,5,5,108,242,5,5,174,227,5,5,94,214,5,5,190,228,5,5,96,203,5,5,124,229,5,5,214,184,5,5,171,174,5,5,98,213,5,5,155,170,5,5,81,209,5,5,189,192,5,5,175,234,5,5,97,175,5,5,194,236,5,5,227,244,5,5,162,241,5,5,112,178,5,5,127,218,5,5,101,195,5,5,185,168,5,5,84,189,5,5,239,227,5,5,167,179,5,5,184,192,5,5,248,234,5,5,119,181,5,5,183,181,5,5,35,220,5,5,83,188,5,5,211,227,5,5,130,209,5,5,159,195,5,5,83,221,5,5,27,169,5,5,214,242,5,5,14,213,5,5,126,205,5,5,175,229,5,5,198,189,5,5,86,205,5,5,157,243,5,5,156,182,5,5,38,183,5,5,244,209,5,5,58,241,5,5,84,213,5,5,68,209,5,5,206,188,5,5,200,231,5,5,122,217,5,5,12,188,5,5,234,212,5,5,93,204,5,5,13,228,5,5,167,171,5,5,80,217,5,5,198,213,5,5,31,184,5,5,139,170,5,5,136,176,5,5,120,229,5,5,246,196,5,5,143,179,5,5,218,168,5,5,60,241,5,5,138,187,5,5,235,212,5,5,195,210,5,5,17,234,5,5,242,224,5,5,141,169,5,5,125,184,5,5,164,244,5,5,106,197,5,5,70,186,5,5,235,221,5,5,38,180,5,5,212,177,5,5,213,224,5,5,118,195,5,5,152,222,5,5,137,189,5,5,212,232,5,5,238,181,5,5,87,168,5,5,16,229,5,5,107,245,5,5,227,247,5,5,43,240,5,5,204,203,5,5,160,206,5,5,42,227,5,5,40,226,5,5,133,239,5,5,138,171,5,5,77,229,5,5,181,194,5,5,100,199,5,5,56,187,5,5,6,232,5,5,141,185,5,5,55,191,5,5,118,201,5,5,34,184,5,5,198,198,5,5,106,234,5,5,48,181,5,5,40,198,5,5,28,226,5,5,168,208,5,5,205,220,5,5,165,244,5,5,146,224,5,5,106,216,5,5,212,241,5,5,108,210,5,5,147,245,5,5,139,187,5,5,197,185,5,5,228,223,5,5,71,230,5,5,82,217,5,5,103,220,5,5,10,214,5,5,177,190,5,5,157,226,5,5,83,202,5,5,38,220,5,5,39,220,5,5,199,198,5,5,9,208,5,5,132,174,5,5,40,202,5,5,183,249,5,5,26,231,5,5,254,240,5,5,57,221,5,5,54,249,5,5,179,214,5,5,54,246,5,5,213,232,5,5,109,210,5,5,59,176,5,5,24,193,5,5,147,179,5,5,88,216,5,5,139,186,5,5,169,247,5,5,40,180,5,5,182,200,5,5,245,182,5,5,144,210,5,5,144,239,5,5,76,200,5,5,207,205,5,5,204,196,5,5,122,173,5,5,39,196,5,5,91,206,5,5,102,204,5,5,176,249,5,5,44,202,5,5,31,208,5,5,130,249,5,5,57,247,5,5,199,210,5,5,223,189,5,5,216,241,5,5,15,179,5,5,197,221,5,5,59,221,5,5,178,190,5,5,31,226,5,5,122,189,5,5,22,234,5,5,232,247,5,5,152,200,5,5,131,249,5,5,93,244,5,5,183,170,5,5,184,170,5,5,179,190,5,5,246,217,5,5,95,244,5,5,229,228,5,5,230,228,5,5,218,241,5,5,39,176,5,5,5,219,5,5,220,179,5,5,228,190,5,5,67,203,5,5,182,236,5,5,27,217,5,5,28,217,5,5,250,193,5,5,18,170,5,5,202,181,5,5,76,237,5,5,132,184,5,5,160,219,5,5,231,184,5,5,166,231,5,5,30,228,5,5,209,189,5,5,85,222,5,5,122,219,5,5,41,235,5,5,155,229,5,5,169,215,5,5,143,188,5,5,45,230,5,5,157,182,5,5,218,219,5,5,175,204,5,5,189,206,5,5,239,221,5,5,198,221,5,5,201,186,5,5,57,249,5,5,235,225,5,5,191,224,5,5,175,237,5,5,124,181,5,5,223,240,5,5,125,215,5,5,189,214,5,5,156,229,5,5,123,219,5,5,65,221,5,5,27,203,5,5,128,168,5,5,150,201,5,5,37,191,5,5,22,209,5,5,31,193,5,5,160,226,5,5,131,217,5,5,193,193,5,5,60,221,5,5,2,207,5,5,71,231,5,5,83,217,5,5,28,171,5,5,32,193,5,5,28,193,5,5,251,247,5,5,111,194,5,5,110,234,5,5,94,248,5,5,216,240,5,5,37,245,5,5,170,198,5,5,123,235,5,5,32,171,5,5,128,242,5,5,132,217,5,5,238,232,5,5,170,171,5,5,246,194,5,5,194,235,5,5,34,224,5,5,229,190,5,5,13,250,5,5,155,220,5,5,156,220,5,5,72,182,5,5,122,187,5,5,253,203,5,5,195,235,5,5,185,208,5,5,100,231,5,5,115,244,5,5,186,232,5,5,68,183,5,5,203,186,5,5,138,189,5,5,155,199,5,5,96,244,5,5,219,219,5,5,228,244,5,5,233,184,5,5,123,187,5,5,183,240,5,5,88,202,5,5,148,173,5,5,179,201,5,5,184,222,5,5,32,168,5,5,40,219,5,5,33,193,5,5,253,234,5,5,16,190,5,5,185,222,5,5,225,202,5,5,212,203,5,5,226,202,5,5,222,208,5,5,220,245,5,5,217,232,5,5,208,181,5,5,111,205,5,5,244,186,5,5,60,202,5,5,16,232,5,5,142,241,5,5,111,178,5,5,179,192,5,5,49,241,5,5,210,227,5,5,119,205,5,5,155,182,5,5,184,168,5,5,198,188,5,5,215,168,5,5,192,213,5,5,194,210,5,5,85,205,5,5,53,241,5,5,161,244,5,5,111,184,5,5,216,168,5,5,135,169,5,5,135,189,5,5,10,213,5,5,236,224,5,5,48,187,5,5,107,195,5,5,196,198,5,5,65,229,5,5,235,181,5,5,31,227,5,5,92,244,5,5,136,189,5,5,145,199,5,5,251,192,5,5,169,194,5,5,250,231,5,5,162,244,5,5,209,232,5,5,185,235,5,5,195,185,5,5,27,202,5,5,7,203,5,5,169,193,5,5,79,202,5,5,234,221,5,5,156,226,5,5,137,187,5,5,36,220,5,5,173,190,5,5,37,198,5,5,255,192,5,5,252,240,5,5,182,216,5,5,94,204,5,5,167,214,5,5,175,249,5,5,194,182,5,5,74,200,5,5,121,173,5,5,138,186,5,5,143,210,5,5,196,210,5,5,144,179,5,5,37,196,5,5,55,221,5,5,194,221,5,5,48,249,5,5,66,183,5,5,217,179,5,5,16,170,5,5,146,173,5,5,25,226,5,5,153,229,5,5,227,228,5,5,158,219,5,5,197,181,5,5,22,217,5,5,129,184,5,5,223,190,5,5,241,217,5,5,105,194,5,5,180,170,5,5,215,219,5,5,126,168,5,5,177,214,5,5,189,224,5,5,199,186,5,5,170,237,5,5,61,212,5,5,182,193,5,5,149,201,5,5,27,171,5,5,122,235,5,5,31,171,5,5,252,206,5,5,20,209,5,5,212,240,5,5,129,229,5,5,66,231,5,5,120,187,5,5,153,220,5,5,251,203,5,5,12,250,5,5,13,190,5,5,232,184,5,5,86,202,5,5,225,244,5,5,214,186,5,5,232,210,5,5,204,238,5,5,18,184,5,5,162,202,5,5,160,196,5,5,253,171,5,5,231,236,5,5,51,184,5,5,139,179,5,5,36,192,5,5,142,183,5,5,56,219,5,5,211,184,5,5,190,221,5,5,143,183,5,5,42,209,5,5,116,169,5,5,161,242,5,5,116,246,5,5,7,190,5,5,134,216,5,5,193,183,5,5,10,169,5,5,176,229,5,5,170,193,5,5,192,221,5,5,94,242,5,5,160,183,5,5,123,237,5,5,234,197,5,5,235,197,5,5,34,213,5,5,97,190,5,5,15,246,5,5,118,169,5,5,240,236,5,5,241,235,5,5,76,246,5,5,149,182,5,5,144,183,5,5,177,229,5,5,205,211,5,5,201,177,5,5,103,185,5,5,26,219,5,5,95,204,5,5,214,208,5,5,27,184,5,5,14,228,5,5,247,208,5,5,175,202,5,5,197,170,5,5,43,247,5,5,104,185,5,5,164,242,5,5,126,176,5,5,151,217,5,5,31,233,5,5,168,174,5,5,43,178,5,5,247,196,5,5,195,237,5,5,71,186,5,5,90,247,5,5,102,242,5,5,37,237,5,5,103,242,5,5,243,235,5,5,188,226,5,5,104,242,5,5,104,226,5,5,80,240,5,5,213,180,5,5,43,230,5,5,239,181,5,5,156,186,5,5,21,168,5,5,117,246,5,5,247,236,5,5,17,189,5,5,37,233,5,5,94,193,5,5,205,203,5,5,228,247,5,5,73,237,5,5,26,226,5,5,91,189,5,5,161,206,5,5,32,219,5,5,161,209,5,5,107,185,5,5,129,218,5,5,182,194,5,5,107,234,5,5,156,247,5,5,169,174,5,5,162,206,5,5,18,189,5,5,197,210,5,5,130,181,5,5,33,206,5,5,95,193,5,5,16,193,5,5,125,227,5,5,98,190,5,5,28,228,5,5,8,172,5,5,72,230,5,5,135,197,5,5,117,242,5,5,228,171,5,5,69,198,5,5,70,198,5,5,15,170,5,5,27,231,5,5,71,198,5,5,23,197,5,5,90,227,5,5,38,196,5,5,29,226,5,5,121,181,5,5,122,181,5,5,190,199,5,5,206,189,5,5,109,230,5,5,58,221,5,5,196,200,5,5,25,195,5,5,42,212,5,5,208,205,5,5,19,213,5,5,156,222,5,5,37,184,5,5,56,168,5,5,244,248,5,5,189,212,5,5,143,216,5,5,81,215,5,5,158,169,5,5,148,179,5,5,209,205,5,5,43,218,5,5,186,193,5,5,25,197,5,5,139,227,5,5,245,235,5,5,166,242,5,5,180,214,5,5,45,202,5,5,51,238,5,5,148,248,5,5,58,199,5,5,89,181,5,5,77,200,5,5,137,221,5,5,181,214,5,5,40,196,5,5,145,239,5,5,146,239,5,5,41,196,5,5,55,249,5,5,183,200,5,5,41,180,5,5,96,214,5,5,60,176,5,5,184,185,5,5,250,196,5,5,250,197,5,5,147,239,5,5,10,250,5,5,74,192,5,5,223,222,5,5,88,240,5,5,7,175,5,5,184,208,5,5,6,219,5,5,58,168,5,5,29,217,5,5,32,226,5,5,210,189,5,5,33,226,5,5,203,181,5,5,54,195,5,5,90,207,5,5,38,184,5,5,40,176,5,5,126,227,5,5,183,236,5,5,212,188,5,5,226,242,5,5,65,213,5,5,78,200,5,5,178,207,5,5,211,189,5,5,89,240,5,5,232,175,5,5,162,230,5,5,28,197,5,5,42,180,5,5,129,172,5,5,172,182,5,5,237,188,5,5,101,240,5,5,227,242,5,5,12,232,5,5,214,229,5,5,199,221,5,5,238,188,5,5,138,175,5,5,135,225,5,5,207,231,5,5,124,219,5,5,176,204,5,5,165,192,5,5,72,186,5,5,191,193,5,5,128,224,5,5,64,188,5,5,129,176,5,5,130,176,5,5,157,239,5,5,223,237,5,5,6,237,5,5,81,192,5,5,212,202,5,5,107,226,5,5,86,199,5,5,245,225,5,5,246,225,5,5,158,239,5,5,127,227,5,5,190,206,5,5,47,233,5,5,50,185,5,5,108,226,5,5,26,174,5,5,166,192,5,5,158,227,5,5,169,245,5,5,129,168,5,5,199,237,5,5,97,238,5,5,210,211,5,5,8,175,5,5,63,247,5,5,206,204,5,5,217,240,5,5,227,205,5,5,161,170,5,5,251,222,5,5,249,248,5,5,219,241,5,5,75,230,5,5,10,198,5,5,252,239,5,5,35,226,5,5,100,223,5,5,189,194,5,5,162,239,5,5,49,190,5,5,162,170,5,5,105,240,5,5,35,224,5,5,230,190,5,5,109,182,5,5,190,194,5,5,152,203,5,5,14,237,5,5,52,185,5,5,208,196,5,5,64,232,5,5,65,232,5,5,128,227,5,5,220,206,5,5,14,250,5,5,129,242,5,5,107,240,5,5,216,205,5,5,159,227,5,5,66,232,5,5,116,235,5,5,164,239,5,5,56,213,5,5,186,222,5,5,128,206,5,5,41,231,5,5,179,238,5,5,90,192,5,5,79,244,5,5,220,241,5,5,229,244,5,5,55,238,5,5,78,237,5,5,57,213,5,5,72,211,5,5,17,190,5,5,71,208,5,5,108,240,5,5,19,208,5,5,248,178,5,5,47,243,5,5,130,242,5,5,209,201,5,5,9,172,5,5,112,205,5,5,241,188,5,5,5,205,5,5,255,222,5,5,49,243,5,5,109,240,5,5,245,186,5,5,170,217,5,5,61,202,5,5,51,206,5,5,229,210,5,5,151,196,5,5,7,192,5,5,141,242,5,5,26,209,5,5,170,221,5,5,196,211,5,5,234,235,5,5,118,172,5,5,104,169,5,5,251,245,5,5,54,186,5,5,27,180,5,5,80,205,5,5,236,235,5,5,255,232,5,5,33,237,5,5,59,204,5,5,152,174,5,5,140,217,5,5,146,242,5,5,107,235,5,5,255,227,5,5,66,223,5,5,252,246,5,5,231,181,5,5,145,186,5,5,97,234,5,5,13,189,5,5,144,247,5,5,96,185,5,5,29,206,5,5,70,189,5,5,65,230,5,5,199,171,5,5,7,202,5,5,131,197,5,5,98,186,5,5,113,181,5,5,62,242,5,5,40,232,5,5,6,226,5,5,98,230,5,5,31,218,5,5,181,208,5,5,47,168,5,5,65,200,5,5,156,169,5,5,171,212,5,5,66,215,5,5,53,176,5,5,178,185,5,5,159,242,5,5,9,224,5,5,192,189,5,5,200,188,5,5,184,181,5,5,107,186,5,5,16,217,5,5,118,176,5,5,169,207,5,5,153,230,5,5,98,239,5,5,213,237,5,5,211,229,5,5,155,204,5,5,151,192,5,5,99,239,5,5,171,193,5,5,229,188,5,5,90,238,5,5,81,240,5,5,167,245,5,5,200,204,5,5,138,203,5,5,183,194,5,5,202,196,5,5,109,242,5,5,203,205,5,5,134,190,5,5,221,244,5,5,87,240,5,5,11,190,5,5,10,208,5,5,241,186,5,5,252,222,5,5,117,205,5,5,184,195,5,5,96,204,5,5,251,193,5,5,61,232,5,5,89,177,5,5,2,194,5,5,6,194,5,5,137,236,5,5,87,177,5,5,160,205,5,5,14,241,5,5,219,176,5,5,183,192,5,5,86,212,5,5,220,176,5,5,87,212,5,5,68,248,5,5,38,198,5,5,17,248,5,5,179,193,5,5,56,208,5,5,57,208,5,5,6,242,5,5,169,204,5,5,24,174,5,5,41,198,5,5,246,203,5,5,145,210,5,5,182,214,5,5,210,205,5,5,205,196,5,5,42,198,5,5,42,196,5,5,199,202,5,5,182,232,5,5,62,232,5,5,72,193,5,5,62,208,5,5,213,202,5,5,12,221,5,5,38,245,5,5,254,203,5,5,45,196,5,5,191,214,5,5,111,204,5,5,138,236,5,5,221,176,5,5,229,206,5,5,225,206,5,5,201,188,5,5,205,173,5,5,194,183,5,5,172,208,5,5,173,208,5,5,196,183,5,5,95,212,5,5,189,217,5,5,124,217,5,5,162,209,5,5,197,183,5,5,151,232,5,5,184,200,5,5,127,217,5,5,175,208,5,5,9,175,5,5,116,183,5,5,181,183,5,5,120,217,5,5,174,208,5,5,172,206,5,5,131,207,5,5,66,209,5,5,32,191,5,5,144,209,5,5,177,249,5,5,162,211,5,5,50,183,5,5,201,190,5,5,191,190,5,5,185,195,5,5,10,187,5,5,80,226,5,5,71,227,5,5,89,189,5,5,72,190,5,5,216,199,5,5,92,189,5,5,169,222,5,5,28,202,5,5,198,210,5,5,175,174,5,5,244,188,5,5,243,188,5,5,100,239,5,5,119,215,5,5,4,178,5,5,144,231,5,5,200,227,5,5,132,209,5,5,125,209,5,5,120,215,5,5,204,177,5,5,188,175,5,5,84,241,5,5,98,179,5,5,95,238,5,5,205,231,5,5,179,236,5,5,128,217,5,5,195,207,5,5,184,236,5,5,199,216,5,5,42,243,5,5,46,202,5,5,69,178,5,5,145,180,5,5,100,172,5,5,80,236,5,5,130,236,5,5,188,236,5,5,6,178,5,5,88,168,5,5,243,245,5,5,210,177,5,5,101,172,5,5,98,238,5,5,179,207,5,5,248,244,5,5,197,236,5,5,154,180,5,5,113,205,5,5,191,246,5,5,52,183,5,5,35,184,5,5,71,184,5,5,165,208,5,5,150,208,5,5,221,242,5,5,241,176,5,5,192,217,5,5,198,173,5,5,56,228,5,5,233,247,5,5,120,246,5,5,18,208,5,5,130,168,5,5,33,171,5,5,19,228,5,5,163,170,5,5,196,242,5,5,190,173,5,5,17,228,5,5,241,179,5,5,118,208,5,5,12,210,5,5,243,179,5,5,41,249,5,5,102,186,5,5,103,186,5,5,39,180,5,5,45,183,5,5,204,225,5,5,168,242,5,5,22,213,5,5,123,173,5,5,51,185,5,5,4,215,5,5,169,242,5,5,97,225,5,5,219,225,5,5,172,222,5,5,165,222,5,5,43,183,5,5,242,182,5,5,183,229,5,5,203,168,5,5,146,179,5,5,15,228,5,5,93,247,5,5,155,217,5,5,136,221,5,5,236,221,5,5,111,241,5,5,238,221,5,5,232,226,5,5,74,230,5,5,29,197,5,5,43,196,5,5,172,191,5,5,30,197,5,5,190,236,5,5,91,227,5,5,101,223,5,5,39,231,5,5,157,232,5,5,195,236,5,5,182,201,5,5,20,170,5,5,215,237,5,5,81,217,5,5,239,187,5,5,157,230,5,5,159,230,5,5,105,189,5,5,211,233,5,5,205,181,5,5,141,244,5,5,137,234,5,5,228,229,5,5,142,244,5,5,120,211,5,5,57,210,5,5,160,214,5,5,189,244,5,5,17,193,5,5,56,249,5,5,82,192,5,5,88,192,5,5,99,214,5,5,51,192,5,5,221,174,5,5,43,174,5,5,44,174,5,5,210,188,5,5,12,236,5,5,251,239,5,5,208,233,5,5,95,169,5,5,77,244,5,5,209,233,5,5,253,172,5,5,172,174,5,5,185,236,5,5,50,197,5,5,159,226,5,5,105,204,5,5,100,204,5,5,108,175,5,5,248,217,5,5,210,233,5,5,28,199,5,5,32,211,5,5,207,196,5,5,198,237,5,5,90,176,5,5,113,243,5,5,8,242,5,5,153,175,5,5,217,238,5,5,146,210,5,5,78,244,5,5,179,249,5,5,178,217,5,5,114,243,5,5,196,236,5,5,211,211,5,5,207,181,5,5,18,230,5,5,166,239,5,5,101,176,5,5,180,249,5,5,85,179,5,5,154,175,5,5,5,196,5,5,48,236,5,5,208,174,5,5,39,174,5,5,185,188,5,5,236,239,5,5,44,197,5,5,84,204,5,5,90,169,5,5,150,226,5,5,39,249,5,5,24,199,5,5,254,241,5,5,84,176,5,5,177,217,5,5,17,230,5,5,232,204,5,5,62,212,5,5,228,185,5,5,63,212,5,5,186,236,5,5,249,204,5,5,17,205,5,5,229,185,5,5,130,198,5,5,151,177,5,5,112,204,5,5,152,177,5,5,208,204,5,5,216,185,5,5,126,198,5,5,57,187,5,5,31,217,5,5,35,171,5,5,25,187,5,5,38,243,5,5,7,176,5,5,215,188,5,5,13,198,5,5,143,233,5,5,132,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,214,5,5,198,185,5,5,213,173,5,5,108,193,5,5,38,190,5,5,227,175,5,5,54,197,5,5,57,187,5,5,57,187,5,5,232,214,5,5,166,195,5,5,133,200,5,5,6,210,5,5,11,201,5,5,202,200,5,5,116,206,5,5,124,206,5,5,115,206,5,5,135,206,5,5,125,206,5,5,147,201,5,5,144,206,5,5,121,201,5,5,149,206,5,5,153,206,5,5,124,201,5,5,159,206,5,5,55,206,5,5,52,206,5,5,240,200,5,5,28,201,5,5,238,200,5,5,51,206,5,5,211,200,5,5,26,201,5,5,225,200,5,5,230,200,5,5,121,200,5,5,148,200,5,5,153,200,5,5,41,201,5,5,60,201,5,5,70,201,5,5,38,201,5,5,35,201,5,5,158,200,5,5,236,201,5,5,86,201,5,5,127,205,5,5,134,205,5,5,98,205,5,5,87,205,5,5,103,201,5,5,95,205,5,5,120,205,5,5,173,205,5,5,212,205,5,5,126,205,5,5,216,205,5,5,170,205,5,5,164,205,5,5,13,206,5,5,158,205,5,5,193,205,5,5,160,205,5,5,98,206,5,5,13,205,5,5,116,211,5,5,250,204,5,5,251,204,5,5,80,201,5,5,193,201,5,5,172,205,5,5,155,201,5,5,198,201,5,5,246,205,5,5,38,205,5,5,214,201,5,5,60,205,5,5,215,201,5,5,255,205,5,5,58,205,5,5,154,201,5,5,132,201,5,5,4,204,5,5,52,204,5,5,233,201,5,5,85,204,5,5,72,204,5,5,58,204,5,5,146,180,5,5,216,209,5,5,147,201,5,5,179,211,5,5,213,177,5,5,60,211,5,5,140,211,5,5,7,206,5,5,37,239,5,5,159,169,5,5,20,212,5,5,210,170,5,5,101,184,5,5,10,172,5,5,96,208,5,5,216,222,5,5,150,224,5,5,73,172,5,5,153,219,5,5,143,221,5,5,19,238,5,5,36,223,5,5,20,220,5,5,253,173,201,32,230,0,5,5,215,221,5,5,110,219,5,5,56,206,5,5,57,206,5,5,97,203,5,5,87,203,5,5,72,203,5,5,73,203,5,5,84,203,5,5,70,203,5,5,107,203,5,5,105,203,5,5,170,202,5,5,230,205,5,5,143,211,5,5,90,205,5,5,237,205,5,5,20,206,5,5,197,202,5,5,221,205,5,5,59,202,5,5,199,202,5,5,28,202,5,5,90,202,5,5,171,202,5,5,172,202,5,5,218,202,5,5,190,210,5,5,2,203,5,5,68,203,5,5,207,210,5,5,245,202,5,5,57,203,5,5,35,203,5,5,191,210,5,5,60,203,5,5,17,203,5,5,210,210,5,5,246,202,5,5,236,202,5,5,64,203,5,5,175,203,5,5,176,203,5,5,202,236,5,5,189,203,5,5,196,203,5,5,36,223,5,5,242,202,5,5,218,210,5,5,201,210,5,5,63,203,5,5,23,203,5,5,207,203,5,5,119,204,5,5,38,204,5,5,60,211,5,5,118,204,5,5,233,202,5,5,50,204,5,5,132,240,5,5,68,204,5,5,70,204,5,5,81,204,5,5,83,204,5,5,108,204,5,5,117,204,5,5,104,202,5,5,82,202,5,5,85,202,5,5,181,202,5,5,165,181,5,5,151,201,5,5,117,203,5,5,125,203,5,5,240,210,5,5,165,203,5,5,147,201,5,5,133,203,5,5,136,203,5,5,157,203,5,5,131,203,5,5,232,204,5,5,53,243,5,5,64,219,5,5,149,204,5,5,90,175,5,5,178,204,5,5,131,204,5,5,124,204,5,5,134,204,5,5,132,204,5,5,136,204,5,5,91,211,5,5,223,201,5,5,193,204,5,5,181,205,5,5,152,205,5,5,74,206,5,5,79,206,5,5,81,206,5,5,88,206,5,5,5,206,5,5,156,202,5,5,126,202,5,5,7,206,5,5,222,204,5,5,98,202,5,5,95,202,5,5,250,205,5,5,251,238,5,5,63,202,5,5,252,201,5,5,122,210,5,5,72,202,5,5,149,202,5,5,31,202,5,5,76,202,5,5,73,202,5,5,64,202,5,5,39,202,5,5,174,210,5,5,180,210,5,5,15,204,5,5,237,203,5,5,238,203,5,5,28,204,5,5,230,203,5,5,253,203,5,5,254,203,5,5,216,203,5,5,221,203,5,5,243,203,5,5,94,202,5,5,139,202,5,5,140,202,5,5,136,248,5,5,209,246,5,5,237,221,5,5,61,221,5,5,219,172,5,5,141,176,5,5,64,216,5,5,170,180,5,5,192,224,5,5,123,225,5,5,190,244,5,5,59,180,5,5,138,169,5,5,30,184,5,5,24,234,5,5,130,194,5,5,9,194,5,5,107,200,5,5,111,230,5,5,250,189,192,0,0,0,192,0,0,0,5,5,102,247,192,0,0,0,5,5,190,216,192,0,0,0,192,0,0,0,5,5,254,230,5,5,210,247,5,5,27,239,5,5,62,202,5,5,63,221,5,5,194,232,5,5,9,184,5,5,99,196,5,5,34,196,5,5,226,241,192,0,0,0,5,5,26,217,192,0,0,0,5,5,224,247,192,0,0,0,192,0,0,0,5,5,47,239,5,5,76,180,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,182,5,5,137,223,5,5,213,186,5,5,238,188,5,5,36,201,5,5,174,202,5,5,88,230,5,5,10,220,5,5,148,208,5,5,151,208,5,5,125,216,5,5,148,169,5,5,149,188,5,5,78,225,5,5,251,214,5,5,183,213,5,5,131,209,5,5,193,172,5,5,223,173,5,5,56,191,5,5,101,198,5,5,105,244,5,5,134,174,5,5,5,209,5,5,208,192,5,5,167,222,5,5,147,207,5,5,211,187,5,5,11,248,5,5,47,188,5,5,12,248,5,5,83,245,5,5,26,250,5,5,155,169,5,5,242,220,5,5,175,246,5,5,111,214,5,5,101,241,5,5,209,249,5,5,39,248,5,5,222,191,5,5,200,245,5,5,108,186,5,5,80,227,5,5,96,195,5,5,60,203,5,5,248,195,5,5,98,182,5,5,170,222,5,5,151,245,5,5,98,175,5,5,156,172,5,5,156,172,5,5,171,245,5,5,227,188,5,5,43,222,5,5,39,238,5,5,210,195,5,5,62,171,5,5,120,244,5,5,70,176,5,5,47,239,5,5,32,210,5,5,214,232,5,5,138,213,5,5,77,191,192,0,0,0,5,5,211,186,192,0,0,0,192,0,0,0,5,5,125,171,5,5,198,199,5,5,204,217,5,5,28,234,5,5,10,175,5,5,2,193,5,5,230,240,5,5,206,220,5,5,149,188,5,5,186,225,5,5,83,191,5,5,66,228,5,5,102,247,5,5,34,183,5,5,144,236,5,5,208,169,5,5,74,170,5,5,123,176,5,5,109,168,5,5,79,239,5,5,61,172,5,5,144,237,5,5,179,228,5,5,101,221,5,5,63,242,5,5,105,244,5,5,149,168,5,5,134,174,5,5,202,177,5,5,169,241,5,5,191,223,5,5,114,171,5,5,103,168,5,5,190,216,5,5,60,201,5,5,196,228,5,5,51,245,5,5,166,177,5,5,20,220,5,5,131,204,5,5,237,239,5,5,22,249,5,5,47,188,5,5,109,196,5,5,12,248,5,5,29,216,5,5,240,197,5,5,115,182,5,5,210,247,5,5,9,246,5,5,114,176,5,5,54,190,5,5,195,186,5,5,146,229,5,5,27,239,5,5,151,221,5,5,124,246,5,5,159,197,5,5,170,245,5,5,102,226,5,5,168,226,5,5,96,195,5,5,212,201,5,5,160,225,5,5,60,203,5,5,187,213,5,5,151,245,5,5,182,190,5,5,34,190,5,5,59,243,5,5,229,215,5,5,130,184,5,5,43,222,5,5,168,179,5,5,224,247,5,5,207,216,5,5,39,238,5,5,179,211,5,5,99,242,5,5,210,195,5,5,227,170,5,5,120,244,5,5,150,222,5,5,199,174,5,5,203,223,5,5,40,234,5,5,10,248,5,5,32,210,5,5,99,196,5,5,253,168,5,5,214,232,5,5,127,181,5,5,138,213,5,5,242,245,5,5,57,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,181,5,5,62,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,100,232,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,92,222,6,5,81,249,6,5,242,222,192,0,0,0,6,5,5,182,6,5,24,181,6,5,127,195,6,5,74,226,6,5,152,194,6,5,176,240,6,5,63,230,6,5,165,203,6,5,94,215,6,5,129,189,6,5,187,243,6,5,229,233,6,5,104,175,6,5,83,247,6,5,111,221,6,5,129,182,6,5,114,221,6,5,5,176,6,5,170,236,6,5,62,227,6,5,5,172,6,5,57,238,6,5,166,219,6,5,48,241,6,5,30,250,6,5,67,247,6,5,87,241,6,5,179,246,6,5,182,249,6,5,153,177,6,5,235,195,6,5,48,199,6,5,154,188,6,5,5,207,6,5,63,241,6,5,7,243,6,5,15,221,6,5,97,185,6,5,116,240,6,5,125,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,227,113,0,197,67,114,0,197,163,114,0,197,3,115,0,197,99,115,0,197,195,115,0,197,35,116,0,197,131,116,0,197,227,116,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,158,178,6,5,239,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,202,5,5,93,228,5,5,99,238,192,0,0,0,5,5,149,210,5,5,88,230,5,5,183,227,5,5,130,171,5,5,163,243,5,5,183,169,5,5,10,220,5,5,229,232,192,0,0,0,192,0,0,0,5,5,148,208,5,5,136,227,5,5,245,190,5,5,65,197,192,0,0,0,192,0,0,0,5,5,110,210,5,5,187,243,192,0,0,0,5,5,233,218,5,5,143,242,5,5,92,171,5,5,19,180,5,5,198,199,192,0,0,0,5,5,126,215,5,5,140,218,192,0,0,0,5,5,249,198,5,5,132,206,5,5,97,185,5,5,76,173,192,0,0,0,5,5,230,240,5,5,151,208,5,5,125,216,5,5,206,220,5,5,82,169,5,5,152,176,5,5,159,169,5,5,63,191,5,5,148,169,5,5,196,171,5,5,102,192,5,5,109,192,5,5,171,216,5,5,171,216,5,5,171,216,192,0,0,0,5,5,253,190,5,5,94,192,5,5,210,223,192,0,0,0,5,5,247,194,5,5,223,174,5,5,113,237,5,5,105,232,5,5,168,230,5,5,88,174,5,5,131,247,5,5,144,181,5,5,205,208,5,5,100,225,5,5,206,214,5,5,34,232,5,5,126,220,5,5,126,220,5,5,83,191,5,5,157,174,5,5,130,244,5,5,142,237,5,5,116,227,5,5,78,225,5,5,117,227,5,5,98,188,5,5,133,212,5,5,64,216,5,5,133,248,5,5,94,174,5,5,130,246,5,5,138,227,5,5,30,234,5,5,109,176,5,5,133,169,5,5,52,179,192,0,0,0,5,5,224,206,5,5,176,189,5,5,118,183,5,5,24,181,5,5,34,208,5,5,224,220,192,0,0,0,192,0,0,0,5,5,14,192,5,5,150,241,5,5,185,227,5,5,125,213,5,5,96,184,192,0,0,0,192,0,0,0,5,5,103,218,5,5,10,201,5,5,10,201,192,0,0,0,5,5,147,242,5,5,8,247,5,5,60,211,5,5,121,169,192,0,0,0,5,5,97,222,5,5,86,194,5,5,50,178,5,5,24,241,192,0,0,0,5,5,103,227,5,5,223,173,5,5,120,234,5,5,36,215,192,0,0,0,5,5,157,236,192,0,0,0,5,5,70,179,5,5,19,249,5,5,77,173,5,5,162,235,5,5,186,173,192,0,0,0,5,5,214,235,5,5,14,223,5,5,115,207,5,5,35,183,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,171,5,5,75,170,5,5,201,222,5,5,41,201,192,0,0,0,5,5,230,185,192,0,0,0,192,0,0,0,5,5,148,241,5,5,156,225,5,5,156,225,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,234,5,5,134,179,192,0,0,0,5,5,35,180,5,5,130,218,5,5,199,246,5,5,182,199,5,5,144,242,192,0,0,0,192,0,0,0,5,5,56,191,192,0,0,0,5,5,241,180,5,5,113,176,5,5,186,190,5,5,101,221,5,5,186,190,5,5,34,205,5,5,105,244,5,5,144,232,5,5,62,183,5,5,97,172,5,5,255,207,5,5,134,174,5,5,11,201,5,5,86,174,5,5,82,193,5,5,87,199,5,5,126,169,5,5,191,168,5,5,125,197,192,0,0,0,5,5,114,228,5,5,126,213,5,5,239,220,5,5,221,219,5,5,117,192,192,0,0,0,5,5,233,195,5,5,113,236,5,5,152,236,192,0,0,0,5,5,67,209,5,5,140,194,5,5,28,191,5,5,218,194,192,0,0,0,5,5,5,209,5,5,94,196,192,0,0,0,5,5,226,192,5,5,127,222,5,5,222,195,192,0,0,0,5,5,167,222,192,0,0,0,192,0,0,0,5,5,107,207,5,5,155,208,5,5,240,249,5,5,39,214,5,5,230,209,192,0,0,0,5,5,60,201,5,5,196,228,5,5,110,249,5,5,200,214,5,5,230,170,192,0,0,0,192,0,0,0,5,5,179,186,5,5,8,192,5,5,194,219,5,5,147,207,192,0,0,0,5,5,100,168,5,5,211,169,5,5,20,249,192,0,0,0,5,5,133,244,5,5,154,237,5,5,185,184,5,5,232,220,192,0,0,0,5,5,48,247,192,0,0,0,5,5,138,176,192,0,0,0,5,5,168,234,192,0,0,0,5,5,80,224,5,5,141,229,5,5,20,220,5,5,46,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,182,192,0,0,0,5,5,91,236,5,5,209,169,5,5,38,215,5,5,56,230,5,5,252,211,5,5,211,187,5,5,131,204,5,5,120,188,5,5,224,195,5,5,249,210,192,0,0,0,5,5,173,213,5,5,25,185,5,5,64,236,192,0,0,0,5,5,22,249,5,5,71,179,192,0,0,0,5,5,59,236,5,5,194,173,192,0,0,0,192,0,0,0,5,5,36,183,5,5,40,243,5,5,109,196,5,5,148,240,192,0,0,0,5,5,124,215,5,5,174,243,5,5,100,248,5,5,72,225,192,0,0,0,5,5,195,180,192,0,0,0,5,5,172,176,192,0,0,0,5,5,9,177,5,5,240,197,5,5,149,244,192,0,0,0,5,5,220,230,5,5,195,169,192,0,0,0,192,0,0,0,5,5,190,224,5,5,167,228,192,0,0,0,5,5,15,243,192,0,0,0,192,0,0,0,5,5,196,177,5,5,185,241,5,5,9,246,5,5,160,224,5,5,254,216,192,0,0,0,5,5,79,219,192,0,0,0,5,5,176,243,192,0,0,0,5,5,37,239,192,0,0,0,5,5,248,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,245,5,5,184,245,5,5,184,245,5,5,159,197,192,0,0,0,5,5,244,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,234,5,5,170,205,5,5,102,226,192,0,0,0,192,0,0,0,5,5,209,249,192,0,0,0,192,0,0,0,5,5,9,184,5,5,157,222,192,0,0,0,5,5,108,186,5,5,247,192,5,5,195,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,213,192,0,0,0,192,0,0,0,5,5,109,248,5,5,247,247,192,0,0,0,192,0,0,0,5,5,203,169,192,0,0,0,5,5,145,194,5,5,182,219,5,5,211,192,192,0,0,0,5,5,237,169,192,0,0,0,5,5,36,249,5,5,144,249,5,5,213,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,173,192,0,0,0,5,5,104,237,5,5,125,168,5,5,151,245,192,0,0,0,192,0,0,0,5,5,157,213,192,0,0,0,5,5,180,176,192,0,0,0,192,0,0,0,5,5,19,242,5,5,35,177,192,0,0,0,5,5,8,213,5,5,179,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,241,5,5,126,231,5,5,115,176,192,0,0,0,5,5,197,214,5,5,14,242,5,5,82,246,5,5,78,201,5,5,18,190,5,5,141,182,5,5,251,235,5,5,102,199,192,0,0,0,5,5,110,219,5,5,254,172,5,5,196,218,5,5,78,195,5,5,58,230,5,5,59,207,5,5,9,179,5,5,171,245,5,5,176,213,5,5,7,197,5,5,29,198,5,5,68,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,213,5,5,204,195,5,5,86,177,192,0,0,0,5,5,81,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,211,5,5,120,205,5,5,233,199,5,5,147,231,5,5,151,174,5,5,50,215,5,5,157,242,5,5,189,213,5,5,59,243,5,5,210,179,5,5,221,247,5,5,150,176,192,0,0,0,5,5,91,187,5,5,211,232,192,0,0,0,5,5,179,248,5,5,63,238,192,0,0,0,5,5,137,204,5,5,20,223,192,0,0,0,5,5,169,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,174,5,5,99,242,5,5,227,170,5,5,243,221,192,0,0,0,5,5,223,186,5,5,93,170,5,5,250,184,5,5,205,214,192,0,0,0,192,0,0,0,5,5,198,168,5,5,213,193,5,5,73,213,192,0,0,0,5,5,165,218,5,5,150,222,192,0,0,0,192,0,0,0,5,5,193,214,5,5,169,213,5,5,26,249,192,0,0,0,5,5,189,173,5,5,203,171,5,5,28,235,5,5,45,190,5,5,119,171,5,5,231,215,5,5,201,243,192,0,0,0,5,5,90,198,192,0,0,0,5,5,66,220,192,0,0,0,192,0,0,0,5,5,60,215,5,5,249,230,5,5,112,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,170,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,181,5,5,127,181,5,5,160,213,192,0,0,0,5,5,18,192,192,0,0,0,5,5,195,181,5,5,62,243,5,5,115,169,5,5,190,227,192,0,0,0,192,0,0,0,5,5,242,245,5,5,28,193,5,5,170,193,192,0,0,0,192,0,0,0,5,5,19,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,206,192,0,0,0,5,5,191,246,5,5,150,208,5,5,120,246,5,5,118,208,5,5,45,183,5,5,20,170,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,0,0,142,9,0,5,0,5,0,0,57,238,28,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,5,182,24,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,166,219,26,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,106,223,12,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,77,230,23,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,193,204,18,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,58,214,27,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,161,168,19,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,165,196,25,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,201,221,16,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,7,243,8,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,198,191,3,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,12,223,4,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,184,209,6,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,129,227,11,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,183,218,9,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,207,247,5,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,63,241,7,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,24,209,14,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,210,225,2,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,79,201,17,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,169,177,22,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,143,189,13,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,101,235,10,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,194,214,21,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,103,233,15,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,87,234,20,15,0,5,0,0,144,9,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,5,5,142,9,5,5,166,195,6,5,144,9,5,5,142,9,5,5,242,220,13,5,144,9,5,5,142,9,5,5,52,172,8,5,144,9,5,5,142,9,5,5,39,248,12,5,144,9,5,5,142,9,5,5,162,193,14,5,144,9,5,5,142,9,5,5,32,249,7,5,144,9,5,5,142,9,5,5,229,192,11,5,144,9,5,5,142,9,5,5,82,249,10,5,144,9,5,5,142,9,5,5,197,246,9,5,144,9,5,5,0,21,17,5,7,243,5,5,0,23,16,5,7,243,5,5,0,25,15,5,7,243,5,5,0,27,14,5,7,243,5,5,0,29,13,5,7,243,5,5,0,31,12,5,7,243,5,5,0,33,11,5,7,243,5,5,0,35,10,5,7,243,5,5,0,37,9,5,7,243,5,5,0,21,5,5,0,19,20,5,7,243,5,5,0,21,5,5,0,21,19,5,7,243,5,5,0,21,5,5,0,23,18,5,7,243,5,5,119,204,7,5,158,188,5,5,0,19,30,5,88,179,5,5,0,21,19,5,88,179,5,5,0,23,13,5,88,179,5,5,0,25,12,5,88,179,5,5,0,27,11,5,88,179,5,5,0,29,10,5,88,179,5,5,0,31,9,5,88,179,5,5,0,33,8,5,88,179,5,5,0,35,7,5,88,179,5,5,0,37,6,5,88,179,5,5,0,21,5,5,0,19,29,5,88,179,5,5,0,21,5,5,0,21,28,5,88,179,5,5,0,21,5,5,0,23,27,5,88,179,5,5,0,21,5,5,0,25,26,5,88,179,5,5,0,21,5,5,0,27,25,5,88,179,5,5,0,21,5,5,0,29,24,5,88,179,5,5,0,21,5,5,0,31,23,5,88,179,5,5,0,21,5,5,0,33,22,5,88,179,5,5,0,21,5,5,0,35,21,5,88,179,5,5,0,21,5,5,0,37,20,5,88,179,5,5,0,23,5,5,0,19,18,5,88,179,5,5,0,23,5,5,0,21,17,5,88,179,5,5,0,23,5,5,0,23,16,5,88,179,5,5,0,23,5,5,0,25,15,5,88,179,5,5,0,23,5,5,0,27,14,5,88,179,5,5,161,213,6,5,86,174,5,5,73,245,6,5,158,188,5,5,154,177,7,5,65,246,5,5,25,209,6,5,208,246,5,5,207,247,5,5,10,222,5,5,67,191,7,5,242,220,5,5,0,21,28,5,183,218,5,5,0,23,17,5,183,218,5,5,0,25,14,5,183,218,5,5,0,27,13,5,183,218,5,5,0,29,12,5,183,218,5,5,0,31,11,5,183,218,5,5,0,33,10,5,183,218,5,5,0,35,9,5,183,218,5,5,0,37,8,5,183,218,5,5,0,21,5,5,0,19,38,5,183,218,5,5,0,21,5,5,0,21,37,5,183,218,5,5,0,21,5,5,0,23,36,5,183,218,5,5,0,21,5,5,0,25,35,5,183,218,5,5,0,21,5,5,0,27,34,5,183,218,5,5,0,21,5,5,0,29,33,5,183,218,5,5,0,21,5,5,0,31,32,5,183,218,5,5,0,21,5,5,0,33,31,5,183,218,5,5,0,21,5,5,0,35,30,5,183,218,5,5,0,21,5,5,0,37,29,5,183,218,5,5,0,23,5,5,0,19,27,5,183,218,5,5,0,23,5,5,0,21,26,5,183,218,5,5,0,23,5,5,0,23,25,5,183,218,5,5,0,23,5,5,0,25,24,5,183,218,5,5,0,23,5,5,0,27,23,5,183,218,5,5,0,23,5,5,0,29,22,5,183,218,5,5,0,23,5,5,0,31,21,5,183,218,5,5,0,23,5,5,0,33,20,5,183,218,5,5,0,23,5,5,0,35,19,5,183,218,5,5,0,23,5,5,0,37,18,5,183,218,5,5,0,25,5,5,0,19,16,5,183,218,5,5,0,25,5,5,0,21,15,5,183,218,5,5,68,221,5,5,41,237,5,5,2,244,5,5,158,229,5,5,29,175,5,5,209,216,69,5,39,172,5,160,0,0,69,5,90,181,5,138,0,0,69,5,90,181,5,136,0,0,69,5,90,181,5,142,0,0,69,5,90,181,5,150,0,0,69,5,214,209,5,154,0,0,69,5,187,211,5,138,0,0,69,5,187,211,5,136,0,0,69,5,187,211,5,142,0,0,69,5,187,211,5,154,0,0,69,5,187,211,5,150,0,0,69,5,225,235,5,136,0,0,69,5,39,172,5,136,0,0,69,5,39,172,5,142,0,0,69,5,39,172,5,156,0,0,69,5,39,172,5,144,0,0,69,5,108,177,5,144,0,0,69,5,90,181,5,164,0,0,69,5,90,181,5,140,0,0,69,5,90,181,5,156,0,0,69,5,90,181,5,162,0,0,69,5,90,181,5,144,0,0,69,5,134,184,5,142,0,0,69,5,134,184,5,140,0,0,69,5,134,184,5,156,0,0,69,5,134,184,5,160,0,0,69,5,198,187,5,142,0,0,69,5,246,191,5,142,0,0,69,5,74,198,5,160,0,0,69,5,119,200,5,136,0,0,69,5,119,200,5,160,0,0,69,5,119,200,5,144,0,0,69,5,214,209,5,136,0,0,69,5,214,209,5,160,0,0,69,5,214,209,5,144,0,0,69,5,187,211,5,164,0,0,69,5,187,211,5,140,0,0,69,5,187,211,5,152,0,0,69,5,55,218,5,136,0,0,69,5,55,218,5,160,0,0,69,5,55,218,5,144,0,0,69,5,125,219,5,136,0,0,69,5,125,219,5,142,0,0,69,5,125,219,5,160,0,0,69,5,125,219,5,144,0,0,69,5,170,224,5,160,0,0,69,5,170,224,5,144,0,0,69,5,40,228,5,142,0,0,69,5,225,235,5,142,0,0,69,5,225,235,5,150,0,0,69,5,147,243,5,136,0,0,69,5,147,243,5,156,0,0,69,5,147,243,5,144,0,0,69,5,187,211,5,190,0,0,69,5,187,211,5,144,0,0,69,5,0,127,5,150,0,0,5,164,0,0,69,5,0,127,5,156,0,0,5,164,0,0,69,5,134,184,5,144,0,0,69,5,74,198,5,144,0,0,69,5,187,211,5,162,0,0,69,5,187,211,5,162,0,0,5,164,0,0,69,5,134,184,5,136,0,0,69,5,214,209,5,138,0,0,69,5,0,127,5,146,0,0,5,136,0,0,69,5,90,181,5,184,0,0,69,5,90,181,5,188,0,0,69,5,187,211,5,184,0,0,69,5,187,211,5,188,0,0,69,5,55,218,5,184,0,0,69,5,55,218,5,188,0,0,69,5,125,219,5,202,0,0,69,5,170,224,5,202,0,0,69,5,198,187,5,144,0,0,69,5,90,181,5,160,0,0,69,5,187,211,5,150,0,0,5,164,0,0,69,5,187,211,5,154,0,0,5,164,0,0,69,5,187,211,5,156,0,0,69,5,187,211,5,156,0,0,5,164,0,0,69,5,225,235,5,164,0,0,69,5,159,168,5,156,0,0,69,5,159,168,5,196,0,0,69,5,159,168,5,210,0,0,69,5,39,172,5,160,0,0,5,136,0,0,69,5,108,177,5,156,0,0,69,5,108,177,5,196,0,0,69,5,108,177,5,210,0,0,69,5,108,177,5,160,0,0,69,5,108,177,5,204,0,0,69,5,90,181,5,164,0,0,5,138,0,0,69,5,90,181,5,164,0,0,5,136,0,0,69,5,90,181,5,204,0,0,69,5,90,181,5,208,0,0,69,5,90,181,5,160,0,0,5,140,0,0,69,5,18,182,5,156,0,0,69,5,134,184,5,164,0,0,69,5,198,187,5,156,0,0,69,5,198,187,5,196,0,0,69,5,198,187,5,150,0,0,69,5,198,187,5,160,0,0,69,5,198,187,5,206,0,0,69,5,74,198,5,136,0,0,69,5,74,198,5,196,0,0,69,5,74,198,5,210,0,0,69,5,119,200,5,196,0,0,69,5,119,200,5,196,0,0,5,164,0,0,69,5,119,200,5,210,0,0,69,5,119,200,5,204,0,0,69,5,165,206,5,136,0,0,69,5,165,206,5,156,0,0,69,5,165,206,5,196,0,0,69,5,214,209,5,156,0,0,69,5,214,209,5,196,0,0,69,5,214,209,5,210,0,0,69,5,214,209,5,204,0,0,69,5,187,211,5,154,0,0,5,136,0,0,69,5,187,211,5,154,0,0,5,150,0,0,69,5,187,211,5,164,0,0,5,138,0,0,69,5,187,211,5,164,0,0,5,136,0,0,69,5,222,211,5,136,0,0,69,5,222,211,5,156,0,0,69,5,55,218,5,156,0,0,69,5,55,218,5,196,0,0,69,5,55,218,5,196,0,0,5,164,0,0,69,5,55,218,5,210,0,0,69,5,125,219,5,156,0,0,69,5,125,219,5,196,0,0,69,5,125,219,5,136,0,0,5,156,0,0,69,5,125,219,5,144,0,0,5,156,0,0,69,5,125,219,5,196,0,0,5,156,0,0,69,5,170,224,5,156,0,0,69,5,170,224,5,196,0,0,69,5,170,224,5,210,0,0,69,5,170,224,5,204,0,0,69,5,40,228,5,138,0,0,69,5,40,228,5,136,0,0,69,5,40,228,5,150,0,0,69,5,40,228,5,156,0,0,69,5,40,228,5,196,0,0,69,5,164,230,5,156,0,0,69,5,164,230,5,150,0,0,69,5,225,235,5,156,0,0,69,5,147,243,5,142,0,0,69,5,147,243,5,196,0,0,69,5,147,243,5,210,0,0,69,5,0,127,5,142,0,0,5,136,0,0,69,5,0,127,5,142,0,0,5,138,0,0,69,5,0,127,5,142,0,0,5,182,0,0,69,5,0,127,5,142,0,0,5,154,0,0,69,5,0,127,5,196,0,0,5,142,0,0,69,5,0,127,5,140,0,0,5,136,0,0,69,5,0,127,5,140,0,0,5,138,0,0,69,5,0,127,5,140,0,0,5,182,0,0,69,5,0,127,5,140,0,0,5,154,0,0,69,5,0,127,5,196,0,0,5,140,0,0,69,5,90,181,5,196,0,0,69,5,90,181,5,182,0,0,69,5,90,181,5,154,0,0,69,5,90,181,5,142,0,0,5,136,0,0,69,5,90,181,5,142,0,0,5,138,0,0,69,5,90,181,5,142,0,0,5,182,0,0,69,5,90,181,5,142,0,0,5,154,0,0,69,5,90,181,5,196,0,0,5,142,0,0,69,5,187,211,5,196,0,0,69,5,187,211,5,182,0,0,69,5,187,211,5,142,0,0,5,136,0,0,69,5,187,211,5,142,0,0,5,138,0,0,69,5,187,211,5,142,0,0,5,182,0,0,69,5,187,211,5,142,0,0,5,154,0,0,69,5,187,211,5,196,0,0,5,142,0,0,69,5,187,211,5,190,0,0,5,136,0,0,69,5,187,211,5,190,0,0,5,138,0,0,69,5,187,211,5,190,0,0,5,182,0,0,69,5,187,211,5,190,0,0,5,154,0,0,69,5,187,211,5,190,0,0,5,196,0,0,69,5,225,235,5,138,0,0,69,5,225,235,5,196,0,0,69,5,225,235,5,182,0,0,69,5,225,235,5,154,0,0,5,5,82,10,5,5,215,169,8,5,84,10,5,5,82,10,5,5,166,219,14,5,84,10,5,5,82,10,5,5,5,182,13,5,84,10,5,5,82,10,5,5,34,168,11,5,84,10,5,5,82,10,5,5,88,179,7,5,84,10,5,5,82,10,5,5,153,177,10,5,84,10,5,5,82,10,5,5,137,178,6,5,84,10,5,5,82,10,5,5,153,221,12,5,84,10,5,5,82,10,5,5,247,168,9,5,84,10,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,69,221,5,5,48,0,51,150,63,192,197,2,130,172,5,5,48,0,135,101,63,192,197,66,118,247,5,5,48,0,134,94,63,192,197,130,41,0,198,161,0,0,218,0,40,2,141,1,102,30,199,0,180,30,100,0,212,30,50,0,226,30,25,0,246,30,14,0,246,30,113,192,197,98,248,30,113,192,197,162,42,33,255,255,74,198,69,5,43,33,255,255,69,127,196,146,226,30,112,192,197,131,242,30,112,192,197,226,244,30,113,192,197,34,218,30,12,0,218,30,111,192,197,3,220,30,111,192,197,99,222,30,111,192,197,195,224,30,112,192,197,35,212,30,109,192,197,227,214,30,110,192,197,67,216,30,110,192,197,163,194,30,23,0,204,30,12,0,204,30,108,192,197,162,206,30,108,192,197,226,208,30,109,192,197,35,210,30,109,192,197,131,194,30,107,192,197,131,196,30,107,192,197,227,198,30,108,192,197,67,186,30,12,0,186,30,106,192,197,66,188,30,106,192,197,130,190,30,106,192,197,195,192,30,107,192,197,35,180,30,105,192,197,67,182,30,105,192,197,163,184,30,106,192,197,2,142,30,50,0,166,30,23,0,172,30,12,0,172,30,103,192,197,195,174,30,104,192,197,35,176,30,104,192,197,131,178,30,104,192,197,227,166,30,102,192,197,163,168,30,103,192,197,3,170,30,103,192,197,99,148,30,14,0,148,30,102,192,197,2,160,30,255,255,69,127,196,196,162,30,255,255,69,127,196,182,164,30,102,192,197,67,142,30,101,192,197,66,144,30,101,192,197,130,146,30,101,192,197,194,128,30,23,0,134,30,12,0,134,30,100,192,197,66,136,30,100,192,197,130,138,30,100,192,197,194,140,30,101,192,197,2,128,30,99,192,197,130,130,30,99,192,197,194,132,30,100,192,197,2,108,30,9,0,108,30,98,192,197,194,110,30,99,192,197,2,112,30,99,192,197,66,102,30,97,192,197,195,104,30,98,192,197,35,106,30,98,192,197,130,42,30,98,0,74,30,48,0,88,30,23,0,94,30,12,0,94,30,96,192,197,162,96,30,96,192,197,226,98,30,97,192,197,34,100,30,97,192,197,99,88,30,95,192,197,194,90,30,96,192,197,2,92,30,96,192,197,67,80,30,12,0,80,30,94,192,197,131,82,30,94,192,197,227,84,30,95,192,197,66,86,30,95,192,197,130,74,30,93,192,197,130,76,30,93,192,197,195,78,30,94,192,197,35,60,30,23,0,66,30,12,0,66,30,92,192,197,130,68,30,92,192,197,194,70,30,93,192,197,2,72,30,93,192,197,66,60,30,91,192,197,194,62,30,92,192,197,2,64,30,92,192,197,66,52,30,12,0,52,30,90,192,197,162,54,30,90,192,197,226,56,30,91,192,197,35,58,30,91,192,197,130,42,30,89,192,197,226,48,30,90,192,197,34,50,30,90,192,197,98,14,30,48,0,28,30,23,0,34,30,12,0,34,30,88,192,197,226,36,30,89,192,197,34,38,30,89,192,197,98,40,30,89,192,197,162,28,30,88,192,197,3,30,30,88,192,197,98,32,30,88,192,197,162,20,30,12,0,20,30,86,192,197,195,22,30,87,192,197,35,24,30,87,192,197,130,26,30,87,192,197,194,14,30,86,192,197,2,16,30,86,192,197,66,18,30,86,192,197,130,0,30,24,0,6,30,12,0,6,30,84,192,197,226,8,30,85,192,197,35,10,30,85,192,197,130,12,30,85,192,197,194,0,30,255,255,69,127,196,200,2,30,84,192,197,98,4,30,84,192,197,162,46,2,9,0,46,2,83,192,197,130,48,2,83,192,197,195,50,2,84,192,197,34,40,2,82,192,197,130,42,2,82,192,197,195,44,2,83,192,197,35,28,1,202,0,120,1,105,0,248,1,54,0,14,2,27,0,24,2,16,0,24,2,81,192,197,194,26,2,82,192,197,2,30,2,82,192,197,66,38,2,240,127,69,127,196,156,4,3,77,192,197,227,14,2,81,192,197,2,16,2,81,192,197,66,18,2,81,192,197,130,2,2,13,0,2,2,255,255,69,127,196,188,4,2,80,192,197,66,6,2,80,192,197,130,12,2,80,192,197,194,248,1,79,192,197,162,250,1,79,192,197,227,0,2,255,255,69,127,196,184,222,1,23,0,232,1,12,0,232,1,78,192,197,130,234,1,78,192,197,194,236,1,79,192,197,3,244,1,79,192,197,98,222,1,77,192,197,131,224,1,77,192,197,227,230,1,78,192,197,66,125,1,13,0,125,1,76,192,197,194,160,1,77,192,197,2,205,1,255,255,69,127,196,144,209,1,77,192,197,66,120,1,76,192,197,2,121,1,76,192,197,66,123,1,76,192,197,130,76,1,48,0,92,1,23,0,98,1,12,0,98,1,75,192,197,2,100,1,75,192,197,66,116,1,75,192,197,130,118,1,75,192,197,194,92,1,74,192,197,66,94,1,74,192,197,130,96,1,74,192,197,194,84,1,12,0,84,1,73,192,197,66,86,1,73,192,197,130,88,1,73,192,197,194,90,1,74,192,197,2,76,1,72,192,197,130,78,1,72,192,197,194,80,1,73,192,197,2,54,1,23,0,61,1,12,0,61,1,71,192,197,130,67,1,71,192,197,194,69,1,72,192,197,2,71,1,72,192,197,66,54,1,70,192,197,194,57,1,71,192,197,2,59,1,71,192,197,66,34,1,9,0,34,1,70,192,197,2,36,1,70,192,197,66,52,1,70,192,197,130,28,1,69,192,197,66,30,1,69,192,197,130,32,1,69,192,197,194,196,0,100,0,221,0,51,0,12,1,23,0,20,1,12,0,20,1,68,192,197,66,22,1,68,192,197,130,24,1,68,192,197,194,26,1,69,192,197,2,12,1,67,192,197,130,14,1,67,192,197,194,18,1,68,192,197,2,4,1,13,0,4,1,255,255,69,127,196,162,6,1,66,192,197,194,8,1,67,192,197,2,10,1,67,192,197,66,221,0,66,192,197,130,0,1,255,255,69,127,196,164,2,1,255,255,69,127,196,140,203,0,23,0,211,0,12,0,211,0,65,192,197,130,212,0,65,192,197,194,213,0,66,192,197,2,214,0,66,192,197,66,203,0,64,192,197,194,209,0,65,192,197,2,210,0,65,192,197,66,200,0,9,0,200,0,64,192,197,2,201,0,64,192,197,66,202,0,64,192,197,130,196,0,255,255,69,127,196,150,197,0,255,255,69,127,196,146,199,0,63,192,197,194,79,0,62,0,88,0,30,0,192,0,16,0,192,0,255,255,69,127,196,138,193,0,255,255,69,127,196,136,194,0,255,255,69,127,196,142,195,0,255,255,69,127,196,154,88,0,255,255,164,230,69,5,89,0,255,255,225,235,69,5,90,0,255,255,147,243,69,5,82,0,16,0,82,0,255,255,55,218,69,5,83,0,255,255,125,219,69,5,84,0,255,255,170,224,69,5,87,0,255,255,40,228,69,5,79,0,255,255,187,211,69,5,80,0,255,255,222,211,69,5,81,0,255,255,57,214,69,5,71,0,30,0,75,0,16,0,75,0,255,255,74,198,69,5,76,0,255,255,119,200,69,5,77,0,255,255,165,206,69,5,78,0,255,255,214,209,69,5,71,0,255,255,134,184,69,5,72,0,255,255,198,187,69,5,74,0,255,255,246,191,69,5,68,0,12,0,68,0,255,255,108,177,69,5,69,0,255,255,90,181,69,5,70,0,255,255,18,182,69,5,65,0,255,255,0,127,69,5,66,0,255,255,159,168,69,5,67,0,255,255,39,172,69,5,118,1,65,0,73,0,74,0,76,0,77,0,85,0,87,0,91,0,192,0,198,0,199,0,204,0,209,0,215,0,221,0,222,0,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1,8,1,9,1,10,1,11,1,12,1,13,1,14,1,15,1,18,1,19,1,20,1,21,1,22,1,23,1,24,1,25,1,26,1,27,1,28,1,29,1,30,1,31,1,32,1,33,1,34,1,35,1,36,1,37,1,52,1,53,1,54,1,55,1,57,1,58,1,59,1,60,1,61,1,62,1,67,1,68,1,69,1,70,1,71,1,72,1,76,1,77,1,78,1,79,1,80,1,81,1,84,1,85,1,86,1,87,1,88,1,89,1,90,1,91,1,92,1,93,1,94,1,95,1,96,1,97,1,98,1,99,1,100,1,101,1,116,1,117,1,118,1,119,1,120,1,122,1,123,1,124,1,125,1,126,1,160,1,161,1,205,1,206,1,209,1,210,1,222,1,223,1,224,1,225,1,230,1,231,1,232,1,233,1,234,1,235,1,236,1,237,1,244,1,245,1,248,1,249,1,250,1,251,1,0,2,1,2,2,2,3,2,4,2,5,2,6,2,7,2,12,2,13,2,14,2,15,2,16,2,17,2,18,2,19,2,24,2,25,2,26,2,27,2,30,2,31,2,38,2,39,2,40,2,41,2,42,2,43,2,44,2,45,2,46,2,47,2,48,2,49,2,50,2,51,2,0,30,1,30,2,30,3,30,4,30,5,30,6,30,7,30,8,30,9,30,10,30,11,30,12,30,13,30,14,30,15,30,16,30,17,30,18,30,19,30,20,30,21,30,22,30,23,30,24,30,25,30,26,30,27,30,28,30,29,30,30,30,31,30,32,30,33,30,34,30,35,30,36,30,37,30,38,30,39,30,40,30,41,30,42,30,43,30,48,30,49,30,50,30,51,30,52,30,53,30,54,30,55,30,56,30,57,30,58,30,59,30,60,30,61,30,62,30,63,30,64,30,65,30,66,30,67,30,68,30,69,30,70,30,71,30,72,30,73,30,74,30,75,30,76,30,77,30,78,30,79,30,80,30,81,30,82,30,83,30,84,30,85,30,86,30,87,30,88,30,89,30,90,30,91,30,92,30,93,30,94,30,95,30,96,30,97,30,98,30,99,30,100,30,101,30,102,30,103,30,104,30,105,30,106,30,107,30,108,30,109,30,110,30,111,30,112,30,113,30,128,30,129,30,130,30,131,30,132,30,133,30,134,30,135,30,136,30,137,30,138,30,139,30,140,30,141,30,142,30,143,30,144,30,145,30,146,30,147,30,148,30,149,30,160,30,161,30,162,30,163,30,164,30,165,30,166,30,167,30,168,30,169,30,170,30,171,30,172,30,173,30,174,30,175,30,176,30,177,30,178,30,179,30,180,30,181,30,182,30,183,30,184,30,185,30,186,30,187,30,188,30,189,30,190,30,191,30,192,30,193,30,194,30,195,30,196,30,197,30,198,30,199,30,204,30,205,30,206,30,207,30,208,30,209,30,210,30,211,30,212,30,213,30,214,30,215,30,216,30,217,30,218,30,219,30,220,30,221,30,222,30,223,30,224,30,225,30,226,30,227,30,242,30,243,30,244,30,245,30,246,30,247,30,248,30,249,30,42,33,44,33,134,94,135,94,135,101,136,101,51,150,52,150,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,75,141,1,16,219,79,0,96,1,0,0,96,170,170,170,170,34,84,3,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,68,45,3,0,68,45,3,0,180,55,3,0,180,55,3,0,24,64,3,0,24,64,3,0,196,79,3,0,214,79,3,0,6,84,3,0,17,0,0,0,5,0,0,0,0,0,0,41,127,0,0,96,125,0,0,123,44,0,118,123,125,0,0,126,169,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,0,249,250,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,112,14,239,48,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,221,0,229,0,237,0,245,0,253,0,5,1,13,1,21,1,29,1,37,1,45,1,48,0,52,1,60,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,1,48,0,48,0,48,0,48,0,75,1,83,1,48,0,91,1,99,1,107,1,110,1,48,0,48,0,118,1,126,1,48,0,48,0,48,0,134,1,142,1,150,1,158,1,165,1,173,1,181,1,189,1,197,1,205,1,213,1,221,1,229,1,236,1,244,1,252,1,4,2,12,2,20,2,28,2,36,2,44,2,51,2,59,2,67,2,75,2,83,2,91,2,99,2,103,2,111,2,119,2,125,2,133,2,141,2,48,0,149,2,48,0,157,2,165,2,171,2,179,2,187,2,195,2,203,2,211,2,219,2,226,2,234,2,242,2,250,2,2,3,10,3,18,3,24,3,32,3,40,3,48,3,56,3,64,3,72,3,80,3,88,3,96,3,104,3,112,3,120,3,128,3,136,3,142,3,48,0,148,3,156,3,164,3,172,3,180,3,188,3,196,3,203,3,211,3,218,3,226,3,234,3,242,3,250,3,48,0,0,4,8,4,16,4,24,4,31,4,39,4,47,4,55,4,62,4,70,4,78,4,86,4,94,4,102,4,110,4,115,4,122,4,130,4,138,4,146,4,154,4,162,4,169,4,177,4,183,4,190,4,197,4,205,4,213,4,221,4,229,4,237,4,245,4,48,0,253,4,5,5,13,5,21,5,26,5,30,5,37,5,45,5,53,5,61,5,69,5,77,5,84,5,91,5,99,5,107,5,115,5,123,5,131,5,139,5,147,5,154,5,161,5,166,5,174,5,182,5,189,5,196,5,203,5,211,5,219,5,227,5,232,5,240,5,248,5,255,5,3,6,11,6,19,6,22,6,28,6,36,6,44,6,51,6,59,6,64,6,71,6,75,6,83,6,91,6,99,6,107,6,114,6,121,6,129,6,131,6,139,6,147,6,155,6,161,6,48,0,164,6,171,6,178,6,185,6,193,6,201,6,207,6,212,6,220,6,228,6,236,6,48,0,244,6,252,6,4,7,11,7,19,7,27,7,33,7,41,7,49,7,56,7,62,7,66,7,72,7,48,0,48,0,48,0,80,7,88,7,96,7,104,7,112,7,120,7,128,7,136,7,144,7,152,7,160,7,168,7,176,7,184,7,192,7,200,7,208,7,216,7,224,7,232,7,240,7,248,7,0,8,8,8,16,8,24,8,32,8,40,8,48,8,56,8,64,8,72,8,80,8,88,8,96,8,104,8,112,8,120,8,128,8,136,8,144,8,152,8,160,8,168,8,176,8,184,8,192,8,200,8,208,8,216,8,224,8,232,8,240,8,248,8,0,9,8,9,16,9,24,9,32,9,40,9,48,9,56,9,64,9,72,9,80,9,88,9,96,9,104,9,112,9,120,9,128,9,136,9,144,9,152,9,160,9,168,9,176,9,184,9,192,9,200,9,208,9,216,9,224,9,232,9,240,9,248,9,0,10,8,10,16,10,24,10,32,10,40,10,48,10,56,10,64,10,72,10,80,10,88,10,96,10,104,10,112,10,120,10,128,10,136,10,144,10,152,10,160,10,168,10,176,10,184,10,192,10,200,10,208,10,216,10,224,10,232,10,240,10,248,10,0,11,8,11,16,11,24,11,32,11,40,11,48,11,56,11,64,11,72,11,80,11,88,11,96,11,104,11,112,11,120,11,128,11,136,11,144,11,152,11,160,11,168,11,176,11,184,11,192,11,200,11,208,11,216,11,224,11,232,11,240,11,248,11,0,12,8,12,16,12,24,12,32,12,40,12,48,12,56,12,64,12,72,12,80,12,88,12,96,12,104,12,112,12,120,12,128,12,136,12,144,12,152,12,160,12,168,12,176,12,184,12,192,12,200,12,208,12,216,12,224,12,232,12,240,12,248,12,0,13,8,13,16,13,24,13,32,13,40,13,48,13,56,13,64,13,72,13,80,13,88,13,96,13,104,13,112,13,120,13,128,13,136,13,144,13,152,13,160,13,168,13,176,13,184,13,192,13,200,13,208,13,216,13,224,13,232,13,240,13,248,13,0,14,8,14,16,14,24,14,32,14,40,14,48,14,56,14,64,14,72,14,80,14,88,14,96,14,104,14,112,14,120,14,128,14,136,14,144,14,152,14,160,14,168,14,176,14,184,14,192,14,200,14,208,14,216,14,224,14,232,14,240,14,248,14,0,15,8,15,16,15,24,15,32,15,40,15,48,15,56,15,64,15,72,15,80,15,88,15,96,15,104,15,112,15,120,15,128,15,136,15,144,15,152,15,160,15,168,15,176,15,184,15,192,15,200,15,208,15,216,15,224,15,232,15,240,15,248,15,0,16,8,16,16,16,24,16,32,16,40,16,48,16,56,16,64,16,72,16,80,16,88,16,96,16,104,16,112,16,120,16,128,16,136,16,144,16,152,16,160,16,168,16,176,16,184,16,192,16,200,16,208,16,216,16,224,16,232,16,240,16,248,16,0,17,8,17,16,17,24,17,32,17,40,17,48,17,56,17,64,17,72,17,80,17,88,17,96,17,104,17,112,17,120,17,128,17,136,17,144,17,152,17,160,17,168,17,176,17,184,17,192,17,200,17,208,17,216,17,224,17,232,17,240,17,248,17,0,18,8,18,16,18,24,18,32,18,40,18,48,18,56,18,64,18,72,18,80,18,88,18,96,18,104,18,112,18,120,18,128,18,136,18,144,18,152,18,160,18,168,18,176,18,184,18,192,18,200,18,208,18,216,18,224,18,232,18,240,18,248,18,0,19,8,19,16,19,24,19,32,19,40,19,48,19,56,19,64,19,72,19,80,19,88,19,96,19,104,19,112,19,120,19,128,19,136,19,144,19,152,19,160,19,168,19,176,19,184,19,192,19,200,19,208,19,216,19,224,19,232,19,240,19,248,19,0,20,8,20,16,20,24,20,32,20,40,20,48,20,56,20,64,20,72,20,80,20,88,20,96,20,104,20,112,20,120,20,128,20,136,20,144,20,152,20,160,20,168,20,176,20,184,20,192,20,200,20,208,20,216,20,224,20,232,20,240,20,248,20,0,21,8,21,16,21,24,21,32,21,40,21,48,21,56,21,64,21,72,21,80,21,88,21,96,21,104,21,112,21,120,21,128,21,136,21,144,21,152,21,160,21,168,21,176,21,184,21,192,21,200,21,208,21,216,21,224,21,232,21,240,21,248,21,0,22,8,22,16,22,24,22,32,22,40,22,48,22,56,22,64,22,72,22,80,22,88,22,96,22,104,22,112,22,120,22,128,22,136,22,144,22,152,22,160,22,168,22,176,22,184,22,192,22,200,22,208,22,216,22,224,22,232,22,240,22,248,22,0,23,8,23,16,23,24,23,32,23,40,23,48,23,56,23,64,23,72,23,80,23,88,23,96,23,104,23,112,23,120,23,128,23,136,23,144,23,152,23,160,23,168,23,176,23,184,23,192,23,200,23,208,23,216,23,224,23,232,23,240,23,248,23,0,24,8,24,16,24,24,24,32,24,40,24,48,24,56,24,64,24,72,24,80,24,88,24,96,24,104,24,112,24,120,24,128,24,136,24,144,24,152,24,160,24,168,24,176,24,184,24,192,24,200,24,208,24,216,24,224,24,232,24,240,24,248,24,0,25,8,25,16,25,24,25,32,25,40,25,48,25,56,25,64,25,72,25,80,25,88,25,96,25,104,25,112,25,120,25,128,25,136,25,144,25,152,25,160,25,168,25,176,25,184,25,192,25,200,25,208,25,216,25,224,25,232,25,240,25,248,25,0,26,8,26,16,26,24,26,32,26,40,26,48,26,56,26,64,26,72,26,80,26,88,26,96,26,104,26,112,26,120,26,128,26,136,26,144,26,152,26,160,26,168,26,176,26,184,26,192,26,200,26,208,26,216,26,224,26,232,26,240,26,248,26,0,27,8,27,16,27,24,27,32,27,40,27,48,27,56,27,64,27,72,27,80,27,88,27,96,27,104,27,112,27,120,27,128,27,136,27,144,27,152,27,160,27,168,27,176,27,184,27,191,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,208,48,161,0,48,0,48,0,153,0,216,48,224,48,230,48,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,199,27,207,27,215,27,223,27,231,27,239,27,247,27,255,27,7,28,15,28,23,28,31,28,39,28,47,28,55,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,62,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,191,8,254,8,62,9,126,9,190,9,254,9,62,10,125,10,189,10,253,10,60,11,124,11,188,11,252,11,60,12,123,12,187,12,251,12,58,13,122,13,186,13,240,13,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,48,14,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,67,28,75,28,83,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,91,28,99,28,105,28,112,28,48,0,118,28,123,28,128,28,48,0,48,0,48,0,48,0,135,28,143,28,149,28,156,28,162,28,169,28,176,28,182,28,190,28,198,28,205,28,211,28,218,28,226,28,228,28,236,28,244,28,250,28,253,28,5,29,48,0,48,0,13,29,20,29,28,29,31,29,37,29,48,0,48,0,45,29,48,0,50,29,57,29,65,29,73,29,77,29,84,29,89,29,95,29,48,0,48,0,48,0,48,0,101,29,105,29,48,0,110,29,48,0,48,0,48,0,48,0,117,29,48,0,121,29,48,0,48,0,126,29,48,0,132,29,140,29,143,29,149,29,48,0,48,0,48,0,156,29,160,29,48,0,165,29,170,29,176,29,179,29,187,29,48,0,192,29,48,0,48,0,48,0,197,29,205,29,213,29,221,29,229,29,237,29,245,29,252,29,4,30,12,30,19,30,27,30,35,30,41,30,48,30,53,30,61,30,69,30,75,30,48,0,82,30,48,0,90,30,95,30,102,30,110,30,116,30,124,30,131,30,139,30,146,30,153,30,158,30,163,30,171,30,179,30,183,30,48,0,191,30,199,30,206,30,214,30,222,30,229,30,48,0,235,30,243,30,48,0,251,30,48,0,253,30,48,0,48,0,4,31,12,31,16,31,48,0,24,31,48,0,32,31,40,31,43,31,48,0,50,31,56,31,48,0,64,31,69,31,77,31,84,31,92,31,48,0,98,31,104,31,48,0,110,31,48,0,48,0,48,0,118,31,126,31,48,0,48,0,48,0,132,31,139,31,48,0,147,31,151,31,156,31,164,31,172,31,180,31,187,31,195,31,201,31,48,0,207,31,215,31,223,31,48,0,231,31,239,31,247,31,255,31,7,32,15,32,22,32,30,32,38,32,45,32,52,32,60,32,48,0,66,32,73,32,48,0,78,32,85,32,93,32,48,0,48,0,48,0,48,0,48,0,48,0,100,32,48,0,48,0,48,0,108,32,48,0,48,0,114,32,48,0,118,32,48,0,126,32,48,0,48,0,48,0,48,0,133,32,48,0,141,32,146,32,153,32,159,32,166,32,174,32,48,0,48,0,182,32,189,32,195,32,48,0,201,32,48,0,48,0,207,32,210,32,218,32,48,0,224,32,48,0,48,0,231,32,234,32,242,32,48,0,249,32,251,32,48,0,3,33,6,33,13,33,48,0,21,33,29,33,48,0,35,33,48,0,48,0,38,33,48,0,48,0,48,0,48,0,48,0,46,33,48,0,48,0,48,0,48,33,56,33,62,33,48,0,48,0,48,0,69,33,75,33,80,33,88,33,93,33,97,33,104,33,109,33,48,0,115,33,120,33,48,0,48,0,128,33,136,33,48,0,142,33,149,33,48,0,48,0,156,33,162,33,170,33,48,0,173,33,181,33,187,33,193,33,48,0,201,33,48,0,202,33,210,33,48,0,215,33,223,33,226,33,48,0,233,33,240,33,247,33,255,33,48,0,48,0,48,0,48,0,48,0,48,0,6,34,48,0,48,0,11,34,18,34,23,34,31,34,39,34,45,34,48,0,48,0,51,34,48,0,48,0,58,34,65,34,73,34,79,34,87,34,95,34,48,0,102,34,48,0,109,34,116,34,121,34,129,34,48,0,135,34,140,34,144,34,152,34,154,34,161,34,165,34,48,0,170,34,48,0,48,0,48,0,174,34,48,0,48,0,180,34,188,34,48,0,192,34,199,34,206,34,214,34,218,34,226,34,48,0,234,34,235,34,48,0,243,34,251,34,2,35,8,35,14,35,21,35,28,35,34,35,42,35,50,35,56,35,60,35,68,35,76,35,48,0,48,0,48,0,48,0,84,35,90,35,98,35,106,35,107,35,115,35,120,35,48,0,48,0,48,0,127,35,129,35,136,35,141,35,148,35,151,35,159,35,166,35,170,35,178,35,185,35,193,35,201,35,207,35,215,35,222,35,230,35,238,35,246,35,48,0,254,35,6,36,14,36,22,36,48,0,28,36,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,36,36,48,0,48,0,48,0,48,0,48,0,48,0,43,36,45,36,52,36,59,36,48,0,66,36,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,74,36,76,36,83,36,90,36,93,36,48,0,48,0,101,36,108,36,116,36,120,36,48,0,128,36,135,36,140,36,48,0,48,0,147,36,150,36,158,36,164,36,48,0,172,36,180,36,188,36,196,36,200,36,208,36,214,36,219,36,224,36,232,36,48,0,239,36,48,0,245,36,253,36,4,37,11,37,19,37,27,37,48,0,35,37,41,37,49,37,57,37,48,0,64,37,71,37,78,37,85,37,93,37,98,37,105,37,112,37,118,37,126,37,131,37,139,37,147,37,153,37,160,37,163,37,169,37,176,37,183,37,186,37,194,37,48,0,201,37,209,37,48,0,211,37,48,0,48,0,218,37,48,0,221,37,228,37,48,0,235,37,241,37,48,0,247,37,48,0,254,37,5,38,48,0,48,0,10,38,48,0,48,0,18,38,22,38,30,38,48,0,48,0,38,38,48,0,48,0,44,38,52,38,59,38,67,38,75,38,83,38,90,38,97,38,105,38,112,38,120,38,128,38,136,38,143,38,150,38,158,38,166,38,171,38,48,0,48,0,176,38,48,0,48,0,48,0,180,38,186,38,48,0,48,0,48,0,189,38,48,0,197,38,48,0,204,38,48,0,48,0,48,0,48,0,209,38,48,0,216,38,48,0,219,38,226,38,48,0,48,0,233,38,48,0,48,0,238,38,48,0,242,38,48,0,250,38,1,39,9,39,48,0,14,39,18,39,48,0,23,39,48,0,48,0,48,0,48,0,31,39,37,39,40,39,48,0,48,0,48,39,56,39,48,0,64,39,68,39,48,0,73,39,48,0,80,39,48,0,87,39,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,39,99,39,106,39,111,39,115,39,48,0,48,0,48,0,48,0,122,39,130,39,138,39,146,39,150,39,157,39,165,39,172,39,175,39,181,39,48,0,189,39,48,0,48,0,197,39,204,39,212,39,48,0,220,39,48,0,48,0,227,39,235,39,48,0,48,0,238,39,246,39,48,0,48,0,252,39,4,40,12,40,48,0,19,40,48,0,48,0,25,40,30,40,48,0,48,0,48,0,34,40,48,0,40,40,48,40,48,0,54,40,48,0,48,0,48,0,57,40,63,40,67,40,74,40,81,40,89,40,97,40,103,40,110,40,114,40,121,40,129,40,130,40,48,0,138,40,146,40,48,0,148,40,155,40,48,0,48,0,162,40,48,0,168,40,48,0,176,40,183,40,191,40,48,0,198,40,48,0,205,40,48,0,48,0,48,0,48,0,213,40,48,0,221,40,227,40,234,40,242,40,249,40,48,0,48,0,1,41,9,41,11,41,48,0,48,0,19,41,24,41,48,0,48,0,48,0,32,41,40,41,48,0,48,0,44,41,48,0,48,0,49,41,55,41,48,0,48,0,60,41,48,0,68,41,76,41,48,0,82,41,88,41,95,41,48,0,48,0,48,0,102,41,48,0,48,0,107,41,48,0,115,41,48,0,48,0,123,41,130,41,48,0,48,0,48,0,135,41,141,41,148,41,156,41,48,0,164,41,48,0,166,41,173,41,179,41,48,0,183,41,48,0,191,41,199,41,205,41,48,0,212,41,48,0,217,41,224,41,231,41,48,0,48,0,237,41,48,0,243,41,48,0,250,41,2,42,48,0,48,0,48,0,48,0,48,0,9,42,17,42,21,42,28,42,36,42,44,42,52,42,55,42,48,0,63,42,71,42,73,42,81,42,88,42,96,42,48,0,48,0,104,42,108,42,113,42,48,0,121,42,125,42,133,42,141,42,48,0,149,42,154,42,161,42,48,0,168,42,48,0,48,0,175,42,48,0,179,42,185,42,193,42,201,42,48,0,209,42,48,0,215,42,48,0,221,42,226,42,231,42,236,42,243,42,250,42,48,0,1,43,48,0,48,0,7,43,48,0,11,43,48,0,48,0,18,43,26,43,30,43,48,0,37,43,48,0,48,0,41,43,48,0,46,43,48,0,48,0,53,43,48,0,61,43,65,43,48,0,72,43,48,0,48,0,48,0,48,0,48,0,48,0,75,43,48,0,83,43,48,0,91,43,99,43,103,43,110,43,48,0,116,43,48,0,48,0,48,0,122,43,126,43,134,43,48,0,142,43,48,0,147,43,48,0,48,0,151,43,158,43,163,43,171,43,177,43,48,0,48,0,184,43,48,0,191,43,48,0,199,43,200,43,208,43,216,43,220,43,228,43,235,43,242,43,244,43,48,0,252,43,3,44,10,44,17,44,24,44,48,0,48,0,48,0,29,44,35,44,48,0,48,0,40,44,48,0,44,44,51,44,48,0,48,0,56,44,60,44,67,44,74,44,81,44,89,44,48,0,48,0,48,0,97,44,48,0,48,0,48,0,48,0,48,0,48,0,102,44,48,0,48,0,48,0,48,0,48,0,106,44,114,44,122,44,128,44,48,0,136,44,141,44,48,0,149,44,48,0,155,44,160,44,168,44,174,44,179,44,48,0,48,0,187,44,48,0,194,44,200,44,208,44,48,0,215,44,223,44,230,44,237,44,48,0,244,44,252,44,48,0,48,0,48,0,0,45,48,0,48,0,6,45,14,45,48,0,48,0,48,0,22,45,23,45,48,0,31,45,48,0,48,0,48,0,37,45,45,45,52,45,48,0,48,0,48,0,59,45,67,45,74,45,79,45,48,0,48,0,48,0,48,0,48,0,48,0,48,0,86,45,92,45,48,0,48,0,48,0,48,0,48,0,48,0,97,45,101,45,107,45,114,45,122,45,128,45,136,45,144,45,152,45,159,45,166,45,48,0,174,45,48,0,182,45,190,45,198,45,206,45,213,45,221,45,226,45,234,45,242,45,249,45,1,46,9,46,48,0,48,0,48,0,48,0,16,46,48,0,48,0,21,46,48,0,48,0,27,46,34,46,48,0,48,0,41,46,45,46,48,0,52,46,55,46,61,46,66,46,73,46,48,0,48,0,48,0,48,0,48,0,48,0,80,46,48,0,48,0,48,0,82,46,89,46,94,46,102,46,109,46,114,46,119,46,127,46,135,46,140,46,148,46,151,46,157,46,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,160,46,168,46,176,46,48,0,48,0,48,0,180,46,187,46,48,0,48,0,48,0,48,0,189,46,197,46,204,46,210,46,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,46,48,0,48,0,48,0,48,0,223,46,48,0,229,46,48,0,234,46,48,0,48,0,241,46,245,46,251,46,3,47,8,47,15,47,23,47,26,47,48,0,34,47,48,0,48,0,40,47,45,47,48,0,48,0,48,0,48,0,48,0,52,47,48,0,48,0,48,0,48,0,48,0,56,47,48,0,48,0,48,0,48,0,62,47,48,0,67,47,48,0,48,0,48,0,71,47,79,47,86,47,94,47,48,0,48,0,101,47,108,47,113,47,48,0,119,47,48,0,124,47,132,47,134,47,48,0,142,47,48,0,48,0,48,0,147,47,153,47,48,0,161,47,48,0,48,0,48,0,168,47,170,47,48,0,178,47,186,47,194,47,200,47,48,0,205,47,211,47,217,47,225,47,48,0,233,47,48,0,48,0,238,47,246,47,254,47,6,48,48,0,48,0,14,48,48,0,48,0,20,48,48,0,48,0,48,0,23,48,29,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,36,48,48,0,44,48,48,48,54,48,48,0,48,0,61,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,64,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,72,48,80,48,88,48,96,48,104,48,112,48,120,48,128,48,136,48,144,48,152,48,160,48,168,48,176,48,184,48,192,48,200,48,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,41,0,202,65,39,0,202,130,39,0,202,195,39,0,202,4,40,0,202,69,40,0,202,134,40,0,202,199,40,0,202,8,41,0,202,73,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,98,66,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,162,66,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,226,66,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,157,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,136,192,0,0,0,5,5,22,157,5,5,27,157,5,5,31,157,192,0,0,0,5,5,39,157,192,0,0,0,5,5,116,157,5,5,117,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,158,5,5,69,158,192,0,0,0,6,5,120,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,158,192,0,0,0,5,5,98,158,192,0,0,0,192,0,0,0,5,5,163,159,192,0,0,0,5,5,174,159,192,0,0,0,5,5,165,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,158,192,0,0,0,5,5,151,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,165,192,0,0,0,5,5,153,157,5,5,119,158,192,0,0,0,5,5,48,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,157,5,5,111,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,251,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,0,128,6,5,0,129,6,5,0,130,6,5,0,131,7,5,0,134,6,5,0,143,9,5,15,157,6,5,16,157,7,5,17,157,6,5,19,157,6,5,20,157,7,5,21,157,6,5,23,157,6,5,24,157,6,5,25,157,6,5,26,157,6,5,28,157,6,5,29,157,6,5,33,157,6,5,34,157,6,5,35,157,6,5,36,157,6,5,37,157,8,5,38,157,6,5,40,157,6,5,41,157,6,5,42,157,6,5,43,157,6,5,45,157,6,5,100,157,6,5,101,157,7,5,102,157,6,5,103,157,6,5,104,157,6,5,105,157,6,5,106,157,6,5,107,157,7,5,109,157,6,5,110,157,6,5,114,157,6,5,115,157,6,5,118,157,6,5,119,157,6,5,122,157,6,5,123,157,6,5,124,157,6,5,125,157,6,5,127,157,6,5,128,157,6,5,131,157,6,5,132,157,6,5,134,157,6,5,135,157,6,5,136,157,6,5,137,157,6,5,138,157,6,5,139,157,6,5,140,157,6,5,143,157,6,5,144,157,6,5,48,158,6,5,50,158,6,5,51,158,7,5,54,158,6,5,57,158,6,5,58,158,7,5,60,158,6,5,61,158,6,5,62,158,6,5,63,158,6,5,64,158,7,5,67,158,6,5,68,158,8,5,70,158,7,5,71,158,6,5,74,158,6,5,75,158,6,5,77,158,6,5,78,158,6,5,79,158,6,5,81,158,6,5,82,158,6,5,83,158,6,5,84,158,7,5,85,158,7,5,86,158,6,5,88,158,6,5,91,158,6,5,92,158,6,5,94,158,6,5,95,158,6,5,96,158,6,5,99,158,6,5,101,158,6,5,144,159,6,5,145,159,6,5,149,159,6,5,150,159,6,5,151,159,7,5,152,159,6,5,153,159,6,5,155,159,6,5,161,159,6,5,164,159,6,5,165,159,6,5,166,159,6,5,167,159,6,5,168,159,6,5,169,159,6,5,170,159,6,5,171,159,6,5,172,159,6,5,173,159,6,5,175,159,6,5,176,159,6,5,177,159,6,5,178,159,6,5,168,161,6,5,169,161,6,5,170,161,6,5,183,161,6,5,184,161,6,5,185,161,6,5,189,161,6,5,190,161,6,5,192,161,6,5,193,161,6,5,194,161,6,5,195,161,6,5,196,161,6,5,201,161,6,5,202,161,6,5,203,161,6,5,204,161,6,5,206,161,6,5,207,161,6,5,208,161,6,5,209,161,6,5,210,161,6,5,211,161,6,5,221,161,6,5,222,161,6,5,223,161,6,5,224,161,6,5,225,161,6,5,226,161,6,5,122,165,6,5,124,165,6,5,127,165,6,5,147,165,6,5,148,165,6,5,149,165,6,5,150,165,6,5,151,165,6,5,154,165,7,5,155,165,6,5,156,165,6,5,158,165,6,5,159,165,6,5,163,165,6,5,164,165,6,5,165,165,6,5,182,165,6,5,199,165,6,5,200,165,6,5,201,165,7,5,70,171,6,5,83,171,6,5,85,171,6,5,88,171,6,5,109,171,6,5,110,171,6,5,112,171,6,5,113,171,6,5,115,171,6,5,192,177,6,5,193,177,6,5,194,177,6,5,196,177,6,5,197,177,6,5,198,177,6,5,203,177,6,5,207,177,6,5,208,177,6,5,219,177,6,5,221,177,6,5,50,185,6,5,57,185,6,5,58,185,6,5,59,185,6,5,60,185,6,5,61,185,6,5,62,185,6,5,63,185,6,5,89,193,6,5,91,193,6,5,101,193,6,5,102,193,6,5,103,193,6,5,105,193,6,5,231,201,6,5,233,201,6,5,234,201,6,5,235,201,6,5,201,209,6,5,203,209,6,5,204,209,6,5,206,209,6,5,244,216,6,5,245,216,6,5,41,224,6,5,51,230,6,5,52,230,6,5,32,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,157,5,5,0,146,5,5,0,147,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,148,5,5,50,157,5,5,160,157,5,5,51,157,5,5,0,149,5,5,52,157,5,5,161,157,5,5,124,158,5,5,125,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,38,157,6,5,61,157,6,5,251,157,5,5,0,150,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,5,0,128,8,5,15,157,8,5,56,157,7,5,25,159,7,5,57,157,8,5,170,157,7,5,58,157,6,5,157,159,6,5,0,134,6,5,132,158,6,5,0,152,7,5,22,158,6,5,169,160,6,5,17,157,198,131,31,0,198,227,31,0,198,67,32,0,198,163,32,0,198,3,33,0,198,99,33,0,198,195,33,0,198,35,34,0,198,131,34,0,198,227,34,0,198,67,35,0,198,163,35,0,198,3,36,0,198,99,36,0,197,227,35,0,198,195,36,0,198,35,37,0,198,131,37,0,198,227,37,0,197,67,36,0,198,67,38,0,198,163,38,0,197,163,36,0,197,3,37,0,198,3,39,0,198,99,39,0,198,195,39,0,198,35,40,0,197,99,37,0,198,131,40,0,197,195,37,0,198,227,40,0,197,35,38,0,198,67,41,0,197,131,38,0,197,227,38,0,6,5,246,185,6,5,77,159,6,5,60,158,6,5,171,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,0,128,7,5,15,157,7,5,56,157,6,5,25,159,6,5,187,157,6,5,217,157,6,5,0,154,6,5,21,157,6,5,12,157,6,5,38,157,7,5,70,158,6,5,86,158,6,5,85,158,6,5,71,158,6,5,70,171,6,5,102,157,6,5,67,158,6,5,189,180,7,5,77,161,6,5,62,170,6,5,140,160,6,5,197,181,6,5,114,184,6,5,161,182,6,5,158,162,6,5,170,182,6,5,22,165,6,5,109,157,6,5,186,222,6,5,65,230,6,5,116,160,6,5,138,169,6,5,178,201,6,5,23,160,6,5,193,158,6,5,118,159,6,5,57,157,7,5,170,157,6,5,58,157,7,5,67,159,7,5,7,159,6,5,165,162,6,5,157,167,6,5,149,167,6,5,48,213,6,5,7,160,6,5,42,208,6,5,164,166,6,5,71,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,39,0,197,130,39,0,197,194,39,0,197,2,40,0,197,66,40,0,197,130,40,0,197,194,40,0,197,2,41,0,197,66,41,0,197,131,41,0,197,227,41,0,197,67,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,34,45,0,197,99,45,0,197,195,45,0,197,35,46,0,197,131,46,0,197,227,46,0,197,67,47,0,197,163,47,0,197,3,48,0,197,99,48,0,197,195,48,0,197,35,49,0,197,131,49,0,197,227,49,0,197,67,50,0,197,163,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,2,51,0,197,66,51,0,197,130,51,0,197,194,51,0,197,4,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,197,130,53,0,197,194,53,0,197,2,54,0,197,66,54,0,197,130,54,0,197,195,54,0,197,35,55,0,197,131,55,0,197,227,55,0,197,67,56,0,197,163,56,0,197,3,57,0,197,99,57,0,197,195,57,0,197,35,58,0,197,131,58,0,197,227,58,0,197,67,59,0,197,163,59,0,197,3,60,0,197,99,60,0,197,195,60,0,197,35,61,0,197,131,61,0,197,227,61,0,197,67,62,0,197,163,62,0,192,0,0,0,5,5,137,158,5,5,219,159,192,0,0,0,192,0,0,0,5,5,64,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,171,192,0,0,0,5,5,83,185,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,159,192,0,0,0,5,5,17,166,192,0,0,0,192,0,0,0,5,5,174,158,5,5,175,158,5,5,176,158,5,5,177,158,5,5,178,158,5,5,179,158,5,5,180,158,5,5,181,158,5,5,52,160,5,5,53,160,192,0,0,0,5,5,54,160,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,160,5,5,56,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,162,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,166,192,0,0,0,5,5,90,166,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,185,5,5,72,178,5,5,73,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,193,192,0,0,0,192,0,0,0,5,5,26,202,5,5,27,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,217,192,0,0,0,192,0,0,0,5,5,22,217,192,0,0,0,5,5,23,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,238,192,0,0,0,5,5,27,242,192,0,0,0,5,5,153,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,235,5,5,186,158,192,0,0,0,192,0,0,0,5,5,115,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,166,192,0,0,0,5,5,139,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,210,192,0,0,0,5,5,17,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,185,192,0,0,0,5,5,24,210,192,0,0,0,192,0,0,0,5,5,78,230,5,5,79,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,157,192,0,0,0,5,5,188,185,192,0,0,0,192,0,0,0,5,5,164,162,5,5,192,185,5,5,56,202,5,5,57,202,5,5,58,202,5,5,28,210,5,5,220,249,5,5,166,162,5,5,188,193,5,5,255,157,192,0,0,0,5,5,115,160,192,0,0,0,192,0,0,0,5,5,98,157,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,210,192,0,0,0,5,5,82,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,210,5,5,133,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,162,192,0,0,0,192,0,0,0,5,5,249,162,192,0,0,0,5,5,250,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,166,5,5,253,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,178,5,5,225,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,186,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,194,192,0,0,0,5,5,13,194,192,0,0,0,192,0,0,0,5,5,14,194,5,5,15,194,192,0,0,0,5,5,16,194,192,0,0,0,192,0,0,0,5,5,17,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,202,192,0,0,0,5,5,123,202,192,0,0,0,192,0,0,0,5,5,124,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,217,5,5,108,217,5,5,109,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,224,192,0,0,0,192,0,0,0,5,5,110,224,192,0,0,0,5,5,111,224,5,5,112,224,5,5,113,224,5,5,114,224,5,5,115,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,246,192,0,0,0,5,5,183,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,167,192,0,0,0,5,5,114,172,5,5,243,178,192,0,0,0,5,5,40,242,5,5,34,159,192,0,0,0,192,0,0,0,5,5,58,163,192,0,0,0,5,5,59,163,192,0,0,0,5,5,60,163,5,5,61,163,192,0,0,0,5,5,62,163,5,5,61,167,5,5,62,167,5,5,63,167,5,5,64,167,5,5,65,167,5,5,160,172,5,5,161,172,5,5,162,172,5,5,163,172,192,0,0,0,5,5,164,172,192,0,0,0,192,0,0,0,5,5,165,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,186,5,5,121,186,5,5,122,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,202,192,0,0,0,5,5,149,210,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,210,5,5,151,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,163,192,0,0,0,5,5,112,163,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,167,5,5,129,167,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,167,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,167,192,0,0,0,192,0,0,0,5,5,132,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,167,192,0,0,0,5,5,232,172,5,5,233,172,5,5,234,172,192,0,0,0,5,5,235,172,5,5,236,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,179,192,0,0,0,192,0,0,0,5,5,87,179,192,0,0,0,5,5,88,179,5,5,89,179,192,0,0,0,5,5,90,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,179,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,179,5,5,93,179,192,0,0,0,192,0,0,0,5,5,206,186,5,5,207,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,194,5,5,155,194,192,0,0,0,5,5,156,194,5,5,157,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,202,192,0,0,0,5,5,238,202,192,0,0,0,192,0,0,0,5,5,239,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,210,192,0,0,0,5,5,199,210,192,0,0,0,5,5,200,210,192,0,0,0,5,5,201,210,5,5,187,217,192,0,0,0,5,5,188,217,5,5,189,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,224,5,5,169,224,5,5,170,224,192,0,0,0,192,0,0,0,5,5,84,235,5,5,85,235,5,5,2,239,5,5,3,239,5,5,4,239,5,5,5,239,5,5,52,242,5,5,53,242,5,5,54,242,5,5,181,244,5,5,110,246,5,5,222,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,167,192,0,0,0,192,0,0,0,5,5,101,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,203,192,0,0,0,192,0,0,0,5,5,255,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,211,5,5,3,211,192,0,0,0,192,0,0,0,5,5,4,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,239,192,0,0,0,5,5,18,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,179,192,0,0,0,5,5,253,194,192,0,0,0,192,0,0,0,5,5,225,167,5,5,38,187,5,5,74,159,5,5,75,159,5,5,3,161,5,5,4,161,5,5,5,161,5,5,184,163,5,5,185,163,5,5,186,163,192,0,0,0,5,5,187,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,217,5,5,203,224,5,5,204,224,5,5,205,224,5,5,176,230,5,5,177,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,211,192,0,0,0,192,0,0,0,5,5,87,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,179,192,0,0,0,5,5,165,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,173,5,5,167,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,179,192,0,0,0,5,5,168,173,192,0,0,0,192,0,0,0,5,5,106,187,5,5,14,180,5,5,107,187,5,5,15,180,5,5,16,180,5,5,108,187,5,5,17,180,5,5,18,180,5,5,19,180,5,5,20,180,192,0,0,0,5,5,109,187,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,195,5,5,105,195,5,5,87,203,5,5,88,203,5,5,106,195,5,5,89,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,218,5,5,75,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,225,192,0,0,0,5,5,103,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,235,192,0,0,0,192,0,0,0,5,5,76,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,164,192,0,0,0,192,0,0,0,5,5,159,168,5,5,160,168,192,0,0,0,192,0,0,0,5,5,176,173,5,5,161,168,5,5,162,168,192,0,0,0,5,5,163,168,5,5,164,168,5,5,165,168,5,5,166,168,192,0,0,0,5,5,231,173,5,5,232,173,192,0,0,0,192,0,0,0,5,5,233,173,5,5,234,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,180,192,0,0,0,192,0,0,0,5,5,253,187,192,0,0,0,192,0,0,0,5,5,254,187,192,0,0,0,5,5,255,187,5,5,2,188,5,5,3,188,5,5,4,188,5,5,5,188,192,0,0,0,5,5,6,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,195,5,5,189,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,203,192,0,0,0,192,0,0,0,5,5,200,203,192,0,0,0,192,0,0,0,5,5,201,203,192,0,0,0,192,0,0,0,5,5,202,203,5,5,203,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,211,192,0,0,0,5,5,150,211,5,5,151,211,5,5,152,211,5,5,153,211,5,5,154,211,5,5,155,211,5,5,156,211,5,5,157,211,5,5,158,211,192,0,0,0,192,0,0,0,5,5,91,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,225,192,0,0,0,5,5,44,225,192,0,0,0,192,0,0,0,5,5,45,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,230,192,0,0,0,5,5,228,230,192,0,0,0,192,0,0,0,5,5,137,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,235,5,5,139,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,168,192,0,0,0,5,5,247,173,5,5,248,173,5,5,249,173,192,0,0,0,5,5,109,180,5,5,110,180,5,5,111,180,5,5,26,188,5,5,27,188,5,5,28,188,5,5,29,188,5,5,30,188,5,5,212,195,5,5,213,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,195,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,173,5,5,253,173,192,0,0,0,192,0,0,0,5,5,226,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,174,192,0,0,0,192,0,0,0,5,5,124,180,192,0,0,0,5,5,47,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,174,192,0,0,0,5,5,45,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,188,192,0,0,0,5,5,69,188,192,0,0,0,192,0,0,0,5,5,3,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,196,5,5,249,203,5,5,250,203,5,5,251,203,5,5,252,203,5,5,253,203,5,5,254,203,5,5,255,203,5,5,2,204,5,5,3,204,5,5,4,204,5,5,5,204,5,5,6,204,5,5,192,211,5,5,193,211,5,5,194,211,5,5,195,211,5,5,173,218,5,5,174,218,5,5,175,218,5,5,176,218,5,5,177,218,5,5,178,218,5,5,87,225,5,5,88,225,5,5,89,225,5,5,90,225,5,5,91,225,5,5,92,225,5,5,93,225,5,5,94,225,5,5,95,225,5,5,248,230,5,5,249,230,5,5,250,230,5,5,151,235,5,5,152,235,5,5,153,235,5,5,154,235,5,5,155,235,5,5,156,235,5,5,61,239,5,5,62,239,5,5,98,242,5,5,139,246,5,5,140,246,5,5,208,247,5,5,110,249,5,5,76,161,5,5,102,225,5,5,253,230,5,5,220,168,5,5,159,180,5,5,160,180,5,5,80,188,5,5,81,188,5,5,19,196,5,5,52,199,5,5,15,204,5,5,202,211,5,5,183,218,5,5,184,218,5,5,185,218,5,5,105,225,5,5,254,230,5,5,97,161,5,5,134,164,5,5,135,164,5,5,136,164,5,5,137,164,5,5,138,164,5,5,34,169,5,5,35,169,5,5,36,169,5,5,37,169,5,5,38,169,5,5,39,169,5,5,40,169,5,5,41,169,5,5,42,169,5,5,43,169,5,5,148,174,5,5,149,174,5,5,150,174,5,5,151,174,5,5,152,174,5,5,153,174,5,5,154,174,5,5,253,180,5,5,254,180,5,5,255,180,5,5,2,181,5,5,3,181,5,5,4,181,5,5,5,181,5,5,6,181,5,5,7,181,5,5,8,181,5,5,9,181,5,5,10,181,5,5,11,181,5,5,12,181,5,5,13,181,5,5,14,181,5,5,169,188,5,5,170,188,5,5,171,188,5,5,172,188,5,5,173,188,5,5,174,188,5,5,175,188,5,5,176,188,5,5,177,188,5,5,178,188,5,5,179,188,5,5,180,188,5,5,181,188,5,5,182,188,5,5,129,196,5,5,183,188,5,5,130,196,5,5,131,196,5,5,132,196,5,5,133,196,5,5,134,196,5,5,135,196,5,5,136,196,5,5,137,196,5,5,138,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,204,5,5,109,204,192,0,0,0,192,0,0,0,5,5,110,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,212,192,0,0,0,5,5,10,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,219,192,0,0,0,5,5,12,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,231,5,5,49,231,5,5,50,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,239,5,5,91,239,5,5,92,239,192,0,0,0,5,5,93,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,242,5,5,115,242,192,0,0,0,192,0,0,0,5,5,116,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,244,192,0,0,0,192,0,0,0,5,5,150,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,204,192,0,0,0,5,5,127,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,164,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,181,5,5,200,188,192,0,0,0,5,5,161,196,192,0,0,0,5,5,162,196,192,0,0,0,5,5,163,196,5,5,164,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,219,5,5,34,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,169,192,0,0,0,5,5,158,169,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,188,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,189,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,197,5,5,47,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,197,192,0,0,0,192,0,0,0,5,5,49,197,192,0,0,0,5,5,50,197,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,204,5,5,240,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,204,192,0,0,0,5,5,154,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,219,192,0,0,0,5,5,125,219,192,0,0,0,192,0,0,0,5,5,126,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,226,192,0,0,0,192,0,0,0,5,5,11,226,192,0,0,0,192,0,0,0,5,5,12,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,226,5,5,14,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,231,192,0,0,0,5,5,108,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,239,192,0,0,0,192,0,0,0,5,5,129,239,192,0,0,0,5,5,130,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,242,192,0,0,0,5,5,143,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,197,5,5,103,197,192,0,0,0,5,5,104,197,192,0,0,0,192,0,0,0,5,5,105,197,5,5,106,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,212,5,5,203,212,192,0,0,0,192,0,0,0,5,5,167,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,226,5,5,66,226,192,0,0,0,192,0,0,0,5,5,67,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,226,5,5,69,226,192,0,0,0,192,0,0,0,5,5,141,231,5,5,142,231,5,5,143,231,192,0,0,0,5,5,248,235,192,0,0,0,5,5,146,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,242,192,0,0,0,192,0,0,0,5,5,238,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,181,192,0,0,0,5,5,213,212,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,189,192,0,0,0,5,5,137,189,192,0,0,0,5,5,138,189,192,0,0,0,5,5,139,189,192,0,0,0,192,0,0,0,5,5,131,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,161,5,5,159,161,5,5,160,161,192,0,0,0,192,0,0,0,5,5,14,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,181,192,0,0,0,192,0,0,0,5,5,255,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,182,192,0,0,0,192,0,0,0,5,5,201,189,192,0,0,0,5,5,202,189,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,189,5,5,199,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,197,5,5,94,205,192,0,0,0,192,0,0,0,5,5,201,197,5,5,202,197,192,0,0,0,192,0,0,0,5,5,131,205,192,0,0,0,192,0,0,0,5,5,132,205,5,5,133,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,212,192,0,0,0,5,5,254,212,192,0,0,0,5,5,226,219,5,5,227,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,219,192,0,0,0,192,0,0,0,5,5,229,219,5,5,230,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,231,192,0,0,0,5,5,109,226,192,0,0,0,192,0,0,0,5,5,175,231,5,5,176,231,5,5,177,231,192,0,0,0,192,0,0,0,5,5,170,239,192,0,0,0,5,5,171,239,5,5,175,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,219,192,0,0,0,5,5,27,165,192,0,0,0,192,0,0,0,5,5,167,175,5,5,168,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,236,5,5,186,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,182,5,5,2,190,5,5,3,190,5,5,24,198,5,5,203,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,226,192,0,0,0,192,0,0,0,5,5,180,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,231,192,0,0,0,5,5,236,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,206,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,246,192,0,0,0,5,5,218,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,176,192,0,0,0,5,5,166,182,5,5,167,182,5,5,71,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,176,5,5,35,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,190,192,0,0,0,5,5,92,190,192,0,0,0,5,5,93,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,220,192,0,0,0,5,5,104,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,226,192,0,0,0,192,0,0,0,5,5,30,232,192,0,0,0,5,5,90,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,250,192,0,0,0,5,5,79,170,192,0,0,0,192,0,0,0,5,5,45,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,182,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,198,5,5,151,198,5,5,152,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,206,5,5,119,206,192,0,0,0,5,5,120,206,5,5,121,206,5,5,122,206,5,5,123,206,5,5,124,206,5,5,125,206,5,5,200,213,5,5,201,213,5,5,202,213,5,5,203,213,5,5,204,213,5,5,205,213,5,5,206,213,5,5,207,213,5,5,208,213,5,5,209,213,5,5,210,213,5,5,211,213,5,5,212,213,5,5,151,220,5,5,152,220,5,5,153,220,5,5,154,220,5,5,155,220,5,5,156,220,5,5,157,220,5,5,158,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,220,192,0,0,0,5,5,160,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,220,192,0,0,0,5,5,162,220,5,5,163,220,192,0,0,0,192,0,0,0,5,5,164,220,192,0,0,0,192,0,0,0,5,5,165,220,5,5,23,227,5,5,24,227,192,0,0,0,5,5,25,227,5,5,26,227,192,0,0,0,5,5,27,227,5,5,28,227,5,5,29,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,232,5,5,81,232,5,5,82,232,5,5,83,232,5,5,84,232,5,5,85,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,236,5,5,243,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,247,192,0,0,0,5,5,224,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,170,5,5,88,176,5,5,89,176,192,0,0,0,5,5,90,176,192,0,0,0,192,0,0,0,5,5,26,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,214,5,5,35,214,192,0,0,0,192,0,0,0,5,5,36,214,5,5,37,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,214,192,0,0,0,192,0,0,0,5,5,237,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,220,5,5,239,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,220,5,5,241,220,192,0,0,0,192,0,0,0,5,5,242,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,198,192,0,0,0,192,0,0,0,5,5,247,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,176,5,5,39,183,5,5,223,190,5,5,224,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,198,5,5,249,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,236,192,0,0,0,192,0,0,0,5,5,46,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,183,192,0,0,0,192,0,0,0,5,5,46,191,192,0,0,0,5,5,47,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,199,5,5,54,199,5,5,55,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,214,5,5,103,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,221,5,5,48,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,236,5,5,193,236,5,5,194,236,5,5,39,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,236,192,0,0,0,5,5,212,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,183,5,5,152,183,192,0,0,0,5,5,153,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,199,192,0,0,0,192,0,0,0,5,5,85,199,192,0,0,0,192,0,0,0,5,5,18,207,192,0,0,0,5,5,19,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,214,5,5,122,214,5,5,123,214,192,0,0,0,5,5,124,214,192,0,0,0,192,0,0,0,5,5,125,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,214,5,5,127,214,5,5,128,214,5,5,129,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,227,192,0,0,0,192,0,0,0,5,5,141,227,5,5,142,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,227,192,0,0,0,5,5,144,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,232,192,0,0,0,5,5,198,232,192,0,0,0,192,0,0,0,5,5,199,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,232,5,5,201,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,236,192,0,0,0,192,0,0,0,5,5,204,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,236,192,0,0,0,5,5,206,236,192,0,0,0,5,5,207,236,5,5,208,236,192,0,0,0,192,0,0,0,5,5,209,236,5,5,210,236,5,5,51,240,5,5,52,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,240,5,5,11,243,192,0,0,0,5,5,12,243,5,5,13,243,192,0,0,0,5,5,14,243,5,5,15,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,245,5,5,52,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,246,192,0,0,0,192,0,0,0,5,5,220,246,192,0,0,0,192,0,0,0,5,5,221,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,248,5,5,231,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,199,192,0,0,0,5,5,246,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,228,192,0,0,0,192,0,0,0,5,5,5,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,233,5,5,54,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,243,5,5,65,243,5,5,91,245,5,5,92,245,192,0,0,0,192,0,0,0,5,5,238,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,184,192,0,0,0,5,5,10,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,221,5,5,246,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,192,5,5,35,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,200,5,5,88,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,222,192,0,0,0,5,5,54,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,249,192,0,0,0,5,5,67,192,5,5,68,192,5,5,103,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,228,5,5,93,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,184,192,0,0,0,192,0,0,0,5,5,96,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,200,192,0,0,0,5,5,155,200,192,0,0,0,192,0,0,0,5,5,67,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,222,5,5,140,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,192,5,5,128,192,5,5,129,192,5,5,130,192,5,5,131,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,228,5,5,188,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,201,192,0,0,0,5,5,73,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,216,5,5,39,216,5,5,40,216,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,216,192,0,0,0,192,0,0,0,5,5,37,223,192,0,0,0,5,5,38,223,5,5,39,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,234,192,0,0,0,5,5,216,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,237,5,5,218,237,192,0,0,0,5,5,219,237,192,0,0,0,5,5,40,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,241,192,0,0,0,5,5,42,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,247,192,0,0,0,192,0,0,0,5,5,45,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,223,192,0,0,0,5,5,70,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,227,5,5,68,234,5,5,69,234,5,5,255,237,5,5,63,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,234,192,0,0,0,5,5,7,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,234,5,5,221,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,216,5,5,138,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,238,192,0,0,0,5,5,53,238,5,5,54,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,216,5,5,135,234,192,0,0,0,5,5,136,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,216,192,0,0,0,192,0,0,0,5,5,182,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,234,192,0,0,0,5,5,154,234,192,0,0,0,192,0,0,0,5,5,84,238,192,0,0,0,192,0,0,0,5,5,85,238,5,5,86,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,249,5,5,9,250,192,0,0,0,5,5,109,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,238,5,5,100,238,192,0,0,0,192,0,0,0,5,5,152,241,192,0,0,0,192,0,0,0,5,5,153,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,223,192,0,0,0,192,0,0,0,5,5,227,223,192,0,0,0,5,5,226,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,229,192,0,0,0,5,5,228,229,192,0,0,0,5,5,199,234,5,5,200,234,5,5,201,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,246,192,0,0,0,5,5,18,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,246,5,5,149,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,224,192,0,0,0,5,5,12,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,241,5,5,247,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,249,192,0,0,0,5,5,84,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,230,192,0,0,0,5,5,192,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,242,5,5,124,244,5,5,66,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,238,5,5,14,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,128,5,5,0,152,5,5,0,153,5,5,0,154,5,5,0,155,5,5,0,156,5,5,2,157,5,5,54,157,5,5,55,157,5,5,56,157,5,5,57,157,5,5,58,157,5,5,59,157,5,5,163,157,5,5,164,157,5,5,165,157,5,5,166,157,5,5,167,157,5,5,168,157,5,5,169,157,5,5,128,158,5,5,129,158,5,5,130,158,5,5,127,158,5,5,131,158,5,5,132,158,5,5,133,158,5,5,134,158,5,5,135,158,5,5,136,158,5,5,214,159,5,5,215,159,5,5,216,159,5,5,217,159,5,5,218,159,5,5,32,162,5,5,33,162,5,5,34,162,5,5,253,165,5,5,254,165,5,5,0,129,5,5,3,157,5,5,62,157,5,5,63,157,5,5,93,158,5,5,170,157,5,5,171,157,5,5,172,157,5,5,173,157,5,5,138,158,5,5,37,162,5,5,255,165,5,5,145,171,5,5,240,177,5,5,0,130,5,5,4,157,5,5,65,157,5,5,174,157,5,5,175,157,5,5,139,158,5,5,140,158,5,5,35,162,5,5,146,171,5,5,0,131,5,5,0,132,5,5,0,133,5,5,5,157,5,5,6,157,5,5,7,157,5,5,67,157,5,5,68,157,5,5,69,157,5,5,70,157,5,5,66,157,5,5,71,157,5,5,176,157,5,5,177,157,5,5,141,158,5,5,142,158,5,5,143,158,5,5,144,158,5,5,220,159,5,5,221,159,5,5,222,159,5,5,223,159,5,5,39,162,5,5,2,166,5,5,147,171,5,5,241,177,5,5,0,134,5,5,0,135,5,5,0,137,5,5,11,157,5,5,12,157,5,5,72,157,5,5,73,157,5,5,74,157,5,5,133,157,5,5,34,158,5,5,179,157,5,5,180,157,5,5,181,157,5,5,182,157,5,5,146,158,5,5,224,159,5,5,225,159,5,5,226,159,5,5,227,159,5,5,228,159,5,5,229,159,5,5,230,159,5,5,231,159,5,5,232,159,5,5,40,162,5,5,41,162,5,5,3,166,5,5,4,166,5,5,5,166,5,5,6,166,5,5,7,166,5,5,8,166,5,5,148,171,5,5,149,171,5,5,150,171,5,5,151,171,5,5,242,177,5,5,80,185,5,5,81,185,5,5,82,185,5,5,112,193,5,5,239,201,5,5,240,201,5,5,241,201,5,5,0,143,5,5,13,157,5,5,75,157,5,5,183,157,5,5,233,159,5,5,42,162,5,5,10,166,5,5,15,157,5,5,76,157,5,5,77,157,5,5,78,157,5,5,60,157,5,5,184,157,5,5,185,157,5,5,186,157,5,5,187,157,5,5,188,157,5,5,189,157,5,5,147,158,5,5,234,159,5,5,235,159,5,5,236,159,5,5,11,166,5,5,44,162,5,5,12,166,5,5,13,166,5,5,14,166,5,5,16,157,5,5,79,157,5,5,190,157,5,5,191,157,5,5,237,159,5,5,238,159,5,5,239,159,5,5,240,159,5,5,45,162,5,5,46,162,5,5,47,162,5,5,15,166,5,5,16,166,5,5,153,171,5,5,154,171,5,5,155,171,5,5,156,171,5,5,157,171,5,5,158,171,5,5,243,177,5,5,113,193,5,5,114,193,5,5,242,201,5,5,243,201,5,5,45,224,5,5,91,246,5,5,17,157,5,5,18,157,5,5,80,157,5,5,81,157,5,5,82,157,5,5,83,157,5,5,192,157,5,5,193,157,5,5,194,157,5,5,195,157,5,5,196,157,5,5,197,157,5,5,198,157,5,5,199,157,5,5,200,157,5,5,201,157,5,5,202,157,5,5,203,157,5,5,204,157,5,5,205,157,5,5,206,157,5,5,207,157,5,5,208,157,5,5,209,157,5,5,210,157,5,5,211,157,5,5,148,158,5,5,149,158,5,5,150,158,5,5,151,158,5,5,152,158,5,5,153,158,5,5,154,158,5,5,155,158,5,5,156,158,5,5,157,158,5,5,158,158,5,5,159,158,5,5,160,158,5,5,161,158,5,5,162,158,5,5,163,158,5,5,164,158,5,5,165,158,5,5,166,158,5,5,167,158,5,5,168,158,5,5,169,158,5,5,170,158,5,5,171,158,5,5,172,158,5,5,173,158,5,5,242,159,5,5,243,159,5,5,244,159,5,5,245,159,5,5,246,159,5,5,247,159,5,5,248,159,5,5,249,159,5,5,250,159,5,5,251,159,5,5,252,159,5,5,253,159,5,5,254,159,5,5,255,159,5,5,2,160,5,5,3,160,5,5,4,160,5,5,5,160,5,5,6,160,5,5,7,160,5,5,8,160,5,5,9,160,5,5,10,160,5,5,11,160,5,5,12,160,5,5,13,160,5,5,14,160,5,5,15,160,5,5,16,160,5,5,17,160,5,5,18,160,5,5,19,160,5,5,20,160,5,5,21,160,5,5,22,160,5,5,23,160,5,5,24,160,5,5,25,160,5,5,26,160,5,5,27,160,5,5,28,160,5,5,29,160,5,5,30,160,5,5,31,160,5,5,32,160,5,5,33,160,5,5,34,160,5,5,35,160,5,5,36,160,5,5,37,160,5,5,38,160,5,5,39,160,5,5,40,160,5,5,41,160,5,5,42,160,5,5,43,160,5,5,44,160,5,5,45,160,5,5,46,160,5,5,47,160,5,5,48,160,5,5,49,160,5,5,50,160,5,5,48,162,5,5,49,162,5,5,50,162,5,5,51,162,5,5,52,162,5,5,53,162,5,5,54,162,5,5,55,162,5,5,56,162,5,5,57,162,5,5,58,162,5,5,59,162,5,5,60,162,5,5,61,162,5,5,62,162,5,5,63,162,5,5,64,162,5,5,65,162,5,5,66,162,5,5,67,162,5,5,68,162,5,5,69,162,5,5,70,162,5,5,71,162,5,5,72,162,5,5,73,162,5,5,74,162,5,5,75,162,5,5,76,162,5,5,77,162,5,5,78,162,5,5,18,166,5,5,79,162,5,5,80,162,5,5,81,162,5,5,82,162,5,5,83,162,5,5,84,162,5,5,85,162,5,5,86,162,5,5,87,162,5,5,88,162,5,5,89,162,5,5,90,162,5,5,91,162,5,5,92,162,5,5,93,162,5,5,94,162,5,5,95,162,5,5,96,162,5,5,97,162,5,5,98,162,5,5,99,162,5,5,100,162,5,5,101,162,5,5,51,160,5,5,102,162,5,5,103,162,5,5,104,162,5,5,105,162,5,5,19,166,5,5,20,166,5,5,21,166,5,5,22,166,5,5,23,166,5,5,24,166,5,5,25,166,5,5,26,166,5,5,27,166,5,5,28,166,5,5,29,166,5,5,30,166,5,5,31,166,5,5,32,166,5,5,33,166,5,5,34,166,5,5,35,166,5,5,36,166,5,5,37,166,5,5,38,166,5,5,39,166,5,5,40,166,5,5,41,166,5,5,42,166,5,5,43,166,5,5,44,166,5,5,45,166,5,5,46,166,5,5,47,166,5,5,48,166,5,5,49,166,5,5,50,166,5,5,51,166,5,5,52,166,5,5,53,166,5,5,54,166,5,5,55,166,5,5,56,166,5,5,57,166,5,5,58,166,5,5,59,166,5,5,60,166,5,5,61,166,5,5,62,166,5,5,63,166,5,5,64,166,5,5,65,166,5,5,66,166,5,5,67,166,5,5,68,166,5,5,69,166,5,5,70,166,5,5,71,166,5,5,72,166,5,5,73,166,5,5,74,166,5,5,75,166,5,5,76,166,5,5,77,166,5,5,78,166,5,5,79,166,5,5,80,166,5,5,81,166,5,5,82,166,5,5,83,166,5,5,84,166,5,5,85,166,5,5,86,166,5,5,87,166,5,5,159,171,5,5,160,171,5,5,161,171,5,5,162,171,5,5,163,171,5,5,164,171,5,5,165,171,5,5,166,171,5,5,167,171,5,5,168,171,5,5,169,171,5,5,170,171,5,5,171,171,5,5,172,171,5,5,173,171,5,5,174,171,5,5,175,171,5,5,176,171,5,5,177,171,5,5,178,171,5,5,179,171,5,5,180,171,5,5,181,171,5,5,182,171,5,5,183,171,5,5,184,171,5,5,185,171,5,5,186,171,5,5,187,171,5,5,188,171,5,5,189,171,5,5,190,171,5,5,191,171,5,5,192,171,5,5,193,171,5,5,194,171,5,5,195,171,5,5,196,171,5,5,197,171,5,5,198,171,5,5,199,171,5,5,200,171,5,5,201,171,5,5,202,171,5,5,203,171,5,5,204,171,5,5,205,171,5,5,206,171,5,5,207,171,5,5,208,171,5,5,209,171,5,5,210,171,5,5,211,171,5,5,212,171,5,5,213,171,5,5,214,171,5,5,215,171,5,5,216,171,5,5,217,171,5,5,218,171,5,5,219,171,5,5,220,171,5,5,221,171,5,5,222,171,5,5,244,177,5,5,245,177,5,5,246,177,5,5,247,177,5,5,248,177,5,5,249,177,5,5,250,177,5,5,251,177,5,5,252,177,5,5,253,177,5,5,254,177,5,5,255,177,5,5,2,178,5,5,3,178,5,5,4,178,5,5,5,178,5,5,6,178,5,5,7,178,5,5,8,178,5,5,9,178,5,5,10,178,5,5,11,178,5,5,12,178,5,5,13,178,5,5,14,178,5,5,15,178,5,5,16,178,5,5,17,178,5,5,18,178,5,5,19,178,5,5,20,178,5,5,21,178,5,5,22,178,5,5,23,178,5,5,24,178,5,5,25,178,5,5,26,178,5,5,27,178,5,5,28,178,5,5,29,178,5,5,30,178,5,5,31,178,5,5,32,178,5,5,33,178,5,5,34,178,5,5,35,178,5,5,36,178,5,5,37,178,5,5,38,178,5,5,39,178,5,5,40,178,5,5,41,178,5,5,42,178,5,5,43,178,5,5,44,178,5,5,45,178,5,5,46,178,5,5,47,178,5,5,48,178,5,5,49,178,5,5,50,178,5,5,51,178,5,5,52,178,5,5,53,178,5,5,54,178,5,5,55,178,5,5,56,178,5,5,57,178,5,5,58,178,5,5,59,178,5,5,60,178,5,5,61,178,5,5,62,178,5,5,63,178,5,5,64,178,5,5,65,178,5,5,66,178,5,5,67,178,5,5,68,178,5,5,69,178,5,5,70,178,5,5,71,178,5,5,84,185,5,5,85,185,5,5,86,185,5,5,87,185,5,5,88,185,5,5,89,185,5,5,90,185,5,5,91,185,5,5,92,185,5,5,93,185,5,5,94,185,5,5,95,185,5,5,96,185,5,5,97,185,5,5,98,185,5,5,99,185,5,5,100,185,5,5,101,185,5,5,102,185,5,5,103,185,5,5,104,185,5,5,105,185,5,5,79,178,5,5,106,185,5,5,107,185,5,5,108,185,5,5,109,185,5,5,110,185,5,5,111,185,5,5,112,185,5,5,113,185,5,5,114,185,5,5,115,185,5,5,116,185,5,5,117,185,5,5,118,185,5,5,119,185,5,5,120,185,5,5,121,185,5,5,122,185,5,5,115,193,5,5,123,185,5,5,124,185,5,5,125,185,5,5,126,185,5,5,127,185,5,5,128,185,5,5,129,185,5,5,130,185,5,5,131,185,5,5,132,185,5,5,133,185,5,5,134,185,5,5,135,185,5,5,136,185,5,5,137,185,5,5,138,185,5,5,139,185,5,5,140,185,5,5,141,185,5,5,142,185,5,5,143,185,5,5,144,185,5,5,145,185,5,5,116,193,5,5,117,193,5,5,118,193,5,5,119,193,5,5,120,193,5,5,121,193,5,5,122,193,5,5,123,193,5,5,124,193,5,5,125,193,5,5,126,193,5,5,127,193,5,5,128,193,5,5,129,193,5,5,130,193,5,5,131,193,5,5,132,193,5,5,133,193,5,5,134,193,5,5,135,193,5,5,136,193,5,5,137,193,5,5,138,193,5,5,139,193,5,5,140,193,5,5,141,193,5,5,142,193,5,5,143,193,5,5,144,193,5,5,145,193,5,5,146,193,5,5,147,193,5,5,148,193,5,5,149,193,5,5,150,193,5,5,151,193,5,5,152,193,5,5,153,193,5,5,154,193,5,5,155,193,5,5,156,193,5,5,157,193,5,5,244,201,5,5,245,201,5,5,246,201,5,5,247,201,5,5,248,201,5,5,249,201,5,5,250,201,5,5,251,201,5,5,252,201,5,5,253,201,5,5,254,201,5,5,255,201,5,5,2,202,5,5,3,202,5,5,4,202,5,5,5,202,5,5,6,202,5,5,7,202,5,5,8,202,5,5,9,202,5,5,10,202,5,5,11,202,5,5,12,202,5,5,13,202,5,5,14,202,5,5,15,202,5,5,16,202,5,5,17,202,5,5,18,202,5,5,19,202,5,5,20,202,5,5,21,202,5,5,22,202,5,5,23,202,5,5,24,202,5,5,25,202,5,5,214,209,5,5,215,209,5,5,216,209,5,5,217,209,5,5,218,209,5,5,219,209,5,5,220,209,5,5,221,209,5,5,222,209,5,5,223,209,5,5,224,209,5,5,225,209,5,5,226,209,5,5,227,209,5,5,228,209,5,5,229,209,5,5,230,209,5,5,231,209,5,5,232,209,5,5,233,209,5,5,234,209,5,5,235,209,5,5,236,209,5,5,237,209,5,5,238,209,5,5,239,209,5,5,240,209,5,5,241,209,5,5,242,209,5,5,243,209,5,5,244,209,5,5,245,209,5,5,246,209,5,5,247,209,5,5,248,209,5,5,249,209,5,5,4,210,5,5,250,209,5,5,251,209,5,5,249,216,5,5,250,216,5,5,252,209,5,5,251,216,5,5,252,216,5,5,253,216,5,5,254,216,5,5,255,216,5,5,2,217,5,5,3,217,5,5,4,217,5,5,5,217,5,5,6,217,5,5,7,217,5,5,8,217,5,5,9,217,5,5,10,217,5,5,11,217,5,5,12,217,5,5,13,217,5,5,14,217,5,5,15,217,5,5,16,217,5,5,17,217,5,5,18,217,5,5,19,217,5,5,20,217,5,5,46,224,5,5,47,224,5,5,48,224,5,5,49,224,5,5,50,224,5,5,51,224,5,5,52,224,5,5,53,224,5,5,54,224,5,5,55,224,5,5,56,224,5,5,57,224,5,5,58,224,5,5,59,224,5,5,60,224,5,5,54,230,5,5,55,230,5,5,56,230,5,5,57,230,5,5,58,230,5,5,59,230,5,5,60,230,5,5,61,230,5,5,62,230,5,5,63,230,5,5,64,230,5,5,65,230,5,5,61,224,5,5,66,230,5,5,34,235,5,5,35,235,5,5,36,235,5,5,26,217,5,5,37,235,5,5,70,230,5,5,218,238,5,5,219,238,5,5,220,238,5,5,26,242,5,5,149,244,5,5,150,244,5,5,151,244,5,5,152,244,5,5,92,246,5,5,93,246,5,5,176,247,5,5,182,248,5,5,19,157,5,5,85,157,5,5,212,157,5,5,213,157,5,5,214,157,5,5,184,158,5,5,185,158,5,5,59,160,5,5,60,160,5,5,61,160,5,5,62,160,5,5,63,160,5,5,108,162,5,5,109,162,5,5,110,162,5,5,111,162,5,5,112,162,5,5,113,162,5,5,114,162,5,5,95,166,5,5,96,166,5,5,97,166,5,5,98,166,5,5,99,166,5,5,225,171,5,5,226,171,5,5,227,171,5,5,80,178,5,5,81,178,5,5,151,185,5,5,152,185,5,5,153,185,5,5,162,193,5,5,163,193,5,5,33,202,5,5,5,210,5,5,64,224,5,5,154,244,5,5,20,157,5,5,86,157,5,5,215,157,5,5,64,160,5,5,101,166,5,5,229,171,5,5,21,157,5,5,216,157,5,5,217,157,5,5,218,157,5,5,219,157,5,5,187,158,5,5,66,160,5,5,67,160,5,5,68,160,5,5,69,160,5,5,116,162,5,5,102,166,5,5,103,166,5,5,104,166,5,5,230,171,5,5,84,178,5,5,231,171,5,5,85,178,5,5,154,185,5,5,34,202,5,5,35,202,5,5,66,224,5,5,40,235,5,5,23,157,5,5,220,157,5,5,221,157,5,5,222,157,5,5,223,157,5,5,224,157,5,5,225,157,5,5,188,158,5,5,189,158,5,5,190,158,5,5,191,158,5,5,70,160,5,5,71,160,5,5,117,162,5,5,105,166,5,5,232,171,5,5,233,171,5,5,86,178,5,5,87,178,5,5,155,185,5,5,24,157,5,5,226,157,5,5,227,157,5,5,193,158,5,5,194,158,5,5,72,160,5,5,73,160,5,5,118,162,5,5,106,166,5,5,234,171,5,5,235,171,5,5,88,178,5,5,89,178,5,5,90,178,5,5,91,178,5,5,92,178,5,5,93,178,5,5,94,178,5,5,157,185,5,5,6,210,5,5,67,224,5,5,25,157,5,5,195,158,5,5,196,158,5,5,197,158,5,5,198,158,5,5,74,160,5,5,75,160,5,5,76,160,5,5,77,160,5,5,78,160,5,5,119,162,5,5,120,162,5,5,121,162,5,5,122,162,5,5,123,162,5,5,124,162,5,5,125,162,5,5,107,166,5,5,108,166,5,5,109,166,5,5,110,166,5,5,111,166,5,5,236,171,5,5,237,171,5,5,238,171,5,5,96,178,5,5,97,178,5,5,98,178,5,5,99,178,5,5,100,178,5,5,101,178,5,5,102,178,5,5,103,178,5,5,104,178,5,5,105,178,5,5,106,178,5,5,158,185,5,5,159,185,5,5,160,185,5,5,166,193,5,5,167,193,5,5,168,193,5,5,169,193,5,5,170,193,5,5,36,202,5,5,7,210,5,5,27,217,5,5,28,217,5,5,29,217,5,5,30,217,5,5,68,224,5,5,69,224,5,5,71,230,5,5,26,157,5,5,87,157,5,5,88,157,5,5,89,157,5,5,229,157,5,5,199,158,5,5,200,158,5,5,201,158,5,5,80,160,5,5,81,160,5,5,82,160,5,5,83,160,5,5,127,162,5,5,113,166,5,5,114,166,5,5,115,166,5,5,162,185,5,5,171,193,5,5,172,193,5,5,8,210,5,5,9,210,5,5,28,157,5,5,231,157,5,5,202,158,5,5,203,158,5,5,204,158,5,5,205,158,5,5,206,158,5,5,84,160,5,5,116,166,5,5,242,171,5,5,173,193,5,5,29,157,5,5,30,157,5,5,32,157,5,5,90,157,5,5,91,157,5,5,233,157,5,5,234,157,5,5,235,157,5,5,236,157,5,5,207,158,5,5,208,158,5,5,209,158,5,5,210,158,5,5,211,158,5,5,85,160,5,5,86,160,5,5,87,160,5,5,88,160,5,5,89,160,5,5,90,160,5,5,91,160,5,5,92,160,5,5,93,160,5,5,94,160,5,5,95,160,5,5,96,160,5,5,97,160,5,5,98,160,5,5,128,162,5,5,129,162,5,5,130,162,5,5,131,162,5,5,132,162,5,5,133,162,5,5,134,162,5,5,135,162,5,5,136,162,5,5,137,162,5,5,138,162,5,5,139,162,5,5,140,162,5,5,141,162,5,5,142,162,5,5,143,162,5,5,144,162,5,5,145,162,5,5,117,166,5,5,118,166,5,5,119,166,5,5,120,166,5,5,121,166,5,5,122,166,5,5,123,166,5,5,124,166,5,5,125,166,5,5,126,166,5,5,127,166,5,5,128,166,5,5,129,166,5,5,130,166,5,5,131,166,5,5,132,166,5,5,133,166,5,5,134,166,5,5,135,166,5,5,136,166,5,5,137,166,5,5,243,171,5,5,244,171,5,5,245,171,5,5,141,166,5,5,246,171,5,5,247,171,5,5,248,171,5,5,249,171,5,5,250,171,5,5,251,171,5,5,252,171,5,5,253,171,5,5,254,171,5,5,255,171,5,5,2,172,5,5,110,178,5,5,111,178,5,5,112,178,5,5,113,178,5,5,114,178,5,5,115,178,5,5,116,178,5,5,117,178,5,5,118,178,5,5,119,178,5,5,120,178,5,5,121,178,5,5,122,178,5,5,123,178,5,5,124,178,5,5,125,178,5,5,126,178,5,5,127,178,5,5,128,178,5,5,129,178,5,5,130,178,5,5,131,178,5,5,163,185,5,5,174,193,5,5,164,185,5,5,165,185,5,5,166,185,5,5,167,185,5,5,168,185,5,5,169,185,5,5,170,185,5,5,171,185,5,5,175,193,5,5,176,193,5,5,177,193,5,5,178,193,5,5,172,185,5,5,37,202,5,5,38,202,5,5,39,202,5,5,40,202,5,5,41,202,5,5,42,202,5,5,43,202,5,5,44,202,5,5,45,202,5,5,10,210,5,5,11,210,5,5,12,210,5,5,13,210,5,5,14,210,5,5,32,217,5,5,33,217,5,5,34,217,5,5,35,217,5,5,36,217,5,5,37,217,5,5,38,217,5,5,39,217,5,5,40,217,5,5,41,217,5,5,42,217,5,5,71,224,5,5,72,224,5,5,73,224,5,5,74,224,5,5,75,224,5,5,74,230,5,5,222,238,5,5,155,244,5,5,156,244,5,5,177,247,5,5,178,247,5,5,33,157,5,5,92,157,5,5,237,157,5,5,238,157,5,5,212,158,5,5,213,158,5,5,214,158,5,5,215,158,5,5,99,160,5,5,100,160,5,5,101,160,5,5,102,160,5,5,103,160,5,5,104,160,5,5,147,162,5,5,148,162,5,5,149,162,5,5,150,162,5,5,151,162,5,5,152,162,5,5,153,162,5,5,154,162,5,5,155,162,5,5,156,162,5,5,157,162,5,5,158,162,5,5,142,166,5,5,143,166,5,5,144,166,5,5,145,166,5,5,146,166,5,5,147,166,5,5,148,166,5,5,149,166,5,5,150,166,5,5,151,166,5,5,152,166,5,5,3,172,5,5,4,172,5,5,5,172,5,5,6,172,5,5,7,172,5,5,8,172,5,5,154,166,5,5,9,172,5,5,10,172,5,5,11,172,5,5,12,172,5,5,13,172,5,5,133,178,5,5,134,178,5,5,135,178,5,5,136,178,5,5,137,178,5,5,138,178,5,5,174,185,5,5,175,185,5,5,176,185,5,5,177,185,5,5,178,185,5,5,49,188,5,5,179,185,5,5,180,185,5,5,181,185,5,5,180,193,5,5,181,193,5,5,182,193,5,5,183,193,5,5,46,202,5,5,47,202,5,5,48,202,5,5,49,202,5,5,50,202,5,5,51,202,5,5,52,202,5,5,53,202,5,5,54,202,5,5,18,210,5,5,19,210,5,5,20,210,5,5,21,210,5,5,22,210,5,5,23,210,5,5,43,217,5,5,44,217,5,5,45,217,5,5,46,217,5,5,47,217,5,5,76,224,5,5,75,230,5,5,76,230,5,5,77,230,5,5,223,238,5,5,224,238,5,5,34,157,5,5,93,157,5,5,239,157,5,5,240,157,5,5,241,157,5,5,242,157,5,5,243,157,5,5,244,157,5,5,245,157,5,5,246,157,5,5,216,158,5,5,217,158,5,5,218,158,5,5,219,158,5,5,220,158,5,5,105,160,5,5,159,162,5,5,155,166,5,5,156,166,5,5,157,166,5,5,14,172,5,5,140,178,5,5,183,185,5,5,184,185,5,5,184,193,5,5,185,193,5,5,185,185,5,5,48,217,5,5,35,157,5,5,247,157,5,5,221,158,5,5,186,185,5,5,187,185,5,5,36,157,5,5,222,158,5,5,223,158,5,5,224,158,5,5,225,158,5,5,106,160,5,5,107,160,5,5,108,160,5,5,109,160,5,5,161,162,5,5,162,162,5,5,163,162,5,5,159,166,5,5,15,172,5,5,16,172,5,5,17,172,5,5,141,178,5,5,142,178,5,5,189,185,5,5,190,185,5,5,191,185,5,5,55,202,5,5,25,210,5,5,26,210,5,5,27,210,5,5,49,217,5,5,77,224,5,5,80,230,5,5,225,238,5,5,28,242,5,5,37,157,5,5,249,157,5,5,250,157,5,5,165,162,5,5,160,166,5,5,18,172,5,5,193,185,5,5,194,185,5,5,195,185,5,5,38,157,5,5,94,157,5,5,95,157,5,5,61,157,5,5,251,157,5,5,252,157,5,5,253,157,5,5,254,157,5,5,226,158,5,5,227,158,5,5,110,160,5,5,228,158,5,5,111,160,5,5,112,160,5,5,113,160,5,5,114,160,5,5,161,166,5,5,162,166,5,5,163,166,5,5,164,166,5,5,165,166,5,5,166,166,5,5,19,172,5,5,20,172,5,5,196,185,5,5,189,193,5,5,158,244,5,5,40,157,5,5,2,158,5,5,3,158,5,5,229,158,5,5,230,158,5,5,231,158,5,5,232,158,5,5,167,162,5,5,168,162,5,5,167,166,5,5,168,166,5,5,169,166,5,5,197,185,5,5,41,157,5,5,96,157,5,5,97,157,5,5,4,158,5,5,233,158,5,5,234,158,5,5,235,158,5,5,116,160,5,5,117,160,5,5,169,162,5,5,170,162,5,5,171,162,5,5,172,162,5,5,171,166,5,5,172,166,5,5,173,166,5,5,174,166,5,5,175,166,5,5,21,172,5,5,22,172,5,5,23,172,5,5,198,185,5,5,144,178,5,5,59,202,5,5,60,202,5,5,42,157,5,5,5,158,5,5,6,158,5,5,7,158,5,5,8,158,5,5,237,158,5,5,238,158,5,5,239,158,5,5,118,160,5,5,119,160,5,5,120,160,5,5,121,160,5,5,173,162,5,5,174,162,5,5,175,162,5,5,176,162,5,5,176,166,5,5,177,166,5,5,178,166,5,5,179,166,5,5,24,172,5,5,25,172,5,5,26,172,5,5,27,172,5,5,28,172,5,5,29,172,5,5,145,178,5,5,146,178,5,5,147,178,5,5,148,178,5,5,199,185,5,5,200,185,5,5,201,185,5,5,202,185,5,5,190,193,5,5,191,193,5,5,192,193,5,5,193,193,5,5,194,193,5,5,203,185,5,5,61,202,5,5,62,202,5,5,29,210,5,5,30,210,5,5,31,210,5,5,63,202,5,5,32,210,5,5,50,217,5,5,51,217,5,5,81,230,5,5,226,238,5,5,137,250,5,5,43,157,5,5,9,158,5,5,10,158,5,5,11,158,5,5,240,158,5,5,241,158,5,5,242,158,5,5,123,160,5,5,124,160,5,5,177,162,5,5,181,166,5,5,182,166,5,5,183,166,5,5,204,185,5,5,205,185,5,5,196,193,5,5,34,210,5,5,53,217,5,5,45,157,5,5,99,157,5,5,12,158,5,5,13,158,5,5,14,158,5,5,15,158,5,5,16,158,5,5,243,158,5,5,244,158,5,5,245,158,5,5,125,160,5,5,178,162,5,5,184,166,5,5,185,166,5,5,186,166,5,5,187,166,5,5,188,166,5,5,30,172,5,5,31,172,5,5,32,172,5,5,33,172,5,5,34,172,5,5,151,178,5,5,152,178,5,5,64,202,5,5,78,224,5,5,43,235,5,5,100,157,5,5,246,158,5,5,247,158,5,5,248,158,5,5,249,158,5,5,250,158,5,5,251,158,5,5,252,158,5,5,253,158,5,5,254,158,5,5,255,158,5,5,2,159,5,5,3,159,5,5,4,159,5,5,5,159,5,5,6,159,5,5,7,159,5,5,8,159,5,5,9,159,5,5,10,159,5,5,11,159,5,5,12,159,5,5,13,159,5,5,14,159,5,5,15,159,5,5,16,159,5,5,17,159,5,5,18,159,5,5,126,160,5,5,127,160,5,5,128,160,5,5,129,160,5,5,130,160,5,5,131,160,5,5,132,160,5,5,133,160,5,5,134,160,5,5,135,160,5,5,136,160,5,5,137,160,5,5,138,160,5,5,139,160,5,5,140,160,5,5,141,160,5,5,142,160,5,5,143,160,5,5,144,160,5,5,145,160,5,5,146,160,5,5,147,160,5,5,148,160,5,5,149,160,5,5,150,160,5,5,179,162,5,5,180,162,5,5,181,162,5,5,182,162,5,5,183,162,5,5,184,162,5,5,185,162,5,5,186,162,5,5,187,162,5,5,188,162,5,5,189,162,5,5,190,162,5,5,191,162,5,5,192,162,5,5,193,162,5,5,194,162,5,5,195,162,5,5,196,162,5,5,197,162,5,5,198,162,5,5,199,162,5,5,200,162,5,5,201,162,5,5,202,162,5,5,203,162,5,5,204,162,5,5,205,162,5,5,206,162,5,5,207,162,5,5,208,162,5,5,209,162,5,5,210,162,5,5,211,162,5,5,212,162,5,5,213,162,5,5,214,162,5,5,215,162,5,5,216,162,5,5,217,162,5,5,218,162,5,5,219,162,5,5,220,162,5,5,221,162,5,5,222,162,5,5,223,162,5,5,224,162,5,5,225,162,5,5,226,162,5,5,227,162,5,5,228,162,5,5,229,162,5,5,230,162,5,5,231,162,5,5,232,162,5,5,233,162,5,5,234,162,5,5,235,162,5,5,236,162,5,5,237,162,5,5,238,162,5,5,239,162,5,5,240,162,5,5,241,162,5,5,242,162,5,5,243,162,5,5,244,162,5,5,245,162,5,5,246,162,5,5,247,162,5,5,189,166,5,5,190,166,5,5,191,166,5,5,192,166,5,5,193,166,5,5,194,166,5,5,195,166,5,5,196,166,5,5,197,166,5,5,198,166,5,5,199,166,5,5,200,166,5,5,201,166,5,5,202,166,5,5,203,166,5,5,204,166,5,5,205,166,5,5,206,166,5,5,207,166,5,5,35,172,5,5,208,166,5,5,36,172,5,5,209,166,5,5,210,166,5,5,211,166,5,5,212,166,5,5,213,166,5,5,214,166,5,5,215,166,5,5,216,166,5,5,217,166,5,5,218,166,5,5,219,166,5,5,220,166,5,5,221,166,5,5,222,166,5,5,223,166,5,5,224,166,5,5,225,166,5,5,226,166,5,5,227,166,5,5,228,166,5,5,229,166,5,5,230,166,5,5,231,166,5,5,232,166,5,5,233,166,5,5,234,166,5,5,235,166,5,5,236,166,5,5,237,166,5,5,238,166,5,5,239,166,5,5,240,166,5,5,241,166,5,5,242,166,5,5,243,166,5,5,244,166,5,5,245,166,5,5,246,166,5,5,247,166,5,5,248,166,5,5,249,166,5,5,250,166,5,5,251,166,5,5,37,172,5,5,38,172,5,5,39,172,5,5,40,172,5,5,41,172,5,5,42,172,5,5,43,172,5,5,44,172,5,5,45,172,5,5,46,172,5,5,47,172,5,5,48,172,5,5,49,172,5,5,50,172,5,5,51,172,5,5,52,172,5,5,53,172,5,5,54,172,5,5,55,172,5,5,56,172,5,5,57,172,5,5,58,172,5,5,59,172,5,5,60,172,5,5,61,172,5,5,62,172,5,5,63,172,5,5,64,172,5,5,65,172,5,5,66,172,5,5,67,172,5,5,68,172,5,5,69,172,5,5,70,172,5,5,71,172,5,5,72,172,5,5,73,172,5,5,74,172,5,5,75,172,5,5,76,172,5,5,77,172,5,5,78,172,5,5,79,172,5,5,80,172,5,5,81,172,5,5,82,172,5,5,83,172,5,5,84,172,5,5,85,172,5,5,86,172,5,5,87,172,5,5,88,172,5,5,89,172,5,5,90,172,5,5,91,172,5,5,92,172,5,5,93,172,5,5,94,172,5,5,95,172,5,5,96,172,5,5,97,172,5,5,98,172,5,5,99,172,5,5,100,172,5,5,101,172,5,5,102,172,5,5,153,178,5,5,154,178,5,5,155,178,5,5,156,178,5,5,157,178,5,5,158,178,5,5,159,178,5,5,160,178,5,5,161,178,5,5,162,178,5,5,163,178,5,5,164,178,5,5,165,178,5,5,166,178,5,5,167,178,5,5,168,178,5,5,169,178,5,5,170,178,5,5,171,178,5,5,172,178,5,5,173,178,5,5,174,178,5,5,175,178,5,5,176,178,5,5,177,178,5,5,178,178,5,5,179,178,5,5,180,178,5,5,181,178,5,5,182,178,5,5,183,178,5,5,184,178,5,5,185,178,5,5,186,178,5,5,187,178,5,5,188,178,5,5,189,178,5,5,190,178,5,5,191,178,5,5,192,178,5,5,193,178,5,5,194,178,5,5,195,178,5,5,196,178,5,5,206,185,5,5,197,178,5,5,198,178,5,5,199,178,5,5,200,178,5,5,201,178,5,5,202,178,5,5,203,178,5,5,204,178,5,5,205,178,5,5,206,178,5,5,207,178,5,5,208,178,5,5,209,178,5,5,210,178,5,5,211,178,5,5,212,178,5,5,213,178,5,5,214,178,5,5,215,178,5,5,216,178,5,5,217,178,5,5,218,178,5,5,219,178,5,5,220,178,5,5,221,178,5,5,222,178,5,5,223,178,5,5,207,185,5,5,208,185,5,5,209,185,5,5,210,185,5,5,211,185,5,5,212,185,5,5,213,185,5,5,214,185,5,5,215,185,5,5,216,185,5,5,217,185,5,5,218,185,5,5,219,185,5,5,220,185,5,5,221,185,5,5,222,185,5,5,223,185,5,5,224,185,5,5,225,185,5,5,226,185,5,5,227,185,5,5,228,185,5,5,229,185,5,5,230,185,5,5,231,185,5,5,232,185,5,5,233,185,5,5,234,185,5,5,235,185,5,5,236,185,5,5,237,185,5,5,238,185,5,5,239,185,5,5,240,185,5,5,241,185,5,5,242,185,5,5,243,185,5,5,244,185,5,5,245,185,5,5,246,185,5,5,247,185,5,5,248,185,5,5,249,185,5,5,250,185,5,5,251,185,5,5,252,185,5,5,253,185,5,5,254,185,5,5,255,185,5,5,197,193,5,5,2,186,5,5,3,186,5,5,4,186,5,5,5,186,5,5,6,186,5,5,10,188,5,5,7,186,5,5,8,186,5,5,9,186,5,5,10,186,5,5,11,186,5,5,12,186,5,5,13,186,5,5,14,186,5,5,15,186,5,5,16,186,5,5,17,186,5,5,55,186,5,5,18,186,5,5,19,186,5,5,20,186,5,5,21,186,5,5,22,186,5,5,23,186,5,5,24,186,5,5,25,186,5,5,26,186,5,5,27,186,5,5,28,186,5,5,29,186,5,5,30,186,5,5,31,186,5,5,198,193,5,5,199,193,5,5,200,193,5,5,201,193,5,5,202,193,5,5,203,193,5,5,204,193,5,5,205,193,5,5,206,193,5,5,207,193,5,5,208,193,5,5,209,193,5,5,210,193,5,5,211,193,5,5,212,193,5,5,213,193,5,5,214,193,5,5,215,193,5,5,216,193,5,5,65,202,5,5,217,193,5,5,218,193,5,5,219,193,5,5,220,193,5,5,221,193,5,5,222,193,5,5,223,193,5,5,224,193,5,5,225,193,5,5,226,193,5,5,227,193,5,5,228,193,5,5,229,193,5,5,230,193,5,5,231,193,5,5,232,193,5,5,233,193,5,5,234,193,5,5,235,193,5,5,236,193,5,5,237,193,5,5,238,193,5,5,239,193,5,5,240,193,5,5,241,193,5,5,242,193,5,5,243,193,5,5,244,193,5,5,245,193,5,5,246,193,5,5,247,193,5,5,248,193,5,5,249,193,5,5,250,193,5,5,251,193,5,5,252,193,5,5,253,193,5,5,254,193,5,5,255,193,5,5,2,194,5,5,56,186,5,5,3,194,5,5,4,194,5,5,5,194,5,5,6,194,5,5,7,194,5,5,8,194,5,5,9,194,5,5,10,194,5,5,66,202,5,5,67,202,5,5,68,202,5,5,69,202,5,5,70,202,5,5,71,202,5,5,72,202,5,5,73,202,5,5,74,202,5,5,75,202,5,5,76,202,5,5,77,202,5,5,78,202,5,5,79,202,5,5,80,202,5,5,81,202,5,5,82,202,5,5,83,202,5,5,84,202,5,5,85,202,5,5,86,202,5,5,87,202,5,5,88,202,5,5,89,202,5,5,90,202,5,5,91,202,5,5,92,202,5,5,93,202,5,5,94,202,5,5,95,202,5,5,96,202,5,5,30,194,5,5,97,202,5,5,98,202,5,5,99,202,5,5,100,202,5,5,101,202,5,5,102,202,5,5,103,202,5,5,104,202,5,5,105,202,5,5,106,202,5,5,107,202,5,5,108,202,5,5,109,202,5,5,110,202,5,5,111,202,5,5,112,202,5,5,113,202,5,5,114,202,5,5,115,202,5,5,116,202,5,5,117,202,5,5,118,202,5,5,119,202,5,5,38,210,5,5,39,210,5,5,40,210,5,5,41,210,5,5,42,210,5,5,43,210,5,5,44,210,5,5,45,210,5,5,46,210,5,5,47,210,5,5,48,210,5,5,49,210,5,5,50,210,5,5,51,210,5,5,52,210,5,5,53,210,5,5,54,210,5,5,55,210,5,5,56,210,5,5,57,210,5,5,58,210,5,5,59,210,5,5,60,210,5,5,61,210,5,5,62,210,5,5,63,210,5,5,64,210,5,5,65,210,5,5,66,210,5,5,67,210,5,5,68,210,5,5,69,210,5,5,70,210,5,5,71,210,5,5,72,210,5,5,73,210,5,5,74,210,5,5,75,210,5,5,76,210,5,5,77,210,5,5,78,210,5,5,102,210,5,5,56,217,5,5,79,210,5,5,80,210,5,5,81,210,5,5,82,210,5,5,83,210,5,5,84,210,5,5,85,210,5,5,103,210,5,5,57,217,5,5,58,217,5,5,59,217,5,5,60,217,5,5,61,217,5,5,62,217,5,5,63,217,5,5,64,217,5,5,65,217,5,5,66,217,5,5,67,217,5,5,68,217,5,5,69,217,5,5,70,217,5,5,71,217,5,5,72,217,5,5,73,217,5,5,74,217,5,5,75,217,5,5,76,217,5,5,77,217,5,5,78,217,5,5,79,217,5,5,80,217,5,5,81,217,5,5,82,217,5,5,83,217,5,5,84,217,5,5,11,194,5,5,85,217,5,5,86,217,5,5,87,217,5,5,88,217,5,5,89,217,5,5,90,217,5,5,91,217,5,5,92,217,5,5,93,217,5,5,94,217,5,5,95,217,5,5,86,210,5,5,96,217,5,5,55,217,5,5,97,217,5,5,175,219,5,5,98,217,5,5,99,217,5,5,100,217,5,5,101,217,5,5,102,217,5,5,103,217,5,5,104,217,5,5,105,217,5,5,79,224,5,5,80,224,5,5,81,224,5,5,82,224,5,5,83,224,5,5,84,224,5,5,85,224,5,5,86,224,5,5,87,224,5,5,88,224,5,5,89,224,5,5,90,224,5,5,91,224,5,5,92,224,5,5,93,224,5,5,94,224,5,5,95,224,5,5,96,224,5,5,97,224,5,5,98,224,5,5,99,224,5,5,100,224,5,5,106,217,5,5,101,224,5,5,102,224,5,5,103,224,5,5,104,224,5,5,105,224,5,5,106,224,5,5,107,224,5,5,108,224,5,5,84,230,5,5,85,230,5,5,86,230,5,5,87,230,5,5,88,230,5,5,89,230,5,5,90,230,5,5,91,230,5,5,92,230,5,5,93,230,5,5,94,230,5,5,95,230,5,5,96,230,5,5,97,230,5,5,98,230,5,5,99,230,5,5,100,230,5,5,101,230,5,5,102,230,5,5,103,230,5,5,104,230,5,5,105,230,5,5,106,230,5,5,44,235,5,5,45,235,5,5,46,235,5,5,47,235,5,5,48,235,5,5,49,235,5,5,50,235,5,5,51,235,5,5,52,235,5,5,53,235,5,5,54,235,5,5,55,235,5,5,56,235,5,5,57,235,5,5,58,235,5,5,59,235,5,5,60,235,5,5,228,238,5,5,229,238,5,5,230,238,5,5,231,238,5,5,232,238,5,5,233,238,5,5,234,238,5,5,235,238,5,5,236,238,5,5,73,235,5,5,237,238,5,5,238,238,5,5,29,242,5,5,30,242,5,5,31,242,5,5,32,242,5,5,33,242,5,5,34,242,5,5,35,242,5,5,36,242,5,5,37,242,5,5,159,244,5,5,160,244,5,5,39,242,5,5,161,244,5,5,162,244,5,5,163,244,5,5,164,244,5,5,165,244,5,5,166,244,5,5,167,244,5,5,168,244,5,5,96,246,5,5,97,246,5,5,98,246,5,5,99,246,5,5,100,246,5,5,101,246,5,5,102,246,5,5,180,247,5,5,169,244,5,5,103,246,5,5,181,247,5,5,182,247,5,5,184,248,5,5,185,248,5,5,186,248,5,5,100,249,5,5,101,249,5,5,85,250,5,5,101,157,5,5,22,159,5,5,23,159,5,5,24,159,5,5,25,159,5,5,26,159,5,5,154,160,5,5,155,160,5,5,156,160,5,5,157,160,5,5,158,160,5,5,159,160,5,5,160,160,5,5,2,163,5,5,3,163,5,5,4,163,5,5,5,163,5,5,6,163,5,5,7,163,5,5,8,163,5,5,9,163,5,5,10,163,5,5,11,163,5,5,12,163,5,5,13,163,5,5,14,163,5,5,15,163,5,5,16,163,5,5,17,163,5,5,18,163,5,5,19,163,5,5,9,167,5,5,10,167,5,5,11,167,5,5,12,167,5,5,13,167,5,5,14,167,5,5,15,167,5,5,16,167,5,5,17,167,5,5,112,172,5,5,113,172,5,5,237,178,5,5,238,178,5,5,239,178,5,5,240,178,5,5,241,178,5,5,242,178,5,5,57,186,5,5,58,186,5,5,59,186,5,5,60,186,5,5,61,186,5,5,31,194,5,5,32,194,5,5,33,194,5,5,62,186,5,5,34,194,5,5,144,202,5,5,145,202,5,5,146,202,5,5,147,202,5,5,148,202,5,5,104,210,5,5,105,210,5,5,106,210,5,5,107,210,5,5,119,217,5,5,123,224,5,5,124,224,5,5,105,246,5,5,221,249,5,5,102,157,5,5,17,158,5,5,18,158,5,5,28,159,5,5,29,159,5,5,30,159,5,5,31,159,5,5,32,159,5,5,33,159,5,5,161,160,5,5,162,160,5,5,163,160,5,5,164,160,5,5,165,160,5,5,166,160,5,5,167,160,5,5,168,160,5,5,169,160,5,5,170,160,5,5,171,160,5,5,172,160,5,5,173,160,5,5,174,160,5,5,175,160,5,5,176,160,5,5,177,160,5,5,178,160,5,5,179,160,5,5,20,163,5,5,21,163,5,5,22,163,5,5,23,163,5,5,24,163,5,5,25,163,5,5,26,163,5,5,27,163,5,5,28,163,5,5,29,163,5,5,30,163,5,5,31,163,5,5,32,163,5,5,33,163,5,5,34,163,5,5,35,163,5,5,36,163,5,5,37,163,5,5,38,163,5,5,39,163,5,5,40,163,5,5,41,163,5,5,42,163,5,5,43,163,5,5,44,163,5,5,45,163,5,5,46,163,5,5,47,163,5,5,48,163,5,5,49,163,5,5,50,163,5,5,51,163,5,5,52,163,5,5,53,163,5,5,54,163,5,5,55,163,5,5,56,163,5,5,57,163,5,5,19,167,5,5,20,167,5,5,21,167,5,5,22,167,5,5,23,167,5,5,24,167,5,5,25,167,5,5,26,167,5,5,27,167,5,5,28,167,5,5,29,167,5,5,30,167,5,5,31,167,5,5,32,167,5,5,33,167,5,5,34,167,5,5,35,167,5,5,36,167,5,5,37,167,5,5,38,167,5,5,39,167,5,5,40,167,5,5,41,167,5,5,42,167,5,5,43,167,5,5,44,167,5,5,45,167,5,5,46,167,5,5,47,167,5,5,48,167,5,5,49,167,5,5,50,167,5,5,51,167,5,5,52,167,5,5,53,167,5,5,54,167,5,5,55,167,5,5,56,167,5,5,57,167,5,5,58,167,5,5,59,167,5,5,60,167,5,5,116,172,5,5,117,172,5,5,118,172,5,5,119,172,5,5,120,172,5,5,121,172,5,5,122,172,5,5,123,172,5,5,124,172,5,5,125,172,5,5,126,172,5,5,127,172,5,5,128,172,5,5,129,172,5,5,130,172,5,5,131,172,5,5,132,172,5,5,133,172,5,5,134,172,5,5,135,172,5,5,136,172,5,5,137,172,5,5,138,172,5,5,139,172,5,5,140,172,5,5,141,172,5,5,142,172,5,5,143,172,5,5,144,172,5,5,145,172,5,5,146,172,5,5,147,172,5,5,148,172,5,5,149,172,5,5,150,172,5,5,151,172,5,5,152,172,5,5,153,172,5,5,154,172,5,5,155,172,5,5,156,172,5,5,157,172,5,5,158,172,5,5,244,178,5,5,245,178,5,5,246,178,5,5,247,178,5,5,248,178,5,5,249,178,5,5,250,178,5,5,251,178,5,5,252,178,5,5,253,178,5,5,254,178,5,5,255,178,5,5,2,179,5,5,3,179,5,5,4,179,5,5,5,179,5,5,6,179,5,5,7,179,5,5,8,179,5,5,9,179,5,5,10,179,5,5,11,179,5,5,12,179,5,5,13,179,5,5,159,172,5,5,14,179,5,5,15,179,5,5,16,179,5,5,17,179,5,5,18,179,5,5,19,179,5,5,20,179,5,5,21,179,5,5,22,179,5,5,23,179,5,5,24,179,5,5,25,179,5,5,26,179,5,5,63,186,5,5,64,186,5,5,65,186,5,5,66,186,5,5,67,186,5,5,68,186,5,5,69,186,5,5,70,186,5,5,71,186,5,5,72,186,5,5,73,186,5,5,74,186,5,5,75,186,5,5,76,186,5,5,125,186,5,5,77,186,5,5,78,186,5,5,79,186,5,5,80,186,5,5,81,186,5,5,82,186,5,5,83,186,5,5,84,186,5,5,85,186,5,5,86,186,5,5,87,186,5,5,88,186,5,5,89,186,5,5,90,186,5,5,91,186,5,5,92,186,5,5,93,186,5,5,94,186,5,5,95,186,5,5,96,186,5,5,97,186,5,5,98,186,5,5,99,186,5,5,100,186,5,5,101,186,5,5,102,186,5,5,103,186,5,5,104,186,5,5,105,186,5,5,106,186,5,5,107,186,5,5,108,186,5,5,109,186,5,5,110,186,5,5,111,186,5,5,112,186,5,5,113,186,5,5,114,186,5,5,115,186,5,5,116,186,5,5,117,186,5,5,118,186,5,5,119,186,5,5,35,194,5,5,36,194,5,5,37,194,5,5,38,194,5,5,39,194,5,5,40,194,5,5,41,194,5,5,42,194,5,5,43,194,5,5,44,194,5,5,45,194,5,5,46,194,5,5,47,194,5,5,48,194,5,5,49,194,5,5,50,194,5,5,51,194,5,5,52,194,5,5,53,194,5,5,54,194,5,5,55,194,5,5,56,194,5,5,57,194,5,5,58,194,5,5,59,194,5,5,60,194,5,5,61,194,5,5,62,194,5,5,33,179,5,5,63,194,5,5,64,194,5,5,126,186,5,5,65,194,5,5,66,194,5,5,67,194,5,5,68,194,5,5,69,194,5,5,70,194,5,5,71,194,5,5,149,202,5,5,72,194,5,5,73,194,5,5,74,194,5,5,75,194,5,5,76,194,5,5,150,202,5,5,77,194,5,5,78,194,5,5,79,194,5,5,80,194,5,5,81,194,5,5,151,202,5,5,152,202,5,5,153,202,5,5,154,202,5,5,155,202,5,5,156,202,5,5,157,202,5,5,158,202,5,5,159,202,5,5,160,202,5,5,161,202,5,5,162,202,5,5,163,202,5,5,164,202,5,5,165,202,5,5,166,202,5,5,167,202,5,5,168,202,5,5,169,202,5,5,170,202,5,5,171,202,5,5,172,202,5,5,173,202,5,5,174,202,5,5,175,202,5,5,176,202,5,5,177,202,5,5,178,202,5,5,179,202,5,5,180,202,5,5,181,202,5,5,182,202,5,5,183,202,5,5,184,202,5,5,185,202,5,5,186,202,5,5,187,202,5,5,188,202,5,5,189,202,5,5,190,202,5,5,191,202,5,5,108,210,5,5,109,210,5,5,110,210,5,5,111,210,5,5,112,210,5,5,113,210,5,5,114,210,5,5,115,210,5,5,116,210,5,5,117,210,5,5,118,210,5,5,119,210,5,5,120,210,5,5,121,210,5,5,120,217,5,5,122,210,5,5,123,210,5,5,124,210,5,5,125,210,5,5,126,210,5,5,127,210,5,5,128,210,5,5,129,210,5,5,130,210,5,5,131,210,5,5,132,210,5,5,133,210,5,5,134,210,5,5,135,210,5,5,136,210,5,5,137,210,5,5,138,210,5,5,139,210,5,5,140,210,5,5,141,210,5,5,142,210,5,5,143,210,5,5,144,210,5,5,145,210,5,5,146,210,5,5,147,210,5,5,148,210,5,5,121,217,5,5,122,217,5,5,123,217,5,5,124,217,5,5,125,217,5,5,126,217,5,5,127,217,5,5,128,217,5,5,129,217,5,5,130,217,5,5,131,217,5,5,132,217,5,5,35,224,5,5,133,217,5,5,134,217,5,5,135,217,5,5,136,217,5,5,156,210,5,5,137,217,5,5,138,217,5,5,139,217,5,5,140,217,5,5,141,217,5,5,142,217,5,5,143,217,5,5,144,217,5,5,145,217,5,5,146,217,5,5,147,217,5,5,148,217,5,5,125,224,5,5,126,224,5,5,127,224,5,5,128,224,5,5,129,224,5,5,130,224,5,5,131,224,5,5,132,224,5,5,133,224,5,5,134,224,5,5,135,224,5,5,136,224,5,5,137,224,5,5,138,224,5,5,139,224,5,5,140,224,5,5,141,224,5,5,142,224,5,5,143,224,5,5,116,230,5,5,117,230,5,5,118,230,5,5,119,230,5,5,120,230,5,5,121,230,5,5,122,230,5,5,123,230,5,5,124,230,5,5,125,230,5,5,126,230,5,5,74,235,5,5,75,235,5,5,243,238,5,5,244,238,5,5,245,238,5,5,246,238,5,5,247,238,5,5,248,238,5,5,249,238,5,5,227,238,5,5,250,238,5,5,41,242,5,5,42,242,5,5,43,242,5,5,175,244,5,5,184,247,5,5,185,247,5,5,188,248,5,5,103,249,5,5,103,157,5,5,20,158,5,5,35,159,5,5,181,160,5,5,64,163,5,5,65,163,5,5,66,163,5,5,67,163,5,5,68,163,5,5,167,172,5,5,168,172,5,5,34,179,5,5,127,186,5,5,128,186,5,5,88,194,5,5,89,194,5,5,90,194,5,5,195,202,5,5,157,210,5,5,158,210,5,5,154,217,5,5,155,217,5,5,145,224,5,5,104,157,5,5,21,158,5,5,36,159,5,5,182,160,5,5,69,163,5,5,69,167,5,5,169,172,5,5,170,172,5,5,105,157,5,5,70,163,5,5,70,167,5,5,171,172,5,5,35,179,5,5,36,179,5,5,159,210,5,5,77,235,5,5,251,238,5,5,78,235,5,5,177,244,5,5,106,157,5,5,37,159,5,5,38,159,5,5,39,159,5,5,183,160,5,5,184,160,5,5,185,160,5,5,71,167,5,5,72,167,5,5,37,179,5,5,129,186,5,5,130,186,5,5,91,194,5,5,160,210,5,5,161,210,5,5,162,210,5,5,163,210,5,5,157,217,5,5,107,157,5,5,108,157,5,5,22,158,5,5,23,158,5,5,24,158,5,5,25,158,5,5,26,158,5,5,40,159,5,5,41,159,5,5,42,159,5,5,43,159,5,5,44,159,5,5,45,159,5,5,46,159,5,5,186,160,5,5,187,160,5,5,188,160,5,5,189,160,5,5,190,160,5,5,191,160,5,5,192,160,5,5,193,160,5,5,71,163,5,5,72,163,5,5,73,163,5,5,74,163,5,5,75,163,5,5,76,163,5,5,73,167,5,5,74,167,5,5,75,167,5,5,76,167,5,5,77,167,5,5,78,167,5,5,79,167,5,5,39,179,5,5,80,167,5,5,81,167,5,5,82,167,5,5,172,172,5,5,173,172,5,5,174,172,5,5,175,172,5,5,176,172,5,5,177,172,5,5,83,167,5,5,178,172,5,5,179,172,5,5,40,179,5,5,41,179,5,5,42,179,5,5,43,179,5,5,131,186,5,5,132,186,5,5,133,186,5,5,134,186,5,5,135,186,5,5,92,194,5,5,93,194,5,5,137,186,5,5,94,194,5,5,95,194,5,5,96,194,5,5,196,202,5,5,197,202,5,5,198,202,5,5,164,210,5,5,165,210,5,5,166,210,5,5,167,210,5,5,158,217,5,5,146,224,5,5,147,224,5,5,79,235,5,5,106,246,5,5,187,247,5,5,109,157,5,5,47,159,5,5,48,159,5,5,49,159,5,5,194,160,5,5,195,160,5,5,196,160,5,5,197,160,5,5,198,160,5,5,199,160,5,5,200,160,5,5,201,160,5,5,202,160,5,5,203,160,5,5,204,160,5,5,205,160,5,5,206,160,5,5,207,160,5,5,208,160,5,5,209,160,5,5,210,160,5,5,211,160,5,5,77,163,5,5,78,163,5,5,79,163,5,5,80,163,5,5,184,172,5,5,81,163,5,5,82,163,5,5,83,163,5,5,84,163,5,5,85,163,5,5,86,163,5,5,87,163,5,5,88,163,5,5,89,163,5,5,90,163,5,5,91,163,5,5,92,163,5,5,93,163,5,5,94,163,5,5,95,163,5,5,96,163,5,5,97,163,5,5,98,163,5,5,99,163,5,5,100,163,5,5,101,163,5,5,102,163,5,5,103,163,5,5,104,163,5,5,105,163,5,5,106,163,5,5,107,163,5,5,108,163,5,5,109,163,5,5,110,163,5,5,85,167,5,5,86,167,5,5,87,167,5,5,88,167,5,5,89,167,5,5,90,167,5,5,91,167,5,5,92,167,5,5,93,167,5,5,94,167,5,5,95,167,5,5,96,167,5,5,97,167,5,5,98,167,5,5,99,167,5,5,100,167,5,5,101,167,5,5,102,167,5,5,103,167,5,5,104,167,5,5,105,167,5,5,106,167,5,5,107,167,5,5,108,167,5,5,109,167,5,5,110,167,5,5,111,167,5,5,112,167,5,5,113,167,5,5,114,167,5,5,115,167,5,5,116,167,5,5,117,167,5,5,118,167,5,5,119,167,5,5,120,167,5,5,121,167,5,5,122,167,5,5,123,167,5,5,124,167,5,5,125,167,5,5,183,172,5,5,126,167,5,5,127,167,5,5,185,172,5,5,186,172,5,5,187,172,5,5,188,172,5,5,189,172,5,5,190,172,5,5,191,172,5,5,192,172,5,5,193,172,5,5,194,172,5,5,195,172,5,5,196,172,5,5,197,172,5,5,198,172,5,5,199,172,5,5,200,172,5,5,201,172,5,5,202,172,5,5,203,172,5,5,204,172,5,5,44,179,5,5,205,172,5,5,206,172,5,5,207,172,5,5,208,172,5,5,209,172,5,5,210,172,5,5,211,172,5,5,212,172,5,5,213,172,5,5,214,172,5,5,215,172,5,5,216,172,5,5,217,172,5,5,218,172,5,5,219,172,5,5,220,172,5,5,221,172,5,5,222,172,5,5,223,172,5,5,224,172,5,5,225,172,5,5,226,172,5,5,227,172,5,5,64,176,5,5,228,172,5,5,229,172,5,5,230,172,5,5,231,172,5,5,45,179,5,5,46,179,5,5,47,179,5,5,48,179,5,5,240,172,5,5,49,179,5,5,50,179,5,5,51,179,5,5,52,179,5,5,53,179,5,5,54,179,5,5,55,179,5,5,56,179,5,5,57,179,5,5,58,179,5,5,59,179,5,5,60,179,5,5,61,179,5,5,62,179,5,5,63,179,5,5,64,179,5,5,65,179,5,5,66,179,5,5,67,179,5,5,68,179,5,5,69,179,5,5,70,179,5,5,71,179,5,5,72,179,5,5,73,179,5,5,74,179,5,5,75,179,5,5,76,179,5,5,77,179,5,5,138,186,5,5,140,186,5,5,78,179,5,5,79,179,5,5,80,179,5,5,81,179,5,5,82,179,5,5,83,179,5,5,84,179,5,5,85,179,5,5,141,186,5,5,142,186,5,5,143,186,5,5,144,186,5,5,145,186,5,5,146,186,5,5,147,186,5,5,148,186,5,5,139,186,5,5,149,186,5,5,150,186,5,5,151,186,5,5,152,186,5,5,153,186,5,5,154,186,5,5,155,186,5,5,156,186,5,5,157,186,5,5,158,186,5,5,159,186,5,5,160,186,5,5,161,186,5,5,162,186,5,5,163,186,5,5,164,186,5,5,165,186,5,5,166,186,5,5,167,186,5,5,168,186,5,5,169,186,5,5,170,186,5,5,171,186,5,5,172,186,5,5,173,186,5,5,174,186,5,5,175,186,5,5,176,186,5,5,177,186,5,5,178,186,5,5,179,186,5,5,180,186,5,5,181,186,5,5,182,186,5,5,183,186,5,5,184,186,5,5,185,186,5,5,186,186,5,5,187,186,5,5,188,186,5,5,189,186,5,5,190,186,5,5,191,186,5,5,192,186,5,5,193,186,5,5,194,186,5,5,195,186,5,5,196,186,5,5,197,186,5,5,198,186,5,5,199,186,5,5,200,186,5,5,201,186,5,5,202,186,5,5,203,186,5,5,204,186,5,5,205,186,5,5,97,194,5,5,98,194,5,5,99,194,5,5,100,194,5,5,101,194,5,5,102,194,5,5,103,194,5,5,104,194,5,5,105,194,5,5,106,194,5,5,107,194,5,5,108,194,5,5,109,194,5,5,110,194,5,5,111,194,5,5,112,194,5,5,113,194,5,5,114,194,5,5,115,194,5,5,116,194,5,5,117,194,5,5,118,194,5,5,119,194,5,5,216,186,5,5,120,194,5,5,200,202,5,5,121,194,5,5,122,194,5,5,123,194,5,5,124,194,5,5,125,194,5,5,126,194,5,5,127,194,5,5,128,194,5,5,129,194,5,5,130,194,5,5,131,194,5,5,132,194,5,5,133,194,5,5,134,194,5,5,135,194,5,5,136,194,5,5,137,194,5,5,138,194,5,5,139,194,5,5,140,194,5,5,141,194,5,5,142,194,5,5,143,194,5,5,144,194,5,5,145,194,5,5,146,194,5,5,147,194,5,5,148,194,5,5,149,194,5,5,150,194,5,5,151,194,5,5,201,202,5,5,202,202,5,5,203,202,5,5,204,202,5,5,205,202,5,5,206,202,5,5,207,202,5,5,208,202,5,5,209,202,5,5,210,202,5,5,211,202,5,5,212,202,5,5,213,202,5,5,214,202,5,5,215,202,5,5,216,202,5,5,217,202,5,5,218,202,5,5,219,202,5,5,220,202,5,5,221,202,5,5,222,202,5,5,223,202,5,5,224,202,5,5,225,202,5,5,226,202,5,5,227,202,5,5,228,202,5,5,229,202,5,5,230,202,5,5,231,202,5,5,152,194,5,5,232,202,5,5,233,202,5,5,234,202,5,5,235,202,5,5,236,202,5,5,168,210,5,5,169,210,5,5,170,210,5,5,171,210,5,5,172,210,5,5,173,210,5,5,174,210,5,5,175,210,5,5,176,210,5,5,177,210,5,5,178,210,5,5,179,210,5,5,180,210,5,5,181,210,5,5,182,210,5,5,183,210,5,5,184,210,5,5,185,210,5,5,186,210,5,5,187,210,5,5,188,210,5,5,189,210,5,5,190,210,5,5,191,210,5,5,192,210,5,5,193,210,5,5,194,210,5,5,195,210,5,5,196,210,5,5,197,210,5,5,212,210,5,5,159,217,5,5,160,217,5,5,161,217,5,5,162,217,5,5,163,217,5,5,164,217,5,5,165,217,5,5,166,217,5,5,167,217,5,5,168,217,5,5,169,217,5,5,170,217,5,5,171,217,5,5,172,217,5,5,173,217,5,5,174,217,5,5,175,217,5,5,176,217,5,5,177,217,5,5,178,217,5,5,179,217,5,5,180,217,5,5,181,217,5,5,182,217,5,5,183,217,5,5,184,217,5,5,185,217,5,5,186,217,5,5,148,224,5,5,149,224,5,5,150,224,5,5,151,224,5,5,152,224,5,5,153,224,5,5,154,224,5,5,155,224,5,5,156,224,5,5,157,224,5,5,158,224,5,5,159,224,5,5,160,224,5,5,161,224,5,5,162,224,5,5,163,224,5,5,164,224,5,5,165,224,5,5,166,224,5,5,131,230,5,5,132,230,5,5,133,230,5,5,134,230,5,5,135,230,5,5,178,224,5,5,136,230,5,5,137,230,5,5,138,230,5,5,139,230,5,5,140,230,5,5,141,230,5,5,142,230,5,5,143,230,5,5,144,230,5,5,145,230,5,5,146,230,5,5,167,224,5,5,147,230,5,5,148,230,5,5,149,230,5,5,80,235,5,5,253,238,5,5,81,235,5,5,82,235,5,5,83,235,5,5,252,238,5,5,254,238,5,5,255,238,5,5,45,242,5,5,46,242,5,5,47,242,5,5,48,242,5,5,49,242,5,5,50,242,5,5,51,242,5,5,178,244,5,5,179,244,5,5,180,244,5,5,107,246,5,5,108,246,5,5,109,246,5,5,188,247,5,5,190,248,5,5,191,248,5,5,110,157,5,5,111,157,5,5,112,157,5,5,113,157,5,5,27,158,5,5,50,159,5,5,215,160,5,5,216,160,5,5,217,160,5,5,218,160,5,5,118,163,5,5,119,163,5,5,120,163,5,5,121,163,5,5,122,163,5,5,142,167,5,5,143,167,5,5,144,167,5,5,145,167,5,5,146,167,5,5,147,167,5,5,148,167,5,5,149,167,5,5,150,167,5,5,241,172,5,5,242,172,5,5,243,172,5,5,98,179,5,5,99,179,5,5,100,179,5,5,217,186,5,5,218,186,5,5,219,186,5,5,172,194,5,5,220,186,5,5,175,194,5,5,248,202,5,5,213,210,5,5,251,202,5,5,214,210,5,5,179,224,5,5,180,224,5,5,155,230,5,5,156,230,5,5,9,239,5,5,59,242,5,5,60,242,5,5,113,246,5,5,114,157,5,5,51,159,5,5,52,159,5,5,53,159,5,5,54,159,5,5,220,160,5,5,221,160,5,5,222,160,5,5,223,160,5,5,224,160,5,5,123,163,5,5,124,163,5,5,125,163,5,5,126,163,5,5,127,163,5,5,128,163,5,5,129,163,5,5,130,163,5,5,131,163,5,5,153,167,5,5,154,167,5,5,155,167,5,5,156,167,5,5,157,167,5,5,158,167,5,5,159,167,5,5,160,167,5,5,161,167,5,5,162,167,5,5,163,167,5,5,164,167,5,5,165,167,5,5,166,167,5,5,167,167,5,5,244,172,5,5,245,172,5,5,246,172,5,5,247,172,5,5,248,172,5,5,103,179,5,5,249,172,5,5,250,172,5,5,251,172,5,5,252,172,5,5,104,179,5,5,105,179,5,5,106,179,5,5,107,179,5,5,108,179,5,5,109,179,5,5,110,179,5,5,111,179,5,5,112,179,5,5,113,179,5,5,114,179,5,5,115,179,5,5,116,179,5,5,117,179,5,5,118,179,5,5,119,179,5,5,120,179,5,5,121,179,5,5,122,179,5,5,221,186,5,5,222,186,5,5,223,186,5,5,224,186,5,5,225,186,5,5,226,186,5,5,227,186,5,5,228,186,5,5,229,186,5,5,230,186,5,5,231,186,5,5,176,194,5,5,177,194,5,5,178,194,5,5,179,194,5,5,180,194,5,5,181,194,5,5,182,194,5,5,183,194,5,5,184,194,5,5,185,194,5,5,186,194,5,5,187,194,5,5,252,202,5,5,253,202,5,5,254,202,5,5,255,202,5,5,2,203,5,5,3,203,5,5,4,203,5,5,5,203,5,5,216,210,5,5,217,210,5,5,218,210,5,5,219,210,5,5,220,210,5,5,221,210,5,5,222,210,5,5,223,210,5,5,224,210,5,5,225,210,5,5,226,210,5,5,201,217,5,5,188,194,5,5,202,217,5,5,203,217,5,5,204,217,5,5,205,217,5,5,181,224,5,5,182,224,5,5,157,230,5,5,158,230,5,5,10,239,5,5,11,239,5,5,12,239,5,5,61,242,5,5,183,244,5,5,115,157,5,5,55,159,5,5,225,160,5,5,226,160,5,5,227,160,5,5,132,163,5,5,133,163,5,5,134,163,5,5,169,167,5,5,254,172,5,5,255,172,5,5,123,179,5,5,124,179,5,5,125,179,5,5,2,173,5,5,234,186,5,5,235,186,5,5,236,186,5,5,192,194,5,5,193,194,5,5,194,194,5,5,227,210,5,5,207,217,5,5,118,157,5,5,28,158,5,5,29,158,5,5,56,159,5,5,57,159,5,5,58,159,5,5,59,159,5,5,228,160,5,5,229,160,5,5,230,160,5,5,170,167,5,5,171,167,5,5,3,173,5,5,4,173,5,5,5,173,5,5,195,194,5,5,8,203,5,5,9,203,5,5,228,210,5,5,119,157,5,5,30,158,5,5,31,158,5,5,231,160,5,5,232,160,5,5,233,160,5,5,135,163,5,5,136,163,5,5,137,163,5,5,138,163,5,5,139,163,5,5,172,167,5,5,6,173,5,5,7,173,5,5,196,194,5,5,197,194,5,5,10,203,5,5,11,203,5,5,12,203,5,5,209,217,5,5,159,230,5,5,160,230,5,5,122,157,5,5,178,157,5,5,32,158,5,5,60,159,5,5,61,159,5,5,234,160,5,5,140,163,5,5,141,163,5,5,142,163,5,5,143,163,5,5,144,163,5,5,145,163,5,5,173,167,5,5,174,167,5,5,175,167,5,5,176,167,5,5,177,167,5,5,178,167,5,5,179,167,5,5,8,173,5,5,9,173,5,5,10,173,5,5,11,173,5,5,12,173,5,5,126,179,5,5,127,179,5,5,128,179,5,5,129,179,5,5,130,179,5,5,131,179,5,5,132,179,5,5,133,179,5,5,134,179,5,5,237,186,5,5,238,186,5,5,239,186,5,5,240,186,5,5,241,186,5,5,198,194,5,5,199,194,5,5,242,186,5,5,200,194,5,5,229,210,5,5,230,210,5,5,210,217,5,5,211,217,5,5,212,217,5,5,213,217,5,5,161,230,5,5,87,235,5,5,88,235,5,5,13,239,5,5,184,244,5,5,192,248,5,5,123,157,5,5,33,158,5,5,236,160,5,5,124,157,5,5,35,158,5,5,62,159,5,5,63,159,5,5,64,159,5,5,65,159,5,5,66,159,5,5,237,160,5,5,238,160,5,5,239,160,5,5,240,160,5,5,241,160,5,5,242,160,5,5,243,160,5,5,244,160,5,5,245,160,5,5,246,160,5,5,247,160,5,5,248,160,5,5,146,163,5,5,147,163,5,5,148,163,5,5,149,163,5,5,150,163,5,5,151,163,5,5,152,163,5,5,153,163,5,5,154,163,5,5,172,163,5,5,155,163,5,5,156,163,5,5,157,163,5,5,158,163,5,5,159,163,5,5,160,163,5,5,161,163,5,5,162,163,5,5,163,163,5,5,164,163,5,5,165,163,5,5,166,163,5,5,167,163,5,5,168,163,5,5,169,163,5,5,180,167,5,5,181,167,5,5,182,167,5,5,183,167,5,5,184,167,5,5,185,167,5,5,186,167,5,5,187,167,5,5,188,167,5,5,189,167,5,5,190,167,5,5,191,167,5,5,192,167,5,5,193,167,5,5,194,167,5,5,195,167,5,5,196,167,5,5,197,167,5,5,198,167,5,5,199,167,5,5,200,167,5,5,201,167,5,5,202,167,5,5,203,167,5,5,204,167,5,5,205,167,5,5,206,167,5,5,207,167,5,5,208,167,5,5,209,167,5,5,210,167,5,5,211,167,5,5,212,167,5,5,213,167,5,5,214,167,5,5,215,167,5,5,216,167,5,5,217,167,5,5,218,167,5,5,219,167,5,5,220,167,5,5,13,173,5,5,14,173,5,5,15,173,5,5,16,173,5,5,17,173,5,5,18,173,5,5,19,173,5,5,20,173,5,5,21,173,5,5,22,173,5,5,23,173,5,5,24,173,5,5,25,173,5,5,26,173,5,5,27,173,5,5,28,173,5,5,29,173,5,5,30,173,5,5,31,173,5,5,32,173,5,5,33,173,5,5,34,173,5,5,35,173,5,5,36,173,5,5,37,173,5,5,38,173,5,5,39,173,5,5,40,173,5,5,41,173,5,5,42,173,5,5,43,173,5,5,44,173,5,5,45,173,5,5,46,173,5,5,137,179,5,5,138,179,5,5,139,179,5,5,140,179,5,5,141,179,5,5,142,179,5,5,143,179,5,5,144,179,5,5,145,179,5,5,146,179,5,5,147,179,5,5,148,179,5,5,149,179,5,5,150,179,5,5,151,179,5,5,152,179,5,5,51,173,5,5,153,179,5,5,154,179,5,5,155,179,5,5,156,179,5,5,157,179,5,5,158,179,5,5,159,179,5,5,160,179,5,5,161,179,5,5,162,179,5,5,163,179,5,5,164,179,5,5,165,179,5,5,243,186,5,5,244,186,5,5,245,186,5,5,246,186,5,5,247,186,5,5,248,186,5,5,249,186,5,5,250,186,5,5,251,186,5,5,252,186,5,5,253,186,5,5,254,186,5,5,255,186,5,5,2,187,5,5,3,187,5,5,4,187,5,5,5,187,5,5,6,187,5,5,7,187,5,5,8,187,5,5,9,187,5,5,10,187,5,5,11,187,5,5,12,187,5,5,13,187,5,5,14,187,5,5,15,187,5,5,16,187,5,5,17,187,5,5,18,187,5,5,19,187,5,5,20,187,5,5,21,187,5,5,22,187,5,5,23,187,5,5,24,187,5,5,25,187,5,5,26,187,5,5,27,187,5,5,28,187,5,5,29,187,5,5,30,187,5,5,31,187,5,5,203,194,5,5,204,194,5,5,205,194,5,5,206,194,5,5,207,194,5,5,208,194,5,5,209,194,5,5,210,194,5,5,211,194,5,5,212,194,5,5,213,194,5,5,214,194,5,5,215,194,5,5,216,194,5,5,217,194,5,5,218,194,5,5,219,194,5,5,220,194,5,5,221,194,5,5,222,194,5,5,223,194,5,5,224,194,5,5,225,194,5,5,226,194,5,5,227,194,5,5,14,203,5,5,228,194,5,5,229,194,5,5,230,194,5,5,231,194,5,5,232,194,5,5,233,194,5,5,234,194,5,5,235,194,5,5,236,194,5,5,237,194,5,5,238,194,5,5,239,194,5,5,240,194,5,5,241,194,5,5,242,194,5,5,243,194,5,5,244,194,5,5,245,194,5,5,246,194,5,5,15,203,5,5,16,203,5,5,17,203,5,5,18,203,5,5,19,203,5,5,20,203,5,5,21,203,5,5,22,203,5,5,23,203,5,5,24,203,5,5,25,203,5,5,26,203,5,5,27,203,5,5,251,194,5,5,28,203,5,5,29,203,5,5,30,203,5,5,31,203,5,5,32,203,5,5,33,203,5,5,34,203,5,5,35,203,5,5,36,203,5,5,37,203,5,5,38,203,5,5,231,210,5,5,232,210,5,5,233,210,5,5,234,210,5,5,235,210,5,5,236,210,5,5,237,210,5,5,238,210,5,5,239,210,5,5,240,210,5,5,241,210,5,5,242,210,5,5,243,210,5,5,244,210,5,5,245,210,5,5,246,210,5,5,247,210,5,5,248,210,5,5,249,210,5,5,250,210,5,5,251,210,5,5,252,210,5,5,253,210,5,5,254,210,5,5,215,217,5,5,216,217,5,5,217,217,5,5,218,217,5,5,219,217,5,5,220,217,5,5,221,217,5,5,222,217,5,5,223,217,5,5,224,217,5,5,225,217,5,5,226,217,5,5,227,217,5,5,228,217,5,5,229,217,5,5,230,217,5,5,231,217,5,5,232,217,5,5,233,217,5,5,234,217,5,5,235,217,5,5,236,217,5,5,237,217,5,5,183,224,5,5,184,224,5,5,185,224,5,5,186,224,5,5,187,224,5,5,188,224,5,5,189,224,5,5,190,224,5,5,191,224,5,5,192,224,5,5,193,224,5,5,194,224,5,5,195,224,5,5,196,224,5,5,197,224,5,5,198,224,5,5,199,224,5,5,162,230,5,5,163,230,5,5,164,230,5,5,165,230,5,5,172,230,5,5,166,230,5,5,167,230,5,5,168,230,5,5,169,230,5,5,89,235,5,5,90,235,5,5,91,235,5,5,14,239,5,5,15,239,5,5,16,239,5,5,62,242,5,5,63,242,5,5,64,242,5,5,65,242,5,5,66,242,5,5,185,244,5,5,67,242,5,5,186,244,5,5,114,246,5,5,187,244,5,5,188,244,5,5,115,246,5,5,116,246,5,5,117,246,5,5,118,246,5,5,119,246,5,5,189,247,5,5,120,246,5,5,190,247,5,5,193,248,5,5,191,247,5,5,125,157,5,5,46,157,5,5,126,157,5,5,250,160,5,5,251,160,5,5,173,163,5,5,166,165,5,5,36,187,5,5,37,187,5,5,241,217,5,5,127,157,5,5,67,159,5,5,68,159,5,5,69,159,5,5,252,160,5,5,253,160,5,5,174,163,5,5,52,173,5,5,53,173,5,5,169,179,5,5,252,194,5,5,43,203,5,5,128,157,5,5,129,157,5,5,130,157,5,5,36,158,5,5,175,163,5,5,224,167,5,5,54,173,5,5,55,173,5,5,56,173,5,5,57,173,5,5,58,173,5,5,171,179,5,5,254,194,5,5,131,157,5,5,37,158,5,5,38,158,5,5,39,158,5,5,70,159,5,5,71,159,5,5,72,159,5,5,73,159,5,5,254,160,5,5,255,160,5,5,2,161,5,5,176,163,5,5,177,163,5,5,178,163,5,5,179,163,5,5,180,163,5,5,181,163,5,5,182,163,5,5,183,163,5,5,226,167,5,5,227,167,5,5,228,167,5,5,229,167,5,5,230,167,5,5,231,167,5,5,232,167,5,5,233,167,5,5,234,167,5,5,235,167,5,5,236,167,5,5,237,167,5,5,59,173,5,5,60,173,5,5,61,173,5,5,62,173,5,5,63,173,5,5,64,173,5,5,65,173,5,5,66,173,5,5,67,173,5,5,68,173,5,5,69,173,5,5,172,179,5,5,173,179,5,5,174,179,5,5,175,179,5,5,176,179,5,5,177,179,5,5,178,179,5,5,179,179,5,5,180,179,5,5,181,179,5,5,39,187,5,5,40,187,5,5,41,187,5,5,42,187,5,5,43,187,5,5,44,187,5,5,45,187,5,5,46,187,5,5,47,187,5,5,48,187,5,5,49,187,5,5,3,195,5,5,50,187,5,5,4,195,5,5,5,195,5,5,6,195,5,5,7,195,5,5,8,195,5,5,9,195,5,5,10,195,5,5,11,195,5,5,12,195,5,5,15,195,5,5,13,195,5,5,44,203,5,5,45,203,5,5,46,203,5,5,47,203,5,5,48,203,5,5,49,203,5,5,220,206,5,5,5,211,5,5,6,211,5,5,7,211,5,5,8,211,5,5,9,211,5,5,10,211,5,5,11,211,5,5,12,211,5,5,13,211,5,5,242,217,5,5,14,211,5,5,243,217,5,5,244,217,5,5,245,217,5,5,246,217,5,5,247,217,5,5,248,217,5,5,249,217,5,5,16,211,5,5,250,217,5,5,251,217,5,5,200,224,5,5,201,224,5,5,202,224,5,5,253,217,5,5,173,230,5,5,174,230,5,5,175,230,5,5,92,235,5,5,93,235,5,5,207,224,5,5,21,239,5,5,68,242,5,5,132,157,5,5,76,159,5,5,6,161,5,5,7,161,5,5,8,161,5,5,239,167,5,5,240,167,5,5,50,203,5,5,134,157,5,5,40,158,5,5,77,159,5,5,71,173,5,5,16,195,5,5,135,157,5,5,78,159,5,5,79,159,5,5,80,159,5,5,81,159,5,5,9,161,5,5,10,161,5,5,11,161,5,5,188,163,5,5,189,163,5,5,190,163,5,5,191,163,5,5,192,163,5,5,193,163,5,5,194,163,5,5,195,163,5,5,196,163,5,5,197,163,5,5,198,163,5,5,199,163,5,5,200,163,5,5,201,163,5,5,242,167,5,5,243,167,5,5,244,167,5,5,241,167,5,5,245,167,5,5,246,167,5,5,72,173,5,5,247,167,5,5,248,167,5,5,249,167,5,5,250,167,5,5,73,173,5,5,74,173,5,5,75,173,5,5,76,173,5,5,77,173,5,5,78,173,5,5,79,173,5,5,185,179,5,5,186,179,5,5,187,179,5,5,188,179,5,5,189,179,5,5,190,179,5,5,191,179,5,5,192,179,5,5,193,179,5,5,81,173,5,5,51,187,5,5,52,187,5,5,53,187,5,5,54,187,5,5,55,187,5,5,56,187,5,5,57,187,5,5,58,187,5,5,59,187,5,5,60,187,5,5,61,187,5,5,62,187,5,5,17,195,5,5,63,187,5,5,18,195,5,5,19,195,5,5,20,195,5,5,21,195,5,5,22,195,5,5,24,195,5,5,51,203,5,5,52,203,5,5,53,203,5,5,54,203,5,5,55,203,5,5,23,195,5,5,56,203,5,5,57,203,5,5,17,211,5,5,18,211,5,5,19,211,5,5,20,211,5,5,21,211,5,5,22,211,5,5,23,211,5,5,24,211,5,5,25,211,5,5,26,211,5,5,27,211,5,5,28,211,5,5,29,211,5,5,254,217,5,5,255,217,5,5,30,211,5,5,2,218,5,5,3,218,5,5,4,218,5,5,5,218,5,5,6,218,5,5,7,218,5,5,8,218,5,5,9,218,5,5,208,224,5,5,209,224,5,5,210,224,5,5,211,224,5,5,212,224,5,5,213,224,5,5,94,235,5,5,23,239,5,5,24,239,5,5,70,242,5,5,71,242,5,5,72,242,5,5,190,244,5,5,121,246,5,5,104,249,5,5,136,157,5,5,12,161,5,5,252,167,5,5,202,163,5,5,253,167,5,5,254,167,5,5,82,173,5,5,83,173,5,5,84,173,5,5,194,179,5,5,137,157,5,5,41,158,5,5,42,158,5,5,82,159,5,5,13,161,5,5,203,163,5,5,204,163,5,5,205,163,5,5,2,168,5,5,87,173,5,5,88,173,5,5,195,179,5,5,31,211,5,5,138,157,5,5,43,158,5,5,83,159,5,5,14,161,5,5,15,161,5,5,16,161,5,5,25,195,5,5,59,203,5,5,139,157,5,5,44,158,5,5,45,158,5,5,46,158,5,5,84,159,5,5,85,159,5,5,17,161,5,5,18,161,5,5,19,161,5,5,20,161,5,5,206,163,5,5,207,163,5,5,208,163,5,5,209,163,5,5,3,168,5,5,4,168,5,5,5,168,5,5,6,168,5,5,7,168,5,5,8,168,5,5,9,168,5,5,10,168,5,5,11,168,5,5,12,168,5,5,89,173,5,5,90,173,5,5,91,173,5,5,92,173,5,5,93,173,5,5,196,179,5,5,197,179,5,5,198,179,5,5,199,179,5,5,64,187,5,5,65,187,5,5,66,187,5,5,67,187,5,5,68,187,5,5,69,187,5,5,26,195,5,5,27,195,5,5,28,195,5,5,29,195,5,5,30,195,5,5,60,203,5,5,61,203,5,5,62,203,5,5,63,203,5,5,32,211,5,5,33,211,5,5,34,211,5,5,36,211,5,5,10,218,5,5,11,218,5,5,12,218,5,5,214,224,5,5,215,224,5,5,178,230,5,5,95,235,5,5,122,246,5,5,192,247,5,5,140,157,5,5,142,157,5,5,86,159,5,5,21,161,5,5,14,168,5,5,15,168,5,5,95,173,5,5,71,187,5,5,31,195,5,5,64,203,5,5,65,203,5,5,216,224,5,5,217,224,5,5,96,235,5,5,97,235,5,5,26,239,5,5,223,249,5,5,143,157,5,5,211,163,5,5,212,163,5,5,213,163,5,5,96,173,5,5,97,173,5,5,200,179,5,5,201,179,5,5,72,187,5,5,151,191,5,5,73,187,5,5,74,187,5,5,32,195,5,5,67,203,5,5,37,211,5,5,38,211,5,5,13,218,5,5,123,246,5,5,144,157,5,5,22,161,5,5,23,161,5,5,214,163,5,5,215,163,5,5,216,163,5,5,217,163,5,5,218,163,5,5,219,163,5,5,18,168,5,5,19,168,5,5,20,168,5,5,21,168,5,5,22,168,5,5,23,168,5,5,24,168,5,5,25,168,5,5,26,168,5,5,98,173,5,5,99,173,5,5,100,173,5,5,101,173,5,5,102,173,5,5,103,173,5,5,104,173,5,5,105,173,5,5,106,173,5,5,203,179,5,5,204,179,5,5,205,179,5,5,206,179,5,5,207,179,5,5,208,179,5,5,107,173,5,5,209,179,5,5,75,187,5,5,76,187,5,5,77,187,5,5,78,187,5,5,33,195,5,5,79,187,5,5,80,187,5,5,81,187,5,5,82,187,5,5,83,187,5,5,84,187,5,5,85,187,5,5,86,187,5,5,87,187,5,5,88,187,5,5,34,195,5,5,35,195,5,5,36,195,5,5,37,195,5,5,38,195,5,5,39,195,5,5,40,195,5,5,68,203,5,5,69,203,5,5,70,203,5,5,71,203,5,5,72,203,5,5,40,211,5,5,14,218,5,5,41,211,5,5,42,211,5,5,15,218,5,5,44,211,5,5,16,218,5,5,17,218,5,5,18,218,5,5,19,218,5,5,220,224,5,5,221,224,5,5,179,230,5,5,180,230,5,5,27,239,5,5,73,242,5,5,74,242,5,5,191,244,5,5,48,158,5,5,145,157,5,5,88,159,5,5,49,158,5,5,90,159,5,5,25,161,5,5,91,159,5,5,92,159,5,5,26,161,5,5,224,163,5,5,225,163,5,5,226,163,5,5,27,161,5,5,227,163,5,5,228,163,5,5,229,163,5,5,28,161,5,5,29,161,5,5,30,161,5,5,31,161,5,5,230,163,5,5,231,163,5,5,32,161,5,5,33,161,5,5,34,161,5,5,232,163,5,5,27,168,5,5,28,168,5,5,234,163,5,5,29,168,5,5,235,163,5,5,30,168,5,5,236,163,5,5,237,163,5,5,31,168,5,5,238,163,5,5,239,163,5,5,240,163,5,5,32,168,5,5,241,163,5,5,242,163,5,5,243,163,5,5,244,163,5,5,245,163,5,5,246,163,5,5,247,163,5,5,248,163,5,5,249,163,5,5,250,163,5,5,251,163,5,5,33,168,5,5,252,163,5,5,253,163,5,5,254,163,5,5,255,163,5,5,2,164,5,5,3,164,5,5,4,164,5,5,34,168,5,5,5,164,5,5,35,168,5,5,6,164,5,5,36,168,5,5,37,168,5,5,7,164,5,5,8,164,5,5,9,164,5,5,10,164,5,5,38,168,5,5,39,168,5,5,40,168,5,5,41,168,5,5,42,168,5,5,43,168,5,5,44,168,5,5,108,173,5,5,45,168,5,5,46,168,5,5,47,168,5,5,109,173,5,5,48,168,5,5,49,168,5,5,50,168,5,5,51,168,5,5,52,168,5,5,110,173,5,5,53,168,5,5,54,168,5,5,55,168,5,5,56,168,5,5,111,173,5,5,57,168,5,5,58,168,5,5,112,173,5,5,59,168,5,5,60,168,5,5,113,173,5,5,114,173,5,5,115,173,5,5,61,168,5,5,62,168,5,5,116,173,5,5,63,168,5,5,64,168,5,5,65,168,5,5,66,168,5,5,67,168,5,5,68,168,5,5,69,168,5,5,70,168,5,5,117,173,5,5,71,168,5,5,72,168,5,5,73,168,5,5,74,168,5,5,75,168,5,5,118,173,5,5,119,173,5,5,120,173,5,5,76,168,5,5,121,173,5,5,122,173,5,5,77,168,5,5,78,168,5,5,79,168,5,5,123,173,5,5,211,179,5,5,124,173,5,5,125,173,5,5,126,173,5,5,127,173,5,5,128,173,5,5,129,173,5,5,130,173,5,5,131,173,5,5,132,173,5,5,212,179,5,5,133,173,5,5,134,173,5,5,135,173,5,5,213,179,5,5,214,179,5,5,136,173,5,5,137,173,5,5,138,173,5,5,139,173,5,5,215,179,5,5,216,179,5,5,140,173,5,5,141,173,5,5,217,179,5,5,218,179,5,5,142,173,5,5,143,173,5,5,219,179,5,5,144,173,5,5,145,173,5,5,146,173,5,5,147,173,5,5,148,173,5,5,220,179,5,5,149,173,5,5,221,179,5,5,150,173,5,5,222,179,5,5,151,173,5,5,223,179,5,5,152,173,5,5,153,173,5,5,154,173,5,5,224,179,5,5,155,173,5,5,225,179,5,5,156,173,5,5,157,173,5,5,158,173,5,5,226,179,5,5,227,179,5,5,228,179,5,5,229,179,5,5,230,179,5,5,159,173,5,5,160,173,5,5,161,173,5,5,162,173,5,5,163,173,5,5,164,173,5,5,233,179,5,5,91,187,5,5,234,179,5,5,235,179,5,5,236,179,5,5,237,179,5,5,238,179,5,5,239,179,5,5,92,187,5,5,240,179,5,5,241,179,5,5,93,187,5,5,94,187,5,5,242,179,5,5,243,179,5,5,244,179,5,5,245,179,5,5,246,179,5,5,95,187,5,5,247,179,5,5,248,179,5,5,249,179,5,5,250,179,5,5,251,179,5,5,252,179,5,5,253,179,5,5,96,187,5,5,254,179,5,5,255,179,5,5,2,180,5,5,3,180,5,5,4,180,5,5,5,180,5,5,6,180,5,5,97,187,5,5,98,187,5,5,7,180,5,5,99,187,5,5,100,187,5,5,101,187,5,5,8,180,5,5,9,180,5,5,102,187,5,5,10,180,5,5,103,187,5,5,104,187,5,5,105,187,5,5,11,180,5,5,12,180,5,5,13,180,5,5,110,187,5,5,111,187,5,5,42,195,5,5,43,195,5,5,112,187,5,5,113,187,5,5,44,195,5,5,114,187,5,5,115,187,5,5,45,195,5,5,116,187,5,5,117,187,5,5,118,187,5,5,119,187,5,5,120,187,5,5,121,187,5,5,122,187,5,5,46,195,5,5,123,187,5,5,124,187,5,5,47,195,5,5,125,187,5,5,126,187,5,5,127,187,5,5,128,187,5,5,48,195,5,5,129,187,5,5,130,187,5,5,49,195,5,5,131,187,5,5,50,195,5,5,132,187,5,5,133,187,5,5,51,195,5,5,52,195,5,5,134,187,5,5,135,187,5,5,136,187,5,5,53,195,5,5,137,187,5,5,138,187,5,5,139,187,5,5,140,187,5,5,141,187,5,5,142,187,5,5,143,187,5,5,144,187,5,5,145,187,5,5,54,195,5,5,55,195,5,5,56,195,5,5,57,195,5,5,146,187,5,5,58,195,5,5,147,187,5,5,148,187,5,5,149,187,5,5,59,195,5,5,60,195,5,5,61,195,5,5,150,187,5,5,151,187,5,5,152,187,5,5,153,187,5,5,62,195,5,5,63,195,5,5,64,195,5,5,73,203,5,5,65,195,5,5,66,195,5,5,67,195,5,5,74,203,5,5,68,195,5,5,75,203,5,5,69,195,5,5,70,195,5,5,71,195,5,5,72,195,5,5,73,195,5,5,74,195,5,5,75,195,5,5,76,203,5,5,77,203,5,5,76,195,5,5,77,195,5,5,78,195,5,5,78,203,5,5,79,195,5,5,79,203,5,5,80,195,5,5,81,195,5,5,82,195,5,5,83,195,5,5,80,203,5,5,84,195,5,5,81,203,5,5,85,195,5,5,86,195,5,5,87,195,5,5,88,195,5,5,89,195,5,5,90,195,5,5,91,195,5,5,82,203,5,5,92,195,5,5,83,203,5,5,84,203,5,5,85,203,5,5,93,195,5,5,94,195,5,5,95,195,5,5,86,203,5,5,96,195,5,5,97,195,5,5,98,195,5,5,99,195,5,5,100,195,5,5,101,195,5,5,102,195,5,5,90,203,5,5,45,211,5,5,91,203,5,5,92,203,5,5,93,203,5,5,46,211,5,5,94,203,5,5,95,203,5,5,96,203,5,5,97,203,5,5,98,203,5,5,99,203,5,5,47,211,5,5,100,203,5,5,101,203,5,5,102,203,5,5,103,203,5,5,48,211,5,5,104,203,5,5,105,203,5,5,49,211,5,5,106,203,5,5,107,203,5,5,108,203,5,5,50,211,5,5,109,203,5,5,51,211,5,5,52,211,5,5,110,203,5,5,111,203,5,5,112,203,5,5,113,203,5,5,53,211,5,5,54,211,5,5,114,203,5,5,115,203,5,5,55,211,5,5,116,203,5,5,117,203,5,5,118,203,5,5,119,203,5,5,56,211,5,5,120,203,5,5,58,211,5,5,59,211,5,5,60,211,5,5,20,218,5,5,61,211,5,5,21,218,5,5,62,211,5,5,22,218,5,5,63,211,5,5,64,211,5,5,23,218,5,5,24,218,5,5,65,211,5,5,66,211,5,5,67,211,5,5,68,211,5,5,69,211,5,5,70,211,5,5,25,218,5,5,71,211,5,5,26,218,5,5,27,218,5,5,103,195,5,5,72,211,5,5,73,211,5,5,28,218,5,5,74,211,5,5,42,218,5,5,29,218,5,5,75,211,5,5,30,218,5,5,76,211,5,5,77,211,5,5,78,211,5,5,79,211,5,5,80,211,5,5,31,218,5,5,81,211,5,5,32,218,5,5,33,218,5,5,82,211,5,5,83,211,5,5,34,218,5,5,84,211,5,5,35,218,5,5,36,218,5,5,85,211,5,5,86,211,5,5,37,218,5,5,38,218,5,5,39,218,5,5,40,218,5,5,87,211,5,5,41,218,5,5,88,211,5,5,43,218,5,5,222,224,5,5,44,218,5,5,223,224,5,5,45,218,5,5,46,218,5,5,47,218,5,5,48,218,5,5,224,224,5,5,49,218,5,5,50,218,5,5,51,218,5,5,52,218,5,5,225,224,5,5,226,224,5,5,53,218,5,5,227,224,5,5,54,218,5,5,55,218,5,5,56,218,5,5,228,224,5,5,57,218,5,5,58,218,5,5,229,224,5,5,59,218,5,5,60,218,5,5,61,218,5,5,62,218,5,5,230,224,5,5,63,218,5,5,64,218,5,5,231,224,5,5,232,224,5,5,65,218,5,5,66,218,5,5,67,218,5,5,68,218,5,5,69,218,5,5,70,218,5,5,71,218,5,5,72,218,5,5,233,224,5,5,73,218,5,5,234,224,5,5,182,230,5,5,235,224,5,5,236,224,5,5,237,224,5,5,238,224,5,5,239,224,5,5,7,225,5,5,183,230,5,5,240,224,5,5,241,224,5,5,242,224,5,5,243,224,5,5,244,224,5,5,184,230,5,5,185,230,5,5,245,224,5,5,246,224,5,5,247,224,5,5,186,230,5,5,248,224,5,5,187,230,5,5,249,224,5,5,188,230,5,5,250,224,5,5,251,224,5,5,252,224,5,5,253,224,5,5,254,224,5,5,189,230,5,5,255,224,5,5,2,225,5,5,3,225,5,5,98,235,5,5,99,235,5,5,190,230,5,5,100,235,5,5,191,230,5,5,192,230,5,5,193,230,5,5,194,230,5,5,195,230,5,5,196,230,5,5,101,235,5,5,197,230,5,5,198,230,5,5,199,230,5,5,102,235,5,5,200,230,5,5,201,230,5,5,202,230,5,5,203,230,5,5,204,230,5,5,104,235,5,5,105,235,5,5,106,235,5,5,28,239,5,5,107,235,5,5,108,235,5,5,29,239,5,5,109,235,5,5,110,235,5,5,30,239,5,5,111,235,5,5,112,235,5,5,31,239,5,5,32,239,5,5,33,239,5,5,75,242,5,5,77,242,5,5,78,242,5,5,36,239,5,5,192,244,5,5,193,244,5,5,194,244,5,5,124,246,5,5,193,247,5,5,194,247,5,5,125,246,5,5,195,247,5,5,196,247,5,5,105,249,5,5,106,249,5,5,86,250,5,5,50,158,5,5,94,159,5,5,95,159,5,5,96,159,5,5,36,161,5,5,37,161,5,5,38,161,5,5,39,161,5,5,40,161,5,5,12,164,5,5,13,164,5,5,14,164,5,5,84,168,5,5,85,168,5,5,86,168,5,5,87,168,5,5,170,173,5,5,24,180,5,5,163,187,5,5,164,187,5,5,165,187,5,5,166,187,5,5,110,195,5,5,111,195,5,5,126,203,5,5,127,203,5,5,128,203,5,5,129,203,5,5,130,203,5,5,131,203,5,5,125,203,5,5,91,211,5,5,92,211,5,5,93,211,5,5,94,211,5,5,95,211,5,5,96,211,5,5,80,218,5,5,81,218,5,5,82,218,5,5,9,225,5,5,8,225,5,5,206,230,5,5,114,235,5,5,207,230,5,5,128,246,5,5,51,158,5,5,52,158,5,5,53,158,5,5,97,159,5,5,16,164,5,5,17,164,5,5,18,164,5,5,88,168,5,5,89,168,5,5,90,168,5,5,91,168,5,5,171,173,5,5,172,173,5,5,173,173,5,5,25,180,5,5,26,180,5,5,27,180,5,5,28,180,5,5,167,187,5,5,113,195,5,5,114,195,5,5,54,158,5,5,146,157,5,5,147,157,5,5,55,158,5,5,105,159,5,5,98,159,5,5,99,159,5,5,100,159,5,5,101,159,5,5,102,159,5,5,103,159,5,5,104,159,5,5,41,161,5,5,42,161,5,5,43,161,5,5,44,161,5,5,45,161,5,5,46,161,5,5,47,161,5,5,48,161,5,5,62,161,5,5,49,161,5,5,50,161,5,5,51,161,5,5,52,161,5,5,53,161,5,5,54,161,5,5,55,161,5,5,56,161,5,5,57,161,5,5,58,161,5,5,59,161,5,5,60,161,5,5,61,161,5,5,19,164,5,5,20,164,5,5,21,164,5,5,22,164,5,5,23,164,5,5,24,164,5,5,25,164,5,5,26,164,5,5,27,164,5,5,28,164,5,5,29,164,5,5,75,164,5,5,30,164,5,5,31,164,5,5,32,164,5,5,33,164,5,5,34,164,5,5,35,164,5,5,92,168,5,5,36,164,5,5,37,164,5,5,38,164,5,5,39,164,5,5,40,164,5,5,41,164,5,5,42,164,5,5,43,164,5,5,44,164,5,5,45,164,5,5,46,164,5,5,47,164,5,5,48,164,5,5,49,164,5,5,50,164,5,5,51,164,5,5,52,164,5,5,53,164,5,5,54,164,5,5,55,164,5,5,56,164,5,5,57,164,5,5,58,164,5,5,59,164,5,5,60,164,5,5,61,164,5,5,62,164,5,5,63,164,5,5,64,164,5,5,65,164,5,5,66,164,5,5,67,164,5,5,68,164,5,5,69,164,5,5,70,164,5,5,71,164,5,5,72,164,5,5,73,164,5,5,93,168,5,5,94,168,5,5,95,168,5,5,96,168,5,5,97,168,5,5,98,168,5,5,99,168,5,5,100,168,5,5,101,168,5,5,102,168,5,5,103,168,5,5,104,168,5,5,105,168,5,5,106,168,5,5,107,168,5,5,108,168,5,5,109,168,5,5,110,168,5,5,111,168,5,5,112,168,5,5,113,168,5,5,114,168,5,5,115,168,5,5,116,168,5,5,117,168,5,5,118,168,5,5,119,168,5,5,120,168,5,5,121,168,5,5,122,168,5,5,123,168,5,5,124,168,5,5,125,168,5,5,126,168,5,5,127,168,5,5,128,168,5,5,129,168,5,5,130,168,5,5,131,168,5,5,132,168,5,5,133,168,5,5,174,173,5,5,134,168,5,5,135,168,5,5,136,168,5,5,137,168,5,5,138,168,5,5,139,168,5,5,140,168,5,5,141,168,5,5,142,168,5,5,143,168,5,5,144,168,5,5,145,168,5,5,175,173,5,5,146,168,5,5,147,168,5,5,148,168,5,5,149,168,5,5,150,168,5,5,151,168,5,5,152,168,5,5,153,168,5,5,154,168,5,5,155,168,5,5,156,168,5,5,157,168,5,5,158,168,5,5,177,173,5,5,178,173,5,5,179,173,5,5,180,173,5,5,181,173,5,5,182,173,5,5,183,173,5,5,184,173,5,5,29,180,5,5,30,180,5,5,185,173,5,5,186,173,5,5,187,173,5,5,188,173,5,5,189,173,5,5,190,173,5,5,191,173,5,5,192,173,5,5,193,173,5,5,194,173,5,5,195,173,5,5,31,180,5,5,196,173,5,5,197,173,5,5,198,173,5,5,199,173,5,5,200,173,5,5,201,173,5,5,202,173,5,5,203,173,5,5,32,180,5,5,204,173,5,5,205,173,5,5,206,173,5,5,207,173,5,5,208,173,5,5,209,173,5,5,210,173,5,5,33,180,5,5,211,173,5,5,212,173,5,5,213,173,5,5,214,173,5,5,215,173,5,5,216,173,5,5,217,173,5,5,218,173,5,5,34,180,5,5,35,180,5,5,36,180,5,5,219,173,5,5,220,173,5,5,221,173,5,5,222,173,5,5,223,173,5,5,224,173,5,5,225,173,5,5,226,173,5,5,227,173,5,5,228,173,5,5,229,173,5,5,230,173,5,5,38,180,5,5,39,180,5,5,40,180,5,5,41,180,5,5,42,180,5,5,43,180,5,5,44,180,5,5,45,180,5,5,46,180,5,5,47,180,5,5,168,187,5,5,48,180,5,5,49,180,5,5,50,180,5,5,51,180,5,5,52,180,5,5,53,180,5,5,54,180,5,5,55,180,5,5,169,187,5,5,56,180,5,5,57,180,5,5,58,180,5,5,59,180,5,5,60,180,5,5,61,180,5,5,62,180,5,5,63,180,5,5,64,180,5,5,65,180,5,5,66,180,5,5,67,180,5,5,68,180,5,5,69,180,5,5,70,180,5,5,71,180,5,5,72,180,5,5,73,180,5,5,74,180,5,5,75,180,5,5,76,180,5,5,77,180,5,5,78,180,5,5,79,180,5,5,80,180,5,5,81,180,5,5,82,180,5,5,83,180,5,5,84,180,5,5,85,180,5,5,86,180,5,5,87,180,5,5,88,180,5,5,89,180,5,5,90,180,5,5,91,180,5,5,92,180,5,5,93,180,5,5,94,180,5,5,95,180,5,5,96,180,5,5,170,187,5,5,171,187,5,5,172,187,5,5,173,187,5,5,174,187,5,5,175,187,5,5,176,187,5,5,177,187,5,5,178,187,5,5,179,187,5,5,180,187,5,5,181,187,5,5,182,187,5,5,183,187,5,5,184,187,5,5,185,187,5,5,186,187,5,5,187,187,5,5,188,187,5,5,189,187,5,5,190,187,5,5,191,187,5,5,192,187,5,5,193,187,5,5,194,187,5,5,195,187,5,5,196,187,5,5,197,187,5,5,198,187,5,5,199,187,5,5,200,187,5,5,201,187,5,5,202,187,5,5,203,187,5,5,204,187,5,5,205,187,5,5,206,187,5,5,207,187,5,5,208,187,5,5,115,195,5,5,209,187,5,5,210,187,5,5,211,187,5,5,212,187,5,5,213,187,5,5,214,187,5,5,215,187,5,5,116,195,5,5,216,187,5,5,217,187,5,5,218,187,5,5,219,187,5,5,220,187,5,5,221,187,5,5,222,187,5,5,223,187,5,5,224,187,5,5,225,187,5,5,226,187,5,5,227,187,5,5,228,187,5,5,229,187,5,5,117,195,5,5,230,187,5,5,231,187,5,5,232,187,5,5,233,187,5,5,234,187,5,5,235,187,5,5,236,187,5,5,237,187,5,5,238,187,5,5,239,187,5,5,240,187,5,5,241,187,5,5,118,195,5,5,119,195,5,5,9,188,5,5,242,187,5,5,243,187,5,5,244,187,5,5,245,187,5,5,246,187,5,5,247,187,5,5,248,187,5,5,249,187,5,5,250,187,5,5,251,187,5,5,252,187,5,5,120,195,5,5,121,195,5,5,122,195,5,5,123,195,5,5,124,195,5,5,125,195,5,5,126,195,5,5,210,203,5,5,127,195,5,5,128,195,5,5,129,195,5,5,130,195,5,5,131,195,5,5,132,195,5,5,133,195,5,5,134,195,5,5,135,195,5,5,136,195,5,5,137,195,5,5,138,195,5,5,139,195,5,5,140,195,5,5,141,195,5,5,142,195,5,5,143,195,5,5,144,195,5,5,145,195,5,5,146,195,5,5,147,195,5,5,148,195,5,5,149,195,5,5,150,195,5,5,151,195,5,5,152,195,5,5,153,195,5,5,154,195,5,5,155,195,5,5,156,195,5,5,101,180,5,5,157,195,5,5,158,195,5,5,132,203,5,5,159,195,5,5,160,195,5,5,161,195,5,5,133,203,5,5,162,195,5,5,163,195,5,5,164,195,5,5,165,195,5,5,166,195,5,5,134,203,5,5,167,195,5,5,168,195,5,5,169,195,5,5,170,195,5,5,171,195,5,5,172,195,5,5,173,195,5,5,174,195,5,5,175,195,5,5,176,195,5,5,177,195,5,5,178,195,5,5,179,195,5,5,180,195,5,5,181,195,5,5,182,195,5,5,183,195,5,5,184,195,5,5,185,195,5,5,186,195,5,5,135,203,5,5,136,203,5,5,137,203,5,5,138,203,5,5,139,203,5,5,140,203,5,5,141,203,5,5,142,203,5,5,143,203,5,5,144,203,5,5,145,203,5,5,146,203,5,5,147,203,5,5,148,203,5,5,149,203,5,5,150,203,5,5,151,203,5,5,152,203,5,5,153,203,5,5,154,203,5,5,155,203,5,5,156,203,5,5,157,203,5,5,158,203,5,5,159,203,5,5,160,203,5,5,161,203,5,5,162,203,5,5,163,203,5,5,164,203,5,5,165,203,5,5,166,203,5,5,167,203,5,5,168,203,5,5,169,203,5,5,170,203,5,5,171,203,5,5,97,211,5,5,172,203,5,5,173,203,5,5,174,203,5,5,175,203,5,5,176,203,5,5,211,203,5,5,177,203,5,5,178,203,5,5,98,211,5,5,179,203,5,5,180,203,5,5,181,203,5,5,182,203,5,5,183,203,5,5,184,203,5,5,99,211,5,5,185,203,5,5,186,203,5,5,187,203,5,5,100,211,5,5,188,203,5,5,189,203,5,5,190,203,5,5,191,203,5,5,192,203,5,5,193,203,5,5,194,203,5,5,195,203,5,5,196,203,5,5,197,203,5,5,198,203,5,5,101,211,5,5,102,211,5,5,103,211,5,5,104,211,5,5,105,211,5,5,106,211,5,5,107,211,5,5,187,195,5,5,108,211,5,5,109,211,5,5,110,211,5,5,166,211,5,5,111,211,5,5,112,211,5,5,113,211,5,5,114,211,5,5,115,211,5,5,116,211,5,5,117,211,5,5,118,211,5,5,119,211,5,5,120,211,5,5,196,195,5,5,121,211,5,5,122,211,5,5,123,211,5,5,124,211,5,5,125,211,5,5,126,211,5,5,83,218,5,5,84,218,5,5,127,211,5,5,128,211,5,5,129,211,5,5,130,211,5,5,85,218,5,5,86,218,5,5,87,218,5,5,131,211,5,5,132,211,5,5,133,211,5,5,134,211,5,5,135,211,5,5,136,211,5,5,137,211,5,5,138,211,5,5,88,218,5,5,139,211,5,5,140,211,5,5,141,211,5,5,142,211,5,5,143,211,5,5,144,211,5,5,89,218,5,5,145,211,5,5,146,211,5,5,90,218,5,5,147,211,5,5,92,218,5,5,93,218,5,5,148,211,5,5,94,218,5,5,10,225,5,5,95,218,5,5,96,218,5,5,97,218,5,5,98,218,5,5,99,218,5,5,100,218,5,5,101,218,5,5,102,218,5,5,103,218,5,5,104,218,5,5,105,218,5,5,106,218,5,5,107,218,5,5,108,218,5,5,109,218,5,5,110,218,5,5,111,218,5,5,112,218,5,5,113,218,5,5,114,218,5,5,115,218,5,5,116,218,5,5,117,218,5,5,118,218,5,5,119,218,5,5,120,218,5,5,121,218,5,5,122,218,5,5,167,211,5,5,123,218,5,5,124,218,5,5,125,218,5,5,126,218,5,5,127,218,5,5,128,218,5,5,129,218,5,5,130,218,5,5,131,218,5,5,132,218,5,5,133,218,5,5,134,218,5,5,135,218,5,5,136,218,5,5,137,218,5,5,138,218,5,5,139,218,5,5,140,218,5,5,141,218,5,5,142,218,5,5,11,225,5,5,12,225,5,5,13,225,5,5,14,225,5,5,15,225,5,5,16,225,5,5,17,225,5,5,18,225,5,5,19,225,5,5,20,225,5,5,21,225,5,5,143,218,5,5,22,225,5,5,23,225,5,5,24,225,5,5,208,230,5,5,25,225,5,5,26,225,5,5,27,225,5,5,209,230,5,5,28,225,5,5,29,225,5,5,30,225,5,5,31,225,5,5,32,225,5,5,33,225,5,5,34,225,5,5,35,225,5,5,36,225,5,5,210,230,5,5,37,225,5,5,38,225,5,5,39,225,5,5,40,225,5,5,41,225,5,5,42,225,5,5,211,230,5,5,212,230,5,5,213,230,5,5,214,230,5,5,215,230,5,5,216,230,5,5,117,235,5,5,217,230,5,5,115,235,5,5,218,230,5,5,219,230,5,5,116,235,5,5,220,230,5,5,221,230,5,5,222,230,5,5,223,230,5,5,224,230,5,5,225,230,5,5,226,230,5,5,118,235,5,5,52,225,5,5,119,235,5,5,120,235,5,5,121,235,5,5,122,235,5,5,123,235,5,5,124,235,5,5,125,235,5,5,126,235,5,5,127,235,5,5,128,235,5,5,129,235,5,5,130,235,5,5,37,239,5,5,131,235,5,5,132,235,5,5,133,235,5,5,134,235,5,5,135,235,5,5,136,235,5,5,38,239,5,5,39,239,5,5,40,239,5,5,41,239,5,5,42,239,5,5,43,239,5,5,44,239,5,5,45,239,5,5,46,239,5,5,47,239,5,5,195,244,5,5,48,239,5,5,80,242,5,5,81,242,5,5,82,242,5,5,83,242,5,5,84,242,5,5,85,242,5,5,86,242,5,5,87,242,5,5,196,244,5,5,197,244,5,5,198,244,5,5,129,246,5,5,130,246,5,5,131,246,5,5,132,246,5,5,133,246,5,5,197,247,5,5,134,246,5,5,198,247,5,5,135,246,5,5,136,246,5,5,199,247,5,5,200,247,5,5,201,247,5,5,202,247,5,5,195,248,5,5,196,248,5,5,107,249,5,5,57,158,5,5,63,161,5,5,239,173,5,5,197,195,5,5,53,225,5,5,58,158,5,5,59,158,5,5,64,161,5,5,65,161,5,5,76,164,5,5,77,164,5,5,78,164,5,5,79,164,5,5,80,164,5,5,169,168,5,5,170,168,5,5,240,173,5,5,241,173,5,5,242,173,5,5,243,173,5,5,244,173,5,5,245,173,5,5,246,173,5,5,102,180,5,5,103,180,5,5,104,180,5,5,105,180,5,5,106,180,5,5,107,180,5,5,108,180,5,5,11,188,5,5,12,188,5,5,13,188,5,5,14,188,5,5,15,188,5,5,16,188,5,5,17,188,5,5,18,188,5,5,19,188,5,5,20,188,5,5,21,188,5,5,22,188,5,5,23,188,5,5,24,188,5,5,25,188,5,5,198,195,5,5,31,188,5,5,199,195,5,5,200,195,5,5,201,195,5,5,202,195,5,5,203,195,5,5,204,195,5,5,205,195,5,5,206,195,5,5,207,195,5,5,208,195,5,5,209,195,5,5,210,195,5,5,211,195,5,5,213,203,5,5,214,203,5,5,212,203,5,5,215,203,5,5,216,203,5,5,217,203,5,5,168,211,5,5,169,211,5,5,170,211,5,5,54,225,5,5,148,218,5,5,149,218,5,5,150,218,5,5,151,218,5,5,152,218,5,5,153,218,5,5,154,218,5,5,55,225,5,5,56,225,5,5,57,225,5,5,58,225,5,5,230,230,5,5,231,230,5,5,232,230,5,5,233,230,5,5,51,239,5,5,89,242,5,5,90,242,5,5,60,158,5,5,82,164,5,5,172,168,5,5,113,180,5,5,114,180,5,5,216,195,5,5,32,188,5,5,33,188,5,5,34,188,5,5,217,195,5,5,218,195,5,5,218,203,5,5,60,225,5,5,144,235,5,5,200,244,5,5,204,247,5,5,61,158,5,5,83,164,5,5,115,180,5,5,116,180,5,5,35,188,5,5,36,188,5,5,219,195,5,5,223,195,5,5,220,203,5,5,171,211,5,5,172,211,5,5,61,225,5,5,234,230,5,5,62,158,5,5,106,159,5,5,174,168,5,5,175,168,5,5,176,168,5,5,177,168,5,5,250,173,5,5,251,173,5,5,37,188,5,5,38,188,5,5,224,195,5,5,225,195,5,5,221,203,5,5,227,195,5,5,173,211,5,5,156,218,5,5,62,225,5,5,235,230,5,5,236,230,5,5,146,235,5,5,108,249,5,5,63,158,5,5,178,168,5,5,179,168,5,5,180,168,5,5,254,173,5,5,255,173,5,5,2,174,5,5,3,174,5,5,117,180,5,5,118,180,5,5,119,180,5,5,120,180,5,5,121,180,5,5,122,180,5,5,39,188,5,5,40,188,5,5,41,188,5,5,123,180,5,5,42,188,5,5,43,188,5,5,44,188,5,5,45,188,5,5,46,188,5,5,228,195,5,5,229,195,5,5,222,203,5,5,223,203,5,5,224,203,5,5,225,203,5,5,175,211,5,5,176,211,5,5,63,225,5,5,64,225,5,5,237,230,5,5,147,235,5,5,52,239,5,5,53,239,5,5,54,239,5,5,91,242,5,5,64,158,5,5,65,158,5,5,5,174,5,5,48,188,5,5,226,203,5,5,67,158,5,5,107,159,5,5,108,159,5,5,66,161,5,5,67,161,5,5,68,161,5,5,69,161,5,5,70,161,5,5,71,161,5,5,72,161,5,5,73,161,5,5,84,164,5,5,85,164,5,5,86,164,5,5,87,164,5,5,88,164,5,5,89,164,5,5,90,164,5,5,91,164,5,5,92,164,5,5,182,168,5,5,183,168,5,5,184,168,5,5,185,168,5,5,186,168,5,5,187,168,5,5,188,168,5,5,189,168,5,5,190,168,5,5,191,168,5,5,192,168,5,5,193,168,5,5,194,168,5,5,195,168,5,5,196,168,5,5,197,168,5,5,198,168,5,5,199,168,5,5,200,168,5,5,201,168,5,5,202,168,5,5,203,168,5,5,204,168,5,5,205,168,5,5,206,168,5,5,207,168,5,5,208,168,5,5,209,168,5,5,210,168,5,5,211,168,5,5,212,168,5,5,213,168,5,5,214,168,5,5,6,174,5,5,7,174,5,5,8,174,5,5,9,174,5,5,10,174,5,5,11,174,5,5,12,174,5,5,13,174,5,5,14,174,5,5,15,174,5,5,16,174,5,5,17,174,5,5,18,174,5,5,19,174,5,5,20,174,5,5,21,174,5,5,22,174,5,5,23,174,5,5,24,174,5,5,25,174,5,5,26,174,5,5,27,174,5,5,28,174,5,5,29,174,5,5,30,174,5,5,31,174,5,5,32,174,5,5,33,174,5,5,34,174,5,5,35,174,5,5,36,174,5,5,37,174,5,5,38,174,5,5,39,174,5,5,40,174,5,5,41,174,5,5,42,174,5,5,43,174,5,5,125,180,5,5,126,180,5,5,127,180,5,5,128,180,5,5,129,180,5,5,130,180,5,5,131,180,5,5,132,180,5,5,133,180,5,5,134,180,5,5,135,180,5,5,136,180,5,5,137,180,5,5,138,180,5,5,139,180,5,5,140,180,5,5,141,180,5,5,142,180,5,5,143,180,5,5,144,180,5,5,145,180,5,5,146,180,5,5,147,180,5,5,50,188,5,5,51,188,5,5,52,188,5,5,53,188,5,5,54,188,5,5,55,188,5,5,56,188,5,5,57,188,5,5,150,180,5,5,151,180,5,5,58,188,5,5,59,188,5,5,60,188,5,5,61,188,5,5,62,188,5,5,63,188,5,5,64,188,5,5,65,188,5,5,66,188,5,5,231,195,5,5,232,195,5,5,233,195,5,5,234,195,5,5,235,195,5,5,236,195,5,5,237,195,5,5,238,195,5,5,239,195,5,5,240,195,5,5,241,195,5,5,242,195,5,5,243,195,5,5,244,195,5,5,227,203,5,5,245,195,5,5,246,195,5,5,247,195,5,5,248,195,5,5,249,195,5,5,250,195,5,5,251,195,5,5,252,195,5,5,253,195,5,5,254,195,5,5,255,195,5,5,228,203,5,5,229,203,5,5,230,203,5,5,231,203,5,5,232,203,5,5,233,203,5,5,234,203,5,5,235,203,5,5,236,203,5,5,237,203,5,5,238,203,5,5,239,203,5,5,240,203,5,5,2,196,5,5,241,203,5,5,242,203,5,5,243,203,5,5,244,203,5,5,245,203,5,5,246,203,5,5,247,203,5,5,248,203,5,5,177,211,5,5,178,211,5,5,179,211,5,5,180,211,5,5,181,211,5,5,182,211,5,5,183,211,5,5,184,211,5,5,185,211,5,5,186,211,5,5,187,211,5,5,188,211,5,5,189,211,5,5,190,211,5,5,191,211,5,5,158,218,5,5,159,218,5,5,160,218,5,5,161,218,5,5,162,218,5,5,163,218,5,5,164,218,5,5,165,218,5,5,166,218,5,5,167,218,5,5,168,218,5,5,169,218,5,5,170,218,5,5,171,218,5,5,172,218,5,5,65,225,5,5,66,225,5,5,67,225,5,5,68,225,5,5,181,218,5,5,69,225,5,5,70,225,5,5,71,225,5,5,72,225,5,5,73,225,5,5,74,225,5,5,75,225,5,5,76,225,5,5,77,225,5,5,78,225,5,5,79,225,5,5,80,225,5,5,81,225,5,5,82,225,5,5,83,225,5,5,84,225,5,5,85,225,5,5,238,230,5,5,100,225,5,5,239,230,5,5,240,230,5,5,241,230,5,5,242,230,5,5,243,230,5,5,244,230,5,5,245,230,5,5,246,230,5,5,148,235,5,5,252,230,5,5,247,230,5,5,149,235,5,5,150,235,5,5,55,239,5,5,56,239,5,5,57,239,5,5,58,239,5,5,59,239,5,5,60,239,5,5,92,242,5,5,93,242,5,5,94,242,5,5,95,242,5,5,96,242,5,5,97,242,5,5,201,244,5,5,205,247,5,5,206,247,5,5,207,247,5,5,197,248,5,5,198,248,5,5,109,249,5,5,68,158,5,5,110,159,5,5,74,161,5,5,75,161,5,5,93,164,5,5,94,164,5,5,215,168,5,5,48,174,5,5,152,180,5,5,73,188,5,5,153,180,5,5,154,180,5,5,74,188,5,5,67,188,5,5,11,196,5,5,12,196,5,5,165,193,5,5,13,196,5,5,14,196,5,5,13,204,5,5,199,211,5,5,200,211,5,5,101,225,5,5,203,244,5,5,70,158,5,5,77,161,5,5,216,168,5,5,217,168,5,5,218,168,5,5,219,168,5,5,49,174,5,5,50,174,5,5,51,174,5,5,128,176,5,5,155,180,5,5,156,180,5,5,157,180,5,5,158,180,5,5,75,188,5,5,161,180,5,5,76,188,5,5,77,188,5,5,78,188,5,5,79,188,5,5,15,196,5,5,16,196,5,5,17,196,5,5,18,196,5,5,14,204,5,5,221,206,5,5,201,211,5,5,103,225,5,5,104,225,5,5,105,227,5,5,159,235,5,5,100,242,5,5,71,158,5,5,72,158,5,5,111,159,5,5,112,159,5,5,113,159,5,5,114,159,5,5,115,159,5,5,116,159,5,5,117,159,5,5,78,161,5,5,79,161,5,5,80,161,5,5,81,161,5,5,82,161,5,5,83,161,5,5,84,161,5,5,85,161,5,5,86,161,5,5,87,161,5,5,88,161,5,5,89,161,5,5,90,161,5,5,91,161,5,5,92,161,5,5,93,161,5,5,94,161,5,5,95,161,5,5,96,161,5,5,95,164,5,5,96,164,5,5,97,164,5,5,98,164,5,5,99,164,5,5,100,164,5,5,101,164,5,5,102,164,5,5,103,164,5,5,104,164,5,5,105,164,5,5,106,164,5,5,107,164,5,5,108,164,5,5,109,164,5,5,110,164,5,5,111,164,5,5,112,164,5,5,113,164,5,5,114,164,5,5,115,164,5,5,116,164,5,5,117,164,5,5,118,164,5,5,119,164,5,5,120,164,5,5,121,164,5,5,122,164,5,5,123,164,5,5,124,164,5,5,125,164,5,5,126,164,5,5,127,164,5,5,128,164,5,5,129,164,5,5,130,164,5,5,131,164,5,5,132,164,5,5,221,168,5,5,222,168,5,5,223,168,5,5,224,168,5,5,225,168,5,5,226,168,5,5,227,168,5,5,228,168,5,5,229,168,5,5,230,168,5,5,231,168,5,5,232,168,5,5,233,168,5,5,234,168,5,5,235,168,5,5,236,168,5,5,237,168,5,5,238,168,5,5,239,168,5,5,240,168,5,5,241,168,5,5,242,168,5,5,243,168,5,5,133,164,5,5,244,168,5,5,245,168,5,5,246,168,5,5,247,168,5,5,248,168,5,5,249,168,5,5,250,168,5,5,251,168,5,5,252,168,5,5,253,168,5,5,254,168,5,5,255,168,5,5,2,169,5,5,3,169,5,5,4,169,5,5,5,169,5,5,6,169,5,5,7,169,5,5,8,169,5,5,9,169,5,5,10,169,5,5,11,169,5,5,12,169,5,5,13,169,5,5,14,169,5,5,15,169,5,5,16,169,5,5,17,169,5,5,18,169,5,5,19,169,5,5,20,169,5,5,21,169,5,5,22,169,5,5,23,169,5,5,24,169,5,5,25,169,5,5,26,169,5,5,27,169,5,5,28,169,5,5,29,169,5,5,30,169,5,5,31,169,5,5,32,169,5,5,33,169,5,5,52,174,5,5,53,174,5,5,54,174,5,5,55,174,5,5,56,174,5,5,57,174,5,5,58,174,5,5,59,174,5,5,60,174,5,5,61,174,5,5,62,174,5,5,63,174,5,5,64,174,5,5,65,174,5,5,66,174,5,5,162,180,5,5,67,174,5,5,68,174,5,5,69,174,5,5,70,174,5,5,71,174,5,5,72,174,5,5,73,174,5,5,74,174,5,5,75,174,5,5,76,174,5,5,77,174,5,5,78,174,5,5,79,174,5,5,80,174,5,5,81,174,5,5,82,174,5,5,83,174,5,5,84,174,5,5,85,174,5,5,86,174,5,5,87,174,5,5,88,174,5,5,89,174,5,5,90,174,5,5,91,174,5,5,92,174,5,5,93,174,5,5,94,174,5,5,95,174,5,5,96,174,5,5,97,174,5,5,98,174,5,5,99,174,5,5,100,174,5,5,101,174,5,5,163,180,5,5,102,174,5,5,103,174,5,5,104,174,5,5,105,174,5,5,106,174,5,5,107,174,5,5,108,174,5,5,109,174,5,5,110,174,5,5,111,174,5,5,112,174,5,5,113,174,5,5,114,174,5,5,115,174,5,5,116,174,5,5,117,174,5,5,118,174,5,5,119,174,5,5,164,180,5,5,120,174,5,5,121,174,5,5,122,174,5,5,123,174,5,5,52,169,5,5,124,174,5,5,125,174,5,5,126,174,5,5,127,174,5,5,128,174,5,5,129,174,5,5,130,174,5,5,131,174,5,5,132,174,5,5,133,174,5,5,134,174,5,5,135,174,5,5,136,174,5,5,137,174,5,5,138,174,5,5,139,174,5,5,140,174,5,5,141,174,5,5,142,174,5,5,143,174,5,5,144,174,5,5,145,174,5,5,146,174,5,5,147,174,5,5,165,180,5,5,166,180,5,5,167,180,5,5,168,180,5,5,169,180,5,5,170,180,5,5,171,180,5,5,172,180,5,5,173,180,5,5,174,180,5,5,175,180,5,5,176,180,5,5,177,180,5,5,178,180,5,5,179,180,5,5,180,180,5,5,181,180,5,5,182,180,5,5,183,180,5,5,184,180,5,5,185,180,5,5,186,180,5,5,187,180,5,5,188,180,5,5,189,180,5,5,190,180,5,5,191,180,5,5,192,180,5,5,193,180,5,5,194,180,5,5,195,180,5,5,196,180,5,5,197,180,5,5,198,180,5,5,199,180,5,5,200,180,5,5,201,180,5,5,202,180,5,5,203,180,5,5,204,180,5,5,205,180,5,5,206,180,5,5,207,180,5,5,208,180,5,5,209,180,5,5,210,180,5,5,211,180,5,5,212,180,5,5,213,180,5,5,214,180,5,5,215,180,5,5,216,180,5,5,217,180,5,5,218,180,5,5,219,180,5,5,220,180,5,5,221,180,5,5,222,180,5,5,223,180,5,5,224,180,5,5,225,180,5,5,226,180,5,5,227,180,5,5,228,180,5,5,155,174,5,5,229,180,5,5,230,180,5,5,231,180,5,5,232,180,5,5,233,180,5,5,234,180,5,5,235,180,5,5,236,180,5,5,237,180,5,5,238,180,5,5,239,180,5,5,240,180,5,5,241,180,5,5,242,180,5,5,243,180,5,5,244,180,5,5,245,180,5,5,246,180,5,5,247,180,5,5,248,180,5,5,249,180,5,5,250,180,5,5,251,180,5,5,252,180,5,5,82,188,5,5,83,188,5,5,84,188,5,5,85,188,5,5,86,188,5,5,87,188,5,5,88,188,5,5,89,188,5,5,90,188,5,5,91,188,5,5,92,188,5,5,93,188,5,5,94,188,5,5,95,188,5,5,96,188,5,5,97,188,5,5,98,188,5,5,99,188,5,5,100,188,5,5,101,188,5,5,102,188,5,5,103,188,5,5,104,188,5,5,105,188,5,5,106,188,5,5,107,188,5,5,108,188,5,5,109,188,5,5,110,188,5,5,111,188,5,5,112,188,5,5,113,188,5,5,114,188,5,5,115,188,5,5,116,188,5,5,117,188,5,5,118,188,5,5,119,188,5,5,120,188,5,5,121,188,5,5,122,188,5,5,123,188,5,5,124,188,5,5,125,188,5,5,126,188,5,5,127,188,5,5,128,188,5,5,129,188,5,5,130,188,5,5,131,188,5,5,132,188,5,5,133,188,5,5,134,188,5,5,135,188,5,5,136,188,5,5,137,188,5,5,138,188,5,5,139,188,5,5,140,188,5,5,141,188,5,5,142,188,5,5,143,188,5,5,144,188,5,5,145,188,5,5,146,188,5,5,147,188,5,5,148,188,5,5,149,188,5,5,150,188,5,5,151,188,5,5,152,188,5,5,153,188,5,5,154,188,5,5,20,196,5,5,155,188,5,5,156,188,5,5,157,188,5,5,158,188,5,5,159,188,5,5,160,188,5,5,161,188,5,5,162,188,5,5,163,188,5,5,164,188,5,5,165,188,5,5,166,188,5,5,167,188,5,5,168,188,5,5,21,196,5,5,22,196,5,5,23,196,5,5,24,196,5,5,25,196,5,5,26,196,5,5,27,196,5,5,28,196,5,5,29,196,5,5,30,196,5,5,31,196,5,5,32,196,5,5,33,196,5,5,34,196,5,5,35,196,5,5,36,196,5,5,37,196,5,5,38,196,5,5,39,196,5,5,40,196,5,5,41,196,5,5,42,196,5,5,43,196,5,5,44,196,5,5,45,196,5,5,46,196,5,5,47,196,5,5,48,196,5,5,49,196,5,5,50,196,5,5,51,196,5,5,52,196,5,5,53,196,5,5,54,196,5,5,55,196,5,5,56,196,5,5,57,196,5,5,58,196,5,5,59,196,5,5,60,196,5,5,61,196,5,5,62,196,5,5,63,196,5,5,64,196,5,5,65,196,5,5,66,196,5,5,67,196,5,5,68,196,5,5,69,196,5,5,70,196,5,5,71,196,5,5,72,196,5,5,73,196,5,5,74,196,5,5,75,196,5,5,76,196,5,5,77,196,5,5,78,196,5,5,79,196,5,5,80,196,5,5,81,196,5,5,82,196,5,5,83,196,5,5,84,196,5,5,85,196,5,5,86,196,5,5,87,196,5,5,88,196,5,5,89,196,5,5,90,196,5,5,91,196,5,5,92,196,5,5,93,196,5,5,94,196,5,5,95,196,5,5,96,196,5,5,97,196,5,5,98,196,5,5,99,196,5,5,100,196,5,5,101,196,5,5,102,196,5,5,103,196,5,5,104,196,5,5,105,196,5,5,106,196,5,5,107,196,5,5,108,196,5,5,109,196,5,5,110,196,5,5,111,196,5,5,112,196,5,5,113,196,5,5,114,196,5,5,115,196,5,5,116,196,5,5,117,196,5,5,118,196,5,5,119,196,5,5,120,196,5,5,121,196,5,5,122,196,5,5,123,196,5,5,124,196,5,5,125,196,5,5,126,196,5,5,127,196,5,5,128,196,5,5,16,204,5,5,17,204,5,5,18,204,5,5,19,204,5,5,20,204,5,5,21,204,5,5,22,204,5,5,23,204,5,5,24,204,5,5,25,204,5,5,26,204,5,5,27,204,5,5,28,204,5,5,29,204,5,5,30,204,5,5,31,204,5,5,32,204,5,5,33,204,5,5,34,204,5,5,35,204,5,5,36,204,5,5,37,204,5,5,38,204,5,5,39,204,5,5,40,204,5,5,41,204,5,5,42,204,5,5,43,204,5,5,44,204,5,5,45,204,5,5,46,204,5,5,47,204,5,5,48,204,5,5,49,204,5,5,50,204,5,5,51,204,5,5,52,204,5,5,53,204,5,5,54,204,5,5,184,188,5,5,55,204,5,5,56,204,5,5,57,204,5,5,58,204,5,5,59,204,5,5,60,204,5,5,61,204,5,5,62,204,5,5,63,204,5,5,64,204,5,5,65,204,5,5,66,204,5,5,67,204,5,5,68,204,5,5,69,204,5,5,70,204,5,5,71,204,5,5,72,204,5,5,73,204,5,5,74,204,5,5,75,204,5,5,76,204,5,5,77,204,5,5,142,196,5,5,78,204,5,5,143,196,5,5,79,204,5,5,80,204,5,5,81,204,5,5,82,204,5,5,83,204,5,5,84,204,5,5,85,204,5,5,86,204,5,5,87,204,5,5,88,204,5,5,89,204,5,5,90,204,5,5,91,204,5,5,92,204,5,5,93,204,5,5,94,204,5,5,95,204,5,5,96,204,5,5,97,204,5,5,98,204,5,5,99,204,5,5,100,204,5,5,101,204,5,5,102,204,5,5,103,204,5,5,203,211,5,5,104,204,5,5,105,204,5,5,204,211,5,5,205,211,5,5,206,211,5,5,207,211,5,5,208,211,5,5,209,211,5,5,210,211,5,5,106,204,5,5,211,211,5,5,212,211,5,5,213,211,5,5,107,204,5,5,214,211,5,5,215,211,5,5,216,211,5,5,217,211,5,5,218,211,5,5,219,211,5,5,220,211,5,5,221,211,5,5,222,211,5,5,223,211,5,5,224,211,5,5,225,211,5,5,226,211,5,5,227,211,5,5,228,211,5,5,229,211,5,5,230,211,5,5,231,211,5,5,232,211,5,5,233,211,5,5,234,211,5,5,235,211,5,5,236,211,5,5,237,211,5,5,238,211,5,5,239,211,5,5,240,211,5,5,241,211,5,5,242,211,5,5,243,211,5,5,244,211,5,5,245,211,5,5,246,211,5,5,247,211,5,5,248,211,5,5,249,211,5,5,250,211,5,5,251,211,5,5,252,211,5,5,253,211,5,5,254,211,5,5,255,211,5,5,2,212,5,5,3,212,5,5,4,212,5,5,5,212,5,5,6,212,5,5,7,212,5,5,8,212,5,5,9,212,5,5,10,212,5,5,11,212,5,5,12,212,5,5,13,212,5,5,14,212,5,5,15,212,5,5,16,212,5,5,17,212,5,5,18,212,5,5,19,212,5,5,20,212,5,5,21,212,5,5,22,212,5,5,23,212,5,5,24,212,5,5,25,212,5,5,26,212,5,5,27,212,5,5,28,212,5,5,29,212,5,5,30,212,5,5,31,212,5,5,32,212,5,5,187,218,5,5,188,218,5,5,189,218,5,5,190,218,5,5,191,218,5,5,192,218,5,5,193,218,5,5,186,218,5,5,194,218,5,5,195,218,5,5,196,218,5,5,197,218,5,5,198,218,5,5,199,218,5,5,200,218,5,5,201,218,5,5,202,218,5,5,203,218,5,5,204,218,5,5,205,218,5,5,206,218,5,5,207,218,5,5,208,218,5,5,209,218,5,5,210,218,5,5,211,218,5,5,212,218,5,5,213,218,5,5,214,218,5,5,215,218,5,5,216,218,5,5,217,218,5,5,218,218,5,5,42,212,5,5,219,218,5,5,220,218,5,5,221,218,5,5,222,218,5,5,223,218,5,5,224,218,5,5,225,218,5,5,226,218,5,5,227,218,5,5,228,218,5,5,229,218,5,5,230,218,5,5,231,218,5,5,232,218,5,5,233,218,5,5,234,218,5,5,235,218,5,5,236,218,5,5,237,218,5,5,238,218,5,5,239,218,5,5,240,218,5,5,241,218,5,5,242,218,5,5,243,218,5,5,244,218,5,5,245,218,5,5,246,218,5,5,247,218,5,5,248,218,5,5,249,218,5,5,250,218,5,5,251,218,5,5,252,218,5,5,253,218,5,5,254,218,5,5,106,225,5,5,255,218,5,5,2,219,5,5,3,219,5,5,4,219,5,5,5,219,5,5,33,212,5,5,6,219,5,5,7,219,5,5,8,219,5,5,108,225,5,5,109,225,5,5,110,225,5,5,111,225,5,5,112,225,5,5,113,225,5,5,114,225,5,5,115,225,5,5,116,225,5,5,117,225,5,5,118,225,5,5,119,225,5,5,120,225,5,5,121,225,5,5,122,225,5,5,123,225,5,5,124,225,5,5,125,225,5,5,126,225,5,5,127,225,5,5,128,225,5,5,129,225,5,5,130,225,5,5,131,225,5,5,132,225,5,5,133,225,5,5,134,225,5,5,135,225,5,5,136,225,5,5,137,225,5,5,138,225,5,5,139,225,5,5,140,225,5,5,141,225,5,5,142,225,5,5,143,225,5,5,144,225,5,5,145,225,5,5,146,225,5,5,147,225,5,5,148,225,5,5,149,225,5,5,150,225,5,5,151,225,5,5,152,225,5,5,153,225,5,5,154,225,5,5,155,225,5,5,156,225,5,5,157,225,5,5,158,225,5,5,9,219,5,5,159,225,5,5,160,225,5,5,161,225,5,5,162,225,5,5,163,225,5,5,164,225,5,5,165,225,5,5,166,225,5,5,167,225,5,5,168,225,5,5,169,225,5,5,170,225,5,5,171,225,5,5,172,225,5,5,107,225,5,5,173,225,5,5,174,225,5,5,175,225,5,5,176,225,5,5,177,225,5,5,178,225,5,5,179,225,5,5,180,225,5,5,255,230,5,5,2,231,5,5,3,231,5,5,4,231,5,5,5,231,5,5,6,231,5,5,7,231,5,5,8,231,5,5,9,231,5,5,10,231,5,5,11,231,5,5,12,231,5,5,13,231,5,5,14,231,5,5,15,231,5,5,16,231,5,5,17,231,5,5,18,231,5,5,19,231,5,5,20,231,5,5,21,231,5,5,22,231,5,5,23,231,5,5,24,231,5,5,25,231,5,5,26,231,5,5,27,231,5,5,28,231,5,5,29,231,5,5,30,231,5,5,31,231,5,5,32,231,5,5,33,231,5,5,34,231,5,5,35,231,5,5,36,231,5,5,37,231,5,5,38,231,5,5,39,231,5,5,40,231,5,5,41,231,5,5,42,231,5,5,43,231,5,5,44,231,5,5,45,231,5,5,46,231,5,5,160,235,5,5,161,235,5,5,162,235,5,5,163,235,5,5,164,235,5,5,165,235,5,5,166,235,5,5,167,235,5,5,168,235,5,5,169,235,5,5,170,235,5,5,171,235,5,5,172,235,5,5,173,235,5,5,174,235,5,5,175,235,5,5,176,235,5,5,177,235,5,5,178,235,5,5,179,235,5,5,180,235,5,5,181,235,5,5,182,235,5,5,183,235,5,5,184,235,5,5,185,235,5,5,186,235,5,5,187,235,5,5,188,235,5,5,189,235,5,5,190,235,5,5,191,235,5,5,63,239,5,5,64,239,5,5,65,239,5,5,66,239,5,5,67,239,5,5,68,239,5,5,69,239,5,5,70,239,5,5,71,239,5,5,72,239,5,5,73,239,5,5,74,239,5,5,75,239,5,5,76,239,5,5,77,239,5,5,78,239,5,5,57,231,5,5,79,239,5,5,80,239,5,5,81,239,5,5,82,239,5,5,83,239,5,5,194,235,5,5,84,239,5,5,85,239,5,5,86,239,5,5,87,239,5,5,88,239,5,5,97,239,5,5,101,242,5,5,102,242,5,5,103,242,5,5,89,239,5,5,104,242,5,5,195,235,5,5,105,242,5,5,106,242,5,5,107,242,5,5,108,242,5,5,109,242,5,5,110,242,5,5,111,242,5,5,112,242,5,5,113,242,5,5,141,246,5,5,204,244,5,5,121,242,5,5,205,244,5,5,206,244,5,5,207,244,5,5,208,244,5,5,209,244,5,5,210,244,5,5,211,244,5,5,212,244,5,5,213,244,5,5,214,244,5,5,215,244,5,5,216,244,5,5,142,246,5,5,143,246,5,5,144,246,5,5,145,246,5,5,146,246,5,5,147,246,5,5,217,244,5,5,148,246,5,5,149,246,5,5,209,247,5,5,210,247,5,5,211,247,5,5,212,247,5,5,199,248,5,5,200,248,5,5,201,248,5,5,111,249,5,5,112,249,5,5,113,249,5,5,114,249,5,5,115,249,5,5,116,249,5,5,224,249,5,5,117,249,5,5,89,250,5,5,90,250,5,5,74,158,5,5,98,161,5,5,99,161,5,5,53,169,5,5,140,164,5,5,54,169,5,5,55,169,5,5,56,169,5,5,156,174,5,5,157,174,5,5,158,174,5,5,19,181,5,5,20,181,5,5,21,181,5,5,22,181,5,5,23,181,5,5,24,181,5,5,25,181,5,5,185,188,5,5,186,188,5,5,26,181,5,5,187,188,5,5,188,188,5,5,189,188,5,5,190,188,5,5,145,196,5,5,146,196,5,5,147,196,5,5,148,196,5,5,149,196,5,5,150,196,5,5,151,196,5,5,117,204,5,5,118,204,5,5,119,204,5,5,120,204,5,5,121,204,5,5,122,204,5,5,123,204,5,5,124,204,5,5,125,204,5,5,43,212,5,5,44,212,5,5,45,212,5,5,46,212,5,5,47,212,5,5,20,219,5,5,21,219,5,5,22,219,5,5,23,219,5,5,24,219,5,5,25,219,5,5,190,225,5,5,191,225,5,5,192,225,5,5,193,225,5,5,194,225,5,5,195,225,5,5,196,225,5,5,58,231,5,5,59,231,5,5,60,231,5,5,196,235,5,5,197,235,5,5,98,239,5,5,151,246,5,5,75,158,5,5,118,159,5,5,100,161,5,5,141,164,5,5,58,169,5,5,59,169,5,5,60,169,5,5,61,169,5,5,160,174,5,5,161,174,5,5,27,181,5,5,28,181,5,5,152,196,5,5,153,196,5,5,48,212,5,5,128,204,5,5,129,204,5,5,130,204,5,5,49,212,5,5,26,219,5,5,27,219,5,5,197,225,5,5,198,235,5,5,77,158,5,5,119,159,5,5,101,161,5,5,143,164,5,5,62,169,5,5,63,169,5,5,64,169,5,5,65,169,5,5,66,169,5,5,163,174,5,5,164,174,5,5,165,174,5,5,166,174,5,5,167,174,5,5,168,174,5,5,29,181,5,5,30,181,5,5,31,181,5,5,32,181,5,5,192,188,5,5,193,188,5,5,194,188,5,5,195,188,5,5,196,188,5,5,197,188,5,5,198,188,5,5,199,188,5,5,154,196,5,5,155,196,5,5,156,196,5,5,157,196,5,5,158,196,5,5,159,196,5,5,160,196,5,5,131,204,5,5,132,204,5,5,50,212,5,5,51,212,5,5,52,212,5,5,53,212,5,5,54,212,5,5,28,219,5,5,29,219,5,5,30,219,5,5,31,219,5,5,32,219,5,5,198,225,5,5,199,225,5,5,200,225,5,5,201,225,5,5,202,225,5,5,62,231,5,5,63,231,5,5,64,231,5,5,199,235,5,5,99,239,5,5,100,239,5,5,219,244,5,5,78,158,5,5,67,169,5,5,169,174,5,5,170,174,5,5,34,181,5,5,201,188,5,5,202,188,5,5,203,188,5,5,204,188,5,5,165,196,5,5,166,196,5,5,167,196,5,5,134,204,5,5,135,204,5,5,136,204,5,5,137,204,5,5,55,212,5,5,56,212,5,5,35,219,5,5,36,219,5,5,203,225,5,5,204,225,5,5,200,235,5,5,214,247,5,5,79,158,5,5,80,158,5,5,120,159,5,5,102,161,5,5,145,164,5,5,146,164,5,5,68,169,5,5,171,174,5,5,139,204,5,5,81,158,5,5,103,161,5,5,172,174,5,5,173,174,5,5,174,174,5,5,35,181,5,5,65,231,5,5,82,158,5,5,148,164,5,5,149,164,5,5,69,169,5,5,70,169,5,5,176,174,5,5,177,174,5,5,36,181,5,5,37,181,5,5,38,181,5,5,39,181,5,5,40,181,5,5,41,181,5,5,42,181,5,5,43,181,5,5,44,181,5,5,205,188,5,5,206,188,5,5,207,188,5,5,208,188,5,5,168,196,5,5,169,196,5,5,170,196,5,5,171,196,5,5,172,196,5,5,173,196,5,5,174,196,5,5,175,196,5,5,140,204,5,5,141,204,5,5,142,204,5,5,143,204,5,5,144,204,5,5,145,204,5,5,146,204,5,5,58,212,5,5,37,219,5,5,38,219,5,5,39,219,5,5,40,219,5,5,205,225,5,5,206,225,5,5,207,225,5,5,208,225,5,5,209,225,5,5,66,231,5,5,67,231,5,5,68,231,5,5,201,235,5,5,102,239,5,5,152,246,5,5,225,249,5,5,83,158,5,5,121,159,5,5,122,159,5,5,104,161,5,5,71,169,5,5,84,158,5,5,123,159,5,5,105,161,5,5,106,161,5,5,107,161,5,5,150,164,5,5,151,164,5,5,72,169,5,5,73,169,5,5,74,169,5,5,179,174,5,5,180,174,5,5,181,174,5,5,182,174,5,5,183,174,5,5,45,181,5,5,46,181,5,5,47,181,5,5,48,181,5,5,49,181,5,5,50,181,5,5,51,181,5,5,209,188,5,5,210,188,5,5,176,196,5,5,177,196,5,5,178,196,5,5,179,196,5,5,180,196,5,5,147,204,5,5,59,212,5,5,60,212,5,5,85,158,5,5,148,157,5,5,125,159,5,5,126,159,5,5,127,159,5,5,128,159,5,5,124,159,5,5,129,159,5,5,108,161,5,5,65,160,5,5,130,159,5,5,131,159,5,5,132,159,5,5,133,159,5,5,152,164,5,5,134,159,5,5,135,159,5,5,136,159,5,5,109,161,5,5,137,159,5,5,138,159,5,5,139,159,5,5,110,161,5,5,111,161,5,5,112,161,5,5,113,161,5,5,114,161,5,5,115,161,5,5,116,161,5,5,117,161,5,5,118,161,5,5,119,161,5,5,120,161,5,5,121,161,5,5,153,164,5,5,122,161,5,5,123,161,5,5,124,161,5,5,125,161,5,5,126,161,5,5,127,161,5,5,128,161,5,5,154,164,5,5,129,161,5,5,130,161,5,5,131,161,5,5,132,161,5,5,133,161,5,5,134,161,5,5,155,164,5,5,156,164,5,5,157,164,5,5,158,164,5,5,159,164,5,5,160,164,5,5,161,164,5,5,75,169,5,5,162,164,5,5,163,164,5,5,164,164,5,5,165,164,5,5,166,164,5,5,167,164,5,5,168,164,5,5,169,164,5,5,170,164,5,5,171,164,5,5,135,161,5,5,172,164,5,5,173,164,5,5,174,164,5,5,175,164,5,5,176,164,5,5,177,164,5,5,178,164,5,5,179,164,5,5,76,169,5,5,180,164,5,5,181,164,5,5,182,164,5,5,183,164,5,5,184,164,5,5,185,164,5,5,186,164,5,5,187,164,5,5,188,164,5,5,77,169,5,5,189,164,5,5,190,164,5,5,191,164,5,5,192,164,5,5,193,164,5,5,194,164,5,5,195,164,5,5,196,164,5,5,78,169,5,5,197,164,5,5,198,164,5,5,199,164,5,5,184,174,5,5,200,164,5,5,201,164,5,5,202,164,5,5,203,164,5,5,204,164,5,5,79,169,5,5,205,164,5,5,206,164,5,5,207,164,5,5,208,164,5,5,209,164,5,5,210,164,5,5,211,164,5,5,212,164,5,5,213,164,5,5,214,164,5,5,215,164,5,5,216,164,5,5,217,164,5,5,80,169,5,5,81,169,5,5,82,169,5,5,83,169,5,5,185,174,5,5,84,169,5,5,85,169,5,5,86,169,5,5,87,169,5,5,88,169,5,5,89,169,5,5,90,169,5,5,91,169,5,5,92,169,5,5,93,169,5,5,94,169,5,5,95,169,5,5,96,169,5,5,97,169,5,5,98,169,5,5,99,169,5,5,100,169,5,5,101,169,5,5,102,169,5,5,103,169,5,5,104,169,5,5,105,169,5,5,106,169,5,5,107,169,5,5,108,169,5,5,186,174,5,5,109,169,5,5,110,169,5,5,111,169,5,5,112,169,5,5,113,169,5,5,114,169,5,5,115,169,5,5,116,169,5,5,117,169,5,5,118,169,5,5,119,169,5,5,120,169,5,5,121,169,5,5,122,169,5,5,123,169,5,5,124,169,5,5,189,174,5,5,125,169,5,5,126,169,5,5,127,169,5,5,128,169,5,5,129,169,5,5,130,169,5,5,131,169,5,5,132,169,5,5,133,169,5,5,134,169,5,5,135,169,5,5,136,169,5,5,137,169,5,5,138,169,5,5,139,169,5,5,140,169,5,5,141,169,5,5,142,169,5,5,143,169,5,5,144,169,5,5,145,169,5,5,52,181,5,5,146,169,5,5,147,169,5,5,148,169,5,5,187,174,5,5,228,175,5,5,188,174,5,5,149,169,5,5,150,169,5,5,151,169,5,5,152,169,5,5,153,169,5,5,154,169,5,5,155,169,5,5,156,169,5,5,190,174,5,5,191,174,5,5,192,174,5,5,193,174,5,5,194,174,5,5,195,174,5,5,196,174,5,5,197,174,5,5,198,174,5,5,199,174,5,5,200,174,5,5,201,174,5,5,202,174,5,5,203,174,5,5,56,181,5,5,204,174,5,5,205,174,5,5,206,174,5,5,207,174,5,5,208,174,5,5,209,174,5,5,210,174,5,5,211,174,5,5,57,181,5,5,212,174,5,5,213,174,5,5,214,174,5,5,215,174,5,5,216,174,5,5,53,181,5,5,217,174,5,5,218,174,5,5,219,174,5,5,220,174,5,5,221,174,5,5,222,174,5,5,223,174,5,5,224,174,5,5,225,174,5,5,226,174,5,5,227,174,5,5,228,174,5,5,229,174,5,5,230,174,5,5,231,174,5,5,232,174,5,5,233,174,5,5,234,174,5,5,54,181,5,5,165,169,5,5,235,174,5,5,236,174,5,5,237,174,5,5,238,174,5,5,239,174,5,5,240,174,5,5,241,174,5,5,242,174,5,5,243,174,5,5,244,174,5,5,245,174,5,5,246,174,5,5,247,174,5,5,248,174,5,5,249,174,5,5,250,174,5,5,251,174,5,5,252,174,5,5,253,174,5,5,254,174,5,5,255,174,5,5,55,181,5,5,2,175,5,5,3,175,5,5,4,175,5,5,5,175,5,5,6,175,5,5,7,175,5,5,8,175,5,5,9,175,5,5,10,175,5,5,11,175,5,5,12,175,5,5,13,175,5,5,14,175,5,5,15,175,5,5,16,175,5,5,58,181,5,5,59,181,5,5,60,181,5,5,61,181,5,5,62,181,5,5,63,181,5,5,64,181,5,5,65,181,5,5,66,181,5,5,67,181,5,5,68,181,5,5,69,181,5,5,70,181,5,5,71,181,5,5,72,181,5,5,73,181,5,5,74,181,5,5,75,181,5,5,76,181,5,5,77,181,5,5,78,181,5,5,79,181,5,5,80,181,5,5,81,181,5,5,82,181,5,5,83,181,5,5,84,181,5,5,85,181,5,5,86,181,5,5,87,181,5,5,88,181,5,5,89,181,5,5,90,181,5,5,91,181,5,5,92,181,5,5,93,181,5,5,94,181,5,5,95,181,5,5,96,181,5,5,97,181,5,5,98,181,5,5,99,181,5,5,100,181,5,5,101,181,5,5,102,181,5,5,103,181,5,5,104,181,5,5,105,181,5,5,106,181,5,5,107,181,5,5,108,181,5,5,109,181,5,5,110,181,5,5,111,181,5,5,112,181,5,5,113,181,5,5,212,188,5,5,114,181,5,5,115,181,5,5,116,181,5,5,117,181,5,5,118,181,5,5,119,181,5,5,120,181,5,5,121,181,5,5,122,181,5,5,123,181,5,5,214,188,5,5,124,181,5,5,125,181,5,5,126,181,5,5,127,181,5,5,128,181,5,5,129,181,5,5,130,181,5,5,131,181,5,5,132,181,5,5,133,181,5,5,134,181,5,5,135,181,5,5,136,181,5,5,137,181,5,5,138,181,5,5,139,181,5,5,215,188,5,5,216,188,5,5,217,188,5,5,218,188,5,5,219,188,5,5,220,188,5,5,221,188,5,5,222,188,5,5,223,188,5,5,224,188,5,5,225,188,5,5,226,188,5,5,227,188,5,5,228,188,5,5,229,188,5,5,230,188,5,5,231,188,5,5,232,188,5,5,233,188,5,5,234,188,5,5,235,188,5,5,236,188,5,5,237,188,5,5,238,188,5,5,239,188,5,5,240,188,5,5,241,188,5,5,242,188,5,5,243,188,5,5,244,188,5,5,245,188,5,5,246,188,5,5,247,188,5,5,248,188,5,5,249,188,5,5,250,188,5,5,251,188,5,5,252,188,5,5,253,188,5,5,254,188,5,5,255,188,5,5,2,189,5,5,3,189,5,5,4,189,5,5,5,189,5,5,6,189,5,5,7,189,5,5,8,189,5,5,9,189,5,5,10,189,5,5,11,189,5,5,12,189,5,5,13,189,5,5,14,189,5,5,15,189,5,5,16,189,5,5,17,189,5,5,18,189,5,5,19,189,5,5,20,189,5,5,21,189,5,5,22,189,5,5,23,189,5,5,24,189,5,5,25,189,5,5,26,189,5,5,27,189,5,5,28,189,5,5,29,189,5,5,30,189,5,5,31,189,5,5,32,189,5,5,33,189,5,5,34,189,5,5,35,189,5,5,36,189,5,5,37,189,5,5,38,189,5,5,39,189,5,5,40,189,5,5,41,189,5,5,42,189,5,5,181,196,5,5,43,189,5,5,182,196,5,5,44,189,5,5,45,189,5,5,46,189,5,5,47,189,5,5,183,196,5,5,48,189,5,5,49,189,5,5,50,189,5,5,51,189,5,5,52,189,5,5,53,189,5,5,54,189,5,5,55,189,5,5,56,189,5,5,57,189,5,5,58,189,5,5,59,189,5,5,60,189,5,5,61,189,5,5,62,189,5,5,63,189,5,5,64,189,5,5,65,189,5,5,66,189,5,5,67,189,5,5,184,196,5,5,185,196,5,5,68,189,5,5,186,196,5,5,187,196,5,5,188,196,5,5,189,196,5,5,190,196,5,5,191,196,5,5,192,196,5,5,193,196,5,5,194,196,5,5,195,196,5,5,196,196,5,5,197,196,5,5,198,196,5,5,199,196,5,5,200,196,5,5,201,196,5,5,202,196,5,5,203,196,5,5,204,196,5,5,205,196,5,5,206,196,5,5,207,196,5,5,208,196,5,5,209,196,5,5,210,196,5,5,211,196,5,5,212,196,5,5,213,196,5,5,214,196,5,5,215,196,5,5,216,196,5,5,217,196,5,5,218,196,5,5,219,196,5,5,220,196,5,5,221,196,5,5,222,196,5,5,223,196,5,5,224,196,5,5,225,196,5,5,226,196,5,5,227,196,5,5,228,196,5,5,229,196,5,5,230,196,5,5,231,196,5,5,232,196,5,5,233,196,5,5,234,196,5,5,235,196,5,5,236,196,5,5,237,196,5,5,238,196,5,5,239,196,5,5,240,196,5,5,241,196,5,5,242,196,5,5,243,196,5,5,244,196,5,5,245,196,5,5,246,196,5,5,247,196,5,5,248,196,5,5,249,196,5,5,250,196,5,5,251,196,5,5,252,196,5,5,253,196,5,5,254,196,5,5,255,196,5,5,2,197,5,5,3,197,5,5,4,197,5,5,5,197,5,5,6,197,5,5,7,197,5,5,8,197,5,5,9,197,5,5,10,197,5,5,11,197,5,5,12,197,5,5,148,204,5,5,13,197,5,5,14,197,5,5,15,197,5,5,16,197,5,5,17,197,5,5,18,197,5,5,19,197,5,5,69,189,5,5,20,197,5,5,21,197,5,5,22,197,5,5,23,197,5,5,24,197,5,5,25,197,5,5,26,197,5,5,27,197,5,5,28,197,5,5,29,197,5,5,30,197,5,5,31,197,5,5,32,197,5,5,33,197,5,5,34,197,5,5,35,197,5,5,36,197,5,5,37,197,5,5,38,197,5,5,39,197,5,5,40,197,5,5,41,197,5,5,42,197,5,5,43,197,5,5,149,204,5,5,150,204,5,5,151,204,5,5,152,204,5,5,153,204,5,5,154,204,5,5,155,204,5,5,156,204,5,5,157,204,5,5,158,204,5,5,159,204,5,5,160,204,5,5,161,204,5,5,162,204,5,5,163,204,5,5,164,204,5,5,165,204,5,5,166,204,5,5,167,204,5,5,168,204,5,5,169,204,5,5,170,204,5,5,171,204,5,5,172,204,5,5,173,204,5,5,174,204,5,5,175,204,5,5,176,204,5,5,177,204,5,5,178,204,5,5,179,204,5,5,180,204,5,5,181,204,5,5,182,204,5,5,183,204,5,5,184,204,5,5,185,204,5,5,186,204,5,5,187,204,5,5,188,204,5,5,189,204,5,5,190,204,5,5,191,204,5,5,192,204,5,5,193,204,5,5,194,204,5,5,195,204,5,5,196,204,5,5,197,204,5,5,198,204,5,5,199,204,5,5,200,204,5,5,201,204,5,5,202,204,5,5,203,204,5,5,204,204,5,5,205,204,5,5,206,204,5,5,207,204,5,5,208,204,5,5,209,204,5,5,210,204,5,5,44,197,5,5,62,212,5,5,211,204,5,5,61,212,5,5,212,204,5,5,213,204,5,5,214,204,5,5,215,204,5,5,216,204,5,5,217,204,5,5,41,219,5,5,218,204,5,5,219,204,5,5,220,204,5,5,221,204,5,5,248,204,5,5,222,204,5,5,223,204,5,5,224,204,5,5,45,197,5,5,225,204,5,5,226,204,5,5,227,204,5,5,228,204,5,5,229,204,5,5,230,204,5,5,231,204,5,5,232,204,5,5,233,204,5,5,234,204,5,5,235,204,5,5,236,204,5,5,63,212,5,5,64,212,5,5,65,212,5,5,66,212,5,5,67,212,5,5,68,212,5,5,69,212,5,5,70,212,5,5,71,212,5,5,72,212,5,5,73,212,5,5,74,212,5,5,75,212,5,5,76,212,5,5,77,212,5,5,78,212,5,5,79,212,5,5,80,212,5,5,81,212,5,5,82,212,5,5,83,212,5,5,42,219,5,5,84,212,5,5,85,212,5,5,86,212,5,5,87,212,5,5,88,212,5,5,89,212,5,5,90,212,5,5,91,212,5,5,92,212,5,5,93,212,5,5,47,219,5,5,94,212,5,5,95,212,5,5,96,212,5,5,97,212,5,5,43,219,5,5,98,212,5,5,99,212,5,5,237,204,5,5,100,212,5,5,101,212,5,5,102,212,5,5,103,212,5,5,104,212,5,5,105,212,5,5,106,212,5,5,107,212,5,5,108,212,5,5,109,212,5,5,110,212,5,5,111,212,5,5,112,212,5,5,113,212,5,5,114,212,5,5,115,212,5,5,116,212,5,5,117,212,5,5,44,219,5,5,118,212,5,5,119,212,5,5,120,212,5,5,121,212,5,5,122,212,5,5,123,212,5,5,124,212,5,5,125,212,5,5,126,212,5,5,127,212,5,5,128,212,5,5,129,212,5,5,130,212,5,5,131,212,5,5,132,212,5,5,133,212,5,5,134,212,5,5,135,212,5,5,136,212,5,5,137,212,5,5,138,212,5,5,139,212,5,5,48,219,5,5,140,212,5,5,45,219,5,5,141,212,5,5,46,219,5,5,142,212,5,5,143,212,5,5,144,212,5,5,145,212,5,5,146,212,5,5,147,212,5,5,148,212,5,5,149,212,5,5,150,212,5,5,151,212,5,5,152,212,5,5,153,212,5,5,165,212,5,5,49,219,5,5,50,219,5,5,51,219,5,5,52,219,5,5,53,219,5,5,54,219,5,5,55,219,5,5,56,219,5,5,57,219,5,5,58,219,5,5,59,219,5,5,60,219,5,5,61,219,5,5,62,219,5,5,63,219,5,5,210,225,5,5,64,219,5,5,65,219,5,5,66,219,5,5,67,219,5,5,68,219,5,5,69,219,5,5,70,219,5,5,71,219,5,5,72,219,5,5,73,219,5,5,74,219,5,5,75,219,5,5,76,219,5,5,77,219,5,5,78,219,5,5,79,219,5,5,80,219,5,5,81,219,5,5,82,219,5,5,83,219,5,5,166,212,5,5,84,219,5,5,85,219,5,5,86,219,5,5,87,219,5,5,88,219,5,5,89,219,5,5,90,219,5,5,91,219,5,5,92,219,5,5,93,219,5,5,94,219,5,5,95,219,5,5,71,231,5,5,96,219,5,5,97,219,5,5,211,225,5,5,98,219,5,5,99,219,5,5,100,219,5,5,101,219,5,5,102,219,5,5,103,219,5,5,104,219,5,5,105,219,5,5,106,219,5,5,107,219,5,5,108,219,5,5,109,219,5,5,110,219,5,5,111,219,5,5,112,219,5,5,113,219,5,5,114,219,5,5,115,219,5,5,116,219,5,5,117,219,5,5,118,219,5,5,212,225,5,5,119,219,5,5,120,219,5,5,121,219,5,5,122,219,5,5,213,225,5,5,214,225,5,5,215,225,5,5,216,225,5,5,217,225,5,5,218,225,5,5,219,225,5,5,220,225,5,5,221,225,5,5,222,225,5,5,223,225,5,5,69,231,5,5,224,225,5,5,225,225,5,5,226,225,5,5,227,225,5,5,228,225,5,5,229,225,5,5,230,225,5,5,231,225,5,5,232,225,5,5,233,225,5,5,234,225,5,5,235,225,5,5,236,225,5,5,237,225,5,5,238,225,5,5,239,225,5,5,240,225,5,5,241,225,5,5,242,225,5,5,243,225,5,5,244,225,5,5,245,225,5,5,246,225,5,5,247,225,5,5,248,225,5,5,249,225,5,5,250,225,5,5,251,225,5,5,136,219,5,5,252,225,5,5,253,225,5,5,254,225,5,5,255,225,5,5,2,226,5,5,70,231,5,5,3,226,5,5,4,226,5,5,5,226,5,5,123,219,5,5,6,226,5,5,7,226,5,5,8,226,5,5,72,231,5,5,73,231,5,5,9,226,5,5,74,231,5,5,75,231,5,5,76,231,5,5,77,231,5,5,78,231,5,5,79,231,5,5,80,231,5,5,81,231,5,5,82,231,5,5,83,231,5,5,84,231,5,5,85,231,5,5,86,231,5,5,87,231,5,5,88,231,5,5,89,231,5,5,90,231,5,5,91,231,5,5,92,231,5,5,93,231,5,5,94,231,5,5,95,231,5,5,96,231,5,5,97,231,5,5,98,231,5,5,99,231,5,5,100,231,5,5,101,231,5,5,103,239,5,5,102,231,5,5,103,231,5,5,104,231,5,5,202,235,5,5,105,231,5,5,203,235,5,5,204,235,5,5,205,235,5,5,206,235,5,5,207,235,5,5,208,235,5,5,209,235,5,5,210,235,5,5,211,235,5,5,212,235,5,5,213,235,5,5,23,226,5,5,214,235,5,5,215,235,5,5,216,235,5,5,217,235,5,5,218,235,5,5,219,235,5,5,220,235,5,5,221,235,5,5,222,235,5,5,223,235,5,5,224,235,5,5,225,235,5,5,226,235,5,5,227,235,5,5,228,235,5,5,229,235,5,5,104,239,5,5,105,239,5,5,106,239,5,5,107,239,5,5,108,239,5,5,109,239,5,5,110,239,5,5,111,239,5,5,112,239,5,5,113,239,5,5,114,239,5,5,115,239,5,5,116,239,5,5,117,239,5,5,118,239,5,5,119,239,5,5,120,239,5,5,236,235,5,5,121,239,5,5,122,239,5,5,123,239,5,5,122,242,5,5,124,239,5,5,125,239,5,5,126,239,5,5,127,239,5,5,123,242,5,5,124,242,5,5,125,242,5,5,126,242,5,5,127,242,5,5,128,242,5,5,129,242,5,5,130,242,5,5,131,242,5,5,132,242,5,5,133,242,5,5,134,242,5,5,135,242,5,5,136,242,5,5,137,242,5,5,138,242,5,5,139,242,5,5,140,242,5,5,141,242,5,5,146,242,5,5,220,244,5,5,221,244,5,5,222,244,5,5,223,244,5,5,224,244,5,5,225,244,5,5,226,244,5,5,227,244,5,5,228,244,5,5,229,244,5,5,230,244,5,5,226,249,5,5,231,244,5,5,232,244,5,5,153,246,5,5,154,246,5,5,215,247,5,5,155,246,5,5,156,246,5,5,157,246,5,5,158,246,5,5,159,246,5,5,216,247,5,5,217,247,5,5,218,247,5,5,219,247,5,5,202,248,5,5,203,248,5,5,204,248,5,5,205,248,5,5,206,248,5,5,118,249,5,5,119,249,5,5,227,249,5,5,28,250,5,5,228,249,5,5,29,250,5,5,30,250,5,5,153,250,5,5,159,250,5,5,86,158,5,5,87,158,5,5,140,159,5,5,136,161,5,5,137,161,5,5,138,161,5,5,139,161,5,5,140,161,5,5,141,161,5,5,221,164,5,5,222,164,5,5,223,164,5,5,224,164,5,5,225,164,5,5,226,164,5,5,227,164,5,5,228,164,5,5,229,164,5,5,230,164,5,5,231,164,5,5,232,164,5,5,233,164,5,5,167,169,5,5,168,169,5,5,169,169,5,5,170,169,5,5,171,169,5,5,172,169,5,5,166,169,5,5,173,169,5,5,174,169,5,5,175,169,5,5,176,169,5,5,177,169,5,5,178,169,5,5,179,169,5,5,180,169,5,5,181,169,5,5,182,169,5,5,183,169,5,5,184,169,5,5,185,169,5,5,186,169,5,5,187,169,5,5,188,169,5,5,189,169,5,5,190,169,5,5,191,169,5,5,192,169,5,5,193,169,5,5,194,169,5,5,195,169,5,5,23,175,5,5,24,175,5,5,25,175,5,5,26,175,5,5,27,175,5,5,28,175,5,5,29,175,5,5,30,175,5,5,31,175,5,5,32,175,5,5,33,175,5,5,34,175,5,5,35,175,5,5,36,175,5,5,37,175,5,5,38,175,5,5,39,175,5,5,40,175,5,5,41,175,5,5,42,175,5,5,43,175,5,5,44,175,5,5,45,175,5,5,46,175,5,5,47,175,5,5,48,175,5,5,49,175,5,5,50,175,5,5,51,175,5,5,52,175,5,5,53,175,5,5,54,175,5,5,55,175,5,5,56,175,5,5,57,175,5,5,58,175,5,5,59,175,5,5,143,181,5,5,144,181,5,5,145,181,5,5,146,181,5,5,147,181,5,5,148,181,5,5,149,181,5,5,150,181,5,5,151,181,5,5,152,181,5,5,153,181,5,5,154,181,5,5,155,181,5,5,156,181,5,5,157,181,5,5,158,181,5,5,159,181,5,5,160,181,5,5,161,181,5,5,162,181,5,5,163,181,5,5,164,181,5,5,165,181,5,5,166,181,5,5,167,181,5,5,168,181,5,5,169,181,5,5,170,181,5,5,171,181,5,5,172,181,5,5,173,181,5,5,174,181,5,5,175,181,5,5,176,181,5,5,177,181,5,5,178,181,5,5,179,181,5,5,180,181,5,5,181,181,5,5,182,181,5,5,183,181,5,5,184,181,5,5,185,181,5,5,84,189,5,5,85,189,5,5,86,189,5,5,87,189,5,5,88,189,5,5,89,189,5,5,90,189,5,5,91,189,5,5,92,189,5,5,93,189,5,5,94,189,5,5,95,189,5,5,60,197,5,5,96,189,5,5,97,189,5,5,98,189,5,5,99,189,5,5,100,189,5,5,101,189,5,5,102,189,5,5,103,189,5,5,104,189,5,5,105,189,5,5,106,189,5,5,107,189,5,5,108,189,5,5,109,189,5,5,110,189,5,5,111,189,5,5,112,189,5,5,113,189,5,5,114,189,5,5,115,189,5,5,116,189,5,5,117,189,5,5,118,189,5,5,119,189,5,5,128,189,5,5,120,189,5,5,121,189,5,5,122,189,5,5,123,189,5,5,61,197,5,5,62,197,5,5,63,197,5,5,64,197,5,5,65,197,5,5,66,197,5,5,67,197,5,5,68,197,5,5,69,197,5,5,70,197,5,5,71,197,5,5,72,197,5,5,73,197,5,5,74,197,5,5,75,197,5,5,76,197,5,5,77,197,5,5,78,197,5,5,79,197,5,5,80,197,5,5,81,197,5,5,82,197,5,5,83,197,5,5,84,197,5,5,85,197,5,5,86,197,5,5,87,197,5,5,88,197,5,5,89,197,5,5,90,197,5,5,91,197,5,5,92,197,5,5,93,197,5,5,94,197,5,5,95,197,5,5,96,197,5,5,97,197,5,5,98,197,5,5,99,197,5,5,100,197,5,5,249,204,5,5,250,204,5,5,251,204,5,5,252,204,5,5,253,204,5,5,254,204,5,5,255,204,5,5,2,205,5,5,3,205,5,5,4,205,5,5,5,205,5,5,6,205,5,5,7,205,5,5,8,205,5,5,9,205,5,5,10,205,5,5,11,205,5,5,12,205,5,5,13,205,5,5,14,205,5,5,167,212,5,5,15,205,5,5,16,205,5,5,17,205,5,5,18,205,5,5,19,205,5,5,168,212,5,5,20,205,5,5,21,205,5,5,22,205,5,5,23,205,5,5,24,205,5,5,25,205,5,5,26,205,5,5,27,205,5,5,28,205,5,5,29,205,5,5,30,205,5,5,31,205,5,5,32,205,5,5,33,205,5,5,34,205,5,5,35,205,5,5,36,205,5,5,37,205,5,5,101,197,5,5,38,205,5,5,39,205,5,5,40,205,5,5,41,205,5,5,42,205,5,5,43,205,5,5,44,205,5,5,45,205,5,5,46,205,5,5,47,205,5,5,169,212,5,5,48,205,5,5,170,212,5,5,171,212,5,5,172,212,5,5,173,212,5,5,174,212,5,5,175,212,5,5,176,212,5,5,177,212,5,5,178,212,5,5,179,212,5,5,180,212,5,5,181,212,5,5,182,212,5,5,183,212,5,5,184,212,5,5,185,212,5,5,186,212,5,5,187,212,5,5,188,212,5,5,189,212,5,5,190,212,5,5,191,212,5,5,192,212,5,5,193,212,5,5,194,212,5,5,195,212,5,5,196,212,5,5,197,212,5,5,198,212,5,5,199,212,5,5,200,212,5,5,138,219,5,5,139,219,5,5,140,219,5,5,141,219,5,5,142,219,5,5,143,219,5,5,144,219,5,5,145,219,5,5,146,219,5,5,147,219,5,5,148,219,5,5,149,219,5,5,137,219,5,5,150,219,5,5,151,219,5,5,152,219,5,5,153,219,5,5,154,219,5,5,155,219,5,5,156,219,5,5,157,219,5,5,158,219,5,5,159,219,5,5,160,219,5,5,161,219,5,5,162,219,5,5,163,219,5,5,164,219,5,5,24,226,5,5,25,226,5,5,26,226,5,5,27,226,5,5,28,226,5,5,29,226,5,5,30,226,5,5,31,226,5,5,32,226,5,5,33,226,5,5,34,226,5,5,35,226,5,5,36,226,5,5,37,226,5,5,38,226,5,5,39,226,5,5,40,226,5,5,41,226,5,5,42,226,5,5,43,226,5,5,44,226,5,5,45,226,5,5,46,226,5,5,47,226,5,5,48,226,5,5,49,226,5,5,50,226,5,5,51,226,5,5,52,226,5,5,53,226,5,5,54,226,5,5,55,226,5,5,56,226,5,5,57,226,5,5,58,226,5,5,59,226,5,5,60,226,5,5,61,226,5,5,62,226,5,5,63,226,5,5,64,226,5,5,116,231,5,5,117,231,5,5,118,231,5,5,119,231,5,5,120,231,5,5,121,231,5,5,122,231,5,5,123,231,5,5,124,231,5,5,125,231,5,5,126,231,5,5,127,231,5,5,128,231,5,5,129,231,5,5,130,231,5,5,131,231,5,5,132,231,5,5,133,231,5,5,134,231,5,5,135,231,5,5,136,231,5,5,137,231,5,5,138,231,5,5,139,231,5,5,140,231,5,5,237,235,5,5,238,235,5,5,239,235,5,5,240,235,5,5,241,235,5,5,242,235,5,5,243,235,5,5,244,235,5,5,245,235,5,5,246,235,5,5,134,239,5,5,247,235,5,5,135,239,5,5,136,239,5,5,137,239,5,5,138,239,5,5,139,239,5,5,140,239,5,5,141,239,5,5,147,242,5,5,142,239,5,5,143,239,5,5,144,239,5,5,148,242,5,5,149,242,5,5,150,242,5,5,151,242,5,5,152,242,5,5,153,242,5,5,145,239,5,5,154,242,5,5,155,242,5,5,156,242,5,5,235,244,5,5,236,244,5,5,237,244,5,5,163,246,5,5,240,244,5,5,164,246,5,5,165,246,5,5,166,246,5,5,226,247,5,5,227,247,5,5,208,248,5,5,120,249,5,5,121,249,5,5,122,249,5,5,91,250,5,5,121,250,5,5,165,250,5,5,88,158,5,5,90,158,5,5,201,169,5,5,202,169,5,5,63,175,5,5,64,175,5,5,65,175,5,5,189,181,5,5,114,197,5,5,208,212,5,5,176,219,5,5,146,231,5,5,91,158,5,5,142,161,5,5,203,169,5,5,190,181,5,5,59,205,5,5,92,158,5,5,67,175,5,5,129,189,5,5,209,212,5,5,94,158,5,5,204,169,5,5,68,175,5,5,191,181,5,5,60,205,5,5,210,212,5,5,177,219,5,5,147,231,5,5,95,158,5,5,205,169,5,5,69,175,5,5,70,175,5,5,115,197,5,5,116,197,5,5,117,197,5,5,61,205,5,5,62,205,5,5,63,205,5,5,64,205,5,5,65,205,5,5,211,212,5,5,212,212,5,5,178,219,5,5,179,219,5,5,180,219,5,5,149,239,5,5,96,158,5,5,119,197,5,5,99,158,5,5,100,158,5,5,143,161,5,5,144,161,5,5,145,161,5,5,235,164,5,5,236,164,5,5,237,164,5,5,238,164,5,5,239,164,5,5,206,169,5,5,207,169,5,5,208,169,5,5,209,169,5,5,210,169,5,5,211,169,5,5,212,169,5,5,213,169,5,5,71,175,5,5,72,175,5,5,73,175,5,5,74,175,5,5,75,175,5,5,76,175,5,5,77,175,5,5,78,175,5,5,79,175,5,5,194,181,5,5,195,181,5,5,196,181,5,5,197,181,5,5,198,181,5,5,130,189,5,5,131,189,5,5,132,189,5,5,133,189,5,5,134,189,5,5,120,197,5,5,135,189,5,5,121,197,5,5,122,197,5,5,123,197,5,5,124,197,5,5,125,197,5,5,126,197,5,5,127,197,5,5,128,197,5,5,129,197,5,5,130,197,5,5,66,205,5,5,67,205,5,5,68,205,5,5,69,205,5,5,70,205,5,5,71,205,5,5,214,212,5,5,215,212,5,5,216,212,5,5,217,212,5,5,218,212,5,5,219,212,5,5,181,219,5,5,182,219,5,5,183,219,5,5,184,219,5,5,75,226,5,5,76,226,5,5,77,226,5,5,78,226,5,5,148,231,5,5,150,239,5,5,151,239,5,5,152,239,5,5,153,239,5,5,154,239,5,5,155,239,5,5,161,242,5,5,162,242,5,5,167,246,5,5,123,249,5,5,33,250,5,5,101,158,5,5,149,157,5,5,141,159,5,5,142,159,5,5,143,159,5,5,146,161,5,5,147,161,5,5,148,161,5,5,149,161,5,5,150,161,5,5,241,164,5,5,151,161,5,5,152,161,5,5,242,164,5,5,243,164,5,5,244,164,5,5,245,164,5,5,246,164,5,5,247,164,5,5,248,164,5,5,216,169,5,5,249,164,5,5,250,164,5,5,251,164,5,5,252,164,5,5,253,164,5,5,254,164,5,5,255,164,5,5,2,165,5,5,217,169,5,5,80,175,5,5,218,169,5,5,219,169,5,5,220,169,5,5,221,169,5,5,222,169,5,5,223,169,5,5,224,169,5,5,225,169,5,5,226,169,5,5,227,169,5,5,228,169,5,5,229,169,5,5,230,169,5,5,231,169,5,5,232,169,5,5,233,169,5,5,234,169,5,5,235,169,5,5,236,169,5,5,237,169,5,5,81,175,5,5,82,175,5,5,83,175,5,5,84,175,5,5,85,175,5,5,86,175,5,5,87,175,5,5,88,175,5,5,89,175,5,5,90,175,5,5,91,175,5,5,92,175,5,5,93,175,5,5,94,175,5,5,95,175,5,5,96,175,5,5,97,175,5,5,98,175,5,5,99,175,5,5,100,175,5,5,199,181,5,5,200,181,5,5,201,181,5,5,202,181,5,5,203,181,5,5,204,181,5,5,205,181,5,5,206,181,5,5,207,181,5,5,208,181,5,5,209,181,5,5,210,181,5,5,141,189,5,5,211,181,5,5,212,181,5,5,213,181,5,5,214,181,5,5,142,189,5,5,143,189,5,5,133,197,5,5,144,189,5,5,145,189,5,5,146,189,5,5,147,189,5,5,134,197,5,5,135,197,5,5,148,189,5,5,149,189,5,5,150,189,5,5,151,189,5,5,152,189,5,5,136,197,5,5,153,189,5,5,154,189,5,5,155,189,5,5,156,189,5,5,157,189,5,5,158,189,5,5,159,189,5,5,160,189,5,5,161,189,5,5,162,189,5,5,163,189,5,5,164,189,5,5,165,189,5,5,166,189,5,5,167,189,5,5,138,197,5,5,139,197,5,5,140,197,5,5,141,197,5,5,142,197,5,5,143,197,5,5,144,197,5,5,145,197,5,5,168,189,5,5,137,197,5,5,146,197,5,5,147,197,5,5,74,205,5,5,148,197,5,5,149,197,5,5,150,197,5,5,151,197,5,5,152,197,5,5,153,197,5,5,154,197,5,5,155,197,5,5,75,205,5,5,156,197,5,5,157,197,5,5,77,205,5,5,78,205,5,5,79,205,5,5,80,205,5,5,81,205,5,5,82,205,5,5,83,205,5,5,76,205,5,5,84,205,5,5,220,212,5,5,221,212,5,5,85,205,5,5,86,205,5,5,87,205,5,5,88,205,5,5,89,205,5,5,90,205,5,5,187,219,5,5,222,212,5,5,223,212,5,5,186,219,5,5,224,212,5,5,225,212,5,5,226,212,5,5,227,212,5,5,228,212,5,5,229,212,5,5,230,212,5,5,188,219,5,5,189,219,5,5,190,219,5,5,191,219,5,5,192,219,5,5,193,219,5,5,194,219,5,5,195,219,5,5,196,219,5,5,197,219,5,5,198,219,5,5,199,219,5,5,200,219,5,5,79,226,5,5,201,219,5,5,80,226,5,5,81,226,5,5,82,226,5,5,83,226,5,5,84,226,5,5,85,226,5,5,86,226,5,5,87,226,5,5,88,226,5,5,150,231,5,5,151,231,5,5,152,231,5,5,153,231,5,5,154,231,5,5,155,231,5,5,156,231,5,5,252,235,5,5,253,235,5,5,254,235,5,5,156,239,5,5,157,239,5,5,158,239,5,5,164,242,5,5,165,242,5,5,166,242,5,5,241,244,5,5,168,246,5,5,169,246,5,5,232,247,5,5,233,247,5,5,234,247,5,5,144,159,5,5,102,175,5,5,216,181,5,5,169,189,5,5,170,189,5,5,145,159,5,5,146,159,5,5,102,158,5,5,147,159,5,5,148,159,5,5,154,161,5,5,155,161,5,5,156,161,5,5,157,161,5,5,4,165,5,5,5,165,5,5,6,165,5,5,7,165,5,5,8,165,5,5,9,165,5,5,10,165,5,5,11,165,5,5,12,165,5,5,13,165,5,5,240,169,5,5,241,169,5,5,242,169,5,5,243,169,5,5,244,169,5,5,245,169,5,5,246,169,5,5,247,169,5,5,248,169,5,5,249,169,5,5,250,169,5,5,251,169,5,5,252,169,5,5,253,169,5,5,254,169,5,5,255,169,5,5,2,170,5,5,3,170,5,5,4,170,5,5,5,170,5,5,6,170,5,5,7,170,5,5,104,175,5,5,105,175,5,5,106,175,5,5,107,175,5,5,108,175,5,5,109,175,5,5,110,175,5,5,111,175,5,5,217,181,5,5,112,175,5,5,218,181,5,5,113,175,5,5,114,175,5,5,115,175,5,5,116,175,5,5,117,175,5,5,118,175,5,5,119,175,5,5,120,175,5,5,121,175,5,5,122,175,5,5,123,175,5,5,124,175,5,5,125,175,5,5,126,175,5,5,127,175,5,5,128,175,5,5,129,175,5,5,130,175,5,5,131,175,5,5,132,175,5,5,133,175,5,5,220,181,5,5,221,181,5,5,222,181,5,5,223,181,5,5,224,181,5,5,225,181,5,5,226,181,5,5,227,181,5,5,228,181,5,5,229,181,5,5,230,181,5,5,231,181,5,5,232,181,5,5,233,181,5,5,234,181,5,5,235,181,5,5,236,181,5,5,237,181,5,5,238,181,5,5,239,181,5,5,240,181,5,5,241,181,5,5,242,181,5,5,243,181,5,5,244,181,5,5,245,181,5,5,246,181,5,5,247,181,5,5,248,181,5,5,249,181,5,5,250,181,5,5,251,181,5,5,252,181,5,5,171,189,5,5,172,189,5,5,173,189,5,5,174,189,5,5,159,197,5,5,175,189,5,5,9,182,5,5,176,189,5,5,177,189,5,5,178,189,5,5,179,189,5,5,180,189,5,5,181,189,5,5,182,189,5,5,183,189,5,5,184,189,5,5,185,189,5,5,186,189,5,5,187,189,5,5,188,189,5,5,189,189,5,5,190,189,5,5,253,181,5,5,191,189,5,5,192,189,5,5,193,189,5,5,194,189,5,5,195,189,5,5,196,189,5,5,197,189,5,5,198,189,5,5,199,189,5,5,200,189,5,5,160,197,5,5,161,197,5,5,162,197,5,5,163,197,5,5,164,197,5,5,165,197,5,5,166,197,5,5,167,197,5,5,168,197,5,5,169,197,5,5,95,205,5,5,170,197,5,5,171,197,5,5,172,197,5,5,173,197,5,5,174,197,5,5,175,197,5,5,176,197,5,5,177,197,5,5,93,205,5,5,178,197,5,5,179,197,5,5,180,197,5,5,181,197,5,5,182,197,5,5,183,197,5,5,184,197,5,5,185,197,5,5,186,197,5,5,187,197,5,5,188,197,5,5,189,197,5,5,190,197,5,5,191,197,5,5,192,197,5,5,193,197,5,5,194,197,5,5,195,197,5,5,196,197,5,5,197,197,5,5,198,197,5,5,96,205,5,5,97,205,5,5,98,205,5,5,99,205,5,5,100,205,5,5,101,205,5,5,102,205,5,5,103,205,5,5,104,205,5,5,105,205,5,5,106,205,5,5,107,205,5,5,108,205,5,5,109,205,5,5,110,205,5,5,111,205,5,5,112,205,5,5,113,205,5,5,114,205,5,5,115,205,5,5,116,205,5,5,117,205,5,5,118,205,5,5,119,205,5,5,120,205,5,5,121,205,5,5,122,205,5,5,123,205,5,5,124,205,5,5,125,205,5,5,126,205,5,5,127,205,5,5,128,205,5,5,129,205,5,5,130,205,5,5,231,212,5,5,232,212,5,5,233,212,5,5,234,212,5,5,235,212,5,5,236,212,5,5,237,212,5,5,238,212,5,5,239,212,5,5,203,219,5,5,240,212,5,5,241,212,5,5,204,219,5,5,242,212,5,5,243,212,5,5,146,205,5,5,244,212,5,5,245,212,5,5,246,212,5,5,247,212,5,5,248,212,5,5,249,212,5,5,250,212,5,5,251,212,5,5,252,212,5,5,205,219,5,5,206,219,5,5,207,219,5,5,208,219,5,5,209,219,5,5,210,219,5,5,89,226,5,5,211,219,5,5,212,219,5,5,213,219,5,5,214,219,5,5,215,219,5,5,216,219,5,5,217,219,5,5,218,219,5,5,219,219,5,5,220,219,5,5,221,219,5,5,222,219,5,5,223,219,5,5,90,226,5,5,224,219,5,5,91,226,5,5,157,231,5,5,92,226,5,5,93,226,5,5,225,219,5,5,94,226,5,5,95,226,5,5,96,226,5,5,158,231,5,5,97,226,5,5,98,226,5,5,99,226,5,5,100,226,5,5,101,226,5,5,102,226,5,5,103,226,5,5,104,226,5,5,105,226,5,5,106,226,5,5,121,226,5,5,107,226,5,5,108,226,5,5,160,231,5,5,161,231,5,5,255,235,5,5,162,231,5,5,163,231,5,5,164,231,5,5,165,231,5,5,166,231,5,5,167,231,5,5,168,231,5,5,169,231,5,5,170,231,5,5,171,231,5,5,172,231,5,5,173,231,5,5,174,231,5,5,2,236,5,5,3,236,5,5,159,239,5,5,4,236,5,5,5,236,5,5,167,242,5,5,6,236,5,5,7,236,5,5,160,239,5,5,8,236,5,5,9,236,5,5,10,236,5,5,11,236,5,5,12,236,5,5,161,239,5,5,162,239,5,5,163,239,5,5,164,239,5,5,165,239,5,5,166,239,5,5,167,239,5,5,168,239,5,5,169,239,5,5,168,242,5,5,169,242,5,5,170,242,5,5,171,242,5,5,172,242,5,5,173,242,5,5,174,242,5,5,242,244,5,5,243,244,5,5,170,246,5,5,244,244,5,5,171,246,5,5,172,246,5,5,173,246,5,5,235,247,5,5,209,248,5,5,149,159,5,5,13,170,5,5,10,182,5,5,11,182,5,5,209,189,5,5,147,205,5,5,122,226,5,5,178,239,5,5,174,246,5,5,210,248,5,5,150,159,5,5,19,165,5,5,14,170,5,5,15,170,5,5,140,175,5,5,141,175,5,5,142,175,5,5,143,175,5,5,144,175,5,5,145,175,5,5,146,175,5,5,147,175,5,5,148,175,5,5,12,182,5,5,13,182,5,5,14,182,5,5,211,189,5,5,212,189,5,5,213,189,5,5,221,197,5,5,222,197,5,5,223,197,5,5,224,197,5,5,148,205,5,5,149,205,5,5,150,205,5,5,11,213,5,5,151,205,5,5,12,213,5,5,13,213,5,5,14,213,5,5,15,213,5,5,16,213,5,5,243,219,5,5,244,219,5,5,245,219,5,5,124,226,5,5,125,226,5,5,126,226,5,5,127,226,5,5,128,226,5,5,183,231,5,5,184,231,5,5,185,231,5,5,186,231,5,5,22,236,5,5,23,236,5,5,24,236,5,5,179,239,5,5,247,244,5,5,151,159,5,5,16,170,5,5,149,175,5,5,215,189,5,5,216,189,5,5,152,205,5,5,153,205,5,5,152,159,5,5,150,175,5,5,15,182,5,5,217,189,5,5,218,189,5,5,225,197,5,5,226,197,5,5,227,197,5,5,18,213,5,5,153,159,5,5,154,159,5,5,161,161,5,5,20,165,5,5,21,165,5,5,151,175,5,5,152,175,5,5,228,197,5,5,155,159,5,5,156,159,5,5,157,159,5,5,158,159,5,5,159,159,5,5,160,159,5,5,162,161,5,5,22,165,5,5,23,165,5,5,24,165,5,5,25,165,5,5,17,170,5,5,26,165,5,5,18,170,5,5,19,170,5,5,20,170,5,5,21,170,5,5,22,170,5,5,23,170,5,5,24,170,5,5,25,170,5,5,26,170,5,5,153,175,5,5,154,175,5,5,155,175,5,5,156,175,5,5,157,175,5,5,158,175,5,5,159,175,5,5,160,175,5,5,161,175,5,5,162,175,5,5,163,175,5,5,164,175,5,5,165,175,5,5,166,175,5,5,16,182,5,5,17,182,5,5,18,182,5,5,19,182,5,5,20,182,5,5,21,182,5,5,22,182,5,5,23,182,5,5,24,182,5,5,25,182,5,5,26,182,5,5,27,182,5,5,53,182,5,5,219,189,5,5,220,189,5,5,221,189,5,5,222,189,5,5,223,189,5,5,224,189,5,5,225,189,5,5,144,190,5,5,226,189,5,5,230,197,5,5,231,197,5,5,232,197,5,5,233,197,5,5,234,197,5,5,235,197,5,5,227,189,5,5,239,197,5,5,236,197,5,5,237,197,5,5,238,197,5,5,154,205,5,5,155,205,5,5,156,205,5,5,157,205,5,5,158,205,5,5,159,205,5,5,19,213,5,5,20,213,5,5,21,213,5,5,248,219,5,5,249,219,5,5,129,226,5,5,130,226,5,5,131,226,5,5,188,231,5,5,189,231,5,5,25,236,5,5,180,239,5,5,181,239,5,5,178,242,5,5,179,242,5,5,175,246,5,5,161,159,5,5,27,170,5,5,28,182,5,5,240,197,5,5,241,197,5,5,22,213,5,5,23,213,5,5,164,159,5,5,28,165,5,5,29,165,5,5,30,165,5,5,31,165,5,5,32,165,5,5,28,170,5,5,29,170,5,5,30,170,5,5,31,170,5,5,32,170,5,5,33,170,5,5,34,170,5,5,35,170,5,5,36,170,5,5,37,170,5,5,169,175,5,5,170,175,5,5,171,175,5,5,172,175,5,5,173,175,5,5,174,175,5,5,175,175,5,5,176,175,5,5,177,175,5,5,178,175,5,5,179,175,5,5,180,175,5,5,181,175,5,5,182,175,5,5,29,182,5,5,30,182,5,5,31,182,5,5,32,182,5,5,33,182,5,5,228,189,5,5,34,182,5,5,35,182,5,5,36,182,5,5,37,182,5,5,183,175,5,5,38,182,5,5,39,182,5,5,40,182,5,5,41,182,5,5,42,182,5,5,43,182,5,5,44,182,5,5,45,182,5,5,46,182,5,5,47,182,5,5,48,182,5,5,49,182,5,5,50,182,5,5,51,182,5,5,52,182,5,5,229,189,5,5,230,189,5,5,231,189,5,5,232,189,5,5,233,189,5,5,234,189,5,5,235,189,5,5,236,189,5,5,237,189,5,5,238,189,5,5,239,189,5,5,240,189,5,5,241,189,5,5,242,197,5,5,243,197,5,5,244,197,5,5,245,197,5,5,246,197,5,5,247,197,5,5,248,197,5,5,249,197,5,5,250,197,5,5,251,197,5,5,252,197,5,5,253,197,5,5,254,197,5,5,255,197,5,5,2,198,5,5,3,198,5,5,4,198,5,5,5,198,5,5,6,198,5,5,7,198,5,5,8,198,5,5,163,205,5,5,164,205,5,5,165,205,5,5,166,205,5,5,167,205,5,5,168,205,5,5,169,205,5,5,170,205,5,5,171,205,5,5,172,205,5,5,173,205,5,5,174,205,5,5,175,205,5,5,176,205,5,5,177,205,5,5,178,205,5,5,179,205,5,5,180,205,5,5,181,205,5,5,182,205,5,5,183,205,5,5,184,205,5,5,185,205,5,5,186,205,5,5,187,205,5,5,188,205,5,5,189,205,5,5,24,213,5,5,25,213,5,5,26,213,5,5,27,213,5,5,28,213,5,5,29,213,5,5,30,213,5,5,31,213,5,5,192,205,5,5,193,205,5,5,32,213,5,5,33,213,5,5,34,213,5,5,35,213,5,5,36,213,5,5,37,213,5,5,38,213,5,5,39,213,5,5,251,219,5,5,252,219,5,5,253,219,5,5,254,219,5,5,255,219,5,5,2,220,5,5,250,219,5,5,3,220,5,5,4,220,5,5,5,220,5,5,6,220,5,5,7,220,5,5,8,220,5,5,9,220,5,5,40,213,5,5,10,220,5,5,11,220,5,5,12,220,5,5,13,220,5,5,133,226,5,5,134,226,5,5,135,226,5,5,136,226,5,5,137,226,5,5,138,226,5,5,139,226,5,5,140,226,5,5,141,226,5,5,142,226,5,5,143,226,5,5,144,226,5,5,145,226,5,5,146,226,5,5,147,226,5,5,148,226,5,5,149,226,5,5,150,226,5,5,151,226,5,5,152,226,5,5,191,231,5,5,192,231,5,5,193,231,5,5,194,231,5,5,195,231,5,5,196,231,5,5,197,231,5,5,198,231,5,5,199,231,5,5,200,231,5,5,153,226,5,5,201,231,5,5,202,231,5,5,203,231,5,5,204,231,5,5,26,236,5,5,27,236,5,5,28,236,5,5,29,236,5,5,30,236,5,5,31,236,5,5,32,236,5,5,33,236,5,5,34,236,5,5,35,236,5,5,36,236,5,5,37,236,5,5,38,236,5,5,39,236,5,5,40,236,5,5,41,236,5,5,182,239,5,5,183,239,5,5,184,239,5,5,180,242,5,5,185,239,5,5,42,236,5,5,181,242,5,5,182,242,5,5,248,244,5,5,249,244,5,5,250,244,5,5,251,244,5,5,252,244,5,5,176,246,5,5,177,246,5,5,178,246,5,5,237,247,5,5,238,247,5,5,211,248,5,5,212,248,5,5,230,249,5,5,93,250,5,5,138,250,5,5,165,159,5,5,38,170,5,5,185,175,5,5,186,175,5,5,187,175,5,5,12,198,5,5,13,198,5,5,166,159,5,5,163,161,5,5,164,161,5,5,33,165,5,5,34,165,5,5,35,165,5,5,36,165,5,5,39,170,5,5,188,175,5,5,189,175,5,5,190,175,5,5,191,175,5,5,242,189,5,5,54,182,5,5,55,182,5,5,56,182,5,5,57,182,5,5,243,189,5,5,244,189,5,5,245,189,5,5,246,189,5,5,14,198,5,5,15,198,5,5,16,198,5,5,17,198,5,5,18,198,5,5,194,205,5,5,195,205,5,5,196,205,5,5,18,220,5,5,19,220,5,5,20,220,5,5,21,220,5,5,22,220,5,5,155,226,5,5,156,226,5,5,157,226,5,5,207,231,5,5,208,231,5,5,209,231,5,5,210,231,5,5,43,236,5,5,44,236,5,5,45,236,5,5,186,239,5,5,183,242,5,5,184,242,5,5,254,244,5,5,180,246,5,5,167,159,5,5,40,170,5,5,59,182,5,5,60,182,5,5,247,189,5,5,19,198,5,5,20,198,5,5,199,205,5,5,41,213,5,5,42,213,5,5,43,213,5,5,44,213,5,5,26,220,5,5,158,226,5,5,211,231,5,5,47,236,5,5,185,242,5,5,168,159,5,5,37,165,5,5,38,165,5,5,41,170,5,5,192,175,5,5,193,175,5,5,194,175,5,5,195,175,5,5,196,175,5,5,197,175,5,5,62,182,5,5,63,182,5,5,64,182,5,5,65,182,5,5,66,182,5,5,67,182,5,5,68,182,5,5,69,182,5,5,70,182,5,5,248,189,5,5,249,189,5,5,250,189,5,5,251,189,5,5,252,189,5,5,253,189,5,5,254,189,5,5,21,198,5,5,22,198,5,5,255,189,5,5,23,198,5,5,200,205,5,5,201,205,5,5,202,205,5,5,45,213,5,5,46,213,5,5,47,213,5,5,48,213,5,5,27,220,5,5,159,226,5,5,160,226,5,5,161,226,5,5,212,231,5,5,213,231,5,5,214,231,5,5,49,236,5,5,50,236,5,5,187,242,5,5,169,159,5,5,39,165,5,5,42,170,5,5,43,170,5,5,44,170,5,5,45,170,5,5,46,170,5,5,47,170,5,5,198,175,5,5,199,175,5,5,200,175,5,5,201,175,5,5,202,175,5,5,203,175,5,5,204,175,5,5,205,175,5,5,206,175,5,5,207,175,5,5,208,175,5,5,209,175,5,5,210,175,5,5,211,175,5,5,212,175,5,5,213,175,5,5,214,175,5,5,215,175,5,5,216,175,5,5,217,175,5,5,218,175,5,5,219,175,5,5,220,175,5,5,221,175,5,5,73,182,5,5,74,182,5,5,75,182,5,5,76,182,5,5,77,182,5,5,78,182,5,5,79,182,5,5,80,182,5,5,81,182,5,5,82,182,5,5,83,182,5,5,84,182,5,5,85,182,5,5,86,182,5,5,87,182,5,5,88,182,5,5,89,182,5,5,90,182,5,5,91,182,5,5,92,182,5,5,93,182,5,5,94,182,5,5,95,182,5,5,4,190,5,5,5,190,5,5,96,182,5,5,97,182,5,5,98,182,5,5,99,182,5,5,100,182,5,5,101,182,5,5,6,190,5,5,7,190,5,5,8,190,5,5,9,190,5,5,10,190,5,5,11,190,5,5,12,190,5,5,13,190,5,5,14,190,5,5,15,190,5,5,16,190,5,5,17,190,5,5,18,190,5,5,19,190,5,5,20,190,5,5,21,190,5,5,22,190,5,5,23,190,5,5,102,182,5,5,27,190,5,5,24,190,5,5,25,198,5,5,26,198,5,5,27,198,5,5,28,198,5,5,29,198,5,5,30,198,5,5,31,198,5,5,32,198,5,5,33,198,5,5,34,198,5,5,35,198,5,5,36,198,5,5,37,198,5,5,38,198,5,5,39,198,5,5,40,198,5,5,204,205,5,5,205,205,5,5,206,205,5,5,207,205,5,5,208,205,5,5,209,205,5,5,210,205,5,5,211,205,5,5,212,205,5,5,213,205,5,5,214,205,5,5,215,205,5,5,216,205,5,5,217,205,5,5,218,205,5,5,236,205,5,5,219,205,5,5,220,205,5,5,221,205,5,5,222,205,5,5,223,205,5,5,224,205,5,5,225,205,5,5,226,205,5,5,227,205,5,5,228,205,5,5,229,205,5,5,230,205,5,5,49,213,5,5,50,213,5,5,51,213,5,5,52,213,5,5,53,213,5,5,54,213,5,5,55,213,5,5,56,213,5,5,57,213,5,5,58,213,5,5,59,213,5,5,237,205,5,5,60,213,5,5,61,213,5,5,62,213,5,5,63,213,5,5,64,213,5,5,65,213,5,5,66,213,5,5,67,213,5,5,68,213,5,5,69,213,5,5,70,213,5,5,71,213,5,5,72,213,5,5,28,220,5,5,29,220,5,5,30,220,5,5,31,220,5,5,32,220,5,5,33,220,5,5,34,220,5,5,35,220,5,5,36,220,5,5,37,220,5,5,38,220,5,5,39,220,5,5,40,220,5,5,163,226,5,5,164,226,5,5,165,226,5,5,166,226,5,5,167,226,5,5,168,226,5,5,169,226,5,5,170,226,5,5,171,226,5,5,172,226,5,5,173,226,5,5,174,226,5,5,175,226,5,5,176,226,5,5,177,226,5,5,178,226,5,5,216,231,5,5,183,226,5,5,217,231,5,5,218,231,5,5,219,231,5,5,220,231,5,5,221,231,5,5,222,231,5,5,223,231,5,5,224,231,5,5,225,231,5,5,226,231,5,5,227,231,5,5,228,231,5,5,229,231,5,5,230,231,5,5,231,231,5,5,232,231,5,5,233,231,5,5,234,231,5,5,51,236,5,5,52,236,5,5,53,236,5,5,54,236,5,5,55,236,5,5,56,236,5,5,57,236,5,5,58,236,5,5,59,236,5,5,60,236,5,5,61,236,5,5,188,239,5,5,189,239,5,5,190,239,5,5,191,239,5,5,192,239,5,5,193,239,5,5,194,239,5,5,195,239,5,5,188,242,5,5,189,242,5,5,190,242,5,5,191,242,5,5,192,242,5,5,2,245,5,5,3,245,5,5,4,245,5,5,5,245,5,5,239,247,5,5,214,248,5,5,216,248,5,5,215,248,5,5,125,249,5,5,126,249,5,5,231,249,5,5,170,159,5,5,224,175,5,5,105,182,5,5,43,198,5,5,44,198,5,5,238,205,5,5,127,249,5,5,171,159,5,5,40,165,5,5,48,170,5,5,49,170,5,5,225,175,5,5,226,175,5,5,227,175,5,5,106,182,5,5,28,190,5,5,29,190,5,5,45,198,5,5,46,198,5,5,239,205,5,5,238,231,5,5,239,231,5,5,199,239,5,5,193,242,5,5,172,159,5,5,41,165,5,5,42,165,5,5,43,165,5,5,50,170,5,5,51,170,5,5,52,170,5,5,53,170,5,5,54,170,5,5,55,170,5,5,56,170,5,5,57,170,5,5,58,170,5,5,59,170,5,5,60,170,5,5,229,175,5,5,230,175,5,5,231,175,5,5,232,175,5,5,233,175,5,5,234,175,5,5,235,175,5,5,236,175,5,5,237,175,5,5,238,175,5,5,239,175,5,5,240,175,5,5,241,175,5,5,242,175,5,5,243,175,5,5,244,175,5,5,245,175,5,5,246,175,5,5,247,175,5,5,248,175,5,5,249,175,5,5,250,175,5,5,251,175,5,5,252,175,5,5,253,175,5,5,254,175,5,5,255,175,5,5,107,182,5,5,108,182,5,5,109,182,5,5,110,182,5,5,111,182,5,5,112,182,5,5,113,182,5,5,114,182,5,5,115,182,5,5,30,190,5,5,116,182,5,5,117,182,5,5,118,182,5,5,119,182,5,5,120,182,5,5,121,182,5,5,122,182,5,5,123,182,5,5,124,182,5,5,125,182,5,5,126,182,5,5,127,182,5,5,128,182,5,5,129,182,5,5,130,182,5,5,131,182,5,5,132,182,5,5,133,182,5,5,134,182,5,5,135,182,5,5,136,182,5,5,137,182,5,5,138,182,5,5,139,182,5,5,140,182,5,5,141,182,5,5,142,182,5,5,31,190,5,5,32,190,5,5,33,190,5,5,34,190,5,5,35,190,5,5,36,190,5,5,37,190,5,5,38,190,5,5,39,190,5,5,40,190,5,5,41,190,5,5,42,190,5,5,43,190,5,5,44,190,5,5,45,190,5,5,46,190,5,5,47,190,5,5,48,190,5,5,49,190,5,5,50,190,5,5,51,190,5,5,52,190,5,5,53,190,5,5,54,190,5,5,55,190,5,5,56,190,5,5,47,198,5,5,48,198,5,5,49,198,5,5,50,198,5,5,51,198,5,5,52,198,5,5,53,198,5,5,54,198,5,5,55,198,5,5,56,198,5,5,57,198,5,5,58,198,5,5,59,198,5,5,60,198,5,5,61,198,5,5,62,198,5,5,63,198,5,5,64,198,5,5,65,198,5,5,66,198,5,5,67,198,5,5,68,198,5,5,69,198,5,5,70,198,5,5,71,198,5,5,72,198,5,5,73,198,5,5,74,198,5,5,240,205,5,5,241,205,5,5,242,205,5,5,243,205,5,5,244,205,5,5,245,205,5,5,76,213,5,5,246,205,5,5,247,205,5,5,248,205,5,5,249,205,5,5,250,205,5,5,251,205,5,5,252,205,5,5,253,205,5,5,254,205,5,5,255,205,5,5,2,206,5,5,3,206,5,5,4,206,5,5,5,206,5,5,6,206,5,5,7,206,5,5,8,206,5,5,9,206,5,5,10,206,5,5,11,206,5,5,12,206,5,5,13,206,5,5,14,206,5,5,15,206,5,5,16,206,5,5,17,206,5,5,18,206,5,5,19,206,5,5,20,206,5,5,21,206,5,5,77,213,5,5,78,213,5,5,79,213,5,5,80,213,5,5,81,213,5,5,82,213,5,5,83,213,5,5,84,213,5,5,85,213,5,5,86,213,5,5,87,213,5,5,88,213,5,5,89,213,5,5,90,213,5,5,91,213,5,5,92,213,5,5,93,213,5,5,94,213,5,5,95,213,5,5,22,206,5,5,96,213,5,5,97,213,5,5,98,213,5,5,99,213,5,5,100,213,5,5,101,213,5,5,102,213,5,5,103,213,5,5,104,213,5,5,43,220,5,5,44,220,5,5,45,220,5,5,46,220,5,5,47,220,5,5,48,220,5,5,49,220,5,5,105,213,5,5,50,220,5,5,51,220,5,5,52,220,5,5,53,220,5,5,54,220,5,5,55,220,5,5,56,220,5,5,57,220,5,5,58,220,5,5,59,220,5,5,60,220,5,5,61,220,5,5,62,220,5,5,63,220,5,5,64,220,5,5,65,220,5,5,66,220,5,5,67,220,5,5,68,220,5,5,69,220,5,5,184,226,5,5,70,220,5,5,71,220,5,5,72,220,5,5,186,226,5,5,187,226,5,5,185,226,5,5,188,226,5,5,189,226,5,5,190,226,5,5,191,226,5,5,192,226,5,5,193,226,5,5,194,226,5,5,73,220,5,5,195,226,5,5,196,226,5,5,197,226,5,5,198,226,5,5,199,226,5,5,200,226,5,5,201,226,5,5,202,226,5,5,203,226,5,5,204,226,5,5,240,231,5,5,241,231,5,5,242,231,5,5,243,231,5,5,244,231,5,5,245,231,5,5,246,231,5,5,247,231,5,5,248,231,5,5,249,231,5,5,250,231,5,5,251,231,5,5,252,231,5,5,253,231,5,5,254,231,5,5,255,231,5,5,2,232,5,5,3,232,5,5,4,232,5,5,5,232,5,5,6,232,5,5,7,232,5,5,8,232,5,5,63,236,5,5,64,236,5,5,65,236,5,5,66,236,5,5,67,236,5,5,68,236,5,5,69,236,5,5,70,236,5,5,71,236,5,5,72,236,5,5,73,236,5,5,74,236,5,5,75,236,5,5,76,236,5,5,77,236,5,5,78,236,5,5,79,236,5,5,200,239,5,5,201,239,5,5,202,239,5,5,203,239,5,5,204,239,5,5,205,239,5,5,206,239,5,5,207,239,5,5,208,239,5,5,209,239,5,5,210,239,5,5,194,242,5,5,195,242,5,5,196,242,5,5,197,242,5,5,198,242,5,5,199,242,5,5,200,242,5,5,201,242,5,5,202,242,5,5,203,242,5,5,204,242,5,5,6,245,5,5,7,245,5,5,8,245,5,5,9,245,5,5,10,245,5,5,11,245,5,5,12,245,5,5,13,245,5,5,181,246,5,5,240,247,5,5,241,247,5,5,217,248,5,5,128,249,5,5,173,159,5,5,104,158,5,5,166,161,5,5,45,165,5,5,62,170,5,5,63,170,5,5,64,170,5,5,65,170,5,5,66,170,5,5,67,170,5,5,5,176,5,5,6,176,5,5,7,176,5,5,8,176,5,5,9,176,5,5,10,176,5,5,11,176,5,5,12,176,5,5,13,176,5,5,14,176,5,5,15,176,5,5,147,182,5,5,148,182,5,5,149,182,5,5,150,182,5,5,151,182,5,5,152,182,5,5,153,182,5,5,154,182,5,5,155,182,5,5,156,182,5,5,157,182,5,5,158,182,5,5,159,182,5,5,160,182,5,5,161,182,5,5,162,182,5,5,163,182,5,5,164,182,5,5,58,190,5,5,165,182,5,5,59,190,5,5,60,190,5,5,61,190,5,5,76,198,5,5,62,190,5,5,63,190,5,5,64,190,5,5,65,190,5,5,66,190,5,5,67,190,5,5,68,190,5,5,69,190,5,5,70,190,5,5,77,198,5,5,78,198,5,5,79,198,5,5,80,198,5,5,81,198,5,5,82,198,5,5,83,198,5,5,84,198,5,5,85,198,5,5,25,206,5,5,26,206,5,5,27,206,5,5,28,206,5,5,29,206,5,5,30,206,5,5,31,206,5,5,32,206,5,5,33,206,5,5,34,206,5,5,35,206,5,5,86,198,5,5,36,206,5,5,37,206,5,5,107,213,5,5,108,213,5,5,109,213,5,5,110,213,5,5,111,213,5,5,112,213,5,5,113,213,5,5,114,213,5,5,115,213,5,5,116,213,5,5,117,213,5,5,118,213,5,5,119,213,5,5,120,213,5,5,121,213,5,5,122,213,5,5,123,213,5,5,124,213,5,5,125,213,5,5,77,220,5,5,78,220,5,5,79,220,5,5,80,220,5,5,81,220,5,5,82,220,5,5,83,220,5,5,84,220,5,5,85,220,5,5,86,220,5,5,213,226,5,5,214,226,5,5,215,226,5,5,13,232,5,5,14,232,5,5,216,226,5,5,15,232,5,5,16,232,5,5,80,236,5,5,81,236,5,5,82,236,5,5,83,236,5,5,212,239,5,5,213,239,5,5,205,242,5,5,184,246,5,5,185,246,5,5,242,247,5,5,219,248,5,5,220,248,5,5,175,159,5,5,19,176,5,5,20,176,5,5,74,190,5,5,89,198,5,5,39,206,5,5,176,159,5,5,46,165,5,5,47,165,5,5,48,165,5,5,49,165,5,5,50,165,5,5,68,170,5,5,69,170,5,5,70,170,5,5,71,170,5,5,72,170,5,5,73,170,5,5,74,170,5,5,21,176,5,5,22,176,5,5,23,176,5,5,24,176,5,5,25,176,5,5,26,176,5,5,27,176,5,5,28,176,5,5,29,176,5,5,30,176,5,5,31,176,5,5,32,176,5,5,33,176,5,5,170,182,5,5,171,182,5,5,172,182,5,5,173,182,5,5,174,182,5,5,175,182,5,5,176,182,5,5,177,182,5,5,178,182,5,5,179,182,5,5,180,182,5,5,181,182,5,5,182,182,5,5,183,182,5,5,184,182,5,5,185,182,5,5,186,182,5,5,187,182,5,5,188,182,5,5,189,182,5,5,190,182,5,5,191,182,5,5,192,182,5,5,193,182,5,5,194,182,5,5,75,190,5,5,76,190,5,5,77,190,5,5,78,190,5,5,79,190,5,5,80,190,5,5,81,190,5,5,82,190,5,5,83,190,5,5,84,190,5,5,85,190,5,5,86,190,5,5,87,190,5,5,88,190,5,5,90,198,5,5,91,198,5,5,92,198,5,5,93,198,5,5,94,198,5,5,95,198,5,5,96,198,5,5,89,190,5,5,97,198,5,5,98,198,5,5,99,198,5,5,100,198,5,5,101,198,5,5,102,198,5,5,103,198,5,5,104,198,5,5,41,206,5,5,42,206,5,5,43,206,5,5,44,206,5,5,45,206,5,5,46,206,5,5,47,206,5,5,48,206,5,5,49,206,5,5,50,206,5,5,51,206,5,5,52,206,5,5,53,206,5,5,54,206,5,5,55,206,5,5,56,206,5,5,57,206,5,5,58,206,5,5,59,206,5,5,60,206,5,5,61,206,5,5,62,206,5,5,63,206,5,5,126,213,5,5,127,213,5,5,128,213,5,5,129,213,5,5,130,213,5,5,131,213,5,5,132,213,5,5,133,213,5,5,134,213,5,5,135,213,5,5,136,213,5,5,137,213,5,5,138,213,5,5,139,213,5,5,88,220,5,5,142,213,5,5,89,220,5,5,90,220,5,5,91,220,5,5,92,220,5,5,93,220,5,5,94,220,5,5,95,220,5,5,96,220,5,5,97,220,5,5,98,220,5,5,99,220,5,5,100,220,5,5,101,220,5,5,102,220,5,5,218,226,5,5,219,226,5,5,220,226,5,5,221,226,5,5,222,226,5,5,18,232,5,5,140,213,5,5,223,226,5,5,224,226,5,5,225,226,5,5,226,226,5,5,227,226,5,5,228,226,5,5,229,226,5,5,230,226,5,5,234,226,5,5,19,232,5,5,20,232,5,5,21,232,5,5,22,232,5,5,23,232,5,5,24,232,5,5,25,232,5,5,26,232,5,5,27,232,5,5,28,232,5,5,29,232,5,5,85,236,5,5,86,236,5,5,87,236,5,5,88,236,5,5,89,236,5,5,215,239,5,5,216,239,5,5,217,239,5,5,218,239,5,5,219,239,5,5,220,239,5,5,221,239,5,5,222,239,5,5,206,242,5,5,207,242,5,5,208,242,5,5,209,242,5,5,186,246,5,5,187,246,5,5,222,248,5,5,221,248,5,5,177,159,5,5,167,161,5,5,52,165,5,5,53,165,5,5,75,170,5,5,76,170,5,5,77,170,5,5,78,170,5,5,37,176,5,5,38,176,5,5,39,176,5,5,40,176,5,5,41,176,5,5,42,176,5,5,43,176,5,5,44,176,5,5,195,182,5,5,196,182,5,5,197,182,5,5,198,182,5,5,199,182,5,5,200,182,5,5,201,182,5,5,202,182,5,5,203,182,5,5,204,182,5,5,205,182,5,5,94,190,5,5,95,190,5,5,96,190,5,5,97,190,5,5,98,190,5,5,99,190,5,5,100,190,5,5,106,198,5,5,107,198,5,5,108,198,5,5,109,198,5,5,101,190,5,5,110,198,5,5,111,198,5,5,112,198,5,5,67,206,5,5,68,206,5,5,69,206,5,5,70,206,5,5,71,206,5,5,72,206,5,5,73,206,5,5,74,206,5,5,75,206,5,5,76,206,5,5,143,213,5,5,144,213,5,5,145,213,5,5,146,213,5,5,147,213,5,5,148,213,5,5,107,220,5,5,108,220,5,5,109,220,5,5,110,220,5,5,111,220,5,5,112,220,5,5,113,220,5,5,235,226,5,5,236,226,5,5,237,226,5,5,238,226,5,5,239,226,5,5,240,226,5,5,241,226,5,5,242,226,5,5,243,226,5,5,31,232,5,5,32,232,5,5,33,232,5,5,34,232,5,5,35,232,5,5,18,245,5,5,92,236,5,5,93,236,5,5,225,239,5,5,210,242,5,5,19,245,5,5,20,245,5,5,188,246,5,5,178,159,5,5,54,165,5,5,55,165,5,5,80,170,5,5,81,170,5,5,47,176,5,5,48,176,5,5,49,176,5,5,50,176,5,5,51,176,5,5,52,176,5,5,53,176,5,5,54,176,5,5,207,182,5,5,208,182,5,5,209,182,5,5,210,182,5,5,211,182,5,5,212,182,5,5,213,182,5,5,64,193,5,5,65,193,5,5,102,190,5,5,113,198,5,5,114,198,5,5,115,198,5,5,116,198,5,5,117,198,5,5,118,198,5,5,78,206,5,5,79,206,5,5,80,206,5,5,81,206,5,5,150,213,5,5,151,213,5,5,155,213,5,5,152,213,5,5,153,213,5,5,245,226,5,5,37,232,5,5,38,232,5,5,39,232,5,5,94,236,5,5,211,242,5,5,212,242,5,5,189,246,5,5,168,161,5,5,83,170,5,5,84,170,5,5,55,176,5,5,56,176,5,5,57,176,5,5,58,176,5,5,59,176,5,5,60,176,5,5,61,176,5,5,62,176,5,5,234,182,5,5,215,182,5,5,216,182,5,5,217,182,5,5,218,182,5,5,219,182,5,5,220,182,5,5,221,182,5,5,222,182,5,5,223,182,5,5,224,182,5,5,225,182,5,5,226,182,5,5,227,182,5,5,228,182,5,5,229,182,5,5,230,182,5,5,231,182,5,5,103,190,5,5,104,190,5,5,105,190,5,5,106,190,5,5,107,190,5,5,108,190,5,5,109,190,5,5,110,190,5,5,111,190,5,5,112,190,5,5,113,190,5,5,114,190,5,5,115,190,5,5,116,190,5,5,117,190,5,5,118,190,5,5,119,190,5,5,120,190,5,5,121,190,5,5,122,190,5,5,123,190,5,5,124,190,5,5,125,190,5,5,126,190,5,5,127,190,5,5,128,190,5,5,129,190,5,5,130,190,5,5,131,190,5,5,132,190,5,5,133,190,5,5,134,190,5,5,135,190,5,5,136,190,5,5,137,190,5,5,138,190,5,5,139,190,5,5,140,190,5,5,141,190,5,5,142,190,5,5,143,190,5,5,119,198,5,5,120,198,5,5,121,198,5,5,122,198,5,5,123,198,5,5,124,198,5,5,125,198,5,5,126,198,5,5,127,198,5,5,128,198,5,5,129,198,5,5,130,198,5,5,131,198,5,5,132,198,5,5,133,198,5,5,134,198,5,5,135,198,5,5,136,198,5,5,137,198,5,5,138,198,5,5,139,198,5,5,140,198,5,5,141,198,5,5,142,198,5,5,143,198,5,5,144,198,5,5,145,198,5,5,146,198,5,5,147,198,5,5,148,198,5,5,149,198,5,5,84,206,5,5,85,206,5,5,86,206,5,5,87,206,5,5,88,206,5,5,89,206,5,5,90,206,5,5,91,206,5,5,92,206,5,5,93,206,5,5,94,206,5,5,95,206,5,5,96,206,5,5,97,206,5,5,153,198,5,5,98,206,5,5,99,206,5,5,100,206,5,5,101,206,5,5,102,206,5,5,103,206,5,5,104,206,5,5,105,206,5,5,156,213,5,5,106,206,5,5,107,206,5,5,108,206,5,5,109,206,5,5,110,206,5,5,111,206,5,5,112,206,5,5,113,206,5,5,114,206,5,5,115,206,5,5,116,206,5,5,157,213,5,5,158,213,5,5,159,213,5,5,160,213,5,5,161,213,5,5,162,213,5,5,163,213,5,5,164,213,5,5,165,213,5,5,166,213,5,5,167,213,5,5,168,213,5,5,169,213,5,5,170,213,5,5,171,213,5,5,172,213,5,5,173,213,5,5,174,213,5,5,175,213,5,5,176,213,5,5,177,213,5,5,178,213,5,5,179,213,5,5,180,213,5,5,181,213,5,5,182,213,5,5,183,213,5,5,184,213,5,5,185,213,5,5,186,213,5,5,187,213,5,5,188,213,5,5,189,213,5,5,190,213,5,5,191,213,5,5,192,213,5,5,193,213,5,5,194,213,5,5,195,213,5,5,196,213,5,5,197,213,5,5,198,213,5,5,199,213,5,5,114,220,5,5,115,220,5,5,116,220,5,5,117,220,5,5,118,220,5,5,119,220,5,5,120,220,5,5,121,220,5,5,122,220,5,5,123,220,5,5,124,220,5,5,125,220,5,5,216,213,5,5,126,220,5,5,127,220,5,5,128,220,5,5,129,220,5,5,130,220,5,5,131,220,5,5,132,220,5,5,117,206,5,5,133,220,5,5,134,220,5,5,135,220,5,5,136,220,5,5,137,220,5,5,138,220,5,5,139,220,5,5,140,220,5,5,247,226,5,5,141,220,5,5,142,220,5,5,143,220,5,5,144,220,5,5,145,220,5,5,146,220,5,5,147,220,5,5,148,220,5,5,149,220,5,5,150,220,5,5,248,226,5,5,249,226,5,5,250,226,5,5,251,226,5,5,252,226,5,5,253,226,5,5,254,226,5,5,255,226,5,5,2,227,5,5,3,227,5,5,4,227,5,5,5,227,5,5,6,227,5,5,7,227,5,5,8,227,5,5,9,227,5,5,10,227,5,5,11,227,5,5,12,227,5,5,13,227,5,5,14,227,5,5,15,227,5,5,16,227,5,5,17,227,5,5,18,227,5,5,19,227,5,5,20,227,5,5,21,227,5,5,42,232,5,5,43,232,5,5,44,232,5,5,45,232,5,5,46,232,5,5,47,232,5,5,48,232,5,5,49,232,5,5,50,232,5,5,33,227,5,5,51,232,5,5,52,232,5,5,53,232,5,5,54,232,5,5,55,232,5,5,56,232,5,5,57,232,5,5,58,232,5,5,59,232,5,5,60,232,5,5,61,232,5,5,62,232,5,5,63,232,5,5,64,232,5,5,65,232,5,5,66,232,5,5,67,232,5,5,68,232,5,5,69,232,5,5,70,232,5,5,71,232,5,5,72,232,5,5,73,232,5,5,22,227,5,5,74,232,5,5,75,232,5,5,76,232,5,5,41,232,5,5,77,232,5,5,78,232,5,5,89,232,5,5,95,236,5,5,96,236,5,5,97,236,5,5,98,236,5,5,99,236,5,5,100,236,5,5,101,236,5,5,102,236,5,5,103,236,5,5,104,236,5,5,105,236,5,5,106,236,5,5,107,236,5,5,108,236,5,5,109,236,5,5,110,236,5,5,111,236,5,5,112,236,5,5,113,236,5,5,226,239,5,5,114,236,5,5,115,236,5,5,116,236,5,5,117,236,5,5,118,236,5,5,119,236,5,5,227,239,5,5,228,239,5,5,229,239,5,5,230,239,5,5,231,239,5,5,232,239,5,5,233,239,5,5,234,239,5,5,235,239,5,5,236,239,5,5,237,239,5,5,238,239,5,5,239,239,5,5,240,239,5,5,241,239,5,5,242,239,5,5,213,242,5,5,214,242,5,5,215,242,5,5,216,242,5,5,217,242,5,5,218,242,5,5,219,242,5,5,220,242,5,5,221,242,5,5,222,242,5,5,223,242,5,5,224,242,5,5,225,242,5,5,22,245,5,5,23,245,5,5,24,245,5,5,25,245,5,5,26,245,5,5,226,242,5,5,21,245,5,5,190,246,5,5,191,246,5,5,192,246,5,5,193,246,5,5,194,246,5,5,195,246,5,5,196,246,5,5,243,247,5,5,197,246,5,5,198,246,5,5,199,246,5,5,244,247,5,5,245,247,5,5,246,247,5,5,247,247,5,5,248,247,5,5,249,247,5,5,250,247,5,5,129,249,5,5,223,248,5,5,130,249,5,5,131,249,5,5,132,249,5,5,133,249,5,5,232,249,5,5,233,249,5,5,140,250,5,5,160,250,5,5,169,161,5,5,85,170,5,5,86,170,5,5,87,170,5,5,65,176,5,5,66,176,5,5,67,176,5,5,68,176,5,5,69,176,5,5,70,176,5,5,71,176,5,5,72,176,5,5,73,176,5,5,74,176,5,5,75,176,5,5,76,176,5,5,235,182,5,5,236,182,5,5,237,182,5,5,238,182,5,5,239,182,5,5,240,182,5,5,241,182,5,5,242,182,5,5,243,182,5,5,244,182,5,5,245,182,5,5,246,182,5,5,247,182,5,5,248,182,5,5,249,182,5,5,145,190,5,5,146,190,5,5,147,190,5,5,148,190,5,5,149,190,5,5,150,190,5,5,151,190,5,5,152,190,5,5,153,190,5,5,154,190,5,5,155,190,5,5,156,190,5,5,154,198,5,5,155,198,5,5,156,198,5,5,157,198,5,5,158,198,5,5,157,190,5,5,159,198,5,5,160,198,5,5,161,198,5,5,162,198,5,5,163,198,5,5,164,198,5,5,165,198,5,5,166,198,5,5,167,198,5,5,168,198,5,5,128,206,5,5,129,206,5,5,130,206,5,5,131,206,5,5,132,206,5,5,133,206,5,5,134,206,5,5,135,206,5,5,217,213,5,5,218,213,5,5,219,213,5,5,220,213,5,5,221,213,5,5,222,213,5,5,223,213,5,5,224,213,5,5,225,213,5,5,226,213,5,5,136,206,5,5,227,213,5,5,170,220,5,5,171,220,5,5,172,220,5,5,173,220,5,5,174,220,5,5,175,220,5,5,176,220,5,5,177,220,5,5,178,220,5,5,179,220,5,5,180,220,5,5,181,220,5,5,182,220,5,5,34,227,5,5,35,227,5,5,36,227,5,5,37,227,5,5,38,227,5,5,39,227,5,5,40,227,5,5,41,227,5,5,42,227,5,5,43,227,5,5,90,232,5,5,91,232,5,5,92,232,5,5,93,232,5,5,94,232,5,5,95,232,5,5,96,232,5,5,97,232,5,5,98,232,5,5,99,232,5,5,125,236,5,5,126,236,5,5,127,236,5,5,128,236,5,5,129,236,5,5,100,232,5,5,247,239,5,5,248,239,5,5,249,239,5,5,250,239,5,5,251,239,5,5,227,242,5,5,228,242,5,5,229,242,5,5,201,246,5,5,29,245,5,5,235,249,5,5,202,246,5,5,252,247,5,5,134,249,5,5,34,250,5,5,170,161,5,5,171,161,5,5,56,165,5,5,57,165,5,5,88,170,5,5,89,170,5,5,90,170,5,5,91,170,5,5,78,176,5,5,79,176,5,5,80,176,5,5,81,176,5,5,82,176,5,5,83,176,5,5,84,176,5,5,85,176,5,5,86,176,5,5,87,176,5,5,250,182,5,5,251,182,5,5,252,182,5,5,253,182,5,5,254,182,5,5,255,182,5,5,2,183,5,5,3,183,5,5,4,183,5,5,5,183,5,5,6,183,5,5,7,183,5,5,8,183,5,5,9,183,5,5,10,183,5,5,11,183,5,5,12,183,5,5,13,183,5,5,14,183,5,5,15,183,5,5,16,183,5,5,17,183,5,5,18,183,5,5,19,183,5,5,20,183,5,5,21,183,5,5,22,183,5,5,23,183,5,5,24,183,5,5,25,183,5,5,159,190,5,5,160,190,5,5,170,198,5,5,171,198,5,5,161,190,5,5,162,190,5,5,163,190,5,5,164,190,5,5,165,190,5,5,166,190,5,5,167,190,5,5,168,190,5,5,169,190,5,5,170,190,5,5,171,190,5,5,172,190,5,5,173,190,5,5,174,190,5,5,175,190,5,5,176,190,5,5,177,190,5,5,178,190,5,5,179,190,5,5,180,190,5,5,181,190,5,5,182,190,5,5,183,190,5,5,184,190,5,5,185,190,5,5,186,190,5,5,187,190,5,5,188,190,5,5,189,190,5,5,190,190,5,5,191,190,5,5,192,190,5,5,193,190,5,5,172,198,5,5,173,198,5,5,174,198,5,5,175,198,5,5,176,198,5,5,177,198,5,5,178,198,5,5,179,198,5,5,180,198,5,5,181,198,5,5,182,198,5,5,183,198,5,5,184,198,5,5,185,198,5,5,141,206,5,5,186,198,5,5,187,198,5,5,188,198,5,5,189,198,5,5,190,198,5,5,191,198,5,5,192,198,5,5,193,198,5,5,194,198,5,5,195,198,5,5,196,198,5,5,197,198,5,5,198,198,5,5,199,198,5,5,200,198,5,5,201,198,5,5,202,198,5,5,203,198,5,5,204,198,5,5,205,198,5,5,206,198,5,5,207,198,5,5,208,198,5,5,209,198,5,5,210,198,5,5,211,198,5,5,212,198,5,5,213,198,5,5,142,206,5,5,143,206,5,5,144,206,5,5,145,206,5,5,146,206,5,5,147,206,5,5,214,198,5,5,148,206,5,5,149,206,5,5,150,206,5,5,151,206,5,5,152,206,5,5,153,206,5,5,154,206,5,5,155,206,5,5,156,206,5,5,157,206,5,5,158,206,5,5,159,206,5,5,160,206,5,5,161,206,5,5,162,206,5,5,163,206,5,5,164,206,5,5,165,206,5,5,166,206,5,5,167,206,5,5,168,206,5,5,169,206,5,5,170,206,5,5,230,213,5,5,171,206,5,5,172,206,5,5,173,206,5,5,174,206,5,5,175,206,5,5,232,213,5,5,233,213,5,5,234,213,5,5,235,213,5,5,236,213,5,5,237,213,5,5,238,213,5,5,239,213,5,5,240,213,5,5,241,213,5,5,242,213,5,5,243,213,5,5,244,213,5,5,245,213,5,5,246,213,5,5,247,213,5,5,248,213,5,5,249,213,5,5,250,213,5,5,251,213,5,5,252,213,5,5,253,213,5,5,254,213,5,5,255,213,5,5,2,214,5,5,3,214,5,5,4,214,5,5,5,214,5,5,6,214,5,5,7,214,5,5,8,214,5,5,9,214,5,5,10,214,5,5,11,214,5,5,12,214,5,5,13,214,5,5,14,214,5,5,15,214,5,5,16,214,5,5,17,214,5,5,18,214,5,5,19,214,5,5,20,214,5,5,21,214,5,5,22,214,5,5,23,214,5,5,24,214,5,5,25,214,5,5,26,214,5,5,27,214,5,5,28,214,5,5,29,214,5,5,231,213,5,5,30,214,5,5,31,214,5,5,186,220,5,5,32,214,5,5,33,214,5,5,187,220,5,5,188,220,5,5,189,220,5,5,190,220,5,5,191,220,5,5,192,220,5,5,193,220,5,5,194,220,5,5,195,220,5,5,196,220,5,5,197,220,5,5,198,220,5,5,199,220,5,5,200,220,5,5,201,220,5,5,202,220,5,5,203,220,5,5,204,220,5,5,205,220,5,5,206,220,5,5,207,220,5,5,208,220,5,5,209,220,5,5,210,220,5,5,211,220,5,5,212,220,5,5,213,220,5,5,214,220,5,5,215,220,5,5,216,220,5,5,217,220,5,5,218,220,5,5,219,220,5,5,220,220,5,5,221,220,5,5,222,220,5,5,223,220,5,5,224,220,5,5,225,220,5,5,226,220,5,5,227,220,5,5,228,220,5,5,229,220,5,5,230,220,5,5,231,220,5,5,232,220,5,5,233,220,5,5,234,220,5,5,235,220,5,5,236,220,5,5,45,227,5,5,46,227,5,5,47,227,5,5,48,227,5,5,49,227,5,5,50,227,5,5,51,227,5,5,52,227,5,5,53,227,5,5,54,227,5,5,55,227,5,5,56,227,5,5,57,227,5,5,58,227,5,5,59,227,5,5,60,227,5,5,61,227,5,5,62,227,5,5,63,227,5,5,64,227,5,5,65,227,5,5,66,227,5,5,67,227,5,5,68,227,5,5,69,227,5,5,70,227,5,5,71,227,5,5,72,227,5,5,73,227,5,5,74,227,5,5,75,227,5,5,76,227,5,5,77,227,5,5,102,232,5,5,103,232,5,5,104,232,5,5,105,232,5,5,106,232,5,5,107,232,5,5,108,232,5,5,109,232,5,5,110,232,5,5,111,232,5,5,112,232,5,5,113,232,5,5,114,232,5,5,115,232,5,5,116,232,5,5,117,232,5,5,118,232,5,5,119,232,5,5,120,232,5,5,121,232,5,5,122,232,5,5,123,232,5,5,124,232,5,5,125,232,5,5,126,232,5,5,127,232,5,5,128,232,5,5,129,232,5,5,130,232,5,5,131,232,5,5,132,232,5,5,139,232,5,5,133,232,5,5,134,232,5,5,253,239,5,5,135,232,5,5,136,232,5,5,132,236,5,5,133,236,5,5,134,236,5,5,135,236,5,5,136,236,5,5,137,236,5,5,138,236,5,5,139,236,5,5,140,236,5,5,141,236,5,5,142,236,5,5,143,236,5,5,144,236,5,5,145,236,5,5,146,236,5,5,147,236,5,5,148,236,5,5,149,236,5,5,150,236,5,5,151,236,5,5,152,236,5,5,153,236,5,5,154,236,5,5,155,236,5,5,254,239,5,5,156,236,5,5,255,239,5,5,2,240,5,5,3,240,5,5,4,240,5,5,5,240,5,5,6,240,5,5,7,240,5,5,8,240,5,5,9,240,5,5,157,236,5,5,10,240,5,5,11,240,5,5,12,240,5,5,13,240,5,5,14,240,5,5,15,240,5,5,16,240,5,5,17,240,5,5,18,240,5,5,231,242,5,5,232,242,5,5,233,242,5,5,234,242,5,5,235,242,5,5,236,242,5,5,237,242,5,5,238,242,5,5,239,242,5,5,30,245,5,5,31,245,5,5,32,245,5,5,33,245,5,5,34,245,5,5,35,245,5,5,36,245,5,5,37,245,5,5,38,245,5,5,39,245,5,5,40,245,5,5,41,245,5,5,42,245,5,5,203,246,5,5,204,246,5,5,253,247,5,5,254,247,5,5,255,247,5,5,2,248,5,5,225,248,5,5,135,249,5,5,136,249,5,5,137,249,5,5,138,249,5,5,35,250,5,5,36,250,5,5,123,250,5,5,150,157,5,5,179,159,5,5,172,161,5,5,173,161,5,5,174,161,5,5,175,161,5,5,176,161,5,5,177,161,5,5,178,161,5,5,179,161,5,5,180,161,5,5,181,161,5,5,182,161,5,5,59,165,5,5,60,165,5,5,61,165,5,5,62,165,5,5,63,165,5,5,64,165,5,5,65,165,5,5,66,165,5,5,67,165,5,5,68,165,5,5,58,165,5,5,69,165,5,5,70,165,5,5,71,165,5,5,72,165,5,5,73,165,5,5,74,165,5,5,75,165,5,5,76,165,5,5,93,170,5,5,94,170,5,5,95,170,5,5,96,170,5,5,97,170,5,5,98,170,5,5,99,170,5,5,100,170,5,5,101,170,5,5,102,170,5,5,103,170,5,5,104,170,5,5,105,170,5,5,106,170,5,5,107,170,5,5,108,170,5,5,109,170,5,5,110,170,5,5,91,176,5,5,92,176,5,5,93,176,5,5,94,176,5,5,95,176,5,5,96,176,5,5,97,176,5,5,98,176,5,5,99,176,5,5,100,176,5,5,101,176,5,5,102,176,5,5,103,176,5,5,104,176,5,5,105,176,5,5,27,183,5,5,28,183,5,5,29,183,5,5,30,183,5,5,31,183,5,5,32,183,5,5,33,183,5,5,34,183,5,5,35,183,5,5,196,190,5,5,197,190,5,5,198,190,5,5,199,190,5,5,200,190,5,5,201,190,5,5,202,190,5,5,203,190,5,5,204,190,5,5,205,190,5,5,206,190,5,5,207,190,5,5,208,190,5,5,209,190,5,5,210,190,5,5,211,190,5,5,212,190,5,5,213,190,5,5,214,190,5,5,215,190,5,5,216,190,5,5,217,190,5,5,218,190,5,5,219,190,5,5,220,190,5,5,216,198,5,5,217,198,5,5,218,198,5,5,219,198,5,5,220,198,5,5,221,198,5,5,222,198,5,5,223,198,5,5,224,198,5,5,225,198,5,5,226,198,5,5,227,198,5,5,228,198,5,5,229,198,5,5,230,198,5,5,231,198,5,5,232,198,5,5,233,198,5,5,234,198,5,5,235,198,5,5,236,198,5,5,237,198,5,5,238,198,5,5,178,206,5,5,179,206,5,5,180,206,5,5,181,206,5,5,182,206,5,5,183,206,5,5,184,206,5,5,185,206,5,5,186,206,5,5,187,206,5,5,188,206,5,5,189,206,5,5,41,214,5,5,42,214,5,5,43,214,5,5,44,214,5,5,45,214,5,5,46,214,5,5,47,214,5,5,248,220,5,5,249,220,5,5,250,220,5,5,251,220,5,5,79,227,5,5,80,227,5,5,81,227,5,5,82,227,5,5,83,227,5,5,20,240,5,5,183,161,5,5,111,170,5,5,106,176,5,5,36,183,5,5,37,183,5,5,221,190,5,5,38,183,5,5,222,190,5,5,239,198,5,5,240,198,5,5,241,198,5,5,48,214,5,5,49,214,5,5,84,227,5,5,140,232,5,5,141,232,5,5,142,232,5,5,163,236,5,5,164,236,5,5,165,236,5,5,21,240,5,5,22,240,5,5,244,242,5,5,43,245,5,5,207,246,5,5,208,246,5,5,226,248,5,5,184,161,5,5,180,159,5,5,106,158,5,5,112,170,5,5,77,165,5,5,113,170,5,5,114,170,5,5,108,176,5,5,115,170,5,5,109,176,5,5,40,183,5,5,41,183,5,5,42,183,5,5,43,183,5,5,44,183,5,5,45,183,5,5,46,183,5,5,47,183,5,5,225,190,5,5,242,198,5,5,243,198,5,5,244,198,5,5,190,206,5,5,191,206,5,5,192,206,5,5,193,206,5,5,194,206,5,5,195,206,5,5,196,206,5,5,197,206,5,5,50,214,5,5,51,214,5,5,52,214,5,5,198,206,5,5,53,214,5,5,54,214,5,5,252,220,5,5,253,220,5,5,254,220,5,5,255,220,5,5,85,227,5,5,86,227,5,5,87,227,5,5,88,227,5,5,143,232,5,5,144,232,5,5,145,232,5,5,167,236,5,5,146,232,5,5,168,236,5,5,23,240,5,5,24,240,5,5,25,240,5,5,26,240,5,5,210,246,5,5,227,248,5,5,228,248,5,5,185,161,5,5,116,170,5,5,117,170,5,5,110,176,5,5,111,176,5,5,112,176,5,5,48,183,5,5,113,176,5,5,49,183,5,5,50,183,5,5,51,183,5,5,226,190,5,5,52,183,5,5,53,183,5,5,54,183,5,5,55,183,5,5,227,190,5,5,228,190,5,5,229,190,5,5,230,190,5,5,231,190,5,5,232,190,5,5,245,198,5,5,246,198,5,5,247,198,5,5,200,206,5,5,201,206,5,5,202,206,5,5,203,206,5,5,204,206,5,5,205,206,5,5,206,206,5,5,207,206,5,5,55,214,5,5,2,221,5,5,3,221,5,5,4,221,5,5,5,221,5,5,6,221,5,5,89,227,5,5,90,227,5,5,169,236,5,5,170,236,5,5,171,236,5,5,27,240,5,5,28,240,5,5,29,240,5,5,30,240,5,5,246,242,5,5,44,245,5,5,45,245,5,5,189,161,5,5,115,176,5,5,116,176,5,5,56,183,5,5,57,183,5,5,58,183,5,5,59,183,5,5,60,183,5,5,61,183,5,5,62,183,5,5,233,190,5,5,234,190,5,5,235,190,5,5,236,190,5,5,237,190,5,5,238,190,5,5,239,190,5,5,240,190,5,5,241,190,5,5,242,190,5,5,243,190,5,5,244,190,5,5,250,198,5,5,251,198,5,5,252,198,5,5,253,198,5,5,254,198,5,5,255,198,5,5,2,199,5,5,3,199,5,5,208,206,5,5,209,206,5,5,210,206,5,5,56,214,5,5,57,214,5,5,58,214,5,5,59,214,5,5,60,214,5,5,61,214,5,5,62,214,5,5,64,214,5,5,7,221,5,5,8,221,5,5,9,221,5,5,10,221,5,5,11,221,5,5,12,221,5,5,13,221,5,5,14,221,5,5,91,227,5,5,92,227,5,5,93,227,5,5,94,227,5,5,148,232,5,5,149,232,5,5,150,232,5,5,151,232,5,5,152,232,5,5,172,236,5,5,173,236,5,5,174,236,5,5,175,236,5,5,176,236,5,5,153,232,5,5,31,240,5,5,32,240,5,5,247,242,5,5,248,242,5,5,190,161,5,5,107,158,5,5,191,161,5,5,67,183,5,5,118,170,5,5,68,183,5,5,119,176,5,5,245,190,5,5,246,190,5,5,69,183,5,5,4,199,5,5,192,161,5,5,120,176,5,5,121,176,5,5,122,176,5,5,123,176,5,5,124,176,5,5,193,161,5,5,119,170,5,5,125,176,5,5,70,183,5,5,71,183,5,5,72,183,5,5,73,183,5,5,74,183,5,5,247,190,5,5,248,190,5,5,249,190,5,5,250,190,5,5,251,190,5,5,252,190,5,5,5,199,5,5,211,206,5,5,212,206,5,5,65,214,5,5,66,214,5,5,67,214,5,5,16,221,5,5,17,221,5,5,95,227,5,5,96,227,5,5,97,227,5,5,157,232,5,5,158,232,5,5,180,236,5,5,181,236,5,5,249,242,5,5,47,245,5,5,211,246,5,5,212,246,5,5,194,161,5,5,78,165,5,5,120,170,5,5,126,176,5,5,127,176,5,5,75,183,5,5,76,183,5,5,77,183,5,5,78,183,5,5,79,183,5,5,80,183,5,5,81,183,5,5,82,183,5,5,83,183,5,5,84,183,5,5,85,183,5,5,253,190,5,5,254,190,5,5,255,190,5,5,2,191,5,5,3,191,5,5,4,191,5,5,5,191,5,5,6,191,5,5,7,191,5,5,8,191,5,5,9,191,5,5,6,199,5,5,7,199,5,5,8,199,5,5,9,199,5,5,10,199,5,5,11,199,5,5,12,199,5,5,213,206,5,5,214,206,5,5,215,206,5,5,216,206,5,5,68,214,5,5,69,214,5,5,70,214,5,5,71,214,5,5,72,214,5,5,73,214,5,5,74,214,5,5,13,199,5,5,75,214,5,5,76,214,5,5,77,214,5,5,19,221,5,5,20,221,5,5,21,221,5,5,22,221,5,5,23,221,5,5,24,221,5,5,25,221,5,5,26,221,5,5,99,227,5,5,100,227,5,5,103,227,5,5,159,232,5,5,160,232,5,5,161,232,5,5,162,232,5,5,163,232,5,5,164,232,5,5,182,236,5,5,183,236,5,5,184,236,5,5,33,240,5,5,250,242,5,5,251,242,5,5,252,242,5,5,253,242,5,5,213,246,5,5,214,246,5,5,195,161,5,5,108,158,5,5,86,183,5,5,87,183,5,5,121,170,5,5,217,206,5,5,218,206,5,5,219,206,5,5,80,214,5,5,81,214,5,5,196,161,5,5,184,159,5,5,197,161,5,5,198,161,5,5,199,161,5,5,200,161,5,5,122,170,5,5,79,165,5,5,80,165,5,5,81,165,5,5,82,165,5,5,83,165,5,5,84,165,5,5,85,165,5,5,86,165,5,5,87,165,5,5,88,165,5,5,89,165,5,5,90,165,5,5,91,165,5,5,92,165,5,5,93,165,5,5,94,165,5,5,95,165,5,5,123,170,5,5,124,170,5,5,125,170,5,5,126,170,5,5,127,170,5,5,128,170,5,5,129,170,5,5,130,170,5,5,131,170,5,5,132,170,5,5,133,170,5,5,134,170,5,5,135,170,5,5,136,170,5,5,137,170,5,5,138,170,5,5,139,170,5,5,140,170,5,5,141,170,5,5,142,170,5,5,143,170,5,5,144,170,5,5,145,170,5,5,146,170,5,5,147,170,5,5,148,170,5,5,149,170,5,5,150,170,5,5,151,170,5,5,152,170,5,5,153,170,5,5,154,170,5,5,155,170,5,5,129,176,5,5,130,176,5,5,131,176,5,5,132,176,5,5,133,176,5,5,134,176,5,5,135,176,5,5,136,176,5,5,137,176,5,5,138,176,5,5,139,176,5,5,140,176,5,5,141,176,5,5,142,176,5,5,143,176,5,5,144,176,5,5,145,176,5,5,146,176,5,5,15,199,5,5,147,176,5,5,148,176,5,5,149,176,5,5,150,176,5,5,151,176,5,5,152,176,5,5,153,176,5,5,154,176,5,5,155,176,5,5,156,176,5,5,157,176,5,5,158,176,5,5,159,176,5,5,160,176,5,5,161,176,5,5,162,176,5,5,163,176,5,5,164,176,5,5,165,176,5,5,166,176,5,5,167,176,5,5,168,176,5,5,169,176,5,5,10,191,5,5,88,183,5,5,89,183,5,5,90,183,5,5,91,183,5,5,92,183,5,5,93,183,5,5,94,183,5,5,95,183,5,5,96,183,5,5,97,183,5,5,98,183,5,5,99,183,5,5,100,183,5,5,101,183,5,5,102,183,5,5,103,183,5,5,104,183,5,5,16,199,5,5,105,183,5,5,106,183,5,5,107,183,5,5,108,183,5,5,109,183,5,5,110,183,5,5,111,183,5,5,112,183,5,5,113,183,5,5,114,183,5,5,170,176,5,5,115,183,5,5,116,183,5,5,117,183,5,5,118,183,5,5,119,183,5,5,120,183,5,5,121,183,5,5,122,183,5,5,123,183,5,5,124,183,5,5,17,199,5,5,11,191,5,5,12,191,5,5,13,191,5,5,14,191,5,5,15,191,5,5,16,191,5,5,17,191,5,5,18,191,5,5,19,191,5,5,20,191,5,5,21,191,5,5,18,199,5,5,22,191,5,5,23,191,5,5,24,191,5,5,25,191,5,5,26,191,5,5,27,191,5,5,28,191,5,5,29,191,5,5,30,191,5,5,31,191,5,5,32,191,5,5,33,191,5,5,34,191,5,5,35,191,5,5,36,191,5,5,37,191,5,5,38,191,5,5,39,191,5,5,40,191,5,5,41,191,5,5,42,191,5,5,43,191,5,5,44,191,5,5,45,191,5,5,19,199,5,5,20,199,5,5,21,199,5,5,22,199,5,5,23,199,5,5,24,199,5,5,25,199,5,5,26,199,5,5,27,199,5,5,28,199,5,5,29,199,5,5,30,199,5,5,31,199,5,5,32,199,5,5,33,199,5,5,34,199,5,5,35,199,5,5,36,199,5,5,37,199,5,5,38,199,5,5,39,199,5,5,40,199,5,5,41,199,5,5,82,214,5,5,42,199,5,5,43,199,5,5,44,199,5,5,45,199,5,5,46,199,5,5,47,199,5,5,48,199,5,5,49,199,5,5,50,199,5,5,51,199,5,5,222,206,5,5,223,206,5,5,224,206,5,5,225,206,5,5,226,206,5,5,227,206,5,5,228,206,5,5,229,206,5,5,230,206,5,5,231,206,5,5,232,206,5,5,233,206,5,5,234,206,5,5,235,206,5,5,236,206,5,5,237,206,5,5,238,206,5,5,239,206,5,5,240,206,5,5,241,206,5,5,242,206,5,5,243,206,5,5,244,206,5,5,245,206,5,5,246,206,5,5,58,199,5,5,247,206,5,5,248,206,5,5,249,206,5,5,250,206,5,5,251,206,5,5,252,206,5,5,253,206,5,5,254,206,5,5,255,206,5,5,2,207,5,5,83,214,5,5,84,214,5,5,85,214,5,5,86,214,5,5,87,214,5,5,88,214,5,5,89,214,5,5,90,214,5,5,91,214,5,5,92,214,5,5,93,214,5,5,94,214,5,5,95,214,5,5,96,214,5,5,97,214,5,5,98,214,5,5,99,214,5,5,104,227,5,5,100,214,5,5,28,221,5,5,29,221,5,5,30,221,5,5,31,221,5,5,32,221,5,5,33,221,5,5,34,221,5,5,35,221,5,5,36,221,5,5,37,221,5,5,38,221,5,5,39,221,5,5,40,221,5,5,41,221,5,5,42,221,5,5,43,221,5,5,44,221,5,5,45,221,5,5,182,218,5,5,166,232,5,5,106,227,5,5,107,227,5,5,108,227,5,5,109,227,5,5,110,227,5,5,111,227,5,5,112,227,5,5,113,227,5,5,114,227,5,5,115,227,5,5,116,227,5,5,117,227,5,5,118,227,5,5,119,227,5,5,120,227,5,5,121,227,5,5,122,227,5,5,126,227,5,5,167,232,5,5,127,227,5,5,168,232,5,5,169,232,5,5,170,232,5,5,171,232,5,5,172,232,5,5,173,232,5,5,174,232,5,5,175,232,5,5,176,232,5,5,177,232,5,5,178,232,5,5,179,232,5,5,180,232,5,5,181,232,5,5,182,232,5,5,183,232,5,5,184,232,5,5,34,240,5,5,185,232,5,5,185,236,5,5,186,236,5,5,187,236,5,5,188,236,5,5,189,236,5,5,190,236,5,5,191,236,5,5,35,240,5,5,36,240,5,5,254,242,5,5,37,240,5,5,38,240,5,5,255,242,5,5,2,243,5,5,3,243,5,5,4,243,5,5,48,245,5,5,215,246,5,5,216,246,5,5,139,249,5,5,140,249,5,5,3,248,5,5,201,161,5,5,157,170,5,5,158,170,5,5,59,199,5,5,108,214,5,5,188,232,5,5,189,232,5,5,202,161,5,5,96,165,5,5,129,183,5,5,130,183,5,5,60,199,5,5,61,199,5,5,62,199,5,5,49,221,5,5,128,227,5,5,203,161,5,5,172,176,5,5,64,199,5,5,65,199,5,5,66,199,5,5,67,199,5,5,68,199,5,5,109,214,5,5,129,227,5,5,204,161,5,5,159,170,5,5,160,170,5,5,173,176,5,5,132,183,5,5,133,183,5,5,52,191,5,5,69,199,5,5,70,199,5,5,4,207,5,5,131,227,5,5,110,214,5,5,130,227,5,5,132,227,5,5,196,236,5,5,43,240,5,5,206,161,5,5,161,170,5,5,162,170,5,5,163,170,5,5,134,183,5,5,53,191,5,5,71,199,5,5,111,214,5,5,112,214,5,5,113,214,5,5,50,221,5,5,51,221,5,5,133,227,5,5,197,236,5,5,44,240,5,5,207,161,5,5,72,199,5,5,5,207,5,5,114,214,5,5,208,161,5,5,164,170,5,5,174,176,5,5,175,176,5,5,176,176,5,5,177,176,5,5,135,183,5,5,136,183,5,5,137,183,5,5,138,183,5,5,139,183,5,5,140,183,5,5,141,183,5,5,142,183,5,5,143,183,5,5,144,183,5,5,145,183,5,5,146,183,5,5,147,183,5,5,54,191,5,5,55,191,5,5,56,191,5,5,57,191,5,5,58,191,5,5,59,191,5,5,60,191,5,5,61,191,5,5,62,191,5,5,63,191,5,5,73,199,5,5,74,199,5,5,75,199,5,5,76,199,5,5,6,207,5,5,7,207,5,5,8,207,5,5,9,207,5,5,10,207,5,5,11,207,5,5,12,207,5,5,13,207,5,5,14,207,5,5,15,207,5,5,115,214,5,5,116,214,5,5,117,214,5,5,118,214,5,5,52,221,5,5,53,221,5,5,54,221,5,5,55,221,5,5,56,221,5,5,57,221,5,5,58,221,5,5,134,227,5,5,135,227,5,5,136,227,5,5,137,227,5,5,138,227,5,5,191,232,5,5,192,232,5,5,193,232,5,5,194,232,5,5,198,236,5,5,199,236,5,5,200,236,5,5,45,240,5,5,46,240,5,5,47,240,5,5,48,240,5,5,49,240,5,5,6,243,5,5,7,243,5,5,8,243,5,5,9,243,5,5,49,245,5,5,218,246,5,5,5,248,5,5,229,248,5,5,209,161,5,5,97,165,5,5,165,170,5,5,195,232,5,5,210,161,5,5,149,183,5,5,66,191,5,5,78,199,5,5,50,240,5,5,230,248,5,5,211,161,5,5,152,157,5,5,185,159,5,5,213,161,5,5,214,161,5,5,215,161,5,5,216,161,5,5,217,161,5,5,218,161,5,5,219,161,5,5,220,161,5,5,98,165,5,5,99,165,5,5,100,165,5,5,101,165,5,5,102,165,5,5,103,165,5,5,104,165,5,5,105,165,5,5,106,165,5,5,107,165,5,5,108,165,5,5,109,165,5,5,110,165,5,5,111,165,5,5,112,165,5,5,113,165,5,5,114,165,5,5,178,176,5,5,115,165,5,5,116,165,5,5,117,165,5,5,166,170,5,5,167,170,5,5,168,170,5,5,169,170,5,5,170,170,5,5,171,170,5,5,172,170,5,5,173,170,5,5,174,170,5,5,175,170,5,5,176,170,5,5,177,170,5,5,178,170,5,5,179,170,5,5,180,170,5,5,181,170,5,5,182,170,5,5,183,170,5,5,184,170,5,5,185,170,5,5,186,170,5,5,187,170,5,5,188,170,5,5,189,170,5,5,190,170,5,5,191,170,5,5,192,170,5,5,193,170,5,5,194,170,5,5,195,170,5,5,196,170,5,5,197,170,5,5,198,170,5,5,199,170,5,5,200,170,5,5,150,183,5,5,201,170,5,5,202,170,5,5,203,170,5,5,225,170,5,5,204,170,5,5,205,170,5,5,206,170,5,5,207,170,5,5,208,170,5,5,209,170,5,5,210,170,5,5,211,170,5,5,212,170,5,5,213,170,5,5,214,170,5,5,215,170,5,5,216,170,5,5,217,170,5,5,218,170,5,5,219,170,5,5,179,176,5,5,180,176,5,5,181,176,5,5,182,176,5,5,183,176,5,5,184,176,5,5,185,176,5,5,186,176,5,5,187,176,5,5,188,176,5,5,189,176,5,5,190,176,5,5,191,176,5,5,192,176,5,5,193,176,5,5,194,176,5,5,195,176,5,5,196,176,5,5,197,176,5,5,198,176,5,5,199,176,5,5,200,176,5,5,201,176,5,5,202,176,5,5,203,176,5,5,204,176,5,5,205,176,5,5,206,176,5,5,207,176,5,5,208,176,5,5,209,176,5,5,210,176,5,5,211,176,5,5,212,176,5,5,213,176,5,5,214,176,5,5,215,176,5,5,216,176,5,5,217,176,5,5,218,176,5,5,219,176,5,5,220,176,5,5,221,176,5,5,222,176,5,5,223,176,5,5,224,176,5,5,225,176,5,5,226,176,5,5,227,176,5,5,228,176,5,5,229,176,5,5,230,176,5,5,231,176,5,5,232,176,5,5,233,176,5,5,234,176,5,5,154,183,5,5,235,176,5,5,236,176,5,5,237,176,5,5,238,176,5,5,239,176,5,5,240,176,5,5,241,176,5,5,242,176,5,5,243,176,5,5,79,199,5,5,244,176,5,5,245,176,5,5,246,176,5,5,155,183,5,5,156,183,5,5,157,183,5,5,158,183,5,5,159,183,5,5,160,183,5,5,161,183,5,5,69,191,5,5,162,183,5,5,163,183,5,5,164,183,5,5,165,183,5,5,166,183,5,5,70,191,5,5,167,183,5,5,168,183,5,5,169,183,5,5,170,183,5,5,171,183,5,5,172,183,5,5,173,183,5,5,174,183,5,5,175,183,5,5,176,183,5,5,177,183,5,5,178,183,5,5,179,183,5,5,180,183,5,5,181,183,5,5,182,183,5,5,183,183,5,5,184,183,5,5,185,183,5,5,186,183,5,5,187,183,5,5,188,183,5,5,252,176,5,5,80,199,5,5,189,183,5,5,190,183,5,5,220,170,5,5,191,183,5,5,192,183,5,5,193,183,5,5,194,183,5,5,195,183,5,5,196,183,5,5,197,183,5,5,81,199,5,5,198,183,5,5,199,183,5,5,200,183,5,5,201,183,5,5,202,183,5,5,203,183,5,5,204,183,5,5,205,183,5,5,206,183,5,5,207,183,5,5,208,183,5,5,209,183,5,5,242,183,5,5,210,183,5,5,211,183,5,5,212,183,5,5,213,183,5,5,214,183,5,5,67,191,5,5,215,183,5,5,216,183,5,5,217,183,5,5,218,183,5,5,219,183,5,5,220,183,5,5,221,183,5,5,222,183,5,5,223,183,5,5,224,183,5,5,225,183,5,5,226,183,5,5,227,183,5,5,228,183,5,5,229,183,5,5,230,183,5,5,231,183,5,5,68,191,5,5,232,183,5,5,233,183,5,5,234,183,5,5,235,183,5,5,71,191,5,5,72,191,5,5,73,191,5,5,74,191,5,5,75,191,5,5,76,191,5,5,77,191,5,5,78,191,5,5,79,191,5,5,80,191,5,5,81,191,5,5,82,191,5,5,83,191,5,5,84,191,5,5,85,191,5,5,86,191,5,5,87,191,5,5,88,191,5,5,89,191,5,5,90,191,5,5,91,191,5,5,92,191,5,5,93,191,5,5,94,191,5,5,95,191,5,5,96,191,5,5,97,191,5,5,98,191,5,5,99,191,5,5,100,191,5,5,101,191,5,5,102,191,5,5,103,191,5,5,104,191,5,5,105,191,5,5,106,191,5,5,107,191,5,5,108,191,5,5,109,191,5,5,110,191,5,5,111,191,5,5,112,191,5,5,86,199,5,5,113,191,5,5,114,191,5,5,115,191,5,5,116,191,5,5,117,191,5,5,118,191,5,5,119,191,5,5,120,191,5,5,121,191,5,5,122,191,5,5,123,191,5,5,124,191,5,5,125,191,5,5,126,191,5,5,127,191,5,5,128,191,5,5,129,191,5,5,130,191,5,5,150,191,5,5,131,191,5,5,132,191,5,5,133,191,5,5,134,191,5,5,135,191,5,5,136,191,5,5,137,191,5,5,138,191,5,5,139,191,5,5,140,191,5,5,141,191,5,5,142,191,5,5,143,191,5,5,17,207,5,5,144,191,5,5,145,191,5,5,87,199,5,5,88,199,5,5,89,199,5,5,90,199,5,5,91,199,5,5,92,199,5,5,93,199,5,5,94,199,5,5,95,199,5,5,96,199,5,5,97,199,5,5,98,199,5,5,99,199,5,5,100,199,5,5,101,199,5,5,102,199,5,5,103,199,5,5,104,199,5,5,105,199,5,5,106,199,5,5,107,199,5,5,108,199,5,5,109,199,5,5,110,199,5,5,111,199,5,5,112,199,5,5,113,199,5,5,21,207,5,5,114,199,5,5,115,199,5,5,116,199,5,5,117,199,5,5,118,199,5,5,119,199,5,5,120,199,5,5,121,199,5,5,122,199,5,5,123,199,5,5,124,199,5,5,125,199,5,5,126,199,5,5,127,199,5,5,128,199,5,5,129,199,5,5,130,199,5,5,131,199,5,5,132,199,5,5,133,199,5,5,134,199,5,5,135,199,5,5,136,199,5,5,137,199,5,5,138,199,5,5,139,199,5,5,140,199,5,5,141,199,5,5,142,199,5,5,143,199,5,5,144,199,5,5,145,199,5,5,146,199,5,5,147,199,5,5,148,199,5,5,149,199,5,5,150,199,5,5,151,199,5,5,152,199,5,5,153,199,5,5,154,199,5,5,155,199,5,5,156,199,5,5,157,199,5,5,158,199,5,5,159,199,5,5,160,199,5,5,161,199,5,5,162,199,5,5,163,199,5,5,164,199,5,5,165,199,5,5,166,199,5,5,167,199,5,5,168,199,5,5,169,199,5,5,170,199,5,5,171,199,5,5,172,199,5,5,173,199,5,5,174,199,5,5,175,199,5,5,176,199,5,5,177,199,5,5,178,199,5,5,179,199,5,5,180,199,5,5,181,199,5,5,182,199,5,5,183,199,5,5,184,199,5,5,185,199,5,5,186,199,5,5,187,199,5,5,188,199,5,5,22,207,5,5,189,199,5,5,190,199,5,5,23,207,5,5,24,207,5,5,25,207,5,5,26,207,5,5,40,206,5,5,27,207,5,5,28,207,5,5,29,207,5,5,30,207,5,5,31,207,5,5,32,207,5,5,33,207,5,5,34,207,5,5,35,207,5,5,36,207,5,5,37,207,5,5,205,199,5,5,38,207,5,5,39,207,5,5,40,207,5,5,41,207,5,5,42,207,5,5,43,207,5,5,44,207,5,5,45,207,5,5,46,207,5,5,47,207,5,5,48,207,5,5,49,207,5,5,50,207,5,5,51,207,5,5,52,207,5,5,53,207,5,5,54,207,5,5,55,207,5,5,56,207,5,5,57,207,5,5,58,207,5,5,59,207,5,5,60,207,5,5,61,207,5,5,62,207,5,5,63,207,5,5,64,207,5,5,65,207,5,5,66,207,5,5,67,207,5,5,191,199,5,5,68,207,5,5,69,207,5,5,70,207,5,5,71,207,5,5,72,207,5,5,73,207,5,5,74,207,5,5,75,207,5,5,76,207,5,5,77,207,5,5,78,207,5,5,79,207,5,5,80,207,5,5,81,207,5,5,82,207,5,5,83,207,5,5,84,207,5,5,85,207,5,5,86,207,5,5,87,207,5,5,88,207,5,5,89,207,5,5,90,207,5,5,91,207,5,5,92,207,5,5,93,207,5,5,94,207,5,5,95,207,5,5,96,207,5,5,97,207,5,5,98,207,5,5,99,207,5,5,100,207,5,5,101,207,5,5,102,207,5,5,103,207,5,5,104,207,5,5,105,207,5,5,106,207,5,5,107,207,5,5,108,207,5,5,109,207,5,5,110,207,5,5,111,207,5,5,112,207,5,5,113,207,5,5,114,207,5,5,115,207,5,5,116,207,5,5,117,207,5,5,60,221,5,5,118,207,5,5,119,207,5,5,120,207,5,5,121,207,5,5,122,207,5,5,130,214,5,5,131,214,5,5,132,214,5,5,133,214,5,5,134,214,5,5,135,214,5,5,136,214,5,5,137,214,5,5,138,214,5,5,139,214,5,5,140,214,5,5,141,214,5,5,142,214,5,5,143,214,5,5,144,214,5,5,145,214,5,5,146,214,5,5,147,214,5,5,148,214,5,5,149,214,5,5,150,214,5,5,151,214,5,5,152,214,5,5,153,214,5,5,154,214,5,5,155,214,5,5,156,214,5,5,157,214,5,5,158,214,5,5,159,214,5,5,160,214,5,5,161,214,5,5,162,214,5,5,163,214,5,5,164,214,5,5,165,214,5,5,166,214,5,5,167,214,5,5,168,214,5,5,169,214,5,5,201,212,5,5,170,214,5,5,171,214,5,5,172,214,5,5,173,214,5,5,174,214,5,5,175,214,5,5,176,214,5,5,177,214,5,5,178,214,5,5,179,214,5,5,180,214,5,5,181,214,5,5,135,207,5,5,182,214,5,5,183,214,5,5,136,207,5,5,184,214,5,5,185,214,5,5,186,214,5,5,187,214,5,5,188,214,5,5,189,214,5,5,190,214,5,5,191,214,5,5,192,214,5,5,193,214,5,5,194,214,5,5,195,214,5,5,196,214,5,5,197,214,5,5,198,214,5,5,199,214,5,5,200,214,5,5,201,214,5,5,202,214,5,5,203,214,5,5,204,214,5,5,139,227,5,5,205,214,5,5,62,221,5,5,206,214,5,5,207,214,5,5,208,214,5,5,209,214,5,5,225,214,5,5,210,214,5,5,63,221,5,5,64,221,5,5,65,221,5,5,66,221,5,5,67,221,5,5,68,221,5,5,69,221,5,5,70,221,5,5,71,221,5,5,72,221,5,5,137,207,5,5,73,221,5,5,74,221,5,5,75,221,5,5,76,221,5,5,77,221,5,5,78,221,5,5,79,221,5,5,80,221,5,5,81,221,5,5,82,221,5,5,83,221,5,5,84,221,5,5,85,221,5,5,86,221,5,5,87,221,5,5,88,221,5,5,89,221,5,5,90,221,5,5,91,221,5,5,92,221,5,5,93,221,5,5,138,207,5,5,94,221,5,5,95,221,5,5,96,221,5,5,97,221,5,5,98,221,5,5,99,221,5,5,100,221,5,5,101,221,5,5,102,221,5,5,103,221,5,5,104,221,5,5,105,221,5,5,106,221,5,5,107,221,5,5,108,221,5,5,109,221,5,5,110,221,5,5,111,221,5,5,112,221,5,5,113,221,5,5,114,221,5,5,115,221,5,5,116,221,5,5,117,221,5,5,118,221,5,5,119,221,5,5,120,221,5,5,121,221,5,5,122,221,5,5,123,221,5,5,124,221,5,5,125,221,5,5,126,221,5,5,127,221,5,5,128,221,5,5,129,221,5,5,130,221,5,5,131,221,5,5,132,221,5,5,133,221,5,5,134,221,5,5,135,221,5,5,136,221,5,5,137,221,5,5,138,221,5,5,139,221,5,5,140,221,5,5,141,221,5,5,142,221,5,5,143,221,5,5,144,221,5,5,145,221,5,5,146,221,5,5,159,221,5,5,145,227,5,5,146,227,5,5,147,227,5,5,148,227,5,5,149,227,5,5,150,227,5,5,151,227,5,5,152,227,5,5,153,227,5,5,154,227,5,5,155,227,5,5,156,227,5,5,157,227,5,5,158,227,5,5,159,227,5,5,160,227,5,5,161,227,5,5,160,221,5,5,162,227,5,5,163,227,5,5,164,227,5,5,165,227,5,5,166,227,5,5,167,227,5,5,168,227,5,5,202,232,5,5,169,227,5,5,170,227,5,5,171,227,5,5,172,227,5,5,173,227,5,5,174,227,5,5,175,227,5,5,176,227,5,5,177,227,5,5,178,227,5,5,179,227,5,5,180,227,5,5,181,227,5,5,182,227,5,5,183,227,5,5,184,227,5,5,185,227,5,5,186,227,5,5,187,227,5,5,188,227,5,5,189,227,5,5,190,227,5,5,191,227,5,5,192,227,5,5,193,227,5,5,194,227,5,5,195,227,5,5,196,227,5,5,197,227,5,5,198,227,5,5,203,232,5,5,204,232,5,5,205,232,5,5,206,232,5,5,207,232,5,5,208,232,5,5,209,232,5,5,210,232,5,5,211,232,5,5,212,232,5,5,213,232,5,5,214,232,5,5,215,232,5,5,216,232,5,5,217,232,5,5,218,232,5,5,219,232,5,5,220,232,5,5,221,232,5,5,222,232,5,5,223,232,5,5,224,232,5,5,211,227,5,5,225,232,5,5,226,232,5,5,227,232,5,5,228,232,5,5,229,232,5,5,230,232,5,5,231,232,5,5,232,232,5,5,233,232,5,5,234,232,5,5,235,232,5,5,236,232,5,5,237,232,5,5,238,232,5,5,239,232,5,5,240,232,5,5,241,232,5,5,242,232,5,5,243,232,5,5,244,232,5,5,245,232,5,5,246,232,5,5,247,232,5,5,248,232,5,5,249,232,5,5,250,232,5,5,251,232,5,5,252,232,5,5,211,236,5,5,253,232,5,5,254,232,5,5,255,232,5,5,8,233,5,5,2,233,5,5,9,233,5,5,212,236,5,5,213,236,5,5,214,236,5,5,215,236,5,5,216,236,5,5,217,236,5,5,218,236,5,5,219,236,5,5,220,236,5,5,221,236,5,5,222,236,5,5,223,236,5,5,224,236,5,5,225,236,5,5,226,236,5,5,227,236,5,5,228,236,5,5,229,236,5,5,230,236,5,5,231,236,5,5,232,236,5,5,233,236,5,5,234,236,5,5,235,236,5,5,236,236,5,5,237,236,5,5,238,236,5,5,239,236,5,5,240,236,5,5,241,236,5,5,242,236,5,5,243,236,5,5,244,236,5,5,54,240,5,5,245,236,5,5,246,236,5,5,50,245,5,5,55,240,5,5,56,240,5,5,57,240,5,5,58,240,5,5,59,240,5,5,60,240,5,5,61,240,5,5,62,240,5,5,63,240,5,5,64,240,5,5,65,240,5,5,66,240,5,5,67,240,5,5,68,240,5,5,69,240,5,5,70,240,5,5,71,240,5,5,72,240,5,5,73,240,5,5,74,240,5,5,75,240,5,5,76,240,5,5,77,240,5,5,78,240,5,5,79,240,5,5,17,243,5,5,80,240,5,5,81,240,5,5,82,240,5,5,83,240,5,5,84,240,5,5,85,240,5,5,86,240,5,5,18,243,5,5,90,240,5,5,91,240,5,5,19,243,5,5,20,243,5,5,21,243,5,5,22,243,5,5,23,243,5,5,24,243,5,5,25,243,5,5,26,243,5,5,27,243,5,5,28,243,5,5,29,243,5,5,30,243,5,5,31,243,5,5,32,243,5,5,33,243,5,5,34,243,5,5,35,243,5,5,36,243,5,5,37,243,5,5,38,243,5,5,39,243,5,5,40,243,5,5,41,243,5,5,42,243,5,5,43,243,5,5,51,243,5,5,44,243,5,5,45,243,5,5,53,245,5,5,54,245,5,5,55,245,5,5,56,245,5,5,57,245,5,5,58,245,5,5,52,243,5,5,59,245,5,5,60,245,5,5,61,245,5,5,62,245,5,5,63,245,5,5,64,245,5,5,46,243,5,5,65,245,5,5,10,243,5,5,66,245,5,5,67,245,5,5,68,245,5,5,69,245,5,5,70,245,5,5,71,245,5,5,72,245,5,5,222,246,5,5,73,245,5,5,74,245,5,5,75,245,5,5,53,243,5,5,7,248,5,5,223,246,5,5,224,246,5,5,225,246,5,5,226,246,5,5,227,246,5,5,228,246,5,5,8,248,5,5,9,248,5,5,10,248,5,5,11,248,5,5,12,248,5,5,13,248,5,5,14,248,5,5,15,248,5,5,16,248,5,5,17,248,5,5,141,249,5,5,232,248,5,5,236,249,5,5,233,248,5,5,142,249,5,5,143,249,5,5,144,249,5,5,145,249,5,5,37,250,5,5,124,250,5,5,96,250,5,5,221,161,5,5,226,170,5,5,227,170,5,5,253,176,5,5,243,183,5,5,149,178,5,5,244,183,5,5,245,183,5,5,152,191,5,5,153,191,5,5,154,191,5,5,155,191,5,5,156,191,5,5,157,191,5,5,206,199,5,5,139,207,5,5,207,199,5,5,140,207,5,5,141,207,5,5,226,214,5,5,227,214,5,5,161,221,5,5,213,227,5,5,214,227,5,5,215,227,5,5,216,227,5,5,10,233,5,5,11,233,5,5,251,236,5,5,237,249,5,5,222,161,5,5,120,165,5,5,228,170,5,5,229,170,5,5,230,170,5,5,231,170,5,5,232,170,5,5,233,170,5,5,254,176,5,5,255,176,5,5,2,177,5,5,3,177,5,5,4,177,5,5,5,177,5,5,6,177,5,5,7,177,5,5,8,177,5,5,9,177,5,5,10,177,5,5,11,177,5,5,12,177,5,5,13,177,5,5,14,177,5,5,15,177,5,5,16,177,5,5,246,183,5,5,247,183,5,5,248,183,5,5,249,183,5,5,208,199,5,5,250,183,5,5,251,183,5,5,252,183,5,5,253,183,5,5,254,183,5,5,255,183,5,5,2,184,5,5,3,184,5,5,4,184,5,5,5,184,5,5,6,184,5,5,7,184,5,5,8,184,5,5,9,184,5,5,10,184,5,5,11,184,5,5,12,184,5,5,13,184,5,5,14,184,5,5,15,184,5,5,16,184,5,5,17,184,5,5,18,184,5,5,19,184,5,5,20,184,5,5,21,184,5,5,22,184,5,5,23,184,5,5,24,184,5,5,25,184,5,5,26,184,5,5,27,184,5,5,28,184,5,5,29,184,5,5,158,191,5,5,30,184,5,5,159,191,5,5,160,191,5,5,161,191,5,5,162,191,5,5,163,191,5,5,164,191,5,5,165,191,5,5,166,191,5,5,167,191,5,5,168,191,5,5,169,191,5,5,170,191,5,5,171,191,5,5,172,191,5,5,173,191,5,5,174,191,5,5,175,191,5,5,176,191,5,5,177,191,5,5,178,191,5,5,179,191,5,5,180,191,5,5,181,191,5,5,182,191,5,5,183,191,5,5,184,191,5,5,185,191,5,5,186,191,5,5,187,191,5,5,188,191,5,5,189,191,5,5,190,191,5,5,191,191,5,5,192,191,5,5,193,191,5,5,209,199,5,5,210,199,5,5,211,199,5,5,212,199,5,5,213,199,5,5,214,199,5,5,142,207,5,5,215,199,5,5,216,199,5,5,217,199,5,5,218,199,5,5,219,199,5,5,220,199,5,5,221,199,5,5,222,199,5,5,223,199,5,5,224,199,5,5,225,199,5,5,226,199,5,5,227,199,5,5,228,199,5,5,229,199,5,5,230,199,5,5,231,199,5,5,232,199,5,5,233,199,5,5,234,199,5,5,235,199,5,5,236,199,5,5,237,199,5,5,238,199,5,5,239,199,5,5,240,199,5,5,241,199,5,5,242,199,5,5,243,199,5,5,244,199,5,5,143,207,5,5,144,207,5,5,145,207,5,5,146,207,5,5,147,207,5,5,148,207,5,5,149,207,5,5,150,207,5,5,151,207,5,5,152,207,5,5,153,207,5,5,154,207,5,5,155,207,5,5,156,207,5,5,157,207,5,5,158,207,5,5,159,207,5,5,160,207,5,5,161,207,5,5,162,207,5,5,163,207,5,5,164,207,5,5,165,207,5,5,166,207,5,5,167,207,5,5,168,207,5,5,169,207,5,5,170,207,5,5,229,214,5,5,230,214,5,5,171,207,5,5,172,207,5,5,173,207,5,5,174,207,5,5,175,207,5,5,232,214,5,5,233,214,5,5,234,214,5,5,235,214,5,5,236,214,5,5,237,214,5,5,238,214,5,5,239,214,5,5,240,214,5,5,241,214,5,5,242,214,5,5,243,214,5,5,244,214,5,5,245,214,5,5,246,214,5,5,247,214,5,5,248,214,5,5,249,214,5,5,250,214,5,5,231,214,5,5,251,214,5,5,252,214,5,5,253,214,5,5,254,214,5,5,255,214,5,5,2,215,5,5,3,215,5,5,4,215,5,5,5,215,5,5,6,215,5,5,7,215,5,5,8,215,5,5,9,215,5,5,10,215,5,5,11,215,5,5,12,215,5,5,13,215,5,5,14,215,5,5,15,215,5,5,16,215,5,5,17,215,5,5,18,215,5,5,19,215,5,5,20,215,5,5,21,215,5,5,22,215,5,5,176,207,5,5,23,215,5,5,24,215,5,5,25,215,5,5,26,215,5,5,27,215,5,5,162,221,5,5,178,207,5,5,163,221,5,5,164,221,5,5,165,221,5,5,166,221,5,5,167,221,5,5,168,221,5,5,169,221,5,5,28,215,5,5,170,221,5,5,171,221,5,5,172,221,5,5,173,221,5,5,174,221,5,5,175,221,5,5,176,221,5,5,177,221,5,5,178,221,5,5,179,221,5,5,180,221,5,5,181,221,5,5,182,221,5,5,183,221,5,5,184,221,5,5,185,221,5,5,186,221,5,5,187,221,5,5,188,221,5,5,189,221,5,5,190,221,5,5,29,215,5,5,191,221,5,5,192,221,5,5,193,221,5,5,194,221,5,5,195,221,5,5,196,221,5,5,197,221,5,5,198,221,5,5,199,221,5,5,200,221,5,5,201,221,5,5,202,221,5,5,203,221,5,5,217,227,5,5,204,221,5,5,205,221,5,5,206,221,5,5,207,221,5,5,208,221,5,5,209,221,5,5,210,221,5,5,218,227,5,5,214,221,5,5,219,227,5,5,220,227,5,5,221,227,5,5,222,227,5,5,223,227,5,5,224,227,5,5,225,227,5,5,226,227,5,5,227,227,5,5,228,227,5,5,229,227,5,5,230,227,5,5,231,227,5,5,232,227,5,5,233,227,5,5,234,227,5,5,235,227,5,5,236,227,5,5,237,227,5,5,238,227,5,5,239,227,5,5,240,227,5,5,241,227,5,5,242,227,5,5,243,227,5,5,244,227,5,5,245,227,5,5,246,227,5,5,247,227,5,5,248,227,5,5,249,227,5,5,250,227,5,5,251,227,5,5,252,227,5,5,253,227,5,5,254,227,5,5,255,227,5,5,2,228,5,5,3,228,5,5,12,233,5,5,13,233,5,5,14,233,5,5,15,233,5,5,16,233,5,5,17,233,5,5,18,233,5,5,19,233,5,5,20,233,5,5,21,233,5,5,22,233,5,5,23,233,5,5,24,233,5,5,25,233,5,5,26,233,5,5,27,233,5,5,28,233,5,5,29,233,5,5,30,233,5,5,31,233,5,5,32,233,5,5,33,233,5,5,34,233,5,5,35,233,5,5,36,233,5,5,37,233,5,5,38,233,5,5,39,233,5,5,40,233,5,5,41,233,5,5,42,233,5,5,43,233,5,5,44,233,5,5,45,233,5,5,46,233,5,5,47,233,5,5,48,233,5,5,49,233,5,5,50,233,5,5,51,233,5,5,52,233,5,5,254,236,5,5,255,236,5,5,93,240,5,5,2,237,5,5,253,236,5,5,3,237,5,5,4,237,5,5,5,237,5,5,6,237,5,5,7,237,5,5,8,237,5,5,58,233,5,5,9,237,5,5,10,237,5,5,211,221,5,5,11,237,5,5,12,237,5,5,13,237,5,5,14,237,5,5,15,237,5,5,16,237,5,5,17,237,5,5,18,237,5,5,19,237,5,5,20,237,5,5,21,237,5,5,22,237,5,5,23,237,5,5,24,237,5,5,25,237,5,5,26,237,5,5,27,237,5,5,28,237,5,5,29,237,5,5,30,237,5,5,94,240,5,5,95,240,5,5,96,240,5,5,97,240,5,5,98,240,5,5,99,240,5,5,100,240,5,5,101,240,5,5,102,240,5,5,103,240,5,5,104,240,5,5,92,240,5,5,105,240,5,5,106,240,5,5,107,240,5,5,108,240,5,5,109,240,5,5,110,240,5,5,111,240,5,5,112,240,5,5,113,240,5,5,114,240,5,5,115,240,5,5,116,240,5,5,31,237,5,5,117,240,5,5,54,243,5,5,55,243,5,5,56,243,5,5,57,243,5,5,58,243,5,5,59,243,5,5,60,243,5,5,61,243,5,5,62,243,5,5,63,243,5,5,81,245,5,5,82,245,5,5,83,245,5,5,84,245,5,5,118,240,5,5,85,245,5,5,86,245,5,5,87,245,5,5,88,245,5,5,89,245,5,5,90,245,5,5,232,246,5,5,233,246,5,5,234,246,5,5,235,246,5,5,93,245,5,5,236,246,5,5,94,245,5,5,237,246,5,5,20,248,5,5,21,248,5,5,22,248,5,5,23,248,5,5,24,248,5,5,25,248,5,5,26,248,5,5,19,248,5,5,236,248,5,5,237,248,5,5,238,248,5,5,239,248,5,5,240,248,5,5,241,248,5,5,146,249,5,5,238,249,5,5,38,250,5,5,39,250,5,5,40,250,5,5,223,161,5,5,17,177,5,5,18,177,5,5,31,184,5,5,32,184,5,5,200,191,5,5,250,199,5,5,251,199,5,5,252,199,5,5,253,199,5,5,95,245,5,5,242,248,5,5,224,161,5,5,20,177,5,5,21,177,5,5,33,184,5,5,201,191,5,5,202,191,5,5,203,191,5,5,204,191,5,5,205,191,5,5,254,199,5,5,255,199,5,5,2,200,5,5,179,207,5,5,180,207,5,5,215,221,5,5,216,221,5,5,217,221,5,5,218,221,5,5,6,228,5,5,7,228,5,5,8,228,5,5,9,228,5,5,243,248,5,5,225,161,5,5,186,159,5,5,235,170,5,5,23,177,5,5,24,177,5,5,236,170,5,5,25,177,5,5,26,177,5,5,27,177,5,5,28,177,5,5,35,184,5,5,36,184,5,5,37,184,5,5,38,184,5,5,39,184,5,5,40,184,5,5,41,184,5,5,42,184,5,5,43,184,5,5,44,184,5,5,45,184,5,5,46,184,5,5,47,184,5,5,48,184,5,5,49,184,5,5,50,184,5,5,51,184,5,5,52,184,5,5,53,184,5,5,54,184,5,5,55,184,5,5,56,184,5,5,57,184,5,5,58,184,5,5,59,184,5,5,60,184,5,5,61,184,5,5,206,191,5,5,207,191,5,5,208,191,5,5,209,191,5,5,210,191,5,5,211,191,5,5,212,191,5,5,213,191,5,5,214,191,5,5,215,191,5,5,216,191,5,5,217,191,5,5,218,191,5,5,219,191,5,5,220,191,5,5,221,191,5,5,222,191,5,5,223,191,5,5,224,191,5,5,225,191,5,5,226,191,5,5,227,191,5,5,228,191,5,5,229,191,5,5,230,191,5,5,231,191,5,5,232,191,5,5,233,191,5,5,234,191,5,5,235,191,5,5,236,191,5,5,237,191,5,5,238,191,5,5,239,191,5,5,240,191,5,5,241,191,5,5,242,191,5,5,243,191,5,5,244,191,5,5,247,191,5,5,245,191,5,5,3,200,5,5,4,200,5,5,5,200,5,5,6,200,5,5,7,200,5,5,8,200,5,5,9,200,5,5,10,200,5,5,11,200,5,5,12,200,5,5,13,200,5,5,14,200,5,5,15,200,5,5,16,200,5,5,17,200,5,5,18,200,5,5,19,200,5,5,20,200,5,5,21,200,5,5,22,200,5,5,23,200,5,5,24,200,5,5,25,200,5,5,26,200,5,5,27,200,5,5,181,207,5,5,182,207,5,5,183,207,5,5,184,207,5,5,185,207,5,5,186,207,5,5,187,207,5,5,188,207,5,5,189,207,5,5,190,207,5,5,191,207,5,5,192,207,5,5,193,207,5,5,28,200,5,5,194,207,5,5,195,207,5,5,196,207,5,5,197,207,5,5,198,207,5,5,199,207,5,5,200,207,5,5,201,207,5,5,202,207,5,5,203,207,5,5,30,215,5,5,204,207,5,5,205,207,5,5,206,207,5,5,220,221,5,5,31,215,5,5,32,215,5,5,33,215,5,5,34,215,5,5,35,215,5,5,36,215,5,5,37,215,5,5,38,215,5,5,39,215,5,5,40,215,5,5,41,215,5,5,42,215,5,5,43,215,5,5,44,215,5,5,45,215,5,5,46,215,5,5,47,215,5,5,48,215,5,5,49,215,5,5,50,215,5,5,51,215,5,5,52,215,5,5,53,215,5,5,54,215,5,5,55,215,5,5,56,215,5,5,30,200,5,5,57,215,5,5,58,215,5,5,59,215,5,5,221,221,5,5,222,221,5,5,223,221,5,5,224,221,5,5,225,221,5,5,226,221,5,5,227,221,5,5,228,221,5,5,229,221,5,5,230,221,5,5,231,221,5,5,232,221,5,5,233,221,5,5,234,221,5,5,235,221,5,5,236,221,5,5,237,221,5,5,238,221,5,5,239,221,5,5,240,221,5,5,241,221,5,5,61,215,5,5,242,221,5,5,243,221,5,5,244,221,5,5,12,228,5,5,13,228,5,5,14,228,5,5,15,228,5,5,16,228,5,5,17,228,5,5,18,228,5,5,19,228,5,5,20,228,5,5,21,228,5,5,22,228,5,5,23,228,5,5,24,228,5,5,25,228,5,5,26,228,5,5,27,228,5,5,28,228,5,5,29,228,5,5,30,228,5,5,31,228,5,5,32,228,5,5,59,233,5,5,33,228,5,5,60,233,5,5,61,233,5,5,62,233,5,5,63,233,5,5,64,233,5,5,65,233,5,5,66,233,5,5,67,233,5,5,68,233,5,5,69,233,5,5,70,233,5,5,71,233,5,5,72,233,5,5,73,233,5,5,74,233,5,5,75,233,5,5,76,233,5,5,35,237,5,5,36,237,5,5,37,237,5,5,38,237,5,5,39,237,5,5,40,237,5,5,41,237,5,5,42,237,5,5,43,237,5,5,44,237,5,5,45,237,5,5,46,237,5,5,79,233,5,5,47,237,5,5,77,233,5,5,48,237,5,5,119,240,5,5,120,240,5,5,121,240,5,5,122,240,5,5,123,240,5,5,124,240,5,5,125,240,5,5,126,240,5,5,127,240,5,5,128,240,5,5,129,240,5,5,130,240,5,5,131,240,5,5,66,243,5,5,67,243,5,5,68,243,5,5,69,243,5,5,70,243,5,5,71,243,5,5,96,245,5,5,97,245,5,5,98,245,5,5,99,245,5,5,100,245,5,5,101,245,5,5,239,246,5,5,240,246,5,5,241,246,5,5,242,246,5,5,27,248,5,5,28,248,5,5,244,248,5,5,29,248,5,5,245,248,5,5,148,249,5,5,149,249,5,5,150,249,5,5,151,249,5,5,152,249,5,5,41,250,5,5,226,161,5,5,227,161,5,5,228,161,5,5,31,177,5,5,248,191,5,5,31,200,5,5,32,200,5,5,207,207,5,5,51,237,5,5,132,240,5,5,133,240,5,5,30,248,5,5,153,249,5,5,122,165,5,5,32,177,5,5,65,184,5,5,66,184,5,5,249,191,5,5,250,191,5,5,251,191,5,5,252,191,5,5,253,191,5,5,254,191,5,5,34,200,5,5,72,190,5,5,35,200,5,5,36,200,5,5,33,200,5,5,37,200,5,5,208,207,5,5,209,207,5,5,62,215,5,5,63,215,5,5,64,215,5,5,65,215,5,5,66,215,5,5,248,221,5,5,249,221,5,5,250,221,5,5,251,221,5,5,38,228,5,5,39,228,5,5,40,228,5,5,253,221,5,5,41,228,5,5,82,233,5,5,83,233,5,5,84,233,5,5,85,233,5,5,86,233,5,5,52,237,5,5,53,237,5,5,54,237,5,5,55,237,5,5,134,240,5,5,135,240,5,5,136,240,5,5,137,240,5,5,138,240,5,5,72,243,5,5,73,243,5,5,74,243,5,5,102,245,5,5,103,245,5,5,243,246,5,5,244,246,5,5,154,249,5,5,111,158,5,5,229,161,5,5,123,165,5,5,237,170,5,5,238,170,5,5,16,176,5,5,33,177,5,5,34,177,5,5,35,177,5,5,67,184,5,5,2,192,5,5,38,200,5,5,39,200,5,5,211,207,5,5,67,215,5,5,254,221,5,5,255,221,5,5,124,165,5,5,36,177,5,5,37,177,5,5,3,192,5,5,4,192,5,5,5,192,5,5,6,192,5,5,7,192,5,5,40,200,5,5,41,200,5,5,212,207,5,5,42,200,5,5,43,200,5,5,213,207,5,5,214,207,5,5,215,207,5,5,216,207,5,5,217,207,5,5,218,207,5,5,219,207,5,5,220,207,5,5,221,207,5,5,68,215,5,5,69,215,5,5,70,215,5,5,71,215,5,5,2,222,5,5,3,222,5,5,4,222,5,5,5,222,5,5,6,222,5,5,43,228,5,5,87,233,5,5,88,233,5,5,57,237,5,5,139,240,5,5,140,240,5,5,75,243,5,5,76,243,5,5,77,243,5,5,104,245,5,5,246,246,5,5,247,246,5,5,31,248,5,5,32,248,5,5,155,249,5,5,127,165,5,5,128,165,5,5,38,177,5,5,39,177,5,5,40,177,5,5,41,177,5,5,42,177,5,5,43,177,5,5,44,177,5,5,68,184,5,5,69,184,5,5,70,184,5,5,71,184,5,5,72,184,5,5,73,184,5,5,74,184,5,5,75,184,5,5,76,184,5,5,77,184,5,5,78,184,5,5,79,184,5,5,80,184,5,5,81,184,5,5,82,184,5,5,83,184,5,5,84,184,5,5,85,184,5,5,9,192,5,5,10,192,5,5,11,192,5,5,12,192,5,5,13,192,5,5,14,192,5,5,15,192,5,5,16,192,5,5,17,192,5,5,18,192,5,5,19,192,5,5,20,192,5,5,21,192,5,5,22,192,5,5,23,192,5,5,24,192,5,5,25,192,5,5,26,192,5,5,27,192,5,5,28,192,5,5,29,192,5,5,30,192,5,5,31,192,5,5,32,192,5,5,33,192,5,5,44,200,5,5,45,200,5,5,46,200,5,5,47,200,5,5,48,200,5,5,49,200,5,5,50,200,5,5,51,200,5,5,52,200,5,5,53,200,5,5,222,207,5,5,223,207,5,5,54,200,5,5,55,200,5,5,56,200,5,5,57,200,5,5,58,200,5,5,59,200,5,5,60,200,5,5,61,200,5,5,62,200,5,5,63,200,5,5,64,200,5,5,65,200,5,5,66,200,5,5,67,200,5,5,68,200,5,5,69,200,5,5,70,200,5,5,71,200,5,5,72,200,5,5,73,200,5,5,74,200,5,5,75,200,5,5,76,200,5,5,77,200,5,5,78,200,5,5,79,200,5,5,80,200,5,5,81,200,5,5,82,200,5,5,83,200,5,5,84,200,5,5,85,200,5,5,86,200,5,5,224,207,5,5,225,207,5,5,226,207,5,5,227,207,5,5,228,207,5,5,229,207,5,5,230,207,5,5,231,207,5,5,232,207,5,5,233,207,5,5,234,207,5,5,235,207,5,5,236,207,5,5,237,207,5,5,238,207,5,5,239,207,5,5,240,207,5,5,241,207,5,5,242,207,5,5,243,207,5,5,244,207,5,5,245,207,5,5,246,207,5,5,247,207,5,5,248,207,5,5,249,207,5,5,250,207,5,5,251,207,5,5,252,207,5,5,253,207,5,5,254,207,5,5,255,207,5,5,2,208,5,5,3,208,5,5,4,208,5,5,5,208,5,5,6,208,5,5,7,208,5,5,8,208,5,5,9,208,5,5,10,208,5,5,11,208,5,5,72,215,5,5,73,215,5,5,74,215,5,5,75,215,5,5,76,215,5,5,77,215,5,5,78,215,5,5,79,215,5,5,80,215,5,5,81,215,5,5,7,222,5,5,82,215,5,5,83,215,5,5,84,215,5,5,85,215,5,5,86,215,5,5,87,215,5,5,88,215,5,5,89,215,5,5,90,215,5,5,91,215,5,5,12,208,5,5,92,215,5,5,93,215,5,5,94,215,5,5,95,215,5,5,96,215,5,5,97,215,5,5,98,215,5,5,99,215,5,5,100,215,5,5,101,215,5,5,102,215,5,5,103,215,5,5,104,215,5,5,105,215,5,5,8,222,5,5,9,222,5,5,10,222,5,5,11,222,5,5,12,222,5,5,13,222,5,5,14,222,5,5,15,222,5,5,16,222,5,5,17,222,5,5,18,222,5,5,19,222,5,5,20,222,5,5,21,222,5,5,22,222,5,5,23,222,5,5,24,222,5,5,25,222,5,5,26,222,5,5,27,222,5,5,28,222,5,5,29,222,5,5,30,222,5,5,31,222,5,5,32,222,5,5,33,222,5,5,34,222,5,5,35,222,5,5,36,222,5,5,37,222,5,5,38,222,5,5,39,222,5,5,40,222,5,5,41,222,5,5,42,222,5,5,43,222,5,5,44,222,5,5,45,222,5,5,46,222,5,5,47,222,5,5,48,222,5,5,49,222,5,5,50,222,5,5,51,222,5,5,58,222,5,5,45,228,5,5,46,228,5,5,47,228,5,5,48,228,5,5,49,228,5,5,50,228,5,5,51,228,5,5,52,228,5,5,53,228,5,5,54,228,5,5,55,228,5,5,56,228,5,5,57,228,5,5,52,222,5,5,58,228,5,5,59,228,5,5,60,228,5,5,61,228,5,5,62,228,5,5,63,228,5,5,64,228,5,5,65,228,5,5,66,228,5,5,67,228,5,5,68,228,5,5,69,228,5,5,70,228,5,5,71,228,5,5,59,222,5,5,72,228,5,5,73,228,5,5,74,228,5,5,75,228,5,5,76,228,5,5,77,228,5,5,78,228,5,5,79,228,5,5,80,228,5,5,81,228,5,5,82,228,5,5,90,233,5,5,91,233,5,5,92,233,5,5,93,233,5,5,94,233,5,5,95,233,5,5,96,233,5,5,97,233,5,5,98,233,5,5,99,233,5,5,100,233,5,5,101,233,5,5,102,233,5,5,103,233,5,5,104,233,5,5,105,233,5,5,85,228,5,5,106,233,5,5,107,233,5,5,108,233,5,5,109,233,5,5,110,233,5,5,111,233,5,5,112,233,5,5,113,233,5,5,114,233,5,5,115,233,5,5,116,233,5,5,117,233,5,5,118,233,5,5,119,233,5,5,59,237,5,5,60,237,5,5,61,237,5,5,62,237,5,5,63,237,5,5,64,237,5,5,65,237,5,5,66,237,5,5,67,237,5,5,68,237,5,5,69,237,5,5,70,237,5,5,71,237,5,5,72,237,5,5,73,237,5,5,74,237,5,5,75,237,5,5,76,237,5,5,77,237,5,5,78,237,5,5,79,237,5,5,80,237,5,5,81,237,5,5,82,237,5,5,83,237,5,5,84,237,5,5,85,237,5,5,86,237,5,5,141,240,5,5,142,240,5,5,143,240,5,5,144,240,5,5,145,240,5,5,146,240,5,5,105,245,5,5,147,240,5,5,88,237,5,5,148,240,5,5,149,240,5,5,150,240,5,5,151,240,5,5,152,240,5,5,78,243,5,5,153,240,5,5,154,240,5,5,155,240,5,5,156,240,5,5,157,240,5,5,158,240,5,5,159,240,5,5,160,240,5,5,161,240,5,5,162,240,5,5,163,240,5,5,164,240,5,5,165,240,5,5,166,240,5,5,167,240,5,5,79,243,5,5,80,243,5,5,81,243,5,5,82,243,5,5,83,243,5,5,84,243,5,5,85,243,5,5,86,243,5,5,87,243,5,5,88,243,5,5,89,243,5,5,90,243,5,5,91,243,5,5,92,243,5,5,93,243,5,5,94,243,5,5,95,243,5,5,96,243,5,5,97,243,5,5,98,243,5,5,99,243,5,5,100,243,5,5,106,245,5,5,107,245,5,5,108,245,5,5,109,245,5,5,110,245,5,5,111,245,5,5,112,245,5,5,113,245,5,5,114,245,5,5,115,245,5,5,116,245,5,5,248,246,5,5,249,246,5,5,250,246,5,5,251,246,5,5,252,246,5,5,253,246,5,5,254,246,5,5,255,246,5,5,4,247,5,5,33,248,5,5,34,248,5,5,35,248,5,5,36,248,5,5,37,248,5,5,38,248,5,5,39,248,5,5,40,248,5,5,41,248,5,5,42,248,5,5,247,248,5,5,248,248,5,5,249,248,5,5,250,248,5,5,251,248,5,5,252,248,5,5,156,249,5,5,157,249,5,5,158,249,5,5,239,249,5,5,240,249,5,5,42,250,5,5,43,250,5,5,44,250,5,5,125,250,5,5,47,157,5,5,112,158,5,5,113,158,5,5,114,158,5,5,115,158,5,5,116,158,5,5,187,159,5,5,188,159,5,5,189,159,5,5,190,159,5,5,191,159,5,5,192,159,5,5,193,159,5,5,194,159,5,5,195,159,5,5,196,159,5,5,197,159,5,5,198,159,5,5,230,161,5,5,231,161,5,5,232,161,5,5,233,161,5,5,234,161,5,5,235,161,5,5,236,161,5,5,237,161,5,5,238,161,5,5,239,161,5,5,240,161,5,5,241,161,5,5,242,161,5,5,243,161,5,5,244,161,5,5,129,165,5,5,130,165,5,5,131,165,5,5,132,165,5,5,133,165,5,5,134,165,5,5,135,165,5,5,136,165,5,5,137,165,5,5,138,165,5,5,139,165,5,5,140,165,5,5,141,165,5,5,142,165,5,5,143,165,5,5,144,165,5,5,145,165,5,5,146,165,5,5,239,170,5,5,240,170,5,5,241,170,5,5,242,170,5,5,243,170,5,5,244,170,5,5,245,170,5,5,246,170,5,5,247,170,5,5,248,170,5,5,249,170,5,5,250,170,5,5,251,170,5,5,252,170,5,5,253,170,5,5,254,170,5,5,255,170,5,5,2,171,5,5,3,171,5,5,4,171,5,5,5,171,5,5,6,171,5,5,7,171,5,5,46,177,5,5,47,177,5,5,48,177,5,5,49,177,5,5,50,177,5,5,51,177,5,5,52,177,5,5,53,177,5,5,54,177,5,5,55,177,5,5,56,177,5,5,57,177,5,5,58,177,5,5,87,184,5,5,88,184,5,5,89,184,5,5,90,184,5,5,91,184,5,5,92,184,5,5,93,184,5,5,94,184,5,5,95,184,5,5,96,184,5,5,97,184,5,5,98,184,5,5,99,184,5,5,100,184,5,5,101,184,5,5,102,184,5,5,103,184,5,5,104,184,5,5,105,184,5,5,106,184,5,5,37,192,5,5,38,192,5,5,39,192,5,5,40,192,5,5,41,192,5,5,42,192,5,5,43,192,5,5,44,192,5,5,45,192,5,5,46,192,5,5,47,192,5,5,48,192,5,5,49,192,5,5,50,192,5,5,51,192,5,5,52,192,5,5,53,192,5,5,54,192,5,5,55,192,5,5,56,192,5,5,90,200,5,5,91,200,5,5,92,200,5,5,93,200,5,5,94,200,5,5,95,200,5,5,96,200,5,5,97,200,5,5,98,200,5,5,14,208,5,5,15,208,5,5,16,208,5,5,17,208,5,5,18,208,5,5,109,215,5,5,110,215,5,5,111,215,5,5,112,215,5,5,113,215,5,5,114,215,5,5,60,222,5,5,61,222,5,5,62,222,5,5,171,240,5,5,147,165,5,5,107,184,5,5,57,192,5,5,58,192,5,5,59,192,5,5,19,208,5,5,115,215,5,5,63,222,5,5,124,233,5,5,125,233,5,5,126,233,5,5,89,237,5,5,172,240,5,5,5,247,5,5,43,248,5,5,148,165,5,5,108,184,5,5,109,184,5,5,60,192,5,5,20,208,5,5,21,208,5,5,64,222,5,5,65,222,5,5,66,222,5,5,127,233,5,5,90,237,5,5,106,243,5,5,159,249,5,5,45,250,5,5,97,250,5,5,149,165,5,5,8,171,5,5,110,184,5,5,61,192,5,5,62,192,5,5,63,192,5,5,64,192,5,5,65,192,5,5,66,192,5,5,99,200,5,5,100,200,5,5,101,200,5,5,102,200,5,5,23,208,5,5,24,208,5,5,25,208,5,5,26,208,5,5,27,208,5,5,116,215,5,5,117,215,5,5,118,215,5,5,119,215,5,5,86,228,5,5,69,222,5,5,87,228,5,5,88,228,5,5,128,233,5,5,129,233,5,5,130,233,5,5,131,233,5,5,132,233,5,5,91,237,5,5,92,237,5,5,174,240,5,5,173,240,5,5,150,165,5,5,111,184,5,5,112,184,5,5,113,184,5,5,69,192,5,5,70,192,5,5,104,200,5,5,105,200,5,5,106,200,5,5,107,200,5,5,108,200,5,5,109,200,5,5,28,208,5,5,29,208,5,5,30,208,5,5,31,208,5,5,32,208,5,5,33,208,5,5,34,208,5,5,120,215,5,5,121,215,5,5,122,215,5,5,70,222,5,5,71,222,5,5,91,228,5,5,92,228,5,5,93,228,5,5,94,228,5,5,133,233,5,5,134,233,5,5,135,233,5,5,94,237,5,5,95,237,5,5,96,237,5,5,175,240,5,5,161,249,5,5,46,250,5,5,151,165,5,5,59,177,5,5,60,177,5,5,61,177,5,5,114,184,5,5,115,184,5,5,116,184,5,5,117,184,5,5,71,192,5,5,72,192,5,5,73,192,5,5,74,192,5,5,75,192,5,5,76,192,5,5,77,192,5,5,78,192,5,5,79,192,5,5,80,192,5,5,111,200,5,5,112,200,5,5,113,200,5,5,36,208,5,5,114,200,5,5,115,200,5,5,116,200,5,5,117,200,5,5,118,200,5,5,119,200,5,5,120,200,5,5,121,200,5,5,122,200,5,5,123,200,5,5,124,200,5,5,125,200,5,5,126,200,5,5,127,200,5,5,128,200,5,5,37,208,5,5,38,208,5,5,39,208,5,5,40,208,5,5,41,208,5,5,42,208,5,5,43,208,5,5,44,208,5,5,45,208,5,5,46,208,5,5,47,208,5,5,48,208,5,5,49,208,5,5,123,215,5,5,124,215,5,5,125,215,5,5,126,215,5,5,127,215,5,5,128,215,5,5,129,215,5,5,130,215,5,5,131,215,5,5,132,215,5,5,72,222,5,5,73,222,5,5,74,222,5,5,75,222,5,5,76,222,5,5,77,222,5,5,78,222,5,5,79,222,5,5,80,222,5,5,81,222,5,5,82,222,5,5,83,222,5,5,84,222,5,5,85,222,5,5,86,222,5,5,87,222,5,5,88,222,5,5,89,222,5,5,90,222,5,5,91,222,5,5,93,222,5,5,95,228,5,5,96,228,5,5,97,228,5,5,98,228,5,5,99,228,5,5,100,228,5,5,101,228,5,5,102,228,5,5,136,233,5,5,137,233,5,5,138,233,5,5,139,233,5,5,140,233,5,5,141,233,5,5,142,233,5,5,143,233,5,5,97,237,5,5,98,237,5,5,99,237,5,5,141,235,5,5,100,237,5,5,101,237,5,5,102,237,5,5,103,237,5,5,176,240,5,5,177,240,5,5,178,240,5,5,179,240,5,5,180,240,5,5,181,240,5,5,182,240,5,5,108,243,5,5,109,243,5,5,110,243,5,5,118,245,5,5,119,245,5,5,120,245,5,5,121,245,5,5,122,245,5,5,6,247,5,5,7,247,5,5,8,247,5,5,9,247,5,5,44,248,5,5,45,248,5,5,253,248,5,5,162,249,5,5,117,158,5,5,245,161,5,5,246,161,5,5,247,161,5,5,152,165,5,5,153,165,5,5,9,171,5,5,10,171,5,5,11,171,5,5,12,171,5,5,13,171,5,5,14,171,5,5,15,171,5,5,16,171,5,5,17,171,5,5,18,171,5,5,19,171,5,5,20,171,5,5,21,171,5,5,62,177,5,5,63,177,5,5,64,177,5,5,65,177,5,5,66,177,5,5,67,177,5,5,68,177,5,5,69,177,5,5,70,177,5,5,71,177,5,5,72,177,5,5,73,177,5,5,119,184,5,5,120,184,5,5,121,184,5,5,122,184,5,5,123,184,5,5,124,184,5,5,125,184,5,5,126,184,5,5,127,184,5,5,128,184,5,5,129,184,5,5,81,192,5,5,82,192,5,5,83,192,5,5,84,192,5,5,131,200,5,5,132,200,5,5,133,200,5,5,134,200,5,5,135,200,5,5,136,200,5,5,137,200,5,5,138,200,5,5,139,200,5,5,140,200,5,5,141,200,5,5,53,208,5,5,54,208,5,5,136,215,5,5,137,215,5,5,138,215,5,5,139,215,5,5,94,222,5,5,104,228,5,5,105,228,5,5,106,228,5,5,107,228,5,5,145,233,5,5,146,233,5,5,123,245,5,5,154,165,5,5,85,192,5,5,86,192,5,5,87,192,5,5,55,208,5,5,56,208,5,5,57,208,5,5,140,215,5,5,108,228,5,5,95,222,5,5,109,228,5,5,147,233,5,5,155,165,5,5,248,161,5,5,74,177,5,5,75,177,5,5,76,177,5,5,77,177,5,5,130,184,5,5,131,184,5,5,132,184,5,5,88,192,5,5,89,192,5,5,90,192,5,5,91,192,5,5,92,192,5,5,93,192,5,5,94,192,5,5,142,200,5,5,143,200,5,5,144,200,5,5,145,200,5,5,146,200,5,5,147,200,5,5,148,200,5,5,149,200,5,5,150,200,5,5,151,200,5,5,152,200,5,5,153,200,5,5,58,208,5,5,59,208,5,5,60,208,5,5,61,208,5,5,62,208,5,5,63,208,5,5,64,208,5,5,65,208,5,5,66,208,5,5,141,215,5,5,142,215,5,5,143,215,5,5,144,215,5,5,145,215,5,5,146,215,5,5,96,222,5,5,97,222,5,5,98,222,5,5,99,222,5,5,100,222,5,5,101,222,5,5,102,222,5,5,103,222,5,5,104,222,5,5,105,222,5,5,110,228,5,5,111,228,5,5,112,228,5,5,148,233,5,5,104,237,5,5,183,240,5,5,184,240,5,5,185,240,5,5,186,240,5,5,111,243,5,5,124,245,5,5,125,245,5,5,46,248,5,5,242,249,5,5,156,165,5,5,79,177,5,5,134,184,5,5,135,184,5,5,136,184,5,5,137,184,5,5,97,192,5,5,98,192,5,5,99,192,5,5,69,208,5,5,100,192,5,5,101,192,5,5,102,192,5,5,103,192,5,5,104,192,5,5,105,192,5,5,106,192,5,5,107,192,5,5,156,200,5,5,157,200,5,5,158,200,5,5,159,200,5,5,160,200,5,5,161,200,5,5,162,200,5,5,163,200,5,5,164,200,5,5,165,200,5,5,166,200,5,5,68,208,5,5,167,200,5,5,168,200,5,5,169,200,5,5,170,200,5,5,171,200,5,5,172,200,5,5,173,200,5,5,174,200,5,5,175,200,5,5,176,200,5,5,177,200,5,5,178,200,5,5,179,200,5,5,180,200,5,5,70,208,5,5,71,208,5,5,72,208,5,5,73,208,5,5,74,208,5,5,75,208,5,5,76,208,5,5,77,208,5,5,78,208,5,5,79,208,5,5,80,208,5,5,81,208,5,5,82,208,5,5,83,208,5,5,84,208,5,5,85,208,5,5,86,208,5,5,87,208,5,5,88,208,5,5,89,208,5,5,90,208,5,5,91,208,5,5,181,200,5,5,92,208,5,5,93,208,5,5,94,208,5,5,95,208,5,5,96,208,5,5,97,208,5,5,147,215,5,5,148,215,5,5,149,215,5,5,150,215,5,5,151,215,5,5,152,215,5,5,153,215,5,5,154,215,5,5,155,215,5,5,156,215,5,5,157,215,5,5,158,215,5,5,159,215,5,5,160,215,5,5,161,215,5,5,162,215,5,5,163,215,5,5,164,215,5,5,165,215,5,5,106,222,5,5,107,222,5,5,108,222,5,5,109,222,5,5,110,222,5,5,111,222,5,5,112,222,5,5,113,222,5,5,114,222,5,5,115,222,5,5,116,222,5,5,117,222,5,5,118,222,5,5,119,222,5,5,120,222,5,5,121,222,5,5,122,222,5,5,123,222,5,5,124,222,5,5,125,222,5,5,126,222,5,5,127,222,5,5,128,222,5,5,129,222,5,5,130,222,5,5,131,222,5,5,132,222,5,5,133,222,5,5,144,222,5,5,134,222,5,5,135,222,5,5,136,222,5,5,137,222,5,5,114,228,5,5,115,228,5,5,116,228,5,5,117,228,5,5,118,228,5,5,119,228,5,5,120,228,5,5,145,222,5,5,121,228,5,5,122,228,5,5,138,222,5,5,123,228,5,5,124,228,5,5,125,228,5,5,126,228,5,5,127,228,5,5,128,228,5,5,129,228,5,5,130,228,5,5,131,228,5,5,132,228,5,5,133,228,5,5,149,233,5,5,150,233,5,5,151,233,5,5,152,233,5,5,153,233,5,5,154,233,5,5,155,233,5,5,156,233,5,5,157,233,5,5,158,233,5,5,159,233,5,5,160,233,5,5,161,233,5,5,162,233,5,5,105,237,5,5,106,237,5,5,107,237,5,5,108,237,5,5,109,237,5,5,110,237,5,5,111,237,5,5,112,237,5,5,113,237,5,5,114,237,5,5,115,237,5,5,116,237,5,5,117,237,5,5,118,237,5,5,119,237,5,5,120,237,5,5,121,237,5,5,122,237,5,5,123,237,5,5,124,237,5,5,187,240,5,5,129,237,5,5,188,240,5,5,189,240,5,5,190,240,5,5,191,240,5,5,125,237,5,5,192,240,5,5,193,240,5,5,194,240,5,5,195,240,5,5,196,240,5,5,197,240,5,5,198,240,5,5,199,240,5,5,200,240,5,5,201,240,5,5,202,240,5,5,203,240,5,5,204,240,5,5,205,240,5,5,206,240,5,5,207,240,5,5,208,240,5,5,126,237,5,5,112,243,5,5,113,243,5,5,114,243,5,5,115,243,5,5,116,243,5,5,117,243,5,5,213,240,5,5,118,243,5,5,119,243,5,5,126,245,5,5,127,245,5,5,128,245,5,5,129,245,5,5,130,245,5,5,131,245,5,5,10,247,5,5,11,247,5,5,12,247,5,5,13,247,5,5,14,247,5,5,15,247,5,5,16,247,5,5,17,247,5,5,47,248,5,5,48,248,5,5,18,247,5,5,49,248,5,5,50,248,5,5,254,248,5,5,255,248,5,5,2,249,5,5,3,249,5,5,164,249,5,5,165,249,5,5,166,249,5,5,167,249,5,5,168,249,5,5,243,249,5,5,244,249,5,5,98,250,5,5,47,250,5,5,48,250,5,5,158,165,5,5,139,184,5,5,108,192,5,5,109,192,5,5,110,192,5,5,186,200,5,5,101,208,5,5,102,208,5,5,168,215,5,5,169,215,5,5,170,215,5,5,146,222,5,5,147,222,5,5,148,222,5,5,149,222,5,5,150,222,5,5,151,222,5,5,152,222,5,5,136,228,5,5,137,228,5,5,130,237,5,5,131,237,5,5,132,237,5,5,214,240,5,5,215,240,5,5,216,240,5,5,217,240,5,5,121,243,5,5,134,245,5,5,4,249,5,5,49,250,5,5,159,165,5,5,22,171,5,5,80,177,5,5,81,177,5,5,140,184,5,5,141,184,5,5,142,184,5,5,143,184,5,5,144,184,5,5,145,184,5,5,146,184,5,5,147,184,5,5,113,192,5,5,114,192,5,5,115,192,5,5,116,192,5,5,117,192,5,5,118,192,5,5,119,192,5,5,120,192,5,5,121,192,5,5,122,192,5,5,123,192,5,5,124,192,5,5,125,192,5,5,126,192,5,5,187,200,5,5,188,200,5,5,189,200,5,5,190,200,5,5,191,200,5,5,192,200,5,5,193,200,5,5,194,200,5,5,195,200,5,5,104,208,5,5,196,200,5,5,197,200,5,5,198,200,5,5,199,200,5,5,200,200,5,5,201,200,5,5,202,200,5,5,203,200,5,5,204,200,5,5,205,200,5,5,206,200,5,5,207,200,5,5,208,200,5,5,209,200,5,5,210,200,5,5,211,200,5,5,105,208,5,5,106,208,5,5,107,208,5,5,108,208,5,5,109,208,5,5,110,208,5,5,111,208,5,5,112,208,5,5,113,208,5,5,114,208,5,5,115,208,5,5,116,208,5,5,117,208,5,5,118,208,5,5,119,208,5,5,171,215,5,5,172,215,5,5,173,215,5,5,174,215,5,5,175,215,5,5,176,215,5,5,177,215,5,5,178,215,5,5,179,215,5,5,154,222,5,5,155,222,5,5,156,222,5,5,157,222,5,5,158,222,5,5,159,222,5,5,160,222,5,5,161,222,5,5,162,222,5,5,163,222,5,5,164,222,5,5,165,222,5,5,166,222,5,5,167,222,5,5,168,222,5,5,169,222,5,5,170,222,5,5,171,222,5,5,172,222,5,5,173,222,5,5,174,222,5,5,175,222,5,5,176,222,5,5,138,228,5,5,139,228,5,5,140,228,5,5,141,228,5,5,142,228,5,5,143,228,5,5,144,228,5,5,145,228,5,5,146,228,5,5,147,228,5,5,148,228,5,5,149,228,5,5,150,228,5,5,151,228,5,5,152,228,5,5,153,228,5,5,166,233,5,5,167,233,5,5,168,233,5,5,169,233,5,5,170,233,5,5,171,233,5,5,172,233,5,5,173,233,5,5,174,233,5,5,134,237,5,5,135,237,5,5,136,237,5,5,137,237,5,5,138,237,5,5,139,237,5,5,140,237,5,5,218,240,5,5,219,240,5,5,220,240,5,5,221,240,5,5,222,240,5,5,223,240,5,5,224,240,5,5,225,240,5,5,122,243,5,5,123,243,5,5,124,243,5,5,125,243,5,5,126,243,5,5,127,243,5,5,135,245,5,5,136,245,5,5,137,245,5,5,138,245,5,5,139,245,5,5,19,247,5,5,20,247,5,5,21,247,5,5,52,248,5,5,53,248,5,5,50,250,5,5,118,158,5,5,199,159,5,5,249,161,5,5,160,165,5,5,161,165,5,5,162,165,5,5,23,171,5,5,24,171,5,5,25,171,5,5,26,171,5,5,27,171,5,5,82,177,5,5,83,177,5,5,84,177,5,5,85,177,5,5,86,177,5,5,87,177,5,5,88,177,5,5,89,177,5,5,90,177,5,5,91,177,5,5,92,177,5,5,148,184,5,5,149,184,5,5,150,184,5,5,151,184,5,5,152,184,5,5,153,184,5,5,154,184,5,5,155,184,5,5,133,192,5,5,134,192,5,5,135,192,5,5,215,200,5,5,216,200,5,5,217,200,5,5,218,200,5,5,219,200,5,5,220,200,5,5,221,200,5,5,222,200,5,5,120,208,5,5,121,208,5,5,122,208,5,5,123,208,5,5,124,208,5,5,125,208,5,5,182,215,5,5,183,215,5,5,184,215,5,5,180,222,5,5,155,228,5,5,156,228,5,5,163,165,5,5,223,200,5,5,224,200,5,5,126,208,5,5,127,208,5,5,128,208,5,5,185,215,5,5,186,215,5,5,187,215,5,5,181,222,5,5,157,228,5,5,158,228,5,5,159,228,5,5,160,228,5,5,161,228,5,5,162,228,5,5,177,233,5,5,143,237,5,5,226,240,5,5,128,243,5,5,140,245,5,5,164,165,5,5,156,184,5,5,129,208,5,5,182,222,5,5,227,240,5,5,165,165,5,5,120,158,5,5,200,159,5,5,250,161,5,5,251,161,5,5,252,161,5,5,253,161,5,5,254,161,5,5,255,161,5,5,167,165,5,5,168,165,5,5,169,165,5,5,170,165,5,5,171,165,5,5,172,165,5,5,173,165,5,5,174,165,5,5,175,165,5,5,176,165,5,5,177,165,5,5,178,165,5,5,28,171,5,5,29,171,5,5,30,171,5,5,31,171,5,5,32,171,5,5,33,171,5,5,34,171,5,5,35,171,5,5,36,171,5,5,37,171,5,5,38,171,5,5,39,171,5,5,40,171,5,5,41,171,5,5,42,171,5,5,43,171,5,5,44,171,5,5,45,171,5,5,46,171,5,5,47,171,5,5,48,171,5,5,49,171,5,5,93,177,5,5,94,177,5,5,95,177,5,5,96,177,5,5,97,177,5,5,98,177,5,5,99,177,5,5,100,177,5,5,101,177,5,5,102,177,5,5,103,177,5,5,104,177,5,5,50,171,5,5,105,177,5,5,106,177,5,5,107,177,5,5,108,177,5,5,109,177,5,5,110,177,5,5,111,177,5,5,157,184,5,5,158,184,5,5,159,184,5,5,160,184,5,5,161,184,5,5,162,184,5,5,163,184,5,5,164,184,5,5,165,184,5,5,166,184,5,5,167,184,5,5,168,184,5,5,169,184,5,5,170,184,5,5,171,184,5,5,172,184,5,5,173,184,5,5,174,184,5,5,175,184,5,5,176,184,5,5,177,184,5,5,178,184,5,5,179,184,5,5,136,192,5,5,137,192,5,5,138,192,5,5,139,192,5,5,140,192,5,5,141,192,5,5,142,192,5,5,143,192,5,5,144,192,5,5,145,192,5,5,146,192,5,5,147,192,5,5,148,192,5,5,149,192,5,5,150,192,5,5,151,192,5,5,152,192,5,5,153,192,5,5,154,192,5,5,155,192,5,5,156,192,5,5,157,192,5,5,158,192,5,5,159,192,5,5,160,192,5,5,161,192,5,5,162,192,5,5,163,192,5,5,164,192,5,5,226,200,5,5,227,200,5,5,228,200,5,5,229,200,5,5,230,200,5,5,231,200,5,5,232,200,5,5,233,200,5,5,234,200,5,5,235,200,5,5,236,200,5,5,237,200,5,5,238,200,5,5,239,200,5,5,240,200,5,5,241,200,5,5,242,200,5,5,243,200,5,5,244,200,5,5,245,200,5,5,130,208,5,5,131,208,5,5,132,208,5,5,133,208,5,5,134,208,5,5,135,208,5,5,136,208,5,5,137,208,5,5,138,208,5,5,139,208,5,5,140,208,5,5,141,208,5,5,142,208,5,5,143,208,5,5,144,208,5,5,145,208,5,5,146,208,5,5,147,208,5,5,148,208,5,5,149,208,5,5,150,208,5,5,151,208,5,5,152,208,5,5,153,208,5,5,154,208,5,5,155,208,5,5,156,208,5,5,157,208,5,5,188,215,5,5,189,215,5,5,190,215,5,5,191,215,5,5,192,215,5,5,193,215,5,5,194,215,5,5,195,215,5,5,196,215,5,5,197,215,5,5,198,215,5,5,199,215,5,5,200,215,5,5,201,215,5,5,183,222,5,5,184,222,5,5,185,222,5,5,186,222,5,5,187,222,5,5,188,222,5,5,189,222,5,5,190,222,5,5,191,222,5,5,192,222,5,5,193,222,5,5,194,222,5,5,163,228,5,5,195,222,5,5,164,228,5,5,165,228,5,5,166,228,5,5,196,222,5,5,167,228,5,5,168,228,5,5,169,228,5,5,170,228,5,5,171,228,5,5,178,233,5,5,179,233,5,5,180,233,5,5,181,233,5,5,182,233,5,5,183,233,5,5,184,233,5,5,185,233,5,5,186,233,5,5,172,228,5,5,144,237,5,5,145,237,5,5,187,233,5,5,228,240,5,5,229,240,5,5,230,240,5,5,129,243,5,5,141,245,5,5,54,248,5,5,55,248,5,5,182,165,5,5,201,159,5,5,202,159,5,5,3,162,5,5,180,184,5,5,4,162,5,5,5,162,5,5,6,162,5,5,7,162,5,5,8,162,5,5,9,162,5,5,10,162,5,5,11,162,5,5,183,165,5,5,184,165,5,5,185,165,5,5,186,165,5,5,187,165,5,5,188,165,5,5,189,165,5,5,190,165,5,5,191,165,5,5,192,165,5,5,193,165,5,5,194,165,5,5,195,165,5,5,167,192,5,5,196,165,5,5,52,171,5,5,53,171,5,5,54,171,5,5,55,171,5,5,56,171,5,5,57,171,5,5,58,171,5,5,59,171,5,5,60,171,5,5,61,171,5,5,62,171,5,5,63,171,5,5,64,171,5,5,65,171,5,5,66,171,5,5,112,177,5,5,113,177,5,5,114,177,5,5,115,177,5,5,116,177,5,5,117,177,5,5,118,177,5,5,119,177,5,5,120,177,5,5,121,177,5,5,122,177,5,5,123,177,5,5,124,177,5,5,125,177,5,5,126,177,5,5,127,177,5,5,159,208,5,5,128,177,5,5,129,177,5,5,130,177,5,5,131,177,5,5,132,177,5,5,202,215,5,5,133,177,5,5,168,192,5,5,134,177,5,5,181,184,5,5,182,184,5,5,183,184,5,5,184,184,5,5,185,184,5,5,186,184,5,5,187,184,5,5,188,184,5,5,189,184,5,5,190,184,5,5,191,184,5,5,192,184,5,5,193,184,5,5,194,184,5,5,195,184,5,5,196,184,5,5,197,184,5,5,198,184,5,5,169,192,5,5,170,192,5,5,171,192,5,5,172,192,5,5,173,192,5,5,174,192,5,5,175,192,5,5,176,192,5,5,177,192,5,5,137,177,5,5,178,192,5,5,179,192,5,5,180,192,5,5,248,200,5,5,197,222,5,5,181,192,5,5,182,192,5,5,249,200,5,5,177,228,5,5,250,200,5,5,251,200,5,5,183,192,5,5,252,200,5,5,253,200,5,5,254,200,5,5,255,200,5,5,2,201,5,5,3,201,5,5,4,201,5,5,5,201,5,5,6,201,5,5,7,201,5,5,8,201,5,5,9,201,5,5,10,201,5,5,160,208,5,5,161,208,5,5,162,208,5,5,163,208,5,5,164,208,5,5,165,208,5,5,166,208,5,5,167,208,5,5,168,208,5,5,169,208,5,5,170,208,5,5,171,208,5,5,172,208,5,5,203,215,5,5,204,215,5,5,205,215,5,5,206,215,5,5,207,215,5,5,208,215,5,5,209,215,5,5,210,215,5,5,211,215,5,5,212,215,5,5,213,215,5,5,214,215,5,5,215,215,5,5,216,215,5,5,198,222,5,5,199,222,5,5,147,237,5,5,200,222,5,5,201,222,5,5,202,222,5,5,12,201,5,5,203,222,5,5,204,222,5,5,205,222,5,5,206,222,5,5,207,222,5,5,208,222,5,5,178,228,5,5,179,228,5,5,180,228,5,5,181,228,5,5,182,228,5,5,190,233,5,5,191,233,5,5,148,237,5,5,149,237,5,5,150,237,5,5,151,237,5,5,152,237,5,5,232,240,5,5,233,240,5,5,130,243,5,5,234,240,5,5,131,243,5,5,142,245,5,5,143,245,5,5,144,245,5,5,22,247,5,5,23,247,5,5,199,165,5,5,138,177,5,5,139,177,5,5,199,184,5,5,200,184,5,5,201,184,5,5,202,184,5,5,203,184,5,5,204,184,5,5,205,184,5,5,186,192,5,5,187,192,5,5,188,192,5,5,189,192,5,5,190,192,5,5,191,192,5,5,192,192,5,5,193,192,5,5,194,192,5,5,195,192,5,5,196,192,5,5,197,192,5,5,13,201,5,5,14,201,5,5,15,201,5,5,16,201,5,5,17,201,5,5,18,201,5,5,19,201,5,5,173,208,5,5,174,208,5,5,175,208,5,5,176,208,5,5,177,208,5,5,178,208,5,5,179,208,5,5,180,208,5,5,181,208,5,5,182,208,5,5,183,208,5,5,184,208,5,5,217,215,5,5,218,215,5,5,219,215,5,5,220,215,5,5,221,215,5,5,222,215,5,5,223,215,5,5,224,215,5,5,225,215,5,5,226,215,5,5,227,215,5,5,228,215,5,5,229,215,5,5,230,215,5,5,210,222,5,5,211,222,5,5,212,222,5,5,213,222,5,5,214,222,5,5,215,222,5,5,216,222,5,5,217,222,5,5,218,222,5,5,219,222,5,5,220,222,5,5,221,222,5,5,222,222,5,5,183,228,5,5,184,228,5,5,185,228,5,5,186,228,5,5,187,228,5,5,188,228,5,5,189,228,5,5,190,228,5,5,191,228,5,5,192,228,5,5,193,228,5,5,192,233,5,5,193,233,5,5,194,233,5,5,195,233,5,5,196,233,5,5,197,233,5,5,198,233,5,5,199,233,5,5,200,233,5,5,201,233,5,5,202,233,5,5,203,233,5,5,204,233,5,5,153,237,5,5,154,237,5,5,155,237,5,5,156,237,5,5,157,237,5,5,158,237,5,5,159,237,5,5,160,237,5,5,235,240,5,5,236,240,5,5,237,240,5,5,238,240,5,5,239,240,5,5,132,243,5,5,133,243,5,5,134,243,5,5,135,243,5,5,136,243,5,5,137,243,5,5,138,243,5,5,145,245,5,5,146,245,5,5,147,245,5,5,56,248,5,5,5,249,5,5,6,249,5,5,7,249,5,5,8,249,5,5,169,249,5,5,9,249,5,5,245,249,5,5,246,249,5,5,51,250,5,5,200,165,5,5,69,171,5,5,200,192,5,5,21,201,5,5,22,201,5,5,139,243,5,5,201,165,5,5,140,177,5,5,201,192,5,5,23,201,5,5,161,237,5,5,70,171,5,5,71,171,5,5,141,177,5,5,142,177,5,5,206,184,5,5,207,184,5,5,208,184,5,5,209,184,5,5,210,184,5,5,211,184,5,5,212,184,5,5,213,184,5,5,214,184,5,5,215,184,5,5,216,184,5,5,217,184,5,5,218,184,5,5,219,184,5,5,202,192,5,5,203,192,5,5,204,192,5,5,205,192,5,5,206,192,5,5,207,192,5,5,208,192,5,5,209,192,5,5,210,192,5,5,211,192,5,5,212,192,5,5,213,192,5,5,214,192,5,5,215,192,5,5,216,192,5,5,217,192,5,5,218,192,5,5,219,192,5,5,220,192,5,5,221,192,5,5,222,192,5,5,223,192,5,5,224,192,5,5,225,192,5,5,226,192,5,5,227,192,5,5,24,201,5,5,25,201,5,5,26,201,5,5,27,201,5,5,28,201,5,5,29,201,5,5,30,201,5,5,31,201,5,5,32,201,5,5,33,201,5,5,34,201,5,5,35,201,5,5,36,201,5,5,37,201,5,5,38,201,5,5,39,201,5,5,40,201,5,5,41,201,5,5,42,201,5,5,43,201,5,5,44,201,5,5,45,201,5,5,46,201,5,5,47,201,5,5,48,201,5,5,49,201,5,5,50,201,5,5,51,201,5,5,52,201,5,5,53,201,5,5,54,201,5,5,55,201,5,5,56,201,5,5,57,201,5,5,58,201,5,5,59,201,5,5,60,201,5,5,61,201,5,5,62,201,5,5,63,201,5,5,64,201,5,5,65,201,5,5,66,201,5,5,67,201,5,5,68,201,5,5,69,201,5,5,70,201,5,5,71,201,5,5,232,215,5,5,186,208,5,5,187,208,5,5,188,208,5,5,189,208,5,5,190,208,5,5,191,208,5,5,192,208,5,5,193,208,5,5,194,208,5,5,195,208,5,5,196,208,5,5,197,208,5,5,198,208,5,5,199,208,5,5,200,208,5,5,201,208,5,5,202,208,5,5,203,208,5,5,204,208,5,5,205,208,5,5,206,208,5,5,207,208,5,5,208,208,5,5,209,208,5,5,210,208,5,5,211,208,5,5,212,208,5,5,213,208,5,5,214,208,5,5,215,208,5,5,216,208,5,5,217,208,5,5,218,208,5,5,219,208,5,5,220,208,5,5,221,208,5,5,222,208,5,5,223,208,5,5,224,208,5,5,225,208,5,5,226,208,5,5,227,208,5,5,228,208,5,5,229,208,5,5,230,208,5,5,231,208,5,5,232,208,5,5,233,208,5,5,234,208,5,5,235,208,5,5,236,208,5,5,237,208,5,5,238,208,5,5,239,208,5,5,240,208,5,5,241,208,5,5,242,208,5,5,243,208,5,5,244,208,5,5,245,208,5,5,246,208,5,5,247,208,5,5,248,208,5,5,249,208,5,5,250,208,5,5,251,208,5,5,252,208,5,5,253,208,5,5,254,208,5,5,255,208,5,5,2,209,5,5,233,215,5,5,234,215,5,5,235,215,5,5,236,215,5,5,237,215,5,5,238,215,5,5,239,215,5,5,47,216,5,5,240,215,5,5,241,215,5,5,242,215,5,5,243,215,5,5,244,215,5,5,245,215,5,5,246,215,5,5,247,215,5,5,248,215,5,5,249,215,5,5,250,215,5,5,251,215,5,5,252,215,5,5,253,215,5,5,254,215,5,5,255,215,5,5,2,216,5,5,3,216,5,5,3,209,5,5,4,216,5,5,5,216,5,5,6,216,5,5,7,216,5,5,8,216,5,5,9,216,5,5,10,216,5,5,11,216,5,5,12,216,5,5,13,216,5,5,14,216,5,5,15,216,5,5,16,216,5,5,17,216,5,5,18,216,5,5,19,216,5,5,20,216,5,5,21,216,5,5,22,216,5,5,23,216,5,5,24,216,5,5,25,216,5,5,26,216,5,5,27,216,5,5,28,216,5,5,29,216,5,5,30,216,5,5,31,216,5,5,32,216,5,5,33,216,5,5,34,216,5,5,35,216,5,5,36,216,5,5,37,216,5,5,223,222,5,5,224,222,5,5,225,222,5,5,226,222,5,5,227,222,5,5,228,222,5,5,229,222,5,5,230,222,5,5,231,222,5,5,232,222,5,5,233,222,5,5,234,222,5,5,235,222,5,5,236,222,5,5,237,222,5,5,238,222,5,5,239,222,5,5,240,222,5,5,241,222,5,5,242,222,5,5,243,222,5,5,244,222,5,5,245,222,5,5,246,222,5,5,247,222,5,5,196,228,5,5,248,222,5,5,249,222,5,5,250,222,5,5,251,222,5,5,252,222,5,5,253,222,5,5,254,222,5,5,255,222,5,5,2,223,5,5,3,223,5,5,4,223,5,5,5,223,5,5,6,223,5,5,7,223,5,5,8,223,5,5,9,223,5,5,10,223,5,5,11,223,5,5,12,223,5,5,13,223,5,5,14,223,5,5,15,223,5,5,16,223,5,5,17,223,5,5,18,223,5,5,19,223,5,5,20,223,5,5,21,223,5,5,22,223,5,5,23,223,5,5,24,223,5,5,25,223,5,5,26,223,5,5,27,223,5,5,46,216,5,5,28,223,5,5,29,223,5,5,30,223,5,5,31,223,5,5,32,223,5,5,33,223,5,5,34,223,5,5,35,223,5,5,197,228,5,5,198,228,5,5,199,228,5,5,200,228,5,5,201,228,5,5,202,228,5,5,203,228,5,5,204,228,5,5,205,228,5,5,206,228,5,5,207,228,5,5,208,228,5,5,209,228,5,5,210,228,5,5,211,228,5,5,212,228,5,5,213,228,5,5,214,228,5,5,215,228,5,5,216,228,5,5,217,228,5,5,218,228,5,5,219,228,5,5,220,228,5,5,221,228,5,5,222,228,5,5,223,228,5,5,224,228,5,5,225,228,5,5,226,228,5,5,227,228,5,5,228,228,5,5,229,228,5,5,230,228,5,5,231,228,5,5,232,228,5,5,233,228,5,5,234,228,5,5,235,228,5,5,236,228,5,5,237,228,5,5,238,228,5,5,239,228,5,5,240,228,5,5,241,228,5,5,242,228,5,5,243,228,5,5,244,228,5,5,245,228,5,5,206,233,5,5,246,228,5,5,247,228,5,5,248,228,5,5,249,228,5,5,250,228,5,5,251,228,5,5,252,228,5,5,253,228,5,5,254,228,5,5,255,228,5,5,2,229,5,5,3,229,5,5,4,229,5,5,5,229,5,5,6,229,5,5,7,229,5,5,8,229,5,5,9,229,5,5,10,229,5,5,11,229,5,5,12,229,5,5,13,229,5,5,14,229,5,5,15,229,5,5,16,229,5,5,17,229,5,5,18,229,5,5,19,229,5,5,20,229,5,5,21,229,5,5,207,233,5,5,22,229,5,5,208,233,5,5,209,233,5,5,210,233,5,5,211,233,5,5,212,233,5,5,213,233,5,5,214,233,5,5,215,233,5,5,216,233,5,5,217,233,5,5,218,233,5,5,219,233,5,5,220,233,5,5,221,233,5,5,222,233,5,5,223,233,5,5,224,233,5,5,225,233,5,5,226,233,5,5,227,233,5,5,228,233,5,5,229,233,5,5,230,233,5,5,231,233,5,5,232,233,5,5,233,233,5,5,234,233,5,5,235,233,5,5,236,233,5,5,237,233,5,5,238,233,5,5,239,233,5,5,240,233,5,5,241,233,5,5,242,233,5,5,243,233,5,5,244,233,5,5,245,233,5,5,246,233,5,5,247,233,5,5,248,233,5,5,249,233,5,5,250,233,5,5,251,233,5,5,252,233,5,5,253,233,5,5,254,233,5,5,255,233,5,5,2,234,5,5,36,229,5,5,3,234,5,5,4,234,5,5,5,234,5,5,6,234,5,5,7,234,5,5,8,234,5,5,9,234,5,5,10,234,5,5,11,234,5,5,12,234,5,5,13,234,5,5,14,234,5,5,15,234,5,5,162,237,5,5,163,237,5,5,164,237,5,5,165,237,5,5,166,237,5,5,167,237,5,5,168,237,5,5,169,237,5,5,170,237,5,5,171,237,5,5,172,237,5,5,173,237,5,5,174,237,5,5,175,237,5,5,176,237,5,5,177,237,5,5,178,237,5,5,179,237,5,5,180,237,5,5,181,237,5,5,182,237,5,5,183,237,5,5,184,237,5,5,185,237,5,5,186,237,5,5,32,234,5,5,187,237,5,5,188,237,5,5,189,237,5,5,190,237,5,5,191,237,5,5,192,237,5,5,193,237,5,5,241,240,5,5,194,237,5,5,195,237,5,5,196,237,5,5,197,237,5,5,198,237,5,5,33,234,5,5,199,237,5,5,200,237,5,5,201,237,5,5,202,237,5,5,203,237,5,5,204,237,5,5,205,237,5,5,206,237,5,5,207,237,5,5,208,237,5,5,209,237,5,5,210,237,5,5,211,237,5,5,212,237,5,5,213,237,5,5,214,237,5,5,242,240,5,5,243,240,5,5,244,240,5,5,245,240,5,5,246,240,5,5,247,240,5,5,248,240,5,5,249,240,5,5,250,240,5,5,251,240,5,5,252,240,5,5,253,240,5,5,254,240,5,5,255,240,5,5,2,241,5,5,3,241,5,5,4,241,5,5,5,241,5,5,6,241,5,5,7,241,5,5,8,241,5,5,9,241,5,5,10,241,5,5,11,241,5,5,12,241,5,5,13,241,5,5,14,241,5,5,15,241,5,5,16,241,5,5,17,241,5,5,18,241,5,5,19,241,5,5,20,241,5,5,21,241,5,5,22,241,5,5,23,241,5,5,24,241,5,5,25,241,5,5,26,241,5,5,27,241,5,5,28,241,5,5,29,241,5,5,30,241,5,5,31,241,5,5,32,241,5,5,33,241,5,5,34,241,5,5,35,241,5,5,36,241,5,5,37,241,5,5,38,241,5,5,140,243,5,5,148,245,5,5,141,243,5,5,142,243,5,5,143,243,5,5,144,243,5,5,39,241,5,5,145,243,5,5,146,243,5,5,147,243,5,5,148,243,5,5,149,243,5,5,150,243,5,5,151,243,5,5,152,243,5,5,153,243,5,5,154,243,5,5,155,243,5,5,156,243,5,5,157,243,5,5,158,243,5,5,159,243,5,5,160,243,5,5,161,243,5,5,162,243,5,5,163,243,5,5,164,243,5,5,165,243,5,5,166,243,5,5,167,243,5,5,168,243,5,5,169,243,5,5,170,243,5,5,171,243,5,5,172,243,5,5,173,243,5,5,174,243,5,5,175,243,5,5,176,243,5,5,177,243,5,5,178,243,5,5,179,243,5,5,180,243,5,5,181,243,5,5,182,243,5,5,183,243,5,5,184,243,5,5,185,243,5,5,186,243,5,5,187,243,5,5,188,243,5,5,189,243,5,5,190,243,5,5,191,243,5,5,149,245,5,5,150,245,5,5,151,245,5,5,152,245,5,5,153,245,5,5,154,245,5,5,203,243,5,5,155,245,5,5,156,245,5,5,157,245,5,5,158,245,5,5,159,245,5,5,160,245,5,5,161,245,5,5,162,245,5,5,163,245,5,5,164,245,5,5,165,245,5,5,166,245,5,5,204,243,5,5,167,245,5,5,168,245,5,5,169,245,5,5,170,245,5,5,171,245,5,5,24,247,5,5,25,247,5,5,26,247,5,5,27,247,5,5,28,247,5,5,29,247,5,5,30,247,5,5,31,247,5,5,32,247,5,5,33,247,5,5,34,247,5,5,35,247,5,5,36,247,5,5,37,247,5,5,38,247,5,5,39,247,5,5,40,247,5,5,41,247,5,5,42,247,5,5,57,248,5,5,58,248,5,5,59,248,5,5,60,248,5,5,61,248,5,5,62,248,5,5,63,248,5,5,64,248,5,5,65,248,5,5,66,248,5,5,67,248,5,5,68,248,5,5,69,248,5,5,70,248,5,5,71,248,5,5,72,248,5,5,73,248,5,5,74,248,5,5,43,247,5,5,10,249,5,5,11,249,5,5,12,249,5,5,13,249,5,5,14,249,5,5,170,249,5,5,171,249,5,5,172,249,5,5,173,249,5,5,174,249,5,5,175,249,5,5,176,249,5,5,247,249,5,5,248,249,5,5,249,249,5,5,250,249,5,5,251,249,5,5,252,249,5,5,253,249,5,5,52,250,5,5,53,250,5,5,54,250,5,5,55,250,5,5,100,250,5,5,101,250,5,5,102,250,5,5,103,250,5,5,126,250,5,5,127,250,5,5,203,159,5,5,12,162,5,5,13,162,5,5,202,165,5,5,203,165,5,5,204,165,5,5,205,165,5,5,206,165,5,5,72,171,5,5,73,171,5,5,74,171,5,5,75,171,5,5,76,171,5,5,77,171,5,5,78,171,5,5,79,171,5,5,80,171,5,5,81,171,5,5,82,171,5,5,143,177,5,5,144,177,5,5,145,177,5,5,146,177,5,5,147,177,5,5,148,177,5,5,149,177,5,5,150,177,5,5,151,177,5,5,152,177,5,5,153,177,5,5,154,177,5,5,155,177,5,5,156,177,5,5,157,177,5,5,158,177,5,5,159,177,5,5,160,177,5,5,161,177,5,5,162,177,5,5,163,177,5,5,164,177,5,5,165,177,5,5,166,177,5,5,220,184,5,5,221,184,5,5,222,184,5,5,223,184,5,5,224,184,5,5,225,184,5,5,226,184,5,5,227,184,5,5,228,184,5,5,229,184,5,5,230,184,5,5,231,184,5,5,232,184,5,5,233,184,5,5,234,184,5,5,235,184,5,5,236,184,5,5,237,184,5,5,238,184,5,5,239,184,5,5,240,184,5,5,241,184,5,5,242,184,5,5,243,184,5,5,244,184,5,5,245,184,5,5,246,184,5,5,247,184,5,5,248,184,5,5,249,184,5,5,250,184,5,5,230,192,5,5,231,192,5,5,232,192,5,5,233,192,5,5,234,192,5,5,235,192,5,5,236,192,5,5,237,192,5,5,238,192,5,5,239,192,5,5,240,192,5,5,241,192,5,5,242,192,5,5,243,192,5,5,244,192,5,5,245,192,5,5,246,192,5,5,247,192,5,5,248,192,5,5,249,192,5,5,250,192,5,5,251,192,5,5,252,192,5,5,253,192,5,5,254,192,5,5,255,192,5,5,2,193,5,5,3,193,5,5,4,193,5,5,5,193,5,5,6,193,5,5,7,193,5,5,8,193,5,5,9,193,5,5,10,193,5,5,11,193,5,5,12,193,5,5,13,193,5,5,14,193,5,5,15,193,5,5,16,193,5,5,76,201,5,5,77,201,5,5,78,201,5,5,79,201,5,5,80,201,5,5,81,201,5,5,82,201,5,5,83,201,5,5,84,201,5,5,85,201,5,5,86,201,5,5,87,201,5,5,88,201,5,5,89,201,5,5,90,201,5,5,91,201,5,5,92,201,5,5,93,201,5,5,94,201,5,5,95,201,5,5,96,201,5,5,97,201,5,5,98,201,5,5,99,201,5,5,100,201,5,5,101,201,5,5,102,201,5,5,103,201,5,5,104,201,5,5,105,201,5,5,9,209,5,5,10,209,5,5,11,209,5,5,12,209,5,5,13,209,5,5,14,209,5,5,15,209,5,5,16,209,5,5,17,209,5,5,18,209,5,5,19,209,5,5,20,209,5,5,21,209,5,5,22,209,5,5,23,209,5,5,24,209,5,5,25,209,5,5,26,209,5,5,27,209,5,5,28,209,5,5,29,209,5,5,30,209,5,5,31,209,5,5,32,209,5,5,33,209,5,5,34,209,5,5,35,209,5,5,36,209,5,5,48,216,5,5,49,216,5,5,50,216,5,5,51,216,5,5,52,216,5,5,53,216,5,5,54,216,5,5,55,216,5,5,56,216,5,5,57,216,5,5,58,216,5,5,59,216,5,5,60,216,5,5,61,216,5,5,62,216,5,5,63,216,5,5,64,216,5,5,65,216,5,5,66,216,5,5,67,216,5,5,48,223,5,5,49,223,5,5,50,223,5,5,51,223,5,5,52,223,5,5,53,223,5,5,54,223,5,5,55,223,5,5,56,223,5,5,57,223,5,5,58,223,5,5,59,223,5,5,60,223,5,5,61,223,5,5,62,223,5,5,63,223,5,5,37,229,5,5,38,229,5,5,39,229,5,5,40,229,5,5,41,229,5,5,42,229,5,5,43,229,5,5,44,229,5,5,45,229,5,5,46,229,5,5,47,229,5,5,34,234,5,5,35,234,5,5,36,234,5,5,37,234,5,5,38,234,5,5,39,234,5,5,40,234,5,5,41,234,5,5,42,234,5,5,43,234,5,5,44,234,5,5,228,237,5,5,229,237,5,5,230,237,5,5,231,237,5,5,232,237,5,5,233,237,5,5,53,241,5,5,205,243,5,5,206,243,5,5,49,247,5,5,50,247,5,5,83,171,5,5,84,171,5,5,17,193,5,5,18,193,5,5,106,201,5,5,64,223,5,5,54,241,5,5,51,247,5,5,204,159,5,5,85,171,5,5,167,177,5,5,168,177,5,5,251,184,5,5,252,184,5,5,253,184,5,5,19,193,5,5,20,193,5,5,21,193,5,5,22,193,5,5,23,193,5,5,107,201,5,5,108,201,5,5,109,201,5,5,110,201,5,5,111,201,5,5,112,201,5,5,113,201,5,5,114,201,5,5,115,201,5,5,116,201,5,5,117,201,5,5,118,201,5,5,119,201,5,5,38,209,5,5,39,209,5,5,40,209,5,5,41,209,5,5,42,209,5,5,43,209,5,5,44,209,5,5,45,209,5,5,46,209,5,5,68,216,5,5,69,216,5,5,70,216,5,5,71,216,5,5,72,216,5,5,73,216,5,5,74,216,5,5,75,216,5,5,76,216,5,5,77,216,5,5,65,223,5,5,66,223,5,5,67,223,5,5,68,223,5,5,69,223,5,5,70,223,5,5,71,223,5,5,72,223,5,5,73,223,5,5,74,223,5,5,48,229,5,5,49,229,5,5,46,234,5,5,50,229,5,5,51,229,5,5,52,229,5,5,53,229,5,5,54,229,5,5,55,229,5,5,56,229,5,5,57,229,5,5,45,234,5,5,58,229,5,5,59,229,5,5,47,234,5,5,48,234,5,5,49,234,5,5,50,234,5,5,51,234,5,5,52,234,5,5,53,234,5,5,54,234,5,5,55,234,5,5,56,234,5,5,62,229,5,5,57,234,5,5,58,234,5,5,234,237,5,5,235,237,5,5,236,237,5,5,237,237,5,5,238,237,5,5,239,237,5,5,240,237,5,5,241,237,5,5,242,237,5,5,55,241,5,5,56,241,5,5,57,241,5,5,58,241,5,5,59,241,5,5,207,243,5,5,208,243,5,5,209,243,5,5,210,243,5,5,179,245,5,5,180,245,5,5,181,245,5,5,182,245,5,5,183,245,5,5,52,247,5,5,154,157,5,5,121,158,5,5,205,159,5,5,14,162,5,5,15,162,5,5,16,162,5,5,17,162,5,5,18,162,5,5,207,165,5,5,208,165,5,5,209,165,5,5,210,165,5,5,211,165,5,5,212,165,5,5,213,165,5,5,214,165,5,5,86,171,5,5,87,171,5,5,169,177,5,5,170,177,5,5,171,177,5,5,172,177,5,5,173,177,5,5,174,177,5,5,175,177,5,5,176,177,5,5,177,177,5,5,2,185,5,5,3,185,5,5,4,185,5,5,5,185,5,5,25,193,5,5,26,193,5,5,27,193,5,5,28,193,5,5,29,193,5,5,30,193,5,5,31,193,5,5,32,193,5,5,33,193,5,5,34,193,5,5,120,201,5,5,121,201,5,5,122,201,5,5,123,201,5,5,124,201,5,5,47,209,5,5,48,209,5,5,49,209,5,5,50,209,5,5,78,216,5,5,63,229,5,5,88,171,5,5,155,157,5,5,206,159,5,5,207,159,5,5,19,162,5,5,20,162,5,5,21,162,5,5,22,162,5,5,23,162,5,5,215,165,5,5,216,165,5,5,217,165,5,5,218,165,5,5,219,165,5,5,220,165,5,5,221,165,5,5,222,165,5,5,223,165,5,5,224,165,5,5,225,165,5,5,226,165,5,5,227,165,5,5,228,165,5,5,229,165,5,5,230,165,5,5,231,165,5,5,232,165,5,5,90,171,5,5,91,171,5,5,92,171,5,5,93,171,5,5,94,171,5,5,95,171,5,5,96,171,5,5,97,171,5,5,98,171,5,5,99,171,5,5,100,171,5,5,101,171,5,5,102,171,5,5,103,171,5,5,104,171,5,5,105,171,5,5,106,171,5,5,107,171,5,5,108,171,5,5,178,177,5,5,179,177,5,5,180,177,5,5,181,177,5,5,182,177,5,5,183,177,5,5,184,177,5,5,185,177,5,5,186,177,5,5,187,177,5,5,188,177,5,5,189,177,5,5,6,185,5,5,7,185,5,5,8,185,5,5,9,185,5,5,25,185,5,5,10,185,5,5,11,185,5,5,12,185,5,5,13,185,5,5,14,185,5,5,15,185,5,5,16,185,5,5,17,185,5,5,18,185,5,5,19,185,5,5,20,185,5,5,21,185,5,5,22,185,5,5,23,185,5,5,24,185,5,5,35,193,5,5,36,193,5,5,37,193,5,5,38,193,5,5,39,193,5,5,40,193,5,5,41,193,5,5,42,193,5,5,125,201,5,5,43,193,5,5,44,193,5,5,45,193,5,5,46,193,5,5,47,193,5,5,48,193,5,5,49,193,5,5,50,193,5,5,126,201,5,5,51,193,5,5,127,201,5,5,128,201,5,5,129,201,5,5,130,201,5,5,131,201,5,5,132,201,5,5,133,201,5,5,134,201,5,5,135,201,5,5,136,201,5,5,137,201,5,5,138,201,5,5,139,201,5,5,140,201,5,5,141,201,5,5,142,201,5,5,143,201,5,5,144,201,5,5,51,209,5,5,145,201,5,5,52,209,5,5,53,209,5,5,54,209,5,5,55,209,5,5,56,209,5,5,57,209,5,5,58,209,5,5,59,209,5,5,79,216,5,5,80,216,5,5,81,216,5,5,82,216,5,5,83,216,5,5,84,216,5,5,85,216,5,5,86,216,5,5,87,216,5,5,76,223,5,5,77,223,5,5,78,223,5,5,79,223,5,5,64,229,5,5,65,229,5,5,66,229,5,5,67,229,5,5,68,229,5,5,69,229,5,5,59,234,5,5,60,234,5,5,61,234,5,5,62,234,5,5,63,234,5,5,64,234,5,5,65,234,5,5,244,237,5,5,60,241,5,5,212,243,5,5,109,171,5,5,71,229,5,5,66,234,5,5,110,171,5,5,27,185,5,5,28,185,5,5,29,185,5,5,30,185,5,5,31,185,5,5,55,193,5,5,56,193,5,5,148,201,5,5,149,201,5,5,150,201,5,5,151,201,5,5,152,201,5,5,153,201,5,5,154,201,5,5,155,201,5,5,62,209,5,5,63,209,5,5,64,209,5,5,88,216,5,5,65,209,5,5,66,209,5,5,67,209,5,5,89,216,5,5,90,216,5,5,91,216,5,5,81,223,5,5,72,229,5,5,73,229,5,5,67,234,5,5,245,237,5,5,246,237,5,5,247,237,5,5,248,237,5,5,249,237,5,5,250,237,5,5,251,237,5,5,252,237,5,5,253,237,5,5,254,237,5,5,61,241,5,5,2,238,5,5,62,241,5,5,184,245,5,5,22,249,5,5,23,249,5,5,106,250,5,5,112,171,5,5,57,193,5,5,58,193,5,5,59,193,5,5,156,201,5,5,157,201,5,5,158,201,5,5,159,201,5,5,160,201,5,5,161,201,5,5,162,201,5,5,163,201,5,5,68,209,5,5,69,209,5,5,70,209,5,5,71,209,5,5,72,209,5,5,73,209,5,5,74,209,5,5,75,209,5,5,76,209,5,5,77,209,5,5,78,209,5,5,93,216,5,5,94,216,5,5,95,216,5,5,82,223,5,5,83,223,5,5,84,223,5,5,85,223,5,5,86,223,5,5,87,223,5,5,88,223,5,5,89,223,5,5,90,223,5,5,74,229,5,5,75,229,5,5,76,229,5,5,77,229,5,5,78,229,5,5,79,229,5,5,80,229,5,5,81,229,5,5,82,229,5,5,83,229,5,5,84,229,5,5,85,229,5,5,86,229,5,5,70,234,5,5,71,234,5,5,72,234,5,5,73,234,5,5,74,234,5,5,75,234,5,5,76,234,5,5,77,234,5,5,78,234,5,5,82,234,5,5,3,238,5,5,4,238,5,5,5,238,5,5,6,238,5,5,64,241,5,5,65,241,5,5,66,241,5,5,67,241,5,5,68,241,5,5,69,241,5,5,70,241,5,5,71,241,5,5,213,243,5,5,214,243,5,5,215,243,5,5,216,243,5,5,185,245,5,5,217,243,5,5,218,243,5,5,186,245,5,5,187,245,5,5,188,245,5,5,189,245,5,5,190,245,5,5,191,245,5,5,192,245,5,5,53,247,5,5,54,247,5,5,55,247,5,5,56,247,5,5,57,247,5,5,83,248,5,5,24,249,5,5,25,249,5,5,26,249,5,5,27,249,5,5,28,249,5,5,29,249,5,5,30,249,5,5,179,249,5,5,3,250,5,5,58,250,5,5,59,250,5,5,60,250,5,5,61,250,5,5,129,250,5,5,174,250,5,5,113,171,5,5,114,171,5,5,166,201,5,5,167,201,5,5,80,209,5,5,81,209,5,5,100,216,5,5,101,216,5,5,102,216,5,5,92,223,5,5,92,229,5,5,93,229,5,5,8,238,5,5,115,171,5,5,168,201,5,5,93,223,5,5,75,241,5,5,192,177,5,5,116,171,5,5,103,216,5,5,94,223,5,5,94,229,5,5,193,245,5,5,86,248,5,5,193,177,5,5,63,193,5,5,169,201,5,5,170,201,5,5,171,201,5,5,172,201,5,5,173,201,5,5,174,201,5,5,175,201,5,5,82,209,5,5,83,209,5,5,84,209,5,5,85,209,5,5,86,209,5,5,87,209,5,5,88,209,5,5,89,209,5,5,104,216,5,5,105,216,5,5,106,216,5,5,107,216,5,5,108,216,5,5,109,216,5,5,110,216,5,5,111,216,5,5,112,216,5,5,113,216,5,5,114,216,5,5,115,216,5,5,116,216,5,5,95,223,5,5,96,223,5,5,97,223,5,5,98,223,5,5,99,223,5,5,100,223,5,5,101,223,5,5,102,223,5,5,103,223,5,5,104,223,5,5,105,223,5,5,106,223,5,5,95,229,5,5,96,229,5,5,97,229,5,5,98,229,5,5,99,229,5,5,100,229,5,5,101,229,5,5,84,234,5,5,85,234,5,5,86,234,5,5,87,234,5,5,88,234,5,5,89,234,5,5,90,234,5,5,91,234,5,5,9,238,5,5,10,238,5,5,11,238,5,5,12,238,5,5,13,238,5,5,14,238,5,5,15,238,5,5,16,238,5,5,17,238,5,5,18,238,5,5,19,238,5,5,20,238,5,5,21,238,5,5,22,238,5,5,23,238,5,5,76,241,5,5,77,241,5,5,78,241,5,5,79,241,5,5,80,241,5,5,81,241,5,5,82,241,5,5,222,243,5,5,223,243,5,5,224,243,5,5,225,243,5,5,194,245,5,5,195,245,5,5,196,245,5,5,197,245,5,5,59,247,5,5,60,247,5,5,61,247,5,5,62,247,5,5,87,248,5,5,88,248,5,5,31,249,5,5,32,249,5,5,33,249,5,5,4,250,5,5,143,250,5,5,194,177,5,5,176,201,5,5,117,216,5,5,118,216,5,5,107,223,5,5,108,223,5,5,109,223,5,5,102,229,5,5,92,234,5,5,93,234,5,5,94,234,5,5,24,238,5,5,25,238,5,5,26,238,5,5,27,238,5,5,28,238,5,5,226,243,5,5,83,241,5,5,84,241,5,5,85,241,5,5,86,241,5,5,227,243,5,5,198,245,5,5,199,245,5,5,63,247,5,5,34,249,5,5,35,249,5,5,122,158,5,5,235,165,5,5,195,177,5,5,177,201,5,5,90,209,5,5,91,209,5,5,119,216,5,5,196,177,5,5,92,209,5,5,110,223,5,5,103,229,5,5,95,234,5,5,87,241,5,5,197,177,5,5,93,209,5,5,94,209,5,5,120,216,5,5,121,216,5,5,104,229,5,5,30,238,5,5,31,238,5,5,88,241,5,5,89,241,5,5,228,243,5,5,229,243,5,5,230,243,5,5,89,248,5,5,198,177,5,5,66,193,5,5,67,193,5,5,68,193,5,5,178,201,5,5,179,201,5,5,180,201,5,5,181,201,5,5,95,209,5,5,96,209,5,5,97,209,5,5,98,209,5,5,99,209,5,5,100,209,5,5,101,209,5,5,102,209,5,5,103,209,5,5,104,209,5,5,105,209,5,5,124,216,5,5,125,216,5,5,126,216,5,5,127,216,5,5,128,216,5,5,123,216,5,5,129,216,5,5,112,223,5,5,113,223,5,5,114,223,5,5,115,223,5,5,116,223,5,5,117,223,5,5,118,223,5,5,119,223,5,5,120,223,5,5,105,229,5,5,106,229,5,5,121,223,5,5,122,223,5,5,123,223,5,5,124,223,5,5,125,223,5,5,126,223,5,5,127,223,5,5,107,229,5,5,108,229,5,5,109,229,5,5,110,229,5,5,111,229,5,5,112,229,5,5,113,229,5,5,114,229,5,5,115,229,5,5,116,229,5,5,117,229,5,5,118,229,5,5,119,229,5,5,120,229,5,5,121,229,5,5,122,229,5,5,123,229,5,5,34,238,5,5,33,238,5,5,96,234,5,5,97,234,5,5,98,234,5,5,99,234,5,5,100,234,5,5,101,234,5,5,102,234,5,5,103,234,5,5,104,234,5,5,105,234,5,5,106,234,5,5,35,238,5,5,36,238,5,5,37,238,5,5,38,238,5,5,39,238,5,5,40,238,5,5,41,238,5,5,42,238,5,5,43,238,5,5,44,238,5,5,45,238,5,5,90,241,5,5,91,241,5,5,92,241,5,5,93,241,5,5,94,241,5,5,95,241,5,5,96,241,5,5,97,241,5,5,98,241,5,5,231,243,5,5,232,243,5,5,233,243,5,5,234,243,5,5,235,243,5,5,202,245,5,5,203,245,5,5,204,245,5,5,205,245,5,5,206,245,5,5,64,247,5,5,65,247,5,5,66,247,5,5,90,248,5,5,91,248,5,5,92,248,5,5,93,248,5,5,37,249,5,5,180,249,5,5,181,249,5,5,62,250,5,5,63,250,5,5,24,162,5,5,117,171,5,5,118,171,5,5,199,177,5,5,200,177,5,5,201,177,5,5,202,177,5,5,32,185,5,5,33,185,5,5,34,185,5,5,35,185,5,5,36,185,5,5,37,185,5,5,38,185,5,5,39,185,5,5,40,185,5,5,69,193,5,5,70,193,5,5,71,193,5,5,72,193,5,5,182,201,5,5,183,201,5,5,184,201,5,5,185,201,5,5,186,201,5,5,187,201,5,5,188,201,5,5,107,209,5,5,108,209,5,5,109,209,5,5,110,209,5,5,111,209,5,5,112,209,5,5,113,209,5,5,131,216,5,5,128,223,5,5,129,223,5,5,130,223,5,5,131,223,5,5,132,223,5,5,133,223,5,5,127,229,5,5,128,229,5,5,129,229,5,5,130,229,5,5,46,238,5,5,47,238,5,5,100,241,5,5,236,243,5,5,207,245,5,5,94,248,5,5,203,177,5,5,189,201,5,5,190,201,5,5,114,209,5,5,115,209,5,5,132,216,5,5,133,216,5,5,134,216,5,5,135,216,5,5,136,216,5,5,134,223,5,5,135,223,5,5,131,229,5,5,132,229,5,5,110,234,5,5,111,234,5,5,48,238,5,5,49,238,5,5,50,238,5,5,101,241,5,5,102,241,5,5,103,241,5,5,104,241,5,5,105,241,5,5,106,241,5,5,237,243,5,5,238,243,5,5,239,243,5,5,240,243,5,5,208,245,5,5,209,245,5,5,210,245,5,5,211,245,5,5,212,245,5,5,213,245,5,5,67,247,5,5,64,250,5,5,65,250,5,5,123,158,5,5,236,165,5,5,204,177,5,5,205,177,5,5,206,177,5,5,192,201,5,5,116,209,5,5,141,216,5,5,140,216,5,5,142,216,5,5,136,223,5,5,134,229,5,5,135,229,5,5,207,177,5,5,214,245,5,5,66,250,5,5,156,157,5,5,208,177,5,5,209,177,5,5,73,193,5,5,41,185,5,5,42,185,5,5,43,185,5,5,74,193,5,5,75,193,5,5,193,201,5,5,194,201,5,5,195,201,5,5,196,201,5,5,197,201,5,5,117,209,5,5,198,201,5,5,118,209,5,5,199,201,5,5,200,201,5,5,119,209,5,5,201,201,5,5,121,209,5,5,122,209,5,5,123,209,5,5,124,209,5,5,125,209,5,5,143,216,5,5,126,209,5,5,137,223,5,5,127,209,5,5,128,209,5,5,129,209,5,5,130,209,5,5,131,209,5,5,145,216,5,5,146,216,5,5,147,216,5,5,148,216,5,5,149,216,5,5,150,216,5,5,151,216,5,5,152,216,5,5,138,223,5,5,153,216,5,5,139,223,5,5,140,223,5,5,154,216,5,5,141,223,5,5,155,216,5,5,156,216,5,5,136,229,5,5,143,223,5,5,144,223,5,5,145,223,5,5,146,223,5,5,147,223,5,5,148,223,5,5,149,223,5,5,150,223,5,5,151,223,5,5,138,229,5,5,139,229,5,5,140,229,5,5,137,229,5,5,141,229,5,5,142,229,5,5,143,229,5,5,144,229,5,5,145,229,5,5,146,229,5,5,147,229,5,5,116,234,5,5,148,229,5,5,149,229,5,5,150,229,5,5,151,229,5,5,117,234,5,5,118,234,5,5,119,234,5,5,120,234,5,5,51,238,5,5,121,234,5,5,122,234,5,5,123,234,5,5,124,234,5,5,125,234,5,5,153,229,5,5,126,234,5,5,55,238,5,5,127,234,5,5,56,238,5,5,57,238,5,5,58,238,5,5,59,238,5,5,60,238,5,5,61,238,5,5,62,238,5,5,63,238,5,5,64,238,5,5,65,238,5,5,129,234,5,5,108,241,5,5,110,241,5,5,111,241,5,5,130,234,5,5,112,241,5,5,113,241,5,5,114,241,5,5,241,243,5,5,242,243,5,5,243,243,5,5,244,243,5,5,245,243,5,5,215,245,5,5,246,243,5,5,247,243,5,5,248,243,5,5,249,243,5,5,68,247,5,5,69,247,5,5,216,245,5,5,217,245,5,5,218,245,5,5,250,243,5,5,70,247,5,5,71,247,5,5,95,248,5,5,38,249,5,5,182,249,5,5,183,249,5,5,67,250,5,5,68,250,5,5,144,250,5,5,157,157,5,5,208,159,5,5,209,159,5,5,25,162,5,5,26,162,5,5,237,165,5,5,238,165,5,5,239,165,5,5,240,165,5,5,241,165,5,5,242,165,5,5,243,165,5,5,119,171,5,5,120,171,5,5,121,171,5,5,122,171,5,5,123,171,5,5,124,171,5,5,211,177,5,5,212,177,5,5,213,177,5,5,214,177,5,5,215,177,5,5,216,177,5,5,217,177,5,5,218,177,5,5,44,185,5,5,45,185,5,5,46,185,5,5,47,185,5,5,48,185,5,5,49,185,5,5,76,193,5,5,77,193,5,5,78,193,5,5,79,193,5,5,202,201,5,5,203,201,5,5,132,209,5,5,204,201,5,5,205,201,5,5,133,209,5,5,134,209,5,5,135,209,5,5,136,209,5,5,137,209,5,5,157,216,5,5,158,216,5,5,152,223,5,5,153,223,5,5,184,249,5,5,219,177,5,5,80,193,5,5,131,234,5,5,221,177,5,5,138,209,5,5,159,216,5,5,160,216,5,5,161,216,5,5,154,229,5,5,155,229,5,5,156,229,5,5,132,234,5,5,133,234,5,5,134,234,5,5,66,238,5,5,67,238,5,5,115,241,5,5,116,241,5,5,251,243,5,5,219,245,5,5,96,248,5,5,69,250,5,5,50,185,5,5,206,201,5,5,207,201,5,5,139,209,5,5,140,209,5,5,141,209,5,5,142,209,5,5,143,209,5,5,144,209,5,5,145,209,5,5,163,216,5,5,164,216,5,5,165,216,5,5,166,216,5,5,167,216,5,5,168,216,5,5,169,216,5,5,170,216,5,5,171,216,5,5,172,216,5,5,173,216,5,5,174,216,5,5,175,216,5,5,176,216,5,5,177,216,5,5,178,216,5,5,179,216,5,5,180,216,5,5,154,223,5,5,155,223,5,5,156,223,5,5,157,223,5,5,158,223,5,5,159,223,5,5,160,223,5,5,161,223,5,5,162,223,5,5,163,223,5,5,164,223,5,5,165,223,5,5,166,223,5,5,167,223,5,5,168,223,5,5,169,223,5,5,170,223,5,5,171,223,5,5,172,223,5,5,173,223,5,5,174,223,5,5,175,223,5,5,176,223,5,5,177,223,5,5,178,223,5,5,157,229,5,5,158,229,5,5,159,229,5,5,160,229,5,5,161,229,5,5,162,229,5,5,163,229,5,5,164,229,5,5,165,229,5,5,166,229,5,5,167,229,5,5,168,229,5,5,169,229,5,5,170,229,5,5,171,229,5,5,172,229,5,5,173,229,5,5,174,229,5,5,156,234,5,5,137,234,5,5,138,234,5,5,139,234,5,5,140,234,5,5,141,234,5,5,142,234,5,5,143,234,5,5,144,234,5,5,145,234,5,5,146,234,5,5,147,234,5,5,148,234,5,5,149,234,5,5,150,234,5,5,151,234,5,5,152,234,5,5,68,238,5,5,69,238,5,5,70,238,5,5,71,238,5,5,72,238,5,5,73,238,5,5,74,238,5,5,75,238,5,5,76,238,5,5,77,238,5,5,78,238,5,5,79,238,5,5,80,238,5,5,81,238,5,5,82,238,5,5,83,238,5,5,118,241,5,5,119,241,5,5,120,241,5,5,121,241,5,5,122,241,5,5,123,241,5,5,124,241,5,5,125,241,5,5,126,241,5,5,127,241,5,5,128,241,5,5,129,241,5,5,130,241,5,5,131,241,5,5,132,241,5,5,133,241,5,5,134,241,5,5,135,241,5,5,136,241,5,5,137,241,5,5,138,241,5,5,252,243,5,5,253,243,5,5,254,243,5,5,255,243,5,5,2,244,5,5,3,244,5,5,4,244,5,5,5,244,5,5,6,244,5,5,7,244,5,5,8,244,5,5,9,244,5,5,10,244,5,5,11,244,5,5,12,244,5,5,13,244,5,5,220,245,5,5,221,245,5,5,222,245,5,5,223,245,5,5,224,245,5,5,225,245,5,5,226,245,5,5,227,245,5,5,228,245,5,5,229,245,5,5,230,245,5,5,231,245,5,5,232,245,5,5,233,245,5,5,234,245,5,5,73,247,5,5,74,247,5,5,75,247,5,5,76,247,5,5,77,247,5,5,78,247,5,5,79,247,5,5,80,247,5,5,81,247,5,5,82,247,5,5,83,247,5,5,84,247,5,5,85,247,5,5,86,247,5,5,97,248,5,5,98,248,5,5,99,248,5,5,100,248,5,5,101,248,5,5,102,248,5,5,103,248,5,5,39,249,5,5,40,249,5,5,41,249,5,5,5,250,5,5,6,250,5,5,7,250,5,5,8,250,5,5,70,250,5,5,10,250,5,5,71,250,5,5,72,250,5,5,107,250,5,5,108,250,5,5,130,250,5,5,145,250,5,5,158,157,5,5,210,159,5,5,27,162,5,5,28,162,5,5,29,162,5,5,244,165,5,5,245,165,5,5,246,165,5,5,247,165,5,5,125,171,5,5,126,171,5,5,127,171,5,5,128,171,5,5,129,171,5,5,130,171,5,5,131,171,5,5,132,171,5,5,133,171,5,5,134,171,5,5,135,171,5,5,136,171,5,5,222,177,5,5,223,177,5,5,224,177,5,5,225,177,5,5,226,177,5,5,227,177,5,5,228,177,5,5,229,177,5,5,230,177,5,5,51,185,5,5,52,185,5,5,53,185,5,5,54,185,5,5,55,185,5,5,56,185,5,5,81,193,5,5,82,193,5,5,83,193,5,5,84,193,5,5,85,193,5,5,86,193,5,5,87,193,5,5,208,201,5,5,209,201,5,5,210,201,5,5,211,201,5,5,212,201,5,5,146,209,5,5,147,209,5,5,148,209,5,5,149,209,5,5,183,216,5,5,184,216,5,5,185,216,5,5,180,223,5,5,157,234,5,5,141,241,5,5,20,244,5,5,21,244,5,5,57,185,5,5,213,201,5,5,150,209,5,5,151,209,5,5,152,209,5,5,153,209,5,5,154,209,5,5,186,216,5,5,187,216,5,5,188,216,5,5,181,223,5,5,182,223,5,5,183,223,5,5,184,223,5,5,185,223,5,5,186,223,5,5,176,229,5,5,177,229,5,5,178,229,5,5,179,229,5,5,180,229,5,5,158,234,5,5,159,234,5,5,182,229,5,5,91,238,5,5,92,238,5,5,142,241,5,5,143,241,5,5,22,244,5,5,144,241,5,5,23,244,5,5,24,244,5,5,25,244,5,5,26,244,5,5,27,244,5,5,28,244,5,5,29,244,5,5,236,245,5,5,237,245,5,5,238,245,5,5,88,247,5,5,104,248,5,5,89,247,5,5,105,248,5,5,106,248,5,5,42,249,5,5,188,249,5,5,11,250,5,5,58,185,5,5,88,193,5,5,190,216,5,5,187,223,5,5,93,238,5,5,90,247,5,5,107,248,5,5,59,185,5,5,214,201,5,5,156,209,5,5,157,209,5,5,191,216,5,5,192,216,5,5,193,216,5,5,194,216,5,5,195,216,5,5,196,216,5,5,197,216,5,5,198,216,5,5,188,223,5,5,189,223,5,5,183,229,5,5,190,223,5,5,191,223,5,5,192,223,5,5,193,223,5,5,194,223,5,5,195,223,5,5,196,223,5,5,184,229,5,5,185,229,5,5,186,229,5,5,187,229,5,5,188,229,5,5,189,229,5,5,190,229,5,5,160,234,5,5,161,234,5,5,162,234,5,5,163,234,5,5,164,234,5,5,165,234,5,5,166,234,5,5,94,238,5,5,95,238,5,5,96,238,5,5,97,238,5,5,191,229,5,5,98,238,5,5,145,241,5,5,146,241,5,5,147,241,5,5,148,241,5,5,149,241,5,5,150,241,5,5,151,241,5,5,30,244,5,5,31,244,5,5,32,244,5,5,33,244,5,5,239,245,5,5,240,245,5,5,241,245,5,5,242,245,5,5,243,245,5,5,92,247,5,5,93,247,5,5,94,247,5,5,95,247,5,5,91,247,5,5,108,248,5,5,109,248,5,5,110,248,5,5,43,249,5,5,44,249,5,5,189,249,5,5,74,250,5,5,60,185,5,5,201,216,5,5,197,223,5,5,192,229,5,5,101,238,5,5,34,244,5,5,98,247,5,5,45,249,5,5,46,249,5,5,75,250,5,5,61,185,5,5,76,250,5,5,131,250,5,5,62,185,5,5,193,229,5,5,167,234,5,5,102,238,5,5,103,238,5,5,154,241,5,5,35,244,5,5,244,245,5,5,245,245,5,5,99,247,5,5,63,185,5,5,158,209,5,5,202,216,5,5,203,216,5,5,204,216,5,5,205,216,5,5,206,216,5,5,198,223,5,5,199,223,5,5,200,223,5,5,201,223,5,5,194,229,5,5,168,234,5,5,169,234,5,5,104,238,5,5,105,238,5,5,106,238,5,5,107,238,5,5,108,238,5,5,109,238,5,5,36,244,5,5,246,245,5,5,247,245,5,5,248,245,5,5,249,245,5,5,100,247,5,5,101,247,5,5,47,249,5,5,48,249,5,5,49,249,5,5,89,193,5,5,159,209,5,5,160,209,5,5,161,209,5,5,162,209,5,5,208,216,5,5,209,216,5,5,210,216,5,5,211,216,5,5,203,223,5,5,204,223,5,5,205,223,5,5,206,223,5,5,207,223,5,5,208,223,5,5,209,223,5,5,210,223,5,5,211,223,5,5,212,223,5,5,213,223,5,5,214,223,5,5,215,223,5,5,216,223,5,5,217,223,5,5,218,223,5,5,219,223,5,5,220,223,5,5,221,223,5,5,222,223,5,5,223,223,5,5,224,223,5,5,225,223,5,5,195,229,5,5,196,229,5,5,197,229,5,5,198,229,5,5,199,229,5,5,200,229,5,5,201,229,5,5,202,229,5,5,203,229,5,5,204,229,5,5,205,229,5,5,206,229,5,5,170,234,5,5,207,229,5,5,208,229,5,5,209,229,5,5,210,229,5,5,211,229,5,5,212,229,5,5,213,229,5,5,214,229,5,5,215,229,5,5,216,229,5,5,217,229,5,5,218,229,5,5,219,229,5,5,220,229,5,5,221,229,5,5,222,229,5,5,223,229,5,5,224,229,5,5,171,234,5,5,172,234,5,5,173,234,5,5,174,234,5,5,175,234,5,5,176,234,5,5,177,234,5,5,178,234,5,5,179,234,5,5,180,234,5,5,225,229,5,5,181,234,5,5,182,234,5,5,183,234,5,5,184,234,5,5,185,234,5,5,186,234,5,5,187,234,5,5,188,234,5,5,189,234,5,5,190,234,5,5,191,234,5,5,192,234,5,5,193,234,5,5,194,234,5,5,195,234,5,5,196,234,5,5,197,234,5,5,111,238,5,5,112,238,5,5,113,238,5,5,114,238,5,5,115,238,5,5,198,234,5,5,116,238,5,5,117,238,5,5,118,238,5,5,119,238,5,5,120,238,5,5,121,238,5,5,122,238,5,5,123,238,5,5,124,238,5,5,125,238,5,5,155,241,5,5,126,238,5,5,127,238,5,5,128,238,5,5,129,238,5,5,130,238,5,5,131,238,5,5,132,238,5,5,133,238,5,5,202,234,5,5,134,238,5,5,135,238,5,5,136,238,5,5,137,238,5,5,138,238,5,5,156,241,5,5,157,241,5,5,158,241,5,5,159,241,5,5,160,241,5,5,161,241,5,5,162,241,5,5,163,241,5,5,164,241,5,5,165,241,5,5,166,241,5,5,167,241,5,5,168,241,5,5,169,241,5,5,170,241,5,5,171,241,5,5,172,241,5,5,173,241,5,5,174,241,5,5,175,241,5,5,176,241,5,5,177,241,5,5,178,241,5,5,179,241,5,5,180,241,5,5,181,241,5,5,182,241,5,5,183,241,5,5,184,241,5,5,185,241,5,5,186,241,5,5,187,241,5,5,188,241,5,5,189,241,5,5,38,244,5,5,39,244,5,5,40,244,5,5,41,244,5,5,193,241,5,5,37,244,5,5,42,244,5,5,139,238,5,5,43,244,5,5,44,244,5,5,45,244,5,5,46,244,5,5,47,244,5,5,48,244,5,5,49,244,5,5,50,244,5,5,51,244,5,5,52,244,5,5,53,244,5,5,54,244,5,5,55,244,5,5,56,244,5,5,57,244,5,5,58,244,5,5,59,244,5,5,60,244,5,5,61,244,5,5,62,244,5,5,63,244,5,5,64,244,5,5,65,244,5,5,66,244,5,5,67,244,5,5,68,244,5,5,69,244,5,5,70,244,5,5,71,244,5,5,72,244,5,5,250,245,5,5,251,245,5,5,252,245,5,5,253,245,5,5,73,244,5,5,254,245,5,5,255,245,5,5,2,246,5,5,3,246,5,5,4,246,5,5,5,246,5,5,6,246,5,5,7,246,5,5,8,246,5,5,9,246,5,5,10,246,5,5,11,246,5,5,12,246,5,5,13,246,5,5,14,246,5,5,15,246,5,5,102,247,5,5,103,247,5,5,104,247,5,5,105,247,5,5,106,247,5,5,107,247,5,5,108,247,5,5,109,247,5,5,110,247,5,5,111,247,5,5,112,247,5,5,113,247,5,5,114,247,5,5,115,247,5,5,116,247,5,5,76,244,5,5,117,247,5,5,118,247,5,5,119,247,5,5,120,247,5,5,121,247,5,5,122,247,5,5,123,247,5,5,124,247,5,5,130,247,5,5,111,248,5,5,112,248,5,5,113,248,5,5,114,248,5,5,115,248,5,5,116,248,5,5,117,248,5,5,118,248,5,5,119,248,5,5,120,248,5,5,121,248,5,5,122,248,5,5,123,248,5,5,124,248,5,5,125,248,5,5,126,248,5,5,127,248,5,5,128,248,5,5,51,249,5,5,52,249,5,5,53,249,5,5,54,249,5,5,55,249,5,5,56,249,5,5,57,249,5,5,58,249,5,5,59,249,5,5,60,249,5,5,61,249,5,5,62,249,5,5,190,249,5,5,63,249,5,5,130,248,5,5,64,249,5,5,191,249,5,5,192,249,5,5,193,249,5,5,194,249,5,5,66,249,5,5,12,250,5,5,13,250,5,5,14,250,5,5,15,250,5,5,16,250,5,5,17,250,5,5,77,250,5,5,78,250,5,5,132,250,5,5,147,250,5,5,166,250,5,5,137,171,5,5,64,185,5,5,90,193,5,5,216,201,5,5,217,201,5,5,218,201,5,5,219,201,5,5,220,201,5,5,163,209,5,5,164,209,5,5,165,209,5,5,166,209,5,5,167,209,5,5,168,209,5,5,169,209,5,5,170,209,5,5,171,209,5,5,172,209,5,5,173,209,5,5,174,209,5,5,175,209,5,5,213,216,5,5,214,216,5,5,215,216,5,5,216,216,5,5,217,216,5,5,218,216,5,5,219,216,5,5,220,216,5,5,221,216,5,5,222,216,5,5,223,216,5,5,224,216,5,5,225,216,5,5,226,216,5,5,227,216,5,5,229,223,5,5,230,223,5,5,231,223,5,5,232,223,5,5,233,223,5,5,234,223,5,5,235,223,5,5,236,223,5,5,237,223,5,5,238,223,5,5,239,223,5,5,240,223,5,5,241,223,5,5,231,229,5,5,232,229,5,5,233,229,5,5,234,229,5,5,235,229,5,5,236,229,5,5,237,229,5,5,238,229,5,5,239,229,5,5,240,229,5,5,241,229,5,5,242,229,5,5,243,229,5,5,244,229,5,5,245,229,5,5,203,234,5,5,204,234,5,5,218,234,5,5,205,234,5,5,206,234,5,5,207,234,5,5,208,234,5,5,209,234,5,5,210,234,5,5,211,234,5,5,212,234,5,5,213,234,5,5,214,234,5,5,215,234,5,5,216,234,5,5,217,234,5,5,142,238,5,5,143,238,5,5,144,238,5,5,145,238,5,5,146,238,5,5,147,238,5,5,148,238,5,5,194,241,5,5,195,241,5,5,196,241,5,5,197,241,5,5,198,241,5,5,199,241,5,5,200,241,5,5,201,241,5,5,202,241,5,5,77,244,5,5,78,244,5,5,79,244,5,5,80,244,5,5,21,246,5,5,22,246,5,5,23,246,5,5,24,246,5,5,131,247,5,5,91,193,5,5,221,201,5,5,176,209,5,5,177,209,5,5,178,209,5,5,179,209,5,5,180,209,5,5,232,177,5,5,181,209,5,5,182,209,5,5,183,209,5,5,184,209,5,5,228,216,5,5,229,216,5,5,230,216,5,5,231,216,5,5,232,216,5,5,233,216,5,5,242,223,5,5,243,223,5,5,244,223,5,5,245,223,5,5,246,223,5,5,247,223,5,5,248,223,5,5,249,223,5,5,250,223,5,5,251,223,5,5,252,223,5,5,253,223,5,5,254,223,5,5,255,223,5,5,2,224,5,5,3,224,5,5,4,224,5,5,5,224,5,5,6,224,5,5,246,229,5,5,7,224,5,5,8,224,5,5,9,224,5,5,10,224,5,5,247,229,5,5,248,229,5,5,249,229,5,5,250,229,5,5,251,229,5,5,252,229,5,5,253,229,5,5,254,229,5,5,255,229,5,5,2,230,5,5,3,230,5,5,4,230,5,5,5,230,5,5,219,234,5,5,6,230,5,5,7,230,5,5,8,230,5,5,9,230,5,5,10,230,5,5,11,230,5,5,12,230,5,5,13,230,5,5,14,230,5,5,15,230,5,5,16,230,5,5,17,230,5,5,18,230,5,5,19,230,5,5,20,230,5,5,21,230,5,5,220,234,5,5,221,234,5,5,222,234,5,5,223,234,5,5,224,234,5,5,225,234,5,5,226,234,5,5,227,234,5,5,228,234,5,5,229,234,5,5,230,234,5,5,231,234,5,5,232,234,5,5,233,234,5,5,234,234,5,5,235,234,5,5,236,234,5,5,237,234,5,5,238,234,5,5,239,234,5,5,240,234,5,5,241,234,5,5,242,234,5,5,243,234,5,5,244,234,5,5,245,234,5,5,246,234,5,5,247,234,5,5,248,234,5,5,150,238,5,5,151,238,5,5,152,238,5,5,153,238,5,5,154,238,5,5,155,238,5,5,156,238,5,5,157,238,5,5,158,238,5,5,159,238,5,5,160,238,5,5,161,238,5,5,162,238,5,5,163,238,5,5,164,238,5,5,165,238,5,5,166,238,5,5,167,238,5,5,168,238,5,5,169,238,5,5,170,238,5,5,171,238,5,5,172,238,5,5,203,241,5,5,173,238,5,5,174,238,5,5,58,237,5,5,175,238,5,5,204,241,5,5,252,234,5,5,205,241,5,5,206,241,5,5,207,241,5,5,208,241,5,5,209,241,5,5,210,241,5,5,211,241,5,5,212,241,5,5,213,241,5,5,214,241,5,5,215,241,5,5,216,241,5,5,217,241,5,5,218,241,5,5,219,241,5,5,220,241,5,5,221,241,5,5,222,241,5,5,223,241,5,5,224,241,5,5,225,241,5,5,226,241,5,5,227,241,5,5,228,241,5,5,229,241,5,5,230,241,5,5,231,241,5,5,232,241,5,5,233,241,5,5,234,241,5,5,235,241,5,5,236,241,5,5,237,241,5,5,238,241,5,5,239,241,5,5,240,241,5,5,241,241,5,5,242,241,5,5,243,241,5,5,244,241,5,5,81,244,5,5,245,241,5,5,82,244,5,5,83,244,5,5,84,244,5,5,85,244,5,5,86,244,5,5,87,244,5,5,88,244,5,5,89,244,5,5,90,244,5,5,91,244,5,5,92,244,5,5,93,244,5,5,94,244,5,5,95,244,5,5,96,244,5,5,97,244,5,5,98,244,5,5,99,244,5,5,100,244,5,5,101,244,5,5,102,244,5,5,103,244,5,5,104,244,5,5,105,244,5,5,106,244,5,5,107,244,5,5,25,246,5,5,26,246,5,5,27,246,5,5,28,246,5,5,29,246,5,5,30,246,5,5,31,246,5,5,32,246,5,5,33,246,5,5,34,246,5,5,35,246,5,5,36,246,5,5,37,246,5,5,38,246,5,5,39,246,5,5,40,246,5,5,41,246,5,5,42,246,5,5,43,246,5,5,114,244,5,5,44,246,5,5,45,246,5,5,46,246,5,5,47,246,5,5,48,246,5,5,49,246,5,5,50,246,5,5,51,246,5,5,52,246,5,5,53,246,5,5,54,246,5,5,132,247,5,5,55,246,5,5,56,246,5,5,57,246,5,5,58,246,5,5,133,247,5,5,134,247,5,5,135,247,5,5,136,247,5,5,137,247,5,5,138,247,5,5,139,247,5,5,140,247,5,5,141,247,5,5,142,247,5,5,143,247,5,5,144,247,5,5,145,247,5,5,146,247,5,5,147,247,5,5,148,247,5,5,125,247,5,5,131,248,5,5,132,248,5,5,133,248,5,5,134,248,5,5,135,248,5,5,136,248,5,5,137,248,5,5,138,248,5,5,152,247,5,5,139,248,5,5,140,248,5,5,141,248,5,5,142,248,5,5,143,248,5,5,144,248,5,5,145,248,5,5,146,248,5,5,147,248,5,5,148,248,5,5,149,248,5,5,153,247,5,5,150,248,5,5,151,248,5,5,152,248,5,5,68,249,5,5,67,249,5,5,153,248,5,5,154,248,5,5,69,249,5,5,70,249,5,5,71,249,5,5,72,249,5,5,73,249,5,5,74,249,5,5,75,249,5,5,76,249,5,5,77,249,5,5,78,249,5,5,79,249,5,5,80,249,5,5,81,249,5,5,82,249,5,5,196,249,5,5,197,249,5,5,198,249,5,5,199,249,5,5,200,249,5,5,201,249,5,5,202,249,5,5,203,249,5,5,18,250,5,5,19,250,5,5,79,250,5,5,80,250,5,5,81,250,5,5,110,250,5,5,111,250,5,5,112,250,5,5,133,250,5,5,134,250,5,5,148,250,5,5,149,250,5,5,211,159,5,5,248,165,5,5,249,165,5,5,138,171,5,5,139,171,5,5,140,171,5,5,233,177,5,5,234,177,5,5,235,177,5,5,236,177,5,5,237,177,5,5,65,185,5,5,66,185,5,5,67,185,5,5,68,185,5,5,69,185,5,5,70,185,5,5,71,185,5,5,72,185,5,5,73,185,5,5,74,185,5,5,75,185,5,5,76,185,5,5,77,185,5,5,92,193,5,5,93,193,5,5,94,193,5,5,95,193,5,5,96,193,5,5,97,193,5,5,98,193,5,5,99,193,5,5,100,193,5,5,222,201,5,5,223,201,5,5,224,201,5,5,225,201,5,5,226,201,5,5,227,201,5,5,228,201,5,5,229,201,5,5,230,201,5,5,185,209,5,5,186,209,5,5,187,209,5,5,188,209,5,5,189,209,5,5,190,209,5,5,191,209,5,5,192,209,5,5,193,209,5,5,194,209,5,5,195,209,5,5,196,209,5,5,234,216,5,5,235,216,5,5,236,216,5,5,15,224,5,5,237,216,5,5,238,216,5,5,239,216,5,5,240,216,5,5,16,224,5,5,17,224,5,5,18,224,5,5,19,224,5,5,20,224,5,5,21,224,5,5,22,224,5,5,23,224,5,5,23,230,5,5,24,230,5,5,25,230,5,5,26,230,5,5,253,234,5,5,254,234,5,5,255,234,5,5,2,235,5,5,176,238,5,5,177,238,5,5,178,238,5,5,179,238,5,5,249,241,5,5,250,241,5,5,154,247,5,5,155,247,5,5,101,193,5,5,24,224,5,5,27,230,5,5,251,241,5,5,115,244,5,5,62,246,5,5,63,246,5,5,87,249,5,5,88,249,5,5,28,230,5,5,102,193,5,5,197,209,5,5,198,209,5,5,199,209,5,5,25,224,5,5,26,224,5,5,29,230,5,5,30,230,5,5,31,230,5,5,32,230,5,5,3,235,5,5,4,235,5,5,5,235,5,5,180,238,5,5,181,238,5,5,182,238,5,5,183,238,5,5,184,238,5,5,252,241,5,5,253,241,5,5,254,241,5,5,255,241,5,5,2,242,5,5,3,242,5,5,4,242,5,5,116,244,5,5,117,244,5,5,118,244,5,5,119,244,5,5,64,246,5,5,65,246,5,5,156,247,5,5,159,248,5,5,89,249,5,5,205,249,5,5,114,250,5,5,157,250,5,5,167,250,5,5,103,193,5,5,250,165,5,5,241,216,5,5,28,224,5,5,29,224,5,5,30,224,5,5,31,224,5,5,34,230,5,5,35,230,5,5,36,230,5,5,7,235,5,5,8,235,5,5,190,238,5,5,191,238,5,5,5,242,5,5,6,242,5,5,120,244,5,5,158,247,5,5,135,250,5,5,104,193,5,5,32,224,5,5,38,230,5,5,105,193,5,5,242,216,5,5,243,216,5,5,33,224,5,5,193,238,5,5,7,242,5,5,122,244,5,5,160,248,5,5,231,201,5,5,232,201,5,5,39,230,5,5,40,230,5,5,9,235,5,5,10,235,5,5,11,235,5,5,194,238,5,5,195,238,5,5,206,249,5,5,233,201,5,5,34,224,5,5,12,235,5,5,159,247,5,5,234,201,5,5,106,193,5,5,36,224,5,5,41,230,5,5,42,230,5,5,43,230,5,5,44,230,5,5,45,230,5,5,165,219,5,5,13,235,5,5,14,235,5,5,15,235,5,5,16,235,5,5,17,235,5,5,196,238,5,5,197,238,5,5,198,238,5,5,9,242,5,5,10,242,5,5,125,244,5,5,126,244,5,5,127,244,5,5,128,244,5,5,129,244,5,5,130,244,5,5,131,244,5,5,67,246,5,5,68,246,5,5,69,246,5,5,70,246,5,5,71,246,5,5,160,247,5,5,161,247,5,5,161,248,5,5,162,248,5,5,163,248,5,5,207,249,5,5,21,250,5,5,82,250,5,5,115,250,5,5,235,201,5,5,46,230,5,5,19,235,5,5,11,242,5,5,201,209,5,5,141,171,5,5,20,235,5,5,199,238,5,5,200,238,5,5,201,238,5,5,12,242,5,5,13,242,5,5,72,246,5,5,164,248,5,5,165,248,5,5,208,249,5,5,209,249,5,5,22,250,5,5,236,201,5,5,202,209,5,5,133,244,5,5,203,209,5,5,37,224,5,5,38,224,5,5,39,224,5,5,47,230,5,5,204,209,5,5,205,209,5,5,203,238,5,5,204,238,5,5,15,242,5,5,73,246,5,5,74,246,5,5,75,246,5,5,76,246,5,5,166,248,5,5,210,249,5,5,90,249,5,5,211,249,5,5,206,209,5,5,142,171,5,5,21,235,5,5,22,235,5,5,23,235,5,5,205,238,5,5,206,238,5,5,207,238,5,5,208,238,5,5,209,238,5,5,210,238,5,5,211,238,5,5,212,238,5,5,16,242,5,5,134,244,5,5,135,244,5,5,136,244,5,5,77,246,5,5,162,247,5,5,163,247,5,5,164,247,5,5,165,247,5,5,167,248,5,5,168,248,5,5,169,248,5,5,170,248,5,5,116,250,5,5,244,216,5,5,48,230,5,5,49,230,5,5,24,235,5,5,25,235,5,5,17,242,5,5,18,242,5,5,166,247,5,5,172,248,5,5,173,248,5,5,91,249,5,5,92,249,5,5,212,249,5,5,83,250,5,5,172,250,5,5,245,216,5,5,26,235,5,5,213,238,5,5,19,242,5,5,78,246,5,5,174,248,5,5,30,162,5,5,40,224,5,5,41,224,5,5,50,230,5,5,28,235,5,5,214,238,5,5,20,242,5,5,21,242,5,5,22,242,5,5,138,244,5,5,139,244,5,5,140,244,5,5,79,246,5,5,141,244,5,5,142,244,5,5,143,244,5,5,144,244,5,5,145,244,5,5,29,235,5,5,146,244,5,5,80,246,5,5,81,246,5,5,82,246,5,5,83,246,5,5,84,246,5,5,85,246,5,5,167,247,5,5,168,247,5,5,169,247,5,5,175,248,5,5,176,248,5,5,177,248,5,5,178,248,5,5,179,248,5,5,93,249,5,5,94,249,5,5,95,249,5,5,96,249,5,5,97,249,5,5,98,249,5,5,213,249,5,5,214,249,5,5,215,249,5,5,216,249,5,5,117,250,5,5,118,250,5,5,170,250,5,5,143,171,5,5,78,185,5,5,107,193,5,5,237,201,5,5,207,209,5,5,208,209,5,5,209,209,5,5,210,209,5,5,246,216,5,5,247,216,5,5,42,224,5,5,43,224,5,5,30,235,5,5,31,235,5,5,51,230,5,5,215,238,5,5,23,242,5,5,25,239,5,5,147,244,5,5,87,246,5,5,171,247,5,5,172,247,5,5,173,247,5,5,162,250,5,5,168,250,5,5,176,250,5,5,212,159,5,5,108,193,5,5,109,193,5,5,52,230,5,5,88,246,5,5,119,250,5,5,251,165,5,5,32,235,5,5,89,246,5,5,174,247,5,5,218,249,5,5,24,250,5,5,25,250,5,5,166,219,5,5,86,225,5,5,143,178,5,5,3,233,5,5,78,177,5,5,212,200,5,5,23,229,5,5,235,245,5,5,73,250,5,5,4,209,5,5,76,158,5,5,27,159,5,5,215,237,5,5,144,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,166,5,5,220,163,5,5,221,163,5,5,146,191,5,5,80,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,184,5,5,93,164,5,5,159,165,5,5,43,208,5,5,214,204,5,5,37,162,5,5,247,158,5,5,52,230,5,5,52,230,5,5,175,172,5,5,70,171,5,5,211,193,5,5,78,167,5,5,32,239,5,5,250,244,5,5,25,240,5,5,15,248,5,5,28,233,5,5,48,215,5,5,54,248,5,5,218,218,5,5,216,174,5,5,164,181,5,5,232,181,5,5,42,207,5,5,177,208,5,5,173,229,5,5,239,201,5,5,172,162,5,5,215,244,5,5,237,244,5,5,73,245,5,5,149,250,5,5,233,194,5,5,94,231,5,5,241,236,5,5,67,243,5,5,128,168,5,5,38,240,5,5,85,245,5,5,23,195,5,5,161,180,5,5,78,181,5,5,208,181,5,5,129,177,5,5,48,166,5,5,121,162,5,5,183,193,5,5,20,225,5,5,71,239,5,5,149,242,5,5,161,226,5,5,190,161,5,5,32,243,5,5,139,207,5,5,86,208,5,5,185,245,5,5,215,223,5,5,67,249,5,5,5,206,5,5,31,206,5,5,236,213,5,5,98,199,5,5,210,228,5,5,102,193,5,5,47,222,5,5,248,238,5,5,204,163,5,5,198,246,5,5,214,246,5,5,237,164,5,5,58,220,5,5,37,208,5,5,71,209,5,5,74,235,5,5,229,210,5,5,234,218,5,5,9,189,5,5,97,212,5,5,164,190,5,5,116,232,5,5,179,177,5,5,174,185,5,5,197,161,5,5,30,217,5,5,104,178,5,5,54,206,5,5,12,214,5,5,137,199,5,5,45,193,5,5,250,246,5,5,174,173,5,5,218,218,5,5,77,228,5,5,174,157,5,5,225,210,5,5,109,173,5,5,169,189,5,5,227,189,5,5,221,158,5,5,252,231,5,5,176,171,5,5,38,195,5,5,163,157,5,5,111,169,5,5,151,218,5,5,20,183,5,5,204,185,5,5,172,202,5,5,209,175,5,5,54,207,5,5,101,215,5,5,203,188,5,5,164,165,5,5,187,164,5,5,195,173,5,5,200,176,5,5,227,187,5,5,223,189,5,5,154,171,5,5,101,166,5,5,101,178,5,5,104,188,5,5,129,236,5,5,97,165,5,5,43,222,5,5,23,201,5,5,76,230,5,5,221,162,5,5,109,157,5,5,23,239,5,5,121,180,5,5,208,235,5,5,202,242,5,5,67,223,5,5,130,250,5,5,4,242,5,5,34,224,5,5,33,157,5,5,78,225,5,5,197,225,5,5,21,247,5,5,6,161,5,5,48,218,5,5,193,247,5,5,111,218,5,5,115,212,5,5,3,205,5,5,220,219,5,5,74,170,5,5,217,220,5,5,159,232,5,5,170,222,5,5,70,221,5,5,160,192,5,5,209,233,5,5,94,160,5,5,99,160,5,5,68,172,5,5,147,181,5,5,20,200,5,5,101,215,5,5,55,203,5,5,33,168,5,5,192,187,5,5,64,231,5,5,238,239,5,5,252,235,5,5,164,158,5,5,12,167,5,5,225,210,5,5,165,230,5,5,56,168,5,5,104,175,5,5,203,219,5,5,227,190,5,5,2,191,5,5,192,208,5,5,70,209,5,5,30,249,5,5,128,216,5,5,53,166,5,5,82,236,5,5,134,243,5,5,66,234,5,5,55,195,5,5,13,157,5,5,226,209,5,5,205,217,5,5,141,163,5,5,115,180,5,5,218,218,5,5,48,226,5,5,193,231,5,5,83,221,5,5,171,228,5,5,51,230,5,5,232,203,5,5,224,165,5,5,36,217,5,5,238,168,5,5,119,174,5,5,251,174,5,5,164,204,5,5,253,181,5,5,21,182,5,5,62,198,5,5,2,183,5,5,98,241,5,5,217,157,5,5,81,218,5,5,48,193,5,5,51,178,5,5,8,187,5,5,25,189,5,5,174,222,5,5,104,173,5,5,111,203,5,5,170,180,5,5,169,189,5,5,136,201,5,5,141,162,5,5,142,160,5,5,211,217,5,5,208,168,5,5,105,164,5,5,143,188,5,5,135,169,5,5,188,189,5,5,253,197,5,5,85,227,5,5,186,207,5,5,203,207,5,5,201,165,5,5,2,238,5,5,194,185,5,5,194,204,5,5,184,162,5,5,50,226,5,5,97,226,5,5,20,243,5,5,77,223,5,5,124,248,5,5,159,248,5,5,11,169,5,5,248,188,5,5,188,232,5,5,178,159,5,5,113,190,5,5,145,190,5,5,216,169,5,5,190,169,5,5,163,240,5,5,192,157,5,5,185,183,5,5,129,166,5,5,235,157,5,5,79,173,5,5,137,168,5,5,41,227,5,5,220,160,5,5,218,174,5,5,169,218,5,5,152,228,5,5,224,161,5,5,181,177,5,5,122,165,5,5,23,211,5,5,85,157,5,5,67,202,5,5,36,210,5,5,27,179,5,5,168,202,5,5,247,194,5,5,241,195,5,5,144,196,5,5,34,212,5,5,69,224,5,5,168,189,5,5,63,182,5,5,166,161,5,5,162,182,5,5,61,190,5,5,115,213,5,5,81,209,5,5,225,213,5,5,189,161,5,5,212,227,5,5,51,243,5,5,194,191,5,5,59,222,5,5,95,192,5,5,2,162,5,5,242,200,5,5,183,192,5,5,36,223,5,5,24,229,5,5,60,209,5,5,199,201,5,5,128,209,5,5,150,229,5,5,33,246,5,5,189,184,5,5,71,229,5,5,159,171,5,5,239,209,5,5,110,162,5,5,11,172,5,5,51,202,5,5,161,166,5,5,232,193,5,5,54,210,5,5,89,224,5,5,74,194,5,5,35,224,5,5,210,217,5,5,123,157,5,5,250,179,5,5,103,195,5,5,46,218,5,5,30,239,5,5,13,188,5,5,5,174,5,5,2,196,5,5,108,188,5,5,91,181,5,5,68,189,5,5,114,212,5,5,101,197,5,5,90,158,5,5,173,197,5,5,10,206,5,5,62,170,5,5,10,176,5,5,9,176,5,5,148,182,5,5,154,182,5,5,161,182,5,5,113,213,5,5,114,213,5,5,99,220,5,5,42,176,5,5,117,206,5,5,217,220,5,5,46,227,5,5,126,232,5,5,198,206,5,5,118,170,5,5,130,183,5,5,152,157,5,5,152,157,5,5,191,199,5,5,232,221,5,5,72,190,5,5,80,228,5,5,81,237,5,5,127,215,5,5,178,240,5,5,120,158,5,5,242,200,5,5,62,241,5,5,230,243,5,5,121,229,5,5,228,179,5,5,56,205,5,5,133,227,192,0,0,0,192,0,0,0,5,5,253,165,5,5,119,162,5,5,64,160,5,5,42,166,5,5,185,158,5,5,66,224,5,5,9,172,5,5,93,157,5,5,232,193,5,5,252,185,5,5,228,193,5,5,100,202,5,5,168,202,5,5,142,217,5,5,74,167,5,5,83,167,5,5,185,186,5,5,178,224,5,5,22,211,5,5,29,211,5,5,72,187,5,5,69,203,5,5,138,187,5,5,118,203,5,5,79,203,5,5,46,218,5,5,67,211,5,5,30,239,5,5,207,230,5,5,126,195,5,5,157,203,5,5,187,195,5,5,20,188,5,5,241,195,5,5,161,180,5,5,79,188,5,5,113,164,5,5,77,158,5,5,203,188,5,5,251,174,5,5,222,204,5,5,44,197,5,5,114,212,5,5,113,239,5,5,101,197,5,5,218,231,5,5,146,231,5,5,142,159,5,5,168,189,5,5,245,212,5,5,16,213,5,5,17,170,5,5,255,219,5,5,250,219,5,5,63,182,5,5,255,189,5,5,46,170,5,5,33,198,5,5,27,190,5,5,60,220,5,5,110,220,5,5,117,206,5,5,69,176,5,5,141,206,5,5,217,220,5,5,239,198,5,5,118,170,5,5,209,183,5,5,135,199,5,5,217,227,5,5,72,233,5,5,51,237,5,5,72,190,5,5,24,222,5,5,59,222,5,5,36,222,5,5,80,228,5,5,77,228,5,5,61,228,5,5,81,237,5,5,36,248,5,5,178,240,5,5,149,228,5,5,163,228,5,5,193,233,5,5,234,215,5,5,51,193,5,5,62,241,5,5,81,209,5,5,226,243,5,5,230,243,5,5,97,209,5,5,121,229,5,5,32,244,5,5,52,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,198,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,248,5,5,215,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,54,158,6,5,216,160,6,5,14,158,192,0,0,0,6,5,15,157,6,5,184,160,6,5,217,207,6,5,22,158,6,5,237,159,6,5,12,174,6,5,69,197,6,5,115,180,6,5,252,171,6,5,105,173,6,5,70,160,6,5,221,203,6,5,129,162,6,5,183,190,6,5,152,159,6,5,75,192,6,5,65,163,6,5,212,162,6,5,100,212,6,5,57,164,6,5,81,180,6,5,0,128,6,5,56,157,6,5,144,208,6,5,67,159,6,5,170,157,6,5,7,159,6,5,203,173,6,5,155,165,6,5,101,159,6,5,33,206,6,5,77,170,6,5,135,160,6,5,31,197,6,5,77,161,6,5,70,158,6,5,158,159,6,5,175,193,6,5,56,186,6,5,200,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,3,63,0,197,99,63,0,197,195,63,0,197,35,64,0,197,131,64,0,197,227,64,0,197,67,65,0,197,163,65,0,197,3,66,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,76,187,6,5,3,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,157,5,5,9,157,192,0,0,0,192,0,0,0,5,5,10,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,138,5,5,0,139,5,5,0,140,5,5,0,141,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,142,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,144,192,0,0,0,5,5,14,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,158,192,0,0,0,5,5,183,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,178,5,5,75,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,178,192,0,0,0,5,5,78,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,185,5,5,149,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,202,5,5,30,202,5,5,31,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,209,5,5,254,209,5,5,255,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,217,192,0,0,0,5,5,25,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,230,5,5,68,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,171,192,0,0,0,192,0,0,0,5,5,82,178,5,5,83,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,224,192,0,0,0,5,5,39,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,178,5,5,108,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,230,5,5,73,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,159,5,5,21,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,162,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,162,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,166,192,0,0,0,5,5,255,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,167,5,5,5,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,167,5,5,7,167,5,5,8,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,172,5,5,107,172,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,178,192,0,0,0,192,0,0,0,5,5,227,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,178,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,178,5,5,230,178,5,5,231,178,5,5,232,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,186,5,5,37,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,186,5,5,39,186,5,5,40,186,5,5,41,186,192,0,0,0,192,0,0,0,5,5,42,186,5,5,43,186,5,5,44,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,186,192,0,0,0,5,5,46,186,192,0,0,0,192,0,0,0,5,5,47,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,186,192,0,0,0,5,5,49,186,5,5,50,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,194,5,5,22,194,192,0,0,0,192,0,0,0,5,5,23,194,5,5,24,194,5,5,25,194,5,5,26,194,5,5,27,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,202,192,0,0,0,5,5,128,202,5,5,129,202,5,5,130,202,5,5,131,202,5,5,132,202,5,5,133,202,5,5,134,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,202,192,0,0,0,5,5,137,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,202,5,5,141,202,5,5,142,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,210,5,5,88,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,210,5,5,91,210,5,5,92,210,5,5,93,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,210,5,5,97,210,192,0,0,0,5,5,98,210,5,5,99,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,217,192,0,0,0,192,0,0,0,5,5,112,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,217,5,5,115,217,5,5,116,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,224,5,5,118,224,5,5,119,224,5,5,120,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,224,5,5,122,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,230,5,5,111,230,5,5,112,230,5,5,113,230,192,0,0,0,192,0,0,0,5,5,114,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,235,5,5,66,235,5,5,67,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,235,5,5,69,235,5,5,70,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,238,5,5,241,238,5,5,242,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,244,192,0,0,0,5,5,171,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,244,192,0,0,0,192,0,0,0,5,5,173,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,167,5,5,67,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,179,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,179,5,5,30,179,5,5,31,179,5,5,32,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,186,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,194,5,5,84,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,202,5,5,194,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,210,192,0,0,0,192,0,0,0,5,5,155,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,217,192,0,0,0,5,5,152,217,5,5,153,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,186,192,0,0,0,192,0,0,0,5,5,199,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,160,192,0,0,0,5,5,214,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,163,5,5,114,163,5,5,115,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,163,192,0,0,0,5,5,117,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,167,5,5,136,167,5,5,137,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,167,5,5,139,167,5,5,140,167,192,0,0,0,5,5,141,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,172,192,0,0,0,192,0,0,0,5,5,238,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,179,5,5,95,179,5,5,96,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,186,5,5,209,186,5,5,210,186,5,5,211,186,5,5,212,186,5,5,213,186,192,0,0,0,5,5,214,186,5,5,215,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,194,5,5,160,194,5,5,161,194,5,5,162,194,5,5,163,194,5,5,164,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,194,5,5,168,194,5,5,169,194,5,5,170,194,192,0,0,0,192,0,0,0,5,5,171,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,202,5,5,242,202,192,0,0,0,5,5,243,202,5,5,244,202,5,5,245,202,5,5,246,202,5,5,247,202,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,210,5,5,204,210,5,5,205,210,192,0,0,0,192,0,0,0,5,5,206,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,210,5,5,208,210,5,5,209,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,217,192,0,0,0,192,0,0,0,5,5,192,217,5,5,193,217,5,5,194,217,5,5,195,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,217,5,5,199,217,5,5,200,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,224,5,5,172,224,5,5,173,224,5,5,174,224,5,5,175,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,224,5,5,177,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,230,5,5,152,230,5,5,153,230,5,5,154,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,239,5,5,7,239,5,5,8,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,242,5,5,56,242,5,5,57,242,192,0,0,0,192,0,0,0,5,5,58,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,194,192,0,0,0,192,0,0,0,5,5,249,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,157,5,5,121,157,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,194,192,0,0,0,192,0,0,0,5,5,202,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,160,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,239,192,0,0,0,192,0,0,0,5,5,20,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,0,145,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,194,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,179,192,0,0,0,5,5,184,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,163,192,0,0,0,192,0,0,0,5,5,223,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,168,5,5,82,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,180,192,0,0,0,5,5,23,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,187,5,5,157,187,5,5,158,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,187,192,0,0,0,5,5,160,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,187,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,203,5,5,123,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,218,5,5,78,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,173,192,0,0,0,5,5,236,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,180,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,188,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,195,5,5,191,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,195,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,211,192,0,0,0,192,0,0,0,5,5,162,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,211,5,5,164,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,225,192,0,0,0,192,0,0,0,5,5,49,225,5,5,50,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,195,5,5,222,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,180,5,5,149,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,188,5,5,72,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,196,5,5,8,196,5,5,9,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,204,192,0,0,0,5,5,9,204,5,5,10,204,5,5,11,204,5,5,12,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,225,5,5,180,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,225,5,5,98,225,5,5,99,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,235,5,5,158,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,169,5,5,47,169,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,169,5,5,49,169,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,169,192,0,0,0,5,5,51,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,181,192,0,0,0,192,0,0,0,5,5,18,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,204,192,0,0,0,192,0,0,0,5,5,116,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,212,5,5,38,212,5,5,39,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,219,192,0,0,0,192,0,0,0,5,5,14,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,231,192,0,0,0,5,5,55,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,242,5,5,119,242,5,5,120,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,164,5,5,219,164,5,5,220,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,169,192,0,0,0,5,5,161,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,169,5,5,163,169,5,5,164,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,175,5,5,20,175,5,5,21,175,5,5,22,175,5,5,141,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,189,5,5,75,189,5,5,76,189,5,5,77,189,5,5,78,189,5,5,79,189,5,5,80,189,5,5,81,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,197,5,5,54,197,5,5,55,197,5,5,56,197,5,5,57,197,5,5,58,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,204,5,5,243,204,5,5,244,204,5,5,245,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,212,5,5,158,212,5,5,159,212,5,5,160,212,5,5,161,212,5,5,162,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,219,5,5,130,219,5,5,131,219,5,5,132,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,219,192,0,0,0,192,0,0,0,5,5,135,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,226,5,5,17,226,5,5,18,226,5,5,19,226,5,5,20,226,5,5,21,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,231,5,5,111,231,5,5,112,231,5,5,113,231,5,5,114,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,235,5,5,233,235,5,5,234,235,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,246,5,5,161,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,247,5,5,222,247,5,5,223,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,247,192,0,0,0,192,0,0,0,5,5,225,247,192,0,0,0,5,5,207,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,250,192,0,0,0,192,0,0,0,5,5,32,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,169,5,5,197,169,5,5,198,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,189,192,0,0,0,192,0,0,0,5,5,127,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,197,5,5,108,197,5,5,109,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,197,192,0,0,0,5,5,112,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,205,192,0,0,0,5,5,53,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,205,5,5,55,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,219,5,5,169,219,5,5,170,219,5,5,171,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,226,5,5,73,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,235,5,5,250,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,239,5,5,148,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,242,5,5,160,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,244,192,0,0,0,192,0,0,0,5,5,228,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,247,192,0,0,0,192,0,0,0,5,5,231,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,165,5,5,16,165,5,5,17,165,5,5,18,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,170,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,170,5,5,10,170,5,5,11,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,175,5,5,135,175,192,0,0,0,5,5,136,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,175,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,175,5,5,139,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,182,5,5,4,182,5,5,5,182,5,5,6,182,5,5,7,182,5,5,8,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,189,5,5,205,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,189,5,5,207,189,5,5,208,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,197,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,197,192,0,0,0,192,0,0,0,5,5,205,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,197,5,5,207,197,5,5,208,197,5,5,209,197,5,5,210,197,5,5,211,197,5,5,212,197,5,5,213,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,197,192,0,0,0,192,0,0,0,5,5,216,197,192,0,0,0,5,5,217,197,192,0,0,0,5,5,218,197,5,5,219,197,5,5,220,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,205,5,5,135,205,5,5,136,205,5,5,137,205,5,5,138,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,205,5,5,143,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,205,192,0,0,0,5,5,145,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,212,5,5,2,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,213,5,5,4,213,5,5,5,213,5,5,6,213,192,0,0,0,5,5,7,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,213,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,213,5,5,10,213,192,0,0,0,5,5,231,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,219,5,5,233,219,5,5,234,219,5,5,235,219,5,5,236,219,5,5,237,219,5,5,238,219,5,5,239,219,5,5,240,219,5,5,241,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,219,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,226,192,0,0,0,192,0,0,0,5,5,111,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,226,5,5,114,226,5,5,115,226,5,5,116,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,226,5,5,119,226,5,5,120,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,231,5,5,180,231,5,5,181,231,5,5,182,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,236,5,5,15,236,5,5,16,236,5,5,17,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,236,5,5,19,236,5,5,20,236,5,5,21,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,239,5,5,173,239,5,5,174,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,239,5,5,176,239,5,5,177,239,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,242,192,0,0,0,192,0,0,0,5,5,245,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,247,192,0,0,0,192,0,0,0,5,5,229,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,205,5,5,162,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,205,5,5,191,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,231,192,0,0,0,5,5,206,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,205,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,220,192,0,0,0,192,0,0,0,5,5,25,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,190,5,5,26,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,205,192,0,0,0,192,0,0,0,5,5,234,205,5,5,235,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,213,5,5,75,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,239,192,0,0,0,192,0,0,0,5,5,197,239,192,0,0,0,5,5,198,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,176,5,5,4,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,182,192,0,0,0,5,5,146,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,226,5,5,207,226,5,5,208,226,5,5,209,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,226,192,0,0,0,192,0,0,0,5,5,211,226,5,5,212,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,232,192,0,0,0,192,0,0,0,5,5,11,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,206,5,5,65,206,5,5,66,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,239,192,0,0,0,192,0,0,0,5,5,224,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,226,5,5,40,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,213,5,5,214,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,232,5,5,122,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,236,192,0,0,0,5,5,124,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,206,5,5,139,206,5,5,140,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,220,5,5,185,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,190,5,5,195,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,220,5,5,246,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,236,5,5,160,236,5,5,161,236,5,5,162,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,242,5,5,242,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,159,5,5,182,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,161,5,5,188,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,176,192,0,0,0,192,0,0,0,5,5,118,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,183,5,5,65,183,5,5,66,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,232,5,5,156,232,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,159,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,183,192,0,0,0,5,5,127,183,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,214,5,5,106,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,236,192,0,0,0,5,5,40,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,191,192,0,0,0,192,0,0,0,5,5,63,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,131,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,161,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,191,5,5,65,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,214,5,5,120,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,170,192,0,0,0,5,5,222,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,176,5,5,248,176,5,5,249,176,5,5,250,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,183,5,5,239,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,199,5,5,193,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,194,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,199,5,5,196,199,5,5,197,199,5,5,198,199,5,5,199,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,199,5,5,202,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,199,192,0,0,0,192,0,0,0,5,5,204,199,192,0,0,0,192,0,0,0,5,5,123,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,207,5,5,126,207,5,5,127,207,5,5,128,207,5,5,129,207,5,5,130,207,5,5,131,207,5,5,132,207,5,5,133,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,214,5,5,213,214,5,5,214,214,5,5,215,214,5,5,216,214,5,5,217,214,5,5,218,214,5,5,219,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,214,5,5,223,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,221,192,0,0,0,5,5,149,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,221,5,5,152,221,5,5,153,221,5,5,154,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,227,192,0,0,0,192,0,0,0,5,5,200,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,227,5,5,203,227,5,5,204,227,5,5,205,227,5,5,206,227,5,5,207,227,5,5,208,227,5,5,209,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,233,5,5,5,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,233,192,0,0,0,5,5,7,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,236,5,5,249,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,240,5,5,89,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,243,5,5,49,243,5,5,50,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,245,192,0,0,0,192,0,0,0,5,5,80,245,5,5,229,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,246,5,5,231,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,248,5,5,235,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,233,192,0,0,0,192,0,0,0,5,5,57,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,237,192,0,0,0,5,5,34,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,170,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,221,5,5,11,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,158,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,184,5,5,63,184,5,5,64,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,228,5,5,36,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,49,237,5,5,50,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,233,5,5,122,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,243,5,5,104,243,5,5,105,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,200,5,5,130,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,249,192,0,0,0,5,5,241,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,208,5,5,100,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,228,5,5,135,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,233,5,5,164,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,192,192,0,0,0,5,5,112,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,200,5,5,247,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,197,165,5,5,198,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,192,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,192,5,5,229,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,201,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,209,5,5,7,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,216,192,0,0,0,5,5,44,216,5,5,45,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,223,192,0,0,0,5,5,44,223,192,0,0,0,192,0,0,0,5,5,45,223,192,0,0,0,5,5,46,223,5,5,47,223,192,0,0,0,192,0,0,0,5,5,26,229,5,5,27,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,229,5,5,29,229,5,5,30,229,5,5,31,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,234,5,5,20,234,5,5,21,234,5,5,22,234,5,5,23,234,5,5,24,234,5,5,25,234,5,5,26,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,234,5,5,28,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,234,5,5,30,234,5,5,31,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,237,5,5,221,237,5,5,222,237,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,237,5,5,226,237,192,0,0,0,5,5,227,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,241,5,5,44,241,5,5,45,241,5,5,46,241,5,5,47,241,5,5,48,241,192,0,0,0,5,5,49,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,243,5,5,194,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,243,5,5,196,243,5,5,197,243,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,243,192,0,0,0,5,5,201,243,192,0,0,0,5,5,202,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,245,5,5,174,245,5,5,175,245,5,5,176,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,247,192,0,0,0,192,0,0,0,5,5,47,247,5,5,48,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,248,192,0,0,0,192,0,0,0,5,5,78,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,248,192,0,0,0,192,0,0,0,5,5,80,248,192,0,0,0,5,5,81,248,5,5,82,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,249,5,5,16,249,5,5,17,249,5,5,18,249,5,5,19,249,5,5,20,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,249,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,249,5,5,2,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,250,192,0,0,0,192,0,0,0,5,5,57,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,250,192,0,0,0,5,5,161,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,184,192,0,0,0,192,0,0,0,5,5,255,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,165,192,0,0,0,192,0,0,0,5,5,234,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,177,5,5,191,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,193,5,5,54,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,201,192,0,0,0,192,0,0,0,5,5,165,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,216,5,5,98,216,5,5,99,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,229,5,5,89,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,229,5,5,91,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,192,0,0,0,5,5,81,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,241,192,0,0,0,192,0,0,0,5,5,219,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,216,192,0,0,0,192,0,0,0,5,5,111,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,36,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,229,5,5,126,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,234,192,0,0,0,5,5,109,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,238,192,0,0,0,5,5,90,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,244,192,0,0,0,5,5,15,244,5,5,16,244,5,5,17,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,229,192,0,0,0,192,0,0,0,5,5,230,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,247,5,5,150,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,248,5,5,157,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,85,249,5,5,86,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,235,192,0,0,0,5,5,186,238,192,0,0,0,5,5,187,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,238,192,0,0,0,192,0,0,0,5,5,189,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,123,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,239,5,5,35,162,5,5,65,157,5,5,0,133,192,0,0,0,5,5,98,162,5,5,159,171,5,5,172,171,5,5,10,178,5,5,140,185,5,5,141,193,5,5,239,209,5,5,215,209,192,0,0,0,192,0,0,0,5,5,110,162,5,5,97,166,5,5,154,244,5,5,103,166,192,0,0,0,192,0,0,0,5,5,215,157,5,5,70,160,192,0,0,0,5,5,226,157,5,5,91,178,5,5,204,157,5,5,195,158,5,5,119,162,192,0,0,0,5,5,28,157,5,5,90,157,5,5,146,162,5,5,130,166,5,5,141,166,5,5,175,193,5,5,37,202,192,0,0,0,5,5,9,172,5,5,11,172,5,5,51,202,5,5,93,157,5,5,218,158,5,5,219,158,5,5,221,158,5,5,226,158,5,5,161,166,5,5,189,193,5,5,170,162,5,5,23,172,5,5,144,178,5,5,144,178,5,5,144,178,192,0,0,0,5,5,138,161,5,5,12,158,5,5,152,178,192,0,0,0,5,5,253,158,5,5,5,159,5,5,133,160,5,5,37,172,5,5,211,162,5,5,227,162,5,5,200,166,5,5,41,172,5,5,175,178,5,5,200,178,5,5,250,185,5,5,10,186,5,5,208,193,5,5,208,193,5,5,228,193,5,5,246,193,5,5,254,193,5,5,69,202,5,5,104,210,5,5,54,210,5,5,105,210,5,5,86,210,5,5,106,217,5,5,235,157,5,5,181,160,5,5,159,172,5,5,86,186,5,5,111,186,5,5,116,172,5,5,33,179,5,5,62,194,5,5,136,217,192,0,0,0,5,5,67,163,5,5,127,186,5,5,69,163,5,5,184,160,5,5,160,210,5,5,137,186,192,0,0,0,192,0,0,0,5,5,44,179,5,5,62,179,5,5,74,179,5,5,185,172,5,5,189,186,192,0,0,0,192,0,0,0,5,5,179,217,5,5,254,238,5,5,254,238,192,0,0,0,5,5,225,186,5,5,254,202,5,5,225,210,5,5,10,239,192,0,0,0,5,5,134,163,5,5,2,173,5,5,21,161,5,5,119,157,192,0,0,0,5,5,242,186,5,5,123,157,5,5,215,167,5,5,172,163,192,0,0,0,5,5,221,194,192,0,0,0,5,5,30,203,5,5,251,194,5,5,236,210,5,5,166,165,5,5,36,187,192,0,0,0,5,5,254,194,5,5,172,179,5,5,3,195,5,5,253,217,5,5,203,224,192,0,0,0,192,0,0,0,5,5,81,173,5,5,53,187,5,5,56,187,5,5,23,195,192,0,0,0,5,5,137,157,192,0,0,0,192,0,0,0,5,5,133,183,5,5,4,168,5,5,4,168,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,163,5,5,73,187,192,0,0,0,5,5,33,195,5,5,225,163,5,5,230,163,5,5,255,163,5,5,235,179,192,0,0,0,192,0,0,0,5,5,250,179,192,0,0,0,5,5,127,187,5,5,54,211,5,5,116,203,5,5,118,203,5,5,116,203,5,5,82,211,5,5,46,218,5,5,233,224,5,5,62,218,5,5,70,218,5,5,196,230,5,5,30,239,5,5,32,239,5,5,40,161,5,5,164,187,5,5,47,161,5,5,104,168,5,5,138,168,5,5,76,180,192,0,0,0,5,5,57,180,5,5,193,173,5,5,173,187,5,5,200,187,5,5,101,180,192,0,0,0,5,5,163,203,5,5,210,203,5,5,235,187,192,0,0,0,5,5,84,218,5,5,143,211,5,5,114,218,5,5,137,211,192,0,0,0,5,5,13,188,5,5,214,203,192,0,0,0,5,5,48,188,5,5,152,180,5,5,134,180,5,5,89,225,5,5,2,196,5,5,2,204,192,0,0,0,5,5,233,171,5,5,155,185,5,5,165,193,5,5,179,211,5,5,135,170,5,5,156,170,5,5,161,180,5,5,79,188,5,5,221,206,5,5,121,164,5,5,110,164,192,0,0,0,5,5,36,169,5,5,124,174,5,5,247,168,5,5,155,174,5,5,108,188,192,0,0,0,5,5,117,188,5,5,178,180,5,5,102,196,192,0,0,0,5,5,35,204,5,5,224,211,5,5,194,218,5,5,44,231,192,0,0,0,5,5,57,231,5,5,150,246,5,5,98,161,192,0,0,0,5,5,190,225,192,0,0,0,5,5,129,204,5,5,52,212,5,5,203,188,5,5,204,188,192,0,0,0,192,0,0,0,5,5,57,212,5,5,114,161,192,0,0,0,5,5,99,169,5,5,112,169,5,5,157,164,5,5,57,181,5,5,248,174,5,5,91,181,5,5,251,174,5,5,77,181,5,5,92,181,5,5,105,181,192,0,0,0,5,5,238,174,5,5,206,196,5,5,14,197,5,5,240,204,5,5,44,197,5,5,207,204,192,0,0,0,5,5,40,189,5,5,79,219,192,0,0,0,192,0,0,0,5,5,136,219,5,5,133,242,5,5,113,239,5,5,110,239,192,0,0,0,5,5,227,244,5,5,230,164,5,5,224,164,5,5,37,175,192,0,0,0,5,5,253,204,192,0,0,0,5,5,140,219,192,0,0,0,5,5,121,250,5,5,146,231,5,5,63,205,192,0,0,0,5,5,120,197,5,5,217,212,192,0,0,0,192,0,0,0,5,5,158,239,5,5,102,158,192,0,0,0,5,5,249,169,5,5,219,181,5,5,219,181,5,5,106,205,5,5,127,205,5,5,245,212,5,5,216,219,5,5,168,239,192,0,0,0,5,5,225,197,192,0,0,0,5,5,19,170,192,0,0,0,5,5,227,189,192,0,0,0,5,5,193,205,192,0,0,0,5,5,255,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,182,5,5,90,182,5,5,90,182,5,5,33,198,5,5,41,198,5,5,32,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,43,190,5,5,5,206,5,5,60,220,192,0,0,0,192,0,0,0,5,5,154,182,192,0,0,0,192,0,0,0,5,5,115,213,5,5,189,182,192,0,0,0,5,5,99,220,5,5,140,213,5,5,227,226,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,213,5,5,201,213,192,0,0,0,5,5,138,220,5,5,247,226,192,0,0,0,192,0,0,0,5,5,37,227,192,0,0,0,5,5,100,232,5,5,125,236,5,5,78,176,192,0,0,0,5,5,193,198,5,5,241,220,5,5,21,214,5,5,231,220,5,5,130,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,227,192,0,0,0,5,5,226,190,5,5,175,236,5,5,118,170,192,0,0,0,192,0,0,0,5,5,13,199,192,0,0,0,5,5,160,232,192,0,0,0,192,0,0,0,5,5,140,170,5,5,109,183,192,0,0,0,5,5,24,199,5,5,206,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,183,5,5,70,199,5,5,126,208,192,0,0,0,5,5,112,165,5,5,106,165,5,5,171,170,5,5,157,162,5,5,191,170,5,5,193,170,5,5,202,170,5,5,201,176,192,0,0,0,5,5,200,176,5,5,69,191,5,5,224,183,5,5,150,191,5,5,70,191,5,5,145,191,5,5,127,199,5,5,191,199,5,5,242,183,5,5,99,199,5,5,101,199,5,5,116,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,207,5,5,74,221,5,5,108,221,192,0,0,0,5,5,181,227,192,0,0,0,192,0,0,0,5,5,51,245,192,0,0,0,5,5,77,245,192,0,0,0,5,5,253,176,5,5,139,207,5,5,10,233,5,5,251,236,5,5,28,184,5,5,208,199,5,5,168,207,5,5,226,199,5,5,217,227,5,5,248,214,5,5,29,215,5,5,222,227,192,0,0,0,5,5,211,221,5,5,92,240,192,0,0,0,5,5,8,228,5,5,225,161,192,0,0,0,5,5,28,200,5,5,200,207,192,0,0,0,5,5,50,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,12,208,5,5,61,228,5,5,36,248,5,5,149,165,192,0,0,0,5,5,77,192,5,5,128,200,5,5,253,248,5,5,131,184,192,0,0,0,192,0,0,0,5,5,162,200,5,5,69,208,5,5,87,208,192,0,0,0,5,5,146,184,5,5,149,228,192,0,0,0,192,0,0,0,5,5,3,162,5,5,137,177,5,5,166,208,192,0,0,0,5,5,206,215,5,5,196,208,5,5,5,223,5,5,6,223,5,5,47,216,5,5,39,241,5,5,172,243,192,0,0,0,5,5,107,201,192,0,0,0,5,5,46,234,192,0,0,0,192,0,0,0,5,5,150,201,5,5,195,224,5,5,4,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,209,5,5,97,209,5,5,124,223,192,0,0,0,5,5,41,185,192,0,0,0,5,5,151,229,5,5,116,241,5,5,175,216,5,5,147,234,192,0,0,0,192,0,0,0,5,5,32,244,5,5,76,244,5,5,248,223,192,0,0,0,5,5,108,244,5,5,252,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,193,192,0,0,0,5,5,235,201,5,5,141,171,5,5,72,246,5,5,37,224,5,5,204,238,5,5,244,216,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,0,0,142,9,0,5,0,5,0,0,0,128,28,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,15,157,24,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,56,157,26,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,25,159,12,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,187,157,23,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,217,157,18,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,0,154,27,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,21,157,19,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,12,157,25,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,38,157,16,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,70,158,8,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,86,158,3,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,85,158,4,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,71,158,6,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,102,157,11,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,67,158,9,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,189,180,5,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,77,161,7,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,140,160,14,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,197,181,2,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,158,162,17,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,163,158,22,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,218,166,13,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,149,167,10,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,7,160,21,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,164,166,15,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,23,160,20,15,0,5,0,0,144,9,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,5,5,142,9,5,5,70,171,6,5,144,9,5,5,142,9,5,5,62,170,13,5,144,9,5,5,142,9,5,5,114,184,8,5,144,9,5,5,142,9,5,5,161,182,12,5,144,9,5,5,142,9,5,5,48,213,14,5,144,9,5,5,142,9,5,5,42,208,7,5,144,9,5,5,142,9,5,5,68,190,11,5,144,9,5,5,142,9,5,5,202,161,10,5,144,9,5,5,142,9,5,5,203,161,9,5,144,9,5,5,0,21,17,5,70,158,5,5,0,23,16,5,70,158,5,5,0,25,15,5,70,158,5,5,0,27,14,5,70,158,5,5,0,29,13,5,70,158,5,5,0,31,12,5,70,158,5,5,0,33,11,5,70,158,5,5,0,35,10,5,70,158,5,5,0,37,9,5,70,158,5,5,0,21,5,5,0,19,20,5,70,158,5,5,0,21,5,5,0,21,19,5,70,158,5,5,0,21,5,5,0,23,18,5,70,158,5,5,164,158,7,5,234,166,5,5,0,19,30,5,49,175,5,5,0,21,19,5,49,175,5,5,0,23,13,5,49,175,5,5,0,25,12,5,49,175,5,5,0,27,11,5,49,175,5,5,0,29,10,5,49,175,5,5,0,31,9,5,49,175,5,5,0,33,8,5,49,175,5,5,0,35,7,5,49,175,5,5,0,37,6,5,49,175,5,5,0,21,5,5,0,19,29,5,49,175,5,5,0,21,5,5,0,21,28,5,49,175,5,5,0,21,5,5,0,23,27,5,49,175,5,5,0,21,5,5,0,25,26,5,49,175,5,5,0,21,5,5,0,27,25,5,49,175,5,5,0,21,5,5,0,29,24,5,49,175,5,5,0,21,5,5,0,31,23,5,49,175,5,5,0,21,5,5,0,33,22,5,49,175,5,5,0,21,5,5,0,35,21,5,49,175,5,5,0,21,5,5,0,37,20,5,49,175,5,5,0,23,5,5,0,19,18,5,49,175,5,5,0,23,5,5,0,21,17,5,49,175,5,5,0,23,5,5,0,23,16,5,49,175,5,5,0,23,5,5,0,25,15,5,49,175,5,5,0,23,5,5,0,27,14,5,49,175,5,5,76,159,6,5,40,161,5,5,25,174,6,5,234,166,5,5,107,157,7,5,118,159,5,5,203,168,6,5,95,169,5,5,189,180,5,5,15,161,5,5,32,160,7,5,62,170,5,5,0,21,28,5,67,158,5,5,0,23,17,5,67,158,5,5,0,25,14,5,67,158,5,5,0,27,13,5,67,158,5,5,0,29,12,5,67,158,5,5,0,31,11,5,67,158,5,5,0,33,10,5,67,158,5,5,0,35,9,5,67,158,5,5,0,37,8,5,67,158,5,5,0,21,5,5,0,19,38,5,67,158,5,5,0,21,5,5,0,21,37,5,67,158,5,5,0,21,5,5,0,23,36,5,67,158,5,5,0,21,5,5,0,25,35,5,67,158,5,5,0,21,5,5,0,27,34,5,67,158,5,5,0,21,5,5,0,29,33,5,67,158,5,5,0,21,5,5,0,31,32,5,67,158,5,5,0,21,5,5,0,33,31,5,67,158,5,5,0,21,5,5,0,35,30,5,67,158,5,5,0,21,5,5,0,37,29,5,67,158,5,5,0,23,5,5,0,19,27,5,67,158,5,5,0,23,5,5,0,21,26,5,67,158,5,5,0,23,5,5,0,23,25,5,67,158,5,5,0,23,5,5,0,25,24,5,67,158,5,5,0,23,5,5,0,27,23,5,67,158,5,5,0,23,5,5,0,29,22,5,67,158,5,5,0,23,5,5,0,31,21,5,67,158,5,5,0,23,5,5,0,33,20,5,67,158,5,5,0,23,5,5,0,35,19,5,67,158,5,5,0,23,5,5,0,37,18,5,67,158,5,5,0,25,5,5,0,19,16,5,67,158,5,5,0,25,5,5,0,21,15,5,67,158,5,5,82,10,5,5,113,159,8,5,84,10,5,5,82,10,5,5,56,157,14,5,84,10,5,5,82,10,5,5,15,157,13,5,84,10,5,5,82,10,5,5,224,160,11,5,84,10,5,5,82,10,5,5,49,175,7,5,84,10,5,5,82,10,5,5,101,159,10,5,84,10,5,5,82,10,5,5,253,189,6,5,84,10,5,5,82,10,5,5,182,193,12,5,84,10,5,5,82,10,5,5,21,188,9,5,84,10,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,41,0,198,161,36,0,19,40,82,0,28,40,42,0,33,40,20,0,33,40,255,255,163,250,5,5,35,40,255,255,169,250,5,5,36,40,255,255,171,250,5,5,39,40,255,255,173,250,5,5,48,40,255,255,175,250,5,5,28,40,255,255,84,250,5,5,29,40,255,255,120,250,5,5,30,40,255,255,136,250,5,5,31,40,255,255,152,250,5,5,32,40,255,255,158,250,5,5,23,40,20,0,23,40,255,255,175,247,5,5,24,40,255,255,181,248,5,5,25,40,255,255,99,249,5,5,26,40,255,255,219,249,5,5,27,40,255,255,26,250,5,5,19,40,255,255,216,238,5,5,20,40,255,255,25,242,5,5,21,40,255,255,148,244,5,5,22,40,255,255,90,246,5,5,10,40,38,0,14,40,20,0,14,40,255,255,211,209,5,5,15,40,255,255,248,216,5,5,16,40,255,255,44,224,5,5,17,40,255,255,53,230,5,5,18,40,255,255,33,235,5,5,10,40,255,255,238,177,5,5,11,40,255,255,79,185,5,5,12,40,255,255,110,193,5,5,13,40,255,255,238,201,5,5,5,40,20,0,5,40,255,255,126,158,5,5,6,40,255,255,213,159,5,5,7,40,255,255,31,162,5,5,8,40,255,255,252,165,5,5,9,40,255,255,144,171,5,5,1,40,255,255,0,127,5,5,2,40,255,255,0,151,5,5,3,40,255,255,53,157,5,5,4,40,255,255,162,157,5,5,8,0,1,40,34,40,35,40,37,40,39,40,40,40,48,40,49,40,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,235,251,1,16,206,41,1,96,1,0,0,96,170,170,170,170,140,77,0,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,164,32,0,0,164,32,0,0,140,40,0,0,140,40,0,0,72,45,0,0,72,45,0,0,8,69,0,0,64,73,0,0,112,77,0,0,17,0,0,0,5,0,0,0,0,0,0,41,127,0,0,96,125,0,0,123,44,0,118,123,125,0,0,126,169,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,0,249,250,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,64,8,235,0,255,255,192,0,32,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,0,176,0,184,0,189,0,48,0,197,0,205,0,213,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,226,0,161,0,48,0,48,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,153,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,218,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,36,0,202,193,36,0,202,226,36,0,202,3,37,0,202,36,37,0,202,69,37,0,202,102,37,0,202,135,37,0,202,168,37,0,202,201,37,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,226,35,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,34,36,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,98,36,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,5,5,0,19,5,5,0,21,5,5,0,23,5,5,0,25,5,5,0,27,5,5,0,29,5,5,0,31,5,5,0,33,5,5,0,35,5,5,0,37,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,31,0,198,129,0,0,0,1,12,128,107,2,117,152,75,1,254,158,187,0,7,249,74,0,196,249,38,0,10,250,20,0,10,250,255,255,25,253,193,42,30,250,255,255,195,252,193,136,60,250,255,255,135,251,193,8,149,250,255,255,11,252,193,192,206,250,255,255,224,253,193,118,196,249,255,255,224,253,193,12,233,249,255,255,98,253,193,98,247,249,255,255,152,252,193,118,8,250,255,255,15,253,193,118,64,249,16,0,64,249,255,255,209,253,193,178,113,249,255,255,78,253,193,128,129,249,255,255,106,251,193,100,138,249,255,255,42,251,193,8,7,249,255,255,224,253,193,118,8,249,255,255,224,253,193,118,10,249,255,255,98,253,193,242,52,249,255,255,198,252,193,84,127,159,75,0,159,159,57,0,159,159,255,255,224,253,193,218,160,159,255,255,224,253,193,236,126,216,4,0,2,249,255,255,70,253,193,218,9,0,210,221,20,0,210,221,255,255,45,253,193,112,21,222,255,255,213,253,193,94,23,222,255,255,217,253,193,36,24,222,255,255,217,253,193,222,28,222,255,255,219,253,193,240,29,220,255,255,34,251,193,200,117,220,255,255,130,251,193,144,120,220,255,255,135,251,193,8,144,220,255,255,160,251,193,102,196,221,255,255,16,253,193,52,127,159,255,255,223,253,193,110,141,159,255,255,224,253,193,12,153,159,255,255,224,253,193,96,156,159,255,255,224,253,193,118,59,159,16,0,59,159,255,255,219,253,193,240,74,159,255,255,220,253,193,176,80,159,255,255,220,253,193,236,82,159,255,255,220,253,193,248,254,158,255,255,217,253,193,222,14,159,255,255,218,253,193,6,19,159,255,255,218,253,193,62,32,159,255,255,218,253,193,220,50,155,70,0,165,158,34,0,205,158,16,0,205,158,255,255,214,253,193,124,209,158,255,255,214,253,193,252,249,158,255,255,217,253,193,36,253,158,255,255,217,253,193,62,165,158,255,255,211,253,193,56,166,158,255,255,212,253,193,196,187,158,255,255,213,253,193,94,195,158,255,255,213,253,193,210,229,156,16,0,229,156,255,255,195,253,193,218,31,158,255,255,206,253,193,72,117,158,255,255,208,253,193,240,127,158,255,255,209,253,193,178,50,155,255,255,180,253,193,172,60,155,255,255,181,253,193,166,90,155,255,255,184,253,193,2,124,156,255,255,193,253,193,64,153,153,34,0,216,154,16,0,216,154,255,255,175,253,193,232,223,154,255,255,176,253,193,186,37,155,255,255,180,253,193,58,47,155,255,255,180,253,193,136,153,153,255,255,164,253,193,252,172,153,255,255,165,253,193,208,108,154,255,255,171,253,193,244,168,154,255,255,173,253,193,168,222,152,16,0,222,152,255,255,157,253,193,164,223,152,255,255,157,253,193,170,99,153,255,255,163,253,193,20,150,153,255,255,164,253,193,110,117,152,255,255,153,253,193,70,168,152,255,255,154,253,193,82,206,152,255,255,156,253,193,242,219,152,255,255,157,253,193,122,100,141,142,0,127,149,70,0,94,151,34,0,230,151,16,0,230,151,255,255,147,253,193,30,237,151,255,255,147,253,193,108,243,151,255,255,147,253,193,184,1,152,255,255,148,253,193,142,94,151,255,255,140,253,193,44,98,151,255,255,140,253,193,152,105,151,255,255,141,253,193,160,203,151,255,255,145,253,193,196,182,150,16,0,182,150,255,255,131,253,193,186,185,150,255,255,131,253,193,228,232,150,255,255,134,253,193,178,81,151,255,255,139,253,193,216,127,149,255,255,120,253,193,2,128,149,255,255,120,253,193,6,232,149,255,255,124,253,193,84,28,150,255,255,125,253,193,154,181,143,34,0,204,145,16,0,204,145,255,255,98,253,193,98,209,145,255,255,98,253,193,242,133,148,255,255,114,253,193,86,119,149,255,255,118,253,193,200,181,143,255,255,78,253,193,176,145,144,255,255,87,253,193,98,73,145,255,255,93,253,193,148,198,145,255,255,98,253,193,30,202,142,16,0,202,142,255,255,70,253,193,218,102,143,255,255,76,253,193,100,155,143,255,255,77,253,193,186,176,143,255,255,78,253,193,128,100,141,255,255,54,253,193,190,112,141,255,255,55,253,193,84,179,141,255,255,59,253,193,84,171,142,255,255,68,253,193,230,107,134,70,0,0,138,34,0,85,140,16,0,85,140,255,255,45,253,193,112,120,140,255,255,47,253,193,36,157,140,255,255,48,253,193,190,29,141,255,255,53,253,193,202,0,138,255,255,30,253,193,38,160,139,255,255,40,253,193,192,55,140,255,255,43,253,193,160,70,140,255,255,44,253,193,90,126,137,16,0,126,137,255,255,24,253,193,136,139,137,255,255,25,253,193,42,193,137,255,255,27,253,193,148,210,137,255,255,27,253,193,240,107,134,255,255,254,252,193,150,64,136,255,255,14,253,193,202,76,136,255,255,15,253,193,118,99,136,255,255,16,253,193,52,252,129,34,0,110,130,16,0,110,130,255,255,222,252,193,106,114,130,255,255,222,252,193,140,120,130,255,255,223,252,193,6,77,134,255,255,252,252,193,174,252,129,255,255,217,252,193,10,12,130,255,255,218,252,193,106,27,130,255,255,219,252,193,90,31,130,255,255,219,252,193,128,137,128,16,0,137,128,255,255,203,252,193,226,227,129,255,255,215,252,193,90,234,129,255,255,215,252,193,222,243,129,255,255,216,252,193,152,12,128,255,255,198,252,193,214,18,128,255,255,199,252,193,40,51,128,255,255,200,252,193,74,127,128,255,255,203,252,193,128,54,98,30,1,132,115,142,0,226,119,70,0,115,124,34,0,81,127,16,0,81,127,255,255,189,252,193,238,138,127,255,255,193,252,193,14,189,127,255,255,195,252,193,136,1,128,255,255,198,252,193,84,115,124,255,255,168,252,193,76,248,124,255,255,174,252,193,70,159,126,255,255,185,252,193,220,54,127,255,255,188,252,193,198,190,121,16,0,190,121,255,255,140,252,193,156,116,122,255,255,148,252,193,22,203,122,255,255,152,252,193,118,249,122,255,255,154,252,193,154,226,119,255,255,124,252,193,16,243,119,255,255,125,252,193,134,58,121,255,255,134,252,193,210,184,121,255,255,140,252,193,88,139,117,34,0,174,118,16,0,174,118,255,255,109,252,193,26,191,118,255,255,110,252,193,184,238,118,255,255,113,252,193,128,219,119,255,255,123,252,193,54,139,117,255,255,98,252,193,100,146,117,255,255,98,252,193,176,118,118,255,255,106,252,193,156,125,118,255,255,106,252,193,250,24,117,16,0,24,117,255,255,92,252,193,188,31,117,255,255,93,252,193,36,40,117,255,255,93,252,193,208,48,117,255,255,94,252,193,32,132,115,255,255,79,252,193,112,137,115,255,255,79,252,193,132,220,116,255,255,89,252,193,158,230,116,255,255,90,252,193,104,179,107,70,0,42,114,34,0,71,114,16,0,71,114,255,255,66,252,193,252,89,114,255,255,68,252,193,28,91,114,255,255,68,252,193,94,172,114,255,255,72,252,193,46,42,114,255,255,64,252,193,48,54,114,255,255,65,252,193,150,59,114,255,255,65,252,193,218,63,114,255,255,66,252,193,14,15,108,16,0,15,108,255,255,20,252,193,236,20,108,255,255,21,252,193,54,52,108,255,255,21,252,193,230,107,112,255,255,48,252,193,142,179,107,255,255,14,252,193,174,203,107,255,255,16,252,193,104,212,107,255,255,16,252,193,180,219,107,255,255,17,252,193,22,224,101,34,0,40,103,16,0,40,103,255,255,235,251,193,114,32,107,255,255,6,252,193,188,98,107,255,255,9,252,193,190,121,107,255,255,11,252,193,192,224,101,255,255,222,251,193,42,229,101,255,255,222,251,193,86,240,102,255,255,232,251,193,90,8,103,255,255,233,251,193,86,135,101,16,0,135,101,255,255,217,251,193,254,151,101,255,255,218,251,193,178,164,101,255,255,219,251,193,74,185,101,255,255,220,251,193,68,54,98,255,255,190,251,193,162,75,98,255,255,191,251,193,156,47,101,255,255,212,251,193,60,52,101,255,255,212,251,193,230,215,86,142,0,219,93,70,0,254,94,34,0,97,95,16,0,97,95,255,255,165,251,193,122,115,95,255,255,166,251,193,88,195,95,255,255,169,251,193,252,8,98,255,255,188,251,193,76,254,94,255,255,160,251,193,102,11,95,255,255,161,251,193,108,19,95,255,255,161,251,193,216,80,95,255,255,164,251,193,210,114,94,16,0,114,94,255,255,153,251,193,170,122,94,255,255,154,251,193,90,127,94,255,255,154,251,193,218,244,94,255,255,159,251,193,254,219,93,255,255,147,251,193,66,229,93,255,255,147,251,193,210,241,93,255,255,148,251,193,132,254,93,255,255,149,251,193,20,80,91,34,0,34,92,16,0,34,92,255,255,130,251,193,144,56,92,255,255,131,251,193,192,110,92,255,255,135,251,193,8,113,92,255,255,135,251,193,128,80,91,255,255,119,251,193,108,128,91,255,255,121,251,193,174,248,91,255,255,128,251,193,22,15,92,255,255,129,251,193,34,10,89,16,0,10,89,255,255,100,251,193,232,21,89,255,255,101,251,193,136,39,89,255,255,102,251,193,204,115,89,255,255,106,251,193,100,215,86,255,255,83,251,193,76,31,87,255,255,85,251,193,186,235,88,255,255,99,251,193,220,2,89,255,255,100,251,193,178,224,81,70,0,65,83,34,0,130,83,16,0,130,83,255,255,50,251,193,178,182,83,255,255,53,251,193,120,200,83,255,255,54,251,193,122,227,83,255,255,56,251,193,112,65,83,255,255,47,251,193,180,92,83,255,255,49,251,193,44,100,83,255,255,209,253,193,152,105,83,255,255,49,251,193,240,249,82,16,0,249,82,255,255,44,251,193,244,21,83,255,255,45,251,193,234,26,83,255,255,46,251,193,82,56,83,255,255,47,251,193,118,224,81,255,255,33,251,193,196,245,81,255,255,34,251,193,200,0,82,255,255,35,251,193,132,155,82,255,255,42,251,193,8,160,78,34,0,107,81,16,0,107,81,255,255,28,251,193,74,130,81,255,255,29,251,193,104,150,81,255,255,30,251,193,74,171,81,255,255,31,251,193,62,160,78,255,255,8,251,193,232,186,78,255,255,10,251,193,68,63,81,255,255,26,251,193,4,101,81,255,255,27,251,193,188,63,78,16,0,63,78,255,255,4,251,193,252,89,78,255,255,6,251,193,26,133,78,255,255,7,251,193,248,140,78,255,255,8,251,193,74,0,78,255,255,2,251,193,2,40,78,255,255,4,251,193,60,44,78,255,255,66,252,193,246,54,78,255,255,4,251,193,200,26,130,246,1,0,78,1,78,40,78,41,78,44,78,45,78,54,78,55,78,63,78,64,78,89,78,90,78,133,78,134,78,140,78,141,78,160,78,161,78,186,78,187,78,63,81,64,81,101,81,102,81,107,81,108,81,130,81,131,81,150,81,151,81,171,81,172,81,224,81,225,81,245,81,246,81,0,82,1,82,155,82,156,82,249,82,250,82,21,83,22,83,26,83,27,83,56,83,57,83,65,83,66,83,92,83,93,83,100,83,101,83,105,83,106,83,130,83,131,83,182,83,183,83,200,83,201,83,227,83,228,83,215,86,216,86,31,87,32,87,235,88,236,88,2,89,3,89,10,89,11,89,21,89,22,89,39,89,40,89,115,89,116,89,80,91,81,91,128,91,129,91,248,91,249,91,15,92,16,92,34,92,35,92,56,92,57,92,110,92,111,92,113,92,114,92,219,93,220,93,229,93,230,93,241,93,242,93,254,93,255,93,114,94,115,94,122,94,123,94,127,94,128,94,244,94,245,94,254,94,255,94,11,95,12,95,19,95,20,95,80,95,81,95,97,95,98,95,115,95,116,95,195,95,196,95,8,98,9,98,54,98,55,98,75,98,76,98,47,101,48,101,52,101,53,101,135,101,136,101,151,101,152,101,164,101,165,101,185,101,186,101,224,101,225,101,229,101,230,101,240,102,241,102,8,103,9,103,40,103,41,103,32,107,33,107,98,107,99,107,121,107,122,107,179,107,180,107,203,107,204,107,212,107,213,107,219,107,220,107,15,108,16,108,20,108,21,108,52,108,53,108,107,112,108,112,42,114,43,114,54,114,55,114,59,114,60,114,63,114,64,114,71,114,72,114,89,114,90,114,91,114,92,114,172,114,173,114,132,115,133,115,137,115,138,115,220,116,221,116,230,116,231,116,24,117,25,117,31,117,32,117,40,117,41,117,48,117,49,117,139,117,140,117,146,117,147,117,118,118,119,118,125,118,126,118,174,118,175,118,191,118,192,118,238,118,239,118,219,119,220,119,226,119,227,119,243,119,244,119,58,121,59,121,184,121,185,121,190,121,191,121,116,122,117,122,203,122,204,122,249,122,250,122,115,124,116,124,248,124,249,124,159,126,160,126,54,127,55,127,81,127,82,127,138,127,139,127,189,127,190,127,1,128,2,128,12,128,13,128,18,128,19,128,51,128,52,128,127,128,128,128,137,128,138,128,227,129,228,129,234,129,235,129,243,129,244,129,252,129,253,129,12,130,13,130,27,130,28,130,31,130,32,130,110,130,111,130,114,130,115,130,120,130,121,130,77,134,78,134,107,134,108,134,64,136,65,136,76,136,77,136,99,136,100,136,126,137,127,137,139,137,140,137,193,137,194,137,210,137,211,137,0,138,1,138,160,139,161,139,55,140,56,140,70,140,71,140,85,140,86,140,120,140,121,140,157,140,158,140,29,141,30,141,100,141,101,141,112,141,113,141,179,141,180,141,171,142,172,142,202,142,203,142,102,143,103,143,155,143,156,143,176,143,177,143,181,143,182,143,145,144,146,144,73,145,74,145,198,145,199,145,204,145,205,145,209,145,210,145,133,148,134,148,119,149,120,149,127,149,129,149,232,149,233,149,28,150,29,150,182,150,183,150,185,150,186,150,232,150,233,150,81,151,82,151,94,151,95,151,98,151,99,151,105,151,106,151,203,151,204,151,230,151,231,151,237,151,238,151,243,151,244,151,1,152,2,152,117,152,118,152,168,152,169,152,206,152,207,152,219,152,220,152,222,152,224,152,99,153,100,153,150,153,151,153,153,153,154,153,172,153,173,153,108,154,109,154,168,154,169,154,216,154,217,154,223,154,224,154,37,155,38,155,47,155,48,155,50,155,51,155,60,155,61,155,90,155,91,155,124,156,125,156,229,156,230,156,31,158,32,158,117,158,118,158,127,158,128,158,165,158,167,158,187,158,188,158,195,158,196,158,205,158,206,158,209,158,210,158,249,158,250,158,253,158,255,158,14,159,15,159,19,159,20,159,32,159,33,159,59,159,60,159,74,159,75,159,80,159,81,159,82,159,83,159,127,159,128,159,141,159,142,159,153,159,154,159,156,159,157,159,159,159,161,159,126,216,127,216,2,249,3,249,7,249,9,249,10,249,11,249,52,249,53,249,64,249,65,249,113,249,114,249,129,249,130,249,138,249,139,249,196,249,197,249,233,249,234,249,247,249,248,249,8,250,9,250,10,250,11,250,30,250,31,250,60,250,61,250,149,250,150,250,206,250,207,250,2,0,29,248,2,0,30,248,2,0,117,248,2,0,118,248,2,0,120,248,2,0,121,248,2,0,144,248,2,0,145,248,2,0,196,249,2,0,197,249,2,0,210,249,2,0,211,249,2,0,21,250,2,0,22,250,2,0,23,250,2,0,25,250,2,0,28,250,2,0,29,250,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,3,0,68,0,51,0,60,0,251,208,2,16,11,0,0,96,1,0,0,96,170,170,170,170,170,170,170,170,170,170,170,170,114,114,2,0,28,0,218,39,20,0,0,0,0,0,2,0,85,67,111,108,5,0,0,0,9,104,42,0,0,0,0,0,17,0,0,0,16,32,2,15,0,0,0,0,0,0,0,0,255,255,255,255,68,0,0,0,100,0,0,0,100,1,0,0,172,75,2,0,172,75,2,0,28,86,2,0,28,86,2,0,120,94,2,0,120,94,2,0,28,110,2,0,38,110,2,0,86,114,2,0,17,0,0,0,5,0,0,0,0,0,0,41,127,0,0,96,125,0,0,123,44,0,118,123,125,0,0,126,169,255,0,254,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,0,249,250,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,254,255,50,105,114,84,1,0,28,14,224,34,64,0,192,0,96,0,0,0,8,0,16,0,24,0,48,0,56,0,64,0,72,0,80,0,88,0,96,0,104,0,109,0,117,0,122,0,130,0,137,0,145,0,48,0,56,0,48,0,56,0,152,0,160,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,56,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,184,0,191,0,199,0,204,0,48,0,212,0,220,0,228,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,236,0,244,0,252,0,4,1,12,1,20,1,28,1,36,1,44,1,52,1,60,1,48,0,67,1,69,1,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,76,1,48,0,48,0,48,0,48,0,84,1,92,1,48,0,100,1,108,1,116,1,48,0,48,0,48,0,119,1,127,1,48,0,48,0,48,0,135,1,143,1,149,1,156,1,163,1,171,1,178,1,186,1,194,1,202,1,210,1,218,1,226,1,233,1,241,1,249,1,0,2,8,2,16,2,23,2,31,2,39,2,46,2,54,2,62,2,70,2,78,2,86,2,94,2,98,2,106,2,48,0,114,2,122,2,130,2,48,0,138,2,48,0,146,2,154,2,48,0,160,2,168,2,176,2,184,2,192,2,200,2,207,2,215,2,223,2,231,2,239,2,247,2,255,2,5,3,13,3,17,3,25,3,33,3,41,3,49,3,57,3,65,3,73,3,81,3,89,3,97,3,105,3,113,3,119,3,48,0,125,3,133,3,141,3,149,3,157,3,165,3,173,3,180,3,188,3,194,3,202,3,210,3,218,3,226,3,48,0,232,3,240,3,248,3,0,4,7,4,15,4,23,4,27,4,34,4,40,4,48,4,56,4,63,4,70,4,78,4,83,4,90,4,98,4,105,4,113,4,121,4,129,4,136,4,144,4,150,4,157,4,164,4,172,4,180,4,188,4,196,4,204,4,211,4,48,0,219,4,227,4,235,4,243,4,248,4,252,4,2,5,10,5,18,5,26,5,34,5,42,5,49,5,54,5,62,5,69,5,77,5,85,5,93,5,101,5,109,5,116,5,123,5,127,5,135,5,143,5,150,5,157,5,164,5,171,5,175,5,183,5,188,5,196,5,204,5,210,5,214,5,222,5,230,5,236,5,242,5,250,5,2,6,9,6,17,6,22,6,29,6,33,6,41,6,48,6,56,6,64,6,71,6,48,0,79,6,81,6,89,6,97,6,105,6,111,6,48,0,114,6,120,6,127,6,134,6,142,6,149,6,155,6,160,6,168,6,176,6,184,6,48,0,192,6,200,6,208,6,215,6,223,6,231,6,236,6,244,6,252,6,3,7,9,7,48,0,13,7,48,0,48,0,48,0,21,7,29,7,37,7,45,7,53,7,61,7,69,7,77,7,85,7,93,7,101,7,109,7,117,7,125,7,133,7,141,7,149,7,157,7,165,7,173,7,181,7,189,7,197,7,205,7,213,7,221,7,229,7,237,7,245,7,253,7,5,8,13,8,21,8,29,8,37,8,45,8,53,8,61,8,69,8,77,8,85,8,93,8,101,8,109,8,117,8,125,8,133,8,141,8,149,8,157,8,165,8,173,8,181,8,189,8,197,8,205,8,213,8,221,8,229,8,237,8,245,8,253,8,5,9,13,9,21,9,29,9,37,9,45,9,53,9,61,9,69,9,77,9,85,9,93,9,101,9,109,9,117,9,125,9,133,9,141,9,149,9,157,9,165,9,173,9,181,9,189,9,197,9,205,9,213,9,221,9,229,9,237,9,245,9,253,9,5,10,13,10,21,10,29,10,37,10,45,10,53,10,61,10,69,10,77,10,85,10,93,10,101,10,109,10,117,10,125,10,133,10,141,10,149,10,157,10,165,10,173,10,181,10,189,10,197,10,205,10,213,10,221,10,229,10,237,10,245,10,253,10,5,11,13,11,21,11,29,11,37,11,45,11,53,11,61,11,69,11,77,11,85,11,93,11,101,11,109,11,117,11,125,11,133,11,141,11,149,11,157,11,165,11,173,11,181,11,189,11,197,11,205,11,213,11,221,11,229,11,237,11,245,11,253,11,5,12,13,12,21,12,29,12,37,12,45,12,53,12,61,12,69,12,77,12,85,12,93,12,101,12,109,12,117,12,125,12,133,12,141,12,149,12,157,12,165,12,173,12,181,12,189,12,197,12,205,12,213,12,221,12,229,12,237,12,245,12,253,12,5,13,13,13,21,13,29,13,37,13,45,13,53,13,61,13,69,13,77,13,85,13,93,13,101,13,109,13,117,13,125,13,133,13,141,13,149,13,157,13,165,13,173,13,181,13,189,13,197,13,205,13,213,13,221,13,229,13,237,13,245,13,253,13,5,14,13,14,21,14,29,14,37,14,45,14,53,14,61,14,69,14,77,14,85,14,93,14,101,14,109,14,117,14,125,14,133,14,141,14,149,14,157,14,165,14,173,14,181,14,189,14,197,14,205,14,213,14,221,14,229,14,237,14,245,14,253,14,5,15,13,15,21,15,29,15,37,15,45,15,53,15,61,15,69,15,77,15,85,15,93,15,101,15,109,15,117,15,125,15,133,15,141,15,149,15,157,15,165,15,173,15,181,15,189,15,197,15,205,15,213,15,221,15,229,15,237,15,245,15,253,15,5,16,13,16,21,16,29,16,37,16,45,16,53,16,61,16,69,16,77,16,85,16,93,16,101,16,109,16,117,16,125,16,133,16,141,16,149,16,157,16,165,16,173,16,181,16,189,16,197,16,205,16,213,16,221,16,229,16,237,16,245,16,253,16,5,17,13,17,21,17,29,17,37,17,45,17,53,17,61,17,69,17,77,17,85,17,93,17,101,17,109,17,117,17,125,17,133,17,141,17,149,17,157,17,165,17,173,17,181,17,189,17,197,17,205,17,213,17,221,17,229,17,237,17,245,17,253,17,5,18,13,18,21,18,29,18,37,18,45,18,53,18,61,18,69,18,77,18,85,18,93,18,101,18,109,18,117,18,125,18,133,18,141,18,149,18,157,18,165,18,173,18,181,18,189,18,197,18,205,18,213,18,221,18,229,18,237,18,245,18,253,18,5,19,13,19,21,19,29,19,37,19,45,19,53,19,61,19,69,19,77,19,85,19,93,19,101,19,109,19,117,19,125,19,133,19,141,19,149,19,157,19,165,19,173,19,181,19,189,19,197,19,205,19,213,19,221,19,229,19,237,19,245,19,253,19,5,20,13,20,21,20,29,20,37,20,45,20,53,20,61,20,69,20,77,20,85,20,93,20,101,20,109,20,117,20,125,20,133,20,141,20,149,20,157,20,165,20,173,20,181,20,189,20,197,20,205,20,213,20,221,20,229,20,237,20,245,20,253,20,5,21,13,21,21,21,29,21,37,21,45,21,53,21,61,21,69,21,77,21,85,21,93,21,101,21,109,21,117,21,125,21,133,21,141,21,149,21,157,21,165,21,173,21,181,21,189,21,197,21,205,21,213,21,221,21,229,21,237,21,245,21,253,21,5,22,13,22,21,22,29,22,37,22,45,22,53,22,61,22,69,22,77,22,85,22,93,22,101,22,109,22,117,22,125,22,133,22,141,22,149,22,157,22,165,22,173,22,181,22,189,22,197,22,205,22,213,22,221,22,229,22,237,22,245,22,253,22,5,23,13,23,21,23,29,23,37,23,45,23,53,23,61,23,69,23,77,23,85,23,93,23,101,23,109,23,117,23,125,23,133,23,141,23,149,23,157,23,165,23,173,23,181,23,189,23,197,23,205,23,213,23,221,23,229,23,237,23,245,23,253,23,5,24,13,24,21,24,29,24,37,24,45,24,53,24,61,24,69,24,77,24,85,24,93,24,101,24,109,24,117,24,125,24,133,24,141,24,149,24,157,24,165,24,173,24,181,24,189,24,197,24,205,24,213,24,221,24,229,24,237,24,245,24,253,24,5,25,13,25,21,25,29,25,37,25,45,25,53,25,61,25,69,25,77,25,85,25,93,25,101,25,109,25,117,25,125,25,133,25,141,25,149,25,157,25,165,25,173,25,181,25,189,25,197,25,205,25,213,25,221,25,229,25,237,25,245,25,253,25,5,26,13,26,21,26,29,26,37,26,45,26,53,26,61,26,69,26,77,26,85,26,93,26,101,26,109,26,117,26,125,26,133,26,141,26,149,26,157,26,165,26,173,26,181,26,189,26,197,26,205,26,213,26,221,26,229,26,237,26,245,26,253,26,5,27,13,27,21,27,29,27,37,27,45,27,53,27,61,27,69,27,77,27,85,27,93,27,101,27,109,27,117,27,125,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,193,34,176,0,48,0,48,0,168,0,201,34,209,34,215,34,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,168,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,27,141,27,149,27,157,27,165,27,173,27,181,27,189,27,197,27,205,27,213,27,221,27,229,27,237,27,245,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,252,27,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,0,128,0,192,0,0,1,64,1,128,1,180,1,232,1,36,2,192,0,192,0,96,2,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,192,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,128,8,64,0,188,8,246,8,54,9,118,9,182,9,240,9,48,10,111,10,174,10,238,10,45,11,107,11,169,11,233,11,39,12,102,12,166,12,223,12,27,13,90,13,154,13,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,64,0,218,13,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,1,28,9,28,17,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,24,28,48,0,30,28,48,0,35,28,48,0,48,0,48,0,48,0,41,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,44,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,50,28,48,0,48,0,48,0,48,0,48,0,48,0,57,28,63,28,48,0,66,28,48,0,48,0,72,28,48,0,48,0,48,0,48,0,78,28,82,28,48,0,48,0,48,0,48,0,48,0,48,0,87,28,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,93,28,101,28,107,28,113,28,117,28,124,28,131,28,136,28,144,28,48,0,150,28,48,0,158,28,48,0,163,28,48,0,171,28,177,28,48,0,184,28,48,0,189,28,48,0,193,28,201,28,204,28,48,0,212,28,220,28,48,0,48,0,227,28,48,0,232,28,48,0,240,28,48,0,48,0,48,0,246,28,254,28,48,0,48,0,48,0,6,29,13,29,48,0,48,0,48,0,48,0,48,0,48,0,15,29,48,0,48,0,48,0,23,29,48,0,48,0,48,0,48,0,48,0,26,29,32,29,48,0,48,0,39,29,43,29,50,29,48,0,48,0,58,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,61,29,48,0,48,0,69,29,48,0,48,0,48,0,75,29,78,29,86,29,48,0,90,29,98,29,48,0,48,0,48,0,48,0,48,0,48,0,106,29,48,0,48,0,114,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,122,29,48,0,48,0,128,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,29,48,0,48,0,48,0,137,29,48,0,48,0,48,0,48,0,48,0,145,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,151,29,48,0,48,0,48,0,154,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,162,29,48,0,48,0,48,0,48,0,169,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,172,29,48,0,48,0,48,0,48,0,48,0,48,0,178,29,48,0,48,0,48,0,48,0,183,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,189,29,48,0,48,0,48,0,48,0,48,0,196,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,201,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,208,29,48,0,48,0,48,0,214,29,48,0,217,29,225,29,48,0,48,0,48,0,48,0,48,0,48,0,48,0,230,29,238,29,48,0,241,29,249,29,48,0,48,0,48,0,48,0,48,0,254,29,6,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,11,30,19,30,48,0,23,30,48,0,30,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,34,30,48,0,48,0,48,0,41,30,48,0,48,0,49,30,48,0,48,0,48,0,50,30,48,0,48,0,48,0,48,0,58,30,64,30,72,30,48,0,79,30,48,0,48,0,48,0,48,0,48,0,48,0,87,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,94,30,48,0,101,30,109,30,48,0,116,30,48,0,48,0,48,0,121,30,48,0,48,0,48,0,48,0,48,0,48,0,125,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,133,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,136,30,48,0,48,0,48,0,48,0,48,0,48,0,142,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,149,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,154,30,48,0,159,30,48,0,48,0,163,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,169,30,48,0,48,0,176,30,48,0,48,0,48,0,180,30,48,0,48,0,48,0,187,30,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,193,30,48,0,196,30,48,0,48,0,203,30,48,0,48,0,48,0,48,0,48,0,209,30,48,0,48,0,48,0,48,0,48,0,217,30,48,0,48,0,48,0,48,0,225,30,48,0,48,0,229,30,48,0,48,0,48,0,236,30,48,0,244,30,246,30,254,30,3,31,48,0,11,31,15,31,20,31,48,0,48,0,26,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,32,31,48,0,36,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,41,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,31,52,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,31,48,0,48,0,48,0,61,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,66,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,73,31,48,0,81,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,88,31,48,0,48,0,48,0,48,0,48,0,48,0,90,31,48,0,48,0,48,0,98,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,103,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,110,31,48,0,118,31,48,0,48,0,122,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,128,31,48,0,48,0,48,0,131,31,48,0,137,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,144,31,48,0,147,31,48,0,48,0,48,0,155,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,160,31,48,0,48,0,48,0,48,0,164,31,48,0,48,0,48,0,48,0,171,31,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,175,31,48,0,48,0,183,31,48,0,48,0,48,0,48,0,48,0,188,31,195,31,198,31,48,0,48,0,48,0,204,31,48,0,48,0,48,0,211,31,48,0,219,31,48,0,225,31,48,0,232,31,48,0,237,31,244,31,248,31,48,0,48,0,48,0,48,0,48,0,48,0,253,31,48,0,48,0,48,0,48,0,48,0,48,0,4,32,48,0,48,0,10,32,48,0,48,0,18,32,48,0,48,0,48,0,26,32,48,0,48,0,48,0,34,32,48,0,48,0,48,0,48,0,39,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,45,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,52,32,48,0,48,0,60,32,48,0,66,32,48,0,48,0,48,0,71,32,48,0,48,0,48,0,48,0,48,0,76,32,48,0,48,0,48,0,48,0,48,0,83,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,87,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,92,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,98,32,48,0,48,0,48,0,48,0,104,32,48,0,48,0,108,32,48,0,115,32,48,0,48,0,48,0,48,0,48,0,48,0,123,32,48,0,48,0,130,32,48,0,138,32,141,32,149,32,154,32,48,0,48,0,48,0,48,0,161,32,48,0,167,32,48,0,48,0,48,0,48,0,48,0,171,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,176,32,183,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,185,32,48,0,192,32,198,32,48,0,206,32,48,0,48,0,48,0,48,0,211,32,216,32,48,0,224,32,48,0,48,0,48,0,227,32,48,0,234,32,48,0,240,32,48,0,48,0,48,0,247,32,48,0,48,0,254,32,48,0,48,0,48,0,48,0,48,0,48,0,48,0,4,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,10,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,15,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,21,33,48,0,48,0,48,0,28,33,48,0,32,33,48,0,48,0,48,0,48,0,40,33,48,0,48,0,48,0,47,33,48,0,48,0,48,0,48,0,48,0,49,33,57,33,48,0,48,0,48,0,48,0,64,33,48,0,48,0,48,0,48,0,48,0,67,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,74,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,80,33,48,0,88,33,93,33,48,0,97,33,105,33,113,33,48,0,48,0,118,33,124,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,132,33,138,33,48,0,48,0,48,0,142,33,149,33,48,0,48,0,48,0,48,0,48,0,153,33,48,0,160,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,166,33,48,0,48,0,48,0,48,0,171,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,177,33,48,0,48,0,184,33,48,0,48,0,48,0,192,33,48,0,48,0,198,33,203,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,207,33,48,0,48,0,48,0,48,0,48,0,48,0,212,33,48,0,219,33,48,0,48,0,226,33,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,232,33,48,0,48,0,238,33,48,0,48,0,48,0,245,33,247,33,48,0,254,33,48,0,6,34,48,0,48,0,48,0,12,34,48,0,18,34,48,0,48,0,48,0,48,0,48,0,24,34,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,31,34,48,0,39,34,43,34,49,34,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,57,34,65,34,73,34,81,34,89,34,97,34,105,34,113,34,121,34,129,34,137,34,145,34,153,34,161,34,169,34,177,34,185,34,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,48,0,255,255,255,255,203,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,4,3,5,5,6,3,5,5,8,3,5,5,10,3,5,5,12,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,5,0,4,5,5,90,7,5,5,120,9,5,5,150,10,5,5,138,13,5,5,152,10,5,5,144,10,5,5,106,9,5,5,142,9,5,5,144,9,5,5,128,10,5,5,121,12,5,5,0,6,5,5,14,5,5,5,0,8,5,5,138,10,202,160,41,0,202,65,39,0,202,130,39,0,202,195,39,0,202,4,40,0,202,69,40,0,202,134,40,0,202,199,40,0,202,8,41,0,202,73,41,0,5,5,54,7,5,5,42,7,5,5,129,12,5,5,131,12,5,5,133,12,5,5,98,7,5,5,126,10,201,6,0,0,156,5,0,44,156,5,0,46,156,5,0,48,201,134,2,0,156,5,0,52,156,5,0,54,156,5,0,56,201,38,8,0,156,5,0,60,156,5,0,62,156,5,0,64,201,6,11,0,201,70,14,0,201,134,17,0,156,5,0,72,160,5,0,74,156,5,0,76,156,5,0,78,156,5,0,80,201,198,20,0,156,5,0,84,160,5,0,86,156,5,0,88,156,5,0,90,156,5,0,92,5,5,146,9,5,5,140,10,5,5,148,9,5,5,10,12,5,5,10,5,5,5,4,12,201,70,28,0,5,5,0,44,5,5,0,46,5,5,0,48,201,38,31,0,5,5,0,52,5,5,0,54,5,5,0,56,201,198,36,0,5,5,0,60,5,5,0,62,5,5,0,64,201,166,39,0,201,230,42,0,201,38,46,0,5,5,0,72,5,5,0,74,5,5,0,76,5,5,0,78,5,5,0,80,201,102,49,0,5,5,0,84,5,5,0,86,5,5,0,88,5,5,0,90,5,5,0,92,5,5,150,9,5,5,137,12,5,5,152,9,5,5,141,12,0,0,0,0,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,5,5,253,255,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,0,0,134,3,0,42,196,142,156,42,196,154,156,42,196,150,156,42,196,146,156,42,197,34,66,0,196,160,156,46,198,65,0,0,134,3,0,50,201,230,56,0,196,150,156,50,198,129,0,0,134,3,0,58,196,142,156,58,196,150,156,58,160,112,0,48,196,154,156,68,198,65,1,0,134,3,0,70,196,142,156,70,196,154,156,70,196,150,156,70,5,5,127,12,196,158,156,70,198,129,1,0,134,3,0,82,196,142,156,82,201,198,59,0,196,136,156,90,160,5,38,93,197,98,66,0,198,193,1,0,5,3,0,42,196,142,5,42,196,154,5,42,196,150,5,42,196,146,5,42,197,162,66,0,196,160,5,46,198,1,2,0,5,3,0,50,201,102,63,0,196,150,5,50,198,65,2,0,5,3,0,58,196,142,5,58,196,150,5,58,5,112,0,48,196,154,5,68,198,1,3,0,5,3,0,70,196,142,5,70,196,154,5,70,196,150,5,70,5,5,125,12,196,158,5,70,198,65,3,0,5,3,0,82,196,142,5,82,201,70,66,0,196,136,5,90,5,5,38,93,196,150,5,90,134,2,0,42,5,2,0,42,192,0,0,0,192,0,0,0,201,230,69,0,201,134,72,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,50,5,2,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,75,0,201,70,78,0,198,97,0,0,198,33,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,58,5,2,0,58,192,0,0,0,192,0,0,0,201,38,81,0,201,6,84,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,68,5,3,0,68,201,230,86,0,201,198,89,0,198,33,1,0,198,225,2,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,70,5,2,0,70,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,2,0,82,5,2,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,92,0,201,230,95,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,99,0,201,6,102,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,104,0,201,38,108,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,33,0,0,198,225,1,0,198,161,0,0,198,97,2,0,198,97,1,0,198,33,3,0,198,161,1,0,198,97,3,0,134,70,0,82,5,70,0,82,134,71,0,82,5,71,0,82,134,72,0,82,5,72,0,82,134,73,0,82,5,73,0,82,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,111,0,201,70,114,0,197,98,8,0,197,226,8,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,198,1,1,0,198,193,2,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,117,0,201,6,120,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,194,5,222,251,192,0,0,0,194,5,220,251,194,5,221,251,5,252,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,253,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,254,0,0,5,255,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,122,0,201,198,125,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,11,0,197,98,11,0,197,162,11,0,197,226,11,0,201,166,128,0,201,134,131,0,201,102,134,0,201,70,137,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,140,0,201,6,143,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,3,0,66,5,3,0,66,192,0,0,0,192,0,0,0,201,230,145,0,201,198,148,0,192,0,0,0,192,0,0,0,201,166,151,0,201,134,154,0,201,102,157,0,201,70,160,0,201,38,163,0,201,6,166,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,34,19,0,197,98,19,0,197,162,19,0,197,226,19,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,168,0,201,38,172,0,201,102,175,0,201,166,178,0,201,230,181,0,201,38,185,0,192,0,0,0,192,0,0,0,197,162,24,0,197,226,24,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,188,0,201,70,191,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,38,194,0,201,6,197,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,134,71,0,50,5,71,0,50,134,73,0,50,5,73,0,50,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,230,199,0,201,198,202,0,201,166,205,0,201,134,208,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,5,0,197,34,6,0,198,130,8,0,198,2,9,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,102,211,0,201,70,214,0,201,38,217,0,201,102,220,0,192,0,0,0,192,0,0,0,197,162,6,0,197,98,7,0,198,130,9,0,198,2,10,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,166,223,0,201,230,226,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,242,192,0,0,0,192,0,0,0,192,0,0,0,5,5,47,241,192,0,0,0,5,5,80,208,192,0,0,0,5,5,124,175,192,0,0,0,5,5,148,163,192,0,0,0,5,5,199,214,5,5,200,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,230,5,5,196,248,192,0,0,0,6,5,61,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,219,192,0,0,0,5,5,45,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,227,192,0,0,0,5,5,34,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,230,192,0,0,0,5,5,54,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,225,5,5,248,225,192,0,0,0,5,5,183,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,174,5,5,7,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,38,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,210,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,9,5,82,239,6,5,128,194,6,5,188,221,6,5,64,168,7,5,209,239,6,5,114,207,9,5,67,239,6,5,210,179,7,5,83,230,6,5,25,239,6,5,217,230,7,5,0,128,6,5,81,208,6,5,85,171,6,5,50,166,6,5,123,202,6,5,149,210,6,5,125,175,6,5,22,187,6,5,248,163,6,5,220,164,6,5,145,173,6,5,104,213,8,5,225,226,6,5,149,163,6,5,125,203,6,5,26,225,6,5,101,235,6,5,93,242,6,5,142,195,6,5,255,245,7,5,237,181,6,5,22,227,6,5,140,218,6,5,246,236,6,5,165,212,6,5,47,175,7,5,212,184,6,5,204,231,6,5,173,171,6,5,34,235,6,5,201,214,6,5,26,242,6,5,183,226,6,5,185,223,6,5,37,228,6,5,45,226,6,5,186,194,6,5,124,202,6,5,159,205,6,5,151,192,6,5,139,241,6,5,172,194,6,5,204,243,6,5,216,194,6,5,254,239,6,5,187,194,6,5,146,202,6,5,38,228,6,5,79,223,6,5,241,215,6,5,130,191,6,5,53,199,7,5,14,228,6,5,55,218,6,5,212,168,7,5,19,247,6,5,197,175,6,5,161,205,6,5,146,173,6,5,12,245,7,5,8,230,6,5,188,248,8,5,197,248,7,5,80,172,6,5,164,210,6,5,141,218,6,5,73,175,6,5,59,229,6,5,13,245,6,5,221,164,6,5,19,170,6,5,23,227,6,5,21,209,7,5,208,229,7,5,178,199,6,5,219,219,6,5,186,174,6,5,155,241,6,5,57,167,6,5,123,168,6,5,240,240,6,5,46,184,6,5,100,212,6,5,132,217,6,5,48,248,6,5,103,193,6,5,152,245,6,5,102,192,7,5,8,229,6,5,24,250,6,5,71,181,6,5,22,168,6,5,255,182,6,5,36,163,6,5,155,163,6,5,234,167,6,5,249,171,6,5,83,172,6,5,20,170,6,5,10,227,6,5,227,226,6,5,30,227,6,5,33,230,6,5,83,197,6,5,55,217,6,5,26,187,6,5,165,221,6,5,68,171,6,5,86,171,6,5,230,172,6,5,88,247,6,5,15,244,6,5,6,248,6,5,193,185,6,5,26,239,6,5,117,185,6,5,53,239,6,5,51,248,6,5,56,230,6,5,179,224,6,5,189,231,6,5,178,218,6,5,157,204,6,5,177,227,6,5,64,226,6,5,254,219,6,5,172,192,6,5,222,235,6,5,46,234,6,5,217,198,6,5,166,226,6,5,78,217,6,5,139,216,6,5,87,239,6,5,22,241,6,5,78,205,6,5,27,204,6,5,157,242,6,5,35,193,6,5,198,175,6,5,12,227,6,5,184,218,6,5,201,163,6,5,84,223,7,5,116,232,6,5,217,232,6,5,137,228,6,5,174,223,6,5,244,215,6,5,183,224,6,5,250,225,6,5,22,240,6,5,71,242,6,5,234,165,6,5,250,186,7,5,164,205,6,5,35,221,6,5,163,170,6,5,195,174,6,5,43,187,6,5,81,222,6,5,8,248,6,5,89,211,6,5,153,172,6,5,217,171,6,5,165,191,6,5,12,246,6,5,149,204,6,5,118,243,6,5,88,241,6,5,199,173,6,5,154,172,6,5,241,226,6,5,17,228,6,5,41,216,6,5,34,169,6,5,44,193,6,5,4,192,6,5,143,165,6,5,202,175,6,5,41,225,6,5,170,191,6,5,13,194,6,5,189,247,6,5,33,184,6,5,231,189,6,5,18,190,6,5,182,169,6,5,23,169,6,5,49,201,6,5,110,229,6,5,207,197,6,5,174,218,6,5,210,171,6,5,204,177,6,5,57,193,6,5,114,229,6,5,219,164,6,5,218,208,6,5,77,223,6,5,248,190,6,5,241,193,6,5,233,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,83,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,225,226,6,5,88,184,6,5,207,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,8,5,82,239,8,5,67,239,8,5,79,236,7,5,157,235,7,5,252,228,8,5,193,222,7,5,226,213,6,5,66,203,6,5,209,239,6,5,57,166,6,5,187,177,7,5,61,181,6,5,66,175,6,5,83,230,198,131,31,0,198,227,31,0,198,67,32,0,198,163,32,0,198,3,33,0,198,99,33,0,198,195,33,0,198,35,34,0,198,131,34,0,198,227,34,0,198,67,35,0,198,163,35,0,198,3,36,0,198,99,36,0,197,227,35,0,198,195,36,0,198,35,37,0,198,131,37,0,198,227,37,0,197,67,36,0,198,67,38,0,198,163,38,0,197,163,36,0,197,3,37,0,198,3,39,0,198,99,39,0,198,195,39,0,198,35,40,0,197,99,37,0,198,131,40,0,197,195,37,0,198,227,40,0,197,35,38,0,198,67,41,0,197,131,38,0,197,227,38,0,6,5,62,247,6,5,95,242,6,5,19,247,6,5,95,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,7,5,82,239,7,5,67,239,7,5,79,236,6,5,157,235,6,5,43,245,6,5,99,188,6,5,113,208,6,5,0,128,6,5,141,204,6,5,225,226,7,5,197,248,6,5,178,199,6,5,208,229,6,5,80,172,6,5,164,205,6,5,237,181,6,5,8,230,6,5,136,221,7,5,68,242,6,5,188,227,6,5,26,172,6,5,94,179,6,5,11,234,6,5,226,221,6,5,168,185,6,5,95,171,6,5,95,183,6,5,212,184,6,5,93,227,6,5,19,242,6,5,233,243,6,5,214,221,6,5,104,216,6,5,236,214,6,5,45,214,6,5,112,221,6,5,252,228,7,5,193,222,6,5,226,213,7,5,251,232,7,5,94,242,6,5,88,239,6,5,87,233,6,5,58,217,6,5,227,204,6,5,250,208,6,5,135,231,6,5,254,213,6,5,83,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,66,39,0,197,130,39,0,197,194,39,0,197,2,40,0,197,66,40,0,197,130,40,0,197,194,40,0,197,2,41,0,197,66,41,0,197,131,41,0,197,227,41,0,197,67,42,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,162,42,0,197,226,42,0,197,34,43,0,197,98,43,0,197,162,43,0,197,226,43,0,197,34,44,0,197,98,44,0,197,162,44,0,197,226,44,0,197,35,45,0,197,131,45,0,197,227,45,0,197,67,46,0,197,163,46,0,197,3,47,0,197,99,47,0,197,195,47,0,197,35,48,0,197,131,48,0,197,227,48,0,197,67,49,0,197,163,49,0,197,3,50,0,197,99,50,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,194,50,0,197,2,51,0,197,66,51,0,197,130,51,0,197,196,51,0,197,66,52,0,197,130,52,0,197,194,52,0,197,2,53,0,197,66,53,0,197,130,53,0,197,194,53,0,197,2,54,0,197,66,54,0,197,131,54,0,197,227,54,0,197,67,55,0,197,163,55,0,197,3,56,0,197,99,56,0,197,195,56,0,197,35,57,0,197,131,57,0,197,227,57,0,197,67,58,0,197,163,58,0,197,3,59,0,197,99,59,0,197,195,59,0,197,35,60,0,197,131,60,0,197,227,60,0,197,67,61,0,197,163,61,0,197,3,62,0,197,99,62,0,192,0,0,0,5,5,212,209,5,5,118,181,192,0,0,0,192,0,0,0,5,5,46,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,30,218,192,0,0,0,5,5,5,189,192,0,0,0,192,0,0,0,5,5,18,216,5,5,208,220,5,5,76,175,5,5,80,245,5,5,51,167,192,0,0,0,192,0,0,0,5,5,30,169,5,5,166,210,5,5,7,240,192,0,0,0,5,5,42,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,196,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,171,5,5,54,240,5,5,53,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,208,192,0,0,0,192,0,0,0,5,5,74,180,5,5,173,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,179,192,0,0,0,192,0,0,0,5,5,190,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,173,192,0,0,0,5,5,143,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,212,192,0,0,0,192,0,0,0,5,5,57,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,191,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,236,192,0,0,0,5,5,146,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,136,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,213,192,0,0,0,5,5,164,207,192,0,0,0,192,0,0,0,5,5,176,163,5,5,75,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,223,192,0,0,0,192,0,0,0,5,5,197,198,5,5,16,248,192,0,0,0,5,5,20,194,5,5,104,240,5,5,152,217,5,5,236,194,5,5,7,186,5,5,154,180,5,5,12,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,33,215,192,0,0,0,192,0,0,0,192,0,0,0,5,5,160,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,197,5,5,249,191,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,238,192,0,0,0,192,0,0,0,5,5,79,217,192,0,0,0,5,5,108,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,199,5,5,36,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,243,5,5,165,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,241,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,214,192,0,0,0,5,5,223,237,192,0,0,0,192,0,0,0,5,5,13,196,5,5,4,199,192,0,0,0,5,5,200,213,192,0,0,0,192,0,0,0,5,5,74,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,238,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,92,202,5,5,207,199,5,5,47,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,193,192,0,0,0,192,0,0,0,5,5,50,217,192,0,0,0,5,5,20,233,5,5,144,240,5,5,192,233,192,0,0,0,5,5,149,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,164,192,0,0,0,5,5,122,247,5,5,134,217,192,0,0,0,192,0,0,0,5,5,216,210,192,0,0,0,192,0,0,0,5,5,249,164,192,0,0,0,5,5,117,206,192,0,0,0,5,5,138,238,192,0,0,0,192,0,0,0,5,5,157,220,5,5,227,179,5,5,235,206,192,0,0,0,5,5,3,233,5,5,124,166,5,5,141,203,5,5,56,238,5,5,185,232,5,5,168,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,225,5,5,231,213,5,5,102,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,194,5,5,24,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,197,192,0,0,0,5,5,17,208,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,166,5,5,217,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,178,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,167,192,0,0,0,5,5,142,203,5,5,94,239,5,5,73,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,191,192,0,0,0,192,0,0,0,5,5,93,234,192,0,0,0,5,5,188,212,5,5,200,173,192,0,0,0,5,5,201,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,179,5,5,65,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,188,5,5,229,217,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,172,192,0,0,0,5,5,116,220,192,0,0,0,192,0,0,0,5,5,76,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,149,238,192,0,0,0,5,5,180,210,192,0,0,0,5,5,215,234,192,0,0,0,192,0,0,0,5,5,69,230,192,0,0,0,5,5,165,169,5,5,14,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,248,5,5,38,219,5,5,132,247,5,5,239,199,5,5,28,171,5,5,41,184,5,5,230,246,5,5,53,171,5,5,9,184,5,5,221,211,5,5,158,232,5,5,213,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,197,192,0,0,0,192,0,0,0,5,5,198,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,22,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,175,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,189,192,0,0,0,5,5,240,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,202,5,5,222,164,192,0,0,0,5,5,114,230,5,5,30,201,5,5,6,173,5,5,160,191,5,5,22,196,5,5,207,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,225,5,5,150,170,5,5,245,190,192,0,0,0,5,5,249,243,5,5,130,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,187,187,192,0,0,0,5,5,58,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,187,5,5,26,198,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,233,5,5,203,174,5,5,104,209,5,5,196,163,5,5,189,223,5,5,176,233,5,5,196,170,5,5,63,198,5,5,119,213,5,5,10,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,97,223,5,5,25,210,5,5,93,200,192,0,0,0,5,5,195,247,5,5,110,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,240,5,5,120,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,185,192,0,0,0,192,0,0,0,5,5,191,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,253,199,192,0,0,0,192,0,0,0,5,5,205,193,5,5,83,188,192,0,0,0,192,0,0,0,5,5,191,231,5,5,3,165,5,5,155,245,192,0,0,0,5,5,180,187,192,0,0,0,192,0,0,0,5,5,74,196,192,0,0,0,5,5,195,197,5,5,116,243,192,0,0,0,192,0,0,0,5,5,139,215,5,5,159,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,167,192,0,0,0,192,0,0,0,5,5,36,222,192,0,0,0,192,0,0,0,5,5,231,198,192,0,0,0,5,5,71,166,5,5,220,218,5,5,248,178,5,5,128,178,5,5,10,220,192,0,0,0,5,5,6,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,203,5,5,158,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,237,192,0,0,0,192,0,0,0,5,5,165,203,5,5,99,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,204,199,192,0,0,0,5,5,181,241,5,5,252,233,5,5,24,194,5,5,113,205,5,5,47,205,5,5,146,175,5,5,233,205,5,5,51,169,5,5,101,200,192,0,0,0,192,0,0,0,5,5,113,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,210,192,0,0,0,5,5,148,182,192,0,0,0,192,0,0,0,5,5,61,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,186,192,0,0,0,5,5,223,233,192,0,0,0,192,0,0,0,5,5,126,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,214,5,5,125,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,210,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,210,192,0,0,0,5,5,93,197,5,5,81,174,192,0,0,0,192,0,0,0,5,5,196,215,5,5,36,194,5,5,104,197,5,5,122,212,5,5,126,198,5,5,210,182,5,5,85,163,5,5,79,228,5,5,238,164,5,5,19,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,195,5,5,222,236,192,0,0,0,192,0,0,0,5,5,203,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,142,186,192,0,0,0,5,5,217,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,247,5,5,117,179,5,5,158,224,5,5,137,170,5,5,11,172,5,5,230,200,5,5,2,247,5,5,181,184,5,5,231,200,5,5,32,198,5,5,170,206,5,5,104,163,5,5,155,215,5,5,94,187,5,5,234,205,192,0,0,0,5,5,219,170,5,5,98,168,5,5,228,197,5,5,47,244,192,0,0,0,5,5,224,215,5,5,188,236,5,5,100,246,5,5,200,223,5,5,4,213,5,5,243,205,5,5,139,234,5,5,166,197,5,5,87,173,5,5,224,227,5,5,145,189,192,0,0,0,5,5,150,178,5,5,149,208,5,5,10,169,5,5,235,248,5,5,126,163,192,0,0,0,5,5,135,200,5,5,61,177,5,5,81,243,5,5,106,207,5,5,113,204,5,5,121,183,5,5,214,187,5,5,157,247,5,5,235,180,5,5,68,181,5,5,52,245,5,5,182,201,5,5,190,214,5,5,254,197,192,0,0,0,5,5,17,181,5,5,89,221,192,0,0,0,5,5,37,201,5,5,230,174,192,0,0,0,192,0,0,0,5,5,135,182,192,0,0,0,5,5,175,230,5,5,25,204,192,0,0,0,5,5,23,216,192,0,0,0,192,0,0,0,5,5,92,249,5,5,125,207,5,5,109,199,192,0,0,0,5,5,158,164,5,5,86,170,192,0,0,0,5,5,185,192,5,5,53,246,192,0,0,0,5,5,255,169,5,5,171,235,5,5,241,165,5,5,189,189,5,5,163,211,192,0,0,0,192,0,0,0,5,5,167,191,5,5,135,219,5,5,66,191,5,5,222,166,5,5,54,231,5,5,11,210,5,5,188,187,5,5,222,194,5,5,142,215,5,5,120,213,5,5,253,215,192,0,0,0,5,5,31,184,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,214,5,5,195,187,5,5,34,174,5,5,179,234,5,5,37,222,5,5,0,150,5,5,15,233,5,5,141,219,5,5,26,233,5,5,110,197,5,5,70,202,192,0,0,0,5,5,207,204,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,181,5,5,100,215,5,5,231,242,5,5,72,180,5,5,61,179,5,5,215,176,5,5,154,207,5,5,18,239,5,5,93,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,203,192,0,0,0,192,0,0,0,5,5,237,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,186,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,175,192,0,0,0,5,5,92,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,205,5,5,122,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,186,5,5,127,190,5,5,202,228,192,0,0,0,5,5,142,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,215,192,0,0,0,192,0,0,0,5,5,5,191,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,227,192,0,0,0,5,5,94,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,229,5,5,111,186,192,0,0,0,5,5,217,212,192,0,0,0,5,5,132,208,192,0,0,0,5,5,193,188,5,5,245,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,87,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,169,5,5,203,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,209,192,0,0,0,5,5,129,166,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,250,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,235,5,5,31,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,217,192,0,0,0,5,5,118,205,192,0,0,0,192,0,0,0,5,5,163,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,185,192,0,0,0,192,0,0,0,5,5,78,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,240,5,5,119,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,173,192,0,0,0,192,0,0,0,192,0,0,0,5,5,245,187,192,0,0,0,5,5,120,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,156,243,192,0,0,0,5,5,208,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,86,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,174,5,5,16,200,192,0,0,0,5,5,130,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,64,243,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,179,5,5,110,198,192,0,0,0,192,0,0,0,5,5,228,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,185,192,0,0,0,192,0,0,0,5,5,160,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,46,181,192,0,0,0,5,5,232,163,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,227,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,230,192,0,0,0,5,5,87,163,192,0,0,0,192,0,0,0,5,5,210,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,235,5,5,156,204,5,5,221,168,192,0,0,0,192,0,0,0,5,5,169,231,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,239,192,0,0,0,192,0,0,0,5,5,182,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,170,192,0,0,0,5,5,207,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,175,5,5,230,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,166,192,0,0,0,192,0,0,0,5,5,47,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,114,178,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,31,242,192,0,0,0,192,0,0,0,5,5,204,192,5,5,43,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,179,5,5,14,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,173,5,5,111,242,5,5,204,238,5,5,77,182,5,5,228,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,217,192,0,0,0,192,0,0,0,5,5,218,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,213,192,0,0,0,5,5,141,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,221,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,190,199,192,0,0,0,192,0,0,0,192,0,0,0,5,5,126,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,10,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,247,238,192,0,0,0,5,5,136,212,192,0,0,0,5,5,221,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,238,192,0,0,0,5,5,128,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,193,192,0,0,0,5,5,160,204,192,0,0,0,192,0,0,0,5,5,208,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,221,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,222,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,185,5,5,137,230,5,5,61,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,225,5,5,62,208,192,0,0,0,5,5,81,246,5,5,111,240,5,5,147,219,5,5,184,242,192,0,0,0,5,5,83,236,5,5,210,190,5,5,200,168,5,5,223,219,5,5,97,198,5,5,118,248,5,5,106,175,5,5,240,219,5,5,177,172,5,5,162,227,5,5,133,189,5,5,67,179,5,5,179,211,5,5,208,170,5,5,107,241,5,5,11,164,5,5,51,194,5,5,126,193,5,5,116,183,5,5,186,191,192,0,0,0,5,5,3,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,179,192,0,0,0,5,5,22,211,192,0,0,0,192,0,0,0,192,0,0,0,5,5,205,200,192,0,0,0,5,5,10,236,5,5,123,221,192,0,0,0,192,0,0,0,5,5,107,233,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,213,5,5,254,182,192,0,0,0,5,5,56,236,5,5,94,207,192,0,0,0,5,5,240,227,5,5,164,179,5,5,78,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,229,5,5,147,189,5,5,129,185,5,5,47,206,5,5,157,186,5,5,35,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,180,5,5,109,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,158,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,230,192,0,0,0,5,5,247,229,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,209,5,5,239,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,68,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,174,5,5,42,239,192,0,0,0,192,0,0,0,5,5,67,181,5,5,119,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,185,192,0,0,0,192,0,0,0,5,5,59,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,99,184,5,5,136,181,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,195,5,5,151,241,192,0,0,0,192,0,0,0,5,5,242,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,137,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,240,192,0,0,0,192,0,0,0,5,5,95,230,192,0,0,0,192,0,0,0,192,0,0,0,5,5,175,247,5,5,42,242,5,5,150,177,5,5,116,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,236,219,5,5,18,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,25,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,202,5,5,44,222,5,5,23,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,247,5,5,20,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,20,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,247,5,5,52,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,246,170,5,5,51,168,5,5,247,170,5,5,78,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,234,175,5,5,203,173,192,0,0,0,5,5,17,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,171,192,0,0,0,5,5,21,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,35,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,239,232,5,5,195,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,187,192,0,0,0,5,5,215,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,191,219,192,0,0,0,192,0,0,0,5,5,253,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,178,192,0,0,0,5,5,84,238,192,0,0,0,5,5,82,233,5,5,193,196,192,0,0,0,192,0,0,0,5,5,252,243,192,0,0,0,5,5,33,236,5,5,218,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,208,5,5,38,203,192,0,0,0,5,5,130,215,5,5,156,170,192,0,0,0,5,5,99,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,214,192,0,0,0,192,0,0,0,5,5,16,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,207,192,0,0,0,5,5,120,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,3,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,174,5,5,198,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,172,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,241,5,5,170,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,61,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,183,5,5,178,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,208,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,139,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,202,192,0,0,0,192,0,0,0,5,5,135,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,180,192,0,0,0,5,5,183,223,192,0,0,0,192,0,0,0,5,5,127,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,170,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,28,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,165,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,50,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,231,5,5,219,248,5,5,151,207,5,5,228,195,5,5,42,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,243,5,5,154,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,141,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,133,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,249,192,0,0,0,5,5,173,218,192,0,0,0,192,0,0,0,192,0,0,0,5,5,81,195,5,5,25,194,5,5,225,248,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,178,192,0,0,0,192,0,0,0,5,5,94,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,215,192,0,0,0,5,5,170,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,167,234,5,5,193,210,192,0,0,0,5,5,118,228,192,0,0,0,5,5,21,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,246,192,0,0,0,5,5,151,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,173,215,192,0,0,0,192,0,0,0,5,5,128,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,200,192,0,0,0,5,5,241,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,176,5,5,125,245,5,5,234,209,192,0,0,0,5,5,79,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,105,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,176,192,0,0,0,5,5,112,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,176,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,246,5,5,93,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,220,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,171,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,235,223,5,5,87,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,213,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,237,192,0,0,0,5,5,34,164,5,5,33,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,163,5,5,202,164,192,0,0,0,5,5,243,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,174,192,0,0,0,192,0,0,0,5,5,41,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,222,192,0,0,0,192,0,0,0,5,5,252,224,5,5,253,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,165,5,5,24,191,192,0,0,0,5,5,27,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,186,245,5,5,221,172,192,0,0,0,192,0,0,0,5,5,8,236,192,0,0,0,192,0,0,0,5,5,236,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,247,192,0,0,0,192,0,0,0,5,5,0,153,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,228,192,0,0,0,5,5,229,194,5,5,200,239,5,5,249,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,249,192,0,0,0,5,5,197,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,8,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,80,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,39,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,9,181,192,0,0,0,5,5,180,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,73,215,192,0,0,0,5,5,107,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,193,192,0,0,0,192,0,0,0,192,0,0,0,5,5,82,239,5,5,187,177,5,5,117,195,5,5,113,208,5,5,251,228,5,5,225,213,5,5,103,198,5,5,231,246,5,5,40,221,5,5,79,236,5,5,252,228,5,5,226,213,5,5,194,201,5,5,118,166,5,5,255,247,5,5,190,171,5,5,231,191,5,5,52,224,5,5,53,224,5,5,113,222,5,5,93,209,5,5,195,167,5,5,26,227,5,5,25,227,5,5,213,209,5,5,57,166,5,5,78,241,5,5,75,235,5,5,222,178,5,5,103,235,5,5,85,225,5,5,118,177,5,5,214,209,5,5,55,189,5,5,119,177,5,5,69,242,5,5,56,189,5,5,156,242,5,5,83,166,5,5,123,236,5,5,128,194,5,5,119,204,5,5,202,191,5,5,220,240,5,5,56,211,5,5,193,222,5,5,125,202,5,5,203,203,5,5,185,173,5,5,96,194,5,5,71,226,5,5,124,224,5,5,220,188,5,5,29,222,5,5,188,221,5,5,75,197,5,5,184,246,5,5,225,175,5,5,115,246,5,5,189,221,5,5,115,206,5,5,29,187,5,5,20,207,5,5,64,168,5,5,56,174,5,5,126,239,5,5,250,239,5,5,11,183,5,5,133,245,5,5,142,204,5,5,143,204,5,5,249,181,5,5,158,169,5,5,252,239,5,5,83,239,5,5,54,218,5,5,240,244,5,5,105,219,5,5,214,198,5,5,120,172,5,5,13,185,5,5,159,243,5,5,156,168,5,5,106,167,5,5,157,209,5,5,40,199,5,5,194,193,5,5,92,225,5,5,98,225,5,5,209,239,5,5,202,243,5,5,48,241,5,5,124,171,5,5,141,204,5,5,249,208,5,5,70,241,5,5,45,213,5,5,38,216,5,5,232,191,5,5,144,204,5,5,227,213,5,5,50,199,5,5,58,229,5,5,223,175,5,5,11,227,5,5,201,201,5,5,127,183,5,5,254,202,5,5,39,207,5,5,228,226,5,5,46,170,5,5,215,198,5,5,168,169,5,5,186,190,5,5,105,231,5,5,213,230,5,5,57,217,5,5,214,242,5,5,153,174,5,5,122,227,5,5,229,182,5,5,114,192,5,5,221,236,5,5,170,247,5,5,3,235,5,5,165,219,5,5,120,192,5,5,216,218,5,5,219,193,5,5,122,192,5,5,188,190,5,5,8,189,5,5,102,240,5,5,114,207,5,5,31,185,5,5,60,169,5,5,2,248,5,5,62,221,5,5,35,227,5,5,39,227,5,5,67,239,5,5,201,225,5,5,154,247,5,5,101,196,5,5,153,247,5,5,126,249,5,5,51,199,5,5,154,208,5,5,43,245,5,5,114,206,5,5,156,235,5,5,20,237,5,5,173,192,5,5,174,192,5,5,21,241,5,5,242,213,5,5,24,241,5,5,160,208,5,5,26,241,5,5,51,202,5,5,210,179,5,5,78,247,5,5,229,195,5,5,52,179,5,5,236,203,5,5,193,197,5,5,6,240,5,5,121,224,5,5,192,198,5,5,62,172,5,5,138,241,5,5,76,216,5,5,78,206,5,5,145,181,5,5,68,189,5,5,77,216,5,5,81,206,5,5,86,241,5,5,200,210,5,5,77,163,5,5,113,242,5,5,71,214,5,5,13,176,5,5,125,188,5,5,92,178,5,5,169,170,5,5,83,230,5,5,84,230,5,5,39,202,5,5,250,202,5,5,79,247,5,5,253,239,5,5,177,228,5,5,85,230,5,5,11,185,5,5,188,177,5,5,20,232,5,5,182,205,5,5,211,168,5,5,16,224,5,5,0,129,5,5,33,221,5,5,160,205,5,5,204,203,5,5,51,166,5,5,173,230,5,5,74,235,5,5,148,172,5,5,87,236,5,5,191,190,5,5,52,166,5,5,110,234,5,5,166,231,5,5,27,227,5,5,30,179,5,5,41,221,5,5,188,174,5,5,34,215,5,5,35,215,5,5,250,181,5,5,127,201,5,5,161,182,5,5,108,230,5,5,51,210,5,5,132,192,5,5,131,191,5,5,65,163,5,5,77,175,5,5,174,189,5,5,211,239,5,5,5,224,5,5,2,225,5,5,197,235,5,5,5,229,5,5,127,239,5,5,81,172,5,5,178,170,5,5,109,230,5,5,67,203,5,5,6,224,5,5,57,244,5,5,114,210,5,5,239,222,5,5,23,168,5,5,187,245,5,5,45,245,5,5,77,205,5,5,86,203,5,5,209,241,5,5,187,173,5,5,111,234,5,5,111,230,5,5,82,247,5,5,127,173,5,5,148,176,5,5,166,173,5,5,194,222,5,5,250,208,5,5,245,166,5,5,155,247,5,5,96,177,5,5,203,178,5,5,83,245,5,5,8,240,5,5,17,216,5,5,230,195,5,5,86,239,5,5,41,202,5,5,54,238,5,5,46,245,5,5,151,202,5,5,59,174,5,5,121,172,5,5,236,214,5,5,207,205,5,5,196,167,5,5,2,176,5,5,18,174,5,5,110,180,5,5,240,222,5,5,7,242,5,5,179,199,5,5,66,200,5,5,3,248,5,5,229,234,5,5,52,226,5,5,88,236,5,5,48,246,5,5,53,226,5,5,173,223,5,5,241,240,5,5,178,215,5,5,228,228,5,5,237,224,5,5,192,190,5,5,112,234,5,5,254,217,5,5,19,216,5,5,49,246,5,5,207,221,5,5,27,232,5,5,82,215,5,5,146,184,5,5,66,163,5,5,253,192,5,5,180,183,5,5,201,183,5,5,49,214,5,5,99,164,5,5,242,216,5,5,84,189,5,5,43,220,5,5,136,228,5,5,151,211,5,5,210,233,5,5,175,164,5,5,36,227,5,5,2,203,5,5,197,167,5,5,11,240,5,5,160,235,5,5,213,239,5,5,63,221,5,5,160,177,5,5,60,198,5,5,175,169,5,5,21,176,5,5,208,221,5,5,120,166,5,5,152,211,5,5,225,164,5,5,205,219,5,5,202,233,5,5,117,246,5,5,149,176,5,5,209,221,5,5,252,232,5,5,96,242,5,5,58,244,5,5,203,180,5,5,133,220,5,5,85,197,5,5,248,164,5,5,20,182,5,5,178,227,5,5,159,247,5,5,12,240,5,5,62,174,5,5,255,232,5,5,54,192,5,5,136,184,5,5,163,182,5,5,181,183,5,5,40,215,5,5,198,211,5,5,210,249,5,5,153,245,5,5,58,210,5,5,109,227,5,5,245,194,5,5,65,164,5,5,247,166,5,5,41,200,5,5,152,197,5,5,194,185,5,5,66,216,5,5,161,191,5,5,22,244,5,5,157,163,5,5,138,172,5,5,49,172,5,5,4,203,5,5,70,239,5,5,84,166,5,5,52,202,5,5,166,198,5,5,174,199,5,5,255,193,5,5,54,212,5,5,12,181,5,5,28,204,5,5,211,233,5,5,23,240,5,5,13,227,5,5,142,216,5,5,138,228,5,5,3,182,5,5,171,195,5,5,100,218,5,5,212,191,5,5,35,185,5,5,136,239,5,5,60,223,5,5,42,196,5,5,155,194,5,5,35,187,5,5,113,243,5,5,40,227,5,5,70,171,5,5,132,221,5,5,245,216,5,5,97,242,5,5,199,238,5,5,3,190,5,5,84,170,5,5,28,239,5,5,196,190,5,5,5,179,5,5,165,223,5,5,4,223,5,5,3,218,5,5,193,194,5,5,2,220,5,5,91,239,5,5,183,230,5,5,30,235,5,5,184,213,5,5,161,235,5,5,45,232,5,5,59,191,5,5,90,179,5,5,29,204,5,5,159,220,5,5,232,233,5,5,158,209,5,5,81,196,5,5,209,223,5,5,137,184,5,5,188,184,5,5,184,205,5,5,55,245,5,5,25,198,5,5,96,208,5,5,137,225,5,5,237,220,5,5,8,233,5,5,57,224,5,5,201,210,5,5,60,191,5,5,237,206,5,5,131,229,5,5,166,181,5,5,206,228,5,5,94,182,5,5,73,163,5,5,98,183,5,5,124,214,5,5,238,165,5,5,89,182,5,5,9,248,5,5,115,213,5,5,151,234,5,5,155,237,5,5,2,210,5,5,222,216,5,5,179,194,5,5,24,196,5,5,56,245,5,5,42,208,5,5,40,240,5,5,158,174,5,5,41,189,5,5,232,232,5,5,190,209,5,5,44,187,5,5,251,249,5,5,19,201,5,5,145,206,5,5,168,210,5,5,101,236,5,5,244,166,5,5,139,236,5,5,79,174,5,5,181,212,5,5,251,186,5,5,159,174,5,5,158,168,5,5,18,164,5,5,171,247,5,5,169,208,5,5,186,213,5,5,25,216,5,5,237,214,5,5,10,248,5,5,228,176,5,5,175,223,5,5,18,224,5,5,56,219,5,5,217,242,5,5,173,187,5,5,45,187,5,5,36,185,5,5,110,235,5,5,15,205,5,5,241,214,5,5,162,174,5,5,191,199,5,5,57,207,5,5,215,214,5,5,209,166,5,5,85,205,5,5,189,165,5,5,211,225,5,5,203,172,5,5,255,173,5,5,32,241,5,5,229,238,5,5,209,163,5,5,63,248,5,5,252,215,5,5,233,164,5,5,44,199,5,5,239,224,5,5,73,218,5,5,87,166,5,5,163,204,5,5,164,241,5,5,232,234,5,5,174,187,5,5,202,246,5,5,37,185,5,5,116,234,5,5,143,233,5,5,205,191,5,5,69,194,5,5,210,163,5,5,99,181,5,5,69,229,5,5,70,229,5,5,179,170,5,5,156,175,5,5,244,179,5,5,137,207,5,5,29,226,5,5,167,216,5,5,152,167,5,5,112,180,5,5,52,198,5,5,224,239,5,5,118,208,5,5,217,180,5,5,156,192,5,5,150,206,5,5,219,203,5,5,249,236,5,5,40,225,5,5,146,203,5,5,174,173,5,5,104,218,5,5,53,197,5,5,243,207,5,5,88,233,5,5,58,207,5,5,169,210,5,5,152,183,5,5,198,190,5,5,8,222,5,5,169,245,5,5,121,190,5,5,93,237,5,5,160,186,5,5,20,201,5,5,231,178,5,5,192,231,5,5,130,164,5,5,57,245,5,5,59,207,5,5,18,183,5,5,17,234,5,5,17,205,5,5,198,219,5,5,53,241,5,5,105,218,5,5,150,227,5,5,93,211,5,5,126,209,5,5,96,244,5,5,58,225,5,5,204,204,5,5,222,242,5,5,29,231,5,5,248,222,5,5,115,226,5,5,75,203,5,5,177,202,5,5,63,246,5,5,15,248,5,5,91,166,5,5,236,230,5,5,164,180,5,5,226,245,5,5,100,168,5,5,36,243,5,5,204,173,5,5,113,180,5,5,193,245,5,5,212,237,5,5,12,214,5,5,182,223,5,5,38,229,5,5,173,195,5,5,232,176,5,5,13,233,5,5,131,223,5,5,147,181,5,5,215,163,5,5,63,214,5,5,39,201,5,5,222,241,5,5,138,220,5,5,58,224,5,5,127,242,5,5,44,242,5,5,92,205,5,5,232,216,5,5,67,219,5,5,158,233,5,5,207,174,5,5,208,164,5,5,217,218,5,5,126,233,5,5,199,171,5,5,67,202,5,5,227,239,5,5,64,214,5,5,228,217,5,5,4,234,5,5,156,178,5,5,239,233,5,5,173,220,5,5,187,238,5,5,204,179,5,5,205,179,5,5,216,163,5,5,221,231,5,5,228,185,5,5,151,203,5,5,64,246,5,5,132,173,5,5,8,225,5,5,224,193,5,5,67,236,5,5,237,218,5,5,156,236,5,5,174,213,5,5,213,174,5,5,98,249,5,5,99,231,5,5,78,187,5,5,152,184,5,5,184,249,5,5,38,206,5,5,48,169,5,5,161,164,5,5,127,177,5,5,70,180,5,5,2,198,5,5,156,203,5,5,213,212,5,5,95,228,5,5,173,210,5,5,152,207,5,5,118,234,5,5,219,225,5,5,89,236,5,5,221,163,5,5,221,214,5,5,7,250,5,5,168,241,5,5,41,180,5,5,206,236,5,5,67,244,5,5,115,172,5,5,92,166,5,5,23,203,5,5,74,175,5,5,48,232,5,5,115,180,5,5,101,193,5,5,12,166,5,5,189,225,5,5,157,184,5,5,69,234,5,5,122,185,5,5,211,234,5,5,215,249,5,5,61,232,5,5,132,233,5,5,181,164,5,5,113,237,5,5,146,238,5,5,58,226,5,5,25,248,5,5,200,219,5,5,223,232,5,5,232,228,5,5,135,226,5,5,168,206,5,5,101,223,5,5,148,227,5,5,136,198,5,5,12,221,5,5,102,211,5,5,48,243,5,5,251,176,5,5,80,214,5,5,232,185,5,5,228,163,5,5,93,168,5,5,190,205,5,5,196,188,5,5,26,190,5,5,109,170,5,5,85,210,5,5,55,215,5,5,43,180,5,5,168,244,5,5,24,179,5,5,143,222,5,5,106,216,5,5,99,228,5,5,165,209,5,5,107,208,5,5,90,182,5,5,79,233,5,5,228,168,5,5,234,212,5,5,178,185,5,5,32,225,5,5,168,194,5,5,226,187,5,5,135,208,5,5,66,225,5,5,86,224,5,5,89,246,5,5,239,201,5,5,56,163,5,5,99,200,5,5,68,226,5,5,254,180,5,5,43,176,5,5,51,204,5,5,173,204,5,5,126,236,5,5,135,173,5,5,215,215,5,5,252,206,5,5,244,237,5,5,252,203,5,5,112,205,5,5,188,182,5,5,27,189,5,5,103,163,5,5,94,193,5,5,238,215,5,5,169,236,5,5,216,215,5,5,19,206,5,5,14,172,5,5,104,241,5,5,237,205,5,5,93,203,5,5,200,209,5,5,47,168,5,5,216,173,5,5,63,220,5,5,71,238,5,5,13,236,5,5,186,239,5,5,67,208,5,5,194,184,5,5,90,224,5,5,128,240,5,5,108,176,5,5,129,206,5,5,113,217,5,5,90,196,5,5,49,205,5,5,227,225,5,5,245,175,5,5,57,204,5,5,149,227,5,5,51,232,5,5,103,234,5,5,24,166,5,5,227,238,5,5,194,230,5,5,124,179,5,5,37,224,5,5,214,223,5,5,29,186,5,5,192,183,5,5,203,205,5,5,189,210,5,5,232,170,5,5,73,245,5,5,121,184,5,5,154,212,5,5,193,183,5,5,21,225,5,5,206,187,5,5,128,185,5,5,80,191,5,5,17,197,5,5,59,164,5,5,146,248,5,5,164,165,5,5,137,232,5,5,133,218,5,5,192,235,5,5,19,242,5,5,231,197,5,5,228,224,5,5,230,224,5,5,116,187,5,5,143,180,5,5,91,246,5,5,33,191,5,5,195,225,5,5,105,224,5,5,151,230,5,5,97,229,5,5,141,200,5,5,144,187,5,5,105,190,5,5,140,232,5,5,158,184,5,5,119,180,5,5,10,243,5,5,108,185,5,5,140,183,5,5,25,239,5,5,78,245,5,5,159,249,5,5,122,232,5,5,26,249,5,5,29,218,5,5,147,226,5,5,225,219,5,5,31,218,5,5,37,215,5,5,153,194,5,5,132,178,5,5,49,195,5,5,133,178,5,5,192,171,5,5,242,181,5,5,3,225,5,5,27,239,5,5,134,178,5,5,29,239,5,5,163,205,5,5,243,181,5,5,162,235,5,5,215,242,5,5,218,242,5,5,16,227,192,0,0,0,5,5,83,176,5,5,72,210,5,5,183,175,5,5,81,173,5,5,27,170,5,5,159,228,5,5,185,175,192,0,0,0,5,5,102,206,5,5,12,187,5,5,81,201,5,5,217,230,5,5,80,247,5,5,40,183,5,5,52,212,5,5,58,189,5,5,172,247,5,5,0,128,5,5,188,194,5,5,99,188,5,5,166,212,5,5,161,198,5,5,16,186,5,5,230,194,5,5,62,181,5,5,64,194,5,5,162,216,5,5,55,166,5,5,161,208,5,5,42,207,5,5,145,177,5,5,107,231,5,5,77,173,5,5,61,244,5,5,202,204,5,5,22,228,5,5,193,202,5,5,103,240,5,5,216,202,5,5,147,224,5,5,81,208,5,5,55,170,5,5,74,230,5,5,41,183,5,5,27,249,5,5,43,170,5,5,177,192,5,5,75,230,5,5,230,233,5,5,82,208,5,5,231,233,5,5,42,232,5,5,122,193,5,5,91,208,5,5,57,170,5,5,48,220,5,5,59,170,5,5,85,192,5,5,229,216,5,5,200,171,5,5,85,171,5,5,95,231,5,5,158,243,5,5,45,214,5,5,169,195,5,5,13,208,5,5,187,184,5,5,131,239,5,5,34,171,5,5,46,227,5,5,67,194,5,5,224,170,5,5,227,222,5,5,60,207,5,5,250,248,5,5,31,172,5,5,148,195,5,5,221,188,5,5,208,174,5,5,46,214,5,5,116,171,5,5,50,166,5,5,223,178,5,5,105,179,5,5,179,192,5,5,235,173,5,5,54,166,5,5,57,199,5,5,148,226,5,5,118,207,5,5,58,199,5,5,23,197,5,5,72,241,5,5,159,186,5,5,77,167,5,5,63,174,5,5,250,171,5,5,4,179,5,5,137,215,5,5,178,187,5,5,79,209,5,5,195,204,5,5,142,206,5,5,132,229,5,5,236,169,5,5,198,181,5,5,119,208,5,5,81,193,5,5,162,222,5,5,94,237,5,5,151,206,5,5,42,189,5,5,136,211,5,5,76,177,5,5,100,189,5,5,14,179,5,5,157,192,5,5,22,205,5,5,124,243,5,5,56,234,5,5,169,239,5,5,79,187,5,5,144,226,5,5,51,172,5,5,168,222,5,5,212,234,5,5,123,235,5,5,72,178,5,5,238,205,5,5,9,189,5,5,10,189,5,5,122,184,5,5,254,212,5,5,254,177,5,5,123,202,5,5,3,173,5,5,4,173,5,5,5,173,5,5,252,173,5,5,190,206,5,5,186,225,5,5,129,221,5,5,188,173,5,5,110,172,5,5,55,219,5,5,60,174,5,5,189,173,5,5,169,168,5,5,193,173,5,5,83,195,5,5,40,201,5,5,89,195,5,5,123,192,5,5,136,176,5,5,199,168,5,5,149,210,5,5,28,218,5,5,78,196,5,5,179,181,5,5,96,238,5,5,147,225,5,5,197,201,5,5,93,176,5,5,75,198,5,5,79,198,5,5,66,232,5,5,125,175,5,5,72,177,5,5,126,175,5,5,105,230,5,5,106,230,5,5,121,226,5,5,69,173,5,5,94,209,5,5,255,239,5,5,198,201,5,5,161,195,5,5,165,210,5,5,32,235,5,5,154,225,5,5,47,247,5,5,202,201,5,5,3,176,5,5,138,216,5,5,131,199,5,5,185,246,5,5,119,207,5,5,166,186,5,5,199,248,5,5,176,187,5,5,31,188,5,5,234,231,5,5,180,192,5,5,139,226,5,5,64,174,5,5,149,225,5,5,247,211,5,5,191,206,5,5,40,228,5,5,251,171,5,5,85,189,5,5,196,222,5,5,78,167,5,5,124,165,5,5,131,203,5,5,132,203,5,5,12,167,5,5,30,187,5,5,41,228,5,5,125,165,5,5,122,224,5,5,116,206,5,5,104,193,5,5,212,192,5,5,155,175,5,5,141,226,5,5,102,196,5,5,4,196,5,5,97,178,5,5,71,239,5,5,186,218,5,5,171,229,5,5,108,212,5,5,123,227,5,5,212,233,5,5,50,195,5,5,135,203,5,5,30,194,5,5,213,233,5,5,31,194,5,5,84,195,5,5,98,178,5,5,157,202,5,5,214,180,5,5,124,206,5,5,226,185,5,5,120,190,5,5,241,231,5,5,249,248,5,5,193,234,5,5,45,217,5,5,51,195,5,5,234,184,5,5,119,210,5,5,124,227,5,5,142,226,5,5,123,193,5,5,80,205,5,5,194,234,5,5,169,186,5,5,152,180,5,5,204,172,5,5,37,167,5,5,127,224,5,5,174,208,5,5,143,226,5,5,193,231,5,5,191,192,5,5,173,246,5,5,42,163,5,5,213,201,5,5,54,178,5,5,110,211,5,5,89,228,5,5,233,177,5,5,86,205,5,5,170,202,5,5,43,163,5,5,123,242,5,5,61,207,5,5,165,199,5,5,45,229,5,5,23,205,5,5,63,178,5,5,157,178,5,5,255,244,5,5,124,193,5,5,209,174,5,5,43,229,5,5,93,205,5,5,145,191,5,5,29,175,5,5,90,195,5,5,145,226,5,5,49,226,5,5,134,224,5,5,111,182,5,5,27,190,5,5,187,186,5,5,190,167,5,5,60,228,5,5,68,168,5,5,137,195,5,5,45,204,5,5,114,193,5,5,134,209,5,5,163,207,5,5,145,199,5,5,72,219,5,5,77,222,5,5,136,188,5,5,84,207,5,5,222,167,5,5,54,188,5,5,46,194,5,5,58,204,5,5,47,194,5,5,116,205,5,5,117,205,5,5,55,180,5,5,168,199,5,5,217,202,5,5,128,205,5,5,143,240,5,5,129,205,5,5,31,219,5,5,106,224,5,5,70,205,5,5,86,169,5,5,239,186,5,5,203,221,5,5,22,187,5,5,18,241,5,5,107,212,5,5,97,164,5,5,190,194,5,5,253,202,5,5,81,245,5,5,174,169,5,5,177,187,5,5,208,205,5,5,240,195,5,5,250,213,5,5,143,218,5,5,3,179,5,5,210,221,5,5,147,184,5,5,133,203,5,5,199,211,5,5,254,227,5,5,13,240,5,5,131,221,5,5,95,169,5,5,31,187,5,5,209,205,5,5,167,185,5,5,168,185,5,5,240,207,5,5,144,195,5,5,23,244,5,5,136,245,5,5,213,214,5,5,85,170,5,5,250,196,5,5,137,203,5,5,179,187,5,5,86,197,5,5,41,227,5,5,52,195,5,5,214,205,5,5,41,192,5,5,74,163,5,5,255,171,5,5,87,223,5,5,103,186,5,5,252,249,5,5,253,249,5,5,195,171,5,5,53,195,5,5,186,217,5,5,244,207,5,5,111,211,5,5,9,190,5,5,132,166,5,5,7,171,5,5,90,223,5,5,86,185,5,5,111,195,5,5,201,171,5,5,18,179,5,5,6,217,5,5,9,217,5,5,163,195,5,5,102,245,5,5,68,240,5,5,189,217,5,5,123,247,5,5,46,229,5,5,175,185,5,5,94,172,5,5,28,190,5,5,94,168,5,5,78,227,5,5,232,201,5,5,233,210,5,5,60,206,5,5,234,223,5,5,110,212,5,5,107,216,5,5,119,240,5,5,165,207,5,5,241,172,5,5,223,207,5,5,189,182,5,5,85,207,5,5,246,175,5,5,27,214,5,5,184,169,5,5,193,217,5,5,195,217,5,5,101,191,5,5,111,187,5,5,201,223,5,5,152,230,5,5,112,212,5,5,248,163,5,5,244,227,5,5,127,249,5,5,120,204,5,5,41,164,5,5,53,192,5,5,79,245,5,5,128,249,5,5,18,247,5,5,112,165,5,5,233,191,5,5,234,191,5,5,249,163,5,5,37,235,5,5,213,240,5,5,32,218,5,5,133,167,5,5,193,206,5,5,174,179,5,5,162,191,5,5,222,168,5,5,206,237,5,5,19,167,5,5,101,174,5,5,203,194,5,5,30,175,5,5,166,204,5,5,128,212,5,5,220,164,5,5,130,199,5,5,195,163,5,5,68,183,5,5,111,227,5,5,145,173,5,5,154,204,5,5,128,239,5,5,208,231,5,5,50,206,5,5,231,195,5,5,51,206,5,5,248,196,5,5,216,198,5,5,183,213,5,5,153,211,5,5,229,165,5,5,2,194,5,5,97,209,5,5,172,232,5,5,252,196,5,5,181,172,5,5,228,198,5,5,17,248,5,5,14,194,5,5,153,196,5,5,90,200,5,5,242,175,5,5,44,194,5,5,128,188,5,5,137,188,5,5,60,237,5,5,255,177,5,5,180,204,5,5,193,207,5,5,104,213,5,5,20,168,5,5,149,211,5,5,88,239,5,5,250,194,5,5,219,242,5,5,217,165,5,5,208,183,5,5,167,211,5,5,225,226,5,5,251,217,5,5,50,210,5,5,88,184,5,5,207,235,5,5,216,232,5,5,7,229,5,5,44,245,5,5,64,200,5,5,98,164,5,5,31,227,5,5,105,213,5,5,232,246,5,5,107,199,5,5,251,213,5,5,233,246,5,5,181,163,5,5,218,232,5,5,5,222,5,5,254,213,5,5,227,175,5,5,179,169,5,5,99,183,5,5,229,175,5,5,68,202,5,5,92,163,5,5,204,229,5,5,149,163,5,5,19,197,5,5,227,165,5,5,110,166,5,5,132,220,5,5,244,194,5,5,183,189,5,5,70,242,5,5,228,189,5,5,175,212,5,5,127,193,5,5,190,245,5,5,65,214,5,5,125,203,5,5,126,203,5,5,114,246,5,5,13,239,5,5,129,212,5,5,56,218,5,5,44,170,5,5,233,243,5,5,222,245,5,5,255,227,5,5,44,202,5,5,12,212,5,5,185,190,5,5,61,223,5,5,230,207,5,5,51,214,5,5,246,216,5,5,185,205,5,5,13,212,5,5,95,245,5,5,55,202,5,5,213,237,5,5,94,211,5,5,227,212,5,5,108,236,5,5,26,225,5,5,47,246,5,5,187,237,5,5,124,181,5,5,23,187,5,5,126,219,5,5,104,198,5,5,24,187,5,5,8,241,5,5,222,240,5,5,20,243,5,5,186,227,5,5,199,176,5,5,93,219,5,5,114,167,5,5,242,240,5,5,87,197,5,5,244,240,5,5,187,218,5,5,233,233,5,5,116,167,5,5,160,180,5,5,168,186,5,5,189,227,5,5,47,198,5,5,131,181,5,5,24,233,5,5,195,234,5,5,205,172,5,5,37,249,5,5,240,233,5,5,43,249,5,5,42,216,5,5,223,242,5,5,80,187,5,5,153,207,5,5,155,227,5,5,128,177,5,5,157,225,5,5,167,204,5,5,191,205,5,5,103,238,5,5,23,194,5,5,54,243,5,5,124,235,5,5,87,187,5,5,33,225,5,5,27,186,5,5,102,187,5,5,194,242,5,5,255,242,5,5,83,249,5,5,101,235,5,5,189,194,5,5,217,188,5,5,32,230,5,5,245,211,5,5,246,211,5,5,49,239,5,5,116,185,5,5,231,177,5,5,179,215,5,5,114,222,5,5,81,236,5,5,61,234,5,5,62,234,5,5,63,234,5,5,66,234,5,5,67,238,5,5,107,175,5,5,93,242,5,5,124,223,5,5,40,202,5,5,67,242,5,5,236,229,5,5,39,173,5,5,12,228,5,5,203,193,5,5,0,154,5,5,112,172,5,5,233,230,5,5,37,227,5,5,64,229,5,5,24,222,5,5,237,211,5,5,20,228,5,5,235,165,5,5,250,216,5,5,69,203,5,5,83,167,5,5,65,236,5,5,42,192,5,5,123,246,5,5,66,236,5,5,47,177,5,5,18,231,5,5,92,235,5,5,142,195,5,5,31,193,5,5,37,207,5,5,175,189,5,5,121,193,5,5,127,175,5,5,145,195,5,5,142,218,5,5,82,204,5,5,224,219,5,5,0,131,5,5,189,177,5,5,37,195,5,5,106,179,5,5,80,223,5,5,9,227,5,5,94,242,5,5,244,209,5,5,186,166,5,5,79,241,5,5,241,197,5,5,104,235,5,5,37,180,5,5,58,223,5,5,14,185,5,5,73,177,5,5,199,201,5,5,7,188,5,5,107,201,5,5,125,171,5,5,180,216,5,5,182,170,5,5,3,223,5,5,203,191,5,5,92,217,5,5,141,241,5,5,167,231,5,5,84,197,5,5,42,202,5,5,97,177,5,5,35,235,5,5,162,182,5,5,26,172,5,5,46,198,5,5,27,187,5,5,239,181,5,5,94,216,5,5,60,219,5,5,228,213,5,5,71,241,5,5,57,191,5,5,223,240,5,5,61,169,5,5,185,238,5,5,164,199,5,5,89,239,5,5,15,208,5,5,54,224,5,5,21,189,5,5,127,182,5,5,161,243,5,5,193,172,5,5,226,164,5,5,11,211,5,5,12,211,5,5,205,203,5,5,121,166,5,5,231,172,5,5,33,163,5,5,182,178,5,5,70,173,5,5,152,237,5,5,74,198,5,5,128,181,5,5,241,195,5,5,227,229,5,5,254,208,5,5,131,201,5,5,58,218,5,5,207,243,5,5,14,245,5,5,15,245,5,5,252,223,5,5,232,182,5,5,80,217,5,5,171,212,5,5,26,226,5,5,181,175,5,5,48,247,5,5,44,198,5,5,108,201,5,5,16,245,5,5,39,192,5,5,49,241,5,5,41,208,5,5,58,191,5,5,191,237,5,5,159,191,5,5,190,169,5,5,69,175,5,5,255,208,5,5,88,225,5,5,17,245,5,5,40,192,5,5,19,174,5,5,83,204,5,5,109,201,5,5,59,223,5,5,9,229,5,5,233,182,5,5,128,182,5,5,150,174,5,5,14,240,5,5,70,175,5,5,186,238,5,5,32,187,5,5,245,163,5,5,29,249,5,5,139,193,5,5,69,247,5,5,25,211,5,5,246,244,5,5,195,237,5,5,186,226,5,5,231,207,5,5,103,167,5,5,51,247,5,5,6,183,5,5,17,169,5,5,176,189,5,5,59,230,5,5,10,242,5,5,202,176,5,5,3,220,5,5,42,227,5,5,44,220,5,5,7,181,5,5,110,213,5,5,24,240,5,5,30,209,5,5,170,168,5,5,174,231,5,5,254,192,5,5,155,233,5,5,118,246,5,5,226,216,5,5,133,237,5,5,46,183,5,5,119,191,5,5,226,166,5,5,25,240,5,5,122,214,5,5,139,228,5,5,218,198,5,5,54,172,5,5,18,175,5,5,248,211,5,5,17,207,5,5,76,198,5,5,210,231,5,5,4,182,5,5,51,178,5,5,46,167,5,5,13,167,5,5,126,165,5,5,67,174,5,5,255,243,5,5,88,197,5,5,233,231,5,5,89,197,5,5,180,197,5,5,158,204,5,5,249,249,5,5,191,174,5,5,4,175,5,5,45,220,5,5,154,245,5,5,239,194,5,5,255,192,5,5,240,194,5,5,22,233,5,5,123,166,5,5,227,190,5,5,224,178,5,5,109,184,5,5,91,179,5,5,108,235,5,5,186,215,5,5,188,199,5,5,35,209,5,5,72,239,5,5,199,237,5,5,159,194,5,5,108,219,5,5,116,213,5,5,142,239,5,5,175,187,5,5,108,231,5,5,126,171,5,5,31,171,5,5,157,218,5,5,215,241,5,5,211,201,5,5,49,220,5,5,140,191,5,5,133,229,5,5,128,232,5,5,214,214,5,5,181,197,5,5,255,199,5,5,43,196,5,5,247,199,5,5,175,179,5,5,87,215,5,5,200,237,5,5,148,217,5,5,238,214,5,5,140,193,5,5,25,243,5,5,195,185,5,5,92,239,5,5,21,238,5,5,151,168,5,5,185,228,5,5,167,182,5,5,112,201,5,5,36,218,5,5,52,178,5,5,166,245,5,5,71,197,5,5,32,232,5,5,100,242,5,5,67,177,5,5,220,166,5,5,78,216,5,5,22,238,5,5,171,192,5,5,253,196,5,5,10,241,5,5,5,175,5,5,125,214,5,5,7,165,5,5,69,200,5,5,65,184,5,5,103,199,5,5,177,216,5,5,82,196,5,5,78,178,5,5,76,173,5,5,161,202,5,5,189,184,5,5,82,170,5,5,50,241,5,5,247,197,5,5,38,249,5,5,40,191,5,5,47,167,5,5,193,170,5,5,142,191,5,5,141,237,5,5,5,223,5,5,4,228,5,5,165,186,5,5,230,182,5,5,219,232,5,5,103,197,5,5,9,196,5,5,128,214,5,5,191,215,5,5,171,185,5,5,44,163,5,5,133,219,5,5,66,219,5,5,69,189,5,5,0,141,5,5,127,171,5,5,184,187,5,5,250,236,5,5,93,174,5,5,113,166,5,5,120,198,5,5,193,198,5,5,230,192,5,5,176,229,5,5,200,191,5,5,108,242,5,5,30,243,5,5,9,193,5,5,39,193,5,5,246,163,5,5,81,198,5,5,200,236,5,5,96,226,5,5,55,240,5,5,23,238,5,5,44,203,5,5,185,181,5,5,91,215,5,5,203,246,5,5,54,187,5,5,186,212,5,5,68,180,5,5,10,233,5,5,8,210,5,5,177,223,5,5,19,245,5,5,80,232,5,5,11,241,5,5,182,175,5,5,6,209,5,5,168,176,5,5,16,211,5,5,47,169,5,5,109,169,5,5,233,194,5,5,193,175,5,5,250,211,5,5,172,185,5,5,59,189,5,5,223,236,5,5,81,232,5,5,213,200,5,5,147,186,5,5,126,227,5,5,214,201,5,5,253,232,5,5,171,245,5,5,249,173,5,5,222,205,5,5,45,199,5,5,42,209,5,5,23,228,5,5,15,246,5,5,172,229,5,5,42,225,5,5,36,239,5,5,68,187,5,5,83,211,5,5,230,238,5,5,244,231,5,5,51,241,5,5,92,184,5,5,147,247,5,5,101,181,5,5,64,185,5,5,151,227,5,5,197,212,5,5,66,182,5,5,229,198,5,5,34,238,5,5,213,219,5,5,86,183,5,5,199,195,5,5,33,222,5,5,34,222,5,5,230,228,5,5,233,176,5,5,195,198,5,5,223,188,5,5,137,237,5,5,18,234,5,5,43,216,5,5,130,182,5,5,59,245,5,5,62,247,5,5,238,234,5,5,152,227,5,5,45,193,5,5,9,209,5,5,10,209,5,5,180,179,5,5,29,176,5,5,30,176,5,5,93,241,5,5,183,231,5,5,237,164,5,5,239,234,5,5,22,226,5,5,109,197,5,5,12,241,5,5,12,209,5,5,137,219,5,5,155,172,5,5,60,189,5,5,92,215,5,5,247,167,5,5,153,227,5,5,6,185,5,5,245,231,5,5,97,244,5,5,131,193,5,5,156,166,5,5,166,219,5,5,226,235,5,5,138,222,5,5,236,183,5,5,142,193,5,5,86,190,5,5,128,242,5,5,234,176,5,5,63,212,5,5,129,224,5,5,150,163,5,5,217,177,5,5,102,186,5,5,220,214,5,5,241,206,5,5,71,180,5,5,96,223,5,5,165,180,5,5,225,238,5,5,131,204,5,5,35,176,5,5,241,194,5,5,241,249,5,5,127,246,5,5,105,183,5,5,96,228,5,5,81,248,5,5,144,219,5,5,239,184,5,5,105,203,5,5,28,198,5,5,107,198,5,5,36,177,5,5,16,220,5,5,213,223,5,5,215,245,5,5,161,184,5,5,82,248,5,5,131,243,5,5,222,231,5,5,147,241,5,5,139,237,5,5,203,171,5,5,5,199,5,5,167,249,5,5,66,226,5,5,83,200,5,5,221,200,5,5,222,200,5,5,80,213,5,5,79,197,5,5,223,201,5,5,155,196,5,5,228,222,5,5,20,246,5,5,156,227,5,5,14,217,5,5,41,201,5,5,66,178,5,5,238,183,5,5,100,217,5,5,73,189,5,5,83,248,5,5,124,236,5,5,12,223,5,5,163,209,5,5,39,243,5,5,238,175,5,5,105,167,5,5,67,234,5,5,181,186,5,5,52,241,5,5,68,219,5,5,227,245,5,5,145,171,5,5,160,244,5,5,96,167,5,5,115,166,5,5,118,196,5,5,127,213,5,5,84,248,5,5,157,203,5,5,230,185,5,5,30,196,5,5,84,232,5,5,75,199,5,5,173,180,5,5,174,241,5,5,158,197,5,5,136,237,5,5,20,215,5,5,37,211,5,5,231,235,5,5,216,249,5,5,160,236,5,5,183,201,5,5,18,214,5,5,61,238,5,5,208,236,5,5,62,169,5,5,135,223,5,5,199,197,5,5,12,195,5,5,9,175,5,5,116,236,5,5,171,224,5,5,219,230,5,5,43,236,5,5,144,245,5,5,233,201,5,5,127,167,5,5,3,245,5,5,154,210,5,5,79,227,5,5,174,191,5,5,122,231,5,5,115,203,5,5,143,190,5,5,116,247,5,5,159,245,5,5,184,235,5,5,15,223,5,5,220,197,5,5,245,236,192,0,0,0,5,5,182,197,5,5,228,236,5,5,234,210,5,5,243,183,5,5,81,197,5,5,120,218,5,5,11,236,5,5,222,182,5,5,208,191,5,5,226,182,5,5,18,177,5,5,28,238,5,5,86,211,5,5,159,182,5,5,52,165,5,5,104,238,5,5,105,238,5,5,129,188,5,5,27,233,5,5,123,219,5,5,124,169,5,5,76,236,5,5,68,236,5,5,31,180,5,5,178,176,5,5,136,208,5,5,97,204,5,5,156,226,5,5,253,203,5,5,98,195,5,5,44,180,5,5,62,228,5,5,36,234,5,5,31,203,5,5,38,238,5,5,152,214,5,5,95,168,5,5,235,185,5,5,120,191,5,5,59,193,5,5,153,214,5,5,235,198,5,5,100,200,5,5,148,193,5,5,189,238,5,5,59,215,5,5,252,231,5,5,15,225,5,5,205,216,5,5,180,166,5,5,55,175,5,5,63,169,5,5,50,169,5,5,16,199,5,5,163,185,5,5,236,177,5,5,121,191,5,5,53,180,5,5,75,241,5,5,184,164,5,5,110,244,5,5,16,236,5,5,98,204,5,5,107,171,5,5,225,214,5,5,104,199,5,5,171,169,5,5,68,230,5,5,23,226,5,5,146,167,5,5,179,185,5,5,227,214,5,5,244,201,5,5,199,221,5,5,244,223,5,5,164,196,5,5,32,233,5,5,158,214,5,5,130,235,5,5,227,197,5,5,176,174,5,5,232,187,5,5,167,209,5,5,245,212,5,5,228,225,5,5,139,224,5,5,47,176,5,5,208,197,5,5,20,218,5,5,185,237,5,5,80,233,5,5,242,172,5,5,20,223,5,5,13,200,5,5,135,232,5,5,132,226,5,5,158,234,5,5,48,176,5,5,128,248,5,5,133,182,5,5,134,234,5,5,102,204,5,5,57,241,5,5,246,212,5,5,52,209,5,5,223,197,5,5,138,188,5,5,207,216,5,5,124,176,5,5,28,200,5,5,190,243,5,5,216,168,5,5,109,207,5,5,240,210,5,5,239,217,5,5,246,183,5,5,181,189,5,5,131,235,5,5,248,242,5,5,228,244,5,5,13,175,5,5,89,220,5,5,140,237,5,5,66,220,5,5,242,205,5,5,196,184,5,5,113,200,5,5,89,214,5,5,56,209,5,5,252,237,5,5,87,232,5,5,113,239,5,5,97,227,5,5,105,204,5,5,106,249,5,5,32,238,5,5,224,249,5,5,177,207,5,5,92,196,5,5,38,248,5,5,97,167,5,5,168,175,5,5,124,191,5,5,70,197,5,5,190,178,5,5,74,176,5,5,37,216,5,5,5,236,5,5,226,167,5,5,32,168,5,5,153,243,5,5,34,233,5,5,123,184,5,5,187,176,5,5,93,186,5,5,41,179,5,5,170,199,5,5,197,230,5,5,213,197,5,5,233,213,5,5,120,241,5,5,60,178,5,5,49,168,5,5,39,224,5,5,221,202,5,5,248,205,5,5,232,197,5,5,236,180,5,5,22,225,5,5,27,218,5,5,160,169,5,5,224,233,5,5,239,180,5,5,245,189,5,5,130,200,5,5,123,163,5,5,20,242,5,5,4,184,5,5,195,243,5,5,90,199,5,5,161,169,5,5,125,201,5,5,157,219,5,5,218,186,5,5,69,188,5,5,205,197,5,5,128,183,5,5,174,214,5,5,79,169,5,5,74,243,5,5,121,187,5,5,200,189,5,5,251,190,5,5,82,169,5,5,60,176,5,5,231,224,5,5,146,168,5,5,35,168,5,5,112,216,5,5,215,199,5,5,83,169,5,5,158,213,5,5,95,178,5,5,38,196,5,5,200,242,5,5,108,224,5,5,135,244,5,5,163,230,5,5,158,177,5,5,238,184,5,5,85,179,5,5,182,214,5,5,194,207,5,5,16,226,5,5,159,200,5,5,226,199,5,5,153,222,5,5,13,184,5,5,183,214,5,5,229,233,5,5,232,186,5,5,153,224,5,5,222,223,5,5,152,187,5,5,204,240,5,5,88,190,5,5,130,183,5,5,230,231,5,5,138,236,5,5,100,213,5,5,171,232,5,5,8,205,5,5,231,231,5,5,204,221,5,5,56,186,5,5,21,184,5,5,126,183,5,5,85,186,5,5,9,185,5,5,255,245,5,5,38,200,5,5,109,243,5,5,245,209,5,5,157,235,5,5,97,184,5,5,12,205,5,5,39,200,5,5,20,216,5,5,110,243,5,5,94,183,5,5,108,182,5,5,109,182,5,5,204,178,5,5,232,195,5,5,247,248,5,5,92,208,5,5,99,168,5,5,129,249,5,5,38,235,5,5,246,198,5,5,40,200,5,5,30,249,5,5,153,237,5,5,158,193,5,5,240,196,5,5,39,235,5,5,155,182,5,5,196,181,5,5,4,246,5,5,193,190,5,5,159,193,5,5,117,212,5,5,10,230,5,5,87,189,5,5,79,193,5,5,160,193,5,5,102,179,5,5,161,193,5,5,197,181,5,5,101,242,5,5,162,193,5,5,168,243,5,5,21,201,5,5,246,168,5,5,13,248,5,5,82,198,5,5,39,249,5,5,199,190,5,5,46,212,5,5,18,248,5,5,95,211,5,5,163,193,5,5,57,226,5,5,21,246,5,5,44,249,5,5,47,212,5,5,14,196,5,5,222,174,5,5,51,249,5,5,52,249,5,5,43,241,5,5,214,181,5,5,222,181,5,5,223,181,5,5,112,182,5,5,112,191,5,5,103,200,5,5,145,240,5,5,184,200,5,5,167,190,5,5,178,190,5,5,237,181,5,5,19,241,5,5,238,181,5,5,164,181,5,5,40,229,5,5,244,168,5,5,255,189,5,5,100,196,5,5,221,240,5,5,43,232,5,5,3,246,5,5,132,191,5,5,50,248,5,5,241,244,5,5,208,193,5,5,24,168,5,5,129,239,5,5,66,175,5,5,52,210,5,5,53,210,5,5,233,220,5,5,19,222,5,5,94,176,5,5,78,209,5,5,239,213,5,5,129,228,5,5,20,197,5,5,27,225,5,5,156,208,5,5,229,183,5,5,96,169,5,5,206,201,5,5,40,203,5,5,145,218,5,5,146,218,5,5,83,164,5,5,185,217,5,5,15,240,5,5,254,210,5,5,191,169,5,5,16,208,5,5,97,231,5,5,138,182,5,5,147,173,5,5,128,164,5,5,129,164,5,5,226,179,5,5,170,195,5,5,246,199,5,5,2,233,5,5,242,195,5,5,250,164,5,5,118,206,5,5,222,176,5,5,75,206,5,5,153,202,5,5,79,196,5,5,200,176,5,5,76,206,5,5,192,204,5,5,241,179,5,5,33,187,5,5,15,163,5,5,87,245,5,5,92,173,5,5,89,222,5,5,169,166,5,5,101,164,5,5,50,180,5,5,196,196,5,5,157,211,5,5,23,180,5,5,61,218,5,5,21,182,5,5,111,192,5,5,171,168,5,5,161,177,5,5,128,193,5,5,147,183,5,5,108,179,5,5,200,167,5,5,83,208,5,5,59,244,5,5,149,172,5,5,141,238,5,5,4,190,5,5,216,209,5,5,64,172,5,5,38,195,5,5,79,192,5,5,81,217,5,5,0,157,5,5,33,223,5,5,187,223,5,5,88,189,5,5,212,221,5,5,192,174,5,5,219,198,5,5,188,218,5,5,28,226,5,5,226,184,5,5,27,191,5,5,28,191,5,5,185,189,5,5,142,238,5,5,80,175,5,5,14,167,5,5,24,172,5,5,144,216,5,5,6,179,5,5,162,202,5,5,153,197,5,5,86,191,5,5,169,233,5,5,63,223,5,5,119,185,5,5,214,191,5,5,114,243,5,5,48,198,5,5,120,178,5,5,228,219,5,5,80,174,5,5,160,194,5,5,159,241,5,5,79,178,5,5,80,178,5,5,5,194,5,5,143,223,5,5,27,244,5,5,165,243,5,5,123,172,5,5,83,192,5,5,34,249,5,5,22,177,5,5,2,214,5,5,197,195,5,5,244,228,5,5,16,228,5,5,202,237,5,5,98,166,5,5,164,177,5,5,139,201,5,5,227,240,5,5,44,196,5,5,50,175,5,5,248,194,5,5,97,176,5,5,85,195,5,5,191,198,5,5,64,183,5,5,228,238,5,5,120,216,5,5,192,215,5,5,95,249,5,5,141,164,5,5,28,174,5,5,18,163,5,5,56,240,5,5,236,243,5,5,121,198,5,5,255,216,5,5,30,226,5,5,221,210,5,5,231,192,5,5,24,238,5,5,187,164,5,5,162,173,5,5,14,212,5,5,255,249,5,5,44,208,5,5,15,203,5,5,230,176,5,5,164,169,5,5,139,186,5,5,233,207,5,5,93,225,5,5,53,228,5,5,169,205,5,5,134,219,5,5,185,187,5,5,186,187,5,5,133,166,5,5,99,225,5,5,157,199,5,5,134,166,5,5,243,226,5,5,187,217,5,5,141,193,5,5,85,208,5,5,73,241,5,5,93,184,5,5,213,176,5,5,71,248,5,5,138,166,5,5,231,240,5,5,64,212,5,5,25,237,5,5,248,167,5,5,96,211,5,5,206,246,5,5,63,207,5,5,217,190,5,5,77,221,5,5,54,197,5,5,176,226,5,5,233,178,5,5,96,175,5,5,39,180,5,5,231,238,5,5,26,234,5,5,215,225,5,5,188,164,5,5,174,195,5,5,108,218,5,5,83,178,5,5,69,240,5,5,109,218,5,5,70,240,5,5,235,166,5,5,221,201,5,5,163,222,5,5,183,208,5,5,34,236,5,5,64,207,5,5,156,183,5,5,11,196,5,5,61,195,5,5,69,180,5,5,198,196,5,5,209,183,5,5,205,204,5,5,121,178,5,5,188,205,5,5,193,192,5,5,72,248,5,5,214,237,5,5,154,167,5,5,83,193,5,5,245,181,5,5,161,186,5,5,183,173,5,5,249,240,5,5,172,210,5,5,244,196,5,5,245,238,5,5,225,228,5,5,107,178,5,5,69,183,5,5,188,181,5,5,111,225,5,5,132,243,5,5,8,201,5,5,28,165,5,5,190,188,5,5,145,193,5,5,37,177,5,5,139,222,5,5,54,198,5,5,22,164,5,5,23,164,5,5,190,247,5,5,154,176,5,5,30,170,5,5,106,203,5,5,22,231,5,5,96,241,5,5,247,192,5,5,165,195,5,5,91,233,5,5,191,247,5,5,42,201,5,5,224,237,5,5,169,241,5,5,40,243,5,5,49,164,5,5,172,233,5,5,205,169,5,5,30,225,5,5,23,178,5,5,35,182,5,5,238,243,5,5,240,173,5,5,250,222,5,5,224,203,5,5,175,205,5,5,211,198,5,5,198,192,5,5,80,226,5,5,26,205,5,5,210,168,5,5,162,185,5,5,100,216,5,5,35,201,5,5,151,186,5,5,166,178,5,5,176,246,5,5,101,217,5,5,188,202,5,5,78,202,5,5,86,196,5,5,169,244,5,5,37,179,5,5,118,225,5,5,13,250,5,5,92,195,5,5,161,236,5,5,162,236,5,5,249,226,5,5,103,171,5,5,44,179,5,5,125,247,5,5,119,225,5,5,215,181,5,5,75,180,5,5,23,212,5,5,230,222,5,5,88,187,5,5,231,222,5,5,165,164,5,5,2,236,5,5,189,232,5,5,122,178,5,5,85,181,5,5,111,245,5,5,120,221,5,5,190,217,5,5,175,191,5,5,250,220,5,5,62,238,5,5,204,194,5,5,181,242,5,5,178,195,5,5,86,181,5,5,53,249,5,5,255,246,5,5,81,214,5,5,102,188,5,5,204,197,5,5,133,186,5,5,16,225,5,5,163,167,5,5,198,164,5,5,200,224,5,5,36,190,5,5,235,189,5,5,169,238,5,5,179,210,5,5,218,169,5,5,125,169,5,5,118,222,5,5,252,229,5,5,103,229,5,5,255,185,5,5,50,223,5,5,138,170,5,5,149,165,5,5,173,206,5,5,251,233,5,5,153,229,5,5,4,219,5,5,13,221,5,5,189,195,5,5,218,249,5,5,176,177,5,5,214,224,5,5,124,218,5,5,137,213,5,5,149,193,5,5,77,211,5,5,232,205,5,5,255,176,5,5,233,228,5,5,99,172,5,5,214,234,5,5,55,243,5,5,46,179,5,5,194,232,5,5,132,210,5,5,59,211,5,5,49,189,5,5,169,246,5,5,102,222,5,5,141,209,5,5,195,232,5,5,208,216,5,5,100,228,5,5,101,228,5,5,8,163,5,5,232,168,5,5,91,196,5,5,250,178,5,5,20,173,5,5,30,212,5,5,139,169,5,5,186,178,5,5,187,178,5,5,68,233,5,5,7,177,5,5,51,229,5,5,115,178,5,5,116,178,5,5,254,179,5,5,137,176,5,5,59,172,5,5,108,173,5,5,57,201,5,5,255,179,5,5,51,175,5,5,106,241,5,5,253,221,5,5,155,205,5,5,153,238,5,5,65,211,5,5,253,201,5,5,143,209,5,5,202,195,5,5,146,240,5,5,12,168,5,5,75,165,5,5,177,177,5,5,22,206,5,5,77,241,5,5,225,249,5,5,66,217,5,5,6,180,5,5,72,186,5,5,89,207,5,5,249,199,5,5,112,176,5,5,162,230,5,5,191,210,5,5,197,217,5,5,229,215,5,5,93,213,5,5,169,197,5,5,75,238,5,5,237,240,5,5,149,175,5,5,233,197,5,5,24,231,5,5,6,206,5,5,131,185,5,5,36,197,5,5,201,189,5,5,198,242,5,5,15,180,5,5,109,246,5,5,250,199,5,5,34,191,5,5,35,191,5,5,21,231,5,5,122,187,5,5,252,188,5,5,164,230,5,5,166,224,5,5,207,217,5,5,205,242,5,5,109,185,5,5,30,163,5,5,182,246,5,5,22,227,5,5,86,230,5,5,106,236,5,5,183,222,5,5,184,222,5,5,10,229,5,5,90,239,5,5,176,169,5,5,33,195,5,5,219,221,5,5,187,222,5,5,251,198,5,5,255,198,5,5,228,196,5,5,102,239,5,5,6,199,5,5,15,217,5,5,233,196,5,5,28,228,5,5,217,170,5,5,69,233,5,5,30,228,5,5,114,239,5,5,140,218,5,5,30,193,5,5,202,225,5,5,52,206,5,5,236,173,5,5,202,163,5,5,203,219,5,5,239,165,5,5,246,236,5,5,116,212,5,5,89,189,5,5,198,174,5,5,196,234,5,5,230,213,5,5,50,218,5,5,119,214,5,5,60,183,5,5,236,213,5,5,141,196,5,5,165,212,5,5,218,245,5,5,89,249,5,5,45,170,5,5,141,236,5,5,49,178,5,5,50,178,5,5,83,241,5,5,108,211,5,5,220,245,5,5,87,192,5,5,88,192,5,5,43,209,5,5,24,171,5,5,25,171,5,5,187,243,5,5,183,199,5,5,215,224,5,5,47,175,5,5,19,232,5,5,61,181,5,5,132,179,5,5,17,174,5,5,202,193,5,5,140,241,5,5,254,243,5,5,171,198,5,5,23,192,5,5,184,226,5,5,148,179,5,5,133,179,5,5,211,179,5,5,211,242,5,5,223,164,5,5,130,239,5,5,39,196,5,5,255,202,5,5,61,178,5,5,133,199,5,5,16,197,5,5,160,249,5,5,3,203,5,5,0,135,5,5,2,239,5,5,115,188,5,5,209,200,5,5,150,176,5,5,216,242,5,5,26,167,5,5,241,207,5,5,162,208,5,5,22,183,5,5,253,173,5,5,6,214,5,5,129,173,5,5,146,177,5,5,89,244,5,5,114,196,5,5,117,232,5,5,211,200,5,5,36,209,5,5,77,195,5,5,62,219,5,5,115,164,5,5,41,240,5,5,36,206,5,5,203,179,5,5,186,232,5,5,124,164,5,5,187,212,5,5,90,201,5,5,183,172,5,5,77,177,5,5,13,218,5,5,177,164,5,5,171,177,5,5,144,238,5,5,168,227,5,5,124,247,5,5,74,197,5,5,145,238,5,5,112,245,5,5,147,238,5,5,39,206,5,5,130,188,5,5,71,178,5,5,116,249,5,5,41,206,5,5,92,227,5,5,137,173,5,5,208,199,5,5,91,165,5,5,168,190,5,5,96,178,5,5,212,184,5,5,141,184,5,5,200,177,5,5,12,183,5,5,54,210,5,5,189,204,5,5,32,179,5,5,145,204,5,5,179,184,5,5,162,223,5,5,239,197,5,5,38,215,5,5,47,173,5,5,126,202,5,5,179,229,5,5,181,230,5,5,152,172,5,5,106,247,5,5,129,201,5,5,169,222,5,5,189,174,5,5,18,169,5,5,226,175,5,5,119,230,5,5,20,174,5,5,141,206,5,5,165,242,5,5,194,197,5,5,60,247,5,5,197,222,5,5,150,166,5,5,31,178,5,5,154,202,5,5,243,195,5,5,241,222,5,5,142,241,5,5,210,205,5,5,130,249,5,5,165,171,5,5,232,172,5,5,122,223,5,5,200,248,5,5,171,222,5,5,44,184,5,5,22,243,5,5,234,182,5,5,242,215,5,5,93,173,5,5,227,164,5,5,160,247,5,5,54,182,5,5,190,173,5,5,234,246,5,5,158,173,5,5,47,245,5,5,52,248,5,5,209,193,5,5,35,178,5,5,0,158,5,5,145,183,5,5,31,220,5,5,25,222,5,5,207,219,5,5,19,175,5,5,16,183,5,5,91,249,5,5,216,179,5,5,84,215,5,5,101,218,5,5,144,237,5,5,250,169,5,5,97,169,5,5,116,208,5,5,254,164,5,5,140,228,5,5,95,209,5,5,145,237,5,5,90,197,5,5,227,216,5,5,122,172,5,5,64,221,5,5,223,171,5,5,102,164,5,5,65,172,5,5,22,174,5,5,90,189,5,5,170,231,5,5,171,231,5,5,14,227,5,5,76,230,5,5,43,228,5,5,2,244,5,5,105,170,5,5,196,203,5,5,2,193,5,5,163,235,5,5,164,216,5,5,52,246,5,5,109,231,5,5,43,207,5,5,44,228,5,5,128,168,5,5,127,230,5,5,160,241,5,5,7,179,5,5,8,206,5,5,67,229,5,5,56,202,5,5,215,191,5,5,95,216,5,5,110,199,5,5,214,207,5,5,239,203,5,5,84,192,5,5,196,185,5,5,200,204,5,5,201,204,5,5,143,239,5,5,91,184,5,5,103,218,5,5,212,201,5,5,215,201,5,5,187,215,5,5,198,198,5,5,161,194,5,5,19,208,5,5,40,196,5,5,26,243,5,5,50,172,5,5,181,187,5,5,249,166,5,5,203,237,5,5,102,242,5,5,166,242,5,5,167,223,5,5,144,228,5,5,115,243,5,5,236,226,5,5,6,194,5,5,56,212,5,5,110,231,5,5,91,237,5,5,223,245,5,5,140,201,5,5,151,245,5,5,227,185,5,5,29,241,5,5,17,230,5,5,240,203,5,5,157,190,5,5,159,168,5,5,193,215,5,5,5,228,5,5,254,186,5,5,94,225,5,5,59,214,5,5,194,170,5,5,29,174,5,5,202,236,5,5,199,169,5,5,59,246,5,5,57,195,5,5,252,225,5,5,253,225,5,5,167,181,5,5,102,184,5,5,148,216,5,5,101,183,5,5,177,247,5,5,239,182,5,5,38,167,5,5,33,183,5,5,215,207,5,5,150,228,5,5,204,218,5,5,83,198,5,5,231,176,5,5,172,222,5,5,156,237,5,5,137,168,5,5,95,182,5,5,194,215,5,5,197,171,5,5,20,245,5,5,170,242,5,5,60,245,5,5,25,238,5,5,168,242,5,5,178,247,5,5,174,235,5,5,179,247,5,5,139,245,5,5,55,187,5,5,90,215,5,5,206,206,5,5,239,211,5,5,92,222,5,5,122,208,5,5,93,215,5,5,35,222,5,5,234,178,5,5,240,224,5,5,12,190,5,5,46,238,5,5,147,237,5,5,148,237,5,5,229,185,5,5,176,171,5,5,77,235,5,5,48,167,5,5,242,206,5,5,179,166,5,5,5,234,5,5,108,189,5,5,207,246,5,5,183,165,5,5,136,214,5,5,100,229,5,5,11,209,5,5,12,200,5,5,56,173,5,5,184,245,5,5,249,230,5,5,246,179,5,5,156,172,5,5,226,172,5,5,152,203,5,5,63,181,5,5,157,183,5,5,65,212,5,5,156,206,5,5,248,200,5,5,86,206,5,5,76,210,5,5,168,177,5,5,169,216,5,5,72,199,5,5,174,246,5,5,41,185,5,5,20,165,5,5,125,243,5,5,10,224,5,5,79,183,5,5,210,174,5,5,157,206,5,5,200,190,5,5,246,238,5,5,20,186,5,5,199,196,5,5,175,243,5,5,34,241,5,5,207,206,5,5,69,187,5,5,148,177,5,5,94,215,5,5,158,199,5,5,139,199,5,5,98,244,5,5,78,224,5,5,190,228,5,5,149,181,5,5,100,176,5,5,223,241,5,5,106,245,5,5,120,183,5,5,3,226,5,5,76,203,5,5,206,179,5,5,16,217,5,5,85,248,5,5,22,246,5,5,244,176,5,5,35,230,5,5,240,169,5,5,239,175,5,5,31,231,5,5,205,210,5,5,14,200,5,5,196,245,5,5,127,210,5,5,81,226,5,5,148,171,5,5,214,174,5,5,198,203,5,5,158,178,5,5,176,239,5,5,251,222,5,5,206,169,5,5,43,201,5,5,178,171,5,5,206,238,5,5,103,244,5,5,102,217,5,5,107,203,5,5,229,245,5,5,5,170,5,5,99,249,5,5,86,221,5,5,224,209,5,5,70,227,5,5,72,214,5,5,56,182,5,5,192,188,5,5,67,170,5,5,80,230,5,5,114,235,5,5,101,168,5,5,128,246,5,5,142,245,5,5,169,204,5,5,7,199,5,5,135,238,5,5,127,209,5,5,24,164,5,5,194,216,5,5,207,179,5,5,225,193,5,5,160,225,5,5,175,241,5,5,41,168,5,5,51,213,5,5,54,249,5,5,225,244,5,5,64,231,5,5,220,230,5,5,16,223,5,5,43,188,5,5,243,169,5,5,61,167,5,5,136,238,5,5,20,169,5,5,90,192,5,5,160,196,5,5,235,210,5,5,90,203,5,5,32,236,5,5,178,220,5,5,55,249,5,5,116,203,5,5,65,231,5,5,36,172,5,5,106,244,5,5,79,202,5,5,163,236,5,5,34,184,5,5,106,215,5,5,154,179,5,5,120,167,5,5,113,186,5,5,71,183,5,5,9,164,5,5,63,238,5,5,42,168,5,5,140,168,5,5,120,240,5,5,79,168,5,5,113,248,5,5,88,185,5,5,140,217,5,5,103,170,5,5,107,239,5,5,14,221,5,5,215,195,5,5,219,249,5,5,215,183,5,5,197,186,5,5,179,176,5,5,230,193,5,5,143,242,5,5,194,205,5,5,119,222,5,5,17,225,5,5,253,231,5,5,67,198,5,5,124,183,5,5,211,185,5,5,70,169,5,5,124,219,5,5,79,199,5,5,80,199,5,5,150,238,5,5,125,183,5,5,60,211,5,5,64,169,5,5,67,168,5,5,24,193,5,5,69,245,5,5,168,209,5,5,59,182,5,5,123,220,5,5,35,170,5,5,109,215,5,5,110,215,5,5,132,169,5,5,233,187,5,5,139,188,5,5,147,199,5,5,235,193,5,5,125,176,5,5,127,218,5,5,209,216,5,5,112,239,5,5,148,199,5,5,247,212,5,5,165,196,5,5,21,230,5,5,248,212,5,5,58,243,5,5,91,224,5,5,3,204,5,5,246,169,5,5,66,173,5,5,243,172,5,5,63,215,5,5,147,240,5,5,114,200,5,5,106,204,5,5,238,174,5,5,98,227,5,5,76,165,5,5,106,228,5,5,37,237,5,5,66,211,5,5,177,188,5,5,185,200,5,5,8,216,5,5,38,184,5,5,253,178,5,5,148,240,5,5,70,234,5,5,73,238,5,5,103,184,5,5,124,184,5,5,21,169,5,5,53,181,5,5,40,224,5,5,249,205,5,5,193,233,5,5,237,247,5,5,143,168,5,5,86,231,5,5,198,230,5,5,21,183,5,5,149,242,5,5,126,179,5,5,127,244,5,5,81,234,5,5,40,184,5,5,230,248,5,5,181,244,5,5,184,171,5,5,115,165,5,5,22,169,5,5,200,228,5,5,175,216,5,5,221,183,5,5,2,178,5,5,97,188,5,5,20,249,5,5,77,186,5,5,75,243,5,5,239,229,5,5,154,189,5,5,76,204,5,5,104,184,5,5,79,186,5,5,105,210,5,5,136,244,5,5,241,229,5,5,144,200,5,5,91,212,5,5,83,171,5,5,235,186,5,5,169,190,5,5,206,242,5,5,182,221,5,5,82,186,5,5,204,231,5,5,127,203,5,5,116,207,5,5,117,207,5,5,62,197,5,5,178,249,5,5,19,169,5,5,188,231,5,5,29,235,5,5,66,237,5,5,65,174,5,5,199,163,5,5,106,231,5,5,211,214,5,5,22,216,5,5,20,171,5,5,164,235,5,5,103,179,5,5,250,163,5,5,158,202,5,5,3,193,5,5,142,184,5,5,58,217,5,5,119,242,5,5,132,222,5,5,184,197,5,5,158,190,5,5,68,237,5,5,45,183,5,5,128,171,5,5,78,235,5,5,77,210,5,5,101,229,5,5,95,234,5,5,232,240,5,5,123,231,5,5,189,183,5,5,45,174,5,5,130,231,5,5,198,186,5,5,67,217,5,5,143,163,5,5,199,230,5,5,10,183,5,5,8,184,5,5,10,184,5,5,137,244,5,5,170,190,5,5,173,171,5,5,108,184,5,5,96,231,5,5,31,179,5,5,250,193,5,5,194,219,5,5,130,212,5,5,4,248,5,5,15,228,5,5,198,238,5,5,180,181,5,5,122,237,5,5,188,246,5,5,57,230,5,5,210,241,5,5,132,201,5,5,132,239,5,5,119,206,5,5,155,222,5,5,89,171,5,5,191,221,5,5,95,176,5,5,137,201,5,5,87,233,5,5,66,194,5,5,46,220,5,5,214,177,5,5,201,246,5,5,137,239,5,5,15,164,5,5,233,226,5,5,234,226,5,5,175,226,5,5,183,228,5,5,54,195,5,5,95,217,5,5,47,227,5,5,103,242,5,5,212,200,5,5,154,239,5,5,43,181,5,5,17,227,5,5,188,215,5,5,197,194,5,5,100,225,5,5,120,212,5,5,198,194,5,5,129,214,5,5,39,232,5,5,112,219,5,5,20,164,5,5,197,197,5,5,31,243,5,5,130,214,5,5,16,203,5,5,187,228,5,5,186,224,5,5,53,231,5,5,87,201,5,5,93,171,5,5,149,195,5,5,183,196,5,5,9,166,5,5,149,236,5,5,19,234,5,5,132,232,5,5,178,202,5,5,254,248,5,5,179,202,5,5,176,243,5,5,96,171,5,5,150,195,5,5,97,211,5,5,16,212,5,5,177,220,5,5,98,205,5,5,215,174,5,5,115,184,5,5,93,166,5,5,174,200,5,5,6,170,5,5,5,211,5,5,91,198,5,5,86,248,5,5,247,226,5,5,116,184,5,5,226,205,5,5,118,184,5,5,247,218,5,5,26,248,5,5,25,164,5,5,184,196,5,5,119,184,5,5,7,211,5,5,126,169,5,5,152,223,5,5,79,207,5,5,125,193,5,5,8,211,5,5,236,198,5,5,118,245,5,5,227,187,5,5,253,226,5,5,120,184,5,5,201,219,5,5,193,228,5,5,70,246,5,5,47,214,5,5,185,196,5,5,104,200,5,5,234,187,5,5,70,208,5,5,186,200,5,5,164,240,5,5,195,239,5,5,35,164,5,5,215,210,5,5,178,226,5,5,36,164,5,5,225,173,5,5,34,235,5,5,130,178,5,5,158,235,5,5,209,217,5,5,136,175,5,5,85,191,5,5,135,178,5,5,19,228,5,5,187,166,5,5,195,173,5,5,115,222,5,5,30,174,5,5,190,227,5,5,58,195,5,5,9,206,5,5,14,206,5,5,117,222,5,5,125,246,5,5,67,233,5,5,230,217,5,5,145,229,5,5,143,178,5,5,148,175,5,5,201,214,5,5,128,203,5,5,251,227,5,5,50,239,5,5,51,239,5,5,52,239,5,5,126,191,5,5,190,204,5,5,60,229,5,5,178,224,5,5,253,228,5,5,254,228,5,5,155,169,5,5,123,191,5,5,7,225,5,5,22,188,5,5,151,215,5,5,152,215,5,5,245,196,5,5,26,242,5,5,73,247,5,5,27,242,5,5,18,188,5,5,19,188,5,5,156,241,5,5,186,170,5,5,74,247,5,5,75,247,5,5,76,247,5,5,128,191,5,5,157,241,5,5,100,178,5,5,152,196,5,5,229,222,5,5,170,204,5,5,124,192,5,5,52,193,5,5,125,192,5,5,79,182,5,5,129,192,5,5,130,192,5,5,183,226,5,5,205,243,5,5,57,223,5,5,115,195,5,5,146,183,5,5,183,205,5,5,50,246,5,5,42,184,5,5,234,206,5,5,36,168,5,5,135,234,5,5,107,213,5,5,207,164,5,5,194,206,5,5,210,203,5,5,72,181,5,5,158,211,5,5,212,180,5,5,211,203,5,5,250,244,5,5,94,177,5,5,190,226,5,5,18,227,5,5,173,168,5,5,216,201,5,5,60,214,5,5,215,220,5,5,61,214,5,5,153,183,5,5,109,220,5,5,189,212,5,5,60,246,5,5,126,170,5,5,149,237,5,5,9,186,5,5,184,168,5,5,220,180,5,5,207,172,5,5,108,229,5,5,73,214,5,5,205,181,5,5,71,191,5,5,74,191,5,5,86,213,5,5,137,234,5,5,76,191,5,5,86,207,5,5,85,214,5,5,97,207,5,5,112,207,5,5,248,187,5,5,188,207,5,5,123,229,5,5,162,213,5,5,185,223,5,5,137,182,5,5,199,183,5,5,37,228,5,5,165,245,5,5,36,215,5,5,25,187,5,5,188,237,5,5,177,175,5,5,149,200,5,5,226,190,5,5,9,240,5,5,251,208,5,5,112,230,5,5,84,245,5,5,115,198,5,5,134,228,5,5,5,248,5,5,148,225,5,5,21,237,5,5,252,208,5,5,113,230,5,5,201,248,5,5,84,164,5,5,211,241,5,5,14,239,5,5,243,240,5,5,88,245,5,5,134,203,5,5,192,237,5,5,45,202,5,5,59,210,5,5,94,173,5,5,189,246,5,5,157,208,5,5,106,234,5,5,115,210,5,5,158,208,5,5,164,223,5,5,206,203,5,5,154,211,5,5,203,192,5,5,180,215,5,5,139,238,5,5,17,186,5,5,137,175,5,5,0,136,5,5,4,233,5,5,5,233,5,5,60,244,5,5,44,207,5,5,184,192,5,5,40,195,5,5,67,192,5,5,59,217,5,5,170,166,5,5,37,187,5,5,21,181,5,5,159,211,5,5,159,242,5,5,68,174,5,5,13,215,5,5,68,203,5,5,168,189,5,5,22,182,5,5,237,167,5,5,143,238,5,5,81,175,5,5,25,197,5,5,204,248,5,5,160,211,5,5,64,199,5,5,191,166,5,5,224,171,5,5,238,238,5,5,22,181,5,5,91,189,5,5,34,223,5,5,209,168,5,5,226,178,5,5,119,198,5,5,103,196,5,5,14,215,5,5,49,170,5,5,165,182,5,5,60,217,5,5,26,240,5,5,3,166,5,5,92,197,5,5,0,138,5,5,133,190,5,5,204,237,5,5,199,174,5,5,217,217,5,5,23,177,5,5,8,190,5,5,7,239,5,5,30,239,5,5,216,191,5,5,42,212,5,5,8,179,5,5,144,239,5,5,67,172,5,5,237,226,5,5,200,238,5,5,9,246,5,5,168,200,5,5,194,218,5,5,92,171,5,5,252,186,5,5,163,202,5,5,168,182,5,5,10,246,5,5,104,242,5,5,99,193,5,5,187,213,5,5,253,186,5,5,161,241,5,5,84,204,5,5,70,221,5,5,159,190,5,5,241,203,5,5,157,237,5,5,158,237,5,5,64,248,5,5,7,214,5,5,101,166,5,5,192,209,5,5,118,212,5,5,201,173,5,5,202,173,5,5,49,183,5,5,255,186,5,5,39,242,5,5,195,215,5,5,147,201,5,5,138,175,5,5,151,228,5,5,95,225,5,5,199,181,5,5,232,192,5,5,45,208,5,5,248,197,5,5,191,213,5,5,169,243,5,5,14,248,5,5,140,186,5,5,188,195,5,5,173,185,5,5,38,185,5,5,141,215,5,5,15,212,5,5,55,197,5,5,167,226,5,5,168,226,5,5,59,179,5,5,224,188,5,5,140,199,5,5,208,206,5,5,42,185,5,5,184,208,5,5,234,171,5,5,200,196,5,5,201,196,5,5,220,232,5,5,84,193,5,5,210,234,5,5,250,240,5,5,251,240,5,5,205,192,5,5,201,190,5,5,202,190,5,5,150,186,5,5,141,207,5,5,55,178,5,5,78,221,5,5,143,193,5,5,177,243,5,5,235,178,5,5,85,198,5,5,79,221,5,5,65,246,5,5,192,214,5,5,249,167,5,5,129,242,5,5,95,237,5,5,153,203,5,5,178,164,5,5,221,232,5,5,12,196,5,5,236,178,5,5,111,220,5,5,85,193,5,5,178,243,5,5,205,231,5,5,26,232,5,5,44,201,5,5,192,247,5,5,217,245,5,5,36,244,5,5,207,173,5,5,23,210,5,5,37,244,5,5,166,180,5,5,230,239,5,5,239,218,5,5,71,227,5,5,40,232,5,5,224,241,5,5,225,237,5,5,234,221,5,5,166,195,5,5,92,191,5,5,227,242,5,5,241,169,5,5,92,198,5,5,224,201,5,5,225,201,5,5,223,200,5,5,150,181,5,5,48,229,5,5,207,169,5,5,174,210,5,5,107,245,5,5,193,247,5,5,92,233,5,5,22,186,5,5,44,195,5,5,177,242,5,5,178,242,5,5,71,246,5,5,93,233,5,5,147,223,5,5,26,237,5,5,60,231,5,5,75,195,5,5,206,210,5,5,194,247,5,5,245,180,5,5,253,185,5,5,216,181,5,5,123,178,5,5,228,212,5,5,126,247,5,5,119,234,5,5,103,176,5,5,66,231,5,5,164,203,5,5,93,195,5,5,44,188,5,5,113,245,5,5,100,237,5,5,132,209,5,5,124,231,5,5,28,246,5,5,182,164,5,5,129,177,5,5,184,234,5,5,155,210,5,5,14,250,5,5,244,183,5,5,185,234,5,5,137,202,5,5,112,227,5,5,248,230,5,5,117,237,5,5,101,233,5,5,62,206,5,5,228,187,5,5,216,195,5,5,136,224,5,5,51,177,5,5,105,234,5,5,205,177,5,5,192,181,5,5,2,186,5,5,51,221,5,5,119,220,5,5,120,220,5,5,106,238,5,5,37,234,5,5,177,211,5,5,40,211,5,5,216,234,5,5,31,233,5,5,144,175,5,5,145,175,5,5,54,213,5,5,114,248,5,5,5,167,5,5,243,190,5,5,109,216,5,5,138,234,5,5,57,163,5,5,210,210,5,5,4,204,5,5,244,242,5,5,181,185,5,5,145,220,5,5,233,188,5,5,235,187,5,5,236,187,5,5,178,205,5,5,138,176,5,5,117,178,5,5,70,233,5,5,103,204,5,5,48,194,5,5,191,241,5,5,5,204,5,5,192,241,5,5,169,207,5,5,90,220,5,5,149,240,5,5,68,217,5,5,57,183,5,5,109,241,5,5,110,241,5,5,189,239,5,5,252,183,5,5,159,215,5,5,100,202,5,5,90,214,5,5,47,195,5,5,2,213,5,5,12,177,5,5,154,238,5,5,33,233,5,5,171,246,5,5,196,239,5,5,87,231,5,5,150,175,5,5,173,189,5,5,226,231,5,5,40,248,5,5,231,248,5,5,223,243,5,5,230,230,5,5,191,203,5,5,117,187,5,5,243,193,5,5,252,190,5,5,253,190,5,5,136,177,5,5,91,231,5,5,32,213,5,5,12,207,5,5,109,224,5,5,220,244,5,5,112,196,5,5,201,242,5,5,254,245,5,5,63,183,5,5,92,212,5,5,4,224,5,5,13,235,5,5,171,190,5,5,140,177,5,5,141,177,5,5,28,184,5,5,207,242,5,5,204,242,5,5,13,243,5,5,144,196,5,5,14,243,5,5,45,226,5,5,77,196,5,5,46,226,5,5,253,219,5,5,29,201,5,5,77,206,5,5,214,217,5,5,238,223,5,5,239,223,5,5,204,187,5,5,186,194,5,5,251,232,5,5,186,209,5,5,38,207,5,5,217,194,5,5,40,207,5,5,247,244,5,5,13,169,5,5,14,169,5,5,169,223,5,5,24,210,5,5,30,210,5,5,124,202,5,5,210,239,5,5,155,235,5,5,0,130,5,5,59,218,5,5,208,219,5,5,96,216,5,5,145,239,5,5,186,205,5,5,4,218,5,5,242,207,5,5,0,142,5,5,14,218,5,5,159,205,5,5,57,174,5,5,207,231,5,5,244,164,5,5,28,227,5,5,119,166,5,5,190,177,5,5,200,229,5,5,238,172,5,5,227,183,5,5,185,226,5,5,71,173,5,5,164,166,5,5,147,218,5,5,172,212,5,5,59,199,5,5,22,176,5,5,5,246,5,5,43,221,5,5,111,180,5,5,82,175,5,5,98,169,5,5,248,166,5,5,165,166,5,5,246,180,5,5,37,163,5,5,116,188,5,5,189,218,5,5,35,220,5,5,70,163,5,5,190,218,5,5,229,176,5,5,104,169,5,5,42,240,5,5,43,240,5,5,174,168,5,5,81,209,5,5,232,207,5,5,184,230,5,5,201,229,5,5,86,175,5,5,114,221,5,5,209,229,5,5,193,209,5,5,166,220,5,5,195,226,5,5,121,212,5,5,47,213,5,5,142,164,5,5,94,175,5,5,215,193,5,5,19,224,5,5,185,168,5,5,47,221,5,5,102,236,5,5,175,246,5,5,97,175,5,5,16,246,5,5,9,225,5,5,154,227,5,5,185,208,5,5,246,231,5,5,164,193,5,5,68,170,5,5,24,178,5,5,29,198,5,5,118,221,5,5,195,216,5,5,101,171,5,5,23,246,5,5,197,245,5,5,114,174,5,5,87,240,5,5,147,164,5,5,189,168,5,5,70,177,5,5,205,194,5,5,62,167,5,5,92,201,5,5,155,179,5,5,104,171,5,5,91,203,5,5,134,180,5,5,24,200,5,5,213,222,5,5,63,228,5,5,139,170,5,5,100,172,5,5,150,165,5,5,166,193,5,5,254,231,5,5,101,172,5,5,148,164,5,5,52,221,5,5,130,206,5,5,140,224,5,5,135,174,5,5,14,219,5,5,240,198,5,5,244,172,5,5,133,226,5,5,53,165,5,5,114,165,5,5,59,221,5,5,117,171,5,5,144,209,5,5,75,224,5,5,109,173,5,5,238,170,5,5,150,164,5,5,41,224,5,5,138,171,5,5,177,225,5,5,188,203,5,5,167,215,5,5,43,186,5,5,151,192,5,5,167,168,5,5,63,184,5,5,191,204,5,5,81,166,5,5,85,166,5,5,165,216,5,5,161,192,5,5,139,241,5,5,208,200,5,5,95,242,5,5,13,242,5,5,133,202,5,5,172,194,5,5,21,168,5,5,125,181,5,5,21,232,5,5,173,194,5,5,170,222,5,5,67,169,5,5,135,211,5,5,251,164,5,5,217,210,5,5,205,178,5,5,130,226,5,5,254,193,5,5,9,241,5,5,167,163,5,5,208,203,5,5,243,216,5,5,184,189,5,5,48,245,5,5,192,222,5,5,23,196,5,5,92,244,5,5,203,176,5,5,15,167,5,5,162,177,5,5,224,240,5,5,166,171,5,5,213,192,5,5,214,233,5,5,154,174,5,5,166,182,5,5,115,167,5,5,194,172,5,5,69,216,5,5,218,239,5,5,195,218,5,5,13,181,5,5,196,218,5,5,239,214,5,5,36,178,5,5,11,233,5,5,131,214,5,5,200,181,5,5,12,194,5,5,26,196,5,5,195,170,5,5,146,181,5,5,75,242,5,5,102,166,5,5,86,166,5,5,141,225,5,5,43,185,5,5,21,165,5,5,69,202,5,5,203,238,5,5,141,229,5,5,213,195,5,5,214,249,5,5,55,182,5,5,96,237,5,5,142,229,5,5,128,211,5,5,87,248,5,5,19,248,5,5,169,171,5,5,41,236,5,5,243,233,5,5,45,216,5,5,209,172,5,5,171,204,5,5,234,237,5,5,228,193,5,5,103,188,5,5,158,227,5,5,126,188,5,5,114,186,5,5,44,236,5,5,248,218,5,5,50,167,5,5,130,211,5,5,174,204,5,5,175,204,5,5,195,205,5,5,107,238,5,5,62,196,5,5,236,185,5,5,241,243,5,5,23,188,5,5,105,175,5,5,37,190,5,5,121,240,5,5,172,225,5,5,92,224,5,5,224,181,5,5,133,235,5,5,6,216,5,5,170,171,5,5,34,225,5,5,70,245,5,5,215,172,5,5,175,194,5,5,36,196,5,5,93,196,5,5,77,165,5,5,67,211,5,5,91,214,5,5,12,189,5,5,13,189,5,5,249,187,5,5,203,189,5,5,252,202,5,5,221,244,5,5,74,215,5,5,139,181,5,5,235,249,5,5,236,186,5,5,142,181,5,5,204,243,5,5,210,217,5,5,160,242,5,5,144,181,5,5,164,176,5,5,219,166,5,5,81,205,5,5,42,200,5,5,17,183,5,5,45,200,5,5,216,194,5,5,89,184,5,5,76,195,5,5,228,165,5,5,10,240,5,5,26,209,5,5,208,184,5,5,128,173,5,5,18,207,5,5,220,242,5,5,44,240,5,5,187,232,5,5,54,165,5,5,254,239,5,5,84,239,5,5,68,239,5,5,80,236,5,5,32,227,5,5,69,239,5,5,72,227,5,5,80,227,5,5,187,194,5,5,95,177,5,5,206,243,5,5,52,199,5,5,58,174,5,5,128,201,5,5,242,244,5,5,76,182,5,5,30,223,5,5,53,206,5,5,16,163,5,5,181,228,5,5,223,176,5,5,9,221,5,5,124,207,5,5,149,179,5,5,155,174,5,5,204,176,5,5,35,171,5,5,85,215,5,5,248,198,5,5,225,223,5,5,148,184,5,5,143,206,5,5,212,220,5,5,146,239,5,5,73,171,5,5,43,212,5,5,172,246,5,5,227,227,5,5,235,230,5,5,96,217,5,5,152,206,5,5,78,177,5,5,10,221,5,5,57,206,5,5,57,211,5,5,155,167,5,5,31,176,5,5,58,211,5,5,29,165,5,5,30,165,5,5,196,227,5,5,36,176,5,5,36,205,5,5,91,192,5,5,210,191,5,5,117,172,5,5,55,165,5,5,138,195,5,5,154,205,5,5,136,165,5,5,159,214,5,5,49,176,5,5,152,193,5,5,65,206,5,5,173,201,5,5,43,171,5,5,157,193,5,5,181,246,5,5,202,207,5,5,146,202,5,5,147,202,5,5,207,193,5,5,68,176,5,5,5,190,5,5,6,190,5,5,124,182,5,5,80,200,5,5,240,218,5,5,91,200,5,5,92,200,5,5,190,239,5,5,191,239,5,5,201,239,5,5,202,239,5,5,193,248,5,5,195,248,5,5,38,228,5,5,140,216,5,5,20,247,5,5,164,182,5,5,27,243,5,5,28,243,5,5,65,248,5,5,6,223,5,5,20,234,5,5,145,165,5,5,79,177,5,5,10,166,5,5,157,167,5,5,15,250,5,5,85,168,5,5,15,221,5,5,214,244,5,5,28,223,5,5,79,223,5,5,20,222,5,5,53,182,5,5,46,202,5,5,168,173,5,5,198,222,5,5,16,240,5,5,83,247,5,5,186,223,5,5,230,164,5,5,151,176,5,5,92,189,5,5,69,174,5,5,89,247,5,5,65,221,5,5,149,234,5,5,90,247,5,5,144,206,5,5,87,175,5,5,182,212,5,5,5,218,5,5,167,198,5,5,28,244,5,5,232,199,5,5,87,191,5,5,49,198,5,5,93,247,5,5,138,225,5,5,205,218,5,5,223,216,5,5,153,206,5,5,201,181,5,5,76,235,5,5,57,219,5,5,39,185,5,5,79,235,5,5,58,175,5,5,210,166,5,5,78,213,5,5,239,178,5,5,181,202,5,5,10,225,5,5,219,218,5,5,80,235,5,5,9,220,5,5,44,185,5,5,73,248,5,5,66,214,5,5,223,203,5,5,94,205,5,5,73,227,5,5,77,203,5,5,243,165,5,5,45,201,5,5,216,174,5,5,231,217,5,5,72,246,5,5,121,167,5,5,176,241,5,5,238,245,5,5,229,212,5,5,90,221,5,5,96,168,5,5,178,180,5,5,63,175,5,5,93,221,5,5,96,221,5,5,130,165,5,5,64,175,5,5,158,226,5,5,197,223,5,5,59,204,5,5,115,200,5,5,62,204,5,5,33,200,5,5,227,169,5,5,43,191,5,5,58,216,5,5,62,164,5,5,222,211,5,5,241,215,5,5,36,216,5,5,245,164,5,5,2,240,5,5,15,185,5,5,87,230,5,5,128,175,5,5,211,177,5,5,228,191,5,5,155,202,5,5,97,230,5,5,89,230,5,5,156,224,5,5,22,180,5,5,92,179,5,5,93,179,5,5,103,192,5,5,23,209,5,5,33,227,5,5,33,235,5,5,180,218,5,5,107,247,5,5,183,170,5,5,167,212,5,5,7,173,5,5,93,244,5,5,97,181,5,5,225,171,5,5,49,247,5,5,199,222,5,5,149,226,5,5,90,245,5,5,47,202,5,5,49,245,5,5,111,213,5,5,41,203,5,5,8,242,5,5,235,246,5,5,40,235,5,5,88,237,5,5,80,196,5,5,53,248,5,5,230,165,5,5,181,218,5,5,159,208,5,5,230,234,5,5,180,224,5,5,134,179,5,5,139,182,5,5,116,210,5,5,90,184,5,5,4,201,5,5,34,218,5,5,48,184,5,5,9,197,5,5,41,215,5,5,243,215,5,5,209,195,5,5,220,198,5,5,106,195,5,5,130,173,5,5,231,199,5,5,136,179,5,5,109,237,5,5,50,245,5,5,194,238,5,5,37,225,5,5,140,226,5,5,45,207,5,5,27,240,5,5,16,164,5,5,226,223,5,5,226,171,5,5,228,166,5,5,6,233,5,5,167,232,5,5,80,244,5,5,46,207,5,5,103,164,5,5,151,184,5,5,47,183,5,5,66,221,5,5,166,166,5,5,125,166,5,5,247,180,5,5,69,199,5,5,65,199,5,5,47,207,5,5,20,175,5,5,117,188,5,5,111,235,5,5,17,224,5,5,227,176,5,5,88,175,5,5,138,239,5,5,183,181,5,5,36,242,5,5,25,174,5,5,57,202,5,5,135,167,5,5,166,216,5,5,93,249,5,5,149,183,5,5,204,193,5,5,70,174,5,5,112,213,5,5,255,164,5,5,11,242,5,5,96,209,5,5,157,217,5,5,43,235,5,5,58,166,5,5,84,201,5,5,247,216,5,5,204,225,5,5,2,165,5,5,134,229,5,5,183,212,5,5,230,179,5,5,27,250,5,5,125,233,5,5,136,178,5,5,154,169,5,5,153,218,5,5,28,240,5,5,48,227,5,5,123,183,5,5,218,217,5,5,49,227,5,5,117,213,5,5,197,185,5,5,199,198,5,5,254,196,5,5,87,170,5,5,158,218,5,5,3,214,5,5,187,188,5,5,14,181,5,5,85,201,5,5,24,177,5,5,249,197,5,5,64,197,5,5,7,194,5,5,200,198,5,5,184,212,5,5,30,204,5,5,138,229,5,5,195,235,5,5,224,198,5,5,220,209,5,5,81,244,5,5,75,200,5,5,43,200,5,5,88,223,5,5,45,203,5,5,147,239,5,5,37,218,5,5,206,193,5,5,22,189,5,5,2,200,5,5,194,231,5,5,251,216,5,5,65,223,5,5,255,228,5,5,217,184,5,5,170,198,5,5,3,239,5,5,55,195,5,5,9,179,5,5,74,181,5,5,199,194,5,5,44,212,5,5,190,212,5,5,82,209,5,5,207,248,5,5,137,167,5,5,198,195,5,5,57,175,5,5,76,200,5,5,207,237,5,5,234,214,5,5,216,182,5,5,122,242,5,5,86,195,5,5,234,233,5,5,65,183,5,5,181,249,5,5,197,170,5,5,5,250,5,5,2,250,5,5,251,248,5,5,208,167,5,5,225,196,5,5,129,209,5,5,209,248,5,5,74,248,5,5,202,181,5,5,220,203,5,5,198,212,5,5,138,219,5,5,23,189,5,5,218,180,5,5,122,198,5,5,250,197,5,5,101,209,5,5,221,180,5,5,135,166,5,5,57,240,5,5,170,210,5,5,56,200,5,5,191,212,5,5,212,163,5,5,106,170,5,5,99,239,5,5,194,198,5,5,110,237,5,5,45,212,5,5,139,225,5,5,104,196,5,5,98,245,5,5,99,245,5,5,14,242,5,5,172,186,5,5,70,189,5,5,218,200,5,5,44,235,5,5,71,240,5,5,210,248,5,5,56,187,5,5,98,184,5,5,66,183,5,5,215,237,5,5,17,212,5,5,136,217,5,5,73,210,5,5,100,245,5,5,4,172,5,5,81,235,5,5,184,172,5,5,186,163,5,5,67,178,5,5,240,234,5,5,43,225,5,5,173,170,5,5,103,236,5,5,183,202,5,5,104,194,5,5,99,194,5,5,170,216,5,5,157,175,5,5,123,208,5,5,56,197,5,5,103,181,5,5,203,190,5,5,214,212,5,5,175,195,5,5,131,194,5,5,210,183,5,5,112,211,5,5,21,224,5,5,183,178,5,5,177,193,5,5,83,220,5,5,87,206,5,5,208,246,5,5,6,249,5,5,174,205,5,5,189,202,5,5,21,186,5,5,75,248,5,5,199,199,5,5,117,197,5,5,66,212,5,5,247,179,5,5,222,180,5,5,225,180,5,5,237,183,5,5,94,247,5,5,254,225,5,5,230,198,5,5,249,200,5,5,199,212,5,5,29,225,5,5,254,215,5,5,17,246,5,5,84,200,5,5,226,237,5,5,226,236,5,5,128,233,5,5,206,204,5,5,8,250,5,5,169,177,5,5,65,207,5,5,84,234,5,5,112,225,5,5,60,175,5,5,222,163,5,5,105,209,5,5,75,234,5,5,32,176,5,5,100,194,5,5,109,178,5,5,70,183,5,5,185,249,5,5,82,216,5,5,94,222,5,5,38,177,5,5,46,201,5,5,116,226,5,5,139,212,5,5,14,230,5,5,122,216,5,5,244,233,5,5,218,165,5,5,7,172,5,5,94,233,5,5,167,180,5,5,188,209,5,5,28,224,5,5,229,163,5,5,103,217,5,5,230,245,5,5,171,191,5,5,86,210,5,5,73,246,5,5,100,248,5,5,196,247,5,5,31,165,5,5,104,217,5,5,224,200,5,5,10,172,5,5,32,165,5,5,105,240,5,5,204,171,5,5,9,250,5,5,112,195,5,5,101,176,5,5,133,243,5,5,227,237,5,5,196,224,5,5,70,170,5,5,86,209,5,5,65,195,5,5,206,247,5,5,64,238,5,5,108,209,5,5,228,242,5,5,162,184,5,5,142,192,5,5,186,249,5,5,129,233,5,5,254,235,5,5,162,186,5,5,133,173,5,5,233,244,5,5,156,196,5,5,161,196,5,5,28,212,5,5,206,194,5,5,144,249,5,5,164,236,5,5,171,236,5,5,202,208,5,5,177,241,5,5,114,237,5,5,98,201,5,5,80,202,5,5,53,193,5,5,80,207,5,5,146,226,5,5,211,183,5,5,19,214,5,5,94,195,5,5,109,221,5,5,16,250,5,5,48,234,5,5,17,218,5,5,215,228,5,5,96,163,5,5,113,195,5,5,102,249,5,5,133,213,5,5,26,201,5,5,18,250,5,5,69,244,5,5,89,187,5,5,19,236,5,5,156,179,5,5,141,243,5,5,182,233,5,5,21,217,5,5,177,210,5,5,145,179,5,5,36,201,5,5,188,249,5,5,216,228,5,5,52,172,5,5,237,194,5,5,197,227,5,5,84,235,5,5,69,168,5,5,102,172,5,5,103,172,5,5,167,193,5,5,110,223,5,5,86,234,5,5,79,234,5,5,77,234,5,5,217,234,5,5,15,172,5,5,98,179,5,5,17,221,5,5,219,182,5,5,151,238,5,5,253,229,5,5,140,170,5,5,108,194,5,5,31,212,5,5,86,232,5,5,176,204,5,5,105,200,5,5,91,195,5,5,131,188,5,5,195,238,5,5,118,237,5,5,239,210,5,5,244,243,5,5,98,191,5,5,234,228,5,5,137,246,5,5,113,182,5,5,111,170,5,5,91,210,5,5,201,227,5,5,220,249,5,5,142,211,5,5,217,195,5,5,8,177,5,5,128,218,5,5,237,185,5,5,7,208,5,5,141,208,5,5,137,208,5,5,129,248,5,5,201,168,5,5,229,187,5,5,97,235,5,5,18,242,5,5,159,226,5,5,15,219,5,5,220,182,5,5,67,225,5,5,53,209,5,5,178,211,5,5,164,167,5,5,241,163,5,5,117,165,5,5,155,212,5,5,6,204,5,5,196,232,5,5,111,223,5,5,140,188,5,5,204,168,5,5,166,196,5,5,106,200,5,5,170,209,5,5,128,225,5,5,245,243,5,5,246,243,5,5,88,213,5,5,3,213,5,5,50,176,5,5,2,180,5,5,91,178,5,5,145,178,5,5,144,178,5,5,177,236,5,5,178,207,5,5,255,233,5,5,160,214,5,5,245,172,5,5,136,173,5,5,182,185,5,5,212,185,5,5,160,226,5,5,69,198,5,5,57,209,5,5,111,215,5,5,16,172,5,5,131,206,5,5,12,188,5,5,71,245,5,5,87,234,5,5,170,207,5,5,159,234,5,5,223,215,5,5,32,180,5,5,33,229,5,5,230,167,5,5,150,240,5,5,231,225,5,5,64,215,5,5,58,183,5,5,52,176,5,5,33,180,5,5,136,206,5,5,103,237,5,5,148,198,5,5,63,204,5,5,144,246,5,5,119,217,5,5,2,179,5,5,249,210,5,5,243,210,5,5,90,207,5,5,49,234,5,5,204,195,5,5,92,214,5,5,128,244,5,5,155,238,5,5,81,170,5,5,151,240,5,5,14,189,5,5,236,235,5,5,71,208,5,5,236,199,5,5,176,170,5,5,73,186,5,5,74,238,5,5,15,189,5,5,152,242,5,5,68,196,5,5,234,213,5,5,116,223,5,5,41,248,5,5,250,243,5,5,72,175,5,5,15,171,5,5,76,238,5,5,239,170,5,5,148,178,5,5,225,208,5,5,92,169,5,5,33,186,5,5,177,170,5,5,42,224,5,5,32,219,5,5,174,184,5,5,175,184,5,5,150,242,5,5,76,244,5,5,124,163,5,5,39,219,5,5,40,197,5,5,18,197,5,5,91,242,5,5,55,174,5,5,70,188,5,5,139,171,5,5,134,225,5,5,152,200,5,5,160,224,5,5,17,171,5,5,78,186,5,5,241,199,5,5,147,217,5,5,169,230,5,5,162,224,5,5,232,202,5,5,104,207,5,5,160,200,5,5,209,227,5,5,205,240,5,5,212,188,5,5,118,183,5,5,57,171,5,5,120,180,5,5,203,207,5,5,210,192,5,5,211,192,5,5,191,222,5,5,130,191,5,5,198,248,5,5,82,245,5,5,188,204,5,5,181,216,5,5,128,229,5,5,48,231,5,5,106,213,5,5,86,225,5,5,183,245,5,5,209,203,5,5,136,191,5,5,196,204,5,5,26,211,5,5,186,199,5,5,27,211,5,5,134,220,5,5,15,179,5,5,124,208,5,5,48,203,5,5,33,177,5,5,54,232,5,5,51,203,5,5,135,202,5,5,84,218,5,5,167,195,5,5,81,202,5,5,124,196,5,5,242,191,5,5,134,176,5,5,143,220,5,5,41,211,5,5,150,191,5,5,45,205,5,5,176,203,5,5,115,248,5,5,46,205,5,5,245,242,5,5,43,190,5,5,241,198,5,5,147,220,5,5,146,213,5,5,151,213,5,5,246,225,5,5,112,175,5,5,225,211,5,5,53,199,5,5,54,199,5,5,55,199,5,5,189,237,5,5,38,227,5,5,210,180,5,5,47,170,5,5,66,199,5,5,38,187,5,5,160,173,5,5,220,236,5,5,215,165,5,5,165,177,5,5,84,208,5,5,245,228,5,5,155,239,5,5,225,239,5,5,90,228,5,5,73,199,5,5,160,172,5,5,229,242,5,5,14,228,5,5,35,228,5,5,7,234,5,5,59,219,5,5,246,209,5,5,16,185,5,5,214,168,5,5,0,132,5,5,46,175,5,5,172,230,5,5,40,173,5,5,226,230,5,5,44,232,5,5,252,181,5,5,42,221,5,5,93,177,5,5,226,195,5,5,139,247,5,5,3,196,5,5,133,192,5,5,135,228,5,5,125,223,5,5,253,181,5,5,32,193,5,5,146,195,5,5,85,245,5,5,66,176,5,5,55,210,5,5,99,218,5,5,115,230,5,5,52,196,5,5,160,170,5,5,30,236,5,5,14,244,5,5,49,184,5,5,100,164,5,5,181,223,5,5,26,230,5,5,173,212,5,5,117,210,5,5,67,164,5,5,42,203,5,5,161,247,5,5,66,174,5,5,140,238,5,5,174,212,5,5,198,167,5,5,148,218,5,5,182,218,5,5,193,237,5,5,67,176,5,5,220,219,5,5,89,225,5,5,156,202,5,5,212,242,5,5,10,197,5,5,231,165,5,5,223,223,5,5,192,206,5,5,50,247,5,5,247,198,5,5,202,248,5,5,122,207,5,5,11,163,5,5,14,211,5,5,4,176,5,5,104,221,5,5,161,249,5,5,190,246,5,5,3,183,5,5,17,240,5,5,61,229,5,5,254,221,5,5,39,167,5,5,212,179,5,5,189,175,5,5,233,195,5,5,127,219,5,5,40,167,5,5,151,174,5,5,9,167,5,5,0,156,5,5,130,238,5,5,235,231,5,5,110,182,5,5,133,195,5,5,189,190,5,5,73,211,5,5,208,249,5,5,60,199,5,5,42,164,5,5,59,166,5,5,154,218,5,5,136,167,5,5,228,179,5,5,126,166,5,5,201,167,5,5,109,179,5,5,212,241,5,5,210,220,5,5,61,219,5,5,3,244,5,5,43,164,5,5,77,197,5,5,182,183,5,5,84,241,5,5,205,176,5,5,86,223,5,5,202,167,5,5,5,203,5,5,91,169,5,5,251,169,5,5,167,224,5,5,225,240,5,5,9,224,5,5,161,211,5,5,253,171,5,5,205,225,5,5,6,203,5,5,71,174,5,5,94,219,5,5,192,221,5,5,228,175,5,5,206,223,5,5,66,172,5,5,61,184,5,5,227,184,5,5,156,174,5,5,10,167,5,5,104,164,5,5,208,166,5,5,216,188,5,5,223,182,5,5,197,193,5,5,118,210,5,5,48,207,5,5,53,179,5,5,0,159,5,5,5,182,5,5,6,182,5,5,131,238,5,5,195,206,5,5,6,222,5,5,80,167,5,5,209,219,5,5,170,163,5,5,168,163,5,5,206,176,5,5,183,183,5,5,49,207,5,5,53,196,5,5,29,191,5,5,13,205,5,5,75,209,5,5,211,249,5,5,18,186,5,5,110,184,5,5,38,163,5,5,237,231,5,5,69,210,5,5,163,198,5,5,54,196,5,5,50,227,5,5,143,203,5,5,106,221,5,5,100,184,5,5,219,194,5,5,221,194,5,5,59,212,5,5,222,229,5,5,31,235,5,5,212,231,5,5,120,195,5,5,148,239,5,5,4,214,5,5,235,233,5,5,3,200,5,5,129,168,5,5,79,222,5,5,238,226,5,5,224,182,5,5,152,163,5,5,36,223,5,5,130,193,5,5,197,218,5,5,55,196,5,5,81,178,5,5,82,178,5,5,159,218,5,5,102,209,5,5,239,238,5,5,209,184,5,5,238,220,5,5,163,191,5,5,85,204,5,5,47,196,5,5,10,179,5,5,225,182,5,5,15,181,5,5,182,187,5,5,63,219,5,5,61,191,5,5,25,177,5,5,137,245,5,5,130,207,5,5,218,187,5,5,21,207,5,5,207,218,5,5,160,190,5,5,30,241,5,5,168,245,5,5,54,179,5,5,5,214,5,5,48,183,5,5,82,176,5,5,31,204,5,5,71,221,5,5,130,202,5,5,4,200,5,5,88,215,5,5,184,248,5,5,26,238,5,5,8,182,5,5,155,184,5,5,197,234,5,5,78,163,5,5,233,192,5,5,204,180,5,5,241,220,5,5,101,225,5,5,198,235,5,5,199,235,5,5,245,195,5,5,238,169,5,5,41,191,5,5,200,206,5,5,153,167,5,5,18,205,5,5,58,240,5,5,168,181,5,5,56,228,5,5,231,230,5,5,204,246,5,5,8,214,5,5,130,223,5,5,237,173,5,5,35,204,5,5,58,245,5,5,46,208,5,5,164,204,5,5,209,182,5,5,226,196,5,5,192,199,5,5,203,181,5,5,9,222,5,5,41,167,5,5,63,191,5,5,0,143,5,5,123,198,5,5,228,227,5,5,224,183,5,5,216,207,5,5,25,232,5,5,139,229,5,5,62,241,5,5,138,207,5,5,114,166,5,5,194,246,5,5,136,166,5,5,84,233,5,5,59,240,5,5,186,219,5,5,64,191,5,5,40,236,5,5,9,182,5,5,165,185,5,5,78,237,5,5,143,164,5,5,19,205,5,5,214,200,5,5,139,175,5,5,167,246,5,5,236,246,5,5,226,210,5,5,187,167,5,5,184,227,5,5,194,187,5,5,235,171,5,5,165,170,5,5,166,174,5,5,160,163,5,5,66,207,5,5,135,175,5,5,185,245,5,5,35,238,5,5,234,207,5,5,216,248,5,5,127,233,5,5,168,224,5,5,31,226,5,5,154,203,5,5,187,181,5,5,131,164,5,5,242,182,5,5,73,184,5,5,232,230,5,5,243,232,5,5,194,245,5,5,200,212,5,5,50,215,5,5,105,225,5,5,126,177,5,5,31,236,5,5,190,190,5,5,137,211,5,5,194,192,5,5,56,178,5,5,24,228,5,5,102,177,5,5,42,167,5,5,214,176,5,5,37,221,5,5,22,201,5,5,131,202,5,5,152,179,5,5,73,209,5,5,186,208,5,5,211,166,5,5,74,229,5,5,80,210,5,5,109,189,5,5,54,241,5,5,35,241,5,5,142,207,5,5,80,221,5,5,61,189,5,5,132,193,5,5,72,240,5,5,196,199,5,5,93,228,5,5,107,221,5,5,216,237,5,5,21,234,5,5,40,180,5,5,194,223,5,5,56,166,5,5,100,203,5,5,223,180,5,5,65,197,5,5,73,182,5,5,224,242,5,5,198,234,5,5,11,220,5,5,209,206,5,5,119,181,5,5,125,210,5,5,206,195,5,5,153,163,5,5,160,166,5,5,101,203,5,5,230,189,5,5,195,193,5,5,57,172,5,5,251,192,5,5,221,218,5,5,11,176,5,5,29,171,5,5,94,234,5,5,17,236,5,5,101,194,5,5,191,167,5,5,100,249,5,5,164,184,5,5,27,205,5,5,87,221,5,5,132,204,5,5,28,205,5,5,197,247,5,5,182,242,5,5,119,196,5,5,112,183,5,5,116,201,5,5,36,230,5,5,39,168,5,5,231,245,5,5,255,235,5,5,118,232,5,5,105,217,5,5,149,171,5,5,168,180,5,5,225,183,5,5,132,223,5,5,74,227,5,5,130,233,5,5,249,220,5,5,103,239,5,5,232,217,5,5,242,249,5,5,197,165,5,5,38,244,5,5,225,200,5,5,230,242,5,5,134,232,5,5,233,238,5,5,196,216,5,5,38,241,5,5,198,245,5,5,34,195,5,5,19,226,5,5,60,202,5,5,226,180,5,5,236,184,5,5,242,184,5,5,197,224,5,5,78,195,5,5,133,204,5,5,135,204,5,5,210,181,5,5,108,203,5,5,15,200,5,5,176,192,5,5,180,226,5,5,148,214,5,5,39,177,5,5,244,213,5,5,45,249,5,5,128,210,5,5,64,241,5,5,133,223,5,5,69,219,5,5,187,163,5,5,170,241,5,5,232,245,5,5,206,164,5,5,66,186,5,5,65,247,5,5,17,211,5,5,69,224,5,5,146,191,5,5,254,185,5,5,131,233,5,5,218,192,5,5,42,204,5,5,92,192,5,5,20,211,5,5,67,231,5,5,24,212,5,5,11,224,5,5,20,226,5,5,117,220,5,5,82,237,5,5,71,237,5,5,97,163,5,5,221,225,5,5,68,231,5,5,166,164,5,5,172,234,5,5,20,236,5,5,13,195,5,5,178,241,5,5,141,175,5,5,85,218,5,5,153,184,5,5,231,184,5,5,217,204,5,5,45,236,5,5,46,210,5,5,26,192,5,5,153,215,5,5,186,229,5,5,117,236,5,5,227,205,5,5,132,171,5,5,235,237,5,5,36,226,5,5,165,184,5,5,61,228,5,5,62,179,5,5,98,219,5,5,77,180,5,5,63,167,5,5,73,164,5,5,10,175,5,5,90,187,5,5,157,179,5,5,11,199,5,5,249,218,5,5,145,245,5,5,116,199,5,5,92,210,5,5,66,247,5,5,75,211,5,5,87,181,5,5,180,220,5,5,236,237,5,5,20,214,5,5,168,184,5,5,74,212,5,5,150,223,5,5,116,219,5,5,181,191,5,5,63,245,5,5,8,239,5,5,198,227,5,5,227,195,5,5,199,227,5,5,84,229,5,5,164,163,5,5,179,241,5,5,36,166,5,5,46,236,5,5,234,179,5,5,213,235,5,5,137,224,5,5,210,236,5,5,137,204,5,5,157,226,5,5,126,226,5,5,196,193,5,5,73,166,5,5,245,173,5,5,197,229,5,5,2,177,5,5,49,209,5,5,50,236,5,5,189,219,5,5,174,188,5,5,68,225,5,5,19,223,5,5,109,194,5,5,38,190,5,5,145,190,5,5,3,186,5,5,134,233,5,5,239,191,5,5,81,199,5,5,73,219,5,5,136,226,5,5,126,180,5,5,146,199,5,5,218,234,5,5,9,183,5,5,72,169,5,5,17,206,5,5,231,193,5,5,212,244,5,5,125,218,5,5,112,238,5,5,16,219,5,5,247,183,5,5,141,170,5,5,159,224,5,5,139,195,5,5,150,225,5,5,202,227,5,5,114,182,5,5,52,204,5,5,66,169,5,5,73,169,5,5,150,219,5,5,97,234,5,5,251,195,5,5,151,165,5,5,63,206,5,5,142,243,5,5,99,192,5,5,93,210,5,5,24,188,5,5,93,202,5,5,111,244,5,5,110,207,5,5,61,168,5,5,59,168,5,5,166,185,5,5,191,178,5,5,220,215,5,5,23,231,5,5,49,194,5,5,136,232,5,5,130,240,5,5,112,215,5,5,71,225,5,5,72,225,5,5,200,235,5,5,56,183,5,5,187,201,5,5,134,235,5,5,143,198,5,5,183,194,5,5,12,175,5,5,81,233,5,5,79,184,5,5,11,189,5,5,110,221,5,5,27,200,5,5,190,222,5,5,60,204,5,5,140,202,5,5,31,234,5,5,14,176,5,5,15,176,5,5,198,223,5,5,58,163,5,5,184,223,5,5,111,207,5,5,177,174,5,5,221,187,5,5,137,164,5,5,178,174,5,5,201,209,5,5,59,163,5,5,174,234,5,5,51,222,5,5,145,222,5,5,92,246,5,5,217,168,5,5,21,211,5,5,188,178,5,5,80,184,5,5,121,199,5,5,28,214,5,5,182,189,5,5,61,204,5,5,5,235,5,5,74,179,5,5,149,198,5,5,202,209,5,5,182,245,5,5,51,205,5,5,145,192,5,5,226,249,5,5,92,185,5,5,136,183,5,5,241,189,5,5,107,228,5,5,52,222,5,5,5,232,5,5,219,168,5,5,12,226,5,5,5,202,5,5,85,176,5,5,237,235,5,5,32,234,5,5,121,211,5,5,120,211,5,5,239,200,5,5,121,203,5,5,245,210,5,5,76,196,5,5,249,175,5,5,34,214,5,5,243,194,5,5,31,168,5,5,154,163,5,5,156,238,5,5,91,207,5,5,111,241,5,5,18,238,5,5,30,171,5,5,70,236,5,5,44,171,5,5,141,202,5,5,127,179,5,5,61,222,5,5,151,175,5,5,161,216,5,5,76,186,5,5,225,233,5,5,33,207,5,5,68,241,5,5,216,230,5,5,126,241,5,5,121,241,5,5,194,183,5,5,207,245,5,5,106,202,5,5,40,166,5,5,125,184,5,5,155,191,5,5,40,219,5,5,26,219,5,5,69,196,5,5,80,169,5,5,139,205,5,5,38,214,5,5,209,187,5,5,237,179,5,5,165,163,5,5,72,236,5,5,246,189,5,5,116,191,5,5,28,230,5,5,157,180,5,5,56,167,5,5,77,244,5,5,155,185,5,5,226,233,5,5,96,229,5,5,138,232,5,5,85,184,5,5,168,215,5,5,77,208,5,5,172,199,5,5,123,187,5,5,251,184,5,5,207,200,5,5,194,244,5,5,204,189,5,5,36,191,5,5,101,210,5,5,108,210,5,5,139,232,5,5,106,210,5,5,44,186,5,5,75,215,5,5,138,244,5,5,230,169,5,5,165,230,5,5,77,224,5,5,235,244,5,5,9,235,5,5,40,214,5,5,210,227,5,5,109,190,5,5,79,208,5,5,58,171,5,5,237,186,5,5,141,232,5,5,172,190,5,5,238,179,5,5,65,233,5,5,153,187,5,5,142,177,5,5,150,245,5,5,88,176,5,5,79,204,5,5,204,207,5,5,83,186,5,5,163,187,5,5,138,183,5,5,55,218,5,5,29,194,5,5,8,194,5,5,128,208,5,5,243,217,5,5,212,168,5,5,213,168,5,5,13,228,5,5,118,195,5,5,9,242,5,5,229,191,5,5,215,239,5,5,191,194,5,5,104,192,5,5,68,164,5,5,181,173,5,5,115,221,5,5,193,166,5,5,124,177,5,5,147,195,5,5,2,172,5,5,96,245,5,5,80,193,5,5,105,197,5,5,237,233,5,5,216,214,5,5,75,171,5,5,212,225,5,5,166,191,5,5,169,176,5,5,7,217,5,5,91,204,5,5,5,172,5,5,188,224,5,5,168,204,5,5,155,228,5,5,64,178,5,5,20,248,5,5,93,223,5,5,102,238,5,5,171,163,5,5,8,217,5,5,92,204,5,5,65,178,5,5,170,188,5,5,239,183,5,5,22,165,5,5,31,225,5,5,151,177,5,5,57,178,5,5,88,240,5,5,140,192,5,5,104,236,5,5,45,195,5,5,41,243,5,5,184,178,5,5,226,201,5,5,220,179,5,5,222,214,5,5,68,178,5,5,46,204,5,5,169,206,5,5,41,244,5,5,203,213,5,5,238,171,5,5,147,229,5,5,39,238,5,5,135,209,5,5,40,238,5,5,111,221,5,5,183,176,5,5,255,220,5,5,48,174,5,5,156,229,5,5,237,187,5,5,181,211,5,5,51,218,5,5,239,239,5,5,64,204,5,5,132,228,5,5,65,204,5,5,62,222,5,5,165,240,5,5,178,188,5,5,83,165,5,5,223,186,5,5,231,214,5,5,232,214,5,5,19,247,5,5,56,217,5,5,163,208,5,5,175,208,5,5,187,219,5,5,13,166,5,5,143,207,5,5,188,219,5,5,109,186,5,5,185,172,5,5,72,164,5,5,74,164,5,5,30,186,5,5,43,248,5,5,49,186,5,5,113,246,5,5,197,175,5,5,11,229,5,5,21,188,5,5,72,203,5,5,2,199,5,5,13,214,5,5,78,203,5,5,23,248,5,5,181,220,5,5,99,204,5,5,204,245,5,5,52,181,5,5,215,175,5,5,161,205,5,5,81,223,5,5,163,243,5,5,157,174,5,5,28,211,5,5,107,220,5,5,200,211,5,5,26,222,5,5,112,220,5,5,165,178,5,5,201,234,5,5,115,235,5,5,4,216,5,5,40,222,5,5,49,222,5,5,241,210,5,5,238,188,5,5,63,222,5,5,232,225,5,5,179,178,5,5,205,221,5,5,146,173,5,5,125,224,5,5,173,198,5,5,166,247,5,5,191,226,5,5,250,166,5,5,37,242,5,5,253,169,5,5,117,167,5,5,176,208,5,5,78,220,5,5,25,170,5,5,65,191,5,5,251,166,5,5,213,167,5,5,38,188,5,5,33,174,5,5,175,173,5,5,137,217,5,5,88,206,5,5,89,206,5,5,187,183,5,5,222,232,5,5,234,219,5,5,231,239,5,5,45,188,5,5,234,227,5,5,103,205,5,5,207,247,5,5,235,239,5,5,209,208,5,5,27,219,5,5,246,172,5,5,72,168,5,5,248,172,5,5,98,220,5,5,97,196,5,5,50,237,5,5,248,247,5,5,12,245,5,5,148,202,5,5,164,202,5,5,184,202,5,5,202,199,5,5,8,230,5,5,20,176,5,5,155,204,5,5,144,218,5,5,68,232,5,5,252,213,5,5,11,181,5,5,211,217,5,5,241,216,5,5,118,191,5,5,233,184,5,5,152,192,5,5,118,198,5,5,107,179,5,5,224,176,5,5,182,216,5,5,123,224,5,5,230,226,5,5,24,197,5,5,16,244,5,5,235,226,5,5,108,247,5,5,227,171,5,5,228,171,5,5,154,182,5,5,77,226,5,5,51,245,5,5,133,249,5,5,203,163,5,5,15,239,5,5,23,232,5,5,86,164,5,5,138,203,5,5,197,196,5,5,13,229,5,5,67,199,5,5,170,173,5,5,244,197,5,5,32,194,5,5,238,224,5,5,94,217,5,5,27,172,5,5,245,200,5,5,73,173,5,5,255,210,5,5,221,198,5,5,29,240,5,5,176,212,5,5,246,215,5,5,161,242,5,5,24,232,5,5,171,173,5,5,243,179,5,5,207,228,5,5,52,207,5,5,29,244,5,5,129,232,5,5,63,166,5,5,119,216,5,5,223,244,5,5,160,217,5,5,194,166,5,5,213,220,5,5,95,189,5,5,79,226,5,5,245,197,5,5,254,169,5,5,241,232,5,5,105,169,5,5,240,165,5,5,252,216,5,5,246,200,5,5,210,219,5,5,141,233,5,5,51,227,5,5,52,227,5,5,59,248,5,5,200,172,5,5,26,177,5,5,51,170,5,5,203,183,5,5,28,225,5,5,253,246,5,5,228,178,5,5,45,238,5,5,64,166,5,5,16,239,5,5,50,220,5,5,229,190,5,5,140,215,5,5,28,197,5,5,44,181,5,5,237,223,5,5,244,226,5,5,88,201,5,5,89,201,5,5,149,217,5,5,115,196,5,5,188,216,5,5,36,204,5,5,216,205,5,5,208,218,5,5,217,205,5,5,246,228,5,5,170,182,5,5,181,201,5,5,32,243,5,5,219,191,5,5,80,216,5,5,223,227,5,5,202,214,5,5,89,241,5,5,111,249,5,5,7,200,5,5,86,198,5,5,127,198,5,5,53,208,5,5,209,246,5,5,199,215,5,5,202,196,5,5,56,220,5,5,201,212,5,5,102,225,5,5,42,229,5,5,103,166,5,5,139,219,5,5,140,219,5,5,103,245,5,5,128,198,5,5,81,200,5,5,253,197,5,5,189,224,5,5,210,246,5,5,105,181,5,5,41,222,5,5,40,233,5,5,37,220,5,5,249,168,5,5,127,206,5,5,215,212,5,5,80,228,5,5,188,183,5,5,216,212,5,5,114,211,5,5,14,209,5,5,93,206,5,5,16,194,5,5,108,221,5,5,89,240,5,5,241,218,5,5,248,238,5,5,214,246,5,5,226,188,5,5,74,189,5,5,244,224,5,5,95,247,5,5,203,214,5,5,145,232,5,5,227,172,5,5,106,217,5,5,248,192,5,5,177,239,5,5,204,213,5,5,113,249,5,5,19,200,5,5,234,216,5,5,12,172,5,5,125,196,5,5,55,241,5,5,226,244,5,5,111,229,5,5,76,246,5,5,109,229,5,5,117,211,5,5,71,170,5,5,106,183,5,5,37,205,5,5,182,184,5,5,249,238,5,5,42,244,5,5,83,226,5,5,182,241,5,5,231,236,5,5,235,205,5,5,40,172,5,5,53,204,5,5,99,195,5,5,28,192,5,5,127,247,5,5,46,225,5,5,50,209,5,5,8,198,5,5,56,243,5,5,95,187,5,5,68,238,5,5,199,202,5,5,212,202,5,5,174,170,5,5,147,232,5,5,86,214,5,5,9,198,5,5,104,172,5,5,133,169,5,5,53,235,5,5,216,183,5,5,22,221,5,5,107,200,5,5,54,164,5,5,144,198,5,5,142,217,5,5,61,226,5,5,240,187,5,5,65,215,5,5,53,176,5,5,132,206,5,5,62,168,5,5,239,188,5,5,134,182,5,5,90,213,5,5,152,240,5,5,218,202,5,5,103,201,5,5,110,175,5,5,112,241,5,5,113,241,5,5,104,187,5,5,7,180,5,5,196,182,5,5,207,214,5,5,216,172,5,5,197,228,5,5,244,219,5,5,13,198,5,5,166,240,5,5,86,216,5,5,132,216,5,5,172,228,5,5,69,204,5,5,60,164,5,5,182,206,5,5,71,243,5,5,77,238,5,5,122,241,5,5,202,230,5,5,116,229,5,5,240,170,5,5,200,217,5,5,251,241,5,5,12,169,5,5,124,187,5,5,209,224,5,5,41,197,5,5,62,177,5,5,15,188,5,5,82,243,5,5,220,199,5,5,209,189,5,5,33,213,5,5,92,231,5,5,3,191,5,5,137,183,5,5,130,190,5,5,173,190,5,5,226,227,5,5,121,180,5,5,16,243,5,5,184,221,5,5,188,248,5,5,189,248,5,5,150,211,5,5,80,241,5,5,246,192,5,5,82,241,5,5,222,198,5,5,94,197,5,5,71,229,5,5,35,234,5,5,34,234,5,5,56,229,5,5,136,170,5,5,133,234,5,5,136,234,5,5,227,180,5,5,39,233,5,5,85,234,5,5,17,217,5,5,94,200,5,5,217,243,5,5,111,209,5,5,88,173,5,5,18,168,5,5,197,248,5,5,68,242,5,5,26,231,5,5,150,167,5,5,96,173,5,5,72,174,5,5,96,189,5,5,180,172,5,5,201,211,5,5,215,180,5,5,218,184,5,5,45,181,5,5,181,229,5,5,242,220,5,5,130,186,5,5,129,186,5,5,25,233,5,5,33,172,5,5,34,201,5,5,111,247,5,5,131,182,5,5,240,223,5,5,227,201,5,5,129,208,5,5,107,244,5,5,98,233,5,5,112,247,5,5,197,182,5,5,138,186,5,5,223,185,5,5,243,170,5,5,4,191,5,5,80,172,5,5,132,176,5,5,116,246,5,5,94,169,5,5,122,164,5,5,81,219,5,5,126,229,5,5,127,229,5,5,82,172,5,5,130,221,5,5,88,230,5,5,0,133,5,5,245,168,5,5,76,178,5,5,77,178,5,5,129,175,5,5,28,187,5,5,252,193,5,5,203,201,5,5,122,204,5,5,224,164,5,5,8,215,5,5,87,225,5,5,208,233,5,5,119,227,5,5,227,230,5,5,219,231,5,5,53,212,5,5,60,210,5,5,162,247,5,5,105,192,5,5,248,244,5,5,126,223,5,5,42,228,5,5,213,217,5,5,8,173,5,5,89,245,5,5,168,231,5,5,249,186,5,5,163,216,5,5,9,234,5,5,23,235,5,5,120,230,5,5,139,165,5,5,2,182,5,5,225,176,5,5,44,221,5,5,187,170,5,5,82,223,5,5,18,240,5,5,236,191,5,5,192,194,5,5,32,178,5,5,167,186,5,5,2,209,5,5,129,229,5,5,181,192,5,5,20,181,5,5,73,206,5,5,130,228,5,5,251,246,5,5,34,185,5,5,186,204,5,5,188,170,5,5,17,244,5,5,43,169,5,5,155,171,5,5,165,235,5,5,33,249,5,5,174,198,5,5,195,172,5,5,182,163,5,5,139,203,5,5,227,178,5,5,24,192,5,5,213,241,5,5,43,215,5,5,187,225,5,5,78,226,5,5,158,166,5,5,65,229,5,5,135,199,5,5,247,215,5,5,55,224,5,5,213,221,5,5,56,224,5,5,89,237,5,5,87,164,5,5,90,237,5,5,48,202,5,5,191,245,5,5,211,205,5,5,80,192,5,5,209,201,5,5,21,170,5,5,238,167,5,5,4,165,5,5,91,247,5,5,19,239,5,5,150,173,5,5,97,173,5,5,30,240,5,5,73,174,5,5,96,183,5,5,177,212,5,5,68,199,5,5,226,240,5,5,191,175,5,5,13,216,5,5,211,220,5,5,143,241,5,5,218,188,5,5,8,231,5,5,182,237,5,5,194,169,5,5,227,219,5,5,176,193,5,5,62,218,5,5,41,235,5,5,179,249,5,5,53,233,5,5,192,175,5,5,66,229,5,5,69,232,5,5,119,178,5,5,39,187,5,5,81,190,5,5,14,205,5,5,90,225,5,5,130,237,5,5,29,211,5,5,194,173,5,5,97,183,5,5,123,214,5,5,45,215,5,5,6,196,5,5,175,168,5,5,111,179,5,5,75,213,5,5,160,218,5,5,198,193,5,5,126,214,5,5,88,203,5,5,9,203,5,5,70,192,5,5,251,163,5,5,106,169,5,5,46,240,5,5,87,241,5,5,90,241,5,5,53,227,5,5,230,183,5,5,231,164,5,5,101,178,5,5,149,239,5,5,97,189,5,5,65,166,5,5,185,183,5,5,228,184,5,5,95,197,5,5,106,164,5,5,12,173,5,5,204,222,5,5,89,175,5,5,170,233,5,5,62,244,5,5,26,174,5,5,158,163,5,5,101,170,5,5,115,192,5,5,117,208,5,5,77,230,5,5,34,230,5,5,60,170,5,5,246,227,5,5,92,237,5,5,173,219,5,5,188,213,5,5,105,242,5,5,145,228,5,5,34,194,5,5,64,182,5,5,109,219,5,5,100,183,5,5,112,184,5,5,3,250,5,5,209,176,5,5,198,218,5,5,64,219,5,5,144,223,5,5,27,176,5,5,6,193,5,5,130,166,5,5,161,204,5,5,98,238,5,5,82,174,5,5,16,205,5,5,0,139,5,5,102,178,5,5,253,194,5,5,23,183,5,5,220,221,5,5,8,165,5,5,84,188,5,5,210,223,5,5,47,228,5,5,172,235,5,5,208,225,5,5,230,166,5,5,43,227,5,5,199,193,5,5,65,219,5,5,216,241,5,5,54,225,5,5,162,204,5,5,54,227,5,5,68,218,5,5,85,188,5,5,196,169,5,5,170,187,5,5,50,231,5,5,110,219,5,5,95,232,5,5,140,165,5,5,135,220,5,5,199,218,5,5,230,190,5,5,11,179,5,5,190,189,5,5,16,229,5,5,47,187,5,5,19,186,5,5,254,249,5,5,135,229,5,5,222,217,5,5,224,229,5,5,38,209,5,5,167,220,5,5,120,208,5,5,57,187,5,5,156,239,5,5,70,216,5,5,243,220,5,5,58,187,5,5,224,235,5,5,106,193,5,5,162,195,5,5,118,164,5,5,98,230,5,5,217,214,5,5,159,163,5,5,99,230,5,5,88,166,5,5,112,231,5,5,20,224,5,5,60,240,5,5,215,233,5,5,230,216,5,5,136,221,5,5,87,205,5,5,36,233,5,5,33,239,5,5,57,239,5,5,76,242,5,5,128,172,5,5,223,194,5,5,122,195,5,5,199,185,5,5,79,220,5,5,189,187,5,5,120,243,5,5,82,244,5,5,106,197,5,5,169,192,5,5,61,240,5,5,58,227,5,5,168,191,5,5,33,232,5,5,161,190,5,5,94,174,5,5,147,203,5,5,201,198,5,5,37,194,5,5,178,179,5,5,163,194,5,5,13,246,5,5,3,197,5,5,185,230,5,5,241,238,5,5,201,238,5,5,245,207,5,5,157,239,5,5,10,222,5,5,10,196,5,5,209,218,5,5,135,212,5,5,171,182,5,5,115,236,5,5,114,236,5,5,172,200,5,5,239,206,5,5,165,204,5,5,83,217,5,5,106,178,5,5,90,222,5,5,180,247,5,5,131,232,192,0,0,0,5,5,95,244,5,5,235,203,5,5,114,188,5,5,136,220,5,5,229,240,5,5,19,230,5,5,168,220,5,5,98,176,5,5,121,208,5,5,159,209,5,5,138,199,5,5,38,194,5,5,37,206,5,5,173,222,5,5,223,217,5,5,203,236,5,5,130,227,5,5,174,220,5,5,185,163,5,5,133,181,5,5,56,196,5,5,158,206,5,5,207,166,5,5,132,164,5,5,102,174,5,5,250,230,5,5,211,182,5,5,144,207,5,5,202,212,5,5,110,186,5,5,87,188,5,5,205,173,5,5,125,208,5,5,54,247,5,5,24,208,5,5,138,192,5,5,150,236,5,5,43,189,5,5,15,210,5,5,170,181,5,5,78,242,5,5,201,169,5,5,145,164,5,5,42,191,5,5,140,167,5,5,175,222,5,5,235,176,5,5,98,217,5,5,206,181,5,5,82,232,5,5,99,238,5,5,86,193,5,5,23,165,5,5,171,176,5,5,87,198,5,5,180,231,5,5,80,218,5,5,134,230,5,5,218,163,5,5,238,192,5,5,24,205,5,5,219,200,5,5,211,246,5,5,156,184,5,5,19,203,5,5,25,181,5,5,185,202,5,5,137,214,5,5,67,191,5,5,6,201,5,5,230,227,5,5,109,234,5,5,103,173,5,5,97,237,5,5,22,171,5,5,24,245,5,5,173,186,5,5,174,186,5,5,203,175,5,5,3,211,5,5,208,244,5,5,204,236,5,5,210,206,5,5,153,180,5,5,67,214,5,5,229,196,5,5,38,222,5,5,75,229,5,5,70,224,5,5,57,173,5,5,66,246,5,5,159,206,5,5,175,186,5,5,11,166,5,5,240,213,5,5,150,172,5,5,181,179,5,5,222,218,5,5,45,185,5,5,120,188,5,5,25,205,5,5,11,222,5,5,110,189,5,5,182,186,5,5,44,209,5,5,94,166,5,5,206,190,5,5,46,235,5,5,175,210,5,5,179,171,5,5,195,208,5,5,196,208,5,5,27,234,5,5,147,194,5,5,80,224,5,5,61,175,5,5,186,172,5,5,213,166,5,5,162,164,5,5,163,164,5,5,252,200,5,5,95,233,5,5,113,225,5,5,71,232,5,5,75,202,5,5,81,187,5,5,158,167,5,5,88,248,5,5,89,248,5,5,88,193,5,5,58,208,5,5,20,179,5,5,73,180,5,5,196,192,5,5,96,247,5,5,245,176,5,5,202,234,5,5,16,173,5,5,61,225,5,5,140,220,5,5,15,209,5,5,7,249,5,5,232,242,5,5,90,248,5,5,48,212,5,5,90,240,5,5,110,236,5,5,103,230,5,5,32,226,5,5,152,186,5,5,130,208,5,5,13,222,5,5,115,174,5,5,9,195,5,5,50,185,5,5,101,232,5,5,102,232,5,5,235,219,5,5,71,194,5,5,84,173,5,5,104,173,5,5,160,228,5,5,115,211,5,5,163,183,5,5,215,246,5,5,181,193,5,5,20,190,5,5,219,197,5,5,109,203,5,5,232,239,5,5,24,224,5,5,24,207,5,5,245,206,5,5,114,225,5,5,245,232,5,5,45,189,5,5,35,211,5,5,114,218,5,5,33,226,5,5,233,240,5,5,213,206,5,5,188,163,5,5,248,203,5,5,42,222,5,5,125,231,5,5,14,166,5,5,159,167,5,5,219,177,5,5,190,225,5,5,50,225,5,5,180,170,5,5,159,199,5,5,29,205,5,5,226,193,5,5,128,213,5,5,244,177,5,5,176,210,5,5,179,175,5,5,39,194,5,5,186,177,5,5,92,190,5,5,82,218,5,5,113,212,5,5,55,172,5,5,253,174,5,5,252,192,5,5,192,167,5,5,114,220,5,5,216,240,5,5,57,182,5,5,111,236,5,5,85,178,5,5,56,241,5,5,223,174,5,5,77,246,5,5,239,245,5,5,168,178,5,5,79,203,5,5,99,233,5,5,218,204,5,5,178,239,5,5,217,228,5,5,52,213,5,5,49,243,5,5,238,242,5,5,59,226,5,5,219,204,5,5,84,226,5,5,27,248,5,5,123,197,5,5,71,219,5,5,202,245,5,5,110,168,5,5,210,164,5,5,148,241,5,5,203,199,5,5,202,216,5,5,240,230,5,5,43,244,5,5,243,184,5,5,183,242,5,5,127,164,5,5,20,200,5,5,126,196,5,5,225,203,5,5,127,196,5,5,119,235,5,5,210,173,5,5,246,213,5,5,58,182,5,5,223,218,5,5,104,205,5,5,96,172,5,5,72,170,5,5,192,225,5,5,76,199,5,5,12,199,5,5,197,188,5,5,153,186,5,5,152,181,5,5,107,183,5,5,209,247,5,5,54,242,5,5,213,169,5,5,116,237,5,5,171,217,5,5,172,217,5,5,70,244,5,5,182,220,5,5,111,168,5,5,99,241,5,5,82,202,5,5,166,203,5,5,100,241,5,5,191,225,5,5,214,178,5,5,198,247,5,5,119,232,5,5,240,245,5,5,214,169,5,5,229,180,5,5,83,202,5,5,167,203,5,5,95,195,5,5,225,209,5,5,170,244,5,5,53,230,5,5,51,201,5,5,233,185,5,5,24,185,5,5,114,212,5,5,117,216,5,5,152,168,5,5,113,227,5,5,243,191,5,5,250,179,5,5,68,186,5,5,3,247,5,5,210,247,5,5,226,224,5,5,49,191,5,5,25,207,5,5,226,228,5,5,238,225,5,5,57,168,5,5,82,214,5,5,82,203,5,5,122,240,5,5,121,220,5,5,130,174,5,5,169,184,5,5,108,171,5,5,118,186,5,5,71,231,5,5,60,193,5,5,114,205,5,5,26,207,5,5,39,179,5,5,226,241,5,5,188,220,5,5,154,164,5,5,140,227,5,5,60,249,5,5,187,231,5,5,41,172,5,5,172,236,5,5,92,203,5,5,183,241,5,5,177,203,5,5,101,201,5,5,163,192,5,5,187,172,5,5,118,219,5,5,133,210,5,5,52,169,5,5,83,237,5,5,61,249,5,5,83,214,5,5,72,231,5,5,254,226,5,5,88,218,5,5,219,234,5,5,149,249,5,5,156,181,5,5,49,188,5,5,73,231,5,5,80,180,5,5,29,212,5,5,190,219,5,5,125,235,5,5,52,229,5,5,65,179,5,5,19,195,5,5,235,212,5,5,61,193,5,5,138,208,5,5,29,192,5,5,30,192,5,5,74,237,5,5,64,167,5,5,160,179,5,5,182,191,5,5,236,217,5,5,131,177,5,5,87,183,5,5,87,202,5,5,187,229,5,5,95,192,5,5,39,226,5,5,42,211,5,5,153,223,5,5,156,210,5,5,234,199,5,5,219,169,5,5,24,217,5,5,209,192,5,5,10,192,5,5,50,222,5,5,39,182,5,5,210,209,5,5,85,244,5,5,132,177,5,5,83,203,5,5,180,195,5,5,45,233,5,5,180,175,5,5,45,191,5,5,18,166,5,5,149,221,5,5,125,236,5,5,60,213,5,5,245,201,5,5,141,188,5,5,108,200,5,5,223,249,5,5,185,210,5,5,187,193,5,5,250,191,5,5,251,191,5,5,116,182,5,5,149,199,5,5,142,208,5,5,112,236,5,5,221,234,5,5,165,167,5,5,88,242,5,5,19,199,5,5,42,206,5,5,84,199,5,5,237,200,5,5,50,194,5,5,248,183,5,5,131,240,5,5,13,192,5,5,219,195,5,5,236,193,5,5,237,193,5,5,39,234,5,5,146,170,5,5,200,205,5,5,158,176,5,5,181,222,5,5,26,185,5,5,134,186,5,5,202,224,5,5,54,235,5,5,202,186,5,5,253,214,5,5,119,211,5,5,255,229,5,5,21,173,5,5,215,182,5,5,111,194,5,5,2,232,5,5,178,236,5,5,124,185,5,5,237,189,5,5,52,189,5,5,113,171,5,5,239,185,5,5,245,223,5,5,179,236,5,5,22,195,5,5,151,225,5,5,87,180,5,5,155,165,5,5,44,190,5,5,138,204,5,5,177,219,5,5,75,219,5,5,90,229,5,5,23,221,5,5,113,170,5,5,74,169,5,5,36,184,5,5,87,244,5,5,33,181,5,5,166,167,5,5,246,221,5,5,141,227,5,5,5,213,5,5,83,212,5,5,205,198,5,5,231,204,5,5,55,235,5,5,251,202,5,5,105,243,5,5,62,211,5,5,89,217,5,5,117,244,5,5,80,239,5,5,244,217,5,5,131,218,5,5,172,209,5,5,28,233,5,5,91,235,5,5,253,168,5,5,159,229,5,5,151,199,5,5,171,196,5,5,199,220,5,5,71,233,5,5,228,248,5,5,108,228,5,5,6,213,5,5,88,226,5,5,178,177,5,5,136,172,5,5,146,192,5,5,76,169,5,5,74,245,5,5,146,209,5,5,22,230,5,5,29,189,5,5,61,188,5,5,173,209,5,5,225,215,5,5,45,231,5,5,22,173,5,5,125,220,5,5,45,182,5,5,205,185,5,5,154,249,5,5,231,229,5,5,192,178,5,5,74,225,5,5,93,180,5,5,233,170,5,5,5,207,5,5,131,225,5,5,189,236,5,5,179,207,5,5,180,207,5,5,179,177,5,5,116,200,5,5,254,201,5,5,159,184,5,5,110,216,5,5,60,182,5,5,134,184,5,5,255,230,5,5,152,221,5,5,198,182,5,5,199,232,5,5,112,173,5,5,156,212,5,5,81,230,5,5,206,198,5,5,139,210,5,5,25,193,5,5,96,188,5,5,215,185,5,5,14,192,5,5,175,225,5,5,165,213,5,5,57,229,5,5,206,231,5,5,109,236,5,5,101,202,5,5,187,175,5,5,188,206,5,5,242,189,5,5,156,205,5,5,239,225,5,5,70,249,5,5,77,179,5,5,94,229,5,5,24,206,5,5,11,180,5,5,17,189,5,5,198,184,5,5,224,243,5,5,62,213,5,5,40,237,5,5,67,228,5,5,51,233,5,5,145,217,5,5,78,225,5,5,164,192,5,5,6,207,5,5,52,233,5,5,167,240,5,5,250,210,5,5,255,168,5,5,195,242,5,5,94,185,5,5,220,173,5,5,61,200,5,5,114,176,5,5,222,202,5,5,41,237,5,5,144,163,5,5,206,168,5,5,132,225,5,5,196,225,5,5,255,221,5,5,53,194,5,5,107,202,5,5,202,203,5,5,85,203,5,5,123,211,5,5,195,219,5,5,52,205,5,5,68,211,5,5,170,175,5,5,242,239,5,5,187,165,5,5,106,237,5,5,176,227,5,5,18,189,5,5,171,187,5,5,156,223,5,5,244,170,5,5,196,243,5,5,197,179,5,5,129,179,5,5,185,171,5,5,228,208,5,5,118,182,5,5,29,166,5,5,213,199,5,5,227,202,5,5,100,210,5,5,196,183,5,5,127,184,5,5,119,239,5,5,36,192,5,5,182,195,5,5,251,243,5,5,90,183,5,5,134,211,5,5,252,242,5,5,229,208,5,5,120,171,5,5,247,219,5,5,56,194,5,5,91,226,5,5,14,202,5,5,138,196,5,5,185,166,5,5,144,176,5,5,178,225,5,5,211,191,5,5,186,171,5,5,23,242,5,5,42,219,5,5,97,201,5,5,102,210,5,5,134,185,5,5,98,185,5,5,217,235,5,5,248,189,5,5,125,187,5,5,12,235,5,5,104,191,5,5,140,171,5,5,136,200,5,5,178,238,5,5,205,189,5,5,33,219,5,5,18,192,5,5,4,178,5,5,78,249,5,5,126,187,5,5,222,172,5,5,66,222,5,5,73,236,5,5,161,188,5,5,74,206,5,5,180,225,5,5,148,211,5,5,161,221,5,5,210,189,5,5,202,242,5,5,133,187,5,5,160,221,5,5,233,224,5,5,192,203,5,5,10,238,5,5,135,236,5,5,243,199,5,5,11,184,5,5,164,248,5,5,6,191,5,5,80,185,5,5,117,204,5,5,169,215,5,5,249,193,5,5,35,207,5,5,179,214,5,5,157,189,5,5,142,244,5,5,3,205,5,5,229,243,5,5,66,242,5,5,202,244,5,5,61,216,5,5,206,184,5,5,136,163,5,5,112,224,5,5,50,186,5,5,36,207,5,5,243,229,5,5,213,227,5,5,45,246,5,5,95,235,5,5,94,212,5,5,226,211,5,5,132,234,5,5,187,204,5,5,169,248,5,5,111,190,5,5,159,187,5,5,14,235,5,5,174,190,5,5,90,176,5,5,207,207,5,5,108,243,5,5,86,186,5,5,60,186,5,5,185,221,5,5,112,185,5,5,21,187,5,5,32,163,5,5,134,183,5,5,175,248,5,5,162,189,5,5,185,194,5,5,164,210,5,5,209,233,5,5,153,200,5,5,248,215,5,5,163,247,5,5,31,240,5,5,64,210,5,5,165,238,5,5,185,216,5,5,227,223,5,5,209,225,5,5,39,209,5,5,109,195,5,5,62,240,5,5,139,207,5,5,121,213,5,5,2,217,5,5,78,197,5,5,76,248,5,5,154,196,5,5,105,186,5,5,189,196,5,5,183,229,5,5,203,212,5,5,27,238,5,5,104,239,5,5,131,208,5,5,242,225,5,5,71,223,5,5,207,210,5,5,190,196,5,5,177,195,5,5,191,196,5,5,179,195,5,5,67,226,5,5,160,227,5,5,111,193,5,5,139,243,5,5,5,216,5,5,247,213,5,5,211,247,5,5,182,210,5,5,154,214,5,5,105,241,5,5,151,191,5,5,5,245,5,5,47,180,5,5,239,205,5,5,171,238,5,5,242,198,5,5,231,180,5,5,155,200,5,5,213,216,5,5,98,167,5,5,91,213,5,5,228,214,5,5,243,225,5,5,204,227,5,5,109,228,5,5,71,198,5,5,233,225,5,5,168,240,5,5,7,238,5,5,242,247,5,5,15,226,5,5,163,200,5,5,141,218,5,5,112,221,5,5,201,233,5,5,122,166,5,5,53,245,5,5,164,208,5,5,127,166,5,5,128,166,5,5,214,245,5,5,53,207,5,5,121,210,5,5,39,223,5,5,228,235,5,5,72,223,5,5,233,235,5,5,232,222,5,5,28,237,5,5,29,237,5,5,96,187,5,5,207,234,5,5,223,247,5,5,105,187,5,5,244,193,5,5,73,175,5,5,190,237,5,5,154,235,5,5,193,204,5,5,128,219,5,5,99,169,5,5,100,169,5,5,144,241,5,5,101,169,5,5,150,234,5,5,5,244,5,5,98,181,5,5,17,229,5,5,90,175,5,5,229,228,5,5,3,217,5,5,7,218,5,5,72,229,5,5,73,234,5,5,145,207,5,5,84,168,5,5,84,209,5,5,16,210,5,5,151,236,5,5,113,211,5,5,165,249,5,5,189,188,5,5,91,240,5,5,235,172,5,5,115,218,5,5,97,241,5,5,76,234,5,5,253,200,5,5,240,175,5,5,84,202,5,5,48,177,5,5,189,220,5,5,171,249,5,5,6,247,5,5,65,224,5,5,37,166,5,5,232,180,5,5,240,205,5,5,237,228,5,5,191,243,5,5,85,177,5,5,177,204,5,5,117,200,5,5,17,235,5,5,153,240,5,5,250,175,5,5,44,178,5,5,25,206,5,5,205,188,5,5,42,166,5,5,5,178,5,5,158,205,5,5,4,205,5,5,59,229,5,5,166,238,5,5,164,178,5,5,221,221,5,5,121,243,5,5,138,211,5,5,73,240,5,5,131,227,5,5,196,209,5,5,35,195,5,5,196,214,5,5,15,218,5,5,173,177,5,5,57,200,5,5,58,200,5,5,54,193,5,5,136,209,5,5,241,201,5,5,132,240,5,5,172,238,5,5,60,200,5,5,176,178,5,5,120,239,5,5,187,214,5,5,13,245,5,5,95,194,5,5,61,172,5,5,234,169,5,5,235,169,5,5,44,238,5,5,197,203,5,5,239,177,5,5,101,248,5,5,221,164,5,5,246,164,5,5,9,165,5,5,243,167,5,5,244,167,5,5,13,165,5,5,99,224,5,5,19,170,5,5,216,197,5,5,15,234,5,5,239,167,5,5,217,187,5,5,10,203,5,5,77,220,5,5,253,235,5,5,89,172,5,5,65,182,5,5,224,217,5,5,58,239,5,5,55,231,5,5,143,215,5,5,240,206,5,5,58,172,5,5,218,197,5,5,17,210,5,5,204,175,5,5,132,227,5,5,27,180,5,5,237,166,5,5,246,206,5,5,58,178,5,5,242,234,5,5,209,164,5,5,82,236,5,5,107,236,5,5,73,170,5,5,3,236,5,5,85,229,5,5,150,247,5,5,69,182,5,5,124,197,5,5,105,205,5,5,66,179,5,5,84,236,5,5,51,191,5,5,60,172,5,5,36,170,5,5,199,182,5,5,101,231,5,5,35,225,5,5,254,168,5,5,84,190,5,5,92,220,5,5,36,236,5,5,93,220,5,5,245,170,5,5,249,189,5,5,227,211,5,5,66,177,5,5,23,227,5,5,147,176,5,5,222,171,5,5,120,207,5,5,190,170,5,5,21,209,5,5,58,168,5,5,13,183,5,5,24,209,5,5,130,175,5,5,42,215,5,5,47,226,5,5,74,173,5,5,24,244,5,5,43,183,5,5,48,166,5,5,83,174,5,5,146,228,5,5,229,178,5,5,91,211,5,5,40,209,5,5,122,243,5,5,192,212,5,5,198,197,5,5,64,244,5,5,202,238,5,5,33,241,5,5,62,195,5,5,98,211,5,5,39,241,5,5,240,178,5,5,37,176,5,5,93,191,5,5,116,211,5,5,71,244,5,5,117,249,5,5,118,249,5,5,208,229,5,5,218,229,5,5,103,221,5,5,53,166,5,5,247,249,5,5,92,176,5,5,219,229,5,5,17,185,5,5,200,183,5,5,152,182,5,5,45,173,5,5,251,193,5,5,126,181,5,5,57,218,5,5,251,209,5,5,5,166,5,5,22,232,5,5,191,171,5,5,4,235,5,5,65,200,5,5,74,177,5,5,114,198,5,5,163,223,5,5,21,222,5,5,70,226,5,5,186,246,5,5,48,173,5,5,48,175,5,5,168,212,5,5,254,181,5,5,184,170,5,5,249,209,5,5,25,209,5,5,86,228,5,5,154,168,5,5,116,198,5,5,56,210,5,5,243,244,5,5,244,244,5,5,255,217,5,5,159,235,5,5,211,230,5,5,218,194,5,5,7,206,5,5,31,223,5,5,245,244,5,5,247,181,5,5,185,204,5,5,49,180,5,5,60,218,5,5,149,218,5,5,61,210,5,5,87,171,5,5,33,193,5,5,77,247,5,5,120,206,5,5,122,206,5,5,7,231,5,5,18,208,5,5,133,201,5,5,135,179,5,5,101,212,5,5,49,202,5,5,232,165,5,5,233,165,5,5,153,192,5,5,61,247,5,5,195,222,5,5,148,173,5,5,35,218,5,5,123,207,5,5,41,199,5,5,47,184,5,5,27,209,5,5,95,173,5,5,244,216,5,5,248,216,5,5,15,211,5,5,133,239,5,5,188,245,5,5,131,249,5,5,31,249,5,5,190,198,5,5,213,242,5,5,181,224,5,5,182,224,5,5,23,176,5,5,29,242,5,5,206,178,5,5,61,199,5,5,185,199,5,5,114,208,5,5,84,172,5,5,216,184,5,5,192,169,5,5,21,175,5,5,193,171,5,5,88,171,5,5,150,226,5,5,107,167,5,5,228,164,5,5,120,227,5,5,150,218,5,5,246,166,5,5,79,167,5,5,88,222,5,5,209,231,5,5,55,192,5,5,32,188,5,5,193,169,5,5,236,231,5,5,191,173,5,5,164,238,5,5,34,187,5,5,194,190,5,5,113,234,5,5,192,173,5,5,6,246,5,5,62,199,5,5,102,169,5,5,252,169,5,5,130,229,5,5,19,207,5,5,130,232,5,5,7,182,5,5,23,182,5,5,24,182,5,5,91,197,5,5,40,187,5,5,71,171,5,5,139,239,5,5,113,172,5,5,196,172,5,5,33,242,5,5,73,181,5,5,191,218,5,5,221,219,5,5,4,193,5,5,76,220,5,5,162,242,5,5,109,235,5,5,26,197,5,5,94,208,5,5,196,206,5,5,52,214,5,5,253,209,5,5,33,240,5,5,7,203,5,5,200,222,5,5,57,212,5,5,171,166,5,5,68,200,5,5,90,171,5,5,116,164,5,5,238,231,5,5,166,221,5,5,21,185,5,5,12,242,5,5,5,193,5,5,138,201,5,5,112,192,5,5,139,172,5,5,50,170,5,5,166,235,5,5,223,198,5,5,172,168,5,5,203,233,5,5,50,173,5,5,63,218,5,5,143,236,5,5,138,184,5,5,52,225,5,5,93,189,5,5,27,167,5,5,39,163,5,5,31,209,5,5,167,235,5,5,150,183,5,5,236,206,5,5,208,235,5,5,214,221,5,5,14,229,5,5,142,185,5,5,158,217,5,5,126,207,5,5,74,174,5,5,81,167,5,5,254,171,5,5,139,179,5,5,4,244,5,5,128,202,5,5,250,249,5,5,98,194,5,5,195,164,5,5,61,217,5,5,228,190,5,5,186,189,5,5,24,176,5,5,132,190,5,5,53,214,5,5,172,166,5,5,239,231,5,5,79,206,5,5,166,243,5,5,58,167,5,5,144,203,5,5,47,240,5,5,5,200,5,5,44,200,5,5,46,232,5,5,96,225,5,5,117,243,5,5,11,246,5,5,50,198,5,5,82,205,5,5,30,244,5,5,183,187,5,5,175,235,5,5,165,202,5,5,31,239,5,5,145,216,5,5,84,174,5,5,201,235,5,5,223,235,5,5,161,218,5,5,234,243,5,5,21,245,5,5,76,213,5,5,121,195,5,5,134,221,5,5,54,206,5,5,134,190,5,5,137,190,5,5,240,238,5,5,12,179,5,5,216,180,5,5,88,170,5,5,143,185,5,5,96,239,5,5,74,171,5,5,58,212,5,5,166,205,5,5,195,166,5,5,58,246,5,5,189,214,5,5,56,214,5,5,141,201,5,5,253,216,5,5,145,236,5,5,255,196,5,5,176,179,5,5,103,209,5,5,50,207,5,5,54,239,5,5,4,220,5,5,218,230,5,5,176,168,5,5,219,217,5,5,38,218,5,5,200,218,5,5,162,194,5,5,169,200,5,5,29,172,5,5,175,199,5,5,138,245,5,5,83,209,5,5,221,166,5,5,251,244,5,5,164,211,5,5,34,188,5,5,48,240,5,5,11,203,5,5,147,206,5,5,151,210,5,5,10,206,5,5,242,203,5,5,160,220,5,5,192,226,5,5,27,222,5,5,236,233,5,5,124,172,5,5,71,200,5,5,166,202,5,5,35,188,5,5,126,224,5,5,5,201,5,5,43,199,5,5,190,184,5,5,220,217,5,5,215,205,5,5,190,187,5,5,12,210,5,5,61,246,5,5,174,219,5,5,47,208,5,5,84,198,5,5,144,164,5,5,198,170,5,5,30,222,5,5,40,242,5,5,193,212,5,5,79,163,5,5,199,175,5,5,215,200,5,5,148,201,5,5,63,240,5,5,247,168,5,5,206,244,5,5,64,186,5,5,251,197,5,5,141,186,5,5,106,198,5,5,2,187,5,5,215,192,5,5,95,174,5,5,22,245,5,5,188,188,5,5,97,226,5,5,238,173,5,5,64,240,5,5,66,248,5,5,172,182,5,5,174,185,5,5,188,197,5,5,218,205,5,5,17,203,5,5,152,226,5,5,99,208,5,5,239,169,5,5,251,236,5,5,56,225,5,5,252,166,5,5,197,215,5,5,209,228,5,5,204,181,5,5,241,196,5,5,160,168,5,5,231,183,5,5,124,198,5,5,84,206,5,5,132,214,5,5,191,227,5,5,72,184,5,5,186,181,5,5,4,250,5,5,218,214,5,5,95,215,5,5,169,181,5,5,159,237,5,5,146,236,5,5,129,182,5,5,217,207,5,5,107,234,5,5,219,180,5,5,59,187,5,5,210,229,5,5,176,235,5,5,145,185,5,5,211,229,5,5,150,179,5,5,241,177,5,5,207,185,5,5,40,185,5,5,119,188,5,5,14,246,5,5,170,245,5,5,138,249,5,5,216,200,5,5,170,176,5,5,212,198,5,5,41,231,5,5,88,205,5,5,36,221,5,5,225,235,5,5,103,174,5,5,102,194,5,5,171,216,5,5,25,228,5,5,225,229,5,5,252,240,5,5,255,225,5,5,48,221,5,5,94,241,5,5,57,197,5,5,195,245,5,5,88,198,5,5,11,182,5,5,237,178,5,5,111,197,5,5,172,245,5,5,211,206,5,5,192,227,5,5,44,189,5,5,250,200,5,5,60,179,5,5,12,222,5,5,170,177,5,5,106,209,5,5,59,175,5,5,249,207,5,5,118,231,5,5,204,212,5,5,193,214,5,5,187,208,5,5,46,193,5,5,178,193,5,5,131,242,5,5,225,188,5,5,114,180,5,5,12,220,5,5,188,167,5,5,255,197,5,5,241,224,5,5,76,229,5,5,126,208,5,5,155,173,5,5,111,218,5,5,13,190,5,5,80,183,5,5,243,206,5,5,182,179,5,5,82,235,5,5,146,185,5,5,175,219,5,5,186,168,5,5,175,172,5,5,98,237,5,5,104,181,5,5,37,168,5,5,33,176,5,5,77,248,5,5,158,183,5,5,148,247,5,5,14,190,5,5,158,192,5,5,97,171,5,5,160,206,5,5,111,189,5,5,204,190,5,5,179,243,5,5,241,234,5,5,204,211,5,5,233,199,5,5,78,248,5,5,74,184,5,5,156,228,5,5,144,165,5,5,100,226,5,5,232,198,5,5,255,248,5,5,46,185,5,5,23,201,5,5,99,211,5,5,132,242,5,5,152,210,5,5,64,181,5,5,158,171,5,5,169,218,5,5,211,243,5,5,98,171,5,5,133,164,5,5,2,249,5,5,63,247,5,5,237,230,5,5,157,172,5,5,100,211,5,5,3,249,5,5,43,195,5,5,186,202,5,5,193,227,5,5,4,249,5,5,251,235,5,5,15,190,5,5,197,231,5,5,243,177,5,5,66,209,5,5,95,205,5,5,202,171,5,5,38,168,5,5,164,213,5,5,187,247,5,5,5,249,5,5,191,228,5,5,211,228,5,5,37,230,5,5,226,200,5,5,194,221,5,5,30,205,5,5,180,184,5,5,199,247,5,5,26,210,5,5,151,181,5,5,207,211,5,5,39,178,5,5,17,173,5,5,70,219,5,5,93,163,5,5,199,245,5,5,174,245,5,5,246,176,5,5,233,245,5,5,254,246,5,5,188,230,5,5,74,214,5,5,245,233,5,5,129,246,5,5,118,197,5,5,206,192,5,5,233,242,5,5,157,201,5,5,169,217,5,5,78,171,5,5,46,195,5,5,31,170,5,5,104,244,5,5,234,242,5,5,49,242,5,5,117,201,5,5,159,171,5,5,39,229,5,5,242,169,5,5,35,232,5,5,9,201,5,5,27,183,5,5,17,194,5,5,98,223,5,5,228,237,5,5,223,166,5,5,208,169,5,5,194,188,5,5,45,209,5,5,46,209,5,5,209,169,5,5,82,181,5,5,57,234,5,5,24,246,5,5,68,234,5,5,102,182,5,5,205,171,5,5,85,200,5,5,120,169,5,5,197,216,5,5,76,202,5,5,101,167,5,5,211,204,5,5,31,205,5,5,8,199,5,5,2,174,5,5,46,216,5,5,92,240,5,5,239,243,5,5,141,220,5,5,248,226,5,5,110,203,5,5,62,225,5,5,47,201,5,5,42,180,5,5,200,247,5,5,33,165,5,5,8,172,5,5,198,226,5,5,189,181,5,5,25,229,5,5,10,250,5,5,247,206,5,5,21,179,5,5,125,182,5,5,43,204,5,5,47,204,5,5,27,210,5,5,137,242,5,5,52,180,5,5,239,190,5,5,200,199,5,5,46,249,5,5,113,183,5,5,108,164,5,5,83,242,5,5,70,212,5,5,177,222,5,5,75,189,5,5,81,224,5,5,179,242,5,5,103,226,5,5,240,183,5,5,126,231,5,5,177,246,5,5,199,226,5,5,127,170,5,5,164,244,5,5,7,185,5,5,157,196,5,5,13,174,5,5,99,205,5,5,18,217,5,5,231,185,5,5,25,246,5,5,240,191,5,5,241,213,5,5,165,244,5,5,174,166,5,5,228,205,5,5,50,243,5,5,78,180,5,5,56,249,5,5,230,236,5,5,57,249,5,5,127,188,5,5,225,241,5,5,23,171,5,5,164,222,5,5,120,225,5,5,66,195,5,5,144,179,5,5,45,179,5,5,146,245,5,5,28,188,5,5,60,192,5,5,21,236,5,5,37,172,5,5,117,219,5,5,250,226,5,5,106,240,5,5,222,190,5,5,35,169,5,5,250,168,5,5,241,245,5,5,91,187,5,5,13,234,5,5,114,245,5,5,230,212,5,5,4,247,5,5,38,211,5,5,250,231,5,5,201,226,5,5,165,236,5,5,37,238,5,5,236,210,5,5,47,236,5,5,145,249,5,5,21,215,5,5,140,243,5,5,69,231,5,5,25,201,5,5,166,236,5,5,242,236,5,5,212,183,5,5,38,179,5,5,202,226,5,5,221,230,5,5,29,238,5,5,90,167,5,5,222,225,5,5,161,225,5,5,110,167,5,5,117,247,5,5,120,234,5,5,133,171,5,5,176,191,5,5,130,177,5,5,4,198,5,5,100,201,5,5,134,213,5,5,127,231,5,5,180,176,5,5,250,218,5,5,154,216,5,5,171,174,5,5,168,203,5,5,117,199,5,5,149,191,5,5,185,231,5,5,158,179,5,5,138,180,5,5,255,236,5,5,41,165,5,5,95,204,5,5,95,200,5,5,136,194,5,5,185,243,5,5,9,192,5,5,241,190,5,5,242,218,5,5,51,243,5,5,200,227,5,5,129,170,5,5,171,244,5,5,105,226,5,5,94,191,5,5,91,186,5,5,164,190,5,5,235,214,5,5,15,166,5,5,235,179,5,5,102,248,5,5,10,215,5,5,82,199,5,5,56,165,5,5,152,165,5,5,6,219,5,5,64,206,5,5,155,195,5,5,222,228,5,5,235,228,5,5,157,176,5,5,109,171,5,5,108,238,5,5,236,189,5,5,49,199,5,5,237,198,5,5,17,242,5,5,138,224,5,5,65,173,5,5,221,249,5,5,137,194,5,5,130,170,5,5,131,211,5,5,220,247,5,5,97,168,5,5,200,202,5,5,4,241,5,5,242,223,5,5,139,208,5,5,87,213,5,5,201,202,5,5,39,190,5,5,238,185,5,5,244,190,5,5,196,205,5,5,168,193,5,5,85,235,5,5,10,186,5,5,129,218,5,5,247,191,5,5,61,211,5,5,188,186,5,5,242,242,5,5,38,234,5,5,100,204,5,5,50,235,5,5,107,226,5,5,115,182,5,5,170,238,5,5,137,180,5,5,76,241,5,5,55,213,5,5,110,171,5,5,81,180,5,5,127,169,5,5,236,228,5,5,140,198,5,5,132,188,5,5,69,186,5,5,147,245,5,5,51,223,5,5,127,192,5,5,246,173,5,5,141,217,5,5,108,239,5,5,142,170,5,5,202,231,5,5,218,170,5,5,218,195,5,5,146,190,5,5,145,167,5,5,154,229,5,5,38,221,5,5,18,221,5,5,189,222,5,5,25,217,5,5,235,200,5,5,184,199,5,5,115,205,5,5,144,242,5,5,254,229,5,5,230,187,5,5,225,234,5,5,179,180,5,5,86,244,5,5,20,206,5,5,86,235,5,5,215,244,5,5,167,201,5,5,237,217,5,5,155,229,5,5,110,194,5,5,174,244,5,5,155,214,5,5,153,233,5,5,246,196,5,5,26,217,5,5,201,188,5,5,7,219,5,5,30,246,5,5,45,168,5,5,130,248,5,5,104,204,5,5,177,166,5,5,109,176,5,5,109,200,5,5,182,203,5,5,72,245,5,5,163,166,5,5,94,202,5,5,55,167,5,5,32,246,5,5,180,236,5,5,136,210,5,5,137,210,5,5,249,212,5,5,54,190,5,5,144,213,5,5,21,218,5,5,217,178,5,5,58,201,5,5,17,172,5,5,44,231,5,5,181,236,5,5,204,185,5,5,196,220,5,5,87,235,5,5,133,240,5,5,178,219,5,5,179,246,5,5,102,228,5,5,3,180,5,5,246,223,5,5,241,217,5,5,167,196,5,5,58,241,5,5,10,228,5,5,225,181,5,5,153,221,5,5,204,235,5,5,209,197,5,5,64,165,5,5,65,228,5,5,93,224,5,5,94,224,5,5,115,229,5,5,194,182,5,5,218,168,5,5,234,188,5,5,33,246,5,5,242,235,5,5,235,235,5,5,129,225,5,5,110,208,5,5,130,225,5,5,150,199,5,5,7,204,5,5,213,185,5,5,199,223,5,5,144,192,5,5,27,235,5,5,188,201,5,5,135,235,5,5,157,229,5,5,147,167,5,5,99,198,5,5,152,249,5,5,104,188,5,5,189,201,5,5,136,174,5,5,10,198,5,5,136,197,5,5,113,215,5,5,119,205,5,5,66,228,5,5,147,213,5,5,186,248,5,5,238,189,5,5,28,186,5,5,140,184,5,5,232,247,5,5,16,189,5,5,214,171,5,5,72,232,5,5,75,176,5,5,240,200,5,5,6,232,5,5,93,214,5,5,136,248,5,5,13,187,5,5,99,227,5,5,69,217,5,5,139,189,5,5,242,246,5,5,146,231,5,5,227,249,5,5,118,200,5,5,98,234,5,5,203,188,5,5,180,177,5,5,114,241,5,5,157,238,5,5,187,200,5,5,200,220,5,5,96,224,5,5,151,170,5,5,16,176,5,5,54,176,5,5,155,240,5,5,38,237,5,5,48,168,5,5,92,207,5,5,75,179,5,5,246,210,5,5,255,201,5,5,58,222,5,5,146,188,5,5,197,184,5,5,154,193,5,5,244,205,5,5,110,173,5,5,238,235,5,5,102,202,5,5,6,237,5,5,119,200,5,5,194,225,5,5,78,179,5,5,104,237,5,5,207,177,5,5,239,235,5,5,200,221,5,5,70,185,5,5,25,166,5,5,147,188,5,5,82,171,5,5,216,226,5,5,160,229,5,5,118,171,5,5,139,184,5,5,184,244,5,5,185,244,5,5,241,170,5,5,251,205,5,5,226,208,5,5,84,165,5,5,223,202,5,5,235,197,5,5,200,230,5,5,252,234,5,5,208,245,5,5,167,179,5,5,225,243,5,5,226,243,5,5,146,178,5,5,194,233,5,5,210,199,5,5,183,206,5,5,94,186,5,5,73,208,5,5,50,238,5,5,235,168,5,5,64,222,5,5,37,246,5,5,26,166,5,5,68,193,5,5,144,210,5,5,186,244,5,5,49,166,5,5,65,196,5,5,220,172,5,5,130,234,5,5,162,169,5,5,140,205,5,5,105,246,5,5,154,190,5,5,151,232,5,5,103,191,5,5,118,187,5,5,21,242,5,5,88,244,5,5,247,189,5,5,194,235,5,5,28,219,5,5,191,244,5,5,3,178,5,5,104,247,5,5,34,200,5,5,105,214,5,5,72,167,5,5,201,228,5,5,166,165,5,5,102,224,5,5,143,169,5,5,71,188,5,5,247,204,5,5,11,169,5,5,244,235,5,5,133,225,5,5,73,193,5,5,31,166,5,5,216,199,5,5,233,215,5,5,206,189,5,5,23,211,5,5,157,198,5,5,195,244,5,5,90,231,5,5,127,187,5,5,184,206,5,5,178,214,5,5,196,244,5,5,17,237,5,5,110,246,5,5,107,214,5,5,242,199,5,5,87,217,5,5,159,221,5,5,254,190,5,5,77,185,5,5,152,178,5,5,31,173,5,5,35,199,5,5,78,185,5,5,166,229,5,5,180,189,5,5,199,244,5,5,54,171,5,5,238,202,5,5,209,188,5,5,145,205,5,5,200,244,5,5,141,173,5,5,253,188,5,5,192,240,5,5,255,204,5,5,236,248,5,5,110,224,5,5,118,175,5,5,153,230,5,5,66,205,5,5,45,186,5,5,32,173,5,5,4,230,5,5,23,249,5,5,70,222,5,5,227,173,5,5,211,227,5,5,137,185,5,5,51,186,5,5,94,235,5,5,223,211,5,5,236,249,5,5,147,210,5,5,140,172,5,5,118,194,5,5,40,212,5,5,97,243,5,5,19,198,5,5,236,244,5,5,205,235,5,5,159,232,5,5,175,190,5,5,87,243,5,5,238,186,5,5,84,171,5,5,126,228,5,5,239,179,5,5,89,176,5,5,80,204,5,5,154,224,5,5,237,244,5,5,22,198,5,5,31,163,5,5,183,221,5,5,84,186,5,5,57,186,5,5,139,183,5,5,183,246,5,5,179,190,5,5,250,217,5,5,177,215,5,5,99,243,5,5,168,192,5,5,104,243,5,5,181,248,5,5,178,199,5,5,138,165,5,5,129,171,5,5,154,194,5,5,121,176,5,5,252,199,5,5,120,214,5,5,121,214,5,5,150,200,5,5,110,201,5,5,86,189,5,5,77,232,5,5,137,222,5,5,146,204,5,5,106,219,5,5,50,214,5,5,83,223,5,5,23,222,5,5,29,232,5,5,30,232,5,5,92,234,5,5,18,244,5,5,32,209,5,5,201,222,5,5,98,173,5,5,52,184,5,5,95,208,5,5,22,247,5,5,192,166,5,5,34,240,5,5,187,189,5,5,27,226,5,5,203,167,5,5,107,195,5,5,82,167,5,5,163,242,5,5,108,195,5,5,130,167,5,5,86,172,5,5,253,223,5,5,20,188,5,5,33,194,5,5,236,195,5,5,207,178,5,5,156,194,5,5,249,215,5,5,192,218,5,5,157,194,5,5,158,194,5,5,54,246,5,5,82,211,5,5,4,166,5,5,23,175,5,5,189,213,5,5,72,221,5,5,168,221,5,5,42,195,5,5,229,219,5,5,85,174,5,5,0,160,5,5,57,214,5,5,103,178,5,5,177,189,5,5,7,222,5,5,161,217,5,5,54,207,5,5,38,180,5,5,28,167,5,5,97,208,5,5,17,167,5,5,112,179,5,5,113,179,5,5,66,166,5,5,63,244,5,5,156,182,5,5,61,198,5,5,222,221,5,5,111,219,5,5,147,177,5,5,119,246,5,5,239,226,5,5,186,188,5,5,89,223,5,5,86,201,5,5,74,220,5,5,225,198,5,5,180,229,5,5,90,186,5,5,132,181,5,5,37,204,5,5,4,217,5,5,202,198,5,5,103,212,5,5,191,187,5,5,217,200,5,5,32,244,5,5,242,214,5,5,243,214,5,5,144,215,5,5,170,243,5,5,254,244,5,5,6,220,5,5,165,241,5,5,59,227,5,5,225,245,5,5,173,182,5,5,130,171,5,5,34,232,5,5,110,195,5,5,114,201,5,5,208,185,5,5,192,213,5,5,170,221,5,5,150,217,5,5,74,221,5,5,198,166,5,5,124,242,5,5,46,200,5,5,164,194,5,5,190,223,5,5,8,200,5,5,123,195,5,5,236,224,5,5,13,173,5,5,229,227,5,5,91,241,5,5,77,200,192,0,0,0,5,5,125,180,5,5,219,205,5,5,15,230,5,5,219,187,5,5,205,212,5,5,104,174,5,5,101,208,5,5,68,214,5,5,248,168,5,5,134,181,5,5,39,222,5,5,171,181,5,5,196,246,5,5,190,197,5,5,141,167,5,5,131,186,5,5,42,243,5,5,10,217,5,5,206,173,5,5,94,223,5,5,58,231,5,5,3,199,5,5,206,212,5,5,77,229,5,5,155,197,5,5,188,217,5,5,29,196,5,5,218,207,5,5,138,214,5,5,207,212,5,5,133,242,5,5,129,198,5,5,188,222,5,5,54,208,5,5,236,176,5,5,69,214,5,5,71,202,5,5,104,245,5,5,134,242,5,5,107,191,5,5,89,198,5,5,37,243,5,5,220,200,5,5,172,170,5,5,244,206,5,5,158,175,5,5,223,163,5,5,105,173,5,5,25,189,5,5,204,196,5,5,24,201,5,5,132,182,5,5,218,212,5,5,243,234,5,5,28,245,5,5,118,201,5,5,255,223,5,5,168,174,5,5,200,245,5,5,249,203,5,5,47,235,5,5,3,174,5,5,190,168,5,5,140,212,5,5,238,230,5,5,219,212,5,5,141,212,5,5,30,216,5,5,230,223,5,5,43,243,5,5,44,243,5,5,93,240,5,5,155,207,5,5,91,248,5,5,207,192,5,5,66,230,5,5,3,168,5,5,48,218,5,5,114,247,5,5,26,229,5,5,44,225,5,5,232,227,5,5,46,218,5,5,75,184,5,5,219,192,5,5,168,246,5,5,199,224,5,5,159,197,5,5,148,196,5,5,233,222,5,5,169,178,5,5,176,213,5,5,21,200,5,5,4,174,5,5,198,188,5,5,107,217,5,5,124,216,5,5,52,201,5,5,48,204,5,5,220,204,5,5,42,165,5,5,108,244,5,5,198,221,5,5,78,246,5,5,104,182,5,5,81,228,5,5,236,212,5,5,183,184,5,5,184,184,5,5,83,224,5,5,141,242,5,5,105,208,5,5,108,208,5,5,103,248,5,5,9,170,5,5,138,227,5,5,134,246,5,5,86,219,5,5,31,216,5,5,148,212,5,5,38,230,5,5,215,169,5,5,232,200,5,5,22,217,5,5,238,219,5,5,242,245,5,5,18,173,5,5,31,210,5,5,30,237,5,5,44,244,5,5,200,187,5,5,196,221,5,5,117,203,5,5,48,192,5,5,112,193,5,5,255,163,5,5,13,199,5,5,114,249,5,5,177,213,5,5,114,227,5,5,81,189,5,5,200,165,5,5,96,192,5,5,97,182,5,5,82,180,5,5,2,224,5,5,64,228,5,5,5,239,5,5,105,163,5,5,94,201,5,5,25,214,5,5,138,213,5,5,119,245,5,5,237,212,5,5,193,249,5,5,133,197,5,5,161,197,5,5,238,212,5,5,150,249,5,5,45,218,5,5,8,183,5,5,83,228,5,5,163,212,5,5,244,241,5,5,191,217,5,5,111,171,5,5,133,188,5,5,175,244,5,5,66,245,5,5,74,231,5,5,208,194,5,5,106,243,5,5,84,211,5,5,29,188,5,5,239,212,5,5,65,165,5,5,156,165,5,5,56,235,5,5,45,190,5,5,232,204,5,5,104,229,5,5,134,240,5,5,240,185,5,5,167,167,5,5,5,237,5,5,135,240,5,5,129,180,5,5,171,207,5,5,106,233,5,5,194,249,5,5,85,199,5,5,187,239,5,5,17,219,5,5,114,238,5,5,138,246,5,5,93,188,5,5,145,198,5,5,173,238,5,5,16,230,5,5,109,208,5,5,147,170,5,5,247,196,5,5,238,228,5,5,18,235,5,5,200,232,5,5,237,204,5,5,7,213,5,5,8,213,5,5,9,213,5,5,156,240,5,5,229,214,5,5,115,223,5,5,64,201,5,5,144,224,5,5,115,241,5,5,8,180,5,5,71,230,5,5,65,243,5,5,120,215,5,5,147,209,5,5,72,208,5,5,126,176,5,5,219,178,5,5,169,228,5,5,9,204,5,5,113,173,5,5,141,235,5,5,241,187,5,5,137,248,5,5,240,188,5,5,200,182,5,5,239,227,5,5,89,173,5,5,23,173,5,5,66,243,5,5,245,217,5,5,92,186,5,5,247,169,5,5,128,180,5,5,157,240,5,5,133,206,5,5,175,170,5,5,189,206,5,5,66,204,5,5,187,244,5,5,148,248,5,5,169,240,5,5,70,217,5,5,34,186,5,5,146,179,5,5,88,232,5,5,99,234,5,5,42,237,5,5,17,213,5,5,35,212,5,5,65,235,5,5,150,188,5,5,62,200,5,5,178,221,5,5,98,214,5,5,146,189,5,5,249,245,5,5,170,240,5,5,36,214,5,5,245,219,5,5,124,200,5,5,53,175,5,5,199,184,5,5,35,186,5,5,203,230,5,5,164,215,5,5,126,195,5,5,201,217,5,5,252,205,5,5,43,224,5,5,171,175,5,5,252,241,5,5,172,197,5,5,95,186,5,5,168,165,5,5,88,231,5,5,128,187,5,5,147,169,5,5,61,164,5,5,244,230,5,5,105,191,5,5,252,184,5,5,101,238,5,5,24,218,5,5,42,197,5,5,194,229,5,5,27,188,5,5,134,187,5,5,211,189,5,5,195,207,5,5,17,188,5,5,83,243,5,5,34,213,5,5,108,214,5,5,7,191,5,5,133,241,5,5,104,234,5,5,166,230,5,5,239,248,5,5,96,186,5,5,96,235,5,5,200,207,5,5,174,226,5,5,119,194,5,5,107,207,5,5,204,223,5,5,61,171,5,5,122,180,5,5,98,186,5,5,186,221,5,5,87,186,5,5,163,189,5,5,22,235,5,5,183,248,5,5,219,219,5,5,251,219,5,5,159,166,5,5,67,221,5,5,18,167,5,5,55,225,5,5,35,249,5,5,57,238,5,5,131,246,5,5,162,198,5,5,172,207,5,5,183,207,5,5,186,174,5,5,60,241,5,5,17,163,5,5,19,177,5,5,66,241,5,5,155,241,5,5,233,232,5,5,251,229,5,5,61,239,5,5,57,167,5,5,131,226,5,5,254,194,5,5,173,232,5,5,49,177,5,5,43,211,5,5,243,249,5,5,69,211,5,5,123,168,5,5,88,164,5,5,84,167,5,5,236,223,5,5,212,204,5,5,214,166,5,5,246,177,5,5,125,226,5,5,212,247,5,5,87,219,5,5,201,165,5,5,50,177,5,5,155,164,5,5,106,163,5,5,127,226,5,5,89,242,5,5,121,242,5,5,6,178,5,5,240,240,5,5,63,225,5,5,46,184,5,5,60,184,5,5,153,168,5,5,123,204,5,5,83,170,5,5,33,179,5,5,63,172,5,5,169,185,5,5,121,230,5,5,181,170,5,5,151,173,5,5,22,170,5,5,87,172,5,5,186,192,5,5,91,245,5,5,24,243,5,5,138,191,5,5,204,163,5,5,173,235,5,5,83,205,5,5,37,193,5,5,106,242,5,5,141,191,5,5,18,229,5,5,68,172,5,5,210,176,5,5,70,210,5,5,109,212,5,5,60,212,5,5,195,231,5,5,94,179,5,5,194,212,5,5,201,170,5,5,247,195,5,5,78,210,5,5,61,245,5,5,87,193,5,5,220,212,5,5,176,186,5,5,184,186,5,5,49,167,5,5,228,201,5,5,197,192,5,5,116,218,5,5,119,164,5,5,71,212,5,5,104,226,5,5,247,177,5,5,71,207,5,5,27,203,5,5,221,204,5,5,211,173,5,5,102,168,5,5,14,195,5,5,250,206,5,5,128,195,5,5,168,225,5,5,139,213,5,5,233,163,5,5,147,190,5,5,228,203,5,5,25,169,5,5,85,236,5,5,139,246,5,5,37,170,5,5,193,178,5,5,201,182,5,5,211,209,5,5,67,206,5,5,166,213,5,5,129,187,5,5,7,178,5,5,211,187,5,5,218,166,5,5,75,168,5,5,132,163,5,5,35,213,5,5,14,224,5,5,46,246,5,5,146,196,5,5,15,224,5,5,100,212,5,5,99,212,5,5,0,155,5,5,46,173,5,5,247,209,5,5,127,202,5,5,8,234,5,5,22,222,5,5,237,238,5,5,133,191,5,5,185,222,5,5,174,194,5,5,42,169,5,5,30,242,5,5,234,195,5,5,67,163,5,5,45,198,5,5,25,241,5,5,162,243,5,5,154,200,5,5,186,222,5,5,162,249,5,5,11,197,5,5,50,184,5,5,163,176,5,5,88,211,5,5,242,222,5,5,85,172,5,5,200,163,5,5,204,167,5,5,238,206,5,5,140,239,5,5,15,229,5,5,16,167,5,5,185,213,5,5,25,182,5,5,249,198,5,5,94,189,5,5,197,172,5,5,240,167,5,5,184,183,5,5,214,241,5,5,98,242,5,5,68,192,5,5,82,217,5,5,197,206,5,5,25,176,5,5,71,163,5,5,20,196,5,5,138,215,5,5,111,184,5,5,170,200,5,5,168,198,5,5,32,204,5,5,96,197,5,5,230,219,5,5,58,202,5,5,6,218,5,5,48,228,5,5,55,179,5,5,51,231,5,5,21,228,5,5,169,182,5,5,198,185,5,5,240,177,5,5,190,213,5,5,193,226,5,5,83,196,5,5,73,221,5,5,60,248,5,5,67,237,5,5,181,247,5,5,14,165,5,5,199,170,5,5,195,212,5,5,246,207,5,5,170,186,5,5,193,213,5,5,171,243,5,5,57,237,5,5,106,186,5,5,213,163,5,5,210,218,5,5,171,242,5,5,127,227,5,5,60,187,5,5,125,198,5,5,145,215,5,5,90,206,5,5,212,166,5,5,161,172,5,5,139,214,5,5,172,163,5,5,188,208,5,5,159,183,5,5,146,165,5,5,240,243,5,5,47,185,5,5,196,187,5,5,208,204,5,5,33,211,5,5,203,196,5,5,138,242,5,5,179,193,5,5,144,233,5,5,39,171,5,5,242,224,5,5,100,239,5,5,224,218,5,5,81,221,5,5,253,240,5,5,8,171,5,5,6,234,5,5,152,234,5,5,169,227,5,5,220,187,5,5,149,177,5,5,90,190,5,5,9,199,5,5,96,233,5,5,40,194,5,5,74,246,5,5,208,173,5,5,175,245,5,5,47,249,5,5,123,216,5,5,140,221,5,5,17,170,5,5,132,246,5,5,50,226,5,5,209,215,5,5,103,182,5,5,40,241,5,5,52,183,5,5,245,213,5,5,24,203,5,5,30,198,5,5,198,165,5,5,50,242,5,5,55,242,5,5,210,169,5,5,148,223,5,5,180,241,5,5,72,237,5,5,98,163,5,5,38,172,5,5,118,199,5,5,58,249,5,5,48,236,5,5,49,169,5,5,59,249,5,5,71,175,5,5,116,248,5,5,203,226,5,5,221,197,5,5,87,211,5,5,107,240,5,5,183,220,5,5,121,234,5,5,229,197,5,5,143,170,5,5,174,206,5,5,43,206,5,5,128,169,5,5,19,221,5,5,87,224,5,5,110,238,5,5,109,238,5,5,224,197,5,5,220,234,5,5,138,164,5,5,173,207,5,5,66,165,5,5,67,165,5,5,59,201,5,5,233,168,5,5,235,188,5,5,33,217,5,5,195,182,5,5,247,241,5,5,238,187,5,5,190,229,5,5,162,214,5,5,36,228,5,5,189,178,5,5,107,204,5,5,190,191,5,5,10,208,5,5,252,177,5,5,120,200,5,5,94,196,5,5,160,215,5,5,94,214,5,5,48,179,5,5,162,215,5,5,198,217,5,5,126,184,5,5,144,168,5,5,211,199,5,5,89,183,5,5,16,171,5,5,210,187,5,5,76,183,5,5,177,194,5,5,33,228,5,5,207,189,5,5,50,179,5,5,235,215,5,5,55,171,5,5,154,230,5,5,161,200,5,5,77,183,5,5,110,190,5,5,174,215,5,5,247,208,5,5,205,207,5,5,132,217,5,5,167,171,5,5,113,231,5,5,89,191,5,5,194,189,5,5,48,248,5,5,140,236,5,5,81,247,5,5,248,209,5,5,127,191,5,5,191,177,5,5,19,185,5,5,0,134,5,5,204,201,5,5,134,201,5,5,226,176,5,5,72,226,5,5,107,192,5,5,147,204,5,5,164,247,5,5,3,209,5,5,165,247,5,5,38,225,5,5,31,169,5,5,194,194,5,5,54,245,5,5,23,174,5,5,23,247,5,5,212,203,5,5,245,240,5,5,7,166,5,5,236,165,5,5,159,164,5,5,205,248,5,5,127,207,5,5,161,170,5,5,128,207,5,5,192,246,5,5,197,204,5,5,195,169,5,5,5,176,5,5,135,168,5,5,55,246,5,5,167,200,5,5,182,215,5,5,30,211,5,5,98,189,5,5,91,175,5,5,49,240,5,5,224,238,5,5,177,168,5,5,166,177,5,5,86,174,5,5,133,217,5,5,77,213,5,5,41,163,5,5,204,233,5,5,71,192,5,5,70,203,5,5,247,227,5,5,196,166,5,5,171,233,5,5,255,194,5,5,78,230,5,5,19,229,5,5,147,228,5,5,150,239,5,5,234,232,5,5,12,203,5,5,229,171,5,5,49,228,5,5,86,188,5,5,10,165,5,5,161,220,5,5,162,220,5,5,131,207,5,5,141,172,5,5,231,190,5,5,170,205,5,5,87,204,5,5,89,205,5,5,61,187,5,5,180,194,5,5,49,215,5,5,7,220,5,5,224,194,5,5,125,242,5,5,15,215,5,5,33,244,5,5,231,216,5,5,138,190,5,5,147,236,5,5,137,221,5,5,222,210,5,5,172,243,5,5,225,217,5,5,21,164,5,5,59,239,5,5,99,216,5,5,166,241,5,5,194,213,5,5,178,198,5,5,216,193,5,5,153,226,5,5,5,217,5,5,69,164,5,5,253,166,5,5,218,185,5,5,69,176,5,5,232,244,5,5,9,200,5,5,29,247,5,5,160,237,5,5,106,225,5,5,237,176,5,5,62,245,5,5,25,245,5,5,103,225,5,5,55,208,5,5,202,169,5,5,219,163,5,5,172,181,5,5,200,215,5,5,216,225,5,5,90,198,5,5,138,217,5,5,172,242,5,5,18,210,5,5,165,217,5,5,112,186,5,5,3,187,5,5,17,215,5,5,105,174,5,5,36,188,5,5,254,240,5,5,208,212,5,5,112,189,5,5,177,186,5,5,223,205,5,5,171,188,5,5,225,236,5,5,244,236,5,5,12,174,5,5,197,246,5,5,172,177,5,5,139,168,5,5,115,220,5,5,229,235,5,5,236,171,5,5,92,248,5,5,214,206,5,5,170,224,5,5,51,185,5,5,31,247,5,5,49,229,5,5,26,246,5,5,106,181,5,5,220,225,5,5,246,232,5,5,190,164,5,5,64,225,5,5,46,199,5,5,197,208,5,5,238,237,5,5,205,196,5,5,245,224,5,5,198,208,5,5,191,164,5,5,216,246,5,5,21,190,5,5,83,235,5,5,86,194,5,5,235,242,5,5,81,177,5,5,224,163,5,5,227,188,5,5,227,210,5,5,4,168,5,5,161,166,5,5,19,212,5,5,43,222,5,5,228,210,5,5,142,172,5,5,5,206,5,5,142,212,5,5,26,178,5,5,226,203,5,5,10,201,5,5,28,248,5,5,74,170,5,5,216,169,5,5,85,226,5,5,108,217,5,5,174,180,5,5,125,216,5,5,104,175,5,5,39,230,5,5,239,171,5,5,222,204,5,5,79,246,5,5,32,231,5,5,233,200,5,5,21,214,5,5,51,226,5,5,38,205,5,5,140,222,5,5,45,225,5,5,199,188,5,5,75,212,5,5,205,213,5,5,170,178,5,5,101,249,5,5,255,240,5,5,72,183,5,5,14,199,5,5,109,244,5,5,213,247,5,5,53,201,5,5,13,231,5,5,232,235,5,5,50,188,5,5,208,226,5,5,75,231,5,5,232,236,5,5,184,241,5,5,7,247,5,5,67,245,5,5,190,220,5,5,236,205,5,5,178,244,5,5,36,169,5,5,161,179,5,5,55,188,5,5,83,180,5,5,97,187,5,5,119,186,5,5,232,193,5,5,251,220,5,5,44,211,5,5,173,234,5,5,166,207,5,5,222,219,5,5,185,241,5,5,69,238,5,5,19,166,5,5,91,229,5,5,18,225,5,5,216,196,5,5,121,222,5,5,57,235,5,5,201,205,5,5,115,239,5,5,226,234,5,5,58,235,5,5,219,208,5,5,203,186,5,5,216,244,5,5,233,236,5,5,38,210,5,5,143,217,5,5,115,238,5,5,175,188,5,5,167,170,5,5,25,221,5,5,192,243,5,5,163,199,5,5,118,244,5,5,145,246,5,5,59,190,5,5,35,245,5,5,127,176,5,5,22,215,5,5,201,232,5,5,246,217,5,5,212,211,5,5,115,176,5,5,241,188,5,5,242,187,5,5,157,212,5,5,190,236,5,5,65,201,5,5,238,193,5,5,234,168,5,5,134,206,5,5,24,173,5,5,245,205,5,5,62,188,5,5,2,202,5,5,151,200,5,5,137,206,5,5,78,238,5,5,92,165,5,5,100,234,5,5,215,211,5,5,73,232,5,5,76,176,5,5,70,204,5,5,151,194,5,5,35,180,5,5,125,200,5,5,191,200,5,5,243,235,5,5,43,237,5,5,93,181,5,5,240,225,5,5,243,247,5,5,253,205,5,5,208,189,5,5,30,166,5,5,105,229,5,5,68,247,5,5,35,233,5,5,38,186,5,5,99,213,5,5,156,231,5,5,146,217,5,5,37,231,5,5,210,245,5,5,252,191,5,5,99,185,5,5,8,178,5,5,130,187,5,5,43,219,5,5,48,230,5,5,225,186,5,5,154,232,5,5,158,212,5,5,240,180,5,5,246,193,5,5,14,237,5,5,255,184,5,5,8,191,5,5,212,189,5,5,135,187,5,5,157,232,5,5,97,186,5,5,143,244,5,5,59,171,5,5,62,216,5,5,162,212,5,5,120,194,5,5,175,175,5,5,162,232,5,5,202,200,5,5,103,193,5,5,72,163,5,5,31,177,5,5,80,163,5,5,74,199,5,5,121,218,5,5,80,168,5,5,113,164,5,5,156,230,5,5,164,187,5,5,152,245,192,0,0,0,5,5,67,216,5,5,65,210,5,5,89,164,5,5,99,167,5,5,172,173,5,5,6,176,5,5,133,247,5,5,167,238,192,0,0,0,192,0,0,0,5,5,167,245,5,5,252,198,5,5,101,189,5,5,159,239,5,5,187,168,5,5,177,233,5,5,161,163,5,5,220,207,5,5,11,225,5,5,13,223,192,0,0,0,5,5,104,176,5,5,9,171,5,5,141,166,5,5,97,222,5,5,195,168,5,5,202,165,5,5,62,220,5,5,191,220,192,0,0,0,5,5,183,233,5,5,119,244,5,5,54,209,5,5,114,215,5,5,5,186,5,5,13,177,5,5,175,238,5,5,234,170,5,5,125,222,5,5,200,164,5,5,32,189,5,5,210,232,5,5,75,245,5,5,50,168,5,5,252,175,5,5,135,247,5,5,133,244,5,5,8,243,5,5,102,192,5,5,83,175,5,5,178,228,5,5,80,181,5,5,81,181,5,5,95,198,5,5,13,225,5,5,8,229,5,5,109,211,5,5,152,228,5,5,130,224,5,5,131,224,5,5,251,230,5,5,27,229,5,5,130,236,5,5,166,228,5,5,24,250,5,5,199,229,5,5,2,190,5,5,152,174,5,5,248,249,5,5,186,164,5,5,254,173,5,5,117,184,5,5,71,181,5,5,28,242,5,5,66,203,5,5,133,228,5,5,82,219,5,5,159,177,5,5,61,174,5,5,95,183,5,5,123,177,5,5,157,168,5,5,129,181,5,5,136,199,5,5,165,181,5,5,236,220,5,5,31,232,5,5,222,170,5,5,5,165,5,5,165,208,5,5,100,188,5,5,215,217,5,5,33,188,5,5,39,225,5,5,69,172,5,5,135,249,5,5,52,173,5,5,87,174,5,5,214,192,5,5,75,181,5,5,214,203,5,5,215,203,5,5,102,212,5,5,120,246,5,5,88,174,5,5,76,181,5,5,70,172,5,5,53,178,5,5,86,167,5,5,11,206,5,5,140,245,5,5,25,175,5,5,102,183,5,5,37,188,5,5,125,164,5,5,216,220,5,5,213,225,5,5,72,172,5,5,73,172,5,5,238,233,5,5,79,181,5,5,222,191,5,5,24,165,5,5,26,175,5,5,225,218,5,5,218,237,5,5,189,208,5,5,108,191,5,5,54,167,5,5,215,240,5,5,240,172,5,5,141,199,5,5,171,227,5,5,201,247,5,5,75,172,5,5,59,208,5,5,74,240,5,5,39,188,5,5,172,227,5,5,40,177,5,5,25,224,5,5,142,199,5,5,73,176,5,5,96,222,5,5,234,201,5,5,220,246,5,5,15,206,5,5,125,225,5,5,47,225,5,5,153,182,5,5,90,185,5,5,246,201,5,5,138,223,5,5,63,188,5,5,71,177,5,5,123,182,5,5,33,189,5,5,29,206,5,5,31,206,5,5,46,224,5,5,52,168,5,5,63,177,5,5,65,177,5,5,22,168,5,5,140,203,5,5,28,176,5,5,79,229,5,5,80,229,5,5,8,219,5,5,185,239,5,5,255,182,5,5,15,183,5,5,192,177,5,5,229,164,5,5,97,203,5,5,224,187,5,5,187,192,5,5,139,191,5,5,159,204,5,5,36,220,5,5,229,213,5,5,88,228,5,5,183,216,5,5,221,184,5,5,41,187,5,5,25,244,5,5,221,224,5,5,38,242,5,5,0,140,5,5,216,203,5,5,132,207,5,5,170,208,5,5,170,213,5,5,231,234,5,5,11,165,5,5,50,240,5,5,48,187,5,5,142,233,5,5,122,226,5,5,196,173,5,5,223,221,5,5,29,167,5,5,245,167,5,5,118,192,5,5,6,195,5,5,156,233,5,5,46,217,5,5,74,218,5,5,8,176,5,5,217,220,5,5,125,172,5,5,165,218,5,5,132,180,5,5,201,206,5,5,61,202,5,5,206,172,5,5,202,206,5,5,54,228,5,5,18,203,5,5,135,217,5,5,113,219,5,5,89,166,5,5,232,183,5,5,117,221,5,5,212,249,5,5,154,206,5,5,67,212,5,5,133,180,5,5,157,182,5,5,165,239,5,5,103,203,5,5,67,246,5,5,50,200,5,5,231,179,5,5,65,244,5,5,95,223,5,5,226,218,5,5,164,198,5,5,13,241,5,5,7,170,5,5,209,175,5,5,165,206,5,5,141,214,5,5,217,182,5,5,190,181,5,5,205,170,5,5,27,168,5,5,142,214,5,5,58,237,5,5,39,174,5,5,82,187,5,5,243,218,5,5,181,234,5,5,69,178,5,5,108,245,5,5,136,227,5,5,176,185,5,5,27,228,5,5,227,200,5,5,101,215,5,5,108,240,5,5,183,164,5,5,50,221,5,5,87,194,5,5,251,179,5,5,213,172,5,5,24,169,5,5,229,188,5,5,17,223,5,5,194,202,5,5,109,181,5,5,208,238,5,5,102,223,5,5,43,165,5,5,44,165,5,5,240,171,5,5,90,193,5,5,124,178,5,5,150,237,5,5,80,246,5,5,151,247,5,5,246,234,5,5,15,241,5,5,176,221,5,5,155,234,5,5,241,175,5,5,218,228,5,5,235,222,5,5,107,223,5,5,117,248,5,5,34,198,5,5,214,173,5,5,244,184,5,5,45,244,5,5,201,224,5,5,218,181,5,5,29,248,5,5,150,193,5,5,33,247,5,5,236,200,5,5,34,196,5,5,84,203,5,5,143,243,5,5,123,240,5,5,11,186,5,5,35,236,5,5,174,207,5,5,112,223,5,5,251,212,5,5,75,194,5,5,136,240,5,5,8,247,5,5,95,202,5,5,128,226,5,5,76,164,5,5,110,200,5,5,56,188,5,5,220,223,5,5,31,228,5,5,224,184,5,5,133,177,5,5,52,175,5,5,133,165,5,5,236,179,5,5,55,221,5,5,159,165,5,5,224,228,5,5,163,234,5,5,125,190,5,5,158,240,5,5,148,233,5,5,12,224,5,5,56,221,5,5,202,219,5,5,78,236,5,5,240,235,5,5,11,212,5,5,112,177,5,5,13,186,5,5,14,186,5,5,140,169,5,5,247,210,5,5,222,243,5,5,217,244,5,5,67,201,5,5,144,174,5,5,246,187,5,5,249,190,5,5,175,209,5,5,65,188,5,5,184,185,5,5,124,215,5,5,218,172,5,5,251,175,5,5,247,243,5,5,170,197,5,5,42,238,5,5,81,164,5,5,125,215,5,5,76,194,5,5,57,194,5,5,210,184,5,5,153,248,5,5,41,246,5,5,178,240,5,5,231,249,5,5,33,168,5,5,133,185,5,5,119,187,5,5,120,229,5,5,59,176,5,5,19,189,5,5,183,177,5,5,20,189,5,5,75,185,5,5,134,165,5,5,233,202,5,5,25,223,5,5,79,244,5,5,155,217,5,5,122,203,5,5,102,221,5,5,163,169,5,5,145,187,5,5,227,199,5,5,83,185,5,5,25,202,5,5,139,177,5,5,156,217,5,5,222,244,5,5,231,243,5,5,229,211,5,5,240,249,5,5,240,179,5,5,143,177,5,5,131,190,5,5,182,190,5,5,183,190,5,5,36,163,5,5,40,163,5,5,9,194,5,5,0,161,5,5,114,172,5,5,122,176,5,5,116,172,5,5,155,163,5,5,156,163,5,5,89,209,5,5,50,202,5,5,78,232,5,5,79,232,5,5,56,170,5,5,67,175,5,5,153,166,5,5,99,203,5,5,38,201,5,5,212,193,5,5,205,233,5,5,102,189,5,5,255,191,5,5,110,169,5,5,62,202,5,5,38,204,5,5,189,167,5,5,5,192,5,5,36,238,5,5,163,237,5,5,3,198,5,5,133,198,5,5,34,165,5,5,217,246,5,5,29,224,5,5,178,210,5,5,231,212,5,5,41,238,5,5,206,214,5,5,11,198,5,5,102,201,5,5,12,198,5,5,7,232,5,5,228,234,5,5,14,198,5,5,209,214,5,5,123,241,5,5,183,166,5,5,15,198,5,5,72,204,5,5,82,238,5,5,136,216,5,5,105,201,5,5,136,187,5,5,90,168,5,5,149,197,5,5,114,204,5,5,234,167,5,5,134,192,5,5,30,167,5,5,53,220,5,5,25,208,5,5,28,210,5,5,25,235,5,5,25,212,5,5,74,219,5,5,62,193,5,5,30,208,5,5,31,208,5,5,64,220,5,5,77,219,5,5,69,193,5,5,218,219,5,5,9,178,5,5,249,171,5,5,4,209,5,5,155,244,5,5,167,247,5,5,184,163,5,5,211,219,5,5,205,222,5,5,100,167,5,5,97,197,5,5,157,244,5,5,107,197,5,5,65,240,5,5,45,163,5,5,205,246,5,5,108,197,5,5,20,239,5,5,110,220,5,5,169,242,5,5,203,204,5,5,112,197,5,5,149,247,5,5,105,196,5,5,59,173,5,5,238,191,5,5,159,175,5,5,59,167,5,5,169,174,5,5,29,210,5,5,44,229,5,5,160,175,5,5,29,190,5,5,118,220,5,5,229,170,5,5,199,186,5,5,197,205,5,5,27,217,5,5,227,204,5,5,66,167,5,5,113,194,5,5,217,238,5,5,199,189,5,5,240,216,5,5,26,220,5,5,116,176,5,5,220,238,5,5,74,193,5,5,137,187,5,5,83,172,5,5,193,177,5,5,154,192,5,5,184,216,5,5,191,170,5,5,109,247,5,5,102,218,5,5,33,209,5,5,85,249,5,5,77,181,5,5,40,216,5,5,200,178,5,5,251,215,5,5,118,213,5,5,85,167,5,5,197,173,5,5,208,178,5,5,230,171,5,5,30,172,5,5,36,229,5,5,55,227,5,5,136,249,5,5,196,171,5,5,52,167,5,5,173,173,5,5,156,171,5,5,230,175,5,5,197,169,5,5,61,170,5,5,186,195,5,5,189,215,5,5,136,195,5,5,60,227,5,5,7,244,5,5,75,221,5,5,218,241,5,5,153,228,5,5,193,199,5,5,49,175,5,5,218,220,5,5,30,197,5,5,203,206,5,5,210,228,5,5,160,239,5,5,37,229,5,5,2,170,5,5,111,169,5,5,224,221,5,5,169,220,5,5,170,220,5,5,175,171,5,5,61,227,5,5,252,248,5,5,32,177,5,5,206,183,5,5,198,231,5,5,199,231,5,5,254,223,5,5,96,219,5,5,163,217,5,5,69,166,5,5,76,171,5,5,234,190,5,5,252,236,5,5,177,182,5,5,32,171,5,5,69,177,5,5,238,176,5,5,4,183,5,5,34,172,5,5,166,217,5,5,10,223,5,5,31,197,5,5,250,207,5,5,89,170,5,5,246,220,5,5,54,181,5,5,35,244,5,5,225,242,5,5,115,169,5,5,249,222,5,5,112,169,5,5,184,219,5,5,82,221,5,5,211,169,5,5,207,236,5,5,8,228,5,5,134,198,5,5,228,200,5,5,247,176,5,5,143,225,5,5,182,234,5,5,251,207,5,5,164,237,5,5,128,170,5,5,205,215,5,5,221,212,5,5,243,196,5,5,66,185,5,5,32,205,5,5,82,228,5,5,110,181,5,5,148,194,5,5,221,246,5,5,163,186,5,5,81,227,5,5,149,212,5,5,201,187,5,5,2,241,5,5,98,206,5,5,91,221,5,5,190,186,5,5,67,185,5,5,31,237,5,5,2,208,5,5,215,229,5,5,2,237,5,5,235,177,5,5,45,165,5,5,43,168,5,5,97,172,5,5,254,200,5,5,213,183,5,5,30,190,5,5,109,240,5,5,169,203,5,5,22,234,5,5,39,220,5,5,221,247,5,5,2,201,5,5,53,169,5,5,232,213,5,5,159,216,5,5,25,200,5,5,150,194,5,5,37,232,5,5,118,226,5,5,228,204,5,5,11,170,5,5,27,178,5,5,35,198,5,5,111,217,5,5,120,181,5,5,130,196,5,5,11,192,5,5,14,231,5,5,76,170,5,5,28,217,5,5,132,172,5,5,205,245,5,5,151,171,5,5,59,224,5,5,163,196,5,5,33,171,5,5,130,247,5,5,156,195,5,5,110,176,5,5,173,224,5,5,23,195,5,5,69,236,5,5,180,213,5,5,152,212,5,5,136,169,5,5,45,172,5,5,114,170,5,5,217,229,5,5,8,232,5,5,57,221,5,5,159,240,5,5,86,177,5,5,140,195,5,5,141,169,5,5,232,229,5,5,64,235,5,5,225,185,5,5,22,223,5,5,115,170,5,5,86,168,5,5,75,225,5,5,27,194,5,5,235,170,5,5,244,200,5,5,39,231,5,5,63,168,5,5,19,213,5,5,177,209,5,5,236,168,5,5,202,221,5,5,141,176,5,5,199,228,5,5,234,229,5,5,14,188,5,5,202,223,5,5,126,215,5,5,191,195,5,5,124,241,5,5,37,217,5,5,204,182,5,5,96,170,5,5,245,188,5,5,54,194,5,5,133,205,5,5,127,241,5,5,83,238,5,5,131,200,5,5,96,220,5,5,56,205,5,5,75,193,5,5,248,219,5,5,218,211,5,5,229,169,5,5,61,224,5,5,37,236,5,5,135,184,5,5,204,217,5,5,254,241,5,5,217,199,5,5,249,170,5,5,187,171,5,5,147,168,5,5,188,171,5,5,138,187,5,5,43,197,5,5,196,207,5,5,128,217,5,5,189,171,5,5,228,199,5,5,215,189,5,5,254,170,5,5,11,191,5,5,122,194,5,5,135,170,5,5,102,213,5,5,237,225,5,5,123,180,5,5,193,195,5,5,206,221,5,5,20,170,5,5,167,205,5,5,222,188,5,5,93,248,5,5,185,229,5,5,251,231,5,5,208,207,5,5,10,227,5,5,216,239,5,5,184,228,5,5,64,218,5,5,27,198,5,5,186,228,5,5,205,244,5,5,22,207,5,5,13,220,5,5,39,204,5,5,183,234,5,5,163,178,5,5,47,238,5,5,71,204,5,5,202,232,5,5,194,248,5,5,28,163,5,5,227,226,5,5,213,177,5,5,28,209,5,5,207,201,5,5,172,231,5,5,113,192,5,5,92,245,5,5,129,219,5,5,5,196,5,5,188,192,5,5,113,213,5,5,9,173,5,5,27,197,5,5,96,176,5,5,32,169,5,5,125,227,5,5,231,175,5,5,133,207,5,5,49,187,5,5,27,174,5,5,231,171,5,5,183,237,5,5,189,199,5,5,211,195,5,5,162,218,5,5,37,209,5,5,172,195,5,5,217,203,5,5,8,166,5,5,205,237,5,5,31,241,5,5,206,167,5,5,130,219,5,5,167,242,5,5,22,237,5,5,116,222,5,5,176,223,5,5,209,178,5,5,53,167,5,5,29,243,5,5,4,206,5,5,198,173,5,5,129,172,5,5,113,169,5,5,97,219,5,5,204,206,5,5,67,248,5,5,7,195,5,5,30,182,5,5,31,182,5,5,212,176,5,5,199,219,5,5,171,220,5,5,208,237,5,5,96,174,5,5,74,172,5,5,225,221,5,5,235,184,5,5,195,165,5,5,149,184,5,5,161,168,5,5,139,167,5,5,103,189,5,5,31,167,5,5,23,185,5,5,199,166,5,5,46,163,5,5,200,166,5,5,154,228,5,5,220,231,5,5,58,238,5,5,62,187,5,5,235,190,5,5,174,182,5,5,28,250,5,5,63,187,5,5,48,197,5,5,188,225,5,5,246,195,5,5,68,212,5,5,141,221,5,5,4,197,5,5,220,193,5,5,219,237,5,5,50,183,5,5,85,209,5,5,16,190,5,5,68,246,5,5,59,238,5,5,206,191,5,5,201,215,5,5,151,216,5,5,173,242,5,5,19,179,5,5,142,167,5,5,209,212,5,5,219,185,5,5,153,201,5,5,184,229,5,5,196,213,5,5,130,209,5,5,147,211,5,5,18,246,5,5,162,209,5,5,75,240,5,5,248,195,5,5,143,214,5,5,20,212,5,5,157,224,5,5,115,186,5,5,119,201,5,5,202,247,5,5,144,214,5,5,201,213,5,5,214,170,5,5,140,190,5,5,11,250,5,5,179,223,5,5,195,223,5,5,201,245,5,5,40,188,5,5,224,244,5,5,206,170,5,5,21,212,5,5,45,243,5,5,137,227,5,5,230,196,5,5,94,248,5,5,99,223,5,5,160,199,5,5,232,189,5,5,212,224,5,5,33,205,5,5,223,184,5,5,101,237,5,5,46,222,5,5,250,195,5,5,160,167,5,5,142,242,5,5,98,222,5,5,58,197,5,5,121,225,5,5,203,208,5,5,145,233,5,5,139,211,5,5,230,188,5,5,29,208,5,5,54,163,5,5,222,177,5,5,241,171,5,5,83,177,5,5,223,204,5,5,160,197,5,5,31,190,5,5,65,238,5,5,32,237,5,5,26,212,5,5,154,186,5,5,189,163,5,5,186,243,5,5,140,178,5,5,64,245,5,5,204,208,5,5,218,190,5,5,222,246,5,5,153,177,5,5,55,183,5,5,231,163,5,5,47,209,5,5,213,224,5,5,33,231,5,5,186,242,5,5,52,177,5,5,224,177,5,5,248,177,5,5,40,182,5,5,178,203,5,5,112,244,5,5,221,165,5,5,68,195,5,5,57,165,5,5,135,246,5,5,188,229,5,5,192,220,5,5,173,178,5,5,209,213,5,5,107,176,5,5,177,180,5,5,74,183,5,5,193,167,5,5,48,205,5,5,3,177,5,5,45,180,5,5,154,223,5,5,122,181,5,5,51,209,5,5,221,178,5,5,215,173,5,5,174,217,5,5,32,212,5,5,33,212,5,5,37,169,5,5,210,194,5,5,81,184,5,5,183,236,5,5,171,237,5,5,184,233,5,5,57,188,5,5,136,235,5,5,89,180,5,5,170,164,5,5,122,199,5,5,223,167,5,5,93,246,5,5,118,236,5,5,125,185,5,5,175,234,5,5,91,181,5,5,211,213,5,5,252,212,5,5,142,188,5,5,67,167,5,5,34,246,5,5,173,249,5,5,125,178,5,5,152,219,5,5,24,195,5,5,237,184,5,5,122,222,5,5,143,211,5,5,140,194,5,5,126,222,5,5,97,224,5,5,58,209,5,5,118,238,5,5,148,167,5,5,105,188,5,5,243,189,5,5,190,195,5,5,137,226,5,5,216,224,5,5,220,243,5,5,126,185,5,5,160,165,5,5,59,209,5,5,77,169,5,5,60,209,5,5,222,234,5,5,113,233,5,5,144,211,5,5,13,226,5,5,224,190,5,5,6,202,5,5,112,228,5,5,185,185,5,5,216,211,5,5,203,232,5,5,142,176,5,5,134,205,5,5,152,213,5,5,246,188,5,5,228,177,5,5,12,180,5,5,68,201,5,5,69,167,5,5,227,231,5,5,150,209,5,5,160,176,5,5,113,187,5,5,157,205,5,5,12,204,5,5,167,213,5,5,39,221,5,5,178,209,5,5,194,178,5,5,57,205,5,5,154,248,5,5,108,222,5,5,143,197,5,5,72,195,5,5,10,232,5,5,96,185,5,5,48,195,5,5,197,225,5,5,128,241,5,5,37,212,5,5,117,176,5,5,244,239,5,5,30,206,5,5,231,167,5,5,232,167,5,5,155,248,5,5,131,168,5,5,9,238,5,5,86,238,5,5,32,195,5,5,251,204,5,5,161,248,5,5,38,231,5,5,250,170,5,5,33,167,5,5,197,233,5,5,133,163,5,5,91,244,5,5,58,169,5,5,227,233,5,5,129,215,5,5,44,197,5,5,101,185,5,5,136,185,5,5,46,219,5,5,139,187,5,5,140,187,5,5,33,173,5,5,41,212,5,5,34,167,5,5,144,244,5,5,146,187,5,5,12,191,5,5,13,191,5,5,150,169,5,5,137,163,5,5,244,229,5,5,123,194,5,5,53,186,5,5,143,232,5,5,209,242,5,5,30,227,5,5,24,227,5,5,248,186,5,5,177,230,5,5,188,227,5,5,206,248,5,5,168,235,5,5,166,208,5,5,34,179,5,5,44,169,5,5,58,214,5,5,145,241,5,5,46,215,5,5,171,208,5,5,172,208,5,5,163,218,5,5,176,164,5,5,137,178,5,5,243,222,5,5,128,230,5,5,97,239,5,5,245,226,5,5,109,242,5,5,211,218,5,5,24,181,5,5,97,174,5,5,204,174,5,5,94,171,5,5,235,232,5,5,75,218,5,5,61,237,5,5,3,170,5,5,12,233,5,5,166,211,5,5,70,199,5,5,226,221,5,5,179,228,5,5,23,237,5,5,173,233,5,5,212,223,5,5,37,171,5,5,68,191,5,5,21,248,5,5,71,216,5,5,29,245,5,5,16,181,5,5,92,168,5,5,228,221,5,5,15,194,5,5,197,213,5,5,81,218,5,5,187,202,5,5,45,192,5,5,175,220,5,5,46,192,5,5,212,229,5,5,224,205,5,5,213,228,5,5,223,191,5,5,231,196,5,5,248,176,5,5,140,175,5,5,201,199,5,5,187,179,5,5,205,208,5,5,91,193,5,5,107,194,5,5,41,233,5,5,128,189,5,5,32,190,5,5,74,166,5,5,229,205,5,5,142,175,5,5,122,218,5,5,22,190,5,5,84,224,5,5,190,163,5,5,168,219,5,5,26,200,5,5,85,242,5,5,140,213,5,5,144,243,5,5,139,231,5,5,205,199,5,5,193,220,5,5,131,174,5,5,103,249,5,5,34,245,5,5,156,215,5,5,46,244,5,5,89,218,5,5,109,239,5,5,220,169,5,5,126,235,5,5,4,177,5,5,247,163,5,5,53,222,5,5,197,220,5,5,20,250,5,5,96,202,5,5,51,192,5,5,90,180,5,5,137,235,5,5,54,169,5,5,71,179,5,5,255,174,5,5,120,217,5,5,221,208,5,5,138,248,5,5,94,213,5,5,7,202,5,5,191,235,5,5,100,224,5,5,57,176,5,5,58,194,5,5,47,237,5,5,14,187,5,5,202,184,5,5,51,171,5,5,154,175,5,5,141,187,5,5,157,230,5,5,242,248,5,5,201,180,5,5,163,232,5,5,161,185,5,5,33,230,5,5,11,248,5,5,173,247,5,5,178,186,5,5,76,214,5,5,237,210,5,5,83,197,5,5,181,181,5,5,12,215,5,5,107,235,5,5,90,230,5,5,182,181,5,5,173,231,5,5,142,223,5,5,135,192,5,5,35,240,5,5,44,215,5,5,60,166,5,5,64,184,5,5,221,209,5,5,222,209,5,5,226,222,5,5,131,173,5,5,246,197,5,5,137,249,5,5,2,195,5,5,157,171,5,5,69,218,5,5,82,206,5,5,232,164,5,5,70,218,5,5,61,248,5,5,95,171,5,5,27,196,5,5,107,164,5,5,209,167,5,5,154,183,5,5,64,187,5,5,41,242,5,5,213,232,5,5,210,167,5,5,81,163,5,5,104,189,5,5,114,169,5,5,145,225,5,5,66,184,5,5,223,210,5,5,8,244,5,5,242,232,5,5,212,218,5,5,76,218,5,5,99,229,5,5,62,207,5,5,179,231,5,5,176,199,5,5,217,201,5,5,57,225,5,5,178,182,5,5,227,218,5,5,177,199,5,5,113,197,5,5,127,243,5,5,119,231,5,5,228,218,5,5,104,203,5,5,101,230,5,5,37,178,5,5,166,239,5,5,142,221,5,5,82,200,5,5,192,184,5,5,218,174,5,5,222,212,5,5,124,195,5,5,116,186,5,5,40,174,5,5,16,218,5,5,213,229,5,5,69,191,5,5,232,196,5,5,141,192,5,5,94,206,5,5,169,180,5,5,115,225,5,5,212,181,5,5,233,227,5,5,214,229,5,5,44,241,5,5,219,190,5,5,33,190,5,5,92,193,5,5,247,232,5,5,104,230,5,5,167,222,5,5,167,164,5,5,173,163,5,5,235,201,5,5,86,218,5,5,251,218,5,5,234,196,5,5,155,186,5,5,161,167,5,5,15,195,5,5,75,166,5,5,30,224,5,5,42,233,5,5,105,248,5,5,132,236,5,5,110,191,5,5,50,216,5,5,110,239,5,5,141,213,5,5,222,165,5,5,202,202,5,5,132,174,5,5,46,168,5,5,170,184,5,5,119,203,5,5,236,222,5,5,103,233,5,5,236,216,5,5,69,225,5,5,163,175,5,5,56,247,5,5,115,215,5,5,140,231,5,5,131,248,5,5,213,202,5,5,34,217,5,5,228,220,5,5,18,219,5,5,166,175,5,5,94,203,5,5,247,201,5,5,32,192,5,5,33,192,5,5,64,193,5,5,77,231,5,5,34,237,5,5,103,231,5,5,219,202,5,5,220,195,5,5,107,172,5,5,88,234,5,5,226,169,5,5,34,219,5,5,203,202,5,5,55,190,5,5,134,236,5,5,3,202,5,5,218,244,5,5,57,247,5,5,232,209,5,5,241,235,5,5,167,197,5,5,160,240,5,5,70,201,5,5,118,209,5,5,142,202,5,5,44,237,5,5,168,214,5,5,237,168,5,5,13,204,5,5,14,222,5,5,238,222,5,5,54,233,5,5,81,191,5,5,48,237,5,5,203,184,5,5,245,235,5,5,132,200,5,5,150,230,5,5,177,184,5,5,162,248,5,5,132,168,5,5,234,202,5,5,85,182,5,5,58,247,5,5,80,225,5,5,218,199,5,5,45,197,5,5,84,191,5,5,173,165,5,5,252,235,5,5,158,230,5,5,17,222,5,5,242,186,5,5,15,235,5,5,55,217,5,5,135,245,5,5,124,204,5,5,132,212,5,5,178,212,5,5,133,212,5,5,51,197,5,5,143,247,5,5,148,228,5,5,125,206,5,5,234,241,5,5,48,226,5,5,158,222,5,5,184,181,5,5,170,185,5,5,98,209,5,5,196,219,5,5,219,241,5,5,216,165,5,5,8,164,5,5,220,241,5,5,70,166,5,5,141,245,5,5,171,221,5,5,88,204,5,5,194,209,5,5,99,177,5,5,2,245,5,5,222,193,5,5,167,241,5,5,229,218,5,5,123,226,5,5,239,241,5,5,48,181,5,5,93,204,5,5,124,226,5,5,103,208,5,5,145,214,5,5,107,225,5,5,153,195,5,5,16,235,5,5,176,245,5,5,42,176,5,5,16,196,5,5,16,195,5,5,47,222,5,5,203,216,5,5,133,236,5,5,72,194,5,5,106,196,5,5,211,175,5,5,78,222,5,5,192,217,5,5,179,245,5,5,148,245,5,5,45,241,5,5,222,247,5,5,81,207,5,5,153,212,5,5,193,241,5,5,194,241,5,5,51,181,5,5,247,223,5,5,34,248,5,5,92,181,5,5,113,177,5,5,93,207,5,5,25,188,5,5,10,213,5,5,123,245,5,5,108,196,5,5,129,226,5,5,216,219,5,5,194,196,5,5,192,196,5,5,250,190,5,5,79,225,5,5,253,234,5,5,81,168,5,5,93,232,5,5,21,235,5,5,205,209,5,5,159,212,5,5,219,175,5,5,94,232,5,5,38,191,5,5,123,209,5,5,26,187,5,5,203,225,5,5,110,227,5,5,194,174,5,5,195,210,5,5,210,225,5,5,142,201,5,5,173,208,5,5,23,198,5,5,55,229,5,5,143,173,5,5,136,229,5,5,168,171,5,5,238,211,5,5,137,220,5,5,227,221,5,5,105,189,5,5,236,190,5,5,90,166,5,5,155,206,5,5,164,206,5,5,11,221,5,5,179,163,5,5,182,235,5,5,60,208,5,5,158,201,5,5,180,182,5,5,112,237,5,5,166,206,5,5,106,177,5,5,110,240,5,5,148,229,5,5,171,206,5,5,241,211,5,5,179,203,5,5,164,168,5,5,159,178,5,5,249,227,5,5,134,222,5,5,140,234,5,5,128,176,5,5,28,235,5,5,216,245,5,5,186,206,5,5,184,195,5,5,187,206,5,5,165,221,5,5,167,221,5,5,22,185,5,5,151,167,5,5,174,247,5,5,37,223,5,5,116,192,5,5,192,170,5,5,169,221,5,5,252,246,5,5,22,178,5,5,218,201,5,5,191,214,5,5,0,144,5,5,62,237,5,5,63,202,5,5,2,211,5,5,232,219,5,5,79,237,5,5,247,240,5,5,91,222,5,5,40,249,5,5,71,199,5,5,179,198,5,5,219,214,5,5,108,234,5,5,15,165,5,5,234,164,5,5,20,205,5,5,228,239,5,5,238,178,5,5,57,228,5,5,23,229,5,5,8,175,5,5,172,176,5,5,173,221,5,5,243,182,5,5,11,223,5,5,12,193,5,5,70,187,5,5,107,209,5,5,6,172,5,5,254,163,5,5,26,181,5,5,179,235,5,5,106,174,5,5,241,233,5,5,134,164,5,5,255,166,5,5,27,175,5,5,181,231,5,5,239,176,5,5,113,189,5,5,247,231,5,5,144,184,5,5,107,174,5,5,74,192,5,5,15,173,5,5,20,203,5,5,139,192,5,5,60,173,5,5,19,227,5,5,53,170,5,5,189,166,5,5,244,180,5,5,209,204,5,5,137,212,5,5,237,190,5,5,25,172,5,5,196,165,5,5,141,190,5,5,41,194,5,5,172,211,5,5,43,223,5,5,134,243,5,5,241,241,5,5,150,215,5,5,239,164,5,5,143,212,5,5,57,196,5,5,133,176,5,5,197,214,5,5,176,205,5,5,72,212,5,5,81,237,5,5,189,230,5,5,131,172,5,5,5,197,5,5,235,221,5,5,212,182,5,5,229,201,5,5,31,175,5,5,185,198,5,5,246,233,5,5,252,222,5,5,154,195,5,5,52,185,5,5,35,165,5,5,216,227,5,5,71,176,5,5,88,221,5,5,248,233,5,5,43,174,5,5,146,249,5,5,219,181,5,5,162,166,5,5,191,186,5,5,120,186,5,5,27,207,5,5,88,194,5,5,39,205,5,5,96,198,5,5,183,182,5,5,206,213,5,5,252,218,5,5,116,225,5,5,63,237,5,5,82,227,5,5,241,221,5,5,248,232,5,5,204,214,5,5,235,227,5,5,153,181,5,5,249,233,5,5,187,242,5,5,49,192,5,5,88,196,5,5,126,192,5,5,31,224,5,5,50,197,5,5,208,192,5,5,147,249,5,5,142,237,5,5,87,210,5,5,205,214,5,5,40,205,5,5,44,167,5,5,56,185,5,5,105,232,5,5,240,164,5,5,58,165,5,5,59,165,5,5,209,191,5,5,119,179,5,5,201,193,5,5,152,247,5,5,229,204,5,5,164,175,5,5,22,193,5,5,48,223,5,5,95,221,5,5,140,211,5,5,163,227,5,5,40,220,5,5,40,190,5,5,107,163,5,5,242,201,5,5,231,188,5,5,64,237,5,5,63,208,5,5,133,174,5,5,89,219,5,5,23,193,5,5,59,197,5,5,134,210,5,5,94,210,5,5,64,208,5,5,40,226,5,5,89,194,5,5,12,249,5,5,253,233,5,5,224,232,5,5,141,163,5,5,255,231,5,5,112,209,5,5,70,182,5,5,98,190,5,5,243,175,5,5,156,214,5,5,242,230,5,5,120,205,5,5,114,217,5,5,203,165,5,5,84,237,5,5,53,216,5,5,158,215,5,5,202,168,5,5,198,220,5,5,129,216,5,5,20,199,5,5,188,239,5,5,244,221,5,5,192,248,5,5,86,226,5,5,99,191,5,5,7,245,5,5,251,178,5,5,191,229,5,5,97,202,5,5,170,203,5,5,60,201,5,5,130,216,5,5,13,170,5,5,67,173,5,5,62,226,5,5,146,222,5,5,103,168,5,5,217,173,5,5,177,221,5,5,61,201,5,5,116,209,5,5,36,198,5,5,228,209,5,5,161,171,5,5,186,210,5,5,102,193,5,5,168,196,5,5,115,227,5,5,4,186,5,5,155,249,5,5,139,197,5,5,94,180,5,5,229,248,5,5,13,224,5,5,15,192,5,5,190,172,5,5,243,230,5,5,98,221,5,5,63,192,5,5,253,183,5,5,190,210,5,5,208,214,5,5,19,235,5,5,32,191,5,5,171,167,5,5,30,178,5,5,106,187,5,5,79,165,5,5,59,222,5,5,176,225,5,5,218,227,5,5,53,223,5,5,249,221,5,5,48,211,5,5,246,190,5,5,31,186,5,5,239,204,5,5,147,166,5,5,213,186,5,5,126,200,5,5,85,165,5,5,188,176,5,5,66,235,5,5,151,242,5,5,175,167,5,5,89,234,5,5,148,222,5,5,13,168,5,5,87,168,5,5,188,175,5,5,149,248,5,5,136,171,5,5,117,182,5,5,9,232,5,5,219,227,5,5,55,194,5,5,197,239,5,5,88,199,5,5,146,224,5,5,159,195,5,5,164,234,5,5,207,168,5,5,89,232,5,5,8,202,5,5,28,194,5,5,192,236,5,5,6,186,5,5,3,234,5,5,60,190,5,5,83,184,5,5,214,236,5,5,20,235,5,5,117,177,5,5,216,236,5,5,27,185,5,5,177,178,5,5,82,189,5,5,169,214,5,5,127,163,5,5,121,171,5,5,220,227,5,5,118,176,5,5,250,187,5,5,253,175,5,5,184,177,5,5,181,174,5,5,58,205,5,5,18,172,5,5,175,196,5,5,116,175,5,5,17,204,5,5,129,176,5,5,74,201,5,5,85,237,5,5,186,185,5,5,124,232,5,5,175,214,5,5,68,190,5,5,106,227,5,5,125,232,5,5,70,209,5,5,216,166,5,5,71,209,5,5,217,166,5,5,147,192,5,5,101,207,5,5,46,178,5,5,69,190,5,5,199,242,5,5,142,163,5,5,77,176,5,5,15,236,5,5,4,222,5,5,255,190,5,5,103,210,5,5,162,188,5,5,148,166,5,5,70,220,5,5,79,185,5,5,117,227,5,5,46,186,5,5,178,196,5,5,249,247,5,5,237,248,5,5,236,197,5,5,206,220,5,5,131,179,5,5,241,180,5,5,12,184,5,5,47,224,5,5,114,202,5,5,219,240,5,5,72,209,5,5,146,180,5,5,154,222,5,5,72,220,5,5,254,172,5,5,75,236,5,5,71,220,5,5,198,210,5,5,74,222,5,5,148,180,5,5,78,190,5,5,216,189,5,5,72,205,5,5,72,182,5,5,203,244,5,5,172,248,5,5,84,185,5,5,15,191,5,5,128,209,5,5,168,188,5,5,54,186,5,5,112,210,5,5,243,248,5,5,224,222,5,5,230,211,5,5,169,188,5,5,213,165,5,5,181,178,5,5,63,233,5,5,243,186,5,5,153,235,5,5,117,190,5,5,204,244,5,5,245,248,5,5,76,222,5,5,182,248,5,5,68,171,5,5,165,176,5,5,10,173,5,5,141,228,5,5,131,219,5,5,149,228,5,5,214,184,5,5,98,197,5,5,144,185,5,5,47,215,5,5,175,231,5,5,151,183,5,5,36,235,5,5,58,221,5,5,71,210,5,5,204,219,5,5,235,164,5,5,91,164,5,5,101,245,5,5,128,227,5,5,212,195,5,5,52,230,5,5,125,173,5,5,16,165,5,5,233,234,5,5,253,243,5,5,136,219,5,5,67,223,5,5,147,179,5,5,98,199,5,5,0,145,5,5,71,187,5,5,121,192,5,5,67,207,5,5,202,166,5,5,116,169,5,5,144,234,5,5,80,220,5,5,57,220,5,5,179,186,5,5,152,236,5,5,55,181,5,5,72,187,5,5,223,212,5,5,157,236,5,5,159,201,5,5,181,182,5,5,128,231,5,5,242,233,5,5,220,248,5,5,17,220,5,5,228,188,5,5,178,222,5,5,162,163,5,5,221,185,5,5,134,173,5,5,38,239,5,5,173,211,5,5,178,197,5,5,47,189,5,5,210,215,5,5,120,174,5,5,48,189,5,5,96,234,5,5,99,206,5,5,6,187,5,5,223,248,5,5,41,190,5,5,253,206,5,5,210,208,5,5,247,234,5,5,175,163,5,5,20,221,5,5,232,188,5,5,146,233,5,5,103,206,5,5,183,193,5,5,161,199,5,5,90,236,5,5,91,236,5,5,91,180,5,5,223,165,5,5,42,230,5,5,218,171,5,5,37,198,5,5,237,216,5,5,147,233,5,5,21,199,5,5,121,205,5,5,123,232,5,5,188,233,5,5,204,186,5,5,95,214,5,5,52,174,5,5,171,184,5,5,242,163,5,5,66,193,5,5,11,215,5,5,16,192,5,5,95,180,5,5,47,210,5,5,96,203,5,5,33,234,5,5,182,222,5,5,98,180,5,5,45,171,5,5,93,236,5,5,139,173,5,5,63,232,5,5,222,195,5,5,68,206,5,5,78,169,5,5,94,236,5,5,95,236,5,5,176,184,5,5,25,213,5,5,54,189,5,5,69,206,5,5,98,196,5,5,145,163,5,5,196,200,5,5,167,229,5,5,152,233,5,5,236,215,5,5,178,184,5,5,120,182,5,5,17,184,5,5,147,187,5,5,21,233,5,5,196,176,5,5,20,184,5,5,59,181,5,5,100,186,5,5,86,171,5,5,106,235,5,5,125,204,5,5,108,213,5,5,195,194,5,5,105,221,5,5,127,204,5,5,99,242,5,5,167,202,5,5,168,223,5,5,51,220,5,5,221,217,5,5,191,248,5,5,144,201,5,5,144,247,5,5,99,197,5,5,193,246,5,5,129,230,5,5,53,247,5,5,26,247,5,5,13,210,5,5,240,182,5,5,114,231,5,5,218,179,5,5,54,184,5,5,228,172,5,5,171,202,5,5,73,229,5,5,98,226,5,5,211,167,5,5,244,220,5,5,129,227,5,5,149,201,5,5,167,218,5,5,64,202,5,5,78,173,5,5,139,249,5,5,130,230,5,5,9,176,5,5,171,205,5,5,148,236,5,5,176,173,5,5,224,236,5,5,234,234,5,5,150,204,5,5,213,231,5,5,34,163,5,5,187,205,5,5,35,174,5,5,230,218,5,5,206,233,5,5,184,231,5,5,22,224,5,5,154,201,5,5,214,231,5,5,147,185,5,5,124,213,5,5,108,174,5,5,70,214,5,5,157,228,5,5,49,163,5,5,229,221,5,5,168,211,5,5,114,189,5,5,230,221,5,5,6,228,5,5,159,192,5,5,66,244,5,5,109,174,5,5,33,182,5,5,219,220,5,5,98,175,5,5,217,225,5,5,196,226,5,5,211,222,5,5,96,215,5,5,236,232,5,5,86,208,5,5,109,164,5,5,205,211,5,5,117,169,5,5,143,229,5,5,37,233,5,5,49,197,5,5,91,206,5,5,138,230,5,5,186,198,5,5,77,214,5,5,160,203,5,5,144,221,5,5,26,224,5,5,134,193,5,5,163,163,5,5,156,207,5,5,32,197,5,5,10,199,5,5,217,233,5,5,175,200,5,5,220,192,5,5,159,179,5,5,161,203,5,5,31,196,5,5,44,204,5,5,73,212,5,5,230,191,5,5,142,190,5,5,170,217,5,5,179,164,5,5,206,215,5,5,116,174,5,5,254,191,5,5,22,179,5,5,62,231,5,5,56,181,5,5,135,243,5,5,120,185,5,5,78,214,5,5,252,207,5,5,19,217,5,5,224,191,5,5,41,177,5,5,213,182,5,5,116,235,5,5,58,206,5,5,72,216,5,5,86,200,5,5,157,207,5,5,117,218,5,5,41,205,5,5,3,208,5,5,18,223,5,5,207,171,5,5,224,220,5,5,73,191,5,5,117,225,5,5,32,210,5,5,86,229,5,5,153,164,5,5,214,182,5,5,149,214,5,5,179,200,5,5,208,210,5,5,241,192,5,5,9,215,5,5,175,180,5,5,225,179,5,5,22,214,5,5,162,201,5,5,135,213,5,5,121,174,5,5,135,181,5,5,3,237,5,5,142,178,5,5,235,196,5,5,44,174,5,5,100,206,5,5,77,199,5,5,87,218,5,5,188,242,5,5,106,208,5,5,242,173,5,5,195,202,5,5,43,217,5,5,148,230,5,5,104,233,5,5,172,224,5,5,89,178,5,5,98,187,5,5,96,191,5,5,50,189,5,5,34,224,5,5,105,212,5,5,9,228,5,5,211,208,5,5,212,208,5,5,165,222,5,5,213,208,5,5,223,246,5,5,183,210,5,5,218,215,5,5,29,228,5,5,31,246,5,5,17,209,5,5,188,179,5,5,224,246,5,5,199,192,5,5,100,247,5,5,185,164,5,5,99,222,5,5,24,234,5,5,184,193,5,5,248,234,5,5,211,190,5,5,92,188,5,5,18,209,5,5,144,220,5,5,60,165,5,5,8,226,5,5,134,189,5,5,180,171,5,5,140,208,5,5,113,209,5,5,90,181,5,5,105,233,5,5,138,194,5,5,106,232,5,5,240,212,5,5,141,231,5,5,173,216,5,5,63,189,5,5,198,205,5,5,164,172,5,5,252,230,5,5,243,171,5,5,120,248,5,5,135,233,5,5,19,173,5,5,97,191,5,5,29,217,5,5,120,244,5,5,3,229,5,5,67,209,5,5,35,217,5,5,54,216,5,5,233,204,5,5,69,195,5,5,221,215,5,5,34,231,5,5,181,171,5,5,248,201,5,5,175,178,5,5,170,226,5,5,9,177,5,5,245,171,5,5,152,171,5,5,64,249,5,5,87,214,5,5,30,164,5,5,139,235,5,5,229,209,5,5,204,165,5,5,206,200,5,5,224,192,5,5,59,235,5,5,212,171,5,5,140,246,5,5,231,174,5,5,95,246,5,5,214,179,5,5,62,192,5,5,162,171,5,5,29,214,5,5,202,188,5,5,108,233,5,5,248,165,5,5,195,249,5,5,146,243,5,5,180,180,5,5,115,193,5,5,19,219,5,5,196,249,5,5,73,225,5,5,95,224,5,5,109,175,5,5,212,213,5,5,65,249,5,5,137,233,5,5,210,216,5,5,234,244,5,5,170,246,5,5,225,192,5,5,115,217,5,5,182,244,5,5,246,205,5,5,161,240,5,5,105,222,5,5,219,183,5,5,149,164,5,5,67,193,5,5,68,167,5,5,68,220,5,5,240,204,5,5,163,233,5,5,85,212,5,5,2,230,5,5,120,249,5,5,213,213,5,5,223,234,5,5,11,213,5,5,80,231,5,5,165,179,5,5,239,174,5,5,156,249,5,5,176,224,5,5,35,192,5,5,224,230,5,5,26,199,5,5,52,232,5,5,139,180,5,5,226,215,5,5,191,236,5,5,230,220,5,5,149,233,5,5,166,179,5,5,106,201,5,5,30,234,5,5,86,165,5,5,11,174,5,5,165,234,5,5,214,186,5,5,217,236,5,5,251,242,5,5,95,213,5,5,151,233,5,5,95,185,5,5,11,208,5,5,192,210,5,5,153,170,5,5,134,218,5,5,82,191,5,5,108,172,5,5,88,168,5,5,151,188,5,5,46,171,5,5,179,217,5,5,138,233,5,5,9,202,5,5,68,228,5,5,45,237,5,5,26,173,5,5,102,191,5,5,193,164,5,5,117,239,5,5,23,236,5,5,97,170,5,5,197,241,5,5,78,211,5,5,13,201,5,5,239,215,5,5,235,202,5,5,167,227,5,5,27,215,5,5,72,230,5,5,180,217,5,5,49,237,5,5,153,209,5,5,205,232,5,5,254,232,5,5,96,218,5,5,116,228,5,5,96,236,5,5,248,188,5,5,156,248,5,5,249,172,5,5,251,187,5,5,14,226,5,5,73,233,5,5,141,205,5,5,31,230,5,5,148,224,5,5,4,231,5,5,28,215,5,5,133,200,5,5,153,199,5,5,59,233,5,5,26,213,5,5,80,211,5,5,209,249,5,5,54,175,5,5,34,229,5,5,137,200,5,5,157,213,5,5,246,235,5,5,63,205,5,5,32,206,5,5,197,200,5,5,75,232,5,5,70,235,5,5,110,214,5,5,74,204,5,5,96,165,5,5,61,176,5,5,182,240,5,5,207,184,5,5,51,237,5,5,183,240,5,5,222,227,5,5,217,216,5,5,239,202,5,5,33,166,5,5,162,210,5,5,47,186,5,5,241,168,5,5,205,217,5,5,61,233,5,5,241,208,5,5,184,167,5,5,3,242,5,5,151,169,5,5,159,185,5,5,41,214,5,5,62,233,5,5,46,197,5,5,24,242,5,5,40,217,5,5,102,185,5,5,76,215,5,5,113,224,5,5,118,204,5,5,217,189,5,5,114,224,5,5,149,244,5,5,14,234,5,5,167,230,5,5,79,215,5,5,30,233,5,5,64,233,5,5,156,190,5,5,244,186,5,5,176,175,5,5,89,186,5,5,114,185,5,5,214,188,5,5,102,235,5,5,121,204,5,5,140,247,5,5,130,201,5,5,42,220,5,5,39,215,5,5,134,191,5,5,190,248,5,5,43,202,5,5,187,246,5,5,21,197,5,5,152,202,5,5,116,230,5,5,51,246,5,5,132,249,5,5,135,201,5,5,95,226,5,5,199,167,5,5,121,227,5,5,182,192,5,5,235,182,5,5,122,230,5,5,140,233,5,5,195,190,5,5,72,173,5,5,151,218,5,5,21,247,5,5,169,173,5,5,211,221,5,5,234,220,5,5,51,184,5,5,62,229,5,5,183,215,5,5,155,192,5,5,54,214,5,5,75,174,5,5,185,188,5,5,230,232,5,5,142,228,5,5,114,213,5,5,65,218,5,5,202,222,5,5,47,220,5,5,105,164,5,5,76,174,5,5,206,225,5,5,2,228,5,5,36,240,5,5,80,206,5,5,84,175,5,5,152,164,5,5,52,231,5,5,145,203,5,5,25,196,5,5,29,230,5,5,27,177,5,5,177,198,5,5,72,200,5,5,253,191,5,5,162,217,5,5,55,206,5,5,135,190,5,5,134,207,5,5,33,204,5,5,208,182,5,5,234,192,5,5,133,214,5,5,247,207,5,5,16,215,5,5,122,213,5,5,9,237,5,5,151,179,5,5,172,202,5,5,162,180,5,5,222,201,5,5,11,217,5,5,115,189,5,5,99,244,5,5,12,217,5,5,13,209,5,5,158,172,5,5,2,226,5,5,2,229,5,5,132,194,5,5,32,229,5,5,19,246,5,5,177,171,5,5,26,228,5,5,189,164,5,5,23,224,5,5,184,179,5,5,88,188,5,5,104,212,5,5,89,233,5,5,139,220,5,5,212,246,5,5,90,191,5,5,93,222,5,5,120,231,5,5,64,195,5,5,47,216,5,5,213,204,5,5,206,171,5,5,67,186,5,5,170,180,5,5,160,171,5,5,230,201,5,5,112,249,5,5,87,200,5,5,117,235,5,5,84,178,5,5,167,178,5,5,244,165,5,5,207,215,5,5,58,192,5,5,95,222,5,5,204,200,5,5,249,176,5,5,72,191,5,5,199,165,5,5,237,171,5,5,48,249,5,5,230,205,5,5,224,174,5,5,222,230,5,5,225,220,5,5,5,174,5,5,213,234,5,5,27,192,5,5,85,224,5,5,192,186,5,5,112,240,5,5,224,204,5,5,17,166,5,5,70,168,5,5,144,170,5,5,89,185,5,5,113,244,5,5,211,236,5,5,92,170,5,5,22,236,5,5,30,214,5,5,239,187,5,5,104,228,5,5,197,232,5,5,23,206,5,5,161,210,5,5,148,209,5,5,188,200,5,5,67,204,5,5,60,233,5,5,230,172,5,5,55,214,5,5,189,192,5,5,233,172,5,5,8,212,5,5,234,172,5,5,65,209,5,5,50,163,5,5,191,168,5,5,101,216,5,5,252,219,5,5,200,192,5,5,114,244,5,5,122,244,5,5,145,211,5,5,235,213,5,5,114,194,5,5,74,233,5,5,14,180,5,5,131,234,5,5,62,209,5,5,136,247,5,5,139,244,5,5,103,185,5,5,21,180,5,5,218,189,5,5,124,194,5,5,88,247,5,5,87,247,5,5,178,192,5,5,92,247,5,5,105,198,5,5,89,190,5,5,85,190,5,5,89,174,5,5,36,171,5,5,126,172,5,5,10,193,5,5,193,221,5,5,205,206,5,5,26,170,5,5,41,193,5,5,233,171,5,5,192,192,5,5,19,163,5,5,133,193,5,5,171,180,5,5,253,207,5,5,117,174,5,5,219,228,5,5,239,242,5,5,239,219,5,5,43,233,5,5,135,193,5,5,48,222,5,5,106,248,5,5,253,218,5,5,235,238,5,5,133,172,5,5,70,186,5,5,112,229,5,5,127,235,5,5,8,168,5,5,55,169,5,5,94,188,5,5,24,163,5,5,135,172,5,5,209,186,5,5,248,223,5,5,146,246,5,5,80,165,5,5,224,202,5,5,204,232,5,5,163,226,5,5,98,188,5,5,10,202,5,5,12,208,5,5,123,171,5,5,249,219,5,5,102,190,5,5,17,168,5,5,30,202,5,5,36,202,5,5,176,190,5,5,15,244,5,5,72,171,5,5,31,211,5,5,24,175,5,5,237,169,5,5,31,244,5,5,77,242,5,5,74,242,5,5,100,173,5,5,0,146,5,5,2,192,5,5,83,244,5,5,42,193,5,5,32,211,5,5,174,232,5,5,3,192,5,5,117,189,5,5,76,240,5,5,231,221,5,5,152,176,5,5,244,214,5,5,74,211,5,5,170,239,5,5,208,215,5,5,63,231,5,5,123,212,5,5,124,212,5,5,76,211,5,5,180,200,5,5,209,236,5,5,211,215,5,5,113,240,5,5,90,244,5,5,45,211,5,5,138,210,5,5,224,247,5,5,226,192,5,5,183,203,5,5,56,180,5,5,71,249,5,5,12,213,5,5,28,173,5,5,70,228,5,5,118,173,5,5,71,228,5,5,182,188,5,5,100,185,5,5,228,192,5,5,85,183,5,5,85,211,5,5,163,224,5,5,6,248,5,5,232,194,5,5,51,240,5,5,154,226,5,5,115,247,5,5,79,173,5,5,150,201,5,5,91,223,5,5,92,223,5,5,235,234,5,5,110,174,5,5,198,213,5,5,126,164,5,5,77,240,5,5,229,184,5,5,78,240,5,5,214,167,5,5,118,189,5,5,101,188,5,5,231,218,5,5,206,211,5,5,48,213,5,5,17,214,5,5,73,216,5,5,224,212,5,5,129,213,5,5,36,195,5,5,197,209,5,5,88,200,5,5,17,200,5,5,150,214,5,5,161,227,5,5,163,201,5,5,18,206,5,5,181,176,5,5,249,234,5,5,188,172,5,5,165,175,5,5,164,227,5,5,108,223,5,5,245,221,5,5,50,205,5,5,116,217,5,5,113,223,5,5,104,168,5,5,109,233,5,5,200,246,5,5,29,200,5,5,38,198,5,5,140,197,5,5,168,197,5,5,151,198,5,5,119,238,5,5,73,168,5,5,171,240,5,5,152,188,5,5,40,198,5,5,161,238,5,5,249,188,5,5,104,167,5,5,206,209,5,5,122,238,5,5,250,172,5,5,172,240,5,5,138,200,5,5,126,217,5,5,173,175,5,5,2,242,5,5,193,185,5,5,192,185,5,5,119,195,5,5,64,170,5,5,164,219,5,5,177,208,5,5,72,192,5,5,75,192,5,5,76,192,5,5,68,177,5,5,42,177,5,5,26,239,5,5,173,229,5,5,28,231,5,5,24,183,5,5,25,183,5,5,155,178,5,5,117,185,5,5,130,181,5,5,176,231,5,5,217,192,5,5,7,224,5,5,252,197,5,5,140,249,5,5,20,163,5,5,215,167,5,5,167,239,5,5,180,235,5,5,251,211,5,5,21,203,5,5,68,207,5,5,166,199,5,5,162,225,5,5,209,185,5,5,220,190,5,5,88,202,5,5,54,180,5,5,191,238,5,5,241,185,5,5,88,183,5,5,46,206,5,5,128,167,5,5,90,219,5,5,245,185,5,5,15,202,5,5,216,185,5,5,221,199,5,5,25,242,5,5,153,169,5,5,244,199,5,5,53,239,5,5,19,240,5,5,195,177,5,5,61,241,5,5,6,175,5,5,111,237,5,5,224,210,5,5,141,249,5,5,69,223,5,5,232,175,5,5,233,175,5,5,151,201,5,5,235,192,5,5,106,218,5,5,87,167,5,5,233,183,5,5,235,175,5,5,220,220,5,5,193,223,5,5,119,189,5,5,83,221,5,5,79,242,5,5,157,245,5,5,225,187,5,5,238,190,5,5,112,218,5,5,114,184,5,5,18,181,5,5,39,239,5,5,41,241,5,5,249,180,5,5,109,193,5,5,42,217,5,5,124,188,5,5,5,198,5,5,50,229,5,5,202,187,5,5,155,168,5,5,104,206,5,5,82,207,5,5,241,164,5,5,220,176,5,5,169,193,5,5,34,247,5,5,30,217,5,5,162,168,5,5,51,235,5,5,230,177,5,5,168,183,5,5,157,181,5,5,30,207,5,5,60,235,5,5,107,196,5,5,215,188,5,5,169,196,5,5,61,235,5,5,143,188,5,5,131,247,5,5,172,196,5,5,148,188,5,5,153,188,5,5,67,235,5,5,120,238,5,5,29,229,5,5,119,237,5,5,138,181,5,5,176,196,5,5,5,184,5,5,135,218,5,5,255,175,5,5,129,184,5,5,92,209,5,5,198,183,5,5,140,181,5,5,141,181,5,5,16,191,5,5,51,248,5,5,47,248,5,5,233,219,5,5,177,235,5,5,144,236,5,5,114,240,5,5,167,236,5,5,185,235,5,5,241,219,5,5,242,219,5,5,56,230,5,5,3,240,5,5,10,185,5,5,205,201,5,5,250,209,5,5,194,195,5,5,51,234,5,5,137,191,5,5,68,163,5,5,210,200,5,5,31,201,5,5,217,239,5,5,123,230,5,5,212,214,5,5,212,230,5,5,34,220,5,5,90,249,5,5,33,178,5,5,183,192,5,5,49,231,5,5,108,192,5,5,128,223,5,5,189,245,5,5,4,225,5,5,36,193,5,5,66,218,5,5,77,198,5,5,24,174,5,5,174,172,5,5,99,173,5,5,229,166,5,5,131,167,5,5,198,204,5,5,161,173,5,5,156,222,5,5,34,242,5,5,237,182,5,5,11,239,5,5,195,195,5,5,60,230,5,5,196,194,5,5,57,248,5,5,52,247,5,5,158,241,5,5,167,208,5,5,241,167,5,5,150,210,5,5,179,212,5,5,180,212,5,5,198,172,5,5,196,195,5,5,123,206,5,5,137,179,5,5,205,228,5,5,225,222,5,5,45,221,5,5,255,213,5,5,208,228,5,5,121,246,5,5,52,220,5,5,28,177,5,5,7,176,5,5,201,172,5,5,0,162,5,5,75,163,5,5,202,211,5,5,78,181,5,5,206,163,5,5,105,193,5,5,104,179,5,5,177,231,5,5,7,196,5,5,71,218,5,5,204,183,5,5,178,168,5,5,200,231,5,5,160,174,5,5,132,167,5,5,163,220,5,5,89,215,5,5,9,233,5,5,231,166,5,5,71,203,5,5,41,229,5,5,72,218,5,5,252,163,5,5,71,172,5,5,165,211,5,5,250,198,5,5,3,195,5,5,64,223,5,5,235,243,5,5,186,216,5,5,6,244,5,5,232,190,5,5,13,179,5,5,246,194,5,5,191,189,5,5,148,206,5,5,150,184,5,5,126,242,5,5,108,167,5,5,48,196,5,5,161,239,5,5,165,194,5,5,189,197,5,5,143,191,5,5,16,179,5,5,7,223,5,5,245,203,5,5,39,218,5,5,40,218,5,5,34,239,5,5,242,238,5,5,203,198,5,5,108,168,5,5,142,183,5,5,201,231,5,5,217,193,5,5,104,225,5,5,47,181,5,5,77,218,5,5,236,234,5,5,200,169,5,5,9,214,5,5,237,234,5,5,10,214,5,5,181,169,5,5,180,169,5,5,65,202,5,5,118,214,5,5,101,184,5,5,85,196,5,5,210,235,5,5,188,232,5,5,178,208,5,5,67,183,5,5,77,171,5,5,191,184,5,5,163,190,5,5,237,246,5,5,89,163,5,5,55,247,5,5,213,246,5,5,245,214,5,5,40,204,5,5,161,206,5,5,80,242,5,5,196,198,5,5,192,234,5,5,197,187,5,5,58,228,5,5,173,181,5,5,203,169,5,5,101,226,5,5,212,228,5,5,153,210,5,5,68,175,5,5,219,207,5,5,153,234,5,5,246,214,5,5,27,216,5,5,12,182,5,5,11,167,5,5,108,225,5,5,35,183,5,5,223,168,5,5,205,175,5,5,13,182,5,5,43,184,5,5,84,183,5,5,26,168,5,5,47,193,5,5,91,190,5,5,73,187,5,5,172,188,5,5,49,221,5,5,244,234,5,5,111,203,5,5,62,189,5,5,206,229,5,5,5,168,5,5,147,165,5,5,208,190,5,5,109,168,5,5,121,185,5,5,158,196,5,5,34,226,5,5,38,176,5,5,107,181,5,5,36,183,5,5,95,206,5,5,7,183,5,5,241,184,5,5,98,241,5,5,139,242,5,5,139,230,5,5,214,228,5,5,4,226,5,5,174,174,5,5,170,174,5,5,215,206,5,5,176,172,5,5,36,211,5,5,239,246,5,5,23,179,5,5,6,168,5,5,165,193,5,5,97,233,5,5,220,177,5,5,203,245,5,5,244,169,5,5,167,183,5,5,141,222,5,5,103,223,5,5,58,234,5,5,96,190,5,5,188,238,5,5,252,176,5,5,209,238,5,5,126,216,5,5,73,183,5,5,149,229,5,5,226,229,5,5,114,183,5,5,189,249,5,5,234,222,5,5,58,230,5,5,239,237,5,5,4,236,5,5,220,181,5,5,149,241,5,5,107,205,5,5,82,246,5,5,49,204,5,5,203,247,5,5,28,203,5,5,171,178,5,5,46,165,5,5,14,225,5,5,225,174,5,5,212,215,5,5,214,183,5,5,208,171,5,5,160,245,5,5,135,180,5,5,91,182,5,5,156,164,5,5,157,210,5,5,75,191,5,5,161,245,5,5,77,236,5,5,84,180,5,5,173,236,5,5,100,222,5,5,183,191,5,5,124,240,5,5,108,163,5,5,231,187,5,5,89,202,5,5,9,168,5,5,26,214,5,5,12,192,5,5,79,191,5,5,38,166,5,5,182,238,5,5,19,225,5,5,46,190,5,5,170,193,5,5,111,167,5,5,21,226,5,5,157,165,5,5,44,206,5,5,49,174,5,5,92,180,5,5,75,169,5,5,253,212,5,5,123,222,5,5,100,191,5,5,8,204,5,5,227,244,5,5,52,191,5,5,21,219,5,5,88,217,5,5,90,226,5,5,30,189,5,5,202,182,5,5,172,167,5,5,220,183,5,5,24,226,5,5,243,187,5,5,250,234,5,5,239,193,5,5,165,214,5,5,130,180,5,5,25,173,5,5,132,218,5,5,10,204,5,5,110,228,5,5,244,198,5,5,251,234,5,5,46,231,5,5,55,216,5,5,15,237,5,5,138,173,5,5,129,244,5,5,69,228,5,5,2,222,5,5,18,176,5,5,96,196,5,5,200,184,5,5,150,182,5,5,154,188,5,5,87,165,5,5,230,249,5,5,184,207,5,5,234,225,5,5,173,240,5,5,239,207,5,5,250,184,5,5,180,188,5,5,24,236,5,5,151,182,5,5,70,193,5,5,231,208,5,5,255,234,5,5,43,166,5,5,202,217,5,5,83,183,5,5,211,245,5,5,192,232,5,5,234,215,5,5,169,165,5,5,176,216,5,5,186,196,5,5,253,184,5,5,153,242,5,5,213,189,5,5,222,199,5,5,217,231,5,5,129,190,5,5,228,211,5,5,193,232,5,5,177,190,5,5,179,183,5,5,218,231,5,5,179,224,5,5,66,210,5,5,192,245,5,5,182,194,5,5,177,232,5,5,247,188,5,5,176,194,5,5,189,231,5,5,26,204,5,5,234,183,5,5,63,224,5,5,192,202,5,5,8,192,5,5,64,224,5,5,182,171,5,5,254,183,5,5,178,218,5,5,201,218,5,5,172,191,5,5,100,205,5,5,43,177,5,5,83,218,5,5,248,214,5,5,120,179,5,5,201,220,5,5,157,204,5,5,184,215,5,5,168,247,5,5,129,223,5,5,221,241,5,5,182,247,5,5,155,226,5,5,130,213,5,5,131,213,5,5,172,204,5,5,233,247,5,5,32,248,5,5,174,216,5,5,31,207,5,5,179,204,5,5,33,216,5,5,177,227,5,5,183,227,5,5,214,227,5,5,148,204,5,5,62,227,5,5,232,179,5,5,81,229,5,5,89,227,5,5,111,181,5,5,46,180,5,5,7,169,5,5,8,169,5,5,91,194,5,5,154,199,5,5,121,181,5,5,64,226,5,5,229,229,5,5,207,213,5,5,68,245,5,5,254,219,5,5,131,175,5,5,54,226,5,5,50,228,5,5,219,239,5,5,68,173,5,5,155,166,5,5,140,179,5,5,14,173,5,5,92,164,5,5,55,226,5,5,180,198,5,5,177,173,5,5,70,164,5,5,236,164,5,5,82,190,5,5,208,222,5,5,90,205,5,5,117,234,5,5,120,189,5,5,174,221,5,5,248,231,5,5,108,178,5,5,90,163,5,5,97,215,5,5,201,191,5,5,56,226,5,5,199,213,5,5,195,189,5,5,144,212,5,5,119,167,5,5,225,212,5,5,51,196,5,5,122,174,5,5,85,232,5,5,243,173,5,5,193,186,5,5,236,227,5,5,214,247,5,5,121,186,5,5,175,181,5,5,107,248,5,5,83,246,5,5,109,163,5,5,12,171,5,5,94,184,5,5,221,206,5,5,62,201,5,5,18,228,5,5,70,195,5,5,249,165,5,5,105,172,5,5,54,177,5,5,224,175,5,5,172,164,5,5,139,223,5,5,162,240,5,5,57,236,5,5,123,234,5,5,42,234,5,5,246,185,5,5,114,175,5,5,90,217,5,5,253,241,5,5,164,226,5,5,146,176,5,5,78,176,5,5,71,211,5,5,250,189,5,5,245,239,5,5,113,202,5,5,146,205,5,5,223,199,5,5,252,170,5,5,242,208,5,5,252,189,5,5,219,189,5,5,117,224,5,5,248,229,5,5,172,192,5,5,40,189,5,5,199,204,5,5,243,204,5,5,222,235,5,5,33,243,5,5,111,174,5,5,163,168,5,5,76,243,5,5,95,243,5,5,46,234,5,5,55,234,5,5,4,240,5,5,20,185,5,5,127,181,5,5,237,203,5,5,55,238,5,5,14,183,5,5,19,181,5,5,238,203,5,5,130,203,5,5,149,167,5,5,191,246,5,5,20,240,5,5,205,223,5,5,174,171,5,5,69,171,5,5,109,192,5,5,62,210,5,5,54,248,5,5,55,248,5,5,245,227,5,5,127,212,5,5,34,178,5,5,63,199,5,5,5,209,5,5,189,170,5,5,190,231,5,5,73,200,5,5,247,236,5,5,183,218,5,5,39,216,5,5,242,167,5,5,77,174,5,5,141,182,5,5,56,246,5,5,18,245,5,5,67,218,5,5,34,209,5,5,45,228,5,5,24,247,5,5,167,210,5,5,91,230,5,5,78,174,5,5,135,195,5,5,213,203,5,5,188,189,5,5,249,216,5,5,210,201,5,5,219,210,5,5,168,208,5,5,164,242,5,5,75,173,5,5,0,137,5,5,9,231,5,5,250,215,5,5,159,202,5,5,101,199,5,5,102,199,5,5,152,173,5,5,93,245,5,5,129,207,5,5,69,192,5,5,156,218,5,5,134,249,5,5,220,210,5,5,132,238,5,5,155,225,5,5,58,170,5,5,246,240,5,5,199,172,5,5,180,230,5,5,175,198,5,5,42,235,5,5,164,243,5,5,72,242,5,5,237,165,5,5,37,240,5,5,125,209,5,5,57,246,5,5,42,187,5,5,25,168,5,5,196,237,5,5,185,215,5,5,5,225,5,5,114,234,5,5,215,221,5,5,129,236,5,5,161,180,5,5,94,249,5,5,79,230,5,5,99,189,5,5,114,179,5,5,248,227,5,5,166,176,5,5,146,171,5,5,126,211,5,5,50,187,5,5,25,250,5,5,4,195,5,5,88,172,5,5,207,163,5,5,253,163,5,5,73,192,5,5,232,171,5,5,220,239,5,5,221,239,5,5,55,207,5,5,65,168,5,5,234,230,5,5,21,196,5,5,113,184,5,5,186,183,5,5,76,163,5,5,67,166,5,5,51,228,5,5,7,215,5,5,217,241,5,5,48,215,5,5,123,164,5,5,145,201,5,5,94,244,5,5,95,219,5,5,230,178,5,5,199,206,5,5,29,177,5,5,226,183,5,5,117,192,5,5,226,198,5,5,179,168,5,5,198,169,5,5,90,174,5,5,20,229,5,5,7,193,5,5,12,165,5,5,122,246,5,5,91,174,5,5,28,222,5,5,62,170,5,5,53,173,5,5,13,203,5,5,23,170,5,5,24,170,5,5,2,163,5,5,174,233,5,5,107,169,5,5,111,231,5,5,211,176,5,5,38,223,5,5,168,202,5,5,83,206,5,5,233,190,5,5,99,235,5,5,30,184,5,5,49,249,5,5,62,217,5,5,158,244,5,5,134,212,5,5,169,191,5,5,32,172,5,5,65,187,5,5,56,231,5,5,237,243,5,5,175,192,5,5,171,210,5,5,216,223,5,5,187,224,5,5,68,248,5,5,211,197,5,5,196,231,5,5,192,187,5,5,26,245,5,5,173,202,5,5,218,193,5,5,216,233,5,5,21,205,5,5,175,233,5,5,86,192,5,5,166,194,5,5,200,170,5,5,145,223,5,5,246,203,5,5,247,203,5,5,98,174,5,5,183,247,5,5,138,221,5,5,115,231,5,5,12,206,5,5,47,200,5,5,123,243,5,5,146,223,5,5,130,172,5,5,47,231,5,5,186,230,5,5,151,226,5,5,215,170,5,5,175,182,5,5,245,222,5,5,67,210,5,5,172,221,5,5,226,217,5,5,173,200,5,5,31,174,5,5,61,212,5,5,220,191,5,5,7,175,5,5,96,206,5,5,168,216,5,5,65,226,5,5,47,234,5,5,85,206,5,5,35,239,5,5,243,238,5,5,160,209,5,5,40,223,5,5,100,230,5,5,91,205,5,5,163,180,5,5,33,201,5,5,183,168,5,5,66,187,5,5,172,205,5,5,200,185,5,5,140,229,5,5,174,222,5,5,28,175,5,5,46,203,5,5,20,230,5,5,17,165,5,5,243,231,5,5,161,209,5,5,78,200,5,5,174,202,5,5,99,176,5,5,185,248,5,5,57,231,5,5,247,200,5,5,149,216,5,5,139,190,5,5,159,244,5,5,227,217,5,5,220,205,5,5,69,237,5,5,128,243,5,5,169,169,5,5,152,201,5,5,54,220,5,5,238,241,5,5,38,178,5,5,69,246,5,5,180,186,5,5,206,175,5,5,36,174,5,5,102,230,5,5,180,243,5,5,114,197,5,5,218,164,5,5,139,166,5,5,166,249,5,5,173,176,5,5,208,181,5,5,253,236,5,5,254,236,5,5,109,225,5,5,190,224,5,5,27,245,5,5,128,165,5,5,210,212,5,5,239,192,5,5,74,187,5,5,224,168,5,5,232,221,5,5,118,169,5,5,75,187,5,5,176,222,5,5,244,232,5,5,14,182,5,5,19,210,5,5,134,227,5,5,205,236,5,5,191,224,5,5,156,167,5,5,23,207,5,5,204,169,5,5,225,170,5,5,172,216,5,5,92,206,5,5,178,223,5,5,158,228,5,5,26,208,5,5,180,242,5,5,148,181,5,5,45,242,5,5,199,234,5,5,84,194,5,5,130,198,5,5,81,242,5,5,200,234,5,5,49,203,5,5,85,247,5,5,153,236,5,5,55,184,5,5,231,227,5,5,202,215,5,5,143,186,5,5,112,174,5,5,161,237,5,5,119,169,5,5,64,247,5,5,155,203,5,5,104,183,5,5,92,172,5,5,176,195,5,5,48,185,5,5,121,188,5,5,246,226,5,5,173,245,5,5,248,181,5,5,51,215,5,5,197,199,5,5,46,242,5,5,161,244,5,5,100,244,5,5,235,194,5,5,102,226,5,5,213,170,5,5,216,170,5,5,218,233,5,5,218,246,5,5,97,206,5,5,250,176,5,5,208,211,5,5,241,178,5,5,214,204,5,5,103,232,5,5,14,193,5,5,230,184,5,5,24,190,5,5,248,206,5,5,133,246,5,5,27,208,5,5,241,183,5,5,206,196,5,5,119,197,5,5,225,168,5,5,36,232,5,5,25,192,5,5,182,193,5,5,118,174,5,5,209,190,5,5,246,224,5,5,27,224,5,5,99,237,5,5,37,226,5,5,142,220,5,5,166,170,5,5,28,234,5,5,3,163,5,5,185,186,5,5,213,181,5,5,53,163,5,5,135,198,5,5,50,164,5,5,18,211,5,5,235,207,5,5,226,212,5,5,229,210,5,5,216,176,5,5,112,203,5,5,226,168,5,5,102,176,5,5,189,205,5,5,164,209,5,5,115,179,5,5,221,192,5,5,115,199,5,5,15,193,5,5,124,189,5,5,162,172,5,5,230,210,5,5,207,238,5,5,97,247,5,5,192,164,5,5,38,220,5,5,140,242,5,5,216,206,5,5,215,204,5,5,7,189,5,5,28,180,5,5,82,229,5,5,83,181,5,5,161,175,5,5,47,199,5,5,199,208,5,5,120,197,5,5,245,234,5,5,186,179,5,5,82,226,5,5,36,165,5,5,12,225,5,5,176,200,5,5,211,172,5,5,53,185,5,5,133,208,5,5,226,170,5,5,192,168,5,5,234,245,5,5,39,176,5,5,157,227,5,5,177,200,5,5,236,242,5,5,171,239,5,5,27,181,5,5,200,208,5,5,219,246,5,5,247,233,5,5,28,183,5,5,7,221,5,5,67,182,5,5,134,204,5,5,250,180,5,5,93,190,5,5,113,165,5,5,217,240,5,5,227,170,5,5,151,163,5,5,35,167,5,5,221,177,5,5,166,244,5,5,172,244,5,5,167,244,5,5,146,214,5,5,212,235,5,5,226,209,5,5,17,195,5,5,105,216,5,5,240,246,5,5,30,248,5,5,215,247,5,5,226,174,5,5,200,188,5,5,109,217,5,5,110,217,5,5,115,183,5,5,250,233,5,5,177,245,5,5,117,226,5,5,151,214,5,5,204,247,5,5,220,165,5,5,75,170,5,5,210,238,5,5,240,237,5,5,144,190,5,5,173,244,5,5,60,196,5,5,61,196,5,5,16,206,5,5,209,171,5,5,17,233,5,5,18,233,5,5,214,232,5,5,26,164,5,5,41,230,5,5,82,213,5,5,101,241,5,5,211,238,5,5,210,211,5,5,225,204,5,5,123,174,5,5,95,191,5,5,101,206,5,5,102,167,5,5,212,173,5,5,164,201,5,5,165,201,5,5,33,198,5,5,52,243,5,5,191,181,5,5,185,219,5,5,131,231,5,5,51,216,5,5,145,230,5,5,177,191,5,5,74,209,5,5,118,211,5,5,79,171,5,5,54,201,5,5,162,228,5,5,227,168,5,5,244,191,5,5,249,178,5,5,60,220,5,5,108,205,5,5,84,246,5,5,99,163,5,5,243,245,5,5,157,166,5,5,196,202,5,5,15,199,5,5,190,232,5,5,29,203,5,5,172,178,5,5,243,241,5,5,4,237,5,5,49,235,5,5,76,212,5,5,244,245,5,5,184,220,5,5,128,196,5,5,154,181,5,5,255,200,5,5,83,213,5,5,204,226,5,5,48,209,5,5,24,186,5,5,100,233,5,5,150,241,5,5,9,249,5,5,217,169,5,5,115,249,5,5,150,229,5,5,253,176,5,5,142,222,5,5,73,194,5,5,82,230,5,5,48,217,5,5,135,224,5,5,96,195,5,5,162,196,5,5,105,199,5,5,40,206,5,5,234,185,5,5,85,246,5,5,224,166,5,5,120,242,5,5,52,236,5,5,242,243,5,5,209,226,5,5,108,226,5,5,255,226,5,5,119,249,5,5,194,220,5,5,145,186,5,5,191,230,5,5,230,170,5,5,99,187,5,5,10,212,5,5,65,237,5,5,62,249,5,5,100,187,5,5,29,207,5,5,241,212,5,5,168,164,5,5,169,225,5,5,224,216,5,5,226,181,5,5,51,188,5,5,206,199,5,5,154,177,5,5,184,210,5,5,215,232,5,5,203,166,5,5,186,234,5,5,13,249,5,5,170,225,5,5,121,248,5,5,75,196,5,5,65,167,5,5,229,168,5,5,230,168,5,5,251,182,5,5,189,229,5,5,56,213,5,5,107,173,5,5,151,249,5,5,94,221,5,5,230,204,5,5,90,202,5,5,241,230,5,5,122,234,5,5,6,239,5,5,42,171,5,5,212,197,5,5,75,237,5,5,195,220,5,5,42,172,5,5,53,236,5,5,31,217,5,5,46,188,5,5,57,213,5,5,63,193,5,5,122,186,5,5,76,231,5,5,129,247,5,5,248,191,5,5,206,234,5,5,210,226,5,5,85,180,5,5,122,190,5,5,223,230,5,5,212,236,5,5,112,217,5,5,234,163,5,5,227,241,5,5,45,194,5,5,61,165,5,5,136,233,5,5,139,194,5,5,23,233,5,5,31,181,5,5,254,233,5,5,8,167,5,5,25,186,5,5,55,176,5,5,204,202,5,5,205,186,5,5,167,228,5,5,135,186,5,5,122,248,5,5,178,189,5,5,176,244,5,5,129,169,5,5,110,177,5,5,34,181,5,5,54,170,5,5,160,182,5,5,229,225,5,5,168,167,5,5,214,238,5,5,144,188,5,5,62,235,5,5,89,213,5,5,196,168,5,5,230,209,5,5,202,205,5,5,109,226,5,5,184,203,5,5,35,246,5,5,74,182,5,5,40,234,5,5,132,248,5,5,137,240,5,5,164,231,5,5,13,188,5,5,69,165,5,5,239,189,5,5,44,217,5,5,143,166,5,5,26,221,5,5,91,185,5,5,63,211,5,5,148,170,5,5,190,242,5,5,136,189,5,5,197,202,5,5,158,165,5,5,141,194,5,5,109,198,5,5,184,176,5,5,184,236,5,5,47,190,5,5,203,227,5,5,239,228,5,5,185,176,5,5,134,171,5,5,194,217,5,5,149,170,5,5,113,163,5,5,10,177,5,5,187,234,5,5,179,219,5,5,168,228,5,5,175,217,5,5,141,246,5,5,22,199,5,5,116,238,5,5,81,171,5,5,242,185,5,5,160,234,5,5,215,222,5,5,29,234,5,5,181,166,5,5,45,206,5,5,114,171,5,5,63,235,5,5,37,184,5,5,111,200,5,5,8,208,5,5,193,243,5,5,122,205,5,5,62,184,5,5,92,229,5,5,147,243,5,5,171,193,5,5,203,224,5,5,86,199,5,5,142,227,5,5,157,195,5,5,187,210,5,5,26,169,5,5,179,232,5,5,28,232,5,5,64,211,5,5,186,175,5,5,176,188,5,5,28,189,5,5,158,195,5,5,48,238,5,5,70,165,5,5,210,186,5,5,101,246,5,5,103,202,5,5,140,210,5,5,53,229,5,5,247,172,5,5,236,170,5,5,192,238,5,5,145,224,5,5,156,177,5,5,22,218,5,5,11,204,5,5,2,231,5,5,3,231,5,5,127,185,5,5,234,247,5,5,174,209,5,5,173,225,5,5,124,199,5,5,241,204,5,5,172,169,5,5,157,249,5,5,4,164,5,5,63,242,5,5,213,211,5,5,61,190,5,5,23,230,5,5,121,200,5,5,253,237,5,5,185,180,5,5,191,172,5,5,181,207,5,5,48,233,5,5,145,172,5,5,195,230,5,5,114,173,5,5,173,196,5,5,233,229,5,5,253,230,5,5,17,241,5,5,214,216,5,5,240,174,5,5,182,207,5,5,113,176,5,5,36,245,5,5,255,178,5,5,142,235,5,5,166,214,5,5,149,213,5,5,247,190,5,5,9,247,5,5,11,228,5,5,222,208,5,5,242,204,5,5,198,249,5,5,76,237,5,5,149,189,5,5,150,248,5,5,216,213,5,5,134,247,5,5,108,202,5,5,175,201,5,5,193,235,5,5,201,184,5,5,130,185,5,5,123,217,5,5,200,249,5,5,151,248,5,5,63,213,5,5,16,198,5,5,12,164,5,5,214,197,5,5,79,238,5,5,250,245,5,5,127,200,5,5,128,200,5,5,225,202,5,5,195,233,5,5,56,216,5,5,244,246,5,5,137,171,5,5,174,240,5,5,158,186,5,5,26,206,5,5,101,234,5,5,173,228,5,5,70,211,5,5,155,188,5,5,28,195,5,5,73,249,5,5,38,175,5,5,237,180,5,5,61,180,5,5,53,217,5,5,88,165,5,5,94,220,5,5,77,237,5,5,67,215,5,5,27,173,5,5,208,177,5,5,99,214,5,5,71,193,5,5,100,214,5,5,118,229,5,5,135,205,5,5,215,197,5,5,123,201,5,5,216,235,5,5,9,216,5,5,199,217,5,5,250,241,5,5,180,163,5,5,71,236,5,5,119,229,5,5,203,217,5,5,151,178,5,5,145,168,5,5,106,246,5,5,128,184,5,5,44,224,5,5,166,169,5,5,204,230,5,5,82,168,5,5,130,179,5,5,229,202,5,5,74,232,5,5,207,224,5,5,205,220,5,5,64,239,5,5,197,183,5,5,192,244,5,5,37,192,5,5,93,235,5,5,176,214,5,5,232,208,5,5,137,172,5,5,59,205,5,5,38,217,5,5,139,196,5,5,111,202,5,5,226,165,5,5,115,177,5,5,122,171,5,5,39,186,5,5,254,205,5,5,126,234,5,5,163,171,5,5,160,212,5,5,120,209,5,5,165,215,5,5,3,188,5,5,193,238,5,5,127,215,5,5,195,236,5,5,54,191,5,5,184,240,5,5,39,217,5,5,48,214,5,5,226,186,5,5,185,240,5,5,240,184,5,5,135,185,5,5,108,204,5,5,193,176,5,5,176,218,5,5,193,163,5,5,144,180,5,5,255,241,5,5,148,169,5,5,242,200,5,5,170,165,5,5,251,172,5,5,74,236,5,5,16,180,5,5,75,182,5,5,161,212,5,5,181,209,5,5,156,246,5,5,75,188,5,5,139,200,5,5,196,238,5,5,38,192,5,5,204,249,5,5,66,164,5,5,142,187,5,5,121,229,5,5,181,225,5,5,52,238,5,5,35,189,5,5,76,232,5,5,129,217,5,5,24,211,5,5,82,185,5,5,224,199,5,5,71,182,5,5,131,245,5,5,5,231,5,5,6,231,5,5,243,208,5,5,209,198,5,5,214,189,5,5,136,236,5,5,87,182,5,5,253,170,5,5,207,249,5,5,208,168,5,5,45,248,5,5,206,217,5,5,240,202,5,5,89,208,5,5,130,217,5,5,85,169,5,5,49,210,5,5,137,236,5,5,90,208,5,5,15,174,5,5,14,184,5,5,147,163,5,5,155,230,5,5,200,240,5,5,171,215,5,5,250,247,5,5,14,207,5,5,211,188,5,5,184,188,5,5,230,243,5,5,72,211,5,5,145,244,5,5,9,191,5,5,223,179,5,5,111,246,5,5,240,248,5,5,158,189,5,5,224,211,5,5,205,241,5,5,36,173,5,5,232,169,5,5,159,198,5,5,113,196,5,5,52,186,5,5,243,202,5,5,119,176,5,5,158,170,5,5,160,185,5,5,106,185,5,5,36,200,5,5,230,173,5,5,98,218,5,5,161,246,5,5,142,196,5,5,155,220,5,5,245,199,5,5,240,186,5,5,247,202,5,5,63,171,5,5,139,185,5,5,251,199,5,5,113,190,5,5,32,202,5,5,143,196,5,5,80,190,5,5,9,205,5,5,218,235,5,5,151,180,5,5,113,185,5,5,106,212,5,5,188,214,5,5,209,240,5,5,180,190,5,5,170,170,5,5,122,165,5,5,217,198,5,5,42,199,5,5,229,189,5,5,222,184,5,5,88,191,5,5,112,235,5,5,134,214,5,5,122,210,5,5,218,225,5,5,233,198,5,5,191,216,5,5,180,234,5,5,113,174,5,5,192,216,5,5,199,216,5,5,234,189,5,5,48,199,5,5,216,247,5,5,6,198,5,5,255,203,5,5,83,207,5,5,172,193,5,5,57,164,5,5,192,242,5,5,148,220,5,5,149,220,5,5,109,196,5,5,27,166,5,5,154,213,5,5,165,229,5,5,166,226,5,5,252,209,5,5,75,177,5,5,129,202,5,5,255,209,5,5,196,177,5,5,187,226,5,5,169,213,5,5,135,207,5,5,132,219,5,5,179,227,5,5,145,247,5,5,80,198,5,5,178,231,5,5,146,201,5,5,6,200,5,5,223,170,5,5,204,191,5,5,248,236,5,5,171,213,5,5,217,223,5,5,240,226,5,5,222,239,5,5,33,169,5,5,97,216,5,5,154,173,5,5,210,237,5,5,0,147,5,5,70,223,5,5,81,210,5,5,27,247,5,5,28,247,5,5,11,231,5,5,160,164,5,5,246,167,5,5,211,248,5,5,212,248,5,5,22,208,5,5,179,208,5,5,176,182,5,5,209,243,5,5,180,208,5,5,74,234,5,5,41,249,5,5,140,207,5,5,48,200,5,5,225,210,5,5,181,208,5,5,246,222,5,5,248,240,5,5,217,197,5,5,90,172,5,5,84,247,5,5,101,173,5,5,102,173,5,5,181,198,5,5,200,194,5,5,70,232,5,5,205,174,5,5,61,230,5,5,221,203,5,5,99,174,5,5,8,223,5,5,194,175,5,5,47,164,5,5,146,215,5,5,160,183,5,5,96,179,5,5,223,209,5,5,47,242,5,5,114,219,5,5,188,168,5,5,41,223,5,5,112,242,5,5,115,197,5,5,64,198,5,5,69,207,5,5,76,187,5,5,211,174,5,5,64,230,5,5,84,219,5,5,77,192,5,5,251,167,5,5,252,167,5,5,98,215,5,5,233,221,5,5,80,177,5,5,129,165,5,5,72,166,5,5,13,193,5,5,81,220,5,5,169,211,5,5,180,227,5,5,253,180,5,5,121,189,5,5,48,193,5,5,34,176,5,5,49,193,5,5,162,244,5,5,77,187,5,5,59,225,5,5,174,211,5,5,91,170,5,5,173,191,5,5,219,233,5,5,52,200,5,5,53,200,5,5,207,170,5,5,219,174,5,5,39,244,5,5,143,245,5,5,198,187,5,5,145,221,5,5,105,239,5,5,102,215,5,5,58,196,5,5,250,203,5,5,83,187,5,5,96,240,5,5,193,168,5,5,134,208,5,5,73,197,5,5,181,227,5,5,172,239,5,5,98,247,5,5,121,169,5,5,145,212,5,5,109,209,5,5,19,194,5,5,146,212,5,5,244,218,5,5,108,170,5,5,222,185,5,5,145,219,5,5,52,203,5,5,53,183,5,5,118,235,5,5,201,208,5,5,127,216,5,5,227,203,5,5,33,210,5,5,237,227,5,5,17,250,5,5,56,203,5,5,98,182,5,5,180,223,5,5,174,163,5,5,169,237,5,5,137,198,5,5,113,229,5,5,139,217,5,5,213,173,5,5,220,228,5,5,221,228,5,5,172,174,5,5,213,215,5,5,122,219,5,5,32,245,5,5,124,174,5,5,194,186,5,5,123,186,5,5,47,165,5,5,163,225,5,5,10,249,5,5,84,242,5,5,171,203,5,5,44,176,5,5,189,242,5,5,155,181,5,5,174,177,5,5,99,182,5,5,54,200,5,5,178,245,5,5,90,218,5,5,102,237,5,5,165,172,5,5,222,206,5,5,112,171,5,5,215,208,5,5,216,208,5,5,123,248,5,5,65,208,5,5,245,184,5,5,13,171,5,5,46,211,5,5,128,235,5,5,242,212,5,5,212,190,5,5,101,187,5,5,53,177,5,5,32,181,5,5,189,179,5,5,213,196,5,5,98,198,5,5,141,198,5,5,124,248,5,5,169,164,5,5,178,172,5,5,10,168,5,5,246,245,5,5,185,178,5,5,125,240,5,5,14,249,5,5,243,236,5,5,81,212,5,5,158,210,5,5,15,231,5,5,169,183,5,5,103,211,5,5,136,246,5,5,64,189,5,5,185,193,5,5,178,246,5,5,243,178,5,5,245,237,5,5,94,164,5,5,5,177,5,5,101,247,5,5,78,234,5,5,72,244,5,5,177,244,5,5,151,193,5,5,88,224,5,5,225,177,5,5,246,184,5,5,26,195,5,5,172,203,5,5,248,213,5,5,158,181,5,5,79,170,5,5,211,216,5,5,183,171,5,5,226,247,5,5,120,203,5,5,2,227,5,5,117,217,5,5,63,201,5,5,246,242,5,5,205,165,5,5,43,230,5,5,247,245,5,5,232,174,5,5,66,249,5,5,14,170,5,5,142,246,5,5,137,174,5,5,193,230,5,5,31,214,5,5,61,242,5,5,39,210,5,5,38,170,5,5,181,213,5,5,121,244,5,5,212,226,5,5,171,226,5,5,57,180,5,5,150,221,5,5,110,233,5,5,181,180,5,5,233,174,5,5,67,249,5,5,132,196,5,5,231,170,5,5,249,184,5,5,251,177,5,5,23,199,5,5,231,209,5,5,55,177,5,5,103,187,5,5,180,245,5,5,121,249,5,5,242,211,5,5,117,183,5,5,243,185,5,5,87,226,5,5,78,231,5,5,180,244,5,5,21,206,5,5,114,164,5,5,125,186,5,5,123,167,5,5,143,235,5,5,13,213,5,5,222,233,5,5,14,213,5,5,72,249,5,5,119,247,5,5,149,188,5,5,58,236,5,5,79,164,5,5,81,231,5,5,82,231,5,5,104,202,5,5,8,245,5,5,26,215,5,5,152,198,5,5,248,210,5,5,192,239,5,5,213,164,5,5,125,199,5,5,96,180,5,5,240,239,5,5,43,178,5,5,30,183,5,5,141,197,5,5,27,199,5,5,240,193,5,5,38,169,5,5,46,172,5,5,163,240,5,5,40,247,5,5,183,244,5,5,100,179,5,5,217,222,5,5,124,234,5,5,39,236,5,5,69,209,5,5,131,170,5,5,60,181,5,5,240,228,5,5,103,227,5,5,43,234,5,5,24,223,5,5,16,177,5,5,121,238,5,5,62,190,5,5,151,246,5,5,36,219,5,5,99,180,5,5,206,224,5,5,74,168,5,5,217,211,5,5,14,168,5,5,238,247,5,5,136,205,5,5,101,190,5,5,247,185,5,5,10,211,5,5,218,222,5,5,227,243,5,5,27,206,5,5,203,229,5,5,43,247,5,5,170,214,5,5,245,246,5,5,156,219,5,5,181,219,5,5,27,169,5,5,28,169,5,5,155,193,5,5,66,188,5,5,40,170,5,5,20,213,5,5,68,235,5,5,216,186,5,5,132,170,5,5,171,214,5,5,51,225,5,5,29,221,5,5,220,170,5,5,113,216,5,5,144,169,5,5,29,233,5,5,145,235,5,5,236,209,5,5,101,179,5,5,136,218,5,5,177,167,5,5,178,167,5,5,73,204,5,5,219,211,5,5,118,165,5,5,252,187,5,5,73,167,5,5,26,194,5,5,97,213,5,5,143,202,5,5,128,222,5,5,75,201,5,5,179,172,5,5,187,185,5,5,186,207,5,5,187,207,5,5,134,200,5,5,197,243,5,5,103,224,5,5,18,204,5,5,117,228,5,5,59,183,5,5,177,214,5,5,37,245,5,5,173,226,5,5,247,217,5,5,146,235,5,5,241,225,5,5,81,225,5,5,79,176,5,5,16,187,5,5,111,214,5,5,119,228,5,5,246,239,5,5,138,206,5,5,40,175,5,5,107,224,5,5,63,209,5,5,164,233,5,5,88,216,5,5,207,227,5,5,128,190,5,5,252,210,5,5,197,244,5,5,221,223,5,5,131,187,5,5,58,232,5,5,127,217,5,5,163,188,5,5,179,221,5,5,13,232,5,5,249,213,5,5,221,170,5,5,112,214,5,5,244,208,5,5,93,231,5,5,67,205,5,5,19,171,5,5,237,197,5,5,205,230,5,5,225,199,5,5,71,222,5,5,194,203,5,5,148,168,5,5,82,197,5,5,141,171,5,5,37,173,5,5,104,185,5,5,193,203,5,5,4,185,5,5,21,172,5,5,233,186,5,5,120,226,5,5,148,187,5,5,242,209,5,5,18,184,5,5,220,189,5,5,47,178,5,5,184,214,5,5,164,221,5,5,17,191,5,5,149,187,5,5,18,191,5,5,231,173,5,5,59,241,5,5,205,164,5,5,131,183,5,5,78,193,5,5,229,207,5,5,150,244,5,5,168,229,5,5,41,213,5,5,82,234,5,5,231,211,5,5,96,212,5,5,48,178,5,5,83,234,5,5,125,170,5,5,234,211,5,5,195,203,5,5,187,221,5,5,18,222,5,5,78,217,5,5,32,201,5,5,58,184,5,5,232,166,5,5,219,184,5,5,28,216,5,5,253,222,5,5,183,169,5,5,76,239,5,5,242,194,5,5,142,171,5,5,163,213,5,5,139,216,5,5,221,242,5,5,187,195,5,5,96,249,5,5,7,212,5,5,122,189,5,5,167,217,5,5,144,229,5,5,99,215,5,5,218,182,5,5,102,216,5,5,113,203,5,5,107,215,5,5,3,241,5,5,24,199,5,5,143,246,5,5,167,175,5,5,161,226,5,5,147,246,5,5,169,175,5,5,161,222,5,5,207,198,5,5,232,211,5,5,87,239,5,5,85,239,5,5,112,166,5,5,136,192,5,5,176,247,5,5,182,165,5,5,158,223,5,5,151,239,5,5,52,228,5,5,222,224,5,5,32,174,5,5,130,194,5,5,80,173,5,5,196,229,5,5,148,203,5,5,241,182,5,5,209,222,5,5,10,176,5,5,66,240,5,5,247,222,5,5,210,222,5,5,222,203,5,5,168,218,5,5,11,214,5,5,62,230,5,5,78,218,5,5,131,230,5,5,203,210,5,5,173,205,5,5,23,208,5,5,42,249,5,5,4,170,5,5,218,223,5,5,133,238,5,5,32,184,5,5,10,200,5,5,63,230,5,5,22,203,5,5,34,182,5,5,170,189,5,5,99,175,5,5,48,164,5,5,20,167,5,5,240,241,5,5,16,233,5,5,25,165,5,5,7,228,5,5,26,180,5,5,70,207,5,5,156,197,5,5,64,217,5,5,18,215,5,5,221,220,5,5,168,239,5,5,167,166,5,5,51,163,5,5,153,176,5,5,158,245,5,5,212,174,5,5,133,194,5,5,232,218,5,5,233,218,5,5,65,230,5,5,88,167,5,5,79,240,5,5,65,170,5,5,15,182,5,5,245,182,5,5,57,192,5,5,168,217,5,5,142,219,5,5,170,211,5,5,220,163,5,5,134,194,5,5,49,213,5,5,223,183,5,5,91,163,5,5,52,163,5,5,119,174,5,5,73,223,5,5,74,223,5,5,32,196,5,5,140,230,5,5,59,206,5,5,53,203,5,5,101,205,5,5,94,163,5,5,162,203,5,5,40,239,5,5,147,191,5,5,190,230,5,5,146,221,5,5,227,193,5,5,136,243,5,5,12,234,5,5,199,187,5,5,249,194,5,5,178,216,5,5,179,222,5,5,72,176,5,5,200,216,5,5,207,196,5,5,207,195,5,5,35,184,5,5,151,229,5,5,57,203,5,5,236,196,5,5,123,225,5,5,7,187,5,5,222,207,5,5,163,228,5,5,43,167,5,5,178,191,5,5,115,240,5,5,108,248,5,5,226,220,5,5,41,188,5,5,34,210,5,5,125,212,5,5,198,202,5,5,116,240,5,5,116,166,5,5,180,222,5,5,216,229,5,5,139,227,5,5,126,212,5,5,8,187,5,5,134,188,5,5,173,188,5,5,33,196,5,5,42,205,5,5,229,172,5,5,73,224,5,5,62,165,5,5,214,196,5,5,190,179,5,5,104,249,5,5,135,189,5,5,75,223,5,5,248,224,5,5,35,224,5,5,59,178,5,5,184,165,5,5,65,189,5,5,6,229,5,5,240,166,5,5,241,166,5,5,166,172,5,5,15,249,5,5,123,190,5,5,186,193,5,5,243,242,5,5,249,177,5,5,230,180,5,5,10,219,5,5,223,206,5,5,236,239,5,5,205,202,5,5,118,218,5,5,137,193,5,5,208,195,5,5,68,209,5,5,233,180,5,5,182,180,5,5,234,174,5,5,172,226,5,5,88,214,5,5,224,165,5,5,56,177,5,5,217,196,5,5,160,178,5,5,23,215,5,5,24,215,5,5,164,197,5,5,105,249,5,5,3,164,5,5,31,164,5,5,235,174,5,5,227,247,5,5,126,182,5,5,247,242,5,5,30,200,5,5,237,163,5,5,193,225,5,5,77,191,5,5,36,167,5,5,247,175,5,5,174,249,5,5,40,179,5,5,64,192,5,5,15,175,5,5,237,199,5,5,83,231,5,5,107,249,5,5,225,230,5,5,31,183,5,5,111,208,5,5,234,236,5,5,80,164,5,5,100,182,5,5,78,223,5,5,119,236,5,5,39,184,5,5,123,244,5,5,232,203,5,5,97,210,5,5,238,199,5,5,37,196,5,5,156,188,5,5,32,186,5,5,217,186,5,5,170,219,5,5,218,226,5,5,83,191,5,5,175,240,5,5,21,177,5,5,101,214,5,5,68,215,5,5,152,246,5,5,188,165,5,5,44,234,5,5,11,202,5,5,79,211,5,5,113,236,5,5,6,164,5,5,57,216,5,5,116,165,5,5,147,174,5,5,60,205,5,5,150,222,5,5,61,205,5,5,2,235,5,5,112,202,5,5,254,175,5,5,228,231,5,5,29,173,5,5,128,163,5,5,114,216,5,5,15,216,5,5,131,165,5,5,24,230,5,5,133,170,5,5,40,186,5,5,137,238,5,5,14,232,5,5,59,194,5,5,53,234,5,5,52,237,5,5,204,184,5,5,76,224,5,5,183,188,5,5,97,165,5,5,181,205,5,5,80,176,5,5,122,229,5,5,36,180,5,5,100,165,5,5,48,186,5,5,242,168,5,5,206,230,5,5,177,218,5,5,149,178,5,5,124,229,5,5,162,245,5,5,108,227,5,5,166,163,5,5,42,214,5,5,138,163,5,5,234,224,5,5,85,185,5,5,19,191,5,5,72,213,5,5,80,215,5,5,55,186,5,5,171,219,5,5,121,175,5,5,108,207,5,5,164,232,5,5,224,226,5,5,75,205,5,5,93,167,5,5,210,240,5,5,101,186,5,5,22,241,5,5,169,212,5,5,170,212,5,5,235,241,5,5,250,173,5,5,249,179,5,5,254,174,5,5,16,174,5,5,247,174,5,5,27,163,5,5,147,197,5,5,33,202,5,5,38,202,5,5,78,205,5,5,68,194,5,5,242,165,5,5,34,243,5,5,223,193,5,5,146,207,5,5,119,168,5,5,66,170,5,5,99,171,5,5,100,171,5,5,131,171,5,5,66,227,5,5,183,235,5,5,71,224,5,5,94,190,5,5,158,207,5,5,106,171,5,5,57,181,5,5,135,188,5,5,245,241,5,5,11,219,5,5,32,208,5,5,58,213,5,5,84,228,5,5,248,245,5,5,145,213,5,5,113,181,5,5,235,247,5,5,74,186,5,5,254,237,5,5,28,178,5,5,211,210,5,5,129,167,5,5,226,202,5,5,47,172,5,5,188,244,5,5,100,192,5,5,190,211,5,5,150,220,5,5,255,205,5,5,77,194,5,5,130,176,5,5,143,205,5,5,103,190,5,5,5,212,5,5,253,204,5,5,43,246,5,5,197,207,5,5,194,211,5,5,106,190,5,5,80,186,5,5,203,228,5,5,197,176,5,5,83,194,5,5,76,205,5,5,65,194,5,5,23,243,5,5,211,193,5,5,91,171,5,5,56,227,5,5,68,224,5,5,63,186,5,5,136,207,5,5,175,202,5,5,50,213,5,5,174,176,5,5,108,181,5,5,217,247,5,5,97,192,5,5,241,205,5,5,253,211,5,5,27,204,5,5,3,210,5,5,168,205,5,5,145,234,5,5,147,207,5,5,234,218,5,5,8,224,5,5,72,202,5,5,16,193,5,5,40,176,5,5,132,231,5,5,217,176,5,5,231,228,5,5,143,199,5,5,77,212,5,5,179,191,5,5,83,227,5,5,199,203,5,5,21,194,5,5,207,194,5,5,223,225,5,5,200,203,5,5,27,201,5,5,36,210,5,5,128,216,5,5,174,236,5,5,170,183,5,5,249,201,5,5,48,190,5,5,22,219,5,5,76,219,5,5,81,165,5,5,133,216,5,5,30,199,5,5,241,228,5,5,213,194,5,5,44,219,5,5,72,217,5,5,236,225,5,5,36,213,5,5,205,239,5,5,155,187,5,5,201,207,5,5,39,213,5,5,89,243,5,5,43,213,5,5,157,242,5,5,158,242,5,5,215,177,5,5,200,174,5,5,4,210,5,5,5,210,5,5,86,204,5,5,113,201,5,5,169,202,5,5,239,172,5,5,8,218,5,5,100,177,5,5,185,201,5,5,219,223,5,5,202,179,5,5,189,216,5,5,149,203,5,5,162,239,5,5,132,230,5,5,9,218,5,5,173,243,5,5,91,228,5,5,41,209,5,5,10,182,5,5,176,202,5,5,10,218,5,5,174,243,5,5,162,237,5,5,82,173,5,5,36,241,5,5,146,241,5,5,126,237,5,5,192,228,5,5,181,243,5,5,255,215,5,5,148,207,5,5,194,214,5,5,5,183,5,5,192,224,5,5,48,242,5,5,170,218,5,5,41,218,5,5,178,173,5,5,29,216,5,5,229,223,5,5,194,227,5,5,52,215,5,5,202,235,5,5,166,222,5,5,233,216,5,5,80,240,5,5,81,240,5,5,158,236,5,5,14,223,5,5,80,197,5,5,161,228,5,5,121,197,5,5,20,217,5,5,222,220,5,5,236,221,5,5,119,221,5,5,89,192,5,5,133,231,5,5,186,231,5,5,84,220,5,5,50,193,5,5,220,174,5,5,34,205,5,5,44,177,5,5,125,189,5,5,218,176,5,5,84,244,5,5,84,187,5,5,54,183,5,5,89,167,5,5,59,220,5,5,160,192,5,5,97,240,5,5,72,207,5,5,242,241,5,5,115,219,5,5,173,239,5,5,174,239,5,5,240,211,5,5,237,219,5,5,194,168,5,5,37,165,5,5,49,218,5,5,175,211,5,5,4,163,5,5,32,175,5,5,237,232,5,5,153,179,5,5,197,221,5,5,179,233,5,5,146,219,5,5,12,250,5,5,235,216,5,5,234,217,5,5,117,240,5,5,93,201,5,5,125,197,5,5,84,227,5,5,151,223,5,5,224,214,5,5,205,226,5,5,169,198,5,5,171,223,5,5,93,192,5,5,22,194,5,5,78,212,5,5,96,200,5,5,173,203,5,5,144,199,5,5,225,191,5,5,74,216,5,5,245,245,5,5,164,228,5,5,61,220,5,5,184,182,5,5,41,171,5,5,86,220,5,5,56,172,5,5,241,237,5,5,22,200,5,5,185,242,5,5,42,218,5,5,136,193,5,5,78,239,5,5,95,166,5,5,49,181,5,5,179,239,5,5,123,185,5,5,147,221,5,5,7,197,5,5,41,196,5,5,33,245,5,5,109,248,5,5,136,180,5,5,206,202,5,5,12,219,5,5,146,230,5,5,156,234,5,5,136,186,5,5,170,237,5,5,14,197,5,5,94,238,5,5,90,227,5,5,176,181,5,5,51,176,5,5,235,163,5,5,89,224,5,5,117,242,5,5,252,195,5,5,198,209,5,5,209,210,5,5,174,229,5,5,213,238,5,5,33,248,5,5,226,214,5,5,124,225,5,5,229,203,5,5,219,215,5,5,6,245,5,5,120,245,5,5,50,192,5,5,128,237,5,5,106,166,5,5,102,200,5,5,175,206,5,5,177,229,5,5,252,220,5,5,178,229,5,5,250,177,5,5,162,199,5,5,48,225,5,5,207,229,5,5,185,203,5,5,71,195,5,5,182,211,5,5,88,235,5,5,198,214,5,5,35,237,5,5,102,247,5,5,116,215,5,5,189,172,5,5,21,223,5,5,72,179,5,5,138,240,5,5,217,183,5,5,194,243,5,5,111,177,5,5,29,168,5,5,55,222,5,5,141,224,5,5,174,224,5,5,160,222,5,5,214,202,5,5,144,208,5,5,4,180,5,5,103,222,5,5,96,246,5,5,255,206,5,5,133,211,5,5,252,178,5,5,124,221,5,5,3,232,5,5,107,232,5,5,95,210,5,5,56,222,5,5,78,189,5,5,123,205,5,5,230,225,5,5,230,197,5,5,223,190,5,5,194,228,5,5,185,165,5,5,248,199,5,5,114,168,5,5,228,247,5,5,58,177,5,5,215,216,5,5,122,168,5,5,100,227,5,5,121,217,5,5,101,227,5,5,28,201,5,5,152,199,5,5,255,237,5,5,254,222,5,5,14,177,5,5,35,214,5,5,139,174,5,5,252,168,5,5,161,181,5,5,130,205,5,5,19,209,5,5,139,248,5,5,147,231,5,5,127,222,5,5,92,213,5,5,122,200,5,5,149,243,5,5,218,238,5,5,121,215,5,5,108,183,5,5,205,224,5,5,251,173,5,5,154,221,5,5,48,244,5,5,67,243,5,5,66,201,5,5,122,217,5,5,191,191,5,5,172,184,5,5,145,208,5,5,95,170,5,5,117,241,5,5,148,246,5,5,179,216,5,5,142,180,5,5,27,220,5,5,113,228,5,5,54,205,5,5,184,166,5,5,174,196,5,5,96,201,5,5,212,199,5,5,156,191,5,5,189,244,5,5,47,171,5,5,210,214,5,5,119,171,5,5,96,213,5,5,50,211,5,5,177,224,5,5,86,217,5,5,189,180,5,5,193,236,5,5,173,164,5,5,55,223,5,5,98,210,5,5,104,227,5,5,48,206,5,5,74,249,5,5,102,214,5,5,171,197,5,5,168,179,5,5,198,241,5,5,199,241,5,5,58,219,5,5,244,247,5,5,167,165,5,5,98,235,5,5,146,211,5,5,219,186,5,5,81,169,5,5,145,169,5,5,242,228,5,5,158,219,5,5,172,171,5,5,62,205,5,5,11,232,5,5,123,203,5,5,157,188,5,5,248,185,5,5,102,234,5,5,177,238,5,5,152,194,5,5,65,213,5,5,67,222,5,5,123,238,5,5,124,238,5,5,205,205,5,5,159,219,5,5,203,239,5,5,245,198,5,5,71,206,5,5,118,170,5,5,251,223,5,5,158,198,5,5,126,199,5,5,149,224,5,5,216,216,5,5,206,232,5,5,249,235,5,5,29,213,5,5,78,219,5,5,153,178,5,5,127,221,5,5,61,183,5,5,41,186,5,5,179,237,5,5,140,244,5,5,189,207,5,5,18,202,5,5,83,233,5,5,75,204,5,5,146,163,5,5,140,200,5,5,151,222,5,5,40,245,5,5,169,232,5,5,92,219,5,5,6,227,5,5,207,209,5,5,17,180,5,5,170,232,5,5,3,169,5,5,35,229,5,5,131,217,5,5,90,232,5,5,20,180,5,5,86,176,5,5,53,237,5,5,170,215,5,5,22,202,5,5,112,204,5,5,140,206,5,5,152,220,5,5,129,183,5,5,123,239,5,5,87,238,5,5,99,220,5,5,53,168,5,5,63,200,5,5,156,199,5,5,193,240,5,5,194,240,5,5,120,228,5,5,170,230,5,5,93,183,5,5,163,210,5,5,110,222,5,5,86,179,5,5,92,199,5,5,30,220,5,5,238,197,5,5,88,238,5,5,146,244,5,5,147,205,5,5,166,248,5,5,73,205,5,5,147,200,5,5,12,178,5,5,162,219,5,5,182,217,5,5,160,232,5,5,138,185,5,5,204,228,5,5,162,246,5,5,155,224,5,5,160,187,5,5,207,239,5,5,2,166,5,5,163,219,5,5,90,243,5,5,13,238,5,5,50,224,5,5,165,246,5,5,51,224,5,5,5,242,5,5,118,224,5,5,171,230,5,5,232,243,5,5,58,186,5,5,235,224,5,5,43,214,5,5,22,184,5,5,164,200,5,5,165,232,5,5,212,240,5,5,91,176,5,5,106,220,5,5,100,243,5,5,21,178,5,5,155,242,5,5,149,202,5,5,210,177,5,5,187,174,5,5,107,230,5,5,196,201,5,5,129,203,5,5,184,201,5,5,201,179,5,5,168,230,5,5,85,228,5,5,22,209,5,5,251,181,5,5,252,217,5,5,5,240,5,5,253,217,5,5,150,202,5,5,110,230,5,5,35,206,5,5,67,200,5,5,163,238,5,5,41,207,5,5,23,241,5,5,2,183,5,5,225,216,5,5,151,237,5,5,221,190,5,5,33,218,5,5,121,237,5,5,248,173,5,5,187,227,5,5,167,173,5,5,121,207,5,5,113,221,5,5,34,193,5,5,76,197,5,5,168,168,5,5,229,232,5,5,231,226,5,5,47,218,5,5,107,219,5,5,142,236,5,5,209,220,5,5,201,176,5,5,255,219,5,5,167,233,5,5,155,211,5,5,226,219,5,5,252,164,5,5,21,240,5,5,134,239,5,5,251,196,5,5,118,185,5,5,44,227,5,5,129,193,5,5,188,226,5,5,53,202,5,5,254,199,5,5,91,225,5,5,133,221,5,5,143,228,5,5,137,199,5,5,26,176,5,5,81,192,5,5,55,212,5,5,3,194,5,5,216,217,5,5,38,240,5,5,68,221,5,5,213,191,5,5,68,216,5,5,166,223,5,5,18,201,5,5,228,216,5,5,5,220,5,5,218,203,5,5,252,244,5,5,12,248,5,5,191,209,5,5,97,245,5,5,43,192,5,5,107,242,5,5,74,200,5,5,12,197,5,5,175,229,5,5,123,237,5,5,93,238,5,5,127,211,5,5,139,221,5,5,98,232,5,5,160,184,5,5,242,177,5,5,31,222,5,5,182,172,5,5,59,195,5,5,62,246,5,5,184,247,5,5,205,229,5,5,188,228,5,5,101,177,5,5,128,224,5,5,71,189,5,5,159,222,5,5,24,237,5,5,245,179,5,5,189,228,5,5,67,240,5,5,90,170,5,5,193,224,5,5,35,177,5,5,91,201,5,5,96,205,5,5,15,214,5,5,84,217,5,5,95,241,5,5,126,246,5,5,220,237,5,5,79,248,5,5,99,217,5,5,79,224,5,5,121,231,5,5,205,238,5,5,38,243,5,5,240,176,5,5,40,171,5,5,120,168,5,5,193,216,5,5,68,169,5,5,84,176,5,5,159,236,5,5,79,214,5,5,171,241,5,5,164,164,5,5,75,227,5,5,82,210,5,5,102,171,5,5,192,205,5,5,110,170,5,5,148,219,5,5,43,205,5,5,171,171,5,5,253,179,5,5,168,232,5,5,166,209,5,5,26,186,5,5,251,168,5,5,167,207,5,5,59,243,5,5,160,210,5,5,88,220,5,5,232,224,5,5,35,193,5,5,74,210,5,5,155,201,5,5,173,213,5,5,73,202,5,5,166,201,5,5,68,198,5,5,120,201,5,5,21,213,5,5,22,213,5,5,171,199,5,5,253,187,5,5,111,198,5,5,13,178,5,5,20,191,5,5,198,175,5,5,13,206,5,5,7,209,5,5,67,227,5,5,9,187,5,5,123,176,5,5,180,246,5,5,212,164,5,5,158,229,5,5,230,215,5,5,222,173,5,5,47,219,5,5,54,219,5,5,101,243,5,5,103,243,5,5,12,227,5,5,207,225,5,5,11,200,5,5,142,182,5,5,82,240,5,5,143,182,5,5,83,240,5,5,210,204,5,5,0,151,5,5,55,198,5,5,230,237,5,5,158,225,5,5,103,216,5,5,234,200,5,5,226,204,5,5,200,195,5,5,226,191,5,5,76,207,5,5,46,174,5,5,243,212,5,5,20,166,5,5,225,197,5,5,140,248,5,5,155,221,5,5,34,203,5,5,115,173,5,5,23,213,5,5,121,163,5,5,11,247,5,5,192,200,5,5,28,166,5,5,190,176,5,5,115,233,5,5,120,173,5,5,186,240,5,5,184,218,5,5,44,164,5,5,211,223,5,5,244,238,5,5,253,167,5,5,246,182,5,5,216,167,5,5,78,192,5,5,248,182,5,5,114,242,5,5,82,177,5,5,122,169,5,5,186,235,5,5,249,214,5,5,181,200,5,5,209,196,5,5,126,197,5,5,222,197,5,5,123,169,5,5,142,198,5,5,77,170,5,5,200,186,5,5,171,183,5,5,243,164,5,5,39,248,5,5,35,203,5,5,106,182,5,5,18,170,5,5,15,168,5,5,24,213,5,5,4,238,5,5,100,207,5,5,146,169,5,5,152,225,5,5,18,180,5,5,165,200,5,5,211,207,5,5,201,163,5,5,164,220,5,5,36,249,5,5,201,174,5,5,11,234,5,5,234,194,5,5,95,179,5,5,163,239,5,5,184,198,5,5,238,246,5,5,138,168,5,5,198,199,5,5,61,173,5,5,233,179,5,5,103,194,5,5,249,231,5,5,113,218,5,5,75,239,5,5,237,221,5,5,76,227,5,5,38,165,5,5,134,231,5,5,77,239,5,5,42,194,5,5,121,168,5,5,219,165,5,5,170,169,5,5,102,175,5,5,47,229,5,5,33,197,5,5,212,172,5,5,251,180,5,5,175,239,5,5,44,223,5,5,69,170,5,5,157,197,5,5,39,165,5,5,34,190,5,5,26,189,5,5,97,200,5,5,227,191,5,5,112,168,5,5,135,231,5,5,80,203,5,5,23,217,5,5,55,232,5,5,50,204,5,5,245,191,5,5,176,232,5,5,109,205,5,5,115,244,5,5,18,218,5,5,253,220,5,5,174,227,5,5,21,166,5,5,22,166,5,5,37,210,5,5,175,227,5,5,75,226,5,5,178,232,5,5,23,220,5,5,69,185,5,5,148,232,5,5,221,233,5,5,175,224,5,5,248,228,5,5,114,181,5,5,242,166,5,5,227,192,5,5,117,215,5,5,185,169,5,5,124,205,5,5,36,237,5,5,236,174,5,5,48,180,5,5,89,235,5,5,90,235,5,5,23,219,5,5,250,201,5,5,54,221,5,5,29,178,5,5,247,205,5,5,43,218,5,5,119,226,5,5,175,249,5,5,33,164,5,5,38,232,5,5,71,185,5,5,10,174,5,5,129,234,5,5,12,202,5,5,54,229,5,5,176,240,5,5,149,222,5,5,243,174,5,5,101,192,5,5,14,236,5,5,12,232,5,5,254,187,5,5,179,240,5,5,177,163,5,5,219,224,5,5,246,246,5,5,41,219,5,5,109,222,5,5,171,165,5,5,124,249,5,5,211,232,5,5,62,176,5,5,155,232,5,5,77,243,5,5,15,169,5,5,121,228,5,5,249,246,5,5,201,244,5,5,2,206,5,5,165,192,5,5,133,215,5,5,180,232,5,5,105,165,5,5,14,178,5,5,106,229,5,5,88,243,5,5,249,228,5,5,183,217,5,5,44,191,5,5,167,192,5,5,182,232,5,5,198,163,5,5,156,220,5,5,190,174,5,5,28,249,5,5,231,194,5,5,10,234,5,5,240,231,5,5,86,215,5,5,169,163,5,5,46,221,5,5,187,199,5,5,193,218,5,5,51,173,5,5,229,179,5,5,136,168,5,5,214,165,5,5,82,192,5,5,216,221,5,5,97,194,5,5,74,239,5,5,84,205,5,5,117,164,5,5,57,227,5,5,248,180,5,5,35,194,5,5,29,197,5,5,92,175,5,5,63,170,5,5,202,172,5,5,154,197,5,5,152,239,5,5,53,232,5,5,213,218,5,5,73,203,5,5,79,200,5,5,116,231,5,5,24,189,5,5,10,190,5,5,175,232,5,5,117,231,5,5,221,191,5,5,221,205,5,5,20,210,5,5,247,220,5,5,65,185,5,5,170,227,5,5,221,174,5,5,25,178,5,5,231,201,5,5,102,229,5,5,247,228,5,5,220,233,5,5,40,165,5,5,18,220,5,5,222,192,5,5,238,166,5,5,12,176,5,5,68,185,5,5,6,174,5,5,101,222,5,5,228,174,5,5,144,222,5,5,12,236,5,5,4,232,5,5,68,243,5,5,149,232,5,5,122,249,5,5,209,232,5,5,114,228,5,5,190,244,5,5,166,192,5,5,84,223,5,5,211,212,5,5,195,227,5,5,111,183,5,5,185,182,5,5,136,213,5,5,65,225,5,5,162,197,5,5,76,225,5,5,169,219,5,5,214,213,5,5,100,180,5,5,116,232,5,5,115,232,5,5,51,187,5,5,128,204,5,5,202,174,5,5,231,219,5,5,137,192,5,5,8,209,5,5,92,228,5,5,138,212,5,5,210,243,5,5,148,215,5,5,157,233,5,5,149,207,5,5,4,211,5,5,42,223,5,5,159,233,5,5,224,224,5,5,225,224,5,5,45,177,5,5,217,206,5,5,232,223,5,5,155,176,5,5,132,213,5,5,85,220,5,5,159,207,5,5,221,248,5,5,176,211,5,5,85,202,5,5,45,223,5,5,164,225,5,5,113,193,5,5,85,217,5,5,136,231,5,5,29,181,5,5,86,178,5,5,203,187,5,5,143,192,5,5,213,236,5,5,157,234,5,5,59,213,5,5,243,219,5,5,175,236,5,5,221,243,5,5,2,207,5,5,125,205,5,5,34,212,5,5,127,180,5,5,9,226,5,5,227,234,5,5,49,190,5,5,254,211,5,5,111,176,5,5,233,209,5,5,148,231,5,5,186,180,5,5,188,211,5,5,117,223,5,5,77,201,5,5,180,209,5,5,154,209,5,5,109,204,5,5,91,232,5,5,242,180,5,5,66,239,5,5,142,232,5,5,144,232,5,5,217,232,5,5,154,166,5,5,45,164,5,5,28,196,5,5,8,195,5,5,201,178,5,5,150,207,5,5,37,174,5,5,211,224,5,5,44,205,5,5,182,173,5,5,171,218,5,5,36,179,5,5,217,248,5,5,21,163,5,5,190,208,5,5,218,248,5,5,34,211,5,5,68,182,5,5,116,179,5,5,98,240,5,5,76,184,5,5,126,189,5,5,8,170,5,5,5,163,5,5,20,177,5,5,15,196,5,5,36,182,5,5,25,203,5,5,160,233,5,5,25,167,5,5,76,209,5,5,238,221,5,5,218,206,5,5,152,177,5,5,119,218,5,5,41,174,5,5,60,167,5,5,73,207,5,5,59,228,5,5,140,163,5,5,166,183,5,5,74,207,5,5,85,187,5,5,170,192,5,5,180,239,5,5,236,201,5,5,110,178,5,5,154,215,5,5,251,203,5,5,111,178,5,5,148,221,5,5,79,212,5,5,49,196,5,5,80,222,5,5,43,194,5,5,150,212,5,5,149,196,5,5,75,216,5,5,104,223,5,5,35,190,5,5,113,168,5,5,254,218,5,5,58,203,5,5,58,181,5,5,23,234,5,5,102,205,5,5,64,179,5,5,133,209,5,5,48,165,5,5,56,215,5,5,112,178,5,5,237,201,5,5,254,206,5,5,207,202,5,5,88,229,5,5,227,181,5,5,225,225,5,5,176,206,5,5,245,183,5,5,157,214,5,5,142,166,5,5,65,217,5,5,26,235,5,5,79,172,5,5,89,229,5,5,51,189,5,5,19,250,5,5,54,204,5,5,36,224,5,5,137,209,5,5,93,170,5,5,73,179,5,5,126,205,5,5,220,208,5,5,181,245,5,5,97,246,5,5,245,225,5,5,186,203,5,5,98,202,5,5,249,183,5,5,224,206,5,5,225,206,5,5,213,190,5,5,50,190,5,5,164,186,5,5,235,199,5,5,87,207,5,5,52,223,5,5,226,246,5,5,84,212,5,5,156,180,5,5,114,163,5,5,225,232,5,5,117,209,5,5,237,239,5,5,161,234,5,5,111,233,5,5,25,234,5,5,112,233,5,5,194,167,5,5,24,219,5,5,97,221,5,5,155,177,5,5,130,218,5,5,236,247,5,5,73,178,5,5,220,178,5,5,69,226,5,5,22,250,5,5,237,222,5,5,15,177,5,5,101,219,5,5,217,224,5,5,25,226,5,5,127,205,5,5,118,193,5,5,97,180,5,5,32,207,5,5,140,174,5,5,226,232,5,5,59,177,5,5,115,168,5,5,44,230,5,5,173,184,5,5,187,180,5,5,159,223,5,5,92,182,5,5,55,205,5,5,152,175,5,5,177,234,5,5,148,208,5,5,79,179,5,5,51,211,5,5,84,184,5,5,135,177,5,5,190,180,5,5,109,202,5,5,3,184,5,5,70,167,5,5,30,188,5,5,152,232,5,5,93,165,5,5,165,226,5,5,63,190,5,5,255,187,5,5,166,234,5,5,62,180,5,5,117,175,5,5,194,236,5,5,98,213,5,5,151,196,5,5,16,202,5,5,137,218,5,5,53,211,5,5,191,176,5,5,74,167,5,5,116,233,5,5,158,188,5,5,203,164,5,5,64,232,5,5,86,184,5,5,132,165,5,5,86,182,5,5,10,207,5,5,131,176,5,5,143,234,5,5,71,215,5,5,30,173,5,5,182,225,5,5,221,222,5,5,196,178,5,5,62,163,5,5,169,234,5,5,170,234,5,5,190,207,5,5,191,207,5,5,34,189,5,5,43,179,5,5,155,209,5,5,113,207,5,5,4,169,5,5,222,187,5,5,197,178,5,5,8,235,5,5,37,197,5,5,92,232,5,5,41,175,5,5,101,165,5,5,102,165,5,5,180,221,5,5,102,207,5,5,183,225,5,5,208,209,5,5,202,178,5,5,48,224,5,5,26,202,5,5,77,245,5,5,241,248,5,5,87,184,5,5,36,189,5,5,212,187,5,5,139,218,5,5,156,187,5,5,51,219,5,5,115,224,5,5,185,225,5,5,180,178,5,5,163,246,5,5,21,191,5,5,37,189,5,5,78,215,5,5,166,246,5,5,57,233,5,5,59,186,5,5,117,214,5,5,160,230,5,5,206,235,5,5,23,184,5,5,89,179,5,5,233,211,5,5,234,203,5,5,10,235,5,5,191,234,5,5,103,213,5,5,147,196,5,5,212,207,5,5,38,189,5,5,137,228,5,5,201,194,5,5,236,175,5,5,144,173,5,5,171,211,5,5,205,180,5,5,87,178,5,5,88,178,5,5,209,194,5,5,124,186,5,5,149,230,5,5,124,190,5,5,49,238,5,5,251,201,5,5,3,207,5,5,116,180,5,5,68,197,5,5,214,185,5,5,249,242,5,5,16,170,5,5,223,195,5,5,191,211,5,5,249,185,5,5,217,185,5,5,94,178,5,5,138,218,5,5,107,243,5,5,208,180,5,5,174,175,5,5,238,244,5,5,178,248,5,5,174,223,5,5,27,241,5,5,10,194,5,5,20,208,5,5,124,246,5,5,213,248,5,5,26,216,5,5,95,175,5,5,97,217,5,5,55,173,5,5,133,230,5,5,55,228,5,5,13,197,5,5,78,229,5,5,144,182,5,5,194,224,5,5,100,175,5,5,221,237,5,5,247,182,5,5,191,208,5,5,28,170,5,5,30,231,5,5,136,230,5,5,126,210,5,5,133,222,5,5,115,201,5,5,234,198,5,5,209,211,5,5,34,197,5,5,219,176,5,5,127,189,5,5,103,175,5,5,100,238,5,5,223,220,5,5,62,173,5,5,8,197,5,5,68,244,5,5,143,167,5,5,225,163,5,5,17,193,5,5,18,193,5,5,21,167,5,5,239,221,5,5,100,231,5,5,231,237,5,5,6,163,5,5,33,220,5,5,172,218,5,5,172,241,5,5,10,195,5,5,99,240,5,5,245,218,5,5,85,227,5,5,197,168,5,5,41,239,5,5,226,194,5,5,251,206,5,5,96,204,5,5,167,194,5,5,128,197,5,5,97,195,5,5,80,212,5,5,20,220,5,5,49,232,5,5,255,218,5,5,173,227,5,5,77,189,5,5,126,248,5,5,238,227,5,5,59,242,5,5,241,246,5,5,218,243,5,5,151,219,5,5,225,246,5,5,175,174,5,5,104,211,5,5,24,220,5,5,172,183,5,5,156,186,5,5,153,219,5,5,146,220,5,5,79,189,5,5,145,231,5,5,31,200,5,5,103,247,5,5,10,226,5,5,188,193,5,5,181,195,5,5,238,239,5,5,170,167,5,5,188,210,5,5,142,194,5,5,82,184,5,5,203,168,5,5,90,194,5,5,238,163,5,5,214,190,5,5,215,166,5,5,53,189,5,5,36,231,5,5,45,230,5,5,105,202,5,5,49,244,5,5,122,215,5,5,63,226,5,5,60,234,5,5,89,226,5,5,192,191,5,5,64,242,5,5,122,201,5,5,93,229,5,5,241,174,5,5,149,231,5,5,141,174,5,5,10,247,5,5,139,164,5,5,127,220,5,5,239,247,5,5,12,247,5,5,169,179,5,5,72,193,5,5,203,220,5,5,217,213,5,5,75,249,5,5,64,190,5,5,19,204,5,5,249,223,5,5,136,222,5,5,154,246,5,5,14,201,5,5,91,217,5,5,161,219,5,5,110,204,5,5,151,220,5,5,108,166,5,5,206,185,5,5,121,173,5,5,252,172,5,5,251,188,5,5,199,191,5,5,247,235,5,5,185,195,5,5,198,200,5,5,248,239,5,5,115,202,5,5,111,222,5,5,48,239,5,5,167,248,5,5,148,205,5,5,126,201,5,5,107,185,5,5,7,167,5,5,157,187,5,5,162,187,5,5,221,189,5,5,39,189,5,5,172,223,5,5,20,241,5,5,253,193,5,5,93,217,5,5,78,175,5,5,124,230,5,5,131,222,5,5,197,237,5,5,197,190,5,5,27,231,5,5,111,201,5,5,8,193,5,5,5,195,5,5,192,189,5,5,32,220,5,5,164,218,5,5,53,240,5,5,227,198,5,5,214,220,5,5,52,187,5,5,163,241,5,5,92,211,5,5,63,227,5,5,47,232,5,5,214,218,5,5,89,204,5,5,8,220,5,5,62,212,5,5,11,190,5,5,90,204,5,5,143,219,5,5,167,174,5,5,72,189,5,5,77,184,5,5,226,163,5,5,18,200,5,5,135,194,5,5,99,247,5,5,46,189,5,5,5,226,5,5,129,231,5,5,59,234,5,5,125,174,5,5,86,202,5,5,5,247,5,5,87,229,5,5,3,167,5,5,63,249,5,5,210,213,5,5,78,184,5,5,51,190,5,5,155,219,5,5,242,188,5,5,244,215,5,5,19,193,5,5,180,233,5,5,181,233,5,5,44,168,5,5,44,233,5,5,247,165,5,5,247,184,5,5,248,184,5,5,189,233,5,5,51,217,5,5,112,164,5,5,250,165,5,5,251,165,5,5,252,165,5,5,52,217,5,5,253,165,5,5,82,164,5,5,198,233,5,5,254,165,5,5,255,165,5,5,183,224,5,5,214,230,5,5,193,184,5,5,195,184,5,5,150,224,5,5,250,225,5,5,249,225,5,5,214,240,5,5,176,230,5,5,193,165,5,5,194,165,5,5,229,226,5,5,228,230,5,5,223,187,5,5,17,175,5,5,67,224,5,5,110,192,5,5,63,210,5,5,141,247,5,5,142,247,5,5,29,209,5,5,2,218,5,5,135,239,5,5,192,193,5,5,177,169,5,5,115,208,5,5,211,231,5,5,110,247,5,5,244,181,5,5,157,222,5,5,156,244,5,5,213,180,5,5,180,249,5,5,212,205,5,5,176,198,5,5,28,241,5,5,41,173,5,5,94,245,5,5,22,175,5,5,154,237,5,5,183,197,5,5,172,219,5,5,255,222,5,5,213,205,5,5,84,249,5,5,8,246,5,5,118,188,5,5,35,223,5,5,188,223,5,5,205,183,5,5,23,181,5,5,202,218,5,5,153,239,5,5,98,208,5,5,14,203,5,5,185,224,5,5,93,175,5,5,55,239,5,5,167,176,5,5,197,166,5,5,217,221,5,5,30,177,5,5,242,231,5,5,177,179,5,5,137,229,5,5,29,182,5,5,6,212,5,5,149,206,5,5,49,200,5,5,17,179,5,5,110,242,5,5,38,171,5,5,196,164,5,5,219,201,5,5,19,183,5,5,164,239,5,5,150,203,5,5,82,222,5,5,193,187,5,5,11,218,5,5,96,182,5,5,124,237,5,5,64,227,5,5,179,179,5,5,118,167,5,5,53,198,5,5,207,183,5,5,211,178,5,5,100,208,5,5,151,217,5,5,12,218,5,5,104,166,5,5,15,242,5,5,140,214,5,5,21,210,5,5,224,179,5,5,175,221,5,5,22,210,5,5,241,176,5,5,242,176,5,5,209,181,5,5,162,206,5,5,224,180,5,5,207,175,5,5,229,239,5,5,176,219,5,5,158,182,5,5,181,194,5,5,105,245,5,5,68,227,5,5,142,225,5,5,154,236,5,5,83,232,5,5,119,212,5,5,239,173,5,5,123,188,5,5,241,236,5,5,51,200,5,5,4,187,5,5,100,193,5,5,54,185,5,5,136,164,5,5,203,234,5,5,160,207,5,5,197,164,5,5,229,200,5,5,75,175,5,5,25,190,5,5,51,242,5,5,19,220,5,5,225,205,5,5,96,248,5,5,244,225,5,5,121,196,5,5,235,245,5,5,228,180,5,5,100,240,5,5,33,175,5,5,86,249,5,5,95,190,5,5,211,164,5,5,166,184,5,5,218,247,5,5,105,176,5,5,11,237,5,5,215,178,5,5,33,237,5,5,240,242,5,5,60,226,5,5,46,223,5,5,176,180,5,5,110,248,5,5,251,226,5,5,185,220,5,5,56,242,5,5,190,249,5,5,242,237,5,5,245,165,5,5,193,193,5,5,243,237,5,5,208,213,5,5,55,201,5,5,35,210,5,5,162,175,5,5,34,175,5,5,29,246,5,5,122,183,5,5,181,239,5,5,98,192,5,5,186,241,5,5,66,224,5,5,52,188,5,5,19,218,5,5,68,179,5,5,6,177,5,5,49,223,5,5,87,249,5,5,176,236,5,5,69,179,5,5,159,210,5,5,65,169,5,5,187,241,5,5,112,194,5,5,27,221,5,5,117,238,5,5,93,227,5,5,228,233,5,5,114,223,5,5,185,236,5,5,62,232,5,5,125,219,5,5,218,178,5,5,11,177,5,5,244,185,5,5,54,223,5,5,176,234,5,5,243,188,5,5,72,233,5,5,30,230,5,5,96,210,5,5,153,217,5,5,141,248,5,5,193,239,5,5,124,245,5,5,244,187,5,5,98,207,5,5,105,227,5,5,89,165,5,5,154,241,5,5,186,169,5,5,103,214,5,5,46,237,5,5,187,197,5,5,95,220,5,5,140,180,5,5,65,239,5,5,164,171,5,5,206,165,5,5,210,165,5,5,232,184,5,5,227,186,5,5,79,249,5,5,206,241,5,5,114,190,5,5,19,187,5,5,22,240,5,5,143,181,5,5,135,176,5,5,253,208,5,5,213,249,5,5,39,228,5,5,73,198,5,5,158,247,5,5,185,170,5,5,182,230,5,5,131,212,5,5,250,246,5,5,22,197,5,5,21,174,5,5,235,195,5,5,6,166,5,5,149,173,5,5,141,216,5,5,236,182,5,5,245,215,5,5,182,228,5,5,140,164,5,5,32,249,5,5,24,235,5,5,180,199,5,5,253,213,5,5,146,164,5,5,249,244,5,5,51,207,5,5,35,242,5,5,78,198,5,5,110,179,5,5,219,209,5,5,6,165,5,5,205,167,5,5,61,166,5,5,3,228,5,5,205,163,5,5,156,245,5,5,207,176,5,5,96,232,5,5,85,241,5,5,219,188,5,5,2,197,5,5,213,193,5,5,135,221,5,5,194,226,5,5,8,196,5,5,62,248,5,5,217,191,5,5,100,197,5,5,99,209,5,5,203,218,5,5,59,202,5,5,171,200,5,5,51,198,5,5,146,216,5,5,243,203,5,5,46,213,5,5,229,193,5,5,154,184,5,5,104,186,5,5,43,203,5,5,84,196,5,5,116,221,5,5,148,186,5,5,182,249,5,5,174,242,5,5,97,225,5,5,200,175,5,5,196,212,5,5,48,191,5,5,163,174,5,5,23,245,5,5,100,174,5,5,44,192,5,5,240,197,5,5,107,186,5,5,47,203,5,5,236,192,5,5,48,208,5,5,207,244,5,5,82,163,5,5,123,213,5,5,214,163,5,5,67,187,5,5,142,249,5,5,140,166,5,5,195,214,5,5,127,208,5,5,255,167,5,5,101,211,5,5,144,193,5,5,14,220,5,5,248,179,5,5,99,232,5,5,180,168,5,5,49,185,5,5,162,183,5,5,169,224,5,5,52,242,5,5,144,166,5,5,44,216,5,5,237,175,5,5,249,206,5,5,228,249,5,5,131,209,5,5,106,239,5,5,184,175,5,5,237,242,5,5,212,169,5,5,239,230,5,5,227,163,5,5,232,237,5,5,83,229,5,5,255,207,5,5,24,248,5,5,187,249,5,5,31,198,5,5,122,196,5,5,48,216,5,5,49,216,5,5,49,236,5,5,79,180,5,5,39,172,5,5,232,212,5,5,215,230,5,5,224,225,5,5,137,231,5,5,104,232,5,5,102,241,5,5,4,245,5,5,52,216,5,5,148,249,5,5,7,198,5,5,222,249,5,5,242,164,5,5,78,170,5,5,243,223,5,5,47,174,5,5,11,188,5,5,188,243,5,5,120,222,5,5,83,199,5,5,138,209,5,5,146,242,5,5,21,221,5,5,145,170,5,5,139,209,5,5,238,216,5,5,139,176,5,5,94,165,5,5,242,217,5,5,72,165,5,5,198,232,5,5,27,246,5,5,125,221,5,5,80,170,5,5,105,228,5,5,236,188,5,5,182,166,5,5,248,175,5,5,237,170,5,5,118,241,5,5,52,234,5,5,95,196,5,5,219,173,5,5,242,170,5,5,109,232,5,5,38,197,5,5,181,188,5,5,153,232,5,5,104,224,5,5,22,242,5,5,19,202,5,5,78,243,5,5,111,224,5,5,189,234,5,5,155,189,5,5,162,200,5,5,38,213,5,5,228,173,5,5,161,232,5,5,158,187,5,5,71,242,5,5,197,177,5,5,6,210,5,5,32,222,5,5,254,166,5,5,55,220,5,5,226,239,5,5,119,192,5,5,185,247,5,5,151,204,5,5,226,242,5,5,38,233,5,5,29,170,5,5,248,220,5,5,13,217,5,5,208,175,5,5,176,220,5,5,83,173,5,5,109,249,5,5,252,174,5,5,183,249,5,5,142,179,5,5,65,181,5,5,77,209,5,5,37,182,5,5,154,234,5,5,65,198,5,5,20,193,5,5,131,236,5,5,118,172,5,5,32,224,5,5,50,232,5,5,53,172,5,5,210,185,5,5,7,226,5,5,33,224,5,5,116,242,5,5,186,182,5,5,175,218,5,5,57,215,5,5,61,206,5,5,126,225,5,5,243,243,5,5,228,181,5,5,101,204,5,5,221,169,5,5,35,196,5,5,59,237,5,5,149,185,5,5,231,168,5,5,46,233,5,5,191,197,5,5,57,243,5,5,217,227,5,5,105,184,5,5,36,246,5,5,52,190,5,5,71,186,5,5,147,242,5,5,192,179,5,5,233,166,5,5,124,220,5,5,110,226,5,5,5,180,5,5,47,233,5,5,104,222,5,5,162,234,5,5,218,196,5,5,188,180,5,5,123,215,5,5,237,177,5,5,28,199,5,5,239,216,5,5,160,216,5,5,34,180,5,5,41,210,5,5,111,226,5,5,199,249,5,5,205,166,5,5,29,195,5,5,59,236,5,5,48,171,5,5,86,212,5,5,60,224,5,5,178,234,5,5,201,249,5,5,26,250,5,5,21,239,5,5,121,219,5,5,192,197,5,5,101,180,5,5,70,206,5,5,89,168,5,5,220,224,5,5,158,248,5,5,220,186,5,5,65,232,5,5,188,185,5,5,121,239,5,5,72,206,5,5,109,166,5,5,111,204,5,5,30,213,5,5,19,180,5,5,119,172,5,5,205,184,5,5,195,240,5,5,17,187,5,5,103,207,5,5,84,243,5,5,196,240,5,5,106,184,5,5,208,230,5,5,208,217,5,5,49,224,5,5,91,243,5,5,159,189,5,5,64,171,5,5,65,171,5,5,107,184,5,5,35,216,5,5,115,204,5,5,221,227,5,5,67,171,5,5,102,243,5,5,234,165,5,5,16,234,5,5,69,227,5,5,115,242,5,5,77,227,5,5,107,227,5,5,250,186,5,5,244,222,5,5,74,241,5,5,76,189,5,5,221,186,5,5,164,205,5,5,165,205,5,5,7,210,5,5,223,239,5,5,10,188,5,5,132,175,5,5,212,219,5,5,198,177,5,5,201,166,5,5,14,210,5,5,0,148,5,5,164,174,5,5,172,220,5,5,107,218,5,5,0,149,5,5,187,190,5,5,165,174,5,5,20,183,5,5,103,177,5,5,94,228,5,5,187,209,5,5,152,195,5,5,74,226,5,5,182,231,5,5,43,173,5,5,112,199,5,5,113,199,5,5,131,198,5,5,195,192,5,5,192,208,5,5,203,170,5,5,11,230,5,5,243,176,5,5,181,235,5,5,125,213,5,5,84,240,5,5,208,223,5,5,197,226,5,5,241,181,5,5,212,212,5,5,215,184,5,5,79,210,5,5,48,210,5,5,97,205,5,5,40,168,5,5,65,241,5,5,177,205,5,5,13,163,5,5,156,173,5,5,198,224,5,5,153,216,5,5,196,175,5,5,222,248,5,5,83,210,5,5,42,174,5,5,217,167,5,5,249,182,5,5,2,216,5,5,166,237,5,5,161,207,5,5,213,178,5,5,59,192,5,5,212,243,5,5,129,210,5,5,93,164,5,5,211,235,5,5,92,230,5,5,233,223,5,5,56,184,5,5,85,173,5,5,169,249,5,5,136,202,5,5,231,210,5,5,218,167,5,5,146,193,5,5,160,201,5,5,183,243,5,5,28,208,5,5,200,226,5,5,101,240,5,5,212,222,5,5,81,213,5,5,241,191,5,5,12,230,5,5,182,199,5,5,143,179,5,5,238,195,5,5,110,249,5,5,83,190,5,5,233,237,5,5,70,247,5,5,70,178,5,5,142,231,5,5,190,183,5,5,221,181,5,5,86,227,5,5,242,171,5,5,21,193,5,5,18,195,5,5,129,189,5,5,76,166,5,5,187,235,5,5,55,193,5,5,100,163,5,5,219,167,5,5,111,248,5,5,188,235,5,5,249,232,5,5,105,166,5,5,57,242,5,5,88,181,5,5,81,203,5,5,186,220,5,5,20,227,5,5,87,227,5,5,123,218,5,5,77,207,5,5,72,224,5,5,206,226,5,5,207,226,5,5,173,217,5,5,214,219,5,5,51,164,5,5,129,197,5,5,49,165,5,5,28,229,5,5,165,225,5,5,252,226,5,5,101,163,5,5,242,221,5,5,105,223,5,5,215,231,5,5,175,166,5,5,187,182,5,5,131,210,5,5,126,174,5,5,197,219,5,5,90,188,5,5,88,210,5,5,127,174,5,5,92,187,5,5,224,248,5,5,220,167,5,5,10,244,5,5,110,164,5,5,55,163,5,5,174,203,5,5,61,192,5,5,152,229,5,5,92,221,5,5,78,172,5,5,84,213,5,5,85,213,5,5,254,176,5,5,30,203,5,5,98,172,5,5,30,180,5,5,182,200,5,5,234,239,5,5,121,235,5,5,35,197,5,5,247,194,5,5,197,163,5,5,110,205,5,5,190,182,5,5,155,216,5,5,169,201,5,5,55,204,5,5,76,223,5,5,79,239,5,5,148,190,5,5,77,166,5,5,91,227,5,5,94,170,5,5,32,203,5,5,189,243,5,5,33,208,5,5,22,220,5,5,181,226,5,5,83,216,5,5,191,182,5,5,130,169,5,5,150,185,5,5,243,201,5,5,127,248,5,5,32,217,5,5,94,230,5,5,85,233,5,5,13,219,5,5,151,212,5,5,97,228,5,5,109,223,5,5,157,215,5,5,156,216,5,5,82,212,5,5,221,167,5,5,255,180,5,5,151,221,5,5,108,216,5,5,43,172,5,5,45,196,5,5,188,241,5,5,60,215,5,5,108,215,5,5,251,214,5,5,34,208,5,5,136,223,5,5,203,185,5,5,91,202,5,5,28,168,5,5,192,230,5,5,80,171,5,5,111,239,5,5,145,243,5,5,169,194,5,5,236,238,5,5,122,177,5,5,86,242,5,5,234,235,5,5,129,195,5,5,135,210,5,5,165,190,5,5,196,235,5,5,30,238,5,5,107,177,5,5,146,198,5,5,16,231,5,5,95,227,5,5,253,195,5,5,40,210,5,5,163,214,5,5,154,219,5,5,25,215,5,5,191,232,5,5,183,180,5,5,208,234,5,5,116,193,5,5,190,201,5,5,216,222,5,5,208,179,5,5,78,191,5,5,224,169,5,5,126,186,5,5,227,246,5,5,7,216,5,5,153,249,5,5,239,163,5,5,122,245,5,5,186,236,5,5,133,248,5,5,98,224,5,5,226,177,5,5,115,163,5,5,147,198,5,5,61,203,5,5,172,201,5,5,6,235,5,5,218,173,5,5,74,224,5,5,228,246,5,5,25,219,5,5,140,235,5,5,118,217,5,5,123,199,5,5,35,248,5,5,35,181,5,5,227,194,5,5,57,222,5,5,114,191,5,5,157,216,5,5,9,211,5,5,223,228,5,5,100,198,5,5,115,191,5,5,67,241,5,5,174,225,5,5,208,232,5,5,226,206,5,5,222,215,5,5,2,181,5,5,210,170,5,5,9,169,5,5,206,186,5,5,92,167,5,5,17,231,5,5,127,225,5,5,52,192,5,5,10,187,5,5,99,179,5,5,100,166,5,5,247,221,5,5,8,221,5,5,193,181,5,5,95,188,5,5,49,233,5,5,95,207,5,5,36,225,5,5,88,249,5,5,131,205,5,5,201,192,5,5,114,177,5,5,194,179,5,5,20,225,5,5,215,190,5,5,189,193,5,5,140,189,5,5,192,163,5,5,56,190,5,5,212,186,5,5,49,211,5,5,45,167,5,5,238,207,5,5,246,171,5,5,50,233,5,5,173,167,5,5,250,238,5,5,227,167,5,5,227,215,5,5,235,240,5,5,85,222,5,5,153,185,5,5,27,195,5,5,60,197,5,5,76,179,5,5,219,196,5,5,253,177,5,5,44,183,5,5,41,226,5,5,150,231,5,5,99,221,5,5,121,164,5,5,255,183,5,5,150,233,5,5,112,226,5,5,9,180,5,5,227,177,5,5,223,208,5,5,141,210,5,5,106,222,5,5,4,202,5,5,142,248,5,5,204,205,5,5,92,194,5,5,41,170,5,5,249,224,5,5,115,181,5,5,15,213,5,5,204,188,5,5,195,179,5,5,95,193,5,5,209,234,5,5,161,229,5,5,202,220,5,5,57,190,5,5,14,171,5,5,58,190,5,5,106,199,5,5,186,165,5,5,125,191,5,5,59,185,5,5,203,195,5,5,184,173,5,5,134,245,5,5,32,183,5,5,243,246,5,5,150,232,5,5,99,199,5,5,65,175,5,5,66,215,5,5,105,168,5,5,169,199,5,5,80,189,5,5,147,172,5,5,168,170,5,5,102,195,5,5,124,244,5,5,161,176,5,5,206,188,5,5,156,193,5,5,163,215,5,5,45,178,5,5,231,181,5,5,38,246,5,5,114,233,5,5,244,174,5,5,46,230,5,5,110,202,5,5,5,238,5,5,37,208,5,5,218,224,5,5,191,180,5,5,91,219,5,5,89,199,5,5,50,244,5,5,178,178,5,5,218,213,5,5,240,247,5,5,255,195,5,5,134,216,5,5,71,201,5,5,103,246,5,5,245,174,5,5,217,219,5,5,140,223,5,5,119,209,5,5,219,226,5,5,124,201,5,5,136,196,5,5,117,181,5,5,98,170,5,5,151,209,5,5,152,209,5,5,41,198,5,5,209,179,5,5,69,235,5,5,193,200,5,5,125,241,5,5,248,171,5,5,137,205,5,5,161,178,5,5,138,205,5,5,107,237,5,5,137,196,5,5,31,199,5,5,124,217,5,5,93,178,5,5,189,203,5,5,204,220,5,5,207,165,5,5,219,222,5,5,154,231,5,5,255,214,5,5,69,241,5,5,248,169,5,5,225,166,5,5,33,238,5,5,233,203,5,5,196,210,5,5,228,169,5,5,236,236,5,5,39,175,5,5,174,164,5,5,220,213,5,5,159,188,5,5,237,236,5,5,114,195,5,5,72,188,5,5,201,241,5,5,130,241,5,5,91,183,5,5,120,247,5,5,89,231,5,5,104,180,5,5,238,236,5,5,54,211,5,5,120,187,5,5,193,229,5,5,43,226,5,5,129,163,5,5,75,167,5,5,16,175,5,5,215,164,5,5,121,236,5,5,202,192,5,5,155,231,5,5,10,245,5,5,193,244,5,5,104,201,5,5,39,181,5,5,73,188,5,5,103,195,5,5,86,237,5,5,147,227,5,5,60,236,5,5,247,246,5,5,17,198,5,5,5,221,5,5,6,221,5,5,127,186,5,5,180,240,5,5,77,249,5,5,118,180,5,5,6,184,5,5,66,213,5,5,37,203,5,5,158,191,5,5,39,169,5,5,226,207,5,5,131,237,5,5,240,232,5,5,239,236,5,5,237,213,5,5,14,174,5,5,71,247,5,5,228,182,5,5,251,189,5,5,240,236,5,5,179,238,5,5,228,232,5,5,119,182,5,5,3,215,5,5,117,194,5,5,181,217,5,5,207,188,5,5,34,228,5,5,159,238,5,5,134,170,5,5,149,169,5,5,104,190,5,5,98,165,5,5,157,246,5,5,76,188,5,5,194,176,5,5,97,236,5,5,139,233,5,5,204,239,5,5,70,190,5,5,126,238,5,5,2,196,5,5,55,211,5,5,224,234,5,5,152,208,5,5,24,225,5,5,63,180,5,5,154,170,5,5,233,249,5,5,151,224,5,5,223,173,5,5,185,206,5,5,172,165,5,5,163,229,5,5,15,186,5,5,29,215,5,5,71,235,5,5,2,191,5,5,156,232,5,5,144,205,5,5,45,234,5,5,228,186,5,5,238,213,5,5,31,213,5,5,224,195,5,5,5,230,5,5,204,164,5,5,60,221,5,5,197,210,5,5,82,225,5,5,75,190,5,5,127,199,5,5,116,202,5,5,243,168,5,5,142,200,5,5,81,211,5,5,178,166,5,5,254,188,5,5,248,235,5,5,30,215,5,5,98,236,5,5,83,225,5,5,179,196,5,5,149,235,5,5,110,188,5,5,62,183,5,5,79,201,5,5,66,168,5,5,54,237,5,5,34,173,5,5,182,209,5,5,50,212,5,5,53,244,5,5,64,180,5,5,115,216,5,5,198,207,5,5,20,204,5,5,75,233,5,5,2,188,5,5,122,209,5,5,189,185,5,5,154,178,5,5,16,216,5,5,126,232,5,5,23,202,5,5,68,205,5,5,222,222,5,5,145,176,5,5,239,240,5,5,230,244,5,5,127,178,5,5,199,207,5,5,92,183,5,5,127,232,5,5,5,169,5,5,4,181,5,5,35,173,5,5,61,221,5,5,209,177,5,5,122,228,5,5,82,195,5,5,2,205,5,5,224,172,5,5,55,237,5,5,253,189,5,5,228,207,5,5,145,200,5,5,168,248,5,5,166,188,5,5,72,222,5,5,156,209,5,5,149,205,5,5,73,222,5,5,105,185,5,5,106,165,5,5,5,181,5,5,199,200,5,5,134,241,5,5,75,178,5,5,191,193,5,5,81,176,5,5,105,207,5,5,122,173,5,5,42,175,5,5,244,163,5,5,201,240,5,5,89,238,5,5,124,233,5,5,26,218,5,5,116,177,5,5,252,221,5,5,210,198,5,5,112,222,5,5,31,202,5,5,19,184,5,5,150,197,5,5,229,199,5,5,107,211,5,5,34,166,5,5,148,244,5,5,181,196,5,5,131,184,5,5,218,216,5,5,150,205,5,5,151,205,5,5,199,210,5,5,161,223,5,5,53,219,5,5,143,171,5,5,241,186,5,5,110,185,5,5,34,202,5,5,66,233,5,5,47,197,5,5,250,228,5,5,186,167,5,5,5,185,5,5,16,178,5,5,195,229,5,5,18,226,5,5,106,191,5,5,179,165,5,5,63,164,5,5,254,189,5,5,240,215,5,5,195,196,5,5,22,191,5,5,15,238,5,5,222,189,5,5,11,216,5,5,152,205,5,5,99,186,5,5,139,163,5,5,10,205,5,5,6,242,5,5,119,224,5,5,64,216,5,5,153,205,5,5,44,213,5,5,125,194,5,5,127,234,5,5,24,184,5,5,140,185,5,5,11,235,5,5,235,211,5,5,94,167,5,5,118,190,5,5,58,233,5,5,181,190,5,5,67,232,5,5,26,184,5,5,213,207,5,5,124,180,5,5,125,229,5,5,61,186,5,5,162,205,5,5,122,191,5,5,212,239,5,5,158,220,5,5,194,177,5,5,206,219,5,5,168,166,5,5,9,188,5,5,240,181,5,5,68,210,5,5,73,226,5,5,46,228,5,5,54,202,5,5,11,173,5,5,98,177,5,5,162,170,5,5,213,184,5,5,26,244,5,5,207,223,5,5,147,216,5,5,237,191,5,5,131,166,5,5,138,179,5,5,56,207,5,5,210,178,5,5,228,223,5,5,206,222,5,5,238,182,5,5,208,163,5,5,190,192,5,5,90,164,5,5,120,210,5,5,236,241,5,5,202,210,5,5,21,208,5,5,253,244,5,5,56,192,5,5,237,195,5,5,153,173,5,5,181,199,5,5,217,179,5,5,53,184,5,5,12,163,5,5,69,248,5,5,123,210,5,5,76,221,5,5,124,210,5,5,43,193,5,5,47,163,5,5,146,237,5,5,188,166,5,5,137,166,5,5,83,163,5,5,214,248,5,5,55,233,5,5,91,172,5,5,25,180,5,5,74,203,5,5,167,177,5,5,43,242,5,5,252,180,5,5,84,163,5,5,106,189,5,5,182,229,5,5,75,210,5,5,52,170,5,5,46,164,5,5,65,227,5,5,164,217,5,5,35,179,5,5,18,165,5,5,155,183,5,5,212,167,5,5,62,178,5,5,152,216,5,5,127,195,5,5,201,185,5,5,60,239,5,5,204,170,5,5,37,241,5,5,82,242,5,5,110,225,5,5,50,203,5,5,63,241,5,5,51,183,5,5,235,218,5,5,70,176,5,5,179,182,5,5,70,191,5,5,104,177,5,5,129,243,5,5,88,195,5,5,85,219,5,5,143,221,5,5,79,213,5,5,218,177,5,5,121,177,5,5,53,215,5,5,114,199,5,5,69,212,5,5,135,227,5,5,72,197,5,5,105,177,5,5,207,191,5,5,35,172,5,5,85,221,5,5,227,235,5,5,41,204,5,5,101,239,5,5,132,224,5,5,179,226,5,5,51,180,5,5,232,238,5,5,182,243,5,5,187,230,5,5,240,221,5,5,177,185,5,5,6,169,5,5,30,245,5,5,55,185,5,5,97,179,5,5,195,188,5,5,249,195,5,5,147,214,5,5,227,236,5,5,5,187,5,5,207,232,5,5,159,225,5,5,147,193,5,5,47,192,5,5,167,237,5,5,19,215,5,5,204,234,5,5,109,191,5,5,209,173,5,5,3,216,5,5,89,188,5,5,79,195,5,5,35,205,5,5,12,231,5,5,155,180,5,5,117,186,5,5,6,211,5,5,219,206,5,5,135,237,5,5,39,211,5,5,167,219,5,5,167,184,5,5,205,234,5,5,33,170,5,5,120,164,5,5,207,208,5,5,62,175,5,5,67,195,5,5,210,196,5,5,247,224,5,5,233,212,5,5,93,193,5,5,97,190,5,5,38,226,5,5,84,222,5,5,193,205,5,5,2,219,5,5,58,215,5,5,236,207,5,5,167,199,5,5,239,166,5,5,252,179,5,5,223,177,5,5,111,205,5,5,78,207,5,5,11,171,5,5,138,231,5,5,114,209,5,5,116,244,5,5,100,195,5,5,47,211,5,5,129,235,5,5,246,237,5,5,137,223,5,5,140,209,5,5,214,222,5,5,174,178,5,5,54,236,5,5,56,201,5,5,183,200,5,5,31,238,5,5,41,178,5,5,245,169,5,5,12,186,5,5,143,231,5,5,214,172,5,5,222,169,5,5,137,169,5,5,2,221,5,5,116,163,5,5,187,191,5,5,250,183,5,5,117,180,5,5,225,207,5,5,251,183,5,5,227,182,5,5,58,188,5,5,34,192,5,5,171,164,5,5,139,240,5,5,33,203,5,5,23,166,5,5,79,231,5,5,161,165,5,5,60,180,5,5,152,170,5,5,100,190,5,5,199,164,5,5,229,249,5,5,180,206,5,5,159,176,5,5,227,232,5,5,176,217,5,5,64,188,5,5,101,224,5,5,185,207,5,5,26,188,5,5,239,168,5,5,244,189,5,5,147,178,5,5,36,186,5,5,2,169,5,5,7,235,5,5,52,211,5,5,143,176,5,5,214,199,5,5,97,185,5,5,194,200,5,5,68,222,5,5,160,188,5,5,181,240,5,5,160,223,5,5,174,165,5,5,2,185,5,5,116,224,5,5,63,216,5,5,35,221,5,5,6,225,5,5,152,204,5,5,134,238,5,5,46,177,5,5,183,211,5,5,16,188,5,5,60,171,5,5,34,221,5,5,163,170,5,5,45,169,5,5,223,229,5,5,77,228,5,5,194,199,5,5,164,170,5,5,175,242,5,5,26,165,5,5,132,198,5,5,27,165,5,5,131,228,5,5,80,195,5,5,239,195,5,5,180,164,5,5,161,201,5,5,42,231,5,5,105,236,5,5,103,215,5,5,104,215,5,5,216,204,5,5,9,172,5,5,175,213,5,5,220,229,5,5,210,175,5,5,88,219,5,5,81,183,5,5,87,220,5,5,144,167,5,5,224,213,5,5,130,189,5,5,246,165,5,5,50,165,5,5,43,231,5,5,70,238,5,5,74,194,5,5,184,191,5,5,185,191,5,5,134,172,5,5,226,225,5,5,186,201,5,5,233,193,5,5,13,172,5,5,221,235,5,5,237,196,5,5,146,186,5,5,53,191,5,5,159,181,5,5,165,227,5,5,4,207,5,5,226,248,5,5,227,248,5,5,142,224,5,5,255,211,5,5,31,189,5,5,250,224,5,5,225,227,5,5,238,196,5,5,148,242,5,5,41,247,5,5,193,242,5,5,2,238,5,5,3,201,5,5,143,248,5,5,42,247,5,5,111,216,5,5,5,164,5,5,191,201,5,5,3,212,5,5,230,241,5,5,44,247,5,5,96,164,5,5,251,238,5,5,39,246,5,5,154,243,5,5,66,196,5,5,36,212,5,5,37,186,5,5,238,177,5,5,115,212,5,5,221,173,5,5,94,181,5,5,7,184,5,5,83,179,5,5,104,195,5,5,144,197,5,5,38,212,5,5,138,226,5,5,78,194,5,5,217,175,5,5,20,209,5,5,110,196,5,5,106,180,5,5,80,194,5,5,83,168,5,5,192,195,5,5,159,213,5,5,143,200,5,5,152,224,5,5,54,168,5,5,120,176,5,5,200,200,5,5,87,179,5,5,46,247,5,5,42,179,5,5,159,170,5,5,221,229,5,5,75,228,5,5,21,243,5,5,117,198,5,5,247,164,5,5,59,247,5,5,134,226,5,5,40,231,5,5,7,246,5,5,83,215,5,5,136,201,5,5,194,204,5,5,252,171,5,5,210,195,5,5,171,170,5,5,83,219,5,5,78,183,5,5,214,193,5,5,25,247,5,5,56,179,5,5,3,172,5,5,47,191,5,5,87,195,5,5,127,172,5,5,164,191,5,5,101,197,5,5,227,196,5,5,130,204,5,5,215,248,5,5,108,186,5,5,234,177,5,5,80,248,5,5,136,242,5,5,243,224,5,5,126,213,5,5,30,247,5,5,251,200,5,5,176,242,5,5,222,237,5,5,133,224,5,5,23,186,5,5,252,211,5,5,89,200,5,5,59,196,5,5,22,212,5,5,130,197,5,5,89,181,5,5,35,175,5,5,9,212,5,5,108,198,5,5,190,200,5,5,195,174,5,5,185,174,5,5,18,185,5,5,131,178,5,5,21,216,5,5,57,210,5,5,86,245,5,5,235,191,5,5,179,218,5,5,111,243,5,5,19,244,5,5,190,175,5,5,194,237,5,5,12,229,5,5,85,164,5,5,234,166,5,5,244,195,5,5,163,249,5,5,25,231,5,5,152,218,5,5,236,167,5,5,121,206,5,5,159,173,5,5,20,244,5,5,112,243,5,5,235,220,5,5,98,203,5,5,53,225,5,5,198,237,5,5,162,211,5,5,208,176,5,5,231,232,5,5,7,233,5,5,163,177,5,5,169,189,5,5,134,237,5,5,26,182,5,5,27,182,5,5,183,163,5,5,62,166,5,5,196,174,5,5,160,202,5,5,7,190,5,5,30,191,5,5,184,224,5,5,143,216,5,5,104,178,5,5,8,186,5,5,108,169,5,5,56,206,5,5,68,229,5,5,105,178,5,5,190,215,5,5,32,239,5,5,11,194,5,5,146,247,5,5,218,191,5,5,76,228,5,5,49,208,5,5,195,209,5,5,150,216,5,5,99,226,5,5,206,174,5,5,19,165,5,5,195,213,5,5,78,228,5,5,22,229,5,5,215,218,5,5,215,168,5,5,195,175,5,5,97,249,5,5,245,220,5,5,156,225,5,5,198,215,5,5,178,175,5,5,235,183,5,5,164,249,5,5,147,215,5,5,236,166,5,5,208,172,5,5,100,232,5,5,85,240,5,5,138,178,5,5,205,190,5,5,130,243,5,5,212,206,5,5,35,226,5,5,195,224,5,5,2,168,5,5,123,189,5,5,185,179,5,5,203,215,5,5,17,190,5,5,24,229,5,5,149,215,5,5,137,243,5,5,195,221,5,5,40,244,5,5,179,230,5,5,202,213,5,5,169,226,5,5,46,243,5,5,138,243,5,5,146,229,5,5,156,176,5,5,205,247,5,5,240,190,5,5,236,245,5,5,237,245,5,5,242,183,5,5,139,178,5,5,10,237,5,5,234,238,5,5,48,201,5,5,114,203,5,5,12,237,5,5,213,243,5,5,246,191,5,5,241,242,5,5,23,200,5,5,180,191,5,5,170,249,5,5,115,245,5,5,129,196,5,5,66,238,5,5,142,213,5,5,86,180,5,5,208,202,5,5,53,221,5,5,147,175,5,5,111,238,5,5,143,213,5,5,219,243,5,5,220,235,5,5,27,230,5,5,237,188,5,5,80,182,5,5,140,176,5,5,68,204,5,5,39,237,5,5,13,237,5,5,158,238,5,5,161,215,5,5,116,173,5,5,195,183,5,5,45,239,5,5,13,202,5,5,153,175,5,5,64,213,5,5,228,243,5,5,175,237,5,5,35,200,5,5,37,191,5,5,37,213,5,5,43,187,5,5,108,187,5,5,114,187,5,5,81,222,5,5,253,198,5,5,79,218,5,5,80,237,5,5,248,207,5,5,103,183,5,5,86,240,5,5,18,212,5,5,47,243,5,5,232,210,5,5,84,210,5,5,44,218,5,5,14,241,5,5,77,202,5,5,89,193,5,5,178,200,5,5,3,219,5,5,94,192,5,5,4,208,5,5,185,233,5,5,217,249,5,5,220,206,5,5,166,225,5,5,239,198,5,5,224,231,5,5,149,190,5,5,229,247,5,5,38,224,5,5,87,177,5,5,8,237,5,5,156,198,5,5,212,245,5,5,238,229,5,5,116,194,5,5,179,225,5,5,229,231,5,5,232,249,5,5,17,202,5,5,27,213,5,5,45,224,5,5,109,188,5,5,222,186,5,5,109,183,5,5,73,217,5,5,232,231,5,5,121,202,5,5,122,202,5,5,8,248,5,5,188,247,5,5,75,217,5,5,231,182,5,5,236,172,5,5,230,235,5,5,93,172,5,5,32,247,5,5,86,173,5,5,109,167,5,5,143,249,5,5,86,187,5,5,106,223,5,5,11,244,5,5,131,189,5,5,87,185,5,5,226,238,5,5,10,164,5,5,116,245,5,5,175,177,5,5,106,176,5,5,78,199,5,5,117,245,5,5,108,177,5,5,206,216,5,5,209,202,5,5,106,172,5,5,204,224,5,5,164,214,5,5,120,219,5,5,160,181,5,5,3,221,5,5,6,167,5,5,225,169,5,5,137,189,5,5,146,208,5,5,25,220,5,5,209,199,5,5,166,227,5,5,167,172,5,5,174,201,5,5,91,220,5,5,150,243,5,5,173,183,5,5,250,221,5,5,149,182,5,5,244,188,5,5,179,189,5,5,26,179,5,5,130,244,5,5,126,245,5,5,150,189,5,5,237,229,5,5,151,189,5,5,219,213,5,5,176,201,5,5,155,243,5,5,187,169,5,5,188,169,5,5,176,249,5,5,107,188,5,5,27,171,5,5,32,166,5,5,128,245,5,5,158,246,5,5,70,196,5,5,199,243,5,5,67,213,5,5,187,240,5,5,51,238,5,5,63,176,5,5,150,180,5,5,99,236,5,5,165,248,5,5,76,190,5,5,10,191,5,5,119,175,5,5,118,202,5,5,113,167,5,5,55,244,5,5,29,163,5,5,233,167,5,5,44,246,5,5,229,173,5,5,161,213,5,5,244,202,5,5,167,169,5,5,255,170,5,5,2,171,5,5,111,185,5,5,165,187,5,5,230,199,5,5,53,238,5,5,225,172,5,5,122,175,5,5,23,191,5,5,160,189,5,5,90,238,5,5,232,173,5,5,169,187,5,5,38,164,5,5,179,197,5,5,175,197,5,5,177,197,5,5,97,166,5,5,89,211,5,5,90,211,5,5,167,206,5,5,66,181,5,5,187,220,5,5,172,206,5,5,70,225,5,5,141,211,5,5,177,206,5,5,179,206,5,5,181,177,5,5,181,206,5,5,70,181,5,5,153,172,5,5,163,172,5,5,130,195,5,5,52,171,5,5,217,171,5,5,216,171,5,5,53,164,5,5,108,241,5,5,116,181,5,5,146,200,5,5,135,241,5,5,165,191,5,5,199,177,5,5,149,223,5,5,130,210,5,5,141,230,5,5,175,176,5,5,40,178,5,5,109,245,5,5,142,230,5,5,238,210,5,5,231,205,5,5,49,217,5,5,57,184,5,5,14,163,5,5,215,243,5,5,203,235,5,5,250,182,5,5,131,169,5,5,238,232,5,5,36,175,5,5,111,164,5,5,126,240,5,5,246,241,5,5,191,179,5,5,236,163,5,5,59,203,5,5,170,201,5,5,22,167,5,5,12,244,5,5,99,166,5,5,148,243,5,5,188,191,5,5,193,179,5,5,187,203,5,5,32,214,5,5,215,238,5,5,216,238,5,5,165,198,5,5,228,194,5,5,88,209,5,5,37,175,5,5,171,209,5,5,137,181,5,5,116,170,5,5,229,244,5,5,7,237,5,5,38,181,5,5,203,209,5,5,177,217,5,5,67,197,5,5,194,164,5,5,80,179,5,5,4,229,5,5,80,166,5,5,67,196,5,5,230,206,5,5,8,185,5,5,106,214,5,5,47,230,5,5,151,164,5,5,23,239,5,5,237,209,5,5,238,209,5,5,145,197,5,5,230,214,5,5,109,172,5,5,231,206,5,5,248,204,5,5,209,165,5,5,162,176,5,5,249,204,5,5,14,247,5,5,171,179,5,5,65,192,5,5,84,179,5,5,243,163,5,5,39,214,5,5,76,167,5,5,196,191,5,5,103,165,5,5,71,196,5,5,65,180,5,5,251,185,5,5,61,194,5,5,183,209,5,5,54,217,5,5,27,202,5,5,6,205,5,5,33,206,5,5,164,224,5,5,43,175,5,5,94,199,5,5,175,215,5,5,113,210,5,5,18,178,5,5,163,245,5,5,11,205,5,5,62,186,5,5,12,246,5,5,143,230,5,5,134,174,5,5,12,170,5,5,111,212,5,5,189,191,5,5,98,246,5,5,204,209,5,5,102,198,5,5,49,225,5,5,73,196,5,5,54,230,5,5,203,249,5,5,205,227,5,5,107,246,5,5,195,191,5,5,178,163,5,5,172,179,5,5,66,192,5,5,205,249,5,5,19,192,5,5,104,165,5,5,112,246,5,5,56,237,5,5,15,178,5,5,164,245,5,5,19,178,5,5,2,246,5,5,125,230,5,5,92,174,5,5,94,198,5,5,86,246,5,5,191,249,5,5,162,179,5,5,149,204,5,5,153,204,5,5,62,215,5,5,97,214,5,5,69,215,5,5,20,202,5,5,118,243,5,5,223,231,5,5,192,249,5,5,250,227,5,5,25,185,5,5,174,167,5,5,76,201,5,5,131,244,5,5,206,249,5,5,181,167,5,5,222,238,5,5,157,243,5,5,90,216,5,5,95,199,5,5,88,241,5,5,202,177,5,5,129,211,5,5,116,196,5,5,104,216,5,5,230,229,5,5,66,198,5,5,201,216,5,5,182,239,5,5,204,216,5,5,184,237,5,5,127,237,5,5,150,196,5,5,208,208,5,5,187,198,5,5,112,248,5,5,198,246,5,5,75,164,5,5,216,178,5,5,182,176,5,5,244,175,5,5,91,167,5,5,176,166,5,5,172,189,5,5,196,223,5,5,128,206,5,5,151,185,5,5,138,197,5,5,142,209,5,5,248,237,5,5,172,237,5,5,99,246,5,5,33,214,5,5,63,196,5,5,195,228,5,5,194,239,5,5,198,228,5,5,185,197,5,5,129,178,5,5,36,248,5,5,165,168,5,5,152,185,5,5,179,174,5,5,62,203,5,5,215,179,5,5,123,200,5,5,134,196,5,5,63,203,5,5,87,190,5,5,177,181,5,5,77,225,5,5,219,244,5,5,123,249,5,5,29,199,5,5,153,198,5,5,135,206,5,5,81,182,5,5,82,182,5,5,142,168,5,5,72,185,5,5,83,182,5,5,158,231,5,5,157,231,5,5,42,226,5,5,229,177,5,5,73,185,5,5,13,180,5,5,154,198,5,5,99,210,5,5,30,195,5,5,254,234,5,5,154,217,5,5,212,210,5,5,198,239,5,5,7,236,5,5,194,180,5,5,176,237,5,5,8,238,5,5,196,242,5,5,67,247,5,5,183,195,5,5,245,249,5,5,129,222,5,5,197,242,5,5,166,215,5,5,34,216,5,5,247,239,5,5,108,249,5,5,122,236,5,5,137,177,5,5,138,177,5,5,49,206,5,5,111,196,5,5,157,185,5,5,190,185,5,5,91,168,5,5,221,245,5,5,121,170,5,5,171,234,5,5,207,241,5,5,20,198,5,5,184,209,5,5,98,193,5,5,25,218,5,5,11,243,5,5,148,200,5,5,165,224,5,5,209,230,5,5,4,171,5,5,35,166,5,5,176,215,5,5,150,168,5,5,223,189,5,5,88,186,5,5,25,184,5,5,97,212,5,5,81,241,5,5,201,177,5,5,125,211,5,5,62,198,5,5,98,216,5,5,228,229,5,5,187,216,5,5,190,216,5,5,195,246,5,5,82,193,5,5,212,178,5,5,182,208,5,5,71,164,5,5,125,237,5,5,183,198,5,5,70,248,5,5,196,189,5,5,171,189,5,5,173,166,5,5,126,206,5,5,163,203,5,5,54,203,5,5,174,181,5,5,122,197,5,5,209,244,5,5,104,208,5,5,11,195,5,5,183,239,5,5,141,168,5,5,98,200,5,5,78,182,5,5,138,198,5,5,210,244,5,5,211,244,5,5,21,195,5,5,184,180,5,5,244,249,5,5,249,237,5,5,124,222,5,5,191,242,5,5,173,237,5,5,2,184,5,5,104,170,5,5,134,177,5,5,120,236,5,5,18,198,5,5,156,185,5,5,161,224,5,5,207,230,5,5,149,168,5,5,95,212,5,5,199,173,5,5,148,165,5,5,138,193,5,5,128,174,5,5,178,213,5,5,122,220,5,5,153,165,5,5,214,235,5,5,7,163,5,5,121,179,5,5,205,187,5,5,117,193,5,5,178,217,5,5,241,227,5,5,99,207,5,5,165,165,5,5,147,235,5,5,108,246,5,5,52,244,5,5,204,241,5,5,62,236,5,5,105,195,5,5,63,236,5,5,253,172,5,5,77,188,5,5,69,213,5,5,111,188,5,5,76,168,5,5,77,168,5,5,79,188,5,5,175,165,5,5,176,165,5,5,177,165,5,5,4,188,5,5,192,165,5,5,250,235,5,5,233,173,5,5,6,215,5,5,186,173,5,5,21,244,5,5,108,220,5,5,141,165,5,5,209,235,5,5,75,207,5,5,122,235,5,5,55,236,5,5,189,241,5,5,53,188,5,5,71,168,5,5,162,165,5,5,163,165,5,5,154,172,5,5,255,172,5,5,173,172,5,5,151,172,5,5,241,226,5,5,242,226,5,5,64,234,5,5,220,201,5,5,216,177,5,5,178,235,5,5,16,182,5,5,82,220,5,5,70,237,5,5,81,216,5,5,145,182,5,5,144,230,5,5,97,248,5,5,5,208,5,5,100,223,5,5,216,243,5,5,63,173,5,5,64,173,5,5,73,237,5,5,214,243,5,5,221,179,5,5,184,239,5,5,19,233,5,5,51,165,5,5,201,203,5,5,163,179,5,5,91,188,5,5,190,233,5,5,8,181,5,5,189,235,5,5,27,164,5,5,88,227,5,5,113,178,5,5,200,197,5,5,147,230,5,5,112,181,5,5,56,204,5,5,60,203,5,5,78,166,5,5,190,241,5,5,192,182,5,5,191,233,5,5,84,216,5,5,73,244,5,5,9,208,5,5,62,239,5,5,61,243,5,5,33,185,5,5,244,212,5,5,71,234,5,5,60,163,5,5,37,183,5,5,250,237,5,5,145,166,5,5,69,208,5,5,214,175,5,5,187,236,5,5,230,247,5,5,96,227,5,5,196,241,5,5,12,201,5,5,190,193,5,5,102,227,5,5,132,205,5,5,107,222,5,5,79,166,5,5,228,215,5,5,146,166,5,5,119,241,5,5,10,180,5,5,169,172,5,5,28,221,5,5,149,246,5,5,93,194,5,5,3,238,5,5,185,184,5,5,202,249,5,5,32,199,5,5,72,201,5,5,10,181,5,5,129,200,5,5,244,204,5,5,42,198,5,5,80,238,5,5,102,180,5,5,90,173,5,5,153,246,5,5,76,193,5,5,141,223,5,5,129,237,5,5,105,180,5,5,130,163,5,5,17,192,5,5,155,213,5,5,177,196,5,5,108,188,5,5,61,236,5,5,198,179,5,5,131,241,5,5,158,249,5,5,84,169,5,5,107,180,5,5,119,170,5,5,90,165,5,5,163,248,5,5,4,215,5,5,206,205,5,5,100,236,5,5,180,196,5,5,152,222,5,5,123,228,5,5,119,223,5,5,64,176,5,5,197,240,5,5,24,202,5,5,25,230,5,5,84,225,5,5,237,249,5,5,173,179,5,5,160,246,5,5,91,216,5,5,100,220,5,5,91,173,5,5,203,197,5,5,3,171,5,5,92,243,5,5,90,169,5,5,120,224,5,5,92,216,5,5,119,190,5,5,166,232,5,5,135,183,5,5,226,226,5,5,212,177,5,5,200,201,5,5,255,181,5,5,67,180,5,5,140,182,5,5,109,213,5,5,126,230,5,5,56,248,5,5,85,223,5,5,49,173,5,5,208,243,5,5,79,205,5,5,45,227,5,5,17,164,5,5,169,235,5,5,99,178,5,5,141,239,5,5,56,239,5,5,18,230,5,5,79,216,5,5,102,197,5,5,32,185,5,5,34,204,5,5,185,212,5,5,68,166,5,5,48,163,5,5,201,175,5,5,211,237,5,5,186,247,5,5,34,183,5,5,50,208,5,5,180,193,5,5,7,201,5,5,204,215,5,5,85,194,5,5,134,223,5,5,159,196,5,5,56,193,5,5,42,236,5,5,82,224,5,5,103,241,5,5,69,169,5,5,102,163,5,5,47,188,5,5,250,214,5,5,199,205,5,5,112,170,5,5,92,236,5,5,147,222,5,5,133,183,5,5,17,228,5,5,117,196,5,5,173,193,5,5,41,216,5,5,106,173,5,5,111,163,5,5,191,183,5,5,63,165,5,5,119,163,5,5,230,181,5,5,70,198,5,5,170,172,5,5,245,204,5,5,219,238,5,5,85,238,5,5,248,174,5,5,72,215,5,5,125,249,5,5,10,216,5,5,123,173,5,5,133,168,5,5,12,216,5,5,34,169,5,5,98,248,5,5,241,173,5,5,139,198,5,5,176,176,5,5,38,182,5,5,149,219,5,5,47,223,5,5,235,217,5,5,243,221,5,5,91,218,5,5,4,167,5,5,32,216,5,5,13,230,5,5,215,235,5,5,172,249,5,5,35,247,5,5,126,218,5,5,45,176,5,5,50,191,5,5,60,242,5,5,112,163,5,5,28,164,5,5,168,207,5,5,42,182,5,5,127,240,5,5,180,211,5,5,36,247,5,5,184,211,5,5,87,208,5,5,190,166,5,5,215,219,5,5,18,249,5,5,243,166,5,5,65,220,5,5,88,207,5,5,248,221,5,5,145,184,5,5,227,206,5,5,224,167,5,5,184,232,5,5,95,203,5,5,138,189,5,5,229,220,5,5,123,179,5,5,237,174,5,5,74,244,5,5,21,227,5,5,73,165,5,5,43,182,5,5,44,182,5,5,190,235,5,5,59,188,5,5,57,169,5,5,116,168,5,5,196,179,5,5,29,219,5,5,84,231,5,5,141,180,5,5,25,179,5,5,196,217,5,5,49,212,5,5,170,228,5,5,88,208,5,5,63,239,5,5,201,197,5,5,120,163,5,5,156,221,5,5,152,243,5,5,150,190,5,5,75,220,5,5,58,176,5,5,104,214,5,5,68,188,5,5,7,207,5,5,120,237,5,5,213,210,5,5,211,170,5,5,128,186,5,5,155,198,5,5,232,181,5,5,125,217,5,5,101,182,5,5,74,208,5,5,186,237,5,5,144,225,5,5,135,216,5,5,43,238,5,5,65,190,5,5,86,222,5,5,29,220,5,5,206,227,5,5,118,168,5,5,221,196,5,5,199,179,5,5,60,185,5,5,117,233,5,5,73,195,5,5,233,208,5,5,234,208,5,5,73,243,5,5,171,172,5,5,26,236,5,5,253,242,5,5,197,191,5,5,231,241,5,5,129,245,5,5,125,168,5,5,72,235,5,5,126,168,5,5,145,210,5,5,172,172,5,5,78,201,5,5,146,210,5,5,173,199,5,5,246,247,5,5,197,180,5,5,89,212,5,5,222,213,5,5,119,233,5,5,140,196,5,5,49,230,5,5,148,235,5,5,120,193,5,5,49,182,5,5,247,193,5,5,64,236,5,5,107,210,5,5,136,225,5,5,48,219,5,5,78,188,5,5,183,167,5,5,145,180,5,5,70,213,5,5,50,234,5,5,10,178,5,5,85,243,5,5,80,249,5,5,112,232,5,5,27,236,5,5,124,228,5,5,234,186,5,5,49,219,5,5,242,229,5,5,77,190,5,5,71,213,5,5,107,190,5,5,30,221,5,5,152,169,5,5,160,238,5,5,72,234,5,5,178,165,5,5,73,235,5,5,195,211,5,5,107,165,5,5,50,219,5,5,170,248,5,5,219,216,5,5,128,199,5,5,63,163,5,5,196,236,5,5,185,214,5,5,2,189,5,5,154,220,5,5,198,178,5,5,82,188,5,5,51,182,5,5,142,234,5,5,185,177,5,5,22,204,5,5,6,181,5,5,93,243,5,5,115,190,5,5,102,220,5,5,112,206,5,5,206,240,5,5,136,241,5,5,18,182,5,5,134,168,5,5,73,220,5,5,98,243,5,5,25,191,5,5,56,191,5,5,149,180,5,5,65,216,5,5,249,202,5,5,249,229,5,5,16,207,5,5,74,213,5,5,166,200,5,5,245,186,5,5,181,165,5,5,29,169,5,5,49,248,5,5,19,182,5,5,212,217,5,5,32,223,5,5,156,211,5,5,9,230,5,5,69,163,5,5,46,191,5,5,183,232,5,5,15,227,5,5,170,235,5,5,197,174,5,5,198,206,5,5,97,232,5,5,218,221,5,5,28,182,5,5,143,184,5,5,87,203,5,5,39,240,5,5,85,175,5,5,127,214,5,5,46,169,5,5,119,243,5,5,244,203,5,5,111,199,5,5,136,190,5,5,196,197,5,5,107,168,5,5,142,165,5,5,171,186,5,5,140,225,5,5,35,243,5,5,121,216,5,5,204,210,5,5,51,208,5,5,193,208,5,5,194,208,5,5,63,195,5,5,83,222,5,5,90,233,5,5,155,236,5,5,65,234,5,5,124,168,5,5,246,218,5,5,123,196,5,5,18,236,5,5,110,245,5,5,148,238,5,5,48,188,5,5,89,210,5,5,98,228,5,5,154,165,5,5,99,190,5,5,52,235,5,5,143,224,5,5,69,220,5,5,236,202,5,5,240,229,5,5,59,216,5,5,44,193,5,5,75,246,5,5,87,246,5,5,88,246,5,5,219,247,5,5,162,192,5,5,118,240,5,5,12,239,5,5,213,179,5,5,230,203,5,5,55,164,5,5,240,163,5,5,162,233,5,5,206,180,5,5,221,176,5,5,17,196,5,5,186,197,5,5,149,209,5,5,39,198,5,5,50,196,5,5,193,191,5,5,93,182,5,5,244,192,5,5,117,168,5,5,95,165,5,5,31,195,5,5,87,209,5,5,247,247,5,5,18,237,5,5,250,185,5,5,134,163,5,5,181,214,5,5,157,164,5,5,135,163,5,5,165,233,5,5,187,196,5,5,44,166,5,5,87,169,5,5,5,188,5,5,252,185,5,5,186,214,5,5,17,178,5,5,181,232,5,5,19,237,5,5,209,180,5,5,46,166,5,5,188,196,5,5,224,189,5,5,4,192,5,5,7,192,5,5,199,209,5,5,116,195,5,5,189,209,5,5,191,185,5,5,38,236,5,5,143,165,5,5,208,196,5,5,211,196,5,5,177,176,5,5,179,173,5,5,252,214,5,5,67,230,5,5,34,170,5,5,46,176,5,5,215,196,5,5,39,166,5,5,143,172,5,5,36,181,5,5,225,167,5,5,151,231,5,5,144,172,5,5,70,230,5,5,234,180,5,5,56,164,5,5,74,165,5,5,39,170,5,5,138,174,5,5,44,239,5,5,85,231,5,5,186,211,5,5,211,194,5,5,254,214,5,5,64,196,5,5,220,202,5,5,176,167,5,5,3,222,5,5,242,227,5,5,218,236,5,5,238,180,5,5,115,187,5,5,41,166,5,5,118,233,5,5,192,176,5,5,179,167,5,5,108,237,5,5,100,221,5,5,88,212,5,5,120,233,5,5,235,229,5,5,64,205,5,5,62,182,5,5,36,199,5,5,254,184,5,5,139,204,5,5,245,208,5,5,164,188,5,5,231,220,5,5,45,166,5,5,185,167,5,5,59,169,5,5,86,236,5,5,122,170,5,5,123,170,5,5,128,236,5,5,220,216,5,5,213,187,5,5,110,210,5,5,109,210,5,5,132,183,5,5,201,200,5,5,72,196,5,5,132,184,5,5,47,166,5,5,215,187,5,5,161,230,5,5,202,175,5,5,213,175,5,5,82,183,5,5,192,201,5,5,156,213,5,5,220,175,5,5,112,198,5,5,221,175,5,5,222,175,5,5,140,204,5,5,41,225,5,5,179,248,5,5,180,248,5,5,170,191,5,5,70,243,5,5,180,174,5,5,251,210,5,5,245,193,5,5,121,233,5,5,112,188,5,5,248,193,5,5,243,228,5,5,171,248,5,5,13,194,5,5,10,170,5,5,210,202,5,5,217,208,5,5,129,191,5,5,131,196,5,5,11,201,5,5,9,163,5,5,204,166,5,5,15,170,5,5,212,216,5,5,250,242,5,5,172,214,5,5,66,189,5,5,159,248,5,5,84,182,5,5,150,208,5,5,105,247,5,5,67,189,5,5,155,246,5,5,131,192,5,5,27,223,5,5,78,168,5,5,108,165,5,5,88,169,5,5,144,202,5,5,221,216,5,5,62,224,5,5,17,243,5,5,103,220,5,5,189,247,5,5,134,175,5,5,93,230,5,5,175,203,5,5,35,163,5,5,171,201,5,5,17,182,5,5,109,177,5,5,139,202,5,5,36,217,5,5,174,237,5,5,251,237,5,5,143,227,5,5,189,198,5,5,147,182,5,5,138,169,5,5,231,203,5,5,196,228,5,5,95,164,5,5,68,249,5,5,11,168,5,5,240,189,5,5,37,247,5,5,25,199,5,5,198,189,5,5,216,231,5,5,164,173,5,5,111,173,5,5,253,182,5,5,62,242,5,5,127,168,5,5,156,169,5,5,142,197,5,5,215,213,5,5,187,211,5,5,101,198,5,5,228,167,5,5,141,189,5,5,46,182,5,5,61,163,5,5,42,210,5,5,205,168,5,5,142,174,5,5,82,165,5,5,207,233,5,5,150,246,5,5,228,206,5,5,88,177,5,5,26,163,5,5,65,242,5,5,145,194,5,5,229,167,5,5,68,184,5,5,131,216,5,5,125,179,5,5,58,164,5,5,242,174,5,5,102,219,5,5,96,207,5,5,27,193,5,5,116,227,5,5,27,179,5,5,123,175,5,5,81,179,5,5,190,203,5,5,95,229,5,5,58,198,5,5,87,216,5,5,46,239,5,5,252,238,5,5,40,246,5,5,246,219,5,5,157,221,5,5,248,243,5,5,207,187,5,5,151,190,5,5,205,182,5,5,207,180,5,5,177,240,5,5,96,166,5,5,104,246,5,5,14,204,5,5,19,196,5,5,242,193,5,5,70,215,5,5,194,191,5,5,55,200,5,5,224,185,5,5,2,175,5,5,131,195,5,5,32,215,5,5,74,178,5,5,38,208,5,5,195,180,5,5,215,171,5,5,243,227,5,5,103,219,5,5,219,236,5,5,214,210,5,5,245,247,5,5,38,183,5,5,160,219,5,5,146,194,5,5,245,192,5,5,199,236,5,5,38,245,5,5,44,210,5,5,72,228,5,5,220,168,5,5,241,200,5,5,40,181,5,5,15,187,5,5,145,227,5,5,146,227,5,5,132,195,5,5,248,170,5,5,146,225,5,5,172,187,5,5,121,232,5,5,168,213,5,5,23,250,5,5,175,183,5,5,159,231,5,5,237,208,5,5,101,221,5,5,89,216,5,5,39,183,5,5,113,226,5,5,237,202,5,5,91,177,5,5,121,209,5,5,97,193,5,5,41,220,5,5,246,178,5,5,61,185,5,5,223,172,5,5,176,183,5,5,188,240,5,5,222,196,5,5,71,190,5,5,181,204,5,5,253,224,5,5,107,206,5,5,216,190,5,5,153,189,5,5,110,232,5,5,229,186,5,5,18,171,5,5,122,233,5,5,45,219,5,5,71,184,5,5,100,199,5,5,187,248,5,5,17,177,5,5,221,226,5,5,175,228,5,5,17,201,5,5,198,180,5,5,43,198,5,5,137,216,5,5,162,221,5,5,3,185,5,5,123,233,5,5,57,232,5,5,211,165,5,5,212,165,5,5,243,200,5,5,90,212,5,5,59,232,5,5,252,245,5,5,253,245,5,5,251,247,5,5,92,226,5,5,50,230,5,5,64,177,5,5,80,201,5,5,210,188,5,5,3,243,5,5,239,209,5,5,240,209,5,5,69,205,5,5,217,164,5,5,11,238,5,5,54,244,5,5,250,174,5,5,9,236,5,5,148,192,5,5,182,213,5,5,63,182,5,5,37,199,5,5,118,227,5,5,245,230,5,5,184,217,5,5,16,247,5,5,194,210,5,5,21,198,5,5,11,245,5,5,165,173,5,5,28,236,5,5,80,188,5,5,40,169,5,5,8,227,5,5,222,226,5,5,81,194,5,5,163,231,5,5,147,180,5,5,51,179,5,5,208,241,5,5,181,237,5,5,246,249,5,5,148,210,5,5,246,208,5,5,17,247,5,5,246,230,5,5,227,228,5,5,167,188,5,5,127,238,5,5,30,185,5,5,37,200,5,5,22,172,5,5,245,202,5,5,42,181,5,5,196,211,5,5,7,205,5,5,176,228,5,5,124,170,5,5,73,213,5,5,45,210,5,5,191,165,5,5,246,202,5,5,242,202,5,5,181,221,5,5,34,206,5,5,5,215,5,5,130,222,5,5,238,249,5,5,31,221,5,5,225,195,5,5,77,217,5,5,120,165,5,5,173,248,5,5,197,211,5,5,116,216,5,5,64,163,5,5,81,204,5,5,248,217,5,5,197,236,5,5,82,201,5,5,77,233,5,5,127,228,5,5,128,228,5,5,2,173,5,5,62,194,5,5,3,189,5,5,249,217,5,5,154,171,5,5,101,213,5,5,212,232,5,5,118,216,5,5,142,173,5,5,82,194,5,5,59,198,5,5,99,196,5,5,60,232,5,5,29,236,5,5,104,220,5,5,150,192,5,5,63,194,5,5,231,244,5,5,20,187,5,5,25,225,5,5,164,185,5,5,169,229,5,5,91,238,5,5,210,230,5,5,248,202,5,5,41,217,5,5,96,199,5,5,170,229,5,5,167,187,5,5,216,187,5,5,168,187,5,5,144,171,5,5,207,220,5,5,93,216,5,5,17,238,5,5,225,189,5,5,126,194,5,5,246,186,5,5,81,215,5,5,169,247,5,5,133,175,5,5,132,202,5,5,53,242,5,5,146,182,5,5,233,189,5,5,163,173,5,5,0,152,5,5,131,197,5,5,22,163,5,5,198,168,5,5,67,184,5,5,197,189,5,5,58,242,5,5,99,219,5,5,227,174,5,5,23,163,5,5,52,164,5,5,56,198,5,5,7,168,5,5,118,179,5,5,234,193,5,5,181,203,5,5,125,195,5,5,90,246,5,5,43,239,5,5,193,182,5,5,56,232,5,5,57,198,5,5,89,196,5,5,211,202,5,5,2,204,5,5,61,215,5,5,100,219,5,5,85,216,5,5,238,217,5,5,243,192,5,5,207,186,5,5,145,188,5,5,234,204,5,5,11,187,5,5,4,227,5,5,37,181,5,5,143,194,5,5,144,227,5,5,238,200,5,5,35,208,5,5,215,202,5,5,21,250,5,5,106,211,5,5,142,189,5,5,224,208,5,5,108,232,5,5,168,172,5,5,220,196,5,5,251,224,5,5,96,193,5,5,174,183,5,5,69,184,5,5,89,177,5,5,105,206,5,5,171,228,5,5,215,226,5,5,152,231,5,5,140,173,5,5,60,177,5,5,214,164,5,5,23,225,5,5,192,180,5,5,13,247,5,5,251,245,5,5,6,236,5,5,6,238,5,5,235,209,5,5,246,174,5,5,73,201,5,5,87,212,5,5,28,206,5,5,208,165,5,5,25,236,5,5,125,238,5,5,235,208,5,5,49,179,5,5,79,194,5,5,202,241,5,5,124,167,5,5,250,204,5,5,29,185,5,5,190,165,5,5,76,217,5,5,119,165,5,5,120,170,5,5,20,172,5,5,234,249,5,5,159,246,5,5,68,213,5,5,60,194,5,5,125,228,5,5,255,188,5,5,76,233,5,5,93,199,5,5,149,192,5,5,18,187,5,5,101,220,5,5,94,194,5,5,33,184,5,5,233,239,5,5,129,174,5,5,93,187,5,5,136,204,5,5,107,166,5,5,53,243,5,5,161,174,5,5,84,177,5,5,238,201,5,5,7,174,5,5,229,230,5,5,128,192,5,5,211,226,5,5,8,174,5,5,44,172,5,5,29,164,5,5,16,249,5,5,93,218,5,5,87,199,5,5,242,210,5,5,50,174,5,5,77,164,5,5,38,247,5,5,235,204,5,5,213,226,5,5,134,248,5,5,237,172,5,5,153,241,5,5,175,207,5,5,176,207,5,5,30,168,5,5,156,200,5,5,4,221,5,5,32,164,5,5,62,243,5,5,234,240,5,5,126,221,5,5,157,173,5,5,9,174,5,5,39,247,5,5,174,238,5,5,111,175,5,5,153,191,5,5,196,230,5,5,143,189,5,5,135,171,5,5,143,174,5,5,47,182,5,5,247,171,5,5,110,187,5,5,225,165,5,5,30,219,5,5,154,191,5,5,19,249,5,5,196,233,5,5,214,211,5,5,167,214,5,5,23,223,5,5,56,176,5,5,229,206,5,5,228,241,5,5,28,193,5,5,244,178,5,5,144,248,5,5,13,244,5,5,102,231,5,5,236,240,5,5,3,181,5,5,145,248,5,5,123,181,5,5,125,244,5,5,126,178,5,5,9,245,5,5,47,239,5,5,119,193,5,5,81,238,5,5,94,218,5,5,72,243,5,5,208,198,5,5,173,214,5,5,64,203,5,5,208,187,5,5,158,221,5,5,51,244,5,5,193,180,5,5,177,201,5,5,152,190,5,5,201,230,5,5,99,170,5,5,157,191,5,5,96,230,5,5,15,204,5,5,2,215,5,5,28,220,5,5,95,218,5,5,153,190,5,5,213,198,5,5,96,184,5,5,19,238,5,5,166,190,5,5,65,203,5,5,230,202,5,5,233,181,5,5,158,200,5,5,61,182,5,5,117,166,5,5,39,245,5,5,227,207,5,5,160,248,5,5,131,163,5,5,75,208,5,5,23,218,5,5,216,164,5,5,28,213,5,5,76,208,5,5,9,207,5,5,194,181,5,5,106,206,5,5,196,180,5,5,177,237,5,5,178,237,5,5,15,197,5,5,34,199,5,5,76,245,5,5,174,228,5,5,76,185,5,5,116,204,5,5,95,167,5,5,72,190,5,5,16,168,5,5,98,229,5,5,148,174,5,5,221,238,5,5,69,222,5,5,182,167,5,5,253,210,5,5,104,210,5,5,194,163,5,5,92,177,5,5,73,190,5,5,39,212,5,5,254,204,5,5,11,207,5,5,246,181,5,5,238,240,5,5,22,249,5,5,238,208,5,5,230,186,5,5,132,241,5,5,87,222,5,5,61,197,5,5,118,178,5,5,223,196,5,5,31,229,5,5,239,208,5,5,108,206,5,5,189,240,5,5,190,240,5,5,109,206,5,5,160,231,5,5,62,185,5,5,247,178,5,5,153,208,5,5,114,226,5,5,229,192,5,5,232,206,5,5,192,207,5,5,218,240,5,5,86,233,5,5,21,202,5,5,164,229,5,5,134,244,5,5,120,223,5,5,153,171,5,5,51,230,5,5,223,238,5,5,241,209,5,5,199,180,5,5,38,199,5,5,200,180,5,5,12,238,5,5,124,203,5,5,42,170,5,5,149,174,5,5,93,226,5,5,234,181,5,5,4,243,5,5,148,197,5,5,81,249,5,5,106,168,5,5,224,196,5,5,231,169,5,5,39,199,5,5,141,244,5,5,76,226,5,5,132,245,5,5,13,207,5,5,28,179,5,5,125,234,5,5,180,173,5,5,173,197,5,5,147,244,5,5,82,249,5,5,77,215,5,5,121,247,5,5,223,226,5,5,174,197,5,5,184,225,5,5,109,180,5,5,223,213,5,5,247,230,5,5,81,188,5,5,119,202,5,5,29,193,5,5,5,205,5,5,87,237,5,5,160,198,5,5,199,233,5,5,200,233,5,5,202,240,5,5,4,242,5,5,86,243,5,5,28,202,5,5,150,187,5,5,95,181,5,5,160,195,5,5,158,180,5,5,159,180,5,5,203,240,5,5,235,181,5,5,41,169,5,5,21,204,5,5,20,192,5,5,96,181,5,5,210,224,5,5,120,202,5,5,121,182,5,5,183,219,5,5,128,238,5,5,233,241,5,5,124,239,5,5,180,238,5,5,121,223,5,5,52,219,5,5,113,188,5,5,239,249,5,5,55,191,5,5,109,165,5,5,245,229,5,5,75,222,5,5,253,247,5,5,42,245,5,5,206,207,5,5,201,243,5,5,202,180,5,5,151,235,5,5,23,204,5,5,207,240,5,5,129,199,5,5,110,165,5,5,151,244,5,5,198,236,5,5,83,201,5,5,38,173,5,5,24,204,5,5,6,188,5,5,94,243,5,5,22,192,5,5,184,204,5,5,134,215,5,5,135,215,5,5,236,181,5,5,173,169,5,5,78,233,5,5,174,248,5,5,152,244,5,5,79,190,5,5,122,182,5,5,136,215,5,5,74,217,5,5,208,240,5,5,55,168,5,5,199,225,5,5,116,190,5,5,42,213,5,5,208,239,5,5,37,202,5,5,18,232,5,5,254,247,5,5,105,220,5,5,137,241,5,5,56,244,5,5,56,168,5,5,133,184,5,5,97,199,5,5,66,171,5,5,153,244,5,5,6,171,5,5,198,176,5,5,244,248,5,5,176,248,5,5,141,185,5,5,64,164,5,5,226,189,5,5,176,197,5,5,26,191,5,5,250,229,5,5,246,248,5,5,154,244,5,5,127,194,5,5,236,211,5,5,247,186,5,5,184,190,5,5,29,184,5,5,126,204,5,5,208,201,5,5,248,248,5,5,28,172,5,5,189,226,5,5,168,238,5,5,228,240,5,5,115,234,5,5,19,164,5,5,240,220,5,5,11,193,5,5,232,178,5,5,193,189,5,5,230,240,5,5,135,214,5,5,9,244,5,5,107,189,5,5,9,223,5,5,203,211,5,5,253,248,5,5,63,217,5,5,32,182,5,5,113,235,5,5,236,218,5,5,37,239,5,5,108,193,5,5,247,214,5,5,204,198,5,5,15,220,5,5,144,191,5,5,162,190,5,5,156,201,5,5,31,245,5,5,95,163,5,5,186,186,5,5,221,207,5,5,51,193,5,5,168,237,5,5,99,248,5,5,105,215,5,5,172,180,5,5,65,245,5,5,27,212,5,5,150,171,5,5,212,238,5,5,212,196,5,5,191,163,5,5,162,167,5,5,90,210,5,5,106,226,5,5,223,192,5,5,11,249,5,5,168,236,5,5,18,199,5,5,134,197,5,5,247,237,5,5,65,193,5,5,227,209,5,5,187,233,5,5,223,169,5,5,121,245,5,5,140,240,5,5,248,241,5,5,118,247,5,5,60,188,5,5,99,202,5,5,141,240,5,5,236,204,5,5,165,197,5,5,116,239,5,5,126,244,5,5,180,219,5,5,106,188,5,5,247,187,5,5,16,204,5,5,178,204,5,5,152,248,5,5,67,190,5,5,195,200,5,5,97,220,5,5,132,244,5,5,91,199,5,5,251,170,5,5,121,194,5,5,246,229,5,5,231,189,5,5,179,205,5,5,144,189,5,5,65,205,5,5,131,215,5,5,190,234,5,5,71,205,5,5,74,205,5,5,208,242,5,5,188,234,5,5,18,190,5,5,16,242,5,5,146,234,5,5,138,202,5,5,23,167,5,5,147,234,5,5,24,167,5,5,251,221,5,5,36,208,5,5,201,221,5,5,246,204,5,5,49,171,5,5,50,171,5,5,44,248,5,5,74,188,5,5,208,224,5,5,39,208,5,5,250,188,5,5,177,183,5,5,240,208,5,5,74,190,5,5,182,204,5,5,40,208,5,5,110,206,5,5,132,187,5,5,60,216,5,5,132,215,5,5,39,203,5,5,56,171,5,5,151,187,5,5,212,227,5,5,32,221,5,5,4,189,5,5,113,206,5,5,248,208,5,5,165,189,5,5,210,242,5,5,148,234,5,5,182,169,5,5,178,169,5,5,135,197,5,5,3,224,5,5,51,174,5,5,219,171,5,5,213,171,5,5,53,174,5,5,32,167,5,5,2,212,5,5,189,211,5,5,100,170,5,5,54,174,5,5,232,215,5,5,63,185,5,5,192,211,5,5,221,171,5,5,123,223,5,5,234,173,5,5,38,174,5,5,185,211,5,5,220,171,5,5,23,169,5,5,159,169,5,5,71,169,5,5,32,200,5,5,157,169,5,5,111,232,5,5,186,184,5,5,124,173,5,5,49,201,5,5,50,201,5,5,180,205,5,5,170,194,5,5,69,181,5,5,222,179,5,5,178,201,5,5,155,199,5,5,39,197,5,5,180,201,5,5,110,229,5,5,208,186,5,5,70,184,5,5,29,223,5,5,207,197,5,5,206,197,5,5,142,240,5,5,142,210,5,5,17,176,5,5,150,213,5,5,136,182,5,5,142,169,5,5,135,169,5,5,143,210,5,5,115,175,5,5,235,225,5,5,90,242,5,5,157,177,5,5,122,239,5,5,221,213,5,5,254,242,5,5,193,211,5,5,249,169,5,5,5,243,5,5,124,211,5,5,238,248,5,5,231,186,5,5,87,176,5,5,11,178,5,5,90,234,5,5,154,242,5,5,203,242,5,5,9,243,5,5,19,176,5,5,254,238,5,5,232,220,5,5,120,175,5,5,91,234,5,5,125,239,5,5,233,169,5,5,131,220,5,5,19,243,5,5,20,178,5,5,227,189,5,5,174,218,5,5,126,173,5,5,146,174,5,5,182,174,5,5,210,171,5,5,194,171,5,5,76,249,5,5,168,234,5,5,4,212,5,5,250,223,5,5,149,245,5,5,163,221,5,5,97,218,5,5,5,171,5,5,129,238,5,5,121,165,5,5,52,182,5,5,111,165,5,5,50,249,5,5,241,223,5,5,50,182,5,5,204,177,5,5,115,171,5,5,29,183,5,5,206,177,5,5,153,231,5,5,57,193,5,5,58,193,5,5,245,178,5,5,119,173,5,5,200,179,5,5,24,249,5,5,19,168,5,5,255,224,5,5,21,192,5,5,64,209,5,5,25,249,5,5,66,180,5,5,131,180,5,5,114,229,5,5,107,229,5,5,117,173,5,5,219,172,5,5,45,247,5,5,10,163,5,5,90,177,5,5,48,182,5,5,220,222,5,5,220,211,5,5,30,229,5,5,5,227,5,5,118,242,5,5,7,227,5,5,162,181,5,5,41,245,5,5,95,184,5,5,111,206,5,5,16,201,5,5,15,207,5,5,12,243,5,5,195,181,5,5,152,235,5,5,40,213,5,5,237,215,5,5,15,243,5,5,115,185,5,5,219,164,5,5,229,241,5,5,43,210,5,5,72,198,5,5,127,245,5,5,130,245,5,5,24,198,5,5,116,214,5,5,14,238,5,5,79,219,5,5,31,215,5,5,137,247,5,5,80,219,5,5,211,184,5,5,141,183,5,5,218,208,5,5,192,219,5,5,231,202,5,5,161,231,5,5,29,202,5,5,35,202,5,5,155,208,5,5,252,201,5,5,77,223,5,5,227,224,5,5,229,224,5,5,146,197,5,5,5,241,5,5,200,243,5,5,113,214,5,5,7,164,5,5,15,232,5,5,114,214,5,5,215,223,5,5,26,223,5,5,6,243,5,5,34,207,5,5,41,181,5,5,156,189,5,5,152,189,5,5,153,225,5,5,93,212,5,5,115,214,5,5,205,195,5,5,15,184,5,5,183,204,5,5,232,241,5,5,17,226,5,5,239,196,5,5,46,248,5,5,198,225,5,5,249,239,5,5,178,183,5,5,17,232,5,5,113,232,5,5,244,211,5,5,177,249,5,5,18,243,5,5,183,238,5,5,16,238,5,5,213,245,5,5,211,240,5,5,166,233,5,5,114,232,5,5,144,177,5,5,200,225,5,5,3,206,5,5,46,241,5,5,62,223,5,5,223,224,5,5,116,197,5,5,184,243,5,5,28,207,5,5,132,189,5,5,2,164,5,5,30,181,5,5,144,231,5,5,201,195,5,5,37,248,5,5,11,226,5,5,243,211,5,5,209,245,5,5,248,190,5,5,125,167,5,5,214,194,5,5,126,167,5,5,7,243,5,5,14,191,5,5,39,191,5,5,215,194,5,5,168,195,5,5,44,175,5,5,167,189,5,5,45,175,5,5,225,190,5,5,202,194,5,5,164,195,5,5,241,193,5,5,243,209,5,5,123,165,5,5,210,193,5,5,233,248,5,5,44,226,5,5,151,197,5,5,209,207,5,5,44,214,5,5,177,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,209,5,5,246,192,5,5,174,223,5,5,80,203,5,5,117,199,5,5,71,226,5,5,37,207,5,5,241,193,5,5,241,193,5,5,36,209,5,5,164,205,5,5,239,184,5,5,22,183,5,5,78,186,5,5,83,185,5,5,102,190,5,5,113,190,5,5,101,190,5,5,123,190,5,5,114,190,5,5,26,185,5,5,134,190,5,5,208,185,5,5,138,190,5,5,144,190,5,5,210,185,5,5,150,190,5,5,188,190,5,5,185,190,5,5,50,186,5,5,96,186,5,5,52,186,5,5,184,190,5,5,22,186,5,5,94,186,5,5,39,186,5,5,48,186,5,5,227,184,5,5,253,184,5,5,4,185,5,5,114,186,5,5,129,186,5,5,141,186,5,5,106,186,5,5,104,186,5,5,35,185,5,5,159,186,5,5,175,185,5,5,241,189,5,5,248,189,5,5,211,189,5,5,199,189,5,5,193,185,5,5,214,189,5,5,234,189,5,5,35,190,5,5,76,190,5,5,240,189,5,5,79,190,5,5,31,190,5,5,32,190,5,5,96,191,5,5,24,190,5,5,56,190,5,5,18,190,5,5,223,190,5,5,34,191,5,5,208,184,5,5,15,191,5,5,16,191,5,5,169,185,5,5,125,185,5,5,34,190,5,5,87,185,5,5,131,185,5,5,74,191,5,5,239,185,5,5,146,185,5,5,10,186,5,5,147,185,5,5,82,191,5,5,8,186,5,5,86,185,5,5,10,185,5,5,10,189,5,5,100,189,5,5,155,186,5,5,134,189,5,5,124,189,5,5,123,189,5,5,12,178,5,5,223,182,5,5,26,185,5,5,172,184,5,5,225,175,5,5,120,184,5,5,151,184,5,5,89,191,5,5,74,240,5,5,195,163,5,5,69,167,5,5,238,165,5,5,216,174,5,5,118,166,5,5,90,171,5,5,156,229,5,5,224,236,5,5,62,234,5,5,2,236,5,5,36,229,5,5,101,241,5,5,177,229,5,5,131,227,5,5,183,224,5,5,181,224,5,5,238,226,5,5,234,230,5,5,216,237,5,5,218,237,5,5,68,189,5,5,58,189,5,5,42,189,5,5,43,189,5,5,54,189,5,5,40,189,5,5,78,189,5,5,76,189,5,5,111,187,5,5,58,191,5,5,212,184,5,5,203,189,5,5,65,191,5,5,103,191,5,5,139,187,5,5,53,191,5,5,245,186,5,5,132,187,5,5,208,186,5,5,22,187,5,5,104,187,5,5,105,187,5,5,157,187,5,5,63,184,5,5,140,188,5,5,212,188,5,5,79,184,5,5,132,188,5,5,198,188,5,5,175,188,5,5,64,184,5,5,202,188,5,5,153,188,5,5,82,184,5,5,144,188,5,5,123,188,5,5,206,188,5,5,176,187,5,5,177,187,5,5,25,243,5,5,191,187,5,5,199,187,5,5,177,229,5,5,126,188,5,5,90,184,5,5,73,184,5,5,205,188,5,5,162,188,5,5,210,187,5,5,174,189,5,5,87,189,5,5,120,184,5,5,173,189,5,5,117,188,5,5,98,189,5,5,178,244,5,5,117,189,5,5,119,189,5,5,129,189,5,5,131,189,5,5,160,189,5,5,172,189,5,5,35,187,5,5,14,187,5,5,17,187,5,5,114,187,5,5,226,237,5,5,31,185,5,5,226,187,5,5,234,187,5,5,42,184,5,5,21,188,5,5,26,185,5,5,241,187,5,5,246,187,5,5,13,188,5,5,244,187,5,5,248,190,5,5,113,249,5,5,25,231,5,5,54,188,5,5,55,224,5,5,84,188,5,5,34,188,5,5,28,188,5,5,36,188,5,5,37,188,5,5,40,188,5,5,54,184,5,5,157,185,5,5,99,188,5,5,43,190,5,5,17,190,5,5,198,190,5,5,202,190,5,5,204,190,5,5,214,190,5,5,87,191,5,5,89,187,5,5,57,187,5,5,89,191,5,5,240,190,5,5,30,187,5,5,27,187,5,5,76,191,5,5,29,240,5,5,249,186,5,5,173,186,5,5,150,183,5,5,3,187,5,5,82,187,5,5,209,186,5,5,7,187,5,5,8,187,5,5,250,186,5,5,222,186,5,5,208,183,5,5,212,183,5,5,21,189,5,5,240,188,5,5,241,188,5,5,35,189,5,5,237,188,5,5,3,189,5,5,4,189,5,5,218,188,5,5,225,188,5,5,247,188,5,5,26,187,5,5,70,187,5,5,71,187,5,5,186,222,5,5,192,218,5,5,6,227,5,5,177,228,5,5,146,223,5,5,212,233,5,5,94,209,5,5,36,178,5,5,53,179,5,5,95,180,5,5,194,219,5,5,12,179,5,5,54,164,5,5,141,174,5,5,139,216,5,5,56,206,5,5,78,205,5,5,62,196,5,5,78,245,5,5,75,199,192,0,0,0,192,0,0,0,5,5,230,222,192,0,0,0,5,5,114,211,192,0,0,0,192,0,0,0,5,5,254,212,5,5,140,221,5,5,65,240,5,5,248,186,5,5,179,228,5,5,71,216,5,5,131,174,5,5,172,206,5,5,103,206,5,5,6,248,192,0,0,0,5,5,49,210,192,0,0,0,5,5,154,221,192,0,0,0,192,0,0,0,5,5,100,240,5,5,184,175,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,173,5,5,189,235,5,5,93,194,5,5,174,197,5,5,107,186,5,5,108,187,5,5,55,245,5,5,126,236,5,5,192,171,5,5,195,171,5,5,233,210,5,5,181,163,5,5,79,197,5,5,44,180,5,5,56,209,5,5,210,168,5,5,139,169,5,5,137,234,5,5,185,223,5,5,56,200,5,5,91,195,5,5,196,232,5,5,134,225,5,5,5,172,5,5,164,202,5,5,109,229,5,5,201,169,5,5,188,197,5,5,194,221,5,5,140,198,5,5,196,221,5,5,251,219,5,5,246,232,5,5,189,163,5,5,188,227,5,5,163,218,5,5,172,208,5,5,109,242,5,5,235,232,5,5,226,221,5,5,205,199,5,5,193,220,5,5,64,193,5,5,184,181,5,5,170,203,5,5,202,188,5,5,246,205,5,5,26,173,5,5,112,229,5,5,164,219,5,5,63,224,5,5,55,234,5,5,55,234,5,5,185,219,5,5,164,197,5,5,66,227,5,5,117,241,5,5,205,205,5,5,21,166,5,5,211,232,5,5,249,225,5,5,100,240,5,5,109,183,5,5,90,216,5,5,142,168,5,5,76,200,192,0,0,0,5,5,91,194,192,0,0,0,192,0,0,0,5,5,83,166,5,5,23,197,5,5,52,212,5,5,142,216,5,5,147,226,5,5,216,202,5,5,252,249,5,5,244,227,5,5,79,197,5,5,180,179,5,5,83,200,5,5,159,245,5,5,230,222,5,5,108,173,5,5,216,242,5,5,115,164,5,5,20,165,5,5,193,233,5,5,107,238,5,5,121,240,5,5,20,234,5,5,176,241,5,5,94,247,5,5,216,228,5,5,100,248,5,5,196,232,5,5,151,238,5,5,134,225,5,5,112,175,5,5,197,247,5,5,45,236,5,5,73,166,5,5,102,238,5,5,114,211,5,5,129,186,5,5,111,247,5,5,44,221,5,5,73,175,5,5,131,227,5,5,34,188,5,5,185,243,5,5,127,231,5,5,140,198,5,5,184,206,5,5,196,221,5,5,177,209,5,5,183,207,5,5,46,173,5,5,140,221,5,5,251,220,5,5,183,233,5,5,136,199,5,5,75,194,5,5,8,247,5,5,65,240,5,5,44,229,5,5,102,218,5,5,251,207,5,5,184,219,5,5,91,181,5,5,51,181,5,5,170,203,5,5,144,185,5,5,159,179,5,5,202,188,5,5,191,168,5,5,164,219,5,5,33,201,5,5,115,199,5,5,121,249,5,5,79,211,5,5,247,174,5,5,66,227,5,5,111,177,5,5,154,221,5,5,133,211,5,5,117,241,5,5,172,184,5,5,139,248,5,5,205,205,5,5,2,166,5,5,211,232,5,5,93,229,5,5,54,223,5,5,59,236,5,5,155,216,5,5,195,221,5,5,109,183,5,5,172,206,5,5,178,163,5,5,90,216,5,5,184,237,5,5,142,168,5,5,231,220,5,5,241,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,203,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,238,5,5,125,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,201,32,230,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,14,228,6,5,188,231,6,5,236,229,192,0,0,0,6,5,67,239,6,5,49,178,6,5,199,203,6,5,61,181,6,5,236,203,6,5,223,244,6,5,28,245,6,5,21,188,6,5,119,210,6,5,49,198,6,5,42,232,6,5,4,216,6,5,149,225,6,5,211,222,6,5,8,229,6,5,61,173,6,5,10,229,6,5,26,226,6,5,242,242,6,5,212,179,6,5,114,166,6,5,82,239,6,5,79,236,6,5,56,242,6,5,251,232,6,5,193,222,6,5,94,242,6,5,159,218,6,5,116,232,6,5,46,175,6,5,229,205,6,5,51,197,6,5,84,197,6,5,127,170,6,5,68,242,6,5,197,248,6,5,133,228,6,5,145,191,6,5,160,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,197,195,62,0,197,35,63,0,197,131,63,0,197,227,63,0,197,67,64,0,197,163,64,0,197,3,65,0,197,99,65,0,197,195,65,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,6,5,58,175,6,5,37,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,239,5,5,250,232,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,243,192,0,0,0,5,5,129,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,44,173,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,218,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,251,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,177,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,255,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,181,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,207,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,219,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,215,209,192,0,0,0,5,5,190,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,79,175,5,5,219,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,120,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,93,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,69,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,100,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,198,5,5,57,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,107,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,21,171,192,0,0,0,5,5,195,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,125,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,91,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,101,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,77,172,192,0,0,0,5,5,144,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,165,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,245,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,216,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,176,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,195,192,0,0,0,192,0,0,0,5,5,217,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,115,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,11,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,70,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,26,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,4,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,5,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,132,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,147,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,72,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,90,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,27,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,212,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,224,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,195,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,62,214,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,89,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,229,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,51,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,168,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,225,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,57,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,71,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,238,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,63,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,98,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,54,215,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,209,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,53,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,218,192,0,0,0,5,5,202,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,17,199,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,24,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,65,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,75,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,231,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,127,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,111,166,192,0,0,0,5,5,24,216,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,169,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,106,205,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,183,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,177,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,230,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,189,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,7,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,237,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,45,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,143,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,166,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,103,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,41,234,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,199,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,238,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,240,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,249,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,246,192,0,0,0,192,0,0,0,192,0,0,0,5,5,138,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,2,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,117,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,244,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,15,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,113,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,52,240,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,217,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,206,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,14,175,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,228,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,59,200,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,116,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,18,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,13,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,112,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,192,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,202,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,250,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,182,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,134,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,203,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,34,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,95,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,180,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,211,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,78,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,179,213,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,200,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,110,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,214,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,55,209,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,154,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,16,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,119,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,228,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,243,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,214,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,146,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,130,184,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,174,193,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,227,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,76,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,148,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,188,198,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,58,185,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,198,229,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,186,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,135,225,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,108,180,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,252,227,192,0,0,0,5,5,254,167,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,168,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,122,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,185,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,246,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,244,192,0,0,0,192,0,0,0,192,0,0,0,5,5,84,221,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,32,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,222,5,5,19,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,56,223,192,0,0,0,192,0,0,0,192,0,0,0,5,5,241,247,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,128,220,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,210,207,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,37,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,40,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,129,204,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,144,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,19,211,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,242,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,60,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,243,5,5,105,237,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,192,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,155,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,223,222,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,150,235,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,163,206,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,159,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,121,201,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,118,163,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,232,248,192,0,0,0,5,5,199,239,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,233,217,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,226,197,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,67,188,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,201,164,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,174,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,157,223,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,66,190,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,153,220,5,5,15,247,5,5,241,202,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,187,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,171,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,161,233,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,166,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,193,219,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,42,178,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,109,187,192,0,0,0,192,0,0,0,5,5,36,203,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,212,170,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,152,191,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,220,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,254,224,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,226,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,74,195,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,94,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,189,169,5,5,23,172,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,145,196,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,194,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,178,181,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,227,208,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,162,231,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,88,179,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,6,241,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,96,243,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,183,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,29,187,5,5,184,246,5,5,126,239,192,0,0,0,5,5,181,183,5,5,55,245,5,5,94,182,5,5,87,166,5,5,221,231,5,5,221,163,5,5,126,236,5,5,106,216,192,0,0,0,192,0,0,0,5,5,192,171,5,5,243,181,5,5,81,201,5,5,42,207,192,0,0,0,192,0,0,0,5,5,40,183,5,5,42,232,192,0,0,0,5,5,95,231,5,5,250,248,5,5,51,166,5,5,223,178,5,5,23,197,192,0,0,0,5,5,149,210,5,5,105,230,5,5,235,167,5,5,50,195,5,5,120,190,5,5,145,191,5,5,134,224,192,0,0,0,5,5,252,249,5,5,195,171,5,5,233,210,5,5,244,227,5,5,249,163,5,5,37,235,5,5,195,163,5,5,64,200,5,5,181,163,5,5,92,163,5,5,44,202,5,5,55,202,5,5,94,211,5,5,94,211,5,5,94,211,192,0,0,0,5,5,252,199,5,5,40,202,5,5,66,236,192,0,0,0,5,5,82,204,5,5,80,223,5,5,141,241,5,5,186,215,5,5,171,212,5,5,88,225,5,5,3,220,5,5,199,237,5,5,127,171,5,5,68,180,5,5,9,209,5,5,92,215,5,5,96,228,5,5,96,228,5,5,83,200,5,5,12,223,5,5,68,219,5,5,174,241,5,5,222,181,5,5,44,180,5,5,223,181,5,5,223,197,5,5,97,167,5,5,94,209,5,5,183,222,5,5,93,225,5,5,108,218,5,5,245,181,5,5,144,216,5,5,172,233,5,5,49,164,5,5,7,177,192,0,0,0,5,5,176,169,5,5,255,198,5,5,236,173,5,5,49,178,5,5,24,171,5,5,168,227,192,0,0,0,192,0,0,0,5,5,215,201,5,5,177,247,5,5,95,182,5,5,128,168,5,5,210,174,192,0,0,0,192,0,0,0,5,5,21,230,5,5,77,186,5,5,77,186,192,0,0,0,5,5,254,248,5,5,247,218,5,5,120,184,5,5,35,164,192,0,0,0,5,5,19,228,5,5,9,206,5,5,68,176,5,5,26,242,192,0,0,0,5,5,205,181,5,5,185,223,5,5,14,215,5,5,59,210,192,0,0,0,5,5,227,242,192,0,0,0,5,5,129,177,5,5,124,231,5,5,136,224,5,5,214,217,5,5,238,223,192,0,0,0,5,5,14,218,5,5,209,229,5,5,68,170,5,5,109,173,5,5,150,170,192,0,0,0,192,0,0,0,5,5,86,166,5,5,21,165,5,5,141,229,5,5,114,186,192,0,0,0,5,5,216,194,192,0,0,0,192,0,0,0,5,5,182,247,5,5,149,179,5,5,149,179,192,0,0,0,192,0,0,0,192,0,0,0,5,5,140,216,5,5,79,177,192,0,0,0,5,5,239,178,5,5,97,230,5,5,180,218,5,5,9,197,5,5,251,248,192,0,0,0,192,0,0,0,5,5,56,200,192,0,0,0,5,5,183,178,5,5,182,233,5,5,36,201,5,5,216,228,5,5,36,201,5,5,237,185,5,5,196,232,5,5,223,215,5,5,136,173,5,5,87,234,5,5,239,170,5,5,134,225,5,5,78,186,5,5,86,225,5,5,48,203,5,5,3,196,5,5,43,164,5,5,0,159,5,5,216,207,192,0,0,0,5,5,204,246,5,5,129,168,5,5,184,227,5,5,31,236,5,5,60,202,192,0,0,0,5,5,227,205,5,5,182,242,5,5,224,242,192,0,0,0,5,5,72,169,5,5,63,206,5,5,27,200,5,5,52,204,192,0,0,0,5,5,5,172,5,5,169,206,192,0,0,0,5,5,184,202,5,5,71,229,5,5,216,205,5,5,100,246,5,5,109,229,5,5,2,247,192,0,0,0,5,5,59,170,5,5,200,171,5,5,39,233,5,5,235,205,5,5,237,182,5,5,24,180,5,5,129,186,5,5,111,247,5,5,98,233,5,5,2,209,5,5,139,165,192,0,0,0,5,5,109,199,5,5,199,193,5,5,209,201,5,5,114,236,5,5,201,169,192,0,0,0,5,5,99,238,5,5,118,164,5,5,125,231,192,0,0,0,5,5,71,219,5,5,183,241,5,5,251,191,5,5,176,227,192,0,0,0,5,5,33,219,5,5,206,239,5,5,209,233,192,0,0,0,5,5,213,216,192,0,0,0,5,5,28,237,5,5,6,247,5,5,131,227,5,5,196,209,192,0,0,0,192,0,0,0,192,0,0,0,5,5,48,173,192,0,0,0,5,5,162,242,5,5,116,164,5,5,61,210,5,5,21,245,5,5,221,166,5,5,188,197,5,5,34,188,5,5,251,197,5,5,218,205,5,5,231,183,192,0,0,0,5,5,176,168,5,5,206,192,5,5,137,242,5,5,31,191,5,5,127,231,5,5,130,177,192,0,0,0,5,5,132,242,5,5,246,223,192,0,0,0,192,0,0,0,5,5,110,173,5,5,236,248,5,5,184,206,5,5,195,244,192,0,0,0,5,5,147,210,5,5,29,232,5,5,137,222,5,5,38,180,192,0,0,0,5,5,169,178,192,0,0,0,5,5,56,235,192,0,0,0,5,5,22,235,5,5,183,207,5,5,87,219,192,0,0,0,5,5,220,212,5,5,233,163,192,0,0,0,192,0,0,0,5,5,50,179,5,5,81,247,192,0,0,0,5,5,205,248,5,5,181,168,5,5,181,168,5,5,104,175,5,5,213,247,5,5,251,220,5,5,233,236,5,5,158,212,192,0,0,0,5,5,251,230,192,0,0,0,5,5,31,232,192,0,0,0,5,5,74,240,192,0,0,0,5,5,29,248,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,102,218,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,169,220,5,5,170,220,5,5,170,220,5,5,251,207,5,5,159,203,5,5,173,224,192,0,0,0,192,0,0,0,192,0,0,0,5,5,151,216,5,5,31,190,5,5,91,181,192,0,0,0,192,0,0,0,5,5,235,232,192,0,0,0,192,0,0,0,5,5,131,174,5,5,99,229,192,0,0,0,5,5,64,193,5,5,203,202,5,5,57,247,192,0,0,0,192,0,0,0,192,0,0,0,5,5,164,168,5,5,200,168,192,0,0,0,5,5,146,222,5,5,177,221,192,0,0,0,192,0,0,0,5,5,242,163,192,0,0,0,5,5,69,206,5,5,94,236,5,5,167,202,192,0,0,0,5,5,179,164,5,5,151,241,5,5,141,231,5,5,137,233,5,5,23,236,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,248,223,192,0,0,0,5,5,83,244,5,5,122,238,5,5,164,219,192,0,0,0,192,0,0,0,5,5,162,168,192,0,0,0,5,5,67,235,192,0,0,0,192,0,0,0,5,5,57,248,5,5,236,234,192,0,0,0,5,5,5,168,5,5,225,244,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,182,247,5,5,131,213,5,5,181,233,192,0,0,0,5,5,5,209,5,5,54,248,5,5,67,218,5,5,167,185,5,5,101,199,5,5,152,173,5,5,246,240,5,5,21,196,192,0,0,0,5,5,234,230,5,5,216,223,5,5,57,231,5,5,155,203,5,5,26,245,5,5,213,170,5,5,216,176,5,5,185,219,5,5,183,168,5,5,248,206,5,5,27,208,5,5,28,234,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,196,168,5,5,202,205,5,5,187,234,192,0,0,0,5,5,253,230,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,222,184,5,5,234,189,5,5,109,196,5,5,154,213,5,5,8,223,5,5,81,210,5,5,10,249,5,5,193,168,5,5,121,249,5,5,53,177,5,5,150,221,5,5,222,233,192,0,0,0,5,5,26,194,5,5,88,216,192,0,0,0,5,5,161,222,5,5,87,239,192,0,0,0,5,5,41,188,5,5,216,229,192,0,0,0,5,5,243,242,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,124,225,5,5,139,248,5,5,2,166,5,5,12,227,192,0,0,0,5,5,103,194,5,5,39,165,5,5,167,192,5,5,8,209,192,0,0,0,192,0,0,0,5,5,5,163,5,5,44,205,5,5,113,168,192,0,0,0,5,5,133,230,5,5,93,229,192,0,0,0,192,0,0,0,5,5,253,208,5,5,180,168,5,5,137,231,192,0,0,0,5,5,243,223,5,5,100,163,5,5,118,217,5,5,123,199,5,5,77,166,5,5,81,211,5,5,126,232,192,0,0,0,5,5,80,195,192,0,0,0,5,5,225,227,192,0,0,0,192,0,0,0,5,5,84,210,5,5,2,213,5,5,176,249,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,104,165,192,0,0,0,192,0,0,0,192,0,0,0,5,5,184,237,5,5,184,237,5,5,165,168,192,0,0,0,5,5,220,201,192,0,0,0,5,5,3,238,5,5,125,249,5,5,28,164,5,5,101,182,192,0,0,0,192,0,0,0,5,5,231,220,5,5,242,202,5,5,235,204,192,0,0,0,5,5,117,202,5,5,16,168,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,5,5,23,169,192,0,0,0,5,5,174,218,5,5,194,171,5,5,97,218,5,5,115,171,5,5,119,173,5,5,219,164,192,0,0,0,192,0,0,0,192,0,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,204,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,2,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,1,0,0,205,2,0,0,205,1,0,0,192,0,0,0,192,0,0,0,192,0,0,0,192,0,0,0,0,134,3,4,0,0,0,42,0,134,2,4,0,0,0,42,0,134,3,4,0,0,0,50,0,134,2,4,0,0,0,50,0,134,3,4,0,0,0,58,0,134,2,4,0,0,0,58,0,134,3,4,0,0,0,66,0,134,2,4,0,0,0,66,0,134,3,4,0,0,0,68,0,134,2,4,0,0,0,68,0,134,3,4,0,0,0,70,0,134,2,4,0,0,0,70,0,134,3,4,0,0,0,82,0,134,2,4,0,0,0,82,0,5,3,4,0,0,0,42,0,5,2,4,0,0,0,42,0,5,3,4,0,0,0,50,0,5,2,4,0,0,0,50,0,5,3,4,0,0,0,58,0,5,2,4,0,0,0,58,0,5,3,4,0,0,0,66,0,5,2,4,0,0,0,66,0,5,3,4,0,0,0,68,0,5,2,4,0,0,0,68,0,5,3,4,0,0,0,70,0,5,2,4,0,0,0,70,0,5,3,4,0,0,0,82,0,5,2,4,0,0,0,82,0,134,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,162,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,162,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,160,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,160,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,200,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,200,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,66,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,66,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,210,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,210,0,0,0,0,0,134,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,68,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,68,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,198,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,198,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,208,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,208,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,204,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,204,0,0,0,0,0,134,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,42,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,42,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,50,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,50,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,58,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,58,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,70,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,196,0,0,0,0,0,134,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,134,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,3,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,2,4,0,0,0,82,0,5,0,190,0,0,0,0,0,5,0,196,0,0,0,0,0,5,0,5,0,0,142,9,0,5,0,5,0,0,82,239,28,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,67,239,24,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,79,236,26,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,157,235,12,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,43,245,23,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,99,188,18,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,113,208,27,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,0,128,19,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,141,204,25,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,225,226,16,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,197,248,8,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,178,199,3,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,208,229,4,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,80,172,6,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,237,181,11,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,8,230,9,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,136,221,5,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,68,242,7,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,26,172,14,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,94,179,2,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,168,185,17,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,77,175,22,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,218,198,13,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,58,217,10,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,250,208,21,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,254,213,15,15,0,5,0,0,144,9,0,5,0,5,0,0,142,9,0,5,0,5,0,0,236,214,20,15,0,5,0,0,144,9,0,5,0,5,212,55,18,254,0,0,0,0,134,3,0,42,5,162,0,0,134,2,0,42,5,162,0,0,5,3,0,42,5,162,0,0,5,2,0,42,5,162,0,0,134,3,0,50,5,162,0,0,134,2,0,50,5,162,0,0,5,3,0,50,5,162,0,0,5,2,0,50,5,162,0,0,134,3,0,58,5,162,0,0,134,2,0,58,5,162,0,0,5,3,0,58,5,162,0,0,5,2,0,58,5,162,0,0,134,3,0,68,5,160,0,0,134,2,0,68,5,160,0,0,5,3,0,68,5,160,0,0,5,2,0,68,5,160,0,0,134,3,0,82,5,162,0,0,134,2,0,82,5,162,0,0,134,74,0,82,5,162,0,0,5,3,0,82,5,162,0,0,5,2,0,82,5,162,0,0,5,74,0,82,5,162,0,0,134,3,0,70,5,190,0,0,134,2,0,70,5,190,0,0,5,3,0,70,5,190,0,0,5,2,0,70,5,190,0,0,134,3,0,82,5,190,0,0,134,2,0,82,5,190,0,0,134,74,0,82,5,190,0,0,5,3,0,82,5,190,0,0,5,2,0,82,5,190,0,0,5,74,0,82,5,190,0,0,134,3,0,70,5,162,0,0,134,2,0,70,5,162,0,0,5,3,0,70,5,162,0,0,5,2,0,70,5,162,0,0,134,3,0,50,5,160,0,0,134,2,0,50,5,160,0,0,5,3,0,50,5,160,0,0,5,2,0,50,5,160,0,0,134,3,0,42,5,200,0,0,134,2,0,42,5,200,0,0,5,3,0,42,5,200,0,0,5,2,0,42,5,200,0,0,134,2,0,50,5,138,0,0,5,2,0,50,5,138,0,0,134,2,0,50,5,136,0,0,5,2,0,50,5,136,0,0,134,3,0,50,5,204,0,0,134,2,0,50,5,204,0,0,5,3,0,50,5,204,0,0,5,2,0,50,5,204,0,0,134,3,0,50,5,208,0,0,134,2,0,50,5,208,0,0,5,3,0,50,5,208,0,0,5,2,0,50,5,208,0,0,134,3,0,58,5,208,0,0,134,2,0,58,5,208,0,0,5,3,0,58,5,208,0,0,5,2,0,58,5,208,0,0,134,3,0,66,5,196,0,0,134,2,0,66,5,196,0,0,5,3,0,66,5,196,0,0,5,2,0,66,5,196,0,0,134,3,0,68,5,196,0,0,134,2,0,68,5,196,0,0,5,3,0,68,5,196,0,0,5,2,0,68,5,196,0,0,134,3,0,68,5,210,0,0,134,2,0,68,5,210,0,0,5,3,0,68,5,210,0,0,5,2,0,68,5,210,0,0,134,3,0,68,5,204,0,0,134,2,0,68,5,204,0,0,5,3,0,68,5,204,0,0,5,2,0,68,5,204,0,0,134,2,0,70,5,138,0,0,5,2,0,70,5,138,0,0,134,2,0,70,5,136,0,0,5,2,0,70,5,136,0,0,134,3,0,82,5,198,0,0,134,2,0,82,5,198,0,0,134,74,0,82,5,198,0,0,5,3,0,82,5,198,0,0,5,2,0,82,5,198,0,0,5,74,0,82,5,198,0,0,134,3,0,82,5,208,0,0,134,2,0,82,5,208,0,0,134,74,0,82,5,208,0,0,5,3,0,82,5,208,0,0,5,2,0,82,5,208,0,0,5,74,0,82,5,208,0,0,134,3,0,82,5,204,0,0,134,2,0,82,5,204,0,0,134,74,0,82,5,204,0,0,5,3,0,82,5,204,0,0,5,2,0,82,5,204,0,0,5,74,0,82,5,204,0,0,134,2,0,82,5,150,0,0,5,2,0,82,5,150,0,0,134,3,0,42,5,196,0,0,134,2,0,42,5,196,0,0,5,3,0,42,5,196,0,0,5,2,0,42,5,196,0,0,134,3,0,50,5,196,0,0,134,2,0,50,5,196,0,0,5,3,0,50,5,196,0,0,5,2,0,50,5,196,0,0,134,3,0,58,5,196,0,0,134,2,0,58,5,196,0,0,5,3,0,58,5,196,0,0,5,2,0,58,5,196,0,0,134,3,0,70,5,196,0,0,134,2,0,70,5,196,0,0,5,3,0,70,5,196,0,0,5,2,0,70,5,196,0,0,156,5,0,70,5,190,0,0,5,196,0,0,134,3,0,70,5,190,0,0,5,196,0,0,134,2,0,70,5,190,0,0,5,196,0,0,5,5,0,70,5,190,0,0,5,196,0,0,5,3,0,70,5,190,0,0,5,196,0,0,5,2,0,70,5,190,0,0,5,196,0,0,134,3,0,82,5,196,0,0,134,2,0,82,5,196,0,0,134,74,0,82,5,196,0,0,5,3,0,82,5,196,0,0,5,2,0,82,5,196,0,0,5,74,0,82,5,196,0,0,156,5,0,82,5,190,0,0,5,196,0,0,134,3,0,82,5,190,0,0,5,196,0,0,134,2,0,82,5,190,0,0,5,196,0,0,134,74,0,82,5,190,0,0,5,196,0,0,5,5,0,82,5,190,0,0,5,196,0,0,5,3,0,82,5,190,0,0,5,196,0,0,5,2,0,82,5,190,0,0,5,196,0,0,5,74,0,82,5,190,0,0,5,196,0,0,5,5,142,9,5,5,164,205,6,5,144,9,5,5,142,9,5,5,188,227,13,5,144,9,5,5,142,9,5,5,11,234,8,5,144,9,5,5,142,9,5,5,226,221,12,5,144,9,5,5,142,9,5,5,227,204,14,5,144,9,5,5,142,9,5,5,135,231,7,5,144,9,5,5,142,9,5,5,187,202,11,5,144,9,5,5,142,9,5,5,189,231,10,5,144,9,5,5,142,9,5,5,178,218,9,5,144,9,5,5,0,21,17,5,197,248,5,5,0,23,16,5,197,248,5,5,0,25,15,5,197,248,5,5,0,27,14,5,197,248,5,5,0,29,13,5,197,248,5,5,0,31,12,5,197,248,5,5,0,33,11,5,197,248,5,5,0,35,10,5,197,248,5,5,0,37,9,5,197,248,5,5,0,21,5,5,0,19,20,5,197,248,5,5,0,21,5,5,0,21,19,5,197,248,5,5,0,21,5,5,0,23,18,5,197,248,5,5,0,19,30,5,147,177,5,5,0,21,19,5,147,177,5,5,0,23,13,5,147,177,5,5,0,25,12,5,147,177,5,5,0,27,11,5,147,177,5,5,0,29,10,5,147,177,5,5,0,31,9,5,147,177,5,5,0,33,8,5,147,177,5,5,0,35,7,5,147,177,5,5,0,37,6,5,147,177,5,5,0,21,5,5,0,19,29,5,147,177,5,5,0,21,5,5,0,21,28,5,147,177,5,5,0,21,5,5,0,23,27,5,147,177,5,5,0,21,5,5,0,25,26,5,147,177,5,5,0,21,5,5,0,27,25,5,147,177,5,5,0,21,5,5,0,29,24,5,147,177,5,5,0,21,5,5,0,31,23,5,147,177,5,5,0,21,5,5,0,33,22,5,147,177,5,5,0,21,5,5,0,35,21,5,147,177,5,5,0,21,5,5,0,37,20,5,147,177,5,5,0,23,5,5,0,19,18,5,147,177,5,5,0,23,5,5,0,21,17,5,147,177,5,5,0,23,5,5,0,23,16,5,147,177,5,5,0,23,5,5,0,25,15,5,147,177,5,5,0,23,5,5,0,27,14,5,147,177,5,5,167,168,6,5,86,225,5,5,210,219,6,5,89,197,5,5,47,175,7,5,112,221,5,5,27,172,6,5,191,218,5,5,136,221,5,5,32,227,5,5,66,200,7,5,188,227,5,5,0,21,28,5,8,230,5,5,0,23,17,5,8,230,5,5,0,25,14,5,8,230,5,5,0,27,13,5,8,230,5,5,0,29,12,5,8,230,5,5,0,31,11,5,8,230,5,5,0,33,10,5,8,230,5,5,0,35,9,5,8,230,5,5,0,37,8,5,8,230,5,5,0,21,5,5,0,19,38,5,8,230,5,5,0,21,5,5,0,21,37,5,8,230,5,5,0,21,5,5,0,23,36,5,8,230,5,5,0,21,5,5,0,25,35,5,8,230,5,5,0,21,5,5,0,27,34,5,8,230,5,5,0,21,5,5,0,29,33,5,8,230,5,5,0,21,5,5,0,31,32,5,8,230,5,5,0,21,5,5,0,33,31,5,8,230,5,5,0,21,5,5,0,35,30,5,8,230,5,5,0,21,5,5,0,37,29,5,8,230,5,5,0,23,5,5,0,19,27,5,8,230,5,5,0,23,5,5,0,21,26,5,8,230,5,5,0,23,5,5,0,23,25,5,8,230,5,5,0,23,5,5,0,25,24,5,8,230,5,5,0,23,5,5,0,27,23,5,8,230,5,5,0,23,5,5,0,29,22,5,8,230,5,5,0,23,5,5,0,31,21,5,8,230,5,5,0,23,5,5,0,33,20,5,8,230,5,5,0,23,5,5,0,35,19,5,8,230,5,5,0,23,5,5,0,37,18,5,8,230,5,5,0,25,5,5,0,19,16,5,8,230,5,5,0,25,5,5,0,21,15,5,8,230,5,5,82,10,5,5,122,164,8,5,84,10,5,5,82,10,5,5,79,236,14,5,84,10,5,5,82,10,5,5,67,239,13,5,84,10,5,5,82,10,5,5,198,238,11,5,84,10,5,5,82,10,5,5,147,177,7,5,84,10,5,5,82,10,5,5,46,175,10,5,84,10,5,5,82,10,5,5,159,175,6,5,84,10,5,5,82,10,5,5,46,229,12,5,84,10,5,5,82,10,5,5,171,163,9,5,84,10,160,112,0,42,162,5,0,50,5,112,0,78,19,5,0,78,5,112,0,42,19,5,0,50,0,42,156,5,5,0,12,3,7,0,12,3,198,161,64,3,198,129,65,3,0,234,134,3,0,3,198,129,1,3,0,234,134,3,4,3,0,234,134,2,0,50,156,5,6,0,4,3,12,0,4,3,0,242,134,2,12,3,0,192,198,97,64,3,0,192,198,65,65,3,0,242,134,3,0,3,0,192,198,65,1,3,0,242,134,3,2,3,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,58,156,5,5,0,12,3,9,0,12,3,0,192,198,161,64,3,0,192,198,129,65,3,0,250,134,3,0,3,0,192,198,129,1,3,0,250,134,3,4,3,0,250,134,2,0,66,156,5,5,0,12,3,10,0,12,3,0,192,198,225,64,3,0,192,198,193,65,3,255,255,0,66,134,3,0,3,0,192,198,193,1,3,255,255,0,66,134,3,4,3,255,255,0,66,134,2,0,68,156,5,5,0,12,3,10,0,12,3,1,192,198,33,64,3,1,192,198,1,65,3,255,255,0,68,134,3,0,3,1,192,198,1,1,3,255,255,0,68,134,3,4,3,255,255,0,68,134,2,0,70,156,5,5,0,12,3,10,0,12,3,1,192,198,97,64,3,1,192,198,65,65,3,255,255,0,70,134,3,0,3,1,192,198,65,1,3,255,255,0,70,134,3,4,3,255,255,0,70,134,2,0,82,156,5,7,0,12,3,14,0,12,3,1,192,198,161,64,3,1,192,198,129,65,3,255,255,0,82,134,3,68,3,255,255,0,82,134,71,0,3,1,192,198,129,1,3,255,255,0,82,134,3,4,3,255,255,0,82,134,2,8,3,197,127,0,82,134,74,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,0,42,5,5,5,0,12,3,9,0,12,3,1,192,198,225,64,3,1,192,198,193,65,3,0,234,5,3,0,3,1,192,198,193,1,3,0,234,5,3,4,3,0,234,5,2,0,50,5,5,6,0,4,3,12,0,4,3,0,242,5,2,12,3,2,192,198,33,64,3,2,192,198,1,65,3,0,242,5,3,0,3,2,192,198,1,1,3,0,242,5,3,2,3,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,58,5,5,5,0,12,3,9,0,12,3,2,192,198,97,64,3,2,192,198,65,65,3,0,250,5,3,0,3,2,192,198,65,1,3,0,250,5,3,4,3,0,250,5,2,0,66,5,5,5,0,12,3,10,0,12,3,2,192,198,161,64,3,2,192,198,129,65,3,255,255,0,66,5,3,0,3,2,192,198,129,1,3,255,255,0,66,5,3,4,3,255,255,0,66,5,2,0,68,5,5,5,0,12,3,10,0,12,3,2,192,198,225,64,3,2,192,198,193,65,3,255,255,0,68,5,3,0,3,2,192,198,193,1,3,255,255,0,68,5,3,4,3,255,255,0,68,5,2,0,70,5,5,5,0,12,3,10,0,12,3,3,192,198,33,64,3,3,192,198,1,65,3,255,255,0,70,5,3,0,3,3,192,198,1,1,3,255,255,0,70,5,3,4,3,255,255,0,70,5,2,0,82,5,5,7,0,12,3,14,0,12,3,3,192,198,97,64,3,3,192,198,65,65,3,255,255,0,82,5,3,68,3,255,255,0,82,5,71,0,3,3,192,198,65,1,3,255,255,0,82,5,3,4,3,255,255,0,82,5,2,8,3,197,127,0,82,5,74,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,50,196,142,5,0,12,3,9,0,12,3,0,242,134,72,64,3,0,242,134,73,65,3,0,242,134,71,0,3,0,242,134,73,1,3,0,242,134,71,4,3,0,242,134,70,0,82,134,74,5,0,12,3,12,0,12,3,255,255,0,82,134,72,64,3,255,255,0,82,134,73,65,3,255,255,0,82,134,71,0,3,255,255,0,82,134,73,1,3,255,255,0,82,134,71,4,3,255,255,0,82,134,70,5,50,196,142,5,0,12,3,9,0,12,3,0,242,5,72,64,3,0,242,5,73,65,3,0,242,5,71,0,3,0,242,5,73,1,3,0,242,5,71,4,3,0,242,5,70,0,82,5,74,5,0,12,3,12,0,12,3,255,255,0,82,5,72,64,3,255,255,0,82,5,73,65,3,255,255,0,82,5,71,0,3,255,255,0,82,5,73,1,3,255,255,0,82,5,71,4,3,255,255,0,82,5,70,156,42,196,162,5,0,12,3,8,0,12,3,3,192,198,194,64,3,3,192,198,130,65,3,197,162,0,3,3,192,198,130,1,3,197,162,4,3,0,192,197,98,5,42,196,162,5,0,12,3,9,0,12,3,4,192,198,66,64,3,4,192,198,2,65,3,0,192,197,162,0,3,4,192,198,2,1,3,0,192,197,162,4,3,0,192,197,226,156,50,196,162,5,0,12,3,9,0,12,3,4,192,198,194,64,3,4,192,198,130,65,3,1,192,197,34,0,3,4,192,198,130,1,3,1,192,197,34,4,3,1,192,197,98,5,50,196,162,5,0,12,3,9,0,12,3,5,192,198,66,64,3,5,192,198,2,65,3,1,192,197,162,0,3,5,192,198,2,1,3,1,192,197,162,4,3,1,192,197,226,156,58,196,162,5,0,12,3,9,0,12,3,5,192,198,194,64,3,5,192,198,130,65,3,2,192,197,34,0,3,5,192,198,130,1,3,2,192,197,34,4,3,2,192,197,98,5,58,196,162,5,0,12,3,9,0,12,3,6,192,198,66,64,3,6,192,198,2,65,3,2,192,197,162,0,3,6,192,198,2,1,3,2,192,197,162,4,3,2,192,197,226,156,68,196,160,5,0,12,3,9,0,12,3,6,192,198,194,64,3,6,192,198,130,65,3,3,192,197,34,0,3,6,192,198,130,1,3,3,192,197,34,4,3,3,192,197,98,5,68,196,160,5,0,12,3,9,0,12,3,7,192,198,66,64,3,7,192,198,2,65,3,3,192,197,162,0,3,7,192,198,2,1,3,3,192,197,162,4,3,3,192,197,226,156,82,196,162,6,0,8,3,12,0,8,3,4,192,197,162,12,3,7,192,198,194,64,3,7,192,198,130,65,3,4,192,197,34,0,3,7,192,198,130,1,3,4,192,197,34,4,3,4,192,197,98,5,82,196,162,6,0,8,3,12,0,8,3,5,192,197,98,12,3,8,192,198,66,64,3,8,192,198,2,65,3,4,192,197,226,0,3,8,192,198,2,1,3,4,192,197,226,4,3,5,192,197,34,156,70,196,190,5,0,12,3,9,0,12,3,8,192,198,194,64,3,8,192,198,130,65,3,5,192,197,162,0,3,8,192,198,130,1,3,5,192,197,162,4,3,5,192,197,226,5,70,196,190,5,0,12,3,9,0,12,3,9,192,198,66,64,3,9,192,198,2,65,3,6,192,197,34,0,3,9,192,198,2,1,3,6,192,197,34,4,3,6,192,197,98,156,82,196,190,6,0,8,3,12,0,8,3,7,192,197,34,12,3,9,192,198,194,64,3,9,192,198,130,65,3,6,192,197,162,0,3,9,192,198,130,1,3,6,192,197,162,4,3,6,192,197,226,5,82,196,190,6,0,8,3,12,0,8,3,7,192,197,226,12,3,10,192,198,66,64,3,10,192,198,2,65,3,7,192,197,98,0,3,10,192,198,2,1,3,7,192,197,98,4,3,7,192,197,162,156,70,196,162,5,0,12,3,9,0,12,3,10,192,198,194,64,3,10,192,198,130,65,3,8,192,197,34,0,3,10,192,198,130,1,3,8,192,197,34,4,3,8,192,197,98,5,70,196,162,5,0,12,3,9,0,12,3,11,192,198,66,64,3,11,192,198,2,65,3,8,192,197,162,0,3,11,192,198,2,1,3,8,192,197,162,4,3,8,192,197,226,156,50,196,160,5,0,12,3,9,0,12,3,11,192,198,194,64,3,11,192,198,130,65,3,9,192,197,34,0,3,11,192,198,130,1,3,9,192,197,34,4,3,9,192,197,98,5,50,196,160,5,0,12,3,9,0,12,3,12,192,198,66,64,3,12,192,198,2,65,3,9,192,197,162,0,3,12,192,198,2,1,3,9,192,197,162,4,3,9,192,197,226,156,42,196,200,5,0,12,3,9,0,12,3,12,192,198,194,64,3,12,192,198,130,65,3,10,192,197,34,0,3,12,192,198,130,1,3,10,192,197,34,4,3,10,192,197,98,5,42,196,200,5,0,12,3,9,0,12,3,13,192,198,66,64,3,13,192,198,2,65,3,10,192,197,162,0,3,13,192,198,2,1,3,10,192,197,162,4,3,10,192,197,226,156,50,196,204,5,0,12,3,9,0,12,3,13,192,198,194,64,3,13,192,198,130,65,3,12,192,197,34,0,3,13,192,198,130,1,3,12,192,197,34,4,3,12,192,197,98,5,50,196,204,5,0,12,3,9,0,12,3,14,192,198,66,64,3,14,192,198,2,65,3,12,192,197,162,0,3,14,192,198,2,1,3,12,192,197,162,4,3,12,192,197,226,156,50,196,208,5,0,12,3,9,0,12,3,14,192,198,194,64,3,14,192,198,130,65,3,13,192,197,34,0,3,14,192,198,130,1,3,13,192,197,34,4,3,13,192,197,98,5,50,196,208,5,0,12,3,9,0,12,3,15,192,198,66,64,3,15,192,198,2,65,3,13,192,197,162,0,3,15,192,198,2,1,3,13,192,197,162,4,3,13,192,197,226,156,58,196,208,5,0,12,3,9,0,12,3,15,192,198,194,64,3,15,192,198,130,65,3,14,192,197,34,0,3,15,192,198,130,1,3,14,192,197,34,4,3,14,192,197,98,5,58,196,208,5,0,12,3,9,0,12,3,16,192,198,66,64,3,16,192,198,2,65,3,14,192,197,162,0,3,16,192,198,2,1,3,14,192,197,162,4,3,14,192,197,226,156,66,196,196,5,0,12,3,9,0,12,3,16,192,198,194,64,3,16,192,198,130,65,3,15,192,197,34,0,3,16,192,198,130,1,3,15,192,197,34,4,3,15,192,197,98,5,66,196,196,5,0,12,3,9,0,12,3,17,192,198,66,64,3,17,192,198,2,65,3,15,192,197,162,0,3,17,192,198,2,1,3,15,192,197,162,4,3,15,192,197,226,156,68,196,196,5,0,12,3,9,0,12,3,17,192,198,194,64,3,17,192,198,130,65,3,16,192,197,34,0,3,17,192,198,130,1,3,16,192,197,34,4,3,16,192,197,98,5,68,196,196,5,0,12,3,9,0,12,3,18,192,198,66,64,3,18,192,198,2,65,3,16,192,197,162,0,3,18,192,198,2,1,3,16,192,197,162,4,3,16,192,197,226,156,68,196,210,5,0,12,3,9,0,12,3,18,192,198,194,64,3,18,192,198,130,65,3,17,192,197,34,0,3,18,192,198,130,1,3,17,192,197,34,4,3,17,192,197,98,5,68,196,210,5,0,12,3,9,0,12,3,19,192,198,66,64,3,19,192,198,2,65,3,17,192,197,162,0,3,19,192,198,2,1,3,17,192,197,162,4,3,17,192,197,226,156,68,196,204,5,0,12,3,9,0,12,3,19,192,198,194,64,3,19,192,198,130,65,3,18,192,197,34,0,3,19,192,198,130,1,3,18,192,197,34,4,3,18,192,197,98,5,68,196,204,5,0,12,3,9,0,12,3,20,192,198,66,64,3,20,192,198,2,65,3,18,192,197,162,0,3,20,192,198,2,1,3,18,192,197,162,4,3,18,192,197,226,156,82,196,198,6,0,8,3,12,0,8,3,20,192,197,162,12,3,20,192,198,194,64,3,20,192,198,130,65,3,20,192,197,34,0,3,20,192,198,130,1,3,20,192,197,34,4,3,20,192,197,98,5,82,196,198,6,0,8,3,12,0,8,3,21,192,197,98,12,3,21,192,198,66,64,3,21,192,198,2,65,3,20,192,197,226,0,3,21,192,198,2,1,3,20,192,197,226,4,3,21,192,197,34,156,82,196,208,6,0,8,3,12,0,8,3,22,192,197,34,12,3,21,192,198,194,64,3,21,192,198,130,65,3,21,192,197,162,0,3,21,192,198,130,1,3,21,192,197,162,4,3,21,192,197,226,5,82,196,208,6,0,8,3,12,0,8,3,22,192,197,226,12,3,22,192,198,66,64,3,22,192,198,2,65,3,22,192,197,98,0,3,22,192,198,2,1,3,22,192,197,98,4,3,22,192,197,162,156,82,196,204,6,0,8,3,12,0,8,3,23,192,197,162,12,3,22,192,198,194,64,3,22,192,198,130,65,3,23,192,197,34,0,3,22,192,198,130,1,3,23,192,197,34,4,3,23,192,197,98,5,82,196,204,6,0,8,3,12,0,8,3,24,192,197,98,12,3,23,192,198,66,64,3,23,192,198,2,65,3,23,192,197,226,0,3,23,192,198,2,1,3,23,192,197,226,4,3,24,192,197,34,156,42,196,196,5,0,12,3,9,0,12,3,23,192,198,194,64,3,23,192,198,130,65,3,25,192,197,34,0,3,23,192,198,130,1,3,25,192,197,34,4,3,25,192,197,98,5,42,196,196,5,0,12,3,9,0,12,3,24,192,198,66,64,3,24,192,198,2,65,3,25,192,197,162,0,3,24,192,198,2,1,3,25,192,197,162,4,3,25,192,197,226,156,50,196,196,5,0,12,3,9,0,12,3,24,192,198,194,64,3,24,192,198,130,65,3,26,192,197,34,0,3,24,192,198,130,1,3,26,192,197,34,4,3,26,192,197,98,5,50,196,196,5,0,12,3,9,0,12,3,25,192,198,66,64,3,25,192,198,2,65,3,26,192,197,162,0,3,25,192,198,2,1,3,26,192,197,162,4,3,26,192,197,226,156,58,196,196,5,0,12,3,9,0,12,3,25,192,198,194,64,3,25,192,198,130,65,3,27,192,197,34,0,3,25,192,198,130,1,3,27,192,197,34,4,3,27,192,197,98,5,58,196,196,5,0,12,3,9,0,12,3,26,192,198,66,64,3,26,192,198,2,65,3,27,192,197,162,0,3,26,192,198,2,1,3,27,192,197,162,4,3,27,192,197,226,156,70,196,196,5,0,12,3,9,0,12,3,26,192,198,194,64,3,26,192,198,130,65,3,28,192,197,34,0,3,26,192,198,130,1,3,28,192,197,34,4,3,28,192,197,98,5,70,196,196,5,0,12,3,9,0,12,3,27,192,198,66,64,3,27,192,198,2,65,3,28,192,197,162,0,3,27,192,198,2,1,3,28,192,197,162,4,3,28,192,197,226,29,0,197,35,5,0,12,3,9,0,12,3,27,192,198,227,64,3,27,192,198,131,65,3,29,192,197,131,0,3,27,192,198,131,1,3,29,192,197,131,4,3,29,192,197,227,30,0,197,67,5,0,12,3,9,0,12,3,28,192,198,163,64,3,28,192,198,67,65,3,30,192,197,163,0,3,28,192,198,67,1,3,30,192,197,163,4,3,31,192,197,3,156,82,196,196,6,0,8,3,12,0,8,3,31,192,197,226,12,3,29,192,198,66,64,3,29,192,198,2,65,3,31,192,197,98,0,3,29,192,198,2,1,3,31,192,197,98,4,3,31,192,197,162,5,82,196,196,6,0,8,3,12,0,8,3,32,192,197,162,12,3,29,192,198,194,64,3,29,192,198,130,65,3,32,192,197,34,0,3,29,192,198,130,1,3,32,192,197,34,4,3,32,192,197,98,32,0,197,227,6,0,8,3,12,0,8,3,34,192,197,3,12,3,30,192,198,99,64,3,30,192,198,3,65,3,33,192,197,67,0,3,30,192,198,3,1,3,33,192,197,67,4,3,33,192,197,163,34,0,197,99,6,0,8,3,12,0,8,3,35,192,197,131,12,3,31,192,198,35,64,3,30,192,198,195,65,3,34,192,197,195,0,3,30,192,198,195,1,3,34,192,197,195,4,3,35,192,197,35,41,0,198,161,35,0,23,49,78,0,33,49,38,0,37,49,20,0,37,49,255,255,22,239,5,5,38,49,255,255,24,239,5,5,39,49,255,255,81,239,5,5,40,49,255,255,239,244,5,5,41,49,255,255,138,247,5,5,33,49,255,255,162,238,5,5,34,49,255,255,197,238,5,5,35,49,255,255,255,238,5,5,36,49,255,255,10,239,5,5,27,49,20,0,27,49,255,255,138,237,5,5,28,49,255,255,143,237,5,5,30,49,255,255,20,238,5,5,31,49,255,255,92,238,5,5,32,49,255,255,95,238,5,5,23,49,255,255,104,231,5,5,24,49,255,255,154,233,5,5,25,49,255,255,100,235,5,5,26,49,255,255,132,237,5,5,14,49,38,0,18,49,20,0,18,49,255,255,164,212,5,5,19,49,255,255,53,218,5,5,20,49,255,255,2,223,5,5,21,49,255,255,182,226,5,5,22,49,255,255,6,230,5,5,14,49,255,255,238,194,5,5,15,49,255,255,69,197,5,5,16,49,255,255,193,201,5,5,17,49,255,255,112,208,5,5,9,49,20,0,9,49,255,255,3,175,5,5,10,49,255,255,29,179,5,5,11,49,255,255,221,182,5,5,12,49,255,255,225,184,5,5,13,49,255,255,117,191,5,5,5,49,255,255,0,127,5,5,6,49,255,255,149,166,5,5,7,49,255,255,16,169,5,5,8,49,255,255,111,172,5,5,4,0,6,49,29,49,30,49,42,49,5,2,64,12,32,14,192,14,232,14,24,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,8,12,16,12,24,12,32,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,12,168,12,16,13,184,13,216,14,192,13,176,13,216,12,72,13,80,13,152,13,112,14,144,12,96,12,208,12,160,13,168,16,168,20,168,24,168,28,168,32,168,36,168,40,168,44,168,48,168,52,160,12,152,12,144,14,152,14,160,14,184,12,144,13,26,4,185,60,185,64,185,68,28,4,185,76,185,80,185,84,30,4,186,96,185,100,185,104,32,4,34,4,36,4,185,124,185,128,185,136,186,140,185,144,38,4,185,156,185,160,185,164,185,168,185,172,88,13,168,13,96,13,56,14,80,12,40,14,40,4,168,60,168,64,168,68,42,4,168,76,168,80,168,84,44,4,168,96,168,100,168,104,46,4,48,4,50,4,168,124,168,128,168,136,168,140,168,144,52,4,168,156,168,160,168,164,168,168,168,172,104,13,176,14,112,13,192,14,0,0,0,0,0,0,0,0,0,0,0,0,40,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,66,12,176,12,208,14,224,14,200,14,232,14,184,14,128,13,72,14,96,14,170,56,56,13,168,14,0,0,104,14,64,14,88,14,120,14,169,24,169,28,48,14,1,0,136,13,1,0,80,14,169,20,170,120,64,13,1,0,1,0,1,0,192,12,89,56,57,56,217,57,121,58,57,58,25,58,0,8,217,66,121,72,57,72,54,4,58,74,89,88,57,88,218,89,58,90,217,68,122,114,89,120,57,120,217,121,121,122,57,122,136,14,185,122,89,152,57,152,217,153,56,4,153,169,185,176,2,8,72,56,40,56,200,57,104,58,40,58,8,58,4,8,200,66,104,72,40,72,58,4,40,74,72,88,40,88,200,89,40,90,200,68,104,114,72,120,40,120,200,121,104,122,40,122,128,14,168,122,72,152,40,152,200,153,60,4,136,169,168,176,40,170,25,56,8,56,185,57,168,57,62,4,64,4,153,65,136,65,217,65,200,65,153,66,136,66,249,65,232,65,249,69,232,69,25,71,8,71,25,72,8,72,186,73,168,73,154,74,136,74,66,4,68,4,89,72,72,72,217,81,200,81,185,81,168,81,153,82,136,82,217,82,200,82,217,85,200,85,25,87,8,87,122,90,104,90,25,88,8,88,186,89,168,89,70,4,72,4,154,90,168,92,6,8,8,8,218,97,200,97,217,102,200,102,168,132,153,105,136,105,217,106,200,106,249,105,232,105,57,107,40,107,25,107,8,107,25,112,8,112,74,4,76,4,57,112,40,112,10,8,185,116,168,116,25,120,8,120,185,121,168,121,89,122,72,122,12,8,14,8,153,137,136,137,217,138,200,138,249,137,232,137,154,141,136,141,218,141,200,141,218,142,200,142,250,141,232,141,217,146,200,146,249,145,232,145,185,148,168,148,121,154,104,154,25,152,8,152,185,153,168,153,25,154,8,154,89,154,72,154,78,4,80,4,217,161,200,161,217,169,200,169,57,170,153,173,136,173,153,174,136,174,249,173,232,173,232,140,65,12,65,12,65,12,65,12,65,12,65,12,65,12,66,12,65,12,65,12,65,12,0,0,0,0,0,0,0,0,0,0,104,12,105,12,112,12,120,12,128,12,136,12,120,13,88,12,224,12,232,12,240,12,248,12,24,13,32,13,40,13,48,13,216,13,224,13,232,13,240,13,209,12,16,8,1,0,248,13,48,12,56,12,0,0,0,0,0,0,0,0,0,0,66,12,200,13,208,13,0,14,18,8,1,0,8,14,20,8,1,0,16,14,0,13,8,13,24,14,22,8,200,12,72,12,32,14,217,56,187,72,200,140,169,140,200,56,169,72,187,88,187,96,169,88,169,96,169,180,169,112,217,120,187,72,200,120,169,72,209,12,209,12,1,14,1,14,9,14,9,14,169,12,169,12,255,5,0,0,255,5,185,56,255,5,186,72,255,5,186,88,255,5,185,108,255,5,186,112,255,5,185,120,255,5,185,152,255,5,168,56,255,5,168,72,255,5,168,88,255,5,168,108,255,5,168,112,255,5,168,120,255,5,168,152,255,5,218,73,255,5,217,152,255,5,200,73,255,5,200,152,255,5,249,58,255,5,232,58,255,5,250,74,255,5,232,74,255,5,250,90,255,5,232,90,255,5,218,114,255,5,200,114,255,5,249,154,255,5,232,154,255,1,170,170,3,0,68,0,51,0,60,0,103,228,2,16,251,184,0,96,1,0,0,96,8,0,43,0,83,0,91,0,109,0,101,0,116,0,123,0,130,0,170,170,148,48,1,32,4,0,0,96,70,141,1,32,229,251,1,32,233,155,1,80,245,208,2,32,95,228,2,32,5,129,3,32,1,0,32,0,10,129,3,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,19,0,0,32,7,0,0,0,13,0,0,0,21,0,0,0,21,0,0,0,1,0,0,0,0,0,0,0,19,0,0,0,99,111,108,108,97,116,105,111,110,115,0,100,101,102,97,117,108,116,0,170,0,0,115,0,116,0,114,0,111,0,107,0,101,0,0,0,1,0,43,0,1,0,170,170,1,0,32,0,8,0,0,80,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,1,0,0,80,7,0,0,0,9,0,0,0,11,0,0,0,11,0,0,0,1,0,0,0,0,0,0,0,11,0,0,0,95,95,95,0,0,0,1,0,32,0,0,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,77,0,79,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,83,0,71,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,80,7,0,0,0,10,0,0,0,18,0,0,0,18,0,0,0,1,0,0,0,0,0,0,0,18,0,0,0,37,37,65,76,73,65,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,87,0,0,0,1,0,32,0,1,0,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,0,0,0,32,7,0,0,0,8,0,0,0,9,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,252,2,0,32,7,0,0,0,55,1,0,0,254,2,0,0,254,2,0,0,45,1,0,0,1,0,0,0,56,1,0,0,99,111,100,101,77,97,112,0,65,68,80,0,65,69,68,0,65,70,65,0,65,70,78,0,65,76,75,0,65,76,76,0,65,77,68,0,65,78,71,0,65,79,65,0,65,79,75,0,65,79,78,0,65,79,82,0,65,82,65,0,65,82,80,0,65,82,83,0,65,82,89,0,65,84,83,0,65,85,68,0,65,87,71,0,65,89,77,0,65,90,77,0,65,90,78,0,66,65,68,0,66,65,77,0,66,66,68,0,66,68,84,0,66,69,67,0,66,69,70,0,66,69,76,0,66,71,74,0,66,71,75,0,66,71,76,0,66,71,78,0,66,72,68,0,66,73,70,0,66,77,68,0,66,78,68,0,66,79,66,0,66,79,80,0,66,79,86,0,66,82,66,0,66,82,67,0,66,82,69,0,66,82,76,0,66,82,78,0,66,82,82,0,66,83,68,0,66,84,78,0,66,85,75,0,66,87,80,0,66,89,66,0,66,89,78,0,66,89,82,0,66,90,68,0,67,65,68,0,67,68,70,0,67,72,67,0,67,72,69,0,67,72,70,0,67,72,87,0,67,76,70,0,67,76,80,0,67,78,89,0,67,79,80,0,67,79,85,0,67,82,67,0,67,83,68,0,67,83,74,0,67,83,75,0,67,85,67,0,67,85,80,0,67,86,69,0,67,89,80,0,67,90,75,0,68,68,77,0,68,69,77,0,68,74,70,0,68,75,75,0,68,79,80,0,68,90,68,0,69,67,83,0,69,67,86,0,69,69,75,0,69,71,80,0,69,82,78,0,69,83,65,0,69,83,66,0,69,83,80,0,69,84,66,0,69,85,82,0,70,73,77,0,70,74,68,0,70,75,80,0,70,82,70,0,71,66,80,0,71,69,75,0,71,69,76,0,71,72,67,0,71,72,80,0,71,72,83,0,71,73,80,0,71,77,68,0,71,78,69,0,71,78,70,0,71,78,83,0,71,81,69,0,71,82,68,0,71,84,81,0,71,87,69,0,71,87,80,0,71,89,68,0,72,75,68,0,72,78,76,0,72,82,68,0,72,82,75,0,72,84,71,0,72,85,70,0,73,68,82,0,73,69,80,0,73,76,80,0,73,76,82,0,73,76,83,0,73,78,82,0,73,81,68,0,73,82,82,0,73,83,74,0,73,83,75,0,73,84,76,0,74,77,68,0,74,79,68,0,74,80,89,0,75,69,83,0,75,71,83,0,75,72,82,0,75,77,70,0,75,80,87,0,75,82,87,0,75,87,68,0,75,89,68,0,75,90,84,0,76,65,74,0,76,65,75,0,76,66,80,0,76,75,82,0,76,82,68,0,76,83,76,0,76,83,77,0,76,84,76,0,76,84,84,0,76,85,67,0,76,85,70,0,76,85,76,0,76,86,76,0,76,86,82,0,76,89,68,0,77,65,68,0,77,68,76,0,77,71,65,0,77,71,70,0,77,75,68,0,77,76,70,0,77,77,75,0,77,78,84,0,77,79,80,0,77,82,79,0,77,82,85,0,77,84,76,0,77,84,80,0,77,85,82,0,77,86,81,0,77,86,82,0,77,87,75,0,77,88,78,0,77,88,80,0,77,88,86,0,77,89,82,0,77,90,69,0,77,90,77,0,77,90,78,0,78,65,68,0,78,71,78,0,78,73,67,0,78,73,79,0,78,76,71,0,78,79,75,0,78,80,82,0,78,90,68,0,79,77,82,0,80,65,66,0,80,69,72,0,80,69,73,0,80,69,78,0,80,69,83,0,80,71,75,0,80,72,80,0,80,75,82,0,80,76,78,0,80,76,90,0,80,84,69,0,80,89,71,0,81,65,82,0,82,72,68,0,82,79,75,0,82,79,76,0,82,79,78,0,82,83,68,0,82,85,66,0,82,85,82,0,82,87,70,0,83,65,82,0,83,66,68,0,83,67,82,0,83,68,68,0,83,68,71,0,83,68,80,0,83,69,75,0,83,71,68,0,83,72,80,0,83,73,84,0,83,75,75,0,83,76,69,0,83,76,76,0,83,79,83,0,83,82,68,0,83,82,71,0,83,83,80,0,83,84,68,0,83,84,78,0,83,85,82,0,83,86,67,0,83,89,80,0,83,90,76,0,84,72,66,0,84,74,82,0,84,74,83,0,84,77,77,0,84,77,84,0,84,78,68,0,84,79,80,0,84,80,69,0,84,82,76,0,84,82,89,0,84,84,68,0,84,87,68,0,84,90,83,0,85,65,72,0,85,65,75,0,85,71,83,0,85,71,87,0,85,71,88,0,85,83,68,0,85,83,78,0,85,83,83,0,85,89,73,0,85,89,78,0,85,89,80,0,85,89,85,0,85,89,87,0,85,90,83,0,86,69,66,0,86,69,68,0,86,69,70,0,86,69,83,0,86,78,67,0,86,78,68,0,86,85,86,0,87,83,84,0,88,65,70,0,88,65,71,0,88,65,85,0,88,66,65,0,88,66,66,0,88,66,67,0,88,66,68,0,88,67,68,0,88,68,82,0,88,69,85,0,88,79,70,0,88,80,68,0,88,80,70,0,88,80,84,0,88,83,85,0,88,84,83,0,88,85,65,0,88,88,88,0,89,68,68,0,89,69,82,0,89,85,68,0,89,85,77,0,89,85,78,0,90,65,76,0,90,65,82,0,90,77,75,0,90,77,87,0,90,82,78,0,90,82,90,0,90,87,67,0,90,87,68,0,90,87,76,0,90,87,78,0,90,87,82,0,0,0,170,170,45,1,40,0,44,0,48,0,52,0,56,0,60,0,64,0,68,0,72,0,76,0,80,0,84,0,88,0,92,0,96,0,100,0,104,0,108,0,112,0,116,0,120,0,124,0,128,0,132,0,136,0,140,0,144,0,148,0,152,0,156,0,160,0,164,0,168,0,172,0,176,0,180,0,184,0,188,0,192,0,196,0,200,0,204,0,208,0,212,0,216,0,220,0,224,0,228,0,232,0,236,0,240,0,244,0,248,0,252,0,0,1,4,1,8,1,12,1,16,1,20,1,24,1,28,1,32,1,36,1,40,1,44,1,48,1,52,1,56,1,60,1,64,1,68,1,72,1,76,1,80,1,84,1,88,1,92,1,96,1,100,1,104,1,108,1,112,1,116,1,120,1,124,1,128,1,132,1,136,1,140,1,144,1,148,1,152,1,156,1,160,1,164,1,168,1,172,1,176,1,180,1,184,1,188,1,192,1,196,1,200,1,204,1,208,1,212,1,216,1,220,1,224,1,228,1,232,1,236,1,240,1,244,1,248,1,252,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,28,2,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,68,2,72,2,76,2,80,2,84,2,88,2,92,2,96,2,100,2,104,2,108,2,112,2,116,2,120,2,124,2,128,2,132,2,136,2,140,2,144,2,148,2,152,2,156,2,160,2,164,2,168,2,172,2,176,2,180,2,184,2,188,2,192,2,196,2,200,2,204,2,208,2,212,2,216,2,220,2,224,2,228,2,232,2,236,2,240,2,244,2,248,2,252,2,0,3,4,3,8,3,12,3,16,3,20,3,24,3,28,3,32,3,36,3,40,3,44,3,48,3,52,3,56,3,60,3,64,3,68,3,72,3,76,3,80,3,84,3,88,3,92,3,96,3,100,3,104,3,108,3,112,3,116,3,120,3,124,3,128,3,132,3,136,3,140,3,144,3,148,3,152,3,156,3,160,3,164,3,168,3,172,3,176,3,180,3,184,3,188,3,192,3,196,3,200,3,204,3,208,3,212,3,216,3,220,3,224,3,228,3,232,3,236,3,240,3,244,3,248,3,252,3,0,4,4,4,8,4,12,4,16,4,20,4,24,4,28,4,32,4,36,4,40,4,44,4,48,4,52,4,56,4,60,4,64,4,68,4,72,4,76,4,80,4,84,4,88,4,92,4,96,4,100,4,104,4,108,4,112,4,116,4,120,4,124,4,128,4,132,4,136,4,140,4,144,4,148,4,152,4,156,4,160,4,164,4,168,4,172,4,176,4,180,4,184,4,188,4,192,4,196,4,200,4,204,4,208,4,212,4,216,4,20,0,0,112,16,3,0,112,4,0,0,112,203,3,0,112,8,0,0,112,8,0,0,112,51,0,0,112,20,2,0,112,205,3,0,112,24,0,0,112,24,0,0,112,214,3,0,112,32,0,0,112,32,0,0,112,32,0,0,112,32,0,0,112,40,0,0,112,36,0,0,112,21,2,0,112,177,3,0,112,31,0,0,112,176,3,0,112,70,0,0,112,209,3,0,112,52,0,0,112,50,0,0,112,225,3,0,112,56,0,0,112,224,3,0,112,100,0,0,112,100,0,0,112,100,0,0,112,207,3,0,112,48,0,0,112,108,0,0,112,60,0,0,112,96,0,0,112,68,0,0,112,68,0,0,112,216,3,0,112,76,0,0,112,76,0,0,112,76,0,0,112,218,3,0,112,76,0,0,112,219,3,0,112,44,0,0,112,64,0,0,112,104,0,0,112,72,0,0,112,112,0,0,112,165,3,0,112,206,3,0,112,84,0,0,112,124,0,0,112,208,3,0,112,180,3,0,112,179,3,0,112,244,2,0,112,180,3,0,112,222,3,0,112,152,0,0,112,156,0,0,112,170,0,0,112,202,3,0,112,188,0,0,112,123,3,0,112,203,0,0,112,200,0,0,112,163,3,0,112,192,0,0,112,132,0,0,112,196,0,0,112,203,0,0,112,22,1,0,112,20,1,0,112,6,1,0,112,208,0,0,112,214,0,0,112,12,0,0,112,218,0,0,112,215,3,0,112,233,0,0,112,50,3,0,112,232,0,0,112,228,3,0,112,227,3,0,112,212,2,0,112,230,0,0,112,210,3,0,112,246,0,0,112,242,0,0,112,238,0,0,112,250,0,0,112,58,3,0,112,12,1,0,112,213,3,0,112,32,1,0,112,171,3,0,112,168,3,0,112,36,1,0,112,14,1,0,112,68,1,0,112,68,1,0,112,68,1,0,112,226,0,0,112,44,1,0,112,64,1,0,112,112,2,0,112,112,2,0,112,72,1,0,112,88,1,0,112,84,1,0,112,191,0,0,112,191,0,0,112,76,1,0,112,92,1,0,112,104,1,0,112,116,1,0,112,120,1,0,112,120,1,0,112,120,1,0,112,100,1,0,112,112,1,0,112,108,1,0,112,96,1,0,112,96,1,0,112,124,1,0,112,132,1,0,112,144,1,0,112,136,1,0,112,148,1,0,112,161,1,0,112,116,0,0,112,174,0,0,112,152,1,0,112,154,1,0,112,158,1,0,112,136,0,0,112,142,1,0,112,162,1,0,112,162,1,0,112,166,1,0,112,144,0,0,112,174,1,0,112,170,1,0,112,170,1,0,112,184,1,0,112,184,1,0,112,221,3,0,112,186,1,0,112,220,3,0,112,172,1,0,112,172,1,0,112,178,1,0,112,248,1,0,112,242,1,0,112,201,3,0,112,194,1,0,112,39,3,0,112,210,1,0,112,104,0,0,112,240,1,0,112,190,1,0,112,222,1,0,112,161,3,0,112,214,1,0,112,214,1,0,112,224,1,0,112,206,1,0,112,206,1,0,112,198,1,0,112,228,1,0,112,228,1,0,112,211,3,0,112,202,1,0,112,252,1,0,112,252,1,0,112,175,3,0,112,4,2,0,112,54,2,0,112,46,2,0,112,46,2,0,112,16,2,0,112,66,2,0,112,12,2,0,112,42,2,0,112,0,2,0,112,78,2,0,112,92,2,0,112,92,2,0,112,92,2,0,112,92,2,0,112,86,2,0,112,96,2,0,112,74,2,0,112,217,3,0,112,104,2,0,112,108,2,0,112,88,2,0,112,122,2,0,112,204,2,0,112,130,2,0,112,130,2,0,112,178,3,0,112,173,3,0,112,131,2,0,112,42,3,0,112,134,2,0,112,170,2,0,112,90,0,0,112,178,2,0,112,224,2,0,112,170,3,0,112,224,2,0,112,240,2,0,112,190,2,0,112,142,2,0,112,193,2,0,112,191,2,0,112,157,3,0,112,182,2,0,112,194,2,0,112,200,3,0,112,228,2,0,112,216,2,0,112,166,2,0,112,162,3,0,112,42,3,0,112,222,0,0,112,248,2,0,112,236,2,0,112,252,2,0,112,250,2,0,112,204,3,0,112,27,3,0,112,166,3,0,112,20,3,0,112,8,3,0,112,114,2,0,112,24,3,0,112,181,3,0,112,12,3,0,112,133,3,0,112,66,3,0,112,212,3,0,112,36,3,0,112,32,3,0,112,32,3,0,112,32,3,0,112,72,3,0,112,229,3,0,112,230,3,0,112,172,3,0,112,90,3,0,112,90,3,0,112,90,3,0,112,159,3,0,112,92,3,0,112,94,3,0,112,158,3,0,112,169,3,0,112,160,3,0,112,192,2,0,112,192,2,0,112,36,2,0,112,114,3,0,112,182,3,0,112,193,3,0,112,191,3,0,112,187,3,0,112,188,3,0,112,189,3,0,112,190,3,0,112,183,3,0,112,192,3,0,112,186,3,0,112,184,3,0,112,196,3,0,112,185,3,0,112,194,3,0,112,226,3,0,112,195,3,0,112,197,3,0,112,231,3,0,112,208,2,0,112,118,3,0,112,122,3,0,112,123,3,0,112,122,3,0,112,223,3,0,112,198,2,0,112,126,3,0,112,199,3,0,112,180,0,0,112,180,0,0,112,204,2,0,112,204,2,0,112,164,3,0,112,174,3,0,112,167,3,0,112,1,0,32,0,56,1,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,50,19,0,32,7,0,0,0,111,1,0,0,55,19,0,0,55,19,0,0,163,0,0,0,1,0,0,0,138,12,0,0,108,111,99,97,108,101,115,0,97,102,0,97,109,0,97,114,0,97,122,0,98,103,0,98,110,0,98,115,0,99,97,0,99,99,112,0,99,104,114,0,99,115,0,99,121,0,100,97,0,100,101,0,101,101,0,101,108,0,101,110,0,101,115,95,67,79,0,101,116,0,101,117,0,102,97,0,102,105,0,102,105,108,0,102,114,0,103,108,0,103,115,119,0,103,117,0,104,101,0,104,105,0,104,105,95,76,97,116,110,0,104,117,0,104,121,0,105,100,0,105,115,0,105,116,0,106,97,0,107,97,0,107,103,112,0,107,107,0,107,109,0,107,110,0,107,111,0,107,121,0,108,105,106,0,108,111,0,108,116,0,108,118,0,109,107,0,109,108,0,109,110,0,109,114,0,109,115,0,109,121,0,110,98,0,110,101,0,110,108,0,110,110,0,110,111,0,112,97,0,112,108,0,112,116,0,114,111,0,114,111,111,116,0,114,117,0,115,105,0,115,107,0,115,108,0,115,113,0,115,114,0,115,118,0,116,97,0,116,101,0,116,104,0,116,114,0,117,107,0,117,114,0,117,122,0,118,105,0,121,114,108,0,121,117,101,0,122,104,0,122,117,0,108,111,99,97,108,101,115,95,115,101,108,101,99,116,105,111,110,0,114,117,108,101,115,0,115,101,116,49,0,98,101,102,111,114,101,0,102,114,111,109,0,112,109,0,115,101,116,49,48,0,97,102,116,101,114,110,111,111,110,49,0,101,118,101,110,105,110,103,49,0,109,105,100,110,105,103,104,116,0,97,116,0,109,111,114,110,105,110,103,49,0,110,105,103,104,116,49,0,110,111,111,110,0,115,101,116,49,48,48,0,115,101,116,49,48,49,0,115,101,116,49,48,50,0,115,101,116,49,48,51,0,115,101,116,49,48,52,0,115,101,116,49,48,53,0,109,111,114,110,105,110,103,50,0,115,101,116,49,48,54,0,115,101,116,49,48,55,0,115,101,116,49,48,56,0,115,101,116,49,48,57,0,115,101,116,49,49,0,115,101,116,49,49,48,0,115,101,116,49,49,49,0,115,101,116,49,49,50,0,115,101,116,49,49,51,0,115,101,116,49,49,52,0,115,101,116,49,49,53,0,115,101,116,49,49,54,0,97,102,116,101,114,110,111,111,110,50,0,110,105,103,104,116,50,0,115,101,116,49,49,55,0,115,101,116,49,49,56,0,115,101,116,49,49,57,0,115,101,116,49,50,0,115,101,116,49,50,48,0,115,101,116,49,50,49,0,115,101,116,49,50,50,0,115,101,116,49,50,51,0,115,101,116,49,50,52,0,115,101,116,49,50,53,0,115,101,116,49,50,54,0,115,101,116,49,50,55,0,115,101,116,49,50,56,0,101,118,101,110,105,110,103,50,0,115,101,116,49,50,57,0,115,101,116,49,51,0,115,101,116,49,51,48,0,115,101,116,49,51,49,0,115,101,116,49,51,50,0,115,101,116,49,51,51,0,115,101,116,49,51,52,0,115,101,116,49,51,53,0,115,101,116,49,51,54,0,115,101,116,49,51,55,0,115,101,116,49,51,56,0,115,101,116,49,51,57,0,115,101,116,49,52,0,115,101,116,49,52,48,0,115,101,116,49,52,49,0,115,101,116,49,52,50,0,115,101,116,49,52,51,0,115,101,116,49,52,52,0,115,101,116,49,52,53,0,115,101,116,49,52,54,0,115,101,116,49,52,55,0,115,101,116,49,52,56,0,115,101,116,49,52,57,0,115,101,116,49,53,0,115,101,116,49,53,48,0,115,101,116,49,53,49,0,115,101,116,49,53,50,0,115,101,116,49,53,51,0,115,101,116,49,53,52,0,115,101,116,49,53,53,0,115,101,116,49,53,54,0,115,101,116,49,53,55,0,115,101,116,49,53,56,0,115,101,116,49,53,57,0,115,101,116,49,54,0,115,101,116,49,54,48,0,115,101,116,49,54,49,0,115,101,116,49,54,50,0,115,101,116,49,54,51,0,115,101,116,49,55,0,115,101,116,49,56,0,115,101,116,49,57,0,115,101,116,50,0,115,101,116,50,48,0,115,101,116,50,49,0,115,101,116,50,50,0,115,101,116,50,51,0,115,101,116,50,52,0,115,101,116,50,53,0,115,101,116,50,54,0,115,101,116,50,55,0,115,101,116,50,56,0,115,101,116,50,57,0,115,101,116,51,0,115,101,116,51,48,0,115,101,116,51,49,0,115,101,116,51,50,0,115,101,116,51,51,0,115,101,116,51,52,0,115,101,116,51,53,0,115,101,116,51,54,0,115,101,116,51,55,0,115,101,116,51,56,0,115,101,116,51,57,0,115,101,116,52,0,115,101,116,52,48,0,115,101,116,52,49,0,115,101,116,52,50,0,115,101,116,52,51,0,115,101,116,52,52,0,115,101,116,52,53,0,115,101,116,52,54,0,115,101,116,52,55,0,115,101,116,52,56,0,115,101,116,52,57,0,115,101,116,53,0,115,101,116,53,48,0,115,101,116,53,49,0,115,101,116,53,50,0,115,101,116,53,51,0,115,101,116,53,52,0,115,101,116,53,53,0,115,101,116,53,54,0,115,101,116,53,55,0,115,101,116,53,56,0,115,101,116,53,57,0,115,101,116,54,0,115,101,116,54,48,0,115,101,116,54,49,0,115,101,116,54,50,0,115,101,116,54,51,0,115,101,116,54,52,0,115,101,116,54,53,0,115,101,116,54,54,0,115,101,116,54,55,0,115,101,116,54,56,0,115,101,116,54,57,0,115,101,116,55,0,115,101,116,55,48,0,115,101,116,55,49,0,115,101,116,55,50,0,115,101,116,55,51,0,115,101,116,55,52,0,115,101,116,55,53,0,115,101,116,55,54,0,115,101,116,55,55,0,115,101,116,55,56,0,115,101,116,55,57,0,115,101,116,56,0,115,101,116,56,48,0,115,101,116,56,49,0,115,101,116,56,50,0,115,101,116,56,51,0,115,101,116,56,52,0,115,101,116,56,53,0,115,101,116,56,54,0,115,101,116,56,55,0,115,101,116,56,56,0,115,101,116,56,57,0,115,101,116,57,0,115,101,116,57,48,0,115,101,116,57,49,0,115,101,116,57,50,0,115,101,116,57,51,0,115,101,116,57,52,0,115,101,116,57,53,0,115,101,116,57,54,0,115,101,116,57,55,0,115,101,116,57,56,0,115,101,116,57,57,0,170,170,170,0,0,115,0,101,0,116,0,56,0,0,0,115,0,101,0,116,0,49,0,0,0,115,0,101,0,116,0,50,0,0,0,115,0,101,0,116,0,51,0,0,0,115,0,101,0,116,0,52,0,0,0,115,0,101,0,116,0,53,0,0,0,115,0,101,0,116,0,54,0,0,0,115,0,101,0,116,0,55,0,0,0,115,0,101,0,116,0,57,0,0,0,49,0,50,0,58,0,48,0,48,0,0,0,49,0,56,0,58,0,48,0,48,0,0,0,48,0,54,0,58,0,48,0,48,0,0,0,48,0,48,0,58,0,48,0,48,0,0,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,58,0,48,0,48,0,0,0,49,0,54,0,58,0,48,0,48,0,0,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,52,0,58,0,48,0,48,0,0,0,48,0,51,0,58,0,48,0,48,0,0,0,48,0,49,0,58,0,48,0,48,0,0,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,49,0,58,0,48,0,48,0,0,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,53,0,58,0,48,0,48,0,0,0,49,0,55,0,58,0,48,0,48,0,0,0,48,0,55,0,58,0,48,0,48,0,0,0,115,0,101,0,116,0,57,0,48,0,0,0,115,0,101,0,116,0,51,0,54,0,0,0,115,0,101,0,116,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,53,0,0,0,115,0,101,0,116,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,55,0,0,0,115,0,101,0,116,0,49,0,56,0,0,0,115,0,101,0,116,0,49,0,57,0,0,0,115,0,101,0,116,0,50,0,48,0,0,0,115,0,101,0,116,0,50,0,49,0,0,0,115,0,101,0,116,0,50,0,50,0,0,0,115,0,101,0,116,0,50,0,51,0,0,0,115,0,101,0,116,0,50,0,52,0,0,0,115,0,101,0,116,0,50,0,53,0,0,0,115,0,101,0,116,0,50,0,54,0,0,0,115,0,101,0,116,0,50,0,55,0,0,0,115,0,101,0,116,0,50,0,56,0,0,0,115,0,101,0,116,0,50,0,57,0,0,0,115,0,101,0,116,0,51,0,48,0,0,0,115,0,101,0,116,0,51,0,49,0,0,0,115,0,101,0,116,0,51,0,50,0,0,0,115,0,101,0,116,0,51,0,51,0,0,0,115,0,101,0,116,0,51,0,52,0,0,0,115,0,101,0,116,0,51,0,53,0,0,0,115,0,101,0,116,0,51,0,55,0,0,0,115,0,101,0,116,0,51,0,56,0,0,0,115,0,101,0,116,0,51,0,57,0,0,0,115,0,101,0,116,0,52,0,48,0,0,0,115,0,101,0,116,0,52,0,49,0,0,0,115,0,101,0,116,0,52,0,50,0,0,0,115,0,101,0,116,0,52,0,51,0,0,0,115,0,101,0,116,0,52,0,52,0,0,0,115,0,101,0,116,0,52,0,53,0,0,0,115,0,101,0,116,0,52,0,54,0,0,0,115,0,101,0,116,0,52,0,55,0,0,0,115,0,101,0,116,0,52,0,56,0,0,0,115,0,101,0,116,0,52,0,57,0,0,0,115,0,101,0,116,0,53,0,48,0,0,0,115,0,101,0,116,0,53,0,49,0,0,0,115,0,101,0,116,0,53,0,50,0,0,0,115,0,101,0,116,0,53,0,51,0,0,0,115,0,101,0,116,0,53,0,52,0,0,0,115,0,101,0,116,0,53,0,53,0,0,0,115,0,101,0,116,0,53,0,54,0,0,0,115,0,101,0,116,0,53,0,55,0,0,0,115,0,101,0,116,0,53,0,56,0,0,0,115,0,101,0,116,0,53,0,57,0,0,0,115,0,101,0,116,0,54,0,48,0,0,0,115,0,101,0,116,0,54,0,49,0,0,0,115,0,101,0,116,0,54,0,50,0,0,0,115,0,101,0,116,0,54,0,51,0,0,0,115,0,101,0,116,0,54,0,52,0,0,0,115,0,101,0,116,0,54,0,53,0,0,0,115,0,101,0,116,0,54,0,54,0,0,0,115,0,101,0,116,0,54,0,55,0,0,0,115,0,101,0,116,0,54,0,56,0,0,0,115,0,101,0,116,0,54,0,57,0,0,0,115,0,101,0,116,0,55,0,48,0,0,0,115,0,101,0,116,0,55,0,49,0,0,0,115,0,101,0,116,0,55,0,50,0,0,0,115,0,101,0,116,0,55,0,51,0,0,0,115,0,101,0,116,0,55,0,52,0,0,0,115,0,101,0,116,0,55,0,53,0,0,0,115,0,101,0,116,0,55,0,54,0,0,0,115,0,101,0,116,0,55,0,55,0,0,0,115,0,101,0,116,0,55,0,56,0,0,0,115,0,101,0,116,0,55,0,57,0,0,0,115,0,101,0,116,0,56,0,48,0,0,0,115,0,101,0,116,0,56,0,49,0,0,0,115,0,101,0,116,0,56,0,50,0,0,0,115,0,101,0,116,0,56,0,51,0,0,0,115,0,101,0,116,0,56,0,52,0,0,0,115,0,101,0,116,0,56,0,53,0,0,0,115,0,101,0,116,0,56,0,54,0,0,0,115,0,101,0,116,0,56,0,55,0,0,0,115,0,101,0,116,0,56,0,56,0,0,0,115,0,101,0,116,0,56,0,57,0,0,0,115,0,101,0,116,0,57,0,49,0,0,0,115,0,101,0,116,0,57,0,50,0,0,0,115,0,101,0,116,0,57,0,51,0,0,0,115,0,101,0,116,0,57,0,52,0,0,0,115,0,101,0,116,0,57,0,53,0,0,0,115,0,101,0,116,0,57,0,54,0,0,0,115,0,101,0,116,0,57,0,55,0,0,0,115,0,101,0,116,0,57,0,56,0,0,0,115,0,101,0,116,0,57,0,57,0,0,0,115,0,101,0,116,0,49,0,50,0,50,0,0,0,115,0,101,0,116,0,49,0,48,0,48,0,0,0,115,0,101,0,116,0,49,0,48,0,49,0,0,0,115,0,101,0,116,0,49,0,48,0,50,0,0,0,115,0,101,0,116,0,49,0,48,0,51,0,0,0,115,0,101,0,116,0,49,0,48,0,52,0,0,0,115,0,101,0,116,0,49,0,48,0,53,0,0,0,115,0,101,0,116,0,49,0,48,0,54,0,0,0,115,0,101,0,116,0,49,0,48,0,55,0,0,0,115,0,101,0,116,0,49,0,48,0,56,0,0,0,115,0,101,0,116,0,49,0,48,0,57,0,0,0,115,0,101,0,116,0,49,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,49,0,53,0,0,0,115,0,101,0,116,0,49,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,49,0,55,0,0,0,115,0,101,0,116,0,49,0,49,0,56,0,0,0,115,0,101,0,116,0,49,0,49,0,57,0,0,0,115,0,101,0,116,0,49,0,50,0,48,0,0,0,115,0,101,0,116,0,49,0,50,0,49,0,0,0,115,0,101,0,116,0,49,0,50,0,51,0,0,0,115,0,101,0,116,0,49,0,50,0,52,0,0,0,115,0,101,0,116,0,49,0,50,0,53,0,0,0,115,0,101,0,116,0,49,0,50,0,54,0,0,0,115,0,101,0,116,0,49,0,50,0,55,0,0,0,115,0,101,0,116,0,49,0,50,0,56,0,0,0,115,0,101,0,116,0,49,0,50,0,57,0,0,0,115,0,101,0,116,0,49,0,51,0,48,0,0,0,115,0,101,0,116,0,49,0,51,0,49,0,0,0,115,0,101,0,116,0,49,0,51,0,50,0,0,0,115,0,101,0,116,0,49,0,51,0,51,0,0,0,115,0,101,0,116,0,49,0,51,0,52,0,0,0,115,0,101,0,116,0,49,0,51,0,53,0,0,0,115,0,101,0,116,0,49,0,51,0,54,0,0,0,115,0,101,0,116,0,49,0,51,0,55,0,0,0,115,0,101,0,116,0,49,0,51,0,56,0,0,0,115,0,101,0,116,0,49,0,51,0,57,0,0,0,115,0,101,0,116,0,49,0,52,0,48,0,0,0,115,0,101,0,116,0,49,0,52,0,49,0,0,0,115,0,101,0,116,0,49,0,52,0,50,0,0,0,115,0,101,0,116,0,49,0,52,0,51,0,0,0,115,0,101,0,116,0,49,0,52,0,52,0,0,0,115,0,101,0,116,0,49,0,52,0,53,0,0,0,115,0,101,0,116,0,49,0,52,0,54,0,0,0,115,0,101,0,116,0,49,0,52,0,55,0,0,0,115,0,101,0,116,0,49,0,52,0,56,0,0,0,115,0,101,0,116,0,49,0,52,0,57,0,0,0,115,0,101,0,116,0,49,0,53,0,48,0,0,0,115,0,101,0,116,0,49,0,53,0,49,0,0,0,115,0,101,0,116,0,49,0,53,0,50,0,0,0,115,0,101,0,116,0,49,0,53,0,51,0,0,0,115,0,101,0,116,0,49,0,53,0,52,0,0,0,115,0,101,0,116,0,49,0,53,0,53,0,0,0,115,0,101,0,116,0,49,0,53,0,54,0,0,0,115,0,101,0,116,0,49,0,53,0,55,0,0,0,115,0,101,0,116,0,49,0,53,0,56,0,0,0,115,0,101,0,116,0,49,0,53,0,57,0,0,0,115,0,101,0,116,0,49,0,54,0,48,0,0,0,115,0,101,0,116,0,49,0,54,0,49,0,0,0,115,0,101,0,116,0,49,0,54,0,50,0,0,0,115,0,101,0,116,0,49,0,54,0,51,0,0,0,85,0,40,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,68,0,72,0,75,0,78,0,81,0,84,0,87,0,90,0,69,1,93,0,99,0,102,0,105,0,108,0,111,0,115,0,118,0,121,0,125,0,128,0,131,0,134,0,69,0,142,0,145,0,148,0,151,0,154,0,157,0,160,0,163,0,167,0,170,0,173,0,176,0,179,0,182,0,186,0,189,0,192,0,195,0,198,0,201,0,204,0,207,0,210,0,213,0,216,0,219,0,222,0,225,0,228,0,231,0,234,0,237,0,240,0,245,0,248,0,251,0,254,0,1,1,4,1,7,1,122,0,10,1,13,1,16,1,19,1,22,1,25,1,28,1,31,1,34,1,38,1,42,1,45,1,16,0,44,2,32,2,8,2,18,1,196,0,42,1,232,0,196,0,92,2,54,1,104,2,36,0,31,0,98,2,132,1,11,0,220,0,226,0,186,1,80,2,150,1,180,1,252,1,0,1,214,0,26,0,102,1,38,2,90,1,96,1,36,1,192,1,144,1,240,1,202,0,238,0,210,1,74,2,110,2,14,2,56,2,174,1,216,1,20,2,244,0,234,1,72,1,78,1,24,1,168,1,86,2,108,1,246,1,222,1,1,0,114,1,21,0,1,0,1,0,120,1,66,1,208,0,250,0,6,0,6,1,126,1,60,1,48,1,138,1,30,1,41,0,62,2,156,1,162,1,228,1,2,2,12,1,84,1,26,2,50,2,116,2,204,1,198,1,68,2,84,0,40,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,68,0,72,0,75,0,78,0,81,0,84,0,87,0,90,0,69,1,93,0,99,0,102,0,105,0,108,0,111,0,115,0,118,0,121,0,125,0,128,0,131,0,69,0,142,0,145,0,148,0,151,0,154,0,157,0,160,0,163,0,167,0,170,0,173,0,176,0,179,0,182,0,186,0,189,0,192,0,195,0,198,0,201,0,204,0,207,0,210,0,213,0,216,0,219,0,222,0,225,0,228,0,231,0,234,0,237,0,240,0,245,0,248,0,251,0,254,0,1,1,4,1,7,1,122,0,10,1,13,1,16,1,19,1,22,1,25,1,28,1,31,1,34,1,38,1,42,1,45,1,134,2,91,4,28,4,221,3,32,3,218,2,246,2,200,2,218,2,119,4,11,3,133,4,158,2,152,2,126,4,74,3,128,2,188,2,194,2,249,3,98,4,81,3,0,4,56,4,232,2,182,2,146,2,123,3,35,4,116,3,239,2,7,4,88,3,42,4,170,2,206,2,200,3,95,3,140,4,228,3,70,4,179,3,207,3,235,3,212,2,21,4,60,3,67,3,39,3,172,3,105,4,130,3,49,4,112,4,190,0,137,3,140,2,190,0,190,0,144,3,25,3,176,2,225,2,122,2,46,3,151,3,18,3,4,3,102,3,253,2,164,2,77,4,158,3,165,3,14,4,214,3,53,3,109,3,242,3,63,4,147,4,193,3,186,3,84,4,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,160,0,70,0,2,0,77,1,84,1,130,0,160,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,70,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,154,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,124,0,178,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,70,0,142,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,76,0,118,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,112,0,88,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,58,0,142,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,94,0,130,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,100,0,136,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,136,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,172,0,130,0,2,0,77,1,84,1,52,0,172,0,2,0,77,1,84,1,88,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,88,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,154,0,88,0,2,0,77,1,84,1,70,0,154,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,88,0,52,0,2,0,77,1,84,1,76,0,88,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,46,0,160,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,88,0,178,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,70,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,160,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,58,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,154,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,154,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,148,0,58,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,94,0,118,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,124,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,136,0,142,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,112,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,172,0,106,0,2,0,77,1,84,1,52,0,172,0,2,0,77,1,84,1,106,0,64,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,46,0,142,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,76,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,184,0,70,0,2,0,77,1,84,1,46,0,184,0,2,0,77,1,84,1,70,0,88,0,2,0,77,1,84,1,118,0,106,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,76,0,88,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,100,0,70,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,160,0,70,0,2,0,77,1,84,1,130,0,160,0,2,0,77,1,84,1,70,0,112,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,70,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,124,0,52,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,2,0,77,1,84,1,112,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,76,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,142,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,142,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,124,0,178,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,124,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,70,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,70,0,142,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,94,0,130,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,100,0,136,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,136,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,172,0,130,0,2,0,77,1,84,1,52,0,172,0,2,0,77,1,84,1,88,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,88,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,154,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,148,0,58,0,2,0,77,1,84,1,46,0,148,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,58,0,70,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,166,0,100,0,2,0,77,1,84,1,46,0,166,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,154,0,88,0,2,0,77,1,84,1,70,0,154,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,94,0,118,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,124,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,124,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,172,0,106,0,2,0,77,1,84,1,52,0,172,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,64,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,46,0,142,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,88,0,52,0,2,0,77,1,84,1,76,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,46,0,160,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,178,0,46,0,2,0,77,1,84,1,88,0,178,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,70,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,70,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,160,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,160,0,58,0,2,0,77,1,84,1,58,0,112,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,142,0,64,0,2,0,77,1,84,1,136,0,142,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,52,0,94,0,2,0,77,1,84,1,112,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,136,0,112,0,2,0,77,1,84,1,58,0,136,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,70,0,2,0,77,1,84,1,70,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,94,0,46,0,2,0,77,1,84,1,88,0,94,0,1,0,127,1,64,0,2,0,77,1,84,1,184,0,70,0,2,0,77,1,84,1,46,0,184,0,2,0,77,1,84,1,70,0,88,0,1,0,127,1,46,0,2,0,77,1,84,1,118,0,106,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,88,0,130,0,2,0,77,1,84,1,76,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,1,0,127,1,46,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,46,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,100,0,70,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,70,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,1,0,127,1,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,46,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,76,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,130,0,46,0,2,0,77,1,84,1,52,0,130,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,46,0,100,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,52,0,118,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,1,0,127,1,64,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,58,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,106,0,100,0,2,0,77,1,84,1,46,0,106,0,2,0,77,1,84,1,100,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,88,0,46,0,2,0,77,1,84,1,82,0,88,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,76,0,118,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,124,0,2,0,77,1,84,1,124,0,46,0,2,0,77,1,84,1,46,0,64,0,2,0,77,1,84,1,82,0,124,0,2,0,77,1,84,1,118,0,46,0,2,0,77,1,84,1,88,0,118,0,2,0,77,1,84,1,76,0,88,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,82,0,76,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,82,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,64,0,2,0,77,1,84,1,52,0,46,0,2,0,77,1,84,1,112,0,52,0,2,0,77,1,84,1,46,0,58,0,2,0,77,1,84,1,58,0,112,0,2,0,43,0,89,1,170,170,238,5,0,80,243,5,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,248,5,0,80,253,5,0,80,2,6,0,80,5,6,0,80,10,6,0,80,15,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,18,6,0,80,23,6,0,80,28,6,0,80,33,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,38,6,0,80,43,6,0,80,48,6,0,80,53,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,58,6,0,80,63,6,0,80,68,6,0,80,73,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,78,6,0,80,83,6,0,80,88,6,0,80,93,6,0,80,4,0,98,1,109,1,130,1,139,1,170,170,98,6,0,80,103,6,0,80,108,6,0,80,113,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,118,6,0,80,123,6,0,80,128,6,0,80,133,6,0,80,138,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,143,6,0,80,148,6,0,80,153,6,0,80,158,6,0,80,163,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,168,6,0,80,173,6,0,80,178,6,0,80,183,6,0,80,188,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,193,6,0,80,198,6,0,80,203,6,0,80,208,6,0,80,213,6,0,80,5,0,98,1,109,1,130,1,193,1,139,1,218,6,0,80,223,6,0,80,228,6,0,80,233,6,0,80,238,6,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,243,6,0,80,248,6,0,80,253,6,0,80,0,7,0,80,5,7,0,80,10,7,0,80,5,0,98,1,109,1,130,1,193,1,139,1,13,7,0,80,18,7,0,80,23,7,0,80,28,7,0,80,33,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,38,7,0,80,43,7,0,80,48,7,0,80,53,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,58,7,0,80,63,7,0,80,68,7,0,80,73,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,78,7,0,80,83,7,0,80,88,7,0,80,93,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,98,7,0,80,103,7,0,80,108,7,0,80,113,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,118,7,0,80,123,7,0,80,128,7,0,80,133,7,0,80,6,0,98,1,29,2,130,1,193,1,139,1,40,2,170,170,138,7,0,80,143,7,0,80,148,7,0,80,153,7,0,80,158,7,0,80,163,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,168,7,0,80,173,7,0,80,178,7,0,80,183,7,0,80,4,0,98,1,109,1,130,1,139,1,170,170,188,7,0,80,193,7,0,80,198,7,0,80,203,7,0,80,5,0,98,1,109,1,130,1,193,1,139,1,208,7,0,80,213,7,0,80,218,7,0,80,223,7,0,80,228,7,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,233,7,0,80,238,7,0,80,243,7,0,80,246,7,0,80,251,7,0,80,0,8,0,80,5,0,98,1,29,2,109,1,130,1,139,1,5,8,0,80,10,8,0,80,15,8,0,80,20,8,0,80,25,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,30,8,0,80,35,8,0,80,40,8,0,80,45,8,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,50,8,0,80,55,8,0,80,60,8,0,80,65,8,0,80,70,8,0,80,75,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,80,8,0,80,85,8,0,80,90,8,0,80,95,8,0,80,5,0,98,1,109,1,130,1,193,1,139,1,100,8,0,80,105,8,0,80,110,8,0,80,115,8,0,80,120,8,0,80,5,0,98,1,29,2,109,1,130,1,139,1,125,8,0,80,130,8,0,80,135,8,0,80,140,8,0,80,145,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,150,8,0,80,155,8,0,80,160,8,0,80,165,8,0,80,6,0,98,1,109,1,130,1,193,1,139,1,40,2,170,170,170,8,0,80,175,8,0,80,180,8,0,80,185,8,0,80,190,8,0,80,195,8,0,80,7,0,98,1,29,2,109,1,137,2,130,1,193,1,139,1,200,8,0,80,205,8,0,80,210,8,0,80,215,8,0,80,220,8,0,80,225,8,0,80,230,8,0,80,4,0,98,1,109,1,130,1,139,1,170,170,235,8,0,80,240,8,0,80,245,8,0,80,250,8,0,80,5,0,109,1,130,1,193,1,139,1,146,1,255,8,0,80,4,9,0,80,9,9,0,80,14,9,0,80,19,9,0,80,7,0,98,1,29,2,109,1,137,2,130,1,193,1,139,1,22,9,0,80,27,9,0,80,32,9,0,80,37,9,0,80,42,9,0,80,47,9,0,80,52,9,0,80,4,0,98,1,109,1,130,1,139,1,170,170,57,9,0,80,62,9,0,80,67,9,0,80,72,9,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,77,9,0,80,82,9,0,80,87,9,0,80,92,9,0,80,97,9,0,80,102,9,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,107,9,0,80,112,9,0,80,117,9,0,80,122,9,0,80,127,9,0,80,132,9,0,80,5,0,98,1,109,1,130,1,139,1,40,2,137,9,0,80,142,9,0,80,147,9,0,80,152,9,0,80,157,9,0,80,5,0,98,1,109,1,130,1,193,1,139,1,162,9,0,80,167,9,0,80,172,9,0,80,177,9,0,80,182,9,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,187,9,0,80,192,9,0,80,197,9,0,80,202,9,0,80,207,9,0,80,212,9,0,80,6,0,98,1,109,1,130,1,193,1,139,1,40,2,170,170,217,9,0,80,222,9,0,80,227,9,0,80,232,9,0,80,237,9,0,80,242,9,0,80,4,0,98,1,109,1,130,1,139,1,170,170,247,9,0,80,252,9,0,80,1,10,0,80,6,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,11,10,0,80,16,10,0,80,21,10,0,80,26,10,0,80,4,0,109,1,193,1,139,1,146,1,170,170,31,10,0,80,36,10,0,80,41,10,0,80,46,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,49,10,0,80,54,10,0,80,59,10,0,80,64,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,69,10,0,80,74,10,0,80,79,10,0,80,84,10,0,80,5,0,98,1,109,1,130,1,193,1,139,1,89,10,0,80,94,10,0,80,99,10,0,80,104,10,0,80,109,10,0,80,6,0,98,1,109,1,130,1,193,1,139,1,40,2,170,170,114,10,0,80,119,10,0,80,124,10,0,80,129,10,0,80,134,10,0,80,139,10,0,80,6,0,98,1,29,2,109,1,137,2,130,1,139,1,170,170,144,10,0,80,149,10,0,80,154,10,0,80,159,10,0,80,164,10,0,80,169,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,174,10,0,80,179,10,0,80,184,10,0,80,189,10,0,80,7,0,98,1,29,2,109,1,130,1,193,1,139,1,40,2,194,10,0,80,199,10,0,80,204,10,0,80,209,10,0,80,214,10,0,80,219,10,0,80,224,10,0,80,6,0,98,1,29,2,109,1,130,1,139,1,40,2,170,170,229,10,0,80,234,10,0,80,239,10,0,80,244,10,0,80,249,10,0,80,254,10,0,80,4,0,98,1,109,1,130,1,139,1,170,170,3,11,0,80,8,11,0,80,13,11,0,80,18,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,23,11,0,80,28,11,0,80,33,11,0,80,38,11,0,80,43,11,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,48,11,0,80,53,11,0,80,58,11,0,80,63,11,0,80,66,11,0,80,71,11,0,80,76,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,81,11,0,80,86,11,0,80,91,11,0,80,96,11,0,80,101,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,106,11,0,80,111,11,0,80,116,11,0,80,121,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,126,11,0,80,131,11,0,80,136,11,0,80,141,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,146,11,0,80,151,11,0,80,156,11,0,80,161,11,0,80,166,11,0,80,5,0,98,1,109,1,130,1,193,1,139,1,171,11,0,80,176,11,0,80,181,11,0,80,186,11,0,80,191,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,196,11,0,80,201,11,0,80,206,11,0,80,211,11,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,216,11,0,80,221,11,0,80,226,11,0,80,231,11,0,80,236,11,0,80,241,11,0,80,4,0,98,1,109,1,130,1,139,1,170,170,246,11,0,80,251,11,0,80,0,12,0,80,5,12,0,80,4,0,98,1,109,1,130,1,139,1,170,170,10,12,0,80,15,12,0,80,20,12,0,80,25,12,0,80,2,0,98,1,130,1,170,170,30,12,0,80,35,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,40,12,0,80,45,12,0,80,50,12,0,80,53,12,0,80,58,12,0,80,63,12,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,66,12,0,80,71,12,0,80,76,12,0,80,81,12,0,80,86,12,0,80,91,12,0,80,3,0,98,1,109,1,130,1,96,12,0,80,101,12,0,80,106,12,0,80,4,0,98,1,109,1,130,1,139,1,170,170,111,12,0,80,116,12,0,80,121,12,0,80,126,12,0,80,4,0,98,1,109,1,130,1,139,1,170,170,131,12,0,80,136,12,0,80,141,12,0,80,146,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,151,12,0,80,156,12,0,80,161,12,0,80,164,12,0,80,169,12,0,80,174,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,177,12,0,80,182,12,0,80,187,12,0,80,190,12,0,80,195,12,0,80,200,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,203,12,0,80,208,12,0,80,213,12,0,80,216,12,0,80,221,12,0,80,226,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,229,12,0,80,234,12,0,80,239,12,0,80,242,12,0,80,247,12,0,80,252,12,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,255,12,0,80,4,13,0,80,9,13,0,80,12,13,0,80,17,13,0,80,22,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,25,13,0,80,30,13,0,80,35,13,0,80,38,13,0,80,43,13,0,80,48,13,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,51,13,0,80,56,13,0,80,61,13,0,80,64,13,0,80,69,13,0,80,74,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,79,13,0,80,84,13,0,80,89,13,0,80,92,13,0,80,97,13,0,80,102,13,0,80,107,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,110,13,0,80,115,13,0,80,120,13,0,80,123,13,0,80,128,13,0,80,133,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,136,13,0,80,141,13,0,80,146,13,0,80,149,13,0,80,154,13,0,80,159,13,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,162,13,0,80,167,13,0,80,172,13,0,80,175,13,0,80,180,13,0,80,185,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,188,13,0,80,193,13,0,80,198,13,0,80,201,13,0,80,206,13,0,80,211,13,0,80,216,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,219,13,0,80,224,13,0,80,229,13,0,80,232,13,0,80,237,13,0,80,242,13,0,80,247,13,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,250,13,0,80,255,13,0,80,4,14,0,80,7,14,0,80,12,14,0,80,17,14,0,80,22,14,0,80,5,0,98,1,109,1,118,1,130,1,139,1,25,14,0,80,30,14,0,80,35,14,0,80,38,14,0,80,43,14,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,48,14,0,80,53,14,0,80,58,14,0,80,61,14,0,80,66,14,0,80,71,14,0,80,76,14,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,79,14,0,80,84,14,0,80,89,14,0,80,92,14,0,80,97,14,0,80,102,14,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,105,14,0,80,110,14,0,80,115,14,0,80,118,14,0,80,123,14,0,80,128,14,0,80,6,0,98,1,29,2,109,1,118,1,130,1,139,1,170,170,131,14,0,80,136,14,0,80,141,14,0,80,146,14,0,80,149,14,0,80,154,14,0,80,5,0,98,1,109,1,118,1,130,1,139,1,159,14,0,80,164,14,0,80,169,14,0,80,172,14,0,80,177,14,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,182,14,0,80,187,14,0,80,192,14,0,80,195,14,0,80,200,14,0,80,205,14,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,208,14,0,80,213,14,0,80,218,14,0,80,223,14,0,80,228,14,0,80,233,14,0,80,5,0,98,1,109,1,118,1,130,1,139,1,238,14,0,80,243,14,0,80,248,14,0,80,251,14,0,80,0,15,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,5,15,0,80,10,15,0,80,15,15,0,80,18,15,0,80,23,15,0,80,28,15,0,80,33,15,0,80,7,0,98,1,29,2,109,1,118,1,130,1,139,1,146,1,36,15,0,80,41,15,0,80,46,15,0,80,51,15,0,80,54,15,0,80,59,15,0,80,64,15,0,80,5,0,98,1,109,1,118,1,130,1,139,1,67,15,0,80,72,15,0,80,77,15,0,80,80,15,0,80,85,15,0,80,5,0,98,1,109,1,118,1,130,1,139,1,90,15,0,80,95,15,0,80,100,15,0,80,103,15,0,80,108,15,0,80,8,0,98,1,109,1,118,1,130,1,193,1,139,1,40,2,146,1,170,170,113,15,0,80,118,15,0,80,123,15,0,80,126,15,0,80,131,15,0,80,136,15,0,80,141,15,0,80,146,15,0,80,4,0,98,1,109,1,130,1,139,1,170,170,149,15,0,80,154,15,0,80,159,15,0,80,164,15,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,169,15,0,80,174,15,0,80,179,15,0,80,182,15,0,80,187,15,0,80,192,15,0,80,197,15,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,200,15,0,80,205,15,0,80,210,15,0,80,213,15,0,80,218,15,0,80,223,15,0,80,6,0,98,1,29,2,130,1,193,1,139,1,40,2,170,170,226,15,0,80,231,15,0,80,236,15,0,80,241,15,0,80,246,15,0,80,251,15,0,80,9,0,98,1,29,2,109,1,137,2,118,1,130,1,193,1,139,1,146,1,0,16,0,80,5,16,0,80,10,16,0,80,15,16,0,80,20,16,0,80,23,16,0,80,28,16,0,80,33,16,0,80,38,16,0,80,5,0,98,1,109,1,118,1,130,1,139,1,41,16,0,80,46,16,0,80,51,16,0,80,54,16,0,80,59,16,0,80,9,0,98,1,29,2,109,1,137,2,118,1,130,1,193,1,139,1,146,1,64,16,0,80,69,16,0,80,74,16,0,80,79,16,0,80,84,16,0,80,87,16,0,80,92,16,0,80,97,16,0,80,102,16,0,80,5,0,98,1,109,1,118,1,130,1,139,1,105,16,0,80,110,16,0,80,115,16,0,80,118,16,0,80,123,16,0,80,6,0,98,1,29,2,109,1,118,1,130,1,139,1,170,170,128,16,0,80,133,16,0,80,138,16,0,80,143,16,0,80,146,16,0,80,151,16,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,156,16,0,80,161,16,0,80,166,16,0,80,169,16,0,80,174,16,0,80,179,16,0,80,184,16,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,187,16,0,80,192,16,0,80,197,16,0,80,200,16,0,80,205,16,0,80,210,16,0,80,8,0,98,1,109,1,118,1,130,1,193,1,139,1,40,2,146,1,170,170,213,16,0,80,218,16,0,80,223,16,0,80,226,16,0,80,231,16,0,80,236,16,0,80,241,16,0,80,246,16,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,249,16,0,80,254,16,0,80,3,17,0,80,8,17,0,80,11,17,0,80,16,17,0,80,21,17,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,26,17,0,80,31,17,0,80,36,17,0,80,41,17,0,80,44,17,0,80,49,17,0,80,54,17,0,80,7,0,98,1,109,1,118,1,130,1,139,1,40,2,146,1,59,17,0,80,64,17,0,80,69,17,0,80,72,17,0,80,77,17,0,80,82,17,0,80,87,17,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,90,17,0,80,95,17,0,80,100,17,0,80,103,17,0,80,108,17,0,80,113,17,0,80,118,17,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,121,17,0,80,126,17,0,80,131,17,0,80,134,17,0,80,139,17,0,80,144,17,0,80,8,0,98,1,29,2,109,1,137,2,118,1,130,1,139,1,146,1,170,170,147,17,0,80,152,17,0,80,157,17,0,80,162,17,0,80,167,17,0,80,170,17,0,80,175,17,0,80,180,17,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,183,17,0,80,188,17,0,80,193,17,0,80,196,17,0,80,201,17,0,80,206,17,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,209,17,0,80,214,17,0,80,219,17,0,80,224,17,0,80,227,17,0,80,232,17,0,80,237,17,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,242,17,0,80,247,17,0,80,252,17,0,80,255,17,0,80,4,18,0,80,9,18,0,80,5,0,98,1,109,1,130,1,193,1,139,1,12,18,0,80,17,18,0,80,22,18,0,80,27,18,0,80,32,18,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,37,18,0,80,42,18,0,80,47,18,0,80,50,18,0,80,55,18,0,80,60,18,0,80,65,18,0,80,8,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,146,1,170,170,68,18,0,80,73,18,0,80,78,18,0,80,83,18,0,80,86,18,0,80,91,18,0,80,96,18,0,80,101,18,0,80,8,0,98,1,109,1,118,1,130,1,193,1,139,1,40,2,146,1,170,170,104,18,0,80,109,18,0,80,114,18,0,80,117,18,0,80,122,18,0,80,127,18,0,80,132,18,0,80,137,18,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,140,18,0,80,145,18,0,80,150,18,0,80,153,18,0,80,158,18,0,80,163,18,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,166,18,0,80,171,18,0,80,176,18,0,80,179,18,0,80,184,18,0,80,189,18,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,192,18,0,80,197,18,0,80,202,18,0,80,205,18,0,80,210,18,0,80,215,18,0,80,7,0,98,1,29,2,109,1,130,1,193,1,139,1,40,2,218,18,0,80,223,18,0,80,228,18,0,80,233,18,0,80,238,18,0,80,243,18,0,80,248,18,0,80,7,0,98,1,29,2,109,1,118,1,130,1,139,1,40,2,253,18,0,80,2,19,0,80,7,19,0,80,12,19,0,80,15,19,0,80,20,19,0,80,25,19,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,30,19,0,80,35,19,0,80,40,19,0,80,43,19,0,80,48,19,0,80,53,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,58,19,0,80,63,19,0,80,68,19,0,80,71,19,0,80,76,19,0,80,81,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,84,19,0,80,89,19,0,80,94,19,0,80,97,19,0,80,102,19,0,80,107,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,110,19,0,80,115,19,0,80,120,19,0,80,123,19,0,80,128,19,0,80,133,19,0,80,7,0,98,1,109,1,118,1,130,1,193,1,139,1,146,1,136,19,0,80,141,19,0,80,146,19,0,80,149,19,0,80,154,19,0,80,159,19,0,80,164,19,0,80,5,0,98,1,109,1,130,1,193,1,139,1,167,19,0,80,172,19,0,80,177,19,0,80,182,19,0,80,187,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,192,19,0,80,197,19,0,80,202,19,0,80,205,19,0,80,210,19,0,80,215,19,0,80,7,0,98,1,29,2,109,1,118,1,130,1,193,1,139,1,218,19,0,80,223,19,0,80,228,19,0,80,233,19,0,80,236,19,0,80,241,19,0,80,246,19,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,251,19,0,80,0,20,0,80,5,20,0,80,8,20,0,80,13,20,0,80,18,20,0,80,3,0,98,1,130,1,146,1,21,20,0,80,26,20,0,80,31,20,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,34,20,0,80,39,20,0,80,44,20,0,80,49,20,0,80,54,20,0,80,59,20,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,64,20,0,80,69,20,0,80,74,20,0,80,77,20,0,80,82,20,0,80,87,20,0,80,5,0,98,1,109,1,118,1,130,1,146,1,92,20,0,80,97,20,0,80,102,20,0,80,105,20,0,80,110,20,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,113,20,0,80,118,20,0,80,123,20,0,80,126,20,0,80,131,20,0,80,136,20,0,80,6,0,98,1,109,1,118,1,130,1,139,1,146,1,170,170,139,20,0,80,144,20,0,80,149,20,0,80,152,20,0,80,157,20,0,80,162,20,0,80,2,0,43,0,89,1,170,170,165,20,0,80,170,20,0,80,4,0,98,1,109,1,130,1,139,1,170,170,175,20,0,80,180,20,0,80,185,20,0,80,190,20,0,80,4,0,98,1,109,1,130,1,139,1,170,170,195,20,0,80,200,20,0,80,205,20,0,80,210,20,0,80,4,0,98,1,109,1,130,1,139,1,170,170,215,20,0,80,220,20,0,80,225,20,0,80,230,20,0,80,6,0,98,1,29,2,109,1,118,1,130,1,139,1,170,170,235,20,0,80,240,20,0,80,245,20,0,80,250,20,0,80,253,20,0,80,2,21,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,7,21,0,80,12,21,0,80,17,21,0,80,22,21,0,80,27,21,0,80,32,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,37,21,0,80,42,21,0,80,47,21,0,80,52,21,0,80,57,21,0,80,6,0,98,1,109,1,118,1,130,1,193,1,139,1,170,170,62,21,0,80,67,21,0,80,72,21,0,80,75,21,0,80,80,21,0,80,85,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,90,21,0,80,95,21,0,80,100,21,0,80,105,21,0,80,110,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,115,21,0,80,120,21,0,80,125,21,0,80,130,21,0,80,135,21,0,80,4,0,98,1,109,1,130,1,139,1,170,170,140,21,0,80,145,21,0,80,150,21,0,80,155,21,0,80,4,0,98,1,109,1,130,1,139,1,170,170,160,21,0,80,165,21,0,80,170,21,0,80,175,21,0,80,5,0,98,1,109,1,130,1,193,1,139,1,180,21,0,80,185,21,0,80,190,21,0,80,195,21,0,80,200,21,0,80,4,0,109,1,130,1,193,1,139,1,170,170,205,21,0,80,210,21,0,80,215,21,0,80,220,21,0,80,3,0,109,1,193,1,139,1,225,21,0,80,230,21,0,80,235,21,0,80,6,0,98,1,29,2,109,1,130,1,193,1,139,1,170,170,240,21,0,80,245,21,0,80,250,21,0,80,255,21,0,80,4,22,0,80,9,22,0,80,4,0,98,1,109,1,130,1,139,1,170,170,14,22,0,80,19,22,0,80,24,22,0,80,29,22,0,80,4,0,98,1,109,1,130,1,139,1,170,170,34,22,0,80,39,22,0,80,44,22,0,80,49,22,0,80,163,0,72,1,92,1,151,1,158,1,165,1,172,1,179,1,186,1,202,1,209,1,216,1,223,1,230,1,236,1,243,1,250,1,1,2,8,2,15,2,22,2,47,2,54,2,61,2,68,2,74,2,81,2,88,2,95,2,102,2,109,2,116,2,123,2,130,2,146,2,153,2,159,2,166,2,173,2,180,2,187,2,194,2,201,2,208,2,215,2,222,2,229,2,235,2,242,2,249,2,0,3,7,3,14,3,21,3,28,3,35,3,42,3,49,3,55,3,62,3,69,3,76,3,83,3,90,3,97,3,104,3,111,3,118,3,125,3,131,3,138,3,145,3,152,3,159,3,165,3,171,3,177,3,182,3,188,3,194,3,200,3,206,3,212,3,218,3,224,3,230,3,236,3,242,3,247,3,253,3,3,4,9,4,15,4,21,4,27,4,33,4,39,4,45,4,51,4,56,4,62,4,68,4,74,4,80,4,86,4,92,4,98,4,104,4,110,4,116,4,121,4,127,4,133,4,139,4,145,4,151,4,157,4,163,4,169,4,175,4,181,4,186,4,192,4,198,4,204,4,210,4,216,4,222,4,228,4,234,4,240,4,246,4,251,4,1,5,7,5,13,5,19,5,25,5,31,5,37,5,43,5,49,5,55,5,60,5,66,5,72,5,78,5,84,5,90,5,96,5,102,5,108,5,114,5,120,5,125,5,131,5,137,5,143,5,149,5,155,5,161,5,167,5,173,5,179,5,138,12,0,32,142,12,0,32,152,12,0,32,159,12,0,32,166,12,0,32,173,12,0,32,180,12,0,32,187,12,0,32,195,12,0,32,203,12,0,32,211,12,0,32,219,12,0,32,227,12,0,32,237,12,0,32,245,12,0,32,252,12,0,32,3,13,0,32,10,13,0,32,17,13,0,32,24,13,0,32,34,13,0,32,41,13,0,32,48,13,0,32,56,13,0,32,66,13,0,32,74,13,0,32,81,13,0,32,91,13,0,32,98,13,0,32,106,13,0,32,114,13,0,32,121,13,0,32,131,13,0,32,142,13,0,32,149,13,0,32,157,13,0,32,168,13,0,32,175,13,0,32,185,13,0,32,195,13,0,32,203,13,0,32,211,13,0,32,221,13,0,32,231,13,0,32,238,13,0,32,245,13,0,32,252,13,0,32,3,14,0,32,10,14,0,32,18,14,0,32,28,14,0,32,38,14,0,32,45,14,0,32,56,14,0,32,66,14,0,32,73,14,0,32,81,14,0,32,92,14,0,32,100,14,0,32,107,14,0,32,114,14,0,32,122,14,0,32,130,14,0,32,137,14,0,32,147,14,0,32,154,14,0,32,161,14,0,32,165,14,0,32,175,14,0,32,185,14,0,32,190,14,0,32,197,14,0,32,204,14,0,32,214,14,0,32,224,14,0,32,234,14,0,32,244,14,0,32,254,14,0,32,8,15,0,32,18,15,0,32,29,15,0,32,39,15,0,32,49,15,0,32,59,15,0,32,70,15,0,32,81,15,0,32,92,15,0,32,100,15,0,32,111,15,0,32,121,15,0,32,131,15,0,32,141,15,0,32,149,15,0,32,159,15,0,32,169,15,0,32,177,15,0,32,188,15,0,32,199,15,0,32,207,15,0,32,215,15,0,32,228,15,0,32,235,15,0,32,246,15,0,32,0,16,0,32,10,16,0,32,24,16,0,32,32,16,0,32,46,16,0,32,54,16,0,32,64,16,0,32,75,16,0,32,85,16,0,32,98,16,0,32,109,16,0,32,120,16,0,32,131,16,0,32,142,16,0,32,152,16,0,32,165,16,0,32,175,16,0,32,186,16,0,32,196,16,0,32,204,16,0,32,215,16,0,32,228,16,0,32,241,16,0,32,251,16,0,32,5,17,0,32,15,17,0,32,26,17,0,32,37,17,0,32,47,17,0,32,57,17,0,32,67,17,0,32,77,17,0,32,88,17,0,32,96,17,0,32,106,17,0,32,117,17,0,32,127,17,0,32,132,17,0,32,142,17,0,32,152,17,0,32,160,17,0,32,170,17,0,32,180,17,0,32,184,17,0,32,191,17,0,32,198,17,0,32,205,17,0,32,215,17,0,32,225,17,0,32,233,17,0,32,243,17,0,32,251,17,0,32,3,18,0,32,10,18,0,32,17,18,0,32,25,18,0,32,32,18,0,32,37,18,0,32,47,18,0,32,54,18,0,32,3,0,32,0,48,1,66,1,154,4,0,80,69,5,0,80,61,18,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,126,0,0,32,7,0,0,0,54,0,0,0,128,0,0,0,128,0,0,0,55,0,0,0,1,0,0,0,126,0,0,0,103,101,110,100,101,114,76,105,115,116,0,97,102,0,97,114,0,98,103,0,98,110,0,99,97,0,99,115,0,100,97,0,100,101,0,101,108,0,101,110,0,101,115,0,101,116,0,101,117,0,102,97,0,102,105,0,102,105,108,0,102,114,0,103,117,0,104,101,0,104,105,0,104,114,0,104,117,0,105,100,0,105,115,0,105,116,0,106,97,0,107,110,0,107,111,0,108,105,106,0,108,116,0,108,118,0,109,108,0,109,114,0,109,115,0,110,108,0,110,111,0,112,108,0,112,116,0,114,111,0,114,117,0,115,107,0,115,108,0,115,114,0,115,118,0,115,119,0,116,97,0,116,101,0,116,104,0,116,114,0,117,107,0,117,114,0,118,105,0,122,104,0,122,104,95,72,97,110,116,0,122,117,0,170,0,0,110,0,101,0,117,0,116,0,114,0,97,0,108,0,0,0,109,0,97,0,108,0,101,0,84,0,97,0,105,0,110,0,116,0,115,0,0,0,109,0,105,0,120,0,101,0,100,0,78,0,101,0,117,0,116,0,114,0,97,0,108,0,0,0,55,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,67,0,70,0,73,0,76,0,79,0,82,0,85,0,88,0,92,0,95,0,98,0,101,0,104,0,107,0,110,0,113,0,116,0,119,0,122,0,125,0,128,0,132,0,135,0,138,0,141,0,144,0,147,0,150,0,153,0,156,0,159,0,162,0,165,0,168,0,171,0,174,0,177,0,180,0,183,0,186,0,189,0,192,0,195,0,198,0,201,0,204,0,212,0,1,0,9,0,1,0,1,0,9,0,9,0,1,0,1,0,20,0,1,0,9,0,1,0,1,0,1,0,1,0,1,0,9,0,1,0,9,0,9,0,9,0,1,0,1,0,20,0,9,0,1,0,1,0,1,0,9,0,9,0,9,0,1,0,9,0,1,0,9,0,1,0,9,0,9,0,9,0,9,0,9,0,9,0,9,0,1,0,1,0,1,0,1,0,1,0,1,0,9,0,9,0,1,0,9,0,9,0,1,0,1,0,32,0,33,0,0,80,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,215,4,0,32,7,0,0,0,77,0,0,0,217,4,0,0,217,4,0,0,49,0,0,0,1,0,0,0,66,2,0,0,103,114,97,109,109,97,116,105,99,97,108,68,97,116,97,0,100,101,114,105,118,97,116,105,111,110,115,0,100,101,0,99,111,109,112,111,110,101,110,116,0,99,97,115,101,0,112,101,114,0,112,111,119,101,114,0,112,114,101,102,105,120,0,116,105,109,101,115,0,112,108,117,114,97,108,0,99,111,109,112,111,117,110,100,0,103,101,110,100,101,114,0,102,114,0,114,111,111,116,0,102,101,97,116,117,114,101,115,0,97,109,0,110,111,109,105,110,97,108,0,95,0,100,101,102,105,110,105,116,101,110,101,115,115,0,97,114,0,117,110,105,116,115,0,97,122,0,98,110,0,99,97,0,99,115,0,100,97,0,101,108,0,102,97,0,102,105,0,103,117,0,104,101,0,104,105,0,104,114,0,104,117,0,104,121,0,105,100,0,105,115,0,105,116,0,107,107,0,107,110,0,107,121,0,108,116,0,108,118,0,109,108,0,109,114,0,110,98,0,110,108,0,110,110,0,110,111,0,112,97,0,112,108,0,112,116,0,114,111,0,114,117,0,115,105,0,115,107,0,115,108,0,115,114,0,115,118,0,116,101,0,116,114,0,117,107,0,117,114,0,117,122,0,170,170,170,0,0,48,0,0,0,49,0,0,0,111,0,110,0,101,0,0,0,100,0,97,0,116,0,105,0,118,0,101,0,0,0,110,0,101,0,117,0,116,0,101,0,114,0,0,0,99,0,111,0,109,0,109,0,111,0,110,0,0,0,99,0,97,0,117,0,115,0,97,0,108,0,0,0,111,0,98,0,108,0,105,0,113,0,117,0,101,0,0,0,103,0,101,0,110,0,105,0,116,0,105,0,118,0,101,0,0,0,102,0,101,0,109,0,105,0,110,0,105,0,110,0,101,0,0,0,108,0,111,0,99,0,97,0,116,0,105,0,118,0,101,0,0,0,99,0,111,0,109,0,112,0,111,0,117,0,110,0,100,0,0,0,118,0,111,0,99,0,97,0,116,0,105,0,118,0,101,0,0,0,97,0,98,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,100,0,101,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,105,0,108,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,97,0,100,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,97,0,108,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,105,0,110,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,97,0,98,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,101,0,114,0,103,0,97,0,116,0,105,0,118,0,101,0,0,0,112,0,101,0,114,0,115,0,111,0,110,0,97,0,108,0,0,0,109,0,97,0,115,0,99,0,117,0,108,0,105,0,110,0,101,0,0,0,105,0,110,0,97,0,110,0,105,0,109,0,97,0,116,0,101,0,0,0,99,0,111,0,110,0,115,0,116,0,114,0,117,0,99,0,116,0,0,0,112,0,97,0,114,0,116,0,105,0,116,0,105,0,118,0,101,0,0,0,115,0,111,0,99,0,105,0,97,0,116,0,105,0,118,0,101,0,0,0,115,0,117,0,98,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,110,0,111,0,109,0,105,0,110,0,97,0,116,0,105,0,118,0,101,0,0,0,97,0,99,0,99,0,117,0,115,0,97,0,116,0,105,0,118,0,101,0,0,0,105,0,110,0,100,0,101,0,102,0,105,0,110,0,105,0,116,0,101,0,0,0,99,0,111,0,109,0,105,0,116,0,97,0,116,0,105,0,118,0,101,0,0,0,116,0,114,0,97,0,110,0,115,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,115,0,117,0,112,0,101,0,114,0,101,0,115,0,115,0,105,0,118,0,101,0,0,0,116,0,101,0,114,0,109,0,105,0,110,0,97,0,116,0,105,0,118,0,101,0,0,0,117,0,110,0,115,0,112,0,101,0,99,0,105,0,102,0,105,0,101,0,100,0,0,0,105,0,110,0,115,0,116,0,114,0,117,0,109,0,101,0,110,0,116,0,97,0,108,0,0,0,112,0,114,0,101,0,112,0,111,0,115,0,105,0,116,0,105,0,111,0,110,0,97,0,108,0,0,0,108,0,111,0,99,0,97,0,116,0,105,0,118,0,101,0,99,0,111,0,112,0,117,0,108,0,97,0,116,0,105,0,118,0,101,0,0,0,2,0,72,0,242,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,72,0,5,0,2,0,5,0,72,0,2,0,5,0,72,0,2,0,5,0,72,0,4,0,78,0,82,0,88,0,95,0,1,0,1,0,1,0,3,0,2,0,72,0,5,0,2,0,72,0,72,0,2,0,5,0,72,0,2,0,72,0,72,0,4,0,78,0,82,0,88,0,95,0,1,0,1,0,1,0,1,0,2,0,72,0,231,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,231,0,72,0,2,0,72,0,5,0,2,0,5,0,72,0,2,0,5,0,72,0,2,0,5,0,72,0,4,0,78,0,82,0,88,0,95,0,1,0,1,0,1,0,3,0,2,0,231,0,242,0,2,0,255,0,253,0,3,0,231,0,45,0,242,0,3,0,255,0,253,0,191,0,2,0,171,0,54,0,6,0,231,0,45,0,9,0,242,0,90,0,63,0,4,0,231,0,242,0,45,0,63,0,2,0,255,0,253,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,9,0,242,0,67,1,63,0,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,2,0,231,0,45,0,3,0,255,0,253,0,55,1,2,0,23,0,16,0,4,0,231,0,45,0,9,0,242,0,3,0,171,0,54,0,16,0,4,0,231,0,45,0,242,0,81,0,3,0,231,0,45,0,242,0,3,0,171,0,54,0,16,0,2,0,171,0,54,0,3,0,255,0,253,0,191,0,14,0,231,0,144,0,90,0,117,0,126,0,8,1,100,0,36,1,45,0,108,0,135,0,67,1,201,0,19,1,5,0,231,0,100,0,108,0,201,0,45,0,2,0,171,0,54,0,7,0,231,0,45,0,242,0,9,0,63,0,67,1,81,0,3,0,171,0,54,0,16,0,3,0,255,0,253,0,191,0,2,0,171,0,54,0,2,0,231,0,37,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,4,0,231,0,45,0,242,0,67,1,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,17,0,231,0,90,0,242,0,117,0,126,0,30,0,9,0,99,0,100,0,36,1,108,0,135,0,67,1,221,0,31,1,43,1,19,1,5,0,231,0,242,0,67,1,43,1,19,1,5,0,231,0,90,0,9,0,63,0,67,1,2,0,255,0,253,0,4,0,231,0,45,0,9,0,242,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,90,0,63,0,7,0,231,0,45,0,242,0,9,0,63,0,67,1,81,0,5,0,231,0,45,0,242,0,9,0,63,0,3,0,171,0,54,0,16,0,6,0,231,0,45,0,9,0,242,0,90,0,63,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,9,0,242,0,67,1,63,0,2,0,171,0,54,0,6,0,231,0,45,0,9,0,242,0,81,0,63,0,5,0,231,0,45,0,9,0,242,0,63,0,2,0,171,0,54,0,9,0,231,0,45,0,9,0,242,0,67,1,63,0,8,1,94,1,211,0,4,0,183,0,181,0,54,0,16,0,7,0,231,0,242,0,9,0,153,0,63,0,90,0,45,0,3,0,171,0,54,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,23,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,2,0,231,0,37,0,2,0,171,0,54,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,3,0,242,0,45,0,231,0,5,0,183,0,181,0,162,0,54,0,16,0,3,0,181,0,54,0,16,0,2,0,171,0,54,0,2,0,231,0,45,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,8,0,231,0,45,0,9,0,242,0,67,1,80,1,81,0,63,0,6,0,231,0,242,0,9,0,45,0,80,1,67,1,3,0,171,0,54,0,16,0,5,0,231,0,45,0,90,0,242,0,9,0,2,0,255,0,253,0,3,0,171,0,54,0,16,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,9,0,242,0,67,1,63,0,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,6,0,231,0,45,0,242,0,9,0,67,1,63,0,3,0,171,0,54,0,16,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,4,0,231,0,45,0,242,0,67,1,4,0,183,0,181,0,54,0,16,0,3,0,181,0,54,0,16,0,2,0,231,0,45,0,2,0,255,0,253,0,2,0,23,0,16,0,8,0,231,0,45,0,242,0,9,0,63,0,67,1,90,0,81,0,4,0,231,0,242,0,9,0,90,0,6,0,231,0,37,0,242,0,9,0,63,0,67,1,7,0,231,0,45,0,9,0,242,0,67,1,90,0,63,0,7,0,231,0,45,0,9,0,242,0,67,1,81,0,63,0,6,0,231,0,45,0,242,0,9,0,63,0,67,1,3,0,171,0,54,0,16,0,2,0,231,0,37,0,2,0,171,0,54,0,6,0,231,0,45,0,9,0,242,0,90,0,63,0,170,170,4,0,78,0,82,0,88,0,95,0,170,170,113,1,0,144,116,1,0,144,119,1,0,144,122,1,0,144,4,0,78,0,82,0,88,0,95,0,170,170,125,1,0,144,128,1,0,144,131,1,0,144,134,1,0,144,2,0,73,0,101,0,170,170,66,2,0,32,73,2,0,32,1,0,117,0,137,1,0,80,2,0,63,0,108,0,170,170,80,2,0,32,84,2,0,32,4,0,78,0,82,0,88,0,95,0,170,170,146,1,0,144,149,1,0,144,152,1,0,144,155,1,0,144,1,0,101,0,90,2,0,32,1,0,117,0,158,1,0,80,2,0,63,0,108,0,170,170,97,2,0,32,99,2,0,32,4,0,78,0,82,0,88,0,95,0,170,170,167,1,0,144,170,1,0,144,173,1,0,144,176,1,0,144,4,0,78,0,82,0,88,0,95,0,170,170,179,1,0,144,182,1,0,144,185,1,0,144,188,1,0,144,2,0,73,0,101,0,170,170,105,2,0,32,112,2,0,32,1,0,117,0,191,1,0,80,2,0,63,0,108,0,170,170,119,2,0,32,123,2,0,32,3,0,60,0,124,0,127,0,86,2,0,32,101,2,0,32,125,2,0,32,1,0,152,0,200,1,0,144,1,0,152,0,203,1,0,144,2,0,73,0,154,0,170,170,134,2,0,32,136,2,0,32,1,0,144,0,138,2,0,32,2,0,152,0,170,0,170,170,206,1,0,144,0,0,0,0,1,0,152,0,210,1,0,144,1,0,152,0,214,1,0,144,3,0,73,0,154,0,117,0,144,2,0,32,148,2,0,32,150,2,0,32,1,0,144,0,152,2,0,32,2,0,152,0,170,0,170,170,217,1,0,144,0,0,0,0,1,0,73,0,159,2,0,32,1,0,144,0,163,2,0,32,2,0,152,0,170,0,170,170,224,1,0,144,0,0,0,0,1,0,152,0,229,1,0,144,2,0,73,0,154,0,170,170,167,2,0,32,171,2,0,32,1,0,144,0,173,2,0,32,1,0,152,0,232,1,0,144,1,0,117,0,179,2,0,32,1,0,144,0,181,2,0,32,2,0,152,0,170,0,170,170,235,1,0,144,243,1,0,144,2,0,152,0,170,0,170,170,250,1,0,144,255,1,0,144,2,0,73,0,117,0,170,170,185,2,0,32,189,2,0,32,1,0,144,0,193,2,0,32,1,0,152,0,3,2,0,144,1,0,152,0,6,2,0,144,1,0,152,0,10,2,0,144,3,0,73,0,154,0,117,0,199,2,0,32,201,2,0,32,203,2,0,32,1,0,144,0,205,2,0,32,1,0,152,0,13,2,0,144,1,0,152,0,18,2,0,144,2,0,73,0,117,0,170,170,212,2,0,32,214,2,0,32,1,0,144,0,216,2,0,32,2,0,152,0,170,0,170,170,22,2,0,144,27,2,0,144,1,0,152,0,31,2,0,144,2,0,73,0,117,0,170,170,222,2,0,32,226,2,0,32,1,0,144,0,228,2,0,32,1,0,152,0,35,2,0,144,1,0,117,0,234,2,0,32,1,0,144,0,236,2,0,32,1,0,152,0,38,2,0,144,1,0,154,0,240,2,0,32,1,0,144,0,242,2,0,32,2,0,152,0,170,0,170,170,42,2,0,144,57,2,0,144,1,0,73,0,246,2,0,32,1,0,144,0,250,2,0,32,1,0,152,0,63,2,0,144,1,0,117,0,254,2,0,32,1,0,144,0,0,3,0,32,2,0,152,0,170,0,170,170,66,2,0,144,0,0,0,0,2,0,152,0,170,0,170,170,74,2,0,144,0,0,0,0,2,0,73,0,117,0,170,170,4,3,0,32,8,3,0,32,1,0,144,0,12,3,0,32,1,0,152,0,78,2,0,144,1,0,152,0,82,2,0,144,2,0,154,0,117,0,170,170,18,3,0,32,20,3,0,32,1,0,144,0,22,3,0,32,1,0,152,0,85,2,0,144,1,0,152,0,88,2,0,144,2,0,73,0,117,0,170,170,28,3,0,32,30,3,0,32,1,0,144,0,32,3,0,32,2,0,152,0,170,0,170,170,91,2,0,144,99,2,0,144,2,0,152,0,170,0,170,170,104,2,0,144,109,2,0,144,2,0,73,0,117,0,170,170,38,3,0,32,42,3,0,32,1,0,144,0,46,3,0,32,2,0,152,0,170,0,170,170,113,2,0,144,131,2,0,144,1,0,73,0,52,3,0,32,1,0,144,0,56,3,0,32,1,0,152,0,137,2,0,144,1,0,73,0,60,3,0,32,1,0,144,0,62,3,0,32,1,0,152,0,143,2,0,144,1,0,154,0,66,3,0,32,1,0,144,0,68,3,0,32,1,0,152,0,146,2,0,144,1,0,152,0,151,2,0,144,1,0,152,0,154,2,0,144,3,0,73,0,154,0,117,0,72,3,0,32,74,3,0,32,76,3,0,32,1,0,144,0,78,3,0,32,1,0,152,0,158,2,0,144,1,0,117,0,85,3,0,32,1,0,144,0,87,3,0,32,2,0,152,0,170,0,170,170,161,2,0,144,0,0,0,0,1,0,73,0,91,3,0,32,1,0,144,0,95,3,0,32,2,0,152,0,170,0,170,170,169,2,0,144,177,2,0,144,2,0,152,0,170,0,170,170,183,2,0,144,16,0,0,96,2,0,73,0,117,0,170,170,99,3,0,32,103,3,0,32,1,0,144,0,107,3,0,32,2,0,152,0,170,0,170,170,187,2,0,144,0,0,0,0,1,0,73,0,113,3,0,32,1,0,144,0,117,3,0,32,2,0,152,0,170,0,170,170,194,2,0,144,202,2,0,144,1,0,152,0,209,2,0,144,2,0,73,0,117,0,170,170,121,3,0,32,125,3,0,32,1,0,144,0,127,3,0,32,2,0,152,0,170,0,170,170,212,2,0,144,219,2,0,144,1,0,152,0,225,2,0,144,2,0,73,0,117,0,170,170,133,3,0,32,137,3,0,32,1,0,144,0,139,3,0,32,2,0,152,0,170,0,170,170,228,2,0,144,0,0,0,0,2,0,152,0,170,0,170,170,238,2,0,144,0,0,0,0,2,0,73,0,117,0,170,170,145,3,0,32,149,3,0,32,1,0,144,0,153,3,0,32,1,0,152,0,243,2,0,144,1,0,152,0,251,2,0,144,2,0,73,0,117,0,170,170,159,3,0,32,161,3,0,32,1,0,144,0,163,3,0,32,1,0,152,0,255,2,0,144,1,0,152,0,2,3,0,144,1,0,152,0,5,3,0,144,3,0,73,0,154,0,117,0,169,3,0,32,171,3,0,32,173,3,0,32,1,0,144,0,175,3,0,32,1,0,152,0,9,3,0,144,1,0,117,0,182,3,0,32,1,0,144,0,184,3,0,32,1,0,152,0,12,3,0,144,1,0,152,0,15,3,0,144,1,0,152,0,18,3,0,144,3,0,73,0,154,0,117,0,188,3,0,32,190,3,0,32,192,3,0,32,1,0,144,0,194,3,0,32,1,0,152,0,22,3,0,144,1,0,152,0,25,3,0,144,1,0,152,0,28,3,0,144,3,0,73,0,154,0,117,0,201,3,0,32,203,3,0,32,205,3,0,32,1,0,144,0,207,3,0,32,1,0,152,0,32,3,0,144,1,0,152,0,35,3,0,144,2,0,73,0,117,0,170,170,214,3,0,32,216,3,0,32,1,0,144,0,218,3,0,32,2,0,152,0,170,0,170,170,38,3,0,144,46,3,0,144,2,0,152,0,170,0,170,170,50,3,0,144,56,3,0,144,2,0,73,0,117,0,170,170,224,3,0,32,228,3,0,32,1,0,144,0,232,3,0,32,1,0,152,0,60,3,0,144,1,0,117,0,238,3,0,32,1,0,144,0,240,3,0,32,1,0,152,0,63,3,0,144,1,0,152,0,66,3,0,144,1,0,152,0,69,3,0,144,3,0,73,0,154,0,117,0,244,3,0,32,246,3,0,32,248,3,0,32,1,0,144,0,250,3,0,32,2,0,152,0,170,0,170,170,73,3,0,144,82,3,0,144,1,0,152,0,89,3,0,144,2,0,73,0,117,0,170,170,1,4,0,32,5,4,0,32,1,0,144,0,7,4,0,32,2,0,152,0,170,0,170,170,93,3,0,144,0,0,0,0,1,0,152,0,99,3,0,144,2,0,152,0,170,0,170,170,102,3,0,144,0,0,0,0,3,0,73,0,154,0,117,0,13,4,0,32,17,4,0,32,19,4,0,32,1,0,144,0,23,4,0,32,2,0,152,0,170,0,170,170,106,3,0,144,114,3,0,144,2,0,152,0,170,0,170,170,121,3,0,144,126,3,0,144,2,0,73,0,117,0,170,170,30,4,0,32,34,4,0,32,1,0,144,0,38,4,0,32,1,0,152,0,130,3,0,144,1,0,152,0,137,3,0,144,2,0,73,0,117,0,170,170,44,4,0,32,46,4,0,32,1,0,144,0,48,4,0,32,2,0,152,0,170,0,170,170,141,3,0,144,149,3,0,144,2,0,152,0,170,0,170,170,154,3,0,144,159,3,0,144,2,0,73,0,117,0,170,170,54,4,0,32,58,4,0,32,1,0,144,0,62,4,0,32,1,0,152,0,163,3,0,144,1,0,152,0,166,3,0,144,1,0,152,0,169,3,0,144,3,0,73,0,154,0,117,0,68,4,0,32,70,4,0,32,72,4,0,32,1,0,144,0,74,4,0,32,2,0,152,0,170,0,170,170,172,3,0,144,181,3,0,144,1,0,73,0,81,4,0,32,1,0,144,0,85,4,0,32,2,0,152,0,170,0,170,170,186,3,0,144,0,0,0,0,1,0,73,0,89,4,0,32,1,0,144,0,93,4,0,32,2,0,152,0,170,0,170,170,193,3,0,144,0,0,0,0,1,0,73,0,97,4,0,32,1,0,144,0,101,4,0,32,2,0,152,0,170,0,170,170,201,3,0,144,209,3,0,144,1,0,152,0,216,3,0,144,2,0,73,0,117,0,170,170,105,4,0,32,109,4,0,32,1,0,144,0,111,4,0,32,2,0,152,0,170,0,170,170,220,3,0,144,0,0,0,0,1,0,152,0,223,3,0,144,2,0,73,0,117,0,170,170,117,4,0,32,121,4,0,32,1,0,144,0,123,4,0,32,2,0,152,0,170,0,170,170,226,3,0,144,0,0,0,0,1,0,73,0,129,4,0,32,1,0,144,0,133,4,0,32,49,0,141,0,167,0,176,0,179,0,182,0,185,0,188,0,60,0,191,0,138,0,194,0,197,0,124,0,200,0,203,0,206,0,209,0,212,0,215,0,218,0,221,0,224,0,227,0,230,0,233,0,236,0,239,0,242,0,245,0,248,0,251,0,254,0,1,1,4,1,7,1,10,1,13,1,16,1,19,1,22,1,25,1,28,1,31,1,45,0,34,1,37,1,40,1,43,1,46,1,142,2,0,32,157,2,0,32,165,2,0,32,177,2,0,32,183,2,0,32,197,2,0,32,210,2,0,32,220,2,0,32,232,2,0,32,238,2,0,32,244,2,0,32,252,2,0,32,2,3,0,32,16,3,0,32,26,3,0,32,36,3,0,32,50,3,0,32,58,3,0,32,64,3,0,32,70,3,0,32,83,3,0,32,89,3,0,32,97,3,0,32,111,3,0,32,119,3,0,32,131,3,0,32,143,3,0,32,157,3,0,32,167,3,0,32,180,3,0,32,186,3,0,32,199,3,0,32,212,3,0,32,222,3,0,32,236,3,0,32,242,3,0,32,255,3,0,32,11,4,0,32,28,4,0,32,42,4,0,32,52,4,0,32,66,4,0,32,79,4,0,32,87,4,0,32,95,4,0,32,103,4,0,32,115,4,0,32,127,4,0,32,135,4,0,32,2,0,48,0,132,0,170,170,129,2,0,32,137,4,0,32,1,0,32,0,211,4,0,32,170,170,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,12,0,0,32,7,0,0,0,11,0,0,0,14,0,0,0,14,0,0,0,1,0,0,0,1,0,0,0,12,0,0,0,83,116,97,110,100,97,114,100,73,67,85,0,0,0,170,170,1,0,32,0,0,0,0,128,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,13,0,0,80,7,0,0,0,17,0,0,0,27,0,0,0,27,0,0,0,3,0,0,0,1,0,0,0,27,0,0,0,67,76,68,82,86,101,114,115,105,111,110,0,68,97,116,97,86,101,114,115,105,111,110,0,73,67,85,86,101,114,115,105,111,110,0,170,0,0,52,0,50,0,0,0,55,0,50,0,46,0,49,0,46,0,48,0,46,0,48,0,0,0,3,0,32,0,44,0,56,0,1,0,4,0,4,0,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,253,6,0,32,7,0,0,0,65,3,0,0,7,7,0,0,7,7,0,0,49,1,0,0,1,0,0,0,115,6,0,0,98,99,112,84,121,112,101,65,108,105,97,115,0,99,97,0,105,115,108,97,109,105,99,99,0,107,101,121,73,110,102,111,0,100,101,112,114,101,99,97,116,101,100,0,107,104,0,118,116,0,118,97,108,117,101,84,121,112,101,0,100,120,0,104,48,0,120,48,0,107,101,121,77,97,112,0,99,97,108,101,110,100,97,114,0,99,111,108,97,108,116,101,114,110,97,116,101,0,99,111,108,98,97,99,107,119,97,114,100,115,0,99,111,108,99,97,115,101,102,105,114,115,116,0,99,111,108,99,97,115,101,108,101,118,101,108,0,99,111,108,104,105,114,97,103,97,110,97,113,117,97,116,101,114,110,97,114,121,0,99,111,108,108,97,116,105,111,110,0,99,111,108,110,111,114,109,97,108,105,122,97,116,105,111,110,0,99,111,108,110,117,109,101,114,105,99,0,99,111,108,114,101,111,114,100,101,114,0,99,111,108,115,116,114,101,110,103,116,104,0,99,117,114,114,101,110,99,121,0,100,48,0,102,119,0,104,111,117,114,115,0,105,48,0,107,48,0,107,118,0,108,98,0,108,119,0,109,48,0,109,101,97,115,117,114,101,0,109,117,0,110,117,109,98,101,114,115,0,115,48,0,116,48,0,116,105,109,101,122,111,110,101,0,118,97,114,105,97,98,108,101,116,111,112,0,116,121,112,101,65,108,105,97,115,0,113,117,97,114,116,101,114,110,97,114,121,0,116,121,112,101,73,110,102,111,0,99,111,0,100,105,114,101,99,116,0,99,97,109,116,114,0,116,121,112,101,77,97,112,0,98,117,100,100,104,105,115,116,0,99,104,105,110,101,115,101,0,99,111,112,116,105,99,0,100,97,110,103,105,0,101,116,104,105,111,112,105,99,0,101,116,104,105,111,112,105,99,45,97,109,101,116,101,45,97,108,101,109,0,103,114,101,103,111,114,105,97,110,0,104,101,98,114,101,119,0,105,110,100,105,97,110,0,105,115,108,97,109,105,99,0,105,115,108,97,109,105,99,45,99,105,118,105,108,0,105,115,108,97,109,105,99,45,114,103,115,97,0,105,115,108,97,109,105,99,45,116,98,108,97,0,105,115,108,97,109,105,99,45,117,109,97,108,113,117,114,97,0,105,115,111,56,54,48,49,0,106,97,112,97,110,101,115,101,0,112,101,114,115,105,97,110,0,114,111,99,0,97,99,99,111,117,110,116,0,115,116,97,110,100,97,114,100,0,110,111,110,45,105,103,110,111,114,97,98,108,101,0,115,104,105,102,116,101,100,0,121,101,115,0,108,111,119,101,114,0,117,112,112,101,114,0,98,105,103,53,104,97,110,0,99,111,109,112,97,116,0,100,105,99,116,105,111,110,97,114,121,0,100,117,99,101,116,0,101,109,111,106,105,0,103,98,50,51,49,50,104,97,110,0,112,104,111,110,101,98,111,111,107,0,112,104,111,110,101,116,105,99,0,112,105,110,121,105,110,0,114,101,102,111,114,109,101,100,0,115,101,97,114,99,104,0,115,101,97,114,99,104,106,108,0,115,116,114,111,107,101,0,116,114,97,100,105,116,105,111,110,97,108,0,117,110,105,104,97,110,0,122,104,117,121,105,110,0,82,69,79,82,68,69,82,95,67,79,68,69,0,100,105,103,105,116,0,112,117,110,99,116,0,115,112,97,99,101,0,115,121,109,98,111,108,0,105,100,101,110,116,105,99,97,108,0,112,114,105,109,97,114,121,0,115,101,99,111,110,100,97,114,121,0,116,101,114,116,105,97,114,121,0,97,100,112,0,97,101,100,0,97,102,97,0,97,102,110,0,97,108,107,0,97,109,100,0,97,110,103,0,97,111,97,0,97,111,107,0,97,111,110,0,97,111,114,0,97,114,108,0,97,114,109,0,97,114,112,0,97,114,115,0,97,116,115,0,97,117,100,0,97,119,103,0,97,122,109,0,97,122,110,0,98,97,100,0,98,97,109,0,98,97,110,0,98,98,100,0,98,100,116,0,98,101,99,0,98,101,102,0,98,101,108,0,98,103,108,0,98,103,109,0,98,103,110,0,98,103,111,0,98,104,100,0,98,105,102,0,98,109,100,0,98,110,100,0,98,111,98,0,98,111,112,0,98,111,118,0,98,114,98,0,98,114,99,0,98,114,101,0,98,114,108,0,98,114,110,0,98,114,114,0,98,114,122,0,98,115,100,0,98,116,110,0,98,117,107,0,98,119,112,0,98,121,98,0,98,121,110,0,98,121,114,0,98,122,100,0,99,97,100,0,99,100,102,0,99,104,101,0,99,104,102,0,99,104,119,0,99,108,101,0,99,108,102,0,99,108,112,0,99,110,104,0,99,110,120,0,99,110,121,0,99,111,112,0,99,111,117,0,99,114,99,0,99,115,100,0,99,115,107,0,99,117,99,0,99,117,112,0,99,118,101,0,99,121,112,0,99,122,107,0,100,100,109,0,100,101,109,0,100,106,102,0,100,107,107,0,100,111,112,0,100,122,100,0,101,99,115,0,101,99,118,0,101,101,107,0,101,103,112,0,101,114,110,0,101,115,97,0,101,115,98,0,101,115,112,0,101,116,98,0,101,117,114,0,102,105,109,0,102,106,100,0,102,107,112,0,102,114,102,0,103,98,112,0,103,101,107,0,103,101,108,0,103,104,99,0,103,104,115,0,103,105,112,0,103,109,100,0,103,110,102,0,103,110,115,0,103,113,101,0,103,114,100,0,103,116,113,0,103,119,101,0,103,119,112,0,103,121,100,0,104,107,100,0,104,110,108,0,104,114,107,0,104,116,103,0,104,117,102,0,105,100,114,0,105,101,112,0,105,108,112,0,105,108,114,0,105,108,115,0,105,110,114,0,105,113,100,0,105,114,114,0,105,115,106,0,105,115,107,0,105,116,108,0,106,109,100,0,106,111,100,0,106,112,121,0,107,101,115,0,107,103,115,0,107,104,114,0,107,109,102,0,107,112,119,0,107,114,104,0,107,114,111,0,107,114,119,0,107,119,100,0,107,121,100,0,107,122,116,0,108,97,107,0,108,98,112,0,108,107,114,0,108,114,100,0,108,115,108,0,108,116,108,0,108,116,116,0,108,117,99,0,108,117,102,0,108,117,108,0,108,118,108,0,108,118,114,0,108,121,100,0,109,97,100,0,109,97,102,0,109,99,102,0,109,100,99,0,109,100,108,0,109,103,97,0,109,103,102,0,109,107,100,0,109,107,110,0,109,108,102,0,109,109,107,0,109,110,116,0,109,111,112,0,109,114,111,0,109,114,117,0,109,116,108,0,109,116,112,0,109,117,114,0,109,118,112,0,109,118,114,0,109,119,107,0,109,120,110,0,109,120,112,0,109,120,118,0,109,121,114,0,109,122,101,0,109,122,109,0,109,122,110,0,110,97,100,0,110,103,110,0,110,105,99,0,110,105,111,0,110,108,103,0,110,111,107,0,110,112,114,0,110,122,100,0,111,109,114,0,112,97,98,0,112,101,105,0,112,101,110,0,112,101,115,0,112,103,107,0,112,104,112,0,112,107,114,0,112,108,110,0,112,108,122,0,112,116,101,0,112,121,103,0,113,97,114,0,114,104,100,0,114,111,108,0,114,111,110,0,114,115,100,0,114,117,98,0,114,117,114,0,114,119,102,0,115,97,114,0,115,98,100,0,115,99,114,0,115,100,100,0,115,100,103,0,115,100,112,0,115,101,107,0,115,103,100,0,115,104,112,0,115,105,116,0,115,107,107,0,115,108,101,0,115,108,108,0,115,111,115,0,115,114,100,0,115,114,103,0,115,115,112,0,115,116,100,0,115,116,110,0,115,117,114,0,115,118,99,0,115,121,112,0,115,122,108,0,116,104,98,0,116,106,114,0,116,106,115,0,116,109,109,0,116,109,116,0,116,110,100,0,116,112,101,0,116,114,108,0,116,114,121,0,116,116,100,0,116,119,100,0,116,122,115,0,117,97,104,0,117,97,107,0,117,103,115,0,117,103,120,0,117,115,100,0,117,115,110,0,117,115,115,0,117,121,105,0,117,121,112,0,117,121,117,0,117,121,119,0,117,122,115,0,118,101,98,0,118,101,100,0,118,101,102,0,118,101,115,0,118,110,100,0,118,110,110,0,118,117,118,0,119,115,116,0,120,97,102,0,120,97,103,0,120,97,117,0,120,98,97,0,120,98,98,0,120,98,99,0,120,98,100,0,120,99,100,0,120,100,114,0,120,101,117,0,120,102,111,0,120,102,117,0,120,111,102,0,120,112,100,0,120,112,102,0,120,112,116,0,120,114,101,0,120,115,117,0,120,116,115,0,120,117,97,0,120,120,120,0,121,100,100,0,121,101,114,0,121,117,100,0,121,117,109,0,121,117,110,0,121,117,114,0,122,97,108,0,122,97,114,0,122,109,107,0,122,109,119,0,122,114,110,0,122,114,122,0,122,119,100,0,122,119,108,0,122,119,114,0,97,99,99,101,110,116,115,0,97,115,99,105,105,0,99,97,115,101,102,111,108,100,0,102,99,99,0,102,99,100,0,102,117,108,108,119,105,100,116,104,0,104,97,108,102,119,105,100,116,104,0,104,101,120,0,109,111,114,115,101,0,110,97,109,101,0,110,102,99,0,110,102,100,0,110,102,107,99,0,110,102,107,100,0,110,117,108,108,0,110,117,109,101,114,105,99,80,105,110,121,105,110,0,112,117,98,108,105,115,104,105,110,103,0,114,101,109,111,118,101,0,116,105,116,108,101,0,122,97,119,103,121,105,0,83,67,82,73,80,84,95,67,79,68,69,0,100,101,102,97,117,108,116,0,116,101,120,116,0,102,114,105,0,109,111,110,0,115,97,116,0,115,117,110,0,116,104,117,0,116,117,101,0,119,101,100,0,104,121,98,114,105,100,0,104,49,49,0,104,49,50,0,104,50,51,0,104,50,52,0,104,97,110,100,119,114,105,116,0,119,117,98,105,0,49,48,49,107,101,121,0,49,48,50,107,101,121,0,54,48,48,100,112,105,0,55,54,56,100,112,105,0,97,110,100,114,111,105,100,0,97,122,101,114,116,121,0,99,104,114,111,109,101,111,115,0,99,111,108,101,109,97,107,0,100,118,111,114,97,107,0,100,118,111,114,97,107,108,0,100,118,111,114,97,107,114,0,101,108,50,50,48,0,101,108,51,49,57,0,101,120,116,101,110,100,101,100,0,103,111,111,103,108,101,118,107,0,105,115,105,114,105,0,108,101,103,97,99,121,0,108,116,49,50,48,53,0,108,116,49,53,56,50,0,110,117,116,97,97,113,0,111,115,120,0,112,97,116,116,97,0,113,119,101,114,116,121,0,113,119,101,114,116,122,0,116,97,57,57,0,118,97,114,0,118,105,113,114,0,119,105,110,100,111,119,115,0,108,111,111,115,101,0,110,111,114,109,97,108,0,115,116,114,105,99,116,0,98,114,101,97,107,97,108,108,0,107,101,101,112,97,108,108,0,112,104,114,97,115,101,0,97,101,116,104,105,111,112,105,0,97,108,97,108,111,99,0,98,101,116,97,45,109,101,116,115,101,104,97,102,0,98,117,99,107,119,97,108,116,0,99,115,115,0,101,115,51,56,52,50,0,101,119,116,115,0,103,111,115,116,0,103,117,114,97,103,101,0,103,117,116,103,97,114,116,115,0,105,97,115,116,0,105,101,115,45,106,101,115,0,105,115,111,0,106,97,118,97,0,108,97,109,98,100,105,110,0,109,99,115,116,0,109,110,115,0,110,97,109,101,115,0,112,101,114,99,101,110,116,0,112,101,114,108,0,112,108,97,105,110,0,115,97,116,116,115,0,115,101,114,97,0,116,101,107,105,101,45,97,108,105,98,101,107,105,116,0,117,110,103,101,103,110,0,117,110,105,99,111,100,101,0,120,97,108,101,103,101,116,0,120,109,108,0,120,109,108,49,48,0,105,109,112,101,114,105,97,108,0,109,101,116,114,105,99,0,117,115,115,121,115,116,101,109,0,99,101,108,115,105,117,115,0,102,97,104,114,101,110,104,101,0,107,101,108,118,105,110,0,97,100,108,109,0,97,104,111,109,0,97,114,97,98,0,97,114,97,98,101,120,116,0,97,114,109,110,0,97,114,109,110,108,111,119,0,98,97,108,105,0,98,101,110,103,0,98,104,107,115,0,98,114,97,104,0,99,97,107,109,0,99,104,97,109,0,99,121,114,108,0,100,101,118,97,0,100,105,97,107,0,101,116,104,105,0,102,105,110,97,110,99,101,0,102,117,108,108,119,105,100,101,0,103,101,111,114,0,103,111,110,103,0,103,111,110,109,0,103,114,101,107,0,103,114,101,107,108,111,119,0,103,117,106,114,0,103,117,114,117,0,104,97,110,105,100,97,121,115,0,104,97,110,105,100,101,99,0,104,97,110,115,0,104,97,110,115,102,105,110,0,104,97,110,116,0,104,97,110,116,102,105,110,0,104,101,98,114,0,104,109,110,103,0,104,109,110,112,0,106,112,97,110,0,106,112,97,110,102,105,110,0,106,112,97,110,121,101,97,114,0,107,97,108,105,0,107,97,119,105,0,107,104,109,114,0,107,110,100,97,0,108,97,110,97,0,108,97,110,97,116,104,97,109,0,108,97,111,111,0,108,97,116,110,0,108,101,112,99,0,108,105,109,98,0,109,97,116,104,98,111,108,100,0,109,97,116,104,100,98,108,0,109,97,116,104,109,111,110,111,0,109,97,116,104,115,97,110,98,0,109,97,116,104,115,97,110,115,0,109,108,121,109,0,109,111,100,105,0,109,111,110,103,0,109,114,111,111,0,109,116,101,105,0,109,121,109,114,0,109,121,109,114,115,104,97,110,0,109,121,109,114,116,108,110,103,0,110,97,103,109,0,110,97,116,105,118,101,0,110,101,119,97,0,110,107,111,111,0,111,108,99,107,0,111,114,121,97,0,111,115,109,97,0,114,111,104,103,0,114,111,109,97,110,0,114,111,109,97,110,108,111,119,0,115,97,117,114,0,115,101,103,109,101,110,116,0,115,104,114,100,0,115,105,110,100,0,115,105,110,104,0,115,111,114,97,0,115,117,110,100,0,116,97,107,114,0,116,97,108,117,0,116,97,109,108,0,116,97,109,108,100,101,99,0,116,101,108,117,0,116,104,97,105,0,116,105,98,116,0,116,105,114,104,0,116,110,115,97,0,118,97,105,105,0,119,97,114,97,0,119,99,104,111,0,82,71,95,75,69,89,95,86,65,76,85,69,0,83,85,66,68,73,86,73,83,73,79,78,95,67,79,68,69,0,110,111,110,101,0,112,111,115,105,120,0,67,79,68,69,80,79,73,78,84,83,0,80,82,73,86,65,84,69,95,85,83,69,0,170,170,170,0,0,99,0,97,0,0,0,99,0,111,0,0,0,99,0,117,0,0,0,104,0,99,0,0,0,107,0,97,0,0,0,107,0,98,0,0,0,107,0,99,0,0,0,107,0,102,0,0,0,107,0,104,0,0,0,107,0,107,0,0,0,107,0,110,0,0,0,107,0,114,0,0,0,107,0,115,0,0,0,109,0,115,0,0,0,110,0,117,0,0,0,116,0,122,0,0,0,118,0,116,0,0,0,97,0,110,0,121,0,0,0,99,0,49,0,49,0,0,0,116,0,114,0,117,0,101,0,0,0,100,0,105,0,99,0,116,0,0,0,116,0,114,0,97,0,100,0,0,0,102,0,97,0,108,0,115,0,101,0,0,0,102,0,119,0,105,0,100,0,116,0,104,0,0,0,103,0,98,0,50,0,51,0,49,0,50,0,0,0,104,0,119,0,105,0,100,0,116,0,104,0,0,0,105,0,101,0,115,0,106,0,101,0,115,0,0,0,108,0,101,0,118,0,101,0,108,0,49,0,0,0,108,0,101,0,118,0,101,0,108,0,50,0,0,0,108,0,101,0,118,0,101,0,108,0,51,0,0,0,108,0,101,0,118,0,101,0,108,0,52,0,0,0,115,0,105,0,110,0,103,0,108,0,101,0,0,0,110,0,112,0,105,0,110,0,121,0,105,0,110,0,0,0,112,0,117,0,98,0,108,0,105,0,115,0,104,0,0,0,101,0,116,0,104,0,105,0,111,0,97,0,97,0,0,0,103,0,114,0,101,0,103,0,111,0,114,0,121,0,0,0,105,0,100,0,101,0,110,0,116,0,105,0,99,0,0,0,112,0,104,0,111,0,110,0,101,0,98,0,107,0,0,0,109,0,117,0,108,0,116,0,105,0,112,0,108,0,101,0,0,0,98,0,101,0,116,0,97,0,109,0,101,0,116,0,115,0,0,0,99,0,104,0,97,0,114,0,110,0,97,0,109,0,101,0,0,0,110,0,111,0,105,0,103,0,110,0,111,0,114,0,101,0,0,0,112,0,114,0,112,0,114,0,110,0,97,0,109,0,101,0,0,0,116,0,101,0,107,0,105,0,101,0,97,0,108,0,105,0,0,0,116,0,114,0,97,0,100,0,105,0,116,0,105,0,111,0,0,0,117,0,107,0,115,0,121,0,115,0,116,0,101,0,109,0,0,0,113,0,117,0,97,0,116,0,101,0,114,0,110,0,97,0,114,0,121,0,0,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,97,0,108,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,99,0,105,0,118,0,105,0,108,0,0,0,1,0,48,0,31,1,2,0,76,0,79,0,60,0,60,0,6,0,45,0,92,0,95,0,80,6,79,0,98,0,19,1,192,0,137,0,192,0,192,0,52,0,37,0,108,0,172,5,117,0,130,0,143,0,156,0,169,0,191,0,201,0,218,0,229,0,240,0,252,0,5,1,92,0,153,10,8,1,95,0,11,1,17,1,20,1,23,1,26,1,29,1,32,1,35,1,43,1,46,1,192,6,54,1,32,7,40,7,57,1,60,1,253,10,69,1,98,0,1,0,0,0,13,0,16,0,22,0,19,0,25,0,4,0,28,0,31,0,34,0,37,0,7,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,40,0,0,0,43,0,0,0,0,0,0,0,0,0,0,0,46,0,0,0,49,0,0,0,1,0,91,1,8,1,1,0,115,1,60,0,1,0,122,1,60,0,18,0,136,1,145,1,153,1,160,1,166,1,175,1,195,1,205,1,212,1,219,1,227,1,241,1,254,1,11,2,28,2,36,2,45,2,53,2,0,0,0,0,0,0,0,0,0,0,160,0,168,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,57,2,65,2,0,0,0,0,2,0,74,2,88,2,219,0,0,0,2,0,222,11,96,2,75,0,60,0,3,0,100,2,222,11,106,2,0,0,75,0,0,0,2,0,222,11,96,2,75,0,60,0,2,0,222,11,96,2,75,0,60,0,19,0,112,2,120,2,127,2,115,1,138,2,144,2,28,11,150,2,160,2,170,2,179,2,186,2,195,2,202,2,65,2,211,2,218,2,230,2,237,2,0,0,0,0,65,0,0,0,0,0,0,0,0,0,88,0,184,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,0,0,2,0,222,11,96,2,75,0,60,0,2,0,222,11,96,2,75,0,60,0,6,0,244,2,252,0,1,3,7,3,13,3,19,3,0,0,0,0,0,0,0,0,0,0,0,0,5,0,26,3,36,3,180,0,44,3,54,3,176,0,109,0,130,0,116,0,123,0,49,1,63,3,67,3,71,3,75,3,79,3,177,9,83,3,87,3,91,3,95,3,99,3,103,3,184,12,107,3,111,3,115,3,119,3,123,3,127,3,131,3,135,3,139,3,143,3,147,3,151,3,155,3,159,3,163,3,167,3,171,3,175,3,179,3,183,3,187,3,191,3,195,3,199,3,203,3,207,3,22,3,211,3,215,3,219,3,223,3,227,3,231,3,235,3,239,3,243,3,247,3,251,3,255,3,3,4,7,4,11,4,15,4,19,4,23,4,27,4,31,4,35,4,39,4,43,4,47,4,51,4,55,4,59,4,63,4,67,4,71,4,75,4,79,4,83,4,87,4,91,4,95,4,99,4,103,4,107,4,111,4,115,4,119,4,123,4,127,4,131,4,135,4,139,4,143,4,147,4,151,4,155,4,159,4,163,4,167,4,171,4,175,4,179,4,183,4,187,4,191,4,195,4,199,4,203,4,207,4,211,4,215,4,219,4,223,4,227,4,231,4,235,4,239,4,243,4,247,4,251,4,106,12,255,4,3,5,7,5,11,5,15,5,19,5,23,5,27,5,31,5,35,5,39,5,43,5,47,5,51,5,55,5,59,5,63,5,67,5,71,5,75,5,79,5,83,5,87,5,91,5,95,5,99,5,103,5,107,5,111,5,115,5,119,5,123,5,127,5,131,5,135,5,139,5,143,5,147,5,151,5,155,5,159,5,163,5,167,5,171,5,175,5,179,5,183,5,187,5,191,5,195,5,199,5,203,5,207,5,211,5,215,5,219,5,223,5,227,5,231,5,235,5,239,5,243,5,247,5,251,5,255,5,3,6,7,6,11,6,15,6,19,6,23,6,27,6,31,6,35,6,39,6,43,6,47,6,51,6,55,6,59,6,63,6,67,6,71,6,75,6,79,6,83,6,87,6,91,6,95,6,99,6,103,6,107,6,111,6,115,6,119,6,123,6,127,6,131,6,135,6,139,6,143,6,147,6,151,6,155,6,159,6,163,6,167,6,171,6,175,6,179,6,183,6,187,6,191,6,195,6,199,6,203,6,207,6,211,6,215,6,219,6,223,6,227,6,231,6,235,6,239,6,243,6,77,1,247,6,251,6,255,6,3,7,7,7,11,7,15,7,19,7,23,7,27,7,31,7,35,7,39,7,43,7,47,7,51,7,55,7,59,7,63,7,67,7,71,7,75,7,79,7,83,7,87,7,91,7,95,7,99,7,103,7,107,7,111,7,115,7,119,7,123,7,127,7,131,7,135,7,139,7,143,7,147,7,151,7,155,7,159,7,163,7,167,7,171,7,175,7,179,7,183,7,187,7,191,7,195,7,199,7,203,7,207,7,211,7,215,7,219,7,223,7,227,7,231,7,235,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,23,0,239,7,247,7,253,7,1,3,6,8,10,8,14,8,24,8,34,8,100,2,38,8,44,8,49,8,53,8,57,8,62,8,67,8,72,8,86,8,97,8,104,8,106,2,110,8,0,0,0,0,0,0,0,0,0,0,0,0,81,0,95,0,0,0,0,0,0,0,210,0,0,0,0,0,0,0,0,0,0,0,144,0,152,0,0,0,0,0,0,0,0,0,1,0,117,8,0,0,3,0,129,8,144,2,137,8,0,0,0,0,0,0,7,0,142,8,146,8,150,8,154,8,158,8,162,8,166,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,170,8,0,0,4,0,177,8,181,8,185,8,189,8,0,0,0,0,0,0,0,0,4,0,193,8,179,2,126,12,202,8,0,0,0,0,0,0,0,0,29,0,207,8,214,8,221,8,228,8,235,8,243,8,250,8,3,9,11,9,18,9,26,9,34,9,40,9,46,9,55,9,64,9,70,9,77,9,84,9,91,9,98,9,102,9,108,9,115,9,122,9,126,12,127,9,131,9,136,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,252,0,7,3,13,3,19,3,0,0,0,0,0,0,0,0,3,0,144,9,150,9,157,9,0,0,0,0,0,0,4,0,164,9,173,9,150,9,181,9,0,0,0,0,0,0,0,0,32,0,188,9,197,9,204,9,183,3,218,9,213,6,227,9,34,10,231,9,238,9,243,9,248,9,255,9,8,10,13,10,21,10,25,10,30,10,38,10,43,10,47,10,53,10,61,10,66,10,72,10,78,10,83,10,98,10,105,10,113,10,121,10,125,10,0,0,0,0,201,0,0,0,0,0,56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,102,0,0,0,0,0,0,0,0,0,0,0,228,0,0,0,0,0,0,0,0,0,0,0,237,0,0,0,0,0,0,0,0,0,0,0,3,0,131,10,140,10,147,10,255,0,0,0,0,0,3,0,156,10,164,10,173,10,0,0,0,0,0,0,91,0,180,10,185,10,190,10,195,10,203,10,208,10,216,10,221,10,226,10,231,10,236,10,241,10,246,10,251,10,0,11,5,11,10,11,18,11,27,11,32,11,37,11,42,11,47,11,55,11,60,11,65,11,74,11,82,11,87,11,95,11,100,11,108,11,113,11,118,11,25,10,123,11,128,11,136,11,145,11,150,11,155,11,160,11,165,11,170,11,179,11,184,11,189,11,194,11,199,11,208,11,216,11,225,11,234,11,243,11,248,11,253,11,2,12,7,12,12,12,17,12,26,12,35,12,40,12,47,12,52,12,57,12,62,12,67,12,72,12,77,12,83,12,92,12,97,12,105,12,110,12,115,12,120,12,125,12,130,12,135,12,140,12,145,12,153,12,158,12,163,12,168,12,173,12,218,2,178,12,183,12,188,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,246,0,0,0,0,0,0,0,1,0,193,12,0,0,7,0,239,7,247,7,34,8,38,8,72,8,86,8,110,8,0,0,0,0,0,0,0,0,144,0,152,0,0,0,1,0,206,12,0,0,2,0,223,12,65,2,0,0,0,0,1,0,126,12,0,0,1,0,228,12,0,0,1,0,234,12,0,0,1,0,245,12,0,0,38,0,0,0,47,0,73,0,67,0,85,0,68,0,65,0,84,0,65,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,84,0,121,0,112,0,101,0,115,0,47,0,98,0,99,0,112,0,84,0,121,0,112,0,101,0,65,0,108,0,105,0,97,0,115,0,47,0,116,0,122,0,0,0,170,170,2,0,45,0,119,9,170,170,45,1,0,80,115,6,0,48,2,0,65,0,82,0,170,170,48,1,0,80,53,1,0,80,41,0,0,0,47,0,73,0,67,0,85,0,68,0,65,0,84,0,65,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,84,0,121,0,112,0,101,0,115,0,47,0,116,0,121,0,112,0,101,0,65,0,108,0,105,0,97,0,115,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,0,0,2,0,240,0,60,1,170,170,141,1,0,80,144,6,0,48,2,0,112,1,119,9,170,170,144,1,0,80,147,1,0,80,1,0,65,0,170,6,0,32,39,0,0,0,47,0,73,0,67,0,85,0,68,0,65,0,84,0,65,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,84,0,121,0,112,0,101,0,115,0,47,0,116,0,121,0,112,0,101,0,77,0,97,0,112,0,47,0,116,0,105,0,109,0,101,0,122,0,111,0,110,0,101,0,0,0,37,0,108,0,172,5,117,0,130,0,143,0,156,0,169,0,191,0,201,0,218,0,229,0,240,0,252,0,5,1,92,0,153,10,8,1,95,0,11,1,17,1,20,1,23,1,26,1,29,1,32,1,35,1,43,1,46,1,192,6,54,1,32,7,40,7,57,1,60,1,253,10,69,1,98,0,150,1,0,80,187,1,0,80,192,1,0,80,197,1,0,80,202,1,0,80,209,1,0,80,214,1,0,80,219,1,0,80,2,2,0,80,7,2,0,80,12,2,0,80,25,2,0,80,36,2,0,80,135,4,0,80,182,4,0,80,185,4,0,80,192,4,0,80,207,4,0,80,210,4,0,80,219,4,0,80,228,4,0,80,31,5,0,80,40,5,0,80,47,5,0,80,56,5,0,80,121,5,0,80,128,5,0,80,135,5,0,80,62,6,0,80,65,6,0,80,80,6,0,80,83,6,0,80,88,6,0,80,176,6,0,48,91,6,0,80,94,6,0,80,97,6,0,80,6,0,32,0,57,0,101,0,81,1,103,1,128,1,170,170,136,6,0,32,140,6,0,32,66,1,0,80,166,6,0,32,174,6,0,32,197,6,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,187,39,0,32,7,0,0,0,34,0,0,0,191,39,0,0,191,39,0,0,5,0,0,0,1,0,0,0,145,25,0,0,108,105,107,101,108,121,0,108,97,110,103,117,97,103,101,65,108,105,97,115,101,115,0,108,115,114,115,0,114,101,103,105,111,110,65,108,105,97,115,101,115,0,116,114,105,101,0,109,97,116,99,104,0,100,105,115,116,97,110,99,101,115,0,112,97,114,97,100,105,103,109,115,0,112,97,114,116,105,116,105,111,110,115,0,114,101,103,105,111,110,84,111,80,97,114,116,105,116,105,111,110,115,0,170,0,0,46,0,0,0,90,0,90,0,0,0,73,0,78,0,0,0,73,0,68,0,0,0,82,0,85,0,0,0,67,0,78,0,0,0,67,0,65,0,0,0,67,0,77,0,0,0,80,0,72,0,0,0,80,0,75,0,0,0,73,0,82,0,0,0,78,0,80,0,0,0,85,0,83,0,0,0,78,0,71,0,0,0,84,0,82,0,0,0,84,0,90,0,0,0,68,0,69,0,0,0,73,0,84,0,0,0,75,0,69,0,0,0,90,0,65,0,0,0,71,0,66,0,0,0,77,0,76,0,0,0,83,0,68,0,0,0,84,0,72,0,0,0,85,0,71,0,0,0,69,0,83,0,0,0,69,0,84,0,0,0,70,0,82,0,0,0,77,0,77,0,0,0,77,0,89,0,0,0,67,0,68,0,0,0,71,0,72,0,0,0,77,0,90,0,0,0,70,0,77,0,0,0,77,0,65,0,0,0,77,0,88,0,0,0,83,0,69,0,0,0,83,0,78,0,0,0,65,0,70,0,0,0,66,0,68,0,0,0,66,0,82,0,0,0,67,0,73,0,0,0,71,0,69,0,0,0,71,0,78,0,0,0,71,0,82,0,0,0,73,0,81,0,0,0,77,0,78,0,0,0,78,0,69,0,0,0,78,0,76,0,0,0,85,0,65,0,0,0,67,0,72,0,0,0,78,0,65,0,0,0,84,0,71,0,0,0,85,0,90,0,0,0,86,0,78,0,0,0,90,0,87,0,0,0,65,0,76,0,0,0,65,0,79,0,0,0,65,0,90,0,0,0,66,0,70,0,0,0,67,0,89,0,0,0,68,0,90,0,0,0,69,0,71,0,0,0,69,0,82,0,0,0,70,0,73,0,0,0,70,0,74,0,0,0,73,0,76,0,0,0,74,0,80,0,0,0,75,0,77,0,0,0,76,0,65,0,0,0,78,0,79,0,0,0,80,0,76,0,0,0,82,0,83,0,0,0,83,0,65,0,0,0,83,0,76,0,0,0,83,0,89,0,0,0,84,0,78,0,0,0,84,0,87,0,0,0,85,0,77,0,0,0,89,0,69,0,0,0,65,0,81,0,0,0,65,0,85,0,0,0,66,0,69,0,0,0,66,0,74,0,0,0,66,0,79,0,0,0,66,0,84,0,0,0,67,0,87,0,0,0,71,0,70,0,0,0,71,0,81,0,0,0,73,0,69,0,0,0,75,0,72,0,0,0,75,0,82,0,0,0,75,0,90,0,0,0,76,0,66,0,0,0,76,0,82,0,0,0,77,0,68,0,0,0,77,0,85,0,0,0,77,0,87,0,0,0,80,0,65,0,0,0,80,0,70,0,0,0,80,0,71,0,0,0,82,0,79,0,0,0,83,0,82,0,0,0,84,0,76,0,0,0,87,0,70,0,0,0,88,0,75,0,0,0,89,0,84,0,0,0,102,0,102,0,0,0,65,0,77,0,0,0,65,0,84,0,0,0,65,0,87,0,0,0,66,0,65,0,0,0,66,0,71,0,0,0,66,0,78,0,0,0,67,0,70,0,0,0,67,0,76,0,0,0,67,0,79,0,0,0,67,0,86,0,0,0,67,0,90,0,0,0,68,0,75,0,0,0,69,0,67,0,0,0,69,0,69,0,0,0,71,0,65,0,0,0,71,0,84,0,0,0,71,0,85,0,0,0,71,0,87,0,0,0,72,0,75,0,0,0,72,0,85,0,0,0,74,0,79,0,0,0,75,0,73,0,0,0,76,0,84,0,0,0,76,0,85,0,0,0,76,0,86,0,0,0,77,0,75,0,0,0,77,0,79,0,0,0,77,0,82,0,0,0,77,0,86,0,0,0,80,0,69,0,0,0,80,0,84,0,0,0,82,0,69,0,0,0,83,0,66,0,0,0,83,0,67,0,0,0,83,0,75,0,0,0,83,0,79,0,0,0,84,0,74,0,0,0,86,0,65,0,0,0,86,0,85,0,0,0,90,0,77,0,0,0,99,0,115,0,0,0,106,0,119,0,0,0,108,0,118,0,0,0,115,0,99,0,0,0,115,0,118,0,0,0,116,0,108,0,0,0,48,0,50,0,0,0,48,0,52,0,0,0,48,0,53,0,0,0,48,0,54,0,0,0,49,0,51,0,0,0,65,0,68,0,0,0,65,0,69,0,0,0,65,0,78,0,0,0,65,0,82,0,0,0,65,0,83,0,0,0,65,0,88,0,0,0,66,0,72,0,0,0,66,0,73,0,0,0,66,0,76,0,0,0,66,0,81,0,0,0,66,0,85,0,0,0,66,0,86,0,0,0,66,0,89,0,0,0,67,0,67,0,0,0,67,0,71,0,0,0,67,0,80,0,0,0,67,0,82,0,0,0,67,0,83,0,0,0,67,0,84,0,0,0,67,0,85,0,0,0,68,0,68,0,0,0,68,0,71,0,0,0,68,0,74,0,0,0,68,0,79,0,0,0,68,0,89,0,0,0,69,0,65,0,0,0,69,0,72,0,0,0,69,0,85,0,0,0,69,0,90,0,0,0,70,0,79,0,0,0,70,0,81,0,0,0,70,0,88,0,0,0,71,0,76,0,0,0,71,0,77,0,0,0,71,0,80,0,0,0,71,0,83,0,0,0,72,0,77,0,0,0,72,0,78,0,0,0,72,0,82,0,0,0,72,0,84,0,0,0,72,0,86,0,0,0,73,0,67,0,0,0,73,0,77,0,0,0,73,0,83,0,0,0,74,0,69,0,0,0,74,0,77,0,0,0,74,0,84,0,0,0,75,0,71,0,0,0,75,0,80,0,0,0,75,0,87,0,0,0,76,0,73,0,0,0,76,0,75,0,0,0,76,0,83,0,0,0,76,0,89,0,0,0,77,0,67,0,0,0,77,0,69,0,0,0,77,0,70,0,0,0,77,0,71,0,0,0,77,0,72,0,0,0,77,0,73,0,0,0,77,0,81,0,0,0,77,0,84,0,0,0,78,0,67,0,0,0,78,0,72,0,0,0,78,0,73,0,0,0,78,0,81,0,0,0,78,0,82,0,0,0,78,0,84,0,0,0,78,0,85,0,0,0,78,0,90,0,0,0,79,0,77,0,0,0,80,0,67,0,0,0,80,0,77,0,0,0,80,0,82,0,0,0,80,0,83,0,0,0,80,0,85,0,0,0,80,0,87,0,0,0,80,0,89,0,0,0,80,0,90,0,0,0,81,0,65,0,0,0,81,0,85,0,0,0,82,0,72,0,0,0,82,0,87,0,0,0,83,0,73,0,0,0,83,0,74,0,0,0,83,0,77,0,0,0,83,0,83,0,0,0,83,0,84,0,0,0,83,0,85,0,0,0,83,0,86,0,0,0,83,0,88,0,0,0,84,0,68,0,0,0,84,0,70,0,0,0,84,0,75,0,0,0,84,0,77,0,0,0,84,0,79,0,0,0,84,0,80,0,0,0,84,0,86,0,0,0,85,0,75,0,0,0,85,0,89,0,0,0,86,0,68,0,0,0,86,0,69,0,0,0,87,0,75,0,0,0,87,0,83,0,0,0,89,0,68,0,0,0,89,0,85,0,0,0,90,0,82,0,0,0,98,0,110,0,0,0,98,0,115,0,0,0,102,0,106,0,0,0,110,0,118,0,0,0,116,0,119,0,0,0,118,0,101,0,0,0,118,0,105,0,0,0,122,0,117,0,0,0,110,0,102,0,114,0,0,0,120,0,101,0,115,0,0,0,108,0,122,0,104,0,0,0,119,0,97,0,114,0,0,0,121,0,101,0,110,0,0,0,48,0,48,0,49,0,0,0,98,0,107,0,117,0,0,0,120,0,115,0,114,0,0,0,98,0,115,0,113,0,0,0,103,0,121,0,105,0,0,0,109,0,100,0,101,0,0,0,115,0,109,0,115,0,0,0,120,0,115,0,97,0,0,0,121,0,97,0,122,0,0,0,100,0,116,0,112,0,0,0,101,0,110,0,108,0,0,0,107,0,104,0,97,0,0,0,109,0,102,0,97,0,0,0,116,0,107,0,107,0,0,0,116,0,115,0,119,0,0,0,98,0,104,0,111,0,0,0,100,0,111,0,105,0,0,0,101,0,109,0,107,0,0,0,109,0,97,0,110,0,0,0,113,0,117,0,122,0,0,0,115,0,117,0,114,0,0,0,116,0,115,0,100,0,0,0,119,0,114,0,111,0,0,0,120,0,109,0,110,0,0,0,121,0,107,0,111,0,0,0,104,0,111,0,99,0,0,0,112,0,112,0,97,0,0,0,115,0,110,0,98,0,0,0,122,0,122,0,97,0,0,0,99,0,106,0,118,0,0,0,101,0,107,0,121,0,0,0,110,0,97,0,107,0,0,0,111,0,107,0,118,0,0,0,115,0,116,0,107,0,0,0,115,0,117,0,107,0,0,0,116,0,98,0,111,0,0,0,119,0,101,0,108,0,0,0,119,0,105,0,116,0,0,0,119,0,106,0,97,0,0,0,121,0,117,0,103,0,0,0,122,0,110,0,101,0,0,0,102,0,105,0,108,0,0,0,105,0,98,0,97,0,0,0,107,0,100,0,116,0,0,0,111,0,121,0,98,0,0,0,112,0,97,0,112,0,0,0,118,0,97,0,106,0,0,0,121,0,117,0,101,0,0,0,114,0,107,0,105,0,0,0,116,0,109,0,104,0,0,0,117,0,116,0,104,0,0,0,121,0,97,0,109,0,0,0,99,0,113,0,117,0,0,0,104,0,104,0,121,0,0,0,107,0,97,0,97,0,0,0,107,0,100,0,118,0,0,0,107,0,100,0,122,0,0,0,108,0,111,0,106,0,0,0,108,0,111,0,114,0,0,0,108,0,116,0,103,0,0,0,109,0,101,0,117,0,0,0,110,0,99,0,117,0,0,0,110,0,104,0,101,0,0,0,110,0,105,0,110,0,0,0,110,0,107,0,103,0,0,0,110,0,109,0,103,0,0,0,110,0,115,0,111,0,0,0,112,0,105,0,115,0,0,0,112,0,107,0,97,0,0,0,114,0,103,0,110,0,0,0,115,0,97,0,102,0,0,0,115,0,99,0,97,0,0,0,115,0,112,0,115,0,0,0,116,0,98,0,103,0,0,0,116,0,99,0,121,0,0,0,116,0,101,0,116,0,0,0,116,0,104,0,114,0,0,0,116,0,105,0,100,0,0,0,116,0,105,0,107,0,0,0,116,0,107,0,114,0,0,0,116,0,109,0,121,0,0,0,117,0,116,0,114,0,0,0,119,0,105,0,117,0,0,0,119,0,105,0,119,0,0,0,119,0,115,0,107,0,0,0,120,0,99,0,114,0,0,0,121,0,97,0,121,0,0,0,122,0,109,0,105,0,0,0,122,0,111,0,109,0,0,0,122,0,115,0,109,0,0,0,52,0,49,0,57,0,0,0,97,0,101,0,98,0,0,0,97,0,106,0,116,0,0,0,98,0,97,0,108,0,0,0,98,0,97,0,110,0,0,0,98,0,98,0,99,0,0,0,98,0,102,0,121,0,0,0,98,0,105,0,107,0,0,0,98,0,117,0,97,0,0,0,98,0,117,0,103,0,0,0,99,0,104,0,109,0,0,0,99,0,109,0,103,0,0,0,100,0,101,0,110,0,0,0,100,0,103,0,108,0,0,0,100,0,109,0,119,0,0,0,100,0,110,0,106,0,0,0,101,0,109,0,97,0,0,0,101,0,115,0,103,0,0,0,101,0,122,0,97,0,0,0,103,0,98,0,97,0,0,0,103,0,111,0,110,0,0,0,103,0,114,0,98,0,0,0,103,0,114,0,99,0,0,0,103,0,118,0,114,0,0,0,104,0,105,0,102,0,0,0,104,0,110,0,106,0,0,0,104,0,110,0,110,0,0,0,105,0,122,0,105,0,0,0,106,0,103,0,107,0,0,0,107,0,98,0,100,0,0,0,107,0,108,0,110,0,0,0,107,0,109,0,98,0,0,0,107,0,111,0,107,0,0,0,107,0,112,0,101,0,0,0,107,0,114,0,117,0,0,0,107,0,116,0,114,0,0,0,107,0,120,0,108,0,0,0,107,0,122,0,104,0,0,0,107,0,122,0,106,0,0,0,107,0,122,0,107,0,0,0,107,0,122,0,116,0,0,0,108,0,97,0,104,0,0,0,108,0,105,0,102,0,0,0,108,0,117,0,121,0,0,0,109,0,97,0,105,0,0,0,109,0,97,0,107,0,0,0,109,0,101,0,110,0,0,0,109,0,110,0,105,0,0,0,109,0,110,0,119,0,0,0,109,0,114,0,121,0,0,0,109,0,119,0,114,0,0,0,110,0,101,0,119,0,0,0,112,0,97,0,108,0,0,0,112,0,105,0,106,0,0,0,114,0,97,0,106,0,0,0,114,0,101,0,106,0,0,0,114,0,104,0,103,0,0,0,114,0,105,0,102,0,0,0,115,0,107,0,114,0,0,0,115,0,109,0,100,0,0,0,115,0,111,0,103,0,0,0,115,0,114,0,120,0,0,0,115,0,121,0,108,0,0,0,115,0,121,0,114,0,0,0,116,0,97,0,106,0,0,0,116,0,98,0,119,0,0,0,116,0,100,0,117,0,0,0,116,0,115,0,102,0,0,0,116,0,118,0,100,0,0,0,117,0,111,0,107,0,0,0,120,0,109,0,114,0,0,0,97,0,108,0,98,0,0,0,97,0,115,0,101,0,0,0,98,0,120,0,104,0,0,0,100,0,116,0,121,0,0,0,103,0,107,0,110,0,0,0,104,0,108,0,117,0,0,0,104,0,110,0,111,0,0,0,106,0,107,0,109,0,0,0,107,0,98,0,109,0,0,0,107,0,102,0,121,0,0,0,107,0,104,0,116,0,0,0,107,0,104,0,122,0,0,0,107,0,107,0,106,0,0,0,109,0,98,0,104,0,0,0,109,0,101,0,101,0,0,0,109,0,102,0,111,0,0,0,109,0,107,0,119,0,0,0,110,0,99,0,101,0,0,0,110,0,103,0,118,0,0,0,110,0,105,0,105,0,0,0,110,0,108,0,110,0,0,0,110,0,115,0,110,0,0,0,110,0,118,0,111,0,0,0,111,0,116,0,97,0,0,0,114,0,119,0,111,0,0,0,115,0,98,0,101,0,0,0,115,0,99,0,118,0,0,0,115,0,103,0,100,0,0,0,115,0,103,0,108,0,0,0,115,0,107,0,115,0,0,0,115,0,114,0,110,0,0,0,116,0,102,0,105,0,0,0,116,0,103,0,117,0,0,0,116,0,105,0,103,0,0,0,116,0,105,0,111,0,0,0,116,0,107,0,108,0,0,0,116,0,116,0,101,0,0,0,116,0,116,0,115,0,0,0,116,0,116,0,116,0,0,0,117,0,103,0,97,0,0,0,117,0,108,0,105,0,0,0,117,0,114,0,119,0,0,0,119,0,97,0,101,0,0,0,119,0,97,0,110,0,0,0,119,0,98,0,114,0,0,0,119,0,101,0,111,0,0,0,119,0,106,0,105,0,0,0,119,0,109,0,111,0,0,0,119,0,110,0,110,0,0,0,119,0,115,0,103,0,0,0,119,0,119,0,97,0,0,0,120,0,98,0,105,0,0,0,120,0,99,0,104,0,0,0,120,0,99,0,111,0,0,0,120,0,108,0,97,0,0,0,120,0,110,0,97,0,0,0,120,0,110,0,114,0,0,0,120,0,110,0,121,0,0,0,120,0,115,0,105,0,0,0,120,0,115,0,108,0,0,0,121,0,97,0,115,0,0,0,121,0,97,0,118,0,0,0,121,0,98,0,97,0,0,0,121,0,108,0,103,0,0,0,121,0,109,0,108,0,0,0,121,0,109,0,116,0,0,0,121,0,111,0,115,0,0,0,121,0,114,0,109,0,0,0,121,0,115,0,115,0,0,0,122,0,105,0,97,0,0,0,48,0,51,0,52,0,0,0,49,0,52,0,51,0,0,0,53,0,56,0,50,0,0,0,56,0,56,0,54,0,0,0,56,0,57,0,48,0,0,0,48,0,50,0,54,0,0,0,48,0,54,0,50,0,0,0,49,0,55,0,50,0,0,0,50,0,48,0,48,0,0,0,50,0,51,0,48,0,0,0,50,0,56,0,48,0,0,0,53,0,51,0,50,0,0,0,55,0,51,0,54,0,0,0,56,0,51,0,48,0,0,0,97,0,97,0,105,0,0,0,97,0,97,0,107,0,0,0,97,0,97,0,109,0,0,0,97,0,97,0,115,0,0,0,97,0,97,0,117,0,0,0,97,0,98,0,105,0,0,0,97,0,98,0,113,0,0,0,97,0,98,0,114,0,0,0,97,0,98,0,116,0,0,0,97,0,98,0,121,0,0,0,97,0,99,0,100,0,0,0,97,0,99,0,101,0,0,0,97,0,99,0,104,0,0,0,97,0,99,0,110,0,0,0,97,0,100,0,97,0,0,0,97,0,100,0,101,0,0,0,97,0,100,0,106,0,0,0,97,0,100,0,112,0,0,0,97,0,100,0,120,0,0,0,97,0,100,0,121,0,0,0,97,0,100,0,122,0,0,0,97,0,101,0,121,0,0,0,97,0,103,0,99,0,0,0,97,0,103,0,100,0,0,0,97,0,103,0,103,0,0,0,97,0,103,0,111,0,0,0,97,0,103,0,112,0,0,0,97,0,103,0,113,0,0,0,97,0,104,0,97,0,0,0,97,0,104,0,108,0,0,0,97,0,104,0,111,0,0,0,97,0,105,0,115,0,0,0,97,0,106,0,103,0,0,0,97,0,106,0,117,0,0,0,97,0,107,0,107,0,0,0,97,0,108,0,97,0,0,0,97,0,108,0,110,0,0,0,97,0,108,0,115,0,0,0,97,0,108,0,116,0,0,0,97,0,109,0,105,0,0,0,97,0,109,0,109,0,0,0,97,0,109,0,110,0,0,0,97,0,109,0,112,0,0,0,97,0,109,0,113,0,0,0,97,0,110,0,99,0,0,0,97,0,110,0,107,0,0,0,97,0,110,0,110,0,0,0,97,0,110,0,121,0,0,0,97,0,111,0,103,0,0,0,97,0,111,0,106,0,0,0,97,0,111,0,109,0,0,0,97,0,111,0,117,0,0,0,97,0,111,0,122,0,0,0,97,0,112,0,99,0,0,0,97,0,112,0,100,0,0,0,97,0,112,0,101,0,0,0,97,0,112,0,102,0,0,0,97,0,112,0,114,0,0,0,97,0,112,0,115,0,0,0,97,0,112,0,122,0,0,0,97,0,113,0,100,0,0,0,97,0,113,0,116,0,0,0,97,0,114,0,104,0,0,0,97,0,114,0,109,0,0,0,97,0,114,0,110,0,0,0,97,0,114,0,111,0,0,0,97,0,114,0,113,0,0,0,97,0,114,0,115,0,0,0,97,0,114,0,121,0,0,0,97,0,114,0,122,0,0,0,97,0,115,0,97,0,0,0,97,0,115,0,100,0,0,0,97,0,115,0,103,0,0,0,97,0,115,0,111,0,0,0,97,0,115,0,116,0,0,0,97,0,116,0,97,0,0,0,97,0,116,0,103,0,0,0,97,0,116,0,106,0,0,0,97,0,117,0,101,0,0,0,97,0,117,0,121,0,0,0,97,0,118,0,108,0,0,0,97,0,118,0,110,0,0,0,97,0,118,0,117,0,0,0,97,0,119,0,97,0,0,0,97,0,119,0,98,0,0,0,97,0,119,0,111,0,0,0,97,0,119,0,120,0,0,0,97,0,121,0,98,0,0,0,97,0,121,0,114,0,0,0,97,0,121,0,120,0,0,0,97,0,122,0,100,0,0,0,97,0,122,0,106,0,0,0,98,0,97,0,112,0,0,0,98,0,97,0,113,0,0,0,98,0,97,0,114,0,0,0,98,0,97,0,115,0,0,0,98,0,97,0,118,0,0,0,98,0,97,0,120,0,0,0,98,0,97,0,122,0,0,0,98,0,98,0,97,0,0,0,98,0,98,0,98,0,0,0,98,0,98,0,100,0,0,0,98,0,98,0,106,0,0,0,98,0,98,0,112,0,0,0,98,0,98,0,114,0,0,0,98,0,99,0,99,0,0,0,98,0,99,0,102,0,0,0,98,0,99,0,103,0,0,0,98,0,99,0,104,0,0,0,98,0,99,0,105,0,0,0,98,0,99,0,108,0,0,0,98,0,99,0,109,0,0,0,98,0,99,0,110,0,0,0,98,0,99,0,111,0,0,0,98,0,99,0,113,0,0,0,98,0,99,0,117,0,0,0,98,0,100,0,100,0,0,0,98,0,101,0,98,0,0,0,98,0,101,0,102,0,0,0,98,0,101,0,104,0,0,0,98,0,101,0,106,0,0,0,98,0,101,0,109,0,0,0,98,0,101,0,116,0,0,0,98,0,101,0,119,0,0,0,98,0,101,0,120,0,0,0,98,0,101,0,122,0,0,0,98,0,102,0,100,0,0,0,98,0,102,0,113,0,0,0,98,0,102,0,116,0,0,0,98,0,103,0,99,0,0,0,98,0,103,0,109,0,0,0,98,0,103,0,110,0,0,0,98,0,103,0,120,0,0,0,98,0,104,0,98,0,0,0,98,0,104,0,103,0,0,0,98,0,104,0,105,0,0,0,98,0,104,0,107,0,0,0,98,0,104,0,108,0,0,0,98,0,104,0,121,0,0,0,98,0,105,0,98,0,0,0,98,0,105,0,99,0,0,0,98,0,105,0,103,0,0,0,98,0,105,0,109,0,0,0,98,0,105,0,110,0,0,0,98,0,105,0,111,0,0,0,98,0,105,0,113,0,0,0,98,0,105,0,114,0,0,0,98,0,106,0,100,0,0,0,98,0,106,0,104,0,0,0,98,0,106,0,105,0,0,0,98,0,106,0,106,0,0,0,98,0,106,0,110,0,0,0,98,0,106,0,111,0,0,0,98,0,106,0,112,0,0,0,98,0,106,0,113,0,0,0,98,0,106,0,114,0,0,0,98,0,106,0,116,0,0,0,98,0,106,0,122,0,0,0,98,0,107,0,98,0,0,0,98,0,107,0,99,0,0,0,98,0,107,0,109,0,0,0,98,0,107,0,113,0,0,0,98,0,107,0,118,0,0,0,98,0,108,0,97,0,0,0,98,0,108,0,103,0,0,0,98,0,108,0,116,0,0,0,98,0,109,0,102,0,0,0,98,0,109,0,104,0,0,0,98,0,109,0,107,0,0,0,98,0,109,0,113,0,0,0,98,0,109,0,117,0,0,0,98,0,110,0,99,0,0,0,98,0,110,0,103,0,0,0,98,0,110,0,109,0,0,0,98,0,110,0,112,0,0,0,98,0,111,0,106,0,0,0,98,0,111,0,109,0,0,0,98,0,111,0,110,0,0,0,98,0,112,0,112,0,0,0,98,0,112,0,121,0,0,0,98,0,113,0,99,0,0,0,98,0,113,0,105,0,0,0,98,0,113,0,112,0,0,0,98,0,113,0,118,0,0,0,98,0,114,0,97,0,0,0,98,0,114,0,104,0,0,0,98,0,114,0,120,0,0,0,98,0,114,0,122,0,0,0,98,0,115,0,106,0,0,0,98,0,115,0,115,0,0,0,98,0,115,0,116,0,0,0,98,0,116,0,98,0,0,0,98,0,116,0,111,0,0,0,98,0,116,0,116,0,0,0,98,0,116,0,118,0,0,0,98,0,117,0,99,0,0,0,98,0,117,0,100,0,0,0,98,0,117,0,107,0,0,0,98,0,117,0,109,0,0,0,98,0,117,0,111,0,0,0,98,0,117,0,114,0,0,0,98,0,117,0,115,0,0,0,98,0,117,0,117,0,0,0,98,0,118,0,98,0,0,0,98,0,119,0,100,0,0,0,98,0,119,0,114,0,0,0,98,0,120,0,107,0,0,0,98,0,120,0,114,0,0,0,98,0,121,0,101,0,0,0,98,0,121,0,110,0,0,0,98,0,121,0,114,0,0,0,98,0,121,0,115,0,0,0,98,0,121,0,118,0,0,0,98,0,121,0,120,0,0,0,98,0,122,0,97,0,0,0,98,0,122,0,99,0,0,0,98,0,122,0,101,0,0,0,98,0,122,0,102,0,0,0,98,0,122,0,104,0,0,0,98,0,122,0,119,0,0,0,99,0,97,0,100,0,0,0,99,0,97,0,110,0,0,0,99,0,97,0,120,0,0,0,99,0,98,0,106,0,0,0,99,0,99,0,104,0,0,0,99,0,99,0,112,0,0,0,99,0,99,0,113,0,0,0,99,0,101,0,98,0,0,0,99,0,102,0,97,0,0,0,99,0,103,0,103,0,0,0,99,0,104,0,105,0,0,0,99,0,104,0,107,0,0,0,99,0,104,0,112,0,0,0,99,0,104,0,114,0,0,0,99,0,105,0,99,0,0,0,99,0,105,0,114,0,0,0,99,0,106,0,97,0,0,0,99,0,106,0,109,0,0,0,99,0,106,0,114,0,0,0,99,0,107,0,97,0,0,0,99,0,107,0,98,0,0,0,99,0,107,0,108,0,0,0,99,0,107,0,111,0,0,0,99,0,107,0,121,0,0,0,99,0,108,0,97,0,0,0,99,0,108,0,99,0,0,0,99,0,108,0,100,0,0,0,99,0,109,0,101,0,0,0,99,0,109,0,107,0,0,0,99,0,109,0,110,0,0,0,99,0,109,0,114,0,0,0,99,0,111,0,112,0,0,0,99,0,111,0,121,0,0,0,99,0,112,0,115,0,0,0,99,0,114,0,103,0,0,0,99,0,114,0,104,0,0,0,99,0,114,0,107,0,0,0,99,0,114,0,108,0,0,0,99,0,114,0,115,0,0,0,99,0,115,0,98,0,0,0,99,0,115,0,119,0,0,0,99,0,116,0,100,0,0,0,99,0,119,0,100,0,0,0,99,0,122,0,101,0,0,0,100,0,97,0,100,0,0,0,100,0,97,0,102,0,0,0,100,0,97,0,103,0,0,0,100,0,97,0,104,0,0,0,100,0,97,0,107,0,0,0,100,0,97,0,112,0,0,0,100,0,97,0,114,0,0,0,100,0,97,0,118,0,0,0,100,0,98,0,100,0,0,0,100,0,98,0,113,0,0,0,100,0,98,0,116,0,0,0,100,0,99,0,99,0,0,0,100,0,100,0,110,0,0,0,100,0,101,0,100,0,0,0,100,0,101,0,108,0,0,0,100,0,101,0,118,0,0,0,100,0,103,0,97,0,0,0,100,0,103,0,104,0,0,0,100,0,103,0,105,0,0,0,100,0,103,0,111,0,0,0,100,0,103,0,114,0,0,0,100,0,103,0,122,0,0,0,100,0,104,0,100,0,0,0,100,0,105,0,97,0,0,0,100,0,105,0,102,0,0,0,100,0,105,0,107,0,0,0,100,0,105,0,110,0,0,0,100,0,105,0,113,0,0,0,100,0,105,0,116,0,0,0,100,0,106,0,101,0,0,0,100,0,106,0,108,0,0,0,100,0,107,0,108,0,0,0,100,0,109,0,102,0,0,0,100,0,111,0,98,0,0,0,100,0,111,0,112,0,0,0,100,0,111,0,119,0,0,0,100,0,114,0,104,0,0,0,100,0,114,0,105,0,0,0,100,0,114,0,108,0,0,0,100,0,114,0,114,0,0,0,100,0,114,0,115,0,0,0,100,0,115,0,98,0,0,0,100,0,116,0,100,0,0,0,100,0,116,0,109,0,0,0,100,0,116,0,115,0,0,0,100,0,117,0,97,0,0,0,100,0,117,0,99,0,0,0,100,0,117,0,100,0,0,0,100,0,117,0,103,0,0,0,100,0,117,0,106,0,0,0,100,0,117,0,116,0,0,0,100,0,117,0,122,0,0,0,100,0,118,0,97,0,0,0,100,0,119,0,108,0,0,0,100,0,119,0,117,0,0,0,100,0,119,0,119,0,0,0,100,0,121,0,111,0,0,0,100,0,121,0,117,0,0,0,100,0,122,0,101,0,0,0,100,0,122,0,103,0,0,0,101,0,98,0,107,0,0,0,101,0,98,0,117,0,0,0,101,0,102,0,105,0,0,0,101,0,103,0,108,0,0,0,101,0,103,0,121,0,0,0,101,0,107,0,97,0,0,0,101,0,107,0,99,0,0,0,101,0,107,0,107,0,0,0,101,0,108,0,112,0,0,0,101,0,109,0,105,0,0,0,101,0,109,0,120,0,0,0,101,0,110,0,110,0,0,0,101,0,110,0,113,0,0,0,101,0,114,0,105,0,0,0,101,0,115,0,107,0,0,0,101,0,115,0,117,0,0,0,101,0,116,0,114,0,0,0,101,0,116,0,116,0,0,0,101,0,116,0,117,0,0,0,101,0,116,0,120,0,0,0,101,0,119,0,111,0,0,0,101,0,120,0,116,0,0,0,102,0,97,0,97,0,0,0,102,0,97,0,98,0,0,0,102,0,97,0,103,0,0,0,102,0,97,0,105,0,0,0,102,0,97,0,110,0,0,0,102,0,97,0,116,0,0,0,102,0,98,0,108,0,0,0,102,0,102,0,105,0,0,0,102,0,102,0,109,0,0,0,102,0,105,0,97,0,0,0,102,0,105,0,116,0,0,0,102,0,108,0,114,0,0,0,102,0,109,0,112,0,0,0,102,0,111,0,100,0,0,0,102,0,111,0,110,0,0,0,102,0,111,0,114,0,0,0,102,0,112,0,101,0,0,0,102,0,113,0,115,0,0,0,102,0,114,0,99,0,0,0,102,0,114,0,101,0,0,0,102,0,114,0,112,0,0,0,102,0,114,0,114,0,0,0,102,0,114,0,115,0,0,0,102,0,117,0,98,0,0,0,102,0,117,0,99,0,0,0,102,0,117,0,100,0,0,0,102,0,117,0,101,0,0,0,102,0,117,0,102,0,0,0,102,0,117,0,104,0,0,0,102,0,117,0,113,0,0,0,102,0,117,0,114,0,0,0,102,0,117,0,118,0,0,0,102,0,117,0,121,0,0,0,102,0,118,0,114,0,0,0,103,0,97,0,97,0,0,0,103,0,97,0,102,0,0,0,103,0,97,0,103,0,0,0,103,0,97,0,104,0,0,0,103,0,97,0,106,0,0,0,103,0,97,0,108,0,0,0,103,0,97,0,110,0,0,0,103,0,97,0,118,0,0,0,103,0,97,0,119,0,0,0,103,0,97,0,121,0,0,0,103,0,97,0,122,0,0,0,103,0,98,0,99,0,0,0,103,0,98,0,102,0,0,0,103,0,98,0,109,0,0,0,103,0,98,0,111,0,0,0,103,0,98,0,121,0,0,0,103,0,98,0,122,0,0,0,103,0,99,0,114,0,0,0,103,0,100,0,101,0,0,0,103,0,100,0,106,0,0,0,103,0,100,0,110,0,0,0,103,0,100,0,114,0,0,0,103,0,101,0,98,0,0,0,103,0,101,0,106,0,0,0,103,0,101,0,108,0,0,0,103,0,101,0,111,0,0,0,103,0,101,0,114,0,0,0,103,0,101,0,122,0,0,0,103,0,102,0,107,0,0,0,103,0,102,0,120,0,0,0,103,0,103,0,110,0,0,0,103,0,103,0,111,0,0,0,103,0,103,0,114,0,0,0,103,0,104,0,115,0,0,0,103,0,105,0,108,0,0,0,103,0,105,0,109,0,0,0,103,0,105,0,111,0,0,0,103,0,106,0,107,0,0,0,103,0,106,0,110,0,0,0,103,0,106,0,117,0,0,0,103,0,107,0,112,0,0,0,103,0,108,0,105,0,0,0,103,0,108,0,107,0,0,0,103,0,109,0,109,0,0,0,103,0,109,0,118,0,0,0,103,0,110,0,100,0,0,0,103,0,110,0,103,0,0,0,103,0,110,0,111,0,0,0,103,0,111,0,100,0,0,0,103,0,111,0,102,0,0,0,103,0,111,0,105,0,0,0,103,0,111,0,109,0,0,0,103,0,111,0,114,0,0,0,103,0,111,0,115,0,0,0,103,0,111,0,116,0,0,0,103,0,114,0,101,0,0,0,103,0,114,0,116,0,0,0,103,0,114,0,119,0,0,0,103,0,115,0,119,0,0,0,103,0,116,0,105,0,0,0,103,0,116,0,117,0,0,0,103,0,117,0,98,0,0,0,103,0,117,0,99,0,0,0,103,0,117,0,100,0,0,0,103,0,117,0,103,0,0,0,103,0,117,0,114,0,0,0,103,0,117,0,118,0,0,0,103,0,117,0,119,0,0,0,103,0,117,0,120,0,0,0,103,0,117,0,122,0,0,0,103,0,118,0,102,0,0,0,103,0,118,0,115,0,0,0,103,0,119,0,99,0,0,0,103,0,119,0,105,0,0,0,103,0,119,0,116,0,0,0,103,0,121,0,97,0,0,0,104,0,97,0,107,0,0,0,104,0,97,0,122,0,0,0,104,0,98,0,98,0,0,0,104,0,100,0,110,0,0,0,104,0,100,0,121,0,0,0,104,0,101,0,97,0,0,0,104,0,105,0,97,0,0,0,104,0,105,0,103,0,0,0,104,0,105,0,104,0,0,0,104,0,105,0,108,0,0,0,104,0,105,0,109,0,0,0,104,0,108,0,97,0,0,0,104,0,108,0,101,0,0,0,104,0,109,0,100,0,0,0,104,0,109,0,110,0,0,0,104,0,109,0,116,0,0,0,104,0,110,0,100,0,0,0,104,0,110,0,101,0,0,0,104,0,111,0,116,0,0,0,104,0,114,0,114,0,0,0,104,0,115,0,98,0,0,0,104,0,115,0,110,0,0,0,104,0,117,0,105,0,0,0,104,0,117,0,114,0,0,0,104,0,117,0,119,0,0,0,105,0,97,0,110,0,0,0,105,0,97,0,114,0,0,0,105,0,98,0,98,0,0,0,105,0,98,0,105,0,0,0,105,0,98,0,121,0,0,0,105,0,99,0,97,0,0,0,105,0,99,0,101,0,0,0,105,0,99,0,104,0,0,0,105,0,100,0,105,0,0,0,105,0,100,0,117,0,0,0,105,0,102,0,101,0,0,0,105,0,103,0,98,0,0,0,105,0,103,0,101,0,0,0,105,0,106,0,106,0,0,0,105,0,107,0,101,0,0,0,105,0,107,0,107,0,0,0,105,0,107,0,119,0,0,0,105,0,107,0,120,0,0,0,105,0,108,0,108,0,0,0,105,0,108,0,109,0,0,0,105,0,108,0,111,0,0,0,105,0,108,0,119,0,0,0,105,0,109,0,111,0,0,0,105,0,111,0,117,0,0,0,105,0,114,0,105,0,0,0,105,0,115,0,107,0,0,0,105,0,116,0,100,0,0,0,105,0,119,0,109,0,0,0,105,0,119,0,115,0,0,0,105,0,122,0,104,0,0,0,106,0,97,0,98,0,0,0,106,0,97,0,108,0,0,0,106,0,97,0,109,0,0,0,106,0,97,0,114,0,0,0,106,0,98,0,107,0,0,0,106,0,98,0,111,0,0,0,106,0,98,0,117,0,0,0,106,0,101,0,103,0,0,0,106,0,101,0,110,0,0,0,106,0,103,0,111,0,0,0,106,0,105,0,98,0,0,0,106,0,109,0,99,0,0,0,106,0,109,0,108,0,0,0,106,0,114,0,97,0,0,0,106,0,114,0,98,0,0,0,106,0,117,0,116,0,0,0,107,0,97,0,98,0,0,0,107,0,97,0,99,0,0,0,107,0,97,0,100,0,0,0,107,0,97,0,105,0,0,0,107,0,97,0,106,0,0,0,107,0,97,0,107,0,0,0,107,0,97,0,109,0,0,0,107,0,97,0,111,0,0,0,107,0,97,0,119,0,0,0,107,0,98,0,112,0,0,0,107,0,98,0,113,0,0,0,107,0,98,0,120,0,0,0,107,0,98,0,121,0,0,0,107,0,99,0,103,0,0,0,107,0,99,0,107,0,0,0,107,0,99,0,108,0,0,0,107,0,99,0,116,0,0,0,107,0,100,0,101,0,0,0,107,0,100,0,104,0,0,0,107,0,100,0,108,0,0,0,107,0,101,0,97,0,0,0,107,0,101,0,110,0,0,0,107,0,101,0,122,0,0,0,107,0,102,0,111,0,0,0,107,0,102,0,114,0,0,0,107,0,103,0,99,0,0,0,107,0,103,0,100,0,0,0,107,0,103,0,101,0,0,0,107,0,103,0,102,0,0,0,107,0,103,0,104,0,0,0,107,0,103,0,112,0,0,0,107,0,104,0,98,0,0,0,107,0,104,0,107,0,0,0,107,0,104,0,110,0,0,0,107,0,104,0,113,0,0,0,107,0,104,0,115,0,0,0,107,0,104,0,119,0,0,0,107,0,105,0,106,0,0,0,107,0,105,0,117,0,0,0,107,0,105,0,119,0,0,0,107,0,106,0,100,0,0,0,107,0,106,0,103,0,0,0,107,0,106,0,115,0,0,0,107,0,106,0,121,0,0,0,107,0,107,0,99,0,0,0,107,0,108,0,113,0,0,0,107,0,108,0,116,0,0,0,107,0,108,0,120,0,0,0,107,0,109,0,104,0,0,0,107,0,109,0,108,0,0,0,107,0,109,0,111,0,0,0,107,0,109,0,114,0,0,0,107,0,109,0,115,0,0,0,107,0,109,0,117,0,0,0,107,0,109,0,119,0,0,0,107,0,110,0,99,0,0,0,107,0,110,0,102,0,0,0,107,0,110,0,103,0,0,0,107,0,110,0,110,0,0,0,107,0,110,0,112,0,0,0,107,0,111,0,105,0,0,0,107,0,111,0,106,0,0,0,107,0,111,0,108,0,0,0,107,0,111,0,115,0,0,0,107,0,111,0,122,0,0,0,107,0,112,0,102,0,0,0,107,0,112,0,111,0,0,0,107,0,112,0,112,0,0,0,107,0,112,0,114,0,0,0,107,0,112,0,118,0,0,0,107,0,112,0,120,0,0,0,107,0,113,0,98,0,0,0,107,0,113,0,102,0,0,0,107,0,113,0,115,0,0,0,107,0,113,0,121,0,0,0,107,0,114,0,99,0,0,0,107,0,114,0,105,0,0,0,107,0,114,0,106,0,0,0,107,0,114,0,108,0,0,0,107,0,114,0,109,0,0,0,107,0,114,0,115,0,0,0,107,0,115,0,98,0,0,0,107,0,115,0,100,0,0,0,107,0,115,0,102,0,0,0,107,0,115,0,104,0,0,0,107,0,115,0,106,0,0,0,107,0,115,0,112,0,0,0,107,0,115,0,114,0,0,0,107,0,116,0,98,0,0,0,107,0,116,0,109,0,0,0,107,0,116,0,111,0,0,0,107,0,116,0,122,0,0,0,107,0,117,0,98,0,0,0,107,0,117,0,100,0,0,0,107,0,117,0,101,0,0,0,107,0,117,0,106,0,0,0,107,0,117,0,109,0,0,0,107,0,117,0,110,0,0,0,107,0,117,0,112,0,0,0,107,0,117,0,115,0,0,0,107,0,118,0,103,0,0,0,107,0,118,0,114,0,0,0,107,0,118,0,115,0,0,0,107,0,118,0,120,0,0,0,107,0,119,0,106,0,0,0,107,0,119,0,107,0,0,0,107,0,119,0,111,0,0,0,107,0,119,0,113,0,0,0,107,0,119,0,118,0,0,0,107,0,120,0,97,0,0,0,107,0,120,0,99,0,0,0,107,0,120,0,101,0,0,0,107,0,120,0,109,0,0,0,107,0,120,0,112,0,0,0,107,0,120,0,114,0,0,0,107,0,120,0,119,0,0,0,107,0,120,0,122,0,0,0,107,0,121,0,101,0,0,0,107,0,121,0,120,0,0,0,107,0,122,0,114,0,0,0,108,0,97,0,98,0,0,0,108,0,97,0,100,0,0,0,108,0,97,0,106,0,0,0,108,0,97,0,107,0,0,0,108,0,97,0,115,0,0,0,108,0,98,0,101,0,0,0,108,0,98,0,107,0,0,0,108,0,98,0,117,0,0,0,108,0,98,0,119,0,0,0,108,0,99,0,109,0,0,0,108,0,99,0,112,0,0,0,108,0,99,0,113,0,0,0,108,0,100,0,98,0,0,0,108,0,101,0,100,0,0,0,108,0,101,0,101,0,0,0,108,0,101,0,103,0,0,0,108,0,101,0,109,0,0,0,108,0,101,0,112,0,0,0,108,0,101,0,113,0,0,0,108,0,101,0,117,0,0,0,108,0,101,0,122,0,0,0,108,0,103,0,103,0,0,0,108,0,105,0,97,0,0,0,108,0,105,0,100,0,0,0,108,0,105,0,103,0,0,0,108,0,105,0,104,0,0,0,108,0,105,0,105,0,0,0,108,0,105,0,106,0,0,0,108,0,105,0,108,0,0,0,108,0,105,0,115,0,0,0,108,0,106,0,112,0,0,0,108,0,107,0,105,0,0,0,108,0,107,0,116,0,0,0,108,0,108,0,101,0,0,0,108,0,108,0,110,0,0,0,108,0,108,0,111,0,0,0,108,0,109,0,109,0,0,0,108,0,109,0,110,0,0,0,108,0,109,0,111,0,0,0,108,0,109,0,112,0,0,0,108,0,110,0,115,0,0,0,108,0,110,0,117,0,0,0,108,0,111,0,107,0,0,0,108,0,111,0,108,0,0,0,108,0,111,0,115,0,0,0,108,0,111,0,122,0,0,0,108,0,114,0,99,0,0,0,108,0,114,0,114,0,0,0,108,0,117,0,97,0,0,0,108,0,117,0,111,0,0,0,108,0,117,0,122,0,0,0,108,0,118,0,115,0,0,0,108,0,119,0,108,0,0,0,108,0,122,0,122,0,0,0,109,0,97,0,99,0,0,0,109,0,97,0,100,0,0,0,109,0,97,0,102,0,0,0,109,0,97,0,103,0,0,0,109,0,97,0,111,0,0,0,109,0,97,0,115,0,0,0,109,0,97,0,119,0,0,0,109,0,97,0,121,0,0,0,109,0,97,0,122,0,0,0,109,0,98,0,111,0,0,0,109,0,98,0,113,0,0,0,109,0,98,0,117,0,0,0,109,0,98,0,119,0,0,0,109,0,99,0,105,0,0,0,109,0,99,0,112,0,0,0,109,0,99,0,113,0,0,0,109,0,99,0,114,0,0,0,109,0,99,0,117,0,0,0,109,0,100,0,97,0,0,0,109,0,100,0,102,0,0,0,109,0,100,0,104,0,0,0,109,0,100,0,106,0,0,0,109,0,100,0,114,0,0,0,109,0,100,0,120,0,0,0,109,0,101,0,100,0,0,0,109,0,101,0,103,0,0,0,109,0,101,0,107,0,0,0,109,0,101,0,114,0,0,0,109,0,101,0,116,0,0,0,109,0,102,0,101,0,0,0,109,0,102,0,110,0,0,0,109,0,102,0,113,0,0,0,109,0,103,0,104,0,0,0,109,0,103,0,108,0,0,0,109,0,103,0,111,0,0,0,109,0,103,0,112,0,0,0,109,0,103,0,120,0,0,0,109,0,103,0,121,0,0,0,109,0,104,0,105,0,0,0,109,0,104,0,108,0,0,0,109,0,104,0,114,0,0,0,109,0,105,0,99,0,0,0,109,0,105,0,102,0,0,0,109,0,105,0,110,0,0,0,109,0,105,0,119,0,0,0,109,0,107,0,105,0,0,0,109,0,107,0,108,0,0,0,109,0,107,0,112,0,0,0,109,0,108,0,101,0,0,0,109,0,108,0,112,0,0,0,109,0,108,0,115,0,0,0,109,0,109,0,111,0,0,0,109,0,109,0,117,0,0,0,109,0,109,0,120,0,0,0,109,0,110,0,97,0,0,0,109,0,110,0,102,0,0,0,109,0,110,0,107,0,0,0,109,0,110,0,116,0,0,0,109,0,111,0,97,0,0,0,109,0,111,0,101,0,0,0,109,0,111,0,102,0,0,0,109,0,111,0,104,0,0,0,109,0,111,0,109,0,0,0,109,0,111,0,115,0,0,0,109,0,111,0,120,0,0,0,109,0,112,0,112,0,0,0,109,0,112,0,115,0,0,0,109,0,112,0,116,0,0,0,109,0,112,0,120,0,0,0,109,0,113,0,108,0,0,0,109,0,114,0,100,0,0,0,109,0,114,0,106,0,0,0,109,0,114,0,111,0,0,0,109,0,115,0,116,0,0,0,109,0,116,0,99,0,0,0,109,0,116,0,102,0,0,0,109,0,116,0,105,0,0,0,109,0,116,0,109,0,0,0,109,0,116,0,114,0,0,0,109,0,117,0,97,0,0,0,109,0,117,0,112,0,0,0,109,0,117,0,114,0,0,0,109,0,117,0,115,0,0,0,109,0,118,0,97,0,0,0,109,0,118,0,110,0,0,0,109,0,118,0,121,0,0,0,109,0,119,0,100,0,0,0,109,0,119,0,106,0,0,0,109,0,119,0,107,0,0,0,109,0,119,0,118,0,0,0,109,0,119,0,119,0,0,0,109,0,120,0,99,0,0,0,109,0,120,0,109,0,0,0,109,0,121,0,100,0,0,0,109,0,121,0,107,0,0,0,109,0,121,0,109,0,0,0,109,0,121,0,116,0,0,0,109,0,121,0,118,0,0,0,109,0,121,0,119,0,0,0,109,0,121,0,120,0,0,0,109,0,121,0,122,0,0,0,109,0,122,0,107,0,0,0,109,0,122,0,109,0,0,0,109,0,122,0,110,0,0,0,109,0,122,0,112,0,0,0,109,0,122,0,119,0,0,0,109,0,122,0,122,0,0,0,110,0,97,0,99,0,0,0,110,0,97,0,100,0,0,0,110,0,97,0,102,0,0,0,110,0,97,0,110,0,0,0,110,0,97,0,112,0,0,0,110,0,97,0,113,0,0,0,110,0,97,0,115,0,0,0,110,0,98,0,102,0,0,0,110,0,98,0,114,0,0,0,110,0,98,0,120,0,0,0,110,0,99,0,97,0,0,0,110,0,99,0,102,0,0,0,110,0,99,0,104,0,0,0,110,0,99,0,111,0,0,0,110,0,99,0,112,0,0,0,110,0,99,0,113,0,0,0,110,0,100,0,99,0,0,0,110,0,100,0,115,0,0,0,110,0,101,0,98,0,0,0,110,0,101,0,120,0,0,0,110,0,103,0,97,0,0,0,110,0,103,0,98,0,0,0,110,0,103,0,108,0,0,0,110,0,103,0,116,0,0,0,110,0,104,0,98,0,0,0,110,0,104,0,119,0,0,0,110,0,105,0,102,0,0,0,110,0,105,0,106,0,0,0,110,0,105,0,117,0,0,0,110,0,105,0,121,0,0,0,110,0,105,0,122,0,0,0,110,0,106,0,111,0,0,0,110,0,106,0,122,0,0,0,110,0,107,0,111,0,0,0,110,0,108,0,114,0,0,0,110,0,109,0,122,0,0,0,110,0,110,0,102,0,0,0,110,0,110,0,104,0,0,0,110,0,110,0,107,0,0,0,110,0,110,0,109,0,0,0,110,0,110,0,112,0,0,0,110,0,110,0,115,0,0,0,110,0,110,0,120,0,0,0,110,0,111,0,100,0,0,0,110,0,111,0,101,0,0,0,110,0,111,0,108,0,0,0,110,0,111,0,110,0,0,0,110,0,111,0,111,0,0,0,110,0,111,0,112,0,0,0,110,0,111,0,117,0,0,0,110,0,112,0,105,0,0,0,110,0,113,0,111,0,0,0,110,0,114,0,98,0,0,0,110,0,114,0,107,0,0,0,110,0,114,0,117,0,0,0,110,0,115,0,107,0,0,0,110,0,115,0,115,0,0,0,110,0,115,0,116,0,0,0,110,0,116,0,109,0,0,0,110,0,116,0,114,0,0,0,110,0,116,0,115,0,0,0,110,0,117,0,105,0,0,0,110,0,117,0,110,0,0,0,110,0,117,0,112,0,0,0,110,0,117,0,115,0,0,0,110,0,117,0,118,0,0,0,110,0,117,0,120,0,0,0,110,0,119,0,98,0,0,0,110,0,119,0,111,0,0,0,110,0,120,0,113,0,0,0,110,0,120,0,114,0,0,0,110,0,120,0,117,0,0,0,110,0,121,0,99,0,0,0,110,0,121,0,109,0,0,0,110,0,121,0,110,0,0,0,110,0,122,0,105,0,0,0,111,0,103,0,99,0,0,0,111,0,106,0,103,0,0,0,111,0,106,0,115,0,0,0,111,0,107,0,97,0,0,0,111,0,107,0,114,0,0,0,111,0,108,0,97,0,0,0,111,0,110,0,110,0,0,0,111,0,110,0,115,0,0,0,111,0,112,0,97,0,0,0,111,0,112,0,109,0,0,0,111,0,114,0,111,0,0,0,111,0,114,0,117,0,0,0,111,0,114,0,121,0,0,0,111,0,115,0,97,0,0,0,111,0,116,0,107,0,0,0,111,0,117,0,105,0,0,0,111,0,117,0,110,0,0,0,111,0,122,0,109,0,0,0,112,0,97,0,103,0,0,0,112,0,97,0,109,0,0,0,112,0,97,0,116,0,0,0,112,0,97,0,117,0,0,0,112,0,98,0,105,0,0,0,112,0,98,0,117,0,0,0,112,0,99,0,100,0,0,0,112,0,99,0,109,0,0,0,112,0,99,0,114,0,0,0,112,0,100,0,99,0,0,0,112,0,100,0,116,0,0,0,112,0,101,0,100,0,0,0,112,0,101,0,114,0,0,0,112,0,101,0,115,0,0,0,112,0,101,0,120,0,0,0,112,0,102,0,108,0,0,0,112,0,104,0,108,0,0,0,112,0,104,0,110,0,0,0,112,0,104,0,114,0,0,0,112,0,105,0,108,0,0,0,112,0,105,0,112,0,0,0,112,0,107,0,111,0,0,0,112,0,108,0,97,0,0,0,112,0,108,0,116,0,0,0,112,0,109,0,99,0,0,0,112,0,109,0,115,0,0,0,112,0,109,0,117,0,0,0,112,0,110,0,98,0,0,0,112,0,110,0,103,0,0,0,112,0,110,0,110,0,0,0,112,0,110,0,116,0,0,0,112,0,111,0,110,0,0,0,112,0,112,0,111,0,0,0,112,0,112,0,114,0,0,0,112,0,113,0,109,0,0,0,112,0,114,0,97,0,0,0,112,0,114,0,100,0,0,0,112,0,114,0,103,0,0,0,112,0,114,0,121,0,0,0,112,0,115,0,115,0,0,0,112,0,116,0,112,0,0,0,112,0,117,0,98,0,0,0,112,0,117,0,117,0,0,0,112,0,117,0,122,0,0,0,112,0,119,0,97,0,0,0,113,0,117,0,99,0,0,0,113,0,117,0,103,0,0,0,113,0,117,0,104,0,0,0,114,0,97,0,111,0,0,0,114,0,97,0,113,0,0,0,114,0,97,0,115,0,0,0,114,0,99,0,102,0,0,0,114,0,101,0,108,0,0,0,114,0,101,0,115,0,0,0,114,0,105,0,97,0,0,0,114,0,106,0,115,0,0,0,114,0,107,0,116,0,0,0,114,0,109,0,102,0,0,0,114,0,109,0,111,0,0,0,114,0,109,0,114,0,0,0,114,0,109,0,116,0,0,0,114,0,109,0,117,0,0,0,114,0,109,0,120,0,0,0,114,0,109,0,121,0,0,0,114,0,110,0,97,0,0,0,114,0,110,0,103,0,0,0,114,0,111,0,98,0,0,0,114,0,111,0,102,0,0,0,114,0,111,0,109,0,0,0,114,0,114,0,111,0,0,0,114,0,116,0,109,0,0,0,114,0,117,0,101,0,0,0,114,0,117,0,103,0,0,0,114,0,117,0,109,0,0,0,114,0,119,0,107,0,0,0,114,0,121,0,117,0,0,0,115,0,97,0,104,0,0,0,115,0,97,0,112,0,0,0,115,0,97,0,113,0,0,0,115,0,97,0,115,0,0,0,115,0,97,0,116,0,0,0,115,0,97,0,118,0,0,0,115,0,97,0,122,0,0,0,115,0,98,0,97,0,0,0,115,0,98,0,112,0,0,0,115,0,99,0,99,0,0,0,115,0,99,0,107,0,0,0,115,0,99,0,108,0,0,0,115,0,99,0,110,0,0,0,115,0,99,0,111,0,0,0,115,0,99,0,114,0,0,0,115,0,100,0,99,0,0,0,115,0,100,0,104,0,0,0,115,0,101,0,102,0,0,0,115,0,101,0,104,0,0,0,115,0,101,0,105,0,0,0,115,0,101,0,115,0,0,0,115,0,103,0,97,0,0,0,115,0,103,0,115,0,0,0,115,0,103,0,119,0,0,0,115,0,103,0,122,0,0,0,115,0,104,0,105,0,0,0,115,0,104,0,107,0,0,0,115,0,104,0,110,0,0,0,115,0,105,0,100,0,0,0,115,0,105,0,103,0,0,0,115,0,105,0,108,0,0,0,115,0,105,0,109,0,0,0,115,0,106,0,114,0,0,0,115,0,107,0,99,0,0,0,115,0,107,0,107,0,0,0,115,0,108,0,100,0,0,0,115,0,108,0,105,0,0,0,115,0,108,0,108,0,0,0,115,0,108,0,111,0,0,0,115,0,108,0,121,0,0,0,115,0,109,0,106,0,0,0,115,0,109,0,110,0,0,0,115,0,109,0,112,0,0,0,115,0,109,0,113,0,0,0,115,0,110,0,99,0,0,0,115,0,110,0,107,0,0,0,115,0,110,0,112,0,0,0,115,0,110,0,120,0,0,0,115,0,110,0,121,0,0,0,115,0,110,0,122,0,0,0,115,0,111,0,107,0,0,0,115,0,111,0,113,0,0,0,115,0,111,0,117,0,0,0,115,0,111,0,121,0,0,0,115,0,112,0,100,0,0,0,115,0,112,0,108,0,0,0,115,0,112,0,121,0,0,0,115,0,114,0,98,0,0,0,115,0,114,0,99,0,0,0,115,0,114,0,114,0,0,0,115,0,115,0,100,0,0,0,115,0,115,0,103,0,0,0,115,0,115,0,121,0,0,0,115,0,116,0,113,0,0,0,115,0,117,0,97,0,0,0,115,0,117,0,101,0,0,0,115,0,117,0,106,0,0,0,115,0,117,0,108,0,0,0,115,0,117,0,109,0,0,0,115,0,117,0,115,0,0,0,115,0,119,0,98,0,0,0,115,0,119,0,99,0,0,0,115,0,119,0,103,0,0,0,115,0,119,0,104,0,0,0,115,0,119,0,112,0,0,0,115,0,119,0,118,0,0,0,115,0,120,0,110,0,0,0,115,0,120,0,119,0,0,0,115,0,122,0,108,0,0,0,116,0,97,0,110,0,0,0,116,0,97,0,113,0,0,0,116,0,98,0,99,0,0,0,116,0,98,0,100,0,0,0,116,0,98,0,102,0,0,0,116,0,98,0,122,0,0,0,116,0,99,0,105,0,0,0,116,0,100,0,100,0,0,0,116,0,100,0,102,0,0,0,116,0,100,0,103,0,0,0,116,0,100,0,104,0,0,0,116,0,101,0,100,0,0,0,116,0,101,0,109,0,0,0,116,0,101,0,111,0,0,0,116,0,103,0,99,0,0,0,116,0,103,0,103,0,0,0,116,0,103,0,111,0,0,0,116,0,104,0,99,0,0,0,116,0,104,0,108,0,0,0,116,0,104,0,113,0,0,0,116,0,104,0,119,0,0,0,116,0,104,0,120,0,0,0,116,0,105,0,98,0,0,0,116,0,105,0,101,0,0,0,116,0,105,0,102,0,0,0,116,0,105,0,109,0,0,0,116,0,105,0,118,0,0,0,116,0,107,0,116,0,0,0,116,0,108,0,102,0,0,0,116,0,108,0,119,0,0,0,116,0,108,0,120,0,0,0,116,0,108,0,121,0,0,0,116,0,109,0,112,0,0,0,116,0,110,0,101,0,0,0,116,0,110,0,104,0,0,0,116,0,111,0,102,0,0,0,116,0,111,0,103,0,0,0,116,0,111,0,107,0,0,0,116,0,111,0,113,0,0,0,116,0,112,0,105,0,0,0,116,0,112,0,109,0,0,0,116,0,112,0,111,0,0,0,116,0,112,0,122,0,0,0,116,0,113,0,111,0,0,0,116,0,114,0,117,0,0,0,116,0,114,0,118,0,0,0,116,0,114,0,119,0,0,0,116,0,115,0,103,0,0,0,116,0,115,0,106,0,0,0,116,0,116,0,100,0,0,0,116,0,116,0,106,0,0,0,116,0,116,0,113,0,0,0,116,0,116,0,114,0,0,0,116,0,117,0,104,0,0,0,116,0,117,0,108,0,0,0,116,0,117,0,109,0,0,0,116,0,117,0,113,0,0,0,116,0,118,0,108,0,0,0,116,0,118,0,117,0,0,0,116,0,119,0,104,0,0,0,116,0,119,0,109,0,0,0,116,0,119,0,113,0,0,0,116,0,120,0,103,0,0,0,116,0,120,0,111,0,0,0,116,0,121,0,97,0,0,0,116,0,121,0,106,0,0,0,116,0,121,0,118,0,0,0,116,0,122,0,109,0,0,0,117,0,98,0,117,0,0,0,117,0,100,0,105,0,0,0,117,0,100,0,109,0,0,0,117,0,108,0,119,0,0,0,117,0,109,0,98,0,0,0,117,0,109,0,117,0,0,0,117,0,110,0,112,0,0,0,117,0,110,0,120,0,0,0,117,0,114,0,105,0,0,0,117,0,114,0,116,0,0,0,117,0,115,0,97,0,0,0,117,0,118,0,104,0,0,0,117,0,118,0,108,0,0,0,117,0,122,0,110,0,0,0,118,0,97,0,103,0,0,0,118,0,97,0,105,0,0,0,118,0,97,0,110,0,0,0,118,0,101,0,99,0,0,0,118,0,101,0,112,0,0,0,118,0,105,0,99,0,0,0,118,0,105,0,118,0,0,0,118,0,108,0,115,0,0,0,118,0,109,0,102,0,0,0,118,0,109,0,119,0,0,0,118,0,111,0,116,0,0,0,118,0,114,0,111,0,0,0,118,0,117,0,110,0,0,0,118,0,117,0,116,0,0,0,119,0,97,0,106,0,0,0,119,0,97,0,108,0,0,0,119,0,97,0,119,0,0,0,119,0,98,0,112,0,0,0,119,0,98,0,113,0,0,0,119,0,99,0,105,0,0,0,119,0,101,0,114,0,0,0,119,0,103,0,98,0,0,0,119,0,103,0,105,0,0,0,119,0,103,0,119,0,0,0,119,0,104,0,103,0,0,0,119,0,105,0,98,0,0,0,119,0,105,0,118,0,0,0,119,0,108,0,115,0,0,0,119,0,110,0,99,0,0,0,119,0,110,0,105,0,0,0,119,0,110,0,117,0,0,0,119,0,110,0,121,0,0,0,119,0,111,0,98,0,0,0,119,0,111,0,115,0,0,0,119,0,114,0,115,0,0,0,119,0,116,0,109,0,0,0,119,0,117,0,117,0,0,0,119,0,117,0,118,0,0,0,120,0,97,0,118,0,0,0,120,0,98,0,97,0,0,0,120,0,105,0,97,0,0,0,120,0,107,0,104,0,0,0,120,0,108,0,99,0,0,0,120,0,108,0,100,0,0,0,120,0,109,0,102,0,0,0,120,0,110,0,116,0,0,0,120,0,111,0,103,0,0,0,120,0,111,0,110,0,0,0,120,0,112,0,101,0,0,0,120,0,112,0,114,0,0,0,120,0,114,0,98,0,0,0,120,0,114,0,113,0,0,0,120,0,115,0,106,0,0,0,120,0,115,0,109,0,0,0,120,0,119,0,101,0,0,0,121,0,97,0,111,0,0,0,121,0,97,0,112,0,0,0,121,0,97,0,116,0,0,0,121,0,98,0,98,0,0,0,121,0,98,0,100,0,0,0,121,0,98,0,121,0,0,0,121,0,100,0,100,0,0,0,121,0,101,0,114,0,0,0,121,0,103,0,114,0,0,0,121,0,103,0,119,0,0,0,121,0,105,0,121,0,0,0,121,0,108,0,101,0,0,0,121,0,108,0,108,0,0,0,121,0,109,0,97,0,0,0,121,0,110,0,113,0,0,0,121,0,111,0,110,0,0,0,121,0,114,0,98,0,0,0,121,0,114,0,101,0,0,0,121,0,117,0,97,0,0,0,121,0,117,0,106,0,0,0,121,0,117,0,116,0,0,0,121,0,117,0,117,0,0,0,121,0,117,0,119,0,0,0,122,0,97,0,103,0,0,0,122,0,97,0,105,0,0,0,122,0,97,0,112,0,0,0,122,0,100,0,106,0,0,0,122,0,101,0,97,0,0,0,122,0,103,0,104,0,0,0,122,0,104,0,120,0,0,0,122,0,105,0,114,0,0,0,122,0,107,0,100,0,0,0,122,0,107,0,116,0,0,0,122,0,108,0,109,0,0,0,122,0,121,0,98,0,0,0,76,0,97,0,116,0,110,0,0,0,65,0,114,0,97,0,98,0,0,0,68,0,101,0,118,0,97,0,0,0,67,0,121,0,114,0,108,0,0,0,69,0,116,0,104,0,105,0,0,0,72,0,97,0,110,0,116,0,0,0,84,0,104,0,97,0,105,0,0,0,66,0,101,0,110,0,103,0,0,0,67,0,97,0,110,0,115,0,0,0,72,0,97,0,110,0,115,0,0,0,67,0,111,0,112,0,116,0,0,0,72,0,101,0,98,0,114,0,0,0,83,0,117,0,110,0,100,0,0,0,77,0,121,0,109,0,114,0,0,0,71,0,114,0,101,0,107,0,0,0,77,0,97,0,114,0,99,0,0,0,84,0,101,0,108,0,117,0,0,0,82,0,117,0,110,0,114,0,0,0,78,0,115,0,104,0,117,0,0,0,84,0,102,0,110,0,103,0,0,0,84,0,105,0,98,0,116,0,0,0,75,0,116,0,104,0,105,0,0,0,75,0,110,0,100,0,97,0,0,0,87,0,99,0,104,0,111,0,0,0,65,0,118,0,115,0,116,0,0,0,68,0,117,0,112,0,108,0,0,0,71,0,117,0,114,0,117,0,0,0,76,0,105,0,115,0,117,0,0,0,80,0,114,0,116,0,105,0,0,0,71,0,101,0,111,0,114,0,0,0,72,0,109,0,110,0,112,0,0,0,75,0,97,0,110,0,97,0,0,0,75,0,111,0,114,0,101,0,0,0,76,0,97,0,111,0,111,0,0,0,78,0,107,0,111,0,111,0,0,0,84,0,97,0,109,0,108,0,0,0,66,0,114,0,97,0,105,0,0,0,67,0,104,0,97,0,109,0,0,0,67,0,112,0,114,0,116,0,0,0,71,0,108,0,97,0,103,0,0,0,73,0,116,0,97,0,108,0,0,0,74,0,97,0,109,0,111,0,0,0,75,0,97,0,108,0,105,0,0,0,75,0,104,0,111,0,106,0,0,0,77,0,111,0,110,0,103,0,0,0,77,0,114,0,111,0,111,0,0,0,78,0,97,0,103,0,109,0,0,0,79,0,103,0,97,0,109,0,0,0,79,0,115,0,109,0,97,0,0,0,80,0,104,0,97,0,103,0,0,0,83,0,97,0,114,0,98,0,0,0,83,0,104,0,97,0,119,0,0,0,83,0,105,0,100,0,100,0,0,0,83,0,105,0,110,0,104,0,0,0,84,0,97,0,118,0,116,0,0,0,88,0,112,0,101,0,111,0,0,0,72,0,117,0,110,0,103,0,0,0,77,0,117,0,108,0,116,0,0,0,83,0,111,0,121,0,111,0,0,0,83,0,121,0,108,0,111,0,0,0,84,0,111,0,116,0,111,0,0,0,65,0,100,0,108,0,109,0,0,0,65,0,103,0,104,0,98,0,0,0,65,0,104,0,111,0,109,0,0,0,65,0,114,0,109,0,105,0,0,0,65,0,114,0,109,0,110,0,0,0,66,0,97,0,108,0,105,0,0,0,66,0,97,0,109,0,117,0,0,0,66,0,97,0,115,0,115,0,0,0,66,0,97,0,116,0,107,0,0,0,66,0,104,0,107,0,115,0,0,0,66,0,111,0,112,0,111,0,0,0,66,0,114,0,97,0,104,0,0,0,66,0,117,0,103,0,105,0,0,0,66,0,117,0,104,0,100,0,0,0,67,0,97,0,107,0,109,0,0,0,67,0,97,0,114,0,105,0,0,0,67,0,104,0,101,0,114,0,0,0,67,0,104,0,114,0,115,0,0,0,67,0,112,0,109,0,110,0,0,0,68,0,105,0,97,0,107,0,0,0,68,0,111,0,103,0,114,0,0,0,69,0,103,0,121,0,112,0,0,0,69,0,108,0,98,0,97,0,0,0,69,0,108,0,121,0,109,0,0,0,71,0,111,0,110,0,103,0,0,0,71,0,111,0,110,0,109,0,0,0,71,0,111,0,116,0,104,0,0,0,71,0,114,0,97,0,110,0,0,0,71,0,117,0,106,0,114,0,0,0,72,0,97,0,110,0,98,0,0,0,72,0,97,0,110,0,103,0,0,0,72,0,97,0,110,0,105,0,0,0,72,0,97,0,110,0,111,0,0,0,72,0,105,0,114,0,97,0,0,0,72,0,108,0,117,0,119,0,0,0,72,0,109,0,110,0,103,0,0,0,74,0,97,0,118,0,97,0,0,0,74,0,112,0,97,0,110,0,0,0,75,0,97,0,119,0,105,0,0,0,75,0,104,0,97,0,114,0,0,0,75,0,104,0,109,0,114,0,0,0,75,0,105,0,116,0,115,0,0,0,76,0,97,0,110,0,97,0,0,0,76,0,101,0,112,0,99,0,0,0,76,0,105,0,109,0,98,0,0,0,76,0,105,0,110,0,97,0,0,0,76,0,105,0,110,0,98,0,0,0,76,0,121,0,99,0,105,0,0,0,76,0,121,0,100,0,105,0,0,0,77,0,97,0,104,0,106,0,0,0,77,0,97,0,107,0,97,0,0,0,77,0,97,0,110,0,100,0,0,0,77,0,97,0,110,0,105,0,0,0,77,0,101,0,100,0,102,0,0,0,77,0,101,0,110,0,100,0,0,0,77,0,101,0,114,0,99,0,0,0,77,0,101,0,114,0,111,0,0,0,77,0,108,0,121,0,109,0,0,0,77,0,111,0,100,0,105,0,0,0,77,0,116,0,101,0,105,0,0,0,78,0,97,0,110,0,100,0,0,0,78,0,97,0,114,0,98,0,0,0,78,0,98,0,97,0,116,0,0,0,78,0,101,0,119,0,97,0,0,0,79,0,108,0,99,0,107,0,0,0,79,0,114,0,107,0,104,0,0,0,79,0,114,0,121,0,97,0,0,0,79,0,115,0,103,0,101,0,0,0,79,0,117,0,103,0,114,0,0,0,80,0,97,0,108,0,109,0,0,0,80,0,97,0,117,0,99,0,0,0,80,0,101,0,114,0,109,0,0,0,80,0,104,0,108,0,105,0,0,0,80,0,104,0,108,0,112,0,0,0,80,0,104,0,110,0,120,0,0,0,80,0,108,0,114,0,100,0,0,0,82,0,106,0,110,0,103,0,0,0,82,0,111,0,104,0,103,0,0,0,83,0,97,0,109,0,114,0,0,0,83,0,97,0,117,0,114,0,0,0,83,0,103,0,110,0,119,0,0,0,83,0,104,0,114,0,100,0,0,0,83,0,105,0,110,0,100,0,0,0,83,0,111,0,103,0,100,0,0,0,83,0,111,0,103,0,111,0,0,0,83,0,111,0,114,0,97,0,0,0,83,0,121,0,114,0,99,0,0,0,84,0,97,0,103,0,98,0,0,0,84,0,97,0,107,0,114,0,0,0,84,0,97,0,108,0,101,0,0,0,84,0,97,0,108,0,117,0,0,0,84,0,97,0,110,0,103,0,0,0,84,0,103,0,108,0,103,0,0,0,84,0,104,0,97,0,97,0,0,0,84,0,105,0,114,0,104,0,0,0,84,0,110,0,115,0,97,0,0,0,85,0,103,0,97,0,114,0,0,0,86,0,97,0,105,0,105,0,0,0,86,0,105,0,116,0,104,0,0,0,87,0,97,0,114,0,97,0,0,0,88,0,115,0,117,0,120,0,0,0,89,0,101,0,122,0,105,0,0,0,89,0,105,0,105,0,105,0,0,0,90,0,97,0,110,0,98,0,0,0,115,0,107,0,105,0,112,0,0,0,48,0,49,0,50,0,51,0,52,0,53,0,0,0,115,0,99,0,114,0,105,0,112,0,116,0,0,0,48,0,49,0,50,0,51,0,52,0,53,0,54,0,0,0,206,1,38,7,42,7,98,7,43,4,134,7,254,7,154,7,186,7,186,4,182,4,162,7,82,15,206,5,87,3,178,7,87,3,77,27,67,3,26,8,31,4,58,8,42,23,86,8,198,16,126,8,163,4,130,8,182,20,138,8,107,3,146,8,59,4,166,8,38,6,194,8,190,4,214,8,206,4,38,9,202,8,3,6,134,3,62,9,158,12,78,9,102,9,106,9,214,11,134,9,122,10,150,9,46,12,174,9,242,3,26,10,242,8,62,10,139,4,86,10,94,5,90,10,210,4,166,10,10,4,182,10,63,3,214,10,10,19,218,10,6,11,246,10,174,5,254,10,158,6,2,11,63,3,14,11,134,5,26,4,242,21,54,11,159,4,58,11,188,1,66,11,238,4,82,11,62,20,138,11,138,3,150,11,122,5,162,11,166,11,170,11,186,3,174,11,158,11,182,11,38,12,186,11,14,8,206,11,167,3,218,11,78,5,250,11,18,4,2,12,22,12,6,12,115,3,18,12,102,11,74,12,119,4,78,12,202,7,142,3,146,3,102,12,131,4,154,12,199,3,210,12,55,3,230,12,65,1,42,13,122,11,54,13,171,4,58,13,102,25,70,13,6,5,114,13,91,4,118,13,95,3,130,13,2,4,134,13,14,5,138,13,246,4,142,13,254,13,158,13,234,7,178,13,78,5,202,13,2,5,234,13,219,3,250,13,222,20,14,14,95,4,22,14,10,12,58,14,254,4,74,14,113,26,82,14,118,14,102,14,166,5,138,14,30,15,174,14,14,21,186,14,87,4,218,14,147,4,234,14,238,14,246,14,34,13,71,4,127,4,151,4,67,4,30,5,250,4,38,15,34,5,54,15,250,3,135,6,91,3,191,1,191,3,38,4,66,26,190,15,194,23,194,15,250,19,206,15,30,16,218,15,167,3,38,16,79,3,54,16,135,4,62,16,75,4,66,16,50,5,78,16,10,17,102,16,234,5,110,16,203,3,150,16,182,9,62,5,110,3,242,16,90,13,6,17,22,4,22,17,194,5,66,5,58,5,70,5,230,4,74,5,110,3,82,5,110,3,70,17,178,16,82,17,202,9,118,17,114,3,162,17,250,21,198,17,26,20,202,17,46,22,6,18,194,1,18,18,143,3,34,18,167,4,46,18,99,3,118,18,202,10,162,18,42,15,178,18,218,4,242,18,146,3,246,18,142,6,139,6,163,3,2,19,158,25,54,19,118,5,82,19,138,5,106,19,234,4,110,19,2,4,134,19,222,7,146,19,118,5,194,19,178,6,218,19,150,20,226,19,70,12,246,19,42,4,30,6,134,8,70,20,146,20,98,20,222,19,102,20,22,6,122,20,230,11,134,20,235,3,174,20,134,5,218,20,230,9,242,20,47,4,30,21,51,4,46,21,2,4,62,21,34,17,74,21,107,4,86,21,102,7,102,21,123,3,106,21,123,3,146,21,79,4,150,21,158,14,158,21,126,21,162,21,86,5,178,3,202,4,186,21,102,17,206,21,17,27,226,21,218,21,150,3,27,4,34,22,86,12,50,22,70,22,90,22,163,3,106,22,18,8,102,4,110,14,138,22,83,3,158,22,123,4,62,6,6,15,238,22,250,3,254,22,155,4,158,5,46,5,182,3,242,3,70,23,42,5,78,23,197,1,114,23,58,6,118,23,190,24,138,23,131,3,186,5,110,3,222,23,130,9,230,23,70,24,242,23,2,21,246,23,250,3,250,23,215,3,126,4,10,15,254,23,254,21,126,3,146,24,203,1,238,3,22,24,130,6,34,24,166,24,38,24,110,15,190,5,178,5,110,24,14,4,42,3,199,3,198,24,118,11,202,24,162,3,198,5,242,4,230,24,151,3,218,3,115,4,70,25,62,25,222,3,114,20,150,4,206,20,134,25,150,10,138,25,82,7,142,25,42,25,170,25,54,5,182,25,234,4,186,25,110,23,186,6,226,4,214,25,10,4,222,25,91,3,70,3,254,25,238,25,218,6,250,25,246,17,210,6,70,19,214,6,170,4,26,26,230,3,38,26,42,26,62,26,54,6,174,4,99,3,78,26,187,3,246,18,0,0,0,0,0,0,139,29,151,29,0,0,35,4,82,26,78,0,30,7,82,26,3,0,34,7,82,26,3,0,46,7,82,26,3,0,89,26,97,26,126,0,50,7,82,26,3,0,54,7,97,26,3,0,58,7,82,26,93,0,62,7,82,26,3,0,66,7,82,26,3,0,70,7,82,26,3,0,74,7,82,26,9,0,78,7,82,26,72,0,86,7,82,26,93,0,90,7,82,26,3,0,94,7,82,26,3,0,43,4,182,26,255,0,106,7,97,26,12,0,110,7,82,26,3,0,119,6,202,26,30,0,182,4,87,26,228,0,114,7,82,26,3,0,99,4,82,26,57,0,118,7,82,26,3,0,122,7,82,26,3,0,126,7,82,26,3,0,57,27,82,26,3,0,130,7,82,26,3,0,138,7,82,26,21,0,142,7,82,26,3,0,146,7,82,26,3,0,150,7,141,27,6,0,158,7,82,26,3,0,186,4,87,26,228,0,199,3,82,26,93,0,166,7,119,29,135,0,170,7,82,26,3,0,87,3,82,26,168,0,37,27,82,26,3,0,174,7,82,26,59,1,182,7,97,26,12,0,23,4,102,26,78,0,190,7,82,26,3,0,194,7,82,26,3,0,32,27,82,26,39,0,198,7,82,26,3,0,123,6,82,26,75,0,206,7,82,26,3,0,210,7,82,26,3,0,214,7,82,26,39,0,218,7,82,26,3,0,226,7,82,26,3,0,230,7,82,26,3,0,238,7,82,26,9,0,242,7,87,26,3,0,246,7,87,26,156,0,250,7,82,26,3,0,2,8,82,26,3,0,6,8,82,26,3,0,10,8,82,26,3,0,67,3,87,26,186,0,158,26,146,27,30,0,158,26,185,28,128,1,158,26,220,28,225,0,22,8,82,26,3,0,31,4,151,27,68,1,30,8,82,26,89,1,34,8,82,26,252,0,38,8,87,26,183,0,42,8,87,26,219,0,46,8,87,26,102,0,50,8,87,26,186,0,191,6,117,26,6,0,54,8,82,26,45,0,210,5,19,29,36,0,62,8,82,26,3,0,66,8,82,26,3,0,70,8,82,26,75,0,74,8,82,26,3,0,78,8,82,26,3,0,82,8,82,26,18,0,90,8,82,26,3,0,195,6,97,26,12,0,94,8,87,26,3,0,98,8,82,26,3,0,97,27,82,26,3,0,102,8,82,26,3,0,106,8,92,26,6,0,110,8,82,26,3,0,114,8,82,26,3,0,118,8,82,26,3,0,163,4,82,26,252,0,122,8,82,26,3,0,107,3,82,26,174,0,107,3,87,26,135,0,107,3,87,26,30,0,107,3,97,26,12,0,199,6,97,26,12,0,190,4,87,26,27,0,194,4,82,26,9,0,142,8,92,26,33,0,59,4,82,26,75,0,150,8,82,26,71,1,154,8,82,26,21,0,158,8,82,26,3,0,162,8,161,27,21,0,170,8,82,26,3,0,174,8,82,26,3,0,198,4,82,26,9,0,178,8,82,26,3,0,182,8,82,26,21,0,186,8,82,26,3,0,190,8,82,26,3,0,198,8,82,26,3,0,206,8,82,26,3,0,210,8,82,26,123,0,206,4,82,26,24,0,218,8,82,26,3,0,222,8,82,26,3,0,226,8,82,26,3,0,230,8,102,26,3,0,234,8,82,26,3,0,238,8,82,26,3,0,51,6,97,26,1,2,246,8,82,26,3,0,250,8,82,26,3,0,254,8,87,26,66,0,2,9,82,26,185,1,6,9,82,26,3,0,10,9,82,26,9,0,14,9,82,26,3,0,18,9,82,26,45,0,22,9,82,26,21,0,26,9,1,27,6,0,30,9,87,26,27,0,202,4,92,26,6,0,111,4,97,26,80,1,34,9,92,26,6,0,42,9,87,26,27,0,46,9,152,26,42,0,134,3,92,26,6,0,50,9,92,26,6,0,54,9,82,26,3,0,58,9,92,26,6,0,66,9,82,26,3,0,70,9,82,26,3,0,155,6,82,26,182,1,74,9,82,26,3,0,82,9,82,26,3,0,86,9,82,26,3,0,90,9,82,26,39,0,94,9,82,26,3,0,98,9,82,26,3,0,110,9,82,26,3,0,114,9,102,26,3,0,118,9,92,26,6,0,122,9,82,26,9,0,126,9,82,26,3,0,138,9,82,26,3,0,142,9,82,26,111,0,146,9,82,26,3,0,154,9,82,26,3,0,158,9,82,26,21,0,162,9,82,26,3,0,78,3,82,26,24,0,166,9,82,26,3,0,170,9,82,26,18,0,242,3,82,26,87,0,178,9,96,27,162,0,239,5,82,26,63,0,186,9,82,26,3,0,190,9,82,26,3,0,194,9,82,26,63,0,198,9,82,26,3,0,30,3,117,26,117,0,206,9,82,26,3,0,210,9,82,26,3,0,214,9,82,26,3,0,215,3,182,26,15,0,218,9,82,26,3,0,222,9,82,26,3,0,226,9,82,26,3,0,234,9,117,26,6,0,238,9,82,26,3,0,242,9,87,26,30,0,246,9,82,26,3,0,250,9,82,26,123,0,127,6,82,26,81,0,254,9,92,26,6,0,2,10,87,26,27,0,6,10,92,26,6,0,10,10,82,26,3,0,33,3,82,26,77,1,14,10,82,26,3,0,86,3,166,27,26,1,18,10,82,26,21,0,22,10,102,26,3,0,30,10,82,26,24,0,34,10,82,26,3,0,38,10,92,26,27,0,210,4,97,26,12,0,42,10,82,26,62,1,46,10,82,26,3,0,214,4,82,26,9,0,50,10,82,26,3,0,54,10,82,26,21,0,58,10,82,26,3,0,139,4,147,26,84,0,66,10,82,26,3,0,70,10,82,26,3,0,74,10,82,26,8,1,78,10,82,26,3,0,82,10,82,26,3,0,214,5,82,26,3,0,94,5,82,26,54,0,94,10,82,26,3,0,98,10,102,26,189,0,102,10,82,26,3,0,106,10,82,26,3,0,110,10,82,26,21,0,114,10,82,26,3,0,118,10,82,26,3,0,126,10,82,26,63,0,130,10,82,26,3,0,134,10,82,26,3,0,138,10,82,26,3,0,103,4,82,26,75,0,142,10,82,26,36,0,146,10,82,26,3,0,154,10,82,26,3,0,158,10,82,26,39,0,162,10,201,27,117,0,19,6,97,26,12,0,170,10,82,26,24,0,174,10,82,26,3,0,178,10,82,26,72,0,159,6,82,26,116,1,63,3,127,26,15,0,63,3,107,26,243,0,63,3,107,26,83,1,63,3,107,26,5,1,63,3,107,26,122,1,63,3,107,26,9,0,63,3,107,26,146,1,63,3,107,26,41,1,63,3,107,26,24,0,63,3,107,26,38,1,63,3,107,26,50,1,63,3,107,26,69,0,63,3,107,26,231,0,63,3,107,26,60,0,63,3,107,26,36,0,63,3,107,26,162,0,63,3,181,27,231,0,63,3,20,28,231,0,186,10,82,26,99,0,218,4,97,26,12,0,198,26,82,26,36,0,190,10,82,26,18,0,194,10,211,27,36,0,198,10,82,26,36,0,206,10,87,26,14,1,210,10,11,27,162,0,190,3,82,26,3,0,222,10,87,26,135,0,226,10,82,26,3,0,230,10,82,26,3,0,234,10,82,26,3,0,238,10,82,26,3,0,242,10,82,26,18,0,174,5,49,29,135,0,250,10,82,26,3,0,222,4,116,27,138,0,163,6,82,26,81,0,10,11,132,26,186,0,18,11,82,26,24,0,159,4,122,26,18,0,22,11,82,26,18,0,26,11,97,26,147,0,30,11,122,26,18,0,34,11,122,26,18,0,38,11,82,26,167,1,188,1,82,26,98,1,42,11,82,26,213,0,46,11,122,26,18,0,50,11,225,28,84,0,63,4,97,26,12,0,63,4,21,27,80,1,55,6,97,26,12,0,115,4,82,26,60,0,194,26,82,26,101,1,62,11,82,26,3,0,238,4,82,26,123,0,70,11,82,26,3,0,74,11,82,26,3,0,78,11,82,26,36,0,86,11,97,26,12,0,90,11,82,26,54,0,94,11,82,26,3,0,98,11,82,26,3,0,106,11,87,26,6,0,110,11,82,26,3,0,95,3,82,26,48,0,114,11,82,26,3,0,226,4,82,26,18,0,126,11,82,26,3,0,130,11,82,26,3,0,134,11,82,26,3,0,230,4,87,26,3,0,138,3,92,26,6,0,142,11,82,26,18,0,146,11,82,26,3,0,122,5,92,26,6,0,154,11,82,26,3,0,186,3,82,26,42,0,178,11,82,26,141,0,190,11,140,28,39,0,194,11,82,26,3,0,198,11,82,26,3,0,202,11,82,26,3,0,167,3,97,26,138,0,167,3,46,27,15,0,210,11,82,26,3,0,222,11,102,26,3,0,226,11,82,26,48,0,234,11,82,26,63,0,110,3,82,26,87,0,238,11,82,26,3,0,218,5,92,26,33,0,242,11,82,26,21,0,246,11,82,26,3,0,18,4,82,26,3,0,254,11,82,26,3,0,115,3,82,26,144,0,39,4,84,29,152,1,14,12,82,26,3,0,26,12,82,26,3,0,30,12,82,26,111,0,34,12,82,26,177,0,42,12,82,26,3,0,50,12,82,26,54,0,7,6,82,26,93,0,54,12,82,26,39,0,58,12,82,26,51,0,62,12,236,27,186,0,66,12,82,26,3,0,119,4,82,26,107,1,194,3,36,27,84,0,219,3,152,26,132,0,242,4,82,26,3,0,82,12,82,26,3,0,146,3,82,26,64,2,146,3,252,26,129,0,71,3,82,26,36,0,71,3,81,27,60,0,90,12,82,26,3,0,94,12,82,26,3,0,131,6,82,26,74,3,98,12,82,26,3,0,59,3,82,26,75,0,246,4,0,28,6,0,131,4,82,26,36,0,106,12,82,26,36,0,110,12,82,26,3,0,114,12,26,27,51,0,118,12,82,26,3,0,122,12,82,26,3,0,126,12,82,26,21,0,130,12,82,26,75,0,250,4,82,26,3,0,123,3,87,26,30,0,134,12,82,26,3,0,138,12,82,26,3,0,142,12,82,26,3,0,146,12,82,26,3,0,150,12,82,26,8,1,65,1,82,26,111,0,65,1,131,27,129,0,162,12,82,26,3,0,166,12,82,26,63,0,75,6,82,26,192,0,170,12,87,26,66,0,238,3,82,26,24,0,174,12,82,26,108,0,36,3,82,26,195,0,178,12,82,26,3,0,182,12,82,26,3,0,11,6,82,26,52,2,186,12,82,26,3,0,190,12,82,26,249,0,194,12,82,26,3,0,198,12,82,26,3,0,202,12,82,26,3,0,55,3,82,26,81,0,206,12,82,26,36,0,214,12,82,26,81,0,218,12,82,26,48,0,222,12,82,26,48,0,226,12,87,26,21,0,234,12,82,26,56,1,238,12,82,26,3,0,242,12,82,26,129,0,246,12,82,26,3,0,250,12,82,26,141,0,254,12,82,26,51,0,2,13,82,26,39,0,6,13,82,26,3,0,10,13,82,26,66,0,243,5,82,26,144,0,107,6,82,26,11,1,14,13,82,26,93,0,18,13,82,26,3,0,22,13,82,26,29,1,26,13,82,26,3,0,30,13,82,26,3,0,62,27,82,26,3,0,38,13,127,26,15,0,46,13,82,26,3,0,50,13,82,26,9,0,171,4,82,26,78,0,254,4,82,26,3,0,62,13,82,26,3,0,66,13,92,26,6,0,6,5,82,26,3,0,74,13,82,26,3,0,78,13,87,26,30,0,82,13,82,26,5,1,59,6,82,26,60,0,86,13,82,26,3,0,94,13,82,26,3,0,98,13,82,26,3,0,102,13,82,26,3,0,106,13,82,26,3,0,110,13,82,26,3,0,91,4,227,26,126,0,122,13,102,26,78,0,126,13,82,26,3,0,14,5,92,26,33,0,146,13,82,26,3,0,150,13,82,26,131,1,154,13,82,26,3,0,162,13,87,26,27,0,166,13,82,26,3,0,170,13,87,26,27,0,222,5,82,26,3,0,174,13,82,26,3,0,63,6,82,26,75,0,182,13,87,26,30,0,186,13,82,26,3,0,190,13,102,26,3,0,95,4,82,26,196,2,194,13,82,26,3,0,198,13,82,26,3,0,2,5,162,26,6,0,206,13,82,26,3,0,210,13,102,26,3,0,214,13,82,26,3,0,218,13,92,26,6,0,222,13,82,26,9,0,226,13,82,26,144,0,230,13,5,28,147,0,10,5,16,27,180,0,10,5,105,28,132,0,238,13,117,26,6,0,242,13,82,26,3,0,246,13,82,26,150,0,79,6,15,28,6,0,2,14,82,26,120,0,6,14,82,26,92,1,10,14,82,26,3,0,18,14,82,26,93,0,26,14,82,26,3,0,30,14,82,26,3,0,34,14,82,26,54,0,23,6,82,26,91,2,38,14,82,26,3,0,42,14,82,26,3,0,46,14,87,26,3,0,50,14,82,26,18,0,54,14,87,26,3,0,90,3,82,26,3,0,119,3,82,26,39,0,119,3,87,26,66,0,119,3,87,26,21,0,72,27,82,26,3,0,62,14,127,26,15,0,12,27,82,26,3,0,82,27,82,26,36,0,66,14,87,26,114,0,70,14,82,26,3,0,78,14,102,26,3,0,67,4,137,26,198,0,30,4,82,26,3,0,189,26,92,26,6,0,189,26,82,26,6,0,86,14,82,26,3,0,18,5,82,26,195,0,90,14,82,26,3,0,94,14,82,26,3,0,98,14,82,26,24,0,166,5,92,26,6,0,106,14,82,26,3,0,226,5,45,28,42,0,114,14,250,28,15,0,122,14,82,26,3,0,126,14,87,26,27,0,130,14,92,26,6,0,22,5,232,26,36,0,26,5,82,26,24,0,230,5,87,26,27,0,199,26,82,26,44,1,174,3,92,26,6,0,42,27,92,26,6,0,134,14,82,26,3,0,123,4,82,26,79,2,142,14,82,26,48,0,146,14,127,26,15,0,247,5,82,26,82,2,174,26,82,26,125,1,150,14,82,26,3,0,154,14,82,26,18,0,251,5,82,26,153,0,227,6,82,26,74,3,162,14,82,26,3,0,166,14,82,26,3,0,170,14,82,26,39,0,178,14,82,26,3,0,182,14,82,26,3,0,87,4,82,26,94,2,190,14,82,26,3,0,127,4,82,26,9,0,87,27,82,26,3,0,194,14,82,26,3,0,198,14,82,26,3,0,202,14,82,26,156,0,83,6,82,26,39,0,206,14,82,26,3,0,210,14,82,26,3,0,27,6,129,29,15,0,214,14,82,26,3,0,147,4,122,26,18,0,222,14,82,26,3,0,226,14,82,26,3,0,230,14,82,26,3,0,242,14,82,26,24,0,250,14,82,26,3,0,71,4,82,26,9,0,92,27,97,26,12,0,87,6,82,26,74,3,254,14,82,26,3,0,2,15,82,26,3,0,223,3,82,26,51,0,151,4,137,26,198,0,14,15,82,26,3,0,18,15,82,26,3,0,22,15,82,26,12,0,30,5,82,26,3,0,227,3,60,28,201,0,26,15,82,26,3,0,34,15,82,26,100,2,34,5,82,26,3,0,46,15,82,26,74,3,50,15,82,26,3,0,58,15,82,26,3,0,62,15,82,26,21,0,91,3,137,26,74,3,66,15,82,26,3,0,70,15,82,26,45,0,74,15,92,26,33,0,78,15,82,26,3,0,86,15,82,26,101,1,191,3,82,26,9,0,191,1,82,26,9,0,34,4,97,26,159,0,90,15,82,26,183,0,94,15,82,26,84,0,98,15,82,26,3,0,102,15,82,26,3,0,106,15,82,26,39,0,114,15,82,26,54,0,118,15,82,26,63,0,122,15,65,28,9,0,38,5,97,26,12,0,238,5,82,26,3,0,126,15,82,26,3,0,130,15,82,26,3,0,134,15,82,26,3,0,138,15,87,26,141,0,142,15,82,26,39,0,146,15,82,26,165,0,150,15,82,26,3,0,154,15,82,26,3,0,158,15,82,26,45,0,162,15,82,26,156,0,166,15,82,26,3,0,246,3,112,26,69,0,170,15,82,26,95,1,174,15,82,26,21,0,178,15,82,26,3,0,182,15,82,26,123,0,186,15,92,26,6,0,242,5,92,26,6,0,75,4,82,26,90,0,198,15,82,26,9,0,202,15,82,26,3,0,210,15,82,26,120,0,118,3,82,26,6,0,214,15,69,29,15,0,222,15,92,26,6,0,226,15,82,26,63,0,230,15,82,26,3,0,246,5,147,26,6,0,234,15,87,26,27,0,250,5,82,26,3,0,11,4,82,26,54,0,238,15,82,26,3,0,242,15,82,26,42,0,246,15,82,26,3,0,255,5,82,26,153,0,250,15,82,26,3,0,254,15,247,26,207,0,2,16,82,26,3,0,6,16,82,26,3,0,127,3,97,26,20,1,127,3,87,26,114,0,127,3,87,26,15,0,127,3,87,26,30,0,127,3,87,26,138,0,10,16,82,26,3,0,254,5,82,26,21,0,91,6,82,26,61,2,42,5,82,26,54,0,14,16,82,26,3,0,18,16,82,26,3,0,22,16,82,26,3,0,235,5,75,28,14,1,46,5,82,26,171,0,26,16,82,26,3,0,34,16,82,26,3,0,79,3,82,26,42,0,79,3,87,26,23,1,79,3,87,26,135,0,79,3,124,29,126,0,42,16,82,26,3,0,46,16,82,26,3,0,50,16,82,26,3,0,223,5,192,26,6,0,135,4,82,26,3,0,58,16,82,26,119,1,50,5,92,26,6,0,70,16,82,26,3,0,171,3,242,26,17,1,74,16,97,26,12,0,82,16,82,26,3,0,86,16,82,26,99,0,90,16,82,26,3,0,54,5,82,26,26,1,94,16,82,26,3,0,98,16,82,26,3,0,106,16,82,26,3,0,203,3,97,26,12,0,114,16,82,26,3,0,118,16,82,26,3,0,122,16,82,26,3,0,126,16,82,26,3,0,130,16,102,26,3,0,134,16,97,26,12,0,138,16,82,26,222,0,142,16,82,26,24,0,146,16,82,26,12,0,154,16,82,26,3,0,58,5,92,26,6,0,67,6,87,26,6,0,158,16,82,26,45,0,162,16,82,26,3,0,166,16,82,26,21,0,170,16,82,26,48,0,174,16,82,26,3,0,182,16,82,26,3,0,186,16,102,26,3,0,190,16,82,26,3,0,194,16,82,26,3,0,62,5,82,26,87,0,202,16,82,26,3,0,206,16,82,26,3,0,210,16,82,26,3,0,214,16,82,26,3,0,218,16,97,26,12,0,222,16,82,26,3,0,226,16,82,26,3,0,230,16,82,26,3,0,234,16,82,26,3,0,238,16,82,26,9,0,246,16,87,26,27,0,15,6,82,26,60,0,250,16,82,26,3,0,254,16,82,26,18,0,2,17,82,26,3,0,22,4,82,26,3,0,14,17,82,26,3,0,18,17,102,26,3,0,194,5,82,26,3,0,66,5,92,26,6,0,26,17,112,26,69,0,30,17,87,26,27,0,38,17,82,26,3,0,42,17,82,26,3,0,195,3,97,26,106,2,195,3,87,26,15,0,195,3,82,26,42,0,46,17,82,26,3,0,50,17,82,26,3,0,70,5,87,26,3,0,74,5,82,26,87,0,54,17,82,26,3,0,82,5,82,26,87,0,167,6,82,26,179,1,58,17,100,28,132,0,62,17,137,26,198,0,22,27,82,26,45,0,86,5,87,26,27,0,66,17,82,26,72,0,74,17,82,26,3,0,207,5,82,26,137,1,78,17,97,26,12,0,86,17,82,26,3,0,90,17,82,26,9,0,94,17,82,26,3,0,98,17,112,26,15,0,106,17,82,26,3,0,110,17,82,26,3,0,114,17,82,26,3,0,122,17,82,26,3,0,126,17,90,28,6,0,130,17,82,26,3,0,134,17,82,26,3,0,138,17,97,26,12,0,203,6,82,26,72,0,142,17,82,26,3,0,111,6,82,26,144,0,146,17,82,26,3,0,150,17,82,26,3,0,90,5,92,26,33,0,90,5,95,28,6,0,154,17,82,26,3,0,158,17,82,26,3,0,166,17,82,26,51,0,170,17,82,26,18,0,174,17,217,26,15,0,178,17,82,26,9,0,182,17,87,26,30,0,186,17,82,26,36,0,190,17,82,26,3,0,194,17,82,26,3,0,206,17,162,26,6,0,210,17,82,26,51,0,214,17,82,26,3,0,31,6,82,26,90,0,218,17,82,26,3,0,222,17,82,26,3,0,123,27,247,26,207,0,46,4,82,26,3,0,226,17,82,26,3,0,230,17,82,26,90,0,50,4,82,26,3,0,234,17,82,26,3,0,238,17,82,26,185,1,242,17,87,26,30,0,113,27,82,26,134,1,54,4,82,26,140,1,227,5,82,26,90,0,250,17,82,26,90,0,254,17,82,26,54,0,2,18,87,26,30,0,194,1,82,26,140,1,10,18,112,26,69,0,62,3,127,26,15,0,14,18,82,26,42,0,143,3,97,26,143,1,22,18,82,26,9,0,26,18,82,26,21,0,30,18,92,26,6,0,98,5,92,26,6,0,102,5,82,26,9,0,167,4,82,26,172,2,38,18,82,26,54,0,42,18,82,26,3,0,99,3,82,26,87,0,99,3,87,26,4,2,50,18,82,26,105,0,2,6,82,26,3,0,54,18,82,26,3,0,58,18,82,26,3,0,62,18,82,26,3,0,66,18,82,26,3,0,70,18,82,26,3,0,74,18,82,26,3,0,78,18,82,26,3,0,82,18,82,26,3,0,86,18,82,26,3,0,90,18,82,26,3,0,94,3,87,26,3,0,94,18,97,26,12,0,98,18,82,26,24,0,102,18,82,26,3,0,106,18,82,26,9,0,110,18,102,26,3,0,114,18,82,26,3,0,6,6,82,26,3,0,122,18,82,26,3,0,106,5,82,26,222,0,126,18,82,26,54,0,130,18,82,26,3,0,58,4,82,26,3,0,122,3,87,26,69,0,134,18,82,26,32,1,138,18,82,26,3,0,10,6,82,26,3,0,142,18,82,26,3,0,79,4,82,26,136,2,146,18,82,26,96,0,150,18,82,26,3,0,154,18,82,26,21,0,158,18,92,26,33,0,166,18,82,26,45,0,15,4,82,26,139,2,170,18,82,26,3,0,174,18,82,26,3,0,182,18,82,26,18,0,186,18,82,26,3,0,190,18,82,26,9,0,194,18,82,26,3,0,198,18,87,26,3,0,202,18,82,26,3,0,206,18,82,26,3,0,14,6,82,26,3,0,207,6,160,28,6,0,210,18,82,26,3,0,214,18,82,26,3,0,218,18,82,26,66,0,222,18,82,26,3,0,226,18,82,26,3,0,230,18,82,26,3,0,234,18,82,26,3,0,238,18,82,26,3,0,110,5,117,26,6,0,114,5,147,26,84,0,163,3,82,26,47,1,250,18,82,26,3,0,254,18,82,26,18,0,6,19,82,26,18,0,14,19,82,26,177,0,18,19,82,26,3,0,22,19,82,26,3,0,26,19,82,26,3,0,30,19,82,26,3,0,34,19,82,26,3,0,38,19,82,26,3,0,149,26,92,26,6,0,42,19,92,26,33,0,46,19,97,26,12,0,50,19,51,27,117,0,211,6,82,26,148,2,58,19,82,26,3,0,62,19,82,26,3,0,66,19,82,26,3,0,74,19,92,26,6,0,78,19,82,26,21,0,138,5,92,26,6,0,86,19,82,26,3,0,90,19,82,26,36,0,94,19,82,26,3,0,98,19,82,26,3,0,102,19,87,26,27,0,114,19,82,26,63,0,118,19,82,26,9,0,122,19,232,26,36,0,126,19,82,26,165,0,130,19,82,26,3,0,138,19,82,26,3,0,142,19,102,26,3,0,150,19,97,26,12,0,154,19,82,26,3,0,158,19,82,26,72,0,162,19,130,28,30,0,166,19,82,26,3,0,170,19,82,26,3,0,174,19,87,26,30,0,178,19,82,26,3,0,182,19,82,26,3,0,186,19,82,26,3,0,171,6,82,26,163,2,190,19,82,26,3,0,198,19,82,26,3,0,198,3,82,26,3,0,202,19,127,26,15,0,206,19,82,26,51,0,210,19,82,26,153,0,214,19,82,26,3,0,183,3,82,26,210,0,230,19,82,26,3,0,18,6,82,26,3,0,234,19,82,26,3,0,238,19,82,26,105,0,242,19,82,26,3,0,62,4,82,26,3,0,144,26,82,26,165,0,254,19,82,26,96,0,2,20,82,26,48,0,235,3,92,26,33,0,6,20,82,26,3,0,126,5,92,26,33,0,10,20,82,26,3,0,54,3,82,26,3,0,108,27,82,26,153,0,14,20,82,26,3,0,18,20,82,26,3,0,22,20,82,26,96,0,30,20,82,26,3,0,66,4,82,26,105,0,34,20,82,26,105,0,38,20,82,26,3,0,26,6,82,26,3,0,42,20,82,26,9,0,70,4,82,26,3,0,46,20,82,26,169,2,50,20,82,26,3,0,54,20,82,26,3,0,58,20,82,26,6,0,74,4,82,26,3,0,66,20,82,26,3,0,78,4,82,26,21,0,74,20,82,26,3,0,143,6,82,26,210,0,78,20,82,26,3,0,82,20,82,26,21,0,86,20,82,26,3,0,90,20,82,26,3,0,94,20,197,26,6,0,231,5,82,26,210,0,106,20,85,28,69,0,110,20,92,26,6,0,118,20,167,26,108,0,126,20,82,26,3,0,130,20,82,26,3,0,138,20,252,26,129,0,175,6,82,26,57,0,142,20,82,26,3,0,154,20,122,26,18,0,34,6,82,26,3,0,82,4,82,26,57,0,158,20,82,26,3,0,162,20,94,29,6,0,166,20,82,26,3,0,170,20,82,26,3,0,178,20,82,26,3,0,186,20,82,26,3,0,190,20,82,26,223,2,194,20,82,26,3,0,198,20,82,26,3,0,39,3,82,26,36,0,202,20,82,26,3,0,210,20,82,26,15,0,214,20,82,26,3,0,179,6,82,26,35,1,226,20,82,26,45,0,230,20,82,26,72,0,234,20,82,26,93,0,175,3,82,26,81,0,175,3,82,26,75,0,238,20,82,26,3,0,47,4,122,26,18,0,246,20,122,26,18,0,250,20,82,26,18,0,254,20,82,26,3,0,202,3,82,26,3,0,47,27,82,26,3,0,6,21,82,26,3,0,10,21,82,26,3,0,18,21,82,26,3,0,51,4,205,28,6,0,22,21,82,26,3,0,26,21,87,26,3,0,215,6,97,26,126,0,34,21,210,28,36,0,42,6,87,26,3,0,38,21,200,28,138,0,42,21,215,28,234,6,50,21,82,26,3,0,179,3,212,26,6,0,179,3,87,26,27,0,54,21,82,26,24,0,130,5,235,28,30,0,130,5,240,28,15,0,58,21,82,26,24,0,254,3,82,26,74,1,66,21,82,26,193,2,70,21,82,26,3,0,107,4,87,26,114,0,78,21,82,26,81,0,82,21,82,26,39,0,90,21,82,26,36,0,94,21,82,26,18,0,98,21,82,26,3,0,102,27,101,27,30,0,110,21,82,26,3,0,114,21,82,26,48,0,118,21,87,26,3,0,122,21,245,28,23,1,130,21,82,26,3,0,134,21,82,26,3,0,86,4,82,26,164,1,90,4,186,27,6,0,138,21,82,26,54,0,209,26,82,26,213,0,142,21,82,26,3,0,154,21,82,26,51,0,166,21,82,26,3,0,170,21,82,26,3,0,174,21,152,26,132,0,178,21,82,26,99,0,178,3,92,26,6,0,182,21,82,26,3,0,190,21,82,26,18,0,194,21,70,28,27,0,198,21,87,26,30,0,202,21,82,26,74,3,210,21,82,26,3,0,134,26,82,26,120,0,214,21,82,26,3,0,222,21,82,26,110,1,230,21,82,26,3,0,27,4,82,26,155,1,234,21,82,26,113,1,238,21,82,26,104,1,7,27,82,26,3,0,246,21,82,26,3,0,2,22,82,26,161,1,142,5,82,26,9,0,6,22,82,26,3,0,10,22,82,26,3,0,94,4,82,26,51,0,146,5,4,29,84,0,14,22,82,26,6,0,150,5,177,26,102,0,150,5,82,26,144,0,18,22,92,26,33,0,22,22,117,26,117,0,219,6,82,26,150,0,26,22,82,26,192,0,30,22,82,26,150,0,38,22,87,26,30,0,42,22,82,26,108,0,71,6,82,26,242,1,54,22,82,26,3,0,58,22,82,26,96,0,62,22,82,26,9,0,66,22,82,26,45,0,52,27,82,26,3,0,74,22,82,26,3,0,78,22,82,26,195,0,214,26,97,26,12,0,82,22,97,26,147,0,86,22,82,26,164,1,115,6,82,26,211,2,94,22,82,26,45,0,46,6,82,26,3,0,98,22,237,26,201,0,103,3,92,26,6,0,98,4,82,26,93,0,102,22,97,26,12,0,110,22,82,26,54,0,114,22,82,26,9,0,118,22,195,28,6,0,122,22,82,26,111,0,126,22,14,29,6,0,130,22,82,26,3,0,50,6,82,26,3,0,134,22,82,26,45,0,197,1,82,26,51,0,83,3,97,26,216,0,83,3,82,26,12,0,83,3,82,26,130,2,83,3,82,26,47,1,83,3,82,26,42,0,142,22,92,26,6,0,146,22,87,26,3,0,150,22,82,26,51,0,154,22,82,26,60,0,159,3,87,26,27,0,159,3,92,26,6,0,159,3,41,27,6,0,159,3,29,29,6,0,162,22,82,26,51,0,166,22,87,26,30,0,211,5,82,26,210,0,170,22,82,26,123,0,174,22,82,26,96,0,178,22,82,26,105,0,182,22,82,26,63,0,147,6,82,26,86,1,186,22,61,27,11,1,190,22,82,26,134,1,194,22,102,26,3,0,198,22,82,26,3,0,202,22,177,26,102,0,206,22,82,26,3,0,210,22,147,26,84,0,173,26,87,26,3,0,183,6,91,27,118,2,214,22,82,26,78,0,218,22,82,26,3,0,222,22,82,26,3,0,226,22,82,26,3,0,230,22,82,26,3,0,155,4,82,26,170,1,234,22,82,26,3,0,154,5,87,26,27,0,66,6,82,26,3,0,187,6,82,26,214,2,242,22,82,26,3,0,246,22,82,26,213,0,250,22,82,26,3,0,2,23,82,26,9,0,175,4,82,26,18,3,67,27,82,26,108,0,158,5,82,26,171,0,6,23,82,26,108,0,10,23,82,26,192,0,14,23,9,29,198,0,18,23,82,26,3,0,98,3,82,26,192,0,35,6,82,26,165,0,182,3,82,26,87,0,22,23,82,26,3,0,26,23,82,26,63,0,30,23,82,26,3,0,34,23,82,26,3,0,38,23,82,26,3,0,83,4,82,26,173,1,162,5,34,29,159,0,46,23,82,26,3,0,50,23,82,26,3,0,54,23,112,26,69,0,58,23,82,26,3,0,62,23,82,26,3,0,66,23,82,26,3,0,106,4,82,26,3,0,74,23,44,29,6,0,70,6,82,26,50,1,82,23,82,26,111,0,223,6,82,26,57,0,86,23,82,26,3,0,90,23,82,26,3,0,94,23,82,26,189,0,204,26,82,26,57,0,206,3,82,26,3,0,98,23,82,26,48,0,219,26,82,26,9,0,102,23,82,26,3,0,106,23,82,26,3,0,210,3,82,26,45,0,154,3,82,26,3,0,122,23,82,26,129,0,200,1,82,26,108,0,131,3,82,26,45,0,126,23,87,26,62,1,130,23,82,26,90,0,134,23,82,26,48,0,142,23,82,26,3,0,146,23,92,26,6,0,150,23,82,26,9,0,154,23,82,26,3,0,170,5,117,26,117,0,158,23,82,26,213,0,43,6,1,27,6,0,178,5,92,26,33,0,27,27,82,26,3,0,162,23,82,26,3,0,166,23,82,26,3,0,170,23,82,26,3,0,174,23,82,26,3,0,178,23,82,26,3,0,110,4,82,26,3,0,214,3,82,26,3,0,182,5,82,26,24,0,182,23,82,26,3,0,186,23,82,26,3,0,114,4,192,26,6,0,190,23,64,29,15,0,198,23,92,26,33,0,202,23,92,26,33,0,186,5,82,26,87,0,95,6,162,26,6,0,206,23,82,26,3,0,210,23,82,26,222,0,214,23,82,26,72,0,118,4,82,26,53,1,74,6,82,26,3,0,55,4,97,26,176,1,55,4,87,26,27,0,218,23,82,26,3,0,226,23,82,26,3,0,78,6,82,26,3,0,19,4,112,26,69,0,234,23,92,26,33,0,238,23,92,26,33,0,122,4,92,26,33,0,224,26,102,26,78,0,2,24,82,26,3,0,82,6,102,26,189,0,130,4,82,26,3,0,6,24,82,26,3,0,86,6,82,26,3,0,10,24,82,26,39,0,207,3,82,26,247,2,90,6,82,26,244,2,134,4,82,26,174,0,14,24,92,26,33,0,203,1,82,26,24,0,18,24,82,26,3,0,26,24,82,26,3,0,30,24,82,26,174,0,14,4,82,26,141,0,138,4,82,26,3,0,84,26,82,26,57,0,42,24,82,26,3,0,128,27,82,26,250,2,46,24,82,26,3,0,50,24,82,26,35,1,54,24,82,26,74,3,58,24,82,26,3,0,62,24,82,26,44,1,66,24,82,26,3,0,74,24,82,26,3,0,78,24,82,26,3,0,143,4,82,26,42,0,82,24,82,26,42,0,86,24,82,26,231,0,90,24,87,26,27,0,99,6,82,26,57,0,158,3,152,26,132,0,190,5,92,26,33,0,94,24,82,26,24,0,98,24,182,26,255,0,130,3,82,26,3,0,103,6,97,26,12,0,102,24,82,26,3,0,94,6,82,26,3,0,106,24,82,26,72,0,114,24,82,26,3,0,98,6,112,26,69,0,102,6,82,26,174,0,118,24,82,26,3,0,122,24,82,26,3,0,126,24,82,26,35,1,130,24,82,26,3,0,134,24,82,26,0,3,138,24,82,26,3,0,142,24,82,26,3,0,150,24,82,26,141,0,154,24,74,29,15,0,158,24,126,27,6,0,219,5,82,26,41,1,162,24,82,26,3,0,170,24,97,26,12,0,174,24,82,26,102,0,178,24,82,26,3,0,182,24,136,27,12,0,186,24,97,26,12,0,231,3,87,26,15,0,231,3,97,26,20,1,231,3,97,26,138,0,106,6,99,29,225,0,211,3,97,26,147,0,110,6,82,26,99,0,194,24,82,26,171,0,71,3,82,26,39,0,71,3,82,26,243,0,59,3,82,26,105,0,131,3,82,26,90,0,71,3,82,26,57,0,59,3,82,26,22,2,71,3,82,26,44,1,71,3,82,26,116,1,151,3,82,26,159,0,67,3,87,26,219,0,71,3,82,26,60,0,59,3,82,26,178,4,254,3,82,26,2,1,67,3,87,26,66,0,67,3,87,26,237,0,103,4,82,26,221,1,67,3,87,26,224,1,123,3,87,26,114,0,134,26,82,26,171,0,143,26,82,26,240,0,59,3,82,26,230,1,175,4,82,26,233,1,95,3,82,26,71,1,115,3,82,26,74,1,200,1,82,26,236,1,115,3,82,26,246,0,55,3,82,26,177,0,67,3,87,26,239,1,55,3,82,26,249,0,55,3,82,26,245,1,99,3,82,26,83,1,59,3,82,26,252,0,254,3,82,26,248,1,143,26,82,26,254,1,55,3,82,26,86,1,55,3,82,26,7,2,95,3,82,26,150,0,55,3,82,26,123,0,59,3,82,26,89,1,55,3,82,26,21,0,59,3,82,26,92,1,143,26,82,26,10,2,59,3,82,26,13,2,134,26,82,26,95,1,219,3,152,26,180,0,35,4,82,26,31,2,59,3,82,26,34,2,67,3,87,26,183,0,59,3,82,26,40,2,59,3,82,26,104,1,67,3,87,26,43,2,224,26,102,26,189,0,71,3,82,26,11,1,95,3,82,26,49,2,55,3,82,26,110,1,55,3,82,26,5,1,55,3,82,26,129,0,55,3,82,26,67,2,59,3,82,26,8,1,143,26,82,26,70,2,59,3,82,26,113,1,134,26,82,26,119,1,143,26,82,26,73,2,59,3,82,26,76,2,59,3,82,26,88,2,67,3,87,26,135,0,67,3,87,26,128,1,131,3,82,26,54,0,67,3,87,26,204,0,171,3,242,26,109,2,67,3,87,26,112,2,214,26,97,26,20,1,67,3,87,26,23,1,95,3,82,26,115,2,204,26,82,26,121,2,55,3,82,26,137,1,67,3,87,26,124,2,67,3,87,26,102,0,55,3,82,26,127,2,163,3,82,26,29,1,55,3,82,26,133,2,55,3,82,26,145,2,67,3,87,26,149,1,134,26,82,26,96,0,99,4,82,26,153,0,55,3,82,26,151,2,119,3,82,26,141,0,59,3,82,26,157,2,67,3,87,26,175,2,59,3,82,26,38,1,59,3,82,26,155,1,55,3,82,26,41,1,155,3,87,26,27,0,55,3,82,26,181,2,59,3,82,26,184,2,67,3,87,26,187,2,134,26,82,26,158,1,67,3,87,26,202,2,71,3,82,26,28,2,55,3,82,26,161,1,55,3,82,26,167,1,183,3,82,26,217,2,223,3,82,26,220,2,55,3,82,26,111,0,115,3,82,26,50,1,134,26,82,26,226,2,59,3,82,26,232,2,67,3,87,26,225,0,55,3,82,26,238,2,55,3,82,26,241,2,55,3,82,26,156,0,134,26,82,26,53,1,67,3,87,26,228,0,131,3,82,26,72,0,59,3,82,26,6,3,223,3,82,26,179,1,48,3,82,26,162,0,59,3,82,26,12,3,55,3,82,26,56,1,87,3,82,26,59,1,55,3,82,26,62,1,146,5,87,26,84,0,155,3,87,26,60,0,99,3,87,26,9,0,155,3,87,26,6,0,155,3,87,26,32,1,119,3,87,26,39,0,123,3,87,26,176,1,107,3,87,26,42,0,194,4,156,27,9,0,198,4,171,27,9,0,103,3,176,27,6,0,55,3,6,27,81,0,214,4,191,27,9,0,78,3,196,27,24,0,158,4,206,27,42,0,162,6,216,27,159,0,143,26,221,27,180,0,143,3,97,26,168,0,83,3,97,26,77,1,143,3,97,26,132,0,211,3,97,26,29,1,111,4,97,26,47,1,211,3,97,26,170,1,38,5,97,26,42,0,83,3,97,26,59,1,235,3,92,26,255,0,18,5,92,26,195,0,134,3,92,26,32,1,39,4,226,27,152,1,138,3,231,27,6,0,55,3,207,26,81,0,87,3,241,27,168,0,158,26,246,27,30,0,146,6,251,27,6,0,103,3,10,28,6,0,171,3,25,28,17,1,63,3,30,28,15,0,26,5,35,28,24,0,6,4,107,26,18,0,91,3,137,26,108,0,91,3,137,26,147,0,91,3,137,26,36,0,227,3,40,28,201,0,22,5,50,28,207,0,174,26,106,27,125,1,171,3,31,27,17,1,191,3,55,28,9,0,227,3,237,26,201,0,70,26,80,28,15,0,134,3,187,26,6,0,71,3,82,26,78,0,207,3,82,26,114,0,79,3,82,26,68,1,187,3,82,26,15,0,143,4,82,26,180,0,55,3,82,26,183,0,79,3,82,26,126,0,207,3,82,26,30,0,55,3,82,26,204,0,55,3,82,26,102,0,87,3,82,26,143,1,134,26,82,26,146,1,55,3,82,26,149,1,55,3,82,26,225,0,55,3,82,26,228,0,209,26,82,26,147,0,146,25,110,28,42,0,150,25,115,28,42,0,189,26,120,28,6,0,102,5,125,28,9,0,166,3,135,28,15,0,215,3,157,26,15,0,106,5,145,28,222,0,202,5,150,28,66,0,202,5,155,28,66,0,149,26,165,28,6,0,110,5,170,28,6,0,154,5,111,27,27,0,114,5,147,26,69,0,168,26,56,27,6,0,103,3,175,28,6,0,170,6,180,28,219,0,126,5,190,28,33,0,58,26,172,26,15,0,83,4,66,27,173,1,203,3,230,28,12,0,62,3,71,27,15,0,174,25,222,26,30,0,142,5,255,28,9,0,102,3,76,27,237,0,103,3,24,29,6,0,103,3,86,27,6,0,162,5,39,29,159,0,219,26,142,26,9,0,170,5,121,27,117,0,182,5,54,29,24,0,138,3,59,29,6,0,54,26,177,26,102,0,238,3,79,29,24,0,246,3,112,26,14,1,246,3,112,26,207,0,98,5,89,29,6,0,238,24,104,29,26,1,87,3,109,29,168,0,174,3,114,29,6,0,222,4,134,29,138,0,168,26,117,26,6,0,168,26,92,26,33,0,206,24,117,26,6,0,198,5,82,26,3,0,210,24,82,26,3,0,214,24,82,26,3,0,114,6,82,26,3,0,218,24,82,26,3,0,142,4,82,26,3,0,222,24,82,26,3,0,226,24,82,26,3,0,151,3,87,26,114,0,151,3,97,26,15,0,234,24,82,26,3,0,242,24,82,26,3,0,45,3,82,26,57,0,246,24,82,26,51,0,250,24,82,26,12,0,254,24,82,26,235,2,2,25,82,26,3,0,6,25,82,26,246,0,10,25,82,26,48,0,14,25,82,26,96,0,39,6,82,26,74,3,18,25,82,26,12,0,22,25,82,26,107,1,26,25,82,26,45,0,30,25,82,26,3,0,151,6,82,26,246,0,118,6,82,26,150,0,34,25,82,26,3,0,38,25,102,26,78,0,122,6,82,26,3,0,66,3,82,26,24,0,46,25,82,26,243,0,50,25,162,26,6,0,126,6,92,26,6,0,54,25,82,26,3,0,58,25,82,26,3,0,66,25,82,26,3,0,74,25,82,26,3,0,78,25,82,26,3,0,146,4,82,26,3,0,82,25,82,26,3,0,226,3,82,26,3,0,134,6,82,26,3,0,86,25,82,26,56,1,138,6,82,26,3,0,90,25,82,26,3,0,94,25,87,26,204,0,98,25,82,26,3,0,47,6,82,26,111,0,106,25,82,26,3,0,110,25,82,26,3,0,114,25,82,26,3,0,154,4,82,26,3,0,118,25,92,26,6,0,122,25,127,26,15,0,126,25,82,26,3,0,150,6,82,26,3,0,130,25,82,26,120,0,154,6,82,26,3,0,58,3,82,26,3,0,215,5,82,26,57,0,166,6,82,26,3,0,154,25,227,26,126,0,174,6,92,26,6,0,162,25,82,26,72,0,166,25,82,26,3,0,178,25,82,26,3,0,182,6,82,26,3,0,190,25,82,26,3,0,82,3,92,26,33,0,194,25,82,26,3,0,198,25,82,26,96,0,202,25,82,26,99,0,190,6,82,26,3,0,206,25,82,26,3,0,194,6,82,26,21,0,162,4,82,26,3,0,106,3,82,26,3,0,198,6,82,26,3,0,210,25,82,26,21,0,218,25,82,26,3,0,226,25,82,26,3,0,230,25,82,26,3,0,234,25,82,26,3,0,170,3,82,26,3,0,242,25,82,26,3,0,202,6,82,26,3,0,246,25,82,26,3,0,206,6,82,26,3,0,118,27,82,26,39,0,2,26,82,26,3,0,6,26,82,26,3,0,10,26,82,26,3,0,98,26,82,26,120,0,222,6,82,26,3,0,14,26,82,26,105,0,6,4,107,26,122,1,6,4,127,26,15,0,18,26,82,26,3,0,22,26,82,26,3,0,30,26,82,26,3,0,34,26,82,26,66,0,46,26,87,26,204,0,50,26,82,26,144,0,226,6,82,26,3,0,74,26,82,26,156,0,166,4,82,26,87,0,234,3,82,26,3,0,51,3,82,26,57,0,76,0,254,6,230,6,2,7,12,0,6,7,98,1,10,7,78,0,14,7,48,0,18,7,2,1,238,6,99,0,22,7,66,0,26,7,97,2,242,6,237,0,246,6,216,0,227,1,2,1,251,1,84,0,16,2,216,0,19,2,131,1,25,2,48,0,37,2,249,0,55,2,240,0,58,2,81,0,85,2,177,0,103,2,234,0,142,2,234,0,154,2,182,1,160,2,240,0,166,2,219,0,178,2,99,0,190,2,234,0,199,2,38,1,205,2,46,2,208,2,165,0,229,2,12,0,253,2,53,1,3,3,60,0,9,3,162,0,15,3,234,0,21,3,237,0,24,3,216,0,27,3,90,0,18,0,71,3,82,26,36,0,71,3,82,26,60,0,59,3,82,26,75,0,59,3,82,26,178,4,134,26,82,26,120,0,134,26,82,26,158,1,16,0,1,0,248,6,76,3,240,6,236,6,232,6,149,29,244,6,158,29,209,1,218,1,206,1,215,1,250,6,212,1,144,29,170,170,170,170,170,170,170,170,170,170,8,39,0,0,0,26,109,204,72,116,196,252,119,194,103,119,162,183,120,164,82,121,164,194,122,15,109,125,122,92,122,48,225,173,173,232,46,245,175,81,16,225,165,60,2,42,60,66,204,101,72,17,97,110,1,226,165,0,244,163,251,11,77,37,84,14,84,204,18,85,42,86,16,206,163,254,16,211,163,253,77,216,30,213,80,42,83,16,210,163,249,2,193,163,248,198,163,246,200,163,247,71,213,33,71,50,72,216,30,183,73,16,196,163,244,1,194,163,252,198,163,242,109,50,110,54,115,58,121,16,226,173,173,16,233,175,79,16,229,175,80,16,237,34,1,42,169,21,67,16,195,169,22,104,23,104,50,105,54,107,58,108,16,237,175,78,16,248,173,203,16,225,175,77,16,244,173,168,97,50,100,54,101,58,103,16,232,173,217,16,231,175,74,16,234,175,75,16,225,175,76,0,18,109,70,116,27,116,52,117,56,119,66,225,173,254,239,175,21,16,237,175,26,1,245,175,27,246,175,28,16,225,175,29,109,60,110,64,111,80,114,90,115,1,231,173,153,235,175,25,16,239,175,17,2,227,175,18,233,175,19,245,175,20,1,226,175,22,243,175,23,16,243,175,24,103,38,103,54,104,58,105,62,106,78,108,16,243,175,16,16,233,175,9,16,231,175,10,2,226,175,11,245,175,12,246,175,13,1,225,175,14,233,175,15,97,56,98,84,99,100,101,1,236,165,35,242,175,8,4,229,173,255,234,175,0,236,175,1,238,175,2,242,175,3,2,240,175,4,241,175,5,242,175,6,16,233,175,7,12,110,61,114,33,114,46,115,50,119,78,232,175,33,16,226,175,39,4,225,173,209,233,175,40,236,165,50,237,175,41,242,175,42,16,229,175,43,110,52,111,62,112,1,229,167,146,242,173,207,1,225,173,201,242,175,36,1,231,175,37,238,175,38,101,29,101,58,108,62,109,2,230,175,35,238,173,190,242,173,193,16,243,175,32,2,225,175,34,227,173,186,228,173,187,97,52,98,56,99,1,239,173,135,242,173,134,16,246,175,30,16,233,175,31,13,109,73,115,48,115,48,117,52,233,167,55,239,175,62,16,243,175,67,4,225,175,68,229,50,234,175,71,244,175,72,247,175,73,1,42,46,72,18,97,110,243,175,70,1,42,175,69,67,16,206,175,70,109,58,111,62,114,2,226,175,64,229,175,65,236,175,66,16,236,175,61,16,238,175,63,101,32,101,62,103,66,107,76,108,2,229,175,58,231,175,59,236,175,60,16,242,175,54,1,242,175,55,247,175,56,16,239,175,57,97,46,98,96,100,16,228,167,55,7,244,12,244,175,47,246,175,48,249,175,49,250,175,50,237,167,188,239,175,44,240,175,45,243,175,46,2,225,175,51,226,175,52,249,175,53,116,162,82,117,164,217,118,10,111,31,229,9,229,173,241,233,173,115,239,173,249,111,52,114,56,117,1,238,173,252,244,173,253,16,244,173,250,16,239,173,251,97,60,101,76,105,86,108,96,109,1,230,173,247,247,173,248,2,231,173,239,233,173,222,238,173,240,1,227,173,242,240,173,243,1,227,173,244,246,173,245,16,243,173,246,0,38,117,124,233,31,242,14,242,171,214,243,171,218,244,171,224,247,105,249,171,241,233,171,186,235,171,193,236,171,197,238,171,203,239,171,205,122,36,122,54,225,171,153,229,171,171,231,46,232,171,182,16,237,171,244,1,42,46,65,18,114,97,226,171,178,1,42,171,177,80,16,203,171,178,117,60,118,82,119,98,120,108,121,1,225,171,242,246,171,243,3,232,171,231,236,171,232,237,171,233,241,171,234,2,228,167,191,236,171,235,245,171,236,1,232,171,237,241,171,238,1,231,171,239,239,171,240,107,128,112,73,112,94,113,110,114,114,115,130,116,6,241,12,241,171,201,242,171,228,243,171,229,244,171,230,228,171,225,229,171,226,234,171,227,2,233,171,210,237,171,211,250,171,212,16,239,171,213,2,245,171,215,246,171,216,247,171,217,4,228,171,219,230,171,220,231,171,221,234,171,222,247,171,223,107,72,108,88,109,104,110,114,111,3,230,171,206,231,171,207,235,171,208,241,171,209,2,236,171,194,242,171,195,244,171,196,2,230,171,198,248,171,199,249,171,200,1,232,171,201,249,171,202,16,232,171,204,101,70,101,94,102,116,103,120,104,136,105,6,235,12,235,171,189,237,171,190,239,171,191,246,171,192,226,163,180,230,171,187,231,171,188,3,228,171,172,237,171,173,239,171,174,244,171,175,16,233,171,176,2,227,171,179,239,171,180,245,171,181,2,236,171,183,241,171,184,242,171,185,97,68,98,90,99,134,100,3,228,171,167,231,171,168,232,171,169,245,171,170,3,234,171,154,236,171,155,238,171,156,241,171,157,6,231,12,231,171,161,239,171,162,247,171,163,250,171,164,227,171,158,228,171,159,230,171,160,1,233,171,165,249,171,166,15,115,98,231,44,231,66,235,171,252,242,173,91,250,1,42,134,65,18,114,97,226,173,237,1,42,46,67,18,121,114,236,171,249,2,42,171,248,75,42,77,16,206,171,250,16,218,171,249,115,96,116,100,118,110,122,16,238,1,42,46,65,18,114,97,226,173,237,2,42,173,7,65,42,67,16,206,173,238,16,198,173,237,16,225,173,233,1,232,165,77,242,173,234,1,232,173,235,236,173,236,109,50,109,62,110,66,111,112,114,2,233,173,230,244,173,231,247,173,232,16,226,171,254,1,242,38,248,173,228,1,42,46,68,18,101,118,225,173,227,1,42,173,226,78,16,208,173,227,16,235,173,229,98,50,100,54,103,64,108,16,233,171,253,16,245,171,245,1,233,171,246,237,171,247,16,225,171,251,112,195,172,112,166,6,113,166,238,114,166,251,115,0,40,120,140,236,57,242,41,245,9,245,171,136,246,171,142,247,171,143,242,44,243,171,129,244,171,133,34,3,42,171,58,77,164,204,82,42,84,16,210,171,62,1,207,171,61,213,171,59,236,171,97,237,171,102,238,171,110,239,171,117,241,111,228,49,228,56,229,171,73,231,171,78,233,171,87,235,171,93,3,42,54,68,68,75,76,83,18,105,110,228,171,70,1,42,171,67,73,16,206,171,68,18,101,118,225,171,68,18,104,111,234,171,69,120,52,121,62,122,72,225,171,46,227,171,57,1,238,171,149,247,171,150,1,236,171,151,242,165,16,16,236,171,152,108,181,114,79,114,88,115,116,116,132,117,142,119,5,232,9,232,171,143,240,171,147,246,171,148,226,171,144,227,171,145,231,171,146,4,226,171,126,227,171,57,238,171,127,242,171,128,248,165,246,2,228,171,130,231,171,131,249,171,132,1,235,171,134,241,171,135,4,225,171,137,229,171,138,235,171,139,242,171,140,243,171,141,108,74,109,102,110,146,111,162,75,112,3,228,171,123,236,171,124,243,171,125,249,167,121,4,228,171,98,233,171,99,236,171,100,239,171,93,249,171,101,6,238,12,238,171,106,240,171,107,241,171,108,243,171,109,225,171,103,228,171,104,234,171,105,5,240,9,240,171,114,248,171,115,249,171,116,226,171,111,227,171,112,235,171,113,4,231,171,118,235,171,119,241,171,120,245,171,121,249,171,122,103,62,103,66,104,88,105,110,106,132,107,2,227,171,94,242,171,95,243,171,96,3,225,171,79,243,171,80,247,171,81,250,171,82,3,233,171,83,235,171,84,238,171,85,245,171,86,3,228,171,88,231,171,89,236,171,90,237,171,91,16,242,171,92,97,74,98,118,99,134,100,162,104,101,3,230,171,74,232,171,75,233,171,76,243,171,77,6,243,12,243,171,50,244,171,51,246,171,52,250,171,53,230,171,47,232,171,48,241,171,49,2,225,171,54,229,171,55,240,171,56,5,238,9,238,171,65,239,171,66,242,167,4,227,44,235,171,63,236,171,64,34,5,82,17,82,46,83,50,84,16,210,171,62,16,207,171,61,16,213,171,59,42,171,58,49,42,77,16,197,171,60,17,55,178,171,59,1,227,171,71,232,171,72,0,23,111,90,117,43,236,9,236,169,248,243,169,232,244,171,6,117,76,119,80,225,1,42,46,65,18,114,97,226,169,224,1,42,169,223,80,16,203,169,224,16,245,171,8,16,225,171,9,114,23,114,46,115,62,116,16,240,171,7,2,225,171,2,228,171,3,231,171,4,16,243,171,5,111,46,112,50,113,16,237,171,1,16,238,169,254,1,225,169,255,239,171,0,104,60,108,29,108,64,109,74,110,3,226,167,210,231,169,251,238,169,252,244,169,253,1,225,169,249,244,169,53,16,243,169,250,104,52,105,62,107,1,225,169,246,239,169,247,1,236,169,241,238,169,242,2,236,169,243,240,169,244,243,169,245,100,32,100,46,101,56,102,16,236,169,240,1,227,169,235,244,169,236,4,228,169,237,239,169,238,242,165,116,243,165,116,248,169,239,97,52,98,100,99,1,228,169,233,237,169,234,4,231,169,225,236,50,237,169,228,240,169,229,245,169,230,1,42,169,226,80,18,104,108,240,169,227,1,233,169,231,245,169,232,1,117,38,245,171,10,2,227,171,11,231,171,12,250,171,10,0,20,111,69,121,23,239,9,239,169,81,245,171,39,247,171,42,121,44,237,171,26,238,171,31,16,245,171,45,111,60,114,76,116,80,117,84,119,1,235,171,43,239,171,44,2,226,171,34,230,171,35,239,171,36,16,239,171,37,16,237,171,38,2,229,171,40,231,171,41,237,169,81,105,52,105,60,106,86,107,90,109,94,110,1,225,171,32,231,171,33,1,225,171,21,230,34,1,42,171,22,78,16,204,171,23,16,243,171,24,16,244,171,25,3,230,171,27,239,171,28,244,171,29,245,171,30,97,54,99,70,101,74,103,90,104,16,231,171,20,2,233,171,13,234,169,102,239,171,14,16,230,171,15,2,234,171,16,236,171,17,243,171,18,16,238,171,19,109,162,116,110,166,81,111,14,116,46,234,12,234,169,205,237,165,165,242,169,214,243,169,217,116,62,117,72,122,76,227,34,1,42,169,202,69,16,211,169,203,1,225,169,219,235,169,220,16,233,169,221,16,237,169,222,110,35,110,50,112,66,114,70,115,16,225,169,218,2,231,169,210,238,169,211,243,169,212,16,237,169,213,2,239,169,215,245,169,216,249,169,214,103,58,106,62,107,2,225,169,207,242,169,208,246,169,209,16,227,169,204,1,231,169,205,243,169,206,0,34,116,159,233,38,239,15,239,169,81,242,169,92,243,164,136,244,169,96,249,163,209,233,169,18,235,169,12,236,169,70,238,1,42,186,211,77,18,111,110,231,165,67,120,61,120,52,121,62,122,100,231,169,53,232,169,59,1,227,169,111,237,169,112,5,247,9,247,169,116,248,169,117,250,169,118,235,169,113,237,169,114,246,169,115,5,240,9,240,169,122,247,169,123,250,169,124,235,169,119,237,169,120,238,169,121,116,68,117,90,118,112,119,3,235,169,108,242,165,58,246,169,109,247,169,110,3,227,169,97,230,169,98,233,169,99,242,169,100,3,225,169,101,240,169,102,242,169,103,243,169,104,2,225,169,105,238,169,106,249,169,107,105,123,110,68,110,66,111,94,112,122,113,144,114,2,228,169,93,234,169,94,239,169,95,4,225,169,77,230,169,78,233,169,79,235,182,41,247,169,80,4,225,169,82,229,169,83,232,169,84,243,169,85,248,169,86,3,240,169,87,243,169,88,244,169,89,248,169,90,16,236,169,91,105,62,107,84,108,106,109,2,239,169,74,245,169,75,248,169,76,3,227,169,62,230,169,63,238,169,64,247,169,65,3,233,169,66,236,169,67,240,169,68,247,169,69,2,229,169,71,240,169,72,243,169,73,101,73,101,62,102,106,103,134,104,2,233,169,60,236,169,61,242,165,2,6,238,12,238,169,44,242,169,45,244,169,46,245,169,47,228,169,41,229,169,42,235,169,43,4,225,169,48,229,169,49,238,169,50,239,169,51,241,169,52,4,232,169,54,236,169,55,239,169,56,240,169,57,249,169,58,97,94,98,162,80,99,162,93,100,6,232,12,232,169,37,234,169,38,242,169,39,248,169,40,225,169,34,229,169,35,230,169,36,11,238,29,247,18,247,169,20,249,38,250,169,23,34,1,42,169,21,67,16,195,169,22,238,180,74,239,169,18,243,169,19,231,9,231,169,15,233,169,16,235,169,17,227,169,12,228,169,13,230,169,14,4,232,169,24,239,169,25,241,169,26,245,169,27,247,169,28,4,233,169,29,240,169,30,241,169,31,242,169,32,245,169,33,0,33,116,95,228,29,238,15,238,169,167,239,169,173,242,169,180,246,169,194,249,169,198,228,169,140,229,169,143,231,169,148,236,165,79,121,21,121,48,122,58,225,169,125,226,169,133,1,237,169,199,238,169,200,16,233,169,201,116,56,117,66,119,94,120,1,241,169,196,242,169,197,1,237,169,187,242,169,188,4,233,169,189,240,169,190,243,169,191,246,169,192,248,169,193,16,226,169,195,106,96,111,53,111,78,112,106,113,110,114,114,115,4,235,169,182,238,169,183,239,169,184,243,169,185,244,169,186,4,228,169,174,229,169,175,238,169,176,240,169,177,245,169,178,16,233,169,143,16,239,169,179,16,226,169,181,106,74,107,78,109,88,110,4,230,169,168,232,169,169,235,169,170,237,169,171,240,169,172,16,239,169,162,1,231,169,163,239,169,164,1,231,169,165,250,169,166,102,55,102,90,103,94,104,110,105,6,238,12,238,169,158,245,169,159,249,169,160,250,169,161,230,169,155,233,169,156,234,169,157,16,242,169,147,2,225,169,149,226,169,150,236,169,151,2,226,169,152,229,169,153,247,169,154,97,62,99,106,100,144,101,2,226,169,144,247,169,145,248,169,146,6,238,12,238,169,129,240,169,130,241,169,131,243,169,132,227,169,126,230,169,127,235,169,128,5,232,9,232,169,137,239,169,138,245,169,139,225,169,134,229,169,135,230,169,136,1,227,169,141,243,169,142,102,199,105,105,196,159,105,164,27,106,164,198,107,166,19,108,0,27,116,74,231,23,239,12,239,167,250,244,169,2,245,169,4,246,169,8,231,167,227,233,167,229,238,167,247,119,21,119,48,122,52,225,167,206,226,167,213,16,236,169,9,1,232,169,10,250,169,11,116,46,117,50,118,16,243,169,8,16,231,169,3,3,225,169,5,239,169,6,249,163,216,250,169,7,106,74,109,49,109,50,110,66,111,76,114,16,227,169,1,2,238,167,244,239,167,245,240,167,246,1,243,167,248,245,167,249,5,242,9,242,167,254,243,167,255,250,169,0,234,167,251,235,167,252,236,167,253,106,52,107,56,108,1,229,167,242,238,167,243,16,240,167,239,1,233,167,240,244,167,241,100,77,100,118,101,122,103,162,66,105,7,232,12,232,167,235,234,167,236,236,167,237,243,167,238,225,167,230,228,167,231,230,38,231,167,234,1,42,167,232,76,18,105,109,226,167,233,16,226,167,219,6,240,12,240,167,223,241,167,224,245,167,225,250,167,226,228,167,220,229,167,221,237,167,222,16,231,167,228,97,52,98,90,99,1,237,167,217,240,167,218,5,232,9,232,167,210,234,167,211,243,167,212,226,167,207,228,167,208,231,167,209,2,229,167,214,245,167,215,247,167,216,0,25,119,57,235,23,243,12,243,167,18,244,167,41,245,167,30,247,167,42,235,165,107,238,167,36,239,167,38,228,9,228,167,20,231,167,25,233,167,28,119,42,122,52,225,167,12,1,237,167,43,243,167,44,1,232,167,45,233,167,46,106,51,109,23,109,50,110,54,111,58,114,16,233,167,40,16,239,167,35,16,232,167,37,16,245,167,39,106,46,107,50,108,16,239,167,34,16,234,167,29,3,229,167,30,235,167,31,247,167,32,248,167,33,100,26,100,52,102,68,103,1,226,167,26,229,167,27,2,228,167,21,233,167,22,245,167,23,16,229,167,24,97,58,98,68,99,2,225,167,17,229,167,18,232,167,19,1,238,167,13,242,167,14,2,225,163,169,226,167,15,249,167,16,11,114,26,233,9,233,167,55,246,167,61,247,167,62,114,42,117,46,225,167,47,16,225,167,59,16,244,167,60,103,23,103,52,105,62,109,1,227,167,57,236,167,58,1,235,167,50,239,167,54,16,226,167,56,97,46,98,62,101,16,238,167,53,2,226,167,48,237,167,49,242,167,50,1,239,167,51,245,167,52,0,40,117,192,240,235,116,242,63,246,40,246,167,150,247,167,184,249,2,42,50,65,76,76,18,97,116,238,167,199,2,42,167,197,67,42,84,16,210,167,199,16,206,167,198,18,114,97,226,167,198,242,167,137,243,167,162,245,2,42,164,103,65,164,109,89,18,101,122,233,167,132,235,56,236,167,120,237,167,125,238,167,136,239,167,141,1,42,46,65,18,114,97,226,167,115,4,42,167,113,65,50,67,54,73,58,77,16,206,167,117,16,198,167,114,16,206,167,115,16,210,167,116,122,27,122,56,225,165,180,231,167,92,233,167,104,234,167,108,3,232,167,202,234,167,203,242,167,204,244,167,205,117,60,118,110,119,126,120,148,121,1,229,167,200,248,167,201,7,237,12,237,167,177,238,167,178,240,167,179,243,167,180,226,167,173,228,167,174,229,167,175,234,167,176,2,231,167,181,242,167,182,248,167,183,3,234,167,185,235,167,186,239,167,187,241,167,188,7,237,12,237,167,193,240,167,194,247,167,195,250,167,196,225,167,189,227,167,190,229,167,191,236,167,192,107,192,213,112,99,112,74,113,112,114,134,115,162,69,116,3,226,167,169,237,167,170,239,167,171,242,167,172,5,242,9,242,167,149,246,167,150,248,167,151,229,167,146,230,167,147,239,167,148,3,226,167,152,230,167,153,243,167,154,249,167,155,5,236,9,236,167,159,243,167,160,245,167,161,227,167,156,233,167,157,234,167,158,5,232,9,232,167,166,234,167,167,242,167,168,226,167,163,228,167,164,230,167,165,107,80,108,90,109,112,110,162,87,111,4,233,167,142,235,167,139,236,167,143,243,167,144,250,167,145,1,227,167,118,234,167,119,3,238,167,121,241,167,122,244,167,123,248,167,124,6,242,38,242,50,243,167,133,245,167,134,247,167,135,2,42,50,65,64,89,18,101,122,233,167,132,1,42,167,129,76,16,194,167,130,18,114,97,226,167,131,226,167,126,232,167,127,239,167,128,4,227,167,137,230,167,138,231,167,92,238,167,139,240,167,140,102,82,102,72,103,88,104,104,105,160,106,3,228,167,109,231,167,110,243,167,111,249,167,112,2,239,167,89,242,167,90,249,167,91,2,229,167,93,230,167,94,240,167,95,8,241,15,241,167,99,243,167,100,244,167,101,247,167,102,250,167,103,225,167,96,226,167,97,235,172,149,238,167,98,2,234,167,105,245,167,106,247,167,107,97,70,98,126,99,162,65,100,162,75,101,2,225,167,86,238,167,87,250,167,88,8,233,15,233,167,67,234,167,68,237,167,69,239,167,70,247,167,71,225,167,63,226,167,64,227,167,65,228,167,66,5,241,9,241,167,75,248,167,76,249,167,77,228,167,72,237,167,73,240,167,74,3,231,167,78,235,167,79,236,167,80,244,167,81,3,229,167,82,232,167,83,236,167,84,244,167,85,102,162,194,103,164,119,104,0,19,117,70,242,15,242,167,4,244,167,7,245,167,8,249,163,67,250,167,11,117,52,225,62,229,165,237,233,98,239,167,0,1,233,167,9,242,167,10,34,3,42,165,227,55,46,67,52,83,16,196,165,228,17,51,182,165,228,16,205,165,229,1,42,165,239,76,18,97,116,238,165,240,108,56,108,60,109,70,110,80,111,108,115,1,226,167,5,238,167,6,1,225,165,247,245,165,248,1,228,165,249,244,165,250,4,228,165,251,229,165,252,234,165,253,238,165,254,239,165,255,2,227,167,1,234,167,2,244,167,3,97,88,98,116,100,120,104,124,105,5,232,9,232,165,244,236,165,245,237,165,246,225,165,241,230,165,242,231,165,243,4,231,165,230,235,165,231,237,165,232,247,165,233,250,165,234,16,226,165,235,16,249,165,236,16,249,165,238,0,17,117,83,233,15,233,165,126,234,165,130,239,165,133,242,165,139,249,165,154,117,66,118,148,225,165,116,230,1,42,165,122,65,18,100,108,237,165,123,9,232,15,232,165,148,241,165,149,242,165,150,246,165,151,249,165,152,226,165,144,227,50,228,165,145,229,165,146,230,165,147,1,42,165,122,65,18,100,108,237,165,123,16,242,165,153,109,47,109,78,111,82,112,98,113,102,114,4,227,165,140,229,165,139,240,165,141,242,165,142,243,165,143,16,240,165,132,2,228,165,134,238,165,135,242,165,136,16,229,165,137,16,243,165,138,97,50,102,86,105,96,108,16,242,165,131,5,233,8,233,165,120,238,165,121,244,105,225,165,117,226,165,118,231,165,119,1,233,165,124,237,165,125,2,225,165,127,236,165,128,244,165,129,0,26,110,159,121,29,236,12,236,165,192,238,165,196,245,165,212,246,165,220,121,44,225,165,155,228,165,173,1,225,165,166,233,165,226,115,58,115,62,117,66,118,116,119,2,227,165,223,233,165,224,244,165,225,16,247,165,211,7,242,12,242,165,216,247,165,217,248,165,218,250,165,219,226,165,213,227,165,214,228,165,215,231,165,196,2,230,165,221,242,165,183,243,165,222,110,90,111,106,114,4,226,165,169,227,50,229,165,94,244,165,209,247,165,210,1,42,165,207,76,18,105,110,226,165,208,2,228,165,197,231,165,198,239,165,199,7,238,12,238,165,199,242,165,204,243,165,205,244,165,206,228,165,200,230,165,201,233,165,202,237,165,203,103,60,106,35,106,56,107,72,108,82,109,1,237,165,194,246,165,195,2,235,165,187,238,165,188,245,165,189,1,238,165,190,240,165,191,16,235,165,193,103,52,104,62,105,1,236,165,185,237,165,186,1,238,165,183,239,165,106,16,243,165,184,100,40,100,46,101,62,102,16,235,165,182,2,229,165,174,238,165,175,242,165,176,5,239,9,239,165,180,242,165,48,250,165,181,226,165,177,234,165,178,236,165,179,97,46,98,108,99,16,242,165,172,9,237,15,237,165,161,238,165,162,247,165,163,249,165,164,250,165,165,225,165,156,230,165,157,231,165,158,232,165,159,234,165,160,5,239,9,239,165,169,249,165,170,250,165,171,225,165,166,230,165,167,237,165,168,99,194,244,99,162,163,100,164,250,101,0,18,119,51,238,25,238,56,239,165,103,243,165,105,244,165,92,245,163,103,1,42,165,99,83,18,104,97,247,165,100,119,52,120,56,122,60,229,165,87,236,165,94,16,239,165,113,16,244,165,114,16,225,165,115,109,70,109,72,110,122,114,132,115,136,116,3,242,165,109,244,165,110,245,165,111,248,165,112,2,225,165,95,233,165,96,235,1,42,46,78,18,107,111,239,165,98,1,42,165,97,71,16,206,165,98,1,238,165,101,241,165,102,16,233,165,104,2,231,165,106,235,165,107,245,165,108,98,62,102,66,103,70,107,2,225,165,91,235,165,92,249,165,93,16,245,165,86,16,233,165,88,1,236,165,89,249,165,90,0,27,114,87,232,33,243,22,243,165,28,245,44,246,165,34,249,165,35,1,42,165,32,71,18,108,97,231,165,33,232,163,238,239,165,19,242,165,22,119,18,119,48,122,52,225,163,228,229,163,234,16,228,165,22,16,229,165,28,114,46,115,74,116,16,228,165,31,4,231,165,23,232,165,24,235,165,25,236,165,26,243,165,27,1,226,165,29,247,165,30,105,85,108,51,108,50,109,66,111,114,112,16,243,165,21,2,225,165,14,227,165,15,228,165,16,2,229,165,17,231,165,18,238,2,42,162,99,66,162,174,72,17,97,110,1,226,165,0,244,163,251,16,240,165,20,105,64,106,68,107,3,226,165,10,236,165,11,239,165,12,249,165,13,16,227,165,6,2,225,165,7,237,165,8,246,165,9,101,143,101,162,128,102,162,129,103,162,130,104,5,239,9,239,165,3,240,165,4,242,165,5,233,44,235,165,1,237,165,2,2,42,60,66,162,89,72,17,97,110,1,226,165,0,244,163,251,11,77,45,84,23,84,46,85,56,86,16,196,163,254,1,200,163,250,215,163,251,1,203,163,252,211,163,253,77,180,193,80,42,83,16,210,163,249,2,198,163,246,200,163,247,218,163,248,71,14,71,48,72,180,165,73,16,196,163,244,16,198,163,242,42,163,239,65,42,66,16,206,163,241,16,213,163,240,18,111,112,239,163,255,16,226,163,235,16,225,163,236,16,231,163,237,97,52,98,62,99,1,232,163,232,240,163,233,1,228,163,229,238,163,230,16,234,163,231,0,23,114,111,121,28,229,8,229,165,48,246,165,80,250,69,121,42,122,52,225,165,36,1,239,165,83,245,165,84,16,231,165,85,117,29,117,46,118,74,119,16,247,165,82,4,225,165,75,227,165,76,228,165,77,231,165,78,244,165,79,16,225,165,81,114,64,115,116,116,3,237,165,71,240,165,72,243,165,73,249,165,74,2,232,44,233,165,68,243,165,69,1,42,46,77,18,111,110,231,165,67,1,42,165,66,67,16,206,165,67,16,226,165,70,104,45,109,23,109,170,208,110,60,111,3,226,165,63,233,165,55,240,165,64,247,165,65,16,234,165,38,104,46,105,50,106,16,229,165,61,16,228,165,58,1,225,165,59,241,165,60,100,40,100,86,101,90,103,6,236,12,236,165,54,239,165,55,242,165,56,250,165,57,225,165,51,232,165,52,233,165,53,16,238,165,47,1,228,165,49,238,165,50,97,46,98,90,99,16,227,165,46,6,232,12,232,165,40,235,165,41,242,165,42,246,165,43,228,165,37,230,165,38,231,165,39,1,228,165,44,241,165,45,42,166,0,97,190,213,98,0,35,115,165,229,29,237,15,237,163,171,238,163,176,239,163,180,242,163,189,243,163,194,229,163,125,231,163,138,232,163,142,233,163,148,119,65,119,50,120,60,121,76,122,114,225,163,99,1,228,163,213,242,163,214,2,232,163,215,235,163,216,242,163,202,5,243,9,243,163,220,246,163,221,248,163,222,229,163,217,238,163,218,242,163,219,4,225,163,223,229,163,224,230,163,225,232,163,226,247,163,227,115,50,116,72,117,88,118,16,226,163,212,3,234,163,195,241,163,196,243,163,197,244,163,198,2,239,163,199,244,163,200,246,163,201,9,237,15,237,163,207,239,163,208,242,163,209,243,163,210,245,163,211,225,163,202,227,163,203,228,163,204,231,163,205,235,163,206,106,134,110,59,110,72,111,88,112,104,113,108,114,3,225,163,190,232,163,191,248,163,192,250,163,193,2,231,163,177,237,163,178,240,163,179,2,234,163,181,237,163,182,238,163,183,16,249,163,184,3,227,163,185,233,163,186,240,163,187,246,163,188,106,68,107,118,108,146,109,3,232,163,172,235,163,173,241,163,174,245,163,175,7,239,12,239,163,159,242,163,160,244,163,161,250,163,162,232,163,155,233,163,156,234,163,157,238,163,158,4,227,163,163,237,163,164,241,163,165,245,163,166,246,163,167,2,225,163,168,231,163,169,244,163,170,101,106,101,98,102,148,103,162,68,104,162,75,105,6,237,12,237,163,151,238,163,152,239,163,153,241,163,154,226,163,149,231,163,150,235,163,118,7,244,12,244,163,130,247,163,131,248,163,132,250,163,133,230,163,126,232,163,127,234,163,128,237,163,129,3,228,163,134,241,163,135,244,163,136,249,163,137,2,227,163,139,238,163,140,248,163,141,5,236,9,236,163,146,239,163,142,249,163,147,226,163,143,231,163,144,233,163,145,97,50,98,100,99,144,100,16,228,163,124,7,242,12,242,163,104,243,163,105,246,163,106,248,163,107,236,163,100,238,163,101,240,163,102,241,163,103,6,228,12,228,163,111,234,163,112,240,163,113,242,163,114,225,163,108,226,163,109,227,163,110,9,237,15,237,163,119,238,163,120,239,163,121,241,163,122,245,163,123,227,163,100,230,163,115,232,163,116,233,163,117,236,163,118,0,24,77,194,138,84,192,225,87,54,87,54,88,78,89,100,90,18,97,110,226,173,225,1,97,44,99,17,104,239,169,172,17,114,225,173,224,1,112,42,115,17,117,248,107,17,101,239,169,238,1,101,44,105,17,105,233,167,28,17,122,233,167,132,84,68,85,162,158,86,1,97,44,105,17,116,232,173,223,17,105,233,173,222,7,104,78,104,54,105,134,110,162,66,111,17,116,239,171,240,16,97,1,225,88,233,4,42,171,182,67,50,75,54,76,58,84,16,200,171,182,16,206,167,218,16,200,173,219,16,193,173,220,1,42,165,80,77,16,214,165,80,1,98,42,114,16,232,173,221,16,244,1,42,163,180,66,16,212,69,17,115,225,169,186,97,52,101,128,102,134,103,17,108,231,173,218,5,109,17,109,46,110,50,118,16,244,163,170,16,236,171,153,16,231,171,239,103,52,107,56,108,1,229,171,167,245,167,97,16,226,173,215,16,242,173,216,17,108,245,171,171,17,110,231,173,217,18,103,97,242,171,251,80,192,196,80,162,114,82,162,169,83,6,105,67,105,66,111,106,117,144,121,1,108,42,114,16,227,165,16,16,239,173,214,1,100,62,110,1,228,171,70,232,1,42,171,87,76,16,203,171,87,16,228,173,211,2,103,46,114,56,121,16,239,165,18,1,228,171,118,239,173,212,16,225,171,126,17,110,228,173,213,97,62,103,94,104,1,97,42,114,16,228,173,210,16,247,165,100,2,109,46,114,50,117,16,242,171,53,16,242,171,107,16,226,173,209,17,110,247,163,76,4,97,56,101,76,104,82,108,120,114,17,116,233,173,207,1,108,42,117,16,227,165,31,16,237,163,65,17,114,237,173,205,2,97,46,108,50,110,16,248,169,242,16,231,173,206,1,233,169,226,240,169,227,17,114,228,165,249,2,106,48,111,54,117,17,110,242,169,176,17,110,231,173,208,17,104,231,171,20,77,138,78,162,171,79,4,103,56,108,62,114,68,115,88,117,17,103,242,169,221,17,97,237,171,79,17,99,235,171,51,1,107,42,121,16,225,169,214,16,232,169,220,1,103,42,109,16,225,173,204,16,229,169,218,7,114,46,114,90,116,96,117,102,121,17,109,242,3,42,163,209,73,46,77,50,84,16,200,173,198,16,206,167,101,16,205,163,209,17,111,239,169,95,17,101,233,173,196,17,108,244,173,197,97,66,101,116,108,154,111,1,100,42,110,16,231,165,67,16,233,173,195,3,104,50,107,54,110,58,114,16,227,173,191,16,234,173,188,16,225,173,189,1,228,169,118,233,173,190,2,100,52,110,56,114,1,227,173,193,239,173,194,16,230,165,62,16,228,173,192,17,121,237,169,70,4,97,56,98,88,101,92,107,98,115,17,104,245,173,203,2,103,46,110,50,114,16,226,173,201,16,237,173,199,16,228,173,200,17,97,244,161,17,119,225,173,202,17,111,239,165,98,71,196,17,74,195,53,74,166,192,75,166,217,76,3,97,70,101,166,156,105,166,158,121,1,99,42,100,16,233,173,187,16,233,173,186,2,110,166,121,111,166,122,116,16,238,0,26,75,193,57,84,91,87,20,87,172,115,88,172,119,89,48,90,1,193,173,3,215,171,110,16,212,173,119,84,64,85,130,86,3,193,173,114,197,173,116,206,173,115,213,163,148,11,206,20,214,9,214,171,235,215,171,216,218,171,143,206,173,184,207,171,205,210,171,214,203,197,215,203,171,194,204,173,110,205,171,193,4,193,173,185,199,173,112,211,165,99,217,173,113,218,173,7,78,130,78,138,80,162,74,82,162,109,83,12,206,23,212,12,212,173,104,213,167,159,214,173,105,217,173,183,206,173,102,207,171,117,210,173,103,202,9,202,173,100,203,171,93,205,173,101,195,173,99,197,171,142,201,171,97,6,199,12,199,171,255,201,173,86,204,165,79,207,169,133,193,173,83,195,173,84,197,173,85,10,204,20,212,9,212,173,95,215,169,230,217,165,196,204,169,248,205,173,92,210,173,93,193,173,88,197,173,89,198,173,90,199,171,210,200,165,128,3,197,173,98,207,169,81,213,167,159,215,171,42,75,158,76,162,67,77,0,16,205,29,212,15,212,169,96,213,169,49,216,173,1,217,169,21,218,173,82,205,167,65,207,173,181,209,173,80,210,173,182,198,12,198,173,79,199,169,53,203,173,180,204,163,171,193,173,179,195,173,77,196,173,78,197,171,60,1,197,173,66,205,173,178,4,201,173,72,211,173,73,212,169,2,213,173,74,214,169,8,67,192,194,70,100,70,86,71,102,72,162,77,73,5,210,9,210,173,177,211,167,18,212,167,41,195,173,63,196,167,20,197,173,51,2,201,165,126,207,165,133,210,165,139,12,206,23,211,12,211,173,58,212,173,59,213,173,6,215,173,60,206,173,55,208,173,56,209,173,57,198,8,198,173,54,200,105,204,167,120,193,173,53,194,173,9,197,173,176,4,205,173,61,206,173,62,210,167,4,212,167,7,213,167,8,67,82,68,162,66,69,5,211,9,211,165,105,212,173,170,218,173,52,193,173,47,195,173,48,197,165,92,15,207,26,214,12,214,173,42,215,173,11,217,173,174,218,165,28,207,173,39,208,173,40,210,173,41,213,173,4,201,198,143,201,173,36,204,173,37,205,173,38,206,173,173,5,203,9,203,165,36,207,173,45,218,173,175,197,165,48,199,173,97,202,173,44,52,94,52,174,138,65,120,66,11,206,20,210,9,210,171,6,213,167,65,214,173,32,206,173,29,207,173,30,209,173,31,201,9,201,171,31,202,173,27,204,173,28,193,163,194,197,173,24,198,173,25,12,210,23,213,12,213,173,0,215,173,22,216,173,23,218,163,95,210,173,19,211,173,20,212,173,21,205,9,205,173,172,207,173,17,209,173,18,196,173,14,198,173,171,204,111,42,165,99,49,44,50,17,51,176,173,170,17,55,178,167,159,16,225,169,174,16,239,1,42,167,250,76,16,193,167,250,17,112,227,167,223,2,109,46,110,50,115,16,245,167,238,16,226,167,233,1,225,167,207,226,165,208,1,97,58,112,17,97,238,1,42,167,47,74,16,208,167,47,1,109,42,118,16,225,173,166,16,239,173,165,5,110,30,110,48,111,54,116,17,104,233,173,169,17,100,225,167,136,17,114,229,1,42,167,141,75,1,208,173,68,210,167,141,97,48,104,80,105,17,116,243,173,168,2,108,46,110,50,119,16,233,167,71,16,233,165,93,16,225,173,167,2,97,46,109,50,111,16,234,171,69,16,242,171,2,16,242,1,42,167,125,75,16,200,167,125,71,52,72,162,92,73,18,116,97,236,165,110,4,101,70,108,90,111,96,114,122,117,1,106,42,114,16,245,169,223,16,242,165,212,17,111,242,1,42,165,180,71,16,197,165,180,17,97,231,165,33,1,110,42,116,16,232,165,206,1,231,173,153,237,165,106,1,97,80,101,16,235,3,42,165,94,67,46,71,50,84,16,210,163,141,16,217,173,43,16,210,165,94,16,238,173,154,5,108,24,108,48,109,54,117,17,110,231,173,164,17,117,247,165,248,16,110,1,231,173,163,240,165,253,97,48,101,156,105,17,114,225,173,162,16,110,5,239,42,239,173,157,243,88,244,4,42,163,251,67,50,72,54,77,58,84,16,215,163,251,16,193,173,158,16,203,163,243,16,207,163,245,1,42,163,239,67,16,206,163,239,226,165,0,231,173,155,233,173,156,17,98,242,3,42,165,237,73,52,83,56,85,1,193,173,160,211,173,161,16,204,165,237,16,197,173,159,67,193,20,67,112,68,162,205,69,2,103,64,108,70,116,17,104,233,1,42,119,69,1,210,173,50,212,119,17,121,240,165,90,1,98,42,121,16,237,173,152,16,225,173,151,4,97,162,104,104,162,119,111,162,134,112,162,136,121,17,114,236,10,77,51,84,20,84,46,85,56,88,16,203,173,144,1,202,171,177,210,173,143,16,193,171,252,77,46,82,62,83,16,203,173,142,2,196,173,140,203,169,12,206,165,66,2,207,173,141,211,171,58,213,171,39,42,171,39,65,56,66,60,71,76,75,1,199,167,197,218,173,70,16,204,173,137,2,193,173,138,199,163,138,217,163,125,1,197,45,210,173,139,2,107,46,110,50,114,16,233,173,134,16,237,163,233,16,243,167,30,2,97,46,101,50,114,16,243,173,135,16,237,165,8,16,242,165,5,17,112,244,165,20,1,109,42,114,16,244,165,207,16,238,1,42,173,136,67,16,217,173,136,3,101,52,105,134,111,140,117,17,112,236,173,150,17,118,225,6,73,23,73,50,77,54,78,58,80,16,203,163,201,16,206,165,239,16,213,173,147,16,208,169,143,42,165,239,66,42,70,16,202,173,146,16,212,173,145,17,97,235,173,148,17,103,242,173,149,42,162,84,65,170,49,66,5,111,31,111,62,114,68,117,1,103,42,104,16,228,173,133,16,233,173,132,17,112,239,163,255,16,97,1,232,169,246,233,173,131,97,48,101,92,104,17,107,243,173,130,3,108,50,109,54,115,58,116,16,235,173,129,16,233,173,128,16,245,163,107,16,243,163,196,17,110,231,1,42,163,176,66,16,196,163,176,0,33,74,193,192,82,192,204,86,56,86,60,87,88,88,98,89,102,90,1,210,173,2,215,171,110,4,193,173,114,196,173,115,197,173,116,206,173,115,213,163,148,1,198,173,117,211,171,102,16,203,173,118,3,196,173,13,197,173,13,212,173,119,213,171,58,82,70,83,108,84,162,87,85,3,193,171,252,199,173,112,217,173,113,218,173,7,5,211,9,211,171,58,213,171,39,215,171,42,197,173,98,200,171,110,207,169,81,14,205,26,212,12,212,173,104,213,171,39,214,173,105,217,173,106,205,173,101,206,173,102,207,171,117,210,173,103,197,12,197,171,142,201,171,97,202,173,100,203,171,93,193,173,8,195,173,99,196,173,12,14,205,26,210,12,210,171,214,214,171,235,215,163,251,218,171,143,205,171,193,206,173,111,207,171,205,208,173,110,200,12,200,171,182,202,171,177,203,171,194,204,173,110,196,173,107,198,173,108,199,173,109,78,100,78,64,79,168,150,80,120,81,2,193,173,96,207,173,97,213,173,51,9,204,15,204,165,79,207,169,133,208,169,143,209,173,18,212,173,8,193,173,83,195,173,84,197,173,85,200,163,148,201,173,86,13,205,23,212,12,212,173,95,215,169,230,217,165,196,218,173,88,205,173,92,210,173,93,211,173,94,199,12,199,171,210,200,165,128,203,173,91,204,169,248,193,173,88,197,173,89,198,173,90,74,162,72,75,162,76,76,162,100,77,0,18,206,32,213,15,213,169,49,214,165,80,216,173,1,217,169,21,218,173,82,206,165,66,207,163,245,209,173,80,210,173,81,212,169,96,198,15,198,173,79,199,169,53,203,169,12,204,163,171,205,163,209,193,173,76,195,173,77,196,173,78,197,171,60,1,207,173,65,208,167,47,7,208,12,208,173,68,210,167,141,215,173,69,218,173,70,197,173,66,199,167,197,200,167,125,205,173,67,8,211,15,211,173,73,212,169,2,213,173,74,214,169,8,217,173,75,193,167,250,194,173,71,201,173,72,203,171,87,65,193,96,69,152,69,106,70,162,65,71,162,78,72,162,117,73,7,209,12,209,173,64,210,165,116,211,167,18,212,167,41,195,173,63,196,167,20,204,165,237,206,165,239,9,210,14,210,173,50,211,165,105,212,119,213,173,51,218,173,52,193,173,47,195,173,48,197,165,92,199,157,200,173,49,4,201,165,126,207,165,133,209,173,18,210,165,139,216,165,139,11,208,20,211,9,211,173,58,212,173,59,215,173,60,208,173,56,209,173,57,210,165,94,200,8,200,105,204,167,120,206,173,55,193,173,53,197,165,180,198,173,54,6,210,12,210,167,4,212,167,7,213,167,8,214,173,25,203,163,243,205,173,61,206,173,62,65,94,66,162,76,67,162,131,68,6,203,12,203,165,36,207,173,45,217,173,27,218,173,46,196,165,48,197,165,48,202,173,44,13,209,23,212,12,212,173,21,215,173,22,216,173,23,218,163,95,209,173,18,210,173,19,211,173,20,204,11,204,111,205,163,67,206,173,11,207,173,17,196,173,14,197,173,15,198,173,16,0,16,204,28,210,14,210,171,6,212,69,213,163,209,214,173,32,217,163,125,204,173,28,206,173,29,207,173,30,209,173,31,199,12,199,163,138,200,173,26,201,171,31,202,173,27,193,163,194,196,163,176,197,173,24,198,173,25,0,16,207,29,213,15,213,173,4,214,173,42,215,173,11,217,173,43,218,165,28,207,173,39,208,173,40,210,173,41,211,171,58,201,12,201,173,36,204,173,37,205,173,38,206,163,239,196,173,2,198,173,33,199,173,34,200,173,35,52,34,52,66,53,72,55,78,56,1,56,42,57,16,176,171,58,16,182,173,13,17,49,185,173,10,17,51,178,173,11,17,51,182,173,12,42,165,99,48,80,49,162,107,50,2,48,46,51,56,56,16,176,165,48,1,176,165,28,178,171,255,16,176,119,5,51,35,51,52,53,74,54,1,177,171,102,178,165,239,3,176,163,239,180,165,239,181,167,20,185,167,41,2,179,173,0,180,173,5,183,173,6,48,52,49,74,50,1,177,165,99,185,173,4,3,178,171,255,179,165,99,181,171,6,185,173,0,6,181,11,181,157,183,173,2,184,173,3,185,165,99,177,171,255,179,173,1,180,171,143,2,52,46,53,62,55,16,178,171,39,2,178,163,239,179,173,7,181,173,8,3,176,171,39,177,171,39,180,173,9,181,165,48,4,100,54,103,60,104,66,114,70,118,17,115,244,75,17,108,237,165,123,17,104,226,171,246,17,111,237,99,1,97,60,109,1,233,159,238,1,42,163,67,65,16,205,163,67,16,226,0,19,76,98,81,49,81,60,83,64,84,80,85,106,89,1,197,173,13,212,171,144,16,193,173,96,2,193,173,8,196,173,12,217,173,106,4,199,147,200,169,48,202,173,126,206,173,111,210,173,127,16,203,173,121,76,60,77,70,78,98,79,102,80,1,203,173,91,211,173,94,1,194,173,71,217,173,75,4,193,173,76,205,173,120,206,167,117,210,173,81,213,173,124,16,199,173,125,16,205,173,87,69,46,69,66,71,74,73,78,74,100,75,2,200,165,7,205,173,67,215,173,69,1,199,157,200,173,49,16,194,173,121,3,196,173,122,206,173,123,209,173,64,210,165,116,16,207,173,65,42,157,65,50,66,60,67,70,68,16,218,173,46,1,197,173,15,198,173,16,1,200,173,26,213,173,120,1,195,169,22,206,171,248,0,33,117,136,230,43,242,33,242,157,243,163,74,246,163,84,249,163,93,250,1,42,46,65,18,114,97,226,163,97,2,42,163,95,73,138,82,16,213,163,98,230,81,235,105,237,119,238,129,122,45,122,44,225,37,226,45,229,75,16,234,1,42,46,65,18,114,97,226,163,97,3,42,163,95,49,46,73,52,83,16,213,163,98,17,55,178,163,98,1,209,163,96,210,163,97,117,56,118,60,119,82,121,1,226,163,94,242,163,93,16,249,163,83,3,236,163,85,238,163,86,244,163,87,245,163,88,3,225,163,89,226,163,90,239,163,91,248,163,92,107,151,111,106,111,68,112,78,114,104,115,162,81,116,2,225,163,80,231,163,81,234,163,82,2,234,139,237,141,250,143,5,242,6,242,151,243,153,250,155,227,145,228,147,229,149,9,239,15,239,163,69,241,163,70,243,163,71,249,163,72,250,163,73,226,157,227,50,232,163,66,237,163,67,238,163,68,2,42,159,78,46,80,18,97,108,237,163,65,18,98,97,244,161,4,225,163,75,229,163,76,231,163,77,239,163,78,244,163,79,107,60,108,62,109,88,110,3,227,131,235,133,238,135,249,137,16,235,107,5,238,6,238,115,243,111,244,117,225,109,226,111,233,113,3,237,121,238,123,239,125,240,127,101,39,101,52,103,58,104,84,106,1,231,101,244,103,1,226,77,249,79,5,237,6,237,89,239,91,241,93,227,83,228,85,231,87,2,225,95,236,97,239,99,97,72,98,82,99,100,100,5,240,6,240,69,249,71,250,73,225,63,229,65,234,67,2,233,39,235,41,245,43,4,233,47,241,49,242,51,244,53,249,55,2,228,57,229,59,232,61,4,0,39,0,55,0,60,0,74,0,170,170,166,29,0,144,117,31,0,144,108,50,0,144,147,25,0,16,4,0,0,0,80,0,0,0,50,0,0,0,4,0,0,0,3,0,0,0,170,170,170,170,141,6,0,0,0,0,8,9,10,0,2,0,0,0,11,0,9,0,2,1,9,0,1,1,10,0,10,0,0,0,0,0,0,0,10,12,0,0,0,1,11,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,11,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,1,0,1,0,0,0,0,14,1,0,0,14,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,0,2,0,0,1,1,2,1,0,1,2,3,1,1,0,2,1,0,1,1,2,0,1,1,1,1,1,1,1,0,2,2,1,2,0,2,2,2,1,1,2,1,0,1,2,4,0,1,1,0,1,1,1,1,0,1,2,1,1,2,1,0,2,1,0,2,1,2,1,1,1,0,0,0,1,1,0,1,0,0,1,1,0,2,0,2,0,0,0,0,0,0,0,0,0,0,5,1,0,2,0,1,0,1,5,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,2,0,1,0,1,0,0,1,0,0,0,0,0,1,0,0,1,6,0,2,1,2,1,1,1,0,0,2,1,1,0,2,1,1,2,2,3,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,7,0,1,2,0,0,0,1,0,2,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,1,2,0,1,0,1,0,0,0,0,1,0,2,1,1,1,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,5,0,5,0,1,1,1,2,1,3,0,0,1,1,1,1,7,3,2,5,2,1,1,1,1,2,1,1,1,0,1,0,1,1,1,0,2,0,0,1,0,0,1,1,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,2,1,1,3,0,0,1,1,2,1,0,0,0,4,1,1,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,0,2,1,1,1,2,0,2,1,1,1,0,2,1,0,1,1,1,0,1,1,1,1,5,1,1,0,1,0,2,0,1,1,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,3,15,0,0,0,0,4,0,0,0,0,0,2,1,1,0,2,0,2,0,2,0,4,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,170,170,170,170,170,170,170,170,170,170,170,170,170,170,170,154,10,0,0,0,25,110,196,43,116,193,177,119,192,199,119,162,125,120,162,135,121,162,151,122,4,108,56,109,170,155,225,56,232,86,245,17,101,238,93,18,237,109,243,53,17,122,232,72,1,42,133,76,22,97,116,238,72,97,110,243,53,17,122,232,32,2,42,133,72,52,76,22,97,116,238,72,97,110,243,73,17,97,110,1,233,126,244,19,72,97,110,244,32,7,179,10,179,62,180,58,181,54,182,16,182,41,42,43,176,38,177,34,178,5,179,200,184,179,41,180,41,181,41,5,179,200,174,179,41,180,41,181,41,18,72,97,110,1,243,73,244,73,1,117,42,239,17,102,242,93,18,245,122,232,53,1,109,42,232,17,101,238,93,2,237,162,65,246,34,247,17,109,231,53,3,105,50,117,56,233,62,239,17,101,238,93,18,232,121,233,53,18,229,122,232,53,17,101,238,92,1,42,133,72,22,101,98,242,76,97,116,238,53,116,74,117,162,180,118,1,107,44,114,18,239,101,244,53,1,235,34,244,17,109,243,53,14,225,113,235,14,235,162,164,238,162,223,239,162,220,244,17,114,245,93,225,78,229,146,231,170,87,233,17,101,238,92,1,42,133,69,22,116,104,233,76,97,116,238,53,1,101,66,116,16,225,32,1,42,133,76,22,97,116,238,84,97,109,236,73,16,238,92,1,42,133,84,22,97,109,236,76,97,116,238,53,1,101,66,116,16,229,32,1,42,133,76,22,97,116,238,84,101,108,245,73,16,238,92,1,42,133,84,22,101,108,245,76,97,116,238,53,108,28,108,54,109,172,28,117,54,120,18,249,109,231,53,18,232,101,238,93,1,237,162,94,249,18,107,108,238,53,100,50,101,162,230,107,18,231,109,231,53,18,248,109,231,53,5,235,24,235,178,205,242,162,154,250,17,114,245,92,1,42,133,76,22,97,116,238,67,121,114,236,53,114,46,122,52,231,17,122,232,73,18,235,109,243,53,18,243,117,250,53,113,193,103,113,162,178,114,164,79,115,0,18,232,91,241,45,241,48,242,52,244,40,245,168,41,247,17,101,238,93,16,115,1,232,41,242,32,2,42,133,67,52,76,22,97,116,238,67,121,114,236,43,22,121,114,236,76,97,116,238,43,232,54,233,70,235,100,238,34,239,17,101,238,93,2,98,172,56,104,34,115,16,242,41,17,101,238,92,1,42,133,83,22,105,110,232,76,97,116,238,53,17,99,243,73,112,46,112,82,114,88,115,94,225,178,32,228,17,101,238,92,1,42,133,65,22,114,97,226,76,97,116,238,53,18,246,111,242,53,18,239,115,227,53,1,232,176,37,249,17,97,225,41,100,52,103,64,104,72,107,18,231,109,231,53,1,227,34,238,17,115,227,53,19,227,107,108,238,53,18,245,97,242,53,4,117,58,118,144,119,162,100,120,162,109,245,17,101,243,93,12,236,22,243,11,243,42,247,38,248,34,249,17,113,245,53,236,38,240,34,242,17,113,245,53,231,9,231,38,232,34,235,17,113,245,53,226,38,228,34,230,17,113,245,53,13,237,22,240,11,240,42,243,38,247,34,250,17,113,245,53,237,38,238,34,239,17,113,245,53,232,11,232,42,233,38,234,34,236,17,113,245,53,225,38,227,34,229,17,113,245,53,3,225,42,227,38,232,34,243,17,113,245,53,10,239,20,244,9,244,38,245,34,247,17,113,245,53,239,38,240,34,242,17,113,245,53,225,46,227,42,232,38,236,34,238,17,113,245,53,17,113,245,53,3,97,168,23,237,48,238,162,137,247,17,102,242,93,17,100,229,73,110,162,115,111,162,217,112,8,107,81,107,172,29,115,98,225,112,243,142,244,17,112,244,162,128,7,179,196,220,179,170,246,180,38,181,34,182,4,176,41,178,41,180,41,181,41,182,41,1,229,162,213,244,17,112,243,53,17,101,238,92,1,42,133,71,22,117,114,245,76,97,116,238,53,17,101,238,92,1,42,133,65,22,114,97,226,76,97,116,238,53,98,52,99,58,101,64,103,18,225,97,242,53,18,244,112,243,53,18,237,101,238,73,18,236,109,243,53,10,121,70,238,25,238,46,239,56,249,17,101,238,93,16,110,1,226,73,239,73,1,100,124,110,1,226,35,238,73,121,72,226,86,229,17,101,238,92,1,42,133,68,22,101,118,225,76,97,116,238,53,1,228,166,117,238,17,101,238,93,1,100,44,110,1,238,73,239,35,16,225,49,97,168,124,104,52,105,58,108,66,115,18,239,101,238,93,18,228,103,238,53,19,241,107,108,238,53,19,229,108,117,249,53,4,107,84,114,92,227,174,56,237,162,228,242,17,101,238,92,1,42,133,79,22,114,121,225,76,97,116,238,53,19,233,107,108,238,53,2,227,166,205,238,34,243,17,109,243,53,103,195,51,106,194,79,106,162,188,107,164,20,108,164,183,109,0,16,118,105,238,53,238,164,17,242,78,243,116,244,162,161,249,17,101,238,92,1,42,133,77,22,121,109,242,76,97,116,238,53,1,104,166,86,109,16,242,32,1,42,133,76,22,97,116,238,68,101,118,225,73,17,105,228,93,118,118,231,164,79,233,166,17,236,1,101,66,109,16,236,32,1,42,133,76,22,97,116,238,77,108,121,237,73,16,238,92,1,42,133,77,22,108,121,237,76,97,116,238,53,18,230,109,238,53,110,31,110,52,113,58,115,64,117,18,233,109,243,53,18,240,122,232,53,18,231,109,243,53,1,232,172,176,233,17,109,243,53,97,52,101,72,102,78,105,18,238,109,243,53,1,233,42,248,17,109,243,53,17,104,233,73,18,239,109,243,53,2,225,74,226,70,229,17,101,238,93,2,97,46,225,58,246,17,105,228,73,1,235,34,248,17,109,243,53,17,106,225,32,3,42,133,72,56,75,120,76,22,97,116,238,74,112,97,238,43,2,97,54,105,66,114,21,107,244,74,112,97,238,43,21,110,233,74,112,97,238,43,17,114,225,1,72,70,74,18,112,97,238,43,18,97,110,225,1,72,44,74,18,112,97,238,43,18,114,107,244,43,10,235,115,239,54,239,46,245,124,249,17,114,245,93,17,107,239,32,2,42,133,72,70,74,18,97,109,239,1,72,44,75,18,111,114,229,43,18,97,110,231,43,17,97,110,1,231,34,233,19,75,111,114,229,43,17,116,242,93,235,168,200,237,106,238,1,101,66,107,16,238,32,1,42,133,76,22,97,116,238,75,110,100,225,73,16,238,92,1,42,133,75,22,110,100,225,76,97,116,238,53,17,101,238,92,1,42,133,75,22,104,109,242,76,97,116,238,53,114,54,118,60,120,72,225,78,231,17,102,242,93,18,233,101,238,93,1,226,34,242,17,109,243,53,18,228,109,243,53,17,101,238,92,1,42,133,71,22,101,111,242,76,97,116,238,53,14,117,62,226,33,226,78,231,162,157,238,76,239,17,101,238,92,1,42,133,76,22,97,111,239,76,97,116,238,53,17,100,229,41,17,102,242,93,117,50,119,56,122,64,225,17,105,244,73,18,225,102,242,93,19,231,108,117,249,53,18,232,122,232,53,111,42,111,72,114,78,115,92,116,2,231,48,239,34,243,18,108,117,249,53,17,108,246,53,18,250,101,238,93,1,233,34,237,18,108,117,249,53,19,237,108,117,249,53,99,70,105,82,107,2,226,38,239,34,243,18,108,117,249,53,18,108,117,249,53,1,229,34,230,17,109,243,53,18,247,109,243,53,103,106,104,162,129,105,5,228,10,228,168,196,231,52,243,17,101,238,73,100,46,107,54,225,17,101,238,93,19,225,108,117,249,53,18,244,105,245,53,10,117,49,236,30,236,164,14,238,164,11,245,1,103,40,104,16,233,93,16,245,32,1,42,133,76,22,97,116,238,71,117,106,242,73,117,46,225,34,228,17,101,238,73,1,233,34,238,17,103,238,53,97,56,107,76,110,84,111,90,115,18,247,100,229,41,2,225,162,87,238,164,132,248,17,111,237,53,19,240,107,112,229,53,18,247,103,238,53,19,237,107,111,235,53,7,233,52,233,78,242,108,244,168,45,249,17,114,245,92,1,42,133,65,22,114,109,238,67,121,114,236,53,17,104,233,32,1,42,133,76,22,97,116,238,68,101,118,225,73,1,98,40,115,16,232,41,16,243,41,97,50,106,76,115,82,225,17,101,238,93,2,229,48,235,164,38,247,17,101,238,73,17,111,237,53,18,233,109,243,53,18,238,122,232,53,100,192,234,100,136,101,162,72,102,3,102,50,117,56,239,106,249,17,110,236,73,18,237,102,230,53,6,232,11,232,42,233,38,241,34,246,17,102,230,53,226,38,229,34,230,17,102,230,53,17,102,230,53,17,100,225,73,2,116,52,117,58,225,16,110,1,226,49,239,49,18,249,110,229,53,18,240,109,243,53,6,238,133,238,54,239,162,133,243,162,65,245,17,101,243,73,17,101,238,162,128,7,179,29,179,100,180,38,181,56,182,4,176,41,177,41,180,41,181,39,182,41,4,176,39,177,39,180,39,181,39,182,39,42,43,176,48,177,44,178,1,178,41,179,41,4,176,41,177,41,180,41,181,39,182,41,17,101,243,162,128,7,179,18,179,122,180,38,181,34,182,4,176,41,178,41,180,41,181,41,182,41,42,43,176,38,177,78,178,4,176,41,178,41,180,41,181,41,182,41,4,176,41,178,41,180,41,181,41,182,41,1,177,41,179,41,110,46,121,54,229,17,101,238,93,19,226,107,108,238,53,19,239,107,108,238,53,97,162,96,98,164,158,99,12,112,46,225,17,225,162,206,239,164,221,243,42,249,17,101,238,73,17,115,235,73,112,62,114,68,122,1,232,34,239,17,122,232,53,17,122,232,53,18,248,122,232,53,18,243,102,242,73,106,20,106,48,107,54,111,18,225,109,243,53,18,249,122,232,53,18,226,97,242,93,100,48,101,54,104,18,242,101,238,73,18,239,122,232,53,19,226,102,105,236,93,0,22,117,192,192,230,146,242,117,242,74,249,162,108,250,17,114,245,92,1,42,133,76,22,97,116,238,67,121,114,236,53,17,97,242,32,1,42,90,76,22,97,116,238,65,114,97,226,72,7,179,39,179,42,180,96,181,34,182,5,179,54,179,41,181,41,182,41,132,7,179,19,179,42,180,56,181,34,182,5,179,34,179,41,181,41,182,41,16,180,41,42,43,176,38,177,34,178,5,179,15,179,41,181,41,182,41,5,179,6,179,41,181,41,182,41,176,41,177,41,178,41,17,101,243,73,230,74,235,162,177,237,17,101,238,92,1,42,133,69,22,116,104,233,76,97,116,238,53,17,110,236,73,122,19,122,46,225,52,226,17,114,245,93,18,226,97,250,53,18,115,115,249,41,117,164,46,118,58,121,3,232,42,236,38,238,34,240,17,97,242,53,18,236,97,242,53,102,53,108,30,108,62,112,68,114,3,241,42,243,38,249,34,250,17,97,242,53,18,238,115,241,53,1,227,34,228,17,97,242,53,102,48,105,54,106,18,240,97,242,53,18,226,97,242,53,19,233,115,121,242,53,97,62,98,78,99,90,100,144,101,1,226,34,227,17,97,242,53,2,229,38,239,50,244,17,115,241,53,1,232,34,246,17,97,242,53,5,247,9,247,38,248,34,249,17,97,242,53,232,46,237,34,241,17,97,242,53,17,101,238,93,17,97,242,53,18,230,97,242,53,14,118,104,238,74,238,62,239,130,242,160,243,1,104,40,115,16,232,41,16,242,41,1,98,66,101,16,238,92,1,42,133,66,22,101,110,231,76,97,116,238,53,16,238,32,1,42,133,76,22,97,116,238,66,101,110,231,73,17,122,232,72,1,42,133,84,22,105,98,244,72,97,110,243,53,17,102,242,73,118,50,122,62,229,68,232,17,104,233,93,1,229,34,245,17,109,243,53,18,227,109,231,53,17,114,245,73,104,34,104,52,106,58,109,78,116,18,234,109,243,53,18,242,109,231,53,1,238,42,241,17,109,231,53,17,109,243,53,18,237,109,231,53,97,48,98,54,101,18,237,101,238,93,18,236,117,242,73,18,250,97,242,53,170,170,5,0,85,0,95,0,105,0,116,0,74,0,93,35,0,224,185,50,0,144,204,50,0,144,99,35,0,16,11,37,0,16,2,0,32,0,79,0,170,170,86,35,0,32,179,39,0,32,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,144,74,0,80,7,0,0,0,206,8,0,0,114,53,0,0,114,53,0,0,91,7,0,0,1,0,0,0,114,53,0,0,97,97,105,0,97,97,107,0,97,97,117,0,97,98,105,0,97,98,113,0,97,98,114,0,97,98,116,0,97,98,121,0,97,99,100,0,97,99,101,0,97,99,104,0,97,100,97,0,97,100,101,0,97,100,106,0,97,100,112,0,97,100,121,0,97,100,122,0,97,101,98,0,97,101,121,0,97,103,99,0,97,103,100,0,97,103,103,0,97,103,111,0,97,103,113,0,97,104,97,0,97,104,108,0,97,104,111,0,97,106,103,0,97,106,116,0,97,107,107,0,97,108,97,0,97,108,110,0,97,108,116,0,97,109,109,0,97,109,110,0,97,109,112,0,97,110,99,0,97,110,107,0,97,110,110,0,97,110,121,0,97,111,106,0,97,111,109,0,97,111,122,0,97,112,99,0,97,112,100,0,97,112,101,0,97,112,114,0,97,112,115,0,97,112,122,0,97,114,99,95,78,98,97,116,0,97,114,99,95,80,97,108,109,0,97,114,104,0,97,114,110,0,97,114,111,0,97,114,113,0,97,114,115,0,97,114,121,0,97,114,122,0,97,115,97,0,97,115,101,0,97,115,103,0,97,115,111,0,97,115,116,0,97,116,97,0,97,116,103,0,97,116,106,0,97,117,121,0,97,118,108,0,97,118,110,0,97,118,117,0,97,119,97,0,97,119,98,0,97,119,111,0,97,119,120,0,97,121,98,0,97,122,95,65,114,97,98,0,97,122,95,73,81,0,97,122,95,73,82,0,97,122,95,82,85,0,98,97,108,0,98,97,110,0,98,97,112,0,98,97,114,0,98,97,115,0,98,97,118,0,98,97,120,0,98,98,97,0,98,98,98,0,98,98,99,0,98,98,100,0,98,98,106,0,98,98,112,0,98,98,114,0,98,99,102,0,98,99,104,0,98,99,105,0,98,99,109,0,98,99,110,0,98,99,111,0,98,99,113,0,98,99,117,0,98,100,100,0,98,101,102,0,98,101,104,0,98,101,106,0,98,101,109,0,98,101,116,0,98,101,119,0,98,101,120,0,98,101,122,0,98,102,100,0,98,102,113,0,98,102,116,0,98,102,121,0,98,103,99,0,98,103,110,0,98,103,120,0,98,104,98,0,98,104,103,0,98,104,105,0,98,104,108,0,98,104,111,0,98,104,121,0,98,105,98,0,98,105,103,0,98,105,107,0,98,105,109,0,98,105,110,0,98,105,111,0,98,105,113,0,98,106,104,0,98,106,105,0,98,106,106,0,98,106,110,0,98,106,111,0,98,106,114,0,98,106,116,0,98,106,122,0,98,107,99,0,98,107,109,0,98,107,113,0,98,107,117,0,98,107,118,0,98,108,97,0,98,108,103,0,98,108,116,0,98,109,104,0,98,109,107,0,98,109,113,0,98,109,117,0,98,110,0,98,110,103,0,98,110,109,0,98,110,112,0,98,111,106,0,98,111,109,0,98,111,110,0,98,112,121,0,98,113,99,0,98,113,105,0,98,113,112,0,98,113,118,0,98,114,97,0,98,114,104,0,98,114,120,0,98,114,122,0,98,115,0,98,115,106,0,98,115,113,0,98,115,115,0,98,115,116,0,98,116,111,0,98,116,116,0,98,116,118,0,98,117,97,0,98,117,99,0,98,117,100,0,98,117,103,0,98,117,107,0,98,117,109,0,98,117,111,0,98,117,115,0,98,117,117,0,98,118,98,0,98,119,100,0,98,119,114,0,98,120,104,0,98,121,101,0,98,121,110,0,98,121,114,0,98,121,115,0,98,121,118,0,98,121,120,0,98,122,97,0,98,122,101,0,98,122,102,0,98,122,104,0,98,122,119,0,99,97,100,0,99,97,110,0,99,98,106,0,99,99,104,0,99,99,112,0,99,101,98,0,99,102,97,0,99,103,103,0,99,104,107,0,99,104,109,0,99,104,112,0,99,104,114,0,99,105,99,0,99,106,97,0,99,106,109,0,99,106,118,0,99,107,98,0,99,107,108,0,99,107,111,0,99,107,121,0,99,108,97,0,99,108,99,0,99,109,101,0,99,109,103,0,99,111,112,0,99,112,115,0,99,114,103,0,99,114,104,0,99,114,107,0,99,114,108,0,99,114,115,0,99,115,0,99,115,98,0,99,115,119,0,99,116,100,0,99,117,95,71,108,97,103,0,99,118,0,100,97,100,0,100,97,102,0,100,97,103,0,100,97,104,0,100,97,107,0,100,97,114,0,100,97,118,0,100,98,100,0,100,98,113,0,100,99,99,0,100,100,110,0,100,101,100,0,100,101,110,0,100,103,97,0,100,103,104,0,100,103,105,0,100,103,108,0,100,103,114,0,100,103,122,0,100,105,97,0,100,106,101,0,100,109,102,0,100,110,106,0,100,111,98,0,100,111,105,0,100,111,112,0,100,111,119,0,100,114,104,0,100,114,105,0,100,114,115,0,100,115,98,0,100,116,109,0,100,116,112,0,100,116,115,0,100,116,121,0,100,117,97,0,100,117,99,0,100,117,100,0,100,117,103,0,100,118,0,100,118,97,0,100,119,119,0,100,121,111,0,100,121,117,0,100,122,103,0,101,98,117,0,101,102,105,0,101,103,108,0,101,103,121,0,101,107,97,0,101,107,121,0,101,109,97,0,101,109,105,0,101,110,95,83,104,97,119,0,101,110,110,0,101,110,113,0,101,114,105,0,101,115,103,0,101,115,117,0,101,116,114,0,101,116,116,0,101,116,117,0,101,116,120,0,101,119,111,0,101,120,116,0,101,122,97,0,102,97,97,0,102,97,98,0,102,97,103,0,102,97,105,0,102,97,110,0,102,102,0,102,102,95,65,100,108,109,0,102,102,105,0,102,102,109,0,102,105,97,0,102,105,108,0,102,105,116,0,102,106,0,102,108,114,0,102,109,112,0,102,111,100,0,102,111,110,0,102,111,114,0,102,112,101,0,102,113,115,0,102,114,99,0,102,114,112,0,102,114,114,0,102,114,115,0,102,117,98,0,102,117,100,0,102,117,101,0,102,117,102,0,102,117,104,0,102,117,113,0,102,117,114,0,102,117,118,0,102,117,121,0,102,118,114,0,103,97,97,0,103,97,102,0,103,97,103,0,103,97,104,0,103,97,106,0,103,97,110,0,103,97,119,0,103,97,121,0,103,98,97,0,103,98,102,0,103,98,109,0,103,98,121,0,103,98,122,0,103,99,114,0,103,100,101,0,103,100,110,0,103,100,114,0,103,101,98,0,103,101,106,0,103,101,108,0,103,101,122,0,103,102,107,0,103,103,110,0,103,104,115,0,103,105,108,0,103,105,109,0,103,106,107,0,103,106,110,0,103,106,117,0,103,107,110,0,103,107,112,0,103,108,107,0,103,109,109,0,103,109,118,0,103,110,100,0,103,110,103,0,103,111,100,0,103,111,102,0,103,111,105,0,103,111,109,0,103,111,110,0,103,111,114,0,103,111,115,0,103,111,116,0,103,114,98,0,103,114,99,0,103,114,99,95,76,105,110,98,0,103,114,116,0,103,114,119,0,103,115,119,0,103,117,98,0,103,117,99,0,103,117,100,0,103,117,114,0,103,117,119,0,103,117,120,0,103,117,122,0,103,118,0,103,118,102,0,103,118,114,0,103,118,115,0,103,119,99,0,103,119,105,0,103,119,116,0,103,121,105,0,104,97,95,67,77,0,104,97,95,83,68,0,104,97,107,0,104,97,122,0,104,98,98,0,104,100,121,0,104,104,121,0,104,105,95,76,97,116,110,0,104,105,97,0,104,105,102,0,104,105,103,0,104,105,104,0,104,105,108,0,104,108,97,0,104,108,117,0,104,109,100,0,104,109,116,0,104,110,100,0,104,110,101,0,104,110,106,0,104,110,110,0,104,110,111,0,104,111,99,0,104,111,116,0,104,115,98,0,104,115,110,0,104,117,105,0,104,117,114,0,105,97,110,0,105,97,114,0,105,98,97,0,105,98,98,0,105,98,121,0,105,99,97,0,105,99,104,0,105,100,105,0,105,100,117,0,105,102,101,0,105,103,98,0,105,103,101,0,105,106,106,0,105,107,107,0,105,107,119,0,105,107,120,0,105,108,111,0,105,109,111,0,105,111,117,0,105,114,105,0,105,119,109,0,105,119,115,0,105,122,104,0,105,122,105,0,106,97,98,0,106,97,109,0,106,97,114,0,106,98,111,0,106,98,117,0,106,101,110,0,106,103,107,0,106,103,111,0,106,105,98,0,106,109,99,0,106,109,108,0,106,114,97,0,106,117,116,0,106,119,0,107,97,97,0,107,97,98,0,107,97,99,0,107,97,100,0,107,97,105,0,107,97,106,0,107,97,109,0,107,97,111,0,107,97,119,0,107,98,100,0,107,98,109,0,107,98,112,0,107,98,113,0,107,98,120,0,107,98,121,0,107,99,103,0,107,99,107,0,107,99,108,0,107,99,116,0,107,100,101,0,107,100,104,0,107,100,108,0,107,100,116,0,107,101,97,0,107,101,110,0,107,101,122,0,107,102,111,0,107,102,114,0,107,102,121,0,107,103,101,0,107,103,102,0,107,103,112,0,107,104,97,0,107,104,98,0,107,104,110,0,107,104,113,0,107,104,115,0,107,104,116,0,107,104,119,0,107,104,122,0,107,105,106,0,107,105,117,0,107,105,119,0,107,106,100,0,107,106,103,0,107,106,115,0,107,106,121,0,107,107,95,65,70,0,107,107,95,65,114,97,98,0,107,107,95,67,78,0,107,107,95,73,82,0,107,107,95,77,78,0,107,107,99,0,107,107,106,0,107,108,110,0,107,108,113,0,107,108,116,0,107,108,120,0,107,109,98,0,107,109,104,0,107,109,111,0,107,109,115,0,107,109,117,0,107,109,119,0,107,110,102,0,107,110,112,0,107,111,105,0,107,111,107,0,107,111,108,0,107,111,115,0,107,111,122,0,107,112,101,0,107,112,102,0,107,112,111,0,107,112,114,0,107,112,120,0,107,113,98,0,107,113,102,0,107,113,115,0,107,113,121,0,107,114,99,0,107,114,105,0,107,114,106,0,107,114,108,0,107,114,115,0,107,114,117,0,107,115,98,0,107,115,100,0,107,115,102,0,107,115,104,0,107,115,106,0,107,115,114,0,107,116,98,0,107,116,109,0,107,116,111,0,107,116,114,0,107,117,95,65,114,97,98,0,107,117,95,76,66,0,107,117,95,89,101,122,105,0,107,117,98,0,107,117,100,0,107,117,101,0,107,117,106,0,107,117,109,0,107,117,110,0,107,117,112,0,107,117,115,0,107,118,103,0,107,118,114,0,107,118,120,0,107,119,106,0,107,119,107,0,107,119,111,0,107,119,113,0,107,120,97,0,107,120,99,0,107,120,101,0,107,120,108,0,107,120,109,0,107,120,112,0,107,120,119,0,107,120,122,0,107,121,95,65,114,97,98,0,107,121,95,67,78,0,107,121,95,76,97,116,110,0,107,121,95,84,82,0,107,121,101,0,107,121,120,0,107,122,104,0,107,122,106,0,107,122,114,0,107,122,116,0,108,97,98,0,108,97,100,0,108,97,104,0,108,97,106,0,108,97,115,0,108,98,0,108,98,101,0,108,98,117,0,108,98,119,0,108,99,109,0,108,99,112,0,108,100,98,0,108,101,100,0,108,101,101,0,108,101,109,0,108,101,112,0,108,101,113,0,108,101,117,0,108,101,122,0,108,103,103,0,108,105,97,0,108,105,100,0,108,105,102,0,108,105,102,95,76,105,109,98,0,108,105,103,0,108,105,104,0,108,105,106,0,108,105,108,0,108,105,115,0,108,106,112,0,108,107,105,0,108,107,116,0,108,108,101,0,108,108,110,0,108,109,110,0,108,109,111,0,108,109,112,0,108,110,115,0,108,110,117,0,108,111,106,0,108,111,107,0,108,111,108,0,108,111,114,0,108,111,115,0,108,111,122,0,108,114,99,0,108,116,103,0,108,117,97,0,108,117,111,0,108,117,121,0,108,117,122,0,108,118,0,108,119,108,0,108,122,104,0,108,122,122,0,109,97,100,0,109,97,102,0,109,97,103,0,109,97,105,0,109,97,107,0,109,97,110,0,109,97,110,95,71,78,0,109,97,110,95,78,107,111,111,0,109,97,115,0,109,97,119,0,109,97,122,0,109,98,104,0,109,98,111,0,109,98,113,0,109,98,117,0,109,98,119,0,109,99,105,0,109,99,112,0,109,99,113,0,109,99,114,0,109,99,117,0,109,100,97,0,109,100,101,0,109,100,102,0,109,100,104,0,109,100,106,0,109,100,114,0,109,100,120,0,109,101,100,0,109,101,101,0,109,101,107,0,109,101,110,0,109,101,114,0,109,101,116,0,109,101,117,0,109,102,97,0,109,102,101,0,109,102,110,0,109,102,111,0,109,102,113,0,109,103,104,0,109,103,108,0,109,103,111,0,109,103,112,0,109,103,121,0,109,104,105,0,109,104,108,0,109,105,99,0,109,105,102,0,109,105,110,0,109,105,119,0,109,107,105,0,109,107,108,0,109,107,112,0,109,107,119,0,109,108,101,0,109,108,112,0,109,108,115,0,109,109,111,0,109,109,117,0,109,109,120,0,109,110,95,67,78,0,109,110,95,77,111,110,103,0,109,110,97,0,109,110,102,0,109,110,105,0,109,110,119,0,109,111,97,0,109,111,101,0,109,111,104,0,109,111,115,0,109,111,120,0,109,112,112,0,109,112,115,0,109,112,116,0,109,112,120,0,109,113,108,0,109,114,100,0,109,114,106,0,109,114,111,0,109,115,95,67,67,0,109,116,99,0,109,116,102,0,109,116,105,0,109,116,114,0,109,117,97,0,109,117,114,0,109,117,115,0,109,118,97,0,109,118,110,0,109,118,121,0,109,119,107,0,109,119,114,0,109,119,118,0,109,119,119,0,109,120,99,0,109,120,109,0,109,121,107,0,109,121,109,0,109,121,118,0,109,121,119,0,109,121,120,0,109,121,122,0,109,122,107,0,109,122,109,0,109,122,110,0,109,122,112,0,109,122,119,0,109,122,122,0,110,97,99,0,110,97,102,0,110,97,107,0,110,97,110,0,110,97,112,0,110,97,113,0,110,97,115,0,110,99,97,0,110,99,101,0,110,99,102,0,110,99,104,0,110,99,111,0,110,99,117,0,110,100,99,0,110,100,115,0,110,101,98,0,110,101,119,0,110,101,120,0,110,102,114,0,110,103,97,0,110,103,98,0,110,103,108,0,110,104,98,0,110,104,101,0,110,104,119,0,110,105,102,0,110,105,105,0,110,105,106,0,110,105,110,0,110,105,117,0,110,105,121,0,110,105,122,0,110,106,111,0,110,107,103,0,110,107,111,0,110,108,0,110,109,103,0,110,109,122,0,110,110,102,0,110,110,104,0,110,110,107,0,110,110,109,0,110,110,112,0,110,111,100,0,110,111,101,0,110,111,110,0,110,111,112,0,110,111,117,0,110,113,111,0,110,114,98,0,110,115,107,0,110,115,110,0,110,115,111,0,110,115,115,0,110,115,116,0,110,116,109,0,110,116,114,0,110,117,105,0,110,117,112,0,110,117,115,0,110,117,118,0,110,117,120,0,110,118,0,110,119,98,0,110,120,113,0,110,120,114,0,110,121,109,0,110,121,110,0,110,122,105,0,111,99,95,69,83,0,111,103,99,0,111,106,115,0,111,107,97,0,111,107,114,0,111,107,118,0,111,110,110,0,111,110,115,0,111,112,109,0,111,114,111,0,111,114,117,0,111,115,97,0,111,116,97,0,111,116,107,0,111,117,105,0,111,122,109,0,112,97,95,65,114,97,98,0,112,97,95,80,75,0,112,97,103,0,112,97,108,0,112,97,108,95,80,104,108,112,0,112,97,109,0,112,97,112,0,112,97,117,0,112,98,105,0,112,99,100,0,112,99,109,0,112,100,99,0,112,100,116,0,112,101,100,0,112,101,120,0,112,102,108,0,112,104,108,0,112,104,110,0,112,105,108,0,112,105,112,0,112,105,115,0,112,107,97,0,112,107,111,0,112,108,97,0,112,109,115,0,112,110,103,0,112,110,110,0,112,110,116,0,112,111,110,0,112,112,97,0,112,112,111,0,112,113,109,0,112,114,97,0,112,114,100,0,112,114,103,0,112,115,115,0,112,116,112,0,112,117,117,0,112,119,97,0,113,117,0,113,117,99,0,113,117,103,0,114,97,106,0,114,97,111,0,114,99,102,0,114,101,106,0,114,101,108,0,114,101,115,0,114,103,110,0,114,104,103,0,114,105,97,0,114,105,102,0,114,105,102,95,78,76,0,114,106,115,0,114,107,116,0,114,109,102,0,114,109,111,0,114,109,116,0,114,109,117,0,114,110,97,0,114,110,103,0,114,111,98,0,114,111,102,0,114,114,111,0,114,116,109,0,114,117,101,0,114,117,103,0,114,119,107,0,114,119,111,0,114,121,117,0,115,97,102,0,115,97,104,0,115,97,113,0,115,97,115,0,115,97,116,0,115,97,118,0,115,97,122,0,115,98,97,0,115,98,101,0,115,98,112,0,115,99,0,115,99,107,0,115,99,108,0,115,99,110,0,115,99,111,0,115,100,95,68,101,118,97,0,115,100,95,73,78,0,115,100,95,75,104,111,106,0,115,100,95,83,105,110,100,0,115,100,99,0,115,100,104,0,115,101,102,0,115,101,104,0,115,101,105,0,115,101,115,0,115,103,97,0,115,103,115,0,115,103,119,0,115,103,122,0,115,104,105,0,115,104,107,0,115,104,110,0,115,105,100,0,115,105,103,0,115,105,108,0,115,105,109,0,115,106,114,0,115,107,99,0,115,107,114,0,115,107,115,0,115,108,0,115,108,100,0,115,108,105,0,115,108,108,0,115,108,121,0,115,109,100,0,115,109,106,0,115,109,110,0,115,109,112,0,115,109,113,0,115,109,115,0,115,110,98,0,115,110,99,0,115,110,107,0,115,110,112,0,115,110,120,0,115,110,121,0,115,111,103,0,115,111,107,0,115,111,113,0,115,111,117,0,115,111,121,0,115,112,100,0,115,112,108,0,115,112,115,0,115,114,95,77,69,0,115,114,95,82,79,0,115,114,95,82,85,0,115,114,95,84,82,0,115,114,98,0,115,114,110,0,115,114,114,0,115,114,120,0,115,115,100,0,115,115,103,0,115,115,121,0,115,116,107,0,115,116,113,0,115,117,97,0,115,117,101,0,115,117,107,0,115,117,114,0,115,117,115,0,115,118,0,115,119,98,0,115,119,99,0,115,119,103,0,115,119,112,0,115,119,118,0,115,120,110,0,115,120,119,0,115,121,108,0,115,121,114,0,115,122,108,0,116,97,106,0,116,97,110,0,116,97,113,0,116,98,99,0,116,98,100,0,116,98,102,0,116,98,103,0,116,98,111,0,116,98,119,0,116,98,122,0,116,99,105,0,116,99,121,0,116,100,100,0,116,100,103,0,116,100,104,0,116,100,117,0,116,101,100,0,116,101,109,0,116,101,111,0,116,101,116,0,116,102,105,0,116,103,95,65,114,97,98,0,116,103,95,80,75,0,116,103,99,0,116,103,111,0,116,103,117,0,116,104,108,0,116,104,113,0,116,104,114,0,116,105,102,0,116,105,103,0,116,105,107,0,116,105,109,0,116,105,111,0,116,105,118,0,116,107,108,0,116,107,114,0,116,107,116,0,116,108,0,116,108,102,0,116,108,120,0,116,108,121,0,116,109,104,0,116,109,121,0,116,110,104,0,116,111,102,0,116,111,103,0,116,111,107,0,116,111,113,0,116,112,105,0,116,112,109,0,116,112,122,0,116,113,111,0,116,114,117,0,116,114,118,0,116,114,119,0,116,115,100,0,116,115,102,0,116,115,103,0,116,115,106,0,116,115,119,0,116,116,100,0,116,116,101,0,116,116,106,0,116,116,114,0,116,116,115,0,116,116,116,0,116,117,104,0,116,117,108,0,116,117,109,0,116,117,113,0,116,118,100,0,116,118,108,0,116,118,117,0,116,119,104,0,116,119,113,0,116,120,103,0,116,120,111,0,116,121,97,0,116,121,118,0,116,122,109,0,117,98,117,0,117,100,105,0,117,100,109,0,117,103,95,67,121,114,108,0,117,103,95,75,90,0,117,103,95,77,78,0,117,103,97,0,117,108,105,0,117,109,98,0,117,110,100,95,48,48,50,0,117,110,100,95,48,48,51,0,117,110,100,95,48,48,53,0,117,110,100,95,48,48,57,0,117,110,100,95,48,49,49,0,117,110,100,95,48,49,51,0,117,110,100,95,48,49,52,0,117,110,100,95,48,49,53,0,117,110,100,95,48,49,55,0,117,110,100,95,48,49,56,0,117,110,100,95,48,49,57,0,117,110,100,95,48,50,49,0,117,110,100,95,48,50,57,0,117,110,100,95,48,51,48,0,117,110,100,95,48,51,52,0,117,110,100,95,48,51,53,0,117,110,100,95,48,51,57,0,117,110,100,95,48,53,51,0,117,110,100,95,48,53,52,0,117,110,100,95,48,53,55,0,117,110,100,95,48,54,49,0,117,110,100,95,49,52,50,0,117,110,100,95,49,52,51,0,117,110,100,95,49,52,53,0,117,110,100,95,49,53,48,0,117,110,100,95,49,53,49,0,117,110,100,95,49,53,52,0,117,110,100,95,49,53,53,0,117,110,100,95,50,48,50,0,117,110,100,95,52,49,57,0,117,110,100,95,65,68,0,117,110,100,95,65,69,0,117,110,100,95,65,70,0,117,110,100,95,65,76,0,117,110,100,95,65,77,0,117,110,100,95,65,79,0,117,110,100,95,65,81,0,117,110,100,95,65,82,0,117,110,100,95,65,83,0,117,110,100,95,65,84,0,117,110,100,95,65,87,0,117,110,100,95,65,88,0,117,110,100,95,65,90,0,117,110,100,95,65,100,108,109,0,117,110,100,95,65,103,104,98,0,117,110,100,95,65,104,111,109,0,117,110,100,95,65,114,97,98,0,117,110,100,95,65,114,97,98,95,67,67,0,117,110,100,95,65,114,97,98,95,67,78,0,117,110,100,95,65,114,97,98,95,71,66,0,117,110,100,95,65,114,97,98,95,73,68,0,117,110,100,95,65,114,97,98,95,73,78,0,117,110,100,95,65,114,97,98,95,75,72,0,117,110,100,95,65,114,97,98,95,77,77,0,117,110,100,95,65,114,97,98,95,77,78,0,117,110,100,95,65,114,97,98,95,77,85,0,117,110,100,95,65,114,97,98,95,78,71,0,117,110,100,95,65,114,97,98,95,80,75,0,117,110,100,95,65,114,97,98,95,84,71,0,117,110,100,95,65,114,97,98,95,84,72,0,117,110,100,95,65,114,97,98,95,84,74,0,117,110,100,95,65,114,97,98,95,84,82,0,117,110,100,95,65,114,97,98,95,89,84,0,117,110,100,95,65,114,109,105,0,117,110,100,95,65,114,109,110,0,117,110,100,95,65,118,115,116,0,117,110,100,95,66,65,0,117,110,100,95,66,68,0,117,110,100,95,66,69,0,117,110,100,95,66,70,0,117,110,100,95,66,71,0,117,110,100,95,66,72,0,117,110,100,95,66,73,0,117,110,100,95,66,74,0,117,110,100,95,66,76,0,117,110,100,95,66,78,0,117,110,100,95,66,79,0,117,110,100,95,66,81,0,117,110,100,95,66,82,0,117,110,100,95,66,84,0,117,110,100,95,66,86,0,117,110,100,95,66,89,0,117,110,100,95,66,97,108,105,0,117,110,100,95,66,97,109,117,0,117,110,100,95,66,97,115,115,0,117,110,100,95,66,97,116,107,0,117,110,100,95,66,101,110,103,0,117,110,100,95,66,104,107,115,0,117,110,100,95,66,111,112,111,0,117,110,100,95,66,114,97,104,0,117,110,100,95,66,114,97,105,0,117,110,100,95,66,117,103,105,0,117,110,100,95,66,117,104,100,0,117,110,100,95,67,68,0,117,110,100,95,67,70,0,117,110,100,95,67,71,0,117,110,100,95,67,72,0,117,110,100,95,67,73,0,117,110,100,95,67,76,0,117,110,100,95,67,77,0,117,110,100,95,67,78,0,117,110,100,95,67,79,0,117,110,100,95,67,80,0,117,110,100,95,67,82,0,117,110,100,95,67,85,0,117,110,100,95,67,86,0,117,110,100,95,67,87,0,117,110,100,95,67,89,0,117,110,100,95,67,90,0,117,110,100,95,67,97,107,109,0,117,110,100,95,67,97,110,115,0,117,110,100,95,67,97,114,105,0,117,110,100,95,67,104,97,109,0,117,110,100,95,67,104,101,114,0,117,110,100,95,67,104,114,115,0,117,110,100,95,67,111,112,116,0,117,110,100,95,67,112,109,110,0,117,110,100,95,67,112,109,110,95,67,89,0,117,110,100,95,67,112,114,116,0,117,110,100,95,67,121,114,108,0,117,110,100,95,67,121,114,108,95,65,76,0,117,110,100,95,67,121,114,108,95,66,65,0,117,110,100,95,67,121,114,108,95,71,69,0,117,110,100,95,67,121,114,108,95,71,82,0,117,110,100,95,67,121,114,108,95,77,68,0,117,110,100,95,67,121,114,108,95,82,79,0,117,110,100,95,67,121,114,108,95,83,75,0,117,110,100,95,67,121,114,108,95,84,82,0,117,110,100,95,67,121,114,108,95,88,75,0,117,110,100,95,68,69,0,117,110,100,95,68,74,0,117,110,100,95,68,75,0,117,110,100,95,68,79,0,117,110,100,95,68,90,0,117,110,100,95,68,101,118,97,0,117,110,100,95,68,101,118,97,95,66,84,0,117,110,100,95,68,101,118,97,95,70,74,0,117,110,100,95,68,101,118,97,95,77,85,0,117,110,100,95,68,101,118,97,95,80,75,0,117,110,100,95,68,105,97,107,0,117,110,100,95,68,111,103,114,0,117,110,100,95,68,117,112,108,0,117,110,100,95,69,65,0,117,110,100,95,69,67,0,117,110,100,95,69,69,0,117,110,100,95,69,71,0,117,110,100,95,69,72,0,117,110,100,95,69,82,0,117,110,100,95,69,83,0,117,110,100,95,69,84,0,117,110,100,95,69,85,0,117,110,100,95,69,90,0,117,110,100,95,69,103,121,112,0,117,110,100,95,69,108,98,97,0,117,110,100,95,69,108,121,109,0,117,110,100,95,69,116,104,105,0,117,110,100,95,70,73,0,117,110,100,95,70,79,0,117,110,100,95,70,82,0,117,110,100,95,71,65,0,117,110,100,95,71,69,0,117,110,100,95,71,70,0,117,110,100,95,71,72,0,117,110,100,95,71,76,0,117,110,100,95,71,78,0,117,110,100,95,71,80,0,117,110,100,95,71,81,0,117,110,100,95,71,82,0,117,110,100,95,71,83,0,117,110,100,95,71,84,0,117,110,100,95,71,87,0,117,110,100,95,71,101,111,114,0,117,110,100,95,71,108,97,103,0,117,110,100,95,71,111,110,103,0,117,110,100,95,71,111,110,109,0,117,110,100,95,71,111,116,104,0,117,110,100,95,71,114,97,110,0,117,110,100,95,71,114,101,107,0,117,110,100,95,71,114,101,107,95,84,82,0,117,110,100,95,71,117,106,114,0,117,110,100,95,71,117,114,117,0,117,110,100,95,72,75,0,117,110,100,95,72,77,0,117,110,100,95,72,78,0,117,110,100,95,72,82,0,117,110,100,95,72,84,0,117,110,100,95,72,85,0,117,110,100,95,72,97,110,98,0,117,110,100,95,72,97,110,103,0,117,110,100,95,72,97,110,105,0,117,110,100,95,72,97,110,111,0,117,110,100,95,72,97,110,115,0,117,110,100,95,72,97,110,116,0,117,110,100,95,72,97,110,116,95,67,65,0,117,110,100,95,72,101,98,114,0,117,110,100,95,72,101,98,114,95,83,69,0,117,110,100,95,72,101,98,114,95,85,65,0,117,110,100,95,72,101,98,114,95,85,83,0,117,110,100,95,72,105,114,97,0,117,110,100,95,72,108,117,119,0,117,110,100,95,72,109,110,103,0,117,110,100,95,72,109,110,112,0,117,110,100,95,72,117,110,103,0,117,110,100,95,73,67,0,117,110,100,95,73,68,0,117,110,100,95,73,76,0,117,110,100,95,73,78,0,117,110,100,95,73,81,0,117,110,100,95,73,82,0,117,110,100,95,73,83,0,117,110,100,95,73,84,0,117,110,100,95,73,116,97,108,0,117,110,100,95,74,79,0,117,110,100,95,74,80,0,117,110,100,95,74,97,109,111,0,117,110,100,95,74,97,118,97,0,117,110,100,95,74,112,97,110,0,117,110,100,95,75,69,0,117,110,100,95,75,71,0,117,110,100,95,75,72,0,117,110,100,95,75,77,0,117,110,100,95,75,80,0,117,110,100,95,75,82,0,117,110,100,95,75,87,0,117,110,100,95,75,90,0,117,110,100,95,75,97,108,105,0,117,110,100,95,75,97,110,97,0,117,110,100,95,75,97,119,105,0,117,110,100,95,75,104,97,114,0,117,110,100,95,75,104,109,114,0,117,110,100,95,75,104,111,106,0,117,110,100,95,75,105,116,115,0,117,110,100,95,75,110,100,97,0,117,110,100,95,75,111,114,101,0,117,110,100,95,75,116,104,105,0,117,110,100,95,76,65,0,117,110,100,95,76,66,0,117,110,100,95,76,73,0,117,110,100,95,76,75,0,117,110,100,95,76,83,0,117,110,100,95,76,84,0,117,110,100,95,76,85,0,117,110,100,95,76,86,0,117,110,100,95,76,89,0,117,110,100,95,76,97,110,97,0,117,110,100,95,76,97,111,111,0,117,110,100,95,76,97,116,110,95,65,70,0,117,110,100,95,76,97,116,110,95,65,77,0,117,110,100,95,76,97,116,110,95,67,78,0,117,110,100,95,76,97,116,110,95,67,89,0,117,110,100,95,76,97,116,110,95,68,90,0,117,110,100,95,76,97,116,110,95,69,84,0,117,110,100,95,76,97,116,110,95,71,69,0,117,110,100,95,76,97,116,110,95,73,82,0,117,110,100,95,76,97,116,110,95,75,77,0,117,110,100,95,76,97,116,110,95,77,65,0,117,110,100,95,76,97,116,110,95,77,75,0,117,110,100,95,76,97,116,110,95,77,77,0,117,110,100,95,76,97,116,110,95,77,79,0,117,110,100,95,76,97,116,110,95,77,82,0,117,110,100,95,76,97,116,110,95,82,85,0,117,110,100,95,76,97,116,110,95,83,89,0,117,110,100,95,76,97,116,110,95,84,78,0,117,110,100,95,76,97,116,110,95,84,87,0,117,110,100,95,76,97,116,110,95,85,65,0,117,110,100,95,76,101,112,99,0,117,110,100,95,76,105,109,98,0,117,110,100,95,76,105,110,97,0,117,110,100,95,76,105,110,98,0,117,110,100,95,76,105,115,117,0,117,110,100,95,76,121,99,105,0,117,110,100,95,76,121,100,105,0,117,110,100,95,77,65,0,117,110,100,95,77,67,0,117,110,100,95,77,68,0,117,110,100,95,77,69,0,117,110,100,95,77,70,0,117,110,100,95,77,71,0,117,110,100,95,77,75,0,117,110,100,95,77,76,0,117,110,100,95,77,77,0,117,110,100,95,77,78,0,117,110,100,95,77,79,0,117,110,100,95,77,81,0,117,110,100,95,77,82,0,117,110,100,95,77,84,0,117,110,100,95,77,85,0,117,110,100,95,77,86,0,117,110,100,95,77,88,0,117,110,100,95,77,89,0,117,110,100,95,77,90,0,117,110,100,95,77,97,104,106,0,117,110,100,95,77,97,107,97,0,117,110,100,95,77,97,110,100,0,117,110,100,95,77,97,110,105,0,117,110,100,95,77,97,114,99,0,117,110,100,95,77,101,100,102,0,117,110,100,95,77,101,110,100,0,117,110,100,95,77,101,114,99,0,117,110,100,95,77,101,114,111,0,117,110,100,95,77,108,121,109,0,117,110,100,95,77,111,100,105,0,117,110,100,95,77,111,110,103,0,117,110,100,95,77,114,111,111,0,117,110,100,95,77,116,101,105,0,117,110,100,95,77,117,108,116,0,117,110,100,95,77,121,109,114,0,117,110,100,95,77,121,109,114,95,73,78,0,117,110,100,95,77,121,109,114,95,84,72,0,117,110,100,95,78,65,0,117,110,100,95,78,67,0,117,110,100,95,78,69,0,117,110,100,95,78,73,0,117,110,100,95,78,76,0,117,110,100,95,78,79,0,117,110,100,95,78,80,0,117,110,100,95,78,97,103,109,0,117,110,100,95,78,97,110,100,0,117,110,100,95,78,97,114,98,0,117,110,100,95,78,98,97,116,0,117,110,100,95,78,101,119,97,0,117,110,100,95,78,107,111,111,0,117,110,100,95,78,115,104,117,0,117,110,100,95,79,77,0,117,110,100,95,79,103,97,109,0,117,110,100,95,79,108,99,107,0,117,110,100,95,79,114,107,104,0,117,110,100,95,79,114,121,97,0,117,110,100,95,79,115,103,101,0,117,110,100,95,79,115,109,97,0,117,110,100,95,79,117,103,114,0,117,110,100,95,80,65,0,117,110,100,95,80,69,0,117,110,100,95,80,70,0,117,110,100,95,80,71,0,117,110,100,95,80,72,0,117,110,100,95,80,75,0,117,110,100,95,80,76,0,117,110,100,95,80,77,0,117,110,100,95,80,82,0,117,110,100,95,80,83,0,117,110,100,95,80,84,0,117,110,100,95,80,87,0,117,110,100,95,80,89,0,117,110,100,95,80,97,108,109,0,117,110,100,95,80,97,117,99,0,117,110,100,95,80,101,114,109,0,117,110,100,95,80,104,97,103,0,117,110,100,95,80,104,108,105,0,117,110,100,95,80,104,108,112,0,117,110,100,95,80,104,110,120,0,117,110,100,95,80,108,114,100,0,117,110,100,95,80,114,116,105,0,117,110,100,95,81,65,0,117,110,100,95,81,79,0,117,110,100,95,82,69,0,117,110,100,95,82,79,0,117,110,100,95,82,83,0,117,110,100,95,82,85,0,117,110,100,95,82,87,0,117,110,100,95,82,106,110,103,0,117,110,100,95,82,111,104,103,0,117,110,100,95,82,117,110,114,0,117,110,100,95,83,65,0,117,110,100,95,83,67,0,117,110,100,95,83,68,0,117,110,100,95,83,69,0,117,110,100,95,83,73,0,117,110,100,95,83,74,0,117,110,100,95,83,75,0,117,110,100,95,83,77,0,117,110,100,95,83,78,0,117,110,100,95,83,79,0,117,110,100,95,83,82,0,117,110,100,95,83,84,0,117,110,100,95,83,86,0,117,110,100,95,83,89,0,117,110,100,95,83,97,109,114,0,117,110,100,95,83,97,114,98,0,117,110,100,95,83,97,117,114,0,117,110,100,95,83,103,110,119,0,117,110,100,95,83,104,97,119,0,117,110,100,95,83,104,114,100,0,117,110,100,95,83,105,100,100,0,117,110,100,95,83,105,110,100,0,117,110,100,95,83,105,110,104,0,117,110,100,95,83,111,103,100,0,117,110,100,95,83,111,103,111,0,117,110,100,95,83,111,114,97,0,117,110,100,95,83,111,121,111,0,117,110,100,95,83,117,110,100,0,117,110,100,95,83,121,108,111,0,117,110,100,95,83,121,114,99,0,117,110,100,95,84,68,0,117,110,100,95,84,70,0,117,110,100,95,84,71,0,117,110,100,95,84,72,0,117,110,100,95,84,74,0,117,110,100,95,84,75,0,117,110,100,95,84,76,0,117,110,100,95,84,77,0,117,110,100,95,84,78,0,117,110,100,95,84,79,0,117,110,100,95,84,82,0,117,110,100,95,84,86,0,117,110,100,95,84,87,0,117,110,100,95,84,90,0,117,110,100,95,84,97,103,98,0,117,110,100,95,84,97,107,114,0,117,110,100,95,84,97,108,101,0,117,110,100,95,84,97,108,117,0,117,110,100,95,84,97,109,108,0,117,110,100,95,84,97,110,103,0,117,110,100,95,84,97,118,116,0,117,110,100,95,84,101,108,117,0,117,110,100,95,84,102,110,103,0,117,110,100,95,84,103,108,103,0,117,110,100,95,84,104,97,97,0,117,110,100,95,84,104,97,105,0,117,110,100,95,84,104,97,105,95,67,78,0,117,110,100,95,84,104,97,105,95,75,72,0,117,110,100,95,84,104,97,105,95,76,65,0,117,110,100,95,84,105,98,116,0,117,110,100,95,84,105,114,104,0,117,110,100,95,84,110,115,97,0,117,110,100,95,84,111,116,111,0,117,110,100,95,85,65,0,117,110,100,95,85,71,0,117,110,100,95,85,89,0,117,110,100,95,85,90,0,117,110,100,95,85,103,97,114,0,117,110,100,95,86,65,0,117,110,100,95,86,69,0,117,110,100,95,86,78,0,117,110,100,95,86,85,0,117,110,100,95,86,97,105,105,0,117,110,100,95,86,105,116,104,0,117,110,100,95,87,70,0,117,110,100,95,87,83,0,117,110,100,95,87,97,114,97,0,117,110,100,95,87,99,104,111,0,117,110,100,95,88,75,0,117,110,100,95,88,112,101,111,0,117,110,100,95,88,115,117,120,0,117,110,100,95,89,69,0,117,110,100,95,89,84,0,117,110,100,95,89,101,122,105,0,117,110,100,95,89,105,105,105,0,117,110,100,95,90,87,0,117,110,100,95,90,97,110,98,0,117,110,114,95,68,101,118,97,0,117,110,114,95,78,80,0,117,110,120,0,117,111,107,0,117,114,105,0,117,114,116,0,117,114,119,0,117,115,97,0,117,116,104,0,117,116,114,0,117,118,104,0,117,118,108,0,117,122,95,65,70,0,117,122,95,65,114,97,98,0,117,122,95,67,78,0,118,97,103,0,118,97,105,0,118,97,110,0,118,101,0,118,101,99,0,118,101,112,0,118,105,0,118,105,99,0,118,105,118,0,118,108,115,0,118,109,102,0,118,109,119,0,118,111,0,118,111,116,0,118,114,111,0,118,117,110,0,118,117,116,0,119,97,101,0,119,97,106,0,119,97,108,0,119,97,110,0,119,97,114,0,119,98,112,0,119,98,113,0,119,98,114,0,119,99,105,0,119,101,114,0,119,103,105,0,119,104,103,0,119,105,98,0,119,105,117,0,119,105,118,0,119,106,97,0,119,106,105,0,119,108,115,0,119,109,111,0,119,110,99,0,119,110,105,0,119,110,117,0,119,111,98,0,119,111,115,0,119,114,115,0,119,115,103,0,119,115,107,0,119,116,109,0,119,117,117,0,119,117,118,0,119,119,97,0,120,97,118,0,120,98,105,0,120,99,111,0,120,99,114,0,120,101,115,0,120,108,97,0,120,108,99,0,120,108,100,0,120,109,102,0,120,109,110,0,120,109,114,0,120,110,97,0,120,110,114,0,120,111,103,0,120,111,110,0,120,112,114,0,120,114,98,0,120,115,97,0,120,115,105,0,120,115,109,0,120,115,114,0,120,119,101,0,121,97,109,0,121,97,111,0,121,97,112,0,121,97,115,0,121,97,116,0,121,97,118,0,121,97,121,0,121,97,122,0,121,98,97,0,121,98,98,0,121,98,121,0,121,101,114,0,121,103,114,0,121,103,119,0,121,107,111,0,121,108,101,0,121,108,103,0,121,108,108,0,121,109,108,0,121,111,110,0,121,114,98,0,121,114,101,0,121,115,115,0,121,117,97,0,121,117,101,0,121,117,101,95,67,78,0,121,117,101,95,72,97,110,115,0,121,117,106,0,121,117,116,0,121,117,119,0,122,97,103,0,122,100,106,0,122,101,97,0,122,103,104,0,122,104,95,65,85,0,122,104,95,66,78,0,122,104,95,66,111,112,111,0,122,104,95,71,66,0,122,104,95,71,70,0,122,104,95,72,75,0,122,104,95,72,97,110,98,0,122,104,95,72,97,110,116,0,122,104,95,73,68,0,122,104,95,77,79,0,122,104,95,80,65,0,122,104,95,80,70,0,122,104,95,80,72,0,122,104,95,83,82,0,122,104,95,84,72,0,122,104,95,84,87,0,122,104,95,85,83,0,122,104,95,86,78,0,122,104,120,0,122,105,97,0,122,107,116,0,122,108,109,0,122,109,105,0,122,110,101,0,122,117,0,122,122,97,0,170,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,114,0,117,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,69,0,71,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,87,0,0,0,97,0,109,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,98,0,110,0,95,0,66,0,101,0,110,0,103,0,95,0,66,0,68,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,100,0,118,0,95,0,84,0,104,0,97,0,97,0,95,0,77,0,86,0,0,0,101,0,108,0,95,0,71,0,114,0,101,0,107,0,95,0,71,0,82,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,104,0,101,0,95,0,72,0,101,0,98,0,114,0,95,0,73,0,76,0,0,0,104,0,121,0,95,0,65,0,114,0,109,0,110,0,95,0,65,0,77,0,0,0,105,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,106,0,97,0,95,0,74,0,112,0,97,0,110,0,95,0,74,0,80,0,0,0,107,0,97,0,95,0,71,0,101,0,111,0,114,0,95,0,71,0,69,0,0,0,107,0,109,0,95,0,75,0,104,0,109,0,114,0,95,0,75,0,72,0,0,0,107,0,111,0,95,0,75,0,111,0,114,0,101,0,95,0,75,0,82,0,0,0,108,0,111,0,95,0,76,0,97,0,111,0,111,0,95,0,76,0,65,0,0,0,109,0,110,0,95,0,77,0,111,0,110,0,103,0,95,0,67,0,78,0,0,0,109,0,121,0,95,0,77,0,121,0,109,0,114,0,95,0,77,0,77,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,115,0,105,0,95,0,83,0,105,0,110,0,104,0,95,0,76,0,75,0,0,0,115,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,83,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,116,0,104,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,90,0,0,0,97,0,98,0,95,0,67,0,121,0,114,0,108,0,95,0,71,0,69,0,0,0,97,0,101,0,95,0,65,0,118,0,115,0,116,0,95,0,73,0,82,0,0,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,65,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,98,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,89,0,0,0,98,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,71,0,0,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,85,0,0,0,98,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,98,0,111,0,95,0,84,0,105,0,98,0,116,0,95,0,67,0,78,0,0,0,98,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,65,0,0,0,99,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,90,0,0,0,99,0,117,0,95,0,71,0,108,0,97,0,103,0,95,0,66,0,71,0,0,0,100,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,75,0,0,0,100,0,122,0,95,0,84,0,105,0,98,0,116,0,95,0,66,0,84,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,85,0,0,0,101,0,110,0,95,0,83,0,104,0,97,0,119,0,95,0,71,0,66,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,85,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,69,0,0,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,102,0,102,0,95,0,65,0,100,0,108,0,109,0,95,0,71,0,78,0,0,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,102,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,79,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,103,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,89,0,0,0,103,0,117,0,95,0,71,0,117,0,106,0,114,0,95,0,73,0,78,0,0,0,104,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,82,0,0,0,104,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,84,0,0,0,104,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,85,0,0,0,105,0,105,0,95,0,89,0,105,0,105,0,105,0,95,0,67,0,78,0,0,0,105,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,83,0,0,0,105,0,117,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,78,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,78,0,0,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,76,0,0,0,107,0,110,0,95,0,75,0,110,0,100,0,97,0,95,0,73,0,78,0,0,0,107,0,117,0,95,0,89,0,101,0,122,0,105,0,95,0,71,0,69,0,0,0,107,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,78,0,0,0,107,0,121,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,71,0,0,0,107,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,108,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,84,0,0,0,108,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,86,0,0,0,109,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,71,0,0,0,109,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,75,0,0,0,109,0,108,0,95,0,77,0,108,0,121,0,109,0,95,0,73,0,78,0,0,0,109,0,110,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,78,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,67,0,0,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,109,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,84,0,0,0,110,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,111,0,114,0,95,0,79,0,114,0,121,0,97,0,95,0,73,0,78,0,0,0,112,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,95,0,73,0,78,0,0,0,112,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,114,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,73,0,0,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,79,0,0,0,114,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,87,0,0,0,115,0,100,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,100,0,95,0,75,0,104,0,111,0,106,0,95,0,73,0,78,0,0,0,115,0,100,0,95,0,83,0,105,0,110,0,100,0,95,0,73,0,78,0,0,0,115,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,75,0,0,0,115,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,73,0,0,0,115,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,115,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,79,0,0,0,115,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,76,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,83,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,69,0,0,0,115,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,116,0,97,0,95,0,84,0,97,0,109,0,108,0,95,0,73,0,78,0,0,0,116,0,101,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,116,0,103,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,116,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,84,0,74,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,77,0,0,0,116,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,79,0,0,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,117,0,103,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,78,0,0,0,117,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,90,0,0,0,117,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,65,0,0,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,118,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,78,0,0,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,78,0,0,0,122,0,104,0,95,0,66,0,111,0,112,0,111,0,95,0,84,0,87,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,98,0,95,0,84,0,87,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,77,0,79,0,0,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,74,0,0,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,69,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,66,0,72,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,68,0,90,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,69,0,72,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,74,0,79,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,77,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,87,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,76,0,66,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,76,0,89,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,65,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,82,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,79,0,77,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,83,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,81,0,65,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,89,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,78,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,89,0,69,0,0,0,97,0,115,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,97,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,79,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,82,0,0,0,97,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,98,0,97,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,98,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,79,0,0,0,98,0,111,0,95,0,77,0,97,0,114,0,99,0,95,0,67,0,78,0,0,0,98,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,68,0,0,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,99,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,85,0,0,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,99,0,114,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,99,0,117,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,84,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,90,0,0,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,73,0,0,0,100,0,118,0,95,0,68,0,105,0,97,0,107,0,95,0,77,0,86,0,0,0,101,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,101,0,108,0,95,0,71,0,114,0,101,0,107,0,95,0,67,0,89,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,71,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,85,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,69,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,71,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,82,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,79,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,76,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,79,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,82,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,79,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,65,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,67,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,81,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,84,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,78,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,67,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,73,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,65,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,69,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,82,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,86,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,89,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,69,0,0,0,101,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,74,0,0,0,102,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,102,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,74,0,0,0,102,0,114,0,95,0,66,0,114,0,97,0,105,0,95,0,70,0,82,0,0,0,102,0,114,0,95,0,68,0,117,0,112,0,108,0,95,0,70,0,82,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,74,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,76,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,71,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,90,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,65,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,78,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,80,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,77,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,85,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,65,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,67,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,81,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,82,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,67,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,77,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,69,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,67,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,89,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,68,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,78,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,70,0,0,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,89,0,84,0,0,0,102,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,103,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,69,0,0,0,103,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,103,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,77,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,77,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,78,0,71,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,104,0,105,0,95,0,77,0,97,0,104,0,106,0,95,0,73,0,78,0,0,0,104,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,71,0,0,0,104,0,117,0,95,0,72,0,117,0,110,0,103,0,95,0,72,0,85,0,0,0,104,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,105,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,77,0,0,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,65,0,0,0,105,0,119,0,95,0,72,0,101,0,98,0,114,0,95,0,73,0,76,0,0,0,106,0,97,0,95,0,72,0,105,0,114,0,97,0,95,0,74,0,80,0,0,0,106,0,97,0,95,0,75,0,97,0,110,0,97,0,95,0,74,0,80,0,0,0,106,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,85,0,65,0,0,0,106,0,118,0,95,0,74,0,97,0,118,0,97,0,95,0,73,0,68,0,0,0,106,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,106,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,107,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,107,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,107,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,107,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,90,0,0,0,107,0,111,0,95,0,72,0,97,0,110,0,103,0,95,0,75,0,82,0,0,0,107,0,111,0,95,0,74,0,97,0,109,0,111,0,95,0,75,0,82,0,0,0,107,0,111,0,95,0,75,0,111,0,114,0,101,0,95,0,75,0,80,0,0,0,107,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,107,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,107,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,76,0,66,0,0,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,77,0,0,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,69,0,0,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,107,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,118,0,95,0,80,0,101,0,114,0,109,0,95,0,82,0,85,0,0,0,107,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,86,0,65,0,0,0,108,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,85,0,0,0,108,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,108,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,72,0,0,0,109,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,90,0,0,0,109,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,65,0,76,0,0,0,109,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,71,0,82,0,0,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,79,0,0,0,109,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,114,0,95,0,77,0,111,0,100,0,105,0,95,0,73,0,78,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,68,0,0,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,78,0,0,0,110,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,82,0,0,0,110,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,74,0,0,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,66,0,84,0,0,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,87,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,69,0,0,0,110,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,82,0,0,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,110,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,110,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,110,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,110,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,87,0,0,0,111,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,111,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,111,0,106,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,111,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,111,0,115,0,95,0,67,0,121,0,114,0,108,0,95,0,71,0,69,0,0,0,112,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,65,0,0,0,112,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,86,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,87,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,79,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,84,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,84,0,0,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,76,0,0,0,113,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,69,0,0,0,114,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,68,0,0,0,114,0,117,0,95,0,67,0,121,0,114,0,108,0,95,0,75,0,90,0,0,0,115,0,97,0,95,0,66,0,104,0,107,0,115,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,71,0,114,0,97,0,110,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,78,0,97,0,110,0,100,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,83,0,104,0,114,0,100,0,95,0,73,0,78,0,0,0,115,0,97,0,95,0,83,0,105,0,100,0,100,0,95,0,73,0,78,0,0,0,115,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,115,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,79,0,0,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,70,0,0,0,115,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,83,0,0,0,115,0,111,0,95,0,79,0,115,0,109,0,97,0,95,0,83,0,79,0,0,0,115,0,113,0,95,0,69,0,108,0,98,0,97,0,95,0,65,0,76,0,0,0,115,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,75,0,0,0,115,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,88,0,75,0,0,0,115,0,113,0,95,0,86,0,105,0,116,0,104,0,95,0,65,0,76,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,65,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,88,0,75,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,79,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,115,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,83,0,0,0,115,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,117,0,95,0,83,0,117,0,110,0,100,0,95,0,73,0,68,0,0,0,115,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,88,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,116,0,105,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,82,0,0,0,116,0,105,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,70,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,82,0,0,0,116,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,116,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,89,0,0,0,116,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,116,0,116,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,116,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,70,0,0,0,117,0,103,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,78,0,0,0,117,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,77,0,68,0,0,0,117,0,107,0,95,0,67,0,121,0,114,0,108,0,95,0,83,0,75,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,71,0,66,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,85,0,0,0,117,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,67,0,78,0,0,0,118,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,119,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,69,0,0,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,120,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,83,0,69,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,85,0,65,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,85,0,83,0,0,0,121,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,105,0,95,0,67,0,78,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,65,0,85,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,66,0,78,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,71,0,66,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,71,0,70,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,73,0,68,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,80,0,65,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,80,0,70,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,80,0,72,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,83,0,82,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,72,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,85,0,83,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,86,0,78,0,0,0,122,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,108,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,98,0,104,0,105,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,97,0,110,0,95,0,78,0,107,0,111,0,111,0,95,0,71,0,78,0,0,0,97,0,104,0,111,0,95,0,65,0,104,0,111,0,109,0,95,0,73,0,78,0,0,0,97,0,107,0,107,0,95,0,88,0,115,0,117,0,120,0,95,0,73,0,81,0,0,0,97,0,112,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,71,0,0,0,97,0,114,0,99,0,95,0,65,0,114,0,109,0,105,0,95,0,73,0,82,0,0,0,97,0,114,0,99,0,95,0,78,0,98,0,97,0,116,0,95,0,74,0,79,0,0,0,97,0,114,0,99,0,95,0,80,0,97,0,108,0,109,0,95,0,83,0,89,0,0,0,97,0,115,0,101,0,95,0,83,0,103,0,110,0,119,0,95,0,85,0,83,0,0,0,98,0,97,0,120,0,95,0,66,0,97,0,109,0,117,0,95,0,67,0,77,0,0,0,98,0,103,0,120,0,95,0,71,0,114,0,101,0,107,0,95,0,84,0,82,0,0,0,98,0,108,0,116,0,95,0,84,0,97,0,118,0,116,0,95,0,86,0,78,0,0,0,98,0,115,0,113,0,95,0,66,0,97,0,115,0,115,0,95,0,76,0,82,0,0,0,98,0,116,0,118,0,95,0,68,0,101,0,118,0,97,0,95,0,80,0,75,0,0,0,99,0,99,0,112,0,95,0,67,0,97,0,107,0,109,0,95,0,66,0,68,0,0,0,99,0,104,0,114,0,95,0,67,0,104,0,101,0,114,0,95,0,85,0,83,0,0,0,99,0,106,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,72,0,0,0,99,0,106,0,109,0,95,0,67,0,104,0,97,0,109,0,95,0,86,0,78,0,0,0,99,0,109,0,103,0,95,0,83,0,111,0,121,0,111,0,95,0,77,0,78,0,0,0,99,0,111,0,112,0,95,0,67,0,111,0,112,0,116,0,95,0,69,0,71,0,0,0,99,0,116,0,100,0,95,0,80,0,97,0,117,0,99,0,95,0,77,0,77,0,0,0,100,0,109,0,102,0,95,0,77,0,101,0,100,0,102,0,95,0,78,0,71,0,0,0,101,0,103,0,121,0,95,0,69,0,103,0,121,0,112,0,95,0,69,0,71,0,0,0,101,0,107,0,121,0,95,0,75,0,97,0,108,0,105,0,95,0,77,0,77,0,0,0,101,0,115,0,103,0,95,0,71,0,111,0,110,0,109,0,95,0,73,0,78,0,0,0,101,0,116,0,116,0,95,0,73,0,116,0,97,0,108,0,95,0,73,0,84,0,0,0,102,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,103,0,111,0,116,0,95,0,71,0,111,0,116,0,104,0,95,0,85,0,65,0,0,0,103,0,114,0,99,0,95,0,67,0,112,0,114,0,116,0,95,0,67,0,89,0,0,0,103,0,114,0,99,0,95,0,76,0,105,0,110,0,98,0,95,0,71,0,82,0,0,0,104,0,108,0,117,0,95,0,72,0,108,0,117,0,119,0,95,0,84,0,82,0,0,0,104,0,109,0,100,0,95,0,80,0,108,0,114,0,100,0,95,0,67,0,78,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,112,0,95,0,85,0,83,0,0,0,107,0,97,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,77,0,0,0,107,0,97,0,119,0,95,0,75,0,97,0,119,0,105,0,95,0,73,0,68,0,0,0,107,0,104,0,98,0,95,0,84,0,97,0,108,0,117,0,95,0,67,0,78,0,0,0,107,0,104,0,116,0,95,0,77,0,121,0,109,0,114,0,95,0,73,0,78,0,0,0,107,0,114,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,108,0,97,0,98,0,95,0,76,0,105,0,110,0,97,0,95,0,71,0,82,0,0,0,108,0,99,0,112,0,95,0,84,0,104,0,97,0,105,0,95,0,67,0,78,0,0,0,108,0,101,0,112,0,95,0,76,0,101,0,112,0,99,0,95,0,73,0,78,0,0,0,108,0,105,0,102,0,95,0,76,0,105,0,109,0,98,0,95,0,73,0,78,0,0,0,108,0,105,0,115,0,95,0,76,0,105,0,115,0,117,0,95,0,67,0,78,0,0,0,109,0,102,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,72,0,0,0,109,0,102,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,85,0,0,0,109,0,114,0,111,0,95,0,77,0,114,0,111,0,111,0,95,0,66,0,68,0,0,0,109,0,121,0,122,0,95,0,77,0,97,0,110,0,100,0,95,0,73,0,82,0,0,0,110,0,110,0,112,0,95,0,87,0,99,0,104,0,111,0,95,0,73,0,78,0,0,0,110,0,111,0,100,0,95,0,76,0,97,0,110,0,97,0,95,0,84,0,72,0,0,0,110,0,111,0,110,0,95,0,82,0,117,0,110,0,114,0,95,0,83,0,69,0,0,0,110,0,115,0,116,0,95,0,84,0,110,0,115,0,97,0,95,0,73,0,78,0,0,0,111,0,115,0,97,0,95,0,79,0,115,0,103,0,101,0,95,0,85,0,83,0,0,0,111,0,116,0,107,0,95,0,79,0,114,0,107,0,104,0,95,0,77,0,78,0,0,0,112,0,97,0,108,0,95,0,80,0,104,0,108,0,105,0,95,0,73,0,82,0,0,0,112,0,97,0,108,0,95,0,80,0,104,0,108,0,112,0,95,0,67,0,78,0,0,0,112,0,97,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,87,0,0,0,112,0,101,0,111,0,95,0,88,0,112,0,101,0,111,0,95,0,73,0,82,0,0,0,112,0,104,0,110,0,95,0,80,0,104,0,110,0,120,0,95,0,76,0,66,0,0,0,112,0,107,0,97,0,95,0,66,0,114,0,97,0,104,0,95,0,73,0,78,0,0,0,112,0,114,0,97,0,95,0,75,0,104,0,97,0,114,0,95,0,80,0,75,0,0,0,114,0,104,0,103,0,95,0,82,0,111,0,104,0,103,0,95,0,77,0,77,0,0,0,115,0,97,0,116,0,95,0,79,0,108,0,99,0,107,0,95,0,73,0,78,0,0,0,115,0,97,0,122,0,95,0,83,0,97,0,117,0,114,0,95,0,73,0,78,0,0,0,115,0,103,0,97,0,95,0,79,0,103,0,97,0,109,0,95,0,73,0,69,0,0,0,115,0,109,0,112,0,95,0,83,0,97,0,109,0,114,0,95,0,73,0,76,0,0,0,115,0,111,0,103,0,95,0,83,0,111,0,103,0,100,0,95,0,85,0,90,0,0,0,115,0,114,0,98,0,95,0,83,0,111,0,114,0,97,0,95,0,73,0,78,0,0,0,115,0,119,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,89,0,84,0,0,0,115,0,121,0,114,0,95,0,83,0,121,0,114,0,99,0,95,0,73,0,81,0,0,0,116,0,100,0,100,0,95,0,84,0,97,0,108,0,101,0,95,0,67,0,78,0,0,0,116,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,75,0,0,0,116,0,112,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,71,0,0,0,116,0,114,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,87,0,0,0,116,0,118,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,86,0,0,0,116,0,120,0,103,0,95,0,84,0,97,0,110,0,103,0,95,0,67,0,78,0,0,0,116,0,120,0,111,0,95,0,84,0,111,0,116,0,111,0,95,0,73,0,78,0,0,0,117,0,100,0,105,0,95,0,65,0,103,0,104,0,98,0,95,0,82,0,85,0,0,0,117,0,103,0,97,0,95,0,85,0,103,0,97,0,114,0,95,0,83,0,89,0,0,0,117,0,110,0,100,0,95,0,67,0,112,0,109,0,110,0,95,0,67,0,89,0,0,0,117,0,110,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,118,0,97,0,105,0,95,0,86,0,97,0,105,0,105,0,95,0,76,0,82,0,0,0,119,0,115,0,103,0,95,0,71,0,111,0,110,0,103,0,95,0,73,0,78,0,0,0,120,0,99,0,111,0,95,0,67,0,104,0,114,0,115,0,95,0,85,0,90,0,0,0,120,0,99,0,114,0,95,0,67,0,97,0,114,0,105,0,95,0,84,0,82,0,0,0,120,0,108,0,99,0,95,0,76,0,121,0,99,0,105,0,95,0,84,0,82,0,0,0,120,0,108,0,100,0,95,0,76,0,121,0,100,0,105,0,95,0,84,0,82,0,0,0,120,0,109,0,110,0,95,0,77,0,97,0,110,0,105,0,95,0,67,0,78,0,0,0,120,0,109,0,114,0,95,0,77,0,101,0,114,0,99,0,95,0,83,0,68,0,0,0,120,0,110,0,97,0,95,0,78,0,97,0,114,0,98,0,95,0,83,0,65,0,0,0,120,0,112,0,114,0,95,0,80,0,114,0,116,0,105,0,95,0,73,0,82,0,0,0,120,0,115,0,97,0,95,0,83,0,97,0,114,0,98,0,95,0,89,0,69,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,122,0,103,0,104,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,122,0,104,0,120,0,95,0,78,0,115,0,104,0,117,0,95,0,67,0,78,0,0,0,122,0,107,0,116,0,95,0,75,0,105,0,116,0,115,0,95,0,67,0,78,0,0,0,109,0,105,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,111,0,107,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,97,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,98,0,113,0,95,0,67,0,121,0,114,0,108,0,95,0,90,0,90,0,0,0,97,0,98,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,97,0,98,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,99,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,99,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,97,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,97,0,100,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,97,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,100,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,100,0,112,0,95,0,84,0,105,0,98,0,116,0,95,0,66,0,84,0,0,0,97,0,100,0,121,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,100,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,101,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,78,0,0,0,97,0,101,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,103,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,97,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,104,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,106,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,106,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,84,0,78,0,0,0,97,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,88,0,75,0,0,0,97,0,108,0,116,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,97,0,109,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,109,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,97,0,109,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,110,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,110,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,97,0,110,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,111,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,111,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,111,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,97,0,112,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,97,0,112,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,112,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,112,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,114,0,99,0,95,0,69,0,108,0,121,0,109,0,95,0,73,0,82,0,0,0,97,0,114,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,114,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,76,0,0,0,97,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,79,0,0,0,97,0,114,0,113,0,95,0,65,0,114,0,97,0,98,0,95,0,68,0,90,0,0,0,97,0,114,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,65,0,0,0,97,0,114,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,65,0,0,0,97,0,114,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,69,0,71,0,0,0,97,0,115,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,97,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,115,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,115,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,97,0,116,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,116,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,116,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,97,0,117,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,118,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,97,0,118,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,118,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,118,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,119,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,97,0,119,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,119,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,97,0,121,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,97,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,97,0,110,0,95,0,66,0,97,0,108,0,105,0,95,0,73,0,68,0,0,0,98,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,97,0,112,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,98,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,84,0,0,0,98,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,99,0,95,0,66,0,97,0,116,0,107,0,95,0,73,0,68,0,0,0,98,0,98,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,98,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,98,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,98,0,99,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,99,0,113,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,98,0,99,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,100,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,106,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,98,0,101,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,77,0,0,0,98,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,101,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,101,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,98,0,102,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,102,0,113,0,95,0,84,0,97,0,109,0,108,0,95,0,73,0,78,0,0,0,98,0,102,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,102,0,121,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,103,0,99,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,103,0,110,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,104,0,98,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,104,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,104,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,104,0,111,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,104,0,111,0,95,0,68,0,101,0,118,0,97,0,95,0,77,0,85,0,0,0,98,0,104,0,111,0,95,0,75,0,116,0,104,0,105,0,95,0,73,0,78,0,0,0,98,0,104,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,98,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,98,0,105,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,105,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,105,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,98,0,106,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,106,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,106,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,106,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,98,0,106,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,107,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,107,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,107,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,107,0,117,0,95,0,66,0,117,0,104,0,100,0,95,0,80,0,72,0,0,0,98,0,107,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,98,0,107,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,98,0,108,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,98,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,109,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,109,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,98,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,110,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,110,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,111,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,111,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,112,0,121,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,98,0,113,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,113,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,98,0,113,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,113,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,98,0,114,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,114,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,114,0,120,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,98,0,114,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,115,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,115,0,116,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,98,0,116,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,98,0,116,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,97,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,98,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,89,0,84,0,0,0,98,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,103,0,95,0,66,0,117,0,103,0,105,0,95,0,73,0,68,0,0,0,98,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,98,0,117,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,117,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,117,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,118,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,81,0,0,0,98,0,119,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,119,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,120,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,110,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,82,0,0,0,98,0,121,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,121,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,98,0,121,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,98,0,122,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,98,0,122,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,99,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,98,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,99,0,101,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,99,0,102,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,103,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,99,0,104,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,99,0,104,0,109,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,99,0,104,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,99,0,104,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,99,0,105,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,99,0,106,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,107,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,81,0,0,0,99,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,107,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,108,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,99,0,109,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,99,0,109,0,103,0,95,0,90,0,97,0,110,0,98,0,95,0,77,0,78,0,0,0,99,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,99,0,114,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,99,0,114,0,104,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,65,0,0,0,99,0,114,0,107,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,99,0,114,0,108,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,99,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,67,0,0,0,99,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,99,0,115,0,119,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,100,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,100,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,97,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,100,0,97,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,100,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,100,0,98,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,98,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,99,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,100,0,100,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,100,0,103,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,103,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,103,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,103,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,100,0,103,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,100,0,103,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,106,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,100,0,110,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,100,0,111,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,111,0,105,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,100,0,111,0,105,0,95,0,68,0,111,0,103,0,114,0,95,0,73,0,78,0,0,0,100,0,111,0,105,0,95,0,84,0,97,0,107,0,114,0,95,0,73,0,78,0,0,0,100,0,111,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,111,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,114,0,104,0,95,0,77,0,111,0,110,0,103,0,95,0,67,0,78,0,0,0,100,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,114,0,115,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,100,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,100,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,100,0,116,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,100,0,116,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,116,0,121,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,100,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,100,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,118,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,119,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,100,0,121,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,100,0,121,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,70,0,0,0,100,0,122,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,101,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,101,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,101,0,107,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,109,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,109,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,110,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,101,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,52,0,49,0,57,0,0,0,101,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,101,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,116,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,116,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,101,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,101,0,120,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,83,0,0,0,101,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,81,0,0,0,102,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,102,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,102,0,105,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,83,0,68,0,0,0,102,0,105,0,108,0,95,0,84,0,103,0,108,0,103,0,95,0,80,0,72,0,0,0,102,0,105,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,102,0,108,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,109,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,111,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,74,0,0,0,102,0,111,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,112,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,113,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,114,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,102,0,114,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,102,0,114,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,102,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,102,0,117,0,98,0,95,0,65,0,114,0,97,0,98,0,95,0,67,0,77,0,0,0,102,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,70,0,0,0,102,0,117,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,117,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,78,0,0,0,102,0,117,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,117,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,102,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,102,0,117,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,102,0,117,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,102,0,118,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,68,0,0,0,103,0,97,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,103,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,68,0,0,0,103,0,97,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,110,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,103,0,97,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,97,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,103,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,98,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,98,0,109,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,103,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,98,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,103,0,99,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,70,0,0,0,103,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,100,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,100,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,101,0,122,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,103,0,102,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,103,0,110,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,103,0,104,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,73,0,0,0,103,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,106,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,103,0,106,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,106,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,103,0,107,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,107,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,108,0,107,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,103,0,109,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,109,0,118,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,103,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,111,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,111,0,102,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,103,0,111,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,111,0,109,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,103,0,111,0,110,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,103,0,111,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,103,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,103,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,114,0,116,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,103,0,114,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,103,0,117,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,103,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,79,0,0,0,103,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,103,0,117,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,117,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,103,0,118,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,118,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,103,0,118,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,103,0,119,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,103,0,119,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,103,0,119,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,103,0,121,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,97,0,107,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,104,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,97,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,104,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,104,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,100,0,121,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,104,0,104,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,102,0,95,0,68,0,101,0,118,0,97,0,95,0,70,0,74,0,0,0,104,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,74,0,0,0,104,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,104,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,109,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,110,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,104,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,103,0,95,0,76,0,65,0,0,0,104,0,110,0,110,0,95,0,72,0,97,0,110,0,111,0,95,0,80,0,72,0,0,0,104,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,104,0,110,0,111,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,104,0,111,0,99,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,104,0,111,0,99,0,95,0,87,0,97,0,114,0,97,0,95,0,73,0,78,0,0,0,104,0,111,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,104,0,111,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,104,0,115,0,110,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,104,0,117,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,104,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,105,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,105,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,105,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,100,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,100,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,100,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,102,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,105,0,103,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,103,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,106,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,107,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,107,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,107,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,108,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,105,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,110,0,104,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,105,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,105,0,111,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,119,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,119,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,105,0,122,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,105,0,122,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,97,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,74,0,77,0,0,0,106,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,103,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,106,0,105,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,109,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,106,0,109,0,108,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,106,0,114,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,106,0,117,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,75,0,0,0,107,0,97,0,97,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,90,0,0,0,107,0,97,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,90,0,0,0,107,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,107,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,107,0,97,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,107,0,98,0,100,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,98,0,100,0,95,0,67,0,121,0,114,0,108,0,95,0,84,0,82,0,0,0,107,0,98,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,98,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,78,0,69,0,0,0,107,0,99,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,107,0,99,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,107,0,99,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,99,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,100,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,107,0,100,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,107,0,100,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,100,0,116,0,95,0,84,0,104,0,97,0,105,0,95,0,75,0,72,0,0,0,107,0,100,0,116,0,95,0,84,0,104,0,97,0,105,0,95,0,76,0,65,0,0,0,107,0,100,0,116,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,107,0,101,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,86,0,0,0,107,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,107,0,101,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,102,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,107,0,102,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,102,0,121,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,103,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,107,0,103,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,103,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,107,0,104,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,107,0,104,0,110,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,104,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,107,0,104,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,104,0,119,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,107,0,104,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,105,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,107,0,105,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,106,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,106,0,103,0,95,0,76,0,97,0,111,0,111,0,95,0,76,0,65,0,0,0,107,0,106,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,106,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,107,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,107,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,107,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,107,0,108,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,108,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,108,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,107,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,109,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,110,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,87,0,0,0,107,0,110,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,111,0,105,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,111,0,107,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,111,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,107,0,111,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,82,0,0,0,107,0,112,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,112,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,113,0,121,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,107,0,114,0,99,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,76,0,0,0,107,0,114,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,107,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,114,0,117,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,115,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,107,0,115,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,115,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,107,0,115,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,107,0,115,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,116,0,98,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,107,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,116,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,107,0,117,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,109,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,107,0,117,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,118,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,118,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,107,0,118,0,120,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,107,0,119,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,119,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,107,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,119,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,99,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,107,0,120,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,108,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,107,0,120,0,109,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,107,0,120,0,112,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,107,0,120,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,120,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,121,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,121,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,122,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,107,0,122,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,107,0,122,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,107,0,122,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,108,0,97,0,100,0,95,0,72,0,101,0,98,0,114,0,95,0,73,0,76,0,0,0,108,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,108,0,97,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,108,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,108,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,98,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,108,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,98,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,108,0,99,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,100,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,101,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,108,0,103,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,102,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,108,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,105,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,108,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,108,0,106,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,108,0,107,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,108,0,107,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,108,0,108,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,108,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,109,0,110,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,108,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,108,0,109,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,110,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,110,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,108,0,111,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,108,0,111,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,77,0,0,0,108,0,114,0,99,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,108,0,116,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,86,0,0,0,108,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,108,0,117,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,108,0,117,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,108,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,108,0,119,0,108,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,108,0,122,0,104,0,95,0,80,0,104,0,97,0,103,0,95,0,67,0,78,0,0,0,108,0,122,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,109,0,97,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,109,0,97,0,103,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,97,0,105,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,97,0,105,0,95,0,84,0,105,0,114,0,104,0,95,0,73,0,78,0,0,0,109,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,97,0,107,0,95,0,77,0,97,0,107,0,97,0,95,0,73,0,68,0,0,0,109,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,77,0,0,0,109,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,109,0,97,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,109,0,98,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,98,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,99,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,100,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,100,0,101,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,109,0,100,0,102,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,109,0,100,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,109,0,100,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,100,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,100,0,120,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,109,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,76,0,0,0,109,0,101,0,110,0,95,0,77,0,101,0,110,0,100,0,95,0,83,0,76,0,0,0,109,0,101,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,109,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,101,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,102,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,102,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,102,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,103,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,109,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,109,0,103,0,112,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,109,0,103,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,109,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,104,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,105,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,109,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,105,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,107,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,109,0,107,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,107,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,107,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,108,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,108,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,108,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,68,0,0,0,109,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,109,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,110,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,110,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,110,0,105,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,109,0,110,0,105,0,95,0,77,0,116,0,101,0,105,0,95,0,73,0,78,0,0,0,109,0,110,0,119,0,95,0,77,0,121,0,109,0,114,0,95,0,77,0,77,0,0,0,109,0,110,0,119,0,95,0,77,0,121,0,109,0,114,0,95,0,84,0,72,0,0,0,109,0,111,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,111,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,109,0,111,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,109,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,70,0,0,0,109,0,111,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,112,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,113,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,114,0,100,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,109,0,114,0,106,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,109,0,116,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,116,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,116,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,116,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,109,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,109,0,118,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,118,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,118,0,121,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,109,0,119,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,109,0,119,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,119,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,109,0,119,0,119,0,95,0,72,0,109,0,110,0,112,0,95,0,85,0,83,0,0,0,109,0,120,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,87,0,0,0,109,0,120,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,121,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,121,0,109,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,109,0,121,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,109,0,121,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,121,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,109,0,122,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,110,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,109,0,122,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,109,0,122,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,97,0,110,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,110,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,110,0,97,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,65,0,0,0,110,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,110,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,99,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,100,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,110,0,100,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,110,0,101,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,101,0,119,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,110,0,101,0,119,0,95,0,78,0,101,0,119,0,97,0,95,0,78,0,80,0,0,0,110,0,101,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,102,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,103,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,103,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,103,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,110,0,104,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,104,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,110,0,104,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,110,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,110,0,105,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,85,0,0,0,110,0,105,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,105,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,106,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,110,0,107,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,109,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,110,0,109,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,110,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,110,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,110,0,110,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,110,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,111,0,101,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,110,0,111,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,111,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,113,0,111,0,95,0,78,0,107,0,111,0,111,0,95,0,71,0,78,0,0,0,110,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,115,0,107,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,110,0,115,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,115,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,65,0,0,0,110,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,83,0,0,0,110,0,117,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,117,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,119,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,120,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,78,0,0,0,110,0,120,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,110,0,121,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,110,0,121,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,110,0,122,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,111,0,103,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,106,0,115,0,95,0,67,0,97,0,110,0,115,0,95,0,67,0,65,0,0,0,111,0,107,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,111,0,107,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,110,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,112,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,111,0,114,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,111,0,116,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,111,0,122,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,112,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,112,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,87,0,0,0,112,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,81,0,0,0,112,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,87,0,0,0,112,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,99,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,82,0,0,0,112,0,99,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,112,0,100,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,83,0,0,0,112,0,100,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,112,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,101,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,102,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,112,0,104,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,112,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,105,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,105,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,66,0,0,0,112,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,112,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,112,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,110,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,110,0,116,0,95,0,71,0,114,0,101,0,107,0,95,0,71,0,82,0,0,0,112,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,112,0,112,0,97,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,112,0,112,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,113,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,112,0,114,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,112,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,116,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,112,0,117,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,65,0,0,0,112,0,119,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,113,0,117,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,84,0,0,0,113,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,67,0,0,0,114,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,97,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,114,0,97,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,99,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,69,0,0,0,114,0,101,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,114,0,101,0,106,0,95,0,82,0,106,0,110,0,103,0,95,0,73,0,68,0,0,0,114,0,101,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,103,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,114,0,104,0,103,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,77,0,0,0,114,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,114,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,114,0,105,0,102,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,114,0,106,0,115,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,114,0,107,0,116,0,95,0,66,0,101,0,110,0,103,0,95,0,66,0,68,0,0,0,114,0,109,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,114,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,114,0,109,0,116,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,114,0,109,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,114,0,110,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,110,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,114,0,111,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,114,0,111,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,114,0,111,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,116,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,74,0,0,0,114,0,117,0,101,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,65,0,0,0,114,0,117,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,66,0,0,0,114,0,119,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,114,0,119,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,114,0,121,0,117,0,95,0,75,0,97,0,110,0,97,0,95,0,74,0,80,0,0,0,115,0,97,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,72,0,0,0,115,0,97,0,104,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,115,0,97,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,75,0,69,0,0,0,115,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,115,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,98,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,115,0,99,0,107,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,99,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,115,0,99,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,115,0,99,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,66,0,0,0,115,0,100,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,115,0,100,0,104,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,115,0,101,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,73,0,0,0,115,0,101,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,115,0,101,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,115,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,115,0,103,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,84,0,0,0,115,0,103,0,119,0,95,0,69,0,116,0,104,0,105,0,95,0,90,0,90,0,0,0,115,0,103,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,104,0,105,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,115,0,104,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,104,0,110,0,95,0,77,0,121,0,109,0,114,0,95,0,77,0,77,0,0,0,115,0,104,0,117,0,95,0,65,0,114,0,97,0,98,0,95,0,90,0,90,0,0,0,115,0,105,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,84,0,0,0,115,0,105,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,105,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,106,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,107,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,107,0,114,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,115,0,107,0,114,0,95,0,77,0,117,0,108,0,116,0,95,0,80,0,75,0,0,0,115,0,107,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,108,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,115,0,108,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,108,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,109,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,115,0,109,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,115,0,109,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,69,0,0,0,115,0,109,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,115,0,109,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,109,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,73,0,0,0,115,0,110,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,115,0,110,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,110,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,76,0,0,0,115,0,110,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,110,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,110,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,111,0,103,0,95,0,83,0,111,0,103,0,111,0,95,0,85,0,90,0,0,0,115,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,111,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,111,0,117,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,115,0,111,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,112,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,112,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,112,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,114,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,82,0,0,0,115,0,114,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,115,0,114,0,120,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,115,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,115,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,82,0,0,0,115,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,116,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,115,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,117,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,117,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,115,0,117,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,117,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,78,0,0,0,115,0,119,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,68,0,0,0,115,0,119,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,115,0,119,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,119,0,118,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,120,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,115,0,120,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,115,0,121,0,108,0,95,0,66,0,101,0,110,0,103,0,95,0,66,0,68,0,0,0,115,0,121,0,108,0,95,0,83,0,121,0,108,0,111,0,95,0,66,0,68,0,0,0,115,0,122,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,76,0,0,0,116,0,97,0,106,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,97,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,97,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,98,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,116,0,98,0,119,0,95,0,84,0,97,0,103,0,98,0,95,0,80,0,72,0,0,0,116,0,98,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,99,0,121,0,95,0,75,0,110,0,100,0,97,0,95,0,73,0,78,0,0,0,116,0,100,0,103,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,100,0,104,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,100,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,116,0,101,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,101,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,76,0,0,0,116,0,101,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,116,0,101,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,76,0,0,0,116,0,102,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,103,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,103,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,103,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,104,0,108,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,104,0,113,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,104,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,105,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,103,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,82,0,0,0,116,0,105,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,105,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,71,0,0,0,116,0,107,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,116,0,107,0,116,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,108,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,108,0,120,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,108,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,116,0,109,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,116,0,109,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,110,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,111,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,111,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,87,0,0,0,116,0,111,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,112,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,112,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,113,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,114,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,116,0,114,0,119,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,116,0,115,0,100,0,95,0,71,0,114,0,101,0,107,0,95,0,71,0,82,0,0,0,116,0,115,0,102,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,116,0,115,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,116,0,115,0,106,0,95,0,84,0,105,0,98,0,116,0,95,0,66,0,84,0,0,0,116,0,115,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,116,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,116,0,115,0,95,0,84,0,104,0,97,0,105,0,95,0,84,0,72,0,0,0,116,0,116,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,116,0,117,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,117,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,117,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,87,0,0,0,116,0,117,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,118,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,118,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,119,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,119,0,113,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,69,0,0,0,116,0,121,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,116,0,121,0,118,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,116,0,122,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,65,0,0,0,117,0,98,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,100,0,109,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,85,0,0,0,117,0,108,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,117,0,109,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,79,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,81,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,86,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,80,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,71,0,83,0,0,0,117,0,110,0,100,0,95,0,76,0,97,0,116,0,110,0,95,0,72,0,77,0,0,0,117,0,110,0,114,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,117,0,110,0,114,0,95,0,78,0,97,0,103,0,109,0,95,0,73,0,78,0,0,0,117,0,110,0,120,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,117,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,114,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,114,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,114,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,115,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,116,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,116,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,118,0,104,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,117,0,118,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,101,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,84,0,0,0,118,0,101,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,118,0,105,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,88,0,0,0,118,0,105,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,118,0,108,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,69,0,0,0,118,0,109,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,68,0,69,0,0,0,118,0,109,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,118,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,118,0,111,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,85,0,0,0,118,0,114,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,69,0,69,0,0,0,118,0,117,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,90,0,0,0,118,0,117,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,97,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,72,0,0,0,119,0,97,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,97,0,108,0,95,0,69,0,116,0,104,0,105,0,95,0,69,0,84,0,0,0,119,0,97,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,72,0,0,0,119,0,98,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,85,0,0,0,119,0,98,0,113,0,95,0,84,0,101,0,108,0,117,0,95,0,73,0,78,0,0,0,119,0,98,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,119,0,99,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,101,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,103,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,104,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,105,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,105,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,106,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,106,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,108,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,87,0,70,0,0,0,119,0,109,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,110,0,99,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,110,0,105,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,77,0,0,0,119,0,110,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,111,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,111,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,114,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,115,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,116,0,109,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,119,0,117,0,117,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,119,0,117,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,119,0,119,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,120,0,98,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,101,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,108,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,109,0,102,0,95,0,71,0,101,0,111,0,114,0,95,0,71,0,69,0,0,0,120,0,109,0,114,0,95,0,77,0,101,0,114,0,111,0,95,0,83,0,68,0,0,0,120,0,110,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,120,0,111,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,71,0,0,0,120,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,115,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,115,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,120,0,115,0,114,0,95,0,68,0,101,0,118,0,97,0,95,0,78,0,80,0,0,0,120,0,119,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,90,0,0,0,121,0,97,0,112,0,95,0,76,0,97,0,116,0,110,0,95,0,70,0,77,0,0,0,121,0,97,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,118,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,121,0,97,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,98,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,98,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,77,0,0,0,121,0,98,0,121,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,101,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,103,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,103,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,95,0,48,0,48,0,49,0,0,0,121,0,107,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,108,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,108,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,108,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,109,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,111,0,110,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,114,0,98,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,114,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,114,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,82,0,0,0,121,0,115,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,117,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,88,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,95,0,67,0,65,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,121,0,117,0,106,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,117,0,116,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,121,0,117,0,119,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,122,0,97,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,68,0,0,0,122,0,100,0,106,0,95,0,65,0,114,0,97,0,98,0,95,0,75,0,77,0,0,0,122,0,101,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,78,0,76,0,0,0,122,0,105,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,122,0,108,0,109,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,71,0,0,0,122,0,109,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,89,0,0,0,122,0,110,0,101,0,95,0,76,0,97,0,116,0,110,0,95,0,90,0,90,0,0,0,122,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,95,0,84,0,82,0,0,0,111,0,117,0,105,0,95,0,79,0,117,0,103,0,114,0,95,0,49,0,52,0,51,0,0,0,106,0,98,0,111,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,112,0,114,0,103,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,116,0,111,0,107,0,95,0,76,0,97,0,116,0,110,0,95,0,48,0,48,0,49,0,0,0,91,7,141,7,32,0,36,0,40,0,248,32,44,0,48,0,52,0,56,0,60,0,64,0,68,0,72,0,76,0,80,0,84,0,88,0,92,0,96,0,67,33,100,0,104,0,219,14,108,0,112,0,116,0,121,28,120,0,124,0,128,0,132,0,136,0,140,0,144,0,106,12,148,0,152,0,77,25,156,0,160,0,23,34,164,0,168,0,250,24,172,0,79,33,176,0,180,0,184,0,188,0,192,0,196,0,200,0,204,0,208,0,212,0,216,0,220,0,224,0,83,33,196,27,228,0,237,0,246,0,250,0,254,0,2,1,6,1,10,1,14,1,35,34,18,1,22,1,26,1,30,1,34,1,38,1,42,1,46,1,50,1,43,34,54,1,58,1,128,31,62,1,66,1,70,1,74,1,78,1,47,34,82,1,51,34,86,1,94,1,100,1,106,1,55,34,112,1,116,1,120,1,124,1,128,1,132,1,136,1,140,1,144,1,148,1,152,1,156,1,160,1,164,1,168,1,172,1,176,1,180,1,184,1,188,1,192,1,196,1,200,1,251,14,204,1,208,1,212,1,216,1,220,1,224,1,228,1,232,1,236,1,240,1,244,1,248,1,126,16,252,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,28,2,195,33,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,68,2,72,2,76,2,80,2,84,2,88,2,92,2,96,2,100,2,104,2,108,2,112,2,116,2,120,2,181,7,124,2,128,2,132,2,136,2,140,2,143,2,147,2,151,2,130,16,155,2,159,2,163,2,167,2,171,2,175,2,179,2,183,2,95,33,187,2,191,2,195,2,199,2,203,2,206,2,210,2,214,2,218,2,222,2,226,2,230,2,234,2,238,2,242,2,246,2,250,2,254,2,2,3,6,3,10,3,14,3,18,3,22,3,26,3,30,3,34,3,38,3,42,3,46,3,50,3,54,3,58,3,62,3,66,3,70,3,126,12,74,3,78,3,82,3,86,3,90,3,130,12,94,3,98,3,102,3,138,12,106,3,110,3,104,32,114,3,118,3,122,3,126,3,130,3,134,3,138,3,142,3,146,3,150,3,154,3,158,3,162,3,166,3,199,33,170,3,174,3,203,33,178,3,182,3,186,3,190,3,194,3,198,3,201,3,205,3,209,3,146,12,213,3,221,3,146,16,141,25,224,3,228,3,232,3,236,3,240,3,244,3,248,3,252,3,0,4,4,4,8,4,254,10,12,4,16,4,20,4,24,4,28,4,32,4,36,4,40,4,44,4,48,4,52,4,56,4,60,4,64,4,68,4,72,4,76,4,80,4,84,4,88,4,92,4,96,4,100,4,104,4,108,4,112,4,116,4,120,4,124,4,127,4,131,4,135,4,139,4,97,0,143,4,147,4,26,11,151,4,155,4,159,4,163,4,167,4,120,14,171,4,175,4,34,11,179,4,187,4,191,4,174,16,195,4,207,33,199,4,203,4,178,16,207,4,211,4,215,4,219,4,46,11,223,4,227,4,231,4,50,11,235,4,239,4,243,4,247,4,251,4,255,4,2,5,10,5,14,5,182,16,18,5,22,5,26,5,30,5,33,5,37,5,62,11,41,5,45,5,49,5,53,5,57,5,170,12,61,5,65,5,69,5,73,5,77,5,81,5,85,5,89,5,93,5,97,5,101,5,105,5,109,5,113,5,253,7,207,17,117,5,121,5,125,5,129,5,133,5,191,28,137,5,141,5,145,5,149,5,153,5,157,5,161,5,165,5,169,5,170,30,173,5,177,5,181,5,185,5,189,5,193,5,197,5,201,5,205,5,209,5,213,5,217,5,221,5,225,5,229,5,233,5,237,5,182,12,241,5,245,5,249,5,128,14,253,5,1,6,5,6,9,6,13,6,17,6,21,6,25,6,29,6,33,6,37,6,41,6,45,6,54,6,58,6,62,6,208,16,66,6,70,6,74,6,78,6,82,6,86,6,90,6,94,6,97,6,101,6,105,6,109,6,113,6,117,6,121,6,13,8,125,6,131,6,116,29,137,6,135,21,183,4,141,6,145,6,149,6,190,12,153,6,159,25,157,6,165,6,169,6,173,6,177,6,181,6,185,6,189,6,193,6,197,6,201,6,205,6,209,6,213,6,217,6,105,32,221,6,39,15,225,6,220,16,229,6,233,6,33,8,176,28,237,6,241,6,154,6,41,8,29,35,245,6,249,6,253,6,1,7,5,7,9,7,13,7,104,15,142,30,17,7,21,7,25,7,228,16,29,7,33,7,202,12,37,7,232,16,41,7,45,7,49,7,53,7,57,7,210,12,160,30,240,16,61,7,65,7,17,14,27,5,119,33,110,11,69,7,73,7,77,7,81,7,127,33,85,7,89,7,93,7,97,7,101,7,105,7,109,7,113,7,131,33,117,7,121,7,125,7,129,7,133,7,135,3,137,7,21,14,140,7,144,7,148,7,152,7,156,7,160,7,164,7,168,7,172,7,176,7,180,7,184,7,188,7,192,7,196,7,200,7,204,7,208,7,212,7,216,7,220,7,224,7,228,7,232,7,236,7,240,7,244,7,248,7,252,7,230,12,0,8,4,8,8,8,12,8,16,8,20,8,24,8,28,8,32,8,36,8,40,8,114,11,44,8,48,8,52,8,109,8,56,8,60,8,64,8,68,8,42,7,72,8,78,8,86,8,92,8,98,8,104,8,108,8,248,16,112,8,116,8,120,8,124,8,97,2,128,8,132,8,136,8,140,8,144,8,148,8,234,5,152,8,156,8,79,34,160,8,164,8,168,8,172,8,176,8,180,8,184,8,188,8,192,8,196,8,200,8,204,8,208,8,212,8,252,16,216,8,220,8,224,8,228,8,232,8,236,8,132,15,240,8,244,8,248,8,252,8,0,9,4,9,8,9,12,9,16,9,20,9,105,2,24,9,32,9,38,9,46,9,50,9,54,9,58,9,62,9,66,9,70,9,74,9,138,13,78,9,82,9,86,9,126,11,90,9,94,9,98,9,102,9,106,9,110,9,114,9,118,9,122,9,126,9,130,9,134,9,168,4,138,9,146,9,152,9,160,9,166,9,170,9,174,9,178,9,182,9,186,9,211,33,190,9,194,9,217,3,198,9,202,9,206,9,210,9,213,9,217,9,221,9,225,9,229,9,233,9,237,9,241,9,245,9,249,9,253,9,1,10,5,10,87,34,9,10,211,17,13,10,17,10,21,10,25,10,34,10,38,10,42,10,46,10,50,10,54,10,58,10,62,10,66,10,70,10,74,10,78,10,82,10,71,10,86,10,90,10,215,30,94,10,98,10,102,10,106,10,110,10,114,10,118,10,31,28,122,10,190,6,126,10,130,10,134,10,138,10,142,10,145,10,149,10,153,10,157,10,161,10,165,10,169,10,173,10,177,10,181,10,188,10,197,10,201,10,205,10,209,10,213,10,217,10,221,10,225,10,229,10,233,10,237,10,241,10,245,10,249,10,253,10,1,11,5,11,9,11,13,11,17,11,21,11,25,11,29,11,33,11,37,11,41,11,45,11,49,11,53,11,57,11,61,11,65,11,241,12,69,11,73,11,77,11,81,11,85,11,19,17,89,11,93,11,41,35,97,11,101,11,105,11,109,11,129,2,113,11,117,11,121,11,125,11,95,34,129,11,133,11,137,11,141,11,145,11,149,11,227,33,153,11,159,11,167,11,171,11,175,11,179,11,139,33,183,11,187,11,191,11,195,11,199,11,203,11,207,11,211,11,215,11,219,11,40,28,223,11,227,11,231,11,175,15,235,11,167,14,241,11,245,11,249,11,253,11,1,12,5,12,9,12,13,12,17,12,21,12,25,12,29,12,33,12,37,12,41,12,45,12,23,17,49,12,53,12,57,12,61,12,65,12,69,12,73,12,77,12,81,12,85,12,89,12,93,12,235,33,97,12,101,12,105,12,109,12,113,12,117,12,121,12,179,15,125,12,129,12,133,12,137,12,141,12,145,12,206,30,149,12,153,12,45,35,157,12,161,12,165,12,169,12,163,24,173,12,177,12,181,12,185,12,189,12,193,12,197,12,201,12,205,12,209,12,213,12,217,12,221,12,225,12,229,12,233,12,237,12,240,12,244,12,41,14,248,12,252,12,0,13,4,13,8,13,218,6,12,13,16,13,20,13,24,13,28,13,32,13,239,33,36,13,40,13,44,13,48,13,52,13,56,13,60,13,64,13,68,13,72,13,76,13,80,13,84,13,88,13,91,13,95,13,99,13,199,15,103,13,107,13,111,13,222,6,115,13,121,13,95,10,125,13,129,13,133,13,137,13,61,19,163,11,141,13,145,13,149,13,107,10,153,13,157,13,159,33,161,13,165,13,169,13,173,13,177,13,53,14,181,13,189,13,195,13,199,13,203,13,212,13,216,13,220,13,224,13,228,13,232,13,236,13,240,13,244,13,120,32,248,13,252,13,0,14,4,14,8,14,12,14,16,14,20,14,24,14,173,22,28,14,32,14,36,14,40,14,44,14,48,14,52,14,56,14,60,14,64,14,68,14,72,14,231,15,76,14,163,21,80,14,84,14,88,14,92,14,95,14,99,14,225,20,103,14,107,14,111,14,115,14,119,14,123,14,127,14,131,14,135,14,139,14,143,14,150,14,154,14,108,29,158,14,162,14,166,14,170,14,7,16,174,14,178,14,55,33,182,14,186,14,12,28,190,14,194,14,221,23,198,14,202,14,214,32,206,14,210,14,214,14,3,34,218,14,222,14,226,14,230,14,234,14,238,14,242,14,246,14,250,14,254,14,2,15,5,15,9,15,13,15,17,15,75,17,21,15,29,15,35,15,43,15,51,15,55,15,23,1,59,15,63,15,67,15,71,15,167,33,75,15,79,15,83,15,87,15,91,15,95,15,99,15,175,28,7,34,103,15,107,15,111,15,115,15,119,15,171,33,123,15,127,15,131,15,135,15,138,15,142,15,146,15,150,15,11,34,236,28,154,15,158,15,162,15,166,15,170,15,174,15,45,13,178,15,182,15,186,15,190,15,194,15,198,15,49,13,202,15,206,15,210,15,214,15,218,15,222,15,226,15,230,15,211,2,15,34,234,15,240,15,246,15,252,15,2,16,6,16,10,16,14,16,111,34,18,16,22,16,26,16,33,20,30,16,34,16,1,27,38,16,42,16,46,16,50,16,54,16,58,16,91,17,61,16,65,16,69,16,73,16,77,16,81,16,85,16,89,16,93,16,97,16,166,13,101,16,227,24,105,16,109,16,113,16,117,16,121,16,125,16,129,16,133,16,137,16,141,16,145,16,149,16,153,16,157,16,161,16,99,17,165,16,169,16,173,16,177,16,181,16,123,10,185,16,193,16,199,16,203,16,207,16,222,32,211,16,215,16,219,16,162,29,223,16,227,16,231,16,235,16,239,16,243,16,31,16,247,16,251,16,255,16,3,17,6,17,10,17,14,17,18,17,22,17,157,9,26,17,246,31,30,17,34,17,38,17,42,17,46,17,50,17,54,17,58,17,226,32,62,17,66,17,70,17,111,17,74,17,78,17,82,17,86,17,90,17,115,17,94,17,98,17,102,17,106,17,110,17,114,17,118,17,122,17,126,17,130,17,134,17,138,17,142,17,146,17,150,17,154,17,158,17,105,4,162,17,166,17,170,17,174,17,178,17,182,17,203,14,186,17,194,17,200,17,206,17,47,16,210,17,214,17,205,30,218,17,226,17,234,17,242,17,250,17,2,18,10,18,18,18,26,18,34,18,42,18,50,18,58,18,66,18,74,18,82,18,90,18,98,18,106,18,114,18,122,18,130,18,138,18,146,18,154,18,162,18,170,18,178,18,186,18,194,18,202,18,209,18,216,18,223,18,230,18,237,18,244,18,251,18,2,19,9,19,16,19,23,19,30,19,37,19,46,19,55,19,64,19,73,19,85,19,97,19,109,19,121,19,133,19,145,19,157,19,169,19,181,19,193,19,205,19,217,19,229,19,241,19,253,19,9,20,18,20,27,20,36,20,43,20,50,20,57,20,64,20,71,20,78,20,85,20,92,20,99,20,106,20,113,20,120,20,127,20,134,20,141,20,148,20,157,20,166,20,175,20,184,20,193,20,202,20,211,20,220,20,229,20,238,20,247,20,254,20,5,21,12,21,19,21,26,21,33,21,40,21,47,21,54,21,61,21,68,21,75,21,82,21,89,21,96,21,103,21,112,21,121,21,130,21,139,21,148,21,157,21,166,21,175,21,187,21,196,21,205,21,217,21,229,21,241,21,253,21,9,22,21,22,33,22,45,22,57,22,64,22,71,22,78,22,85,22,92,22,101,22,113,22,125,22,137,22,149,22,158,22,167,22,176,22,183,22,190,22,197,22,204,22,211,22,218,22,225,22,232,22,239,22,246,22,255,22,8,23,17,23,26,23,33,23,40,23,47,23,54,23,61,23,68,23,75,23,82,23,89,23,96,23,103,23,110,23,117,23,124,23,131,23,140,23,149,23,158,23,167,23,176,23,185,23,194,23,206,23,215,23,224,23,231,23,238,23,245,23,252,23,3,24,10,24,19,24,28,24,37,24,46,24,55,24,64,24,76,24,85,24,97,24,109,24,121,24,130,24,139,24,148,24,157,24,166,24,173,24,180,24,187,24,194,24,201,24,208,24,215,24,222,24,231,24,238,24,245,24,254,24,7,25,16,25,23,25,30,25,37,25,44,25,51,25,58,25,65,25,72,25,81,25,90,25,99,25,108,25,117,25,126,25,135,25,144,25,153,25,162,25,169,25,176,25,183,25,190,25,197,25,204,25,211,25,218,25,225,25,234,25,243,25,255,25,11,26,23,26,35,26,47,26,59,26,71,26,83,26,95,26,107,26,119,26,131,26,143,26,155,26,167,26,179,26,191,26,203,26,215,26,224,26,233,26,242,26,251,26,4,27,13,27,22,27,29,27,36,27,43,27,50,27,57,27,64,27,71,27,78,27,85,27,92,27,99,27,106,27,113,27,120,27,127,27,134,27,141,27,148,27,155,27,164,27,173,27,182,27,191,27,200,27,209,27,218,27,227,27,236,27,245,27,254,27,7,28,16,28,25,28,34,28,43,28,55,28,67,28,74,28,81,28,88,28,95,28,102,28,109,28,116,28,125,28,134,28,143,28,152,28,161,28,170,28,179,28,186,28,195,28,204,28,213,28,222,28,231,28,240,28,249,28,0,29,7,29,14,29,21,29,28,29,35,29,42,29,49,29,56,29,63,29,70,29,77,29,84,29,93,29,102,29,111,29,120,29,129,29,138,29,147,29,156,29,165,29,172,29,179,29,186,29,193,29,200,29,207,29,214,29,223,29,232,29,241,29,248,29,255,29,6,30,13,30,20,30,27,30,34,30,41,30,48,30,55,30,62,30,69,30,76,30,83,30,92,30,101,30,110,30,119,30,128,30,137,30,146,30,155,30,164,30,173,30,182,30,191,30,200,30,209,30,218,30,227,30,234,30,241,30,248,30,255,30,6,31,13,31,20,31,27,31,34,31,41,31,48,31,55,31,62,31,69,31,78,31,87,31,96,31,105,31,114,31,123,31,132,31,141,31,150,31,159,31,168,31,177,31,189,31,201,31,213,31,222,31,231,31,240,31,249,31,0,32,7,32,14,32,21,32,30,32,37,32,44,32,51,32,58,32,67,32,76,32,83,32,90,32,99,32,108,32,115,32,124,32,133,32,140,32,147,32,156,32,165,32,172,32,237,29,181,32,190,32,197,32,201,32,51,16,205,32,209,32,213,32,217,32,221,32,225,32,229,32,233,32,139,10,237,32,243,32,251,32,1,33,5,33,9,33,13,33,16,33,20,33,24,33,27,33,31,33,35,33,39,33,43,33,47,33,50,33,54,33,58,33,62,33,187,33,66,33,70,33,74,33,78,33,82,33,86,33,90,33,94,33,98,33,102,33,106,33,110,33,114,33,118,33,122,33,126,33,130,33,134,33,138,33,142,33,146,33,150,33,211,14,154,33,158,33,162,33,166,33,170,33,174,33,178,33,182,33,186,33,190,33,194,33,198,33,202,33,206,33,27,3,210,33,214,33,218,33,222,33,226,33,230,33,234,33,238,33,242,33,246,33,250,33,254,33,2,34,6,34,10,34,14,34,18,34,22,34,26,34,30,34,34,34,38,34,42,34,46,34,50,34,54,34,58,34,62,34,66,34,70,34,74,34,122,6,78,34,82,34,86,34,90,34,94,34,197,30,98,34,102,34,106,34,190,17,110,34,114,34,118,34,122,34,129,34,138,34,142,34,146,34,52,35,150,34,154,34,158,34,162,34,150,10,166,34,172,34,178,34,186,34,192,34,198,34,204,34,212,34,220,34,226,34,232,34,238,34,244,34,250,34,0,35,6,35,12,35,18,35,24,35,28,35,32,35,36,35,40,35,44,35,48,35,51,35,41,5,124,21,136,21,148,21,53,1,160,21,172,21,184,21,196,21,208,21,220,21,232,21,244,21,0,22,12,22,24,22,36,22,48,22,60,22,64,1,72,22,84,22,63,5,96,22,108,22,120,22,132,22,144,22,156,22,168,22,180,22,8,17,192,22,204,22,75,1,20,17,216,22,228,22,240,22,252,22,45,0,8,23,20,23,32,23,44,23,74,5,56,23,68,23,80,23,92,23,104,23,116,23,128,23,140,23,32,17,152,23,164,23,176,23,188,23,23,0,44,17,56,17,68,17,212,23,224,23,236,23,248,23,4,24,16,24,28,24,38,6,40,24,80,17,52,24,64,24,76,24,88,24,100,24,112,24,124,24,49,6,136,24,148,24,160,24,172,24,184,24,196,24,208,24,220,24,60,6,232,24,108,1,97,1,71,6,97,1,93,6,104,6,244,24,12,25,24,25,36,25,48,25,60,25,92,17,72,25,84,25,108,25,120,25,132,25,144,25,156,25,168,25,180,25,192,25,204,25,216,25,228,25,240,25,252,25,8,26,119,1,20,26,32,26,44,26,56,26,68,26,80,26,92,26,104,26,116,26,128,26,140,26,152,26,130,1,164,26,176,26,104,17,188,26,200,26,240,16,212,26,224,26,4,27,141,1,16,27,28,27,40,27,52,27,64,27,76,27,88,27,100,27,112,27,124,27,136,27,148,27,160,27,172,27,184,27,196,27,208,27,220,27,244,27,0,28,12,28,24,28,116,17,152,1,36,28,48,28,60,28,72,28,56,0,84,28,96,28,108,28,163,1,120,28,132,28,144,28,156,28,168,28,180,28,192,28,204,28,137,6,216,28,228,28,240,28,252,28,174,1,8,29,128,17,20,29,32,29,44,29,56,29,140,17,68,29,80,29,92,29,116,29,128,29,140,29,152,29,164,29,176,29,188,29,200,29,212,29,224,29,236,29,248,29,4,30,16,30,28,30,40,30,52,30,64,30,76,30,88,30,100,30,159,6,112,30,124,30,136,30,148,30,152,17,170,6,160,30,172,30,184,30,181,6,196,30,208,30,220,30,232,30,164,17,244,30,176,17,188,17,0,31,12,31,24,31,36,31,48,31,60,31,72,31,84,31,200,17,192,6,212,17,108,31,203,6,120,31,132,31,144,31,156,31,168,31,185,1,180,31,192,31,224,17,214,6,196,1,225,6,236,6,207,1,204,31,216,31,228,31,240,31,252,31,8,32,20,32,32,32,44,32,56,32,68,32,67,0,80,32,92,32,104,32,116,32,128,32,140,32,152,32,164,32,176,32,188,32,236,17,200,32,212,32,224,32,4,33,16,33,28,33,40,33,52,33,64,33,76,33,88,33,100,33,112,33,124,33,136,33,148,33,160,33,78,0,172,33,184,33,196,33,208,33,218,1,220,33,232,33,46,7,244,33,0,34,248,17,12,34,4,18,89,0,24,34,36,34,1,0,240,1,48,34,60,34,72,34,84,34,6,2,16,18,108,34,28,2,120,34,28,18,132,34,144,34,98,8,156,34,168,34,180,34,39,2,192,34,204,34,216,34,228,34,240,34,131,8,50,2,252,34,8,35,61,2,20,35,40,18,44,35,142,8,56,35,68,35,72,2,80,35,92,35,104,35,116,35,128,35,83,2,140,35,152,35,164,35,176,35,188,35,200,35,212,35,224,35,236,35,248,35,4,36,16,36,28,36,40,36,15,10,26,10,52,36,64,36,76,36,88,36,100,36,112,36,124,36,136,36,148,36,160,36,172,36,184,36,196,36,208,36,220,36,37,10,232,36,244,36,0,37,12,37,24,37,36,37,48,37,60,37,72,37,84,37,96,37,108,37,120,37,132,37,144,37,156,37,168,37,48,10,180,37,192,37,204,37,94,2,216,37,228,37,240,37,252,37,8,38,20,38,32,38,44,38,56,38,52,18,68,38,64,18,76,18,80,38,92,38,104,38,105,2,116,38,128,38,140,38,152,38,164,38,176,38,188,38,59,10,200,38,212,38,224,38,236,38,248,38,4,39,16,39,114,10,70,10,92,10,28,39,40,39,52,39,64,39,76,39,88,39,100,39,111,0,112,39,241,16,125,10,124,39,148,39,160,39,172,39,184,39,196,39,88,18,100,18,208,39,220,39,232,39,112,18,12,40,24,40,147,10,36,40,60,40,72,40,116,2,84,40,96,40,127,2,138,2,108,40,120,40,122,0,169,10,132,40,144,40,156,40,168,40,180,40,192,40,204,40,216,40,133,0,228,40,240,40,252,40,8,41,180,10,20,41,32,41,149,2,44,41,191,10,56,41,68,41,80,41,92,41,104,41,101,21,116,41,128,41,140,41,152,41,160,2,144,0,171,2,224,10,164,41,176,41,188,41,200,41,155,0,212,41,224,41,236,41,105,74,248,41,4,42,16,42,28,42,1,11,40,42,52,42,64,42,76,42,88,42,23,11,34,11,166,0,100,42,112,42,124,18,124,42,136,42,148,42,160,42,172,42,136,18,184,42,208,42,220,42,232,42,244,42,0,43,12,43,24,43,36,43,48,43,60,43,72,43,84,43,120,43,132,43,144,43,156,43,168,43,180,43,192,43,45,11,204,43,216,43,228,43,240,43,148,18,252,43,8,44,20,44,160,18,32,44,44,44,56,11,56,44,68,44,80,44,67,11,92,44,104,44,116,44,128,44,100,11,78,11,182,2,182,2,89,11,193,2,140,44,152,44,204,2,164,44,176,44,188,44,200,44,177,0,212,44,224,44,236,44,248,44,4,45,16,45,215,2,28,45,40,45,188,0,52,45,64,45,76,45,88,45,100,45,112,45,124,45,136,45,148,45,160,45,172,45,184,45,196,45,208,45,113,21,220,45,232,45,244,45,172,18,0,46,12,46,144,11,24,46,36,46,48,46,60,46,72,46,84,46,96,46,108,46,120,46,132,46,199,11,155,11,166,11,226,2,144,46,156,46,168,46,180,46,192,46,204,46,216,46,228,46,210,11,240,46,252,46,8,47,232,11,20,47,32,47,44,47,56,47,68,47,80,47,92,47,104,47,116,47,128,47,140,47,152,47,248,2,237,2,237,2,3,3,3,3,164,47,176,47,188,47,200,47,212,47,224,47,243,11,184,18,236,47,248,47,4,48,16,48,28,48,254,11,40,48,52,48,64,48,76,48,196,18,88,48,100,48,112,48,124,48,208,18,136,48,148,48,160,48,9,12,172,48,20,12,184,48,196,48,208,48,220,18,220,48,232,48,244,48,0,49,232,18,12,49,24,49,36,49,48,49,60,49,72,49,84,49,96,49,31,12,108,49,120,49,199,0,132,49,144,49,156,49,168,49,180,49,192,49,204,49,14,3,216,49,42,12,228,49,240,49,252,49,8,50,25,3,20,50,228,16,44,50,56,50,68,50,80,50,92,50,116,50,140,50,252,16,252,16,152,50,164,50,176,50,188,50,200,50,212,50,224,50,236,50,248,50,4,51,16,51,28,51,40,51,52,51,64,51,76,51,88,51,100,51,112,51,124,51,136,51,148,51,160,51,172,51,196,51,208,51,220,51,244,18,0,19,232,51,244,51,0,52,36,3,12,52,24,52,36,52,48,52,60,52,53,12,72,52,84,52,64,12,96,52,108,52,100,21,120,52,47,3,132,52,144,52,156,52,168,52,58,3,180,52,192,52,204,52,216,52,228,52,240,52,69,3,210,0,210,0,252,52,8,53,20,53,44,53,97,12,68,53,80,53,92,53,104,53,116,53,128,53,140,53,152,53,164,53,176,53,108,12,188,53,200,53,12,19,91,3,80,3,102,3,212,53,224,53,236,53,248,53,4,54,16,54,28,54,40,54,52,54,64,54,76,54,88,54,100,54,112,54,124,54,136,54,221,0,148,54,160,54,172,54,184,54,196,54,24,19,208,54,220,54,232,54,244,54,0,55,12,55,152,12,24,55,36,55,48,55,60,55,72,55,84,55,96,55,113,3,108,55,120,55,132,55,144,55,156,55,168,55,174,12,180,55,192,55,124,3,204,55,216,55,240,55,252,55,196,12,8,56,20,56,32,56,44,56,56,56,68,56,80,56,92,56,104,56,116,56,128,56,140,56,152,56,164,56,176,56,188,56,135,3,200,56,212,56,240,12,224,56,236,56,248,56,4,57,36,19,251,12,48,19,16,57,60,19,28,57,40,57,52,57,6,13,64,57,76,57,88,57,100,57,112,57,72,19,124,57,136,57,148,57,160,57,172,57,184,57,196,57,17,13,208,57,220,57,232,57,28,13,244,57,0,58,12,58,50,13,39,13,24,58,61,13,36,58,48,58,112,21,60,58,72,13,72,58,84,58,96,58,108,58,146,3,120,58,132,58,83,13,84,19,144,58,96,19,92,74,156,58,168,3,157,3,157,3,168,58,108,19,120,19,180,58,192,58,132,19,228,58,240,58,252,58,8,59,20,59,32,59,144,19,44,59,56,59,68,59,156,19,80,59,92,59,104,59,168,19,116,59,179,3,128,59,140,59,152,59,164,59,176,59,188,59,200,59,212,59,224,59,180,19,236,59,118,74,105,13,248,59,232,0,4,60,16,60,28,60,204,13,40,60,52,60,64,60,76,60,88,60,100,60,112,60,136,60,148,60,160,60,192,19,184,60,208,60,196,60,220,60,232,60,215,13,244,60,0,61,12,61,24,61,190,3,36,61,48,61,201,3,60,61,72,61,84,61,96,61,108,61,12,0,120,61,132,61,212,3,144,61,156,61,168,61,3,14,180,61,192,61,204,61,216,61,204,19,228,61,216,19,240,61,252,61,8,62,58,14,20,62,32,62,44,62,56,62,69,14,223,3,223,3,234,3,245,3,68,62,80,62,80,14,92,62,104,62,116,62,128,62,91,14,228,19,140,62,152,62,164,62,176,62,188,62,200,62,212,62,243,0,224,62,236,62,248,62,4,63,16,63,0,4,28,63,40,63,64,63,11,4,76,63,88,63,100,63,112,63,254,0,124,63,136,63,148,63,160,63,240,19,172,63,184,63,22,4,196,63,208,63,220,63,232,63,244,63,0,64,33,4,252,19,24,64,36,64,48,64,60,64,72,64,84,64,96,64,44,4,55,4,66,4,190,14,201,14,212,14,8,20,108,64,120,64,132,64,223,14,144,64,156,64,168,64,245,14,180,64,192,64,0,15,204,64,216,64,228,64,240,64,252,64,77,4,9,1,20,20,8,65,20,65,32,65,44,65,56,65,68,65,80,65,32,20,104,65,99,4,116,65,128,65,140,65,152,65,164,65,176,65,188,65,200,65,212,65,224,65,248,65,4,66,16,66,44,20,28,66,40,66,52,66,110,4,64,66,76,66,88,66,100,66,112,66,132,4,121,4,121,4,124,66,136,66,148,66,20,1,160,66,172,66,184,66,66,15,196,66,208,66,220,66,232,66,244,66,0,67,143,4,56,20,12,67,24,67,99,15,36,67,48,67,60,67,72,67,84,67,110,15,96,67,154,4,108,67,120,67,131,74,132,67,68,20,144,67,156,67,168,67,165,4,180,67,80,20,192,67,132,15,204,67,216,67,228,67,240,67,252,67,143,15,8,68,20,68,32,68,44,68,56,68,68,68,80,68,92,68,104,68,116,68,128,68,92,20,140,68,152,68,164,68,104,20,116,20,154,15,176,68,188,68,200,68,212,68,128,20,224,68,176,4,187,4,187,4,165,15,140,20,198,4,236,68,248,68,1,0,100,0,1,0,232,0,229,1,100,0,17,2,9,1,23,0,88,4,134,7,1,0,1,0,251,1,229,16,241,16,133,0,144,0,229,1,123,7,101,7,254,0,229,16,42,1,86,1,12,0,12,0,90,7,67,0,100,0,96,34,148,6,85,5,109,8,44,4,122,0,116,13,4,69,145,7,102,14,247,6,207,12,22,15,108,1,50,2,128,20,8,17,23,0,80,3,176,4,198,15,130,12,209,15,176,17,172,60,193,2,220,15,81,10,31,1,32,17,244,18,120,8,82,6,20,20,44,17,122,0,64,1,174,1,56,0,218,12,175,8,130,1,96,5,190,3,186,8,197,8,141,12,156,7,204,58,232,0,218,1,16,69,119,1,0,25,92,17,128,17,96,25,56,0,248,13,242,4,168,19,153,8,104,29,232,27,88,4,208,8,219,8,2,7,230,8,167,7,241,8,229,16,178,7,28,69,189,7,251,1,127,13,216,58,57,7,185,1,152,17,171,2,212,20,188,17,164,17,200,20,212,17,152,20,152,20,64,18,12,0,75,12,168,14,53,1,86,12,176,15,115,6,187,15,196,42,179,14,67,0,30,5,207,1,200,7,107,5,241,16,185,12,136,39,236,26,140,17,35,7,236,32,164,8,211,7,222,7,28,2,23,0,118,5,55,15,6,2,45,0,112,7,13,7,248,17,124,14,200,23,45,0,61,2,72,2,83,2,7,9,166,0,18,9,75,1,204,2,29,9,40,9,233,7,89,0,40,69,244,7,138,13,166,0,196,1,188,20,16,18,52,18,14,14,89,0,104,17,105,2,168,3,8,5,52,69,255,7,116,2,127,2,138,2,253,4,111,11,74,16,0,40,229,16,34,0,192,73,111,0,30,16,41,16,52,16,235,10,88,18,244,39,112,18,158,10,10,8,133,0,111,0,241,16,129,5,39,2,160,2,144,0,28,18,140,5,155,0,122,11,12,11,155,0,33,15,248,2,177,0,151,5,133,11,188,0,162,5,237,13,4,18,246,10,136,18,180,19,177,0,234,3,88,21,215,2,188,0,248,26,199,0,173,5,24,7,243,0,234,14,14,3,62,9,25,3,184,5,48,19,199,0,77,15,177,11,231,4,121,15,252,8,79,7,188,11,88,15,51,9,73,9,135,14,124,18,149,13,117,9,172,18,194,9,238,9,80,20,94,13,208,18,220,18,184,18,76,18,232,18,224,20,236,20,195,5,84,9,226,13,66,4,95,9,36,3,47,3,152,1,221,0,69,3,19,5,106,9,206,5,102,3,0,19,78,0,17,2,91,3,160,13,136,10,128,50,24,19,248,20,126,6,236,17,184,51,4,21,28,72,58,3,119,12,210,0,12,19,32,53,52,63,221,0,160,18,56,53,52,5,128,9,103,10,21,8,135,3,113,3,124,3,76,69,25,14,16,21,56,17,228,55,252,16,76,21,217,5,228,19,204,19,96,19,146,3,84,19,113,14,92,74,32,8,43,8,139,9,68,20,40,18,31,1,179,3,150,9,54,8,228,5,171,13,132,19,94,2,68,17,224,17,221,11,32,50,108,19,120,19,156,19,100,18,28,21,239,5,68,7,161,9,201,3,55,4,12,0,212,3,124,60,192,19,60,19,86,1,172,9,250,5,77,4,11,4,163,12,0,4,202,10,183,9,33,4,229,12,182,13,65,8,5,6,240,19,40,21,216,19,80,17,240,1,36,14,47,14,245,3,243,0,252,19,12,64,8,20,200,17,11,15,92,65,32,20,205,9,216,9,227,9,20,1,132,4,56,20,193,13,143,4,16,6,154,4,165,4,92,20,34,0,9,1,236,65,248,32,44,20,148,18,99,4,104,20,116,17,110,4,64,21,32,35,78,0,20,1,196,18,96,43,108,43,163,1,104,50,72,19,116,20,198,4,44,15,76,8,42,1,140,20,213,10,87,8,220,4,141,1,176,20,157,14,249,9,254,0,48,40,36,19,146,14,144,19,20,17,27,6,4,10,226,2,149,2,22,4,96,31,64,69,164,20,164,20,88,69,100,69,31,1,112,69,124,69,136,69,148,69,160,69,172,69,184,69,196,69,42,1,209,4,209,4,231,15,208,69,176,20,220,69,242,15,232,69,244,69,220,4,0,70,12,70,24,70,36,70,48,70,60,70,72,70,84,70,96,70,108,70,253,15,120,70,132,70,144,70,156,70,168,70,180,70,192,70,204,70,216,70,228,70,240,70,252,70,8,71,20,71,32,71,44,71,56,71,68,71,80,71,92,71,104,71,116,71,8,16,128,71,140,71,152,71,188,20,164,71,176,71,188,71,200,71,212,71,224,71,236,71,200,20,212,20,248,71,19,16,4,72,224,20,236,20,16,72,248,20,4,21,16,21,40,72,52,72,64,72,28,21,76,72,40,21,88,72,100,72,112,72,124,72,136,72,148,72,160,72,172,72,184,72,196,72,208,72,220,72,232,72,244,72,0,73,12,73,24,73,36,73,48,73,60,73,72,73,84,73,96,73,108,73,63,16,120,73,132,73,144,73,156,73,168,73,180,73,204,73,52,21,52,21,216,73,228,73,240,73,231,4,252,73,8,74,20,74,64,21,229,16,85,16,96,16,242,4,107,16,118,16,8,5,253,4,34,0,129,16,19,5,140,16,151,16,162,16,173,16,184,16,34,0,195,16,206,16,76,21,32,74,88,21,44,74,56,74,68,74,217,16,80,74,170,170,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,199,41,0,32,7,0,0,0,29,9,0,0,206,41,0,0,206,41,0,0,159,1,0,0,1,0,0,0,254,33,0,0,109,97,112,84,105,109,101,122,111,110,101,115,0,65,99,114,101,0,48,48,49,0,65,102,103,104,97,110,105,115,116,97,110,0,65,102,114,105,99,97,95,67,101,110,116,114,97,108,0,66,73,0,66,87,0,67,68,0,77,87,0,82,87,0,90,77,0,90,87,0,65,102,114,105,99,97,95,69,97,115,116,101,114,110,0,68,74,0,69,82,0,69,84,0,75,77,0,77,71,0,83,79,0,84,90,0,85,71,0,89,84,0,65,102,114,105,99,97,95,70,97,114,87,101,115,116,101,114,110,0,65,102,114,105,99,97,95,83,111,117,116,104,101,114,110,0,76,83,0,83,90,0,65,102,114,105,99,97,95,87,101,115,116,101,114,110,0,65,79,0,66,74,0,67,70,0,67,71,0,67,77,0,71,65,0,71,81,0,78,69,0,84,68,0,65,107,116,121,117,98,105,110,115,107,0,65,108,97,115,107,97,0,65,108,97,115,107,97,95,72,97,119,97,105,105,0,65,109,97,122,111,110,0,65,109,101,114,105,99,97,95,67,101,110,116,114,97,108,0,66,90,0,67,65,0,67,82,0,71,84,0,72,78,0,77,88,0,83,86,0,65,109,101,114,105,99,97,95,69,97,115,116,101,114,110,0,66,83,0,72,84,0,74,77,0,75,89,0,80,65,0,65,109,101,114,105,99,97,95,77,111,117,110,116,97,105,110,0,65,109,101,114,105,99,97,95,80,97,99,105,102,105,99,0,65,114,97,98,105,97,110,0,66,72,0,73,81,0,75,87,0,81,65,0,89,69,0,65,114,103,101,110,116,105,110,97,0,65,114,103,101,110,116,105,110,97,95,87,101,115,116,101,114,110,0,65,114,109,101,110,105,97,0,65,115,104,107,104,97,98,97,100,0,65,116,108,97,110,116,105,99,0,65,71,0,65,73,0,65,87,0,66,66,0,66,77,0,66,81,0,67,87,0,68,77,0,71,68,0,71,76,0,71,80,0,75,78,0,76,67,0,77,70,0,77,81,0,77,83,0,80,82,0,83,88,0,84,84,0,86,67,0,86,71,0,86,73,0,65,117,115,116,114,97,108,105,97,95,67,101,110,116,114,97,108,0,65,117,115,116,114,97,108,105,97,95,67,101,110,116,114,97,108,87,101,115,116,101,114,110,0,65,117,115,116,114,97,108,105,97,95,69,97,115,116,101,114,110,0,65,117,115,116,114,97,108,105,97,95,87,101,115,116,101,114,110,0,65,122,101,114,98,97,105,106,97,110,0,66,97,110,103,108,97,100,101,115,104,0,66,101,114,105,110,103,0,66,104,117,116,97,110,0,66,111,108,105,118,105,97,0,66,111,114,110,101,111,0,66,114,97,115,105,108,105,97,0,66,114,105,116,105,115,104,0,67,104,97,109,111,114,114,111,0,71,85,0,67,104,105,108,101,0,67,104,105,110,97,0,67,111,108,111,109,98,105,97,0,67,111,111,107,0,67,117,98,97,0,68,97,99,99,97,0,68,111,109,105,110,105,99,97,110,0,68,117,116,99,104,95,71,117,105,97,110,97,0,69,97,115,116,95,84,105,109,111,114,0,69,99,117,97,100,111,114,0,69,117,114,111,112,101,95,67,101,110,116,114,97,108,0,65,68,0,65,76,0,65,84,0,66,65,0,66,69,0,67,72,0,67,90,0,68,69,0,68,75,0,69,83,0,71,73,0,72,82,0,72,85,0,73,84,0,76,73,0,76,85,0,77,67,0,77,69,0,77,75,0,78,76,0,78,79,0,80,76,0,82,83,0,83,69,0,83,73,0,83,74,0,83,75,0,83,77,0,84,78,0,86,65,0,88,75,0,69,117,114,111,112,101,95,69,97,115,116,101,114,110,0,65,88,0,66,71,0,67,89,0,69,71,0,70,73,0,71,82,0,76,66,0,69,117,114,111,112,101,95,70,117,114,116,104,101,114,95,69,97,115,116,101,114,110,0,82,85,0,69,117,114,111,112,101,95,87,101,115,116,101,114,110,0,70,79,0,70,97,108,107,108,97,110,100,0,70,114,101,110,99,104,95,71,117,105,97,110,97,0,70,114,101,110,99,104,95,83,111,117,116,104,101,114,110,0,70,114,117,110,122,101,0,66,70,0,67,73,0,71,66,0,71,72,0,71,77,0,71,78,0,73,69,0,77,76,0,77,82,0,83,72,0,83,76,0,83,78,0,84,71,0,71,105,108,98,101,114,116,95,73,115,108,97,110,100,115,0,71,114,101,101,110,108,97,110,100,0,71,114,101,101,110,108,97,110,100,95,67,101,110,116,114,97,108,0,71,114,101,101,110,108,97,110,100,95,69,97,115,116,101,114,110,0,71,114,101,101,110,108,97,110,100,95,87,101,115,116,101,114,110,0,71,117,108,102,0,79,77,0,72,97,119,97,105,105,95,65,108,101,117,116,105,97,110,0,73,110,100,105,97,0,76,75,0,73,110,100,105,97,110,95,79,99,101,97,110,0,73,110,100,111,99,104,105,110,97,0,75,72,0,76,65,0,73,110,100,111,110,101,115,105,97,95,67,101,110,116,114,97,108,0,73,110,100,111,110,101,115,105,97,95,69,97,115,116,101,114,110,0,73,110,100,111,110,101,115,105,97,95,87,101,115,116,101,114,110,0,73,114,97,110,0,73,114,105,115,104,0,73,115,114,97,101,108,0,74,97,112,97,110,0,75,97,122,97,107,104,115,116,97,110,0,75,97,122,97,107,104,115,116,97,110,95,69,97,115,116,101,114,110,0,75,97,122,97,107,104,115,116,97,110,95,87,101,115,116,101,114,110,0,75,105,122,105,108,111,114,100,97,0,75,111,114,101,97,0,75,117,121,98,121,115,104,101,118,0,75,121,114,103,121,115,116,97,110,0,76,97,110,107,97,0,76,105,98,101,114,105,97,0,76,105,110,101,95,73,115,108,97,110,100,115,0,77,97,108,97,121,97,0,77,97,108,97,121,115,105,97,0,77,97,114,115,104,97,108,108,95,73,115,108,97,110,100,115,0,77,101,120,105,99,111,95,80,97,99,105,102,105,99,0,77,111,110,103,111,108,105,97,0,77,121,97,110,109,97,114,0,78,101,112,97,108,0,78,101,119,95,67,97,108,101,100,111,110,105,97,0,78,101,119,95,90,101,97,108,97,110,100,0,65,81,0,78,101,119,102,111,117,110,100,108,97,110,100,0,78,111,114,116,104,95,77,97,114,105,97,110,97,0,80,97,107,105,115,116,97,110,0,80,97,112,117,97,95,78,101,119,95,71,117,105,110,101,97,0,80,97,114,97,103,117,97,121,0,80,101,114,117,0,80,104,105,108,105,112,112,105,110,101,115,0,80,104,111,101,110,105,120,95,73,115,108,97,110,100,115,0,80,105,101,114,114,101,95,77,105,113,117,101,108,111,110,0,83,97,109,111,97,0,83,101,121,99,104,101,108,108,101,115,0,83,104,101,118,99,104,101,110,107,111,0,83,111,108,111,109,111,110,0,83,117,114,105,110,97,109,101,0,83,118,101,114,100,108,111,118,115,107,0,84,97,106,105,107,105,115,116,97,110,0,84,111,107,101,108,97,117,0,84,111,110,103,97,0,84,117,114,107,101,121,0,84,117,114,107,109,101,110,105,115,116,97,110,0,84,117,118,97,108,117,0,85,114,97,108,115,107,0,85,114,117,103,117,97,121,0,85,122,98,101,107,105,115,116,97,110,0,86,97,110,117,97,116,117,0,86,101,110,101,122,117,101,108,97,0,89,117,107,111,110,0,109,101,116,97,122,111,110,101,73,100,115,0,97,99,114,101,0,97,102,99,101,0,97,102,101,97,0,97,102,103,104,0,97,102,115,111,0,97,102,119,101,0,97,108,97,109,0,97,108,97,115,0,97,109,97,122,0,97,109,99,101,0,97,109,101,97,0,97,109,109,111,0,97,109,112,97,0,97,110,97,100,0,97,112,105,97,0,97,113,116,97,0,97,113,116,111,0,97,114,97,98,0,97,114,103,101,0,97,114,109,101,0,97,114,119,101,0,97,117,99,101,0,97,117,99,119,0,97,117,101,97,0,97,117,119,101,0,97,122,101,114,0,97,122,111,114,0,98,97,110,103,0,98,104,117,116,0,98,111,108,105,0,98,114,97,115,0,98,114,117,110,0,99,97,115,101,0,99,97,118,101,0,99,104,97,109,0,99,104,97,116,0,99,104,105,108,0,99,104,105,110,0,99,104,114,105,0,99,111,99,111,0,99,111,108,111,0,99,111,111,107,0,99,117,98,97,0,100,97,118,105,0,100,117,109,111,0,101,97,115,116,0,101,97,116,105,0,101,99,117,97,0,101,117,99,101,0,101,117,101,97,0,101,117,102,101,0,101,117,119,101,0,102,97,108,107,0,102,105,106,105,0,102,114,103,117,0,102,114,115,111,0,103,97,108,97,0,103,97,109,98,0,103,101,111,114,0,103,105,105,115,0,103,114,101,97,0,103,114,101,101,0,103,114,119,101,0,103,117,97,109,0,103,117,108,102,0,103,117,121,97,0,104,97,97,108,0,104,111,107,111,0,104,111,118,100,0,105,110,100,105,0,105,110,100,111,0,105,110,111,99,0,105,110,119,101,0,105,114,97,110,0,105,114,107,117,0,105,115,114,97,0,106,97,112,97,0,107,97,101,97,0,107,97,109,99,0,107,97,119,101,0,107,97,122,97,0,107,111,114,101,0,107,111,115,114,0,107,114,97,115,0,107,121,114,103,0,108,97,110,107,0,108,105,105,115,0,108,111,104,111,0,109,97,99,97,0,109,97,103,97,0,109,97,105,115,0,109,97,108,100,0,109,97,114,113,0,109,97,117,114,0,109,97,119,115,0,109,101,112,97,0,109,103,109,116,0,109,111,110,103,0,109,111,115,99,0,109,121,97,110,0,110,97,117,114,0,110,101,99,97,0,110,101,112,97,0,110,101,119,102,0,110,101,122,101,0,110,105,117,101,0,110,111,109,97,0,110,111,114,102,0,110,111,114,111,0,110,111,118,111,0,111,109,115,107,0,112,97,107,105,0,112,97,110,103,0,112,97,114,97,0,112,101,114,117,0,112,104,105,108,0,112,104,105,115,0,112,105,109,105,0,112,105,116,99,0,112,111,110,97,0,112,121,111,110,0,113,121,122,121,0,114,101,117,110,0,114,111,116,104,0,115,97,107,104,0,115,97,109,97,0,115,97,109,111,0,115,101,121,99,0,115,105,110,103,0,115,111,103,101,0,115,111,108,111,0,115,117,114,105,0,115,121,111,119,0,116,97,104,105,0,116,97,105,112,0,116,97,106,105,0,116,111,107,101,0,116,111,110,103,0,116,114,117,107,0,116,117,114,107,0,116,117,118,97,0,117,114,117,103,0,117,122,98,101,0,118,97,110,117,0,118,101,110,101,0,118,108,97,100,0,118,111,108,103,0,118,111,115,116,0,119,97,107,101,0,119,97,108,108,0,121,97,107,117,0,121,101,107,97,0,121,117,107,111,0,109,101,116,97,122,111,110,101,73,110,102,111,0,65,102,114,105,99,97,58,65,98,105,100,106,97,110,0,65,102,114,105,99,97,58,65,99,99,114,97,0,65,102,114,105,99,97,58,65,100,100,105,115,95,65,98,97,98,97,0,65,102,114,105,99,97,58,65,108,103,105,101,114,115,0,65,102,114,105,99,97,58,65,115,109,101,114,97,0,65,102,114,105,99,97,58,66,97,109,97,107,111,0,65,102,114,105,99,97,58,66,97,110,103,117,105,0,65,102,114,105,99,97,58,66,97,110,106,117,108,0,65,102,114,105,99,97,58,66,105,115,115,97,117,0,65,102,114,105,99,97,58,66,108,97,110,116,121,114,101,0,65,102,114,105,99,97,58,66,114,97,122,122,97,118,105,108,108,101,0,65,102,114,105,99,97,58,66,117,106,117,109,98,117,114,97,0,65,102,114,105,99,97,58,67,97,105,114,111,0,65,102,114,105,99,97,58,67,97,115,97,98,108,97,110,99,97,0,65,102,114,105,99,97,58,67,101,117,116,97,0,65,102,114,105,99,97,58,67,111,110,97,107,114,121,0,65,102,114,105,99,97,58,68,97,107,97,114,0,65,102,114,105,99,97,58,68,97,114,95,101,115,95,83,97,108,97,97,109,0,65,102,114,105,99,97,58,68,106,105,98,111,117,116,105,0,65,102,114,105,99,97,58,68,111,117,97,108,97,0,65,102,114,105,99,97,58,69,108,95,65,97,105,117,110,0,65,102,114,105,99,97,58,70,114,101,101,116,111,119,110,0,65,102,114,105,99,97,58,71,97,98,111,114,111,110,101,0,65,102,114,105,99,97,58,72,97,114,97,114,101,0,65,102,114,105,99,97,58,74,111,104,97,110,110,101,115,98,117,114,103,0,65,102,114,105,99,97,58,74,117,98,97,0,65,102,114,105,99,97,58,75,97,109,112,97,108,97,0,65,102,114,105,99,97,58,75,104,97,114,116,111,117,109,0,65,102,114,105,99,97,58,75,105,103,97,108,105,0,65,102,114,105,99,97,58,75,105,110,115,104,97,115,97,0,65,102,114,105,99,97,58,76,97,103,111,115,0,65,102,114,105,99,97,58,76,105,98,114,101,118,105,108,108,101,0,65,102,114,105,99,97,58,76,111,109,101,0,65,102,114,105,99,97,58,76,117,97,110,100,97,0,65,102,114,105,99,97,58,76,117,98,117,109,98,97,115,104,105,0,65,102,114,105,99,97,58,76,117,115,97,107,97,0,65,102,114,105,99,97,58,77,97,108,97,98,111,0,65,102,114,105,99,97,58,77,97,112,117,116,111,0,65,102,114,105,99,97,58,77,97,115,101,114,117,0,65,102,114,105,99,97,58,77,98,97,98,97,110,101,0,65,102,114,105,99,97,58,77,111,103,97,100,105,115,104,117,0,65,102,114,105,99,97,58,77,111,110,114,111,118,105,97,0,65,102,114,105,99,97,58,78,97,105,114,111,98,105,0,65,102,114,105,99,97,58,78,100,106,97,109,101,110,97,0,65,102,114,105,99,97,58,78,105,97,109,101,121,0,65,102,114,105,99,97,58,78,111,117,97,107,99,104,111,116,116,0,65,102,114,105,99,97,58,79,117,97,103,97,100,111,117,103,111,117,0,65,102,114,105,99,97,58,80,111,114,116,111,45,78,111,118,111,0,65,102,114,105,99,97,58,83,97,111,95,84,111,109,101,0,65,102,114,105,99,97,58,84,114,105,112,111,108,105,0,65,102,114,105,99,97,58,84,117,110,105,115,0,65,102,114,105,99,97,58,87,105,110,100,104,111,101,107,0,65,109,101,114,105,99,97,58,65,100,97,107,0,65,109,101,114,105,99,97,58,65,110,99,104,111,114,97,103,101,0,65,109,101,114,105,99,97,58,65,110,103,117,105,108,108,97,0,65,109,101,114,105,99,97,58,65,110,116,105,103,117,97,0,65,109,101,114,105,99,97,58,65,114,97,103,117,97,105,110,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,76,97,95,82,105,111,106,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,82,105,111,95,71,97,108,108,101,103,111,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,108,116,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,74,117,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,76,117,105,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,84,117,99,117,109,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,85,115,104,117,97,105,97,0,65,109,101,114,105,99,97,58,65,114,117,98,97,0,65,109,101,114,105,99,97,58,65,115,117,110,99,105,111,110,0,65,109,101,114,105,99,97,58,66,97,104,105,97,0,65,109,101,114,105,99,97,58,66,97,104,105,97,95,66,97,110,100,101,114,97,115,0,65,109,101,114,105,99,97,58,66,97,114,98,97,100,111,115,0,65,109,101,114,105,99,97,58,66,101,108,101,109,0,65,109,101,114,105,99,97,58,66,101,108,105,122,101,0,65,109,101,114,105,99,97,58,66,108,97,110,99,45,83,97,98,108,111,110,0,65,109,101,114,105,99,97,58,66,111,97,95,86,105,115,116,97,0,65,109,101,114,105,99,97,58,66,111,103,111,116,97,0,65,109,101,114,105,99,97,58,66,111,105,115,101,0,65,109,101,114,105,99,97,58,66,117,101,110,111,115,95,65,105,114,101,115,0,65,109,101,114,105,99,97,58,67,97,109,98,114,105,100,103,101,95,66,97,121,0,65,109,101,114,105,99,97,58,67,97,109,112,111,95,71,114,97,110,100,101,0,65,109,101,114,105,99,97,58,67,97,110,99,117,110,0,65,109,101,114,105,99,97,58,67,97,114,97,99,97,115,0,65,109,101,114,105,99,97,58,67,97,116,97,109,97,114,99,97,0,65,109,101,114,105,99,97,58,67,97,121,101,110,110,101,0,65,109,101,114,105,99,97,58,67,97,121,109,97,110,0,65,109,101,114,105,99,97,58,67,104,105,99,97,103,111,0,65,109,101,114,105,99,97,58,67,104,105,104,117,97,104,117,97,0,65,109,101,114,105,99,97,58,67,105,117,100,97,100,95,74,117,97,114,101,122,0,65,109,101,114,105,99,97,58,67,111,114,97,108,95,72,97,114,98,111,117,114,0,65,109,101,114,105,99,97,58,67,111,114,100,111,98,97,0,65,109,101,114,105,99,97,58,67,111,115,116,97,95,82,105,99,97,0,65,109,101,114,105,99,97,58,67,114,101,115,116,111,110,0,65,109,101,114,105,99,97,58,67,117,105,97,98,97,0,65,109,101,114,105,99,97,58,67,117,114,97,99,97,111,0,65,109,101,114,105,99,97,58,68,97,110,109,97,114,107,115,104,97,118,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,95,67,114,101,101,107,0,65,109,101,114,105,99,97,58,68,101,110,118,101,114,0,65,109,101,114,105,99,97,58,68,101,116,114,111,105,116,0,65,109,101,114,105,99,97,58,68,111,109,105,110,105,99,97,0,65,109,101,114,105,99,97,58,69,100,109,111,110,116,111,110,0,65,109,101,114,105,99,97,58,69,105,114,117,110,101,112,101,0,65,109,101,114,105,99,97,58,69,108,95,83,97,108,118,97,100,111,114,0,65,109,101,114,105,99,97,58,70,111,114,116,95,78,101,108,115,111,110,0,65,109,101,114,105,99,97,58,70,111,114,116,97,108,101,122,97,0,65,109,101,114,105,99,97,58,71,108,97,99,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,111,100,116,104,97,98,0,65,109,101,114,105,99,97,58,71,111,111,115,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,114,97,110,100,95,84,117,114,107,0,65,109,101,114,105,99,97,58,71,114,101,110,97,100,97,0,65,109,101,114,105,99,97,58,71,117,97,100,101,108,111,117,112,101,0,65,109,101,114,105,99,97,58,71,117,97,116,101,109,97,108,97,0,65,109,101,114,105,99,97,58,71,117,97,121,97,113,117,105,108,0,65,109,101,114,105,99,97,58,71,117,121,97,110,97,0,65,109,101,114,105,99,97,58,72,97,108,105,102,97,120,0,65,109,101,114,105,99,97,58,72,97,118,97,110,97,0,65,109,101,114,105,99,97,58,72,101,114,109,111,115,105,108,108,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,75,110,111,120,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,77,97,114,101,110,103,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,80,101,116,101,114,115,98,117,114,103,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,84,101,108,108,95,67,105,116,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,101,118,97,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,105,110,99,101,110,110,101,115,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,87,105,110,97,109,97,99,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,112,111,108,105,115,0,65,109,101,114,105,99,97,58,73,110,117,118,105,107,0,65,109,101,114,105,99,97,58,73,113,97,108,117,105,116,0,65,109,101,114,105,99,97,58,74,97,109,97,105,99,97,0,65,109,101,114,105,99,97,58,74,117,106,117,121,0,65,109,101,114,105,99,97,58,74,117,110,101,97,117,0,65,109,101,114,105,99,97,58,75,101,110,116,117,99,107,121,58,77,111,110,116,105,99,101,108,108,111,0,65,109,101,114,105,99,97,58,75,114,97,108,101,110,100,105,106,107,0,65,109,101,114,105,99,97,58,76,97,95,80,97,122,0,65,109,101,114,105,99,97,58,76,105,109,97,0,65,109,101,114,105,99,97,58,76,111,115,95,65,110,103,101,108,101,115,0,65,109,101,114,105,99,97,58,76,111,117,105,115,118,105,108,108,101,0,65,109,101,114,105,99,97,58,76,111,119,101,114,95,80,114,105,110,99,101,115,0,65,109,101,114,105,99,97,58,77,97,99,101,105,111,0,65,109,101,114,105,99,97,58,77,97,110,97,103,117,97,0,65,109,101,114,105,99,97,58,77,97,110,97,117,115,0,65,109,101,114,105,99,97,58,77,97,114,105,103,111,116,0,65,109,101,114,105,99,97,58,77,97,114,116,105,110,105,113,117,101,0,65,109,101,114,105,99,97,58,77,97,116,97,109,111,114,111,115,0,65,109,101,114,105,99,97,58,77,97,122,97,116,108,97,110,0,65,109,101,114,105,99,97,58,77,101,110,100,111,122,97,0,65,109,101,114,105,99,97,58,77,101,110,111,109,105,110,101,101,0,65,109,101,114,105,99,97,58,77,101,114,105,100,97,0,65,109,101,114,105,99,97,58,77,101,116,108,97,107,97,116,108,97,0,65,109,101,114,105,99,97,58,77,101,120,105,99,111,95,67,105,116,121,0,65,109,101,114,105,99,97,58,77,105,113,117,101,108,111,110,0,65,109,101,114,105,99,97,58,77,111,110,99,116,111,110,0,65,109,101,114,105,99,97,58,77,111,110,116,101,114,114,101,121,0,65,109,101,114,105,99,97,58,77,111,110,116,101,118,105,100,101,111,0,65,109,101,114,105,99,97,58,77,111,110,116,115,101,114,114,97,116,0,65,109,101,114,105,99,97,58,78,97,115,115,97,117,0,65,109,101,114,105,99,97,58,78,101,119,95,89,111,114,107,0,65,109,101,114,105,99,97,58,78,111,109,101,0,65,109,101,114,105,99,97,58,78,111,114,111,110,104,97,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,66,101,117,108,97,104,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,67,101,110,116,101,114,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,78,101,119,95,83,97,108,101,109,0,65,109,101,114,105,99,97,58,79,106,105,110,97,103,97,0,65,109,101,114,105,99,97,58,80,97,110,97,109,97,0,65,109,101,114,105,99,97,58,80,97,114,97,109,97,114,105,98,111,0,65,109,101,114,105,99,97,58,80,104,111,101,110,105,120,0,65,109,101,114,105,99,97,58,80,111,114,116,45,97,117,45,80,114,105,110,99,101,0,65,109,101,114,105,99,97,58,80,111,114,116,95,111,102,95,83,112,97,105,110,0,65,109,101,114,105,99,97,58,80,111,114,116,111,95,86,101,108,104,111,0,65,109,101,114,105,99,97,58,80,117,101,114,116,111,95,82,105,99,111,0,65,109,101,114,105,99,97,58,80,117,110,116,97,95,65,114,101,110,97,115,0,65,109,101,114,105,99,97,58,82,97,110,107,105,110,95,73,110,108,101,116,0,65,109,101,114,105,99,97,58,82,101,99,105,102,101,0,65,109,101,114,105,99,97,58,82,101,103,105,110,97,0,65,109,101,114,105,99,97,58,82,101,115,111,108,117,116,101,0,65,109,101,114,105,99,97,58,82,105,111,95,66,114,97,110,99,111,0,65,109,101,114,105,99,97,58,83,97,110,116,97,114,101,109,0,65,109,101,114,105,99,97,58,83,97,110,116,105,97,103,111,0,65,109,101,114,105,99,97,58,83,97,110,116,111,95,68,111,109,105,110,103,111,0,65,109,101,114,105,99,97,58,83,97,111,95,80,97,117,108,111,0,65,109,101,114,105,99,97,58,83,99,111,114,101,115,98,121,115,117,110,100,0,65,109,101,114,105,99,97,58,83,105,116,107,97,0,65,109,101,114,105,99,97,58,83,116,95,66,97,114,116,104,101,108,101,109,121,0,65,109,101,114,105,99,97,58,83,116,95,74,111,104,110,115,0,65,109,101,114,105,99,97,58,83,116,95,75,105,116,116,115,0,65,109,101,114,105,99,97,58,83,116,95,76,117,99,105,97,0,65,109,101,114,105,99,97,58,83,116,95,84,104,111,109,97,115,0,65,109,101,114,105,99,97,58,83,116,95,86,105,110,99,101,110,116,0,65,109,101,114,105,99,97,58,83,119,105,102,116,95,67,117,114,114,101,110,116,0,65,109,101,114,105,99,97,58,84,101,103,117,99,105,103,97,108,112,97,0,65,109,101,114,105,99,97,58,84,104,117,108,101,0,65,109,101,114,105,99,97,58,84,105,106,117,97,110,97,0,65,109,101,114,105,99,97,58,84,111,114,111,110,116,111,0,65,109,101,114,105,99,97,58,84,111,114,116,111,108,97,0,65,109,101,114,105,99,97,58,86,97,110,99,111,117,118,101,114,0,65,109,101,114,105,99,97,58,87,104,105,116,101,104,111,114,115,101,0,65,109,101,114,105,99,97,58,87,105,110,110,105,112,101,103,0,65,109,101,114,105,99,97,58,89,97,107,117,116,97,116,0,65,110,116,97,114,99,116,105,99,97,58,67,97,115,101,121,0,65,110,116,97,114,99,116,105,99,97,58,68,97,118,105,115,0,65,110,116,97,114,99,116,105,99,97,58,68,117,109,111,110,116,68,85,114,118,105,108,108,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,99,113,117,97,114,105,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,119,115,111,110,0,65,110,116,97,114,99,116,105,99,97,58,77,99,77,117,114,100,111,0,65,110,116,97,114,99,116,105,99,97,58,80,97,108,109,101,114,0,65,110,116,97,114,99,116,105,99,97,58,82,111,116,104,101,114,97,0,65,110,116,97,114,99,116,105,99,97,58,83,121,111,119,97,0,65,110,116,97,114,99,116,105,99,97,58,84,114,111,108,108,0,65,110,116,97,114,99,116,105,99,97,58,86,111,115,116,111,107,0,65,114,99,116,105,99,58,76,111,110,103,121,101,97,114,98,121,101,110,0,65,115,105,97,58,65,100,101,110,0,65,115,105,97,58,65,108,109,97,116,121,0,65,115,105,97,58,65,109,109,97,110,0,65,115,105,97,58,65,110,97,100,121,114,0,65,115,105,97,58,65,113,116,97,117,0,65,115,105,97,58,65,113,116,111,98,101,0,65,115,105,97,58,65,115,104,103,97,98,97,116,0,65,115,105,97,58,65,116,121,114,97,117,0,65,115,105,97,58,66,97,103,104,100,97,100,0,65,115,105,97,58,66,97,104,114,97,105,110,0,65,115,105,97,58,66,97,107,117,0,65,115,105,97,58,66,97,110,103,107,111,107,0,65,115,105,97,58,66,101,105,114,117,116,0,65,115,105,97,58,66,105,115,104,107,101,107,0,65,115,105,97,58,66,114,117,110,101,105,0,65,115,105,97,58,67,97,108,99,117,116,116,97,0,65,115,105,97,58,67,104,105,116,97,0,65,115,105,97,58,67,111,108,111,109,98,111,0,65,115,105,97,58,68,97,109,97,115,99,117,115,0,65,115,105,97,58,68,104,97,107,97,0,65,115,105,97,58,68,105,108,105,0,65,115,105,97,58,68,117,98,97,105,0,65,115,105,97,58,68,117,115,104,97,110,98,101,0,65,115,105,97,58,70,97,109,97,103,117,115,116,97,0,65,115,105,97,58,71,97,122,97,0,65,115,105,97,58,72,101,98,114,111,110,0,65,115,105,97,58,72,111,110,103,95,75,111,110,103,0,65,115,105,97,58,72,111,118,100,0,65,115,105,97,58,73,114,107,117,116,115,107,0,65,115,105,97,58,74,97,107,97,114,116,97,0,65,115,105,97,58,74,97,121,97,112,117,114,97,0,65,115,105,97,58,74,101,114,117,115,97,108,101,109,0,65,115,105,97,58,75,97,98,117,108,0,65,115,105,97,58,75,97,109,99,104,97,116,107,97,0,65,115,105,97,58,75,97,114,97,99,104,105,0,65,115,105,97,58,75,97,116,109,97,110,100,117,0,65,115,105,97,58,75,104,97,110,100,121,103,97,0,65,115,105,97,58,75,114,97,115,110,111,121,97,114,115,107,0,65,115,105,97,58,75,117,97,108,97,95,76,117,109,112,117,114,0,65,115,105,97,58,75,117,99,104,105,110,103,0,65,115,105,97,58,75,117,119,97,105,116,0,65,115,105,97,58,77,97,99,97,117,0,65,115,105,97,58,77,97,103,97,100,97,110,0,65,115,105,97,58,77,97,107,97,115,115,97,114,0,65,115,105,97,58,77,97,110,105,108,97,0,65,115,105,97,58,77,117,115,99,97,116,0,65,115,105,97,58,78,105,99,111,115,105,97,0,65,115,105,97,58,78,111,118,111,107,117,122,110,101,116,115,107,0,65,115,105,97,58,78,111,118,111,115,105,98,105,114,115,107,0,65,115,105,97,58,79,109,115,107,0,65,115,105,97,58,79,114,97,108,0,65,115,105,97,58,80,104,110,111,109,95,80,101,110,104,0,65,115,105,97,58,80,111,110,116,105,97,110,97,107,0,65,115,105,97,58,80,121,111,110,103,121,97,110,103,0,65,115,105,97,58,81,97,116,97,114,0,65,115,105,97,58,81,111,115,116,97,110,97,121,0,65,115,105,97,58,81,121,122,121,108,111,114,100,97,0,65,115,105,97,58,82,97,110,103,111,111,110,0,65,115,105,97,58,82,105,121,97,100,104,0,65,115,105,97,58,83,97,105,103,111,110,0,65,115,105,97,58,83,97,107,104,97,108,105,110,0,65,115,105,97,58,83,97,109,97,114,107,97,110,100,0,65,115,105,97,58,83,101,111,117,108,0,65,115,105,97,58,83,104,97,110,103,104,97,105,0,65,115,105,97,58,83,105,110,103,97,112,111,114,101,0,65,115,105,97,58,83,114,101,100,110,101,107,111,108,121,109,115,107,0,65,115,105,97,58,84,97,105,112,101,105,0,65,115,105,97,58,84,97,115,104,107,101,110,116,0,65,115,105,97,58,84,98,105,108,105,115,105,0,65,115,105,97,58,84,101,104,114,97,110,0,65,115,105,97,58,84,104,105,109,112,104,117,0,65,115,105,97,58,84,111,107,121,111,0,65,115,105,97,58,85,108,97,97,110,98,97,97,116,97,114,0,65,115,105,97,58,85,114,117,109,113,105,0,65,115,105,97,58,85,115,116,45,78,101,114,97,0,65,115,105,97,58,86,105,101,110,116,105,97,110,101,0,65,115,105,97,58,86,108,97,100,105,118,111,115,116,111,107,0,65,115,105,97,58,89,97,107,117,116,115,107,0,65,115,105,97,58,89,101,107,97,116,101,114,105,110,98,117,114,103,0,65,115,105,97,58,89,101,114,101,118,97,110,0,65,116,108,97,110,116,105,99,58,65,122,111,114,101,115,0,65,116,108,97,110,116,105,99,58,66,101,114,109,117,100,97,0,65,116,108,97,110,116,105,99,58,67,97,110,97,114,121,0,65,116,108,97,110,116,105,99,58,67,97,112,101,95,86,101,114,100,101,0,65,116,108,97,110,116,105,99,58,70,97,101,114,111,101,0,65,116,108,97,110,116,105,99,58,77,97,100,101,105,114,97,0,65,116,108,97,110,116,105,99,58,82,101,121,107,106,97,118,105,107,0,65,116,108,97,110,116,105,99,58,83,111,117,116,104,95,71,101,111,114,103,105,97,0,65,116,108,97,110,116,105,99,58,83,116,95,72,101,108,101,110,97,0,65,116,108,97,110,116,105,99,58,83,116,97,110,108,101,121,0,65,117,115,116,114,97,108,105,97,58,65,100,101,108,97,105,100,101,0,65,117,115,116,114,97,108,105,97,58,66,114,105,115,98,97,110,101,0,65,117,115,116,114,97,108,105,97,58,66,114,111,107,101,110,95,72,105,108,108,0,65,117,115,116,114,97,108,105,97,58,68,97,114,119,105,110,0,65,117,115,116,114,97,108,105,97,58,69,117,99,108,97,0,65,117,115,116,114,97,108,105,97,58,72,111,98,97,114,116,0,65,117,115,116,114,97,108,105,97,58,76,105,110,100,101,109,97,110,0,65,117,115,116,114,97,108,105,97,58,76,111,114,100,95,72,111,119,101,0,65,117,115,116,114,97,108,105,97,58,77,101,108,98,111,117,114,110,101,0,65,117,115,116,114,97,108,105,97,58,80,101,114,116,104,0,65,117,115,116,114,97,108,105,97,58,83,121,100,110,101,121,0,69,116,99,58,71,77,84,0,69,117,114,111,112,101,58,65,109,115,116,101,114,100,97,109,0,69,117,114,111,112,101,58,65,110,100,111,114,114,97,0,69,117,114,111,112,101,58,65,115,116,114,97,107,104,97,110,0,69,117,114,111,112,101,58,65,116,104,101,110,115,0,69,117,114,111,112,101,58,66,101,108,103,114,97,100,101,0,69,117,114,111,112,101,58,66,101,114,108,105,110,0,69,117,114,111,112,101,58,66,114,97,116,105,115,108,97,118,97,0,69,117,114,111,112,101,58,66,114,117,115,115,101,108,115,0,69,117,114,111,112,101,58,66,117,99,104,97,114,101,115,116,0,69,117,114,111,112,101,58,66,117,100,97,112,101,115,116,0,69,117,114,111,112,101,58,66,117,115,105,110,103,101,110,0,69,117,114,111,112,101,58,67,104,105,115,105,110,97,117,0,69,117,114,111,112,101,58,67,111,112,101,110,104,97,103,101,110,0,69,117,114,111,112,101,58,68,117,98,108,105,110,0,69,117,114,111,112,101,58,71,105,98,114,97,108,116,97,114,0,69,117,114,111,112,101,58,71,117,101,114,110,115,101,121,0,69,117,114,111,112,101,58,72,101,108,115,105,110,107,105,0,69,117,114,111,112,101,58,73,115,108,101,95,111,102,95,77,97,110,0,69,117,114,111,112,101,58,73,115,116,97,110,98,117,108,0,69,117,114,111,112,101,58,74,101,114,115,101,121,0,69,117,114,111,112,101,58,75,97,108,105,110,105,110,103,114,97,100,0,69,117,114,111,112,101,58,75,105,101,118,0,69,117,114,111,112,101,58,76,105,115,98,111,110,0,69,117,114,111,112,101,58,76,106,117,98,108,106,97,110,97,0,69,117,114,111,112,101,58,76,111,110,100,111,110,0,69,117,114,111,112,101,58,76,117,120,101,109,98,111,117,114,103,0,69,117,114,111,112,101,58,77,97,100,114,105,100,0,69,117,114,111,112,101,58,77,97,108,116,97,0,69,117,114,111,112,101,58,77,97,114,105,101,104,97,109,110,0,69,117,114,111,112,101,58,77,105,110,115,107,0,69,117,114,111,112,101,58,77,111,110,97,99,111,0,69,117,114,111,112,101,58,77,111,115,99,111,119,0,69,117,114,111,112,101,58,79,115,108,111,0,69,117,114,111,112,101,58,80,97,114,105,115,0,69,117,114,111,112,101,58,80,111,100,103,111,114,105,99,97,0,69,117,114,111,112,101,58,80,114,97,103,117,101,0,69,117,114,111,112,101,58,82,105,103,97,0,69,117,114,111,112,101,58,82,111,109,101,0,69,117,114,111,112,101,58,83,97,109,97,114,97,0,69,117,114,111,112,101,58,83,97,110,95,77,97,114,105,110,111,0,69,117,114,111,112,101,58,83,97,114,97,106,101,118,111,0,69,117,114,111,112,101,58,83,97,114,97,116,111,118,0,69,117,114,111,112,101,58,83,105,109,102,101,114,111,112,111,108,0,69,117,114,111,112,101,58,83,107,111,112,106,101,0,69,117,114,111,112,101,58,83,111,102,105,97,0,69,117,114,111,112,101,58,83,116,111,99,107,104,111,108,109,0,69,117,114,111,112,101,58,84,97,108,108,105,110,110,0,69,117,114,111,112,101,58,84,105,114,97,110,101,0,69,117,114,111,112,101,58,85,108,121,97,110,111,118,115,107,0,69,117,114,111,112,101,58,86,97,100,117,122,0,69,117,114,111,112,101,58,86,97,116,105,99,97,110,0,69,117,114,111,112,101,58,86,105,101,110,110,97,0,69,117,114,111,112,101,58,86,105,108,110,105,117,115,0,69,117,114,111,112,101,58,86,111,108,103,111,103,114,97,100,0,69,117,114,111,112,101,58,87,97,114,115,97,119,0,69,117,114,111,112,101,58,90,97,103,114,101,98,0,69,117,114,111,112,101,58,90,117,114,105,99,104,0,73,110,100,105,97,110,58,65,110,116,97,110,97,110,97,114,105,118,111,0,73,110,100,105,97,110,58,67,104,97,103,111,115,0,73,110,100,105,97,110,58,67,104,114,105,115,116,109,97,115,0,73,110,100,105,97,110,58,67,111,99,111,115,0,73,110,100,105,97,110,58,67,111,109,111,114,111,0,73,110,100,105,97,110,58,75,101,114,103,117,101,108,101,110,0,73,110,100,105,97,110,58,77,97,104,101,0,73,110,100,105,97,110,58,77,97,108,100,105,118,101,115,0,73,110,100,105,97,110,58,77,97,117,114,105,116,105,117,115,0,73,110,100,105,97,110,58,77,97,121,111,116,116,101,0,73,110,100,105,97,110,58,82,101,117,110,105,111,110,0,80,97,99,105,102,105,99,58,65,112,105,97,0,80,97,99,105,102,105,99,58,65,117,99,107,108,97,110,100,0,80,97,99,105,102,105,99,58,66,111,117,103,97,105,110,118,105,108,108,101,0,80,97,99,105,102,105,99,58,67,104,97,116,104,97,109,0,80,97,99,105,102,105,99,58,69,97,115,116,101,114,0,80,97,99,105,102,105,99,58,69,102,97,116,101,0,80,97,99,105,102,105,99,58,69,110,100,101,114,98,117,114,121,0,80,97,99,105,102,105,99,58,70,97,107,97,111,102,111,0,80,97,99,105,102,105,99,58,70,105,106,105,0,80,97,99,105,102,105,99,58,70,117,110,97,102,117,116,105,0,80,97,99,105,102,105,99,58,71,97,108,97,112,97,103,111,115,0,80,97,99,105,102,105,99,58,71,97,109,98,105,101,114,0,80,97,99,105,102,105,99,58,71,117,97,100,97,108,99,97,110,97,108,0,80,97,99,105,102,105,99,58,71,117,97,109,0,80,97,99,105,102,105,99,58,72,111,110,111,108,117,108,117,0,80,97,99,105,102,105,99,58,75,105,114,105,116,105,109,97,116,105,0,80,97,99,105,102,105,99,58,75,111,115,114,97,101,0,80,97,99,105,102,105,99,58,75,119,97,106,97,108,101,105,110,0,80,97,99,105,102,105,99,58,77,97,106,117,114,111,0,80,97,99,105,102,105,99,58,77,97,114,113,117,101,115,97,115,0,80,97,99,105,102,105,99,58,77,105,100,119,97,121,0,80,97,99,105,102,105,99,58,78,97,117,114,117,0,80,97,99,105,102,105,99,58,78,105,117,101,0,80,97,99,105,102,105,99,58,78,111,114,102,111,108,107,0,80,97,99,105,102,105,99,58,78,111,117,109,101,97,0,80,97,99,105,102,105,99,58,80,97,103,111,95,80,97,103,111,0,80,97,99,105,102,105,99,58,80,97,108,97,117,0,80,97,99,105,102,105,99,58,80,105,116,99,97,105,114,110,0,80,97,99,105,102,105,99,58,80,111,110,97,112,101,0,80,97,99,105,102,105,99,58,80,111,114,116,95,77,111,114,101,115,98,121,0,80,97,99,105,102,105,99,58,82,97,114,111,116,111,110,103,97,0,80,97,99,105,102,105,99,58,83,97,105,112,97,110,0,80,97,99,105,102,105,99,58,84,97,104,105,116,105,0,80,97,99,105,102,105,99,58,84,97,114,97,119,97,0,80,97,99,105,102,105,99,58,84,111,110,103,97,116,97,112,117,0,80,97,99,105,102,105,99,58,84,114,117,107,0,80,97,99,105,102,105,99,58,87,97,107,101,0,80,97,99,105,102,105,99,58,87,97,108,108,105,115,0,112,114,105,109,97,114,121,90,111,110,101,115,0,67,76,0,67,78,0,69,67,0,77,72,0,77,89,0,78,90,0,80,84,0,85,65,0,85,90,0,170,0,0,71,0,77,0,84,0,0,0,65,0,99,0,114,0,101,0,0,0,71,0,117,0,108,0,102,0,0,0,67,0,111,0,111,0,107,0,0,0,67,0,117,0,98,0,97,0,0,0,73,0,114,0,97,0,110,0,0,0,80,0,101,0,114,0,117,0,0,0,73,0,110,0,100,0,105,0,97,0,0,0,67,0,104,0,105,0,108,0,101,0,0,0,75,0,111,0,114,0,101,0,97,0,0,0,67,0,104,0,105,0,110,0,97,0,0,0,83,0,97,0,109,0,111,0,97,0,0,0,89,0,117,0,107,0,111,0,110,0,0,0,74,0,97,0,112,0,97,0,110,0,0,0,76,0,97,0,110,0,107,0,97,0,0,0,78,0,101,0,112,0,97,0,108,0,0,0,84,0,111,0,110,0,103,0,97,0,0,0,68,0,97,0,99,0,99,0,97,0,0,0,73,0,114,0,105,0,115,0,104,0,0,0,65,0,109,0,97,0,122,0,111,0,110,0,0,0,65,0,108,0,97,0,115,0,107,0,97,0,0,0,66,0,101,0,114,0,105,0,110,0,103,0,0,0,73,0,115,0,114,0,97,0,101,0,108,0,0,0,66,0,104,0,117,0,116,0,97,0,110,0,0,0,84,0,117,0,114,0,107,0,101,0,121,0,0,0,84,0,117,0,118,0,97,0,108,0,117,0,0,0,66,0,111,0,114,0,110,0,101,0,111,0,0,0,70,0,114,0,117,0,110,0,122,0,101,0,0,0,77,0,97,0,108,0,97,0,121,0,97,0,0,0,85,0,114,0,97,0,108,0,115,0,107,0,0,0,65,0,114,0,97,0,98,0,105,0,97,0,110,0,0,0,66,0,114,0,105,0,116,0,105,0,115,0,104,0,0,0,69,0,99,0,117,0,97,0,100,0,111,0,114,0,0,0,65,0,114,0,109,0,101,0,110,0,105,0,97,0,0,0,66,0,111,0,108,0,105,0,118,0,105,0,97,0,0,0,77,0,121,0,97,0,110,0,109,0,97,0,114,0,0,0,83,0,111,0,108,0,111,0,109,0,111,0,110,0,0,0,84,0,111,0,107,0,101,0,108,0,97,0,117,0,0,0,85,0,114,0,117,0,103,0,117,0,97,0,121,0,0,0,86,0,97,0,110,0,117,0,97,0,116,0,117,0,0,0,76,0,105,0,98,0,101,0,114,0,105,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,0,0,66,0,114,0,97,0,115,0,105,0,108,0,105,0,97,0,0,0,67,0,104,0,97,0,109,0,111,0,114,0,114,0,111,0,0,0,77,0,97,0,108,0,97,0,121,0,115,0,105,0,97,0,0,0,67,0,111,0,108,0,111,0,109,0,98,0,105,0,97,0,0,0,70,0,97,0,108,0,107,0,108,0,97,0,110,0,100,0,0,0,77,0,111,0,110,0,103,0,111,0,108,0,105,0,97,0,0,0,80,0,97,0,107,0,105,0,115,0,116,0,97,0,110,0,0,0,80,0,97,0,114,0,97,0,103,0,117,0,97,0,121,0,0,0,83,0,117,0,114,0,105,0,110,0,97,0,109,0,101,0,0,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,0,0,73,0,110,0,100,0,111,0,99,0,104,0,105,0,110,0,97,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,107,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,114,0,97,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,118,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,109,0,115,0,107,0,0,0,75,0,121,0,114,0,103,0,121,0,115,0,116,0,97,0,110,0,0,0,86,0,101,0,110,0,101,0,122,0,117,0,101,0,108,0,97,0,0,0,65,0,115,0,104,0,107,0,104,0,97,0,98,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,100,0,101,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,105,0,108,0,105,0,0,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,110,0,0,0,75,0,105,0,122,0,105,0,108,0,111,0,114,0,100,0,97,0,0,0,75,0,117,0,121,0,98,0,121,0,115,0,104,0,101,0,118,0,0,0,75,0,97,0,122,0,97,0,107,0,104,0,115,0,116,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,97,0,117,0,0,0,69,0,97,0,115,0,116,0,95,0,84,0,105,0,109,0,111,0,114,0,0,0,85,0,122,0,98,0,101,0,107,0,105,0,115,0,116,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,122,0,101,0,114,0,98,0,97,0,105,0,106,0,97,0,110,0,0,0,66,0,97,0,110,0,103,0,108,0,97,0,100,0,101,0,115,0,104,0,0,0,83,0,101,0,121,0,99,0,104,0,101,0,108,0,108,0,101,0,115,0,0,0,84,0,97,0,106,0,105,0,107,0,105,0,115,0,116,0,97,0,110,0,0,0,65,0,107,0,116,0,121,0,117,0,98,0,105,0,110,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,98,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,97,0,116,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,83,0,104,0,101,0,118,0,99,0,104,0,101,0,110,0,107,0,111,0,0,0,83,0,118,0,101,0,114,0,100,0,108,0,111,0,118,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,108,0,109,0,97,0,116,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,111,0,98,0,101,0,0,0,78,0,101,0,119,0,95,0,90,0,101,0,97,0,108,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,110,0,97,0,100,0,121,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,114,0,117,0,110,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,102,0,103,0,104,0,97,0,110,0,105,0,115,0,116,0,97,0,110,0,0,0,80,0,104,0,105,0,108,0,105,0,112,0,112,0,105,0,110,0,101,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,109,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,101,0,105,0,114,0,117,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,119,0,97,0,105,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,110,0,105,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,117,0,115,0,99,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,105,0,121,0,97,0,100,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,79,0,115,0,108,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,111,0,109,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,104,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,103,0,97,0,100,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,114,0,107,0,117,0,116,0,115,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,114,0,97,0,99,0,104,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,98,0,105,0,108,0,105,0,115,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,114,0,101,0,118,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,105,0,115,0,104,0,107,0,101,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,111,0,108,0,111,0,109,0,98,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,99,0,104,0,105,0,110,0,103,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,95,0,79,0,99,0,101,0,97,0,110,0,0,0,76,0,105,0,110,0,101,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,78,0,101,0,119,0,102,0,111,0,117,0,110,0,100,0,108,0,97,0,110,0,100,0,0,0,84,0,117,0,114,0,107,0,109,0,101,0,110,0,105,0,115,0,116,0,97,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,99,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,112,0,105,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,105,0,106,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,105,0,117,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,107,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,99,0,99,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,107,0,97,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,103,0,111,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,117,0,110,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,109,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,103,0,104,0,100,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,104,0,114,0,97,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,110,0,103,0,107,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,107,0,97,0,114,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,68,0,117,0,116,0,99,0,104,0,95,0,71,0,117,0,105,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,108,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,105,0,110,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,97,0,114,0,105,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,111,0,102,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,100,0,117,0,122,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,109,0,97,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,115,0,104,0,97,0,110,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,107,0,104,0,97,0,108,0,105,0,110,0,0,0,65,0,108,0,97,0,115,0,107,0,97,0,95,0,72,0,97,0,119,0,97,0,105,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,100,0,114,0,105,0,100,0,0,0,70,0,114,0,101,0,110,0,99,0,104,0,95,0,71,0,117,0,105,0,97,0,110,0,97,0,0,0,78,0,101,0,119,0,95,0,67,0,97,0,108,0,101,0,100,0,111,0,110,0,105,0,97,0,0,0,78,0,111,0,114,0,116,0,104,0,95,0,77,0,97,0,114,0,105,0,97,0,110,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,97,0,117,0,114,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,108,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,103,0,117,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,106,0,117,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,117,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,114,0,97,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,103,0,97,0,108,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,97,0,110,0,100,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,115,0,97,0,107,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,108,0,97,0,98,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,112,0,117,0,116,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,115,0,101,0,114,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,97,0,109,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,117,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,108,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,121,0,97,0,112,0,117,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,116,0,104,0,101,0,110,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,110,0,97,0,99,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,114,0,97,0,103,0,117,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,107,0,111,0,112,0,106,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,101,0,110,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,103,0,114,0,101,0,98,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,117,0,114,0,105,0,99,0,104,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,97,0,103,0,111,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,109,0,111,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,102,0,97,0,116,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,121,0,122,0,121,0,108,0,111,0,114,0,100,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,121,0,111,0,110,0,103,0,121,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,109,0,97,0,114,0,107,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,82,0,101,0,117,0,110,0,105,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,106,0,117,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,105,0,112,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,121,0,97,0,110,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,111,0,115,0,114,0,97,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,104,0,105,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,108,0,108,0,105,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,98,0,105,0,100,0,106,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,110,0,97,0,107,0,114,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,97,0,109,0,112,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,98,0,97,0,98,0,97,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,105,0,114,0,111,0,98,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,105,0,122,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,103,0,111,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,110,0,101,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,95,0,80,0,97,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,115,0,115,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,97,0,109,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,105,0,101,0,110,0,116,0,105,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,110,0,100,0,111,0,114,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,116,0,105,0,99,0,97,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,121,0,111,0,116,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,117,0,109,0,101,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,114,0,97,0,119,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,83,0,111,0,117,0,116,0,104,0,101,0,114,0,110,0,0,0,72,0,97,0,119,0,97,0,105,0,105,0,95,0,65,0,108,0,101,0,117,0,116,0,105,0,97,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,65,0,122,0,111,0,114,0,101,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,108,0,100,0,105,0,118,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,103,0,114,0,97,0,100,0,101,0,0,0,70,0,114,0,101,0,110,0,99,0,104,0,95,0,83,0,111,0,117,0,116,0,104,0,101,0,114,0,110,0,0,0,71,0,105,0,108,0,98,0,101,0,114,0,116,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,109,0,98,0,105,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,114,0,102,0,111,0,108,0,107,0,0,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,80,0,105,0,101,0,114,0,114,0,101,0,95,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,116,0,121,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,106,0,105,0,98,0,111,0,117,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,65,0,97,0,105,0,117,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,70,0,114,0,101,0,101,0,116,0,111,0,119,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,71,0,97,0,98,0,111,0,114,0,111,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,110,0,115,0,104,0,97,0,115,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,114,0,111,0,118,0,105,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,100,0,106,0,97,0,109,0,101,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,116,0,105,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,114,0,97,0,99,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,101,0,110,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,114,0,97,0,99,0,97,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,105,0,103,0,111,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,116,0,111,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,104,0,110,0,111,0,109,0,95,0,80,0,101,0,110,0,104,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,110,0,97,0,114,0,121,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,69,0,117,0,99,0,108,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,117,0,115,0,115,0,101,0,108,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,100,0,97,0,112,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,72,0,101,0,108,0,115,0,105,0,110,0,107,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,106,0,101,0,118,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,97,0,107,0,97,0,111,0,102,0,111,0,0,0,49,0,57,0,55,0,48,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,57,0,57,0,57,0,57,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,51,0,58,0,53,0,57,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,95,0,77,0,111,0,117,0,110,0,116,0,97,0,105,0,110,0,0,0,50,0,48,0,50,0,52,0,45,0,48,0,50,0,45,0,50,0,57,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,49,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,48,0,45,0,50,0,57,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,54,0,45,0,48,0,52,0,45,0,48,0,50,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,57,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,54,0,45,0,48,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,54,0,45,0,50,0,48,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,49,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,51,0,45,0,51,0,48,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,50,0,45,0,49,0,53,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,56,0,45,0,48,0,52,0,45,0,48,0,53,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,49,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,101,0,121,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,53,0,45,0,51,0,49,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,52,0,45,0,48,0,49,0,45,0,48,0,54,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,52,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,49,0,50,0,45,0,50,0,54,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,52,0,45,0,48,0,51,0,45,0,49,0,54,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,51,0,45,0,48,0,49,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,51,0,45,0,48,0,51,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,53,0,45,0,48,0,55,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,56,0,45,0,51,0,49,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,50,0,48,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,53,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,48,0,49,0,45,0,49,0,53,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,50,0,45,0,50,0,50,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,49,0,45,0,48,0,52,0,45,0,48,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,53,0,45,0,51,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,55,0,45,0,50,0,53,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,55,0,45,0,48,0,51,0,45,0,49,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,55,0,45,0,49,0,49,0,45,0,48,0,52,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,56,0,45,0,48,0,54,0,45,0,50,0,52,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,48,0,51,0,45,0,50,0,55,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,51,0,45,0,49,0,49,0,45,0,49,0,48,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,48,0,45,0,49,0,49,0,45,0,48,0,49,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,115,0,105,0,98,0,105,0,114,0,115,0,107,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,49,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,49,0,45,0,49,0,57,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,49,0,50,0,45,0,48,0,51,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,77,0,97,0,114,0,115,0,104,0,97,0,108,0,108,0,95,0,73,0,115,0,108,0,97,0,110,0,100,0,115,0,0,0,80,0,97,0,112,0,117,0,97,0,95,0,78,0,101,0,119,0,95,0,71,0,117,0,105,0,110,0,101,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,111,0,108,0,103,0,111,0,103,0,114,0,97,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,114,0,105,0,115,0,116,0,109,0,97,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,117,0,114,0,105,0,116,0,105,0,117,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,105,0,116,0,99,0,97,0,105,0,114,0,110,0,0,0,49,0,57,0,55,0,49,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,49,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,52,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,48,0,58,0,52,0,53,0,0,0,49,0,57,0,55,0,50,0,45,0,48,0,56,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,51,0,45,0,48,0,52,0,45,0,50,0,57,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,51,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,52,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,48,0,50,0,45,0,49,0,54,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,49,0,49,0,45,0,50,0,48,0,32,0,48,0,51,0,58,0,51,0,48,0,0,0,49,0,57,0,55,0,54,0,45,0,48,0,52,0,45,0,49,0,52,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,54,0,45,0,48,0,53,0,45,0,48,0,50,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,54,0,45,0,48,0,57,0,45,0,50,0,54,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,55,0,45,0,49,0,48,0,45,0,50,0,48,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,55,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,56,0,45,0,48,0,54,0,45,0,50,0,56,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,57,0,45,0,48,0,52,0,45,0,50,0,57,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,57,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,48,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,50,0,45,0,50,0,56,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,51,0,45,0,50,0,57,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,48,0,57,0,45,0,51,0,48,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,49,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,50,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,50,0,45,0,48,0,53,0,45,0,48,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,50,0,45,0,49,0,49,0,45,0,48,0,50,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,48,0,49,0,45,0,48,0,52,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,53,0,45,0,48,0,52,0,45,0,49,0,57,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,53,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,54,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,55,0,45,0,48,0,57,0,45,0,51,0,48,0,32,0,49,0,56,0,58,0,51,0,48,0,0,0,49,0,57,0,56,0,55,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,56,0,45,0,48,0,52,0,45,0,48,0,51,0,32,0,48,0,52,0,58,0,48,0,49,0,0,0,49,0,57,0,56,0,56,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,48,0,50,0,58,0,48,0,49,0,0,0,49,0,57,0,56,0,57,0,45,0,48,0,51,0,45,0,50,0,53,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,51,0,45,0,48,0,52,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,51,0,45,0,49,0,52,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,51,0,45,0,50,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,53,0,45,0,48,0,51,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,53,0,45,0,48,0,53,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,54,0,45,0,51,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,48,0,45,0,48,0,54,0,45,0,51,0,48,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,52,0,45,0,48,0,56,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,54,0,45,0,48,0,49,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,56,0,45,0,50,0,57,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,56,0,45,0,51,0,48,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,57,0,45,0,48,0,56,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,57,0,45,0,50,0,50,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,48,0,57,0,45,0,50,0,57,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,50,0,45,0,49,0,53,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,49,0,45,0,49,0,56,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,51,0,45,0,50,0,56,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,57,0,45,0,50,0,52,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,48,0,57,0,45,0,50,0,55,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,49,0,50,0,45,0,50,0,55,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,51,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,51,0,45,0,48,0,54,0,45,0,49,0,55,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,51,0,45,0,48,0,56,0,45,0,50,0,49,0,32,0,49,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,52,0,45,0,48,0,51,0,45,0,50,0,48,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,52,0,45,0,48,0,52,0,45,0,51,0,48,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,53,0,45,0,50,0,52,0,32,0,49,0,56,0,58,0,51,0,48,0,0,0,49,0,57,0,57,0,54,0,45,0,48,0,57,0,45,0,50,0,57,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,55,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,55,0,45,0,48,0,51,0,45,0,51,0,48,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,55,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,55,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,56,0,45,0,48,0,51,0,45,0,50,0,57,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,56,0,45,0,48,0,56,0,45,0,48,0,50,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,57,0,45,0,49,0,50,0,45,0,49,0,57,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,48,0,51,0,45,0,48,0,51,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,48,0,57,0,45,0,49,0,54,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,48,0,45,0,50,0,57,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,49,0,45,0,48,0,53,0,32,0,48,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,48,0,45,0,49,0,50,0,45,0,48,0,51,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,49,0,45,0,48,0,52,0,45,0,48,0,49,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,51,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,51,0,45,0,49,0,50,0,45,0,51,0,49,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,54,0,45,0,49,0,51,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,49,0,48,0,45,0,51,0,48,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,54,0,45,0,48,0,52,0,45,0,49,0,52,0,32,0,49,0,56,0,58,0,51,0,48,0,0,0,50,0,48,0,48,0,54,0,45,0,49,0,48,0,45,0,50,0,57,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,56,0,45,0,48,0,49,0,45,0,50,0,49,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,56,0,45,0,48,0,54,0,45,0,50,0,52,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,57,0,45,0,49,0,48,0,45,0,49,0,49,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,57,0,45,0,49,0,48,0,45,0,49,0,55,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,51,0,45,0,48,0,52,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,51,0,45,0,50,0,55,0,32,0,49,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,51,0,45,0,50,0,55,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,48,0,52,0,45,0,48,0,52,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,48,0,45,0,49,0,49,0,45,0,48,0,55,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,48,0,57,0,45,0,49,0,50,0,32,0,49,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,48,0,57,0,45,0,49,0,50,0,32,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,49,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,50,0,45,0,48,0,50,0,45,0,50,0,49,0,32,0,49,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,50,0,45,0,49,0,49,0,45,0,49,0,48,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,51,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,48,0,51,0,45,0,51,0,48,0,32,0,48,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,53,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,50,0,45,0,48,0,49,0,32,0,48,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,51,0,45,0,48,0,56,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,51,0,45,0,48,0,56,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,48,0,56,0,45,0,49,0,52,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,53,0,45,0,49,0,49,0,45,0,48,0,49,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,51,0,45,0,50,0,54,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,51,0,45,0,50,0,54,0,32,0,50,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,57,0,45,0,48,0,54,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,49,0,48,0,45,0,50,0,49,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,55,0,45,0,49,0,48,0,45,0,50,0,51,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,55,0,45,0,49,0,48,0,45,0,51,0,49,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,51,0,45,0,49,0,48,0,32,0,49,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,51,0,45,0,49,0,49,0,32,0,48,0,55,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,48,0,53,0,45,0,48,0,52,0,32,0,49,0,53,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,48,0,45,0,48,0,54,0,32,0,50,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,48,0,45,0,50,0,56,0,32,0,48,0,50,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,49,0,45,0,48,0,52,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,56,0,45,0,49,0,50,0,45,0,50,0,48,0,32,0,49,0,56,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,48,0,49,0,45,0,48,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,48,0,49,0,45,0,50,0,48,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,48,0,51,0,45,0,49,0,54,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,57,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,49,0,57,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,48,0,45,0,48,0,51,0,45,0,48,0,55,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,48,0,45,0,49,0,48,0,45,0,48,0,51,0,32,0,49,0,54,0,58,0,48,0,49,0,0,0,50,0,48,0,50,0,49,0,45,0,48,0,49,0,45,0,51,0,49,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,49,0,45,0,48,0,51,0,45,0,49,0,51,0,32,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,49,0,45,0,49,0,48,0,45,0,48,0,50,0,32,0,49,0,54,0,58,0,48,0,49,0,0,0,50,0,48,0,50,0,50,0,45,0,48,0,51,0,45,0,49,0,50,0,32,0,49,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,48,0,49,0,32,0,49,0,54,0,58,0,48,0,49,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,49,0,45,0,51,0,48,0,32,0,48,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,51,0,45,0,48,0,51,0,45,0,48,0,56,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,52,0,45,0,48,0,51,0,45,0,50,0,54,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,52,0,45,0,48,0,51,0,45,0,51,0,49,0,32,0,48,0,49,0,58,0,48,0,48,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,97,0,118,0,105,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,121,0,111,0,119,0,97,0,0,0,49,0,57,0,55,0,51,0,45,0,49,0,48,0,45,0,50,0,56,0,32,0,48,0,57,0,58,0,48,0,48,0,0,0,49,0,57,0,55,0,53,0,45,0,48,0,54,0,45,0,49,0,50,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,48,0,45,0,48,0,52,0,45,0,50,0,55,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,48,0,45,0,49,0,48,0,45,0,50,0,54,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,56,0,51,0,45,0,49,0,49,0,45,0,51,0,48,0,32,0,49,0,48,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,49,0,45,0,49,0,48,0,45,0,48,0,54,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,49,0,57,0,57,0,50,0,45,0,49,0,48,0,45,0,49,0,56,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,53,0,45,0,50,0,51,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,53,0,45,0,51,0,48,0,32,0,48,0,51,0,58,0,48,0,48,0,0,0,50,0,48,0,48,0,52,0,45,0,48,0,57,0,45,0,50,0,54,0,32,0,48,0,52,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,52,0,45,0,49,0,50,0,45,0,50,0,55,0,32,0,49,0,54,0,58,0,48,0,48,0,0,0,50,0,48,0,49,0,54,0,45,0,48,0,57,0,45,0,48,0,55,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,50,0,49,0,58,0,48,0,48,0,0,0,50,0,48,0,50,0,50,0,45,0,49,0,48,0,45,0,50,0,55,0,32,0,50,0,50,0,58,0,48,0,48,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,106,0,117,0,109,0,98,0,117,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,103,0,97,0,100,0,105,0,115,0,104,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,103,0,117,0,105,0,108,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,117,0,110,0,99,0,105,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,114,0,98,0,97,0,100,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,75,0,105,0,116,0,116,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,76,0,117,0,99,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,66,0,101,0,114,0,109,0,117,0,100,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,97,0,110,0,108,0,101,0,121,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,109,0,115,0,116,0,101,0,114,0,100,0,97,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,99,0,104,0,97,0,114,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,105,0,98,0,114,0,97,0,108,0,116,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,106,0,117,0,98,0,108,0,106,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,114,0,105,0,101,0,104,0,97,0,109,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,111,0,100,0,103,0,111,0,114,0,105,0,99,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,116,0,111,0,99,0,107,0,104,0,111,0,108,0,109,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,75,0,101,0,114,0,103,0,117,0,101,0,108,0,101,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,117,0,110,0,97,0,102,0,117,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,73,0,110,0,100,0,111,0,110,0,101,0,115,0,105,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,73,0,110,0,100,0,111,0,110,0,101,0,115,0,105,0,97,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,108,0,97,0,112,0,97,0,103,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,114,0,113,0,117,0,101,0,115,0,97,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,95,0,70,0,97,0,114,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,121,0,97,0,113,0,117,0,105,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,97,0,108,0,97,0,95,0,76,0,117,0,109,0,112,0,117,0,114,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,73,0,110,0,100,0,111,0,110,0,101,0,115,0,105,0,97,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,86,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,111,0,115,0,101,0,95,0,66,0,97,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,98,0,114,0,101,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,98,0,117,0,109,0,98,0,97,0,115,0,104,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,117,0,97,0,107,0,99,0,104,0,111,0,116,0,116,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,45,0,78,0,111,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,116,0,101,0,109,0,97,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,97,0,116,0,105,0,115,0,108,0,97,0,118,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,111,0,112,0,101,0,110,0,104,0,97,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,117,0,120,0,101,0,109,0,98,0,111,0,117,0,114,0,103,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,110,0,95,0,77,0,97,0,114,0,105,0,110,0,111,0,0,0,71,0,114,0,101,0,101,0,110,0,108,0,97,0,110,0,100,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,82,0,97,0,114,0,111,0,116,0,111,0,110,0,103,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,111,0,110,0,103,0,97,0,116,0,97,0,112,0,117,0,0,0,75,0,97,0,122,0,97,0,107,0,104,0,115,0,116,0,97,0,110,0,95,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,75,0,97,0,122,0,97,0,107,0,104,0,115,0,116,0,97,0,110,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,107,0,97,0,116,0,101,0,114,0,105,0,110,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,114,0,97,0,109,0,97,0,114,0,105,0,98,0,111,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,82,0,111,0,116,0,104,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,100,0,105,0,115,0,95,0,65,0,98,0,97,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,114,0,97,0,122,0,122,0,97,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,79,0,117,0,97,0,103,0,97,0,100,0,111,0,117,0,103,0,111,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,115,0,116,0,97,0,95,0,82,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,100,0,101,0,108,0,111,0,117,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,114,0,97,0,108,0,101,0,110,0,100,0,105,0,106,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,116,0,105,0,110,0,105,0,113,0,117,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,118,0,105,0,100,0,101,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,115,0,101,0,114,0,114,0,97,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,86,0,105,0,110,0,99,0,101,0,110,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,99,0,77,0,117,0,114,0,100,0,111,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,95,0,72,0,101,0,108,0,101,0,110,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,97,0,108,0,105,0,110,0,105,0,110,0,103,0,114,0,97,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,105,0,114,0,105,0,116,0,105,0,109,0,97,0,116,0,105,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,112,0,101,0,95,0,86,0,101,0,114,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,111,0,104,0,97,0,110,0,110,0,101,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,83,0,97,0,108,0,118,0,97,0,100,0,111,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,101,0,114,0,116,0,111,0,95,0,82,0,105,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,101,0,103,0,117,0,99,0,105,0,103,0,97,0,108,0,112,0,97,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,65,0,110,0,116,0,97,0,110,0,97,0,110,0,97,0,114,0,105,0,118,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,100,0,97,0,108,0,99,0,97,0,110,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,99,0,111,0,114,0,101,0,115,0,98,0,121,0,115,0,117,0,110,0,100,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,114,0,95,0,101,0,115,0,95,0,83,0,97,0,108,0,97,0,97,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,114,0,116,0,95,0,77,0,111,0,114,0,101,0,115,0,98,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,119,0,101,0,114,0,95,0,80,0,114,0,105,0,110,0,99,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,95,0,111,0,102,0,95,0,83,0,112,0,97,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,111,0,95,0,68,0,111,0,109,0,105,0,110,0,103,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,95,0,70,0,117,0,114,0,116,0,104,0,101,0,114,0,95,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,71,0,101,0,111,0,114,0,103,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,45,0,97,0,117,0,45,0,80,0,114,0,105,0,110,0,99,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,95,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,87,0,101,0,115,0,116,0,101,0,114,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,117,0,109,0,111,0,110,0,116,0,68,0,85,0,114,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,76,0,117,0,105,0,115,0,0,0,1,0,50,0,44,34,1,0,50,0,132,2,8,0,50,0,81,0,84,0,87,0,90,0,93,0,96,0,99,0,56,7,190,28,80,12,240,31,16,12,0,7,28,7,242,6,10,0,50,0,117,0,120,0,123,0,126,0,129,0,132,0,135,0,138,0,141,0,242,9,32,12,172,6,129,33,80,8,139,35,207,28,200,35,212,9,211,10,1,0,50,0,48,12,3,0,50,0,178,0,181,0,255,34,70,7,227,9,11,0,50,0,199,0,202,0,87,0,205,0,208,0,211,0,214,0,217,0,220,0,223,0,225,4,14,7,20,32,96,12,200,6,148,33,228,6,222,31,42,7,84,7,128,12,1,0,50,0,210,2,1,0,50,0,76,10,1,0,50,0,38,32,1,0,50,0,198,2,1,0,50,0,106,10,8,0,50,0,25,1,28,1,31,1,34,1,37,1,40,1,43,1,192,12,1,10,155,29,186,33,56,32,99,35,59,35,19,35,7,0,50,0,62,1,28,1,65,1,68,1,71,1,74,1,87,29,121,10,48,13,119,36,0,13,31,10,136,10,2,0,50,0,28,1,46,10,36,29,3,0,50,0,28,1,40,1,39,35,110,32,32,13,1,0,50,0,234,2,1,0,50,0,121,4,1,0,50,0,11,2,1,0,50,0,210,2,6,0,50,0,118,1,121,1,124,1,127,1,130,1,110,3,34,5,21,5,74,3,143,2,206,1,1,0,50,0,221,35,1,0,50,0,193,36,1,0,50,0,4,4,1,0,50,0,18,6,23,0,50,0,188,1,191,1,194,1,197,1,200,1,203,1,206,1,209,1,212,1,215,1,218,1,221,1,224,1,227,1,230,1,233,1,236,1,239,1,242,1,245,1,248,1,251,1,240,12,144,12,224,28,98,7,2,29,189,29,224,33,208,12,19,29,224,12,112,7,205,33,121,29,138,29,16,13,243,33,25,34,79,35,7,36,29,36,63,34,64,13,92,32,1,0,50,0,158,34,1,0,50,0,128,13,1,0,50,0,223,29,1,0,50,0,144,13,1,0,50,0,136,1,1,0,50,0,80,11,1,0,50,0,136,1,1,0,50,0,55,2,1,0,50,0,251,4,1,0,50,0,99,5,1,0,50,0,91,10,1,0,50,0,43,4,1,0,50,0,74,32,1,0,50,0,74,6,1,0,50,0,246,2,1,0,50,0,215,34,1,0,50,0,50,15,2,0,50,0,154,2,77,9,221,3,1,0,50,0,192,11,1,0,50,0,140,27,1,0,50,0,32,6,1,0,50,0,116,17,1,0,50,0,108,4,1,0,50,0,16,10,1,0,50,0,254,32,1,0,50,0,61,10,1,0,50,0,55,2,1,0,50,0,174,27,1,0,50,0,51,36,1,0,50,0,167,36,1,0,50,0,232,5,1,0,50,0,91,33,1,0,50,0,216,1,1,0,50,0,107,9,1,0,50,0,78,31,33,0,50,0,251,2,254,2,1,3,4,3,7,3,10,3,13,3,16,3,19,3,22,3,25,3,28,3,31,3,34,3,37,3,40,3,43,3,46,3,49,3,217,29,52,3,55,3,58,3,61,3,64,3,67,3,70,3,73,3,76,3,79,3,82,3,85,3,151,5,181,10,252,7,10,8,224,13,160,13,52,8,224,7,46,6,146,32,88,6,18,30,38,8,176,13,158,3,177,5,164,32,210,7,69,30,238,7,125,5,240,29,146,3,24,8,144,11,86,30,35,30,119,35,128,32,182,32,238,4,196,10,144,11,8,0,50,0,103,3,106,3,109,3,112,3,115,3,118,3,121,3,1,30,52,30,164,5,73,5,199,4,192,13,182,7,62,3,2,0,50,0,147,3,138,5,177,34,2,0,50,0,165,3,96,13,112,13,1,0,50,0,206,29,1,0,50,0,134,4,1,0,50,0,176,12,1,0,50,0,103,30,1,0,50,0,17,4,14,0,50,0,214,3,217,3,220,3,223,3,226,3,229,3,232,3,235,3,238,3,241,3,244,3,247,3,250,3,120,34,167,33,182,9,74,6,186,4,214,6,197,9,60,6,186,6,2,32,139,34,64,12,212,4,50,3,1,0,50,0,24,31,1,0,50,0,208,11,1,0,50,0,247,3,1,0,50,0,241,10,1,0,50,0,186,31,1,0,50,0,112,11,1,0,50,0,179,35,1,0,50,0,179,35,1,0,50,0,112,11,1,0,50,0,221,3,2,0,50,0,82,4,121,2,98,3,1,0,50,0,92,9,1,0,50,0,137,30,1,0,50,0,228,8,1,0,50,0,156,1,2,0,50,0,107,4,126,7,30,4,1,0,50,0,66,8,3,0,50,0,133,4,136,4,47,5,80,13,166,10,1,0,50,0,168,7,1,0,50,0,140,7,1,0,50,0,60,5,1,0,50,0,122,3,1,0,50,0,60,6,1,0,50,0,208,3,1,0,50,0,151,10,1,0,50,0,165,2,1,0,50,0,243,8,1,0,50,0,234,3,1,0,50,0,198,2,1,0,50,0,198,2,1,0,50,0,210,2,1,0,50,0,213,8,1,0,50,0,154,2,1,0,50,0,122,9,1,0,50,0,202,16,1,0,50,0,218,5,1,0,50,0,204,31,1,0,50,0,17,4,1,0,50,0,30,4,1,0,50,0,112,12,1,0,50,0,196,34,1,0,50,0,235,34,1,0,50,0,44,2,1,0,50,0,195,3,1,0,50,0,96,31,1,0,50,0,43,4,1,0,50,0,96,11,1,0,50,0,42,31,1,0,50,0,62,9,1,0,50,0,133,17,1,0,50,0,150,31,1,0,50,0,53,29,1,0,50,0,172,29,1,0,50,0,190,5,1,0,50,0,86,5,1,0,50,0,144,6,1,0,50,0,154,7,1,0,50,0,226,10,2,0,50,0,170,5,157,27,101,34,1,0,50,0,104,29,1,0,50,0,147,4,1,0,50,0,224,11,1,0,50,0,128,11,1,0,50,0,77,9,1,0,50,0,236,16,1,0,50,0,166,1,1,0,50,0,146,1,1,0,50,0,234,3,1,0,50,0,158,6,1,0,50,0,242,35,1,0,50,0,241,28,1,0,50,0,8,5,1,0,50,0,86,3,1,0,50,0,218,32,1,0,50,0,70,29,1,0,50,0,150,17,1,0,50,0,137,9,1,0,50,0,2,9,1,0,50,0,213,8,1,0,50,0,47,9,1,0,50,0,110,33,1,0,50,0,246,5,1,0,50,0,218,5,1,0,50,0,17,9,1,0,50,0,236,32,1,0,50,0,170,3,1,0,50,0,11,2,1,0,50,0,32,9,1,0,50,0,159,35,1,0,50,0,96,36,1,0,50,0,91,33,1,0,50,0,72,33,1,0,50,0,191,27,1,0,50,0,152,9,1,0,50,0,2,3,1,0,50,0,232,5,1,0,50,0,204,5,1,0,50,0,247,3,1,0,50,0,240,13,1,0,50,0,16,33,1,0,50,0,160,4,1,0,50,0,208,13,1,0,50,0,18,6,1,0,50,0,120,30,1,0,50,0,146,1,1,0,50,0,6,34,1,0,50,0,38,3,1,0,50,0,204,5,1,0,50,0,94,8,1,0,50,0,160,12,1,0,50,0,219,16,1,0,50,0,99,17,1,0,50,0,168,31,1,0,50,0,173,4,1,0,50,0,167,9,1,0,50,0,182,3,1,0,50,0,72,33,1,0,50,0,4,4,1,0,50,0,82,34,158,0,198,6,203,6,208,6,213,6,218,6,223,6,228,6,233,6,238,6,243,6,248,6,253,6,2,7,7,7,12,7,17,7,22,7,27,7,32,7,37,7,42,7,191,19,47,7,52,7,57,7,62,7,67,7,72,7,77,7,82,7,87,7,92,7,97,7,102,7,107,7,112,7,117,7,122,7,127,7,132,7,137,7,142,7,147,7,152,7,157,7,162,7,167,7,172,7,177,7,182,7,187,7,192,7,197,7,202,7,207,7,212,7,217,7,222,7,227,7,232,7,237,7,242,7,247,7,252,7,1,8,6,8,11,8,16,8,21,8,26,8,25,21,31,8,36,8,221,5,41,8,46,8,51,8,56,8,61,8,66,8,71,8,76,8,81,8,86,8,91,8,96,8,101,8,106,8,111,8,116,8,121,8,126,8,131,8,136,8,33,17,141,8,146,8,151,8,156,8,161,8,166,8,171,8,176,8,181,8,186,8,191,8,196,8,201,8,206,8,211,8,216,8,221,8,226,8,231,8,236,8,241,8,107,11,246,8,251,8,0,9,5,9,10,9,15,9,20,9,25,9,30,9,35,9,40,9,45,9,50,9,55,9,60,9,65,9,70,9,75,9,80,9,85,9,90,9,95,9,100,9,105,9,110,9,115,9,120,9,125,9,130,9,135,9,140,9,145,9,150,9,155,9,160,9,165,9,170,9,175,9,180,9,185,9,190,9,5,0,138,8,168,8,14,3,48,11,153,8,203,2,114,0,107,0,0,11,16,11,34,14,32,11,239,2,129,4,16,2,215,2,184,0,106,1,208,0,154,30,16,1,208,30,142,36,190,30,172,30,66,2,89,11,77,2,135,0,216,0,25,1,251,2,61,15,224,34,34,1,200,11,41,0,53,0,123,17,115,4,52,1,15,0,20,0,185,27,178,36,115,9,22,2,200,0,108,8,123,8,73,36,183,8,61,1,142,4,102,6,160,11,32,31,216,11,111,36,176,11,114,31,126,1,244,30,229,3,10,0,100,9,64,11,233,8,161,1,226,30,35,0,116,1,132,31,56,4,6,31,25,0,213,3,128,0,71,0,53,33,248,8,34,33,0,2,47,0,130,9,207,16,176,1,77,0,69,4,245,34,49,2,200,3,65,17,43,1,103,11,50,31,140,17,161,31,198,8,1,0,70,1,197,5,224,0,152,6,116,6,83,0,82,4,222,2,155,4,130,6,232,11,136,11,241,16,171,1,79,1,166,6,82,17,88,1,30,0,26,3,240,11,0,12,158,17,145,9,7,9,218,8,54,9,121,33,251,5,225,5,59,0,88,2,37,9,105,36,232,0,97,1,202,27,160,9,7,3,99,2,240,0,89,0,168,4,95,4,149,0,248,0,33,2,0,1,186,1,224,16,106,17,179,31,181,4,175,9,187,3,77,33,65,0,1,0,1,0,1,0,1,0,1,0,168,8,3,0,183,8,0,14,149,18,3,0,108,8,149,18,217,18,3,0,183,8,217,18,46,19,3,0,108,8,46,19,17,14,1,0,168,8,1,0,1,0,1,0,153,8,1,0,1,0,3,0,60,31,0,14,47,18,3,0,1,0,47,18,17,14,1,0,138,8,1,0,153,8,1,0,138,8,1,0,123,8,3,0,183,8,0,14,152,15,3,0,108,8,152,15,199,19,3,0,183,8,199,19,90,26,3,0,183,8,0,14,152,15,3,0,108,8,152,15,17,14,1,0,1,0,1,0,1,0,1,0,168,8,1,0,168,8,1,0,153,8,3,0,60,31,0,14,98,18,3,0,183,8,98,18,90,26,1,0,1,0,1,0,138,8,1,0,138,8,1,0,48,11,3,0,138,8,0,14,15,16,3,0,168,8,15,16,243,26,3,0,138,8,243,26,17,14,1,0,168,8,3,0,138,8,0,14,15,16,3,0,168,8,15,16,244,25,3,0,138,8,244,25,17,14,1,0,138,8,1,0,153,8,1,0,153,8,1,0,153,8,1,0,1,0,1,0,153,8,1,0,138,8,1,0,138,8,1,0,153,8,1,0,138,8,1,0,48,11,1,0,48,11,1,0,168,8,3,0,8,1,0,14,218,17,3,0,1,0,218,17,17,14,1,0,168,8,1,0,153,8,1,0,153,8,1,0,1,0,1,0,1,0,1,0,153,8,3,0,1,0,0,14,5,26,3,0,153,8,5,26,141,26,3,0,1,0,141,26,17,14,3,0,123,8,0,14,80,19,3,0,108,8,80,19,113,20,3,0,123,8,113,20,94,22,3,0,108,8,94,22,145,22,3,0,123,8,145,22,211,24,3,0,108,8,211,24,228,24,3,0,123,8,228,24,17,14,1,0,108,8,3,0,48,11,0,14,96,20,3,0,138,8,96,20,9,22,3,0,153,8,9,22,227,25,3,0,138,8,227,25,17,14,3,0,121,0,0,14,170,14,3,0,64,11,20,28,17,14,3,0,4,6,0,14,253,16,3,0,114,0,255,14,17,14,1,0,16,1,1,0,16,1,1,0,25,1,3,0,106,1,0,14,169,15,3,0,154,30,169,15,203,15,3,0,106,1,203,15,136,14,3,0,154,30,136,14,153,14,3,0,106,1,153,14,17,14,3,0,106,1,0,14,136,14,3,0,154,30,136,14,153,14,3,0,106,1,153,14,17,14,3,0,106,1,0,14,186,15,3,0,106,1,237,15,17,14,3,0,106,1,0,14,169,15,3,0,154,30,169,15,203,15,3,0,106,1,203,15,66,16,3,0,154,30,66,16,83,16,3,0,106,1,83,16,17,14,3,0,106,1,0,14,79,20,3,0,154,30,79,20,198,20,3,0,106,1,198,20,213,22,3,0,154,30,213,22,42,23,3,0,106,1,42,23,66,16,3,0,154,30,66,16,83,16,3,0,106,1,83,16,246,23,3,0,154,30,246,23,24,24,3,0,106,1,24,24,17,14,3,0,106,1,0,14,186,15,3,0,106,1,237,15,136,14,3,0,154,30,136,14,178,23,3,0,106,1,178,23,17,14,3,0,106,1,0,14,88,28,3,0,106,1,153,14,17,14,1,0,16,1,1,0,88,1,1,0,25,1,3,0,34,14,0,14,109,24,3,0,0,11,109,24,17,14,1,0,16,1,1,0,25,1,1,0,0,11,1,0,16,1,1,0,107,0,1,0,52,1,1,0,34,14,1,0,106,1,3,0,34,14,0,14,8,23,3,0,0,11,8,23,85,14,3,0,16,11,85,14,93,23,3,0,0,11,93,23,127,23,3,0,34,14,127,23,17,14,1,0,107,0,3,0,0,11,0,14,118,15,3,0,16,11,118,15,148,19,3,0,0,11,148,19,162,22,3,0,16,11,162,22,196,22,3,0,0,11,196,22,74,25,3,0,16,11,74,25,17,14,1,0,186,1,3,0,106,1,0,14,186,15,3,0,106,1,237,15,136,14,3,0,154,30,136,14,153,14,3,0,106,1,153,14,17,14,1,0,102,6,1,0,16,11,1,0,0,11,3,0,0,11,0,14,221,14,3,0,198,8,221,14,238,14,3,0,0,11,238,14,17,14,3,0,0,11,0,14,221,14,3,0,198,8,221,14,238,14,3,0,0,11,238,14,72,27,3,0,34,14,72,27,17,14,1,0,16,11,3,0,106,1,0,14,186,15,3,0,106,1,237,15,17,14,1,0,0,11,1,0,34,14,1,0,107,0,1,0,16,1,3,0,244,30,0,14,43,22,3,0,1,0,43,22,17,14,3,0,32,11,208,27,185,16,3,0,65,0,185,16,17,14,3,0,32,11,0,14,235,17,3,0,34,14,235,17,17,14,1,0,34,14,1,0,16,11,1,0,16,1,1,0,34,14,3,0,5,0,0,14,134,16,3,0,107,0,134,16,168,16,3,0,5,0,168,16,17,14,1,0,0,11,3,0,32,11,0,14,108,25,3,0,34,14,108,25,17,14,1,0,25,1,1,0,16,1,3,0,244,30,0,14,106,27,3,0,126,1,106,27,17,14,3,0,16,1,0,14,11,20,3,0,194,31,11,20,28,20,3,0,16,1,28,20,17,14,3,0,16,11,0,14,91,25,3,0,16,1,91,25,39,26,3,0,16,11,39,26,17,14,1,0,16,1,1,0,16,1,1,0,0,11,1,0,200,0,1,0,100,9,1,0,16,1,1,0,20,0,1,0,198,8,3,0,0,11,0,14,61,21,3,0,16,11,61,21,102,14,3,0,0,11,102,14,17,14,3,0,16,11,0,14,84,15,3,0,0,11,84,15,101,15,3,0,16,11,101,15,17,14,3,0,0,11,0,14,166,18,3,0,16,11,166,18,102,14,3,0,0,11,102,14,117,16,3,0,16,11,117,16,17,14,3,0,16,11,0,14,102,14,3,0,0,11,102,14,17,14,1,0,16,11,3,0,16,11,0,14,102,14,3,0,0,11,102,14,117,16,3,0,16,11,117,16,17,14,3,0,16,11,0,14,102,14,3,0,0,11,102,14,100,16,3,0,16,11,100,16,17,14,1,0,16,11,3,0,32,11,0,14,200,18,3,0,34,14,200,18,17,14,3,0,16,11,0,14,247,22,3,0,0,11,247,22,85,14,3,0,16,11,85,14,17,14,1,0,16,11,3,0,106,1,0,14,62,20,3,0,106,1,37,28,17,14,3,0,32,11,0,14,242,27,3,0,32,11,3,28,165,19,3,0,114,0,255,14,17,14,3,0,0,11,0,14,85,14,3,0,16,11,85,14,17,14,1,0,16,1,1,0,216,0,1,0,30,0,1,0,32,11,3,0,16,11,0,14,84,15,3,0,0,11,84,15,101,15,3,0,16,11,101,15,17,14,1,0,16,1,1,0,25,1,3,0,0,11,0,14,13,18,3,0,16,11,13,18,64,18,3,0,0,11,64,18,95,21,3,0,16,11,95,21,146,21,3,0,0,11,146,21,214,21,3,0,16,11,214,21,111,22,3,0,0,11,111,22,17,14,1,0,107,0,1,0,16,1,1,0,16,1,1,0,0,11,1,0,198,8,3,0,106,1,0,14,62,20,3,0,106,1,54,28,71,28,3,0,106,1,105,28,17,14,3,0,16,11,0,14,252,17,3,0,0,11,252,17,17,14,3,0,0,11,0,14,118,15,3,0,16,11,118,15,131,19,3,0,0,11,131,19,17,14,3,0,32,11,0,14,142,25,3,0,114,0,142,25,107,26,3,0,32,11,107,26,158,26,3,0,114,0,158,26,17,14,1,0,0,11,3,0,16,1,0,14,234,18,3,0,0,12,234,18,17,14,1,0,16,1,1,0,0,11,1,0,248,0,1,0,16,1,1,0,16,11,1,0,16,11,3,0,121,0,0,14,170,14,3,0,114,0,255,14,17,14,1,0,136,11,3,0,34,14,0,14,126,24,3,0,0,11,126,24,17,14,3,0,34,14,0,14,180,21,3,0,0,11,180,21,17,14,3,0,34,14,0,14,144,23,3,0,0,11,144,23,17,14,3,0,0,11,0,14,221,14,3,0,34,14,221,14,238,14,3,0,0,11,238,14,17,14,1,0,16,11,3,0,112,5,0,14,81,18,3,0,97,1,81,18,17,14,1,0,34,14,1,0,16,11,1,0,16,1,1,0,107,0,1,0,16,1,3,0,41,0,0,14,48,17,3,0,0,11,0,14,85,14,3,0,16,11,85,14,49,16,3,0,0,11,49,16,17,14,1,0,25,1,1,0,0,11,3,0,0,11,0,14,85,14,3,0,16,11,85,14,49,16,3,0,0,11,49,16,229,23,3,0,16,11,229,23,100,16,3,0,0,11,100,16,17,14,3,0,5,0,0,14,134,16,3,0,107,0,134,16,168,16,3,0,5,0,168,16,17,14,3,0,107,0,0,14,7,24,3,0,25,1,7,24,17,14,1,0,41,0,3,0,226,1,0,14,30,18,3,0,16,1,30,18,76,23,3,0,16,11,76,23,110,23,3,0,16,1,110,23,17,14,1,0,25,1,3,0,200,32,0,14,12,19,3,0,114,31,12,19,123,27,3,0,126,1,123,27,17,14,3,0,32,11,0,14,165,19,3,0,114,0,255,14,17,14,1,0,16,1,1,0,82,4,1,0,16,1,1,0,16,1,1,0,16,1,1,0,16,1,3,0,34,14,0,14,201,17,3,0,0,11,201,17,17,14,1,0,0,11,1,0,16,1,1,0,32,11,1,0,16,11,1,0,16,1,1,0,32,11,3,0,32,11,0,14,185,16,3,0,65,0,185,16,17,14,1,0,0,11,3,0,114,0,255,14,17,14,3,0,172,30,0,14,41,24,3,0,61,15,41,24,58,24,3,0,172,30,58,24,177,24,3,0,61,15,177,24,194,24,3,0,172,30,194,24,210,25,3,0,61,15,210,25,22,26,3,0,172,30,22,26,73,26,3,0,61,15,73,26,175,26,3,0,172,30,175,26,192,26,3,0,61,15,192,26,209,26,3,0,172,30,209,26,226,26,3,0,61,15,226,26,4,27,3,0,172,30,4,27,21,27,3,0,61,15,21,27,38,27,3,0,172,30,38,27,55,27,3,0,61,15,55,27,89,27,3,0,172,30,89,27,17,14,1,0,185,27,1,0,178,36,1,0,190,30,1,0,161,31,1,0,222,2,3,0,106,1,0,14,114,19,3,0,41,0,114,19,48,17,1,0,121,33,1,0,202,27,1,0,1,0,1,0,179,31,1,0,108,8,1,0,184,0,3,0,203,2,0,14,195,23,3,0,53,33,195,23,51,14,3,0,0,2,51,14,17,14,3,0,123,8,0,14,173,28,3,0,239,2,0,14,75,24,3,0,200,3,75,24,31,17,3,0,239,2,31,17,17,14,3,0,176,2,0,14,204,14,3,0,16,2,204,14,33,15,3,0,34,33,33,15,51,14,3,0,0,2,51,14,17,14,3,0,110,2,0,14,204,14,3,0,215,2,204,14,16,15,3,0,34,33,16,15,51,14,3,0,0,2,51,14,17,14,3,0,196,1,0,14,44,21,3,0,95,4,44,21,17,14,3,0,34,33,33,15,51,14,3,0,0,2,51,14,17,14,1,0,184,0,3,0,10,0,0,14,67,15,3,0,184,0,67,15,17,14,3,0,141,1,0,14,215,20,3,0,66,2,215,20,17,14,1,0,116,1,1,0,123,8,3,0,163,0,0,14,232,20,3,0,176,1,232,20,17,14,1,0,251,2,1,0,35,0,3,0,187,3,0,14,6,25,3,0,213,3,6,25,159,25,3,0,187,3,159,25,17,14,3,0,35,0,0,14,77,22,3,0,77,0,77,22,212,23,3,0,35,0,212,23,17,14,3,0,123,8,0,14,156,28,3,0,95,0,0,14,167,17,3,0,77,2,167,17,17,14,3,0,22,2,0,14,115,18,3,0,226,30,115,18,59,23,3,0,22,2,59,23,17,14,1,0,10,0,3,0,237,5,0,14,249,20,3,0,99,2,249,20,17,14,3,0,123,8,0,14,139,28,3,0,128,0,0,14,254,15,3,0,123,8,254,15,17,14,3,0,128,0,0,14,254,15,3,0,123,8,254,15,17,14,1,0,233,8,1,0,161,1,1,0,213,3,1,0,6,31,1,0,132,31,1,0,128,0,1,0,14,3,1,0,248,8,3,0,239,3,0,14,184,17,3,0,79,1,184,17,17,14,1,0,83,0,3,0,187,3,0,14,161,23,3,0,224,16,161,23,160,24,3,0,187,3,160,24,17,14,1,0,207,16,3,0,170,0,0,14,135,15,3,0,43,1,135,15,17,14,3,0,156,0,0,14,135,15,3,0,43,1,135,15,17,14,1,0,184,0,3,0,49,2,0,14,25,23,3,0,53,0,25,23,17,14,1,0,200,3,1,0,226,30,1,0,26,3,1,0,10,0,1,0,123,8,3,0,207,16,0,14,92,24,3,0,241,16,92,24,23,25,3,0,207,16,23,25,17,14,1,0,241,16,1,0,171,1,3,0,177,0,0,14,78,21,3,0,151,1,78,21,33,15,3,0,34,33,33,15,51,14,3,0,0,2,51,14,17,14,1,0,116,1,3,0,226,30,0,14,250,19,3,0,6,31,250,19,17,14,3,0,47,0,0,14,125,25,3,0,7,9,125,25,56,26,3,0,47,0,56,26,17,14,3,0,10,0,0,14,67,15,3,0,184,0,67,15,17,14,3,0,53,33,16,15,51,14,3,0,0,2,51,14,17,14,3,0,236,1,0,14,204,14,3,0,218,8,204,14,16,15,3,0,53,33,16,15,124,26,3,0,34,33,124,26,51,14,3,0,0,2,51,14,17,14,1,0,224,0,1,0,184,0,3,0,116,1,225,27,17,14,1,0,251,5,3,0,22,9,0,14,63,19,3,0,209,5,63,19,97,19,3,0,22,9,97,19,220,15,3,0,33,2,220,15,17,14,1,0,47,0,1,0,53,0,1,0,37,9,3,0,200,3,0,14,31,17,1,0,7,3,3,0,209,5,0,14,220,15,3,0,33,2,220,15,17,14,3,0,252,3,0,14,181,20,3,0,111,36,181,20,17,14,1,0,25,0,3,0,35,0,0,14,233,19,3,0,135,0,233,19,17,14,1,0,71,0,1,0,70,1,1,0,43,3,3,0,187,3,0,14,29,19,3,0,200,3,29,19,143,24,3,0,224,16,143,24,17,14,1,0,116,1,1,0,224,16,1,0,187,3,3,0,187,2,0,14,112,21,3,0,77,33,112,21,17,14,3,0,9,4,0,14,10,21,3,0,208,0,10,21,17,14,3,0,89,11,0,14,197,21,3,0,183,8,197,21,231,21,3,0,89,11,231,21,17,14,1,0,16,1,1,0,183,8,1,0,224,34,1,0,183,8,1,0,183,8,1,0,1,0,1,0,105,36,1,0,1,0,1,0,61,1,1,0,208,30,1,0,190,30,1,0,208,30,1,0,208,30,1,0,142,36,1,0,190,30,1,0,190,30,3,0,190,30,0,14,251,18,3,0,245,34,251,18,17,14,1,0,190,30,1,0,172,30,1,0,190,30,1,0,1,0,1,0,108,8,1,0,108,8,3,0,197,5,129,21,176,25,1,0,123,8,1,0,108,8,1,0,108,8,1,0,108,8,1,0,108,8,1,0,123,8,1,0,108,8,1,0,108,8,3,0,197,5,0,14,130,20,3,0,123,8,130,20,17,14,1,0,108,8,3,0,101,0,0,14,68,14,3,0,1,0,68,14,17,14,1,0,108,8,3,0,192,0,0,14,68,14,3,0,1,0,68,14,17,14,1,0,123,8,3,0,192,0,0,14,68,14,3,0,1,0,68,14,17,14,3,0,123,8,0,14,183,18,3,0,142,0,183,18,182,19,3,0,123,8,182,19,193,25,3,0,142,0,193,25,17,14,3,0,192,0,0,14,68,14,3,0,1,0,68,14,17,14,3,0,197,5,0,14,119,14,3,0,123,8,119,14,151,16,3,0,73,36,151,16,40,25,3,0,123,8,40,25,17,14,3,0,197,5,0,14,147,20,3,0,123,8,147,20,17,14,3,0,108,8,0,14,132,18,3,0,183,8,132,18,163,21,3,0,108,8,163,21,60,22,3,0,183,8,60,22,17,14,1,0,108,8,3,0,192,0,0,14,68,14,3,0,1,0,68,14,17,14,1,0,108,8,1,0,108,8,1,0,108,8,1,0,123,8,3,0,197,5,0,14,187,14,3,0,123,8,187,14,151,16,3,0,73,36,151,16,57,25,3,0,197,5,57,25,17,14,1,0,108,8,3,0,197,5,0,14,187,14,3,0,123,8,187,14,14,17,3,0,197,5,14,17,17,14,1,0,108,8,1,0,108,8,1,0,108,8,1,0,108,8,3,0,197,5,0,14,119,14,3,0,123,8,119,14,17,14,1,0,108,8,3,0,246,1,0,14,45,20,3,0,197,5,45,20,187,14,3,0,123,8,187,14,27,21,3,0,225,5,27,21,17,14,1,0,108,8,1,0,108,8,3,0,197,5,129,21,48,17,3,0,197,5,0,14,164,20,3,0,123,8,164,20,26,22,3,0,197,5,26,22,128,22,3,0,123,8,128,22,245,24,3,0,197,5,245,24,17,14,1,0,108,8,1,0,123,8,1,0,108,8,3,0,197,5,0,14,119,14,3,0,123,8,119,14,17,14,1,0,108,8,3,0,197,5,14,17,176,25,1,0,108,8,1,0,108,8,1,0,108,8,3,0,197,5,0,14,119,14,3,0,123,8,119,14,179,22,3,0,108,8,179,22,230,22,3,0,123,8,230,22,17,14,1,0,106,17,1,0,108,8,1,0,108,8,1,0,108,8,1,0,168,8,1,0,56,4,1,0,123,17,1,0,115,4,1,0,168,8,1,0,160,11,1,0,88,2,1,0,103,11,1,0,140,17,1,0,168,8,1,0,54,9,1,0,129,4,1,0,222,2,3,0,82,17,0,14,122,28,1,0,200,11,1,0,115,9,1,0,0,1,1,0,240,11,1,0,240,0,1,0,142,4,1,0,149,0,3,0,200,0,0,14,216,19,3,0,32,31,216,19,17,14,1,0,216,11,1,0,232,0,3,0,229,3,0,14,32,16,3,0,34,1,32,16,17,14,3,0,4,6,0,14,253,16,3,0,64,11,253,16,17,14,1,0,69,4,1,0,130,9,3,0,212,31,0,14,248,21,3,0,65,17,248,21,17,14,1,0,65,17,1,0,50,31,3,0,121,0,0,14,170,14,3,0,59,0,170,14,17,14,1,0,152,6,1,0,155,4,1,0,232,11,1,0,116,6,3,0,121,0,0,14,170,14,3,0,59,0,170,14,17,14,1,0,166,6,1,0,158,17,1,0,145,9,1,0,82,17,1,0,15,0,3,0,130,6,0,14,32,16,3,0,34,1,32,16,17,14,1,0,160,9,1,0,176,11,1,0,89,0,1,0,168,4,1,0,181,4,1,0,175,9,11,0,88,36,91,36,16,3,94,36,22,3,97,36,100,36,103,36,106,36,109,36,112,36,140,27,32,6,46,6,78,31,88,6,62,9,96,31,157,27,196,7,134,3,204,5,190,0,45,0,54,0,66,0,102,0,144,0,162,0,184,0,226,0,237,0,244,0,67,24,2,1,9,1,46,1,77,1,94,1,90,24,242,33,102,24,113,24,110,1,133,1,143,1,161,1,169,1,179,1,254,1,16,2,41,2,59,2,77,2,95,28,177,24,88,2,99,2,106,2,113,2,121,2,128,2,137,2,225,24,144,28,92,23,145,2,37,34,157,2,163,2,105,33,122,33,169,2,178,2,183,2,188,2,109,23,194,2,126,23,65,25,204,2,217,2,53,34,228,2,236,2,88,3,124,3,150,3,168,3,116,34,177,3,191,3,207,3,216,29,146,34,164,34,222,28,253,3,212,16,13,4,23,4,41,4,59,4,200,34,77,4,64,17,85,4,116,25,131,25,101,4,110,4,123,4,139,4,157,4,175,4,193,4,198,4,141,25,204,4,211,4,207,25,222,25,217,4,228,4,247,4,10,5,20,5,249,34,7,26,26,5,8,35,36,5,46,5,52,5,60,5,149,29,67,26,78,26,73,5,80,5,178,33,41,35,89,5,194,33,173,23,106,5,121,5,202,31,130,5,74,35,138,5,144,5,158,5,173,5,88,35,101,35,102,20,186,5,160,26,177,26,187,26,200,5,150,35,209,5,226,5,235,5,240,5,252,5,12,6,164,35,181,35,228,26,12,27,226,33,228,23,64,27,40,32,78,27,28,6,34,6,45,6,118,27,56,6,216,28,64,6,73,6,247,23,250,35,152,27,84,6,164,27,178,27,95,6,103,6,42,36,109,6,116,6,129,6,136,6,143,6,244,27,151,6,162,6,170,6,29,28,12,33,25,24,55,36,68,36,46,28,59,28,78,28,180,6,170,170,220,36,0,80,223,36,0,80,226,36,0,80,243,36,0,80,8,37,0,80,11,37,0,80,18,37,0,80,41,37,0,80,44,37,0,80,47,37,0,80,50,37,0,80,53,37,0,80,56,37,0,80,73,37,0,80,88,37,0,80,93,37,0,80,100,37,0,80,103,37,0,80,106,37,0,80,109,37,0,80,112,37,0,80,125,37,0,80,128,37,0,80,131,37,0,80,134,37,0,80,137,37,0,80,184,37,0,80,187,37,0,80,190,37,0,80,193,37,0,80,196,37,0,80,199,37,0,80,202,37,0,80,205,37,0,80,208,37,0,80,211,37,0,80,214,37,0,80,217,37,0,80,220,37,0,80,223,37,0,80,226,37,0,80,229,37,0,80,232,37,0,80,235,37,0,80,240,37,0,80,243,37,0,80,246,37,0,80,249,37,0,80,252,37,0,80,255,37,0,80,2,38,0,80,5,38,0,80,8,38,0,80,11,38,0,80,14,38,0,80,17,38,0,80,20,38,0,80,23,38,0,80,26,38,0,80,29,38,0,80,32,38,0,80,35,38,0,80,102,38,0,80,119,38,0,80,124,38,0,80,129,38,0,80,132,38,0,80,135,38,0,80,138,38,0,80,141,38,0,80,144,38,0,80,173,38,0,80,176,38,0,80,179,38,0,80,182,38,0,80,185,38,0,80,188,38,0,80,191,38,0,80,194,38,0,80,197,38,0,80,200,38,0,80,203,38,0,80,208,38,0,80,211,38,0,80,214,38,0,80,217,38,0,80,220,38,0,80,225,38,0,80,228,38,0,80,235,38,0,80,238,38,0,80,241,38,0,80,244,38,0,80,247,38,0,80,250,38,0,80,253,38,0,80,0,39,0,80,3,39,0,80,6,39,0,80,9,39,0,80,12,39,0,80,15,39,0,80,18,39,0,80,21,39,0,80,24,39,0,80,27,39,0,80,30,39,0,80,33,39,0,80,36,39,0,80,39,39,0,80,42,39,0,80,45,39,0,80,48,39,0,80,51,39,0,80,54,39,0,80,57,39,0,80,60,39,0,80,63,39,0,80,66,39,0,80,69,39,0,80,72,39,0,80,75,39,0,80,78,39,0,80,81,39,0,80,84,39,0,80,87,39,0,80,90,39,0,80,93,39,0,80,96,39,0,80,99,39,0,80,104,39,0,80,107,39,0,80,110,39,0,80,113,39,0,80,116,39,0,80,119,39,0,80,122,39,0,80,125,39,0,80,128,39,0,80,131,39,0,80,134,39,0,80,137,39,0,80,140,39,0,80,143,39,0,80,146,39,0,80,149,39,0,80,152,39,0,80,155,39,0,80,158,39,0,80,161,39,0,80,164,39,0,80,167,39,0,80,170,39,0,80,173,39,0,80,176,39,0,80,179,39,0,80,182,39,0,80,185,39,0,80,188,39,0,80,191,39,0,80,194,39,0,80,197,39,0,80,200,39,0,80,203,39,0,80,206,39,0,80,209,39,0,80,212,39,0,80,215,39,0,80,218,39,0,80,221,39,0,80,224,39,0,80,227,39,0,80,230,39,0,80,233,39,0,80,236,39,0,80,239,39,0,80,242,39,0,80,245,39,0,80,248,39,0,80,251,39,0,80,254,39,0,80,1,40,0,80,4,40,0,80,7,40,0,80,10,40,0,80,13,40,0,80,16,40,0,80,19,40,0,80,22,40,0,80,25,40,0,80,1,0,0,0,89,41,0,144,1,0,0,0,91,41,0,144,1,0,0,0,93,41,0,144,4,0,0,0,95,41,0,144,99,41,0,144,103,41,0,144,107,41,0,144,1,0,0,0,111,41,0,144,1,0,0,0,113,41,0,144,1,0,0,0,115,41,0,144,1,0,0,0,117,41,0,144,2,0,0,0,119,41,0,144,123,41,0,144,1,0,0,0,127,41,0,144,1,0,0,0,129,41,0,144,1,0,0,0,131,41,0,144,1,0,0,0,133,41,0,144,3,0,0,0,135,41,0,144,139,41,0,144,143,41,0,144,2,0,0,0,147,41,0,144,151,41,0,144,1,0,0,0,155,41,0,144,1,0,0,0,157,41,0,144,1,0,0,0,159,41,0,144,1,0,0,0,161,41,0,144,1,0,0,0,163,41,0,144,2,0,0,0,165,41,0,144,169,41,0,144,1,0,0,0,173,41,0,144,1,0,0,0,175,41,0,144,1,0,0,0,177,41,0,144,1,0,0,0,179,41,0,144,3,0,0,0,181,41,0,144,185,41,0,144,189,41,0,144,1,0,0,0,193,41,0,144,3,0,0,0,195,41,0,144,199,41,0,144,203,41,0,144,1,0,0,0,207,41,0,144,1,0,0,0,209,41,0,144,1,0,0,0,211,41,0,144,1,0,0,0,213,41,0,144,1,0,0,0,215,41,0,144,1,0,0,0,217,41,0,144,1,0,0,0,219,41,0,144,1,0,0,0,221,41,0,144,1,0,0,0,223,41,0,144,1,0,0,0,225,41,0,144,1,0,0,0,227,41,0,144,1,0,0,0,229,41,0,144,1,0,0,0,231,41,0,144,2,0,0,0,233,41,0,144,237,41,0,144,1,0,0,0,241,41,0,144,1,0,0,0,243,41,0,144,1,0,0,0,245,41,0,144,1,0,0,0,247,41,0,144,1,0,0,0,249,41,0,144,1,0,0,0,251,41,0,144,3,0,0,0,253,41,0,144,1,42,0,144,5,42,0,144,7,0,0,0,9,42,0,144,13,42,0,144,17,42,0,144,21,42,0,144,25,42,0,144,29,42,0,144,33,42,0,144,1,0,0,0,37,42,0,144,4,0,0,0,39,42,0,144,43,42,0,144,47,42,0,144,51,42,0,144,2,0,0,0,55,42,0,144,59,42,0,144,2,0,0,0,63,42,0,144,67,42,0,144,1,0,0,0,71,42,0,144,1,0,0,0,73,42,0,144,1,0,0,0,75,42,0,144,5,0,0,0,77,42,0,144,81,42,0,144,85,42,0,144,89,42,0,144,93,42,0,144,3,0,0,0,97,42,0,144,101,42,0,144,105,42,0,144,2,0,0,0,109,42,0,144,113,42,0,144,5,0,0,0,117,42,0,144,121,42,0,144,125,42,0,144,129,42,0,144,133,42,0,144,9,0,0,0,137,42,0,144,141,42,0,144,145,42,0,144,149,42,0,144,153,42,0,144,157,42,0,144,161,42,0,144,165,42,0,144,169,42,0,144,4,0,0,0,173,42,0,144,177,42,0,144,181,42,0,144,185,42,0,144,2,0,0,0,189,42,0,144,193,42,0,144,1,0,0,0,197,42,0,144,1,0,0,0,199,42,0,144,1,0,0,0,201,42,0,144,2,0,0,0,203,42,0,144,207,42,0,144,1,0,0,0,211,42,0,144,1,0,0,0,213,42,0,144,1,0,0,0,215,42,0,144,1,0,0,0,217,42,0,144,1,0,0,0,219,42,0,144,1,0,0,0,221,42,0,144,1,0,0,0,223,42,0,144,1,0,0,0,225,42,0,144,5,0,0,0,227,42,0,144,231,42,0,144,235,42,0,144,239,42,0,144,243,42,0,144,1,0,0,0,247,42,0,144,6,0,0,0,249,42,0,144,253,42,0,144,1,43,0,144,5,43,0,144,9,43,0,144,13,43,0,144,1,0,0,0,17,43,0,144,4,0,0,0,19,43,0,144,23,43,0,144,27,43,0,144,31,43,0,144,1,0,0,0,35,43,0,144,1,0,0,0,37,43,0,144,1,0,0,0,39,43,0,144,3,0,0,0,41,43,0,144,45,43,0,144,49,43,0,144,4,0,0,0,53,43,0,144,57,43,0,144,61,43,0,144,65,43,0,144,1,0,0,0,69,43,0,144,2,0,0,0,71,43,0,144,75,43,0,144,1,0,0,0,79,43,0,144,1,0,0,0,81,43,0,144,1,0,0,0,83,43,0,144,1,0,0,0,85,43,0,144,2,0,0,0,87,43,0,144,91,43,0,144,2,0,0,0,95,43,0,144,99,43,0,144,2,0,0,0,103,43,0,144,107,43,0,144,1,0,0,0,111,43,0,144,1,0,0,0,113,43,0,144,1,0,0,0,115,43,0,144,1,0,0,0,117,43,0,144,3,0,0,0,119,43,0,144,123,43,0,144,127,43,0,144,1,0,0,0,131,43,0,144,2,0,0,0,133,43,0,144,137,43,0,144,1,0,0,0,141,43,0,144,1,0,0,0,143,43,0,144,2,0,0,0,145,43,0,144,149,43,0,144,3,0,0,0,153,43,0,144,157,43,0,144,161,43,0,144,3,0,0,0,165,43,0,144,169,43,0,144,173,43,0,144,1,0,0,0,177,43,0,144,1,0,0,0,179,43,0,144,1,0,0,0,181,43,0,144,1,0,0,0,183,43,0,144,1,0,0,0,185,43,0,144,1,0,0,0,187,43,0,144,1,0,0,0,189,43,0,144,1,0,0,0,191,43,0,144,3,0,0,0,193,43,0,144,197,43,0,144,201,43,0,144,3,0,0,0,205,43,0,144,209,43,0,144,213,43,0,144,4,0,0,0,217,43,0,144,221,43,0,144,225,43,0,144,229,43,0,144,2,0,0,0,233,43,0,144,237,43,0,144,1,0,0,0,241,43,0,144,3,0,0,0,243,43,0,144,247,43,0,144,251,43,0,144,3,0,0,0,255,43,0,144,3,44,0,144,7,44,0,144,1,0,0,0,11,44,0,144,2,0,0,0,13,44,0,144,17,44,0,144,3,0,0,0,21,44,0,144,25,44,0,144,29,44,0,144,1,0,0,0,33,44,0,144,2,0,0,0,35,44,0,144,39,44,0,144,3,0,0,0,43,44,0,144,47,44,0,144,51,44,0,144,2,0,0,0,55,44,0,144,59,44,0,144,1,0,0,0,63,44,0,144,1,0,0,0,65,44,0,144,1,0,0,0,67,44,0,144,1,0,0,0,69,44,0,144,3,0,0,0,71,44,0,144,75,44,0,144,79,44,0,144,1,0,0,0,83,44,0,144,1,0,0,0,85,44,0,144,7,0,0,0,87,44,0,144,91,44,0,144,95,44,0,144,99,44,0,144,103,44,0,144,107,44,0,144,111,44,0,144,1,0,0,0,115,44,0,144,1,0,0,0,117,44,0,144,1,0,0,0,119,44,0,144,1,0,0,0,121,44,0,144,1,0,0,0,123,44,0,144,3,0,0,0,125,44,0,144,129,44,0,144,133,44,0,144,2,0,0,0,137,44,0,144,141,44,0,144,3,0,0,0,145,44,0,144,149,44,0,144,153,44,0,144,4,0,0,0,157,44,0,144,161,44,0,144,165,44,0,144,169,44,0,144,1,0,0,0,173,44,0,144,2,0,0,0,175,44,0,144,179,44,0,144,1,0,0,0,183,44,0,144,1,0,0,0,185,44,0,144,1,0,0,0,187,44,0,144,1,0,0,0,189,44,0,144,1,0,0,0,191,44,0,144,1,0,0,0,193,44,0,144,2,0,0,0,195,44,0,144,199,44,0,144,1,0,0,0,203,44,0,144,2,0,0,0,205,44,0,144,209,44,0,144,2,0,0,0,213,44,0,144,217,44,0,144,2,0,0,0,221,44,0,144,225,44,0,144,3,0,0,0,229,44,0,144,233,44,0,144,237,44,0,144,1,0,0,0,241,44,0,144,2,0,0,0,243,44,0,144,247,44,0,144,1,0,0,0,251,44,0,144,1,0,0,0,253,44,0,144,1,0,0,0,255,44,0,144,1,0,0,0,1,45,0,144,1,0,0,0,3,45,0,144,1,0,0,0,5,45,0,144,3,0,0,0,9,45,0,144,13,45,0,144,17,45,0,144,1,0,0,0,21,45,0,144,1,0,0,0,23,45,0,144,5,0,0,0,25,45,0,144,29,45,0,144,33,45,0,144,37,45,0,144,41,45,0,144,3,0,0,0,45,45,0,144,49,45,0,144,53,45,0,144,2,0,0,0,57,45,0,144,61,45,0,144,1,0,0,0,65,45,0,144,4,0,0,0,67,45,0,144,71,45,0,144,75,45,0,144,79,45,0,144,1,0,0,0,83,45,0,144,3,0,0,0,85,45,0,144,89,45,0,144,93,45,0,144,2,0,0,0,97,45,0,144,101,45,0,144,1,0,0,0,105,45,0,144,1,0,0,0,107,45,0,144,1,0,0,0,109,45,0,144,1,0,0,0,111,45,0,144,1,0,0,0,113,45,0,144,1,0,0,0,115,45,0,144,2,0,0,0,117,45,0,144,121,45,0,144,1,0,0,0,125,45,0,144,1,0,0,0,127,45,0,144,1,0,0,0,129,45,0,144,1,0,0,0,131,45,0,144,1,0,0,0,133,45,0,144,1,0,0,0,135,45,0,144,2,0,0,0,137,45,0,144,141,45,0,144,1,0,0,0,145,45,0,144,1,0,0,0,147,45,0,144,17,0,0,0,151,45,0,144,155,45,0,144,159,45,0,144,163,45,0,144,167,45,0,144,171,45,0,144,175,45,0,144,179,45,0,144,183,45,0,144,187,45,0,144,191,45,0,144,195,45,0,144,199,45,0,144,203,45,0,144,207,45,0,144,211,45,0,144,215,45,0,144,1,0,0,0,219,45,0,144,1,0,0,0,221,45,0,144,1,0,0,0,223,45,0,144,1,0,0,0,225,45,0,144,1,0,0,0,227,45,0,144,2,0,0,0,229,45,0,144,233,45,0,144,1,0,0,0,237,45,0,144,1,0,0,0,239,45,0,144,1,0,0,0,241,45,0,144,1,0,0,0,243,45,0,144,1,0,0,0,245,45,0,144,1,0,0,0,247,45,0,144,3,0,0,0,249,45,0,144,253,45,0,144,1,46,0,144,1,0,0,0,5,46,0,144,3,0,0,0,9,46,0,144,13,46,0,144,17,46,0,144,4,0,0,0,21,46,0,144,25,46,0,144,29,46,0,144,33,46,0,144,4,0,0,0,37,46,0,144,41,46,0,144,45,46,0,144,49,46,0,144,2,0,0,0,53,46,0,144,57,46,0,144,2,0,0,0,61,46,0,144,65,46,0,144,1,0,0,0,69,46,0,144,2,0,0,0,71,46,0,144,75,46,0,144,2,0,0,0,79,46,0,144,83,46,0,144,1,0,0,0,87,46,0,144,1,0,0,0,89,46,0,144,2,0,0,0,91,46,0,144,95,46,0,144,1,0,0,0,99,46,0,144,1,0,0,0,101,46,0,144,3,0,0,0,103,46,0,144,107,46,0,144,111,46,0,144,3,0,0,0,115,46,0,144,119,46,0,144,123,46,0,144,1,0,0,0,127,46,0,144,2,0,0,0,131,46,0,144,135,46,0,144,3,0,0,0,139,46,0,144,143,46,0,144,147,46,0,144,1,0,0,0,151,46,0,144,2,0,0,0,153,46,0,144,157,46,0,144,1,0,0,0,161,46,0,144,2,0,0,0,165,46,0,144,169,46,0,144,2,0,0,0,173,46,0,144,177,46,0,144,1,0,0,0,181,46,0,144,1,0,0,0,183,46,0,144,1,0,0,0,185,46,0,144,1,0,0,0,187,46,0,144,1,0,0,0,189,46,0,144,1,0,0,0,191,46,0,144,1,0,0,0,193,46,0,144,1,0,0,0,195,46,0,144,2,0,0,0,197,46,0,144,201,46,0,144,1,0,0,0,205,46,0,144,3,0,0,0,207,46,0,144,211,46,0,144,215,46,0,144,1,0,0,0,219,46,0,144,2,0,0,0,221,46,0,144,225,46,0,144,2,0,0,0,229,46,0,144,233,46,0,144,1,0,0,0,237,46,0,144,2,0,0,0,239,46,0,144,243,46,0,144,1,0,0,0,247,46,0,144,1,0,0,0,249,46,0,144,1,0,0,0,251,46,0,144,1,0,0,0,253,46,0,144,1,0,0,0,255,46,0,144,3,0,0,0,1,47,0,144,5,47,0,144,9,47,0,144,1,0,0,0,13,47,0,144,1,0,0,0,15,47,0,144,4,0,0,0,17,47,0,144,21,47,0,144,25,47,0,144,29,47,0,144,1,0,0,0,33,47,0,144,2,0,0,0,35,47,0,144,39,47,0,144,3,0,0,0,43,47,0,144,47,47,0,144,51,47,0,144,2,0,0,0,55,47,0,144,59,47,0,144,2,0,0,0,63,47,0,144,67,47,0,144,5,0,0,0,71,47,0,144,75,47,0,144,79,47,0,144,83,47,0,144,87,47,0,144,1,0,0,0,91,47,0,144,1,0,0,0,93,47,0,144,1,0,0,0,95,47,0,144,1,0,0,0,99,47,0,144,4,0,0,0,101,47,0,144,105,47,0,144,109,47,0,144,113,47,0,144,1,0,0,0,117,47,0,144,1,0,0,0,119,47,0,144,1,0,0,0,121,47,0,144,1,0,0,0,123,47,0,144,1,0,0,0,127,47,0,144,2,0,0,0,129,47,0,144,133,47,0,144,2,0,0,0,137,47,0,144,141,47,0,144,1,0,0,0,145,47,0,144,2,0,0,0,147,47,0,144,151,47,0,144,1,0,0,0,155,47,0,144,1,0,0,0,157,47,0,144,1,0,0,0,159,47,0,144,3,0,0,0,161,47,0,144,165,47,0,144,169,47,0,144,1,0,0,0,173,47,0,144,1,0,0,0,175,47,0,144,1,0,0,0,177,47,0,144,2,0,0,0,179,47,0,144,183,47,0,144,2,0,0,0,187,47,0,144,191,47,0,144,3,0,0,0,195,47,0,144,199,47,0,144,203,47,0,144,1,0,0,0,207,47,0,144,1,0,0,0,209,47,0,144,1,0,0,0,211,47,0,144,1,0,0,0,213,47,0,144,1,0,0,0,215,47,0,144,1,0,0,0,217,47,0,144,1,0,0,0,219,47,0,144,1,0,0,0,221,47,0,144,1,0,0,0,223,47,0,144,1,0,0,0,225,47,0,144,1,0,0,0,227,47,0,144,1,0,0,0,229,47,0,144,1,0,0,0,231,47,0,144,1,0,0,0,233,47,0,144,1,0,0,0,235,47,0,144,1,0,0,0,237,47,0,144,2,0,0,0,239,47,0,144,243,47,0,144,1,0,0,0,247,47,0,144,1,0,0,0,249,47,0,144,1,0,0,0,251,47,0,144,1,0,0,0,253,47,0,144,1,0,0,0,255,47,0,144,1,0,0,0,1,48,0,144,1,0,0,0,3,48,0,144,1,0,0,0,7,48,0,144,1,0,0,0,9,48,0,144,1,0,0,0,11,48,0,144,1,0,0,0,13,48,0,144,1,0,0,0,15,48,0,144,1,0,0,0,17,48,0,144,1,0,0,0,19,48,0,144,1,0,0,0,21,48,0,144,2,0,0,0,23,48,0,144,27,48,0,144,1,0,0,0,31,48,0,144,2,0,0,0,33,48,0,144,37,48,0,144,1,0,0,0,41,48,0,144,2,0,0,0,43,48,0,144,47,48,0,144,1,0,0,0,51,48,0,144,2,0,0,0,53,48,0,144,57,48,0,144,4,0,0,0,61,48,0,144,65,48,0,144,69,48,0,144,73,48,0,144,2,0,0,0,77,48,0,144,81,48,0,144,4,0,0,0,85,48,0,144,89,48,0,144,93,48,0,144,97,48,0,144,2,0,0,0,101,48,0,144,105,48,0,144,4,0,0,0,109,48,0,144,113,48,0,144,117,48,0,144,121,48,0,144,1,0,0,0,125,48,0,144,2,0,0,0,127,48,0,144,131,48,0,144,1,0,0,0,135,48,0,144,1,0,0,0,137,48,0,144,1,0,0,0,139,48,0,144,1,0,0,0,141,48,0,144,4,0,0,0,143,48,0,144,147,48,0,144,151,48,0,144,155,48,0,144,1,0,0,0,159,48,0,144,3,0,0,0,161,48,0,144,165,48,0,144,169,48,0,144,1,0,0,0,173,48,0,144,1,0,0,0,175,48,0,144,1,0,0,0,177,48,0,144,1,0,0,0,179,48,0,144,2,0,0,0,181,48,0,144,185,48,0,144,1,0,0,0,189,48,0,144,4,0,0,0,191,48,0,144,195,48,0,144,199,48,0,144,203,48,0,144,1,0,0,0,207,48,0,144,1,0,0,0,209,48,0,144,1,0,0,0,211,48,0,144,5,0,0,0,215,48,0,144,219,48,0,144,223,48,0,144,227,48,0,144,231,48,0,144,1,0,0,0,235,48,0,144,1,0,0,0,237,48,0,144,1,0,0,0,239,48,0,144,2,0,0,0,241,48,0,144,245,48,0,144,1,0,0,0,249,48,0,144,1,0,0,0,251,48,0,144,1,0,0,0,255,48,0,144,1,0,0,0,1,49,0,144,1,0,0,0,3,49,0,144,4,0,0,0,5,49,0,144,9,49,0,144,13,49,0,144,17,49,0,144,1,0,0,0,21,49,0,144,1,0,0,0,23,49,0,144,1,0,0,0,25,49,0,144,1,0,0,0,27,49,0,144,1,0,0,0,29,49,0,144,1,0,0,0,31,49,0,144,1,0,0,0,33,49,0,144,1,0,0,0,35,49,0,144,1,0,0,0,37,49,0,144,1,0,0,0,39,49,0,144,1,0,0,0,41,49,0,144,1,0,0,0,43,49,0,144,1,0,0,0,45,49,0,144,1,0,0,0,47,49,0,144,1,0,0,0,49,49,0,144,1,0,0,0,51,49,0,144,1,0,0,0,53,49,0,144,1,0,0,0,55,49,0,144,1,0,0,0,59,49,0,144,1,0,0,0,61,49,0,144,1,0,0,0,63,49,0,144,1,0,0,0,65,49,0,144,1,0,0,0,67,49,0,144,1,0,0,0,69,49,0,144,1,0,0,0,71,49,0,144,2,0,0,0,73,49,0,144,77,49,0,144,1,0,0,0,81,49,0,144,1,0,0,0,83,49,0,144,2,0,0,0,85,49,0,144,89,49,0,144,2,0,0,0,93,49,0,144,97,49,0,144,1,0,0,0,101,49,0,144,1,0,0,0,103,49,0,144,2,0,0,0,105,49,0,144,109,49,0,144,1,0,0,0,113,49,0,144,1,0,0,0,115,49,0,144,2,0,0,0,117,49,0,144,121,49,0,144,1,0,0,0,125,49,0,144,1,0,0,0,127,49,0,144,1,0,0,0,129,49,0,144,1,0,0,0,131,49,0,144,2,0,0,0,133,49,0,144,137,49,0,144,1,0,0,0,141,49,0,144,1,0,0,0,143,49,0,144,1,0,0,0,145,49,0,144,1,0,0,0,147,49,0,144,1,0,0,0,149,49,0,144,2,0,0,0,151,49,0,144,155,49,0,144,1,0,0,0,159,49,0,144,1,0,0,0,161,49,0,144,1,0,0,0,163,49,0,144,1,0,0,0,165,49,0,144,1,0,0,0,167,49,0,144,1,0,0,0,169,49,0,144,159,1,208,9,223,9,236,9,255,9,14,10,28,10,42,10,56,10,70,10,84,10,100,10,119,10,136,10,149,10,167,10,180,10,195,10,208,10,229,10,245,10,3,11,19,11,35,11,51,11,65,11,85,11,97,11,112,11,128,11,142,11,158,11,171,11,189,11,201,11,215,11,233,11,247,11,5,12,19,12,33,12,48,12,65,12,81,12,96,12,112,12,126,12,144,12,163,12,181,12,197,12,212,12,225,12,241,12,254,12,16,13,33,13,49,13,67,13,94,13,125,13,149,13,176,13,203,13,229,13,255,13,13,14,30,14,44,14,67,14,84,14,98,14,113,14,134,14,152,14,167,14,181,14,202,14,224,14,245,14,4,15,20,15,38,15,54,15,69,15,85,15,103,15,125,15,147,15,163,15,182,15,198,15,213,15,229,15,250,15,9,16,30,16,45,16,61,16,78,16,95,16,112,16,132,16,152,16,170,16,188,16,204,16,222,16,241,16,1,17,20,17,38,17,56,17,71,17,87,17,102,17,121,17,142,17,166,17,193,17,219,17,241,17,11,18,35,18,56,18,71,18,87,18,103,18,117,18,132,18,160,18,179,18,194,18,207,18,227,18,246,18,12,19,27,19,43,19,58,19,74,19,93,19,111,19,128,19,144,19,162,19,177,19,196,19,216,19,233,19,249,19,11,20,30,20,49,20,64,20,81,20,94,20,110,20,138,20,166,20,197,20,213,20,228,20,247,20,7,21,30,21,52,21,72,21,92,21,113,21,134,21,149,21,164,21,181,21,200,21,217,21,234,21,0,22,18,22,39,22,53,22,75,22,92,22,109,22,126,22,144,22,163,22,185,22,205,22,219,22,235,22,251,22,11,23,29,23,48,23,65,23,81,23,98,23,115,23,141,23,162,23,180,23,199,23,217,23,236,23,253,23,14,24,32,24,52,24,62,24,74,24,85,24,97,24,108,24,120,24,134,24,146,24,159,24,172,24,182,24,195,24,207,24,220,24,232,24,246,24,1,25,14,25,28,25,39,25,49,25,60,25,74,25,89,25,99,25,111,25,126,25,136,25,149,25,162,25,176,25,191,25,202,25,217,25,230,25,244,25,2,26,19,26,37,26,50,26,62,26,73,26,86,26,100,26,112,26,124,26,137,26,155,26,172,26,182,26,192,26,208,26,223,26,238,26,249,26,7,27,22,27,35,27,47,27,59,27,73,27,88,27,99,27,113,27,128,27,147,27,159,27,173,27,186,27,198,27,211,27,222,27,239,27,251,27,9,28,24,28,41,28,54,28,73,28,86,28,102,28,119,28,135,28,155,28,171,28,188,28,207,28,230,28,249,28,10,29,29,29,48,29,70,29,87,29,103,29,120,29,139,29,159,29,179,29,195,29,212,29,220,29,237,29,252,29,13,30,27,30,43,30,57,30,75,30,91,30,108,30,124,30,140,30,156,30,174,30,188,30,205,30,221,30,237,30,0,31,16,31,30,31,49,31,61,31,75,31,92,31,106,31,124,31,138,31,151,31,168,31,181,31,195,31,209,31,221,31,234,31,251,31,9,32,21,32,33,32,47,32,65,32,81,32,96,32,114,32,128,32,141,32,158,32,173,32,187,32,204,32,217,32,232,32,246,32,5,33,22,33,36,33,50,33,64,33,84,33,98,33,115,33,128,33,142,33,159,33,171,33,187,33,204,33,219,33,234,33,247,33,8,34,29,34,45,34,60,34,74,34,92,34,108,34,121,34,138,34,156,34,172,34,192,34,205,34,222,34,241,34,0,35,18,35,33,35,51,35,66,35,80,35,93,35,109,35,124,35,142,35,156,35,173,35,188,35,209,35,227,35,242,35,1,36,16,36,34,36,47,36,60,36,28,35,0,128,30,35,0,128,32,35,0,128,34,35,0,128,39,35,0,128,41,35,0,128,43,35,0,128,45,35,0,128,47,35,0,128,50,35,0,128,52,35,0,128,54,35,0,128,56,35,0,128,58,35,0,128,62,35,0,128,65,35,0,128,67,35,0,128,69,35,0,128,71,35,0,128,73,35,0,128,75,35,0,128,78,35,0,128,80,35,0,128,82,35,0,128,84,35,0,128,86,35,0,128,90,35,0,128,92,35,0,128,96,35,0,128,98,35,0,128,100,35,0,128,102,35,0,128,104,35,0,128,106,35,0,128,108,35,0,128,110,35,0,128,112,35,0,128,114,35,0,128,116,35,0,128,118,35,0,128,120,35,0,128,122,35,0,128,125,35,0,128,127,35,0,128,129,35,0,128,131,35,0,128,133,35,0,128,135,35,0,128,137,35,0,128,141,35,0,128,149,35,0,128,151,35,0,128,156,35,0,128,159,35,0,128,162,35,0,128,164,35,0,128,166,35,0,128,168,35,0,128,174,35,0,128,178,35,0,128,181,35,0,128,187,35,0,128,197,35,0,128,202,35,0,128,205,35,0,128,207,35,0,128,209,35,0,128,211,35,0,128,214,35,0,128,216,35,0,128,218,35,0,128,220,35,0,128,222,35,0,128,224,35,0,128,226,35,0,128,228,35,0,128,230,35,0,128,236,35,0,128,238,35,0,128,245,35,0,128,247,35,0,128,252,35,0,128,254,35,0,128,0,36,0,128,2,36,0,128,6,36,0,128,11,36,0,128,13,36,0,128,16,36,0,128,18,36,0,128,20,36,0,128,22,36,0,128,24,36,0,128,27,36,0,128,30,36,0,128,33,36,0,128,35,36,0,128,37,36,0,128,39,36,0,128,41,36,0,128,45,36,0,128,47,36,0,128,50,36,0,128,52,36,0,128,54,36,0,128,57,36,0,128,61,36,0,128,65,36,0,128,67,36,0,128,69,36,0,128,71,36,0,128,73,36,0,128,75,36,0,128,77,36,0,128,79,36,0,128,81,36,0,128,85,36,0,128,89,36,0,128,94,36,0,128,97,36,0,128,99,36,0,128,103,36,0,128,107,36,0,128,109,36,0,128,112,36,0,128,116,36,0,128,118,36,0,128,121,36,0,128,125,36,0,128,128,36,0,128,130,36,0,128,132,36,0,128,134,36,0,128,136,36,0,128,140,36,0,128,142,36,0,128,144,36,0,128,152,36,0,128,154,36,0,128,156,36,0,128,158,36,0,128,160,36,0,128,162,36,0,128,166,36,0,128,169,36,0,128,173,36,0,128,178,36,0,128,180,36,0,128,183,36,0,128,185,36,0,128,187,36,0,128,189,36,0,128,191,36,0,128,193,36,0,128,195,36,0,128,198,36,0,128,200,36,0,128,203,36,0,128,206,36,0,128,209,36,0,128,213,36,0,128,215,36,0,128,218,36,0,128,220,36,0,128,222,36,0,128,224,36,0,128,226,36,0,128,228,36,0,128,230,36,0,128,234,36,0,128,236,36,0,128,238,36,0,128,244,36,0,128,248,36,0,128,251,36,0,128,253,36,0,128,2,37,0,128,4,37,0,128,8,37,0,128,11,37,0,128,13,37,0,128,15,37,0,128,17,37,0,128,19,37,0,128,21,37,0,128,23,37,0,128,26,37,0,128,28,37,0,128,30,37,0,128,32,37,0,128,34,37,0,128,36,37,0,128,38,37,0,128,41,37,0,128,43,37,0,128,45,37,0,128,63,37,0,128,65,37,0,128,67,37,0,128,69,37,0,128,71,37,0,128,73,37,0,128,76,37,0,128,78,37,0,128,80,37,0,128,82,37,0,128,84,37,0,128,86,37,0,128,88,37,0,128,92,37,0,128,94,37,0,128,98,37,0,128,103,37,0,128,108,37,0,128,111,37,0,128,114,37,0,128,116,37,0,128,119,37,0,128,122,37,0,128,124,37,0,128,126,37,0,128,129,37,0,128,131,37,0,128,133,37,0,128,137,37,0,128,141,37,0,128,143,37,0,128,146,37,0,128,150,37,0,128,152,37,0,128,155,37,0,128,157,37,0,128,160,37,0,128,163,37,0,128,165,37,0,128,167,37,0,128,169,37,0,128,171,37,0,128,173,37,0,128,175,37,0,128,177,37,0,128,179,37,0,128,182,37,0,128,184,37,0,128,188,37,0,128,190,37,0,128,193,37,0,128,196,37,0,128,198,37,0,128,201,37,0,128,203,37,0,128,205,37,0,128,207,37,0,128,209,37,0,128,211,37,0,128,215,37,0,128,217,37,0,128,219,37,0,128,224,37,0,128,226,37,0,128,229,37,0,128,233,37,0,128,236,37,0,128,239,37,0,128,245,37,0,128,247,37,0,128,249,37,0,128,251,37,0,128,253,37,0,128,2,38,0,128,4,38,0,128,6,38,0,128,8,38,0,128,10,38,0,128,12,38,0,128,15,38,0,128,18,38,0,128,20,38,0,128,23,38,0,128,25,38,0,128,27,38,0,128,29,38,0,128,33,38,0,128,35,38,0,128,37,38,0,128,39,38,0,128,42,38,0,128,45,38,0,128,49,38,0,128,51,38,0,128,53,38,0,128,55,38,0,128,57,38,0,128,59,38,0,128,61,38,0,128,63,38,0,128,65,38,0,128,67,38,0,128,69,38,0,128,71,38,0,128,73,38,0,128,75,38,0,128,77,38,0,128,79,38,0,128,81,38,0,128,84,38,0,128,86,38,0,128,88,38,0,128,90,38,0,128,92,38,0,128,94,38,0,128,96,38,0,128,98,38,0,128,100,38,0,128,102,38,0,128,104,38,0,128,106,38,0,128,108,38,0,128,110,38,0,128,112,38,0,128,114,38,0,128,117,38,0,128,119,38,0,128,122,38,0,128,124,38,0,128,127,38,0,128,129,38,0,128,132,38,0,128,137,38,0,128,140,38,0,128,145,38,0,128,148,38,0,128,153,38,0,128,155,38,0,128,158,38,0,128,160,38,0,128,162,38,0,128,164,38,0,128,166,38,0,128,171,38,0,128,173,38,0,128,177,38,0,128,179,38,0,128,181,38,0,128,183,38,0,128,185,38,0,128,188,38,0,128,190,38,0,128,195,38,0,128,197,38,0,128,199,38,0,128,201,38,0,128,207,38,0,128,209,38,0,128,211,38,0,128,213,38,0,128,216,38,0,128,218,38,0,128,220,38,0,128,222,38,0,128,224,38,0,128,226,38,0,128,231,38,0,128,233,38,0,128,235,38,0,128,237,38,0,128,239,38,0,128,241,38,0,128,243,38,0,128,245,38,0,128,247,38,0,128,249,38,0,128,251,38,0,128,253,38,0,128,255,38,0,128,1,39,0,128,3,39,0,128,5,39,0,128,7,39,0,128,9,39,0,128,11,39,0,128,13,39,0,128,15,39,0,128,17,39,0,128,19,39,0,128,21,39,0,128,23,39,0,128,25,39,0,128,28,39,0,128,30,39,0,128,32,39,0,128,35,39,0,128,38,39,0,128,40,39,0,128,42,39,0,128,45,39,0,128,47,39,0,128,49,39,0,128,52,39,0,128,54,39,0,128,56,39,0,128,58,39,0,128,60,39,0,128,63,39,0,128,65,39,0,128,67,39,0,128,69,39,0,128,71,39,0,128,73,39,0,128,76,39,0,128,78,39,0,128,80,39,0,128,82,39,0,128,84,39,0,128,86,39,0,128,4,0,32,0,186,6,195,9,75,36,170,170,254,33,0,32,28,40,0,80,88,39,0,32,171,49,0,80,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,184,36,0,32,7,0,0,0,157,5,0,0,188,36,0,0,188,36,0,0,128,2,0,0,1,0,0,0,30,29,0,0,97,108,105,97,115,0,108,97,110,103,117,97,103,101,0,97,97,95,115,97,97,104,111,0,114,101,97,115,111,110,0,114,101,112,108,97,99,101,109,101,110,116,0,97,97,109,0,97,97,114,0,97,98,107,0,97,100,112,0,97,102,114,0,97,103,112,0,97,105,115,0,97,106,116,0,97,106,117,0,97,107,97,0,97,108,98,0,97,108,115,0,97,109,104,0,97,114,97,0,97,114,98,0,97,114,103,0,97,114,109,0,97,114,116,95,108,111,106,98,97,110,0,97,115,100,0,97,115,109,0,97,117,101,0,97,118,97,0,97,118,101,0,97,121,109,0,97,121,114,0,97,121,120,0,97,122,101,0,97,122,106,0,98,97,107,0,98,97,109,0,98,97,113,0,98,97,122,0,98,99,99,0,98,99,108,0,98,101,108,0,98,101,110,0,98,103,109,0,98,104,0,98,104,107,0,98,105,99,0,98,105,104,0,98,105,115,0,98,106,100,0,98,106,113,0,98,107,98,0,98,108,103,0,98,111,100,0,98,111,115,0,98,114,101,0,98,116,98,0,98,117,108,0,98,117,114,0,98,120,107,0,98,120,114,0,99,97,116,0,99,99,113,0,99,101,108,95,103,97,117,108,105,115,104,0,99,101,115,0,99,104,97,0,99,104,101,0,99,104,105,0,99,104,117,0,99,104,118,0,99,106,114,0,99,107,97,0,99,108,100,0,99,109,107,0,99,110,114,0,99,111,114,0,99,111,115,0,99,111,121,0,99,113,117,0,99,114,101,0,99,119,100,0,99,121,109,0,99,122,101,0,100,97,102,0,100,97,110,0,100,97,112,0,100,101,117,0,100,103,111,0,100,104,100,0,100,105,107,0,100,105,113,0,100,105,116,0,100,105,118,0,100,106,108,0,100,107,108,0,100,114,104,0,100,114,114,0,100,114,119,0,100,117,100,0,100,117,106,0,100,117,116,0,100,119,108,0,100,122,111,0,101,107,107,0,101,108,108,0,101,108,112,0,101,109,107,0,101,110,95,71,66,95,111,101,100,0,101,110,103,0,101,112,111,0,101,115,107,0,101,115,116,0,101,117,115,0,101,119,101,0,102,97,111,0,102,97,115,0,102,97,116,0,102,105,106,0,102,105,110,0,102,114,97,0,102,114,101,0,102,114,121,0,102,117,99,0,102,117,108,0,103,97,118,0,103,97,122,0,103,98,99,0,103,98,111,0,103,101,111,0,103,101,114,0,103,102,120,0,103,103,110,0,103,103,111,0,103,103,114,0,103,105,111,0,103,108,97,0,103,108,101,0,103,108,103,0,103,108,105,0,103,108,118,0,103,110,111,0,103,114,101,0,103,114,110,0,103,116,105,0,103,117,103,0,103,117,106,0,103,117,118,0,103,121,97,0,104,97,116,0,104,97,117,0,104,98,115,0,104,100,110,0,104,101,97,0,104,101,98,0,104,101,114,0,104,105,109,0,104,105,110,0,104,109,111,0,104,114,114,0,104,114,118,0,104,117,110,0,104,121,95,97,114,101,118,109,100,97,0,104,121,101,0,105,95,97,109,105,0,105,95,98,110,110,0,105,95,100,101,102,97,117,108,116,0,105,95,101,110,111,99,104,105,97,110,0,105,95,104,97,107,0,105,95,107,108,105,110,103,111,110,0,105,95,108,117,120,0,105,95,109,105,110,103,111,0,105,95,110,97,118,97,106,111,0,105,95,112,119,110,0,105,95,116,97,111,0,105,95,116,97,121,0,105,95,116,115,117,0,105,98,105,0,105,98,111,0,105,99,101,0,105,100,111,0,105,105,105,0,105,107,101,0,105,107,117,0,105,108,101,0,105,108,108,0,105,108,119,0,105,110,97,0,105,110,100,0,105,112,107,0,105,115,108,0,105,116,97,0,105,122,105,0,106,97,114,0,106,97,118,0,106,101,103,0,106,112,110,0,106,119,0,107,97,108,0,107,97,110,0,107,97,115,0,107,97,116,0,107,97,117,0,107,97,122,0,107,100,118,0,107,103,99,0,107,103,100,0,107,103,104,0,107,104,107,0,107,104,109,0,107,105,107,0,107,105,110,0,107,105,114,0,107,109,114,0,107,110,99,0,107,110,103,0,107,110,110,0,107,111,106,0,107,111,109,0,107,111,110,0,107,111,114,0,107,112,112,0,107,112,118,0,107,114,109,0,107,116,114,0,107,117,97,0,107,117,114,0,107,118,115,0,107,119,113,0,107,120,101,0,107,120,108,0,107,122,104,0,107,122,106,0,107,122,116,0,108,97,107,0,108,97,111,0,108,97,116,0,108,97,118,0,108,98,107,0,108,101,103,0,108,105,105,0,108,105,109,0,108,105,110,0,108,105,116,0,108,108,111,0,108,109,109,0,108,116,122,0,108,117,98,0,108,117,103,0,108,118,115,0,109,97,99,0,109,97,104,0,109,97,111,0,109,97,114,0,109,97,121,0,109,101,103,0,109,103,120,0,109,104,114,0,109,107,100,0,109,108,103,0,109,108,116,0,109,110,107,0,109,110,116,0,109,111,102,0,109,111,108,0,109,111,110,0,109,114,105,0,109,115,97,0,109,115,116,0,109,117,112,0,109,119,100,0,109,119,106,0,109,121,97,0,109,121,100,0,109,121,116,0,110,97,100,0,110,97,117,0,110,97,118,0,110,98,102,0,110,98,108,0,110,98,120,0,110,99,112,0,110,100,101,0,110,100,111,0,110,101,112,0,110,108,100,0,110,108,110,0,110,108,114,0,110,110,111,0,110,110,115,0,110,110,120,0,110,111,95,98,111,107,0,110,111,95,98,111,107,109,97,108,0,110,111,95,110,121,110,0,110,111,95,110,121,110,111,114,115,107,0,110,111,98,0,110,111,111,0,110,111,114,0,110,112,105,0,110,116,115,0,110,120,117,0,110,121,97,0,111,99,105,0,111,106,103,0,111,106,105,0,111,114,105,0,111,114,109,0,111,115,115,0,111,117,110,0,112,97,110,0,112,97,116,0,112,98,117,0,112,99,114,0,112,101,114,0,112,101,115,0,112,108,105,0,112,108,116,0,112,109,99,0,112,109,117,0,112,110,98,0,112,111,108,0,112,111,114,0,112,112,97,0,112,112,114,0,112,114,115,0,112,114,121,0,112,117,115,0,112,117,122,0,113,117,101,0,113,117,122,0,114,109,114,0,114,109,121,0,114,111,104,0,114,111,110,0,114,117,109,0,114,117,110,0,114,117,115,0,115,97,103,0,115,97,110,0,115,97,112,0,115,99,97,0,115,99,99,0,115,99,114,0,115,103,108,0,115,103,110,95,66,69,95,70,82,0,115,103,110,95,66,69,95,78,76,0,115,103,110,95,66,82,0,115,103,110,95,67,72,95,68,69,0,115,103,110,95,67,79,0,115,103,110,95,68,69,0,115,103,110,95,68,75,0,115,103,110,95,69,83,0,115,103,110,95,70,82,0,115,103,110,95,71,66,0,115,103,110,95,71,82,0,115,103,110,95,73,69,0,115,103,110,95,73,84,0,115,103,110,95,74,80,0,115,103,110,95,77,88,0,115,103,110,95,78,73,0,115,103,110,95,78,76,0,115,103,110,95,78,79,0,115,103,110,95,80,84,0,115,103,110,95,83,69,0,115,103,110,95,85,83,0,115,103,110,95,90,65,0,115,105,110,0,115,107,107,0,115,108,107,0,115,108,111,0,115,108,118,0,115,109,100,0,115,109,101,0,115,109,111,0,115,110,97,0,115,110,98,0,115,110,100,0,115,111,109,0,115,111,116,0,115,112,97,0,115,112,121,0,115,113,105,0,115,114,99,0,115,114,100,0,115,114,112,0,115,115,119,0,115,117,108,0,115,117,110,0,115,119,97,0,115,119,99,0,115,119,101,0,115,119,104,0,116,97,104,0,116,97,109,0,116,97,116,0,116,100,117,0,116,101,108,0,116,103,103,0,116,103,107,0,116,103,108,0,116,104,97,0,116,104,99,0,116,104,119,0,116,104,120,0,116,105,98,0,116,105,100,0,116,105,101,0,116,105,114,0,116,107,107,0,116,108,0,116,108,119,0,116,109,112,0,116,110,101,0,116,110,102,0,116,115,102,0,116,115,110,0,116,115,111,0,116,116,113,0,116,117,107,0,116,117,114,0,116,119,0,116,119,105,0,117,105,103,0,117,107,114,0,117,109,117,0,117,110,100,95,97,97,108,97,110,100,0,117,110,100,95,97,114,101,118,101,108,97,0,117,110,100,95,97,114,101,118,109,100,97,0,117,110,100,95,98,111,107,109,97,108,0,117,110,100,95,104,97,107,107,97,0,117,110,100,95,104,101,112,98,117,114,110,95,104,101,112,108,111,99,0,117,110,100,95,108,111,106,98,97,110,0,117,110,100,95,110,121,110,111,114,115,107,0,117,110,100,95,115,97,97,104,111,0,117,110,100,95,120,105,97,110,103,0,117,110,112,0,117,111,107,0,117,114,100,0,117,122,98,0,117,122,110,0,118,101,110,0,118,105,101,0,118,111,108,0,119,101,108,0,119,103,119,0,119,105,116,0,119,105,119,0,119,108,110,0,119,111,108,0,120,98,97,0,120,104,111,0,120,105,97,0,120,107,104,0,120,112,101,0,120,114,113,0,120,115,106,0,120,115,108,0,121,98,100,0,121,100,100,0,121,101,110,0,121,105,100,0,121,105,121,0,121,109,97,0,121,109,116,0,121,111,114,0,121,111,115,0,121,117,117,0,122,97,105,0,122,104,95,99,109,110,0,122,104,95,99,109,110,95,72,97,110,115,0,122,104,95,99,109,110,95,72,97,110,116,0,122,104,95,103,97,110,0,122,104,95,103,117,111,121,117,0,122,104,95,104,97,107,107,97,0,122,104,95,109,105,110,0,122,104,95,109,105,110,95,110,97,110,0,122,104,95,119,117,117,0,122,104,95,120,105,97,110,103,0,122,104,95,121,117,101,0,122,104,97,0,122,104,111,0,122,105,114,0,122,115,109,0,122,117,108,0,122,121,98,0,115,99,114,105,112,116,0,81,97,97,105,0,115,117,98,100,105,118,105,115,105,111,110,0,99,110,49,49,0,99,110,49,50,0,99,110,49,51,0,99,110,49,52,0,99,110,49,53,0,99,110,50,49,0,99,110,50,50,0,99,110,50,51,0,99,110,51,49,0,99,110,51,50,0,99,110,51,51,0,99,110,51,52,0,99,110,51,53,0,99,110,51,54,0,99,110,51,55,0,99,110,52,49,0,99,110,52,50,0,99,110,52,51,0,99,110,52,52,0,99,110,52,53,0,99,110,52,54,0,99,110,53,48,0,99,110,53,49,0,99,110,53,50,0,99,110,53,51,0,99,110,53,52,0,99,110,54,49,0,99,110,54,50,0,99,110,54,51,0,99,110,54,52,0,99,110,54,53,0,99,110,55,49,0,99,110,57,49,0,99,110,57,50,0,99,122,49,48,97,0,99,122,49,48,98,0,99,122,49,48,99,0,99,122,49,48,100,0,99,122,49,48,101,0,99,122,49,48,102,0,99,122,54,49,49,0,99,122,54,49,50,0,99,122,54,49,51,0,99,122,54,49,52,0,99,122,54,49,53,0,99,122,54,50,49,0,99,122,54,50,50,0,99,122,54,50,51,0,99,122,54,50,52,0,99,122,54,50,54,0,99,122,54,50,55,0,99,122,106,99,0,99,122,106,109,0,99,122,107,97,0,99,122,107,114,0,99,122,108,105,0,99,122,109,111,0,99,122,111,108,0,99,122,112,97,0,99,122,112,108,0,99,122,112,114,0,99,122,115,116,0,99,122,117,115,0,99,122,118,121,0,99,122,122,108,0,102,105,48,49,0,102,114,98,0,102,114,98,108,0,102,114,99,0,102,114,99,112,0,102,114,100,0,102,114,102,0,102,114,103,0,102,114,103,102,0,102,114,103,112,0,102,114,104,0,102,114,105,0,102,114,106,0,102,114,107,0,102,114,108,0,102,114,109,0,102,114,109,102,0,102,114,109,113,0,102,114,110,0,102,114,110,99,0,102,114,111,0,102,114,112,0,102,114,112,102,0,102,114,112,109,0,102,114,113,0,102,114,114,0,102,114,114,101,0,102,114,115,0,102,114,116,0,102,114,116,102,0,102,114,117,0,102,114,118,0,102,114,119,102,0,102,114,121,116,0,108,97,120,110,0,108,117,100,0,108,117,108,0,109,114,110,107,99,0,110,108,97,119,0,110,108,99,119,0,110,108,115,120,0,110,111,50,51,0,110,122,110,0,110,122,115,0,111,109,98,97,0,111,109,115,104,0,112,108,100,115,0,112,108,107,112,0,112,108,108,98,0,112,108,108,100,0,112,108,108,117,0,112,108,109,97,0,112,108,109,122,0,112,108,111,112,0,112,108,112,100,0,112,108,112,107,0,112,108,112,109,0,112,108,115,107,0,112,108,115,108,0,112,108,119,110,0,112,108,119,112,0,112,108,122,112,0,115,104,116,97,0,116,116,101,116,111,0,116,116,114,99,109,0,116,116,119,116,111,0,116,119,107,104,113,0,116,119,116,110,113,0,116,119,116,112,113,0,116,119,116,120,113,0,117,115,97,115,0,117,115,103,117,0,117,115,109,112,0,117,115,112,114,0,117,115,117,109,0,117,115,118,105,0,116,101,114,114,105,116,111,114,121,0,48,48,52,0,48,48,56,0,48,49,48,0,48,49,50,0,48,49,54,0,48,50,48,0,48,50,52,0,48,50,56,0,48,51,49,0,48,51,50,0,48,51,54,0,48,52,48,0,48,52,52,0,48,52,56,0,48,53,48,0,48,53,49,0,48,53,50,0,48,53,54,0,48,54,48,0,48,54,50,0,48,54,52,0,48,54,56,0,48,55,48,0,48,55,50,0,48,55,52,0,48,55,54,0,48,56,52,0,48,56,54,0,48,57,48,0,48,57,50,0,48,57,54,0,49,48,48,0,49,48,52,0,49,48,56,0,49,49,50,0,49,49,54,0,49,50,48,0,49,50,52,0,49,51,50,0,49,51,54,0,49,52,48,0,49,52,52,0,49,52,56,0,49,53,50,0,49,53,54,0,49,53,56,0,49,54,50,0,49,54,54,0,49,55,48,0,49,55,50,0,49,55,52,0,49,55,53,0,49,55,56,0,49,56,48,0,49,56,52,0,49,56,56,0,49,57,49,0,49,57,50,0,49,57,54,0,50,48,48,0,50,48,51,0,50,48,52,0,50,48,56,0,50,49,50,0,50,49,52,0,50,49,56,0,50,50,50,0,50,50,54,0,50,51,48,0,50,51,49,0,50,51,50,0,50,51,51,0,50,51,52,0,50,51,56,0,50,51,57,0,50,52,50,0,50,52,54,0,50,52,56,0,50,52,57,0,50,53,48,0,50,53,52,0,50,53,56,0,50,54,48,0,50,54,50,0,50,54,54,0,50,54,56,0,50,55,48,0,50,55,53,0,50,55,54,0,50,55,56,0,50,56,48,0,50,56,56,0,50,57,50,0,50,57,54,0,51,48,48,0,51,48,52,0,51,48,56,0,51,49,50,0,51,49,54,0,51,50,48,0,51,50,52,0,51,50,56,0,51,51,50,0,51,51,52,0,51,51,54,0,51,52,48,0,51,52,52,0,51,52,56,0,51,53,50,0,51,53,54,0,51,54,48,0,51,54,52,0,51,54,56,0,51,55,50,0,51,55,54,0,51,56,48,0,51,56,52,0,51,56,56,0,51,57,50,0,51,57,56,0,52,48,48,0,52,48,52,0,52,48,56,0,52,49,48,0,52,49,52,0,52,49,55,0,52,49,56,0,52,50,50,0,52,50,54,0,52,50,56,0,52,51,48,0,52,51,52,0,52,51,56,0,52,52,48,0,52,52,50,0,52,52,54,0,52,53,48,0,52,53,52,0,52,53,56,0,52,54,50,0,52,54,54,0,52,55,48,0,52,55,52,0,52,55,56,0,52,56,48,0,52,56,52,0,52,57,50,0,52,57,54,0,52,57,56,0,52,57,57,0,53,48,48,0,53,48,52,0,53,48,56,0,53,49,50,0,53,49,54,0,53,50,48,0,53,50,52,0,53,50,56,0,53,51,48,0,53,51,49,0,53,51,50,0,53,51,51,0,53,51,52,0,53,51,53,0,53,51,54,0,53,52,48,0,53,52,56,0,53,53,52,0,53,53,56,0,53,54,50,0,53,54,54,0,53,55,48,0,53,55,52,0,53,55,56,0,53,56,48,0,53,56,49,0,53,56,50,0,53,56,51,0,53,56,52,0,53,56,53,0,53,56,54,0,53,57,49,0,53,57,56,0,54,48,48,0,54,48,52,0,54,48,56,0,54,49,54,0,54,50,48,0,54,51,48,0,54,51,52,0,54,51,56,0,54,52,50,0,54,52,51,0,54,52,54,0,54,53,50,0,54,53,52,0,54,53,57,0,54,54,48,0,54,54,50,0,54,54,51,0,54,54,54,0,54,55,48,0,54,55,52,0,54,55,56,0,54,56,50,0,54,56,54,0,54,56,56,0,54,57,48,0,54,57,52,0,55,48,50,0,55,48,51,0,55,48,52,0,55,48,53,0,55,48,54,0,55,49,48,0,55,49,54,0,55,50,48,0,55,50,52,0,55,50,56,0,55,50,57,0,55,51,50,0,55,51,54,0,55,52,48,0,55,52,52,0,55,52,56,0,55,53,50,0,55,53,54,0,55,54,48,0,55,54,50,0,55,54,52,0,55,54,56,0,55,55,50,0,55,55,54,0,55,56,48,0,55,56,52,0,55,56,56,0,55,57,50,0,55,57,53,0,55,57,54,0,55,57,56,0,56,48,48,0,56,48,52,0,56,48,55,0,56,49,48,0,56,49,56,0,56,50,54,0,56,51,48,0,56,51,49,0,56,51,50,0,56,51,51,0,56,51,52,0,56,52,48,0,56,53,48,0,56,53,52,0,56,53,56,0,56,54,48,0,56,54,50,0,56,55,54,0,56,56,50,0,56,56,54,0,56,56,55,0,56,57,48,0,56,57,49,0,56,57,52,0,57,53,56,0,57,53,57,0,57,54,48,0,57,54,50,0,57,54,51,0,57,54,52,0,57,54,53,0,57,54,54,0,57,54,55,0,57,54,56,0,57,54,57,0,57,55,48,0,57,55,49,0,57,55,50,0,57,55,51,0,57,55,52,0,57,55,53,0,57,55,54,0,57,55,55,0,57,55,56,0,57,55,57,0,57,56,48,0,57,56,49,0,57,56,50,0,57,56,51,0,57,56,52,0,57,56,53,0,57,56,54,0,57,56,55,0,57,56,56,0,57,56,57,0,57,57,48,0,57,57,49,0,57,57,50,0,57,57,51,0,57,57,52,0,57,57,53,0,57,57,54,0,57,57,55,0,57,57,56,0,57,57,57,0,65,65,65,0,65,66,87,0,65,70,71,0,65,71,79,0,65,73,65,0,65,76,65,0,65,76,66,0,65,78,68,0,65,78,84,0,65,82,69,0,65,82,71,0,65,82,77,0,65,83,67,0,65,83,77,0,65,84,65,0,65,84,70,0,65,84,71,0,65,85,83,0,65,85,84,0,65,90,69,0,66,68,73,0,66,69,76,0,66,69,78,0,66,69,83,0,66,70,65,0,66,71,68,0,66,71,82,0,66,72,82,0,66,72,83,0,66,73,72,0,66,76,77,0,66,76,82,0,66,76,90,0,66,77,85,0,66,79,76,0,66,82,65,0,66,82,66,0,66,82,78,0,66,84,78,0,66,85,0,66,85,82,0,66,86,84,0,66,87,65,0,67,65,70,0,67,65,78,0,67,67,75,0,67,72,69,0,67,72,76,0,67,72,78,0,67,73,86,0,67,77,82,0,67,79,68,0,67,79,71,0,67,79,75,0,67,79,76,0,67,79,77,0,67,80,84,0,67,80,86,0,67,82,73,0,67,83,0,67,85,66,0,67,85,87,0,67,88,82,0,67,89,77,0,67,89,80,0,67,90,69,0,68,68,82,0,68,69,85,0,68,71,65,0,68,74,73,0,68,77,65,0,68,78,75,0,68,79,77,0,68,89,0,68,90,65,0,69,67,85,0,69,71,89,0,69,82,73,0,69,83,72,0,69,83,80,0,69,83,84,0,69,84,72,0,70,73,78,0,70,74,73,0,70,76,75,0,70,81,0,70,82,65,0,70,82,79,0,70,83,77,0,70,88,0,70,88,88,0,71,65,66,0,71,66,82,0,71,69,79,0,71,71,89,0,71,72,65,0,71,73,66,0,71,73,78,0,71,76,80,0,71,77,66,0,71,78,66,0,71,78,81,0,71,82,67,0,71,82,68,0,71,82,76,0,71,84,77,0,71,85,70,0,71,85,77,0,71,85,89,0,72,75,71,0,72,77,68,0,72,78,68,0,72,82,86,0,72,84,73,0,72,85,78,0,72,86,0,73,68,78,0,73,77,78,0,73,78,68,0,73,79,84,0,73,82,76,0,73,82,78,0,73,82,81,0,73,83,76,0,73,83,82,0,73,84,65,0,74,65,77,0,74,69,89,0,74,79,82,0,74,80,78,0,74,84,0,75,65,90,0,75,69,78,0,75,71,90,0,75,72,77,0,75,73,82,0,75,78,65,0,75,79,82,0,75,87,84,0,76,65,79,0,76,66,78,0,76,66,82,0,76,66,89,0,76,67,65,0,76,73,69,0,76,75,65,0,76,83,79,0,76,84,85,0,76,85,88,0,76,86,65,0,77,65,67,0,77,65,70,0,77,65,82,0,77,67,79,0,77,68,65,0,77,68,71,0,77,68,86,0,77,69,88,0,77,72,76,0,77,75,68,0,77,76,73,0,77,76,84,0,77,77,82,0,77,78,69,0,77,78,71,0,77,78,80,0,77,79,90,0,77,82,84,0,77,83,82,0,77,84,81,0,77,85,83,0,77,87,73,0,77,89,83,0,77,89,84,0,78,65,77,0,78,67,76,0,78,69,82,0,78,70,75,0,78,71,65,0,78,72,0,78,73,67,0,78,73,85,0,78,76,68,0,78,79,82,0,78,80,76,0,78,82,85,0,78,84,90,0,78,90,76,0,79,77,78,0,80,65,75,0,80,65,78,0,80,67,0,80,67,78,0,80,69,82,0,80,72,76,0,80,76,87,0,80,78,71,0,80,79,76,0,80,82,73,0,80,82,75,0,80,82,84,0,80,82,89,0,80,83,69,0,80,85,0,80,89,70,0,80,90,0,81,65,84,0,81,77,77,0,81,78,78,0,81,80,80,0,81,81,81,0,81,82,82,0,81,83,83,0,81,84,84,0,81,85,0,81,85,85,0,81,86,86,0,81,87,87,0,81,88,88,0,81,89,89,0,81,90,90,0,82,69,85,0,82,72,0,82,79,85,0,82,85,83,0,82,87,65,0,83,65,85,0,83,67,71,0,83,68,78,0,83,69,78,0,83,71,80,0,83,71,83,0,83,72,78,0,83,74,77,0,83,76,66,0,83,76,69,0,83,76,86,0,83,77,82,0,83,79,77,0,83,80,77,0,83,82,66,0,83,83,68,0,83,84,80,0,83,85,0,83,85,78,0,83,85,82,0,83,86,75,0,83,86,78,0,83,87,69,0,83,87,90,0,83,88,77,0,83,89,67,0,83,89,82,0,84,65,65,0,84,67,65,0,84,67,68,0,84,71,79,0,84,72,65,0,84,74,75,0,84,75,76,0,84,75,77,0,84,76,83,0,84,77,80,0,84,79,78,0,84,84,79,0,84,85,78,0,84,85,82,0,84,85,86,0,84,87,78,0,84,90,65,0,85,71,65,0,85,75,0,85,75,82,0,85,77,73,0,85,82,89,0,85,83,65,0,85,90,66,0,86,65,84,0,86,67,84,0,86,68,0,86,69,78,0,86,71,66,0,86,73,82,0,86,78,77,0,86,85,84,0,87,75,0,87,76,70,0,87,83,77,0,88,65,65,0,88,66,66,0,88,67,67,0,88,68,68,0,88,69,69,0,88,70,70,0,88,71,71,0,88,72,72,0,88,73,73,0,88,74,74,0,88,75,75,0,88,76,76,0,88,77,77,0,88,78,78,0,88,79,79,0,88,80,80,0,88,81,81,0,88,82,82,0,88,83,83,0,88,84,84,0,88,85,85,0,88,86,86,0,88,87,87,0,88,88,88,0,88,89,89,0,88,90,90,0,89,68,0,89,69,77,0,89,77,68,0,89,85,0,89,85,71,0,90,65,70,0,90,65,82,0,90,77,66,0,90,82,0,90,87,69,0,90,90,90,0,117,110,105,116,0,105,110,99,104,45,104,103,0,108,105,116,101,114,45,112,101,114,45,49,48,48,107,105,108,111,109,101,116,101,114,115,0,109,101,116,101,114,45,112,101,114,45,115,101,99,111,110,100,45,115,113,117,97,114,101,100,0,109,101,116,114,105,99,45,116,111,110,0,109,105,108,108,105,103,114,97,109,45,112,101,114,45,100,101,99,105,108,105,116,101,114,0,109,105,108,108,105,109,101,116,101,114,45,111,102,45,109,101,114,99,117,114,121,0,112,97,114,116,45,112,101,114,45,109,105,108,108,105,111,110,0,112,111,117,110,100,45,102,111,111,116,0,112,111,117,110,100,45,112,101,114,45,115,113,117,97,114,101,45,105,110,99,104,0,117,115,97,103,101,0,109,117,115,105,99,45,116,114,97,99,107,0,116,118,45,112,114,111,103,114,97,109,0,118,97,114,105,97,110,116,0,112,111,108,121,116,111,110,105,0,100,101,102,97,117,108,116,67,111,110,116,101,110,116,0,170,170,0,0,85,0,77,0,0,0,89,0,69,0,0,0,122,0,104,0,0,0,84,0,76,0,0,0,110,0,98,0,0,0,65,0,81,0,0,0,65,0,83,0,0,0,65,0,87,0,0,0,66,0,70,0,0,0,66,0,74,0,0,0,66,0,76,0,0,0,67,0,87,0,0,0,69,0,85,0,0,0,71,0,70,0,0,0,71,0,80,0,0,0,71,0,85,0,0,0,75,0,73,0,0,0,77,0,70,0,0,0,77,0,79,0,0,0,77,0,80,0,0,0,77,0,81,0,0,0,78,0,67,0,0,0,80,0,65,0,0,0,80,0,70,0,0,0,80,0,77,0,0,0,80,0,82,0,0,0,82,0,69,0,0,0,83,0,68,0,0,0,83,0,88,0,0,0,86,0,73,0,0,0,86,0,85,0,0,0,87,0,70,0,0,0,89,0,84,0,0,0,102,0,97,0,0,0,109,0,115,0,0,0,115,0,113,0,0,0,121,0,105,0,0,0,65,0,65,0,0,0,65,0,68,0,0,0,65,0,69,0,0,0,65,0,71,0,0,0,65,0,73,0,0,0,65,0,79,0,0,0,65,0,82,0,0,0,65,0,84,0,0,0,66,0,66,0,0,0,66,0,72,0,0,0,66,0,77,0,0,0,66,0,78,0,0,0,66,0,79,0,0,0,66,0,83,0,0,0,66,0,86,0,0,0,66,0,87,0,0,0,66,0,90,0,0,0,67,0,67,0,0,0,67,0,71,0,0,0,67,0,73,0,0,0,67,0,75,0,0,0,67,0,79,0,0,0,67,0,80,0,0,0,67,0,82,0,0,0,67,0,85,0,0,0,67,0,88,0,0,0,67,0,89,0,0,0,68,0,74,0,0,0,68,0,77,0,0,0,68,0,79,0,0,0,69,0,67,0,0,0,69,0,71,0,0,0,69,0,72,0,0,0,70,0,74,0,0,0,70,0,75,0,0,0,70,0,77,0,0,0,71,0,65,0,0,0,71,0,68,0,0,0,71,0,73,0,0,0,71,0,77,0,0,0,71,0,81,0,0,0,71,0,83,0,0,0,71,0,87,0,0,0,71,0,89,0,0,0,72,0,77,0,0,0,72,0,78,0,0,0,72,0,84,0,0,0,73,0,79,0,0,0,74,0,69,0,0,0,74,0,77,0,0,0,74,0,79,0,0,0,75,0,77,0,0,0,75,0,78,0,0,0,75,0,80,0,0,0,75,0,87,0,0,0,75,0,89,0,0,0,76,0,66,0,0,0,76,0,67,0,0,0,76,0,73,0,0,0,76,0,83,0,0,0,76,0,89,0,0,0,77,0,67,0,0,0,77,0,68,0,0,0,77,0,72,0,0,0,77,0,82,0,0,0,77,0,83,0,0,0,77,0,88,0,0,0,78,0,70,0,0,0,78,0,73,0,0,0,78,0,82,0,0,0,78,0,85,0,0,0,79,0,77,0,0,0,80,0,78,0,0,0,80,0,83,0,0,0,80,0,84,0,0,0,81,0,65,0,0,0,81,0,77,0,0,0,81,0,78,0,0,0,81,0,80,0,0,0,81,0,81,0,0,0,81,0,82,0,0,0,81,0,83,0,0,0,81,0,84,0,0,0,81,0,86,0,0,0,81,0,87,0,0,0,81,0,88,0,0,0,81,0,89,0,0,0,81,0,90,0,0,0,83,0,65,0,0,0,83,0,67,0,0,0,83,0,71,0,0,0,83,0,72,0,0,0,83,0,74,0,0,0,83,0,76,0,0,0,83,0,77,0,0,0,83,0,82,0,0,0,83,0,84,0,0,0,83,0,86,0,0,0,83,0,89,0,0,0,83,0,90,0,0,0,84,0,65,0,0,0,84,0,67,0,0,0,84,0,68,0,0,0,84,0,75,0,0,0,84,0,78,0,0,0,84,0,84,0,0,0,84,0,86,0,0,0,85,0,89,0,0,0,86,0,67,0,0,0,86,0,69,0,0,0,86,0,71,0,0,0,87,0,83,0,0,0,88,0,65,0,0,0,88,0,66,0,0,0,88,0,67,0,0,0,88,0,68,0,0,0,88,0,69,0,0,0,88,0,70,0,0,0,88,0,71,0,0,0,88,0,72,0,0,0,88,0,73,0,0,0,88,0,74,0,0,0,88,0,75,0,0,0,88,0,76,0,0,0,88,0,77,0,0,0,88,0,78,0,0,0,88,0,79,0,0,0,88,0,80,0,0,0,88,0,81,0,0,0,88,0,82,0,0,0,88,0,83,0,0,0,88,0,84,0,0,0,88,0,85,0,0,0,88,0,86,0,0,0,88,0,87,0,0,0,88,0,88,0,0,0,88,0,89,0,0,0,88,0,90,0,0,0,90,0,90,0,0,0,97,0,114,0,0,0,97,0,122,0,0,0,99,0,114,0,0,0,100,0,101,0,0,0,101,0,116,0,0,0,101,0,117,0,0,0,102,0,102,0,0,0,102,0,114,0,0,0,103,0,110,0,0,0,104,0,121,0,0,0,105,0,100,0,0,0,105,0,115,0,0,0,105,0,117,0,0,0,106,0,118,0,0,0,107,0,97,0,0,0,107,0,103,0,0,0,107,0,114,0,0,0,107,0,117,0,0,0,107,0,118,0,0,0,108,0,98,0,0,0,108,0,118,0,0,0,109,0,103,0,0,0,109,0,107,0,0,0,109,0,121,0,0,0,110,0,118,0,0,0,111,0,106,0,0,0,112,0,115,0,0,0,113,0,117,0,0,0,115,0,119,0,0,0,65,0,67,0,0,0,68,0,71,0,0,0,97,0,97,0,0,0,97,0,101,0,0,0,97,0,102,0,0,0,97,0,118,0,0,0,98,0,101,0,0,0,98,0,103,0,0,0,98,0,105,0,0,0,98,0,109,0,0,0,98,0,110,0,0,0,99,0,97,0,0,0,99,0,101,0,0,0,99,0,111,0,0,0,99,0,117,0,0,0,100,0,97,0,0,0,100,0,118,0,0,0,101,0,101,0,0,0,102,0,111,0,0,0,103,0,97,0,0,0,103,0,117,0,0,0,104,0,116,0,0,0,104,0,117,0,0,0,104,0,122,0,0,0,105,0,101,0,0,0,105,0,103,0,0,0,105,0,111,0,0,0,105,0,116,0,0,0,106,0,97,0,0,0,107,0,106,0,0,0,107,0,107,0,0,0,107,0,108,0,0,0,107,0,110,0,0,0,107,0,115,0,0,0,107,0,119,0,0,0,107,0,121,0,0,0,108,0,103,0,0,0,108,0,105,0,0,0,108,0,111,0,0,0,108,0,117,0,0,0,109,0,116,0,0,0,110,0,97,0,0,0,110,0,111,0,0,0,110,0,114,0,0,0,111,0,99,0,0,0,111,0,115,0,0,0,112,0,105,0,0,0,112,0,108,0,0,0,112,0,116,0,0,0,114,0,110,0,0,0,114,0,119,0,0,0,115,0,97,0,0,0,115,0,109,0,0,0,115,0,111,0,0,0,115,0,116,0,0,0,115,0,118,0,0,0,116,0,97,0,0,0,116,0,101,0,0,0,116,0,105,0,0,0,116,0,107,0,0,0,116,0,111,0,0,0,116,0,114,0,0,0,116,0,115,0,0,0,116,0,116,0,0,0,116,0,121,0,0,0,117,0,107,0,0,0,117,0,114,0,0,0,118,0,101,0,0,0,118,0,105,0,0,0,119,0,97,0,0,0,120,0,104,0,0,0,121,0,111,0,0,0,122,0,117,0,0,0,117,0,110,0,100,0,0,0,100,0,116,0,112,0,0,0,107,0,97,0,107,0,0,0,119,0,114,0,111,0,0,0,97,0,109,0,105,0,0,0,119,0,110,0,110,0,0,0,111,0,121,0,98,0,0,0,118,0,97,0,106,0,0,0,98,0,104,0,111,0,0,0,105,0,98,0,97,0,0,0,114,0,107,0,105,0,0,0,98,0,105,0,107,0,0,0,100,0,101,0,108,0,0,0,100,0,117,0,122,0,0,0,101,0,110,0,108,0,0,0,105,0,115,0,107,0,0,0,106,0,98,0,111,0,0,0,107,0,100,0,122,0,0,0,110,0,99,0,115,0,0,0,112,0,104,0,114,0,0,0,112,0,115,0,114,0,0,0,116,0,97,0,121,0,0,0,122,0,111,0,109,0,0,0,122,0,122,0,97,0,0,0,100,0,109,0,119,0,0,0,102,0,105,0,108,0,0,0,104,0,97,0,107,0,0,0,107,0,122,0,107,0,0,0,109,0,97,0,110,0,0,0,109,0,114,0,121,0,0,0,112,0,105,0,106,0,0,0,98,0,102,0,105,0,0,0,98,0,102,0,121,0,0,0,99,0,109,0,114,0,0,0,100,0,101,0,110,0,0,0,100,0,103,0,108,0,0,0,105,0,115,0,101,0,0,0,105,0,115,0,103,0,0,0,106,0,107,0,109,0,0,0,106,0,115,0,108,0,0,0,107,0,109,0,108,0,0,0,110,0,97,0,110,0,0,0,110,0,98,0,114,0,0,0,110,0,103,0,118,0,0,0,110,0,115,0,105,0,0,0,110,0,118,0,111,0,0,0,110,0,119,0,111,0,0,0,111,0,108,0,97,0,0,0,111,0,112,0,97,0,0,0,114,0,97,0,115,0,0,0,115,0,99,0,118,0,0,0,115,0,103,0,100,0,0,0,116,0,109,0,104,0,0,0,116,0,115,0,117,0,0,0,117,0,116,0,104,0,0,0,119,0,101,0,111,0,0,0,120,0,99,0,104,0,0,0,120,0,110,0,121,0,0,0,120,0,116,0,103,0,0,0,121,0,97,0,109,0,0,0,121,0,114,0,109,0,0,0,121,0,117,0,103,0,0,0,97,0,97,0,115,0,0,0,97,0,99,0,110,0,0,0,97,0,100,0,120,0,0,0,97,0,101,0,98,0,0,0,97,0,109,0,113,0,0,0,97,0,111,0,103,0,0,0,97,0,111,0,117,0,0,0,97,0,112,0,102,0,0,0,97,0,113,0,100,0,0,0,97,0,113,0,116,0,0,0,97,0,115,0,101,0,0,0,97,0,122,0,100,0,0,0,98,0,97,0,108,0,0,0,98,0,99,0,103,0,0,0,98,0,101,0,98,0,0,0,98,0,105,0,114,0,0,0,98,0,106,0,112,0,0,0,98,0,109,0,102,0,0,0,98,0,110,0,99,0,0,0,98,0,110,0,110,0,0,0,98,0,112,0,112,0,0,0,98,0,117,0,97,0,0,0,98,0,122,0,99,0,0,0,98,0,122,0,115,0,0,0,99,0,97,0,120,0,0,0,99,0,104,0,109,0,0,0,99,0,105,0,114,0,0,0,99,0,115,0,110,0,0,0,100,0,98,0,116,0,0,0,100,0,101,0,118,0,0,0,100,0,105,0,102,0,0,0,100,0,105,0,110,0,0,0,100,0,110,0,106,0,0,0,100,0,111,0,105,0,0,0,100,0,114,0,108,0,0,0,100,0,115,0,101,0,0,0,100,0,115,0,108,0,0,0,100,0,116,0,100,0,0,0,100,0,119,0,117,0,0,0,100,0,122,0,101,0,0,0,101,0,98,0,107,0,0,0,101,0,107,0,99,0,0,0,101,0,109,0,97,0,0,0,101,0,109,0,120,0,0,0,101,0,115,0,103,0,0,0,101,0,122,0,97,0,0,0,102,0,98,0,108,0,0,0,102,0,115,0,108,0,0,0,103,0,97,0,108,0,0,0,103,0,97,0,110,0,0,0,103,0,98,0,97,0,0,0,103,0,100,0,106,0,0,0,103,0,111,0,110,0,0,0,103,0,114,0,98,0,0,0,103,0,115,0,103,0,0,0,103,0,115,0,115,0,0,0,103,0,116,0,117,0,0,0,103,0,118,0,114,0,0,0,104,0,97,0,105,0,0,0,104,0,108,0,101,0,0,0,104,0,109,0,110,0,0,0,104,0,115,0,110,0,0,0,104,0,117,0,119,0,0,0,104,0,121,0,119,0,0,0,105,0,108,0,109,0,0,0,105,0,116,0,100,0,0,0,106,0,97,0,108,0,0,0,106,0,98,0,107,0,0,0,106,0,103,0,107,0,0,0,106,0,114,0,98,0,0,0,107,0,108,0,110,0,0,0,107,0,109,0,98,0,0,0,107,0,111,0,107,0,0,0,107,0,112,0,101,0,0,0,107,0,114,0,117,0,0,0,107,0,115,0,112,0,0,0,107,0,116,0,122,0,0,0,107,0,119,0,118,0,0,0,107,0,120,0,114,0,0,0,108,0,97,0,104,0,0,0,108,0,99,0,113,0,0,0,108,0,114,0,114,0,0,0,108,0,117,0,121,0,0,0,109,0,102,0,115,0,0,0,109,0,111,0,109,0,0,0,109,0,116,0,109,0,0,0,109,0,119,0,114,0,0,0,110,0,103,0,116,0,0,0,110,0,106,0,122,0,0,0,110,0,111,0,108,0,0,0,110,0,114,0,107,0,0,0,110,0,114,0,117,0,0,0,110,0,117,0,110,0,0,0,110,0,121,0,99,0,0,0,112,0,114,0,116,0,0,0,112,0,117,0,98,0,0,0,112,0,119,0,110,0,0,0,113,0,117,0,104,0,0,0,114,0,97,0,106,0,0,0,114,0,97,0,113,0,0,0,114,0,109,0,120,0,0,0,114,0,111,0,109,0,0,0,115,0,102,0,98,0,0,0,115,0,102,0,115,0,0,0,115,0,103,0,103,0,0,0,115,0,110,0,122,0,0,0,115,0,114,0,120,0,0,0,115,0,115,0,112,0,0,0,115,0,115,0,121,0,0,0,115,0,117,0,106,0,0,0,115,0,119,0,108,0,0,0,115,0,121,0,114,0,0,0,116,0,97,0,106,0,0,0,116,0,97,0,111,0,0,0,116,0,100,0,102,0,0,0,116,0,108,0,104,0,0,0,116,0,112,0,111,0,0,0,116,0,118,0,100,0,0,0,116,0,119,0,109,0,0,0,116,0,121,0,106,0,0,0,117,0,108,0,119,0,0,0,118,0,103,0,116,0,0,0,119,0,97,0,119,0,0,0,119,0,103,0,98,0,0,0,119,0,110,0,121,0,0,0,119,0,117,0,117,0,0,0,120,0,110,0,116,0,0,0,121,0,110,0,113,0,0,0,121,0,117,0,101,0,0,0,122,0,97,0,112,0,0,0,122,0,107,0,100,0,0,0,99,0,110,0,109,0,110,0,0,0,99,0,110,0,104,0,101,0,0,0,99,0,110,0,115,0,99,0,0,0,99,0,110,0,99,0,113,0,0,0,99,0,110,0,102,0,106,0,0,0,99,0,110,0,104,0,97,0,0,0,99,0,110,0,104,0,105,0,0,0,99,0,110,0,108,0,110,0,0,0,99,0,110,0,115,0,100,0,0,0,99,0,110,0,115,0,110,0,0,0,90,0,105,0,110,0,104,0,0,0,99,0,110,0,97,0,104,0,0,0,99,0,110,0,98,0,106,0,0,0,99,0,110,0,103,0,100,0,0,0,99,0,110,0,103,0,115,0,0,0,99,0,110,0,103,0,120,0,0,0,99,0,110,0,103,0,122,0,0,0,99,0,110,0,104,0,98,0,0,0,99,0,110,0,104,0,108,0,0,0,99,0,110,0,104,0,110,0,0,0,99,0,110,0,106,0,108,0,0,0,99,0,110,0,106,0,115,0,0,0,99,0,110,0,106,0,120,0,0,0,99,0,110,0,110,0,120,0,0,0,99,0,110,0,113,0,104,0,0,0,99,0,110,0,115,0,104,0,0,0,99,0,110,0,115,0,120,0,0,0,99,0,110,0,116,0,106,0,0,0,99,0,110,0,120,0,106,0,0,0,99,0,110,0,120,0,122,0,0,0,99,0,110,0,121,0,110,0,0,0,99,0,110,0,122,0,106,0,0,0,99,0,122,0,49,0,48,0,0,0,99,0,122,0,50,0,48,0,0,0,99,0,122,0,51,0,49,0,0,0,99,0,122,0,51,0,50,0,0,0,99,0,122,0,52,0,49,0,0,0,99,0,122,0,52,0,50,0,0,0,99,0,122,0,53,0,49,0,0,0,99,0,122,0,53,0,50,0,0,0,99,0,122,0,53,0,51,0,0,0,99,0,122,0,54,0,51,0,0,0,99,0,122,0,54,0,52,0,0,0,99,0,122,0,55,0,49,0,0,0,99,0,122,0,55,0,50,0,0,0,99,0,122,0,56,0,48,0,0,0,108,0,97,0,120,0,115,0,0,0,110,0,111,0,53,0,48,0,0,0,112,0,108,0,48,0,50,0,0,0,112,0,108,0,48,0,52,0,0,0,112,0,108,0,48,0,54,0,0,0,112,0,108,0,48,0,56,0,0,0,112,0,108,0,49,0,48,0,0,0,112,0,108,0,49,0,50,0,0,0,112,0,108,0,49,0,52,0,0,0,112,0,108,0,49,0,54,0,0,0,112,0,108,0,49,0,56,0,0,0,112,0,108,0,50,0,48,0,0,0,112,0,108,0,50,0,50,0,0,0,112,0,108,0,50,0,52,0,0,0,112,0,108,0,50,0,54,0,0,0,112,0,108,0,50,0,56,0,0,0,112,0,108,0,51,0,48,0,0,0,112,0,108,0,51,0,50,0,0,0,82,0,83,0,32,0,77,0,69,0,0,0,102,0,114,0,95,0,70,0,82,0,0,0,102,0,114,0,103,0,101,0,115,0,0,0,83,0,65,0,32,0,73,0,81,0,0,0,102,0,97,0,95,0,65,0,70,0,0,0,102,0,114,0,110,0,97,0,113,0,0,0,102,0,114,0,110,0,111,0,114,0,0,0,109,0,121,0,95,0,77,0,77,0,0,0,115,0,119,0,95,0,67,0,68,0,0,0,65,0,81,0,32,0,84,0,70,0,0,0,99,0,121,0,95,0,71,0,66,0,0,0,109,0,101,0,100,0,105,0,97,0,0,0,115,0,110,0,95,0,90,0,87,0,0,0,74,0,69,0,32,0,71,0,71,0,0,0,97,0,107,0,95,0,71,0,72,0,0,0,98,0,101,0,95,0,66,0,89,0,0,0,98,0,103,0,95,0,66,0,71,0,0,0,99,0,115,0,95,0,67,0,90,0,0,0,100,0,97,0,95,0,68,0,75,0,0,0,100,0,118,0,95,0,77,0,86,0,0,0,100,0,122,0,95,0,66,0,84,0,0,0,101,0,108,0,95,0,71,0,82,0,0,0,101,0,116,0,95,0,69,0,69,0,0,0,101,0,117,0,95,0,69,0,83,0,0,0,102,0,111,0,95,0,70,0,79,0,0,0,102,0,114,0,97,0,114,0,97,0,0,0,102,0,114,0,98,0,102,0,99,0,0,0,102,0,114,0,104,0,100,0,102,0,0,0,102,0,114,0,111,0,99,0,99,0,0,0,102,0,121,0,95,0,78,0,76,0,0,0,103,0,97,0,95,0,73,0,69,0,0,0,103,0,110,0,95,0,80,0,89,0,0,0,103,0,118,0,95,0,73,0,77,0,0,0,104,0,101,0,95,0,73,0,76,0,0,0,104,0,114,0,95,0,72,0,82,0,0,0,104,0,117,0,95,0,72,0,85,0,0,0,104,0,121,0,95,0,65,0,77,0,0,0,105,0,115,0,95,0,73,0,83,0,0,0,105,0,116,0,95,0,73,0,84,0,0,0,105,0,117,0,95,0,67,0,65,0,0,0,106,0,97,0,95,0,74,0,80,0,0,0,106,0,118,0,95,0,73,0,68,0,0,0,107,0,107,0,95,0,75,0,90,0,0,0,107,0,108,0,95,0,71,0,76,0,0,0,107,0,109,0,95,0,75,0,72,0,0,0,107,0,111,0,95,0,75,0,82,0,0,0,107,0,117,0,95,0,84,0,82,0,0,0,107,0,121,0,95,0,75,0,71,0,0,0,108,0,97,0,95,0,86,0,65,0,0,0,108,0,98,0,95,0,76,0,85,0,0,0,108,0,111,0,95,0,76,0,65,0,0,0,108,0,116,0,95,0,76,0,84,0,0,0,108,0,118,0,95,0,76,0,86,0,0,0,109,0,103,0,95,0,77,0,71,0,0,0,109,0,105,0,95,0,78,0,90,0,0,0,109,0,107,0,95,0,77,0,75,0,0,0,109,0,110,0,95,0,77,0,78,0,0,0,109,0,115,0,95,0,77,0,89,0,0,0,109,0,116,0,95,0,77,0,84,0,0,0,110,0,101,0,95,0,78,0,80,0,0,0,110,0,110,0,95,0,78,0,79,0,0,0,110,0,121,0,95,0,77,0,87,0,0,0,111,0,115,0,95,0,71,0,69,0,0,0,112,0,115,0,95,0,65,0,70,0,0,0,112,0,116,0,95,0,66,0,82,0,0,0,113,0,117,0,95,0,80,0,69,0,0,0,114,0,110,0,95,0,66,0,73,0,0,0,114,0,111,0,95,0,82,0,79,0,0,0,114,0,119,0,95,0,82,0,87,0,0,0,115,0,103,0,95,0,67,0,70,0,0,0,115,0,105,0,95,0,76,0,75,0,0,0,115,0,107,0,95,0,83,0,75,0,0,0,115,0,108,0,95,0,83,0,73,0,0,0,115,0,111,0,95,0,83,0,79,0,0,0,115,0,113,0,95,0,65,0,76,0,0,0,115,0,114,0,95,0,77,0,69,0,0,0,115,0,118,0,95,0,83,0,69,0,0,0,116,0,103,0,95,0,84,0,74,0,0,0,116,0,104,0,95,0,84,0,72,0,0,0,116,0,107,0,95,0,84,0,77,0,0,0,116,0,111,0,95,0,84,0,79,0,0,0,116,0,111,0,110,0,110,0,101,0,0,0,116,0,116,0,116,0,111,0,98,0,0,0,117,0,107,0,95,0,85,0,65,0,0,0,119,0,97,0,95,0,66,0,69,0,0,0,121,0,111,0,95,0,78,0,71,0,0,0,122,0,117,0,95,0,90,0,65,0,0,0,67,0,90,0,32,0,83,0,75,0,0,0,97,0,97,0,95,0,69,0,84,0,0,0,97,0,98,0,95,0,71,0,69,0,0,0,97,0,102,0,95,0,90,0,65,0,0,0,97,0,109,0,95,0,69,0,84,0,0,0,97,0,110,0,95,0,69,0,83,0,0,0,97,0,115,0,95,0,73,0,78,0,0,0,98,0,97,0,95,0,82,0,85,0,0,0,98,0,109,0,95,0,77,0,76,0,0,0,98,0,110,0,95,0,66,0,68,0,0,0,98,0,111,0,95,0,67,0,78,0,0,0,98,0,114,0,95,0,70,0,82,0,0,0,99,0,97,0,95,0,69,0,83,0,0,0,99,0,101,0,95,0,82,0,85,0,0,0,99,0,111,0,95,0,70,0,82,0,0,0,99,0,117,0,95,0,82,0,85,0,0,0,99,0,118,0,95,0,82,0,85,0,0,0,99,0,122,0,49,0,49,0,48,0,0,0,99,0,122,0,49,0,49,0,49,0,0,0,99,0,122,0,49,0,49,0,50,0,0,0,99,0,122,0,49,0,49,0,51,0,0,0,99,0,122,0,49,0,49,0,52,0,0,0,99,0,122,0,49,0,49,0,53,0,0,0,99,0,122,0,54,0,51,0,50,0,0,0,99,0,122,0,54,0,51,0,51,0,0,0,99,0,122,0,54,0,51,0,52,0,0,0,99,0,122,0,54,0,51,0,53,0,0,0,99,0,122,0,54,0,52,0,49,0,0,0,99,0,122,0,54,0,52,0,50,0,0,0,99,0,122,0,54,0,52,0,51,0,0,0,99,0,122,0,54,0,52,0,52,0,0,0,99,0,122,0,54,0,52,0,54,0,0,0,99,0,122,0,54,0,52,0,55,0,0,0,99,0,122,0,54,0,54,0,51,0,0,0,100,0,101,0,95,0,68,0,69,0,0,0,101,0,101,0,95,0,71,0,72,0,0,0,101,0,110,0,95,0,85,0,83,0,0,0,101,0,115,0,95,0,69,0,83,0,0,0,102,0,97,0,95,0,73,0,82,0,0,0,102,0,105,0,95,0,70,0,73,0,0,0,102,0,114,0,98,0,114,0,101,0,0,0,102,0,114,0,99,0,111,0,114,0,0,0,102,0,114,0,99,0,118,0,108,0,0,0,102,0,114,0,105,0,100,0,102,0,0,0,102,0,114,0,112,0,97,0,99,0,0,0,102,0,114,0,112,0,100,0,108,0,0,0,103,0,100,0,95,0,71,0,66,0,0,0,103,0,108,0,95,0,69,0,83,0,0,0,103,0,117,0,95,0,73,0,78,0,0,0,104,0,97,0,95,0,78,0,71,0,0,0,104,0,105,0,95,0,73,0,78,0,0,0,105,0,100,0,95,0,73,0,68,0,0,0,105,0,103,0,95,0,78,0,71,0,0,0,105,0,105,0,95,0,67,0,78,0,0,0,107,0,97,0,95,0,71,0,69,0,0,0,107,0,105,0,95,0,75,0,69,0,0,0,107,0,110,0,95,0,73,0,78,0,0,0,107,0,119,0,95,0,71,0,66,0,0,0,108,0,103,0,95,0,85,0,71,0,0,0,108,0,110,0,95,0,67,0,68,0,0,0,108,0,117,0,95,0,67,0,68,0,0,0,109,0,108,0,95,0,73,0,78,0,0,0,109,0,114,0,95,0,73,0,78,0,0,0,110,0,98,0,95,0,78,0,79,0,0,0,110,0,100,0,95,0,90,0,87,0,0,0,110,0,108,0,95,0,78,0,76,0,0,0,110,0,114,0,95,0,90,0,65,0,0,0,110,0,118,0,95,0,85,0,83,0,0,0,111,0,99,0,95,0,70,0,82,0,0,0,111,0,109,0,95,0,69,0,84,0,0,0,111,0,114,0,95,0,73,0,78,0,0,0,112,0,108,0,95,0,80,0,76,0,0,0,114,0,109,0,95,0,67,0,72,0,0,0,114,0,117,0,95,0,82,0,85,0,0,0,115,0,97,0,95,0,73,0,78,0,0,0,115,0,99,0,95,0,73,0,84,0,0,0,115,0,101,0,95,0,78,0,79,0,0,0,115,0,115,0,95,0,90,0,65,0,0,0,115,0,116,0,95,0,90,0,65,0,0,0,115,0,119,0,95,0,84,0,90,0,0,0,116,0,97,0,95,0,73,0,78,0,0,0,116,0,101,0,95,0,73,0,78,0,0,0,116,0,105,0,95,0,69,0,84,0,0,0,116,0,110,0,95,0,90,0,65,0,0,0,116,0,114,0,95,0,84,0,82,0,0,0,116,0,115,0,95,0,90,0,65,0,0,0,116,0,116,0,95,0,82,0,85,0,0,0,116,0,116,0,109,0,114,0,99,0,0,0,116,0,119,0,107,0,104,0,104,0,0,0,116,0,119,0,110,0,119,0,116,0,0,0,116,0,119,0,116,0,110,0,110,0,0,0,116,0,119,0,116,0,120,0,103,0,0,0,117,0,103,0,95,0,67,0,78,0,0,0,117,0,114,0,95,0,80,0,75,0,0,0,118,0,101,0,95,0,90,0,65,0,0,0,118,0,105,0,95,0,86,0,78,0,0,0,119,0,111,0,95,0,83,0,78,0,0,0,120,0,104,0,95,0,90,0,65,0,0,0,108,0,101,0,103,0,97,0,99,0,121,0,0,0,110,0,100,0,115,0,95,0,68,0,69,0,0,0,98,0,108,0,116,0,95,0,86,0,78,0,0,0,103,0,101,0,122,0,95,0,69,0,84,0,0,0,116,0,114,0,118,0,95,0,84,0,87,0,0,0,117,0,110,0,100,0,95,0,65,0,88,0,0,0,97,0,114,0,110,0,95,0,67,0,76,0,0,0,98,0,101,0,109,0,95,0,90,0,77,0,0,0,98,0,101,0,122,0,95,0,84,0,90,0,0,0,98,0,114,0,120,0,95,0,73,0,78,0,0,0,99,0,99,0,112,0,95,0,66,0,68,0,0,0,100,0,121,0,111,0,95,0,83,0,78,0,0,0,102,0,105,0,108,0,95,0,80,0,72,0,0,0,103,0,115,0,119,0,95,0,67,0,72,0,0,0,103,0,117,0,122,0,95,0,75,0,69,0,0,0,104,0,97,0,119,0,95,0,85,0,83,0,0,0,105,0,102,0,101,0,95,0,84,0,71,0,0,0,107,0,97,0,98,0,95,0,68,0,90,0,0,0,107,0,101,0,97,0,95,0,67,0,86,0,0,0,109,0,102,0,101,0,95,0,77,0,85,0,0,0,109,0,103,0,104,0,95,0,77,0,90,0,0,0,109,0,121,0,118,0,95,0,82,0,85,0,0,0,109,0,122,0,110,0,95,0,73,0,82,0,0,0,110,0,97,0,113,0,95,0,78,0,65,0,0,0,110,0,113,0,111,0,95,0,71,0,78,0,0,0,110,0,117,0,115,0,95,0,83,0,83,0,0,0,112,0,105,0,115,0,95,0,83,0,66,0,0,0,113,0,117,0,99,0,95,0,71,0,84,0,0,0,115,0,101,0,115,0,95,0,77,0,76,0,0,0,115,0,109,0,115,0,95,0,70,0,73,0,0,0,115,0,115,0,121,0,95,0,69,0,82,0,0,0,115,0,121,0,114,0,95,0,73,0,81,0,0,0,115,0,122,0,108,0,95,0,80,0,76,0,0,0,116,0,101,0,111,0,95,0,85,0,71,0,0,0,116,0,112,0,105,0,95,0,80,0,71,0,0,0,116,0,114,0,119,0,95,0,80,0,75,0,0,0,116,0,119,0,113,0,95,0,78,0,69,0,0,0,119,0,98,0,112,0,95,0,65,0,85,0,0,0,121,0,97,0,118,0,95,0,67,0,77,0,0,0,97,0,103,0,113,0,95,0,67,0,77,0,0,0,97,0,110,0,110,0,95,0,78,0,71,0,0,0,97,0,114,0,95,0,48,0,48,0,49,0,0,0,97,0,115,0,97,0,95,0,84,0,90,0,0,0,97,0,115,0,116,0,95,0,69,0,83,0,0,0,98,0,97,0,115,0,95,0,67,0,77,0,0,0,98,0,103,0,99,0,95,0,73,0,78,0,0,0,98,0,103,0,110,0,95,0,80,0,75,0,0,0,98,0,104,0,111,0,95,0,73,0,78,0,0,0,98,0,115,0,115,0,95,0,67,0,77,0,0,0,98,0,121,0,110,0,95,0,69,0,82,0,0,0,99,0,97,0,100,0,95,0,85,0,83,0,0,0,99,0,99,0,104,0,95,0,78,0,71,0,0,0,99,0,101,0,98,0,95,0,80,0,72,0,0,0,99,0,103,0,103,0,95,0,85,0,71,0,0,0,99,0,104,0,114,0,95,0,85,0,83,0,0,0,99,0,105,0,99,0,95,0,85,0,83,0,0,0,99,0,107,0,98,0,95,0,73,0,81,0,0,0,100,0,97,0,118,0,95,0,75,0,69,0,0,0,100,0,106,0,101,0,95,0,78,0,69,0,0,0,100,0,111,0,105,0,95,0,73,0,78,0,0,0,100,0,115,0,98,0,95,0,68,0,69,0,0,0,100,0,117,0,97,0,95,0,67,0,77,0,0,0,101,0,98,0,117,0,95,0,75,0,69,0,0,0,101,0,111,0,95,0,48,0,48,0,49,0,0,0,101,0,119,0,111,0,95,0,67,0,77,0,0,0,102,0,114,0,114,0,95,0,68,0,69,0,0,0,102,0,117,0,114,0,95,0,73,0,84,0,0,0,103,0,97,0,97,0,95,0,71,0,72,0,0,0,104,0,115,0,98,0,95,0,68,0,69,0,0,0,105,0,97,0,95,0,48,0,48,0,49,0,0,0,105,0,111,0,95,0,48,0,48,0,49,0,0,0,106,0,103,0,111,0,95,0,67,0,77,0,0,0,106,0,109,0,99,0,95,0,84,0,90,0,0,0,107,0,97,0,106,0,95,0,78,0,71,0,0,0,107,0,97,0,109,0,95,0,75,0,69,0,0,0,107,0,99,0,103,0,95,0,78,0,71,0,0,0,107,0,100,0,101,0,95,0,84,0,90,0,0,0,107,0,101,0,110,0,95,0,67,0,77,0,0,0,107,0,103,0,112,0,95,0,66,0,82,0,0,0,107,0,104,0,113,0,95,0,77,0,76,0,0,0,107,0,107,0,106,0,95,0,67,0,77,0,0,0,107,0,108,0,110,0,95,0,75,0,69,0,0,0,107,0,111,0,107,0,95,0,73,0,78,0,0,0,107,0,112,0,101,0,95,0,76,0,82,0,0,0,107,0,115,0,98,0,95,0,84,0,90,0,0,0,107,0,115,0,102,0,95,0,67,0,77,0,0,0,107,0,115,0,104,0,95,0,68,0,69,0,0,0,108,0,97,0,103,0,95,0,84,0,90,0,0,0,108,0,105,0,106,0,95,0,73,0,84,0,0,0,108,0,107,0,116,0,95,0,85,0,83,0,0,0,108,0,114,0,99,0,95,0,73,0,82,0,0,0,108,0,117,0,111,0,95,0,75,0,69,0,0,0,108,0,117,0,121,0,95,0,75,0,69,0,0,0,109,0,97,0,105,0,95,0,73,0,78,0,0,0,109,0,97,0,115,0,95,0,75,0,69,0,0,0,109,0,100,0,102,0,95,0,82,0,85,0,0,0,109,0,101,0,114,0,95,0,75,0,69,0,0,0,109,0,103,0,111,0,95,0,67,0,77,0,0,0,109,0,111,0,104,0,95,0,67,0,65,0,0,0,109,0,117,0,97,0,95,0,67,0,77,0,0,0,109,0,117,0,115,0,95,0,85,0,83,0,0,0,110,0,109,0,103,0,95,0,67,0,77,0,0,0,110,0,110,0,104,0,95,0,67,0,77,0,0,0,110,0,115,0,111,0,95,0,90,0,65,0,0,0,110,0,121,0,110,0,95,0,85,0,71,0,0,0,111,0,115,0,97,0,95,0,85,0,83,0,0,0,112,0,99,0,109,0,95,0,78,0,71,0,0,0,114,0,97,0,106,0,95,0,73,0,78,0,0,0,114,0,111,0,102,0,95,0,84,0,90,0,0,0,114,0,119,0,107,0,95,0,84,0,90,0,0,0,115,0,97,0,104,0,95,0,82,0,85,0,0,0,115,0,97,0,113,0,95,0,75,0,69,0,0,0,115,0,98,0,112,0,95,0,84,0,90,0,0,0,115,0,99,0,110,0,95,0,73,0,84,0,0,0,115,0,100,0,104,0,95,0,73,0,82,0,0,0,115,0,101,0,104,0,95,0,77,0,90,0,0,0,115,0,104,0,110,0,95,0,77,0,77,0,0,0,115,0,105,0,100,0,95,0,69,0,84,0,0,0,115,0,109,0,97,0,95,0,83,0,69,0,0,0,115,0,109,0,106,0,95,0,83,0,69,0,0,0,115,0,109,0,110,0,95,0,70,0,73,0,0,0,116,0,105,0,103,0,95,0,69,0,82,0,0,0,116,0,122,0,109,0,95,0,77,0,65,0,0,0,118,0,101,0,99,0,95,0,73,0,84,0,0,0,118,0,111,0,95,0,48,0,48,0,49,0,0,0,118,0,117,0,110,0,95,0,84,0,90,0,0,0,119,0,97,0,101,0,95,0,67,0,72,0,0,0,119,0,97,0,108,0,95,0,69,0,84,0,0,0,120,0,111,0,103,0,95,0,85,0,71,0,0,0,121,0,105,0,95,0,48,0,48,0,49,0,0,0,121,0,114,0,108,0,95,0,66,0,82,0,0,0,122,0,103,0,104,0,95,0,77,0,65,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,107,0,115,0,95,0,65,0,114,0,97,0,98,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,48,0,51,0,52,0,32,0,49,0,52,0,51,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,115,0,95,0,76,0,97,0,116,0,110,0,0,0,102,0,102,0,95,0,76,0,97,0,116,0,110,0,0,0,106,0,98,0,111,0,95,0,48,0,48,0,49,0,0,0,112,0,111,0,108,0,121,0,116,0,111,0,110,0,0,0,112,0,114,0,103,0,95,0,48,0,48,0,49,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,0,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,0,0,116,0,111,0,107,0,95,0,48,0,48,0,49,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,111,0,118,0,101,0,114,0,108,0,111,0,110,0,103,0,0,0,67,0,87,0,32,0,83,0,88,0,32,0,66,0,81,0,0,0,118,0,97,0,105,0,95,0,86,0,97,0,105,0,105,0,0,0,98,0,97,0,108,0,95,0,65,0,114,0,97,0,98,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,112,0,0,0,109,0,110,0,105,0,95,0,66,0,101,0,110,0,103,0,0,0,114,0,104,0,103,0,95,0,82,0,111,0,104,0,103,0,0,0,115,0,97,0,116,0,95,0,79,0,108,0,99,0,107,0,0,0,115,0,104,0,105,0,95,0,84,0,102,0,110,0,103,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,0,0,111,0,109,0,98,0,106,0,32,0,111,0,109,0,98,0,115,0,0,0,111,0,109,0,115,0,106,0,32,0,111,0,109,0,115,0,115,0,0,0,105,0,110,0,99,0,104,0,45,0,111,0,102,0,104,0,103,0,0,0,100,0,101,0,112,0,114,0,101,0,99,0,97,0,116,0,101,0,100,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,65,0,90,0,0,0,98,0,115,0,95,0,76,0,97,0,116,0,110,0,95,0,66,0,65,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,95,0,82,0,83,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,95,0,85,0,90,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,82,0,0,0,97,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,65,0,90,0,0,0,98,0,109,0,95,0,78,0,107,0,111,0,111,0,95,0,77,0,76,0,0,0,98,0,115,0,95,0,67,0,121,0,114,0,108,0,95,0,66,0,65,0,0,0,101,0,110,0,95,0,68,0,115,0,114,0,116,0,95,0,85,0,83,0,0,0,101,0,110,0,95,0,83,0,104,0,97,0,119,0,95,0,71,0,66,0,0,0,102,0,102,0,95,0,65,0,100,0,108,0,109,0,95,0,71,0,78,0,0,0,102,0,102,0,95,0,76,0,97,0,116,0,110,0,95,0,83,0,78,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,78,0,71,0,0,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,78,0,0,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,67,0,65,0,0,0,107,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,73,0,78,0,0,0,107,0,115,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,109,0,110,0,95,0,77,0,111,0,110,0,103,0,95,0,67,0,78,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,95,0,77,0,89,0,0,0,112,0,97,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,95,0,73,0,78,0,0,0,112,0,101,0,114,0,109,0,105,0,108,0,108,0,105,0,111,0,110,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,115,0,100,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,95,0,82,0,83,0,0,0,115,0,117,0,95,0,76,0,97,0,116,0,110,0,95,0,73,0,68,0,0,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,95,0,65,0,70,0,0,0,117,0,122,0,95,0,67,0,121,0,114,0,108,0,95,0,85,0,90,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,84,0,87,0,0,0,70,0,77,0,32,0,77,0,72,0,32,0,77,0,80,0,32,0,80,0,87,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,116,0,95,0,72,0,75,0,0,0,117,0,110,0,100,0,95,0,97,0,108,0,97,0,108,0,99,0,57,0,55,0,0,0,115,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,77,0,65,0,0,0,118,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,95,0,76,0,82,0,0,0,98,0,97,0,108,0,95,0,65,0,114,0,97,0,98,0,95,0,80,0,75,0,0,0,98,0,97,0,108,0,95,0,76,0,97,0,116,0,110,0,95,0,80,0,75,0,0,0,104,0,110,0,106,0,95,0,72,0,109,0,110,0,112,0,95,0,85,0,83,0,0,0,109,0,110,0,105,0,95,0,66,0,101,0,110,0,103,0,95,0,73,0,78,0,0,0,109,0,110,0,105,0,95,0,77,0,116,0,101,0,105,0,95,0,73,0,78,0,0,0,114,0,104,0,103,0,95,0,82,0,111,0,104,0,103,0,95,0,77,0,77,0,0,0,115,0,97,0,116,0,95,0,68,0,101,0,118,0,97,0,95,0,73,0,78,0,0,0,115,0,97,0,116,0,95,0,79,0,108,0,99,0,107,0,95,0,73,0,78,0,0,0,115,0,104,0,105,0,95,0,84,0,102,0,110,0,103,0,95,0,77,0,65,0,0,0,118,0,97,0,105,0,95,0,86,0,97,0,105,0,105,0,95,0,76,0,82,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,115,0,95,0,67,0,78,0,0,0,110,0,97,0,110,0,95,0,120,0,95,0,122,0,104,0,95,0,109,0,105,0,110,0,0,0,109,0,97,0,99,0,114,0,111,0,108,0,97,0,110,0,103,0,117,0,97,0,103,0,101,0,0,0,98,0,105,0,98,0,108,0,105,0,111,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,0,0,115,0,101,0,101,0,95,0,120,0,95,0,105,0,95,0,109,0,105,0,110,0,103,0,111,0,0,0,101,0,110,0,95,0,120,0,95,0,105,0,95,0,100,0,101,0,102,0,97,0,117,0,108,0,116,0,0,0,101,0,110,0,95,0,71,0,66,0,95,0,111,0,120,0,101,0,110,0,100,0,105,0,99,0,116,0,0,0,108,0,117,0,101,0,99,0,32,0,108,0,117,0,103,0,114,0,32,0,108,0,117,0,114,0,109,0,0,0,109,0,114,0,49,0,51,0,32,0,109,0,114,0,49,0,52,0,32,0,109,0,114,0,49,0,53,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,104,0,103,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,117,0,110,0,100,0,95,0,120,0,95,0,105,0,95,0,101,0,110,0,111,0,99,0,104,0,105,0,97,0,110,0,0,0,82,0,83,0,32,0,77,0,69,0,32,0,83,0,73,0,32,0,72,0,82,0,32,0,77,0,75,0,32,0,66,0,65,0,0,0,108,0,117,0,99,0,97,0,32,0,108,0,117,0,101,0,115,0,32,0,108,0,117,0,108,0,117,0,32,0,108,0,117,0,109,0,101,0,0,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,108,0,117,0,99,0,108,0,32,0,108,0,117,0,100,0,105,0,32,0,108,0,117,0,114,0,100,0,32,0,108,0,117,0,118,0,100,0,32,0,108,0,117,0,119,0,105,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,82,0,85,0,32,0,65,0,77,0,32,0,65,0,90,0,32,0,66,0,89,0,32,0,71,0,69,0,32,0,75,0,71,0,32,0,75,0,90,0,32,0,77,0,68,0,32,0,84,0,74,0,32,0,84,0,77,0,32,0,85,0,65,0,32,0,85,0,90,0,0,0,41,220,110,0,122,0,99,0,97,0,110,0,32,0,110,0,122,0,109,0,98,0,104,0,32,0,110,0,122,0,110,0,115,0,110,0,32,0,110,0,122,0,111,0,116,0,97,0,32,0,110,0,122,0,115,0,116,0,108,0,32,0,110,0,122,0,116,0,97,0,115,0,32,0,110,0,122,0,119,0,116,0,99,0,0,0,44,220,82,0,85,0,32,0,65,0,77,0,32,0,65,0,90,0,32,0,66,0,89,0,32,0,69,0,69,0,32,0,71,0,69,0,32,0,75,0,90,0,32,0,75,0,71,0,32,0,76,0,86,0,32,0,76,0,84,0,32,0,77,0,68,0,32,0,84,0,74,0,32,0,84,0,77,0,32,0,85,0,65,0,32,0,85,0,90,0,0,0,53,220,110,0,122,0,97,0,117,0,107,0,32,0,110,0,122,0,98,0,111,0,112,0,32,0,110,0,122,0,103,0,105,0,115,0,32,0,110,0,122,0,104,0,107,0,98,0,32,0,110,0,122,0,109,0,119,0,116,0,32,0,110,0,122,0,110,0,116,0,108,0,32,0,110,0,122,0,116,0,107,0,105,0,32,0,110,0,122,0,119,0,103,0,110,0,32,0,110,0,122,0,119,0,107,0,111,0,0,0,2,0,56,0,63,0,121,16,235,5,2,0,56,0,63,0,121,16,59,4,2,0,56,0,63,0,1,16,110,2,2,0,56,0,63,0,1,16,142,15,2,0,56,0,63,0,121,16,136,3,2,0,56,0,63,0,1,16,116,2,2,0,56,0,63,0,121,16,87,4,2,0,56,0,63,0,121,16,83,3,2,0,56,0,63,0,121,16,71,4,2,0,56,0,63,0,155,18,79,5,2,0,56,0,63,0,1,16,76,3,2,0,56,0,63,0,169,18,106,0,2,0,56,0,63,0,155,18,106,0,2,0,56,0,63,0,1,16,48,4,2,0,56,0,63,0,1,16,17,2,2,0,56,0,63,0,155,18,17,2,2,0,56,0,63,0,1,16,232,3,2,0,56,0,63,0,169,18,44,2,2,0,56,0,63,0,121,16,131,3,2,0,56,0,63,0,121,16,223,5,2,0,56,0,63,0,1,16,8,4,2,0,56,0,63,0,121,16,107,5,2,0,56,0,63,0,1,16,119,2,2,0,56,0,63,0,1,16,113,2,2,0,56,0,63,0,1,16,152,3,2,0,56,0,63,0,155,18,152,3,2,0,56,0,63,0,121,16,171,5,2,0,56,0,63,0,1,16,20,2,2,0,56,0,63,0,155,18,20,2,2,0,56,0,63,0,1,16,104,3,2,0,56,0,63,0,1,16,131,2,2,0,56,0,63,0,169,18,32,2,2,0,56,0,63,0,121,16,247,3,2,0,56,0,63,0,155,18,107,4,2,0,56,0,63,0,155,18,111,3,2,0,56,0,63,0,1,16,122,2,2,0,56,0,63,0,1,16,134,2,2,0,56,0,63,0,121,16,111,4,2,0,56,0,63,0,155,18,99,3,2,0,56,0,63,0,121,16,243,4,2,0,56,0,63,0,121,16,119,4,2,0,56,0,63,0,1,16,99,3,2,0,56,0,63,0,1,16,128,2,2,0,56,0,63,0,121,16,195,4,2,0,56,0,63,0,121,16,147,4,2,0,56,0,63,0,121,16,219,4,2,0,56,0,63,0,121,16,103,3,2,0,56,0,63,0,1,16,132,3,2,0,56,0,63,0,1,16,98,16,2,0,56,0,63,0,1,16,236,3,2,0,56,0,63,0,121,16,115,4,2,0,56,0,63,0,1,16,125,2,2,0,56,0,63,0,169,18,86,2,2,0,56,0,63,0,155,18,131,5,2,0,56,0,63,0,155,18,143,4,2,0,56,0,63,0,1,16,137,2,2,0,56,0,63,0,121,16,107,3,2,0,56,0,63,0,221,11,43,4,2,0,56,0,63,0,1,16,140,3,2,0,56,0,63,0,1,16,36,4,2,0,56,0,63,0,1,16,140,2,2,0,56,0,63,0,169,18,7,0,2,0,56,0,63,0,1,16,146,2,2,0,56,0,63,0,1,16,12,4,2,0,56,0,63,0,121,16,139,5,2,0,56,0,63,0,121,16,199,3,2,0,56,0,63,0,155,18,247,5,2,0,56,0,63,0,121,16,35,4,2,0,56,0,63,0,155,18,7,0,2,0,56,0,63,0,221,11,73,9,2,0,56,0,63,0,1,16,206,2,2,0,56,0,63,0,1,16,143,2,2,0,56,0,63,0,121,16,187,3,2,0,56,0,63,0,121,16,191,5,2,0,56,0,63,0,1,16,23,2,2,0,56,0,63,0,155,18,23,2,2,0,56,0,63,0,1,16,225,11,2,0,56,0,63,0,169,18,140,3,2,0,56,0,63,0,121,16,187,4,2,0,56,0,63,0,1,16,149,2,2,0,56,0,63,0,121,16,155,5,2,0,56,0,63,0,1,16,26,2,2,0,56,0,63,0,155,18,191,4,2,0,56,0,63,0,155,18,147,5,2,0,56,0,63,0,155,18,183,4,2,0,56,0,63,0,155,18,159,3,2,0,56,0,63,0,121,16,179,4,2,0,56,0,63,0,1,16,152,2,2,0,56,0,63,0,121,16,215,4,2,0,56,0,63,0,121,16,91,4,2,0,56,0,63,0,121,16,73,6,2,0,56,0,63,0,121,16,175,3,2,0,56,0,63,0,121,16,159,7,2,0,56,0,63,0,121,16,27,4,2,0,56,0,63,0,121,16,211,4,2,0,56,0,63,0,169,18,124,3,2,0,56,0,63,0,121,16,171,4,2,0,56,0,63,0,1,16,136,3,2,0,56,0,63,0,155,18,29,2,2,0,56,0,63,0,1,16,116,3,2,0,56,0,63,0,121,16,75,4,2,0,56,0,63,0,155,18,179,3,2,0,56,0,63,0,121,16,212,18,2,0,56,0,63,0,1,16,204,3,2,0,56,0,63,0,1,16,32,4,2,0,56,0,63,0,155,18,112,3,2,0,56,0,63,0,1,16,29,2,2,0,56,0,63,0,1,16,32,2,2,0,56,0,63,0,1,16,155,2,2,0,56,0,63,0,1,16,158,2,2,0,56,0,63,0,1,16,100,0,2,0,56,0,63,0,155,18,76,3,2,0,56,0,63,0,1,16,93,6,2,0,56,0,63,0,1,16,192,3,2,0,56,0,63,0,1,16,38,2,2,0,56,0,63,0,169,18,38,2,2,0,56,0,63,0,1,16,196,3,2,0,56,0,63,0,155,18,35,2,2,0,56,0,63,0,1,16,35,2,2,0,56,0,63,0,121,16,175,4,2,0,56,0,63,0,155,18,156,3,2,0,56,0,63,0,121,16,43,6,2,0,56,0,63,0,155,18,15,5,2,0,56,0,63,0,169,18,59,2,2,0,56,0,63,0,169,18,26,2,2,0,56,0,63,0,121,16,95,3,2,0,56,0,63,0,121,16,31,5,2,0,56,0,63,0,121,16,235,4,2,0,56,0,63,0,121,16,27,5,2,0,56,0,63,0,121,16,83,4,2,0,56,0,63,0,1,16,16,4,2,0,56,0,63,0,1,16,161,2,2,0,56,0,63,0,1,16,208,3,2,0,56,0,63,0,121,16,175,3,2,0,56,0,63,0,1,16,240,3,2,0,56,0,63,0,155,18,11,5,2,0,56,0,63,0,169,18,116,3,2,0,56,0,63,0,1,16,41,2,2,0,56,0,63,0,121,16,175,5,2,0,56,0,63,0,155,18,41,2,2,0,56,0,63,0,1,16,164,2,2,0,56,0,63,0,121,16,119,3,2,0,56,0,63,0,155,18,3,5,2,0,56,0,63,0,1,16,167,2,2,0,56,0,63,0,1,16,98,6,2,0,56,0,63,0,1,16,121,15,2,0,56,0,63,0,155,18,35,5,2,0,56,0,63,0,155,18,43,5,2,0,56,0,63,0,1,16,78,6,2,0,56,0,63,0,1,16,173,2,2,0,56,0,63,0,155,18,227,5,2,0,56,0,63,0,1,16,103,6,2,0,56,0,63,0,1,16,100,3,2,0,56,0,63,0,121,16,67,5,2,0,56,0,63,0,1,16,144,3,2,0,56,0,63,0,1,16,170,2,2,0,56,0,63,0,121,16,55,5,2,0,56,0,63,0,1,16,44,2,2,0,56,0,63,0,121,16,83,3,2,0,56,0,63,0,121,16,135,4,2,0,56,0,63,0,221,11,197,18,2,0,56,0,63,0,221,11,34,19,2,0,56,0,63,0,121,16,171,3,2,0,56,0,63,0,121,16,7,6,2,0,56,0,63,0,121,16,74,2,2,0,56,0,63,0,221,11,183,18,2,0,56,0,63,0,121,16,89,2,2,0,56,0,63,0,121,16,187,5,2,0,56,0,63,0,121,16,255,5,2,0,56,0,63,0,121,16,151,3,2,0,56,0,63,0,121,16,23,4,2,0,56,0,63,0,121,16,3,4,2,0,56,0,63,0,1,16,179,2,2,0,56,0,63,0,169,18,50,2,2,0,56,0,63,0,1,16,182,2,2,0,56,0,63,0,1,16,25,16,2,0,56,0,63,0,155,18,53,2,2,0,56,0,63,0,1,16,53,2,2,0,56,0,63,0,1,16,176,2,2,0,56,0,63,0,121,16,59,5,2,0,56,0,63,0,121,16,251,4,2,0,56,0,63,0,121,16,47,2,2,0,56,0,63,0,1,16,204,7,2,0,56,0,63,0,1,16,47,2,2,0,56,0,63,0,1,16,112,3,2,0,56,0,63,0,1,16,50,2,2,0,56,0,63,0,1,16,185,2,2,0,56,0,63,0,121,16,78,6,2,0,56,0,63,0,121,16,239,4,2,0,56,0,63,0,121,16,75,5,2,0,56,0,63,0,1,16,56,2,2,0,56,0,63,0,121,16,91,3,2,0,56,0,63,0,121,16,109,0,2,0,56,0,63,0,1,16,188,2,2,0,56,0,63,0,121,16,56,2,2,0,56,0,63,0,1,16,197,2,2,0,56,0,63,0,1,16,200,2,2,0,56,0,63,0,1,16,203,2,2,0,56,0,63,0,1,16,59,2,2,0,56,0,63,0,1,16,65,2,2,0,56,0,63,0,1,16,194,2,2,0,56,0,63,0,121,16,67,6,2,0,56,0,63,0,121,16,3,6,2,0,56,0,63,0,121,16,87,6,2,0,56,0,63,0,121,16,227,3,2,0,56,0,63,0,155,18,73,6,2,0,56,0,63,0,1,16,220,3,2,0,56,0,63,0,1,16,108,3,2,0,56,0,63,0,1,16,254,2,2,0,56,0,63,0,1,16,209,2,2,0,56,0,63,0,155,18,68,2,2,0,56,0,63,0,155,18,65,2,2,0,56,0,63,0,155,18,62,2,2,0,56,0,63,0,155,18,91,5,2,0,56,0,63,0,121,16,111,5,2,0,56,0,63,0,1,16,71,2,2,0,56,0,63,0,1,16,62,2,2,0,56,0,63,0,1,16,145,20,2,0,56,0,63,0,121,16,219,3,2,0,56,0,63,0,155,18,71,2,2,0,56,0,63,0,121,16,127,4,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,1,16,191,2,2,0,56,0,63,0,1,16,68,2,2,0,56,0,63,0,121,16,7,5,2,0,56,0,63,0,121,16,47,4,2,0,56,0,63,0,121,16,15,6,2,0,56,0,63,0,121,16,99,5,2,0,56,0,63,0,121,16,207,3,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,121,16,103,5,2,0,56,0,63,0,1,16,218,2,2,0,56,0,63,0,1,16,0,4,2,0,56,0,63,0,1,16,77,2,2,0,56,0,63,0,155,18,131,4,2,0,56,0,63,0,121,16,123,3,2,0,56,0,63,0,121,16,199,5,2,0,56,0,63,0,1,16,215,2,2,0,56,0,63,0,1,16,108,6,2,0,56,0,63,0,1,16,209,18,2,0,56,0,63,0,121,16,151,5,2,0,56,0,63,0,121,16,203,5,2,0,56,0,63,0,1,16,74,2,2,0,56,0,63,0,1,16,221,2,2,0,56,0,63,0,1,16,212,2,2,0,56,0,63,0,155,18,77,2,2,0,56,0,63,0,169,18,83,2,2,0,56,0,63,0,1,16,20,4,2,0,56,0,63,0,1,16,228,3,2,0,56,0,63,0,169,18,84,3,2,0,56,0,63,0,1,16,200,3,2,0,56,0,63,0,169,18,103,0,2,0,56,0,63,0,121,16,163,4,2,0,56,0,63,0,121,16,71,5,2,0,56,0,63,0,155,18,159,4,2,0,56,0,63,0,1,16,83,2,2,0,56,0,63,0,1,16,80,2,2,0,56,0,63,0,1,16,224,2,2,0,56,0,63,0,155,18,179,3,2,0,56,0,63,0,121,16,87,3,2,0,56,0,63,0,121,16,80,3,2,0,56,0,63,0,121,16,51,6,2,0,56,0,63,0,1,16,80,3,2,0,56,0,63,0,1,16,73,6,2,0,56,0,63,0,1,16,84,3,2,0,56,0,63,0,1,16,103,0,2,0,56,0,63,0,121,16,183,3,2,0,56,0,63,0,155,18,195,5,2,0,56,0,63,0,121,16,163,3,2,0,56,0,63,0,121,16,95,3,2,0,56,0,63,0,1,16,86,2,2,0,56,0,63,0,121,16,79,4,2,0,56,0,63,0,121,16,183,3,2,0,56,0,63,0,121,16,39,4,2,0,56,0,63,0,1,16,227,2,2,0,56,0,63,0,1,16,89,2,2,0,56,0,63,0,121,16,167,5,2,0,56,0,63,0,1,16,233,2,2,0,56,0,63,0,121,16,223,4,2,0,56,0,63,0,121,16,135,3,2,0,56,0,63,0,1,16,68,3,2,0,56,0,63,0,1,16,7,16,2,0,56,0,63,0,1,16,112,9,2,0,56,0,63,0,1,16,124,3,2,0,56,0,63,0,121,16,103,4,2,0,56,0,63,0,121,16,163,5,2,0,56,0,63,0,1,16,88,3,2,0,56,0,63,0,121,16,235,3,2,0,56,0,63,0,121,16,239,3,2,0,56,0,63,0,121,16,13,0,2,0,56,0,63,0,121,16,13,0,2,0,56,0,63,0,121,16,88,3,2,0,56,0,63,0,121,16,88,3,2,0,56,0,63,0,1,16,13,0,2,0,56,0,63,0,121,16,207,4,2,0,56,0,63,0,1,16,230,2,2,0,56,0,63,0,155,18,112,9,2,0,56,0,63,0,121,16,187,3,2,0,56,0,63,0,121,16,139,4,2,0,56,0,63,0,1,16,40,4,2,0,56,0,63,0,1,16,236,2,2,0,56,0,63,0,155,18,92,2,2,0,56,0,63,0,1,16,92,2,2,0,56,0,63,0,1,16,174,7,2,0,56,0,63,0,1,16,156,3,2,0,56,0,63,0,155,18,174,7,2,0,56,0,63,0,1,16,239,2,2,0,56,0,63,0,121,16,95,3,2,0,56,0,63,0,1,16,4,4,2,0,56,0,63,0,121,16,115,5,2,0,56,0,63,0,155,18,95,2,2,0,56,0,63,0,121,16,67,4,2,0,56,0,63,0,169,18,100,0,2,0,56,0,63,0,155,18,100,0,2,0,56,0,63,0,1,16,242,2,2,0,56,0,63,0,155,18,80,2,2,0,56,0,63,0,121,16,51,5,2,0,56,0,63,0,121,16,143,3,2,0,56,0,63,0,155,18,119,5,2,0,56,0,63,0,1,16,245,2,2,0,56,0,63,0,1,16,248,2,2,0,56,0,63,0,121,16,195,3,2,0,56,0,63,0,121,16,123,5,2,0,56,0,63,0,1,16,159,7,2,0,56,0,63,0,121,16,179,5,2,0,56,0,63,0,1,16,95,2,2,0,56,0,63,0,121,16,183,5,2,0,56,0,63,0,1,16,98,2,2,0,56,0,63,0,155,18,98,2,2,0,56,0,63,0,121,16,231,4,2,0,56,0,63,0,155,18,207,5,2,0,56,0,63,0,1,16,52,4,2,0,56,0,63,0,1,16,80,3,2,0,56,0,63,0,169,18,80,3,2,0,56,0,63,0,1,16,251,2,2,0,56,0,63,0,1,16,150,15,2,0,56,0,63,0,1,16,216,3,2,0,56,0,63,0,1,16,1,3,2,0,56,0,63,0,121,16,95,4,2,0,56,0,63,0,121,16,39,5,2,0,56,0,63,0,121,16,148,3,2,0,56,0,63,0,121,16,144,3,2,0,56,0,63,0,121,16,127,3,2,0,56,0,63,0,121,16,211,5,2,0,56,0,63,0,121,16,31,6,2,0,56,0,63,0,121,16,151,4,2,0,56,0,63,0,121,16,219,5,2,0,56,0,63,0,121,16,167,4,2,0,56,0,63,0,121,16,19,5,2,0,56,0,63,0,121,16,203,4,2,0,56,0,63,0,121,16,231,5,2,0,56,0,63,0,121,16,247,4,2,0,56,0,63,0,121,16,191,3,2,0,56,0,63,0,121,16,23,5,2,0,56,0,63,0,121,16,215,3,2,0,56,0,63,0,121,16,211,3,2,0,56,0,63,0,121,16,223,3,2,0,56,0,63,0,121,16,135,5,2,0,56,0,63,0,121,16,139,3,2,0,56,0,63,0,121,16,199,4,2,0,56,0,63,0,121,16,243,3,2,0,56,0,63,0,121,16,147,3,2,0,56,0,63,0,121,16,243,5,2,0,56,0,63,0,121,16,99,4,2,0,56,0,63,0,121,16,215,5,2,0,56,0,63,0,221,11,121,15,2,0,56,0,63,0,1,16,244,3,2,0,56,0,63,0,121,16,91,3,2,0,56,0,63,0,1,16,128,3,2,0,56,0,63,0,169,18,128,3,2,0,56,0,63,0,1,16,224,3,2,0,56,0,63,0,121,16,87,5,2,0,56,0,63,0,1,16,212,3,2,0,56,0,63,0,1,16,4,3,2,0,56,0,63,0,1,16,118,6,2,0,56,0,63,0,121,16,103,3,2,0,56,0,63,0,1,16,113,6,2,0,56,0,63,0,1,16,7,3,2,0,56,0,63,0,1,16,10,3,2,0,56,0,63,0,1,16,150,7,2,0,56,0,63,0,155,18,83,5,2,0,56,0,63,0,1,16,106,0,2,0,56,0,63,0,155,18,83,6,2,0,56,0,63,0,1,16,83,6,2,0,56,0,63,0,1,16,148,3,2,0,56,0,63,0,1,16,108,16,2,0,56,0,63,0,121,16,15,4,2,0,56,0,63,0,121,16,27,6,2,0,56,0,63,0,1,16,24,4,2,0,56,0,63,0,1,16,101,2,2,0,56,0,63,0,1,16,183,7,2,0,56,0,63,0,1,16,13,3,2,0,56,0,63,0,155,18,101,2,2,0,56,0,63,0,1,16,40,3,2,0,56,0,63,0,1,16,16,3,2,0,56,0,63,0,1,16,37,3,2,0,56,0,63,0,121,16,71,3,2,0,56,0,63,0,1,16,19,3,2,0,56,0,63,0,121,16,123,4,2,0,56,0,63,0,1,16,44,4,2,0,56,0,63,0,1,16,167,3,2,0,56,0,63,0,1,16,28,4,2,0,56,0,63,0,121,16,11,6,2,0,56,0,63,0,121,16,255,3,2,0,56,0,63,0,121,16,91,3,2,0,56,0,63,0,169,18,132,3,2,0,56,0,63,0,121,16,63,5,2,0,56,0,63,0,121,16,7,4,2,0,56,0,63,0,1,16,22,3,2,0,56,0,63,0,121,16,19,6,2,0,56,0,63,0,221,11,167,3,2,0,56,0,63,0,121,16,31,4,2,0,56,0,63,0,121,16,23,6,2,0,56,0,63,0,121,16,75,3,2,0,56,0,63,0,121,16,159,7,2,0,56,0,63,0,1,16,28,3,2,0,56,0,63,0,121,16,251,5,2,0,56,0,63,0,1,16,158,15,2,0,56,0,63,0,1,16,34,3,2,0,56,0,63,0,155,18,19,4,2,0,56,0,63,0,1,16,25,3,2,0,56,0,63,0,1,16,31,3,2,0,56,0,63,0,155,18,76,3,2,0,56,0,63,0,1,16,76,3,2,0,56,0,63,0,1,16,56,4,2,0,56,0,63,0,1,16,43,3,2,0,56,0,63,0,155,18,115,3,2,0,56,0,63,0,121,16,0,12,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,230,17,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,67,3,2,0,56,0,63,0,121,16,79,3,2,0,56,0,63,0,121,16,227,4,2,0,56,0,63,0,1,16,46,3,2,0,56,0,63,0,1,16,120,3,2,0,56,0,63,0,155,18,120,3,2,0,56,0,63,0,1,16,49,3,2,0,56,0,63,0,1,16,52,3,2,0,56,0,63,0,1,16,248,3,2,0,56,0,63,0,169,18,225,11,2,0,56,0,63,0,121,16,39,6,2,0,56,0,63,0,121,16,159,5,2,0,56,0,63,0,121,16,251,3,2,0,56,0,63,0,1,16,55,3,2,0,56,0,63,0,1,16,252,3,2,0,56,0,63,0,121,16,155,4,2,0,56,0,63,0,1,16,58,3,2,0,56,0,63,0,121,16,63,4,2,0,56,0,63,0,121,16,35,6,2,0,56,0,63,0,155,18,95,5,2,0,56,0,63,0,121,16,163,3,2,0,56,0,63,0,121,16,239,5,2,0,56,0,63,0,155,18,203,3,2,0,56,0,63,0,121,16,107,3,2,0,56,0,63,0,155,18,109,0,2,0,56,0,63,0,121,16,55,6,2,0,56,0,63,0,1,16,109,0,2,0,56,0,63,0,121,16,51,4,2,0,56,0,63,0,121,16,127,5,2,0,56,0,63,0,121,16,143,5,2,0,56,0,63,0,1,16,61,3,2,0,56,0,63,0,121,16,155,3,2,0,56,0,63,0,121,16,55,4,2,0,56,0,63,0,155,18,63,6,2,0,56,0,63,0,121,16,7,0,2,0,56,0,63,0,121,16,129,15,2,0,56,0,63,0,121,16,249,15,2,0,56,0,63,0,121,16,255,4,2,0,56,0,63,0,121,16,7,0,2,0,56,0,63,0,121,16,171,3,2,0,56,0,63,0,221,11,142,18,2,0,56,0,63,0,121,16,231,3,2,0,56,0,63,0,121,16,47,6,2,0,56,0,63,0,121,16,47,5,2,0,56,0,63,0,121,16,59,6,2,0,56,0,63,0,1,16,160,3,2,0,56,0,63,0,1,16,7,0,2,0,56,0,63,0,121,16,11,4,2,0,56,0,63,0,155,18,103,0,2,0,56,0,63,0,1,16,64,3,2,0,56,0,63,0,155,18,160,3,2,0,56,0,63,0,121,16,121,6,2,0,56,0,63,0,121,16,131,6,2,0,56,0,63,0,121,16,206,6,2,0,56,0,63,0,121,16,76,6,2,0,56,0,63,0,121,16,201,6,2,0,56,0,63,0,121,16,71,6,2,0,56,0,63,0,121,16,106,6,2,0,56,0,63,0,121,16,171,6,2,0,56,0,63,0,121,16,161,6,2,0,56,0,63,0,121,16,196,6,2,0,56,0,63,0,121,16,176,6,2,0,56,0,63,0,121,16,226,6,2,0,56,0,63,0,121,16,126,6,2,0,56,0,63,0,121,16,91,6,2,0,56,0,63,0,121,16,181,6,2,0,56,0,63,0,121,16,111,6,2,0,56,0,63,0,121,16,96,6,2,0,56,0,63,0,121,16,156,6,2,0,56,0,63,0,121,16,166,6,2,0,56,0,63,0,121,16,136,6,2,0,56,0,63,0,121,16,146,6,2,0,56,0,63,0,121,16,101,6,2,0,56,0,63,0,121,16,86,6,2,0,56,0,63,0,121,16,81,6,2,0,56,0,63,0,121,16,151,6,2,0,56,0,63,0,121,16,221,6,2,0,56,0,63,0,121,16,216,6,2,0,56,0,63,0,121,16,116,6,2,0,56,0,63,0,121,16,141,6,2,0,56,0,63,0,121,16,191,6,2,0,56,0,63,0,121,16,186,6,2,0,56,0,63,0,121,16,211,6,2,0,56,0,63,0,1,16,253,11,2,0,56,0,63,0,1,16,227,17,2,0,56,0,63,0,1,16,55,0,2,0,56,0,63,0,121,16,247,9,2,0,56,0,63,0,121,16,253,9,2,0,56,0,63,0,121,16,3,10,2,0,56,0,63,0,121,16,9,10,2,0,56,0,63,0,121,16,15,10,2,0,56,0,63,0,121,16,21,10,2,0,56,0,63,0,121,16,87,10,2,0,56,0,63,0,121,16,27,10,2,0,56,0,63,0,121,16,33,10,2,0,56,0,63,0,121,16,39,10,2,0,56,0,63,0,121,16,45,10,2,0,56,0,63,0,121,16,51,10,2,0,56,0,63,0,121,16,57,10,2,0,56,0,63,0,121,16,63,10,2,0,56,0,63,0,121,16,69,10,2,0,56,0,63,0,121,16,75,10,2,0,56,0,63,0,121,16,81,10,2,0,56,0,63,0,121,16,241,6,2,0,56,0,63,0,121,16,25,7,2,0,56,0,63,0,121,16,251,6,2,0,56,0,63,0,121,16,10,7,2,0,56,0,63,0,121,16,5,7,2,0,56,0,63,0,121,16,40,7,2,0,56,0,63,0,121,16,30,7,2,0,56,0,63,0,121,16,15,7,2,0,56,0,63,0,121,16,246,6,2,0,56,0,63,0,121,16,231,6,2,0,56,0,63,0,121,16,236,6,2,0,56,0,63,0,121,16,0,7,2,0,56,0,63,0,121,16,20,7,2,0,56,0,63,0,121,16,35,7,2,0,56,0,63,0,1,16,4,12,2,0,56,0,63,0,121,16,147,7,2,0,56,0,63,0,121,16,165,7,2,0,56,0,63,0,1,16,31,0,2,0,56,0,63,0,121,16,29,8,2,0,56,0,63,0,1,16,178,0,2,0,56,0,63,0,121,16,35,8,2,0,56,0,63,0,121,16,129,10,2,0,56,0,63,0,121,16,141,10,2,0,56,0,63,0,121,16,147,7,2,0,56,0,63,0,1,16,40,0,2,0,56,0,63,0,1,16,43,0,2,0,56,0,63,0,121,16,135,10,2,0,56,0,63,0,121,16,35,8,2,0,56,0,63,0,121,16,147,10,2,0,56,0,63,0,121,16,47,8,2,0,56,0,63,0,121,16,165,7,2,0,56,0,63,0,121,16,147,7,2,0,56,0,63,0,1,16,52,0,2,0,56,0,63,0,1,16,61,0,2,0,56,0,63,0,121,16,47,8,2,0,56,0,63,0,1,16,64,0,2,0,56,0,63,0,121,16,41,8,2,0,56,0,63,0,121,16,171,7,2,0,56,0,63,0,1,16,70,0,2,0,56,0,63,0,1,16,73,0,2,0,56,0,63,0,121,16,171,7,2,0,56,0,63,0,121,16,159,10,2,0,56,0,63,0,1,16,79,0,2,0,56,0,63,0,121,16,41,8,2,0,56,0,63,0,121,16,165,7,2,0,56,0,63,0,1,16,192,7,2,0,56,0,63,0,121,16,153,10,2,0,56,0,63,0,121,16,29,8,2,0,56,0,63,0,1,16,94,0,2,0,56,0,63,0,1,16,97,0,2,0,56,0,63,0,121,16,45,7,2,0,56,0,63,0,121,16,137,19,2,0,56,0,63,0,121,16,227,18,2,0,56,0,63,0,121,16,69,19,2,0,56,0,63,0,121,16,242,18,2,0,56,0,63,0,1,16,22,0,2,0,56,0,63,0,1,16,34,0,2,0,56,0,63,0,1,16,85,0,2,0,56,0,63,0,121,16,50,7,2,0,56,0,63,0,121,16,93,20,2,0,56,0,63,0,121,16,4,20,2,0,56,0,63,0,121,16,91,16,2,0,56,0,63,0,121,16,101,16,2,0,56,0,63,0,121,16,55,7,2,0,56,0,63,0,121,16,60,7,2,0,56,0,63,0,121,16,70,7,2,0,56,0,63,0,121,16,75,7,2,0,56,0,63,0,121,16,65,7,2,0,56,0,63,0,121,16,80,7,2,0,56,0,63,0,121,16,85,7,2,0,56,0,63,0,121,16,90,7,2,0,56,0,63,0,121,16,100,7,2,0,56,0,63,0,121,16,95,7,2,0,56,0,63,0,121,16,105,7,2,0,56,0,63,0,121,16,115,7,2,0,56,0,63,0,121,16,110,7,2,0,56,0,63,0,121,16,120,7,2,0,56,0,63,0,121,16,125,7,2,0,56,0,63,0,121,16,130,7,2,0,56,0,63,0,1,16,156,1,2,0,56,0,63,0,121,16,115,9,2,0,56,0,63,0,121,16,155,11,2,0,56,0,63,0,121,16,115,9,2,0,56,0,63,0,121,16,161,11,2,0,56,0,63,0,121,16,173,11,2,0,56,0,63,0,121,16,167,11,2,0,56,0,63,0,121,16,179,11,2,0,56,0,63,0,1,16,19,0,2,0,56,0,63,0,1,16,46,0,2,0,56,0,63,0,1,16,58,0,2,0,56,0,63,0,1,16,76,0,2,0,56,0,63,0,1,16,1,0,2,0,56,0,63,0,1,16,88,0,2,0,56,0,63,0,1,16,4,9,2,0,56,0,63,0,1,16,70,9,2,0,56,0,63,0,1,16,16,0,2,0,56,0,63,0,1,16,88,12,2,0,56,0,63,0,1,16,19,0,2,0,56,0,63,0,1,16,115,0,2,0,56,0,63,0,1,16,127,0,2,0,56,0,63,0,1,16,121,0,2,0,56,0,63,0,1,16,140,16,2,0,56,0,63,0,1,16,130,0,2,0,56,0,63,0,1,16,228,12,2,0,56,0,63,0,1,16,133,0,2,0,56,0,63,0,1,16,151,0,2,0,56,0,63,0,1,16,139,0,2,0,56,0,63,0,1,16,39,12,2,0,56,0,63,0,1,16,98,8,2,0,56,0,63,0,1,16,136,0,2,0,56,0,63,0,1,16,130,9,2,0,56,0,63,0,1,16,142,0,2,0,56,0,63,0,121,16,161,15,2,0,56,0,63,0,1,16,2,8,2,0,56,0,63,0,1,16,148,0,2,0,56,0,63,0,1,16,151,16,2,0,56,0,63,0,1,16,157,0,2,0,56,0,63,0,1,16,154,0,2,0,56,0,63,0,1,16,10,9,2,0,56,0,63,0,1,16,160,0,2,0,56,0,63,0,1,16,253,0,2,0,56,0,63,0,1,16,151,12,2,0,56,0,63,0,1,16,186,1,2,0,56,0,63,0,1,16,145,0,2,0,56,0,63,0,1,16,234,7,2,0,56,0,63,0,1,16,180,7,2,0,56,0,63,0,1,16,22,9,2,0,56,0,63,0,1,16,228,7,2,0,56,0,63,0,1,16,146,8,2,0,56,0,63,0,1,16,235,12,2,0,56,0,63,0,1,16,116,8,2,0,56,0,63,0,1,16,95,12,2,0,56,0,63,0,1,16,21,1,2,0,56,0,63,0,1,16,40,9,2,0,56,0,63,0,1,16,46,9,2,0,56,0,63,0,1,16,162,1,2,0,56,0,63,0,1,16,11,12,2,0,56,0,63,0,1,16,184,16,2,0,56,0,63,0,1,16,253,11,2,0,56,0,63,0,1,16,187,0,2,0,56,0,63,0,1,16,163,0,2,0,56,0,63,0,1,16,175,0,2,0,56,0,63,0,121,16,224,19,2,0,56,0,63,0,1,16,9,1,2,0,56,0,63,0,1,16,97,0,2,0,56,0,63,0,1,16,166,0,2,0,56,0,63,0,1,16,186,7,2,0,56,0,63,0,1,16,172,0,2,0,56,0,63,0,1,16,181,0,2,0,56,0,63,0,1,16,86,8,2,0,56,0,63,0,1,16,184,0,2,0,56,0,63,0,1,16,190,0,2,0,56,0,63,0,121,16,145,9,2,0,56,0,63,0,1,16,240,7,2,0,56,0,63,0,1,16,28,0,2,0,56,0,63,0,1,16,246,7,2,0,56,0,63,0,1,16,196,0,2,0,56,0,63,0,1,16,199,0,2,0,56,0,63,0,1,16,202,0,2,0,56,0,63,0,1,16,147,1,2,0,56,0,63,0,1,16,232,0,2,0,56,0,63,0,121,16,246,11,2,0,56,0,63,0,1,16,246,11,2,0,56,0,63,0,1,16,179,12,2,0,56,0,63,0,1,16,14,8,2,0,56,0,63,0,1,16,26,8,2,0,56,0,63,0,1,16,214,0,2,0,56,0,63,0,1,16,235,0,2,0,56,0,63,0,1,16,211,0,2,0,56,0,63,0,1,16,172,12,2,0,56,0,63,0,1,16,4,12,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,40,0,2,0,56,0,63,0,1,16,70,0,2,0,56,0,63,0,1,16,192,7,2,0,56,0,63,0,1,16,193,0,2,0,56,0,63,0,1,16,220,0,2,0,56,0,63,0,1,16,254,8,2,0,56,0,63,0,1,16,229,0,2,0,56,0,63,0,1,16,75,1,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,121,16,232,11,2,0,56,0,63,0,1,16,222,7,2,0,56,0,63,0,1,16,226,0,2,0,56,0,63,0,1,16,49,0,2,0,56,0,63,0,1,16,8,8,2,0,56,0,63,0,1,16,140,8,2,0,56,0,63,0,1,16,223,0,2,0,56,0,63,0,1,16,43,0,2,0,56,0,63,0,1,16,46,0,2,0,56,0,63,0,1,16,158,12,2,0,56,0,63,0,1,16,137,12,2,0,56,0,63,0,1,16,241,0,2,0,56,0,63,0,1,16,250,0,2,0,56,0,63,0,1,16,244,0,2,0,56,0,63,0,1,16,170,8,2,0,56,0,63,0,1,16,247,0,2,0,56,0,63,0,1,16,227,17,2,0,56,0,63,0,1,16,92,8,2,0,56,0,63,0,1,16,104,8,2,0,56,0,63,0,1,16,32,12,2,0,56,0,63,0,1,16,128,8,2,0,56,0,63,0,1,16,123,12,2,0,56,0,63,0,1,16,186,12,2,0,56,0,63,0,1,16,62,8,2,0,56,0,63,0,1,16,80,8,2,0,56,0,63,0,1,16,110,8,2,0,56,0,63,0,1,16,169,0,2,0,56,0,63,0,1,16,3,1,2,0,56,0,63,0,1,16,122,8,2,0,56,0,63,0,1,16,134,8,2,0,56,0,63,0,1,16,6,1,2,0,56,0,63,0,1,16,67,12,2,0,56,0,63,0,1,16,15,1,2,0,56,0,63,0,1,16,152,8,2,0,56,0,63,0,1,16,18,1,2,0,56,0,63,0,1,16,164,8,2,0,56,0,63,0,1,16,182,8,2,0,56,0,63,0,1,16,24,1,2,0,56,0,63,0,1,16,33,1,2,0,56,0,63,0,1,16,194,8,2,0,56,0,63,0,1,16,7,18,2,0,56,0,63,0,1,16,36,1,2,0,56,0,63,0,1,16,30,1,2,0,56,0,63,0,1,16,188,8,2,0,56,0,63,0,1,16,176,8,2,0,56,0,63,0,1,16,55,0,2,0,56,0,63,0,1,16,200,8,2,0,56,0,63,0,1,16,248,8,2,0,56,0,63,0,1,16,224,8,2,0,56,0,63,0,1,16,252,7,2,0,56,0,63,0,1,16,165,12,2,0,56,0,63,0,1,16,230,8,2,0,56,0,63,0,1,16,61,0,2,0,56,0,63,0,1,16,48,1,2,0,56,0,63,0,1,16,102,12,2,0,56,0,63,0,1,16,54,1,2,0,56,0,63,0,1,16,39,1,2,0,56,0,63,0,1,16,218,8,2,0,56,0,63,0,1,16,42,1,2,0,56,0,63,0,1,16,76,9,2,0,56,0,63,0,1,16,51,1,2,0,56,0,63,0,1,16,251,17,2,0,56,0,63,0,1,16,109,12,2,0,56,0,63,0,1,16,69,1,2,0,56,0,63,0,1,16,130,12,2,0,56,0,63,0,1,16,63,1,2,0,56,0,63,0,1,16,236,8,2,0,56,0,63,0,1,16,56,8,2,0,56,0,63,0,1,16,10,16,2,0,56,0,63,0,1,16,34,0,2,0,56,0,63,0,121,16,10,16,2,0,56,0,63,0,1,16,22,0,2,0,56,0,63,0,1,16,85,0,2,0,56,0,63,0,1,16,16,16,2,0,56,0,63,0,1,16,153,7,2,0,56,0,63,0,1,16,64,0,2,0,56,0,63,0,1,16,91,0,2,0,56,0,63,0,1,16,206,8,2,0,56,0,63,0,1,16,60,1,2,0,56,0,63,0,1,16,221,12,2,0,56,0,63,0,1,16,136,9,2,0,56,0,63,0,1,16,66,1,2,0,56,0,63,0,1,16,57,1,2,0,56,0,63,0,1,16,242,8,2,0,56,0,63,0,1,16,58,0,2,0,56,0,63,0,1,16,1,0,2,0,56,0,63,0,121,16,206,17,2,0,56,0,63,0,1,16,217,0,2,0,56,0,63,0,1,16,45,1,2,0,56,0,63,0,1,16,215,17,2,0,56,0,63,0,1,16,214,12,2,0,56,0,63,0,1,16,67,0,2,0,56,0,63,0,1,16,207,12,2,0,56,0,63,0,1,16,68,8,2,0,56,0,63,0,1,16,16,9,2,0,56,0,63,0,1,16,53,12,2,0,56,0,63,0,1,16,72,1,2,0,56,0,63,0,1,16,193,12,2,0,56,0,63,0,1,16,78,1,2,0,56,0,63,0,1,16,238,0,2,0,56,0,63,0,1,16,10,0,2,0,56,0,63,0,1,16,76,0,2,0,56,0,63,0,1,16,81,1,2,0,56,0,63,0,1,16,79,0,2,0,56,0,63,0,1,16,28,9,2,0,56,0,63,0,1,16,116,12,2,0,56,0,63,0,1,16,34,9,2,0,56,0,63,0,1,16,31,0,2,0,56,0,63,0,1,16,129,1,2,0,56,0,63,0,1,16,12,1,2,0,56,0,63,0,1,16,124,0,2,0,56,0,63,0,1,16,27,1,2,0,56,0,63,0,1,16,52,0,2,0,56,0,63,0,1,16,73,0,2,0,56,0,63,0,1,16,180,1,2,0,56,0,63,0,1,16,138,1,2,0,56,0,63,0,1,16,144,1,2,0,56,0,63,0,1,16,120,1,2,0,56,0,63,0,1,16,46,12,2,0,56,0,63,0,1,16,162,16,2,0,56,0,63,0,1,16,123,1,2,0,56,0,63,0,1,16,135,1,2,0,56,0,63,0,1,16,126,1,2,0,56,0,63,0,1,16,52,9,2,0,56,0,63,0,1,16,239,11,2,0,56,0,63,0,1,16,58,9,2,0,56,0,63,0,1,16,64,9,2,0,56,0,63,0,1,16,142,9,2,0,56,0,63,0,1,16,210,7,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,1,16,20,8,2,0,56,0,63,0,1,16,144,12,2,0,56,0,63,0,1,16,82,0,2,0,56,0,63,0,1,16,208,0,2,0,56,0,63,0,121,16,82,0,2,0,56,0,63,0,1,16,141,1,2,0,56,0,63,0,1,16,132,1,2,0,56,0,63,0,1,16,153,1,2,0,56,0,63,0,1,16,82,9,2,0,56,0,63,0,1,16,60,12,2,0,56,0,63,0,1,16,150,1,2,0,56,0,63,0,1,16,88,9,2,0,56,0,63,0,1,16,94,9,2,0,56,0,63,0,1,16,81,12,2,0,56,0,63,0,1,16,165,1,2,0,56,0,63,0,1,16,106,9,2,0,56,0,63,0,1,16,171,1,2,0,56,0,63,0,1,16,118,0,2,0,56,0,63,0,1,16,168,1,2,0,56,0,63,0,1,16,158,8,2,0,56,0,63,0,1,16,100,9,2,0,56,0,63,0,1,16,159,1,2,0,56,0,63,0,1,16,174,1,2,0,56,0,63,0,1,16,200,12,2,0,56,0,63,0,1,16,124,9,2,0,56,0,63,0,1,16,212,8,2,0,56,0,63,0,1,16,47,20,2,0,56,0,63,0,1,16,205,0,2,0,56,0,63,0,1,16,198,7,2,0,56,0,63,0,121,16,213,7,2,0,56,0,63,0,1,16,216,7,2,0,56,0,63,0,1,16,0,1,2,0,56,0,63,0,1,16,74,8,2,0,56,0,63,0,1,16,25,12,2,0,56,0,63,0,1,16,74,12,2,0,56,0,63,0,1,16,88,0,2,0,56,0,63,0,1,16,25,0,2,0,56,0,63,0,1,16,177,1,2,0,56,0,63,0,1,16,173,16,2,0,56,0,63,0,1,16,183,1,2,0,56,0,63,0,1,16,94,0,2,0,56,0,63,0,1,16,189,1,2,0,56,0,63,0,121,16,4,0,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,121,16,51,19,2,0,56,0,63,0,1,16,135,7,2,0,56,0,63,0,1,16,18,12,2,0,56,0,63,0,1,16,112,0,2,0,56,0,63,0,1,16,84,1,2,0,56,0,63,0,1,16,87,1,2,0,56,0,63,0,1,16,90,1,2,0,56,0,63,0,1,16,93,1,2,0,56,0,63,0,1,16,96,1,2,0,56,0,63,0,1,16,99,1,2,0,56,0,63,0,1,16,102,1,2,0,56,0,63,0,1,16,37,0,2,0,56,0,63,0,1,16,105,1,2,0,56,0,63,0,1,16,108,1,2,0,56,0,63,0,1,16,111,1,2,0,56,0,63,0,1,16,114,1,2,0,56,0,63,0,1,16,117,1,2,0,56,0,63,0,1,16,192,1,2,0,56,0,63,0,1,16,195,1,2,0,56,0,63,0,1,16,198,1,2,0,56,0,63,0,1,16,201,1,2,0,56,0,63,0,1,16,204,1,2,0,56,0,63,0,1,16,207,1,2,0,56,0,63,0,1,16,210,1,2,0,56,0,63,0,1,16,213,1,2,0,56,0,63,0,1,16,216,1,2,0,56,0,63,0,1,16,219,1,2,0,56,0,63,0,1,16,222,1,2,0,56,0,63,0,1,16,225,1,2,0,56,0,63,0,1,16,228,1,2,0,56,0,63,0,1,16,231,1,2,0,56,0,63,0,1,16,234,1,2,0,56,0,63,0,1,16,237,1,2,0,56,0,63,0,1,16,240,1,2,0,56,0,63,0,1,16,243,1,2,0,56,0,63,0,1,16,246,1,2,0,56,0,63,0,1,16,249,1,2,0,56,0,63,0,1,16,252,1,2,0,56,0,63,0,1,16,255,1,2,0,56,0,63,0,1,16,2,2,2,0,56,0,63,0,1,16,5,2,2,0,56,0,63,0,1,16,8,2,2,0,56,0,63,0,1,16,11,2,2,0,56,0,63,0,1,16,14,2,2,0,56,0,63,0,1,16,112,0,2,0,56,0,63,0,1,16,22,0,2,0,56,0,63,0,1,16,4,9,2,0,56,0,63,0,1,16,127,0,2,0,56,0,63,0,1,16,124,0,2,0,56,0,63,0,1,16,4,12,2,0,56,0,63,0,1,16,70,9,2,0,56,0,63,0,121,16,10,16,2,0,56,0,63,0,1,16,115,0,2,0,56,0,63,0,1,16,10,16,2,0,56,0,63,0,1,16,118,0,2,0,56,0,63,0,1,16,130,0,2,0,56,0,63,0,1,16,98,8,2,0,56,0,63,0,1,16,104,2,2,0,56,0,63,0,1,16,19,0,2,0,56,0,63,0,1,16,16,0,2,0,56,0,63,0,1,16,192,7,2,0,56,0,63,0,1,16,121,0,2,0,56,0,63,0,1,16,228,12,2,0,56,0,63,0,1,16,133,0,2,0,56,0,63,0,1,16,140,16,2,0,56,0,63,0,1,16,22,9,2,0,56,0,63,0,1,16,130,9,2,0,56,0,63,0,1,16,28,0,2,0,56,0,63,0,1,16,16,16,2,0,56,0,63,0,1,16,25,0,2,0,56,0,63,0,1,16,39,12,2,0,56,0,63,0,1,16,234,7,2,0,56,0,63,0,1,16,139,0,2,0,56,0,63,0,1,16,151,0,2,0,56,0,63,0,1,16,151,16,2,0,56,0,63,0,1,16,31,0,2,0,56,0,63,0,1,16,228,7,2,0,56,0,63,0,1,16,160,0,2,0,56,0,63,0,1,16,142,0,2,0,56,0,63,0,1,16,148,0,2,0,56,0,63,0,1,16,10,9,2,0,56,0,63,0,1,16,136,0,2,0,56,0,63,0,1,16,145,0,2,0,56,0,63,0,1,16,2,8,2,0,56,0,63,0,121,16,180,7,2,0,56,0,63,0,1,16,180,7,2,0,56,0,63,0,1,16,154,0,2,0,56,0,63,0,1,16,157,0,2,0,56,0,63,0,1,16,40,9,2,0,56,0,63,0,1,16,116,8,2,0,56,0,63,0,1,16,163,0,2,0,56,0,63,0,1,16,60,12,2,0,56,0,63,0,1,16,11,12,2,0,56,0,63,0,1,16,184,16,2,0,56,0,63,0,1,16,169,0,2,0,56,0,63,0,1,16,235,12,2,0,56,0,63,0,1,16,186,7,2,0,56,0,63,0,1,16,166,0,2,0,56,0,63,0,1,16,172,0,2,0,56,0,63,0,1,16,175,0,2,0,56,0,63,0,1,16,9,1,2,0,56,0,63,0,1,16,178,0,2,0,56,0,63,0,1,16,95,12,2,0,56,0,63,0,1,16,181,0,2,0,56,0,63,0,121,16,135,7,2,0,56,0,63,0,121,16,49,0,2,0,56,0,63,0,1,16,184,0,2,0,56,0,63,0,1,16,34,0,2,0,56,0,63,0,1,16,187,0,2,0,56,0,63,0,1,16,21,1,2,0,56,0,63,0,1,16,190,0,2,0,56,0,63,0,1,16,240,7,2,0,56,0,63,0,121,16,232,11,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,1,16,232,11,2,0,56,0,63,0,1,16,107,2,2,0,56,0,63,0,1,16,193,0,2,0,56,0,63,0,1,16,196,0,2,0,56,0,63,0,1,16,246,7,2,0,56,0,63,0,1,16,199,0,2,0,56,0,63,0,121,16,28,0,2,0,56,0,63,0,1,16,88,12,2,0,56,0,63,0,1,16,202,0,2,0,56,0,63,0,1,16,205,0,2,0,56,0,63,0,1,16,179,12,2,0,56,0,63,0,1,16,208,0,2,0,56,0,63,0,1,16,20,8,2,0,56,0,63,0,1,16,14,8,2,0,56,0,63,0,1,16,246,11,2,0,56,0,63,0,1,16,172,12,2,0,56,0,63,0,1,16,211,0,2,0,56,0,63,0,1,16,214,0,2,0,56,0,63,0,121,16,189,7,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,26,8,2,0,56,0,63,0,1,16,217,0,2,0,56,0,63,0,121,16,144,7,2,0,56,0,63,0,1,16,144,7,2,0,56,0,63,0,1,16,220,0,2,0,56,0,63,0,1,16,198,7,2,0,56,0,63,0,1,16,254,8,2,0,56,0,63,0,1,16,216,7,2,0,56,0,63,0,1,16,222,7,2,0,56,0,63,0,1,16,226,0,2,0,56,0,63,0,1,16,137,12,2,0,56,0,63,0,1,16,43,0,2,0,56,0,63,0,1,16,229,0,2,0,56,0,63,0,1,16,238,0,2,0,56,0,63,0,1,16,232,0,2,0,56,0,63,0,1,16,8,8,2,0,56,0,63,0,1,16,223,0,2,0,56,0,63,0,1,16,140,8,2,0,56,0,63,0,1,16,158,12,2,0,56,0,63,0,1,16,40,0,2,0,56,0,63,0,1,16,46,0,2,0,56,0,63,0,1,16,241,0,2,0,56,0,63,0,1,16,227,17,2,0,56,0,63,0,1,16,244,0,2,0,56,0,63,0,1,16,247,0,2,0,56,0,63,0,1,16,86,8,2,0,56,0,63,0,1,16,250,0,2,0,56,0,63,0,1,16,92,8,2,0,56,0,63,0,121,16,25,0,2,0,56,0,63,0,1,16,128,8,2,0,56,0,63,0,1,16,74,8,2,0,56,0,63,0,1,16,32,12,2,0,56,0,63,0,1,16,253,0,2,0,56,0,63,0,1,16,62,8,2,0,56,0,63,0,1,16,123,12,2,0,56,0,63,0,1,16,186,12,2,0,56,0,63,0,1,16,104,8,2,0,56,0,63,0,1,16,80,8,2,0,56,0,63,0,1,16,110,8,2,0,56,0,63,0,1,16,3,1,2,0,56,0,63,0,1,16,0,1,2,0,56,0,63,0,1,16,6,1,2,0,56,0,63,0,1,16,122,8,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,134,8,2,0,56,0,63,0,1,16,67,12,2,0,56,0,63,0,1,16,164,8,2,0,56,0,63,0,1,16,146,8,2,0,56,0,63,0,1,16,49,0,2,0,56,0,63,0,1,16,12,1,2,0,56,0,63,0,1,16,152,8,2,0,56,0,63,0,1,16,18,1,2,0,56,0,63,0,1,16,182,8,2,0,56,0,63,0,1,16,24,1,2,0,56,0,63,0,1,16,7,18,2,0,56,0,63,0,1,16,36,1,2,0,56,0,63,0,1,16,27,1,2,0,56,0,63,0,1,16,30,1,2,0,56,0,63,0,1,16,46,9,2,0,56,0,63,0,1,16,33,1,2,0,56,0,63,0,1,16,188,8,2,0,56,0,63,0,1,16,176,8,2,0,56,0,63,0,1,16,194,8,2,0,56,0,63,0,1,16,55,0,2,0,56,0,63,0,1,16,52,0,2,0,56,0,63,0,1,16,251,17,2,0,56,0,63,0,1,16,39,1,2,0,56,0,63,0,1,16,42,1,2,0,56,0,63,0,1,16,200,8,2,0,56,0,63,0,1,16,252,7,2,0,56,0,63,0,1,16,54,1,2,0,56,0,63,0,1,16,45,1,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,212,8,2,0,56,0,63,0,1,16,165,12,2,0,56,0,63,0,1,16,230,8,2,0,56,0,63,0,1,16,180,7,2,0,56,0,63,0,1,16,76,9,2,0,56,0,63,0,1,16,218,8,2,0,56,0,63,0,1,16,58,0,2,0,56,0,63,0,1,16,109,12,2,0,56,0,63,0,1,16,48,1,2,0,56,0,63,0,1,16,51,1,2,0,56,0,63,0,1,16,61,0,2,0,56,0,63,0,1,16,102,12,2,0,56,0,63,0,1,16,248,8,2,0,56,0,63,0,1,16,224,8,2,0,56,0,63,0,1,16,97,0,2,0,56,0,63,0,1,16,130,12,2,0,56,0,63,0,1,16,64,0,2,0,56,0,63,0,1,16,221,12,2,0,56,0,63,0,1,16,57,1,2,0,56,0,63,0,1,16,136,9,2,0,56,0,63,0,121,16,91,0,2,0,56,0,63,0,1,16,60,1,2,0,56,0,63,0,1,16,66,1,2,0,56,0,63,0,1,16,56,8,2,0,56,0,63,0,1,16,242,8,2,0,56,0,63,0,1,16,236,8,2,0,56,0,63,0,121,16,16,0,2,0,56,0,63,0,1,16,63,1,2,0,56,0,63,0,121,16,153,7,2,0,56,0,63,0,1,16,153,7,2,0,56,0,63,0,1,16,206,8,2,0,56,0,63,0,1,16,69,1,2,0,56,0,63,0,1,16,214,12,2,0,56,0,63,0,1,16,67,0,2,0,56,0,63,0,121,16,206,17,2,0,56,0,63,0,1,16,72,1,2,0,56,0,63,0,1,16,16,9,2,0,56,0,63,0,1,16,53,12,2,0,56,0,63,0,1,16,215,17,2,0,56,0,63,0,1,16,207,12,2,0,56,0,63,0,1,16,193,12,2,0,56,0,63,0,1,16,76,0,2,0,56,0,63,0,1,16,15,1,2,0,56,0,63,0,1,16,78,1,2,0,56,0,63,0,1,16,68,8,2,0,56,0,63,0,1,16,75,1,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,70,0,2,0,56,0,63,0,121,16,67,0,2,0,56,0,63,0,1,16,81,1,2,0,56,0,63,0,1,16,84,1,2,0,56,0,63,0,1,16,87,1,2,0,56,0,63,0,1,16,90,1,2,0,56,0,63,0,1,16,93,1,2,0,56,0,63,0,1,16,96,1,2,0,56,0,63,0,1,16,99,1,2,0,56,0,63,0,1,16,102,1,2,0,56,0,63,0,121,16,37,0,2,0,56,0,63,0,1,16,37,0,2,0,56,0,63,0,1,16,105,1,2,0,56,0,63,0,1,16,108,1,2,0,56,0,63,0,1,16,111,1,2,0,56,0,63,0,1,16,114,1,2,0,56,0,63,0,1,16,117,1,2,0,56,0,63,0,1,16,79,0,2,0,56,0,63,0,121,16,210,7,2,0,56,0,63,0,1,16,28,9,2,0,56,0,63,0,1,16,116,12,2,0,56,0,63,0,1,16,34,9,2,0,56,0,63,0,1,16,120,1,2,0,56,0,63,0,1,16,135,7,2,0,56,0,63,0,1,16,82,0,2,0,56,0,63,0,1,16,46,12,2,0,56,0,63,0,1,16,126,1,2,0,56,0,63,0,1,16,235,0,2,0,56,0,63,0,1,16,129,1,2,0,56,0,63,0,1,16,132,1,2,0,56,0,63,0,1,16,151,12,2,0,56,0,63,0,1,16,135,1,2,0,56,0,63,0,1,16,147,1,2,0,56,0,63,0,1,16,138,1,2,0,56,0,63,0,1,16,64,9,2,0,56,0,63,0,1,16,73,0,2,0,56,0,63,0,1,16,162,16,2,0,56,0,63,0,1,16,144,12,2,0,56,0,63,0,1,16,144,1,2,0,56,0,63,0,121,16,47,20,2,0,56,0,63,0,1,16,47,20,2,0,56,0,63,0,1,16,141,1,2,0,56,0,63,0,1,16,52,9,2,0,56,0,63,0,1,16,58,9,2,0,56,0,63,0,1,16,82,9,2,0,56,0,63,0,1,16,153,1,2,0,56,0,63,0,1,16,85,0,2,0,56,0,63,0,1,16,123,1,2,0,56,0,63,0,1,16,150,1,2,0,56,0,63,0,1,16,156,1,2,0,56,0,63,0,1,16,159,1,2,0,56,0,63,0,1,16,162,1,2,0,56,0,63,0,1,16,81,12,2,0,56,0,63,0,1,16,94,9,2,0,56,0,63,0,1,16,88,9,2,0,56,0,63,0,1,16,165,1,2,0,56,0,63,0,1,16,100,9,2,0,56,0,63,0,1,16,10,0,2,0,56,0,63,0,1,16,10,0,2,0,56,0,63,0,1,16,106,9,2,0,56,0,63,0,121,16,10,0,2,0,56,0,63,0,1,16,171,1,2,0,56,0,63,0,1,16,168,1,2,0,56,0,63,0,1,16,158,8,2,0,56,0,63,0,1,16,174,1,2,0,56,0,63,0,1,16,253,11,2,0,56,0,63,0,1,16,25,12,2,0,56,0,63,0,1,16,200,12,2,0,56,0,63,0,121,16,198,7,2,0,56,0,63,0,1,16,124,9,2,0,56,0,63,0,1,16,1,0,2,0,56,0,63,0,1,16,177,1,2,0,56,0,63,0,1,16,74,12,2,0,56,0,63,0,1,16,173,16,2,0,56,0,63,0,1,16,170,8,2,0,56,0,63,0,1,16,180,1,2,0,56,0,63,0,121,16,239,11,2,0,56,0,63,0,1,16,183,1,2,0,56,0,63,0,1,16,186,1,2,0,56,0,63,0,1,16,88,0,2,0,56,0,63,0,1,16,239,11,2,0,56,0,63,0,1,16,91,0,2,0,56,0,63,0,121,16,1,0,2,0,56,0,63,0,1,16,94,0,2,0,56,0,63,0,1,16,189,1,2,0,56,0,63,0,1,16,192,1,2,0,56,0,63,0,1,16,195,1,2,0,56,0,63,0,1,16,198,1,2,0,56,0,63,0,1,16,201,1,2,0,56,0,63,0,1,16,204,1,2,0,56,0,63,0,1,16,207,1,2,0,56,0,63,0,1,16,210,1,2,0,56,0,63,0,1,16,213,1,2,0,56,0,63,0,1,16,216,1,2,0,56,0,63,0,1,16,219,1,2,0,56,0,63,0,1,16,222,1,2,0,56,0,63,0,1,16,225,1,2,0,56,0,63,0,1,16,228,1,2,0,56,0,63,0,1,16,231,1,2,0,56,0,63,0,1,16,234,1,2,0,56,0,63,0,1,16,237,1,2,0,56,0,63,0,1,16,240,1,2,0,56,0,63,0,1,16,243,1,2,0,56,0,63,0,1,16,246,1,2,0,56,0,63,0,1,16,249,1,2,0,56,0,63,0,1,16,252,1,2,0,56,0,63,0,1,16,255,1,2,0,56,0,63,0,1,16,2,2,2,0,56,0,63,0,1,16,5,2,2,0,56,0,63,0,1,16,8,2,2,0,56,0,63,0,1,16,11,2,2,0,56,0,63,0,121,16,4,0,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,1,16,4,0,2,0,56,0,63,0,121,16,135,7,2,0,56,0,63,0,1,16,135,7,2,0,56,0,63,0,1,16,142,9,2,0,56,0,63,0,1,16,186,7,2,0,56,0,63,0,1,16,18,12,2,0,56,0,63,0,121,16,186,7,2,0,56,0,63,0,1,16,210,7,2,0,56,0,63,0,1,16,14,2,2,0,56,0,63,0,121,16,111,16,2,0,56,0,63,0,121,16,89,19,2,0,56,0,63,0,121,16,113,19,2,0,56,0,63,0,121,16,109,9,2,0,56,0,63,0,121,16,190,19,2,0,56,0,63,0,121,16,1,19,2,0,56,0,63,0,121,16,118,17,2,0,56,0,63,0,121,16,17,19,2,0,56,0,63,0,121,16,162,19,2,0,56,0,63,0,121,16,201,7,2,0,56,0,63,0,121,16,201,7,2,0,56,0,63,0,121,16,234,17,2,0,56,0,63,0,121,16,201,15,78,1,151,9,157,9,163,9,238,12,219,7,169,9,175,9,245,12,252,12,7,12,181,9,3,13,10,13,187,16,198,16,169,15,132,16,187,9,28,16,10,18,22,18,17,13,225,7,14,12,21,12,231,7,24,13,31,13,38,13,235,11,193,9,209,16,199,9,205,9,211,9,28,12,220,16,177,15,143,16,45,13,52,13,217,9,59,13,66,13,35,12,223,9,73,13,80,13,87,13,94,13,101,13,229,9,237,7,235,9,241,9,195,7,243,7,108,13,93,10,115,13,122,13,129,13,136,13,249,7,42,12,255,7,143,13,99,10,5,8,231,16,242,16,105,10,150,13,111,10,11,8,17,8,157,13,117,10,253,16,185,15,8,17,123,10,49,12,23,8,141,7,164,13,171,13,53,8,59,8,178,13,165,10,242,11,171,10,65,8,56,12,177,10,63,12,71,8,19,17,183,10,70,12,77,8,189,10,30,17,37,16,34,18,83,8,185,13,89,8,95,8,192,13,195,10,77,12,201,10,207,10,199,13,101,8,107,8,113,8,41,17,119,8,193,15,206,13,213,13,125,8,213,10,84,12,220,13,227,13,234,13,241,13,91,12,248,13,255,13,6,14,219,10,131,8,13,14,137,8,20,14,143,8,225,10,149,8,27,14,34,14,137,15,52,17,63,17,41,14,48,14,55,14,155,8,231,10,161,8,167,8,62,14,173,8,237,10,69,14,76,14,243,10,179,8,83,14,185,8,249,10,90,14,97,14,191,8,104,14,111,14,118,14,125,14,98,12,197,8,105,12,132,14,203,8,209,8,255,10,215,8,74,17,46,16,46,18,58,18,139,14,5,11,85,17,221,8,227,8,146,14,153,14,177,7,112,12,119,12,126,12,13,0,11,11,17,11,228,11,233,8,23,11,160,14,239,8,167,14,133,12,29,11,174,14,140,12,35,11,245,8,181,14,41,11,47,11,53,11,251,8,188,14,96,17,145,15,107,17,195,14,147,12,59,11,209,15,1,9,7,9,13,9,154,12,202,14,55,16,70,18,65,11,19,9,25,9,209,14,71,11,31,9,216,14,77,11,223,14,230,14,82,18,64,16,94,18,237,14,83,11,244,14,217,15,129,17,140,17,251,14,89,11,2,15,161,12,37,9,242,17,73,16,106,18,9,15,43,9,16,15,49,9,55,9,23,15,30,15,37,15,168,12,207,7,61,9,67,9,225,15,151,17,154,16,95,11,175,12,101,11,233,15,162,17,79,9,107,11,182,12,189,12,113,11,119,11,196,12,85,9,91,9,125,11,44,15,97,9,131,11,103,9,241,15,203,12,137,11,249,11,210,12,143,11,149,11,217,12,51,15,185,11,121,9,191,11,173,17,184,17,153,15,165,16,254,17,19,16,118,18,197,11,58,15,203,11,65,15,72,15,127,9,79,15,86,15,224,12,209,11,215,11,93,15,231,12,100,15,133,9,107,15,130,18,82,16,218,17,114,15,129,15,176,16,195,17,139,9,170,170,232,1,47,0,75,0,79,0,83,0,87,0,91,0,95,0,99,0,103,0,107,0,111,0,115,0,119,0,123,0,127,0,131,0,135,0,139,0,143,0,154,0,158,0,162,0,166,0,170,0,174,0,178,0,182,0,186,0,190,0,194,0,198,0,202,0,206,0,210,0,214,0,218,0,222,0,226,0,230,0,233,0,237,0,241,0,245,0,249,0,253,0,1,1,5,1,9,1,13,1,17,1,21,1,25,1,29,1,33,1,37,1,41,1,45,1,49,1,61,1,65,1,69,1,73,1,77,1,81,1,85,1,89,1,93,1,97,1,110,8,101,1,105,1,109,1,113,1,117,1,121,1,125,1,129,1,133,1,137,1,141,1,145,1,149,1,153,1,157,1,161,1,165,1,169,1,173,1,177,1,181,1,185,1,189,1,193,1,197,1,201,1,205,1,209,1,213,1,217,1,221,1,225,1,229,1,233,1,243,1,247,1,251,1,255,1,3,2,7,2,11,2,15,2,19,2,23,2,27,2,31,2,35,2,39,2,43,2,47,2,51,2,55,2,59,2,63,2,67,2,71,2,75,2,79,2,83,2,87,2,91,2,95,2,99,2,103,2,107,2,111,2,115,2,119,2,123,2,127,2,131,2,135,2,139,2,143,2,147,2,151,2,155,2,159,2,163,2,167,2,171,2,175,2,179,2,183,2,187,2,191,2,195,2,199,2,210,2,214,2,220,2,226,2,236,2,247,2,253,2,7,3,13,3,21,3,30,3,36,3,42,3,48,3,54,3,58,3,62,3,66,3,70,3,74,3,78,3,82,3,86,3,90,3,136,6,94,3,98,3,102,3,106,3,110,3,20,8,114,3,118,3,122,3,126,3,69,5,130,3,134,3,137,3,141,3,145,3,149,3,153,3,157,3,161,3,165,3,169,3,173,3,177,3,181,3,185,3,189,3,193,3,197,3,201,3,205,3,209,3,213,3,217,3,221,3,225,3,229,3,233,3,237,3,241,3,245,3,249,3,253,3,1,4,5,4,9,4,13,4,17,4,21,4,25,4,29,4,33,4,37,4,41,4,45,4,49,4,53,4,57,4,61,4,65,4,69,4,73,4,77,4,81,4,85,4,89,4,93,4,10,5,97,4,101,4,105,4,109,4,113,4,117,4,121,4,125,4,129,4,133,4,137,4,39,10,141,4,145,4,149,4,153,4,157,4,161,4,165,4,169,4,173,4,177,4,181,4,185,4,189,4,193,4,197,4,201,4,205,4,209,4,213,4,217,4,221,4,225,4,229,4,233,4,237,4,241,4,245,4,249,4,253,4,4,5,14,5,21,5,32,5,36,5,40,5,44,5,48,5,52,5,56,5,60,5,64,5,68,5,72,5,76,5,196,11,80,5,84,5,88,5,92,5,96,5,100,5,104,5,108,5,112,5,116,5,120,5,124,5,128,5,132,5,136,5,140,5,144,5,148,5,152,5,156,5,160,5,164,5,168,5,172,5,176,5,180,5,184,5,188,5,192,5,196,5,200,5,204,5,208,5,212,5,216,5,220,5,224,5,228,5,238,5,248,5,255,5,9,6,16,6,23,6,30,6,37,6,44,6,51,6,58,6,65,6,72,6,79,6,86,6,93,6,100,6,107,6,114,6,121,6,128,6,30,11,135,6,139,6,143,6,147,6,151,6,155,6,159,6,163,6,167,6,171,6,175,6,179,6,183,6,187,6,191,6,195,6,199,6,203,6,207,6,211,6,215,6,181,11,219,6,223,6,227,6,231,6,235,6,239,6,243,6,247,6,251,6,255,6,3,7,7,7,11,7,15,7,19,7,23,7,27,7,31,7,35,7,39,7,43,7,47,7,51,7,54,7,58,7,62,7,66,7,209,21,70,7,74,7,78,7,82,7,86,7,90,7,94,7,97,7,101,7,105,7,109,7,113,7,124,7,136,7,148,7,159,7,169,7,188,7,199,7,211,7,221,7,231,7,235,7,239,7,243,7,247,7,251,7,255,7,3,8,7,8,11,8,15,8,19,8,23,8,27,8,31,8,35,8,39,8,43,8,47,8,51,8,55,8,59,8,63,8,67,8,71,8,75,8,79,8,83,8,87,8,91,8,95,8,99,8,103,8,107,8,114,8,126,8,138,8,145,8,154,8,163,8,170,8,181,8,188,8,197,8,204,8,208,8,212,8,216,8,220,8,224,8,170,170,148,20,0,80,153,20,0,80,158,20,0,80,163,20,0,80,168,20,0,80,173,20,0,80,178,20,0,80,183,20,0,80,188,20,0,80,193,20,0,80,198,20,0,80,203,20,0,80,208,20,0,80,213,20,0,80,218,20,0,80,223,20,0,80,228,20,0,80,233,20,0,80,238,20,0,80,243,20,0,80,248,20,0,80,253,20,0,80,2,21,0,80,7,21,0,80,12,21,0,80,17,21,0,80,22,21,0,80,27,21,0,80,32,21,0,80,37,21,0,80,42,21,0,80,47,21,0,80,52,21,0,80,57,21,0,80,62,21,0,80,67,21,0,80,72,21,0,80,77,21,0,80,82,21,0,80,87,21,0,80,92,21,0,80,97,21,0,80,102,21,0,80,107,21,0,80,112,21,0,80,117,21,0,80,122,21,0,80,127,21,0,80,132,21,0,80,137,21,0,80,142,21,0,80,147,21,0,80,152,21,0,80,157,21,0,80,162,21,0,80,167,21,0,80,172,21,0,80,177,21,0,80,182,21,0,80,187,21,0,80,192,21,0,80,197,21,0,80,202,21,0,80,207,21,0,80,212,21,0,80,217,21,0,80,222,21,0,80,227,21,0,80,232,21,0,80,237,21,0,80,242,21,0,80,247,21,0,80,252,21,0,80,1,22,0,80,6,22,0,80,11,22,0,80,16,22,0,80,21,22,0,80,26,22,0,80,31,22,0,80,36,22,0,80,41,22,0,80,46,22,0,80,51,22,0,80,56,22,0,80,61,22,0,80,66,22,0,80,71,22,0,80,76,22,0,80,81,22,0,80,86,22,0,80,91,22,0,80,96,22,0,80,101,22,0,80,106,22,0,80,111,22,0,80,116,22,0,80,121,22,0,80,126,22,0,80,131,22,0,80,136,22,0,80,141,22,0,80,146,22,0,80,151,22,0,80,156,22,0,80,161,22,0,80,166,22,0,80,171,22,0,80,176,22,0,80,181,22,0,80,186,22,0,80,191,22,0,80,196,22,0,80,201,22,0,80,206,22,0,80,211,22,0,80,216,22,0,80,221,22,0,80,226,22,0,80,231,22,0,80,236,22,0,80,241,22,0,80,246,22,0,80,251,22,0,80,0,23,0,80,5,23,0,80,10,23,0,80,15,23,0,80,20,23,0,80,25,23,0,80,30,23,0,80,35,23,0,80,40,23,0,80,45,23,0,80,50,23,0,80,55,23,0,80,60,23,0,80,65,23,0,80,70,23,0,80,75,23,0,80,80,23,0,80,85,23,0,80,90,23,0,80,95,23,0,80,100,23,0,80,105,23,0,80,110,23,0,80,115,23,0,80,120,23,0,80,125,23,0,80,130,23,0,80,135,23,0,80,140,23,0,80,145,23,0,80,150,23,0,80,155,23,0,80,160,23,0,80,165,23,0,80,170,23,0,80,175,23,0,80,180,23,0,80,185,23,0,80,190,23,0,80,195,23,0,80,200,23,0,80,205,23,0,80,210,23,0,80,215,23,0,80,220,23,0,80,225,23,0,80,230,23,0,80,235,23,0,80,240,23,0,80,245,23,0,80,250,23,0,80,255,23,0,80,4,24,0,80,9,24,0,80,14,24,0,80,19,24,0,80,24,24,0,80,29,24,0,80,34,24,0,80,39,24,0,80,44,24,0,80,49,24,0,80,54,24,0,80,59,24,0,80,64,24,0,80,69,24,0,80,74,24,0,80,79,24,0,80,84,24,0,80,89,24,0,80,94,24,0,80,99,24,0,80,104,24,0,80,109,24,0,80,114,24,0,80,119,24,0,80,124,24,0,80,129,24,0,80,134,24,0,80,139,24,0,80,144,24,0,80,149,24,0,80,154,24,0,80,159,24,0,80,164,24,0,80,169,24,0,80,174,24,0,80,179,24,0,80,184,24,0,80,189,24,0,80,194,24,0,80,199,24,0,80,204,24,0,80,209,24,0,80,214,24,0,80,219,24,0,80,224,24,0,80,229,24,0,80,234,24,0,80,239,24,0,80,244,24,0,80,249,24,0,80,254,24,0,80,3,25,0,80,8,25,0,80,13,25,0,80,18,25,0,80,23,25,0,80,28,25,0,80,33,25,0,80,38,25,0,80,43,25,0,80,48,25,0,80,53,25,0,80,58,25,0,80,63,25,0,80,68,25,0,80,73,25,0,80,78,25,0,80,83,25,0,80,88,25,0,80,93,25,0,80,98,25,0,80,103,25,0,80,108,25,0,80,113,25,0,80,118,25,0,80,123,25,0,80,128,25,0,80,133,25,0,80,138,25,0,80,143,25,0,80,148,25,0,80,153,25,0,80,158,25,0,80,163,25,0,80,168,25,0,80,173,25,0,80,178,25,0,80,183,25,0,80,188,25,0,80,193,25,0,80,198,25,0,80,203,25,0,80,208,25,0,80,213,25,0,80,218,25,0,80,223,25,0,80,228,25,0,80,233,25,0,80,238,25,0,80,243,25,0,80,248,25,0,80,253,25,0,80,2,26,0,80,7,26,0,80,12,26,0,80,17,26,0,80,22,26,0,80,27,26,0,80,32,26,0,80,37,26,0,80,42,26,0,80,47,26,0,80,52,26,0,80,57,26,0,80,62,26,0,80,67,26,0,80,72,26,0,80,77,26,0,80,82,26,0,80,87,26,0,80,92,26,0,80,97,26,0,80,102,26,0,80,107,26,0,80,112,26,0,80,117,26,0,80,122,26,0,80,127,26,0,80,132,26,0,80,137,26,0,80,142,26,0,80,147,26,0,80,152,26,0,80,157,26,0,80,162,26,0,80,167,26,0,80,172,26,0,80,177,26,0,80,182,26,0,80,187,26,0,80,192,26,0,80,197,26,0,80,202,26,0,80,207,26,0,80,212,26,0,80,217,26,0,80,222,26,0,80,227,26,0,80,232,26,0,80,237,26,0,80,242,26,0,80,247,26,0,80,252,26,0,80,1,27,0,80,6,27,0,80,11,27,0,80,16,27,0,80,21,27,0,80,26,27,0,80,31,27,0,80,36,27,0,80,41,27,0,80,46,27,0,80,51,27,0,80,56,27,0,80,61,27,0,80,66,27,0,80,71,27,0,80,76,27,0,80,81,27,0,80,86,27,0,80,91,27,0,80,96,27,0,80,101,27,0,80,106,27,0,80,111,27,0,80,116,27,0,80,121,27,0,80,126,27,0,80,131,27,0,80,136,27,0,80,141,27,0,80,146,27,0,80,151,27,0,80,156,27,0,80,161,27,0,80,166,27,0,80,171,27,0,80,176,27,0,80,181,27,0,80,186,27,0,80,191,27,0,80,196,27,0,80,201,27,0,80,206,27,0,80,211,27,0,80,216,27,0,80,221,27,0,80,226,27,0,80,231,27,0,80,236,27,0,80,241,27,0,80,246,27,0,80,251,27,0,80,0,28,0,80,5,28,0,80,10,28,0,80,15,28,0,80,20,28,0,80,25,28,0,80,30,28,0,80,35,28,0,80,40,28,0,80,45,28,0,80,50,28,0,80,55,28,0,80,60,28,0,80,65,28,0,80,70,28,0,80,75,28,0,80,80,28,0,80,85,28,0,80,90,28,0,80,95,28,0,80,100,28,0,80,105,28,0,80,110,28,0,80,115,28,0,80,120,28,0,80,125,28,0,80,130,28,0,80,135,28,0,80,140,28,0,80,145,28,0,80,150,28,0,80,155,28,0,80,160,28,0,80,165,28,0,80,170,28,0,80,175,28,0,80,180,28,0,80,185,28,0,80,190,28,0,80,195,28,0,80,200,28,0,80,205,28,0,80,210,28,0,80,215,28,0,80,220,28,0,80,225,28,0,80,230,28,0,80,235,28,0,80,240,28,0,80,245,28,0,80,250,28,0,80,255,28,0,80,4,29,0,80,9,29,0,80,14,29,0,80,19,29,0,80,24,29,0,80,29,29,0,80,34,29,0,80,39,29,0,80,44,29,0,80,49,29,0,80,54,29,0,80,59,29,0,80,64,29,0,80,69,29,0,80,74,29,0,80,79,29,0,80,84,29,0,80,89,29,0,80,94,29,0,80,99,29,0,80,104,29,0,80,109,29,0,80,114,29,0,80,119,29,0,80,124,29,0,80,129,29,0,80,134,29,0,80,139,29,0,80,144,29,0,80,149,29,0,80,154,29,0,80,159,29,0,80,164,29,0,80,169,29,0,80,174,29,0,80,179,29,0,80,184,29,0,80,189,29,0,80,194,29,0,80,199,29,0,80,204,29,0,80,209,29,0,80,214,29,0,80,219,29,0,80,224,29,0,80,229,29,0,80,234,29,0,80,239,29,0,80,244,29,0,80,249,29,0,80,254,29,0,80,3,30,0,80,8,30,0,80,13,30,0,80,18,30,0,80,23,30,0,80,1,0,235,8,28,30,0,80,144,0,252,8,1,9,6,9,11,9,16,9,21,9,26,9,31,9,36,9,41,9,46,9,51,9,56,9,61,9,66,9,71,9,76,9,81,9,86,9,91,9,96,9,101,9,106,9,111,9,116,9,121,9,126,9,131,9,136,9,141,9,146,9,151,9,156,9,161,9,166,9,172,9,178,9,184,9,190,9,196,9,202,9,208,9,214,9,220,9,226,9,232,9,238,9,244,9,250,9,0,10,6,10,12,10,17,10,22,10,27,10,32,10,37,10,42,10,47,10,52,10,57,10,62,10,67,10,72,10,77,10,82,10,31,2,87,10,91,10,96,10,100,10,105,10,35,2,109,10,113,10,117,10,122,10,127,10,131,10,135,10,139,10,143,10,147,10,151,10,156,10,161,10,165,10,170,10,174,10,178,10,183,10,188,10,192,10,196,10,201,10,205,10,209,10,214,10,218,10,222,10,227,10,232,10,237,10,81,4,241,10,245,10,251,10,0,11,5,11,10,11,15,11,19,11,23,11,28,11,33,11,38,11,43,11,48,11,53,11,58,11,63,11,68,11,73,11,78,11,83,11,88,11,93,11,98,11,103,11,108,11,113,11,118,11,124,11,130,11,136,11,142,11,148,11,154,11,160,11,165,11,170,11,175,11,180,11,185,11,170,170,33,30,0,80,38,30,0,80,43,30,0,80,48,30,0,80,53,30,0,80,58,30,0,80,63,30,0,80,68,30,0,80,73,30,0,80,78,30,0,80,83,30,0,80,88,30,0,80,93,30,0,80,98,30,0,80,103,30,0,80,108,30,0,80,113,30,0,80,118,30,0,80,123,30,0,80,128,30,0,80,133,30,0,80,138,30,0,80,143,30,0,80,148,30,0,80,153,30,0,80,158,30,0,80,163,30,0,80,168,30,0,80,173,30,0,80,178,30,0,80,183,30,0,80,188,30,0,80,193,30,0,80,198,30,0,80,203,30,0,80,208,30,0,80,213,30,0,80,218,30,0,80,223,30,0,80,228,30,0,80,233,30,0,80,238,30,0,80,243,30,0,80,248,30,0,80,253,30,0,80,2,31,0,80,7,31,0,80,12,31,0,80,17,31,0,80,22,31,0,80,27,31,0,80,32,31,0,80,37,31,0,80,42,31,0,80,47,31,0,80,52,31,0,80,57,31,0,80,62,31,0,80,67,31,0,80,72,31,0,80,77,31,0,80,82,31,0,80,87,31,0,80,92,31,0,80,97,31,0,80,102,31,0,80,107,31,0,80,112,31,0,80,117,31,0,80,122,31,0,80,127,31,0,80,132,31,0,80,137,31,0,80,142,31,0,80,147,31,0,80,152,31,0,80,157,31,0,80,162,31,0,80,167,31,0,80,172,31,0,80,177,31,0,80,182,31,0,80,187,31,0,80,192,31,0,80,197,31,0,80,202,31,0,80,207,31,0,80,212,31,0,80,217,31,0,80,222,31,0,80,227,31,0,80,232,31,0,80,237,31,0,80,242,31,0,80,247,31,0,80,252,31,0,80,1,32,0,80,6,32,0,80,11,32,0,80,16,32,0,80,21,32,0,80,26,32,0,80,31,32,0,80,36,32,0,80,41,32,0,80,46,32,0,80,51,32,0,80,56,32,0,80,61,32,0,80,66,32,0,80,71,32,0,80,76,32,0,80,81,32,0,80,86,32,0,80,91,32,0,80,96,32,0,80,101,32,0,80,106,32,0,80,111,32,0,80,116,32,0,80,121,32,0,80,126,32,0,80,131,32,0,80,136,32,0,80,141,32,0,80,146,32,0,80,151,32,0,80,156,32,0,80,161,32,0,80,166,32,0,80,171,32,0,80,176,32,0,80,181,32,0,80,186,32,0,80,191,32,0,80,196,32,0,80,201,32,0,80,206,32,0,80,211,32,0,80,216,32,0,80,221,32,0,80,226,32,0,80,231,32,0,80,236,32,0,80,128,2,200,11,204,11,208,11,212,11,216,11,220,11,224,11,228,11,232,11,236,11,240,11,244,11,248,11,252,11,0,12,4,12,8,12,12,12,16,12,20,12,24,12,28,12,32,12,36,12,40,12,44,12,48,12,52,12,56,12,60,12,64,12,68,12,72,12,76,12,80,12,84,12,88,12,92,12,96,12,100,12,104,12,108,12,112,12,116,12,120,12,124,12,128,12,132,12,136,12,140,12,144,12,148,12,152,12,156,12,160,12,164,12,168,12,172,12,176,12,180,12,184,12,188,12,192,12,196,12,200,12,204,12,208,12,212,12,216,12,220,12,224,12,228,12,232,12,236,12,240,12,244,12,248,12,252,12,0,13,4,13,8,13,12,13,16,13,20,13,24,13,28,13,32,13,36,13,40,13,44,13,48,13,52,13,56,13,60,13,64,13,68,13,72,13,76,13,80,13,84,13,88,13,92,13,96,13,100,13,104,13,108,13,112,13,116,13,120,13,124,13,128,13,132,13,136,13,140,13,144,13,148,13,152,13,156,13,160,13,164,13,168,13,172,13,176,13,180,13,184,13,188,13,192,13,196,13,200,13,204,13,208,13,212,13,216,13,220,13,224,13,228,13,232,13,236,13,240,13,244,13,248,13,252,13,0,14,4,14,8,14,12,14,16,14,20,14,24,14,28,14,32,14,36,14,40,14,44,14,48,14,52,14,56,14,60,14,64,14,68,14,72,14,76,14,80,14,84,14,88,14,92,14,96,14,100,14,104,14,108,14,112,14,116,14,120,14,124,14,128,14,132,14,136,14,140,14,144,14,148,14,152,14,156,14,160,14,164,14,168,14,172,14,210,9,176,14,180,14,252,9,2,10,184,14,188,14,192,14,196,14,200,14,204,14,208,14,212,14,216,14,220,14,224,14,228,14,232,14,236,14,240,14,244,14,248,14,252,14,0,15,4,15,8,15,12,15,16,15,20,15,24,15,28,15,32,15,36,15,40,15,44,15,48,15,52,15,56,15,60,15,64,15,68,15,72,15,76,15,80,15,84,15,88,15,92,15,96,15,100,15,104,15,108,15,112,15,116,15,120,15,124,15,128,15,132,15,136,15,140,15,144,15,148,15,152,15,156,15,160,15,164,15,168,15,172,15,176,15,180,15,184,15,188,15,192,15,196,15,200,15,204,15,208,15,212,15,216,15,220,15,224,15,228,15,232,15,236,15,240,15,244,15,248,15,252,15,0,16,4,16,8,16,12,16,16,16,20,16,24,16,28,16,32,16,36,16,40,16,44,16,48,16,52,16,56,16,60,16,64,16,68,16,72,16,76,16,80,16,84,16,88,16,92,16,96,16,100,16,104,16,108,16,112,16,116,16,120,16,124,16,128,16,132,16,136,16,140,16,144,16,148,16,152,16,156,16,160,16,164,16,125,19,168,16,172,16,176,16,180,16,184,16,188,16,192,16,196,16,200,16,204,16,208,16,212,16,216,16,220,16,224,16,228,16,232,16,236,16,240,16,244,16,248,16,252,16,0,17,4,17,8,17,12,17,16,17,20,17,24,17,28,17,32,17,36,17,40,17,43,17,47,17,51,17,55,17,59,17,63,17,67,17,71,17,75,17,79,17,83,17,87,17,91,17,95,17,99,17,103,17,107,17,111,17,115,17,119,17,214,20,122,17,126,17,130,17,134,17,138,17,142,17,8,21,146,17,150,17,154,17,158,17,162,17,166,17,170,17,174,17,177,17,181,17,185,17,189,17,193,17,197,17,201,17,205,17,209,17,213,17,217,17,221,17,224,17,228,17,232,17,236,17,239,17,243,17,247,17,251,17,255,17,3,18,7,18,11,18,15,18,19,18,23,18,27,18,31,18,35,18,39,18,43,18,47,18,51,18,55,18,59,18,63,18,67,18,71,18,75,18,79,18,83,18,86,18,90,18,94,18,98,18,102,18,106,18,110,18,114,18,118,18,122,18,126,18,130,18,134,18,138,18,142,18,145,18,149,18,153,18,157,18,161,18,165,18,169,18,173,18,177,18,181,18,185,18,189,18,193,18,197,18,201,18,205,18,209,18,213,18,217,18,221,18,225,18,229,18,233,18,237,18,241,18,245,18,249,18,253,18,194,20,1,19,5,19,9,19,13,19,17,19,21,19,25,19,29,19,33,19,37,19,41,19,45,19,49,19,53,19,57,19,61,19,65,19,69,19,73,19,77,19,81,19,84,19,88,19,92,19,96,19,100,19,28,18,104,19,173,16,108,19,112,19,116,19,120,19,124,19,128,19,131,19,135,19,139,19,143,19,147,19,151,19,155,19,159,19,163,19,167,19,171,19,175,19,178,19,182,19,185,19,189,19,193,19,197,19,201,19,205,19,209,19,213,19,217,19,220,19,224,19,228,19,232,19,236,19,240,19,244,19,248,19,251,19,255,19,3,20,7,20,11,20,15,20,19,20,23,20,27,20,31,20,35,20,39,20,43,20,47,20,51,20,55,20,59,20,63,20,67,20,71,20,75,20,78,20,82,20,86,20,90,20,94,20,98,20,102,20,106,20,110,20,114,20,118,20,122,20,126,20,130,20,134,20,138,20,142,20,146,20,150,20,154,20,72,20,158,20,162,20,166,20,170,20,174,20,178,20,182,20,186,20,189,20,193,20,197,20,201,20,205,20,209,20,213,20,217,20,220,20,224,20,228,20,232,20,236,20,240,20,243,20,247,20,251,20,255,20,3,21,7,21,11,21,15,21,19,21,23,21,27,21,31,21,35,21,39,21,43,21,47,21,51,21,55,21,59,21,63,21,67,21,71,21,75,21,79,21,83,21,87,21,91,21,95,21,99,21,102,21,106,21,110,21,113,21,117,21,121,21,125,21,129,21,132,21,136,21,170,170,241,32,0,80,246,32,0,80,251,32,0,80,0,33,0,80,5,33,0,80,10,33,0,80,15,33,0,80,20,33,0,80,25,33,0,80,30,33,0,80,35,33,0,80,40,33,0,80,45,33,0,80,50,33,0,80,55,33,0,80,60,33,0,80,65,33,0,80,70,33,0,80,75,33,0,80,80,33,0,80,85,33,0,80,90,33,0,80,95,33,0,80,100,33,0,80,105,33,0,80,110,33,0,80,115,33,0,80,120,33,0,80,125,33,0,80,130,33,0,80,135,33,0,80,140,33,0,80,145,33,0,80,150,33,0,80,155,33,0,80,160,33,0,80,165,33,0,80,170,33,0,80,175,33,0,80,180,33,0,80,185,33,0,80,190,33,0,80,195,33,0,80,200,33,0,80,205,33,0,80,210,33,0,80,215,33,0,80,220,33,0,80,225,33,0,80,230,33,0,80,235,33,0,80,240,33,0,80,245,33,0,80,250,33,0,80,255,33,0,80,4,34,0,80,9,34,0,80,14,34,0,80,19,34,0,80,24,34,0,80,29,34,0,80,34,34,0,80,39,34,0,80,44,34,0,80,49,34,0,80,54,34,0,80,59,34,0,80,64,34,0,80,69,34,0,80,74,34,0,80,79,34,0,80,84,34,0,80,89,34,0,80,94,34,0,80,99,34,0,80,104,34,0,80,109,34,0,80,114,34,0,80,119,34,0,80,124,34,0,80,129,34,0,80,134,34,0,80,139,34,0,80,144,34,0,80,149,34,0,80,154,34,0,80,159,34,0,80,164,34,0,80,169,34,0,80,174,34,0,80,179,34,0,80,184,34,0,80,189,34,0,80,194,34,0,80,199,34,0,80,204,34,0,80,209,34,0,80,214,34,0,80,219,34,0,80,224,34,0,80,229,34,0,80,234,34,0,80,239,34,0,80,244,34,0,80,249,34,0,80,254,34,0,80,3,35,0,80,8,35,0,80,13,35,0,80,18,35,0,80,23,35,0,80,28,35,0,80,33,35,0,80,38,35,0,80,43,35,0,80,48,35,0,80,53,35,0,80,58,35,0,80,63,35,0,80,68,35,0,80,73,35,0,80,78,35,0,80,83,35,0,80,88,35,0,80,93,35,0,80,98,35,0,80,103,35,0,80,108,35,0,80,113,35,0,80,118,35,0,80,123,35,0,80,128,35,0,80,133,35,0,80,138,35,0,80,143,35,0,80,148,35,0,80,153,35,0,80,158,35,0,80,163,35,0,80,168,35,0,80,173,35,0,80,178,35,0,80,183,35,0,80,188,35,0,80,193,35,0,80,198,35,0,80,203,35,0,80,208,35,0,80,213,35,0,80,218,35,0,80,223,35,0,80,228,35,0,80,233,35,0,80,238,35,0,80,243,35,0,80,248,35,0,80,253,35,0,80,2,36,0,80,7,36,0,80,12,36,0,80,17,36,0,80,22,36,0,80,27,36,0,80,32,36,0,80,37,36,0,80,42,36,0,80,47,36,0,80,52,36,0,80,57,36,0,80,62,36,0,80,67,36,0,80,72,36,0,80,77,36,0,80,82,36,0,80,87,36,0,80,92,36,0,80,97,36,0,80,102,36,0,80,107,36,0,80,112,36,0,80,117,36,0,80,122,36,0,80,127,36,0,80,132,36,0,80,137,36,0,80,142,36,0,80,147,36,0,80,152,36,0,80,157,36,0,80,162,36,0,80,167,36,0,80,172,36,0,80,177,36,0,80,182,36,0,80,187,36,0,80,192,36,0,80,197,36,0,80,202,36,0,80,207,36,0,80,212,36,0,80,217,36,0,80,222,36,0,80,227,36,0,80,232,36,0,80,237,36,0,80,242,36,0,80,247,36,0,80,252,36,0,80,1,37,0,80,6,37,0,80,11,37,0,80,16,37,0,80,21,37,0,80,26,37,0,80,31,37,0,80,36,37,0,80,41,37,0,80,46,37,0,80,51,37,0,80,56,37,0,80,61,37,0,80,66,37,0,80,71,37,0,80,76,37,0,80,81,37,0,80,86,37,0,80,91,37,0,80,96,37,0,80,101,37,0,80,106,37,0,80,111,37,0,80,116,37,0,80,121,37,0,80,126,37,0,80,131,37,0,80,136,37,0,80,141,37,0,80,146,37,0,80,151,37,0,80,156,37,0,80,161,37,0,80,166,37,0,80,171,37,0,80,176,37,0,80,181,37,0,80,186,37,0,80,191,37,0,80,196,37,0,80,201,37,0,80,206,37,0,80,211,37,0,80,216,37,0,80,221,37,0,80,226,37,0,80,231,37,0,80,236,37,0,80,241,37,0,80,246,37,0,80,251,37,0,80,0,38,0,80,5,38,0,80,10,38,0,80,15,38,0,80,20,38,0,80,25,38,0,80,30,38,0,80,35,38,0,80,40,38,0,80,45,38,0,80,50,38,0,80,55,38,0,80,60,38,0,80,65,38,0,80,70,38,0,80,75,38,0,80,80,38,0,80,85,38,0,80,90,38,0,80,95,38,0,80,100,38,0,80,105,38,0,80,110,38,0,80,115,38,0,80,120,38,0,80,125,38,0,80,130,38,0,80,135,38,0,80,140,38,0,80,145,38,0,80,150,38,0,80,155,38,0,80,160,38,0,80,165,38,0,80,170,38,0,80,175,38,0,80,180,38,0,80,185,38,0,80,190,38,0,80,195,38,0,80,200,38,0,80,205,38,0,80,210,38,0,80,215,38,0,80,220,38,0,80,225,38,0,80,230,38,0,80,235,38,0,80,240,38,0,80,245,38,0,80,250,38,0,80,255,38,0,80,4,39,0,80,9,39,0,80,14,39,0,80,19,39,0,80,24,39,0,80,29,39,0,80,34,39,0,80,39,39,0,80,44,39,0,80,49,39,0,80,54,39,0,80,59,39,0,80,64,39,0,80,69,39,0,80,74,39,0,80,79,39,0,80,84,39,0,80,89,39,0,80,94,39,0,80,99,39,0,80,104,39,0,80,109,39,0,80,114,39,0,80,119,39,0,80,124,39,0,80,129,39,0,80,134,39,0,80,139,39,0,80,144,39,0,80,149,39,0,80,154,39,0,80,159,39,0,80,164,39,0,80,169,39,0,80,174,39,0,80,179,39,0,80,184,39,0,80,189,39,0,80,194,39,0,80,199,39,0,80,204,39,0,80,209,39,0,80,214,39,0,80,219,39,0,80,224,39,0,80,229,39,0,80,234,39,0,80,239,39,0,80,244,39,0,80,249,39,0,80,254,39,0,80,3,40,0,80,8,40,0,80,13,40,0,80,18,40,0,80,23,40,0,80,28,40,0,80,33,40,0,80,38,40,0,80,43,40,0,80,48,40,0,80,53,40,0,80,58,40,0,80,63,40,0,80,68,40,0,80,73,40,0,80,78,40,0,80,83,40,0,80,88,40,0,80,93,40,0,80,98,40,0,80,103,40,0,80,108,40,0,80,113,40,0,80,118,40,0,80,123,40,0,80,128,40,0,80,133,40,0,80,138,40,0,80,143,40,0,80,148,40,0,80,153,40,0,80,158,40,0,80,163,40,0,80,168,40,0,80,173,40,0,80,178,40,0,80,183,40,0,80,188,40,0,80,193,40,0,80,198,40,0,80,203,40,0,80,208,40,0,80,213,40,0,80,218,40,0,80,223,40,0,80,228,40,0,80,233,40,0,80,238,40,0,80,243,40,0,80,248,40,0,80,253,40,0,80,2,41,0,80,7,41,0,80,12,41,0,80,17,41,0,80,22,41,0,80,27,41,0,80,32,41,0,80,37,41,0,80,42,41,0,80,47,41,0,80,52,41,0,80,57,41,0,80,62,41,0,80,67,41,0,80,72,41,0,80,77,41,0,80,82,41,0,80,87,41,0,80,92,41,0,80,97,41,0,80,102,41,0,80,107,41,0,80,112,41,0,80,117,41,0,80,122,41,0,80,127,41,0,80,132,41,0,80,137,41,0,80,142,41,0,80,147,41,0,80,152,41,0,80,157,41,0,80,162,41,0,80,167,41,0,80,172,41,0,80,177,41,0,80,182,41,0,80,187,41,0,80,192,41,0,80,197,41,0,80,202,41,0,80,207,41,0,80,212,41,0,80,217,41,0,80,222,41,0,80,227,41,0,80,232,41,0,80,237,41,0,80,242,41,0,80,247,41,0,80,252,41,0,80,1,42,0,80,6,42,0,80,11,42,0,80,16,42,0,80,21,42,0,80,26,42,0,80,31,42,0,80,36,42,0,80,41,42,0,80,46,42,0,80,51,42,0,80,56,42,0,80,61,42,0,80,66,42,0,80,71,42,0,80,76,42,0,80,81,42,0,80,86,42,0,80,91,42,0,80,96,42,0,80,101,42,0,80,106,42,0,80,111,42,0,80,116,42,0,80,121,42,0,80,126,42,0,80,131,42,0,80,136,42,0,80,141,42,0,80,146,42,0,80,151,42,0,80,156,42,0,80,161,42,0,80,166,42,0,80,171,42,0,80,176,42,0,80,181,42,0,80,186,42,0,80,191,42,0,80,196,42,0,80,201,42,0,80,206,42,0,80,211,42,0,80,216,42,0,80,221,42,0,80,226,42,0,80,231,42,0,80,236,42,0,80,241,42,0,80,246,42,0,80,251,42,0,80,0,43,0,80,5,43,0,80,10,43,0,80,15,43,0,80,20,43,0,80,25,43,0,80,30,43,0,80,35,43,0,80,40,43,0,80,45,43,0,80,50,43,0,80,55,43,0,80,60,43,0,80,65,43,0,80,70,43,0,80,75,43,0,80,80,43,0,80,85,43,0,80,90,43,0,80,95,43,0,80,100,43,0,80,105,43,0,80,110,43,0,80,115,43,0,80,120,43,0,80,125,43,0,80,130,43,0,80,135,43,0,80,140,43,0,80,145,43,0,80,150,43,0,80,155,43,0,80,160,43,0,80,165,43,0,80,170,43,0,80,175,43,0,80,180,43,0,80,185,43,0,80,190,43,0,80,195,43,0,80,200,43,0,80,205,43,0,80,210,43,0,80,215,43,0,80,220,43,0,80,225,43,0,80,230,43,0,80,235,43,0,80,240,43,0,80,245,43,0,80,250,43,0,80,255,43,0,80,4,44,0,80,9,44,0,80,14,44,0,80,19,44,0,80,24,44,0,80,29,44,0,80,34,44,0,80,39,44,0,80,44,44,0,80,49,44,0,80,54,44,0,80,59,44,0,80,64,44,0,80,69,44,0,80,74,44,0,80,79,44,0,80,84,44,0,80,89,44,0,80,94,44,0,80,99,44,0,80,104,44,0,80,109,44,0,80,114,44,0,80,119,44,0,80,124,44,0,80,129,44,0,80,134,44,0,80,139,44,0,80,144,44,0,80,149,44,0,80,154,44,0,80,159,44,0,80,164,44,0,80,169,44,0,80,174,44,0,80,179,44,0,80,184,44,0,80,189,44,0,80,194,44,0,80,199,44,0,80,204,44,0,80,209,44,0,80,214,44,0,80,219,44,0,80,224,44,0,80,229,44,0,80,234,44,0,80,239,44,0,80,244,44,0,80,249,44,0,80,254,44,0,80,3,45,0,80,8,45,0,80,13,45,0,80,18,45,0,80,23,45,0,80,28,45,0,80,33,45,0,80,38,45,0,80,43,45,0,80,48,45,0,80,53,45,0,80,58,45,0,80,63,45,0,80,68,45,0,80,73,45,0,80,78,45,0,80,83,45,0,80,88,45,0,80,93,45,0,80,98,45,0,80,103,45,0,80,108,45,0,80,9,0,145,21,153,21,177,21,202,21,213,21,237,21,3,22,20,22,31,22,113,45,0,80,118,45,0,80,123,45,0,80,128,45,0,80,133,45,0,80,138,45,0,80,143,45,0,80,148,45,0,80,153,45,0,80,2,0,59,22,71,22,170,170,158,45,0,80,163,45,0,80,2,0,181,7,90,22,170,170,168,45,0,80,173,45,0,80,7,0,38,0,228,8,240,8,190,11,140,21,53,22,82,22,30,29,0,32,251,31,0,32,253,31,0,32,214,32,0,32,151,36,0,32,165,36,0,32,169,36,0,32,2,0,32,0,99,22,170,170,173,36,0,32,178,45,0,144,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,218,5,0,32,7,0,0,0,147,0,0,0,220,5,0,0,220,5,0,0,88,0,0,0,1,0,0,0,157,3,0,0,110,117,109,98,101,114,105,110,103,83,121,115,116,101,109,115,0,97,100,108,109,0,97,108,103,111,114,105,116,104,109,105,99,0,100,101,115,99,0,114,97,100,105,120,0,97,104,111,109,0,97,114,97,98,0,97,114,97,98,101,120,116,0,97,114,109,110,0,97,114,109,110,108,111,119,0,98,97,108,105,0,98,101,110,103,0,98,104,107,115,0,98,114,97,104,0,99,97,107,109,0,99,104,97,109,0,99,121,114,108,0,100,101,118,97,0,100,105,97,107,0,101,116,104,105,0,102,117,108,108,119,105,100,101,0,103,101,111,114,0,103,111,110,103,0,103,111,110,109,0,103,114,101,107,0,103,114,101,107,108,111,119,0,103,117,106,114,0,103,117,114,117,0,104,97,110,105,100,97,121,115,0,104,97,110,105,100,101,99,0,104,97,110,115,0,104,97,110,115,102,105,110,0,104,97,110,116,0,104,97,110,116,102,105,110,0,104,101,98,114,0,104,109,110,103,0,104,109,110,112,0,106,97,118,97,0,106,112,97,110,0,106,112,97,110,102,105,110,0,106,112,97,110,121,101,97,114,0,107,97,108,105,0,107,97,119,105,0,107,104,109,114,0,107,110,100,97,0,108,97,110,97,0,108,97,110,97,116,104,97,109,0,108,97,111,111,0,108,97,116,110,0,108,101,112,99,0,108,105,109,98,0,109,97,116,104,98,111,108,100,0,109,97,116,104,100,98,108,0,109,97,116,104,109,111,110,111,0,109,97,116,104,115,97,110,98,0,109,97,116,104,115,97,110,115,0,109,108,121,109,0,109,111,100,105,0,109,111,110,103,0,109,114,111,111,0,109,116,101,105,0,109,121,109,114,0,109,121,109,114,115,104,97,110,0,109,121,109,114,116,108,110,103,0,110,97,103,109,0,110,101,119,97,0,110,107,111,111,0,111,108,99,107,0,111,114,121,97,0,111,115,109,97,0,114,111,104,103,0,114,111,109,97,110,0,114,111,109,97,110,108,111,119,0,115,97,117,114,0,115,101,103,109,101,110,116,0,115,104,114,100,0,115,105,110,100,0,115,105,110,104,0,115,111,114,97,0,115,117,110,100,0,116,97,107,114,0,116,97,108,117,0,116,97,109,108,0,116,97,109,108,100,101,99,0,116,101,108,117,0,116,104,97,105,0,116,105,98,116,0,116,105,114,104,0,116,110,115,97,0,118,97,105,105,0,119,97,114,97,0,119,99,104,111,0,170,0,0,37,0,116,0,97,0,109,0,105,0,108,0,0,0,37,0,104,0,101,0,98,0,114,0,101,0,119,0,0,0,37,0,101,0,116,0,104,0,105,0,111,0,112,0,105,0,99,0,0,0,37,0,103,0,101,0,111,0,114,0,103,0,105,0,97,0,110,0,0,0,48,0,49,0,50,0,51,0,52,0,53,0,54,0,55,0,56,0,57,0,0,0,96,6,97,6,98,6,99,6,100,6,101,6,102,6,103,6,104,6,105,6,0,0,240,6,241,6,242,6,243,6,244,6,245,6,246,6,247,6,248,6,249,6,0,0,192,7,193,7,194,7,195,7,196,7,197,7,198,7,199,7,200,7,201,7,0,0,102,9,103,9,104,9,105,9,106,9,107,9,108,9,109,9,110,9,111,9,0,0,230,9,231,9,232,9,233,9,234,9,235,9,236,9,237,9,238,9,239,9,0,0,102,10,103,10,104,10,105,10,106,10,107,10,108,10,109,10,110,10,111,10,0,0,230,10,231,10,232,10,233,10,234,10,235,10,236,10,237,10,238,10,239,10,0,0,102,11,103,11,104,11,105,11,106,11,107,11,108,11,109,11,110,11,111,11,0,0,230,11,231,11,232,11,233,11,234,11,235,11,236,11,237,11,238,11,239,11,0,0,102,12,103,12,104,12,105,12,106,12,107,12,108,12,109,12,110,12,111,12,0,0,230,12,231,12,232,12,233,12,234,12,235,12,236,12,237,12,238,12,239,12,0,0,102,13,103,13,104,13,105,13,106,13,107,13,108,13,109,13,110,13,111,13,0,0,230,13,231,13,232,13,233,13,234,13,235,13,236,13,237,13,238,13,239,13,0,0,80,14,81,14,82,14,83,14,84,14,85,14,86,14,87,14,88,14,89,14,0,0,208,14,209,14,210,14,211,14,212,14,213,14,214,14,215,14,216,14,217,14,0,0,32,15,33,15,34,15,35,15,36,15,37,15,38,15,39,15,40,15,41,15,0,0,64,16,65,16,66,16,67,16,68,16,69,16,70,16,71,16,72,16,73,16,0,0,144,16,145,16,146,16,147,16,148,16,149,16,150,16,151,16,152,16,153,16,0,0,224,23,225,23,226,23,227,23,228,23,229,23,230,23,231,23,232,23,233,23,0,0,16,24,17,24,18,24,19,24,20,24,21,24,22,24,23,24,24,24,25,24,0,0,70,25,71,25,72,25,73,25,74,25,75,25,76,25,77,25,78,25,79,25,0,0,208,25,209,25,210,25,211,25,212,25,213,25,214,25,215,25,216,25,217,25,0,0,128,26,129,26,130,26,131,26,132,26,133,26,134,26,135,26,136,26,137,26,0,0,144,26,145,26,146,26,147,26,148,26,149,26,150,26,151,26,152,26,153,26,0,0,80,27,81,27,82,27,83,27,84,27,85,27,86,27,87,27,88,27,89,27,0,0,176,27,177,27,178,27,179,27,180,27,181,27,182,27,183,27,184,27,185,27,0,0,64,28,65,28,66,28,67,28,68,28,69,28,70,28,71,28,72,28,73,28,0,0,80,28,81,28,82,28,83,28,84,28,85,28,86,28,87,28,88,28,89,28,0,0,7,48,0,78,140,78,9,78,219,86,148,78,109,81,3,78,107,81,93,78,0,0,32,166,33,166,34,166,35,166,36,166,37,166,38,166,39,166,40,166,41,166,0,0,208,168,209,168,210,168,211,168,212,168,213,168,214,168,215,168,216,168,217,168,0,0,0,169,1,169,2,169,3,169,4,169,5,169,6,169,7,169,8,169,9,169,0,0,208,169,209,169,210,169,211,169,212,169,213,169,214,169,215,169,216,169,217,169,0,0,240,169,241,169,242,169,243,169,244,169,245,169,246,169,247,169,248,169,249,169,0,0,80,170,81,170,82,170,83,170,84,170,85,170,86,170,87,170,88,170,89,170,0,0,240,171,241,171,242,171,243,171,244,171,245,171,246,171,247,171,248,171,249,171,0,0,16,255,17,255,18,255,19,255,20,255,21,255,22,255,23,255,24,255,25,255,0,0,37,0,103,0,114,0,101,0,101,0,107,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,37,0,103,0,114,0,101,0,101,0,107,0,45,0,117,0,112,0,112,0,101,0,114,0,0,0,37,0,114,0,111,0,109,0,97,0,110,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,37,0,114,0,111,0,109,0,97,0,110,0,45,0,117,0,112,0,112,0,101,0,114,0,0,0,37,0,97,0,114,0,109,0,101,0,110,0,105,0,97,0,110,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,37,0,97,0,114,0,109,0,101,0,110,0,105,0,97,0,110,0,45,0,117,0,112,0,112,0,101,0,114,0,0,0,37,0,99,0,121,0,114,0,105,0,108,0,108,0,105,0,99,0,45,0,108,0,111,0,119,0,101,0,114,0,0,0,1,216,160,220,1,216,161,220,1,216,162,220,1,216,163,220,1,216,164,220,1,216,165,220,1,216,166,220,1,216,167,220,1,216,168,220,1,216,169,220,0,0,3,216,48,221,3,216,49,221,3,216,50,221,3,216,51,221,3,216,52,221,3,216,53,221,3,216,54,221,3,216,55,221,3,216,56,221,3,216,57,221,0,0,4,216,102,220,4,216,103,220,4,216,104,220,4,216,105,220,4,216,106,220,4,216,107,220,4,216,108,220,4,216,109,220,4,216,110,220,4,216,111,220,0,0,4,216,240,220,4,216,241,220,4,216,242,220,4,216,243,220,4,216,244,220,4,216,245,220,4,216,246,220,4,216,247,220,4,216,248,220,4,216,249,220,0,0,4,216,54,221,4,216,55,221,4,216,56,221,4,216,57,221,4,216,58,221,4,216,59,221,4,216,60,221,4,216,61,221,4,216,62,221,4,216,63,221,0,0,4,216,208,221,4,216,209,221,4,216,210,221,4,216,211,221,4,216,212,221,4,216,213,221,4,216,214,221,4,216,215,221,4,216,216,221,4,216,217,221,0,0,4,216,240,222,4,216,241,222,4,216,242,222,4,216,243,222,4,216,244,222,4,216,245,222,4,216,246,222,4,216,247,222,4,216,248,222,4,216,249,222,0,0,5,216,80,220,5,216,81,220,5,216,82,220,5,216,83,220,5,216,84,220,5,216,85,220,5,216,86,220,5,216,87,220,5,216,88,220,5,216,89,220,0,0,5,216,208,220,5,216,209,220,5,216,210,220,5,216,211,220,5,216,212,220,5,216,213,220,5,216,214,220,5,216,215,220,5,216,216,220,5,216,217,220,0,0,5,216,80,222,5,216,81,222,5,216,82,222,5,216,83,222,5,216,84,222,5,216,85,222,5,216,86,222,5,216,87,222,5,216,88,222,5,216,89,222,0,0,5,216,192,222,5,216,193,222,5,216,194,222,5,216,195,222,5,216,196,222,5,216,197,222,5,216,198,222,5,216,199,222,5,216,200,222,5,216,201,222,0,0,5,216,48,223,5,216,49,223,5,216,50,223,5,216,51,223,5,216,52,223,5,216,53,223,5,216,54,223,5,216,55,223,5,216,56,223,5,216,57,223,0,0,6,216,224,220,6,216,225,220,6,216,226,220,6,216,227,220,6,216,228,220,6,216,229,220,6,216,230,220,6,216,231,220,6,216,232,220,6,216,233,220,0,0,6,216,80,221,6,216,81,221,6,216,82,221,6,216,83,221,6,216,84,221,6,216,85,221,6,216,86,221,6,216,87,221,6,216,88,221,6,216,89,221,0,0,7,216,80,220,7,216,81,220,7,216,82,220,7,216,83,220,7,216,84,220,7,216,85,220,7,216,86,220,7,216,87,220,7,216,88,220,7,216,89,220,0,0,7,216,80,221,7,216,81,221,7,216,82,221,7,216,83,221,7,216,84,221,7,216,85,221,7,216,86,221,7,216,87,221,7,216,88,221,7,216,89,221,0,0,7,216,160,221,7,216,161,221,7,216,162,221,7,216,163,221,7,216,164,221,7,216,165,221,7,216,166,221,7,216,167,221,7,216,168,221,7,216,169,221,0,0,7,216,80,223,7,216,81,223,7,216,82,223,7,216,83,223,7,216,84,223,7,216,85,223,7,216,86,223,7,216,87,223,7,216,88,223,7,216,89,223,0,0,26,216,96,222,26,216,97,222,26,216,98,222,26,216,99,222,26,216,100,222,26,216,101,222,26,216,102,222,26,216,103,222,26,216,104,222,26,216,105,222,0,0,26,216,192,222,26,216,193,222,26,216,194,222,26,216,195,222,26,216,196,222,26,216,197,222,26,216,198,222,26,216,199,222,26,216,200,222,26,216,201,222,0,0,26,216,80,223,26,216,81,223,26,216,82,223,26,216,83,223,26,216,84,223,26,216,85,223,26,216,86,223,26,216,87,223,26,216,88,223,26,216,89,223,0,0,53,216,206,223,53,216,207,223,53,216,208,223,53,216,209,223,53,216,210,223,53,216,211,223,53,216,212,223,53,216,213,223,53,216,214,223,53,216,215,223,0,0,53,216,216,223,53,216,217,223,53,216,218,223,53,216,219,223,53,216,220,223,53,216,221,223,53,216,222,223,53,216,223,223,53,216,224,223,53,216,225,223,0,0,53,216,226,223,53,216,227,223,53,216,228,223,53,216,229,223,53,216,230,223,53,216,231,223,53,216,232,223,53,216,233,223,53,216,234,223,53,216,235,223,0,0,53,216,236,223,53,216,237,223,53,216,238,223,53,216,239,223,53,216,240,223,53,216,241,223,53,216,242,223,53,216,243,223,53,216,244,223,53,216,245,223,0,0,53,216,246,223,53,216,247,223,53,216,248,223,53,216,249,223,53,216,250,223,53,216,251,223,53,216,252,223,53,216,253,223,53,216,254,223,53,216,255,223,0,0,56,216,64,221,56,216,65,221,56,216,66,221,56,216,67,221,56,216,68,221,56,216,69,221,56,216,70,221,56,216,71,221,56,216,72,221,56,216,73,221,0,0,56,216,240,222,56,216,241,222,56,216,242,222,56,216,243,222,56,216,244,222,56,216,245,222,56,216,246,222,56,216,247,222,56,216,248,222,56,216,249,222,0,0,57,216,240,220,57,216,241,220,57,216,242,220,57,216,243,220,57,216,244,220,57,216,245,220,57,216,246,220,57,216,247,220,57,216,248,220,57,216,249,220,0,0,58,216,80,221,58,216,81,221,58,216,82,221,58,216,83,221,58,216,84,221,58,216,85,221,58,216,86,221,58,216,87,221,58,216,88,221,58,216,89,221,0,0,62,216,240,223,62,216,241,223,62,216,242,223,62,216,243,223,62,216,244,223,62,216,245,223,62,216,246,223,62,216,247,223,62,216,248,223,62,216,249,223,0,0,106,0,97,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,0,0,122,0,104,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,0,0,41,220,122,0,104,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,110,0,117,0,109,0,98,0,101,0,114,0,105,0,110,0,103,0,45,0,100,0,97,0,121,0,115,0,0,0,45,220,106,0,97,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,45,0,102,0,105,0,110,0,97,0,110,0,99,0,105,0,97,0,108,0,0,0,45,220,122,0,104,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,45,0,102,0,105,0,110,0,97,0,110,0,99,0,105,0,97,0,108,0,0,0,46,220,106,0,97,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,110,0,117,0,109,0,98,0,101,0,114,0,105,0,110,0,103,0,45,0,121,0,101,0,97,0,114,0,45,0,108,0,97,0,116,0,110,0,0,0,50,220,122,0,104,0,95,0,72,0,97,0,110,0,116,0,47,0,83,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,82,0,117,0,108,0,101,0,115,0,47,0,37,0,115,0,112,0,101,0,108,0,108,0,111,0,117,0,116,0,45,0,99,0,97,0,114,0,100,0,105,0,110,0,97,0,108,0,45,0,102,0,105,0,110,0,97,0,110,0,99,0,105,0,97,0,108,0,0,0,170,170,3,0,54,0,66,0,71,0,0,0,0,112,139,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,17,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,47,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,58,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,10,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,250,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,55,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,91,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,80,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,84,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,126,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,165,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,26,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,80,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,59,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,16,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,187,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,26,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,122,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,101,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,211,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,198,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,113,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,102,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,38,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,99,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,217,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,128,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,253,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,223,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,8,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,206,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,76,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,143,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,181,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,81,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,175,5,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,132,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,143,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,245,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,157,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,33,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,44,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,201,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,36,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,77,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,11,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,227,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,248,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,55,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,34,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,13,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,168,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,231,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,0,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,164,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,176,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,223,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,234,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,154,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,118,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,189,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,69,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,88,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,124,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,42,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,63,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,237,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,224,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,121,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,160,4,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,147,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,168,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,179,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,105,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,66,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,252,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,22,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,1,0,0,112,1,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,135,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,146,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,190,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,212,0,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,210,2,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,185,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,110,1,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,38,3,0,96,10,0,0,112,3,0,54,0,66,0,71,0,0,0,0,112,97,4,0,96,10,0,0,112,88,0,49,0,77,0,82,0,87,0,95,0,100,0,108,0,113,0,118,0,123,0,128,0,133,0,138,0,143,0,148,0,153,0,158,0,167,0,172,0,177,0,182,0,187,0,195,0,200,0,205,0,214,0,222,0,227,0,235,0,240,0,248,0,253,0,2,1,7,1,12,1,17,1,25,1,34,1,39,1,44,1,49,1,54,1,59,1,68,1,73,1,78,1,83,1,88,1,97,1,105,1,114,1,123,1,132,1,137,1,142,1,147,1,152,1,157,1,162,1,171,1,180,1,185,1,190,1,195,1,200,1,205,1,210,1,215,1,221,1,230,1,235,1,243,1,248,1,253,1,2,2,7,2,12,2,17,2,22,2,27,2,35,2,40,2,45,2,50,2,55,2,60,2,65,2,70,2,170,170,157,3,0,32,162,3,0,32,167,3,0,32,172,3,0,32,177,3,0,32,182,3,0,32,187,3,0,32,192,3,0,32,197,3,0,32,202,3,0,32,207,3,0,32,212,3,0,32,217,3,0,32,222,3,0,32,227,3,0,32,232,3,0,32,237,3,0,32,242,3,0,32,247,3,0,32,252,3,0,32,1,4,0,32,6,4,0,32,11,4,0,32,16,4,0,32,21,4,0,32,26,4,0,32,31,4,0,32,36,4,0,32,41,4,0,32,46,4,0,32,51,4,0,32,56,4,0,32,61,4,0,32,66,4,0,32,71,4,0,32,76,4,0,32,81,4,0,32,86,4,0,32,91,4,0,32,96,4,0,32,101,4,0,32,106,4,0,32,111,4,0,32,116,4,0,32,121,4,0,32,126,4,0,32,131,4,0,32,136,4,0,32,141,4,0,32,146,4,0,32,151,4,0,32,156,4,0,32,161,4,0,32,166,4,0,32,171,4,0,32,176,4,0,32,181,4,0,32,186,4,0,32,191,4,0,32,196,4,0,32,201,4,0,32,206,4,0,32,211,4,0,32,216,4,0,32,221,4,0,32,226,4,0,32,231,4,0,32,236,4,0,32,241,4,0,32,246,4,0,32,251,4,0,32,0,5,0,32,5,5,0,32,10,5,0,32,15,5,0,32,20,5,0,32,25,5,0,32,30,5,0,32,35,5,0,32,40,5,0,32,45,5,0,32,50,5,0,32,55,5,0,32,60,5,0,32,65,5,0,32,70,5,0,32,75,5,0,32,80,5,0,32,1,0,32,0,85,5,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,98,3,0,32,7,0,0,0,113,0,0,0,102,3,0,0,102,3,0,0,91,0,0,0,1,0,0,0,123,2,0,0,108,111,99,97,108,101,115,0,97,102,0,97,107,0,97,109,0,97,110,0,97,114,0,97,115,0,97,122,0,98,101,0,98,103,0,98,110,0,98,115,0,99,97,0,99,115,0,99,121,0,100,97,0,100,101,0,101,108,0,101,110,0,101,116,0,101,117,0,102,97,0,102,105,0,102,105,108,0,102,114,0,103,97,0,103,108,0,103,115,119,0,103,117,0,104,101,0,104,105,0,104,114,0,104,117,0,104,121,0,105,97,0,105,100,0,105,111,0,105,115,0,105,116,0,106,97,0,107,97,0,107,107,0,107,109,0,107,110,0,107,111,0,107,121,0,108,105,106,0,108,111,0,108,116,0,108,118,0,109,107,0,109,108,0,109,110,0,109,114,0,109,115,0,109,121,0,110,98,0,110,101,0,110,108,0,110,111,0,111,114,0,112,97,0,112,99,109,0,112,108,0,112,115,0,112,116,0,114,111,0,114,117,0,115,99,0,115,99,110,0,115,100,0,115,105,0,115,107,0,115,108,0,115,113,0,115,114,0,115,118,0,116,97,0,116,101,0,116,104,0,116,107,0,116,114,0,117,103,0,117,107,0,117,114,0,117,122,0,118,105,0,121,117,101,0,122,104,0,122,117,0,114,117,108,101,115,0,115,101,116,48,48,0,115,101,116,48,49,0,115,101,116,48,50,0,115,101,116,48,51,0,115,101,116,48,52,0,115,101,116,48,53,0,115,101,116,48,54,0,115,101,116,48,55,0,115,101,116,48,56,0,115,101,116,48,57,0,115,101,116,49,48,0,115,101,116,49,49,0,115,101,116,49,50,0,115,101,116,49,51,0,115,101,116,49,52,0,115,101,116,49,53,0,115,101,116,49,54,0,115,101,116,49,55,0,115,101,116,49,56,0,115,101,116,49,57,0,115,101,116,50,48,0,115,101,116,50,49,0,170,0,0,111,0,110,0,101,0,0,0,102,0,101,0,119,0,0,0,116,0,119,0,111,0,0,0,109,0,97,0,110,0,121,0,0,0,122,0,101,0,114,0,111,0,0,0,111,0,116,0,104,0,101,0,114,0,0,0,115,0,101,0,116,0,48,0,51,0,0,0,115,0,101,0,116,0,48,0,52,0,0,0,115,0,101,0,116,0,48,0,48,0,0,0,115,0,101,0,116,0,48,0,49,0,0,0,115,0,101,0,116,0,48,0,53,0,0,0,115,0,101,0,116,0,48,0,55,0,0,0,115,0,101,0,116,0,49,0,56,0,0,0,115,0,101,0,116,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,55,0,0,0,115,0,101,0,116,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,53,0,0,0,115,0,101,0,116,0,48,0,50,0,0,0,115,0,101,0,116,0,48,0,54,0,0,0,115,0,101,0,116,0,48,0,56,0,0,0,115,0,101,0,116,0,48,0,57,0,0,0,115,0,101,0,116,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,57,0,0,0,115,0,101,0,116,0,50,0,48,0,0,0,115,0,101,0,116,0,50,0,49,0,0,0,91,0,40,0,43,0,46,0,49,0,52,0,55,0,58,0,61,0,64,0,67,0,70,0,73,0,76,0,79,0,82,0,85,0,88,0,91,0,60,1,94,0,97,0,100,0,103,0,106,0,110,0,113,0,116,0,119,0,123,0,126,0,129,0,132,0,135,0,138,0,141,0,144,0,147,0,150,0,153,0,156,0,159,0,162,0,165,0,168,0,171,0,174,0,177,0,181,0,184,0,187,0,190,0,193,0,196,0,199,0,202,0,205,0,208,0,211,0,214,0,217,0,220,0,223,0,226,0,230,0,233,0,236,0,239,0,242,0,245,0,248,0,252,0,255,0,2,1,5,1,8,1,11,1,14,1,120,0,17,1,20,1,23,1,26,1,29,1,32,1,35,1,38,1,41,1,44,1,47,1,51,1,54,1,35,0,59,0,47,0,35,0,155,0,47,0,29,0,65,0,35,0,47,0,71,0,89,0,77,0,149,0,53,0,29,0,29,0,35,0,89,0,35,0,35,0,59,0,35,0,53,0,83,0,143,0,29,0,29,0,47,0,119,0,47,0,71,0,29,0,47,0,35,0,41,0,35,0,53,0,131,0,41,0,95,0,29,0,41,0,47,0,41,0,29,0,29,0,41,0,65,0,113,0,107,0,29,0,29,0,47,0,41,0,41,0,35,0,29,0,29,0,35,0,59,0,53,0,35,0,77,0,47,0,83,0,125,0,65,0,29,0,29,0,59,0,101,0,77,0,137,0,29,0,71,0,35,0,29,0,29,0,29,0,41,0,29,0,29,0,29,0,65,0,35,0,29,0,41,0,41,0,41,0,47,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,1,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,18,0,18,0,23,0,3,0,18,0,1,0,1,0,3,0,18,0,23,0,23,0,3,0,1,0,18,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,18,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,9,0,23,0,3,0,1,0,23,0,23,0,3,0,9,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,9,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,5,0,5,0,3,0,1,0,23,0,23,0,3,0,5,0,1,0,5,0,3,0,5,0,5,0,5,0,3,0,5,0,23,0,23,0,3,0,23,0,5,0,5,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,5,0,5,0,3,0,1,0,23,0,23,0,3,0,5,0,1,0,1,0,3,0,5,0,5,0,5,0,3,0,5,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,5,0,5,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,23,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,23,0,23,0,3,0,1,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,5,0,3,0,1,0,9,0,9,0,3,0,1,0,5,0,5,0,3,0,1,0,23,0,23,0,3,0,9,0,1,0,5,0,3,0,9,0,9,0,9,0,3,0,9,0,5,0,5,0,3,0,9,0,23,0,23,0,3,0,5,0,1,0,5,0,3,0,5,0,9,0,9,0,3,0,5,0,5,0,5,0,3,0,5,0,23,0,23,0,3,0,23,0,1,0,5,0,3,0,23,0,9,0,9,0,3,0,23,0,5,0,5,0,3,0,23,0,23,0,23,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,1,0,1,0,3,0,13,0,5,0,5,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,1,0,1,0,1,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,5,0,1,0,1,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,1,0,1,0,3,0,13,0,5,0,5,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,1,0,9,0,9,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,9,0,5,0,5,0,3,0,9,0,13,0,13,0,3,0,9,0,23,0,23,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,9,0,9,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,18,0,1,0,1,0,3,0,18,0,9,0,9,0,3,0,18,0,5,0,5,0,3,0,18,0,13,0,13,0,3,0,18,0,23,0,23,0,3,0,1,0,9,0,9,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,9,0,5,0,5,0,3,0,9,0,13,0,13,0,3,0,9,0,23,0,23,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,1,0,3,0,23,0,9,0,9,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,3,0,18,0,1,0,18,0,3,0,18,0,9,0,18,0,3,0,18,0,5,0,5,0,3,0,18,0,13,0,13,0,3,0,18,0,23,0,23,0,3,0,1,0,9,0,23,0,3,0,1,0,5,0,5,0,3,0,1,0,13,0,13,0,3,0,1,0,23,0,23,0,3,0,9,0,5,0,5,0,3,0,9,0,13,0,13,0,3,0,9,0,23,0,23,0,3,0,5,0,5,0,5,0,3,0,5,0,13,0,13,0,3,0,5,0,23,0,23,0,3,0,13,0,5,0,5,0,3,0,13,0,13,0,13,0,3,0,13,0,23,0,23,0,3,0,23,0,1,0,23,0,3,0,23,0,9,0,23,0,3,0,23,0,5,0,5,0,3,0,23,0,13,0,13,0,3,0,23,0,23,0,23,0,1,0,0,0,88,1,0,144,3,0,0,0,92,1,0,144,96,1,0,144,100,1,0,144,3,0,0,0,104,1,0,144,108,1,0,144,112,1,0,144,3,0,0,0,116,1,0,144,120,1,0,144,124,1,0,144,3,0,0,0,128,1,0,144,132,1,0,144,136,1,0,144,4,0,0,0,140,1,0,144,144,1,0,144,148,1,0,144,152,1,0,144,4,0,0,0,156,1,0,144,160,1,0,144,164,1,0,144,168,1,0,144,4,0,0,0,172,1,0,144,176,1,0,144,180,1,0,144,184,1,0,144,4,0,0,0,188,1,0,144,192,1,0,144,196,1,0,144,200,1,0,144,9,0,0,0,204,1,0,144,208,1,0,144,212,1,0,144,216,1,0,144,220,1,0,144,224,1,0,144,228,1,0,144,232,1,0,144,236,1,0,144,6,0,0,0,240,1,0,144,244,1,0,144,248,1,0,144,252,1,0,144,0,2,0,144,4,2,0,144,7,0,0,0,8,2,0,144,12,2,0,144,16,2,0,144,20,2,0,144,24,2,0,144,28,2,0,144,32,2,0,144,9,0,0,0,36,2,0,144,40,2,0,144,44,2,0,144,48,2,0,144,52,2,0,144,56,2,0,144,60,2,0,144,64,2,0,144,68,2,0,144,3,0,0,0,72,2,0,144,76,2,0,144,80,2,0,144,3,0,0,0,84,2,0,144,88,2,0,144,92,2,0,144,3,0,0,0,96,2,0,144,100,2,0,144,104,2,0,144,16,0,0,0,108,2,0,144,112,2,0,144,116,2,0,144,120,2,0,144,124,2,0,144,128,2,0,144,132,2,0,144,136,2,0,144,140,2,0,144,144,2,0,144,148,2,0,144,152,2,0,144,156,2,0,144,160,2,0,144,164,2,0,144,168,2,0,144,14,0,0,0,172,2,0,144,176,2,0,144,180,2,0,144,184,2,0,144,188,2,0,144,192,2,0,144,196,2,0,144,200,2,0,144,204,2,0,144,208,2,0,144,212,2,0,144,216,2,0,144,220,2,0,144,224,2,0,144,16,0,0,0,228,2,0,144,232,2,0,144,236,2,0,144,240,2,0,144,244,2,0,144,248,2,0,144,252,2,0,144,0,3,0,144,4,3,0,144,8,3,0,144,12,3,0,144,16,3,0,144,20,3,0,144,24,3,0,144,28,3,0,144,32,3,0,144,17,0,0,0,36,3,0,144,40,3,0,144,44,3,0,144,48,3,0,144,52,3,0,144,56,3,0,144,60,3,0,144,64,3,0,144,68,3,0,144,72,3,0,144,76,3,0,144,80,3,0,144,84,3,0,144,88,3,0,144,92,3,0,144,96,3,0,144,100,3,0,144,20,0,0,0,104,3,0,144,108,3,0,144,112,3,0,144,116,3,0,144,120,3,0,144,124,3,0,144,128,3,0,144,132,3,0,144,136,3,0,144,140,3,0,144,144,3,0,144,148,3,0,144,152,3,0,144,156,3,0,144,160,3,0,144,164,3,0,144,168,3,0,144,172,3,0,144,176,3,0,144,180,3,0,144,23,0,0,0,184,3,0,144,188,3,0,144,192,3,0,144,196,3,0,144,200,3,0,144,204,3,0,144,208,3,0,144,212,3,0,144,216,3,0,144,220,3,0,144,224,3,0,144,228,3,0,144,232,3,0,144,236,3,0,144,240,3,0,144,244,3,0,144,248,3,0,144,252,3,0,144,0,4,0,144,4,4,0,144,8,4,0,144,12,4,0,144,16,4,0,144,22,0,63,1,69,1,75,1,81,1,87,1,93,1,99,1,105,1,111,1,117,1,123,1,129,1,135,1,141,1,147,1,153,1,159,1,165,1,171,1,177,1,183,1,189,1,170,170,123,2,0,128,125,2,0,128,129,2,0,128,133,2,0,128,137,2,0,128,141,2,0,128,146,2,0,128,151,2,0,128,156,2,0,128,161,2,0,128,171,2,0,128,178,2,0,128,186,2,0,128,196,2,0,128,200,2,0,128,204,2,0,128,208,2,0,128,225,2,0,128,240,2,0,128,1,3,0,128,19,3,0,128,40,3,0,128,2,0,32,0,57,1,170,170,161,0,0,80,64,3,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,107,34,0,32,7,0,0,0,29,1,0,0,112,34,0,0,112,34,0,0,219,0,0,0,1,0,0,0,12,34,0,0,108,111,99,97,108,101,115,0,97,102,0,97,107,0,97,109,0,97,110,0,97,114,0,97,114,115,0,97,115,97,0,97,115,116,0,97,122,0,98,97,108,0,98,101,0,98,101,109,0,98,101,122,0,98,103,0,98,104,111,0,98,109,0,98,110,0,98,114,0,98,114,120,0,98,115,0,99,97,0,99,101,0,99,101,98,0,99,103,103,0,99,104,114,0,99,107,98,0,99,115,0,99,121,0,100,97,0,100,111,105,0,100,115,98,0,100,118,0,100,122,0,101,101,0,101,108,0,101,110,0,101,116,0,101,117,0,102,97,0,102,102,0,102,105,0,102,105,108,0,102,111,0,102,114,0,102,117,114,0,102,121,0,103,97,0,103,100,0,103,108,0,103,115,119,0,103,117,0,103,117,119,0,103,118,0,104,97,0,104,97,119,0,104,101,0,104,110,106,0,104,115,98,0,104,117,0,104,121,0,105,97,0,105,100,0,105,105,0,105,110,0,105,111,0,105,115,0,105,116,0,105,117,0,105,119,0,106,97,0,106,98,111,0,106,103,111,0,106,105,0,106,109,99,0,106,118,0,106,119,0,107,97,0,107,97,98,0,107,97,106,0,107,99,103,0,107,100,101,0,107,101,97,0,107,107,0,107,107,106,0,107,108,0,107,109,0,107,110,0,107,111,0,107,115,0,107,115,98,0,107,115,104,0,107,117,0,107,119,0,107,121,0,108,97,103,0,108,98,0,108,103,0,108,105,106,0,108,107,116,0,108,110,0,108,111,0,108,116,0,108,118,0,109,97,115,0,109,103,0,109,103,111,0,109,107,0,109,108,0,109,111,0,109,114,0,109,116,0,109,121,0,110,97,104,0,110,97,113,0,110,98,0,110,100,0,110,108,0,110,110,0,110,110,104,0,110,111,0,110,113,111,0,110,114,0,110,115,111,0,110,121,110,0,111,109,0,111,114,0,111,115,0,111,115,97,0,112,97,0,112,97,112,0,112,99,109,0,112,108,0,112,114,103,0,112,115,0,112,116,0,112,116,95,80,84,0,114,109,0,114,111,102,0,114,111,111,116,0,114,117,0,114,119,107,0,115,97,104,0,115,97,113,0,115,97,116,0,115,99,0,115,99,110,0,115,100,0,115,100,104,0,115,101,0,115,101,104,0,115,101,115,0,115,103,0,115,104,105,0,115,105,0,115,107,0,115,108,0,115,109,97,0,115,109,105,0,115,109,106,0,115,109,110,0,115,109,115,0,115,110,0,115,113,0,115,114,0,115,115,0,115,115,121,0,115,117,0,115,118,0,115,121,114,0,116,97,0,116,101,0,116,101,111,0,116,104,0,116,105,0,116,105,103,0,116,107,0,116,108,0,116,110,0,116,111,0,116,112,105,0,116,114,0,116,115,0,116,122,109,0,117,103,0,117,107,0,117,122,0,118,101,0,118,101,99,0,118,105,0,118,111,0,118,117,110,0,119,97,0,119,97,101,0,120,104,0,120,111,103,0,121,105,0,121,111,0,121,117,101,0,122,104,0,122,117,0,108,111,99,97,108,101,115,95,111,114,100,105,110,97,108,115,0,114,117,108,101,115,0,115,101,116,48,0,111,116,104,101,114,0,115,101,116,49,0,111,110,101,0,115,101,116,49,48,0,115,101,116,49,49,0,115,101,116,49,50,0,122,101,114,111,0,115,101,116,49,51,0,115,101,116,49,52,0,115,101,116,49,53,0,116,119,111,0,115,101,116,49,54,0,115,101,116,49,55,0,102,101,119,0,115,101,116,49,56,0,115,101,116,49,57,0,115,101,116,50,0,115,101,116,50,48,0,109,97,110,121,0,115,101,116,50,49,0,115,101,116,50,50,0,115,101,116,50,51,0,115,101,116,50,52,0,115,101,116,50,53,0,115,101,116,50,54,0,115,101,116,50,55,0,115,101,116,50,56,0,115,101,116,50,57,0,115,101,116,51,0,115,101,116,51,48,0,115,101,116,51,49,0,115,101,116,51,50,0,115,101,116,51,51,0,115,101,116,51,52,0,115,101,116,51,53,0,115,101,116,51,54,0,115,101,116,51,55,0,115,101,116,51,56,0,115,101,116,51,57,0,115,101,116,52,0,115,101,116,52,48,0,115,101,116,52,49,0,115,101,116,52,50,0,115,101,116,52,51,0,115,101,116,52,52,0,115,101,116,52,53,0,115,101,116,52,54,0,115,101,116,52,55,0,115,101,116,52,56,0,115,101,116,52,57,0,115,101,116,53,0,115,101,116,53,48,0,115,101,116,53,49,0,115,101,116,53,50,0,115,101,116,53,51,0,115,101,116,53,52,0,115,101,116,53,53,0,115,101,116,53,54,0,115,101,116,53,55,0,115,101,116,53,56,0,115,101,116,53,57,0,115,101,116,54,0,115,101,116,54,48,0,115,101,116,54,49,0,115,101,116,54,50,0,115,101,116,55,0,115,101,116,56,0,115,101,116,57,0,170,170,170,0,0,115,0,101,0,116,0,55,0,0,0,115,0,101,0,116,0,48,0,0,0,115,0,101,0,116,0,51,0,0,0,115,0,101,0,116,0,49,0,0,0,115,0,101,0,116,0,53,0,0,0,115,0,101,0,116,0,50,0,0,0,115,0,101,0,116,0,52,0,0,0,115,0,101,0,116,0,54,0,0,0,115,0,101,0,116,0,56,0,0,0,115,0,101,0,116,0,57,0,0,0,115,0,101,0,116,0,51,0,57,0,0,0,115,0,101,0,116,0,52,0,49,0,0,0,115,0,101,0,116,0,49,0,54,0,0,0,115,0,101,0,116,0,49,0,57,0,0,0,115,0,101,0,116,0,50,0,50,0,0,0,115,0,101,0,116,0,52,0,56,0,0,0,115,0,101,0,116,0,49,0,49,0,0,0,115,0,101,0,116,0,49,0,50,0,0,0,115,0,101,0,116,0,49,0,53,0,0,0,115,0,101,0,116,0,49,0,56,0,0,0,115,0,101,0,116,0,50,0,54,0,0,0,115,0,101,0,116,0,50,0,55,0,0,0,115,0,101,0,116,0,51,0,49,0,0,0,115,0,101,0,116,0,51,0,55,0,0,0,115,0,101,0,116,0,53,0,57,0,0,0,115,0,101,0,116,0,54,0,48,0,0,0,115,0,101,0,116,0,49,0,48,0,0,0,115,0,101,0,116,0,49,0,51,0,0,0,115,0,101,0,116,0,49,0,52,0,0,0,115,0,101,0,116,0,49,0,55,0,0,0,115,0,101,0,116,0,50,0,48,0,0,0,115,0,101,0,116,0,50,0,49,0,0,0,115,0,101,0,116,0,50,0,51,0,0,0,115,0,101,0,116,0,50,0,52,0,0,0,115,0,101,0,116,0,50,0,53,0,0,0,115,0,101,0,116,0,50,0,56,0,0,0,115,0,101,0,116,0,50,0,57,0,0,0,115,0,101,0,116,0,51,0,48,0,0,0,115,0,101,0,116,0,51,0,50,0,0,0,115,0,101,0,116,0,51,0,51,0,0,0,115,0,101,0,116,0,51,0,52,0,0,0,115,0,101,0,116,0,51,0,53,0,0,0,115,0,101,0,116,0,51,0,54,0,0,0,115,0,101,0,116,0,51,0,56,0,0,0,115,0,101,0,116,0,52,0,48,0,0,0,115,0,101,0,116,0,52,0,50,0,0,0,115,0,101,0,116,0,52,0,51,0,0,0,115,0,101,0,116,0,52,0,52,0,0,0,115,0,101,0,116,0,52,0,53,0,0,0,115,0,101,0,116,0,52,0,54,0,0,0,115,0,101,0,116,0,52,0,55,0,0,0,115,0,101,0,116,0,52,0,57,0,0,0,115,0,101,0,116,0,53,0,48,0,0,0,115,0,101,0,116,0,53,0,49,0,0,0,115,0,101,0,116,0,53,0,50,0,0,0,115,0,101,0,116,0,53,0,51,0,0,0,115,0,101,0,116,0,53,0,52,0,0,0,115,0,101,0,116,0,53,0,53,0,0,0,115,0,101,0,116,0,53,0,54,0,0,0,115,0,101,0,116,0,53,0,55,0,0,0,115,0,101,0,116,0,53,0,56,0,0,0,115,0,101,0,116,0,54,0,49,0,0,0,115,0,101,0,116,0,54,0,50,0,0,0,110,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,0,0,110,0,32,0,61,0,32,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,0,0,110,0,32,0,61,0,32,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,0,0,110,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,0,0,105,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,0,0,110,0,32,0,61,0,32,0,50,0,44,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,51,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,51,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,53,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,53,0,0,0,110,0,32,0,61,0,32,0,49,0,46,0,46,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,126,0,52,0,0,0,110,0,32,0,61,0,32,0,51,0,44,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,0,0,110,0,32,0,61,0,32,0,53,0,44,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,53,0,44,0,32,0,54,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,49,0,0,0,110,0,32,0,61,0,32,0,50,0,44,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,50,0,0,0,110,0,32,0,61,0,32,0,51,0,44,0,49,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,49,0,51,0,0,0,105,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,0,0,105,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,0,0,110,0,32,0,61,0,32,0,48,0,44,0,55,0,44,0,56,0,44,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,55,0,126,0,57,0,0,0,105,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,53,0,44,0,55,0,46,0,46,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,57,0,0,0,110,0,32,0,61,0,32,0,49,0,44,0,53,0,44,0,55,0,44,0,56,0,44,0,57,0,44,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,49,0,48,0,0,0,105,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,0,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,51,0,126,0,49,0,57,0,44,0,32,0,50,0,51,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,0,0,105,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,0,0,110,0,32,0,61,0,32,0,49,0,49,0,44,0,56,0,44,0,56,0,48,0,44,0,56,0,48,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,56,0,44,0,32,0,49,0,49,0,44,0,32,0,56,0,48,0,44,0,32,0,56,0,48,0,48,0,0,0,46,220,105,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,49,0,46,0,54,0,0,0,50,220,110,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,48,0,0,0,50,220,110,0,32,0,61,0,32,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,54,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,48,0,0,0,52,220,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,52,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,49,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,52,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,49,0,126,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,53,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,126,0,50,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,53,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,48,0,126,0,51,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,53,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,49,0,126,0,51,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,52,0,126,0,49,0,56,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,54,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,55,220,110,0,32,0,61,0,32,0,49,0,32,0,111,0,114,0,32,0,116,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,49,0,46,0,54,0,0,0,55,220,110,0,32,0,61,0,32,0,49,0,49,0,44,0,56,0,44,0,56,0,48,0,46,0,46,0,56,0,57,0,44,0,56,0,48,0,48,0,46,0,46,0,56,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,56,0,44,0,32,0,49,0,49,0,44,0,32,0,56,0,48,0,126,0,56,0,57,0,44,0,32,0,56,0,48,0,48,0,126,0,56,0,48,0,51,0,0,0,56,220,105,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,126,0,48,0,46,0,48,0,52,0,0,0,56,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,48,0,126,0,50,0,52,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,56,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,49,0,126,0,50,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,57,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,50,0,44,0,32,0,52,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,58,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,44,0,32,0,52,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,58,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,58,220,102,0,32,0,33,0,61,0,32,0,48,0,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,60,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,52,0,44,0,32,0,54,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,60,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,54,0,44,0,32,0,57,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,61,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,44,0,32,0,51,0,44,0,32,0,53,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,62,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,52,0,126,0,49,0,48,0,44,0,32,0,49,0,52,0,126,0,50,0,49,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,64,220,105,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,50,0,48,0,44,0,52,0,48,0,44,0,54,0,48,0,44,0,56,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,65,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,55,0,44,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,73,220,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,73,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,73,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,74,220,105,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,105,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,48,0,46,0,48,0,48,0,126,0,48,0,46,0,48,0,53,0,0,0,75,220,110,0,32,0,61,0,32,0,53,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,53,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,53,0,44,0,32,0,49,0,48,0,53,0,44,0,32,0,50,0,48,0,53,0,44,0,32,0,51,0,48,0,53,0,44,0,32,0,52,0,48,0,53,0,44,0,32,0,53,0,48,0,53,0,44,0,32,0,54,0,48,0,53,0,44,0,32,0,55,0,48,0,53,0,44,0,32,0,49,0,48,0,48,0,53,0,44,0,32,0,38,32,0,0,76,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,49,0,126,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,76,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,50,0,48,0,49,0,44,0,32,0,51,0,48,0,49,0,44,0,32,0,52,0,48,0,49,0,44,0,32,0,53,0,48,0,49,0,44,0,32,0,54,0,48,0,49,0,44,0,32,0,55,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,76,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,50,0,48,0,50,0,44,0,32,0,51,0,48,0,50,0,44,0,32,0,52,0,48,0,50,0,44,0,32,0,53,0,48,0,50,0,44,0,32,0,54,0,48,0,50,0,44,0,32,0,55,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,78,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,54,0,44,0,57,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,44,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,54,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,54,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,54,0,44,0,32,0,51,0,57,0,44,0,32,0,49,0,48,0,54,0,44,0,32,0,49,0,48,0,48,0,54,0,44,0,32,0,38,32,0,0,78,220,110,0,32,0,61,0,32,0,49,0,44,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,78,220,110,0,32,0,61,0,32,0,50,0,44,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,50,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,48,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,48,0,0,0,79,220,118,0,32,0,33,0,61,0,32,0,48,0,32,0,32,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,51,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,50,0,51,0,44,0,32,0,51,0,51,0,44,0,32,0,52,0,51,0,44,0,32,0,53,0,51,0,44,0,32,0,54,0,51,0,44,0,32,0,55,0,51,0,44,0,32,0,56,0,51,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,0,0,81,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,81,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,81,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,52,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,44,0,32,0,50,0,52,0,44,0,32,0,51,0,52,0,44,0,32,0,52,0,52,0,44,0,32,0,53,0,52,0,44,0,32,0,54,0,52,0,44,0,32,0,55,0,52,0,44,0,32,0,56,0,52,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,52,0,44,0,32,0,38,32,0,0,82,220,110,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,84,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,57,0,44,0,32,0,50,0,50,0,126,0,50,0,57,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,57,0,44,0,32,0,49,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,50,0,44,0,32,0,38,32,0,0,85,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,48,0,44,0,32,0,51,0,57,0,44,0,32,0,52,0,57,0,44,0,32,0,53,0,57,0,44,0,32,0,54,0,57,0,44,0,32,0,55,0,57,0,44,0,32,0,49,0,48,0,57,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,91,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,93,220,105,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,54,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,52,0,48,0,44,0,54,0,48,0,44,0,57,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,54,0,44,0,32,0,49,0,54,0,44,0,32,0,50,0,54,0,44,0,32,0,51,0,54,0,44,0,32,0,52,0,48,0,44,0,32,0,52,0,54,0,44,0,32,0,53,0,54,0,44,0,32,0,49,0,48,0,54,0,44,0,32,0,49,0,48,0,48,0,54,0,44,0,32,0,38,32,0,0,98,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,102,220,110,0,32,0,61,0,32,0,49,0,46,0,46,0,52,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,46,0,46,0,52,0,44,0,50,0,49,0,46,0,46,0,50,0,52,0,44,0,52,0,49,0,46,0,46,0,52,0,52,0,44,0,54,0,49,0,46,0,46,0,54,0,52,0,44,0,56,0,49,0,46,0,46,0,56,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,126,0,52,0,44,0,32,0,50,0,49,0,126,0,50,0,52,0,44,0,32,0,52,0,49,0,126,0,52,0,52,0,44,0,32,0,54,0,49,0,126,0,54,0,52,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,104,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,44,0,32,0,50,0,50,0,126,0,50,0,52,0,44,0,32,0,51,0,50,0,126,0,51,0,52,0,44,0,32,0,52,0,50,0,126,0,52,0,52,0,44,0,32,0,53,0,50,0,126,0,53,0,52,0,44,0,32,0,54,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,107,220,110,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,108,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,48,0,44,0,50,0,48,0,44,0,52,0,48,0,44,0,54,0,48,0,44,0,56,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,48,0,44,0,32,0,52,0,48,0,44,0,32,0,54,0,48,0,44,0,32,0,56,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,50,0,48,0,44,0,32,0,49,0,52,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,111,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,44,0,50,0,44,0,53,0,44,0,55,0,44,0,56,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,48,0,44,0,53,0,48,0,44,0,55,0,48,0,44,0,56,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,44,0,32,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,49,0,44,0,32,0,49,0,50,0,44,0,32,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,48,0,126,0,50,0,50,0,44,0,32,0,50,0,53,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,114,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,48,0,51,0,126,0,49,0,49,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,117,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,55,0,44,0,56,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,55,0,44,0,49,0,56,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,50,0,55,0,44,0,32,0,50,0,56,0,44,0,32,0,51,0,55,0,44,0,32,0,51,0,56,0,44,0,32,0,52,0,55,0,44,0,32,0,52,0,56,0,44,0,32,0,53,0,55,0,44,0,32,0,53,0,56,0,44,0,32,0,54,0,55,0,44,0,32,0,54,0,56,0,44,0,32,0,55,0,55,0,44,0,32,0,55,0,56,0,44,0,32,0,56,0,55,0,44,0,32,0,56,0,56,0,44,0,32,0,49,0,48,0,55,0,44,0,32,0,49,0,48,0,48,0,55,0,44,0,32,0,38,32,0,0,117,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,44,0,50,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,44,0,49,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,44,0,32,0,50,0,49,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,49,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,49,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,49,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,49,0,44,0,32,0,54,0,50,0,44,0,32,0,55,0,49,0,44,0,32,0,55,0,50,0,44,0,32,0,56,0,49,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,0,0,117,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,44,0,51,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,44,0,49,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,51,0,44,0,32,0,50,0,50,0,44,0,32,0,50,0,51,0,44,0,32,0,51,0,50,0,44,0,32,0,51,0,51,0,44,0,32,0,52,0,50,0,44,0,32,0,52,0,51,0,44,0,32,0,53,0,50,0,44,0,32,0,53,0,51,0,44,0,32,0,54,0,50,0,44,0,32,0,54,0,51,0,44,0,32,0,55,0,50,0,44,0,32,0,55,0,51,0,44,0,32,0,56,0,50,0,44,0,32,0,56,0,51,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,0,0,119,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,49,0,126,0,50,0,54,0,44,0,32,0,49,0,49,0,49,0,44,0,32,0,49,0,48,0,49,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,119,220,110,0,32,0,61,0,32,0,50,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,48,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,0,0,121,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,56,0,44,0,32,0,49,0,48,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,126,0,51,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,49,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,49,0,126,0,50,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,123,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,44,0,32,0,54,0,44,0,32,0,57,0,44,0,32,0,49,0,52,0,44,0,32,0,49,0,54,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,52,0,44,0,32,0,50,0,54,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,52,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,52,0,44,0,32,0,48,0,46,0,54,0,44,0,32,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,52,0,44,0,32,0,49,0,46,0,54,0,44,0,32,0,49,0,46,0,57,0,44,0,32,0,50,0,46,0,52,0,44,0,32,0,50,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,52,0,44,0,32,0,49,0,48,0,48,0,46,0,52,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,52,0,44,0,32,0,38,32,0,0,123,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,49,0,126,0,49,0,57,0,44,0,32,0,49,0,49,0,49,0,126,0,49,0,49,0,55,0,44,0,32,0,49,0,48,0,49,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,126,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,126,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,126,0,50,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,126,220,110,0,32,0,61,0,32,0,48,0,44,0,49,0,32,0,111,0,114,0,32,0,105,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,49,0,44,0,32,0,49,0,46,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,49,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,48,0,46,0,48,0,48,0,48,0,49,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,0,0,131,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,50,0,46,0,48,0,126,0,51,0,46,0,52,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,131,220,110,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,48,0,51,0,126,0,49,0,48,0,57,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,132,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,132,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,56,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,132,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,53,0,46,0,46,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,133,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,49,0,126,0,50,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,57,0,44,0,32,0,50,0,46,0,49,0,126,0,50,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,133,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,48,0,126,0,51,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,133,220,110,0,32,0,61,0,32,0,51,0,46,0,46,0,54,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,54,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,52,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,53,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,54,0,46,0,48,0,48,0,48,0,48,0,0,0,134,220,110,0,32,0,61,0,32,0,51,0,46,0,46,0,49,0,48,0,44,0,49,0,51,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,126,0,49,0,48,0,44,0,32,0,49,0,51,0,126,0,49,0,57,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,57,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,48,0,0,0,135,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,135,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,51,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,136,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,49,0,126,0,50,0,53,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,136,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,48,0,126,0,51,0,52,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,136,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,48,0,44,0,32,0,49,0,48,0,48,0,126,0,49,0,48,0,54,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,138,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,52,0,44,0,32,0,53,0,44,0,32,0,55,0,126,0,50,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,139,220,110,0,32,0,61,0,32,0,55,0,46,0,46,0,49,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,55,0,126,0,49,0,48,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,44,0,32,0,57,0,46,0,48,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,48,0,44,0,32,0,57,0,46,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,48,0,48,0,44,0,32,0,55,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,56,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,57,0,46,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,48,0,48,0,48,0,0,0,140,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,56,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,140,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,50,0,126,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,141,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,57,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,57,0,44,0,32,0,50,0,50,0,126,0,50,0,57,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,50,0,46,0,48,0,44,0,32,0,38,32,0,0,141,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,54,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,57,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,54,0,44,0,32,0,57,0,44,0,32,0,49,0,48,0,44,0,32,0,49,0,54,0,44,0,32,0,49,0,57,0,44,0,32,0,50,0,48,0,44,0,32,0,50,0,54,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,48,0,44,0,32,0,51,0,54,0,44,0,32,0,51,0,57,0,44,0,32,0,52,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,143,220,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,44,0,50,0,51,0,44,0,52,0,51,0,44,0,54,0,51,0,44,0,56,0,51,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,50,0,51,0,44,0,32,0,52,0,51,0,44,0,32,0,54,0,51,0,44,0,32,0,56,0,51,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,50,0,51,0,44,0,32,0,49,0,52,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,52,0,51,0,46,0,48,0,44,0,32,0,54,0,51,0,46,0,48,0,44,0,32,0,56,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,50,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,145,220,110,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,44,0,32,0,49,0,49,0,126,0,50,0,52,0,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,55,0,46,0,48,0,44,0,32,0,49,0,56,0,46,0,48,0,44,0,32,0,49,0,57,0,46,0,48,0,44,0,32,0,50,0,48,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,50,0,52,0,46,0,48,0,0,0,146,220,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,51,0,44,0,52,0,32,0,111,0,114,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,32,0,61,0,32,0,49,0,48,0,48,0,44,0,50,0,48,0,48,0,44,0,51,0,48,0,48,0,44,0,52,0,48,0,48,0,44,0,53,0,48,0,48,0,44,0,54,0,48,0,48,0,44,0,55,0,48,0,48,0,44,0,56,0,48,0,48,0,44,0,57,0,48,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,49,0,51,0,44,0,32,0,49,0,52,0,44,0,32,0,50,0,51,0,44,0,32,0,50,0,52,0,44,0,32,0,51,0,51,0,44,0,32,0,51,0,52,0,44,0,32,0,52,0,51,0,44,0,32,0,52,0,52,0,44,0,32,0,53,0,51,0,44,0,32,0,53,0,52,0,44,0,32,0,54,0,51,0,44,0,32,0,54,0,52,0,44,0,32,0,55,0,51,0,44,0,32,0,55,0,52,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,0,0,146,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,33,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,46,0,46,0,49,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,53,0,46,0,46,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,0,0,147,220,118,0,32,0,33,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,33,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,149,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,48,0,46,0,53,0,126,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,53,0,126,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,53,0,126,0,50,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,150,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,44,0,55,0,49,0,44,0,57,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,51,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,53,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,150,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,44,0,55,0,50,0,44,0,57,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,51,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,53,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,51,0,50,0,46,0,48,0,44,0,32,0,52,0,50,0,46,0,48,0,44,0,32,0,53,0,50,0,46,0,48,0,44,0,32,0,54,0,50,0,46,0,48,0,44,0,32,0,56,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,50,0,46,0,48,0,44,0,32,0,38,32,0,0,154,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,51,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,53,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,55,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,158,220,110,0,32,0,33,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,44,0,50,0,49,0,44,0,52,0,49,0,44,0,54,0,49,0,44,0,56,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,50,0,49,0,44,0,32,0,49,0,52,0,49,0,44,0,32,0,49,0,54,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,49,0,46,0,48,0,44,0,32,0,49,0,52,0,49,0,46,0,48,0,44,0,32,0,49,0,54,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,158,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,44,0,32,0,50,0,49,0,46,0,48,0,44,0,32,0,51,0,49,0,46,0,48,0,44,0,32,0,52,0,49,0,46,0,48,0,44,0,32,0,53,0,49,0,46,0,48,0,44,0,32,0,54,0,49,0,46,0,48,0,44,0,32,0,55,0,49,0,46,0,48,0,44,0,32,0,56,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,49,0,46,0,48,0,44,0,32,0,38,32,0,0,163,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,50,0,48,0,49,0,44,0,32,0,51,0,48,0,49,0,44,0,32,0,52,0,48,0,49,0,44,0,32,0,53,0,48,0,49,0,44,0,32,0,54,0,48,0,49,0,44,0,32,0,55,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,163,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,50,0,48,0,50,0,44,0,32,0,51,0,48,0,50,0,44,0,32,0,52,0,48,0,50,0,44,0,32,0,53,0,48,0,50,0,44,0,32,0,54,0,48,0,50,0,44,0,32,0,55,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,44,0,32,0,49,0,46,0,50,0,44,0,32,0,50,0,46,0,50,0,44,0,32,0,51,0,46,0,50,0,44,0,32,0,52,0,46,0,50,0,44,0,32,0,53,0,46,0,50,0,44,0,32,0,54,0,46,0,50,0,44,0,32,0,55,0,46,0,50,0,44,0,32,0,49,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,50,0,44,0,32,0,38,32,0,0,165,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,44,0,32,0,50,0,50,0,126,0,50,0,52,0,44,0,32,0,51,0,50,0,126,0,51,0,52,0,44,0,32,0,52,0,50,0,126,0,52,0,52,0,44,0,32,0,53,0,50,0,126,0,53,0,52,0,44,0,32,0,54,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,50,0,52,0,46,0,48,0,44,0,32,0,51,0,50,0,46,0,48,0,44,0,32,0,51,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,50,0,46,0,48,0,44,0,32,0,38,32,0,0,171,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,48,0,126,0,49,0,48,0,50,0,44,0,32,0,50,0,48,0,48,0,126,0,50,0,48,0,50,0,44,0,32,0,51,0,48,0,48,0,126,0,51,0,48,0,50,0,44,0,32,0,52,0,48,0,48,0,126,0,52,0,48,0,50,0,44,0,32,0,53,0,48,0,48,0,126,0,53,0,48,0,50,0,44,0,32,0,54,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,55,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,175,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,48,0,126,0,50,0,48,0,44,0,32,0,51,0,48,0,44,0,32,0,52,0,48,0,44,0,32,0,53,0,48,0,44,0,32,0,54,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,180,220,101,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,101,0,32,0,33,0,61,0,32,0,48,0,46,0,46,0,53,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,54,0,44,0,32,0,50,0,99,0,54,0,44,0,32,0,51,0,99,0,54,0,44,0,32,0,52,0,99,0,54,0,44,0,32,0,53,0,99,0,54,0,44,0,32,0,54,0,99,0,54,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,49,0,46,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,99,0,54,0,44,0,32,0,49,0,46,0,49,0,99,0,54,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,99,0,54,0,44,0,32,0,50,0,46,0,49,0,99,0,54,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,48,0,48,0,48,0,49,0,99,0,54,0,44,0,32,0,51,0,46,0,49,0,99,0,54,0,44,0,32,0,38,32,0,0,189,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,44,0,57,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,48,0,46,0,46,0,49,0,57,0,44,0,55,0,48,0,46,0,46,0,55,0,57,0,44,0,57,0,48,0,46,0,46,0,57,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,57,0,44,0,32,0,50,0,51,0,44,0,32,0,50,0,52,0,44,0,32,0,50,0,57,0,44,0,32,0,51,0,51,0,44,0,32,0,51,0,52,0,44,0,32,0,51,0,57,0,44,0,32,0,52,0,51,0,44,0,32,0,52,0,52,0,44,0,32,0,52,0,57,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,51,0,46,0,48,0,44,0,32,0,52,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,50,0,51,0,46,0,48,0,44,0,32,0,50,0,52,0,46,0,48,0,44,0,32,0,50,0,57,0,46,0,48,0,44,0,32,0,51,0,51,0,46,0,48,0,44,0,32,0,51,0,52,0,46,0,48,0,44,0,32,0,49,0,48,0,51,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,51,0,46,0,48,0,44,0,32,0,38,32,0,0,195,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,49,0,55,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,51,0,44,0,32,0,50,0,99,0,51,0,44,0,32,0,51,0,99,0,51,0,44,0,32,0,52,0,99,0,51,0,44,0,32,0,53,0,99,0,51,0,44,0,32,0,54,0,99,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,126,0,51,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,49,0,46,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,49,0,99,0,51,0,44,0,32,0,38,32,0,0,195,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,198,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,51,0,44,0,32,0,50,0,99,0,51,0,44,0,32,0,51,0,99,0,51,0,44,0,32,0,52,0,99,0,51,0,44,0,32,0,53,0,99,0,51,0,44,0,32,0,54,0,99,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,49,0,46,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,49,0,99,0,51,0,44,0,32,0,38,32,0,0,198,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,32,0,111,0,114,0,32,0,118,0,32,0,33,0,61,0,32,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,50,0,48,0,51,0,44,0,32,0,50,0,48,0,52,0,44,0,32,0,51,0,48,0,51,0,44,0,32,0,51,0,48,0,52,0,44,0,32,0,52,0,48,0,51,0,44,0,32,0,52,0,48,0,52,0,44,0,32,0,53,0,48,0,51,0,44,0,32,0,53,0,48,0,52,0,44,0,32,0,54,0,48,0,51,0,44,0,32,0,54,0,48,0,52,0,44,0,32,0,55,0,48,0,51,0,44,0,32,0,55,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,49,0,46,0,53,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,200,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,53,0,46,0,46,0,57,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,53,0,126,0,49,0,57,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,53,0,46,0,48,0,44,0,32,0,54,0,46,0,48,0,44,0,32,0,55,0,46,0,48,0,44,0,32,0,56,0,46,0,48,0,44,0,32,0,57,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,200,220,116,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,116,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,116,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,207,220,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,50,0,126,0,49,0,54,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,99,0,51,0,44,0,32,0,50,0,99,0,51,0,44,0,32,0,51,0,99,0,51,0,44,0,32,0,52,0,99,0,51,0,44,0,32,0,53,0,99,0,51,0,44,0,32,0,54,0,99,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,57,0,44,0,32,0,49,0,46,0,49,0,126,0,49,0,46,0,54,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,49,0,46,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,50,0,46,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,48,0,48,0,48,0,49,0,99,0,51,0,44,0,32,0,51,0,46,0,49,0,99,0,51,0,44,0,32,0,38,32,0,0,225,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,49,0,32,0,111,0,114,0,32,0,118,0,32,0,33,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,49,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,49,0,44,0,32,0,50,0,49,0,44,0,32,0,51,0,49,0,44,0,32,0,52,0,49,0,44,0,32,0,53,0,49,0,44,0,32,0,54,0,49,0,44,0,32,0,55,0,49,0,44,0,32,0,56,0,49,0,44,0,32,0,49,0,48,0,49,0,44,0,32,0,49,0,48,0,48,0,49,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,49,0,44,0,32,0,49,0,46,0,48,0,44,0,32,0,49,0,46,0,49,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,51,0,46,0,49,0,44,0,32,0,52,0,46,0,49,0,44,0,32,0,53,0,46,0,49,0,44,0,32,0,54,0,46,0,49,0,44,0,32,0,55,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,46,0,49,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,49,0,44,0,32,0,38,32,0,0,225,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,50,0,46,0,46,0,52,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,33,0,61,0,32,0,49,0,50,0,46,0,46,0,49,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,126,0,52,0,44,0,32,0,50,0,50,0,126,0,50,0,52,0,44,0,32,0,51,0,50,0,126,0,51,0,52,0,44,0,32,0,52,0,50,0,126,0,52,0,52,0,44,0,32,0,53,0,50,0,126,0,53,0,52,0,44,0,32,0,54,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,48,0,48,0,50,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,50,0,126,0,48,0,46,0,52,0,44,0,32,0,49,0,46,0,50,0,126,0,49,0,46,0,52,0,44,0,32,0,50,0,46,0,50,0,126,0,50,0,46,0,52,0,44,0,32,0,51,0,46,0,50,0,126,0,51,0,46,0,52,0,44,0,32,0,52,0,46,0,50,0,126,0,52,0,46,0,52,0,44,0,32,0,53,0,46,0,50,0,44,0,32,0,49,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,46,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,50,0,44,0,32,0,38,32,0,0,235,220,110,0,32,0,37,0,32,0,49,0,48,0,32,0,61,0,32,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,50,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,49,0,49,0,46,0,46,0,49,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,44,0,32,0,49,0,48,0,126,0,50,0,48,0,44,0,32,0,51,0,48,0,44,0,32,0,52,0,48,0,44,0,32,0,53,0,48,0,44,0,32,0,54,0,48,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,49,0,46,0,48,0,44,0,32,0,49,0,50,0,46,0,48,0,44,0,32,0,49,0,51,0,46,0,48,0,44,0,32,0,49,0,52,0,46,0,48,0,44,0,32,0,49,0,53,0,46,0,48,0,44,0,32,0,49,0,54,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,247,220,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,32,0,111,0,114,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,51,0,46,0,46,0,52,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,51,0,44,0,32,0,52,0,44,0,32,0,49,0,48,0,51,0,44,0,32,0,49,0,48,0,52,0,44,0,32,0,50,0,48,0,51,0,44,0,32,0,50,0,48,0,52,0,44,0,32,0,51,0,48,0,51,0,44,0,32,0,51,0,48,0,52,0,44,0,32,0,52,0,48,0,51,0,44,0,32,0,52,0,48,0,52,0,44,0,32,0,53,0,48,0,51,0,44,0,32,0,53,0,48,0,52,0,44,0,32,0,54,0,48,0,51,0,44,0,32,0,54,0,48,0,52,0,44,0,32,0,55,0,48,0,51,0,44,0,32,0,55,0,48,0,52,0,44,0,32,0,49,0,48,0,48,0,51,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,51,0,44,0,32,0,48,0,46,0,52,0,44,0,32,0,49,0,46,0,51,0,44,0,32,0,49,0,46,0,52,0,44,0,32,0,50,0,46,0,51,0,44,0,32,0,50,0,46,0,52,0,44,0,32,0,51,0,46,0,51,0,44,0,32,0,51,0,46,0,52,0,44,0,32,0,52,0,46,0,51,0,44,0,32,0,52,0,46,0,52,0,44,0,32,0,53,0,46,0,51,0,44,0,32,0,53,0,46,0,52,0,44,0,32,0,54,0,46,0,51,0,44,0,32,0,54,0,46,0,52,0,44,0,32,0,55,0,46,0,51,0,44,0,32,0,55,0,46,0,52,0,44,0,32,0,49,0,48,0,46,0,51,0,44,0,32,0,49,0,48,0,48,0,46,0,51,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,51,0,44,0,32,0,38,32,0,0,19,221,110,0,32,0,37,0,32,0,49,0,48,0,48,0,32,0,61,0,32,0,50,0,44,0,50,0,50,0,44,0,52,0,50,0,44,0,54,0,50,0,44,0,56,0,50,0,32,0,111,0,114,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,49,0,48,0,48,0,48,0,46,0,46,0,50,0,48,0,48,0,48,0,48,0,44,0,52,0,48,0,48,0,48,0,48,0,44,0,54,0,48,0,48,0,48,0,48,0,44,0,56,0,48,0,48,0,48,0,48,0,32,0,111,0,114,0,32,0,110,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,110,0,32,0,37,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,32,0,61,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,50,0,44,0,32,0,50,0,50,0,44,0,32,0,52,0,50,0,44,0,32,0,54,0,50,0,44,0,32,0,56,0,50,0,44,0,32,0,49,0,48,0,50,0,44,0,32,0,49,0,50,0,50,0,44,0,32,0,49,0,52,0,50,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,50,0,46,0,48,0,44,0,32,0,52,0,50,0,46,0,48,0,44,0,32,0,54,0,50,0,46,0,48,0,44,0,32,0,56,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,50,0,46,0,48,0,44,0,32,0,49,0,50,0,50,0,46,0,48,0,44,0,32,0,49,0,52,0,50,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,29,221,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,61,0,32,0,49,0,44,0,50,0,44,0,51,0,32,0,111,0,114,0,32,0,118,0,32,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,105,0,32,0,37,0,32,0,49,0,48,0,32,0,33,0,61,0,32,0,52,0,44,0,54,0,44,0,57,0,32,0,111,0,114,0,32,0,118,0,32,0,33,0,61,0,32,0,48,0,32,0,97,0,110,0,100,0,32,0,102,0,32,0,37,0,32,0,49,0,48,0,32,0,33,0,61,0,32,0,52,0,44,0,54,0,44,0,57,0,32,0,64,0,105,0,110,0,116,0,101,0,103,0,101,0,114,0,32,0,48,0,126,0,51,0,44,0,32,0,53,0,44,0,32,0,55,0,44,0,32,0,56,0,44,0,32,0,49,0,48,0,126,0,49,0,51,0,44,0,32,0,49,0,53,0,44,0,32,0,49,0,55,0,44,0,32,0,49,0,56,0,44,0,32,0,50,0,48,0,44,0,32,0,50,0,49,0,44,0,32,0,49,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,44,0,32,0,38,32,32,0,64,0,100,0,101,0,99,0,105,0,109,0,97,0,108,0,32,0,48,0,46,0,48,0,126,0,48,0,46,0,51,0,44,0,32,0,48,0,46,0,53,0,44,0,32,0,48,0,46,0,55,0,44,0,32,0,48,0,46,0,56,0,44,0,32,0,49,0,46,0,48,0,126,0,49,0,46,0,51,0,44,0,32,0,49,0,46,0,53,0,44,0,32,0,49,0,46,0,55,0,44,0,32,0,49,0,46,0,56,0,44,0,32,0,50,0,46,0,48,0,44,0,32,0,50,0,46,0,49,0,44,0,32,0,49,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,46,0,48,0,44,0,32,0,38,32,0,0,219,0,40,0,43,0,46,0,49,0,52,0,55,0,129,1,59,0,63,0,67,0,70,0,74,0,77,0,81,0,85,0,88,0,92,0,95,0,16,1,98,0,101,0,105,0,108,0,111,0,114,0,118,0,122,0,126,0,130,0,133,0,136,0,52,1,139,0,143,0,147,0,150,0,153,0,156,0,159,0,111,2,39,2,162,0,165,0,168,0,171,0,174,0,177,0,181,0,184,0,187,0,191,0,194,0,197,0,200,0,203,0,207,0,210,0,214,0,217,0,220,0,224,0,46,2,227,0,123,0,231,0,235,0,238,0,241,0,244,0,121,2,247,0,250,0,253,0,0,1,3,1,6,1,9,1,12,1,15,1,19,1,23,1,26,1,30,1,33,1,36,1,39,1,43,1,47,1,51,1,55,1,59,1,62,1,66,1,69,1,72,1,75,1,78,1,81,1,85,1,89,1,92,1,95,1,98,1,102,1,105,1,108,1,112,1,116,1,119,1,122,1,125,1,128,1,132,1,135,1,139,1,142,1,71,2,145,1,148,1,75,2,151,1,154,1,157,1,161,1,165,1,168,1,246,2,171,1,174,1,177,1,181,1,184,1,188,1,191,1,79,3,195,1,199,1,202,1,205,1,208,1,212,1,215,1,219,1,223,1,226,1,230,1,233,1,236,1,242,1,13,3,245,1,249,1,254,1,1,2,5,2,9,2,13,2,17,2,20,2,24,2,27,2,31,2,34,2,38,2,42,2,86,1,45,2,49,2,52,2,55,2,58,2,62,2,66,2,70,2,74,2,78,2,192,1,81,2,84,2,87,2,90,2,64,0,94,2,97,2,204,0,100,2,104,2,107,2,110,2,114,2,117,2,120,2,124,2,127,2,130,2,133,2,136,2,140,2,143,2,146,2,150,2,153,2,188,0,156,2,159,2,162,2,166,2,169,2,172,2,176,2,179,2,35,3,183,2,186,2,190,2,193,2,196,2,200,2,203,2,1,0,21,0,16,0,1,0,129,0,129,0,16,0,1,0,11,0,1,0,1,0,207,0,1,0,1,0,1,0,21,0,6,0,16,0,6,0,219,0,1,0,69,0,75,0,1,0,87,0,1,0,1,0,1,0,117,0,249,0,41,0,11,0,16,0,111,0,1,0,6,0,1,0,1,0,11,0,1,0,183,0,11,0,1,0,16,0,26,0,11,0,87,0,1,0,171,0,1,0,11,0,231,0,189,0,11,0,1,0,16,0,21,0,237,0,1,0,1,0,99,0,16,0,6,0,69,0,111,0,1,0,26,0,11,0,6,0,6,0,6,0,6,0,11,0,46,0,75,0,63,0,99,0,6,0,6,0,1,0,11,0,1,0,6,0,6,0,1,0,26,0,1,0,1,0,6,0,6,0,1,0,1,0,1,0,6,0,16,0,6,0,1,0,1,0,159,0,1,0,243,0,1,0,153,0,1,0,1,0,11,0,6,0,21,0,6,0,213,0,93,0,1,0,21,0,1,0,147,0,1,0,1,0,105,0,1,0,6,0,225,0,6,0,1,0,63,0,1,0,1,0,1,0,11,0,1,0,1,0,1,0,6,0,1,0,21,0,1,0,1,0,1,0,1,0,1,0,6,0,21,0,1,0,16,0,201,0,93,0,1,0,177,0,75,0,1,0,105,0,1,0,6,0,123,0,1,0,6,0,1,0,63,0,11,0,11,0,1,0,1,0,63,0,1,0,6,0,6,0,69,0,165,0,31,0,117,0,195,0,63,0,63,0,63,0,63,0,63,0,1,0,1,0,1,0,69,0,1,0,1,0,1,0,6,0,11,0,11,0,1,0,1,0,1,0,1,0,6,0,21,0,1,0,1,0,87,0,1,0,6,0,6,0,1,0,1,0,36,0,1,0,123,0,11,0,1,0,1,0,75,0,6,0,1,0,1,0,21,0,1,0,6,0,1,0,1,0,11,0,6,0,6,0,6,0,16,0,104,0,40,0,46,0,49,0,52,0,129,1,63,0,67,0,70,0,74,0,85,0,95,0,105,0,108,0,111,0,130,0,133,0,136,0,52,1,143,0,156,0,159,0,39,2,162,0,165,0,168,0,174,0,177,0,184,0,191,0,194,0,197,0,200,0,203,0,207,0,224,0,46,2,123,0,231,0,235,0,238,0,241,0,244,0,250,0,0,1,3,1,9,1,12,1,36,1,59,1,69,1,72,1,75,1,92,1,95,1,108,1,119,1,122,1,125,1,139,1,142,1,71,2,145,1,148,1,75,2,154,1,165,1,246,2,171,1,181,1,202,1,212,1,223,1,226,1,230,1,233,1,13,3,249,1,254,1,17,2,20,2,24,2,86,1,49,2,52,2,55,2,81,2,84,2,97,2,204,0,104,2,107,2,114,2,124,2,127,2,136,2,140,2,153,2,188,0,156,2,162,2,166,2,196,2,200,2,203,2,51,0,51,0,51,0,51,0,141,0,51,0,95,1,57,0,17,1,51,0,141,0,51,0,83,1,51,0,51,0,107,1,51,0,51,0,51,0,51,0,65,1,51,0,51,0,51,0,51,0,51,0,57,0,57,0,51,0,57,0,77,1,51,0,51,0,135,0,51,0,135,0,51,0,51,0,5,1,57,0,51,0,51,0,51,0,51,0,81,0,51,0,51,0,47,1,35,1,51,0,51,0,51,0,59,1,51,0,41,1,57,0,51,0,51,0,89,1,51,0,51,0,57,0,71,1,57,0,51,0,51,0,11,1,51,0,51,0,101,1,51,0,51,0,51,0,51,0,51,0,57,0,51,0,51,0,81,0,81,0,51,0,51,0,51,0,51,0,51,0,53,1,51,0,255,0,51,0,51,0,51,0,51,0,29,1,57,0,51,0,51,0,23,1,51,0,51,0,81,0,57,0,51,0,51,0,51,0,1,0,234,2,168,24,2,0,245,2,234,2,242,7,37,25,2,0,245,2,234,2,229,50,44,37,2,0,245,2,234,2,96,60,162,25,3,0,245,2,234,2,11,3,159,55,250,16,101,57,3,0,245,2,234,2,11,3,232,3,43,24,76,4,3,0,245,2,234,2,11,3,24,4,38,29,76,4,3,0,245,2,234,2,34,3,240,11,28,27,173,2,3,0,245,2,234,2,34,3,24,4,94,33,128,4,3,0,50,3,245,2,234,2,55,23,242,7,184,30,3,0,50,3,245,2,234,2,36,41,146,2,245,5,3,0,50,3,245,2,234,2,130,56,229,50,185,41,2,0,245,2,234,2,73,3,43,24,3,0,77,3,245,2,234,2,171,48,73,3,32,50,3,0,77,3,245,2,234,2,171,48,152,3,32,50,3,0,77,3,245,2,234,2,171,48,146,2,170,51,3,0,77,3,245,2,234,2,171,48,24,4,206,54,4,0,50,3,245,2,234,2,34,3,77,32,195,13,113,34,19,14,4,0,50,3,245,2,234,2,34,3,114,52,215,12,14,7,37,13,4,0,50,3,245,2,234,2,34,3,82,58,92,45,185,41,1,46,4,0,50,3,77,3,245,2,234,2,228,2,99,14,146,2,14,7,4,0,50,3,77,3,245,2,234,2,47,19,144,40,146,2,15,11,4,0,50,3,77,3,245,2,234,2,166,46,58,53,128,43,28,5,2,0,245,2,234,2,146,2,156,26,4,0,50,3,77,3,245,2,234,2,186,37,83,9,188,44,250,47,4,0,50,3,77,3,245,2,234,2,47,19,50,30,167,17,15,11,5,0,50,3,77,3,245,2,234,2,34,3,97,49,153,19,80,42,176,23,232,42,5,0,50,3,77,3,245,2,234,2,34,3,161,28,31,26,24,4,63,31,128,4,5,0,50,3,77,3,245,2,234,2,34,3,198,31,17,36,24,4,231,33,128,4,5,0,50,3,77,3,245,2,234,2,34,3,6,20,99,14,90,11,112,3,165,11,6,0,50,3,77,3,245,2,234,2,34,3,11,3,216,38,28,44,24,4,99,18,75,59,76,4,6,0,50,3,77,3,245,2,234,2,34,3,11,3,229,20,190,22,24,4,77,47,128,4,76,4,6,0,50,3,77,3,245,2,234,2,34,3,11,3,180,4,232,4,24,4,133,35,128,4,76,4,1,0,234,2,82,5,2,0,245,2,234,2,156,27,172,29,2,0,245,2,234,2,208,21,156,6,2,0,245,2,234,2,113,1,99,6,2,0,245,2,234,2,242,1,143,9,2,0,245,2,234,2,8,2,14,7,2,0,50,3,234,2,71,22,219,8,2,0,50,3,234,2,180,14,160,8,2,0,50,3,234,2,115,13,137,12,2,0,77,3,234,2,73,38,136,5,2,0,77,3,234,2,192,3,204,10,2,0,77,3,234,2,185,7,204,10,2,0,245,2,234,2,166,16,38,29,3,0,77,3,245,2,234,2,138,10,181,1,44,6,3,0,77,3,245,2,234,2,83,16,113,1,11,10,3,0,77,3,245,2,234,2,60,12,199,18,71,7,4,0,50,3,245,2,234,2,34,3,180,14,173,15,213,6,0,16,4,0,50,3,245,2,234,2,34,3,130,1,113,1,14,7,198,1,4,0,50,3,245,2,234,2,34,3,122,2,74,2,74,10,98,2,4,0,50,3,245,2,234,2,34,3,130,1,220,1,14,7,164,1,4,0,77,3,245,2,234,2,34,3,89,21,7,15,205,9,90,15,4,0,50,3,77,3,245,2,234,2,252,39,4,18,116,20,80,17,5,0,50,3,77,3,245,2,234,2,34,3,130,1,147,1,113,1,23,9,198,1,2,0,245,2,234,2,105,39,251,34,5,0,50,3,77,3,245,2,234,2,34,3,130,1,147,1,36,3,102,8,198,1,5,0,50,3,77,3,245,2,234,2,34,3,130,1,147,1,4,3,44,8,198,1,6,0,50,3,77,3,245,2,234,2,34,3,11,3,30,2,52,2,113,1,190,5,164,1,200,2,2,0,245,2,234,2,24,4,213,32,2,0,245,2,234,2,128,7,28,28,2,0,245,2,234,2,4,54,158,36,63,0,229,2,240,2,249,2,255,2,5,3,16,3,22,3,28,3,38,3,44,3,54,3,60,3,66,3,71,3,82,3,88,3,94,3,100,3,106,3,112,3,118,3,124,3,130,3,136,3,141,3,147,3,153,3,159,3,165,3,171,3,177,3,183,3,189,3,195,3,201,3,206,3,212,3,218,3,224,3,230,3,236,3,242,3,248,3,254,3,4,4,10,4,15,4,21,4,27,4,33,4,39,4,45,4,51,4,57,4,63,4,69,4,75,4,80,4,86,4,92,4,98,4,103,4,108,4,7,64,0,80,10,64,0,80,15,64,0,80,20,64,0,80,25,64,0,80,32,64,0,80,39,64,0,80,46,64,0,80,53,64,0,80,60,64,0,80,67,64,0,80,74,64,0,80,81,64,0,80,86,64,0,80,93,64,0,80,100,64,0,80,107,64,0,80,114,64,0,80,123,64,0,80,132,64,0,80,141,64,0,80,150,64,0,80,159,64,0,80,168,64,0,80,173,64,0,80,182,64,0,80,191,64,0,80,202,64,0,80,213,64,0,80,224,64,0,80,235,64,0,80,248,64,0,80,5,65,0,80,18,65,0,80,21,65,0,80,26,65,0,80,31,65,0,80,36,65,0,80,41,65,0,80,46,65,0,80,51,65,0,80,56,65,0,80,61,65,0,80,66,65,0,80,71,65,0,80,76,65,0,80,81,65,0,80,88,65,0,80,95,65,0,80,102,65,0,80,111,65,0,80,120,65,0,80,129,65,0,80,138,65,0,80,147,65,0,80,156,65,0,80,167,65,0,80,172,65,0,80,183,65,0,80,194,65,0,80,207,65,0,80,212,65,0,80,217,65,0,80,3,0,32,0,206,2,223,2,127,61,0,80,54,63,0,80,12,34,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,131,235,0,32,7,0,0,0,48,6,0,0,160,235,0,0,160,235,0,0,23,3,0,0,1,0,0,0,129,161,0,0,99,97,108,101,110,100,97,114,68,97,116,97,0,98,117,100,100,104,105,115,116,0,101,114,97,115,0,115,116,97,114,116,0,115,121,115,116,101,109,0,99,104,105,110,101,115,101,0,99,111,112,116,105,99,0,101,110,100,0,100,97,110,103,105,0,101,116,104,105,111,112,105,99,0,101,116,104,105,111,112,105,99,45,97,109,101,116,101,45,97,108,101,109,0,103,114,101,103,111,114,105,97,110,0,104,101,98,114,101,119,0,105,110,100,105,97,110,0,105,115,108,97,109,105,99,0,105,115,108,97,109,105,99,45,99,105,118,105,108,0,105,115,108,97,109,105,99,45,114,103,115,97,0,105,115,108,97,109,105,99,45,116,98,108,97,0,105,115,108,97,109,105,99,45,117,109,97,108,113,117,114,97,0,106,97,112,97,110,101,115,101,0,49,48,48,0,49,48,49,0,49,48,50,0,49,48,51,0,49,48,52,0,49,48,53,0,49,48,54,0,49,48,55,0,49,48,56,0,49,48,57,0,49,49,48,0,49,49,49,0,49,49,50,0,49,49,51,0,49,49,52,0,49,49,53,0,49,49,54,0,49,49,55,0,49,49,56,0,49,49,57,0,49,50,48,0,49,50,49,0,49,50,50,0,49,50,51,0,49,50,52,0,49,50,53,0,49,50,54,0,49,50,55,0,49,50,56,0,49,50,57,0,49,51,48,0,49,51,49,0,49,51,50,0,49,51,51,0,49,51,52,0,49,51,53,0,49,51,54,0,49,51,55,0,49,51,56,0,49,51,57,0,49,52,48,0,49,52,49,0,49,52,50,0,49,52,51,0,49,52,52,0,49,52,53,0,49,52,54,0,49,52,55,0,49,52,56,0,49,52,57,0,49,53,49,0,49,53,50,0,49,53,51,0,49,53,52,0,49,53,53,0,49,53,54,0,49,53,55,0,49,53,56,0,49,53,57,0,49,54,48,0,49,54,49,0,49,54,50,0,49,54,51,0,49,54,52,0,49,54,53,0,49,54,54,0,49,54,55,0,49,54,56,0,49,54,57,0,49,55,48,0,49,55,49,0,49,55,50,0,49,55,51,0,49,55,52,0,49,55,53,0,49,55,54,0,49,55,55,0,49,55,56,0,49,55,57,0,49,56,48,0,49,56,49,0,49,56,50,0,49,56,51,0,49,56,52,0,49,56,53,0,49,56,54,0,49,56,55,0,49,56,56,0,49,56,57,0,49,57,48,0,49,57,49,0,49,57,50,0,49,57,51,0,49,57,52,0,49,57,53,0,49,57,54,0,49,57,55,0,49,57,56,0,49,57,57,0,50,48,48,0,50,48,49,0,50,48,50,0,50,48,51,0,50,48,52,0,50,48,53,0,50,48,54,0,50,48,55,0,50,48,56,0,50,48,57,0,50,49,48,0,50,49,49,0,50,49,50,0,50,49,51,0,50,49,52,0,50,49,53,0,50,49,54,0,50,49,55,0,50,49,56,0,50,49,57,0,50,50,48,0,50,50,49,0,50,50,50,0,50,50,51,0,50,50,52,0,50,50,53,0,50,50,54,0,50,50,55,0,50,50,56,0,50,50,57,0,50,51,48,0,50,51,49,0,50,51,50,0,50,51,51,0,50,51,52,0,50,51,53,0,50,51,54,0,112,101,114,115,105,97,110,0,114,111,99,0,99,97,108,101,110,100,97,114,80,114,101,102,101,114,101,110,99,101,68,97,116,97,0,65,69,0,65,70,0,65,76,0,65,90,0,66,68,0,66,72,0,67,78,0,67,88,0,68,74,0,68,90,0,69,71,0,69,72,0,69,82,0,69,84,0,73,68,0,73,76,0,73,81,0,73,82,0,74,79,0,74,80,0,75,77,0,75,82,0,75,87,0,76,66,0,76,89,0,77,65,0,77,79,0,77,82,0,77,86,0,77,89,0,78,69,0,79,77,0,80,75,0,80,83,0,81,65,0,83,65,0,83,68,0,83,71,0,83,89,0,84,68,0,84,72,0,84,74,0,84,77,0,84,78,0,84,82,0,85,90,0,88,75,0,89,69,0,99,108,100,114,86,101,114,115,105,111,110,0,99,111,100,101,77,97,112,112,105,110,103,115,0,99,111,100,101,77,97,112,112,105,110,103,115,67,117,114,114,101,110,99,121,0,105,100,86,97,108,105,100,105,116,121,0,99,117,114,114,101,110,99,121,0,100,101,112,114,101,99,97,116,101,100,0,114,101,103,117,108,97,114,0,117,110,107,110,111,119,110,0,108,97,110,103,117,97,103,101,0,112,114,105,118,97,116,101,95,117,115,101,0,114,101,115,101,114,118,101,100,0,115,112,101,99,105,97,108,0,109,97,99,114,111,114,101,103,105,111,110,0,115,99,114,105,112,116,0,115,117,98,100,105,118,105,115,105,111,110,0,117,110,105,116,0,108,97,110,103,117,97,103,101,68,97,116,97,0,112,114,105,109,97,114,121,0,115,99,114,105,112,116,115,0,115,101,99,111,110,100,97,114,121,0,116,101,114,114,105,116,111,114,105,101,115,0,97,98,113,0,97,98,114,0,97,99,101,0,97,99,104,0,97,100,97,0,97,100,121,0,97,101,98,0,97,103,113,0,97,105,105,0,97,105,110,0,97,107,107,0,97,107,122,0,97,108,101,0,97,108,110,0,97,108,116,0,97,109,111,0,97,110,103,0,97,110,110,0,97,110,112,0,97,111,122,0,97,114,99,0,97,114,110,0,97,114,111,0,97,114,112,0,97,114,113,0,97,114,115,0,97,114,119,0,97,114,122,0,97,115,97,0,97,115,116,0,97,116,106,0,97,118,107,0,97,119,97,0,98,97,108,0,98,97,110,0,98,97,112,0,98,97,114,0,98,97,115,0,98,97,120,0,98,98,99,0,98,98,106,0,98,99,105,0,98,101,106,0,98,101,109,0,98,101,119,0,98,101,122,0,98,102,100,0,98,102,113,0,98,102,116,0,98,102,121,0,98,103,0,98,103,99,0,98,103,110,0,98,103,120,0,98,104,98,0,98,104,105,0,98,104,111,0,98,105,0,98,105,107,0,98,105,110,0,98,106,106,0,98,106,110,0,98,106,116,0,98,107,109,0,98,107,117,0,98,108,116,0,98,109,113,0,98,110,0,98,112,121,0,98,113,105,0,98,113,118,0,98,114,97,0,98,114,104,0,98,114,120,0,98,115,0,98,115,99,0,98,115,115,0,98,116,111,0,98,116,118,0,98,117,97,0,98,117,99,0,98,117,103,0,98,117,109,0,98,118,98,0,98,121,110,0,98,121,118,0,98,122,101,0,98,122,120,0,99,97,100,0,99,97,114,0,99,97,121,0,99,99,104,0,99,99,112,0,99,101,98,0,99,103,103,0,99,104,107,0,99,104,109,0,99,104,110,0,99,104,111,0,99,104,112,0,99,104,114,0,99,104,121,0,99,105,99,0,99,106,97,0,99,106,109,0,99,106,115,0,99,107,98,0,99,107,116,0,99,108,99,0,99,111,112,0,99,112,115,0,99,114,103,0,99,114,104,0,99,114,106,0,99,114,107,0,99,114,108,0,99,114,109,0,99,114,115,0,99,115,98,0,99,115,119,0,99,116,100,0,99,117,0,99,118,0,100,97,107,0,100,97,114,0,100,97,118,0,100,99,99,0,100,101,108,0,100,101,110,0,100,103,114,0,100,105,110,0,100,106,101,0,100,110,103,0,100,110,106,0,100,111,105,0,100,115,98,0,100,116,109,0,100,116,112,0,100,116,121,0,100,117,97,0,100,117,109,0,100,118,0,100,121,111,0,100,121,117,0,100,122,0,101,98,117,0,101,102,105,0,101,103,108,0,101,103,121,0,101,107,97,0,101,107,121,0,101,110,109,0,101,115,117,0,101,116,116,0,101,118,110,0,101,119,111,0,101,120,116,0,102,97,110,0,102,98,108,0,102,102,0,102,102,109,0,102,105,97,0,102,105,108,0,102,105,116,0,102,106,0,102,111,110,0,102,114,99,0,102,114,109,0,102,114,111,0,102,114,112,0,102,114,114,0,102,114,115,0,102,117,100,0,102,117,113,0,102,117,114,0,102,117,118,0,102,118,114,0,103,97,97,0,103,97,103,0,103,97,110,0,103,97,121,0,103,98,97,0,103,98,109,0,103,98,122,0,103,99,114,0,103,100,0,103,101,122,0,103,105,108,0,103,106,107,0,103,106,117,0,103,108,100,0,103,108,107,0,103,109,104,0,103,111,104,0,103,111,109,0,103,111,110,0,103,111,114,0,103,111,115,0,103,111,116,0,103,114,98,0,103,114,99,0,103,114,116,0,103,115,119,0,103,117,0,103,117,98,0,103,117,99,0,103,117,114,0,103,117,122,0,103,118,0,103,118,114,0,103,119,105,0,104,97,105,0,104,97,107,0,104,97,122,0,104,105,102,0,104,105,108,0,104,105,116,0,104,109,100,0,104,109,110,0,104,110,100,0,104,110,101,0,104,110,106,0,104,110,110,0,104,110,111,0,104,111,99,0,104,111,106,0,104,111,112,0,104,115,98,0,104,115,110,0,104,117,0,104,117,112,0,104,117,114,0,104,122,0,105,98,97,0,105,98,98,0,105,102,101,0,105,107,116,0,105,108,111,0,105,110,104,0,105,122,104,0,106,97,109,0,106,103,111,0,106,109,99,0,106,109,108,0,106,112,114,0,106,114,98,0,106,117,116,0,106,118,0,107,97,97,0,107,97,98,0,107,97,99,0,107,97,106,0,107,97,109,0,107,97,111,0,107,98,100,0,107,99,97,0,107,99,103,0,107,99,107,0,107,100,101,0,107,100,116,0,107,101,97,0,107,102,111,0,107,102,114,0,107,102,121,0,107,103,0,107,103,101,0,107,103,112,0,107,104,97,0,107,104,98,0,107,104,110,0,107,104,113,0,107,104,116,0,107,104,119,0,107,105,117,0,107,106,103,0,107,106,104,0,107,107,106,0,107,108,110,0,107,109,98,0,107,110,0,107,110,102,0,107,111,105,0,107,111,107,0,107,111,115,0,107,112,101,0,107,112,121,0,107,114,99,0,107,114,105,0,107,114,106,0,107,114,108,0,107,114,117,0,107,115,0,107,115,98,0,107,115,102,0,107,115,104,0,107,117,109,0,107,117,116,0,107,118,0,107,118,114,0,107,118,120,0,107,119,0,107,119,107,0,107,120,109,0,107,120,112,0,107,121,117,0,108,97,98,0,108,97,100,0,108,97,103,0,108,97,104,0,108,97,106,0,108,97,109,0,108,98,0,108,98,101,0,108,98,119,0,108,99,112,0,108,101,112,0,108,101,122,0,108,102,110,0,108,105,102,0,108,105,106,0,108,105,108,0,108,105,115,0,108,105,118,0,108,106,112,0,108,107,105,0,108,107,116,0,108,109,110,0,108,109,111,0,108,111,108,0,108,111,122,0,108,114,99,0,108,116,103,0,108,117,0,108,117,97,0,108,117,105,0,108,117,110,0,108,117,111,0,108,117,115,0,108,117,116,0,108,117,121,0,108,117,122,0,108,118,0,108,119,108,0,108,122,104,0,108,122,122,0,109,97,100,0,109,97,102,0,109,97,103,0,109,97,105,0,109,97,107,0,109,97,110,0,109,97,115,0,109,97,122,0,109,100,102,0,109,100,104,0,109,100,114,0,109,100,116,0,109,101,110,0,109,101,114,0,109,101,121,0,109,102,97,0,109,102,101,0,109,102,118,0,109,103,104,0,109,103,111,0,109,103,112,0,109,103,121,0,109,105,110,0,109,107,0,109,108,115,0,109,110,99,0,109,110,105,0,109,110,115,0,109,110,119,0,109,111,101,0,109,111,104,0,109,111,115,0,109,114,100,0,109,114,106,0,109,114,111,0,109,116,114,0,109,117,97,0,109,117,115,0,109,118,121,0,109,119,107,0,109,119,108,0,109,119,114,0,109,119,118,0,109,120,99,0,109,121,0,109,121,118,0,109,121,120,0,109,121,122,0,109,122,110,0,110,97,110,0,110,97,112,0,110,99,104,0,110,100,99,0,110,100,115,0,110,101,119,0,110,103,108,0,110,104,101,0,110,104,119,0,110,105,97,0,110,105,106,0,110,105,117,0,110,106,111,0,110,109,103,0,110,110,104,0,110,111,100,0,110,111,101,0,110,111,103,0,110,111,110,0,110,111,118,0,110,113,111,0,110,115,107,0,110,115,111,0,110,117,115,0,110,118,0,110,120,113,0,110,121,0,110,121,109,0,110,121,110,0,110,121,111,0,110,122,105,0,111,106,115,0,111,107,97,0,111,115,97,0,111,115,99,0,111,116,107,0,112,97,0,112,97,103,0,112,97,108,0,112,97,109,0,112,97,112,0,112,97,117,0,112,99,100,0,112,99,109,0,112,100,99,0,112,100,116,0,112,101,111,0,112,102,108,0,112,104,110,0,112,105,115,0,112,107,111,0,112,108,0,112,109,115,0,112,110,116,0,112,111,110,0,112,113,109,0,112,114,100,0,112,114,103,0,112,114,111,0,112,117,117,0,113,117,0,113,117,99,0,113,117,103,0,114,97,106,0,114,97,112,0,114,97,114,0,114,99,102,0,114,101,106,0,114,103,110,0,114,104,103,0,114,105,97,0,114,105,102,0,114,106,115,0,114,107,116,0,114,109,102,0,114,109,111,0,114,109,116,0,114,109,117,0,114,110,103,0,114,111,98,0,114,111,102,0,114,111,109,0,114,116,109,0,114,117,101,0,114,117,103,0,114,117,112,0,114,119,107,0,114,121,117,0,115,97,100,0,115,97,102,0,115,97,104,0,115,97,109,0,115,97,113,0,115,97,116,0,115,97,118,0,115,97,122,0,115,98,112,0,115,99,107,0,115,99,111,0,115,99,115,0,115,100,99,0,115,100,104,0,115,101,101,0,115,101,102,0,115,101,104,0,115,101,105,0,115,101,108,0,115,101,115,0,115,103,115,0,115,104,105,0,115,104,110,0,115,105,100,0,115,107,114,0,115,108,105,0,115,108,121,0,115,109,97,0,115,109,106,0,115,109,110,0,115,109,112,0,115,109,115,0,115,110,102,0,115,110,107,0,115,111,117,0,115,113,0,115,114,98,0,115,114,110,0,115,114,114,0,115,114,120,0,115,115,121,0,115,116,113,0,115,117,107,0,115,117,115,0,115,118,0,115,119,98,0,115,119,103,0,115,119,118,0,115,120,110,0,115,121,105,0,115,121,108,0,115,121,114,0,115,122,108,0,116,97,98,0,116,97,106,0,116,98,119,0,116,99,121,0,116,100,100,0,116,100,103,0,116,100,104,0,116,101,111,0,116,101,114,0,116,101,116,0,116,104,0,116,104,108,0,116,104,113,0,116,104,114,0,116,105,0,116,105,103,0,116,105,118,0,116,107,114,0,116,107,116,0,116,108,105,0,116,108,121,0,116,109,104,0,116,110,114,0,116,111,103,0,116,111,107,0,116,112,105,0,116,114,117,0,116,114,118,0,116,114,119,0,116,115,100,0,116,115,103,0,116,115,105,0,116,115,106,0,116,116,106,0,116,116,115,0,116,116,116,0,116,117,109,0,116,119,113,0,116,121,118,0,116,122,109,0,117,100,101,0,117,100,109,0,117,103,97,0,117,108,105,0,117,109,98,0,117,110,100,0,117,110,114,0,117,110,120,0,118,97,105,0,118,101,0,118,101,99,0,118,101,112,0,118,105,0,118,105,99,0,118,108,115,0,118,109,102,0,118,109,119,0,118,111,116,0,118,114,111,0,118,117,110,0,119,97,101,0,119,97,114,0,119,97,115,0,119,98,112,0,119,98,113,0,119,98,114,0,119,110,105,0,119,116,109,0,119,117,117,0,120,97,108,0,120,97,118,0,120,99,114,0,120,104,0,120,108,99,0,120,108,100,0,120,109,102,0,120,109,110,0,120,109,114,0,120,110,97,0,120,110,114,0,120,111,103,0,120,112,114,0,120,115,97,0,120,115,114,0,120,117,109,0,121,97,111,0,121,97,112,0,121,97,118,0,121,98,98,0,121,114,107,0,121,117,97,0,121,117,101,0,122,97,103,0,122,97,112,0,122,100,106,0,122,101,97,0,122,101,110,0,122,103,104,0,122,109,105,0,122,117,0,122,117,110,0,122,122,97,0,108,97,110,103,117,97,103,101,77,97,116,99,104,105,110,103,73,110,102,111,0,119,114,105,116,116,101,110,0,109,97,116,99,104,86,97,114,105,97,98,108,101,0,97,109,101,114,105,99,97,115,0,99,110,115,97,114,0,101,110,85,83,0,109,97,103,104,114,101,98,0,112,97,114,97,100,105,103,109,76,111,99,97,108,101,115,0,108,97,110,103,117,97,103,101,77,97,116,99,104,105,110,103,78,101,119,0,109,101,97,115,117,114,101,109,101,110,116,68,97,116,97,0,77,101,97,115,117,114,101,109,101,110,116,83,121,115,116,101,109,0,80,97,112,101,114,83,105,122,101,0,66,83,0,77,101,97,115,117,114,101,109,101,110,116,83,121,115,116,101,109,67,97,116,101,103,111,114,121,0,116,101,109,112,101,114,97,116,117,114,101,0,66,90,0,67,76,0,67,79,0,67,82,0,71,66,0,71,84,0,75,89,0,76,82,0,77,77,0,77,88,0,78,73,0,80,65,0,80,72,0,80,82,0,80,87,0,83,86,0,86,69,0,112,97,114,101,110,116,76,111,99,97,108,101,115,0,101,110,95,48,48,49,0,101,110,95,49,53,48,0,101,110,95,73,78,0,101,115,95,52,49,57,0,102,114,95,72,84,0,112,116,95,80,84,0,114,111,111,116,0,122,104,95,72,97,110,116,95,72,75,0,112,101,114,115,111,110,78,97,109,101,115,68,101,102,97,117,108,116,115,0,110,97,109,101,79,114,100,101,114,76,111,99,97,108,101,115,68,101,102,97,117,108,116,0,103,105,118,101,110,70,105,114,115,116,0,115,117,114,110,97,109,101,70,105,114,115,116,0,115,117,98,100,105,118,105,115,105,111,110,67,111,110,116,97,105,110,109,101,110,116,0,65,68,0,65,71,0,65,77,0,65,79,0,65,82,0,65,84,0,65,85,0,66,65,0,66,66,0,66,69,0,66,70,0,66,71,0,66,73,0,66,74,0,66,78,0,66,81,0,66,84,0,66,87,0,66,89,0,67,68,0,67,70,0,67,71,0,67,73,0,67,77,0,67,85,0,67,86,0,67,89,0,67,90,0,68,69,0,68,75,0,68,77,0,68,79,0,69,69,0,70,73,0,70,74,0,70,77,0,70,82,0,71,65,0,71,68,0,71,69,0,71,72,0,71,76,0,71,77,0,71,78,0,71,82,0,71,87,0,71,89,0,72,78,0,72,82,0,72,85,0,73,69,0,73,83,0,74,77,0,75,69,0,75,71,0,75,72,0,75,73,0,75,78,0,75,80,0,75,90,0,76,65,0,76,67,0,76,73,0,76,75,0,76,83,0,76,84,0,76,85,0,76,86,0,77,67,0,77,68,0,77,69,0,77,71,0,77,72,0,77,75,0,77,76,0,77,78,0,77,84,0,77,85,0,77,87,0,77,90,0,78,65,0,78,71,0,78,76,0,78,79,0,78,80,0,78,82,0,78,90,0,80,71,0,80,76,0,80,89,0,82,79,0,82,83,0,82,85,0,82,87,0,83,66,0,83,67,0,83,69,0,83,72,0,83,73,0,83,75,0,83,76,0,83,77,0,83,78,0,83,79,0,83,82,0,83,83,0,83,84,0,83,90,0,84,71,0,84,76,0,84,79,0,84,84,0,84,86,0,84,90,0,85,65,0,85,71,0,85,77,0,85,89,0,86,67,0,86,78,0,86,85,0,87,70,0,87,83,0,90,77,0,90,87,0,97,122,110,120,0,98,100,97,0,98,100,98,0,98,100,99,0,98,100,100,0,98,100,101,0,98,100,102,0,98,100,103,0,98,100,104,0,98,101,118,108,103,0,98,101,119,97,108,0,98,102,48,49,0,98,102,48,50,0,98,102,48,51,0,98,102,48,52,0,98,102,48,53,0,98,102,48,54,0,98,102,48,55,0,98,102,48,56,0,98,102,48,57,0,98,102,49,48,0,98,102,49,49,0,98,102,49,50,0,98,102,49,51,0,99,118,98,0,99,118,115,0,99,122,50,48,0,99,122,51,49,0,99,122,51,50,0,99,122,52,49,0,99,122,52,50,0,99,122,53,49,0,99,122,53,50,0,99,122,53,51,0,99,122,54,51,0,99,122,54,52,0,99,122,55,49,0,99,122,55,50,0,99,122,56,48,0,100,111,51,51,0,100,111,51,52,0,100,111,51,53,0,100,111,51,54,0,100,111,51,55,0,100,111,51,56,0,100,111,51,57,0,100,111,52,48,0,100,111,52,49,0,100,111,52,50,0,101,101,51,55,0,101,101,51,57,0,101,101,52,53,0,101,101,53,48,0,101,101,53,50,0,101,101,53,54,0,101,101,54,48,0,101,101,54,52,0,101,101,54,56,0,101,101,55,49,0,101,101,55,52,0,101,101,55,57,0,101,101,56,49,0,101,101,56,52,0,101,101,56,55,0,101,115,97,110,0,101,115,97,114,0,101,115,97,115,0,101,115,99,98,0,101,115,99,108,0,101,115,99,109,0,101,115,99,110,0,101,115,99,116,0,101,115,101,120,0,101,115,103,97,0,101,115,105,98,0,101,115,109,99,0,101,115,109,100,0,101,115,110,99,0,101,115,112,118,0,101,115,114,105,0,101,115,118,99,0,102,106,99,0,102,106,101,0,102,106,110,0,102,106,119,0,102,114,50,48,114,0,102,114,97,114,97,0,102,114,98,102,99,0,102,114,98,114,101,0,102,114,99,118,108,0,102,114,103,101,115,0,102,114,104,100,102,0,102,114,105,100,102,0,102,114,110,97,113,0,102,114,110,111,114,0,102,114,111,99,99,0,102,114,112,97,99,0,102,114,112,100,108,0,103,98,101,110,103,0,103,98,110,105,114,0,103,98,115,99,116,0,103,98,119,108,115,0,103,110,98,0,103,110,100,0,103,110,102,0,103,110,107,0,103,110,108,0,103,110,109,0,103,110,110,0,103,113,99,0,103,113,105,0,103,119,108,0,103,119,110,0,103,119,115,0,105,100,106,119,0,105,100,107,97,0,105,100,109,108,0,105,100,110,117,0,105,100,112,112,0,105,100,115,108,0,105,100,115,109,0,105,101,99,0,105,101,108,0,105,101,109,0,105,101,117,0,105,113,107,114,0,105,115,49,0,105,115,50,0,105,115,51,0,105,115,52,0,105,115,53,0,105,115,54,0,105,115,55,0,105,115,56,0,105,116,50,49,0,105,116,50,53,0,105,116,51,50,0,105,116,51,52,0,105,116,51,54,0,105,116,52,50,0,105,116,52,53,0,105,116,53,50,0,105,116,53,53,0,105,116,53,55,0,105,116,54,50,0,105,116,54,53,0,105,116,54,55,0,105,116,55,50,0,105,116,55,53,0,105,116,55,55,0,105,116,55,56,0,105,116,56,50,0,105,116,56,56,0,107,110,107,0,107,110,110,0,108,107,49,0,108,107,50,0,108,107,51,0,108,107,52,0,108,107,53,0,108,107,54,0,108,107,55,0,108,107,56,0,108,107,57,0,108,116,97,108,0,108,116,107,108,0,108,116,107,117,0,108,116,109,114,0,108,116,112,110,0,108,116,115,97,0,108,116,116,97,0,108,116,116,101,0,108,116,117,116,0,108,116,118,108,0,109,97,48,49,0,109,97,48,50,0,109,97,48,51,0,109,97,48,52,0,109,97,48,53,0,109,97,48,54,0,109,97,48,55,0,109,97,48,56,0,109,97,48,57,0,109,97,49,48,0,109,97,49,49,0,109,97,49,50,0,109,104,108,0,109,104,116,0,109,119,99,0,109,119,110,0,109,119,115,0,110,112,49,0,110,112,50,0,110,112,51,0,110,112,52,0,110,112,53,0,112,104,48,49,0,112,104,48,50,0,112,104,48,51,0,112,104,48,53,0,112,104,48,54,0,112,104,48,55,0,112,104,48,56,0,112,104,48,57,0,112,104,49,48,0,112,104,49,49,0,112,104,49,50,0,112,104,49,51,0,112,104,49,52,0,112,104,49,53,0,112,104,52,48,0,112,104,52,49,0,114,115,107,109,0,114,115,118,111,0,117,103,99,0,117,103,101,0,117,103,110,0,117,103,119,0,116,101,114,114,105,116,111,114,121,67,111,110,116,97,105,110,109,101,110,116,0,48,48,50,0,48,48,53,0,48,48,57,0,48,49,49,0,48,49,51,0,48,49,52,0,48,49,53,0,48,49,55,0,48,49,56,0,48,49,57,0,48,50,49,0,48,50,57,0,48,51,48,0,48,51,52,0,48,51,53,0,48,51,57,0,48,53,51,0,48,53,52,0,48,53,55,0,48,54,49,0,81,79,0,99,111,110,116,97,105,110,101,100,71,114,111,117,112,105,110,103,115,0,103,114,111,117,112,105,110,103,0,48,48,51,0,69,85,0,69,90,0,85,78,0,116,101,114,114,105,116,111,114,121,73,110,102,111,0,65,67,0,112,111,112,117,108,97,116,105,111,110,83,104,97,114,101,70,0,116,101,114,114,105,116,111,114,121,70,0,111,102,102,105,99,105,97,108,83,116,97,116,117,115,0,119,114,105,116,105,110,103,83,104,97,114,101,70,0,107,107,95,65,114,97,98,0,117,122,95,65,114,97,98,0,65,73,0,108,105,116,101,114,97,99,121,83,104,97,114,101,70,0,65,81,0,65,83,0,122,104,95,72,97,110,116,0,65,87,0,65,88,0,97,122,95,67,121,114,108,0,98,115,95,67,121,114,108,0,115,114,95,76,97,116,110,0,102,102,95,65,100,108,109,0,66,76,0,66,77,0,109,115,95,65,114,97,98,0,66,86,0,105,117,95,76,97,116,110,0,67,67,0,67,75,0,104,97,95,65,114,97,98,0,107,101,110,0,107,121,95,65,114,97,98,0,109,110,95,77,111,110,103,0,117,122,95,67,121,114,108,0,121,117,101,95,72,97,110,115,0,67,80,0,67,87,0,68,71,0,69,65,0,70,75,0,70,79,0,101,110,95,83,104,97,119,0,71,70,0,71,71,0,71,73,0,109,97,110,95,78,107,111,111,0,71,80,0,71,83,0,71,85,0,72,77,0,73,67,0,73,77,0,115,100,95,68,101,118,97,0,73,79,0,97,122,95,65,114,97,98,0,74,69,0,117,103,95,67,121,114,108,0,107,117,95,65,114,97,98,0,118,97,105,95,76,97,116,110,0,114,105,102,95,76,97,116,110,0,115,104,105,95,76,97,116,110,0,77,70,0,98,109,95,78,107,111,111,0,77,80,0,77,81,0,77,83,0,78,67,0,78,70,0,117,110,114,95,68,101,118,97,0,78,85,0,80,70,0,112,97,95,65,114,97,98,0,116,103,95,65,114,97,98,0,80,77,0,80,78,0,82,69,0,83,74,0,83,88,0,84,65,0,84,67,0,84,70,0,84,75,0,107,121,95,76,97,116,110,0,105,111,0,106,98,111,0,86,65,0,86,71,0,86,73,0,89,84,0,90,90,0,116,105,109,101,68,97,116,97,0,97,108,108,111,119,101,100,0,112,114,101,102,101,114,114,101,100,0,97,102,95,90,65,0,97,114,95,48,48,49,0,99,97,95,69,83,0,101,115,95,66,79,0,101,115,95,66,82,0,101,115,95,69,67,0,101,115,95,69,83,0,101,115,95,71,81,0,101,115,95,80,69,0,102,114,95,67,65,0,103,108,95,69,83,0,103,117,95,73,78,0,104,105,95,73,78,0,105,116,95,67,72,0,105,116,95,73,84,0,107,110,95,73,78,0,109,108,95,73,78,0,109,114,95,73,78,0,112,97,95,73,78,0,116,97,95,73,78,0,116,101,95,73,78,0,122,117,95,90,65,0,119,101,101,107,68,97,116,97,0,65,78,0,119,101,101,107,68,97,116,97,37,118,97,114,105,97,110,116,0,119,101,101,107,79,102,80,114,101,102,101,114,101,110,99,101,0,105,119,0,122,104,95,84,87,0,170,0,0,104,0,66,0,0,0,73,0,68,0,0,0,80,0,72,0,0,0,69,0,84,0,0,0,68,0,90,0,0,0,102,0,102,0,0,0,67,0,90,0,0,0,84,0,82,0,0,0,66,0,71,0,0,0,67,0,73,0,0,0,68,0,74,0,0,0,72,0,85,0,0,0,73,0,81,0,0,0,75,0,90,0,0,0,77,0,76,0,0,0,78,0,79,0,0,0,66,0,70,0,0,0,66,0,73,0,0,0,69,0,71,0,0,0,71,0,69,0,0,0,83,0,89,0,0,0,88,0,75,0,0,0,89,0,69,0,0,0,65,0,69,0,0,0,66,0,74,0,0,0,72,0,84,0,0,0,74,0,79,0,0,0,75,0,87,0,0,0,76,0,89,0,0,0,77,0,72,0,0,0,81,0,65,0,0,0,84,0,74,0,0,0,85,0,90,0,0,0,65,0,83,0,0,0,65,0,87,0,0,0,66,0,72,0,0,0,66,0,81,0,0,0,66,0,84,0,0,0,67,0,87,0,0,0,71,0,85,0,0,0,73,0,83,0,0,0,74,0,80,0,0,0,75,0,72,0,0,0,77,0,67,0,0,0,77,0,69,0,0,0,78,0,67,0,0,0,65,0,81,0,0,0,65,0,88,0,0,0,66,0,76,0,0,0,66,0,85,0,0,0,66,0,86,0,0,0,69,0,65,0,0,0,70,0,88,0,0,0,71,0,76,0,0,0,77,0,81,0,0,0,80,0,83,0,0,0,81,0,79,0,0,0,81,0,85,0,0,0,84,0,87,0,0,0,90,0,82,0,0,0,67,0,80,0,0,0,69,0,90,0,0,0,81,0,77,0,0,0,81,0,78,0,0,0,81,0,80,0,0,0,81,0,82,0,0,0,81,0,83,0,0,0,81,0,84,0,0,0,81,0,86,0,0,0,81,0,87,0,0,0,81,0,88,0,0,0,81,0,89,0,0,0,81,0,90,0,0,0,88,0,65,0,0,0,88,0,66,0,0,0,88,0,67,0,0,0,88,0,68,0,0,0,88,0,69,0,0,0,88,0,70,0,0,0,88,0,71,0,0,0,88,0,72,0,0,0,88,0,73,0,0,0,88,0,74,0,0,0,88,0,76,0,0,0,88,0,79,0,0,0,88,0,81,0,0,0,88,0,83,0,0,0,88,0,84,0,0,0,88,0,85,0,0,0,88,0,87,0,0,0,88,0,89,0,0,0,88,0,90,0,0,0,104,0,122,0,0,0,107,0,106,0,0,0,122,0,104,0,98,0,0,0,122,0,101,0,110,0,0,0,78,0,82,0,85,0,0,0,105,0,115,0,48,0,0,0,120,0,122,0,104,0,0,0,85,0,83,0,78,0,0,0,80,0,67,0,78,0,0,0,86,0,73,0,82,0,0,0,108,0,117,0,121,0,0,0,86,0,69,0,83,0,0,0,65,0,82,0,83,0,0,0,68,0,77,0,65,0,0,0,84,0,67,0,65,0,0,0,77,0,82,0,79,0,0,0,69,0,84,0,72,0,0,0,73,0,83,0,75,0,0,0,75,0,72,0,82,0,0,0,88,0,67,0,68,0,0,0,78,0,80,0,76,0,0,0,83,0,73,0,84,0,0,0,88,0,69,0,69,0,0,0,107,0,108,0,110,0,0,0,78,0,71,0,78,0,0,0,88,0,85,0,65,0,0,0,77,0,76,0,84,0,0,0,77,0,78,0,69,0,0,0,83,0,76,0,86,0,0,0,90,0,65,0,70,0,0,0,82,0,87,0,70,0,0,0,83,0,84,0,78,0,0,0,66,0,71,0,82,0,0,0,70,0,76,0,75,0,0,0,77,0,78,0,80,0,0,0,84,0,75,0,77,0,0,0,88,0,66,0,65,0,0,0,88,0,66,0,68,0,0,0,70,0,75,0,80,0,0,0,72,0,84,0,71,0,0,0,78,0,65,0,68,0,0,0,84,0,84,0,68,0,0,0,75,0,65,0,90,0,0,0,77,0,76,0,73,0,0,0,77,0,89,0,84,0,0,0,83,0,86,0,78,0,0,0,122,0,104,0,105,0,0,0,88,0,80,0,70,0,0,0,72,0,75,0,71,0,0,0,76,0,66,0,89,0,0,0,76,0,83,0,79,0,0,0,76,0,86,0,65,0,0,0,77,0,67,0,70,0,0,0,77,0,83,0,82,0,0,0,83,0,76,0,66,0,0,0,83,0,79,0,77,0,0,0,85,0,75,0,82,0,0,0,85,0,83,0,65,0,0,0,88,0,77,0,77,0,0,0,88,0,82,0,69,0,0,0,90,0,77,0,75,0,0,0,122,0,111,0,109,0,0,0,75,0,77,0,70,0,0,0,76,0,89,0,68,0,0,0,77,0,78,0,84,0,0,0,85,0,89,0,85,0,0,0,88,0,83,0,85,0,0,0,65,0,76,0,65,0,0,0,71,0,84,0,77,0,0,0,71,0,85,0,77,0,0,0,73,0,83,0,74,0,0,0,76,0,66,0,78,0,0,0,77,0,71,0,70,0,0,0,78,0,65,0,77,0,0,0,79,0,77,0,78,0,0,0,83,0,67,0,71,0,0,0,83,0,77,0,82,0,0,0,85,0,71,0,65,0,0,0,87,0,83,0,77,0,0,0,88,0,70,0,79,0,0,0,89,0,77,0,68,0,0,0,90,0,65,0,76,0,0,0,121,0,100,0,97,0,0,0,88,0,88,0,88,0,0,0,78,0,73,0,67,0,0,0,113,0,120,0,104,0,0,0,65,0,84,0,70,0,0,0,69,0,67,0,83,0,0,0,73,0,84,0,65,0,0,0,75,0,72,0,77,0,0,0,80,0,65,0,78,0,0,0,83,0,71,0,80,0,0,0,83,0,80,0,77,0,0,0,83,0,84,0,80,0,0,0,84,0,77,0,80,0,0,0,85,0,71,0,83,0,0,0,88,0,69,0,85,0,0,0,89,0,68,0,68,0,0,0,119,0,121,0,105,0,0,0,120,0,117,0,114,0,0,0,122,0,116,0,101,0,0,0,57,0,54,0,55,0,0,0,66,0,84,0,78,0,0,0,67,0,72,0,69,0,0,0,77,0,75,0,68,0,0,0,90,0,65,0,82,0,0,0,103,0,113,0,105,0,0,0,105,0,108,0,109,0,0,0,107,0,110,0,110,0,0,0,117,0,103,0,101,0,0,0,77,0,88,0,78,0,0,0,77,0,88,0,86,0,0,0,77,0,65,0,67,0,0,0,84,0,85,0,78,0,0,0,88,0,65,0,65,0,0,0,90,0,90,0,90,0,0,0,99,0,106,0,118,0,0,0,105,0,102,0,121,0,0,0,110,0,122,0,117,0,0,0,116,0,109,0,108,0,0,0,117,0,105,0,115,0,0,0,117,0,116,0,114,0,0,0,118,0,97,0,97,0,0,0,118,0,101,0,111,0,0,0,118,0,101,0,117,0,0,0,119,0,104,0,117,0,0,0,119,0,105,0,116,0,0,0,119,0,110,0,121,0,0,0,119,0,115,0,107,0,0,0,120,0,97,0,121,0,0,0,120,0,103,0,100,0,0,0,120,0,117,0,103,0,0,0,120,0,119,0,111,0,0,0,121,0,101,0,101,0,0,0,121,0,103,0,117,0,0,0,121,0,105,0,97,0,0,0,121,0,107,0,103,0,0,0,121,0,107,0,121,0,0,0,121,0,108,0,103,0,0,0,121,0,109,0,116,0,0,0,121,0,114,0,119,0,0,0,122,0,98,0,101,0,0,0,122,0,99,0,97,0,0,0,122,0,107,0,107,0,0,0,122,0,111,0,99,0,0,0,122,0,116,0,103,0,0,0,122,0,122,0,97,0,0,0,49,0,52,0,53,0,0,0,50,0,51,0,56,0,0,0,50,0,52,0,50,0,0,0,50,0,54,0,50,0,0,0,50,0,55,0,48,0,0,0,50,0,57,0,50,0,0,0,51,0,52,0,48,0,0,0,51,0,52,0,52,0,0,0,51,0,52,0,56,0,0,0,51,0,53,0,50,0,0,0,51,0,53,0,54,0,0,0,51,0,54,0,48,0,0,0,51,0,54,0,52,0,0,0,51,0,54,0,56,0,0,0,51,0,55,0,54,0,0,0,51,0,56,0,56,0,0,0,51,0,57,0,50,0,0,0,51,0,57,0,56,0,0,0,52,0,48,0,48,0,0,0,52,0,52,0,48,0,0,0,52,0,53,0,52,0,0,0,52,0,53,0,56,0,0,0,52,0,54,0,50,0,0,0,52,0,56,0,52,0,0,0,52,0,57,0,54,0,0,0,52,0,57,0,56,0,0,0,53,0,49,0,54,0,0,0,53,0,52,0,56,0,0,0,53,0,53,0,52,0,0,0,53,0,53,0,56,0,0,0,53,0,54,0,54,0,0,0,53,0,55,0,56,0,0,0,53,0,57,0,56,0,0,0,54,0,48,0,48,0,0,0,54,0,50,0,54,0,0,0,54,0,53,0,52,0,0,0,54,0,55,0,56,0,0,0,54,0,56,0,50,0,0,0,54,0,57,0,48,0,0,0,54,0,57,0,52,0,0,0,55,0,49,0,48,0,0,0,55,0,50,0,56,0,0,0,55,0,52,0,56,0,0,0,55,0,53,0,50,0,0,0,55,0,53,0,54,0,0,0,55,0,54,0,48,0,0,0,55,0,54,0,52,0,0,0,55,0,55,0,54,0,0,0,55,0,56,0,48,0,0,0,55,0,56,0,56,0,0,0,56,0,48,0,48,0,0,0,56,0,49,0,56,0,0,0,56,0,50,0,54,0,0,0,56,0,52,0,48,0,0,0,56,0,53,0,56,0,0,0,56,0,54,0,48,0,0,0,56,0,56,0,50,0,0,0,56,0,57,0,49,0,0,0,57,0,53,0,56,0,0,0,57,0,53,0,57,0,0,0,57,0,54,0,48,0,0,0,57,0,54,0,49,0,0,0,57,0,54,0,50,0,0,0,57,0,54,0,51,0,0,0,57,0,54,0,52,0,0,0,57,0,54,0,53,0,0,0,57,0,54,0,56,0,0,0,57,0,54,0,57,0,0,0,57,0,55,0,48,0,0,0,57,0,55,0,53,0,0,0,57,0,55,0,55,0,0,0,57,0,55,0,56,0,0,0,57,0,55,0,57,0,0,0,57,0,56,0,48,0,0,0,57,0,56,0,49,0,0,0,57,0,56,0,52,0,0,0,57,0,56,0,53,0,0,0,57,0,56,0,54,0,0,0,57,0,57,0,55,0,0,0,57,0,57,0,57,0,0,0,65,0,69,0,68,0,0,0,65,0,70,0,78,0,0,0,65,0,76,0,76,0,0,0,65,0,77,0,68,0,0,0,65,0,78,0,71,0,0,0,65,0,79,0,65,0,0,0,65,0,85,0,68,0,0,0,65,0,87,0,71,0,0,0,65,0,90,0,78,0,0,0,66,0,65,0,77,0,0,0,66,0,66,0,68,0,0,0,66,0,68,0,84,0,0,0,66,0,69,0,76,0,0,0,66,0,71,0,78,0,0,0,66,0,72,0,68,0,0,0,66,0,73,0,70,0,0,0,66,0,77,0,68,0,0,0,66,0,78,0,68,0,0,0,66,0,79,0,66,0,0,0,66,0,79,0,76,0,0,0,66,0,79,0,86,0,0,0,66,0,82,0,76,0,0,0,66,0,82,0,78,0,0,0,66,0,83,0,68,0,0,0,66,0,87,0,80,0,0,0,66,0,89,0,82,0,0,0,66,0,90,0,68,0,0,0,67,0,65,0,68,0,0,0,67,0,68,0,70,0,0,0,67,0,72,0,70,0,0,0,67,0,72,0,87,0,0,0,67,0,76,0,80,0,0,0,67,0,78,0,72,0,0,0,67,0,78,0,89,0,0,0,67,0,79,0,80,0,0,0,67,0,79,0,85,0,0,0,67,0,82,0,67,0,0,0,67,0,85,0,67,0,0,0,67,0,85,0,80,0,0,0,67,0,86,0,69,0,0,0,67,0,89,0,80,0,0,0,67,0,90,0,75,0,0,0,68,0,74,0,70,0,0,0,68,0,75,0,75,0,0,0,68,0,79,0,80,0,0,0,68,0,90,0,68,0,0,0,69,0,71,0,80,0,0,0,69,0,82,0,78,0,0,0,69,0,83,0,80,0,0,0,69,0,84,0,66,0,0,0,69,0,85,0,82,0,0,0,70,0,74,0,68,0,0,0,71,0,66,0,80,0,0,0,71,0,69,0,76,0,0,0,71,0,72,0,83,0,0,0,71,0,73,0,80,0,0,0,71,0,77,0,68,0,0,0,71,0,78,0,70,0,0,0,71,0,82,0,68,0,0,0,71,0,84,0,81,0,0,0,71,0,89,0,68,0,0,0,72,0,75,0,68,0,0,0,72,0,78,0,76,0,0,0,72,0,82,0,75,0,0,0,72,0,85,0,70,0,0,0,73,0,68,0,82,0,0,0,73,0,76,0,83,0,0,0,73,0,78,0,82,0,0,0,73,0,81,0,68,0,0,0,73,0,82,0,82,0,0,0,74,0,77,0,68,0,0,0,74,0,79,0,68,0,0,0,74,0,80,0,89,0,0,0,75,0,69,0,83,0,0,0,75,0,71,0,83,0,0,0,75,0,80,0,87,0,0,0,75,0,82,0,87,0,0,0,75,0,87,0,68,0,0,0,75,0,89,0,68,0,0,0,75,0,90,0,84,0,0,0,76,0,65,0,75,0,0,0,76,0,66,0,80,0,0,0,76,0,75,0,82,0,0,0,76,0,82,0,68,0,0,0,76,0,83,0,76,0,0,0,76,0,84,0,76,0,0,0,77,0,65,0,68,0,0,0,77,0,65,0,70,0,0,0,77,0,68,0,76,0,0,0,77,0,71,0,65,0,0,0,77,0,77,0,75,0,0,0,77,0,79,0,80,0,0,0,77,0,82,0,85,0,0,0,77,0,85,0,82,0,0,0,77,0,86,0,82,0,0,0,77,0,87,0,75,0,0,0,77,0,89,0,82,0,0,0,77,0,90,0,78,0,0,0,78,0,73,0,79,0,0,0,78,0,79,0,75,0,0,0,78,0,80,0,82,0,0,0,78,0,90,0,68,0,0,0,79,0,77,0,82,0,0,0,80,0,65,0,66,0,0,0,80,0,69,0,78,0,0,0,80,0,71,0,75,0,0,0,80,0,72,0,80,0,0,0,80,0,75,0,82,0,0,0,80,0,76,0,78,0,0,0,80,0,89,0,71,0,0,0,81,0,65,0,82,0,0,0,81,0,85,0,85,0,0,0,82,0,79,0,78,0,0,0,82,0,83,0,68,0,0,0,82,0,85,0,66,0,0,0,83,0,65,0,82,0,0,0,83,0,66,0,68,0,0,0,83,0,67,0,82,0,0,0,83,0,68,0,71,0,0,0,83,0,69,0,75,0,0,0,83,0,71,0,68,0,0,0,83,0,72,0,80,0,0,0,83,0,76,0,69,0,0,0,83,0,76,0,76,0,0,0,83,0,79,0,83,0,0,0,83,0,82,0,68,0,0,0,83,0,83,0,80,0,0,0,83,0,84,0,68,0,0,0,83,0,85,0,82,0,0,0,83,0,89,0,80,0,0,0,83,0,90,0,76,0,0,0,84,0,72,0,66,0,0,0,84,0,74,0,83,0,0,0,84,0,77,0,84,0,0,0,84,0,78,0,68,0,0,0,84,0,79,0,80,0,0,0,84,0,82,0,89,0,0,0,84,0,87,0,68,0,0,0,84,0,90,0,83,0,0,0,85,0,65,0,72,0,0,0,85,0,71,0,88,0,0,0,85,0,83,0,68,0,0,0,85,0,89,0,73,0,0,0,85,0,89,0,87,0,0,0,85,0,90,0,83,0,0,0,86,0,69,0,68,0,0,0,86,0,69,0,70,0,0,0,86,0,78,0,68,0,0,0,86,0,85,0,86,0,0,0,87,0,83,0,84,0,0,0,88,0,65,0,70,0,0,0,88,0,65,0,71,0,0,0,88,0,65,0,85,0,0,0,88,0,66,0,66,0,0,0,88,0,68,0,82,0,0,0,88,0,79,0,70,0,0,0,88,0,80,0,68,0,0,0,88,0,80,0,84,0,0,0,88,0,84,0,83,0,0,0,89,0,69,0,82,0,0,0,90,0,77,0,87,0,0,0,97,0,106,0,112,0,0,0,97,0,114,0,113,0,0,0,97,0,114,0,115,0,0,0,97,0,114,0,121,0,0,0,97,0,114,0,122,0,0,0,98,0,98,0,122,0,0,0,98,0,106,0,113,0,0,0,99,0,103,0,50,0,0,0,99,0,103,0,53,0,0,0,99,0,106,0,121,0,0,0,99,0,107,0,98,0,0,0,99,0,114,0,97,0,0,0,99,0,114,0,99,0,0,0,99,0,114,0,108,0,0,0,99,0,114,0,112,0,0,0,99,0,118,0,98,0,0,0,99,0,118,0,115,0,0,0,99,0,122,0,104,0,0,0,100,0,116,0,121,0,0,0,101,0,99,0,121,0,0,0,101,0,103,0,99,0,0,0,101,0,115,0,98,0,0,0,101,0,115,0,99,0,0,0,101,0,115,0,112,0,0,0,101,0,115,0,118,0,0,0,101,0,121,0,111,0,0,0,102,0,102,0,109,0,0,0,102,0,105,0,108,0,0,0,102,0,106,0,99,0,0,0,102,0,106,0,101,0,0,0,102,0,106,0,110,0,0,0,102,0,106,0,114,0,0,0,102,0,106,0,119,0,0,0,102,0,114,0,109,0,0,0,102,0,117,0,98,0,0,0,103,0,109,0,98,0,0,0,103,0,109,0,117,0,0,0,103,0,109,0,119,0,0,0,103,0,110,0,98,0,0,0,103,0,110,0,99,0,0,0,103,0,110,0,100,0,0,0,103,0,110,0,102,0,0,0,103,0,110,0,107,0,0,0,103,0,110,0,108,0,0,0,103,0,110,0,109,0,0,0,103,0,110,0,110,0,0,0,103,0,113,0,99,0,0,0,103,0,114,0,109,0,0,0,103,0,115,0,119,0,0,0,103,0,119,0,108,0,0,0,103,0,119,0,115,0,0,0,104,0,106,0,105,0,0,0,104,0,115,0,110,0,0,0,105,0,101,0,99,0,0,0,105,0,101,0,100,0,0,0,105,0,101,0,103,0,0,0,105,0,101,0,108,0,0,0,105,0,101,0,109,0,0,0,105,0,101,0,117,0,0,0,105,0,108,0,100,0,0,0,105,0,108,0,122,0,0,0,107,0,103,0,106,0,0,0,107,0,103,0,116,0,0,0,107,0,103,0,121,0,0,0,107,0,104,0,49,0,0,0,107,0,104,0,50,0,0,0,107,0,105,0,103,0,0,0,107,0,105,0,112,0,0,0,107,0,109,0,97,0,0,0,107,0,109,0,103,0,0,0,107,0,109,0,109,0,0,0,107,0,110,0,107,0,0,0,108,0,107,0,49,0,0,0,108,0,107,0,50,0,0,0,108,0,107,0,51,0,0,0,108,0,107,0,52,0,0,0,108,0,107,0,53,0,0,0,108,0,107,0,54,0,0,0,108,0,107,0,55,0,0,0,108,0,107,0,56,0,0,0,108,0,107,0,57,0,0,0,108,0,114,0,105,0,0,0,108,0,115,0,103,0,0,0,108,0,116,0,115,0,0,0,109,0,103,0,97,0,0,0,109,0,103,0,100,0,0,0,109,0,103,0,102,0,0,0,109,0,103,0,109,0,0,0,109,0,104,0,108,0,0,0,109,0,104,0,116,0,0,0,109,0,108,0,49,0,0,0,109,0,110,0,49,0,0,0,109,0,119,0,99,0,0,0,109,0,119,0,110,0,0,0,109,0,119,0,115,0,0,0,109,0,122,0,103,0,0,0,109,0,122,0,105,0,0,0,109,0,122,0,108,0,0,0,109,0,122,0,110,0,0,0,110,0,122,0,115,0,0,0,111,0,114,0,99,0,0,0,112,0,97,0,49,0,0,0,112,0,121,0,49,0,0,0,113,0,118,0,97,0,0,0,113,0,118,0,99,0,0,0,113,0,118,0,101,0,0,0,113,0,118,0,115,0,0,0,113,0,118,0,119,0,0,0,113,0,119,0,99,0,0,0,113,0,119,0,104,0,0,0,113,0,120,0,97,0,0,0,113,0,120,0,99,0,0,0,113,0,120,0,108,0,0,0,113,0,120,0,119,0,0,0,114,0,111,0,98,0,0,0,115,0,101,0,107,0,0,0,115,0,108,0,110,0,0,0,115,0,108,0,115,0,0,0,115,0,108,0,119,0,0,0,115,0,116,0,112,0,0,0,116,0,103,0,99,0,0,0,116,0,103,0,107,0,0,0,116,0,103,0,109,0,0,0,116,0,103,0,112,0,0,0,116,0,103,0,115,0,0,0,116,0,104,0,115,0,0,0,116,0,109,0,100,0,0,0,117,0,103,0,99,0,0,0,117,0,103,0,110,0,0,0,117,0,103,0,119,0,0,0,117,0,122,0,115,0,0,0,118,0,114,0,111,0,0,0,121,0,117,0,101,0,0,0,67,0,88,0,82,0,0,0,77,0,88,0,80,0,0,0,83,0,88,0,77,0,0,0,88,0,81,0,81,0,0,0,106,0,105,0,111,0,0,0,107,0,111,0,106,0,0,0,115,0,100,0,122,0,0,0,116,0,100,0,118,0,0,0,117,0,98,0,105,0,0,0,117,0,102,0,105,0,0,0,117,0,112,0,105,0,0,0,120,0,98,0,103,0,0,0,120,0,99,0,101,0,0,0,120,0,99,0,114,0,0,0,120,0,105,0,105,0,0,0,120,0,110,0,100,0,0,0,120,0,115,0,108,0,0,0,120,0,118,0,101,0,0,0,121,0,101,0,108,0,0,0,121,0,107,0,105,0,0,0,121,0,111,0,115,0,0,0,121,0,115,0,103,0,0,0,121,0,116,0,108,0,0,0,121,0,116,0,119,0,0,0,121,0,116,0,121,0,0,0,122,0,99,0,104,0,0,0,122,0,105,0,119,0,0,0,122,0,119,0,97,0,0,0,50,0,51,0,57,0,0,0,50,0,52,0,54,0,0,0,50,0,52,0,56,0,0,0,50,0,52,0,57,0,0,0,50,0,53,0,48,0,0,0,50,0,53,0,52,0,0,0,50,0,53,0,56,0,0,0,50,0,54,0,48,0,0,0,50,0,54,0,54,0,0,0,50,0,54,0,56,0,0,0,50,0,55,0,53,0,0,0,50,0,55,0,54,0,0,0,50,0,55,0,56,0,0,0,50,0,56,0,56,0,0,0,51,0,48,0,48,0,0,0,51,0,55,0,50,0,0,0,51,0,56,0,48,0,0,0,51,0,56,0,52,0,0,0,52,0,51,0,56,0,0,0,52,0,53,0,48,0,0,0,52,0,54,0,54,0,0,0,52,0,55,0,48,0,0,0,52,0,55,0,52,0,0,0,52,0,57,0,50,0,0,0,52,0,57,0,57,0,0,0,53,0,48,0,48,0,0,0,53,0,50,0,48,0,0,0,53,0,51,0,48,0,0,0,53,0,51,0,53,0,0,0,53,0,51,0,54,0,0,0,53,0,52,0,48,0,0,0,53,0,54,0,50,0,0,0,53,0,55,0,48,0,0,0,53,0,55,0,52,0,0,0,53,0,56,0,48,0,0,0,53,0,56,0,49,0,0,0,53,0,56,0,51,0,0,0,53,0,56,0,52,0,0,0,53,0,56,0,53,0,0,0,53,0,57,0,48,0,0,0,53,0,57,0,49,0,0,0,54,0,49,0,50,0,0,0,54,0,49,0,54,0,0,0,54,0,50,0,48,0,0,0,54,0,51,0,48,0,0,0,54,0,53,0,50,0,0,0,54,0,53,0,57,0,0,0,54,0,54,0,48,0,0,0,54,0,54,0,50,0,0,0,54,0,54,0,54,0,0,0,54,0,55,0,48,0,0,0,54,0,55,0,52,0,0,0,54,0,56,0,54,0,0,0,54,0,56,0,56,0,0,0,55,0,49,0,54,0,0,0,55,0,50,0,48,0,0,0,55,0,50,0,57,0,0,0,55,0,52,0,48,0,0,0,55,0,52,0,52,0,0,0,55,0,54,0,50,0,0,0,55,0,54,0,56,0,0,0,55,0,55,0,50,0,0,0,55,0,57,0,53,0,0,0,55,0,57,0,56,0,0,0,56,0,51,0,49,0,0,0,56,0,51,0,50,0,0,0,56,0,51,0,51,0,0,0,56,0,53,0,48,0,0,0,56,0,53,0,52,0,0,0,56,0,54,0,50,0,0,0,56,0,55,0,54,0,0,0,56,0,56,0,54,0,0,0,56,0,56,0,55,0,0,0,56,0,57,0,52,0,0,0,57,0,50,0,55,0,0,0,57,0,50,0,57,0,0,0,57,0,51,0,48,0,0,0,57,0,51,0,49,0,0,0,57,0,51,0,52,0,0,0,57,0,51,0,54,0,0,0,57,0,51,0,55,0,0,0,57,0,51,0,56,0,0,0,57,0,52,0,48,0,0,0,57,0,52,0,49,0,0,0,57,0,52,0,52,0,0,0,57,0,52,0,54,0,0,0,57,0,52,0,55,0,0,0,57,0,52,0,56,0,0,0,57,0,52,0,57,0,0,0,57,0,53,0,48,0,0,0,57,0,53,0,49,0,0,0,57,0,53,0,50,0,0,0,57,0,53,0,51,0,0,0,57,0,53,0,53,0,0,0,57,0,53,0,54,0,0,0,57,0,53,0,55,0,0,0,57,0,54,0,54,0,0,0,57,0,56,0,50,0,0,0,57,0,56,0,51,0,0,0,57,0,56,0,55,0,0,0,57,0,56,0,56,0,0,0,57,0,56,0,57,0,0,0,57,0,57,0,49,0,0,0,57,0,57,0,50,0,0,0,57,0,57,0,51,0,0,0,57,0,57,0,53,0,0,0,57,0,57,0,56,0,0,0,65,0,65,0,65,0,0,0,65,0,66,0,87,0,0,0,65,0,68,0,80,0,0,0,65,0,70,0,65,0,0,0,65,0,70,0,71,0,0,0,65,0,71,0,79,0,0,0,65,0,73,0,65,0,0,0,65,0,76,0,66,0,0,0,65,0,76,0,75,0,0,0,65,0,78,0,68,0,0,0,65,0,78,0,84,0,0,0,65,0,79,0,75,0,0,0,65,0,79,0,78,0,0,0,65,0,79,0,82,0,0,0,65,0,82,0,65,0,0,0,65,0,82,0,69,0,0,0,65,0,82,0,71,0,0,0,65,0,82,0,77,0,0,0,65,0,82,0,80,0,0,0,65,0,83,0,77,0,0,0,65,0,84,0,65,0,0,0,65,0,84,0,71,0,0,0,65,0,84,0,83,0,0,0,65,0,85,0,83,0,0,0,65,0,85,0,84,0,0,0,65,0,90,0,69,0,0,0,65,0,90,0,77,0,0,0,66,0,65,0,68,0,0,0,66,0,65,0,78,0,0,0,66,0,68,0,73,0,0,0,66,0,69,0,67,0,0,0,66,0,69,0,70,0,0,0,66,0,69,0,78,0,0,0,66,0,69,0,83,0,0,0,66,0,70,0,65,0,0,0,66,0,71,0,68,0,0,0,66,0,71,0,79,0,0,0,66,0,72,0,82,0,0,0,66,0,72,0,83,0,0,0,66,0,73,0,72,0,0,0,66,0,76,0,77,0,0,0,66,0,76,0,82,0,0,0,66,0,76,0,90,0,0,0,66,0,77,0,85,0,0,0,66,0,79,0,80,0,0,0,66,0,82,0,65,0,0,0,66,0,82,0,66,0,0,0,66,0,82,0,69,0,0,0,66,0,82,0,82,0,0,0,66,0,82,0,90,0,0,0,66,0,85,0,75,0,0,0,66,0,85,0,82,0,0,0,66,0,86,0,84,0,0,0,66,0,87,0,65,0,0,0,66,0,89,0,66,0,0,0,66,0,89,0,78,0,0,0,67,0,65,0,70,0,0,0,67,0,65,0,78,0,0,0,67,0,67,0,75,0,0,0,67,0,72,0,76,0,0,0,67,0,72,0,78,0,0,0,67,0,73,0,86,0,0,0,67,0,76,0,70,0,0,0,67,0,77,0,82,0,0,0,67,0,78,0,88,0,0,0,67,0,79,0,68,0,0,0,67,0,79,0,71,0,0,0,67,0,79,0,75,0,0,0,67,0,79,0,76,0,0,0,67,0,79,0,77,0,0,0,67,0,80,0,86,0,0,0,67,0,82,0,73,0,0,0,67,0,83,0,68,0,0,0,67,0,83,0,75,0,0,0,67,0,85,0,66,0,0,0,67,0,85,0,87,0,0,0,67,0,89,0,77,0,0,0,67,0,90,0,69,0,0,0,68,0,68,0,77,0,0,0,68,0,68,0,82,0,0,0,68,0,69,0,77,0,0,0,68,0,69,0,85,0,0,0,68,0,74,0,73,0,0,0,68,0,78,0,75,0,0,0,68,0,79,0,77,0,0,0,68,0,90,0,65,0,0,0,69,0,67,0,85,0,0,0,69,0,67,0,86,0,0,0,69,0,69,0,75,0,0,0,69,0,71,0,89,0,0,0,69,0,82,0,73,0,0,0,69,0,83,0,72,0,0,0,69,0,83,0,84,0,0,0,70,0,73,0,77,0,0,0,70,0,73,0,78,0,0,0,70,0,74,0,73,0,0,0,70,0,82,0,65,0,0,0,70,0,82,0,70,0,0,0,70,0,82,0,79,0,0,0,70,0,83,0,77,0,0,0,70,0,88,0,88,0,0,0,71,0,65,0,66,0,0,0,71,0,66,0,82,0,0,0,71,0,69,0,75,0,0,0,71,0,69,0,79,0,0,0,71,0,71,0,89,0,0,0,71,0,72,0,65,0,0,0,71,0,72,0,67,0,0,0,71,0,73,0,66,0,0,0,71,0,73,0,78,0,0,0,71,0,76,0,80,0,0,0,71,0,77,0,66,0,0,0,71,0,78,0,66,0,0,0,71,0,78,0,81,0,0,0,71,0,78,0,83,0,0,0,71,0,81,0,69,0,0,0,71,0,82,0,67,0,0,0,71,0,82,0,76,0,0,0,71,0,85,0,70,0,0,0,71,0,85,0,89,0,0,0,71,0,87,0,69,0,0,0,71,0,87,0,80,0,0,0,72,0,77,0,68,0,0,0,72,0,78,0,68,0,0,0,72,0,82,0,68,0,0,0,72,0,82,0,86,0,0,0,72,0,84,0,73,0,0,0,72,0,85,0,78,0,0,0,73,0,68,0,78,0,0,0,73,0,69,0,80,0,0,0,73,0,76,0,80,0,0,0,73,0,76,0,82,0,0,0,73,0,77,0,78,0,0,0,73,0,78,0,68,0,0,0,73,0,79,0,84,0,0,0,73,0,82,0,76,0,0,0,73,0,82,0,78,0,0,0,73,0,82,0,81,0,0,0,73,0,83,0,76,0,0,0,73,0,83,0,82,0,0,0,73,0,84,0,76,0,0,0,74,0,65,0,77,0,0,0,74,0,69,0,89,0,0,0,74,0,79,0,82,0,0,0,74,0,80,0,78,0,0,0,75,0,69,0,78,0,0,0,75,0,71,0,90,0,0,0,75,0,73,0,82,0,0,0,75,0,78,0,65,0,0,0,75,0,79,0,82,0,0,0,75,0,82,0,72,0,0,0,75,0,82,0,79,0,0,0,75,0,87,0,84,0,0,0,76,0,65,0,79,0,0,0,76,0,66,0,82,0,0,0,76,0,67,0,65,0,0,0,76,0,73,0,69,0,0,0,76,0,75,0,65,0,0,0,76,0,84,0,84,0,0,0,76,0,84,0,85,0,0,0,76,0,85,0,67,0,0,0,76,0,85,0,70,0,0,0,76,0,85,0,76,0,0,0,76,0,85,0,88,0,0,0,76,0,86,0,76,0,0,0,76,0,86,0,82,0,0,0,77,0,65,0,82,0,0,0,77,0,67,0,79,0,0,0,77,0,68,0,65,0,0,0,77,0,68,0,67,0,0,0,77,0,68,0,71,0,0,0,77,0,68,0,86,0,0,0,77,0,69,0,88,0,0,0,77,0,72,0,76,0,0,0,77,0,75,0,78,0,0,0,77,0,76,0,70,0,0,0,77,0,77,0,82,0,0,0,77,0,78,0,71,0,0,0,77,0,79,0,90,0,0,0,77,0,82,0,84,0,0,0,77,0,84,0,76,0,0,0,77,0,84,0,80,0,0,0,77,0,84,0,81,0,0,0,77,0,85,0,83,0,0,0,77,0,86,0,80,0,0,0,77,0,87,0,73,0,0,0,77,0,89,0,83,0,0,0,77,0,90,0,69,0,0,0,77,0,90,0,77,0,0,0,78,0,67,0,76,0,0,0,78,0,69,0,82,0,0,0,78,0,70,0,75,0,0,0,78,0,71,0,65,0,0,0,78,0,73,0,85,0,0,0,78,0,76,0,68,0,0,0,78,0,76,0,71,0,0,0,78,0,79,0,82,0,0,0,78,0,84,0,90,0,0,0,78,0,90,0,76,0,0,0,80,0,65,0,75,0,0,0,80,0,69,0,73,0,0,0,80,0,69,0,82,0,0,0,80,0,69,0,83,0,0,0,80,0,72,0,76,0,0,0,80,0,76,0,87,0,0,0,80,0,76,0,90,0,0,0,80,0,78,0,71,0,0,0,80,0,79,0,76,0,0,0,80,0,82,0,73,0,0,0,80,0,82,0,75,0,0,0,80,0,82,0,84,0,0,0,80,0,82,0,89,0,0,0,80,0,83,0,69,0,0,0,80,0,84,0,69,0,0,0,80,0,89,0,70,0,0,0,81,0,65,0,84,0,0,0,81,0,77,0,77,0,0,0,81,0,78,0,78,0,0,0,81,0,79,0,79,0,0,0,81,0,80,0,80,0,0,0,81,0,81,0,81,0,0,0,81,0,82,0,82,0,0,0,81,0,83,0,83,0,0,0,81,0,84,0,84,0,0,0,81,0,86,0,86,0,0,0,81,0,87,0,87,0,0,0,81,0,88,0,88,0,0,0,81,0,89,0,89,0,0,0,81,0,90,0,90,0,0,0,82,0,69,0,85,0,0,0,82,0,72,0,68,0,0,0,82,0,79,0,76,0,0,0,82,0,79,0,85,0,0,0,82,0,85,0,82,0,0,0,82,0,85,0,83,0,0,0,82,0,87,0,65,0,0,0,83,0,65,0,85,0,0,0,83,0,68,0,68,0,0,0,83,0,68,0,78,0,0,0,83,0,68,0,80,0,0,0,83,0,69,0,78,0,0,0,83,0,71,0,83,0,0,0,83,0,72,0,78,0,0,0,83,0,74,0,77,0,0,0,83,0,75,0,75,0,0,0,83,0,82,0,66,0,0,0,83,0,82,0,71,0,0,0,83,0,83,0,68,0,0,0,83,0,85,0,78,0,0,0,83,0,86,0,67,0,0,0,83,0,86,0,75,0,0,0,83,0,87,0,69,0,0,0,83,0,87,0,90,0,0,0,83,0,89,0,67,0,0,0,83,0,89,0,82,0,0,0,84,0,67,0,68,0,0,0,84,0,71,0,79,0,0,0,84,0,72,0,65,0,0,0,84,0,74,0,75,0,0,0,84,0,74,0,82,0,0,0,84,0,75,0,76,0,0,0,84,0,76,0,83,0,0,0,84,0,77,0,77,0,0,0,84,0,79,0,78,0,0,0,84,0,80,0,69,0,0,0,84,0,82,0,76,0,0,0,84,0,84,0,79,0,0,0,84,0,85,0,82,0,0,0,84,0,85,0,86,0,0,0,84,0,87,0,78,0,0,0,84,0,90,0,65,0,0,0,85,0,65,0,75,0,0,0,85,0,77,0,73,0,0,0,85,0,82,0,89,0,0,0,85,0,83,0,83,0,0,0,85,0,89,0,80,0,0,0,85,0,90,0,66,0,0,0,86,0,65,0,84,0,0,0,86,0,67,0,84,0,0,0,86,0,69,0,66,0,0,0,86,0,69,0,78,0,0,0,86,0,71,0,66,0,0,0,86,0,78,0,77,0,0,0,86,0,78,0,78,0,0,0,86,0,85,0,84,0,0,0,87,0,76,0,70,0,0,0,88,0,66,0,67,0,0,0,88,0,67,0,67,0,0,0,88,0,68,0,68,0,0,0,88,0,70,0,70,0,0,0,88,0,70,0,85,0,0,0,88,0,71,0,71,0,0,0,88,0,72,0,72,0,0,0,88,0,73,0,73,0,0,0,88,0,74,0,74,0,0,0,88,0,75,0,75,0,0,0,88,0,76,0,76,0,0,0,88,0,78,0,78,0,0,0,88,0,79,0,79,0,0,0,88,0,80,0,80,0,0,0,88,0,82,0,82,0,0,0,88,0,83,0,83,0,0,0,88,0,84,0,84,0,0,0,88,0,85,0,85,0,0,0,88,0,86,0,86,0,0,0,88,0,87,0,87,0,0,0,88,0,89,0,89,0,0,0,88,0,90,0,90,0,0,0,89,0,69,0,77,0,0,0,89,0,85,0,68,0,0,0,89,0,85,0,71,0,0,0,89,0,85,0,82,0,0,0,90,0,77,0,66,0,0,0,90,0,82,0,78,0,0,0,90,0,82,0,90,0,0,0,90,0,87,0,68,0,0,0,90,0,87,0,69,0,0,0,90,0,87,0,76,0,0,0,90,0,87,0,82,0,0,0,97,0,97,0,101,0,0,0,97,0,97,0,109,0,0,0,97,0,97,0,111,0,0,0,97,0,97,0,122,0,0,0,97,0,98,0,104,0,0,0,97,0,98,0,118,0,0,0,97,0,99,0,109,0,0,0,97,0,99,0,113,0,0,0,97,0,99,0,119,0,0,0,97,0,99,0,120,0,0,0,97,0,99,0,121,0,0,0,97,0,100,0,102,0,0,0,97,0,100,0,108,0,0,0,97,0,100,0,112,0,0,0,97,0,101,0,98,0,0,0,97,0,101,0,117,0,0,0,97,0,101,0,119,0,0,0,97,0,102,0,98,0,0,0,97,0,102,0,107,0,0,0,97,0,102,0,122,0,0,0,97,0,105,0,115,0,0,0,97,0,105,0,116,0,0,0,97,0,106,0,97,0,0,0,97,0,106,0,103,0,0,0,97,0,106,0,105,0,0,0,97,0,106,0,110,0,0,0,97,0,106,0,115,0,0,0,97,0,106,0,119,0,0,0,97,0,106,0,122,0,0,0,97,0,108,0,110,0,0,0,97,0,108,0,115,0,0,0,97,0,111,0,120,0,0,0,97,0,111,0,122,0,0,0,97,0,112,0,99,0,0,0,97,0,112,0,100,0,0,0,97,0,113,0,97,0,0,0,97,0,113,0,103,0,0,0,97,0,113,0,112,0,0,0,97,0,113,0,114,0,0,0,97,0,113,0,116,0,0,0,97,0,113,0,122,0,0,0,97,0,114,0,102,0,0,0,97,0,114,0,103,0,0,0,97,0,114,0,104,0,0,0,97,0,114,0,106,0,0,0,97,0,114,0,108,0,0,0,97,0,114,0,112,0,0,0,97,0,114,0,114,0,0,0,97,0,114,0,117,0,0,0,97,0,114,0,118,0,0,0,97,0,114,0,119,0,0,0,97,0,114,0,120,0,0,0,97,0,115,0,100,0,0,0,97,0,116,0,49,0,0,0,97,0,116,0,50,0,0,0,97,0,116,0,51,0,0,0,97,0,116,0,52,0,0,0,97,0,116,0,53,0,0,0,97,0,116,0,54,0,0,0,97,0,116,0,55,0,0,0,97,0,116,0,56,0,0,0,97,0,116,0,57,0,0,0,97,0,117,0,101,0,0,0,97,0,117,0,122,0,0,0,97,0,118,0,98,0,0,0,97,0,118,0,100,0,0,0,97,0,118,0,108,0,0,0,97,0,119,0,107,0,0,0,97,0,120,0,98,0,0,0,97,0,120,0,103,0,0,0,97,0,120,0,120,0,0,0,97,0,121,0,104,0,0,0,97,0,121,0,108,0,0,0,97,0,121,0,110,0,0,0,97,0,121,0,112,0,0,0,97,0,121,0,114,0,0,0,97,0,121,0,122,0,0,0,97,0,122,0,98,0,0,0,97,0,122,0,103,0,0,0,97,0,122,0,106,0,0,0,97,0,122,0,116,0,0,0,97,0,122,0,122,0,0,0,98,0,99,0,99,0,0,0,98,0,99,0,108,0,0,0,98,0,100,0,97,0,0,0,98,0,100,0,98,0,0,0,98,0,100,0,99,0,0,0,98,0,100,0,100,0,0,0,98,0,100,0,101,0,0,0,98,0,100,0,104,0,0,0,98,0,103,0,109,0,0,0,98,0,104,0,107,0,0,0,98,0,104,0,114,0,0,0,98,0,105,0,99,0,0,0,98,0,105,0,106,0,0,0,98,0,106,0,100,0,0,0,98,0,106,0,110,0,0,0,98,0,107,0,97,0,0,0,98,0,107,0,98,0,0,0,98,0,109,0,109,0,0,0,98,0,109,0,121,0,0,0,98,0,109,0,122,0,0,0,98,0,111,0,98,0,0,0,98,0,111,0,99,0,0,0,98,0,111,0,110,0,0,0,98,0,111,0,111,0,0,0,98,0,111,0,115,0,0,0,98,0,111,0,116,0,0,0,98,0,112,0,97,0,0,0,98,0,112,0,98,0,0,0,98,0,116,0,97,0,0,0,98,0,116,0,98,0,0,0,98,0,116,0,106,0,0,0,98,0,116,0,108,0,0,0,98,0,118,0,101,0,0,0,98,0,118,0,117,0,0,0,98,0,120,0,107,0,0,0,98,0,120,0,114,0,0,0,98,0,120,0,115,0,0,0,98,0,120,0,120,0,0,0,98,0,120,0,122,0,0,0,98,0,121,0,121,0,0,0,98,0,121,0,122,0,0,0,98,0,122,0,99,0,0,0,99,0,98,0,101,0,0,0,99,0,98,0,103,0,0,0,99,0,98,0,104,0,0,0,99,0,98,0,121,0,0,0,99,0,99,0,97,0,0,0,99,0,99,0,106,0,0,0,99,0,99,0,113,0,0,0,99,0,100,0,97,0,0,0,99,0,100,0,103,0,0,0,99,0,100,0,111,0,0,0,99,0,101,0,103,0,0,0,99,0,101,0,110,0,0,0,99,0,101,0,116,0,0,0,99,0,101,0,121,0,0,0,99,0,102,0,97,0,0,0,99,0,102,0,100,0,0,0,99,0,102,0,103,0,0,0,99,0,102,0,109,0,0,0,99,0,103,0,55,0,0,0,99,0,103,0,56,0,0,0,99,0,103,0,57,0,0,0,99,0,103,0,99,0,0,0,99,0,103,0,103,0,0,0,99,0,103,0,107,0,0,0,99,0,104,0,114,0,0,0,99,0,105,0,104,0,0,0,99,0,105,0,107,0,0,0,99,0,105,0,112,0,0,0,99,0,105,0,114,0,0,0,99,0,105,0,119,0,0,0,99,0,105,0,121,0,0,0,99,0,106,0,97,0,0,0,99,0,106,0,107,0,0,0,99,0,106,0,114,0,0,0,99,0,106,0,115,0,0,0,99,0,107,0,97,0,0,0,99,0,107,0,104,0,0,0,99,0,108,0,99,0,0,0,99,0,108,0,101,0,0,0,99,0,108,0,111,0,0,0,99,0,108,0,119,0,0,0,99,0,108,0,121,0,0,0,99,0,109,0,101,0,0,0,99,0,109,0,105,0,0,0,99,0,109,0,107,0,0,0,99,0,110,0,114,0,0,0,99,0,111,0,121,0,0,0,99,0,111,0,122,0,0,0,99,0,112,0,105,0,0,0,99,0,112,0,115,0,0,0,99,0,112,0,117,0,0,0,99,0,112,0,120,0,0,0,99,0,113,0,100,0,0,0,99,0,113,0,117,0,0,0,99,0,114,0,103,0,0,0,99,0,114,0,104,0,0,0,99,0,114,0,115,0,0,0,99,0,116,0,97,0,0,0,99,0,117,0,103,0,0,0,99,0,117,0,109,0,0,0,99,0,118,0,103,0,0,0,99,0,118,0,110,0,0,0,99,0,119,0,100,0,0,0,99,0,119,0,101,0,0,0,99,0,119,0,103,0,0,0,99,0,119,0,116,0,0,0,99,0,121,0,111,0,0,0,99,0,122,0,107,0,0,0,99,0,122,0,111,0,0,0,99,0,122,0,116,0,0,0,100,0,97,0,97,0,0,0,100,0,97,0,102,0,0,0,100,0,97,0,112,0,0,0,100,0,99,0,99,0,0,0,100,0,100,0,97,0,0,0,100,0,100,0,103,0,0,0,100,0,101,0,122,0,0,0,100,0,103,0,117,0,0,0,100,0,104,0,100,0,0,0,100,0,104,0,103,0,0,0,100,0,105,0,107,0,0,0,100,0,105,0,113,0,0,0,100,0,105,0,117,0,0,0,100,0,106,0,108,0,0,0,100,0,106,0,114,0,0,0,100,0,107,0,107,0,0,0,100,0,107,0,120,0,0,0,100,0,108,0,103,0,0,0,100,0,108,0,107,0,0,0,100,0,110,0,97,0,0,0,100,0,110,0,103,0,0,0,100,0,110,0,121,0,0,0,100,0,114,0,103,0,0,0,100,0,114,0,104,0,0,0,100,0,114,0,108,0,0,0,100,0,114,0,113,0,0,0,100,0,114,0,114,0,0,0,100,0,114,0,119,0,0,0,100,0,115,0,101,0,0,0,100,0,115,0,113,0,0,0,100,0,115,0,122,0,0,0,100,0,116,0,100,0,0,0,100,0,116,0,107,0,0,0,100,0,117,0,106,0,0,0,100,0,117,0,112,0,0,0,100,0,118,0,97,0,0,0,100,0,119,0,97,0,0,0,100,0,119,0,107,0,0,0,100,0,119,0,108,0,0,0,100,0,119,0,117,0,0,0,100,0,119,0,119,0,0,0,100,0,121,0,100,0,0,0,100,0,121,0,103,0,0,0,100,0,121,0,105,0,0,0,100,0,121,0,117,0,0,0,100,0,121,0,121,0,0,0,100,0,122,0,97,0,0,0,100,0,122,0,100,0,0,0,100,0,122,0,101,0,0,0,100,0,122,0,103,0,0,0,100,0,122,0,108,0,0,0,100,0,122,0,110,0,0,0,101,0,97,0,97,0,0,0,101,0,98,0,99,0,0,0,101,0,98,0,103,0,0,0,101,0,98,0,107,0,0,0,101,0,98,0,117,0,0,0,101,0,99,0,97,0,0,0,101,0,99,0,98,0,0,0,101,0,99,0,99,0,0,0,101,0,99,0,100,0,0,0,101,0,99,0,102,0,0,0,101,0,99,0,103,0,0,0,101,0,99,0,104,0,0,0,101,0,99,0,105,0,0,0,101,0,99,0,108,0,0,0,101,0,99,0,109,0,0,0,101,0,99,0,112,0,0,0,101,0,99,0,114,0,0,0,101,0,99,0,115,0,0,0,101,0,99,0,116,0,0,0,101,0,99,0,117,0,0,0,101,0,99,0,120,0,0,0,101,0,99,0,122,0,0,0,101,0,101,0,101,0,0,0,101,0,102,0,97,0,0,0,101,0,102,0,101,0,0,0,101,0,102,0,105,0,0,0,101,0,103,0,97,0,0,0,101,0,103,0,111,0,0,0,101,0,104,0,115,0,0,0,101,0,105,0,112,0,0,0,101,0,105,0,118,0,0,0,101,0,107,0,99,0,0,0,101,0,107,0,103,0,0,0,101,0,107,0,105,0,0,0,101,0,107,0,114,0,0,0,101,0,108,0,101,0,0,0,101,0,108,0,111,0,0,0,101,0,108,0,112,0,0,0,101,0,108,0,120,0,0,0,101,0,109,0,101,0,0,0,101,0,109,0,103,0,0,0,101,0,109,0,105,0,0,0,101,0,109,0,107,0,0,0,101,0,109,0,115,0,0,0,101,0,109,0,117,0,0,0,101,0,110,0,98,0,0,0,101,0,110,0,104,0,0,0,101,0,111,0,116,0,0,0,101,0,112,0,105,0,0,0,101,0,115,0,113,0,0,0,101,0,116,0,120,0,0,0,101,0,116,0,122,0,0,0,101,0,118,0,101,0,0,0,101,0,118,0,104,0,0,0,101,0,118,0,110,0,0,0,101,0,119,0,111,0,0,0,101,0,120,0,116,0,0,0,101,0,121,0,97,0,0,0,101,0,122,0,97,0,0,0,101,0,122,0,101,0,0,0,102,0,97,0,100,0,0,0,102,0,97,0,112,0,0,0,102,0,97,0,114,0,0,0,102,0,97,0,116,0,0,0,102,0,97,0,117,0,0,0,102,0,98,0,108,0,0,0,102,0,99,0,115,0,0,0,102,0,102,0,105,0,0,0,102,0,103,0,114,0,0,0,102,0,105,0,97,0,0,0,102,0,105,0,112,0,0,0,102,0,105,0,114,0,0,0,102,0,105,0,119,0,0,0,102,0,107,0,107,0,0,0,102,0,107,0,118,0,0,0,102,0,108,0,108,0,0,0,102,0,108,0,121,0,0,0,102,0,109,0,117,0,0,0,102,0,110,0,98,0,0,0,102,0,110,0,105,0,0,0,102,0,111,0,100,0,0,0,102,0,111,0,105,0,0,0,102,0,111,0,120,0,0,0,102,0,112,0,101,0,0,0,102,0,113,0,115,0,0,0,102,0,114,0,99,0,0,0,102,0,114,0,107,0,0,0,102,0,114,0,110,0,0,0,102,0,115,0,108,0,0,0,102,0,115,0,115,0,0,0,102,0,117,0,99,0,0,0,102,0,117,0,101,0,0,0,102,0,117,0,102,0,0,0,102,0,117,0,104,0,0,0,102,0,117,0,105,0,0,0,102,0,117,0,113,0,0,0,102,0,117,0,121,0,0,0,102,0,118,0,114,0,0,0,102,0,119,0,97,0,0,0,102,0,119,0,101,0,0,0,103,0,97,0,49,0,0,0,103,0,97,0,50,0,0,0,103,0,97,0,51,0,0,0,103,0,97,0,52,0,0,0,103,0,97,0,53,0,0,0,103,0,97,0,54,0,0,0,103,0,97,0,55,0,0,0,103,0,97,0,56,0,0,0,103,0,97,0,57,0,0,0,103,0,97,0,97,0,0,0,103,0,97,0,118,0,0,0,103,0,97,0,120,0,0,0,103,0,97,0,122,0,0,0,103,0,98,0,99,0,0,0,103,0,99,0,108,0,0,0,103,0,99,0,110,0,0,0,103,0,99,0,116,0,0,0,103,0,100,0,120,0,0,0,103,0,101,0,113,0,0,0,103,0,102,0,107,0,0,0,103,0,102,0,116,0,0,0,103,0,102,0,120,0,0,0,103,0,103,0,103,0,0,0,103,0,103,0,114,0,0,0,103,0,103,0,119,0,0,0,103,0,104,0,99,0,0,0,103,0,104,0,101,0,0,0,103,0,104,0,104,0,0,0,103,0,105,0,111,0,0,0,103,0,106,0,107,0,0,0,103,0,106,0,114,0,0,0,103,0,106,0,117,0,0,0,103,0,107,0,97,0,0,0,103,0,107,0,112,0,0,0,103,0,107,0,117,0,0,0,103,0,108,0,104,0,0,0,103,0,108,0,105,0,0,0,103,0,108,0,111,0,0,0,103,0,108,0,114,0,0,0,103,0,108,0,117,0,0,0,103,0,108,0,119,0,0,0,103,0,108,0,121,0,0,0,103,0,109,0,108,0,0,0,103,0,109,0,109,0,0,0,103,0,110,0,111,0,0,0,103,0,110,0,122,0,0,0,103,0,111,0,109,0,0,0,103,0,112,0,97,0,0,0,103,0,112,0,101,0,0,0,103,0,112,0,110,0,0,0,103,0,113,0,97,0,0,0,103,0,113,0,110,0,0,0,103,0,113,0,114,0,0,0,103,0,113,0,117,0,0,0,103,0,114,0,97,0,0,0,103,0,114,0,98,0,0,0,103,0,114,0,99,0,0,0,103,0,114,0,100,0,0,0,103,0,114,0,102,0,0,0,103,0,114,0,103,0,0,0,103,0,114,0,104,0,0,0,103,0,114,0,106,0,0,0,103,0,114,0,107,0,0,0,103,0,114,0,108,0,0,0,103,0,115,0,101,0,0,0,103,0,115,0,103,0,0,0,103,0,115,0,115,0,0,0,103,0,116,0,105,0,0,0,103,0,116,0,117,0,0,0,103,0,117,0,103,0,0,0,103,0,117,0,110,0,0,0,103,0,117,0,122,0,0,0,103,0,118,0,97,0,0,0,103,0,118,0,99,0,0,0,103,0,118,0,106,0,0,0,103,0,118,0,121,0,0,0,103,0,119,0,114,0,0,0,103,0,120,0,120,0,0,0,103,0,121,0,97,0,0,0,103,0,121,0,98,0,0,0,103,0,121,0,105,0,0,0,103,0,121,0,114,0,0,0,103,0,122,0,105,0,0,0,103,0,122,0,110,0,0,0,104,0,97,0,101,0,0,0,104,0,97,0,107,0,0,0,104,0,98,0,117,0,0,0,104,0,99,0,97,0,0,0,104,0,99,0,104,0,0,0,104,0,100,0,110,0,0,0,104,0,100,0,115,0,0,0,104,0,100,0,121,0,0,0,104,0,101,0,97,0,0,0,104,0,101,0,100,0,0,0,104,0,101,0,109,0,0,0,104,0,103,0,109,0,0,0,104,0,103,0,119,0,0,0,104,0,104,0,105,0,0,0,104,0,104,0,114,0,0,0,104,0,104,0,121,0,0,0,104,0,105,0,109,0,0,0,104,0,105,0,111,0,0,0,104,0,105,0,114,0,0,0,104,0,105,0,116,0,0,0,104,0,107,0,97,0,0,0,104,0,107,0,101,0,0,0,104,0,107,0,104,0,0,0,104,0,107,0,107,0,0,0,104,0,107,0,110,0,0,0,104,0,110,0,97,0,0,0,104,0,110,0,117,0,0,0,104,0,112,0,111,0,0,0,104,0,112,0,115,0,0,0,104,0,114,0,97,0,0,0,104,0,114,0,99,0,0,0,104,0,114,0,101,0,0,0,104,0,114,0,107,0,0,0,104,0,114,0,109,0,0,0,104,0,114,0,114,0,0,0,104,0,114,0,122,0,0,0,104,0,115,0,98,0,0,0,104,0,115,0,108,0,0,0,104,0,115,0,115,0,0,0,104,0,116,0,111,0,0,0,104,0,116,0,115,0,0,0,104,0,116,0,117,0,0,0,104,0,116,0,120,0,0,0,104,0,118,0,99,0,0,0,104,0,118,0,107,0,0,0,104,0,118,0,110,0,0,0,104,0,118,0,118,0,0,0,104,0,119,0,97,0,0,0,104,0,119,0,99,0,0,0,104,0,119,0,111,0,0,0,104,0,121,0,97,0,0,0,105,0,97,0,105,0,0,0,105,0,97,0,112,0,0,0,105,0,97,0,114,0,0,0,105,0,98,0,105,0,0,0,105,0,98,0,117,0,0,0,105,0,98,0,121,0,0,0,105,0,99,0,104,0,0,0,105,0,99,0,108,0,0,0,105,0,99,0,114,0,0,0,105,0,100,0,97,0,0,0,105,0,100,0,105,0,0,0,105,0,102,0,107,0,0,0,105,0,102,0,109,0,0,0,105,0,103,0,98,0,0,0,105,0,103,0,101,0,0,0,105,0,103,0,103,0,0,0,105,0,103,0,115,0,0,0,105,0,103,0,119,0,0,0,105,0,104,0,98,0,0,0,105,0,104,0,105,0,0,0,105,0,104,0,112,0,0,0,105,0,104,0,119,0,0,0,105,0,105,0,110,0,0,0,105,0,105,0,114,0,0,0,105,0,106,0,99,0,0,0,105,0,106,0,101,0,0,0,105,0,106,0,106,0,0,0,105,0,106,0,115,0,0,0,105,0,107,0,101,0,0,0,105,0,107,0,116,0,0,0,105,0,107,0,122,0,0,0,105,0,108,0,107,0,0,0,105,0,108,0,108,0,0,0,105,0,108,0,119,0,0,0,105,0,109,0,101,0,0,0,105,0,109,0,108,0,0,0,105,0,110,0,106,0,0,0,105,0,110,0,122,0,0,0,105,0,111,0,114,0,0,0,105,0,111,0,117,0,0,0,105,0,112,0,105,0,0,0,105,0,112,0,111,0,0,0,105,0,113,0,117,0,0,0,105,0,113,0,119,0,0,0,105,0,114,0,101,0,0,0,105,0,114,0,114,0,0,0,105,0,114,0,117,0,0,0,105,0,115,0,49,0,0,0,105,0,115,0,50,0,0,0,105,0,115,0,51,0,0,0,105,0,115,0,52,0,0,0,105,0,115,0,53,0,0,0,105,0,115,0,54,0,0,0,105,0,115,0,55,0,0,0,105,0,115,0,56,0,0,0,105,0,115,0,107,0,0,0,105,0,115,0,114,0,0,0,105,0,116,0,105,0,0,0,105,0,116,0,111,0,0,0,105,0,117,0,109,0,0,0,105,0,118,0,118,0,0,0,105,0,119,0,107,0,0,0,105,0,119,0,109,0,0,0,105,0,119,0,111,0,0,0,105,0,119,0,115,0,0,0,105,0,120,0,99,0,0,0,105,0,120,0,108,0,0,0,105,0,121,0,97,0,0,0,105,0,121,0,111,0,0,0,105,0,121,0,120,0,0,0,105,0,122,0,104,0,0,0,105,0,122,0,105,0,0,0,105,0,122,0,114,0,0,0,106,0,97,0,104,0,0,0,106,0,97,0,120,0,0,0,106,0,98,0,101,0,0,0,106,0,98,0,114,0,0,0,106,0,98,0,119,0,0,0,106,0,100,0,97,0,0,0,106,0,100,0,103,0,0,0,106,0,100,0,116,0,0,0,106,0,101,0,98,0,0,0,106,0,101,0,101,0,0,0,106,0,101,0,103,0,0,0,106,0,101,0,114,0,0,0,106,0,103,0,101,0,0,0,106,0,103,0,107,0,0,0,106,0,103,0,111,0,0,0,106,0,104,0,105,0,0,0,106,0,104,0,115,0,0,0,106,0,105,0,113,0,0,0,106,0,105,0,121,0,0,0,106,0,106,0,101,0,0,0,106,0,106,0,114,0,0,0,106,0,107,0,97,0,0,0,106,0,107,0,109,0,0,0,106,0,107,0,117,0,0,0,106,0,108,0,101,0,0,0,106,0,108,0,115,0,0,0,106,0,109,0,105,0,0,0,106,0,109,0,108,0,0,0,106,0,109,0,110,0,0,0,106,0,110,0,97,0,0,0,106,0,110,0,100,0,0,0,106,0,110,0,108,0,0,0,106,0,110,0,115,0,0,0,106,0,111,0,100,0,0,0,106,0,111,0,103,0,0,0,106,0,112,0,97,0,0,0,106,0,112,0,114,0,0,0,106,0,112,0,120,0,0,0,106,0,113,0,114,0,0,0,106,0,114,0,114,0,0,0,106,0,115,0,108,0,0,0,106,0,117,0,119,0,0,0,106,0,117,0,121,0,0,0,106,0,118,0,100,0,0,0,106,0,118,0,110,0,0,0,106,0,119,0,105,0,0,0,106,0,121,0,97,0,0,0,106,0,121,0,101,0,0,0,106,0,121,0,121,0,0,0,107,0,98,0,102,0,0,0,107,0,100,0,118,0,0,0,107,0,103,0,99,0,0,0,107,0,103,0,104,0,0,0,107,0,103,0,111,0,0,0,107,0,104,0,51,0,0,0,107,0,104,0,52,0,0,0,107,0,104,0,53,0,0,0,107,0,104,0,54,0,0,0,107,0,104,0,55,0,0,0,107,0,104,0,56,0,0,0,107,0,104,0,57,0,0,0,107,0,104,0,107,0,0,0,107,0,106,0,102,0,0,0,107,0,109,0,114,0,0,0,107,0,110,0,99,0,0,0,107,0,110,0,103,0,0,0,107,0,111,0,97,0,0,0,107,0,111,0,107,0,0,0,107,0,111,0,120,0,0,0,107,0,112,0,101,0,0,0,107,0,112,0,112,0,0,0,107,0,114,0,105,0,0,0,107,0,114,0,109,0,0,0,107,0,116,0,114,0,0,0,107,0,118,0,98,0,0,0,107,0,118,0,114,0,0,0,107,0,118,0,115,0,0,0,107,0,119,0,113,0,0,0,107,0,120,0,100,0,0,0,107,0,120,0,101,0,0,0,107,0,120,0,102,0,0,0,107,0,120,0,108,0,0,0,107,0,120,0,117,0,0,0,107,0,122,0,104,0,0,0,107,0,122,0,106,0,0,0,107,0,122,0,116,0,0,0,108,0,97,0,107,0,0,0,108,0,97,0,117,0,0,0,108,0,98,0,107,0,0,0,108,0,99,0,102,0,0,0,108,0,99,0,104,0,0,0,108,0,99,0,115,0,0,0,108,0,100,0,100,0,0,0,108,0,101,0,103,0,0,0,108,0,102,0,97,0,0,0,108,0,102,0,110,0,0,0,108,0,103,0,122,0,0,0,108,0,104,0,112,0,0,0,108,0,105,0,105,0,0,0,108,0,105,0,119,0,0,0,108,0,106,0,97,0,0,0,108,0,106,0,101,0,0,0,108,0,106,0,105,0,0,0,108,0,106,0,108,0,0,0,108,0,106,0,112,0,0,0,108,0,107,0,98,0,0,0,108,0,107,0,115,0,0,0,108,0,107,0,121,0,0,0,108,0,108,0,115,0,0,0,108,0,108,0,120,0,0,0,108,0,110,0,115,0,0,0,108,0,110,0,117,0,0,0,108,0,110,0,122,0,0,0,108,0,111,0,122,0,0,0,108,0,112,0,97,0,0,0,108,0,112,0,101,0,0,0,108,0,113,0,114,0,0,0,108,0,114,0,97,0,0,0,108,0,114,0,99,0,0,0,108,0,114,0,103,0,0,0,108,0,114,0,114,0,0,0,108,0,114,0,116,0,0,0,108,0,114,0,118,0,0,0,108,0,114,0,122,0,0,0,108,0,115,0,97,0,0,0,108,0,115,0,99,0,0,0,108,0,115,0,100,0,0,0,108,0,115,0,101,0,0,0,108,0,115,0,102,0,0,0,108,0,115,0,106,0,0,0,108,0,115,0,121,0,0,0,108,0,116,0,99,0,0,0,108,0,116,0,103,0,0,0,108,0,116,0,111,0,0,0,108,0,116,0,117,0,0,0,108,0,117,0,100,0,0,0,108,0,117,0,103,0,0,0,108,0,117,0,108,0,0,0,108,0,118,0,97,0,0,0,108,0,118,0,107,0,0,0,108,0,118,0,117,0,0,0,108,0,119,0,97,0,0,0,108,0,119,0,101,0,0,0,108,0,119,0,103,0,0,0,108,0,119,0,111,0,0,0,108,0,119,0,119,0,0,0,108,0,120,0,109,0,0,0,108,0,121,0,97,0,0,0,108,0,121,0,103,0,0,0,108,0,121,0,110,0,0,0,108,0,122,0,108,0,0,0,108,0,122,0,110,0,0,0,108,0,122,0,122,0,0,0,109,0,97,0,105,0,0,0,109,0,97,0,120,0,0,0,109,0,97,0,122,0,0,0,109,0,101,0,103,0,0,0,109,0,101,0,111,0,0,0,109,0,102,0,97,0,0,0,109,0,102,0,98,0,0,0,109,0,102,0,101,0,0,0,109,0,103,0,116,0,0,0,109,0,103,0,117,0,0,0,109,0,103,0,120,0,0,0,109,0,104,0,104,0,0,0,109,0,104,0,114,0,0,0,109,0,105,0,110,0,0,0,109,0,105,0,115,0,0,0,109,0,106,0,97,0,0,0,109,0,108,0,50,0,0,0,109,0,108,0,51,0,0,0,109,0,108,0,52,0,0,0,109,0,108,0,53,0,0,0,109,0,108,0,54,0,0,0,109,0,108,0,55,0,0,0,109,0,108,0,56,0,0,0,109,0,108,0,57,0,0,0,109,0,108,0,100,0,0,0,109,0,108,0,122,0,0,0,109,0,110,0,107,0,0,0,109,0,110,0,116,0,0,0,109,0,111,0,97,0,0,0,109,0,111,0,102,0,0,0,109,0,111,0,109,0,0,0,109,0,113,0,103,0,0,0,109,0,115,0,105,0,0,0,109,0,115,0,116,0,0,0,109,0,117,0,105,0,0,0,109,0,117,0,112,0,0,0,109,0,118,0,102,0,0,0,109,0,118,0,109,0,0,0,109,0,119,0,100,0,0,0,109,0,119,0,106,0,0,0,109,0,119,0,122,0,0,0,109,0,121,0,100,0,0,0,109,0,121,0,105,0,0,0,109,0,121,0,113,0,0,0,109,0,121,0,116,0,0,0,109,0,122,0,98,0,0,0,109,0,122,0,112,0,0,0,109,0,122,0,113,0,0,0,109,0,122,0,115,0,0,0,109,0,122,0,116,0,0,0,110,0,98,0,120,0,0,0,110,0,98,0,121,0,0,0,110,0,99,0,120,0,0,0,110,0,99,0,122,0,0,0,110,0,101,0,49,0,0,0,110,0,101,0,50,0,0,0,110,0,101,0,51,0,0,0,110,0,101,0,52,0,0,0,110,0,101,0,53,0,0,0,110,0,101,0,54,0,0,0,110,0,101,0,55,0,0,0,110,0,101,0,56,0,0,0,110,0,102,0,100,0,0,0,110,0,102,0,108,0,0,0,110,0,102,0,117,0,0,0,110,0,103,0,111,0,0,0,110,0,104,0,100,0,0,0,110,0,105,0,113,0,0,0,110,0,106,0,100,0,0,0,110,0,107,0,122,0,0,0,110,0,108,0,99,0,0,0,110,0,108,0,113,0,0,0,110,0,108,0,114,0,0,0,110,0,110,0,115,0,0,0,110,0,111,0,97,0,0,0,110,0,111,0,111,0,0,0,110,0,112,0,49,0,0,0,110,0,112,0,50,0,0,0,110,0,112,0,51,0,0,0,110,0,112,0,52,0,0,0,110,0,112,0,53,0,0,0,110,0,112,0,108,0,0,0,110,0,112,0,115,0,0,0,110,0,112,0,117,0,0,0,110,0,113,0,103,0,0,0,110,0,113,0,113,0,0,0,110,0,113,0,116,0,0,0,110,0,113,0,121,0,0,0,110,0,114,0,105,0,0,0,110,0,114,0,112,0,0,0,110,0,114,0,114,0,0,0,110,0,114,0,120,0,0,0,110,0,114,0,122,0,0,0,110,0,115,0,111,0,0,0,110,0,116,0,109,0,0,0,110,0,116,0,115,0,0,0,110,0,118,0,104,0,0,0,110,0,118,0,109,0,0,0,110,0,118,0,111,0,0,0,110,0,119,0,101,0,0,0,110,0,119,0,103,0,0,0,110,0,119,0,105,0,0,0,110,0,119,0,111,0,0,0,110,0,119,0,114,0,0,0,110,0,120,0,97,0,0,0,110,0,120,0,103,0,0,0,110,0,120,0,105,0,0,0,110,0,120,0,117,0,0,0,110,0,120,0,120,0,0,0,110,0,121,0,100,0,0,0,110,0,122,0,100,0,0,0,110,0,122,0,105,0,0,0,110,0,122,0,107,0,0,0,110,0,122,0,109,0,0,0,110,0,122,0,110,0,0,0,111,0,97,0,97,0,0,0,111,0,97,0,99,0,0,0,111,0,97,0,118,0,0,0,111,0,98,0,105,0,0,0,111,0,98,0,111,0,0,0,111,0,99,0,97,0,0,0,111,0,99,0,104,0,0,0,111,0,99,0,109,0,0,0,111,0,99,0,111,0,0,0,111,0,99,0,117,0,0,0,111,0,100,0,97,0,0,0,111,0,100,0,107,0,0,0,111,0,102,0,111,0,0,0,111,0,102,0,115,0,0,0,111,0,102,0,117,0,0,0,111,0,103,0,103,0,0,0,111,0,105,0,97,0,0,0,111,0,105,0,101,0,0,0,111,0,105,0,110,0,0,0,111,0,106,0,103,0,0,0,111,0,106,0,112,0,0,0,111,0,107,0,105,0,0,0,111,0,107,0,120,0,0,0,111,0,107,0,122,0,0,0,111,0,108,0,97,0,0,0,111,0,108,0,107,0,0,0,111,0,108,0,111,0,0,0,111,0,108,0,114,0,0,0,111,0,109,0,101,0,0,0,111,0,109,0,103,0,0,0,111,0,109,0,105,0,0,0,111,0,111,0,100,0,0,0,111,0,111,0,103,0,0,0,111,0,112,0,97,0,0,0,111,0,112,0,107,0,0,0,111,0,112,0,109,0,0,0,111,0,112,0,121,0,0,0,111,0,114,0,110,0,0,0,111,0,114,0,115,0,0,0,111,0,114,0,121,0,0,0,111,0,114,0,122,0,0,0,111,0,115,0,99,0,0,0,111,0,115,0,105,0,0,0,111,0,115,0,120,0,0,0,111,0,116,0,105,0,0,0,111,0,117,0,101,0,0,0,111,0,117,0,105,0,0,0,111,0,117,0,109,0,0,0,111,0,117,0,110,0,0,0,111,0,118,0,100,0,0,0,111,0,119,0,105,0,0,0,111,0,119,0,108,0,0,0,111,0,121,0,98,0,0,0,111,0,121,0,100,0,0,0,111,0,121,0,109,0,0,0,111,0,121,0,121,0,0,0,111,0,122,0,109,0,0,0,112,0,97,0,50,0,0,0,112,0,97,0,51,0,0,0,112,0,97,0,52,0,0,0,112,0,97,0,53,0,0,0,112,0,97,0,54,0,0,0,112,0,97,0,55,0,0,0,112,0,97,0,56,0,0,0,112,0,97,0,57,0,0,0,112,0,97,0,116,0,0,0,112,0,98,0,116,0,0,0,112,0,98,0,117,0,0,0,112,0,98,0,118,0,0,0,112,0,98,0,121,0,0,0,112,0,98,0,122,0,0,0,112,0,99,0,109,0,0,0,112,0,99,0,112,0,0,0,112,0,99,0,114,0,0,0,112,0,99,0,119,0,0,0,112,0,100,0,97,0,0,0,112,0,100,0,99,0,0,0,112,0,100,0,105,0,0,0,112,0,101,0,108,0,0,0,112,0,101,0,115,0,0,0,112,0,101,0,118,0,0,0,112,0,102,0,97,0,0,0,112,0,102,0,101,0,0,0,112,0,102,0,108,0,0,0,112,0,103,0,100,0,0,0,112,0,103,0,103,0,0,0,112,0,103,0,105,0,0,0,112,0,103,0,110,0,0,0,112,0,103,0,115,0,0,0,112,0,103,0,117,0,0,0,112,0,103,0,121,0,0,0,112,0,103,0,122,0,0,0,112,0,104,0,97,0,0,0,112,0,104,0,100,0,0,0,112,0,105,0,105,0,0,0,112,0,105,0,106,0,0,0,112,0,106,0,116,0,0,0,112,0,108,0,112,0,0,0,112,0,108,0,116,0,0,0,112,0,109,0,99,0,0,0,112,0,109,0,117,0,0,0,112,0,110,0,98,0,0,0,112,0,111,0,99,0,0,0,112,0,111,0,100,0,0,0,112,0,111,0,107,0,0,0,112,0,112,0,97,0,0,0,112,0,112,0,101,0,0,0,112,0,112,0,105,0,0,0,112,0,112,0,114,0,0,0,112,0,113,0,97,0,0,0,112,0,113,0,101,0,0,0,112,0,113,0,109,0,0,0,112,0,113,0,119,0,0,0,112,0,114,0,98,0,0,0,112,0,114,0,115,0,0,0,112,0,114,0,121,0,0,0,112,0,114,0,122,0,0,0,112,0,115,0,116,0,0,0,112,0,115,0,119,0,0,0,112,0,115,0,121,0,0,0,112,0,116,0,97,0,0,0,112,0,116,0,121,0,0,0,112,0,117,0,107,0,0,0,112,0,117,0,109,0,0,0,112,0,117,0,122,0,0,0,112,0,119,0,103,0,0,0,112,0,119,0,105,0,0,0,112,0,119,0,114,0,0,0,112,0,119,0,119,0,0,0,112,0,120,0,109,0,0,0,112,0,121,0,50,0,0,0,112,0,121,0,51,0,0,0,112,0,121,0,52,0,0,0,112,0,121,0,53,0,0,0,112,0,121,0,54,0,0,0,112,0,121,0,55,0,0,0,112,0,121,0,56,0,0,0,112,0,121,0,57,0,0,0,112,0,121,0,101,0,0,0,112,0,121,0,115,0,0,0,112,0,121,0,117,0,0,0,112,0,122,0,104,0,0,0,112,0,122,0,110,0,0,0,113,0,102,0,122,0,0,0,113,0,117,0,98,0,0,0,113,0,117,0,100,0,0,0,113,0,117,0,102,0,0,0,113,0,117,0,103,0,0,0,113,0,117,0,104,0,0,0,113,0,117,0,107,0,0,0,113,0,117,0,108,0,0,0,113,0,117,0,112,0,0,0,113,0,117,0,114,0,0,0,113,0,117,0,119,0,0,0,113,0,117,0,120,0,0,0,113,0,117,0,121,0,0,0,113,0,117,0,122,0,0,0,113,0,118,0,104,0,0,0,113,0,118,0,105,0,0,0,113,0,118,0,106,0,0,0,113,0,118,0,108,0,0,0,113,0,118,0,109,0,0,0,113,0,118,0,110,0,0,0,113,0,118,0,111,0,0,0,113,0,118,0,112,0,0,0,113,0,118,0,122,0,0,0,113,0,119,0,101,0,0,0,113,0,119,0,109,0,0,0,113,0,119,0,115,0,0,0,113,0,120,0,110,0,0,0,113,0,120,0,111,0,0,0,113,0,120,0,112,0,0,0,113,0,120,0,114,0,0,0,113,0,120,0,116,0,0,0,113,0,120,0,117,0,0,0,113,0,121,0,97,0,0,0,113,0,121,0,112,0,0,0,114,0,97,0,103,0,0,0,114,0,98,0,98,0,0,0,114,0,98,0,112,0,0,0,114,0,99,0,102,0,0,0,114,0,101,0,103,0,0,0,114,0,101,0,121,0,0,0,114,0,103,0,97,0,0,0,114,0,103,0,110,0,0,0,114,0,103,0,117,0,0,0,114,0,104,0,103,0,0,0,114,0,104,0,112,0,0,0,114,0,105,0,102,0,0,0,114,0,105,0,114,0,0,0,114,0,106,0,103,0,0,0,114,0,106,0,105,0,0,0,114,0,106,0,115,0,0,0,114,0,107,0,109,0,0,0,114,0,107,0,119,0,0,0,114,0,109,0,114,0,0,0,114,0,109,0,122,0,0,0,114,0,110,0,97,0,0,0,114,0,110,0,98,0,0,0,114,0,110,0,100,0,0,0,114,0,110,0,103,0,0,0,114,0,110,0,108,0,0,0,114,0,110,0,110,0,0,0,114,0,110,0,112,0,0,0,114,0,110,0,114,0,0,0,114,0,110,0,119,0,0,0,114,0,111,0,99,0,0,0,114,0,111,0,114,0,0,0,114,0,111,0,117,0,0,0,114,0,111,0,119,0,0,0,114,0,112,0,110,0,0,0,114,0,112,0,116,0,0,0,114,0,114,0,116,0,0,0,114,0,115,0,98,0,0,0,114,0,116,0,99,0,0,0,114,0,116,0,104,0,0,0,114,0,116,0,109,0,0,0,114,0,116,0,115,0,0,0,114,0,116,0,119,0,0,0,114,0,117,0,107,0,0,0,114,0,119,0,111,0,0,0,114,0,119,0,114,0,0,0,114,0,120,0,100,0,0,0,114,0,120,0,119,0,0,0,114,0,121,0,110,0,0,0,114,0,121,0,115,0,0,0,114,0,121,0,117,0,0,0,114,0,122,0,104,0,0,0,115,0,97,0,111,0,0,0,115,0,100,0,109,0,0,0,115,0,100,0,120,0,0,0,115,0,101,0,100,0,0,0,115,0,101,0,104,0,0,0,115,0,101,0,105,0,0,0,115,0,101,0,109,0,0,0,115,0,101,0,111,0,0,0,115,0,101,0,115,0,0,0,115,0,101,0,117,0,0,0,115,0,101,0,122,0,0,0,115,0,102,0,98,0,0,0,115,0,102,0,101,0,0,0,115,0,102,0,109,0,0,0,115,0,102,0,115,0,0,0,115,0,102,0,119,0,0,0,115,0,103,0,108,0,0,0,115,0,103,0,111,0,0,0,115,0,103,0,112,0,0,0,115,0,106,0,119,0,0,0,115,0,107,0,107,0,0,0,115,0,110,0,98,0,0,0,115,0,112,0,103,0,0,0,115,0,112,0,105,0,0,0,115,0,112,0,120,0,0,0,115,0,112,0,121,0,0,0,115,0,113,0,97,0,0,0,115,0,113,0,104,0,0,0,115,0,113,0,120,0,0,0,115,0,114,0,111,0,0,0,115,0,115,0,104,0,0,0,115,0,115,0,121,0,0,0,115,0,117,0,101,0,0,0,115,0,117,0,103,0,0,0,115,0,117,0,111,0,0,0,115,0,118,0,107,0,0,0,115,0,118,0,109,0,0,0,115,0,118,0,114,0,0,0,115,0,118,0,120,0,0,0,115,0,119,0,98,0,0,0,115,0,119,0,99,0,0,0,115,0,119,0,104,0,0,0,115,0,120,0,101,0,0,0,115,0,120,0,103,0,0,0,115,0,120,0,117,0,0,0,115,0,120,0,119,0,0,0,115,0,121,0,105,0,0,0,115,0,121,0,114,0,0,0,115,0,122,0,103,0,0,0,115,0,122,0,108,0,0,0,115,0,122,0,110,0,0,0,115,0,122,0,112,0,0,0,115,0,122,0,115,0,0,0,115,0,122,0,121,0,0,0,116,0,98,0,98,0,0,0,116,0,100,0,117,0,0,0,116,0,100,0,120,0,0,0,116,0,101,0,99,0,0,0,116,0,101,0,107,0,0,0,116,0,102,0,116,0,0,0,116,0,103,0,103,0,0,0,116,0,104,0,99,0,0,0,116,0,105,0,97,0,0,0,116,0,106,0,103,0,0,0,116,0,106,0,115,0,0,0,116,0,106,0,119,0,0,0,116,0,107,0,103,0,0,0,116,0,107,0,107,0,0,0,116,0,107,0,122,0,0,0,116,0,108,0,104,0,0,0,116,0,108,0,119,0,0,0,116,0,109,0,97,0,0,0,116,0,109,0,109,0,0,0,116,0,109,0,112,0,0,0,116,0,109,0,119,0,0,0,116,0,111,0,101,0,0,0,116,0,113,0,98,0,0,0,116,0,113,0,119,0,0,0,116,0,115,0,102,0,0,0,116,0,116,0,113,0,0,0,116,0,117,0,121,0,0,0,116,0,120,0,101,0,0,0,116,0,120,0,121,0,0,0,116,0,121,0,97,0,0,0,116,0,121,0,101,0,0,0,116,0,121,0,108,0,0,0,116,0,121,0,110,0,0,0,116,0,121,0,112,0,0,0,116,0,122,0,104,0,0,0,116,0,122,0,106,0,0,0,116,0,122,0,120,0,0,0,117,0,97,0,114,0,0,0,117,0,98,0,121,0,0,0,117,0,100,0,103,0,0,0,117,0,103,0,104,0,0,0,117,0,104,0,97,0,0,0,117,0,104,0,110,0,0,0,117,0,105,0,118,0,0,0,117,0,106,0,105,0,0,0,117,0,107,0,115,0,0,0,117,0,107,0,121,0,0,0,117,0,108,0,105,0,0,0,117,0,108,0,119,0,0,0,117,0,109,0,103,0,0,0,117,0,109,0,117,0,0,0,117,0,110,0,97,0,0,0,117,0,110,0,101,0,0,0,117,0,110,0,105,0,0,0,117,0,110,0,112,0,0,0,117,0,110,0,117,0,0,0,117,0,110,0,120,0,0,0,117,0,110,0,122,0,0,0,117,0,111,0,107,0,0,0,117,0,111,0,110,0,0,0,117,0,112,0,118,0,0,0,117,0,114,0,107,0,0,0,117,0,115,0,112,0,0,0,117,0,115,0,117,0,0,0,117,0,116,0,104,0,0,0,117,0,116,0,112,0,0,0,117,0,116,0,117,0,0,0,117,0,117,0,109,0,0,0,117,0,117,0,110,0,0,0,117,0,117,0,114,0,0,0,117,0,117,0,117,0,0,0,117,0,118,0,104,0,0,0,117,0,118,0,108,0,0,0,117,0,121,0,97,0,0,0,117,0,122,0,110,0,0,0,118,0,97,0,121,0,0,0,118,0,98,0,98,0,0,0,118,0,98,0,107,0,0,0,118,0,101,0,97,0,0,0,118,0,101,0,98,0,0,0,118,0,101,0,99,0,0,0,118,0,101,0,100,0,0,0,118,0,101,0,101,0,0,0,118,0,101,0,102,0,0,0,118,0,101,0,103,0,0,0,118,0,101,0,104,0,0,0,118,0,101,0,105,0,0,0,118,0,101,0,106,0,0,0,118,0,101,0,107,0,0,0,118,0,101,0,108,0,0,0,118,0,101,0,112,0,0,0,118,0,101,0,115,0,0,0,118,0,101,0,116,0,0,0,118,0,101,0,118,0,0,0,118,0,101,0,119,0,0,0,118,0,101,0,120,0,0,0,118,0,101,0,121,0,0,0,118,0,101,0,122,0,0,0,118,0,103,0,114,0,0,0,118,0,103,0,116,0,0,0,118,0,105,0,118,0,0,0,118,0,107,0,97,0,0,0,118,0,107,0,105,0,0,0,118,0,107,0,107,0,0,0,118,0,107,0,116,0,0,0,118,0,107,0,122,0,0,0,118,0,108,0,112,0,0,0,118,0,108,0,115,0,0,0,118,0,110,0,107,0,0,0,118,0,110,0,109,0,0,0,118,0,110,0,112,0,0,0,118,0,111,0,116,0,0,0,118,0,114,0,97,0,0,0,118,0,115,0,105,0,0,0,118,0,116,0,111,0,0,0,118,0,117,0,116,0,0,0,118,0,119,0,97,0,0,0,119,0,99,0,105,0,0,0,119,0,100,0,100,0,0,0,119,0,100,0,103,0,0,0,119,0,100,0,121,0,0,0,119,0,101,0,97,0,0,0,119,0,101,0,119,0,0,0,119,0,102,0,103,0,0,0,119,0,103,0,103,0,0,0,119,0,103,0,105,0,0,0,119,0,103,0,111,0,0,0,119,0,103,0,117,0,0,0,119,0,103,0,119,0,0,0,119,0,103,0,121,0,0,0,119,0,104,0,103,0,0,0,119,0,104,0,107,0,0,0,119,0,105,0,114,0,0,0,119,0,105,0,119,0,0,0,119,0,105,0,121,0,0,0,119,0,106,0,105,0,0,0,119,0,107,0,100,0,0,0,119,0,107,0,121,0,0,0,119,0,108,0,97,0,0,0,119,0,108,0,99,0,0,0,119,0,108,0,101,0,0,0,119,0,110,0,103,0,0,0,119,0,111,0,119,0,0,0,119,0,111,0,121,0,0,0,119,0,112,0,99,0,0,0,119,0,114,0,97,0,0,0,119,0,114,0,98,0,0,0,119,0,114,0,100,0,0,0,119,0,115,0,103,0,0,0,119,0,115,0,105,0,0,0,119,0,116,0,102,0,0,0,119,0,116,0,107,0,0,0,119,0,116,0,109,0,0,0,119,0,116,0,119,0,0,0,119,0,117,0,100,0,0,0,119,0,117,0,104,0,0,0,119,0,117,0,114,0,0,0,119,0,117,0,117,0,0,0,119,0,119,0,111,0,0,0,119,0,119,0,114,0,0,0,119,0,119,0,119,0,0,0,119,0,120,0,97,0,0,0,119,0,120,0,119,0,0,0,119,0,121,0,97,0,0,0,119,0,121,0,98,0,0,0,119,0,121,0,114,0,0,0,119,0,121,0,121,0,0,0,120,0,97,0,103,0,0,0,120,0,98,0,97,0,0,0,120,0,98,0,114,0,0,0,120,0,98,0,119,0,0,0,120,0,98,0,120,0,0,0,120,0,98,0,121,0,0,0,120,0,99,0,121,0,0,0,120,0,100,0,97,0,0,0,120,0,100,0,99,0,0,0,120,0,100,0,107,0,0,0,120,0,100,0,109,0,0,0,120,0,100,0,111,0,0,0,120,0,100,0,113,0,0,0,120,0,100,0,121,0,0,0,120,0,101,0,98,0,0,0,120,0,101,0,100,0,0,0,120,0,101,0,103,0,0,0,120,0,101,0,112,0,0,0,120,0,102,0,97,0,0,0,120,0,103,0,105,0,0,0,120,0,103,0,114,0,0,0,120,0,103,0,117,0,0,0,120,0,103,0,119,0,0,0,120,0,104,0,97,0,0,0,120,0,104,0,109,0,0,0,120,0,104,0,114,0,0,0,120,0,105,0,97,0,0,0,120,0,105,0,98,0,0,0,120,0,105,0,108,0,0,0,120,0,105,0,110,0,0,0,120,0,105,0,112,0,0,0,120,0,105,0,118,0,0,0,120,0,105,0,121,0,0,0,120,0,106,0,98,0,0,0,120,0,106,0,116,0,0,0,120,0,107,0,104,0,0,0,120,0,108,0,103,0,0,0,120,0,108,0,105,0,0,0,120,0,108,0,115,0,0,0,120,0,108,0,117,0,0,0,120,0,108,0,121,0,0,0,120,0,109,0,109,0,0,0,120,0,109,0,118,0,0,0,120,0,109,0,119,0,0,0,120,0,111,0,103,0,0,0,120,0,111,0,105,0,0,0,120,0,111,0,107,0,0,0,120,0,111,0,114,0,0,0,120,0,111,0,119,0,0,0,120,0,112,0,101,0,0,0,120,0,113,0,97,0,0,0,120,0,113,0,116,0,0,0,120,0,114,0,103,0,0,0,120,0,114,0,105,0,0,0,120,0,114,0,113,0,0,0,120,0,114,0,114,0,0,0,120,0,114,0,119,0,0,0,120,0,115,0,106,0,0,0,120,0,115,0,121,0,0,0,120,0,116,0,121,0,0,0,120,0,116,0,122,0,0,0,120,0,117,0,100,0,0,0,120,0,117,0,106,0,0,0,120,0,118,0,105,0,0,0,120,0,118,0,115,0,0,0,120,0,119,0,97,0,0,0,120,0,119,0,103,0,0,0,120,0,119,0,114,0,0,0,120,0,119,0,116,0,0,0,120,0,119,0,119,0,0,0,120,0,120,0,98,0,0,0,120,0,120,0,107,0,0,0,120,0,120,0,109,0,0,0,120,0,120,0,114,0,0,0,120,0,120,0,116,0,0,0,120,0,121,0,116,0,0,0,120,0,121,0,121,0,0,0,120,0,122,0,109,0,0,0,120,0,122,0,112,0,0,0,121,0,98,0,100,0,0,0,121,0,98,0,101,0,0,0,121,0,99,0,104,0,0,0,121,0,99,0,110,0,0,0,121,0,99,0,112,0,0,0,121,0,100,0,100,0,0,0,121,0,100,0,103,0,0,0,121,0,100,0,107,0,0,0,121,0,100,0,115,0,0,0,121,0,101,0,97,0,0,0,121,0,101,0,99,0,0,0,121,0,101,0,110,0,0,0,121,0,101,0,121,0,0,0,121,0,103,0,97,0,0,0,121,0,103,0,105,0,0,0,121,0,103,0,112,0,0,0,121,0,103,0,119,0,0,0,121,0,104,0,100,0,0,0,121,0,104,0,115,0,0,0,121,0,105,0,104,0,0,0,121,0,105,0,120,0,0,0,121,0,105,0,121,0,0,0,121,0,105,0,122,0,0,0,121,0,107,0,97,0,0,0,121,0,107,0,114,0,0,0,121,0,108,0,101,0,0,0,121,0,108,0,105,0,0,0,121,0,108,0,114,0,0,0,121,0,108,0,117,0,0,0,121,0,108,0,121,0,0,0,121,0,109,0,120,0,0,0,121,0,109,0,122,0,0,0,121,0,110,0,97,0,0,0,121,0,110,0,103,0,0,0,121,0,110,0,104,0,0,0,121,0,110,0,115,0,0,0,121,0,110,0,117,0,0,0,121,0,111,0,98,0,0,0,121,0,111,0,103,0,0,0,121,0,111,0,105,0,0,0,121,0,111,0,116,0,0,0,121,0,112,0,107,0,0,0,121,0,112,0,122,0,0,0,121,0,114,0,101,0,0,0,121,0,114,0,105,0,0,0,121,0,114,0,115,0,0,0,121,0,114,0,121,0,0,0,121,0,115,0,121,0,0,0,121,0,116,0,112,0,0,0,121,0,117,0,117,0,0,0,121,0,118,0,97,0,0,0,121,0,118,0,116,0,0,0,121,0,119,0,103,0,0,0,121,0,119,0,108,0,0,0,121,0,119,0,110,0,0,0,121,0,119,0,119,0,0,0,121,0,120,0,97,0,0,0,121,0,120,0,103,0,0,0,121,0,120,0,117,0,0,0,121,0,120,0,121,0,0,0,121,0,121,0,114,0,0,0,121,0,121,0,117,0,0,0,121,0,121,0,122,0,0,0,121,0,122,0,103,0,0,0,121,0,122,0,107,0,0,0,122,0,98,0,99,0,0,0,122,0,98,0,108,0,0,0,122,0,98,0,119,0,0,0,122,0,99,0,100,0,0,0,122,0,100,0,106,0,0,0,122,0,101,0,97,0,0,0,122,0,103,0,104,0,0,0,122,0,103,0,114,0,0,0,122,0,104,0,100,0,0,0,122,0,104,0,110,0,0,0,122,0,105,0,122,0,0,0,122,0,107,0,100,0,0,0,122,0,107,0,122,0,0,0,122,0,108,0,101,0,0,0,122,0,108,0,106,0,0,0,122,0,108,0,109,0,0,0,122,0,108,0,113,0,0,0,122,0,108,0,115,0,0,0,122,0,108,0,119,0,0,0,122,0,110,0,107,0,0,0,122,0,110,0,115,0,0,0,122,0,111,0,104,0,0,0,122,0,111,0,111,0,0,0,122,0,113,0,101,0,0,0,122,0,114,0,97,0,0,0,122,0,114,0,103,0,0,0,122,0,114,0,115,0,0,0,122,0,117,0,97,0,0,0,122,0,117,0,104,0,0,0,122,0,117,0,121,0,0,0,122,0,120,0,120,0,0,0,122,0,121,0,98,0,0,0,122,0,121,0,103,0,0,0,122,0,121,0,106,0,0,0,122,0,121,0,110,0,0,0,122,0,121,0,112,0,0,0,122,0,122,0,106,0,0,0,69,0,71,0,126,0,72,0,0,0,116,0,122,0,49,0,48,0,0,0,116,0,122,0,51,0,48,0,0,0,116,0,122,0,50,0,48,0,0,0,115,0,121,0,113,0,117,0,0,0,122,0,119,0,109,0,115,0,0,0,67,0,97,0,110,0,115,0,0,0,109,0,119,0,114,0,117,0,0,0,98,0,119,0,102,0,114,0,0,0,84,0,104,0,97,0,105,0,0,0,109,0,119,0,109,0,103,0,0,0,71,0,114,0,101,0,107,0,0,0,84,0,102,0,110,0,103,0,0,0,103,0,121,0,101,0,115,0,0,0,103,0,121,0,100,0,101,0,0,0,83,0,121,0,114,0,99,0,0,0,109,0,119,0,110,0,98,0,0,0,115,0,121,0,105,0,100,0,0,0,117,0,121,0,116,0,97,0,0,0,82,0,117,0,110,0,114,0,0,0,98,0,122,0,115,0,99,0,0,0,104,0,117,0,112,0,115,0,0,0,115,0,122,0,115,0,104,0,0,0,122,0,119,0,109,0,110,0,0,0,66,0,117,0,103,0,105,0,0,0,73,0,116,0,97,0,108,0,0,0,97,0,122,0,108,0,97,0,0,0,97,0,122,0,109,0,105,0,0,0,97,0,122,0,115,0,114,0,0,0,107,0,119,0,107,0,117,0,0,0,108,0,114,0,109,0,121,0,0,0,117,0,122,0,115,0,97,0,0,0,117,0,122,0,115,0,117,0,0,0,98,0,121,0,104,0,114,0,0,0,103,0,119,0,98,0,115,0,0,0,104,0,117,0,107,0,109,0,0,0,108,0,121,0,110,0,108,0,0,0,109,0,119,0,110,0,101,0,0,0,117,0,122,0,115,0,105,0,0,0,83,0,97,0,114,0,98,0,0,0,100,0,101,0,115,0,108,0,0,0,100,0,101,0,115,0,116,0,0,0,103,0,101,0,115,0,122,0,0,0,105,0,101,0,115,0,111,0,0,0,105,0,113,0,119,0,97,0,0,0,110,0,108,0,122,0,104,0,0,0,110,0,112,0,103,0,97,0,0,0,121,0,101,0,115,0,97,0,0,0,121,0,101,0,115,0,104,0,0,0,97,0,122,0,98,0,97,0,0,0,97,0,122,0,110,0,97,0,0,0,97,0,122,0,115,0,109,0,0,0,98,0,119,0,107,0,108,0,0,0,98,0,119,0,107,0,119,0,0,0,109,0,118,0,110,0,111,0,0,0,115,0,118,0,115,0,118,0,0,0,117,0,122,0,110,0,103,0,0,0,83,0,121,0,108,0,111,0,0,0,97,0,122,0,103,0,97,0,0,0,98,0,115,0,115,0,119,0,0,0,98,0,121,0,98,0,114,0,0,0,98,0,121,0,118,0,105,0,0,0,98,0,122,0,99,0,121,0,0,0,99,0,118,0,115,0,100,0,0,0,101,0,116,0,97,0,102,0,0,0,104,0,117,0,99,0,115,0,0,0,108,0,117,0,114,0,109,0,0,0,108,0,121,0,106,0,97,0,0,0,117,0,121,0,99,0,111,0,0,0,117,0,121,0,115,0,111,0,0,0,117,0,121,0,116,0,116,0,0,0,117,0,122,0,116,0,107,0,0,0,117,0,122,0,116,0,111,0,0,0,67,0,104,0,97,0,109,0,0,0,75,0,97,0,108,0,105,0,0,0,80,0,104,0,97,0,103,0,0,0,83,0,97,0,109,0,114,0,0,0,88,0,115,0,117,0,120,0,0,0,66,0,111,0,112,0,111,0,0,0,67,0,111,0,112,0,116,0,0,0,82,0,106,0,110,0,103,0,0,0,83,0,111,0,114,0,97,0,0,0,86,0,97,0,105,0,105,0,0,0,97,0,101,0,114,0,107,0,0,0,97,0,101,0,117,0,113,0,0,0,97,0,117,0,119,0,97,0,0,0,98,0,105,0,98,0,114,0,0,0,98,0,105,0,107,0,105,0,0,0,98,0,105,0,109,0,97,0,0,0,98,0,105,0,109,0,121,0,0,0,98,0,106,0,97,0,113,0,0,0,98,0,110,0,116,0,117,0,0,0,98,0,115,0,101,0,103,0,0,0,98,0,115,0,114,0,99,0,0,0,98,0,119,0,108,0,111,0,0,0,98,0,119,0,110,0,119,0,0,0,99,0,100,0,105,0,116,0,0,0,99,0,100,0,107,0,103,0,0,0,99,0,100,0,107,0,108,0,0,0,99,0,102,0,109,0,112,0,0,0,99,0,102,0,115,0,101,0,0,0,99,0,104,0,116,0,105,0,0,0,99,0,105,0,108,0,103,0,0,0,99,0,105,0,118,0,98,0,0,0,99,0,105,0,122,0,122,0,0,0,99,0,108,0,114,0,109,0,0,0,99,0,108,0,118,0,115,0,0,0,99,0,110,0,108,0,110,0,0,0,99,0,110,0,110,0,120,0,0,0,99,0,110,0,121,0,110,0,0,0,100,0,101,0,116,0,104,0,0,0,100,0,106,0,111,0,98,0,0,0,101,0,103,0,109,0,110,0,0,0,101,0,115,0,101,0,120,0,0,0,101,0,115,0,103,0,99,0,0,0,101,0,115,0,104,0,117,0,0,0,101,0,115,0,112,0,118,0,0,0,103,0,101,0,107,0,97,0,0,0,103,0,108,0,115,0,109,0,0,0,103,0,110,0,102,0,97,0,0,0,103,0,110,0,102,0,114,0,0,0,103,0,110,0,108,0,111,0,0,0,103,0,110,0,112,0,105,0,0,0,103,0,119,0,99,0,97,0,0,0,103,0,119,0,111,0,105,0,0,0,103,0,121,0,117,0,116,0,0,0,104,0,110,0,99,0,112,0,0,0,104,0,117,0,100,0,101,0,0,0,104,0,117,0,100,0,117,0,0,0,104,0,117,0,103,0,121,0,0,0,104,0,117,0,109,0,105,0,0,0,104,0,117,0,110,0,107,0,0,0,104,0,117,0,115,0,107,0,0,0,104,0,117,0,118,0,101,0,0,0,105,0,100,0,103,0,111,0,0,0,105,0,100,0,106,0,119,0,0,0,105,0,100,0,112,0,112,0,0,0,105,0,101,0,99,0,101,0,0,0,105,0,101,0,99,0,119,0,0,0,105,0,101,0,107,0,101,0,0,0,105,0,101,0,107,0,107,0,0,0,105,0,101,0,107,0,121,0,0,0,105,0,101,0,108,0,107,0,0,0,105,0,101,0,108,0,109,0,0,0,105,0,108,0,104,0,97,0,0,0,105,0,110,0,108,0,97,0,0,0,105,0,110,0,116,0,103,0,0,0,105,0,110,0,116,0,114,0,0,0,105,0,116,0,98,0,97,0,0,0,105,0,116,0,102,0,105,0,0,0,105,0,116,0,102,0,114,0,0,0,105,0,116,0,112,0,97,0,0,0,107,0,119,0,106,0,97,0,0,0,108,0,97,0,97,0,116,0,0,0,108,0,97,0,99,0,104,0,0,0,108,0,97,0,118,0,105,0,0,0,108,0,97,0,120,0,101,0,0,0,108,0,114,0,103,0,107,0,0,0,108,0,114,0,114,0,105,0,0,0,108,0,117,0,101,0,115,0,0,0,108,0,117,0,108,0,117,0,0,0,108,0,121,0,110,0,113,0,0,0,108,0,121,0,119,0,97,0,0,0,109,0,99,0,103,0,97,0,0,0,109,0,99,0,106,0,101,0,0,0,109,0,99,0,108,0,97,0,0,0,109,0,99,0,109,0,97,0,0,0,109,0,99,0,109,0,99,0,0,0,109,0,99,0,109,0,103,0,0,0,109,0,99,0,109,0,111,0,0,0,109,0,100,0,104,0,105,0,0,0,109,0,100,0,114,0,105,0,0,0,109,0,117,0,98,0,108,0,0,0,109,0,117,0,114,0,114,0,0,0,109,0,119,0,110,0,105,0,0,0,109,0,119,0,110,0,107,0,0,0,109,0,119,0,110,0,117,0,0,0,109,0,119,0,115,0,97,0,0,0,110,0,97,0,111,0,104,0,0,0,110,0,103,0,97,0,110,0,0,0,110,0,103,0,98,0,111,0,0,0,110,0,103,0,99,0,114,0,0,0,110,0,103,0,106,0,105,0,0,0,110,0,103,0,114,0,105,0,0,0,110,0,103,0,116,0,97,0,0,0,110,0,105,0,99,0,97,0,0,0,110,0,112,0,107,0,111,0,0,0,110,0,112,0,110,0,97,0,0,0,110,0,112,0,114,0,97,0,0,0,110,0,112,0,115,0,97,0,0,0,110,0,112,0,115,0,101,0,0,0,111,0,109,0,122,0,97,0,0,0,112,0,107,0,103,0,98,0,0,0,114,0,111,0,97,0,114,0,0,0,114,0,117,0,98,0,97,0,0,0,114,0,117,0,98,0,117,0,0,0,114,0,117,0,100,0,97,0,0,0,114,0,117,0,115,0,97,0,0,0,114,0,117,0,116,0,97,0,0,0,115,0,100,0,100,0,119,0,0,0,115,0,100,0,103,0,122,0,0,0,115,0,100,0,110,0,114,0,0,0,115,0,107,0,112,0,118,0,0,0,115,0,107,0,122,0,105,0,0,0,115,0,108,0,110,0,119,0,0,0,115,0,110,0,108,0,103,0,0,0,115,0,111,0,98,0,114,0,0,0,115,0,111,0,103,0,101,0,0,0,115,0,111,0,115,0,97,0,0,0,115,0,114,0,115,0,105,0,0,0,115,0,114,0,119,0,97,0,0,0,115,0,115,0,101,0,99,0,0,0,115,0,115,0,101,0,119,0,0,0,115,0,115,0,106,0,103,0,0,0,115,0,121,0,104,0,97,0,0,0,116,0,100,0,107,0,97,0,0,0,116,0,106,0,103,0,98,0,0,0,116,0,108,0,98,0,97,0,0,0,116,0,108,0,118,0,105,0,0,0,117,0,115,0,99,0,97,0,0,0,117,0,115,0,100,0,99,0,0,0,117,0,115,0,108,0,97,0,0,0,117,0,115,0,110,0,104,0,0,0,117,0,121,0,99,0,108,0,0,0,117,0,121,0,109,0,97,0,0,0,119,0,102,0,117,0,118,0,0,0,119,0,115,0,118,0,115,0,0,0,121,0,101,0,104,0,117,0,0,0,121,0,101,0,106,0,97,0,0,0,121,0,101,0,114,0,97,0,0,0,121,0,101,0,115,0,117,0,0,0,122,0,97,0,101,0,99,0,0,0,122,0,97,0,103,0,112,0,0,0,122,0,119,0,104,0,97,0,0,0,49,0,57,0,57,0,52,0,0,0,83,0,103,0,110,0,119,0,0,0,97,0,122,0,110,0,118,0,0,0,98,0,119,0,106,0,119,0,0,0,98,0,119,0,115,0,101,0,0,0,98,0,121,0,104,0,111,0,0,0,99,0,110,0,102,0,106,0,0,0,99,0,118,0,116,0,115,0,0,0,99,0,122,0,53,0,49,0,0,0,99,0,122,0,53,0,50,0,0,0,99,0,122,0,54,0,52,0,0,0,99,0,122,0,55,0,50,0,0,0,99,0,122,0,56,0,48,0,0,0,103,0,101,0,115,0,106,0,0,0,103,0,121,0,99,0,117,0,0,0,103,0,121,0,112,0,116,0,0,0,104,0,117,0,104,0,101,0,0,0,104,0,117,0,107,0,118,0,0,0,105,0,116,0,109,0,115,0,0,0,109,0,119,0,116,0,104,0,0,0,114,0,111,0,99,0,118,0,0,0,114,0,115,0,118,0,111,0,0,0,115,0,118,0,115,0,115,0,0,0,115,0,122,0,108,0,117,0,0,0,117,0,122,0,102,0,97,0,0,0,117,0,122,0,106,0,105,0,0,0,99,0,122,0,107,0,114,0,0,0,83,0,111,0,121,0,111,0,0,0,99,0,122,0,107,0,97,0,0,0,99,0,122,0,112,0,97,0,0,0,99,0,122,0,115,0,116,0,0,0,104,0,117,0,115,0,110,0,0,0,105,0,116,0,98,0,110,0,0,0,105,0,116,0,98,0,111,0,0,0,105,0,116,0,116,0,110,0,0,0,109,0,116,0,53,0,48,0,0,0,112,0,108,0,108,0,98,0,0,0,117,0,121,0,114,0,110,0,0,0,65,0,103,0,104,0,98,0,0,0,65,0,114,0,109,0,105,0,0,0,65,0,118,0,115,0,116,0,0,0,66,0,97,0,108,0,105,0,0,0,66,0,97,0,109,0,117,0,0,0,66,0,97,0,116,0,107,0,0,0,66,0,117,0,104,0,100,0,0,0,67,0,97,0,107,0,109,0,0,0,67,0,97,0,114,0,105,0,0,0,67,0,104,0,101,0,114,0,0,0,67,0,112,0,114,0,116,0,0,0,68,0,117,0,112,0,108,0,0,0,69,0,103,0,121,0,112,0,0,0,69,0,108,0,98,0,97,0,0,0,71,0,111,0,116,0,104,0,0,0,71,0,114,0,97,0,110,0,0,0,72,0,97,0,110,0,111,0,0,0,72,0,109,0,110,0,103,0,0,0,74,0,97,0,118,0,97,0,0,0,76,0,97,0,110,0,97,0,0,0,76,0,101,0,112,0,99,0,0,0,76,0,105,0,109,0,98,0,0,0,76,0,105,0,115,0,117,0,0,0,76,0,121,0,99,0,105,0,0,0,76,0,121,0,100,0,105,0,0,0,77,0,97,0,104,0,106,0,0,0,77,0,97,0,110,0,100,0,0,0,77,0,97,0,110,0,105,0,0,0,77,0,101,0,110,0,100,0,0,0,77,0,101,0,114,0,99,0,0,0,77,0,111,0,100,0,105,0,0,0,77,0,114,0,111,0,111,0,0,0,78,0,97,0,114,0,98,0,0,0,78,0,98,0,97,0,116,0,0,0,79,0,103,0,97,0,109,0,0,0,79,0,108,0,99,0,107,0,0,0,79,0,114,0,107,0,104,0,0,0,79,0,115,0,103,0,101,0,0,0,79,0,115,0,109,0,97,0,0,0,80,0,97,0,108,0,109,0,0,0,80,0,101,0,114,0,109,0,0,0,80,0,104,0,108,0,105,0,0,0,80,0,104,0,108,0,112,0,0,0,80,0,104,0,110,0,120,0,0,0,80,0,108,0,114,0,100,0,0,0,80,0,114,0,116,0,105,0,0,0,82,0,111,0,104,0,103,0,0,0,83,0,97,0,117,0,114,0,0,0,83,0,104,0,114,0,100,0,0,0,83,0,105,0,100,0,100,0,0,0,83,0,117,0,110,0,100,0,0,0,84,0,97,0,103,0,98,0,0,0,84,0,97,0,107,0,114,0,0,0,84,0,97,0,108,0,101,0,0,0,84,0,97,0,108,0,117,0,0,0,84,0,97,0,118,0,116,0,0,0,84,0,103,0,108,0,103,0,0,0,84,0,104,0,97,0,97,0,0,0,84,0,105,0,114,0,104,0,0,0,85,0,103,0,97,0,114,0,0,0,87,0,97,0,114,0,97,0,0,0,88,0,112,0,101,0,111,0,0,0,89,0,105,0,105,0,105,0,0,0,97,0,101,0,97,0,106,0,0,0,97,0,101,0,97,0,122,0,0,0,97,0,101,0,100,0,117,0,0,0,97,0,101,0,102,0,117,0,0,0,97,0,101,0,115,0,104,0,0,0,97,0,109,0,97,0,103,0,0,0,97,0,109,0,97,0,118,0,0,0,97,0,109,0,101,0,114,0,0,0,97,0,109,0,103,0,114,0,0,0,97,0,109,0,107,0,116,0,0,0,97,0,109,0,108,0,111,0,0,0,97,0,109,0,115,0,104,0,0,0,97,0,109,0,115,0,117,0,0,0,97,0,109,0,116,0,118,0,0,0,97,0,109,0,118,0,100,0,0,0,97,0,117,0,110,0,116,0,0,0,97,0,117,0,115,0,97,0,0,0,97,0,122,0,110,0,120,0,0,0,97,0,122,0,115,0,97,0,0,0,97,0,122,0,120,0,97,0,0,0,97,0,122,0,121,0,101,0,0,0,98,0,104,0,49,0,55,0,0,0,98,0,105,0,98,0,98,0,0,0,98,0,105,0,99,0,97,0,0,0,98,0,105,0,99,0,105,0,0,0,98,0,105,0,103,0,105,0,0,0,98,0,105,0,107,0,114,0,0,0,98,0,105,0,107,0,121,0,0,0,98,0,105,0,109,0,117,0,0,0,98,0,105,0,109,0,119,0,0,0,98,0,105,0,110,0,103,0,0,0,98,0,105,0,114,0,109,0,0,0,98,0,105,0,114,0,116,0,0,0,98,0,105,0,114,0,121,0,0,0,98,0,106,0,98,0,111,0,0,0,98,0,106,0,99,0,111,0,0,0,98,0,106,0,100,0,111,0,0,0,98,0,106,0,107,0,111,0,0,0,98,0,106,0,108,0,105,0,0,0,98,0,106,0,109,0,111,0,0,0,98,0,106,0,111,0,117,0,0,0,98,0,106,0,112,0,108,0,0,0,98,0,106,0,122,0,111,0,0,0,98,0,110,0,98,0,101,0,0,0,98,0,110,0,98,0,109,0,0,0,98,0,110,0,116,0,101,0,0,0,98,0,113,0,98,0,111,0,0,0,98,0,113,0,115,0,97,0,0,0,98,0,113,0,115,0,101,0,0,0,98,0,114,0,97,0,99,0,0,0,98,0,114,0,97,0,112,0,0,0,98,0,114,0,98,0,97,0,0,0,98,0,114,0,99,0,101,0,0,0,98,0,114,0,100,0,102,0,0,0,98,0,114,0,101,0,115,0,0,0,98,0,114,0,103,0,111,0,0,0,98,0,114,0,109,0,97,0,0,0,98,0,114,0,109,0,103,0,0,0,98,0,114,0,112,0,101,0,0,0,98,0,114,0,112,0,105,0,0,0,98,0,114,0,112,0,114,0,0,0,98,0,114,0,114,0,106,0,0,0,98,0,114,0,115,0,99,0,0,0,98,0,114,0,115,0,101,0,0,0,98,0,114,0,115,0,112,0,0,0,98,0,114,0,116,0,111,0,0,0,98,0,115,0,97,0,107,0,0,0,98,0,115,0,98,0,105,0,0,0,98,0,115,0,98,0,112,0,0,0,98,0,115,0,98,0,121,0,0,0,98,0,115,0,99,0,101,0,0,0,98,0,115,0,99,0,105,0,0,0,98,0,115,0,99,0,107,0,0,0,98,0,115,0,99,0,111,0,0,0,98,0,115,0,99,0,115,0,0,0,98,0,115,0,101,0,120,0,0,0,98,0,115,0,102,0,112,0,0,0,98,0,115,0,104,0,105,0,0,0,98,0,115,0,104,0,116,0,0,0,98,0,115,0,105,0,110,0,0,0,98,0,115,0,108,0,105,0,0,0,98,0,115,0,109,0,99,0,0,0,98,0,115,0,109,0,103,0,0,0,98,0,115,0,109,0,105,0,0,0,98,0,115,0,110,0,101,0,0,0,98,0,115,0,110,0,115,0,0,0,98,0,115,0,114,0,105,0,0,0,98,0,115,0,115,0,97,0,0,0,98,0,115,0,115,0,101,0,0,0,98,0,115,0,115,0,111,0,0,0,98,0,115,0,115,0,115,0,0,0,98,0,115,0,119,0,103,0,0,0,98,0,116,0,103,0,97,0,0,0,98,0,116,0,116,0,121,0,0,0,98,0,119,0,99,0,101,0,0,0,98,0,119,0,99,0,104,0,0,0,98,0,119,0,103,0,97,0,0,0,98,0,119,0,103,0,104,0,0,0,98,0,119,0,107,0,103,0,0,0,98,0,119,0,110,0,101,0,0,0,98,0,119,0,115,0,116,0,0,0,98,0,121,0,104,0,109,0,0,0,98,0,121,0,109,0,97,0,0,0,98,0,121,0,109,0,105,0,0,0,98,0,122,0,98,0,122,0,0,0,98,0,122,0,111,0,119,0,0,0,99,0,97,0,97,0,98,0,0,0,99,0,97,0,98,0,99,0,0,0,99,0,97,0,109,0,98,0,0,0,99,0,97,0,110,0,98,0,0,0,99,0,97,0,110,0,108,0,0,0,99,0,97,0,111,0,110,0,0,0,99,0,97,0,112,0,101,0,0,0,99,0,97,0,113,0,99,0,0,0,99,0,97,0,115,0,107,0,0,0,99,0,97,0,121,0,116,0,0,0,99,0,100,0,98,0,99,0,0,0,99,0,100,0,98,0,117,0,0,0,99,0,100,0,101,0,113,0,0,0,99,0,100,0,104,0,117,0,0,0,99,0,100,0,107,0,99,0,0,0,99,0,100,0,107,0,101,0,0,0,99,0,100,0,107,0,110,0,0,0,99,0,100,0,107,0,115,0,0,0,99,0,100,0,108,0,111,0,0,0,99,0,100,0,108,0,117,0,0,0,99,0,100,0,109,0,97,0,0,0,99,0,100,0,110,0,107,0,0,0,99,0,100,0,110,0,117,0,0,0,99,0,100,0,115,0,97,0,0,0,99,0,100,0,115,0,107,0,0,0,99,0,100,0,115,0,117,0,0,0,99,0,100,0,116,0,97,0,0,0,99,0,100,0,116,0,111,0,0,0,99,0,100,0,116,0,117,0,0,0,99,0,102,0,97,0,99,0,0,0,99,0,102,0,98,0,98,0,0,0,99,0,102,0,98,0,107,0,0,0,99,0,102,0,104,0,107,0,0,0,99,0,102,0,104,0,109,0,0,0,99,0,102,0,104,0,115,0,0,0,99,0,102,0,107,0,98,0,0,0,99,0,102,0,107,0,103,0,0,0,99,0,102,0,108,0,98,0,0,0,99,0,102,0,109,0,98,0,0,0,99,0,102,0,110,0,109,0,0,0,99,0,102,0,111,0,112,0,0,0,99,0,102,0,117,0,107,0,0,0,99,0,102,0,118,0,107,0,0,0,99,0,104,0,97,0,103,0,0,0,99,0,104,0,97,0,105,0,0,0,99,0,104,0,97,0,114,0,0,0,99,0,104,0,98,0,101,0,0,0,99,0,104,0,98,0,108,0,0,0,99,0,104,0,98,0,115,0,0,0,99,0,104,0,102,0,114,0,0,0,99,0,104,0,103,0,101,0,0,0,99,0,104,0,103,0,108,0,0,0,99,0,104,0,103,0,114,0,0,0,99,0,104,0,106,0,117,0,0,0,99,0,104,0,108,0,117,0,0,0,99,0,104,0,110,0,101,0,0,0,99,0,104,0,110,0,119,0,0,0,99,0,104,0,111,0,119,0,0,0,99,0,104,0,115,0,111,0,0,0,99,0,104,0,115,0,122,0,0,0,99,0,104,0,116,0,103,0,0,0,99,0,104,0,117,0,114,0,0,0,99,0,104,0,118,0,100,0,0,0,99,0,104,0,118,0,115,0,0,0,99,0,105,0,97,0,98,0,0,0,99,0,105,0,98,0,115,0,0,0,99,0,105,0,99,0,109,0,0,0,99,0,105,0,100,0,110,0,0,0,99,0,105,0,103,0,100,0,0,0,99,0,105,0,108,0,99,0,0,0,99,0,105,0,109,0,103,0,0,0,99,0,105,0,115,0,109,0,0,0,99,0,105,0,115,0,118,0,0,0,99,0,105,0,119,0,114,0,0,0,99,0,105,0,121,0,109,0,0,0,99,0,108,0,97,0,105,0,0,0,99,0,108,0,97,0,110,0,0,0,99,0,108,0,97,0,112,0,0,0,99,0,108,0,97,0,114,0,0,0,99,0,108,0,97,0,116,0,0,0,99,0,108,0,98,0,105,0,0,0,99,0,108,0,99,0,111,0,0,0,99,0,108,0,108,0,105,0,0,0,99,0,108,0,108,0,108,0,0,0,99,0,108,0,108,0,114,0,0,0,99,0,108,0,109,0,97,0,0,0,99,0,108,0,109,0,108,0,0,0,99,0,108,0,110,0,98,0,0,0,99,0,108,0,116,0,97,0,0,0,99,0,109,0,97,0,100,0,0,0,99,0,109,0,99,0,101,0,0,0,99,0,109,0,101,0,110,0,0,0,99,0,109,0,101,0,115,0,0,0,99,0,109,0,108,0,116,0,0,0,99,0,109,0,110,0,111,0,0,0,99,0,109,0,110,0,119,0,0,0,99,0,109,0,111,0,117,0,0,0,99,0,109,0,115,0,117,0,0,0,99,0,109,0,115,0,119,0,0,0,99,0,110,0,97,0,104,0,0,0,99,0,110,0,98,0,106,0,0,0,99,0,110,0,99,0,113,0,0,0,99,0,110,0,103,0,100,0,0,0,99,0,110,0,103,0,115,0,0,0,99,0,110,0,103,0,120,0,0,0,99,0,110,0,103,0,122,0,0,0,99,0,110,0,104,0,101,0,0,0,99,0,110,0,104,0,105,0,0,0,99,0,110,0,104,0,110,0,0,0,99,0,110,0,106,0,108,0,0,0,99,0,110,0,106,0,115,0,0,0,99,0,110,0,106,0,120,0,0,0,99,0,110,0,109,0,111,0,0,0,99,0,110,0,110,0,109,0,0,0,99,0,110,0,113,0,104,0,0,0,99,0,110,0,115,0,104,0,0,0,99,0,110,0,115,0,110,0,0,0,99,0,110,0,115,0,120,0,0,0,99,0,110,0,116,0,106,0,0,0,99,0,110,0,116,0,119,0,0,0,99,0,110,0,120,0,106,0,0,0,99,0,110,0,120,0,122,0,0,0,99,0,110,0,122,0,106,0,0,0,99,0,111,0,100,0,99,0,0,0,99,0,114,0,115,0,106,0,0,0,99,0,117,0,48,0,49,0,0,0,99,0,117,0,57,0,57,0,0,0,99,0,118,0,98,0,114,0,0,0,99,0,118,0,98,0,118,0,0,0,99,0,118,0,99,0,97,0,0,0,99,0,118,0,99,0,102,0,0,0,99,0,118,0,99,0,114,0,0,0,99,0,118,0,109,0,97,0,0,0,99,0,118,0,109,0,111,0,0,0,99,0,118,0,112,0,97,0,0,0,99,0,118,0,112,0,110,0,0,0,99,0,118,0,112,0,114,0,0,0,99,0,118,0,114,0,98,0,0,0,99,0,118,0,114,0,103,0,0,0,99,0,118,0,114,0,115,0,0,0,99,0,118,0,115,0,102,0,0,0,99,0,118,0,115,0,111,0,0,0,99,0,118,0,115,0,115,0,0,0,99,0,118,0,115,0,118,0,0,0,99,0,118,0,116,0,97,0,0,0,99,0,122,0,49,0,48,0,0,0,99,0,122,0,50,0,48,0,0,0,99,0,122,0,51,0,49,0,0,0,99,0,122,0,51,0,50,0,0,0,99,0,122,0,52,0,49,0,0,0,99,0,122,0,52,0,50,0,0,0,99,0,122,0,53,0,51,0,0,0,99,0,122,0,54,0,51,0,0,0,99,0,122,0,55,0,49,0,0,0,100,0,101,0,98,0,98,0,0,0,100,0,101,0,98,0,101,0,0,0,100,0,101,0,98,0,119,0,0,0,100,0,101,0,98,0,121,0,0,0,100,0,101,0,104,0,98,0,0,0,100,0,101,0,104,0,101,0,0,0,100,0,101,0,104,0,104,0,0,0,100,0,101,0,109,0,118,0,0,0,100,0,101,0,110,0,105,0,0,0,100,0,101,0,110,0,119,0,0,0,100,0,101,0,114,0,112,0,0,0,100,0,101,0,115,0,104,0,0,0,100,0,101,0,115,0,110,0,0,0,100,0,106,0,116,0,97,0,0,0,101,0,101,0,51,0,55,0,0,0,101,0,101,0,51,0,57,0,0,0,101,0,101,0,52,0,53,0,0,0,101,0,101,0,53,0,48,0,0,0,101,0,101,0,53,0,50,0,0,0,101,0,101,0,53,0,54,0,0,0,101,0,101,0,54,0,48,0,0,0,101,0,101,0,54,0,52,0,0,0,101,0,101,0,54,0,56,0,0,0,101,0,101,0,55,0,49,0,0,0,101,0,101,0,55,0,52,0,0,0,101,0,101,0,55,0,57,0,0,0,101,0,101,0,56,0,49,0,0,0,101,0,101,0,56,0,52,0,0,0,101,0,101,0,56,0,55,0,0,0,101,0,103,0,98,0,97,0,0,0,101,0,103,0,98,0,104,0,0,0,101,0,103,0,100,0,107,0,0,0,101,0,103,0,100,0,116,0,0,0,101,0,103,0,103,0,104,0,0,0,101,0,103,0,103,0,122,0,0,0,101,0,103,0,105,0,115,0,0,0,101,0,103,0,106,0,115,0,0,0,101,0,103,0,107,0,98,0,0,0,101,0,103,0,107,0,110,0,0,0,101,0,103,0,108,0,120,0,0,0,101,0,103,0,109,0,116,0,0,0,101,0,114,0,97,0,110,0,0,0,101,0,114,0,100,0,107,0,0,0,101,0,114,0,100,0,117,0,0,0,101,0,114,0,103,0,98,0,0,0,101,0,114,0,109,0,97,0,0,0,101,0,114,0,115,0,107,0,0,0,101,0,115,0,97,0,98,0,0,0,101,0,115,0,97,0,108,0,0,0,101,0,115,0,97,0,110,0,0,0,101,0,115,0,97,0,118,0,0,0,101,0,115,0,98,0,97,0,0,0,101,0,115,0,98,0,105,0,0,0,101,0,115,0,98,0,117,0,0,0,101,0,115,0,99,0,101,0,0,0,101,0,115,0,103,0,97,0,0,0,101,0,115,0,103,0,105,0,0,0,101,0,115,0,103,0,114,0,0,0,101,0,115,0,103,0,117,0,0,0,101,0,115,0,105,0,98,0,0,0,101,0,115,0,108,0,101,0,0,0,101,0,115,0,108,0,111,0,0,0,101,0,115,0,108,0,117,0,0,0,101,0,115,0,109,0,97,0,0,0,101,0,115,0,109,0,108,0,0,0,101,0,115,0,109,0,117,0,0,0,101,0,115,0,110,0,97,0,0,0,101,0,115,0,110,0,99,0,0,0,101,0,115,0,111,0,114,0,0,0,101,0,115,0,112,0,109,0,0,0,101,0,115,0,112,0,111,0,0,0,101,0,115,0,114,0,105,0,0,0,101,0,115,0,115,0,97,0,0,0,101,0,115,0,115,0,101,0,0,0,101,0,115,0,115,0,103,0,0,0,101,0,115,0,115,0,111,0,0,0,101,0,115,0,115,0,115,0,0,0,101,0,115,0,116,0,111,0,0,0,101,0,115,0,118,0,97,0,0,0,101,0,115,0,118,0,99,0,0,0,101,0,115,0,118,0,105,0,0,0,101,0,115,0,122,0,97,0,0,0,101,0,116,0,97,0,97,0,0,0,101,0,116,0,97,0,109,0,0,0,101,0,116,0,98,0,101,0,0,0,101,0,116,0,100,0,100,0,0,0,101,0,116,0,103,0,97,0,0,0,101,0,116,0,104,0,97,0,0,0,101,0,116,0,111,0,114,0,0,0,101,0,116,0,115,0,105,0,0,0,101,0,116,0,116,0,105,0,0,0,102,0,105,0,48,0,49,0,0,0,102,0,114,0,98,0,108,0,0,0,102,0,114,0,99,0,112,0,0,0,102,0,114,0,109,0,102,0,0,0,102,0,114,0,110,0,99,0,0,0,102,0,114,0,112,0,102,0,0,0,102,0,114,0,112,0,109,0,0,0,102,0,114,0,116,0,102,0,0,0,102,0,114,0,119,0,102,0,0,0,103,0,100,0,49,0,48,0,0,0,103,0,101,0,97,0,98,0,0,0,103,0,101,0,97,0,106,0,0,0,103,0,101,0,103,0,117,0,0,0,103,0,101,0,105,0,109,0,0,0,103,0,101,0,107,0,107,0,0,0,103,0,101,0,109,0,109,0,0,0,103,0,101,0,114,0,108,0,0,0,103,0,101,0,116,0,98,0,0,0,103,0,104,0,97,0,97,0,0,0,103,0,104,0,97,0,102,0,0,0,103,0,104,0,97,0,104,0,0,0,103,0,104,0,98,0,101,0,0,0,103,0,104,0,98,0,111,0,0,0,103,0,104,0,99,0,112,0,0,0,103,0,104,0,101,0,112,0,0,0,103,0,104,0,110,0,101,0,0,0,103,0,104,0,110,0,112,0,0,0,103,0,104,0,111,0,116,0,0,0,103,0,104,0,115,0,118,0,0,0,103,0,104,0,116,0,118,0,0,0,103,0,104,0,117,0,101,0,0,0,103,0,104,0,117,0,119,0,0,0,103,0,104,0,119,0,110,0,0,0,103,0,104,0,119,0,112,0,0,0,103,0,108,0,97,0,118,0,0,0,103,0,108,0,107,0,117,0,0,0,103,0,108,0,113,0,101,0,0,0,103,0,108,0,113,0,116,0,0,0,103,0,110,0,98,0,107,0,0,0,103,0,110,0,99,0,111,0,0,0,103,0,110,0,100,0,98,0,0,0,103,0,110,0,100,0,105,0,0,0,103,0,110,0,100,0,108,0,0,0,103,0,110,0,100,0,117,0,0,0,103,0,110,0,102,0,111,0,0,0,103,0,110,0,103,0,97,0,0,0,103,0,110,0,103,0,117,0,0,0,103,0,110,0,107,0,115,0,0,0,103,0,110,0,108,0,97,0,0,0,103,0,110,0,108,0,101,0,0,0,103,0,110,0,110,0,122,0,0,0,103,0,110,0,115,0,105,0,0,0,103,0,110,0,116,0,101,0,0,0,103,0,110,0,116,0,111,0,0,0,103,0,110,0,121,0,111,0,0,0,103,0,113,0,97,0,110,0,0,0,103,0,113,0,98,0,110,0,0,0,103,0,113,0,98,0,115,0,0,0,103,0,113,0,99,0,115,0,0,0,103,0,113,0,100,0,106,0,0,0,103,0,113,0,107,0,110,0,0,0,103,0,113,0,108,0,105,0,0,0,103,0,113,0,119,0,110,0,0,0,103,0,114,0,54,0,57,0,0,0,103,0,119,0,98,0,97,0,0,0,103,0,119,0,103,0,97,0,0,0,103,0,119,0,113,0,117,0,0,0,103,0,119,0,116,0,111,0,0,0,103,0,121,0,98,0,97,0,0,0,103,0,121,0,101,0,98,0,0,0,103,0,121,0,109,0,97,0,0,0,103,0,121,0,112,0,109,0,0,0,103,0,121,0,117,0,100,0,0,0,104,0,110,0,97,0,116,0,0,0,104,0,110,0,99,0,104,0,0,0,104,0,110,0,99,0,114,0,0,0,104,0,110,0,101,0,112,0,0,0,104,0,110,0,102,0,109,0,0,0,104,0,110,0,103,0,100,0,0,0,104,0,110,0,105,0,98,0,0,0,104,0,110,0,105,0,110,0,0,0,104,0,110,0,108,0,101,0,0,0,104,0,110,0,108,0,112,0,0,0,104,0,110,0,111,0,99,0,0,0,104,0,110,0,111,0,108,0,0,0,104,0,110,0,115,0,98,0,0,0,104,0,110,0,118,0,97,0,0,0,104,0,110,0,121,0,111,0,0,0,104,0,116,0,99,0,101,0,0,0,104,0,116,0,103,0,97,0,0,0,104,0,116,0,110,0,105,0,0,0,104,0,116,0,110,0,111,0,0,0,104,0,116,0,111,0,117,0,0,0,104,0,117,0,98,0,97,0,0,0,104,0,117,0,98,0,99,0,0,0,104,0,117,0,98,0,101,0,0,0,104,0,117,0,98,0,107,0,0,0,104,0,117,0,98,0,117,0,0,0,104,0,117,0,98,0,122,0,0,0,104,0,117,0,101,0,103,0,0,0,104,0,117,0,101,0,114,0,0,0,104,0,117,0,102,0,101,0,0,0,104,0,117,0,103,0,115,0,0,0,104,0,117,0,104,0,98,0,0,0,104,0,117,0,104,0,118,0,0,0,104,0,117,0,106,0,110,0,0,0,104,0,117,0,107,0,101,0,0,0,104,0,117,0,110,0,111,0,0,0,104,0,117,0,110,0,121,0,0,0,104,0,117,0,112,0,101,0,0,0,104,0,117,0,115,0,100,0,0,0,104,0,117,0,115,0,102,0,0,0,104,0,117,0,115,0,104,0,0,0,104,0,117,0,115,0,122,0,0,0,104,0,117,0,116,0,98,0,0,0,104,0,117,0,116,0,111,0,0,0,104,0,117,0,118,0,97,0,0,0,104,0,117,0,118,0,109,0,0,0,104,0,117,0,122,0,97,0,0,0,104,0,117,0,122,0,101,0,0,0,105,0,100,0,97,0,99,0,0,0,105,0,100,0,98,0,101,0,0,0,105,0,100,0,98,0,116,0,0,0,105,0,100,0,106,0,105,0,0,0,105,0,100,0,106,0,107,0,0,0,105,0,100,0,106,0,116,0,0,0,105,0,100,0,107,0,105,0,0,0,105,0,100,0,108,0,97,0,0,0,105,0,100,0,109,0,97,0,0,0,105,0,100,0,109,0,108,0,0,0,105,0,100,0,109,0,117,0,0,0,105,0,100,0,110,0,98,0,0,0,105,0,100,0,114,0,105,0,0,0,105,0,100,0,115,0,103,0,0,0,105,0,100,0,121,0,111,0,0,0,105,0,101,0,100,0,108,0,0,0,105,0,101,0,108,0,100,0,0,0,105,0,101,0,108,0,104,0,0,0,105,0,101,0,108,0,115,0,0,0,105,0,101,0,109,0,104,0,0,0,105,0,101,0,111,0,121,0,0,0,105,0,101,0,114,0,110,0,0,0,105,0,101,0,116,0,97,0,0,0,105,0,101,0,119,0,100,0,0,0,105,0,101,0,119,0,104,0,0,0,105,0,108,0,106,0,109,0,0,0,105,0,108,0,116,0,97,0,0,0,105,0,110,0,97,0,110,0,0,0,105,0,110,0,97,0,112,0,0,0,105,0,110,0,98,0,114,0,0,0,105,0,110,0,99,0,116,0,0,0,105,0,110,0,100,0,104,0,0,0,105,0,110,0,100,0,108,0,0,0,105,0,110,0,103,0,97,0,0,0,105,0,110,0,103,0,106,0,0,0,105,0,110,0,104,0,112,0,0,0,105,0,110,0,104,0,114,0,0,0,105,0,110,0,106,0,104,0,0,0,105,0,110,0,106,0,107,0,0,0,105,0,110,0,107,0,97,0,0,0,105,0,110,0,107,0,108,0,0,0,105,0,110,0,108,0,100,0,0,0,105,0,110,0,109,0,104,0,0,0,105,0,110,0,109,0,108,0,0,0,105,0,110,0,109,0,110,0,0,0,105,0,110,0,109,0,112,0,0,0,105,0,110,0,109,0,122,0,0,0,105,0,110,0,110,0,108,0,0,0,105,0,110,0,111,0,114,0,0,0,105,0,110,0,112,0,98,0,0,0,105,0,110,0,112,0,121,0,0,0,105,0,110,0,114,0,106,0,0,0,105,0,110,0,115,0,107,0,0,0,105,0,110,0,116,0,110,0,0,0,105,0,110,0,117,0,112,0,0,0,105,0,110,0,117,0,116,0,0,0,105,0,110,0,119,0,98,0,0,0,105,0,113,0,97,0,110,0,0,0,105,0,113,0,97,0,114,0,0,0,105,0,113,0,98,0,103,0,0,0,105,0,113,0,100,0,97,0,0,0,105,0,113,0,100,0,105,0,0,0,105,0,113,0,100,0,113,0,0,0,105,0,113,0,107,0,97,0,0,0,105,0,113,0,107,0,105,0,0,0,105,0,113,0,107,0,114,0,0,0,105,0,113,0,109,0,97,0,0,0,105,0,113,0,109,0,117,0,0,0,105,0,113,0,110,0,97,0,0,0,105,0,113,0,110,0,105,0,0,0,105,0,113,0,113,0,97,0,0,0,105,0,113,0,115,0,100,0,0,0,105,0,113,0,115,0,117,0,0,0,105,0,114,0,51,0,48,0,0,0,105,0,116,0,50,0,49,0,0,0,105,0,116,0,50,0,51,0,0,0,105,0,116,0,50,0,53,0,0,0,105,0,116,0,51,0,50,0,0,0,105,0,116,0,51,0,52,0,0,0,105,0,116,0,51,0,54,0,0,0,105,0,116,0,52,0,50,0,0,0,105,0,116,0,52,0,53,0,0,0,105,0,116,0,53,0,50,0,0,0,105,0,116,0,53,0,53,0,0,0,105,0,116,0,53,0,55,0,0,0,105,0,116,0,54,0,50,0,0,0,105,0,116,0,54,0,53,0,0,0,105,0,116,0,54,0,55,0,0,0,105,0,116,0,55,0,50,0,0,0,105,0,116,0,55,0,53,0,0,0,105,0,116,0,56,0,50,0,0,0,105,0,116,0,56,0,56,0,0,0,105,0,116,0,97,0,103,0,0,0,105,0,116,0,97,0,110,0,0,0,105,0,116,0,97,0,116,0,0,0,105,0,116,0,97,0,118,0,0,0,105,0,116,0,98,0,103,0,0,0,105,0,116,0,98,0,105,0,0,0,105,0,116,0,98,0,108,0,0,0,105,0,116,0,98,0,122,0,0,0,105,0,116,0,99,0,101,0,0,0,105,0,116,0,99,0,104,0,0,0,105,0,116,0,99,0,108,0,0,0,105,0,116,0,99,0,122,0,0,0,105,0,116,0,101,0,110,0,0,0,105,0,116,0,102,0,99,0,0,0,105,0,116,0,102,0,101,0,0,0,105,0,116,0,102,0,103,0,0,0,105,0,116,0,102,0,109,0,0,0,105,0,116,0,103,0,101,0,0,0,105,0,116,0,103,0,111,0,0,0,105,0,116,0,103,0,114,0,0,0,105,0,116,0,105,0,109,0,0,0,105,0,116,0,105,0,115,0,0,0,105,0,116,0,107,0,114,0,0,0,105,0,116,0,108,0,99,0,0,0,105,0,116,0,108,0,101,0,0,0,105,0,116,0,108,0,105,0,0,0,105,0,116,0,108,0,111,0,0,0,105,0,116,0,109,0,101,0,0,0,105,0,116,0,109,0,105,0,0,0,105,0,116,0,110,0,97,0,0,0,105,0,116,0,110,0,111,0,0,0,105,0,116,0,110,0,117,0,0,0,105,0,116,0,111,0,114,0,0,0,105,0,116,0,112,0,103,0,0,0,105,0,116,0,112,0,105,0,0,0,105,0,116,0,112,0,114,0,0,0,105,0,116,0,112,0,122,0,0,0,105,0,116,0,114,0,97,0,0,0,105,0,116,0,114,0,99,0,0,0,105,0,116,0,114,0,101,0,0,0,105,0,116,0,114,0,103,0,0,0,105,0,116,0,114,0,105,0,0,0,105,0,116,0,115,0,97,0,0,0,105,0,116,0,115,0,105,0,0,0,105,0,116,0,116,0,97,0,0,0,105,0,116,0,116,0,101,0,0,0,105,0,116,0,116,0,118,0,0,0,105,0,116,0,117,0,100,0,0,0,105,0,116,0,118,0,101,0,0,0,105,0,116,0,118,0,105,0,0,0,105,0,116,0,118,0,114,0,0,0,105,0,116,0,118,0,116,0,0,0,105,0,116,0,118,0,118,0,0,0,106,0,111,0,97,0,106,0,0,0,106,0,111,0,97,0,109,0,0,0,106,0,111,0,97,0,113,0,0,0,106,0,111,0,97,0,116,0,0,0,106,0,111,0,97,0,122,0,0,0,106,0,111,0,98,0,97,0,0,0,106,0,111,0,105,0,114,0,0,0,106,0,111,0,106,0,97,0,0,0,106,0,111,0,107,0,97,0,0,0,106,0,111,0,109,0,97,0,0,0,106,0,111,0,109,0,100,0,0,0,106,0,111,0,109,0,110,0,0,0,107,0,103,0,103,0,98,0,0,0,107,0,103,0,103,0,111,0,0,0,107,0,110,0,49,0,53,0,0,0,107,0,112,0,49,0,48,0,0,0,107,0,114,0,49,0,49,0,0,0,107,0,114,0,53,0,48,0,0,0,107,0,119,0,97,0,104,0,0,0,107,0,119,0,102,0,97,0,0,0,107,0,119,0,104,0,97,0,0,0,107,0,119,0,109,0,117,0,0,0,108,0,97,0,104,0,111,0,0,0,108,0,97,0,107,0,104,0,0,0,108,0,97,0,108,0,109,0,0,0,108,0,97,0,108,0,112,0,0,0,108,0,97,0,111,0,117,0,0,0,108,0,97,0,112,0,104,0,0,0,108,0,97,0,115,0,108,0,0,0,108,0,97,0,115,0,118,0,0,0,108,0,97,0,118,0,116,0,0,0,108,0,97,0,120,0,97,0,0,0,108,0,97,0,120,0,105,0,0,0,108,0,97,0,120,0,115,0,0,0,108,0,98,0,97,0,107,0,0,0,108,0,98,0,97,0,115,0,0,0,108,0,98,0,98,0,97,0,0,0,108,0,98,0,106,0,97,0,0,0,108,0,98,0,106,0,108,0,0,0,108,0,98,0,110,0,97,0,0,0,108,0,114,0,98,0,103,0,0,0,108,0,114,0,98,0,109,0,0,0,108,0,114,0,99,0,109,0,0,0,108,0,114,0,103,0,98,0,0,0,108,0,114,0,103,0,103,0,0,0,108,0,114,0,103,0,112,0,0,0,108,0,114,0,108,0,111,0,0,0,108,0,114,0,109,0,103,0,0,0,108,0,114,0,109,0,111,0,0,0,108,0,114,0,110,0,105,0,0,0,108,0,114,0,114,0,103,0,0,0,108,0,114,0,115,0,105,0,0,0,108,0,116,0,54,0,48,0,0,0,108,0,116,0,97,0,108,0,0,0,108,0,116,0,107,0,108,0,0,0,108,0,116,0,107,0,117,0,0,0,108,0,116,0,109,0,114,0,0,0,108,0,116,0,112,0,110,0,0,0,108,0,116,0,115,0,97,0,0,0,108,0,116,0,116,0,97,0,0,0,108,0,116,0,116,0,101,0,0,0,108,0,116,0,117,0,116,0,0,0,108,0,116,0,118,0,108,0,0,0,108,0,117,0,99,0,97,0,0,0,108,0,117,0,99,0,108,0,0,0,108,0,117,0,100,0,105,0,0,0,108,0,117,0,101,0,99,0,0,0,108,0,117,0,103,0,114,0,0,0,108,0,117,0,109,0,101,0,0,0,108,0,117,0,114,0,100,0,0,0,108,0,117,0,118,0,100,0,0,0,108,0,117,0,119,0,105,0,0,0,108,0,121,0,98,0,97,0,0,0,108,0,121,0,98,0,117,0,0,0,108,0,121,0,100,0,114,0,0,0,108,0,121,0,103,0,116,0,0,0,108,0,121,0,106,0,103,0,0,0,108,0,121,0,106,0,105,0,0,0,108,0,121,0,106,0,117,0,0,0,108,0,121,0,107,0,102,0,0,0,108,0,121,0,109,0,98,0,0,0,108,0,121,0,109,0,113,0,0,0,108,0,121,0,115,0,98,0,0,0,108,0,121,0,115,0,114,0,0,0,108,0,121,0,116,0,98,0,0,0,108,0,121,0,119,0,100,0,0,0,108,0,121,0,119,0,115,0,0,0,108,0,121,0,122,0,97,0,0,0,109,0,99,0,99,0,108,0,0,0,109,0,99,0,99,0,111,0,0,0,109,0,99,0,102,0,111,0,0,0,109,0,99,0,109,0,117,0,0,0,109,0,99,0,112,0,104,0,0,0,109,0,99,0,115,0,100,0,0,0,109,0,99,0,115,0,114,0,0,0,109,0,99,0,118,0,114,0,0,0,109,0,100,0,97,0,110,0,0,0,109,0,100,0,98,0,97,0,0,0,109,0,100,0,98,0,100,0,0,0,109,0,100,0,99,0,97,0,0,0,109,0,100,0,100,0,111,0,0,0,109,0,100,0,100,0,114,0,0,0,109,0,100,0,100,0,117,0,0,0,109,0,100,0,101,0,100,0,0,0,109,0,100,0,102,0,97,0,0,0,109,0,100,0,102,0,108,0,0,0,109,0,100,0,103,0,97,0,0,0,109,0,100,0,103,0,108,0,0,0,109,0,100,0,105,0,97,0,0,0,109,0,100,0,108,0,101,0,0,0,109,0,100,0,110,0,105,0,0,0,109,0,100,0,111,0,99,0,0,0,109,0,100,0,111,0,114,0,0,0,109,0,100,0,114,0,101,0,0,0,109,0,100,0,115,0,100,0,0,0,109,0,100,0,115,0,105,0,0,0,109,0,100,0,115,0,116,0,0,0,109,0,100,0,115,0,118,0,0,0,109,0,100,0,116,0,97,0,0,0,109,0,100,0,116,0,101,0,0,0,109,0,100,0,117,0,110,0,0,0,109,0,108,0,49,0,48,0,0,0,109,0,117,0,97,0,103,0,0,0,109,0,117,0,99,0,99,0,0,0,109,0,117,0,102,0,108,0,0,0,109,0,117,0,103,0,112,0,0,0,109,0,117,0,109,0,111,0,0,0,109,0,117,0,112,0,97,0,0,0,109,0,117,0,112,0,108,0,0,0,109,0,117,0,112,0,119,0,0,0,109,0,117,0,114,0,111,0,0,0,109,0,117,0,115,0,97,0,0,0,109,0,118,0,49,0,55,0,0,0,109,0,118,0,50,0,48,0,0,0,109,0,119,0,98,0,97,0,0,0,109,0,119,0,98,0,108,0,0,0,109,0,119,0,99,0,107,0,0,0,109,0,119,0,99,0,114,0,0,0,109,0,119,0,99,0,116,0,0,0,109,0,119,0,100,0,101,0,0,0,109,0,119,0,100,0,111,0,0,0,109,0,119,0,108,0,105,0,0,0,109,0,119,0,108,0,107,0,0,0,109,0,119,0,109,0,99,0,0,0,109,0,119,0,109,0,117,0,0,0,109,0,119,0,109,0,119,0,0,0,109,0,119,0,109,0,122,0,0,0,109,0,119,0,110,0,115,0,0,0,109,0,119,0,112,0,104,0,0,0,109,0,119,0,122,0,111,0,0,0,110,0,97,0,99,0,97,0,0,0,110,0,97,0,101,0,114,0,0,0,110,0,97,0,104,0,97,0,0,0,110,0,97,0,107,0,97,0,0,0,110,0,97,0,107,0,101,0,0,0,110,0,97,0,107,0,104,0,0,0,110,0,97,0,107,0,117,0,0,0,110,0,97,0,107,0,119,0,0,0,110,0,97,0,111,0,100,0,0,0,110,0,97,0,111,0,110,0,0,0,110,0,97,0,111,0,119,0,0,0,110,0,103,0,97,0,98,0,0,0,110,0,103,0,97,0,100,0,0,0,110,0,103,0,97,0,107,0,0,0,110,0,103,0,98,0,97,0,0,0,110,0,103,0,98,0,101,0,0,0,110,0,103,0,98,0,121,0,0,0,110,0,103,0,100,0,101,0,0,0,110,0,103,0,101,0,98,0,0,0,110,0,103,0,101,0,100,0,0,0,110,0,103,0,101,0,107,0,0,0,110,0,103,0,101,0,110,0,0,0,110,0,103,0,102,0,99,0,0,0,110,0,103,0,103,0,111,0,0,0,110,0,103,0,105,0,109,0,0,0,110,0,103,0,107,0,116,0,0,0,110,0,103,0,107,0,119,0,0,0,110,0,103,0,108,0,97,0,0,0,110,0,103,0,110,0,97,0,0,0,110,0,103,0,110,0,105,0,0,0,110,0,103,0,111,0,103,0,0,0,110,0,103,0,111,0,110,0,0,0,110,0,103,0,111,0,115,0,0,0,110,0,103,0,111,0,121,0,0,0,110,0,103,0,112,0,108,0,0,0,110,0,103,0,115,0,111,0,0,0,110,0,103,0,121,0,111,0,0,0,110,0,103,0,122,0,97,0,0,0,110,0,105,0,97,0,110,0,0,0,110,0,105,0,97,0,115,0,0,0,110,0,105,0,98,0,111,0,0,0,110,0,105,0,99,0,105,0,0,0,110,0,105,0,99,0,111,0,0,0,110,0,105,0,101,0,115,0,0,0,110,0,105,0,103,0,114,0,0,0,110,0,105,0,106,0,105,0,0,0,110,0,105,0,108,0,101,0,0,0,110,0,105,0,109,0,100,0,0,0,110,0,105,0,109,0,110,0,0,0,110,0,105,0,110,0,115,0,0,0,110,0,105,0,114,0,105,0,0,0,110,0,105,0,115,0,106,0,0,0,110,0,108,0,97,0,119,0,0,0,110,0,108,0,99,0,119,0,0,0,110,0,108,0,100,0,114,0,0,0,110,0,108,0,102,0,108,0,0,0,110,0,108,0,102,0,114,0,0,0,110,0,108,0,103,0,101,0,0,0,110,0,108,0,103,0,114,0,0,0,110,0,108,0,108,0,105,0,0,0,110,0,108,0,110,0,98,0,0,0,110,0,108,0,110,0,104,0,0,0,110,0,108,0,111,0,118,0,0,0,110,0,108,0,115,0,120,0,0,0,110,0,108,0,117,0,116,0,0,0,110,0,108,0,122,0,101,0,0,0,110,0,111,0,48,0,51,0,0,0,110,0,111,0,49,0,49,0,0,0,110,0,111,0,49,0,53,0,0,0,110,0,111,0,49,0,56,0,0,0,110,0,111,0,51,0,48,0,0,0,110,0,111,0,51,0,52,0,0,0,110,0,111,0,51,0,56,0,0,0,110,0,111,0,52,0,50,0,0,0,110,0,111,0,52,0,54,0,0,0,110,0,111,0,53,0,48,0,0,0,110,0,111,0,53,0,52,0,0,0,110,0,112,0,98,0,97,0,0,0,110,0,112,0,98,0,104,0,0,0,110,0,112,0,100,0,104,0,0,0,110,0,112,0,106,0,97,0,0,0,110,0,112,0,107,0,97,0,0,0,110,0,112,0,108,0,117,0,0,0,110,0,112,0,109,0,97,0,0,0,110,0,112,0,109,0,101,0,0,0,111,0,109,0,98,0,106,0,0,0,111,0,109,0,98,0,115,0,0,0,111,0,109,0,98,0,117,0,0,0,111,0,109,0,100,0,97,0,0,0,111,0,109,0,109,0,97,0,0,0,111,0,109,0,109,0,117,0,0,0,111,0,109,0,115,0,106,0,0,0,111,0,109,0,115,0,115,0,0,0,111,0,109,0,119,0,117,0,0,0,111,0,109,0,122,0,117,0,0,0,112,0,97,0,49,0,48,0,0,0,112,0,97,0,101,0,109,0,0,0,112,0,97,0,107,0,121,0,0,0,112,0,97,0,110,0,98,0,0,0,112,0,97,0,110,0,116,0,0,0,112,0,107,0,98,0,97,0,0,0,112,0,107,0,105,0,115,0,0,0,112,0,107,0,106,0,107,0,0,0,112,0,107,0,107,0,112,0,0,0,112,0,107,0,112,0,98,0,0,0,112,0,107,0,115,0,100,0,0,0,112,0,108,0,48,0,50,0,0,0,112,0,108,0,48,0,52,0,0,0,112,0,108,0,48,0,54,0,0,0,112,0,108,0,48,0,56,0,0,0,112,0,108,0,49,0,48,0,0,0,112,0,108,0,49,0,50,0,0,0,112,0,108,0,49,0,52,0,0,0,112,0,108,0,49,0,54,0,0,0,112,0,108,0,49,0,56,0,0,0,112,0,108,0,50,0,48,0,0,0,112,0,108,0,50,0,50,0,0,0,112,0,108,0,50,0,52,0,0,0,112,0,108,0,50,0,54,0,0,0,112,0,108,0,50,0,56,0,0,0,112,0,108,0,51,0,48,0,0,0,112,0,108,0,51,0,50,0,0,0,112,0,116,0,50,0,48,0,0,0,112,0,116,0,51,0,48,0,0,0,112,0,121,0,49,0,57,0,0,0,113,0,97,0,100,0,97,0,0,0,113,0,97,0,107,0,104,0,0,0,113,0,97,0,109,0,115,0,0,0,113,0,97,0,114,0,97,0,0,0,113,0,97,0,115,0,104,0,0,0,113,0,97,0,117,0,115,0,0,0,113,0,97,0,119,0,97,0,0,0,113,0,97,0,122,0,97,0,0,0,114,0,111,0,97,0,98,0,0,0,114,0,111,0,97,0,103,0,0,0,114,0,111,0,98,0,99,0,0,0,114,0,111,0,98,0,104,0,0,0,114,0,111,0,98,0,110,0,0,0,114,0,111,0,98,0,114,0,0,0,114,0,111,0,98,0,116,0,0,0,114,0,111,0,98,0,118,0,0,0,114,0,111,0,98,0,122,0,0,0,114,0,111,0,99,0,106,0,0,0,114,0,111,0,99,0,108,0,0,0,114,0,111,0,100,0,98,0,0,0,114,0,111,0,100,0,106,0,0,0,114,0,111,0,103,0,106,0,0,0,114,0,111,0,103,0,108,0,0,0,114,0,111,0,103,0,114,0,0,0,114,0,111,0,104,0,100,0,0,0,114,0,111,0,104,0,114,0,0,0,114,0,111,0,105,0,102,0,0,0,114,0,111,0,105,0,108,0,0,0,114,0,111,0,105,0,115,0,0,0,114,0,111,0,109,0,104,0,0,0,114,0,111,0,109,0,109,0,0,0,114,0,111,0,109,0,115,0,0,0,114,0,111,0,110,0,116,0,0,0,114,0,111,0,111,0,116,0,0,0,114,0,111,0,112,0,104,0,0,0,114,0,111,0,115,0,98,0,0,0,114,0,111,0,115,0,106,0,0,0,114,0,111,0,115,0,109,0,0,0,114,0,111,0,115,0,118,0,0,0,114,0,111,0,116,0,114,0,0,0,114,0,111,0,118,0,108,0,0,0,114,0,111,0,118,0,110,0,0,0,114,0,111,0,118,0,115,0,0,0,114,0,115,0,107,0,109,0,0,0,114,0,117,0,97,0,100,0,0,0,114,0,117,0,97,0,108,0,0,0,114,0,117,0,99,0,101,0,0,0,114,0,117,0,99,0,117,0,0,0,114,0,117,0,105,0,110,0,0,0,114,0,117,0,107,0,111,0,0,0,114,0,117,0,107,0,114,0,0,0,114,0,117,0,109,0,101,0,0,0,114,0,117,0,109,0,111,0,0,0,114,0,117,0,115,0,101,0,0,0,114,0,117,0,116,0,121,0,0,0,114,0,117,0,117,0,100,0,0,0,115,0,97,0,49,0,52,0,0,0,115,0,98,0,99,0,101,0,0,0,115,0,98,0,99,0,104,0,0,0,115,0,98,0,99,0,116,0,0,0,115,0,98,0,103,0,117,0,0,0,115,0,98,0,105,0,115,0,0,0,115,0,98,0,114,0,98,0,0,0,115,0,98,0,116,0,101,0,0,0,115,0,98,0,119,0,101,0,0,0,115,0,100,0,100,0,99,0,0,0,115,0,100,0,100,0,101,0,0,0,115,0,100,0,100,0,110,0,0,0,115,0,100,0,100,0,115,0,0,0,115,0,100,0,103,0,100,0,0,0,115,0,100,0,103,0,107,0,0,0,115,0,100,0,107,0,97,0,0,0,115,0,100,0,107,0,104,0,0,0,115,0,100,0,107,0,110,0,0,0,115,0,100,0,107,0,115,0,0,0,115,0,100,0,110,0,98,0,0,0,115,0,100,0,110,0,111,0,0,0,115,0,100,0,110,0,119,0,0,0,115,0,100,0,114,0,115,0,0,0,115,0,100,0,115,0,105,0,0,0,115,0,101,0,98,0,100,0,0,0,115,0,104,0,97,0,99,0,0,0,115,0,104,0,104,0,108,0,0,0,115,0,104,0,116,0,97,0,0,0,115,0,107,0,98,0,99,0,0,0,115,0,107,0,98,0,108,0,0,0,115,0,107,0,107,0,105,0,0,0,115,0,107,0,110,0,105,0,0,0,115,0,107,0,116,0,97,0,0,0,115,0,107,0,116,0,99,0,0,0,115,0,110,0,100,0,98,0,0,0,115,0,110,0,100,0,107,0,0,0,115,0,110,0,102,0,107,0,0,0,115,0,110,0,107,0,97,0,0,0,115,0,110,0,107,0,108,0,0,0,115,0,110,0,109,0,116,0,0,0,115,0,110,0,115,0,101,0,0,0,115,0,110,0,115,0,108,0,0,0,115,0,110,0,116,0,99,0,0,0,115,0,110,0,116,0,104,0,0,0,115,0,110,0,122,0,103,0,0,0,115,0,111,0,97,0,119,0,0,0,115,0,111,0,98,0,107,0,0,0,115,0,111,0,98,0,110,0,0,0,115,0,111,0,98,0,121,0,0,0,115,0,111,0,103,0,97,0,0,0,115,0,111,0,104,0,105,0,0,0,115,0,111,0,106,0,100,0,0,0,115,0,111,0,106,0,104,0,0,0,115,0,111,0,109,0,117,0,0,0,115,0,111,0,110,0,117,0,0,0,115,0,111,0,115,0,100,0,0,0,115,0,111,0,115,0,104,0,0,0,115,0,111,0,115,0,111,0,0,0,115,0,111,0,116,0,111,0,0,0,115,0,111,0,119,0,111,0,0,0,115,0,114,0,98,0,114,0,0,0,115,0,114,0,99,0,109,0,0,0,115,0,114,0,99,0,114,0,0,0,115,0,114,0,109,0,97,0,0,0,115,0,114,0,110,0,105,0,0,0,115,0,114,0,112,0,109,0,0,0,115,0,114,0,112,0,114,0,0,0,115,0,114,0,115,0,97,0,0,0,115,0,115,0,98,0,110,0,0,0,115,0,115,0,98,0,119,0,0,0,115,0,115,0,101,0,101,0,0,0,115,0,115,0,108,0,107,0,0,0,115,0,115,0,110,0,117,0,0,0,115,0,115,0,117,0,121,0,0,0,115,0,115,0,119,0,114,0,0,0,115,0,118,0,97,0,104,0,0,0,115,0,118,0,99,0,97,0,0,0,115,0,118,0,99,0,104,0,0,0,115,0,118,0,99,0,117,0,0,0,115,0,118,0,108,0,105,0,0,0,115,0,118,0,109,0,111,0,0,0,115,0,118,0,112,0,97,0,0,0,115,0,118,0,115,0,97,0,0,0,115,0,118,0,115,0,109,0,0,0,115,0,118,0,115,0,111,0,0,0,115,0,118,0,117,0,110,0,0,0,115,0,118,0,117,0,115,0,0,0,115,0,121,0,100,0,105,0,0,0,115,0,121,0,100,0,114,0,0,0,115,0,121,0,100,0,121,0,0,0,115,0,121,0,104,0,105,0,0,0,115,0,121,0,108,0,97,0,0,0,115,0,121,0,114,0,97,0,0,0,115,0,121,0,114,0,100,0,0,0,115,0,121,0,115,0,117,0,0,0,115,0,121,0,116,0,97,0,0,0,115,0,122,0,104,0,104,0,0,0,115,0,122,0,109,0,97,0,0,0,116,0,100,0,98,0,97,0,0,0,116,0,100,0,98,0,103,0,0,0,116,0,100,0,98,0,111,0,0,0,116,0,100,0,99,0,98,0,0,0,116,0,100,0,101,0,101,0,0,0,116,0,100,0,101,0,111,0,0,0,116,0,100,0,103,0,114,0,0,0,116,0,100,0,104,0,108,0,0,0,116,0,100,0,108,0,99,0,0,0,116,0,100,0,108,0,111,0,0,0,116,0,100,0,108,0,114,0,0,0,116,0,100,0,109,0,97,0,0,0,116,0,100,0,109,0,99,0,0,0,116,0,100,0,109,0,101,0,0,0,116,0,100,0,109,0,111,0,0,0,116,0,100,0,110,0,100,0,0,0,116,0,100,0,111,0,100,0,0,0,116,0,100,0,115,0,97,0,0,0,116,0,100,0,115,0,105,0,0,0,116,0,100,0,116,0,97,0,0,0,116,0,100,0,116,0,105,0,0,0,116,0,100,0,119,0,102,0,0,0,116,0,106,0,100,0,117,0,0,0,116,0,106,0,107,0,116,0,0,0,116,0,106,0,114,0,97,0,0,0,116,0,106,0,115,0,117,0,0,0,116,0,108,0,97,0,108,0,0,0,116,0,108,0,97,0,110,0,0,0,116,0,108,0,98,0,111,0,0,0,116,0,108,0,99,0,111,0,0,0,116,0,108,0,100,0,105,0,0,0,116,0,108,0,101,0,114,0,0,0,116,0,108,0,108,0,97,0,0,0,116,0,108,0,108,0,105,0,0,0,116,0,108,0,109,0,102,0,0,0,116,0,108,0,109,0,116,0,0,0,116,0,108,0,111,0,101,0,0,0,116,0,110,0,54,0,49,0,0,0,117,0,97,0,48,0,53,0,0,0,117,0,97,0,48,0,55,0,0,0,117,0,97,0,48,0,57,0,0,0,117,0,97,0,49,0,50,0,0,0,117,0,97,0,49,0,52,0,0,0,117,0,97,0,49,0,56,0,0,0,117,0,97,0,50,0,49,0,0,0,117,0,97,0,50,0,51,0,0,0,117,0,97,0,50,0,54,0,0,0,117,0,97,0,51,0,48,0,0,0,117,0,97,0,51,0,50,0,0,0,117,0,97,0,51,0,53,0,0,0,117,0,97,0,52,0,48,0,0,0,117,0,97,0,52,0,51,0,0,0,117,0,97,0,52,0,54,0,0,0,117,0,97,0,52,0,56,0,0,0,117,0,97,0,53,0,49,0,0,0,117,0,97,0,53,0,51,0,0,0,117,0,97,0,53,0,54,0,0,0,117,0,97,0,53,0,57,0,0,0,117,0,97,0,54,0,49,0,0,0,117,0,97,0,54,0,51,0,0,0,117,0,97,0,54,0,53,0,0,0,117,0,97,0,54,0,56,0,0,0,117,0,97,0,55,0,49,0,0,0,117,0,97,0,55,0,52,0,0,0,117,0,97,0,55,0,55,0,0,0,117,0,109,0,54,0,55,0,0,0,117,0,109,0,55,0,49,0,0,0,117,0,109,0,55,0,54,0,0,0,117,0,109,0,55,0,57,0,0,0,117,0,109,0,56,0,49,0,0,0,117,0,109,0,56,0,52,0,0,0,117,0,109,0,56,0,54,0,0,0,117,0,109,0,56,0,57,0,0,0,117,0,109,0,57,0,53,0,0,0,117,0,115,0,97,0,115,0,0,0,117,0,115,0,97,0,122,0,0,0,117,0,115,0,99,0,111,0,0,0,117,0,115,0,99,0,116,0,0,0,117,0,115,0,100,0,101,0,0,0,117,0,115,0,102,0,108,0,0,0,117,0,115,0,103,0,97,0,0,0,117,0,115,0,103,0,117,0,0,0,117,0,115,0,104,0,105,0,0,0,117,0,115,0,105,0,97,0,0,0,117,0,115,0,105,0,100,0,0,0,117,0,115,0,105,0,108,0,0,0,117,0,115,0,105,0,110,0,0,0,117,0,115,0,107,0,115,0,0,0,117,0,115,0,107,0,121,0,0,0,117,0,115,0,109,0,97,0,0,0,117,0,115,0,109,0,105,0,0,0,117,0,115,0,109,0,112,0,0,0,117,0,115,0,110,0,106,0,0,0,117,0,115,0,110,0,109,0,0,0,117,0,115,0,110,0,118,0,0,0,117,0,115,0,110,0,121,0,0,0,117,0,115,0,111,0,104,0,0,0,117,0,115,0,111,0,107,0,0,0,117,0,115,0,111,0,114,0,0,0,117,0,115,0,112,0,97,0,0,0,117,0,115,0,112,0,114,0,0,0,117,0,115,0,114,0,105,0,0,0,117,0,115,0,116,0,110,0,0,0,117,0,115,0,116,0,120,0,0,0,117,0,115,0,117,0,109,0,0,0,117,0,115,0,117,0,116,0,0,0,117,0,115,0,118,0,97,0,0,0,117,0,115,0,118,0,105,0,0,0,117,0,115,0,118,0,116,0,0,0,117,0,115,0,119,0,97,0,0,0,117,0,115,0,119,0,105,0,0,0,117,0,115,0,119,0,118,0,0,0,117,0,115,0,119,0,121,0,0,0,117,0,121,0,99,0,97,0,0,0,117,0,121,0,100,0,117,0,0,0,117,0,121,0,102,0,100,0,0,0,117,0,121,0,102,0,115,0,0,0,117,0,121,0,108,0,97,0,0,0,117,0,121,0,109,0,111,0,0,0,117,0,121,0,112,0,97,0,0,0,117,0,121,0,114,0,118,0,0,0,117,0,121,0,115,0,97,0,0,0,117,0,121,0,115,0,106,0,0,0,117,0,122,0,97,0,110,0,0,0,117,0,122,0,98,0,117,0,0,0,117,0,122,0,110,0,119,0,0,0,117,0,122,0,113,0,97,0,0,0,117,0,122,0,113,0,114,0,0,0,117,0,122,0,120,0,111,0,0,0,118,0,110,0,48,0,57,0,0,0,118,0,110,0,49,0,56,0,0,0,118,0,110,0,51,0,57,0,0,0,118,0,110,0,52,0,57,0,0,0,118,0,110,0,54,0,49,0,0,0,118,0,110,0,54,0,51,0,0,0,118,0,110,0,99,0,116,0,0,0,118,0,110,0,100,0,110,0,0,0,118,0,110,0,104,0,110,0,0,0,118,0,110,0,104,0,112,0,0,0,118,0,110,0,115,0,103,0,0,0,119,0,102,0,97,0,108,0,0,0,119,0,102,0,115,0,103,0,0,0,119,0,115,0,97,0,97,0,0,0,119,0,115,0,97,0,108,0,0,0,119,0,115,0,97,0,116,0,0,0,119,0,115,0,102,0,97,0,0,0,119,0,115,0,103,0,101,0,0,0,119,0,115,0,103,0,105,0,0,0,119,0,115,0,112,0,97,0,0,0,119,0,115,0,115,0,97,0,0,0,119,0,115,0,116,0,117,0,0,0,119,0,115,0,118,0,102,0,0,0,121,0,101,0,97,0,98,0,0,0,121,0,101,0,97,0,100,0,0,0,121,0,101,0,97,0,109,0,0,0,121,0,101,0,98,0,97,0,0,0,121,0,101,0,100,0,97,0,0,0,121,0,101,0,100,0,104,0,0,0,121,0,101,0,104,0,100,0,0,0,121,0,101,0,104,0,106,0,0,0,121,0,101,0,105,0,98,0,0,0,121,0,101,0,108,0,97,0,0,0,121,0,101,0,109,0,97,0,0,0,121,0,101,0,109,0,114,0,0,0,121,0,101,0,109,0,119,0,0,0,121,0,101,0,115,0,100,0,0,0,121,0,101,0,115,0,110,0,0,0,121,0,101,0,116,0,97,0,0,0,122,0,97,0,102,0,115,0,0,0,122,0,97,0,108,0,112,0,0,0,122,0,97,0,109,0,112,0,0,0,122,0,97,0,110,0,99,0,0,0,122,0,97,0,110,0,119,0,0,0,122,0,97,0,119,0,99,0,0,0,122,0,109,0,49,0,48,0,0,0,122,0,119,0,98,0,117,0,0,0,122,0,119,0,109,0,97,0,0,0,122,0,119,0,109,0,99,0,0,0,122,0,119,0,109,0,101,0,0,0,122,0,119,0,109,0,105,0,0,0,49,0,57,0,57,0,54,0,0,0,66,0,104,0,107,0,115,0,0,0,72,0,109,0,110,0,112,0,0,0,72,0,117,0,110,0,103,0,0,0,77,0,97,0,114,0,99,0,0,0,77,0,101,0,114,0,111,0,0,0,83,0,111,0,103,0,111,0,0,0,97,0,108,0,109,0,109,0,0,0,97,0,108,0,115,0,104,0,0,0,97,0,108,0,115,0,107,0,0,0,98,0,106,0,97,0,107,0,0,0,98,0,114,0,114,0,111,0,0,0,99,0,104,0,115,0,104,0,0,0,99,0,110,0,104,0,107,0,0,0,99,0,118,0,115,0,108,0,0,0,100,0,106,0,97,0,114,0,0,0,101,0,115,0,99,0,98,0,0,0,103,0,101,0,115,0,107,0,0,0,103,0,110,0,98,0,102,0,0,0,103,0,116,0,106,0,97,0,0,0,103,0,116,0,106,0,117,0,0,0,103,0,116,0,122,0,97,0,0,0,104,0,117,0,115,0,115,0,0,0,105,0,100,0,115,0,98,0,0,0,105,0,100,0,115,0,108,0,0,0,105,0,101,0,99,0,110,0,0,0,105,0,101,0,99,0,111,0,0,0,105,0,116,0,109,0,98,0,0,0,105,0,116,0,112,0,99,0,0,0,105,0,116,0,118,0,97,0,0,0,109,0,100,0,99,0,114,0,0,0,109,0,117,0,98,0,114,0,0,0,109,0,119,0,107,0,114,0,0,0,111,0,109,0,115,0,104,0,0,0,112,0,108,0,108,0,117,0,0,0,112,0,108,0,109,0,122,0,0,0,115,0,121,0,104,0,108,0,0,0,117,0,115,0,109,0,100,0,0,0,117,0,115,0,110,0,99,0,0,0,77,0,117,0,108,0,116,0,0,0,99,0,122,0,108,0,105,0,0,0,99,0,122,0,109,0,111,0,0,0,99,0,122,0,112,0,108,0,0,0,100,0,122,0,51,0,50,0,0,0,100,0,122,0,51,0,54,0,0,0,100,0,122,0,52,0,50,0,0,0,100,0,122,0,52,0,52,0,0,0,100,0,122,0,52,0,56,0,0,0,102,0,114,0,56,0,52,0,0,0,102,0,114,0,57,0,48,0,0,0,103,0,119,0,98,0,109,0,0,0,109,0,116,0,54,0,48,0,0,0,109,0,116,0,54,0,56,0,0,0,109,0,119,0,107,0,115,0,0,0,109,0,119,0,109,0,104,0,0,0,116,0,104,0,57,0,54,0,0,0,116,0,122,0,49,0,50,0,0,0,117,0,121,0,114,0,111,0,0,0,68,0,74,0,126,0,75,0,0,0,49,0,57,0,48,0,49,0,0,0,65,0,67,0,126,0,71,0,0,0,65,0,76,0,126,0,77,0,0,0,65,0,81,0,126,0,85,0,0,0,65,0,87,0,126,0,88,0,0,0,65,0,104,0,111,0,109,0,0,0,65,0,114,0,97,0,110,0,0,0,66,0,65,0,126,0,66,0,0,0,66,0,68,0,126,0,74,0,0,0,66,0,76,0,126,0,79,0,0,0,66,0,81,0,126,0,84,0,0,0,66,0,86,0,126,0,87,0,0,0,66,0,89,0,126,0,90,0,0,0,66,0,97,0,115,0,115,0,0,0,67,0,67,0,126,0,68,0,0,0,67,0,70,0,126,0,73,0,0,0,67,0,75,0,126,0,80,0,0,0,67,0,85,0,126,0,90,0,0,0,67,0,104,0,114,0,115,0,0,0,67,0,112,0,109,0,110,0,0,0,68,0,105,0,97,0,107,0,0,0,68,0,111,0,103,0,114,0,0,0,69,0,82,0,126,0,84,0,0,0,69,0,108,0,121,0,109,0,0,0,70,0,73,0,126,0,75,0,0,0,71,0,65,0,126,0,66,0,0,0,71,0,68,0,126,0,73,0,0,0,71,0,76,0,126,0,78,0,0,0,71,0,80,0,126,0,85,0,0,0,71,0,111,0,110,0,103,0,0,0,71,0,111,0,110,0,109,0,0,0,72,0,77,0,126,0,78,0,0,0,72,0,84,0,126,0,85,0,0,0,72,0,97,0,110,0,98,0,0,0,72,0,97,0,116,0,114,0,0,0,72,0,108,0,117,0,119,0,0,0,73,0,67,0,126,0,69,0,0,0,73,0,76,0,126,0,79,0,0,0,73,0,81,0,126,0,84,0,0,0,74,0,79,0,126,0,80,0,0,0,75,0,71,0,126,0,73,0,0,0,75,0,77,0,126,0,78,0,0,0,75,0,89,0,126,0,90,0,0,0,75,0,97,0,119,0,105,0,0,0,75,0,104,0,97,0,114,0,0,0,75,0,105,0,116,0,115,0,0,0,75,0,116,0,104,0,105,0,0,0,76,0,65,0,126,0,67,0,0,0,76,0,82,0,126,0,86,0,0,0,76,0,105,0,110,0,97,0,0,0,76,0,105,0,110,0,98,0,0,0,77,0,67,0,126,0,72,0,0,0,77,0,75,0,126,0,90,0,0,0,77,0,97,0,107,0,97,0,0,0,77,0,101,0,100,0,102,0,0,0,78,0,69,0,126,0,71,0,0,0,78,0,79,0,126,0,80,0,0,0,78,0,97,0,103,0,109,0,0,0,78,0,97,0,110,0,100,0,0,0,78,0,101,0,119,0,97,0,0,0,78,0,115,0,104,0,117,0,0,0,79,0,117,0,103,0,114,0,0,0,80,0,69,0,126,0,72,0,0,0,80,0,75,0,126,0,78,0,0,0,80,0,82,0,126,0,84,0,0,0,80,0,97,0,117,0,99,0,0,0,81,0,77,0,126,0,78,0,0,0,81,0,80,0,126,0,84,0,0,0,81,0,86,0,126,0,90,0,0,0,81,0,97,0,97,0,103,0,0,0,81,0,97,0,97,0,104,0,0,0,81,0,97,0,97,0,105,0,0,0,83,0,65,0,126,0,69,0,0,0,83,0,71,0,126,0,79,0,0,0,83,0,82,0,126,0,84,0,0,0,83,0,88,0,126,0,90,0,0,0,83,0,111,0,103,0,100,0,0,0,84,0,67,0,126,0,68,0,0,0,84,0,70,0,126,0,72,0,0,0,84,0,74,0,126,0,79,0,0,0,84,0,86,0,126,0,87,0,0,0,84,0,97,0,110,0,103,0,0,0,84,0,110,0,115,0,97,0,0,0,84,0,111,0,116,0,111,0,0,0,85,0,89,0,126,0,90,0,0,0,86,0,105,0,116,0,104,0,0,0,87,0,99,0,104,0,111,0,0,0,88,0,65,0,126,0,66,0,0,0,88,0,67,0,126,0,74,0,0,0,88,0,76,0,126,0,90,0,0,0,89,0,101,0,122,0,105,0,0,0,90,0,97,0,110,0,98,0,0,0,90,0,105,0,110,0,104,0,0,0,90,0,109,0,116,0,104,0,0,0,90,0,115,0,121,0,101,0,0,0,90,0,115,0,121,0,109,0,0,0,90,0,120,0,120,0,120,0,0,0,90,0,121,0,121,0,121,0,0,0,90,0,122,0,122,0,122,0,0,0,97,0,100,0,48,0,50,0,0,0,97,0,100,0,48,0,51,0,0,0,97,0,100,0,48,0,52,0,0,0,97,0,100,0,48,0,53,0,0,0,97,0,100,0,48,0,54,0,0,0,97,0,100,0,48,0,55,0,0,0,97,0,100,0,48,0,56,0,0,0,97,0,103,0,48,0,51,0,0,0,97,0,103,0,48,0,52,0,0,0,97,0,103,0,48,0,53,0,0,0,97,0,103,0,48,0,54,0,0,0,97,0,103,0,48,0,55,0,0,0,97,0,103,0,48,0,56,0,0,0,97,0,103,0,49,0,48,0,0,0,97,0,103,0,49,0,49,0,0,0,97,0,108,0,48,0,49,0,0,0,97,0,108,0,48,0,50,0,0,0,97,0,108,0,48,0,51,0,0,0,97,0,108,0,48,0,52,0,0,0,97,0,108,0,48,0,53,0,0,0,97,0,108,0,48,0,54,0,0,0,97,0,108,0,48,0,55,0,0,0,97,0,108,0,48,0,56,0,0,0,97,0,108,0,48,0,57,0,0,0,97,0,108,0,49,0,48,0,0,0,97,0,108,0,49,0,49,0,0,0,97,0,108,0,49,0,50,0,0,0,97,0,108,0,98,0,114,0,0,0,97,0,108,0,98,0,117,0,0,0,97,0,108,0,100,0,105,0,0,0,97,0,108,0,100,0,108,0,0,0,97,0,108,0,100,0,114,0,0,0,97,0,108,0,100,0,118,0,0,0,97,0,108,0,101,0,108,0,0,0,97,0,108,0,101,0,114,0,0,0,97,0,108,0,102,0,114,0,0,0,97,0,108,0,103,0,106,0,0,0,97,0,108,0,103,0,114,0,0,0,97,0,108,0,104,0,97,0,0,0,97,0,108,0,107,0,111,0,0,0,97,0,108,0,107,0,114,0,0,0,97,0,108,0,107,0,117,0,0,0,97,0,108,0,108,0,98,0,0,0,97,0,108,0,108,0,101,0,0,0,97,0,108,0,108,0,117,0,0,0,97,0,108,0,109,0,107,0,0,0,97,0,108,0,109,0,114,0,0,0,97,0,108,0,109,0,116,0,0,0,97,0,108,0,112,0,103,0,0,0,97,0,108,0,112,0,117,0,0,0,97,0,108,0,115,0,114,0,0,0,97,0,108,0,116,0,101,0,0,0,97,0,108,0,116,0,112,0,0,0,97,0,108,0,116,0,114,0,0,0,97,0,108,0,118,0,108,0,0,0,98,0,97,0,49,0,48,0,0,0,98,0,98,0,48,0,49,0,0,0,98,0,98,0,48,0,50,0,0,0,98,0,98,0,48,0,51,0,0,0,98,0,98,0,48,0,52,0,0,0,98,0,98,0,48,0,53,0,0,0,98,0,98,0,48,0,54,0,0,0,98,0,98,0,48,0,55,0,0,0,98,0,98,0,48,0,56,0,0,0,98,0,98,0,48,0,57,0,0,0,98,0,98,0,49,0,48,0,0,0,98,0,98,0,49,0,49,0,0,0,98,0,100,0,48,0,49,0,0,0,98,0,100,0,48,0,50,0,0,0,98,0,100,0,48,0,51,0,0,0,98,0,100,0,48,0,52,0,0,0,98,0,100,0,48,0,53,0,0,0,98,0,100,0,48,0,54,0,0,0,98,0,100,0,48,0,55,0,0,0,98,0,100,0,48,0,56,0,0,0,98,0,100,0,48,0,57,0,0,0,98,0,100,0,49,0,48,0,0,0,98,0,100,0,49,0,49,0,0,0,98,0,100,0,49,0,50,0,0,0,98,0,100,0,49,0,51,0,0,0,98,0,100,0,49,0,52,0,0,0,98,0,100,0,49,0,53,0,0,0,98,0,100,0,49,0,54,0,0,0,98,0,100,0,49,0,55,0,0,0,98,0,100,0,49,0,56,0,0,0,98,0,100,0,49,0,57,0,0,0,98,0,100,0,50,0,48,0,0,0,98,0,100,0,50,0,49,0,0,0,98,0,100,0,50,0,50,0,0,0,98,0,100,0,50,0,51,0,0,0,98,0,100,0,50,0,52,0,0,0,98,0,100,0,50,0,53,0,0,0,98,0,100,0,50,0,54,0,0,0,98,0,100,0,50,0,55,0,0,0,98,0,100,0,50,0,56,0,0,0,98,0,100,0,50,0,57,0,0,0,98,0,100,0,51,0,48,0,0,0,98,0,100,0,51,0,49,0,0,0,98,0,100,0,51,0,50,0,0,0,98,0,100,0,51,0,51,0,0,0,98,0,100,0,51,0,52,0,0,0,98,0,100,0,51,0,53,0,0,0,98,0,100,0,51,0,54,0,0,0,98,0,100,0,51,0,55,0,0,0,98,0,100,0,51,0,56,0,0,0,98,0,100,0,51,0,57,0,0,0,98,0,100,0,52,0,48,0,0,0,98,0,100,0,52,0,49,0,0,0,98,0,100,0,52,0,50,0,0,0,98,0,100,0,52,0,51,0,0,0,98,0,100,0,52,0,52,0,0,0,98,0,100,0,52,0,53,0,0,0,98,0,100,0,52,0,54,0,0,0,98,0,100,0,52,0,55,0,0,0,98,0,100,0,52,0,56,0,0,0,98,0,100,0,52,0,57,0,0,0,98,0,100,0,53,0,48,0,0,0,98,0,100,0,53,0,49,0,0,0,98,0,100,0,53,0,50,0,0,0,98,0,100,0,53,0,51,0,0,0,98,0,100,0,53,0,52,0,0,0,98,0,100,0,53,0,53,0,0,0,98,0,100,0,53,0,54,0,0,0,98,0,100,0,53,0,55,0,0,0,98,0,100,0,53,0,56,0,0,0,98,0,100,0,53,0,57,0,0,0,98,0,100,0,54,0,48,0,0,0,98,0,100,0,54,0,49,0,0,0,98,0,100,0,54,0,50,0,0,0,98,0,100,0,54,0,51,0,0,0,98,0,100,0,54,0,52,0,0,0,98,0,102,0,48,0,49,0,0,0,98,0,102,0,48,0,50,0,0,0,98,0,102,0,48,0,51,0,0,0,98,0,102,0,48,0,52,0,0,0,98,0,102,0,48,0,53,0,0,0,98,0,102,0,48,0,54,0,0,0,98,0,102,0,48,0,55,0,0,0,98,0,102,0,48,0,56,0,0,0,98,0,102,0,48,0,57,0,0,0,98,0,102,0,49,0,48,0,0,0,98,0,102,0,49,0,49,0,0,0,98,0,102,0,49,0,50,0,0,0,98,0,102,0,49,0,51,0,0,0,98,0,103,0,48,0,49,0,0,0,98,0,103,0,48,0,50,0,0,0,98,0,103,0,48,0,51,0,0,0,98,0,103,0,48,0,52,0,0,0,98,0,103,0,48,0,53,0,0,0,98,0,103,0,48,0,54,0,0,0,98,0,103,0,48,0,55,0,0,0,98,0,103,0,48,0,56,0,0,0,98,0,103,0,48,0,57,0,0,0,98,0,103,0,49,0,48,0,0,0,98,0,103,0,49,0,49,0,0,0,98,0,103,0,49,0,50,0,0,0,98,0,103,0,49,0,51,0,0,0,98,0,103,0,49,0,52,0,0,0,98,0,103,0,49,0,53,0,0,0,98,0,103,0,49,0,54,0,0,0,98,0,103,0,49,0,55,0,0,0,98,0,103,0,49,0,56,0,0,0,98,0,103,0,49,0,57,0,0,0,98,0,103,0,50,0,48,0,0,0,98,0,103,0,50,0,49,0,0,0,98,0,103,0,50,0,50,0,0,0,98,0,103,0,50,0,51,0,0,0,98,0,103,0,50,0,52,0,0,0,98,0,103,0,50,0,53,0,0,0,98,0,103,0,50,0,54,0,0,0,98,0,103,0,50,0,55,0,0,0,98,0,103,0,50,0,56,0,0,0,98,0,104,0,49,0,51,0,0,0,98,0,104,0,49,0,52,0,0,0,98,0,104,0,49,0,53,0,0,0,98,0,104,0,49,0,54,0,0,0,98,0,105,0,98,0,108,0,0,0,98,0,105,0,98,0,109,0,0,0,98,0,106,0,97,0,108,0,0,0,98,0,114,0,97,0,108,0,0,0,98,0,114,0,97,0,109,0,0,0,98,0,114,0,109,0,115,0,0,0,98,0,114,0,109,0,116,0,0,0,98,0,114,0,112,0,97,0,0,0,98,0,114,0,112,0,98,0,0,0,98,0,114,0,114,0,110,0,0,0,98,0,114,0,114,0,114,0,0,0,98,0,114,0,114,0,115,0,0,0,98,0,115,0,110,0,111,0,0,0,98,0,115,0,110,0,112,0,0,0,98,0,116,0,49,0,49,0,0,0,98,0,116,0,49,0,50,0,0,0,98,0,116,0,49,0,51,0,0,0,98,0,116,0,49,0,52,0,0,0,98,0,116,0,49,0,53,0,0,0,98,0,116,0,50,0,49,0,0,0,98,0,116,0,50,0,50,0,0,0,98,0,116,0,50,0,51,0,0,0,98,0,116,0,50,0,52,0,0,0,98,0,116,0,51,0,49,0,0,0,98,0,116,0,51,0,50,0,0,0,98,0,116,0,51,0,51,0,0,0,98,0,116,0,51,0,52,0,0,0,98,0,116,0,52,0,49,0,0,0,98,0,116,0,52,0,50,0,0,0,98,0,116,0,52,0,51,0,0,0,98,0,116,0,52,0,52,0,0,0,98,0,116,0,52,0,53,0,0,0,98,0,119,0,115,0,111,0,0,0,98,0,119,0,115,0,112,0,0,0,99,0,97,0,110,0,115,0,0,0,99,0,97,0,110,0,116,0,0,0,99,0,97,0,110,0,117,0,0,0,99,0,100,0,98,0,110,0,0,0,99,0,100,0,104,0,107,0,0,0,99,0,100,0,104,0,108,0,0,0,99,0,100,0,107,0,97,0,0,0,99,0,100,0,107,0,119,0,0,0,99,0,100,0,109,0,110,0,0,0,99,0,100,0,109,0,111,0,0,0,99,0,100,0,111,0,114,0,0,0,99,0,103,0,49,0,49,0,0,0,99,0,103,0,49,0,50,0,0,0,99,0,103,0,49,0,51,0,0,0,99,0,103,0,49,0,52,0,0,0,99,0,103,0,49,0,53,0,0,0,99,0,103,0,49,0,54,0,0,0,99,0,104,0,115,0,103,0,0,0,99,0,104,0,122,0,103,0,0,0,99,0,104,0,122,0,104,0,0,0,99,0,110,0,55,0,49,0,0,0,99,0,110,0,104,0,97,0,0,0,99,0,110,0,104,0,98,0,0,0,99,0,110,0,104,0,108,0,0,0,99,0,110,0,115,0,99,0,0,0,99,0,110,0,115,0,100,0,0,0,99,0,117,0,48,0,51,0,0,0,99,0,117,0,48,0,52,0,0,0,99,0,117,0,48,0,53,0,0,0,99,0,117,0,48,0,54,0,0,0,99,0,117,0,48,0,55,0,0,0,99,0,117,0,48,0,56,0,0,0,99,0,117,0,48,0,57,0,0,0,99,0,117,0,49,0,48,0,0,0,99,0,117,0,49,0,49,0,0,0,99,0,117,0,49,0,50,0,0,0,99,0,117,0,49,0,51,0,0,0,99,0,117,0,49,0,52,0,0,0,99,0,117,0,49,0,53,0,0,0,99,0,117,0,49,0,54,0,0,0,99,0,118,0,115,0,109,0,0,0,99,0,121,0,48,0,49,0,0,0,99,0,121,0,48,0,50,0,0,0,99,0,121,0,48,0,51,0,0,0,99,0,121,0,48,0,52,0,0,0,99,0,121,0,48,0,53,0,0,0,99,0,121,0,48,0,54,0,0,0,99,0,122,0,106,0,99,0,0,0,99,0,122,0,106,0,109,0,0,0,99,0,122,0,111,0,108,0,0,0,99,0,122,0,112,0,114,0,0,0,99,0,122,0,117,0,115,0,0,0,99,0,122,0,118,0,121,0,0,0,99,0,122,0,122,0,108,0,0,0,100,0,106,0,97,0,115,0,0,0,100,0,106,0,100,0,105,0,0,0,100,0,106,0,100,0,106,0,0,0,100,0,107,0,56,0,49,0,0,0,100,0,107,0,56,0,50,0,0,0,100,0,107,0,56,0,51,0,0,0,100,0,107,0,56,0,52,0,0,0,100,0,107,0,56,0,53,0,0,0,100,0,109,0,48,0,50,0,0,0,100,0,109,0,48,0,51,0,0,0,100,0,109,0,48,0,52,0,0,0,100,0,109,0,48,0,53,0,0,0,100,0,109,0,48,0,54,0,0,0,100,0,109,0,48,0,55,0,0,0,100,0,109,0,48,0,56,0,0,0,100,0,109,0,48,0,57,0,0,0,100,0,109,0,49,0,48,0,0,0,100,0,109,0,49,0,49,0,0,0,100,0,111,0,48,0,49,0,0,0,100,0,111,0,48,0,50,0,0,0,100,0,111,0,48,0,51,0,0,0,100,0,111,0,48,0,52,0,0,0,100,0,111,0,48,0,53,0,0,0,100,0,111,0,48,0,54,0,0,0,100,0,111,0,48,0,55,0,0,0,100,0,111,0,48,0,56,0,0,0,100,0,111,0,48,0,57,0,0,0,100,0,111,0,49,0,48,0,0,0,100,0,111,0,49,0,49,0,0,0,100,0,111,0,49,0,50,0,0,0,100,0,111,0,49,0,51,0,0,0,100,0,111,0,49,0,52,0,0,0,100,0,111,0,49,0,53,0,0,0,100,0,111,0,49,0,54,0,0,0,100,0,111,0,49,0,55,0,0,0,100,0,111,0,49,0,56,0,0,0,100,0,111,0,49,0,57,0,0,0,100,0,111,0,50,0,48,0,0,0,100,0,111,0,50,0,49,0,0,0,100,0,111,0,50,0,50,0,0,0,100,0,111,0,50,0,51,0,0,0,100,0,111,0,50,0,52,0,0,0,100,0,111,0,50,0,53,0,0,0,100,0,111,0,50,0,54,0,0,0,100,0,111,0,50,0,55,0,0,0,100,0,111,0,50,0,56,0,0,0,100,0,111,0,50,0,57,0,0,0,100,0,111,0,51,0,48,0,0,0,100,0,111,0,51,0,49,0,0,0,100,0,111,0,51,0,50,0,0,0,100,0,111,0,51,0,51,0,0,0,100,0,111,0,51,0,52,0,0,0,100,0,111,0,51,0,53,0,0,0,100,0,111,0,51,0,54,0,0,0,100,0,111,0,51,0,55,0,0,0,100,0,111,0,51,0,56,0,0,0,100,0,111,0,51,0,57,0,0,0,100,0,111,0,52,0,48,0,0,0,100,0,111,0,52,0,49,0,0,0,100,0,111,0,52,0,50,0,0,0,100,0,122,0,48,0,49,0,0,0,100,0,122,0,48,0,50,0,0,0,100,0,122,0,48,0,51,0,0,0,100,0,122,0,48,0,52,0,0,0,100,0,122,0,48,0,53,0,0,0,100,0,122,0,48,0,54,0,0,0,100,0,122,0,48,0,55,0,0,0,100,0,122,0,48,0,56,0,0,0,100,0,122,0,48,0,57,0,0,0,100,0,122,0,49,0,48,0,0,0,100,0,122,0,49,0,49,0,0,0,100,0,122,0,49,0,50,0,0,0,100,0,122,0,49,0,51,0,0,0,100,0,122,0,49,0,52,0,0,0,100,0,122,0,49,0,53,0,0,0,100,0,122,0,49,0,54,0,0,0,100,0,122,0,49,0,55,0,0,0,100,0,122,0,49,0,56,0,0,0,100,0,122,0,49,0,57,0,0,0,100,0,122,0,50,0,48,0,0,0,100,0,122,0,50,0,49,0,0,0,100,0,122,0,50,0,50,0,0,0,100,0,122,0,50,0,51,0,0,0,100,0,122,0,50,0,52,0,0,0,100,0,122,0,50,0,53,0,0,0,100,0,122,0,50,0,54,0,0,0,100,0,122,0,50,0,55,0,0,0,100,0,122,0,50,0,56,0,0,0,100,0,122,0,50,0,57,0,0,0,100,0,122,0,51,0,48,0,0,0,100,0,122,0,51,0,49,0,0,0,100,0,122,0,51,0,51,0,0,0,100,0,122,0,51,0,52,0,0,0,100,0,122,0,51,0,53,0,0,0,100,0,122,0,51,0,55,0,0,0,100,0,122,0,51,0,56,0,0,0,100,0,122,0,51,0,57,0,0,0,100,0,122,0,52,0,48,0,0,0,100,0,122,0,52,0,49,0,0,0,100,0,122,0,52,0,51,0,0,0,100,0,122,0,52,0,53,0,0,0,100,0,122,0,52,0,54,0,0,0,100,0,122,0,52,0,55,0,0,0,101,0,99,0,115,0,100,0,0,0,101,0,99,0,115,0,101,0,0,0,101,0,101,0,52,0,52,0,0,0,101,0,101,0,52,0,57,0,0,0,101,0,101,0,53,0,49,0,0,0,101,0,101,0,53,0,55,0,0,0,101,0,101,0,53,0,57,0,0,0,101,0,101,0,54,0,53,0,0,0,101,0,101,0,54,0,55,0,0,0,101,0,101,0,55,0,48,0,0,0,101,0,101,0,55,0,56,0,0,0,101,0,101,0,56,0,50,0,0,0,101,0,101,0,56,0,54,0,0,0,101,0,115,0,97,0,114,0,0,0,101,0,115,0,97,0,115,0,0,0,101,0,115,0,99,0,97,0,0,0,101,0,115,0,99,0,99,0,0,0,101,0,115,0,99,0,108,0,0,0,101,0,115,0,99,0,109,0,0,0,101,0,115,0,99,0,110,0,0,0,101,0,115,0,99,0,111,0,0,0,101,0,115,0,99,0,114,0,0,0,101,0,115,0,99,0,115,0,0,0,101,0,115,0,99,0,116,0,0,0,101,0,115,0,99,0,117,0,0,0,101,0,115,0,109,0,99,0,0,0,101,0,115,0,109,0,100,0,0,0,101,0,115,0,116,0,101,0,0,0,101,0,115,0,116,0,102,0,0,0,101,0,116,0,115,0,110,0,0,0,101,0,116,0,115,0,111,0,0,0,102,0,105,0,48,0,50,0,0,0,102,0,105,0,48,0,51,0,0,0,102,0,105,0,48,0,52,0,0,0,102,0,105,0,48,0,53,0,0,0,102,0,105,0,48,0,54,0,0,0,102,0,105,0,48,0,55,0,0,0,102,0,105,0,48,0,56,0,0,0,102,0,105,0,48,0,57,0,0,0,102,0,105,0,49,0,48,0,0,0,102,0,105,0,49,0,49,0,0,0,102,0,105,0,49,0,50,0,0,0,102,0,105,0,49,0,51,0,0,0,102,0,105,0,49,0,52,0,0,0,102,0,105,0,49,0,53,0,0,0,102,0,105,0,49,0,54,0,0,0,102,0,105,0,49,0,55,0,0,0,102,0,105,0,49,0,56,0,0,0,102,0,105,0,49,0,57,0,0,0,102,0,106,0,48,0,49,0,0,0,102,0,106,0,48,0,50,0,0,0,102,0,106,0,48,0,51,0,0,0,102,0,106,0,48,0,52,0,0,0,102,0,106,0,48,0,53,0,0,0,102,0,106,0,48,0,54,0,0,0,102,0,106,0,48,0,55,0,0,0,102,0,106,0,48,0,56,0,0,0,102,0,106,0,48,0,57,0,0,0,102,0,106,0,49,0,48,0,0,0,102,0,106,0,49,0,49,0,0,0,102,0,106,0,49,0,50,0,0,0,102,0,106,0,49,0,51,0,0,0,102,0,106,0,49,0,52,0,0,0,102,0,114,0,48,0,49,0,0,0,102,0,114,0,48,0,50,0,0,0,102,0,114,0,48,0,51,0,0,0,102,0,114,0,48,0,52,0,0,0,102,0,114,0,48,0,53,0,0,0,102,0,114,0,48,0,54,0,0,0,102,0,114,0,48,0,55,0,0,0,102,0,114,0,48,0,56,0,0,0,102,0,114,0,48,0,57,0,0,0,102,0,114,0,49,0,48,0,0,0,102,0,114,0,49,0,49,0,0,0,102,0,114,0,49,0,50,0,0,0,102,0,114,0,49,0,51,0,0,0,102,0,114,0,49,0,52,0,0,0,102,0,114,0,49,0,53,0,0,0,102,0,114,0,49,0,54,0,0,0,102,0,114,0,49,0,55,0,0,0,102,0,114,0,49,0,56,0,0,0,102,0,114,0,49,0,57,0,0,0,102,0,114,0,50,0,49,0,0,0,102,0,114,0,50,0,50,0,0,0,102,0,114,0,50,0,51,0,0,0,102,0,114,0,50,0,52,0,0,0,102,0,114,0,50,0,53,0,0,0,102,0,114,0,50,0,54,0,0,0,102,0,114,0,50,0,55,0,0,0,102,0,114,0,50,0,56,0,0,0,102,0,114,0,50,0,57,0,0,0,102,0,114,0,50,0,97,0,0,0,102,0,114,0,50,0,98,0,0,0,102,0,114,0,51,0,48,0,0,0,102,0,114,0,51,0,49,0,0,0,102,0,114,0,51,0,50,0,0,0,102,0,114,0,51,0,51,0,0,0,102,0,114,0,51,0,52,0,0,0,102,0,114,0,51,0,53,0,0,0,102,0,114,0,51,0,54,0,0,0,102,0,114,0,51,0,55,0,0,0,102,0,114,0,51,0,56,0,0,0,102,0,114,0,51,0,57,0,0,0,102,0,114,0,52,0,48,0,0,0,102,0,114,0,52,0,49,0,0,0,102,0,114,0,52,0,50,0,0,0,102,0,114,0,52,0,51,0,0,0,102,0,114,0,52,0,52,0,0,0,102,0,114,0,52,0,53,0,0,0,102,0,114,0,52,0,54,0,0,0,102,0,114,0,52,0,55,0,0,0,102,0,114,0,52,0,56,0,0,0,102,0,114,0,52,0,57,0,0,0,102,0,114,0,53,0,48,0,0,0,102,0,114,0,53,0,49,0,0,0,102,0,114,0,53,0,50,0,0,0,102,0,114,0,53,0,51,0,0,0,102,0,114,0,53,0,52,0,0,0,102,0,114,0,53,0,53,0,0,0,102,0,114,0,53,0,54,0,0,0,102,0,114,0,53,0,55,0,0,0,102,0,114,0,53,0,56,0,0,0,102,0,114,0,53,0,57,0,0,0,102,0,114,0,54,0,48,0,0,0,102,0,114,0,54,0,49,0,0,0,102,0,114,0,54,0,50,0,0,0,102,0,114,0,54,0,51,0,0,0,102,0,114,0,54,0,52,0,0,0,102,0,114,0,54,0,53,0,0,0,102,0,114,0,54,0,54,0,0,0,102,0,114,0,54,0,55,0,0,0,102,0,114,0,54,0,56,0,0,0,102,0,114,0,54,0,57,0,0,0,102,0,114,0,55,0,48,0,0,0,102,0,114,0,55,0,49,0,0,0,102,0,114,0,55,0,50,0,0,0,102,0,114,0,55,0,51,0,0,0,102,0,114,0,55,0,52,0,0,0,102,0,114,0,55,0,53,0,0,0,102,0,114,0,55,0,54,0,0,0,102,0,114,0,55,0,55,0,0,0,102,0,114,0,55,0,56,0,0,0,102,0,114,0,55,0,57,0,0,0,102,0,114,0,56,0,48,0,0,0,102,0,114,0,56,0,49,0,0,0,102,0,114,0,56,0,50,0,0,0,102,0,114,0,56,0,51,0,0,0,102,0,114,0,56,0,53,0,0,0,102,0,114,0,56,0,54,0,0,0,102,0,114,0,56,0,55,0,0,0,102,0,114,0,56,0,56,0,0,0,102,0,114,0,56,0,57,0,0,0,102,0,114,0,57,0,49,0,0,0,102,0,114,0,57,0,50,0,0,0,102,0,114,0,57,0,51,0,0,0,102,0,114,0,57,0,52,0,0,0,102,0,114,0,57,0,53,0,0,0,102,0,114,0,103,0,102,0,0,0,102,0,114,0,103,0,112,0,0,0,102,0,114,0,109,0,113,0,0,0,102,0,114,0,114,0,101,0,0,0,102,0,114,0,121,0,116,0,0,0,103,0,100,0,48,0,49,0,0,0,103,0,100,0,48,0,50,0,0,0,103,0,100,0,48,0,51,0,0,0,103,0,100,0,48,0,52,0,0,0,103,0,100,0,48,0,53,0,0,0,103,0,100,0,48,0,54,0,0,0,103,0,104,0,98,0,97,0,0,0,103,0,108,0,113,0,97,0,0,0,103,0,110,0,98,0,101,0,0,0,103,0,110,0,107,0,97,0,0,0,103,0,110,0,107,0,98,0,0,0,103,0,110,0,107,0,100,0,0,0,103,0,110,0,107,0,101,0,0,0,103,0,110,0,107,0,110,0,0,0,103,0,110,0,107,0,111,0,0,0,103,0,110,0,109,0,99,0,0,0,103,0,110,0,109,0,100,0,0,0,103,0,110,0,109,0,108,0,0,0,103,0,110,0,109,0,109,0,0,0,103,0,114,0,48,0,49,0,0,0,103,0,114,0,97,0,49,0,0,0,103,0,116,0,48,0,49,0,0,0,103,0,116,0,48,0,50,0,0,0,103,0,116,0,48,0,51,0,0,0,103,0,116,0,48,0,52,0,0,0,103,0,116,0,48,0,53,0,0,0,103,0,116,0,48,0,54,0,0,0,103,0,116,0,48,0,55,0,0,0,103,0,116,0,48,0,56,0,0,0,103,0,116,0,48,0,57,0,0,0,103,0,116,0,49,0,48,0,0,0,103,0,116,0,49,0,49,0,0,0,103,0,116,0,49,0,50,0,0,0,103,0,116,0,49,0,51,0,0,0,103,0,116,0,49,0,52,0,0,0,103,0,116,0,49,0,53,0,0,0,103,0,116,0,49,0,54,0,0,0,103,0,116,0,49,0,55,0,0,0,103,0,116,0,49,0,56,0,0,0,103,0,116,0,49,0,57,0,0,0,103,0,116,0,50,0,48,0,0,0,103,0,116,0,50,0,49,0,0,0,103,0,116,0,50,0,50,0,0,0,103,0,116,0,97,0,118,0,0,0,103,0,116,0,98,0,118,0,0,0,103,0,116,0,99,0,109,0,0,0,103,0,116,0,99,0,113,0,0,0,103,0,116,0,101,0,115,0,0,0,103,0,116,0,103,0,117,0,0,0,103,0,116,0,104,0,117,0,0,0,103,0,116,0,105,0,122,0,0,0,103,0,116,0,112,0,101,0,0,0,103,0,116,0,112,0,114,0,0,0,103,0,116,0,113,0,99,0,0,0,103,0,116,0,113,0,122,0,0,0,103,0,116,0,114,0,101,0,0,0,103,0,116,0,115,0,97,0,0,0,103,0,116,0,115,0,109,0,0,0,103,0,116,0,115,0,111,0,0,0,103,0,116,0,115,0,114,0,0,0,103,0,116,0,115,0,117,0,0,0,103,0,116,0,116,0,111,0,0,0,103,0,119,0,98,0,108,0,0,0,104,0,110,0,99,0,108,0,0,0,104,0,110,0,99,0,109,0,0,0,104,0,114,0,48,0,49,0,0,0,104,0,114,0,48,0,50,0,0,0,104,0,114,0,48,0,51,0,0,0,104,0,114,0,48,0,52,0,0,0,104,0,114,0,48,0,53,0,0,0,104,0,114,0,48,0,54,0,0,0,104,0,114,0,48,0,55,0,0,0,104,0,114,0,48,0,56,0,0,0,104,0,114,0,48,0,57,0,0,0,104,0,114,0,49,0,48,0,0,0,104,0,114,0,49,0,49,0,0,0,104,0,114,0,49,0,50,0,0,0,104,0,114,0,49,0,51,0,0,0,104,0,114,0,49,0,52,0,0,0,104,0,114,0,49,0,53,0,0,0,104,0,114,0,49,0,54,0,0,0,104,0,114,0,49,0,55,0,0,0,104,0,114,0,49,0,56,0,0,0,104,0,114,0,49,0,57,0,0,0,104,0,114,0,50,0,48,0,0,0,104,0,114,0,50,0,49,0,0,0,104,0,116,0,110,0,100,0,0,0,104,0,116,0,110,0,101,0,0,0,104,0,116,0,115,0,100,0,0,0,104,0,116,0,115,0,101,0,0,0,104,0,117,0,115,0,111,0,0,0,104,0,117,0,115,0,116,0,0,0,105,0,100,0,98,0,97,0,0,0,105,0,100,0,98,0,98,0,0,0,105,0,100,0,106,0,97,0,0,0,105,0,100,0,106,0,98,0,0,0,105,0,100,0,107,0,97,0,0,0,105,0,100,0,107,0,98,0,0,0,105,0,100,0,107,0,114,0,0,0,105,0,100,0,107,0,115,0,0,0,105,0,100,0,107,0,116,0,0,0,105,0,100,0,107,0,117,0,0,0,105,0,100,0,110,0,116,0,0,0,105,0,100,0,110,0,117,0,0,0,105,0,100,0,112,0,97,0,0,0,105,0,100,0,112,0,98,0,0,0,105,0,100,0,115,0,97,0,0,0,105,0,100,0,115,0,109,0,0,0,105,0,100,0,115,0,110,0,0,0,105,0,100,0,115,0,114,0,0,0,105,0,100,0,115,0,115,0,0,0,105,0,100,0,115,0,116,0,0,0,105,0,100,0,115,0,117,0,0,0,105,0,101,0,109,0,110,0,0,0,105,0,101,0,109,0,111,0,0,0,105,0,101,0,119,0,119,0,0,0,105,0,101,0,119,0,120,0,0,0,105,0,110,0,97,0,114,0,0,0,105,0,110,0,97,0,115,0,0,0,105,0,110,0,100,0,100,0,0,0,105,0,110,0,100,0,110,0,0,0,105,0,113,0,98,0,97,0,0,0,105,0,113,0,98,0,98,0,0,0,105,0,114,0,48,0,48,0,0,0,105,0,114,0,48,0,49,0,0,0,105,0,114,0,48,0,50,0,0,0,105,0,114,0,48,0,51,0,0,0,105,0,114,0,48,0,52,0,0,0,105,0,114,0,48,0,53,0,0,0,105,0,114,0,48,0,54,0,0,0,105,0,114,0,48,0,55,0,0,0,105,0,114,0,48,0,56,0,0,0,105,0,114,0,48,0,57,0,0,0,105,0,114,0,49,0,48,0,0,0,105,0,114,0,49,0,49,0,0,0,105,0,114,0,49,0,50,0,0,0,105,0,114,0,49,0,51,0,0,0,105,0,114,0,49,0,52,0,0,0,105,0,114,0,49,0,53,0,0,0,105,0,114,0,49,0,54,0,0,0,105,0,114,0,49,0,55,0,0,0,105,0,114,0,49,0,56,0,0,0,105,0,114,0,49,0,57,0,0,0,105,0,114,0,50,0,48,0,0,0,105,0,114,0,50,0,49,0,0,0,105,0,114,0,50,0,50,0,0,0,105,0,114,0,50,0,51,0,0,0,105,0,114,0,50,0,52,0,0,0,105,0,114,0,50,0,53,0,0,0,105,0,114,0,50,0,54,0,0,0,105,0,114,0,50,0,55,0,0,0,105,0,114,0,50,0,56,0,0,0,105,0,114,0,50,0,57,0,0,0,105,0,116,0,55,0,55,0,0,0,105,0,116,0,55,0,56,0,0,0,105,0,116,0,97,0,111,0,0,0,105,0,116,0,97,0,112,0,0,0,105,0,116,0,97,0,113,0,0,0,105,0,116,0,97,0,114,0,0,0,105,0,116,0,98,0,114,0,0,0,105,0,116,0,98,0,115,0,0,0,105,0,116,0,98,0,116,0,0,0,105,0,116,0,99,0,97,0,0,0,105,0,116,0,99,0,98,0,0,0,105,0,116,0,99,0,105,0,0,0,105,0,116,0,99,0,110,0,0,0,105,0,116,0,99,0,111,0,0,0,105,0,116,0,99,0,114,0,0,0,105,0,116,0,99,0,115,0,0,0,105,0,116,0,99,0,116,0,0,0,105,0,116,0,108,0,116,0,0,0,105,0,116,0,108,0,117,0,0,0,105,0,116,0,109,0,99,0,0,0,105,0,116,0,109,0,110,0,0,0,105,0,116,0,109,0,111,0,0,0,105,0,116,0,109,0,116,0,0,0,105,0,116,0,111,0,103,0,0,0,105,0,116,0,111,0,116,0,0,0,105,0,116,0,112,0,100,0,0,0,105,0,116,0,112,0,101,0,0,0,105,0,116,0,112,0,110,0,0,0,105,0,116,0,112,0,111,0,0,0,105,0,116,0,112,0,116,0,0,0,105,0,116,0,112,0,117,0,0,0,105,0,116,0,112,0,118,0,0,0,105,0,116,0,114,0,109,0,0,0,105,0,116,0,114,0,110,0,0,0,105,0,116,0,114,0,111,0,0,0,105,0,116,0,115,0,100,0,0,0,105,0,116,0,115,0,111,0,0,0,105,0,116,0,115,0,112,0,0,0,105,0,116,0,115,0,114,0,0,0,105,0,116,0,115,0,115,0,0,0,105,0,116,0,115,0,117,0,0,0,105,0,116,0,115,0,118,0,0,0,105,0,116,0,116,0,111,0,0,0,105,0,116,0,116,0,112,0,0,0,105,0,116,0,116,0,114,0,0,0,105,0,116,0,116,0,115,0,0,0,105,0,116,0,118,0,98,0,0,0,105,0,116,0,118,0,99,0,0,0,105,0,116,0,118,0,115,0,0,0,106,0,109,0,48,0,49,0,0,0,106,0,109,0,48,0,50,0,0,0,106,0,109,0,48,0,51,0,0,0,106,0,109,0,48,0,52,0,0,0,106,0,109,0,48,0,53,0,0,0,106,0,109,0,48,0,54,0,0,0,106,0,109,0,48,0,55,0,0,0,106,0,109,0,48,0,56,0,0,0,106,0,109,0,48,0,57,0,0,0,106,0,109,0,49,0,48,0,0,0,106,0,109,0,49,0,49,0,0,0,106,0,109,0,49,0,50,0,0,0,106,0,109,0,49,0,51,0,0,0,106,0,109,0,49,0,52,0,0,0,106,0,112,0,48,0,49,0,0,0,106,0,112,0,48,0,50,0,0,0,106,0,112,0,48,0,51,0,0,0,106,0,112,0,48,0,52,0,0,0,106,0,112,0,48,0,53,0,0,0,106,0,112,0,48,0,54,0,0,0,106,0,112,0,48,0,55,0,0,0,106,0,112,0,48,0,56,0,0,0,106,0,112,0,48,0,57,0,0,0,106,0,112,0,49,0,48,0,0,0,106,0,112,0,49,0,49,0,0,0,106,0,112,0,49,0,50,0,0,0,106,0,112,0,49,0,51,0,0,0,106,0,112,0,49,0,52,0,0,0,106,0,112,0,49,0,53,0,0,0,106,0,112,0,49,0,54,0,0,0,106,0,112,0,49,0,55,0,0,0,106,0,112,0,49,0,56,0,0,0,106,0,112,0,49,0,57,0,0,0,106,0,112,0,50,0,48,0,0,0,106,0,112,0,50,0,49,0,0,0,106,0,112,0,50,0,50,0,0,0,106,0,112,0,50,0,51,0,0,0,106,0,112,0,50,0,52,0,0,0,106,0,112,0,50,0,53,0,0,0,106,0,112,0,50,0,54,0,0,0,106,0,112,0,50,0,55,0,0,0,106,0,112,0,50,0,56,0,0,0,106,0,112,0,50,0,57,0,0,0,106,0,112,0,51,0,48,0,0,0,106,0,112,0,51,0,49,0,0,0,106,0,112,0,51,0,50,0,0,0,106,0,112,0,51,0,51,0,0,0,106,0,112,0,51,0,52,0,0,0,106,0,112,0,51,0,53,0,0,0,106,0,112,0,51,0,54,0,0,0,106,0,112,0,51,0,55,0,0,0,106,0,112,0,51,0,56,0,0,0,106,0,112,0,51,0,57,0,0,0,106,0,112,0,52,0,48,0,0,0,106,0,112,0,52,0,49,0,0,0,106,0,112,0,52,0,50,0,0,0,106,0,112,0,52,0,51,0,0,0,106,0,112,0,52,0,52,0,0,0,106,0,112,0,52,0,53,0,0,0,106,0,112,0,52,0,54,0,0,0,106,0,112,0,52,0,55,0,0,0,107,0,101,0,48,0,49,0,0,0,107,0,101,0,48,0,50,0,0,0,107,0,101,0,48,0,51,0,0,0,107,0,101,0,48,0,52,0,0,0,107,0,101,0,48,0,53,0,0,0,107,0,101,0,48,0,54,0,0,0,107,0,101,0,48,0,55,0,0,0,107,0,101,0,48,0,56,0,0,0,107,0,101,0,48,0,57,0,0,0,107,0,101,0,49,0,48,0,0,0,107,0,101,0,49,0,49,0,0,0,107,0,101,0,49,0,50,0,0,0,107,0,101,0,49,0,51,0,0,0,107,0,101,0,49,0,52,0,0,0,107,0,101,0,49,0,53,0,0,0,107,0,101,0,49,0,54,0,0,0,107,0,101,0,49,0,55,0,0,0,107,0,101,0,49,0,56,0,0,0,107,0,101,0,49,0,57,0,0,0,107,0,101,0,50,0,48,0,0,0,107,0,101,0,50,0,49,0,0,0,107,0,101,0,50,0,50,0,0,0,107,0,101,0,50,0,51,0,0,0,107,0,101,0,50,0,52,0,0,0,107,0,101,0,50,0,53,0,0,0,107,0,101,0,50,0,54,0,0,0,107,0,101,0,50,0,55,0,0,0,107,0,101,0,50,0,56,0,0,0,107,0,101,0,50,0,57,0,0,0,107,0,101,0,51,0,48,0,0,0,107,0,101,0,51,0,49,0,0,0,107,0,101,0,51,0,50,0,0,0,107,0,101,0,51,0,51,0,0,0,107,0,101,0,51,0,52,0,0,0,107,0,101,0,51,0,53,0,0,0,107,0,101,0,51,0,54,0,0,0,107,0,101,0,51,0,55,0,0,0,107,0,101,0,51,0,56,0,0,0,107,0,101,0,51,0,57,0,0,0,107,0,101,0,52,0,48,0,0,0,107,0,101,0,52,0,49,0,0,0,107,0,101,0,52,0,50,0,0,0,107,0,101,0,52,0,51,0,0,0,107,0,101,0,52,0,52,0,0,0,107,0,101,0,52,0,53,0,0,0,107,0,101,0,52,0,54,0,0,0,107,0,101,0,52,0,55,0,0,0,107,0,104,0,49,0,48,0,0,0,107,0,104,0,49,0,49,0,0,0,107,0,104,0,49,0,50,0,0,0,107,0,104,0,49,0,51,0,0,0,107,0,104,0,49,0,52,0,0,0,107,0,104,0,49,0,53,0,0,0,107,0,104,0,49,0,54,0,0,0,107,0,104,0,49,0,55,0,0,0,107,0,104,0,49,0,56,0,0,0,107,0,104,0,49,0,57,0,0,0,107,0,104,0,50,0,48,0,0,0,107,0,104,0,50,0,49,0,0,0,107,0,104,0,50,0,50,0,0,0,107,0,104,0,50,0,51,0,0,0,107,0,104,0,50,0,52,0,0,0,107,0,104,0,50,0,53,0,0,0,107,0,110,0,48,0,49,0,0,0,107,0,110,0,48,0,50,0,0,0,107,0,110,0,48,0,51,0,0,0,107,0,110,0,48,0,52,0,0,0,107,0,110,0,48,0,53,0,0,0,107,0,110,0,48,0,54,0,0,0,107,0,110,0,48,0,55,0,0,0,107,0,110,0,48,0,56,0,0,0,107,0,110,0,48,0,57,0,0,0,107,0,110,0,49,0,48,0,0,0,107,0,110,0,49,0,49,0,0,0,107,0,110,0,49,0,50,0,0,0,107,0,110,0,49,0,51,0,0,0,107,0,112,0,48,0,49,0,0,0,107,0,112,0,48,0,50,0,0,0,107,0,112,0,48,0,51,0,0,0,107,0,112,0,48,0,52,0,0,0,107,0,112,0,48,0,53,0,0,0,107,0,112,0,48,0,54,0,0,0,107,0,112,0,48,0,55,0,0,0,107,0,112,0,48,0,56,0,0,0,107,0,112,0,48,0,57,0,0,0,107,0,112,0,49,0,51,0,0,0,107,0,112,0,49,0,52,0,0,0,107,0,114,0,50,0,54,0,0,0,107,0,114,0,50,0,55,0,0,0,107,0,114,0,50,0,56,0,0,0,107,0,114,0,50,0,57,0,0,0,107,0,114,0,51,0,48,0,0,0,107,0,114,0,51,0,49,0,0,0,107,0,114,0,52,0,49,0,0,0,107,0,114,0,52,0,50,0,0,0,107,0,114,0,52,0,51,0,0,0,107,0,114,0,52,0,52,0,0,0,107,0,114,0,52,0,53,0,0,0,107,0,114,0,52,0,54,0,0,0,107,0,114,0,52,0,55,0,0,0,107,0,114,0,52,0,56,0,0,0,107,0,114,0,52,0,57,0,0,0,108,0,97,0,98,0,107,0,0,0,108,0,97,0,98,0,108,0,0,0,108,0,97,0,120,0,110,0,0,0,108,0,98,0,98,0,104,0,0,0,108,0,98,0,98,0,105,0,0,0,108,0,99,0,48,0,49,0,0,0,108,0,99,0,48,0,50,0,0,0,108,0,99,0,48,0,51,0,0,0,108,0,99,0,48,0,53,0,0,0,108,0,99,0,48,0,54,0,0,0,108,0,99,0,48,0,55,0,0,0,108,0,99,0,48,0,56,0,0,0,108,0,99,0,49,0,48,0,0,0,108,0,99,0,49,0,49,0,0,0,108,0,99,0,49,0,50,0,0,0,108,0,105,0,48,0,49,0,0,0,108,0,105,0,48,0,50,0,0,0,108,0,105,0,48,0,51,0,0,0,108,0,105,0,48,0,52,0,0,0,108,0,105,0,48,0,53,0,0,0,108,0,105,0,48,0,54,0,0,0,108,0,105,0,48,0,55,0,0,0,108,0,105,0,48,0,56,0,0,0,108,0,105,0,48,0,57,0,0,0,108,0,105,0,49,0,48,0,0,0,108,0,105,0,49,0,49,0,0,0,108,0,107,0,49,0,49,0,0,0,108,0,107,0,49,0,50,0,0,0,108,0,107,0,49,0,51,0,0,0,108,0,107,0,50,0,49,0,0,0,108,0,107,0,50,0,50,0,0,0,108,0,107,0,50,0,51,0,0,0,108,0,107,0,51,0,49,0,0,0,108,0,107,0,51,0,50,0,0,0,108,0,107,0,51,0,51,0,0,0,108,0,107,0,52,0,49,0,0,0,108,0,107,0,52,0,50,0,0,0,108,0,107,0,52,0,51,0,0,0,108,0,107,0,52,0,52,0,0,0,108,0,107,0,52,0,53,0,0,0,108,0,107,0,53,0,49,0,0,0,108,0,107,0,53,0,50,0,0,0,108,0,107,0,53,0,51,0,0,0,108,0,107,0,54,0,49,0,0,0,108,0,107,0,54,0,50,0,0,0,108,0,107,0,55,0,49,0,0,0,108,0,107,0,55,0,50,0,0,0,108,0,107,0,56,0,49,0,0,0,108,0,107,0,56,0,50,0,0,0,108,0,107,0,57,0,49,0,0,0,108,0,107,0,57,0,50,0,0,0,108,0,116,0,48,0,49,0,0,0,108,0,116,0,48,0,50,0,0,0,108,0,116,0,48,0,51,0,0,0,108,0,116,0,48,0,52,0,0,0,108,0,116,0,48,0,53,0,0,0,108,0,116,0,48,0,54,0,0,0,108,0,116,0,48,0,55,0,0,0,108,0,116,0,48,0,56,0,0,0,108,0,116,0,48,0,57,0,0,0,108,0,116,0,49,0,48,0,0,0,108,0,116,0,49,0,49,0,0,0,108,0,116,0,49,0,50,0,0,0,108,0,116,0,49,0,51,0,0,0,108,0,116,0,49,0,52,0,0,0,108,0,116,0,49,0,53,0,0,0,108,0,116,0,49,0,54,0,0,0,108,0,116,0,49,0,55,0,0,0,108,0,116,0,49,0,56,0,0,0,108,0,116,0,49,0,57,0,0,0,108,0,116,0,50,0,48,0,0,0,108,0,116,0,50,0,49,0,0,0,108,0,116,0,50,0,50,0,0,0,108,0,116,0,50,0,51,0,0,0,108,0,116,0,50,0,52,0,0,0,108,0,116,0,50,0,53,0,0,0,108,0,116,0,50,0,54,0,0,0,108,0,116,0,50,0,55,0,0,0,108,0,116,0,50,0,56,0,0,0,108,0,116,0,50,0,57,0,0,0,108,0,116,0,51,0,48,0,0,0,108,0,116,0,51,0,49,0,0,0,108,0,116,0,51,0,50,0,0,0,108,0,116,0,51,0,51,0,0,0,108,0,116,0,51,0,52,0,0,0,108,0,116,0,51,0,53,0,0,0,108,0,116,0,51,0,54,0,0,0,108,0,116,0,51,0,55,0,0,0,108,0,116,0,51,0,56,0,0,0,108,0,116,0,51,0,57,0,0,0,108,0,116,0,52,0,48,0,0,0,108,0,116,0,52,0,49,0,0,0,108,0,116,0,52,0,50,0,0,0,108,0,116,0,52,0,51,0,0,0,108,0,116,0,52,0,52,0,0,0,108,0,116,0,52,0,53,0,0,0,108,0,116,0,52,0,54,0,0,0,108,0,116,0,52,0,55,0,0,0,108,0,116,0,52,0,56,0,0,0,108,0,116,0,52,0,57,0,0,0,108,0,116,0,53,0,48,0,0,0,108,0,116,0,53,0,49,0,0,0,108,0,116,0,53,0,50,0,0,0,108,0,116,0,53,0,51,0,0,0,108,0,116,0,53,0,52,0,0,0,108,0,116,0,53,0,53,0,0,0,108,0,116,0,53,0,54,0,0,0,108,0,116,0,53,0,55,0,0,0,108,0,116,0,53,0,56,0,0,0,108,0,116,0,53,0,57,0,0,0,108,0,121,0,109,0,105,0,0,0,108,0,121,0,109,0,106,0,0,0,109,0,97,0,48,0,49,0,0,0,109,0,97,0,48,0,50,0,0,0,109,0,97,0,48,0,51,0,0,0,109,0,97,0,48,0,52,0,0,0,109,0,97,0,48,0,53,0,0,0,109,0,97,0,48,0,54,0,0,0,109,0,97,0,48,0,55,0,0,0,109,0,97,0,48,0,56,0,0,0,109,0,97,0,48,0,57,0,0,0,109,0,97,0,49,0,48,0,0,0,109,0,97,0,49,0,49,0,0,0,109,0,97,0,49,0,50,0,0,0,109,0,99,0,115,0,111,0,0,0,109,0,99,0,115,0,112,0,0,0,109,0,100,0,98,0,114,0,0,0,109,0,100,0,98,0,115,0,0,0,109,0,100,0,99,0,108,0,0,0,109,0,100,0,99,0,109,0,0,0,109,0,100,0,99,0,115,0,0,0,109,0,100,0,99,0,116,0,0,0,109,0,100,0,99,0,117,0,0,0,109,0,100,0,115,0,110,0,0,0,109,0,100,0,115,0,111,0,0,0,109,0,101,0,48,0,49,0,0,0,109,0,101,0,48,0,50,0,0,0,109,0,101,0,48,0,51,0,0,0,109,0,101,0,48,0,52,0,0,0,109,0,101,0,48,0,53,0,0,0,109,0,101,0,48,0,54,0,0,0,109,0,101,0,48,0,55,0,0,0,109,0,101,0,48,0,56,0,0,0,109,0,101,0,48,0,57,0,0,0,109,0,101,0,49,0,48,0,0,0,109,0,101,0,49,0,49,0,0,0,109,0,101,0,49,0,50,0,0,0,109,0,101,0,49,0,51,0,0,0,109,0,101,0,49,0,52,0,0,0,109,0,101,0,49,0,53,0,0,0,109,0,101,0,49,0,54,0,0,0,109,0,101,0,49,0,55,0,0,0,109,0,101,0,49,0,56,0,0,0,109,0,101,0,49,0,57,0,0,0,109,0,101,0,50,0,48,0,0,0,109,0,101,0,50,0,49,0,0,0,109,0,101,0,50,0,50,0,0,0,109,0,101,0,50,0,51,0,0,0,109,0,101,0,50,0,52,0,0,0,109,0,109,0,48,0,49,0,0,0,109,0,109,0,48,0,50,0,0,0,109,0,109,0,48,0,51,0,0,0,109,0,109,0,48,0,52,0,0,0,109,0,109,0,48,0,53,0,0,0,109,0,109,0,48,0,54,0,0,0,109,0,109,0,48,0,55,0,0,0,109,0,109,0,49,0,49,0,0,0,109,0,109,0,49,0,50,0,0,0,109,0,109,0,49,0,51,0,0,0,109,0,109,0,49,0,52,0,0,0,109,0,109,0,49,0,53,0,0,0,109,0,109,0,49,0,54,0,0,0,109,0,109,0,49,0,55,0,0,0,109,0,109,0,49,0,56,0,0,0,109,0,114,0,48,0,49,0,0,0,109,0,114,0,48,0,50,0,0,0,109,0,114,0,48,0,51,0,0,0,109,0,114,0,48,0,52,0,0,0,109,0,114,0,48,0,53,0,0,0,109,0,114,0,48,0,54,0,0,0,109,0,114,0,48,0,55,0,0,0,109,0,114,0,48,0,56,0,0,0,109,0,114,0,48,0,57,0,0,0,109,0,114,0,49,0,48,0,0,0,109,0,114,0,49,0,49,0,0,0,109,0,114,0,49,0,50,0,0,0,109,0,114,0,49,0,51,0,0,0,109,0,114,0,49,0,52,0,0,0,109,0,114,0,49,0,53,0,0,0,109,0,116,0,48,0,49,0,0,0,109,0,116,0,48,0,50,0,0,0,109,0,116,0,48,0,51,0,0,0,109,0,116,0,48,0,52,0,0,0,109,0,116,0,48,0,53,0,0,0,109,0,116,0,48,0,54,0,0,0,109,0,116,0,48,0,55,0,0,0,109,0,116,0,48,0,56,0,0,0,109,0,116,0,48,0,57,0,0,0,109,0,116,0,49,0,48,0,0,0,109,0,116,0,49,0,49,0,0,0,109,0,116,0,49,0,50,0,0,0,109,0,116,0,49,0,51,0,0,0,109,0,116,0,49,0,52,0,0,0,109,0,116,0,49,0,53,0,0,0,109,0,116,0,49,0,54,0,0,0,109,0,116,0,49,0,55,0,0,0,109,0,116,0,49,0,56,0,0,0,109,0,116,0,49,0,57,0,0,0,109,0,116,0,50,0,48,0,0,0,109,0,116,0,50,0,49,0,0,0,109,0,116,0,50,0,50,0,0,0,109,0,116,0,50,0,51,0,0,0,109,0,116,0,50,0,52,0,0,0,109,0,116,0,50,0,53,0,0,0,109,0,116,0,50,0,54,0,0,0,109,0,116,0,50,0,55,0,0,0,109,0,116,0,50,0,56,0,0,0,109,0,116,0,50,0,57,0,0,0,109,0,116,0,51,0,48,0,0,0,109,0,116,0,51,0,49,0,0,0,109,0,116,0,51,0,50,0,0,0,109,0,116,0,51,0,51,0,0,0,109,0,116,0,51,0,52,0,0,0,109,0,116,0,51,0,53,0,0,0,109,0,116,0,51,0,54,0,0,0,109,0,116,0,51,0,55,0,0,0,109,0,116,0,51,0,56,0,0,0,109,0,116,0,51,0,57,0,0,0,109,0,116,0,52,0,48,0,0,0,109,0,116,0,52,0,49,0,0,0,109,0,116,0,52,0,50,0,0,0,109,0,116,0,52,0,51,0,0,0,109,0,116,0,52,0,52,0,0,0,109,0,116,0,52,0,53,0,0,0,109,0,116,0,52,0,54,0,0,0,109,0,116,0,52,0,55,0,0,0,109,0,116,0,52,0,56,0,0,0,109,0,116,0,52,0,57,0,0,0,109,0,116,0,53,0,49,0,0,0,109,0,116,0,53,0,50,0,0,0,109,0,116,0,53,0,51,0,0,0,109,0,116,0,53,0,52,0,0,0,109,0,116,0,53,0,53,0,0,0,109,0,116,0,53,0,54,0,0,0,109,0,116,0,53,0,55,0,0,0,109,0,116,0,53,0,56,0,0,0,109,0,116,0,53,0,57,0,0,0,109,0,116,0,54,0,49,0,0,0,109,0,116,0,54,0,50,0,0,0,109,0,116,0,54,0,51,0,0,0,109,0,116,0,54,0,52,0,0,0,109,0,116,0,54,0,53,0,0,0,109,0,116,0,54,0,54,0,0,0,109,0,116,0,54,0,55,0,0,0,109,0,117,0,99,0,117,0,0,0,109,0,117,0,112,0,117,0,0,0,109,0,117,0,113,0,98,0,0,0,109,0,117,0,118,0,112,0,0,0,109,0,118,0,48,0,48,0,0,0,109,0,118,0,48,0,49,0,0,0,109,0,118,0,48,0,50,0,0,0,109,0,118,0,48,0,51,0,0,0,109,0,118,0,48,0,52,0,0,0,109,0,118,0,48,0,53,0,0,0,109,0,118,0,48,0,55,0,0,0,109,0,118,0,48,0,56,0,0,0,109,0,118,0,49,0,50,0,0,0,109,0,118,0,49,0,51,0,0,0,109,0,118,0,49,0,52,0,0,0,109,0,118,0,50,0,51,0,0,0,109,0,118,0,50,0,52,0,0,0,109,0,118,0,50,0,53,0,0,0,109,0,118,0,50,0,54,0,0,0,109,0,118,0,50,0,55,0,0,0,109,0,118,0,50,0,56,0,0,0,109,0,118,0,50,0,57,0,0,0,109,0,118,0,99,0,101,0,0,0,109,0,118,0,110,0,99,0,0,0,109,0,118,0,115,0,99,0,0,0,109,0,118,0,115,0,117,0,0,0,109,0,118,0,117,0,110,0,0,0,109,0,118,0,117,0,115,0,0,0,109,0,121,0,48,0,49,0,0,0,109,0,121,0,48,0,50,0,0,0,109,0,121,0,48,0,51,0,0,0,109,0,121,0,48,0,52,0,0,0,109,0,121,0,48,0,53,0,0,0,109,0,121,0,48,0,54,0,0,0,109,0,121,0,48,0,55,0,0,0,109,0,121,0,48,0,56,0,0,0,109,0,121,0,48,0,57,0,0,0,109,0,121,0,49,0,48,0,0,0,109,0,121,0,49,0,49,0,0,0,109,0,121,0,49,0,50,0,0,0,109,0,121,0,49,0,51,0,0,0,109,0,121,0,49,0,52,0,0,0,109,0,121,0,49,0,53,0,0,0,109,0,121,0,49,0,54,0,0,0,110,0,97,0,111,0,115,0,0,0,110,0,97,0,111,0,116,0,0,0,110,0,103,0,107,0,100,0,0,0,110,0,103,0,107,0,101,0,0,0,110,0,103,0,107,0,110,0,0,0,110,0,103,0,107,0,111,0,0,0,110,0,105,0,109,0,115,0,0,0,110,0,105,0,109,0,116,0,0,0,110,0,111,0,49,0,48,0,0,0,110,0,111,0,49,0,50,0,0,0,110,0,111,0,49,0,52,0,0,0,110,0,111,0,49,0,57,0,0,0,110,0,111,0,50,0,48,0,0,0,110,0,111,0,50,0,49,0,0,0,110,0,111,0,50,0,50,0,0,0,110,0,111,0,50,0,51,0,0,0,110,0,112,0,112,0,49,0,0,0,110,0,112,0,112,0,50,0,0,0,110,0,112,0,112,0,51,0,0,0,110,0,112,0,112,0,52,0,0,0,110,0,112,0,112,0,53,0,0,0,110,0,112,0,112,0,54,0,0,0,110,0,112,0,112,0,55,0,0,0,110,0,114,0,48,0,49,0,0,0,110,0,114,0,48,0,50,0,0,0,110,0,114,0,48,0,51,0,0,0,110,0,114,0,48,0,52,0,0,0,110,0,114,0,48,0,53,0,0,0,110,0,114,0,48,0,54,0,0,0,110,0,114,0,48,0,55,0,0,0,110,0,114,0,48,0,56,0,0,0,110,0,114,0,48,0,57,0,0,0,110,0,114,0,49,0,48,0,0,0,110,0,114,0,49,0,49,0,0,0,110,0,114,0,49,0,50,0,0,0,110,0,114,0,49,0,51,0,0,0,110,0,114,0,49,0,52,0,0,0,111,0,109,0,98,0,97,0,0,0,112,0,104,0,48,0,48,0,0,0,112,0,104,0,48,0,49,0,0,0,112,0,104,0,48,0,50,0,0,0,112,0,104,0,48,0,51,0,0,0,112,0,104,0,48,0,53,0,0,0,112,0,104,0,48,0,54,0,0,0,112,0,104,0,48,0,55,0,0,0,112,0,104,0,48,0,56,0,0,0,112,0,104,0,48,0,57,0,0,0,112,0,104,0,49,0,48,0,0,0,112,0,104,0,49,0,49,0,0,0,112,0,104,0,49,0,50,0,0,0,112,0,104,0,49,0,51,0,0,0,112,0,104,0,49,0,52,0,0,0,112,0,104,0,49,0,53,0,0,0,112,0,104,0,52,0,48,0,0,0,112,0,104,0,52,0,49,0,0,0,112,0,107,0,116,0,97,0,0,0,112,0,108,0,100,0,115,0,0,0,112,0,108,0,107,0,112,0,0,0,112,0,108,0,108,0,100,0,0,0,112,0,108,0,109,0,97,0,0,0,112,0,108,0,111,0,112,0,0,0,112,0,108,0,112,0,100,0,0,0,112,0,108,0,112,0,107,0,0,0,112,0,108,0,112,0,109,0,0,0,112,0,108,0,119,0,110,0,0,0,112,0,108,0,119,0,112,0,0,0,112,0,108,0,122,0,112,0,0,0,112,0,116,0,48,0,49,0,0,0,112,0,116,0,48,0,50,0,0,0,112,0,116,0,48,0,51,0,0,0,112,0,116,0,48,0,52,0,0,0,112,0,116,0,48,0,53,0,0,0,112,0,116,0,48,0,54,0,0,0,112,0,116,0,48,0,55,0,0,0,112,0,116,0,48,0,56,0,0,0,112,0,116,0,48,0,57,0,0,0,112,0,116,0,49,0,48,0,0,0,112,0,116,0,49,0,49,0,0,0,112,0,116,0,49,0,50,0,0,0,112,0,116,0,49,0,51,0,0,0,112,0,116,0,49,0,52,0,0,0,112,0,116,0,49,0,53,0,0,0,112,0,116,0,49,0,54,0,0,0,112,0,116,0,49,0,55,0,0,0,112,0,116,0,49,0,56,0,0,0,112,0,121,0,49,0,48,0,0,0,112,0,121,0,49,0,49,0,0,0,112,0,121,0,49,0,50,0,0,0,112,0,121,0,49,0,51,0,0,0,112,0,121,0,49,0,52,0,0,0,112,0,121,0,49,0,53,0,0,0,112,0,121,0,49,0,54,0,0,0,114,0,111,0,99,0,115,0,0,0,114,0,111,0,99,0,116,0,0,0,114,0,111,0,116,0,108,0,0,0,114,0,111,0,116,0,109,0,0,0,114,0,115,0,48,0,48,0,0,0,114,0,115,0,48,0,49,0,0,0,114,0,115,0,48,0,50,0,0,0,114,0,115,0,48,0,51,0,0,0,114,0,115,0,48,0,52,0,0,0,114,0,115,0,48,0,53,0,0,0,114,0,115,0,48,0,54,0,0,0,114,0,115,0,48,0,55,0,0,0,114,0,115,0,48,0,56,0,0,0,114,0,115,0,48,0,57,0,0,0,114,0,115,0,49,0,48,0,0,0,114,0,115,0,49,0,49,0,0,0,114,0,115,0,49,0,50,0,0,0,114,0,115,0,49,0,51,0,0,0,114,0,115,0,49,0,52,0,0,0,114,0,115,0,49,0,53,0,0,0,114,0,115,0,49,0,54,0,0,0,114,0,115,0,49,0,55,0,0,0,114,0,115,0,49,0,56,0,0,0,114,0,115,0,49,0,57,0,0,0,114,0,115,0,50,0,48,0,0,0,114,0,115,0,50,0,49,0,0,0,114,0,115,0,50,0,50,0,0,0,114,0,115,0,50,0,51,0,0,0,114,0,115,0,50,0,52,0,0,0,114,0,115,0,50,0,53,0,0,0,114,0,115,0,50,0,54,0,0,0,114,0,115,0,50,0,55,0,0,0,114,0,115,0,50,0,56,0,0,0,114,0,115,0,50,0,57,0,0,0,114,0,117,0,107,0,98,0,0,0,114,0,117,0,107,0,99,0,0,0,114,0,117,0,107,0,107,0,0,0,114,0,117,0,107,0,108,0,0,0,114,0,119,0,48,0,49,0,0,0,114,0,119,0,48,0,50,0,0,0,114,0,119,0,48,0,51,0,0,0,114,0,119,0,48,0,52,0,0,0,114,0,119,0,48,0,53,0,0,0,115,0,97,0,48,0,49,0,0,0,115,0,97,0,48,0,50,0,0,0,115,0,97,0,48,0,51,0,0,0,115,0,97,0,48,0,52,0,0,0,115,0,97,0,48,0,53,0,0,0,115,0,97,0,48,0,54,0,0,0,115,0,97,0,48,0,55,0,0,0,115,0,97,0,48,0,56,0,0,0,115,0,97,0,48,0,57,0,0,0,115,0,97,0,49,0,48,0,0,0,115,0,97,0,49,0,49,0,0,0,115,0,97,0,49,0,50,0,0,0,115,0,98,0,109,0,107,0,0,0,115,0,98,0,109,0,108,0,0,0,115,0,99,0,48,0,49,0,0,0,115,0,99,0,48,0,50,0,0,0,115,0,99,0,48,0,51,0,0,0,115,0,99,0,48,0,52,0,0,0,115,0,99,0,48,0,53,0,0,0,115,0,99,0,48,0,54,0,0,0,115,0,99,0,48,0,55,0,0,0,115,0,99,0,48,0,56,0,0,0,115,0,99,0,48,0,57,0,0,0,115,0,99,0,49,0,48,0,0,0,115,0,99,0,49,0,49,0,0,0,115,0,99,0,49,0,50,0,0,0,115,0,99,0,49,0,51,0,0,0,115,0,99,0,49,0,52,0,0,0,115,0,99,0,49,0,53,0,0,0,115,0,99,0,49,0,54,0,0,0,115,0,99,0,49,0,55,0,0,0,115,0,99,0,49,0,56,0,0,0,115,0,99,0,49,0,57,0,0,0,115,0,99,0,50,0,48,0,0,0,115,0,99,0,50,0,49,0,0,0,115,0,99,0,50,0,50,0,0,0,115,0,99,0,50,0,51,0,0,0,115,0,99,0,50,0,52,0,0,0,115,0,99,0,50,0,53,0,0,0,115,0,99,0,50,0,54,0,0,0,115,0,99,0,50,0,55,0,0,0,115,0,101,0,97,0,98,0,0,0,115,0,101,0,97,0,99,0,0,0,115,0,103,0,48,0,49,0,0,0,115,0,103,0,48,0,50,0,0,0,115,0,103,0,48,0,51,0,0,0,115,0,103,0,48,0,52,0,0,0,115,0,103,0,48,0,53,0,0,0,115,0,109,0,48,0,49,0,0,0,115,0,109,0,48,0,50,0,0,0,115,0,109,0,48,0,51,0,0,0,115,0,109,0,48,0,52,0,0,0,115,0,109,0,48,0,53,0,0,0,115,0,109,0,48,0,54,0,0,0,115,0,109,0,48,0,55,0,0,0,115,0,109,0,48,0,56,0,0,0,115,0,109,0,48,0,57,0,0,0,115,0,110,0,107,0,100,0,0,0,115,0,110,0,107,0,101,0,0,0,115,0,116,0,48,0,49,0,0,0,115,0,116,0,48,0,50,0,0,0,115,0,116,0,48,0,51,0,0,0,115,0,116,0,48,0,52,0,0,0,115,0,116,0,48,0,53,0,0,0,115,0,116,0,48,0,54,0,0,0,115,0,121,0,104,0,109,0,0,0,116,0,104,0,49,0,48,0,0,0,116,0,104,0,49,0,49,0,0,0,116,0,104,0,49,0,50,0,0,0,116,0,104,0,49,0,51,0,0,0,116,0,104,0,49,0,52,0,0,0,116,0,104,0,49,0,53,0,0,0,116,0,104,0,49,0,54,0,0,0,116,0,104,0,49,0,55,0,0,0,116,0,104,0,49,0,56,0,0,0,116,0,104,0,49,0,57,0,0,0,116,0,104,0,50,0,48,0,0,0,116,0,104,0,50,0,49,0,0,0,116,0,104,0,50,0,50,0,0,0,116,0,104,0,50,0,51,0,0,0,116,0,104,0,50,0,52,0,0,0,116,0,104,0,50,0,53,0,0,0,116,0,104,0,50,0,54,0,0,0,116,0,104,0,50,0,55,0,0,0,116,0,104,0,51,0,48,0,0,0,116,0,104,0,51,0,49,0,0,0,116,0,104,0,51,0,50,0,0,0,116,0,104,0,51,0,51,0,0,0,116,0,104,0,51,0,52,0,0,0,116,0,104,0,51,0,53,0,0,0,116,0,104,0,51,0,54,0,0,0,116,0,104,0,51,0,55,0,0,0,116,0,104,0,51,0,56,0,0,0,116,0,104,0,51,0,57,0,0,0,116,0,104,0,52,0,48,0,0,0,116,0,104,0,52,0,49,0,0,0,116,0,104,0,52,0,50,0,0,0,116,0,104,0,52,0,51,0,0,0,116,0,104,0,52,0,52,0,0,0,116,0,104,0,52,0,53,0,0,0,116,0,104,0,52,0,54,0,0,0,116,0,104,0,52,0,55,0,0,0,116,0,104,0,52,0,56,0,0,0,116,0,104,0,52,0,57,0,0,0,116,0,104,0,53,0,48,0,0,0,116,0,104,0,53,0,49,0,0,0,116,0,104,0,53,0,50,0,0,0,116,0,104,0,53,0,51,0,0,0,116,0,104,0,53,0,52,0,0,0,116,0,104,0,53,0,53,0,0,0,116,0,104,0,53,0,54,0,0,0,116,0,104,0,53,0,55,0,0,0,116,0,104,0,53,0,56,0,0,0,116,0,104,0,54,0,48,0,0,0,116,0,104,0,54,0,49,0,0,0,116,0,104,0,54,0,50,0,0,0,116,0,104,0,54,0,51,0,0,0,116,0,104,0,54,0,52,0,0,0,116,0,104,0,54,0,53,0,0,0,116,0,104,0,54,0,54,0,0,0,116,0,104,0,54,0,55,0,0,0,116,0,104,0,55,0,48,0,0,0,116,0,104,0,55,0,49,0,0,0,116,0,104,0,55,0,50,0,0,0,116,0,104,0,55,0,51,0,0,0,116,0,104,0,55,0,52,0,0,0,116,0,104,0,55,0,53,0,0,0,116,0,104,0,55,0,54,0,0,0,116,0,104,0,55,0,55,0,0,0,116,0,104,0,56,0,48,0,0,0,116,0,104,0,56,0,49,0,0,0,116,0,104,0,56,0,50,0,0,0,116,0,104,0,56,0,51,0,0,0,116,0,104,0,56,0,52,0,0,0,116,0,104,0,56,0,53,0,0,0,116,0,104,0,56,0,54,0,0,0,116,0,104,0,57,0,48,0,0,0,116,0,104,0,57,0,49,0,0,0,116,0,104,0,57,0,50,0,0,0,116,0,104,0,57,0,51,0,0,0,116,0,104,0,57,0,52,0,0,0,116,0,104,0,57,0,53,0,0,0,116,0,110,0,49,0,49,0,0,0,116,0,110,0,49,0,50,0,0,0,116,0,110,0,49,0,51,0,0,0,116,0,110,0,49,0,52,0,0,0,116,0,110,0,50,0,49,0,0,0,116,0,110,0,50,0,50,0,0,0,116,0,110,0,50,0,51,0,0,0,116,0,110,0,51,0,49,0,0,0,116,0,110,0,51,0,50,0,0,0,116,0,110,0,51,0,51,0,0,0,116,0,110,0,51,0,52,0,0,0,116,0,110,0,52,0,49,0,0,0,116,0,110,0,52,0,50,0,0,0,116,0,110,0,52,0,51,0,0,0,116,0,110,0,53,0,49,0,0,0,116,0,110,0,53,0,50,0,0,0,116,0,110,0,53,0,51,0,0,0,116,0,110,0,55,0,49,0,0,0,116,0,110,0,55,0,50,0,0,0,116,0,110,0,55,0,51,0,0,0,116,0,110,0,56,0,49,0,0,0,116,0,110,0,56,0,50,0,0,0,116,0,110,0,56,0,51,0,0,0,116,0,111,0,48,0,49,0,0,0,116,0,111,0,48,0,50,0,0,0,116,0,111,0,48,0,51,0,0,0,116,0,111,0,48,0,52,0,0,0,116,0,111,0,48,0,53,0,0,0,116,0,114,0,48,0,49,0,0,0,116,0,114,0,48,0,50,0,0,0,116,0,114,0,48,0,51,0,0,0,116,0,114,0,48,0,52,0,0,0,116,0,114,0,48,0,53,0,0,0,116,0,114,0,48,0,54,0,0,0,116,0,114,0,48,0,55,0,0,0,116,0,114,0,48,0,56,0,0,0,116,0,114,0,48,0,57,0,0,0,116,0,114,0,49,0,48,0,0,0,116,0,114,0,49,0,49,0,0,0,116,0,114,0,49,0,50,0,0,0,116,0,114,0,49,0,51,0,0,0,116,0,114,0,49,0,52,0,0,0,116,0,114,0,49,0,53,0,0,0,116,0,114,0,49,0,54,0,0,0,116,0,114,0,49,0,55,0,0,0,116,0,114,0,49,0,56,0,0,0,116,0,114,0,49,0,57,0,0,0,116,0,114,0,50,0,48,0,0,0,116,0,114,0,50,0,49,0,0,0,116,0,114,0,50,0,50,0,0,0,116,0,114,0,50,0,51,0,0,0,116,0,114,0,50,0,52,0,0,0,116,0,114,0,50,0,53,0,0,0,116,0,114,0,50,0,54,0,0,0,116,0,114,0,50,0,55,0,0,0,116,0,114,0,50,0,56,0,0,0,116,0,114,0,50,0,57,0,0,0,116,0,114,0,51,0,48,0,0,0,116,0,114,0,51,0,49,0,0,0,116,0,114,0,51,0,50,0,0,0,116,0,114,0,51,0,51,0,0,0,116,0,114,0,51,0,52,0,0,0,116,0,114,0,51,0,53,0,0,0,116,0,114,0,51,0,54,0,0,0,116,0,114,0,51,0,55,0,0,0,116,0,114,0,51,0,56,0,0,0,116,0,114,0,51,0,57,0,0,0,116,0,114,0,52,0,48,0,0,0,116,0,114,0,52,0,49,0,0,0,116,0,114,0,52,0,50,0,0,0,116,0,114,0,52,0,51,0,0,0,116,0,114,0,52,0,52,0,0,0,116,0,114,0,52,0,53,0,0,0,116,0,114,0,52,0,54,0,0,0,116,0,114,0,52,0,55,0,0,0,116,0,114,0,52,0,56,0,0,0,116,0,114,0,52,0,57,0,0,0,116,0,114,0,53,0,48,0,0,0,116,0,114,0,53,0,49,0,0,0,116,0,114,0,53,0,50,0,0,0,116,0,114,0,53,0,51,0,0,0,116,0,114,0,53,0,52,0,0,0,116,0,114,0,53,0,53,0,0,0,116,0,114,0,53,0,54,0,0,0,116,0,114,0,53,0,55,0,0,0,116,0,114,0,53,0,56,0,0,0,116,0,114,0,53,0,57,0,0,0,116,0,114,0,54,0,48,0,0,0,116,0,114,0,54,0,49,0,0,0,116,0,114,0,54,0,50,0,0,0,116,0,114,0,54,0,51,0,0,0,116,0,114,0,54,0,52,0,0,0,116,0,114,0,54,0,53,0,0,0,116,0,114,0,54,0,54,0,0,0,116,0,114,0,54,0,55,0,0,0,116,0,114,0,54,0,56,0,0,0,116,0,114,0,54,0,57,0,0,0,116,0,114,0,55,0,48,0,0,0,116,0,114,0,55,0,49,0,0,0,116,0,114,0,55,0,50,0,0,0,116,0,114,0,55,0,51,0,0,0,116,0,114,0,55,0,52,0,0,0,116,0,114,0,55,0,53,0,0,0,116,0,114,0,55,0,54,0,0,0,116,0,114,0,55,0,55,0,0,0,116,0,114,0,55,0,56,0,0,0,116,0,114,0,55,0,57,0,0,0,116,0,114,0,56,0,48,0,0,0,116,0,114,0,56,0,49,0,0,0,116,0,122,0,48,0,49,0,0,0,116,0,122,0,48,0,50,0,0,0,116,0,122,0,48,0,51,0,0,0,116,0,122,0,48,0,52,0,0,0,116,0,122,0,48,0,53,0,0,0,116,0,122,0,48,0,54,0,0,0,116,0,122,0,48,0,55,0,0,0,116,0,122,0,48,0,56,0,0,0,116,0,122,0,48,0,57,0,0,0,116,0,122,0,49,0,49,0,0,0,116,0,122,0,49,0,51,0,0,0,116,0,122,0,49,0,52,0,0,0,116,0,122,0,49,0,53,0,0,0,116,0,122,0,49,0,54,0,0,0,116,0,122,0,49,0,55,0,0,0,116,0,122,0,49,0,56,0,0,0,116,0,122,0,49,0,57,0,0,0,116,0,122,0,50,0,49,0,0,0,116,0,122,0,50,0,50,0,0,0,116,0,122,0,50,0,51,0,0,0,116,0,122,0,50,0,52,0,0,0,116,0,122,0,50,0,53,0,0,0,116,0,122,0,50,0,54,0,0,0,116,0,122,0,50,0,55,0,0,0,116,0,122,0,50,0,56,0,0,0,116,0,122,0,50,0,57,0,0,0,116,0,122,0,51,0,49,0,0,0,117,0,115,0,97,0,108,0,0,0,117,0,115,0,109,0,101,0,0,0,117,0,115,0,109,0,110,0,0,0,117,0,115,0,109,0,115,0,0,0,117,0,115,0,109,0,116,0,0,0,117,0,115,0,110,0,100,0,0,0,117,0,115,0,110,0,101,0,0,0,117,0,115,0,115,0,99,0,0,0,117,0,115,0,115,0,100,0,0,0,118,0,99,0,48,0,49,0,0,0,118,0,99,0,48,0,50,0,0,0,118,0,99,0,48,0,51,0,0,0,118,0,99,0,48,0,52,0,0,0,118,0,99,0,48,0,53,0,0,0,118,0,99,0,48,0,54,0,0,0,118,0,110,0,48,0,49,0,0,0,118,0,110,0,48,0,50,0,0,0,118,0,110,0,48,0,51,0,0,0,118,0,110,0,48,0,52,0,0,0,118,0,110,0,48,0,53,0,0,0,118,0,110,0,48,0,54,0,0,0,118,0,110,0,48,0,55,0,0,0,118,0,110,0,49,0,51,0,0,0,118,0,110,0,49,0,52,0,0,0,118,0,110,0,50,0,48,0,0,0,118,0,110,0,50,0,49,0,0,0,118,0,110,0,50,0,50,0,0,0,118,0,110,0,50,0,51,0,0,0,118,0,110,0,50,0,52,0,0,0,118,0,110,0,50,0,53,0,0,0,118,0,110,0,50,0,54,0,0,0,118,0,110,0,50,0,55,0,0,0,118,0,110,0,50,0,56,0,0,0,118,0,110,0,50,0,57,0,0,0,118,0,110,0,51,0,48,0,0,0,118,0,110,0,51,0,49,0,0,0,118,0,110,0,51,0,50,0,0,0,118,0,110,0,51,0,51,0,0,0,118,0,110,0,51,0,52,0,0,0,118,0,110,0,51,0,53,0,0,0,118,0,110,0,51,0,54,0,0,0,118,0,110,0,51,0,55,0,0,0,118,0,110,0,52,0,48,0,0,0,118,0,110,0,52,0,49,0,0,0,118,0,110,0,52,0,51,0,0,0,118,0,110,0,52,0,52,0,0,0,118,0,110,0,52,0,53,0,0,0,118,0,110,0,52,0,54,0,0,0,118,0,110,0,52,0,55,0,0,0,118,0,110,0,53,0,48,0,0,0,118,0,110,0,53,0,49,0,0,0,118,0,110,0,53,0,50,0,0,0,118,0,110,0,53,0,51,0,0,0,118,0,110,0,53,0,52,0,0,0,118,0,110,0,53,0,53,0,0,0,118,0,110,0,53,0,54,0,0,0,118,0,110,0,53,0,55,0,0,0,118,0,110,0,53,0,56,0,0,0,118,0,110,0,53,0,57,0,0,0,118,0,110,0,54,0,54,0,0,0,118,0,110,0,54,0,55,0,0,0,118,0,110,0,54,0,56,0,0,0,118,0,110,0,54,0,57,0,0,0,118,0,110,0,55,0,48,0,0,0,118,0,110,0,55,0,49,0,0,0,118,0,110,0,55,0,50,0,0,0,118,0,110,0,55,0,51,0,0,0,122,0,97,0,103,0,116,0,0,0,122,0,97,0,110,0,108,0,0,0,122,0,109,0,48,0,49,0,0,0,122,0,109,0,48,0,50,0,0,0,122,0,109,0,48,0,51,0,0,0,122,0,109,0,48,0,52,0,0,0,122,0,109,0,48,0,53,0,0,0,122,0,109,0,48,0,54,0,0,0,122,0,109,0,48,0,55,0,0,0,122,0,109,0,48,0,56,0,0,0,122,0,109,0,48,0,57,0,0,0,122,0,119,0,109,0,118,0,0,0,122,0,119,0,109,0,119,0,0,0,101,0,110,0,95,0,73,0,78,0,0,0,97,0,122,0,122,0,97,0,114,0,0,0,101,0,110,0,95,0,68,0,69,0,0,0,101,0,110,0,95,0,71,0,66,0,0,0,101,0,110,0,95,0,90,0,65,0,0,0,101,0,110,0,95,0,80,0,75,0,0,0,101,0,110,0,95,0,85,0,71,0,0,0,101,0,110,0,95,0,75,0,69,0,0,0,101,0,110,0,95,0,78,0,71,0,0,0,101,0,110,0,95,0,78,0,76,0,0,0,112,0,116,0,95,0,70,0,82,0,0,0,49,0,53,0,52,0,126,0,53,0,0,0,101,0,110,0,95,0,65,0,84,0,0,0,112,0,116,0,95,0,77,0,90,0,0,0,101,0,110,0,95,0,66,0,69,0,0,0,101,0,110,0,95,0,70,0,73,0,0,0,101,0,110,0,95,0,83,0,73,0,0,0,101,0,110,0,95,0,71,0,72,0,0,0,101,0,110,0,95,0,84,0,90,0,0,0,112,0,116,0,95,0,67,0,72,0,0,0,112,0,116,0,95,0,76,0,85,0,0,0,112,0,116,0,95,0,80,0,84,0,0,0,101,0,110,0,95,0,67,0,89,0,0,0,101,0,110,0,95,0,68,0,75,0,0,0,101,0,110,0,95,0,77,0,84,0,0,0,101,0,110,0,95,0,78,0,65,0,0,0,101,0,110,0,95,0,90,0,77,0,0,0,108,0,117,0,110,0,97,0,114,0,0,0,110,0,122,0,119,0,103,0,110,0,0,0,101,0,110,0,95,0,69,0,82,0,0,0,101,0,110,0,95,0,70,0,74,0,0,0,101,0,110,0,95,0,70,0,77,0,0,0,101,0,110,0,95,0,73,0,69,0,0,0,101,0,110,0,95,0,77,0,85,0,0,0,101,0,110,0,95,0,77,0,89,0,0,0,101,0,110,0,95,0,82,0,87,0,0,0,101,0,110,0,95,0,83,0,68,0,0,0,101,0,110,0,95,0,83,0,69,0,0,0,101,0,110,0,95,0,83,0,71,0,0,0,101,0,110,0,95,0,83,0,76,0,0,0,101,0,110,0,95,0,86,0,85,0,0,0,101,0,110,0,95,0,90,0,87,0,0,0,112,0,116,0,95,0,65,0,79,0,0,0,112,0,116,0,95,0,66,0,82,0,0,0,112,0,116,0,95,0,71,0,81,0,0,0,116,0,119,0,104,0,115,0,113,0,0,0,101,0,110,0,95,0,67,0,77,0,0,0,101,0,110,0,95,0,72,0,75,0,0,0,101,0,110,0,95,0,73,0,76,0,0,0,101,0,110,0,95,0,74,0,77,0,0,0,101,0,110,0,95,0,77,0,71,0,0,0,101,0,110,0,95,0,77,0,87,0,0,0,101,0,110,0,95,0,78,0,82,0,0,0,101,0,110,0,95,0,78,0,90,0,0,0,101,0,110,0,95,0,80,0,71,0,0,0,101,0,110,0,95,0,80,0,87,0,0,0,101,0,110,0,95,0,83,0,67,0,0,0,101,0,110,0,95,0,87,0,83,0,0,0,101,0,115,0,95,0,66,0,79,0,0,0,101,0,115,0,95,0,69,0,67,0,0,0,101,0,115,0,95,0,77,0,88,0,0,0,101,0,115,0,95,0,80,0,89,0,0,0,103,0,98,0,101,0,115,0,115,0,0,0,108,0,118,0,48,0,49,0,49,0,0,0,116,0,119,0,116,0,110,0,110,0,0,0,103,0,98,0,115,0,103,0,99,0,0,0,109,0,97,0,109,0,97,0,114,0,0,0,112,0,104,0,116,0,97,0,114,0,0,0,114,0,117,0,115,0,97,0,114,0,0,0,114,0,117,0,121,0,97,0,114,0,0,0,115,0,105,0,48,0,50,0,57,0,0,0,98,0,101,0,119,0,104,0,116,0,0,0,101,0,110,0,95,0,66,0,87,0,0,0,101,0,110,0,95,0,68,0,77,0,0,0,101,0,110,0,95,0,71,0,77,0,0,0,101,0,110,0,95,0,71,0,89,0,0,0,101,0,110,0,95,0,75,0,73,0,0,0,101,0,110,0,95,0,76,0,83,0,0,0,101,0,110,0,95,0,77,0,86,0,0,0,101,0,110,0,95,0,78,0,85,0,0,0,101,0,110,0,95,0,83,0,66,0,0,0,101,0,110,0,95,0,83,0,83,0,0,0,101,0,110,0,95,0,83,0,90,0,0,0,101,0,110,0,95,0,84,0,79,0,0,0,101,0,110,0,95,0,84,0,84,0,0,0,101,0,110,0,95,0,84,0,86,0,0,0,101,0,110,0,95,0,86,0,67,0,0,0,101,0,115,0,95,0,65,0,82,0,0,0,101,0,115,0,95,0,66,0,90,0,0,0,101,0,115,0,95,0,67,0,76,0,0,0,101,0,115,0,95,0,67,0,82,0,0,0,101,0,115,0,95,0,68,0,79,0,0,0,101,0,115,0,95,0,71,0,84,0,0,0,101,0,115,0,95,0,78,0,73,0,0,0,101,0,115,0,95,0,80,0,65,0,0,0,101,0,115,0,95,0,80,0,69,0,0,0,101,0,115,0,95,0,83,0,86,0,0,0,101,0,115,0,95,0,86,0,69,0,0,0,103,0,98,0,121,0,111,0,114,0,0,0,107,0,122,0,121,0,117,0,122,0,0,0,109,0,97,0,116,0,97,0,122,0,0,0,112,0,116,0,95,0,67,0,86,0,0,0,112,0,116,0,95,0,71,0,87,0,0,0,112,0,116,0,95,0,84,0,76,0,0,0,97,0,111,0,108,0,117,0,97,0,0,0,97,0,122,0,98,0,97,0,108,0,0,0,101,0,101,0,52,0,52,0,54,0,0,0,101,0,101,0,52,0,55,0,56,0,0,0,101,0,101,0,52,0,56,0,48,0,0,0,101,0,101,0,53,0,56,0,54,0,0,0,101,0,101,0,55,0,56,0,52,0,0,0,101,0,101,0,56,0,51,0,52,0,0,0,102,0,114,0,57,0,55,0,54,0,0,0,103,0,98,0,103,0,119,0,110,0,0,0,105,0,115,0,98,0,111,0,108,0,0,0,109,0,97,0,98,0,101,0,109,0,0,0,109,0,97,0,101,0,115,0,109,0,0,0,109,0,104,0,107,0,105,0,108,0,0,0,109,0,107,0,52,0,49,0,48,0,0,0,109,0,110,0,48,0,51,0,57,0,0,0,109,0,110,0,48,0,54,0,49,0,0,0,109,0,120,0,110,0,108,0,101,0,0,0,109,0,120,0,118,0,101,0,114,0,0,0,112,0,104,0,98,0,111,0,104,0,0,0,112,0,104,0,115,0,108,0,101,0,0,0,112,0,119,0,50,0,49,0,52,0,0,0,97,0,102,0,116,0,97,0,107,0,0,0,97,0,111,0,117,0,105,0,103,0,0,0,101,0,110,0,95,0,65,0,71,0,0,0,101,0,110,0,95,0,65,0,73,0,0,0,101,0,110,0,95,0,65,0,85,0,0,0,101,0,110,0,95,0,66,0,66,0,0,0,101,0,110,0,95,0,66,0,83,0,0,0,101,0,110,0,95,0,67,0,67,0,0,0,101,0,110,0,95,0,71,0,68,0,0,0,101,0,110,0,95,0,71,0,73,0,0,0,101,0,110,0,95,0,73,0,77,0,0,0,101,0,110,0,95,0,74,0,69,0,0,0,101,0,110,0,95,0,75,0,78,0,0,0,101,0,110,0,95,0,76,0,67,0,0,0,101,0,110,0,95,0,76,0,82,0,0,0,101,0,110,0,95,0,83,0,88,0,0,0,101,0,110,0,95,0,84,0,75,0,0,0,101,0,110,0,95,0,86,0,71,0,0,0,101,0,115,0,95,0,67,0,79,0,0,0,101,0,115,0,95,0,67,0,85,0,0,0,101,0,115,0,95,0,72,0,78,0,0,0,101,0,115,0,95,0,80,0,82,0,0,0,101,0,115,0,95,0,85,0,89,0,0,0,103,0,98,0,118,0,103,0,108,0,0,0,103,0,98,0,119,0,108,0,110,0,0,0,103,0,98,0,119,0,108,0,118,0,0,0,103,0,98,0,122,0,101,0,116,0,0,0,105,0,115,0,114,0,107,0,110,0,0,0,105,0,115,0,115,0,98,0,104,0,0,0,107,0,122,0,115,0,104,0,121,0,0,0,107,0,122,0,122,0,104,0,97,0,0,0,109,0,104,0,117,0,116,0,105,0,0,0,109,0,107,0,49,0,48,0,52,0,0,0,109,0,120,0,116,0,97,0,109,0,0,0,110,0,122,0,119,0,107,0,111,0,0,0,112,0,101,0,112,0,105,0,117,0,0,0,112,0,104,0,115,0,117,0,107,0,0,0,112,0,116,0,95,0,77,0,79,0,0,0,112,0,116,0,95,0,83,0,84,0,0,0,114,0,117,0,122,0,97,0,98,0,0,0,115,0,105,0,48,0,48,0,53,0,0,0,115,0,105,0,48,0,49,0,51,0,0,0,115,0,105,0,48,0,50,0,49,0,0,0,115,0,105,0,49,0,53,0,54,0,0,0,116,0,116,0,115,0,102,0,111,0,0,0,114,0,117,0,115,0,97,0,107,0,0,0,114,0,117,0,115,0,109,0,111,0,0,0,97,0,102,0,98,0,100,0,103,0,0,0,97,0,102,0,103,0,104,0,97,0,0,0,97,0,102,0,106,0,111,0,119,0,0,0,97,0,111,0,108,0,110,0,111,0,0,0,97,0,111,0,122,0,97,0,105,0,0,0,97,0,122,0,105,0,109,0,105,0,0,0,97,0,122,0,111,0,103,0,117,0,0,0,97,0,122,0,113,0,117,0,115,0,0,0,98,0,102,0,98,0,97,0,122,0,0,0,98,0,102,0,98,0,108,0,103,0,0,0,98,0,102,0,115,0,101,0,110,0,0,0,98,0,102,0,122,0,105,0,114,0,0,0,99,0,111,0,103,0,117,0,118,0,0,0,99,0,111,0,115,0,97,0,112,0,0,0,101,0,101,0,50,0,57,0,54,0,0,0,101,0,101,0,53,0,50,0,56,0,0,0,101,0,101,0,54,0,50,0,52,0,0,0,101,0,101,0,54,0,51,0,56,0,0,0,101,0,101,0,54,0,54,0,51,0,0,0,101,0,101,0,55,0,51,0,50,0,0,0,101,0,101,0,55,0,57,0,54,0,0,0,101,0,101,0,57,0,48,0,49,0,0,0,101,0,101,0,57,0,50,0,56,0,0,0,102,0,114,0,97,0,114,0,97,0,0,0,102,0,114,0,103,0,101,0,115,0,0,0,103,0,98,0,99,0,108,0,100,0,0,0,103,0,98,0,99,0,109,0,110,0,0,0,103,0,98,0,100,0,98,0,121,0,0,0,103,0,98,0,100,0,101,0,118,0,0,0,103,0,98,0,100,0,117,0,100,0,0,0,103,0,98,0,101,0,114,0,119,0,0,0,103,0,98,0,102,0,108,0,110,0,0,0,103,0,98,0,103,0,114,0,101,0,0,0,103,0,98,0,104,0,110,0,115,0,0,0,103,0,98,0,105,0,111,0,119,0,0,0,103,0,98,0,107,0,104,0,108,0,0,0,103,0,98,0,108,0,99,0,101,0,0,0,103,0,98,0,108,0,110,0,100,0,0,0,103,0,98,0,110,0,119,0,109,0,0,0,103,0,98,0,114,0,100,0,98,0,0,0,103,0,98,0,119,0,111,0,107,0,0,0,105,0,115,0,97,0,114,0,110,0,0,0,105,0,115,0,102,0,108,0,97,0,0,0,105,0,115,0,102,0,108,0,114,0,0,0,105,0,115,0,104,0,118,0,101,0,0,0,105,0,115,0,105,0,115,0,97,0,0,0,105,0,115,0,109,0,117,0,108,0,0,0,105,0,115,0,114,0,103,0,101,0,0,0,105,0,115,0,115,0,100,0,110,0,0,0,105,0,115,0,115,0,116,0,121,0,0,0,105,0,115,0,118,0,101,0,109,0,0,0,107,0,122,0,97,0,108,0,97,0,0,0,108,0,118,0,48,0,53,0,50,0,0,0,108,0,118,0,48,0,53,0,52,0,0,0,108,0,118,0,48,0,53,0,54,0,0,0,108,0,118,0,108,0,112,0,120,0,0,0,108,0,118,0,118,0,101,0,110,0,0,0,109,0,97,0,99,0,104,0,116,0,0,0,109,0,97,0,105,0,110,0,101,0,0,0,109,0,97,0,110,0,97,0,100,0,0,0,109,0,97,0,115,0,101,0,102,0,0,0,109,0,97,0,115,0,101,0,116,0,0,0,109,0,104,0,101,0,98,0,111,0,0,0,109,0,110,0,48,0,51,0,53,0,0,0,109,0,120,0,99,0,111,0,97,0,0,0,109,0,120,0,103,0,114,0,111,0,0,0,109,0,120,0,104,0,105,0,100,0,0,0,110,0,122,0,98,0,111,0,112,0,0,0,112,0,101,0,116,0,117,0,109,0,0,0,112,0,103,0,101,0,98,0,114,0,0,0,112,0,104,0,99,0,101,0,98,0,0,0,112,0,104,0,100,0,97,0,111,0,0,0,112,0,104,0,103,0,117,0,105,0,0,0,112,0,104,0,105,0,102,0,117,0,0,0,112,0,104,0,105,0,108,0,105,0,0,0,112,0,104,0,105,0,108,0,115,0,0,0,112,0,115,0,103,0,122,0,97,0,0,0,112,0,119,0,48,0,48,0,50,0,0,0,112,0,119,0,48,0,48,0,52,0,0,0,112,0,119,0,48,0,49,0,48,0,0,0,112,0,119,0,48,0,53,0,48,0,0,0,112,0,119,0,49,0,48,0,48,0,0,0,112,0,119,0,49,0,53,0,48,0,0,0,112,0,119,0,50,0,49,0,50,0,0,0,112,0,119,0,50,0,49,0,56,0,0,0,112,0,119,0,50,0,50,0,50,0,0,0,114,0,117,0,97,0,114,0,107,0,0,0,114,0,117,0,105,0,114,0,107,0,0,0,114,0,117,0,107,0,97,0,109,0,0,0,114,0,117,0,107,0,100,0,97,0,0,0,114,0,117,0,107,0,103,0,110,0,0,0,114,0,117,0,111,0,114,0,101,0,0,0,114,0,117,0,115,0,118,0,101,0,0,0,114,0,117,0,118,0,111,0,114,0,0,0,116,0,119,0,110,0,97,0,110,0,0,0,118,0,117,0,115,0,101,0,101,0,0,0,97,0,122,0,122,0,97,0,110,0,0,0,101,0,110,0,95,0,66,0,77,0,0,0,101,0,110,0,95,0,67,0,75,0,0,0,101,0,110,0,95,0,67,0,88,0,0,0,101,0,110,0,95,0,68,0,71,0,0,0,101,0,110,0,95,0,70,0,75,0,0,0,101,0,110,0,95,0,71,0,71,0,0,0,101,0,110,0,95,0,73,0,79,0,0,0,101,0,110,0,95,0,75,0,89,0,0,0,101,0,110,0,95,0,77,0,83,0,0,0,101,0,110,0,95,0,78,0,70,0,0,0,101,0,110,0,95,0,80,0,78,0,0,0,101,0,110,0,95,0,83,0,72,0,0,0,101,0,110,0,95,0,84,0,67,0,0,0,108,0,118,0,100,0,103,0,118,0,0,0,109,0,104,0,110,0,109,0,107,0,0,0,112,0,104,0,122,0,97,0,115,0,0,0,118,0,117,0,116,0,97,0,101,0,0,0,99,0,122,0,50,0,48,0,50,0,0,0,99,0,122,0,50,0,48,0,51,0,0,0,99,0,122,0,50,0,48,0,56,0,0,0,99,0,122,0,51,0,50,0,52,0,0,0,99,0,122,0,52,0,50,0,50,0,0,0,99,0,122,0,52,0,50,0,54,0,0,0,99,0,122,0,53,0,49,0,50,0,0,0,99,0,122,0,53,0,50,0,52,0,0,0,99,0,122,0,53,0,51,0,51,0,0,0,99,0,122,0,54,0,51,0,52,0,0,0,99,0,122,0,54,0,52,0,51,0,0,0,99,0,122,0,54,0,52,0,54,0,0,0,102,0,114,0,57,0,55,0,49,0,0,0,102,0,114,0,57,0,55,0,50,0,0,0,102,0,114,0,57,0,55,0,51,0,0,0,102,0,114,0,57,0,55,0,52,0,0,0,108,0,118,0,48,0,53,0,55,0,0,0,109,0,107,0,49,0,48,0,56,0,0,0,109,0,107,0,52,0,48,0,52,0,0,0,109,0,107,0,52,0,48,0,56,0,0,0,109,0,107,0,53,0,48,0,52,0,0,0,109,0,107,0,54,0,48,0,52,0,0,0,109,0,107,0,54,0,48,0,56,0,0,0,109,0,107,0,55,0,48,0,50,0,0,0,109,0,107,0,55,0,48,0,52,0,0,0,109,0,107,0,55,0,48,0,54,0,0,0,109,0,107,0,56,0,48,0,55,0,0,0,115,0,105,0,48,0,48,0,57,0,0,0,115,0,105,0,48,0,49,0,52,0,0,0,115,0,105,0,48,0,49,0,55,0,0,0,115,0,105,0,48,0,49,0,56,0,0,0,115,0,105,0,48,0,49,0,57,0,0,0,115,0,105,0,48,0,51,0,48,0,0,0,115,0,105,0,49,0,49,0,54,0,0,0,115,0,105,0,49,0,50,0,52,0,0,0,115,0,105,0,49,0,51,0,50,0,0,0,115,0,105,0,49,0,51,0,54,0,0,0,115,0,105,0,49,0,52,0,52,0,0,0,115,0,105,0,49,0,53,0,50,0,0,0,115,0,105,0,49,0,55,0,48,0,0,0,115,0,105,0,49,0,55,0,52,0,0,0,115,0,105,0,49,0,56,0,48,0,0,0,115,0,105,0,49,0,56,0,56,0,0,0,115,0,105,0,49,0,57,0,49,0,0,0,115,0,105,0,49,0,57,0,50,0,0,0,117,0,103,0,50,0,51,0,50,0,0,0,117,0,103,0,51,0,50,0,48,0,0,0,117,0,103,0,51,0,50,0,56,0,0,0,117,0,103,0,51,0,51,0,50,0,0,0,117,0,103,0,52,0,49,0,52,0,0,0,117,0,103,0,52,0,49,0,55,0,0,0,117,0,103,0,52,0,49,0,56,0,0,0,117,0,103,0,52,0,49,0,57,0,0,0,117,0,103,0,52,0,51,0,48,0,0,0,117,0,103,0,52,0,51,0,52,0,0,0,42,0,95,0,42,0,95,0,42,0,0,0,97,0,102,0,98,0,100,0,115,0,0,0,97,0,102,0,98,0,103,0,108,0,0,0,97,0,102,0,100,0,97,0,121,0,0,0,97,0,102,0,102,0,114,0,97,0,0,0,97,0,102,0,102,0,121,0,98,0,0,0,97,0,102,0,103,0,104,0,111,0,0,0,97,0,102,0,104,0,101,0,108,0,0,0,97,0,102,0,104,0,101,0,114,0,0,0,97,0,102,0,107,0,97,0,98,0,0,0,97,0,102,0,107,0,97,0,110,0,0,0,97,0,102,0,107,0,97,0,112,0,0,0,97,0,102,0,107,0,100,0,122,0,0,0,97,0,102,0,107,0,104,0,111,0,0,0,97,0,102,0,107,0,110,0,114,0,0,0,97,0,102,0,108,0,97,0,103,0,0,0,97,0,102,0,108,0,111,0,103,0,0,0,97,0,102,0,110,0,97,0,110,0,0,0,97,0,102,0,110,0,105,0,109,0,0,0,97,0,102,0,110,0,117,0,114,0,0,0,97,0,102,0,112,0,97,0,110,0,0,0,97,0,102,0,112,0,97,0,114,0,0,0,97,0,102,0,112,0,105,0,97,0,0,0,97,0,102,0,112,0,107,0,97,0,0,0,97,0,102,0,115,0,97,0,109,0,0,0,97,0,102,0,115,0,97,0,114,0,0,0,97,0,102,0,117,0,114,0,117,0,0,0,97,0,102,0,119,0,97,0,114,0,0,0,97,0,102,0,122,0,97,0,98,0,0,0,97,0,111,0,98,0,103,0,111,0,0,0,97,0,111,0,98,0,103,0,117,0,0,0,97,0,111,0,98,0,105,0,101,0,0,0,97,0,111,0,99,0,97,0,98,0,0,0,97,0,111,0,99,0,99,0,117,0,0,0,97,0,111,0,99,0,117,0,115,0,0,0,97,0,111,0,104,0,117,0,97,0,0,0,97,0,111,0,104,0,117,0,105,0,0,0,97,0,111,0,108,0,115,0,117,0,0,0,97,0,111,0,109,0,97,0,108,0,0,0,97,0,111,0,109,0,111,0,120,0,0,0,97,0,111,0,110,0,97,0,109,0,0,0,97,0,117,0,97,0,99,0,116,0,0,0,97,0,117,0,110,0,115,0,119,0,0,0,97,0,117,0,113,0,108,0,100,0,0,0,97,0,117,0,116,0,97,0,115,0,0,0,97,0,117,0,118,0,105,0,99,0,0,0,97,0,122,0,97,0,98,0,115,0,0,0,97,0,122,0,97,0,103,0,97,0,0,0,97,0,122,0,97,0,103,0,99,0,0,0,97,0,122,0,97,0,103,0,109,0,0,0,97,0,122,0,97,0,103,0,115,0,0,0,97,0,122,0,97,0,103,0,117,0,0,0,97,0,122,0,97,0,115,0,116,0,0,0,97,0,122,0,98,0,97,0,98,0,0,0,97,0,122,0,98,0,97,0,114,0,0,0,97,0,122,0,98,0,101,0,121,0,0,0,97,0,122,0,98,0,105,0,108,0,0,0,97,0,122,0,99,0,97,0,98,0,0,0,97,0,122,0,99,0,97,0,108,0,0,0,97,0,122,0,99,0,117,0,108,0,0,0,97,0,122,0,100,0,97,0,115,0,0,0,97,0,122,0,102,0,117,0,122,0,0,0,97,0,122,0,103,0,97,0,100,0,0,0,97,0,122,0,103,0,111,0,114,0,0,0,97,0,122,0,103,0,111,0,121,0,0,0,97,0,122,0,103,0,121,0,103,0,0,0,97,0,122,0,104,0,97,0,99,0,0,0,97,0,122,0,105,0,115,0,109,0,0,0,97,0,122,0,107,0,97,0,108,0,0,0,97,0,122,0,107,0,97,0,110,0,0,0,97,0,122,0,107,0,117,0,114,0,0,0,97,0,122,0,108,0,97,0,99,0,0,0,97,0,122,0,108,0,97,0,110,0,0,0,97,0,122,0,108,0,101,0,114,0,0,0,97,0,122,0,109,0,97,0,115,0,0,0,97,0,122,0,110,0,101,0,102,0,0,0,97,0,122,0,111,0,114,0,100,0,0,0,97,0,122,0,113,0,97,0,98,0,0,0,97,0,122,0,113,0,97,0,120,0,0,0,97,0,122,0,113,0,97,0,122,0,0,0,97,0,122,0,113,0,98,0,97,0,0,0,97,0,122,0,113,0,98,0,105,0,0,0,97,0,122,0,113,0,111,0,98,0,0,0,97,0,122,0,115,0,97,0,98,0,0,0,97,0,122,0,115,0,97,0,100,0,0,0,97,0,122,0,115,0,97,0,104,0,0,0,97,0,122,0,115,0,97,0,114,0,0,0,97,0,122,0,115,0,97,0,116,0,0,0,97,0,122,0,115,0,98,0,110,0,0,0,97,0,122,0,115,0,105,0,121,0,0,0,97,0,122,0,115,0,107,0,114,0,0,0,97,0,122,0,115,0,109,0,105,0,0,0,97,0,122,0,115,0,109,0,120,0,0,0,97,0,122,0,115,0,117,0,115,0,0,0,97,0,122,0,116,0,97,0,114,0,0,0,97,0,122,0,116,0,111,0,118,0,0,0,97,0,122,0,117,0,99,0,97,0,0,0,97,0,122,0,120,0,97,0,99,0,0,0,97,0,122,0,120,0,99,0,105,0,0,0,97,0,122,0,120,0,105,0,122,0,0,0,97,0,122,0,120,0,118,0,100,0,0,0,97,0,122,0,121,0,97,0,114,0,0,0,97,0,122,0,121,0,101,0,118,0,0,0,98,0,97,0,98,0,105,0,104,0,0,0,98,0,97,0,98,0,114,0,99,0,0,0,98,0,97,0,115,0,114,0,112,0,0,0,98,0,101,0,98,0,114,0,117,0,0,0,98,0,101,0,118,0,97,0,110,0,0,0,98,0,101,0,118,0,98,0,114,0,0,0,98,0,101,0,118,0,108,0,103,0,0,0,98,0,101,0,118,0,108,0,105,0,0,0,98,0,101,0,118,0,111,0,118,0,0,0,98,0,101,0,118,0,119,0,118,0,0,0,98,0,101,0,119,0,97,0,108,0,0,0,98,0,101,0,119,0,98,0,114,0,0,0,98,0,101,0,119,0,108,0,103,0,0,0,98,0,101,0,119,0,108,0,120,0,0,0,98,0,101,0,119,0,110,0,97,0,0,0,98,0,102,0,98,0,103,0,114,0,0,0,98,0,102,0,98,0,108,0,107,0,0,0,98,0,102,0,99,0,111,0,109,0,0,0,98,0,102,0,103,0,97,0,110,0,0,0,98,0,102,0,103,0,110,0,97,0,0,0,98,0,102,0,103,0,111,0,117,0,0,0,98,0,102,0,104,0,111,0,117,0,0,0,98,0,102,0,105,0,111,0,98,0,0,0,98,0,102,0,107,0,97,0,100,0,0,0,98,0,102,0,107,0,101,0,110,0,0,0,98,0,102,0,107,0,109,0,100,0,0,0,98,0,102,0,107,0,109,0,112,0,0,0,98,0,102,0,107,0,111,0,112,0,0,0,98,0,102,0,107,0,111,0,119,0,0,0,98,0,102,0,108,0,101,0,114,0,0,0,98,0,102,0,108,0,111,0,114,0,0,0,98,0,102,0,109,0,111,0,117,0,0,0,98,0,102,0,110,0,97,0,109,0,0,0,98,0,102,0,110,0,97,0,111,0,0,0,98,0,102,0,110,0,97,0,121,0,0,0,98,0,102,0,110,0,111,0,117,0,0,0,98,0,102,0,111,0,117,0,98,0,0,0,98,0,102,0,111,0,117,0,100,0,0,0,98,0,102,0,112,0,97,0,115,0,0,0,98,0,102,0,112,0,111,0,110,0,0,0,98,0,102,0,115,0,105,0,115,0,0,0,98,0,102,0,115,0,109,0,116,0,0,0,98,0,102,0,115,0,110,0,103,0,0,0,98,0,102,0,115,0,111,0,109,0,0,0,98,0,102,0,115,0,111,0,114,0,0,0,98,0,102,0,116,0,97,0,112,0,0,0,98,0,102,0,116,0,117,0,105,0,0,0,98,0,102,0,121,0,97,0,103,0,0,0,98,0,102,0,121,0,97,0,116,0,0,0,98,0,102,0,122,0,111,0,110,0,0,0,98,0,102,0,122,0,111,0,117,0,0,0,98,0,122,0,99,0,122,0,108,0,0,0,98,0,122,0,116,0,111,0,108,0,0,0,99,0,102,0,98,0,103,0,102,0,0,0,99,0,103,0,98,0,122,0,118,0,0,0,99,0,111,0,97,0,109,0,97,0,0,0,99,0,111,0,97,0,110,0,116,0,0,0,99,0,111,0,97,0,114,0,97,0,0,0,99,0,111,0,97,0,116,0,108,0,0,0,99,0,111,0,98,0,111,0,108,0,0,0,99,0,111,0,98,0,111,0,121,0,0,0,99,0,111,0,99,0,97,0,108,0,0,0,99,0,111,0,99,0,97,0,113,0,0,0,99,0,111,0,99,0,97,0,115,0,0,0,99,0,111,0,99,0,97,0,117,0,0,0,99,0,111,0,99,0,101,0,115,0,0,0,99,0,111,0,99,0,104,0,111,0,0,0,99,0,111,0,99,0,111,0,114,0,0,0,99,0,111,0,99,0,117,0,110,0,0,0,99,0,111,0,103,0,117,0,97,0,0,0,99,0,111,0,104,0,117,0,105,0,0,0,99,0,111,0,108,0,97,0,103,0,0,0,99,0,111,0,109,0,97,0,103,0,0,0,99,0,111,0,109,0,101,0,116,0,0,0,99,0,111,0,110,0,97,0,114,0,0,0,99,0,111,0,110,0,115,0,97,0,0,0,99,0,111,0,112,0,117,0,116,0,0,0,99,0,111,0,113,0,117,0,105,0,0,0,99,0,111,0,114,0,105,0,115,0,0,0,99,0,111,0,115,0,97,0,110,0,0,0,99,0,111,0,115,0,117,0,99,0,0,0,99,0,111,0,116,0,111,0,108,0,0,0,99,0,111,0,118,0,97,0,99,0,0,0,99,0,111,0,118,0,97,0,117,0,0,0,99,0,111,0,118,0,105,0,100,0,0,0,101,0,99,0,114,0,126,0,115,0,0,0,101,0,101,0,49,0,51,0,48,0,0,0,101,0,101,0,49,0,55,0,49,0,0,0,101,0,101,0,49,0,56,0,52,0,0,0,101,0,101,0,49,0,57,0,49,0,0,0,101,0,101,0,49,0,57,0,56,0,0,0,101,0,101,0,50,0,48,0,53,0,0,0,101,0,101,0,50,0,49,0,52,0,0,0,101,0,101,0,50,0,52,0,53,0,0,0,101,0,101,0,50,0,52,0,55,0,0,0,101,0,101,0,50,0,53,0,49,0,0,0,101,0,101,0,50,0,53,0,53,0,0,0,101,0,101,0,50,0,55,0,50,0,0,0,101,0,101,0,50,0,57,0,49,0,0,0,101,0,101,0,50,0,57,0,51,0,0,0,101,0,101,0,51,0,48,0,51,0,0,0,101,0,101,0,51,0,48,0,53,0,0,0,101,0,101,0,51,0,49,0,55,0,0,0,101,0,101,0,51,0,50,0,49,0,0,0,101,0,101,0,51,0,51,0,56,0,0,0,101,0,101,0,51,0,53,0,51,0,0,0,101,0,101,0,52,0,50,0,52,0,0,0,101,0,101,0,52,0,56,0,54,0,0,0,101,0,101,0,53,0,48,0,51,0,0,0,101,0,101,0,53,0,49,0,49,0,0,0,101,0,101,0,53,0,49,0,52,0,0,0,101,0,101,0,53,0,53,0,55,0,0,0,101,0,101,0,53,0,54,0,55,0,0,0,101,0,101,0,54,0,49,0,53,0,0,0,101,0,101,0,54,0,49,0,56,0,0,0,101,0,101,0,54,0,50,0,50,0,0,0,101,0,101,0,54,0,53,0,49,0,0,0,101,0,101,0,54,0,53,0,51,0,0,0,101,0,101,0,54,0,54,0,49,0,0,0,101,0,101,0,54,0,54,0,56,0,0,0,101,0,101,0,54,0,56,0,57,0,0,0,101,0,101,0,54,0,57,0,56,0,0,0,101,0,101,0,55,0,48,0,56,0,0,0,101,0,101,0,55,0,49,0,50,0,0,0,101,0,101,0,55,0,49,0,52,0,0,0,101,0,101,0,55,0,49,0,57,0,0,0,101,0,101,0,55,0,50,0,54,0,0,0,101,0,101,0,55,0,51,0,53,0,0,0,101,0,101,0,56,0,48,0,51,0,0,0,101,0,101,0,56,0,48,0,57,0,0,0,101,0,101,0,56,0,50,0,52,0,0,0,101,0,101,0,56,0,53,0,53,0,0,0,101,0,101,0,56,0,57,0,48,0,0,0,101,0,101,0,56,0,57,0,55,0,0,0,101,0,101,0,56,0,57,0,57,0,0,0,101,0,101,0,57,0,48,0,51,0,0,0,101,0,101,0,57,0,48,0,55,0,0,0,101,0,101,0,57,0,49,0,55,0,0,0,101,0,101,0,57,0,49,0,57,0,0,0,101,0,103,0,97,0,108,0,120,0,0,0,101,0,103,0,97,0,115,0,110,0,0,0,101,0,103,0,97,0,115,0,116,0,0,0,101,0,103,0,98,0,110,0,115,0,0,0,101,0,103,0,102,0,121,0,109,0,0,0,101,0,103,0,107,0,102,0,115,0,0,0,101,0,103,0,109,0,110,0,102,0,0,0,101,0,103,0,112,0,116,0,115,0,0,0,101,0,103,0,115,0,104,0,103,0,0,0,101,0,103,0,115,0,104,0,114,0,0,0,101,0,103,0,115,0,105,0,110,0,0,0,101,0,103,0,115,0,117,0,122,0,0,0,101,0,103,0,119,0,97,0,100,0,0,0,102,0,109,0,107,0,115,0,97,0,0,0,102,0,109,0,112,0,110,0,105,0,0,0,102,0,109,0,116,0,114,0,107,0,0,0,102,0,109,0,121,0,97,0,112,0,0,0,102,0,114,0,50,0,48,0,114,0,0,0,102,0,114,0,54,0,57,0,109,0,0,0,102,0,114,0,54,0,97,0,101,0,0,0,102,0,114,0,55,0,53,0,99,0,0,0,102,0,114,0,98,0,102,0,99,0,0,0,102,0,114,0,98,0,114,0,101,0,0,0,102,0,114,0,99,0,118,0,108,0,0,0,102,0,114,0,104,0,100,0,102,0,0,0,102,0,114,0,105,0,100,0,102,0,0,0,102,0,114,0,110,0,97,0,113,0,0,0,102,0,114,0,110,0,111,0,114,0,0,0,102,0,114,0,111,0,99,0,99,0,0,0,102,0,114,0,112,0,97,0,99,0,0,0,102,0,114,0,112,0,100,0,108,0,0,0,103,0,98,0,97,0,103,0,98,0,0,0,103,0,98,0,97,0,103,0,121,0,0,0,103,0,98,0,97,0,110,0,100,0,0,0,103,0,98,0,97,0,110,0,110,0,0,0,103,0,98,0,97,0,110,0,115,0,0,0,103,0,98,0,98,0,97,0,115,0,0,0,103,0,98,0,98,0,98,0,100,0,0,0,103,0,98,0,98,0,99,0,112,0,0,0,103,0,98,0,98,0,101,0,110,0,0,0,103,0,98,0,98,0,101,0,120,0,0,0,103,0,98,0,98,0,102,0,115,0,0,0,103,0,98,0,98,0,103,0,101,0,0,0,103,0,98,0,98,0,103,0,119,0,0,0,103,0,98,0,98,0,105,0,114,0,0,0,103,0,98,0,98,0,107,0,109,0,0,0,103,0,98,0,98,0,110,0,101,0,0,0,103,0,98,0,98,0,110,0,104,0,0,0,103,0,98,0,98,0,110,0,115,0,0,0,103,0,98,0,98,0,111,0,108,0,0,0,103,0,98,0,98,0,112,0,108,0,0,0,103,0,98,0,98,0,114,0,121,0,0,0,103,0,98,0,98,0,115,0,116,0,0,0,103,0,98,0,98,0,117,0,114,0,0,0,103,0,98,0,99,0,97,0,109,0,0,0,103,0,98,0,99,0,97,0,121,0,0,0,103,0,98,0,99,0,98,0,102,0,0,0,103,0,98,0,99,0,99,0,103,0,0,0,103,0,98,0,99,0,103,0,110,0,0,0,103,0,98,0,99,0,104,0,101,0,0,0,103,0,98,0,99,0,104,0,119,0,0,0,103,0,98,0,99,0,108,0,107,0,0,0,103,0,98,0,99,0,109,0,97,0,0,0,103,0,98,0,99,0,109,0,100,0,0,0,103,0,98,0,99,0,111,0,110,0,0,0,103,0,98,0,99,0,111,0,118,0,0,0,103,0,98,0,99,0,114,0,102,0,0,0,103,0,98,0,99,0,114,0,121,0,0,0,103,0,98,0,99,0,119,0,121,0,0,0,103,0,98,0,100,0,97,0,108,0,0,0,103,0,98,0,100,0,101,0,110,0,0,0,103,0,98,0,100,0,101,0,114,0,0,0,103,0,98,0,100,0,103,0,121,0,0,0,103,0,98,0,100,0,111,0,114,0,0,0,103,0,98,0,100,0,114,0,115,0,0,0,103,0,98,0,100,0,117,0,114,0,0,0,103,0,98,0,101,0,97,0,108,0,0,0,103,0,98,0,101,0,97,0,121,0,0,0,103,0,98,0,101,0,100,0,104,0,0,0,103,0,98,0,101,0,100,0,117,0,0,0,103,0,98,0,101,0,108,0,110,0,0,0,103,0,98,0,101,0,108,0,115,0,0,0,103,0,98,0,101,0,114,0,121,0,0,0,103,0,98,0,101,0,115,0,120,0,0,0,103,0,98,0,102,0,97,0,108,0,0,0,103,0,98,0,102,0,105,0,102,0,0,0,103,0,98,0,102,0,109,0,111,0,0,0,103,0,98,0,103,0,97,0,116,0,0,0,103,0,98,0,103,0,108,0,103,0,0,0,103,0,98,0,103,0,108,0,115,0,0,0,103,0,98,0,104,0,97,0,118,0,0,0,103,0,98,0,104,0,99,0,107,0,0,0,103,0,98,0,104,0,101,0,102,0,0,0,103,0,98,0,104,0,105,0,108,0,0,0,103,0,98,0,104,0,108,0,100,0,0,0,103,0,98,0,104,0,109,0,102,0,0,0,103,0,98,0,104,0,112,0,108,0,0,0,103,0,98,0,104,0,114,0,116,0,0,0,103,0,98,0,104,0,114,0,119,0,0,0,103,0,98,0,104,0,114,0,121,0,0,0,103,0,98,0,105,0,111,0,115,0,0,0,103,0,98,0,105,0,115,0,108,0,0,0,103,0,98,0,105,0,118,0,99,0,0,0,103,0,98,0,107,0,101,0,99,0,0,0,103,0,98,0,107,0,101,0,110,0,0,0,103,0,98,0,107,0,105,0,114,0,0,0,103,0,98,0,107,0,116,0,116,0,0,0,103,0,98,0,107,0,119,0,108,0,0,0,103,0,98,0,108,0,97,0,110,0,0,0,103,0,98,0,108,0,98,0,99,0,0,0,103,0,98,0,108,0,98,0,104,0,0,0,103,0,98,0,108,0,100,0,115,0,0,0,103,0,98,0,108,0,101,0,99,0,0,0,103,0,98,0,108,0,101,0,119,0,0,0,103,0,98,0,108,0,105,0,110,0,0,0,103,0,98,0,108,0,105,0,118,0,0,0,103,0,98,0,108,0,117,0,116,0,0,0,103,0,98,0,109,0,97,0,110,0,0,0,103,0,98,0,109,0,100,0,98,0,0,0,103,0,98,0,109,0,100,0,119,0,0,0,103,0,98,0,109,0,101,0,97,0,0,0,103,0,98,0,109,0,105,0,107,0,0,0,103,0,98,0,109,0,108,0,110,0,0,0,103,0,98,0,109,0,111,0,110,0,0,0,103,0,98,0,109,0,114,0,116,0,0,0,103,0,98,0,109,0,114,0,121,0,0,0,103,0,98,0,109,0,116,0,121,0,0,0,103,0,98,0,109,0,117,0,108,0,0,0,103,0,98,0,110,0,97,0,121,0,0,0,103,0,98,0,110,0,98,0,108,0,0,0,103,0,98,0,110,0,101,0,108,0,0,0,103,0,98,0,110,0,101,0,116,0,0,0,103,0,98,0,110,0,102,0,107,0,0,0,103,0,98,0,110,0,103,0,109,0,0,0,103,0,98,0,110,0,105,0,114,0,0,0,103,0,98,0,110,0,108,0,107,0,0,0,103,0,98,0,110,0,108,0,110,0,0,0,103,0,98,0,110,0,109,0,100,0,0,0,103,0,98,0,110,0,115,0,109,0,0,0,103,0,98,0,110,0,116,0,104,0,0,0,103,0,98,0,110,0,116,0,108,0,0,0,103,0,98,0,110,0,116,0,116,0,0,0,103,0,98,0,110,0,116,0,121,0,0,0,103,0,98,0,110,0,119,0,112,0,0,0,103,0,98,0,110,0,121,0,107,0,0,0,103,0,98,0,111,0,108,0,100,0,0,0,103,0,98,0,111,0,114,0,107,0,0,0,103,0,98,0,111,0,120,0,102,0,0,0,103,0,98,0,112,0,101,0,109,0,0,0,103,0,98,0,112,0,107,0,110,0,0,0,103,0,98,0,112,0,108,0,121,0,0,0,103,0,98,0,112,0,111,0,114,0,0,0,103,0,98,0,112,0,111,0,119,0,0,0,103,0,98,0,112,0,116,0,101,0,0,0,103,0,98,0,114,0,99,0,99,0,0,0,103,0,98,0,114,0,99,0,104,0,0,0,103,0,98,0,114,0,99,0,116,0,0,0,103,0,98,0,114,0,100,0,103,0,0,0,103,0,98,0,114,0,102,0,119,0,0,0,103,0,98,0,114,0,105,0,99,0,0,0,103,0,98,0,114,0,111,0,116,0,0,0,103,0,98,0,114,0,117,0,116,0,0,0,103,0,98,0,115,0,97,0,119,0,0,0,103,0,98,0,115,0,97,0,121,0,0,0,103,0,98,0,115,0,99,0,98,0,0,0,103,0,98,0,115,0,99,0,116,0,0,0,103,0,98,0,115,0,102,0,107,0,0,0,103,0,98,0,115,0,102,0,116,0,0,0,103,0,98,0,115,0,104,0,102,0,0,0,103,0,98,0,115,0,104,0,110,0,0,0,103,0,98,0,115,0,104,0,114,0,0,0,103,0,98,0,115,0,107,0,112,0,0,0,103,0,98,0,115,0,108,0,107,0,0,0,103,0,98,0,115,0,110,0,100,0,0,0,103,0,98,0,115,0,111,0,115,0,0,0,103,0,98,0,115,0,114,0,121,0,0,0,103,0,98,0,115,0,116,0,101,0,0,0,103,0,98,0,115,0,116,0,110,0,0,0,103,0,98,0,115,0,116,0,121,0,0,0,103,0,98,0,115,0,119,0,97,0,0,0,103,0,98,0,115,0,119,0,100,0,0,0,103,0,98,0,115,0,119,0,107,0,0,0,103,0,98,0,116,0,97,0,109,0,0,0,103,0,98,0,116,0,102,0,119,0,0,0,103,0,98,0,116,0,104,0,114,0,0,0,103,0,98,0,116,0,111,0,98,0,0,0,103,0,98,0,116,0,111,0,102,0,0,0,103,0,98,0,116,0,114,0,102,0,0,0,103,0,98,0,116,0,119,0,104,0,0,0,103,0,98,0,119,0,97,0,114,0,0,0,103,0,98,0,119,0,98,0,107,0,0,0,103,0,98,0,119,0,100,0,117,0,0,0,103,0,98,0,119,0,102,0,116,0,0,0,103,0,98,0,119,0,103,0,110,0,0,0,103,0,98,0,119,0,105,0,108,0,0,0,103,0,98,0,119,0,107,0,102,0,0,0,103,0,98,0,119,0,108,0,108,0,0,0,103,0,98,0,119,0,108,0,115,0,0,0,103,0,98,0,119,0,110,0,100,0,0,0,103,0,98,0,119,0,110,0,109,0,0,0,103,0,98,0,119,0,111,0,114,0,0,0,103,0,98,0,119,0,114,0,108,0,0,0,103,0,98,0,119,0,114,0,116,0,0,0,103,0,98,0,119,0,114,0,120,0,0,0,103,0,98,0,119,0,115,0,109,0,0,0,103,0,98,0,119,0,115,0,120,0,0,0,103,0,109,0,108,0,126,0,110,0,0,0,105,0,115,0,97,0,107,0,104,0,0,0,105,0,115,0,97,0,107,0,110,0,0,0,105,0,115,0,97,0,107,0,117,0,0,0,105,0,115,0,97,0,115,0,97,0,0,0,105,0,115,0,98,0,108,0,97,0,0,0,105,0,115,0,98,0,108,0,111,0,0,0,105,0,115,0,98,0,111,0,103,0,0,0,105,0,115,0,100,0,97,0,98,0,0,0,105,0,115,0,100,0,97,0,118,0,0,0,105,0,115,0,101,0,111,0,109,0,0,0,105,0,115,0,101,0,121,0,102,0,0,0,105,0,115,0,102,0,106,0,100,0,0,0,105,0,115,0,102,0,106,0,108,0,0,0,105,0,115,0,103,0,97,0,114,0,0,0,105,0,115,0,103,0,111,0,103,0,0,0,105,0,115,0,103,0,114,0,110,0,0,0,105,0,115,0,103,0,114,0,117,0,0,0,105,0,115,0,103,0,114,0,121,0,0,0,105,0,115,0,104,0,97,0,102,0,0,0,105,0,115,0,104,0,101,0,108,0,0,0,105,0,115,0,104,0,114,0,103,0,0,0,105,0,115,0,104,0,114,0,117,0,0,0,105,0,115,0,104,0,117,0,116,0,0,0,105,0,115,0,104,0,117,0,118,0,0,0,105,0,115,0,104,0,118,0,97,0,0,0,105,0,115,0,107,0,97,0,108,0,0,0,105,0,115,0,107,0,106,0,111,0,0,0,105,0,115,0,107,0,111,0,112,0,0,0,105,0,115,0,108,0,97,0,110,0,0,0,105,0,115,0,109,0,111,0,115,0,0,0,105,0,115,0,109,0,121,0,114,0,0,0,105,0,115,0,110,0,111,0,114,0,0,0,105,0,115,0,114,0,103,0,121,0,0,0,105,0,115,0,114,0,104,0,104,0,0,0,105,0,115,0,114,0,107,0,118,0,0,0,105,0,115,0,115,0,98,0,116,0,0,0,105,0,115,0,115,0,100,0,118,0,0,0,105,0,115,0,115,0,101,0,108,0,0,0,105,0,115,0,115,0,102,0,97,0,0,0,105,0,115,0,115,0,104,0,102,0,0,0,105,0,115,0,115,0,107,0,111,0,0,0,105,0,115,0,115,0,107,0,117,0,0,0,105,0,115,0,115,0,110,0,102,0,0,0,105,0,115,0,115,0,111,0,103,0,0,0,105,0,115,0,115,0,111,0,108,0,0,0,105,0,115,0,115,0,115,0,102,0,0,0,105,0,115,0,115,0,115,0,115,0,0,0,105,0,115,0,115,0,116,0,114,0,0,0,105,0,115,0,115,0,118,0,103,0,0,0,105,0,115,0,116,0,97,0,108,0,0,0,105,0,115,0,116,0,104,0,103,0,0,0,105,0,115,0,116,0,106,0,111,0,0,0,105,0,115,0,118,0,101,0,114,0,0,0,105,0,115,0,118,0,111,0,112,0,0,0,107,0,122,0,97,0,107,0,109,0,0,0,107,0,122,0,97,0,107,0,116,0,0,0,107,0,122,0,97,0,108,0,109,0,0,0,107,0,122,0,97,0,115,0,116,0,0,0,107,0,122,0,97,0,116,0,121,0,0,0,107,0,122,0,107,0,97,0,114,0,0,0,107,0,122,0,107,0,117,0,115,0,0,0,107,0,122,0,107,0,122,0,121,0,0,0,107,0,122,0,109,0,97,0,110,0,0,0,107,0,122,0,112,0,97,0,118,0,0,0,107,0,122,0,115,0,101,0,118,0,0,0,107,0,122,0,118,0,111,0,115,0,0,0,107,0,122,0,122,0,97,0,112,0,0,0,108,0,118,0,48,0,48,0,50,0,0,0,108,0,118,0,48,0,48,0,55,0,0,0,108,0,118,0,48,0,50,0,50,0,0,0,108,0,118,0,48,0,50,0,54,0,0,0,108,0,118,0,48,0,51,0,51,0,0,0,108,0,118,0,48,0,52,0,55,0,0,0,108,0,118,0,48,0,53,0,48,0,0,0,108,0,118,0,48,0,54,0,50,0,0,0,108,0,118,0,48,0,55,0,51,0,0,0,108,0,118,0,48,0,55,0,55,0,0,0,108,0,118,0,48,0,56,0,48,0,0,0,108,0,118,0,48,0,57,0,49,0,0,0,108,0,118,0,48,0,57,0,52,0,0,0,108,0,118,0,48,0,57,0,55,0,0,0,108,0,118,0,48,0,57,0,57,0,0,0,108,0,118,0,49,0,48,0,54,0,0,0,108,0,118,0,106,0,101,0,108,0,0,0,108,0,118,0,106,0,117,0,114,0,0,0,108,0,118,0,114,0,101,0,122,0,0,0,108,0,118,0,114,0,105,0,120,0,0,0,109,0,97,0,97,0,103,0,100,0,0,0,109,0,97,0,97,0,111,0,117,0,0,0,109,0,97,0,97,0,115,0,122,0,0,0,109,0,97,0,97,0,122,0,105,0,0,0,109,0,97,0,98,0,111,0,100,0,0,0,109,0,97,0,98,0,111,0,109,0,0,0,109,0,97,0,98,0,114,0,114,0,0,0,109,0,97,0,99,0,97,0,115,0,0,0,109,0,97,0,99,0,104,0,101,0,0,0,109,0,97,0,99,0,104,0,105,0,0,0,109,0,97,0,100,0,114,0,105,0,0,0,109,0,97,0,101,0,114,0,114,0,0,0,109,0,97,0,101,0,115,0,105,0,0,0,109,0,97,0,102,0,97,0,104,0,0,0,109,0,97,0,102,0,101,0,115,0,0,0,109,0,97,0,102,0,105,0,103,0,0,0,109,0,97,0,102,0,113,0,104,0,0,0,109,0,97,0,104,0,97,0,106,0,0,0,109,0,97,0,104,0,97,0,111,0,0,0,109,0,97,0,104,0,111,0,99,0,0,0,109,0,97,0,105,0,102,0,114,0,0,0,109,0,97,0,106,0,100,0,105,0,0,0,109,0,97,0,106,0,114,0,97,0,0,0,109,0,97,0,107,0,101,0,110,0,0,0,109,0,97,0,107,0,101,0,115,0,0,0,109,0,97,0,107,0,104,0,101,0,0,0,109,0,97,0,108,0,97,0,97,0,0,0,109,0,97,0,108,0,97,0,114,0,0,0,109,0,97,0,109,0,100,0,102,0,0,0,109,0,97,0,109,0,101,0,100,0,0,0,109,0,97,0,109,0,101,0,107,0,0,0,109,0,97,0,109,0,105,0,100,0,0,0,109,0,97,0,109,0,111,0,104,0,0,0,109,0,97,0,109,0,111,0,117,0,0,0,109,0,97,0,110,0,111,0,117,0,0,0,109,0,97,0,111,0,117,0,97,0,0,0,109,0,97,0,111,0,117,0,100,0,0,0,109,0,97,0,111,0,117,0,106,0,0,0,109,0,97,0,111,0,117,0,122,0,0,0,109,0,97,0,114,0,97,0,98,0,0,0,109,0,97,0,114,0,101,0,104,0,0,0,109,0,97,0,115,0,97,0,102,0,0,0,109,0,97,0,115,0,97,0,108,0,0,0,109,0,97,0,115,0,105,0,98,0,0,0,109,0,97,0,115,0,105,0,102,0,0,0,109,0,97,0,115,0,107,0,104,0,0,0,109,0,97,0,116,0,97,0,102,0,0,0,109,0,97,0,116,0,97,0,105,0,0,0,109,0,97,0,116,0,97,0,111,0,0,0,109,0,97,0,116,0,97,0,114,0,0,0,109,0,97,0,116,0,97,0,116,0,0,0,109,0,97,0,116,0,101,0,116,0,0,0,109,0,97,0,116,0,105,0,110,0,0,0,109,0,97,0,116,0,105,0,122,0,0,0,109,0,97,0,116,0,110,0,103,0,0,0,109,0,97,0,116,0,110,0,116,0,0,0,109,0,97,0,121,0,117,0,115,0,0,0,109,0,97,0,122,0,97,0,103,0,0,0,109,0,104,0,97,0,114,0,110,0,0,0,109,0,104,0,97,0,117,0,114,0,0,0,109,0,104,0,101,0,110,0,105,0,0,0,109,0,104,0,106,0,97,0,98,0,0,0,109,0,104,0,106,0,97,0,108,0,0,0,109,0,104,0,107,0,119,0,97,0,0,0,109,0,104,0,108,0,97,0,101,0,0,0,109,0,104,0,108,0,105,0,98,0,0,0,109,0,104,0,108,0,105,0,107,0,0,0,109,0,104,0,109,0,97,0,106,0,0,0,109,0,104,0,109,0,97,0,108,0,0,0,109,0,104,0,109,0,101,0,106,0,0,0,109,0,104,0,109,0,105,0,108,0,0,0,109,0,104,0,110,0,109,0,117,0,0,0,109,0,104,0,114,0,111,0,110,0,0,0,109,0,104,0,117,0,106,0,97,0,0,0,109,0,104,0,119,0,116,0,104,0,0,0,109,0,104,0,119,0,116,0,106,0,0,0,109,0,107,0,51,0,48,0,49,0,0,0,109,0,108,0,98,0,107,0,111,0,0,0,109,0,110,0,48,0,51,0,55,0,0,0,109,0,110,0,48,0,52,0,49,0,0,0,109,0,110,0,48,0,52,0,51,0,0,0,109,0,110,0,48,0,52,0,57,0,0,0,109,0,110,0,48,0,53,0,49,0,0,0,109,0,110,0,48,0,53,0,51,0,0,0,109,0,110,0,48,0,53,0,53,0,0,0,109,0,110,0,48,0,53,0,55,0,0,0,109,0,110,0,48,0,53,0,57,0,0,0,109,0,110,0,48,0,54,0,55,0,0,0,109,0,110,0,48,0,54,0,57,0,0,0,109,0,110,0,48,0,55,0,49,0,0,0,109,0,110,0,48,0,55,0,51,0,0,0,109,0,118,0,109,0,108,0,101,0,0,0,109,0,120,0,97,0,103,0,117,0,0,0,109,0,120,0,98,0,99,0,110,0,0,0,109,0,120,0,98,0,99,0,115,0,0,0,109,0,120,0,99,0,97,0,109,0,0,0,109,0,120,0,99,0,104,0,104,0,0,0,109,0,120,0,99,0,104,0,112,0,0,0,109,0,120,0,99,0,109,0,120,0,0,0,109,0,120,0,99,0,111,0,108,0,0,0,109,0,120,0,100,0,117,0,114,0,0,0,109,0,120,0,103,0,117,0,97,0,0,0,109,0,120,0,106,0,97,0,108,0,0,0,109,0,120,0,109,0,101,0,120,0,0,0,109,0,120,0,109,0,105,0,99,0,0,0,109,0,120,0,109,0,111,0,114,0,0,0,109,0,120,0,110,0,97,0,121,0,0,0,109,0,120,0,111,0,97,0,120,0,0,0,109,0,120,0,112,0,117,0,101,0,0,0,109,0,120,0,113,0,117,0,101,0,0,0,109,0,120,0,114,0,111,0,111,0,0,0,109,0,120,0,115,0,105,0,110,0,0,0,109,0,120,0,115,0,108,0,112,0,0,0,109,0,120,0,115,0,111,0,110,0,0,0,109,0,120,0,116,0,97,0,98,0,0,0,109,0,120,0,116,0,108,0,97,0,0,0,109,0,120,0,121,0,117,0,99,0,0,0,109,0,120,0,122,0,97,0,99,0,0,0,109,0,122,0,109,0,112,0,109,0,0,0,110,0,122,0,97,0,117,0,107,0,0,0,110,0,122,0,99,0,97,0,110,0,0,0,110,0,122,0,99,0,105,0,116,0,0,0,110,0,122,0,103,0,105,0,115,0,0,0,110,0,122,0,104,0,107,0,98,0,0,0,110,0,122,0,109,0,98,0,104,0,0,0,110,0,122,0,109,0,119,0,116,0,0,0,110,0,122,0,110,0,115,0,110,0,0,0,110,0,122,0,110,0,116,0,108,0,0,0,110,0,122,0,111,0,116,0,97,0,0,0,110,0,122,0,115,0,116,0,108,0,0,0,110,0,122,0,116,0,97,0,115,0,0,0,110,0,122,0,116,0,107,0,105,0,0,0,110,0,122,0,119,0,116,0,99,0,0,0,111,0,116,0,104,0,101,0,114,0,0,0,112,0,101,0,97,0,109,0,97,0,0,0,112,0,101,0,97,0,110,0,99,0,0,0,112,0,101,0,97,0,112,0,117,0,0,0,112,0,101,0,97,0,114,0,101,0,0,0,112,0,101,0,97,0,121,0,97,0,0,0,112,0,101,0,99,0,97,0,106,0,0,0,112,0,101,0,99,0,97,0,108,0,0,0,112,0,101,0,99,0,117,0,115,0,0,0,112,0,101,0,104,0,117,0,99,0,0,0,112,0,101,0,104,0,117,0,118,0,0,0,112,0,101,0,105,0,99,0,97,0,0,0,112,0,101,0,106,0,117,0,110,0,0,0,112,0,101,0,108,0,105,0,109,0,0,0,112,0,101,0,108,0,109,0,97,0,0,0,112,0,101,0,108,0,111,0,114,0,0,0,112,0,101,0,109,0,100,0,100,0,0,0,112,0,101,0,109,0,111,0,113,0,0,0,112,0,101,0,112,0,97,0,115,0,0,0,112,0,101,0,112,0,117,0,110,0,0,0,112,0,101,0,115,0,97,0,109,0,0,0,112,0,101,0,116,0,97,0,99,0,0,0,112,0,101,0,117,0,99,0,97,0,0,0,112,0,103,0,99,0,112,0,107,0,0,0,112,0,103,0,99,0,112,0,109,0,0,0,112,0,103,0,101,0,104,0,103,0,0,0,112,0,103,0,101,0,112,0,119,0,0,0,112,0,103,0,101,0,115,0,119,0,0,0,112,0,103,0,103,0,112,0,107,0,0,0,112,0,103,0,104,0,108,0,97,0,0,0,112,0,103,0,106,0,119,0,107,0,0,0,112,0,103,0,109,0,98,0,97,0,0,0,112,0,103,0,109,0,114,0,108,0,0,0,112,0,103,0,110,0,99,0,100,0,0,0,112,0,103,0,110,0,105,0,107,0,0,0,112,0,103,0,110,0,112,0,112,0,0,0,112,0,103,0,110,0,115,0,98,0,0,0,112,0,103,0,115,0,97,0,110,0,0,0,112,0,103,0,115,0,104,0,109,0,0,0,112,0,103,0,119,0,98,0,107,0,0,0,112,0,103,0,119,0,104,0,109,0,0,0,112,0,103,0,119,0,112,0,100,0,0,0,112,0,104,0,97,0,98,0,114,0,0,0,112,0,104,0,97,0,103,0,110,0,0,0,112,0,104,0,97,0,103,0,115,0,0,0,112,0,104,0,97,0,107,0,108,0,0,0,112,0,104,0,97,0,108,0,98,0,0,0,112,0,104,0,97,0,110,0,116,0,0,0,112,0,104,0,97,0,112,0,97,0,0,0,112,0,104,0,97,0,117,0,114,0,0,0,112,0,104,0,98,0,97,0,110,0,0,0,112,0,104,0,98,0,97,0,115,0,0,0,112,0,104,0,98,0,101,0,110,0,0,0,112,0,104,0,98,0,105,0,108,0,0,0,112,0,104,0,98,0,116,0,103,0,0,0,112,0,104,0,98,0,116,0,110,0,0,0,112,0,104,0,99,0,97,0,103,0,0,0,112,0,104,0,99,0,97,0,112,0,0,0,112,0,104,0,99,0,97,0,118,0,0,0,112,0,104,0,99,0,111,0,109,0,0,0,112,0,104,0,100,0,97,0,115,0,0,0,112,0,104,0,100,0,97,0,118,0,0,0,112,0,104,0,100,0,105,0,110,0,0,0,112,0,104,0,100,0,118,0,111,0,0,0,112,0,104,0,101,0,97,0,115,0,0,0,112,0,104,0,105,0,108,0,110,0,0,0,112,0,104,0,105,0,115,0,97,0,0,0,112,0,104,0,107,0,97,0,108,0,0,0,112,0,104,0,108,0,97,0,103,0,0,0,112,0,104,0,108,0,97,0,110,0,0,0,112,0,104,0,108,0,97,0,115,0,0,0,112,0,104,0,108,0,101,0,121,0,0,0,112,0,104,0,108,0,117,0,110,0,0,0,112,0,104,0,109,0,97,0,100,0,0,0,112,0,104,0,109,0,97,0,103,0,0,0,112,0,104,0,109,0,97,0,115,0,0,0,112,0,104,0,109,0,100,0,99,0,0,0,112,0,104,0,109,0,100,0,114,0,0,0,112,0,104,0,109,0,111,0,117,0,0,0,112,0,104,0,109,0,115,0,99,0,0,0,112,0,104,0,109,0,115,0,114,0,0,0,112,0,104,0,110,0,99,0,111,0,0,0,112,0,104,0,110,0,101,0,99,0,0,0,112,0,104,0,110,0,101,0,114,0,0,0,112,0,104,0,110,0,115,0,97,0,0,0,112,0,104,0,110,0,117,0,101,0,0,0,112,0,104,0,110,0,117,0,118,0,0,0,112,0,104,0,112,0,108,0,119,0,0,0,112,0,104,0,113,0,117,0,101,0,0,0,112,0,104,0,113,0,117,0,105,0,0,0,112,0,104,0,114,0,105,0,122,0,0,0,112,0,104,0,114,0,111,0,109,0,0,0,112,0,104,0,115,0,97,0,114,0,0,0,112,0,104,0,115,0,99,0,111,0,0,0,112,0,104,0,115,0,105,0,103,0,0,0,112,0,104,0,115,0,108,0,117,0,0,0,112,0,104,0,115,0,111,0,114,0,0,0,112,0,104,0,115,0,117,0,110,0,0,0,112,0,104,0,115,0,117,0,114,0,0,0,112,0,104,0,116,0,97,0,119,0,0,0,112,0,104,0,119,0,115,0,97,0,0,0,112,0,104,0,122,0,97,0,110,0,0,0,112,0,104,0,122,0,109,0,98,0,0,0,112,0,104,0,122,0,115,0,105,0,0,0,112,0,115,0,98,0,116,0,104,0,0,0,112,0,115,0,100,0,101,0,98,0,0,0,112,0,115,0,104,0,98,0,110,0,0,0,112,0,115,0,106,0,114,0,104,0,0,0,112,0,115,0,107,0,121,0,115,0,0,0,112,0,115,0,110,0,98,0,115,0,0,0,112,0,115,0,110,0,103,0,122,0,0,0,112,0,115,0,113,0,113,0,97,0,0,0,112,0,115,0,114,0,98,0,104,0,0,0,112,0,115,0,114,0,102,0,104,0,0,0,112,0,115,0,115,0,108,0,116,0,0,0,112,0,115,0,116,0,98,0,115,0,0,0,112,0,115,0,116,0,107,0,109,0,0,0,112,0,119,0,50,0,50,0,52,0,0,0,112,0,119,0,51,0,53,0,48,0,0,0,112,0,119,0,51,0,55,0,48,0,0,0,112,0,121,0,97,0,115,0,117,0,0,0,114,0,117,0,97,0,108,0,116,0,0,0,114,0,117,0,97,0,109,0,117,0,0,0,114,0,117,0,97,0,115,0,116,0,0,0,114,0,117,0,98,0,101,0,108,0,0,0,114,0,117,0,98,0,114,0,121,0,0,0,114,0,117,0,99,0,104,0,101,0,0,0,114,0,117,0,99,0,104,0,117,0,0,0,114,0,117,0,105,0,118,0,97,0,0,0,114,0,117,0,107,0,101,0,109,0,0,0,114,0,117,0,107,0,103,0,100,0,0,0,114,0,117,0,107,0,104,0,97,0,0,0,114,0,117,0,107,0,104,0,109,0,0,0,114,0,117,0,107,0,105,0,114,0,0,0,114,0,117,0,107,0,108,0,117,0,0,0,114,0,117,0,107,0,111,0,115,0,0,0,114,0,117,0,107,0,114,0,115,0,0,0,114,0,117,0,107,0,121,0,97,0,0,0,114,0,117,0,108,0,101,0,110,0,0,0,114,0,117,0,108,0,105,0,112,0,0,0,114,0,117,0,109,0,97,0,103,0,0,0,114,0,117,0,109,0,111,0,115,0,0,0,114,0,117,0,109,0,111,0,119,0,0,0,114,0,117,0,109,0,117,0,114,0,0,0,114,0,117,0,110,0,101,0,110,0,0,0,114,0,117,0,110,0,103,0,114,0,0,0,114,0,117,0,110,0,105,0,122,0,0,0,114,0,117,0,110,0,118,0,115,0,0,0,114,0,117,0,111,0,109,0,115,0,0,0,114,0,117,0,111,0,114,0,108,0,0,0,114,0,117,0,112,0,101,0,114,0,0,0,114,0,117,0,112,0,110,0,122,0,0,0,114,0,117,0,112,0,114,0,105,0,0,0,114,0,117,0,112,0,115,0,107,0,0,0,114,0,117,0,114,0,111,0,115,0,0,0,114,0,117,0,114,0,121,0,97,0,0,0,114,0,117,0,115,0,97,0,109,0,0,0,114,0,117,0,115,0,112,0,101,0,0,0,114,0,117,0,115,0,116,0,97,0,0,0,114,0,117,0,116,0,97,0,109,0,0,0,114,0,117,0,116,0,111,0,109,0,0,0,114,0,117,0,116,0,117,0,108,0,0,0,114,0,117,0,116,0,118,0,101,0,0,0,114,0,117,0,116,0,121,0,117,0,0,0,114,0,117,0,117,0,108,0,121,0,0,0,114,0,117,0,118,0,103,0,103,0,0,0,114,0,117,0,118,0,108,0,97,0,0,0,114,0,117,0,118,0,108,0,103,0,0,0,114,0,117,0,121,0,97,0,110,0,0,0,114,0,117,0,121,0,101,0,118,0,0,0,116,0,116,0,97,0,114,0,105,0,0,0,116,0,116,0,99,0,104,0,97,0,0,0,116,0,116,0,99,0,116,0,116,0,0,0,116,0,116,0,100,0,109,0,110,0,0,0,116,0,116,0,109,0,114,0,99,0,0,0,116,0,116,0,112,0,101,0,100,0,0,0,116,0,116,0,112,0,111,0,115,0,0,0,116,0,116,0,112,0,114,0,116,0,0,0,116,0,116,0,112,0,116,0,102,0,0,0,116,0,116,0,115,0,103,0,101,0,0,0,116,0,116,0,115,0,105,0,112,0,0,0,116,0,116,0,115,0,106,0,108,0,0,0,116,0,116,0,116,0,111,0,98,0,0,0,116,0,116,0,116,0,117,0,112,0,0,0,116,0,118,0,102,0,117,0,110,0,0,0,116,0,118,0,110,0,105,0,116,0,0,0,116,0,118,0,110,0,107,0,102,0,0,0,116,0,118,0,110,0,107,0,108,0,0,0,116,0,118,0,110,0,109,0,97,0,0,0,116,0,118,0,110,0,109,0,103,0,0,0,116,0,118,0,110,0,117,0,105,0,0,0,116,0,118,0,118,0,97,0,105,0,0,0,116,0,119,0,99,0,104,0,97,0,0,0,116,0,119,0,99,0,121,0,105,0,0,0,116,0,119,0,99,0,121,0,113,0,0,0,116,0,119,0,104,0,115,0,122,0,0,0,116,0,119,0,104,0,117,0,97,0,0,0,116,0,119,0,105,0,108,0,97,0,0,0,116,0,119,0,107,0,101,0,101,0,0,0,116,0,119,0,107,0,104,0,104,0,0,0,116,0,119,0,107,0,105,0,110,0,0,0,116,0,119,0,108,0,105,0,101,0,0,0,116,0,119,0,109,0,105,0,97,0,0,0,116,0,119,0,110,0,119,0,116,0,0,0,116,0,119,0,112,0,101,0,110,0,0,0,116,0,119,0,112,0,105,0,102,0,0,0,116,0,119,0,116,0,97,0,111,0,0,0,116,0,119,0,116,0,112,0,101,0,0,0,116,0,119,0,116,0,116,0,116,0,0,0,116,0,119,0,116,0,120,0,103,0,0,0,116,0,119,0,121,0,117,0,110,0,0,0,118,0,117,0,109,0,97,0,112,0,0,0,118,0,117,0,112,0,97,0,109,0,0,0,118,0,117,0,115,0,97,0,109,0,0,0,118,0,117,0,116,0,111,0,98,0,0,0,122,0,97,0,107,0,122,0,110,0,0,0,99,0,122,0,50,0,48,0,52,0,0,0,99,0,122,0,51,0,49,0,50,0,0,0,99,0,122,0,51,0,49,0,54,0,0,0,99,0,122,0,53,0,51,0,49,0,0,0,99,0,122,0,53,0,51,0,50,0,0,0,99,0,122,0,53,0,51,0,52,0,0,0,99,0,122,0,54,0,52,0,50,0,0,0,99,0,122,0,55,0,50,0,52,0,0,0,99,0,122,0,56,0,48,0,52,0,0,0,101,0,101,0,52,0,52,0,50,0,0,0,101,0,101,0,55,0,57,0,50,0,0,0,102,0,114,0,108,0,114,0,101,0,0,0,103,0,97,0,108,0,108,0,111,0,0,0,103,0,98,0,97,0,114,0,109,0,0,0,103,0,98,0,98,0,100,0,102,0,0,0,103,0,98,0,100,0,103,0,110,0,0,0,103,0,98,0,100,0,114,0,121,0,0,0,103,0,98,0,101,0,110,0,102,0,0,0,103,0,98,0,102,0,101,0,114,0,0,0,103,0,98,0,108,0,115,0,98,0,0,0,103,0,98,0,115,0,116,0,115,0,0,0,105,0,115,0,100,0,106,0,117,0,0,0,105,0,115,0,115,0,101,0,121,0,0,0,105,0,115,0,115,0,107,0,103,0,0,0,108,0,118,0,48,0,49,0,53,0,0,0,108,0,118,0,48,0,49,0,54,0,0,0,108,0,118,0,48,0,52,0,48,0,0,0,108,0,118,0,48,0,53,0,49,0,0,0,108,0,118,0,48,0,53,0,51,0,0,0,108,0,118,0,48,0,54,0,56,0,0,0,108,0,118,0,48,0,57,0,48,0,0,0,108,0,118,0,49,0,49,0,50,0,0,0,109,0,107,0,51,0,48,0,52,0,0,0,109,0,107,0,51,0,48,0,56,0,0,0,109,0,107,0,53,0,48,0,56,0,0,0,109,0,107,0,55,0,48,0,51,0,0,0,109,0,107,0,55,0,48,0,53,0,0,0,109,0,107,0,56,0,49,0,48,0,0,0,109,0,110,0,48,0,54,0,52,0,0,0,111,0,115,0,111,0,106,0,115,0,0,0,112,0,115,0,106,0,101,0,110,0,0,0,112,0,119,0,50,0,50,0,54,0,0,0,115,0,105,0,48,0,48,0,51,0,0,0,115,0,105,0,48,0,48,0,56,0,0,0,115,0,105,0,48,0,49,0,50,0,0,0,115,0,105,0,48,0,50,0,48,0,0,0,115,0,105,0,48,0,50,0,52,0,0,0,115,0,105,0,48,0,50,0,56,0,0,0,115,0,105,0,48,0,51,0,49,0,0,0,115,0,105,0,48,0,51,0,50,0,0,0,115,0,105,0,48,0,51,0,52,0,0,0,115,0,105,0,48,0,51,0,54,0,0,0,115,0,105,0,48,0,52,0,52,0,0,0,115,0,105,0,48,0,52,0,56,0,0,0,115,0,105,0,48,0,54,0,48,0,0,0,115,0,105,0,48,0,55,0,48,0,0,0,115,0,105,0,48,0,55,0,50,0,0,0,115,0,105,0,48,0,55,0,52,0,0,0,115,0,105,0,48,0,55,0,54,0,0,0,115,0,105,0,48,0,56,0,52,0,0,0,115,0,105,0,48,0,56,0,54,0,0,0,115,0,105,0,48,0,57,0,50,0,0,0,115,0,105,0,48,0,57,0,54,0,0,0,115,0,105,0,49,0,50,0,48,0,0,0,115,0,105,0,49,0,52,0,48,0,0,0,115,0,105,0,49,0,52,0,50,0,0,0,115,0,105,0,49,0,52,0,51,0,0,0,115,0,105,0,49,0,52,0,56,0,0,0,115,0,105,0,49,0,53,0,49,0,0,0,115,0,105,0,49,0,53,0,52,0,0,0,115,0,105,0,49,0,53,0,53,0,0,0,115,0,105,0,49,0,53,0,56,0,0,0,115,0,105,0,49,0,54,0,50,0,0,0,115,0,105,0,49,0,54,0,54,0,0,0,115,0,105,0,49,0,55,0,53,0,0,0,115,0,105,0,49,0,55,0,56,0,0,0,115,0,105,0,49,0,56,0,52,0,0,0,115,0,105,0,49,0,57,0,54,0,0,0,117,0,103,0,50,0,51,0,48,0,0,0,117,0,103,0,50,0,51,0,49,0,0,0,117,0,103,0,50,0,51,0,51,0,0,0,117,0,103,0,50,0,51,0,52,0,0,0,117,0,103,0,51,0,51,0,52,0,0,0,117,0,103,0,51,0,51,0,54,0,0,0,117,0,103,0,52,0,50,0,56,0,0,0,109,0,97,0,115,0,105,0,107,0,0,0,115,0,111,0,116,0,97,0,118,0,0,0,48,0,48,0,49,0,126,0,51,0,0,0,48,0,49,0,51,0,126,0,53,0,0,0,48,0,51,0,52,0,126,0,53,0,0,0,48,0,53,0,51,0,126,0,52,0,0,0,49,0,52,0,50,0,126,0,51,0,0,0,49,0,53,0,48,0,126,0,49,0,0,0,65,0,82,0,76,0,126,0,77,0,0,0,66,0,71,0,76,0,126,0,77,0,0,0,66,0,82,0,66,0,126,0,67,0,0,0,67,0,76,0,69,0,126,0,70,0,0,0,69,0,83,0,65,0,126,0,66,0,0,0,72,0,75,0,43,0,77,0,79,0,0,0,88,0,66,0,65,0,126,0,68,0,0,0,89,0,85,0,77,0,126,0,78,0,0,0,97,0,97,0,97,0,126,0,105,0,0,0,97,0,97,0,107,0,126,0,108,0,0,0,97,0,97,0,110,0,126,0,113,0,0,0,97,0,97,0,115,0,126,0,120,0,0,0,97,0,98,0,97,0,126,0,106,0,0,0,97,0,98,0,108,0,126,0,122,0,0,0,97,0,99,0,97,0,126,0,98,0,0,0,97,0,99,0,100,0,126,0,102,0,0,0,97,0,99,0,104,0,126,0,105,0,0,0,97,0,99,0,107,0,126,0,110,0,0,0,97,0,99,0,112,0,126,0,122,0,0,0,97,0,100,0,97,0,126,0,98,0,0,0,97,0,100,0,100,0,126,0,106,0,0,0,97,0,100,0,110,0,126,0,111,0,0,0,97,0,100,0,113,0,126,0,117,0,0,0,97,0,100,0,119,0,126,0,122,0,0,0,97,0,101,0,97,0,126,0,101,0,0,0,97,0,101,0,107,0,126,0,110,0,0,0,97,0,101,0,113,0,126,0,115,0,0,0,97,0,101,0,121,0,126,0,122,0,0,0,97,0,102,0,97,0,126,0,98,0,0,0,97,0,102,0,98,0,97,0,108,0,0,0,97,0,102,0,98,0,97,0,109,0,0,0,97,0,102,0,100,0,126,0,101,0,0,0,97,0,102,0,103,0,126,0,105,0,0,0,97,0,102,0,110,0,126,0,112,0,0,0,97,0,102,0,115,0,126,0,117,0,0,0,97,0,103,0,97,0,126,0,111,0,0,0,97,0,103,0,113,0,126,0,122,0,0,0,97,0,104,0,97,0,126,0,98,0,0,0,97,0,104,0,103,0,126,0,105,0,0,0,97,0,104,0,107,0,126,0,112,0,0,0,97,0,104,0,114,0,126,0,116,0,0,0,97,0,105,0,97,0,126,0,114,0,0,0,97,0,105,0,119,0,126,0,121,0,0,0,97,0,106,0,116,0,126,0,117,0,0,0,97,0,107,0,98,0,126,0,109,0,0,0,97,0,107,0,111,0,126,0,122,0,0,0,97,0,108,0,99,0,126,0,114,0,0,0,97,0,108,0,116,0,126,0,122,0,0,0,97,0,108,0,117,0,107,0,117,0,0,0,97,0,109,0,97,0,126,0,99,0,0,0,97,0,109,0,101,0,126,0,103,0,0,0,97,0,109,0,105,0,126,0,122,0,0,0,97,0,110,0,97,0,126,0,122,0,0,0,97,0,111,0,97,0,126,0,103,0,0,0,97,0,111,0,99,0,110,0,110,0,0,0,97,0,111,0,99,0,110,0,111,0,0,0,97,0,111,0,105,0,126,0,110,0,0,0,97,0,111,0,114,0,126,0,117,0,0,0,97,0,112,0,97,0,126,0,122,0,0,0,97,0,113,0,99,0,126,0,100,0,0,0,97,0,113,0,107,0,126,0,110,0,0,0,97,0,114,0,97,0,126,0,104,0,0,0,97,0,114,0,99,0,126,0,101,0,0,0,97,0,114,0,104,0,126,0,108,0,0,0,97,0,114,0,106,0,126,0,110,0,0,0,97,0,114,0,110,0,126,0,122,0,0,0,97,0,114,0,112,0,126,0,122,0,0,0,97,0,115,0,97,0,126,0,99,0,0,0,97,0,115,0,101,0,126,0,108,0,0,0,97,0,115,0,110,0,126,0,122,0,0,0,97,0,116,0,49,0,126,0,57,0,0,0,97,0,116,0,97,0,126,0,101,0,0,0,97,0,116,0,103,0,126,0,122,0,0,0,97,0,117,0,97,0,126,0,100,0,0,0,97,0,117,0,102,0,126,0,117,0,0,0,97,0,117,0,119,0,126,0,122,0,0,0,97,0,118,0,107,0,126,0,111,0,0,0,97,0,118,0,115,0,126,0,118,0,0,0,97,0,119,0,97,0,126,0,101,0,0,0,97,0,119,0,103,0,126,0,105,0,0,0,97,0,119,0,109,0,126,0,111,0,0,0,97,0,119,0,114,0,126,0,121,0,0,0,97,0,120,0,107,0,126,0,109,0,0,0,97,0,121,0,97,0,126,0,101,0,0,0,97,0,121,0,103,0,126,0,105,0,0,0,97,0,121,0,107,0,126,0,108,0,0,0,97,0,121,0,110,0,126,0,113,0,0,0,97,0,121,0,115,0,126,0,117,0,0,0,97,0,121,0,120,0,126,0,121,0,0,0,97,0,122,0,97,0,126,0,100,0,0,0,97,0,122,0,109,0,126,0,111,0,0,0,97,0,122,0,115,0,97,0,107,0,0,0,97,0,122,0,115,0,97,0,108,0,0,0,97,0,122,0,122,0,97,0,113,0,0,0,98,0,97,0,97,0,126,0,106,0,0,0,98,0,97,0,110,0,126,0,112,0,0,0,98,0,97,0,114,0,108,0,97,0,0,0,98,0,97,0,114,0,126,0,121,0,0,0,98,0,98,0,97,0,126,0,121,0,0,0,98,0,99,0,97,0,126,0,98,0,0,0,98,0,99,0,100,0,126,0,107,0,0,0,98,0,99,0,109,0,126,0,119,0,0,0,98,0,99,0,121,0,126,0,122,0,0,0,98,0,100,0,97,0,126,0,104,0,0,0,98,0,100,0,97,0,126,0,122,0,0,0,98,0,101,0,97,0,126,0,107,0,0,0,98,0,101,0,111,0,126,0,122,0,0,0,98,0,102,0,97,0,126,0,117,0,0,0,98,0,102,0,98,0,97,0,108,0,0,0,98,0,102,0,98,0,97,0,109,0,0,0,98,0,102,0,98,0,97,0,110,0,0,0,98,0,102,0,107,0,111,0,115,0,0,0,98,0,102,0,107,0,111,0,116,0,0,0,98,0,102,0,119,0,126,0,122,0,0,0,98,0,103,0,97,0,126,0,103,0,0,0,98,0,103,0,105,0,126,0,108,0,0,0,98,0,103,0,110,0,126,0,122,0,0,0,98,0,104,0,97,0,126,0,106,0,0,0,98,0,104,0,108,0,126,0,122,0,0,0,98,0,105,0,97,0,126,0,98,0,0,0,98,0,105,0,100,0,126,0,103,0,0,0,98,0,105,0,107,0,126,0,114,0,0,0,98,0,105,0,115,0,107,0,101,0,0,0,98,0,105,0,116,0,126,0,122,0,0,0,98,0,106,0,97,0,126,0,99,0,0,0,98,0,106,0,101,0,126,0,112,0,0,0,98,0,106,0,114,0,126,0,122,0,0,0,98,0,107,0,99,0,126,0,100,0,0,0,98,0,107,0,102,0,126,0,122,0,0,0,98,0,108,0,97,0,126,0,102,0,0,0,98,0,108,0,104,0,126,0,116,0,0,0,98,0,108,0,118,0,126,0,122,0,0,0,98,0,109,0,97,0,126,0,120,0,0,0,98,0,110,0,97,0,126,0,103,0,0,0,98,0,110,0,105,0,126,0,122,0,0,0,98,0,111,0,97,0,126,0,98,0,0,0,98,0,111,0,98,0,126,0,99,0,0,0,98,0,111,0,101,0,126,0,114,0,0,0,98,0,111,0,110,0,126,0,112,0,0,0,98,0,111,0,111,0,110,0,116,0,0,0,98,0,111,0,115,0,126,0,116,0,0,0,98,0,111,0,116,0,126,0,122,0,0,0,98,0,112,0,99,0,126,0,101,0,0,0,98,0,112,0,103,0,126,0,122,0,0,0,98,0,113,0,97,0,126,0,100,0,0,0,98,0,113,0,102,0,126,0,122,0,0,0,98,0,114,0,97,0,126,0,100,0,0,0,98,0,114,0,102,0,126,0,122,0,0,0,98,0,115,0,97,0,126,0,99,0,0,0,98,0,115,0,101,0,126,0,121,0,0,0,98,0,116,0,99,0,126,0,107,0,0,0,98,0,116,0,109,0,126,0,122,0,0,0,98,0,117,0,97,0,126,0,107,0,0,0,98,0,117,0,109,0,126,0,113,0,0,0,98,0,117,0,115,0,126,0,122,0,0,0,98,0,118,0,97,0,126,0,114,0,0,0,98,0,118,0,116,0,126,0,122,0,0,0,98,0,119,0,97,0,126,0,117,0,0,0,98,0,119,0,119,0,126,0,122,0,0,0,98,0,120,0,97,0,126,0,106,0,0,0,98,0,120,0,108,0,126,0,113,0,0,0,98,0,120,0,117,0,126,0,119,0,0,0,98,0,121,0,97,0,126,0,116,0,0,0,98,0,121,0,118,0,126,0,120,0,0,0,98,0,122,0,97,0,126,0,122,0,0,0,99,0,97,0,97,0,126,0,115,0,0,0,99,0,97,0,117,0,126,0,122,0,0,0,99,0,98,0,97,0,126,0,100,0,0,0,99,0,98,0,105,0,126,0,108,0,0,0,99,0,98,0,110,0,126,0,111,0,0,0,99,0,98,0,113,0,126,0,119,0,0,0,99,0,99,0,99,0,126,0,101,0,0,0,99,0,99,0,103,0,126,0,104,0,0,0,99,0,99,0,108,0,126,0,112,0,0,0,99,0,99,0,114,0,126,0,115,0,0,0,99,0,100,0,99,0,126,0,102,0,0,0,99,0,100,0,104,0,126,0,106,0,0,0,99,0,100,0,109,0,126,0,111,0,0,0,99,0,100,0,114,0,126,0,115,0,0,0,99,0,100,0,121,0,126,0,122,0,0,0,99,0,101,0,97,0,126,0,98,0,0,0,99,0,101,0,107,0,126,0,108,0,0,0,99,0,103,0,55,0,126,0,57,0,0,0,99,0,104,0,98,0,126,0,100,0,0,0,99,0,104,0,102,0,126,0,104,0,0,0,99,0,104,0,106,0,126,0,114,0,0,0,99,0,104,0,119,0,126,0,122,0,0,0,99,0,105,0,97,0,126,0,101,0,0,0,99,0,105,0,109,0,126,0,110,0,0,0,99,0,106,0,104,0,126,0,105,0,0,0,99,0,106,0,109,0,126,0,112,0,0,0,99,0,107,0,108,0,126,0,111,0,0,0,99,0,107,0,113,0,126,0,118,0,0,0,99,0,107,0,120,0,126,0,122,0,0,0,99,0,108,0,104,0,126,0,109,0,0,0,99,0,108,0,116,0,126,0,117,0,0,0,99,0,109,0,108,0,126,0,109,0,0,0,99,0,109,0,114,0,126,0,116,0,0,0,99,0,110,0,97,0,126,0,99,0,0,0,99,0,110,0,103,0,126,0,105,0,0,0,99,0,110,0,107,0,126,0,108,0,0,0,99,0,110,0,111,0,126,0,113,0,0,0,99,0,110,0,115,0,126,0,117,0,0,0,99,0,110,0,119,0,126,0,120,0,0,0,99,0,111,0,97,0,126,0,104,0,0,0,99,0,111,0,106,0,126,0,113,0,0,0,99,0,111,0,114,0,110,0,117,0,0,0,99,0,111,0,116,0,126,0,120,0,0,0,99,0,112,0,97,0,126,0,99,0,0,0,99,0,112,0,101,0,126,0,103,0,0,0,99,0,112,0,110,0,126,0,112,0,0,0,99,0,112,0,120,0,126,0,121,0,0,0,99,0,114,0,97,0,126,0,100,0,0,0,99,0,114,0,102,0,126,0,116,0,0,0,99,0,114,0,103,0,126,0,104,0,0,0,99,0,114,0,118,0,126,0,122,0,0,0,99,0,115,0,97,0,126,0,122,0,0,0,99,0,116,0,99,0,126,0,101,0,0,0,99,0,116,0,103,0,126,0,104,0,0,0,99,0,116,0,108,0,126,0,112,0,0,0,99,0,116,0,115,0,126,0,117,0,0,0,99,0,116,0,121,0,126,0,122,0,0,0,99,0,117,0,97,0,126,0,99,0,0,0,99,0,117,0,104,0,126,0,108,0,0,0,99,0,117,0,111,0,126,0,121,0,0,0,99,0,119,0,97,0,126,0,98,0,0,0,99,0,121,0,97,0,126,0,98,0,0,0,99,0,122,0,50,0,48,0,49,0,0,0,99,0,122,0,50,0,48,0,53,0,0,0,99,0,122,0,50,0,48,0,54,0,0,0,99,0,122,0,50,0,48,0,55,0,0,0,99,0,122,0,50,0,48,0,57,0,0,0,99,0,122,0,50,0,48,0,97,0,0,0,99,0,122,0,50,0,48,0,98,0,0,0,99,0,122,0,50,0,48,0,99,0,0,0,99,0,122,0,51,0,49,0,49,0,0,0,99,0,122,0,51,0,49,0,51,0,0,0,99,0,122,0,51,0,49,0,52,0,0,0,99,0,122,0,51,0,49,0,53,0,0,0,99,0,122,0,51,0,49,0,55,0,0,0,99,0,122,0,51,0,50,0,49,0,0,0,99,0,122,0,51,0,50,0,50,0,0,0,99,0,122,0,51,0,50,0,51,0,0,0,99,0,122,0,51,0,50,0,53,0,0,0,99,0,122,0,51,0,50,0,54,0,0,0,99,0,122,0,51,0,50,0,55,0,0,0,99,0,122,0,52,0,49,0,49,0,0,0,99,0,122,0,52,0,49,0,50,0,0,0,99,0,122,0,52,0,49,0,51,0,0,0,99,0,122,0,52,0,50,0,49,0,0,0,99,0,122,0,52,0,50,0,51,0,0,0,99,0,122,0,52,0,50,0,52,0,0,0,99,0,122,0,52,0,50,0,53,0,0,0,99,0,122,0,52,0,50,0,55,0,0,0,99,0,122,0,53,0,49,0,49,0,0,0,99,0,122,0,53,0,49,0,51,0,0,0,99,0,122,0,53,0,49,0,52,0,0,0,99,0,122,0,53,0,50,0,49,0,0,0,99,0,122,0,53,0,50,0,50,0,0,0,99,0,122,0,53,0,50,0,51,0,0,0,99,0,122,0,53,0,50,0,53,0,0,0,99,0,122,0,54,0,51,0,49,0,0,0,99,0,122,0,54,0,51,0,50,0,0,0,99,0,122,0,54,0,51,0,51,0,0,0,99,0,122,0,54,0,51,0,53,0,0,0,99,0,122,0,54,0,52,0,49,0,0,0,99,0,122,0,54,0,52,0,52,0,0,0,99,0,122,0,54,0,52,0,53,0,0,0,99,0,122,0,54,0,52,0,55,0,0,0,99,0,122,0,55,0,49,0,49,0,0,0,99,0,122,0,55,0,49,0,50,0,0,0,99,0,122,0,55,0,49,0,51,0,0,0,99,0,122,0,55,0,49,0,52,0,0,0,99,0,122,0,55,0,49,0,53,0,0,0,99,0,122,0,55,0,50,0,49,0,0,0,99,0,122,0,55,0,50,0,50,0,0,0,99,0,122,0,55,0,50,0,51,0,0,0,99,0,122,0,56,0,48,0,49,0,0,0,99,0,122,0,56,0,48,0,50,0,0,0,99,0,122,0,56,0,48,0,51,0,0,0,99,0,122,0,56,0,48,0,53,0,0,0,99,0,122,0,56,0,48,0,54,0,0,0,99,0,122,0,110,0,126,0,111,0,0,0,100,0,97,0,99,0,126,0,101,0,0,0,100,0,97,0,103,0,126,0,109,0,0,0,100,0,97,0,110,0,103,0,105,0,0,0,100,0,97,0,113,0,126,0,115,0,0,0,100,0,97,0,117,0,126,0,122,0,0,0,100,0,98,0,100,0,126,0,103,0,0,0,100,0,98,0,105,0,126,0,106,0,0,0,100,0,98,0,108,0,126,0,114,0,0,0,100,0,98,0,116,0,126,0,119,0,0,0,100,0,100,0,100,0,126,0,101,0,0,0,100,0,100,0,105,0,126,0,106,0,0,0,100,0,100,0,110,0,126,0,111,0,0,0,100,0,100,0,114,0,126,0,115,0,0,0,100,0,101,0,99,0,126,0,105,0,0,0,100,0,101,0,107,0,126,0,110,0,0,0,100,0,101,0,112,0,126,0,115,0,0,0,100,0,103,0,97,0,126,0,101,0,0,0,100,0,103,0,103,0,126,0,105,0,0,0,100,0,103,0,107,0,126,0,108,0,0,0,100,0,103,0,114,0,126,0,116,0,0,0,100,0,103,0,119,0,126,0,120,0,0,0,100,0,104,0,108,0,126,0,111,0,0,0,100,0,104,0,114,0,126,0,115,0,0,0,100,0,104,0,117,0,126,0,120,0,0,0,100,0,105,0,97,0,126,0,100,0,0,0,100,0,105,0,102,0,126,0,106,0,0,0,100,0,105,0,108,0,126,0,112,0,0,0,100,0,105,0,114,0,126,0,115,0,0,0,100,0,105,0,119,0,126,0,122,0,0,0,100,0,106,0,97,0,126,0,102,0,0,0,100,0,106,0,105,0,126,0,107,0,0,0,100,0,106,0,109,0,126,0,111,0,0,0,100,0,107,0,114,0,126,0,115,0,0,0,100,0,108,0,109,0,126,0,110,0,0,0,100,0,109,0,97,0,126,0,103,0,0,0,100,0,109,0,107,0,126,0,111,0,0,0,100,0,109,0,114,0,126,0,115,0,0,0,100,0,109,0,117,0,126,0,121,0,0,0,100,0,110,0,100,0,126,0,101,0,0,0,100,0,110,0,105,0,126,0,107,0,0,0,100,0,110,0,110,0,126,0,111,0,0,0,100,0,110,0,116,0,126,0,119,0,0,0,100,0,111,0,97,0,126,0,99,0,0,0,100,0,111,0,101,0,126,0,102,0,0,0,100,0,111,0,104,0,126,0,105,0,0,0,100,0,111,0,107,0,126,0,108,0,0,0,100,0,111,0,110,0,126,0,116,0,0,0,100,0,111,0,118,0,126,0,122,0,0,0,100,0,114,0,97,0,126,0,101,0,0,0,100,0,114,0,110,0,126,0,111,0,0,0,100,0,114,0,115,0,126,0,117,0,0,0,100,0,115,0,104,0,126,0,105,0,0,0,100,0,116,0,97,0,126,0,98,0,0,0,100,0,116,0,104,0,126,0,105,0,0,0,100,0,116,0,109,0,126,0,112,0,0,0,100,0,116,0,114,0,126,0,117,0,0,0,100,0,117,0,97,0,126,0,99,0,0,0,100,0,117,0,101,0,126,0,105,0,0,0,100,0,117,0,107,0,126,0,115,0,0,0,100,0,117,0,117,0,126,0,122,0,0,0,100,0,119,0,114,0,126,0,115,0,0,0,100,0,119,0,121,0,126,0,122,0,0,0,100,0,121,0,97,0,126,0,98,0,0,0,100,0,121,0,109,0,126,0,111,0,0,0,101,0,99,0,97,0,126,0,105,0,0,0,101,0,99,0,108,0,126,0,112,0,0,0,101,0,99,0,116,0,126,0,117,0,0,0,101,0,99,0,119,0,126,0,122,0,0,0,101,0,101,0,49,0,52,0,49,0,0,0,101,0,101,0,49,0,52,0,50,0,0,0,101,0,101,0,50,0,56,0,51,0,0,0,101,0,101,0,50,0,56,0,52,0,0,0,101,0,101,0,52,0,51,0,48,0,0,0,101,0,101,0,52,0,51,0,49,0,0,0,101,0,101,0,52,0,51,0,50,0,0,0,101,0,101,0,52,0,52,0,49,0,0,0,101,0,101,0,55,0,57,0,51,0,0,0,101,0,103,0,108,0,126,0,109,0,0,0,101,0,103,0,120,0,126,0,121,0,0,0,101,0,107,0,108,0,126,0,109,0,0,0,101,0,107,0,111,0,126,0,112,0,0,0,101,0,108,0,104,0,126,0,105,0,0,0,101,0,109,0,97,0,126,0,98,0,0,0,101,0,109,0,109,0,126,0,110,0,0,0,101,0,109,0,112,0,126,0,113,0,0,0,101,0,109,0,119,0,126,0,122,0,0,0,101,0,110,0,95,0,66,0,90,0,0,0,101,0,110,0,95,0,67,0,72,0,0,0,101,0,110,0,95,0,77,0,79,0,0,0,101,0,110,0,97,0,126,0,100,0,0,0,101,0,110,0,108,0,126,0,111,0,0,0,101,0,110,0,113,0,126,0,114,0,0,0,101,0,110,0,117,0,126,0,120,0,0,0,101,0,114,0,103,0,126,0,105,0,0,0,101,0,114,0,114,0,126,0,116,0,0,0,101,0,115,0,95,0,66,0,82,0,0,0,101,0,115,0,95,0,85,0,83,0,0,0,101,0,115,0,103,0,126,0,105,0,0,0,101,0,115,0,108,0,126,0,111,0,0,0,101,0,115,0,120,0,126,0,121,0,0,0,101,0,116,0,98,0,126,0,99,0,0,0,101,0,116,0,110,0,126,0,111,0,0,0,101,0,116,0,114,0,126,0,117,0,0,0,102,0,97,0,97,0,126,0,98,0,0,0,102,0,97,0,102,0,126,0,110,0,0,0,102,0,97,0,120,0,126,0,122,0,0,0,102,0,105,0,101,0,126,0,102,0,0,0,102,0,105,0,116,0,126,0,117,0,0,0,102,0,108,0,104,0,126,0,105,0,0,0,102,0,111,0,109,0,126,0,110,0,0,0,102,0,111,0,114,0,126,0,115,0,0,0,102,0,114,0,97,0,126,0,98,0,0,0,102,0,114,0,99,0,111,0,114,0,0,0,102,0,114,0,99,0,126,0,100,0,0,0,102,0,114,0,100,0,126,0,103,0,0,0,102,0,114,0,103,0,117,0,97,0,0,0,102,0,114,0,104,0,126,0,108,0,0,0,102,0,114,0,109,0,97,0,121,0,0,0,102,0,114,0,111,0,126,0,112,0,0,0,102,0,114,0,111,0,126,0,116,0,0,0,102,0,114,0,113,0,126,0,114,0,0,0,102,0,114,0,115,0,126,0,116,0,0,0,102,0,114,0,117,0,126,0,118,0,0,0,102,0,117,0,100,0,126,0,102,0,0,0,102,0,117,0,104,0,126,0,106,0,0,0,102,0,117,0,109,0,126,0,110,0,0,0,102,0,117,0,113,0,126,0,114,0,0,0,102,0,117,0,116,0,126,0,118,0,0,0,103,0,97,0,49,0,126,0,57,0,0,0,103,0,97,0,97,0,126,0,117,0,0,0,103,0,97,0,119,0,126,0,121,0,0,0,103,0,98,0,97,0,98,0,99,0,0,0,103,0,98,0,97,0,98,0,100,0,0,0,103,0,98,0,97,0,98,0,101,0,0,0,103,0,98,0,97,0,110,0,116,0,0,0,103,0,98,0,97,0,114,0,100,0,0,0,103,0,98,0,97,0,126,0,98,0,0,0,103,0,98,0,98,0,100,0,103,0,0,0,103,0,98,0,98,0,108,0,97,0,0,0,103,0,98,0,98,0,108,0,121,0,0,0,103,0,98,0,98,0,109,0,104,0,0,0,103,0,98,0,98,0,110,0,98,0,0,0,103,0,98,0,98,0,114,0,99,0,0,0,103,0,98,0,98,0,114,0,100,0,0,0,103,0,98,0,99,0,103,0,118,0,0,0,103,0,98,0,99,0,107,0,102,0,0,0,103,0,98,0,99,0,107,0,116,0,0,0,103,0,98,0,99,0,108,0,114,0,0,0,103,0,98,0,99,0,115,0,114,0,0,0,103,0,98,0,100,0,110,0,99,0,0,0,103,0,98,0,100,0,110,0,100,0,0,0,103,0,98,0,100,0,111,0,119,0,0,0,103,0,98,0,100,0,126,0,110,0,0,0,103,0,98,0,101,0,97,0,119,0,0,0,103,0,98,0,101,0,110,0,103,0,0,0,103,0,98,0,103,0,98,0,110,0,0,0,103,0,98,0,104,0,97,0,108,0,0,0,103,0,98,0,104,0,97,0,109,0,0,0,103,0,98,0,108,0,109,0,118,0,0,0,103,0,98,0,108,0,114,0,110,0,0,0,103,0,98,0,109,0,102,0,116,0,0,0,103,0,98,0,109,0,121,0,108,0,0,0,103,0,98,0,110,0,100,0,110,0,0,0,103,0,98,0,110,0,116,0,97,0,0,0,103,0,98,0,110,0,121,0,109,0,0,0,103,0,98,0,111,0,109,0,104,0,0,0,103,0,98,0,112,0,111,0,108,0,0,0,103,0,98,0,112,0,126,0,115,0,0,0,103,0,98,0,115,0,108,0,102,0,0,0,103,0,98,0,115,0,108,0,103,0,0,0,103,0,98,0,115,0,111,0,108,0,0,0,103,0,98,0,115,0,111,0,109,0,0,0,103,0,98,0,115,0,116,0,98,0,0,0,103,0,98,0,115,0,116,0,103,0,0,0,103,0,98,0,115,0,116,0,104,0,0,0,103,0,98,0,115,0,116,0,116,0,0,0,103,0,98,0,117,0,107,0,109,0,0,0,103,0,98,0,117,0,126,0,122,0,0,0,103,0,99,0,99,0,126,0,102,0,0,0,103,0,100,0,97,0,126,0,111,0,0,0,103,0,100,0,113,0,126,0,117,0,0,0,103,0,101,0,97,0,126,0,100,0,0,0,103,0,101,0,102,0,126,0,109,0,0,0,103,0,101,0,118,0,126,0,122,0,0,0,103,0,103,0,97,0,126,0,98,0,0,0,103,0,103,0,100,0,126,0,101,0,0,0,103,0,103,0,107,0,126,0,108,0,0,0,103,0,103,0,110,0,126,0,111,0,0,0,103,0,103,0,116,0,126,0,117,0,0,0,103,0,104,0,107,0,126,0,108,0,0,0,103,0,104,0,110,0,126,0,111,0,0,0,103,0,104,0,114,0,126,0,116,0,0,0,103,0,105,0,97,0,126,0,101,0,0,0,103,0,105,0,103,0,126,0,105,0,0,0,103,0,105,0,108,0,126,0,110,0,0,0,103,0,105,0,112,0,126,0,117,0,0,0,103,0,105,0,119,0,126,0,122,0,0,0,103,0,106,0,109,0,126,0,110,0,0,0,103,0,107,0,110,0,126,0,112,0,0,0,103,0,108,0,98,0,126,0,100,0,0,0,103,0,108,0,106,0,126,0,108,0,0,0,103,0,109,0,97,0,126,0,98,0,0,0,103,0,109,0,100,0,126,0,101,0,0,0,103,0,109,0,103,0,126,0,104,0,0,0,103,0,109,0,113,0,126,0,114,0,0,0,103,0,109,0,117,0,126,0,122,0,0,0,103,0,110,0,97,0,126,0,101,0,0,0,103,0,110,0,103,0,126,0,110,0,0,0,103,0,110,0,113,0,126,0,114,0,0,0,103,0,110,0,116,0,126,0,117,0,0,0,103,0,111,0,97,0,126,0,122,0,0,0,103,0,114,0,97,0,126,0,100,0,0,0,103,0,114,0,97,0,126,0,109,0,0,0,103,0,114,0,103,0,126,0,107,0,0,0,103,0,114,0,113,0,126,0,122,0,0,0,103,0,115,0,108,0,126,0,112,0,0,0,103,0,117,0,97,0,126,0,102,0,0,0,103,0,117,0,104,0,126,0,105,0,0,0,103,0,117,0,107,0,126,0,117,0,0,0,103,0,117,0,119,0,126,0,120,0,0,0,103,0,118,0,101,0,126,0,102,0,0,0,103,0,118,0,108,0,126,0,112,0,0,0,103,0,118,0,114,0,126,0,115,0,0,0,103,0,119,0,97,0,126,0,103,0,0,0,103,0,119,0,105,0,126,0,106,0,0,0,103,0,119,0,109,0,126,0,110,0,0,0,103,0,119,0,116,0,126,0,117,0,0,0,103,0,119,0,119,0,126,0,120,0,0,0,103,0,121,0,100,0,126,0,103,0,0,0,103,0,121,0,108,0,126,0,111,0,0,0,103,0,121,0,121,0,126,0,122,0,0,0,104,0,97,0,97,0,126,0,115,0,0,0,104,0,97,0,118,0,126,0,122,0,0,0,104,0,98,0,97,0,126,0,98,0,0,0,104,0,98,0,110,0,126,0,111,0,0,0,104,0,101,0,103,0,126,0,105,0,0,0,104,0,105,0,97,0,126,0,98,0,0,0,104,0,105,0,102,0,126,0,108,0,0,0,104,0,105,0,119,0,126,0,120,0,0,0,104,0,108,0,97,0,126,0,98,0,0,0,104,0,108,0,100,0,126,0,101,0,0,0,104,0,108,0,116,0,126,0,117,0,0,0,104,0,109,0,97,0,126,0,110,0,0,0,104,0,109,0,112,0,126,0,122,0,0,0,104,0,110,0,100,0,126,0,101,0,0,0,104,0,110,0,103,0,126,0,106,0,0,0,104,0,110,0,110,0,126,0,111,0,0,0,104,0,111,0,97,0,126,0,101,0,0,0,104,0,111,0,104,0,126,0,109,0,0,0,104,0,111,0,111,0,126,0,112,0,0,0,104,0,111,0,114,0,126,0,116,0,0,0,104,0,111,0,118,0,126,0,119,0,0,0,104,0,111,0,121,0,126,0,122,0,0,0,104,0,114,0,111,0,126,0,112,0,0,0,104,0,114,0,116,0,126,0,117,0,0,0,104,0,114,0,119,0,126,0,120,0,0,0,104,0,117,0,98,0,126,0,109,0,0,0,104,0,117,0,111,0,126,0,122,0,0,0,104,0,121,0,119,0,126,0,120,0,0,0,105,0,98,0,97,0,126,0,98,0,0,0,105,0,98,0,100,0,126,0,101,0,0,0,105,0,98,0,103,0,126,0,104,0,0,0,105,0,98,0,108,0,126,0,110,0,0,0,105,0,100,0,97,0,126,0,101,0,0,0,105,0,100,0,114,0,126,0,117,0,0,0,105,0,102,0,97,0,126,0,98,0,0,0,105,0,102,0,101,0,126,0,102,0,0,0,105,0,103,0,108,0,126,0,111,0,0,0,105,0,106,0,110,0,126,0,111,0,0,0,105,0,107,0,107,0,126,0,108,0,0,0,105,0,107,0,111,0,126,0,112,0,0,0,105,0,107,0,114,0,126,0,116,0,0,0,105,0,107,0,118,0,126,0,120,0,0,0,105,0,108,0,97,0,126,0,98,0,0,0,105,0,108,0,111,0,126,0,112,0,0,0,105,0,108,0,117,0,126,0,118,0,0,0,105,0,109,0,110,0,126,0,111,0,0,0,105,0,109,0,114,0,126,0,116,0,0,0,105,0,110,0,98,0,126,0,99,0,0,0,105,0,110,0,103,0,126,0,104,0,0,0,105,0,110,0,108,0,126,0,112,0,0,0,105,0,110,0,115,0,126,0,116,0,0,0,105,0,114,0,104,0,126,0,105,0,0,0,105,0,114,0,110,0,126,0,111,0,0,0,105,0,114,0,120,0,126,0,121,0,0,0,105,0,115,0,49,0,126,0,56,0,0,0,105,0,115,0,98,0,102,0,106,0,0,0,105,0,115,0,99,0,126,0,101,0,0,0,105,0,115,0,102,0,108,0,100,0,0,0,105,0,115,0,103,0,126,0,105,0,0,0,105,0,115,0,109,0,126,0,111,0,0,0,105,0,115,0,115,0,107,0,102,0,0,0,105,0,115,0,116,0,126,0,117,0,0,0,105,0,116,0,98,0,126,0,101,0,0,0,105,0,116,0,107,0,126,0,109,0,0,0,105,0,116,0,114,0,126,0,116,0,0,0,105,0,116,0,118,0,126,0,122,0,0,0,106,0,97,0,97,0,126,0,102,0,0,0,106,0,97,0,106,0,126,0,111,0,0,0,106,0,97,0,115,0,126,0,117,0,0,0,106,0,97,0,117,0,101,0,114,0,0,0,106,0,97,0,120,0,126,0,122,0,0,0,106,0,98,0,105,0,126,0,107,0,0,0,106,0,98,0,109,0,126,0,111,0,0,0,106,0,98,0,116,0,126,0,117,0,0,0,106,0,99,0,115,0,126,0,116,0,0,0,106,0,101,0,104,0,126,0,105,0,0,0,106,0,101,0,107,0,126,0,108,0,0,0,106,0,101,0,116,0,126,0,117,0,0,0,106,0,105,0,97,0,126,0,101,0,0,0,106,0,105,0,103,0,126,0,105,0,0,0,106,0,105,0,108,0,126,0,109,0,0,0,106,0,105,0,116,0,126,0,118,0,0,0,106,0,107,0,111,0,126,0,112,0,0,0,106,0,107,0,114,0,126,0,115,0,0,0,106,0,109,0,97,0,126,0,100,0,0,0,106,0,109,0,114,0,126,0,115,0,0,0,106,0,109,0,119,0,126,0,120,0,0,0,106,0,110,0,105,0,126,0,106,0,0,0,106,0,111,0,114,0,126,0,115,0,0,0,106,0,114,0,97,0,126,0,98,0,0,0,106,0,114,0,116,0,126,0,117,0,0,0,106,0,117,0,97,0,126,0,100,0,0,0,106,0,117,0,104,0,126,0,105,0,0,0,106,0,117,0,107,0,126,0,112,0,0,0,106,0,117,0,114,0,126,0,117,0,0,0,107,0,97,0,97,0,126,0,107,0,0,0,107,0,97,0,111,0,126,0,114,0,0,0,107,0,97,0,118,0,126,0,121,0,0,0,107,0,98,0,97,0,126,0,101,0,0,0,107,0,98,0,103,0,126,0,122,0,0,0,107,0,99,0,97,0,126,0,122,0,0,0,107,0,100,0,99,0,126,0,114,0,0,0,107,0,100,0,116,0,126,0,117,0,0,0,107,0,100,0,119,0,126,0,122,0,0,0,107,0,101,0,97,0,126,0,122,0,0,0,107,0,102,0,97,0,126,0,122,0,0,0,107,0,103,0,97,0,126,0,98,0,0,0,107,0,103,0,98,0,126,0,99,0,0,0,107,0,103,0,99,0,126,0,100,0,0,0,107,0,103,0,101,0,126,0,103,0,0,0,107,0,103,0,105,0,126,0,121,0,0,0,107,0,103,0,110,0,126,0,111,0,0,0,107,0,104,0,51,0,126,0,57,0,0,0,107,0,104,0,97,0,126,0,106,0,0,0,107,0,104,0,110,0,126,0,122,0,0,0,107,0,105,0,97,0,126,0,106,0,0,0,107,0,105,0,108,0,126,0,109,0,0,0,107,0,105,0,111,0,126,0,113,0,0,0,107,0,105,0,115,0,126,0,122,0,0,0,107,0,106,0,97,0,126,0,101,0,0,0,107,0,106,0,103,0,126,0,118,0,0,0,107,0,106,0,120,0,126,0,122,0,0,0,107,0,107,0,97,0,126,0,122,0,0,0,107,0,107,0,99,0,111,0,114,0,0,0,107,0,108,0,97,0,126,0,122,0,0,0,107,0,109,0,97,0,126,0,113,0,0,0,107,0,109,0,115,0,126,0,122,0,0,0,107,0,110,0,97,0,126,0,98,0,0,0,107,0,110,0,100,0,126,0,102,0,0,0,107,0,110,0,105,0,126,0,109,0,0,0,107,0,110,0,111,0,126,0,122,0,0,0,107,0,111,0,99,0,126,0,105,0,0,0,107,0,111,0,107,0,126,0,108,0,0,0,107,0,111,0,111,0,126,0,113,0,0,0,107,0,111,0,115,0,126,0,119,0,0,0,107,0,111,0,121,0,126,0,122,0,0,0,107,0,112,0,97,0,126,0,111,0,0,0,107,0,112,0,113,0,126,0,117,0,0,0,107,0,112,0,119,0,126,0,122,0,0,0,107,0,113,0,97,0,126,0,122,0,0,0,107,0,114,0,97,0,126,0,102,0,0,0,107,0,114,0,104,0,126,0,108,0,0,0,107,0,114,0,110,0,126,0,112,0,0,0,107,0,114,0,114,0,126,0,122,0,0,0,107,0,115,0,97,0,126,0,122,0,0,0,107,0,115,0,99,0,111,0,114,0,0,0,107,0,116,0,97,0,126,0,113,0,0,0,107,0,116,0,115,0,126,0,122,0,0,0,107,0,117,0,98,0,126,0,113,0,0,0,107,0,117,0,115,0,126,0,122,0,0,0,107,0,118,0,97,0,126,0,114,0,0,0,107,0,118,0,116,0,126,0,122,0,0,0,107,0,119,0,97,0,126,0,112,0,0,0,107,0,119,0,114,0,126,0,122,0,0,0,107,0,120,0,97,0,126,0,100,0,0,0,107,0,120,0,104,0,126,0,107,0,0,0,107,0,120,0,109,0,126,0,116,0,0,0,107,0,120,0,118,0,126,0,122,0,0,0,107,0,121,0,97,0,126,0,122,0,0,0,107,0,122,0,97,0,126,0,103,0,0,0,107,0,122,0,98,0,97,0,121,0,0,0,107,0,122,0,107,0,126,0,115,0,0,0,107,0,122,0,117,0,126,0,122,0,0,0,108,0,97,0,97,0,126,0,106,0,0,0,108,0,97,0,108,0,126,0,110,0,0,0,108,0,97,0,112,0,126,0,115,0,0,0,108,0,97,0,119,0,126,0,122,0,0,0,108,0,98,0,98,0,126,0,99,0,0,0,108,0,98,0,101,0,126,0,103,0,0,0,108,0,98,0,105,0,126,0,106,0,0,0,108,0,98,0,108,0,126,0,111,0,0,0,108,0,98,0,113,0,126,0,122,0,0,0,108,0,99,0,99,0,126,0,102,0,0,0,108,0,99,0,108,0,126,0,109,0,0,0,108,0,99,0,112,0,126,0,113,0,0,0,108,0,100,0,97,0,126,0,98,0,0,0,108,0,100,0,103,0,126,0,113,0,0,0,108,0,101,0,97,0,126,0,102,0,0,0,108,0,101,0,104,0,126,0,122,0,0,0,108,0,103,0,97,0,126,0,98,0,0,0,108,0,103,0,103,0,126,0,105,0,0,0,108,0,103,0,107,0,126,0,111,0,0,0,108,0,103,0,113,0,126,0,114,0,0,0,108,0,103,0,116,0,126,0,117,0,0,0,108,0,104,0,104,0,126,0,105,0,0,0,108,0,104,0,108,0,126,0,110,0,0,0,108,0,104,0,115,0,126,0,117,0,0,0,108,0,105,0,97,0,126,0,104,0,0,0,108,0,105,0,106,0,126,0,108,0,0,0,108,0,105,0,111,0,126,0,115,0,0,0,108,0,105,0,112,0,97,0,119,0,0,0,108,0,105,0,117,0,126,0,122,0,0,0,108,0,106,0,119,0,126,0,120,0,0,0,108,0,107,0,97,0,126,0,101,0,0,0,108,0,107,0,104,0,126,0,106,0,0,0,108,0,107,0,108,0,126,0,111,0,0,0,108,0,107,0,114,0,126,0,117,0,0,0,108,0,108,0,97,0,126,0,110,0,0,0,108,0,108,0,112,0,126,0,113,0,0,0,108,0,109,0,97,0,126,0,108,0,0,0,108,0,109,0,110,0,126,0,114,0,0,0,108,0,109,0,117,0,126,0,121,0,0,0,108,0,110,0,97,0,126,0,98,0,0,0,108,0,110,0,103,0,126,0,106,0,0,0,108,0,110,0,108,0,126,0,110,0,0,0,108,0,111,0,97,0,126,0,99,0,0,0,108,0,111,0,101,0,126,0,122,0,0,0,108,0,112,0,110,0,126,0,111,0,0,0,108,0,114,0,107,0,126,0,111,0,0,0,108,0,115,0,97,0,126,0,101,0,0,0,108,0,115,0,97,0,126,0,104,0,0,0,108,0,115,0,104,0,126,0,105,0,0,0,108,0,115,0,106,0,126,0,107,0,0,0,108,0,115,0,108,0,126,0,112,0,0,0,108,0,115,0,114,0,126,0,116,0,0,0,108,0,115,0,118,0,126,0,119,0,0,0,108,0,116,0,103,0,126,0,105,0,0,0,108,0,116,0,110,0,126,0,111,0,0,0,108,0,117,0,99,0,126,0,102,0,0,0,108,0,117,0,105,0,126,0,119,0,0,0,108,0,117,0,121,0,126,0,122,0,0,0,108,0,118,0,48,0,48,0,49,0,0,0,108,0,118,0,48,0,49,0,48,0,0,0,108,0,118,0,48,0,52,0,49,0,0,0,108,0,118,0,48,0,52,0,50,0,0,0,108,0,118,0,48,0,53,0,53,0,0,0,108,0,118,0,48,0,53,0,56,0,0,0,108,0,118,0,48,0,53,0,57,0,0,0,108,0,118,0,48,0,54,0,55,0,0,0,108,0,118,0,48,0,54,0,57,0,0,0,108,0,118,0,48,0,56,0,55,0,0,0,108,0,118,0,48,0,56,0,56,0,0,0,108,0,118,0,48,0,56,0,57,0,0,0,108,0,118,0,48,0,57,0,56,0,0,0,108,0,118,0,49,0,48,0,48,0,0,0,108,0,118,0,49,0,48,0,49,0,0,0,108,0,118,0,49,0,48,0,50,0,0,0,108,0,118,0,49,0,49,0,48,0,0,0,108,0,118,0,49,0,49,0,49,0,0,0,108,0,118,0,49,0,49,0,51,0,0,0,108,0,118,0,106,0,107,0,98,0,0,0,108,0,118,0,118,0,109,0,114,0,0,0,108,0,119,0,103,0,126,0,104,0,0,0,108,0,119,0,108,0,126,0,109,0,0,0,108,0,119,0,115,0,126,0,117,0,0,0,109,0,97,0,97,0,126,0,98,0,0,0,109,0,97,0,98,0,101,0,114,0,0,0,109,0,97,0,98,0,101,0,115,0,0,0,109,0,97,0,100,0,126,0,103,0,0,0,109,0,97,0,103,0,117,0,101,0,0,0,109,0,97,0,103,0,117,0,102,0,0,0,109,0,97,0,105,0,126,0,107,0,0,0,109,0,97,0,107,0,104,0,110,0,0,0,109,0,97,0,107,0,104,0,111,0,0,0,109,0,97,0,109,0,109,0,100,0,0,0,109,0,97,0,109,0,109,0,110,0,0,0,109,0,97,0,109,0,126,0,110,0,0,0,109,0,97,0,112,0,126,0,113,0,0,0,109,0,97,0,115,0,105,0,108,0,0,0,109,0,97,0,115,0,121,0,98,0,0,0,109,0,97,0,115,0,126,0,120,0,0,0,109,0,98,0,97,0,126,0,102,0,0,0,109,0,98,0,104,0,126,0,122,0,0,0,109,0,99,0,97,0,126,0,122,0,0,0,109,0,100,0,97,0,126,0,110,0,0,0,109,0,100,0,112,0,126,0,122,0,0,0,109,0,101,0,97,0,126,0,102,0,0,0,109,0,101,0,104,0,126,0,119,0,0,0,109,0,101,0,121,0,126,0,122,0,0,0,109,0,102,0,97,0,126,0,122,0,0,0,109,0,103,0,97,0,126,0,119,0,0,0,109,0,103,0,116,0,126,0,117,0,0,0,109,0,103,0,121,0,126,0,122,0,0,0,109,0,104,0,97,0,108,0,107,0,0,0,109,0,104,0,97,0,108,0,108,0,0,0,109,0,104,0,97,0,126,0,103,0,0,0,109,0,104,0,105,0,126,0,113,0,0,0,109,0,104,0,115,0,126,0,117,0,0,0,109,0,104,0,119,0,126,0,122,0,0,0,109,0,105,0,97,0,126,0,114,0,0,0,109,0,105,0,116,0,126,0,117,0,0,0,109,0,105,0,119,0,126,0,122,0,0,0,109,0,106,0,98,0,126,0,101,0,0,0,109,0,106,0,103,0,126,0,122,0,0,0,109,0,107,0,49,0,48,0,49,0,0,0,109,0,107,0,49,0,48,0,50,0,0,0,109,0,107,0,49,0,48,0,51,0,0,0,109,0,107,0,49,0,48,0,53,0,0,0,109,0,107,0,49,0,48,0,54,0,0,0,109,0,107,0,49,0,48,0,55,0,0,0,109,0,107,0,49,0,48,0,57,0,0,0,109,0,107,0,50,0,48,0,49,0,0,0,109,0,107,0,50,0,48,0,50,0,0,0,109,0,107,0,50,0,48,0,51,0,0,0,109,0,107,0,50,0,48,0,52,0,0,0,109,0,107,0,50,0,48,0,53,0,0,0,109,0,107,0,50,0,48,0,54,0,0,0,109,0,107,0,50,0,48,0,55,0,0,0,109,0,107,0,50,0,48,0,56,0,0,0,109,0,107,0,50,0,48,0,57,0,0,0,109,0,107,0,50,0,49,0,48,0,0,0,109,0,107,0,50,0,49,0,49,0,0,0,109,0,107,0,51,0,48,0,51,0,0,0,109,0,107,0,51,0,48,0,55,0,0,0,109,0,107,0,51,0,49,0,48,0,0,0,109,0,107,0,51,0,49,0,49,0,0,0,109,0,107,0,51,0,49,0,50,0,0,0,109,0,107,0,51,0,49,0,51,0,0,0,109,0,107,0,52,0,48,0,49,0,0,0,109,0,107,0,52,0,48,0,50,0,0,0,109,0,107,0,52,0,48,0,51,0,0,0,109,0,107,0,52,0,48,0,53,0,0,0,109,0,107,0,52,0,48,0,54,0,0,0,109,0,107,0,52,0,48,0,55,0,0,0,109,0,107,0,52,0,48,0,57,0,0,0,109,0,107,0,53,0,48,0,49,0,0,0,109,0,107,0,53,0,48,0,50,0,0,0,109,0,107,0,53,0,48,0,51,0,0,0,109,0,107,0,53,0,48,0,53,0,0,0,109,0,107,0,53,0,48,0,54,0,0,0,109,0,107,0,53,0,48,0,55,0,0,0,109,0,107,0,53,0,48,0,57,0,0,0,109,0,107,0,54,0,48,0,49,0,0,0,109,0,107,0,54,0,48,0,50,0,0,0,109,0,107,0,54,0,48,0,51,0,0,0,109,0,107,0,54,0,48,0,53,0,0,0,109,0,107,0,54,0,48,0,54,0,0,0,109,0,107,0,54,0,48,0,55,0,0,0,109,0,107,0,54,0,48,0,57,0,0,0,109,0,107,0,55,0,48,0,49,0,0,0,109,0,107,0,56,0,48,0,49,0,0,0,109,0,107,0,56,0,48,0,50,0,0,0,109,0,107,0,56,0,48,0,51,0,0,0,109,0,107,0,56,0,48,0,52,0,0,0,109,0,107,0,56,0,48,0,53,0,0,0,109,0,107,0,56,0,48,0,54,0,0,0,109,0,107,0,56,0,48,0,56,0,0,0,109,0,107,0,56,0,48,0,57,0,0,0,109,0,107,0,56,0,49,0,49,0,0,0,109,0,107,0,56,0,49,0,50,0,0,0,109,0,107,0,56,0,49,0,51,0,0,0,109,0,107,0,56,0,49,0,52,0,0,0,109,0,107,0,56,0,49,0,53,0,0,0,109,0,107,0,56,0,49,0,54,0,0,0,109,0,107,0,56,0,49,0,55,0,0,0,109,0,107,0,97,0,126,0,99,0,0,0,109,0,107,0,101,0,126,0,122,0,0,0,109,0,108,0,50,0,126,0,57,0,0,0,109,0,108,0,97,0,126,0,99,0,0,0,109,0,108,0,101,0,126,0,102,0,0,0,109,0,108,0,104,0,126,0,115,0,0,0,109,0,108,0,117,0,126,0,120,0,0,0,109,0,109,0,97,0,126,0,114,0,0,0,109,0,109,0,116,0,126,0,122,0,0,0,109,0,110,0,48,0,52,0,54,0,0,0,109,0,110,0,48,0,52,0,55,0,0,0,109,0,110,0,48,0,54,0,51,0,0,0,109,0,110,0,48,0,54,0,53,0,0,0,109,0,110,0,97,0,126,0,106,0,0,0,109,0,110,0,108,0,126,0,115,0,0,0,109,0,110,0,117,0,126,0,122,0,0,0,109,0,111,0,99,0,126,0,101,0,0,0,109,0,111,0,103,0,126,0,107,0,0,0,109,0,111,0,111,0,126,0,122,0,0,0,109,0,112,0,97,0,126,0,101,0,0,0,109,0,112,0,103,0,126,0,122,0,0,0,109,0,113,0,97,0,126,0,99,0,0,0,109,0,113,0,101,0,126,0,122,0,0,0,109,0,114,0,97,0,126,0,104,0,0,0,109,0,114,0,106,0,126,0,122,0,0,0,109,0,114,0,110,0,107,0,99,0,0,0,109,0,115,0,98,0,126,0,115,0,0,0,109,0,115,0,117,0,126,0,122,0,0,0,109,0,116,0,97,0,126,0,121,0,0,0,109,0,117,0,97,0,126,0,101,0,0,0,109,0,117,0,103,0,126,0,107,0,0,0,109,0,117,0,109,0,126,0,111,0,0,0,109,0,117,0,113,0,126,0,118,0,0,0,109,0,117,0,120,0,126,0,122,0,0,0,109,0,118,0,97,0,126,0,98,0,0,0,109,0,118,0,100,0,126,0,105,0,0,0,109,0,118,0,107,0,126,0,108,0,0,0,109,0,118,0,110,0,126,0,122,0,0,0,109,0,119,0,97,0,126,0,99,0,0,0,109,0,119,0,101,0,126,0,105,0,0,0,109,0,119,0,107,0,126,0,119,0,0,0,109,0,119,0,120,0,126,0,121,0,0,0,109,0,120,0,97,0,126,0,122,0,0,0,109,0,120,0,100,0,105,0,102,0,0,0,109,0,121,0,98,0,126,0,99,0,0,0,109,0,121,0,101,0,126,0,104,0,0,0,109,0,121,0,106,0,126,0,112,0,0,0,109,0,121,0,114,0,126,0,115,0,0,0,109,0,121,0,117,0,126,0,122,0,0,0,109,0,122,0,97,0,126,0,98,0,0,0,109,0,122,0,97,0,126,0,101,0,0,0,109,0,122,0,103,0,126,0,122,0,0,0,109,0,122,0,112,0,126,0,113,0,0,0,109,0,122,0,115,0,126,0,116,0,0,0,110,0,97,0,97,0,126,0,99,0,0,0,110,0,97,0,101,0,126,0,116,0,0,0,110,0,97,0,119,0,126,0,122,0,0,0,110,0,98,0,97,0,126,0,101,0,0,0,110,0,98,0,103,0,126,0,107,0,0,0,110,0,98,0,109,0,126,0,119,0,0,0,110,0,99,0,97,0,126,0,111,0,0,0,110,0,99,0,113,0,126,0,117,0,0,0,110,0,100,0,97,0,126,0,100,0,0,0,110,0,100,0,102,0,126,0,110,0,0,0,110,0,100,0,112,0,126,0,122,0,0,0,110,0,101,0,49,0,126,0,56,0,0,0,110,0,101,0,97,0,126,0,107,0,0,0,110,0,101,0,100,0,105,0,115,0,0,0,110,0,101,0,109,0,126,0,111,0,0,0,110,0,101,0,113,0,126,0,122,0,0,0,110,0,103,0,97,0,126,0,110,0,0,0,110,0,103,0,112,0,126,0,122,0,0,0,110,0,104,0,97,0,126,0,105,0,0,0,110,0,104,0,109,0,126,0,114,0,0,0,110,0,104,0,116,0,126,0,122,0,0,0,110,0,105,0,97,0,126,0,111,0,0,0,110,0,105,0,113,0,126,0,122,0,0,0,110,0,106,0,97,0,126,0,98,0,0,0,110,0,106,0,104,0,126,0,106,0,0,0,110,0,106,0,105,0,118,0,97,0,0,0,110,0,106,0,108,0,126,0,111,0,0,0,110,0,106,0,114,0,126,0,117,0,0,0,110,0,106,0,120,0,126,0,122,0,0,0,110,0,107,0,97,0,126,0,107,0,0,0,110,0,107,0,109,0,126,0,120,0,0,0,110,0,108,0,98,0,113,0,49,0,0,0,110,0,108,0,98,0,113,0,50,0,0,0,110,0,108,0,98,0,113,0,51,0,0,0,110,0,108,0,105,0,126,0,109,0,0,0,110,0,108,0,117,0,126,0,122,0,0,0,110,0,109,0,97,0,126,0,122,0,0,0,110,0,110,0,97,0,126,0,110,0,0,0,110,0,110,0,112,0,126,0,114,0,0,0,110,0,110,0,116,0,126,0,119,0,0,0,110,0,110,0,121,0,126,0,122,0,0,0,110,0,111,0,99,0,126,0,110,0,0,0,110,0,111,0,112,0,126,0,113,0,0,0,110,0,111,0,115,0,126,0,119,0,0,0,110,0,111,0,121,0,126,0,122,0,0,0,110,0,112,0,49,0,126,0,53,0,0,0,110,0,112,0,97,0,126,0,98,0,0,0,110,0,112,0,103,0,126,0,104,0,0,0,110,0,112,0,110,0,126,0,111,0,0,0,110,0,112,0,120,0,126,0,121,0,0,0,110,0,113,0,107,0,126,0,111,0,0,0,110,0,114,0,97,0,126,0,99,0,0,0,110,0,114,0,101,0,126,0,103,0,0,0,110,0,114,0,107,0,126,0,110,0,0,0,110,0,114,0,116,0,126,0,117,0,0,0,110,0,115,0,97,0,126,0,105,0,0,0,110,0,115,0,107,0,126,0,122,0,0,0,110,0,116,0,100,0,126,0,101,0,0,0,110,0,116,0,105,0,126,0,107,0,0,0,110,0,116,0,111,0,126,0,112,0,0,0,110,0,116,0,119,0,126,0,122,0,0,0,110,0,117,0,97,0,126,0,122,0,0,0,110,0,117,0,108,0,105,0,107,0,0,0,110,0,119,0,97,0,126,0,99,0,0,0,110,0,119,0,119,0,126,0,121,0,0,0,110,0,120,0,100,0,126,0,101,0,0,0,110,0,120,0,107,0,126,0,111,0,0,0,110,0,120,0,113,0,126,0,114,0,0,0,110,0,121,0,98,0,126,0,121,0,0,0,110,0,122,0,97,0,126,0,98,0,0,0,110,0,122,0,121,0,126,0,122,0,0,0,111,0,98,0,107,0,126,0,109,0,0,0,111,0,98,0,116,0,126,0,117,0,0,0,111,0,100,0,116,0,126,0,117,0,0,0,111,0,103,0,98,0,126,0,99,0,0,0,111,0,104,0,116,0,126,0,117,0,0,0,111,0,106,0,98,0,126,0,99,0,0,0,111,0,106,0,118,0,126,0,119,0,0,0,111,0,107,0,97,0,126,0,101,0,0,0,111,0,107,0,103,0,126,0,111,0,0,0,111,0,107,0,114,0,126,0,115,0,0,0,111,0,107,0,117,0,126,0,118,0,0,0,111,0,108,0,100,0,126,0,101,0,0,0,111,0,108,0,116,0,126,0,117,0,0,0,111,0,109,0,97,0,126,0,99,0,0,0,111,0,109,0,107,0,126,0,108,0,0,0,111,0,109,0,110,0,126,0,114,0,0,0,111,0,109,0,116,0,126,0,121,0,0,0,111,0,110,0,97,0,126,0,98,0,0,0,111,0,110,0,105,0,126,0,107,0,0,0,111,0,110,0,110,0,126,0,112,0,0,0,111,0,110,0,114,0,126,0,117,0,0,0,111,0,110,0,119,0,126,0,120,0,0,0,111,0,111,0,114,0,126,0,115,0,0,0,111,0,114,0,103,0,126,0,104,0,0,0,111,0,114,0,110,0,126,0,111,0,0,0,111,0,114,0,114,0,126,0,120,0,0,0,111,0,115,0,110,0,126,0,112,0,0,0,111,0,115,0,116,0,126,0,117,0,0,0,111,0,116,0,97,0,126,0,98,0,0,0,111,0,116,0,100,0,126,0,101,0,0,0,111,0,116,0,107,0,126,0,111,0,0,0,111,0,116,0,113,0,126,0,117,0,0,0,111,0,116,0,119,0,126,0,122,0,0,0,111,0,117,0,97,0,126,0,98,0,0,0,112,0,97,0,50,0,126,0,57,0,0,0,112,0,97,0,97,0,126,0,105,0,0,0,112,0,97,0,107,0,126,0,109,0,0,0,112,0,97,0,111,0,126,0,115,0,0,0,112,0,97,0,117,0,126,0,122,0,0,0,112,0,98,0,98,0,126,0,99,0,0,0,112,0,98,0,101,0,126,0,105,0,0,0,112,0,98,0,108,0,126,0,112,0,0,0,112,0,98,0,114,0,126,0,116,0,0,0,112,0,99,0,97,0,126,0,110,0,0,0,112,0,100,0,110,0,126,0,111,0,0,0,112,0,100,0,116,0,126,0,117,0,0,0,112,0,101,0,97,0,110,0,111,0,0,0,112,0,101,0,97,0,126,0,98,0,0,0,112,0,101,0,100,0,126,0,109,0,0,0,112,0,101,0,108,0,97,0,108,0,0,0,112,0,101,0,108,0,97,0,109,0,0,0,112,0,101,0,111,0,126,0,113,0,0,0,112,0,101,0,120,0,126,0,122,0,0,0,112,0,103,0,107,0,126,0,108,0,0,0,112,0,103,0,109,0,112,0,108,0,0,0,112,0,103,0,109,0,112,0,109,0,0,0,112,0,104,0,98,0,117,0,107,0,0,0,112,0,104,0,98,0,117,0,108,0,0,0,112,0,104,0,99,0,97,0,109,0,0,0,112,0,104,0,99,0,97,0,110,0,0,0,112,0,104,0,99,0,97,0,115,0,0,0,112,0,104,0,99,0,97,0,116,0,0,0,112,0,104,0,103,0,126,0,111,0,0,0,112,0,104,0,112,0,97,0,109,0,0,0,112,0,104,0,112,0,97,0,110,0,0,0,112,0,104,0,113,0,126,0,114,0,0,0,112,0,104,0,116,0,126,0,119,0,0,0,112,0,105,0,97,0,126,0,104,0,0,0,112,0,105,0,108,0,126,0,112,0,0,0,112,0,105,0,114,0,126,0,122,0,0,0,112,0,107,0,97,0,126,0,99,0,0,0,112,0,107,0,103,0,126,0,104,0,0,0,112,0,107,0,110,0,126,0,112,0,0,0,112,0,107,0,114,0,126,0,117,0,0,0,112,0,108,0,97,0,126,0,104,0,0,0,112,0,108,0,106,0,126,0,108,0,0,0,112,0,108,0,110,0,126,0,111,0,0,0,112,0,108,0,113,0,126,0,115,0,0,0,112,0,108,0,117,0,126,0,119,0,0,0,112,0,108,0,121,0,126,0,122,0,0,0,112,0,109,0,97,0,126,0,98,0,0,0,112,0,109,0,100,0,126,0,102,0,0,0,112,0,109,0,104,0,126,0,111,0,0,0,112,0,109,0,113,0,126,0,116,0,0,0,112,0,109,0,119,0,126,0,122,0,0,0,112,0,110,0,99,0,126,0,101,0,0,0,112,0,110,0,103,0,126,0,122,0,0,0,112,0,111,0,101,0,126,0,105,0,0,0,112,0,111,0,109,0,126,0,113,0,0,0,112,0,111,0,115,0,126,0,116,0,0,0,112,0,111,0,118,0,126,0,122,0,0,0,112,0,112,0,107,0,126,0,113,0,0,0,112,0,112,0,115,0,126,0,117,0,0,0,112,0,114,0,99,0,126,0,105,0,0,0,112,0,114,0,107,0,126,0,114,0,0,0,112,0,114,0,116,0,126,0,117,0,0,0,112,0,114,0,119,0,126,0,120,0,0,0,112,0,115,0,99,0,126,0,101,0,0,0,112,0,115,0,103,0,126,0,105,0,0,0,112,0,115,0,106,0,101,0,109,0,0,0,112,0,115,0,108,0,126,0,117,0,0,0,112,0,116,0,104,0,126,0,105,0,0,0,112,0,116,0,110,0,126,0,114,0,0,0,112,0,116,0,116,0,126,0,119,0,0,0,112,0,117,0,97,0,126,0,103,0,0,0,112,0,117,0,105,0,126,0,106,0,0,0,112,0,117,0,111,0,126,0,114,0,0,0,112,0,117,0,116,0,101,0,114,0,0,0,112,0,117,0,116,0,126,0,117,0,0,0,112,0,117,0,119,0,126,0,121,0,0,0,112,0,119,0,50,0,50,0,55,0,0,0,112,0,119,0,50,0,50,0,56,0,0,0,112,0,119,0,97,0,126,0,98,0,0,0,112,0,119,0,109,0,126,0,111,0,0,0,112,0,121,0,50,0,126,0,57,0,0,0,112,0,121,0,109,0,126,0,110,0,0,0,112,0,121,0,120,0,126,0,121,0,0,0,113,0,97,0,97,0,126,0,122,0,0,0,113,0,98,0,97,0,126,0,122,0,0,0,113,0,99,0,97,0,126,0,122,0,0,0,113,0,100,0,97,0,126,0,122,0,0,0,113,0,101,0,97,0,126,0,122,0,0,0,113,0,102,0,97,0,126,0,121,0,0,0,113,0,103,0,97,0,126,0,122,0,0,0,113,0,104,0,97,0,126,0,122,0,0,0,113,0,105,0,97,0,126,0,122,0,0,0,113,0,106,0,97,0,126,0,122,0,0,0,113,0,107,0,97,0,126,0,122,0,0,0,113,0,108,0,97,0,126,0,122,0,0,0,113,0,109,0,97,0,126,0,122,0,0,0,113,0,110,0,97,0,126,0,122,0,0,0,113,0,111,0,97,0,126,0,122,0,0,0,113,0,112,0,97,0,126,0,122,0,0,0,113,0,113,0,97,0,126,0,122,0,0,0,113,0,114,0,97,0,126,0,122,0,0,0,113,0,115,0,97,0,126,0,122,0,0,0,113,0,116,0,97,0,126,0,122,0,0,0,113,0,117,0,97,0,126,0,100,0,0,0,113,0,117,0,102,0,126,0,105,0,0,0,113,0,117,0,107,0,126,0,110,0,0,0,113,0,117,0,112,0,126,0,115,0,0,0,113,0,117,0,118,0,126,0,121,0,0,0,113,0,118,0,104,0,126,0,106,0,0,0,113,0,118,0,108,0,126,0,112,0,0,0,113,0,118,0,121,0,126,0,122,0,0,0,113,0,119,0,115,0,126,0,116,0,0,0,113,0,120,0,110,0,126,0,117,0,0,0,114,0,97,0,97,0,126,0,100,0,0,0,114,0,97,0,102,0,126,0,122,0,0,0,114,0,98,0,107,0,126,0,108,0,0,0,114,0,101,0,97,0,126,0,98,0,0,0,114,0,101,0,105,0,126,0,106,0,0,0,114,0,101,0,108,0,126,0,110,0,0,0,114,0,101,0,114,0,126,0,116,0,0,0,114,0,103,0,114,0,126,0,115,0,0,0,114,0,105,0,97,0,126,0,98,0,0,0,114,0,105,0,103,0,105,0,107,0,0,0,114,0,105,0,108,0,126,0,110,0,0,0,114,0,105,0,116,0,126,0,117,0,0,0,114,0,107,0,97,0,126,0,98,0,0,0,114,0,107,0,104,0,126,0,105,0,0,0,114,0,109,0,97,0,126,0,105,0,0,0,114,0,109,0,107,0,126,0,113,0,0,0,114,0,109,0,115,0,126,0,120,0,0,0,114,0,111,0,97,0,126,0,103,0,0,0,114,0,111,0,108,0,126,0,109,0,0,0,114,0,111,0,111,0,126,0,112,0,0,0,114,0,111,0,122,0,97,0,106,0,0,0,114,0,115,0,107,0,126,0,110,0,0,0,114,0,117,0,98,0,126,0,99,0,0,0,114,0,117,0,101,0,126,0,105,0,0,0,114,0,117,0,109,0,103,0,114,0,0,0,114,0,117,0,111,0,126,0,113,0,0,0,114,0,117,0,116,0,126,0,117,0,0,0,114,0,117,0,121,0,126,0,122,0,0,0,114,0,119,0,107,0,126,0,109,0,0,0,115,0,97,0,97,0,126,0,102,0,0,0,115,0,97,0,104,0,126,0,109,0,0,0,115,0,97,0,113,0,126,0,122,0,0,0,115,0,98,0,97,0,126,0,122,0,0,0,115,0,99,0,101,0,126,0,105,0,0,0,115,0,99,0,107,0,126,0,108,0,0,0,115,0,99,0,110,0,126,0,113,0,0,0,115,0,99,0,115,0,126,0,120,0,0,0,115,0,100,0,97,0,126,0,99,0,0,0,115,0,100,0,101,0,126,0,104,0,0,0,115,0,100,0,106,0,126,0,108,0,0,0,115,0,100,0,110,0,126,0,118,0,0,0,115,0,101,0,97,0,126,0,119,0,0,0,115,0,101,0,99,0,126,0,105,0,0,0,115,0,101,0,109,0,126,0,111,0,0,0,115,0,101,0,115,0,126,0,117,0,0,0,115,0,101,0,119,0,126,0,122,0,0,0,115,0,101,0,121,0,126,0,122,0,0,0,115,0,103,0,97,0,126,0,101,0,0,0,115,0,103,0,103,0,126,0,107,0,0,0,115,0,103,0,109,0,126,0,110,0,0,0,115,0,103,0,114,0,126,0,117,0,0,0,115,0,103,0,119,0,126,0,122,0,0,0,115,0,104,0,97,0,126,0,101,0,0,0,115,0,104,0,103,0,126,0,122,0,0,0,115,0,105,0,48,0,48,0,49,0,0,0,115,0,105,0,48,0,48,0,50,0,0,0,115,0,105,0,48,0,48,0,52,0,0,0,115,0,105,0,48,0,48,0,54,0,0,0,115,0,105,0,48,0,48,0,55,0,0,0,115,0,105,0,48,0,49,0,48,0,0,0,115,0,105,0,48,0,49,0,49,0,0,0,115,0,105,0,48,0,49,0,53,0,0,0,115,0,105,0,48,0,49,0,54,0,0,0,115,0,105,0,48,0,50,0,50,0,0,0,115,0,105,0,48,0,50,0,51,0,0,0,115,0,105,0,48,0,50,0,53,0,0,0,115,0,105,0,48,0,50,0,54,0,0,0,115,0,105,0,48,0,50,0,55,0,0,0,115,0,105,0,48,0,51,0,51,0,0,0,115,0,105,0,48,0,51,0,53,0,0,0,115,0,105,0,48,0,51,0,55,0,0,0,115,0,105,0,48,0,51,0,56,0,0,0,115,0,105,0,48,0,51,0,57,0,0,0,115,0,105,0,48,0,52,0,48,0,0,0,115,0,105,0,48,0,52,0,49,0,0,0,115,0,105,0,48,0,52,0,50,0,0,0,115,0,105,0,48,0,52,0,51,0,0,0,115,0,105,0,48,0,52,0,53,0,0,0,115,0,105,0,48,0,52,0,54,0,0,0,115,0,105,0,48,0,52,0,55,0,0,0,115,0,105,0,48,0,52,0,57,0,0,0,115,0,105,0,48,0,53,0,48,0,0,0,115,0,105,0,48,0,53,0,49,0,0,0,115,0,105,0,48,0,53,0,50,0,0,0,115,0,105,0,48,0,53,0,51,0,0,0,115,0,105,0,48,0,53,0,52,0,0,0,115,0,105,0,48,0,53,0,53,0,0,0,115,0,105,0,48,0,53,0,54,0,0,0,115,0,105,0,48,0,53,0,55,0,0,0,115,0,105,0,48,0,53,0,56,0,0,0,115,0,105,0,48,0,53,0,57,0,0,0,115,0,105,0,48,0,54,0,49,0,0,0,115,0,105,0,48,0,54,0,50,0,0,0,115,0,105,0,48,0,54,0,51,0,0,0,115,0,105,0,48,0,54,0,52,0,0,0,115,0,105,0,48,0,54,0,53,0,0,0,115,0,105,0,48,0,54,0,54,0,0,0,115,0,105,0,48,0,54,0,55,0,0,0,115,0,105,0,48,0,54,0,56,0,0,0,115,0,105,0,48,0,54,0,57,0,0,0,115,0,105,0,48,0,55,0,49,0,0,0,115,0,105,0,48,0,55,0,51,0,0,0,115,0,105,0,48,0,55,0,53,0,0,0,115,0,105,0,48,0,55,0,55,0,0,0,115,0,105,0,48,0,55,0,56,0,0,0,115,0,105,0,48,0,55,0,57,0,0,0,115,0,105,0,48,0,56,0,48,0,0,0,115,0,105,0,48,0,56,0,49,0,0,0,115,0,105,0,48,0,56,0,50,0,0,0,115,0,105,0,48,0,56,0,51,0,0,0,115,0,105,0,48,0,56,0,53,0,0,0,115,0,105,0,48,0,56,0,55,0,0,0,115,0,105,0,48,0,56,0,56,0,0,0,115,0,105,0,48,0,56,0,57,0,0,0,115,0,105,0,48,0,57,0,48,0,0,0,115,0,105,0,48,0,57,0,49,0,0,0,115,0,105,0,48,0,57,0,51,0,0,0,115,0,105,0,48,0,57,0,52,0,0,0,115,0,105,0,48,0,57,0,53,0,0,0,115,0,105,0,48,0,57,0,55,0,0,0,115,0,105,0,48,0,57,0,56,0,0,0,115,0,105,0,48,0,57,0,57,0,0,0,115,0,105,0,49,0,48,0,48,0,0,0,115,0,105,0,49,0,48,0,49,0,0,0,115,0,105,0,49,0,48,0,50,0,0,0,115,0,105,0,49,0,48,0,51,0,0,0,115,0,105,0,49,0,48,0,52,0,0,0,115,0,105,0,49,0,48,0,53,0,0,0,115,0,105,0,49,0,48,0,54,0,0,0,115,0,105,0,49,0,48,0,55,0,0,0,115,0,105,0,49,0,48,0,56,0,0,0,115,0,105,0,49,0,48,0,57,0,0,0,115,0,105,0,49,0,49,0,48,0,0,0,115,0,105,0,49,0,49,0,49,0,0,0,115,0,105,0,49,0,49,0,50,0,0,0,115,0,105,0,49,0,49,0,51,0,0,0,115,0,105,0,49,0,49,0,52,0,0,0,115,0,105,0,49,0,49,0,53,0,0,0,115,0,105,0,49,0,49,0,55,0,0,0,115,0,105,0,49,0,49,0,56,0,0,0,115,0,105,0,49,0,49,0,57,0,0,0,115,0,105,0,49,0,50,0,49,0,0,0,115,0,105,0,49,0,50,0,50,0,0,0,115,0,105,0,49,0,50,0,51,0,0,0,115,0,105,0,49,0,50,0,53,0,0,0,115,0,105,0,49,0,50,0,54,0,0,0,115,0,105,0,49,0,50,0,55,0,0,0,115,0,105,0,49,0,50,0,56,0,0,0,115,0,105,0,49,0,50,0,57,0,0,0,115,0,105,0,49,0,51,0,48,0,0,0,115,0,105,0,49,0,51,0,49,0,0,0,115,0,105,0,49,0,51,0,51,0,0,0,115,0,105,0,49,0,51,0,52,0,0,0,115,0,105,0,49,0,51,0,53,0,0,0,115,0,105,0,49,0,51,0,55,0,0,0,115,0,105,0,49,0,51,0,56,0,0,0,115,0,105,0,49,0,51,0,57,0,0,0,115,0,105,0,49,0,52,0,49,0,0,0,115,0,105,0,49,0,52,0,54,0,0,0,115,0,105,0,49,0,52,0,55,0,0,0,115,0,105,0,49,0,52,0,57,0,0,0,115,0,105,0,49,0,53,0,48,0,0,0,115,0,105,0,49,0,53,0,51,0,0,0,115,0,105,0,49,0,53,0,55,0,0,0,115,0,105,0,49,0,53,0,57,0,0,0,115,0,105,0,49,0,54,0,48,0,0,0,115,0,105,0,49,0,54,0,49,0,0,0,115,0,105,0,49,0,54,0,51,0,0,0,115,0,105,0,49,0,54,0,52,0,0,0,115,0,105,0,49,0,54,0,53,0,0,0,115,0,105,0,49,0,54,0,55,0,0,0,115,0,105,0,49,0,54,0,56,0,0,0,115,0,105,0,49,0,54,0,57,0,0,0,115,0,105,0,49,0,55,0,49,0,0,0,115,0,105,0,49,0,55,0,50,0,0,0,115,0,105,0,49,0,55,0,51,0,0,0,115,0,105,0,49,0,55,0,54,0,0,0,115,0,105,0,49,0,55,0,55,0,0,0,115,0,105,0,49,0,55,0,57,0,0,0,115,0,105,0,49,0,56,0,49,0,0,0,115,0,105,0,49,0,56,0,50,0,0,0,115,0,105,0,49,0,56,0,51,0,0,0,115,0,105,0,49,0,56,0,53,0,0,0,115,0,105,0,49,0,56,0,54,0,0,0,115,0,105,0,49,0,56,0,55,0,0,0,115,0,105,0,49,0,56,0,57,0,0,0,115,0,105,0,49,0,57,0,48,0,0,0,115,0,105,0,49,0,57,0,51,0,0,0,115,0,105,0,49,0,57,0,52,0,0,0,115,0,105,0,49,0,57,0,53,0,0,0,115,0,105,0,49,0,57,0,55,0,0,0,115,0,105,0,49,0,57,0,56,0,0,0,115,0,105,0,49,0,57,0,57,0,0,0,115,0,105,0,50,0,48,0,48,0,0,0,115,0,105,0,50,0,48,0,49,0,0,0,115,0,105,0,50,0,48,0,50,0,0,0,115,0,105,0,50,0,48,0,51,0,0,0,115,0,105,0,50,0,48,0,52,0,0,0,115,0,105,0,50,0,48,0,53,0,0,0,115,0,105,0,50,0,48,0,54,0,0,0,115,0,105,0,50,0,48,0,55,0,0,0,115,0,105,0,50,0,48,0,56,0,0,0,115,0,105,0,50,0,48,0,57,0,0,0,115,0,105,0,50,0,49,0,48,0,0,0,115,0,105,0,50,0,49,0,49,0,0,0,115,0,105,0,50,0,49,0,50,0,0,0,115,0,105,0,50,0,49,0,51,0,0,0,115,0,105,0,97,0,126,0,98,0,0,0,115,0,105,0,100,0,126,0,109,0,0,0,115,0,105,0,111,0,126,0,122,0,0,0,115,0,106,0,97,0,126,0,98,0,0,0,115,0,106,0,100,0,126,0,101,0,0,0,115,0,106,0,107,0,126,0,112,0,0,0,115,0,106,0,114,0,126,0,117,0,0,0,115,0,107,0,97,0,126,0,106,0,0,0,115,0,107,0,109,0,126,0,122,0,0,0,115,0,108,0,99,0,126,0,106,0,0,0,115,0,108,0,108,0,126,0,110,0,0,0,115,0,108,0,112,0,126,0,117,0,0,0,115,0,108,0,119,0,126,0,122,0,0,0,115,0,109,0,97,0,126,0,99,0,0,0,115,0,109,0,102,0,126,0,110,0,0,0,115,0,109,0,112,0,126,0,122,0,0,0,115,0,110,0,101,0,126,0,103,0,0,0,115,0,110,0,105,0,126,0,115,0,0,0,115,0,110,0,117,0,126,0,122,0,0,0,115,0,111,0,97,0,126,0,101,0,0,0,115,0,111,0,103,0,126,0,108,0,0,0,115,0,111,0,108,0,98,0,97,0,0,0,115,0,111,0,110,0,126,0,115,0,0,0,115,0,111,0,117,0,126,0,122,0,0,0,115,0,112,0,98,0,126,0,101,0,0,0,115,0,112,0,107,0,126,0,118,0,0,0,115,0,113,0,106,0,126,0,107,0,0,0,115,0,113,0,109,0,126,0,111,0,0,0,115,0,113,0,113,0,126,0,117,0,0,0,115,0,114,0,97,0,126,0,98,0,0,0,115,0,114,0,101,0,126,0,105,0,0,0,115,0,114,0,107,0,126,0,111,0,0,0,115,0,114,0,113,0,126,0,122,0,0,0,115,0,115,0,97,0,126,0,118,0,0,0,115,0,115,0,120,0,126,0,122,0,0,0,115,0,116,0,97,0,126,0,98,0,0,0,115,0,116,0,100,0,126,0,119,0,0,0,115,0,117,0,97,0,126,0,99,0,0,0,115,0,117,0,105,0,126,0,107,0,0,0,115,0,117,0,108,0,126,0,109,0,0,0,115,0,117,0,113,0,126,0,116,0,0,0,115,0,117,0,118,0,126,0,122,0,0,0,115,0,118,0,97,0,126,0,99,0,0,0,115,0,119,0,102,0,126,0,103,0,0,0,115,0,119,0,105,0,126,0,121,0,0,0,115,0,120,0,98,0,126,0,99,0,0,0,115,0,120,0,107,0,126,0,111,0,0,0,115,0,120,0,114,0,126,0,115,0,0,0,115,0,121,0,97,0,126,0,100,0,0,0,115,0,121,0,107,0,126,0,111,0,0,0,115,0,121,0,114,0,126,0,115,0,0,0,115,0,121,0,119,0,126,0,121,0,0,0,115,0,122,0,97,0,126,0,101,0,0,0,115,0,122,0,118,0,126,0,119,0,0,0,116,0,97,0,97,0,126,0,103,0,0,0,116,0,97,0,105,0,126,0,108,0,0,0,116,0,97,0,110,0,126,0,115,0,0,0,116,0,97,0,117,0,126,0,122,0,0,0,116,0,98,0,99,0,126,0,122,0,0,0,116,0,99,0,97,0,126,0,105,0,0,0,116,0,99,0,107,0,126,0,113,0,0,0,116,0,99,0,115,0,126,0,117,0,0,0,116,0,99,0,119,0,126,0,122,0,0,0,116,0,100,0,97,0,126,0,111,0,0,0,116,0,100,0,113,0,126,0,116,0,0,0,116,0,100,0,120,0,126,0,121,0,0,0,116,0,101,0,97,0,126,0,105,0,0,0,116,0,101,0,109,0,126,0,122,0,0,0,116,0,102,0,110,0,126,0,111,0,0,0,116,0,103,0,97,0,126,0,102,0,0,0,116,0,103,0,104,0,126,0,106,0,0,0,116,0,103,0,110,0,126,0,122,0,0,0,116,0,104,0,100,0,126,0,102,0,0,0,116,0,104,0,104,0,126,0,105,0,0,0,116,0,104,0,107,0,126,0,110,0,0,0,116,0,104,0,112,0,126,0,118,0,0,0,116,0,104,0,119,0,126,0,120,0,0,0,116,0,104,0,121,0,126,0,122,0,0,0,116,0,105,0,100,0,126,0,101,0,0,0,116,0,105,0,102,0,126,0,113,0,0,0,116,0,105,0,115,0,126,0,122,0,0,0,116,0,106,0,105,0,126,0,106,0,0,0,116,0,106,0,108,0,126,0,112,0,0,0,116,0,107,0,97,0,126,0,98,0,0,0,116,0,107,0,100,0,126,0,103,0,0,0,116,0,107,0,108,0,126,0,110,0,0,0,116,0,107,0,112,0,126,0,120,0,0,0,116,0,108,0,97,0,126,0,100,0,0,0,116,0,108,0,102,0,126,0,118,0,0,0,116,0,108,0,120,0,126,0,121,0,0,0,116,0,109,0,97,0,126,0,98,0,0,0,116,0,109,0,97,0,126,0,111,0,0,0,116,0,109,0,108,0,126,0,109,0,0,0,116,0,109,0,113,0,126,0,119,0,0,0,116,0,109,0,121,0,126,0,122,0,0,0,116,0,110,0,97,0,126,0,100,0,0,0,116,0,110,0,101,0,126,0,102,0,0,0,116,0,110,0,103,0,126,0,105,0,0,0,116,0,110,0,107,0,126,0,122,0,0,0,116,0,111,0,98,0,126,0,100,0,0,0,116,0,111,0,102,0,126,0,109,0,0,0,116,0,111,0,111,0,126,0,115,0,0,0,116,0,111,0,117,0,126,0,122,0,0,0,116,0,112,0,101,0,126,0,103,0,0,0,116,0,112,0,105,0,126,0,114,0,0,0,116,0,112,0,116,0,126,0,122,0,0,0,116,0,113,0,108,0,126,0,114,0,0,0,116,0,113,0,116,0,126,0,117,0,0,0,116,0,114,0,97,0,126,0,122,0,0,0,116,0,115,0,97,0,126,0,101,0,0,0,116,0,115,0,103,0,126,0,109,0,0,0,116,0,115,0,112,0,126,0,122,0,0,0,116,0,116,0,97,0,126,0,112,0,0,0,116,0,116,0,101,0,116,0,111,0,0,0,116,0,116,0,114,0,99,0,109,0,0,0,116,0,116,0,114,0,126,0,119,0,0,0,116,0,116,0,119,0,116,0,111,0,0,0,116,0,116,0,121,0,126,0,122,0,0,0,116,0,117,0,97,0,126,0,106,0,0,0,116,0,117,0,108,0,126,0,113,0,0,0,116,0,117,0,115,0,126,0,122,0,0,0,116,0,118,0,100,0,126,0,101,0,0,0,116,0,118,0,107,0,126,0,111,0,0,0,116,0,118,0,115,0,126,0,117,0,0,0,116,0,118,0,119,0,126,0,121,0,0,0,116,0,119,0,97,0,126,0,104,0,0,0,116,0,119,0,107,0,104,0,113,0,0,0,116,0,119,0,108,0,126,0,114,0,0,0,116,0,119,0,116,0,110,0,113,0,0,0,116,0,119,0,116,0,112,0,113,0,0,0,116,0,119,0,116,0,120,0,113,0,0,0,116,0,119,0,116,0,126,0,117,0,0,0,116,0,119,0,119,0,126,0,121,0,0,0,116,0,120,0,97,0,126,0,99,0,0,0,116,0,120,0,103,0,126,0,106,0,0,0,116,0,120,0,109,0,126,0,111,0,0,0,116,0,120,0,113,0,126,0,117,0,0,0,116,0,120,0,120,0,126,0,121,0,0,0,116,0,121,0,104,0,126,0,106,0,0,0,116,0,121,0,114,0,126,0,118,0,0,0,116,0,121,0,120,0,126,0,122,0,0,0,116,0,122,0,108,0,126,0,111,0,0,0,117,0,97,0,109,0,126,0,110,0,0,0,117,0,99,0,99,0,111,0,114,0,0,0,117,0,100,0,105,0,126,0,106,0,0,0,117,0,100,0,108,0,126,0,109,0,0,0,117,0,103,0,49,0,48,0,49,0,0,0,117,0,103,0,49,0,48,0,50,0,0,0,117,0,103,0,49,0,48,0,51,0,0,0,117,0,103,0,49,0,48,0,52,0,0,0,117,0,103,0,49,0,48,0,53,0,0,0,117,0,103,0,49,0,48,0,54,0,0,0,117,0,103,0,49,0,48,0,55,0,0,0,117,0,103,0,49,0,48,0,56,0,0,0,117,0,103,0,49,0,48,0,57,0,0,0,117,0,103,0,49,0,49,0,48,0,0,0,117,0,103,0,49,0,49,0,49,0,0,0,117,0,103,0,49,0,49,0,50,0,0,0,117,0,103,0,49,0,49,0,51,0,0,0,117,0,103,0,49,0,49,0,52,0,0,0,117,0,103,0,49,0,49,0,53,0,0,0,117,0,103,0,49,0,49,0,54,0,0,0,117,0,103,0,49,0,49,0,55,0,0,0,117,0,103,0,49,0,49,0,56,0,0,0,117,0,103,0,49,0,49,0,57,0,0,0,117,0,103,0,49,0,50,0,48,0,0,0,117,0,103,0,49,0,50,0,49,0,0,0,117,0,103,0,49,0,50,0,50,0,0,0,117,0,103,0,49,0,50,0,51,0,0,0,117,0,103,0,49,0,50,0,52,0,0,0,117,0,103,0,49,0,50,0,53,0,0,0,117,0,103,0,49,0,50,0,54,0,0,0,117,0,103,0,50,0,48,0,49,0,0,0,117,0,103,0,50,0,48,0,50,0,0,0,117,0,103,0,50,0,48,0,51,0,0,0,117,0,103,0,50,0,48,0,52,0,0,0,117,0,103,0,50,0,48,0,53,0,0,0,117,0,103,0,50,0,48,0,54,0,0,0,117,0,103,0,50,0,48,0,55,0,0,0,117,0,103,0,50,0,48,0,56,0,0,0,117,0,103,0,50,0,48,0,57,0,0,0,117,0,103,0,50,0,49,0,48,0,0,0,117,0,103,0,50,0,49,0,49,0,0,0,117,0,103,0,50,0,49,0,50,0,0,0,117,0,103,0,50,0,49,0,51,0,0,0,117,0,103,0,50,0,49,0,52,0,0,0,117,0,103,0,50,0,49,0,53,0,0,0,117,0,103,0,50,0,49,0,54,0,0,0,117,0,103,0,50,0,49,0,55,0,0,0,117,0,103,0,50,0,49,0,56,0,0,0,117,0,103,0,50,0,49,0,57,0,0,0,117,0,103,0,50,0,50,0,48,0,0,0,117,0,103,0,50,0,50,0,49,0,0,0,117,0,103,0,50,0,50,0,50,0,0,0,117,0,103,0,50,0,50,0,51,0,0,0,117,0,103,0,50,0,50,0,52,0,0,0,117,0,103,0,50,0,50,0,53,0,0,0,117,0,103,0,50,0,50,0,54,0,0,0,117,0,103,0,50,0,50,0,55,0,0,0,117,0,103,0,50,0,50,0,56,0,0,0,117,0,103,0,50,0,50,0,57,0,0,0,117,0,103,0,50,0,51,0,53,0,0,0,117,0,103,0,50,0,51,0,54,0,0,0,117,0,103,0,50,0,51,0,55,0,0,0,117,0,103,0,51,0,48,0,49,0,0,0,117,0,103,0,51,0,48,0,50,0,0,0,117,0,103,0,51,0,48,0,51,0,0,0,117,0,103,0,51,0,48,0,52,0,0,0,117,0,103,0,51,0,48,0,53,0,0,0,117,0,103,0,51,0,48,0,54,0,0,0,117,0,103,0,51,0,48,0,55,0,0,0,117,0,103,0,51,0,48,0,56,0,0,0,117,0,103,0,51,0,48,0,57,0,0,0,117,0,103,0,51,0,49,0,48,0,0,0,117,0,103,0,51,0,49,0,49,0,0,0,117,0,103,0,51,0,49,0,50,0,0,0,117,0,103,0,51,0,49,0,51,0,0,0,117,0,103,0,51,0,49,0,52,0,0,0,117,0,103,0,51,0,49,0,53,0,0,0,117,0,103,0,51,0,49,0,54,0,0,0,117,0,103,0,51,0,49,0,55,0,0,0,117,0,103,0,51,0,49,0,56,0,0,0,117,0,103,0,51,0,49,0,57,0,0,0,117,0,103,0,51,0,50,0,49,0,0,0,117,0,103,0,51,0,50,0,50,0,0,0,117,0,103,0,51,0,50,0,51,0,0,0,117,0,103,0,51,0,50,0,52,0,0,0,117,0,103,0,51,0,50,0,53,0,0,0,117,0,103,0,51,0,50,0,54,0,0,0,117,0,103,0,51,0,50,0,55,0,0,0,117,0,103,0,51,0,50,0,57,0,0,0,117,0,103,0,51,0,51,0,48,0,0,0,117,0,103,0,51,0,51,0,49,0,0,0,117,0,103,0,51,0,51,0,51,0,0,0,117,0,103,0,51,0,51,0,53,0,0,0,117,0,103,0,51,0,51,0,55,0,0,0,117,0,103,0,52,0,48,0,49,0,0,0,117,0,103,0,52,0,48,0,50,0,0,0,117,0,103,0,52,0,48,0,51,0,0,0,117,0,103,0,52,0,48,0,52,0,0,0,117,0,103,0,52,0,48,0,53,0,0,0,117,0,103,0,52,0,48,0,54,0,0,0,117,0,103,0,52,0,48,0,55,0,0,0,117,0,103,0,52,0,48,0,56,0,0,0,117,0,103,0,52,0,48,0,57,0,0,0,117,0,103,0,52,0,49,0,48,0,0,0,117,0,103,0,52,0,49,0,49,0,0,0,117,0,103,0,52,0,49,0,50,0,0,0,117,0,103,0,52,0,49,0,51,0,0,0,117,0,103,0,52,0,49,0,53,0,0,0,117,0,103,0,52,0,49,0,54,0,0,0,117,0,103,0,52,0,50,0,48,0,0,0,117,0,103,0,52,0,50,0,49,0,0,0,117,0,103,0,52,0,50,0,50,0,0,0,117,0,103,0,52,0,50,0,51,0,0,0,117,0,103,0,52,0,50,0,52,0,0,0,117,0,103,0,52,0,50,0,53,0,0,0,117,0,103,0,52,0,50,0,54,0,0,0,117,0,103,0,52,0,50,0,55,0,0,0,117,0,103,0,52,0,50,0,57,0,0,0,117,0,103,0,52,0,51,0,49,0,0,0,117,0,103,0,52,0,51,0,50,0,0,0,117,0,103,0,52,0,51,0,51,0,0,0,117,0,103,0,52,0,51,0,53,0,0,0,117,0,103,0,97,0,126,0,98,0,0,0,117,0,103,0,110,0,126,0,111,0,0,0,117,0,107,0,103,0,126,0,105,0,0,0,117,0,107,0,112,0,126,0,113,0,0,0,117,0,107,0,117,0,126,0,119,0,0,0,117,0,108,0,97,0,126,0,99,0,0,0,117,0,108,0,101,0,126,0,102,0,0,0,117,0,108,0,107,0,126,0,110,0,0,0,117,0,109,0,97,0,126,0,100,0,0,0,117,0,109,0,109,0,126,0,112,0,0,0,117,0,109,0,114,0,126,0,115,0,0,0,117,0,110,0,109,0,126,0,110,0,0,0,117,0,114,0,97,0,126,0,99,0,0,0,117,0,114,0,101,0,126,0,112,0,0,0,117,0,114,0,116,0,126,0,122,0,0,0,117,0,115,0,104,0,126,0,105,0,0,0,118,0,97,0,101,0,126,0,106,0,0,0,118,0,97,0,108,0,126,0,112,0,0,0,118,0,97,0,114,0,126,0,115,0,0,0,118,0,97,0,117,0,126,0,118,0,0,0,118,0,101,0,97,0,126,0,112,0,0,0,118,0,101,0,99,0,126,0,100,0,0,0,118,0,101,0,108,0,126,0,109,0,0,0,118,0,101,0,111,0,126,0,112,0,0,0,118,0,101,0,114,0,126,0,122,0,0,0,118,0,105,0,99,0,126,0,100,0,0,0,118,0,105,0,102,0,126,0,103,0,0,0,118,0,105,0,115,0,126,0,116,0,0,0,118,0,107,0,106,0,126,0,112,0,0,0,118,0,107,0,116,0,126,0,117,0,0,0,118,0,109,0,97,0,126,0,109,0,0,0,118,0,109,0,112,0,126,0,115,0,0,0,118,0,109,0,117,0,126,0,122,0,0,0,118,0,114,0,115,0,126,0,116,0,0,0,118,0,117,0,109,0,126,0,110,0,0,0,119,0,97,0,97,0,126,0,122,0,0,0,119,0,98,0,97,0,126,0,98,0,0,0,119,0,98,0,101,0,126,0,102,0,0,0,119,0,98,0,104,0,126,0,109,0,0,0,119,0,98,0,112,0,126,0,116,0,0,0,119,0,98,0,118,0,126,0,119,0,0,0,119,0,100,0,106,0,126,0,107,0,0,0,119,0,100,0,116,0,126,0,117,0,0,0,119,0,101,0,99,0,126,0,100,0,0,0,119,0,101,0,103,0,126,0,105,0,0,0,119,0,101,0,109,0,126,0,112,0,0,0,119,0,101,0,114,0,126,0,117,0,0,0,119,0,103,0,97,0,126,0,98,0,0,0,119,0,105,0,98,0,126,0,99,0,0,0,119,0,105,0,101,0,126,0,110,0,0,0,119,0,105,0,117,0,126,0,118,0,0,0,119,0,107,0,97,0,126,0,98,0,0,0,119,0,108,0,103,0,126,0,105,0,0,0,119,0,108,0,107,0,126,0,109,0,0,0,119,0,108,0,114,0,126,0,115,0,0,0,119,0,108,0,117,0,126,0,121,0,0,0,119,0,109,0,97,0,126,0,101,0,0,0,119,0,109,0,103,0,126,0,105,0,0,0,119,0,109,0,109,0,126,0,111,0,0,0,119,0,109,0,115,0,126,0,116,0,0,0,119,0,109,0,119,0,126,0,120,0,0,0,119,0,110,0,98,0,126,0,101,0,0,0,119,0,110,0,109,0,126,0,112,0,0,0,119,0,111,0,97,0,126,0,103,0,0,0,119,0,111,0,109,0,126,0,111,0,0,0,119,0,111,0,114,0,126,0,115,0,0,0,119,0,114,0,103,0,126,0,105,0,0,0,119,0,114,0,107,0,126,0,112,0,0,0,119,0,114,0,114,0,126,0,115,0,0,0,119,0,114,0,117,0,126,0,122,0,0,0,119,0,115,0,114,0,126,0,115,0,0,0,119,0,115,0,117,0,126,0,118,0,0,0,119,0,116,0,104,0,126,0,105,0,0,0,119,0,117,0,97,0,126,0,98,0,0,0,119,0,117,0,108,0,126,0,110,0,0,0,119,0,117,0,116,0,126,0,118,0,0,0,119,0,117,0,120,0,126,0,121,0,0,0,119,0,119,0,97,0,126,0,98,0,0,0,119,0,121,0,109,0,126,0,110,0,0,0,120,0,97,0,97,0,126,0,101,0,0,0,120,0,97,0,105,0,126,0,119,0,0,0,120,0,98,0,98,0,126,0,101,0,0,0,120,0,98,0,105,0,126,0,106,0,0,0,120,0,98,0,109,0,126,0,112,0,0,0,120,0,99,0,98,0,126,0,99,0,0,0,120,0,99,0,103,0,126,0,104,0,0,0,120,0,99,0,108,0,126,0,111,0,0,0,120,0,99,0,116,0,126,0,119,0,0,0,120,0,101,0,108,0,126,0,109,0,0,0,120,0,101,0,114,0,126,0,117,0,0,0,120,0,103,0,97,0,126,0,98,0,0,0,120,0,103,0,102,0,126,0,103,0,0,0,120,0,103,0,108,0,126,0,110,0,0,0,120,0,104,0,99,0,126,0,101,0,0,0,120,0,104,0,116,0,126,0,118,0,0,0,120,0,105,0,114,0,126,0,115,0,0,0,120,0,107,0,97,0,126,0,103,0,0,0,120,0,107,0,105,0,126,0,108,0,0,0,120,0,107,0,110,0,126,0,122,0,0,0,120,0,108,0,97,0,126,0,101,0,0,0,120,0,108,0,110,0,126,0,112,0,0,0,120,0,109,0,97,0,126,0,104,0,0,0,120,0,109,0,106,0,126,0,122,0,0,0,120,0,110,0,97,0,126,0,98,0,0,0,120,0,110,0,103,0,126,0,107,0,0,0,120,0,110,0,109,0,126,0,111,0,0,0,120,0,110,0,113,0,126,0,117,0,0,0,120,0,110,0,121,0,126,0,122,0,0,0,120,0,111,0,99,0,126,0,100,0,0,0,120,0,111,0,109,0,126,0,112,0,0,0,120,0,112,0,97,0,126,0,100,0,0,0,120,0,112,0,102,0,126,0,122,0,0,0,120,0,114,0,97,0,126,0,98,0,0,0,120,0,114,0,100,0,126,0,101,0,0,0,120,0,114,0,109,0,126,0,110,0,0,0,120,0,114,0,116,0,126,0,117,0,0,0,120,0,115,0,97,0,126,0,101,0,0,0,120,0,115,0,104,0,126,0,105,0,0,0,120,0,115,0,109,0,126,0,115,0,0,0,120,0,115,0,117,0,126,0,118,0,0,0,120,0,116,0,97,0,126,0,101,0,0,0,120,0,116,0,103,0,126,0,106,0,0,0,120,0,116,0,108,0,126,0,119,0,0,0,120,0,117,0,97,0,126,0,98,0,0,0,120,0,117,0,108,0,126,0,112,0,0,0,120,0,117,0,116,0,126,0,117,0,0,0,120,0,118,0,110,0,126,0,111,0,0,0,120,0,119,0,99,0,126,0,101,0,0,0,120,0,119,0,106,0,126,0,108,0,0,0,120,0,121,0,97,0,126,0,98,0,0,0,120,0,121,0,106,0,126,0,108,0,0,0,121,0,97,0,97,0,126,0,122,0,0,0,121,0,98,0,97,0,126,0,98,0,0,0,121,0,98,0,104,0,126,0,111,0,0,0,121,0,98,0,120,0,126,0,121,0,0,0,121,0,101,0,105,0,126,0,106,0,0,0,121,0,101,0,114,0,126,0,118,0,0,0,121,0,103,0,108,0,126,0,109,0,0,0,121,0,103,0,114,0,126,0,115,0,0,0,121,0,105,0,102,0,126,0,110,0,0,0,121,0,105,0,112,0,126,0,118,0,0,0,121,0,107,0,107,0,126,0,111,0,0,0,121,0,107,0,116,0,126,0,117,0,0,0,121,0,108,0,97,0,126,0,98,0,0,0,121,0,108,0,108,0,126,0,111,0,0,0,121,0,109,0,98,0,126,0,101,0,0,0,121,0,109,0,103,0,126,0,105,0,0,0,121,0,109,0,107,0,126,0,115,0,0,0,121,0,110,0,100,0,126,0,101,0,0,0,121,0,110,0,107,0,126,0,108,0,0,0,121,0,110,0,110,0,126,0,111,0,0,0,121,0,111,0,107,0,126,0,110,0,0,0,121,0,111,0,120,0,126,0,121,0,0,0,121,0,112,0,97,0,126,0,98,0,0,0,121,0,112,0,103,0,126,0,104,0,0,0,121,0,112,0,109,0,126,0,112,0,0,0,121,0,114,0,97,0,126,0,98,0,0,0,121,0,114,0,107,0,126,0,111,0,0,0,121,0,115,0,99,0,126,0,100,0,0,0,121,0,115,0,108,0,126,0,112,0,0,0,121,0,115,0,114,0,126,0,115,0,0,0,121,0,117,0,97,0,126,0,103,0,0,0,121,0,117,0,105,0,126,0,110,0,0,0,121,0,117,0,112,0,126,0,114,0,0,0,121,0,117,0,119,0,126,0,122,0,0,0,121,0,119,0,113,0,126,0,114,0,0,0,121,0,119,0,116,0,126,0,117,0,0,0,121,0,120,0,108,0,126,0,109,0,0,0,122,0,97,0,97,0,126,0,104,0,0,0,122,0,97,0,106,0,126,0,109,0,0,0,122,0,97,0,111,0,126,0,122,0,0,0,122,0,98,0,116,0,126,0,117,0,0,0,122,0,101,0,103,0,126,0,104,0,0,0,122,0,103,0,97,0,126,0,98,0,0,0,122,0,103,0,109,0,126,0,110,0,0,0,122,0,104,0,119,0,126,0,120,0,0,0,122,0,105,0,97,0,126,0,98,0,0,0,122,0,105,0,107,0,126,0,110,0,0,0,122,0,107,0,97,0,126,0,98,0,0,0,122,0,107,0,103,0,126,0,104,0,0,0,122,0,107,0,110,0,126,0,112,0,0,0,122,0,107,0,116,0,126,0,118,0,0,0,122,0,108,0,109,0,126,0,110,0,0,0,122,0,109,0,97,0,126,0,122,0,0,0,122,0,110,0,100,0,126,0,101,0,0,0,122,0,111,0,113,0,126,0,115,0,0,0,122,0,112,0,97,0,126,0,122,0,0,0,122,0,114,0,110,0,126,0,112,0,0,0,122,0,115,0,107,0,126,0,108,0,0,0,122,0,116,0,108,0,126,0,110,0,0,0,122,0,116,0,112,0,126,0,113,0,0,0,122,0,116,0,115,0,126,0,117,0,0,0,122,0,116,0,120,0,126,0,121,0,0,0,122,0,117,0,109,0,126,0,110,0,0,0,116,0,114,0,56,0,48,0,126,0,49,0,0,0,99,0,104,0,122,0,103,0,126,0,104,0,0,0,112,0,116,0,95,0,42,0,95,0,42,0,0,0,103,0,114,0,105,0,116,0,97,0,108,0,0,0,97,0,111,0,49,0,57,0,57,0,48,0,0,0,97,0,114,0,95,0,42,0,95,0,42,0,0,0,101,0,110,0,95,0,42,0,95,0,42,0,0,0,101,0,115,0,95,0,42,0,95,0,42,0,0,0,105,0,100,0,98,0,97,0,126,0,98,0,0,0,105,0,116,0,55,0,55,0,126,0,56,0,0,0,109,0,100,0,115,0,110,0,126,0,111,0,0,0,110,0,103,0,107,0,100,0,126,0,101,0,0,0,114,0,117,0,107,0,107,0,126,0,108,0,0,0,99,0,111,0,112,0,116,0,105,0,99,0,0,0,110,0,100,0,121,0,117,0,107,0,97,0,0,0,112,0,105,0,110,0,121,0,105,0,110,0,0,0,66,0,114,0,97,0,104,0,126,0,105,0,0,0,72,0,97,0,110,0,115,0,126,0,116,0,0,0,76,0,105,0,110,0,97,0,126,0,98,0,0,0,81,0,97,0,97,0,97,0,126,0,102,0,0,0,81,0,97,0,97,0,106,0,126,0,112,0,0,0,81,0,97,0,97,0,113,0,126,0,122,0,0,0,81,0,97,0,98,0,97,0,126,0,120,0,0,0,97,0,99,0,122,0,122,0,122,0,122,0,0,0,97,0,100,0,48,0,50,0,126,0,56,0,0,0,97,0,100,0,122,0,122,0,122,0,122,0,0,0,97,0,101,0,122,0,122,0,122,0,122,0,0,0,97,0,102,0,122,0,122,0,122,0,122,0,0,0,97,0,103,0,48,0,51,0,126,0,56,0,0,0,97,0,103,0,49,0,48,0,126,0,49,0,0,0,97,0,103,0,122,0,122,0,122,0,122,0,0,0,97,0,105,0,122,0,122,0,122,0,122,0,0,0,97,0,108,0,48,0,49,0,126,0,57,0,0,0,97,0,108,0,49,0,48,0,126,0,50,0,0,0,97,0,108,0,107,0,97,0,126,0,99,0,0,0,97,0,108,0,112,0,113,0,126,0,114,0,0,0,97,0,108,0,122,0,122,0,122,0,122,0,0,0,97,0,109,0,122,0,122,0,122,0,122,0,0,0,97,0,111,0,122,0,122,0,122,0,122,0,0,0,97,0,113,0,122,0,122,0,122,0,122,0,0,0,97,0,114,0,97,0,110,0,101,0,115,0,0,0,97,0,114,0,122,0,122,0,122,0,122,0,0,0,97,0,115,0,97,0,110,0,116,0,101,0,0,0,97,0,115,0,122,0,122,0,122,0,122,0,0,0,97,0,116,0,122,0,122,0,122,0,122,0,0,0,97,0,117,0,118,0,101,0,114,0,110,0,0,0,97,0,117,0,122,0,122,0,122,0,122,0,0,0,97,0,119,0,122,0,122,0,122,0,122,0,0,0,97,0,120,0,122,0,122,0,122,0,122,0,0,0,97,0,122,0,122,0,122,0,122,0,122,0,0,0,98,0,97,0,48,0,49,0,126,0,57,0,0,0,98,0,97,0,122,0,122,0,122,0,122,0,0,0,98,0,98,0,48,0,49,0,126,0,57,0,0,0,98,0,98,0,49,0,48,0,126,0,49,0,0,0,98,0,98,0,122,0,122,0,122,0,122,0,0,0,98,0,100,0,48,0,49,0,126,0,57,0,0,0,98,0,100,0,49,0,48,0,126,0,57,0,0,0,98,0,100,0,50,0,48,0,126,0,57,0,0,0,98,0,100,0,51,0,48,0,126,0,57,0,0,0,98,0,100,0,52,0,48,0,126,0,57,0,0,0,98,0,100,0,53,0,48,0,126,0,57,0,0,0,98,0,100,0,54,0,48,0,126,0,52,0,0,0,98,0,100,0,122,0,122,0,122,0,122,0,0,0,98,0,101,0,122,0,122,0,122,0,122,0,0,0,98,0,102,0,48,0,49,0,126,0,57,0,0,0,98,0,102,0,49,0,48,0,126,0,51,0,0,0,98,0,102,0,122,0,122,0,122,0,122,0,0,0,98,0,103,0,48,0,49,0,126,0,57,0,0,0,98,0,103,0,49,0,48,0,126,0,57,0,0,0,98,0,103,0,50,0,48,0,126,0,56,0,0,0,98,0,103,0,122,0,122,0,122,0,122,0,0,0,98,0,104,0,49,0,51,0,126,0,53,0,0,0,98,0,104,0,122,0,122,0,122,0,122,0,0,0,98,0,105,0,98,0,108,0,126,0,109,0,0,0,98,0,105,0,122,0,122,0,122,0,122,0,0,0,98,0,106,0,97,0,107,0,126,0,108,0,0,0,98,0,106,0,122,0,122,0,122,0,122,0,0,0,98,0,108,0,122,0,122,0,122,0,122,0,0,0,98,0,109,0,122,0,122,0,122,0,122,0,0,0,98,0,110,0,122,0,122,0,122,0,122,0,0,0,98,0,111,0,122,0,122,0,122,0,122,0,0,0,98,0,113,0,122,0,122,0,122,0,122,0,0,0,98,0,114,0,97,0,108,0,126,0,109,0,0,0,98,0,114,0,109,0,115,0,126,0,116,0,0,0,98,0,114,0,112,0,97,0,126,0,98,0,0,0,98,0,114,0,114,0,110,0,126,0,111,0,0,0,98,0,114,0,114,0,114,0,126,0,115,0,0,0,98,0,114,0,122,0,122,0,122,0,122,0,0,0,98,0,115,0,110,0,111,0,126,0,112,0,0,0,98,0,115,0,122,0,122,0,122,0,122,0,0,0,98,0,116,0,49,0,49,0,126,0,53,0,0,0,98,0,116,0,50,0,49,0,126,0,52,0,0,0,98,0,116,0,51,0,49,0,126,0,52,0,0,0,98,0,116,0,52,0,49,0,126,0,53,0,0,0,98,0,116,0,122,0,122,0,122,0,122,0,0,0,98,0,118,0,122,0,122,0,122,0,122,0,0,0,98,0,119,0,115,0,111,0,126,0,112,0,0,0,98,0,119,0,122,0,122,0,122,0,122,0,0,0,98,0,121,0,122,0,122,0,122,0,122,0,0,0,98,0,122,0,122,0,122,0,122,0,122,0,0,0,99,0,97,0,110,0,115,0,126,0,117,0,0,0,99,0,97,0,122,0,122,0,122,0,122,0,0,0,99,0,99,0,122,0,122,0,122,0,122,0,0,0,99,0,100,0,104,0,107,0,126,0,108,0,0,0,99,0,100,0,109,0,110,0,126,0,111,0,0,0,99,0,100,0,122,0,122,0,122,0,122,0,0,0,99,0,102,0,122,0,122,0,122,0,122,0,0,0,99,0,103,0,49,0,49,0,126,0,54,0,0,0,99,0,103,0,122,0,122,0,122,0,122,0,0,0,99,0,104,0,115,0,103,0,126,0,104,0,0,0,99,0,104,0,122,0,122,0,122,0,122,0,0,0,99,0,105,0,48,0,49,0,126,0,57,0,0,0,99,0,105,0,49,0,48,0,126,0,57,0,0,0,99,0,105,0,115,0,97,0,117,0,112,0,0,0,99,0,105,0,122,0,122,0,122,0,122,0,0,0,99,0,107,0,122,0,122,0,122,0,122,0,0,0,99,0,108,0,122,0,122,0,122,0,122,0,0,0,99,0,109,0,122,0,122,0,122,0,122,0,0,0,99,0,110,0,49,0,49,0,126,0,53,0,0,0,99,0,110,0,50,0,49,0,126,0,51,0,0,0,99,0,110,0,51,0,49,0,126,0,55,0,0,0,99,0,110,0,52,0,49,0,126,0,54,0,0,0,99,0,110,0,53,0,48,0,126,0,52,0,0,0,99,0,110,0,54,0,49,0,126,0,53,0,0,0,99,0,110,0,57,0,49,0,126,0,50,0,0,0,99,0,110,0,104,0,97,0,126,0,98,0,0,0,99,0,110,0,104,0,107,0,126,0,108,0,0,0,99,0,110,0,115,0,99,0,126,0,100,0,0,0,99,0,110,0,122,0,122,0,122,0,122,0,0,0,99,0,111,0,122,0,122,0,122,0,122,0,0,0,99,0,112,0,122,0,122,0,122,0,122,0,0,0,99,0,114,0,101,0,105,0,115,0,115,0,0,0,99,0,114,0,122,0,122,0,122,0,122,0,0,0,99,0,117,0,48,0,51,0,126,0,57,0,0,0,99,0,117,0,49,0,48,0,126,0,54,0,0,0,99,0,117,0,122,0,122,0,122,0,122,0,0,0,99,0,118,0,115,0,108,0,126,0,109,0,0,0,99,0,118,0,122,0,122,0,122,0,122,0,0,0,99,0,119,0,122,0,122,0,122,0,122,0,0,0,99,0,120,0,122,0,122,0,122,0,122,0,0,0,99,0,121,0,48,0,49,0,126,0,54,0,0,0,99,0,121,0,122,0,122,0,122,0,122,0,0,0,99,0,122,0,122,0,122,0,122,0,122,0,0,0,100,0,97,0,106,0,110,0,107,0,111,0,0,0,100,0,101,0,122,0,122,0,122,0,122,0,0,0,100,0,103,0,122,0,122,0,122,0,122,0,0,0,100,0,106,0,97,0,114,0,126,0,115,0,0,0,100,0,106,0,100,0,105,0,126,0,106,0,0,0,100,0,106,0,122,0,122,0,122,0,122,0,0,0,100,0,107,0,56,0,49,0,126,0,53,0,0,0,100,0,107,0,122,0,122,0,122,0,122,0,0,0,100,0,109,0,48,0,50,0,126,0,57,0,0,0,100,0,109,0,49,0,48,0,126,0,49,0,0,0,100,0,109,0,122,0,122,0,122,0,122,0,0,0,100,0,111,0,48,0,49,0,126,0,57,0,0,0,100,0,111,0,49,0,48,0,126,0,57,0,0,0,100,0,111,0,50,0,48,0,126,0,57,0,0,0,100,0,111,0,51,0,48,0,126,0,57,0,0,0,100,0,111,0,52,0,48,0,126,0,50,0,0,0,100,0,111,0,122,0,122,0,122,0,122,0,0,0,100,0,122,0,48,0,49,0,126,0,57,0,0,0,100,0,122,0,49,0,48,0,126,0,57,0,0,0,100,0,122,0,50,0,48,0,126,0,57,0,0,0,100,0,122,0,51,0,48,0,126,0,57,0,0,0,100,0,122,0,52,0,48,0,126,0,56,0,0,0,100,0,122,0,122,0,122,0,122,0,122,0,0,0,101,0,97,0,122,0,122,0,122,0,122,0,0,0,101,0,99,0,115,0,100,0,126,0,101,0,0,0,101,0,99,0,122,0,122,0,122,0,122,0,0,0,101,0,101,0,122,0,122,0,122,0,122,0,0,0,101,0,103,0,122,0,122,0,122,0,122,0,0,0,101,0,104,0,122,0,122,0,122,0,122,0,0,0,101,0,110,0,95,0,49,0,53,0,48,0,0,0,101,0,114,0,122,0,122,0,122,0,122,0,0,0,101,0,115,0,95,0,52,0,49,0,57,0,0,0,101,0,115,0,97,0,114,0,126,0,115,0,0,0,101,0,115,0,99,0,97,0,126,0,99,0,0,0,101,0,115,0,99,0,108,0,126,0,111,0,0,0,101,0,115,0,99,0,114,0,126,0,117,0,0,0,101,0,115,0,109,0,99,0,126,0,100,0,0,0,101,0,115,0,116,0,101,0,126,0,102,0,0,0,101,0,115,0,122,0,122,0,122,0,122,0,0,0,101,0,116,0,115,0,110,0,126,0,111,0,0,0,101,0,116,0,122,0,122,0,122,0,122,0,0,0,102,0,105,0,48,0,50,0,126,0,57,0,0,0,102,0,105,0,49,0,48,0,126,0,57,0,0,0,102,0,105,0,122,0,122,0,122,0,122,0,0,0,102,0,106,0,48,0,49,0,126,0,57,0,0,0,102,0,106,0,49,0,48,0,126,0,52,0,0,0,102,0,106,0,122,0,122,0,122,0,122,0,0,0,102,0,107,0,122,0,122,0,122,0,122,0,0,0,102,0,109,0,122,0,122,0,122,0,122,0,0,0,102,0,111,0,110,0,105,0,112,0,97,0,0,0,102,0,111,0,110,0,117,0,112,0,97,0,0,0,102,0,111,0,122,0,122,0,122,0,122,0,0,0,102,0,114,0,48,0,49,0,126,0,57,0,0,0,102,0,114,0,49,0,48,0,126,0,57,0,0,0,102,0,114,0,50,0,49,0,126,0,57,0,0,0,102,0,114,0,50,0,97,0,126,0,98,0,0,0,102,0,114,0,51,0,48,0,126,0,57,0,0,0,102,0,114,0,52,0,48,0,126,0,57,0,0,0,102,0,114,0,53,0,48,0,126,0,57,0,0,0,102,0,114,0,54,0,48,0,126,0,57,0,0,0,102,0,114,0,55,0,48,0,126,0,52,0,0,0,102,0,114,0,55,0,54,0,126,0,57,0,0,0,102,0,114,0,56,0,48,0,126,0,57,0,0,0,102,0,114,0,57,0,48,0,126,0,53,0,0,0,102,0,114,0,122,0,122,0,122,0,122,0,0,0,103,0,97,0,115,0,99,0,111,0,110,0,0,0,103,0,97,0,122,0,122,0,122,0,122,0,0,0,103,0,98,0,122,0,122,0,122,0,122,0,0,0,103,0,100,0,48,0,49,0,126,0,54,0,0,0,103,0,100,0,122,0,122,0,122,0,122,0,0,0,103,0,101,0,115,0,106,0,126,0,107,0,0,0,103,0,101,0,122,0,122,0,122,0,122,0,0,0,103,0,102,0,122,0,122,0,122,0,122,0,0,0,103,0,103,0,122,0,122,0,122,0,122,0,0,0,103,0,104,0,122,0,122,0,122,0,122,0,0,0,103,0,105,0,122,0,122,0,122,0,122,0,0,0,103,0,108,0,122,0,122,0,122,0,122,0,0,0,103,0,109,0,122,0,122,0,122,0,122,0,0,0,103,0,110,0,98,0,101,0,126,0,102,0,0,0,103,0,110,0,107,0,97,0,126,0,98,0,0,0,103,0,110,0,107,0,100,0,126,0,101,0,0,0,103,0,110,0,107,0,110,0,126,0,111,0,0,0,103,0,110,0,109,0,99,0,126,0,100,0,0,0,103,0,110,0,109,0,108,0,126,0,109,0,0,0,103,0,110,0,122,0,122,0,122,0,122,0,0,0,103,0,112,0,122,0,122,0,122,0,122,0,0,0,103,0,113,0,122,0,122,0,122,0,122,0,0,0,103,0,114,0,48,0,51,0,126,0,55,0,0,0,103,0,114,0,49,0,49,0,126,0,55,0,0,0,103,0,114,0,50,0,49,0,126,0,52,0,0,0,103,0,114,0,51,0,49,0,126,0,52,0,0,0,103,0,114,0,52,0,49,0,126,0,52,0,0,0,103,0,114,0,53,0,49,0,126,0,57,0,0,0,103,0,114,0,54,0,49,0,126,0,52,0,0,0,103,0,114,0,55,0,49,0,126,0,51,0,0,0,103,0,114,0,56,0,49,0,126,0,53,0,0,0,103,0,114,0,57,0,49,0,126,0,52,0,0,0,103,0,114,0,122,0,122,0,122,0,122,0,0,0,103,0,115,0,122,0,122,0,122,0,122,0,0,0,103,0,116,0,48,0,49,0,126,0,57,0,0,0,103,0,116,0,49,0,48,0,126,0,57,0,0,0,103,0,116,0,50,0,48,0,126,0,50,0,0,0,103,0,116,0,122,0,122,0,122,0,122,0,0,0,103,0,117,0,122,0,122,0,122,0,122,0,0,0,103,0,119,0,98,0,108,0,126,0,109,0,0,0,103,0,119,0,122,0,122,0,122,0,122,0,0,0,103,0,121,0,122,0,122,0,122,0,122,0,0,0,104,0,101,0,98,0,114,0,101,0,119,0,0,0,104,0,101,0,112,0,108,0,111,0,99,0,0,0,104,0,107,0,122,0,122,0,122,0,122,0,0,0,104,0,109,0,122,0,122,0,122,0,122,0,0,0,104,0,110,0,99,0,108,0,126,0,109,0,0,0,104,0,110,0,122,0,122,0,122,0,122,0,0,0,104,0,114,0,48,0,49,0,126,0,57,0,0,0,104,0,114,0,49,0,48,0,126,0,57,0,0,0,104,0,114,0,50,0,48,0,126,0,49,0,0,0,104,0,114,0,122,0,122,0,122,0,122,0,0,0,104,0,116,0,110,0,100,0,126,0,101,0,0,0,104,0,116,0,115,0,100,0,126,0,101,0,0,0,104,0,116,0,122,0,122,0,122,0,122,0,0,0,104,0,117,0,115,0,110,0,126,0,111,0,0,0,104,0,117,0,115,0,115,0,126,0,116,0,0,0,104,0,117,0,122,0,122,0,122,0,122,0,0,0,105,0,99,0,122,0,122,0,122,0,122,0,0,0,105,0,100,0,106,0,97,0,126,0,98,0,0,0,105,0,100,0,107,0,97,0,126,0,98,0,0,0,105,0,100,0,107,0,114,0,126,0,117,0,0,0,105,0,100,0,110,0,116,0,126,0,117,0,0,0,105,0,100,0,112,0,97,0,126,0,98,0,0,0,105,0,100,0,115,0,97,0,126,0,98,0,0,0,105,0,100,0,115,0,108,0,126,0,110,0,0,0,105,0,100,0,115,0,114,0,126,0,117,0,0,0,105,0,100,0,122,0,122,0,122,0,122,0,0,0,105,0,101,0,99,0,110,0,126,0,111,0,0,0,105,0,101,0,109,0,110,0,126,0,111,0,0,0,105,0,101,0,119,0,119,0,126,0,120,0,0,0,105,0,101,0,122,0,122,0,122,0,122,0,0,0,105,0,108,0,122,0,122,0,122,0,122,0,0,0,105,0,109,0,122,0,122,0,122,0,122,0,0,0,105,0,110,0,97,0,114,0,126,0,115,0,0,0,105,0,110,0,100,0,105,0,97,0,110,0,0,0,105,0,110,0,122,0,122,0,122,0,122,0,0,0,105,0,111,0,122,0,122,0,122,0,122,0,0,0,105,0,113,0,98,0,97,0,126,0,98,0,0,0,105,0,113,0,122,0,122,0,122,0,122,0,0,0,105,0,114,0,48,0,48,0,126,0,57,0,0,0,105,0,114,0,49,0,48,0,126,0,57,0,0,0,105,0,114,0,50,0,48,0,126,0,57,0,0,0,105,0,114,0,51,0,49,0,126,0,50,0,0,0,105,0,114,0,122,0,122,0,122,0,122,0,0,0,105,0,115,0,122,0,122,0,122,0,122,0,0,0,105,0,116,0,97,0,112,0,126,0,114,0,0,0,105,0,116,0,98,0,110,0,126,0,111,0,0,0,105,0,116,0,98,0,114,0,126,0,116,0,0,0,105,0,116,0,99,0,97,0,126,0,98,0,0,0,105,0,116,0,99,0,110,0,126,0,111,0,0,0,105,0,116,0,99,0,114,0,126,0,116,0,0,0,105,0,116,0,108,0,116,0,126,0,117,0,0,0,105,0,116,0,109,0,98,0,126,0,99,0,0,0,105,0,116,0,109,0,110,0,126,0,111,0,0,0,105,0,116,0,109,0,115,0,126,0,116,0,0,0,105,0,116,0,112,0,99,0,126,0,101,0,0,0,105,0,116,0,112,0,110,0,126,0,111,0,0,0,105,0,116,0,112,0,116,0,126,0,118,0,0,0,105,0,116,0,114,0,109,0,126,0,111,0,0,0,105,0,116,0,115,0,111,0,126,0,112,0,0,0,105,0,116,0,115,0,114,0,126,0,115,0,0,0,105,0,116,0,115,0,117,0,126,0,118,0,0,0,105,0,116,0,116,0,110,0,126,0,112,0,0,0,105,0,116,0,116,0,114,0,126,0,115,0,0,0,105,0,116,0,118,0,97,0,126,0,99,0,0,0,105,0,116,0,122,0,122,0,122,0,122,0,0,0,106,0,101,0,122,0,122,0,122,0,122,0,0,0,106,0,109,0,48,0,49,0,126,0,57,0,0,0,106,0,109,0,49,0,48,0,126,0,52,0,0,0,106,0,109,0,122,0,122,0,122,0,122,0,0,0,106,0,111,0,122,0,122,0,122,0,122,0,0,0,106,0,112,0,48,0,49,0,126,0,57,0,0,0,106,0,112,0,49,0,48,0,126,0,57,0,0,0,106,0,112,0,50,0,48,0,126,0,57,0,0,0,106,0,112,0,51,0,48,0,126,0,57,0,0,0,106,0,112,0,52,0,48,0,126,0,55,0,0,0,106,0,112,0,122,0,122,0,122,0,122,0,0,0,107,0,101,0,48,0,49,0,126,0,57,0,0,0,107,0,101,0,49,0,48,0,126,0,57,0,0,0,107,0,101,0,50,0,48,0,126,0,57,0,0,0,107,0,101,0,51,0,48,0,126,0,57,0,0,0,107,0,101,0,52,0,48,0,126,0,55,0,0,0,107,0,101,0,122,0,122,0,122,0,122,0,0,0,107,0,103,0,122,0,122,0,122,0,122,0,0,0,107,0,104,0,49,0,48,0,126,0,57,0,0,0,107,0,104,0,50,0,48,0,126,0,53,0,0,0,107,0,104,0,122,0,122,0,122,0,122,0,0,0,107,0,105,0,122,0,122,0,122,0,122,0,0,0,107,0,109,0,122,0,122,0,122,0,122,0,0,0,107,0,110,0,48,0,49,0,126,0,57,0,0,0,107,0,110,0,49,0,48,0,126,0,51,0,0,0,107,0,110,0,122,0,122,0,122,0,122,0,0,0,107,0,112,0,48,0,49,0,126,0,57,0,0,0,107,0,112,0,49,0,51,0,126,0,52,0,0,0,107,0,112,0,122,0,122,0,122,0,122,0,0,0,107,0,114,0,50,0,54,0,126,0,57,0,0,0,107,0,114,0,51,0,48,0,126,0,49,0,0,0,107,0,114,0,52,0,49,0,126,0,57,0,0,0,107,0,114,0,122,0,122,0,122,0,122,0,0,0,107,0,119,0,122,0,122,0,122,0,122,0,0,0,107,0,121,0,122,0,122,0,122,0,122,0,0,0,107,0,122,0,122,0,122,0,122,0,122,0,0,0,108,0,97,0,98,0,107,0,126,0,108,0,0,0,108,0,97,0,122,0,122,0,122,0,122,0,0,0,108,0,98,0,98,0,104,0,126,0,105,0,0,0,108,0,98,0,122,0,122,0,122,0,122,0,0,0,108,0,99,0,48,0,49,0,126,0,51,0,0,0,108,0,99,0,48,0,53,0,126,0,56,0,0,0,108,0,99,0,49,0,48,0,126,0,50,0,0,0,108,0,99,0,122,0,122,0,122,0,122,0,0,0,108,0,105,0,48,0,49,0,126,0,57,0,0,0,108,0,105,0,49,0,48,0,126,0,49,0,0,0,108,0,105,0,122,0,122,0,122,0,122,0,0,0,108,0,107,0,49,0,49,0,126,0,51,0,0,0,108,0,107,0,50,0,49,0,126,0,51,0,0,0,108,0,107,0,51,0,49,0,126,0,51,0,0,0,108,0,107,0,52,0,49,0,126,0,53,0,0,0,108,0,107,0,53,0,49,0,126,0,51,0,0,0,108,0,107,0,54,0,49,0,126,0,50,0,0,0,108,0,107,0,55,0,49,0,126,0,50,0,0,0,108,0,107,0,56,0,49,0,126,0,50,0,0,0,108,0,107,0,57,0,49,0,126,0,50,0,0,0,108,0,107,0,122,0,122,0,122,0,122,0,0,0,108,0,114,0,122,0,122,0,122,0,122,0,0,0,108,0,115,0,122,0,122,0,122,0,122,0,0,0,108,0,116,0,48,0,49,0,126,0,57,0,0,0,108,0,116,0,49,0,48,0,126,0,57,0,0,0,108,0,116,0,50,0,48,0,126,0,57,0,0,0,108,0,116,0,51,0,48,0,126,0,57,0,0,0,108,0,116,0,52,0,48,0,126,0,57,0,0,0,108,0,116,0,53,0,48,0,126,0,57,0,0,0,108,0,116,0,122,0,122,0,122,0,122,0,0,0,108,0,117,0,122,0,122,0,122,0,122,0,0,0,108,0,118,0,122,0,122,0,122,0,122,0,0,0,108,0,121,0,109,0,105,0,126,0,106,0,0,0,108,0,121,0,122,0,122,0,122,0,122,0,0,0,109,0,97,0,48,0,49,0,126,0,57,0,0,0,109,0,97,0,49,0,48,0,126,0,50,0,0,0,109,0,97,0,49,0,51,0,126,0,54,0,0,0,109,0,97,0,122,0,122,0,122,0,122,0,0,0,109,0,99,0,115,0,111,0,126,0,112,0,0,0,109,0,99,0,122,0,122,0,122,0,122,0,0,0,109,0,100,0,98,0,114,0,126,0,115,0,0,0,109,0,100,0,99,0,108,0,126,0,109,0,0,0,109,0,100,0,99,0,114,0,126,0,117,0,0,0,109,0,100,0,122,0,122,0,122,0,122,0,0,0,109,0,101,0,48,0,49,0,126,0,57,0,0,0,109,0,101,0,49,0,48,0,126,0,57,0,0,0,109,0,101,0,50,0,48,0,126,0,52,0,0,0,109,0,101,0,122,0,122,0,122,0,122,0,0,0,109,0,102,0,122,0,122,0,122,0,122,0,0,0,109,0,103,0,122,0,122,0,122,0,122,0,0,0,109,0,104,0,122,0,122,0,122,0,122,0,0,0,109,0,107,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,49,0,48,0,126,0,57,0,0,0,109,0,107,0,50,0,48,0,126,0,57,0,0,0,109,0,107,0,51,0,48,0,126,0,57,0,0,0,109,0,107,0,52,0,48,0,126,0,57,0,0,0,109,0,107,0,53,0,48,0,126,0,57,0,0,0,109,0,107,0,54,0,48,0,126,0,57,0,0,0,109,0,107,0,55,0,48,0,126,0,57,0,0,0,109,0,107,0,56,0,48,0,126,0,53,0,0,0,109,0,107,0,122,0,122,0,122,0,122,0,0,0,109,0,108,0,122,0,122,0,122,0,122,0,0,0,109,0,109,0,48,0,49,0,126,0,55,0,0,0,109,0,109,0,49,0,49,0,126,0,56,0,0,0,109,0,109,0,122,0,122,0,122,0,122,0,0,0,109,0,110,0,122,0,122,0,122,0,122,0,0,0,109,0,111,0,122,0,122,0,122,0,122,0,0,0,109,0,112,0,122,0,122,0,122,0,122,0,0,0,109,0,113,0,122,0,122,0,122,0,122,0,0,0,109,0,114,0,48,0,49,0,126,0,57,0,0,0,109,0,114,0,49,0,48,0,126,0,53,0,0,0,109,0,114,0,122,0,122,0,122,0,122,0,0,0,109,0,115,0,122,0,122,0,122,0,122,0,0,0,109,0,116,0,48,0,49,0,126,0,57,0,0,0,109,0,116,0,49,0,48,0,126,0,57,0,0,0,109,0,116,0,50,0,48,0,126,0,57,0,0,0,109,0,116,0,51,0,48,0,126,0,57,0,0,0,109,0,116,0,52,0,48,0,126,0,57,0,0,0,109,0,116,0,53,0,48,0,126,0,57,0,0,0,109,0,116,0,54,0,48,0,126,0,56,0,0,0,109,0,116,0,122,0,122,0,122,0,122,0,0,0,109,0,117,0,122,0,122,0,122,0,122,0,0,0,109,0,118,0,48,0,48,0,126,0,53,0,0,0,109,0,118,0,48,0,55,0,126,0,56,0,0,0,109,0,118,0,49,0,50,0,126,0,52,0,0,0,109,0,118,0,50,0,51,0,126,0,57,0,0,0,109,0,118,0,122,0,122,0,122,0,122,0,0,0,109,0,119,0,107,0,114,0,126,0,115,0,0,0,109,0,119,0,109,0,103,0,126,0,104,0,0,0,109,0,119,0,122,0,122,0,122,0,122,0,0,0,109,0,120,0,122,0,122,0,122,0,122,0,0,0,109,0,121,0,48,0,49,0,126,0,57,0,0,0,109,0,121,0,49,0,48,0,126,0,54,0,0,0,109,0,121,0,122,0,122,0,122,0,122,0,0,0,109,0,122,0,122,0,122,0,122,0,122,0,0,0,110,0,97,0,111,0,115,0,126,0,116,0,0,0,110,0,97,0,122,0,122,0,122,0,122,0,0,0,110,0,99,0,122,0,122,0,122,0,122,0,0,0,110,0,101,0,122,0,122,0,122,0,122,0,0,0,110,0,102,0,122,0,122,0,122,0,122,0,0,0,110,0,103,0,107,0,110,0,126,0,111,0,0,0,110,0,103,0,122,0,122,0,122,0,122,0,0,0,110,0,105,0,99,0,97,0,114,0,100,0,0,0,110,0,105,0,109,0,115,0,126,0,116,0,0,0,110,0,105,0,122,0,122,0,122,0,122,0,0,0,110,0,108,0,122,0,122,0,122,0,122,0,0,0,110,0,111,0,48,0,49,0,126,0,50,0,0,0,110,0,111,0,48,0,52,0,126,0,57,0,0,0,110,0,111,0,49,0,54,0,126,0,55,0,0,0,110,0,111,0,50,0,49,0,126,0,50,0,0,0,110,0,111,0,122,0,122,0,122,0,122,0,0,0,110,0,112,0,112,0,49,0,126,0,55,0,0,0,110,0,112,0,122,0,122,0,122,0,122,0,0,0,110,0,114,0,48,0,49,0,126,0,57,0,0,0,110,0,114,0,49,0,48,0,126,0,52,0,0,0,110,0,114,0,122,0,122,0,122,0,122,0,0,0,110,0,117,0,122,0,122,0,122,0,122,0,0,0,110,0,122,0,122,0,122,0,122,0,122,0,0,0,111,0,109,0,122,0,122,0,122,0,122,0,0,0,112,0,97,0,109,0,97,0,107,0,97,0,0,0,112,0,97,0,122,0,122,0,122,0,122,0,0,0,112,0,101,0,122,0,122,0,122,0,122,0,0,0,112,0,102,0,122,0,122,0,122,0,122,0,0,0,112,0,103,0,122,0,122,0,122,0,122,0,0,0,112,0,104,0,48,0,48,0,126,0,51,0,0,0,112,0,104,0,48,0,53,0,126,0,57,0,0,0,112,0,104,0,49,0,48,0,126,0,53,0,0,0,112,0,104,0,52,0,48,0,126,0,49,0,0,0,112,0,104,0,122,0,122,0,122,0,122,0,0,0,112,0,107,0,122,0,122,0,122,0,122,0,0,0,112,0,108,0,115,0,107,0,126,0,108,0,0,0,112,0,108,0,122,0,122,0,122,0,122,0,0,0,112,0,109,0,122,0,122,0,122,0,122,0,0,0,112,0,110,0,122,0,122,0,122,0,122,0,0,0,112,0,114,0,122,0,122,0,122,0,122,0,0,0,112,0,115,0,122,0,122,0,122,0,122,0,0,0,112,0,116,0,48,0,49,0,126,0,57,0,0,0,112,0,116,0,49,0,48,0,126,0,56,0,0,0,112,0,116,0,122,0,122,0,122,0,122,0,0,0,112,0,119,0,122,0,122,0,122,0,122,0,0,0,112,0,121,0,49,0,48,0,126,0,54,0,0,0,112,0,121,0,122,0,122,0,122,0,122,0,0,0,113,0,97,0,122,0,122,0,122,0,122,0,0,0,114,0,101,0,122,0,122,0,122,0,122,0,0,0,114,0,111,0,99,0,115,0,126,0,116,0,0,0,114,0,111,0,116,0,108,0,126,0,109,0,0,0,114,0,111,0,122,0,122,0,122,0,122,0,0,0,114,0,115,0,48,0,48,0,126,0,57,0,0,0,114,0,115,0,49,0,48,0,126,0,57,0,0,0,114,0,115,0,50,0,48,0,126,0,57,0,0,0,114,0,115,0,122,0,122,0,122,0,122,0,0,0,114,0,117,0,107,0,98,0,126,0,99,0,0,0,114,0,117,0,122,0,122,0,122,0,122,0,0,0,114,0,119,0,48,0,49,0,126,0,53,0,0,0,114,0,119,0,122,0,122,0,122,0,122,0,0,0,115,0,97,0,48,0,49,0,126,0,57,0,0,0,115,0,97,0,49,0,48,0,126,0,50,0,0,0,115,0,97,0,122,0,122,0,122,0,122,0,0,0,115,0,98,0,109,0,107,0,126,0,108,0,0,0,115,0,98,0,122,0,122,0,122,0,122,0,0,0,115,0,99,0,48,0,49,0,126,0,57,0,0,0,115,0,99,0,49,0,48,0,126,0,57,0,0,0,115,0,99,0,50,0,48,0,126,0,55,0,0,0,115,0,99,0,111,0,117,0,115,0,101,0,0,0,115,0,99,0,122,0,122,0,122,0,122,0,0,0,115,0,100,0,122,0,122,0,122,0,122,0,0,0,115,0,101,0,97,0,98,0,126,0,99,0,0,0,115,0,101,0,122,0,122,0,122,0,122,0,0,0,115,0,103,0,48,0,49,0,126,0,53,0,0,0,115,0,103,0,122,0,122,0,122,0,122,0,0,0,115,0,104,0,122,0,122,0,122,0,122,0,0,0,115,0,105,0,109,0,112,0,108,0,101,0,0,0,115,0,105,0,122,0,122,0,122,0,122,0,0,0,115,0,106,0,122,0,122,0,122,0,122,0,0,0,115,0,107,0,122,0,122,0,122,0,122,0,0,0,115,0,108,0,122,0,122,0,122,0,122,0,0,0,115,0,109,0,48,0,49,0,126,0,57,0,0,0,115,0,109,0,122,0,122,0,122,0,122,0,0,0,115,0,110,0,107,0,100,0,126,0,101,0,0,0,115,0,110,0,122,0,122,0,122,0,122,0,0,0,115,0,111,0,122,0,122,0,122,0,122,0,0,0,115,0,114,0,122,0,122,0,122,0,122,0,0,0,115,0,115,0,122,0,122,0,122,0,122,0,0,0,115,0,116,0,48,0,49,0,126,0,54,0,0,0,115,0,116,0,122,0,122,0,122,0,122,0,0,0,115,0,118,0,122,0,122,0,122,0,122,0,0,0,115,0,120,0,122,0,122,0,122,0,122,0,0,0,115,0,121,0,104,0,108,0,126,0,109,0,0,0,115,0,121,0,122,0,122,0,122,0,122,0,0,0,115,0,122,0,122,0,122,0,122,0,122,0,0,0,116,0,97,0,114,0,97,0,115,0,107,0,0,0,116,0,97,0,122,0,122,0,122,0,122,0,0,0,116,0,99,0,122,0,122,0,122,0,122,0,0,0,116,0,100,0,122,0,122,0,122,0,122,0,0,0,116,0,102,0,122,0,122,0,122,0,122,0,0,0,116,0,103,0,122,0,122,0,122,0,122,0,0,0,116,0,104,0,49,0,48,0,126,0,57,0,0,0,116,0,104,0,50,0,48,0,126,0,55,0,0,0,116,0,104,0,51,0,48,0,126,0,57,0,0,0,116,0,104,0,52,0,48,0,126,0,57,0,0,0,116,0,104,0,53,0,48,0,126,0,56,0,0,0,116,0,104,0,54,0,48,0,126,0,55,0,0,0,116,0,104,0,55,0,48,0,126,0,55,0,0,0,116,0,104,0,56,0,48,0,126,0,54,0,0,0,116,0,104,0,57,0,48,0,126,0,54,0,0,0,116,0,104,0,122,0,122,0,122,0,122,0,0,0,116,0,106,0,122,0,122,0,122,0,122,0,0,0,116,0,107,0,122,0,122,0,122,0,122,0,0,0,116,0,108,0,122,0,122,0,122,0,122,0,0,0,116,0,109,0,122,0,122,0,122,0,122,0,0,0,116,0,110,0,49,0,49,0,126,0,52,0,0,0,116,0,110,0,50,0,49,0,126,0,51,0,0,0,116,0,110,0,51,0,49,0,126,0,52,0,0,0,116,0,110,0,52,0,49,0,126,0,51,0,0,0,116,0,110,0,53,0,49,0,126,0,51,0,0,0,116,0,110,0,55,0,49,0,126,0,51,0,0,0,116,0,110,0,56,0,49,0,126,0,51,0,0,0,116,0,110,0,122,0,122,0,122,0,122,0,0,0,116,0,111,0,48,0,49,0,126,0,53,0,0,0,116,0,111,0,122,0,122,0,122,0,122,0,0,0,116,0,114,0,48,0,49,0,126,0,57,0,0,0,116,0,114,0,49,0,48,0,126,0,57,0,0,0,116,0,114,0,50,0,48,0,126,0,57,0,0,0,116,0,114,0,51,0,48,0,126,0,57,0,0,0,116,0,114,0,52,0,48,0,126,0,57,0,0,0,116,0,114,0,53,0,48,0,126,0,57,0,0,0,116,0,114,0,54,0,48,0,126,0,57,0,0,0,116,0,114,0,55,0,48,0,126,0,57,0,0,0,116,0,114,0,122,0,122,0,122,0,122,0,0,0,116,0,116,0,122,0,122,0,122,0,122,0,0,0,116,0,118,0,122,0,122,0,122,0,122,0,0,0,116,0,119,0,122,0,122,0,122,0,122,0,0,0,116,0,122,0,48,0,49,0,126,0,57,0,0,0,116,0,122,0,49,0,48,0,126,0,57,0,0,0,116,0,122,0,50,0,48,0,126,0,57,0,0,0,116,0,122,0,51,0,48,0,126,0,49,0,0,0,116,0,122,0,122,0,122,0,122,0,122,0,0,0,117,0,97,0,122,0,122,0,122,0,122,0,0,0,117,0,99,0,114,0,99,0,111,0,114,0,0,0,117,0,103,0,122,0,122,0,122,0,122,0,0,0,117,0,108,0,115,0,116,0,101,0,114,0,0,0,117,0,109,0,122,0,122,0,122,0,122,0,0,0,117,0,110,0,105,0,102,0,111,0,110,0,0,0,117,0,115,0,97,0,107,0,126,0,108,0,0,0,117,0,115,0,109,0,100,0,126,0,101,0,0,0,117,0,115,0,109,0,110,0,126,0,111,0,0,0,117,0,115,0,109,0,115,0,126,0,116,0,0,0,117,0,115,0,110,0,99,0,126,0,101,0,0,0,117,0,115,0,115,0,99,0,126,0,100,0,0,0,117,0,115,0,122,0,122,0,122,0,122,0,0,0,117,0,121,0,114,0,110,0,126,0,111,0,0,0,117,0,121,0,122,0,122,0,122,0,122,0,0,0,117,0,122,0,122,0,122,0,122,0,122,0,0,0,118,0,97,0,122,0,122,0,122,0,122,0,0,0,118,0,99,0,48,0,49,0,126,0,54,0,0,0,118,0,99,0,122,0,122,0,122,0,122,0,0,0,118,0,101,0,122,0,122,0,122,0,122,0,0,0,118,0,103,0,122,0,122,0,122,0,122,0,0,0,118,0,105,0,122,0,122,0,122,0,122,0,0,0,118,0,110,0,48,0,49,0,126,0,55,0,0,0,118,0,110,0,49,0,51,0,126,0,52,0,0,0,118,0,110,0,50,0,48,0,126,0,57,0,0,0,118,0,110,0,51,0,48,0,126,0,55,0,0,0,118,0,110,0,52,0,48,0,126,0,49,0,0,0,118,0,110,0,52,0,51,0,126,0,55,0,0,0,118,0,110,0,53,0,48,0,126,0,57,0,0,0,118,0,110,0,54,0,54,0,126,0,57,0,0,0,118,0,110,0,55,0,48,0,126,0,51,0,0,0,118,0,110,0,122,0,122,0,122,0,122,0,0,0,118,0,117,0,122,0,122,0,122,0,122,0,0,0,119,0,102,0,122,0,122,0,122,0,122,0,0,0,119,0,115,0,122,0,122,0,122,0,122,0,0,0,120,0,107,0,122,0,122,0,122,0,122,0,0,0,121,0,101,0,122,0,122,0,122,0,122,0,0,0,121,0,116,0,122,0,122,0,122,0,122,0,0,0,122,0,97,0,122,0,122,0,122,0,122,0,0,0,122,0,109,0,48,0,49,0,126,0,57,0,0,0,122,0,109,0,122,0,122,0,122,0,122,0,0,0,122,0,119,0,109,0,118,0,126,0,119,0,0,0,122,0,119,0,122,0,122,0,122,0,122,0,0,0,117,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,117,0,122,0,95,0,67,0,121,0,114,0,108,0,0,0,117,0,122,0,95,0,65,0,114,0,97,0,98,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,0,0,101,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,110,0,95,0,66,0,101,0,110,0,103,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,115,0,0,0,99,0,104,0,105,0,110,0,101,0,115,0,101,0,0,0,106,0,97,0,95,0,74,0,112,0,97,0,110,0,0,0,97,0,109,0,95,0,69,0,116,0,104,0,105,0,0,0,116,0,101,0,95,0,84,0,101,0,108,0,117,0,0,0,101,0,101,0,50,0,56,0,51,0,126,0,52,0,0,0,98,0,111,0,95,0,84,0,105,0,98,0,116,0,0,0,121,0,105,0,95,0,72,0,101,0,98,0,114,0,0,0,109,0,121,0,95,0,77,0,121,0,109,0,114,0,0,0,107,0,111,0,95,0,75,0,111,0,114,0,101,0,0,0,106,0,97,0,95,0,72,0,114,0,107,0,116,0,0,0,114,0,117,0,95,0,67,0,121,0,114,0,108,0,0,0,106,0,97,0,95,0,75,0,97,0,110,0,97,0,0,0,107,0,110,0,95,0,75,0,110,0,100,0,97,0,0,0,116,0,97,0,95,0,84,0,97,0,109,0,108,0,0,0,98,0,109,0,95,0,78,0,107,0,111,0,111,0,0,0,107,0,97,0,95,0,71,0,101,0,111,0,114,0,0,0,108,0,111,0,95,0,76,0,97,0,111,0,111,0,0,0,115,0,105,0,95,0,83,0,105,0,110,0,104,0,0,0,109,0,108,0,95,0,77,0,108,0,121,0,109,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,0,0,106,0,97,0,95,0,72,0,105,0,114,0,97,0,0,0,109,0,110,0,95,0,77,0,111,0,110,0,103,0,0,0,111,0,114,0,95,0,79,0,114,0,121,0,97,0,0,0,101,0,110,0,95,0,83,0,104,0,97,0,119,0,0,0,107,0,111,0,95,0,72,0,97,0,110,0,103,0,0,0,107,0,111,0,95,0,74,0,97,0,109,0,111,0,0,0,101,0,110,0,95,0,68,0,115,0,114,0,116,0,0,0,102,0,102,0,95,0,65,0,100,0,108,0,109,0,0,0,103,0,117,0,95,0,71,0,117,0,106,0,114,0,0,0,104,0,121,0,95,0,65,0,114,0,109,0,110,0,0,0,107,0,109,0,95,0,75,0,104,0,109,0,114,0,0,0,107,0,111,0,95,0,72,0,97,0,110,0,105,0,0,0,112,0,97,0,95,0,71,0,117,0,114,0,117,0,0,0,115,0,100,0,95,0,75,0,104,0,111,0,106,0,0,0,115,0,100,0,95,0,83,0,105,0,110,0,100,0,0,0,112,0,101,0,114,0,115,0,105,0,97,0,110,0,0,0,115,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,105,0,0,0,108,0,118,0,48,0,49,0,55,0,126,0,57,0,0,0,99,0,117,0,95,0,71,0,108,0,97,0,103,0,0,0,97,0,98,0,108,0,49,0,57,0,52,0,51,0,0,0,98,0,97,0,117,0,100,0,100,0,104,0,97,0,0,0,109,0,101,0,116,0,101,0,108,0,107,0,111,0,0,0,101,0,101,0,55,0,57,0,50,0,126,0,51,0,0,0,97,0,102,0,98,0,97,0,108,0,126,0,109,0,0,0,97,0,107,0,117,0,97,0,112,0,101,0,109,0,0,0,97,0,108,0,97,0,108,0,99,0,57,0,55,0,0,0,97,0,111,0,99,0,110,0,110,0,126,0,111,0,0,0,97,0,114,0,95,0,65,0,114,0,97,0,98,0,0,0,97,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,97,0,114,0,101,0,118,0,101,0,108,0,97,0,0,0,97,0,114,0,101,0,118,0,109,0,100,0,97,0,0,0,97,0,114,0,107,0,97,0,105,0,107,0,97,0,0,0,97,0,122,0,95,0,65,0,114,0,97,0,98,0,0,0,97,0,122,0,95,0,67,0,121,0,114,0,108,0,0,0,97,0,122,0,95,0,76,0,97,0,116,0,110,0,0,0,97,0,122,0,115,0,97,0,107,0,126,0,108,0,0,0,97,0,122,0,122,0,97,0,113,0,126,0,114,0,0,0,98,0,97,0,108,0,97,0,110,0,107,0,97,0,0,0,98,0,102,0,98,0,97,0,108,0,126,0,110,0,0,0,98,0,102,0,107,0,111,0,115,0,126,0,116,0,0,0,98,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,111,0,104,0,111,0,114,0,105,0,99,0,0,0,98,0,115,0,95,0,67,0,121,0,114,0,108,0,0,0,99,0,122,0,49,0,48,0,49,0,126,0,57,0,0,0,99,0,122,0,49,0,48,0,97,0,126,0,102,0,0,0,99,0,122,0,49,0,49,0,48,0,126,0,57,0,0,0,99,0,122,0,49,0,50,0,48,0,126,0,50,0,0,0,99,0,122,0,50,0,48,0,49,0,126,0,57,0,0,0,99,0,122,0,50,0,48,0,97,0,126,0,99,0,0,0,99,0,122,0,51,0,49,0,49,0,126,0,55,0,0,0,99,0,122,0,51,0,50,0,49,0,126,0,55,0,0,0,99,0,122,0,52,0,49,0,49,0,126,0,51,0,0,0,99,0,122,0,52,0,50,0,49,0,126,0,55,0,0,0,99,0,122,0,53,0,49,0,49,0,126,0,52,0,0,0,99,0,122,0,53,0,50,0,49,0,126,0,53,0,0,0,99,0,122,0,53,0,51,0,49,0,126,0,52,0,0,0,99,0,122,0,54,0,49,0,49,0,126,0,53,0,0,0,99,0,122,0,54,0,50,0,49,0,126,0,55,0,0,0,99,0,122,0,54,0,51,0,49,0,126,0,53,0,0,0,99,0,122,0,54,0,52,0,49,0,126,0,55,0,0,0,99,0,122,0,55,0,49,0,49,0,126,0,53,0,0,0,99,0,122,0,55,0,50,0,49,0,126,0,52,0,0,0,99,0,122,0,56,0,48,0,49,0,126,0,54,0,0,0,101,0,101,0,49,0,52,0,49,0,126,0,50,0,0,0,101,0,101,0,52,0,51,0,48,0,126,0,50,0,0,0,101,0,101,0,52,0,52,0,49,0,126,0,50,0,0,0,101,0,109,0,111,0,100,0,101,0,110,0,103,0,0,0,101,0,110,0,95,0,42,0,95,0,71,0,66,0,0,0,102,0,102,0,95,0,65,0,114,0,97,0,98,0,0,0,102,0,111,0,110,0,110,0,97,0,112,0,97,0,0,0,102,0,114,0,57,0,55,0,49,0,126,0,52,0,0,0,103,0,98,0,97,0,98,0,99,0,126,0,101,0,0,0,103,0,98,0,98,0,100,0,102,0,126,0,103,0,0,0,103,0,98,0,98,0,114,0,99,0,126,0,100,0,0,0,103,0,98,0,100,0,110,0,99,0,126,0,100,0,0,0,103,0,98,0,101,0,110,0,102,0,126,0,103,0,0,0,103,0,98,0,104,0,97,0,108,0,126,0,109,0,0,0,103,0,98,0,115,0,108,0,102,0,126,0,103,0,0,0,103,0,98,0,115,0,111,0,108,0,126,0,109,0,0,0,103,0,98,0,115,0,116,0,103,0,126,0,104,0,0,0,103,0,98,0,115,0,116,0,115,0,126,0,116,0,0,0,103,0,114,0,99,0,108,0,97,0,115,0,115,0,0,0,103,0,114,0,109,0,105,0,115,0,116,0,114,0,0,0,103,0,117,0,95,0,76,0,97,0,116,0,110,0,0,0,104,0,97,0,95,0,65,0,114,0,97,0,98,0,0,0,104,0,101,0,112,0,98,0,117,0,114,0,110,0,0,0,104,0,105,0,95,0,68,0,101,0,118,0,97,0,0,0,105,0,115,0,115,0,107,0,102,0,126,0,103,0,0,0,105,0,116,0,105,0,104,0,97,0,115,0,97,0,0,0,105,0,117,0,95,0,76,0,97,0,116,0,110,0,0,0,106,0,97,0,95,0,72,0,97,0,110,0,105,0,0,0,106,0,97,0,95,0,76,0,97,0,116,0,110,0,0,0,107,0,107,0,95,0,65,0,114,0,97,0,98,0,0,0,107,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,107,0,115,0,95,0,68,0,101,0,118,0,97,0,0,0,107,0,117,0,95,0,65,0,114,0,97,0,98,0,0,0,107,0,121,0,95,0,65,0,114,0,97,0,98,0,0,0,107,0,121,0,95,0,76,0,97,0,116,0,110,0,0,0,108,0,97,0,117,0,107,0,105,0,107,0,97,0,0,0,108,0,101,0,109,0,111,0,115,0,105,0,110,0,0,0,108,0,118,0,48,0,48,0,51,0,126,0,54,0,0,0,108,0,118,0,48,0,48,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,49,0,50,0,126,0,52,0,0,0,108,0,118,0,48,0,49,0,53,0,126,0,54,0,0,0,108,0,118,0,48,0,50,0,48,0,126,0,49,0,0,0,108,0,118,0,48,0,50,0,51,0,126,0,53,0,0,0,108,0,118,0,48,0,50,0,55,0,126,0,57,0,0,0,108,0,118,0,48,0,51,0,48,0,126,0,50,0,0,0,108,0,118,0,48,0,51,0,52,0,126,0,57,0,0,0,108,0,118,0,48,0,52,0,49,0,126,0,50,0,0,0,108,0,118,0,48,0,52,0,51,0,126,0,54,0,0,0,108,0,118,0,48,0,52,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,53,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,54,0,48,0,126,0,49,0,0,0,108,0,118,0,48,0,54,0,51,0,126,0,54,0,0,0,108,0,118,0,48,0,54,0,55,0,126,0,56,0,0,0,108,0,118,0,48,0,55,0,48,0,126,0,50,0,0,0,108,0,118,0,48,0,55,0,52,0,126,0,54,0,0,0,108,0,118,0,48,0,55,0,56,0,126,0,57,0,0,0,108,0,118,0,48,0,56,0,49,0,126,0,54,0,0,0,108,0,118,0,48,0,56,0,55,0,126,0,57,0,0,0,108,0,118,0,48,0,57,0,50,0,126,0,51,0,0,0,108,0,118,0,48,0,57,0,53,0,126,0,54,0,0,0,108,0,118,0,49,0,48,0,49,0,126,0,50,0,0,0,108,0,118,0,49,0,48,0,51,0,126,0,53,0,0,0,108,0,118,0,49,0,48,0,55,0,126,0,57,0,0,0,108,0,118,0,49,0,49,0,49,0,126,0,51,0,0,0,109,0,97,0,98,0,101,0,114,0,126,0,115,0,0,0,109,0,97,0,103,0,117,0,101,0,126,0,102,0,0,0,109,0,97,0,107,0,104,0,110,0,126,0,111,0,0,0,109,0,97,0,115,0,105,0,107,0,126,0,108,0,0,0,109,0,104,0,97,0,108,0,107,0,126,0,108,0,0,0,109,0,107,0,49,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,50,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,50,0,49,0,48,0,126,0,49,0,0,0,109,0,107,0,51,0,48,0,51,0,126,0,52,0,0,0,109,0,107,0,51,0,48,0,55,0,126,0,56,0,0,0,109,0,107,0,51,0,49,0,48,0,126,0,51,0,0,0,109,0,107,0,52,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,53,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,54,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,55,0,48,0,49,0,126,0,54,0,0,0,109,0,107,0,56,0,48,0,49,0,126,0,57,0,0,0,109,0,107,0,56,0,49,0,48,0,126,0,55,0,0,0,109,0,108,0,95,0,65,0,114,0,97,0,98,0,0,0,109,0,108,0,95,0,76,0,97,0,116,0,110,0,0,0,109,0,110,0,48,0,52,0,54,0,126,0,55,0,0,0,109,0,110,0,48,0,54,0,51,0,126,0,53,0,0,0,109,0,111,0,110,0,111,0,116,0,111,0,110,0,0,0,109,0,114,0,95,0,68,0,101,0,118,0,97,0,0,0,109,0,114,0,95,0,76,0,97,0,116,0,110,0,0,0,109,0,115,0,95,0,65,0,114,0,97,0,98,0,0,0,110,0,101,0,95,0,68,0,101,0,118,0,97,0,0,0,110,0,108,0,98,0,113,0,49,0,126,0,51,0,0,0,112,0,97,0,95,0,65,0,114,0,97,0,98,0,0,0,112,0,101,0,108,0,97,0,108,0,126,0,109,0,0,0,112,0,103,0,109,0,112,0,108,0,126,0,109,0,0,0,112,0,104,0,98,0,117,0,107,0,126,0,108,0,0,0,112,0,104,0,99,0,97,0,109,0,126,0,110,0,0,0,112,0,104,0,99,0,97,0,115,0,126,0,116,0,0,0,112,0,104,0,112,0,97,0,109,0,126,0,110,0,0,0,112,0,111,0,108,0,121,0,116,0,111,0,110,0,0,0,112,0,114,0,111,0,118,0,101,0,110,0,99,0,0,0,112,0,115,0,95,0,65,0,114,0,97,0,98,0,0,0,112,0,115,0,106,0,101,0,109,0,126,0,110,0,0,0,112,0,119,0,50,0,50,0,54,0,126,0,56,0,0,0,115,0,100,0,95,0,65,0,114,0,97,0,98,0,0,0,115,0,100,0,95,0,68,0,101,0,118,0,97,0,0,0,115,0,105,0,48,0,48,0,49,0,126,0,57,0,0,0,115,0,105,0,48,0,49,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,50,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,51,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,52,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,53,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,54,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,55,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,56,0,48,0,126,0,57,0,0,0,115,0,105,0,48,0,57,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,48,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,49,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,50,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,51,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,52,0,48,0,126,0,52,0,0,0,115,0,105,0,49,0,52,0,54,0,126,0,57,0,0,0,115,0,105,0,49,0,53,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,54,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,55,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,56,0,48,0,126,0,57,0,0,0,115,0,105,0,49,0,57,0,48,0,126,0,57,0,0,0,115,0,105,0,50,0,48,0,48,0,126,0,57,0,0,0,115,0,105,0,50,0,49,0,48,0,126,0,51,0,0,0,115,0,111,0,95,0,65,0,114,0,97,0,98,0,0,0,115,0,114,0,95,0,67,0,121,0,114,0,108,0,0,0,115,0,117,0,114,0,115,0,105,0,108,0,118,0,0,0,115,0,117,0,116,0,115,0,105,0,108,0,118,0,0,0,115,0,119,0,95,0,65,0,114,0,97,0,98,0,0,0,116,0,97,0,95,0,76,0,97,0,116,0,110,0,0,0,116,0,101,0,95,0,76,0,97,0,116,0,110,0,0,0,116,0,103,0,95,0,65,0,114,0,97,0,98,0,0,0,116,0,105,0,95,0,69,0,116,0,104,0,105,0,0,0,116,0,107,0,95,0,76,0,97,0,116,0,110,0,0,0,117,0,103,0,49,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,49,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,49,0,50,0,48,0,126,0,54,0,0,0,117,0,103,0,50,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,50,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,50,0,50,0,48,0,126,0,57,0,0,0,117,0,103,0,50,0,51,0,48,0,126,0,55,0,0,0,117,0,103,0,51,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,51,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,51,0,50,0,48,0,126,0,57,0,0,0,117,0,103,0,51,0,51,0,48,0,126,0,55,0,0,0,117,0,103,0,52,0,48,0,49,0,126,0,57,0,0,0,117,0,103,0,52,0,49,0,48,0,126,0,57,0,0,0,117,0,103,0,52,0,50,0,48,0,126,0,57,0,0,0,117,0,103,0,52,0,51,0,48,0,126,0,53,0,0,0,117,0,103,0,95,0,67,0,121,0,114,0,108,0,0,0,117,0,114,0,95,0,65,0,114,0,97,0,98,0,0,0,118,0,97,0,105,0,100,0,105,0,107,0,97,0,0,0,119,0,111,0,95,0,65,0,114,0,97,0,98,0,0,0,122,0,97,0,95,0,76,0,97,0,116,0,110,0,0,0,122,0,104,0,95,0,76,0,97,0,116,0,110,0,0,0,115,0,97,0,116,0,95,0,68,0,101,0,118,0,97,0,0,0,115,0,104,0,105,0,95,0,76,0,97,0,116,0,110,0,0,0,109,0,110,0,105,0,95,0,77,0,116,0,101,0,105,0,0,0,100,0,121,0,111,0,95,0,65,0,114,0,97,0,98,0,0,0,105,0,106,0,101,0,107,0,97,0,118,0,115,0,107,0,0,0,98,0,97,0,107,0,117,0,49,0,57,0,50,0,54,0,0,0,98,0,111,0,114,0,110,0,104,0,111,0,108,0,109,0,0,0,116,0,111,0,110,0,103,0,121,0,111,0,110,0,103,0,0,0,120,0,115,0,105,0,115,0,116,0,101,0,109,0,111,0,0,0,107,0,111,0,99,0,105,0,101,0,119,0,105,0,101,0,0,0,49,0,54,0,48,0,54,0,110,0,105,0,99,0,116,0,0,0,49,0,54,0,57,0,52,0,97,0,99,0,97,0,100,0,0,0,49,0,57,0,53,0,57,0,97,0,99,0,97,0,100,0,0,0,98,0,97,0,108,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,97,0,115,0,105,0,99,0,101,0,110,0,103,0,0,0,98,0,105,0,115,0,99,0,97,0,121,0,97,0,110,0,0,0,98,0,108,0,116,0,95,0,76,0,97,0,116,0,110,0,0,0,98,0,117,0,100,0,100,0,104,0,105,0,115,0,116,0,0,0,98,0,121,0,110,0,95,0,76,0,97,0,116,0,110,0,0,0,99,0,111,0,108,0,98,0,49,0,57,0,52,0,53,0,0,0,100,0,106,0,101,0,95,0,65,0,114,0,97,0,98,0,0,0,101,0,116,0,104,0,105,0,111,0,112,0,105,0,99,0,0,0,102,0,111,0,110,0,107,0,105,0,114,0,115,0,104,0,0,0,102,0,111,0,110,0,120,0,115,0,97,0,109,0,112,0,0,0,104,0,111,0,103,0,110,0,111,0,114,0,115,0,107,0,0,0,104,0,115,0,105,0,115,0,116,0,101,0,109,0,111,0,0,0,105,0,118,0,97,0,110,0,99,0,104,0,111,0,118,0,0,0,106,0,97,0,112,0,97,0,110,0,101,0,115,0,101,0,0,0,106,0,121,0,117,0,116,0,112,0,105,0,110,0,103,0,0,0,108,0,101,0,110,0,103,0,97,0,100,0,111,0,99,0,0,0,108,0,117,0,110,0,97,0,49,0,57,0,49,0,56,0,0,0,109,0,97,0,115,0,115,0,45,0,116,0,111,0,110,0,0,0,110,0,101,0,119,0,102,0,111,0,117,0,110,0,100,0,0,0,111,0,120,0,101,0,110,0,100,0,105,0,99,0,116,0,0,0,112,0,101,0,116,0,114,0,49,0,55,0,48,0,56,0,0,0,115,0,99,0,111,0,116,0,108,0,97,0,110,0,100,0,0,0,115,0,112,0,97,0,110,0,103,0,108,0,105,0,115,0,0,0,115,0,117,0,114,0,109,0,105,0,114,0,97,0,110,0,0,0,115,0,121,0,110,0,110,0,101,0,106,0,121,0,108,0,0,0,116,0,117,0,110,0,117,0,109,0,105,0,105,0,116,0,0,0,118,0,97,0,105,0,95,0,76,0,97,0,116,0,110,0,0,0,118,0,97,0,108,0,101,0,110,0,99,0,105,0,97,0,0,0,118,0,97,0,108,0,108,0,97,0,100,0,101,0,114,0,0,0,118,0,101,0,99,0,100,0,114,0,117,0,107,0,97,0,0,0,118,0,105,0,118,0,97,0,114,0,97,0,117,0,112,0,0,0,119,0,97,0,100,0,101,0,103,0,105,0,108,0,101,0,0,0,121,0,117,0,101,0,95,0,72,0,97,0,110,0,115,0,0,0,103,0,114,0,101,0,103,0,111,0,114,0,105,0,97,0,110,0,0,0,108,0,117,0,110,0,105,0,115,0,111,0,108,0,97,0,114,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,42,0,0,0,97,0,114,0,101,0,97,0,45,0,97,0,99,0,114,0,101,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,108,0,117,0,120,0,0,0,109,0,97,0,115,0,115,0,45,0,103,0,114,0,97,0,109,0,0,0,112,0,97,0,104,0,97,0,119,0,104,0,50,0,126,0,52,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,89,0,101,0,97,0,114,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,68,0,97,0,116,0,101,0,0,0,101,0,110,0,95,0,42,0,95,0,36,0,101,0,110,0,85,0,83,0,0,0,109,0,97,0,115,0,115,0,45,0,112,0,111,0,117,0,110,0,100,0,0,0,109,0,97,0,115,0,115,0,45,0,115,0,116,0,111,0,110,0,101,0,0,0,97,0,114,0,101,0,97,0,45,0,100,0,117,0,110,0,97,0,109,0,0,0,109,0,97,0,115,0,115,0,45,0,99,0,97,0,114,0,97,0,116,0,0,0,109,0,97,0,115,0,115,0,45,0,103,0,114,0,97,0,105,0,110,0,0,0,109,0,97,0,115,0,115,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,109,0,97,0,115,0,115,0,45,0,116,0,111,0,110,0,110,0,101,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,119,0,97,0,116,0,116,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,107,0,110,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,112,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,77,0,79,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,77,0,111,0,110,0,116,0,104,0,0,0,101,0,110,0,95,0,42,0,95,0,36,0,33,0,101,0,110,0,85,0,83,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,121,0,97,0,114,0,100,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,98,0,105,0,116,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,101,0,109,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,102,0,111,0,111,0,116,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,105,0,110,0,99,0,104,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,108,0,101,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,108,0,117,0,109,0,101,0,110,0,0,0,109,0,97,0,115,0,115,0,45,0,100,0,97,0,108,0,116,0,111,0,110,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,114,0,97,0,109,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,114,0,111,0,112,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,112,0,105,0,110,0,116,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,116,0,98,0,108,0,97,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,112,0,105,0,110,0,99,0,104,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,100,0,101,0,103,0,114,0,101,0,101,0,0,0,97,0,114,0,101,0,97,0,45,0,104,0,101,0,99,0,116,0,97,0,114,0,101,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,113,0,117,0,97,0,114,0,116,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,114,0,97,0,100,0,105,0,97,0,110,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,98,0,121,0,116,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,100,0,97,0,121,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,111,0,104,0,109,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,106,0,111,0,117,0,108,0,101,0,0,0,102,0,111,0,114,0,99,0,101,0,45,0,110,0,101,0,119,0,116,0,111,0,110,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,100,0,111,0,116,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,114,0,103,0,115,0,97,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,112,0,111,0,105,0,110,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,98,0,97,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,108,0,105,0,116,0,101,0,114,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,99,0,105,0,118,0,105,0,108,0,0,0,97,0,114,0,95,0,42,0,95,0,36,0,109,0,97,0,103,0,104,0,114,0,101,0,98,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,105,0,116,0,101,0,109,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,111,0,108,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,104,0,111,0,117,0,114,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,119,0,101,0,101,0,107,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,121,0,101,0,97,0,114,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,118,0,111,0,108,0,116,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,102,0,97,0,116,0,104,0,111,0,109,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,112,0,97,0,114,0,115,0,101,0,99,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,0,0,109,0,97,0,115,0,115,0,45,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,111,0,102,0,104,0,103,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,98,0,97,0,114,0,114,0,101,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,98,0,117,0,115,0,104,0,101,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,106,0,105,0,103,0,103,0,101,0,114,0,0,0,119,0,101,0,101,0,107,0,79,0,102,0,73,0,110,0,116,0,101,0,114,0,118,0,97,0,108,0,0,0,97,0,114,0,95,0,42,0,95,0,36,0,33,0,109,0,97,0,103,0,104,0,114,0,101,0,98,0,0,0,101,0,115,0,95,0,42,0,95,0,36,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,112,0,116,0,95,0,42,0,95,0,36,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,36,0,99,0,110,0,115,0,97,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,107,0,97,0,114,0,97,0,116,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,111,0,110,0,116,0,104,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,112,0,105,0,120,0,101,0,108,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,102,0,117,0,114,0,108,0,111,0,110,0,103,0,0,0,109,0,97,0,115,0,115,0,45,0,109,0,105,0,99,0,114,0,111,0,103,0,114,0,97,0,109,0,0,0,109,0,97,0,115,0,115,0,45,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,103,0,105,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,109,0,101,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,101,0,115,0,95,0,42,0,95,0,36,0,33,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,112,0,116,0,95,0,42,0,95,0,36,0,33,0,97,0,109,0,101,0,114,0,105,0,99,0,97,0,115,0,0,0,122,0,104,0,95,0,72,0,97,0,110,0,116,0,95,0,36,0,33,0,99,0,110,0,115,0,97,0,114,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,110,0,117,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,103,0,105,0,103,0,97,0,98,0,105,0,116,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,107,0,105,0,108,0,111,0,98,0,105,0,116,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,109,0,101,0,103,0,97,0,98,0,105,0,116,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,116,0,101,0,114,0,97,0,98,0,105,0,116,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,100,0,101,0,99,0,97,0,100,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,116,0,104,0,101,0,114,0,109,0,45,0,117,0,115,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,104,0,101,0,114,0,116,0,122,0,0,0,109,0,97,0,115,0,115,0,45,0,101,0,97,0,114,0,116,0,104,0,45,0,109,0,97,0,115,0,115,0,0,0,109,0,97,0,115,0,115,0,45,0,109,0,101,0,116,0,114,0,105,0,99,0,45,0,116,0,111,0,110,0,0,0,109,0,97,0,115,0,115,0,45,0,111,0,117,0,110,0,99,0,101,0,45,0,116,0,114,0,111,0,121,0,0,0,109,0,97,0,115,0,115,0,45,0,115,0,111,0,108,0,97,0,114,0,45,0,109,0,97,0,115,0,115,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,119,0,97,0,116,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,116,0,101,0,97,0,115,0,112,0,111,0,111,0,110,0,0,0,105,0,115,0,108,0,97,0,109,0,105,0,99,0,45,0,117,0,109,0,97,0,108,0,113,0,117,0,114,0,97,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,97,0,114,0,99,0,45,0,109,0,105,0,110,0,117,0,116,0,101,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,97,0,114,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,97,0,110,0,103,0,108,0,101,0,45,0,114,0,101,0,118,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,105,0,108,0,101,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,121,0,97,0,114,0,100,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,99,0,101,0,110,0,116,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,111,0,114,0,116,0,105,0,111,0,110,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,103,0,105,0,103,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,107,0,105,0,108,0,111,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,109,0,101,0,103,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,112,0,101,0,116,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,45,0,116,0,101,0,114,0,97,0,98,0,121,0,116,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,99,0,101,0,110,0,116,0,117,0,114,0,121,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,113,0,117,0,97,0,114,0,116,0,101,0,114,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,107,0,105,0,108,0,111,0,106,0,111,0,117,0,108,0,101,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,100,0,101,0,99,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,110,0,97,0,110,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,112,0,105,0,99,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,112,0,111,0,119,0,101,0,114,0,45,0,104,0,111,0,114,0,115,0,101,0,112,0,111,0,119,0,101,0,114,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,45,0,104,0,103,0,0,0,112,0,114,0,111,0,112,0,111,0,114,0,116,0,105,0,111,0,110,0,45,0,107,0,97,0,114,0,97,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,97,0,99,0,114,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,109,0,101,0,103,0,97,0,108,0,105,0,116,0,101,0,114,0,0,0,100,0,101,0,95,0,102,0,97,0,99,0,116,0,111,0,95,0,111,0,102,0,102,0,105,0,99,0,105,0,97,0,108,0,0,0,111,0,102,0,102,0,105,0,99,0,105,0,97,0,108,0,95,0,114,0,101,0,103,0,105,0,111,0,110,0,97,0,108,0,0,0,77,0,65,0,43,0,68,0,90,0,43,0,84,0,78,0,43,0,76,0,89,0,43,0,77,0,82,0,43,0,69,0,72,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,116,0,97,0,98,0,108,0,101,0,115,0,112,0,111,0,111,0,110,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,109,0,105,0,108,0,108,0,101,0,0,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,108,0,105,0,103,0,104,0,116,0,45,0,121,0,101,0,97,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,99,0,114,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,98,0,97,0,114,0,0,0,116,0,111,0,114,0,113,0,117,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,101,0,110,0,116,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,105,0,110,0,99,0,104,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,105,0,108,0,101,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,121,0,97,0,114,0,100,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,112,0,45,0,109,0,101,0,116,0,114,0,105,0,99,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,104,0,101,0,99,0,116,0,111,0,108,0,105,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,107,0,105,0,108,0,111,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,107,0,101,0,108,0,118,0,105,0,110,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,109,0,121,0,114,0,105,0,97,0,100,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,102,0,111,0,111,0,100,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,109,0,101,0,103,0,97,0,112,0,105,0,120,0,101,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,45,0,111,0,102,0,104,0,103,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,112,0,105,0,110,0,116,0,45,0,109,0,101,0,116,0,114,0,105,0,99,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,101,0,114,0,109,0,105,0,108,0,108,0,105,0,111,0,110,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,100,0,97,0,121,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,110,0,97,0,110,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,101,0,108,0,101,0,99,0,116,0,114,0,111,0,110,0,118,0,111,0,108,0,116,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,103,0,105,0,103,0,97,0,104,0,101,0,114,0,116,0,122,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,107,0,105,0,108,0,111,0,104,0,101,0,114,0,116,0,122,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,45,0,109,0,101,0,103,0,97,0,104,0,101,0,114,0,116,0,122,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,101,0,97,0,114,0,116,0,104,0,45,0,114,0,97,0,100,0,105,0,117,0,115,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,115,0,111,0,108,0,97,0,114,0,45,0,114,0,97,0,100,0,105,0,117,0,115,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,97,0,116,0,109,0,111,0,115,0,112,0,104,0,101,0,114,0,101,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,107,0,105,0,108,0,111,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,101,0,103,0,97,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,99,0,101,0,108,0,115,0,105,0,117,0,115,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,103,0,101,0,110,0,101,0,114,0,105,0,99,0,0,0,116,0,111,0,114,0,113,0,117,0,101,0,45,0,110,0,101,0,119,0,116,0,111,0,110,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,103,0,45,0,102,0,111,0,114,0,99,0,101,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,99,0,114,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,108,0,108,0,105,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,119,0,101,0,101,0,107,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,121,0,101,0,97,0,114,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,109,0,105,0,108,0,108,0,105,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,45,0,104,0,111,0,117,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,110,0,97,0,117,0,116,0,105,0,99,0,97,0,108,0,45,0,109,0,105,0,108,0,101,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,104,0,101,0,99,0,116,0,111,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,101,0,115,0,115,0,101,0,114,0,116,0,45,0,115,0,112,0,111,0,111,0,110,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,111,0,110,0,116,0,104,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,100,0,111,0,116,0,45,0,112,0,101,0,114,0,45,0,105,0,110,0,99,0,104,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,113,0,117,0,97,0,114,0,116,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,45,0,102,0,97,0,104,0,114,0,101,0,110,0,104,0,101,0,105,0,116,0,0,0,97,0,114,0,101,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,105,0,103,0,104,0,116,0,45,0,115,0,111,0,108,0,97,0,114,0,45,0,108,0,117,0,109,0,105,0,110,0,111,0,115,0,105,0,116,0,121,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,112,0,105,0,120,0,101,0,108,0,45,0,112,0,101,0,114,0,45,0,105,0,110,0,99,0,104,0,0,0,116,0,111,0,114,0,113,0,117,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,109,0,105,0,108,0,101,0,45,0,115,0,99,0,97,0,110,0,100,0,105,0,110,0,97,0,118,0,105,0,97,0,110,0,0,0,108,0,101,0,110,0,103,0,116,0,104,0,45,0,97,0,115,0,116,0,114,0,111,0,110,0,111,0,109,0,105,0,99,0,97,0,108,0,45,0,117,0,110,0,105,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,104,0,103,0,0,0,115,0,112,0,101,0,101,0,100,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,112,0,97,0,114,0,116,0,45,0,112,0,101,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,111,0,110,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,45,0,98,0,114,0,105,0,116,0,105,0,115,0,104,0,45,0,116,0,104,0,101,0,114,0,109,0,97,0,108,0,45,0,117,0,110,0,105,0,116,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,100,0,111,0,116,0,45,0,112,0,101,0,114,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,111,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,108,0,105,0,116,0,101,0,114,0,0,0,65,0,83,0,43,0,67,0,65,0,43,0,71,0,85,0,43,0,77,0,72,0,43,0,77,0,80,0,43,0,80,0,72,0,43,0,80,0,82,0,43,0,85,0,77,0,43,0,85,0,83,0,43,0,86,0,73,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,45,0,112,0,105,0,120,0,101,0,108,0,45,0,112,0,101,0,114,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,118,0,111,0,108,0,117,0,109,0,101,0,45,0,100,0,101,0,115,0,115,0,101,0,114,0,116,0,45,0,115,0,112,0,111,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,45,0,109,0,101,0,114,0,99,0,117,0,114,0,121,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,115,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,45,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,100,0,0,0,102,0,111,0,114,0,99,0,101,0,45,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,45,0,104,0,111,0,117,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,42,220,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,45,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,1,0,54,205,5,0,54,205,158,210,215,195,143,207,178,206,5,0,15,197,54,205,215,195,143,207,178,206,3,0,54,205,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,5,0,54,205,158,210,215,195,143,207,178,206,2,0,54,205,247,195,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,5,0,54,205,217,178,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,54,205,76,204,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,5,0,54,205,84,185,215,195,143,207,178,206,2,0,54,205,59,186,4,0,54,205,215,195,143,207,178,206,5,0,15,197,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,54,205,130,204,4,0,54,205,215,195,143,207,178,206,2,0,54,205,20,143,5,0,54,205,158,210,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,5,0,54,205,158,210,215,195,143,207,178,206,4,0,158,210,54,205,215,195,78,207,4,0,54,205,215,195,143,207,178,206,2,0,54,205,247,195,4,0,54,205,215,195,143,207,178,206,4,0,54,205,215,195,143,207,178,206,2,0,40,204,54,205,3,0,54,205,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,3,0,54,205,143,207,178,206,3,0,54,205,95,32,247,195,3,0,54,205,143,207,178,206,3,0,54,205,143,207,178,206,4,0,54,205,215,195,143,207,178,206,3,0,220,2,71,4,83,11,3,0,180,1,72,135,119,11,3,0,70,0,12,108,143,11,3,0,136,1,90,111,99,11,3,0,121,108,84,135,167,11,3,0,127,108,99,10,107,11,3,0,88,2,60,135,111,11,3,0,56,2,220,134,151,11,3,0,124,2,19,10,123,11,3,0,117,106,78,135,103,11,3,0,139,0,96,111,163,11,3,0,131,107,96,135,147,11,3,0,100,0,208,134,159,11,3,0,193,105,214,134,179,11,3,0,133,108,108,135,175,11,3,0,103,0,98,112,87,11,3,0,142,0,175,9,31,2,3,0,188,1,90,135,183,11,3,0,164,1,132,135,239,11,3,0,139,108,190,110,11,12,3,0,168,1,102,111,223,11,3,0,205,105,202,110,207,4,3,0,49,0,183,10,219,11,3,0,25,0,108,111,147,1,3,0,106,0,120,135,231,11,3,0,52,0,152,112,199,11,3,0,73,0,58,134,211,11,3,0,145,0,91,10,243,11,3,0,205,111,126,135,255,11,3,0,48,2,174,135,247,4,3,0,213,106,232,134,235,4,3,0,109,0,23,10,215,11,3,0,123,106,150,135,7,12,3,0,145,108,114,135,235,11,3,0,112,0,30,135,171,2,3,0,148,0,44,109,31,12,3,0,151,0,144,135,35,12,3,0,41,107,138,135,39,12,3,0,216,1,244,134,247,11,3,0,137,107,156,135,251,11,3,0,76,1,254,112,55,12,3,0,151,108,240,135,59,12,3,0,96,1,40,113,87,12,3,0,228,1,186,135,51,12,3,0,64,2,252,135,91,12,3,0,235,105,15,4,175,2,3,0,28,0,235,9,71,12,3,0,211,111,2,136,95,12,3,0,143,107,22,113,63,12,3,0,141,106,180,135,79,12,3,0,52,1,110,109,67,12,3,0,217,108,28,113,99,12,3,0,149,107,46,113,111,12,3,0,112,2,67,4,63,2,3,0,223,108,58,113,123,12,3,0,215,107,4,113,107,12,3,0,115,0,76,134,127,12,3,0,217,111,234,135,55,9,3,0,253,105,8,136,63,5,3,0,19,0,56,112,135,12,3,0,152,2,215,9,143,12,3,0,133,105,211,9,151,12,3,0,31,0,107,3,155,12,3,0,3,106,62,112,159,12,3,0,47,107,120,111,71,1,3,0,155,107,102,108,163,12,3,0,13,0,66,135,167,12,3,0,219,106,126,111,171,12,3,0,108,1,26,136,195,12,3,0,55,0,43,4,183,12,3,0,173,212,248,109,191,12,3,0,39,106,64,113,187,12,3,0,64,1,100,134,95,5,3,0,10,0,20,136,83,1,3,0,148,2,167,2,91,6,3,0,211,105,171,9,203,12,3,0,45,106,103,3,207,12,3,0,229,111,99,3,151,1,3,0,51,106,55,10,223,12,3,0,80,2,32,136,219,12,3,0,181,105,183,9,211,12,3,0,157,0,179,9,227,12,3,0,72,2,199,9,231,12,3,0,139,105,47,4,235,12,3,0,157,108,0,135,135,5,3,0,58,0,203,9,243,12,3,0,52,2,187,9,43,13,3,0,235,111,167,10,247,12,3,0,223,105,219,9,251,12,3,0,163,108,115,3,3,13,3,0,160,0,250,134,39,13,3,0,53,107,111,3,15,13,3,0,116,1,68,112,7,13,3,0,128,2,64,134,11,13,3,0,129,106,48,135,23,13,3,0,148,1,223,9,35,13,3,0,144,2,167,9,23,15,3,0,161,107,70,113,35,2,3,0,118,0,70,134,39,2,3,0,221,107,230,109,19,13,3,0,59,107,76,113,47,13,3,0,147,106,123,3,211,1,3,0,120,2,38,136,59,13,3,0,229,108,119,3,63,13,3,0,92,1,52,113,71,13,3,0,76,0,82,113,75,13,3,0,34,0,127,3,79,13,3,0,4,0,139,3,83,13,3,0,57,106,227,9,111,13,3,0,153,106,151,3,127,13,3,0,169,108,175,10,99,13,3,0,121,105,135,3,103,13,3,0,241,111,162,135,107,13,3,0,37,0,147,3,119,13,3,0,56,1,143,3,115,13,3,0,121,0,131,3,123,13,3,0,104,1,231,9,115,2,3,0,175,108,171,10,139,13,3,0,159,106,155,3,135,13,3,0,79,0,167,3,143,13,3,0,124,0,159,3,147,13,3,0,163,105,158,112,151,13,3,0,212,1,94,113,155,13,3,0,127,0,248,112,119,2,3,0,65,107,218,109,159,13,3,0,160,1,34,113,103,12,3,0,181,108,95,10,163,13,3,0,172,1,164,112,151,14,3,0,244,1,60,108,167,13,3,0,82,0,88,113,179,13,3,0,247,111,10,113,131,12,3,0,40,0,163,3,187,1,3,0,32,2,100,113,183,13,3,0,236,1,74,112,47,2,3,0,187,108,103,10,191,13,3,0,192,1,239,9,195,13,3,0,152,1,16,113,199,13,3,0,193,108,112,113,187,13,3,0,71,107,80,112,219,1,3,0,124,1,171,3,207,13,3,0,241,105,112,134,223,13,3,0,132,1,50,136,223,1,3,0,85,0,118,113,215,1,3,0,72,1,170,112,235,13,3,0,130,0,3,10,239,13,3,0,84,2,195,3,243,13,3,0,133,0,7,10,127,1,3,0,12,2,242,109,251,5,3,0,165,106,243,9,251,13,3,0,88,0,59,10,7,14,3,0,4,2,206,112,179,2,3,0,43,0,247,9,191,1,3,0,252,1,44,109,19,14,3,0,60,2,191,3,23,14,3,0,75,109,244,107,211,2,3,0,140,2,47,10,155,1,3,0,163,0,255,9,43,14,3,0,68,2,250,107,31,14,3,0,253,111,11,10,231,1,3,0,9,106,251,9,123,1,3,0,63,106,0,108,47,14,3,0,77,107,183,3,255,13,3,0,171,106,175,3,55,14,3,0,225,106,187,3,3,14,3,0,69,106,179,3,59,14,3,0,199,105,6,135,27,14,3,0,15,106,199,3,55,2,3,0,136,0,31,10,71,14,3,0,128,1,35,10,75,14,3,0,3,112,43,10,79,14,3,0,169,105,215,3,83,14,3,0,167,107,211,3,99,2,3,0,175,105,224,109,91,14,3,0,46,0,219,3,99,14,3,0,156,1,92,112,99,1,3,0,177,106,15,10,35,1,3,0,20,2,27,10,103,14,3,0,83,107,39,10,87,14,3,0,183,106,207,3,107,14,3,0,240,1,86,112,59,2,3,0,173,107,71,10,123,2,3,0,179,107,176,112,119,14,3,0,208,1,191,9,171,14,3,0,189,106,223,3,139,14,3,0,7,0,182,112,127,14,3,0,151,105,6,108,111,14,3,0,100,1,79,10,143,14,3,0,132,2,107,10,131,2,3,0,9,112,75,10,51,1,3,0,235,108,87,10,147,14,3,0,166,0,207,9,163,14,3,0,247,105,83,10,155,14,3,0,195,106,63,10,131,14,3,0,231,106,227,3,159,14,3,0,91,0,104,112,175,14,3,0,187,0,75,4,179,14,3,0,190,0,79,4,183,14,3,0,169,0,83,4,187,14,3,0,193,0,87,4,191,14,3,0,68,9,91,4,195,14,3,0,196,0,95,4,199,14,3,0,199,0,99,4,203,14,3,0,202,0,39,11,207,14,3,0,172,0,167,2,91,6,3,0,205,0,103,4,211,14,3,0,208,0,107,4,215,14,3,0,211,0,111,4,219,14,3,0,214,0,122,112,223,14,3,0,217,0,128,112,227,14,3,0,0,2,236,109,231,14,3,0,80,1,94,134,243,14,3,0,68,1,123,10,39,15,3,0,36,1,110,112,251,14,3,0,75,106,116,112,255,14,3,0,248,1,243,3,3,15,3,0,89,107,238,134,235,1,3,0,201,106,247,3,71,15,3,0,81,106,135,10,11,15,3,0,87,106,11,4,63,15,3,0,93,106,188,112,127,2,3,0,15,112,235,3,27,15,3,0,217,105,18,135,199,1,3,0,44,2,143,10,31,15,3,0,88,1,12,135,59,15,3,0,99,106,251,3,135,6,3,0,76,2,115,10,67,2,3,0,48,1,119,10,19,15,3,0,220,1,200,112,239,1,3,0,232,1,139,10,159,6,3,0,95,107,3,4,47,15,3,0,81,109,239,3,135,2,3,0,28,2,24,135,51,15,3,0,185,107,132,111,131,1,3,0,199,108,88,134,63,9,3,0,61,0,19,4,75,15,3,0,101,107,7,4,67,15,3,0,21,112,254,109,75,1,3,0,184,1,204,135,79,15,3,0,108,2,195,9,107,2,3,0,176,1,151,10,83,15,3,0,84,1,23,4,87,15,3,0,94,0,147,10,91,15,3,0,205,108,155,10,99,15,3,0,227,107,231,3,103,15,3,0,36,2,159,10,159,1,3,0,144,1,35,4,215,2,3,0,107,107,27,4,111,15,3,0,136,2,231,3,139,2,3,0,22,0,118,134,127,15,3,0,113,107,31,4,123,15,3,0,119,107,163,10,131,15,3,0,175,0,228,135,135,15,3,0,229,105,18,108,139,15,3,0,120,1,106,134,243,1,3,0,157,105,39,4,71,2,3,0,40,2,51,10,147,15,3,0,154,205,51,4,247,1,3,0,241,108,55,4,151,15,3,0,97,0,59,4,163,15,3,0,224,1,44,136,167,15,3,0,125,107,111,10,171,15,3,0,191,107,187,10,179,15,3,0,211,108,168,135,183,15,3,0,41,219,179,10,55,1,3,0,200,1,194,112,187,15,3,0,105,106,203,3,195,15,3,0,140,1,191,10,199,15,3,0,207,106,63,4,75,2,3,0,220,0,134,112,219,2,3,0,223,0,140,112,3,7,3,0,226,0,115,4,207,15,3,0,229,0,24,108,211,15,3,0,232,0,119,4,107,1,3,0,235,0,123,4,215,15,3,0,238,0,127,4,223,15,3,0,241,0,131,4,227,15,3,0,244,0,135,4,231,15,3,0,247,0,43,11,235,15,3,0,64,0,47,11,239,15,3,0,250,0,139,4,243,15,3,0,64,9,143,4,251,1,3,0,204,2,147,4,247,15,3,0,253,0,51,11,251,15,3,0,60,9,55,11,255,15,3,0,0,1,59,11,67,9,3,0,56,9,157,178,3,16,3,0,3,1,63,11,7,16,3,0,6,1,67,11,11,16,3,0,9,1,71,11,15,16,3,0,208,2,146,43,19,16,3,0,12,1,75,11,23,16,3,0,96,2,120,69,95,2,3,0,15,1,151,4,27,16,3,0,18,1,79,11,31,16,3,0,16,2,131,10,83,2,3,0,67,0,199,10,35,16,3,0,196,1,246,135,195,1,3,0,24,2,67,4,43,16,3,0,145,105,255,3,135,1,3,0,21,106,203,10,51,16,3,0,178,0,40,113,183,2,3,0,111,106,127,10,67,16,3,0,224,2,155,4,223,2,2,0,159,4,12,108,2,0,163,4,122,112,2,0,167,4,194,178,2,0,171,4,187,43,2,0,175,4,82,134,2,0,179,4,134,112,2,0,67,1,80,70,2,0,183,4,85,70,2,0,187,4,98,112,2,0,191,4,247,10,2,0,195,4,119,4,2,0,199,4,192,43,2,0,203,4,66,44,2,0,211,4,115,4,2,0,215,4,100,70,2,0,219,4,152,112,2,0,223,4,120,70,2,0,227,4,140,70,2,0,231,4,125,70,2,0,239,4,139,4,2,0,243,4,147,4,2,0,251,4,95,70,2,0,171,2,197,43,2,0,255,4,202,43,2,0,3,5,140,112,2,0,7,5,105,70,2,0,11,5,254,112,2,0,15,5,24,108,2,0,175,2,255,10,2,0,19,5,15,4,2,0,23,5,3,11,2,0,75,12,157,178,2,0,27,5,22,113,2,0,31,5,110,109,2,0,35,5,110,109,2,0,39,5,28,113,2,0,43,5,111,4,2,0,47,5,46,113,2,0,51,5,219,10,2,0,55,5,58,113,2,0,59,5,4,113,2,0,67,5,56,112,2,0,71,5,107,3,2,0,75,5,62,112,2,0,79,5,102,108,2,0,83,5,145,70,2,0,87,5,43,4,2,0,91,5,64,113,2,0,99,5,14,136,2,0,103,5,123,4,2,0,107,5,103,3,2,0,171,1,99,3,2,0,111,5,47,4,2,0,115,5,135,4,2,0,119,5,227,10,2,0,123,5,115,3,2,0,127,5,111,3,2,0,131,5,68,112,2,0,139,5,70,113,2,0,143,5,76,113,2,0,147,5,123,3,2,0,151,5,119,3,2,0,155,5,52,113,2,0,175,1,82,113,2,0,159,5,127,3,2,0,163,5,139,3,2,0,167,5,151,3,2,0,171,5,135,3,2,0,175,5,147,3,2,0,179,5,143,3,2,0,87,1,131,3,2,0,183,5,155,3,2,0,187,5,167,3,2,0,191,5,159,3,2,0,195,5,158,112,2,0,199,5,94,113,2,0,91,1,248,112,2,0,11,2,34,113,2,0,203,5,164,112,2,0,207,5,60,108,2,0,211,5,88,113,2,0,215,5,10,113,2,0,219,5,163,3,2,0,223,5,100,113,2,0,227,5,74,112,2,0,231,5,16,113,2,0,235,5,112,113,2,0,239,5,80,112,2,0,243,5,171,3,2,0,15,2,118,113,2,0,247,5,170,112,2,0,255,5,195,3,2,0,3,6,107,4,2,0,179,2,206,112,2,0,7,6,44,109,2,0,19,2,191,3,2,0,11,6,244,107,2,0,79,1,250,107,2,0,15,6,211,10,2,0,19,6,0,108,2,0,23,6,183,3,2,0,27,6,175,3,2,0,203,2,187,3,2,0,207,2,127,4,2,0,31,6,179,3,2,0,35,6,59,197,2,0,179,1,199,3,2,0,115,1,215,3,2,0,39,6,211,3,2,0,43,6,219,3,2,0,47,6,92,112,2,0,51,6,207,3,2,0,55,6,86,112,2,0,59,6,67,10,2,0,63,6,176,112,2,0,67,6,223,3,2,0,71,6,182,112,2,0,75,6,6,108,2,0,79,6,143,4,2,0,83,6,227,3,2,0,87,6,104,112,2,0,95,6,251,10,2,0,99,6,243,10,2,0,103,6,110,112,2,0,139,1,116,112,2,0,107,6,243,3,2,0,111,6,110,70,2,0,115,6,247,3,2,0,119,6,235,10,2,0,123,6,11,4,2,0,127,6,188,112,2,0,131,6,235,3,2,0,139,6,251,3,2,0,143,6,200,112,2,0,147,6,103,4,2,0,151,6,3,4,2,0,155,6,239,3,2,0,143,1,215,10,2,0,163,6,19,4,2,0,167,6,7,4,2,0,171,6,23,4,2,0,175,6,128,112,2,0,179,6,223,10,2,0,183,6,35,4,2,0,187,6,27,4,2,0,191,6,7,11,2,0,183,1,31,4,2,0,195,6,4,110,2,0,199,6,18,108,2,0,203,6,131,4,2,0,207,6,39,4,2,0,211,6,51,4,2,0,47,1,151,4,2,0,215,6,239,10,2,0,23,2,55,4,2,0,219,6,207,10,2,0,223,6,59,4,2,0,227,6,193,203,2,0,231,6,231,10,2,0,63,1,10,110,2,0,235,6,194,112,2,0,239,6,203,3,2,0,243,6,63,4,2,0,247,6,11,11,2,0,251,6,83,4,2,0,255,6,75,4,2,0,163,1,27,11,2,0,3,7,31,11,2,0,203,15,35,11,2,0,167,1,71,4,2,0,95,1,15,11,2,0,7,7,79,4,2,0,11,7,19,11,2,0,15,7,95,4,2,0,207,1,23,11,2,0,19,7,87,4,2,0,27,2,146,43,2,0,23,7,91,4,2,0,119,1,99,4,2,0,95,2,155,4,2,0,27,7,195,10,2,0,183,2,255,3,2,0,31,7,167,2,139,0,91,11,95,11,115,11,127,11,131,11,135,11,139,11,102,136,155,11,171,11,187,11,191,11,195,11,203,11,207,11,207,4,108,136,227,11,235,4,3,12,239,4,114,136,15,12,247,4,19,12,23,12,27,12,43,12,3,5,175,2,23,5,120,136,31,5,83,12,43,5,115,12,119,12,63,5,139,12,147,12,111,2,175,12,179,12,126,136,95,5,199,12,215,12,239,12,255,12,27,13,31,13,135,5,51,13,55,13,67,13,87,13,91,13,95,13,43,2,131,13,171,13,175,13,243,5,203,13,211,13,215,13,219,13,227,13,231,13,251,5,227,1,247,13,51,2,11,14,15,14,79,1,35,14,39,14,51,14,59,9,207,2,63,14,67,14,99,2,95,14,115,14,123,14,135,14,167,14,235,14,239,14,247,14,7,15,15,15,103,1,35,15,43,15,155,6,159,6,55,15,95,15,107,15,115,15,119,15,143,15,143,2,47,1,155,15,215,6,159,15,219,6,175,15,227,6,231,6,191,15,251,6,255,6,138,136,7,7,147,2,79,2,219,15,15,7,19,7,255,1,27,2,23,7,119,1,151,2,39,16,144,136,47,16,87,2,3,2,55,16,59,16,63,16,71,16,75,16,156,0,159,4,163,4,167,4,171,4,175,4,179,4,67,1,183,4,187,4,191,4,195,4,199,4,203,4,211,4,215,4,219,4,223,4,227,4,231,4,243,4,251,4,171,2,255,4,47,12,7,5,11,5,15,5,19,5,27,5,35,5,39,5,47,5,51,5,55,5,59,5,67,5,71,5,75,5,79,5,83,5,87,5,91,5,99,5,103,5,107,5,171,1,111,5,115,5,119,5,123,5,127,5,131,5,139,5,143,5,147,5,151,5,155,5,175,1,159,5,163,5,167,5,171,5,175,5,179,5,87,1,183,5,187,5,191,5,195,5,199,5,91,1,11,2,203,5,207,5,211,5,215,5,219,5,223,5,227,5,231,5,235,5,239,5,15,2,247,5,255,5,3,6,179,2,7,6,19,2,11,6,15,6,19,6,23,6,27,6,203,2,31,6,35,6,179,1,115,1,39,6,43,6,47,6,51,6,55,6,59,6,63,6,67,6,71,6,75,6,79,6,83,6,87,6,95,6,99,6,103,6,139,1,107,6,111,6,115,6,119,6,123,6,127,6,131,6,135,6,139,6,143,6,147,6,151,6,143,1,163,6,167,6,171,6,175,6,179,6,183,6,187,6,191,6,183,1,195,6,199,6,203,6,207,6,211,6,23,2,223,6,63,1,235,6,239,6,243,6,247,6,95,1,11,7,207,1,27,7,183,2,31,7,18,1,83,16,131,16,136,43,159,16,104,137,199,16,122,42,195,39,31,17,71,17,123,17,118,138,139,17,182,109,55,7,151,17,155,17,183,17,21,109,187,17,195,17,199,17,203,17,59,7,215,17,188,109,223,17,3,18,11,18,19,18,31,18,35,18,43,18,51,18,63,18,71,18,79,18,87,18,95,18,195,18,203,18,28,110,239,18,34,110,243,18,247,18,19,19,39,19,43,19,55,19,91,19,95,19,158,41,115,19,67,197,119,19,127,19,131,19,224,40,139,19,234,40,179,19,191,19,195,19,52,110,219,19,239,19,19,20,163,20,188,41,187,20,207,20,220,203,205,69,35,21,143,21,223,21,231,21,235,21,132,42,11,22,106,147,19,22,39,22,142,42,71,22,103,22,195,22,203,22,206,109,239,22,27,23,39,23,71,23,143,23,215,23,223,23,67,24,83,24,87,24,91,24,235,178,160,9,239,24,195,69,31,25,16,44,162,43,187,25,191,25,250,150,199,25,235,25,239,25,243,25,247,25,251,25,195,2,75,9,7,26,15,26,242,42,23,26,27,26,39,26,43,26,51,26,59,26,63,26,67,26,71,26,75,26,79,26,61,43,87,26,107,26,127,26,130,134,155,69,39,70,152,109,107,8,18,41,103,27,131,27,135,27,139,27,151,27,187,27,195,27,199,27,70,70,207,27,223,27,231,27,239,27,243,27,247,27,126,157,255,27,3,28,7,28,11,28,232,110,210,69,35,28,118,41,95,28,23,41,123,28,127,28,28,41,135,28,98,41,215,28,7,29,115,29,151,29,195,29,231,29,43,30,51,30,63,30,75,30,99,30,143,30,159,30,171,30,175,30,179,30,183,30,187,30,195,30,203,30,215,30,235,30,239,30,243,30,15,31,23,31,151,31,3,214,51,32,150,39,59,32,21,43,212,109,71,43,187,32,247,32,251,32,111,39,7,33,49,70,11,33,86,43,27,33,209,40,172,168,75,33,87,33,91,33,143,33,147,33,167,33,171,33,138,169,150,169,195,33,144,9,207,33,219,33,2,170,227,33,239,33,243,33,148,9,87,34,103,34,119,34,159,34,183,34,39,35,143,35,11,3,163,35,211,35,219,35,27,36,47,36,59,36,147,36,163,36,183,36,239,36,3,37,15,37,119,9,27,37,103,37,123,37,135,37,147,37,187,37,96,43,63,3,239,37,135,9,23,38,43,38,158,109,200,109,255,39,231,38,15,0,99,31,88,162,94,162,100,162,106,162,112,162,118,162,124,162,130,162,136,162,142,162,148,162,154,162,160,162,166,162,41,10,252,2,150,136,156,136,162,136,168,136,91,16,87,109,174,136,180,136,186,136,192,136,198,136,204,136,210,136,216,136,222,136,127,16,228,136,234,136,240,136,45,112,246,136,252,136,2,137,139,16,143,16,8,137,65,40,14,137,32,137,38,137,151,16,44,137,50,137,155,16,56,137,62,137,68,137,74,137,80,137,86,137,92,137,163,16,98,137,167,16,171,16,175,16,179,16,35,7,183,16,187,16,191,16,109,108,110,137,116,137,184,110,122,137,128,137,51,109,140,137,146,137,152,137,199,111,158,137,164,137,182,137,188,137,203,16,207,16,194,137,219,16,200,137,223,16,206,137,227,16,231,16,235,16,239,16,127,105,218,137,224,137,236,137,39,112,248,137,254,137,4,138,16,138,22,138,28,138,34,138,40,138,63,136,79,17,83,17,7,42,46,138,52,138,58,138,64,138,91,17,70,138,76,138,95,17,12,42,99,17,82,138,103,17,24,3,88,138,94,138,100,138,106,138,112,138,127,17,209,107,124,138,135,17,130,138,143,17,147,17,246,39,154,138,238,107,160,138,172,138,178,138,184,138,190,138,196,138,202,138,214,138,72,3,220,138,42,108,226,138,232,138,12,139,100,9,18,139,24,139,30,139,36,139,42,139,88,9,48,139,54,139,60,139,72,139,78,139,84,139,90,139,211,17,96,139,102,139,108,139,114,139,120,139,115,70,126,139,227,17,51,44,132,139,138,139,56,44,144,139,156,139,180,139,255,17,186,139,192,139,198,139,204,139,45,40,210,139,216,139,171,39,222,139,228,139,7,18,234,139,240,139,246,139,252,139,2,140,8,140,14,140,20,140,26,140,32,140,38,140,39,18,44,140,47,18,50,140,56,140,55,18,62,140,76,3,68,140,74,140,80,140,67,18,86,140,92,140,98,140,75,18,104,140,110,140,83,18,116,140,122,140,91,18,128,140,134,140,140,140,146,140,152,140,104,9,158,140,103,18,164,140,107,18,111,18,115,18,119,18,123,18,127,18,131,18,47,42,147,18,151,18,155,18,156,9,176,140,182,140,188,140,220,110,194,140,200,140,163,18,167,18,206,140,171,18,175,18,179,18,183,18,187,18,52,42,212,140,191,18,218,140,199,18,227,2,71,7,75,7,207,18,224,140,230,140,236,140,57,42,211,18,215,18,242,140,219,18,248,140,223,18,227,18,62,42,67,42,231,18,72,42,235,18,254,140,77,42,4,141,10,141,16,141,22,141,28,141,34,141,40,141,85,40,46,141,52,141,64,141,251,18,70,141,76,141,255,18,82,141,3,19,7,19,88,141,15,19,108,9,94,141,100,141,112,141,70,40,118,141,35,19,124,141,130,141,136,141,142,141,148,141,217,43,154,141,160,141,166,141,247,43,47,19,51,19,172,141,59,19,63,19,67,19,55,40,178,141,71,19,103,7,75,19,2,143,83,19,92,2,87,19,8,143,14,143,48,111,26,143,32,143,183,178,38,143,44,143,50,143,56,143,40,110,99,19,14,70,103,19,62,143,107,19,68,143,74,143,80,143,227,42,71,39,86,143,92,143,98,143,46,110,111,19,104,143,110,143,116,143,148,134,122,143,128,143,232,42,123,19,82,42,134,143,140,143,146,143,152,143,158,143,164,143,170,143,135,19,176,143,182,143,188,143,194,143,143,19,184,134,163,41,51,43,229,40,147,19,200,143,151,19,155,19,159,19,206,143,212,143,218,143,224,143,230,143,163,19,236,143,167,19,242,143,248,143,237,42,254,143,171,19,4,144,10,144,16,144,22,144,28,144,34,144,168,41,40,144,175,19,87,42,183,19,46,144,187,19,52,144,154,134,235,69,199,19,58,144,240,69,197,178,203,19,207,19,64,144,211,19,70,144,215,19,76,144,82,144,107,7,88,144,94,144,100,144,106,144,84,9,227,19,231,19,235,19,112,144,243,19,247,19,118,144,124,144,251,19,255,19,3,20,130,144,7,20,11,20,80,9,15,20,23,20,27,20,31,20,35,20,39,20,43,20,47,20,51,20,250,110,36,111,55,20,226,117,111,7,40,3,127,20,131,20,135,20,139,20,143,20,214,144,147,20,220,144,151,20,111,43,155,20,68,217,159,20,116,43,73,41,183,41,167,20,171,20,226,144,232,144,175,20,193,41,128,9,179,20,238,144,198,41,203,41,183,20,19,196,191,20,244,144,195,20,199,20,203,20,250,144,0,145,211,20,215,20,6,145,32,1,30,145,160,134,223,20,36,145,42,145,48,145,0,3,227,20,231,20,121,43,54,145,159,40,145,69,60,145,58,110,66,39,251,195,78,145,84,145,235,20,236,106,126,43,90,145,9,109,96,145,38,41,102,145,108,145,239,20,243,20,4,3,164,40,247,20,251,20,255,20,3,21,7,21,11,21,135,7,15,21,19,21,11,44,114,145,23,21,120,145,27,21,31,21,39,21,126,145,43,21,47,21,166,134,16,0,51,21,139,7,55,21,92,9,59,21,132,145,143,7,63,21,67,21,138,145,71,21,177,43,75,21,79,21,130,110,144,145,83,21,64,110,136,110,87,21,239,40,91,21,95,21,60,39,99,21,117,109,103,21,107,21,150,145,156,145,111,21,115,21,119,21,41,39,174,145,127,21,167,7,210,145,244,40,135,21,139,21,171,7,234,145,240,145,246,145,252,145,2,146,167,21,171,21,175,21,179,21,232,2,35,40,14,146,20,146,56,146,152,146,242,146,46,147,52,147,239,21,243,21,137,42,247,21,28,3,58,147,64,147,251,21,70,147,76,147,255,21,22,110,82,147,3,22,7,22,88,147,94,147,15,22,100,147,112,147,23,22,140,109,27,22,31,22,35,22,118,147,124,147,130,147,136,147,142,147,148,147,154,147,160,147,43,22,166,147,47,22,51,22,55,22,204,178,172,147,63,22,247,108,178,147,67,22,184,147,75,22,79,22,83,22,87,22,91,22,190,147,196,147,202,147,250,123,208,147,214,147,33,106,220,147,226,147,232,147,238,147,151,43,107,22,244,147,115,22,119,22,123,22,127,22,187,2,131,22,135,22,139,22,250,147,6,148,223,7,12,111,12,148,183,22,187,22,18,148,191,22,227,7,152,42,199,22,44,3,24,148,30,148,36,148,42,148,211,22,27,112,215,22,219,22,48,148,223,22,54,148,60,148,227,22,66,148,72,148,78,148,231,22,84,148,90,148,235,22,243,22,96,148,247,22,102,148,251,22,108,148,78,111,255,22,3,23,33,109,114,148,120,148,126,148,132,148,15,23,19,23,23,23,31,23,35,23,227,43,43,23,138,148,47,23,51,23,55,23,59,23,63,23,67,23,204,1,144,148,18,111,150,148,75,23,79,23,83,23,156,148,239,7,87,23,91,23,95,23,99,23,103,23,125,69,162,148,168,148,174,148,180,148,186,148,107,23,192,148,198,148,204,148,76,110,111,23,172,43,210,148,216,148,222,148,228,148,234,148,240,148,115,23,119,23,166,39,123,23,127,23,131,23,135,23,139,23,246,148,252,148,2,149,147,23,151,23,180,69,155,23,243,7,159,23,35,107,249,40,163,23,167,23,171,23,175,23,8,3,8,149,14,149,179,23,142,110,183,23,187,23,191,23,195,23,199,23,203,23,27,109,207,23,20,149,21,1,48,3,211,23,24,218,219,23,26,149,32,149,38,149,44,149,174,40,227,23,231,23,157,42,235,23,239,23,243,23,86,39,50,149,251,23,56,149,230,203,62,149,68,149,255,23,3,24,60,111,231,2,115,108,7,24,11,24,15,24,74,149,19,24,23,24,27,24,31,24,35,24,39,24,112,9,43,24,47,24,51,24,55,24,59,24,80,149,63,24,57,136,179,40,86,149,92,149,98,149,104,149,75,24,110,149,254,40,66,111,79,24,191,2,116,149,72,111,122,149,184,40,164,109,95,24,128,149,134,149,189,40,140,149,226,110,146,149,99,24,152,149,158,149,103,24,72,9,107,24,111,24,82,110,115,24,119,24,123,24,127,24,155,196,131,24,164,149,144,111,170,149,135,24,139,24,176,149,244,2,148,110,194,149,206,149,175,24,212,149,179,24,224,149,12,3,230,149,183,24,236,149,187,24,242,149,248,149,63,109,191,24,3,41,195,24,199,24,203,24,207,24,211,24,215,24,219,24,223,24,227,24,231,24,235,24,243,24,8,41,80,40,254,149,247,24,4,150,194,40,10,150,22,150,255,24,28,150,34,150,3,25,40,150,7,25,46,150,11,25,15,25,19,25,23,25,27,25,52,150,58,150,42,135,35,25,64,150,56,43,39,25,43,25,47,25,51,25,55,25,70,150,76,150,82,150,71,9,59,25,88,150,63,25,67,25,71,25,75,25,79,25,94,150,100,150,83,25,87,25,91,25,106,150,95,25,99,25,103,25,112,150,118,150,107,25,111,25,144,40,124,150,115,25,119,25,43,41,123,25,127,25,130,150,146,109,131,25,135,25,139,25,143,25,136,150,147,25,142,150,151,25,148,150,154,150,160,150,166,150,155,25,159,25,228,2,163,25,167,25,171,25,175,25,179,25,183,25,31,44,172,150,150,111,178,150,184,150,190,150,196,150,202,150,156,111,208,150,214,150,220,150,226,150,232,150,52,3,238,150,0,151,6,151,24,151,88,110,30,151,132,9,36,151,42,151,48,151,54,151,24,1,60,151,66,151,72,151,80,3,78,151,5,40,90,151,176,39,96,151,102,151,15,109,108,151,114,151,120,151,126,151,57,109,255,25,132,151,138,151,144,151,150,151,156,151,162,151,168,151,174,151,180,151,21,44,186,151,192,151,198,151,204,151,130,70,210,151,222,151,228,151,146,39,234,151,240,151,232,43,246,151,252,151,10,40,2,152,8,152,14,152,55,26,20,152,26,152,32,152,56,3,38,152,44,152,247,42,56,152,62,152,131,39,68,152,74,152,80,152,83,26,86,152,71,44,92,152,98,152,104,152,110,152,116,152,122,152,95,26,128,152,134,152,99,26,140,152,103,26,146,152,152,152,158,152,111,26,115,26,60,3,164,152,170,152,176,152,182,152,188,152,119,26,208,41,194,152,200,152,123,26,206,152,65,70,212,152,218,152,224,152,236,152,135,26,139,26,143,26,147,26,151,26,242,152,248,152,254,152,4,153,10,153,163,26,16,153,22,153,167,26,34,70,171,26,28,153,34,153,40,153,253,108,46,153,100,110,52,153,58,153,175,26,179,26,252,42,183,26,30,40,64,153,70,153,191,26,195,26,76,153,208,110,199,26,203,26,207,26,124,134,211,26,103,8,82,153,215,26,219,26,223,26,227,26,88,153,100,153,112,153,118,153,124,153,255,26,60,70,3,27,130,153,136,153,111,8,15,27,6,44,232,107,142,153,148,153,154,153,3,109,31,27,66,43,35,27,39,27,43,27,47,27,30,154,36,154,55,27,42,154,59,27,63,27,67,27,71,27,75,27,225,39,79,27,83,27,87,27,48,154,66,154,84,154,114,154,120,154,138,154,99,27,144,154,150,154,156,154,162,154,168,154,174,154,180,154,186,154,192,154,51,39,198,154,210,154,135,70,228,154,234,154,240,154,246,154,136,39,252,154,2,155,8,155,14,155,20,155,33,112,136,156,142,156,240,2,154,156,160,156,166,156,172,156,191,27,178,156,184,156,116,39,214,156,220,156,226,156,203,27,232,156,238,156,211,27,244,156,250,156,0,157,6,157,12,157,52,196,18,157,24,157,26,39,36,157,42,157,64,3,48,157,54,157,60,157,66,157,72,157,78,157,84,157,90,157,96,157,102,157,108,157,114,157,120,157,251,27,132,157,151,39,144,157,150,157,156,157,162,157,168,157,180,157,186,157,251,39,204,157,210,157,216,157,81,39,222,157,228,157,234,157,39,28,240,157,246,157,43,28,47,28,116,9,252,157,2,158,8,158,186,39,20,158,32,158,38,158,83,41,83,28,87,28,88,41,91,28,25,40,44,158,50,158,56,158,185,69,62,158,68,158,74,158,80,158,86,158,107,28,92,158,104,158,110,158,116,158,122,158,128,158,111,28,181,39,213,41,115,28,78,108,1,43,152,158,93,41,119,28,158,158,164,158,249,106,170,158,176,158,182,158,188,158,15,40,131,28,194,158,200,158,206,158,212,158,224,158,230,158,159,28,236,158,163,28,167,28,242,158,171,28,248,158,175,28,179,28,183,28,96,39,254,158,4,159,187,28,10,159,191,28,195,28,16,159,199,28,203,28,22,159,28,159,34,159,218,41,40,159,211,28,46,159,223,41,199,40,52,159,58,159,157,43,219,28,223,28,227,28,70,159,231,28,235,28,239,28,106,110,243,28,247,28,76,159,251,28,82,159,255,28,3,29,88,159,94,159,11,29,16,3,100,159,106,159,19,29,23,29,27,29,31,29,175,8,235,2,112,159,39,29,43,29,197,42,47,29,51,29,118,159,55,29,6,43,124,159,84,3,59,29,63,29,67,29,71,29,75,29,79,29,83,29,130,159,87,29,91,29,95,29,136,159,11,43,99,29,150,69,170,109,142,159,103,29,107,29,111,29,76,9,148,159,119,29,36,135,154,159,160,159,166,159,172,159,178,159,127,29,131,29,135,29,184,159,139,29,202,203,143,29,147,29,190,159,8,2,196,159,155,29,159,29,202,159,208,159,214,159,220,159,175,205,211,203,226,159,232,159,238,159,244,159,163,29,167,29,190,212,250,159,171,29,175,29,179,29,134,40,139,40,183,29,197,107,149,40,179,8,168,111,0,160,6,160,12,160,199,29,136,9,16,43,203,29,207,29,18,160,24,160,211,29,30,160,36,160,215,29,42,160,48,160,54,160,60,160,219,29,223,29,227,29,235,29,239,29,243,29,247,29,251,29,255,29,3,30,7,30,36,44,72,160,78,160,84,160,90,160,96,160,102,160,108,160,114,160,55,30,59,30,120,160,71,30,79,30,83,30,87,30,91,30,126,160,132,160,144,160,150,160,168,160,103,30,174,160,107,30,111,30,115,30,230,39,119,30,123,30,127,30,180,160,131,30,135,30,139,30,147,30,151,30,155,30,234,160,252,160,2,161,96,9,8,161,163,30,14,161,20,161,167,30,26,161,32,161,38,161,44,161,75,70,50,161,56,161,62,161,68,161,74,161,80,161,86,161,92,161,98,161,104,161,110,161,167,42,116,161,122,161,191,30,128,161,199,30,134,161,140,161,146,161,207,30,211,30,152,161,158,161,219,30,223,30,227,30,231,30,172,42,164,161,170,161,176,161,182,161,247,30,106,39,177,42,188,161,194,161,206,161,255,30,3,31,222,43,7,31,212,161,218,161,224,161,11,31,230,161,236,161,19,31,242,161,254,161,4,162,22,162,27,31,31,31,28,162,35,31,39,31,43,31,79,31,40,162,83,31,87,31,46,162,91,31,95,31,21,39,172,162,178,162,184,162,190,162,196,162,191,8,195,8,199,8,202,162,208,162,203,8,207,8,214,162,220,39,211,8,191,31,215,8,195,31,220,162,219,8,223,8,103,2,227,8,226,162,231,8,227,31,231,31,232,162,238,162,239,31,244,162,243,31,247,31,112,110,250,162,213,206,251,31,0,163,6,163,12,163,255,31,3,32,160,110,17,42,7,32,18,163,11,32,15,32,19,32,24,163,23,32,36,163,27,32,42,163,31,32,35,32,39,32,48,163,54,163,43,32,67,196,47,32,75,40,60,163,66,163,72,163,55,32,76,44,63,32,67,32,71,32,75,32,79,32,83,32,87,32,91,32,150,70,78,163,84,163,90,163,99,32,103,32,107,32,111,32,115,32,22,42,175,69,119,32,123,32,102,163,127,32,131,32,135,32,139,32,143,32,36,39,108,163,114,163,147,32,126,163,132,163,138,163,68,3,26,43,144,163,151,32,155,32,159,32,163,32,167,32,171,32,175,32,179,32,156,39,150,163,156,163,183,32,162,163,168,163,101,39,200,69,174,163,180,163,186,163,192,163,60,40,198,163,204,163,210,163,216,163,191,32,79,9,167,43,222,163,252,163,227,32,231,32,235,32,239,32,243,32,140,9,2,164,8,164,14,164,255,32,20,164,26,164,32,164,38,164,191,39,194,167,200,167,206,167,212,167,218,167,41,43,224,167,230,167,3,33,20,3,236,167,242,167,120,9,81,43,248,167,254,167,4,168,10,168,0,40,16,168,22,168,28,168,46,44,54,70,34,168,40,168,46,168,90,40,52,168,58,168,70,168,76,168,82,168,15,33,19,33,88,168,23,33,135,106,31,33,35,33,94,168,100,168,106,168,39,33,141,39,112,168,118,168,124,168,130,168,1,44,136,168,142,168,41,44,148,168,154,168,172,110,161,39,160,168,55,33,59,33,166,168,63,33,178,168,184,168,20,40,190,168,174,111,67,33,71,33,106,43,79,33,40,40,83,33,196,168,202,168,208,168,95,33,99,33,214,168,220,168,103,33,107,33,226,168,111,33,232,168,238,168,244,168,250,168,119,33,123,33,127,33,131,33,135,33,0,169,139,33,91,39,6,169,12,169,18,169,24,169,228,41,30,169,36,169,42,169,48,169,54,169,60,169,66,169,83,9,72,169,164,2,78,169,159,33,84,169,233,41,90,169,238,41,163,33,88,3,96,169,102,169,108,169,242,43,114,169,120,169,126,169,132,169,144,169,39,109,175,33,220,178,156,169,162,169,215,69,179,33,168,169,174,169,183,33,220,69,187,33,100,40,180,169,186,169,192,169,198,169,199,33,204,169,210,169,216,169,228,169,240,169,246,169,61,44,252,169,8,170,14,170,105,40,20,170,26,170,32,170,38,170,243,41,4,70,44,170,50,170,56,170,231,33,62,170,68,170,235,33,248,2,74,170,182,43,80,170,86,170,92,170,95,40,98,170,116,170,128,170,134,170,140,170,146,170,9,70,152,170,158,170,164,170,170,170,176,170,188,170,212,170,218,170,224,170,251,33,230,170,236,170,242,170,248,170,152,9,3,34,7,34,254,170,11,34,15,34,19,34,4,171,10,171,225,69,23,34,27,34,16,171,31,34,22,171,35,34,202,42,87,9,92,42,19,70,207,42,39,34,212,42,123,41,43,34,34,171,40,171,128,41,27,42,91,9,32,3,242,173,199,2,47,34,248,173,133,41,51,34,55,34,243,2,59,34,63,34,69,109,227,178,254,173,211,178,4,174,67,34,10,174,71,34,16,174,22,174,75,34,28,174,32,42,79,34,34,174,83,34,138,41,40,174,46,174,91,34,95,34,135,69,99,34,143,41,52,174,95,39,107,34,111,34,115,34,123,34,95,9,127,34,160,2,58,174,64,174,97,42,70,174,217,42,76,174,148,41,135,34,230,69,139,34,222,42,154,209,143,34,147,34,247,2,151,34,155,34,163,34,167,34,153,41,171,34,175,34,169,40,179,34,203,107,43,9,251,2,82,174,88,174,94,174,100,174,187,34,191,34,195,34,124,9,112,174,118,174,124,174,84,108,23,35,27,35,50,40,136,174,142,174,153,207,22,214,148,174,31,35,35,35,154,174,160,174,51,35,55,35,59,35,166,174,172,174,178,174,63,35,67,35,71,35,252,43,180,111,75,35,79,35,47,9,184,174,83,35,190,69,19,40,87,35,190,174,91,35,95,35,164,9,196,174,202,174,208,174,214,174,220,174,226,174,103,41,99,35,103,35,107,35,232,174,238,174,111,35,115,35,244,174,250,174,0,175,6,175,119,35,123,35,12,175,127,35,131,35,135,35,139,35,147,35,141,43,151,35,155,35,7,3,18,175,24,175,159,35,30,175,167,35,248,41,171,35,36,175,175,35,4,40,24,70,145,39,9,40,179,35,183,35,187,35,191,35,42,175,48,175,214,40,54,175,60,175,66,175,72,175,78,175,84,175,90,175,96,175,195,35,102,42,107,42,102,175,112,42,219,40,15,3,36,3,108,175,108,41,118,110,114,175,120,175,199,35,203,35,207,35,215,35,126,175,132,175,138,175,144,175,117,42,223,35,227,35,19,3,150,175,156,175,231,35,162,175,235,35,239,35,243,35,168,175,247,35,251,35,174,175,255,35,180,175,186,175,192,175,7,36,11,36,15,36,19,36,23,36,31,36,155,2,198,175,35,36,39,36,204,175,43,36,210,175,23,3,216,175,99,9,222,175,228,175,51,36,55,36,63,36,234,175,103,9,240,175,246,175,107,9,252,175,67,36,71,36,75,36,79,36,83,36,87,36,91,36,95,36,99,36,103,36,107,36,2,176,111,36,8,176,115,36,14,176,27,3,20,176,119,36,26,176,123,36,127,36,131,36,104,2,135,36,32,176,139,36,143,36,38,176,151,36,111,9,155,36,159,36,44,176,167,36,171,36,175,36,179,36,50,176,56,176,62,176,68,176,187,36,191,36,74,176,195,36,199,36,203,36,80,176,86,176,92,176,115,9,98,176,104,176,110,176,116,176,122,176,219,36,223,36,227,36,128,176,231,36,235,36,134,176,140,176,243,36,247,36,146,176,152,176,251,36,255,36,158,176,7,37,164,176,11,37,170,176,176,176,182,176,188,176,19,37,194,176,200,176,206,176,23,37,212,176,31,37,31,3,35,37,218,176,159,2,224,176,123,9,39,37,230,176,43,37,47,37,236,176,51,37,242,176,35,3,55,37,59,37,63,37,67,37,71,37,75,37,79,37,83,37,248,176,254,176,87,37,91,37,43,1,95,37,99,37,4,177,10,177,107,37,16,177,22,177,111,37,91,43,115,37,119,37,91,2,70,39,127,37,131,37,139,37,143,37,39,3,28,177,127,9,34,177,151,37,155,37,159,37,40,177,163,37,46,177,43,3,167,37,46,43,171,37,44,70,175,37,156,2,47,3,52,177,58,177,183,37,191,37,195,37,51,3,131,9,64,177,199,37,70,177,55,3,76,177,203,37,59,3,207,37,82,177,211,37,215,37,219,37,88,177,94,177,100,177,223,37,227,37,231,37,106,177,235,37,112,177,118,177,37,42,243,37,247,37,26,44,251,37,255,37,3,38,124,177,7,38,130,177,136,177,142,177,11,38,148,177,15,38,154,177,19,38,160,177,27,38,67,3,31,38,166,177,139,9,172,177,178,177,35,38,90,39,143,9,39,38,147,9,151,9,184,177,190,177,196,177,113,41,202,177,47,38,51,38,42,42,55,38,59,38,63,38,208,177,214,177,67,38,71,38,75,38,220,177,79,38,83,38,87,38,91,38,95,38,99,38,103,38,92,3,226,177,232,177,238,177,245,39,107,38,71,3,111,38,244,177,115,38,75,3,119,38,155,9,123,38,127,38,250,177,31,1,0,178,131,38,6,178,135,38,44,1,27,1,139,38,203,1,143,38,12,178,18,178,24,178,159,9,147,38,30,178,151,38,36,178,79,3,42,178,20,44,48,178,155,38,130,39,159,38,163,38,54,178,171,38,175,38,179,38,60,178,250,39,66,178,24,40,183,38,187,38,83,3,191,38,7,2,195,38,72,178,78,178,199,38,203,38,207,38,84,178,211,38,155,39,90,178,140,39,160,39,163,2,87,3,96,178,102,178,108,178,114,178,236,2,215,38,219,38,120,178,223,38,163,9,235,38,239,38,243,38,247,38,91,3,251,38,6,0,52,162,58,162,64,162,70,162,76,162,82,162,3,0,147,27,154,110,227,38,12,0,124,2,148,0,112,2,152,2,157,0,20,2,172,0,28,2,136,2,16,2,24,2,178,0,24,0,66,136,92,109,212,112,242,106,72,136,41,197,104,109,28,107,242,112,78,136,66,108,84,136,146,112,72,108,90,136,95,3,96,136,184,105,50,112,106,113,148,2,184,0,169,0,216,2,2,0,86,72,91,72,120,0,163,70,127,108,168,70,117,106,173,70,178,70,188,1,193,70,198,70,203,70,208,70,213,70,218,70,76,1,228,70,233,70,238,70,149,107,243,70,133,105,223,111,153,70,47,107,155,107,13,0,154,0,219,106,108,1,255,38,12,71,22,71,51,106,80,2,181,105,27,71,32,71,37,71,42,71,221,107,59,107,147,106,57,71,92,1,62,71,82,71,87,71,92,71,175,108,159,106,97,71,163,105,102,71,107,71,172,1,244,1,82,0,112,71,137,71,192,1,152,1,142,71,85,0,72,1,157,71,162,71,15,106,136,0,177,71,167,107,175,105,182,71,177,106,83,107,183,106,240,1,173,107,212,71,217,71,222,71,195,106,231,106,91,0,0,2,80,1,68,1,36,1,75,106,6,72,11,72,16,72,185,107,21,72,116,2,31,72,36,72,41,72,22,0,113,107,46,72,229,105,120,1,157,105,40,2,154,205,66,72,224,1,125,107,191,107,211,108,41,219,200,1,105,106,140,1,207,106,64,0,67,0,196,1,145,105,21,106,111,106,4,0,220,2,232,71,237,71,242,71,2,0,17,179,24,179,164,0,210,196,79,44,183,70,210,195,84,44,226,196,89,44,94,44,99,44,223,70,104,44,234,195,124,69,133,40,238,178,119,39,109,44,114,44,29,39,119,44,108,40,124,44,248,70,138,40,253,70,129,44,202,195,147,203,2,71,7,71,202,196,134,44,139,44,144,44,17,71,10,196,114,196,50,197,47,71,52,71,149,44,154,44,54,39,218,196,250,196,67,71,186,196,242,196,159,44,245,178,72,71,42,196,154,196,77,71,164,44,129,69,66,196,134,69,124,39,194,196,169,44,2,196,113,40,82,196,117,71,122,71,234,196,2,197,127,71,90,196,58,196,132,71,174,44,122,196,194,195,179,44,184,44,252,178,189,44,194,44,199,44,204,44,167,71,209,44,214,44,139,69,172,71,219,44,224,44,144,69,138,196,229,44,162,196,234,44,165,203,58,70,50,196,187,71,192,71,239,44,244,44,197,71,106,196,202,71,249,44,254,44,3,45,170,196,8,45,13,45,207,71,18,45,227,71,23,45,118,40,28,45,33,45,38,45,43,45,48,45,143,40,53,45,94,39,123,40,194,39,58,45,150,43,178,196,63,45,68,45,10,197,130,196,26,72,149,69,148,40,24,44,73,45,28,40,74,39,78,45,83,45,88,45,93,45,98,196,51,72,98,45,18,196,59,39,103,45,108,45,44,39,34,196,113,45,56,72,61,72,118,45,153,40,71,72,123,45,76,72,128,45,128,40,96,72,133,45,3,0,3,179,252,71,10,179,9,0,188,70,247,71,101,72,106,72,111,72,116,72,121,72,126,72,131,72,50,1,20,73,25,73,30,73,35,73,40,73,45,73,50,73,55,73,60,73,65,73,70,73,75,73,108,179,80,73,85,73,90,73,95,73,100,73,105,73,110,73,154,69,115,73,120,73,125,73,115,179,130,73,159,69,164,69,135,73,140,73,145,73,150,73,155,73,220,179,160,73,248,75,182,76,197,76,202,76,217,76,135,181,142,181,184,181,191,181,198,181,205,181,212,181,219,181,11,77,226,181,247,197,255,197,7,198,15,198,95,198,103,198,146,77,151,77,29,44,19,44,63,70,68,70,156,77,34,44,73,70,161,77,39,44,166,77,171,77,176,77,194,79,199,79,204,79,209,79,214,79,219,79,224,79,229,79,234,79,239,79,244,79,101,52,106,82,162,145,106,52,123,21,168,145,111,52,180,145,201,82,206,82,186,145,192,145,122,134,167,7,198,145,116,52,211,82,131,21,121,52,204,145,126,52,131,52,216,145,216,82,222,145,136,52,228,145,141,52,221,82,44,146,50,146,134,134,68,146,74,146,80,146,86,146,104,146,110,146,116,146,122,146,128,146,146,134,146,146,152,134,158,146,164,134,170,146,188,146,194,146,170,134,200,146,206,146,212,146,218,146,224,146,230,146,236,146,16,147,40,147,0,83,5,83,65,83,200,184,207,184,214,184,221,184,228,184,235,184,242,184,249,184,0,185,7,185,70,83,185,83,190,83,195,83,200,83,205,83,210,83,215,83,220,83,214,69,219,69,225,83,230,83,235,83,240,83,245,83,250,83,255,83,4,84,9,84,14,84,19,84,224,69,53,85,58,85,115,186,39,1,188,149,182,134,200,149,188,134,233,85,22,86,82,86,87,86,142,86,207,86,50,152,13,90,19,27,23,27,27,27,160,153,191,199,199,199,166,153,207,199,39,197,223,199,231,199,239,199,247,199,255,199,212,134,15,200,23,200,218,134,224,134,184,153,144,112,39,200,47,200,208,153,63,200,71,200,79,200,87,200,236,134,103,200,111,200,232,153,238,153,127,200,135,200,0,154,18,154,24,154,19,189,102,154,108,154,132,154,124,189,131,189,138,189,145,189,152,189,159,189,166,189,173,189,180,189,30,157,18,70,249,94,254,94,3,95,8,95,103,95,108,95,13,40,113,95,118,95,123,95,128,95,138,157,132,61,137,61,187,61,253,190,4,191,253,95,2,96,7,96,11,191,12,96,17,96,32,96,35,29,175,8,142,96,28,70,232,96,237,96,242,96,69,44,247,96,33,70,252,96,38,70,1,97,6,97,11,97,16,97,165,191,21,97,26,97,31,97,144,64,178,134,104,170,110,170,122,170,182,170,194,170,200,170,206,170,101,67,136,67,186,67,231,67,251,67,10,68,53,105,58,105,227,11,38,179,138,45,143,45,148,45,153,45,158,40,158,45,163,40,87,197,132,109,128,113,134,113,140,113,146,113,152,113,138,109,158,113,164,113,170,113,144,109,176,113,182,113,188,113,194,113,200,113,206,113,212,113,218,113,224,113,230,113,236,113,242,113,248,113,254,113,4,114,10,114,16,114,106,108,22,114,28,114,34,114,66,179,73,179,94,179,101,179,163,45,3,107,168,45,173,45,178,45,183,45,188,45,193,45,198,45,203,45,208,45,40,114,46,114,52,114,58,114,64,114,111,197,70,114,76,114,82,114,150,109,88,114,230,107,94,114,100,114,106,114,112,108,156,109,212,137,230,137,242,137,10,138,112,114,118,114,213,45,124,114,218,45,130,114,136,114,168,40,142,114,148,114,154,114,160,114,166,114,172,114,178,114,244,39,184,114,236,107,190,114,196,114,202,114,208,114,214,114,220,114,226,114,232,114,33,40,238,114,244,114,250,114,0,115,6,115,162,109,12,115,18,115,24,115,30,115,129,39,36,115,42,115,48,115,54,115,134,39,249,39,60,115,155,43,223,45,168,109,66,115,72,115,78,115,84,115,90,115,96,115,102,115,174,109,228,45,108,115,114,115,120,115,183,197,126,115,132,115,138,115,144,115,150,115,254,39,156,115,162,115,139,39,168,115,174,115,180,115,186,115,233,45,192,115,198,115,204,115,210,115,216,115,238,45,222,115,196,111,191,197,228,115,234,115,240,115,234,179,241,179,255,179,6,180,13,180,20,180,27,180,34,180,41,180,208,138,246,115,252,115,2,116,8,116,14,116,20,116,26,116,32,116,38,116,32,107,44,116,50,116,56,116,62,180,69,180,207,197,180,109,62,116,186,109,68,116,74,116,80,116,86,116,92,116,98,116,104,116,110,116,116,116,122,116,128,116,134,116,215,197,140,116,146,116,152,116,158,116,164,116,170,116,176,116,182,116,188,116,194,116,200,116,206,116,192,109,212,116,218,116,224,116,230,116,236,116,242,116,248,116,254,116,4,117,198,109,10,117,16,117,83,180,90,180,97,180,111,180,243,45,248,45,125,180,173,40,253,45,2,46,7,46,178,40,12,46,17,46,183,40,22,46,27,46,188,40,32,46,37,46,42,46,47,46,139,180,193,40,52,46,57,46,62,46,67,46,72,46,77,46,82,46,87,46,92,46,97,46,102,46,107,46,198,40,150,139,90,108,36,108,162,139,174,139,112,46,117,46,122,46,127,46,188,180,132,46,137,46,142,46,147,46,152,46,157,46,162,46,167,46,195,180,202,180,172,46,177,46,182,46,187,46,209,180,216,180,192,46,197,46,202,46,207,46,212,46,217,46,222,46,227,46,232,46,237,46,242,46,247,46,252,46,203,40,1,47,6,47,253,106,11,47,16,47,21,47,26,47,31,47,36,47,41,47,46,47,230,180,51,47,208,40,56,47,61,47,66,47,71,47,76,47,38,40,81,47,244,180,251,180,2,181,9,181,86,47,91,47,96,47,101,47,39,39,106,47,111,47,160,43,116,47,3,40,8,40,213,40,121,47,218,40,165,43,30,181,126,47,43,40,131,47,170,43,164,39,136,47,141,47,48,40,146,47,53,40,22,117,151,47,99,39,28,117,156,47,161,47,166,47,171,47,176,47,58,181,181,47,186,47,191,47,196,47,201,47,206,47,211,47,216,47,79,181,221,47,223,40,226,47,231,47,228,40,233,40,236,47,241,47,246,47,251,47,0,48,86,181,5,48,10,48,15,48,20,48,25,48,30,48,35,48,40,48,45,48,50,48,34,117,55,48,60,48,65,48,70,48,75,48,80,48,85,48,90,48,238,40,95,48,100,48,243,40,105,48,110,48,107,181,63,7,67,7,170,140,40,117,115,48,120,48,125,48,130,48,135,48,140,48,145,48,150,48,155,48,160,48,165,48,170,48,175,48,180,48,185,48,121,181,190,48,195,48,200,48,248,40,205,48,210,48,215,48,133,178,220,48,225,48,230,48,235,48,240,48,245,48,253,40,250,48,255,48,4,49,2,41,9,49,14,49,7,41,19,49,24,49,29,49,34,49,39,49,44,49,49,49,54,49,59,49,64,49,69,49,74,49,79,49,12,41,84,49,17,41,89,49,94,49,99,49,104,49,109,49,114,49,119,49,124,49,129,49,134,49,139,49,144,49,149,49,175,43,154,49,159,49,164,49,169,49,233,181,174,49,179,49,240,181,184,49,189,49,194,49,199,49,22,41,204,49,209,49,27,41,214,49,247,181,219,49,224,49,229,49,234,49,239,49,244,49,249,49,32,41,254,49,46,117,52,117,58,117,64,117,70,117,76,117,82,117,88,117,94,117,100,117,106,117,112,117,118,117,124,117,3,50,130,117,204,109,136,117,142,117,148,117,154,117,160,117,166,117,172,117,178,117,184,117,190,117,210,109,196,117,202,117,208,117,214,117,220,117,79,7,83,7,106,141,87,7,91,7,8,50,13,50,33,182,40,182,18,50,95,7,23,50,28,50,33,50,38,50,43,50,48,50,53,50,58,50,63,50,68,50,73,50,78,50,83,50,99,7,58,40,88,50,54,182,93,50,98,50,103,50,108,50,180,43,82,182,113,50,118,50,23,198,31,198,123,50,39,198,128,50,47,198,133,50,55,198,138,50,63,198,185,43,71,198,190,43,79,198,143,50,87,198,148,50,111,198,195,43,119,198,153,50,127,198,200,43,135,198,205,43,143,198,158,50,163,50,168,50,173,50,178,50,183,50,188,50,193,50,198,50,203,50,208,50,213,50,199,39,218,50,204,39,37,41,124,182,131,182,42,41,223,50,145,182,159,182,166,182,180,182,187,182,194,182,201,182,208,182,222,182,229,182,236,182,243,182,250,182,136,144,142,144,226,117,15,183,148,144,154,144,232,117,151,198,238,117,244,117,250,117,0,118,6,118,12,118,18,118,24,118,30,118,36,118,42,118,23,196,48,118,54,118,216,109,60,118,66,118,72,118,78,118,84,118,90,118,228,50,233,50,96,118,159,198,167,198,242,107,238,50,248,107,254,107,102,118,243,50,108,118,114,118,120,118,248,50,222,109,126,118,253,50,132,118,4,108,2,51,138,118,144,118,150,118,228,109,234,109,7,51,156,118,162,118,168,118,240,109,174,118,12,51,180,118,186,118,192,118,17,51,198,118,204,118,210,118,216,118,246,109,222,118,22,51,10,108,27,51,79,197,252,109,228,118,234,118,32,51,240,118,16,108,37,51,246,118,42,51,252,118,2,119,8,119,2,110,14,119,20,119,26,119,32,119,8,110,38,119,44,119,50,119,47,51,52,51,56,119,115,7,57,51,62,51,62,119,67,51,72,51,77,51,82,51,87,51,68,119,92,51,97,51,47,41,74,119,102,51,80,119,86,119,92,119,98,119,104,119,110,119,107,51,112,51,117,51,122,51,127,51,132,51,235,39,137,51,142,51,147,51,71,183,152,51,119,7,157,51,162,51,167,51,123,7,78,183,172,51,85,183,92,183,52,41,177,51,57,41,182,51,187,51,192,51,240,39,62,41,197,51,211,43,200,39,202,51,207,51,212,51,48,108,217,51,99,183,222,51,227,51,232,51,237,51,215,39,242,51,127,7,247,51,252,51,67,41,1,52,236,106,6,52,11,52,16,52,21,52,26,52,205,39,106,183,31,52,131,7,36,52,41,52,46,52,210,39,51,52,56,52,63,40,61,52,66,52,71,52,76,52,81,52,86,52,91,52,120,183,96,52,134,183,141,183,155,183,162,183,147,7,151,7,155,7,159,7,163,7,116,119,122,119,128,119,134,119,211,183,218,183,140,119,225,183,232,183,239,183,246,183,253,183,4,184,146,119,152,119,11,184,158,119,18,184,25,184,32,184,207,198,22,108,14,110,164,119,170,119,176,119,20,110,182,119,188,119,194,119,200,119,206,119,212,119,218,119,8,146,215,198,224,119,230,119,236,119,242,119,248,119,254,119,4,120,10,120,223,198,16,120,22,120,28,120,34,120,40,120,46,120,52,120,58,120,64,120,70,120,76,120,82,120,231,198,88,120,94,120,100,120,106,120,112,120,118,120,124,120,130,120,136,120,142,120,26,110,148,120,154,120,160,120,32,110,166,120,172,120,178,120,184,120,190,120,196,120,38,110,202,120,208,120,44,110,214,120,239,198,220,120,226,120,50,110,232,120,238,120,244,120,250,120,0,121,6,121,12,121,247,198,56,110,18,121,234,106,24,121,30,121,36,121,62,110,42,121,48,121,54,121,60,121,68,110,28,108,255,198,66,121,72,121,78,121,84,121,90,121,96,121,74,110,102,121,108,121,114,121,120,121,126,121,80,110,132,121,138,121,144,121,150,121,86,110,156,121,162,121,168,121,174,121,180,121,186,121,92,110,192,121,198,121,204,121,210,121,216,121,98,110,222,121,228,121,234,121,240,121,246,121,252,121,2,122,8,122,14,122,20,122,26,122,32,122,38,122,44,122,50,122,56,122,62,122,68,122,74,122,80,122,86,122,92,122,98,122,104,122,110,122,116,122,122,122,104,110,128,122,134,122,140,122,146,122,152,122,158,122,164,122,170,122,176,122,182,122,188,122,194,122,200,122,206,122,110,110,212,122,218,122,224,122,230,122,236,122,242,122,248,122,254,122,4,123,10,123,16,123,252,106,22,123,28,123,34,123,40,123,7,199,46,123,52,123,15,199,58,123,64,123,70,123,23,199,76,123,31,199,82,123,88,123,94,123,100,123,106,123,112,123,118,123,124,123,130,123,136,123,142,123,244,108,148,123,154,123,160,123,166,123,172,123,178,123,184,123,190,123,250,108,196,123,0,109,202,123,208,123,116,110,214,123,220,123,226,123,232,123,238,123,244,123,194,107,6,109,67,184,146,52,151,52,156,52,161,52,166,52,72,41,171,52,176,52,181,52,81,184,209,39,186,52,191,52,196,52,201,52,206,52,211,52,216,52,221,52,226,52,231,52,236,52,241,52,246,52,251,52,0,53,5,53,10,53,15,53,20,53,25,53,30,53,77,41,175,7,250,123,179,7,183,7,187,7,137,184,35,53,191,7,40,53,195,7,45,53,50,53,55,53,60,53,199,7,82,41,65,53,87,41,70,53,75,53,203,7,144,184,151,184,158,184,80,53,207,7,85,53,90,53,92,41,211,7,165,184,172,184,215,7,95,53,97,41,100,53,105,53,110,53,115,53,120,53,125,53,130,53,219,7,135,53,140,53,187,2,145,53,150,53,155,53,160,53,0,148,28,185,35,185,42,185,165,53,63,185,169,39,102,41,170,53,231,7,30,108,107,41,175,53,235,7,180,53,185,53,215,43,69,39,190,53,64,39,195,53,200,53,220,43,205,53,112,41,210,53,215,53,112,185,117,41,220,53,225,53,230,53,235,53,240,53,245,53,250,53,255,53,4,54,9,54,14,54,19,54,24,54,126,185,133,185,140,185,9,107,29,54,34,54,154,185,39,54,44,54,49,54,161,185,54,54,59,54,64,54,69,54,74,54,79,54,68,40,122,41,127,41,84,54,89,54,94,54,99,54,132,41,104,54,225,43,109,54,114,54,119,54,174,39,230,43,137,41,142,41,124,54,129,54,134,54,104,39,139,54,144,54,149,54,147,41,175,185,182,185,154,54,159,54,164,54,169,54,152,41,174,54,179,54,184,54,189,54,182,178,194,54,199,54,157,41,203,185,204,54,209,54,214,54,162,41,210,185,219,54,217,185,224,54,229,54,234,54,239,54,244,54,224,185,231,185,167,41,249,54,238,185,254,54,245,185,252,185,3,55,247,7,172,41,10,186,177,41,251,7,8,55,255,7,182,41,187,41,192,41,3,8,13,55,18,55,197,41,202,41,23,55,7,8,28,55,17,186,33,55,38,55,214,39,43,55,11,8,48,55,53,55,24,186,15,8,207,41,58,55,191,2,63,55,19,8,68,55,73,55,52,186,78,55,199,206,83,55,88,55,93,55,98,55,103,55,108,55,113,55,118,55,123,55,128,55,133,55,212,41,138,55,143,55,148,55,153,55,158,55,163,55,168,55,173,55,178,55,183,55,188,55,193,55,217,41,198,55,222,41,203,55,208,55,213,55,218,55,223,55,80,186,228,55,233,55,238,55,243,55,248,55,253,55,2,56,7,56,12,56,17,56,22,56,27,56,32,56,37,56,219,39,94,186,101,186,108,186,42,56,182,149,0,124,6,124,12,124,122,110,18,124,24,124,30,124,36,124,34,108,42,124,48,124,54,124,60,124,66,124,72,124,128,110,134,110,78,124,84,124,90,124,96,124,102,124,108,124,114,124,120,124,126,124,132,124,138,124,144,124,140,110,146,110,150,124,156,124,162,124,168,124,174,124,152,110,180,124,186,124,158,110,192,124,198,124,12,109,204,124,18,109,210,124,164,110,216,124,222,124,228,124,234,124,87,199,240,124,246,124,252,124,2,125,8,125,14,125,20,125,26,125,170,110,32,125,38,125,44,125,50,125,176,110,56,125,62,125,47,56,52,56,57,56,62,56,67,56,72,56,77,56,82,56,87,56,92,56,97,56,102,56,107,56,112,56,117,56,122,56,189,178,127,56,132,56,137,56,149,178,142,56,136,186,147,56,152,56,227,41,157,56,162,56,167,56,143,186,150,186,172,56,157,186,177,56,182,56,187,56,164,186,171,186,192,56,197,56,202,56,207,56,212,56,232,41,217,56,237,41,222,56,227,56,232,56,237,56,242,56,247,56,252,56,1,57,6,57,11,57,178,186,185,186,16,57,21,57,192,186,199,186,26,57,31,57,36,57,41,57,242,41,206,186,46,57,51,57,213,186,56,57,220,186,61,57,66,57,71,57,76,57,81,57,86,57,227,186,91,57,96,57,234,186,241,186,248,186,101,57,106,57,255,186,6,187,111,57,116,57,13,187,121,57,126,57,131,57,136,57,141,57,34,187,41,187,146,57,151,57,156,57,161,57,166,57,171,57,176,57,181,57,186,57,191,57,196,57,201,57,62,187,69,187,76,187,83,187,90,187,104,187,111,187,118,187,125,187,132,187,244,150,206,57,211,57,23,8,12,151,27,8,31,8,35,8,153,187,39,8,160,187,18,151,43,8,54,108,47,8,51,8,55,8,59,8,188,187,195,187,216,57,63,8,195,2,209,187,221,57,216,187,226,57,230,187,237,187,244,187,231,57,236,57,241,57,246,57,247,41,144,39,251,57,68,125,74,125,182,110,80,125,86,125,92,125,98,125,104,125,110,125,116,125,122,125,128,125,24,109,134,125,200,107,140,125,30,109,252,41,23,188,1,42,0,58,5,58,10,58,15,58,20,58,25,58,30,58,35,58,6,42,40,58,45,58,11,42,50,58,55,58,60,58,65,58,70,58,37,188,75,58,80,58,85,58,51,188,58,188,65,188,79,188,86,188,67,8,100,188,71,8,107,188,75,8,114,188,79,8,121,188,83,8,128,188,87,8,135,188,91,8,142,188,95,8,149,188,99,8,156,188,90,58,95,58,100,58,105,58,110,58,16,42,115,58,120,58,125,58,130,58,149,39,135,58,140,58,21,42,145,58,94,153,106,153,184,188,191,188,198,188,205,188,212,188,219,188,150,58,155,58,160,58,165,58,170,58,175,58,180,58,185,58,190,58,195,58,200,58,205,58,210,58,215,58,220,58,26,42,225,58,31,42,230,58,235,58,73,40,240,58,245,58,146,125,152,125,240,106,215,199,158,125,164,125,170,125,7,200,176,125,182,125,188,110,194,110,200,110,31,200,188,125,55,200,194,125,200,125,206,125,95,200,212,125,218,125,224,125,230,125,119,200,236,125,143,200,24,112,242,125,248,125,206,110,254,125,4,126,212,110,250,58,255,58,4,59,9,59,78,40,14,59,19,59,24,59,29,59,34,59,247,188,39,59,179,39,36,42,44,59,49,59,54,59,41,42,59,59,64,59,69,59,5,189,12,189,10,126,16,126,22,126,28,126,40,108,151,200,34,126,40,126,46,126,52,126,58,126,64,126,218,110,70,126,76,126,82,126,46,108,88,126,94,126,100,126,106,126,159,200,112,126,118,126,124,126,130,126,224,110,136,126,142,126,148,126,154,126,160,126,167,200,166,126,172,126,2,107,178,126,184,126,190,126,196,126,202,126,208,126,230,110,214,126,220,126,226,126,232,126,238,126,244,126,250,126,0,127,6,127,236,110,242,110,12,127,18,127,175,200,24,127,30,127,36,127,42,127,48,127,54,127,206,107,60,127,66,127,72,127,78,127,84,127,90,127,96,127,74,59,79,59,84,59,46,42,51,42,56,42,61,42,66,42,71,42,76,42,89,59,94,59,99,59,33,189,104,59,109,59,114,59,119,59,124,59,47,189,129,59,54,189,61,189,134,59,139,59,144,59,149,59,154,59,159,59,164,59,169,59,81,42,174,59,179,59,184,59,189,59,194,59,199,59,86,42,204,59,209,59,196,178,214,59,219,59,224,59,229,59,234,59,75,189,82,189,89,189,115,8,119,8,123,8,127,8,204,154,183,200,102,127,108,127,248,110,114,127,120,127,126,127,52,108,132,127,131,8,138,127,144,127,150,127,156,127,162,127,168,127,174,127,30,112,180,127,186,127,135,8,192,127,36,109,198,127,204,127,191,200,199,200,207,200,210,127,215,200,223,200,231,200,239,200,58,108,247,200,255,200,7,201,15,201,23,201,139,8,239,59,148,156,216,127,201,189,208,189,254,110,222,127,64,108,228,127,234,127,47,201,240,127,246,127,252,127,2,128,8,128,14,128,70,108,55,201,20,128,26,128,32,128,38,128,143,8,250,189,1,190,22,190,29,190,36,190,43,190,50,190,57,190,64,190,244,59,91,42,249,59,254,59,3,60,8,60,13,60,18,60,23,60,28,60,96,42,33,60,85,190,92,190,99,190,38,60,43,60,106,190,44,128,48,60,53,60,147,8,58,60,63,60,68,60,73,60,78,60,120,190,83,60,88,60,93,60,127,190,98,60,103,60,108,60,151,8,79,39,184,39,101,42,106,42,113,60,111,42,118,60,34,39,155,8,116,42,240,43,123,60,50,128,56,128,62,128,68,128,74,128,80,128,86,128,4,111,92,128,98,128,10,111,104,128,16,111,110,128,116,128,122,128,128,128,134,128,76,108,140,128,146,128,152,128,158,128,164,128,170,128,176,128,182,128,48,109,188,128,82,108,194,128,200,128,148,190,155,190,174,157,159,8,163,8,167,8,206,128,171,8,192,157,198,157,128,60,133,60,138,60,143,60,148,60,153,60,158,60,163,60,168,60,121,42,173,60,176,190,178,60,14,158,183,60,188,60,193,60,126,42,198,60,203,60,131,42,208,60,136,42,213,60,218,60,223,60,228,60,233,60,238,60,243,60,248,60,141,42,203,178,211,190,253,60,2,61,7,61,12,61,17,61,22,61,27,61,32,61,37,61,42,61,146,42,47,61,151,42,52,61,57,61,62,61,67,61,72,61,156,42,77,61,82,61,87,61,92,61,97,61,102,61,107,61,112,61,232,190,117,61,122,61,127,61,103,201,142,61,147,61,152,61,157,61,162,61,167,61,172,61,177,61,182,61,192,61,197,61,224,39,202,61,207,61,212,61,217,61,18,191,222,61,227,61,232,61,237,61,242,61,247,61,252,61,218,158,1,62,6,62,11,62,229,39,16,62,21,62,161,42,26,62,31,62,36,62,166,42,32,191,171,42,176,42,181,42,46,191,53,191,212,128,22,111,218,128,224,128,230,128,236,128,242,128,248,128,254,128,4,129,10,129,16,129,22,129,28,129,30,106,54,109,34,129,41,62,46,62,51,62,56,62,61,62,66,62,71,62,76,62,81,62,186,42,86,62,183,8,91,62,66,160,96,62,101,62,106,62,111,62,46,129,52,129,58,129,64,129,70,129,76,129,82,129,88,129,94,129,100,129,106,129,112,129,119,201,118,129,124,129,130,129,136,129,142,129,148,129,60,109,154,129,160,129,166,129,28,111,172,129,178,129,184,129,34,111,190,129,196,129,202,129,208,129,214,129,220,129,226,129,127,201,232,129,238,129,244,129,250,129,0,130,6,130,12,130,18,130,24,130,30,130,123,191,130,191,137,191,144,191,36,130,42,130,48,130,54,130,60,130,66,130,72,130,78,130,84,130,90,130,96,130,102,130,88,108,108,130,114,130,135,201,120,130,143,201,126,130,151,201,132,130,40,111,138,130,46,111,144,130,150,130,156,130,162,130,168,130,52,111,58,111,64,111,174,130,70,111,180,130,186,130,192,130,198,130,204,130,210,130,216,130,222,130,228,130,234,130,240,130,246,130,252,130,2,131,8,131,14,131,20,131,26,131,32,131,38,131,44,131,159,201,50,131,56,131,62,131,68,131,74,131,80,131,86,131,92,131,94,108,98,131,104,131,66,109,110,131,116,131,8,107,122,131,128,131,134,131,36,112,140,131,146,131,116,62,191,42,121,62,126,62,131,62,136,62,141,62,146,62,151,62,156,62,161,62,166,62,171,62,176,62,181,62,186,62,191,62,196,62,201,62,206,62,211,62,216,62,221,62,152,131,158,131,76,111,164,131,191,201,170,131,176,131,182,131,188,131,194,131,200,131,206,131,212,131,218,131,224,131,207,191,214,191,226,62,231,62,82,111,88,111,94,111,100,111,106,111,112,111,118,111,100,108,124,111,130,111,230,131,199,201,236,131,242,131,187,8,235,191,236,62,34,162,248,131,241,62,246,62,251,62,0,63,5,63,10,63,15,63,20,63,25,63,30,63,196,42,235,8,35,63,40,63,45,63,50,63,55,63,60,63,65,63,70,63,75,63,7,192,245,43,80,63,85,63,90,63,95,63,100,63,105,63,110,63,115,63,120,63,125,63,130,63,135,63,140,63,145,63,150,63,155,63,160,63,165,63,170,63,175,63,14,192,180,63,185,63,190,63,195,63,28,192,35,192,42,192,200,63,250,43,205,63,210,63,254,131,4,132,136,111,10,132,201,42,16,132,22,132,206,42,215,63,28,132,34,132,220,63,211,42,225,63,142,111,40,132,148,111,56,192,154,111,46,132,52,132,160,111,58,132,64,132,70,132,210,178,76,132,230,63,82,132,235,63,88,132,94,132,100,132,106,132,112,132,240,63,245,63,118,132,124,132,130,132,136,132,142,132,148,132,154,132,160,132,166,111,166,132,172,132,178,132,184,132,190,132,196,132,202,132,216,42,120,109,208,132,14,107,250,63,126,109,214,132,220,132,172,111,221,42,226,132,232,132,238,132,244,132,255,63,250,132,4,64,0,133,6,133,12,133,18,133,178,111,24,133,20,107,30,133,84,109,70,192,84,192,91,192,9,64,14,64,19,64,24,64,29,64,34,64,105,192,39,64,44,64,49,64,119,192,126,192,133,192,54,64,59,64,64,64,69,64,226,42,74,64,79,64,231,42,84,64,89,64,94,64,99,64,104,64,109,64,236,42,114,64,119,64,124,64,161,192,129,64,228,163,239,8,234,163,240,163,246,163,175,192,134,64,139,64,223,201,231,201,239,201,247,201,255,201,7,202,15,202,23,202,31,202,39,202,47,202,55,202,63,202,71,202,79,202,87,202,95,202,103,202,111,202,119,202,127,202,135,202,143,202,149,64,154,64,159,64,164,64,241,42,169,64,174,64,246,42,96,108,243,8,251,42,247,8,251,8,231,192,179,64,184,64,189,64,194,64,245,192,199,64,0,43,204,64,209,64,214,64,219,64,224,64,229,64,234,64,239,64,244,64,5,43,249,64,254,64,10,43,3,65,8,65,13,65,18,65,23,65,15,43,28,65,33,65,38,65,43,65,48,65,53,65,58,65,63,65,68,65,73,65,78,65,83,65,88,65,20,43,25,43,93,65,98,65,30,43,103,65,35,43,40,43,108,65,113,65,118,65,123,65,24,193,255,8,128,65,133,65,138,65,143,65,148,65,153,65,158,65,163,65,168,65,173,65,255,43,18,40,178,65,183,65,188,65,193,65,198,65,45,43,203,65,52,193,84,39,208,65,19,39,213,65,218,65,223,65,228,65,233,65,4,44,238,65,109,39,243,65,248,65,253,65,2,66,7,66,12,66,17,66,22,66,50,43,27,66,32,66,37,66,42,66,47,66,52,66,57,66,62,66,67,66,72,66,77,66,82,66,87,66,92,66,3,9,7,9,11,9,15,9,19,9,115,193,122,193,129,193,136,193,143,193,150,193,157,193,164,193,171,193,23,9,97,66,55,43,102,66,107,66,112,66,117,66,122,66,60,43,127,66,132,66,137,66,142,66,147,66,152,66,157,66,162,66,167,66,65,43,222,169,27,9,234,169,236,43,213,193,220,193,227,193,234,193,241,193,172,66,248,193,255,193,13,194,27,194,34,194,41,194,48,194,55,194,62,194,69,194,76,194,126,178,36,133,42,133,48,133,54,133,60,133,66,133,72,133,78,133,84,133,114,109,90,133,96,133,102,133,108,133,114,133,120,133,126,133,132,133,138,133,144,133,150,133,156,133,162,133,168,133,174,133,180,133,132,106,186,133,192,133,198,133,204,133,210,133,216,133,222,133,228,133,184,111,234,133,240,133,246,133,252,133,246,106,2,134,8,134,14,134,20,134,111,194,118,194,125,194,132,194,177,66,182,66,187,66,192,66,197,66,202,66,207,66,212,66,217,66,222,66,227,66,232,66,237,66,242,66,247,66,252,66,1,67,6,67,11,67,16,67,21,67,26,67,31,67,36,67,41,67,46,67,51,67,231,202,239,202,247,202,255,202,7,203,15,203,23,203,31,203,39,203,47,203,55,203,63,203,71,203,79,203,87,203,31,9,199,2,35,9,39,9,56,67,61,67,66,67,71,67,76,67,81,67,86,67,91,67,96,67,188,194,15,107,106,67,70,43,111,67,116,67,75,43,121,67,126,67,131,67,141,67,146,67,151,67,156,67,161,67,166,67,171,67,80,43,176,67,195,194,181,67,202,194,209,194,216,194,85,43,191,67,196,67,201,67,206,67,211,67,216,67,221,67,226,67,236,67,223,194,241,67,246,67,0,68,5,68,15,68,20,68,25,68,30,68,35,68,21,107,40,68,90,43,83,40,45,68,50,68,55,68,60,68,95,43,65,68,70,68,237,194,75,68,80,68,85,68,88,40,89,39,93,40,90,68,95,68,9,44,14,44,23,40,100,68,105,68,110,68,154,39,189,39,159,39,98,40,103,40,115,68,9,195,106,174,130,174,44,195,120,68,51,195,125,68,58,195,65,195,130,68,72,195,79,195,135,68,86,195,140,68,145,68,93,195,100,195,150,68,155,68,160,68,165,68,170,68,26,134,32,134,38,134,190,111,42,112,44,134,175,68,180,68,100,43,185,68,190,68,195,68,200,68,205,68,210,68,215,68,220,68,225,68,230,68,105,43,235,68,240,68,245,68,250,68,255,68,4,69,9,69,14,69,110,43,19,69,115,43,24,69,29,69,34,69,39,69,120,43,234,39,44,69,239,39,49,69,125,43,54,69,130,43,59,69,135,43,50,134,64,69,69,69,74,69,79,69,84,69,163,195,89,69,94,69,140,43,99,69,104,69,109,69,114,69,114,39,24,39,177,195,0,1,31,179,45,179,52,179,59,179,80,179,87,179,122,179,129,179,136,179,143,179,157,179,171,179,178,179,192,179,199,179,206,179,213,179,227,179,248,179,48,180,55,180,76,180,104,180,118,180,132,180,146,180,153,180,160,180,167,180,174,180,181,180,223,180,237,180,16,181,23,181,37,181,44,181,51,181,65,181,72,181,93,181,100,181,114,181,128,181,156,181,163,181,170,181,177,181,254,181,5,182,12,182,26,182,47,182,61,182,68,182,75,182,89,182,96,182,110,182,117,182,138,182,152,182,173,182,215,182,1,183,8,183,22,183,29,183,36,183,43,183,57,183,113,183,127,183,148,183,169,183,176,183,183,183,204,183,39,184,53,184,60,184,74,184,88,184,95,184,102,184,109,184,116,184,123,184,130,184,179,184,186,184,193,184,14,185,21,185,49,185,56,185,70,185,77,185,98,185,105,185,119,185,147,185,168,185,189,185,196,185,3,186,31,186,38,186,45,186,66,186,73,186,87,186,122,186,129,186,20,187,27,187,48,187,55,187,97,187,139,187,146,187,167,187,174,187,181,187,202,187,223,187,251,187,2,188,9,188,16,188,30,188,44,188,72,188,93,188,163,188,170,188,177,188,226,188,233,188,240,188,254,188,26,189,40,189,68,189,96,189,103,189,110,189,117,189,187,189,194,189,215,189,222,189,229,189,236,189,243,189,8,190,15,190,71,190,78,190,113,190,134,190,141,190,162,190,169,190,183,190,190,190,197,190,204,190,218,190,239,190,246,190,25,191,39,191,60,191,67,191,74,191,81,191,95,191,102,191,109,191,116,191,151,191,158,191,172,191,179,191,186,191,193,191,200,191,221,191,228,191,242,191,249,191,0,192,21,192,49,192,63,192,77,192,98,192,112,192,147,192,154,192,168,192,182,192,189,192,203,192,210,192,217,192,224,192,238,192,252,192,3,193,10,193,17,193,31,193,38,193,45,193,59,193,66,193,80,193,87,193,94,193,101,193,108,193,178,193,185,193,192,193,199,193,206,193,6,194,20,194,83,194,90,194,97,194,104,194,139,194,146,194,160,194,174,194,230,194,244,194,251,194,2,195,16,195,23,195,30,195,37,195,107,195,114,195,121,195,128,195,135,195,142,195,149,195,156,195,170,195,184,195,10,0,158,220,11,220,103,218,37,212,135,219,104,219,54,212,82,213,198,219,62,210,191,0,242,215,47,220,175,210,192,210,204,206,243,206,209,210,84,205,217,206,72,217,226,210,243,210,217,216,194,212,4,211,21,211,179,205,200,208,234,220,241,218,38,211,212,212,45,214,178,214,185,207,171,207,55,211,26,214,231,219,166,219,129,218,84,220,58,206,0,207,158,209,72,211,174,209,89,211,190,209,106,211,123,211,206,209,140,211,157,211,222,209,13,207,198,214,199,207,7,216,28,216,142,209,215,208,239,216,218,214,174,211,238,209,213,207,49,216,227,207,70,216,254,209,91,216,26,207,241,207,230,208,64,214,39,207,244,213,191,211,112,216,238,214,14,210,157,218,230,212,52,207,196,220,2,215,30,210,22,215,42,215,65,207,185,218,5,217,70,206,83,214,245,208,44,219,187,217,133,216,28,218,248,212,208,211,255,207,82,206,4,209,94,206,225,211,10,213,91,207,28,213,106,206,3,218,46,213,242,211,154,216,13,208,3,212,104,207,46,206,62,215,82,215,27,208,118,206,94,205,95,217,190,205,201,205,104,205,41,208,223,205,19,209,34,209,212,205,78,210,157,205,168,205,166,204,130,206,46,210,94,210,49,209,20,212,64,209,79,209,110,210,234,205,102,215,175,216,102,214,117,207,64,213,53,218,121,220,126,210,122,215,142,215,55,208,78,218,245,205,118,217,162,215,182,215,49,217,202,215,7,214,211,217,222,215,71,212,83,208,100,213,235,217,118,213,136,213,141,217,121,214,154,213,172,213,0,206,190,213,88,212,196,216,74,219,154,206,142,206,111,208,191,206,27,217,140,214,213,218,97,208,164,217,208,213,130,207,105,212,226,213,166,206,159,214,230,206,176,212,142,210,69,208,3,0,135,197,143,197,91,185,103,0,233,203,242,203,158,70,251,203,145,43,119,69,55,197,95,197,103,197,134,137,154,178,150,179,151,197,164,179,185,179,188,203,199,197,166,138,13,204,63,197,22,204,66,139,231,197,168,139,197,203,149,181,58,204,58,141,19,182,103,182,181,203,175,198,190,183,85,204,199,198,197,183,94,204,128,134,46,184,39,199,147,178,47,199,71,199,103,204,112,204,179,203,95,199,121,204,16,150,139,204,84,151,224,203,216,151,175,199,183,199,148,204,230,152,157,204,71,197,63,201,224,178,26,158,175,204,225,190,98,158,64,159,34,135,184,204,114,205,88,191,138,160,193,204,231,178,167,201,175,201,248,161,30,163,96,163,120,163,202,204,140,192,196,192,64,168,60,136,211,204,220,204,167,202,175,202,229,204,73,193,206,203,238,204,28,171,153,194,167,194,181,194,111,203,0,205,9,205,18,205,27,205,36,205,215,203,1,0,111,4,194,195,2,0,31,0,10,0,1,0,111,4,202,195,1,0,129,4,58,0,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,89,44,1,0,111,4,210,195,1,0,129,4,144,1,1,0,111,4,194,195,2,0,15,106,145,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,74,39,2,0,82,196,194,195,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,128,40,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,64,0,1,0,111,4,202,195,2,0,111,4,129,4,10,196,10,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,194,195,26,0,70,0,106,0,31,0,13,0,55,0,173,212,39,106,153,106,37,0,79,0,160,1,82,0,236,1,85,0,72,1,68,2,240,1,166,0,91,0,248,1,81,106,220,1,61,0,184,1,144,1,67,0,2,0,56,1,95,107,3,0,84,44,244,44,18,45,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,13,0,1,0,111,4,210,195,1,0,129,4,248,1,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,72,1,1,0,111,4,210,195,1,0,129,4,55,0,1,0,111,4,234,195,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,64,1,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,2,0,111,4,129,4,194,195,213,106,3,0,210,195,202,195,194,195,3,0,37,0,56,1,36,1,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,210,195,2,0,56,1,151,105,1,0,111,4,194,195,2,0,111,4,129,4,94,44,4,0,1,0,111,4,147,203,1,0,111,4,194,195,2,0,193,105,133,105,1,0,111,4,194,195,1,0,111,4,99,44,1,0,111,4,194,195,2,0,111,4,129,4,104,44,4,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,28,0,2,0,111,4,129,4,202,195,216,1,1,0,111,4,210,195,1,0,129,4,81,106,1,0,111,4,194,195,1,0,129,4,21,106,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,98,196,1,0,111,4,210,195,1,0,111,4,34,196,1,0,111,4,147,203,2,0,111,4,129,4,202,195,25,0,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,210,195,1,0,129,4,151,105,1,0,111,4,54,39,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,147,203,3,0,121,105,63,106,156,1,2,0,111,4,129,4,194,195,105,106,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,4,0,1,0,129,4,48,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,109,44,1,0,111,4,194,195,1,0,111,4,98,45,2,0,194,195,106,196,1,0,129,4,43,0,1,0,111,4,194,195,2,0,111,4,129,4,234,195,168,1,1,0,129,4,121,105,1,0,111,4,34,196,1,0,129,4,52,1,1,0,111,4,234,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,210,195,2,0,111,4,129,4,194,195,151,105,1,0,111,4,147,203,1,0,129,4,121,105,2,0,202,195,194,195,1,0,129,4,48,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,196,1,1,0,111,4,194,195,2,0,111,4,129,4,119,39,4,0,1,0,111,4,194,195,1,0,129,4,141,106,1,0,111,4,194,195,1,0,111,4,10,196,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,180,1,1,0,129,4,64,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,234,195,114,44,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,129,4,157,105,2,0,111,4,129,4,194,195,118,0,1,0,111,4,194,195,1,0,129,4,51,106,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,29,39,76,1,1,0,111,4,124,44,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,108,40,1,0,111,4,108,40,1,0,111,4,210,195,1,0,111,4,202,195,1,0,111,4,210,195,2,0,37,0,56,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,3,0,210,195,138,40,54,39,1,0,111,4,194,195,2,0,29,39,194,195,1,0,129,4,76,1,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,29,39,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,29,39,1,0,111,4,194,195,1,0,129,4,201,106,2,0,111,4,129,4,194,195,19,0,1,0,129,4,88,1,2,0,111,4,129,4,194,195,100,1,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,139,105,2,0,111,4,129,4,194,195,3,106,1,0,129,4,133,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,121,105,6,0,193,105,205,105,235,105,133,105,192,1,241,105,13,0,123,106,19,0,3,106,211,105,181,105,139,105,34,0,40,0,175,105,100,1,217,105,88,1,154,205,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,29,39,76,1,1,0,111,4,194,195,1,0,129,4,76,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,128,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,28,0,1,0,111,4,147,203,2,0,210,195,83,45,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,108,45,77,107,1,0,111,4,194,195,2,0,111,4,129,4,210,195,48,1,1,0,111,4,194,195,1,0,129,4,49,0,2,0,111,4,129,4,34,196,112,0,1,0,111,4,194,195,1,0,111,4,194,195,2,0,223,105,176,1,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,194,195,1,0,111,4,139,44,1,0,111,4,194,195,1,0,111,4,113,40,2,0,253,105,148,1,89,0,121,108,127,108,100,0,133,108,139,108,52,0,205,111,145,108,41,107,137,107,76,1,151,108,211,111,141,106,217,111,223,111,47,107,39,106,45,106,229,111,51,106,139,105,157,108,235,111,223,105,163,108,53,107,118,0,59,107,147,106,57,106,169,108,121,105,241,111,175,108,159,106,163,105,65,107,181,108,247,111,187,108,193,108,71,107,165,106,88,0,140,2,253,111,9,106,63,106,171,106,15,106,3,112,169,105,177,106,83,107,183,106,189,106,7,0,151,105,9,112,235,108,195,106,75,106,89,107,201,106,81,106,93,106,15,112,99,106,95,107,199,108,101,107,21,112,205,108,107,107,113,107,119,107,229,105,157,105,40,2,154,205,125,107,211,108,41,219,105,106,207,106,145,105,21,106,111,106,2,0,202,196,178,196,50,0,212,2,70,0,131,107,193,105,164,1,168,1,205,105,25,0,123,106,235,105,143,107,253,105,19,0,133,105,3,106,13,0,108,1,55,0,64,1,10,0,211,105,181,105,148,1,92,1,34,0,153,106,37,0,104,1,79,0,40,0,236,1,152,1,124,1,241,105,132,1,72,1,77,107,225,106,69,106,175,105,100,1,247,105,80,1,87,106,217,105,88,1,116,2,84,1,22,0,67,0,1,0,111,4,194,195,1,0,111,4,194,195,23,0,131,107,213,106,143,107,217,108,149,107,223,108,155,107,154,0,219,106,64,1,129,106,161,107,229,108,100,2,225,106,167,107,173,107,179,107,235,108,231,106,185,107,241,108,191,107,10,0,180,1,137,107,133,105,181,105,139,105,163,108,7,0,247,105,80,1,154,205,1,0,111,4,194,195,2,0,111,4,129,4,194,195,108,1,2,0,124,39,194,195,1,0,111,4,194,195,1,0,129,4,64,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,136,1,56,1,1,0,129,4,151,105,1,0,111,4,194,195,1,0,129,4,129,106,1,0,129,4,7,0,1,0,111,4,194,195,2,0,116,1,48,1,1,0,111,4,194,195,1,0,129,4,43,0,2,0,111,4,129,4,194,195,211,105,2,0,108,1,87,106,1,0,111,4,210,195,2,0,111,4,129,4,194,195,7,0,2,0,111,4,129,4,103,45,154,205,1,0,111,4,194,195,2,0,111,4,129,4,194,195,45,106,2,0,111,4,129,4,194,195,80,2,1,0,111,4,194,195,1,0,129,4,73,0,45,0,205,105,49,0,52,0,73,0,145,0,76,1,96,1,228,1,64,2,235,105,28,0,141,106,31,0,13,0,181,105,72,2,52,2,116,1,128,2,129,106,76,0,160,1,241,105,72,1,130,0,12,2,165,106,43,0,163,0,63,106,136,0,128,1,208,1,132,2,0,2,75,106,201,106,48,1,61,0,184,1,176,1,144,1,105,106,140,1,196,1,8,0,133,105,139,105,104,1,175,105,247,105,80,1,108,2,154,205,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,133,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,140,1,1,0,111,4,194,195,1,0,129,4,128,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,194,195,1,0,129,4,81,106,1,0,111,4,194,195,1,0,129,4,175,105,2,0,111,4,129,4,194,195,57,106,1,0,129,4,139,105,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,52,2,1,0,111,4,194,195,1,0,129,4,139,105,1,0,111,4,10,196,2,0,111,4,129,4,194,195,65,107,1,0,111,4,210,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,64,1,1,0,111,4,202,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,2,0,111,4,129,4,194,195,231,106,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,2,0,147,203,18,196,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,111,4,149,44,1,0,111,4,194,195,3,0,129,44,54,39,152,71,1,0,111,4,234,195,2,0,235,105,192,1,1,0,129,4,133,105,1,0,111,4,218,196,2,0,139,105,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,223,105,1,0,111,4,194,195,1,0,129,4,163,105,2,0,111,4,129,4,194,195,169,108,1,0,111,4,147,203,1,0,111,4,194,195,1,0,129,4,76,1,2,0,210,195,194,195,2,0,128,1,169,105,1,0,111,4,194,195,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,194,195,1,0,129,4,154,205,1,0,111,4,210,195,1,0,129,4,136,1,2,0,111,4,129,4,42,196,153,106,2,0,111,4,129,4,147,203,121,105,2,0,194,195,204,44,3,0,45,106,121,105,145,105,2,0,147,203,194,195,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,128,40,1,0,111,4,43,45,1,0,111,4,194,195,1,0,111,4,164,44,1,0,111,4,210,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,122,196,1,0,111,4,194,195,1,0,111,4,159,44,1,0,111,4,210,195,1,0,129,4,151,105,2,0,111,4,129,4,194,195,189,106,1,0,111,4,147,203,2,0,111,4,129,4,123,45,121,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,2,0,164,1,92,1,3,0,193,105,68,1,217,105,1,0,111,4,194,195,1,0,111,4,242,195,1,0,129,4,52,1,2,0,111,4,129,4,194,195,76,0,2,0,111,4,129,4,194,195,34,0,3,0,193,105,80,1,68,1,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,226,196,56,2,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,2,0,111,4,129,4,194,195,4,0,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,133,45,2,0,111,4,129,4,194,195,52,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,202,195,2,0,210,195,194,195,2,0,111,4,129,4,194,195,121,0,4,0,235,105,104,1,76,2,224,1,5,0,133,105,181,105,92,1,9,106,154,205,2,0,29,39,194,195,1,0,129,4,76,1,1,0,111,4,194,195,2,0,111,4,129,4,2,196,124,0,1,0,111,4,194,195,1,0,129,4,159,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,42,196,1,0,111,4,42,196,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,169,44,4,0,2,0,111,4,129,4,114,196,58,0,1,0,111,4,202,195,1,0,111,4,194,195,1,0,129,4,13,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,229,105,1,0,111,4,44,39,1,0,111,4,194,195,1,0,129,4,215,107,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,96,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,234,195,121,105,1,0,111,4,93,45,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,50,196,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,15,106,1,0,111,4,122,196,1,0,111,4,194,195,1,0,111,4,202,195,2,0,210,195,202,195,1,0,129,4,52,1,1,0,111,4,194,195,2,0,111,4,129,4,194,195,160,0,1,0,129,4,3,106,1,0,111,4,194,195,1,0,129,4,163,105,2,0,111,4,129,4,234,196,127,0,1,0,111,4,194,195,1,0,129,4,117,106,1,0,111,4,90,196,1,0,129,4,121,105,1,0,129,4,48,1,2,0,172,1,244,1,2,0,52,1,154,205,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,99,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,2,0,210,195,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,3,0,210,195,202,195,194,195,2,0,61,0,22,0,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,202,195,2,0,111,4,129,4,23,45,36,1,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,44,39,1,0,129,4,84,1,1,0,111,4,210,195,3,0,210,195,202,195,194,195,1,0,111,4,113,40,2,0,111,4,129,4,194,195,224,1,1,0,111,4,147,71,1,0,111,4,42,196,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,151,105,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,241,105,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,44,39,1,0,111,4,179,44,1,0,111,4,202,195,2,0,111,4,129,4,79,44,36,1,2,0,202,195,194,195,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,2,0,147,203,184,44,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,189,44,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,18,196,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,96,1,2,0,111,4,129,4,122,196,32,2,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,21,106,1,0,111,4,210,195,1,0,129,4,56,1,2,0,111,4,129,4,194,195,124,1,1,0,129,4,100,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,96,1,1,0,111,4,194,195,1,0,129,4,96,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,234,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,163,105,1,0,111,4,210,195,1,0,129,4,56,1,2,0,111,4,129,4,194,195,132,1,1,0,111,4,44,39,1,0,111,4,242,195,2,0,114,196,194,195,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,147,203,2,0,121,105,156,1,1,0,111,4,194,195,2,0,111,4,129,4,119,39,4,0,2,0,194,195,106,196,2,0,53,107,116,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,111,4,119,39,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,219,44,99,106,1,0,111,4,194,195,1,0,129,4,163,105,1,0,129,4,48,1,1,0,111,4,210,195,1,0,129,4,84,1,1,0,111,4,194,195,1,0,129,4,63,106,1,0,129,4,48,1,2,0,111,4,129,4,194,195,165,106,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,147,203,1,0,111,4,194,195,2,0,111,4,129,4,194,195,88,0,2,0,111,4,129,4,194,195,183,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,4,0,2,0,111,4,129,4,202,195,4,2,1,0,111,4,138,196,1,0,129,4,121,105,1,0,111,4,194,195,2,0,111,4,129,4,202,195,60,2,2,0,162,196,118,40,1,0,111,4,162,196,1,0,111,4,234,195,2,0,111,4,129,4,165,203,121,105,1,0,111,4,202,195,1,0,111,4,50,196,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,49,0,1,0,111,4,147,203,2,0,111,4,129,4,229,44,121,105,1,0,111,4,147,203,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,234,44,2,0,210,195,194,195,3,0,48,2,69,106,93,106,2,0,151,108,4,0,2,0,111,4,129,4,194,195,9,106,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,50,196,252,1,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,209,44,1,0,111,4,210,195,1,0,129,4,56,1,2,0,111,4,129,4,194,195,177,106,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,194,195,1,0,111,4,194,195,2,0,46,0,44,2,1,0,111,4,194,195,2,0,111,4,129,4,194,195,111,106,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,2,0,133,105,175,105,2,0,111,4,129,4,147,203,156,1,1,0,129,4,121,105,1,0,111,4,147,203,1,0,129,4,156,1,1,0,111,4,194,195,1,0,129,4,15,106,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,83,107,1,0,111,4,194,195,7,0,103,0,205,105,109,0,115,0,175,105,232,1,199,108,1,0,129,4,133,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,46,0,1,0,111,4,194,195,2,0,111,4,129,4,194,195,46,0,1,0,111,4,174,44,1,0,129,4,84,1,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,202,195,1,0,111,4,94,39,1,0,111,4,194,195,1,0,111,4,106,196,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,171,106,1,0,129,4,21,106,1,0,111,4,194,195,1,0,129,4,229,105,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,64,1,181,105,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,29,39,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,10,196,10,0,1,0,111,4,170,196,1,0,129,4,121,105,1,0,111,4,202,195,1,0,129,4,58,0,1,0,111,4,8,45,1,0,111,4,194,195,2,0,124,39,194,195,1,0,111,4,3,45,2,0,210,195,250,196,3,0,139,105,121,105,151,105,1,0,111,4,194,195,1,0,129,4,7,0,2,0,28,45,33,45,1,0,111,4,194,195,1,0,129,4,7,0,2,0,103,0,115,0,1,0,129,4,109,0,2,0,111,4,129,4,194,195,195,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,169,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,128,45,1,0,111,4,194,195,1,0,111,4,38,45,3,0,147,203,130,196,44,39,1,0,111,4,194,195,1,0,129,4,89,107,1,0,111,4,194,195,2,0,111,4,129,4,194,195,100,1,2,0,139,105,120,1,1,0,111,4,194,195,3,0,202,195,54,39,194,195,1,0,111,4,194,195,1,0,129,4,51,106,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,210,195,136,1,1,0,129,4,151,105,10,0,117,106,123,106,215,107,129,106,221,107,75,109,199,105,247,105,81,109,227,107,1,0,111,4,194,195,3,0,213,106,219,106,179,107,1,0,111,4,194,195,1,0,129,4,161,107,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,0,2,1,0,111,4,194,195,2,0,111,4,129,4,143,40,4,0,1,0,111,4,194,195,1,0,111,4,53,45,2,0,210,195,194,195,1,0,111,4,194,195,2,0,194,195,59,39,1,0,129,4,72,1,1,0,111,4,147,203,1,0,111,4,234,195,2,0,168,1,121,105,1,0,111,4,194,195,1,0,129,4,235,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,2,0,111,4,129,4,194,195,52,0,1,0,111,4,194,195,1,0,129,4,199,105,2,0,84,2,80,1,2,0,111,4,129,4,202,195,68,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,5,0,216,1,212,1,40,0,36,1,120,1,9,0,25,0,133,105,108,1,124,1,132,1,100,1,44,2,94,0,97,0,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,75,106,1,0,111,4,194,195,1,0,111,4,82,196,5,0,147,203,154,44,63,45,68,45,130,196,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,202,195,1,0,129,4,36,1,2,0,42,196,123,40,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,4,0,1,0,111,4,254,44,4,0,234,195,147,203,194,195,170,196,1,0,129,4,48,1,1,0,111,4,58,45,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,104,1,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,139,105,1,0,111,4,194,195,2,0,210,195,147,203,2,0,2,197,10,197,2,0,121,105,151,105,1,0,111,4,194,195,1,0,111,4,210,195,1,0,129,4,56,1,1,0,111,4,194,195,2,0,111,4,129,4,202,195,46,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,28,0,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,202,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,228,1,2,0,194,195,249,44,1,0,111,4,194,195,3,0,210,195,194,195,59,39,1,0,129,4,72,1,1,0,111,4,50,196,1,0,129,4,252,1,2,0,111,4,129,4,130,196,152,1,1,0,111,4,194,195,1,0,129,4,10,0,2,0,111,4,129,4,194,195,88,1,2,0,19,0,68,1,1,0,111,4,210,195,1,0,129,4,151,105,2,0,111,4,129,4,194,195,217,105,1,0,129,4,193,105,1,0,111,4,194,195,1,0,111,4,194,195,2,0,100,0,207,106,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,123,40,1,0,111,4,194,195,1,0,129,4,211,105,2,0,111,4,129,4,194,195,111,106,1,0,129,4,48,1,1,0,111,4,194,195,1,0,129,4,43,0,2,0,111,4,129,4,194,195,220,1,2,0,210,195,13,45,2,0,31,0,10,0,1,0,111,4,44,39,1,0,129,4,84,1,2,0,88,2,64,0,2,0,4,2,68,1,2,0,202,195,194,195,4,0,164,1,133,0,68,1,64,0,1,0,111,4,194,195,1,0,111,4,148,40,1,0,111,4,194,195,1,0,129,4,232,1,1,0,111,4,194,195,1,0,129,4,48,1,1,0,111,4,147,203,2,0,111,4,129,4,194,195,101,107,1,0,129,4,145,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,71,107,1,0,129,4,145,105,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,73,45,4,0,1,0,111,4,194,195,1,0,129,4,229,105,1,0,111,4,194,195,2,0,111,4,129,4,210,195,116,1,3,0,142,0,211,105,87,106,3,0,163,105,229,105,157,105,1,0,129,4,96,1,1,0,111,4,210,195,2,0,111,4,129,4,194,195,196,1,1,0,111,4,194,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,234,195,2,0,111,4,129,4,28,40,168,1,1,0,111,4,74,39,1,0,111,4,194,195,2,0,152,1,93,106,3,0,139,105,121,105,69,106,1,0,111,4,202,195,1,0,111,4,147,203,1,0,111,4,34,196,1,0,111,4,194,195,1,0,111,4,78,45,1,0,111,4,90,196,1,0,129,4,121,105,1,0,111,4,88,45,1,0,111,4,147,203,1,0,111,4,34,196,1,0,111,4,147,203,1,0,111,4,18,196,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,99,106,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,227,107,3,0,210,195,202,195,194,195,2,0,111,4,129,4,44,39,84,1,1,0,111,4,147,203,1,0,111,4,147,203,1,0,111,4,147,203,2,0,111,4,129,4,10,196,39,106,1,0,129,4,10,0,1,0,111,4,10,196,1,0,129,4,39,106,1,0,111,4,194,195,1,0,129,4,169,105,3,0,210,195,202,195,194,195,2,0,136,1,56,1,2,0,111,4,129,4,194,195,205,108,2,0,202,195,194,195,1,0,111,4,147,203,1,0,111,4,194,195,3,0,210,195,202,195,194,195,1,0,129,4,188,1,1,0,111,4,194,195,1,0,129,4,128,1,2,0,111,4,129,4,194,195,41,107,1,0,129,4,145,105,1,0,129,4,48,1,2,0,111,4,129,4,194,195,107,107,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,194,195,189,106,2,0,253,105,22,0,2,0,111,4,129,4,210,195,133,105,1,0,111,4,194,195,1,0,111,4,74,39,1,0,111,4,194,195,1,0,111,4,210,195,1,0,111,4,194,195,2,0,199,105,145,105,1,0,111,4,54,39,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,111,4,34,196,1,0,111,4,202,195,1,0,129,4,36,1,1,0,111,4,194,195,1,0,111,4,44,39,1,0,129,4,84,1,2,0,202,195,194,195,1,0,111,4,210,195,1,0,111,4,194,195,1,0,129,4,171,106,2,0,111,4,129,4,194,195,119,107,1,0,111,4,194,195,2,0,111,4,129,4,194,195,208,1,1,0,111,4,202,195,1,0,129,4,36,1,2,0,194,195,59,39,1,0,111,4,202,195,1,0,111,4,202,195,2,0,111,4,129,4,194,195,36,1,2,0,210,195,202,195,2,0,111,4,129,4,194,195,52,1,1,0,111,4,118,45,2,0,111,4,129,4,202,195,120,1,1,0,129,4,68,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,117,106,5,0,139,0,151,0,181,0,144,2,120,2,2,0,234,195,147,203,1,0,129,4,121,105,2,0,234,195,147,203,2,0,111,4,129,4,210,195,151,105,2,0,139,105,121,105,3,0,210,195,202,195,194,195,1,0,129,4,136,1,2,0,194,195,153,40,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,195,5,0,123,106,92,1,104,1,225,106,217,105,1,0,111,4,194,195,2,0,111,4,129,4,194,195,200,1,2,0,111,4,129,4,242,196,154,205,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,205,105,1,0,111,4,194,195,1,0,129,4,133,105,1,0,111,4,194,195,1,0,129,4,199,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,10,196,1,0,129,4,10,0,1,0,111,4,194,195,1,0,129,4,7,0,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,18,196,1,0,129,4,121,105,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,140,1,2,0,111,4,129,4,210,195,160,1,2,0,111,4,129,4,194,195,48,1,1,0,111,4,210,195,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,242,195,1,0,129,4,52,1,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,119,44,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,44,1,0,111,4,199,44,1,0,111,4,114,196,1,0,111,4,214,44,1,0,111,4,224,44,1,0,111,4,239,44,1,0,111,4,147,203,1,0,129,4,121,105,1,0,111,4,194,195,1,0,129,4,157,105,1,0,111,4,48,45,1,0,111,4,194,39,1,0,111,4,147,203,2,0,124,39,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,194,195,1,0,111,4,42,196,2,0,111,4,129,4,194,195,169,105,1,0,111,4,202,195,1,0,111,4,194,195,1,0,111,4,194,195,2,0,242,195,146,196,2,0,52,1,147,106,1,0,111,4,194,195,2,0,111,4,129,4,242,195,52,1,1,0,111,4,194,195,1,0,111,4,194,195,2,0,111,4,129,4,210,195,160,1,1,0,111,4,194,195,1,0,111,4,59,39,1,0,111,4,59,39,1,0,129,4,72,1,2,0,242,195,146,196,5,0,52,1,147,106,75,109,93,106,175,0,2,0,133,40,118,40,5,0,4,0,69,106,84,1,154,205,200,1,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,145,105,1,0,111,4,194,195,1,0,111,4,194,195,1,0,129,4,22,0,4,0,133,14,142,14,148,14,153,14,236,112,132,136,14,219,158,212,6,0,32,1,136,105,66,39,64,183,120,106,244,105,4,0,81,39,15,40,131,178,41,1,4,0,166,39,171,39,29,196,41,1,4,0,111,39,171,39,29,196,41,1,4,0,111,39,166,39,29,196,41,1,4,0,111,39,141,39,29,196,41,1,4,0,51,33,252,2,29,196,41,1,4,0,227,7,71,39,29,196,131,178,4,0,71,44,71,39,29,196,131,178,4,0,92,2,15,40,194,178,41,1,4,0,92,2,81,39,194,178,41,1,4,0,87,109,36,39,11,39,131,178,4,0,2,42,32,1,11,39,131,178,4,0,65,40,181,39,16,39,131,178,4,0,109,108,32,1,11,39,131,178,4,0,51,109,32,1,11,39,131,178,4,0,24,3,66,39,16,39,131,178,4,0,209,107,36,39,11,39,131,178,4,0,238,107,160,2,16,39,131,178,4,0,72,3,36,39,16,39,131,178,4,0,42,108,32,1,11,39,131,178,4,0,21,109,204,1,11,39,131,178,4,0,51,44,32,1,11,39,131,178,4,0,56,44,44,1,16,39,131,178,4,0,45,40,41,39,16,39,131,178,4,0,76,3,66,39,16,39,131,178,4,0,42,111,143,7,11,39,131,178,4,0,159,18,32,1,16,39,131,178,4,0,75,7,127,105,11,39,131,178,4,0,85,40,41,39,16,39,131,178,4,0,31,19,41,39,16,39,131,178,4,0,70,40,20,3,16,39,41,1,4,0,55,40,32,1,16,39,131,178,4,0,40,3,32,1,11,39,131,178,4,0,0,3,32,1,11,39,131,178,4,0,4,3,66,39,16,39,131,178,4,0,117,109,92,2,16,39,131,178,4,0,232,2,181,39,16,39,131,178,4,0,35,40,32,1,16,39,131,178,4,0,219,21,32,1,11,39,131,178,4,0,28,3,32,1,16,39,131,178,4,0,247,108,66,39,16,39,131,178,4,0,33,106,66,39,16,39,131,178,4,0,44,3,204,1,11,39,131,178,4,0,33,109,32,1,11,39,131,178,4,0,179,196,32,1,16,39,131,178,4,0,35,107,41,39,16,39,131,178,4,0,27,109,36,39,11,39,131,178,4,0,48,3,32,1,11,39,131,178,4,0,115,108,32,1,11,39,131,178,4,0,244,2,32,1,16,39,131,178,4,0,228,2,86,39,16,39,131,178,4,0,31,44,32,1,11,39,131,178,4,0,52,3,41,39,11,39,131,178,4,0,80,3,36,39,11,39,131,178,4,0,176,39,32,1,11,39,131,178,4,0,15,109,32,1,11,39,131,178,4,0,19,26,32,1,11,39,131,178,4,0,146,39,248,2,11,39,131,178,4,0,56,3,36,39,11,39,131,178,4,0,131,39,12,3,16,39,131,178,4,0,60,3,32,1,11,39,131,178,4,0,253,108,41,39,11,39,131,178,4,0,30,40,32,1,11,39,131,178,4,0,187,26,32,1,11,39,131,178,4,0,232,107,41,39,11,39,131,178,4,0,91,27,204,1,16,39,131,178,4,0,119,27,32,1,11,39,131,178,4,0,51,39,41,39,11,39,131,178,4,0,136,39,32,1,16,39,131,178,4,0,240,2,32,1,11,39,131,178,4,0,116,39,36,39,11,39,131,178,4,0,52,196,204,1,11,39,131,178,4,0,26,39,86,39,11,39,131,178,4,0,64,3,32,1,11,39,131,178,4,0,151,39,32,1,11,39,131,178,4,0,186,39,32,1,11,39,131,178,4,0,249,106,81,39,16,39,41,1,4,0,249,106,15,40,16,39,41,1,4,0,207,28,32,1,11,39,131,178,4,0,16,3,32,1,11,39,131,178,4,0,33,41,32,1,11,39,131,178,4,0,84,3,41,39,16,39,131,178,4,0,8,2,32,1,11,39,131,178,4,0,197,107,32,1,11,39,131,178,4,0,36,44,32,1,11,39,131,178,4,0,67,30,32,1,16,39,131,178,4,0,106,39,32,1,11,39,131,178,4,0,21,39,66,39,11,39,131,178,4,0,75,40,71,39,16,39,131,178,4,0,76,44,32,1,11,39,131,178,4,0,68,3,41,39,11,39,131,178,4,0,156,39,204,1,11,39,131,178,4,0,60,40,32,1,11,39,131,178,4,0,191,39,32,1,11,39,131,178,4,0,46,44,32,1,11,39,131,178,4,0,90,40,32,1,11,39,131,178,4,0,135,106,32,1,11,39,131,178,4,0,41,44,32,1,11,39,131,178,4,0,161,39,86,39,16,39,131,178,4,0,40,40,32,1,11,39,131,178,4,0,91,39,32,1,11,39,131,178,4,0,164,2,32,1,11,39,131,178,4,0,88,3,36,39,11,39,131,178,4,0,39,109,32,1,11,39,131,178,4,0,100,40,36,39,11,39,131,178,4,0,203,33,32,1,11,39,131,178,4,0,61,44,32,1,11,39,131,178,4,0,105,40,32,1,11,39,131,178,4,0,95,40,36,39,11,39,131,178,4,0,30,111,32,1,11,39,131,178,4,0,32,3,44,1,16,39,131,178,4,0,69,109,36,39,16,39,131,178,4,0,160,2,32,1,11,39,131,178,4,0,203,107,36,39,11,39,131,178,4,0,36,3,41,39,11,39,131,178,4,0,104,2,32,1,11,39,131,178,4,0,156,2,32,1,11,39,131,178,4,0,26,44,32,1,11,39,131,178,4,0,92,3,44,1,16,39,131,178,4,0,236,2,32,1,11,39,131,178,4,0,87,16,127,105,6,39,131,178,4,0,95,16,127,105,6,39,131,178,4,0,99,16,127,105,6,39,131,178,4,0,103,16,127,105,6,39,131,178,4,0,107,16,127,105,6,39,131,178,4,0,111,16,127,105,6,39,131,178,4,0,115,16,127,105,6,39,131,178,4,0,119,16,127,105,6,39,131,178,4,0,123,16,127,105,6,39,131,178,4,0,135,16,127,105,6,39,131,178,4,0,131,43,127,105,6,39,131,178,4,0,147,16,127,105,6,39,131,178,4,0,35,7,127,105,6,39,131,178,4,0,211,16,127,105,6,39,131,178,4,0,215,16,127,105,6,39,131,178,4,0,39,7,127,105,6,39,131,178,4,0,43,7,127,105,6,39,131,178,4,0,47,7,127,105,6,39,131,178,4,0,51,7,127,105,6,39,131,178,4,0,75,17,127,105,6,39,131,178,4,0,87,17,127,105,6,39,131,178,4,0,107,17,127,105,6,39,131,178,4,0,111,17,127,105,6,39,131,178,4,0,115,17,127,105,6,39,131,178,4,0,119,17,127,105,6,39,131,178,4,0,55,7,127,105,6,39,131,178,4,0,230,39,127,105,6,39,131,178,4,0,63,41,127,105,6,39,131,178,4,0,47,33,127,105,6,39,131,178,4,0,131,17,209,107,6,39,131,178,4,0,47,9,9,109,6,39,131,178,4,0,139,7,16,0,6,39,131,178,4,0,171,7,16,0,6,39,131,178,4,0,147,21,16,0,6,39,131,178,4,0,151,21,16,0,6,39,131,178,4,0,155,21,16,0,6,39,131,178,4,0,159,21,16,0,6,39,131,178,4,0,163,21,16,0,6,39,131,178,4,0,101,43,16,0,6,39,131,178,4,0,151,43,33,106,6,39,131,178,4,0,54,111,33,106,6,39,131,178,4,0,207,22,33,106,6,39,131,178,4,0,99,28,33,106,6,39,131,178,4,0,71,24,63,109,6,39,131,178,4,0,219,20,111,1,6,39,131,178,4,0,135,7,111,1,6,39,131,178,4,0,103,28,111,1,6,39,131,178,4,0,123,29,111,1,6,39,131,178,4,0,162,42,111,1,6,39,131,178,4,0,58,41,111,1,6,39,131,178,4,0,155,33,111,1,6,39,131,178,4,0,247,33,111,1,6,39,131,178,4,0,111,22,3,26,6,39,131,178,4,0,59,22,11,26,6,39,131,178,4,0,247,23,59,1,6,39,131,178,4,0,155,26,59,1,6,39,131,178,4,0,75,197,59,1,6,39,131,178,4,0,159,26,59,1,6,39,131,178,4,0,103,8,59,1,6,39,131,178,4,0,13,41,59,1,6,39,131,178,4,0,78,41,59,1,6,39,131,178,4,0,11,27,59,1,6,39,131,178,4,0,111,8,59,1,6,39,131,178,4,0,51,27,59,1,6,39,131,178,4,0,78,108,59,1,6,39,131,178,4,0,15,29,59,1,6,39,131,178,4,0,235,31,59,1,6,39,131,178,4,0,7,27,3,109,6,39,131,178,4,0,191,17,51,39,6,39,131,178,4,0,59,7,51,39,6,39,131,178,4,0,219,17,51,39,6,39,131,178,4,0,59,18,51,39,6,39,131,178,4,0,29,70,51,39,6,39,131,178,4,0,196,134,51,39,6,39,131,178,4,0,151,33,51,39,6,39,131,178,4,0,191,33,51,39,6,39,131,178,4,0,255,33,51,39,6,39,131,178,4,0,211,36,51,39,6,39,131,178,4,0,215,36,51,39,6,39,131,178,4,0,235,27,116,39,6,39,131,178,4,0,207,17,26,39,6,39,131,178,4,0,15,18,26,39,6,39,131,178,4,0,23,18,26,39,6,39,131,178,4,0,27,18,26,39,6,39,131,178,4,0,6,111,26,39,6,39,131,178,4,0,223,19,26,39,6,39,131,178,4,0,239,7,26,39,6,39,131,178,4,0,86,39,26,39,6,39,131,178,4,0,170,69,26,39,6,39,131,178,4,0,251,24,26,39,6,39,131,178,4,0,31,26,26,39,6,39,131,178,4,0,35,26,26,39,6,39,131,178,4,0,47,26,26,39,6,39,131,178,4,0,94,110,26,39,6,39,131,178,4,0,91,26,26,39,6,39,131,178,4,0,131,26,26,39,6,39,131,178,4,0,95,27,26,39,6,39,131,178,4,0,107,27,26,39,6,39,131,178,4,0,111,27,26,39,6,39,131,178,4,0,115,27,26,39,6,39,131,178,4,0,143,27,26,39,6,39,131,178,4,0,215,27,26,39,6,39,131,178,4,0,219,27,26,39,6,39,131,178,4,0,227,27,26,39,6,39,131,178,4,0,187,29,26,39,6,39,131,178,4,0,191,29,26,39,6,39,131,178,4,0,95,30,26,39,6,39,131,178,4,0,182,42,26,39,6,39,131,178,4,0,223,33,26,39,6,39,131,178,4,0,131,34,26,39,6,39,131,178,4,0,43,35,26,39,6,39,131,178,4,0,47,35,26,39,6,39,131,178,4,0,207,36,26,39,6,39,131,178,4,0,167,38,26,39,6,39,131,178,4,0,135,39,26,39,6,39,131,178,4,0,107,7,186,39,6,39,131,178,4,0,227,21,8,2,6,39,131,178,4,0,7,23,8,2,6,39,131,178,4,0,179,8,8,2,6,39,131,178,4,0,68,41,197,107,6,39,131,178,4,0,47,30,106,39,6,39,131,178,4,0,251,30,106,39,6,39,131,178,4,0,103,31,21,39,6,39,131,178,4,0,107,31,21,39,6,39,131,178,4,0,111,31,21,39,6,39,131,178,4,0,115,31,21,39,6,39,131,178,4,0,119,31,21,39,6,39,131,178,4,0,123,31,21,39,6,39,131,178,4,0,127,31,21,39,6,39,131,178,4,0,131,31,21,39,6,39,131,178,4,0,135,31,21,39,6,39,131,178,4,0,176,109,21,39,6,39,131,178,4,0,139,31,21,39,6,39,131,178,4,0,143,31,21,39,6,39,131,178,4,0,147,31,21,39,6,39,131,178,4,0,191,8,21,39,6,39,131,178,4,0,195,8,21,39,6,39,131,178,4,0,199,8,21,39,6,39,131,178,4,0,155,31,21,39,6,39,131,178,4,0,159,31,21,39,6,39,131,178,4,0,163,31,21,39,6,39,131,178,4,0,167,31,21,39,6,39,131,178,4,0,171,31,21,39,6,39,131,178,4,0,175,31,21,39,6,39,131,178,4,0,179,31,21,39,6,39,131,178,4,0,183,31,21,39,6,39,131,178,4,0,203,8,21,39,6,39,131,178,4,0,207,8,21,39,6,39,131,178,4,0,187,31,21,39,6,39,131,178,4,0,220,39,21,39,6,39,131,178,4,0,211,8,21,39,6,39,131,178,4,0,215,8,21,39,6,39,131,178,4,0,199,31,21,39,6,39,131,178,4,0,219,8,21,39,6,39,131,178,4,0,223,8,21,39,6,39,131,178,4,0,103,2,21,39,6,39,131,178,4,0,227,8,21,39,6,39,131,178,4,0,203,31,21,39,6,39,131,178,4,0,207,31,21,39,6,39,131,178,4,0,211,31,21,39,6,39,131,178,4,0,215,31,21,39,6,39,131,178,4,0,219,31,21,39,6,39,131,178,4,0,223,31,21,39,6,39,131,178,4,0,231,8,21,39,6,39,131,178,4,0,76,43,101,39,6,39,131,178,4,0,166,110,101,39,6,39,131,178,4,0,43,33,101,39,6,39,131,178,4,0,79,16,135,106,6,39,131,178,4,0,253,41,135,106,6,39,131,178,4,0,195,16,135,106,6,39,131,178,4,0,154,40,115,33,6,39,131,178,4,0,43,9,203,107,6,39,131,178,4,0,179,37,156,2,6,39,131,178,4,0,99,18,44,1,6,39,131,178,4,0,71,7,44,1,6,39,131,178,4,0,11,19,44,1,6,39,131,178,4,0,103,7,44,1,6,39,131,178,4,0,79,19,44,1,6,39,131,178,4,0,127,42,44,1,6,39,131,178,4,0,11,23,44,1,6,39,131,178,4,0,243,7,44,1,6,39,131,178,4,0,225,39,44,1,6,39,131,178,4,0,130,69,44,1,6,39,131,178,4,0,186,111,44,1,6,39,131,178,4,0,3,36,44,1,6,39,131,178,4,0,51,9,44,1,6,39,131,178,4,0,82,205,82,205,207,43,41,1,4,0,7,196,223,195,6,39,131,178,4,0,175,197,71,196,6,39,131,178,4,0,231,195,223,195,6,39,131,178,4,0,31,196,239,195,6,39,131,178,4,0,223,196,71,196,6,39,131,178,4,0,111,196,223,195,6,39,131,178,4,0,231,196,223,195,6,39,131,178,4,0,87,196,223,195,6,39,131,178,4,0,119,196,223,195,6,39,131,178,4,0,135,196,223,195,6,39,131,178,4,0,47,196,223,195,6,39,131,178,4,0,95,201,223,195,6,39,131,178,4,0,167,196,223,195,6,39,131,178,4,0,247,196,223,195,6,39,131,178,4,0,183,201,223,195,6,39,131,178,4,0,207,201,223,195,6,39,131,178,4,0,127,196,223,195,6,39,131,178,4,0,95,196,223,195,6,39,131,178,4,0,15,196,223,195,6,39,131,178,4,0,215,202,223,195,6,39,131,178,4,0,223,202,71,196,6,39,131,178,4,0,103,203,223,195,6,39,131,178,4,0,191,195,71,196,6,39,131,178,4,0,39,196,223,195,6,39,131,178,4,0,23,197,159,202,188,105,41,1,4,0,127,203,239,195,6,39,131,178,4,0,31,197,239,195,16,39,131,178,4,0,31,197,143,196,16,39,131,178,4,0,127,197,119,197,16,39,131,178,4,0,223,197,231,195,16,39,131,178,4,0,55,199,215,196,16,39,131,178,4,0,153,203,79,199,16,39,131,178,4,0,135,199,87,196,16,39,131,178,4,0,39,201,135,196,16,39,131,178,4,0,79,201,71,201,16,39,131,178,4,0,191,202,95,196,16,39,131,178,4,0,199,202,15,196,16,39,131,178,4,0,135,203,239,195,16,39,131,178,4,0,119,199,255,195,188,105,131,178,4,0,111,199,255,195,188,105,131,178,4,0,151,196,255,195,188,105,131,178,4,0,79,196,255,195,188,105,131,178,4,0,63,196,255,195,188,105,131,178,4,0,151,196,63,196,188,105,131,178,4,0,79,196,63,196,188,105,131,178,4,0,239,196,55,196,188,105,131,178,4,0,183,196,55,196,188,105,131,178,4,0,191,196,55,196,188,105,131,178,4,0,191,196,183,196,188,105,131,178,4,0,143,178,143,178,66,44,41,1,4,0,157,207,157,207,29,196,41,1,4,0,140,208,140,208,29,196,41,1,4,0,161,178,161,178,188,105,41,1,4,0,146,205,146,205,29,196,41,1,4,0,34,206,183,198,85,197,41,1,4,0,34,206,34,206,29,196,41,1,4,0,168,178,168,178,188,105,41,1,4,0,155,208,155,208,29,196,41,1,4,0,94,209,94,209,29,196,41,1,4,0,175,178,175,178,188,105,41,1,4,0,170,208,170,208,29,196,41,1,4,0,110,209,110,209,29,196,41,1,4,0,140,178,140,178,188,105,41,1,4,0,185,208,185,208,29,196,41,1,4,0,126,209,126,209,29,196,41,1,4,0,74,205,74,205,188,105,41,1,4,0,122,113,122,113,29,196,41,1,84,0,50,183,118,108,124,108,130,108,136,108,202,111,142,108,38,107,12,145,148,108,208,111,138,106,214,111,250,105,220,111,44,107,36,106,42,106,226,111,48,106,136,105,154,108,232,111,220,105,160,108,50,107,56,107,144,106,54,106,150,106,166,108,118,105,238,111,172,108,156,106,160,105,62,107,178,108,244,111,184,108,190,108,68,107,162,106,24,145,250,111,6,106,60,106,74,107,168,106,66,106,12,106,0,112,166,105,174,106,80,107,180,106,186,106,148,105,6,112,192,106,72,106,86,107,198,106,78,106,90,106,12,112,96,106,92,107,196,108,98,107,18,112,202,108,104,107,110,107,116,107,226,105,154,105,122,107,208,108,102,106,204,106,142,105,18,106,108,106,9,0,190,105,202,105,18,145,130,105,0,106,208,105,172,105,84,106,214,105,22,0,128,107,210,106,66,145,134,107,140,107,214,108,146,107,220,108,152,107,216,106,158,107,226,108,222,106,164,107,170,107,176,107,232,108,228,106,182,107,72,145,238,108,188,107,2,0,81,39,249,106,11,0,114,106,232,105,212,107,178,105,126,106,218,107,238,105,72,109,196,105,78,109,224,107,43,0,159,197,167,197,4,204,31,204,103,196,239,197,49,204,47,197,67,204,170,203,199,196,175,196,207,196,191,198,63,199,103,199,127,199,143,199,151,199,159,199,167,199,31,201,159,196,161,203,87,201,111,201,143,203,215,201,255,196,7,197,152,203,151,202,23,197,183,202,207,202,95,203,207,195,199,195,247,204,119,203,171,203,45,205,143,196,11,0,8,3,80,40,176,39,57,109,116,39,191,39,91,39,164,2,50,40,51,9,44,1,7,0,141,72,146,72,151,72,156,72,161,72,166,72,171,72,7,0,138,45,143,45,148,45,153,45,158,40,158,45,163,40,34,0,20,137,26,137,132,109,128,113,134,113,140,113,146,113,152,113,138,109,158,113,164,113,170,113,144,109,176,113,182,113,188,113,194,113,200,113,206,113,212,113,218,113,224,113,230,113,236,113,242,113,248,113,254,113,4,114,10,114,16,114,106,108,22,114,28,114,34,114,8,0,176,72,181,72,186,72,191,72,196,72,201,72,206,72,211,72,12,0,216,72,221,72,226,72,231,72,236,72,241,72,246,72,251,72,0,73,5,73,10,73,15,73,11,0,163,45,3,107,168,45,173,45,178,45,183,45,188,45,193,45,198,45,203,45,208,45,18,0,40,114,46,114,52,114,58,114,64,114,170,137,176,137,70,114,76,114,82,114,150,109,88,114,230,107,94,114,100,114,106,114,112,108,156,109,24,0,16,110,195,39,140,69,54,206,226,206,243,16,247,16,251,16,255,16,138,111,3,17,136,134,124,110,7,17,39,7,11,17,43,7,239,206,15,17,19,17,23,17,27,17,47,7,51,7,9,0,35,17,39,17,43,17,47,17,51,17,55,17,59,17,63,17,67,17,8,0,112,114,118,114,213,45,124,114,218,45,130,114,136,114,168,40,70,0,142,114,148,114,154,114,160,114,166,114,172,114,178,114,244,39,236,107,190,114,196,114,202,114,208,114,214,114,226,114,232,114,33,40,238,114,244,114,250,114,0,115,6,115,162,109,12,115,18,115,30,115,129,39,36,115,42,115,48,115,54,115,134,39,249,39,60,115,223,45,168,109,72,115,78,115,84,115,90,115,96,115,102,115,174,109,228,45,108,115,136,138,142,138,132,115,138,115,144,115,150,115,254,39,156,115,162,115,139,39,168,115,174,115,180,115,186,115,233,45,192,115,198,115,204,115,210,115,216,115,238,45,222,115,196,111,148,138,124,105,3,0,228,115,234,115,240,115,11,0,165,73,170,73,175,73,180,73,185,73,190,73,195,73,200,73,205,73,210,73,215,73,8,0,159,17,163,17,167,17,171,17,175,17,142,134,134,109,179,17,3,0,246,115,8,116,32,116,13,0,28,75,33,75,38,75,43,75,48,75,53,75,58,75,63,75,68,75,73,75,78,75,83,75,88,75,28,0,93,75,98,75,103,75,108,75,113,75,118,75,123,75,128,75,133,75,138,75,143,75,148,75,153,75,158,75,163,75,168,75,173,75,178,75,183,75,188,75,193,75,198,75,203,75,208,75,213,75,218,75,223,75,228,75,4,0,233,75,238,75,243,75,243,45,18,0,248,45,253,75,2,76,173,40,253,45,2,46,7,46,178,40,12,46,17,46,183,40,22,46,27,46,188,40,32,46,37,46,42,46,47,46,12,0,169,69,7,76,193,40,52,46,57,46,62,46,67,46,72,46,77,46,82,46,87,46,92,46,4,0,97,46,102,46,107,46,198,40,9,0,231,17,235,17,90,108,36,108,239,17,243,17,24,111,247,17,251,17,3,0,112,46,117,46,122,46,27,0,127,46,12,76,17,76,132,46,137,46,142,46,147,46,152,46,157,46,162,46,167,46,22,76,27,76,32,76,37,76,172,46,177,46,182,46,187,46,42,76,174,69,47,76,52,76,192,46,197,46,202,46,207,46,32,0,212,46,217,46,222,46,227,46,232,46,237,46,242,46,247,46,252,46,203,40,1,47,6,47,253,106,11,47,16,47,21,47,26,47,31,47,36,47,41,47,46,47,57,76,62,76,51,47,208,40,56,47,61,47,66,47,71,47,76,47,38,40,81,47,20,0,67,76,72,76,77,76,82,76,87,76,92,76,97,76,102,76,107,76,112,76,117,76,122,76,127,76,132,76,137,76,142,76,147,76,152,76,86,47,91,47,16,0,96,47,101,47,39,39,106,47,111,47,160,43,116,47,3,40,8,40,213,40,121,47,218,40,165,43,157,76,162,76,126,47,7,0,43,40,131,47,170,43,164,39,136,47,141,47,48,40,6,0,146,47,53,40,22,117,151,47,99,39,28,117,13,0,156,47,161,47,166,47,171,47,176,47,167,76,172,76,177,76,181,47,186,47,191,47,196,47,201,47,26,0,206,47,211,47,216,47,187,76,192,76,221,47,223,40,226,47,231,47,228,40,233,40,236,47,241,47,246,47,251,47,0,48,207,76,212,76,5,48,10,48,15,48,20,48,25,48,30,48,35,48,40,48,17,0,45,48,50,48,34,117,55,48,60,48,65,48,70,48,75,48,80,48,85,48,90,48,238,40,95,48,100,48,243,40,105,48,110,48,12,0,63,7,67,7,135,18,139,18,143,18,222,76,227,76,232,76,237,76,242,76,247,76,40,117,26,0,115,48,120,48,125,48,130,48,135,48,140,48,145,48,150,48,155,48,160,48,165,48,170,48,175,48,180,48,185,48,252,76,179,69,190,48,195,48,200,48,248,40,205,48,210,48,215,48,1,77,6,77,14,0,220,48,225,48,230,48,235,48,240,48,245,48,253,40,250,48,255,48,4,49,2,41,9,49,14,49,7,41,16,0,19,49,24,49,29,49,34,49,39,49,44,49,49,49,54,49,59,49,64,49,69,49,74,49,79,49,12,41,84,49,17,41,10,0,89,49,94,49,99,49,104,49,109,49,114,49,119,49,124,49,129,49,134,49,34,0,139,49,144,49,149,49,175,43,154,49,159,49,164,49,169,49,16,77,21,77,174,49,179,49,184,69,26,77,184,49,189,49,194,49,199,49,22,41,204,49,209,49,27,41,214,49,31,77,36,77,219,49,224,49,229,49,234,49,239,49,244,49,249,49,32,41,254,49,33,0,46,117,52,117,58,117,64,117,70,117,76,117,82,117,88,117,94,117,100,117,106,117,112,117,118,117,124,117,3,50,130,117,204,109,136,117,142,117,148,117,154,117,160,117,166,117,172,117,178,117,184,117,190,117,210,109,196,117,202,117,208,117,214,117,220,117,7,0,79,7,83,7,23,19,27,19,87,7,91,7,8,50,16,0,13,50,41,77,46,77,51,77,56,77,61,77,66,77,71,77,76,77,81,77,86,77,91,77,96,77,101,77,106,77,18,50,2,0,95,7,99,7,6,0,116,77,121,77,126,77,131,77,136,77,141,77,14,0,113,50,118,50,123,50,128,50,133,50,138,50,185,43,190,43,143,50,148,50,195,43,153,50,200,43,205,43,16,0,158,50,163,50,168,50,173,50,178,50,183,50,188,50,193,50,198,50,203,50,208,50,213,50,199,39,218,50,204,39,37,41,6,0,194,69,181,77,186,77,191,77,42,41,223,50,5,0,196,77,201,77,206,77,211,77,216,77,10,0,221,77,226,77,231,77,236,77,241,77,246,77,251,77,0,78,5,78,10,78,10,0,175,78,180,78,185,78,190,78,195,78,200,78,205,78,210,78,215,78,220,78,48,0,225,78,230,78,235,78,240,78,245,78,250,78,255,78,4,79,9,79,14,79,19,79,24,79,29,79,34,79,39,79,44,79,49,79,54,79,59,79,64,79,69,79,74,79,79,79,84,79,89,79,94,79,99,79,104,79,109,79,114,79,119,79,78,70,124,79,129,79,134,79,83,70,139,79,144,79,149,79,154,79,159,79,88,70,164,79,93,70,169,79,174,79,179,79,98,70,24,0,59,20,63,20,67,20,71,20,173,41,75,20,79,20,83,20,87,20,91,20,95,20,245,69,250,69,99,20,103,20,107,20,184,79,189,79,111,20,115,20,178,41,119,20,111,7,123,20,15,0,228,50,233,50,238,50,243,50,248,50,253,50,2,51,7,51,12,51,17,51,22,51,27,51,32,51,37,51,42,51,27,0,38,119,44,119,50,119,47,51,52,51,56,119,115,7,57,51,62,51,62,119,67,51,72,51,77,51,82,51,87,51,68,119,92,51,97,51,47,41,74,119,102,51,80,119,86,119,92,119,98,119,104,119,110,119,6,0,107,51,112,51,117,51,122,51,127,51,132,51,19,0,147,51,249,79,254,79,199,69,172,51,13,80,18,80,23,80,43,80,52,41,177,51,197,51,53,80,58,80,222,51,237,51,67,41,1,52,41,52,12,0,56,52,63,40,61,52,66,52,71,52,76,52,81,52,86,52,91,52,73,80,78,80,96,52,19,0,101,52,83,80,88,80,93,80,98,80,103,80,108,80,113,80,118,80,123,80,128,80,133,80,138,80,143,80,148,80,153,80,158,80,163,80,168,80,5,0,147,7,151,7,155,7,159,7,163,7,4,0,116,119,122,119,128,119,134,119,26,0,140,119,120,112,126,112,132,112,138,112,22,108,14,110,164,119,106,52,170,119,111,52,176,119,20,110,182,119,188,119,116,52,194,119,121,52,200,119,206,119,212,119,218,119,126,52,131,52,136,52,141,52,9,0,183,21,187,21,191,21,195,21,199,21,203,21,207,21,211,21,215,21,4,0,164,146,74,122,4,123,196,123,7,0,226,82,231,82,236,82,241,82,246,82,251,82,146,52,12,0,151,52,156,52,161,52,166,52,72,41,171,52,176,52,181,52,210,43,204,69,209,39,186,52,16,0,191,52,196,52,201,52,206,52,211,52,216,52,221,52,226,52,231,52,236,52,241,52,246,52,251,52,0,53,5,53,10,53,5,0,15,53,20,53,25,53,30,53,77,41,6,0,175,7,95,22,99,22,48,41,179,7,183,7,8,0,187,7,191,7,195,7,199,7,203,7,207,7,211,7,215,7,2,0,219,7,187,2,14,0,160,53,143,22,147,22,151,22,155,22,70,110,159,22,163,22,167,22,147,42,171,22,175,22,179,22,223,7,22,0,75,83,80,83,85,83,90,83,95,83,100,83,105,83,110,83,115,83,120,83,125,83,130,83,135,83,140,83,145,83,150,83,155,83,160,83,165,83,170,83,175,83,180,83,4,0,169,39,231,7,30,108,235,7,10,0,185,53,215,43,69,39,190,53,64,39,195,53,200,53,220,43,205,53,112,41,18,0,210,53,215,53,29,84,34,84,117,41,220,53,225,53,230,53,235,53,240,53,245,53,250,53,255,53,4,54,9,54,14,54,19,54,24,54,21,0,39,84,44,84,49,84,54,84,59,84,64,84,69,84,74,84,79,84,84,84,89,84,94,84,99,84,104,84,109,84,114,84,119,84,124,84,129,84,134,84,139,84,10,0,9,107,29,54,34,54,144,84,149,84,39,54,44,54,49,54,154,84,159,84,43,0,54,54,59,54,64,54,69,54,74,54,79,54,68,40,122,41,127,41,84,54,89,54,94,54,99,54,132,41,104,54,225,43,109,54,114,54,119,54,174,39,230,43,137,41,142,41,124,54,129,54,134,54,104,39,139,54,144,54,149,54,147,41,44,44,164,84,229,69,169,84,154,54,159,54,164,54,169,54,152,41,174,54,179,54,184,54,7,0,162,41,194,84,234,54,229,84,167,41,239,69,249,84,4,0,247,7,3,8,7,8,11,8,6,0,15,8,207,41,58,55,191,2,63,55,19,8,36,0,68,55,73,55,43,85,48,85,78,55,199,206,83,55,88,55,93,55,98,55,103,55,108,55,113,55,118,55,123,55,128,55,133,55,212,41,138,55,143,55,148,55,153,55,158,55,163,55,168,55,173,55,178,55,183,55,188,55,193,55,217,41,198,55,222,41,203,55,208,55,213,55,16,0,218,55,63,85,68,85,228,55,238,55,243,55,248,55,253,55,2,56,7,56,12,56,17,56,22,56,27,56,32,56,219,39,31,0,73,85,78,85,83,85,88,85,93,85,98,85,103,85,108,85,113,85,118,85,123,85,128,85,133,85,138,85,143,85,148,85,153,85,158,85,163,85,168,85,173,85,178,85,183,85,188,85,193,85,198,85,203,85,208,85,213,85,218,85,42,56,8,0,143,24,147,24,151,24,155,24,159,24,163,24,167,24,171,24,20,0,47,56,52,56,57,56,62,56,67,56,72,56,77,56,82,56,87,56,92,56,97,56,102,56,107,56,112,56,117,56,122,56,223,85,228,85,127,56,132,56,14,0,212,86,217,86,222,86,227,86,232,86,237,86,242,86,247,86,252,86,1,87,6,87,11,87,16,87,21,87,12,0,146,57,151,57,156,57,161,57,166,57,171,57,176,57,181,57,186,57,191,57,196,57,201,57,47,0,26,87,31,87,36,87,41,87,46,87,51,87,56,87,61,87,66,87,71,87,76,87,81,87,86,87,91,87,96,87,101,87,106,87,111,87,116,87,121,87,126,87,131,87,136,87,141,87,146,87,151,87,156,87,161,87,166,87,171,87,176,87,181,87,186,87,191,87,196,87,201,87,206,87,211,87,216,87,221,87,226,87,231,87,236,87,241,87,246,87,251,87,0,88,47,0,5,88,10,88,15,88,20,88,25,88,30,88,35,88,40,88,45,88,50,88,55,88,60,88,65,88,70,88,75,88,80,88,85,88,90,88,95,88,100,88,105,88,110,88,115,88,120,88,125,88,130,88,135,88,140,88,145,88,150,88,155,88,160,88,165,88,170,88,175,88,180,88,185,88,190,88,195,88,200,88,205,88,210,88,215,88,220,88,225,88,230,88,235,88,9,0,192,42,195,25,206,57,211,57,23,8,162,111,203,25,27,8,31,8,25,0,35,8,39,8,207,25,211,25,215,25,219,25,223,25,227,25,231,25,240,88,245,88,250,88,255,88,4,89,9,89,14,89,19,89,24,89,29,89,34,89,39,89,44,89,49,89,54,89,59,89,3,0,43,8,54,108,47,8,3,0,51,8,55,8,59,8,2,0,63,8,195,2,12,0,129,89,134,89,139,89,144,89,149,89,154,89,159,89,164,89,169,89,221,57,174,89,179,89,17,0,226,57,184,89,189,89,194,89,199,89,204,89,209,89,214,89,219,89,224,89,229,89,234,89,239,89,244,89,249,89,254,89,231,57,6,0,236,57,241,57,246,57,247,41,144,39,251,57,17,0,68,125,74,125,182,110,80,125,86,125,92,125,98,125,104,125,110,125,116,125,122,125,128,125,24,109,134,125,200,107,140,125,30,109,18,0,252,41,3,90,8,90,1,42,0,58,5,58,10,58,15,58,20,58,25,58,30,58,35,58,6,42,40,58,45,58,11,42,50,58,55,58,8,0,60,58,65,58,70,58,18,90,23,90,75,58,80,58,85,58,10,0,28,90,33,90,38,90,43,90,48,90,53,90,58,90,63,90,68,90,73,90,11,0,78,90,83,90,88,90,93,90,98,90,103,90,108,90,113,90,118,90,123,90,128,90,9,0,67,8,71,8,75,8,79,8,83,8,87,8,91,8,95,8,99,8,15,0,90,58,95,58,100,58,105,58,110,58,16,42,115,58,120,58,125,58,130,58,149,39,135,58,140,58,21,42,145,58,10,0,231,26,172,134,235,26,239,26,243,26,247,26,107,8,160,69,251,26,165,69,10,0,155,58,160,58,165,58,170,58,175,58,180,58,185,58,190,58,195,58,200,58,12,0,205,58,210,58,215,58,220,58,26,42,225,58,31,42,230,58,235,58,73,40,240,58,245,58,43,0,146,125,152,125,240,106,200,134,206,134,158,125,164,125,170,125,172,153,178,153,176,125,182,125,188,110,194,110,200,110,190,153,196,153,188,125,202,153,230,134,194,125,200,125,206,125,214,153,220,153,226,153,212,125,218,125,224,125,230,125,244,153,250,153,236,125,6,154,242,134,12,154,24,112,242,125,248,125,206,110,254,125,4,126,212,110,22,0,250,58,255,58,4,59,9,59,78,40,14,59,19,59,24,59,29,59,34,59,41,92,46,92,39,59,179,39,36,42,44,59,49,59,54,59,41,42,59,59,64,59,69,59,12,0,51,92,56,92,61,92,66,92,71,92,76,92,81,92,86,92,91,92,96,92,101,92,106,92,17,0,74,59,79,59,84,59,46,42,51,42,56,42,61,42,66,42,71,42,76,42,89,59,94,59,99,59,111,92,116,92,104,59,109,59,37,0,114,59,119,59,124,59,121,92,126,92,129,59,131,92,136,92,13,70,141,92,146,92,151,92,134,59,139,59,144,59,149,59,154,59,159,59,164,59,169,59,81,42,174,59,179,59,184,59,189,59,194,59,199,59,86,42,204,59,209,59,156,92,161,92,214,59,219,59,224,59,229,59,234,59,24,0,166,92,171,92,176,92,181,92,186,92,191,92,196,92,201,92,206,92,211,92,216,92,221,92,226,92,231,92,236,92,241,92,246,92,251,92,0,93,5,93,10,93,15,93,20,93,25,93,6,0,115,8,119,8,123,8,127,8,123,27,127,27,2,0,131,8,135,8,80,0,26,155,32,155,38,155,42,109,44,155,50,155,56,155,150,112,62,155,68,155,74,155,80,155,86,155,92,155,98,155,104,155,110,155,116,155,122,155,128,155,210,127,134,155,248,134,140,155,254,134,146,155,152,155,158,155,164,155,170,155,176,155,182,155,156,112,188,155,194,155,200,155,162,112,206,155,58,108,212,155,218,155,224,155,168,112,230,155,236,155,242,155,4,135,248,155,254,155,4,156,10,156,174,112,16,156,22,156,28,156,180,112,34,156,40,156,186,112,10,135,192,112,16,135,198,112,46,156,52,156,58,156,64,156,70,156,76,156,204,112,82,156,88,156,22,135,94,156,100,156,106,156,112,156,118,156,124,156,130,156,11,0,139,8,155,27,159,27,163,27,167,27,171,27,175,27,179,27,183,27,239,59,216,127,15,0,30,93,35,93,40,93,45,93,50,93,55,93,60,93,65,93,70,93,75,93,80,93,85,93,90,93,95,93,100,93,22,0,143,8,254,110,222,127,64,108,228,127,234,127,190,156,196,156,240,127,246,127,252,127,2,128,8,128,14,128,70,108,202,156,28,135,208,156,20,128,26,128,32,128,38,128,15,0,105,93,110,93,115,93,120,93,125,93,130,93,135,93,140,93,145,93,150,93,155,93,160,93,165,93,170,93,175,93,68,0,180,93,185,93,190,93,195,93,200,93,205,93,210,93,215,93,220,93,225,93,230,93,235,93,240,93,245,93,250,93,255,93,4,94,9,94,14,94,19,94,24,94,29,94,34,94,39,94,44,94,49,94,54,94,59,94,64,94,69,94,74,94,79,94,84,94,89,94,94,94,99,94,104,94,109,94,114,94,119,94,124,94,129,94,134,94,139,94,144,94,149,94,154,94,159,94,164,94,64,44,169,94,174,94,179,94,184,94,189,94,194,94,199,94,204,94,209,94,118,70,214,94,219,94,224,94,229,94,234,94,239,94,244,94,123,70,12,0,244,59,91,42,249,59,254,59,3,60,8,60,13,60,18,60,23,60,28,60,96,42,33,60,21,0,13,95,18,95,23,95,28,95,33,95,38,95,43,95,48,95,53,95,58,95,63,95,38,60,43,60,68,95,73,95,78,95,83,95,88,95,93,95,98,95,44,128,3,0,147,8,151,8,155,8,32,0,50,128,56,128,62,128,68,128,74,128,80,128,86,128,4,111,92,128,98,128,10,111,104,128,16,111,110,128,116,128,122,128,128,128,134,128,76,108,140,128,146,128,152,128,158,128,164,128,170,128,176,128,182,128,48,109,188,128,82,108,194,128,200,128,16,0,133,95,138,95,143,95,148,95,153,95,158,95,163,95,168,95,173,95,178,95,183,95,188,95,193,95,198,95,203,95,208,95,11,0,187,42,15,28,159,8,163,8,167,8,206,128,171,8,19,28,23,28,27,28,31,28,14,0,128,60,133,60,138,60,143,60,148,60,153,60,158,60,163,60,168,60,121,42,173,60,213,95,218,95,178,60,8,0,51,28,55,28,59,28,63,28,67,28,71,28,75,28,79,28,37,0,183,60,188,60,193,60,126,42,198,60,203,60,131,42,208,60,136,42,213,60,218,60,223,60,228,60,233,60,238,60,243,60,248,60,141,42,223,95,228,95,233,95,238,95,253,60,2,61,7,61,12,61,17,61,22,61,27,61,32,61,37,61,42,61,146,42,47,61,151,42,52,61,57,61,17,0,62,61,67,61,72,61,156,42,77,61,82,61,87,61,92,61,97,61,102,61,107,61,112,61,243,95,248,95,117,61,122,61,127,61,18,0,132,61,134,158,140,158,146,158,137,61,142,61,147,61,152,61,157,61,162,61,167,61,172,61,177,61,182,61,187,61,192,61,197,61,224,39,13,0,202,61,207,61,212,61,217,61,22,96,27,96,222,61,227,61,232,61,237,61,242,61,247,61,252,61,12,0,139,28,143,28,147,28,151,28,155,28,37,96,42,96,47,96,52,96,57,96,62,96,67,96,14,0,72,96,77,96,82,96,87,96,92,96,97,96,102,96,107,96,112,96,117,96,122,96,127,96,132,96,137,96,17,0,212,128,22,111,218,128,224,128,230,128,236,128,242,128,248,128,254,128,4,129,10,129,16,129,22,129,28,129,30,106,54,109,34,129,11,0,41,62,46,62,51,62,56,62,61,62,66,62,71,62,76,62,81,62,186,42,86,62,14,0,183,8,11,30,15,30,19,30,23,30,27,30,31,30,35,30,39,30,91,62,96,62,101,62,106,62,111,62,26,0,46,129,52,129,58,129,64,129,70,129,76,129,82,129,88,129,94,129,100,129,106,129,112,129,156,160,162,160,118,129,124,129,130,129,136,129,142,129,148,129,60,109,154,129,160,129,166,129,28,111,172,129,22,0,178,129,184,129,34,111,190,129,196,129,202,129,208,129,214,129,220,129,226,129,186,160,192,160,232,129,238,129,244,129,250,129,0,130,6,130,12,130,18,130,24,130,30,130,17,0,147,96,152,96,157,96,162,96,167,96,172,96,177,96,182,96,187,96,192,96,197,96,202,96,207,96,212,96,217,96,222,96,227,96,7,0,116,62,191,42,121,62,126,62,131,62,136,62,141,62,16,0,146,62,151,62,156,62,161,62,166,62,171,62,176,62,181,62,186,62,191,62,196,62,201,62,206,62,211,62,216,62,221,62,16,0,152,131,158,131,76,111,164,131,200,161,40,135,170,131,176,131,182,131,188,131,194,131,200,131,206,131,212,131,218,131,224,131,20,0,36,97,41,97,46,97,51,97,56,97,61,97,66,97,71,97,76,97,81,97,86,97,91,97,96,97,101,97,106,97,111,97,116,97,121,97,226,62,231,62,16,0,82,111,88,111,94,111,100,111,106,111,112,111,118,111,100,108,124,111,130,111,230,131,46,135,10,162,16,162,236,131,242,131,18,0,187,8,47,31,51,31,55,31,59,31,63,31,67,31,71,31,75,31,126,97,131,97,136,97,141,97,146,97,151,97,156,97,236,62,248,131,8,0,241,62,246,62,251,62,0,63,5,63,10,63,15,63,20,63,42,0,25,63,30,63,196,42,235,8,35,63,40,63,45,63,50,63,55,63,60,63,65,63,70,63,75,63,161,97,166,97,245,43,80,63,85,63,90,63,95,63,100,63,105,63,110,63,115,63,120,63,125,63,130,63,135,63,140,63,145,63,150,63,155,63,160,63,165,63,170,63,175,63,171,97,176,97,180,63,185,63,190,63,195,63,20,0,181,97,221,97,226,97,231,97,236,97,241,97,246,97,251,97,0,98,5,98,10,98,15,98,20,98,25,98,30,98,35,98,40,98,45,98,200,63,250,43,83,0,205,63,210,63,254,131,4,132,136,111,10,132,201,42,16,132,22,132,206,42,215,63,28,132,34,132,220,63,211,42,225,63,142,111,40,132,148,111,75,98,80,98,154,111,46,132,52,132,160,111,58,132,64,132,70,132,85,98,90,98,76,132,230,63,82,132,235,63,88,132,94,132,100,132,106,132,112,132,240,63,245,63,118,132,124,132,130,132,136,132,142,132,148,132,154,132,160,132,166,111,166,132,172,132,178,132,184,132,190,132,196,132,202,132,216,42,120,109,208,132,14,107,250,63,126,109,214,132,220,132,172,111,221,42,226,132,232,132,238,132,244,132,255,63,250,132,4,64,0,133,6,133,12,133,18,133,178,111,24,133,20,107,30,133,84,109,5,0,95,98,100,98,105,98,110,98,115,98,13,0,120,98,125,98,130,98,135,98,140,98,145,98,150,98,155,98,160,98,165,98,170,98,175,98,9,64,10,0,14,64,19,64,24,64,29,64,34,64,180,98,185,98,39,64,44,64,49,64,27,0,190,98,195,98,200,98,205,98,210,98,215,98,220,98,225,98,230,98,235,98,240,98,245,98,250,98,255,98,4,99,9,99,14,99,19,99,24,99,29,99,34,99,39,99,44,99,49,99,54,99,59,99,64,99,18,0,54,64,59,64,64,64,69,64,226,42,74,64,79,64,231,42,84,64,89,64,94,64,99,64,104,64,109,64,236,42,114,64,119,64,124,64,21,0,69,99,74,99,129,64,31,43,195,32,192,111,238,110,204,40,199,32,203,32,239,8,207,32,194,109,211,32,215,32,244,110,219,32,36,43,53,41,190,134,223,32,5,0,79,99,84,99,89,99,94,99,99,99,3,0,134,64,139,64,144,64,212,0,44,164,50,164,52,135,56,164,90,109,62,164,68,164,58,135,210,112,74,164,80,164,64,135,96,109,216,112,86,164,92,164,222,112,228,112,234,112,70,135,102,109,98,164,104,164,76,135,110,164,116,164,122,164,82,135,26,107,240,112,88,135,94,135,128,164,100,135,134,164,106,135,140,164,146,164,152,164,158,164,164,164,170,164,176,164,112,135,182,164,188,164,194,164,118,135,200,164,206,164,212,164,218,164,224,164,230,164,236,164,242,164,248,164,254,164,4,165,124,135,10,165,16,165,22,165,28,165,34,165,40,165,46,165,52,165,58,165,130,135,64,165,136,135,70,165,142,135,76,165,148,135,82,165,88,165,94,165,100,165,106,165,112,165,118,165,154,135,124,165,160,135,130,165,136,165,142,165,148,165,154,165,166,135,160,165,166,165,172,165,172,135,178,165,184,165,190,165,196,165,202,165,208,165,214,165,220,165,226,165,232,165,238,165,244,165,250,165,0,166,6,166,12,166,18,166,24,166,30,166,246,112,36,166,42,166,48,166,178,135,54,166,60,166,66,166,252,112,72,166,78,166,84,166,90,166,96,166,102,166,108,166,2,113,114,166,120,166,126,166,8,113,132,166,138,166,144,166,184,135,150,166,190,135,196,135,14,113,156,166,162,166,202,135,168,166,174,166,208,135,20,113,180,166,214,135,220,135,108,109,186,166,226,135,192,166,198,166,204,166,232,135,210,166,216,166,222,166,238,135,228,166,234,166,240,166,26,113,246,166,252,166,2,167,32,113,244,135,8,167,14,167,250,135,20,167,38,113,26,167,32,167,38,167,0,136,44,167,50,167,56,167,44,113,62,167,68,167,50,113,56,113,74,167,80,167,86,167,6,136,92,167,98,167,104,167,110,167,116,167,122,167,128,167,134,167,140,167,146,167,152,167,158,167,164,167,170,167,176,167,182,167,188,167,8,0,149,64,154,64,159,64,164,64,241,42,169,64,174,64,246,42,5,0,96,108,243,8,251,42,247,8,251,8,9,0,104,99,109,99,114,99,119,99,124,99,129,99,134,99,139,99,144,99,14,0,179,64,184,64,189,64,194,64,149,99,154,99,199,64,0,43,204,64,209,64,214,64,219,64,224,64,229,64,18,0,234,64,239,64,244,64,5,43,249,64,254,64,10,43,3,65,8,65,13,65,18,65,23,65,15,43,28,65,33,65,38,65,43,65,48,65,10,0,53,65,58,65,63,65,68,65,73,65,78,65,83,65,88,65,20,43,25,43,10,0,93,65,98,65,30,43,103,65,35,43,40,43,108,65,113,65,118,65,123,65,7,0,159,99,164,99,169,99,174,99,179,99,184,99,255,8,14,0,128,65,133,65,138,65,143,65,148,65,153,65,158,65,163,65,168,65,173,65,255,43,18,40,178,65,183,65,14,0,188,65,193,65,198,65,45,43,203,65,43,70,189,99,84,39,208,65,19,39,213,65,218,65,223,65,228,65,4,0,233,65,4,44,238,65,109,39,23,0,243,65,248,65,253,65,2,66,7,66,12,66,17,66,22,66,50,43,27,66,32,66,37,66,42,66,47,66,52,66,57,66,62,66,67,66,72,66,77,66,82,66,87,66,92,66,5,0,3,9,7,9,11,9,15,9,19,9,78,0,194,99,199,99,204,99,209,99,214,99,219,99,224,99,229,99,234,99,239,99,244,99,249,99,254,99,3,100,8,100,13,100,18,100,23,100,28,100,33,100,38,100,43,100,48,100,53,100,58,100,63,100,68,100,73,100,78,100,83,100,88,100,93,100,98,100,103,100,108,100,113,100,118,100,123,100,128,100,133,100,138,100,143,100,148,100,153,100,158,100,163,100,168,100,173,100,178,100,183,100,188,100,193,100,198,100,203,100,208,100,213,100,218,100,223,100,228,100,233,100,238,100,243,100,248,100,253,100,2,101,7,101,12,101,17,101,22,101,27,101,32,101,37,101,42,101,47,101,52,101,57,101,138,70,23,9,5,0,97,66,55,43,102,66,107,66,112,66,13,0,117,66,122,66,60,43,127,66,132,66,137,66,142,66,147,66,152,66,157,66,162,66,167,66,65,43,6,0,211,33,255,69,27,9,239,2,215,33,236,43,24,0,62,101,67,101,72,101,77,101,82,101,87,101,92,101,97,101,102,101,107,101,112,101,117,101,122,101,127,101,132,101,137,101,142,101,172,66,147,101,152,101,157,101,162,101,167,101,172,101,5,0,177,101,182,101,187,101,192,101,197,101,81,0,202,101,207,101,212,101,217,101,222,101,227,101,232,101,237,101,242,101,247,101,252,101,1,102,6,102,11,102,16,102,21,102,26,102,31,102,36,102,41,102,46,102,51,102,56,102,61,102,66,102,71,102,76,102,81,102,86,102,91,102,96,102,101,102,106,102,111,102,116,102,121,102,126,102,131,102,136,102,141,102,146,102,151,102,156,102,161,102,166,102,171,102,176,102,181,102,186,102,191,102,196,102,201,102,206,102,211,102,216,102,221,102,226,102,231,102,236,102,241,102,246,102,251,102,0,103,5,103,10,103,15,103,20,103,25,103,30,103,35,103,40,103,45,103,50,103,55,103,60,103,65,103,70,103,75,103,80,103,85,103,90,103,15,0,36,133,42,133,48,133,54,133,60,133,66,133,72,133,78,133,84,133,114,109,90,133,96,133,102,133,108,133,114,133,8,0,120,133,126,133,132,133,138,133,144,133,150,133,156,133,162,133,22,0,168,133,174,133,180,133,132,106,186,133,192,133,198,133,204,133,210,133,216,133,222,133,228,133,184,111,234,133,240,133,246,133,252,133,246,106,2,134,8,134,14,134,20,134,31,0,95,103,100,103,105,103,110,103,115,103,120,103,125,103,130,103,135,103,4,39,140,103,143,70,145,103,150,103,155,103,160,103,165,103,170,103,175,103,14,39,180,103,185,103,190,103,195,103,200,103,205,103,210,103,215,103,220,103,9,39,225,103,27,0,177,66,182,66,187,66,192,66,197,66,202,66,207,66,212,66,217,66,222,66,227,66,232,66,237,66,242,66,247,66,252,66,1,67,6,67,11,67,16,67,21,67,26,67,31,67,36,67,41,67,46,67,51,67,4,0,31,9,199,2,35,9,39,9,9,0,56,67,61,67,66,67,71,67,76,67,81,67,86,67,91,67,96,67,57,0,121,109,230,103,15,107,101,67,106,67,70,43,111,67,116,67,75,43,121,67,126,67,131,67,136,67,141,67,146,67,151,67,156,67,161,67,166,67,171,67,80,43,176,67,48,70,235,103,181,67,240,103,127,109,186,67,245,103,250,103,53,70,255,103,4,104,85,43,191,67,196,67,201,67,206,67,211,67,216,67,221,67,226,67,231,67,236,67,9,104,14,104,241,67,246,67,251,67,0,68,5,68,10,68,15,68,20,68,25,68,30,68,35,68,19,0,21,107,40,68,90,43,83,40,45,68,50,68,55,68,60,68,95,43,65,68,70,68,74,44,148,70,75,68,80,68,85,68,88,40,89,39,93,40,14,0,90,68,95,68,9,44,14,44,23,40,100,68,105,68,110,68,154,39,189,39,159,39,98,40,103,40,115,68,6,0,19,104,24,104,29,104,34,104,39,104,44,104,25,0,199,34,203,34,207,34,211,34,215,34,219,34,223,34,227,34,231,34,235,34,239,34,243,34,178,110,214,110,255,2,247,34,84,108,251,34,255,34,3,3,3,35,7,35,11,35,15,35,19,35,63,0,49,104,54,104,59,104,64,104,69,104,74,104,79,104,120,68,84,104,89,104,125,68,94,104,99,104,104,104,109,104,114,104,119,104,124,104,129,104,134,104,139,104,144,104,149,104,154,104,159,104,164,104,169,104,174,104,179,104,130,68,184,104,189,104,194,104,199,104,204,104,209,104,214,104,135,68,219,104,224,104,229,104,234,104,239,104,244,104,249,104,254,104,3,105,8,105,140,68,145,68,13,105,18,105,23,105,28,105,33,105,38,105,43,105,48,105,150,68,155,68,160,68,165,68,170,68,6,0,26,134,32,134,38,134,190,111,42,112,44,134,3,0,175,68,180,68,100,43,11,0,185,68,190,68,195,68,200,68,205,68,210,68,215,68,220,68,225,68,230,68,105,43,22,0,235,68,240,68,245,68,250,68,255,68,4,69,9,69,14,69,110,43,19,69,115,43,24,69,29,69,34,69,39,69,120,43,234,39,44,69,239,39,49,69,125,43,54,69,9,0,130,43,59,69,135,43,50,134,64,69,69,69,74,69,79,69,84,69,10,0,63,105,68,105,73,105,78,105,83,105,88,105,93,105,98,105,103,105,89,69,10,0,94,69,140,43,99,69,104,69,109,69,114,69,114,39,24,39,108,105,113,105,8,0,184,114,220,114,24,115,155,43,66,115,114,115,120,115,126,115,6,0,225,73,245,73,250,73,84,74,209,74,214,74,11,0,220,73,235,73,255,73,4,74,9,74,14,74,39,74,104,74,114,74,194,74,239,74,13,0,24,74,34,74,44,74,49,74,89,74,124,74,134,74,139,74,159,74,169,74,224,74,13,75,18,75,10,0,240,73,19,74,69,74,74,74,94,74,109,74,144,74,154,74,174,74,249,74,8,0,230,73,79,74,179,74,184,74,199,74,204,74,229,74,254,74,8,0,29,74,54,74,99,74,119,74,189,74,219,74,234,74,23,75,4,0,59,74,149,74,3,75,8,75,4,0,64,74,129,74,164,74,244,74,5,0,252,115,2,116,14,116,20,116,26,116,5,0,38,116,32,107,44,116,50,116,56,116,6,0,238,138,250,138,0,139,158,116,176,116,236,116,2,0,74,116,146,116,3,0,186,109,134,116,6,139,3,0,244,138,164,116,218,116,4,0,68,116,212,116,224,116,198,109,3,0,180,109,170,116,16,117,5,0,86,116,92,116,122,116,128,116,242,116,3,0,98,116,116,116,248,116,4,0,152,116,200,116,4,117,10,117,3,0,80,116,140,116,188,116,4,0,194,116,192,109,230,116,254,116,4,0,62,116,104,116,182,116,206,116,8,0,28,50,58,50,63,50,73,50,78,50,189,69,103,50,180,43,14,0,23,50,33,50,38,50,43,50,48,50,53,50,68,50,83,50,58,40,88,50,111,77,93,50,98,50,108,50,12,0,214,141,220,141,226,141,184,141,48,112,54,112,56,134,190,141,196,141,202,141,60,112,208,141,7,0,232,141,62,134,238,141,244,141,250,141,68,134,0,142,7,0,6,142,12,142,18,142,66,112,24,142,30,142,36,142,3,0,42,142,48,142,54,142,7,0,60,142,72,112,66,142,72,142,78,142,78,112,84,142,4,0,90,142,84,112,96,142,102,142,5,0,108,142,114,142,120,142,90,112,126,142,4,0,74,134,80,134,96,112,86,134,5,0,132,142,138,142,144,142,102,112,150,142,7,0,156,142,92,134,108,112,162,142,168,142,114,112,174,142,5,0,180,142,186,142,192,142,198,142,204,142,4,0,210,142,216,142,222,142,98,134,6,0,228,142,234,142,240,142,104,134,246,142,252,142,4,0,40,78,80,78,105,78,110,78,4,0,35,78,85,78,140,78,145,78,3,0,55,78,100,78,135,78,3,0,75,78,130,78,150,78,2,0,45,78,120,78,4,0,25,78,30,78,60,78,90,78,3,0,125,78,155,78,160,78,2,0,15,78,170,78,4,0,20,78,95,78,115,78,165,78,3,0,50,78,65,78,70,78,16,0,160,144,0,118,18,118,216,109,66,118,84,118,90,118,96,118,190,144,242,107,156,118,162,118,210,118,216,118,10,108,252,118,8,0,232,117,30,118,78,118,110,134,114,118,120,118,222,118,228,118,3,0,24,118,102,118,144,118,3,0,36,118,132,118,16,108,3,0,244,117,202,144,20,119,8,0,250,117,42,118,168,118,240,109,116,134,2,110,14,119,8,110,3,0,178,144,150,118,192,118,7,0,12,118,60,118,184,144,228,109,234,109,198,118,234,118,4,0,54,118,72,118,108,118,174,118,3,0,248,107,180,118,204,118,8,0,238,117,172,144,48,118,196,144,222,109,4,108,208,144,252,109,3,0,126,118,240,118,246,118,4,0,254,107,138,118,2,119,8,119,5,0,166,144,186,118,246,109,26,119,32,119,8,0,142,51,3,80,28,80,187,51,240,39,211,43,217,51,11,52,3,0,62,41,63,80,210,39,9,0,152,51,167,51,202,51,127,7,6,52,16,52,21,52,36,52,51,52,5,0,137,51,33,80,48,80,192,51,31,52,2,0,57,41,68,80,4,0,119,7,182,51,200,39,205,39,2,0,157,51,8,80,4,0,123,7,212,51,242,51,252,51,3,0,162,51,26,52,46,52,3,0,235,39,38,80,131,7,5,0,213,80,218,80,228,80,233,80,238,80,3,0,188,80,193,80,198,80,3,0,178,80,183,80,203,80,3,0,173,80,208,80,223,80,2,0,127,81,132,81,13,0,243,80,253,80,17,81,57,81,107,81,177,81,197,81,202,81,46,82,76,82,146,119,96,82,101,82,8,0,82,81,102,81,182,81,21,82,81,82,86,82,171,82,108,70,4,0,87,81,122,81,162,81,11,82,6,0,72,81,117,81,167,81,172,81,192,81,212,81,11,0,152,119,22,81,32,81,242,81,247,81,1,82,6,82,16,82,66,82,71,82,166,82,5,0,248,80,26,82,31,82,41,82,131,82,8,0,158,119,116,82,121,82,176,82,181,82,186,82,191,82,196,82,12,0,62,81,67,81,77,81,92,81,97,81,152,81,187,81,222,81,51,82,126,82,156,82,161,82,5,0,52,81,112,81,237,81,36,82,111,82,13,0,27,81,37,81,42,81,137,81,142,81,147,81,157,81,217,81,227,81,56,82,61,82,136,82,141,82,6,0,2,81,7,81,12,81,47,81,146,82,103,70,5,0,207,81,232,81,252,81,91,82,151,82,151,0,254,119,4,120,10,120,140,134,62,146,16,120,22,120,46,120,52,120,58,120,64,120,70,120,76,120,82,120,92,146,98,146,88,120,94,120,100,120,106,120,118,120,136,120,142,120,26,110,154,120,160,120,166,120,172,120,184,120,196,120,38,110,208,120,44,110,134,146,220,120,50,110,232,120,238,120,158,134,18,121,234,106,24,121,48,121,60,121,68,110,176,146,182,146,66,121,72,121,78,121,84,121,96,121,74,110,102,121,108,121,114,121,120,121,126,121,80,110,132,121,144,121,150,121,86,110,156,121,162,121,168,121,174,121,186,121,92,110,192,121,198,121,204,121,210,121,216,121,98,110,222,121,228,121,234,121,240,121,252,121,14,122,44,122,50,122,56,122,62,122,68,122,86,122,98,122,104,122,116,122,122,122,104,110,134,122,140,122,152,122,170,122,176,122,188,122,194,122,200,122,110,110,212,122,224,122,230,122,236,122,242,122,10,123,16,123,252,106,22,123,28,123,34,123,40,123,248,146,254,146,52,123,4,147,10,147,58,123,64,123,70,123,28,147,76,123,176,134,34,147,82,123,94,123,100,123,106,123,112,123,118,123,124,123,136,123,142,123,148,123,154,123,166,123,172,123,178,123,184,123,190,123,0,109,202,123,208,123,116,110,214,123,220,123,226,123,238,123,244,123,194,107,11,0,26,146,236,119,242,119,28,120,124,120,226,120,42,121,180,121,246,121,32,122,92,122,32,0,32,146,38,146,224,119,248,119,148,120,214,120,140,146,244,120,250,120,0,121,6,121,12,121,56,110,30,121,36,121,54,121,90,121,138,121,2,122,20,122,38,122,80,122,146,122,164,122,218,122,248,122,254,122,46,123,22,147,160,123,250,108,6,109,22,0,230,119,34,120,40,120,112,120,130,120,32,110,178,120,190,120,202,120,62,110,28,108,8,122,26,122,110,122,128,122,158,122,182,122,206,122,88,123,130,123,244,108,232,123,5,0,209,69,35,53,87,41,70,53,35,83,5,0,40,53,60,53,65,53,25,83,105,53,4,0,45,53,50,53,82,41,80,53,5,0,15,83,30,83,40,83,50,83,100,53,5,0,20,83,85,53,90,53,55,83,110,53,3,0,55,53,60,83,97,41,6,0,10,83,75,53,92,41,45,83,95,53,115,53,5,0,135,53,140,53,145,53,150,53,155,53,3,0,120,53,125,53,130,53,2,0,165,53,170,53,3,0,113,70,102,41,107,41,3,0,24,84,175,53,180,53,6,0,199,54,189,84,204,54,209,54,214,54,3,55,5,0,199,84,219,54,209,84,214,84,219,84,2,0,229,54,239,54,3,0,174,84,244,54,224,84,2,0,234,84,239,84,6,0,157,41,244,84,254,54,254,84,3,85,13,85,10,0,189,54,179,84,194,54,184,84,204,84,224,54,249,54,234,69,8,85,18,85,5,0,255,7,202,41,28,85,38,55,214,39,12,0,177,41,251,7,182,41,187,41,13,55,18,55,23,55,28,55,33,55,53,55,33,85,38,85,6,0,172,41,249,69,192,41,197,41,43,55,48,55,3,0,244,69,8,55,23,85,3,0,223,55,233,55,37,56,7,0,78,124,108,124,156,124,162,124,174,124,204,124,222,124,4,0,90,124,12,109,164,110,32,125,10,0,6,124,36,124,42,124,54,124,96,124,114,124,144,124,240,124,252,124,170,110,9,0,122,110,34,108,146,110,150,124,198,124,216,124,26,125,38,125,56,125,7,0,0,124,30,124,132,124,138,124,194,134,14,125,20,125,13,0,12,124,48,124,60,124,72,124,102,124,120,124,168,124,186,124,18,109,210,124,246,124,44,125,50,125,5,0,66,124,134,110,152,110,234,124,62,125,14,0,18,124,24,124,128,110,84,124,126,124,140,110,180,124,158,110,192,124,228,124,218,149,2,125,8,125,176,110,8,0,149,178,147,56,162,56,27,86,31,57,177,86,197,86,202,86,12,0,157,56,2,86,32,86,37,86,252,56,11,57,254,69,21,57,67,86,122,86,147,86,8,70,2,0,172,56,59,44,7,0,167,56,92,86,137,86,111,57,121,57,126,57,131,57,4,0,227,56,102,86,192,86,116,57,4,0,222,56,237,56,152,86,172,86,9,0,54,44,202,56,207,56,72,86,3,70,56,57,66,57,76,57,132,86,10,0,248,85,232,41,232,56,6,57,57,86,235,43,51,57,107,86,112,86,96,57,2,0,46,57,187,86,5,0,142,56,238,85,217,56,62,86,117,86,5,0,237,41,52,86,86,57,127,86,136,57,4,0,243,85,182,56,97,86,106,57,2,0,17,86,242,56,5,0,152,56,49,44,177,56,26,57,91,57,6,0,227,41,253,85,7,86,212,56,1,57,101,57,2,0,77,86,61,57,5,0,42,86,192,56,247,56,71,57,141,57,9,0,137,56,187,56,47,86,197,56,16,57,242,41,81,57,157,86,182,86,5,0,12,86,36,57,41,57,162,86,167,86,9,0,64,89,69,89,74,89,89,89,99,89,104,89,114,89,124,89,216,57,5,0,79,89,84,89,94,89,109,89,119,89,3,0,133,90,138,90,143,90,3,0,148,90,153,90,158,90,3,0,163,90,168,90,173,90,5,0,178,90,183,90,188,90,193,90,198,90,3,0,203,90,208,90,213,90,2,0,218,90,223,90,2,0,228,90,233,90,2,0,238,90,243,90,2,0,248,90,253,90,5,0,7,91,12,91,32,91,117,91,16,92,7,0,97,91,102,91,107,91,137,91,152,91,227,91,237,91,8,0,22,91,47,91,62,91,72,91,77,91,87,91,177,91,187,91,5,0,67,91,82,91,122,91,202,91,21,92,6,0,27,91,112,91,157,91,162,91,167,91,197,91,7,0,2,91,52,91,92,91,147,91,182,91,212,91,217,91,4,0,57,91,142,91,222,91,247,91,4,0,127,91,172,91,192,91,252,91,6,0,17,91,42,91,132,91,11,92,36,92,150,58,8,0,37,91,207,91,232,91,242,91,1,92,6,92,26,92,31,92,8,0,58,126,88,126,124,126,172,126,178,126,238,126,60,127,78,127,8,0,54,154,70,126,100,126,78,154,142,126,230,110,232,126,36,127,9,0,40,126,94,126,112,126,130,126,190,126,208,126,236,110,42,127,206,107,8,0,148,126,160,126,214,126,244,126,6,127,54,136,126,154,24,127,5,0,28,126,40,108,106,126,90,154,96,154,9,0,60,154,46,126,52,126,218,110,136,126,184,126,202,126,242,110,12,127,8,0,64,126,82,126,118,126,154,126,2,107,250,126,0,127,90,127,5,0,76,126,196,126,220,126,66,127,96,127,5,0,10,126,224,110,48,127,54,127,72,127,4,0,22,126,72,154,18,127,84,127,4,0,34,126,46,108,166,126,30,127,2,0,16,126,226,126,14,0,222,154,248,110,114,127,120,127,126,127,52,108,132,127,138,127,144,127,30,112,180,127,186,127,192,127,198,127,10,0,216,154,102,127,108,127,150,127,156,127,162,127,168,127,174,127,36,109,204,127,9,0,73,60,78,60,128,70,83,60,93,60,101,42,106,42,111,42,116,42,6,0,68,60,23,70,88,60,108,60,79,39,34,39,13,0,48,60,53,60,58,60,63,60,49,39,133,70,98,60,103,60,184,39,113,60,118,60,240,43,123,60,3,0,1,62,16,62,166,42,3,0,6,62,21,62,171,42,3,0,11,62,229,39,26,62,3,0,161,42,36,62,176,42,2,0,31,62,181,42,4,0,174,130,70,111,216,130,246,160,5,0,114,130,120,130,180,130,44,131,62,131,7,0,78,130,84,130,204,160,38,131,240,160,8,107,140,131,6,0,60,130,216,160,222,160,228,160,234,130,104,131,6,0,54,130,66,130,126,130,52,111,64,111,20,131,4,0,88,108,40,111,26,131,92,131,6,0,102,130,168,130,210,130,32,131,94,108,128,131,4,0,90,130,134,131,36,112,146,131,4,0,198,160,210,160,2,131,8,131,7,0,138,130,46,111,144,130,150,130,162,130,80,131,86,131,3,0,198,130,14,131,66,109,5,0,42,130,48,130,156,130,110,131,116,131,4,0,204,130,228,130,98,131,122,131,6,0,36,130,72,130,96,130,58,111,186,130,252,130,5,0,108,130,132,130,192,130,56,131,68,131,5,0,222,130,240,130,246,130,50,131,74,131,5,0,50,98,55,98,60,98,65,98,70,98,7,0,186,97,191,97,196,97,201,97,206,97,211,97,216,97,26,0,46,171,52,171,58,171,64,171,70,171,76,171,82,171,88,171,94,171,100,171,106,171,112,171,118,171,124,171,130,171,136,171,142,171,148,171,154,171,160,171,166,171,172,171,178,171,184,171,190,171,196,171,37,0,202,171,208,171,214,171,220,171,226,171,232,171,238,171,244,171,250,171,0,172,6,172,12,172,18,172,24,172,30,172,36,172,42,172,48,172,54,172,60,172,66,172,72,172,78,172,84,172,90,172,96,172,102,172,108,172,114,172,12,136,18,136,62,113,24,136,30,136,120,172,126,172,132,172,37,0,138,172,144,172,150,172,156,172,162,172,168,172,174,172,180,172,186,172,192,172,198,172,204,172,210,172,216,172,222,172,228,172,234,172,240,172,246,172,68,113,252,172,2,173,8,173,14,173,20,173,26,173,32,173,74,113,38,173,44,173,50,173,80,113,56,173,36,136,62,173,42,136,68,173,35,0,74,173,80,173,86,173,92,173,98,173,104,173,110,173,116,173,122,173,128,173,134,173,140,173,146,173,86,113,152,173,158,173,92,113,98,113,104,113,164,173,170,173,176,173,182,173,188,173,194,173,200,173,206,173,48,136,212,173,110,113,218,173,224,173,230,173,116,113,236,173,5,0,236,112,84,111,114,111,192,135,212,112,5,0,202,134,242,106,224,112,218,112,230,112,16,0,131,107,213,106,123,106,151,0,143,107,217,108,219,106,229,111,52,2,144,2,59,107,179,107,231,106,232,1,241,108,191,107,5,0,226,134,196,110,146,112,72,108,169,0,17,0,49,0,73,0,28,0,215,107,223,105,53,107,116,1,221,107,193,108,43,0,68,2,128,1,169,105,15,112,99,106,48,1,176,1,8,0,137,107,149,107,161,107,229,108,225,106,167,107,173,107,185,107,22,0,52,0,31,0,39,106,10,0,241,111,163,105,160,1,165,106,63,106,171,106,199,105,0,2,75,106,201,106,220,1,95,107,108,2,229,105,157,105,196,1,21,106,111,106,9,0,13,0,55,0,173,212,85,0,72,1,81,106,144,1,154,0,100,2,9,0,117,106,96,1,228,1,64,2,141,106,72,2,129,106,81,109,184,1,5,0,41,107,71,107,15,106,101,107,145,105,4,0,104,109,98,109,28,107,92,109,5,0,205,111,76,1,160,0,132,2,154,205,28,0,121,108,127,108,103,0,139,108,145,0,109,0,145,108,223,108,115,0,47,107,155,107,157,108,128,2,76,0,159,106,181,108,247,111,187,108,12,2,163,0,253,111,235,108,199,108,21,112,113,107,125,107,211,108,41,219,8,0,52,1,147,106,124,0,172,1,244,1,60,2,75,109,175,0,9,0,136,1,168,1,112,0,121,105,56,1,152,1,77,107,156,1,151,105,11,0,48,2,4,0,127,0,32,2,252,1,69,106,7,0,93,106,84,1,227,107,200,1,17,0,180,1,88,2,164,1,64,1,163,108,148,1,92,1,104,1,133,0,4,2,9,106,68,1,247,105,217,105,76,2,224,1,64,0,6,0,133,108,151,108,217,111,120,2,3,112,183,106,5,0,45,106,136,0,189,106,89,107,105,106,8,0,51,106,118,0,65,107,88,0,140,2,177,106,195,106,40,2,10,0,100,0,211,111,83,107,208,1,9,112,205,108,107,107,119,107,140,1,207,106,5,0,95,3,198,135,242,112,102,135,0,111,5,0,36,2,94,0,212,1,40,0,97,0,18,0,70,0,56,2,188,1,106,0,253,105,58,0,153,106,37,0,79,0,82,0,236,1,240,1,166,0,91,0,248,1,61,0,22,0,67,0,4,0,216,135,222,135,210,135,66,108,10,0,25,0,216,1,19,0,34,0,84,2,100,1,80,1,36,1,88,1,120,1,16,0,235,111,169,108,175,108,142,0,3,106,108,1,211,105,80,2,139,105,57,106,121,0,124,1,132,1,46,0,87,106,44,2,9,0,193,105,205,105,235,105,133,105,181,105,192,1,241,105,130,0,175,105,5,0,139,0,212,2,181,0,223,111,116,2,3,0,148,2,184,0,216,2,2,0,54,135,106,113,2,0,148,0,136,2,2,0,112,2,24,2,2,0,20,2,16,2,2,0,152,2,157,0,3,0,104,109,98,109,28,107,4,0,242,106,224,112,218,112,230,112,3,0,98,109,28,107,92,109,27,0,193,105,205,105,253,105,19,0,133,105,3,106,108,1,64,1,211,105,181,105,148,1,92,1,34,0,57,106,104,1,124,1,241,105,132,1,9,106,175,105,100,1,247,105,87,106,217,105,88,1,25,0,80,1,19,0,193,105,205,105,253,105,133,105,108,1,64,1,211,105,181,105,148,1,57,106,104,1,124,1,241,105,132,1,9,106,175,105,247,105,217,105,88,1,193,0,180,1,70,0,136,1,121,108,88,2,56,2,117,106,131,107,193,105,133,108,188,1,164,1,139,108,168,1,205,105,49,0,25,0,106,0,52,0,73,0,48,2,213,106,123,106,145,108,112,0,41,107,216,1,137,107,76,1,96,1,228,1,64,2,235,105,28,0,143,107,141,106,52,1,217,108,149,107,223,108,215,107,253,105,19,0,133,105,31,0,3,106,47,107,155,107,13,0,219,106,108,1,55,0,39,106,64,1,10,0,211,105,45,106,51,106,181,105,72,2,139,105,157,108,58,0,223,105,53,107,116,1,129,106,148,1,161,107,221,107,59,107,229,108,92,1,76,0,34,0,4,0,57,106,153,106,121,105,37,0,56,1,121,0,104,1,159,106,79,0,124,0,163,105,212,1,127,0,65,107,160,1,181,108,172,1,244,1,82,0,40,0,32,2,236,1,187,108,192,1,152,1,193,108,71,107,124,1,241,105,132,1,85,0,72,1,130,0,84,2,133,0,165,106,88,0,4,2,43,0,252,1,60,2,68,2,9,106,63,106,77,107,225,106,171,106,69,106,199,105,15,106,128,1,169,105,167,107,175,105,46,0,177,106,156,1,183,106,240,1,173,107,179,107,189,106,7,0,151,105,100,1,247,105,195,106,231,106,91,0,80,1,68,1,36,1,75,106,248,1,89,107,201,106,81,106,87,106,93,106,217,105,88,1,99,106,76,2,48,1,220,1,232,1,95,107,81,109,185,107,61,0,101,107,184,1,176,1,84,1,94,0,227,107,36,2,144,1,107,107,22,0,113,107,119,107,229,105,120,1,157,105,154,205,241,108,97,0,125,107,191,107,200,1,105,106,207,106,67,0,145,105,21,106,111,106,2,0,2,39,138,178,4,0,2,39,138,178,28,1,1,0,2,0,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,2,39,28,1,1,0,138,178,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,3,0,138,178,2,39,1,0,2,0,2,39,1,0,2,0,2,39,1,0,4,0,2,39,138,178,1,0,28,1,2,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,2,0,241,23,249,23,2,39,2,39,3,0,2,39,1,0,138,178,3,0,2,39,1,0,138,178,4,0,138,178,28,1,2,39,1,0,3,0,138,178,1,0,2,39,2,0,2,39,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,4,0,138,178,1,0,28,1,2,39,2,0,2,39,138,178,2,0,2,39,1,0,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,28,1,1,0,138,178,2,39,4,0,2,39,1,0,138,178,28,1,2,0,241,23,249,23,2,39,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,138,178,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,1,0,2,39,3,0,2,39,138,178,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,1,0,28,1,3,0,2,39,138,178,1,0,4,0,2,39,1,0,28,1,138,178,4,0,138,178,2,39,1,0,28,1,2,0,241,23,249,23,2,39,2,39,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,2,39,28,1,1,0,2,0,241,23,249,23,2,39,2,39,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,138,178,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,1,0,28,1,4,0,2,39,1,0,138,178,28,1,2,0,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,1,0,28,1,2,39,2,0,138,178,2,39,4,0,2,39,1,0,138,178,28,1,4,0,1,0,28,1,138,178,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,138,178,2,0,2,39,1,0,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,3,0,2,39,1,0,138,178,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,138,178,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,2,0,2,39,1,0,4,0,2,39,1,0,138,178,28,1,4,0,138,178,2,39,28,1,1,0,4,0,2,39,138,178,1,0,28,1,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,2,0,2,39,138,178,4,0,2,39,138,178,1,0,28,1,2,0,241,23,249,23,2,39,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,4,0,138,178,1,0,28,1,2,39,2,0,1,0,2,39,2,0,241,23,249,23,2,39,2,39,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,1,0,28,1,2,39,3,0,2,39,156,70,138,178,4,0,1,0,28,1,2,39,138,178,4,0,2,39,138,178,1,0,28,1,4,0,1,0,138,178,2,39,28,1,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,138,178,28,1,2,39,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,2,39,1,0,28,1,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,2,39,28,1,1,0,138,178,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,3,0,2,39,1,0,138,178,4,0,2,39,138,178,1,0,28,1,4,0,138,178,28,1,2,39,1,0,2,0,138,178,2,39,4,0,2,39,138,178,28,1,1,0,3,0,2,39,138,178,1,0,4,0,2,39,1,0,28,1,138,178,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,2,0,2,39,1,0,2,0,2,39,138,178,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,241,23,249,23,2,39,2,39,4,0,1,0,28,1,2,39,138,178,4,0,2,39,138,178,28,1,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,2,39,138,178,28,1,1,0,2,0,2,39,138,178,2,0,2,39,138,178,2,0,2,39,138,178,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,28,1,1,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,2,39,1,0,28,1,2,0,2,39,1,0,2,0,241,23,249,23,2,39,2,39,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,1,0,28,1,2,0,2,39,1,0,2,0,2,39,138,178,3,0,2,39,138,178,1,0,4,0,2,39,138,178,28,1,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,2,39,1,0,28,1,4,0,2,39,1,0,138,178,28,1,3,0,2,39,138,178,1,0,2,0,138,178,2,39,4,0,138,178,1,0,28,1,2,39,3,0,138,178,1,0,2,39,2,0,2,39,138,178,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,1,0,28,1,2,39,2,0,2,39,1,0,2,0,138,178,2,39,4,0,2,39,138,178,1,0,28,1,4,0,138,178,1,0,28,1,2,39,2,0,2,39,1,0,2,0,2,39,1,0,3,0,2,39,1,0,138,178,2,0,241,23,249,23,2,39,2,39,2,0,2,39,138,178,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,3,0,2,39,138,178,1,0,4,0,138,178,1,0,28,1,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,2,0,2,39,1,0,2,0,241,23,249,23,2,39,2,39,2,0,241,23,249,23,2,39,2,39,4,0,138,178,28,1,2,39,1,0,3,0,2,39,138,178,1,0,3,0,2,39,138,178,1,0,2,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,28,1,1,0,4,0,138,178,1,0,28,1,2,39,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,3,0,138,178,2,39,1,0,3,0,2,39,138,178,1,0,2,0,2,39,1,0,2,0,2,39,138,178,2,0,2,39,138,178,4,0,2,39,1,0,28,1,138,178,2,0,2,39,138,178,4,0,138,178,1,0,28,1,2,39,2,0,138,178,2,39,2,0,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,1,0,28,1,138,178,2,39,4,0,1,0,28,1,2,39,138,178,3,0,2,39,1,0,138,178,4,0,1,0,28,1,2,39,138,178,4,0,138,178,28,1,2,39,1,0,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,3,0,2,39,1,0,138,178,3,0,2,39,138,178,1,0,4,0,138,178,28,1,2,39,1,0,4,0,138,178,2,39,1,0,28,1,4,0,138,178,28,1,2,39,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,138,178,2,0,138,178,2,39,2,0,2,39,1,0,2,0,138,178,2,39,3,0,2,39,1,0,138,178,4,0,138,178,1,0,28,1,2,39,2,0,2,39,1,0,4,0,2,39,138,178,28,1,1,0,4,0,138,178,28,1,2,39,1,0,2,0,2,39,138,178,4,0,2,39,138,178,1,0,28,1,4,0,138,178,1,0,28,1,2,39,3,0,2,39,138,178,1,0,4,0,138,178,28,1,2,39,1,0,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,4,0,2,39,138,178,1,0,28,1,3,0,2,39,138,178,1,0,3,0,2,39,138,178,1,0,4,0,1,0,28,1,138,178,2,39,3,0,1,0,138,178,2,39,3,0,2,39,138,178,1,0,3,0,2,39,138,178,1,0,3,0,1,0,138,178,2,39,3,0,1,0,138,178,2,39,4,0,1,0,28,1,138,178,2,39,4,0,1,0,28,1,138,178,2,39,4,0,1,0,138,178,28,1,2,39,3,0,1,0,138,178,2,39,4,0,2,39,1,0,28,1,138,178,3,0,135,205,125,208,22,206,2,0,124,205,22,206,2,0,124,205,22,206,2,0,125,208,22,206,3,0,135,205,22,206,125,208,2,0,135,205,22,206,2,0,124,205,22,206,2,0,124,205,22,206,2,0,124,205,22,206,2,0,124,205,22,206,3,0,135,205,22,206,125,208,2,0,124,205,22,206,2,0,135,205,22,206,2,0,124,205,22,206,2,0,22,206,135,205,2,0,22,206,125,208,3,0,124,205,135,205,22,206,2,0,124,205,22,206,2,0,22,206,125,208,3,0,124,205,22,206,125,208,2,0,22,206,125,208,3,0,135,205,22,206,125,208,2,0,135,205,22,206,2,0,135,205,22,206,2,0,22,206,124,205,3,0,22,206,135,205,124,205,2,0,124,205,22,206,4,0,22,206,125,208,135,205,124,205,2,0,124,205,22,206,2,0,22,206,125,208,2,0,124,205,22,206,3,0,22,206,135,205,124,205,3,0,124,205,22,206,125,208,2,0,22,206,124,205,4,0,22,206,124,205,125,208,135,205,3,0,124,205,22,206,125,208,3,0,135,205,124,205,22,206,3,0,124,205,22,206,125,208,3,0,22,206,135,205,124,205,2,0,22,206,125,208,3,0,135,205,22,206,125,208,2,0,125,208,22,206,2,0,125,208,22,206,2,0,22,206,125,208,2,0,124,205,22,206,4,0,22,206,125,208,135,205,124,205,2,0,22,206,125,208,3,0,124,205,22,206,125,208,3,0,22,206,125,208,124,205,2,0,124,205,22,206,3,0,22,206,125,208,124,205,2,0,124,205,22,206,4,0,22,206,124,205,125,208,135,205,2,0,22,206,125,208,3,0,135,205,22,206,125,208,2,0,22,206,125,208,3,0,124,205,22,206,125,208,3,0,135,205,22,206,125,208,3,0,124,205,135,205,22,206,2,0,124,205,125,208,3,0,0,0,226,253,255,255,1,0,0,0,1,0,0,0,1,0,59,0,129,161,0,224,1,0,70,2,133,161,0,32,2,0,54,0,65,0,170,170,135,161,0,32,68,205,0,96,3,0,0,0,180,245,255,255,1,0,0,0,1,0,0,0,1,0,59,0,141,161,0,224,1,0,70,2,145,161,0,32,2,0,54,0,65,0,170,170,147,161,0,32,64,205,0,96,3,0,0,0,28,1,0,0,8,0,0,0,28,0,0,0,1,0,87,0,153,161,0,224,3,0,0,0,28,1,0,0,8,0,0,0,29,0,0,0,1,0,59,0,159,161,0,224,2,0,70,2,209,19,170,170,157,161,0,32,163,161,0,32,2,0,54,0,65,0,170,170,165,161,0,32,40,129,0,96,3,0,0,0,228,246,255,255,1,0,0,0,1,0,0,0,1,0,59,0,173,161,0,224,1,0,70,2,177,161,0,32,2,0,54,0,65,0,170,170,179,161,0,32,64,205,0,96,3,0,0,0,8,0,0,0,8,0,0,0,28,0,0,0,1,0,87,0,185,161,0,224,3,0,0,0,8,0,0,0,8,0,0,0,29,0,0,0,1,0,59,0,191,161,0,224,2,0,70,2,209,19,170,170,189,161,0,32,195,161,0,32,2,0,54,0,65,0,170,170,197,161,0,32,40,129,0,96,3,0,0,0,140,234,255,255,8,0,0,0,29,0,0,0,1,0,87,0,205,161,0,224,1,0,70,2,209,161,0,32,1,0,54,0,211,161,0,32,3,0,0,0,0,0,0,0,12,0,0,0,31,0,0,0,1,0,87,0,215,161,0,224,3,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,59,0,221,161,0,224,2,0,70,2,209,19,170,170,219,161,0,32,225,161,0,32,2,0,54,0,65,0,170,170,227,161,0,32,68,205,0,96,3,0,0,0,80,241,255,255,10,0,0,0,7,0,0,0,1,0,59,0,235,161,0,224,1,0,70,2,239,161,0,32,2,0,54,0,65,0,170,170,241,161,0,32,64,205,0,96,3,0,0,0,79,0,0,0,1,0,0,0,1,0,0,0,1,0,59,0,247,161,0,224,1,0,70,2,251,161,0,32,1,0,54,0,253,161,0,32,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,1,162,0,224,1,0,70,2,5,162,0,32,2,0,54,0,65,0,170,170,7,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,16,0,0,0,1,0,59,0,13,162,0,224,1,0,70,2,17,162,0,32,2,0,54,0,65,0,170,170,19,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,25,162,0,224,1,0,70,2,29,162,0,32,2,0,54,0,65,0,170,170,31,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,37,162,0,224,1,0,70,2,41,162,0,32,2,0,54,0,65,0,170,170,43,162,0,32,24,106,0,96,3,0,0,0,110,2,0,0,7,0,0,0,15,0,0,0,1,0,59,0,49,162,0,224,1,0,70,2,53,162,0,32,2,0,54,0,65,0,170,170,55,162,0,32,24,106,0,96,3,0,0,0,133,2,0,0,6,0,0,0,19,0,0,0,1,0,59,0,61,162,0,224,3,0,0,0,138,2,0,0,2,0,0,0,15,0,0,0,1,0,59,0,67,162,0,224,3,0,0,0,217,2,0,0,8,0,0,0,5,0,0,0,1,0,59,0,73,162,0,224,3,0,0,0,145,4,0,0,4,0,0,0,8,0,0,0,1,0,59,0,79,162,0,224,3,0,0,0,147,4,0,0,4,0,0,0,21,0,0,0,1,0,59,0,85,162,0,224,3,0,0,0,151,4,0,0,7,0,0,0,28,0,0,0,1,0,59,0,91,162,0,224,3,0,0,0,153,4,0,0,8,0,0,0,4,0,0,0,1,0,59,0,97,162,0,224,3,0,0,0,157,4,0,0,7,0,0,0,14,0,0,0,1,0,59,0,103,162,0,224,3,0,0,0,158,4,0,0,5,0,0,0,27,0,0,0,1,0,59,0,109,162,0,224,3,0,0,0,160,4,0,0,4,0,0,0,16,0,0,0,1,0,59,0,115,162,0,224,3,0,0,0,161,4,0,0,8,0,0,0,14,0,0,0,1,0,59,0,121,162,0,224,3,0,0,0,166,4,0,0,4,0,0,0,11,0,0,0,1,0,59,0,127,162,0,224,3,0,0,0,175,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,133,162,0,224,3,0,0,0,237,2,0,0,4,0,0,0,14,0,0,0,1,0,59,0,139,162,0,224,3,0,0,0,177,4,0,0,2,0,0,0,13,0,0,0,1,0,59,0,145,162,0,224,3,0,0,0,180,4,0,0,2,0,0,0,20,0,0,0,1,0,59,0,151,162,0,224,3,0,0,0,182,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,157,162,0,224,3,0,0,0,183,4,0,0,10,0,0,0,25,0,0,0,1,0,59,0,163,162,0,224,3,0,0,0,187,4,0,0,3,0,0,0,9,0,0,0,1,0,59,0,169,162,0,224,3,0,0,0,189,4,0,0,12,0,0,0,6,0,0,0,1,0,59,0,175,162,0,224,3,0,0,0,195,4,0,0,4,0,0,0,12,0,0,0,1,0,59,0,181,162,0,224,3,0,0,0,198,4,0,0,4,0,0,0,13,0,0,0,1,0,59,0,187,162,0,224,3,0,0,0,200,4,0,0,11,0,0,0,20,0,0,0,1,0,59,0,193,162,0,224,3,0,0,0,201,4,0,0,4,0,0,0,20,0,0,0,1,0,59,0,199,162,0,224,3,0,0,0,237,2,0,0,7,0,0,0,2,0,0,0,1,0,59,0,205,162,0,224,3,0,0,0,203,4,0,0,12,0,0,0,10,0,0,0,1,0,59,0,211,162,0,224,3,0,0,0,205,4,0,0,3,0,0,0,5,0,0,0,1,0,59,0,217,162,0,224,3,0,0,0,208,4,0,0,4,0,0,0,2,0,0,0,1,0,59,0,223,162,0,224,3,0,0,0,209,4,0,0,4,0,0,0,15,0,0,0,1,0,59,0,229,162,0,224,3,0,0,0,210,4,0,0,11,0,0,0,5,0,0,0,1,0,59,0,235,162,0,224,3,0,0,0,211,4,0,0,9,0,0,0,19,0,0,0,1,0,59,0,241,162,0,224,3,0,0,0,214,4,0,0,11,0,0,0,23,0,0,0,1,0,59,0,247,162,0,224,3,0,0,0,215,4,0,0,2,0,0,0,7,0,0,0,1,0,59,0,253,162,0,224,3,0,0,0,216,4,0,0,7,0,0,0,16,0,0,0,1,0,59,0,3,163,0,224,3,0,0,0,219,4,0,0,2,0,0,0,26,0,0,0,1,0,59,0,9,163,0,224,3,0,0,0,245,2,0,0,8,0,0,0,18,0,0,0,1,0,59,0,15,163,0,224,3,0,0,0,223,4,0,0,2,0,0,0,28,0,0,0,1,0,59,0,21,163,0,224,3,0,0,0,225,4,0,0,3,0,0,0,18,0,0,0,1,0,59,0,27,163,0,224,3,0,0,0,232,4,0,0,10,0,0,0,5,0,0,0,1,0,59,0,33,163,0,224,3,0,0,0,233,4,0,0,3,0,0,0,14,0,0,0,1,0,59,0,39,163,0,224,3,0,0,0,235,4,0,0,3,0,0,0,26,0,0,0,1,0,59,0,45,163,0,224,3,0,0,0,236,4,0,0,4,0,0,0,13,0,0,0,1,0,59,0,51,163,0,224,3,0,0,0,237,4,0,0,2,0,0,0,20,0,0,0,1,0,59,0,57,163,0,224,3,0,0,0,240,4,0,0,2,0,0,0,28,0,0,0,1,0,59,0,63,163,0,224,3,0,0,0,251,4,0,0,4,0,0,0,25,0,0,0,1,0,59,0,69,163,0,224,3,0,0,0,254,4,0,0,2,0,0,0,29,0,0,0,1,0,59,0,75,163,0,224,3,0,0,0,253,2,0,0,1,0,0,0,7,0,0,0,1,0,59,0,81,163,0,224,3,0,0,0,8,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,87,163,0,224,3,0,0,0,13,5,0,0,8,0,0,0,5,0,0,0,1,0,59,0,93,163,0,224,3,0,0,0,19,5,0,0,4,0,0,0,25,0,0,0,1,0,59,0,99,163,0,224,3,0,0,0,22,5,0,0,11,0,0,0,21,0,0,0,1,0,59,0,105,163,0,224,3,0,0,0,23,5,0,0,8,0,0,0,5,0,0,0,1,0,59,0,111,163,0,224,3,0,0,0,26,5,0,0,12,0,0,0,14,0,0,0,1,0,59,0,117,163,0,224,3,0,0,0,28,5,0,0,10,0,0,0,9,0,0,0,1,0,59,0,123,163,0,224,3,0,0,0,31,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,129,163,0,224,3,0,0,0,32,5,0,0,3,0,0,0,20,0,0,0,1,0,59,0,135,163,0,224,3,0,0,0,37,5,0,0,2,0,0,0,3,0,0,0,1,0,59,0,141,163,0,224,3,0,0,0,255,2,0,0,8,0,0,0,16,0,0,0,1,0,59,0,147,163,0,224,3,0,0,0,39,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,153,163,0,224,3,0,0,0,41,5,0,0,2,0,0,0,23,0,0,0,1,0,59,0,159,163,0,224,3,0,0,0,44,5,0,0,12,0,0,0,9,0,0,0,1,0,59,0,165,163,0,224,3,0,0,0,46,5,0,0,4,0,0,0,26,0,0,0,1,0,59,0,171,163,0,224,3,0,0,0,49,5,0,0,8,0,0,0,29,0,0,0,1,0,59,0,177,163,0,224,3,0,0,0,51,5,0,0,8,0,0,0,9,0,0,0,1,0,59,0,183,163,0,224,3,0,0,0,54,5,0,0,1,0,0,0,29,0,0,0,1,0,59,0,189,163,0,224,3,0,0,0,56,5,0,0,2,0,0,0,29,0,0,0,1,0,59,0,195,163,0,224,3,0,0,0,60,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,201,163,0,224,3,0,0,0,66,5,0,0,12,0,0,0,8,0,0,0,1,0,59,0,207,163,0,224,3,0,0,0,2,3,0,0,10,0,0,0,1,0,0,0,1,0,59,0,213,163,0,224,3,0,0,0,90,5,0,0,7,0,0,0,24,0,0,0,1,0,59,0,219,163,0,224,3,0,0,0,92,5,0,0,4,0,0,0,1,0,0,0,1,0,59,0,225,163,0,224,3,0,0,0,95,5,0,0,5,0,0,0,27,0,0,0,1,0,59,0,231,163,0,224,3,0,0,0,99,5,0,0,3,0,0,0,22,0,0,0,1,0,59,0,237,163,0,224,3,0,0,0,101,5,0,0,2,0,0,0,10,0,0,0,1,0,59,0,243,163,0,224,3,0,0,0,104,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,249,163,0,224,3,0,0,0,107,5,0,0,8,0,0,0,22,0,0,0,1,0,59,0,255,163,0,224,3,0,0,0,107,5,0,0,8,0,0,0,23,0,0,0,1,0,59,0,5,164,0,224,3,0,0,0,109,5,0,0,2,0,0,0,9,0,0,0,1,0,59,0,11,164,0,224,3,0,0,0,110,5,0,0,3,0,0,0,26,0,0,0,1,0,59,0,17,164,0,224,3,0,0,0,13,3,0,0,1,0,0,0,1,0,0,0,1,0,59,0,23,164,0,224,3,0,0,0,114,5,0,0,7,0,0,0,5,0,0,0,1,0,59,0,29,164,0,224,3,0,0,0,148,5,0,0,4,0,0,0,27,0,0,0,1,0,59,0,35,164,0,224,3,0,0,0,149,5,0,0,9,0,0,0,5,0,0,0,1,0,59,0,41,164,0,224,3,0,0,0,161,5,0,0,2,0,0,0,17,0,0,0,1,0,59,0,47,164,0,224,3,0,0,0,164,5,0,0,2,0,0,0,5,0,0,0,1,0,59,0,53,164,0,224,3,0,0,0,169,5,0,0,7,0,0,0,28,0,0,0,1,0,59,0,59,164,0,224,3,0,0,0,172,5,0,0,7,0,0,0,25,0,0,0,1,0,59,0,65,164,0,224,3,0,0,0,175,5,0,0,7,0,0,0,25,0,0,0,1,0,59,0,71,164,0,224,3,0,0,0,177,5,0,0,9,0,0,0,28,0,0,0,1,0,59,0,77,164,0,224,3,0,0,0,180,5,0,0,12,0,0,0,21,0,0,0,1,0,59,0,83,164,0,224,3,0,0,0,14,3,0,0,8,0,0,0,19,0,0,0,1,0,59,0,89,164,0,224,3,0,0,0,186,5,0,0,2,0,0,0,28,0,0,0,1,0,59,0,95,164,0,224,3,0,0,0,187,5,0,0,3,0,0,0,3,0,0,0,1,0,59,0,101,164,0,224,3,0,0,0,189,5,0,0,4,0,0,0,28,0,0,0,1,0,59,0,107,164,0,224,3,0,0,0,207,5,0,0,7,0,0,0,29,0,0,0,1,0,59,0,113,164,0,224,3,0,0,0,209,5,0,0,8,0,0,0,21,0,0,0,1,0,59,0,119,164,0,224,3,0,0,0,212,5,0,0,7,0,0,0,19,0,0,0,1,0,59,0,125,164,0,224,3,0,0,0,221,5,0,0,2,0,0,0,29,0,0,0,1,0,59,0,131,164,0,224,3,0,0,0,224,5,0,0,2,0,0,0,30,0,0,0,1,0,59,0,137,164,0,224,3,0,0,0,241,5,0,0,8,0,0,0,23,0,0,0,1,0,59,0,143,164,0,224,3,0,0,0,248,5,0,0,8,0,0,0,20,0,0,0,1,0,59,0,149,164,0,224,3,0,0,0,38,3,0,0,5,0,0,0,18,0,0,0,1,0,59,0,155,164,0,224,3,0,0,0,252,5,0,0,7,0,0,0,29,0,0,0,1,0,59,0,161,164,0,224,3,0,0,0,19,6,0,0,10,0,0,0,23,0,0,0,1,0,59,0,167,164,0,224,3,0,0,0,22,6,0,0,2,0,0,0,28,0,0,0,1,0,59,0,173,164,0,224,3,0,0,0,34,6,0,0,4,0,0,0,23,0,0,0,1,0,59,0,179,164,0,224,3,0,0,0,37,6,0,0,7,0,0,0,28,0,0,0,1,0,59,0,185,164,0,224,3,0,0,0,56,6,0,0,12,0,0,0,8,0,0,0,1,0,59,0,191,164,0,224,3,0,0,0,60,6,0,0,10,0,0,0,27,0,0,0,1,0,59,0,197,164,0,224,3,0,0,0,79,6,0,0,7,0,0,0,13,0,0,0,1,0,59,0,203,164,0,224,3,0,0,0,88,6,0,0,2,0,0,0,30,0,0,0,1,0,59,0,209,164,0,224,3,0,0,0,108,6,0,0,12,0,0,0,16,0,0,0,1,0,59,0,215,164,0,224,3,0,0,0,160,2,0,0,1,0,0,0,1,0,0,0,1,0,59,0,221,164,0,224,3,0,0,0,42,3,0,0,9,0,0,0,19,0,0,0,1,0,59,0,227,164,0,224,3,0,0,0,112,6,0,0,2,0,0,0,15,0,0,0,1,0,59,0,233,164,0,224,3,0,0,0,116,6,0,0,9,0,0,0,18,0,0,0,1,0,59,0,239,164,0,224,3,0,0,0,119,6,0,0,4,0,0,0,13,0,0,0,1,0,59,0,245,164,0,224,3,0,0,0,122,6,0,0,7,0,0,0,23,0,0,0,1,0,59,0,251,164,0,224,3,0,0,0,125,6,0,0,4,0,0,0,25,0,0,0,1,0,59,0,1,165,0,224,3,0,0,0,137,6,0,0,9,0,0,0,21,0,0,0,1,0,59,0,7,165,0,224,3,0,0,0,145,6,0,0,9,0,0,0,29,0,0,0,1,0,59,0,13,165,0,224,3,0,0,0,148,6,0,0,2,0,0,0,21,0,0,0,1,0,59,0,19,165,0,224,3,0,0,0,152,6,0,0,9,0,0,0,30,0,0,0,1,0,59,0,25,165,0,224,3,0,0,0,168,6,0,0,3,0,0,0,13,0,0,0,1,0,59,0,31,165,0,224,3,0,0,0,56,3,0,0,1,0,0,0,5,0,0,0,1,0,59,0,37,165,0,224,3,0,0,0,175,6,0,0,4,0,0,0,25,0,0,0,1,0,59,0,43,165,0,224,3,0,0,0,180,6,0,0,6,0,0,0,22,0,0,0,1,0,59,0,49,165,0,224,3,0,0,0,200,6,0,0,4,0,0,0,28,0,0,0,1,0,59,0,55,165,0,224,3,0,0,0,205,6,0,0,2,0,0,0,27,0,0,0,1,0,59,0,61,165,0,224,3,0,0,0,208,6,0,0,2,0,0,0,21,0,0,0,1,0,59,0,67,165,0,224,3,0,0,0,212,6,0,0,7,0,0,0,12,0,0,0,1,0,59,0,73,165,0,224,3,0,0,0,215,6,0,0,10,0,0,0,27,0,0,0,1,0,59,0,79,165,0,224,3,0,0,0,228,6,0,0,6,0,0,0,2,0,0,0,1,0,59,0,85,165,0,224,3,0,0,0,236,6,0,0,11,0,0,0,16,0,0,0,1,0,59,0,91,165,0,224,3,0,0,0,245,6,0,0,4,0,0,0,2,0,0,0,1,0,59,0,97,165,0,224,3,0,0,0,66,3,0,0,1,0,0,0,3,0,0,0,1,0,59,0,103,165,0,224,3,0,0,0,253,6,0,0,1,0,0,0,25,0,0,0,1,0,59,0,109,165,0,224,3,0,0,0,9,7,0,0,2,0,0,0,5,0,0,0,1,0,59,0,115,165,0,224,3,0,0,0,12,7,0,0,2,0,0,0,11,0,0,0,1,0,59,0,121,165,0,224,3,0,0,0,26,7,0,0,4,0,0,0,22,0,0,0,1,0,59,0,127,165,0,224,3,0,0,0,38,7,0,0,12,0,0,0,10,0,0,0,1,0,59,0,133,165,0,224,3,0,0,0,52,7,0,0,12,0,0,0,2,0,0,0,1,0,59,0,139,165,0,224,3,0,0,0,56,7,0,0,2,0,0,0,28,0,0,0,1,0,59,0,145,165,0,224,3,0,0,0,62,7,0,0,11,0,0,0,27,0,0,0,1,0,59,0,151,165,0,224,3,0,0,0,68,7,0,0,3,0,0,0,18,0,0,0,1,0,59,0,157,165,0,224,3,0,0,0,69,7,0,0,2,0,0,0,19,0,0,0,1,0,59,0,163,165,0,224,3,0,0,0,80,3,0,0,6,0,0,0,13,0,0,0,1,0,59,0,169,165,0,224,3,0,0,0,72,7,0,0,2,0,0,0,20,0,0,0,1,0,59,0,175,165,0,224,3,0,0,0,73,7,0,0,4,0,0,0,7,0,0,0,1,0,59,0,181,165,0,224,3,0,0,0,76,7,0,0,9,0,0,0,8,0,0,0,1,0,59,0,187,165,0,224,3,0,0,0,120,7,0,0,7,0,0,0,30,0,0,0,1,0,59,0,193,165,0,224,3,0,0,0,134,7,0,0,12,0,0,0,25,0,0,0,1,0,59,0,199,165,0,224,3,0,0,0,197,7,0,0,1,0,0,0,8,0,0,0,1,0,59,0,205,165,0,224,3,0,0,0,227,7,0,0,5,0,0,0,1,0,0,0,1,0,59,0,211,165,0,224,3,0,0,0,83,3,0,0,4,0,0,0,28,0,0,0,1,0,59,0,217,165,0,224,3,0,0,0,86,3,0,0,11,0,0,0,30,0,0,0,1,0,59,0,223,165,0,224,3,0,0,0,89,3,0,0,2,0,0,0,21,0,0,0,1,0,59,0,229,165,0,224,3,0,0,0,91,3,0,0,4,0,0,0,15,0,0,0,1,0,59,0,235,165,0,224,3,0,0,0,109,3,0,0,4,0,0,0,16,0,0,0,1,0,59,0,241,165,0,224,3,0,0,0,117,3,0,0,2,0,0,0,21,0,0,0,1,0,59,0,247,165,0,224,3,0,0,0,174,2,0,0,7,0,0,0,20,0,0,0,1,0,59,0,253,165,0,224,3,0,0,0,121,3,0,0,4,0,0,0,27,0,0,0,1,0,59,0,3,166,0,224,3,0,0,0,130,3,0,0,4,0,0,0,26,0,0,0,1,0,59,0,9,166,0,224,3,0,0,0,133,3,0,0,7,0,0,0,15,0,0,0,1,0,59,0,15,166,0,224,3,0,0,0,155,3,0,0,4,0,0,0,11,0,0,0,1,0,59,0,21,166,0,224,3,0,0,0,163,3,0,0,4,0,0,0,26,0,0,0,1,0,59,0,27,166,0,224,3,0,0,0,170,3,0,0,5,0,0,0,22,0,0,0,1,0,59,0,33,166,0,224,3,0,0,0,179,3,0,0,4,0,0,0,22,0,0,0,1,0,59,0,39,166,0,224,3,0,0,0,189,3,0,0,10,0,0,0,27,0,0,0,1,0,59,0,45,166,0,224,3,0,0,0,193,3,0,0,2,0,0,0,16,0,0,0,1,0,59,0,51,166,0,224,3,0,0,0,196,3,0,0,7,0,0,0,10,0,0,0,1,0,59,0,57,166,0,224,3,0,0,0,189,2,0,0,3,0,0,0,21,0,0,0,1,0,59,0,63,166,0,224,3,0,0,0,200,3,0,0,8,0,0,0,13,0,0,0,1,0,59,0,69,166,0,224,3,0,0,0,202,3,0,0,3,0,0,0,25,0,0,0,1,0,59,0,75,166,0,224,3,0,0,0,205,3,0,0,12,0,0,0,20,0,0,0,1,0,59,0,81,166,0,224,3,0,0,0,208,3,0,0,7,0,0,0,13,0,0,0,1,0,59,0,87,166,0,224,3,0,0,0,210,3,0,0,11,0,0,0,29,0,0,0,1,0,59,0,93,166,0,224,3,0,0,0,215,3,0,0,4,0,0,0,15,0,0,0,1,0,59,0,99,166,0,224,3,0,0,0,217,3,0,0,4,0,0,0,27,0,0,0,1,0,59,0,105,166,0,224,3,0,0,0,219,3,0,0,4,0,0,0,5,0,0,0,1,0,59,0,111,166,0,224,3,0,0,0,221,3,0,0,8,0,0,0,8,0,0,0,1,0,59,0,117,166,0,224,3,0,0,0,222,3,0,0,11,0,0,0,7,0,0,0,1,0,59,0,123,166,0,224,3,0,0,0,192,2,0,0,5,0,0,0,10,0,0,0,1,0,59,0,129,166,0,224,3,0,0,0,227,3,0,0,2,0,0,0,22,0,0,0,1,0,59,0,135,166,0,224,3,0,0,0,231,3,0,0,1,0,0,0,13,0,0,0,1,0,59,0,141,166,0,224,3,0,0,0,236,3,0,0,7,0,0,0,20,0,0,0,1,0,59,0,147,166,0,224,3,0,0,0,244,3,0,0,12,0,0,0,25,0,0,0,1,0,59,0,153,166,0,224,3,0,0,0,249,3,0,0,4,0,0,0,23,0,0,0,1,0,59,0,159,166,0,224,3,0,0,0,253,3,0,0,2,0,0,0,2,0,0,0,1,0,59,0,165,166,0,224,3,0,0,0,0,4,0,0,7,0,0,0,13,0,0,0,1,0,59,0,171,166,0,224,3,0,0,0,4,4,0,0,7,0,0,0,25,0,0,0,1,0,59,0,177,166,0,224,3,0,0,0,13,4,0,0,4,0,0,0,21,0,0,0,1,0,59,0,183,166,0,224,3,0,0,0,16,4,0,0,11,0,0,0,10,0,0,0,1,0,59,0,189,166,0,224,3,0,0,0,196,2,0,0,1,0,0,0,11,0,0,0,1,0,59,0,195,166,0,224,3,0,0,0,20,4,0,0,11,0,0,0,24,0,0,0,1,0,59,0,201,166,0,224,3,0,0,0,22,4,0,0,4,0,0,0,14,0,0,0,1,0,59,0,207,166,0,224,3,0,0,0,29,4,0,0,1,0,0,0,11,0,0,0,1,0,59,0,213,166,0,224,3,0,0,0,34,4,0,0,8,0,0,0,29,0,0,0,1,0,59,0,219,166,0,224,3,0,0,0,41,4,0,0,8,0,0,0,2,0,0,0,1,0,59,0,225,166,0,224,3,0,0,0,45,4,0,0,4,0,0,0,13,0,0,0,1,0,59,0,231,166,0,224,3,0,0,0,50,4,0,0,8,0,0,0,23,0,0,0,1,0,59,0,237,166,0,224,3,0,0,0,53,4,0,0,11,0,0,0,17,0,0,0,1,0,59,0,243,166,0,224,3,0,0,0,57,4,0,0,2,0,0,0,10,0,0,0,1,0,59,0,249,166,0,224,3,0,0,0,60,4,0,0,2,0,0,0,7,0,0,0,1,0,59,0,255,166,0,224,3,0,0,0,203,2,0,0,9,0,0,0,2,0,0,0,1,0,59,0,5,167,0,224,3,0,0,0,63,4,0,0,4,0,0,0,7,0,0,0,1,0,59,0,11,167,0,224,3,0,0,0,70,4,0,0,12,0,0,0,15,0,0,0,1,0,59,0,17,167,0,224,3,0,0,0,72,4,0,0,12,0,0,0,17,0,0,0,1,0,59,0,23,167,0,224,3,0,0,0,73,4,0,0,11,0,0,0,21,0,0,0,1,0,59,0,29,167,0,224,3,0,0,0,75,4,0,0,8,0,0,0,28,0,0,0,1,0,59,0,35,167,0,224,3,0,0,0,80,4,0,0,2,0,0,0,10,0,0,0,1,0,59,0,41,167,0,224,3,0,0,0,82,4,0,0,4,0,0,0,9,0,0,0,1,0,59,0,47,167,0,224,3,0,0,0,84,4,0,0,8,0,0,0,3,0,0,0,1,0,59,0,53,167,0,224,3,0,0,0,86,4,0,0,7,0,0,0,13,0,0,0,1,0,59,0,59,167,0,224,3,0,0,0,89,4,0,0,7,0,0,0,13,0,0,0,1,0,59,0,65,167,0,224,3,0,0,0,205,2,0,0,11,0,0,0,17,0,0,0,1,0,59,0,71,167,0,224,3,0,0,0,94,4,0,0,4,0,0,0,3,0,0,0,1,0,59,0,77,167,0,224,3,0,0,0,96,4,0,0,4,0,0,0,10,0,0,0,1,0,59,0,83,167,0,224,3,0,0,0,100,4,0,0,4,0,0,0,3,0,0,0,1,0,59,0,89,167,0,224,3,0,0,0,102,4,0,0,1,0,0,0,22,0,0,0,1,0,59,0,95,167,0,224,3,0,0,0,107,4,0,0,1,0,0,0,29,0,0,0,1,0,59,0,101,167,0,224,3,0,0,0,108,4,0,0,8,0,0,0,11,0,0,0,1,0,59,0,107,167,0,224,3,0,0,0,111,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,113,167,0,224,3,0,0,0,117,4,0,0,7,0,0,0,10,0,0,0,1,0,59,0,119,167,0,224,3,0,0,0,118,4,0,0,4,0,0,0,28,0,0,0,1,0,59,0,125,167,0,224,3,0,0,0,120,4,0,0,2,0,0,0,23,0,0,0,1,0,59,0,131,167,0,224,3,0,0,0,212,2,0,0,2,0,0,0,4,0,0,0,1,0,59,0,137,167,0,224,3,0,0,0,121,4,0,0,7,0,0,0,22,0,0,0,1,0,59,0,143,167,0,224,3,0,0,0,127,4,0,0,1,0,0,0,26,0,0,0,1,0,59,0,149,167,0,224,3,0,0,0,130,4,0,0,10,0,0,0,28,0,0,0,1,0,59,0,155,167,0,224,3,0,0,0,132,4,0,0,4,0,0,0,27,0,0,0,1,0,59,0,161,167,0,224,3,0,0,0,135,4,0,0,4,0,0,0,20,0,0,0,1,0,59,0,167,167,0,224,3,0,0,0,136,4,0,0,1,0,0,0,10,0,0,0,1,0,59,0,173,167,0,224,3,0,0,0,137,4,0,0,9,0,0,0,4,0,0,0,1,0,59,0,179,167,0,224,3,0,0,0,139,4,0,0,3,0,0,0,29,0,0,0,1,0,59,0,185,167,0,224,3,0,0,0,141,4,0,0,6,0,0,0,5,0,0,0,1,0,59,0,191,167,0,224,3,0,0,0,142,4,0,0,8,0,0,0,27,0,0,0,1,0,59,0,197,167,0,224,237,0,70,2,209,19,58,21,224,0,228,0,232,0,236,0,240,0,244,0,248,0,252,0,0,1,4,1,63,21,8,1,12,1,16,1,20,1,24,1,28,1,32,1,36,1,40,1,44,1,68,21,48,1,52,1,56,1,60,1,64,1,68,1,72,1,76,1,80,1,84,1,73,21,88,1,92,1,96,1,100,1,104,1,108,1,112,1,116,1,120,1,124,1,78,21,128,1,132,1,136,1,140,1,144,1,148,1,152,1,156,1,160,1,164,1,83,21,101,15,168,1,172,1,176,1,180,1,184,1,188,1,192,1,196,1,200,1,173,2,204,1,208,1,212,1,216,1,220,1,224,1,228,1,232,1,236,1,240,1,177,2,244,1,248,1,252,1,0,2,4,2,8,2,12,2,16,2,20,2,24,2,181,2,28,2,32,2,36,2,40,2,44,2,48,2,52,2,56,2,60,2,64,2,115,15,68,2,72,2,76,2,80,2,84,2,88,2,92,2,96,2,100,2,104,2,213,19,224,17,108,2,112,2,116,2,120,2,124,2,128,2,132,2,136,2,140,2,144,2,241,19,148,2,152,2,156,2,160,2,164,2,168,2,172,2,176,2,180,2,184,2,197,2,188,2,192,2,196,2,200,2,204,2,208,2,212,2,216,2,220,2,224,2,201,2,228,2,232,2,236,2,240,2,244,2,248,2,252,2,205,2,246,19,213,2,217,2,221,2,225,2,217,19,229,2,229,17,234,17,33,18,0,20,43,18,5,20,53,18,58,18,63,18,221,19,68,18,239,17,244,17,141,1,145,1,15,20,153,1,157,1,161,1,165,1,225,19,98,18,249,17,254,17,3,18,181,1,25,20,108,18,30,20,197,1,201,1,229,19,113,18,209,1,35,20,8,18,13,18,40,20,229,1,45,20,123,18,241,1,233,19,245,1,18,18,23,18,1,2,133,18,55,20,13,2,60,20,65,20,138,18,237,19,28,18,143,18,70,20,41,2,148,18,49,2,53,2,153,18,75,20,65,2,120,20,69,2,73,2,77,2,81,2,85,2,89,2,93,2,97,2,101,2,105,2,65,162,0,32,71,162,0,32,77,162,0,32,83,162,0,32,89,162,0,32,95,162,0,32,101,162,0,32,107,162,0,32,113,162,0,32,119,162,0,32,125,162,0,32,131,162,0,32,137,162,0,32,143,162,0,32,149,162,0,32,155,162,0,32,161,162,0,32,167,162,0,32,173,162,0,32,179,162,0,32,185,162,0,32,191,162,0,32,197,162,0,32,203,162,0,32,209,162,0,32,215,162,0,32,221,162,0,32,227,162,0,32,233,162,0,32,239,162,0,32,245,162,0,32,251,162,0,32,1,163,0,32,7,163,0,32,13,163,0,32,19,163,0,32,25,163,0,32,31,163,0,32,37,163,0,32,43,163,0,32,49,163,0,32,55,163,0,32,61,163,0,32,67,163,0,32,73,163,0,32,79,163,0,32,85,163,0,32,91,163,0,32,97,163,0,32,103,163,0,32,109,163,0,32,115,163,0,32,121,163,0,32,127,163,0,32,133,163,0,32,139,163,0,32,145,163,0,32,151,163,0,32,157,163,0,32,163,163,0,32,169,163,0,32,175,163,0,32,181,163,0,32,187,163,0,32,193,163,0,32,199,163,0,32,205,163,0,32,211,163,0,32,217,163,0,32,223,163,0,32,229,163,0,32,235,163,0,32,241,163,0,32,247,163,0,32,253,163,0,32,3,164,0,32,9,164,0,32,15,164,0,32,21,164,0,32,27,164,0,32,33,164,0,32,39,164,0,32,45,164,0,32,51,164,0,32,57,164,0,32,63,164,0,32,69,164,0,32,75,164,0,32,81,164,0,32,87,164,0,32,93,164,0,32,99,164,0,32,105,164,0,32,111,164,0,32,117,164,0,32,123,164,0,32,129,164,0,32,135,164,0,32,141,164,0,32,147,164,0,32,153,164,0,32,159,164,0,32,165,164,0,32,171,164,0,32,177,164,0,32,183,164,0,32,189,164,0,32,195,164,0,32,201,164,0,32,207,164,0,32,213,164,0,32,219,164,0,32,225,164,0,32,231,164,0,32,237,164,0,32,243,164,0,32,249,164,0,32,255,164,0,32,5,165,0,32,11,165,0,32,17,165,0,32,23,165,0,32,29,165,0,32,35,165,0,32,41,165,0,32,47,165,0,32,53,165,0,32,59,165,0,32,65,165,0,32,71,165,0,32,77,165,0,32,83,165,0,32,89,165,0,32,95,165,0,32,101,165,0,32,107,165,0,32,113,165,0,32,119,165,0,32,125,165,0,32,131,165,0,32,137,165,0,32,143,165,0,32,149,165,0,32,155,165,0,32,161,165,0,32,167,165,0,32,173,165,0,32,179,165,0,32,185,165,0,32,191,165,0,32,197,165,0,32,203,165,0,32,209,165,0,32,215,165,0,32,221,165,0,32,227,165,0,32,233,165,0,32,239,165,0,32,245,165,0,32,251,165,0,32,1,166,0,32,7,166,0,32,13,166,0,32,19,166,0,32,25,166,0,32,31,166,0,32,37,166,0,32,43,166,0,32,49,166,0,32,55,166,0,32,61,166,0,32,67,166,0,32,73,166,0,32,79,166,0,32,85,166,0,32,91,166,0,32,97,166,0,32,103,166,0,32,109,166,0,32,115,166,0,32,121,166,0,32,127,166,0,32,133,166,0,32,139,166,0,32,145,166,0,32,151,166,0,32,157,166,0,32,163,166,0,32,169,166,0,32,175,166,0,32,181,166,0,32,187,166,0,32,193,166,0,32,199,166,0,32,205,166,0,32,211,166,0,32,217,166,0,32,223,166,0,32,229,166,0,32,235,166,0,32,241,166,0,32,247,166,0,32,253,166,0,32,3,167,0,32,9,167,0,32,15,167,0,32,21,167,0,32,27,167,0,32,33,167,0,32,39,167,0,32,45,167,0,32,51,167,0,32,57,167,0,32,63,167,0,32,69,167,0,32,75,167,0,32,81,167,0,32,87,167,0,32,93,167,0,32,99,167,0,32,105,167,0,32,111,167,0,32,117,167,0,32,123,167,0,32,129,167,0,32,135,167,0,32,141,167,0,32,147,167,0,32,153,167,0,32,159,167,0,32,165,167,0,32,171,167,0,32,177,167,0,32,183,167,0,32,189,167,0,32,195,167,0,32,201,167,0,32,2,0,54,0,65,0,170,170,203,167,0,32,68,205,0,96,3,0,0,0,110,2,0,0,1,0,0,0,1,0,0,0,1,0,59,0,51,169,0,224,1,0,70,2,55,169,0,32,2,0,54,0,65,0,170,170,57,169,0,32,68,205,0,96,3,0,0,0,119,7,0,0,12,0,0,0,31,0,0,0,1,0,87,0,63,169,0,224,3,0,0,0,120,7,0,0,1,0,0,0,1,0,0,0,1,0,59,0,69,169,0,224,2,0,70,2,209,19,170,170,67,169,0,32,73,169,0,32,1,0,54,0,75,169,0,32,17,0,45,0,72,0,80,0,91,0,97,0,106,0,126,0,136,0,143,0,150,0,158,0,172,0,185,0,198,0,215,0,0,3,8,3,137,161,0,32,149,161,0,32,169,161,0,32,181,161,0,32,201,161,0,32,213,161,0,32,231,161,0,32,243,161,0,32,255,161,0,32,9,162,0,32,21,162,0,32,33,162,0,32,45,162,0,32,57,162,0,32,47,169,0,32,59,169,0,32,79,169,0,32,52,0,12,24,35,3,38,3,41,3,44,3,47,3,50,3,53,3,56,3,59,3,62,3,65,3,68,3,71,3,74,3,143,15,77,3,80,3,73,24,83,3,86,3,89,3,92,3,95,3,98,3,101,3,104,3,107,3,110,3,113,3,116,3,119,3,122,3,125,3,128,3,131,3,134,3,137,3,140,3,143,3,146,3,149,3,152,3,155,3,158,3,161,3,164,3,167,3,188,24,170,3,173,3,176,3,170,170,22,221,0,144,24,221,0,144,30,221,0,144,36,221,0,144,40,221,0,144,44,221,0,144,49,221,0,144,55,221,0,144,58,221,0,144,61,221,0,144,66,221,0,144,71,221,0,144,77,221,0,144,82,221,0,144,87,221,0,144,90,221,0,144,93,221,0,144,98,221,0,144,104,221,0,144,107,221,0,144,112,221,0,144,118,221,0,144,123,221,0,144,126,221,0,144,131,221,0,144,134,221,0,144,140,221,0,144,145,221,0,144,150,221,0,144,155,221,0,144,158,221,0,144,163,221,0,144,167,221,0,144,172,221,0,144,177,221,0,144,182,221,0,144,187,221,0,144,192,221,0,144,198,221,0,144,203,221,0,144,208,221,0,144,211,221,0,144,216,221,0,144,221,221,0,144,224,221,0,144,228,221,0,144,232,221,0,144,237,221,0,144,241,221,0,144,245,221,0,144,249,221,0,144,253,221,0,144,47,1,0,0,2,222,0,144,6,222,0,144,10,222,0,144,14,222,0,144,18,222,0,144,22,222,0,144,26,222,0,144,30,222,0,144,34,222,0,144,38,222,0,144,42,222,0,144,46,222,0,144,50,222,0,144,54,222,0,144,58,222,0,144,62,222,0,144,66,222,0,144,70,222,0,144,74,222,0,144,78,222,0,144,82,222,0,144,86,222,0,144,90,222,0,144,94,222,0,144,98,222,0,144,102,222,0,144,106,222,0,144,110,222,0,144,114,222,0,144,118,222,0,144,122,222,0,144,126,222,0,144,130,222,0,144,134,222,0,144,138,222,0,144,142,222,0,144,146,222,0,144,150,222,0,144,154,222,0,144,158,222,0,144,162,222,0,144,166,222,0,144,170,222,0,144,174,222,0,144,178,222,0,144,182,222,0,144,186,222,0,144,190,222,0,144,194,222,0,144,198,222,0,144,202,222,0,144,206,222,0,144,210,222,0,144,214,222,0,144,218,222,0,144,222,222,0,144,226,222,0,144,230,222,0,144,234,222,0,144,238,222,0,144,242,222,0,144,246,222,0,144,250,222,0,144,254,222,0,144,2,223,0,144,6,223,0,144,10,223,0,144,14,223,0,144,18,223,0,144,22,223,0,144,26,223,0,144,30,223,0,144,34,223,0,144,38,223,0,144,42,223,0,144,46,223,0,144,50,223,0,144,54,223,0,144,58,223,0,144,62,223,0,144,66,223,0,144,70,223,0,144,74,223,0,144,78,223,0,144,82,223,0,144,86,223,0,144,90,223,0,144,94,223,0,144,98,223,0,144,102,223,0,144,106,223,0,144,110,223,0,144,114,223,0,144,118,223,0,144,122,223,0,144,126,223,0,144,130,223,0,144,134,223,0,144,138,223,0,144,142,223,0,144,146,223,0,144,150,223,0,144,154,223,0,144,158,223,0,144,162,223,0,144,166,223,0,144,170,223,0,144,174,223,0,144,178,223,0,144,182,223,0,144,186,223,0,144,190,223,0,144,194,223,0,144,198,223,0,144,202,223,0,144,206,223,0,144,210,223,0,144,214,223,0,144,218,223,0,144,222,223,0,144,226,223,0,144,230,223,0,144,234,223,0,144,238,223,0,144,242,223,0,144,246,223,0,144,250,223,0,144,254,223,0,144,2,224,0,144,6,224,0,144,10,224,0,144,14,224,0,144,18,224,0,144,22,224,0,144,26,224,0,144,30,224,0,144,34,224,0,144,38,224,0,144,42,224,0,144,46,224,0,144,50,224,0,144,54,224,0,144,58,224,0,144,62,224,0,144,66,224,0,144,70,224,0,144,74,224,0,144,78,224,0,144,82,224,0,144,86,224,0,144,90,224,0,144,94,224,0,144,98,224,0,144,102,224,0,144,106,224,0,144,110,224,0,144,114,224,0,144,118,224,0,144,122,224,0,144,126,224,0,144,130,224,0,144,134,224,0,144,138,224,0,144,142,224,0,144,146,224,0,144,150,224,0,144,154,224,0,144,158,224,0,144,162,224,0,144,166,224,0,144,170,224,0,144,174,224,0,144,178,224,0,144,182,224,0,144,186,224,0,144,190,224,0,144,194,224,0,144,198,224,0,144,202,224,0,144,206,224,0,144,210,224,0,144,214,224,0,144,218,224,0,144,222,224,0,144,226,224,0,144,230,224,0,144,234,224,0,144,238,224,0,144,242,224,0,144,246,224,0,144,250,224,0,144,254,224,0,144,2,225,0,144,6,225,0,144,10,225,0,144,14,225,0,144,18,225,0,144,22,225,0,144,26,225,0,144,30,225,0,144,34,225,0,144,38,225,0,144,42,225,0,144,46,225,0,144,50,225,0,144,54,225,0,144,58,225,0,144,62,225,0,144,66,225,0,144,70,225,0,144,74,225,0,144,78,225,0,144,82,225,0,144,86,225,0,144,90,225,0,144,94,225,0,144,98,225,0,144,102,225,0,144,106,225,0,144,110,225,0,144,114,225,0,144,118,225,0,144,122,225,0,144,126,225,0,144,130,225,0,144,134,225,0,144,138,225,0,144,142,225,0,144,146,225,0,144,150,225,0,144,154,225,0,144,158,225,0,144,162,225,0,144,166,225,0,144,170,225,0,144,174,225,0,144,178,225,0,144,182,225,0,144,186,225,0,144,190,225,0,144,194,225,0,144,198,225,0,144,202,225,0,144,206,225,0,144,210,225,0,144,214,225,0,144,218,225,0,144,222,225,0,144,226,225,0,144,230,225,0,144,234,225,0,144,238,225,0,144,242,225,0,144,246,225,0,144,250,225,0,144,254,225,0,144,2,226,0,144,6,226,0,144,10,226,0,144,14,226,0,144,18,226,0,144,22,226,0,144,26,226,0,144,30,226,0,144,34,226,0,144,38,226,0,144,42,226,0,144,46,226,0,144,50,226,0,144,54,226,0,144,58,226,0,144,62,226,0,144,66,226,0,144,70,226,0,144,74,226,0,144,78,226,0,144,82,226,0,144,86,226,0,144,90,226,0,144,94,226,0,144,98,226,0,144,102,226,0,144,106,226,0,144,110,226,0,144,114,226,0,144,118,226,0,144,122,226,0,144,126,226,0,144,130,226,0,144,134,226,0,144,138,226,0,144,142,226,0,144,146,226,0,144,150,226,0,144,154,226,0,144,158,226,0,144,162,226,0,144,166,226,0,144,170,226,0,144,174,226,0,144,178,226,0,144,182,226,0,144,186,226,0,144,183,0,0,0,190,226,0,144,193,226,0,144,196,226,0,144,199,226,0,144,202,226,0,144,205,226,0,144,208,226,0,144,211,226,0,144,214,226,0,144,217,226,0,144,220,226,0,144,223,226,0,144,226,226,0,144,229,226,0,144,232,226,0,144,235,226,0,144,238,226,0,144,241,226,0,144,244,226,0,144,247,226,0,144,250,226,0,144,253,226,0,144,0,227,0,144,3,227,0,144,6,227,0,144,9,227,0,144,12,227,0,144,15,227,0,144,18,227,0,144,21,227,0,144,24,227,0,144,27,227,0,144,30,227,0,144,33,227,0,144,36,227,0,144,39,227,0,144,42,227,0,144,45,227,0,144,48,227,0,144,51,227,0,144,54,227,0,144,57,227,0,144,60,227,0,144,63,227,0,144,66,227,0,144,69,227,0,144,72,227,0,144,75,227,0,144,78,227,0,144,81,227,0,144,84,227,0,144,87,227,0,144,90,227,0,144,93,227,0,144,96,227,0,144,99,227,0,144,102,227,0,144,105,227,0,144,108,227,0,144,111,227,0,144,114,227,0,144,117,227,0,144,120,227,0,144,123,227,0,144,126,227,0,144,129,227,0,144,132,227,0,144,135,227,0,144,138,227,0,144,141,227,0,144,144,227,0,144,147,227,0,144,150,227,0,144,153,227,0,144,156,227,0,144,159,227,0,144,162,227,0,144,165,227,0,144,168,227,0,144,171,227,0,144,174,227,0,144,177,227,0,144,180,227,0,144,183,227,0,144,186,227,0,144,189,227,0,144,192,227,0,144,195,227,0,144,198,227,0,144,201,227,0,144,204,227,0,144,207,227,0,144,210,227,0,144,213,227,0,144,216,227,0,144,219,227,0,144,222,227,0,144,225,227,0,144,228,227,0,144,231,227,0,144,234,227,0,144,237,227,0,144,240,227,0,144,243,227,0,144,246,227,0,144,249,227,0,144,252,227,0,144,255,227,0,144,2,228,0,144,5,228,0,144,8,228,0,144,11,228,0,144,14,228,0,144,17,228,0,144,20,228,0,144,23,228,0,144,26,228,0,144,29,228,0,144,32,228,0,144,35,228,0,144,38,228,0,144,41,228,0,144,44,228,0,144,47,228,0,144,50,228,0,144,53,228,0,144,56,228,0,144,59,228,0,144,62,228,0,144,65,228,0,144,68,228,0,144,71,228,0,144,74,228,0,144,77,228,0,144,80,228,0,144,83,228,0,144,86,228,0,144,89,228,0,144,92,228,0,144,95,228,0,144,98,228,0,144,101,228,0,144,104,228,0,144,107,228,0,144,110,228,0,144,113,228,0,144,116,228,0,144,119,228,0,144,122,228,0,144,125,228,0,144,128,228,0,144,131,228,0,144,134,228,0,144,137,228,0,144,140,228,0,144,143,228,0,144,146,228,0,144,149,228,0,144,152,228,0,144,155,228,0,144,158,228,0,144,161,228,0,144,164,228,0,144,167,228,0,144,170,228,0,144,173,228,0,144,176,228,0,144,179,228,0,144,182,228,0,144,185,228,0,144,188,228,0,144,191,228,0,144,194,228,0,144,197,228,0,144,200,228,0,144,203,228,0,144,206,228,0,144,209,228,0,144,212,228,0,144,215,228,0,144,218,228,0,144,221,228,0,144,224,228,0,144,3,0,245,3,0,4,8,4,227,228,0,144,111,229,0,144,95,2,0,96,6,0,245,3,25,4,0,4,37,4,46,4,8,4,170,170,12,230,0,144,31,231,0,144,47,231,0,144,89,241,0,144,96,241,0,144,164,205,0,96,7,0,245,3,54,4,25,4,0,4,37,4,46,4,8,4,100,241,0,144,113,241,0,144,138,241,0,144,141,241,0,144,6,242,0,144,81,72,0,96,224,2,0,96,6,0,245,3,25,4,0,4,37,4,46,4,8,4,170,170,1,72,0,96,11,242,0,144,14,242,0,144,179,242,0,144,183,242,0,144,136,72,0,96,3,0,245,3,0,4,8,4,193,242,0,144,244,243,0,144,216,255,0,144,2,0,245,3,0,4,170,170,217,0,1,144,228,0,1,144,2,0,245,3,0,4,170,170,164,1,1,144,168,1,1,144,7,0,236,3,16,4,59,4,66,4,73,4,85,4,157,24,162,171,0,32,167,171,0,32,177,171,0,32,188,171,0,32,198,171,0,32,203,171,0,32,207,171,0,32,1,0,129,4,19,2,1,144,2,0,103,4,119,4,170,170,16,2,1,80,222,171,0,32,2,0,103,4,119,4,170,170,22,2,1,80,25,2,1,80,1,0,103,4,28,2,1,80,2,0,103,4,119,4,170,170,31,2,1,80,34,2,1,80,2,0,103,4,119,4,170,170,37,2,1,80,40,2,1,80,2,0,103,4,119,4,170,170,43,2,1,80,46,2,1,80,1,0,103,4,49,2,1,80,2,0,103,4,119,4,170,170,52,2,1,80,55,2,1,80,1,0,119,4,58,2,1,80,2,0,103,4,119,4,170,170,61,2,1,80,64,2,1,80,1,0,129,4,70,2,1,144,2,0,103,4,119,4,170,170,67,2,1,80,2,172,0,32,1,0,103,4,73,2,1,80,2,0,103,4,119,4,170,170,76,2,1,80,79,2,1,80,1,0,111,4,82,2,1,144,1,0,119,4,14,172,0,32,2,0,103,4,119,4,170,170,85,2,1,80,88,2,1,80,1,0,119,4,91,2,1,80,1,0,103,4,94,2,1,80,1,0,103,4,97,2,1,80,2,0,103,4,119,4,170,170,100,2,1,80,103,2,1,80,1,0,103,4,106,2,1,80,1,0,103,4,109,2,1,80,1,0,103,4,114,2,1,80,1,0,103,4,117,2,1,80,1,0,119,4,120,2,1,80,1,0,103,4,123,2,1,80,1,0,103,4,126,2,1,80,1,0,103,4,129,2,1,80,2,0,111,4,129,4,170,170,210,195,0,96,132,2,1,144,2,0,111,4,129,4,170,170,74,39,0,96,159,2,1,144,2,0,103,4,119,4,170,170,48,172,0,32,52,172,0,32,1,0,111,4,162,2,1,144,1,0,119,4,60,172,0,32,1,0,103,4,166,2,1,80,1,0,103,4,169,2,1,80,1,0,103,4,172,2,1,80,2,0,103,4,119,4,170,170,175,2,1,80,178,2,1,80,2,0,103,4,119,4,170,170,181,2,1,80,184,2,1,80,1,0,119,4,187,2,1,80,2,0,103,4,119,4,170,170,190,2,1,80,193,2,1,80,2,0,103,4,119,4,170,170,196,2,1,80,199,2,1,80,2,0,103,4,119,4,170,170,202,2,1,80,205,2,1,80,1,0,103,4,208,2,1,80,2,0,103,4,119,4,170,170,211,2,1,80,214,2,1,80,1,0,103,4,217,2,1,80,2,0,103,4,119,4,170,170,220,2,1,80,223,2,1,80,1,0,119,4,226,2,1,80,2,0,103,4,119,4,170,170,229,2,1,80,232,2,1,80,1,0,103,4,235,2,1,80,2,0,111,4,129,4,170,170,240,2,1,144,188,1,0,96,1,0,129,4,244,2,1,144,2,0,103,4,119,4,170,170,112,172,0,32,116,172,0,32,2,0,103,4,119,4,170,170,248,2,1,80,251,2,1,80,2,0,111,4,129,4,170,170,194,195,0,96,1,3,1,144,2,0,103,4,119,4,170,170,254,2,1,80,126,172,0,32,2,0,103,4,119,4,170,170,4,3,1,80,7,3,1,80,1,0,103,4,12,3,1,80,1,0,129,4,18,3,1,144,2,0,103,4,119,4,170,170,15,3,1,80,140,172,0,32,1,0,103,4,21,3,1,80,1,0,103,4,24,3,1,80,2,0,103,4,119,4,170,170,27,3,1,80,30,3,1,80,1,0,103,4,35,3,1,80,2,0,103,4,119,4,170,170,38,3,1,80,41,3,1,80,1,0,103,4,44,3,1,80,2,0,103,4,119,4,170,170,49,3,1,80,52,3,1,80,2,0,103,4,119,4,170,170,55,3,1,80,58,3,1,80,2,0,103,4,119,4,170,170,61,3,1,80,64,3,1,80,1,0,103,4,67,3,1,80,1,0,103,4,70,3,1,80,1,0,103,4,73,3,1,80,2,0,103,4,119,4,170,170,76,3,1,80,79,3,1,80,1,0,103,4,82,3,1,80,1,0,103,4,85,3,1,80,2,0,103,4,119,4,170,170,90,3,1,80,93,3,1,80,2,0,103,4,119,4,170,170,96,3,1,80,99,3,1,80,1,0,103,4,102,3,1,80,2,0,103,4,119,4,170,170,105,3,1,80,108,3,1,80,2,0,103,4,119,4,170,170,111,3,1,80,114,3,1,80,1,0,129,4,120,3,1,144,2,0,103,4,119,4,170,170,117,3,1,80,206,172,0,32,1,0,103,4,124,3,1,80,2,0,103,4,119,4,170,170,129,3,1,80,132,3,1,80,2,0,103,4,119,4,170,170,135,3,1,80,138,3,1,80,2,0,103,4,119,4,170,170,141,3,1,80,144,3,1,80,2,0,103,4,119,4,170,170,147,3,1,80,150,3,1,80,1,0,119,4,153,3,1,80,1,0,103,4,156,3,1,80,2,0,103,4,119,4,170,170,159,3,1,80,162,3,1,80,1,0,103,4,165,3,1,80,1,0,103,4,168,3,1,80,1,0,111,4,171,3,1,144,2,0,103,4,119,4,170,170,242,172,0,32,174,3,1,80,1,0,103,4,177,3,1,80,2,0,103,4,119,4,170,170,180,3,1,80,185,3,1,80,2,0,103,4,119,4,170,170,188,3,1,80,191,3,1,80,1,0,103,4,194,3,1,80,2,0,103,4,119,4,170,170,197,3,1,80,200,3,1,80,1,0,103,4,203,3,1,80,1,0,103,4,206,3,1,80,1,0,103,4,209,3,1,80,2,0,103,4,119,4,170,170,212,3,1,80,215,3,1,80,2,0,103,4,119,4,170,170,220,3,1,80,223,3,1,80,2,0,111,4,129,4,170,170,226,3,1,144,164,1,0,96,1,0,103,4,22,173,0,32,1,0,119,4,229,3,1,80,1,0,103,4,232,3,1,80,1,0,103,4,235,3,1,80,1,0,103,4,238,3,1,80,1,0,103,4,241,3,1,80,2,0,103,4,119,4,170,170,244,3,1,80,247,3,1,80,2,0,103,4,119,4,170,170,250,3,1,80,253,3,1,80,2,0,103,4,119,4,170,170,2,4,1,80,5,4,1,80,1,0,103,4,8,4,1,80,1,0,103,4,11,4,1,80,1,0,103,4,14,4,1,80,1,0,103,4,17,4,1,80,1,0,103,4,20,4,1,80,2,0,103,4,119,4,170,170,23,4,1,80,28,4,1,80,1,0,103,4,31,4,1,80,1,0,103,4,34,4,1,80,1,0,103,4,37,4,1,80,1,0,103,4,40,4,1,80,1,0,111,4,43,4,1,144,1,0,103,4,72,173,0,32,2,0,103,4,119,4,170,170,46,4,1,80,49,4,1,80,2,0,103,4,119,4,170,170,52,4,1,80,55,4,1,80,2,0,103,4,119,4,170,170,58,4,1,80,61,4,1,80,1,0,103,4,64,4,1,80,2,0,103,4,119,4,170,170,69,4,1,80,72,4,1,80,1,0,103,4,75,4,1,80,1,0,119,4,78,4,1,80,1,0,103,4,81,4,1,80,2,0,103,4,119,4,170,170,84,4,1,80,87,4,1,80,1,0,103,4,92,4,1,80,1,0,103,4,95,4,1,80,1,0,103,4,98,4,1,80,2,0,103,4,119,4,170,170,101,4,1,80,104,4,1,80,2,0,103,4,119,4,170,170,107,4,1,80,110,4,1,80,1,0,103,4,113,4,1,80,1,0,129,4,119,4,1,144,2,0,103,4,119,4,170,170,116,4,1,80,120,173,0,32,1,0,103,4,122,4,1,80,1,0,103,4,125,4,1,80,1,0,103,4,128,4,1,80,1,0,111,4,131,4,1,144,1,0,119,4,132,173,0,32,1,0,103,4,135,4,1,80,1,0,111,4,138,4,1,144,2,0,103,4,119,4,170,170,138,173,0,32,141,4,1,80,1,0,103,4,144,4,1,80,1,0,103,4,147,4,1,80,2,0,103,4,119,4,170,170,150,4,1,80,153,4,1,80,1,0,103,4,156,4,1,80,2,0,103,4,119,4,170,170,159,4,1,80,162,4,1,80,1,0,103,4,165,4,1,80,2,0,103,4,119,4,170,170,168,4,1,80,171,4,1,80,2,0,103,4,119,4,170,170,174,4,1,80,179,4,1,80,1,0,119,4,182,4,1,80,1,0,103,4,187,4,1,80,1,0,103,4,190,4,1,80,1,0,119,4,193,4,1,80,2,0,103,4,119,4,170,170,196,4,1,80,199,4,1,80,2,0,103,4,119,4,170,170,202,4,1,80,205,4,1,80,2,0,103,4,119,4,170,170,208,4,1,80,213,4,1,80,1,0,103,4,216,4,1,80,1,0,103,4,219,4,1,80,1,0,103,4,222,4,1,80,2,0,103,4,119,4,170,170,225,4,1,80,228,4,1,80,2,0,111,4,129,4,170,170,194,195,0,96,231,4,1,144,2,0,111,4,129,4,170,170,94,39,0,96,238,4,1,144,2,0,103,4,119,4,170,170,198,173,0,32,202,173,0,32,1,0,103,4,252,4,1,80,2,0,103,4,119,4,170,170,255,4,1,80,2,5,1,80,2,0,103,4,119,4,170,170,7,5,1,80,10,5,1,80,1,0,103,4,13,5,1,80,2,0,103,4,119,4,170,170,16,5,1,80,19,5,1,80,1,0,103,4,22,5,1,80,2,0,103,4,119,4,170,170,25,5,1,80,28,5,1,80,2,0,111,4,129,4,170,170,34,5,1,144,121,105,0,96,2,0,103,4,119,4,170,170,31,5,1,80,232,173,0,32,1,0,103,4,37,5,1,80,1,0,103,4,40,5,1,80,1,0,103,4,43,5,1,80,1,0,103,4,46,5,1,80,1,0,103,4,49,5,1,80,1,0,119,4,52,5,1,80,1,0,103,4,55,5,1,80,2,0,103,4,119,4,170,170,60,5,1,80,63,5,1,80,2,0,103,4,119,4,170,170,68,5,1,80,71,5,1,80,1,0,103,4,74,5,1,80,1,0,103,4,79,5,1,80,1,0,129,4,85,5,1,144,2,0,103,4,119,4,170,170,82,5,1,80,10,174,0,32,2,0,103,4,119,4,170,170,88,5,1,80,91,5,1,80,1,0,103,4,94,5,1,80,1,0,119,4,97,5,1,80,1,0,103,4,100,5,1,80,1,0,103,4,103,5,1,80,2,0,111,4,129,4,170,170,54,39,0,96,106,5,1,144,1,0,103,4,28,174,0,32,2,0,111,4,129,4,170,170,194,195,0,96,109,5,1,144,2,0,111,4,129,4,170,170,199,5,1,144,202,5,1,144,2,0,103,4,119,4,170,170,34,174,0,32,38,174,0,32,1,0,119,4,253,5,1,80,1,0,103,4,0,6,1,80,2,0,111,4,129,4,170,170,194,195,0,96,3,6,1,144,1,0,129,4,27,6,1,144,2,0,103,4,119,4,170,170,50,174,0,32,54,174,0,32,1,0,103,4,38,6,1,80,1,0,103,4,41,6,1,80,1,0,111,4,46,6,1,144,1,0,119,4,64,174,0,32,2,0,103,4,119,4,170,170,49,6,1,80,52,6,1,80,1,0,103,4,55,6,1,80,1,0,103,4,58,6,1,80,1,0,103,4,61,6,1,80,2,0,111,4,129,4,170,170,210,195,0,96,64,6,1,144,2,0,103,4,119,4,170,170,78,174,0,32,67,6,1,80,2,0,103,4,119,4,170,170,70,6,1,80,73,6,1,80,1,0,119,4,76,6,1,80,2,0,111,4,129,4,170,170,210,196,0,96,82,6,1,144,2,0,103,4,119,4,170,170,79,6,1,80,92,174,0,32,2,0,103,4,119,4,170,170,85,6,1,80,88,6,1,80,1,0,129,4,96,6,1,144,2,0,103,4,119,4,170,170,91,6,1,80,104,174,0,32,1,0,103,4,99,6,1,80,2,0,103,4,119,4,170,170,102,6,1,80,107,6,1,80,1,0,103,4,112,6,1,80,1,0,103,4,115,6,1,80,1,0,103,4,120,6,1,80,2,0,103,4,119,4,170,170,125,6,1,80,128,6,1,80,2,0,111,4,129,4,170,170,194,195,0,96,131,6,1,144,2,0,111,4,129,4,170,170,134,44,0,96,177,6,1,144,2,0,103,4,119,4,170,170,126,174,0,32,130,174,0,32,1,0,103,4,186,6,1,80,1,0,119,4,189,6,1,80,1,0,119,4,192,6,1,80,1,0,103,4,195,6,1,80,2,0,103,4,119,4,170,170,198,6,1,80,201,6,1,80,1,0,103,4,204,6,1,80,2,0,103,4,119,4,170,170,207,6,1,80,210,6,1,80,2,0,103,4,119,4,170,170,213,6,1,80,216,6,1,80,1,0,103,4,219,6,1,80,2,0,103,4,119,4,170,170,222,6,1,80,225,6,1,80,2,0,103,4,119,4,170,170,228,6,1,80,231,6,1,80,2,0,103,4,119,4,170,170,234,6,1,80,237,6,1,80,2,0,103,4,119,4,170,170,240,6,1,80,245,6,1,80,2,0,103,4,119,4,170,170,248,6,1,80,251,6,1,80,2,0,103,4,119,4,170,170,254,6,1,80,1,7,1,80,2,0,103,4,119,4,170,170,4,7,1,80,7,7,1,80,1,0,103,4,10,7,1,80,1,0,103,4,13,7,1,80,2,0,103,4,119,4,170,170,16,7,1,80,19,7,1,80,1,0,103,4,22,7,1,80,2,0,103,4,119,4,170,170,25,7,1,80,28,7,1,80,2,0,103,4,119,4,170,170,31,7,1,80,34,7,1,80,1,0,119,4,37,7,1,80,1,0,103,4,40,7,1,80,1,0,103,4,45,7,1,80,1,0,103,4,48,7,1,80,2,0,103,4,119,4,170,170,51,7,1,80,54,7,1,80,1,0,103,4,57,7,1,80,2,0,103,4,119,4,170,170,60,7,1,80,63,7,1,80,1,0,119,4,66,7,1,80,1,0,103,4,69,7,1,80,1,0,119,4,74,7,1,80,2,0,103,4,119,4,170,170,77,7,1,80,80,7,1,80,1,0,111,4,83,7,1,144,2,0,103,4,119,4,170,170,236,174,0,32,86,7,1,80,2,0,103,4,119,4,170,170,89,7,1,80,92,7,1,80,1,0,103,4,95,7,1,80,1,0,119,4,98,7,1,80,1,0,103,4,101,7,1,80,1,0,111,4,104,7,1,144,1,0,119,4,252,174,0,32,1,0,103,4,108,7,1,80,2,0,111,4,129,4,170,170,194,195,0,96,111,7,1,144,2,0,103,4,119,4,170,170,2,175,0,32,114,7,1,80,1,0,129,4,120,7,1,144,2,0,103,4,119,4,170,170,117,7,1,80,10,175,0,32,1,0,103,4,123,7,1,80,1,0,103,4,126,7,1,80,2,0,103,4,119,4,170,170,129,7,1,80,132,7,1,80,2,0,103,4,119,4,170,170,135,7,1,80,138,7,1,80,1,0,103,4,141,7,1,80,1,0,103,4,146,7,1,80,2,0,103,4,119,4,170,170,149,7,1,80,152,7,1,80,1,0,111,4,155,7,1,144,1,0,129,4,158,7,1,144,2,0,103,4,119,4,170,170,36,175,0,32,38,175,0,32,1,0,103,4,161,7,1,80,2,0,103,4,119,4,170,170,164,7,1,80,167,7,1,80,2,0,103,4,119,4,170,170,170,7,1,80,173,7,1,80,2,0,103,4,119,4,170,170,176,7,1,80,179,7,1,80,1,0,103,4,182,7,1,80,2,0,111,4,129,4,170,170,192,7,1,144,195,7,1,144,2,0,103,4,119,4,170,170,187,7,1,80,60,175,0,32,2,0,111,4,129,4,170,170,199,7,1,144,45,106,0,96,1,0,103,4,68,175,0,32,2,0,103,4,119,4,170,170,202,7,1,80,205,7,1,80,1,0,119,4,208,7,1,80,1,0,103,4,211,7,1,80,2,0,103,4,119,4,170,170,214,7,1,80,217,7,1,80,1,0,103,4,220,7,1,80,2,0,103,4,119,4,170,170,223,7,1,80,226,7,1,80,1,0,103,4,229,7,1,80,2,0,103,4,119,4,170,170,232,7,1,80,235,7,1,80,2,0,103,4,119,4,170,170,238,7,1,80,241,7,1,80,1,0,103,4,244,7,1,80,2,0,103,4,119,4,170,170,249,7,1,80,252,7,1,80,2,0,103,4,119,4,170,170,1,8,1,80,4,8,1,80,1,0,103,4,7,8,1,80,2,0,111,4,129,4,170,170,194,195,0,96,10,8,1,144,1,0,129,4,13,8,1,144,2,0,103,4,119,4,170,170,114,175,0,32,118,175,0,32,1,0,103,4,17,8,1,80,2,0,103,4,119,4,170,170,20,8,1,80,23,8,1,80,1,0,103,4,26,8,1,80,1,0,129,4,36,8,1,144,2,0,103,4,119,4,170,170,31,8,1,80,132,175,0,32,1,0,103,4,40,8,1,80,1,0,103,4,43,8,1,80,2,0,103,4,119,4,170,170,46,8,1,80,51,8,1,80,1,0,103,4,54,8,1,80,1,0,119,4,57,8,1,80,1,0,103,4,60,8,1,80,2,0,103,4,119,4,170,170,63,8,1,80,66,8,1,80,2,0,103,4,119,4,170,170,69,8,1,80,74,8,1,80,1,0,103,4,77,8,1,80,2,0,103,4,119,4,170,170,80,8,1,80,83,8,1,80,2,0,103,4,119,4,170,170,86,8,1,80,89,8,1,80,1,0,103,4,94,8,1,80,1,0,103,4,97,8,1,80,2,0,103,4,119,4,170,170,100,8,1,80,103,8,1,80,2,0,111,4,129,4,170,170,109,8,1,144,36,1,0,96,2,0,103,4,119,4,170,170,106,8,1,80,178,175,0,32,1,0,103,4,112,8,1,80,2,0,111,4,129,4,170,170,194,195,0,96,117,8,1,144,1,0,129,4,122,8,1,144,2,0,103,4,119,4,170,170,188,175,0,32,192,175,0,32,1,0,111,4,128,8,1,144,2,0,103,4,119,4,170,170,198,175,0,32,131,8,1,80,1,0,103,4,134,8,1,80,1,0,103,4,137,8,1,80,2,0,103,4,119,4,170,170,142,8,1,80,145,8,1,80,1,0,103,4,148,8,1,80,1,0,103,4,151,8,1,80,1,0,103,4,154,8,1,80,1,0,103,4,157,8,1,80,1,0,103,4,160,8,1,80,1,0,119,4,163,8,1,80,2,0,103,4,119,4,170,170,166,8,1,80,169,8,1,80,1,0,103,4,174,8,1,80,1,0,103,4,179,8,1,80,2,0,103,4,119,4,170,170,182,8,1,80,185,8,1,80,1,0,103,4,188,8,1,80,1,0,103,4,191,8,1,80,2,0,103,4,119,4,170,170,194,8,1,80,197,8,1,80,1,0,103,4,200,8,1,80,2,0,103,4,119,4,170,170,203,8,1,80,206,8,1,80,1,0,103,4,209,8,1,80,1,0,103,4,212,8,1,80,1,0,103,4,215,8,1,80,2,0,103,4,119,4,170,170,218,8,1,80,221,8,1,80,1,0,103,4,224,8,1,80,2,0,103,4,119,4,170,170,227,8,1,80,230,8,1,80,1,0,103,4,233,8,1,80,1,0,103,4,236,8,1,80,2,0,103,4,119,4,170,170,239,8,1,80,242,8,1,80,2,0,103,4,119,4,170,170,245,8,1,80,248,8,1,80,1,0,103,4,251,8,1,80,1,0,103,4,254,8,1,80,2,0,103,4,119,4,170,170,1,9,1,80,4,9,1,80,1,0,103,4,9,9,1,80,2,0,103,4,119,4,170,170,12,9,1,80,15,9,1,80,1,0,103,4,18,9,1,80,1,0,103,4,21,9,1,80,1,0,103,4,24,9,1,80,2,0,103,4,119,4,170,170,27,9,1,80,30,9,1,80,1,0,103,4,33,9,1,80,2,0,103,4,119,4,170,170,36,9,1,80,39,9,1,80,2,0,103,4,119,4,170,170,42,9,1,80,45,9,1,80,1,0,103,4,48,9,1,80,2,0,111,4,129,4,170,170,51,9,1,144,40,0,0,96,2,0,103,4,119,4,170,170,58,176,0,32,54,9,1,80,1,0,103,4,57,9,1,80,2,0,103,4,119,4,170,170,60,9,1,80,65,9,1,80,2,0,103,4,119,4,170,170,68,9,1,80,71,9,1,80,1,0,103,4,74,9,1,80,2,0,103,4,119,4,170,170,79,9,1,80,82,9,1,80,2,0,103,4,119,4,170,170,85,9,1,80,88,9,1,80,1,0,119,4,91,9,1,80,2,0,111,4,129,4,170,170,58,196,0,96,94,9,1,144,1,0,129,4,97,9,1,144,2,0,103,4,119,4,170,170,88,176,0,32,92,176,0,32,2,0,103,4,119,4,170,170,100,9,1,80,103,9,1,80,2,0,103,4,119,4,170,170,106,9,1,80,109,9,1,80,1,0,103,4,112,9,1,80,1,0,103,4,115,9,1,80,1,0,103,4,118,9,1,80,1,0,103,4,121,9,1,80,2,0,103,4,119,4,170,170,124,9,1,80,127,9,1,80,2,0,103,4,119,4,170,170,130,9,1,80,133,9,1,80,1,0,103,4,136,9,1,80,1,0,103,4,139,9,1,80,2,0,103,4,119,4,170,170,142,9,1,80,145,9,1,80,1,0,111,4,148,9,1,144,2,0,103,4,119,4,170,170,130,176,0,32,151,9,1,80,1,0,103,4,154,9,1,80,1,0,103,4,157,9,1,80,1,0,103,4,160,9,1,80,1,0,111,4,163,9,1,144,1,0,129,4,167,9,1,144,2,0,103,4,119,4,170,170,142,176,0,32,144,176,0,32,2,0,103,4,119,4,170,170,170,9,1,80,173,9,1,80,1,0,103,4,176,9,1,80,2,0,103,4,119,4,170,170,179,9,1,80,182,9,1,80,1,0,103,4,187,9,1,80,1,0,103,4,190,9,1,80,1,0,103,4,193,9,1,80,1,0,103,4,196,9,1,80,2,0,103,4,119,4,170,170,199,9,1,80,202,9,1,80,1,0,103,4,205,9,1,80,2,0,111,4,129,4,170,170,208,9,1,144,212,1,0,96,1,0,103,4,174,176,0,32,1,0,103,4,212,9,1,80,1,0,119,4,215,9,1,80,1,0,119,4,220,9,1,80,1,0,103,4,223,9,1,80,1,0,103,4,226,9,1,80,2,0,103,4,119,4,170,170,229,9,1,80,232,9,1,80,2,0,103,4,119,4,170,170,235,9,1,80,238,9,1,80,1,0,103,4,241,9,1,80,1,0,103,4,244,9,1,80,2,0,103,4,119,4,170,170,249,9,1,80,252,9,1,80,1,0,103,4,255,9,1,80,1,0,103,4,2,10,1,80,1,0,103,4,5,10,1,80,2,0,103,4,119,4,170,170,8,10,1,80,11,10,1,80,1,0,111,4,16,10,1,144,1,0,119,4,216,176,0,32,2,0,103,4,119,4,170,170,19,10,1,80,22,10,1,80,1,0,103,4,25,10,1,80,1,0,111,4,28,10,1,144,1,0,103,4,226,176,0,32,1,0,103,4,31,10,1,80,1,0,103,4,34,10,1,80,1,0,103,4,37,10,1,80,1,0,119,4,40,10,1,80,2,0,103,4,119,4,170,170,43,10,1,80,46,10,1,80,1,0,103,4,49,10,1,80,1,0,103,4,52,10,1,80,2,0,103,4,119,4,170,170,55,10,1,80,58,10,1,80,1,0,103,4,61,10,1,80,2,0,103,4,119,4,170,170,64,10,1,80,67,10,1,80,1,0,103,4,70,10,1,80,1,0,103,4,75,10,1,80,2,0,103,4,119,4,170,170,78,10,1,80,81,10,1,80,2,0,103,4,119,4,170,170,84,10,1,80,87,10,1,80,2,0,103,4,119,4,170,170,90,10,1,80,95,10,1,80,1,0,103,4,98,10,1,80,2,0,103,4,119,4,170,170,101,10,1,80,104,10,1,80,2,0,103,4,119,4,170,170,107,10,1,80,110,10,1,80,1,0,119,4,113,10,1,80,1,0,103,4,116,10,1,80,2,0,103,4,119,4,170,170,119,10,1,80,122,10,1,80,1,0,103,4,125,10,1,80,1,0,119,4,128,10,1,80,2,0,103,4,119,4,170,170,131,10,1,80,134,10,1,80,2,0,103,4,119,4,170,170,137,10,1,80,140,10,1,80,1,0,103,4,143,10,1,80,1,0,103,4,148,10,1,80,1,0,119,4,151,10,1,80,1,0,111,4,154,10,1,144,1,0,103,4,52,177,0,32,2,0,103,4,119,4,170,170,157,10,1,80,160,10,1,80,1,0,103,4,163,10,1,80,2,0,103,4,119,4,170,170,166,10,1,80,169,10,1,80,2,0,111,4,129,4,170,170,113,45,0,96,175,10,1,144,2,0,103,4,119,4,170,170,172,10,1,80,66,177,0,32,2,0,103,4,119,4,170,170,178,10,1,80,181,10,1,80,1,0,111,4,186,10,1,144,1,0,129,4,189,10,1,144,2,0,103,4,119,4,170,170,78,177,0,32,80,177,0,32,1,0,103,4,192,10,1,80,1,0,103,4,195,10,1,80,2,0,103,4,119,4,170,170,198,10,1,80,201,10,1,80,2,0,103,4,119,4,170,170,204,10,1,80,207,10,1,80,2,0,103,4,119,4,170,170,210,10,1,80,213,10,1,80,1,0,103,4,216,10,1,80,2,0,103,4,119,4,170,170,219,10,1,80,222,10,1,80,2,0,103,4,119,4,170,170,227,10,1,80,230,10,1,80,1,0,119,4,233,10,1,80,2,0,103,4,119,4,170,170,236,10,1,80,239,10,1,80,2,0,103,4,119,4,170,170,242,10,1,80,245,10,1,80,1,0,119,4,248,10,1,80,1,0,103,4,251,10,1,80,2,0,103,4,119,4,170,170,0,11,1,80,3,11,1,80,1,0,103,4,6,11,1,80,1,0,103,4,9,11,1,80,1,0,103,4,12,11,1,80,1,0,103,4,15,11,1,80,1,0,103,4,20,11,1,80,1,0,103,4,25,11,1,80,2,0,103,4,119,4,170,170,28,11,1,80,31,11,1,80,1,0,103,4,34,11,1,80,2,0,103,4,119,4,170,170,39,11,1,80,42,11,1,80,1,0,103,4,45,11,1,80,2,0,111,4,129,4,170,170,53,11,1,144,52,1,0,96,2,0,103,4,119,4,170,170,48,11,1,80,154,177,0,32,1,0,119,4,56,11,1,80,2,0,103,4,119,4,170,170,59,11,1,80,62,11,1,80,1,0,103,4,67,11,1,80,1,0,103,4,70,11,1,80,1,0,103,4,73,11,1,80,1,0,103,4,76,11,1,80,2,0,103,4,119,4,170,170,79,11,1,80,82,11,1,80,2,0,103,4,119,4,170,170,85,11,1,80,88,11,1,80,1,0,103,4,93,11,1,80,1,0,103,4,96,11,1,80,2,0,103,4,119,4,170,170,99,11,1,80,102,11,1,80,2,0,111,4,129,4,170,170,105,11,1,144,108,11,1,144,1,0,129,4,112,11,1,144,2,0,103,4,119,4,170,170,192,177,0,32,196,177,0,32,1,0,103,4,115,11,1,80,2,0,103,4,119,4,170,170,120,11,1,80,123,11,1,80,1,0,103,4,126,11,1,80,1,0,103,4,129,11,1,80,1,0,103,4,132,11,1,80,1,0,103,4,135,11,1,80,1,0,103,4,138,11,1,80,2,0,103,4,119,4,170,170,141,11,1,80,144,11,1,80,1,0,103,4,147,11,1,80,1,0,103,4,150,11,1,80,1,0,103,4,153,11,1,80,2,0,103,4,119,4,170,170,158,11,1,80,161,11,1,80,2,0,103,4,119,4,170,170,164,11,1,80,167,11,1,80,1,0,119,4,170,11,1,80,2,0,103,4,119,4,170,170,173,11,1,80,176,11,1,80,1,0,103,4,179,11,1,80,2,0,103,4,119,4,170,170,184,11,1,80,187,11,1,80,1,0,103,4,190,11,1,80,1,0,103,4,193,11,1,80,2,0,111,4,129,4,170,170,194,195,0,96,196,11,1,144,1,0,103,4,252,177,0,32,1,0,103,4,199,11,1,80,1,0,103,4,202,11,1,80,2,0,103,4,119,4,170,170,207,11,1,80,210,11,1,80,1,0,129,4,216,11,1,144,2,0,103,4,119,4,170,170,213,11,1,80,10,178,0,32,2,0,103,4,119,4,170,170,219,11,1,80,224,11,1,80,2,0,103,4,119,4,170,170,227,11,1,80,230,11,1,80,2,0,103,4,119,4,170,170,233,11,1,80,236,11,1,80,2,0,103,4,119,4,170,170,239,11,1,80,242,11,1,80,1,0,103,4,245,11,1,80,1,0,103,4,248,11,1,80,1,0,103,4,251,11,1,80,1,0,103,4,254,11,1,80,1,0,103,4,1,12,1,80,1,0,103,4,6,12,1,80,2,0,111,4,129,4,170,170,194,195,0,96,9,12,1,144,2,0,103,4,119,4,170,170,44,178,0,32,17,12,1,80,1,0,103,4,20,12,1,80,1,0,103,4,23,12,1,80,1,0,103,4,28,12,1,80,1,0,103,4,31,12,1,80,2,0,103,4,119,4,170,170,36,12,1,80,39,12,1,80,2,0,103,4,119,4,170,170,42,12,1,80,45,12,1,80,1,0,103,4,48,12,1,80,1,0,119,4,51,12,1,80,1,0,119,4,54,12,1,80,1,0,103,4,57,12,1,80,2,0,103,4,119,4,170,170,60,12,1,80,63,12,1,80,2,0,103,4,119,4,170,170,66,12,1,80,69,12,1,80,2,0,103,4,119,4,170,170,72,12,1,80,75,12,1,80,1,0,103,4,78,12,1,80,1,0,103,4,81,12,1,80,1,0,103,4,84,12,1,80,2,0,103,4,119,4,170,170,87,12,1,80,92,12,1,80,2,0,103,4,119,4,170,170,95,12,1,80,98,12,1,80,2,0,103,4,119,4,170,170,101,12,1,80,104,12,1,80,1,0,103,4,107,12,1,80,1,0,103,4,110,12,1,80,1,0,129,4,116,12,1,144,2,0,103,4,119,4,170,170,113,12,1,80,110,178,0,32,2,0,103,4,119,4,170,170,119,12,1,80,122,12,1,80,1,0,103,4,125,12,1,80,1,0,103,4,128,12,1,80,2,0,103,4,119,4,170,170,131,12,1,80,134,12,1,80,2,0,103,4,119,4,170,170,139,12,1,80,142,12,1,80,2,0,103,4,119,4,170,170,145,12,1,80,148,12,1,80,2,0,103,4,119,4,170,170,151,12,1,80,154,12,1,80,1,0,111,4,157,12,1,144,1,0,119,4,140,178,0,32,1,0,119,4,160,12,1,80,1,0,111,4,163,12,1,144,1,0,129,4,166,12,1,144,2,0,103,4,119,4,170,170,146,178,0,32,148,178,0,32,2,0,103,4,119,4,170,170,170,12,1,80,173,12,1,80,1,0,111,4,176,12,1,144,1,0,119,4,158,178,0,32,2,0,103,4,119,4,170,170,179,12,1,80,182,12,1,80,2,0,111,4,129,4,170,170,194,195,0,96,185,12,1,144,2,0,103,4,119,4,170,170,166,178,0,32,188,12,1,80,1,0,103,4,191,12,1,80,1,0,103,4,196,12,1,80,2,0,103,4,119,4,170,170,199,12,1,80,202,12,1,80,1,0,103,4,205,12,1,80,1,0,103,4,208,12,1,80,1,0,119,4,211,12,1,80,1,0,103,4,214,12,1,80,1,0,119,4,217,12,1,80,1,0,111,4,220,12,1,144,1,0,119,4,192,178,0,32,2,0,103,4,119,4,170,170,224,12,1,80,227,12,1,80,1,0,103,4,230,12,1,80,1,0,129,4,238,12,1,144,2,0,103,4,119,4,170,170,233,12,1,80,202,178,0,32,1,0,103,4,241,12,1,80,1,0,111,4,244,12,1,144,1,0,103,4,210,178,0,32,2,0,103,4,119,4,170,170,248,12,1,80,251,12,1,80,1,0,103,4,254,12,1,80,1,0,103,4,1,13,1,80,1,0,119,4,4,13,1,80,1,0,119,4,7,13,1,80,2,0,103,4,119,4,170,170,10,13,1,80,15,13,1,80,2,0,111,4,129,4,170,170,194,195,0,96,18,13,1,144,1,0,103,4,230,178,0,32,1,0,103,4,29,13,1,80,2,0,111,4,129,4,170,170,194,195,0,96,32,13,1,144,1,0,103,4,238,178,0,32,2,0,103,4,119,4,170,170,36,13,1,80,39,13,1,80,1,0,103,4,42,13,1,80,2,0,103,4,119,4,170,170,45,13,1,80,48,13,1,80,1,0,103,4,51,13,1,80,1,0,103,4,54,13,1,80,2,0,103,4,119,4,170,170,57,13,1,80,60,13,1,80,2,0,103,4,119,4,170,170,63,13,1,80,66,13,1,80,1,0,103,4,71,13,1,80,1,0,111,4,77,13,1,144,2,0,103,4,119,4,170,170,74,13,1,80,12,179,0,32,1,0,103,4,80,13,1,80,1,0,111,4,83,13,1,144,2,0,103,4,119,4,170,170,20,179,0,32,86,13,1,80,1,0,103,4,89,13,1,80,1,0,129,4,95,13,1,144,2,0,103,4,119,4,170,170,92,13,1,80,28,179,0,32,2,0,103,4,119,4,170,170,98,13,1,80,101,13,1,80,1,0,103,4,104,13,1,80,1,0,103,4,107,13,1,80,2,0,103,4,119,4,170,170,110,13,1,80,113,13,1,80,1,0,103,4,116,13,1,80,1,0,103,4,119,13,1,80,2,0,103,4,119,4,170,170,124,13,1,80,127,13,1,80,2,0,111,4,129,4,170,170,194,195,0,96,130,13,1,144,2,0,103,4,119,4,170,170,54,179,0,32,133,13,1,80,1,0,103,4,138,13,1,80,1,0,103,4,141,13,1,80,2,0,103,4,119,4,170,170,144,13,1,80,147,13,1,80,1,0,103,4,150,13,1,80,2,0,111,4,129,4,170,170,202,195,0,96,153,13,1,144,1,0,129,4,159,13,1,144,2,0,103,4,119,4,170,170,72,179,0,32,76,179,0,32,1,0,103,4,169,13,1,80,1,0,103,4,172,13,1,80,1,0,103,4,175,13,1,80,1,0,103,4,178,13,1,80,1,0,103,4,183,13,1,80,1,0,103,4,186,13,1,80,2,0,111,4,129,4,170,170,189,13,1,144,121,105,0,96,1,0,119,4,94,179,0,32,1,0,103,4,195,13,1,80,1,0,103,4,198,13,1,80,2,0,103,4,119,4,170,170,201,13,1,80,204,13,1,80,1,0,111,4,207,13,1,144,1,0,119,4,108,179,0,32,1,0,103,4,210,13,1,80,2,0,103,4,119,4,170,170,213,13,1,80,216,13,1,80,2,0,111,4,129,4,170,170,222,13,1,144,121,105,0,96,2,0,103,4,119,4,170,170,219,13,1,80,118,179,0,32,1,0,119,4,227,13,1,80,1,0,103,4,230,13,1,80,1,0,103,4,233,13,1,80,2,0,103,4,119,4,170,170,236,13,1,80,239,13,1,80,2,0,103,4,119,4,170,170,242,13,1,80,245,13,1,80,1,0,103,4,248,13,1,80,2,0,103,4,119,4,170,170,251,13,1,80,254,13,1,80,1,0,103,4,1,14,1,80,1,0,111,4,4,14,1,144,2,0,111,4,129,4,170,170,7,14,1,144,10,14,1,144,2,0,103,4,119,4,170,170,148,179,0,32,150,179,0,32,1,0,103,4,13,14,1,80,2,0,103,4,119,4,170,170,16,14,1,80,19,14,1,80,2,0,103,4,119,4,170,170,22,14,1,80,25,14,1,80,1,0,103,4,30,14,1,80,2,0,103,4,119,4,170,170,33,14,1,80,36,14,1,80,2,0,103,4,119,4,170,170,39,14,1,80,42,14,1,80,1,0,103,4,45,14,1,80,1,0,119,4,48,14,1,80,1,0,103,4,51,14,1,80,1,0,103,4,54,14,1,80,1,0,111,4,59,14,1,144,1,0,119,4,186,179,0,32,1,0,103,4,62,14,1,80,1,0,111,4,65,14,1,144,2,0,103,4,119,4,170,170,192,179,0,32,69,14,1,80,2,0,103,4,119,4,170,170,72,14,1,80,75,14,1,80,1,0,103,4,78,14,1,80,2,0,103,4,119,4,170,170,83,14,1,80,86,14,1,80,1,0,129,4,94,14,1,144,2,0,103,4,119,4,170,170,89,14,1,80,208,179,0,32,2,0,103,4,119,4,170,170,97,14,1,80,100,14,1,80,2,0,103,4,119,4,170,170,103,14,1,80,108,14,1,80,1,0,103,4,111,14,1,80,1,0,103,4,114,14,1,80,2,0,111,4,129,4,170,170,194,195,0,96,117,14,1,144,1,0,103,4,226,179,0,32,1,0,103,4,120,14,1,80,1,0,103,4,123,14,1,80,1,0,103,4,126,14,1,80,1,0,119,4,129,14,1,80,2,0,103,4,119,4,170,170,132,14,1,80,135,14,1,80,1,0,103,4,138,14,1,80,1,0,119,4,143,14,1,80,2,0,103,4,119,4,170,170,146,14,1,80,149,14,1,80,2,0,111,4,129,4,170,170,157,14,1,144,160,14,1,144,2,0,103,4,119,4,170,170,152,14,1,80,252,179,0,32,2,0,103,4,119,4,170,170,163,14,1,80,166,14,1,80,2,0,111,4,129,4,170,170,194,195,0,96,169,14,1,144,2,0,111,4,129,4,170,170,144,44,0,96,172,14,1,144,2,0,103,4,119,4,170,170,8,180,0,32,12,180,0,32,2,0,111,4,129,4,170,170,175,14,1,144,178,14,1,144,1,0,103,4,20,180,0,32,2,0,103,4,119,4,170,170,183,14,1,80,186,14,1,80,2,0,103,4,119,4,170,170,189,14,1,80,192,14,1,80,2,0,103,4,119,4,170,170,195,14,1,80,198,14,1,80,1,0,103,4,201,14,1,80,2,0,103,4,119,4,170,170,204,14,1,80,209,14,1,80,1,0,103,4,212,14,1,80,2,0,103,4,119,4,170,170,215,14,1,80,220,14,1,80,1,0,103,4,223,14,1,80,2,0,103,4,119,4,170,170,226,14,1,80,229,14,1,80,2,0,103,4,119,4,170,170,234,14,1,80,237,14,1,80,2,0,103,4,119,4,170,170,240,14,1,80,243,14,1,80,2,0,111,4,129,4,170,170,194,195,0,96,248,14,1,144,1,0,103,4,64,180,0,32,2,0,111,4,129,4,170,170,194,195,0,96,252,14,1,144,2,0,103,4,119,4,170,170,70,180,0,32,0,15,1,80,2,0,103,4,119,4,170,170,3,15,1,80,6,15,1,80,1,0,103,4,11,15,1,80,2,0,103,4,119,4,170,170,14,15,1,80,17,15,1,80,1,0,103,4,20,15,1,80,1,0,103,4,23,15,1,80,2,0,103,4,119,4,170,170,26,15,1,80,29,15,1,80,1,0,119,4,34,15,1,80,1,0,103,4,37,15,1,80,2,0,111,4,129,4,170,170,98,196,0,96,40,15,1,144,1,0,129,4,43,15,1,144,2,0,103,4,119,4,170,170,100,180,0,32,104,180,0,32,1,0,103,4,47,15,1,80,2,0,103,4,119,4,170,170,50,15,1,80,53,15,1,80,2,0,103,4,119,4,170,170,56,15,1,80,59,15,1,80,2,0,103,4,119,4,170,170,62,15,1,80,65,15,1,80,1,0,103,4,68,15,1,80,2,0,103,4,119,4,170,170,71,15,1,80,74,15,1,80,1,0,103,4,77,15,1,80,2,0,103,4,119,4,170,170,80,15,1,80,83,15,1,80,2,0,103,4,119,4,170,170,86,15,1,80,89,15,1,80,2,0,103,4,119,4,170,170,92,15,1,80,95,15,1,80,1,0,103,4,98,15,1,80,1,0,103,4,101,15,1,80,2,0,111,4,129,4,170,170,106,15,1,144,94,0,0,96,1,0,103,4,148,180,0,32,1,0,103,4,110,15,1,80,1,0,103,4,115,15,1,80,1,0,103,4,118,15,1,80,1,0,103,4,121,15,1,80,2,0,103,4,119,4,170,170,124,15,1,80,129,15,1,80,2,0,103,4,119,4,170,170,132,15,1,80,135,15,1,80,2,0,103,4,119,4,170,170,138,15,1,80,141,15,1,80,2,0,111,4,129,4,170,170,144,15,1,144,36,2,0,96,1,0,129,4,148,15,1,144,2,0,103,4,119,4,170,170,174,180,0,32,178,180,0,32,1,0,103,4,151,15,1,80,1,0,111,4,156,15,1,144,1,0,103,4,186,180,0,32,1,0,103,4,159,15,1,80,1,0,103,4,162,15,1,80,1,0,111,4,165,15,1,144,2,0,103,4,119,4,170,170,194,180,0,32,169,15,1,80,2,0,103,4,119,4,170,170,172,15,1,80,175,15,1,80,2,0,103,4,119,4,170,170,178,15,1,80,183,15,1,80,1,0,119,4,186,15,1,80,1,0,103,4,189,15,1,80,1,0,103,4,194,15,1,80,1,0,119,4,197,15,1,80,1,0,103,4,200,15,1,80,2,0,111,4,129,4,170,170,194,195,0,96,205,15,1,144,2,0,103,4,119,4,170,170,218,180,0,32,208,15,1,80,2,0,103,4,119,4,170,170,213,15,1,80,216,15,1,80,1,0,103,4,219,15,1,80,1,0,103,4,222,15,1,80,1,0,129,4,228,15,1,144,2,0,103,4,119,4,170,170,225,15,1,80,234,180,0,32,1,0,103,4,231,15,1,80,2,0,103,4,119,4,170,170,234,15,1,80,237,15,1,80,1,0,103,4,240,15,1,80,1,0,103,4,243,15,1,80,2,0,103,4,119,4,170,170,246,15,1,80,249,15,1,80,1,0,103,4,252,15,1,80,2,0,103,4,119,4,170,170,255,15,1,80,2,16,1,80,1,0,111,4,5,16,1,144,2,0,103,4,119,4,170,170,4,181,0,32,8,16,1,80,2,0,103,4,119,4,170,170,11,16,1,80,14,16,1,80,1,0,103,4,17,16,1,80,1,0,103,4,22,16,1,80,1,0,103,4,25,16,1,80,2,0,103,4,119,4,170,170,30,16,1,80,33,16,1,80,2,0,111,4,129,4,170,170,36,16,1,144,72,1,0,96,1,0,103,4,24,181,0,32,1,0,103,4,39,16,1,80,2,0,103,4,119,4,170,170,42,16,1,80,45,16,1,80,1,0,111,4,50,16,1,144,2,0,103,4,119,4,170,170,36,181,0,32,53,16,1,80,1,0,119,4,58,16,1,80,2,0,103,4,119,4,170,170,61,16,1,80,66,16,1,80,1,0,103,4,69,16,1,80,2,0,103,4,119,4,170,170,72,16,1,80,75,16,1,80,1,0,129,4,78,16,1,144,1,0,119,4,54,181,0,32,1,0,111,4,84,16,1,144,2,0,103,4,119,4,170,170,58,181,0,32,87,16,1,80,1,0,111,4,90,16,1,144,1,0,103,4,64,181,0,32,1,0,129,4,98,16,1,144,2,0,103,4,119,4,170,170,93,16,1,80,68,181,0,32,2,0,111,4,129,4,170,170,101,16,1,144,97,0,0,96,2,0,103,4,119,4,170,170,74,181,0,32,105,16,1,80,1,0,111,4,108,16,1,144,1,0,103,4,82,181,0,32,2,0,103,4,119,4,170,170,111,16,1,80,114,16,1,80,1,0,129,4,120,16,1,144,2,0,103,4,119,4,170,170,117,16,1,80,90,181,0,32,1,0,103,4,126,16,1,80,2,0,103,4,119,4,170,170,129,16,1,80,134,16,1,80,1,0,103,4,139,16,1,80,2,0,103,4,119,4,170,170,142,16,1,80,145,16,1,80,2,0,103,4,119,4,170,170,148,16,1,80,151,16,1,80,2,0,103,4,119,4,170,170,154,16,1,80,157,16,1,80,1,0,119,4,160,16,1,80,1,0,119,4,163,16,1,80,1,0,103,4,166,16,1,80,1,0,103,4,169,16,1,80,1,0,103,4,172,16,1,80,1,0,103,4,175,16,1,80,2,0,103,4,119,4,170,170,178,16,1,80,181,16,1,80,2,0,103,4,119,4,170,170,184,16,1,80,187,16,1,80,1,0,103,4,190,16,1,80,1,0,103,4,193,16,1,80,2,0,103,4,119,4,170,170,196,16,1,80,199,16,1,80,2,0,103,4,119,4,170,170,202,16,1,80,205,16,1,80,2,0,103,4,119,4,170,170,208,16,1,80,211,16,1,80,1,0,103,4,214,16,1,80,2,0,103,4,119,4,170,170,219,16,1,80,224,16,1,80,2,0,103,4,119,4,170,170,227,16,1,80,230,16,1,80,2,0,103,4,119,4,170,170,233,16,1,80,236,16,1,80,1,0,103,4,239,16,1,80,1,0,103,4,242,16,1,80,1,0,119,4,245,16,1,80,2,0,103,4,119,4,170,170,248,16,1,80,251,16,1,80,1,0,119,4,254,16,1,80,1,0,119,4,1,17,1,80,1,0,103,4,4,17,1,80,1,0,119,4,7,17,1,80,1,0,119,4,10,17,1,80,1,0,119,4,13,17,1,80,2,0,103,4,119,4,170,170,16,17,1,80,19,17,1,80,2,0,103,4,119,4,170,170,22,17,1,80,25,17,1,80,1,0,119,4,28,17,1,80,1,0,119,4,31,17,1,80,1,0,103,4,34,17,1,80,1,0,111,4,37,17,1,144,1,0,119,4,202,181,0,32,1,0,103,4,40,17,1,80,1,0,103,4,43,17,1,80,1,0,103,4,46,17,1,80,1,0,103,4,49,17,1,80,1,0,103,4,52,17,1,80,1,0,103,4,55,17,1,80,1,0,103,4,60,17,1,80,1,0,103,4,63,17,1,80,1,0,103,4,66,17,1,80,1,0,111,4,69,17,1,144,1,0,129,4,72,17,1,144,2,0,103,4,119,4,170,170,224,181,0,32,226,181,0,32,2,0,103,4,119,4,170,170,75,17,1,80,78,17,1,80,1,0,103,4,83,17,1,80,1,0,103,4,86,17,1,80,1,0,103,4,89,17,1,80,1,0,103,4,94,17,1,80,1,0,119,4,97,17,1,80,2,0,103,4,119,4,170,170,100,17,1,80,103,17,1,80,2,0,111,4,129,4,170,170,106,17,1,144,109,17,1,144,2,0,111,4,129,4,170,170,115,17,1,144,118,17,1,144,2,0,103,4,119,4,170,170,250,181,0,32,254,181,0,32,1,0,103,4,124,17,1,80,2,0,103,4,119,4,170,170,127,17,1,80,130,17,1,80,1,0,103,4,133,17,1,80,2,0,103,4,119,4,170,170,136,17,1,80,139,17,1,80,23,3,94,8,201,12,141,4,145,4,149,4,153,4,157,4,161,4,181,13,165,4,251,11,169,4,173,4,177,4,234,9,181,4,185,4,189,4,193,4,197,4,3,12,201,4,158,18,205,4,209,4,213,4,217,4,185,13,221,4,225,4,229,4,233,4,237,4,241,4,245,4,107,4,249,4,189,13,253,4,1,5,5,5,32,14,9,5,13,5,84,7,19,12,35,8,17,5,21,5,25,5,29,5,33,5,37,5,41,5,45,5,49,5,88,9,53,5,57,5,61,5,65,5,69,5,73,5,77,5,81,5,85,5,88,5,92,5,96,5,100,5,104,5,108,5,112,5,115,5,119,5,123,5,127,5,131,5,135,5,139,5,194,0,143,5,92,7,147,5,151,5,214,23,154,5,158,5,162,5,201,13,166,5,170,5,174,5,178,5,181,5,185,5,189,5,193,5,197,5,201,5,205,5,209,5,213,5,217,5,221,5,225,5,229,5,122,8,233,5,237,5,241,5,245,5,249,5,179,24,253,5,1,6,164,10,5,6,9,6,13,6,17,6,21,6,25,6,29,6,33,6,37,6,41,6,45,6,49,6,53,6,57,6,31,12,61,6,65,6,225,13,69,6,73,6,77,6,81,6,85,6,89,6,93,6,35,12,97,6,101,6,105,6,109,6,112,6,213,12,106,17,115,6,119,6,123,6,127,6,103,13,131,6,135,6,139,6,143,6,147,6,151,6,155,6,159,6,163,6,167,6,171,6,175,6,179,6,183,6,187,6,190,6,194,6,198,6,201,6,47,12,205,6,209,6,213,6,217,6,221,6,63,12,68,14,225,6,229,12,67,12,229,6,237,12,233,6,199,19,237,6,241,6,245,6,22,10,249,6,253,6,1,7,4,7,206,6,8,7,12,7,16,7,20,7,22,22,23,7,150,8,27,7,31,7,35,7,39,7,43,7,47,7,51,7,55,7,59,7,63,7,67,7,154,8,111,13,71,7,75,7,79,7,83,7,87,7,91,7,95,7,99,7,103,7,106,7,110,7,114,7,118,7,180,10,122,7,126,7,130,7,115,21,134,7,138,7,142,7,146,7,150,7,154,7,158,7,162,7,166,7,170,7,174,7,177,7,181,7,185,7,189,7,193,7,196,7,200,7,169,8,204,7,208,7,13,23,212,7,184,10,75,12,216,7,220,7,224,7,228,7,232,7,236,7,240,7,244,7,248,7,252,7,18,6,0,8,4,8,8,8,252,12,12,8,16,8,237,20,20,8,23,8,27,8,30,6,31,8,175,11,34,8,38,8,83,12,42,8,3,13,174,4,116,5,46,8,50,8,54,8,93,11,87,4,200,10,58,8,38,6,62,8,66,8,70,8,74,8,78,8,82,8,86,8,90,8,26,11,93,8,97,8,101,8,105,8,109,8,113,8,117,8,121,8,125,8,129,8,133,8,137,8,141,8,145,8,149,8,153,8,157,8,160,8,164,8,168,8,172,8,176,8,180,8,184,8,188,8,136,9,192,8,205,8,196,8,200,8,182,4,204,8,129,20,208,8,98,21,212,8,216,8,219,8,97,11,223,8,227,8,231,8,235,8,239,8,11,13,243,8,247,8,251,8,255,8,3,9,7,9,10,9,14,9,18,9,134,20,22,9,26,9,30,9,33,9,37,9,41,9,44,9,48,9,52,9,222,6,56,9,195,0,60,9,64,9,68,9,72,9,76,9,80,9,84,9,87,9,91,9,95,9,99,9,103,9,107,9,140,17,115,13,111,9,115,9,119,9,123,9,127,9,131,9,135,9,139,9,143,9,147,9,209,8,51,8,151,9,155,9,159,9,187,15,163,9,167,9,170,9,174,9,178,9,182,9,186,9,190,9,194,9,198,9,202,9,205,9,209,9,213,9,217,9,221,9,225,9,229,9,233,9,237,9,241,9,245,9,249,9,253,9,1,10,5,10,9,10,13,10,17,10,21,10,25,10,29,10,208,10,33,10,37,10,41,10,45,10,27,13,76,14,154,0,49,10,53,10,75,8,56,10,244,13,60,10,64,10,68,10,72,10,76,10,80,10,84,10,248,13,88,10,92,10,96,10,115,12,199,11,100,10,104,10,108,10,112,10,116,10,120,10,124,10,128,10,132,10,136,10,139,10,143,10,147,10,151,10,252,13,155,10,159,10,51,19,104,19,163,10,123,13,167,10,171,10,241,7,175,10,207,11,179,10,183,10,187,10,191,10,195,10,199,10,203,10,120,19,207,10,83,20,211,10,253,7,215,10,219,10,223,10,227,10,231,10,235,10,0,14,239,10,243,10,247,10,251,10,254,10,2,11,5,11,9,11,13,11,17,11,9,3,5,8,21,11,25,11,219,11,58,19,85,10,29,11,33,11,37,11,41,11,44,11,48,11,52,11,56,11,60,11,64,11,68,11,72,11,76,11,80,11,84,11,88,11,43,13,92,11,96,11,100,11,103,11,107,11,111,11,115,11,119,11,123,11,127,11,66,6,70,4,131,11,135,11,138,11,142,11,146,11,150,11,154,11,158,11,162,11,166,11,170,11,174,11,178,11,182,11,186,11,32,7,190,11,194,11,198,11,202,11,138,12,206,11,173,13,210,11,214,11,218,11,222,11,47,13,226,11,230,11,234,11,55,13,238,11,242,11,12,14,246,11,250,11,254,11,2,12,6,12,167,18,10,12,14,12,18,12,22,12,34,11,26,12,187,18,30,12,34,12,59,13,38,12,42,12,34,4,46,12,50,12,54,12,58,12,62,12,66,12,63,13,202,18,70,12,74,12,78,12,67,13,82,12,240,10,86,12,178,19,90,12,94,12,183,19,98,12,102,12,106,12,110,12,114,12,17,8,118,12,122,12,244,10,126,12,130,12,16,14,133,12,137,12,141,12,145,12,186,5,149,12,198,15,153,12,230,6,157,12,161,12,165,12,171,7,168,12,172,12,176,12,180,12,184,12,188,12,192,12,196,12,154,20,200,12,204,12,208,12,212,12,216,12,220,12,224,12,159,20,68,0,228,12,232,12,236,12,164,9,240,12,243,12,247,12,251,12,255,12,2,13,6,13,38,11,128,20,10,13,14,13,18,13,22,13,26,13,207,23,30,13,190,5,34,13,38,13,42,13,101,10,46,13,50,13,54,13,79,13,58,13,62,13,66,13,70,13,83,13,74,13,78,13,82,13,86,13,168,20,90,13,233,3,94,13,98,13,102,13,106,13,231,11,110,13,158,12,114,13,118,13,122,13,126,13,130,13,28,8,199,9,134,13,138,13,141,13,145,13,149,13,152,13,156,13,160,13,164,13,103,21,168,13,172,13,176,13,14,5,180,13,145,17,184,13,188,13,192,13,196,13,200,13,99,19,204,13,242,6,208,13,212,13,216,13,220,13,224,13,228,13,231,13,235,13,239,13,243,13,247,13,251,13,255,13,3,14,7,14,11,14,15,14,19,14,23,14,27,14,31,14,35,14,185,12,14,11,39,14,234,22,43,14,47,14,87,14,51,14,55,14,59,14,63,14,67,14,71,14,210,9,75,14,79,14,82,14,86,14,224,171,0,32,228,171,0,32,232,171,0,32,234,171,0,32,238,171,0,32,242,171,0,32,246,171,0,32,248,171,0,32,252,171,0,32,254,171,0,32,4,172,0,32,8,172,0,32,10,172,0,32,16,172,0,32,18,172,0,32,22,172,0,32,24,172,0,32,26,172,0,32,28,172,0,32,32,172,0,32,34,172,0,32,36,172,0,32,38,172,0,32,40,172,0,32,42,172,0,32,44,172,0,32,46,172,0,32,56,172,0,32,62,172,0,32,64,172,0,32,66,172,0,32,68,172,0,32,70,172,0,32,74,172,0,32,78,172,0,32,80,172,0,32,84,172,0,32,88,172,0,32,92,172,0,32,94,172,0,32,98,172,0,32,100,172,0,32,104,172,0,32,106,172,0,32,110,172,0,32,118,172,0,32,122,172,0,32,130,172,0,32,134,172,0,32,138,172,0,32,142,172,0,32,146,172,0,32,148,172,0,32,150,172,0,32,154,172,0,32,156,172,0,32,160,172,0,32,162,172,0,32,166,172,0,32,170,172,0,32,174,172,0,32,176,172,0,32,178,172,0,32,180,172,0,32,184,172,0,32,186,172,0,32,188,172,0,32,192,172,0,32,196,172,0,32,198,172,0,32,202,172,0,32,208,172,0,32,212,172,0,32,214,172,0,32,218,172,0,32,222,172,0,32,226,172,0,32,230,172,0,32,232,172,0,32,234,172,0,32,238,172,0,32,240,172,0,32,244,172,0,32,248,172,0,32,250,172,0,32,254,172,0,32,2,173,0,32,4,173,0,32,8,173,0,32,10,173,0,32,12,173,0,32,14,173,0,32,18,173,0,32,26,173,0,32,28,173,0,32,30,173,0,32,32,173,0,32,34,173,0,32,36,173,0,32,38,173,0,32,42,173,0,32,46,173,0,32,50,173,0,32,52,173,0,32,54,173,0,32,56,173,0,32,58,173,0,32,60,173,0,32,64,173,0,32,66,173,0,32,68,173,0,32,70,173,0,32,74,173,0,32,76,173,0,32,80,173,0,32,84,173,0,32,88,173,0,32,90,173,0,32,94,173,0,32,96,173,0,32,98,173,0,32,100,173,0,32,104,173,0,32,106,173,0,32,108,173,0,32,110,173,0,32,114,173,0,32,118,173,0,32,122,173,0,32,126,173,0,32,128,173,0,32,130,173,0,32,134,173,0,32,136,173,0,32,140,173,0,32,144,173,0,32,146,173,0,32,148,173,0,32,152,173,0,32,154,173,0,32,158,173,0,32,160,173,0,32,164,173,0,32,168,173,0,32,170,173,0,32,172,173,0,32,174,173,0,32,176,173,0,32,180,173,0,32,184,173,0,32,188,173,0,32,190,173,0,32,192,173,0,32,194,173,0,32,206,173,0,32,210,173,0,32,212,173,0,32,216,173,0,32,220,173,0,32,222,173,0,32,226,173,0,32,228,173,0,32,236,173,0,32,240,173,0,32,242,173,0,32,244,173,0,32,246,173,0,32,248,173,0,32,250,173,0,32,252,173,0,32,254,173,0,32,2,174,0,32,6,174,0,32,8,174,0,32,12,174,0,32,16,174,0,32,20,174,0,32,22,174,0,32,24,174,0,32,26,174,0,32,32,174,0,32,42,174,0,32,46,174,0,32,48,174,0,32,56,174,0,32,60,174,0,32,62,174,0,32,66,174,0,32,68,174,0,32,72,174,0,32,74,174,0,32,76,174,0,32,82,174,0,32,86,174,0,32,90,174,0,32,96,174,0,32,100,174,0,32,106,174,0,32,110,174,0,32,112,174,0,32,116,174,0,32,118,174,0,32,120,174,0,32,122,174,0,32,134,174,0,32,138,174,0,32,140,174,0,32,142,174,0,32,144,174,0,32,146,174,0,32,150,174,0,32,152,174,0,32,156,174,0,32,160,174,0,32,162,174,0,32,166,174,0,32,170,174,0,32,174,174,0,32,178,174,0,32,182,174,0,32,186,174,0,32,190,174,0,32,192,174,0,32,194,174,0,32,198,174,0,32,200,174,0,32,204,174,0,32,208,174,0,32,210,174,0,32,212,174,0,32,214,174,0,32,216,174,0,32,220,174,0,32,222,174,0,32,226,174,0,32,228,174,0,32,230,174,0,32,232,174,0,32,238,174,0,32,242,174,0,32,246,174,0,32,248,174,0,32,250,174,0,32,254,174,0,32,0,175,0,32,6,175,0,32,12,175,0,32,16,175,0,32,18,175,0,32,20,175,0,32,24,175,0,32,28,175,0,32,30,175,0,32,32,175,0,32,40,175,0,32,44,175,0,32,46,175,0,32,50,175,0,32,54,175,0,32,58,175,0,32,64,175,0,32,72,175,0,32,74,175,0,32,78,175,0,32,80,175,0,32,82,175,0,32,86,175,0,32,88,175,0,32,92,175,0,32,94,175,0,32,98,175,0,32,102,175,0,32,104,175,0,32,108,175,0,32,112,175,0,32,120,175,0,32,124,175,0,32,126,175,0,32,130,175,0,32,134,175,0,32,138,175,0,32,140,175,0,32,142,175,0,32,146,175,0,32,148,175,0,32,150,175,0,32,152,175,0,32,156,175,0,32,160,175,0,32,162,175,0,32,166,175,0,32,170,175,0,32,172,175,0,32,174,175,0,32,182,175,0,32,186,175,0,32,194,175,0,32,200,175,0,32,204,175,0,32,206,175,0,32,208,175,0,32,212,175,0,32,214,175,0,32,216,175,0,32,218,175,0,32,220,175,0,32,222,175,0,32,224,175,0,32,228,175,0,32,230,175,0,32,232,175,0,32,236,175,0,32,238,175,0,32,240,175,0,32,244,175,0,32,246,175,0,32,250,175,0,32,252,175,0,32,254,175,0,32,0,176,0,32,4,176,0,32,6,176,0,32,10,176,0,32,12,176,0,32,14,176,0,32,18,176,0,32,22,176,0,32,24,176,0,32,26,176,0,32,30,176,0,32,32,176,0,32,36,176,0,32,38,176,0,32,40,176,0,32,42,176,0,32,46,176,0,32,48,176,0,32,52,176,0,32,56,176,0,32,62,176,0,32,66,176,0,32,68,176,0,32,72,176,0,32,76,176,0,32,78,176,0,32,82,176,0,32,86,176,0,32,94,176,0,32,98,176,0,32,102,176,0,32,106,176,0,32,108,176,0,32,110,176,0,32,112,176,0,32,114,176,0,32,118,176,0,32,122,176,0,32,124,176,0,32,126,176,0,32,132,176,0,32,136,176,0,32,138,176,0,32,140,176,0,32,146,176,0,32,150,176,0,32,154,176,0,32,156,176,0,32,160,176,0,32,162,176,0,32,164,176,0,32,166,176,0,32,168,176,0,32,172,176,0,32,178,176,0,32,180,176,0,32,182,176,0,32,184,176,0,32,186,176,0,32,188,176,0,32,190,176,0,32,194,176,0,32,198,176,0,32,200,176,0,32,202,176,0,32,206,176,0,32,208,176,0,32,210,176,0,32,212,176,0,32,218,176,0,32,220,176,0,32,224,176,0,32,228,176,0,32,230,176,0,32,232,176,0,32,234,176,0,32,236,176,0,32,238,176,0,32,242,176,0,32,244,176,0,32,246,176,0,32,250,176,0,32,252,176,0,32,0,177,0,32,2,177,0,32,4,177,0,32,8,177,0,32,12,177,0,32,16,177,0,32,18,177,0,32,22,177,0,32,26,177,0,32,28,177,0,32,30,177,0,32,34,177,0,32,36,177,0,32,38,177,0,32,42,177,0,32,46,177,0,32,48,177,0,32,50,177,0,32,54,177,0,32,56,177,0,32,60,177,0,32,62,177,0,32,70,177,0,32,74,177,0,32,82,177,0,32,86,177,0,32,88,177,0,32,90,177,0,32,94,177,0,32,98,177,0,32,102,177,0,32,104,177,0,32,108,177,0,32,112,177,0,32,114,177,0,32,118,177,0,32,122,177,0,32,124,177,0,32,126,177,0,32,130,177,0,32,132,177,0,32,134,177,0,32,136,177,0,32,138,177,0,32,140,177,0,32,142,177,0,32,146,177,0,32,148,177,0,32,152,177,0,32,158,177,0,32,162,177,0,32,164,177,0,32,168,177,0,32,170,177,0,32,172,177,0,32,174,177,0,32,176,177,0,32,180,177,0,32,184,177,0,32,186,177,0,32,188,177,0,32,198,177,0,32,202,177,0,32,204,177,0,32,208,177,0,32,210,177,0,32,212,177,0,32,214,177,0,32,216,177,0,32,218,177,0,32,222,177,0,32,224,177,0,32,226,177,0,32,228,177,0,32,232,177,0,32,236,177,0,32,238,177,0,32,242,177,0,32,244,177,0,32,248,177,0,32,250,177,0,32,0,178,0,32,2,178,0,32,4,178,0,32,6,178,0,32,12,178,0,32,16,178,0,32,20,178,0,32,24,178,0,32,28,178,0,32,32,178,0,32,34,178,0,32,36,178,0,32,38,178,0,32,40,178,0,32,42,178,0,32,48,178,0,32,52,178,0,32,54,178,0,32,56,178,0,32,58,178,0,32,60,178,0,32,64,178,0,32,68,178,0,32,70,178,0,32,72,178,0,32,74,178,0,32,76,178,0,32,80,178,0,32,84,178,0,32,88,178,0,32,90,178,0,32,92,178,0,32,94,178,0,32,98,178,0,32,102,178,0,32,106,178,0,32,108,178,0,32,112,178,0,32,116,178,0,32,120,178,0,32,122,178,0,32,124,178,0,32,128,178,0,32,132,178,0,32,136,178,0,32,142,178,0,32,144,178,0,32,150,178,0,32,154,178,0,32,160,178,0,32,162,178,0,32,170,178,0,32,174,178,0,32,176,178,0,32,178,178,0,32,182,178,0,32,184,178,0,32,186,178,0,32,188,178,0,32,190,178,0,32,194,178,0,32,196,178,0,32,200,178,0,32,204,178,0,32,208,178,0,32,212,178,0,32,214,178,0,32,218,178,0,32,220,178,0,32,222,178,0,32,224,178,0,32,226,178,0,32,234,178,0,32,236,178,0,32,242,178,0,32,244,178,0,32,248,178,0,32,250,178,0,32,254,178,0,32,0,179,0,32,2,179,0,32,6,179,0,32,10,179,0,32,14,179,0,32,18,179,0,32,22,179,0,32,26,179,0,32,30,179,0,32,34,179,0,32,38,179,0,32,40,179,0,32,42,179,0,32,46,179,0,32,48,179,0,32,50,179,0,32,58,179,0,32,62,179,0,32,64,179,0,32,66,179,0,32,70,179,0,32,78,179,0,32,82,179,0,32,84,179,0,32,86,179,0,32,88,179,0,32,90,179,0,32,92,179,0,32,98,179,0,32,100,179,0,32,102,179,0,32,104,179,0,32,110,179,0,32,112,179,0,32,114,179,0,32,122,179,0,32,126,179,0,32,128,179,0,32,130,179,0,32,132,179,0,32,136,179,0,32,140,179,0,32,142,179,0,32,146,179,0,32,154,179,0,32,158,179,0,32,160,179,0,32,164,179,0,32,168,179,0,32,170,179,0,32,174,179,0,32,178,179,0,32,180,179,0,32,182,179,0,32,184,179,0,32,188,179,0,32,190,179,0,32,194,179,0,32,198,179,0,32,202,179,0,32,204,179,0,32,210,179,0,32,214,179,0,32,218,179,0,32,222,179,0,32,224,179,0,32,230,179,0,32,232,179,0,32,234,179,0,32,236,179,0,32,238,179,0,32,240,179,0,32,244,179,0,32,246,179,0,32,248,179,0,32,0,180,0,32,4,180,0,32,16,180,0,32,24,180,0,32,26,180,0,32,30,180,0,32,34,180,0,32,38,180,0,32,40,180,0,32,44,180,0,32,46,180,0,32,50,180,0,32,52,180,0,32,56,180,0,32,60,180,0,32,68,180,0,32,74,180,0,32,78,180,0,32,82,180,0,32,84,180,0,32,88,180,0,32,90,180,0,32,92,180,0,32,96,180,0,32,98,180,0,32,106,180,0,32,110,180,0,32,112,180,0,32,116,180,0,32,120,180,0,32,124,180,0,32,126,180,0,32,130,180,0,32,132,180,0,32,136,180,0,32,140,180,0,32,144,180,0,32,146,180,0,32,152,180,0,32,154,180,0,32,156,180,0,32,158,180,0,32,160,180,0,32,162,180,0,32,166,180,0,32,170,180,0,32,180,180,0,32,184,180,0,32,188,180,0,32,190,180,0,32,192,180,0,32,196,180,0,32,200,180,0,32,204,180,0,32,208,180,0,32,210,180,0,32,212,180,0,32,214,180,0,32,216,180,0,32,222,180,0,32,226,180,0,32,230,180,0,32,232,180,0,32,236,180,0,32,240,180,0,32,242,180,0,32,246,180,0,32,248,180,0,32,250,180,0,32,254,180,0,32,0,181,0,32,6,181,0,32,10,181,0,32,14,181,0,32,16,181,0,32,18,181,0,32,20,181,0,32,28,181,0,32,30,181,0,32,32,181,0,32,38,181,0,32,42,181,0,32,44,181,0,32,48,181,0,32,50,181,0,32,56,181,0,32,60,181,0,32,66,181,0,32,70,181,0,32,78,181,0,32,84,181,0,32,86,181,0,32,92,181,0,32,96,181,0,32,98,181,0,32,102,181,0,32,104,181,0,32,108,181,0,32,112,181,0,32,116,181,0,32,118,181,0,32,120,181,0,32,122,181,0,32,124,181,0,32,126,181,0,32,128,181,0,32,132,181,0,32,136,181,0,32,138,181,0,32,140,181,0,32,144,181,0,32,148,181,0,32,152,181,0,32,154,181,0,32,158,181,0,32,162,181,0,32,166,181,0,32,168,181,0,32,170,181,0,32,172,181,0,32,176,181,0,32,178,181,0,32,180,181,0,32,182,181,0,32,184,181,0,32,186,181,0,32,188,181,0,32,192,181,0,32,196,181,0,32,198,181,0,32,200,181,0,32,204,181,0,32,206,181,0,32,208,181,0,32,210,181,0,32,212,181,0,32,214,181,0,32,216,181,0,32,218,181,0,32,220,181,0,32,222,181,0,32,228,181,0,32,232,181,0,32,236,181,0,32,238,181,0,32,240,181,0,32,242,181,0,32,244,181,0,32,246,181,0,32,2,182,0,32,6,182,0,32,8,182,0,32,12,182,0,32,14,182,0,32,2,0,119,14,161,14,170,170,142,17,1,80,151,17,1,144,1,0,111,14,181,186,0,32,118,1,0,0,158,17,1,144,163,17,1,144,168,17,1,144,173,17,1,144,178,17,1,144,183,17,1,144,188,17,1,144,193,17,1,144,198,17,1,144,203,17,1,144,208,17,1,144,213,17,1,144,218,17,1,144,223,17,1,144,228,17,1,144,233,17,1,144,238,17,1,144,243,17,1,144,248,17,1,144,253,17,1,144,2,18,1,144,7,18,1,144,12,18,1,144,17,18,1,144,22,18,1,144,27,18,1,144,32,18,1,144,37,18,1,144,42,18,1,144,47,18,1,144,52,18,1,144,57,18,1,144,62,18,1,144,67,18,1,144,72,18,1,144,77,18,1,144,82,18,1,144,87,18,1,144,92,18,1,144,97,18,1,144,102,18,1,144,107,18,1,144,112,18,1,144,117,18,1,144,122,18,1,144,127,18,1,144,132,18,1,144,137,18,1,144,142,18,1,144,147,18,1,144,152,18,1,144,157,18,1,144,162,18,1,144,167,18,1,144,172,18,1,144,177,18,1,144,182,18,1,144,187,18,1,144,192,18,1,144,197,18,1,144,202,18,1,144,207,18,1,144,212,18,1,144,217,18,1,144,222,18,1,144,227,18,1,144,232,18,1,144,237,18,1,144,242,18,1,144,247,18,1,144,252,18,1,144,1,19,1,144,6,19,1,144,11,19,1,144,16,19,1,144,21,19,1,144,26,19,1,144,31,19,1,144,36,19,1,144,41,19,1,144,46,19,1,144,51,19,1,144,56,19,1,144,61,19,1,144,66,19,1,144,71,19,1,144,76,19,1,144,81,19,1,144,86,19,1,144,91,19,1,144,96,19,1,144,101,19,1,144,106,19,1,144,111,19,1,144,116,19,1,144,121,19,1,144,126,19,1,144,131,19,1,144,136,19,1,144,141,19,1,144,146,19,1,144,151,19,1,144,156,19,1,144,161,19,1,144,166,19,1,144,171,19,1,144,176,19,1,144,181,19,1,144,186,19,1,144,191,19,1,144,196,19,1,144,201,19,1,144,206,19,1,144,211,19,1,144,216,19,1,144,221,19,1,144,226,19,1,144,231,19,1,144,236,19,1,144,241,19,1,144,246,19,1,144,251,19,1,144,0,20,1,144,5,20,1,144,10,20,1,144,15,20,1,144,20,20,1,144,25,20,1,144,30,20,1,144,35,20,1,144,40,20,1,144,45,20,1,144,50,20,1,144,55,20,1,144,60,20,1,144,65,20,1,144,70,20,1,144,75,20,1,144,80,20,1,144,85,20,1,144,90,20,1,144,95,20,1,144,100,20,1,144,105,20,1,144,110,20,1,144,115,20,1,144,120,20,1,144,125,20,1,144,130,20,1,144,135,20,1,144,140,20,1,144,145,20,1,144,150,20,1,144,155,20,1,144,160,20,1,144,165,20,1,144,170,20,1,144,175,20,1,144,180,20,1,144,185,20,1,144,190,20,1,144,195,20,1,144,200,20,1,144,205,20,1,144,210,20,1,144,215,20,1,144,220,20,1,144,225,20,1,144,230,20,1,144,235,20,1,144,240,20,1,144,245,20,1,144,250,20,1,144,255,20,1,144,4,21,1,144,9,21,1,144,14,21,1,144,19,21,1,144,24,21,1,144,29,21,1,144,34,21,1,144,39,21,1,144,44,21,1,144,49,21,1,144,54,21,1,144,59,21,1,144,64,21,1,144,69,21,1,144,74,21,1,144,79,21,1,144,84,21,1,144,89,21,1,144,94,21,1,144,99,21,1,144,104,21,1,144,109,21,1,144,114,21,1,144,119,21,1,144,124,21,1,144,129,21,1,144,134,21,1,144,139,21,1,144,144,21,1,144,149,21,1,144,154,21,1,144,159,21,1,144,164,21,1,144,169,21,1,144,174,21,1,144,179,21,1,144,184,21,1,144,189,21,1,144,194,21,1,144,199,21,1,144,204,21,1,144,209,21,1,144,214,21,1,144,219,21,1,144,224,21,1,144,229,21,1,144,234,21,1,144,239,21,1,144,244,21,1,144,249,21,1,144,254,21,1,144,3,22,1,144,8,22,1,144,13,22,1,144,18,22,1,144,23,22,1,144,28,22,1,144,33,22,1,144,38,22,1,144,43,22,1,144,48,22,1,144,53,22,1,144,58,22,1,144,63,22,1,144,68,22,1,144,73,22,1,144,78,22,1,144,83,22,1,144,88,22,1,144,93,22,1,144,98,22,1,144,103,22,1,144,108,22,1,144,113,22,1,144,118,22,1,144,123,22,1,144,128,22,1,144,133,22,1,144,138,22,1,144,143,22,1,144,148,22,1,144,153,22,1,144,158,22,1,144,163,22,1,144,168,22,1,144,173,22,1,144,178,22,1,144,183,22,1,144,188,22,1,144,193,22,1,144,198,22,1,144,203,22,1,144,208,22,1,144,213,22,1,144,218,22,1,144,223,22,1,144,228,22,1,144,233,22,1,144,238,22,1,144,243,22,1,144,248,22,1,144,253,22,1,144,2,23,1,144,7,23,1,144,12,23,1,144,17,23,1,144,22,23,1,144,27,23,1,144,32,23,1,144,37,23,1,144,42,23,1,144,47,23,1,144,52,23,1,144,57,23,1,144,62,23,1,144,67,23,1,144,72,23,1,144,77,23,1,144,82,23,1,144,87,23,1,144,92,23,1,144,97,23,1,144,102,23,1,144,107,23,1,144,112,23,1,144,117,23,1,144,122,23,1,144,127,23,1,144,132,23,1,144,137,23,1,144,142,23,1,144,147,23,1,144,152,23,1,144,157,23,1,144,162,23,1,144,167,23,1,144,172,23,1,144,177,23,1,144,182,23,1,144,187,23,1,144,192,23,1,144,197,23,1,144,202,23,1,144,207,23,1,144,212,23,1,144,217,23,1,144,222,23,1,144,227,23,1,144,232,23,1,144,237,23,1,144,242,23,1,144,247,23,1,144,252,23,1,144,1,24,1,144,6,24,1,144,11,24,1,144,16,24,1,144,21,24,1,144,26,24,1,144,31,24,1,144,36,24,1,144,41,24,1,144,46,24,1,144,51,24,1,144,56,24,1,144,61,24,1,144,66,24,1,144,71,24,1,144,76,24,1,144,81,24,1,144,86,24,1,144,91,24,1,144,96,24,1,144,101,24,1,144,106,24,1,144,111,24,1,144,116,24,1,144,121,24,1,144,126,24,1,144,131,24,1,144,136,24,1,144,141,24,1,144,146,24,1,144,151,24,1,144,156,24,1,144,161,24,1,144,166,24,1,144,171,24,1,144,176,24,1,144,181,24,1,144,186,24,1,144,191,24,1,144,196,24,1,144,201,24,1,144,206,24,1,144,211,24,1,144,216,24,1,144,221,24,1,144,226,24,1,144,231,24,1,144,1,0,111,14,187,186,0,128,2,0,0,0,41,1,0,0,210,0,0,0,2,0,213,14,231,14,170,170,0,0,0,112,52,188,0,224,1,0,14,15,1,0,0,112,1,0,244,14,59,188,0,32,1,0,14,15,1,0,0,112,2,0,0,0,23,1,0,0,216,0,0,0,2,0,244,14,231,14,170,170,63,188,0,32,65,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,72,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,77,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,82,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,87,188,0,224,1,0,213,14,2,0,0,112,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,94,188,0,224,1,0,14,15,1,0,0,112,1,0,244,14,99,188,0,32,1,0,14,15,0,0,0,112,2,0,213,14,244,14,170,170,1,0,0,112,103,188,0,32,1,0,14,15,0,0,0,112,2,0,213,14,244,14,170,170,2,0,0,112,109,188,0,32,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,115,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,120,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,125,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,130,188,0,224,1,0,14,15,1,0,0,112,2,0,0,0,23,1,0,0,216,0,0,0,2,0,244,14,231,14,170,170,135,188,0,32,137,188,0,224,1,0,14,15,1,0,0,112,1,0,244,14,144,188,0,32,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,148,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,2,0,213,14,231,14,170,170,1,0,0,112,153,188,0,224,2,0,0,0,23,1,0,0,216,0,0,0,1,0,231,14,160,188,0,224,21,0,12,24,241,14,26,15,61,24,29,15,32,15,35,15,38,15,41,15,44,15,47,15,50,15,53,15,56,15,59,15,62,15,65,15,68,15,71,15,150,14,74,15,55,188,0,32,61,188,0,32,68,188,0,32,75,188,0,32,80,188,0,32,85,188,0,32,90,188,0,32,92,188,0,32,97,188,0,32,101,188,0,32,105,188,0,32,111,188,0,32,118,188,0,32,123,188,0,32,128,188,0,32,133,188,0,32,140,188,0,32,146,188,0,32,151,188,0,32,156,188,0,32,163,188,0,32,9,0,91,15,98,15,105,15,111,15,118,15,253,7,124,15,130,15,135,15,236,24,1,144,65,25,1,144,153,203,0,96,75,25,1,144,35,107,0,96,98,25,1,144,101,25,1,144,113,25,1,144,11,206,0,96,2,0,190,15,201,15,170,170,164,205,0,96,157,25,1,144,1,0,166,15,211,188,0,32,162,1,237,15,35,3,38,3,240,15,41,3,243,15,246,15,249,15,252,15,255,15,44,3,2,16,5,16,47,3,8,16,11,16,14,16,50,3,17,16,20,16,23,16,25,24,26,16,31,24,241,14,29,16,32,16,35,16,26,15,61,24,38,16,41,16,44,16,85,24,47,16,29,15,50,16,53,3,32,15,35,15,53,16,56,16,59,16,62,16,65,16,59,3,68,16,71,16,74,16,62,3,37,24,77,16,65,3,71,3,43,24,74,3,80,16,83,16,86,16,89,16,92,16,38,15,95,16,98,16,101,16,104,16,107,16,110,16,49,24,113,16,41,15,116,16,119,16,122,16,125,16,121,15,128,16,77,3,131,16,80,3,73,24,83,3,86,3,134,16,91,24,137,16,89,3,92,3,140,16,143,16,146,16,149,16,95,3,152,16,155,16,98,3,101,3,158,16,161,16,104,3,164,16,167,16,170,16,47,15,173,16,176,16,179,16,182,16,107,3,110,3,185,16,188,16,191,16,194,16,197,16,200,16,203,16,50,15,206,16,116,3,209,16,212,16,119,3,215,16,53,15,122,3,218,16,221,16,125,3,224,16,56,15,227,16,230,16,233,16,236,16,239,16,128,3,59,15,55,24,242,16,62,15,131,3,245,16,134,3,127,15,68,15,248,16,137,3,251,16,254,16,1,17,4,17,140,3,7,17,10,17,143,3,13,17,146,3,16,17,19,17,22,17,25,17,28,17,31,17,34,17,37,17,40,17,43,17,71,15,149,3,46,17,152,3,49,17,155,3,158,3,52,17,161,3,164,3,55,17,167,3,58,17,61,17,188,24,64,17,67,17,70,17,73,17,150,14,76,17,170,3,79,17,74,15,82,17,85,17,88,17,91,17,176,3,133,24,94,17,97,17,100,17,105,17,109,17,113,17,117,17,121,17,125,17,129,17,133,17,137,17,143,17,149,17,154,17,159,17,164,17,169,17,174,17,179,17,184,17,189,17,194,17,199,17,204,17,209,17,214,17,218,17,222,17,227,17,232,17,237,17,242,17,247,17,252,17,1,18,6,18,11,18,16,18,21,18,26,18,31,18,36,18,41,18,46,18,51,18,56,18,61,18,66,18,71,18,76,18,81,18,86,18,91,18,96,18,101,18,106,18,111,18,116,18,121,18,126,18,131,18,136,18,141,18,146,18,151,18,156,18,161,18,166,18,171,18,176,18,181,18,186,18,191,18,196,18,201,18,206,18,211,18,216,18,221,18,226,18,231,18,236,18,241,18,245,18,249,18,253,18,1,19,7,19,13,19,19,19,25,19,31,19,37,19,43,19,49,19,55,19,61,19,67,19,73,19,79,19,85,19,91,19,97,19,103,19,107,19,111,19,115,19,119,19,123,19,127,19,131,19,135,19,139,19,143,19,147,19,151,19,156,19,161,19,166,19,171,19,176,19,181,19,186,19,190,19,194,19,198,19,202,19,207,19,211,19,215,19,219,19,223,19,227,19,231,19,235,19,239,19,244,19,249,19,254,19,3,20,8,20,13,20,18,20,23,20,28,20,33,20,38,20,43,20,48,20,53,20,58,20,63,20,68,20,73,20,78,20,82,20,86,20,90,20,94,20,98,20,102,20,106,20,110,20,114,20,118,20,122,20,127,20,132,20,137,20,142,20,147,20,152,20,157,20,162,20,167,20,172,20,177,20,182,20,187,20,192,20,197,20,202,20,207,20,212,20,217,20,222,20,227,20,232,20,236,20,240,20,244,20,248,20,252,20,0,21,4,21,8,21,12,21,16,21,21,21,26,21,31,21,36,21,41,21,46,21,51,21,56,21,61,21,66,21,71,21,76,21,81,21,86,21,91,21,96,21,101,21,106,21,110,21,114,21,118,21,170,170,169,25,1,144,177,25,1,144,185,25,1,144,220,25,1,144,229,25,1,144,242,25,1,144,254,25,1,144,17,26,1,144,42,26,1,144,52,26,1,144,61,26,1,144,132,26,1,144,136,26,1,144,148,26,1,144,157,26,1,144,161,26,1,144,175,26,1,144,204,26,1,144,209,26,1,144,228,26,1,144,241,26,1,144,246,26,1,144,0,27,1,144,4,27,1,144,32,27,1,144,65,27,1,144,86,27,1,144,103,27,1,144,111,27,1,144,118,27,1,144,132,27,1,144,159,27,1,144,177,27,1,144,190,27,1,144,217,27,1,144,232,27,1,144,249,27,1,144,4,28,1,144,39,28,1,144,73,28,1,144,81,28,1,144,98,28,1,144,101,28,1,144,108,28,1,144,123,28,1,144,140,28,1,144,147,28,1,144,153,28,1,144,164,28,1,144,175,28,1,144,224,28,1,144,249,28,1,144,9,29,1,144,37,29,1,144,44,29,1,144,64,29,1,144,77,29,1,144,97,29,1,144,103,29,1,144,108,29,1,144,135,29,1,144,145,29,1,144,150,29,1,144,158,29,1,144,171,29,1,144,188,29,1,144,194,29,1,144,201,29,1,144,210,29,1,144,213,29,1,144,228,29,1,144,251,29,1,144,0,30,1,144,11,30,1,144,30,30,1,144,52,30,1,144,63,30,1,144,107,30,1,144,115,30,1,144,120,30,1,144,127,30,1,144,164,30,1,144,181,30,1,144,213,30,1,144,222,30,1,144,243,30,1,144,2,31,1,144,15,31,1,144,63,31,1,144,111,31,1,144,121,31,1,144,147,31,1,144,151,31,1,144,155,31,1,144,158,31,1,144,171,31,1,144,189,31,1,144,196,31,1,144,214,31,1,144,233,31,1,144,242,31,1,144,253,31,1,144,9,32,1,144,19,32,1,144,35,32,1,144,46,32,1,144,57,32,1,144,70,32,1,144,114,32,1,144,137,32,1,144,150,32,1,144,168,32,1,144,206,32,1,144,231,32,1,144,238,32,1,144,241,32,1,144,66,33,1,144,78,33,1,144,94,33,1,144,117,33,1,144,133,33,1,144,202,33,1,144,215,33,1,144,237,33,1,144,241,33,1,144,18,34,1,144,35,34,1,144,47,34,1,144,62,34,1,144,71,34,1,144,109,34,1,144,127,34,1,144,146,34,1,144,160,34,1,144,173,34,1,144,188,34,1,144,206,34,1,144,218,34,1,144,233,34,1,144,4,35,1,144,27,35,1,144,45,35,1,144,53,35,1,144,70,35,1,144,87,35,1,144,108,35,1,144,125,35,1,144,144,35,1,144,153,35,1,144,196,35,1,144,217,35,1,144,45,36,1,144,51,36,1,144,65,36,1,144,76,36,1,144,104,36,1,144,123,36,1,144,145,36,1,144,151,36,1,144,155,36,1,144,112,37,1,144,121,37,1,144,127,37,1,144,137,37,1,144,152,37,1,144,171,37,1,144,182,37,1,144,193,37,1,144,201,37,1,144,216,37,1,144,231,37,1,144,236,37,1,144,4,38,1,144,10,38,1,144,89,38,1,144,95,38,1,144,109,38,1,144,116,38,1,144,141,38,1,144,147,38,1,144,229,38,1,144,245,38,1,144,254,38,1,144,21,39,1,144,53,39,1,144,81,39,1,144,86,39,1,144,96,39,1,144,154,39,1,144,174,39,1,144,189,39,1,144,196,39,1,144,222,39,1,144,30,40,1,144,37,40,1,144,41,40,1,144,53,40,1,144,76,40,1,144,86,40,1,144,97,40,1,144,108,40,1,144,117,40,1,144,124,40,1,144,136,40,1,144,150,40,1,144,161,40,1,144,170,40,1,144,179,40,1,144,184,40,1,144,189,40,1,144,195,40,1,144,201,40,1,144,208,40,1,144,110,116,0,96,211,40,1,144,215,40,1,144,219,40,1,144,224,40,1,144,228,40,1,144,234,40,1,144,238,40,1,144,243,40,1,144,247,40,1,144,252,40,1,144,1,41,1,144,10,41,1,144,25,41,1,144,38,41,1,144,46,41,1,144,54,41,1,144,58,41,1,144,66,41,1,144,71,41,1,144,77,41,1,144,82,41,1,144,88,41,1,144,96,41,1,144,102,41,1,144,107,41,1,144,114,41,1,144,119,41,1,144,124,41,1,144,128,41,1,144,132,41,1,144,135,41,1,144,140,41,1,144,144,41,1,144,147,41,1,144,152,41,1,144,156,41,1,144,6,118,0,96,173,41,1,144,182,41,1,144,186,41,1,144,190,41,1,144,194,41,1,144,203,41,1,144,207,41,1,144,215,41,1,144,220,41,1,144,224,41,1,144,233,41,1,144,237,41,1,144,242,41,1,144,248,41,1,144,1,42,1,144,215,39,0,96,236,106,0,96,5,42,1,144,15,42,1,144,21,42,1,144,24,42,1,144,29,42,1,144,32,42,1,144,247,51,0,96,227,51,0,96,48,108,0,96,232,51,0,96,37,42,1,144,207,51,0,96,41,42,1,144,45,42,1,144,51,42,1,144,55,42,1,144,59,42,1,144,63,42,1,144,66,42,1,144,80,42,1,144,89,42,1,144,94,42,1,144,101,42,1,144,113,42,1,144,119,42,1,144,128,42,1,144,141,42,1,144,147,42,1,144,161,42,1,144,168,42,1,144,174,42,1,144,70,43,1,144,82,43,1,144,115,43,1,144,138,43,1,144,144,43,1,144,150,43,1,144,155,43,1,144,161,43,1,144,167,43,1,144,171,43,1,144,178,43,1,144,184,43,1,144,188,43,1,144,191,43,1,144,195,43,1,144,199,43,1,144,206,43,1,144,212,43,1,144,215,43,1,144,219,43,1,144,222,43,1,144,229,43,1,144,240,43,1,144,246,43,1,144,3,44,1,144,10,44,1,144,14,44,1,144,18,44,1,144,26,44,1,144,31,44,1,144,42,44,1,144,52,44,1,144,60,44,1,144,74,44,1,144,80,44,1,144,95,44,1,144,104,44,1,144,117,44,1,144,120,44,1,144,128,44,1,144,133,44,1,144,138,44,1,144,148,44,1,144,159,44,1,144,162,44,1,144,168,44,1,144,174,44,1,144,179,44,1,144,182,44,1,144,188,44,1,144,195,44,1,144,198,44,1,144,204,44,1,144,214,44,1,144,220,44,1,144,230,44,1,144,236,44,1,144,240,44,1,144,244,44,1,144,248,44,1,144,254,44,1,144,2,45,1,144,5,45,1,144,8,45,1,144,11,45,1,144,14,45,1,144,20,45,1,144,28,45,1,144,37,45,1,144,43,45,1,144,50,45,1,144,58,45,1,144,63,45,1,144,68,45,1,144,75,45,1,144,84,45,1,144,93,45,1,144,102,45,1,144,112,45,1,144,121,45,1,144,127,45,1,144,137,45,1,144,146,45,1,144,152,45,1,144,158,45,1,144,163,45,1,144,168,45,1,144,171,45,1,144,186,45,1,144,197,45,1,144,207,45,1,144,214,45,1,144,228,45,1,144,232,45,1,144,236,45,1,144,240,45,1,144,244,45,1,144,247,45,1,144,252,45,1,144,2,46,1,144,10,46,1,144,17,46,1,144,24,46,1,144,29,46,1,144,36,46,1,144,41,46,1,144,46,46,1,144,54,46,1,144,58,46,1,144,64,46,1,144,69,46,1,144,76,46,1,144,82,46,1,144,88,46,1,144,94,46,1,144,102,46,1,144,129,46,1,144,167,46,1,144,205,46,1,144,3,0,12,24,143,21,179,21,42,48,1,144,50,112,0,96,46,48,1,144,8,0,12,24,171,21,187,21,199,21,203,21,148,1,168,1,184,1,170,170,172,0,0,96,178,0,0,96,124,2,0,96,49,48,1,144,52,48,1,144,55,48,1,144,28,2,0,96,58,48,1,144,6,0,254,21,116,2,114,15,2,22,5,22,8,22,170,170,61,48,1,144,65,48,1,144,70,48,1,144,74,48,1,144,102,48,1,144,122,48,1,144,32,0,12,24,143,21,147,21,151,21,155,21,159,21,163,21,167,21,171,21,175,21,179,21,183,21,187,21,191,21,195,21,199,21,203,21,207,21,211,21,215,21,219,21,136,1,140,1,148,1,101,15,168,1,180,1,184,1,223,21,226,21,245,3,245,21,170,170,241,46,1,144,247,46,1,144,253,46,1,144,14,47,1,144,20,47,1,144,38,47,1,144,47,47,1,144,70,47,1,144,80,47,1,144,90,47,1,144,96,47,1,144,101,47,1,144,107,47,1,144,136,47,1,144,145,47,1,144,155,47,1,144,167,47,1,144,185,47,1,144,192,47,1,144,198,47,1,144,207,47,1,144,218,47,1,144,224,47,1,144,230,47,1,144,249,47,1,144,254,47,1,144,9,48,1,144,26,48,1,144,36,48,1,144,77,191,0,32,82,191,0,32,95,191,0,32,1,0,28,22,112,201,250,114,3,0,0,0,116,33,108,3,112,201,250,2,224,204,39,3,2,0,68,14,45,22,170,170,154,191,0,32,156,191,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,118,243,114,1,0,28,22,240,61,242,114,1,0,28,22,176,221,231,114,3,0,0,0,92,88,137,3,32,119,252,2,80,185,67,3,4,0,122,8,67,12,150,8,45,22,170,170,164,191,0,32,168,191,0,32,170,191,0,32,172,191,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,1,0,28,22,112,238,223,114,1,0,28,22,96,79,243,114,1,0,28,22,48,82,223,114,1,0,28,22,96,26,231,114,1,0,28,22,208,216,224,114,3,0,0,0,0,104,173,3,224,105,249,2,40,189,101,3,7,0,185,13,17,5,68,14,22,10,75,8,66,6,45,22,183,191,0,32,187,191,0,32,189,191,0,32,191,191,0,32,193,191,0,32,195,191,0,32,197,191,0,224,2,0,28,22,71,22,170,170,176,198,214,114,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,1,0,28,22,176,108,229,114,1,0,28,22,176,9,183,114,1,0,28,22,192,64,222,114,2,0,56,22,28,22,170,170,131,212,0,96,240,61,242,114,3,0,0,0,228,31,158,3,232,247,239,2,166,87,107,3,2,0,56,22,28,22,170,170,140,212,0,96,16,4,223,114,1,0,28,22,96,40,187,114,2,0,56,22,28,22,170,170,140,212,0,96,240,151,227,114,10,0,92,5,22,10,212,7,85,22,119,11,66,6,45,22,38,11,231,11,93,22,170,170,212,191,0,32,216,191,0,32,220,191,0,32,222,191,0,32,224,191,0,32,226,191,0,32,230,191,0,224,234,191,0,32,238,191,0,32,240,191,0,32,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,0,221,222,114,3,0,0,0,120,237,135,3,112,201,250,2,158,244,70,3,3,0,68,14,70,4,45,22,4,192,0,32,8,192,0,32,10,192,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,168,175,119,3,48,45,250,2,36,188,58,3,2,0,68,14,45,22,170,170,19,192,0,32,23,192,0,224,1,0,28,22,48,82,223,114,1,0,28,22,176,85,212,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,164,5,153,3,128,115,250,2,2,47,91,3,4,0,63,12,53,10,130,12,45,22,170,170,31,192,0,32,33,192,0,32,35,192,0,32,39,192,0,224,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,16,117,225,114,3,0,0,0,8,218,151,3,224,224,250,2,52,26,91,3,4,0,19,12,30,6,134,20,45,22,170,170,50,192,0,32,52,192,0,32,56,192,0,32,58,192,0,224,2,0,104,22,28,22,170,170,224,52,237,114,208,126,239,114,1,0,28,22,240,98,215,114,2,0,56,22,28,22,170,170,131,212,0,96,112,231,245,114,3,0,0,0,128,189,165,3,64,108,246,2,167,182,106,3,1,0,28,22,16,27,240,114,5,0,212,8,209,8,70,4,45,22,118,13,69,192,0,32,73,192,0,32,75,192,0,32,79,192,0,224,83,192,0,32,3,0,0,0,248,110,104,3,112,201,250,2,224,8,30,3,1,0,28,22,32,119,252,114,2,0,45,22,122,13,170,170,93,192,0,224,97,192,0,32,1,0,28,22,160,249,199,114,1,0,28,22,96,26,231,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,112,19,197,114,3,0,0,0,52,219,176,3,120,158,250,2,199,176,108,3,5,0,213,12,68,14,67,12,115,21,45,22,103,192,0,32,105,192,0,32,107,192,0,32,111,192,0,32,113,192,0,224,2,0,56,22,28,22,170,170,122,212,0,96,80,123,250,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,0,0,208,12,127,3,80,123,250,2,162,132,63,3,3,0,68,14,183,19,45,22,125,192,0,32,129,192,0,32,133,192,0,224,1,0,28,22,48,45,250,114,2,0,56,22,28,22,170,170,131,212,0,96,80,123,250,114,1,0,28,22,208,209,246,114,1,0,28,22,240,91,237,114,2,0,56,22,28,22,170,170,140,212,0,96,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,96,33,209,114,1,0,28,22,160,39,234,114,2,0,56,22,28,22,170,170,140,212,0,96,16,207,210,114,3,0,0,0,232,131,169,3,96,162,250,2,185,2,100,3,9,0,29,5,103,13,68,14,150,8,252,12,20,8,87,4,178,19,45,22,142,192,0,32,144,192,0,32,148,192,0,32,150,192,0,32,152,192,0,32,156,192,0,32,160,192,0,32,162,192,0,32,166,192,0,224,2,0,56,22,28,22,170,170,122,212,0,96,64,84,250,114,1,0,28,22,160,196,187,114,1,0,28,22,48,82,223,114,3,0,0,0,0,243,179,3,112,201,250,2,9,163,105,3,1,0,28,22,96,153,189,114,1,0,28,22,80,160,223,114,6,0,68,14,244,7,87,4,45,22,192,13,125,22,170,170,184,192,0,32,188,192,0,32,190,192,0,32,192,192,0,224,196,192,0,32,198,192,0,32,1,0,28,22,144,60,224,114,2,0,56,22,28,22,170,170,131,212,0,96,80,123,250,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,3,0,0,0,248,156,138,3,128,115,250,2,68,14,73,3,4,0,68,14,120,19,56,11,45,22,170,170,210,192,0,32,212,192,0,32,216,192,0,32,220,192,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,0,0,136,50,131,3,32,119,252,2,240,248,59,3,2,0,165,12,45,22,170,170,231,192,0,32,235,192,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,2,0,56,22,28,22,170,170,131,212,0,96,48,135,235,114,1,0,28,22,64,211,208,114,3,0,0,0,232,105,165,3,176,232,250,2,234,78,103,3,1,0,28,22,192,154,207,114,1,0,28,22,32,96,235,114,1,0,28,22,32,133,208,114,7,0,19,12,139,22,134,20,45,22,10,13,22,13,82,13,243,192,0,32,247,192,0,32,251,192,0,32,253,192,0,224,1,193,0,32,3,193,0,32,5,193,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,56,22,28,22,71,22,131,212,0,96,112,201,250,114,32,13,228,114,1,0,28,22,16,140,242,114,2,0,56,22,28,22,170,170,131,212,0,96,0,131,237,114,2,0,56,22,28,22,170,170,131,212,0,96,224,52,237,114,3,0,56,22,28,22,71,22,131,212,0,96,224,52,237,114,32,13,228,114,3,0,0,0,44,94,154,3,96,162,250,2,71,88,92,3,7,0,178,5,147,22,68,14,252,12,16,14,155,22,45,22,18,193,0,32,22,193,0,32,27,193,0,32,29,193,0,32,33,193,0,32,37,193,0,32,42,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,8,59,140,3,200,228,250,2,96,186,75,3,2,0,68,14,45,22,170,170,57,193,0,32,61,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,32,133,208,114,1,0,28,22,96,109,238,114,1,0,28,22,16,11,201,114,1,0,28,22,48,149,191,114,1,0,28,22,160,166,192,114,1,0,28,22,16,94,208,114,1,0,28,22,16,64,213,114,2,0,104,22,28,22,170,170,128,187,238,114,16,87,230,114,2,0,104,22,28,22,170,170,112,5,241,114,32,13,228,114,3,0,0,0,188,81,173,3,40,124,244,2,219,125,119,3,11,0,151,5,249,5,68,14,166,7,64,10,96,10,136,10,170,11,186,11,188,12,45,22,69,193,0,32,73,193,0,32,75,193,0,32,77,193,0,32,79,193,0,32,81,193,0,32,83,193,0,32,85,193,0,32,87,193,0,32,91,193,0,32,95,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,1,0,28,22,240,174,244,114,2,0,56,22,28,22,170,170,131,212,0,96,160,122,241,114,2,0,56,22,28,22,170,170,131,212,0,96,176,18,244,114,3,0,0,0,112,220,170,3,112,201,250,2,23,138,103,3,1,0,28,22,224,52,237,114,2,0,28,22,71,22,170,170,160,69,229,114,32,13,228,114,7,0,103,13,68,14,150,8,120,19,45,22,156,13,14,5,116,193,0,32,120,193,0,32,122,193,0,32,126,193,0,32,130,193,0,224,134,193,0,32,136,193,0,32,1,0,28,22,64,144,240,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,1,0,28,22,192,200,241,114,3,0,0,0,100,255,152,3,88,15,240,2,34,238,104,3,6,0,194,6,1,7,163,22,150,8,84,10,45,22,170,170,151,193,0,32,153,193,0,32,155,193,0,32,157,193,0,32,161,193,0,32,163,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,0,161,232,114,1,0,28,22,208,126,239,114,1,0,28,22,176,48,239,114,3,0,0,0,220,32,165,3,0,178,250,2,114,31,97,3,1,0,28,22,240,91,237,114,6,0,85,5,103,13,68,14,47,13,45,22,101,10,170,170,177,193,0,32,181,193,0,32,183,193,0,32,185,193,0,32,187,193,0,224,191,193,0,32,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,1,0,28,22,16,117,225,114,3,0,0,0,20,99,158,3,144,29,250,2,228,201,88,3,3,0,185,13,75,8,45,22,203,193,0,32,207,193,0,32,209,193,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,253,197,114,2,0,56,22,28,22,170,170,131,212,0,96,240,174,244,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,224,36,198,114,3,0,0,0,124,124,144,3,64,239,245,2,194,143,103,3,5,0,68,14,150,8,138,12,171,7,45,22,218,193,0,32,222,193,0,32,226,193,0,32,230,193,0,32,232,193,0,224,1,0,28,22,208,126,239,114,2,0,56,22,28,22,170,170,131,212,0,96,112,5,241,114,3,0,0,0,204,102,151,3,128,38,242,2,198,182,103,3,1,0,28,22,48,165,230,114,4,0,23,7,150,8,45,22,14,11,170,170,244,193,0,32,246,193,0,32,250,193,0,224,254,193,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,152,230,120,3,112,201,250,2,72,149,51,3,2,0,150,8,45,22,170,170,7,194,0,32,11,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,184,249,114,3,0,0,0,28,158,141,3,96,162,250,2,60,236,66,3,2,0,68,14,45,22,170,170,19,194,0,32,23,194,0,224,1,0,28,22,16,4,223,114,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,3,0,0,0,12,178,152,3,208,60,250,2,30,82,78,3,1,0,28,22,240,91,237,114,5,0,68,14,115,12,177,22,45,22,125,22,31,194,0,32,33,194,0,32,37,194,0,32,41,194,0,224,45,194,0,32,1,0,28,22,160,30,173,114,2,0,56,22,28,22,170,170,131,212,0,96,128,187,238,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,144,7,212,114,2,0,56,22,28,22,170,170,131,212,0,96,64,144,240,114,3,0,0,0,80,77,160,3,192,152,249,2,239,134,103,3,6,0,229,4,84,7,67,12,115,21,135,11,45,22,170,170,55,194,0,32,57,194,0,32,61,194,0,32,65,194,0,32,67,194,0,32,71,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,161,232,114,1,0,28,22,80,10,248,114,3,0,0,0,88,81,123,3,64,84,250,2,192,6,59,3,3,0,120,19,56,11,45,22,85,194,0,32,89,194,0,32,91,194,0,224,1,0,28,22,0,251,217,114,1,0,28,22,0,161,232,114,1,0,28,22,192,101,195,114,1,0,28,22,128,118,187,114,1,0,28,22,128,111,209,114,1,0,28,22,16,94,208,114,1,0,28,22,0,145,193,114,1,0,28,22,208,27,193,114,2,0,56,22,28,22,170,170,131,212,0,96,240,144,249,114,3,0,0,0,64,0,183,3,128,121,249,2,132,61,120,3,2,0,56,22,28,22,170,170,140,212,0,96,64,211,208,114,1,0,28,22,48,209,181,114,1,0,28,22,32,110,191,114,13,0,103,13,68,14,67,12,177,7,87,4,38,6,164,8,97,11,70,4,45,22,141,13,220,13,234,22,100,194,0,32,102,194,0,32,104,194,0,32,106,194,0,32,108,194,0,32,110,194,0,32,112,194,0,32,114,194,0,32,116,194,0,32,120,194,0,224,124,194,0,32,128,194,0,32,130,194,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,24,94,149,3,160,68,250,2,249,98,76,3,2,0,68,14,45,22,170,170,152,194,0,32,156,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,218,242,114,1,0,28,22,240,91,237,114,1,0,28,22,112,95,226,114,1,0,28,22,80,70,238,114,3,0,0,0,52,67,143,3,192,188,243,2,174,43,83,3,1,0,28,22,48,248,237,114,6,0,198,6,68,14,99,9,241,7,45,22,70,13,170,170,164,194,0,32,168,194,0,32,170,194,0,32,172,194,0,32,174,194,0,224,178,194,0,32,3,0,0,0,0,195,62,3,112,201,250,2,32,119,252,2,1,0,28,22,32,119,252,114,2,0,45,22,122,13,170,170,190,194,0,224,194,194,0,32,1,0,28,22,96,33,209,114,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,3,0,0,0,212,122,153,3,120,170,248,2,43,7,90,3,2,0,56,22,28,22,170,170,131,212,0,96,32,36,245,114,4,0,251,11,68,14,45,22,207,23,170,170,200,194,0,32,202,194,0,32,206,194,0,224,210,194,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,0,131,237,114,3,0,0,0,8,134,165,3,224,224,250,2,80,244,100,3,3,0,88,9,47,13,45,22,221,194,0,32,225,194,0,32,229,194,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,0,244,239,114,3,0,0,0,200,45,137,3,40,106,247,2,174,84,77,3,3,0,68,14,67,12,45,22,238,194,0,32,242,194,0,32,244,194,0,224,1,0,28,22,240,181,222,114,1,0,28,22,144,127,192,114,1,0,28,22,80,227,191,114,1,0,28,22,64,211,208,114,2,0,56,22,28,22,170,170,140,212,0,96,160,23,195,114,1,0,28,22,176,39,178,114,2,0,56,22,28,22,170,170,140,212,0,96,0,145,193,114,1,0,28,22,96,100,177,114,1,0,28,22,48,149,191,114,1,0,28,22,224,43,176,114,1,0,28,22,64,248,181,114,1,0,28,22,64,135,179,114,1,0,28,22,160,16,217,114,2,0,56,22,28,22,170,170,140,212,0,96,16,244,183,114,2,0,56,22,28,22,170,170,140,212,0,96,192,48,183,114,1,0,28,22,208,50,210,114,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,0,221,222,114,1,0,28,22,208,20,215,114,1,0,28,22,240,181,222,114,2,0,56,22,28,22,170,170,131,212,0,96,32,66,240,114,1,0,28,22,0,168,210,114,2,0,56,22,28,22,170,170,140,212,0,96,0,152,171,114,1,0,28,22,224,202,212,114,1,0,28,22,128,254,206,114,1,0,28,22,144,37,207,114,1,0,28,22,112,139,177,114,1,0,28,22,112,12,219,114,3,0,104,22,56,22,28,22,32,66,240,114,140,212,0,96,128,254,206,114,3,0,104,22,56,22,28,22,32,66,240,114,140,212,0,96,128,254,206,114,1,0,28,22,160,76,207,114,1,0,28,22,144,7,212,114,1,0,28,22,224,43,176,114,1,0,28,22,32,200,176,114,1,0,28,22,208,27,193,114,1,0,28,22,128,201,194,114,1,0,28,22,48,209,181,114,1,0,28,22,176,115,207,114,1,0,28,22,144,74,180,114,1,0,28,22,112,132,199,114,1,0,28,22,0,2,196,114,1,0,28,22,16,161,176,114,1,0,28,22,0,221,222,114,1,0,28,22,64,211,208,114,1,0,28,22,160,46,212,114,1,0,28,22,16,161,176,114,1,0,28,22,144,120,214,114,1,0,28,22,112,72,209,114,1,0,28,22,64,181,213,114,1,0,28,22,144,37,207,114,1,0,28,22,208,193,207,114,1,0,28,22,208,163,212,114,3,0,0,0,120,192,180,3,112,201,250,2,173,128,107,3,1,0,28,22,96,176,206,114,1,0,28,22,0,55,208,114,1,0,28,22,128,194,216,114,1,0,28,22,208,163,212,114,1,0,28,22,96,100,177,114,1,0,28,22,16,4,223,114,1,0,28,22,32,43,223,114,60,0,185,13,5,5,194,0,151,5,21,6,57,6,225,13,69,6,81,6,85,6,101,6,115,6,103,13,135,6,139,6,63,12,68,14,67,12,22,10,12,7,150,8,174,7,200,7,75,12,252,12,20,8,27,8,87,4,200,10,188,22,38,6,97,11,44,9,119,9,154,0,76,10,80,10,120,19,239,10,5,8,21,11,25,11,41,11,76,11,100,11,115,11,70,4,173,13,47,13,244,10,16,14,154,20,45,22,101,10,158,12,28,8,149,13,184,13,47,14,210,9,170,170,253,194,0,32,255,194,0,32,1,195,0,32,3,195,0,32,5,195,0,32,9,195,0,32,11,195,0,32,15,195,0,32,17,195,0,32,19,195,0,32,21,195,0,32,23,195,0,32,25,195,0,32,27,195,0,32,31,195,0,32,35,195,0,32,37,195,0,32,41,195,0,32,43,195,0,32,45,195,0,32,47,195,0,32,51,195,0,32,53,195,0,32,57,195,0,32,59,195,0,32,61,195,0,32,63,195,0,32,65,195,0,32,67,195,0,32,72,195,0,32,77,195,0,32,79,195,0,32,81,195,0,32,83,195,0,32,85,195,0,32,87,195,0,32,89,195,0,32,91,195,0,32,93,195,0,32,95,195,0,32,97,195,0,32,99,195,0,32,101,195,0,32,103,195,0,32,105,195,0,32,107,195,0,32,109,195,0,32,111,195,0,32,113,195,0,32,115,195,0,32,117,195,0,32,119,195,0,32,121,195,0,224,125,195,0,32,127,195,0,32,129,195,0,32,131,195,0,32,133,195,0,32,135,195,0,32,137,195,0,32,2,0,56,22,28,22,170,170,122,212,0,96,80,70,238,114,1,0,28,22,112,88,248,114,3,0,0,0,68,53,106,3,112,201,250,2,32,141,34,3,3,0,68,14,177,22,45,22,230,195,0,32,234,195,0,32,236,195,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,56,226,114,2,0,56,22,28,22,170,170,140,212,0,96,240,181,222,114,2,0,56,22,28,22,170,170,140,212,0,96,240,38,225,114,1,0,28,22,144,120,214,114,1,0,28,22,112,238,223,114,2,0,56,22,28,22,170,170,140,212,0,96,0,18,235,114,1,0,28,22,32,246,210,114,2,0,56,22,28,22,170,170,140,212,0,96,96,79,243,114,3,0,0,0,176,254,157,3,160,223,245,2,20,144,118,3,9,0,150,8,157,8,209,8,151,9,167,9,170,9,55,13,171,7,45,22,245,195,0,32,249,195,0,32,253,195,0,32,1,196,0,32,3,196,0,32,5,196,0,32,9,196,0,32,11,196,0,32,15,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,80,40,243,114,1,0,28,22,64,211,208,114,2,0,56,22,28,22,170,170,131,212,0,96,80,40,243,114,3,0,0,0,248,112,137,3,48,81,244,2,46,162,95,3,4,0,150,8,209,8,63,13,45,22,170,170,33,196,0,32,37,196,0,32,39,196,0,32,43,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,128,127,248,114,1,0,28,22,128,21,224,114,3,0,0,0,12,3,152,3,176,119,248,2,155,145,94,3,3,0,150,8,209,8,45,22,54,196,0,32,58,196,0,32,60,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,209,246,114,1,0,28,22,16,253,244,114,2,0,56,22,28,22,170,170,131,212,0,96,144,226,238,114,3,0,56,22,28,22,71,22,122,212,0,96,80,153,245,114,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,176,251,226,114,2,0,28,22,71,22,170,170,144,173,226,114,32,13,228,114,1,0,28,22,32,156,225,114,2,0,56,22,28,22,170,170,140,212,0,96,224,202,212,114,1,0,28,22,144,150,209,114,3,0,0,0,156,196,170,3,112,201,250,2,207,80,99,3,1,0,28,22,128,254,206,114,11,0,103,13,68,14,150,8,170,7,87,4,147,9,70,4,32,7,194,11,45,22,180,13,69,196,0,32,73,196,0,32,75,196,0,32,79,196,0,32,84,196,0,32,88,196,0,32,92,196,0,32,94,196,0,32,98,196,0,32,100,196,0,224,104,196,0,32,2,0,104,22,28,22,170,170,224,52,237,114,240,91,237,114,2,0,104,22,28,22,170,170,224,52,237,114,208,193,207,114,2,0,104,22,28,22,170,170,160,242,221,114,128,134,226,114,2,0,56,22,28,22,170,170,131,212,0,96,80,40,243,114,1,0,28,22,48,172,208,114,2,0,28,22,71,22,170,170,176,251,226,114,32,13,228,114,3,0,0,0,80,90,162,3,232,92,244,2,187,241,105,3,7,0,49,5,162,5,155,6,150,8,145,8,50,12,45,22,123,196,0,32,127,196,0,32,131,196,0,32,135,196,0,32,139,196,0,32,141,196,0,32,145,196,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,252,149,121,3,48,45,250,2,120,204,53,3,2,0,68,14,45,22,170,170,160,196,0,32,164,196,0,224,1,0,28,22,240,181,222,114,1,0,28,22,240,234,234,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,68,175,169,3,208,185,250,2,172,134,104,3,4,0,225,4,68,14,67,12,45,22,170,170,172,196,0,32,174,196,0,32,176,196,0,32,180,196,0,224,2,0,104,22,28,22,170,170,128,187,238,114,160,76,207,114,1,0,28,22,48,29,211,114,2,0,104,22,28,22,170,170,208,126,239,114,192,64,222,114,1,0,28,22,192,64,222,114,2,0,104,22,28,22,170,170,208,126,239,114,224,142,222,114,2,0,104,22,28,22,170,170,32,66,240,114,80,220,213,114,2,0,28,22,71,22,170,170,208,103,222,114,32,13,228,114,2,0,104,22,28,22,170,170,32,66,240,114,32,103,213,114,1,0,28,22,224,112,227,114,2,0,104,22,28,22,170,170,48,248,237,114,176,25,222,114,2,0,104,22,28,22,170,170,208,126,239,114,192,124,212,114,2,0,56,22,28,22,170,170,131,212,0,96,160,122,241,114,2,0,104,22,28,22,170,170,48,248,237,114,240,38,225,114,1,0,28,22,64,234,225,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,1,0,28,22,160,76,207,114,2,0,104,22,28,22,170,170,32,66,240,114,224,89,210,114,1,0,28,22,80,250,208,114,1,0,28,22,32,103,213,114,1,0,28,22,192,11,210,114,1,0,28,22,96,116,216,114,2,0,28,22,71,22,170,170,176,85,212,114,32,13,228,114,1,0,28,22,160,242,221,114,2,0,104,22,28,22,170,170,224,52,237,114,128,201,194,114,2,0,104,22,28,22,170,170,0,161,232,114,224,142,222,114,3,0,0,0,168,48,161,3,104,143,246,2,10,252,105,3,1,0,28,22,112,79,187,114,2,0,104,22,28,22,170,170,64,121,223,114,0,221,222,114,29,0,169,4,185,13,33,5,37,5,45,5,69,5,135,5,185,5,209,5,221,5,179,6,68,14,241,6,1,7,163,22,150,8,202,22,66,8,210,22,204,8,14,9,221,9,37,10,104,10,207,10,211,10,45,22,31,14,35,14,191,196,0,32,195,196,0,32,197,196,0,32,201,196,0,32,203,196,0,32,207,196,0,32,211,196,0,32,215,196,0,32,219,196,0,32,221,196,0,32,225,196,0,32,229,196,0,32,233,196,0,32,237,196,0,32,239,196,0,32,241,196,0,32,245,196,0,32,247,196,0,32,251,196,0,32,253,196,0,32,255,196,0,32,1,197,0,32,3,197,0,32,7,197,0,32,9,197,0,32,13,197,0,32,17,197,0,224,21,197,0,32,23,197,0,32,2,0,56,22,28,22,170,170,140,212,0,96,0,55,208,114,1,0,28,22,16,131,181,114,1,0,28,22,16,4,223,114,1,0,28,22,112,238,223,114,1,0,28,22,192,191,180,114,1,0,28,22,208,216,224,114,2,0,104,22,28,22,170,170,0,214,244,114,128,81,214,114,1,0,28,22,176,205,192,114,1,0,28,22,208,223,202,114,2,0,56,22,28,22,170,170,140,212,0,96,176,115,207,114,1,0,28,22,160,23,195,114,1,0,28,22,224,126,183,114,1,0,28,22,80,197,196,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,140,212,0,96,96,33,209,114,1,0,28,22,48,82,223,114,1,0,28,22,0,145,193,114,1,0,28,22,224,43,176,114,1,0,28,22,176,205,192,114,3,0,0,0,96,44,197,3,24,49,250,2,74,101,134,3,2,0,56,22,28,22,170,170,140,212,0,96,48,142,213,114,1,0,28,22,128,125,165,114,1,0,28,22,32,4,167,114,1,0,28,22,192,147,229,114,1,0,28,22,64,91,228,114,2,0,56,22,28,22,170,170,140,212,0,96,176,228,209,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,27,0,214,23,68,14,79,7,208,7,244,7,16,8,174,4,172,8,85,22,97,11,214,22,95,9,123,9,209,9,222,22,155,10,254,10,47,13,216,12,45,22,231,11,230,22,149,13,212,13,238,22,87,14,210,9,71,197,0,32,75,197,0,32,77,197,0,32,79,197,0,32,81,197,0,32,83,197,0,32,85,197,0,32,89,197,0,32,91,197,0,32,93,197,0,32,97,197,0,32,99,197,0,32,101,197,0,32,103,197,0,32,105,197,0,32,109,197,0,32,111,197,0,32,113,197,0,32,115,197,0,32,117,197,0,224,121,197,0,32,125,197,0,32,127,197,0,32,129,197,0,32,131,197,0,32,133,197,0,32,137,197,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,112,72,209,114,3,0,0,0,240,164,173,3,128,246,249,2,160,61,109,3,1,0,28,22,16,244,183,114,4,0,67,12,181,7,45,22,234,22,170,170,182,197,0,32,186,197,0,32,188,197,0,224,192,197,0,32,3,0,0,0,164,101,62,3,112,201,250,2,32,119,252,2,1,0,28,22,32,119,252,114,2,0,45,22,122,13,170,170,201,197,0,224,205,197,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,232,85,160,3,248,95,250,2,103,69,94,3,2,0,67,12,45,22,170,170,211,197,0,32,215,197,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,104,224,164,3,176,232,250,2,63,112,103,3,2,0,67,12,45,22,170,170,223,197,0,32,227,197,0,224,1,0,28,22,240,144,249,114,2,0,56,22,28,22,170,170,131,212,0,96,0,71,247,114,3,0,0,0,36,8,138,3,168,162,248,2,23,34,80,3,3,0,141,8,70,4,45,22,235,197,0,32,237,197,0,32,241,197,0,224,1,0,28,22,96,56,226,114,2,0,56,22,28,22,170,170,131,212,0,96,0,161,232,114,2,0,56,22,28,22,170,170,122,212,0,96,80,10,248,114,3,0,0,0,160,10,137,3,64,84,250,2,241,138,73,3,4,0,67,12,120,19,56,11,45,22,170,170,250,197,0,32,252,197,0,32,0,198,0,32,4,198,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,3,0,0,0,196,168,118,3,112,201,250,2,148,20,44,3,2,0,68,14,45,22,170,170,15,198,0,32,19,198,0,224,1,0,28,22,96,176,206,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,1,0,28,22,208,209,246,114,1,0,28,22,96,26,231,114,1,0,28,22,32,133,208,114,3,0,0,0,104,96,152,3,184,189,250,2,204,108,88,3,2,0,56,22,28,22,170,170,131,212,0,96,176,48,239,114,7,0,185,13,63,12,68,14,150,8,30,6,45,22,101,10,27,198,0,32,29,198,0,32,33,198,0,32,35,198,0,32,37,198,0,32,39,198,0,224,43,198,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,48,248,237,114,1,0,28,22,240,204,239,114,1,0,28,22,208,163,212,114,1,0,28,22,64,31,238,114,3,0,0,0,156,133,168,3,112,201,250,2,81,98,103,3,6,0,35,12,103,13,68,14,100,11,240,10,45,22,170,170,58,198,0,32,62,198,0,32,64,198,0,32,66,198,0,32,68,198,0,32,70,198,0,224,2,0,28,22,71,22,170,170,80,70,238,114,32,13,228,114,1,0,28,22,64,121,223,114,2,0,56,22,28,22,170,170,131,212,0,96,240,144,249,114,2,0,28,22,71,22,170,170,176,235,187,114,32,13,228,114,1,0,28,22,32,246,210,114,1,0,28,22,64,114,245,114,1,0,28,22,192,147,229,114,1,0,28,22,96,109,238,114,2,0,56,22,28,22,170,170,140,212,0,96,64,188,191,114,1,0,28,22,208,117,178,114,2,0,28,22,71,22,170,170,112,238,223,114,32,13,228,114,1,0,28,22,176,55,217,114,2,0,28,22,71,22,170,170,128,88,192,114,32,13,228,114,1,0,28,22,96,26,231,114,1,0,28,22,160,189,209,114,1,0,28,22,224,59,215,114,2,0,28,22,71,22,170,170,0,131,237,114,32,13,228,114,1,0,28,22,160,39,234,114,1,0,28,22,0,0,0,112,1,0,28,22,144,150,209,114,1,0,28,22,192,147,229,114,1,0,28,22,0,122,176,114,2,0,28,22,71,22,170,170,160,242,221,114,32,13,228,114,3,0,0,0,188,115,184,3,112,201,250,2,125,251,113,3,1,0,28,22,144,60,224,114,1,0,28,22,192,147,229,114,26,0,29,5,106,17,103,13,163,6,63,12,68,14,67,12,150,8,43,7,47,7,170,7,252,12,12,8,87,4,18,9,134,20,171,10,120,19,84,11,100,11,47,13,153,12,172,12,45,22,101,10,160,13,170,170,84,198,0,32,88,198,0,32,90,198,0,32,94,198,0,32,98,198,0,32,100,198,0,32,102,198,0,32,104,198,0,32,106,198,0,32,110,198,0,32,112,198,0,32,116,198,0,32,118,198,0,32,122,198,0,32,124,198,0,32,126,198,0,32,128,198,0,32,132,198,0,32,134,198,0,32,136,198,0,32,138,198,0,32,140,198,0,32,142,198,0,32,146,198,0,224,150,198,0,32,152,198,0,32,2,0,56,22,28,22,170,170,122,212,0,96,112,201,250,114,3,0,0,0,0,37,105,3,112,201,250,2,32,22,33,3,2,0,68,14,45,22,170,170,194,198,0,32,198,198,0,224,1,0,28,22,224,22,242,114,2,0,56,22,28,22,170,170,131,212,0,96,144,143,231,114,2,0,56,22,28,22,170,170,131,212,0,96,80,160,223,114,1,0,28,22,208,239,241,114,3,0,0,0,160,210,137,3,152,10,246,2,140,76,85,3,5,0,94,8,185,13,150,8,244,10,45,22,206,198,0,32,208,198,0,32,212,198,0,32,216,198,0,32,218,198,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,140,212,0,96,48,218,242,114,1,0,28,22,160,205,248,114,1,0,28,22,32,246,210,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,140,212,0,96,128,254,206,114,1,0,28,22,16,170,237,114,3,0,0,0,120,45,167,3,112,201,250,2,189,114,95,3,8,0,106,17,103,13,68,14,22,22,86,8,129,20,165,12,45,22,170,170,230,198,0,32,234,198,0,32,238,198,0,32,240,198,0,32,242,198,0,32,244,198,0,32,248,198,0,32,250,198,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,3,0,0,0,24,245,128,3,32,6,250,2,158,77,67,3,2,0,68,14,45,22,170,170,11,199,0,32,15,199,0,224,1,0,28,22,64,128,201,114,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,8,109,165,3,200,109,249,2,101,90,103,3,3,0,68,14,67,12,45,22,23,199,0,32,25,199,0,32,29,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,1,0,28,22,112,88,248,114,1,0,28,22,96,26,231,114,2,0,56,22,28,22,170,170,131,212,0,96,128,187,238,114,2,0,104,22,28,22,170,170,224,52,237,114,224,82,232,114,3,0,0,0,48,102,172,3,48,194,246,2,225,78,108,3,6,0,185,13,237,4,68,14,150,8,97,8,45,22,170,170,38,199,0,32,42,199,0,32,44,199,0,32,46,199,0,32,50,199,0,32,54,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,144,103,140,3,168,150,250,2,176,133,73,3,2,0,67,12,45,22,170,170,68,199,0,32,72,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,2,0,56,22,28,22,170,170,131,212,0,96,80,70,238,114,1,0,28,22,144,30,229,114,3,0,0,0,40,187,165,3,96,168,249,2,153,84,104,3,4,0,67,12,135,11,142,11,45,22,170,170,80,199,0,32,84,199,0,32,88,199,0,32,90,199,0,224,1,0,28,22,96,79,243,114,2,0,56,22,28,22,170,170,131,212,0,96,176,131,246,114,1,0,28,22,144,226,238,114,1,0,28,22,192,57,244,114,3,0,0,0,244,225,153,3,176,232,250,2,238,93,88,3,1,0,28,22,144,30,229,114,6,0,68,14,237,12,206,6,47,13,45,22,172,13,170,170,101,199,0,32,103,199,0,32,107,199,0,32,109,199,0,32,111,199,0,224,115,199,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,1,0,28,22,64,114,245,114,1,0,28,22,80,54,199,114,1,0,28,22,112,5,241,114,3,0,0,0,208,225,179,3,248,244,246,2,60,153,118,3,5,0,185,13,249,4,63,12,68,14,45,22,127,199,0,32,131,199,0,32,133,199,0,32,135,199,0,32,137,199,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,132,215,130,3,96,79,243,2,175,47,81,3,2,0,185,13,45,22,170,170,149,199,0,32,153,199,0,224,1,0,28,22,64,234,225,114,3,0,56,22,28,22,71,22,131,212,0,96,16,230,227,114,32,13,228,114,1,0,28,22,208,103,222,114,2,0,56,22,28,22,170,170,131,212,0,96,240,174,244,114,1,0,28,22,64,234,225,114,3,0,0,0,104,157,146,3,168,49,246,2,120,197,95,3,2,0,56,22,28,22,170,170,122,212,0,96,0,214,244,114,1,0,28,22,96,109,238,114,8,0,94,8,185,13,217,5,68,14,149,12,45,22,255,12,2,13,170,170,161,199,0,32,163,199,0,32,168,199,0,32,170,199,0,32,174,199,0,32,176,199,0,224,180,199,0,32,184,199,0,32,1,0,28,22,192,214,197,114,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,2,0,56,22,28,22,170,170,140,212,0,96,80,70,238,114,1,0,28,22,192,87,239,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,2,0,56,22,28,22,170,170,140,212,0,96,64,121,223,114,1,0,28,22,208,163,212,114,2,0,56,22,28,22,170,170,140,212,0,96,96,26,231,114,2,0,56,22,28,22,170,170,140,212,0,96,112,192,189,114,3,0,0,0,8,194,180,3,168,150,250,2,254,97,109,3,10,0,158,18,1,5,122,8,68,14,67,12,199,19,245,6,180,10,9,3,45,22,170,170,199,199,0,32,201,199,0,32,205,199,0,32,209,199,0,32,211,199,0,32,215,199,0,32,219,199,0,32,221,199,0,32,225,199,0,32,229,199,0,224,1,0,28,22,224,142,222,114,2,0,56,22,28,22,170,170,131,212,0,96,80,183,240,114,1,0,28,22,240,61,242,114,1,0,28,22,0,0,0,112,1,0,28,22,64,144,240,114,1,0,28,22,48,195,225,114,1,0,28,22,192,147,229,114,3,0,0,0,216,216,165,3,176,161,241,2,209,168,118,3,1,0,28,22,192,147,229,114,1,0,28,22,32,43,223,114,10,0,94,8,3,12,68,14,106,7,219,11,82,12,244,10,45,22,255,12,145,17,170,170,249,199,0,32,251,199,0,32,255,199,0,32,1,200,0,32,3,200,0,32,5,200,0,32,7,200,0,32,9,200,0,224,13,200,0,32,15,200,0,32,1,0,28,22,96,109,238,114,1,0,28,22,160,92,246,114,1,0,28,22,112,215,206,114,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,1,0,28,22,32,163,203,114,1,0,28,22,208,133,217,114,1,0,28,22,192,101,195,114,1,0,28,22,48,149,191,114,2,0,56,22,28,22,170,170,140,212,0,96,48,149,191,114,2,0,56,22,28,22,170,170,131,212,0,96,0,101,242,114,3,0,0,0,228,133,166,3,32,119,252,2,111,254,94,3,11,0,103,13,68,14,237,12,206,6,190,11,47,13,34,4,106,12,114,12,165,12,45,22,33,200,0,32,35,200,0,32,37,200,0,32,39,200,0,32,43,200,0,32,45,200,0,32,47,200,0,32,49,200,0,32,51,200,0,32,55,200,0,32,59,200,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,2,0,56,22,28,22,170,170,131,212,0,96,176,161,241,114,1,0,28,22,0,101,242,114,2,0,56,22,28,22,170,170,131,212,0,96,208,239,241,114,1,0,28,22,112,72,209,114,3,0,0,0,116,111,145,3,104,250,249,2,230,131,85,3,6,0,68,14,20,7,75,12,216,7,222,11,45,22,170,170,80,200,0,32,84,200,0,32,88,200,0,32,90,200,0,32,94,200,0,32,96,200,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,3,0,0,0,192,40,120,3,112,201,250,2,120,152,45,3,2,0,68,14,45,22,170,170,110,200,0,32,114,200,0,224,1,0,28,22,32,66,240,114,2,0,56,22,28,22,170,170,131,212,0,96,208,96,244,114,1,0,28,22,224,82,232,114,1,0,28,22,176,48,239,114,3,0,0,0,224,81,122,3,208,66,249,2,228,203,72,3,1,0,28,22,208,216,224,114,1,0,28,22,0,48,230,114,7,0,5,6,68,14,231,8,111,11,45,22,114,13,27,14,122,200,0,32,124,200,0,32,128,200,0,32,130,200,0,32,132,200,0,224,136,200,0,32,138,200,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,100,82,135,3,112,201,250,2,56,218,63,3,2,0,22,22,45,22,170,170,151,200,0,32,155,200,0,224,2,0,104,22,28,22,170,170,224,255,224,114,240,211,217,114,1,0,28,22,208,193,207,114,2,0,28,22,71,22,170,170,64,211,208,114,32,13,228,114,1,0,28,22,32,13,228,114,1,0,28,22,176,161,241,114,1,0,28,22,16,170,237,114,1,0,28,22,144,37,207,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,1,0,28,22,96,63,204,114,2,0,28,22,71,22,170,170,112,12,219,114,32,13,228,114,1,0,28,22,240,15,208,114,1,0,28,22,64,112,162,114,1,0,28,22,16,4,223,114,1,0,28,22,144,37,207,114,2,0,28,22,71,22,170,170,224,255,224,114,32,13,228,114,1,0,28,22,176,25,222,114,1,0,28,22,208,103,222,114,3,0,0,0,32,103,182,3,112,201,250,2,146,26,112,3,18,0,201,13,122,8,31,12,103,13,68,14,67,12,199,19,150,8,39,7,170,7,244,7,175,11,87,4,120,19,9,3,64,11,70,4,45,22,170,170,163,200,0,32,167,200,0,32,169,200,0,32,173,200,0,32,175,200,0,32,177,200,0,32,179,200,0,32,181,200,0,32,185,200,0,32,187,200,0,32,191,200,0,32,193,200,0,32,195,200,0,32,197,200,0,32,199,200,0,32,203,200,0,32,205,200,0,32,207,200,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,160,39,234,114,3,0,0,0,8,31,153,3,208,66,249,2,115,229,89,3,3,0,150,8,131,11,45,22,239,200,0,32,243,200,0,32,245,200,0,224,1,0,28,22,160,189,209,114,1,0,28,22,64,68,211,114,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,1,0,28,22,160,39,234,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,0,0,0,112,1,0,28,22,0,161,232,114,1,0,28,22,176,48,239,114,2,0,56,22,28,22,170,170,140,212,0,96,176,115,207,114,3,0,56,22,28,22,71,22,140,212,0,96,112,215,206,114,32,13,228,114,1,0,28,22,208,216,224,114,1,0,28,22,0,55,208,114,1,0,28,22,32,57,179,114,1,0,28,22,0,55,208,114,1,0,28,22,64,234,225,114,1,0,28,22,128,134,226,114,1,0,28,22,0,55,208,114,2,0,28,22,71,22,170,170,144,60,224,114,32,13,228,114,1,0,28,22,0,55,208,114,1,0,28,22,0,78,225,114,3,0,0,0,20,130,182,3,112,201,250,2,11,201,111,3,1,0,28,22,0,55,208,114,1,0,28,22,48,195,225,114,1,0,28,22,160,189,209,114,24,0,185,13,151,5,213,12,103,13,68,14,9,23,67,12,150,8,111,13,103,7,174,7,87,4,41,9,187,15,41,11,100,11,70,4,30,12,244,10,154,20,45,22,101,10,28,8,125,22,170,170,254,200,0,32,0,201,0,32,2,201,0,32,6,201,0,32,8,201,0,32,12,201,0,32,14,201,0,32,16,201,0,32,18,201,0,32,22,201,0,32,27,201,0,32,29,201,0,32,31,201,0,32,33,201,0,32,35,201,0,32,37,201,0,32,39,201,0,32,41,201,0,32,45,201,0,32,47,201,0,32,49,201,0,224,53,201,0,32,55,201,0,32,57,201,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,8,195,134,3,64,84,250,2,134,245,72,3,2,0,68,14,45,22,170,170,96,201,0,32,100,201,0,224,2,0,56,22,28,22,170,170,140,212,0,96,96,199,223,114,1,0,28,22,96,26,231,114,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,80,190,218,114,2,0,56,22,28,22,170,170,140,212,0,96,96,199,223,114,1,0,28,22,160,39,234,114,3,0,0,0,164,155,153,3,200,228,250,2,84,151,92,3,1,0,28,22,240,91,237,114,8,0,201,12,30,6,26,11,134,20,85,10,47,13,45,22,239,13,170,170,108,201,0,32,112,201,0,32,114,201,0,32,118,201,0,32,120,201,0,32,124,201,0,32,126,201,0,224,130,201,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,110,247,114,1,0,28,22,224,165,239,114,1,0,28,22,128,21,224,114,3,0,0,0,156,162,134,3,112,88,248,2,21,71,74,3,1,0,28,22,144,60,224,114,5,0,150,8,99,7,244,7,45,22,125,22,145,201,0,32,149,201,0,32,151,201,0,32,153,201,0,224,157,201,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,68,142,137,3,32,119,252,2,184,52,66,3,2,0,68,14,45,22,170,170,167,201,0,32,171,201,0,224,1,0,28,22,32,13,228,114,1,0,28,22,224,255,224,114,2,0,56,22,28,22,170,170,140,212,0,96,176,161,241,114,2,0,56,22,28,22,170,170,140,212,0,96,240,91,237,114,2,0,56,22,28,22,170,170,131,212,0,96,144,226,238,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,140,212,0,96,192,177,224,114,1,0,28,22,48,195,225,114,1,0,28,22,32,73,218,114,1,0,28,22,160,242,221,114,1,0,28,22,96,10,192,114,3,0,0,0,176,212,164,3,56,151,246,2,90,58,106,3,13,0,145,4,157,4,234,9,47,12,68,14,1,7,163,22,71,7,185,7,169,8,17,11,250,11,45,22,179,201,0,32,181,201,0,32,183,201,0,32,187,201,0,32,191,201,0,32,195,201,0,32,197,201,0,32,199,201,0,32,203,201,0,32,205,201,0,32,207,201,0,32,209,201,0,32,211,201,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,1,0,28,22,96,79,243,114,3,0,0,0,48,99,135,3,64,227,247,2,2,125,60,3,3,0,68,14,67,12,45,22,235,201,0,32,239,201,0,32,241,201,0,224,1,0,28,22,32,209,237,114,2,0,56,22,28,22,170,170,131,212,0,96,128,127,248,114,3,0,0,0,84,243,135,3,32,119,252,2,32,196,64,3,3,0,106,17,129,20,45,22,250,201,0,32,252,201,0,32,0,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,200,241,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,1,0,28,22,16,27,240,114,3,0,0,0,16,191,140,3,88,122,243,2,56,207,89,3,5,0,68,14,1,7,163,22,237,9,45,22,9,202,0,32,13,202,0,32,15,202,0,32,17,202,0,32,19,202,0,224,1,0,28,22,224,165,239,114,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,16,27,240,114,1,0,28,22,96,56,226,114,1,0,28,22,176,48,239,114,1,0,28,22,32,13,228,114,1,0,28,22,240,91,237,114,3,0,0,0,148,203,151,3,208,239,241,2,154,169,103,3,8,0,1,7,163,22,150,8,235,8,26,23,235,10,161,12,45,22,170,170,31,202,0,32,33,202,0,32,35,202,0,32,39,202,0,32,41,202,0,32,43,202,0,32,45,202,0,32,47,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,4,161,137,3,224,105,249,2,104,36,78,3,2,0,150,8,45,22,170,170,64,202,0,32,68,202,0,224,1,0,28,22,240,121,232,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,1,0,28,22,112,118,243,114,2,0,56,22,28,22,170,170,131,212,0,96,128,217,233,114,2,0,56,22,28,22,170,170,131,212,0,96,160,233,160,114,3,0,0,0,64,86,152,3,240,13,250,2,18,254,83,3,6,0,213,5,67,12,249,6,150,8,70,4,45,22,170,170,76,202,0,32,78,202,0,32,82,202,0,32,84,202,0,32,88,202,0,32,92,202,0,224,1,0,28,22,112,72,209,114,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,1,0,28,22,112,118,243,114,1,0,28,22,160,39,234,114,1,0,28,22,0,221,222,114,1,0,28,22,80,17,226,114,1,0,28,22,96,63,204,114,3,0,0,0,100,90,167,3,8,135,250,2,151,94,103,3,1,0,28,22,192,64,222,114,1,0,28,22,112,139,177,114,11,0,85,5,103,13,63,12,68,14,150,8,53,10,107,11,130,12,45,22,101,10,58,13,106,202,0,32,108,202,0,32,110,202,0,32,114,202,0,32,116,202,0,32,118,202,0,32,120,202,0,32,122,202,0,32,124,202,0,224,128,202,0,32,130,202,0,32,3,0,0,0,192,206,84,3,112,201,250,2,0,64,13,3,2,0,104,22,28,22,170,170,32,119,252,114,32,119,252,114,2,0,45,22,122,13,170,170,149,202,0,224,153,202,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,140,212,0,96,96,26,231,114,3,0,0,0,180,228,164,3,24,67,247,2,77,94,104,3,3,0,67,12,138,11,45,22,161,202,0,32,165,202,0,32,169,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,2,0,56,22,28,22,170,170,122,212,0,96,240,144,249,114,3,0,0,0,164,27,141,3,112,201,250,2,229,205,73,3,3,0,164,10,68,14,45,22,178,202,0,32,182,202,0,32,186,202,0,224,1,0,28,22,160,233,160,114,1,0,28,22,160,233,160,114,1,0,28,22,160,99,224,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,108,27,137,3,104,30,244,2,198,110,89,3,5,0,1,7,163,22,219,8,70,4,45,22,195,202,0,32,197,202,0,32,199,202,0,32,201,202,0,32,205,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,20,226,141,3,48,176,249,2,60,174,82,3,2,0,68,14,45,22,170,170,217,202,0,32,221,202,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,118,243,114,3,0,0,0,52,30,170,3,152,242,249,2,255,141,97,3,1,0,28,22,224,105,249,114,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,5,0,68,14,45,22,47,14,210,9,125,22,229,202,0,32,233,202,0,224,237,202,0,32,239,202,0,32,241,202,0,32,3,0,0,0,244,115,63,3,112,201,250,2,32,119,252,2,2,0,104,22,28,22,170,170,32,119,252,114,32,119,252,114,2,0,45,22,122,13,170,170,253,202,0,224,1,203,0,32,1,0,28,22,128,224,211,114,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,152,151,154,3,120,170,248,2,142,149,100,3,3,0,68,14,67,12,45,22,9,203,0,32,11,203,0,32,15,203,0,224,1,0,28,22,80,40,243,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,2,0,56,22,28,22,170,170,140,212,0,96,0,221,222,114,3,0,0,0,20,88,164,3,136,197,250,2,119,241,92,3,2,0,56,22,28,22,170,170,140,212,0,96,32,216,215,114,5,0,68,14,252,12,87,4,45,22,141,13,24,203,0,32,26,203,0,32,30,203,0,32,34,203,0,224,38,203,0,32,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,240,151,227,114,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,3,0,0,0,20,147,150,3,152,28,243,2,150,112,103,3,3,0,150,8,237,20,45,22,50,203,0,32,55,203,0,32,59,203,0,224,1,0,28,22,96,109,238,114,1,0,28,22,128,187,238,114,1,0,28,22,224,255,224,114,1,0,28,22,192,11,210,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,240,68,220,114,1,0,28,22,128,254,206,114,1,0,28,22,176,175,197,114,3,0,0,0,128,52,167,3,112,201,250,2,31,103,101,3,9,0,103,13,68,14,150,8,252,12,20,8,173,13,240,10,178,19,45,22,68,203,0,32,70,203,0,32,72,203,0,32,74,203,0,32,76,203,0,32,80,203,0,32,82,203,0,32,84,203,0,32,86,203,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,16,233,158,3,168,150,250,2,195,177,89,3,2,0,67,12,45,22,170,170,104,203,0,32,108,203,0,224,1,0,28,22,224,142,222,114,1,0,28,22,112,72,209,114,2,0,104,22,28,22,170,170,224,52,237,114,32,43,223,114,1,0,28,22,128,51,219,114,1,0,28,22,80,160,223,114,2,0,104,22,28,22,170,170,224,52,237,114,240,181,222,114,2,0,104,22,28,22,170,170,224,52,237,114,0,221,222,114,1,0,28,22,128,254,206,114,1,0,28,22,80,107,211,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,2,0,104,22,28,22,170,170,224,52,237,114,96,222,240,114,1,0,28,22,192,11,210,114,1,0,28,22,160,76,207,114,1,0,28,22,144,37,207,114,1,0,28,22,16,177,215,114,2,0,104,22,28,22,170,170,192,200,241,114,240,8,230,114,1,0,28,22,80,77,216,114,1,0,28,22,64,241,203,114,2,0,104,22,28,22,170,170,224,52,237,114,224,255,224,114,1,0,28,22,32,156,225,114,1,0,28,22,192,64,222,114,1,0,28,22,0,145,193,114,1,0,28,22,16,207,210,114,1,0,28,22,160,46,212,114,1,0,28,22,112,215,206,114,1,0,28,22,208,246,219,114,1,0,28,22,224,36,198,114,1,0,28,22,0,131,237,114,1,0,28,22,64,241,203,114,3,0,0,0,8,1,183,3,64,215,249,2,146,21,121,3,1,0,28,22,128,51,219,114,31,0,149,4,217,4,21,5,41,5,61,5,127,5,205,5,83,7,146,7,83,12,90,8,160,8,33,9,91,9,131,9,217,9,233,9,1,10,49,10,115,12,177,22,128,10,195,10,162,11,210,11,167,18,94,12,230,6,180,12,45,22,125,22,116,203,0,32,118,203,0,32,120,203,0,32,124,203,0,32,126,203,0,32,128,203,0,32,132,203,0,32,136,203,0,32,138,203,0,32,140,203,0,32,144,203,0,32,148,203,0,32,150,203,0,32,152,203,0,32,154,203,0,32,156,203,0,32,160,203,0,32,162,203,0,32,164,203,0,32,168,203,0,32,170,203,0,32,172,203,0,32,174,203,0,32,176,203,0,32,178,203,0,32,180,203,0,32,182,203,0,32,184,203,0,32,186,203,0,32,188,203,0,224,192,203,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,80,70,238,114,2,0,56,22,28,22,170,170,131,212,0,96,160,9,239,114,3,0,0,0,84,45,168,3,112,201,250,2,25,100,94,3,4,0,68,14,150,8,111,13,45,22,170,170,241,203,0,32,245,203,0,32,247,203,0,32,251,203,0,224,1,0,28,22,112,42,214,114,2,0,56,22,28,22,170,170,131,212,0,96,128,187,238,114,1,0,28,22,144,166,248,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,160,242,221,114,1,0,28,22,208,103,222,114,1,0,28,22,64,241,203,114,1,0,28,22,240,181,222,114,1,0,28,22,80,17,226,114,1,0,28,22,240,91,237,114,3,0,0,0,236,159,167,3,56,127,250,2,220,186,99,3,1,0,28,22,128,254,206,114,1,0,28,22,224,255,224,114,13,0,3,12,185,13,68,14,184,10,20,8,64,9,75,8,100,11,173,13,47,13,45,22,255,12,185,12,6,204,0,32,8,204,0,32,12,204,0,32,14,204,0,32,18,204,0,32,20,204,0,32,22,204,0,32,24,204,0,32,26,204,0,32,28,204,0,32,30,204,0,224,34,204,0,32,36,204,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,48,82,223,114,3,0,0,0,224,161,142,3,112,201,250,2,158,200,69,3,3,0,68,14,193,7,45,22,58,204,0,32,62,204,0,32,66,204,0,224,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,2,0,28,22,71,22,170,170,48,82,223,114,32,13,228,114,1,0,28,22,240,105,193,114,1,0,28,22,32,27,184,114,1,0,28,22,208,140,195,114,2,0,104,22,28,22,170,170,176,18,244,114,192,64,222,114,1,0,28,22,128,254,206,114,1,0,28,22,64,241,203,114,2,0,104,22,28,22,170,170,32,66,240,114,112,238,223,114,2,0,104,22,28,22,170,170,0,214,244,114,64,181,213,114,2,0,56,22,28,22,170,170,140,212,0,96,16,200,232,114,1,0,28,22,48,149,191,114,1,0,28,22,128,5,185,114,1,0,28,22,208,230,180,114,1,0,28,22,160,76,207,114,1,0,28,22,224,156,178,114,1,0,28,22,64,45,194,114,1,0,28,22,240,68,220,114,1,0,28,22,0,55,208,114,1,0,28,22,224,246,163,114,1,0,28,22,64,112,162,114,2,0,56,22,28,22,170,170,131,212,0,96,112,148,238,114,1,0,28,22,112,72,209,114,1,0,28,22,192,11,210,114,1,0,28,22,64,211,208,114,1,0,28,22,208,253,197,114,2,0,56,22,28,22,170,170,140,212,0,96,208,73,227,114,2,0,56,22,28,22,170,170,131,212,0,96,208,239,241,114,1,0,28,22,96,176,206,114,1,0,28,22,176,25,222,114,1,0,28,22,176,2,205,114,1,0,28,22,160,106,202,114,1,0,28,22,48,89,201,114,1,0,28,22,32,133,208,114,3,0,104,22,56,22,28,22,16,27,240,114,140,212,0,96,128,28,202,114,1,0,28,22,176,115,207,114,1,0,28,22,96,17,170,114,2,0,56,22,28,22,170,170,140,212,0,96,80,17,226,114,2,0,56,22,28,22,170,170,140,212,0,96,16,207,210,114,1,0,28,22,240,15,208,114,2,0,56,22,28,22,170,170,140,212,0,96,80,107,211,114,1,0,28,22,208,117,178,114,1,0,28,22,112,252,179,114,1,0,28,22,224,156,178,114,1,0,28,22,112,72,209,114,2,0,104,22,28,22,170,170,32,66,240,114,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,0,78,225,114,1,0,28,22,112,215,206,114,2,0,56,22,28,22,170,170,140,212,0,96,96,26,231,114,1,0,28,22,144,180,204,114,1,0,28,22,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,64,181,213,114,1,0,28,22,240,105,193,114,1,0,28,22,144,37,207,114,2,0,56,22,28,22,170,170,140,212,0,96,0,78,225,114,2,0,56,22,28,22,170,170,140,212,0,96,192,177,224,114,1,0,28,22,96,176,206,114,1,0,28,22,80,227,191,114,2,0,104,22,28,22,170,170,128,187,238,114,112,185,211,114,2,0,56,22,28,22,170,170,140,212,0,96,0,122,176,114,2,0,56,22,28,22,170,170,140,212,0,96,48,142,213,114,1,0,28,22,80,84,194,114,1,0,28,22,224,232,207,114,2,0,56,22,28,22,170,170,140,212,0,96,96,33,209,114,2,0,56,22,28,22,170,170,140,212,0,96,160,76,207,114,1,0,28,22,176,62,195,114,1,0,28,22,128,111,209,114,2,0,56,22,28,22,170,170,140,212,0,96,176,108,229,114,1,0,28,22,176,115,207,114,2,0,56,22,28,22,170,170,140,212,0,96,128,104,231,114,3,0,0,0,72,128,192,3,96,67,245,2,193,74,134,3,1,0,28,22,96,63,204,114,1,0,28,22,128,58,197,114,2,0,56,22,28,22,170,170,140,212,0,96,32,13,228,114,1,0,28,22,224,232,207,114,1,0,28,22,176,115,207,114,2,0,104,22,28,22,170,170,208,126,239,114,160,46,212,114,1,0,28,22,192,154,207,114,79,0,189,13,13,5,73,5,77,5,81,5,88,5,100,5,104,5,108,5,123,5,151,5,214,23,154,5,166,5,174,5,193,5,249,5,127,6,159,6,187,6,198,6,68,14,91,7,138,7,142,7,166,7,174,7,75,12,110,23,240,7,0,8,4,8,149,8,153,8,168,8,176,8,184,8,216,8,227,8,3,9,7,9,72,9,99,9,111,9,143,9,225,9,229,9,75,8,64,10,248,13,100,10,124,10,241,7,203,10,219,10,58,19,41,11,146,11,174,11,186,11,12,14,10,12,18,12,26,12,59,13,53,23,145,12,176,12,154,20,212,12,159,20,45,22,126,13,130,13,28,8,196,13,200,13,208,13,255,13,75,204,0,32,79,204,0,32,83,204,0,32,85,204,0,32,87,204,0,32,89,204,0,32,93,204,0,32,95,204,0,32,97,204,0,32,101,204,0,32,105,204,0,32,109,204,0,32,111,204,0,32,113,204,0,32,115,204,0,32,117,204,0,32,119,204,0,32,121,204,0,32,123,204,0,32,125,204,0,32,127,204,0,32,129,204,0,32,133,204,0,32,135,204,0,32,137,204,0,32,139,204,0,32,141,204,0,32,145,204,0,32,149,204,0,32,151,204,0,32,153,204,0,32,155,204,0,32,157,204,0,32,159,204,0,32,161,204,0,32,166,204,0,32,168,204,0,32,170,204,0,32,174,204,0,32,178,204,0,32,180,204,0,32,184,204,0,32,186,204,0,32,188,204,0,32,190,204,0,32,192,204,0,32,196,204,0,32,200,204,0,32,204,204,0,32,206,204,0,32,210,204,0,32,212,204,0,32,214,204,0,32,218,204,0,32,220,204,0,32,222,204,0,32,226,204,0,32,230,204,0,32,232,204,0,32,234,204,0,32,238,204,0,32,242,204,0,32,246,204,0,32,248,204,0,32,250,204,0,32,254,204,0,32,2,205,0,32,4,205,0,32,6,205,0,32,10,205,0,32,12,205,0,32,16,205,0,224,20,205,0,32,22,205,0,32,24,205,0,32,28,205,0,32,30,205,0,32,32,205,0,32,36,205,0,32,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,32,119,252,114,3,0,0,0,180,98,119,3,112,201,250,2,112,14,46,3,2,0,68,14,45,22,170,170,157,205,0,32,162,205,0,224,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,2,0,56,22,28,22,170,170,140,212,0,96,32,43,223,114,2,0,56,22,28,22,170,170,140,212,0,96,128,187,238,114,1,0,28,22,112,5,241,114,1,0,28,22,48,112,218,114,1,0,28,22,144,120,214,114,1,0,28,22,224,202,212,114,3,0,0,0,148,177,172,3,168,168,247,2,183,174,107,3,8,0,185,13,64,23,49,6,68,14,22,10,159,9,192,12,45,22,170,170,170,205,0,32,174,205,0,32,178,205,0,32,182,205,0,32,184,205,0,32,186,205,0,32,188,205,0,32,190,205,0,224,1,0,28,22,64,121,223,114,1,0,28,22,192,87,239,114,1,0,28,22,64,121,223,114,2,0,28,22,71,22,170,170,64,181,213,114,32,13,228,114,1,0,28,22,224,142,222,114,1,0,28,22,112,95,226,114,2,0,56,22,28,22,170,170,131,212,0,96,240,31,247,114,1,0,28,22,32,253,188,114,1,0,28,22,224,112,227,114,1,0,28,22,64,211,208,114,1,0,28,22,240,188,200,114,1,0,28,22,112,252,179,114,1,0,28,22,128,194,216,114,2,0,104,22,28,22,170,170,224,52,237,114,80,160,223,114,1,0,28,22,192,64,222,114,1,0,28,22,32,13,228,114,1,0,28,22,224,202,212,114,1,0,28,22,192,154,207,114,2,0,104,22,28,22,170,170,160,242,221,114,48,82,223,114,1,0,28,22,80,17,226,114,3,0,0,0,32,140,180,3,144,166,248,2,145,181,114,3,1,0,28,22,192,177,224,114,22,0,185,13,64,23,17,5,92,5,158,5,49,6,22,10,95,7,126,7,30,6,26,11,85,22,135,9,159,9,198,9,151,10,119,11,66,6,198,11,42,12,45,22,38,11,170,170,207,205,0,32,209,205,0,32,211,205,0,32,213,205,0,32,217,205,0,32,219,205,0,32,221,205,0,32,225,205,0,32,227,205,0,32,229,205,0,32,231,205,0,32,233,205,0,32,235,205,0,32,237,205,0,32,241,205,0,32,243,205,0,32,245,205,0,32,247,205,0,32,249,205,0,32,253,205,0,32,255,205,0,224,3,206,0,32,1,0,28,22,192,237,214,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,40,77,150,3,112,201,250,2,206,149,76,3,3,0,106,17,93,11,45,22,39,206,0,32,41,206,0,32,45,206,0,224,1,0,28,22,176,62,195,114,1,0,28,22,0,221,222,114,1,0,28,22,160,136,197,114,1,0,28,22,176,62,195,114,1,0,28,22,96,222,240,114,2,0,56,22,28,22,170,170,140,212,0,96,240,8,230,114,2,0,28,22,71,22,170,170,64,15,199,114,32,13,228,114,1,0,28,22,192,48,183,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,1,0,28,22,32,73,218,114,1,0,28,22,96,123,194,114,2,0,28,22,71,22,170,170,208,246,219,114,32,13,228,114,1,0,28,22,112,192,189,114,1,0,28,22,0,0,0,112,1,0,28,22,16,4,223,114,2,0,28,22,71,22,170,170,224,172,217,114,32,13,228,114,1,0,28,22,208,193,207,114,1,0,28,22,208,193,207,114,3,0,0,0,148,148,181,3,112,201,250,2,219,69,111,3,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,20,0,122,8,103,13,209,6,63,12,68,14,150,8,59,7,252,12,87,4,115,9,147,9,159,10,103,11,166,11,34,11,187,18,38,12,178,19,45,22,141,13,170,170,54,206,0,32,56,206,0,32,58,206,0,32,60,206,0,32,62,206,0,32,64,206,0,32,68,206,0,32,72,206,0,32,74,206,0,32,78,206,0,32,80,206,0,32,82,206,0,32,86,206,0,32,88,206,0,32,90,206,0,32,92,206,0,32,96,206,0,32,98,206,0,32,100,206,0,224,104,206,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,36,196,140,3,112,201,250,2,145,198,72,3,2,0,68,14,45,22,170,170,139,206,0,32,143,206,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,48,45,250,114,3,0,0,0,248,128,151,3,176,244,248,2,25,199,90,3,3,0,68,14,62,8,45,22,151,206,0,32,155,206,0,32,157,206,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,16,140,242,114,3,0,0,0,144,27,161,3,88,80,250,2,238,102,103,3,3,0,185,13,68,14,45,22,166,206,0,32,170,206,0,32,172,206,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,1,0,28,22,0,25,213,114,2,0,28,22,71,22,170,170,144,233,216,114,32,13,228,114,3,0,0,0,172,89,186,3,112,201,250,2,195,236,118,3,4,0,38,6,97,11,242,11,45,22,170,170,181,206,0,32,185,206,0,32,187,206,0,32,191,206,0,224,1,0,28,22,96,236,196,114,2,0,28,22,71,22,170,170,224,172,217,114,32,13,228,114,2,0,104,22,28,22,170,170,160,242,221,114,240,181,222,114,2,0,56,22,28,22,170,170,131,212,0,96,112,148,238,114,1,0,28,22,16,214,188,114,1,0,28,22,16,230,227,114,1,0,28,22,192,4,232,114,1,0,28,22,80,70,238,114,1,0,28,22,192,4,232,114,1,0,28,22,32,96,235,114,1,0,28,22,240,91,237,114,2,0,104,22,28,22,170,170,96,79,243,114,0,221,222,114,1,0,28,22,128,134,226,114,1,0,28,22,176,85,212,114,1,0,28,22,176,205,192,114,2,0,104,22,28,22,170,170,160,242,221,114,16,177,215,114,2,0,104,22,28,22,170,170,160,242,221,114,160,46,212,114,1,0,28,22,208,103,222,114,2,0,56,22,28,22,170,170,131,212,0,96,96,192,245,114,1,0,28,22,96,116,216,114,3,0,0,0,180,72,165,3,80,4,249,2,47,235,109,3,21,0,185,13,123,6,201,6,68,14,174,7,189,7,109,8,136,9,208,8,182,9,194,9,241,9,13,10,219,11,41,11,96,11,6,12,244,10,171,7,228,12,45,22,202,206,0,32,204,206,0,32,208,206,0,32,212,206,0,32,216,206,0,32,218,206,0,32,220,206,0,32,222,206,0,32,224,206,0,32,226,206,0,32,228,206,0,32,230,206,0,32,234,206,0,32,236,206,0,32,238,206,0,32,240,206,0,32,244,206,0,32,248,206,0,32,250,206,0,32,254,206,0,32,0,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,1,243,114,2,0,56,22,28,22,170,170,131,212,0,96,128,44,241,114,3,0,0,0,76,15,151,3,64,209,250,2,10,152,95,3,3,0,222,6,47,13,45,22,36,207,0,32,40,207,0,32,44,207,0,224,1,0,28,22,0,221,222,114,1,0,28,22,112,215,206,114,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,3,0,0,0,52,83,157,3,248,244,246,2,118,85,104,3,4,0,37,6,137,8,98,21,45,22,170,170,53,207,0,32,55,207,0,32,57,207,0,32,61,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,0,214,244,114,3,0,0,0,56,121,120,3,224,105,249,2,116,240,72,3,3,0,68,14,110,7,45,22,72,207,0,32,76,207,0,32,80,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,192,245,114,2,0,56,22,28,22,170,170,131,212,0,96,192,57,244,114,3,0,0,0,252,71,134,3,120,51,247,2,137,37,84,3,2,0,56,22,28,22,170,170,131,212,0,96,96,222,240,114,2,0,56,22,28,22,170,170,131,212,0,96,144,83,241,114,5,0,185,13,150,8,45,22,204,13,59,14,89,207,0,32,93,207,0,32,97,207,0,224,101,207,0,32,105,207,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,56,162,134,3,144,154,250,2,226,47,64,3,2,0,68,14,45,22,170,170,117,207,0,32,121,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,3,0,0,0,128,161,153,3,32,119,252,2,243,169,105,3,2,0,97,11,45,22,170,170,129,207,0,32,133,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,108,38,181,3,120,158,250,2,15,169,109,3,2,0,97,11,45,22,170,170,141,207,0,32,145,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,228,52,167,3,56,2,250,2,107,15,91,3,2,0,185,13,45,22,170,170,153,207,0,32,157,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,12,24,136,3,136,197,250,2,48,109,65,3,2,0,68,14,45,22,170,170,165,207,0,32,169,207,0,224,1,0,28,22,0,48,230,114,1,0,28,22,48,248,237,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,2,0,56,22,28,22,170,170,131,212,0,96,192,170,246,114,3,0,0,0,200,22,170,3,200,228,250,2,7,170,104,3,1,0,28,22,64,121,223,114,6,0,103,13,68,14,182,4,47,13,45,22,75,23,170,170,177,207,0,32,179,207,0,32,181,207,0,32,185,207,0,32,189,207,0,224,193,207,0,32,1,0,28,22,224,255,224,114,1,0,28,22,192,207,219,114,1,0,28,22,160,69,229,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,3,0,0,0,88,14,155,3,24,198,246,2,36,219,97,3,5,0,244,7,137,8,196,8,51,8,45,22,205,207,0,32,207,207,0,32,209,207,0,32,211,207,0,32,215,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,192,200,241,114,1,0,28,22,16,207,210,114,1,0,28,22,64,91,228,114,1,0,28,22,16,4,223,114,3,0,0,0,68,254,160,3,64,90,249,2,145,214,94,3,6,0,185,13,68,14,150,8,30,6,83,23,45,22,170,170,227,207,0,32,231,207,0,32,233,207,0,32,235,207,0,32,237,207,0,32,239,207,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,184,37,136,3,200,109,249,2,23,198,73,3,2,0,68,14,45,22,170,170,253,207,0,32,1,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,56,22,28,22,71,22,122,212,0,96,144,166,248,114,32,13,228,114,3,0,0,0,72,221,139,3,32,119,252,2,74,242,61,3,1,0,28,22,16,117,225,114,4,0,103,13,170,7,45,22,180,13,170,170,9,208,0,32,13,208,0,32,18,208,0,224,22,208,0,32,1,0,28,22,224,52,237,114,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,3,0,0,0,152,254,166,3,192,152,249,2,92,62,105,3,4,0,68,14,67,13,154,20,45,22,170,170,31,208,0,32,33,208,0,32,37,208,0,32,41,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,88,248,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,1,0,28,22,32,209,237,114,1,0,28,22,192,124,212,114,3,0,0,0,64,152,141,3,64,245,244,2,194,59,94,3,1,0,28,22,160,99,224,114,1,0,28,22,0,0,0,112,8,0,68,14,1,7,163,22,235,8,9,10,45,22,134,13,91,23,170,170,52,208,0,32,56,208,0,32,58,208,0,32,60,208,0,32,62,208,0,32,64,208,0,224,68,208,0,32,70,208,0,32,2,0,56,22,28,22,170,170,131,212,0,96,240,204,239,114,1,0,28,22,128,21,224,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,192,108,142,3,64,90,249,2,69,127,89,3,1,0,28,22,240,68,220,114,1,0,28,22,32,209,237,114,6,0,68,14,186,5,198,15,45,22,228,13,79,14,170,170,85,208,0,32,89,208,0,32,91,208,0,32,95,208,0,224,99,208,0,32,101,208,0,32,1,0,28,22,32,209,237,114,1,0,28,22,160,122,241,114,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,64,227,247,114,1,0,28,22,0,0,0,112,3,0,0,0,12,124,161,3,200,228,250,2,250,168,90,3,6,0,103,13,68,14,187,15,47,13,70,12,45,22,170,170,113,208,0,32,115,208,0,32,117,208,0,32,121,208,0,32,123,208,0,32,125,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,192,57,244,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,56,22,28,22,71,22,131,212,0,96,112,231,245,114,32,13,228,114,1,0,28,22,64,31,238,114,3,0,0,0,44,1,157,3,32,119,252,2,93,210,80,3,6,0,103,13,68,14,150,8,84,9,70,4,45,22,170,170,139,208,0,32,143,208,0,32,145,208,0,32,149,208,0,32,154,208,0,32,156,208,0,224,1,0,28,22,32,179,242,114,1,0,28,22,144,0,234,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,160,122,241,114,3,0,0,0,40,197,155,3,176,232,250,2,219,92,89,3,5,0,68,14,163,9,202,9,47,13,45,22,170,208,0,32,172,208,0,32,174,208,0,32,178,208,0,32,180,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,3,0,0,0,180,251,156,3,88,86,249,2,158,1,97,3,2,0,185,13,45,22,170,170,192,208,0,32,196,208,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,36,245,114,1,0,28,22,176,244,248,114,1,0,28,22,32,209,237,114,1,0,28,22,144,210,199,114,2,0,56,22,28,22,170,170,122,212,0,96,128,187,238,114,2,0,28,22,71,22,170,170,16,230,227,114,32,13,228,114,2,0,28,22,71,22,170,170,16,230,227,114,32,13,228,114,1,0,28,22,112,178,233,114,1,0,28,22,112,178,233,114,3,0,0,0,168,87,167,3,88,235,245,2,97,45,107,3,3,0,104,22,56,22,28,22,208,126,239,114,131,212,0,96,32,96,235,114,1,0,28,22,160,9,239,114,12,0,185,13,107,4,68,14,67,12,150,8,178,11,100,23,74,12,109,23,45,22,98,13,71,14,170,170,204,208,0,32,208,208,0,32,210,208,0,32,212,208,0,32,214,208,0,32,218,208,0,32,222,208,0,32,226,208,0,32,228,208,0,32,230,208,0,224,234,208,0,32,239,208,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,0,0,160,249,143,3,112,201,250,2,240,236,61,3,2,0,150,8,45,22,170,170,4,209,0,32,8,209,0,224,1,0,28,22,224,195,234,114,1,0,28,22,16,117,225,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,1,0,28,22,224,255,224,114,3,0,0,0,144,37,151,3,112,201,250,2,66,160,91,3,1,0,28,22,32,209,237,114,6,0,85,5,75,7,173,13,47,13,45,22,158,12,170,170,16,209,0,32,18,209,0,32,20,209,0,32,24,209,0,32,26,209,0,224,30,209,0,32,1,0,28,22,240,121,232,114,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,208,55,149,3,232,181,250,2,3,138,80,3,4,0,130,12,16,14,155,22,45,22,170,170,42,209,0,32,44,209,0,32,46,209,0,32,50,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,220,147,125,3,112,201,250,2,56,241,60,3,2,0,150,8,45,22,170,170,61,209,0,32,65,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,109,238,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,164,155,153,3,200,133,245,2,53,221,105,3,4,0,68,14,150,8,208,10,45,22,170,170,73,209,0,32,77,209,0,32,81,209,0,32,85,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,2,0,56,22,28,22,170,170,131,212,0,96,208,209,246,114,3,0,0,0,32,0,120,3,104,250,249,2,34,221,67,3,3,0,68,14,27,13,45,22,96,209,0,32,100,209,0,32,104,209,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,231,245,114,2,0,56,22,28,22,170,170,140,212,0,96,208,126,239,114,3,0,0,0,28,67,152,3,240,138,250,2,117,188,89,3,1,0,28,22,48,195,225,114,4,0,53,10,130,12,45,22,101,10,170,170,113,209,0,32,117,209,0,32,121,209,0,224,125,209,0,32,1,0,28,22,96,229,218,114,1,0,28,22,32,179,242,114,1,0,28,22,64,121,223,114,1,0,28,22,32,73,218,114,1,0,28,22,16,34,218,114,1,0,28,22,176,25,222,114,1,0,28,22,208,43,232,114,2,0,56,22,28,22,170,170,131,212,0,96,32,179,242,114,1,0,28,22,160,242,221,114,1,0,28,22,16,4,223,114,1,0,28,22,32,13,228,114,1,0,28,22,32,156,225,114,1,0,28,22,176,108,229,114,3,0,0,0,40,209,153,3,240,198,240,2,14,188,104,3,1,0,28,22,80,160,223,114,15,0,185,13,92,7,121,23,147,5,225,5,167,6,4,7,150,8,113,8,180,8,116,10,66,12,122,12,45,22,26,13,134,209,0,32,136,209,0,32,138,209,0,32,140,209,0,32,142,209,0,32,144,209,0,32,146,209,0,32,148,209,0,32,152,209,0,32,154,209,0,32,156,209,0,32,158,209,0,32,160,209,0,32,162,209,0,224,166,209,0,32,1,0,28,22,224,66,193,114,1,0,28,22,16,4,223,114,1,0,28,22,240,22,186,114,1,0,28,22,240,181,222,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,1,0,28,22,16,4,223,114,1,0,28,22,0,48,230,114,3,0,0,0,136,209,167,3,88,211,249,2,205,98,110,3,8,0,244,7,101,8,184,8,72,10,136,10,170,11,78,12,45,22,170,170,191,209,0,32,193,209,0,32,195,209,0,32,197,209,0,32,199,209,0,32,203,209,0,32,205,209,0,32,207,209,0,224,1,0,28,22,128,104,231,114,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,144,37,207,114,3,0,0,0,200,43,154,3,240,138,250,2,131,83,91,3,1,0,28,22,128,201,194,114,1,0,28,22,224,142,222,114,6,0,85,22,244,13,47,13,45,22,75,23,210,9,170,170,224,209,0,32,226,209,0,32,230,209,0,32,232,209,0,224,236,209,0,32,238,209,0,32,1,0,28,22,112,238,223,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,3,0,0,0,180,83,159,3,160,68,250,2,250,155,80,3,1,0,28,22,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,5,0,68,14,70,4,45,22,210,9,125,22,250,209,0,32,252,209,0,32,0,210,0,224,4,210,0,32,6,210,0,32,1,0,28,22,96,109,238,114,2,0,56,22,28,22,170,170,122,212,0,96,80,123,250,114,3,0,0,0,232,41,134,3,80,123,250,2,154,210,63,3,3,0,164,10,68,14,45,22,18,210,0,32,20,210,0,32,24,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,52,154,141,3,96,162,250,2,99,227,77,3,2,0,150,8,45,22,170,170,33,210,0,32,37,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,1,0,28,22,144,30,229,114,1,0,28,22,0,0,0,112,1,0,28,22,80,70,238,114,3,0,0,0,0,42,150,3,80,159,244,2,164,154,92,3,1,0,28,22,80,250,208,114,6,0,185,13,1,7,163,22,150,8,45,22,242,6,170,170,45,210,0,32,49,210,0,32,51,210,0,32,53,210,0,32,55,210,0,224,59,210,0,32,2,0,56,22,28,22,170,170,131,212,0,96,80,153,245,114,3,0,0,0,104,144,119,3,80,123,250,2,20,234,48,3,2,0,68,14,45,22,170,170,71,210,0,32,75,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,1,0,28,22,240,91,237,114,1,0,28,22,192,57,244,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,88,119,150,3,160,199,249,2,243,53,78,3,5,0,68,14,150,8,87,4,199,11,45,22,83,210,0,32,87,210,0,32,89,210,0,32,91,210,0,32,95,210,0,224,1,0,28,22,240,204,239,114,2,0,56,22,28,22,170,170,131,212,0,96,192,170,246,114,2,0,56,22,28,22,170,170,131,212,0,96,224,255,224,114,1,0,28,22,224,105,249,114,1,0,28,22,144,60,224,114,3,0,0,0,76,215,151,3,0,59,249,2,209,152,88,3,1,0,28,22,64,91,228,114,7,0,108,5,68,14,150,8,25,10,154,20,45,22,28,8,107,210,0,32,109,210,0,32,113,210,0,32,117,210,0,32,119,210,0,32,121,210,0,224,125,210,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,1,0,28,22,240,31,247,114,3,0,0,0,116,204,142,3,0,178,250,2,160,54,77,3,3,0,187,6,68,14,45,22,138,210,0,32,142,210,0,32,144,210,0,224,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,3,0,0,0,200,242,150,3,32,24,247,2,62,252,104,3,1,0,28,22,224,29,220,114,1,0,28,22,64,61,233,114,1,0,28,22,208,50,210,114,6,0,68,14,2,11,45,22,34,13,86,13,79,14,170,170,153,210,0,32,157,210,0,32,161,210,0,224,165,210,0,32,167,210,0,32,169,210,0,32,1,0,28,22,16,170,237,114,2,0,56,22,28,22,170,170,122,212,0,96,112,88,248,114,1,0,28,22,224,89,210,114,1,0,28,22,240,15,208,114,1,0,28,22,48,29,211,114,1,0,28,22,48,29,211,114,1,0,28,22,96,17,170,114,3,0,0,0,156,205,181,3,152,242,249,2,10,249,118,3,2,0,56,22,28,22,170,170,140,212,0,96,112,139,177,114,1,0,28,22,240,98,215,114,10,0,68,14,67,12,245,9,163,10,183,10,187,10,58,12,45,22,141,13,43,14,170,170,181,210,0,32,183,210,0,32,187,210,0,32,189,210,0,32,191,210,0,32,193,210,0,32,195,210,0,32,197,210,0,224,201,210,0,32,205,210,0,32,1,0,28,22,112,49,192,114,1,0,28,22,112,245,201,114,1,0,28,22,64,181,213,114,1,0,28,22,144,226,238,114,1,0,28,22,144,60,224,114,1,0,28,22,192,64,222,114,1,0,28,22,176,115,207,114,2,0,56,22,28,22,170,170,131,212,0,96,240,31,247,114,1,0,28,22,160,212,226,114,3,0,0,0,244,6,177,3,248,226,249,2,185,187,106,3,1,0,28,22,80,70,238,114,1,0,28,22,192,64,222,114,12,0,127,5,205,5,171,6,68,14,34,8,90,8,75,8,115,12,154,20,45,22,210,9,75,14,170,170,223,210,0,32,225,210,0,32,227,210,0,32,229,210,0,32,231,210,0,32,233,210,0,32,235,210,0,32,237,210,0,32,241,210,0,32,243,210,0,224,247,210,0,32,249,210,0,32,1,0,28,22,208,73,227,114,1,0,28,22,48,135,235,114,1,0,28,22,64,204,230,114,1,0,28,22,160,99,224,114,2,0,56,22,28,22,170,170,131,212,0,96,240,204,239,114,1,0,28,22,32,156,225,114,1,0,28,22,224,112,227,114,1,0,28,22,112,162,194,114,3,0,0,0,212,47,153,3,168,61,244,2,246,87,106,3,1,0,28,22,240,121,232,114,1,0,28,22,16,170,237,114,1,0,28,22,128,21,224,114,1,0,28,22,0,205,183,114,13,0,33,10,167,10,179,10,2,11,70,4,206,11,54,12,171,7,45,22,79,13,164,13,23,14,79,14,14,211,0,32,16,211,0,32,18,211,0,32,20,211,0,32,22,211,0,32,26,211,0,32,28,211,0,32,30,211,0,32,32,211,0,224,36,211,0,32,38,211,0,32,40,211,0,32,42,211,0,32,1,0,28,22,240,31,247,114,1,0,28,22,96,229,218,114,2,0,56,22,28,22,170,170,131,212,0,96,96,26,231,114,1,0,28,22,176,78,234,114,1,0,28,22,112,5,241,114,1,0,28,22,240,91,237,114,1,0,28,22,144,226,238,114,3,0,0,0,16,150,151,3,0,59,249,2,95,129,90,3,1,0,28,22,64,181,213,114,9,0,251,11,103,13,68,14,31,8,205,8,51,19,207,11,45,22,207,23,64,211,0,32,66,211,0,32,68,211,0,32,72,211,0,32,74,211,0,32,76,211,0,32,78,211,0,32,80,211,0,224,84,211,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,252,56,149,3,16,92,250,2,153,168,75,3,2,0,150,8,45,22,170,170,100,211,0,32,104,211,0,224,1,0,28,22,16,94,208,114,1,0,28,22,80,70,238,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,56,22,28,22,170,170,131,212,0,96,16,27,240,114,1,0,28,22,96,26,231,114,1,0,28,22,208,239,241,114,3,0,0,0,232,220,150,3,88,15,240,2,204,57,105,3,1,0,28,22,192,147,229,114,1,0,28,22,176,62,195,114,10,0,185,13,147,6,1,7,163,22,150,8,55,7,169,8,45,22,26,13,90,13,170,170,112,211,0,32,114,211,0,32,116,211,0,32,118,211,0,32,120,211,0,32,124,211,0,32,126,211,0,32,128,211,0,224,132,211,0,32,134,211,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,88,210,114,3,112,201,250,2,16,98,43,3,2,0,68,14,45,22,170,170,152,211,0,32,156,211,0,224,1,0,28,22,176,235,187,114,1,0,28,22,0,0,0,112,1,0,28,22,240,188,200,114,1,0,28,22,48,255,215,114,1,0,28,22,208,27,193,114,1,0,28,22,224,142,222,114,2,0,56,22,28,22,170,170,131,212,0,96,144,196,243,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,2,0,104,22,28,22,170,170,128,187,238,114,48,165,230,114,1,0,28,22,16,170,237,114,1,0,28,22,160,242,221,114,1,0,28,22,224,142,222,114,1,0,28,22,16,170,237,114,1,0,28,22,16,94,208,114,1,0,28,22,80,24,204,114,1,0,28,22,144,226,238,114,3,0,0,0,100,193,179,3,200,8,245,2,140,70,120,3,2,0,104,22,28,22,170,170,208,126,239,114,0,221,222,114,2,0,56,22,28,22,170,170,131,212,0,96,16,170,237,114,20,0,201,4,209,4,185,13,119,5,245,5,205,6,68,14,1,7,163,22,63,7,169,8,202,22,38,8,3,13,105,8,125,8,68,11,45,22,6,13,14,11,170,170,164,211,0,32,166,211,0,32,168,211,0,32,170,211,0,32,172,211,0,32,174,211,0,32,176,211,0,32,180,211,0,32,182,211,0,32,184,211,0,32,188,211,0,32,190,211,0,32,192,211,0,32,194,211,0,32,196,211,0,32,198,211,0,32,200,211,0,32,202,211,0,224,206,211,0,32,210,211,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,224,20,153,3,32,149,247,2,56,245,95,3,2,0,67,12,45,22,170,170,245,211,0,32,249,211,0,224,2,0,28,22,71,22,170,170,176,131,246,114,32,13,228,114,1,0,28,22,224,105,249,114,1,0,28,22,16,27,240,114,2,0,56,22,28,22,170,170,140,212,0,96,176,251,226,114,2,0,28,22,71,22,170,170,64,234,225,114,32,13,228,114,1,0,28,22,32,43,223,114,2,0,28,22,71,22,170,170,112,208,228,114,32,13,228,114,2,0,28,22,71,22,170,170,240,91,237,114,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,192,64,222,114,3,0,0,0,48,228,176,3,112,201,250,2,68,99,104,3,1,0,28,22,192,64,222,114,1,0,28,22,224,142,222,114,13,0,103,13,68,14,150,8,154,8,150,7,83,12,115,13,171,10,120,19,100,23,45,22,101,10,63,14,1,212,0,32,5,212,0,32,7,212,0,32,9,212,0,32,13,212,0,32,17,212,0,32,19,212,0,32,23,212,0,32,27,212,0,32,31,212,0,32,33,212,0,224,37,212,0,32,39,212,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,131,212,0,96,208,126,239,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,56,22,28,22,170,170,140,212,0,96,144,150,209,114,3,0,0,0,80,154,168,3,32,119,252,2,184,213,94,3,5,0,104,19,83,20,253,7,34,4,45,22,61,212,0,32,65,212,0,32,69,212,0,32,73,212,0,32,77,212,0,224,1,0,28,22,96,199,223,114,1,0,28,22,240,181,222,114,1,0,28,22,32,103,213,114,1,0,28,22,64,204,230,114,1,0,28,22,96,63,204,114,1,0,28,22,64,211,208,114,1,0,28,22,144,60,224,114,1,0,28,22,224,255,224,114,1,0,28,22,144,150,209,114,1,0,28,22,96,146,211,114,1,0,28,22,0,78,225,114,1,0,28,22,16,214,188,114,1,0,28,22,176,25,222,114,1,0,28,22,240,91,237,114,1,0,28,22,176,25,222,114,1,0,28,22,240,211,217,114,2,0,56,22,28,22,170,170,131,212,0,96,0,101,242,114,1,0,28,22,16,117,225,114,2,0,104,22,28,22,170,170,112,231,245,114,128,224,211,114,1,0,28,22,112,185,211,114,1,0,28,22,208,103,222,114,1,0,28,22,128,254,206,114,3,0,0,0,92,156,159,3,112,112,244,2,239,96,106,3,1,0,28,22,64,121,223,114,1,0,28,22,160,242,221,114,1,0,28,22,192,64,222,114,1,0,28,22,64,211,208,114,1,0,28,22,176,205,192,114,1,0,28,22,0,25,213,114,29,0,13,5,25,5,81,5,108,5,151,5,214,23,175,6,68,14,196,7,75,12,74,8,99,9,111,9,229,9,41,10,88,10,241,7,175,10,182,11,204,12,220,12,224,12,45,22,243,12,247,12,251,12,14,13,144,23,15,14,89,212,0,32,91,212,0,32,93,212,0,32,95,212,0,32,97,212,0,32,99,212,0,32,101,212,0,32,103,212,0,32,105,212,0,32,107,212,0,32,109,212,0,32,111,212,0,32,113,212,0,32,115,212,0,32,117,212,0,32,119,212,0,32,121,212,0,32,125,212,0,32,127,212,0,32,131,212,0,32,133,212,0,32,135,212,0,32,137,212,0,224,141,212,0,32,143,212,0,32,145,212,0,32,147,212,0,32,149,212,0,32,151,212,0,32,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,2,0,56,22,28,22,170,170,131,212,0,96,48,75,245,114,3,0,0,0,128,115,119,3,112,201,250,2,48,167,57,3,3,0,68,14,252,13,45,22,197,212,0,32,201,212,0,32,205,212,0,224,2,0,56,22,28,22,170,170,131,212,0,96,192,57,244,114,2,0,56,22,28,22,170,170,131,212,0,96,192,57,244,114,3,0,0,0,68,71,103,3,48,45,250,2,128,196,43,3,3,0,68,14,199,10,45,22,214,212,0,32,218,212,0,32,222,212,0,224,2,0,56,22,28,22,170,170,122,212,0,96,96,162,250,114,2,0,56,22,28,22,170,170,131,212,0,96,192,177,224,114,3,0,0,0,136,171,165,3,112,201,250,2,4,2,94,3,3,0,68,14,76,14,45,22,231,212,0,32,235,212,0,32,239,212,0,224,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,1,0,28,22,16,230,227,114,1,0,28,22,160,129,219,114,3,0,0,0,212,175,165,3,200,240,248,2,52,156,93,3,4,0,185,13,17,5,22,10,45,22,170,170,248,212,0,32,252,212,0,32,254,212,0,32,0,213,0,224,1,0,28,22,32,209,237,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,3,0,0,0,228,95,164,3,8,10,250,2,32,111,92,3,1,0,28,22,176,115,207,114,4,0,68,14,67,12,45,22,125,22,170,170,11,213,0,32,13,213,0,32,17,213,0,224,21,213,0,32,1,0,28,22,0,221,222,114,2,0,56,22,28,22,170,170,131,212,0,96,208,209,246,114,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,3,0,0,0,28,90,169,3,64,90,249,2,238,158,106,3,4,0,84,7,67,12,135,11,45,22,170,170,30,213,0,32,32,213,0,32,36,213,0,32,40,213,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,3,0,0,0,72,165,140,3,96,162,250,2,145,188,75,3,2,0,56,22,28,22,170,170,131,212,0,96,48,105,240,114,1,0,28,22,224,82,232,114,4,0,150,8,45,22,233,3,125,22,170,170,51,213,0,32,55,213,0,224,59,213,0,32,63,213,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,3,0,56,22,28,22,71,22,131,212,0,96,80,160,223,114,32,13,228,114,3,0,0,0,76,34,152,3,192,51,245,2,186,145,97,3,3,0,104,22,56,22,28,22,16,140,242,114,131,212,0,96,176,131,246,114,4,0,68,14,18,6,45,22,42,13,170,170,72,213,0,32,76,213,0,32,81,213,0,224,85,213,0,32,1,0,28,22,224,255,224,114,1,0,28,22,208,200,185,114,1,0,28,22,128,111,209,114,3,0,104,22,56,22,28,22,16,170,237,114,140,212,0,96,192,87,239,114,1,0,28,22,224,59,215,114,2,0,56,22,28,22,170,170,131,212,0,96,64,114,245,114,1,0,28,22,48,105,240,114,1,0,28,22,112,238,223,114,2,0,56,22,28,22,170,170,131,212,0,96,0,214,244,114,3,0,104,22,56,22,28,22,0,161,232,114,140,212,0,96,64,61,233,114,1,0,28,22,128,88,192,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,0,18,235,114,1,0,28,22,48,29,211,114,2,0,56,22,28,22,170,170,140,212,0,96,192,64,222,114,2,0,56,22,28,22,170,170,140,212,0,96,224,142,222,114,1,0,28,22,112,238,223,114,2,0,104,22,28,22,170,170,128,44,241,114,0,175,188,114,3,0,0,0,208,43,176,3,208,60,250,2,253,172,118,3,2,0,56,22,28,22,170,170,140,212,0,96,176,25,222,114,2,0,56,22,28,22,170,170,140,212,0,96,208,216,224,114,1,0,28,22,80,77,216,114,21,0,115,5,139,5,189,5,253,5,65,6,68,14,67,12,253,6,12,7,220,7,248,7,50,8,251,8,253,9,44,11,52,11,208,12,45,22,62,13,184,13,125,22,97,213,0,32,99,213,0,32,101,213,0,32,103,213,0,32,108,213,0,32,110,213,0,32,114,213,0,32,116,213,0,32,118,213,0,32,122,213,0,32,127,213,0,32,129,213,0,32,134,213,0,32,136,213,0,32,140,213,0,32,144,213,0,32,146,213,0,32,150,213,0,224,154,213,0,32,158,213,0,32,162,213,0,32,1,0,28,22,160,99,224,114,1,0,28,22,224,232,207,114,2,0,28,22,71,22,170,170,80,220,213,114,32,13,228,114,1,0,28,22,208,103,222,114,1,0,28,22,176,205,192,114,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,1,0,28,22,224,59,215,114,1,0,28,22,112,215,206,114,1,0,28,22,0,55,208,114,1,0,28,22,80,107,211,114,1,0,28,22,16,4,223,114,1,0,28,22,176,115,207,114,1,0,28,22,208,110,200,114,1,0,28,22,192,154,207,114,1,0,28,22,112,215,206,114,1,0,28,22,192,200,241,114,1,0,28,22,160,76,207,114,1,0,28,22,160,92,246,114,1,0,28,22,64,31,238,114,1,0,28,22,48,248,237,114,2,0,104,22,28,22,170,170,160,242,221,114,0,131,237,114,3,0,0,0,244,169,179,3,200,14,244,2,157,146,120,3,1,0,28,22,208,50,210,114,1,0,28,22,208,253,197,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,25,0,17,5,77,5,92,5,170,5,193,5,68,14,22,10,114,7,118,7,236,7,252,7,188,8,7,9,37,9,52,9,72,9,112,10,159,23,66,6,59,13,86,12,45,22,167,23,54,13,28,8,196,213,0,32,198,213,0,32,200,213,0,32,204,213,0,32,206,213,0,32,208,213,0,32,212,213,0,32,214,213,0,32,216,213,0,32,218,213,0,32,220,213,0,32,222,213,0,32,224,213,0,32,226,213,0,32,228,213,0,32,230,213,0,32,232,213,0,32,234,213,0,32,236,213,0,32,238,213,0,32,240,213,0,32,244,213,0,224,248,213,0,32,250,213,0,32,252,213,0,32,1,0,28,22,96,3,214,114,2,0,56,22,28,22,170,170,140,212,0,96,144,37,207,114,2,0,56,22,28,22,170,170,140,212,0,96,112,148,238,114,1,0,28,22,80,183,240,114,2,0,56,22,28,22,170,170,140,212,0,96,208,27,193,114,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,1,0,28,22,160,233,160,114,1,0,28,22,96,109,238,114,1,0,28,22,112,162,194,114,1,0,28,22,208,103,222,114,3,0,0,0,88,195,179,3,200,228,250,2,167,151,107,3,1,0,28,22,48,29,211,114,12,0,88,9,97,6,103,13,68,14,187,15,100,11,123,11,47,13,90,12,196,12,45,22,158,12,170,170,38,214,0,32,40,214,0,32,44,214,0,32,48,214,0,32,50,214,0,32,54,214,0,32,58,214,0,32,60,214,0,32,62,214,0,32,64,214,0,32,66,214,0,224,70,214,0,32,1,0,28,22,48,195,225,114,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,52,255,120,3,112,201,250,2,236,223,48,3,3,0,68,14,150,8,45,22,91,214,0,32,93,214,0,32,97,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,184,249,114,3,0,0,0,192,226,89,3,112,201,250,2,224,211,17,3,2,0,68,14,45,22,170,170,106,214,0,32,110,214,0,224,2,0,56,22,28,22,170,170,122,212,0,96,80,40,243,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,0,0,16,197,164,3,152,117,249,2,187,91,91,3,3,0,68,14,67,12,45,22,118,214,0,32,122,214,0,32,126,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,232,195,150,3,232,56,250,2,34,216,93,3,2,0,185,13,45,22,170,170,135,214,0,32,139,214,0,224,1,0,28,22,240,204,239,114,1,0,28,22,224,52,237,114,1,0,28,22,48,248,237,114,1,0,28,22,160,76,207,114,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,52,148,167,3,208,60,250,2,179,82,103,3,6,0,68,14,67,12,150,8,180,10,70,4,45,22,170,170,147,214,0,32,149,214,0,32,151,214,0,32,153,214,0,32,155,214,0,32,159,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,112,178,233,114,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,3,0,0,0,192,9,121,3,0,184,249,2,146,72,59,3,3,0,68,14,60,11,45,22,173,214,0,32,177,214,0,32,181,214,0,224,1,0,28,22,208,216,224,114,2,0,56,22,28,22,170,170,131,212,0,96,0,78,225,114,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,3,0,0,0,12,24,161,3,56,2,250,2,65,119,97,3,4,0,103,13,67,12,115,21,45,22,170,170,190,214,0,32,192,214,0,32,196,214,0,32,200,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,1,0,28,22,240,91,237,114,1,0,28,22,112,72,209,114,3,0,0,0,108,247,167,3,248,95,250,2,193,56,90,3,4,0,185,13,22,10,75,8,45,22,170,170,211,214,0,32,215,214,0,32,217,214,0,32,219,214,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,1,0,28,22,176,131,246,114,1,0,28,22,48,248,237,114,3,0,0,0,60,148,139,3,192,27,249,2,64,64,83,3,4,0,150,8,158,11,154,20,45,22,170,170,230,214,0,32,234,214,0,32,236,214,0,32,238,214,0,224,1,0,28,22,128,201,194,114,1,0,28,22,16,94,208,114,1,0,28,22,176,205,192,114,1,0,28,22,48,105,240,114,1,0,28,22,224,52,237,114,1,0,28,22,80,70,238,114,1,0,28,22,32,126,230,114,1,0,28,22,80,227,191,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,1,0,28,22,128,254,206,114,3,0,0,0,136,41,170,3,168,150,250,2,101,0,105,3,1,0,28,22,144,37,207,114,12,0,85,5,103,13,63,12,68,14,67,12,150,8,20,8,100,11,173,13,155,22,45,22,101,10,170,170,249,214,0,32,251,214,0,32,253,214,0,32,255,214,0,32,1,215,0,32,3,215,0,32,5,215,0,32,7,215,0,32,9,215,0,32,13,215,0,32,15,215,0,224,19,215,0,32,2,0,56,22,28,22,170,170,140,212,0,96,144,90,219,114,2,0,56,22,28,22,170,170,140,212,0,96,0,191,227,114,2,0,56,22,28,22,170,170,140,212,0,96,80,160,223,114,2,0,56,22,28,22,170,170,140,212,0,96,16,34,218,114,1,0,28,22,112,148,238,114,2,0,56,22,28,22,170,170,131,212,0,96,112,201,250,114,3,0,56,22,28,22,71,22,131,212,0,96,112,201,250,114,32,13,228,114,3,0,0,0,36,102,164,3,96,162,250,2,33,49,97,3,2,0,56,22,28,22,170,170,140,212,0,96,0,0,0,112,9,0,252,12,20,8,173,13,240,10,130,12,16,14,155,22,45,22,158,12,40,215,0,32,44,215,0,32,48,215,0,32,52,215,0,32,56,215,0,32,58,215,0,32,62,215,0,32,67,215,0,224,71,215,0,32,2,0,56,22,28,22,170,170,140,212,0,96,0,85,203,114,1,0,28,22,96,10,192,114,2,0,56,22,28,22,170,170,140,212,0,96,48,29,211,114,2,0,56,22,28,22,170,170,140,212,0,96,80,24,204,114,2,0,56,22,28,22,170,170,140,212,0,96,208,103,222,114,1,0,28,22,32,133,208,114,2,0,56,22,28,22,170,170,140,212,0,96,224,59,215,114,1,0,28,22,16,207,210,114,1,0,28,22,0,0,0,112,1,0,28,22,208,103,222,114,1,0,28,22,96,33,209,114,1,0,28,22,64,188,191,114,2,0,104,22,28,22,170,170,96,79,243,114,0,251,217,114,2,0,56,22,28,22,170,170,140,212,0,96,192,154,207,114,1,0,28,22,160,233,160,114,2,0,56,22,28,22,170,170,140,212,0,96,176,228,209,114,2,0,56,22,28,22,170,170,140,212,0,96,80,197,196,114,2,0,56,22,28,22,170,170,140,212,0,96,208,193,207,114,1,0,28,22,160,106,202,114,2,0,56,22,28,22,170,170,140,212,0,96,0,55,208,114,2,0,56,22,28,22,170,170,140,212,0,96,224,232,207,114,2,0,56,22,28,22,170,170,140,212,0,96,96,206,201,114,2,0,56,22,28,22,170,170,140,212,0,96,224,232,207,114,2,0,56,22,28,22,170,170,140,212,0,96,16,94,208,114,1,0,28,22,48,239,176,114,1,0,28,22,208,27,193,114,2,0,56,22,28,22,170,170,140,212,0,96,176,228,209,114,1,0,28,22,192,11,210,114,2,0,56,22,28,22,170,170,131,212,0,96,32,6,250,114,2,0,56,22,28,22,170,170,140,212,0,96,192,11,210,114,1,0,28,22,112,252,179,114,3,0,0,0,64,44,184,3,200,228,250,2,26,44,119,3,2,0,56,22,28,22,170,170,140,212,0,96,224,142,222,114,2,0,56,22,28,22,170,170,140,212,0,96,144,37,207,114,2,0,56,22,28,22,170,170,140,212,0,96,32,246,210,114,1,0,28,22,208,117,178,114,1,0,28,22,0,0,0,112,37,0,161,4,197,4,32,14,139,22,35,8,197,5,179,24,9,6,109,6,112,6,119,6,206,6,30,6,54,8,58,8,117,8,223,8,243,8,255,8,22,9,30,9,87,9,103,9,249,9,244,13,92,10,139,10,85,10,47,13,254,11,155,22,45,22,83,13,94,13,106,13,145,13,168,13,89,215,0,32,93,215,0,32,95,215,0,32,99,215,0,32,103,215,0,32,107,215,0,32,109,215,0,32,113,215,0,32,115,215,0,32,117,215,0,32,119,215,0,32,121,215,0,32,123,215,0,32,127,215,0,32,131,215,0,32,133,215,0,32,137,215,0,32,141,215,0,32,145,215,0,32,147,215,0,32,151,215,0,32,155,215,0,32,159,215,0,32,163,215,0,32,167,215,0,32,169,215,0,32,171,215,0,32,175,215,0,32,177,215,0,32,181,215,0,32,185,215,0,32,187,215,0,224,191,215,0,32,195,215,0,32,199,215,0,32,203,215,0,32,205,215,0,32,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,2,0,56,22,28,22,170,170,131,212,0,96,160,166,192,114,2,0,56,22,28,22,170,170,131,212,0,96,16,110,247,114,3,0,0,0,16,75,151,3,152,135,246,2,212,176,103,3,4,0,68,14,150,8,55,13,45,22,170,170,7,216,0,32,11,216,0,32,15,216,0,32,19,216,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,2,0,28,22,71,22,170,170,224,255,224,114,32,13,228,114,3,0,0,0,220,192,180,3,128,252,248,2,39,247,106,3,3,0,185,13,241,4,45,22,30,216,0,32,34,216,0,32,38,216,0,224,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,1,0,28,22,96,49,248,114,1,0,28,22,224,142,222,114,3,0,0,0,72,76,134,3,104,131,248,2,233,175,81,3,4,0,68,14,92,11,230,11,45,22,170,170,47,216,0,32,51,216,0,32,53,216,0,32,55,216,0,224,1,0,28,22,96,162,250,114,2,0,56,22,28,22,170,170,131,212,0,96,160,122,241,114,2,0,56,22,28,22,170,170,131,212,0,96,0,214,244,114,3,0,0,0,248,118,136,3,48,176,249,2,194,158,70,3,4,0,93,6,68,14,150,8,45,22,170,170,66,216,0,32,68,216,0,32,72,216,0,32,76,216,0,224,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,96,169,228,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,1,0,28,22,240,211,217,114,1,0,28,22,176,138,224,114,1,0,28,22,32,43,223,114,1,0,28,22,240,68,220,114,3,0,0,0,56,126,165,3,216,166,246,2,0,180,108,3,1,0,28,22,240,241,212,114,9,0,185,13,53,5,68,14,8,7,67,7,202,22,56,10,45,22,51,14,87,216,0,32,91,216,0,32,93,216,0,32,97,216,0,32,99,216,0,32,101,216,0,32,103,216,0,32,105,216,0,224,109,216,0,32,1,0,28,22,160,205,248,114,2,0,56,22,28,22,170,170,140,212,0,96,96,199,223,114,1,0,28,22,48,142,213,114,1,0,28,22,0,0,0,112,1,0,28,22,80,24,204,114,1,0,28,22,208,50,210,114,2,0,104,22,28,22,170,170,240,31,247,114,16,18,179,114,1,0,28,22,112,49,192,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,0,0,176,176,170,3,112,201,250,2,201,78,103,3,1,0,28,22,80,84,194,114,11,0,68,14,206,6,16,7,175,11,202,11,34,4,98,12,102,12,165,12,45,22,185,12,125,216,0,32,127,216,0,32,131,216,0,32,133,216,0,32,135,216,0,32,137,216,0,32,139,216,0,32,143,216,0,32,145,216,0,32,149,216,0,224,153,216,0,32,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,192,154,207,114,2,0,56,22,28,22,170,170,131,212,0,96,32,209,237,114,1,0,28,22,176,115,207,114,2,0,56,22,28,22,170,170,131,212,0,96,80,160,223,114,3,0,0,0,36,216,170,3,88,80,250,2,166,247,95,3,2,0,56,22,28,22,170,170,131,212,0,96,16,110,247,114,7,0,68,14,75,8,115,12,41,11,154,20,45,22,210,9,172,216,0,32,176,216,0,32,178,216,0,32,182,216,0,32,184,216,0,32,188,216,0,224,192,216,0,32,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,3,0,0,0,24,127,106,3,80,123,250,2,88,182,52,3,2,0,68,14,45,22,170,170,207,216,0,32,211,216,0,224,1,0,28,22,224,22,242,114,1,0,28,22,240,174,244,114,1,0,28,22,16,253,244,114,1,0,28,22,128,224,211,114,1,0,28,22,240,15,208,114,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,0,0,108,101,158,3,200,228,250,2,92,179,89,3,2,0,56,22,28,22,170,170,140,212,0,96,224,142,222,114,8,0,103,13,68,14,252,12,20,8,87,4,178,19,45,22,141,13,170,170,219,216,0,32,221,216,0,32,223,216,0,32,225,216,0,32,227,216,0,32,229,216,0,32,233,216,0,224,237,216,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,118,243,114,1,0,28,22,208,239,241,114,3,0,0,0,96,31,120,3,32,119,252,2,56,46,45,3,3,0,104,19,47,13,45,22,254,216,0,32,2,217,0,32,4,217,0,224,1,0,28,22,48,218,242,114,1,0,28,22,160,9,239,114,1,0,28,22,224,165,239,114,1,0,28,22,240,91,237,114,1,0,28,22,144,90,219,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,52,135,165,3,224,224,250,2,60,203,94,3,1,0,28,22,48,82,223,114,8,0,35,12,103,13,68,14,20,8,100,11,240,10,45,22,158,12,170,170,13,217,0,32,15,217,0,32,17,217,0,32,19,217,0,32,21,217,0,32,23,217,0,32,27,217,0,224,31,217,0,32,2,0,56,22,28,22,170,170,131,212,0,96,112,5,241,114,1,0,28,22,0,0,0,112,1,0,28,22,0,0,0,112,1,0,28,22,48,45,250,114,1,0,28,22,240,204,239,114,2,0,104,22,28,22,170,170,192,147,229,114,224,165,239,114,3,0,0,0,44,74,149,3,168,73,242,2,221,153,96,3,7,0,68,14,1,7,163,22,247,8,9,10,68,0,45,22,46,217,0,32,50,217,0,32,52,217,0,32,54,217,0,32,56,217,0,32,58,217,0,32,62,217,0,224,1,0,28,22,64,151,218,114,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,3,0,0,0,0,107,135,3,64,84,250,2,176,50,61,3,3,0,229,12,87,4,45,22,77,217,0,32,79,217,0,32,83,217,0,224,3,0,104,22,56,22,28,22,32,119,252,114,140,212,0,96,144,120,214,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,144,180,204,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,160,99,224,114,2,0,56,22,28,22,170,170,140,212,0,96,144,226,238,114,1,0,28,22,0,0,0,112,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,176,161,241,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,16,94,208,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,96,236,196,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,144,233,216,114,2,0,56,22,28,22,170,170,140,212,0,96,240,181,222,114,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,64,211,208,114,2,0,56,22,28,22,170,170,140,212,0,96,240,91,237,114,3,0,0,0,160,227,155,3,168,67,243,2,244,38,104,3,3,0,104,22,56,22,28,22,224,52,237,114,140,212,0,96,208,27,193,114,2,0,56,22,28,22,170,170,122,212,0,96,160,92,246,114,15,0,131,5,181,5,190,6,1,7,163,22,150,8,219,8,17,10,29,10,14,12,118,12,141,12,45,22,30,13,242,6,92,217,0,32,97,217,0,32,102,217,0,32,107,217,0,32,111,217,0,32,113,217,0,32,118,217,0,32,123,217,0,32,128,217,0,32,133,217,0,32,137,217,0,32,142,217,0,32,146,217,0,224,150,217,0,32,155,217,0,32,3,0,104,22,56,22,28,22,112,201,250,114,131,212,0,96,96,222,240,114,1,0,28,22,96,146,211,114,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,1,0,28,22,64,121,223,114,3,0,0,0,112,165,150,3,208,114,241,2,131,139,103,3,5,0,185,13,219,11,244,10,171,7,45,22,182,217,0,32,187,217,0,32,189,217,0,32,193,217,0,32,195,217,0,224,1,0,28,22,32,246,210,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,2,0,104,22,28,22,170,170,240,31,247,114,128,14,246,114,3,0,0,0,128,134,145,3,120,33,250,2,225,136,80,3,1,0,28,22,176,25,222,114,5,0,244,7,120,19,137,12,45,22,125,22,207,217,0,32,209,217,0,32,213,217,0,32,217,217,0,224,221,217,0,32,1,0,28,22,240,204,239,114,2,0,56,22,28,22,170,170,131,212,0,96,240,204,239,114,1,0,28,22,128,247,228,114,3,0,0,0,164,148,150,3,240,204,239,2,204,92,103,3,4,0,185,13,68,14,247,10,45,22,170,170,231,217,0,32,233,217,0,32,237,217,0,32,239,217,0,224,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,3,0,0,0,48,122,127,3,24,73,246,2,114,116,74,3,2,0,70,4,45,22,170,170,250,217,0,32,254,217,0,224,2,0,56,22,28,22,170,170,131,212,0,96,208,66,249,114,3,0,0,0,212,85,155,3,8,147,248,2,174,97,96,3,2,0,67,12,45,22,170,170,6,218,0,32,10,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,128,14,246,114,1,0,28,22,240,91,237,114,2,0,56,22,28,22,170,170,131,212,0,96,64,234,225,114,3,0,0,0,104,151,122,3,112,201,250,2,70,170,62,3,1,0,28,22,112,65,231,114,5,0,68,14,67,12,120,19,45,22,152,13,18,218,0,32,22,218,0,32,24,218,0,32,28,218,0,224,32,218,0,32,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,2,0,56,22,28,22,170,170,131,212,0,96,176,108,229,114,1,0,28,22,32,43,223,114,1,0,28,22,0,161,232,114,2,0,28,22,71,22,170,170,192,184,202,114,32,13,228,114,3,0,0,0,16,51,155,3,104,131,248,2,0,182,104,3,6,0,185,13,150,8,30,6,134,20,192,12,45,22,170,170,42,218,0,32,46,218,0,32,50,218,0,32,52,218,0,32,54,218,0,32,58,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,227,247,114,2,0,56,22,28,22,170,170,131,212,0,96,224,135,244,114,3,0,0,0,32,76,149,3,240,19,249,2,112,45,88,3,1,0,28,22,16,4,223,114,1,0,28,22,64,204,230,114,5,0,68,14,186,5,45,22,79,13,79,14,72,218,0,32,76,218,0,32,80,218,0,224,84,218,0,32,86,218,0,32,1,0,28,22,112,201,250,114,3,0,0,0,252,157,103,3,112,201,250,2,56,167,29,3,2,0,68,14,45,22,170,170,96,218,0,32,98,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,64,167,126,3,96,162,250,2,28,130,64,3,2,0,68,14,45,22,170,170,106,218,0,32,110,218,0,224,2,0,56,22,28,22,170,170,131,212,0,96,80,70,238,114,2,0,56,22,28,22,170,170,131,212,0,96,224,165,239,114,3,0,0,0,248,228,151,3,16,21,241,2,134,83,104,3,3,0,185,13,150,8,45,22,118,218,0,32,122,218,0,32,126,218,0,224,2,0,104,22,28,22,170,170,32,119,252,114,32,119,252,114,3,0,0,0,244,123,95,3,112,201,250,2,224,151,27,3,2,0,150,8,45,22,170,170,135,218,0,32,139,218,0,224,1,0,28,22,80,70,238,114,2,0,56,22,28,22,170,170,131,212,0,96,16,253,244,114,2,0,104,22,28,22,170,170,48,248,237,114,208,103,222,114,3,0,0,0,164,129,149,3,160,229,244,2,172,160,99,3,4,0,47,12,150,8,42,8,45,22,170,170,147,218,0,32,149,218,0,32,153,218,0,32,157,218,0,224,1,0,28,22,240,204,239,114,1,0,28,22,160,219,204,114,2,0,104,22,28,22,170,170,96,79,243,114,192,124,212,114,1,0,28,22,16,4,223,114,2,0,104,22,28,22,170,170,208,126,239,114,32,110,191,114,1,0,28,22,32,110,191,114,1,0,28,22,32,13,228,114,1,0,28,22,208,193,207,114,2,0,28,22,71,22,170,170,0,18,235,114,32,13,228,114,1,0,28,22,128,141,204,114,2,0,28,22,71,22,170,170,0,161,232,114,32,13,228,114,3,0,0,0,80,238,179,3,152,242,249,2,174,70,112,3,3,0,104,22,56,22,28,22,16,223,249,114,131,212,0,96,64,227,247,114,2,0,28,22,71,22,170,170,192,87,239,114,32,13,228,114,1,0,28,22,32,43,223,114,15,0,68,14,244,7,137,8,48,9,95,9,205,9,21,10,72,10,215,10,78,12,126,12,45,22,240,12,78,13,125,22,168,218,0,32,170,218,0,32,172,218,0,32,176,218,0,32,178,218,0,32,182,218,0,32,184,218,0,32,186,218,0,32,188,218,0,32,192,218,0,32,194,218,0,32,198,218,0,224,202,218,0,32,207,218,0,32,211,218,0,32,1,0,28,22,48,149,191,114,1,0,28,22,160,16,217,114,1,0,28,22,0,131,237,114,3,0,0,0,140,221,151,3,200,228,250,2,71,8,100,3,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,5,0,185,13,22,10,47,13,45,22,164,9,236,218,0,32,238,218,0,32,240,218,0,32,242,218,0,224,246,218,0,32,2,0,56,22,28,22,170,170,131,212,0,96,32,149,247,114,3,0,0,0,240,199,88,3,32,6,250,2,156,58,43,3,3,0,56,22,28,22,71,22,131,212,0,96,32,149,247,114,32,13,228,114,3,0,68,14,45,22,128,20,2,219,0,32,6,219,0,224,10,219,0,32,3,0,104,22,56,22,28,22,32,119,252,114,131,212,0,96,240,174,244,114,3,0,0,0,136,153,143,3,152,147,244,2,132,154,88,3,2,0,56,22,28,22,170,170,131,212,0,96,240,174,244,114,3,0,70,4,45,22,236,12,20,219,0,32,25,219,0,224,29,219,0,32,1,0,28,22,64,68,211,114,1,0,28,22,0,131,237,114,3,0,0,0,84,94,164,3,224,224,250,2,159,237,94,3,2,0,56,22,28,22,170,170,131,212,0,96,160,92,246,114,1,0,28,22,160,39,234,114,5,0,134,20,47,13,45,22,38,11,199,9,38,219,0,32,40,219,0,32,42,219,0,224,46,219,0,32,50,219,0,32,1,0,28,22,224,105,249,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,3,0,0,0,36,227,164,3,24,192,247,2,28,138,103,3,4,0,165,4,185,13,150,8,45,22,170,170,60,219,0,32,62,219,0,32,66,219,0,32,70,219,0,224,2,0,56,22,28,22,170,170,131,212,0,96,0,244,239,114,3,0,0,0,24,7,126,3,112,201,250,2,47,218,72,3,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,68,14,45,22,190,5,81,219,0,32,85,219,0,224,89,219,0,32,1,0,28,22,80,31,182,114,1,0,28,22,48,29,211,114,1,0,28,22,64,181,213,114,1,0,28,22,96,116,216,114,1,0,28,22,208,20,215,114,1,0,28,22,96,146,211,114,1,0,28,22,160,46,212,114,1,0,28,22,80,31,182,114,1,0,28,22,80,70,238,114,1,0,28,22,0,115,198,114,1,0,28,22,0,115,198,114,1,0,28,22,144,233,216,114,1,0,28,22,240,15,208,114,1,0,28,22,96,17,170,114,1,0,28,22,112,208,228,114,1,0,28,22,32,200,176,114,1,0,28,22,64,45,194,114,1,0,28,22,208,27,193,114,2,0,28,22,71,22,170,170,64,45,194,114,32,13,228,114,3,0,0,0,104,97,181,3,8,10,250,2,15,68,114,3,2,0,56,22,28,22,170,170,131,212,0,96,16,223,249,114,1,0,28,22,144,74,180,114,1,0,28,22,192,78,178,114,1,0,28,22,224,142,222,114,24,0,201,12,161,4,185,13,19,12,64,23,85,5,96,5,63,12,68,14,30,6,26,11,117,8,192,8,182,4,134,20,202,23,213,9,130,12,155,22,45,22,101,10,46,13,199,9,86,14,170,170,98,219,0,32,100,219,0,32,102,219,0,32,104,219,0,32,106,219,0,32,108,219,0,32,110,219,0,32,112,219,0,32,114,219,0,32,116,219,0,32,118,219,0,32,120,219,0,32,122,219,0,32,124,219,0,32,126,219,0,32,128,219,0,32,130,219,0,32,132,219,0,32,134,219,0,32,138,219,0,224,142,219,0,32,146,219,0,32,148,219,0,32,150,219,0,32,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,1,0,28,22,224,89,210,114,3,0,0,0,212,16,154,3,160,193,250,2,47,86,88,3,3,0,68,14,67,12,45,22,189,219,0,32,193,219,0,32,195,219,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,195,234,114,3,0,0,0,224,40,108,3,48,45,250,2,140,180,57,3,2,0,56,22,28,22,170,170,131,212,0,96,176,244,248,114,3,0,68,14,45,22,168,20,204,219,0,32,208,219,0,224,212,219,0,32,3,0,0,0,244,219,179,3,40,88,250,2,62,90,105,3,1,0,28,22,192,244,192,114,2,0,56,22,28,22,170,170,131,212,0,96,48,45,250,114,3,0,45,22,50,13,125,22,221,219,0,224,225,219,0,32,227,219,0,32,1,0,28,22,192,64,222,114,1,0,28,22,16,4,223,114,2,0,56,22,28,22,170,170,131,212,0,96,144,53,246,114,1,0,28,22,96,116,216,114,1,0,28,22,144,60,224,114,1,0,28,22,16,4,223,114,1,0,28,22,48,112,218,114,2,0,104,22,28,22,170,170,96,79,243,114,240,181,222,114,1,0,28,22,224,142,222,114,1,0,28,22,16,117,225,114,1,0,28,22,96,116,216,114,1,0,28,22,32,133,208,114,2,0,104,22,28,22,170,170,160,242,221,114,0,55,208,114,1,0,28,22,112,178,233,114,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,3,0,0,0,4,68,165,3,176,6,246,2,120,175,110,3,1,0,28,22,96,116,216,114,17,0,253,4,65,5,68,14,70,8,133,8,10,9,68,9,241,9,45,10,5,11,214,11,238,11,22,12,157,12,171,7,45,22,176,13,236,219,0,32,238,219,0,32,240,219,0,32,244,219,0,32,246,219,0,32,248,219,0,32,250,219,0,32,252,219,0,32,0,220,0,32,2,220,0,32,4,220,0,32,6,220,0,32,8,220,0,32,12,220,0,32,14,220,0,32,18,220,0,224,22,220,0,32,1,0,28,22,240,211,217,114,1,0,28,22,208,163,212,114,1,0,28,22,64,181,213,114,1,0,28,22,128,88,192,114,1,0,28,22,16,207,210,114,1,0,28,22,128,21,224,114,1,0,28,22,0,25,213,114,2,0,56,22,28,22,170,170,122,212,0,96,32,179,242,114,1,0,28,22,192,64,222,114,3,0,0,0,0,109,168,3,200,228,250,2,253,115,108,3,1,0,28,22,96,146,211,114,2,0,56,22,28,22,170,170,131,212,0,96,80,153,245,114,1,0,28,22,208,103,222,114,13,0,88,9,85,5,73,6,63,12,20,8,100,11,173,13,47,13,226,11,45,22,101,10,158,12,185,12,50,220,0,32,52,220,0,32,54,220,0,32,56,220,0,32,58,220,0,32,60,220,0,32,62,220,0,32,64,220,0,32,68,220,0,32,70,220,0,224,74,220,0,32,76,220,0,32,80,220,0,32,1,0,28,22,80,17,226,114,1,0,28,22,96,169,228,114,2,0,56,22,28,22,170,170,131,212,0,96,112,95,226,114,1,0,28,22,112,109,182,114,1,0,28,22,96,56,226,114,1,0,28,22,16,170,237,114,1,0,28,22,208,216,224,114,1,0,28,22,240,8,230,114,1,0,28,22,80,160,223,114,2,0,56,22,28,22,170,170,131,212,0,96,240,31,247,114,1,0,28,22,112,95,226,114,3,0,0,0,252,34,161,3,160,217,246,2,210,89,108,3,1,0,28,22,48,82,223,114,1,0,28,22,80,130,228,114,14,0,153,4,1,6,68,14,75,12,76,9,140,17,143,10,9,11,55,13,171,7,228,12,45,22,74,13,3,14,170,170,102,220,0,32,104,220,0,32,106,220,0,32,110,220,0,32,112,220,0,32,114,220,0,32,116,220,0,32,118,220,0,32,120,220,0,32,122,220,0,32,126,220,0,32,128,220,0,224,132,220,0,32,134,220,0,32,2,0,56,22,28,22,170,170,122,212,0,96,32,119,252,114,3,0,0,0,176,147,104,3,112,201,250,2,96,71,30,3,2,0,68,14,45,22,170,170,158,220,0,32,162,220,0,224,1,0,28,22,0,0,0,112,1,0,28,22,80,174,179,114,2,0,28,22,71,22,170,170,16,101,186,114,32,13,228,114,1,0,28,22,0,0,0,112,1,0,28,22,240,165,183,114,1,0,28,22,176,85,212,114,2,0,56,22,28,22,170,170,122,212,0,96,64,84,250,114,2,0,56,22,28,22,170,170,140,212,0,96,0,18,235,114,1,0,28,22,48,66,184,114,1,0,28,22,96,146,211,114,1,0,28,22,64,181,213,114,1,0,28,22,128,118,187,114,2,0,56,22,28,22,170,170,140,212,0,96,208,57,188,114,1,0,28,22,176,62,195,114,2,0,28,22,71,22,170,170,192,78,178,114,32,13,228,114,1,0,28,22,0,0,0,112,1,0,28,22,224,89,210,114,1,0,28,22,0,0,0,112,1,0,28,22,160,189,209,114,1,0,28,22,208,117,178,114,1,0,28,22,0,122,176,114,1,0,28,22,160,136,197,114,1,0,28,22,0,0,0,112,1,0,28,22,240,218,195,114,1,0,28,22,64,211,208,114,3,0,0,0,20,71,196,3,112,201,250,2,223,21,122,3,1,0,28,22,224,89,210,114,1,0,28,22,144,97,197,114,1,0,28,22,16,177,215,114,29,0,233,5,17,6,25,6,33,6,115,6,103,13,68,14,67,12,229,6,12,7,150,8,27,7,13,23,244,7,116,5,210,23,87,4,213,23,97,11,139,9,108,10,251,10,29,11,72,11,47,13,45,22,149,13,185,12,125,22,170,220,0,32,172,220,0,32,174,220,0,32,178,220,0,32,180,220,0,32,182,220,0,32,184,220,0,32,188,220,0,32,192,220,0,32,194,220,0,32,196,220,0,32,198,220,0,32,200,220,0,32,204,220,0,32,206,220,0,32,210,220,0,32,212,220,0,32,214,220,0,32,216,220,0,32,218,220,0,32,220,220,0,32,222,220,0,32,224,220,0,32,226,220,0,32,228,220,0,32,230,220,0,224,234,220,0,32,236,220,0,32,238,220,0,32,2,0,56,22,28,22,170,170,131,212,0,96,192,27,249,114,3,0,0,0,32,116,159,3,72,166,250,2,73,169,91,3,2,0,67,12,45,22,170,170,28,221,0,32,32,221,0,224,1,0,28,22,0,221,222,114,1,0,28,22,32,209,237,114,3,0,0,0,88,48,166,3,16,217,250,2,54,106,106,3,1,0,28,22,128,194,216,114,2,0,56,22,28,22,170,170,131,212,0,96,144,166,248,114,2,0,56,22,28,22,170,170,131,212,0,96,48,248,237,114,6,0,93,8,47,13,45,22,101,10,199,9,230,22,170,170,40,221,0,32,42,221,0,32,44,221,0,224,48,221,0,32,50,221,0,32,54,221,0,32,2,0,56,22,28,22,170,170,122,212,0,96,96,49,248,114,1,0,28,22,96,49,248,114,3,0,0,0,164,106,107,3,32,119,252,2,224,61,42,3,3,0,87,4,195,0,45,22,68,221,0,32,72,221,0,32,74,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,84,250,114,3,0,0,0,228,50,134,3,64,84,250,2,206,199,72,3,2,0,68,14,45,22,170,170,83,221,0,32,87,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,96,49,248,114,3,0,0,0,224,155,168,3,184,64,250,2,46,31,106,3,1,0,28,22,160,83,185,114,3,0,67,12,45,22,234,22,95,221,0,32,99,221,0,224,103,221,0,32,2,0,56,22,28,22,170,170,131,212,0,96,96,162,250,114,3,0,0,0,160,163,124,3,144,154,250,2,178,173,61,3,2,0,68,14,45,22,170,170,110,221,0,32,114,221,0,224,2,0,56,22,28,22,170,170,122,212,0,96,240,31,247,114,3,0,0,0,64,45,138,3,112,201,250,2,187,218,72,3,2,0,68,14,45,22,170,170,122,221,0,32,126,221,0,224,1,0,28,22,16,177,215,114,2,0,104,22,28,22,170,170,0,214,244,114,16,124,203,114,1,0,28,22,208,193,207,114,3,0,0,0,60,175,172,3,176,238,249,2,141,208,116,3,2,0,56,22,28,22,170,170,131,212,0,96,160,205,248,114,1,0,28,22,176,25,222,114,6,0,143,5,41,6,244,7,45,22,149,13,125,22,170,170,134,221,0,32,136,221,0,32,140,221,0,32,142,221,0,224,146,221,0,32,150,221,0,32,2,0,56,22,28,22,170,170,131,212,0,96,224,105,249,114,2,0,56,22,28,22,170,170,131,212,0,96,112,88,248,114,2,0,56,22,28,22,170,170,131,212,0,96,96,79,243,114,3,0,0,0,32,202,128,3,64,96,248,2,29,201,75,3,4,0,112,5,68,14,150,8,45,22,170,170,162,221,0,32,166,221,0,32,170,221,0,32,174,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,64,1,243,114,1,0,28,22,32,66,240,114,3,0,0,0,0,232,110,3,96,79,243,2,204,100,58,3,1,0,28,22,0,214,244,114,4,0,150,8,51,7,45,22,99,19,170,170,185,221,0,32,189,221,0,32,191,221,0,224,195,221,0,32,2,0,56,22,28,22,170,170,131,212,0,96,80,160,223,114,2,0,56,22,28,22,170,170,131,212,0,96,32,119,252,114,3,0,0,0,228,0,134,3,160,193,250,2,190,87,74,3,3,0,68,14,183,19,45,22,204,221,0,32,208,221,0,32,212,221,0,224,1,0,28,22,224,248,246,114,2,0,56,22,28,22,170,170,131,212,0,96,0,184,249,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,2,0,56,22,28,22,170,170,131,212,0,96,32,13,228,114,3,0,0,0,160,132,150,3,24,180,249,2,253,112,89,3,5,0,193,4,130,12,16,14,155,22,45,22,221,221,0,32,223,221,0,32,227,221,0,32,231,221,0,32,235,221,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,248,246,114,1,0,28,22,160,39,234,114,3,0,0,0,44,195,158,3,8,165,245,2,156,79,106,3,3,0,185,13,68,14,45,22,247,221,0,32,251,221,0,32,253,221,0,224,1,0,28,22,176,48,239,114,2,0,56,22,28,22,170,170,131,212,0,96,208,96,244,114,1,0,28,22,224,142,222,114,1,0,28,22,192,27,249,114,3,0,0,0,128,143,131,3,0,184,249,2,144,49,74,3,5,0,201,5,150,8,171,7,168,12,45,22,6,222,0,32,8,222,0,32,12,222,0,32,14,222,0,32,16,222,0,224,3,0,104,22,56,22,28,22,112,201,250,114,140,212,0,96,16,170,237,114,3,0,104,22,56,22,28,22,112,201,250,114,131,212,0,96,48,105,240,114,2,0,104,22,28,22,170,170,144,53,246,114,64,121,223,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,0,221,222,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,224,195,234,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,176,138,224,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,240,121,232,114,2,0,104,22,28,22,170,170,96,79,243,114,96,100,177,114,3,0,0,0,32,126,174,3,16,223,249,2,220,93,110,3,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,32,239,232,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,192,34,227,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,112,238,223,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,96,109,238,114,3,0,104,22,56,22,28,22,96,79,243,114,140,212,0,96,192,87,239,114,14,0,251,11,68,14,75,12,0,14,243,10,186,5,198,15,171,7,45,22,207,23,79,13,138,13,228,13,79,14,170,170,28,222,0,32,33,222,0,32,38,222,0,32,42,222,0,32,47,222,0,32,52,222,0,32,57,222,0,32,62,222,0,32,66,222,0,224,70,222,0,32,75,222,0,32,80,222,0,32,85,222,0,32,90,222,0,32,1,0,28,22,48,105,240,114,2,0,56,22,28,22,170,170,131,212,0,96,64,31,238,114,1,0,28,22,192,147,229,114,1,0,28,22,48,248,237,114,3,0,0,0,148,11,158,3,176,12,245,2,250,104,104,3,5,0,57,5,68,14,155,9,2,11,45,22,117,222,0,32,119,222,0,32,123,222,0,32,125,222,0,32,127,222,0,224,2,0,56,22,28,22,170,170,131,212,0,96,224,22,242,114,1,0,28,22,80,130,228,114,1,0,28,22,16,87,230,114,2,0,56,22,28,22,170,170,131,212,0,96,0,131,237,114,1,0,28,22,208,186,229,114,1,0,28,22,48,82,223,114,2,0,56,22,28,22,170,170,131,212,0,96,80,10,248,114,3,0,0,0,172,193,152,3,224,111,248,2,119,248,103,3,1,0,28,22,32,133,208,114,1,0,28,22,192,237,214,114,10,0,68,14,129,8,132,10,123,13,167,10,2,11,17,8,45,22,207,23,138,13,170,170,139,222,0,32,143,222,0,32,145,222,0,32,147,222,0,32,151,222,0,32,153,222,0,32,155,222,0,32,159,222,0,224,163,222,0,32,165,222,0,32,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,45,22,183,222,0,224,1,1,25,22,237,15,35,3,38,3,240,15,101,22,41,3,243,15,246,15,119,22,249,15,122,22,252,15,255,15,133,22,136,22,44,3,2,16,5,16,47,3,8,16,11,16,14,16,50,3,17,16,20,16,171,22,174,22,23,16,25,24,26,16,31,24,241,14,29,16,185,22,32,16,35,16,26,15,61,24,196,22,38,16,41,16,44,16,85,24,47,16,199,22,29,15,50,16,53,3,32,15,247,22,35,15,53,16,56,16,250,22,56,3,59,16,62,16,65,16,253,22,59,3,68,16,71,16,74,16,62,3,0,23,37,24,77,16,65,3,68,3,71,3,43,24,74,3,80,16,83,16,3,23,86,16,6,23,89,16,92,16,38,15,95,16,98,16,17,23,20,23,101,16,23,23,104,16,107,16,110,16,35,23,49,24,113,16,38,23,41,15,41,23,116,16,119,16,143,15,44,23,122,16,125,16,121,15,128,16,47,23,77,3,131,16,80,3,50,23,73,24,61,23,83,3,86,3,134,16,91,24,72,23,137,16,89,3,92,3,140,16,143,16,146,16,149,16,95,3,152,16,155,16,98,3,101,3,44,15,158,16,161,16,104,3,164,16,167,16,170,16,47,15,173,16,176,16,179,16,182,16,107,3,110,3,185,16,188,16,191,16,118,23,194,16,197,16,200,16,203,16,50,15,206,16,113,3,129,23,132,23,116,3,135,23,209,16,212,16,119,3,215,16,53,15,122,3,218,16,221,16,138,23,125,3,141,23,224,16,56,15,227,16,230,16,233,16,236,16,153,23,239,16,128,3,59,15,55,24,156,23,242,16,62,15,131,3,245,16,175,23,178,23,65,15,134,3,127,15,68,15,248,16,137,3,181,23,251,16,254,16,1,17,4,17,140,3,7,17,10,17,143,3,13,17,146,3,16,17,19,17,184,23,22,17,25,17,28,17,31,17,34,17,37,17,40,17,43,17,71,15,187,23,149,3,46,17,190,23,193,23,152,3,196,23,49,17,155,3,158,3,199,23,52,17,161,3,164,3,55,17,167,3,58,17,61,17,188,24,64,17,67,17,70,17,73,17,150,14,76,17,170,3,217,23,79,17,74,15,220,23,223,23,82,17,85,17,88,17,91,17,173,3,176,3,226,23,133,24,94,17,97,17,229,23,160,191,0,32,176,191,0,32,201,191,0,32,244,191,0,32,14,192,0,32,27,192,0,32,43,192,0,32,62,192,0,32,85,192,0,32,99,192,0,32,117,192,0,32,137,192,0,32,170,192,0,32,200,192,0,32,224,192,0,32,239,192,0,32,7,193,0,32,46,193,0,32,65,193,0,32,99,193,0,32,140,193,0,32,167,193,0,32,193,193,0,32,213,193,0,32,236,193,0,32,0,194,0,32,15,194,0,32,27,194,0,32,47,194,0,32,75,194,0,32,95,194,0,32,132,194,0,32,160,194,0,32,180,194,0,32,196,194,0,32,214,194,0,32,233,194,0,32,248,194,0,32,139,195,0,32,240,195,0,32,19,196,0,32,47,196,0,32,64,196,0,32,106,196,0,32,149,196,0,32,168,196,0,32,184,196,0,32,27,197,0,32,141,197,0,32,194,197,0,32,207,197,0,32,219,197,0,32,231,197,0,32,245,197,0,32,8,198,0,32,23,198,0,32,47,198,0,32,74,198,0,32,154,198,0,32,202,198,0,32,222,198,0,32,254,198,0,32,19,199,0,32,33,199,0,32,58,199,0,32,76,199,0,32,94,199,0,32,117,199,0,32,141,199,0,32,157,199,0,32,186,199,0,32,233,199,0,32,17,200,0,32,63,200,0,32,100,200,0,32,118,200,0,32,140,200,0,32,159,200,0,32,211,200,0,32,249,200,0,32,59,201,0,32,104,201,0,32,132,201,0,32,159,201,0,32,175,201,0,32,215,201,0,32,245,201,0,32,4,202,0,32,23,202,0,32,51,202,0,32,72,202,0,32,96,202,0,32,132,202,0,32,157,202,0,32,173,202,0,32,190,202,0,32,209,202,0,32,225,202,0,32,245,202,0,32,5,203,0,32,19,203,0,32,42,203,0,32,63,203,0,32,90,203,0,32,112,203,0,32,194,203,0,32,255,203,0,32,38,204,0,32,70,204,0,32,38,205,0,32,166,205,0,32,194,205,0,32,5,206,0,32,49,206,0,32,108,206,0,32,147,206,0,32,161,206,0,32,176,206,0,32,195,206,0,32,4,207,0,32,48,207,0,32,65,207,0,32,84,207,0,32,109,207,0,32,125,207,0,32,137,207,0,32,149,207,0,32,161,207,0,32,173,207,0,32,195,207,0,32,219,207,0,32,243,207,0,32,5,208,0,32,24,208,0,32,45,208,0,32,72,208,0,32,103,208,0,32,129,208,0,32,160,208,0,32,184,208,0,32,200,208,0,32,241,208,0,32,12,209,0,32,32,209,0,32,54,209,0,32,69,209,0,32,89,209,0,32,108,209,0,32,127,209,0,32,168,209,0,32,211,209,0,32,240,209,0,32,10,210,0,32,28,210,0,32,41,210,0,32,61,210,0,32,79,210,0,32,99,210,0,32,127,210,0,32,148,210,0,32,171,210,0,32,207,210,0,32,251,210,0,32,44,211,0,32,86,211,0,32,108,211,0,32,136,211,0,32,160,211,0,32,214,211,0,32,253,211,0,32,41,212,0,32,81,212,0,32,153,212,0,32,209,212,0,32,226,212,0,32,243,212,0,32,4,213,0,32,23,213,0,32,44,213,0,32,65,213,0,32,90,213,0,32,164,213,0,32,0,214,0,32,72,214,0,32,101,214,0,32,114,214,0,32,130,214,0,32,143,214,0,32,163,214,0,32,185,214,0,32,204,214,0,32,223,214,0,32,242,214,0,32,21,215,0,32,75,215,0,32,207,215,0,32,23,216,0,32,42,216,0,32,59,216,0,32,80,216,0,32,111,216,0,32,155,216,0,32,196,216,0,32,215,216,0,32,241,216,0,32,8,217,0,32,33,217,0,32,66,217,0,32,87,217,0,32,159,217,0,32,199,217,0,32,223,217,0,32,243,217,0,32,2,218,0,32,14,218,0,32,34,218,0,32,62,218,0,32,88,218,0,32,102,218,0,32,114,218,0,32,130,218,0,32,143,218,0,32,161,218,0,32,213,218,0,32,250,218,0,32,15,219,0,32,33,219,0,32,52,219,0,32,74,219,0,32,93,219,0,32,152,219,0,32,199,219,0,32,216,219,0,32,231,219,0,32,24,220,0,32,82,220,0,32,136,220,0,32,166,220,0,32,240,220,0,32,36,221,0,32,58,221,0,32,78,221,0,32,91,221,0,32,105,221,0,32,118,221,0,32,130,221,0,32,152,221,0,32,178,221,0,32,197,221,0,32,216,221,0,32,239,221,0,32,1,222,0,32,20,222,0,32,95,222,0,32,131,222,0,32,167,222,0,32,187,222,0,32,2,0,241,23,249,23,170,170,60,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,63,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,68,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,71,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,76,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,81,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,86,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,91,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,95,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,98,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,101,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,106,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,109,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,112,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,117,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,125,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,129,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,133,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,138,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,142,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,145,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,148,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,152,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,157,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,160,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,163,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,166,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,171,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,176,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,186,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,189,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,194,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,197,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,202,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,205,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,210,49,1,144,138,178,0,96,2,0,241,23,249,23,170,170,215,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,220,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,223,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,227,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,230,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,234,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,237,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,242,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,247,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,251,49,1,144,2,39,0,96,2,0,241,23,249,23,170,170,0,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,10,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,15,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,20,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,23,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,28,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,38,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,41,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,46,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,54,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,59,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,64,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,69,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,74,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,79,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,82,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,87,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,92,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,95,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,100,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,110,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,115,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,120,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,125,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,128,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,131,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,134,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,139,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,144,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,148,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,151,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,156,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,159,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,164,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,167,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,172,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,175,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,178,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,183,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,188,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,193,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,198,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,201,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,206,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,211,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,216,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,219,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,222,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,232,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,237,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,240,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,245,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,248,50,1,144,2,39,0,96,2,0,241,23,249,23,170,170,253,50,1,144,138,178,0,96,2,0,241,23,249,23,170,170,2,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,10,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,13,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,18,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,23,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,28,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,32,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,37,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,42,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,47,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,52,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,57,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,62,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,67,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,72,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,77,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,82,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,85,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,90,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,95,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,100,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,104,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,109,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,114,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,117,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,122,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,126,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,131,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,136,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,141,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,144,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,147,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,151,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,154,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,157,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,162,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,172,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,177,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,182,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,187,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,192,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,195,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,200,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,205,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,208,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,211,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,214,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,219,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,224,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,229,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,232,51,1,144,138,178,0,96,2,0,241,23,249,23,170,170,237,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,245,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,250,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,255,51,1,144,2,39,0,96,2,0,241,23,249,23,170,170,4,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,7,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,10,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,14,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,19,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,24,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,29,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,34,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,39,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,44,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,48,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,51,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,56,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,60,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,63,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,66,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,71,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,76,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,81,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,84,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,87,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,92,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,97,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,100,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,103,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,112,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,115,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,120,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,125,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,129,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,139,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,144,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,149,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,162,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,167,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,171,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,175,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,178,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,181,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,186,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,189,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,194,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,199,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,204,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,209,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,214,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,219,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,223,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,227,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,230,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,233,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,236,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,241,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,244,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,249,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,252,52,1,144,2,39,0,96,2,0,241,23,249,23,170,170,255,52,1,144,138,178,0,96,2,0,241,23,249,23,170,170,4,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,9,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,14,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,18,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,23,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,28,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,33,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,38,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,42,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,46,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,51,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,56,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,61,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,66,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,69,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,72,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,75,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,78,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,82,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,87,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,90,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,95,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,100,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,103,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,108,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,113,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,117,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,122,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,127,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,132,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,137,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,142,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,147,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,152,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,156,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,160,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,165,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,169,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,173,53,1,144,2,39,0,96,2,0,241,23,249,23,170,170,177,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,181,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,185,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,190,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,195,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,200,53,1,144,138,178,0,96,2,0,241,23,249,23,170,170,204,53,1,144,2,39,0,96,16,1,12,24,25,22,237,15,35,3,38,3,240,15,101,22,41,3,243,15,246,15,249,15,122,22,252,15,255,15,133,22,136,22,44,3,2,16,5,16,47,3,8,16,11,16,14,16,50,3,17,16,20,16,171,22,174,22,23,16,25,24,26,16,31,24,241,14,29,16,32,16,35,16,26,15,61,24,196,22,38,16,41,16,44,16,85,24,47,16,199,22,29,15,50,16,53,3,32,15,247,22,35,15,53,16,56,16,56,3,59,16,62,16,65,16,253,22,59,3,68,16,71,16,74,16,62,3,0,23,37,24,77,16,65,3,68,3,71,3,43,24,74,3,80,16,83,16,3,23,86,16,6,23,89,16,92,16,38,15,95,16,98,16,17,23,20,23,101,16,23,23,104,16,107,16,110,16,35,23,49,24,113,16,41,15,41,23,116,16,119,16,143,15,122,16,125,16,128,16,47,23,77,3,131,16,80,3,50,23,73,24,61,23,83,3,86,3,134,16,91,24,72,23,137,16,89,3,92,3,140,16,143,16,146,16,149,16,95,3,152,16,155,16,98,3,101,3,44,15,158,16,161,16,104,3,164,16,167,16,170,16,47,15,173,16,176,16,179,16,182,16,107,3,110,3,185,16,188,16,191,16,118,23,194,16,197,16,200,16,203,16,50,15,206,16,113,3,129,23,132,23,116,3,135,23,209,16,212,16,119,3,215,16,53,15,122,3,218,16,221,16,138,23,125,3,141,23,224,16,56,15,227,16,230,16,233,16,236,16,153,23,239,16,128,3,59,15,55,24,156,23,242,16,62,15,131,3,245,16,175,23,178,23,65,15,134,3,127,15,68,15,248,16,137,3,181,23,251,16,254,16,1,17,4,17,140,3,7,17,10,17,143,3,13,17,146,3,16,17,19,17,184,23,22,17,25,17,28,17,31,17,34,17,37,17,40,17,43,17,71,15,187,23,149,3,46,17,190,23,193,23,152,3,196,23,49,17,155,3,158,3,52,17,161,3,164,3,55,17,167,3,58,17,188,24,64,17,67,17,70,17,73,17,150,14,76,17,170,3,217,23,79,17,74,15,220,23,223,23,82,17,85,17,88,17,91,17,173,3,176,3,226,23,133,24,94,17,97,17,3,24,9,24,16,24,91,15,22,24,28,24,34,24,40,24,46,24,52,24,58,24,64,24,70,24,76,24,82,24,88,24,94,24,100,24,106,24,112,24,118,24,124,24,130,24,170,170,63,224,0,32,67,224,0,32,71,224,0,32,75,224,0,32,79,224,0,32,83,224,0,32,87,224,0,32,91,224,0,32,95,224,0,32,99,224,0,32,103,224,0,32,107,224,0,32,111,224,0,32,115,224,0,32,119,224,0,32,120,49,1,80,123,224,0,32,127,224,0,32,131,224,0,32,135,224,0,32,139,224,0,32,143,224,0,32,147,224,0,32,151,224,0,32,155,224,0,32,159,224,0,32,163,224,0,32,167,224,0,32,171,224,0,32,175,224,0,32,181,49,1,80,179,224,0,32,183,224,0,32,187,224,0,32,191,224,0,32,195,224,0,32,199,224,0,32,203,224,0,32,207,224,0,32,211,224,0,32,215,224,0,32,219,224,0,32,223,224,0,32,227,224,0,32,231,224,0,32,235,224,0,32,239,224,0,32,243,224,0,32,247,224,0,32,5,50,1,80,251,224,0,32,255,224,0,32,3,225,0,32,7,225,0,32,11,225,0,32,33,50,1,80,15,225,0,32,19,225,0,32,23,225,0,32,49,50,1,80,27,225,0,32,31,225,0,32,35,225,0,32,39,225,0,32,43,225,0,32,47,225,0,32,51,225,0,32,55,225,0,32,59,225,0,32,63,225,0,32,67,225,0,32,105,50,1,80,71,225,0,32,75,225,0,32,79,225,0,32,83,225,0,32,87,225,0,32,91,225,0,32,95,225,0,32,99,225,0,32,103,225,0,32,107,225,0,32,111,225,0,32,115,225,0,32,119,225,0,32,123,225,0,32,127,225,0,32,131,225,0,32,135,225,0,32,139,225,0,32,143,225,0,32,147,225,0,32,151,225,0,32,155,225,0,32,159,225,0,32,163,225,0,32,167,225,0,32,171,225,0,32,175,225,0,32,179,225,0,32,227,50,1,80,183,225,0,32,187,225,0,32,191,225,0,32,195,225,0,32,199,225,0,32,203,225,0,32,207,225,0,32,5,51,1,80,211,225,0,32,215,225,0,32,219,225,0,32,223,225,0,32,227,225,0,32,231,225,0,32,235,225,0,32,239,225,0,32,243,225,0,32,247,225,0,32,251,225,0,32,255,225,0,32,3,226,0,32,7,226,0,32,11,226,0,32,15,226,0,32,19,226,0,32,23,226,0,32,27,226,0,32,31,226,0,32,35,226,0,32,39,226,0,32,43,226,0,32,47,226,0,32,51,226,0,32,55,226,0,32,59,226,0,32,63,226,0,32,67,226,0,32,71,226,0,32,75,226,0,32,79,226,0,32,83,226,0,32,87,226,0,32,91,226,0,32,167,51,1,80,95,226,0,32,99,226,0,32,103,226,0,32,107,226,0,32,111,226,0,32,115,226,0,32,119,226,0,32,123,226,0,32,127,226,0,32,131,226,0,32,135,226,0,32,139,226,0,32,143,226,0,32,147,226,0,32,151,226,0,32,155,226,0,32,240,51,1,80,159,226,0,32,163,226,0,32,167,226,0,32,171,226,0,32,175,226,0,32,179,226,0,32,183,226,0,32,187,226,0,32,191,226,0,32,195,226,0,32,199,226,0,32,203,226,0,32,207,226,0,32,211,226,0,32,215,226,0,32,219,226,0,32,223,226,0,32,227,226,0,32,231,226,0,32,235,226,0,32,239,226,0,32,243,226,0,32,247,226,0,32,251,226,0,32,255,226,0,32,3,227,0,32,7,227,0,32,11,227,0,32,107,52,1,80,15,227,0,32,19,227,0,32,23,227,0,32,27,227,0,32,31,227,0,32,134,52,1,80,35,227,0,32,39,227,0,32,43,227,0,32,152,52,1,80,157,52,1,80,47,227,0,32,51,227,0,32,55,227,0,32,59,227,0,32,63,227,0,32,67,227,0,32,71,227,0,32,75,227,0,32,79,227,0,32,83,227,0,32,87,227,0,32,91,227,0,32,95,227,0,32,99,227,0,32,103,227,0,32,107,227,0,32,111,227,0,32,115,227,0,32,119,227,0,32,123,227,0,32,127,227,0,32,131,227,0,32,135,227,0,32,139,227,0,32,143,227,0,32,147,227,0,32,151,227,0,32,155,227,0,32,159,227,0,32,163,227,0,32,167,227,0,32,171,227,0,32,175,227,0,32,179,227,0,32,183,227,0,32,187,227,0,32,191,227,0,32,195,227,0,32,199,227,0,32,203,227,0,32,207,227,0,32,211,227,0,32,215,227,0,32,219,227,0,32,223,227,0,32,227,227,0,32,231,227,0,32,235,227,0,32,239,227,0,32,243,227,0,32,247,227,0,32,251,227,0,32,255,227,0,32,3,228,0,32,7,228,0,32,11,228,0,32,15,228,0,32,19,228,0,32,23,228,0,32,27,228,0,32,31,228,0,32,35,228,0,32,39,228,0,32,43,228,0,32,47,228,0,32,51,228,0,32,55,228,0,32,59,228,0,32,63,228,0,32,67,228,0,32,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,5,0,0,0,0,0,0,0,6,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,6,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,7,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,4,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,7,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,6,0,0,0,1,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,1,0,0,0,0,92,38,5,156,0,12,24,237,15,35,3,38,3,240,15,101,22,41,3,243,15,145,24,249,15,122,22,252,15,255,15,136,22,44,3,2,16,47,3,8,16,14,16,50,3,174,22,23,16,31,24,241,14,29,16,32,16,35,16,26,15,61,24,85,24,29,15,50,16,53,3,32,15,35,15,59,16,62,16,65,16,59,3,68,16,71,16,74,16,62,3,37,24,77,16,65,3,43,24,74,3,80,16,83,16,6,23,89,16,38,15,98,16,17,23,20,23,23,23,35,23,113,16,41,15,41,23,143,15,122,16,125,16,128,16,77,3,131,16,80,3,50,23,73,24,83,3,86,3,134,16,91,24,72,23,137,16,89,3,92,3,140,16,143,16,146,16,98,3,101,3,158,16,161,16,104,3,167,16,170,16,176,16,179,16,182,16,107,3,185,16,188,16,191,16,197,16,200,16,50,15,206,16,113,3,132,23,209,16,119,3,53,15,122,3,218,16,56,15,227,16,230,16,233,16,239,16,128,3,59,15,55,24,62,15,131,3,245,16,65,15,127,15,248,16,137,3,181,23,251,16,254,16,1,17,140,3,143,3,13,17,146,3,19,17,184,23,22,17,28,17,71,15,149,3,155,3,158,3,161,3,167,3,58,17,188,24,67,17,70,17,73,17,150,14,76,17,170,3,217,23,74,15,223,23,82,17,91,17,173,3,176,3,133,24,97,17,170,170,224,229,0,224,231,229,0,224,238,229,0,224,245,229,0,224,252,229,0,224,3,230,0,224,10,230,0,224,17,230,0,224,24,230,0,224,31,230,0,224,38,230,0,224,45,230,0,224,52,230,0,224,59,230,0,224,66,230,0,224,73,230,0,224,80,230,0,224,87,230,0,224,94,230,0,224,101,230,0,224,108,230,0,224,115,230,0,224,122,230,0,224,129,230,0,224,136,230,0,224,143,230,0,224,150,230,0,224,157,230,0,224,164,230,0,224,171,230,0,224,178,230,0,224,185,230,0,224,192,230,0,224,199,230,0,224,206,230,0,224,213,230,0,224,220,230,0,224,227,230,0,224,234,230,0,224,241,230,0,224,248,230,0,224,255,230,0,224,6,231,0,224,13,231,0,224,20,231,0,224,27,231,0,224,34,231,0,224,41,231,0,224,48,231,0,224,55,231,0,224,62,231,0,224,69,231,0,224,76,231,0,224,83,231,0,224,90,231,0,224,97,231,0,224,104,231,0,224,111,231,0,224,118,231,0,224,125,231,0,224,132,231,0,224,139,231,0,224,146,231,0,224,153,231,0,224,160,231,0,224,167,231,0,224,174,231,0,224,181,231,0,224,188,231,0,224,195,231,0,224,202,231,0,224,209,231,0,224,216,231,0,224,223,231,0,224,230,231,0,224,237,231,0,224,244,231,0,224,251,231,0,224,2,232,0,224,9,232,0,224,16,232,0,224,23,232,0,224,30,232,0,224,37,232,0,224,44,232,0,224,51,232,0,224,58,232,0,224,65,232,0,224,72,232,0,224,79,232,0,224,86,232,0,224,93,232,0,224,100,232,0,224,107,232,0,224,114,232,0,224,121,232,0,224,128,232,0,224,135,232,0,224,142,232,0,224,149,232,0,224,156,232,0,224,163,232,0,224,170,232,0,224,177,232,0,224,184,232,0,224,191,232,0,224,198,232,0,224,205,232,0,224,212,232,0,224,219,232,0,224,226,232,0,224,233,232,0,224,240,232,0,224,247,232,0,224,254,232,0,224,5,233,0,224,12,233,0,224,19,233,0,224,26,233,0,224,33,233,0,224,40,233,0,224,47,233,0,224,54,233,0,224,61,233,0,224,68,233,0,224,75,233,0,224,82,233,0,224,89,233,0,224,96,233,0,224,103,233,0,224,110,233,0,224,117,233,0,224,124,233,0,224,131,233,0,224,138,233,0,224,145,233,0,224,152,233,0,224,159,233,0,224,166,233,0,224,173,233,0,224,180,233,0,224,187,233,0,224,194,233,0,224,201,233,0,224,208,233,0,224,215,233,0,224,222,233,0,224,229,233,0,224,236,233,0,224,243,233,0,224,250,233,0,224,1,234,0,224,8,234,0,224,15,234,0,224,22,234,0,224,29,234,0,224,1,0,0,0,1,0,0,0,1,0,38,15,15,235,0,224,74,0,251,11,3,12,185,13,19,12,88,9,85,5,151,5,178,5,122,8,35,12,213,12,106,17,103,13,63,12,68,14,67,12,237,12,199,19,22,10,206,6,12,7,150,8,180,10,174,7,75,12,252,12,20,8,30,6,83,12,93,11,87,4,182,24,38,6,26,11,182,4,98,21,216,8,97,11,222,6,51,8,187,15,202,9,53,10,75,8,244,13,248,13,115,12,104,19,120,19,253,7,41,11,100,11,70,4,173,13,47,13,67,13,240,10,178,19,130,12,16,14,165,12,171,7,154,20,159,20,240,12,101,10,158,12,122,13,28,8,199,9,149,13,210,9,185,24,79,14,170,170,209,53,1,144,213,53,1,144,22,206,0,96,216,53,1,144,219,53,1,144,222,53,1,144,226,53,1,144,229,53,1,144,135,205,0,96,232,53,1,144,235,53,1,144,238,53,1,144,241,53,1,144,245,53,1,144,248,53,1,144,135,205,0,96,251,53,1,144,254,53,1,144,1,54,1,144,4,54,1,144,22,206,0,96,135,205,0,96,135,205,0,96,22,206,0,96,8,54,1,144,11,54,1,144,22,206,0,96,22,206,0,96,22,206,0,96,14,54,1,144,18,54,1,144,21,54,1,144,25,54,1,144,28,54,1,144,22,206,0,96,31,54,1,144,34,54,1,144,22,206,0,96,38,54,1,144,41,54,1,144,46,54,1,144,49,54,1,144,52,54,1,144,55,54,1,144,59,54,1,144,63,54,1,144,66,54,1,144,71,54,1,144,75,54,1,144,79,54,1,144,83,54,1,144,87,54,1,144,90,54,1,144,94,54,1,144,97,54,1,144,100,54,1,144,103,54,1,144,125,208,0,96,106,54,1,144,111,54,1,144,114,54,1,144,118,54,1,144,122,54,1,144,125,54,1,144,129,54,1,144,132,54,1,144,137,54,1,144,124,205,0,96,140,54,1,144,144,54,1,144,147,54,1,144,151,54,1,144,155,54,1,144,159,54,1,144,19,0,32,0,12,3,179,3,191,3,204,3,225,3,90,4,90,14,177,14,197,14,77,15,146,15,214,15,122,21,11,22,232,23,136,24,148,24,165,24,81,169,0,32,107,169,0,32,90,70,0,96,186,169,0,128,234,170,0,128,211,171,0,32,18,182,0,32,185,186,0,32,50,188,0,32,165,188,0,32,197,188,0,32,215,188,0,32,217,188,0,32,105,191,0,32,189,222,0,32,71,228,0,32,36,234,0,32,17,235,0,32,19,235,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,157,20,0,32,7,0,0,0,15,9,0,0,164,20,0,0,164,20,0,0,190,1,0,0,1,0,0,0,149,20,0,0,98,99,112,84,121,112,101,65,108,105,97,115,0,116,122,0,97,113,97,109,115,0,97,117,107,110,115,0,99,97,102,102,115,0,99,97,109,116,114,0,99,97,110,112,103,0,99,97,112,110,116,0,99,97,116,104,117,0,99,97,121,122,102,0,99,110,99,107,103,0,99,110,104,114,98,0,99,110,107,104,103,0,99,115,116,54,99,100,116,0,101,115,116,53,101,100,116,0,103,97,122,97,0,109,110,99,111,113,0,109,115,116,55,109,100,116,0,109,120,115,116,105,115,0,112,115,116,56,112,100,116,0,117,97,111,122,104,0,117,97,117,122,104,0,117,109,106,111,110,0,117,115,110,97,118,97,106,111,0,105,97,110,97,77,97,112,0,116,105,109,101,122,111,110,101,0,65,102,114,105,99,97,58,65,115,109,101,114,97,0,65,109,101,114,105,99,97,58,66,117,101,110,111,115,95,65,105,114,101,115,0,65,109,101,114,105,99,97,58,67,97,116,97,109,97,114,99,97,0,65,109,101,114,105,99,97,58,67,111,114,97,108,95,72,97,114,98,111,117,114,0,65,109,101,114,105,99,97,58,67,111,114,100,111,98,97,0,65,109,101,114,105,99,97,58,71,111,100,116,104,97,98,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,112,111,108,105,115,0,65,109,101,114,105,99,97,58,74,117,106,117,121,0,65,109,101,114,105,99,97,58,76,111,117,105,115,118,105,108,108,101,0,65,109,101,114,105,99,97,58,77,101,110,100,111,122,97,0,65,115,105,97,58,67,97,108,99,117,116,116,97,0,65,115,105,97,58,75,97,116,109,97,110,100,117,0,65,115,105,97,58,82,97,110,103,111,111,110,0,65,115,105,97,58,83,97,105,103,111,110,0,65,116,108,97,110,116,105,99,58,70,97,101,114,111,101,0,69,117,114,111,112,101,58,75,105,101,118,0,80,97,99,105,102,105,99,58,69,110,100,101,114,98,117,114,121,0,80,97,99,105,102,105,99,58,80,111,110,97,112,101,0,80,97,99,105,102,105,99,58,84,114,117,107,0,116,121,112,101,65,108,105,97,115,0,65,102,114,105,99,97,58,65,115,109,97,114,97,0,65,102,114,105,99,97,58,84,105,109,98,117,107,116,117,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,66,117,101,110,111,115,95,65,105,114,101,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,67,97,116,97,109,97,114,99,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,67,111,109,111,100,82,105,118,97,100,97,118,105,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,67,111,114,100,111,98,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,74,117,106,117,121,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,77,101,110,100,111,122,97,0,65,109,101,114,105,99,97,58,65,116,105,107,111,107,97,110,0,65,109,101,114,105,99,97,58,65,116,107,97,0,65,109,101,114,105,99,97,58,69,110,115,101,110,97,100,97,0,65,109,101,114,105,99,97,58,70,111,114,116,95,87,97,121,110,101,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,73,110,100,105,97,110,97,112,111,108,105,115,0,65,109,101,114,105,99,97,58,75,101,110,116,117,99,107,121,58,76,111,117,105,115,118,105,108,108,101,0,65,109,101,114,105,99,97,58,75,110,111,120,95,73,78,0,65,109,101,114,105,99,97,58,77,111,110,116,114,101,97,108,0,65,109,101,114,105,99,97,58,78,105,112,105,103,111,110,0,65,109,101,114,105,99,97,58,78,117,117,107,0,65,109,101,114,105,99,97,58,80,97,110,103,110,105,114,116,117,110,103,0,65,109,101,114,105,99,97,58,80,111,114,116,111,95,65,99,114,101,0,65,109,101,114,105,99,97,58,82,97,105,110,121,95,82,105,118,101,114,0,65,109,101,114,105,99,97,58,82,111,115,97,114,105,111,0,65,109,101,114,105,99,97,58,83,97,110,116,97,95,73,115,97,98,101,108,0,65,109,101,114,105,99,97,58,83,104,105,112,114,111,99,107,0,65,109,101,114,105,99,97,58,84,104,117,110,100,101,114,95,66,97,121,0,65,109,101,114,105,99,97,58,86,105,114,103,105,110,0,65,109,101,114,105,99,97,58,89,101,108,108,111,119,107,110,105,102,101,0,65,110,116,97,114,99,116,105,99,97,58,83,111,117,116,104,95,80,111,108,101,0,65,115,105,97,58,65,115,104,107,104,97,98,97,100,0,65,115,105,97,58,67,104,111,105,98,97,108,115,97,110,0,65,115,105,97,58,67,104,111,110,103,113,105,110,103,0,65,115,105,97,58,67,104,117,110,103,107,105,110,103,0,65,115,105,97,58,68,97,99,99,97,0,65,115,105,97,58,72,97,114,98,105,110,0,65,115,105,97,58,72,111,95,67,104,105,95,77,105,110,104,0,65,115,105,97,58,73,115,116,97,110,98,117,108,0,65,115,105,97,58,75,97,115,104,103,97,114,0,65,115,105,97,58,75,97,116,104,109,97,110,100,117,0,65,115,105,97,58,75,111,108,107,97,116,97,0,65,115,105,97,58,77,97,99,97,111,0,65,115,105,97,58,84,101,108,95,65,118,105,118,0,65,115,105,97,58,84,104,105,109,98,117,0,65,115,105,97,58,85,106,117,110,103,95,80,97,110,100,97,110,103,0,65,115,105,97,58,85,108,97,110,95,66,97,116,111,114,0,65,115,105,97,58,89,97,110,103,111,110,0,65,116,108,97,110,116,105,99,58,70,97,114,111,101,0,65,116,108,97,110,116,105,99,58,74,97,110,95,77,97,121,101,110,0,65,117,115,116,114,97,108,105,97,58,65,67,84,0,65,117,115,116,114,97,108,105,97,58,67,97,110,98,101,114,114,97,0,65,117,115,116,114,97,108,105,97,58,67,117,114,114,105,101,0,65,117,115,116,114,97,108,105,97,58,76,72,73,0,65,117,115,116,114,97,108,105,97,58,78,83,87,0,65,117,115,116,114,97,108,105,97,58,78,111,114,116,104,0,65,117,115,116,114,97,108,105,97,58,81,117,101,101,110,115,108,97,110,100,0,65,117,115,116,114,97,108,105,97,58,83,111,117,116,104,0,65,117,115,116,114,97,108,105,97,58,84,97,115,109,97,110,105,97,0,65,117,115,116,114,97,108,105,97,58,86,105,99,116,111,114,105,97,0,65,117,115,116,114,97,108,105,97,58,87,101,115,116,0,65,117,115,116,114,97,108,105,97,58,89,97,110,99,111,119,105,110,110,97,0,66,114,97,122,105,108,58,65,99,114,101,0,66,114,97,122,105,108,58,68,101,78,111,114,111,110,104,97,0,66,114,97,122,105,108,58,69,97,115,116,0,66,114,97,122,105,108,58,87,101,115,116,0,67,97,110,97,100,97,58,65,116,108,97,110,116,105,99,0,67,97,110,97,100,97,58,67,101,110,116,114,97,108,0,67,97,110,97,100,97,58,69,97,115,116,45,83,97,115,107,97,116,99,104,101,119,97,110,0,67,97,110,97,100,97,58,69,97,115,116,101,114,110,0,67,97,110,97,100,97,58,77,111,117,110,116,97,105,110,0,67,97,110,97,100,97,58,78,101,119,102,111,117,110,100,108,97,110,100,0,67,97,110,97,100,97,58,80,97,99,105,102,105,99,0,67,97,110,97,100,97,58,83,97,115,107,97,116,99,104,101,119,97,110,0,67,97,110,97,100,97,58,89,117,107,111,110,0,67,104,105,108,101,58,67,111,110,116,105,110,101,110,116,97,108,0,67,104,105,108,101,58,69,97,115,116,101,114,73,115,108,97,110,100,0,69,116,99,58,71,77,84,43,48,0,69,116,99,58,71,77,84,45,48,0,69,116,99,58,71,77,84,48,0,69,116,99,58,71,114,101,101,110,119,105,99,104,0,69,116,99,58,85,67,84,0,69,116,99,58,85,110,105,118,101,114,115,97,108,0,69,116,99,58,90,117,108,117,0,69,117,114,111,112,101,58,66,101,108,102,97,115,116,0,69,117,114,111,112,101,58,75,121,105,118,0,69,117,114,111,112,101,58,78,105,99,111,115,105,97,0,69,117,114,111,112,101,58,84,105,114,97,115,112,111,108,0,69,117,114,111,112,101,58,85,122,104,103,111,114,111,100,0,69,117,114,111,112,101,58,90,97,112,111,114,111,122,104,121,101,0,77,101,120,105,99,111,58,66,97,106,97,78,111,114,116,101,0,77,101,120,105,99,111,58,66,97,106,97,83,117,114,0,77,101,120,105,99,111,58,71,101,110,101,114,97,108,0,80,97,99,105,102,105,99,58,67,104,117,117,107,0,80,97,99,105,102,105,99,58,74,111,104,110,115,116,111,110,0,80,97,99,105,102,105,99,58,75,97,110,116,111,110,0,80,97,99,105,102,105,99,58,80,111,104,110,112,101,105,0,80,97,99,105,102,105,99,58,83,97,109,111,97,0,80,97,99,105,102,105,99,58,89,97,112,0,85,83,58,65,108,97,115,107,97,0,85,83,58,65,108,101,117,116,105,97,110,0,85,83,58,65,114,105,122,111,110,97,0,85,83,58,67,101,110,116,114,97,108,0,85,83,58,69,97,115,116,45,73,110,100,105,97,110,97,0,85,83,58,69,97,115,116,101,114,110,0,85,83,58,72,97,119,97,105,105,0,85,83,58,73,110,100,105,97,110,97,45,83,116,97,114,107,101,0,85,83,58,77,105,99,104,105,103,97,110,0,85,83,58,77,111,117,110,116,97,105,110,0,85,83,58,80,97,99,105,102,105,99,0,85,83,58,80,97,99,105,102,105,99,45,78,101,119,0,85,83,58,83,97,109,111,97,0,67,69,84,0,67,83,84,54,67,68,84,0,67,117,98,97,0,69,69,84,0,69,83,84,0,69,83,84,53,69,68,84,0,69,103,121,112,116,0,70,97,99,116,111,114,121,0,71,66,0,71,66,45,69,105,114,101,0,72,83,84,0,72,111,110,103,107,111,110,103,0,73,99,101,108,97,110,100,0,73,114,97,110,0,73,115,114,97,101,108,0,74,97,112,97,110,0,76,105,98,121,97,0,77,69,84,0,77,83,84,0,77,83,84,55,77,68,84,0,78,90,0,78,90,45,67,72,65,84,0,78,97,118,97,106,111,0,80,82,67,0,80,83,84,56,80,68,84,0,80,111,108,97,110,100,0,80,111,114,116,117,103,97,108,0,82,79,67,0,82,79,75,0,84,117,114,107,101,121,0,87,45,83,85,0,87,69,84,0,116,121,112,101,77,97,112,0,65,102,114,105,99,97,58,65,98,105,100,106,97,110,0,65,102,114,105,99,97,58,65,99,99,114,97,0,65,102,114,105,99,97,58,65,100,100,105,115,95,65,98,97,98,97,0,65,102,114,105,99,97,58,65,108,103,105,101,114,115,0,65,102,114,105,99,97,58,66,97,109,97,107,111,0,65,102,114,105,99,97,58,66,97,110,103,117,105,0,65,102,114,105,99,97,58,66,97,110,106,117,108,0,65,102,114,105,99,97,58,66,105,115,115,97,117,0,65,102,114,105,99,97,58,66,108,97,110,116,121,114,101,0,65,102,114,105,99,97,58,66,114,97,122,122,97,118,105,108,108,101,0,65,102,114,105,99,97,58,66,117,106,117,109,98,117,114,97,0,65,102,114,105,99,97,58,67,97,105,114,111,0,65,102,114,105,99,97,58,67,97,115,97,98,108,97,110,99,97,0,65,102,114,105,99,97,58,67,101,117,116,97,0,65,102,114,105,99,97,58,67,111,110,97,107,114,121,0,65,102,114,105,99,97,58,68,97,107,97,114,0,65,102,114,105,99,97,58,68,97,114,95,101,115,95,83,97,108,97,97,109,0,65,102,114,105,99,97,58,68,106,105,98,111,117,116,105,0,65,102,114,105,99,97,58,68,111,117,97,108,97,0,65,102,114,105,99,97,58,69,108,95,65,97,105,117,110,0,65,102,114,105,99,97,58,70,114,101,101,116,111,119,110,0,65,102,114,105,99,97,58,71,97,98,111,114,111,110,101,0,65,102,114,105,99,97,58,72,97,114,97,114,101,0,65,102,114,105,99,97,58,74,111,104,97,110,110,101,115,98,117,114,103,0,65,102,114,105,99,97,58,74,117,98,97,0,65,102,114,105,99,97,58,75,97,109,112,97,108,97,0,65,102,114,105,99,97,58,75,104,97,114,116,111,117,109,0,65,102,114,105,99,97,58,75,105,103,97,108,105,0,65,102,114,105,99,97,58,75,105,110,115,104,97,115,97,0,65,102,114,105,99,97,58,76,97,103,111,115,0,65,102,114,105,99,97,58,76,105,98,114,101,118,105,108,108,101,0,65,102,114,105,99,97,58,76,111,109,101,0,65,102,114,105,99,97,58,76,117,97,110,100,97,0,65,102,114,105,99,97,58,76,117,98,117,109,98,97,115,104,105,0,65,102,114,105,99,97,58,76,117,115,97,107,97,0,65,102,114,105,99,97,58,77,97,108,97,98,111,0,65,102,114,105,99,97,58,77,97,112,117,116,111,0,65,102,114,105,99,97,58,77,97,115,101,114,117,0,65,102,114,105,99,97,58,77,98,97,98,97,110,101,0,65,102,114,105,99,97,58,77,111,103,97,100,105,115,104,117,0,65,102,114,105,99,97,58,77,111,110,114,111,118,105,97,0,65,102,114,105,99,97,58,78,97,105,114,111,98,105,0,65,102,114,105,99,97,58,78,100,106,97,109,101,110,97,0,65,102,114,105,99,97,58,78,105,97,109,101,121,0,65,102,114,105,99,97,58,78,111,117,97,107,99,104,111,116,116,0,65,102,114,105,99,97,58,79,117,97,103,97,100,111,117,103,111,117,0,65,102,114,105,99,97,58,80,111,114,116,111,45,78,111,118,111,0,65,102,114,105,99,97,58,83,97,111,95,84,111,109,101,0,65,102,114,105,99,97,58,84,114,105,112,111,108,105,0,65,102,114,105,99,97,58,84,117,110,105,115,0,65,102,114,105,99,97,58,87,105,110,100,104,111,101,107,0,65,109,101,114,105,99,97,58,65,100,97,107,0,65,109,101,114,105,99,97,58,65,110,99,104,111,114,97,103,101,0,65,109,101,114,105,99,97,58,65,110,103,117,105,108,108,97,0,65,109,101,114,105,99,97,58,65,110,116,105,103,117,97,0,65,109,101,114,105,99,97,58,65,114,97,103,117,97,105,110,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,76,97,95,82,105,111,106,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,82,105,111,95,71,97,108,108,101,103,111,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,108,116,97,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,74,117,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,83,97,110,95,76,117,105,115,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,84,117,99,117,109,97,110,0,65,109,101,114,105,99,97,58,65,114,103,101,110,116,105,110,97,58,85,115,104,117,97,105,97,0,65,109,101,114,105,99,97,58,65,114,117,98,97,0,65,109,101,114,105,99,97,58,65,115,117,110,99,105,111,110,0,65,109,101,114,105,99,97,58,66,97,104,105,97,0,65,109,101,114,105,99,97,58,66,97,104,105,97,95,66,97,110,100,101,114,97,115,0,65,109,101,114,105,99,97,58,66,97,114,98,97,100,111,115,0,65,109,101,114,105,99,97,58,66,101,108,101,109,0,65,109,101,114,105,99,97,58,66,101,108,105,122,101,0,65,109,101,114,105,99,97,58,66,108,97,110,99,45,83,97,98,108,111,110,0,65,109,101,114,105,99,97,58,66,111,97,95,86,105,115,116,97,0,65,109,101,114,105,99,97,58,66,111,103,111,116,97,0,65,109,101,114,105,99,97,58,66,111,105,115,101,0,65,109,101,114,105,99,97,58,67,97,109,98,114,105,100,103,101,95,66,97,121,0,65,109,101,114,105,99,97,58,67,97,109,112,111,95,71,114,97,110,100,101,0,65,109,101,114,105,99,97,58,67,97,110,99,117,110,0,65,109,101,114,105,99,97,58,67,97,114,97,99,97,115,0,65,109,101,114,105,99,97,58,67,97,121,101,110,110,101,0,65,109,101,114,105,99,97,58,67,97,121,109,97,110,0,65,109,101,114,105,99,97,58,67,104,105,99,97,103,111,0,65,109,101,114,105,99,97,58,67,104,105,104,117,97,104,117,97,0,65,109,101,114,105,99,97,58,67,105,117,100,97,100,95,74,117,97,114,101,122,0,65,109,101,114,105,99,97,58,67,111,115,116,97,95,82,105,99,97,0,65,109,101,114,105,99,97,58,67,114,101,115,116,111,110,0,65,109,101,114,105,99,97,58,67,117,105,97,98,97,0,65,109,101,114,105,99,97,58,67,117,114,97,99,97,111,0,65,109,101,114,105,99,97,58,68,97,110,109,97,114,107,115,104,97,118,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,0,65,109,101,114,105,99,97,58,68,97,119,115,111,110,95,67,114,101,101,107,0,65,109,101,114,105,99,97,58,68,101,110,118,101,114,0,65,109,101,114,105,99,97,58,68,101,116,114,111,105,116,0,65,109,101,114,105,99,97,58,68,111,109,105,110,105,99,97,0,65,109,101,114,105,99,97,58,69,100,109,111,110,116,111,110,0,65,109,101,114,105,99,97,58,69,105,114,117,110,101,112,101,0,65,109,101,114,105,99,97,58,69,108,95,83,97,108,118,97,100,111,114,0,65,109,101,114,105,99,97,58,70,111,114,116,95,78,101,108,115,111,110,0,65,109,101,114,105,99,97,58,70,111,114,116,97,108,101,122,97,0,65,109,101,114,105,99,97,58,71,108,97,99,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,111,111,115,101,95,66,97,121,0,65,109,101,114,105,99,97,58,71,114,97,110,100,95,84,117,114,107,0,65,109,101,114,105,99,97,58,71,114,101,110,97,100,97,0,65,109,101,114,105,99,97,58,71,117,97,100,101,108,111,117,112,101,0,65,109,101,114,105,99,97,58,71,117,97,116,101,109,97,108,97,0,65,109,101,114,105,99,97,58,71,117,97,121,97,113,117,105,108,0,65,109,101,114,105,99,97,58,71,117,121,97,110,97,0,65,109,101,114,105,99,97,58,72,97,108,105,102,97,120,0,65,109,101,114,105,99,97,58,72,97,118,97,110,97,0,65,109,101,114,105,99,97,58,72,101,114,109,111,115,105,108,108,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,75,110,111,120,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,77,97,114,101,110,103,111,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,80,101,116,101,114,115,98,117,114,103,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,84,101,108,108,95,67,105,116,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,101,118,97,121,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,86,105,110,99,101,110,110,101,115,0,65,109,101,114,105,99,97,58,73,110,100,105,97,110,97,58,87,105,110,97,109,97,99,0,65,109,101,114,105,99,97,58,73,110,117,118,105,107,0,65,109,101,114,105,99,97,58,73,113,97,108,117,105,116,0,65,109,101,114,105,99,97,58,74,97,109,97,105,99,97,0,65,109,101,114,105,99,97,58,74,117,110,101,97,117,0,65,109,101,114,105,99,97,58,75,101,110,116,117,99,107,121,58,77,111,110,116,105,99,101,108,108,111,0,65,109,101,114,105,99,97,58,75,114,97,108,101,110,100,105,106,107,0,65,109,101,114,105,99,97,58,76,97,95,80,97,122,0,65,109,101,114,105,99,97,58,76,105,109,97,0,65,109,101,114,105,99,97,58,76,111,115,95,65,110,103,101,108,101,115,0,65,109,101,114,105,99,97,58,76,111,119,101,114,95,80,114,105,110,99,101,115,0,65,109,101,114,105,99,97,58,77,97,99,101,105,111,0,65,109,101,114,105,99,97,58,77,97,110,97,103,117,97,0,65,109,101,114,105,99,97,58,77,97,110,97,117,115,0,65,109,101,114,105,99,97,58,77,97,114,105,103,111,116,0,65,109,101,114,105,99,97,58,77,97,114,116,105,110,105,113,117,101,0,65,109,101,114,105,99,97,58,77,97,116,97,109,111,114,111,115,0,65,109,101,114,105,99,97,58,77,97,122,97,116,108,97,110,0,65,109,101,114,105,99,97,58,77,101,110,111,109,105,110,101,101,0,65,109,101,114,105,99,97,58,77,101,114,105,100,97,0,65,109,101,114,105,99,97,58,77,101,116,108,97,107,97,116,108,97,0,65,109,101,114,105,99,97,58,77,101,120,105,99,111,95,67,105,116,121,0,65,109,101,114,105,99,97,58,77,105,113,117,101,108,111,110,0,65,109,101,114,105,99,97,58,77,111,110,99,116,111,110,0,65,109,101,114,105,99,97,58,77,111,110,116,101,114,114,101,121,0,65,109,101,114,105,99,97,58,77,111,110,116,101,118,105,100,101,111,0,65,109,101,114,105,99,97,58,77,111,110,116,115,101,114,114,97,116,0,65,109,101,114,105,99,97,58,78,97,115,115,97,117,0,65,109,101,114,105,99,97,58,78,101,119,95,89,111,114,107,0,65,109,101,114,105,99,97,58,78,111,109,101,0,65,109,101,114,105,99,97,58,78,111,114,111,110,104,97,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,66,101,117,108,97,104,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,67,101,110,116,101,114,0,65,109,101,114,105,99,97,58,78,111,114,116,104,95,68,97,107,111,116,97,58,78,101,119,95,83,97,108,101,109,0,65,109,101,114,105,99,97,58,79,106,105,110,97,103,97,0,65,109,101,114,105,99,97,58,80,97,110,97,109,97,0,65,109,101,114,105,99,97,58,80,97,114,97,109,97,114,105,98,111,0,65,109,101,114,105,99,97,58,80,104,111,101,110,105,120,0,65,109,101,114,105,99,97,58,80,111,114,116,45,97,117,45,80,114,105,110,99,101,0,65,109,101,114,105,99,97,58,80,111,114,116,95,111,102,95,83,112,97,105,110,0,65,109,101,114,105,99,97,58,80,111,114,116,111,95,86,101,108,104,111,0,65,109,101,114,105,99,97,58,80,117,101,114,116,111,95,82,105,99,111,0,65,109,101,114,105,99,97,58,80,117,110,116,97,95,65,114,101,110,97,115,0,65,109,101,114,105,99,97,58,82,97,110,107,105,110,95,73,110,108,101,116,0,65,109,101,114,105,99,97,58,82,101,99,105,102,101,0,65,109,101,114,105,99,97,58,82,101,103,105,110,97,0,65,109,101,114,105,99,97,58,82,101,115,111,108,117,116,101,0,65,109,101,114,105,99,97,58,82,105,111,95,66,114,97,110,99,111,0,65,109,101,114,105,99,97,58,83,97,110,116,97,114,101,109,0,65,109,101,114,105,99,97,58,83,97,110,116,105,97,103,111,0,65,109,101,114,105,99,97,58,83,97,110,116,111,95,68,111,109,105,110,103,111,0,65,109,101,114,105,99,97,58,83,97,111,95,80,97,117,108,111,0,65,109,101,114,105,99,97,58,83,99,111,114,101,115,98,121,115,117,110,100,0,65,109,101,114,105,99,97,58,83,105,116,107,97,0,65,109,101,114,105,99,97,58,83,116,95,66,97,114,116,104,101,108,101,109,121,0,65,109,101,114,105,99,97,58,83,116,95,74,111,104,110,115,0,65,109,101,114,105,99,97,58,83,116,95,75,105,116,116,115,0,65,109,101,114,105,99,97,58,83,116,95,76,117,99,105,97,0,65,109,101,114,105,99,97,58,83,116,95,84,104,111,109,97,115,0,65,109,101,114,105,99,97,58,83,116,95,86,105,110,99,101,110,116,0,65,109,101,114,105,99,97,58,83,119,105,102,116,95,67,117,114,114,101,110,116,0,65,109,101,114,105,99,97,58,84,101,103,117,99,105,103,97,108,112,97,0,65,109,101,114,105,99,97,58,84,104,117,108,101,0,65,109,101,114,105,99,97,58,84,105,106,117,97,110,97,0,65,109,101,114,105,99,97,58,84,111,114,111,110,116,111,0,65,109,101,114,105,99,97,58,84,111,114,116,111,108,97,0,65,109,101,114,105,99,97,58,86,97,110,99,111,117,118,101,114,0,65,109,101,114,105,99,97,58,87,104,105,116,101,104,111,114,115,101,0,65,109,101,114,105,99,97,58,87,105,110,110,105,112,101,103,0,65,109,101,114,105,99,97,58,89,97,107,117,116,97,116,0,65,110,116,97,114,99,116,105,99,97,58,67,97,115,101,121,0,65,110,116,97,114,99,116,105,99,97,58,68,97,118,105,115,0,65,110,116,97,114,99,116,105,99,97,58,68,117,109,111,110,116,68,85,114,118,105,108,108,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,99,113,117,97,114,105,101,0,65,110,116,97,114,99,116,105,99,97,58,77,97,119,115,111,110,0,65,110,116,97,114,99,116,105,99,97,58,77,99,77,117,114,100,111,0,65,110,116,97,114,99,116,105,99,97,58,80,97,108,109,101,114,0,65,110,116,97,114,99,116,105,99,97,58,82,111,116,104,101,114,97,0,65,110,116,97,114,99,116,105,99,97,58,83,121,111,119,97,0,65,110,116,97,114,99,116,105,99,97,58,84,114,111,108,108,0,65,110,116,97,114,99,116,105,99,97,58,86,111,115,116,111,107,0,65,114,99,116,105,99,58,76,111,110,103,121,101,97,114,98,121,101,110,0,65,115,105,97,58,65,100,101,110,0,65,115,105,97,58,65,108,109,97,116,121,0,65,115,105,97,58,65,109,109,97,110,0,65,115,105,97,58,65,110,97,100,121,114,0,65,115,105,97,58,65,113,116,97,117,0,65,115,105,97,58,65,113,116,111,98,101,0,65,115,105,97,58,65,115,104,103,97,98,97,116,0,65,115,105,97,58,65,116,121,114,97,117,0,65,115,105,97,58,66,97,103,104,100,97,100,0,65,115,105,97,58,66,97,104,114,97,105,110,0,65,115,105,97,58,66,97,107,117,0,65,115,105,97,58,66,97,110,103,107,111,107,0,65,115,105,97,58,66,97,114,110,97,117,108,0,65,115,105,97,58,66,101,105,114,117,116,0,65,115,105,97,58,66,105,115,104,107,101,107,0,65,115,105,97,58,66,114,117,110,101,105,0,65,115,105,97,58,67,104,105,116,97,0,65,115,105,97,58,67,111,108,111,109,98,111,0,65,115,105,97,58,68,97,109,97,115,99,117,115,0,65,115,105,97,58,68,104,97,107,97,0,65,115,105,97,58,68,105,108,105,0,65,115,105,97,58,68,117,98,97,105,0,65,115,105,97,58,68,117,115,104,97,110,98,101,0,65,115,105,97,58,70,97,109,97,103,117,115,116,97,0,65,115,105,97,58,71,97,122,97,0,65,115,105,97,58,72,101,98,114,111,110,0,65,115,105,97,58,72,111,110,103,95,75,111,110,103,0,65,115,105,97,58,72,111,118,100,0,65,115,105,97,58,73,114,107,117,116,115,107,0,65,115,105,97,58,74,97,107,97,114,116,97,0,65,115,105,97,58,74,97,121,97,112,117,114,97,0,65,115,105,97,58,74,101,114,117,115,97,108,101,109,0,65,115,105,97,58,75,97,98,117,108,0,65,115,105,97,58,75,97,109,99,104,97,116,107,97,0,65,115,105,97,58,75,97,114,97,99,104,105,0,65,115,105,97,58,75,104,97,110,100,121,103,97,0,65,115,105,97,58,75,114,97,115,110,111,121,97,114,115,107,0,65,115,105,97,58,75,117,97,108,97,95,76,117,109,112,117,114,0,65,115,105,97,58,75,117,99,104,105,110,103,0,65,115,105,97,58,75,117,119,97,105,116,0,65,115,105,97,58,77,97,99,97,117,0,65,115,105,97,58,77,97,103,97,100,97,110,0,65,115,105,97,58,77,97,107,97,115,115,97,114,0,65,115,105,97,58,77,97,110,105,108,97,0,65,115,105,97,58,77,117,115,99,97,116,0,65,115,105,97,58,78,105,99,111,115,105,97,0,65,115,105,97,58,78,111,118,111,107,117,122,110,101,116,115,107,0,65,115,105,97,58,78,111,118,111,115,105,98,105,114,115,107,0,65,115,105,97,58,79,109,115,107,0,65,115,105,97,58,79,114,97,108,0,65,115,105,97,58,80,104,110,111,109,95,80,101,110,104,0,65,115,105,97,58,80,111,110,116,105,97,110,97,107,0,65,115,105,97,58,80,121,111,110,103,121,97,110,103,0,65,115,105,97,58,81,97,116,97,114,0,65,115,105,97,58,81,111,115,116,97,110,97,121,0,65,115,105,97,58,81,121,122,121,108,111,114,100,97,0,65,115,105,97,58,82,105,121,97,100,104,0,65,115,105,97,58,83,97,107,104,97,108,105,110,0,65,115,105,97,58,83,97,109,97,114,107,97,110,100,0,65,115,105,97,58,83,101,111,117,108,0,65,115,105,97,58,83,104,97,110,103,104,97,105,0,65,115,105,97,58,83,105,110,103,97,112,111,114,101,0,65,115,105,97,58,83,114,101,100,110,101,107,111,108,121,109,115,107,0,65,115,105,97,58,84,97,105,112,101,105,0,65,115,105,97,58,84,97,115,104,107,101,110,116,0,65,115,105,97,58,84,98,105,108,105,115,105,0,65,115,105,97,58,84,101,104,114,97,110,0,65,115,105,97,58,84,104,105,109,112,104,117,0,65,115,105,97,58,84,111,107,121,111,0,65,115,105,97,58,84,111,109,115,107,0,65,115,105,97,58,85,108,97,97,110,98,97,97,116,97,114,0,65,115,105,97,58,85,114,117,109,113,105,0,65,115,105,97,58,85,115,116,45,78,101,114,97,0,65,115,105,97,58,86,105,101,110,116,105,97,110,101,0,65,115,105,97,58,86,108,97,100,105,118,111,115,116,111,107,0,65,115,105,97,58,89,97,107,117,116,115,107,0,65,115,105,97,58,89,101,107,97,116,101,114,105,110,98,117,114,103,0,65,115,105,97,58,89,101,114,101,118,97,110,0,65,116,108,97,110,116,105,99,58,65,122,111,114,101,115,0,65,116,108,97,110,116,105,99,58,66,101,114,109,117,100,97,0,65,116,108,97,110,116,105,99,58,67,97,110,97,114,121,0,65,116,108,97,110,116,105,99,58,67,97,112,101,95,86,101,114,100,101,0,65,116,108,97,110,116,105,99,58,77,97,100,101,105,114,97,0,65,116,108,97,110,116,105,99,58,82,101,121,107,106,97,118,105,107,0,65,116,108,97,110,116,105,99,58,83,111,117,116,104,95,71,101,111,114,103,105,97,0,65,116,108,97,110,116,105,99,58,83,116,95,72,101,108,101,110,97,0,65,116,108,97,110,116,105,99,58,83,116,97,110,108,101,121,0,65,117,115,116,114,97,108,105,97,58,65,100,101,108,97,105,100,101,0,65,117,115,116,114,97,108,105,97,58,66,114,105,115,98,97,110,101,0,65,117,115,116,114,97,108,105,97,58,66,114,111,107,101,110,95,72,105,108,108,0,65,117,115,116,114,97,108,105,97,58,68,97,114,119,105,110,0,65,117,115,116,114,97,108,105,97,58,69,117,99,108,97,0,65,117,115,116,114,97,108,105,97,58,72,111,98,97,114,116,0,65,117,115,116,114,97,108,105,97,58,76,105,110,100,101,109,97,110,0,65,117,115,116,114,97,108,105,97,58,76,111,114,100,95,72,111,119,101,0,65,117,115,116,114,97,108,105,97,58,77,101,108,98,111,117,114,110,101,0,65,117,115,116,114,97,108,105,97,58,80,101,114,116,104,0,65,117,115,116,114,97,108,105,97,58,83,121,100,110,101,121,0,69,116,99,58,71,77,84,0,69,116,99,58,71,77,84,43,49,0,69,116,99,58,71,77,84,43,49,48,0,69,116,99,58,71,77,84,43,49,49,0,69,116,99,58,71,77,84,43,49,50,0,69,116,99,58,71,77,84,43,50,0,69,116,99,58,71,77,84,43,51,0,69,116,99,58,71,77,84,43,52,0,69,116,99,58,71,77,84,43,53,0,69,116,99,58,71,77,84,43,54,0,69,116,99,58,71,77,84,43,55,0,69,116,99,58,71,77,84,43,56,0,69,116,99,58,71,77,84,43,57,0,69,116,99,58,71,77,84,45,49,0,69,116,99,58,71,77,84,45,49,48,0,69,116,99,58,71,77,84,45,49,49,0,69,116,99,58,71,77,84,45,49,50,0,69,116,99,58,71,77,84,45,49,51,0,69,116,99,58,71,77,84,45,49,52,0,69,116,99,58,71,77,84,45,50,0,69,116,99,58,71,77,84,45,51,0,69,116,99,58,71,77,84,45,52,0,69,116,99,58,71,77,84,45,53,0,69,116,99,58,71,77,84,45,54,0,69,116,99,58,71,77,84,45,55,0,69,116,99,58,71,77,84,45,56,0,69,116,99,58,71,77,84,45,57,0,69,116,99,58,85,84,67,0,69,116,99,58,85,110,107,110,111,119,110,0,69,117,114,111,112,101,58,65,109,115,116,101,114,100,97,109,0,69,117,114,111,112,101,58,65,110,100,111,114,114,97,0,69,117,114,111,112,101,58,65,115,116,114,97,107,104,97,110,0,69,117,114,111,112,101,58,65,116,104,101,110,115,0,69,117,114,111,112,101,58,66,101,108,103,114,97,100,101,0,69,117,114,111,112,101,58,66,101,114,108,105,110,0,69,117,114,111,112,101,58,66,114,97,116,105,115,108,97,118,97,0,69,117,114,111,112,101,58,66,114,117,115,115,101,108,115,0,69,117,114,111,112,101,58,66,117,99,104,97,114,101,115,116,0,69,117,114,111,112,101,58,66,117,100,97,112,101,115,116,0,69,117,114,111,112,101,58,66,117,115,105,110,103,101,110,0,69,117,114,111,112,101,58,67,104,105,115,105,110,97,117,0,69,117,114,111,112,101,58,67,111,112,101,110,104,97,103,101,110,0,69,117,114,111,112,101,58,68,117,98,108,105,110,0,69,117,114,111,112,101,58,71,105,98,114,97,108,116,97,114,0,69,117,114,111,112,101,58,71,117,101,114,110,115,101,121,0,69,117,114,111,112,101,58,72,101,108,115,105,110,107,105,0,69,117,114,111,112,101,58,73,115,108,101,95,111,102,95,77,97,110,0,69,117,114,111,112,101,58,73,115,116,97,110,98,117,108,0,69,117,114,111,112,101,58,74,101,114,115,101,121,0,69,117,114,111,112,101,58,75,97,108,105,110,105,110,103,114,97,100,0,69,117,114,111,112,101,58,75,105,114,111,118,0,69,117,114,111,112,101,58,76,105,115,98,111,110,0,69,117,114,111,112,101,58,76,106,117,98,108,106,97,110,97,0,69,117,114,111,112,101,58,76,111,110,100,111,110,0,69,117,114,111,112,101,58,76,117,120,101,109,98,111,117,114,103,0,69,117,114,111,112,101,58,77,97,100,114,105,100,0,69,117,114,111,112,101,58,77,97,108,116,97,0,69,117,114,111,112,101,58,77,97,114,105,101,104,97,109,110,0,69,117,114,111,112,101,58,77,105,110,115,107,0,69,117,114,111,112,101,58,77,111,110,97,99,111,0,69,117,114,111,112,101,58,77,111,115,99,111,119,0,69,117,114,111,112,101,58,79,115,108,111,0,69,117,114,111,112,101,58,80,97,114,105,115,0,69,117,114,111,112,101,58,80,111,100,103,111,114,105,99,97,0,69,117,114,111,112,101,58,80,114,97,103,117,101,0,69,117,114,111,112,101,58,82,105,103,97,0,69,117,114,111,112,101,58,82,111,109,101,0,69,117,114,111,112,101,58,83,97,109,97,114,97,0,69,117,114,111,112,101,58,83,97,110,95,77,97,114,105,110,111,0,69,117,114,111,112,101,58,83,97,114,97,106,101,118,111,0,69,117,114,111,112,101,58,83,97,114,97,116,111,118,0,69,117,114,111,112,101,58,83,105,109,102,101,114,111,112,111,108,0,69,117,114,111,112,101,58,83,107,111,112,106,101,0,69,117,114,111,112,101,58,83,111,102,105,97,0,69,117,114,111,112,101,58,83,116,111,99,107,104,111,108,109,0,69,117,114,111,112,101,58,84,97,108,108,105,110,110,0,69,117,114,111,112,101,58,84,105,114,97,110,101,0,69,117,114,111,112,101,58,85,108,121,97,110,111,118,115,107,0,69,117,114,111,112,101,58,86,97,100,117,122,0,69,117,114,111,112,101,58,86,97,116,105,99,97,110,0,69,117,114,111,112,101,58,86,105,101,110,110,97,0,69,117,114,111,112,101,58,86,105,108,110,105,117,115,0,69,117,114,111,112,101,58,86,111,108,103,111,103,114,97,100,0,69,117,114,111,112,101,58,87,97,114,115,97,119,0,69,117,114,111,112,101,58,90,97,103,114,101,98,0,69,117,114,111,112,101,58,90,117,114,105,99,104,0,73,110,100,105,97,110,58,65,110,116,97,110,97,110,97,114,105,118,111,0,73,110,100,105,97,110,58,67,104,97,103,111,115,0,73,110,100,105,97,110,58,67,104,114,105,115,116,109,97,115,0,73,110,100,105,97,110,58,67,111,99,111,115,0,73,110,100,105,97,110,58,67,111,109,111,114,111,0,73,110,100,105,97,110,58,75,101,114,103,117,101,108,101,110,0,73,110,100,105,97,110,58,77,97,104,101,0,73,110,100,105,97,110,58,77,97,108,100,105,118,101,115,0,73,110,100,105,97,110,58,77,97,117,114,105,116,105,117,115,0,73,110,100,105,97,110,58,77,97,121,111,116,116,101,0,73,110,100,105,97,110,58,82,101,117,110,105,111,110,0,80,97,99,105,102,105,99,58,65,112,105,97,0,80,97,99,105,102,105,99,58,65,117,99,107,108,97,110,100,0,80,97,99,105,102,105,99,58,66,111,117,103,97,105,110,118,105,108,108,101,0,80,97,99,105,102,105,99,58,67,104,97,116,104,97,109,0,80,97,99,105,102,105,99,58,69,97,115,116,101,114,0,80,97,99,105,102,105,99,58,69,102,97,116,101,0,80,97,99,105,102,105,99,58,70,97,107,97,111,102,111,0,80,97,99,105,102,105,99,58,70,105,106,105,0,80,97,99,105,102,105,99,58,70,117,110,97,102,117,116,105,0,80,97,99,105,102,105,99,58,71,97,108,97,112,97,103,111,115,0,80,97,99,105,102,105,99,58,71,97,109,98,105,101,114,0,80,97,99,105,102,105,99,58,71,117,97,100,97,108,99,97,110,97,108,0,80,97,99,105,102,105,99,58,71,117,97,109,0,80,97,99,105,102,105,99,58,72,111,110,111,108,117,108,117,0,80,97,99,105,102,105,99,58,75,105,114,105,116,105,109,97,116,105,0,80,97,99,105,102,105,99,58,75,111,115,114,97,101,0,80,97,99,105,102,105,99,58,75,119,97,106,97,108,101,105,110,0,80,97,99,105,102,105,99,58,77,97,106,117,114,111,0,80,97,99,105,102,105,99,58,77,97,114,113,117,101,115,97,115,0,80,97,99,105,102,105,99,58,77,105,100,119,97,121,0,80,97,99,105,102,105,99,58,78,97,117,114,117,0,80,97,99,105,102,105,99,58,78,105,117,101,0,80,97,99,105,102,105,99,58,78,111,114,102,111,108,107,0,80,97,99,105,102,105,99,58,78,111,117,109,101,97,0,80,97,99,105,102,105,99,58,80,97,103,111,95,80,97,103,111,0,80,97,99,105,102,105,99,58,80,97,108,97,117,0,80,97,99,105,102,105,99,58,80,105,116,99,97,105,114,110,0,80,97,99,105,102,105,99,58,80,111,114,116,95,77,111,114,101,115,98,121,0,80,97,99,105,102,105,99,58,82,97,114,111,116,111,110,103,97,0,80,97,99,105,102,105,99,58,83,97,105,112,97,110,0,80,97,99,105,102,105,99,58,84,97,104,105,116,105,0,80,97,99,105,102,105,99,58,84,97,114,97,119,97,0,80,97,99,105,102,105,99,58,84,111,110,103,97,116,97,112,117,0,80,97,99,105,102,105,99,58,87,97,107,101,0,80,97,99,105,102,105,99,58,87,97,108,108,105,115,0,170,0,0,103,0,109,0,116,0,0,0,117,0,110,0,107,0,0,0,117,0,116,0,99,0,0,0,99,0,97,0,116,0,111,0,114,0,0,0,99,0,110,0,115,0,104,0,97,0,0,0,117,0,97,0,105,0,101,0,118,0,0,0,117,0,115,0,100,0,101,0,110,0,0,0,97,0,117,0,104,0,98,0,97,0,0,0,99,0,97,0,101,0,100,0,109,0,0,0,99,0,97,0,105,0,113,0,108,0,0,0,99,0,97,0,119,0,110,0,112,0,0,0,99,0,110,0,117,0,114,0,99,0,0,0,109,0,110,0,117,0,108,0,110,0,0,0,109,0,120,0,116,0,105,0,106,0,0,0,110,0,122,0,97,0,107,0,108,0,0,0,117,0,115,0,99,0,104,0,105,0,0,0,117,0,115,0,104,0,110,0,108,0,0,0,117,0,115,0,108,0,97,0,120,0,0,0,117,0,115,0,110,0,121,0,99,0,0,0,97,0,100,0,97,0,108,0,118,0,0,0,97,0,101,0,100,0,120,0,98,0,0,0,97,0,102,0,107,0,98,0,108,0,0,0,97,0,103,0,97,0,110,0,117,0,0,0,97,0,105,0,97,0,120,0,97,0,0,0,97,0,108,0,116,0,105,0,97,0,0,0,97,0,109,0,101,0,118,0,110,0,0,0,97,0,110,0,99,0,117,0,114,0,0,0,97,0,111,0,108,0,97,0,100,0,0,0,97,0,113,0,99,0,97,0,115,0,0,0,97,0,113,0,100,0,97,0,118,0,0,0,97,0,113,0,100,0,100,0,117,0,0,0,97,0,113,0,109,0,97,0,119,0,0,0,97,0,113,0,109,0,99,0,109,0,0,0,97,0,113,0,112,0,108,0,109,0,0,0,97,0,113,0,114,0,111,0,116,0,0,0,97,0,113,0,115,0,121,0,119,0,0,0,97,0,113,0,116,0,114,0,108,0,0,0,97,0,113,0,118,0,111,0,115,0,0,0,97,0,114,0,98,0,117,0,101,0,0,0,97,0,114,0,99,0,111,0,114,0,0,0,97,0,114,0,99,0,116,0,99,0,0,0,97,0,114,0,105,0,114,0,106,0,0,0,97,0,114,0,106,0,117,0,106,0,0,0,97,0,114,0,108,0,117,0,113,0,0,0,97,0,114,0,109,0,100,0,122,0,0,0,97,0,114,0,114,0,103,0,108,0,0,0,97,0,114,0,115,0,108,0,97,0,0,0,97,0,114,0,116,0,117,0,99,0,0,0,97,0,114,0,117,0,97,0,113,0,0,0,97,0,114,0,117,0,115,0,104,0,0,0,97,0,115,0,112,0,112,0,103,0,0,0,97,0,116,0,118,0,105,0,101,0,0,0,97,0,117,0,97,0,100,0,108,0,0,0,97,0,117,0,98,0,104,0,113,0,0,0,97,0,117,0,98,0,110,0,101,0,0,0,97,0,117,0,100,0,114,0,119,0,0,0,97,0,117,0,101,0,117,0,99,0,0,0,97,0,117,0,108,0,100,0,99,0,0,0,97,0,117,0,108,0,100,0,104,0,0,0,97,0,117,0,109,0,101,0,108,0,0,0,97,0,117,0,109,0,113,0,105,0,0,0,97,0,117,0,112,0,101,0,114,0,0,0,97,0,117,0,115,0,121,0,100,0,0,0,97,0,119,0,97,0,117,0,97,0,0,0,97,0,122,0,98,0,97,0,107,0,0,0,98,0,97,0,115,0,106,0,106,0,0,0,98,0,98,0,98,0,103,0,105,0,0,0,98,0,100,0,100,0,97,0,99,0,0,0,98,0,101,0,98,0,114,0,117,0,0,0,98,0,102,0,111,0,117,0,97,0,0,0,98,0,103,0,115,0,111,0,102,0,0,0,98,0,104,0,98,0,97,0,104,0,0,0,98,0,105,0,98,0,106,0,109,0,0,0,98,0,106,0,112,0,116,0,110,0,0,0,98,0,109,0,98,0,100,0,97,0,0,0,98,0,110,0,98,0,119,0,110,0,0,0,98,0,111,0,108,0,112,0,98,0,0,0,98,0,113,0,107,0,114,0,97,0,0,0,98,0,114,0,97,0,117,0,120,0,0,0,98,0,114,0,98,0,101,0,108,0,0,0,98,0,114,0,98,0,118,0,98,0,0,0,98,0,114,0,99,0,103,0,98,0,0,0,98,0,114,0,99,0,103,0,114,0,0,0,98,0,114,0,101,0,114,0,110,0,0,0,98,0,114,0,102,0,101,0,110,0,0,0,98,0,114,0,102,0,111,0,114,0,0,0,98,0,114,0,109,0,97,0,111,0,0,0,98,0,114,0,109,0,99,0,122,0,0,0,98,0,114,0,112,0,118,0,104,0,0,0,98,0,114,0,114,0,98,0,114,0,0,0,98,0,114,0,114,0,101,0,99,0,0,0,98,0,114,0,115,0,97,0,111,0,0,0,98,0,114,0,115,0,115,0,97,0,0,0,98,0,114,0,115,0,116,0,109,0,0,0,98,0,115,0,110,0,97,0,115,0,0,0,98,0,116,0,116,0,104,0,105,0,0,0,98,0,119,0,103,0,98,0,101,0,0,0,98,0,121,0,109,0,115,0,113,0,0,0,98,0,122,0,98,0,122,0,101,0,0,0,99,0,97,0,99,0,102,0,113,0,0,0,99,0,97,0,102,0,110,0,101,0,0,0,99,0,97,0,103,0,108,0,98,0,0,0,99,0,97,0,103,0,111,0,111,0,0,0,99,0,97,0,104,0,97,0,108,0,0,0,99,0,97,0,109,0,111,0,110,0,0,0,99,0,97,0,114,0,101,0,98,0,0,0,99,0,97,0,114,0,101,0,103,0,0,0,99,0,97,0,115,0,106,0,102,0,0,0,99,0,97,0,118,0,97,0,110,0,0,0,99,0,97,0,121,0,98,0,120,0,0,0,99,0,97,0,121,0,99,0,98,0,0,0,99,0,97,0,121,0,100,0,97,0,0,0,99,0,97,0,121,0,100,0,113,0,0,0,99,0,97,0,121,0,101,0,107,0,0,0,99,0,97,0,121,0,101,0,118,0,0,0,99,0,97,0,121,0,120,0,121,0,0,0,99,0,97,0,121,0,121,0,110,0,0,0,99,0,97,0,121,0,122,0,115,0,0,0,99,0,99,0,99,0,99,0,107,0,0,0,99,0,100,0,102,0,98,0,109,0,0,0,99,0,100,0,102,0,105,0,104,0,0,0,99,0,102,0,98,0,103,0,102,0,0,0,99,0,103,0,98,0,122,0,118,0,0,0,99,0,104,0,122,0,114,0,104,0,0,0,99,0,105,0,97,0,98,0,106,0,0,0,99,0,107,0,114,0,97,0,114,0,0,0,99,0,108,0,105,0,112,0,99,0,0,0,99,0,108,0,112,0,117,0,113,0,0,0,99,0,108,0,115,0,99,0,108,0,0,0,99,0,109,0,100,0,108,0,97,0,0,0,99,0,111,0,98,0,111,0,103,0,0,0,99,0,114,0,115,0,106,0,111,0,0,0,99,0,117,0,104,0,97,0,118,0,0,0,99,0,118,0,114,0,97,0,105,0,0,0,99,0,120,0,120,0,99,0,104,0,0,0,99,0,121,0,102,0,109,0,103,0,0,0,99,0,121,0,110,0,105,0,99,0,0,0,99,0,122,0,112,0,114,0,103,0,0,0,100,0,101,0,98,0,101,0,114,0,0,0,100,0,106,0,106,0,105,0,98,0,0,0,100,0,107,0,99,0,112,0,104,0,0,0,100,0,109,0,100,0,111,0,109,0,0,0,100,0,111,0,115,0,100,0,113,0,0,0,100,0,122,0,97,0,108,0,103,0,0,0,101,0,99,0,103,0,112,0,115,0,0,0,101,0,99,0,103,0,121,0,101,0,0,0,101,0,101,0,116,0,108,0,108,0,0,0,101,0,103,0,99,0,97,0,105,0,0,0,101,0,104,0,101,0,97,0,105,0,0,0,101,0,114,0,97,0,115,0,109,0,0,0,101,0,115,0,99,0,101,0,117,0,0,0,101,0,115,0,108,0,112,0,97,0,0,0,101,0,115,0,109,0,97,0,100,0,0,0,101,0,116,0,97,0,100,0,100,0,0,0,102,0,105,0,104,0,101,0,108,0,0,0,102,0,105,0,109,0,104,0,113,0,0,0,102,0,106,0,115,0,117,0,118,0,0,0,102,0,107,0,112,0,115,0,121,0,0,0,102,0,109,0,107,0,115,0,97,0,0,0,102,0,109,0,112,0,110,0,105,0,0,0,102,0,109,0,116,0,107,0,107,0,0,0,102,0,111,0,116,0,104,0,111,0,0,0,102,0,114,0,112,0,97,0,114,0,0,0,103,0,97,0,108,0,98,0,118,0,0,0,103,0,98,0,108,0,111,0,110,0,0,0,103,0,100,0,103,0,110,0,100,0,0,0,103,0,101,0,116,0,98,0,115,0,0,0,103,0,102,0,99,0,97,0,121,0,0,0,103,0,103,0,103,0,99,0,105,0,0,0,103,0,104,0,97,0,99,0,99,0,0,0,103,0,105,0,103,0,105,0,98,0,0,0,103,0,108,0,103,0,111,0,104,0,0,0,103,0,108,0,111,0,98,0,121,0,0,0,103,0,108,0,116,0,104,0,117,0,0,0,103,0,109,0,98,0,106,0,108,0,0,0,103,0,110,0,99,0,107,0,121,0,0,0,103,0,112,0,98,0,98,0,114,0,0,0,103,0,112,0,109,0,115,0,98,0,0,0,103,0,112,0,115,0,98,0,104,0,0,0,103,0,113,0,115,0,115,0,103,0,0,0,103,0,114,0,97,0,116,0,104,0,0,0,103,0,115,0,103,0,114,0,118,0,0,0,103,0,116,0,103,0,117,0,97,0,0,0,103,0,117,0,103,0,117,0,109,0,0,0,103,0,119,0,111,0,120,0,98,0,0,0,103,0,121,0,103,0,101,0,111,0,0,0,104,0,107,0,104,0,107,0,103,0,0,0,104,0,110,0,116,0,103,0,117,0,0,0,104,0,114,0,122,0,97,0,103,0,0,0,104,0,116,0,112,0,97,0,112,0,0,0,104,0,117,0,98,0,117,0,100,0,0,0,105,0,100,0,100,0,106,0,106,0,0,0,105,0,100,0,106,0,107,0,116,0,0,0,105,0,100,0,109,0,97,0,107,0,0,0,105,0,100,0,112,0,110,0,107,0,0,0,105,0,101,0,100,0,117,0,98,0,0,0,105,0,109,0,100,0,103,0,115,0,0,0,105,0,110,0,99,0,99,0,117,0,0,0,105,0,111,0,100,0,103,0,97,0,0,0,105,0,113,0,98,0,103,0,119,0,0,0,105,0,114,0,116,0,104,0,114,0,0,0,105,0,115,0,114,0,101,0,121,0,0,0,105,0,116,0,114,0,111,0,109,0,0,0,106,0,101,0,115,0,116,0,104,0,0,0,106,0,109,0,107,0,105,0,110,0,0,0,106,0,111,0,97,0,109,0,109,0,0,0,106,0,112,0,116,0,121,0,111,0,0,0,107,0,101,0,110,0,98,0,111,0,0,0,107,0,103,0,102,0,114,0,117,0,0,0,107,0,104,0,112,0,110,0,104,0,0,0,107,0,105,0,99,0,120,0,105,0,0,0,107,0,105,0,112,0,104,0,111,0,0,0,107,0,105,0,116,0,114,0,119,0,0,0,107,0,109,0,121,0,118,0,97,0,0,0,107,0,110,0,98,0,97,0,115,0,0,0,107,0,112,0,102,0,110,0,106,0,0,0,107,0,114,0,115,0,101,0,108,0,0,0,107,0,119,0,107,0,119,0,105,0,0,0,107,0,121,0,103,0,101,0,99,0,0,0,107,0,122,0,97,0,97,0,117,0,0,0,107,0,122,0,97,0,107,0,120,0,0,0,107,0,122,0,97,0,108,0,97,0,0,0,107,0,122,0,103,0,117,0,119,0,0,0,107,0,122,0,107,0,115,0,110,0,0,0,107,0,122,0,107,0,122,0,111,0,0,0,107,0,122,0,117,0,114,0,97,0,0,0,108,0,97,0,118,0,116,0,101,0,0,0,108,0,98,0,98,0,101,0,121,0,0,0,108,0,99,0,99,0,97,0,115,0,0,0,108,0,105,0,118,0,100,0,122,0,0,0,108,0,107,0,99,0,109,0,98,0,0,0,108,0,114,0,109,0,108,0,119,0,0,0,108,0,115,0,109,0,115,0,117,0,0,0,108,0,116,0,118,0,110,0,111,0,0,0,108,0,117,0,108,0,117,0,120,0,0,0,108,0,118,0,114,0,105,0,120,0,0,0,108,0,121,0,116,0,105,0,112,0,0,0,109,0,97,0,99,0,97,0,115,0,0,0,109,0,99,0,109,0,111,0,110,0,0,0,109,0,100,0,107,0,105,0,118,0,0,0,109,0,101,0,116,0,103,0,100,0,0,0,109,0,103,0,116,0,110,0,114,0,0,0,109,0,104,0,107,0,119,0,97,0,0,0,109,0,104,0,109,0,97,0,106,0,0,0,109,0,107,0,115,0,107,0,112,0,0,0,109,0,108,0,98,0,107,0,111,0,0,0,109,0,109,0,114,0,103,0,110,0,0,0,109,0,110,0,104,0,118,0,100,0,0,0,109,0,111,0,109,0,102,0,109,0,0,0,109,0,112,0,115,0,112,0,110,0,0,0,109,0,113,0,102,0,100,0,102,0,0,0,109,0,114,0,110,0,107,0,99,0,0,0,109,0,115,0,109,0,110,0,105,0,0,0,109,0,116,0,109,0,108,0,97,0,0,0,109,0,117,0,112,0,108,0,117,0,0,0,109,0,118,0,109,0,108,0,101,0,0,0,109,0,119,0,98,0,108,0,122,0,0,0,109,0,120,0,99,0,104,0,105,0,0,0,109,0,120,0,99,0,106,0,115,0,0,0,109,0,120,0,99,0,117,0,110,0,0,0,109,0,120,0,104,0,109,0,111,0,0,0,109,0,120,0,109,0,97,0,109,0,0,0,109,0,120,0,109,0,101,0,120,0,0,0,109,0,120,0,109,0,105,0,100,0,0,0,109,0,120,0,109,0,116,0,121,0,0,0,109,0,120,0,109,0,122,0,116,0,0,0,109,0,120,0,111,0,106,0,105,0,0,0,109,0,120,0,112,0,118,0,114,0,0,0,109,0,121,0,107,0,99,0,104,0,0,0,109,0,121,0,107,0,117,0,108,0,0,0,109,0,122,0,109,0,112,0,109,0,0,0,110,0,97,0,119,0,100,0,104,0,0,0,110,0,99,0,110,0,111,0,117,0,0,0,110,0,101,0,110,0,105,0,109,0,0,0,110,0,102,0,110,0,108,0,107,0,0,0,110,0,103,0,108,0,111,0,115,0,0,0,110,0,105,0,109,0,103,0,97,0,0,0,110,0,108,0,97,0,109,0,115,0,0,0,110,0,111,0,111,0,115,0,108,0,0,0,110,0,112,0,107,0,116,0,109,0,0,0,110,0,114,0,105,0,110,0,117,0,0,0,110,0,117,0,105,0,117,0,101,0,0,0,110,0,122,0,99,0,104,0,116,0,0,0,111,0,109,0,109,0,99,0,116,0,0,0,112,0,97,0,112,0,116,0,121,0,0,0,112,0,101,0,108,0,105,0,109,0,0,0,112,0,102,0,103,0,109,0,114,0,0,0,112,0,102,0,110,0,104,0,118,0,0,0,112,0,102,0,112,0,112,0,116,0,0,0,112,0,103,0,112,0,111,0,109,0,0,0,112,0,103,0,114,0,97,0,119,0,0,0,112,0,104,0,109,0,110,0,108,0,0,0,112,0,107,0,107,0,104,0,105,0,0,0,112,0,108,0,119,0,97,0,119,0,0,0,112,0,109,0,109,0,113,0,99,0,0,0,112,0,110,0,112,0,99,0,110,0,0,0,112,0,114,0,115,0,106,0,117,0,0,0,112,0,116,0,102,0,110,0,99,0,0,0,112,0,116,0,108,0,105,0,115,0,0,0,112,0,116,0,112,0,100,0,108,0,0,0,112,0,119,0,114,0,111,0,114,0,0,0,112,0,121,0,97,0,115,0,117,0,0,0,113,0,97,0,100,0,111,0,104,0,0,0,114,0,101,0,114,0,101,0,117,0,0,0,114,0,111,0,98,0,117,0,104,0,0,0,114,0,115,0,98,0,101,0,103,0,0,0,114,0,117,0,97,0,115,0,102,0,0,0,114,0,117,0,98,0,97,0,120,0,0,0,114,0,117,0,100,0,121,0,114,0,0,0,114,0,117,0,103,0,100,0,120,0,0,0,114,0,117,0,105,0,107,0,116,0,0,0,114,0,117,0,107,0,103,0,100,0,0,0,114,0,117,0,107,0,114,0,97,0,0,0,114,0,117,0,107,0,117,0,102,0,0,0,114,0,117,0,107,0,118,0,120,0,0,0,114,0,117,0,109,0,111,0,119,0,0,0,114,0,117,0,110,0,111,0,122,0,0,0,114,0,117,0,111,0,109,0,115,0,0,0,114,0,117,0,111,0,118,0,98,0,0,0,114,0,117,0,112,0,107,0,99,0,0,0,114,0,117,0,114,0,116,0,119,0,0,0,114,0,117,0,116,0,111,0,102,0,0,0,114,0,117,0,117,0,108,0,121,0,0,0,114,0,117,0,117,0,117,0,115,0,0,0,114,0,117,0,118,0,111,0,103,0,0,0,114,0,117,0,118,0,118,0,111,0,0,0,114,0,117,0,121,0,101,0,107,0,0,0,114,0,117,0,121,0,107,0,115,0,0,0,114,0,119,0,107,0,103,0,108,0,0,0,115,0,97,0,114,0,117,0,104,0,0,0,115,0,98,0,104,0,105,0,114,0,0,0,115,0,99,0,109,0,97,0,119,0,0,0,115,0,100,0,107,0,114,0,116,0,0,0,115,0,101,0,115,0,116,0,111,0,0,0,115,0,103,0,115,0,105,0,110,0,0,0,115,0,104,0,115,0,104,0,110,0,0,0,115,0,105,0,108,0,106,0,117,0,0,0,115,0,106,0,108,0,121,0,114,0,0,0,115,0,107,0,98,0,116,0,115,0,0,0,115,0,108,0,102,0,110,0,97,0,0,0,115,0,109,0,115,0,97,0,105,0,0,0,115,0,110,0,100,0,107,0,114,0,0,0,115,0,111,0,109,0,103,0,113,0,0,0,115,0,114,0,112,0,98,0,109,0,0,0,115,0,115,0,106,0,117,0,98,0,0,0,115,0,116,0,116,0,109,0,115,0,0,0,115,0,118,0,115,0,97,0,108,0,0,0,115,0,120,0,112,0,104,0,105,0,0,0,115,0,121,0,100,0,97,0,109,0,0,0,115,0,122,0,113,0,109,0,110,0,0,0,116,0,99,0,103,0,100,0,116,0,0,0,116,0,100,0,110,0,100,0,106,0,0,0,116,0,102,0,112,0,102,0,114,0,0,0,116,0,103,0,108,0,102,0,119,0,0,0,116,0,104,0,98,0,107,0,107,0,0,0,116,0,106,0,100,0,121,0,117,0,0,0,116,0,107,0,102,0,107,0,111,0,0,0,116,0,108,0,100,0,105,0,108,0,0,0,116,0,109,0,97,0,115,0,98,0,0,0,116,0,110,0,116,0,117,0,110,0,0,0,116,0,111,0,116,0,98,0,117,0,0,0,116,0,114,0,105,0,115,0,116,0,0,0,116,0,116,0,112,0,111,0,115,0,0,0,116,0,118,0,102,0,117,0,110,0,0,0,116,0,119,0,116,0,112,0,101,0,0,0,116,0,122,0,100,0,97,0,114,0,0,0,117,0,97,0,115,0,105,0,112,0,0,0,117,0,103,0,107,0,108,0,97,0,0,0,117,0,109,0,97,0,119,0,107,0,0,0,117,0,109,0,109,0,100,0,121,0,0,0,117,0,115,0,97,0,100,0,107,0,0,0,117,0,115,0,97,0,101,0,103,0,0,0,117,0,115,0,97,0,110,0,99,0,0,0,117,0,115,0,98,0,111,0,105,0,0,0,117,0,115,0,100,0,101,0,116,0,0,0,117,0,115,0,105,0,110,0,100,0,0,0,117,0,115,0,106,0,110,0,117,0,0,0,117,0,115,0,107,0,110,0,120,0,0,0,117,0,115,0,108,0,117,0,105,0,0,0,117,0,115,0,109,0,110,0,109,0,0,0,117,0,115,0,109,0,111,0,99,0,0,0,117,0,115,0,109,0,116,0,109,0,0,0,117,0,115,0,111,0,101,0,97,0,0,0,117,0,115,0,111,0,109,0,101,0,0,0,117,0,115,0,112,0,104,0,120,0,0,0,117,0,115,0,115,0,105,0,116,0,0,0,117,0,115,0,116,0,101,0,108,0,0,0,117,0,115,0,119,0,108,0,122,0,0,0,117,0,115,0,119,0,115,0,113,0,0,0,117,0,115,0,120,0,117,0,108,0,0,0,117,0,115,0,121,0,97,0,107,0,0,0,117,0,121,0,109,0,118,0,100,0,0,0,117,0,122,0,115,0,107,0,100,0,0,0,117,0,122,0,116,0,97,0,115,0,0,0,118,0,97,0,118,0,97,0,116,0,0,0,118,0,99,0,115,0,118,0,100,0,0,0,118,0,101,0,99,0,99,0,115,0,0,0,118,0,103,0,116,0,111,0,118,0,0,0,118,0,105,0,115,0,116,0,116,0,0,0,118,0,110,0,115,0,103,0,110,0,0,0,118,0,117,0,118,0,108,0,105,0,0,0,119,0,102,0,109,0,97,0,117,0,0,0,119,0,115,0,97,0,112,0,119,0,0,0,121,0,101,0,97,0,100,0,101,0,0,0,121,0,116,0,109,0,97,0,109,0,0,0,122,0,97,0,106,0,110,0,98,0,0,0,122,0,109,0,108,0,117,0,110,0,0,0,122,0,119,0,104,0,114,0,101,0,0,0,104,0,101,0,98,0,114,0,111,0,110,0,0,0,114,0,117,0,115,0,114,0,101,0,100,0,0,0,117,0,116,0,99,0,101,0,48,0,49,0,0,0,117,0,116,0,99,0,101,0,48,0,50,0,0,0,117,0,116,0,99,0,101,0,48,0,51,0,0,0,117,0,116,0,99,0,101,0,48,0,52,0,0,0,117,0,116,0,99,0,101,0,48,0,53,0,0,0,117,0,116,0,99,0,101,0,48,0,54,0,0,0,117,0,116,0,99,0,101,0,48,0,55,0,0,0,117,0,116,0,99,0,101,0,48,0,56,0,0,0,117,0,116,0,99,0,101,0,48,0,57,0,0,0,117,0,116,0,99,0,101,0,49,0,48,0,0,0,117,0,116,0,99,0,101,0,49,0,49,0,0,0,117,0,116,0,99,0,101,0,49,0,50,0,0,0,117,0,116,0,99,0,101,0,49,0,51,0,0,0,117,0,116,0,99,0,101,0,49,0,52,0,0,0,117,0,116,0,99,0,119,0,48,0,49,0,0,0,117,0,116,0,99,0,119,0,48,0,50,0,0,0,117,0,116,0,99,0,119,0,48,0,51,0,0,0,117,0,116,0,99,0,119,0,48,0,52,0,0,0,117,0,116,0,99,0,119,0,48,0,53,0,0,0,117,0,116,0,99,0,119,0,48,0,54,0,0,0,117,0,116,0,99,0,119,0,48,0,55,0,0,0,117,0,116,0,99,0,119,0,48,0,56,0,0,0,117,0,116,0,99,0,119,0,48,0,57,0,0,0,117,0,116,0,99,0,119,0,49,0,48,0,0,0,117,0,116,0,99,0,119,0,49,0,49,0,0,0,117,0,116,0,99,0,119,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,0,0,100,0,101,0,98,0,115,0,110,0,103,0,110,0,0,0,106,0,101,0,114,0,117,0,115,0,108,0,109,0,0,0,114,0,117,0,99,0,104,0,105,0,116,0,97,0,0,0,114,0,117,0,107,0,104,0,110,0,100,0,103,0,0,0,114,0,117,0,117,0,110,0,101,0,114,0,97,0,0,0,117,0,115,0,105,0,110,0,118,0,101,0,118,0,0,0,117,0,115,0,110,0,100,0,99,0,110,0,116,0,0,0,117,0,115,0,110,0,100,0,110,0,115,0,108,0,0,0,103,0,97,0,122,0,97,0,115,0,116,0,114,0,112,0,0,0,103,0,108,0,100,0,107,0,115,0,104,0,118,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,105,0,103,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,110,0,103,0,111,0,110,0,0,0,69,0,116,0,99,0,47,0,85,0,110,0,107,0,110,0,111,0,119,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,121,0,105,0,118,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,117,0,117,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,111,0,108,0,107,0,97,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,97,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,116,0,104,0,101,0,110,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,117,0,117,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,114,0,105,0,112,0,111,0,108,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,97,0,109,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,104,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,114,0,111,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,97,0,110,0,116,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,117,0,115,0,115,0,101,0,108,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,116,0,114,0,111,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,113,0,97,0,108,0,117,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,104,0,105,0,115,0,105,0,110,0,97,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,104,0,110,0,112,0,101,0,105,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,116,0,105,0,107,0,111,0,107,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,95,0,67,0,104,0,105,0,95,0,77,0,105,0,110,0,104,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,68,0,97,0,114,0,119,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,77,0,101,0,108,0,98,0,111,0,117,0,114,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,75,0,110,0,111,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,97,0,108,0,95,0,72,0,97,0,114,0,98,0,111,0,117,0,114,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,111,0,107,0,101,0,110,0,95,0,72,0,105,0,108,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,22,0,48,0,54,0,60,0,66,0,72,0,78,0,84,0,90,0,96,0,102,0,108,0,114,0,122,0,130,0,135,0,141,0,149,0,156,0,164,0,170,0,176,0,182,0,79,0,37,0,55,0,13,0,13,0,49,0,13,0,43,0,19,0,19,0,61,0,85,0,103,0,159,10,67,0,31,0,73,0,97,0,25,0,25,0,91,0,31,0,19,0,208,0,222,0,243,0,5,1,27,1,43,1,59,1,80,1,94,1,113,1,129,1,143,1,157,1,170,1,182,1,198,1,210,1,228,1,243,1,207,11,231,17,146,17,15,15,94,17,100,11,202,17,70,17,174,17,120,17,113,11,253,12,25,11,83,15,27,13,49,11,57,13,119,14,119,12,154,0,10,2,24,2,40,2,71,2,99,2,132,2,158,2,182,2,208,2,225,2,238,2,255,2,18,3,47,3,75,3,91,3,108,3,124,3,137,3,157,3,176,3,196,3,212,3,233,3,250,3,14,4,29,4,49,4,71,4,86,4,102,4,117,4,132,4,143,4,155,4,172,4,186,4,199,4,214,4,227,4,238,4,252,4,8,5,27,5,43,5,55,5,70,5,89,5,103,5,122,5,139,5,153,5,167,5,183,5,204,5,220,5,239,5,2,6,17,6,38,6,50,6,67,6,79,6,230,8,234,8,91,6,107,6,122,6,147,6,162,6,178,6,198,6,213,6,233,6,246,6,8,7,242,8,247,8,251,8,255,8,7,9,27,9,27,7,37,7,47,7,56,7,70,7,78,7,92,7,101,7,116,7,128,7,143,7,159,7,175,7,13,9,21,9,24,9,213,28,31,7,41,7,51,7,60,7,32,9,36,9,45,9,53,9,58,9,186,17,65,9,20,35,71,9,77,9,81,9,85,9,193,7,210,7,225,7,93,9,96,9,104,9,111,9,115,9,240,7,254,7,15,8,30,8,46,8,60,8,123,9,130,9,139,9,143,9,120,26,147,9,74,7,72,8,82,8,94,8,105,8,116,8,132,8,143,8,153,8,171,8,183,8,195,8,206,8,221,8,233,29,82,7,154,9,159,9,96,7,221,11,235,11,5,17,117,15,117,15,135,13,249,11,23,14,26,17,61,11,103,13,219,16,219,16,24,16,240,16,87,13,87,13,215,13,247,13,5,16,203,14,135,13,103,13,133,12,87,13,189,15,169,14,254,14,7,12,220,14,165,11,165,11,177,10,165,11,233,10,183,13,13,11,35,12,21,12,188,10,163,12,152,11,49,12,220,14,139,11,55,14,159,16,135,14,135,14,237,14,179,16,135,14,100,15,100,16,81,16,237,14,199,16,71,14,48,17,5,16,39,14,171,15,208,12,167,13,119,13,231,13,203,14,148,12,87,13,169,14,66,15,207,15,148,12,43,16,49,15,42,13,193,12,63,12,223,12,186,14,87,11,77,12,79,10,79,10,79,10,79,10,87,10,87,10,87,10,179,11,221,10,126,11,87,14,221,10,221,10,37,11,179,11,179,11,79,10,79,10,79,10,79,10,79,10,152,14,238,12,62,16,1,11,163,12,7,14,210,10,243,15,178,12,167,13,151,13,133,12,103,13,32,15,139,16,254,14,103,14,133,12,165,11,119,16,74,11,152,14,225,15,72,13,135,15,74,11,105,12,193,11,245,10,199,10,12,13,183,13,87,10,153,15,61,11,151,13,119,13,219,16,186,14,152,14,240,16,199,13,133,12,119,16,119,16,135,15,87,10,87,10,91,12,193,11,87,10,190,1,171,9,186,9,199,9,218,9,208,0,233,9,247,9,5,10,19,10,33,10,49,10,68,10,85,10,98,10,116,10,129,10,144,10,157,10,178,10,194,10,208,10,224,10,240,10,0,11,14,11,34,11,46,11,61,11,77,11,91,11,107,11,120,11,138,11,150,11,164,11,182,11,196,11,210,11,224,11,238,11,253,11,14,12,30,12,45,12,61,12,75,12,93,12,112,12,130,12,146,12,161,12,174,12,190,12,203,12,221,12,238,12,254,12,16,13,43,13,74,13,98,13,125,13,152,13,178,13,204,13,218,13,235,13,249,13,16,14,33,14,47,14,62,14,83,14,101,14,116,14,222,0,130,14,152,14,173,14,188,14,243,0,204,14,220,14,235,14,251,14,13,15,5,1,27,1,35,15,54,15,70,15,85,15,101,15,122,15,137,15,158,15,173,15,189,15,206,15,223,15,240,15,4,16,24,16,42,16,43,1,60,16,78,16,97,16,113,16,132,16,150,16,168,16,183,16,199,16,214,16,233,16,254,16,22,17,49,17,75,17,97,17,123,17,59,1,147,17,162,17,178,17,80,1,194,17,209,17,237,17,0,18,15,18,28,18,94,1,48,18,70,18,85,18,101,18,116,18,132,18,151,18,169,18,113,1,186,18,204,18,219,18,238,18,2,19,19,19,35,19,53,19,72,19,91,19,106,19,123,19,136,19,152,19,180,19,208,19,239,19,255,19,14,20,33,20,49,20,72,20,94,20,114,20,134,20,155,20,176,20,191,20,206,20,223,20,242,20,3,21,20,21,42,21,60,21,81,21,95,21,117,21,134,21,151,21,168,21,186,21,205,21,227,21,247,21,5,22,21,22,37,22,53,22,71,22,90,22,107,22,123,22,140,22,157,22,183,22,204,22,222,22,241,22,3,23,22,23,39,23,56,23,74,23,94,23,104,23,116,23,127,23,139,23,150,23,162,23,176,23,188,23,201,23,214,23,224,23,237,23,250,23,6,24,19,24,129,1,31,24,42,24,55,24,69,24,80,24,90,24,101,24,115,24,130,24,140,24,152,24,167,24,177,24,190,24,203,24,217,24,232,24,243,24,2,25,143,1,15,25,29,25,46,25,64,25,77,25,89,25,100,25,113,25,127,25,139,25,151,25,164,25,182,25,199,25,209,25,219,25,235,25,250,25,9,26,20,26,34,26,157,1,49,26,170,1,61,26,75,26,90,26,101,26,115,26,130,26,149,26,161,26,175,26,188,26,200,26,213,26,224,26,235,26,252,26,8,27,22,27,37,27,54,27,67,27,86,27,99,27,115,27,132,27,148,27,182,1,168,27,185,27,204,27,227,27,246,27,7,28,26,28,45,28,67,28,84,28,100,28,117,28,136,28,156,28,176,28,192,28,209,28,217,28,227,28,238,28,249,28,4,29,14,29,24,29,34,29,44,29,54,29,64,29,74,29,84,29,94,29,105,29,116,29,127,29,138,29,149,29,159,29,169,29,179,29,189,29,199,29,209,29,219,29,229,29,237,29,249,29,10,30,25,30,42,30,56,30,72,30,86,30,104,30,120,30,137,30,153,30,169,30,185,30,203,30,217,30,234,30,250,30,10,31,29,31,45,31,59,31,198,1,78,31,91,31,105,31,122,31,136,31,154,31,168,31,181,31,198,31,211,31,225,31,239,31,251,31,8,32,25,32,39,32,51,32,63,32,77,32,95,32,111,32,126,32,144,32,158,32,171,32,188,32,203,32,217,32,234,32,247,32,6,33,20,33,35,33,52,33,66,33,80,33,94,33,114,33,128,33,145,33,158,33,172,33,189,33,201,33,217,33,234,33,249,33,8,34,21,34,38,34,59,34,75,34,90,34,210,1,104,34,120,34,133,34,150,34,168,34,184,34,204,34,217,34,234,34,253,34,12,35,30,35,45,35,63,35,78,35,92,35,105,35,121,35,136,35,154,35,168,35,228,1,185,35,206,35,224,35,239,35,254,35,13,36,243,1,31,36,44,36,227,2,241,3,145,3,85,3,121,3,185,5,209,2,15,4,75,4,251,5,215,2,171,1,109,3,137,5,127,3,21,4,249,7,137,8,61,3,1,3,115,3,237,7,59,2,133,9,121,9,11,8,149,8,195,7,171,7,203,2,109,6,205,3,65,8,157,0,197,2,127,9,45,4,79,6,107,5,41,8,255,7,101,5,213,4,53,8,97,6,221,5,153,1,177,1,17,8,131,5,101,8,85,6,167,8,179,8,133,0,127,0,207,1,241,0,9,1,15,1,27,1,253,0,21,1,33,1,117,1,9,7,35,2,61,6,135,1,213,1,71,2,137,2,219,1,7,3,185,8,223,0,143,2,231,1,13,6,67,9,235,0,229,3,23,5,85,0,1,6,7,6,185,2,229,0,13,3,77,2,225,1,151,0,168,10,149,2,155,2,31,0,191,8,73,3,43,0,237,1,23,8,83,2,249,1,89,2,253,3,95,2,47,8,217,3,27,4,63,4,97,3,81,4,101,2,19,3,19,6,209,8,173,8,19,9,7,9,135,10,239,8,13,9,197,8,167,2,49,0,195,4,247,0,203,8,227,8,201,1,195,1,169,6,97,0,215,8,29,8,5,2,115,6,255,1,33,4,215,5,25,6,49,6,3,1,221,8,37,6,233,8,31,6,223,6,107,2,43,6,37,9,227,5,47,2,103,0,245,8,243,1,25,9,143,10,151,10,55,6,163,6,5,8,251,8,105,4,119,8,11,2,235,6,245,2,161,2,23,2,119,2,113,2,17,2,41,2,251,2,79,3,29,2,3,4,1,9,39,4,125,2,255,4,83,5,79,9,61,9,179,2,93,4,9,4,73,0,13,0,73,9,131,2,173,2,55,0,31,9,163,0,169,0,175,0,99,1,181,0,187,0,193,0,199,0,205,0,211,0,217,0,225,7,109,9,41,5,201,4,51,7,29,5,35,5,95,8,47,5,165,4,165,1,123,1,71,8,45,7,77,5,219,4,189,1,153,4,111,10,95,5,35,8,141,1,89,8,115,0,77,8,37,3,159,10,139,9,87,4,197,5,63,7,123,4,117,4,103,10,121,0,117,7,211,6,133,6,119,10,75,7,73,6,67,6,17,5,203,5,57,7,129,4,205,6,157,6,43,3,99,7,111,7,105,7,65,5,225,4,135,4,5,5,15,7,53,5,59,5,191,5,177,7,85,9,141,7,43,9,11,5,19,0,207,7,146,9,131,8,49,9,223,3,171,4,53,2,207,4,129,7,67,0,61,0,127,10,71,5,153,7,165,7,159,7,145,0,253,6,183,1,133,3,25,3,193,3,241,6,177,4,57,4,213,7,169,3,51,1,63,1,57,1,69,1,75,1,37,0,81,1,87,1,93,1,105,1,111,1,1,0,251,9,58,10,65,10,72,10,2,10,9,10,16,10,23,10,30,10,37,10,44,10,51,10,153,9,216,9,223,9,230,9,237,9,244,9,160,9,167,9,174,9,181,9,188,9,195,9,202,9,209,9,9,0,5,0,121,6,109,0,39,7,51,4,33,7,55,3,231,7,147,1,27,7,111,4,95,10,149,5,67,3,141,4,247,3,235,3,151,3,147,4,113,8,189,4,69,7,25,0,87,7,247,6,219,7,211,3,119,5,139,3,233,5,157,3,65,2,143,5,93,7,127,6,199,3,155,5,49,3,125,5,183,4,81,7,243,7,129,1,123,7,143,8,179,5,159,1,201,7,103,3,139,0,135,7,89,5,55,9,45,1,113,5,147,7,217,6,99,4,221,2,161,5,159,4,31,3,191,2,249,4,59,8,189,7,245,5,239,5,115,9,21,7,103,9,79,0,199,6,151,6,239,2,91,9,237,4,83,8,163,3,125,8,91,3,175,6,183,7,69,4,91,0,231,4,175,3,167,5,173,5,181,6,161,8,139,6,145,6,103,6,91,6,39,1,3,7,229,6,181,3,193,6,233,2,209,5,187,6,243,4,107,8,187,3,155,8,97,9,1,0,45,0,6,18,0,80,1,0,199,0,51,18,0,80,1,0,199,0,90,18,0,80,1,0,199,0,143,19,0,80,4,0,32,0,191,0,0,2,163,9,170,170,149,20,0,32,151,20,0,32,153,20,0,32,155,20,0,32,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,238,15,0,32,7,0,0,0,136,2,0,0,246,15,0,0,246,15,0,0,113,0,0,0,1,0,0,0,158,11,0,0,99,108,100,114,86,101,114,115,105,111,110,0,99,111,110,118,101,114,116,85,110,105,116,115,0,49,48,48,45,107,105,108,111,109,101,116,101,114,0,102,97,99,116,111,114,0,116,97,114,103,101,116,0,97,99,114,101,0,97,114,99,45,109,105,110,117,116,101,0,97,114,99,45,115,101,99,111,110,100,0,97,115,116,114,111,110,111,109,105,99,97,108,45,117,110,105,116,0,97,116,109,111,115,112,104,101,114,101,0,98,97,114,0,98,97,114,114,101,108,0,98,105,116,0,98,114,105,116,105,115,104,45,116,104,101,114,109,97,108,45,117,110,105,116,0,98,117,115,104,101,108,0,98,121,116,101,0,99,97,110,100,101,108,97,0,99,97,114,97,116,0,99,101,108,115,105,117,115,0,111,102,102,115,101,116,0,99,101,110,116,117,114,121,0,99,117,112,0,99,117,112,45,109,101,116,114,105,99,0,100,97,108,116,111,110,0,100,97,121,0,100,97,121,45,112,101,114,115,111,110,0,100,101,99,97,100,101,0,100,101,103,114,101,101,0,100,101,115,115,101,114,116,45,115,112,111,111,110,0,100,101,115,115,101,114,116,45,115,112,111,111,110,45,105,109,112,101,114,105,97,108,0,100,111,116,0,100,114,97,109,0,100,114,111,112,0,100,117,110,97,109,0,101,97,114,116,104,45,109,97,115,115,0,101,97,114,116,104,45,114,97,100,105,117,115,0,101,108,101,99,116,114,111,110,118,111,108,116,0,102,97,104,114,101,110,104,101,105,116,0,102,97,116,104,111,109,0,102,108,117,105,100,45,111,117,110,99,101,0,102,108,117,105,100,45,111,117,110,99,101,45,105,109,112,101,114,105,97,108,0,102,111,111,100,99,97,108,111,114,105,101,0,102,111,111,116,0,102,117,114,108,111,110,103,0,103,45,102,111,114,99,101,0,103,97,108,108,111,110,0,103,97,108,108,111,110,45,105,109,112,101,114,105,97,108,0,103,114,97,105,110,0,104,101,99,116,97,114,101,0,104,101,114,116,122,0,104,111,114,115,101,112,111,119,101,114,0,104,111,117,114,0,105,116,101,109,0,106,105,103,103,101,114,0,106,111,117,108,101,0,107,97,114,97,116,0,107,101,108,118,105,110,0,107,110,111,116,0,108,105,103,104,116,45,121,101,97,114,0,108,105,116,101,114,0,108,117,109,101,110,0,108,117,120,0,109,105,108,101,45,115,99,97,110,100,105,110,97,118,105,97,110,0,109,111,110,116,104,0,109,111,110,116,104,45,112,101,114,115,111,110,0,110,97,117,116,105,99,97,108,45,109,105,108,101,0,110,101,119,116,111,110,0,111,102,103,108,117,99,111,115,101,0,111,102,104,103,0,111,104,109,0,111,117,110,99,101,45,116,114,111,121,0,112,97,114,115,101,99,0,112,97,115,99,97,108,0,112,101,114,99,101,110,116,0,112,101,114,109,105,108,108,101,0,112,101,114,109,105,108,108,105,111,110,0,112,101,114,109,121,114,105,97,100,0,112,105,110,99,104,0,112,105,110,116,0,112,105,110,116,45,109,101,116,114,105,99,0,112,105,120,101,108,0,112,111,105,110,116,0,112,111,114,116,105,111,110,0,112,111,117,110,100,0,112,111,117,110,100,45,102,111,114,99,101,0,113,117,97,114,116,0,113,117,97,114,116,45,105,109,112,101,114,105,97,108,0,113,117,97,114,116,101,114,0,114,97,100,105,97,110,0,115,111,108,97,114,45,108,117,109,105,110,111,115,105,116,121,0,115,111,108,97,114,45,109,97,115,115,0,115,111,108,97,114,45,114,97,100,105,117,115,0,115,116,111,110,101,0,116,97,98,108,101,115,112,111,111,110,0,116,101,97,115,112,111,111,110,0,116,104,101,114,109,45,117,115,0,116,111,110,110,101,0,119,97,116,116,0,119,101,101,107,0,119,101,101,107,45,112,101,114,115,111,110,0,121,97,114,100,0,121,101,97,114,45,112,101,114,115,111,110,0,117,110,105,116,67,111,110,115,116,97,110,116,115,0,80,73,0,102,116,50,95,116,111,95,109,50,0,102,116,51,95,116,111,95,109,51,0,102,116,95,116,111,95,109,0,103,97,108,95,105,109,112,95,116,111,95,109,51,0,103,97,108,95,116,111,95,109,51,0,103,108,117,99,111,115,101,95,109,111,108,97,114,95,109,97,115,115,0,103,114,97,118,105,116,121,0,105,110,51,95,116,111,95,109,51,0,105,116,101,109,95,112,101,114,95,109,111,108,101,0,108,98,95,116,111,95,107,103,0,109,101,116,101,114,115,95,112,101,114,95,65,85,0,115,101,99,95,112,101,114,95,106,117,108,105,97,110,95,121,101,97,114,0,115,112,101,101,100,95,111,102,95,108,105,103,104,116,95,109,101,116,101,114,115,95,112,101,114,95,115,101,99,111,110,100,0,117,110,105,116,80,114,101,102,101,114,101,110,99,101,68,97,116,97,0,97,114,101,97,0,100,101,102,97,117,108,116,0,48,48,49,0,71,66,0,85,83,0,103,101,111,103,114,97,112,104,0,108,97,110,100,0,99,111,110,99,101,110,116,114,97,116,105,111,110,0,98,108,111,111,100,45,103,108,117,99,111,115,101,0,65,71,0,65,73,0,65,79,0,66,65,0,66,71,0,66,72,0,66,77,0,66,78,0,66,87,0,66,89,0,67,65,0,67,72,0,67,77,0,67,78,0,67,90,0,68,75,0,68,77,0,69,69,0,70,73,0,70,74,0,71,68,0,72,75,0,72,82,0,72,85,0,73,69,0,73,77,0,73,83,0,75,69,0,75,78,0,75,87,0,75,90,0,76,67,0,76,73,0,76,84,0,76,85,0,76,86,0,77,69,0,77,71,0,77,75,0,77,79,0,77,83,0,77,84,0,77,85,0,77,89,0,77,90,0,78,65,0,78,76,0,78,79,0,78,90,0,79,77,0,80,71,0,82,83,0,82,85,0,83,69,0,83,71,0,83,73,0,83,75,0,84,67,0,84,79,0,85,65,0,85,71,0,86,67,0,86,71,0,86,78,0,86,85,0,90,65,0,99,111,110,115,117,109,112,116,105,111,110,0,118,101,104,105,99,108,101,45,102,117,101,108,0,66,82,0,73,84,0,74,80,0,75,82,0,77,88,0,84,72,0,84,82,0,109,101,100,105,97,0,101,110,101,114,103,121,0,102,111,111,100,0,102,111,99,97,108,45,108,101,110,103,116,104,0,73,78,0,112,101,114,115,111,110,45,104,101,105,103,104,116,0,65,84,0,66,69,0,103,101,113,0,68,90,0,69,71,0,69,83,0,70,82,0,73,68,0,73,76,0,74,79,0,83,65,0,114,97,105,110,102,97,108,108,0,114,111,97,100,0,115,107,101,108,101,116,111,110,0,115,110,111,119,102,97,108,108,0,118,101,104,105,99,108,101,0,118,105,115,105,98,108,116,121,0,68,69,0,109,97,115,115,45,100,101,110,115,105,116,121,0,101,110,103,105,110,101,0,112,114,101,115,115,117,114,101,0,98,97,114,111,109,116,114,99,0,115,112,101,101,100,0,119,105,110,100,0,80,76,0,116,101,109,112,101,114,97,116,117,114,101,0,119,101,97,116,104,101,114,0,66,83,0,66,90,0,75,89,0,80,82,0,80,87,0,118,111,108,117,109,101,0,102,108,117,105,100,0,111,105,108,0,121,101,97,114,45,100,117,114,97,116,105,111,110,0,112,101,114,115,111,110,45,97,103,101,0,117,110,105,116,81,117,97,110,116,105,116,105,101,115,0,99,97,110,100,101,108,97,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,0,99,97,110,100,101,108,97,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,0,107,105,108,111,103,114,97,109,45,112,101,114,45,107,105,108,111,103,114,97,109,0,107,105,108,111,103,114,97,109,45,112,101,114,45,99,117,98,105,99,45,109,101,116,101,114,0,107,105,108,111,103,114,97,109,45,112,101,114,45,109,101,116,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,99,117,98,105,99,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,99,117,98,105,99,45,115,101,99,111,110,100,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,99,117,98,105,99,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,45,97,109,112,101,114,101,0,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,45,112,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,0,99,117,98,105,99,45,109,101,116,101,114,45,112,101,114,45,107,105,108,111,103,114,97,109,0,99,117,98,105,99,45,109,101,116,101,114,45,112,101,114,45,109,101,116,101,114,0,109,101,116,101,114,45,112,101,114,45,115,101,99,111,110,100,0,107,105,108,111,103,114,97,109,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,45,115,113,117,97,114,101,45,115,101,99,111,110,100,0,112,111,119,52,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,45,112,101,114,45,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,0,99,117,98,105,99,45,115,101,99,111,110,100,45,115,113,117,97,114,101,45,97,109,112,101,114,101,45,112,101,114,45,107,105,108,111,103,114,97,109,45,115,113,117,97,114,101,45,109,101,116,101,114,0,97,109,112,101,114,101,45,112,101,114,45,115,113,117,97,114,101,45,109,101,116,101,114,0,97,109,112,101,114,101,45,112,101,114,45,109,101,116,101,114,0,115,113,117,97,114,101,45,114,101,118,111,108,117,116,105,111,110,0,114,101,118,111,108,117,116,105,111,110,45,112,101,114,45,109,101,116,101,114,0,114,101,118,111,108,117,116,105,111,110,45,112,101,114,45,115,101,99,111,110,100,0,105,116,101,109,45,112,101,114,45,107,105,108,111,103,114,97,109,0,105,116,101,109,45,112,101,114,45,99,117,98,105,99,45,109,101,116,101,114,0,112,105,120,101,108,45,112,101,114,45,109,101,116,101,114,0,0,0,52,0,50,0,0,0,51,0,46,0,48,0,0,0,48,0,46,0,53,0,0,0,98,0,105,0,116,0,0,0,116,0,111,0,110,0,0,0,48,0,46,0,49,0,0,0,48,0,46,0,57,0,0,0,49,0,47,0,52,0,0,0,50,0,46,0,53,0,0,0,99,0,117,0,112,0,0,0,100,0,97,0,121,0,0,0,97,0,99,0,114,0,101,0,0,0,121,0,97,0,114,0,100,0,0,0,105,0,116,0,101,0,109,0,0,0,49,0,47,0,49,0,50,0,0,0,49,0,47,0,50,0,52,0,0,0,49,0,56,0,53,0,50,0,0,0,52,0,49,0,56,0,52,0,0,0,97,0,114,0,101,0,97,0,0,0,100,0,111,0,115,0,101,0,0,0,112,0,105,0,110,0,116,0,0,0,48,0,46,0,48,0,48,0,49,0,0,0,49,0,48,0,48,0,46,0,48,0,0,0,51,0,48,0,48,0,46,0,48,0,0,0,56,0,54,0,52,0,48,0,48,0,0,0,112,0,105,0,120,0,101,0,108,0,0,0,49,0,47,0,49,0,48,0,48,0,0,0,49,0,47,0,51,0,54,0,48,0,0,0,52,0,46,0,49,0,56,0,52,0,0,0,102,0,111,0,114,0,99,0,101,0,0,0,109,0,111,0,110,0,116,0,104,0,0,0,113,0,117,0,97,0,114,0,116,0,0,0,115,0,112,0,101,0,101,0,100,0,0,0,116,0,111,0,110,0,110,0,101,0,0,0,107,0,101,0,108,0,118,0,105,0,110,0,0,0,49,0,47,0,49,0,48,0,48,0,48,0,0,0,49,0,48,0,48,0,48,0,48,0,48,0,0,0,54,0,48,0,52,0,56,0,48,0,48,0,0,0,48,0,46,0,48,0,48,0,48,0,50,0,0,0,48,0,46,0,48,0,48,0,48,0,53,0,0,0,48,0,46,0,51,0,48,0,52,0,56,0,0,0,49,0,47,0,50,0,42,0,80,0,73,0,0,0,49,0,48,0,49,0,51,0,50,0,53,0,0,0,50,0,55,0,51,0,46,0,49,0,53,0,0,0,98,0,97,0,114,0,114,0,101,0,108,0,0,0,101,0,110,0,101,0,114,0,103,0,121,0,0,0,109,0,105,0,110,0,117,0,116,0,101,0,0,0,112,0,111,0,114,0,116,0,105,0,111,0,110,0,0,0,49,0,47,0,49,0,48,0,48,0,48,0,48,0,0,0,99,0,101,0,108,0,115,0,105,0,117,0,115,0,0,0,104,0,101,0,99,0,116,0,97,0,114,0,101,0,0,0,48,0,46,0,48,0,48,0,48,0,50,0,53,0,0,0,57,0,46,0,56,0,48,0,54,0,54,0,53,0,0,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,0,0,100,0,105,0,103,0,105,0,116,0,97,0,108,0,0,0,118,0,111,0,108,0,116,0,97,0,103,0,101,0,0,0,109,0,105,0,108,0,108,0,105,0,98,0,97,0,114,0,0,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,0,0,49,0,47,0,51,0,54,0,48,0,42,0,54,0,48,0,0,0,49,0,56,0,48,0,46,0,49,0,53,0,53,0,55,0,0,0,51,0,49,0,53,0,53,0,55,0,54,0,48,0,48,0,0,0,54,0,46,0,51,0,55,0,56,0,49,0,69,0,54,0,0,0,103,0,105,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,103,0,114,0,97,0,112,0,104,0,105,0,99,0,115,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,0,0,109,0,101,0,103,0,97,0,119,0,97,0,116,0,116,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,0,0,116,0,101,0,97,0,115,0,112,0,111,0,111,0,110,0,0,0,105,0,110,0,99,0,104,0,45,0,111,0,102,0,104,0,103,0,0,0,109,0,105,0,99,0,114,0,111,0,103,0,114,0,97,0,109,0,0,0,49,0,56,0,53,0,50,0,47,0,51,0,54,0,48,0,48,0,0,0,50,0,57,0,57,0,55,0,57,0,50,0,52,0,53,0,56,0,0,0,49,0,47,0,49,0,48,0,48,0,48,0,48,0,48,0,48,0,0,0,49,0,48,0,53,0,52,0,56,0,48,0,52,0,48,0,48,0,0,0,50,0,50,0,57,0,56,0,46,0,51,0,53,0,47,0,57,0,0,0,51,0,46,0,56,0,50,0,56,0,69,0,43,0,50,0,54,0,0,0,54,0,57,0,53,0,55,0,48,0,48,0,48,0,48,0,48,0,0,0,102,0,114,0,101,0,113,0,117,0,101,0,110,0,99,0,121,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,51,0,0,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,0,0,109,0,105,0,108,0,108,0,105,0,119,0,97,0,116,0,116,0,0,0,116,0,121,0,112,0,101,0,119,0,105,0,100,0,116,0,104,0,0,0,102,0,97,0,104,0,114,0,101,0,110,0,104,0,101,0,105,0,116,0,0,0,114,0,101,0,118,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,0,0,104,0,111,0,114,0,115,0,101,0,112,0,111,0,119,0,101,0,114,0,0,0,109,0,105,0,108,0,108,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,99,0,117,0,98,0,105,0,99,0,45,0,102,0,111,0,111,0,116,0,0,0,99,0,117,0,98,0,105,0,99,0,45,0,105,0,110,0,99,0,104,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,48,0,46,0,48,0,48,0,52,0,53,0,52,0,54,0,48,0,57,0,0,0,48,0,46,0,48,0,51,0,49,0,49,0,48,0,51,0,52,0,56,0,0,0,48,0,46,0,52,0,53,0,51,0,53,0,57,0,50,0,51,0,55,0,0,0,53,0,46,0,57,0,55,0,50,0,50,0,69,0,43,0,50,0,52,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,47,0,49,0,50,0,0,0,109,0,101,0,103,0,97,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,110,0,97,0,110,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,114,0,101,0,115,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,0,0,116,0,97,0,98,0,108,0,101,0,115,0,112,0,111,0,111,0,110,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,105,0,108,0,101,0,0,0,109,0,105,0,99,0,114,0,111,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,54,0,46,0,54,0,55,0,52,0,48,0,56,0,69,0,45,0,49,0,49,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,102,0,111,0,111,0,116,0,0,0,104,0,101,0,99,0,116,0,111,0,112,0,97,0,115,0,99,0,97,0,108,0,0,0,115,0,111,0,108,0,105,0,100,0,45,0,97,0,110,0,103,0,108,0,101,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,54,0,54,0,48,0,0,0,49,0,46,0,57,0,56,0,56,0,52,0,55,0,69,0,43,0,51,0,48,0,0,0,49,0,47,0,51,0,54,0,48,0,42,0,54,0,48,0,42,0,54,0,48,0,0,0,99,0,111,0,110,0,115,0,117,0,109,0,112,0,116,0,105,0,111,0,110,0,0,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,102,0,111,0,111,0,100,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,32,0,42,0,32,0,54,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,47,0,56,0,54,0,52,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,52,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,56,0,0,0,105,0,108,0,108,0,117,0,109,0,105,0,110,0,97,0,110,0,99,0,101,0,0,0,107,0,105,0,108,0,111,0,99,0,97,0,108,0,111,0,114,0,105,0,101,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,42,0,49,0,52,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,47,0,49,0,54,0,0,0,109,0,105,0,108,0,108,0,105,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,116,0,101,0,109,0,112,0,101,0,114,0,97,0,116,0,117,0,114,0,101,0,0,0,119,0,97,0,118,0,101,0,45,0,110,0,117,0,109,0,98,0,101,0,114,0,0,0,121,0,101,0,97,0,114,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,52,0,50,0,42,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,49,0,46,0,54,0,48,0,50,0,49,0,55,0,55,0,69,0,45,0,49,0,57,0,0,0,49,0,52,0,57,0,53,0,57,0,55,0,56,0,55,0,48,0,55,0,48,0,48,0,0,0,97,0,99,0,99,0,101,0,108,0,101,0,114,0,97,0,116,0,105,0,111,0,110,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,53,0,50,0,56,0,48,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,0,0,109,0,97,0,115,0,115,0,45,0,100,0,101,0,110,0,115,0,105,0,116,0,121,0,0,0,102,0,111,0,111,0,116,0,45,0,97,0,110,0,100,0,45,0,105,0,110,0,99,0,104,0,0,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,121,0,101,0,97,0,114,0,45,0,100,0,117,0,114,0,97,0,116,0,105,0,111,0,110,0,0,0,107,0,105,0,108,0,111,0,119,0,97,0,116,0,116,0,45,0,104,0,111,0,117,0,114,0,0,0,50,0,51,0,49,0,42,0,105,0,110,0,51,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,97,0,116,0,105,0,111,0,110,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,50,0,53,0,54,0,0,0,105,0,116,0,101,0,109,0,95,0,112,0,101,0,114,0,95,0,109,0,111,0,108,0,101,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,42,0,50,0,48,0,48,0,48,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,47,0,55,0,48,0,48,0,48,0,0,0,108,0,117,0,109,0,105,0,110,0,111,0,117,0,115,0,45,0,102,0,108,0,117,0,120,0,0,0,109,0,97,0,103,0,110,0,101,0,116,0,105,0,99,0,45,0,102,0,108,0,117,0,120,0,0,0,109,0,97,0,115,0,115,0,45,0,102,0,114,0,97,0,99,0,116,0,105,0,111,0,110,0,0,0,109,0,101,0,116,0,101,0,114,0,115,0,95,0,112,0,101,0,114,0,95,0,65,0,85,0,0,0,54,0,46,0,48,0,50,0,50,0,49,0,52,0,48,0,55,0,54,0,69,0,43,0,50,0,51,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,97,0,110,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,0,0,115,0,116,0,111,0,110,0,101,0,45,0,97,0,110,0,100,0,45,0,112,0,111,0,117,0,110,0,100,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,101,0,116,0,101,0,114,0,45,0,111,0,102,0,104,0,103,0,0,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,0,0,49,0,51,0,53,0,57,0,53,0,46,0,49,0,42,0,103,0,114,0,97,0,118,0,105,0,116,0,121,0,0,0,115,0,112,0,101,0,99,0,105,0,102,0,105,0,99,0,45,0,118,0,111,0,108,0,117,0,109,0,101,0,0,0,99,0,117,0,114,0,114,0,101,0,110,0,116,0,45,0,100,0,101,0,110,0,115,0,105,0,116,0,121,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,104,0,97,0,114,0,103,0,101,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,52,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,42,0,56,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,42,0,52,0,56,0,0,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,99,0,117,0,98,0,105,0,99,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,117,0,114,0,114,0,101,0,110,0,116,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,42,0,49,0,50,0,56,0,0,0,115,0,117,0,98,0,115,0,116,0,97,0,110,0,99,0,101,0,45,0,97,0,109,0,111,0,117,0,110,0,116,0,0,0,105,0,116,0,101,0,109,0,45,0,112,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,0,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,49,0,46,0,52,0,57,0,50,0,52,0,49,0,56,0,48,0,56,0,53,0,54,0,48,0,69,0,45,0,49,0,48,0,0,0,50,0,49,0,53,0,48,0,46,0,52,0,50,0,42,0,105,0,110,0,51,0,95,0,116,0,111,0,95,0,109,0,51,0,0,0,102,0,116,0,50,0,95,0,116,0,111,0,95,0,109,0,50,0,32,0,42,0,32,0,52,0,51,0,53,0,54,0,48,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,48,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,42,0,51,0,47,0,49,0,50,0,56,0,42,0,50,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,42,0,49,0,50,0,56,0,0,0,103,0,97,0,108,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,56,0,42,0,53,0,55,0,54,0,0,0,109,0,105,0,108,0,101,0,45,0,115,0,99,0,97,0,110,0,100,0,105,0,110,0,97,0,118,0,105,0,97,0,110,0,0,0,109,0,105,0,110,0,117,0,116,0,101,0,45,0,97,0,110,0,100,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,104,0,111,0,117,0,114,0,0,0,52,0,46,0,49,0,56,0,52,0,42,0,50,0,50,0,54,0,55,0,46,0,57,0,54,0,49,0,56,0,53,0,47,0,57,0,0,0,99,0,111,0,110,0,99,0,101,0,110,0,116,0,114,0,97,0,116,0,105,0,111,0,110,0,45,0,109,0,97,0,115,0,115,0,0,0,102,0,116,0,51,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,50,0,42,0,49,0,50,0,42,0,49,0,50,0,0,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,32,0,42,0,32,0,103,0,114,0,97,0,118,0,105,0,116,0,121,0,0,0,108,0,117,0,109,0,105,0,110,0,111,0,117,0,115,0,45,0,105,0,110,0,116,0,101,0,110,0,115,0,105,0,116,0,121,0,0,0,109,0,97,0,103,0,110,0,101,0,116,0,105,0,99,0,45,0,105,0,110,0,100,0,117,0,99,0,116,0,105,0,111,0,110,0,0,0,109,0,105,0,108,0,108,0,105,0,109,0,111,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,108,0,105,0,116,0,101,0,114,0,0,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,112,0,114,0,101,0,115,0,115,0,117,0,114,0,101,0,45,0,112,0,101,0,114,0,45,0,108,0,101,0,110,0,103,0,116,0,104,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,105,0,110,0,100,0,117,0,99,0,116,0,97,0,110,0,99,0,101,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,114,0,101,0,115,0,105,0,115,0,116,0,97,0,110,0,99,0,101,0,0,0,109,0,101,0,116,0,101,0,114,0,45,0,97,0,110,0,100,0,45,0,99,0,101,0,110,0,116,0,105,0,109,0,101,0,116,0,101,0,114,0,0,0,105,0,116,0,101,0,109,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,97,0,112,0,97,0,99,0,105,0,116,0,97,0,110,0,99,0,101,0,0,0,101,0,108,0,101,0,99,0,116,0,114,0,105,0,99,0,45,0,99,0,111,0,110,0,100,0,117,0,99,0,116,0,97,0,110,0,99,0,101,0,0,0,102,0,108,0,117,0,105,0,100,0,45,0,111,0,117,0,110,0,99,0,101,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,103,0,97,0,108,0,95,0,105,0,109,0,112,0,95,0,116,0,111,0,95,0,109,0,51,0,47,0,49,0,54,0,42,0,49,0,50,0,56,0,0,0,112,0,114,0,101,0,99,0,105,0,115,0,105,0,111,0,110,0,45,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,47,0,49,0,0,0,52,0,49,0,49,0,53,0,53,0,55,0,57,0,56,0,55,0,32,0,47,0,32,0,49,0,51,0,49,0,48,0,48,0,50,0,57,0,55,0,54,0,0,0,114,0,101,0,118,0,111,0,108,0,117,0,116,0,105,0,111,0,110,0,45,0,112,0,101,0,114,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,112,0,114,0,101,0,99,0,105,0,115,0,105,0,111,0,110,0,45,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,47,0,49,0,48,0,0,0,112,0,114,0,101,0,99,0,105,0,115,0,105,0,111,0,110,0,45,0,105,0,110,0,99,0,114,0,101,0,109,0,101,0,110,0,116,0,47,0,53,0,48,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,42,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,0,0,108,0,105,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,49,0,48,0,48,0,45,0,107,0,105,0,108,0,111,0,109,0,101,0,116,0,101,0,114,0,0,0,109,0,97,0,103,0,110,0,101,0,116,0,105,0,99,0,45,0,102,0,105,0,101,0,108,0,100,0,45,0,115,0,116,0,114,0,101,0,110,0,103,0,116,0,104,0,0,0,109,0,105,0,108,0,101,0,45,0,112,0,101,0,114,0,45,0,103,0,97,0,108,0,108,0,111,0,110,0,45,0,105,0,109,0,112,0,101,0,114,0,105,0,97,0,108,0,0,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,109,0,101,0,116,0,101,0,114,0,115,0,95,0,112,0,101,0,114,0,95,0,65,0,85,0,42,0,54,0,48,0,42,0,54,0,48,0,42,0,49,0,56,0,48,0,47,0,80,0,73,0,0,0,112,0,111,0,117,0,110,0,100,0,45,0,102,0,111,0,114,0,99,0,101,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,105,0,110,0,99,0,104,0,0,0,121,0,101,0,97,0,114,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,45,0,97,0,110,0,100,0,45,0,109,0,111,0,110,0,116,0,104,0,45,0,112,0,101,0,114,0,115,0,111,0,110,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,109,0,105,0,108,0,108,0,105,0,103,0,114,0,97,0,109,0,45,0,111,0,102,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,45,0,112,0,101,0,114,0,45,0,100,0,101,0,99,0,105,0,108,0,105,0,116,0,101,0,114,0,0,0,102,0,116,0,95,0,116,0,111,0,95,0,109,0,32,0,42,0,32,0,108,0,98,0,95,0,116,0,111,0,95,0,107,0,103,0,32,0,42,0,32,0,103,0,114,0,97,0,118,0,105,0,116,0,121,0,32,0,42,0,32,0,53,0,53,0,48,0,0,0,99,0,97,0,110,0,100,0,101,0,108,0,97,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,0,0,49,0,48,0,48,0,48,0,42,0,105,0,116,0,101,0,109,0,95,0,112,0,101,0,114,0,95,0,109,0,111,0,108,0,101,0,47,0,103,0,108,0,117,0,99,0,111,0,115,0,101,0,95,0,109,0,111,0,108,0,97,0,114,0,95,0,109,0,97,0,115,0,115,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,112,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,0,0,45,220,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,45,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,52,220,115,0,112,0,101,0,101,0,100,0,95,0,111,0,102,0,95,0,108,0,105,0,103,0,104,0,116,0,95,0,109,0,101,0,116,0,101,0,114,0,115,0,95,0,112,0,101,0,114,0,95,0,115,0,101,0,99,0,111,0,110,0,100,0,42,0,115,0,101,0,99,0,95,0,112,0,101,0,114,0,95,0,106,0,117,0,108,0,105,0,97,0,110,0,95,0,121,0,101,0,97,0,114,0,0,0,52,220,107,0,105,0,108,0,111,0,103,0,114,0,97,0,109,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,109,0,101,0,116,0,101,0,114,0,45,0,112,0,101,0,114,0,45,0,99,0,117,0,98,0,105,0,99,0,45,0,115,0,101,0,99,0,111,0,110,0,100,0,45,0,115,0,113,0,117,0,97,0,114,0,101,0,45,0,97,0,109,0,112,0,101,0,114,0,101,0,0,0,2,0,71,0,78,0,186,0,228,7,2,0,71,0,78,0,191,6,155,10,2,0,71,0,78,0,25,3,217,11,2,0,71,0,78,0,97,1,82,2,2,0,71,0,78,0,87,3,82,2,2,0,71,0,78,0,68,5,228,7,2,0,71,0,78,0,228,0,251,9,2,0,71,0,78,0,186,0,251,9,2,0,71,0,78,0,23,4,68,8,2,0,71,0,78,0,25,3,12,0,2,0,71,0,78,0,80,7,245,10,2,0,71,0,78,0,173,6,68,8,2,0,71,0,78,0,225,1,12,0,2,0,71,0,78,0,136,0,245,10,2,0,71,0,78,0,25,3,55,1,2,0,71,0,78,0,200,0,128,6,3,0,71,0,211,0,78,0,25,3,235,0,172,0,2,0,71,0,78,0,126,0,165,11,2,0,71,0,78,0,88,4,68,8,2,0,71,0,78,0,39,1,68,8,2,0,71,0,78,0,155,6,245,10,2,0,71,0,78,0,112,0,8,3,2,0,71,0,78,0,112,0,8,3,2,0,71,0,78,0,250,8,165,11,2,0,71,0,78,0,130,0,82,2,2,0,71,0,78,0,85,6,68,8,2,0,71,0,78,0,143,8,68,8,2,0,71,0,78,0,25,3,118,0,2,0,71,0,78,0,241,5,68,8,2,0,71,0,78,0,7,7,68,8,2,0,71,0,78,0,181,0,155,10,2,0,71,0,78,0,181,2,128,6,2,0,71,0,78,0,124,1,228,7,2,0,71,0,78,0,36,4,245,10,2,0,71,0,78,0,25,3,56,0,3,0,71,0,211,0,78,0,95,7,247,1,172,0,2,0,71,0,78,0,135,3,228,7,2,0,71,0,78,0,212,4,68,8,2,0,71,0,78,0,209,6,68,8,2,0,71,0,78,0,74,0,245,10,2,0,71,0,78,0,36,9,228,7,2,0,71,0,78,0,63,3,228,7,2,0,71,0,78,0,169,5,37,10,2,0,71,0,78,0,26,4,68,8,2,0,71,0,78,0,198,4,68,8,2,0,71,0,78,0,12,5,128,6,2,0,71,0,78,0,94,0,128,6,2,0,71,0,78,0,17,1,155,10,2,0,71,0,78,0,25,3,208,8,2,0,71,0,78,0,95,10,206,10,2,0,71,0,78,0,212,1,8,3,2,0,71,0,78,0,192,2,228,7,2,0,71,0,78,0,25,3,54,0,2,0,71,0,78,0,227,6,68,8,2,0,71,0,78,0,25,3,245,10,2,0,71,0,78,0,64,0,7,1,2,0,71,0,78,0,25,3,172,0,2,0,71,0,78,0,25,3,128,6,2,0,71,0,78,0,207,1,17,6,2,0,71,0,78,0,116,11,228,7,2,0,71,0,78,0,94,0,68,8,2,0,71,0,78,0,25,3,130,10,2,0,71,0,78,0,25,3,117,9,2,0,71,0,78,0,25,3,228,7,2,0,71,0,78,0,75,4,228,7,2,0,71,0,78,0,17,1,228,7,2,0,71,0,78,0,72,3,8,3,2,0,71,0,78,0,240,4,54,0,2,0,71,0,78,0,59,0,165,11,2,0,71,0,78,0,59,0,165,11,2,0,71,0,78,0,69,0,228,7,2,0,71,0,78,0,25,3,28,10,2,0,71,0,78,0,168,10,119,6,2,0,71,0,78,0,161,5,29,11,2,0,71,0,78,0,25,3,170,11,2,0,71,0,78,0,219,3,128,6,2,0,71,0,78,0,159,2,128,6,2,0,71,0,78,0,167,9,228,7,2,0,71,0,78,0,25,3,251,9,2,0,71,0,78,0,124,0,7,1,2,0,71,0,78,0,179,0,7,1,2,0,71,0,78,0,227,1,7,1,2,0,71,0,78,0,15,1,7,1,2,0,71,0,78,0,245,6,68,8,2,0,71,0,78,0,171,3,68,8,2,0,71,0,78,0,207,0,68,8,2,0,71,0,78,0,25,3,118,0,2,0,71,0,78,0,147,3,228,7,2,0,71,0,78,0,25,3,7,1,2,0,71,0,78,0,151,1,128,6,2,0,71,0,78,0,137,7,28,10,2,0,71,0,78,0,159,3,68,8,2,0,71,0,78,0,225,5,68,8,2,0,71,0,78,0,28,0,165,11,2,0,71,0,78,0,221,0,82,2,2,0,71,0,78,0,25,3,82,2,2,0,71,0,78,0,25,3,8,3,2,0,71,0,78,0,1,2,206,10,2,0,71,0,78,0,75,3,128,6,2,0,71,0,78,0,11,2,228,7,2,0,71,0,78,0,207,3,128,6,2,0,71,0,78,0,226,4,68,8,2,0,71,0,78,0,1,6,68,8,2,0,71,0,78,0,237,1,245,10,2,0,71,0,78,0,254,4,128,6,2,0,71,0,78,0,181,0,128,6,2,0,71,0,78,0,25,3,69,11,2,0,71,0,78,0,25,3,206,10,2,0,71,0,78,0,193,0,8,3,2,0,71,0,78,0,193,0,8,3,2,0,71,0,78,0,31,2,228,7,2,0,71,0,78,0,25,3,165,11,2,0,71,0,78,0,25,3,165,11,15,0,122,5,181,3,184,3,194,3,204,3,212,3,226,3,236,3,255,3,7,4,17,4,31,4,40,4,54,4,74,4,15,3,186,8,28,9,20,9,214,0,148,2,170,4,106,1,47,1,118,7,82,5,170,2,49,4,115,1,217,1,1,0,172,0,34,6,1,0,172,0,31,1,1,0,172,0,155,10,1,0,172,0,137,6,1,0,172,0,247,2,1,0,172,0,44,0,1,0,172,0,27,3,1,0,172,0,210,9,1,0,172,0,247,2,1,0,172,0,44,0,1,0,172,0,27,3,1,0,172,0,210,9,1,0,172,0,34,6,1,0,172,0,247,2,1,0,172,0,247,2,1,0,172,0,31,1,1,0,172,0,44,0,1,0,172,0,44,0,1,0,172,0,61,10,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,194,7,1,0,172,0,59,8,1,0,172,0,44,9,1,0,172,0,44,9,1,0,172,0,214,7,1,0,172,0,92,9,1,0,172,0,92,9,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,214,7,1,0,172,0,145,5,1,0,172,0,40,0,1,0,172,0,165,4,1,0,172,0,0,1,1,0,172,0,8,3,1,0,172,0,231,3,1,0,172,0,3,3,1,0,172,0,214,2,1,0,172,0,43,7,1,0,172,0,8,3,1,0,172,0,156,4,1,0,172,0,195,3,1,0,172,0,123,3,1,0,172,0,224,7,1,0,172,0,228,7,1,0,172,0,144,6,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,217,9,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,217,9,1,0,172,0,137,2,1,0,172,0,144,6,1,0,172,0,217,9,1,0,172,0,217,9,1,0,172,0,217,9,1,0,172,0,217,9,1,0,172,0,144,6,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,1,0,172,0,38,8,2,0,233,5,172,0,4,0,114,4,1,0,172,0,217,9,1,0,172,0,38,8,1,0,172,0,137,2,1,0,172,0,144,6,1,0,172,0,217,9,2,0,233,5,172,0,24,0,224,7,3,0,233,5,19,6,172,0,106,0,253,8,228,7,3,0,233,5,19,6,172,0,250,8,230,8,228,7,2,0,19,6,172,0,164,8,228,7,2,0,233,5,172,0,8,0,254,2,3,0,233,5,19,6,172,0,100,0,253,8,49,0,3,0,233,5,19,6,172,0,250,8,230,8,49,0,2,0,19,6,172,0,164,8,49,0,1,0,172,0,25,7,1,0,172,0,224,7,3,0,233,5,19,6,172,0,106,0,253,8,228,7,3,0,233,5,19,6,172,0,250,8,230,8,228,7,2,0,19,6,172,0,164,8,228,7,2,0,233,5,172,0,8,0,254,2,3,0,233,5,19,6,172,0,100,0,253,8,34,3,3,0,233,5,19,6,172,0,250,8,230,8,34,3,2,0,19,6,172,0,164,8,34,3,1,0,172,0,144,6,1,0,172,0,217,9,1,0,172,0,228,7,1,0,172,0,114,4,1,0,172,0,114,4,2,0,233,5,172,0,20,0,224,7,1,0,172,0,228,7,1,0,172,0,228,7,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,228,7,1,0,172,0,254,2,1,0,172,0,34,3,1,0,172,0,166,0,1,0,172,0,128,6,1,0,172,0,202,1,1,0,172,0,41,2,1,0,172,0,197,1,1,0,172,0,16,0,1,0,172,0,123,5,1,0,172,0,107,5,1,0,172,0,16,0,1,0,172,0,123,5,1,0,172,0,107,5,1,0,172,0,128,6,1,0,172,0,202,1,1,0,172,0,113,5,1,0,172,0,97,5,1,0,172,0,97,5,1,0,172,0,123,5,1,0,172,0,97,5,1,0,172,0,142,9,1,0,172,0,133,1,1,0,172,0,160,1,1,0,172,0,88,1,1,0,172,0,92,1,1,0,172,0,51,2,1,0,172,0,88,1,1,0,172,0,93,2,1,0,172,0,93,2,1,0,172,0,39,3,1,0,172,0,79,1,1,0,172,0,79,1,1,0,172,0,79,1,1,0,172,0,79,1,1,0,172,0,187,1,1,0,172,0,129,5,1,0,172,0,129,5,1,0,172,0,79,1,1,0,172,0,187,1,1,0,172,0,203,2,1,0,172,0,44,3,1,0,172,0,194,9,1,0,172,0,194,9,1,0,172,0,61,7,1,0,172,0,128,4,1,0,172,0,128,4,1,0,172,0,61,7,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,17,6,1,0,172,0,128,4,1,0,172,0,23,1,1,0,172,0,71,2,1,0,172,0,23,1,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,71,2,1,0,172,0,68,8,1,0,172,0,51,6,1,0,172,0,115,2,1,0,172,0,126,2,1,0,172,0,115,2,1,0,172,0,126,2,1,0,172,0,109,2,1,0,172,0,104,2,1,0,172,0,101,9,1,0,172,0,122,8,1,0,172,0,154,5,1,0,172,0,154,0,1,0,172,0,89,0,1,0,172,0,36,0,1,0,172,0,111,3,1,0,172,0,236,2,1,0,172,0,178,1,1,0,172,0,242,0,1,0,172,0,109,2,1,0,172,0,154,5,1,0,172,0,165,11,1,0,172,0,148,0,2,0,233,5,172,0,32,0,11,4,1,0,172,0,222,9,1,0,172,0,238,9,1,0,189,0,156,7,1,0,201,6,183,3,1,0,226,6,26,5,1,0,194,8,201,10,1,0,8,7,54,5,1,0,30,7,101,4,1,0,55,7,169,1,1,0,88,7,175,7,1,0,122,7,142,0,1,0,155,7,98,2,1,0,194,7,71,1,1,0,240,7,18,8,1,0,37,8,249,0,1,0,77,8,40,5,1,0,124,8,254,7,1,0,4,10,186,5,1,0,178,8,177,5,1,0,203,8,99,3,1,0,251,6,79,0,1,0,46,8,84,0,1,0,65,0,247,7,1,0,225,8,160,0,1,0,131,7,62,4,1,0,242,8,234,7,1,0,26,9,80,8,1,0,78,9,101,8,1,0,100,4,147,4,1,0,110,8,209,5,1,0,69,4,142,4,1,0,171,8,68,6,1,0,131,9,193,5,1,0,155,9,68,9,1,0,26,2,243,3,1,0,172,9,51,3,1,0,179,9,57,3,1,0,190,9,255,3,1,0,211,9,21,2,1,0,2,2,102,6,1,0,233,9,99,7,1,0,251,9,184,4,1,0,240,2,7,1,1,0,152,0,63,1,1,0,228,2,142,1,1,0,16,10,225,2,1,0,4,2,61,2,113,0,57,0,85,0,171,8,90,0,101,0,112,0,130,0,141,0,145,0,152,0,156,0,177,0,184,0,170,1,189,0,197,0,203,0,218,0,226,0,230,0,241,0,248,0,252,0,7,1,14,1,21,1,35,1,58,1,62,1,67,1,72,1,78,1,89,1,102,1,4,2,115,1,126,1,133,1,145,1,166,1,178,1,183,1,191,1,199,1,206,1,222,1,198,8,228,1,236,1,242,1,253,1,206,2,2,2,7,2,14,2,20,2,26,2,194,8,33,2,38,2,49,2,55,2,61,2,65,0,111,2,65,2,94,0,26,4,83,2,89,2,102,2,116,2,123,2,133,2,138,2,139,1,142,2,153,2,160,2,167,2,175,2,184,2,195,2,205,2,211,2,216,2,228,2,234,2,240,2,248,2,254,2,10,3,16,3,31,3,39,3,179,9,100,4,46,3,63,3,74,3,87,3,93,3,104,3,113,3,119,2,122,3,110,1,128,3,133,3,138,3,150,3,69,4,155,3,224,11,0,80,229,11,0,80,234,11,0,80,239,11,0,80,244,11,0,80,249,11,0,80,254,11,0,80,3,12,0,80,8,12,0,80,13,12,0,80,18,12,0,80,23,12,0,80,28,12,0,80,33,12,0,80,38,12,0,80,43,12,0,80,48,12,0,80,55,12,0,80,60,12,0,80,65,12,0,80,70,12,0,80,75,12,0,80,80,12,0,80,85,12,0,80,90,12,0,80,95,12,0,80,100,12,0,80,105,12,0,80,110,12,0,80,115,12,0,80,120,12,0,80,125,12,0,80,130,12,0,80,135,12,0,80,140,12,0,80,145,12,0,80,152,12,0,80,157,12,0,80,162,12,0,80,167,12,0,80,172,12,0,80,177,12,0,80,182,12,0,80,187,12,0,80,192,12,0,80,197,12,0,80,202,12,0,80,207,12,0,80,212,12,0,80,217,12,0,80,222,12,0,80,227,12,0,80,232,12,0,80,237,12,0,80,242,12,0,80,247,12,0,80,252,12,0,80,1,13,0,80,6,13,0,80,11,13,0,80,16,13,0,80,21,13,0,80,26,13,0,80,31,13,0,80,36,13,0,80,41,13,0,80,46,13,0,80,51,13,0,80,56,13,0,80,61,13,0,80,66,13,0,80,71,13,0,80,76,13,0,80,81,13,0,80,86,13,0,80,91,13,0,80,96,13,0,80,101,13,0,80,106,13,0,80,111,13,0,80,116,13,0,80,121,13,0,80,126,13,0,80,131,13,0,80,136,13,0,80,141,13,0,80,146,13,0,80,151,13,0,80,156,13,0,80,161,13,0,80,166,13,0,80,171,13,0,80,176,13,0,80,181,13,0,80,186,13,0,80,191,13,0,80,196,13,0,80,201,13,0,80,206,13,0,80,211,13,0,80,216,13,0,80,221,13,0,80,226,13,0,80,231,13,0,80,236,13,0,80,241,13,0,80,246,13,0,80,251,13,0,80,0,14,0,80,5,14,0,80,10,14,0,80,15,14,0,80,20,14,0,80,4,0,0,0,56,14,0,80,59,14,0,80,62,14,0,80,65,14,0,80,4,0,0,0,68,14,0,80,71,14,0,80,74,14,0,80,77,14,0,80,4,0,0,0,80,14,0,80,83,14,0,80,86,14,0,80,89,14,0,80,3,0,139,4,143,4,146,4,72,12,0,128,77,12,0,128,82,12,0,128,1,0,0,0,92,14,0,80,1,0,0,0,95,14,0,80,1,0,0,0,98,14,0,80,3,0,139,4,143,4,146,4,92,12,0,128,94,12,0,128,96,12,0,128,1,0,0,0,101,14,0,80,1,0,0,0,104,14,0,80,1,0,0,0,107,14,0,80,3,0,139,4,143,4,146,4,103,12,0,128,105,12,0,128,107,12,0,128,3,0,131,4,149,4,158,4,87,12,0,32,98,12,0,32,109,12,0,32,1,0,0,0,110,14,0,80,1,0,0,0,113,14,0,80,1,0,0,0,116,14,0,80,1,0,0,0,119,14,0,80,1,0,0,0,122,14,0,80,1,0,0,0,125,14,0,80,1,0,0,0,128,14,0,80,1,0,0,0,131,14,0,80,1,0,0,0,134,14,0,80,1,0,0,0,137,14,0,80,1,0,0,0,140,14,0,80,1,0,0,0,143,14,0,80,1,0,0,0,146,14,0,80,1,0,0,0,149,14,0,80,1,0,0,0,152,14,0,80,1,0,0,0,155,14,0,80,1,0,0,0,158,14,0,80,1,0,0,0,161,14,0,80,1,0,0,0,164,14,0,80,1,0,0,0,167,14,0,80,1,0,0,0,170,14,0,80,1,0,0,0,173,14,0,80,1,0,0,0,176,14,0,80,1,0,0,0,179,14,0,80,1,0,0,0,182,14,0,80,1,0,0,0,185,14,0,80,1,0,0,0,188,14,0,80,1,0,0,0,191,14,0,80,1,0,0,0,194,14,0,80,1,0,0,0,197,14,0,80,1,0,0,0,200,14,0,80,1,0,0,0,203,14,0,80,1,0,0,0,206,14,0,80,1,0,0,0,209,14,0,80,1,0,0,0,212,14,0,80,1,0,0,0,215,14,0,80,1,0,0,0,218,14,0,80,1,0,0,0,221,14,0,80,1,0,0,0,224,14,0,80,1,0,0,0,227,14,0,80,1,0,0,0,230,14,0,80,1,0,0,0,233,14,0,80,1,0,0,0,236,14,0,80,1,0,0,0,239,14,0,80,1,0,0,0,242,14,0,80,1,0,0,0,245,14,0,80,1,0,0,0,248,14,0,80,1,0,0,0,251,14,0,80,1,0,0,0,254,14,0,80,1,0,0,0,1,15,0,80,1,0,0,0,4,15,0,80,1,0,0,0,7,15,0,80,1,0,0,0,10,15,0,80,1,0,0,0,13,15,0,80,1,0,0,0,16,15,0,80,1,0,0,0,19,15,0,80,1,0,0,0,22,15,0,80,1,0,0,0,25,15,0,80,1,0,0,0,28,15,0,80,1,0,0,0,31,15,0,80,1,0,0,0,34,15,0,80,1,0,0,0,37,15,0,80,1,0,0,0,40,15,0,80,1,0,0,0,43,15,0,80,1,0,0,0,46,15,0,80,1,0,0,0,49,15,0,80,1,0,0,0,52,15,0,80,1,0,0,0,55,15,0,80,1,0,0,0,58,15,0,80,69,0,139,4,191,4,194,4,197,4,51,4,200,4,203,4,206,4,209,4,212,4,215,4,218,4,221,4,224,4,227,4,230,4,233,4,236,4,239,4,242,4,245,4,248,4,143,4,251,4,254,4,1,5,4,5,7,5,10,5,13,5,16,5,19,5,22,5,25,5,28,5,31,5,34,5,37,5,40,5,43,5,46,5,49,5,52,5,55,5,58,5,61,5,64,5,67,5,70,5,73,5,76,5,79,5,82,5,85,5,88,5,91,5,94,5,97,5,100,5,103,5,106,5,109,5,112,5,115,5,118,5,121,5,124,5,127,5,130,5,119,12,0,128,121,12,0,128,123,12,0,128,125,12,0,128,127,12,0,128,129,12,0,128,131,12,0,128,133,12,0,128,135,12,0,128,137,12,0,128,139,12,0,128,141,12,0,128,143,12,0,128,145,12,0,128,147,12,0,128,149,12,0,128,151,12,0,128,153,12,0,128,155,12,0,128,157,12,0,128,159,12,0,128,161,12,0,128,163,12,0,128,165,12,0,128,167,12,0,128,169,12,0,128,171,12,0,128,173,12,0,128,175,12,0,128,177,12,0,128,179,12,0,128,181,12,0,128,183,12,0,128,185,12,0,128,187,12,0,128,189,12,0,128,191,12,0,128,193,12,0,128,195,12,0,128,197,12,0,128,199,12,0,128,201,12,0,128,203,12,0,128,205,12,0,128,207,12,0,128,209,12,0,128,211,12,0,128,213,12,0,128,215,12,0,128,217,12,0,128,219,12,0,128,221,12,0,128,223,12,0,128,225,12,0,128,227,12,0,128,229,12,0,128,231,12,0,128,233,12,0,128,235,12,0,128,237,12,0,128,239,12,0,128,241,12,0,128,243,12,0,128,245,12,0,128,247,12,0,128,249,12,0,128,251,12,0,128,253,12,0,128,255,12,0,128,1,0,0,0,61,15,0,80,1,0,139,4,105,13,0,128,2,0,177,4,131,4,170,170,1,13,0,32,107,13,0,32,1,0,0,0,64,15,0,80,1,0,139,4,113,13,0,128,1,0,0,0,67,15,0,80,1,0,0,0,70,15,0,80,1,0,0,0,73,15,0,80,1,0,0,0,76,15,0,80,1,0,0,0,79,15,0,80,1,0,0,0,82,15,0,80,1,0,0,0,85,15,0,80,1,0,0,0,88,15,0,80,1,0,0,0,91,15,0,80,1,0,0,0,94,15,0,80,1,0,0,0,97,15,0,80,1,0,0,0,100,15,0,80,1,0,0,0,103,15,0,80,13,0,139,4,158,5,221,4,143,4,161,5,164,5,167,5,170,5,64,5,73,5,173,5,176,5,146,4,117,13,0,128,119,13,0,128,121,13,0,128,123,13,0,128,125,13,0,128,127,13,0,128,129,13,0,128,131,13,0,128,133,13,0,128,135,13,0,128,137,13,0,128,139,13,0,128,141,13,0,128,2,0,131,4,145,5,170,170,115,13,0,32,143,13,0,32,7,0,0,0,106,15,0,80,109,15,0,80,112,15,0,80,115,15,0,80,118,15,0,80,121,15,0,80,124,15,0,80,1,0,139,4,167,13,0,128,2,0,0,0,127,15,0,80,130,15,0,80,1,0,139,4,177,13,0,128,2,0,131,4,179,5,170,170,175,13,0,32,180,13,0,32,1,0,0,0,133,15,0,80,1,0,139,4,186,13,0,128,1,0,0,0,136,15,0,80,1,0,0,0,139,15,0,80,2,0,139,4,146,4,170,170,190,13,0,128,192,13,0,128,2,0,131,4,192,5,170,170,188,13,0,32,194,13,0,32,3,0,0,0,142,15,0,80,145,15,0,80,148,15,0,80,3,0,0,0,151,15,0,80,154,15,0,80,157,15,0,80,3,0,0,0,160,15,0,80,163,15,0,80,166,15,0,80,3,0,139,4,143,4,146,4,202,13,0,128,206,13,0,128,210,13,0,128,1,0,0,0,169,15,0,80,1,0,139,4,219,13,0,128,1,0,0,0,172,15,0,80,1,0,0,0,175,15,0,80,1,0,0,0,178,15,0,80,1,0,0,0,181,15,0,80,1,0,0,0,184,15,0,80,5,0,139,4,221,4,143,4,210,5,146,4,223,13,0,128,225,13,0,128,227,13,0,128,229,13,0,128,231,13,0,128,1,0,0,0,187,15,0,80,1,0,0,0,190,15,0,80,1,0,0,0,193,15,0,80,2,0,0,0,196,15,0,80,201,15,0,80,1,0,0,0,204,15,0,80,1,0,0,0,207,15,0,80,1,0,0,0,210,15,0,80,1,0,0,0,213,15,0,80,2,0,0,0,216,15,0,80,221,15,0,80,1,0,0,0,224,15,0,80,1,0,0,0,227,15,0,80,1,0,0,0,230,15,0,80,2,0,0,0,233,15,0,80,238,15,0,80,1,0,0,0,241,15,0,80,1,0,0,0,244,15,0,80,1,0,0,0,247,15,0,80,1,0,0,0,250,15,0,80,1,0,0,0,253,15,0,80,1,0,0,0,0,16,0,80,2,0,0,0,3,16,0,80,8,16,0,80,1,0,0,0,11,16,0,80,21,0,139,4,227,5,230,5,221,4,237,5,240,5,243,5,246,5,143,4,254,4,249,5,252,5,210,5,161,5,255,5,64,5,2,6,94,5,176,5,146,4,124,5,241,13,0,128,243,13,0,128,245,13,0,128,247,13,0,128,250,13,0,128,252,13,0,128,254,13,0,128,0,14,0,128,2,14,0,128,5,14,0,128,7,14,0,128,9,14,0,128,11,14,0,128,14,14,0,128,16,14,0,128,18,14,0,128,20,14,0,128,22,14,0,128,24,14,0,128,26,14,0,128,29,14,0,128,1,0,0,0,14,16,0,80,1,0,0,0,17,16,0,80,1,0,0,0,20,16,0,80,3,0,139,4,158,5,146,4,63,14,0,128,65,14,0,128,67,14,0,128,4,0,0,0,23,16,0,80,28,16,0,80,35,16,0,80,42,16,0,80,4,0,0,0,47,16,0,80,52,16,0,80,59,16,0,80,66,16,0,80,5,0,0,0,71,16,0,80,74,16,0,80,77,16,0,80,84,16,0,80,91,16,0,80,4,0,0,0,96,16,0,80,101,16,0,80,108,16,0,80,115,16,0,80,4,0,139,4,143,4,94,5,146,4,170,170,74,14,0,128,79,14,0,128,84,14,0,128,90,14,0,128,1,0,0,0,120,16,0,80,1,0,0,0,123,16,0,80,2,0,139,4,146,4,170,170,102,14,0,128,104,14,0,128,1,0,0,0,126,16,0,80,1,0,0,0,129,16,0,80,1,0,0,0,132,16,0,80,3,0,139,4,143,4,146,4,110,14,0,128,112,14,0,128,114,14,0,128,2,0,0,0,135,16,0,80,140,16,0,80,1,0,0,0,143,16,0,80,2,0,0,0,146,16,0,80,149,16,0,80,1,0,0,0,152,16,0,80,2,0,0,0,155,16,0,80,158,16,0,80,5,0,139,4,54,6,143,4,73,5,146,4,121,14,0,128,124,14,0,128,126,14,0,128,129,14,0,128,131,14,0,128,9,0,131,4,197,5,0,1,213,5,5,6,14,6,28,6,37,6,45,6,214,13,0,32,221,13,0,32,233,13,0,32,31,14,0,32,69,14,0,32,95,14,0,32,106,14,0,32,116,14,0,32,134,14,0,32,5,0,0,0,161,16,0,80,164,16,0,80,167,16,0,80,170,16,0,80,173,16,0,80,3,0,0,0,176,16,0,80,179,16,0,80,182,16,0,80,3,0,0,0,185,16,0,80,188,16,0,80,191,16,0,80,3,0,139,4,143,4,146,4,156,14,0,128,162,14,0,128,166,14,0,128,2,0,0,0,194,16,0,80,197,16,0,80,2,0,0,0,200,16,0,80,203,16,0,80,1,0,0,0,206,16,0,80,2,0,0,0,209,16,0,80,212,16,0,80,4,0,139,4,143,4,254,4,146,4,170,170,175,14,0,128,178,14,0,128,181,14,0,128,183,14,0,128,2,0,131,4,0,1,170,170,170,14,0,32,186,14,0,32,1,0,0,0,215,16,0,80,1,0,139,4,197,14,0,128,1,0,131,4,199,14,0,32,5,0,0,0,218,16,0,80,221,16,0,80,224,16,0,80,227,16,0,80,230,16,0,80,1,0,139,4,203,14,0,128,1,0,0,0,233,16,0,80,1,0,0,0,236,16,0,80,1,0,0,0,239,16,0,80,3,0,139,4,143,4,146,4,211,14,0,128,213,14,0,128,215,14,0,128,2,0,131,4,70,6,170,170,209,14,0,32,217,14,0,32,1,0,0,0,242,16,0,80,1,0,0,0,245,16,0,80,1,0,0,0,248,16,0,80,1,0,0,0,251,16,0,80,1,0,0,0,254,16,0,80,1,0,0,0,1,17,0,80,1,0,0,0,4,17,0,80,1,0,0,0,7,17,0,80,1,0,0,0,10,17,0,80,1,0,0,0,13,17,0,80,10,0,139,4,158,5,240,5,143,4,252,5,210,5,170,5,91,5,173,5,146,4,170,170,226,14,0,128,228,14,0,128,230,14,0,128,232,14,0,128,234,14,0,128,236,14,0,128,238,14,0,128,240,14,0,128,242,14,0,128,244,14,0,128,2,0,0,0,16,17,0,80,19,17,0,80,1,0,0,0,22,17,0,80,1,0,0,0,25,17,0,80,3,0,139,4,143,4,146,4,6,15,0,128,9,15,0,128,11,15,0,128,2,0,86,6,131,4,170,170,246,14,0,32,13,15,0,32,1,0,0,0,28,17,0,80,1,0,0,0,31,17,0,80,1,0,0,0,34,17,0,80,3,0,139,4,143,4,146,4,22,15,0,128,24,15,0,128,26,15,0,128,1,0,0,0,37,17,0,80,1,0,0,0,40,17,0,80,1,0,0,0,43,17,0,80,1,0,0,0,46,17,0,80,1,0,0,0,49,17,0,80,1,0,0,0,52,17,0,80,1,0,0,0,55,17,0,80,1,0,0,0,58,17,0,80,8,0,139,4,245,4,167,5,76,5,106,6,91,5,94,5,146,4,170,170,33,15,0,128,35,15,0,128,37,15,0,128,39,15,0,128,41,15,0,128,43,15,0,128,45,15,0,128,47,15,0,128,2,0,131,4,101,6,170,170,28,15,0,32,49,15,0,32,1,0,0,0,61,17,0,80,1,0,0,0,64,17,0,80,2,0,139,4,146,4,170,170,66,15,0,128,68,15,0,128,1,0,0,0,67,17,0,80,1,0,0,0,70,17,0,80,1,0,0,0,73,17,0,80,1,0,0,0,76,17,0,80,1,0,0,0,79,17,0,80,1,0,0,0,82,17,0,80,1,0,0,0,85,17,0,80,7,0,139,4,129,6,132,6,135,6,138,6,141,6,146,4,74,15,0,128,76,15,0,128,78,15,0,128,80,15,0,128,82,15,0,128,84,15,0,128,86,15,0,128,2,0,131,4,121,6,170,170,70,15,0,32,88,15,0,32,2,0,0,0,88,17,0,80,91,17,0,80,2,0,0,0,94,17,0,80,97,17,0,80,2,0,0,0,100,17,0,80,103,17,0,80,3,0,139,4,143,4,146,4,103,15,0,128,106,15,0,128,109,15,0,128,2,0,0,0,106,17,0,80,109,17,0,80,2,0,0,0,112,17,0,80,115,17,0,80,7,0,0,0,118,17,0,80,121,17,0,80,124,17,0,80,127,17,0,80,130,17,0,80,133,17,0,80,136,17,0,80,3,0,139,4,143,4,146,4,117,15,0,128,120,15,0,128,123,15,0,128,1,0,0,0,139,17,0,80,1,0,139,4,136,15,0,128,1,0,0,0,142,17,0,80,1,0,0,0,145,17,0,80,2,0,139,4,146,4,170,170,140,15,0,128,142,15,0,128,4,0,131,4,151,6,157,6,37,6,170,170,112,15,0,32,131,15,0,32,138,15,0,32,144,15,0,32,2,0,0,0,148,17,0,80,151,17,0,80,1,0,139,4,155,15,0,128,3,0,0,0,154,17,0,80,159,17,0,80,162,17,0,80,1,0,139,4,160,15,0,128,2,0,131,4,175,6,170,170,158,15,0,32,164,15,0,32,14,0,126,4,163,4,133,5,166,6,185,5,203,5,250,3,57,6,247,1,77,6,95,6,109,6,144,6,161,6,170,170,114,12,0,32,109,13,0,32,163,13,0,32,182,13,0,32,198,13,0,32,142,14,0,32,193,14,0,32,201,14,0,32,222,14,0,32,18,15,0,32,62,15,0,32,99,15,0,32,148,15,0,32,166,15,0,32,45,0,0,0,165,17,0,80,168,17,0,80,171,17,0,80,174,17,0,80,177,17,0,80,180,17,0,80,183,17,0,80,186,17,0,80,189,17,0,80,192,17,0,80,195,17,0,80,198,17,0,80,201,17,0,80,204,17,0,80,207,17,0,80,210,17,0,80,213,17,0,80,216,17,0,80,219,17,0,80,222,17,0,80,225,17,0,80,228,17,0,80,231,17,0,80,234,17,0,80,237,17,0,80,240,17,0,80,243,17,0,80,246,17,0,80,249,17,0,80,252,17,0,80,255,17,0,80,2,18,0,80,5,18,0,80,8,18,0,80,11,18,0,80,14,18,0,80,17,18,0,80,20,18,0,80,23,18,0,80,26,18,0,80,29,18,0,80,32,18,0,80,35,18,0,80,38,18,0,80,41,18,0,80,5,0,32,0,44,0,167,3,107,4,186,6,1,0,0,96,158,11,0,32,25,14,0,80,170,15,0,32,192,15,0,128,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,108,21,0,32,7,0,0,0,189,3,0,0,110,21,0,0,110,21,0,0,139,0,0,0,1,0,0,0,155,20,0,0,109,97,112,84,105,109,101,122,111,110,101,115,0,65,85,83,32,67,101,110,116,114,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,48,48,49,0,65,85,0,65,85,83,32,69,97,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,102,103,104,97,110,105,115,116,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,70,0,65,108,97,115,107,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,83,0,65,108,101,117,116,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,108,116,97,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,82,85,0,65,114,97,98,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,72,0,75,87,0,81,65,0,83,65,0,89,69,0,65,114,97,98,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,69,0,79,77,0,90,90,0,65,114,97,98,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,81,0,65,114,103,101,110,116,105,110,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,82,0,65,115,116,114,97,107,104,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,116,108,97,110,116,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,77,0,67,65,0,71,76,0,65,117,115,32,67,101,110,116,114,97,108,32,87,46,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,122,101,114,98,97,105,106,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,90,0,65,122,111,114,101,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,84,0,66,97,104,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,82,0,66,97,110,103,108,97,100,101,115,104,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,68,0,66,84,0,66,101,108,97,114,117,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,89,0,66,111,117,103,97,105,110,118,105,108,108,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,71,0,67,97,110,97,100,97,32,67,101,110,116,114,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,97,112,101,32,86,101,114,100,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,86,0,67,97,117,99,97,115,117,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,77,0,67,101,110,46,32,65,117,115,116,114,97,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,101,110,116,114,97,108,32,65,109,101,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,90,0,67,82,0,69,67,0,71,84,0,72,78,0,78,73,0,83,86,0,65,81,0,67,78,0,73,79,0,75,71,0,67,101,110,116,114,97,108,32,66,114,97,122,105,108,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,101,110,116,114,97,108,32,69,117,114,111,112,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,76,0,67,90,0,72,85,0,77,69,0,82,83,0,83,73,0,83,75,0,67,101,110,116,114,97,108,32,69,117,114,111,112,101,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,65,0,72,82,0,77,75,0,80,76,0,67,101,110,116,114,97,108,32,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,77,0,78,67,0,83,66,0,86,85,0,67,101,110,116,114,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,77,88,0,67,104,97,116,104,97,109,32,73,115,108,97,110,100,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,90,0,67,104,105,110,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,72,75,0,77,79,0,67,117,98,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,85,0,68,97,116,101,108,105,110,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,46,32,65,102,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,68,74,0,69,82,0,69,84,0,75,69,0,75,77,0,77,71,0,83,79,0,84,90,0,85,71,0,89,84,0,69,46,32,65,117,115,116,114,97,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,46,32,69,117,114,111,112,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,68,0,69,46,32,83,111,117,116,104,32,65,109,101,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,97,115,116,101,114,32,73,115,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,76,0,69,97,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,66,83,0,69,103,121,112,116,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,71,0,69,107,97,116,101,114,105,110,98,117,114,103,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,76,69,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,88,0,66,71,0,69,69,0,70,73,0,76,84,0,76,86,0,85,65,0,70,105,106,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,74,0,71,77,84,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,83,0,70,79,0,71,66,0,71,71,0,73,69,0,73,77,0,74,69,0,71,84,66,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,89,0,71,82,0,82,79,0,71,101,111,114,103,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,71,69,0,71,114,101,101,110,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,71,114,101,101,110,119,105,99,104,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,70,0,67,73,0,71,72,0,71,77,0,71,78,0,71,87,0,73,83,0,76,82,0,77,76,0,77,82,0,83,72,0,83,76,0,83,78,0,84,71,0,72,97,105,116,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,72,84,0,72,97,119,97,105,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,75,0,80,70,0,73,110,100,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,78,0,73,114,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,82,0,73,115,114,97,101,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,73,76,0,74,111,114,100,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,74,79,0,75,97,108,105,110,105,110,103,114,97,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,82,0,76,105,98,121,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,76,89,0,76,105,110,101,32,73,115,108,97,110,100,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,73,0,76,111,114,100,32,72,111,119,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,103,97,100,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,103,97,108,108,97,110,101,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,114,113,117,101,115,97,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,97,117,114,105,116,105,117,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,85,0,82,69,0,83,67,0,77,105,100,100,108,101,32,69,97,115,116,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,76,66,0,77,111,110,116,101,118,105,100,101,111,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,89,0,77,111,114,111,99,99,111,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,69,72,0,77,65,0,77,111,117,110,116,97,105,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,77,121,97,110,109,97,114,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,67,0,77,77,0,78,46,32,67,101,110,116,114,97,108,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,97,109,105,98,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,65,0,78,101,112,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,80,0,78,101,119,32,90,101,97,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,101,119,102,111,117,110,100,108,97,110,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,111,114,102,111,108,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,70,0,78,111,114,116,104,32,65,115,105,97,32,69,97,115,116,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,111,114,116,104,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,78,111,114,116,104,32,75,111,114,101,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,80,0,79,109,115,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,97,99,105,102,105,99,32,83,65,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,32,40,77,101,120,105,99,111,41,0,80,97,107,105,115,116,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,75,0,80,97,114,97,103,117,97,121,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,89,0,81,121,122,121,108,111,114,100,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,75,90,0,82,111,109,97,110,99,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,69,0,68,75,0,70,82,0,82,117,115,115,105,97,32,84,105,109,101,32,90,111,110,101,32,49,48,0,82,117,115,115,105,97,32,84,105,109,101,32,90,111,110,101,32,49,49,0,82,117,115,115,105,97,32,84,105,109,101,32,90,111,110,101,32,51,0,82,117,115,115,105,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,65,32,69,97,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,70,75,0,71,70,0,83,82,0,83,65,32,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,79,0,74,77,0,75,89,0,80,65,0,80,69,0,83,65,32,87,101,115,116,101,114,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,71,0,65,73,0,65,87,0,66,66,0,66,76,0,66,79,0,66,81,0,67,87,0,68,77,0,68,79,0,71,68,0,71,80,0,71,89,0,75,78,0,76,67,0,77,70,0,77,81,0,77,83,0,80,82,0,83,88,0,84,84,0,86,67,0,86,71,0,86,73,0,83,69,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,67,88,0,73,68,0,75,72,0,76,65,0,84,72,0,86,78,0,83,97,105,110,116,32,80,105,101,114,114,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,77,0,83,97,107,104,97,108,105,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,97,109,111,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,83,0,83,97,111,32,84,111,109,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,84,0,83,97,114,97,116,111,118,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,105,110,103,97,112,111,114,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,78,0,77,89,0,80,72,0,83,71,0,83,111,117,116,104,32,65,102,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,66,73,0,66,87,0,67,68,0,76,83,0,77,87,0,77,90,0,82,87,0,83,90,0,90,65,0,90,77,0,90,87,0,83,111,117,116,104,32,83,117,100,97,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,83,0,83,114,105,32,76,97,110,107,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,76,75,0,83,68,0,83,121,114,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,83,89,0,84,97,105,112,101,105,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,87,0,84,97,115,109,97,110,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,111,99,97,110,116,105,110,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,111,107,121,111,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,74,80,0,80,87,0,84,76,0,84,111,109,115,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,111,110,103,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,79,0,84,114,97,110,115,98,97,105,107,97,108,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,117,114,107,101,121,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,84,82,0,84,117,114,107,115,32,65,110,100,32,67,97,105,99,111,115,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,83,32,77,111,117,110,116,97,105,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,85,84,67,0,85,84,67,43,49,50,0,77,72,0,78,82,0,84,86,0,85,77,0,87,70,0,85,84,67,43,49,51,0,84,75,0,85,84,67,45,48,50,0,71,83,0,85,84,67,45,48,56,0,80,78,0,85,84,67,45,48,57,0,85,84,67,45,49,49,0,65,83,0,78,85,0,85,108,97,97,110,98,97,97,116,97,114,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,78,0,86,101,110,101,122,117,101,108,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,86,69,0,86,108,97,100,105,118,111,115,116,111,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,86,111,108,103,111,103,114,97,100,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,46,32,65,117,115,116,114,97,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,46,32,67,101,110,116,114,97,108,32,65,102,114,105,99,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,79,0,66,74,0,67,70,0,67,71,0,67,77,0,68,90,0,71,65,0,71,81,0,78,69,0,78,71,0,84,68,0,84,78,0,87,46,32,69,117,114,111,112,101,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,65,68,0,65,84,0,67,72,0,68,69,0,71,73,0,73,84,0,76,73,0,76,85,0,77,67,0,77,84,0,78,76,0,78,79,0,83,69,0,83,74,0,83,77,0,86,65,0,87,46,32,77,111,110,103,111,108,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,87,101,115,116,32,65,115,105,97,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,77,86,0,84,70,0,84,74,0,84,77,0,85,90,0,87,101,115,116,32,66,97,110,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,80,83,0,87,101,115,116,32,80,97,99,105,102,105,99,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,71,85,0,77,80,0,89,97,107,117,116,115,107,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,89,117,107,111,110,32,83,116,97,110,100,97,114,100,32,84,105,109,101,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,107,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,118,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,109,0,115,0,107,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,57,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,100,0,101,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,105,0,108,0,105,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,57,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,109,0,109,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,105,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,98,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,109,0,115,0,107,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,51,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,97,0,116,0,97,0,114,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,52,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,98,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,101,0,105,0,114,0,117,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,105,0,121,0,97,0,100,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,109,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,114,0,117,0,110,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,101,0,98,0,114,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,119,0,97,0,105,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,110,0,105,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,117,0,115,0,99,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,105,0,103,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,79,0,115,0,108,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,105,0,103,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,111,0,109,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,104,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,103,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,103,0,104,0,100,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,110,0,103,0,107,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,114,0,110,0,97,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,105,0,115,0,104,0,107,0,101,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,111,0,108,0,111,0,109,0,98,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,114,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,114,0,97,0,99,0,104,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,103,0,97,0,100,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,98,0,105,0,108,0,105,0,115,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,114,0,101,0,118,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,105,0,110,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,97,0,114,0,105,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,112,0,105,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,105,0,106,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,99,0,99,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,107,0,97,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,117,0,110,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,109,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,104,0,114,0,97,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,108,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,111,0,102,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,100,0,117,0,122,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,99,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,105,0,117,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,107,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,97,0,109,0,97,0,115,0,99,0,117,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,107,0,104,0,97,0,108,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,109,0,97,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,103,0,117,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,106,0,117,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,105,0,115,0,115,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,117,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,114,0,97,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,103,0,97,0,108,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,97,0,110,0,100,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,115,0,97,0,107,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,108,0,97,0,98,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,112,0,117,0,116,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,115,0,101,0,114,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,97,0,109,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,117,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,108,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,115,0,104,0,97,0,110,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,121,0,97,0,112,0,117,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,116,0,104,0,101,0,110,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,74,0,101,0,114,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,110,0,97,0,99,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,114,0,97,0,103,0,117,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,107,0,111,0,112,0,106,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,101,0,110,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,103,0,114,0,101,0,98,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,117,0,114,0,105,0,99,0,104,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,97,0,103,0,111,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,109,0,111,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,102,0,97,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,97,0,117,0,114,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,108,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,105,0,114,0,111,0,98,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,114,0,105,0,112,0,111,0,108,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,103,0,111,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,110,0,99,0,117,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,95,0,80,0,97,0,122,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,121,0,111,0,110,0,103,0,121,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,121,0,122,0,121,0,108,0,111,0,114,0,100,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,116,0,111,0,118,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,98,0,105,0,100,0,106,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,108,0,103,0,105,0,101,0,114,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,110,0,97,0,107,0,114,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,97,0,109,0,112,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,98,0,97,0,98,0,97,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,105,0,122,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,105,0,97,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,121,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,115,0,115,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,97,0,109,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,105,0,101,0,110,0,116,0,105,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,110,0,100,0,111,0,114,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,97,0,108,0,108,0,105,0,110,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,116,0,105,0,99,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,108,0,110,0,105,0,117,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,121,0,111,0,116,0,116,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,82,0,101,0,117,0,110,0,105,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,105,0,100,0,119,0,97,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,117,0,109,0,101,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,105,0,112,0,97,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,104,0,105,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,114,0,97,0,119,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,108,0,108,0,105,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,104,0,97,0,114,0,116,0,111,0,117,0,109,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,84,0,111,0,109,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,100,0,104,0,111,0,101,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,114,0,97,0,99,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,101,0,110,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,65,0,122,0,111,0,114,0,101,0,115,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,69,0,117,0,99,0,108,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,100,0,97,0,112,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,104,0,105,0,115,0,105,0,110,0,97,0,117,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,114,0,102,0,111,0,108,0,107,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,116,0,121,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,106,0,105,0,98,0,111,0,117,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,65,0,97,0,105,0,117,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,70,0,114,0,101,0,101,0,116,0,111,0,119,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,71,0,97,0,98,0,111,0,114,0,111,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,110,0,115,0,104,0,97,0,115,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,114,0,111,0,118,0,105,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,100,0,106,0,97,0,109,0,101,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,116,0,105,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,114,0,97,0,99,0,97,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,105,0,103,0,111,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,116,0,111,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,104,0,110,0,111,0,109,0,95,0,80,0,101,0,110,0,104,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,110,0,97,0,114,0,121,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,32,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,103,0,114,0,97,0,100,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,117,0,115,0,115,0,101,0,108,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,117,0,101,0,114,0,110,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,72,0,101,0,108,0,115,0,105,0,110,0,107,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,106,0,101,0,118,0,111,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,108,0,100,0,105,0,118,0,101,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,97,0,107,0,97,0,111,0,102,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,109,0,98,0,105,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,117,0,110,0,99,0,105,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,115,0,105,0,98,0,105,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,68,0,97,0,114,0,119,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,99,0,104,0,97,0,114,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,111,0,108,0,103,0,111,0,103,0,114,0,97,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,117,0,114,0,105,0,116,0,105,0,117,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,106,0,117,0,109,0,98,0,117,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,103,0,97,0,100,0,105,0,115,0,104,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,103,0,117,0,105,0,108,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,114,0,98,0,97,0,100,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,75,0,105,0,116,0,116,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,76,0,117,0,99,0,105,0,97,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,101,0,121,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,97,0,118,0,105,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,121,0,111,0,119,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,66,0,101,0,114,0,109,0,117,0,100,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,97,0,110,0,108,0,101,0,121,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,109,0,115,0,116,0,101,0,114,0,100,0,97,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,115,0,116,0,114,0,97,0,107,0,104,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,105,0,98,0,114,0,97,0,108,0,116,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,106,0,117,0,98,0,108,0,106,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,114,0,105,0,101,0,104,0,97,0,109,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,111,0,100,0,103,0,111,0,114,0,105,0,99,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,116,0,111,0,99,0,107,0,104,0,111,0,108,0,109,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,114,0,105,0,115,0,116,0,109,0,97,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,75,0,101,0,114,0,103,0,117,0,101,0,108,0,101,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,117,0,110,0,97,0,102,0,117,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,105,0,116,0,99,0,97,0,105,0,114,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,97,0,98,0,108,0,97,0,110,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,97,0,103,0,117,0,97,0,105,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,116,0,101,0,109,0,97,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,114,0,113,0,117,0,101,0,115,0,97,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,111,0,110,0,103,0,97,0,116,0,97,0,112,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,98,0,114,0,101,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,98,0,117,0,109,0,98,0,97,0,115,0,104,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,117,0,97,0,107,0,99,0,104,0,111,0,116,0,116,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,45,0,78,0,111,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,121,0,97,0,113,0,117,0,105,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,86,0,111,0,115,0,116,0,111,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,97,0,116,0,105,0,115,0,108,0,97,0,118,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,111,0,112,0,101,0,110,0,104,0,97,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,117,0,120,0,101,0,109,0,98,0,111,0,117,0,114,0,103,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,110,0,95,0,77,0,97,0,114,0,105,0,110,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,105,0,109,0,102,0,101,0,114,0,111,0,112,0,111,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,108,0,97,0,112,0,97,0,103,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,82,0,97,0,114,0,111,0,116,0,111,0,110,0,103,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,97,0,110,0,100,0,95,0,84,0,117,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,118,0,105,0,100,0,101,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,114,0,101,0,100,0,110,0,101,0,107,0,111,0,108,0,121,0,109,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,107,0,97,0,116,0,101,0,114,0,105,0,110,0,98,0,117,0,114,0,103,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,97,0,108,0,105,0,110,0,105,0,110,0,103,0,114,0,97,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,105,0,114,0,105,0,116,0,105,0,109,0,97,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,100,0,105,0,115,0,95,0,65,0,98,0,97,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,114,0,97,0,122,0,122,0,97,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,79,0,117,0,97,0,103,0,97,0,100,0,111,0,117,0,103,0,111,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,115,0,116,0,97,0,95,0,82,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,100,0,101,0,108,0,111,0,117,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,101,0,114,0,109,0,111,0,115,0,105,0,108,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,114,0,97,0,108,0,101,0,110,0,100,0,105,0,106,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,116,0,105,0,110,0,105,0,113,0,117,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,115,0,101,0,114,0,114,0,97,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,114,0,97,0,109,0,97,0,114,0,105,0,98,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,86,0,105,0,110,0,99,0,101,0,110,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,99,0,77,0,117,0,114,0,100,0,111,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,95,0,72,0,101,0,108,0,101,0,110,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,108,0,101,0,95,0,111,0,102,0,95,0,77,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,111,0,104,0,97,0,110,0,110,0,101,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,112,0,101,0,95,0,86,0,101,0,114,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,100,0,97,0,108,0,99,0,97,0,110,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,83,0,97,0,108,0,118,0,97,0,100,0,111,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,101,0,114,0,116,0,111,0,95,0,82,0,105,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,101,0,103,0,117,0,99,0,105,0,103,0,97,0,108,0,112,0,97,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,65,0,110,0,116,0,97,0,110,0,97,0,110,0,97,0,114,0,105,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,110,0,116,0,97,0,95,0,65,0,114,0,101,0,110,0,97,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,66,0,111,0,117,0,103,0,97,0,105,0,110,0,118,0,105,0,108,0,108,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,114,0,116,0,95,0,77,0,111,0,114,0,101,0,115,0,98,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,114,0,95,0,101,0,115,0,95,0,83,0,97,0,108,0,97,0,97,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,99,0,45,0,83,0,97,0,98,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,110,0,109,0,97,0,114,0,107,0,115,0,104,0,97,0,118,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,99,0,111,0,114,0,101,0,115,0,98,0,121,0,115,0,117,0,110,0,100,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,105,0,117,0,100,0,97,0,100,0,95,0,74,0,117,0,97,0,114,0,101,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,97,0,108,0,95,0,72,0,97,0,114,0,98,0,111,0,117,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,119,0,101,0,114,0,95,0,80,0,114,0,105,0,110,0,99,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,95,0,111,0,102,0,95,0,83,0,112,0,97,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,111,0,95,0,68,0,111,0,109,0,105,0,110,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,66,0,97,0,114,0,116,0,104,0,101,0,108,0,101,0,109,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,101,0,98,0,114,0,111,0,110,0,32,0,65,0,115,0,105,0,97,0,47,0,71,0,97,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,45,0,97,0,117,0,45,0,80,0,114,0,105,0,110,0,99,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,71,0,101,0,111,0,114,0,103,0,105,0,97,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,117,0,109,0,111,0,110,0,116,0,68,0,85,0,114,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,110,0,97,0,100,0,121,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,32,0,65,0,115,0,105,0,97,0,47,0,75,0,104,0,97,0,110,0,100,0,121,0,103,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,100,0,114,0,105,0,100,0,32,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,101,0,117,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,32,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,114,0,111,0,118,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,107,0,97,0,114,0,116,0,97,0,32,0,65,0,115,0,105,0,97,0,47,0,80,0,111,0,110,0,116,0,105,0,97,0,110,0,97,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,32,0,65,0,115,0,105,0,97,0,47,0,70,0,97,0,109,0,97,0,103,0,117,0,115,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,105,0,115,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,32,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,109,0,97,0,114,0,107,0,97,0,110,0,100,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,32,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,115,0,105,0,110,0,103,0,101,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,32,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,111,0,115,0,114,0,97,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,97,0,108,0,97,0,95,0,76,0,117,0,109,0,112,0,117,0,114,0,32,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,99,0,104,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,32,0,65,0,115,0,105,0,97,0,47,0,85,0,115,0,116,0,45,0,78,0,101,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,32,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,77,0,97,0,100,0,101,0,105,0,114,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,113,0,97,0,108,0,117,0,105,0,116,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,106,0,117,0,114,0,111,0,32,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,116,0,97,0,109,0,111,0,114,0,111,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,79,0,106,0,105,0,110,0,97,0,103,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,115,0,116,0,114,0,97,0,107,0,104,0,97,0,110,0,32,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,85,0,108,0,121,0,97,0,110,0,111,0,118,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,32,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,107,0,117,0,122,0,110,0,101,0,116,0,115,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,105,0,97,0,98,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,112,0,111,0,95,0,71,0,114,0,97,0,110,0,100,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,105,0,114,0,117,0,110,0,101,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,119,0,105,0,102,0,116,0,95,0,67,0,117,0,114,0,114,0,101,0,110,0,116,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,82,0,111,0,116,0,104,0,101,0,114,0,97,0,32,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,80,0,97,0,108,0,109,0,101,0,114,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,32,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,77,0,101,0,108,0,98,0,111,0,117,0,114,0,110,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,32,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,105,0,110,0,100,0,101,0,109,0,97,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,32,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,113,0,117,0,97,0,114,0,105,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,32,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,111,0,107,0,101,0,110,0,95,0,72,0,105,0,108,0,108,0,0,0,52,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,97,0,95,0,86,0,105,0,115,0,116,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,95,0,86,0,101,0,108,0,104,0,111,0,0,0,53,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,98,0,114,0,105,0,100,0,103,0,101,0,95,0,66,0,97,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,117,0,118,0,105,0,107,0,0,0,54,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,97,0,110,0,107,0,105,0,110,0,95,0,73,0,110,0,108,0,101,0,116,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,115,0,111,0,108,0,117,0,116,0,101,0,0,0,56,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,114,0,101,0,115,0,116,0,111,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,95,0,67,0,114,0,101,0,101,0,107,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,95,0,78,0,101,0,108,0,115,0,111,0,110,0,0,0,66,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,77,0,97,0,114,0,101,0,110,0,103,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,101,0,118,0,97,0,121,0,0,0,67,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,108,0,97,0,99,0,101,0,95,0,66,0,97,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,111,0,115,0,101,0,95,0,66,0,97,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,99,0,116,0,111,0,110,0,0,0,70,220,65,0,115,0,105,0,97,0,47,0,79,0,114,0,97,0,108,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,108,0,109,0,97,0,116,0,121,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,97,0,117,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,111,0,98,0,101,0,32,0,65,0,115,0,105,0,97,0,47,0,65,0,116,0,121,0,114,0,97,0,117,0,32,0,65,0,115,0,105,0,97,0,47,0,81,0,111,0,115,0,116,0,97,0,110,0,97,0,121,0,0,0,78,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,97,0,108,0,101,0,122,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,101,0,109,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,101,0,105,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,99,0,105,0,102,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,97,0,114,0,101,0,109,0,0,0,94,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,110,0,101,0,97,0,117,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,116,0,108,0,97,0,107,0,97,0,116,0,108,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,109,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,105,0,116,0,107,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,97,0,116,0,0,0,94,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,95,0,66,0,97,0,110,0,100,0,101,0,114,0,97,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,114,0,105,0,100,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,114,0,114,0,101,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,104,0,117,0,97,0,104,0,117,0,97,0,32,0,0,0,156,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,116,0,114,0,111,0,105,0,116,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,80,0,101,0,116,0,101,0,114,0,115,0,98,0,117,0,114,0,103,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,105,0,110,0,99,0,101,0,110,0,110,0,101,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,87,0,105,0,110,0,97,0,109,0,97,0,99,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,77,0,111,0,110,0,116,0,105,0,99,0,101,0,108,0,108,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,167,220,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,75,0,110,0,111,0,120,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,84,0,101,0,108,0,108,0,95,0,67,0,105,0,116,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,111,0,109,0,105,0,110,0,101,0,101,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,66,0,101,0,117,0,108,0,97,0,104,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,67,0,101,0,110,0,116,0,101,0,114,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,78,0,101,0,119,0,95,0,83,0,97,0,108,0,101,0,109,0,0,0,16,221,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,76,0,97,0,95,0,82,0,105,0,111,0,106,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,82,0,105,0,111,0,95,0,71,0,97,0,108,0,108,0,101,0,103,0,111,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,108,0,116,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,74,0,117,0,97,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,76,0,117,0,105,0,115,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,84,0,117,0,99,0,117,0,109,0,97,0,110,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,85,0,115,0,104,0,117,0,97,0,105,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,32,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,2,0,71,0,75,0,123,12,123,12,2,0,71,0,75,0,241,13,149,23,2,0,71,0,130,0,27,1,27,1,2,0,71,0,155,0,113,15,47,26,2,0,71,0,155,0,167,2,167,2,2,0,71,0,201,0,206,2,206,2,6,0,71,0,223,0,226,0,229,0,232,0,235,0,205,1,171,3,33,2,126,1,205,1,69,0,4,0,71,0,4,1,7,1,10,1,16,1,16,1,57,2,179,0,2,0,71,0,34,1,180,2,180,2,2,0,71,0,61,1,140,19,54,28,2,0,71,0,201,0,19,14,190,22,4,0,71,0,111,1,114,1,117,1,228,10,190,13,82,25,138,5,2,0,71,0,75,0,180,9,180,9,2,0,71,0,174,1,9,0,9,0,3,0,71,0,117,1,198,1,164,9,203,19,164,9,2,0,71,0,221,1,58,4,58,4,3,0,71,0,249,1,252,1,5,1,5,1,184,3,2,0,71,0,21,2,67,3,67,3,2,0,71,0,51,2,56,19,56,19,2,0,71,0,114,1,52,8,75,23,3,0,71,0,108,2,10,1,111,18,111,18,89,0,2,0,71,0,134,2,54,3,54,3,2,0,71,0,75,0,14,18,6,24,9,0,71,0,196,2,199,2,202,2,205,2,208,2,211,2,214,2,10,1,225,14,203,7,61,17,73,16,225,14,231,18,4,11,171,18,129,0,6,0,71,0,217,2,220,2,223,2,226,2,10,1,219,2,203,15,81,2,134,6,219,2,199,0,2,0,71,0,221,1,233,7,3,23,8,0,71,0,34,3,37,3,40,3,43,3,46,3,49,3,52,3,212,9,78,6,50,6,212,9,87,14,132,11,53,14,221,15,5,0,71,0,86,3,89,3,92,3,95,3,170,4,196,11,106,6,64,6,170,4,7,0,71,0,217,2,128,3,131,3,134,3,137,3,10,1,151,18,105,13,190,21,217,8,151,18,162,6,159,1,4,0,71,0,114,1,171,3,155,0,180,10,156,24,122,22,141,27,2,0,71,0,171,3,191,18,143,26,2,0,71,0,204,3,4,10,4,10,4,0,71,0,220,2,227,3,230,3,128,4,128,4,67,8,115,1,2,0,71,0,252,3,8,7,8,7,2,0,71,0,10,1,82,1,82,1,13,0,71,0,217,2,46,4,49,4,52,4,55,4,58,4,61,4,64,4,67,4,70,4,73,4,10,1,204,6,139,13,52,10,184,4,4,17,204,6,148,6,15,19,242,12,98,19,173,7,172,8,169,0,2,0,71,0,75,0,33,18,186,23,2,0,71,0,127,4,228,9,228,9,2,0,71,0,221,1,243,14,243,14,2,0,71,0,189,4,113,7,113,7,4,0,71,0,223,4,114,1,155,0,54,13,22,8,57,22,239,26,2,0,71,0,171,3,249,6,249,6,2,0,71,0,246,4,141,2,141,2,2,0,71,0,201,0,184,16,184,16,8,0,71,0,38,5,41,5,44,5,47,5,50,5,53,5,56,5,241,1,70,14,223,3,127,8,180,11,157,8,105,2,241,1,2,0,71,0,78,5,106,3,106,3,9,0,71,0,99,5,102,5,105,5,108,5,111,5,114,5,117,5,198,1,142,4,84,11,100,11,142,4,164,11,250,5,52,18,8,6,26,22,4,0,71,0,138,5,141,5,144,5,140,12,74,21,222,5,140,12,2,0,71,0,170,5,41,3,41,3,2,0,71,0,117,1,116,9,116,9,16,0,71,0,221,5,224,5,227,5,117,1,230,5,233,5,236,5,239,5,242,5,245,5,248,5,251,5,254,5,1,6,4,6,203,16,42,17,128,7,119,3,161,19,226,4,158,7,240,4,203,16,132,10,198,4,77,15,251,17,84,10,132,3,253,1,2,0,71,0,27,6,122,20,122,20,5,0,71,0,53,6,56,6,155,0,10,1,208,12,109,16,247,8,208,12,137,1,2,0,71,0,79,6,72,4,72,4,2,0,71,0,101,6,229,1,229,1,2,0,71,0,125,6,38,7,38,7,2,0,71,0,149,6,239,0,239,0,2,0,71,0,201,0,222,16,222,16,2,0,71,0,178,6,38,1,38,1,2,0,71,0,201,6,219,6,219,6,3,0,71,0,231,6,10,1,241,16,241,16,170,1,2,0,71,0,75,0,131,18,131,18,2,0,71,0,201,0,15,3,15,3,2,0,71,0,189,4,35,19,35,19,2,0,71,0,56,6,5,15,5,15,4,0,71,0,97,7,100,7,103,7,174,12,174,12,187,8,129,2,2,0,71,0,132,7,193,1,193,1,2,0,71,0,160,7,146,16,146,16,3,0,71,0,185,7,188,7,189,14,68,10,189,14,4,0,71,0,114,1,171,3,155,0,248,7,101,24,224,19,102,21,2,0,71,0,171,3,21,12,21,12,3,0,71,0,245,7,248,7,28,3,249,3,28,3,2,0,71,0,201,0,89,12,89,12,2,0,71,0,47,8,68,9,68,9,2,0,71,0,70,8,100,4,100,4,3,0,71,0,217,2,204,3,191,12,232,17,191,12,2,0,71,0,114,1,72,12,72,12,2,0,71,0,148,8,20,10,20,10,2,0,71,0,201,0,245,2,245,2,2,0,71,0,201,0,156,13,224,22,2,0,71,0,232,8,53,7,53,7,2,0,71,0,201,0,29,0,29,0,2,0,71,0,189,4,55,12,55,12,3,0,71,0,114,1,155,0,91,18,167,15,91,18,2,0,71,0,171,3,148,9,148,9,2,0,71,0,77,9,2,3,2,3,2,0,71,0,103,9,4,12,4,12,2,0,71,0,130,9,68,7,68,7,5,0,71,0,155,9,158,9,99,5,161,9,80,3,148,11,239,15,248,20,80,3,2,0,71,0,201,0,165,16,165,16,2,0,71,0,201,0,82,8,194,20,2,0,71,0,201,0,156,4,156,4,3,0,71,0,201,0,56,5,36,6,19,21,37,16,7,0,71,0,217,2,221,1,14,10,17,10,20,10,10,1,100,9,112,23,223,25,207,13,100,9,175,17,99,0,10,0,71,0,221,1,114,1,48,10,202,2,51,10,54,10,57,10,60,10,10,1,234,6,39,23,246,19,234,6,131,15,244,10,218,7,37,8,158,3,119,0,28,0,71,0,88,10,91,10,94,10,97,10,100,10,103,10,106,10,221,1,114,1,109,10,112,10,115,10,118,10,121,10,124,10,127,10,130,10,133,10,136,10,139,10,142,10,145,10,148,10,151,10,154,10,157,10,10,1,23,7,164,10,3,13,124,5,20,13,78,20,23,7,118,17,47,24,119,19,196,10,37,13,56,20,212,10,80,17,7,8,71,13,88,13,20,11,137,17,156,17,211,18,12,20,34,20,194,17,52,11,149,15,109,0,9,0,71,0,217,2,182,10,185,10,188,10,191,10,194,10,197,10,10,1,193,2,122,13,121,14,46,21,68,11,97,8,193,2,69,2,209,0,2,0,71,0,227,10,38,12,38,12,2,0,71,0,201,0,114,4,114,4,2,0,71,0,17,11,93,3,93,3,2,0,71,0,43,11,52,9,52,9,2,0,71,0,201,0,98,7,98,7,7,0,71,0,92,11,185,10,95,11,98,11,101,11,10,1,83,7,9,2,194,5,220,21,45,2,83,7,219,0,13,0,71,0,131,11,134,11,137,11,140,11,143,11,146,11,149,11,152,11,155,11,158,11,161,11,10,1,71,18,225,12,100,10,59,15,96,5,36,10,82,5,26,5,188,7,71,18,54,5,12,5,159,0,2,0,71,0,190,11,181,1,181,1,2,0,71,0,217,11,232,2,232,2,2,0,71,0,220,11,36,9,36,9,2,0,71,0,243,11,86,4,86,4,2,0,71,0,11,12,217,1,217,1,2,0,71,0,75,0,224,13,224,23,2,0,71,0,221,1,207,14,207,14,6,0,71,0,185,10,81,12,84,12,87,12,10,1,49,1,180,5,49,1,190,6,79,0,229,0,2,0,71,0,201,0,60,1,60,1,2,0,71,0,130,12,23,15,23,15,2,0,71,0,201,0,250,0,250,0,2,0,71,0,180,12,244,9,244,9,2,0,71,0,241,12,127,16,127,16,2,0,71,0,155,0,182,19,14,25,5,0,71,0,114,1,171,3,155,0,10,1,132,9,212,24,99,17,132,9,139,0,2,0,71,0,10,1,1,0,116,11,8,0,71,0,231,6,251,12,254,12,1,13,4,13,7,13,10,1,93,1,6,9,89,22,176,6,155,14,45,4,21,9,93,1,4,0,71,0,231,6,17,13,10,1,104,1,55,16,228,11,104,1,4,0,71,0,221,1,27,13,10,1,39,0,36,11,145,20,39,0,3,0,71,0,37,13,10,1,49,0,172,14,49,0,3,0,71,0,56,6,10,1,59,0,244,11,59,0,5,0,71,0,54,13,57,13,4,13,10,1,71,1,91,16,19,4,202,8,71,1,2,0,71,0,86,13,106,12,106,12,2,0,71,0,113,13,84,9,84,9,2,0,71,0,201,0,173,13,251,21,2,0,71,0,201,0,157,12,157,12,2,0,71,0,75,0,196,9,196,9,15,0,71,0,225,13,228,13,137,11,231,13,234,13,237,13,240,13,243,13,246,13,249,13,252,13,255,13,2,14,10,1,154,2,40,5,95,15,116,10,212,4,23,17,254,4,143,7,41,15,68,5,110,5,154,2,148,10,145,3,149,0,17,0,71,0,29,14,32,14,35,14,38,14,41,14,44,14,47,14,50,14,53,14,56,14,59,14,62,14,65,14,68,14,71,14,74,14,236,5,112,8,92,6,120,6,160,21,36,14,117,2,236,3,1,16,22,6,210,3,2,14,93,2,104,14,251,18,19,16,142,8,2,0,71,0,86,13,19,0,19,0,9,0,71,0,217,2,130,9,127,14,130,14,133,14,136,14,139,14,10,1,208,5,185,15,151,25,212,11,138,14,166,5,152,5,131,21,189,0,2,0,71,0,166,14,21,2,100,20,7,0,71,0,217,2,128,3,196,14,199,14,51,2,10,1,77,19,168,20,32,4,6,4,232,8,77,19,148,1,2,0,71,0,201,0,197,3,221,20,2,0,71,0,114,1,213,17,156,22,170,170,139,0,45,0,78,0,104,0,133,0,158,0,181,0,204,0,238,0,13,1,37,1,64,1,88,1,120,1,149,1,177,1,201,1,224,1,255,1,24,2,54,2,83,2,111,2,137,2,166,2,254,7,229,2,5,3,55,3,98,3,61,2,140,3,174,3,207,3,233,3,255,3,22,4,76,4,103,4,130,4,161,4,82,0,192,4,226,4,249,4,20,5,59,5,81,5,120,5,147,5,173,5,197,5,7,6,30,6,59,6,82,6,104,6,128,6,152,6,212,8,181,6,204,6,234,6,2,7,24,7,49,7,73,7,106,7,135,7,163,7,217,12,191,7,223,7,251,7,25,8,50,8,73,8,99,8,126,8,151,8,181,8,206,8,235,8,254,8,174,14,23,9,54,9,80,9,106,9,133,9,164,9,184,9,204,9,223,9,245,9,23,10,63,10,160,10,200,10,230,10,253,10,20,11,46,11,68,11,104,11,164,11,193,11,170,11,223,11,246,11,14,12,37,12,61,12,90,12,110,12,133,12,159,12,183,12,79,0,214,12,240,12,244,12,10,13,20,13,30,13,40,13,47,13,60,13,89,13,116,13,142,13,166,13,193,13,5,14,77,14,103,14,142,14,169,14,202,14,224,14,72,29,0,80,77,29,0,80,82,29,0,80,87,29,0,80,92,29,0,80,97,29,0,80,102,29,0,80,115,29,0,80,124,29,0,80,129,29,0,80,134,29,0,80,139,29,0,80,148,29,0,80,153,29,0,80,158,29,0,80,165,29,0,80,170,29,0,80,177,29,0,80,182,29,0,80,187,29,0,80,192,29,0,80,199,29,0,80,204,29,0,80,209,29,0,80,228,29,0,80,241,29,0,80,246,29,0,80,7,30,0,80,18,30,0,80,33,30,0,80,42,30,0,80,47,30,0,80,52,30,0,80,61,30,0,80,66,30,0,80,71,30,0,80,98,30,0,80,103,30,0,80,108,30,0,80,113,30,0,80,118,30,0,80,127,30,0,80,132,30,0,80,137,30,0,80,142,30,0,80,159,30,0,80,164,30,0,80,183,30,0,80,192,30,0,80,197,30,0,80,202,30,0,80,235,30,0,80,240,30,0,80,251,30,0,80,0,31,0,80,5,31,0,80,10,31,0,80,15,31,0,80,20,31,0,80,25,31,0,80,30,31,0,80,37,31,0,80,42,31,0,80,47,31,0,80,52,31,0,80,57,31,0,80,66,31,0,80,71,31,0,80,76,31,0,80,83,31,0,80,92,31,0,80,97,31,0,80,104,31,0,80,109,31,0,80,114,31,0,80,119,31,0,80,126,31,0,80,131,31,0,80,136,31,0,80,141,31,0,80,146,31,0,80,151,31,0,80,156,31,0,80,161,31,0,80,168,31,0,80,173,31,0,80,178,31,0,80,183,31,0,80,188,31,0,80,199,31,0,80,204,31,0,80,209,31,0,80,214,31,0,80,221,31,0,80,236,31,0,80,1,32,0,80,58,32,0,80,77,32,0,80,82,32,0,80,87,32,0,80,92,32,0,80,97,32,0,80,102,32,0,80,117,32,0,80,144,32,0,80,149,32,0,80,154,32,0,80,159,32,0,80,164,32,0,80,169,32,0,80,174,32,0,80,179,32,0,80,192,32,0,80,197,32,0,80,202,32,0,80,207,32,0,80,212,32,0,80,217,32,0,80,222,32,0,80,233,32,0,80,238,32,0,80,255,32,0,80,8,33,0,80,17,33,0,80,24,33,0,80,31,33,0,80,42,33,0,80,47,33,0,80,52,33,0,80,57,33,0,80,62,33,0,80,67,33,0,80,98,33,0,80,133,33,0,80,138,33,0,80,157,33,0,80,162,33,0,80,177,33,0,80,182,33,0,80,1,0,32,0,155,20,0,32,170,170,170,170,170,170,170,170,32,0,218,39,20,0,0,0,0,0,2,0,82,101,115,66,2,0,0,0,1,4,0,0,0,0,0,0,0,0,0,0,56,144,0,32,7,0,0,0,70,0,0,0,64,144,0,0,64,144,0,0,23,0,0,0,1,0,0,0,127,22,0,0,84,90,86,101,114,115,105,111,110,0,90,111,110,101,115,0,116,114,97,110,115,0,116,121,112,101,79,102,102,115,101,116,115,0,116,121,112,101,77,97,112,0,108,105,110,107,115,0,116,114,97,110,115,80,114,101,51,50,0,102,105,110,97,108,82,117,108,101,0,102,105,110,97,108,82,97,119,0,102,105,110,97,108,89,101,97,114,0,116,114,97,110,115,80,111,115,116,51,50,0,78,97,109,101,115,0,82,117,108,101,115,0,65,78,0,65,83,0,65,84,0,65,86,0,67,97,110,97,100,97,0,67,104,97,116,104,97,109,0,67,104,105,108,101,0,67,117,98,97,0,69,85,0,69,85,65,115,105,97,0,69,103,121,112,116,0,72,97,105,116,105,0,76,72,0,76,101,98,97,110,111,110,0,77,111,108,100,111,118,97,0,78,90,0,80,97,108,101,115,116,105,110,101,0,80,97,114,97,0,83,121,115,116,101,109,86,0,84,104,117,108,101,0,84,114,111,108,108,0,85,83,0,90,105,111,110,0,82,101,103,105,111,110,115,0,170,170,170,0,0,85,0,83,0,0,0,67,0,65,0,0,0,69,0,85,0,0,0,82,0,85,0,0,0,65,0,85,0,0,0,66,0,82,0,0,0,65,0,82,0,0,0,77,0,88,0,0,0,65,0,81,0,0,0,67,0,78,0,0,0,75,0,90,0,0,0,78,0,90,0,0,0,70,0,77,0,0,0,65,0,83,0,0,0,67,0,76,0,0,0,71,0,66,0,0,0,71,0,76,0,0,0,73,0,68,0,0,0,80,0,84,0,0,0,85,0,65,0,0,0,75,0,73,0,0,0,77,0,78,0,0,0,66,0,68,0,0,0,66,0,69,0,0,0,67,0,89,0,0,0,69,0,71,0,0,0,69,0,83,0,0,0,73,0,76,0,0,0,74,0,80,0,0,0,77,0,72,0,0,0,80,0,70,0,0,0,84,0,82,0,0,0,85,0,77,0,0,0,86,0,78,0,0,0,65,0,77,0,0,0,65,0,78,0,0,0,66,0,84,0,0,0,67,0,68,0,0,0,67,0,73,0,0,0,67,0,85,0,0,0,68,0,69,0,0,0,69,0,67,0,0,0,69,0,82,0,0,0,70,0,79,0,0,0,70,0,82,0,0,0,71,0,82,0,0,0,72,0,75,0,0,0,73,0,69,0,0,0,73,0,82,0,0,0,74,0,77,0,0,0,75,0,69,0,0,0,75,0,82,0,0,0,76,0,89,0,0,0,77,0,68,0,0,0,77,0,76,0,0,0,77,0,77,0,0,0,77,0,79,0,0,0,77,0,89,0,0,0,77,0,90,0,0,0,78,0,80,0,0,0,80,0,65,0,0,0,80,0,71,0,0,0,80,0,75,0,0,0,80,0,76,0,0,0,80,0,82,0,0,0,80,0,83,0,0,0,83,0,66,0,0,0,83,0,71,0,0,0,83,0,74,0,0,0,84,0,77,0,0,0,84,0,87,0,0,0,85,0,90,0,0,0,86,0,73,0,0,0,87,0,83,0,0,0,65,0,68,0,0,0,65,0,69,0,0,0,65,0,70,0,0,0,65,0,71,0,0,0,65,0,73,0,0,0,65,0,76,0,0,0,65,0,79,0,0,0,65,0,86,0,0,0,65,0,87,0,0,0,65,0,88,0,0,0,65,0,90,0,0,0,66,0,65,0,0,0,66,0,66,0,0,0,66,0,70,0,0,0,66,0,71,0,0,0,66,0,72,0,0,0,66,0,73,0,0,0,66,0,74,0,0,0,66,0,76,0,0,0,66,0,77,0,0,0,66,0,78,0,0,0,66,0,79,0,0,0,66,0,81,0,0,0,66,0,83,0,0,0,66,0,87,0,0,0,66,0,89,0,0,0,66,0,90,0,0,0,67,0,67,0,0,0,67,0,70,0,0,0,67,0,71,0,0,0,67,0,72,0,0,0,67,0,75,0,0,0,67,0,77,0,0,0,67,0,79,0,0,0,67,0,82,0,0,0,67,0,86,0,0,0,67,0,87,0,0,0,67,0,88,0,0,0,67,0,90,0,0,0,68,0,74,0,0,0,68,0,75,0,0,0,68,0,77,0,0,0,68,0,79,0,0,0,68,0,90,0,0,0,69,0,69,0,0,0,69,0,72,0,0,0,70,0,73,0,0,0,70,0,74,0,0,0,70,0,75,0,0,0,71,0,65,0,0,0,71,0,68,0,0,0,71,0,69,0,0,0,71,0,70,0,0,0,71,0,71,0,0,0,71,0,72,0,0,0,71,0,73,0,0,0,71,0,77,0,0,0,71,0,78,0,0,0,71,0,80,0,0,0,71,0,81,0,0,0,71,0,83,0,0,0,71,0,85,0,0,0,71,0,87,0,0,0,71,0,89,0,0,0,72,0,78,0,0,0,72,0,82,0,0,0,72,0,84,0,0,0,72,0,85,0,0,0,73,0,77,0,0,0,73,0,79,0,0,0,73,0,81,0,0,0,73,0,83,0,0,0,74,0,69,0,0,0,74,0,79,0,0,0,75,0,71,0,0,0,75,0,72,0,0,0,75,0,77,0,0,0,75,0,78,0,0,0,75,0,80,0,0,0,75,0,87,0,0,0,75,0,89,0,0,0,76,0,65,0,0,0,76,0,66,0,0,0,76,0,67,0,0,0,76,0,72,0,0,0,76,0,73,0,0,0,76,0,75,0,0,0,76,0,82,0,0,0,76,0,83,0,0,0,76,0,85,0,0,0,76,0,86,0,0,0,77,0,65,0,0,0,77,0,67,0,0,0,77,0,69,0,0,0,77,0,70,0,0,0,77,0,71,0,0,0,77,0,75,0,0,0,77,0,80,0,0,0,77,0,81,0,0,0,77,0,82,0,0,0,77,0,83,0,0,0,77,0,85,0,0,0,77,0,86,0,0,0,77,0,87,0,0,0,78,0,65,0,0,0,78,0,67,0,0,0,78,0,69,0,0,0,78,0,70,0,0,0,78,0,71,0,0,0,78,0,73,0,0,0,78,0,76,0,0,0,78,0,79,0,0,0,78,0,82,0,0,0,78,0,85,0,0,0,79,0,77,0,0,0,80,0,69,0,0,0,80,0,72,0,0,0,80,0,77,0,0,0,80,0,78,0,0,0,80,0,87,0,0,0,80,0,89,0,0,0,81,0,65,0,0,0,82,0,69,0,0,0,82,0,79,0,0,0,82,0,83,0,0,0,82,0,87,0,0,0,83,0,65,0,0,0,83,0,67,0,0,0,83,0,68,0,0,0,83,0,69,0,0,0,83,0,72,0,0,0,83,0,73,0,0,0,83,0,75,0,0,0,83,0,76,0,0,0,83,0,77,0,0,0,83,0,78,0,0,0,83,0,79,0,0,0,83,0,82,0,0,0,83,0,83,0,0,0,83,0,86,0,0,0,83,0,88,0,0,0,83,0,89,0,0,0,83,0,90,0,0,0,84,0,68,0,0,0,84,0,70,0,0,0,84,0,71,0,0,0,84,0,72,0,0,0,84,0,74,0,0,0,84,0,75,0,0,0,84,0,76,0,0,0,84,0,78,0,0,0,84,0,79,0,0,0,84,0,86,0,0,0,84,0,90,0,0,0,85,0,71,0,0,0,85,0,89,0,0,0,86,0,65,0,0,0,86,0,67,0,0,0,86,0,69,0,0,0,86,0,71,0,0,0,86,0,85,0,0,0,87,0,70,0,0,0,89,0,69,0,0,0,89,0,84,0,0,0,90,0,65,0,0,0,90,0,77,0,0,0,90,0,87,0,0,0,48,0,48,0,49,0,0,0,65,0,71,0,84,0,0,0,67,0,84,0,84,0,0,0,77,0,73,0,84,0,0,0,80,0,76,0,84,0,0,0,86,0,83,0,84,0,0,0,87,0,69,0,84,0,0,0,65,0,69,0,84,0,0,0,65,0,82,0,84,0,0,0,65,0,83,0,84,0,0,0,66,0,69,0,84,0,0,0,66,0,83,0,84,0,0,0,67,0,65,0,84,0,0,0,67,0,69,0,84,0,0,0,67,0,78,0,84,0,0,0,67,0,83,0,84,0,0,0,69,0,65,0,84,0,0,0,69,0,67,0,84,0,0,0,69,0,69,0,84,0,0,0,69,0,83,0,84,0,0,0,72,0,83,0,84,0,0,0,73,0,69,0,84,0,0,0,73,0,83,0,84,0,0,0,74,0,83,0,84,0,0,0,77,0,69,0,84,0,0,0,77,0,83,0,84,0,0,0,78,0,69,0,84,0,0,0,78,0,83,0,84,0,0,0,80,0,78,0,84,0,0,0,80,0,82,0,67,0,0,0,80,0,82,0,84,0,0,0,80,0,83,0,84,0,0,0,82,0,79,0,67,0,0,0,82,0,79,0,75,0,0,0,83,0,83,0,84,0,0,0,67,0,117,0,98,0,97,0,0,0,73,0,114,0,97,0,110,0,0,0,80,0,97,0,114,0,97,0,0,0,87,0,45,0,83,0,85,0,0,0,90,0,105,0,111,0,110,0,0,0,67,0,104,0,105,0,108,0,101,0,0,0,69,0,103,0,121,0,112,0,116,0,0,0,50,0,48,0,50,0,52,0,98,0,0,0,72,0,97,0,105,0,116,0,105,0,0,0,74,0,97,0,112,0,97,0,110,0,0,0,76,0,105,0,98,0,121,0,97,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,0,0,69,0,85,0,65,0,115,0,105,0,97,0,0,0,73,0,115,0,114,0,97,0,101,0,108,0,0,0,78,0,97,0,118,0,97,0,106,0,111,0,0,0,80,0,111,0,108,0,97,0,110,0,100,0,0,0,84,0,117,0,114,0,107,0,101,0,121,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,0,0,78,0,90,0,45,0,67,0,72,0,65,0,84,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,0,0,69,0,116,0,99,0,47,0,85,0,84,0,67,0,0,0,71,0,66,0,45,0,69,0,105,0,114,0,101,0,0,0,69,0,116,0,99,0,47,0,85,0,67,0,84,0,0,0,70,0,97,0,99,0,116,0,111,0,114,0,121,0,0,0,73,0,99,0,101,0,108,0,97,0,110,0,100,0,0,0,76,0,101,0,98,0,97,0,110,0,111,0,110,0,0,0,77,0,111,0,108,0,100,0,111,0,118,0,97,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,48,0,0,0,69,0,116,0,99,0,47,0,90,0,117,0,108,0,117,0,0,0,72,0,111,0,110,0,103,0,107,0,111,0,110,0,103,0,0,0,80,0,111,0,114,0,116,0,117,0,103,0,97,0,108,0,0,0,85,0,83,0,47,0,83,0,97,0,109,0,111,0,97,0,0,0,80,0,97,0,108,0,101,0,115,0,116,0,105,0,110,0,101,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,48,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,100,0,101,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,107,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,105,0,108,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,71,0,97,0,122,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,118,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,109,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,79,0,114,0,97,0,108,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,57,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,52,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,53,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,54,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,55,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,56,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,57,0,0,0,85,0,83,0,47,0,65,0,108,0,97,0,115,0,107,0,97,0,0,0,85,0,83,0,47,0,72,0,97,0,119,0,97,0,105,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,109,0,109,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,105,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,97,0,99,0,99,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,104,0,97,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,98,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,99,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,97,0,116,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,101,0,111,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,107,0,121,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,111,0,109,0,115,0,107,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,43,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,48,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,49,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,50,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,51,0,0,0,69,0,116,0,99,0,47,0,71,0,77,0,84,0,45,0,49,0,52,0,0,0,85,0,83,0,47,0,65,0,114,0,105,0,122,0,111,0,110,0,97,0,0,0,85,0,83,0,47,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,85,0,83,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,85,0,83,0,47,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,109,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,108,0,109,0,97,0,116,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,110,0,97,0,100,0,121,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,113,0,116,0,111,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,116,0,121,0,114,0,97,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,101,0,105,0,114,0,117,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,114,0,117,0,110,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,97,0,114,0,98,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,101,0,98,0,114,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,119,0,97,0,105,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,110,0,105,0,108,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,117,0,115,0,99,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,105,0,121,0,97,0,100,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,105,0,103,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,105,0,112,0,101,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,104,0,114,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,98,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,114,0,117,0,109,0,113,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,110,0,103,0,111,0,110,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,65,0,99,0,114,0,101,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,69,0,97,0,115,0,116,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,87,0,101,0,115,0,116,0,0,0,69,0,116,0,99,0,47,0,85,0,110,0,107,0,110,0,111,0,119,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,101,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,121,0,105,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,79,0,115,0,108,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,105,0,103,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,82,0,111,0,109,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,104,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,89,0,97,0,112,0,0,0,85,0,83,0,47,0,65,0,108,0,101,0,117,0,116,0,105,0,97,0,110,0,0,0,85,0,83,0,47,0,77,0,105,0,99,0,104,0,105,0,103,0,97,0,110,0,0,0,85,0,83,0,47,0,77,0,111,0,117,0,110,0,116,0,97,0,105,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,99,0,99,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,105,0,114,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,101,0,117,0,116,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,107,0,97,0,114,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,103,0,111,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,117,0,110,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,97,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,116,0,107,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,109,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,109,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,117,0,117,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,103,0,104,0,100,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,104,0,114,0,97,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,110,0,103,0,107,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,97,0,114,0,110,0,97,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,66,0,105,0,115,0,104,0,107,0,101,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,111,0,108,0,111,0,109,0,98,0,111,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,114,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,107,0,97,0,114,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,114,0,97,0,99,0,104,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,115,0,104,0,103,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,111,0,108,0,107,0,97,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,99,0,104,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,103,0,97,0,100,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,82,0,97,0,110,0,103,0,111,0,111,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,98,0,105,0,108,0,105,0,115,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,104,0,105,0,109,0,112,0,104,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,114,0,101,0,118,0,97,0,110,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,89,0,117,0,107,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,105,0,114,0,111,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,108,0,116,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,105,0,110,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,97,0,114,0,105,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,111,0,102,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,100,0,117,0,122,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,99,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,112,0,105,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,105,0,106,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,109,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,105,0,117,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,114,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,107,0,101,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,65,0,83,0,84,0,52,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,67,0,83,0,84,0,54,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,69,0,83,0,84,0,53,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,77,0,83,0,84,0,55,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,80,0,83,0,84,0,56,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,89,0,83,0,84,0,57,0,0,0,69,0,116,0,99,0,47,0,71,0,114,0,101,0,101,0,110,0,119,0,105,0,99,0,104,0,0,0,69,0,116,0,99,0,47,0,85,0,110,0,105,0,118,0,101,0,114,0,115,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,108,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,67,0,84,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,97,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,109,0,101,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,109,0,97,0,107,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,103,0,117,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,110,0,106,0,117,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,105,0,115,0,115,0,97,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,117,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,114,0,97,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,103,0,97,0,108,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,97,0,110,0,100,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,115,0,97,0,107,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,108,0,97,0,98,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,112,0,117,0,116,0,111,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,115,0,101,0,114,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,97,0,109,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,117,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,101,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,105,0,115,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,105,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,103,0,97,0,98,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,97,0,108,0,99,0,117,0,116,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,97,0,109,0,97,0,115,0,99,0,117,0,115,0,0,0,65,0,115,0,105,0,97,0,47,0,68,0,117,0,115,0,104,0,97,0,110,0,98,0,101,0,0,0,65,0,115,0,105,0,97,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,97,0,121,0,97,0,112,0,117,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,104,0,97,0,110,0,100,0,121,0,103,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,77,0,97,0,107,0,97,0,115,0,115,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,111,0,115,0,116,0,97,0,110,0,97,0,121,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,107,0,104,0,97,0,108,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,104,0,97,0,110,0,103,0,104,0,97,0,105,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,97,0,115,0,104,0,107,0,101,0,110,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,84,0,101,0,108,0,95,0,65,0,118,0,105,0,118,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,115,0,116,0,45,0,78,0,101,0,114,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,72,0,73,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,78,0,83,0,87,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,116,0,104,0,101,0,110,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,114,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,68,0,117,0,98,0,108,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,74,0,101,0,114,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,105,0,115,0,98,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,111,0,110,0,100,0,111,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,100,0,114,0,105,0,100,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,110,0,97,0,99,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,111,0,115,0,99,0,111,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,114,0,97,0,103,0,117,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,109,0,97,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,107,0,111,0,112,0,106,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,110,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,101,0,110,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,87,0,97,0,114,0,115,0,97,0,119,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,103,0,114,0,101,0,98,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,117,0,114,0,105,0,99,0,104,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,97,0,103,0,111,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,111,0,109,0,111,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,117,0,117,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,102,0,97,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,97,0,117,0,114,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,108,0,97,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,109,0,111,0,97,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,72,0,83,0,84,0,49,0,48,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,105,0,110,0,103,0,97,0,112,0,111,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,98,0,105,0,100,0,106,0,97,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,108,0,103,0,105,0,101,0,114,0,115,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,110,0,97,0,107,0,114,0,121,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,97,0,109,0,112,0,97,0,108,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,98,0,97,0,98,0,97,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,105,0,114,0,111,0,98,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,114,0,105,0,112,0,111,0,108,0,105,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,101,0,108,0,105,0,122,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,103,0,111,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,110,0,99,0,117,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,105,0,97,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,110,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,121,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,118,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,117,0,118,0,105,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,117,0,110,0,101,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,97,0,95,0,80,0,97,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,101,0,105,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,117,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,114,0,105,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,97,0,115,0,115,0,97,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,97,0,109,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,99,0,105,0,102,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,103,0,105,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,105,0,114,0,103,0,105,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,65,0,115,0,104,0,107,0,104,0,97,0,98,0,97,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,111,0,110,0,103,0,113,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,117,0,110,0,103,0,107,0,105,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,70,0,97,0,109,0,97,0,103,0,117,0,115,0,116,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,110,0,103,0,95,0,75,0,111,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,74,0,101,0,114,0,117,0,115,0,97,0,108,0,101,0,109,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,109,0,99,0,104,0,97,0,116,0,107,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,97,0,116,0,104,0,109,0,97,0,110,0,100,0,117,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,111,0,110,0,116,0,105,0,97,0,110,0,97,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,121,0,111,0,110,0,103,0,121,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,81,0,121,0,122,0,121,0,108,0,111,0,114,0,100,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,97,0,109,0,97,0,114,0,107,0,97,0,110,0,100,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,105,0,101,0,110,0,116,0,105,0,97,0,110,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,87,0,101,0,115,0,116,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,67,0,101,0,110,0,116,0,114,0,97,0,108,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,110,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,110,0,100,0,111,0,114,0,114,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,102,0,97,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,78,0,105,0,99,0,111,0,115,0,105,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,116,0,111,0,118,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,97,0,108,0,108,0,105,0,110,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,97,0,116,0,105,0,99,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,105,0,108,0,110,0,105,0,117,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,121,0,111,0,116,0,116,0,101,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,82,0,101,0,117,0,110,0,105,0,111,0,110,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,47,0,66,0,97,0,106,0,97,0,83,0,117,0,114,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,47,0,71,0,101,0,110,0,101,0,114,0,97,0,108,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,97,0,110,0,116,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,111,0,115,0,114,0,97,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,106,0,117,0,114,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,105,0,100,0,119,0,97,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,117,0,109,0,101,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,110,0,97,0,112,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,83,0,97,0,105,0,112,0,97,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,104,0,105,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,97,0,114,0,97,0,119,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,87,0,97,0,108,0,108,0,105,0,115,0,0,0,85,0,83,0,47,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,45,0,78,0,101,0,119,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,110,0,111,0,120,0,95,0,73,0,78,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,74,0,97,0,109,0,97,0,105,0,99,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,67,0,104,0,97,0,116,0,104,0,97,0,109,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,67,0,83,0,84,0,54,0,67,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,69,0,83,0,84,0,53,0,69,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,77,0,83,0,84,0,55,0,77,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,80,0,83,0,84,0,56,0,80,0,68,0,84,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,116,0,121,0,114,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,106,0,105,0,98,0,111,0,117,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,65,0,97,0,105,0,117,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,70,0,114,0,101,0,101,0,116,0,111,0,119,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,71,0,97,0,98,0,111,0,114,0,111,0,110,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,104,0,97,0,114,0,116,0,111,0,117,0,109,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,75,0,105,0,110,0,115,0,104,0,97,0,115,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,114,0,111,0,118,0,105,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,100,0,106,0,97,0,109,0,101,0,110,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,84,0,111,0,109,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,109,0,98,0,117,0,107,0,116,0,117,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,100,0,104,0,111,0,101,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,116,0,105,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,114,0,97,0,99,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,121,0,101,0,110,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,99,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,114,0,101,0,115,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,117,0,114,0,97,0,99,0,97,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,101,0,116,0,114,0,111,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,100,0,116,0,104,0,97,0,98,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,97,0,108,0,105,0,102,0,97,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,113,0,97,0,108,0,117,0,105,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,110,0,97,0,103,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,105,0,103,0,111,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,99,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,105,0,112,0,105,0,103,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,79,0,106,0,105,0,110,0,97,0,103,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,104,0,111,0,101,0,110,0,105,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,111,0,115,0,97,0,114,0,105,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,105,0,106,0,117,0,97,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,111,0,110,0,116,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,111,0,114,0,116,0,111,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,89,0,97,0,107,0,117,0,116,0,97,0,116,0,0,0,65,0,115,0,105,0,97,0,47,0,67,0,104,0,111,0,105,0,98,0,97,0,108,0,115,0,97,0,110,0,0,0,65,0,115,0,105,0,97,0,47,0,80,0,104,0,110,0,111,0,109,0,95,0,80,0,101,0,110,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,110,0,95,0,66,0,97,0,116,0,111,0,114,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,65,0,122,0,111,0,114,0,101,0,115,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,110,0,97,0,114,0,121,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,70,0,97,0,101,0,114,0,111,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,69,0,117,0,99,0,108,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,80,0,101,0,114,0,116,0,104,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,111,0,117,0,116,0,104,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,77,0,111,0,117,0,110,0,116,0,97,0,105,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,101,0,108,0,103,0,114,0,97,0,100,0,101,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,117,0,115,0,115,0,101,0,108,0,115,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,100,0,97,0,112,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,115,0,105,0,110,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,104,0,105,0,115,0,105,0,110,0,97,0,117,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,117,0,101,0,114,0,110,0,115,0,101,0,121,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,72,0,101,0,108,0,115,0,105,0,110,0,107,0,105,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,116,0,97,0,110,0,98,0,117,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,114,0,97,0,106,0,101,0,118,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,84,0,105,0,114,0,97,0,115,0,112,0,111,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,85,0,122,0,104,0,103,0,111,0,114,0,111,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,108,0,100,0,105,0,118,0,101,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,97,0,107,0,97,0,111,0,102,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,109,0,98,0,105,0,101,0,114,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,78,0,111,0,114,0,102,0,111,0,108,0,107,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,104,0,110,0,112,0,101,0,105,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,65,0,83,0,84,0,52,0,65,0,68,0,84,0,0,0,83,0,121,0,115,0,116,0,101,0,109,0,86,0,47,0,89,0,83,0,84,0,57,0,89,0,68,0,84,0,0,0,85,0,83,0,47,0,69,0,97,0,115,0,116,0,45,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,84,0,114,0,111,0,108,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,106,0,117,0,109,0,98,0,117,0,114,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,103,0,97,0,100,0,105,0,115,0,104,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,103,0,117,0,105,0,108,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,115,0,117,0,110,0,99,0,105,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,116,0,105,0,107,0,111,0,107,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,114,0,98,0,97,0,100,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,111,0,109,0,105,0,110,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,100,0,109,0,111,0,110,0,116,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,105,0,114,0,117,0,110,0,101,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,110,0,115,0,101,0,110,0,97,0,100,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,122,0,97,0,116,0,108,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,105,0,113,0,117,0,101,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,114,0,101,0,97,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,101,0,119,0,95,0,89,0,111,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,101,0,115,0,111,0,108,0,117,0,116,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,97,0,114,0,101,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,105,0,97,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,104,0,105,0,112,0,114,0,111,0,99,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,74,0,111,0,104,0,110,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,75,0,105,0,116,0,116,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,76,0,117,0,99,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,105,0,110,0,110,0,105,0,112,0,101,0,103,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,101,0,121,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,97,0,118,0,105,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,121,0,111,0,119,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,72,0,111,0,95,0,67,0,104,0,105,0,95,0,77,0,105,0,110,0,104,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,114,0,97,0,115,0,110,0,111,0,121,0,97,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,115,0,105,0,98,0,105,0,114,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,108,0,97,0,97,0,110,0,98,0,97,0,97,0,116,0,97,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,86,0,108,0,97,0,100,0,105,0,118,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,66,0,101,0,114,0,109,0,117,0,100,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,77,0,97,0,100,0,101,0,105,0,114,0,97,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,97,0,110,0,108,0,101,0,121,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,67,0,117,0,114,0,114,0,105,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,68,0,97,0,114,0,119,0,105,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,72,0,111,0,98,0,97,0,114,0,116,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,83,0,121,0,100,0,110,0,101,0,121,0,0,0,66,0,114,0,97,0,122,0,105,0,108,0,47,0,68,0,101,0,78,0,111,0,114,0,111,0,110,0,104,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,109,0,115,0,116,0,101,0,114,0,100,0,97,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,65,0,115,0,116,0,114,0,97,0,107,0,104,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,117,0,99,0,104,0,97,0,114,0,101,0,115,0,116,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,71,0,105,0,98,0,114,0,97,0,108,0,116,0,97,0,114,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,106,0,117,0,98,0,108,0,106,0,97,0,110,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,77,0,97,0,114,0,105,0,101,0,104,0,97,0,109,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,80,0,111,0,100,0,103,0,111,0,114,0,105,0,99,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,116,0,111,0,99,0,107,0,104,0,111,0,108,0,109,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,85,0,108,0,121,0,97,0,110,0,111,0,118,0,115,0,107,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,86,0,111,0,108,0,103,0,111,0,103,0,114,0,97,0,100,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,67,0,104,0,114,0,105,0,115,0,116,0,109,0,97,0,115,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,75,0,101,0,114,0,103,0,117,0,101,0,108,0,101,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,77,0,97,0,117,0,114,0,105,0,116,0,105,0,117,0,115,0,0,0,77,0,101,0,120,0,105,0,99,0,111,0,47,0,66,0,97,0,106,0,97,0,78,0,111,0,114,0,116,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,65,0,117,0,99,0,107,0,108,0,97,0,110,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,70,0,117,0,110,0,97,0,102,0,117,0,116,0,105,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,72,0,111,0,110,0,111,0,108,0,117,0,108,0,117,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,74,0,111,0,104,0,110,0,115,0,116,0,111,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,105,0,116,0,99,0,97,0,105,0,114,0,110,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,119,0,97,0,106,0,97,0,108,0,101,0,105,0,110,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,115,0,97,0,98,0,108,0,97,0,110,0,99,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,105,0,98,0,114,0,101,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,76,0,117,0,98,0,117,0,109,0,98,0,97,0,115,0,104,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,117,0,97,0,107,0,99,0,104,0,111,0,116,0,116,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,45,0,78,0,111,0,118,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,110,0,99,0,104,0,111,0,114,0,97,0,103,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,97,0,103,0,117,0,97,0,105,0,110,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,111,0,97,0,95,0,86,0,105,0,115,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,104,0,105,0,104,0,117,0,97,0,104,0,117,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,97,0,108,0,101,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,108,0,97,0,99,0,101,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,111,0,111,0,115,0,101,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,116,0,101,0,109,0,97,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,121,0,97,0,113,0,117,0,105,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,116,0,97,0,109,0,111,0,114,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,110,0,111,0,109,0,105,0,110,0,101,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,114,0,114,0,101,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,111,0,95,0,80,0,97,0,117,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,84,0,104,0,111,0,109,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,86,0,97,0,110,0,99,0,111,0,117,0,118,0,101,0,114,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,119,0,115,0,111,0,110,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,80,0,97,0,108,0,109,0,101,0,114,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,86,0,111,0,115,0,116,0,111,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,75,0,117,0,97,0,108,0,97,0,95,0,76,0,117,0,109,0,112,0,117,0,114,0,0,0,65,0,115,0,105,0,97,0,47,0,78,0,111,0,118,0,111,0,107,0,117,0,122,0,110,0,101,0,116,0,115,0,107,0,0,0,67,0,104,0,105,0,108,0,101,0,47,0,67,0,111,0,110,0,116,0,105,0,110,0,101,0,110,0,116,0,97,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,66,0,114,0,97,0,116,0,105,0,115,0,108,0,97,0,118,0,97,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,67,0,111,0,112,0,101,0,110,0,104,0,97,0,103,0,101,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,76,0,117,0,120,0,101,0,109,0,98,0,111,0,117,0,114,0,103,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,97,0,110,0,95,0,77,0,97,0,114,0,105,0,110,0,111,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,83,0,105,0,109,0,102,0,101,0,114,0,111,0,112,0,111,0,108,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,90,0,97,0,112,0,111,0,114,0,111,0,122,0,104,0,121,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,69,0,110,0,100,0,101,0,114,0,98,0,117,0,114,0,121,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,97,0,108,0,97,0,112,0,97,0,103,0,111,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,77,0,97,0,114,0,113,0,117,0,101,0,115,0,97,0,115,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,97,0,103,0,111,0,95,0,80,0,97,0,103,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,82,0,97,0,114,0,111,0,116,0,111,0,110,0,103,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,84,0,111,0,110,0,103,0,97,0,116,0,97,0,112,0,117,0,0,0,85,0,83,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,45,0,83,0,116,0,97,0,114,0,107,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,65,0,100,0,100,0,105,0,115,0,95,0,65,0,98,0,97,0,98,0,97,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,66,0,114,0,97,0,122,0,122,0,97,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,79,0,117,0,97,0,103,0,97,0,100,0,111,0,117,0,103,0,111,0,117,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,115,0,116,0,97,0,95,0,82,0,105,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,95,0,87,0,97,0,121,0,110,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,114,0,97,0,110,0,100,0,95,0,84,0,117,0,114,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,71,0,117,0,97,0,100,0,101,0,108,0,111,0,117,0,112,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,72,0,101,0,114,0,109,0,111,0,115,0,105,0,108,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,114,0,97,0,108,0,101,0,110,0,100,0,105,0,106,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,97,0,114,0,116,0,105,0,110,0,105,0,113,0,117,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,116,0,108,0,97,0,107,0,97,0,116,0,108,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,101,0,118,0,105,0,100,0,101,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,111,0,110,0,116,0,115,0,101,0,114,0,114,0,97,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,114,0,97,0,109,0,97,0,114,0,105,0,98,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,95,0,65,0,99,0,114,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,105,0,111,0,95,0,66,0,114,0,97,0,110,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,86,0,105,0,110,0,99,0,101,0,110,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,87,0,104,0,105,0,116,0,101,0,104,0,111,0,114,0,115,0,101,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,99,0,77,0,117,0,114,0,100,0,111,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,82,0,111,0,116,0,104,0,101,0,114,0,97,0,0,0,65,0,115,0,105,0,97,0,47,0,83,0,114,0,101,0,100,0,110,0,101,0,107,0,111,0,108,0,121,0,109,0,115,0,107,0,0,0,65,0,115,0,105,0,97,0,47,0,85,0,106,0,117,0,110,0,103,0,95,0,80,0,97,0,110,0,100,0,97,0,110,0,103,0,0,0,65,0,115,0,105,0,97,0,47,0,89,0,101,0,107,0,97,0,116,0,101,0,114,0,105,0,110,0,98,0,117,0,114,0,103,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,74,0,97,0,110,0,95,0,77,0,97,0,121,0,101,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,82,0,101,0,121,0,107,0,106,0,97,0,118,0,105,0,107,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,116,0,95,0,72,0,101,0,108,0,101,0,110,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,65,0,100,0,101,0,108,0,97,0,105,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,105,0,115,0,98,0,97,0,110,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,67,0,97,0,110,0,98,0,101,0,114,0,114,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,105,0,110,0,100,0,101,0,109,0,97,0,110,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,84,0,97,0,115,0,109,0,97,0,110,0,105,0,97,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,86,0,105,0,99,0,116,0,111,0,114,0,105,0,97,0,0,0,67,0,104,0,105,0,108,0,101,0,47,0,69,0,97,0,115,0,116,0,101,0,114,0,73,0,115,0,108,0,97,0,110,0,100,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,73,0,115,0,108,0,101,0,95,0,111,0,102,0,95,0,77,0,97,0,110,0,0,0,69,0,117,0,114,0,111,0,112,0,101,0,47,0,75,0,97,0,108,0,105,0,110,0,105,0,110,0,103,0,114,0,97,0,100,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,75,0,105,0,114,0,105,0,116,0,105,0,109,0,97,0,116,0,105,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,74,0,111,0,104,0,97,0,110,0,110,0,101,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,69,0,108,0,95,0,83,0,97,0,108,0,118,0,97,0,100,0,111,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,70,0,111,0,114,0,116,0,95,0,78,0,101,0,108,0,115,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,115,0,95,0,65,0,110,0,103,0,101,0,108,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,77,0,101,0,120,0,105,0,99,0,111,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,97,0,110,0,103,0,110,0,105,0,114,0,116,0,117,0,110,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,111,0,95,0,86,0,101,0,108,0,104,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,101,0,114,0,116,0,111,0,95,0,82,0,105,0,99,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,97,0,105,0,110,0,121,0,95,0,82,0,105,0,118,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,101,0,103,0,117,0,99,0,105,0,103,0,97,0,108,0,112,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,84,0,104,0,117,0,110,0,100,0,101,0,114,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,89,0,101,0,108,0,108,0,111,0,119,0,107,0,110,0,105,0,102,0,101,0,0,0,65,0,114,0,99,0,116,0,105,0,99,0,47,0,76,0,111,0,110,0,103,0,121,0,101,0,97,0,114,0,98,0,121,0,101,0,110,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,67,0,97,0,112,0,101,0,95,0,86,0,101,0,114,0,100,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,76,0,111,0,114,0,100,0,95,0,72,0,111,0,119,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,77,0,101,0,108,0,98,0,111,0,117,0,114,0,110,0,101,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,78,0,101,0,119,0,102,0,111,0,117,0,110,0,100,0,108,0,97,0,110,0,100,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,83,0,97,0,115,0,107,0,97,0,116,0,99,0,104,0,101,0,119,0,97,0,110,0,0,0,73,0,110,0,100,0,105,0,97,0,110,0,47,0,65,0,110,0,116,0,97,0,110,0,97,0,110,0,97,0,114,0,105,0,118,0,111,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,71,0,117,0,97,0,100,0,97,0,108,0,99,0,97,0,110,0,97,0,108,0,0,0,65,0,102,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,114,0,95,0,101,0,115,0,95,0,83,0,97,0,108,0,97,0,97,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,108,0,97,0,110,0,99,0,45,0,83,0,97,0,98,0,108,0,111,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,112,0,111,0,95,0,71,0,114,0,97,0,110,0,100,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,110,0,109,0,97,0,114,0,107,0,115,0,104,0,97,0,118,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,68,0,97,0,119,0,115,0,111,0,110,0,95,0,67,0,114,0,101,0,101,0,107,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,75,0,110,0,111,0,120,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,117,0,110,0,116,0,97,0,95,0,65,0,114,0,101,0,110,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,82,0,97,0,110,0,107,0,105,0,110,0,95,0,73,0,110,0,108,0,101,0,116,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,97,0,95,0,73,0,115,0,97,0,98,0,101,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,99,0,111,0,114,0,101,0,115,0,98,0,121,0,115,0,117,0,110,0,100,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,77,0,97,0,99,0,113,0,117,0,97,0,114,0,105,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,81,0,117,0,101,0,101,0,110,0,115,0,108,0,97,0,110,0,100,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,89,0,97,0,110,0,99,0,111,0,119,0,105,0,110,0,110,0,97,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,66,0,111,0,117,0,103,0,97,0,105,0,110,0,118,0,105,0,108,0,108,0,101,0,0,0,80,0,97,0,99,0,105,0,102,0,105,0,99,0,47,0,80,0,111,0,114,0,116,0,95,0,77,0,111,0,114,0,101,0,115,0,98,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,97,0,109,0,98,0,114,0,105,0,100,0,103,0,101,0,95,0,66,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,105,0,117,0,100,0,97,0,100,0,95,0,74,0,117,0,97,0,114,0,101,0,122,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,67,0,111,0,114,0,97,0,108,0,95,0,72,0,97,0,114,0,98,0,111,0,117,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,101,0,118,0,97,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,76,0,111,0,119,0,101,0,114,0,95,0,80,0,114,0,105,0,110,0,99,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,95,0,111,0,102,0,95,0,83,0,112,0,97,0,105,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,97,0,110,0,116,0,111,0,95,0,68,0,111,0,109,0,105,0,110,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,116,0,95,0,66,0,97,0,114,0,116,0,104,0,101,0,108,0,101,0,109,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,83,0,119,0,105,0,102,0,116,0,95,0,67,0,117,0,114,0,114,0,101,0,110,0,116,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,80,0,111,0,108,0,101,0,0,0,65,0,117,0,115,0,116,0,114,0,97,0,108,0,105,0,97,0,47,0,66,0,114,0,111,0,107,0,101,0,110,0,95,0,72,0,105,0,108,0,108,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,66,0,97,0,104,0,105,0,97,0,95,0,66,0,97,0,110,0,100,0,101,0,114,0,97,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,80,0,111,0,114,0,116,0,45,0,97,0,117,0,45,0,80,0,114,0,105,0,110,0,99,0,101,0,0,0,65,0,116,0,108,0,97,0,110,0,116,0,105,0,99,0,47,0,83,0,111,0,117,0,116,0,104,0,95,0,71,0,101,0,111,0,114,0,103,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,74,0,117,0,106,0,117,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,108,0,116,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,77,0,97,0,114,0,101,0,110,0,103,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,87,0,105,0,110,0,97,0,109,0,97,0,99,0,0,0,67,0,97,0,110,0,97,0,100,0,97,0,47,0,69,0,97,0,115,0,116,0,45,0,83,0,97,0,115,0,107,0,97,0,116,0,99,0,104,0,101,0,119,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,111,0,114,0,100,0,111,0,98,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,77,0,101,0,110,0,100,0,111,0,122,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,84,0,117,0,99,0,117,0,109,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,85,0,115,0,104,0,117,0,97,0,105,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,84,0,101,0,108,0,108,0,95,0,67,0,105,0,116,0,121,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,86,0,105,0,110,0,99,0,101,0,110,0,110,0,101,0,115,0,0,0,65,0,110,0,116,0,97,0,114,0,99,0,116,0,105,0,99,0,97,0,47,0,68,0,117,0,109,0,111,0,110,0,116,0,68,0,85,0,114,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,76,0,97,0,95,0,82,0,105,0,111,0,106,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,74,0,117,0,97,0,110,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,83,0,97,0,110,0,95,0,76,0,117,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,80,0,101,0,116,0,101,0,114,0,115,0,98,0,117,0,114,0,103,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,97,0,116,0,97,0,109,0,97,0,114,0,99,0,97,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,76,0,111,0,117,0,105,0,115,0,118,0,105,0,108,0,108,0,101,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,75,0,101,0,110,0,116,0,117,0,99,0,107,0,121,0,47,0,77,0,111,0,110,0,116,0,105,0,99,0,101,0,108,0,108,0,111,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,66,0,101,0,117,0,108,0,97,0,104,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,67,0,101,0,110,0,116,0,101,0,114,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,47,0,73,0,110,0,100,0,105,0,97,0,110,0,97,0,112,0,111,0,108,0,105,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,66,0,117,0,101,0,110,0,111,0,115,0,95,0,65,0,105,0,114,0,101,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,82,0,105,0,111,0,95,0,71,0,97,0,108,0,108,0,101,0,103,0,111,0,115,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,78,0,111,0,114,0,116,0,104,0,95,0,68,0,97,0,107,0,111,0,116,0,97,0,47,0,78,0,101,0,119,0,95,0,83,0,97,0,108,0,101,0,109,0,0,0,65,0,109,0,101,0,114,0,105,0,99,0,97,0,47,0,65,0,114,0,103,0,101,0,110,0,116,0,105,0,110,0,97,0,47,0,67,0,111,0,109,0,111,0,100,0,82,0,105,0,118,0,97,0,100,0,97,0,118,0,105,0,97,0,0,0,126,2,217,10,240,2,216,2,244,2,248,2,94,14,27,8,198,29,109,14,221,10,235,10,249,10,7,11,21,11,35,11,202,18,217,29,27,23,40,8,246,26,53,8,124,14,66,8,21,34,218,18,49,11,234,18,250,18,10,19,63,11,133,32,131,6,139,14,26,19,77,11,42,19,79,8,8,27,143,6,91,11,26,27,105,11,119,11,133,11,147,11,154,14,44,23,58,19,169,14,74,19,161,11,44,27,236,29,62,27,90,19,106,19,184,14,92,8,122,19,105,8,80,27,61,23,138,19,98,27,245,38,76,38,82,39,42,37,177,36,224,37,68,37,20,39,201,36,251,37,22,38,94,37,120,37,175,11,78,23,95,23,118,8,189,11,108,36,112,23,203,11,199,14,42,34,116,27,214,14,217,11,63,34,122,35,84,34,229,14,154,19,134,27,170,19,244,14,186,19,152,27,144,35,166,35,202,19,255,29,218,19,3,15,234,19,105,34,18,15,126,34,33,15,250,19,129,23,146,23,163,23,153,32,180,23,173,32,18,30,170,27,188,27,10,20,206,27,37,30,26,20,56,30,224,27,242,27,48,15,42,20,63,15,75,30,216,38,147,34,225,36,49,38,146,37,188,35,172,37,249,36,168,34,78,15,58,20,106,18,231,11,93,15,104,38,132,38,90,18,94,30,108,15,131,8,193,32,113,30,210,35,123,15,74,20,138,15,90,20,132,30,4,28,197,23,106,20,22,28,153,15,151,30,213,32,214,23,122,20,40,28,170,30,231,23,189,30,168,15,248,23,138,20,144,8,154,20,160,38,188,38,51,39,157,8,170,20,183,15,233,32,208,30,186,20,131,36,232,35,227,30,253,32,17,33,189,34,37,33,210,34,198,15,213,15,9,24,246,30,202,20,231,34,26,24,43,24,254,35,58,28,252,34,60,24,245,11,20,36,77,24,94,24,111,24,76,28,9,31,42,36,57,33,193,10,77,33,218,20,234,20,250,20,94,28,228,15,28,31,128,24,10,21,97,33,145,24,162,24,198,37,17,35,112,28,47,31,130,28,66,31,64,36,179,24,10,23,148,28,117,33,98,4,155,6,112,5,167,6,123,5,179,6,3,12,243,15,191,6,170,8,183,8,108,4,196,8,209,8,203,6,222,8,215,6,17,12,134,5,26,21,2,16,17,16,235,8,145,5,31,12,156,5,118,4,167,5,45,12,32,16,128,4,227,6,239,6,196,24,47,16,138,4,248,8,59,12,5,9,73,12,62,16,178,5,77,16,18,9,31,9,92,16,87,12,101,12,44,9,213,24,166,28,57,9,251,6,189,5,200,5,70,9,115,12,7,7,19,7,83,9,184,28,230,24,148,4,158,4,42,21,107,16,122,16,211,5,129,12,137,16,96,9,31,7,43,7,143,12,152,16,222,5,157,12,79,14,85,31,55,7,171,12,109,9,67,7,185,12,79,7,122,9,233,5,244,5,104,31,247,24,58,21,91,7,199,12,167,16,8,25,135,9,103,7,123,31,148,9,74,21,25,25,90,21,137,33,106,21,182,16,142,31,42,25,161,31,154,36,180,31,59,25,207,10,199,31,218,31,86,36,237,31,76,25,93,25,122,21,110,25,213,12,0,32,157,33,177,33,227,12,138,21,154,21,38,35,170,21,127,25,19,32,38,32,197,16,59,35,252,2,0,3,115,7,144,25,127,7,139,7,4,3,8,3,12,3,16,3,146,18,220,2,186,21,212,16,17,37,227,16,202,21,197,33,242,16,217,33,161,9,202,28,57,32,96,3,20,3,24,3,28,3,32,3,162,18,127,3,234,3,215,3,78,4,168,4,255,5,10,6,21,6,178,4,188,4,198,4,208,4,218,4,228,4,238,4,248,4,88,4,2,5,32,6,43,6,54,6,65,6,76,6,12,5,22,5,32,5,42,5,52,5,62,5,72,5,82,5,23,4,165,10,239,3,223,3,179,10,151,7,32,4,161,25,1,17,178,25,241,12,16,17,218,21,255,12,220,28,234,21,195,25,250,21,10,22,26,22,238,28,13,13,212,25,42,22,58,22,76,32,74,22,27,13,95,32,163,7,174,9,175,7,41,13,229,25,55,13,0,29,69,13,187,9,246,25,200,9,83,13,97,13,31,17,187,7,213,9,7,26,111,13,199,7,211,7,125,13,18,29,90,22,46,17,36,29,139,13,226,9,24,26,61,17,153,13,106,22,41,26,122,22,239,9,76,17,167,13,91,17,58,26,181,13,195,13,54,29,209,13,247,3,46,0,231,3,219,3,82,4,92,4,27,4,169,10,36,3,41,4,40,3,44,3,255,3,237,33,223,13,75,26,252,9,237,13,92,26,223,7,138,22,109,26,106,17,121,17,101,3,171,3,48,3,114,18,145,3,236,26,151,3,52,3,224,2,56,3,178,18,126,26,136,17,151,17,60,3,64,3,34,0,207,3,178,3,228,2,68,3,72,3,76,3,80,3,194,18,9,10,143,26,80,35,122,18,251,13,166,17,9,14,72,29,154,22,22,10,160,26,90,29,170,22,1,34,35,10,177,26,194,26,181,17,114,32,196,17,228,26,211,17,108,29,226,17,23,14,48,10,186,22,241,17,126,29,37,14,211,26,202,22,0,18,101,35,144,29,15,18,51,14,30,18,45,18,162,29,61,10,74,10,60,18,235,7,185,3,50,4,84,3,88,3,92,3,84,14,87,10,218,22,100,10,138,18,113,10,154,18,65,14,126,10,170,18,139,10,186,18,152,10,234,22,192,3,243,3,92,5,247,7,87,6,98,6,250,22,109,6,102,5,180,29,3,8,15,8,120,6,75,18,59,4,227,3,183,10,232,2,111,3,236,2,36,4,126,2,13,0,13,0,19,0,76,0,1,0,115,0,129,1,237,2,96,1,127,0,127,0,163,0,51,1,135,1,153,1,20,2,54,1,15,1,76,0,240,1,79,0,138,1,116,2,170,2,84,1,63,1,102,1,110,2,39,1,209,2,203,2,125,2,173,2,95,2,86,2,112,0,35,2,114,1,146,2,241,0,112,0,206,2,144,1,175,0,231,1,137,2,119,2,228,1,151,0,140,2,29,2,8,2,6,1,18,1,233,2,163,0,157,0,161,2,23,2,1,0,1,0,235,0,232,0,16,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,19,0,247,0,71,2,4,0,1,0,16,0,22,0,3,1,16,0,45,1,4,0,16,0,66,1,1,0,19,0,4,0,16,0,22,0,185,2,19,0,123,1,207,1,1,0,22,0,22,0,4,0,19,0,69,1,4,0,16,0,75,1,49,0,4,0,4,0,1,0,1,0,90,1,4,0,16,0,128,2,22,0,4,0,1,0,16,0,4,0,49,0,4,0,228,3,117,1,141,1,217,2,124,0,156,1,4,0,118,0,22,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,4,0,4,0,148,0,19,0,1,0,1,0,1,0,1,0,33,1,30,1,56,2,1,0,1,0,131,2,16,0,38,2,16,0,249,1,5,2,22,0,22,0,19,0,1,0,22,0,1,0,22,0,62,2,4,0,22,0,176,2,4,0,11,2,36,1,1,0,4,0,1,0,16,0,1,0,1,0,1,0,49,0,22,0,181,0,4,0,122,2,1,0,165,1,221,2,16,0,16,0,193,0,43,0,4,0,4,0,16,0,4,0,4,0,16,0,19,0,22,0,16,0,43,0,93,1,16,0,49,0,1,0,1,0,21,1,4,0,198,1,216,1,217,0,182,2,4,0,159,1,49,0,4,0,22,0,4,0,188,2,4,0,217,0,4,0,4,0,1,0,4,0,25,0,25,0,25,0,13,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,25,0,205,0,197,2,31,0,186,1,10,0,31,0,31,0,208,0,208,0,31,0,177,1,12,1,253,0,149,2,10,0,213,1,189,1,27,1,103,18,10,0,64,0,28,0,28,0,225,1,67,0,134,2,67,0,158,2,226,0,152,2,73,0,196,0,28,0,196,0,100,0,139,0,64,0,10,0,94,0,52,0,52,0,82,0,229,0,10,0,187,0,28,0,178,0,178,0,10,0,103,18,10,0,172,0,172,0,204,1,169,0,169,0,10,0,52,0,59,2,53,2,73,0,10,0,10,0,10,0,31,0,192,1,52,0,201,1,74,2,31,0,31,0,166,0,89,2,100,0,10,0,214,0,154,0,28,0,202,0,10,0,211,0,214,0,120,1,145,0,82,0,109,0,109,0,85,0,10,0,52,0,64,0,64,0,28,0,10,0,210,1,10,0,10,0,166,0,10,0,103,0,55,0,24,1,79,0,72,1,130,0,130,0,205,0,55,0,180,1,147,1,101,2,111,1,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,13,0,16,0,67,0,16,0,16,0,16,0,16,0,175,0,70,0,4,0,1,0,1,0,28,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,4,0,43,0,43,0,118,0,151,0,133,0,136,0,181,0,1,0,76,0,142,0,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,41,2,223,0,10,0,136,0,46,0,83,2,121,0,107,2,70,0,80,2,168,1,121,0,160,0,87,1,142,0,132,1,126,1,105,1,171,1,94,0,183,1,10,0,58,0,10,0,58,0,55,0,104,2,46,0,234,1,79,0,220,3,250,0,42,1,243,1,10,0,73,0,44,2,133,0,246,1,81,1,237,1,225,2,10,0,113,2,0,1,10,0,58,0,255,1,9,1,98,2,99,1,238,0,160,0,10,0,58,0,222,1,179,2,212,3,229,2,10,0,190,0,162,1,58,0,57,1,212,2,46,0,46,0,212,2,212,2,212,2,212,2,212,2,1,0,139,0,1,0,103,18,115,0,252,1,174,1,78,1,48,1,195,1,143,2,92,2,17,2,14,2,200,2,77,2,145,0,82,0,85,0,148,0,85,0,88,0,157,0,70,0,220,0,1,0,1,0,22,0,22,0,22,0,103,0,34,0,34,0,34,0,1,0,187,0,1,0,28,0,193,0,1,0,1,0,220,0,34,0,184,0,34,0,37,0,43,0,191,2,61,0,155,2,108,1,167,2,124,0,91,0,199,0,150,1,1,0,97,0,61,0,61,0,37,0,88,0,88,0,91,0,97,0,47,2,50,2,32,2,26,2,40,0,68,2,65,2,37,0,37,0,184,0,60,1,2,2,40,0,91,0,61,0,164,2,37,0,97,0,194,2,37,0,190,0,55,0,211,0,154,0,199,0,202,0,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,212,2,94,0,212,2,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,40,0,212,2,212,2,100,0,10,0,55,0,212,2,170,170,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,8,0,0,0,226,255,255,255,255,255,255,255,172,38,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,172,38,0,0,1,0,0,0,16,14,0,0,11,0,0,0,8,0,0,0,2,0,0,0,255,255,255,255,64,56,0,0,2,0,0,0,3,0,0,0,2,0,0,0,255,255,255,255,48,42,0,0,2,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,1,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,16,14,0,0,11,0,0,0,3,0,0,0,226,255,255,255,250,255,255,255,0,0,0,0,0,0,0,0,9,0,0,0,225,255,255,255,251,255,255,255,128,81,1,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,8,7,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,48,42,0,0,0,0,0,0,16,14,0,0,11,0,0,0,8,0,0,0,226,255,255,255,255,255,255,255,32,28,0,0,1,0,0,0,3,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,1,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,226,255,255,255,249,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,226,255,255,255,249,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,9,0,0,0,1,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,2,0,0,0,22,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,16,14,0,0,11,0,0,0,3,0,0,0,226,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,16,14,0,0,2,0,0,0,32,28,0,0,11,0,0,0,2,0,0,0,8,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,10,0,0,0,1,0,0,0,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,11,0,0,0,2,0,0,0,23,0,0,0,250,255,255,255,32,28,0,0,0,0,0,0,9,0,0,0,225,255,255,255,255,255,255,255,32,28,0,0,0,0,0,0,16,14,0,0,23,0,144,0,147,0,150,0,153,0,156,0,163,0,171,0,177,0,182,0,185,0,192,0,198,0,204,0,207,0,215,0,223,0,226,0,236,0,241,0,249,0,255,0,5,1,8,1,127,22,0,224,139,22,0,224,151,22,0,224,163,22,0,224,175,22,0,224,187,22,0,224,199,22,0,224,211,22,0,224,223,22,0,224,235,22,0,224,247,22,0,224,3,23,0,224,15,23,0,224,27,23,0,224,39,23,0,224,51,23,0,224,63,23,0,224,75,23,0,224,87,23,0,224,99,23,0,224,111,23,0,224,123,23,0,224,135,23,0,224,14,0,0,0,5,0,0,0,6,0,0,0,11,0,0,0,13,0,0,0,21,0,0,0,22,0,0,0,27,0,0,0,38,0,0,0,51,0,0,0,52,0,0,0,55,0,0,0,91,1,0,0,93,1,0,0,5,2,0,0,1,0,0,0,72,146,230,146,1,0,0,0,1,170,170,170,4,0,0,0,56,252,255,255,0,0,0,0,0,0,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,182,23,0,224,197,23,0,224,199,23,0,16,201,23,0,224,33,0,0,0,79,80,96,145,240,120,71,155,112,44,215,155,112,145,188,156,240,72,192,157,112,254,137,158,240,42,160,159,240,165,96,160,240,12,128,161,240,18,46,162,240,76,122,163,240,129,53,164,112,6,184,164,112,6,255,198,128,186,88,199,160,9,218,199,16,52,146,207,0,0,138,208,16,22,114,209,112,36,78,210,112,7,75,212,0,211,206,229,240,176,92,243,240,193,120,2,240,200,67,3,0,215,207,13,240,68,173,14,0,90,120,15,16,89,104,16,112,67,118,18,128,66,102,19,16,124,95,20,0,95,79,21,2,0,0,0,255,255,255,255,36,155,201,107,170,170,170,170,34,0,0,0,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,5,4,5,4,1,4,1,2,1,2,4,5,4,1,2,1,4,170,170,12,0,0,0,220,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,49,2,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,213,23,0,224,247,23,0,224,251,23,0,16,5,24,0,224,2,0,0,0,144,156,230,146,16,97,103,9,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,100,241,255,255,0,0,0,0,240,241,255,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,48,0,66,0,54,0,25,24,0,224,31,24,0,16,33,24,0,224,3,0,0,0,3,0,0,0,18,0,0,0,147,1,0,0,128,0,0,0,224,180,147,200,208,123,250,200,224,239,252,201,208,232,199,202,96,174,203,203,208,41,223,204,224,225,172,205,208,244,198,206,224,102,143,207,208,121,169,208,224,96,132,209,80,173,138,210,96,99,54,232,80,45,244,232,96,185,11,234,208,96,213,234,240,250,236,235,0,109,181,236,240,127,207,237,0,242,151,238,112,179,176,239,128,37,121,240,240,230,145,241,0,89,90,242,112,26,115,243,128,140,59,244,112,159,85,245,128,17,30,246,240,210,54,247,0,69,255,247,112,6,24,249,0,202,225,249,240,57,249,250,128,253,194,251,240,190,219,252,128,130,165,253,112,242,188,254,0,182,134,255,240,37,158,0,128,233,103,1,112,89,127,2,0,29,73,3,112,222,97,4,0,162,43,5,240,17,67,6,128,213,12,7,112,69,36,8,0,9,238,8,240,120,5,10,128,60,207,10,240,253,231,11,128,193,177,12,112,49,201,13,0,245,146,14,240,100,170,15,128,40,116,16,112,152,139,17,0,92,85,18,112,29,110,19,0,225,55,20,240,80,79,21,128,20,25,22,240,147,160,23,0,72,250,23,240,163,112,25,128,123,219,25,240,60,244,26,128,0,190,27,112,112,213,28,0,52,159,29,240,163,182,30,128,103,128,31,112,215,151,32,0,155,97,33,112,92,122,34,0,32,68,35,112,39,98,36,128,83,37,37,112,195,60,38,0,135,6,39,240,246,29,40,128,186,231,40,240,123,0,42,128,63,202,42,112,175,225,43,0,115,171,44,240,226,194,45,128,166,140,46,224,19,160,47,208,12,107,48,224,245,127,49,208,238,74,50,224,215,95,51,208,208,42,52,224,185,63,53,208,178,10,54,96,214,40,55,80,207,243,55,96,184,8,57,80,177,211,57,96,154,232,58,80,147,179,59,96,124,200,60,80,117,147,61,96,94,168,62,80,87,115,63,224,122,145,64,208,115,92,65,224,92,113,66,208,85,60,67,224,62,81,68,80,253,18,69,224,32,49,70,80,106,224,70,224,2,17,72,208,17,183,72,224,228,240,73,80,185,141,74,96,1,218,75,208,189,97,76,224,88,137,76,80,250,164,76,224,56,117,83,208,137,172,83,96,188,218,83,80,130,36,84,96,240,74,100,80,211,58,101,2,0,0,0,255,255,255,255,171,77,189,125,170,170,170,170,170,170,170,170,129,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,85,29,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,32,28,0,112,127,3,0,96,232,7,0,112,45,24,0,224,49,24,0,224,178,24,0,224,183,24,0,16,217,24,0,224,94,0,0,0,156,249,81,150,128,20,255,198,112,172,88,199,128,237,217,199,240,50,161,210,0,164,53,219,240,39,238,219,64,114,37,251,112,239,194,251,128,132,107,8,240,109,198,8,0,12,232,11,240,71,97,12,128,63,201,13,112,242,142,14,128,81,211,15,112,163,39,16,0,166,183,26,240,111,24,30,128,230,65,72,112,34,187,72,0,26,35,74,112,213,141,74,128,192,220,75,112,229,93,76,128,184,151,77,240,140,52,78,160,160,156,79,160,187,8,80,32,154,49,80,160,167,103,80,160,130,124,81,160,203,216,81,160,158,5,82,160,115,108,82,160,122,55,83,160,33,174,83,32,70,220,83,160,85,76,84,160,92,23,85,32,224,124,85,160,4,171,85,160,55,44,86,160,62,247,86,160,135,83,87,32,172,129,87,32,84,21,88,160,32,215,88,160,244,32,89,160,83,88,89,32,54,245,89,160,2,183,90,32,156,247,90,160,192,37,91,160,67,206,92,32,104,252,92,160,176,155,94,160,15,211,94,32,88,114,96,160,124,160,96,32,197,63,98,32,36,119,98,160,108,22,100,32,145,68,100,32,20,237,101,160,56,27,102,32,129,186,103,32,224,241,103,160,40,145,105,32,77,191,105,32,208,103,107,160,244,149,107,32,61,53,109,32,156,108,109,160,228,11,111,32,9,58,111,160,81,217,112,160,176,16,113,32,249,175,114,160,29,222,114,160,160,134,116,32,197,180,116,160,13,84,118,160,108,139,118,32,181,42,120,160,217,88,120,32,34,248,121,32,129,47,122,160,201,206,123,160,40,6,124,32,113,165,125,160,149,211,125,32,222,114,127,32,61,170,127,204,0,0,0,0,0,0,0,160,133,73,129,0,0,0,0,32,170,119,129,0,0,0,0,32,45,32,131,0,0,0,0,160,81,78,131,0,0,0,0,32,154,237,132,0,0,0,0,32,249,36,133,0,0,0,0,160,65,196,134,0,0,0,0,32,102,242,134,0,0,0,0,160,174,145,136,0,0,0,0,160,13,201,136,0,0,0,0,32,86,104,138,0,0,0,0,32,181,159,138,0,0,0,0,160,253,62,140,0,0,0,0,32,34,109,140,0,0,0,0,160,106,12,142,0,0,0,0,160,201,67,142,0,0,0,0,32,18,227,143,0,0,0,0,160,54,17,144,0,0,0,0,160,185,185,145,0,0,0,0,32,222,231,145,0,0,0,0,160,38,135,147,0,0,0,0,160,133,190,147,0,0,0,0,32,206,93,149,0,0,0,0,160,242,139,149,0,0,0,0,32,59,43,151,0,0,0,0,32,154,98,151,0,0,0,0,160,226,1,153,0,0,0,0,160,65,57,153,0,0,0,0,32,138,216,154,0,0,0,0,160,174,6,155,0,0,0,0,32,247,165,156,0,0,0,0,32,86,221,156,0,0,0,0,160,158,124,158,0,0,0,0,32,195,170,158,0,0,0,0,32,70,83,160,0,0,0,0,160,106,129,160,0,0,0,0,32,179,32,162,0,0,0,0,32,18,88,162,0,0,0,0,160,90,247,163,0,0,0,0,32,127,37,164,0,0,0,0,160,199,196,165,0,0,0,0,160,38,252,165,0,0,0,0,32,111,155,167,0,0,0,0,32,206,210,167,0,0,0,0,160,22,114,169,0,0,0,0,32,59,160,169,0,0,0,0,160,131,63,171,0,0,0,0,160,226,118,171,0,0,0,0,32,43,22,173,0,0,0,0,160,79,68,173,0,0,0,0,160,210,236,174,0,0,0,0,32,247,26,175,0,0,0,0,160,63,186,176,0,0,0,0,160,158,241,176,0,0,0,0,32,231,144,178,0,0,0,0,160,11,191,178,0,0,0,0,32,84,94,180,0,0,0,0,32,179,149,180,0,0,0,0,160,251,52,182,0,0,0,0,160,90,108,182,0,0,0,0,32,163,11,184,0,0,0,0,160,199,57,184,0,0,0,0,32,16,217,185,0,0,0,0,32,111,16,186,0,0,0,0,160,183,175,187,0,0,0,0,32,220,221,187,0,0,0,0,32,95,134,189,0,0,0,0,160,131,180,189,0,0,0,0,32,204,83,191,0,0,0,0,32,43,139,191,0,0,0,0,160,115,42,193,0,0,0,0,32,152,88,193,0,0,0,0,160,224,247,194,0,0,0,0,160,63,47,195,0,0,0,0,32,136,206,196,0,0,0,0,32,231,5,197,0,0,0,0,160,47,165,198,0,0,0,0,32,84,211,198,0,0,0,0,160,156,114,200,0,0,0,0,160,251,169,200,0,0,0,0,32,68,73,202,0,0,0,0,160,104,119,202,0,0,0,0,160,235,31,204,0,0,0,0,32,16,78,204,0,0,0,0,160,88,237,205,0,0,0,0,160,183,36,206,0,0,0,0,32,0,196,207,0,0,0,0,160,36,242,207,0,0,0,0,32,109,145,209,0,0,0,0,32,204,200,209,0,0,0,0,160,20,104,211,0,0,0,0,32,57,150,211,0,0,0,0,32,188,62,213,0,0,0,0,160,224,108,213,0,0,0,0,32,41,12,215,0,0,0,0,32,136,67,215,0,0,0,0,160,208,226,216,0,0,0,0,32,245,16,217,0,0,0,0,32,120,185,218,0,0,0,0,160,156,231,218,0,0,0,0,32,229,134,220,0,0,0,0,32,68,190,220,170,170,170,170,170,170,170,170,196,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,8,0,0,0,228,248,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,4,0,48,0,120,0,66,0,54,0,170,170,237,24,0,224,76,25,0,224,27,26,0,16,77,26,0,224,43,0,0,0,112,117,214,158,96,110,161,159,112,239,5,170,0,110,231,170,240,167,201,173,0,50,167,174,112,79,160,175,0,20,135,176,0,122,137,177,128,48,112,178,64,114,37,251,112,239,194,251,128,132,107,8,240,109,198,8,0,12,232,11,240,71,97,12,128,63,201,13,112,242,142,14,128,81,211,15,112,163,39,16,0,166,183,26,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,0,181,54,126,170,170,170,170,170,170,170,170,170,170,170,170,44,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,4,251,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,93,26,0,224,137,26,0,224,143,26,0,16,155,26,0,224,83,0,0,0,224,240,72,188,144,176,209,11,0,12,232,11,240,71,97,12,128,63,201,13,112,242,142,14,128,81,211,15,112,163,39,16,128,230,65,72,112,34,187,72,0,26,35,74,112,213,141,74,128,192,220,75,112,229,93,76,128,184,151,77,240,140,52,78,160,160,156,79,160,187,8,80,32,154,49,80,160,167,103,80,160,130,124,81,160,203,216,81,160,158,5,82,160,115,108,82,160,122,55,83,160,33,174,83,32,70,220,83,160,85,76,84,160,92,23,85,32,224,124,85,160,4,171,85,160,55,44,86,160,62,247,86,160,135,83,87,32,172,129,87,32,84,21,88,160,32,215,88,160,244,32,89,160,83,88,89,32,54,245,89,160,2,183,90,32,156,247,90,160,192,37,91,160,67,206,92,32,104,252,92,160,176,155,94,160,15,211,94,32,88,114,96,160,124,160,96,32,197,63,98,32,36,119,98,160,108,22,100,32,145,68,100,32,20,237,101,160,56,27,102,32,129,186,103,32,224,241,103,160,40,145,105,32,77,191,105,32,208,103,107,160,244,149,107,32,61,53,109,32,156,108,109,160,228,11,111,32,9,58,111,160,81,217,112,160,176,16,113,32,249,175,114,160,29,222,114,160,160,134,116,32,197,180,116,160,13,84,118,160,108,139,118,32,181,42,120,160,217,88,120,32,34,248,121,32,129,47,122,160,201,206,123,160,40,6,124,32,113,165,125,160,149,211,125,32,222,114,127,32,61,170,127,204,0,0,0,0,0,0,0,160,133,73,129,0,0,0,0,32,170,119,129,0,0,0,0,32,45,32,131,0,0,0,0,160,81,78,131,0,0,0,0,32,154,237,132,0,0,0,0,32,249,36,133,0,0,0,0,160,65,196,134,0,0,0,0,32,102,242,134,0,0,0,0,160,174,145,136,0,0,0,0,160,13,201,136,0,0,0,0,32,86,104,138,0,0,0,0,32,181,159,138,0,0,0,0,160,253,62,140,0,0,0,0,32,34,109,140,0,0,0,0,160,106,12,142,0,0,0,0,160,201,67,142,0,0,0,0,32,18,227,143,0,0,0,0,160,54,17,144,0,0,0,0,160,185,185,145,0,0,0,0,32,222,231,145,0,0,0,0,160,38,135,147,0,0,0,0,160,133,190,147,0,0,0,0,32,206,93,149,0,0,0,0,160,242,139,149,0,0,0,0,32,59,43,151,0,0,0,0,32,154,98,151,0,0,0,0,160,226,1,153,0,0,0,0,160,65,57,153,0,0,0,0,32,138,216,154,0,0,0,0,160,174,6,155,0,0,0,0,32,247,165,156,0,0,0,0,32,86,221,156,0,0,0,0,160,158,124,158,0,0,0,0,32,195,170,158,0,0,0,0,32,70,83,160,0,0,0,0,160,106,129,160,0,0,0,0,32,179,32,162,0,0,0,0,32,18,88,162,0,0,0,0,160,90,247,163,0,0,0,0,32,127,37,164,0,0,0,0,160,199,196,165,0,0,0,0,160,38,252,165,0,0,0,0,32,111,155,167,0,0,0,0,32,206,210,167,0,0,0,0,160,22,114,169,0,0,0,0,32,59,160,169,0,0,0,0,160,131,63,171,0,0,0,0,160,226,118,171,0,0,0,0,32,43,22,173,0,0,0,0,160,79,68,173,0,0,0,0,160,210,236,174,0,0,0,0,32,247,26,175,0,0,0,0,160,63,186,176,0,0,0,0,160,158,241,176,0,0,0,0,32,231,144,178,0,0,0,0,160,11,191,178,0,0,0,0,32,84,94,180,0,0,0,0,32,179,149,180,0,0,0,0,160,251,52,182,0,0,0,0,160,90,108,182,0,0,0,0,32,163,11,184,0,0,0,0,160,199,57,184,0,0,0,0,32,16,217,185,0,0,0,0,32,111,16,186,0,0,0,0,160,183,175,187,0,0,0,0,32,220,221,187,0,0,0,0,32,95,134,189,0,0,0,0,160,131,180,189,0,0,0,0,32,204,83,191,0,0,0,0,32,43,139,191,0,0,0,0,160,115,42,193,0,0,0,0,32,152,88,193,0,0,0,0,160,224,247,194,0,0,0,0,160,63,47,195,0,0,0,0,32,136,206,196,0,0,0,0,32,231,5,197,0,0,0,0,160,47,165,198,0,0,0,0,32,84,211,198,0,0,0,0,160,156,114,200,0,0,0,0,160,251,169,200,0,0,0,0,32,68,73,202,0,0,0,0,160,104,119,202,0,0,0,0,160,235,31,204,0,0,0,0,32,16,78,204,0,0,0,0,160,88,237,205,0,0,0,0,160,183,36,206,0,0,0,0,32,0,196,207,0,0,0,0,160,36,242,207,0,0,0,0,32,109,145,209,0,0,0,0,32,204,200,209,0,0,0,0,160,20,104,211,0,0,0,0,32,57,150,211,0,0,0,0,32,188,62,213,0,0,0,0,160,224,108,213,0,0,0,0,32,41,12,215,0,0,0,0,32,136,67,215,0,0,0,0,160,208,226,216,0,0,0,0,32,245,16,217,0,0,0,0,32,120,185,218,0,0,0,0,160,156,231,218,0,0,0,0,32,229,134,220,0,0,0,0,32,68,190,220,170,170,170,170,185,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,170,8,0,0,0,160,243,255,255,0,0,0,0,240,241,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,4,0,48,0,120,0,66,0,54,0,170,170,177,26,0,224,5,27,0,224,211,27,0,16,3,28,0,224,3,0,0,0,30,0,0,0,44,0,0,0,45,0,0,0,5,0,0,0,104,207,70,130,128,140,174,204,112,111,158,205,128,110,142,206,112,81,126,207,2,0,0,0,255,255,255,255,64,65,123,109,170,170,170,170,170,170,170,170,170,170,170,170,6,0,0,0,1,2,3,2,3,2,170,170,8,0,0,0,64,26,0,0,0,0,0,0,24,21,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,19,28,0,224,23,28,0,224,29,28,0,224,35,28,0,16,38,28,0,224,35,0,0,0,220,218,163,182,224,23,158,0,80,52,122,1,224,249,125,2,208,103,91,3,224,126,96,4,208,236,61,5,224,96,64,6,80,32,31,7,224,66,32,8,208,83,0,9,224,36,0,10,80,135,225,10,224,6,224,11,80,12,196,12,224,232,191,13,208,63,165,14,96,5,169,15,80,115,134,16,96,231,136,17,208,166,103,18,96,201,104,19,208,43,74,20,96,171,72,21,80,95,43,22,96,141,40,23,208,146,12,24,96,111,8,25,80,198,237,25,224,139,241,26,80,75,208,27,224,109,209,28,208,126,177,29,32,69,128,56,80,26,23,96,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,8,0,0,0,164,29,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,55,28,0,224,91,28,0,16,101,28,0,224,35,0,0,0,0,218,163,182,224,23,158,0,80,52,122,1,224,249,125,2,208,103,91,3,224,126,96,4,208,236,61,5,224,96,64,6,80,32,31,7,224,66,32,8,208,83,0,9,224,36,0,10,80,135,225,10,224,6,224,11,80,12,196,12,224,232,191,13,208,63,165,14,96,5,169,15,80,115,134,16,96,231,136,17,208,166,103,18,96,201,104,19,208,43,74,20,96,171,72,21,80,95,43,22,96,141,40,23,208,146,12,24,96,111,8,25,80,198,237,25,224,139,241,26,80,75,208,27,224,109,209,28,208,126,177,29,32,69,128,56,80,228,248,89,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,8,0,0,0,128,30,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,115,28,0,224,151,28,0,16,161,28,0,224,10,0,0,0,12,0,0,0,16,0,0,0,25,0,0,0,35,0,0,0,36,0,0,0,37,0,0,0,39,0,0,0,42,0,0,0,50,0,0,0,53,0,0,0,4,0,0,0,209,112,171,134,0,96,80,140,209,67,170,150,120,239,81,161,4,0,0,0,1,0,2,3,8,0,0,0,47,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,7,0,0,0,0,0,0,16,14,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,175,28,0,224,186,28,0,224,191,28,0,16,193,28,0,224,9,0,0,0,15,0,0,0,17,0,0,0,28,0,0,0,29,0,0,0,34,0,0,0,40,0,0,0,41,0,0,0,43,0,0,0,124,1,0,0,1,0,0,0,118,213,66,141,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,138,30,0,0,0,0,0,0,32,28,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,209,28,0,224,219,28,0,224,223,28,0,16,225,28,0,224,2,0,0,0,156,108,95,160,110,90,202,3,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,228,245,255,255,0,0,0,0,146,245,255,255,0,0,0,0,0,0,0,0,0,0,0,0,3,0,48,0,66,0,54,0,237,28,0,224,243,28,0,16,245,28,0,224,12,0,0,0,7,0,0,0,9,0,0,0,10,0,0,0,23,0,0,0,24,0,0,0,32,0,0,0,46,0,0,0,48,0,0,0,142,1,0,0,6,2,0,0,10,2,0,0,15,2,0,0,5,0,0,0,252,209,255,139,88,218,238,177,208,224,199,180,88,173,237,193,212,122,108,204,170,170,170,170,170,170,170,170,170,170,170,170,5,0,0,0,1,3,1,2,3,170,170,170,8,0,0,0,132,34,0,0,0,0,0,0,40,35,0,0,0,0,0,0,172,38,0,0,0,0,0,0,48,42,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,1,29,0,224,14,29,0,224,23,29,0,16,26,29,0,224,3,0,0,0,100,128,230,146,112,113,102,18,96,222,38,19,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,28,14,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,3,0,48,0,66,0,54,0,42,29,0,224,47,29,0,16,49,29,0,224,3,0,0,0,128,142,230,146,16,136,73,90,144,187,42,92,2,0,0,0,255,255,255,255,48,253,60,94,170,170,170,170,170,170,170,170,170,170,170,170,4,0,0,0,1,2,3,2,8,0,0,0,80,6,0,0,0,0,0,0,99,247,255,255,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,61,29,0,224,65,29,0,224,71,29,0,16,73,29,0,224,2,0,0,0,56,0,0,0,23,2,0,0,32,0,0,0,36,193,242,161,16,177,187,221,96,173,35,222,16,210,120,225,224,101,231,225,112,63,47,229,224,204,169,229,240,198,78,235,96,66,146,22,112,247,8,23,224,43,250,23,240,42,234,24,96,95,219,25,240,175,204,26,96,228,189,27,240,122,180,28,224,23,159,29,112,11,147,30,96,238,130,31,112,74,112,32,224,126,97,33,112,207,82,34,224,3,68,35,240,2,52,36,96,55,37,37,240,183,64,38,96,241,78,50,112,54,68,51,224,106,53,52,0,153,157,80,128,217,84,81,128,180,105,82,170,170,170,170,170,170,170,170,32,0,0,0,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,3,1,2,3,8,0,0,0,92,12,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,89,29,0,224,92,29,0,224,127,29,0,16,136,29,0,224,33,0,0,0,79,80,96,145,224,136,58,198,96,158,88,199,224,34,219,199,224,84,226,202,240,105,173,203,16,75,231,204,144,23,169,205,0,22,194,205,16,176,204,205,0,53,162,206,16,52,146,207,224,227,137,208,16,22,114,209,96,22,78,210,240,223,199,13,112,172,137,14,240,100,170,15,112,26,116,16,240,58,163,34,240,40,60,35,240,25,44,36,240,10,28,37,112,195,60,38,112,39,5,39,240,13,116,66,0,128,60,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,2,0,0,0,255,255,255,255,244,19,70,89,170,170,170,170,170,170,170,170,34,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,140,9,0,0,0,0,0,0,49,2,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,152,29,0,224,186,29,0,224,191,29,0,16,201,29,0,224,52,0,0,0,104,207,70,130,128,140,174,204,112,111,158,205,96,199,140,45,16,28,105,46,0,233,125,47,16,254,72,48,128,5,103,49,16,224,40,50,128,231,70,51,144,252,17,52,128,201,38,53,144,222,241,53,128,171,6,55,144,192,209,55,128,141,230,56,144,162,177,57,128,111,198,58,144,132,145,59,0,140,175,60,144,102,113,61,0,110,143,62,16,131,90,63,0,80,111,64,16,101,58,65,0,50,79,66,16,71,26,67,0,20,47,68,16,41,250,68,0,246,14,70,16,11,218,70,128,18,248,71,144,39,195,72,128,244,215,73,144,9,163,74,128,214,183,75,144,235,130,76,128,184,151,77,144,205,98,78,128,154,119,79,144,175,66,80,0,183,96,81,144,145,34,82,0,153,64,83,16,174,11,84,0,123,32,85,16,144,235,85,0,93,0,87,16,114,203,87,0,63,224,88,16,84,171,89,96,102,238,89,2,0,0,0,255,255,255,255,120,75,123,109,170,170,170,170,170,170,170,170,53,0,0,0,3,4,5,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,170,170,170,12,0,0,0,8,16,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,24,21,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,217,29,0,224,14,30,0,224,19,30,0,16,34,30,0,224,3,0,0,0,59,0,0,0,80,0,0,0,108,2,0,0,80,0,0,0,208,68,137,203,64,80,97,210,80,113,184,254,64,84,168,255,80,83,152,0,64,54,136,1,80,53,120,2,192,82,113,3,208,81,97,4,192,52,81,5,208,51,65,6,192,22,49,7,208,109,141,7,192,248,16,9,80,233,173,9,192,218,240,10,208,217,224,11,64,247,217,12,208,187,192,13,64,217,185,14,80,216,169,15,64,187,153,16,80,186,137,17,64,157,121,18,80,156,105,19,64,127,89,20,80,126,73,21,64,97,57,22,80,96,41,23,192,125,34,24,80,66,9,25,192,95,2,26,192,80,242,26,176,51,226,27,192,50,210,28,176,21,194,29,192,20,178,30,176,247,161,31,64,71,118,32,176,217,129,33,64,41,86,34,48,246,106,35,64,11,54,36,48,216,74,37,64,237,21,38,48,186,42,39,192,9,255,39,48,156,10,41,192,235,222,41,48,126,234,42,192,205,190,43,176,154,211,44,192,175,158,45,176,124,179,46,192,145,126,47,176,94,147,48,64,174,103,49,176,64,115,50,64,144,71,51,176,34,83,52,64,114,39,53,176,4,51,54,64,84,7,55,48,33,28,56,64,54,231,56,48,3,252,57,64,24,199,58,48,229,219,59,192,52,176,60,48,199,187,61,192,22,144,62,48,169,155,63,192,248,111,64,176,197,132,65,192,218,79,66,176,167,100,67,192,188,47,68,176,137,68,69,64,239,243,69,48,166,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,94,90,135,125,170,170,170,170,170,170,170,170,170,170,170,170,82,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,226,171,0,0,0,0,0,0,98,90,255,255,0,0,0,0,80,101,255,255,0,0,0,0,80,101,255,255,16,14,0,0,96,115,255,255,0,0,0,0,96,115,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,96,115,255,127,1,0,0,96,216,7,0,112,54,30,0,224,58,30,0,224,139,30,0,224,147,30,0,16,169,30,0,224,3,0,0,0,4,0,0,0,60,0,0,0,107,2,0,0,80,0,0,0,192,54,137,203,48,66,97,210,64,99,184,254,48,70,168,255,64,69,152,0,48,40,136,1,64,39,120,2,176,68,113,3,192,67,97,4,176,38,81,5,192,37,65,6,176,8,49,7,192,95,141,7,176,234,16,9,64,219,173,9,176,204,240,10,192,203,224,11,48,233,217,12,192,173,192,13,48,203,185,14,64,202,169,15,48,173,153,16,64,172,137,17,48,143,121,18,64,142,105,19,48,113,89,20,64,112,73,21,48,83,57,22,64,82,41,23,176,111,34,24,64,52,9,25,176,81,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,72,65,135,125,170,170,170,170,170,170,170,170,82,0,0,0,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,248,196,0,0,0,0,0,0,96,115,255,255,0,0,0,0,96,115,255,255,16,14,0,0,120,115,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,112,129,255,127,1,0,0,96,216,7,0,112,195,30,0,224,199,30,0,224,24,31,0,224,31,31,0,16,53,31,0,224,51,0,0,0,48,116,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,121,128,48,160,77,29,49,176,32,87,50,32,106,6,51,48,84,56,52,32,193,248,52,48,31,32,54,160,104,207,54,176,198,246,55,32,133,184,56,48,227,223,57,160,44,143,58,176,255,200,59,160,14,111,60,48,145,196,61,160,240,78,62,48,101,131,80,160,57,32,81,51,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,208,210,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,79,31,0,224,131,31,0,16,145,31,0,224,3,0,0,0,2,0,0,0,64,0,0,0,90,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,176,162,250,72,32,97,188,73,2,0,0,0,255,255,255,255,76,168,156,114,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,3,4,5,4,5,4,170,170,170,12,0,0,0,52,201,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,157,31,0,224,161,31,0,224,222,31,0,224,227,31,0,16,244,31,0,224,3,0,0,0,65,0,0,0,66,0,0,0,95,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,44,175,156,114,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,5,4,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,84,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,9,32,0,224,13,32,0,224,74,32,0,224,79,32,0,16,96,32,0,224,3,0,0,0,67,0,0,0,102,0,0,0,199,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,176,162,250,72,32,97,188,73,170,170,170,170,60,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,1,4,3,4,3,2,3,4,3,4,3,10,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,117,32,0,224,121,32,0,224,183,32,0,16,199,32,0,224,2,0,0,0,68,0,0,0,144,0,0,0,58,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,192,87,42,39,176,219,226,39,64,138,238,40,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,184,174,156,114,170,170,170,170,59,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,2,3,2,5,4,5,4,3,4,5,4,170,12,0,0,0,200,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,217,32,0,224,220,32,0,224,23,33,0,224,27,33,0,16,43,33,0,224,61,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,181,205,39,64,38,38,40,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,44,176,156,114,170,170,170,170,170,170,170,170,62,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,4,5,4,5,4,3,4,2,4,5,4,170,170,12,0,0,0,84,193,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,64,33,0,224,126,33,0,224,131,33,0,16,148,33,0,224,2,0,0,0,70,0,0,0,162,0,0,0,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,64,52,25,39,176,195,205,39,192,103,250,40,176,72,176,41,64,225,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,19,176,64,192,62,86,65,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,4,178,156,114,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,2,3,2,3,2,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,124,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,168,33,0,224,171,33,0,224,232,33,0,224,235,33,0,16,252,33,0,224,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,100,178,156,114,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,28,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,17,34,0,224,78,34,0,224,83,34,0,16,100,34,0,224,58,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,212,174,156,114,170,170,170,170,59,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,5,4,5,4,3,4,5,4,170,12,0,0,0,172,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,120,34,0,224,179,34,0,224,183,34,0,16,199,34,0,224,61,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,181,205,39,64,38,38,40,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,176,159,186,64,64,48,3,65,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,188,177,156,114,170,170,170,170,170,170,170,170,170,170,170,170,62,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,4,5,4,5,4,3,4,2,4,5,4,170,170,12,0,0,0,196,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,219,34,0,224,25,35,0,224,31,35,0,16,48,35,0,224,61,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,165,253,37,64,52,25,39,176,195,205,39,192,27,71,40,176,198,246,55,176,42,191,56,176,159,186,64,64,48,3,65,176,9,119,71,160,252,147,71,176,82,211,71,64,118,241,72,176,52,179,73,64,88,209,74,2,0,0,0,255,255,255,255,180,175,156,114,170,170,170,170,170,170,170,170,62,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,2,3,2,4,3,4,2,4,5,3,2,3,2,4,170,170,12,0,0,0,204,193,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,68,35,0,224,130,35,0,224,135,35,0,16,152,35,0,224,62,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,64,255,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,241,187,64,64,209,203,64,176,9,119,71,32,127,220,71,176,162,250,72,32,97,188,73,2,0,0,0,255,255,255,255,164,174,156,114,170,170,170,170,63,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,2,5,4,5,4,3,4,2,4,5,4,5,4,170,12,0,0,0,220,194,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,172,35,0,224,235,35,0,224,239,35,0,16,0,36,0,224,60,0,0,0,48,143,146,162,64,82,123,182,176,201,26,183,64,143,30,184,48,112,212,184,192,125,23,186,176,163,181,186,64,177,248,187,48,215,150,188,192,228,217,189,176,10,120,190,64,24,187,191,176,143,90,192,64,157,157,193,48,195,59,194,192,208,126,195,176,246,28,196,64,4,96,197,48,42,254,197,192,55,65,199,48,175,224,199,64,148,129,200,176,161,77,202,192,134,238,202,48,255,77,206,192,237,176,206,176,53,41,211,192,100,67,212,48,8,61,244,192,246,159,244,48,108,5,245,64,16,50,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,181,148,35,160,148,16,36,176,242,55,37,160,118,240,37,48,15,33,39,160,88,208,39,48,241,0,41,160,58,176,41,48,211,224,42,32,87,153,43,176,198,246,55,176,42,191,56,48,78,185,64,192,11,213,64,176,9,119,71,32,127,220,71,2,0,0,0,255,255,255,255,136,177,156,114,170,170,170,170,170,170,170,170,170,170,170,170,61,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,3,4,2,4,5,4,170,170,170,12,0,0,0,248,191,255,255,0,0,0,0,208,195,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,20,36,0,224,81,36,0,224,87,36,0,16,104,36,0,224,80,0,0,0,144,245,23,184,64,218,43,5,176,240,252,7,192,116,207,10,176,202,151,11,192,249,177,12,48,254,120,13,64,45,147,14,176,49,90,15,192,96,116,16,176,67,100,17,64,148,85,18,176,200,70,19,64,25,56,20,48,252,39,21,192,76,25,22,176,47,9,23,64,128,250,23,48,99,234,24,192,179,219,25,48,232,204,26,192,56,190,27,176,27,174,28,64,108,159,29,48,79,143,30,192,159,128,31,176,130,112,32,64,211,97,33,176,7,83,34,64,88,68,35,48,59,52,36,64,59,65,37,176,110,21,38,64,191,6,39,48,162,246,39,64,138,238,40,176,72,176,41,192,189,207,42,48,9,185,43,64,171,171,44,176,12,112,45,192,222,140,46,176,238,79,47,64,18,110,48,48,104,54,49,192,46,87,50,176,178,15,51,192,16,55,52,48,207,248,52,192,242,22,54,176,235,225,54,192,212,246,55,176,205,193,56,192,182,214,57,176,175,161,58,64,211,191,59,48,182,175,60,192,144,113,61,48,152,143,62,64,173,90,63,48,122,111,64,64,238,113,65,176,172,51,66,64,208,81,67,176,142,19,68,64,178,49,69,176,112,243,69,192,206,26,71,176,82,211,71,192,176,250,72,176,52,179,73,192,146,218,74,48,59,193,75,192,255,167,76,48,29,161,77,192,225,135,78,48,255,128,79,64,254,112,80,48,108,78,81,64,224,80,82,170,170,170,170,170,170,170,170,80,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,8,0,0,0,240,201,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,106,3,0,96,222,7,0,112,124,36,0,224,207,36,0,16,228,36,0,224,61,0,0,0,28,107,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,15,33,39,160,227,189,39,48,241,0,41,32,139,148,41,176,13,234,42,160,50,107,43,48,181,192,44,32,196,102,45,48,151,160,46,32,166,70,47,48,121,128,48,160,77,29,49,176,32,87,50,32,106,6,51,48,84,56,52,32,193,248,52,48,31,32,54,160,104,207,54,176,198,246,55,32,133,184,56,48,227,223,57,160,44,143,58,176,255,200,59,160,14,111,60,48,145,196,61,160,240,78,62,176,72,154,78,32,146,73,79,170,170,170,170,170,170,170,170,61,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,228,219,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,247,36,0,224,55,37,0,16,72,37,0,224,61,0,0,0,112,232,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,96,113,234,203,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,16,85,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,170,170,170,170,61,0,0,0,1,3,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,84,157,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,84,37,0,224,147,37,0,16,164,37,0,224,15,0,0,0,101,169,64,146,208,203,227,203,224,130,148,204,208,34,214,205,224,77,124,206,208,166,155,207,96,106,101,208,224,242,0,14,208,140,148,14,224,0,151,15,208,110,116,16,224,226,118,17,208,80,84,18,96,255,95,19,80,62,48,20,170,170,170,170,170,170,170,170,170,170,170,170,15,0,0,0,1,3,1,3,1,2,1,3,1,3,1,3,1,3,1,170,8,0,0,0,27,200,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,8,7,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,180,37,0,224,199,37,0,16,204,37,0,224,29,0,0,0,116,116,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,170,170,170,170,170,170,170,170,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,140,210,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,218,37,0,224,251,37,0,16,4,38,0,224,97,0,0,0,176,217,94,147,224,59,159,159,216,81,69,160,224,29,127,161,88,110,46,162,224,255,94,163,88,80,14,164,224,225,62,165,88,50,238,165,96,254,39,167,88,20,206,167,96,224,7,169,88,246,173,169,96,194,231,170,216,18,151,171,96,164,199,172,216,244,118,173,96,134,167,174,216,214,86,175,96,104,135,176,216,184,54,177,224,132,112,178,216,154,22,179,224,102,80,180,216,124,246,180,224,72,48,182,88,153,223,182,224,42,16,184,88,123,191,184,224,12,240,185,88,93,159,186,96,41,217,187,88,63,127,188,96,11,185,189,88,33,95,190,96,237,152,191,88,3,63,192,96,207,120,193,216,31,40,194,96,177,88,195,216,1,8,196,96,147,56,197,216,227,231,197,224,175,33,199,216,197,199,199,224,145,1,201,216,167,167,201,224,115,225,202,88,196,144,203,224,34,64,204,80,113,198,210,96,250,41,214,216,74,217,214,96,220,9,216,216,44,185,216,96,190,233,217,216,14,153,218,224,218,210,219,216,240,120,220,224,188,178,221,216,210,88,222,224,158,146,223,88,239,65,224,224,128,114,225,88,209,33,226,224,98,82,227,88,179,1,228,224,68,50,229,88,149,225,229,96,97,27,231,88,119,193,231,96,67,251,232,88,89,161,233,96,37,219,234,216,117,138,235,96,7,187,236,216,87,106,237,96,233,154,238,216,57,74,239,224,5,132,240,216,27,42,241,224,231,99,242,216,253,9,243,224,201,67,244,216,223,233,244,224,171,35,246,88,252,210,246,224,141,3,248,88,222,178,248,224,111,227,249,88,192,146,250,96,140,204,251,88,162,114,252,96,219,98,7,80,208,185,7,96,113,97,24,80,55,171,24,170,170,170,170,97,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,170,170,170,8,0,0,0,80,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,8,7,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,16,38,0,224,115,38,0,16,141,38,0,224,33,0,0,0,224,127,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,192,212,246,55,48,147,184,56,64,241,223,57,176,29,233,57,170,170,170,170,170,170,170,170,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,32,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,155,38,0,224,191,38,0,16,201,38,0,224,3,0,0,0,112,85,88,152,80,115,3,42,64,137,116,43,170,170,170,170,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,144,186,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,3,0,48,0,66,0,54,0,213,38,0,224,219,38,0,16,221,38,0,224,89,0,0,0,160,72,166,158,144,21,187,159,160,42,134,160,144,247,154,161,32,76,70,168,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,31,178,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,2,0,0,0,255,255,255,255,192,26,4,94,170,170,170,170,90,0,0,0,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,15,147,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,144,157,255,127,1,0,0,96,216,7,0,112,233,38,0,224,67,39,0,224,71,39,0,16,95,39,0,224,76,0,0,0,128,205,242,161,144,12,137,203,0,24,97,210,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,221,32,8,128,192,16,9,144,191,0,10,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,0,254,230,56,240,202,251,57,80,233,4,58,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,170,170,170,170,76,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,5,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,12,0,0,0,0,0,0,0,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,157,3,0,96,216,7,0,112,117,39,0,224,195,39,0,16,215,39,0,224,91,0,0,0,52,122,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,192,30,88,35,48,126,226,35,192,0,56,37,48,213,212,37,64,29,33,39,176,241,189,39,64,255,0,41,48,153,148,41,192,27,234,42,176,64,107,43,64,195,192,44,48,210,102,45,64,165,160,46,48,180,70,47,64,135,128,48,176,91,29,49,192,46,87,50,48,120,6,51,64,98,56,52,48,207,248,52,64,45,32,54,176,118,207,54,192,212,246,55,48,147,184,56,64,241,223,57,176,58,143,58,192,13,201,59,176,28,111,60,64,159,196,61,176,254,78,62,64,12,146,63,176,224,46,64,64,6,135,65,48,253,23,66,64,208,81,67,48,223,247,67,192,97,77,69,176,251,224,69,64,148,17,71,48,163,183,71,192,176,250,72,48,133,151,73,192,146,218,74,176,161,128,75,192,116,186,76,176,131,96,77,192,86,154,78,48,160,73,79,64,115,131,80,176,71,32,81,64,85,99,82,176,41,0,83,64,55,67,84,48,70,233,84,64,25,35,86,48,40,201,86,64,251,2,88,48,10,169,88,64,221,226,89,48,236,136,90,192,110,222,91,48,206,104,92,170,170,170,170,91,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,204,204,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,238,39,0,224,75,40,0,16,99,40,0,224,43,0,0,0,96,218,182,165,0,230,138,22,208,204,119,24,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,240,43,39,53,96,0,196,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,0,221,205,84,43,0,0,0,1,3,1,2,1,2,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,10,0,0,0,168,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,3,0,48,0,66,0,54,0,111,40,0,224,155,40,0,16,167,40,0,224,4,0,0,0,60,44,30,147,72,236,152,246,112,146,91,71,112,169,37,87,2,0,0,0,255,255,255,255,64,26,135,105,5,0,0,0,2,1,3,1,3,170,170,170,8,0,0,0,64,193,255,255,0,0,0,0,184,192,255,255,0,0,0,0,68,193,255,255,0,0,0,0,192,199,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,183,40,0,224,188,40,0,224,191,40,0,16,194,40,0,224,2,0,0,0,144,43,244,145,192,53,195,251,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,240,206,255,255,0,0,0,0,192,199,255,255,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,210,40,0,224,215,40,0,16,217,40,0,224,4,0,0,0,98,0,0,0,127,1,0,0,128,1,0,0,110,2,0,0,174,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,0,116,203,162,240,247,131,163,128,210,69,164,240,217,99,165,0,217,83,166,112,151,21,167,0,187,51,168,240,179,254,168,0,157,19,170,240,149,222,170,0,127,243,171,240,119,190,172,0,97,211,173,240,89,158,174,0,67,179,175,240,59,126,176,128,95,156,177,112,88,103,178,128,65,124,179,112,58,71,180,128,35,92,181,112,28,39,182,128,5,60,183,112,254,6,184,128,231,27,185,112,224,230,185,0,4,5,187,112,194,198,187,0,230,228,188,240,222,175,189,0,200,196,190,240,192,143,191,0,214,90,192,112,60,176,193,0,140,132,194,240,132,79,195,0,110,100,196,240,102,47,197,128,138,77,198,240,72,15,199,128,108,45,200,112,101,248,200,128,78,13,202,112,71,216,202,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,0,23,233,0,0,7,234,240,226,246,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,112,105,63,246,128,104,47,247,240,133,40,248,128,74,15,249,240,103,8,250,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,175,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,8,0,0,0,212,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,216,7,0,112,229,40,0,224,234,40,0,224,153,41,0,224,159,41,0,16,204,41,0,224,60,0,0,0,112,232,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,16,85,184,75,0,34,205,76,16,55,152,77,0,4,173,78,16,25,120,79,0,230,140,80,144,53,97,81,0,200,108,82,144,23,65,83,0,170,76,84,144,249,32,85,0,140,44,86,144,219,0,87,128,168,21,88,144,189,224,88,128,138,245,89,144,159,192,90,128,108,213,91,16,188,169,92,128,78,181,93,16,158,137,94,128,48,149,95,16,128,105,96,0,77,126,97,16,98,73,98,0,47,94,99,60,0,0,0,1,3,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,10,0,0,0,140,156,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,226,41,0,224,31,42,0,16,47,42,0,224,63,0,0,0,112,232,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,144,165,156,75,128,92,214,76,144,135,124,77,128,62,182,78,144,105,92,79,128,32,150,80,144,75,60,81,128,2,118,82,144,45,28,83,128,228,85,84,144,15,252,84,128,198,53,86,16,44,229,86,0,227,30,88,16,14,197,88,0,197,254,89,16,240,164,90,0,167,222,91,16,210,132,92,0,137,190,93,16,180,100,94,0,107,158,95,144,208,77,96,128,135,135,97,144,178,45,98,0,47,94,99,96,241,134,99,144,148,13,100,128,75,71,101,63,0,0,0,1,3,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,1,2,1,170,10,0,0,0,44,156,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,1,0,0,96,232,7,0,112,63,42,0,224,127,42,0,16,144,42,0,224,9,0,0,0,77,22,232,163,96,73,54,17,80,110,183,17,96,43,22,19,80,80,151,19,96,224,151,39,208,182,110,40,96,194,119,41,208,217,194,41,9,0,0,0,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,51,177,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,165,42,0,224,175,42,0,16,179,42,0,224,89,0,0,0,148,123,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,192,30,88,35,48,126,226,35,192,0,56,37,48,213,212,37,64,29,33,39,176,241,189,39,64,255,0,41,48,153,148,41,192,27,234,42,176,64,107,43,64,195,192,44,48,210,102,45,64,165,160,46,48,180,70,47,64,135,128,48,176,91,29,49,192,46,87,50,48,120,6,51,64,98,56,52,48,207,248,52,64,45,32,54,176,118,207,54,192,212,246,55,48,147,184,56,64,241,223,57,176,58,143,58,192,13,201,59,176,28,111,60,64,159,196,61,176,254,78,62,64,6,135,65,48,253,23,66,64,208,81,67,48,223,247,67,192,97,77,69,176,251,224,69,64,148,17,71,48,163,183,71,192,176,250,72,48,133,151,73,192,146,218,74,176,161,128,75,192,116,186,76,176,131,96,77,192,86,154,78,48,160,73,79,64,115,131,80,176,71,32,81,64,85,99,82,176,41,0,83,64,55,67,84,48,70,233,84,64,25,35,86,48,40,201,86,64,251,2,88,48,10,169,88,64,221,226,89,48,236,136,90,192,110,222,91,48,206,104,92,170,170,170,170,170,170,170,170,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,108,203,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,191,42,0,224,27,43,0,16,51,43,0,224,34,0,0,0,0,73,128,155,80,124,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,48,78,231,48,170,170,170,170,34,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,128,238,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,0,0,0,0,0,0,0,0,3,0,48,0,66,0,54,0,63,43,0,224,99,43,0,16,109,43,0,224,91,0,0,0,176,203,184,158,160,35,187,159,176,12,208,160,128,210,162,161,176,40,137,203,32,52,97,210,144,118,47,247,16,162,40,248,144,236,48,7,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,32,181,211,71,16,108,13,73,32,151,179,73,16,78,237,74,160,179,156,75,144,106,214,76,160,149,124,77,144,76,182,78,160,119,92,79,144,46,150,80,160,89,60,81,144,16,118,82,160,59,28,83,144,242,85,84,160,29,252,84,144,212,53,86,32,58,229,86,16,241,30,88,32,28,197,88,16,211,254,89,32,254,164,90,16,181,222,91,32,224,132,92,16,151,190,93,32,194,100,94,240,92,158,95,2,0,0,0,255,255,255,255,180,142,134,125,170,170,170,170,92,0,0,0,1,2,1,2,1,2,1,3,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,6,14,0,0,0,76,125,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,112,129,255,255,32,28,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,123,43,0,224,215,43,0,224,219,43,0,16,243,43,0,224,56,0,0,0,160,189,184,158,144,21,187,159,160,26,137,203,16,38,97,210,32,241,85,213,16,234,32,214,32,211,53,215,16,204,0,216,32,181,21,217,16,174,224,217,160,209,254,218,16,144,192,219,160,179,222,220,144,172,169,221,160,149,190,222,144,142,137,223,160,119,158,224,144,112,105,225,160,89,126,226,144,82,73,227,160,59,94,228,144,52,41,229,32,88,71,230,16,81,18,231,32,58,39,232,16,51,242,232,32,28,7,234,16,21,210,234,32,254,230,235,16,247,177,236,32,224,198,237,16,217,145,238,160,252,175,239,16,187,113,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,240,1,5,2,0,0,0,255,255,255,255,56,116,61,94,170,170,170,170,170,170,170,170,57,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,170,8,0,0,0,72,143,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,9,44,0,224,66,44,0,224,71,44,0,16,87,44,0,224,5,0,0,0,110,0,0,0,206,0,0,0,27,2,0,0,35,2,0,0,116,2,0,0,96,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,254,101,162,0,6,132,163,144,224,69,164,128,166,143,164,144,12,137,203,0,24,97,210,144,118,47,247,0,148,40,248,144,88,15,249,0,118,8,250,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,97,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,148,157,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,144,157,255,127,1,0,0,96,216,7,0,112,103,44,0,224,109,44,0,224,206,44,0,224,211,44,0,16,237,44,0,224,2,0,0,0,111,0,0,0,115,2,0,0,80,0,0,0,91,34,189,133,0,148,60,153,112,240,136,203,224,251,96,210,240,168,53,215,224,161,0,216,140,144,51,251,224,59,232,251,240,58,216,252,224,29,200,253,112,223,64,6,96,194,48,7,112,25,141,7,96,164,16,9,112,163,0,10,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,170,170,170,170,170,170,170,170,80,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,37,178,255,255,0,0,0,0,160,171,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,1,45,0,224,4,45,0,224,87,45,0,16,108,45,0,224,3,0,0,0,113,0,0,0,226,0,0,0,134,1,0,0,89,0,0,0,224,206,222,136,144,175,184,158,128,7,187,159,144,145,152,160,128,133,210,160,144,232,138,162,0,6,132,163,144,202,106,164,128,195,53,165,16,231,83,166,128,165,21,167,16,201,51,168,0,194,254,168,144,12,137,203,0,24,97,210,16,227,85,213,0,220,32,214,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,221,32,8,128,192,16,9,144,191,0,10,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,170,170,170,170,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,160,149,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,144,157,255,127,157,3,0,96,216,7,0,112,128,45,0,224,132,45,0,224,223,45,0,16,247,45,0,224,33,0,0,0,128,136,170,150,0,102,15,184,192,92,253,184,80,80,241,185,64,144,222,186,80,202,56,218,80,22,236,218,208,253,25,220,64,117,185,220,80,49,251,221,64,250,155,222,80,182,221,223,64,79,84,224,208,27,152,244,64,122,5,245,80,128,192,246,192,58,14,247,80,72,81,248,64,225,199,248,208,238,10,250,192,20,169,250,80,34,236,251,192,153,139,252,80,170,201,29,192,243,120,30,208,81,160,31,192,235,51,32,80,133,129,33,192,228,11,34,80,209,192,44,64,224,102,45,80,127,96,72,192,4,127,82,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,170,170,8,0,0,0,128,190,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,3,0,48,0,66,0,54,0,9,46,0,224,43,46,0,16,53,46,0,224,5,0,0,0,32,166,213,163,224,220,154,32,80,155,92,33,224,190,122,34,80,125,60,35,170,170,170,170,170,170,170,170,5,0,0,0,1,2,1,2,1,170,170,170,6,0,0,0,96,172,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,67,46,0,224,75,46,0,16,78,46,0,224,141,0,0,0,160,189,184,158,144,21,187,159,160,26,137,203,16,38,97,210,32,241,85,213,16,234,32,214,32,211,53,215,16,204,0,216,32,181,21,217,16,174,224,217,160,209,254,218,16,144,192,219,160,179,222,220,144,172,169,221,160,149,190,222,144,142,137,223,160,119,158,224,144,112,105,225,160,89,126,226,144,82,73,227,160,59,94,228,144,52,41,229,32,88,71,230,16,81,18,231,32,58,39,232,16,51,242,232,32,28,7,234,16,21,210,234,32,254,230,235,16,247,177,236,32,224,198,237,16,217,145,238,160,252,175,239,16,187,113,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,235,32,8,144,206,16,9,160,205,0,10,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,32,181,211,71,16,108,13,73,32,151,179,73,16,78,237,74,160,179,156,75,144,106,214,76,160,149,124,77,144,76,182,78,160,119,92,79,144,46,150,80,160,89,60,81,144,16,118,82,160,59,28,83,144,242,85,84,160,29,252,84,2,0,0,0,255,255,255,255,135,118,61,94,142,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,249,140,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,90,46,0,224,232,46,0,224,235,46,0,16,16,47,0,224,39,0,0,0,24,107,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,176,198,246,55,32,133,184,56,48,227,223,57,32,74,242,57,176,255,200,59,160,14,111,60,170,170,170,170,170,170,170,170,170,170,170,170,39,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,232,219,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,32,47,0,224,75,47,0,16,86,47,0,224,79,0,0,0,52,168,241,128,96,133,184,158,80,221,186,159,96,226,136,203,208,237,96,210,96,63,158,224,80,56,105,225,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,79,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,204,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,157,3,0,96,216,7,0,112,98,47,0,224,179,47,0,16,200,47,0,224,152,0,0,0,140,126,184,158,124,214,186,159,108,77,158,190,56,49,184,192,168,239,121,193,56,19,152,194,168,209,89,195,56,245,119,196,168,179,57,197,184,17,97,198,168,149,25,199,184,243,64,200,40,178,2,201,184,213,32,202,40,148,226,202,184,183,0,204,200,230,96,210,216,68,136,211,72,3,74,212,216,38,104,213,72,229,41,214,216,8,72,215,72,199,9,216,216,234,39,217,72,169,233,217,88,7,17,219,200,197,210,219,88,116,222,220,72,109,169,221,88,86,190,222,72,79,137,223,88,56,158,224,72,49,105,225,88,26,126,226,72,19,73,227,88,252,93,228,72,245,40,229,216,24,71,230,200,17,18,231,216,250,38,232,200,243,241,232,216,220,6,234,200,213,209,234,216,190,230,235,200,183,177,236,216,160,198,237,72,190,191,238,88,189,175,239,72,160,159,240,88,159,143,241,72,130,127,242,88,129,111,243,72,100,95,244,88,99,79,245,72,70,63,246,88,69,47,247,200,98,40,248,88,107,218,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,252,214,117,32,108,105,129,33,252,184,85,34,220,119,106,35,252,154,53,36,236,103,74,37,252,124,21,38,236,73,42,39,124,153,254,39,236,43,10,41,124,123,222,41,236,13,234,42,124,93,190,43,108,42,211,44,124,63,158,45,108,12,179,46,124,33,126,47,108,238,146,48,252,61,103,49,108,208,114,50,252,31,71,51,108,178,82,52,252,1,39,53,108,148,50,54,252,227,6,55,236,176,27,56,252,197,230,56,236,146,251,57,252,167,198,58,236,116,219,59,124,196,175,60,236,86,187,61,124,166,143,62,236,56,155,63,124,136,111,64,108,85,132,65,124,106,79,66,108,55,100,67,124,76,47,68,108,25,68,69,252,126,243,69,236,53,45,71,252,96,211,71,236,23,13,73,252,66,179,73,236,249,236,74,124,95,156,75,108,22,214,76,124,65,124,77,80,20,182,78,96,63,92,79,80,246,149,80,2,0,0,0,255,255,255,255,36,60,61,94,170,170,170,170,170,170,170,170,153,0,0,0,4,5,4,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,16,0,0,0,92,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,192,199,255,255,32,28,0,0,148,206,255,255,0,0,0,0,148,206,255,255,16,14,0,0,200,206,255,255,0,0,0,0,200,206,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,192,199,255,127,157,3,0,96,221,7,0,112,217,47,0,224,114,48,0,224,119,48,0,16,159,48,0,224,76,0,0,0,254,180,15,147,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,240,138,211,71,224,65,13,73,240,108,179,73,224,35,237,74,112,137,156,75,96,64,214,76,112,107,124,77,96,34,182,78,112,77,92,79,96,4,150,80,112,47,60,81,96,230,117,82,112,17,28,83,96,200,85,84,112,243,251,84,240,211,164,90,224,138,222,91,2,0,0,0,255,255,255,255,48,30,135,105,77,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,3,2,170,170,170,10,0,0,0,80,189,255,255,0,0,0,0,2,184,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,227,7,0,112,187,48,0,224,8,49,0,224,11,49,0,16,32,49,0,224,9,0,0,0,220,234,157,159,96,172,85,7,208,150,205,7,96,120,44,25,80,228,207,25,224,238,234,39,208,92,200,40,96,82,84,68,80,75,31,69,170,170,170,170,170,170,170,170,170,170,170,170,9,0,0,0,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,36,171,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,54,49,0,224,67,49,0,16,71,49,0,224,3,0,0,0,24,66,164,182,208,252,22,43,64,230,113,43,2,0,0,0,255,255,255,255,88,38,135,105,170,170,170,170,4,0,0,0,1,2,3,2,8,0,0,0,40,181,255,255,0,0,0,0,104,182,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,83,49,0,224,87,49,0,224,91,49,0,16,93,49,0,224,4,0,0,0,135,15,29,146,64,123,217,152,188,5,127,10,192,64,213,41,170,170,170,170,4,0,0,0,1,2,3,1,8,0,0,0,121,201,255,255,0,0,0,0,192,199,255,255,0,0,0,0,68,203,255,255,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,109,49,0,224,115,49,0,16,117,49,0,224,2,0,0,0,129,0,0,0,130,1,0,0,167,0,0,0,160,171,241,128,192,222,228,154,48,19,214,155,96,133,184,158,80,221,186,159,64,23,157,162,48,177,48,163,64,86,122,164,48,31,27,165,192,160,83,166,176,82,252,166,64,189,60,168,176,52,220,168,64,159,28,170,48,58,205,170,64,129,252,171,48,145,191,172,64,216,238,173,48,254,140,174,64,69,188,175,48,85,127,176,64,156,174,177,176,112,75,178,64,126,142,179,48,187,36,180,64,96,110,181,176,192,21,182,64,66,78,183,176,23,8,184,192,233,36,185,176,249,231,185,192,203,4,187,48,22,209,187,64,93,0,189,176,49,157,189,64,180,242,190,48,218,144,191,192,231,211,192,48,71,94,193,64,142,141,194,48,158,80,195,64,112,109,196,48,128,48,197,64,60,114,198,48,98,16,199,192,110,54,200,176,126,249,200,192,80,22,202,176,96,217,202,96,226,136,203,208,237,96,210,224,214,117,211,208,207,64,212,224,184,85,213,208,177,32,214,224,154,53,215,208,147,0,216,224,124,21,217,208,117,224,217,96,123,222,220,80,116,169,221,96,93,190,222,80,86,137,223,96,63,158,224,80,56,105,225,96,33,126,226,80,26,73,227,224,31,71,230,208,24,18,231,224,1,39,232,208,250,241,232,224,227,6,234,208,220,209,234,224,197,230,235,208,190,177,236,96,166,143,241,80,137,127,242,96,136,111,243,80,107,95,244,96,106,79,245,80,77,63,246,96,76,47,247,208,105,40,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,167,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,96,196,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,192,199,255,127,157,3,0,96,216,7,0,112,131,49,0,224,134,49,0,224,47,50,0,16,90,50,0,224,2,0,0,0,130,0,0,0,141,1,0,0,107,0,0,0,128,194,98,172,80,148,211,177,64,93,116,178,208,102,91,200,64,81,211,200,208,72,59,202,192,109,188,202,80,101,36,204,192,79,156,204,80,11,196,209,192,245,59,210,80,237,163,211,192,215,27,212,208,5,96,247,64,125,255,247,208,68,61,249,192,83,227,249,208,59,219,250,64,134,167,251,208,169,197,252,64,104,135,253,208,0,184,254,192,227,167,255,208,226,151,0,192,197,135,1,208,196,119,2,64,226,112,3,80,225,96,4,192,20,53,5,80,195,64,6,64,72,22,7,80,165,32,8,192,123,247,8,80,135,0,10,64,106,240,10,80,105,224,11,192,134,217,12,80,75,192,13,192,104,185,14,80,162,178,15,64,155,125,16,208,234,81,17,192,183,102,18,208,204,49,19,192,153,70,20,208,130,91,21,192,123,38,22,208,100,59,23,192,93,6,24,208,70,27,25,192,63,230,25,208,40,251,26,64,92,207,27,208,10,219,28,64,62,175,29,80,83,122,30,64,32,143,31,80,53,90,32,64,2,111,33,208,81,67,34,64,228,78,35,208,51,35,36,64,198,46,37,208,138,21,38,192,226,23,39,80,167,254,39,208,210,247,40,80,137,222,41,208,180,215,42,80,107,190,43,208,150,183,44,80,77,158,45,208,120,151,46,80,47,126,47,208,90,119,48,208,75,103,49,208,60,87,50,208,45,71,51,80,89,64,52,80,213,29,53,80,176,50,54,80,183,253,54,208,204,27,56,208,211,230,56,208,174,251,57,208,181,198,58,208,144,219,59,80,210,175,60,208,114,187,61,80,180,143,62,208,84,155,63,208,91,102,64,80,53,68,69,208,140,243,69,80,23,36,71,80,169,220,71,80,249,3,73,208,80,179,73,80,219,227,74,80,109,156,75,208,247,204,76,208,137,133,77,208,78,191,78,208,224,119,79,80,246,149,80,80,19,60,81,80,216,117,82,2,0,0,0,255,255,255,255,184,40,135,105,170,170,170,170,108,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,200,178,255,255,0,0,0,0,192,178,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,96,3,0,96,222,7,0,112,108,50,0,224,111,50,0,224,219,50,0,224,223,50,0,16,251,50,0,224,13,0,0,0,112,232,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,96,113,234,203,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,13,0,0,0,1,3,1,2,1,3,1,2,1,2,1,2,1,170,170,170,8,0,0,0,248,151,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,3,0,48,0,66,0,54,0,17,51,0,224,31,51,0,16,36,51,0,224,5,0,0,0,118,0,0,0,132,0,0,0,140,0,0,0,3,2,0,0,111,2,0,0,37,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,34,87,202,112,71,216,202,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,22,242,232,0,0,7,234,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,38,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,58,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,1,0,0,96,216,7,0,112,50,51,0,224,56,51,0,224,94,51,0,224,99,51,0,16,110,51,0,224,3,0,0,0,133,0,0,0,148,0,0,0,114,2,0,0,92,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,195,159,240,128,194,143,241,112,135,95,244,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,93,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,170,170,170,8,0,0,0,202,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,216,7,0,112,134,51,0,224,138,51,0,224,231,51,0,224,235,51,0,16,4,52,0,224,41,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,128,151,222,220,112,144,169,221,128,61,126,226,112,54,73,227,128,31,94,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,112,178,16,9,240,148,173,9,96,134,240,10,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,42,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,2,3,4,3,4,3,4,3,170,170,10,0,0,0,13,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,26,52,0,224,68,52,0,224,71,52,0,16,83,52,0,224,56,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,224,61,103,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,112,105,63,246,128,104,47,247,240,103,8,250,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,240,138,211,71,224,65,13,73,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,57,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,4,3,170,170,170,10,0,0,0,45,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,217,7,0,112,105,52,0,224,162,52,0,224,167,52,0,16,183,52,0,224,36,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,224,61,103,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,37,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,2,1,4,3,4,3,2,1,2,1,170,170,170,10,0,0,0,169,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,205,52,0,224,242,52,0,224,247,52,0,16,2,53,0,224,19,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,128,61,126,226,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,20,0,0,0,1,2,1,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,64,176,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,24,53,0,224,44,53,0,224,47,53,0,16,53,53,0,224,41,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,224,61,103,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,112,225,191,238,128,224,175,239,240,158,113,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,112,81,68,69,0,183,243,69,240,109,45,71,240,138,211,71,224,65,13,73,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,42,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,2,1,2,3,4,3,170,170,10,0,0,0,241,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,217,7,0,112,75,53,0,224,117,53,0,224,123,53,0,16,135,53,0,224,47,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,218,177,236,0,196,198,237,240,188,145,238,128,224,175,239,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,112,118,47,68,112,81,68,69,0,183,243,69,224,95,45,71,240,138,211,71,224,65,13,73,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,48,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,2,1,4,3,4,3,10,0,0,0,207,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,217,7,0,112,157,53,0,224,205,53,0,224,211,53,0,16,224,53,0,224,73,0,0,0,128,78,6,224,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,235,32,8,144,206,16,9,160,205,0,10,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,170,170,170,170,170,170,170,170,170,170,170,170,73,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,0,0,0,0,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,157,3,0,96,216,7,0,112,246,53,0,224,67,54,0,16,87,54,0,224,2,0,0,0,142,0,0,0,184,0,0,0,74,0,0,0,128,161,108,204,224,251,96,210,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,193,32,8,96,164,16,9,112,163,0,10,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,0,254,230,56,240,202,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,170,170,170,170,74,0,0,0,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,0,0,0,0,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,176,185,255,127,157,3,0,96,216,7,0,112,108,54,0,224,111,54,0,224,187,54,0,16,207,54,0,224,2,0,0,0,143,0,0,0,20,2,0,0,21,0,0,0,254,180,15,147,112,25,141,7,96,164,16,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,170,170,170,170,21,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,2,184,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,229,54,0,224,232,54,0,224,255,54,0,16,6,55,0,224,80,0,0,0,160,26,137,203,16,38,97,210,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,32,99,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,197,50,135,125,170,170,170,170,82,0,0,0,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,2,4,5,4,5,4,5,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,12,0,0,0,123,211,0,0,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,251,129,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,20,55,0,224,101,55,0,224,107,55,0,16,129,55,0,224,2,0,0,0,146,0,0,0,153,0,0,0,116,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,0,247,115,164,112,17,22,165,128,78,13,202,112,71,216,202,128,254,136,203,240,9,97,210,28,215,117,211,112,9,164,211,128,181,254,218,240,115,192,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,112,24,41,229,0,60,71,230,240,30,55,231,0,30,39,232,240,0,23,233,0,0,7,234,240,226,246,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,144,30,240,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,112,178,16,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,117,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,154,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,1,0,0,96,216,7,0,112,153,55,0,224,156,55,0,224,17,56,0,224,23,56,0,16,54,56,0,224,86,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,160,254,3,94,170,170,170,170,170,170,170,170,170,170,170,170,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,10,0,0,0,116,176,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,1,0,0,96,216,7,0,112,78,56,0,224,165,56,0,224,171,56,0,16,194,56,0,224,2,0,0,0,228,150,30,184,212,213,238,184,2,0,0,0,1,2,170,170,6,0,0,0,28,192,255,255,0,0,0,0,28,192,255,255,16,14,0,0,192,199,255,255,0,0,0,0,3,0,48,0,66,0,54,0,216,56,0,224,219,56,0,16,221,56,0,224,15,0,0,0,212,64,116,140,80,74,207,195,64,227,69,196,208,74,47,197,192,45,31,198,208,44,15,199,192,15,255,199,80,196,24,30,64,93,143,30,208,247,249,31,192,144,112,32,208,227,158,37,192,124,21,38,80,3,37,45,64,156,155,45,2,0,0,0,255,255,255,255,188,35,135,105,170,170,170,170,170,170,170,170,170,170,170,170,16,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,196,183,255,255,0,0,0,0,172,183,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,233,56,0,224,249,56,0,224,255,56,0,16,4,57,0,224,5,0,0,0,152,0,0,0,40,2,0,0,41,2,0,0,117,2,0,0,118,2,0,0,124,0,0,0,160,72,166,158,144,21,187,159,160,42,134,160,144,247,154,161,160,26,137,203,16,38,97,210,92,116,254,214,144,173,128,216,144,195,254,218,16,144,192,219,144,165,222,220,144,172,169,221,144,135,190,222,144,142,137,223,144,105,158,224,144,112,105,225,144,75,126,226,144,82,73,227,144,45,94,228,144,52,41,229,16,74,71,230,16,81,18,231,16,44,39,232,16,51,242,232,16,14,7,234,16,21,210,234,16,240,230,235,16,247,177,236,16,210,198,237,16,217,145,238,144,238,175,239,16,187,113,240,144,208,143,241,144,193,127,242,144,178,111,243,144,163,95,244,144,148,79,245,144,133,63,246,144,118,47,247,16,162,40,248,144,88,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,2,0,0,0,255,255,255,255,192,26,4,94,170,170,170,170,125,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,38,145,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,128,143,255,127,1,0,0,96,216,7,0,112,20,57,0,224,26,57,0,224,151,57,0,224,155,57,0,16,188,57,0,224,41,0,0,0,124,104,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,121,128,48,160,77,29,49,176,198,246,55,32,133,184,56,48,227,223,57,32,74,242,57,176,255,200,59,160,14,111,60,170,170,170,170,41,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,132,222,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,208,57,0,224,251,57,0,16,7,58,0,224,15,0,0,0,232,72,45,189,96,116,67,6,80,62,164,9,224,248,81,17,80,111,212,17,224,218,49,19,80,81,180,19,32,145,97,41,80,75,193,42,224,221,67,43,80,239,201,50,224,192,88,66,80,105,63,67,128,110,84,68,96,89,31,69,2,0,0,0,255,255,255,255,100,44,135,105,170,170,170,170,16,0,0,0,3,1,4,1,2,1,2,1,4,1,4,1,2,1,2,1,10,0,0,0,28,175,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,24,175,255,255,0,0,0,0,176,185,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,19,58,0,224,35,58,0,224,39,58,0,16,44,58,0,224,2,0,0,0,157,0,0,0,123,1,0,0,31,0,0,0,68,127,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,64,195,192,44,48,210,102,45,170,170,170,170,170,170,170,170,31,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,188,199,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,62,58,0,224,65,58,0,224,99,58,0,16,108,58,0,224,3,0,0,0,68,200,163,145,64,110,77,19,176,22,52,20,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,188,198,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,122,58,0,224,127,58,0,16,129,58,0,224,33,0,0,0,96,218,182,165,0,241,85,34,240,189,106,35,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,128,151,156,75,112,78,214,76,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,152,164,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,219,7,0,112,141,58,0,224,175,58,0,16,185,58,0,224,2,0,0,0,161,0,0,0,29,2,0,0,61,0,0,0,112,232,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,96,113,234,203,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,16,85,184,75,0,34,205,76,16,55,152,77,0,4,173,78,16,25,120,79,0,230,140,80,144,53,97,81,0,200,108,82,144,23,65,83,0,170,76,84,144,249,32,85,0,140,44,86,144,219,0,87,128,168,21,88,144,189,224,88,128,138,245,89,144,159,192,90,128,108,213,91,16,188,169,92,128,78,181,93,16,158,137,94,128,48,149,95,16,128,105,96,0,77,126,97,16,98,73,98,0,47,94,99,61,0,0,0,1,3,1,2,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,60,156,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,202,58,0,224,205,58,0,224,11,59,0,16,28,59,0,224,81,0,0,0,128,44,166,158,112,249,186,159,128,14,134,160,112,219,154,161,128,254,136,203,240,9,97,210,0,243,117,211,240,235,64,212,128,74,15,249,240,103,8,250,0,43,184,254,112,223,64,6,112,208,48,7,128,39,141,7,112,178,16,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,99,73,119,97,170,170,170,170,170,170,170,170,82,0,0,0,1,2,1,2,1,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,8,0,0,0,221,173,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,44,59,0,224,126,59,0,224,131,59,0,16,153,59,0,224,57,0,0,0,96,218,182,165,0,230,138,22,112,218,36,24,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,57,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,252,171,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,3,0,48,0,66,0,54,0,173,59,0,224,231,59,0,16,247,59,0,224,42,0,0,0,160,26,137,203,16,38,97,210,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,226,53,86,48,72,229,86,32,255,30,88,48,42,197,88,32,225,254,89,48,12,165,90,32,195,222,91,160,70,68,92,48,238,132,92,32,165,190,93,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,26,48,135,125,170,170,170,170,170,170,170,170,44,0,0,0,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,1,2,1,2,1,2,4,1,2,1,12,0,0,0,38,214,0,0,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,166,132,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,228,7,0,112,5,60,0,224,48,60,0,224,55,60,0,16,67,60,0,224,2,0,0,0,166,0,0,0,30,2,0,0,68,0,0,0,112,232,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,96,176,222,197,80,52,151,198,224,241,85,201,80,221,234,201,224,198,2,207,80,86,183,207,224,21,153,218,208,131,118,219,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,68,0,0,0,1,3,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,12,163,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,91,60,0,224,94,60,0,224,163,60,0,16,181,60,0,224,44,0,0,0,40,23,223,145,192,99,110,19,208,228,117,32,64,119,129,33,208,198,85,34,192,147,106,35,208,168,53,36,192,117,74,37,208,138,21,38,192,87,42,39,80,167,254,39,192,57,10,41,80,137,222,41,192,27,234,42,80,107,190,43,64,56,211,44,80,77,158,45,64,26,179,46,80,47,126,47,64,252,146,48,208,75,103,49,64,222,114,50,208,45,71,51,64,192,82,52,208,15,39,53,64,162,50,54,208,241,6,55,192,190,27,56,208,211,230,56,192,160,251,57,208,181,198,58,192,130,219,59,80,210,175,60,192,100,187,61,80,180,143,62,192,70,155,63,80,150,111,64,64,99,132,65,80,120,79,66,64,69,100,67,80,90,47,68,64,39,68,69,208,140,243,69,192,67,45,71,170,170,170,170,170,170,170,170,170,170,170,170,44,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,88,203,255,255,0,0,0,0,192,199,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,208,213,255,127,157,3,0,96,216,7,0,112,199,60,0,224,247,60,0,16,3,61,0,224,145,0,0,0,80,182,241,128,96,133,184,158,80,221,186,159,208,56,60,187,64,35,180,187,208,26,28,189,64,5,148,189,208,252,251,190,64,231,115,191,208,222,219,192,64,201,83,193,208,192,187,194,64,171,51,195,208,162,155,196,64,141,19,197,208,248,112,198,64,205,13,199,208,241,72,200,64,175,237,200,208,94,22,202,192,203,214,202,96,226,136,203,208,237,96,210,224,214,117,211,208,207,64,212,224,184,85,213,208,177,32,214,224,154,53,215,208,147,0,216,224,124,21,217,208,117,224,217,96,153,254,218,208,87,192,219,96,123,222,220,80,116,169,221,96,93,190,222,80,86,137,223,96,63,158,224,80,56,105,225,96,33,126,226,80,26,73,227,96,3,94,228,80,252,40,229,224,31,71,230,208,24,18,231,224,1,39,232,208,228,22,233,224,227,6,234,208,198,246,234,224,197,230,235,208,168,214,236,224,167,198,237,80,197,191,238,96,196,175,239,80,167,159,240,96,166,143,241,80,137,127,242,96,136,111,243,80,107,95,244,96,106,79,245,80,77,63,246,96,76,47,247,208,105,40,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,124,93,190,43,108,42,211,44,124,63,158,45,108,12,179,46,124,33,126,47,108,238,146,48,252,61,103,49,108,208,114,50,252,31,71,51,108,178,82,52,252,1,39,53,108,148,50,54,252,227,6,55,236,176,27,56,252,197,230,56,236,146,251,57,252,167,198,58,236,116,219,59,124,196,175,60,236,86,187,61,124,166,143,62,236,56,155,63,124,136,111,64,108,85,132,65,124,106,79,66,108,55,100,67,124,76,47,68,108,25,68,69,224,154,243,69,208,81,45,71,2,0,0,0,255,255,255,255,188,237,30,94,146,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,68,195,255,255,0,0,0,0,176,185,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,192,199,255,127,157,3,0,96,216,7,0,112,22,61,0,224,168,61,0,224,171,61,0,16,209,61,0,224,62,0,0,0,96,218,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,0,241,85,34,240,189,106,35,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,128,4,245,58,240,194,182,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,128,102,15,70,112,51,36,71,0,131,248,71,112,21,4,73,0,101,216,73,112,247,227,74,0,71,184,75,240,19,205,76,0,41,152,77,240,245,172,78,0,11,120,79,240,215,140,80,128,39,97,81,240,185,108,82,128,9,65,83,240,155,76,84,128,235,32,85,240,125,44,86,128,205,0,87,112,154,21,88,128,175,224,88,112,124,245,89,128,145,192,90,112,94,213,91,0,174,169,92,112,64,181,93,0,144,137,94,112,34,149,95,0,114,105,96,240,62,126,97,0,84,73,98,240,32,94,99,170,170,170,170,170,170,170,170,170,170,170,170,62,0,0,0,1,3,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,244,161,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,229,61,0,224,39,62,0,16,56,62,0,224,85,0,0,0,179,135,146,162,64,219,255,168,176,15,241,169,56,89,226,170,48,67,210,171,184,140,195,172,176,118,179,173,184,181,244,187,176,181,191,188,184,151,212,189,176,151,159,190,184,121,180,191,176,121,127,192,184,91,148,193,176,91,95,194,56,120,125,195,176,61,63,196,56,90,93,197,176,31,31,198,56,82,24,199,48,60,8,200,56,30,29,201,48,30,232,201,56,159,139,202,48,198,30,205,40,102,149,205,176,133,11,236,40,53,242,236,176,74,69,237,32,214,133,237,176,114,19,247,32,27,250,247,48,62,254,252,40,17,246,253,48,117,150,0,32,82,216,0,176,138,87,4,160,58,198,4,176,27,150,7,152,218,223,7,40,159,198,8,48,78,90,9,32,115,219,9,48,18,26,13,160,135,127,13,48,127,231,14,160,105,95,15,48,214,217,16,160,75,63,17,176,45,137,17,160,162,49,19,48,84,195,33,32,120,39,34,176,228,161,35,160,148,16,36,176,103,74,37,32,60,231,37,48,15,33,39,160,88,208,39,176,43,10,41,160,58,176,41,48,211,224,42,160,28,144,43,48,246,76,65,192,47,70,66,208,163,72,67,192,156,19,68,80,75,31,69,192,126,243,69,208,103,8,71,192,96,211,71,208,73,232,72,192,66,179,73,208,43,200,74,64,95,156,75,208,13,168,76,64,65,124,77,208,239,135,78,64,35,92,79,80,12,113,80,64,5,60,81,80,238,80,82,64,231,27,83,80,208,48,84,64,201,251,84,170,170,170,170,85,0,0,0,1,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,5,4,5,4,6,4,6,4,5,4,6,4,6,4,7,5,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,6,4,170,170,170,16,0,0,0,77,203,255,255,0,0,0,0,192,199,255,255,0,0,0,0,200,206,255,255,0,0,0,0,200,206,255,255,8,7,0,0,208,213,255,255,0,0,0,0,208,213,255,255,8,7,0,0,208,213,255,255,16,14,0,0,208,213,255,255,24,21,0,0,3,0,48,0,66,0,54,0,72,62,0,224,159,62,0,16,182,62,0,224,3,0,0,0,174,0,0,0,146,1,0,0,112,2,0,0,174,0,0,0,112,30,166,158,96,235,186,159,112,0,134,160,96,205,154,161,112,226,101,162,224,233,131,163,112,174,106,164,96,167,53,165,240,202,83,166,96,137,21,167,240,172,51,168,224,165,254,168,240,142,19,170,224,135,222,170,240,112,243,171,224,105,190,172,240,82,211,173,224,75,158,174,240,52,179,175,224,45,126,176,112,81,156,177,96,74,103,178,112,51,124,179,96,44,71,180,112,21,92,181,96,14,39,182,112,247,59,183,96,240,6,184,112,217,27,185,96,210,230,185,240,245,4,187,96,180,198,187,240,215,228,188,224,208,175,189,240,185,196,190,224,178,143,191,240,155,164,192,224,148,111,193,240,125,132,194,224,118,79,195,240,95,100,196,224,88,47,197,112,124,77,198,224,58,15,199,112,94,45,200,96,87,248,200,112,64,13,202,96,57,216,202,112,240,136,203,224,251,96,210,240,228,117,211,224,221,64,212,240,198,85,213,224,191,32,214,240,168,53,215,224,161,0,216,240,138,21,217,224,131,224,217,112,167,254,218,224,101,192,219,112,137,222,220,96,130,169,221,112,107,190,222,96,100,137,223,112,77,158,224,96,70,105,225,112,47,126,226,96,40,73,227,112,17,94,228,224,46,87,229,240,45,71,230,224,16,55,231,240,15,39,232,224,242,22,233,240,241,6,234,224,212,246,234,240,211,230,235,224,182,214,236,240,181,198,237,96,211,191,238,112,210,175,239,96,181,159,240,112,180,143,241,96,151,127,242,112,150,111,243,96,121,95,244,112,120,79,245,96,91,63,246,112,90,47,247,224,119,40,248,112,60,15,249,224,89,8,250,240,88,248,250,224,59,232,251,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,96,164,16,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,144,240,3,94,170,170,170,170,175,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,158,186,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,1,0,0,96,216,7,0,112,204,62,0,224,208,62,0,224,127,63,0,224,131,63,0,16,176,63,0,224,80,0,0,0,208,68,137,203,64,80,97,210,80,113,184,254,64,84,168,255,80,83,152,0,64,54,136,1,80,53,120,2,192,82,113,3,208,81,97,4,192,52,81,5,208,51,65,6,192,22,49,7,208,109,141,7,192,248,16,9,80,233,173,9,192,218,240,10,208,217,224,11,64,247,217,12,208,187,192,13,64,217,185,14,80,216,169,15,64,187,153,16,80,186,137,17,64,157,121,18,80,156,105,19,64,127,89,20,80,126,73,21,64,97,57,22,80,96,41,23,192,125,34,24,80,66,9,25,192,95,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,210,79,135,125,170,170,170,170,82,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,110,182,0,0,0,0,0,0,238,100,255,255,0,0,0,0,80,101,255,255,0,0,0,0,80,101,255,255,16,14,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,196,63,0,224,21,64,0,224,27,64,0,16,49,64,0,224,2,0,0,0,177,0,0,0,121,1,0,0,39,0,0,0,100,101,170,150,208,59,15,184,144,50,253,184,32,38,241,185,16,102,222,186,32,160,56,218,32,236,235,218,160,211,25,220,16,75,185,220,32,7,251,221,16,208,155,222,32,140,221,223,16,37,84,224,160,241,151,244,16,80,5,245,32,86,192,246,144,16,14,247,32,30,81,248,16,183,199,248,160,196,10,250,144,234,168,250,32,248,235,251,144,111,139,252,32,128,201,29,144,201,120,30,160,39,160,31,144,193,51,32,32,91,129,33,144,186,11,34,160,2,88,35,16,98,226,35,160,228,55,37,16,185,212,37,160,184,246,55,16,119,184,56,32,213,223,57,144,1,233,57,160,241,200,59,144,0,111,60,170,170,170,170,170,170,170,170,170,170,170,170,39,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,156,225,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,73,64,0,224,76,64,0,224,119,64,0,16,130,64,0,224,96,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,16,197,243,69,0,124,45,71,16,167,211,71,0,94,13,73,16,137,179,73,0,64,237,74,144,165,156,75,128,92,214,76,128,121,124,77,112,48,182,78,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,170,170,170,170,97,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,170,170,170,10,0,0,0,149,160,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,220,7,0,112,144,64,0,224,241,64,0,224,247,64,0,16,17,65,0,224,88,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,176,12,4,94,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,8,161,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,39,65,0,224,128,65,0,224,131,65,0,16,155,65,0,224,88,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,0,24,97,210,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,192,16,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,144,131,192,13,0,161,185,14,16,160,169,15,0,131,153,16,16,130,137,17,0,101,121,18,16,100,105,19,0,71,89,20,16,70,73,21,0,41,57,22,16,40,41,23,128,69,34,24,16,10,9,25,128,39,2,26,144,38,242,26,128,9,226,27,144,8,210,28,128,235,193,29,144,234,177,30,128,205,161,31,16,29,118,32,128,175,129,33,16,255,85,34,0,204,106,35,16,225,53,36,0,174,74,37,16,195,21,38,0,144,42,39,144,223,254,39,0,114,10,41,144,193,222,41,0,84,234,42,144,163,190,43,128,112,211,44,144,133,158,45,128,82,179,46,144,103,126,47,128,52,147,48,16,132,103,49,128,22,115,50,16,102,71,51,128,248,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,16,238,198,58,0,187,219,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,89,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,170,170,170,10,0,0,0,237,160,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,171,255,127,1,0,0,96,216,7,0,112,177,65,0,224,10,66,0,224,15,66,0,16,39,66,0,224,2,0,0,0,121,0,0,0,181,0,0,0,90,0,0,0,0,104,128,155,80,124,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,144,108,55,83,144,71,76,84,144,78,23,85,144,41,44,86,144,48,247,86,16,70,21,88,144,18,215,88,16,40,245,89,144,244,182,90,16,10,213,91,16,17,160,92,16,236,180,93,16,243,127,94,16,206,148,95,16,213,95,96,144,234,125,97,16,183,63,98,144,204,93,99,16,153,31,100,144,181,8,102,144,144,29,103,90,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,170,170,10,0,0,0,128,207,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,224,227,255,127,7,0,0,96,233,7,0,112,61,66,0,224,64,66,0,224,155,66,0,16,179,66,0,224,62,0,0,0,112,232,182,165,112,43,241,175,96,86,102,182,112,61,65,183,96,54,12,184,240,134,253,184,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,16,72,39,53,128,218,50,54,16,42,7,55,0,247,27,56,16,12,231,56,0,217,251,57,144,18,245,58,0,209,182,59,144,10,176,60,0,157,187,61,144,236,143,62,0,127,155,63,144,206,111,64,128,155,132,65,144,176,79,66,128,125,100,67,144,146,47,68,128,95,68,69,144,116,15,70,128,65,36,71,16,145,248,71,128,35,4,73,16,115,216,73,128,5,228,74,144,165,156,75,128,92,214,76,144,135,124,77,128,62,182,78,144,105,92,79,128,32,150,80,144,75,60,81,128,2,118,82,144,45,28,83,128,228,85,84,144,15,252,84,128,198,53,86,16,44,229,86,0,227,30,88,16,14,197,88,0,197,254,89,16,240,164,90,0,167,222,91,16,210,132,92,0,137,190,93,16,180,100,94,0,107,158,95,144,208,77,96,128,135,135,97,144,178,45,98,0,47,94,99,128,134,13,100,112,61,71,101,170,170,170,170,170,170,170,170,170,170,170,170,62,0,0,0,1,3,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,170,170,10,0,0,0,28,158,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,1,0,0,96,232,7,0,112,201,66,0,224,11,67,0,16,28,67,0,224,5,0,0,0,79,0,0,0,97,0,0,0,101,0,0,0,183,0,0,0,145,1,0,0,1,0,0,0,232,97,244,139,2,0,0,0,255,255,255,255,16,38,135,105,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,112,181,255,255,0,0,0,0,24,181,255,255,0,0,0,0,176,185,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,49,67,0,224,55,67,0,224,57,67,0,224,63,67,0,16,65,67,0,224,4,0,0,0,184,142,5,145,196,75,42,190,180,44,98,210,184,49,190,27,170,170,170,170,170,170,170,170,4,0,0,0,1,2,3,4,10,0,0,0,72,204,255,255,0,0,0,0,60,204,255,255,0,0,0,0,76,204,255,255,0,0,0,0,200,206,255,255,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,80,67,0,224,87,67,0,16,89,67,0,224,5,0,0,0,104,0,0,0,186,0,0,0,26,2,0,0,37,2,0,0,109,2,0,0,10,0,0,0,144,58,166,158,128,7,187,159,144,28,134,160,128,233,154,161,144,12,137,203,28,223,23,207,172,229,143,207,28,26,129,208,16,117,248,250,0,88,232,251,2,0,0,0,255,255,255,255,176,12,4,94,170,170,170,170,170,170,170,170,11,0,0,0,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,238,150,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,105,67,0,224,111,67,0,224,122,67,0,224,127,67,0,16,131,67,0,224,45,0,0,0,252,113,110,156,208,70,27,25,64,239,1,26,80,238,241,26,64,209,225,27,80,208,209,28,64,179,193,29,80,178,177,30,64,149,161,31,80,148,145,32,64,119,129,33,224,212,85,34,224,175,106,35,224,182,53,36,224,145,74,37,224,152,21,38,224,115,42,39,96,181,254,39,224,85,10,41,96,151,222,41,224,55,234,42,96,121,190,43,96,84,211,44,96,91,158,45,96,54,179,46,96,61,126,47,96,24,147,48,224,89,103,49,96,250,114,50,224,59,71,51,96,220,82,52,80,120,79,66,64,69,100,67,80,90,47,68,64,39,68,69,112,77,92,79,96,4,150,80,112,47,60,81,96,230,117,82,112,17,28,83,96,200,85,84,112,243,251,84,96,170,53,86,240,241,196,88,224,168,254,89,2,0,0,0,255,255,255,255,80,31,135,105,46,0,0,0,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,8,0,0,0,48,188,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,68,188,255,255,0,0,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,185,255,127,139,3,0,96,226,7,0,112,146,67,0,224,192,67,0,224,195,67,0,16,208,67,0,224,29,0,0,0,232,130,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,24,196,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,3,0,48,0,66,0,54,0,228,67,0,224,3,68,0,16,12,68,0,224,22,0,0,0,61,0,0,0,62,0,0,0,77,0,0,0,86,0,0,0,106,0,0,0,112,0,0,0,124,0,0,0,125,0,0,0,149,0,0,0,154,0,0,0,158,0,0,0,172,0,0,0,188,0,0,0,191,0,0,0,208,0,0,0,210,0,0,0,211,0,0,0,212,0,0,0,213,0,0,0,220,0,0,0,222,0,0,0,39,2,0,0,2,0,0,0,192,50,246,203,208,237,96,210,2,0,0,0,255,255,255,255,185,149,230,122,170,170,170,170,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,7,194,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,24,68,0,224,47,68,0,224,50,68,0,224,55,68,0,16,57,68,0,224,116,0,0,0,69,71,48,143,80,229,92,155,197,226,124,159,192,113,0,161,197,119,94,176,64,61,119,177,208,0,65,178,192,112,88,179,80,52,34,180,64,164,57,181,208,103,3,182,192,215,26,183,80,155,228,183,192,92,253,184,80,32,199,185,64,110,28,204,208,231,108,204,64,227,23,212,192,85,51,213,64,146,118,213,64,60,209,253,176,250,146,254,192,205,204,255,176,220,114,0,192,80,117,1,176,73,64,2,192,50,85,3,176,43,32,4,64,79,62,5,176,13,0,6,64,188,11,7,176,239,223,7,64,19,254,8,176,209,191,9,64,245,221,10,48,238,168,11,64,215,189,12,48,208,136,13,64,185,157,14,48,178,104,15,192,213,134,16,48,148,72,17,192,183,102,18,48,118,40,19,192,153,70,20,176,146,17,21,192,123,38,22,176,116,241,22,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,176,134,67,88,2,0,0,0,255,255,255,255,252,29,135,105,170,170,170,170,170,170,170,170,170,170,170,170,117,0,0,0,3,1,3,4,3,2,1,2,1,2,1,2,1,2,1,4,1,4,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,6,170,170,170,14,0,0,0,132,189,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,187,189,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,72,68,0,224,189,68,0,224,195,68,0,16,226,68,0,224,73,0,0,0,0,110,140,231,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,207,32,8,112,178,16,9,128,177,0,10,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,170,170,170,170,73,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,0,0,0,0,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,157,3,0,96,216,7,0,112,248,68,0,224,67,69,0,16,87,69,0,224,39,0,0,0,184,103,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,176,255,151,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,176,198,246,55,32,133,184,56,48,227,223,57,160,15,233,57,176,255,200,59,160,14,111,60,170,170,170,170,39,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,72,223,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,106,69,0,224,147,69,0,16,158,69,0,224,3,0,0,0,196,0,0,0,132,1,0,0,137,1,0,0,52,0,0,0,28,147,253,134,144,175,184,158,128,7,187,159,240,79,101,181,224,72,48,182,240,49,69,183,224,42,16,184,240,19,37,185,224,12,240,185,112,48,14,187,224,238,207,187,112,18,238,188,96,11,185,189,240,8,114,194,224,235,97,195,240,234,81,196,96,147,56,197,240,204,49,198,224,175,33,199,112,233,26,200,96,204,10,201,112,203,250,201,96,174,234,202,144,12,137,203,0,24,97,210,16,140,99,211,0,111,83,212,16,227,85,213,0,220,32,214,16,197,53,215,0,190,0,216,16,167,21,217,0,160,224,217,144,195,254,218,0,130,192,219,144,165,222,220,128,158,169,221,144,135,190,222,128,128,137,223,144,105,158,224,128,98,105,225,144,75,126,226,128,68,73,227,144,45,94,228,128,38,41,229,16,74,71,230,0,67,18,231,16,44,39,232,0,37,242,232,16,240,230,235,0,211,214,236,16,210,198,237,52,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,8,0,0,0,228,157,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,170,69,0,224,174,69,0,224,227,69,0,16,241,69,0,224,73,0,0,0,128,129,251,213,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,207,32,8,112,178,16,9,128,177,0,10,112,148,240,10,128,147,224,11,240,176,217,12,128,117,192,13,240,146,185,14,0,146,169,15,240,116,153,16,0,116,137,17,240,86,121,18,0,86,105,19,240,56,89,20,0,56,73,21,240,26,57,22,0,26,41,23,112,55,34,24,0,252,8,25,112,25,2,26,128,24,242,26,112,251,225,27,128,250,209,28,112,221,193,29,128,220,177,30,112,191,161,31,0,15,118,32,112,161,129,33,0,241,85,34,240,189,106,35,0,211,53,36,240,159,74,37,0,181,21,38,240,129,42,39,128,209,254,39,240,99,10,41,128,179,222,41,240,69,234,42,128,149,190,43,112,98,211,44,128,119,158,45,112,68,179,46,128,89,126,47,112,38,147,48,0,118,103,49,112,8,115,50,0,88,71,51,112,234,82,52,0,58,39,53,112,204,50,54,0,28,7,55,240,232,27,56,0,254,230,56,240,202,251,57,0,224,198,58,240,172,219,59,128,252,175,60,240,142,187,61,128,222,143,62,240,112,155,63,128,192,111,64,112,141,132,65,128,162,79,66,112,111,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,73,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,3,2,1,170,170,170,8,0,0,0,0,0,0,0,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,157,3,0,96,216,7,0,112,1,70,0,224,75,70,0,16,95,70,0,224,3,0,0,0,189,0,0,0,198,0,0,0,120,1,0,0,31,0,0,0,144,134,170,150,0,102,15,184,192,92,253,184,80,80,241,185,64,144,222,186,80,202,56,218,80,22,236,218,208,253,25,220,64,117,185,220,80,49,251,221,64,250,155,222,80,182,221,223,64,79,84,224,208,27,152,244,64,122,5,245,80,128,192,246,192,58,14,247,80,72,81,248,64,225,199,248,208,238,10,250,192,20,169,250,80,34,236,251,192,153,139,252,80,170,201,29,192,243,120,30,208,81,160,31,192,235,51,32,80,133,129,33,192,228,11,34,80,127,96,72,192,4,127,82,170,170,170,170,31,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,8,0,0,0,112,192,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,114,70,0,224,118,70,0,224,151,70,0,16,160,70,0,224,30,0,0,0,72,122,170,150,240,87,15,184,176,78,253,184,64,66,241,185,48,130,222,186,64,188,56,218,64,8,236,218,192,239,25,220,48,103,185,220,64,35,251,221,48,236,155,222,64,168,221,223,48,65,84,224,192,13,152,244,48,108,5,245,64,114,192,246,176,44,14,247,64,58,81,248,48,211,199,248,192,224,10,250,176,6,169,250,64,20,236,251,176,139,139,252,64,156,201,29,176,229,120,30,192,67,160,31,176,221,51,32,64,119,129,33,176,214,11,34,64,113,96,72,30,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,184,204,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,176,70,0,224,207,70,0,16,216,70,0,224,2,0,0,0,202,0,0,0,139,1,0,0,130,0,0,0,69,71,48,143,80,229,92,155,197,226,124,159,192,113,0,161,197,119,94,176,64,61,119,177,208,0,65,178,192,112,88,179,80,52,34,180,64,164,57,181,208,103,3,182,192,215,26,183,80,155,228,183,192,92,253,184,80,32,199,185,64,110,28,204,208,231,108,204,192,143,220,211,48,213,23,212,192,85,51,213,64,146,118,213,64,60,209,253,176,250,146,254,192,205,204,255,176,220,114,0,192,80,117,1,176,73,64,2,192,50,85,3,176,43,32,4,64,79,62,5,176,13,0,6,64,188,11,7,176,239,223,7,64,19,254,8,176,209,191,9,64,245,221,10,48,238,168,11,64,215,189,12,48,208,136,13,64,185,157,14,48,178,104,15,192,213,134,16,48,148,72,17,192,183,102,18,48,118,40,19,192,153,70,20,176,146,17,21,192,123,38,22,176,116,241,22,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,48,200,23,89,192,206,143,89,48,170,247,90,192,176,111,91,176,103,169,92,192,124,116,93,176,73,137,94,192,94,84,95,176,43,105,96,192,64,52,97,176,13,73,98,64,93,29,99,176,239,40,100,192,4,244,100,170,170,170,170,170,170,170,170,170,170,170,170,130,0,0,0,1,0,3,0,2,1,2,1,2,1,2,1,2,1,3,1,3,4,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,170,170,10,0,0,0,187,189,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,192,199,255,127,121,3,0,96,232,7,0,112,230,70,0,224,233,70,0,224,111,71,0,16,145,71,0,224,16,0,0,0,96,66,223,186,208,75,8,250,64,195,167,250,208,241,167,255,200,123,67,0,208,211,135,1,72,127,250,1,80,240,112,3,72,4,221,3,80,210,80,5,72,137,191,5,80,180,48,7,200,188,160,7,80,150,16,9,224,188,251,57,96,225,41,58,2,0,0,0,255,255,255,255,8,29,135,105,17,0,0,0,4,1,3,1,2,1,2,1,2,1,2,1,2,1,5,1,5,170,170,170,12,0,0,0,120,190,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,8,7,0,0,176,185,255,255,16,14,0,0,96,190,255,255,0,0,0,0,192,199,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,167,71,0,224,184,71,0,224,187,71,0,16,193,71,0,224,3,0,0,0,204,0,0,0,118,1,0,0,122,1,0,0,91,0,0,0,180,114,170,150,224,73,15,184,160,64,253,184,48,52,241,185,32,116,222,186,48,174,56,218,48,250,235,218,176,225,25,220,32,89,185,220,48,21,251,221,32,222,155,222,48,154,221,223,32,51,84,224,48,9,90,244,32,94,5,245,48,100,192,246,160,30,14,247,48,44,81,248,32,197,199,248,176,210,10,250,160,248,168,250,48,6,236,251,160,125,139,252,48,142,201,29,160,215,120,30,176,53,160,31,160,207,51,32,48,105,129,33,160,200,11,34,176,16,88,35,32,112,226,35,176,242,55,37,32,199,212,37,48,15,33,39,160,227,189,39,48,241,0,41,32,139,148,41,176,13,234,42,160,50,107,43,48,181,192,44,32,196,102,45,48,151,160,46,32,166,70,47,48,121,128,48,160,77,29,49,176,32,87,50,32,106,6,51,48,84,56,52,32,193,248,52,48,31,32,54,160,104,207,54,176,198,246,55,32,133,184,56,48,227,223,57,160,44,143,58,176,255,200,59,160,14,111,60,48,145,196,61,160,240,78,62,48,254,145,63,160,210,46,64,48,248,134,65,32,239,23,66,48,194,81,67,32,209,247,67,176,83,77,69,160,237,224,69,48,134,17,71,32,149,183,71,176,162,250,72,32,119,151,73,176,132,218,74,160,147,128,75,176,102,186,76,160,117,96,77,176,72,154,78,32,146,73,79,48,101,131,80,160,57,32,81,48,71,99,82,160,27,0,83,48,41,67,84,32,56,233,84,48,11,35,86,32,26,201,86,48,237,2,88,32,252,168,88,48,207,226,89,32,222,136,90,176,96,222,91,32,192,104,92,170,170,170,170,170,170,170,170,91,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,76,212,255,255,0,0,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,213,71,0,224,217,71,0,224,55,72,0,16,79,72,0,224,91,0,0,0,24,76,128,155,64,110,77,19,192,36,52,20,160,249,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,144,108,55,83,144,71,76,84,144,78,23,85,144,41,44,86,144,48,247,86,16,70,21,88,144,18,215,88,16,40,245,89,144,244,182,90,16,10,213,91,16,17,160,92,16,236,180,93,16,243,127,94,16,206,148,95,16,213,95,96,144,234,125,97,16,183,63,98,144,204,93,99,16,153,31,100,144,174,61,101,144,181,8,102,144,144,29,103,170,170,170,170,170,170,170,170,91,0,0,0,1,2,1,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,170,10,0,0,0,104,235,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,240,241,255,255,0,0,0,0,240,241,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,224,227,255,127,7,0,0,96,233,7,0,112,93,72,0,224,187,72,0,16,211,72,0,224,80,0,0,0,160,26,137,203,16,38,97,210,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,206,16,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,153,51,135,125,170,170,170,170,82,0,0,0,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,12,0,0,0,167,210,0,0,0,0,0,0,39,129,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,232,72,0,224,57,73,0,224,63,73,0,16,85,73,0,224,3,0,0,0,209,0,0,0,126,1,0,0,135,1,0,0,187,0,0,0,12,98,207,156,252,230,164,157,140,126,184,158,124,214,186,159,220,136,182,160,76,255,56,161,92,25,149,162,76,252,132,163,92,251,116,164,76,222,100,165,220,23,94,166,76,192,68,167,220,249,61,168,76,162,36,169,220,219,29,170,76,132,4,171,220,189,253,171,76,102,228,172,220,159,221,173,204,130,205,174,220,129,189,175,204,100,173,176,92,158,166,177,204,70,141,178,92,128,134,179,204,40,109,180,92,98,102,181,204,10,77,182,92,68,70,183,204,236,44,184,92,38,38,185,76,9,22,186,220,66,15,187,76,235,245,187,220,36,239,188,76,205,213,189,108,77,158,190,168,6,207,190,24,175,181,191,56,49,184,192,168,239,121,193,56,19,152,194,168,209,89,195,56,245,119,196,168,179,57,197,184,17,97,198,168,149,25,199,184,243,64,200,40,178,2,201,184,213,32,202,40,148,226,202,184,183,0,204,200,230,96,210,216,68,136,211,72,3,74,212,216,38,104,213,72,229,41,214,216,8,72,215,72,199,9,216,216,234,39,217,72,169,233,217,88,7,17,219,200,197,210,219,88,116,222,220,72,109,169,221,88,86,190,222,72,79,137,223,88,56,158,224,72,49,105,225,88,26,126,226,72,19,73,227,88,252,93,228,72,245,40,229,216,24,71,230,200,17,18,231,216,250,38,232,200,243,241,232,216,220,6,234,200,213,209,234,216,190,230,235,200,183,177,236,216,160,198,237,72,190,191,238,88,189,175,239,72,160,159,240,88,159,143,241,72,130,127,242,88,129,111,243,72,100,95,244,88,99,79,245,72,70,63,246,88,69,47,247,200,98,40,248,88,39,15,249,200,68,8,250,216,67,248,250,200,38,232,251,216,37,216,252,200,8,200,253,216,7,184,254,200,234,167,255,216,233,151,0,200,204,135,1,216,203,119,2,72,233,112,3,88,232,96,4,72,203,80,5,88,202,64,6,72,173,48,7,88,172,32,8,72,143,16,9,88,142,0,10,72,113,240,10,88,112,224,11,200,141,217,12,88,82,192,13,200,111,185,14,216,110,169,15,200,81,153,16,216,80,137,17,200,51,121,18,216,50,105,19,200,21,89,20,216,20,73,21,200,247,56,22,216,246,40,23,72,20,34,24,216,216,8,25,72,246,1,26,88,245,241,26,72,216,225,27,88,215,209,28,72,186,193,29,88,185,177,30,72,156,161,31,244,207,117,32,100,98,129,33,244,177,85,34,212,112,106,35,244,147,53,36,228,96,74,37,244,117,21,38,228,66,42,39,116,146,254,39,228,36,10,41,116,116,222,41,228,6,234,42,116,86,190,43,100,35,211,44,116,56,158,45,100,5,179,46,116,26,126,47,100,231,146,48,244,54,103,49,100,201,114,50,244,24,71,51,100,171,82,52,244,250,38,53,100,141,50,54,244,220,6,55,228,169,27,56,244,190,230,56,228,139,251,57,244,160,198,58,228,109,219,59,116,189,175,60,228,79,187,61,116,159,143,62,228,49,155,63,116,129,111,64,100,78,132,65,116,99,79,66,100,48,100,67,116,69,47,68,100,18,68,69,244,119,243,69,228,46,45,71,244,89,211,71,228,16,13,73,244,59,179,73,228,242,236,74,116,88,156,75,100,15,214,76,116,58,124,77,72,13,182,78,88,56,92,79,72,239,149,80,170,170,170,170,170,170,170,170,187,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,10,0,0,0,148,206,255,255,0,0,0,0,148,206,255,255,16,14,0,0,200,206,255,255,0,0,0,0,200,206,255,255,16,14,0,0,200,206,255,255,32,28,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,200,206,255,127,157,3,0,96,221,7,0,112,109,73,0,224,113,73,0,224,47,74,0,16,95,74,0,224,22,0,0,0,24,150,253,134,144,175,184,158,128,7,187,159,144,12,137,203,0,24,97,210,16,1,118,211,0,111,83,212,16,227,85,213,0,220,32,214,16,197,53,215,0,190,0,216,16,167,21,217,0,160,224,217,16,44,39,232,0,15,23,233,16,240,230,235,0,211,214,236,16,210,198,237,0,203,145,238,144,238,175,239,0,173,113,240,144,25,97,4,170,170,170,170,170,170,170,170,170,170,170,170,22,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,8,0,0,0,232,154,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,3,0,48,0,66,0,54,0,117,74,0,224,143,74,0,16,150,74,0,224,7,0,0,0,68,75,76,164,224,220,154,32,80,155,92,33,224,190,122,34,80,125,60,35,224,140,93,68,208,200,214,68,170,170,170,170,170,170,170,170,170,170,170,170,7,0,0,0,1,2,1,2,1,2,1,170,6,0,0,0,60,174,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,3,0,48,0,66,0,54,0,164,74,0,224,175,74,0,16,178,74,0,224,35,0,0,0,252,119,128,155,224,122,245,39,208,93,229,40,224,92,213,41,208,63,197,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,132,191,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,201,10,0,96,216,7,0,112,190,74,0,224,227,74,0,16,237,74,0,224,4,0,0,0,116,0,0,0,200,0,0,0,218,0,0,0,28,2,0,0,100,0,0,0,112,232,182,165,112,79,121,169,128,57,241,175,112,100,102,182,0,16,27,183,240,242,10,184,128,141,234,203,240,174,157,210,0,89,27,215,240,180,145,216,0,7,0,219,240,115,192,219,160,179,222,220,144,172,169,221,160,149,190,222,144,142,137,223,144,75,126,226,144,82,73,227,144,45,94,228,144,52,41,229,16,74,71,230,16,81,18,231,16,44,39,232,16,51,242,232,16,14,7,234,16,21,210,234,16,240,230,235,16,247,177,236,16,210,198,237,16,217,145,238,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,160,130,15,70,144,79,36,71,32,159,248,71,144,49,4,73,32,129,216,73,144,19,228,74,160,179,156,75,144,106,214,76,170,170,170,170,170,170,170,170,170,170,170,170,100,0,0,0,3,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,8,0,0,0,76,146,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,128,143,255,127,1,0,0,96,219,7,0,112,254,74,0,224,3,75,0,224,107,75,0,16,133,75,0,224,6,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,217,0,0,0,219,0,0,0,133,1,0,0,170,0,0,0,112,147,184,158,96,235,186,159,200,46,135,160,64,177,154,161,240,6,148,162,64,169,85,163,240,93,134,164,96,120,40,165,240,63,102,166,224,78,12,167,240,33,70,168,224,48,236,168,112,201,28,170,96,77,213,170,112,171,252,171,96,47,181,172,112,141,220,173,96,17,149,174,112,111,188,175,224,45,126,176,112,81,156,177,96,74,103,178,112,51,124,179,96,44,71,180,112,21,92,181,96,14,39,182,112,247,59,183,96,240,6,184,240,19,37,185,96,210,230,185,240,245,4,187,224,238,207,187,240,215,228,188,224,208,175,189,240,185,196,190,224,178,143,191,240,155,164,192,224,148,111,193,240,125,132,194,224,118,79,195,240,95,100,196,224,88,47,197,112,124,77,198,224,58,15,199,112,94,45,200,224,251,96,210,240,228,117,211,224,221,64,212,240,198,85,213,224,191,32,214,240,168,53,215,224,161,0,216,240,138,21,217,96,146,51,218,112,167,254,218,96,116,19,220,112,137,222,220,96,130,169,221,112,107,190,222,96,100,137,223,112,77,158,224,96,70,105,225,112,47,126,226,96,40,73,227,112,17,94,228,96,10,41,229,240,45,71,230,224,38,18,231,240,15,39,232,224,242,22,233,240,241,6,234,224,212,246,234,240,211,230,235,224,182,214,236,240,181,198,237,96,211,191,238,112,210,175,239,96,181,159,240,112,180,143,241,96,151,127,242,112,150,111,243,96,121,95,244,112,120,79,245,96,91,63,246,112,90,47,247,224,119,40,248,112,60,15,249,224,89,8,250,240,88,248,250,224,59,232,251,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,193,32,8,96,164,16,9,112,163,0,10,96,134,240,10,112,133,224,11,224,162,217,12,112,103,192,13,224,132,185,14,240,131,169,15,224,102,153,16,240,101,137,17,224,72,121,18,240,71,105,19,224,42,89,20,240,41,73,21,224,12,57,22,240,11,41,23,96,41,34,24,240,237,8,25,96,11,2,26,112,10,242,26,96,237,225,27,112,236,209,28,96,207,193,29,112,206,177,30,96,177,161,31,240,0,118,32,96,147,129,33,240,226,85,34,224,175,106,35,240,196,53,36,224,145,74,37,240,166,21,38,224,115,42,39,112,195,254,39,224,85,10,41,112,165,222,41,224,55,234,42,112,135,190,43,96,84,211,44,112,105,158,45,96,54,179,46,112,75,126,47,96,24,147,48,240,103,103,49,96,250,114,50,240,73,71,51,96,220,82,52,240,43,39,53,96,190,50,54,240,13,7,55,224,218,27,56,240,239,230,56,224,188,251,57,240,209,198,58,224,158,219,59,112,238,175,60,224,128,187,61,112,208,143,62,224,98,155,63,112,178,111,64,96,127,132,65,112,148,79,66,96,97,100,67,112,118,47,68,96,67,68,69,240,168,243,69,224,95,45,71,2,0,0,0,255,255,255,255,236,120,238,114,170,170,170,170,171,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,148,181,255,255,0,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,176,185,255,127,157,3,0,96,216,7,0,112,153,75,0,224,160,75,0,224,75,76,0,224,79,76,0,16,123,76,0,224,2,0,0,0,221,0,0,0,136,1,0,0,128,0,0,0,160,189,184,158,144,21,187,159,160,26,137,203,16,38,97,210,32,15,118,211,16,8,65,212,32,241,85,213,16,234,32,214,32,211,53,215,16,204,0,216,32,181,21,217,16,174,224,217,160,209,254,218,16,144,192,219,160,179,222,220,144,172,169,221,160,149,190,222,144,142,137,223,160,119,158,224,144,112,105,225,160,89,126,226,144,82,73,227,160,59,94,228,144,52,41,229,32,88,71,230,16,81,18,231,32,58,39,232,16,51,242,232,32,28,7,234,16,21,210,234,32,254,230,235,16,247,177,236,32,224,198,237,16,217,145,238,160,252,175,239,16,187,113,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,235,32,8,144,206,16,9,160,205,0,10,144,176,240,10,160,175,224,11,16,205,217,12,160,145,192,13,16,175,185,14,32,174,169,15,16,145,153,16,32,144,137,17,16,115,121,18,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,2,0,0,0,255,255,255,255,236,118,61,94,170,170,170,170,129,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,148,140,255,255,0,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,128,143,255,127,157,3,0,96,216,7,0,112,143,76,0,224,146,76,0,224,19,77,0,224,23,77,0,16,57,77,0,224,2,0,0,0,223,0,0,0,138,1,0,0,91,0,0,0,176,203,184,158,160,35,187,159,176,12,208,160,128,210,162,161,176,40,137,203,32,52,97,210,144,118,47,247,16,162,40,248,144,132,197,248,32,114,105,19,16,85,89,20,32,84,73,21,16,55,57,22,32,54,41,23,144,83,34,24,32,24,9,25,144,53,2,26,160,52,242,26,144,23,226,27,160,22,210,28,144,249,193,29,160,248,177,30,144,219,161,31,32,43,118,32,144,189,129,33,32,13,86,34,16,218,106,35,32,239,53,36,16,188,74,37,32,209,21,38,16,158,42,39,160,237,254,39,16,128,10,41,160,207,222,41,16,98,234,42,160,177,190,43,144,126,211,44,160,147,158,45,144,96,179,46,160,117,126,47,144,66,147,48,32,146,103,49,144,36,115,50,32,116,71,51,144,6,83,52,32,86,39,53,144,232,50,54,32,56,7,55,16,5,28,56,32,26,231,56,16,231,251,57,32,252,198,58,16,201,219,59,160,24,176,60,16,171,187,61,160,250,143,62,16,141,155,63,160,220,111,64,144,169,132,65,160,190,79,66,144,139,100,67,160,160,47,68,144,109,68,69,32,211,243,69,16,138,45,71,32,181,211,71,16,108,13,73,32,151,179,73,16,78,237,74,160,179,156,75,144,106,214,76,160,149,124,77,144,76,182,78,160,119,92,79,144,46,150,80,160,89,60,81,144,16,118,82,160,59,28,83,144,242,85,84,160,29,252,84,144,212,53,86,32,58,229,86,16,241,30,88,32,28,197,88,16,211,254,89,32,254,164,90,16,181,222,91,32,224,132,92,16,151,190,93,32,194,100,94,240,92,158,95,2,0,0,0,255,255,255,255,156,138,134,125,92,0,0,0,1,2,1,2,1,2,1,3,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,6,14,0,0,0,100,129,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,112,129,255,255,32,28,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,144,157,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,77,77,0,224,80,77,0,224,172,77,0,224,175,77,0,16,199,77,0,224,3,0,0,0,193,0,0,0,224,0,0,0,131,1,0,0,124,0,0,0,224,251,1,155,80,186,195,155,128,161,184,158,112,249,186,159,128,59,160,194,240,132,79,195,128,254,136,203,240,9,97,210,0,104,136,211,240,96,83,212,0,213,85,213,240,205,32,214,0,183,53,215,240,175,0,216,0,153,21,217,240,145,224,217,0,7,0,219,240,92,200,219,128,151,222,220,112,144,169,221,128,121,190,222,112,114,137,223,128,91,158,224,112,84,105,225,128,61,126,226,112,54,73,227,128,31,94,228,112,24,41,229,0,60,71,230,240,52,18,231,0,30,39,232,240,22,242,232,0,0,7,234,240,248,209,234,0,226,230,235,240,196,214,236,0,196,198,237,240,188,145,238,128,164,111,243,240,98,49,244,128,74,15,249,0,118,8,250,0,103,248,250,0,88,232,251,0,73,216,252,0,58,200,253,0,43,184,254,0,28,168,255,0,13,152,0,0,254,135,1,0,239,119,2,128,26,113,3,128,11,97,4,128,252,80,5,128,237,64,6,128,222,48,7,128,207,32,8,128,192,16,9,128,177,0,10,128,162,240,10,128,147,224,11,0,191,217,12,128,117,192,13,0,161,185,14,0,146,169,15,0,131,153,16,0,116,137,17,0,101,121,18,0,86,105,19,0,71,89,20,0,56,73,21,0,41,57,22,0,26,41,23,128,69,34,24,0,252,8,25,128,39,2,26,128,24,242,26,128,9,226,27,128,250,209,28,128,235,193,29,128,220,177,30,128,205,161,31,0,15,118,32,128,175,129,33,0,241,85,34,0,204,106,35,0,211,53,36,0,174,74,37,0,181,21,38,0,144,42,39,128,209,254,39,0,114,10,41,128,179,222,41,0,84,234,42,128,149,190,43,128,112,211,44,128,119,158,45,128,82,179,46,128,89,126,47,128,52,147,48,0,118,103,49,128,22,115,50,0,88,71,51,128,248,82,52,0,58,39,53,128,218,50,54,0,28,7,55,0,247,27,56,0,254,230,56,0,217,251,57,0,224,198,58,0,187,219,59,128,252,175,60,0,157,187,61,128,222,143,62,0,127,155,63,128,192,111,64,128,155,132,65,128,162,79,66,128,125,100,67,128,132,47,68,112,81,68,69,0,183,243,69,240,109,45,71,2,0,0,0,255,255,255,255,148,176,228,100,170,170,170,170,125,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,236,164,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,171,255,127,157,3,0,96,216,7,0,112,222,77,0,224,226,77,0,224,95,78,0,224,99,78,0,16,132,78,0,224,80,0,0,0,176,40,137,203,32,52,97,210,48,85,184,254,32,56,168,255,48,55,152,0,32,26,136,1,48,25,120,2,160,54,113,3,176,53,97,4,160,24,81,5,176,23,65,6,160,250,48,7,176,81,141,7,160,220,16,9,48,205,173,9,160,190,240,10,176,189,224,11,32,219,217,12,176,159,192,13,32,189,185,14,48,188,169,15,32,159,153,16,48,158,137,17,32,129,121,18,48,128,105,19,32,99,89,20,48,98,73,21,32,69,57,22,48,68,41,23,160,97,34,24,48,38,9,25,160,67,2,26,176,66,242,26,160,37,226,27,176,36,210,28,160,7,194,29,176,6,178,30,160,233,161,31,48,57,118,32,160,203,129,33,48,27,86,34,32,232,106,35,48,253,53,36,32,202,74,37,48,223,21,38,32,172,42,39,176,251,254,39,32,142,10,41,176,221,222,41,32,112,234,42,176,191,190,43,160,140,211,44,176,161,158,45,160,110,179,46,176,131,126,47,160,80,147,48,48,160,103,49,160,50,115,50,48,130,71,51,160,20,83,52,48,100,39,53,160,246,50,54,48,70,7,55,32,19,28,56,48,40,231,56,32,245,251,57,48,10,199,58,32,215,219,59,176,38,176,60,32,185,187,61,176,8,144,62,32,155,155,63,176,234,111,64,160,183,132,65,176,204,79,66,160,153,100,67,176,174,47,68,160,123,68,69,48,225,243,69,32,152,45,71,4,0,0,0,255,255,255,255,209,253,194,63,255,255,255,255,191,55,135,125,170,170,170,170,82,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,129,206,0,0,0,0,0,0,1,125,255,255,0,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,112,129,255,127,1,0,0,96,216,7,0,112,152,78,0,224,233,78,0,224,239,78,0,16,5,79,0,224,17,0,0,0,128,204,30,254,32,6,218,74,240,202,143,75,32,156,169,78,144,205,67,79,128,59,10,88,16,15,164,90,64,20,185,91,128,29,141,92,48,69,150,93,0,197,99,94,60,160,120,95,80,183,76,96,60,130,88,97,80,153,44,98,60,100,56,99,0,177,8,100,17,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,0,0,0,0,0,0,0,0,128,112,0,0,0,0,0,0,176,154,0,0,0,0,0,0,3,0,48,0,66,0,54,0,25,79,0,224,43,79,0,16,49,79,0,224,7,0,0,0,0,64,156,231,16,223,71,246,0,171,71,254,48,20,218,74,64,250,151,75,48,170,169,78,192,247,67,79,170,170,170,170,170,170,170,170,7,0,0,0,2,0,2,1,2,1,2,170,6,0,0,0,0,0,0,0,0,0,0,0,80,70,0,0,0,0,0,0,112,98,0,0,0,0,0,0,3,0,48,0,66,0,54,0,61,79,0,224,71,79,0,16,74,79,0,224,91,0,0,0,128,120,213,155,0,47,188,156,96,180,135,160,0,104,12,215,0,141,194,251,0,126,178,252,0,89,199,253,128,176,118,254,0,59,167,255,128,146,86,0,0,29,135,1,0,175,63,2,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,0,79,3,23,128,100,33,24,0,49,227,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,39,103,30,0,178,151,31,128,126,89,32,128,206,128,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,95,2,38,0,175,41,39,0,182,244,39,128,225,237,40,0,152,212,41,128,195,205,42,0,122,180,43,128,165,173,44,0,92,148,45,128,135,141,46,0,62,116,47,128,105,109,48,128,90,93,49,0,134,86,50,128,60,61,51,0,104,54,52,128,30,29,53,0,74,22,54,128,0,253,54,0,44,246,55,128,226,220,56,128,233,167,57,128,196,188,58,128,42,191,59,0,225,165,60,128,12,159,61,0,195,133,62,128,238,126,63,0,165,101,64,128,208,94,65,0,135,69,66,128,178,62,67,128,163,46,68,128,148,30,69,0,75,5,70,0,177,7,71,0,162,247,71,0,147,231,72,0,132,215,73,0,117,199,74,0,72,151,77,0,57,135,78,2,0,0,0,255,255,255,255,0,22,5,124,170,170,170,170,170,170,170,170,92,0,0,0,1,2,1,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,0,0,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,160,140,0,112,212,3,0,96,220,7,0,112,86,79,0,224,178,79,0,224,183,79,0,16,207,79,0,224,2,0,0,0,128,50,32,226,64,34,218,74,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,2,1,170,170,6,0,0,0,0,0,0,0,0,0,0,0,80,70,0,0,0,0,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,225,79,0,224,231,79,0,16,233,79,0,224,82,0,0,0,0,173,152,246,176,159,230,246,192,67,19,248,48,211,199,248,64,119,244,249,176,54,211,250,192,53,195,251,48,83,188,252,64,82,172,253,48,53,156,254,64,52,140,255,176,74,163,7,160,111,36,8,176,188,48,23,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,176,134,67,88,170,170,170,170,170,170,170,170,170,170,170,170,82,0,0,0,2,1,2,1,2,1,2,1,2,1,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,10,0,0,0,0,0,0,0,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,245,79,0,224,75,80,0,16,97,80,0,224,1,0,0,0,0,45,2,13,1,0,0,0,1,170,170,170,4,0,0,0,0,0,0,0,0,0,0,0,208,213,255,255,0,0,0,0,3,0,48,0,66,0,54,0,113,80,0,224,115,80,0,16,117,80,0,224,2,0,0,0,144,5,70,66,16,27,100,67,170,170,170,170,2,0,0,0,1,0,170,170,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,28,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,0,0,0,112,21,23,0,96,214,7,0,112,127,80,0,224,131,80,0,16,133,80,0,224,4,0,0,0,128,137,88,233,16,57,77,45,0,133,181,46,48,69,127,101,170,170,170,170,170,170,170,170,4,0,0,0,2,0,2,1,6,0,0,0,0,0,0,0,0,0,0,0,80,70,0,0,0,0,0,0,112,98,0,0,0,0,0,0,3,0,48,0,66,0,54,0,148,80,0,224,155,80,0,16,157,80,0,224,52,0,0,0,220,123,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,237,228,40,80,149,120,41,64,208,212,41,64,193,196,42,64,178,180,43,64,163,164,44,64,148,148,45,64,133,132,46,64,118,116,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,32,198,224,101,170,170,170,170,52,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,1,10,0,0,0,36,72,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,169,80,0,224,223,80,0,16,237,80,0,224,87,0,0,0,208,214,163,182,224,121,114,6,80,171,12,7,96,55,36,8,208,222,237,8,224,106,5,10,80,18,207,10,224,239,231,11,208,117,218,12,96,35,201,13,208,202,146,14,96,5,169,15,208,172,114,16,96,213,173,28,208,9,159,29,96,253,146,30,80,224,130,31,96,223,114,32,80,194,98,33,96,193,82,34,208,222,75,35,96,188,100,36,208,192,43,37,96,111,55,38,208,162,11,39,224,115,11,40,80,74,226,40,96,190,228,41,208,102,203,42,224,101,187,43,208,72,171,44,224,71,155,45,208,181,120,46,96,100,132,47,224,165,88,48,96,70,100,49,96,194,65,50,96,40,68,51,96,164,33,52,96,10,36,53,96,134,1,54,96,147,122,55,224,162,234,55,224,124,226,56,96,191,211,57,224,94,194,58,96,161,179,59,96,146,163,60,96,131,147,61,96,116,131,62,96,79,152,63,96,86,99,64,224,246,110,65,224,114,76,66,224,99,60,67,224,84,44,68,224,47,65,69,224,54,12,70,224,17,33,71,224,24,236,71,96,46,10,73,224,250,203,73,96,16,234,74,224,220,171,75,96,242,201,76,96,249,148,77,96,212,169,78,96,219,116,79,80,94,179,82,96,159,52,83,224,180,82,84,96,129,20,85,224,150,50,86,224,157,253,86,224,120,18,88,224,127,221,88,224,90,242,89,224,97,189,90,224,60,210,91,224,67,157,92,224,30,178,93,224,37,125,94,96,59,155,95,224,7,93,96,96,29,123,97,224,255,23,98,96,255,90,99,170,170,170,170,170,170,170,170,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,8,0,0,0,176,33,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,253,80,0,224,87,81,0,16,110,81,0,224,64,0,0,0,156,29,25,170,192,140,163,181,48,27,39,21,160,79,24,22,176,78,8,23,48,145,249,23,64,144,233,24,176,196,218,25,64,21,204,26,96,34,188,27,96,19,172,28,96,4,156,29,96,245,139,30,96,230,123,31,96,215,107,32,96,200,91,33,96,185,75,34,96,170,59,35,96,155,43,36,96,140,27,37,96,125,11,38,224,168,4,39,224,153,244,39,240,152,228,40,240,64,120,41,224,123,212,41,224,108,196,42,224,93,180,43,224,78,164,44,224,63,148,45,224,48,132,46,224,33,116,47,224,18,100,48,96,62,93,49,96,25,114,50,96,32,61,51,96,251,81,52,96,2,29,53,96,221,49,54,96,228,252,54,224,249,26,56,96,198,220,56,224,219,250,57,96,168,188,58,224,189,218,59,224,196,165,60,224,159,186,61,224,166,133,62,224,129,154,63,224,136,101,64,96,158,131,65,224,106,69,66,96,128,99,67,224,76,37,68,96,98,67,69,224,46,5,70,96,68,35,71,96,75,238,71,96,38,3,73,96,45,206,73,96,8,227,74,96,15,174,75,240,50,204,76,112,255,141,77,170,170,170,170,170,170,170,170,64,0,0,0,3,5,6,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,14,0,0,0,100,166,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,208,182,0,0,0,0,0,0,208,182,0,0,16,14,0,0,3,0,48,0,66,0,54,0,124,81,0,224,191,81,0,16,208,81,0,224,50,0,0,0,224,148,25,170,64,253,163,181,48,206,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,96,146,116,47,96,131,100,48,224,174,93,49,224,137,114,50,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,50,0,0,0,1,3,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,12,0,0,0,32,47,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,228,81,0,224,23,82,0,16,37,82,0,224,51,0,0,0,104,142,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,51,0,0,0,1,3,4,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,12,0,0,0,152,53,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,55,82,0,224,107,82,0,16,121,82,0,224,2,0,0,0,246,0,0,0,247,0,0,0,25,0,0,0,68,141,25,170,64,253,163,181,176,139,39,21,32,192,24,22,48,191,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,170,170,170,170,170,170,170,170,170,170,170,170,25,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,170,170,170,10,0,0,0,188,54,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,139,82,0,224,142,82,0,224,171,82,0,16,179,82,0,224,50,0,0,0,80,147,25,170,80,11,164,181,48,206,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,170,170,170,170,170,170,170,170,170,170,170,170,50,0,0,0,1,4,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,3,2,3,2,3,2,3,4,170,170,14,0,0,0,176,48,0,0,0,0,0,0,48,42,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,197,82,0,224,251,82,0,16,9,83,0,224,53,0,0,0,224,60,48,158,80,104,48,23,192,15,250,23,80,189,232,24,64,67,219,25,208,147,204,26,64,200,189,27,80,199,173,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,0,120,246,39,128,186,231,40,0,253,216,41,128,63,202,42,128,48,186,43,0,115,171,44,0,100,155,45,128,166,140,46,128,151,124,47,0,218,109,48,128,28,95,49,0,95,80,50,0,80,64,51,128,146,49,52,128,131,33,53,0,198,18,54,0,183,2,55,128,249,243,55,0,60,229,56,128,126,214,57,128,111,198,58,0,178,183,59,0,163,167,60,128,229,152,61,128,214,136,62,0,25,122,63,128,91,107,64,0,158,92,65,0,143,76,66,128,209,61,67,128,194,45,68,0,5,31,69,0,246,14,70,128,56,0,71,2,0,0,0,255,255,255,255,220,177,134,105,170,170,170,170,54,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,164,41,0,0,0,0,0,0,160,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,29,83,0,224,83,83,0,224,87,83,0,16,102,83,0,224,66,0,0,0,68,149,25,170,80,12,218,231,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,112,9,229,40,112,250,212,41,112,235,196,42,16,217,93,49,16,180,114,50,0,173,61,51,0,136,82,52,0,143,29,53,0,106,50,54,0,113,253,54,128,134,27,56,0,83,221,56,128,104,251,57,0,53,189,58,128,74,219,59,128,81,166,60,128,44,187,61,128,51,134,62,128,14,155,63,128,21,102,64,0,43,132,65,128,247,69,66,0,13,100,67,128,217,37,68,0,239,67,69,128,187,5,70,0,209,35,71,0,216,238,71,0,179,3,73,0,186,206,73,0,149,227,74,0,156,174,75,128,177,204,76,0,126,142,77,128,147,172,78,0,96,110,79,128,117,140,80,128,124,87,81,128,87,108,82,128,94,55,83,128,57,76,84,128,64,23,85,128,27,44,86,170,170,170,170,170,170,170,170,66,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,188,46,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,118,83,0,224,187,83,0,16,205,83,0,224,4,0,0,0,252,0,0,0,48,1,0,0,77,1,0,0,8,2,0,0,1,0,0,0,196,103,106,162,170,170,170,170,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,60,94,0,0,0,0,0,0,112,98,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,221,83,0,224,226,83,0,224,231,83,0,16,233,83,0,224,67,0,0,0,252,125,213,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,128,76,199,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,64,234,246,86,170,170,170,170,170,170,170,170,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,170,10,0,0,0,132,78,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,245,83,0,224,59,84,0,16,77,84,0,224,64,0,0,0,224,99,101,162,80,130,123,163,96,128,78,164,208,180,63,165,224,39,37,166,208,127,39,167,224,243,41,168,80,178,235,168,224,133,42,232,80,45,244,232,96,185,11,234,208,96,213,234,224,236,236,235,80,148,182,236,224,113,207,237,80,25,153,238,96,165,176,239,208,76,122,240,96,94,166,4,208,119,43,5,224,3,67,6,80,171,12,7,96,55,36,8,208,222,237,8,224,106,5,10,80,18,207,10,224,239,231,11,80,151,177,12,96,35,201,13,208,202,146,14,96,5,169,15,208,172,114,16,224,46,244,26,208,156,209,27,96,98,213,28,80,208,178,29,224,149,182,30,208,3,148,31,96,201,151,32,80,55,117,33,224,44,163,34,80,188,87,35,96,95,103,36,208,239,56,37,96,181,60,38,80,35,26,39,224,232,29,40,208,86,251,40,224,109,0,42,208,9,206,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,145,77,50,224,144,61,51,208,115,45,52,224,114,29,53,208,85,13,54,224,84,253,54,80,92,27,56,2,0,0,0,255,255,255,255,184,194,182,86,170,170,170,170,170,170,170,170,65,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,72,33,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,32,28,0,112,7,4,0,96,208,7,0,112,93,84,0,224,158,84,0,224,163,84,0,16,181,84,0,224,52,0,0,0,16,126,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,192,163,190,40,48,55,231,41,32,165,196,42,48,25,199,43,32,135,164,44,48,251,166,45,32,105,132,46,48,221,134,47,32,75,100,48,48,191,102,49,160,103,77,50,216,137,61,51,200,86,82,52,216,107,29,53,200,56,50,54,216,77,253,54,72,85,27,56,216,47,221,56,72,55,251,57,216,17,189,58,72,25,219,59,88,46,166,60,72,251,186,61,88,16,134,62,72,221,154,63,88,242,101,64,200,249,131,65,88,212,69,66,32,146,251,66,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,10,0,0,0,240,69,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,199,84,0,224,255,84,0,16,13,85,0,224,66,0,0,0,160,249,219,161,0,197,163,181,112,83,39,21,224,135,24,22,240,134,8,23,96,187,249,23,112,186,233,24,224,238,218,25,112,63,204,26,144,76,188,27,144,61,172,28,144,46,156,29,144,31,140,30,144,16,124,31,144,1,108,32,144,242,91,33,144,227,75,34,144,212,59,35,144,197,43,36,144,182,27,37,144,167,11,38,16,211,4,39,16,196,244,39,32,195,228,40,32,107,120,41,16,166,212,41,16,151,196,42,16,136,180,43,16,121,164,44,16,106,148,45,16,91,132,46,16,76,116,47,16,61,100,48,144,104,93,49,144,67,114,50,144,74,61,51,144,37,82,52,144,44,29,53,144,7,50,54,144,14,253,54,16,36,27,56,144,240,220,56,16,6,251,57,144,210,188,58,16,232,218,59,16,239,165,60,16,202,186,61,16,209,133,62,16,172,154,63,16,179,101,64,144,200,131,65,16,149,69,66,144,170,99,67,16,119,37,68,144,140,67,69,16,89,5,70,144,110,35,71,144,117,238,71,144,80,3,73,144,87,206,73,144,50,227,74,144,57,174,75,16,79,204,76,144,27,142,77,0,201,75,84,32,206,246,86,170,170,170,170,170,170,170,170,170,170,170,170,66,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,1,3,170,170,12,0,0,0,96,106,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,3,0,48,0,66,0,54,0,29,85,0,224,99,85,0,16,117,85,0,224,7,0,0,0,28,189,157,135,40,28,90,203,160,43,149,204,56,128,117,210,40,0,166,49,32,0,113,50,40,234,63,68,2,0,0,0,255,255,255,255,36,153,182,86,170,170,170,170,8,0,0,0,1,2,3,4,2,6,5,2,14,0,0,0,220,74,0,0,0,0,0,0,228,74,0,0,0,0,0,0,88,77,0,0,0,0,0,0,88,77,0,0,8,7,0,0,88,77,0,0,16,14,0,0,96,84,0,0,0,0,0,0,104,91,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,135,85,0,224,143,85,0,224,147,85,0,16,150,85,0,224,121,0,0,0,120,171,242,161,128,47,129,162,112,157,94,163,128,17,97,164,112,127,62,165,128,243,64,166,112,97,30,167,128,213,32,168,240,125,7,169,0,82,143,241,112,156,91,242,128,40,115,243,112,126,59,244,128,173,85,245,240,84,31,246,0,225,54,247,240,54,255,247,0,218,14,249,240,187,225,249,0,72,249,250,112,239,194,251,0,205,219,252,112,116,165,253,128,0,189,254,240,167,134,255,0,52,158,0,112,219,103,1,128,103,127,2,240,14,73,3,128,236,97,4,240,147,43,5,0,32,67,6,112,199,12,7,128,83,36,8,240,250,237,8,0,135,5,10,112,46,207,10,0,12,232,11,112,179,177,12,128,63,201,13,240,89,107,14,0,115,170,15,112,141,76,16,0,197,244,24,112,109,219,25,0,74,215,26,112,242,189,27,0,35,85,30,112,229,138,31,0,122,71,32,240,25,137,33,0,116,60,34,240,158,107,35,128,191,50,36,112,69,37,37,128,68,21,38,112,39,5,39,224,91,246,39,80,144,231,40,96,27,226,41,80,21,202,42,96,43,178,43,208,95,163,44,224,71,155,45,80,124,140,46,96,123,124,47,208,175,109,48,96,0,95,49,208,52,80,50,96,226,62,51,80,104,49,52,96,196,30,53,208,155,18,54,224,154,2,55,80,207,243,55,224,31,229,56,80,84,214,57,96,83,198,58,208,135,183,59,224,134,167,60,80,187,152,61,96,186,136,62,208,238,121,63,96,63,107,64,208,115,92,65,224,114,76,66,80,167,61,67,96,166,45,68,80,253,18,69,224,54,12,70,80,62,42,71,96,83,245,71,208,113,11,73,224,250,203,73,80,2,234,74,96,23,181,75,80,228,201,76,96,249,148,77,80,198,169,78,96,219,116,79,80,168,137,80,96,189,84,81,80,138,105,82,96,159,52,83,208,166,82,84,96,129,20,85,208,136,50,86,96,99,244,86,208,106,18,88,224,127,221,88,208,76,242,89,224,97,189,90,208,46,210,91,224,67,157,92,208,16,178,93,224,37,125,94,80,45,155,95,224,7,93,96,80,15,123,97,224,233,60,98,80,241,90,99,170,170,170,170,121,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,170,170,170,8,0,0,0,8,34,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,3,0,48,0,66,0,54,0,172,85,0,224,39,86,0,16,71,86,0,224,3,0,0,0,7,1,0,0,9,1,0,0,119,1,0,0,6,0,0,0,176,134,219,202,24,113,5,204,168,50,149,204,152,210,168,221,16,196,59,74,144,216,60,75,2,0,0,0,255,255,255,255,188,134,134,105,7,0,0,0,2,5,1,5,3,4,3,170,12,0,0,0,196,84,0,0,0,0,0,0,88,77,0,0,0,0,0,0,208,82,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,104,91,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,85,86,0,224,89,86,0,224,96,86,0,224,99,86,0,16,102,86,0,224,4,0,0,0,0,30,230,146,240,50,153,203,112,48,234,11,0,153,195,57,170,170,170,170,170,170,170,170,170,170,170,170,4,0,0,0,1,2,1,2,6,0,0,0,188,117,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,123,86,0,224,131,86,0,16,133,86,0,224,4,0,0,0,11,1,0,0,42,1,0,0,12,2,0,0,16,2,0,0,1,0,0,0,168,153,242,161,170,170,170,170,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,216,51,0,0,0,0,0,0,64,56,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,145,86,0,224,150,86,0,224,155,86,0,16,157,86,0,224,24,0,0,0,128,131,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,143,202,40,170,170,170,170,24,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,10,0,0,0,128,64,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,169,86,0,224,195,86,0,16,202,86,0,224,88,0,0,0,44,30,119,165,224,175,237,9,208,146,221,10,224,100,250,11,80,198,190,12,96,57,164,13,208,225,138,14,96,27,132,15,208,79,117,16,96,253,99,17,80,224,83,18,224,25,77,19,80,194,51,20,96,193,35,21,80,164,19,22,96,163,3,23,80,134,243,23,96,133,227,24,80,104,211,25,96,103,195,26,208,132,188,27,224,131,172,28,208,102,156,29,224,101,140,30,208,72,124,31,224,71,108,32,208,42,92,33,224,41,76,34,208,12,60,35,224,11,44,36,208,238,27,37,224,237,11,38,80,11,5,39,96,10,245,39,80,237,228,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,145,77,50,224,144,61,51,208,115,45,52,224,114,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,144,108,55,83,144,71,76,84,144,78,23,85,144,41,44,86,144,48,247,86,208,127,208,87,16,40,245,89,144,244,182,90,16,10,213,91,88,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,1,2,1,8,0,0,0,212,31,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,164,3,0,96,227,7,0,112,218,86,0,224,51,87,0,16,74,87,0,224,148,0,0,0,0,207,89,200,0,166,250,200,128,156,56,201,128,235,229,204,0,254,172,205,0,31,199,206,0,131,143,207,0,164,169,208,0,125,132,209,128,215,138,210,128,176,101,211,0,11,108,212,96,99,54,232,80,45,244,232,96,185,11,234,208,96,213,234,240,250,236,235,0,109,181,236,240,127,207,237,0,242,151,238,112,179,176,239,128,37,121,240,240,230,145,241,0,89,90,242,112,26,115,243,128,140,59,244,112,159,85,245,128,17,30,246,240,210,54,247,0,69,255,247,112,6,24,249,0,202,225,249,240,57,249,250,80,66,39,251,224,139,124,8,208,176,253,8,96,234,246,9,208,51,166,10,96,252,233,19,96,91,33,20,96,198,250,26,96,110,142,27,224,248,190,28,208,124,119,29,96,255,204,30,80,153,96,31,96,177,130,32,208,181,73,33,224,158,94,34,80,93,32,35,96,48,90,36,80,63,0,37,224,237,11,38,208,230,214,38,224,207,235,39,80,3,192,40,96,236,212,41,208,31,169,42,224,101,187,43,208,1,137,44,224,71,155,45,80,169,95,46,224,41,123,47,208,197,72,48,96,70,100,49,96,194,65,50,96,40,68,51,96,164,33,52,96,10,36,53,96,134,1,54,96,97,22,55,80,68,6,56,224,125,255,56,208,96,239,57,224,95,223,58,208,66,207,59,224,65,191,60,208,36,175,61,224,35,159,62,208,6,143,63,224,5,127,64,224,129,92,65,224,231,94,66,240,183,65,67,96,166,45,68,80,253,18,69,224,217,14,70,112,111,232,70,224,24,236,71,208,17,183,72,224,250,203,73,96,60,160,74,156,46,173,75,208,189,97,76,156,249,148,77,80,194,53,78,96,219,116,79,224,145,91,80,96,189,84,81,80,160,68,82,96,159,52,83,80,108,73,84,224,210,21,85,96,92,41,86,240,194,245,86,96,202,19,88,240,164,213,88,96,172,243,89,240,134,181,90,96,142,211,91,224,67,157,92,80,98,179,93,96,119,126,94,96,82,147,95,96,89,94,96,96,29,123,97,224,140,63,98,240,94,92,99,0,94,76,100,240,64,60,101,128,5,35,102,240,34,28,103,0,173,249,103,240,4,252,104,0,26,199,105,240,230,219,106,0,252,166,107,112,3,197,108,0,222,134,109,112,229,164,110,0,192,102,111,112,199,132,112,128,220,79,113,112,169,100,114,128,190,47,115,112,139,68,116,128,160,15,117,240,167,45,118,128,130,239,118,240,137,13,120,128,100,207,120,240,107,237,121,128,70,175,122,240,77,205,123,0,99,152,124,112,245,163,125,0,69,120,126,240,156,122,127,64,1,0,0,0,0,0,0,0,39,88,128,0,0,0,0,240,9,72,129,0,0,0,0,0,9,56,130,0,0,0,0,112,177,30,131,0,0,0,0,0,235,23,132,0,0,0,0,112,30,236,132,0,0,0,0,0,198,44,133,0,0,0,0,112,242,53,133,0,0,0,0,128,7,1,134,0,0,0,0,240,197,194,134,0,0,0,0,0,51,250,134,0,0,0,0,112,212,21,135,0,0,0,0,128,233,224,135,0,0,0,0,112,109,153,136,0,0,0,0,128,218,208,136,0,0,0,0,112,182,245,136,0,0,0,0,128,203,192,137,0,0,0,0,112,218,102,138,0,0,0,0,0,130,167,138,0,0,0,0,112,152,213,138,0,0,0,0,128,173,160,139,0,0,0,0,240,129,61,140,0,0,0,0,0,239,116,140,0,0,0,0,240,180,190,140,0,0,0,0,128,143,128,141,0,0,0,0,112,41,20,142,0,0,0,0,128,150,75,142,0,0,0,0,240,150,158,142,0,0,0,0,128,113,96,143,0,0,0,0,112,150,225,143,0,0,0,0,0,62,34,144,0,0,0,0,240,120,126,144,0,0,0,0,0,142,73,145,0,0,0,0,240,61,184,145,0,0,0,0,0,171,239,145,0,0,0,0,240,90,94,146,0,0,0,0,0,112,41,147,0,0,0,0,240,170,133,147,0,0,0,0,128,82,198,147,0,0,0,0,240,60,62,148,0,0,0,0,0,82,9,149,0,0,0,0,112,82,92,149,0,0,0,0,128,191,147,149,0,0,0,0,112,89,39,150,0,0,0,0,0,52,233,150,0,0,0,0,240,249,50,151,0,0,0,0,0,103,106,151,0,0,0,0,112,59,7,152,0,0,0,0,0,22,201,152,0,0,0,0,240,102,0,153,0,0,0,0,128,14,65,153,0,0,0,0,112,29,231,153,0,0,0,0,128,50,178,154,0,0,0,0,112,14,215,154,0,0,0,0,128,123,14,155,0,0,0,0,112,255,198,155,0,0,0,0,128,20,146,156,0,0,0,0,112,123,164,156,0,0,0,0,0,35,229,156,0,0,0,0,112,225,166,157,0,0,0,0,128,246,113,158,0,0,0,0,240,34,123,158,0,0,0,0,128,202,187,158,0,0,0,0,112,195,134,159,0,0,0,0,128,55,137,160,0,0,0,0,240,223,111,161,0,0,0,0,0,223,95,162,0,0,0,0,240,193,79,163,0,0,0,0,0,76,45,164,0,0,0,0,240,163,47,165,0,0,0,0,128,243,3,166,0,0,0,0,240,133,15,167,0,0,0,0,0,155,218,167,0,0,0,0,240,103,239,168,0,0,0,0,0,125,186,169,0,0,0,0,112,132,216,170,0,0,0,0,0,95,154,171,0,0,0,0,112,102,184,172,0,0,0,0,0,65,122,173,0,0,0,0,112,72,152,174,0,0,0,0,0,35,90,175,0,0,0,0,112,42,120,176,0,0,0,0,128,63,67,177,0,0,0,0,112,12,88,178,0,0,0,0,128,33,35,179,0,0,0,0,112,238,55,180,0,0,0,0,128,3,3,181,0,0,0,0,240,10,33,182,0,0,0,0,128,229,226,182,0,0,0,0,240,236,0,184,0,0,0,0,128,199,194,184,0,0,0,0,112,148,215,185,0,0,0,0,0,228,171,186,0,0,0,0,240,59,174,187,0,0,0,0,0,198,139,188,0,0,0,0,112,227,132,189,0,0,0,0,0,168,107,190,0,0,0,0,112,80,82,191,0,0,0,0,0,138,75,192,0,0,0,0,240,247,40,193,0,0,0,0,0,101,96,193,0,0,0,0,112,145,105,193,0,0,0,0,0,108,43,194,0,0,0,0,112,159,255,194,0,0,0,0,128,12,55,195,0,0,0,0,112,115,73,195,0,0,0,0,0,78,11,196,0,0,0,0,112,12,205,196,0,0,0,0,0,180,13,197,0,0,0,0,112,85,41,197,0,0,0,0,128,106,244,197,0,0,0,0,240,179,163,198,0,0,0,0,0,33,219,198,0,0,0,0,112,55,9,199,0,0,0,0,128,76,212,199,0,0,0,0,240,32,113,200,0,0,0,0,128,200,177,200,0,0,0,0,112,25,233,200,0,0,0,0,128,46,180,201,0,0,0,0,112,200,71,202,0,0,0,0,0,112,136,202,0,0,0,0,240,53,210,202,0,0,0,0,128,16,148,203,0,0,0,0,240,111,30,204,0,0,0,0,0,221,85,204,0,0,0,0,240,23,178,204,0,0,0,0,128,242,115,205,0,0,0,0,240,220,235,205,0,0,0,0,128,132,44,206,0,0,0,0,240,249,145,206,0,0,0,0,0,15,93,207,0,0,0,0,112,132,194,207,0,0,0,0,128,241,249,207,0,0,0,0,240,219,113,208,0,0,0,0,0,241,60,209,0,0,0,0,240,43,153,209,0,0,0,0,0,153,208,209,0,0,0,0,240,189,81,210,0,0,0,0,0,211,28,211,0,0,0,0,240,152,102,211,0,0,0,0,128,64,167,211,0,0,0,0,240,159,49,212,0,0,0,0,0,181,252,212,0,0,0,0,112,64,61,213,0,0,0,0,128,173,116,213,0,0,0,0,112,188,26,214,0,0,0,0,0,151,220,214,0,0,0,0,112,173,10,215,0,0,0,0,0,85,75,215,0,0,0,0,112,158,250,215,0,0,0,0,0,121,188,216,0,0,0,0,240,84,225,216,0,0,0,0,128,252,33,217,0,0,0,0,112,128,218,217,0,0,0,0,128,149,165,218,0,0,0,0,112,252,183,218,0,0,0,0,128,105,239,218,0,0,0,0,112,98,186,219,0,0,0,0,128,119,133,220,0,0,0,0,112,68,154,221,2,0,0,0,255,255,255,255,176,74,189,125,170,170,170,170,53,1,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,80,32,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,8,0,101,0,91,0,110,0,48,0,120,0,80,0,66,0,54,0,170,170,32,28,0,112,68,4,0,96,40,8,0,112,93,87,0,224,242,87,0,224,51,89,0,224,55,89,0,16,134,89,0,224,150,0,0,0,0,207,89,200,0,166,250,200,128,156,56,201,128,235,229,204,0,254,172,205,0,31,199,206,0,131,143,207,0,164,169,208,0,125,132,209,128,215,138,210,128,176,101,211,0,11,108,212,96,99,54,232,80,45,244,232,96,185,11,234,208,96,213,234,240,250,236,235,0,109,181,236,240,127,207,237,0,242,151,238,112,179,176,239,128,37,121,240,240,230,145,241,0,89,90,242,112,26,115,243,128,140,59,244,112,159,85,245,128,17,30,246,240,210,54,247,0,69,255,247,112,6,24,249,0,202,225,249,240,57,249,250,80,66,39,251,224,139,124,8,208,176,253,8,96,234,246,9,208,51,166,10,96,252,233,19,96,91,33,20,96,198,250,26,96,110,142,27,224,248,190,28,208,124,119,29,96,255,204,30,80,153,96,31,96,177,130,32,208,181,73,33,224,158,94,34,80,93,32,35,96,48,90,36,80,63,0,37,224,237,11,38,208,230,214,38,224,207,235,39,80,3,192,40,96,236,212,41,208,31,169,42,224,101,187,43,208,1,137,44,224,71,155,45,80,169,95,46,224,41,123,47,208,197,72,48,96,70,100,49,96,194,65,50,96,40,68,51,96,164,33,52,96,10,36,53,96,134,1,54,96,97,22,55,80,68,6,56,224,125,255,56,208,96,239,57,224,95,223,58,208,66,207,59,224,65,191,60,208,36,175,61,224,35,159,62,208,6,143,63,224,5,127,64,224,129,92,65,224,231,94,66,240,183,65,67,96,166,45,68,80,253,18,69,224,217,14,70,112,111,232,70,224,24,236,71,80,6,187,72,224,250,203,73,96,60,160,74,224,220,171,75,208,189,97,76,156,249,148,77,80,194,53,78,224,11,92,78,80,220,132,78,96,219,116,79,224,145,91,80,96,189,84,81,80,160,68,82,96,159,52,83,80,108,73,84,224,210,21,85,96,92,41,86,240,194,245,86,96,202,19,88,240,164,213,88,96,172,243,89,240,134,181,90,96,142,211,91,224,67,157,92,80,98,179,93,96,119,126,94,96,82,147,95,96,89,94,96,96,29,123,97,224,140,63,98,240,94,92,99,0,94,76,100,240,64,60,101,128,5,35,102,240,34,28,103,0,173,249,103,240,4,252,104,0,26,199,105,240,230,219,106,0,252,166,107,112,3,197,108,0,222,134,109,112,229,164,110,0,192,102,111,112,199,132,112,128,220,79,113,112,169,100,114,128,190,47,115,112,139,68,116,128,160,15,117,240,167,45,118,128,130,239,118,240,137,13,120,128,100,207,120,240,107,237,121,128,70,175,122,240,77,205,123,0,99,152,124,112,245,163,125,0,69,120,126,240,156,122,127,64,1,0,0,0,0,0,0,0,39,88,128,0,0,0,0,240,9,72,129,0,0,0,0,0,9,56,130,0,0,0,0,112,177,30,131,0,0,0,0,0,235,23,132,0,0,0,0,112,30,236,132,0,0,0,0,0,198,44,133,0,0,0,0,112,242,53,133,0,0,0,0,128,7,1,134,0,0,0,0,240,197,194,134,0,0,0,0,0,51,250,134,0,0,0,0,112,212,21,135,0,0,0,0,128,233,224,135,0,0,0,0,112,109,153,136,0,0,0,0,128,218,208,136,0,0,0,0,112,182,245,136,0,0,0,0,128,203,192,137,0,0,0,0,112,218,102,138,0,0,0,0,0,130,167,138,0,0,0,0,112,152,213,138,0,0,0,0,128,173,160,139,0,0,0,0,240,129,61,140,0,0,0,0,0,239,116,140,0,0,0,0,240,180,190,140,0,0,0,0,128,143,128,141,0,0,0,0,112,41,20,142,0,0,0,0,128,150,75,142,0,0,0,0,240,150,158,142,0,0,0,0,128,113,96,143,0,0,0,0,112,150,225,143,0,0,0,0,0,62,34,144,0,0,0,0,240,120,126,144,0,0,0,0,0,142,73,145,0,0,0,0,240,61,184,145,0,0,0,0,0,171,239,145,0,0,0,0,240,90,94,146,0,0,0,0,0,112,41,147,0,0,0,0,240,170,133,147,0,0,0,0,128,82,198,147,0,0,0,0,240,60,62,148,0,0,0,0,0,82,9,149,0,0,0,0,112,82,92,149,0,0,0,0,128,191,147,149,0,0,0,0,112,89,39,150,0,0,0,0,0,52,233,150,0,0,0,0,240,249,50,151,0,0,0,0,0,103,106,151,0,0,0,0,112,59,7,152,0,0,0,0,0,22,201,152,0,0,0,0,240,102,0,153,0,0,0,0,128,14,65,153,0,0,0,0,112,29,231,153,0,0,0,0,128,50,178,154,0,0,0,0,112,14,215,154,0,0,0,0,128,123,14,155,0,0,0,0,112,255,198,155,0,0,0,0,128,20,146,156,0,0,0,0,112,123,164,156,0,0,0,0,0,35,229,156,0,0,0,0,112,225,166,157,0,0,0,0,128,246,113,158,0,0,0,0,240,34,123,158,0,0,0,0,128,202,187,158,0,0,0,0,112,195,134,159,0,0,0,0,128,55,137,160,0,0,0,0,240,223,111,161,0,0,0,0,0,223,95,162,0,0,0,0,240,193,79,163,0,0,0,0,0,76,45,164,0,0,0,0,240,163,47,165,0,0,0,0,128,243,3,166,0,0,0,0,240,133,15,167,0,0,0,0,0,155,218,167,0,0,0,0,240,103,239,168,0,0,0,0,0,125,186,169,0,0,0,0,112,132,216,170,0,0,0,0,0,95,154,171,0,0,0,0,112,102,184,172,0,0,0,0,0,65,122,173,0,0,0,0,112,72,152,174,0,0,0,0,0,35,90,175,0,0,0,0,112,42,120,176,0,0,0,0,128,63,67,177,0,0,0,0,112,12,88,178,0,0,0,0,128,33,35,179,0,0,0,0,112,238,55,180,0,0,0,0,128,3,3,181,0,0,0,0,240,10,33,182,0,0,0,0,128,229,226,182,0,0,0,0,240,236,0,184,0,0,0,0,128,199,194,184,0,0,0,0,112,148,215,185,0,0,0,0,0,228,171,186,0,0,0,0,240,59,174,187,0,0,0,0,0,198,139,188,0,0,0,0,112,227,132,189,0,0,0,0,0,168,107,190,0,0,0,0,112,80,82,191,0,0,0,0,0,138,75,192,0,0,0,0,240,247,40,193,0,0,0,0,0,101,96,193,0,0,0,0,112,145,105,193,0,0,0,0,0,108,43,194,0,0,0,0,112,159,255,194,0,0,0,0,128,12,55,195,0,0,0,0,112,115,73,195,0,0,0,0,0,78,11,196,0,0,0,0,112,12,205,196,0,0,0,0,0,180,13,197,0,0,0,0,112,85,41,197,0,0,0,0,128,106,244,197,0,0,0,0,240,179,163,198,0,0,0,0,0,33,219,198,0,0,0,0,112,55,9,199,0,0,0,0,128,76,212,199,0,0,0,0,240,32,113,200,0,0,0,0,128,200,177,200,0,0,0,0,112,25,233,200,0,0,0,0,128,46,180,201,0,0,0,0,112,200,71,202,0,0,0,0,0,112,136,202,0,0,0,0,240,53,210,202,0,0,0,0,128,16,148,203,0,0,0,0,240,111,30,204,0,0,0,0,0,221,85,204,0,0,0,0,240,23,178,204,0,0,0,0,128,242,115,205,0,0,0,0,240,220,235,205,0,0,0,0,128,132,44,206,0,0,0,0,240,249,145,206,0,0,0,0,0,15,93,207,0,0,0,0,112,132,194,207,0,0,0,0,128,241,249,207,0,0,0,0,240,219,113,208,0,0,0,0,0,241,60,209,0,0,0,0,240,43,153,209,0,0,0,0,0,153,208,209,0,0,0,0,240,189,81,210,0,0,0,0,0,211,28,211,0,0,0,0,240,152,102,211,0,0,0,0,128,64,167,211,0,0,0,0,240,159,49,212,0,0,0,0,0,181,252,212,0,0,0,0,112,64,61,213,0,0,0,0,128,173,116,213,0,0,0,0,112,188,26,214,0,0,0,0,0,151,220,214,0,0,0,0,112,173,10,215,0,0,0,0,0,85,75,215,0,0,0,0,112,158,250,215,0,0,0,0,0,121,188,216,0,0,0,0,240,84,225,216,0,0,0,0,128,252,33,217,0,0,0,0,112,128,218,217,0,0,0,0,128,149,165,218,0,0,0,0,112,252,183,218,0,0,0,0,128,105,239,218,0,0,0,0,112,98,186,219,0,0,0,0,128,119,133,220,0,0,0,0,112,68,154,221,2,0,0,0,255,255,255,255,25,74,189,125,170,170,170,170,170,170,170,170,55,1,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,231,32,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,8,0,101,0,91,0,110,0,48,0,120,0,80,0,66,0,54,0,170,170,32,28,0,112,68,4,0,96,40,8,0,112,154,89,0,224,49,90,0,224,114,91,0,224,119,91,0,16,198,91,0,224,3,0,0,0,17,1,0,0,56,1,0,0,122,2,0,0,8,0,0,0,10,43,163,145,128,230,53,205,112,206,89,209,240,62,59,210,16,187,50,213,144,242,182,228,0,152,47,237,0,199,61,10,8,0,0,0,1,2,3,1,2,1,2,1,8,0,0,0,246,99,0,0,0,0,0,0,112,98,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,218,91,0,224,222,91,0,224,231,91,0,16,234,91,0,224,2,0,0,0,18,1,0,0,2,2,0,0,69,0,0,0,144,99,105,133,48,49,77,202,48,147,219,202,120,113,75,203,144,222,160,210,128,215,107,211,184,88,147,212,56,176,66,213,184,58,115,214,184,65,62,215,184,50,46,216,184,57,249,216,184,20,14,218,184,27,217,218,184,246,237,219,184,253,184,220,184,216,205,221,56,26,162,222,56,245,182,223,56,252,129,224,40,201,150,225,56,105,79,226,40,171,118,227,56,75,47,228,168,199,95,229,56,45,15,230,168,169,63,231,184,73,248,231,168,139,31,233,184,43,216,233,168,109,255,234,184,13,184,235,168,79,223,236,184,239,151,237,40,108,200,238,184,209,119,239,40,78,168,240,184,179,87,241,40,48,136,242,56,208,64,243,40,18,104,244,56,178,32,245,40,244,71,246,56,126,37,247,40,97,21,248,56,96,5,249,40,67,245,249,56,66,229,250,168,95,222,251,184,94,206,252,168,65,190,253,184,64,174,254,168,35,158,255,184,34,142,0,168,5,126,1,184,4,110,2,168,231,93,3,184,230,77,4,40,4,71,5,56,3,55,6,40,230,38,7,56,61,131,7,40,200,6,9,56,199,246,9,40,170,230,10,56,169,214,11,40,140,198,12,56,57,155,17,168,108,111,18,69,0,0,0,1,3,2,4,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,170,170,170,10,0,0,0,10,107,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,8,7,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,250,91,0,224,253,91,0,224,67,92,0,16,86,92,0,224,50,0,0,0,148,252,211,134,160,234,11,15,144,214,233,24,0,11,219,25,144,91,204,26,128,62,188,27,144,61,172,28,128,32,156,29,144,31,140,30,128,2,124,31,144,1,108,32,128,228,91,33,144,227,75,34,128,198,59,35,144,197,43,36,128,168,27,37,144,167,11,38,0,197,4,39,16,196,244,39,0,167,228,40,16,166,212,41,0,137,196,42,16,136,180,43,0,107,164,44,16,106,148,45,0,77,132,46,16,76,116,47,0,47,100,48,144,104,93,49,128,75,77,50,144,74,61,51,128,45,45,52,144,44,29,53,128,15,13,54,176,193,233,58,160,186,180,59,176,185,164,60,160,156,148,61,176,155,132,62,160,126,116,63,176,125,100,64,160,96,84,65,176,95,68,66,160,66,52,67,176,65,36,68,32,95,29,69,176,168,21,85,128,111,5,86,176,138,245,86,128,81,229,87,50,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,236,85,0,0,0,0,0,0,96,84,0,0,0,0,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,104,92,0,224,155,92,0,16,169,92,0,224,65,0,0,0,191,15,18,162,16,211,163,181,128,97,39,21,240,149,24,22,0,149,8,23,112,201,249,23,128,200,233,24,240,252,218,25,128,77,204,26,160,90,188,27,160,75,172,28,160,60,156,29,160,45,140,30,160,30,124,31,160,15,108,32,160,0,92,33,160,241,75,34,160,226,59,35,160,211,43,36,160,196,27,37,160,181,11,38,32,225,4,39,32,210,244,39,48,209,228,40,48,121,120,41,32,180,212,41,32,165,196,42,32,150,180,43,32,135,164,44,32,120,148,45,32,105,132,46,32,90,116,47,32,75,100,48,160,118,93,49,160,81,114,50,160,88,61,51,160,51,82,52,160,58,29,53,160,21,50,54,160,28,253,54,32,50,27,56,160,254,220,56,32,20,251,57,160,224,188,58,32,246,218,59,32,253,165,60,32,216,186,61,32,223,133,62,32,186,154,63,32,193,101,64,160,214,131,65,32,163,69,66,160,184,99,67,32,133,37,68,160,154,67,69,32,103,5,70,160,124,35,71,160,131,238,71,160,94,3,73,160,101,206,73,160,64,227,74,160,71,174,75,32,93,204,76,160,41,142,77,16,215,75,84,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,193,97,0,0,0,0,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,183,92,0,224,251,92,0,16,13,93,0,224,7,0,0,0,224,133,120,169,96,222,22,186,136,131,191,203,112,238,86,210,8,198,60,215,0,38,255,218,136,190,181,244,7,0,0,0,2,3,5,3,4,3,1,170,12,0,0,0,32,100,0,0,0,0,0,0,112,98,0,0,0,0,0,0,32,103,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,31,93,0,224,39,93,0,16,42,93,0,224,3,0,0,0,152,193,22,186,240,185,88,208,104,162,181,244,170,170,170,170,170,170,170,170,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,232,131,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,3,0,48,0,66,0,54,0,60,93,0,224,67,93,0,16,69,93,0,224,3,0,0,0,24,1,0,0,67,1,0,0,18,2,0,0,100,0,0,0,136,69,48,158,0,207,89,200,0,166,250,200,128,156,56,201,128,235,229,204,0,254,172,205,0,31,199,206,0,131,143,207,0,164,169,208,0,125,132,209,128,215,138,210,128,176,101,211,0,11,108,212,128,48,90,215,0,88,223,215,128,195,47,216,0,99,30,217,0,247,16,218,0,208,235,218,0,52,180,219,0,61,185,220,0,141,224,221,128,206,180,222,128,191,164,223,0,118,139,224,0,125,86,225,128,102,190,226,0,95,54,227,128,72,158,228,0,65,22,229,0,240,116,230,128,210,17,231,128,173,38,232,0,122,232,232,224,139,124,8,208,176,253,8,96,234,246,9,208,51,166,10,96,252,233,19,96,91,33,20,96,198,250,26,96,110,142,27,224,248,190,28,208,124,119,29,96,255,204,30,80,153,96,31,96,177,130,32,208,181,73,33,224,158,94,34,80,93,32,35,96,48,90,36,80,63,0,37,224,237,11,38,208,230,214,38,224,207,235,39,80,3,192,40,96,236,212,41,208,31,169,42,224,101,187,43,208,1,137,44,224,71,155,45,80,169,95,46,224,41,123,47,208,197,72,48,224,150,72,49,80,110,60,50,96,179,49,51,208,254,26,52,96,149,17,53,80,166,241,53,128,8,4,55,112,1,207,55,128,95,246,56,224,249,220,57,112,237,208,58,96,91,174,59,112,160,163,60,96,178,160,61,112,130,131,62,224,159,124,63,112,54,115,64,96,164,80,65,0,143,76,66,112,79,72,67,0,113,44,68,240,246,30,69,0,83,12,70,240,99,236,70,0,53,236,71,112,245,231,72,0,23,204,73,240,156,190,74,0,249,171,75,240,9,140,76,128,21,149,77,112,155,135,78,128,247,116,79,240,66,94,80,128,217,84,81,112,73,108,82,2,0,0,0,255,255,255,255,250,194,182,86,170,170,170,170,170,170,170,170,101,0,0,0,4,1,2,1,2,1,2,1,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,10,0,0,0,6,33,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,32,28,0,0,32,28,0,0,248,32,0,0,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,32,28,0,112,116,3,0,96,222,7,0,112,81,93,0,224,85,93,0,224,186,93,0,224,191,93,0,16,218,93,0,224,1,0,0,0,64,215,249,208,2,0,0,0,255,255,255,255,160,154,134,105,2,0,0,0,1,2,170,170,6,0,0,0,224,64,0,0,0,0,0,0,64,56,0,0,0,0,0,0,72,63,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,242,93,0,224,244,93,0,224,247,93,0,16,249,93,0,224,64,0,0,0,196,150,82,167,208,154,163,181,64,41,39,21,176,93,24,22,192,92,8,23,48,145,249,23,64,144,233,24,176,196,218,25,64,21,204,26,96,34,188,27,96,19,172,28,96,4,156,29,96,245,139,30,96,230,123,31,96,215,107,32,96,200,91,33,96,185,75,34,96,170,59,35,96,155,43,36,96,140,27,37,96,125,11,38,224,168,4,39,224,153,244,39,240,152,228,40,240,64,120,41,224,123,212,41,224,108,196,42,224,93,180,43,224,78,164,44,224,63,148,45,224,48,132,46,224,33,116,47,224,18,100,48,96,62,93,49,96,25,114,50,96,32,61,51,96,251,81,52,96,2,29,53,96,221,49,54,96,228,252,54,224,249,26,56,96,198,220,56,224,219,250,57,96,168,188,58,224,189,218,59,224,196,165,60,224,159,186,61,224,166,133,62,224,129,154,63,224,136,101,64,96,158,131,65,224,106,69,66,96,128,99,67,224,76,37,68,96,98,67,69,224,46,5,70,96,68,35,71,96,75,238,71,96,38,3,73,96,45,206,73,96,8,227,74,96,15,174,75,240,50,204,76,112,255,141,77,170,170,170,170,170,170,170,170,170,170,170,170,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,10,0,0,0,188,148,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,3,0,48,0,66,0,54,0,7,94,0,224,75,94,0,16,92,94,0,224,2,0,0,0,27,1,0,0,36,2,0,0,10,0,0,0,164,252,126,137,168,50,149,204,152,18,116,210,168,224,168,221,176,69,175,60,160,40,159,61,48,160,65,72,160,71,11,73,48,221,228,73,32,123,236,74,170,170,170,170,10,0,0,0,3,4,3,1,2,1,2,1,2,1,170,170,10,0,0,0,220,62,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,88,77,0,0,0,0,0,0,88,77,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,108,94,0,224,111,94,0,224,123,94,0,16,127,94,0,224,2,0,0,0,29,1,0,0,30,1,0,0,2,0,0,0,132,125,242,161,168,48,24,30,2,0,0,0,1,2,170,170,6,0,0,0,252,79,0,0,0,0,0,0,88,77,0,0,0,0,0,0,220,80,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,145,94,0,224,148,94,0,224,151,94,0,16,153,94,0,224,67,0,0,0,235,228,219,161,0,197,163,181,112,83,39,21,224,135,24,22,240,134,8,23,96,187,249,23,112,186,233,24,224,238,218,25,112,63,204,26,144,76,188,27,144,61,172,28,144,46,156,29,144,31,140,30,144,16,124,31,144,1,108,32,144,242,91,33,144,227,75,34,144,212,59,35,144,197,43,36,144,182,27,37,144,167,11,38,16,211,4,39,16,196,244,39,32,195,228,40,32,107,120,41,16,166,212,41,16,151,196,42,16,136,180,43,16,121,164,44,16,106,148,45,16,91,132,46,16,76,116,47,16,61,100,48,144,104,93,49,144,67,114,50,144,74,61,51,144,37,82,52,144,44,29,53,144,7,50,54,144,14,253,54,16,36,27,56,144,240,220,56,16,6,251,57,144,210,188,58,16,232,218,59,16,239,165,60,16,202,186,61,16,209,133,62,16,172,154,63,112,228,242,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,0,105,37,68,128,126,67,69,0,75,5,70,128,96,35,71,128,103,238,71,128,66,3,73,128,73,206,73,128,36,227,74,128,43,174,75,0,65,204,76,128,13,142,77,80,2,110,78,0,201,75,84,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,3,170,16,0,0,0,21,127,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,3,0,48,0,66,0,54,0,167,94,0,224,235,94,0,16,253,94,0,224,3,0,0,0,1,1,0,0,32,1,0,0,4,2,0,0,5,0,0,0,186,188,157,135,40,140,219,202,24,113,5,204,168,50,149,204,152,18,116,210,4,0,0,0,255,255,255,255,40,24,186,38,255,255,255,255,48,235,231,67,170,170,170,170,7,0,0,0,4,1,2,3,2,3,2,170,10,0,0,0,216,82,0,0,0,0,0,0,70,75,0,0,0,0,0,0,88,77,0,0,0,0,0,0,88,77,0,0,16,14,0,0,208,82,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,19,95,0,224,23,95,0,224,29,95,0,224,35,95,0,16,38,95,0,224,65,0,0,0,242,13,249,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,48,89,100,48,176,132,93,49,176,95,114,50,176,102,61,51,176,65,82,52,176,72,29,53,176,35,50,54,176,42,253,54,48,64,27,56,176,12,221,56,48,34,251,57,176,238,188,58,48,4,219,59,48,11,166,60,48,230,186,61,48,237,133,62,48,200,154,63,48,207,101,64,176,228,131,65,48,177,69,66,176,198,99,67,48,147,37,68,176,168,67,69,48,117,5,70,176,138,35,71,176,145,238,71,176,108,3,73,176,115,206,73,176,78,227,74,176,85,174,75,48,107,204,76,176,55,142,77,32,229,75,84,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,14,87,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,128,112,0,0,0,0,0,0,3,0,48,0,66,0,54,0,57,95,0,224,123,95,0,16,141,95,0,224,2,0,0,0,0,1,0,0,35,1,0,0,18,0,0,0,144,6,138,173,136,71,103,186,128,39,123,191,80,27,243,191,128,172,93,193,80,160,213,193,0,224,62,195,208,211,182,195,128,19,32,197,80,7,152,197,0,71,1,199,208,58,121,199,0,204,227,200,208,191,91,201,128,255,196,202,80,243,60,203,0,88,145,203,240,109,72,210,170,170,170,170,170,170,170,170,18,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,2,170,170,10,0,0,0,112,103,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,176,4,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,159,95,0,224,162,95,0,224,183,95,0,16,189,95,0,224,2,0,0,0,37,1,0,0,38,1,0,0,71,0,0,0,142,91,105,133,240,117,71,203,224,202,242,203,80,186,251,204,96,254,211,205,208,165,157,206,112,122,97,210,112,248,120,211,240,173,66,212,112,171,75,213,240,76,116,214,240,83,63,215,240,68,47,216,112,250,248,216,112,213,13,218,112,220,216,218,112,183,237,219,112,190,184,220,240,234,206,221,240,218,161,222,240,181,182,223,240,188,129,224,240,151,150,225,240,41,79,226,240,121,118,227,240,11,47,228,112,150,95,229,240,237,14,230,168,169,63,231,184,73,248,231,168,139,31,233,184,43,216,233,168,109,255,234,184,13,184,235,168,79,223,236,184,239,151,237,40,108,200,238,184,209,119,239,40,78,168,240,184,179,87,241,40,48,136,242,56,208,64,243,40,18,104,244,56,178,32,245,40,244,71,246,56,126,37,247,24,83,21,248,56,96,5,249,24,53,245,249,56,66,229,250,168,95,222,251,184,94,206,252,168,65,190,253,184,64,174,254,168,35,158,255,184,34,142,0,168,5,126,1,184,4,110,2,168,231,93,3,184,230,77,4,40,4,71,5,56,3,55,6,40,230,38,7,56,61,131,7,40,200,6,9,56,199,246,9,40,170,230,10,56,169,214,11,40,140,198,12,56,57,155,17,168,108,111,18,170,170,170,170,71,0,0,0,1,3,4,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,10,0,0,0,114,106,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,207,95,0,224,210,95,0,224,27,96,0,16,46,96,0,224,66,0,0,0,160,54,25,170,224,168,163,181,80,55,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,112,9,82,52,112,16,29,53,112,235,49,54,112,242,252,54,240,7,27,56,112,212,220,56,240,233,250,57,112,182,188,58,240,203,218,59,240,210,165,60,240,173,186,61,240,180,133,62,240,143,154,63,240,150,101,64,112,172,131,65,240,120,69,66,112,142,99,67,240,90,37,68,112,112,67,69,240,60,5,70,112,82,35,71,112,89,238,71,112,52,3,73,112,59,206,73,112,22,227,74,112,29,174,75,240,50,204,76,112,255,141,77,224,172,75,84,0,156,27,87,66,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,1,3,170,170,12,0,0,0,96,141,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,64,96,0,224,131,96,0,16,149,96,0,224,2,0,0,0,40,1,0,0,72,1,0,0,3,0,0,0,144,213,22,186,128,29,136,203,112,238,86,210,170,170,170,170,3,0,0,0,1,2,1,170,6,0,0,0,240,111,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,167,96,0,224,170,96,0,224,175,96,0,16,177,96,0,224,8,0,0,0,128,244,156,193,112,48,22,194,0,231,242,203,112,37,169,208,0,57,108,226,240,162,213,226,128,70,117,15,240,122,102,16,4,0,0,0,255,255,255,255,16,220,225,20,255,255,255,255,144,63,31,123,170,170,170,170,170,170,170,170,10,0,0,0,3,1,2,1,4,1,2,1,2,1,170,170,10,0,0,0,240,31,255,255,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,112,113,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,191,96,0,224,200,96,0,224,207,96,0,16,211,96,0,224,2,0,0,0,43,1,0,0,220,1,0,0,51,0,0,0,184,30,119,165,224,175,237,9,208,146,221,10,224,100,250,11,80,198,190,12,96,57,164,13,208,225,138,14,96,27,132,15,208,79,117,16,96,253,99,17,80,224,83,18,224,25,77,19,80,194,51,20,96,193,35,21,80,164,19,22,96,163,3,23,80,134,243,23,96,133,227,24,80,104,211,25,96,103,195,26,208,132,188,27,224,131,172,28,208,102,156,29,224,101,140,30,208,72,124,31,224,71,108,32,208,42,92,33,224,41,76,34,208,12,60,35,224,11,44,36,208,238,27,37,224,237,11,38,80,11,5,39,96,10,245,39,80,237,228,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,145,77,50,224,144,61,51,208,115,45,52,224,114,29,53,16,120,50,54,16,127,253,54,144,148,27,56,170,170,170,170,170,170,170,170,170,170,170,170,51,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,72,31,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,32,28,0,112,164,3,0,96,208,7,0,112,229,96,0,224,232,96,0,224,31,97,0,16,45,97,0,224,64,0,0,0,192,32,24,170,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,48,89,100,48,176,132,93,49,176,95,114,50,176,102,61,51,176,65,82,52,176,72,29,53,176,35,50,54,176,42,253,54,48,64,27,56,176,12,221,56,48,34,251,57,176,238,188,58,48,4,219,59,48,11,166,60,48,230,186,61,48,237,133,62,48,200,154,63,48,207,101,64,176,228,131,65,48,177,69,66,176,198,99,67,48,147,37,68,176,168,67,69,48,117,5,70,176,138,35,71,176,145,238,71,176,108,3,73,176,115,206,73,176,78,227,74,176,85,174,75,64,121,204,76,192,69,142,77,170,170,170,170,170,170,170,170,170,170,170,170,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,10,0,0,0,192,81,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,63,97,0,224,131,97,0,16,148,97,0,224,67,0,0,0,36,25,219,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,0,78,254,43,64,163,164,44,64,148,148,45,64,133,132,46,64,118,116,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,192,204,147,87,170,170,170,170,170,170,170,170,170,170,170,170,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,170,10,0,0,0,188,77,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,164,97,0,224,235,97,0,16,253,97,0,224,65,0,0,0,182,64,179,161,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,237,228,40,80,149,120,41,64,208,212,41,64,193,196,42,64,178,180,43,64,163,164,44,64,148,148,45,64,133,132,46,64,118,116,47,64,103,100,48,192,146,93,49,192,109,114,50,192,116,61,51,192,79,82,52,192,86,29,53,192,49,50,54,192,56,253,54,64,78,27,56,192,26,221,56,64,48,251,57,192,252,188,58,64,18,219,59,64,25,166,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,202,68,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,3,0,48,0,66,0,54,0,13,98,0,224,79,98,0,16,97,98,0,224,51,0,0,0,220,147,25,170,80,11,164,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,96,251,228,40,96,163,120,41,80,222,212,41,96,221,196,42,96,206,180,43,96,191,164,44,96,176,148,45,96,161,132,46,96,146,116,47,96,131,100,48,224,174,93,49,224,137,114,50,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,51,0,0,0,1,4,5,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,3,2,4,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,170,14,0,0,0,36,48,0,0,0,0,0,0,48,42,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,115,98,0,224,167,98,0,16,181,98,0,224,7,0,0,0,0,223,22,186,8,164,121,203,112,238,86,210,8,198,60,215,0,38,255,218,136,190,181,244,128,116,218,33,170,170,170,170,170,170,170,170,7,0,0,0,2,4,2,3,2,3,1,170,10,0,0,0,128,102,0,0,0,0,0,0,112,98,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,201,98,0,224,211,98,0,16,214,98,0,224,4,0,0,0,156,241,215,139,248,22,230,146,112,2,206,85,112,117,236,90,4,0,0,0,1,2,1,2,6,0,0,0,228,117,0,0,0,0,0,0,136,119,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,48,0,66,0,54,0,230,98,0,224,235,98,0,16,237,98,0,224,2,0,0,0,250,0,0,0,51,1,0,0,2,0,0,0,48,157,242,161,192,146,138,4,2,0,0,0,2,1,170,170,6,0,0,0,80,48,0,0,0,0,0,0,48,42,0,0,0,0,0,0,64,56,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,249,98,0,224,252,98,0,224,255,98,0,16,1,99,0,224,52,0,0,0,92,136,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,32,198,224,101,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,1,3,4,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,5,3,12,0,0,0,164,59,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,15,99,0,224,71,99,0,16,85,99,0,224,52,0,0,0,160,134,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,80,149,120,41,64,208,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,160,216,27,92,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,1,3,4,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,3,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,5,3,12,0,0,0,96,61,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,103,99,0,224,159,99,0,16,173,99,0,224,4,0,0,0,236,0,0,0,240,0,0,0,36,1,0,0,55,1,0,0,1,0,0,0,180,54,27,213,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,204,43,0,0,0,0,0,0,48,42,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,191,99,0,224,196,99,0,224,199,99,0,16,201,99,0,224,66,0,0,0,184,205,240,134,240,178,48,210,80,55,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,0,248,250,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,0,105,37,68,128,126,67,69,0,75,5,70,128,96,35,71,128,103,238,71,128,66,3,73,128,73,206,73,128,36,227,74,128,43,174,75,0,65,204,76,128,13,142,77,240,186,75,84,0,178,246,86,170,170,170,170,170,170,170,170,170,170,170,170,66,0,0,0,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,4,2,4,170,170,12,0,0,0,200,133,0,0,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,3,0,48,0,66,0,54,0,213,99,0,224,27,100,0,16,45,100,0,224,24,0,0,0,55,133,25,170,64,253,163,181,176,139,39,21,32,192,24,22,32,177,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,80,237,228,40,170,170,170,170,170,170,170,170,170,170,170,170,24,0,0,0,1,2,3,4,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,10,0,0,0,201,62,0,0,0,0,0,0,64,56,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,63,100,0,224,91,100,0,16,98,100,0,224,2,0,0,0,59,1,0,0,89,2,0,0,28,0,0,0,120,240,215,139,248,22,230,146,112,143,101,215,96,157,238,215,112,250,248,216,224,45,205,217,240,138,215,218,224,15,173,219,240,226,230,220,224,241,140,221,240,41,79,226,248,183,107,228,104,24,19,229,120,3,98,230,232,76,17,231,120,112,47,232,104,244,231,232,120,82,15,234,104,214,199,234,120,52,239,235,104,184,167,236,120,22,207,237,104,154,135,238,120,113,53,240,144,96,163,32,144,103,110,33,144,66,131,34,144,73,78,35,170,170,170,170,28,0,0,0,1,3,4,3,4,3,4,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,10,0,0,0,8,119,0,0,0,0,0,0,136,119,0,0,0,0,0,0,136,119,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,114,100,0,224,117,100,0,224,147,100,0,16,155,100,0,224,6,0,0,0,4,1,0,0,5,1,0,0,15,1,0,0,60,1,0,0,129,1,0,0,38,2,0,0,28,0,0,0,128,162,151,160,240,4,121,161,128,94,89,200,112,249,9,201,0,189,211,201,240,138,5,203,0,64,124,203,240,62,59,210,128,123,139,211,240,173,66,212,0,34,69,213,240,191,76,214,0,191,60,215,112,102,6,216,128,242,29,217,240,124,65,217,32,82,186,30,144,155,105,31,160,132,126,32,144,125,73,33,32,161,103,34,144,95,41,35,32,131,71,36,16,124,18,37,32,101,39,38,16,94,242,38,32,71,7,40,16,64,210,40,2,0,0,0,255,255,255,255,41,67,54,126,170,170,170,170,170,170,170,170,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,215,113,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,173,100,0,224,180,100,0,224,209,100,0,224,215,100,0,16,224,100,0,224,3,0,0,0,34,1,0,0,61,1,0,0,91,2,0,0,7,0,0,0,163,133,131,134,144,78,103,186,96,228,10,192,96,229,179,202,8,95,145,203,240,109,72,210,0,238,145,22,7,0,0,0,1,2,3,4,6,4,5,170,14,0,0,0,93,97,0,0,0,0,0,0,112,98,0,0,0,0,0,0,112,98,0,0,176,4,0,0,32,103,0,0,0,0,0,0,120,105,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,239,100,0,224,243,100,0,224,251,100,0,16,254,100,0,224,65,0,0,0,228,51,25,170,224,168,163,181,80,55,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,112,9,82,52,112,16,29,53,112,235,49,54,112,242,252,54,240,7,27,56,112,212,220,56,240,233,250,57,112,182,188,58,240,203,218,59,240,210,165,60,240,173,186,61,240,180,133,62,240,143,154,63,240,150,101,64,112,172,131,65,240,120,69,66,112,142,99,67,240,90,37,68,112,112,67,69,240,60,5,70,112,82,35,71,112,89,238,71,112,52,3,73,112,59,206,73,112,22,227,74,112,29,174,75,240,50,204,76,112,255,141,77,224,172,75,84,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,28,144,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,20,101,0,224,87,101,0,16,105,101,0,224,2,0,0,0,63,1,0,0,88,2,0,0,40,0,0,0,128,73,85,195,128,89,84,210,128,123,139,211,240,173,66,212,0,34,69,213,240,191,76,214,0,191,60,215,112,102,6,216,128,242,29,217,240,153,231,217,0,38,255,218,112,205,200,219,128,89,224,220,240,0,170,221,0,115,114,222,112,100,181,223,0,133,124,224,240,151,150,225,128,184,93,226,112,203,119,227,0,236,62,228,112,32,48,229,0,113,33,230,112,165,18,231,128,164,2,232,240,216,243,232,0,216,227,233,112,12,213,234,128,11,197,235,240,63,182,236,0,252,247,237,240,196,152,238,128,47,217,239,112,248,121,240,0,86,252,7,112,138,237,8,128,137,221,9,240,189,206,10,128,161,219,17,112,221,84,18,2,0,0,0,255,255,255,255,24,240,206,116,170,170,170,170,41,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,232,113,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,123,101,0,224,126,101,0,224,167,101,0,224,171,101,0,16,183,101,0,224,24,0,0,0,9,131,25,170,48,239,163,181,160,125,39,21,16,178,24,22,32,177,8,23,144,229,249,23,160,228,233,24,16,25,219,25,160,105,204,26,192,118,188,27,192,103,172,28,192,88,156,29,192,73,140,30,192,58,124,31,192,43,108,32,192,28,92,33,192,13,76,34,192,254,59,35,192,239,43,36,192,224,27,37,192,209,11,38,64,253,4,39,64,238,244,39,80,237,228,40,170,170,170,170,170,170,170,170,24,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,10,0,0,0,247,64,0,0,0,0,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,3,0,48,0,66,0,54,0,200,101,0,224,227,101,0,16,234,101,0,224,50,0,0,0,1,154,25,170,80,12,218,231,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,112,9,229,40,80,222,212,41,64,193,196,42,80,192,180,43,64,163,164,44,80,162,148,45,64,133,132,46,64,118,116,47,48,89,100,48,192,146,93,49,176,65,82,52,192,86,29,53,176,35,50,54,192,56,253,54,48,64,27,56,192,26,221,56,48,34,251,57,192,252,188,58,48,4,219,59,64,25,166,60,48,230,186,61,64,251,133,62,48,200,154,63,64,221,101,64,176,199,221,64,240,28,132,65,112,233,69,66,170,170,170,170,170,170,170,170,50,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,2,1,3,170,170,10,0,0,0,255,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,250,101,0,224,47,102,0,16,61,102,0,224,2,0,0,0,66,1,0,0,17,2,0,0,70,0,0,0,72,204,0,191,56,68,148,13,184,19,173,14,64,115,121,15,192,202,40,16,64,58,237,16,72,188,173,17,184,74,69,18,200,236,55,19,184,21,45,20,200,118,32,40,184,157,219,40,200,156,203,41,184,34,190,42,72,208,172,43,56,86,159,44,200,3,142,45,184,137,128,46,72,55,111,47,56,189,97,48,200,106,80,49,184,240,66,50,200,239,50,51,184,117,37,52,72,35,20,53,56,169,6,54,200,86,245,54,184,220,231,55,72,138,214,56,56,16,201,57,72,15,185,58,56,149,171,59,200,66,154,60,184,200,140,61,72,118,123,62,56,252,109,63,200,169,92,64,184,47,79,65,200,46,63,66,184,180,49,67,72,201,226,71,56,79,213,72,72,78,197,73,56,212,183,74,200,129,166,75,184,7,153,76,72,181,135,77,56,59,122,78,200,232,104,79,184,110,91,80,200,109,75,81,184,243,61,82,72,161,44,83,56,39,31,84,200,212,13,85,184,90,0,86,72,8,239,86,56,142,225,87,72,141,209,88,56,19,196,89,200,192,178,90,184,70,165,91,72,244,147,92,56,122,134,93,200,39,117,94,184,173,103,95,200,172,87,96,184,50,74,97,72,224,56,98,56,102,43,99,70,0,0,0,1,2,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,10,0,0,0,56,48,0,0,0,0,0,0,56,49,0,0,0,0,0,0,56,49,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,77,102,0,224,80,102,0,224,151,102,0,16,170,102,0,224,2,0,0,0,68,1,0,0,69,1,0,0,2,0,0,0,116,21,230,213,168,77,97,33,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,12,84,0,0,0,0,0,0,88,77,0,0,0,0,0,0,96,84,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,188,102,0,224,191,102,0,224,195,102,0,16,197,102,0,224,3,0,0,0,70,1,0,0,19,2,0,0,21,2,0,0,8,0,0,0,112,2,62,215,240,89,237,215,112,250,248,216,240,59,205,217,240,0,7,219,240,29,173,219,240,226,230,220,240,255,140,221,2,0,0,0,255,255,255,255,112,164,194,101,9,0,0,0,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,3,131,0,0,0,0,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,211,102,0,224,215,102,0,224,224,102,0,224,227,102,0,16,231,102,0,224,67,0,0,0,217,78,229,161,32,225,163,181,144,111,39,21,0,164,24,22,16,163,8,23,128,215,249,23,144,214,233,24,0,11,219,25,144,91,204,26,176,104,188,27,176,89,172,28,176,74,156,29,176,59,140,30,176,44,124,31,176,29,108,32,176,14,92,33,176,255,75,34,176,240,59,35,176,225,43,36,176,210,27,37,176,195,11,38,48,239,4,39,48,224,244,39,64,223,228,40,64,135,120,41,48,194,212,41,48,179,196,42,48,164,180,43,48,149,164,44,48,134,148,45,48,119,132,46,48,104,116,47,48,89,100,48,176,132,93,49,176,95,114,50,176,102,61,51,176,65,82,52,176,72,29,53,176,35,50,54,176,42,253,54,48,64,27,56,176,12,221,56,48,34,251,57,176,238,188,58,48,4,219,59,48,11,166,60,176,233,206,60,64,244,186,61,64,251,133,62,64,214,154,63,64,221,101,64,192,242,131,65,64,191,69,66,192,212,99,67,64,161,37,68,192,182,67,69,64,131,5,70,192,152,35,71,192,159,238,71,192,122,3,73,192,129,206,73,192,92,227,74,192,99,174,75,64,121,204,76,192,69,142,77,48,243,75,84,192,248,73,87,170,170,170,170,67,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,170,10,0,0,0,167,79,0,0,0,0,0,0,96,84,0,0,0,0,0,0,96,84,0,0,16,14,0,0,112,98,0,0,0,0,0,0,112,98,0,0,16,14,0,0,3,0,48,0,66,0,54,0,246,102,0,224,59,103,0,16,77,103,0,224,3,0,0,0,3,1,0,0,73,1,0,0,74,1,0,0,50,0,0,0,76,238,211,134,144,220,11,15,128,200,233,24,240,252,218,25,128,77,204,26,112,48,188,27,128,47,172,28,112,18,156,29,128,17,140,30,112,244,123,31,128,243,107,32,112,214,91,33,128,213,75,34,112,184,59,35,128,183,43,36,112,154,27,37,128,153,11,38,240,182,4,39,0,182,244,39,240,152,228,40,0,152,212,41,240,122,196,42,0,122,180,43,240,92,164,44,0,92,148,45,240,62,132,46,0,62,116,47,240,32,100,48,128,90,93,49,112,61,77,50,128,60,61,51,112,31,45,52,128,30,29,53,112,1,13,54,160,179,233,58,144,172,180,59,160,171,164,60,144,142,148,61,160,141,132,62,144,112,116,63,160,111,100,64,144,82,84,65,160,81,68,66,144,52,52,67,160,51,36,68,16,81,29,69,160,154,21,85,112,97,5,86,160,124,245,86,112,67,229,87,170,170,170,170,170,170,170,170,170,170,170,170,50,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,52,100,0,0,0,0,0,0,112,98,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,93,103,0,224,97,103,0,224,151,103,0,16,165,103,0,224,2,0,0,0,28,1,0,0,75,1,0,0,1,0,0,0,100,186,254,176,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,28,82,0,0,0,0,0,0,96,84,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,181,103,0,224,184,103,0,224,187,103,0,16,189,103,0,224,66,0,0,0,186,221,219,161,0,197,163,181,112,83,39,21,192,107,24,22,208,106,8,23,64,159,249,23,80,158,233,24,192,210,218,25,80,35,204,26,112,48,188,27,112,33,172,28,112,18,156,29,112,3,140,30,112,244,123,31,112,229,107,32,112,214,91,33,112,199,75,34,112,184,59,35,112,169,43,36,112,154,27,37,112,139,11,38,240,182,4,39,240,167,244,39,0,167,228,40,0,79,120,41,240,137,212,41,240,122,196,42,240,107,180,43,240,92,164,44,240,77,148,45,240,62,132,46,240,47,116,47,240,32,100,48,112,76,93,49,112,39,114,50,112,46,61,51,112,9,82,52,112,16,29,53,112,235,49,54,112,242,252,54,240,7,27,56,112,212,220,56,240,233,250,57,112,182,188,58,240,203,218,59,240,210,165,60,240,173,186,61,240,180,133,62,240,143,154,63,240,150,101,64,112,172,131,65,240,120,69,66,112,142,99,67,240,90,37,68,112,112,67,69,240,60,5,70,112,82,35,71,112,89,238,71,112,52,3,73,112,59,206,73,112,22,227,74,112,29,174,75,240,50,204,76,112,255,141,77,64,244,109,78,240,186,75,84,170,170,170,170,170,170,170,170,170,170,170,170,66,0,0,0,1,2,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,5,3,170,170,16,0,0,0,70,134,0,0,0,0,0,0,128,112,0,0,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,201,103,0,224,15,104,0,16,33,104,0,224,65,0,0,0,93,71,89,167,240,182,163,181,96,69,39,21,208,121,24,22,224,120,8,23,80,173,249,23,96,172,233,24,208,224,218,25,96,49,204,26,128,62,188,27,128,47,172,28,128,32,156,29,128,17,140,30,128,2,124,31,128,243,107,32,128,228,91,33,128,213,75,34,128,198,59,35,128,183,43,36,128,168,27,37,128,153,11,38,0,197,4,39,0,182,244,39,16,181,228,40,16,93,120,41,0,152,212,41,0,137,196,42,0,122,180,43,0,107,164,44,0,92,148,45,0,77,132,46,0,62,116,47,0,47,100,48,128,90,93,49,128,53,114,50,128,60,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,0,248,250,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,0,105,37,68,128,126,67,69,0,75,5,70,128,96,35,71,128,103,238,71,128,66,3,73,128,73,206,73,128,36,227,74,128,43,174,75,0,65,204,76,128,13,142,77,240,186,75,84,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,163,123,0,0,0,0,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,176,154,0,0,0,0,0,0,3,0,48,0,66,0,54,0,55,104,0,224,123,104,0,16,141,104,0,224,65,0,0,0,94,234,219,161,0,197,163,181,112,83,39,21,224,135,24,22,240,134,8,23,96,187,249,23,112,186,233,24,224,238,218,25,112,63,204,26,144,76,188,27,144,61,172,28,144,46,156,29,144,31,140,30,144,16,124,31,144,1,108,32,144,242,91,33,144,227,75,34,144,212,59,35,144,197,43,36,144,182,27,37,144,167,11,38,16,211,4,39,16,196,244,39,32,195,228,40,32,107,120,41,16,166,212,41,16,151,196,42,16,136,180,43,16,121,164,44,16,106,148,45,16,91,132,46,16,76,116,47,16,61,100,48,144,104,93,49,144,67,114,50,144,74,61,51,144,37,82,52,144,44,29,53,144,7,50,54,144,14,253,54,16,36,27,56,144,240,220,56,16,6,251,57,144,210,188,58,16,232,218,59,16,239,165,60,16,202,186,61,16,209,133,62,16,172,154,63,16,179,101,64,144,200,131,65,16,149,69,66,144,170,99,67,16,119,37,68,144,140,67,69,16,89,5,70,144,110,35,71,144,117,238,71,144,80,3,73,144,87,206,73,144,50,227,74,144,57,174,75,16,79,204,76,144,27,142,77,0,201,75,84,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,170,170,170,12,0,0,0,162,121,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,144,126,0,0,0,0,0,0,144,126,0,0,16,14,0,0,160,140,0,0,0,0,0,0,3,0,48,0,66,0,54,0,159,104,0,224,227,104,0,16,245,104,0,224,3,0,0,0,54,1,0,0,80,1,0,0,9,2,0,0,3,0,0,0,81,115,242,161,24,252,242,203,240,103,154,209,3,0,0,0,1,2,1,170,6,0,0,0,47,90,0,0,0,0,0,0,104,91,0,0,0,0,0,0,144,126,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,7,105,0,224,11,105,0,224,15,105,0,16,17,105,0,224,66,0,0,0,39,9,95,155,255,177,18,161,64,253,163,181,176,139,39,21,32,192,24,22,48,191,8,23,160,243,249,23,176,242,233,24,32,39,219,25,176,119,204,26,208,132,188,27,208,117,172,28,208,102,156,29,208,87,140,30,208,72,124,31,208,57,108,32,208,42,92,33,208,27,76,34,208,12,60,35,208,253,43,36,208,238,27,37,208,223,11,38,80,11,5,39,80,252,244,39,96,251,228,40,96,163,120,41,80,222,212,41,80,207,196,42,80,192,180,43,80,177,164,44,80,162,148,45,80,147,132,46,80,132,116,47,80,117,100,48,208,160,93,49,208,123,114,50,208,130,61,51,208,93,82,52,208,100,29,53,208,63,50,54,208,70,253,54,80,92,27,56,208,40,221,56,80,62,251,57,208,10,189,58,80,32,219,59,80,39,166,60,80,2,187,61,80,9,134,62,80,228,154,63,80,235,101,64,208,0,132,65,80,205,69,66,208,226,99,67,80,175,37,68,208,196,67,69,80,145,5,70,208,166,35,71,208,173,238,71,208,136,3,73,208,143,206,73,208,106,227,74,208,113,174,75,80,135,204,76,208,83,142,77,64,1,76,84,170,170,170,170,66,0,0,0,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,6,4,170,170,14,0,0,0,217,56,0,0,0,0,0,0,193,52,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,80,70,0,0,0,0,0,0,80,70,0,0,16,14,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,31,105,0,224,99,105,0,16,117,105,0,224,2,0,0,0,82,1,0,0,31,2,0,0,62,0,0,0,72,154,25,170,80,12,218,231,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,224,252,27,37,224,237,11,38,96,25,5,39,96,10,245,39,112,9,229,40,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,96,219,69,66,224,240,99,67,96,189,37,68,224,210,67,69,96,159,5,70,224,180,35,71,224,187,238,71,224,150,3,73,224,157,206,73,224,120,227,74,224,127,174,75,96,149,204,76,224,97,142,77,96,119,172,78,62,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,184,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,4,0,74,0,48,0,66,0,54,0,170,170,137,105,0,224,140,105,0,224,203,105,0,16,220,105,0,224,133,0,0,0,160,170,230,146,144,137,75,155,160,227,254,155,160,23,157,156,144,159,201,157,32,75,126,158,16,211,170,159,160,126,95,160,144,6,140,161,160,3,66,162,144,139,110,163,32,55,35,164,16,191,79,165,144,11,6,170,16,124,231,170,16,196,201,173,16,64,167,174,144,107,160,175,16,34,135,176,16,136,137,177,144,62,112,178,144,164,114,179,144,32,80,180,144,104,50,183,144,228,15,184,144,213,255,184,144,198,239,185,16,212,200,188,16,197,184,189,144,123,159,190,16,167,152,191,16,13,155,192,16,137,120,193,16,122,104,194,16,107,88,195,144,33,63,196,16,77,56,197,16,179,58,198,144,200,88,199,144,251,217,199,144,238,3,201,144,60,241,201,16,127,226,202,16,111,181,203,0,192,236,203,0,104,128,204,16,191,220,204,16,81,149,205,128,103,195,205,0,191,114,206,144,219,197,206,16,51,117,207,0,132,172,207,0,161,82,208,144,189,165,208,16,21,85,209,0,102,140,209,0,131,50,210,144,159,133,210,16,225,89,211,16,210,73,212,64,237,57,213,64,222,41,214,64,207,25,215,64,192,9,216,64,177,249,216,64,162,233,217,64,147,217,218,64,132,201,219,64,117,185,220,192,160,178,221,192,145,162,222,192,130,146,223,192,115,130,224,192,100,114,225,192,85,98,226,192,70,82,227,192,55,66,228,192,40,50,229,192,25,34,230,64,69,27,231,64,54,11,232,64,39,251,232,64,24,235,233,64,9,219,234,64,250,202,235,64,235,186,236,64,220,170,237,64,205,154,238,64,190,138,239,64,175,122,240,64,160,106,241,192,203,99,242,192,188,83,243,192,173,67,244,192,158,51,245,192,143,35,246,192,128,19,247,192,113,3,248,192,98,243,248,192,83,227,249,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,32,14,61,43,144,248,180,43,16,194,31,44,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,144,27,61,94,134,0,0,0,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,7,8,6,5,6,5,6,5,6,5,170,170,18,0,0,0,240,231,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,224,227,255,255,32,28,0,0,40,229,255,255,0,0,0,0,240,241,255,255,0,0,0,0,240,241,255,255,16,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,240,241,255,127,7,0,0,96,205,7,0,112,238,105,0,224,116,106,0,224,119,106,0,16,154,106,0,224,95,0,0,0,70,174,204,156,54,75,183,157,198,109,184,158,54,184,132,159,230,29,195,180,224,166,98,203,208,188,211,204,224,209,158,205,208,19,198,206,96,121,117,207,80,48,175,208,96,91,85,209,80,18,143,210,96,104,113,213,208,60,14,214,224,132,90,215,80,228,228,215,224,102,58,217,80,198,196,217,96,131,35,219,80,168,164,219,96,101,3,221,80,138,132,221,96,71,227,222,208,166,109,223,224,9,108,230,208,2,55,231,96,179,32,8,80,150,16,9,96,149,0,10,80,120,240,10,96,119,224,11,208,148,217,12,96,89,192,13,208,118,185,14,224,117,169,15,208,88,153,16,224,87,137,17,208,58,121,18,224,57,105,19,208,28,89,20,224,27,73,21,208,254,56,22,224,253,40,23,80,27,34,24,224,223,8,25,80,253,1,26,96,252,241,26,80,223,225,27,96,222,209,28,80,193,193,29,96,192,177,30,80,163,161,31,224,242,117,32,80,133,129,33,224,212,85,34,208,161,106,35,224,182,53,36,208,131,74,37,224,152,21,38,208,101,42,39,96,181,254,39,208,71,10,41,96,151,222,41,208,41,234,42,96,121,190,43,80,70,211,44,96,91,158,45,80,40,179,46,96,61,126,47,80,10,147,48,224,89,103,49,80,236,114,50,224,59,71,51,80,206,82,52,224,29,39,53,80,176,50,54,224,255,6,55,208,204,27,56,224,225,230,56,208,174,251,57,224,195,198,58,208,144,219,59,96,224,175,60,208,114,187,61,96,194,143,62,208,84,155,63,96,164,111,64,80,113,132,65,96,134,79,66,80,83,100,67,96,104,47,68,80,53,68,69,224,154,243,69,208,81,45,71,170,170,170,170,170,170,170,170,170,170,170,170,95,0,0,0,1,0,1,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,8,0,0,0,58,195,255,255,0,0,0,0,58,195,255,255,16,14,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,1,0,0,96,216,7,0,112,184,106,0,224,27,107,0,16,52,107,0,224,36,0,0,0,240,92,4,166,32,247,65,212,0,54,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,36,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,8,0,0,0,144,241,255,255,0,0,0,0,240,241,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,0,0,0,112,7,0,0,96,205,7,0,112,71,107,0,224,111,107,0,16,121,107,0,224,4,0,0,0,160,170,230,146,32,156,149,204,16,124,116,210,64,247,23,11,170,170,170,170,170,170,170,170,4,0,0,0,1,2,1,3,8,0,0,0,244,233,255,255,0,0,0,0,224,227,255,255,0,0,0,0,224,227,255,255,16,14,0,0,240,241,255,255,0,0,0,0,3,0,48,0,66,0,54,0,140,107,0,224,147,107,0,16,149,107,0,224,2,0,0,0,87,1,0,0,88,1,0,0,33,0,0,0,88,164,109,139,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,33,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,168,249,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,0,0,0,112,7,0,0,96,205,7,0,112,163,107,0,224,166,107,0,224,203,107,0,16,213,107,0,224,131,0,0,0,144,156,230,146,128,123,75,155,144,213,254,155,144,9,157,156,128,145,201,157,16,61,126,158,0,197,170,159,144,112,95,160,128,248,139,161,144,245,65,162,128,125,110,163,16,41,35,164,0,177,79,165,128,253,5,170,0,110,231,170,0,182,201,173,0,50,167,174,128,93,160,175,0,20,135,176,0,122,137,177,128,48,112,178,128,150,114,179,128,18,80,180,128,90,50,183,128,214,15,184,128,199,255,184,128,184,239,185,0,198,200,188,0,183,184,189,128,109,159,190,0,153,152,191,0,255,154,192,0,123,120,193,0,108,104,194,0,93,88,195,128,19,63,196,0,63,56,197,0,165,58,198,128,186,88,199,128,237,217,199,128,224,3,201,128,46,241,201,0,113,226,202,0,97,181,203,240,177,236,203,240,89,128,204,0,177,220,204,0,67,149,205,112,89,195,205,240,176,114,206,128,205,197,206,0,37,117,207,240,117,172,207,240,146,82,208,128,175,165,208,0,7,85,209,240,87,140,209,240,116,50,210,128,145,133,210,0,211,89,211,0,196,73,212,48,223,57,213,48,208,41,214,48,193,25,215,48,178,9,216,48,163,249,216,48,148,233,217,48,133,217,218,48,118,201,219,48,103,185,220,176,146,178,221,176,131,162,222,176,116,146,223,176,101,130,224,176,86,114,225,176,71,98,226,176,56,82,227,176,41,66,228,176,26,50,229,176,11,34,230,48,55,27,231,48,40,11,232,48,25,251,232,48,10,235,233,48,251,218,234,48,236,202,235,48,221,186,236,48,206,170,237,48,191,154,238,48,176,138,239,48,161,122,240,48,146,106,241,176,189,99,242,176,174,83,243,176,159,67,244,176,144,51,245,176,129,35,246,176,114,19,247,176,99,3,248,176,84,243,248,176,69,227,249,0,250,12,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,0,130,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,131,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,12,0,0,0,40,240,255,255,0,0,0,0,240,241,255,255,0,0,0,0,240,241,255,255,16,14,0,0,240,241,255,255,32,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,0,0,0,112,7,0,0,96,205,7,0,112,231,107,0,224,107,108,0,16,141,108,0,224,2,0,0,0,255,255,255,255,192,253,134,105,1,0,0,0,1,170,170,170,4,0,0,0,192,221,255,255,0,0,0,0,224,227,255,255,0,0,0,0,3,0,80,0,66,0,54,0,164,108,0,224,167,108,0,16,169,108,0,224,69,0,0,0,60,95,68,147,192,90,79,195,48,3,54,196,192,60,47,197,48,229,21,198,64,89,24,199,176,1,255,199,64,59,248,200,176,227,222,201,64,29,216,202,176,197,190,203,64,255,183,204,48,129,54,205,64,254,17,25,176,188,211,25,32,196,241,26,48,100,170,27,32,166,209,28,48,70,138,29,176,91,168,30,64,54,106,31,176,61,136,32,64,24,74,33,176,31,104,34,64,250,41,35,176,1,72,36,64,220,9,37,48,30,49,38,64,190,233,38,48,0,17,40,192,218,210,40,48,226,240,41,192,188,178,42,48,196,208,43,192,158,146,44,48,166,176,45,192,128,114,46,48,136,144,47,192,98,82,48,176,164,121,49,64,127,59,50,176,134,89,51,64,97,27,52,176,104,57,53,64,67,251,53,176,74,25,55,64,37,219,55,176,44,249,56,64,7,187,57,208,42,217,58,224,202,145,59,80,71,194,60,224,172,113,61,80,41,162,62,96,201,90,63,80,11,130,64,96,171,58,65,80,237,97,66,96,141,26,67,80,207,65,68,96,111,250,68,80,177,33,70,96,81,218,70,208,205,10,72,224,109,195,72,208,175,234,73,224,79,163,74,208,145,202,75,224,49,131,76,170,170,170,170,170,170,170,170,69,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,3,4,3,4,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,170,170,170,10,0,0,0,196,201,255,255,0,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,208,213,255,255,0,0,0,0,208,213,255,255,16,14,0,0,3,0,48,0,66,0,54,0,179,108,0,224,251,108,0,16,14,109,0,224,2,0,0,0,96,1,0,0,112,1,0,0,83,0,0,0,136,201,78,156,8,54,188,156,8,186,84,203,136,108,199,203,136,93,183,204,136,78,167,205,8,122,160,206,136,48,135,207,136,64,112,3,8,35,13,4,136,34,80,5,136,63,246,5,136,4,48,7,136,33,214,7,136,230,15,9,136,3,182,9,136,200,239,10,8,32,159,11,8,229,216,12,8,2,127,13,8,199,184,14,8,228,94,15,8,169,152,16,8,198,62,17,8,139,120,18,8,168,30,19,8,109,88,20,8,138,254,20,8,79,56,22,136,166,231,22,136,107,33,24,136,136,199,24,136,77,1,26,136,106,167,26,136,47,225,27,136,76,135,28,136,17,193,29,136,163,121,30,8,185,151,31,136,133,89,32,136,213,128,33,8,162,66,34,8,242,105,35,8,132,34,36,8,212,73,37,8,102,2,38,8,182,41,39,8,211,207,39,8,152,9,41,136,100,203,41,8,122,233,42,136,209,152,43,136,150,210,44,136,40,139,45,136,120,178,46,8,69,116,47,136,90,146,48,136,97,93,49,136,60,114,50,136,67,61,51,136,30,82,52,136,37,29,53,136,0,50,54,136,7,253,54,8,29,27,56,136,233,220,56,8,255,250,57,136,203,188,58,8,225,218,59,8,232,165,60,8,195,186,61,8,202,133,62,8,165,154,63,8,172,101,64,136,193,131,65,8,142,69,66,136,163,99,67,136,170,46,68,136,133,67,69,8,82,5,70,136,103,35,71,8,169,247,71,8,154,231,72,4,0,0,0,255,255,255,255,20,139,22,115,255,255,255,255,112,3,18,123,170,170,170,170,85,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,170,8,0,0,0,236,129,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,152,133,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,152,133,0,112,40,0,0,96,217,7,0,112,30,109,0,224,33,109,0,224,117,109,0,224,123,109,0,16,146,109,0,224,2,0,0,0,97,1,0,0,111,1,0,0,16,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,0,205,73,37,0,234,239,37,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,2,0,0,0,255,255,255,255,8,159,237,114,17,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,120,143,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,168,109,0,224,171,109,0,224,188,109,0,224,191,109,0,16,197,109,0,224,2,0,0,0,98,1,0,0,117,1,0,0,83,0,0,0,136,201,78,156,8,54,188,156,8,186,84,203,136,108,199,203,136,93,183,204,136,78,167,205,8,122,160,206,136,48,135,207,136,64,112,3,8,35,13,4,136,34,80,5,136,63,246,5,136,4,48,7,136,33,214,7,136,230,15,9,136,3,182,9,136,200,239,10,8,32,159,11,8,229,216,12,8,2,127,13,8,199,184,14,8,228,94,15,8,169,152,16,8,198,62,17,8,139,120,18,8,168,30,19,8,109,88,20,8,138,254,20,8,79,56,22,136,144,12,23,136,107,33,24,136,136,199,24,136,77,1,26,136,106,167,26,136,47,225,27,136,76,135,28,136,17,193,29,136,163,121,30,8,185,151,31,136,133,89,32,136,213,128,33,8,162,66,34,8,242,105,35,8,132,34,36,8,212,73,37,8,241,239,37,8,182,41,39,8,211,207,39,8,152,9,41,8,181,175,41,8,122,233,42,136,209,152,43,136,150,210,44,136,179,120,45,136,120,178,46,136,149,88,47,136,90,146,48,136,97,93,49,136,60,114,50,136,67,61,51,136,30,82,52,136,37,29,53,136,0,50,54,136,7,253,54,8,29,27,56,136,233,220,56,8,255,250,57,136,203,188,58,8,225,218,59,8,232,165,60,8,195,186,61,8,202,133,62,8,165,154,63,8,172,101,64,136,193,131,65,8,142,69,66,136,163,99,67,136,170,46,68,136,133,67,69,8,82,5,70,136,103,35,71,8,169,247,71,8,154,231,72,6,0,0,0,255,255,255,255,100,136,22,115,255,255,255,255,224,165,4,118,255,255,255,255,112,3,18,123,170,170,170,170,86,0,0,0,4,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,10,0,0,0,156,132,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,152,133,0,0,16,14,0,0,160,140,0,0,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,152,133,0,112,40,0,0,96,217,7,0,112,212,109,0,224,215,109,0,224,43,110,0,224,51,110,0,16,74,110,0,224,3,0,0,0,0,0,0,0,101,1,0,0,109,1,0,0,8,0,0,0,136,201,78,156,8,54,188,156,8,186,84,203,136,108,199,203,136,93,183,204,136,78,167,205,8,122,160,206,136,48,135,207,4,0,0,0,255,255,255,255,88,146,22,115,255,255,255,255,112,3,18,123,170,170,170,170,170,170,170,170,170,170,170,170,10,0,0,0,1,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,168,122,0,0,0,0,0,0,144,126,0,0,0,0,0,0,152,133,0,0,0,0,0,0,152,133,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,98,110,0,224,102,110,0,224,111,110,0,224,119,110,0,16,123,110,0,224,18,0,0,0,20,212,78,156,148,64,188,156,148,196,84,203,20,119,199,203,20,104,183,204,20,89,167,205,20,241,15,9,20,14,182,9,20,88,1,26,20,117,167,26,20,82,37,41,148,191,175,41,148,180,113,69,148,92,5,70,20,114,35,71,20,121,238,71,20,84,3,73,20,91,206,73,2,0,0,0,255,255,255,255,176,10,166,116,170,170,170,170,19,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,208,120,0,0,0,0,0,0,12,123,0,0,0,0,0,0,12,123,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,140,110,0,224,159,110,0,224,163,110,0,16,169,110,0,224,3,0,0,0,100,1,0,0,103,1,0,0,114,1,0,0,95,0,0,0,128,120,213,155,0,47,188,156,128,68,218,157,128,97,128,158,128,38,186,159,128,67,96,160,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,0,141,194,251,0,126,178,252,0,89,199,253,128,176,118,254,0,59,167,255,128,146,86,0,0,29,135,1,0,175,63,2,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,0,79,3,23,128,100,33,24,0,49,227,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,39,103,30,0,178,151,31,128,126,89,32,128,206,128,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,95,2,38,0,175,41,39,0,182,244,39,128,225,237,40,0,152,212,41,128,195,205,42,0,122,180,43,128,165,173,44,0,92,148,45,128,135,141,46,0,62,116,47,128,105,109,48,128,90,93,49,0,134,86,50,128,60,61,51,0,104,54,52,128,30,29,53,0,74,22,54,128,0,253,54,0,44,246,55,128,226,220,56,128,233,167,57,128,196,188,58,128,42,191,59,0,225,165,60,128,12,159,61,0,195,133,62,128,238,126,63,0,165,101,64,128,208,94,65,0,135,69,66,128,178,62,67,128,163,46,68,128,148,30,69,0,75,5,70,0,177,7,71,0,162,247,71,0,147,231,72,2,0,0,0,255,255,255,255,228,0,46,116,170,170,170,170,96,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,28,138,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,140,0,112,212,3,0,96,217,7,0,112,183,110,0,224,187,110,0,224,27,111,0,224,31,111,0,16,56,111,0,224,20,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,0,205,73,37,0,234,239,37,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,0,115,233,42,128,202,152,43,128,143,210,44,128,172,120,45,2,0,0,0,255,255,255,255,212,162,237,114,170,170,170,170,170,170,170,170,170,170,170,170,21,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,172,139,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,76,111,0,224,97,111,0,224,103,111,0,16,110,111,0,224,2,0,0,0,104,1,0,0,106,1,0,0,56,0,0,0,224,102,254,20,248,64,56,22,104,138,231,22,120,93,33,24,104,108,199,24,120,63,1,26,104,78,167,26,120,33,225,27,104,48,135,28,120,3,193,29,112,142,121,30,248,170,151,31,112,112,89,32,120,199,128,33,240,140,66,34,248,227,105,35,240,110,34,36,248,197,73,37,240,219,239,37,248,167,41,39,240,189,207,39,248,137,9,41,240,159,175,41,248,107,233,42,112,188,152,43,120,136,210,44,112,158,120,45,120,106,178,46,112,128,88,47,120,76,146,48,112,76,93,49,120,46,114,50,112,46,61,51,120,16,82,52,112,16,29,53,120,242,49,54,112,242,252,54,248,14,27,56,112,212,220,56,120,226,167,57,112,182,188,58,248,210,218,59,240,210,165,60,248,180,186,61,240,180,133,62,248,150,154,63,240,150,101,64,120,179,131,65,240,120,69,66,120,149,99,67,112,149,46,68,120,119,67,69,240,60,5,70,120,89,35,71,240,147,247,71,248,139,231,72,2,0,0,0,255,255,255,255,220,119,22,115,57,0,0,0,1,2,4,2,4,2,4,2,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,170,170,10,0,0,0,36,149,0,0,0,0,0,0,160,140,0,0,0,0,0,0,168,147,0,0,0,0,0,0,168,147,0,0,8,7,0,0,168,147,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,168,147,0,112,219,1,0,96,217,7,0,112,124,111,0,224,127,111,0,224,184,111,0,224,187,111,0,16,203,111,0,224,2,0,0,0,107,1,0,0,115,1,0,0,83,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,128,159,231,22,128,100,33,24,128,129,199,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,156,121,30,0,178,151,31,128,126,89,32,0,148,119,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,95,2,38,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,0,115,233,42,128,202,152,43,128,143,210,44,128,172,120,45,128,113,178,46,0,62,116,47,128,83,146,48,128,90,93,49,128,53,114,50,128,60,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,128,233,167,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,128,163,46,68,128,126,67,69,0,75,5,70,128,96,35,71,0,162,247,71,0,147,231,72,2,0,0,0,255,255,255,255,24,133,22,115,170,170,170,170,170,170,170,170,84,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,232,135,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,140,0,112,244,0,0,96,217,7,0,112,227,111,0,224,230,111,0,224,58,112,0,224,63,112,0,16,85,112,0,224,2,0,0,0,110,1,0,0,116,1,0,0,18,0,0,0,160,222,78,156,32,75,188,156,32,207,84,203,160,129,199,203,160,114,183,204,160,99,167,205,160,251,15,9,160,24,182,9,160,98,1,26,160,127,167,26,160,92,37,41,32,202,175,41,32,191,113,69,32,103,5,70,160,124,35,71,160,131,238,71,160,94,3,73,160,101,206,73,2,0,0,0,255,255,255,255,228,22,166,116,170,170,170,170,19,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,156,108,0,0,0,0,0,0,128,112,0,0,0,0,0,0,128,112,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,105,112,0,224,108,112,0,224,127,112,0,224,131,112,0,16,137,112,0,224,5,0,0,0,1,0,0,0,95,1,0,0,99,1,0,0,108,1,0,0,113,1,0,0,83,0,0,0,128,194,78,156,0,47,188,156,0,179,84,203,128,101,199,203,128,86,183,204,128,71,167,205,0,115,160,206,128,41,135,207,128,57,112,3,0,28,13,4,128,27,80,5,128,56,246,5,128,253,47,7,128,26,214,7,128,223,15,9,128,252,181,9,128,193,239,10,0,25,159,11,0,222,216,12,0,251,126,13,0,192,184,14,0,221,94,15,0,162,152,16,0,191,62,17,0,132,120,18,0,161,30,19,0,102,88,20,0,131,254,20,0,72,56,22,128,137,12,23,128,100,33,24,128,129,199,24,128,70,1,26,128,99,167,26,128,40,225,27,128,69,135,28,128,10,193,29,128,156,121,30,0,178,151,31,128,126,89,32,128,206,128,33,0,155,66,34,0,235,105,35,0,125,34,36,0,205,73,37,0,234,239,37,0,175,41,39,0,204,207,39,0,145,9,41,0,174,175,41,0,115,233,42,128,202,152,43,128,143,210,44,128,172,120,45,128,113,178,46,128,142,88,47,128,83,146,48,128,90,93,49,128,53,114,50,128,60,61,51,128,23,82,52,128,30,29,53,128,249,49,54,128,0,253,54,0,22,27,56,128,226,220,56,128,233,167,57,128,196,188,58,0,218,218,59,0,225,165,60,0,188,186,61,0,195,133,62,0,158,154,63,0,165,101,64,128,186,131,65,0,135,69,66,128,156,99,67,128,163,46,68,128,126,67,69,0,75,5,70,128,96,35,71,0,162,247,71,0,147,231,72,2,0,0,0,255,255,255,255,60,127,22,115,170,170,170,170,170,170,170,170,84,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,6,0,0,0,196,141,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,160,140,0,112,106,0,0,96,217,7,0,112,152,112,0,224,158,112,0,224,242,112,0,224,247,112,0,16,13,113,0,224,10,0,0,0,149,1,0,0,150,1,0,0,163,1,0,0,178,1,0,0,179,1,0,0,252,1,0,0,253,1,0,0,254,1,0,0,255,1,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,74,0,54,0,170,170,33,113,0,224,44,113,0,224,2,0,0,0,240,241,255,255,0,0,0,0,1,0,54,0,51,113,0,224,2,0,0,0,96,115,255,255,0,0,0,0,1,0,54,0,56,113,0,224,2,0,0,0,80,101,255,255,0,0,0,0,1,0,54,0,61,113,0,224,2,0,0,0,64,87,255,255,0,0,0,0,1,0,54,0,66,113,0,224,2,0,0,0,224,227,255,255,0,0,0,0,1,0,54,0,71,113,0,224,2,0,0,0,208,213,255,255,0,0,0,0,1,0,54,0,76,113,0,224,2,0,0,0,192,199,255,255,0,0,0,0,1,0,54,0,81,113,0,224,2,0,0,0,176,185,255,255,0,0,0,0,1,0,54,0,86,113,0,224,2,0,0,0,160,171,255,255,0,0,0,0,1,0,54,0,91,113,0,224,2,0,0,0,144,157,255,255,0,0,0,0,1,0,54,0,96,113,0,224,2,0,0,0,128,143,255,255,0,0,0,0,1,0,54,0,101,113,0,224,2,0,0,0,112,129,255,255,0,0,0,0,1,0,54,0,106,113,0,224,2,0,0,0,16,14,0,0,0,0,0,0,1,0,54,0,111,113,0,224,2,0,0,0,160,140,0,0,0,0,0,0,1,0,54,0,116,113,0,224,2,0,0,0,176,154,0,0,0,0,0,0,1,0,54,0,121,113,0,224,2,0,0,0,192,168,0,0,0,0,0,0,1,0,54,0,126,113,0,224,2,0,0,0,208,182,0,0,0,0,0,0,1,0,54,0,131,113,0,224,2,0,0,0,224,196,0,0,0,0,0,0,1,0,54,0,136,113,0,224,2,0,0,0,32,28,0,0,0,0,0,0,1,0,54,0,141,113,0,224,2,0,0,0,48,42,0,0,0,0,0,0,1,0,54,0,146,113,0,224,2,0,0,0,64,56,0,0,0,0,0,0,1,0,54,0,151,113,0,224,2,0,0,0,80,70,0,0,0,0,0,0,1,0,54,0,156,113,0,224,2,0,0,0,96,84,0,0,0,0,0,0,1,0,54,0,161,113,0,224,2,0,0,0,112,98,0,0,0,0,0,0,1,0,54,0,166,113,0,224,2,0,0,0,128,112,0,0,0,0,0,0,1,0,54,0,171,113,0,224,2,0,0,0,144,126,0,0,0,0,0,0,1,0,54,0,176,113,0,224,8,0,0,0,180,1,0,0,181,1,0,0,182,1,0,0,184,1,0,0,106,2,0,0,120,2,0,0,121,2,0,0,125,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,2,0,74,0,54,0,170,170,181,113,0,224,190,113,0,224,2,0,0,0,0,0,0,0,0,0,0,0,1,0,54,0,197,113,0,224,25,0,0,0,0,219,65,212,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,148,179,54,126,26,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,108,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,202,113,0,224,228,113,0,224,231,113,0,16,239,113,0,224,64,0,0,0,116,69,24,170,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,112,20,247,86,170,170,170,170,170,170,170,170,170,170,170,170,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,10,0,0,0,12,45,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,3,114,0,224,71,114,0,16,88,114,0,224,2,0,0,0,144,1,0,0,188,1,0,0,55,0,0,0,128,33,128,155,224,233,124,185,208,175,198,185,224,99,242,201,80,168,16,202,16,75,231,204,240,76,170,205,224,24,162,206,112,105,147,207,96,158,19,223,80,10,183,223,96,94,236,9,96,244,24,11,0,174,205,11,0,159,189,12,128,85,164,13,128,93,140,14,128,55,132,15,16,252,106,16,240,123,100,17,240,170,82,18,96,130,70,19,80,194,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,55,0,0,0,3,4,3,4,2,1,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,10,0,0,0,60,22,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,32,28,0,112,7,0,0,96,205,7,0,112,104,114,0,224,107,114,0,224,163,114,0,16,178,114,0,224,6,0,0,0,190,1,0,0,211,1,0,0,223,1,0,0,229,1,0,0,232,1,0,0,246,1,0,0,36,0,0,0,224,53,2,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,140,161,209,144,64,78,210,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,72,240,60,94,37,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,56,19,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,200,114,0,224,207,114,0,224,244,114,0,224,247,114,0,16,2,115,0,224,6,0,0,0,239,0,0,0,89,1,0,0,191,1,0,0,198,1,0,0,221,1,0,0,234,1,0,0,60,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,0,150,182,209,128,190,88,210,16,79,161,210,144,27,99,211,144,35,75,212,32,209,57,213,144,231,103,213,0,115,168,213,16,180,41,214,16,26,44,215,16,150,9,216,144,193,2,217,16,120,233,217,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,248,97,162,111,170,170,170,170,170,170,170,170,61,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,8,0,0,0,136,12,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,16,14,0,0,32,28,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,22,115,0,224,29,115,0,224,90,115,0,224,95,115,0,16,112,115,0,224,5,0,0,0,125,1,0,0,185,1,0,0,193,1,0,0,213,1,0,0,24,2,0,0,101,0,0,0,128,73,68,152,112,37,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,48,248,206,159,240,165,96,160,112,187,126,161,240,18,46,162,240,76,122,163,240,129,53,164,112,35,94,165,240,53,37,166,240,155,39,167,240,1,42,168,240,125,7,169,112,52,238,169,240,95,231,170,240,80,215,171,240,65,199,172,240,167,201,173,240,35,167,174,112,79,160,175,240,5,135,176,240,107,137,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,227,255,184,160,212,239,185,32,139,214,186,32,241,216,187,32,226,200,188,32,211,184,189,160,137,159,190,32,181,152,191,32,27,155,192,32,151,120,193,32,136,104,194,32,121,88,195,160,47,63,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,32,25,74,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,144,94,110,208,16,22,114,209,144,64,78,210,16,64,145,211,144,35,75,212,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,0,200,232,109,170,170,170,170,170,170,170,170,102,0,0,0,1,3,4,3,4,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,170,170,10,0,0,0,26,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,134,115,0,224,140,115,0,224,242,115,0,224,247,115,0,16,18,116,0,224,55,0,0,0,8,210,176,183,96,243,62,185,96,156,239,185,96,141,223,186,96,126,207,187,224,169,200,188,224,154,184,189,224,139,168,190,224,124,152,191,224,109,136,192,224,94,120,193,224,79,104,194,224,64,88,195,224,49,72,196,224,34,56,197,224,19,40,198,224,4,24,199,96,209,173,17,80,224,83,18,208,11,77,19,96,208,51,20,128,221,35,21,128,206,19,22,128,191,3,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,0,130,140,30,0,115,124,31,0,100,108,32,0,85,92,33,0,70,76,34,0,55,60,35,0,40,44,36,0,25,28,37,0,10,12,38,128,53,5,39,96,10,245,39,96,251,228,40,96,236,212,41,96,221,196,42,96,206,180,43,96,191,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,123,114,50,16,187,61,51,16,150,82,52,170,170,170,170,55,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,120,24,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,206,7,0,112,42,116,0,224,99,116,0,16,114,116,0,224,68,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,16,196,154,160,144,121,100,161,16,26,112,162,16,150,77,163,96,181,243,201,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,224,120,153,209,112,201,138,210,144,166,80,211,128,21,75,212,16,195,57,213,16,180,41,214,16,165,25,215,16,150,9,216,144,193,2,217,16,120,233,217,240,168,162,226,96,242,81,227,16,167,130,228,144,254,49,229,16,254,116,230,144,224,17,231,16,224,84,232,144,194,241,232,240,39,77,19,112,222,51,20,112,207,35,21,112,192,19,22,112,177,3,23,112,162,243,23,112,147,227,24,112,132,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,156,145,23,107,69,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,228,17,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,131,116,0,224,200,116,0,224,203,116,0,16,222,116,0,224,2,0,0,0,197,1,0,0,237,1,0,0,60,0,0,0,12,159,107,158,8,210,176,183,96,243,62,185,96,156,239,185,96,141,223,186,96,126,207,187,224,169,200,188,224,154,184,189,224,139,168,190,224,124,152,191,224,109,136,192,224,94,120,193,224,79,104,194,224,64,88,195,224,49,72,196,224,34,56,197,224,19,40,198,224,4,24,199,96,147,188,200,80,125,119,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,96,144,78,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,224,76,67,38,128,53,5,39,128,38,245,39,128,23,229,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,123,114,50,0,173,61,51,0,136,82,52,2,0,0,0,255,255,255,255,248,200,182,86,61,0,0,0,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,2,1,2,1,2,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,170,170,170,18,0,0,0,8,27,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,120,24,0,0,0,0,0,0,244,26,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,32,28,0,112,15,4,0,96,206,7,0,112,240,116,0,224,243,116,0,224,48,117,0,224,51,117,0,16,68,117,0,224,2,0,0,0,148,1,0,0,199,1,0,0,145,0,0,0,145,179,38,155,17,11,214,155,160,48,207,156,160,195,164,157,160,157,156,158,160,26,151,159,32,186,133,160,160,252,118,161,32,156,101,162,160,200,123,163,160,184,78,164,32,251,63,165,32,96,37,166,32,198,39,167,32,44,42,168,160,248,235,168,160,211,0,170,32,21,213,170,32,240,233,171,32,108,199,172,32,210,201,173,32,78,167,174,160,121,160,175,32,48,135,176,160,208,146,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,88,18,185,160,212,239,185,32,0,233,186,32,241,216,187,32,87,219,188,32,211,184,189,160,254,177,190,32,181,152,191,32,27,155,192,32,151,120,193,32,253,122,194,32,121,88,195,160,164,81,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,32,224,73,212,160,33,30,213,32,172,78,214,32,40,44,215,32,142,46,216,32,149,249,216,32,112,14,218,32,236,235,218,160,23,229,219,32,206,203,220,160,249,196,221,160,234,180,222,32,22,174,223,160,204,148,224,160,72,114,225,32,116,107,226,160,42,82,227,160,144,84,228,160,12,50,229,32,173,61,230,32,41,27,231,160,84,20,232,32,11,251,232,32,113,253,233,32,237,218,234,32,83,221,235,32,207,186,236,160,250,179,237,32,177,154,238,160,103,129,239,32,125,159,240,160,73,97,241,32,95,127,242,32,102,74,243,32,65,95,244,160,13,33,245,32,35,63,246,160,239,0,247,32,5,31,248,160,209,224,248,32,231,254,249,160,179,192,250,160,3,232,251,160,171,123,252,112,187,199,253,32,198,112,3,32,88,41,4,32,168,80,5,32,58,9,6,32,138,48,7,32,28,233,7,32,108,16,9,32,254,200,9,32,78,240,10,160,26,178,11,32,48,208,12,160,252,145,13,32,18,176,14,160,222,113,15,160,46,153,16,160,192,81,17,160,16,121,18,160,162,49,19,160,242,88,20,144,235,35,21,144,198,56,22,144,205,3,23,144,168,24,24,144,175,227,24,144,138,248,25,144,145,195,26,16,167,225,27,16,174,172,28,16,137,193,29,16,144,140,30,16,107,161,31,16,114,108,32,16,77,129,33,16,84,76,34,16,47,97,35,16,54,44,36,144,75,74,37,16,24,12,38,144,45,42,39,144,52,245,39,144,15,10,41,144,22,213,41,144,241,233,42,144,248,180,43,144,211,201,44,144,218,148,45,144,181,169,46,144,188,116,47,144,151,137,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,145,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,170,10,0,0,0,15,250,255,255,0,0,0,0,15,250,255,255,16,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,16,14,0,0,0,0,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,0,0,0,112,7,0,0,96,205,7,0,112,100,117,0,224,103,117,0,224,251,117,0,16,33,118,0,224,115,0,0,0,160,173,38,155,32,5,214,155,160,48,207,156,160,195,164,157,160,157,156,158,160,26,151,159,32,186,133,160,160,252,118,161,32,156,101,162,160,200,123,163,160,184,78,164,32,251,63,165,32,96,37,166,32,198,39,167,32,44,42,168,160,248,235,168,160,211,0,170,32,21,213,170,32,240,233,171,32,108,199,172,32,210,201,173,32,78,167,174,160,121,160,175,32,48,135,176,160,208,146,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,88,18,185,160,212,239,185,32,0,233,186,32,241,216,187,32,87,219,188,32,211,184,189,160,254,177,190,32,181,152,191,32,27,155,192,32,151,120,193,32,253,122,194,32,121,88,195,160,164,81,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,144,38,22,202,144,89,151,202,144,30,209,203,144,59,119,204,144,0,177,205,16,88,96,206,144,226,144,207,144,94,110,208,16,22,114,209,16,50,251,209,32,254,105,210,160,41,99,211,32,224,73,212,160,33,30,213,144,253,66,213,16,224,223,213,32,172,78,214,160,3,254,214,32,142,46,216,32,149,249,216,32,112,14,218,32,236,235,218,160,23,229,219,32,206,203,220,160,249,196,221,160,234,180,222,32,22,174,223,160,204,148,224,160,72,114,225,32,116,107,226,160,42,82,227,160,144,84,228,160,12,50,229,32,173,61,230,32,41,27,231,160,84,20,232,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,4,10,209,87,170,170,170,170,116,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,3,2,3,2,3,2,3,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,12,0,0,0,252,250,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,55,118,0,224,171,118,0,224,175,118,0,16,205,118,0,224,2,0,0,0,202,1,0,0,216,1,0,0,35,0,0,0,27,111,115,164,96,81,206,203,96,229,192,204,128,221,35,21,128,206,19,22,128,191,3,23,128,176,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,170,170,170,170,170,170,170,170,35,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,101,23,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,32,28,0,112,7,0,0,96,205,7,0,112,229,118,0,224,232,118,0,224,15,119,0,16,25,119,0,224,3,0,0,0,21,1,0,0,204,1,0,0,105,2,0,0,114,0,0,0,152,245,139,144,96,23,12,155,208,190,213,155,224,99,101,162,80,130,123,163,96,128,78,164,208,180,63,165,224,39,37,166,208,127,39,167,96,40,40,170,208,253,225,170,224,137,249,171,80,49,195,172,224,63,129,200,80,19,1,201,96,245,74,201,80,128,206,202,96,174,203,203,80,9,107,210,96,57,162,211,80,2,67,212,224,13,76,213,208,123,41,214,224,239,43,215,208,93,9,216,96,151,2,217,208,63,233,217,224,179,235,218,80,92,210,219,96,208,212,220,80,62,178,221,96,185,244,241,80,239,98,244,96,6,104,245,208,56,31,246,112,147,110,6,112,154,57,7,0,117,251,7,112,124,25,9,0,203,208,9,112,94,249,10,128,254,177,11,112,64,217,12,128,85,164,13,112,173,166,14,128,55,132,15,80,17,248,15,112,176,137,25,224,176,220,25,240,208,230,27,240,239,198,28,112,49,155,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,112,9,229,40,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,240,131,139,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,144,221,143,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,16,190,56,83,144,71,76,84,144,78,23,85,144,158,62,86,144,48,247,86,80,46,207,87,2,0,0,0,255,255,255,255,216,200,182,86,170,170,170,170,170,170,170,170,115,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,5,4,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,4,170,12,0,0,0,40,27,0,0,0,0,0,0,104,27,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,43,119,0,224,47,119,0,224,162,119,0,224,167,119,0,16,197,119,0,224,79,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,224,119,124,209,96,132,149,209,80,173,138,210,224,182,89,211,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,0,143,29,53,0,106,50,54,0,113,253,54,128,134,27,56,0,83,221,56,128,104,251,57,0,53,189,58,128,74,219,59,128,81,166,60,128,44,187,61,128,51,134,62,128,14,155,63,128,21,102,64,0,43,132,65,128,247,69,66,0,13,100,67,128,217,37,68,0,239,67,69,128,187,5,70,0,209,35,71,0,216,238,71,0,179,3,73,0,186,206,73,0,149,227,74,0,156,174,75,128,177,204,76,0,126,142,77,112,43,76,84,2,0,0,0,255,255,255,255,72,91,162,111,170,170,170,170,170,170,170,170,80,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,14,0,0,0,56,19,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,218,119,0,224,42,120,0,224,47,120,0,16,68,120,0,224,63,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,170,170,170,170,63,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,170,10,0,0,0,152,46,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,90,120,0,224,155,120,0,16,172,120,0,224,4,0,0,0,207,1,0,0,209,1,0,0,239,1,0,0,247,1,0,0,40,0,0,0,100,167,25,170,96,25,164,181,208,46,205,202,16,75,231,204,144,23,169,205,16,67,162,206,112,168,205,206,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,224,32,141,38,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,16,180,114,50,16,187,61,51,16,150,82,52,170,170,170,170,40,0,0,0,3,5,2,1,2,1,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,4,3,4,3,4,3,4,3,4,3,4,3,4,3,14,0,0,0,156,28,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,32,28,0,112,7,0,0,96,206,7,0,112,188,120,0,224,193,120,0,224,235,120,0,16,246,120,0,224,3,0,0,0,210,1,0,0,87,2,0,0,124,2,0,0,142,0,0,0,128,142,230,146,112,109,75,155,128,199,254,155,128,251,156,156,112,131,201,157,0,47,126,158,240,182,170,159,128,98,95,160,112,234,139,161,128,231,65,162,112,111,110,163,0,27,35,164,240,162,79,165,112,239,5,170,240,95,231,170,240,167,201,173,240,35,167,174,112,79,160,175,240,5,135,176,240,107,137,177,112,34,112,178,112,136,114,179,112,4,80,180,112,76,50,183,112,200,15,184,112,185,255,184,112,170,239,185,240,183,200,188,240,168,184,189,112,95,159,190,240,138,152,191,240,240,154,192,240,108,120,193,240,93,104,194,240,78,88,195,112,5,63,196,240,48,56,197,240,150,58,198,112,172,88,199,112,223,217,199,112,210,3,201,112,32,241,201,240,98,226,202,240,82,181,203,224,163,236,203,224,75,128,204,240,162,220,204,240,52,149,205,96,75,195,205,224,162,114,206,112,191,197,206,240,22,117,207,224,103,172,207,224,132,82,208,112,161,165,208,240,248,84,209,224,73,140,209,224,102,50,210,112,131,133,210,240,196,89,211,240,181,73,212,32,209,57,213,32,194,41,214,32,179,25,215,32,164,9,216,32,149,249,216,32,134,233,217,32,119,217,218,32,104,201,219,32,89,185,220,160,132,178,221,160,117,162,222,160,102,146,223,160,87,130,224,160,72,114,225,160,57,98,226,160,42,82,227,160,27,66,228,160,12,50,229,160,253,33,230,32,41,27,231,32,26,11,232,32,11,251,232,32,252,234,233,32,237,218,234,32,222,202,235,32,207,186,236,32,192,170,237,32,177,154,238,32,162,138,239,32,147,122,240,32,132,106,241,160,175,99,242,160,160,83,243,160,145,67,244,160,130,51,245,160,115,35,246,160,100,19,247,160,85,3,248,160,70,243,248,160,55,227,249,0,42,171,12,0,27,155,13,0,12,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,128,221,35,21,128,206,19,22,128,191,3,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,142,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,5,4,5,4,5,4,2,1,170,170,12,0,0,0,99,247,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,0,0,0,112,7,0,0,96,205,7,0,112,16,121,0,224,20,121,0,224,163,121,0,16,200,121,0,224,7,0,0,0,189,1,0,0,201,1,0,0,203,1,0,0,205,1,0,0,212,1,0,0,250,1,0,0,251,1,0,0,159,0,0,0,160,173,38,155,32,5,214,155,160,48,207,156,160,195,164,157,160,157,156,158,160,26,151,159,32,186,133,160,160,252,118,161,32,156,101,162,160,200,123,163,160,184,78,164,32,251,63,165,32,96,37,166,32,198,39,167,32,44,42,168,160,248,235,168,160,211,0,170,32,21,213,170,32,240,233,171,32,108,199,172,32,210,201,173,32,78,167,174,160,121,160,175,32,48,135,176,160,208,146,177,160,76,112,178,160,178,114,179,160,46,80,180,32,90,73,181,160,16,48,182,160,118,50,183,160,242,15,184,160,88,18,185,160,212,239,185,32,0,233,186,32,241,216,187,32,87,219,188,32,211,184,189,160,254,177,190,32,181,152,191,32,27,155,192,32,151,120,193,32,253,122,194,32,121,88,195,160,164,81,196,32,91,56,197,32,193,58,198,160,214,88,199,160,9,218,199,144,38,22,202,144,89,151,202,144,30,209,203,144,59,119,204,144,0,177,205,16,88,96,206,144,226,144,207,144,94,110,208,16,22,114,209,16,50,251,209,32,254,105,210,160,41,99,211,32,224,73,212,160,33,30,213,144,253,66,213,16,224,223,213,32,172,78,214,160,3,254,214,32,142,46,216,32,149,249,216,32,112,14,218,32,236,235,218,160,23,229,219,32,206,203,220,160,249,196,221,160,234,180,222,32,22,174,223,160,204,148,224,160,72,114,225,32,116,107,226,160,42,82,227,160,144,84,228,160,12,50,229,32,173,61,230,32,41,27,231,160,84,20,232,32,11,251,232,32,113,253,233,32,237,218,234,32,83,221,235,32,207,186,236,160,250,179,237,32,177,154,238,160,103,129,239,32,125,159,240,160,73,97,241,32,95,127,242,32,102,74,243,32,65,95,244,160,13,33,245,32,35,63,246,160,239,0,247,32,5,31,248,160,209,224,248,32,231,254,249,160,179,192,250,160,3,232,251,160,171,123,252,112,187,199,253,32,198,112,3,32,88,41,4,32,168,80,5,32,58,9,6,32,138,48,7,32,28,233,7,32,108,16,9,32,254,200,9,32,78,240,10,160,26,178,11,32,48,208,12,160,252,145,13,32,18,176,14,160,222,113,15,160,46,153,16,160,192,81,17,160,16,121,18,160,162,49,19,160,242,88,20,144,235,35,21,144,198,56,22,144,205,3,23,144,168,24,24,144,175,227,24,144,138,248,25,144,145,195,26,16,167,225,27,16,174,172,28,16,137,193,29,16,144,140,30,16,107,161,31,16,114,108,32,16,77,129,33,16,84,76,34,16,47,97,35,16,54,44,36,144,75,74,37,16,24,12,38,144,45,42,39,144,52,245,39,144,15,10,41,144,22,213,41,144,241,233,42,144,248,180,43,144,211,201,44,144,218,148,45,144,181,169,46,144,188,116,47,144,151,137,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,203,9,93,26,160,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,3,2,3,2,3,2,3,2,1,2,1,2,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,10,0,0,0,181,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,0,0,0,112,7,0,0,96,205,7,0,112,224,121,0,224,232,121,0,224,136,122,0,224,139,122,0,16,180,122,0,224,79,0,0,0,240,197,186,158,0,57,160,159,240,27,144,160,128,108,129,161,112,239,5,170,0,110,231,170,240,167,201,173,0,50,167,174,112,79,160,175,0,20,135,176,0,122,137,177,128,48,112,178,112,136,114,179,128,18,80,180,240,236,201,194,0,93,88,195,240,63,72,196,224,27,109,196,96,116,57,197,128,91,33,199,240,142,245,199,96,222,245,203,240,113,149,204,96,75,195,205,112,213,160,206,96,45,163,207,112,183,128,208,96,15,131,209,112,153,96,210,96,241,98,211,112,123,64,212,224,70,30,217,240,91,233,217,224,205,13,8,112,146,244,8,224,175,237,9,112,116,212,10,224,28,187,11,240,27,171,12,96,57,164,13,240,253,138,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,0,181,54,126,80,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,12,0,0,0,140,252,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,204,122,0,224,28,123,0,224,31,123,0,16,52,123,0,224,86,0,0,0,112,248,56,155,224,204,213,155,240,203,197,156,96,0,183,157,112,254,137,158,224,28,160,159,240,165,96,160,96,173,126,161,112,55,92,162,96,26,76,163,240,53,108,200,16,75,231,204,144,23,169,205,16,67,162,206,144,226,144,207,144,94,110,208,16,22,114,209,240,210,76,210,144,49,62,211,16,210,73,212,112,247,29,213,240,151,41,214,144,128,235,214,16,150,9,216,240,181,51,249,224,196,217,249,112,210,28,251,240,180,185,251,112,180,252,252,240,150,153,253,240,208,229,254,112,179,130,255,240,178,197,0,112,149,98,1,112,90,156,2,112,119,66,3,240,118,133,4,240,147,43,5,112,51,26,6,112,36,10,7,112,22,23,8,112,52,218,8,144,20,247,9,128,13,194,10,144,246,214,11,128,239,161,12,144,216,182,13,128,209,129,14,144,186,150,15,128,179,97,16,144,156,118,17,128,149,65,18,16,91,69,19,0,178,42,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,100,211,189,112,170,170,170,170,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,156,13,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,76,123,0,224,163,123,0,224,167,123,0,16,190,123,0,224,67,0,0,0,56,170,25,170,96,25,164,181,208,112,94,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,96,2,10,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,112,24,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,0,143,29,53,0,106,50,54,0,113,253,54,128,134,27,56,0,83,221,56,128,104,251,57,0,53,189,58,128,74,219,59,128,81,166,60,128,44,187,61,128,51,134,62,128,14,155,63,128,21,102,64,0,43,132,65,128,247,69,66,0,13,100,67,128,217,37,68,0,239,67,69,128,187,5,70,0,209,35,71,0,216,238,71,0,179,3,73,0,186,206,73,0,149,227,74,0,156,174,75,128,177,204,76,0,126,142,77,2,0,0,0,255,255,255,255,40,202,182,86,68,0,0,0,3,4,6,2,1,2,1,2,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,6,16,0,0,0,216,25,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,200,25,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,4,0,48,0,80,0,66,0,54,0,170,170,208,123,0,224,20,124,0,224,23,124,0,16,41,124,0,224,2,0,0,0,219,1,0,0,123,2,0,0,77,0,0,0,199,30,95,155,121,242,62,157,249,238,42,158,105,57,247,158,249,87,132,159,233,108,216,160,128,57,0,161,64,166,60,161,192,109,16,164,176,50,61,164,176,104,21,165,192,3,61,165,80,69,30,167,96,25,164,181,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,128,23,229,40,128,191,120,41,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,170,170,170,170,77,0,0,0,3,4,3,5,4,5,7,6,7,8,7,6,1,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,2,1,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,9,6,170,170,170,20,0,0,0,57,35,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,119,35,0,0,0,0,0,0,119,35,0,0,16,14,0,0,119,35,0,0,32,28,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,48,42,0,0,32,28,0,0,64,56,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,65,124,0,224,68,124,0,224,147,124,0,16,168,124,0,224,3,0,0,0,143,1,0,0,218,1,0,0,222,1,0,0,101,0,0,0,79,80,96,145,240,120,71,155,112,44,215,155,112,145,188,156,240,72,192,157,112,254,137,158,240,42,160,159,240,165,96,160,240,12,128,161,240,18,46,162,240,76,122,163,240,129,53,164,112,35,94,165,240,53,37,166,240,155,39,167,112,38,88,168,240,125,7,169,112,52,238,169,240,95,231,170,240,80,215,171,240,65,199,172,240,167,201,173,240,35,167,174,112,79,160,175,240,5,135,176,240,107,137,177,112,34,112,178,112,136,114,179,112,4,80,180,240,47,73,181,112,230,47,182,112,76,50,183,112,200,15,184,112,185,255,184,112,170,239,185,240,96,214,186,240,198,216,187,240,183,200,188,240,168,184,189,112,95,159,190,240,138,152,191,240,240,154,192,240,108,120,193,240,93,104,194,240,78,88,195,112,5,63,196,240,48,56,197,240,150,58,198,112,172,88,199,160,9,218,199,224,39,108,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,225,79,208,240,241,137,208,16,22,114,209,144,64,78,210,0,57,187,11,240,27,171,12,144,99,164,13,16,26,139,14,144,69,132,15,144,54,116,16,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,101,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,4,5,4,5,3,2,3,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,170,12,0,0,0,49,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,32,28,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,196,124,0,224,200,124,0,224,47,125,0,16,74,125,0,224,2,0,0,0,192,1,0,0,224,1,0,0,60,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,16,7,98,210,144,28,128,211,16,210,73,212,32,180,147,212,32,114,2,213,16,56,76,213,16,180,41,214,16,26,44,215,16,150,9,216,16,112,1,217,16,120,233,217,144,39,100,17,144,24,84,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,248,234,207,108,170,170,170,170,170,170,170,170,61,0,0,0,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,170,8,0,0,0,136,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,98,125,0,224,101,125,0,224,162,125,0,224,167,125,0,16,184,125,0,224,53,0,0,0,254,135,185,158,254,142,132,159,126,70,136,160,254,130,203,160,222,241,231,173,96,100,175,200,80,101,98,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,112,137,144,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,188,77,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,67,189,58,144,88,219,59,170,170,170,170,170,170,170,170,170,170,170,170,53,0,0,0,3,0,3,0,4,6,2,1,2,1,2,1,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,170,16,0,0,0,162,22,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,162,22,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,210,7,0,112,206,125,0,224,7,126,0,16,22,126,0,224,3,0,0,0,226,1,0,0,228,1,0,0,241,1,0,0,86,0,0,0,112,248,56,155,224,204,213,155,240,203,197,156,96,0,183,157,112,254,137,158,224,28,160,159,240,165,96,160,96,173,126,161,112,55,92,162,96,26,76,163,240,53,108,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,144,94,110,208,16,22,114,209,240,210,76,210,144,49,62,211,16,210,73,212,112,247,29,213,240,151,41,214,144,128,235,214,16,150,9,216,240,181,51,249,224,196,217,249,112,210,28,251,240,180,185,251,112,180,252,252,240,150,153,253,240,208,229,254,112,179,130,255,240,178,197,0,112,149,98,1,112,90,156,2,112,119,66,3,240,118,133,4,240,147,43,5,112,147,110,6,240,117,11,7,240,58,69,8,240,87,235,8,112,87,46,10,240,57,203,10,112,57,14,12,240,27,171,12,240,224,228,13,240,253,138,14,112,253,205,15,112,26,116,16,112,223,173,17,112,252,83,18,16,68,77,19,144,250,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,112,129,188,112,87,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,180,11,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,49,126,0,224,53,126,0,224,140,126,0,224,143,126,0,16,166,126,0,224,64,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,128,23,229,40,0,199,0,41,96,236,212,41,96,221,196,42,96,206,180,43,96,191,164,44,96,176,148,45,96,161,132,46,96,146,116,47,96,131,100,48,224,174,93,49,224,137,114,50,224,144,61,51,224,107,82,52,224,114,29,53,224,77,50,54,224,84,253,54,96,106,27,56,224,54,221,56,96,76,251,57,224,24,189,58,96,46,219,59,96,53,166,60,96,16,187,61,96,23,134,62,96,242,154,63,96,249,101,64,224,14,132,65,96,219,69,66,224,240,99,67,96,189,37,68,224,210,67,69,96,159,5,70,224,180,35,71,224,187,238,71,224,150,3,73,224,157,206,73,224,120,227,74,224,127,174,75,112,163,204,76,240,111,142,77,64,0,0,0,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,3,2,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,3,2,4,12,0,0,0,244,46,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,186,126,0,224,251,126,0,16,12,127,0,224,64,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,112,78,67,88,64,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,10,0,0,0,50,43,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,30,127,0,224,95,127,0,16,112,127,0,224,74,0,0,0,32,164,25,170,96,25,164,181,208,141,4,203,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,56,159,207,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,46,141,38,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,208,198,194,45,112,175,132,46,112,160,116,47,112,145,100,48,208,160,93,49,0,166,114,50,16,187,61,51,16,150,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,16,97,221,56,144,118,251,57,16,67,189,58,144,88,219,59,144,95,166,60,144,58,187,61,144,65,134,62,144,28,155,63,144,35,102,64,16,57,132,65,144,5,70,66,16,27,100,67,144,231,37,68,16,253,67,69,144,201,5,70,16,223,35,71,16,230,238,71,16,193,3,73,16,200,206,73,16,163,227,74,16,170,174,75,144,191,204,76,16,140,142,77,144,161,172,78,16,110,110,79,144,131,140,80,144,138,87,81,144,101,108,82,128,94,55,83,96,29,76,84,2,0,0,0,255,255,255,255,8,196,182,86,170,170,170,170,75,0,0,0,5,3,6,2,1,2,1,2,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,7,6,3,4,3,4,3,4,7,6,7,6,7,6,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,8,6,170,18,0,0,0,248,31,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,224,31,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,128,127,0,224,203,127,0,224,207,127,0,16,227,127,0,224,44,0,0,0,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,32,36,114,209,80,239,99,17,224,63,85,18,208,11,77,19,224,33,53,20,208,237,44,21,112,192,19,22,208,207,12,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,0,130,140,30,0,115,124,31,0,100,108,32,0,85,92,33,0,70,76,34,0,55,60,35,0,40,44,36,0,25,28,37,0,10,12,38,128,53,5,39,96,10,245,39,80,237,228,40,96,236,212,41,80,207,196,42,96,206,180,43,80,177,164,44,96,176,148,45,80,147,132,46,96,146,116,47,80,117,100,48,224,174,93,49,208,123,114,50,16,187,61,51,16,150,82,52,4,0,0,0,255,255,255,255,36,206,182,86,255,255,255,255,24,227,195,114,46,0,0,0,3,4,1,2,1,2,1,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,170,170,12,0,0,0,220,21,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,104,27,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,32,28,0,112,7,0,0,96,206,7,0,112,253,127,0,224,42,128,0,224,47,128,0,16,60,128,0,224,52,0,0,0,204,45,89,158,144,144,185,158,144,151,132,159,112,43,0,161,76,111,115,164,224,181,176,200,80,151,198,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,203,116,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,0,143,29,53,16,120,50,54,16,127,253,54,144,148,27,56,144,95,166,60,144,58,187,61,170,170,170,170,170,170,170,170,52,0,0,0,1,2,1,0,3,5,2,1,2,1,2,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,14,0,0,0,52,23,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,32,28,0,112,7,0,0,96,211,7,0,112,84,128,0,224,139,128,0,16,153,128,0,224,51,0,0,0,104,52,170,150,112,135,109,200,16,75,231,204,144,23,169,205,144,233,184,205,240,57,40,8,96,62,239,8,240,120,5,10,224,113,208,10,112,79,233,11,96,72,180,12,240,107,210,13,96,42,148,14,112,252,176,15,96,12,116,16,112,222,144,17,96,238,83,18,112,192,112,19,96,185,59,20,112,185,72,21,96,178,19,22,240,213,49,23,224,206,252,23,112,148,0,25,96,95,219,25,240,175,204,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,170,170,170,170,51,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,152,18,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,178,128,0,224,231,128,0,16,245,128,0,224,66,0,0,0,128,57,0,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,224,26,60,35,224,11,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,128,23,229,40,128,191,120,41,112,250,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,112,20,247,86,170,170,170,170,170,170,170,170,66,0,0,0,3,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,4,3,4,3,2,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,5,3,5,170,170,14,0,0,0,96,45,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,6,129,0,224,75,129,0,16,93,129,0,224,56,0,0,0,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,16,26,112,162,144,91,68,163,144,113,9,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,16,37,130,208,16,22,114,209,16,69,127,209,144,27,99,211,144,35,75,212,16,195,57,213,16,180,41,214,16,26,44,215,16,150,9,216,240,39,77,19,96,208,51,20,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,2,0,0,0,255,255,255,255,47,95,162,111,170,170,170,170,170,170,170,170,57,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,81,15,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,113,129,0,224,170,129,0,224,175,129,0,16,191,129,0,224,51,0,0,0,80,31,79,156,152,74,133,161,240,48,241,162,96,120,102,163,112,207,172,200,208,42,89,202,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,224,61,48,208,208,167,39,21,64,220,24,22,80,219,8,23,192,15,250,23,208,14,234,24,64,67,219,25,208,147,204,26,240,160,188,27,240,145,172,28,240,130,156,29,240,115,140,30,240,100,124,31,240,85,108,32,240,70,92,33,240,55,76,34,240,40,60,35,240,25,44,36,0,25,28,37,0,10,12,38,128,53,5,39,128,38,245,39,128,23,229,40,128,8,213,41,128,249,196,42,128,234,180,43,128,219,164,44,128,204,148,45,128,189,132,46,128,174,116,47,128,159,100,48,0,203,93,49,0,166,114,50,0,173,61,51,0,136,82,52,16,157,29,53,16,120,50,54,16,127,253,54,144,148,27,56,144,65,134,62,144,28,155,63,2,0,0,0,255,255,255,255,68,204,182,86,170,170,170,170,170,170,170,170,170,170,170,170,52,0,0,0,3,4,1,5,1,7,2,1,2,1,2,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,8,7,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,2,1,2,5,6,5,18,0,0,0,188,23,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,176,19,0,0,0,0,0,0,104,22,0,0,0,0,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,32,28,0,112,7,0,0,96,212,7,0,112,209,129,0,224,5,130,0,224,11,130,0,16,25,130,0,224,65,0,0,0,220,70,245,161,80,11,164,181,192,153,39,21,48,206,24,22,64,205,8,23,176,1,250,23,192,0,234,24,48,53,219,25,192,133,204,26,224,146,188,27,224,131,172,28,224,116,156,29,224,101,140,30,224,86,124,31,224,71,108,32,224,56,92,33,224,41,76,34,240,40,60,35,240,25,44,36,240,10,28,37,240,251,11,38,112,39,5,39,112,24,245,39,96,236,212,41,112,235,196,42,112,220,180,43,112,205,164,44,112,190,148,45,112,175,132,46,112,160,116,47,112,145,100,48,240,188,93,49,240,151,114,50,240,158,61,51,240,121,82,52,240,128,29,53,240,91,50,54,240,98,253,54,112,120,27,56,240,68,221,56,112,90,251,57,240,38,189,58,112,60,219,59,112,67,166,60,112,30,187,61,112,37,134,62,112,0,155,63,112,7,102,64,240,28,132,65,112,233,69,66,240,254,99,67,112,203,37,68,240,224,67,69,112,173,5,70,240,194,35,71,240,201,238,71,240,164,3,73,240,171,206,73,240,134,227,74,240,141,174,75,112,163,204,76,240,111,142,77,96,29,76,84,240,237,212,91,96,178,231,95,170,170,170,170,170,170,170,170,65,0,0,0,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,2,1,2,1,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,3,1,3,1,170,170,170,10,0,0,0,164,41,0,0,0,0,0,0,48,42,0,0,0,0,0,0,48,42,0,0,16,14,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,55,130,0,224,123,130,0,16,141,130,0,224,2,0,0,0,245,1,0,0,86,2,0,0,82,0,0,0,208,42,168,153,96,23,12,155,240,218,213,155,144,174,217,156,144,181,164,157,144,144,185,158,144,151,132,159,0,182,154,160,0,189,101,161,96,124,125,166,16,222,118,200,16,75,231,204,144,23,169,205,16,67,162,206,16,52,146,207,0,186,132,208,112,146,149,209,96,187,138,210,112,255,98,211,144,35,75,212,16,173,94,213,16,180,41,214,16,26,44,215,16,150,9,216,144,193,2,217,16,120,233,217,0,210,84,232,128,180,241,232,128,165,225,233,128,150,209,234,0,150,20,236,0,179,186,236,0,164,170,237,0,149,154,238,0,90,212,239,0,119,122,240,0,60,180,241,0,89,90,242,0,30,148,243,0,59,58,244,128,58,125,245,0,29,26,246,128,85,164,13,0,12,139,14,128,55,132,15,128,40,116,16,128,25,100,17,128,10,84,18,0,54,77,19,128,236,51,20,128,221,35,21,128,206,19,22,128,191,3,23,128,176,243,23,128,161,227,24,128,146,211,25,128,131,195,26,0,175,188,27,0,160,172,28,0,145,156,29,0,130,140,30,0,115,124,31,0,100,108,32,0,85,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,82,0,0,0,1,2,1,2,1,2,3,4,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,10,0,0,0,176,19,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,32,28,0,0,0,0,0,0,32,28,0,0,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,16,14,0,112,7,0,0,96,205,7,0,112,157,130,0,224,160,130,0,224,243,130,0,16,9,131,0,224,3,0,0,0,196,1,0,0,240,1,0,0,248,1,0,0,36,0,0,0,0,106,23,202,0,113,226,202,0,76,247,203,0,83,194,204,144,235,35,21,144,220,19,22,144,205,3,23,144,190,243,23,144,175,227,24,144,160,211,25,144,145,195,26,16,189,188,27,16,174,172,28,16,159,156,29,16,144,140,30,16,129,124,31,16,114,108,32,16,99,92,33,16,84,76,34,16,69,60,35,16,54,44,36,16,39,28,37,16,24,12,38,144,67,5,39,144,52,245,39,144,37,229,40,144,22,213,41,144,7,197,42,144,248,180,43,144,233,164,44,144,218,148,45,144,203,132,46,144,188,116,47,144,173,100,48,16,217,93,49,16,180,114,50,4,0,0,0,255,255,255,255,128,234,240,36,255,255,255,255,134,6,212,113,170,170,170,170,170,170,170,170,38,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,0,8,0,0,0,0,0,0,250,6,0,0,0,0,0,0,16,14,0,0,0,0,0,0,16,14,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,16,14,0,112,7,0,0,96,205,7,0,112,31,131,0,224,35,131,0,224,72,131,0,224,79,131,0,16,90,131,0,224,2,0,0,0,0,0,0,0,0,0,0,0,1,0,54,0,112,131,0,224,2,0,0,0,156,247,126,137,176,221,230,48,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,228,67,0,0,0,0,0,0,80,70,0,0,0,0,0,0,96,84,0,0,0,0,0,0,3,0,48,0,66,0,54,0,117,131,0,224,123,131,0,16,125,131,0,224,2,0,0,0,11,2,0,0,13,2,0,0,1,0,0,0,152,195,47,237,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,232,68,0,0,0,0,0,0,80,70,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,137,131,0,224,140,131,0,224,143,131,0,16,145,131,0,224,5,0,0,0,152,5,127,137,64,237,5,24,48,114,219,24,224,150,3,73,208,143,206,73,5,0,0,0,1,2,1,2,1,170,170,170,6,0,0,0,232,53,0,0,0,0,0,0,64,56,0,0,0,0,0,0,64,56,0,0,16,14,0,0,3,0,48,0,66,0,54,0,157,131,0,224,163,131,0,16,166,131,0,224,2,0,0,0,25,2,0,0,42,2,0,0,25,0,0,0,0,252,5,145,56,4,98,218,176,39,159,76,224,43,151,77,96,226,125,78,160,139,253,78,224,13,119,79,224,254,102,80,96,42,96,81,224,224,70,82,96,12,64,83,224,194,38,84,96,238,31,85,224,164,6,86,96,208,255,86,224,134,230,87,96,178,223,88,224,104,198,89,96,148,191,90,96,133,175,91,224,176,168,92,96,103,143,93,224,146,136,94,96,73,111,95,224,116,104,96,2,0,0,0,255,255,255,255,0,201,61,110,170,170,170,170,26,0,0,0,2,1,3,4,3,4,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,6,5,170,170,14,0,0,0,128,176,0,0,0,0,0,0,72,94,255,255,0,0,0,0,0,95,255,255,0,0,0,0,80,101,255,255,0,0,0,0,80,101,255,255,16,14,0,0,208,182,0,0,0,0,0,0,208,182,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,178,131,0,224,181,131,0,224,207,131,0,224,211,131,0,16,219,131,0,224,5,0,0,0,232,0,0,0,235,0,0,0,32,2,0,0,33,2,0,0,43,2,0,0,97,0,0,0,232,178,180,176,88,135,81,177,104,229,120,178,96,229,67,179,104,199,88,180,96,199,35,181,104,169,56,182,96,169,3,183,104,139,24,184,224,197,236,184,104,109,248,185,224,167,204,186,104,79,216,187,224,232,227,188,232,246,174,189,224,202,195,190,232,216,142,191,224,172,163,192,232,186,110,193,224,142,131,194,232,156,78,195,224,112,99,196,232,126,46,197,96,141,76,198,232,96,14,199,96,111,44,200,104,125,247,200,64,154,218,210,224,253,24,9,224,165,172,9,96,165,239,10,224,252,158,11,224,193,216,12,224,222,126,13,224,163,184,14,224,192,94,15,224,133,152,16,224,162,62,17,224,103,120,18,224,132,30,19,224,73,88,20,224,102,254,20,224,43,56,22,96,131,231,22,96,72,33,24,96,101,199,24,96,42,1,26,96,71,167,26,96,12,225,27,96,41,135,28,96,238,192,29,96,11,103,30,96,208,160,31,96,237,70,32,96,178,128,33,224,9,48,34,224,206,105,35,224,235,15,36,96,1,46,37,224,66,2,38,96,227,13,39,224,36,226,39,96,197,237,40,224,6,194,41,96,167,205,42,96,35,171,43,96,137,173,44,96,5,139,45,96,107,141,46,96,231,106,47,96,77,109,48,96,201,74,49,224,105,86,50,96,171,42,51,224,75,54,52,96,141,10,53,224,45,22,54,224,169,243,54,224,15,246,55,224,139,211,56,224,241,213,57,224,109,179,58,96,14,191,59,224,79,147,60,96,240,158,61,224,49,115,62,96,210,126,63,96,78,92,64,96,180,94,65,96,48,60,66,96,150,62,67,96,18,28,68,96,120,30,69,96,244,251,69,96,90,254,70,224,133,247,71,96,60,222,72,2,0,0,0,255,255,255,255,168,76,183,65,170,170,170,170,170,170,170,170,98,0,0,0,1,3,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,4,5,170,170,12,0,0,0,216,163,0,0,0,0,0,0,184,161,0,0,0,0,0,0,184,161,0,0,8,7,0,0,184,161,0,0,16,14,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,192,168,0,112,34,0,0,96,217,7,0,112,242,131,0,224,248,131,0,224,90,132,0,224,95,132,0,16,121,132,0,224,3,0,0,0,96,54,67,204,240,108,43,210,128,215,158,84,4,0,0,0,255,255,255,255,40,82,182,86,255,255,255,255,144,164,237,114,170,170,170,170,170,170,170,170,170,170,170,170,5,0,0,0,2,3,1,3,4,170,170,170,10,0,0,0,216,145,0,0,0,0,0,0,144,126,0,0,0,0,0,0,240,137,0,0,0,0,0,0,160,140,0,0,0,0,0,0,176,154,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,147,132,0,224,151,132,0,224,159,132,0,16,162,132,0,224,2,0,0,0,34,2,0,0,45,2,0,0,70,0,0,0,188,150,218,210,224,253,24,9,224,165,172,9,96,165,239,10,224,252,158,11,224,193,216,12,224,222,126,13,224,163,184,14,224,192,94,15,224,133,152,16,224,162,62,17,224,103,120,18,224,132,30,19,224,73,88,20,224,102,254,20,224,43,56,22,96,131,231,22,96,72,33,24,96,101,199,24,96,42,1,26,96,71,167,26,96,12,225,27,96,41,135,28,96,238,192,29,96,11,103,30,96,208,160,31,96,237,70,32,96,178,128,33,224,9,48,34,224,206,105,35,224,235,15,36,96,1,46,37,224,66,2,38,96,227,13,39,224,36,226,39,96,197,237,40,224,6,194,41,96,167,205,42,96,35,171,43,96,137,173,44,96,5,139,45,96,107,141,46,96,231,106,47,96,77,109,48,96,201,74,49,224,105,86,50,96,171,42,51,224,75,54,52,96,141,10,53,224,45,22,54,224,169,243,54,224,15,246,55,224,139,211,56,224,241,213,57,224,109,179,58,96,14,191,59,224,79,147,60,96,240,158,61,224,49,115,62,96,210,126,63,96,78,92,64,96,180,94,65,96,48,60,66,96,150,62,67,96,18,28,68,96,120,30,69,96,244,251,69,96,90,254,70,224,133,247,71,96,60,222,72,2,0,0,0,255,255,255,255,132,68,183,65,170,170,170,170,170,170,170,170,71,0,0,0,1,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,170,8,0,0,0,252,171,0,0,0,0,0,0,68,172,0,0,0,0,0,0,76,179,0,0,0,0,0,0,76,179,0,0,16,14,0,0,8,0,101,0,91,0,110,0,74,0,48,0,80,0,66,0,54,0,170,170,76,179,0,112,130,18,0,96,217,7,0,112,180,132,0,224,183,132,0,224,254,132,0,224,3,133,0,16,22,133,0,224,2,0,0,0,140,1,0,0,47,2,0,0,110,0,0,0,136,64,199,185,64,60,209,253,176,250,146,254,192,205,204,255,176,220,114,0,192,80,117,1,176,73,64,2,192,50,85,3,176,43,32,4,64,79,62,5,176,13,0,6,64,188,11,7,176,239,223,7,64,19,254,8,176,209,191,9,64,245,221,10,48,238,168,11,64,215,189,12,48,208,136,13,64,185,157,14,48,178,104,15,192,213,134,16,48,148,72,17,192,183,102,18,48,118,40,19,192,153,70,20,176,146,17,21,192,123,38,22,176,116,241,22,192,93,6,24,176,86,209,24,192,63,230,25,176,56,177,26,64,92,207,27,176,26,145,28,64,62,175,29,176,252,112,30,64,32,143,31,48,3,127,32,64,2,111,33,48,251,57,34,64,228,78,35,48,221,25,36,192,0,56,37,48,191,249,37,192,248,242,38,48,161,217,39,192,196,247,40,176,189,194,41,192,166,215,42,176,159,162,43,192,136,183,44,176,129,130,45,192,106,151,46,176,99,98,47,64,135,128,48,176,69,66,49,64,105,96,50,48,215,61,51,64,75,64,52,48,68,11,53,64,184,13,54,176,213,6,55,64,15,0,56,48,8,203,56,192,43,233,57,48,234,170,58,192,13,201,59,48,204,138,60,192,239,168,61,48,174,106,62,192,209,136,63,176,202,83,64,192,179,104,65,176,172,51,66,192,149,72,67,176,142,19,68,64,178,49,69,176,112,243,69,64,148,17,71,48,2,239,71,64,118,241,72,48,111,188,73,64,88,209,74,176,0,184,75,64,58,177,76,48,7,198,77,192,130,80,78,176,174,156,79,192,217,66,80,176,144,124,81,64,246,43,82,176,114,92,83,64,216,11,84,48,230,55,87,192,236,175,87,48,200,23,89,192,206,143,89,48,170,247,90,192,176,111,91,176,103,169,92,192,124,116,93,176,73,137,94,192,94,84,95,176,43,105,96,192,64,52,97,176,13,73,98,64,93,29,99,176,239,40,100,192,4,244,100,170,170,170,170,110,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,170,170,10,0,0,0,120,153,255,255,0,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,7,0,101,0,91,0,110,0,74,0,48,0,66,0,54,0,160,171,255,127,121,3,0,96,232,7,0,112,44,133,0,224,47,133,0,224,159,133,0,16,188,133,0,224,23,0,0,0,180,194,245,146,64,153,121,7,64,204,250,7,208,247,210,25,192,218,194,26,208,217,178,27,192,188,162,28,80,246,155,29,192,158,130,30,80,216,123,31,64,187,107,32,80,186,91,33,64,157,75,34,80,156,59,35,64,127,43,36,80,126,27,37,64,97,11,38,80,96,251,38,64,67,235,39,208,124,228,40,64,81,129,41,208,72,233,42,64,51,97,43,170,170,170,170,23,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,6,0,0,0,204,157,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,3,0,48,0,66,0,54,0,210,133,0,224,235,133,0,16,242,133,0,224,1,0,0,0,176,153,253,78,2,0,0,0,255,255,255,255,136,85,55,126,2,0,0,0,1,2,170,170,6,0,0,0,120,95,255,255,0,0,0,0,80,101,255,255,0,0,0,0,208,182,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,254,133,0,224,0,134,0,224,3,134,0,16,5,134,0,224,29,0,0,0,192,177,19,154,224,23,59,54,96,250,215,54,96,52,36,56,96,220,183,56,224,44,17,75,96,15,174,75,96,234,194,76,224,65,114,77,96,204,162,78,224,196,26,79,96,174,130,80,224,166,250,80,224,202,107,82,208,122,218,82,96,231,84,84,224,106,186,84,96,201,52,86,224,76,154,86,224,229,29,88,224,46,122,88,224,199,253,89,224,16,90,90,224,169,221,91,224,242,57,92,96,198,198,93,224,212,25,94,96,7,222,95,96,241,2,96,170,170,170,170,170,170,170,170,29,0,0,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,170,170,170,6,0,0,0,192,167,0,0,0,0,0,0,192,168,0,0,0,0,0,0,192,168,0,0,16,14,0,0,3,0,48,0,66,0,54,0,19,134,0,224,51,134,0,16,60,134,0,224,4,0,0,0,128,76,164,182,80,196,24,30,224,10,23,43,80,244,113,43,170,170,170,170,170,170,170,170,4,0,0,0,3,1,2,1,8,0,0,0,0,172,255,255,0,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,176,185,255,255,0,0,0,0,3,0,48,0,66,0,54,0,72,134,0,224,79,134,0,16,81,134,0,224,1,0,0,0,4,72,80,148,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,124,129,255,255,0,0,0,0,112,129,255,255,0,0,0,0,3,0,48,0,66,0,54,0,95,134,0,224,99,134,0,16,101,134,0,224,4,0,0,0,55,2,0,0,73,2,0,0,74,2,0,0,90,2,0,0,1,0,0,0,140,51,79,148,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,244,149,0,0,0,0,0,0,176,154,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,111,134,0,224,116,134,0,224,119,134,0,16,121,134,0,224,2,0,0,0,56,2,0,0,77,2,0,0,18,0,0,0,224,149,55,203,240,137,46,208,0,190,55,236,240,248,54,239,0,0,155,251,140,39,63,254,0,30,1,255,240,88,93,255,0,44,151,0,112,117,70,1,0,14,119,2,112,87,38,3,0,151,112,7,240,209,204,7,0,145,8,12,44,135,124,12,128,148,191,13,112,163,101,14,4,0,0,0,255,255,255,255,204,197,225,20,255,255,255,255,76,45,54,126,170,170,170,170,170,170,170,170,170,170,170,170,20,0,0,0,2,3,1,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,52,54,255,255,0,0,0,0,144,126,0,0,0,0,0,0,180,135,0,0,0,0,0,0,160,140,0,0,0,0,0,0,160,140,0,0,16,14,0,0,5,0,74,0,48,0,80,0,66,0,54,0,133,134,0,224,136,134,0,224,155,134,0,224,163,134,0,16,169,134,0,224,4,0,0,0,1,2,0,0,57,2,0,0,58,2,0,0,113,2,0,0,5,0,0,0,72,67,5,187,88,113,33,187,200,61,137,203,56,73,97,210,72,115,141,213,2,0,0,0,255,255,255,255,190,112,224,116,170,170,170,170,6,0,0,0,1,2,1,2,1,3,170,170,8,0,0,0,2,108,255,255,0,0,0,0,88,108,255,255,0,0,0,0,88,108,255,255,16,14,0,0,96,115,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,188,134,0,224,193,134,0,224,199,134,0,224,203,134,0,16,206,134,0,224,2,0,0,0,49,2,0,0,59,2,0,0,3,0,0,0,128,219,44,195,192,4,86,18,176,57,5,47,170,170,170,170,3,0,0,0,1,2,3,170,8,0,0,0,0,0,0,0,0,0,0,0,64,87,255,255,0,0,0,0,80,101,255,255,0,0,0,0,208,182,0,0,0,0,0,0,4,0,74,0,48,0,66,0,54,0,170,170,223,134,0,224,226,134,0,224,231,134,0,16,233,134,0,224,2,0,0,0,0,242,85,18,160,43,5,47,2,0,0,0,255,255,255,255,128,72,55,126,3,0,0,0,1,2,3,170,8,0,0,0,128,108,255,255,0,0,0,0,0,106,255,255,0,0,0,0,96,115,255,255,0,0,0,0,224,196,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,249,134,0,224,252,134,0,224,255,134,0,16,1,135,0,224,7,0,0,0,208,149,17,152,240,249,57,160,208,53,237,193,96,10,234,201,240,14,17,210,80,27,134,255,64,103,139,54,4,0,0,0,255,255,255,255,180,180,225,20,255,255,255,255,52,28,54,126,170,170,170,170,9,0,0,0,3,4,1,4,2,1,4,5,4,170,170,170,12,0,0,0,76,71,255,255,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,204,152,0,0,0,0,0,0,176,154,0,0,0,0,0,0,192,168,0,0,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,17,135,0,224,25,135,0,224,31,135,0,16,35,135,0,224,2,0,0,0,22,2,0,0,62,2,0,0,5,0,0,0,208,53,237,193,96,10,234,201,240,129,70,207,80,27,134,255,64,14,118,44,2,0,0,0,255,255,255,255,32,24,54,126,6,0,0,0,4,3,2,4,1,5,170,170,12,0,0,0,224,156,0,0,0,0,0,0,64,87,255,255,0,0,0,0,144,126,0,0,0,0,0,0,160,140,0,0,0,0,0,0,176,154,0,0,0,0,0,0,192,168,0,0,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,55,135,0,224,58,135,0,224,64,135,0,224,67,135,0,16,70,135,0,224,1,0,0,0,72,76,80,148,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,56,125,255,255,0,0,0,0,104,122,255,255,0,0,0,0,3,0,48,0,66,0,54,0,91,135,0,224,95,135,0,16,97,135,0,224,4,0,0,0,4,43,231,163,200,233,144,204,240,39,67,210,232,168,33,17,170,170,170,170,170,170,170,170,170,170,170,170,4,0,0,0,2,1,2,3,8,0,0,0,124,156,0,0,0,0,0,0,144,126,0,0,0,0,0,0,184,161,0,0,0,0,0,0,192,168,0,0,0,0,0,0,3,0,48,0,66,0,54,0,107,135,0,224,115,135,0,16,117,135,0,224,2,0,0,0,76,106,161,223,96,184,166,245,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,180,96,255,255,0,0,0,0,160,96,255,255,0,0,0,0,80,101,255,255,0,0,0,0,3,0,48,0,66,0,54,0,131,135,0,224,135,135,0,16,137,135,0,224,7,0,0,0,128,248,65,220,104,202,15,9,104,231,181,9,104,230,15,86,240,175,152,93,240,160,136,94,240,145,120,95,2,0,0,0,255,255,255,255,136,23,54,126,170,170,170,170,170,170,170,170,170,170,170,170,8,0,0,0,3,4,5,4,1,2,1,2,12,0,0,0,120,157,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,128,157,0,0,0,0,0,0,184,161,0,0,0,0,0,0,184,161,0,0,16,14,0,0,7,0,101,0,91,0,110,0,48,0,80,0,66,0,54,0,176,154,0,112,106,0,0,96,229,7,0,112,149,135,0,224,157,135,0,224,163,135,0,16,166,135,0,224,7,0,0,0,116,196,245,146,80,186,230,14,192,187,86,15,80,156,198,16,64,239,55,17,240,75,160,50,112,68,24,51,170,170,170,170,7,0,0,0,1,2,1,2,1,2,1,170,6,0,0,0,12,156,0,0,0,0,0,0,176,154,0,0,0,0,0,0,176,154,0,0,16,14,0,0,3,0,48,0,66,0,54,0,190,135,0,224,199,135,0,16,202,135,0,224,4,0,0,0,65,2,0,0,70,2,0,0,78,2,0,0,119,2,0,0,1,0,0,0,8,251,5,145,2,0,0,0,255,255,255,255,8,200,61,110,170,170,170,170,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,120,177,0,0,0,0,0,0,248,95,255,255,0,0,0,0,80,101,255,255,0,0,0,0,5,0,74,0,48,0,80,0,66,0,54,0,214,135,0,224,219,135,0,224,221,135,0,224,227,135,0,16,229,135,0,224,4,0,0,0,255,255,255,255,108,207,225,20,255,255,255,255,236,54,54,126,170,170,170,170,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,148,44,255,255,0,0,0,0,20,126,0,0,0,0,0,0,144,126,0,0,0,0,0,0,3,0,80,0,66,0,54,0,244,135,0,224,251,135,0,16,253,135,0,224,1,0,0,0,8,66,68,53,2,0,0,0,255,255,255,255,244,46,55,126,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,12,134,255,255,0,0,0,0,120,136,255,255,0,0,0,0,128,143,255,255,0,0,0,0,4,0,48,0,80,0,66,0,54,0,170,170,9,136,0,224,11,136,0,224,15,136,0,16,17,136,0,224,5,0,0,0,229,0,0,0,46,2,0,0,75,2,0,0,82,2,0,0,85,2,0,0,4,0,0,0,255,255,255,255,8,90,182,86,255,255,255,255,144,164,237,114,170,170,170,170,2,0,0,0,1,2,170,170,6,0,0,0,248,137,0,0,0,0,0,0,240,137,0,0,0,0,0,0,160,140,0,0,0,0,0,0,4,0,74,0,80,0,66,0,54,0,170,170,31,136,0,224,37,136,0,224,43,136,0,16,45,136,0,224,27,0,0,0,200,96,161,223,40,27,172,16,24,181,63,17,32,129,121,18,24,151,31,19,32,99,89,20,24,121,255,20,32,69,57,22,152,149,232,22,160,97,34,24,152,119,200,24,160,67,2,26,152,89,168,26,160,37,226,27,152,59,136,28,160,7,194,29,152,29,104,30,160,233,161,31,152,255,71,32,160,203,129,33,24,28,49,34,32,232,106,35,24,254,16,36,32,202,74,37,24,224,240,37,32,172,42,39,24,194,208,39,2,0,0,0,255,255,255,255,200,220,76,124,170,170,170,170,28,0,0,0,1,2,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,10,0,0,0,184,187,0,0,0,0,0,0,56,106,255,255,0,0,0,0,88,108,255,255,0,0,0,0,96,115,255,255,0,0,0,0,96,115,255,255,8,7,0,0,4,0,48,0,80,0,66,0,54,0,170,170,59,136,0,224,87,136,0,224,91,136,0,16,99,136,0,224,1,0,0,0,184,85,80,148,1,0,0,0,1,170,170,170,4,0,0,0,200,115,255,255,0,0,0,0,96,115,255,255,0,0,0,0,3,0,48,0,66,0,54,0,117,136,0,224,119,136,0,16,121,136,0,224,5,0,0,0,52,2,0,0,63,2,0,0,80,2,0,0,83,2,0,0,84,2,0,0,2,0,0,0,255,255,255,255,204,18,54,126,170,170,170,170,170,170,170,170,170,170,170,170,1,0,0,0,1,170,170,170,4,0,0,0,52,162,0,0,0,0,0,0,192,168,0,0,0,0,0,0,4,0,74,0,80,0,66,0,54,0,170,170,131,136,0,224,137,136,0,224,143,136,0,16,145,136,0,224,10,0,0,0,64,156,69,210,16,224,17,239,208,71,251,55,208,125,211,56,80,8,4,58,64,184,114,58,80,234,227,59,64,154,82,60,208,215,29,88,208,32,122,88,170,170,170,170,170,170,170,170,170,170,170,170,10,0,0,0,1,2,3,2,3,2,3,2,3,2,170,170,8,0,0,0,64,173,0,0,0,0,0,0,112,173,0,0,0,0,0,0,208,182,0,0,0,0,0,0,208,182,0,0,16,14,0,0,3,0,48,0,66,0,54,0,157,136,0,224,171,136,0,16,175,136,0,224,2,0,0,0,192,199,255,255,0,0,0,0,1,0,54,0,189,136,0,224,150,0,0,0,224,42,177,128,208,13,161,129,224,12,145,130,208,239,128,131,224,238,112,132,80,12,106,133,96,11,90,134,80,238,73,135,96,237,57,136,80,208,41,137,96,207,25,138,80,178,9,139,96,177,249,139,80,148,233,140,96,147,217,141,208,176,210,142,96,117,185,143,208,146,178,144,224,145,162,145,208,116,146,146,224,115,130,147,208,86,114,148,224,85,98,149,208,56,82,150,224,55,66,151,208,26,50,152,224,25,34,153,80,55,27,154,96,54,11,155,80,25,251,155,96,24,235,156,80,251,218,157,96,250,202,158,80,221,186,159,96,220,170,160,80,191,154,161,96,190,138,162,208,219,131,163,96,160,106,164,208,189,99,165,224,188,83,166,208,159,67,167,224,158,51,168,208,129,35,169,224,128,19,170,208,99,3,171,224,98,243,171,208,69,227,172,224,68,211,173,80,98,204,174,224,38,179,175,80,68,172,176,96,67,156,177,80,38,140,178,96,37,124,179,80,8,108,180,96,7,92,181,80,234,75,182,96,233,59,183,80,204,43,184,96,203,27,185,208,232,20,186,224,231,4,187,208,202,244,187,224,201,228,188,208,172,212,189,224,171,196,190,208,142,180,191,224,141,164,192,208,112,148,193,224,111,132,194,80,141,125,195,224,81,100,196,80,111,93,197,96,110,77,198,80,81,61,199,96,80,45,200,80,51,29,201,96,50,13,202,80,21,253,202,96,20,237,203,80,247,220,204,96,246,204,205,208,19,198,206,224,18,182,207,208,245,165,208,224,244,149,209,208,215,133,210,224,214,117,211,208,185,101,212,224,184,85,213,208,155,69,214,224,154,53,215,80,184,46,216,224,124,21,217,80,154,14,218,96,153,254,218,80,124,238,219,96,123,222,220,80,94,206,221,96,93,190,222,80,64,174,223,96,63,158,224,80,34,142,225,96,33,126,226,208,62,119,227,96,3,94,228,208,32,87,229,224,31,71,230,208,2,55,231,224,1,39,232,208,228,22,233,224,227,6,234,208,198,246,234,224,197,230,235,208,168,214,236,224,167,198,237,80,197,191,238,96,196,175,239,80,167,159,240,96,166,143,241,80,137,127,242,96,136,111,243,80,107,95,244,96,106,79,245,80,77,63,246,96,76,47,247,208,105,40,248,96,46,15,249,208,75,8,250,224,74,248,250,208,45,232,251,224,44,216,252,208,15,200,253,224,14,184,254,208,241,167,255,224,240,151,0,208,211,135,1,224,210,119,2,80,240,112,3,96,239,96,4,80,210,80,5,96,209,64,6,80,180,48,7,96,11,141,7,80,128,53,9,224,134,173,9,80,120,240,10,96,119,224,11,208,148,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,192,199,255,255,0,0,0,0,192,199,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,192,199,255,127,199,3,0,96,185,7,0,112,194,136,0,224,91,137,0,16,130,137,0,224,2,0,0,0,160,171,255,255,0,0,0,0,1,0,54,0,145,137,0,224,150,0,0,0,0,71,177,128,240,41,161,129,0,41,145,130,240,11,129,131,0,11,113,132,112,40,106,133,128,39,90,134,112,10,74,135,128,9,58,136,112,236,41,137,128,235,25,138,112,206,9,139,128,205,249,139,112,176,233,140,128,175,217,141,240,204,210,142,128,145,185,143,240,174,178,144,0,174,162,145,240,144,146,146,0,144,130,147,240,114,114,148,0,114,98,149,240,84,82,150,0,84,66,151,240,54,50,152,0,54,34,153,112,83,27,154,128,82,11,155,112,53,251,155,128,52,235,156,112,23,219,157,128,22,203,158,112,249,186,159,128,248,170,160,112,219,154,161,128,218,138,162,240,247,131,163,128,188,106,164,240,217,99,165,0,217,83,166,240,187,67,167,0,187,51,168,240,157,35,169,0,157,19,170,240,127,3,171,0,127,243,171,240,97,227,172,0,97,211,173,112,126,204,174,0,67,179,175,112,96,172,176,128,95,156,177,112,66,140,178,128,65,124,179,112,36,108,180,128,35,92,181,112,6,76,182,128,5,60,183,112,232,43,184,128,231,27,185,240,4,21,186,0,4,5,187,240,230,244,187,0,230,228,188,240,200,212,189,0,200,196,190,240,170,180,191,0,170,164,192,240,140,148,193,0,140,132,194,112,169,125,195,0,110,100,196,112,139,93,197,128,138,77,198,112,109,61,199,128,108,45,200,112,79,29,201,128,78,13,202,112,49,253,202,128,48,237,203,112,19,221,204,128,18,205,205,240,47,198,206,0,47,182,207,240,17,166,208,0,17,150,209,240,243,133,210,0,243,117,211,240,213,101,212,0,213,85,213,240,183,69,214,0,183,53,215,112,212,46,216,0,153,21,217,112,182,14,218,128,181,254,218,112,152,238,219,128,151,222,220,112,122,206,221,128,121,190,222,112,92,174,223,128,91,158,224,112,62,142,225,128,61,126,226,240,90,119,227,128,31,94,228,240,60,87,229,0,60,71,230,240,30,55,231,0,30,39,232,240,0,23,233,0,0,7,234,240,226,246,234,0,226,230,235,240,196,214,236,0,196,198,237,112,225,191,238,128,224,175,239,112,195,159,240,128,194,143,241,112,165,127,242,128,164,111,243,112,135,95,244,128,134,79,245,112,105,63,246,128,104,47,247,240,133,40,248,128,74,15,249,240,103,8,250,0,103,248,250,240,73,232,251,0,73,216,252,240,43,200,253,0,43,184,254,240,13,168,255,0,13,152,0,240,239,135,1,0,239,119,2,112,12,113,3,128,11,97,4,112,238,80,5,128,237,64,6,112,208,48,7,128,39,141,7,112,156,53,9,0,163,173,9,112,148,240,10,128,147,224,11,240,176,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,160,171,255,255,0,0,0,0,160,171,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,160,171,255,127,199,3,0,96,185,7,0,112,150,137,0,224,47,138,0,16,86,138,0,224,2,0,0,0,176,185,255,255,0,0,0,0,1,0,54,0,101,138,0,224,150,0,0,0,240,56,177,128,224,27,161,129,240,26,145,130,224,253,128,131,240,252,112,132,96,26,106,133,112,25,90,134,96,252,73,135,112,251,57,136,96,222,41,137,112,221,25,138,96,192,9,139,112,191,249,139,96,162,233,140,112,161,217,141,224,190,210,142,112,131,185,143,224,160,178,144,240,159,162,145,224,130,146,146,240,129,130,147,224,100,114,148,240,99,98,149,224,70,82,150,240,69,66,151,224,40,50,152,240,39,34,153,96,69,27,154,112,68,11,155,96,39,251,155,112,38,235,156,96,9,219,157,112,8,203,158,96,235,186,159,112,234,170,160,96,205,154,161,112,204,138,162,224,233,131,163,112,174,106,164,224,203,99,165,240,202,83,166,224,173,67,167,240,172,51,168,224,143,35,169,240,142,19,170,224,113,3,171,240,112,243,171,224,83,227,172,240,82,211,173,96,112,204,174,240,52,179,175,96,82,172,176,112,81,156,177,96,52,140,178,112,51,124,179,96,22,108,180,112,21,92,181,96,248,75,182,112,247,59,183,96,218,43,184,112,217,27,185,224,246,20,186,240,245,4,187,224,216,244,187,240,215,228,188,224,186,212,189,240,185,196,190,224,156,180,191,240,155,164,192,224,126,148,193,240,125,132,194,96,155,125,195,240,95,100,196,96,125,93,197,112,124,77,198,96,95,61,199,112,94,45,200,96,65,29,201,112,64,13,202,96,35,253,202,112,34,237,203,96,5,221,204,112,4,205,205,224,33,198,206,240,32,182,207,224,3,166,208,240,2,150,209,224,229,133,210,240,228,117,211,224,199,101,212,240,198,85,213,224,169,69,214,240,168,53,215,96,198,46,216,240,138,21,217,96,168,14,218,112,167,254,218,96,138,238,219,112,137,222,220,96,108,206,221,112,107,190,222,96,78,174,223,112,77,158,224,96,48,142,225,112,47,126,226,224,76,119,227,112,17,94,228,224,46,87,229,240,45,71,230,224,16,55,231,240,15,39,232,224,242,22,233,240,241,6,234,224,212,246,234,240,211,230,235,224,182,214,236,240,181,198,237,96,211,191,238,112,210,175,239,96,181,159,240,112,180,143,241,96,151,127,242,112,150,111,243,96,121,95,244,112,120,79,245,96,91,63,246,112,90,47,247,224,119,40,248,112,60,15,249,224,89,8,250,240,88,248,250,224,59,232,251,240,58,216,252,224,29,200,253,240,28,184,254,224,255,167,255,240,254,151,0,224,225,135,1,240,224,119,2,96,254,112,3,112,253,96,4,96,224,80,5,112,223,64,6,96,194,48,7,112,25,141,7,96,142,53,9,240,148,173,9,96,134,240,10,112,133,224,11,224,162,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,176,185,255,255,0,0,0,0,176,185,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,176,185,255,127,199,3,0,96,185,7,0,112,106,138,0,224,3,139,0,16,42,139,0,224,2,0,0,0,96,115,255,255,0,0,0,0,1,0,54,0,57,139,0,224,2,0,0,0,144,157,255,255,0,0,0,0,1,0,54,0,62,139,0,224,150,0,0,0,16,85,177,128,0,56,161,129,16,55,145,130,0,26,129,131,16,25,113,132,128,54,106,133,144,53,90,134,128,24,74,135,144,23,58,136,128,250,41,137,144,249,25,138,128,220,9,139,144,219,249,139,128,190,233,140,144,189,217,141,0,219,210,142,144,159,185,143,0,189,178,144,16,188,162,145,0,159,146,146,16,158,130,147,0,129,114,148,16,128,98,149,0,99,82,150,16,98,66,151,0,69,50,152,16,68,34,153,128,97,27,154,144,96,11,155,128,67,251,155,144,66,235,156,128,37,219,157,144,36,203,158,128,7,187,159,144,6,171,160,128,233,154,161,144,232,138,162,0,6,132,163,144,202,106,164,0,232,99,165,16,231,83,166,0,202,67,167,16,201,51,168,0,172,35,169,16,171,19,170,0,142,3,171,16,141,243,171,0,112,227,172,16,111,211,173,128,140,204,174,16,81,179,175,128,110,172,176,144,109,156,177,128,80,140,178,144,79,124,179,128,50,108,180,144,49,92,181,128,20,76,182,144,19,60,183,128,246,43,184,144,245,27,185,0,19,21,186,16,18,5,187,0,245,244,187,16,244,228,188,0,215,212,189,16,214,196,190,0,185,180,191,16,184,164,192,0,155,148,193,16,154,132,194,128,183,125,195,16,124,100,196,128,153,93,197,144,152,77,198,128,123,61,199,144,122,45,200,128,93,29,201,144,92,13,202,128,63,253,202,144,62,237,203,128,33,221,204,144,32,205,205,0,62,198,206,16,61,182,207,0,32,166,208,16,31,150,209,0,2,134,210,16,1,118,211,0,228,101,212,16,227,85,213,0,198,69,214,16,197,53,215,128,226,46,216,16,167,21,217,128,196,14,218,144,195,254,218,128,166,238,219,144,165,222,220,128,136,206,221,144,135,190,222,128,106,174,223,144,105,158,224,128,76,142,225,144,75,126,226,0,105,119,227,144,45,94,228,0,75,87,229,16,74,71,230,0,45,55,231,16,44,39,232,0,15,23,233,16,14,7,234,0,241,246,234,16,240,230,235,0,211,214,236,16,210,198,237,128,239,191,238,144,238,175,239,128,209,159,240,144,208,143,241,128,179,127,242,144,178,111,243,128,149,95,244,144,148,79,245,128,119,63,246,144,118,47,247,0,148,40,248,144,88,15,249,0,118,8,250,16,117,248,250,0,88,232,251,16,87,216,252,0,58,200,253,16,57,184,254,0,28,168,255,16,27,152,0,0,254,135,1,16,253,119,2,128,26,113,3,144,25,97,4,128,252,80,5,144,251,64,6,128,222,48,7,144,53,141,7,128,170,53,9,16,177,173,9,128,162,240,10,144,161,224,11,0,191,217,12,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,144,157,255,255,0,0,0,0,144,157,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,144,157,255,127,199,3,0,96,185,7,0,112,67,139,0,224,219,139,0,16,2,140,0,224,2,0,0,0,128,143,255,255,0,0,0,0,1,0,54,0,17,140,0,224,150,0,0,0,32,99,177,128,16,70,161,129,32,69,145,130,16,40,129,131,32,39,113,132,144,68,106,133,160,67,90,134,144,38,74,135,160,37,58,136,144,8,42,137,160,7,26,138,144,234,9,139,160,233,249,139,144,204,233,140,160,203,217,141,16,233,210,142,160,173,185,143,16,203,178,144,32,202,162,145,16,173,146,146,32,172,130,147,16,143,114,148,32,142,98,149,16,113,82,150,32,112,66,151,16,83,50,152,32,82,34,153,144,111,27,154,160,110,11,155,144,81,251,155,160,80,235,156,144,51,219,157,160,50,203,158,144,21,187,159,160,20,171,160,144,247,154,161,160,246,138,162,16,20,132,163,160,216,106,164,16,246,99,165,32,245,83,166,16,216,67,167,32,215,51,168,16,186,35,169,32,185,19,170,16,156,3,171,32,155,243,171,16,126,227,172,32,125,211,173,144,154,204,174,32,95,179,175,144,124,172,176,160,123,156,177,144,94,140,178,160,93,124,179,144,64,108,180,160,63,92,181,144,34,76,182,160,33,60,183,144,4,44,184,160,3,28,185,16,33,21,186,32,32,5,187,16,3,245,187,32,2,229,188,16,229,212,189,32,228,196,190,16,199,180,191,32,198,164,192,16,169,148,193,32,168,132,194,144,197,125,195,32,138,100,196,144,167,93,197,160,166,77,198,144,137,61,199,160,136,45,200,144,107,29,201,160,106,13,202,144,77,253,202,160,76,237,203,144,47,221,204,160,46,205,205,16,76,198,206,32,75,182,207,16,46,166,208,32,45,150,209,16,16,134,210,32,15,118,211,16,242,101,212,32,241,85,213,16,212,69,214,32,211,53,215,144,240,46,216,32,181,21,217,144,210,14,218,160,209,254,218,144,180,238,219,160,179,222,220,144,150,206,221,160,149,190,222,144,120,174,223,160,119,158,224,144,90,142,225,160,89,126,226,16,119,119,227,160,59,94,228,16,89,87,229,32,88,71,230,16,59,55,231,32,58,39,232,16,29,23,233,32,28,7,234,16,255,246,234,32,254,230,235,16,225,214,236,32,224,198,237,144,253,191,238,160,252,175,239,144,223,159,240,160,222,143,241,144,193,127,242,160,192,111,243,144,163,95,244,160,162,79,245,144,133,63,246,160,132,47,247,16,162,40,248,160,102,15,249,16,132,8,250,32,131,248,250,16,102,232,251,32,101,216,252,16,72,200,253,32,71,184,254,16,42,168,255,32,41,152,0,16,12,136,1,32,11,120,2,144,40,113,3,160,39,97,4,144,10,81,5,160,9,65,6,144,236,48,7,160,67,141,7,144,184,53,9,32,191,173,9,144,176,240,10,160,175,224,11,16,205,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,128,143,255,255,0,0,0,0,128,143,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,128,143,255,127,199,3,0,96,185,7,0,112,22,140,0,224,175,140,0,16,214,140,0,224,2,0,0,0,112,129,255,255,0,0,0,0,1,0,54,0,229,140,0,224,150,0,0,0,48,113,177,128,32,84,161,129,48,83,145,130,32,54,129,131,48,53,113,132,160,82,106,133,176,81,90,134,160,52,74,135,176,51,58,136,160,22,42,137,176,21,26,138,160,248,9,139,176,247,249,139,160,218,233,140,176,217,217,141,32,247,210,142,176,187,185,143,32,217,178,144,48,216,162,145,32,187,146,146,48,186,130,147,32,157,114,148,48,156,98,149,32,127,82,150,48,126,66,151,32,97,50,152,48,96,34,153,160,125,27,154,176,124,11,155,160,95,251,155,176,94,235,156,160,65,219,157,176,64,203,158,160,35,187,159,176,34,171,160,160,5,155,161,176,4,139,162,32,34,132,163,176,230,106,164,32,4,100,165,48,3,84,166,32,230,67,167,48,229,51,168,32,200,35,169,48,199,19,170,32,170,3,171,48,169,243,171,32,140,227,172,48,139,211,173,160,168,204,174,48,109,179,175,160,138,172,176,176,137,156,177,160,108,140,178,176,107,124,179,160,78,108,180,176,77,92,181,160,48,76,182,176,47,60,183,160,18,44,184,176,17,28,185,32,47,21,186,48,46,5,187,32,17,245,187,48,16,229,188,32,243,212,189,48,242,196,190,32,213,180,191,48,212,164,192,32,183,148,193,48,182,132,194,160,211,125,195,48,152,100,196,160,181,93,197,176,180,77,198,160,151,61,199,176,150,45,200,160,121,29,201,176,120,13,202,160,91,253,202,176,90,237,203,160,61,221,204,176,60,205,205,32,90,198,206,48,89,182,207,32,60,166,208,48,59,150,209,32,30,134,210,48,29,118,211,32,0,102,212,48,255,85,213,32,226,69,214,48,225,53,215,160,254,46,216,48,195,21,217,160,224,14,218,176,223,254,218,160,194,238,219,176,193,222,220,160,164,206,221,176,163,190,222,160,134,174,223,176,133,158,224,160,104,142,225,176,103,126,226,32,133,119,227,176,73,94,228,32,103,87,229,48,102,71,230,32,73,55,231,48,72,39,232,32,43,23,233,48,42,7,234,32,13,247,234,48,12,231,235,32,239,214,236,48,238,198,237,160,11,192,238,176,10,176,239,160,237,159,240,176,236,143,241,160,207,127,242,176,206,111,243,160,177,95,244,176,176,79,245,160,147,63,246,176,146,47,247,32,176,40,248,176,116,15,249,32,146,8,250,48,145,248,250,32,116,232,251,48,115,216,252,32,86,200,253,48,85,184,254,32,56,168,255,48,55,152,0,32,26,136,1,48,25,120,2,160,54,113,3,176,53,97,4,160,24,81,5,176,23,65,6,160,250,48,7,176,81,141,7,160,198,53,9,48,205,173,9,160,190,240,10,176,189,224,11,32,219,217,12,170,170,170,170,170,170,170,170,150,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,170,170,4,0,0,0,112,129,255,255,0,0,0,0,112,129,255,255,16,14,0,0,6,0,101,0,91,0,110,0,48,0,66,0,54,0,170,170,112,129,255,127,199,3,0,96,185,7,0,112,234,140,0,224,131,141,0,16,170,141,0,224,126,2,0,0,101,1,0,112,113,1,0,112,64,0,0,112,18,0,0,112,60,0,0,112,206,23,0,32,5,0,0,112,48,0,0,112,18,24,0,32,48,0,0,112,48,0,0,112,5,0,0,112,36,0,0,112,5,0,0,112,40,24,0,32,43,0,0,112,36,0,0,112,43,0,0,112,224,24,0,32,86,26,0,32,166,26,0,32,5,0,0,112,5,0,0,112,48,0,0,112,48,0,0,112,36,0,0,112,12,28,0,32,5,0,0,112,43,0,0,112,43,0,0,112,47,28,0,32,110,28,0,32,48,0,0,112,170,28,0,32,43,0,0,112,36,0,0,112,202,28,0,32,36,0,0,112,5,0,0,112,36,0,0,112,43,0,0,112,43,0,0,112,36,0,0,112,230,28,0,32,30,0,0,112,30,0,0,112,48,0,0,112,252,28,0,32,35,29,0,32,56,29,0,32,36,0,0,112,5,0,0,112,5,0,0,112,36,0,0,112,82,29,0,32,5,0,0,112,145,29,0,32,210,29,0,32,47,30,0,32,182,30,0,32,66,31,0,32,191,0,0,112,191,0,0,112,152,31,0,32,1,32,0,32,109,32,0,32,65,0,0,112,210,32,0,32,56,33,0,32,161,33,0,32,9,34,0,32,113,34,0,32,212,34,0,32,61,35,0,32,165,35,0,32,13,36,0,32,117,36,0,32,191,0,0,112,237,36,0,32,183,0,0,112,59,0,0,112,79,37,0,32,175,37,0,32,213,37,0,32,11,38,0,32,150,38,0,32,191,0,0,112,208,38,0,32,228,38,0,32,106,39,0,32,64,0,0,112,228,39,0,32,106,40,0,32,178,40,0,32,203,40,0,32,65,0,0,112,224,40,0,32,183,0,0,112,213,41,0,32,58,42,0,32,155,42,0,32,183,0,0,112,67,0,0,112,186,42,0,32,186,0,0,112,58,43,0,32,191,0,0,112,118,43,0,32,2,44,0,32,96,44,0,32,244,44,0,32,117,45,0,32,191,0,0,112,254,45,0,32,62,46,0,32,85,46,0,32,218,0,0,112,25,47,0,32,132,0,0,112,93,47,0,32,207,47,0,32,181,0,0,112,176,48,0,32,43,49,0,32,191,0,0,112,191,0,0,112,78,49,0,32,102,49,0,32,126,49,0,32,97,50,0,32,4,51,0,32,45,51,0,32,121,51,0,32,13,52,0,32,94,52,0,32,194,52,0,32,13,53,0,32,64,53,0,32,146,53,0,32,235,53,0,32,132,0,0,112,98,54,0,32,218,54,0,32,13,55,0,32,68,0,0,112,142,55,0,32,65,56,0,32,205,56,0,32,133,0,0,112,191,0,0,112,228,56,0,32,13,57,0,32,195,57,0,32,146,0,0,112,191,0,0,112,14,58,0,32,55,58,0,32,115,58,0,32,191,0,0,112,136,58,0,32,192,58,0,32,37,59,0,32,70,0,0,112,162,59,0,32,0,60,0,32,80,60,0,32,192,60,0,32,12,61,0,32,218,61,0,32,67,62,0,32,199,62,0,32,219,0,0,112,191,0,0,112,219,0,0,112,183,63,0,32,219,0,0,112,62,64,0,32,137,64,0,32,28,65,0,32,166,65,0,32,50,66,0,32,190,66,0,32,39,67,0,32,72,67,0,32,142,0,0,112,100,67,0,32,138,67,0,32,217,67,0,32,191,0,0,112,198,0,0,112,19,68,0,32,64,68,0,32,241,68,0,32,224,0,0,112,96,69,0,32,165,69,0,32,250,69,0,32,104,70,0,32,169,70,0,32,67,0,0,112,218,0,0,112,225,70,0,32,156,71,0,32,206,71,0,32,86,72,0,32,222,72,0,32,110,0,0,112,98,73,0,32,191,0,0,112,106,74,0,32,191,0,0,112,191,0,0,112,191,0,0,112,191,0,0,112,159,74,0,32,185,74,0,32,244,74,0,32,219,0,0,112,142,75,0,32,130,76,0,32,191,0,0,112,64,77,0,32,191,0,0,112,214,77,0,32,139,78,0,32,14,79,0,32,113,0,0,112,56,79,0,32,81,79,0,32,75,2,0,112,214,79,0,32,240,79,0,32,43,2,0,112,108,80,0,32,122,80,0,32,43,2,0,112,55,1,0,112,138,80,0,32,164,80,0,32,191,1,0,112,55,1,0,112,248,80,0,32,119,81,0,32,223,81,0,32,50,82,0,32,134,82,0,32,190,82,0,32,246,0,0,112,24,83,0,32,111,83,0,32,51,1,0,112,216,83,0,32,238,83,0,32,88,84,0,32,188,84,0,32,24,85,0,32,35,1,0,112,32,1,0,112,130,85,0,32,73,1,0,112,60,1,0,112,60,1,0,112,165,85,0,32,9,1,0,112,80,86,0,32,115,86,0,32,140,86,0,32,162,86,0,32,213,86,0,32,83,87,0,32,141,89,0,32,60,1,0,112,205,91,0,32,243,91,0,32,97,92,0,32,178,92,0,32,26,93,0,32,204,1,0,112,55,93,0,32,76,93,0,32,229,93,0,32,0,94,0,32,103,94,0,32,138,94,0,32,75,1,0,112,160,94,0,32,29,1,0,112,14,95,0,32,49,95,0,32,154,95,0,32,61,1,0,112,200,95,0,32,55,1,0,112,38,1,0,112,57,96,0,32,162,96,0,32,184,96,0,32,222,96,0,32,11,1,0,112,52,97,0,32,159,97,0,32,8,98,0,32,110,98,0,32,196,98,0,32,252,0,0,112,225,98,0,32,244,98,0,32,8,99,0,32,98,99,0,32,186,99,0,32,80,1,0,112,206,99,0,32,17,1,0,112,58,100,0,32,109,100,0,32,166,100,0,32,231,100,0,32,13,101,0,32,118,101,0,32,192,101,0,32,245,101,0,32,72,102,0,32,181,102,0,32,24,1,0,112,69,1,0,112,204,102,0,32,238,102,0,32,88,103,0,32,40,1,0,112,174,103,0,32,73,1,0,112,194,103,0,32,50,104,0,32,252,0,0,112,154,104,0,32,2,105,0,32,24,105,0,32,132,105,0,32,231,105,0,32,173,106,0,32,61,107,0,32,130,107,0,32,158,107,0,32,88,1,0,112,220,107,0,32,191,1,0,112,154,108,0,32,5,0,0,112,174,108,0,32,5,0,0,112,25,109,0,32,113,1,0,112,155,109,0,32,204,109,0,32,85,110,0,32,113,1,0,112,103,1,0,112,132,110,0,32,176,110,0,32,63,111,0,32,106,1,0,112,117,111,0,32,214,111,0,32,92,112,0,32,113,1,0,112,101,1,0,112,144,112,0,32,97,1,0,112,96,1,0,112,20,113,0,32,103,1,0,112,107,1,0,112,110,1,0,112,98,1,0,112,204,0,0,112,9,1,0,112,198,0,0,112,177,0,0,112,204,0,0,112,157,0,0,112,43,0,0,112,193,1,0,112,209,0,0,112,98,0,0,112,98,0,0,112,60,1,0,112,129,0,0,112,224,0,0,112,196,0,0,112,219,0,0,112,113,0,0,112,209,0,0,112,221,0,0,112,196,0,0,112,223,0,0,112,202,0,0,112,47,2,0,112,130,0,0,112,48,0,0,112,222,1,0,112,188,1,0,112,183,0,0,112,174,0,0,112,18,0,0,112,199,1,0,112,47,113,0,32,149,1,0,112,54,113,0,32,59,113,0,32,64,113,0,32,69,113,0,32,74,113,0,32,79,113,0,32,84,113,0,32,89,113,0,32,94,113,0,32,99,113,0,32,104,113,0,32,109,113,0,32,149,1,0,112,114,113,0,32,119,113,0,32,124,113,0,32,129,113,0,32,134,113,0,32,139,113,0,32,144,113,0,32,149,113,0,32,154,113,0,32,159,113,0,32,164,113,0,32,169,113,0,32,174,113,0,32,179,113,0,32,149,1,0,112,149,1,0,112,181,1,0,112,193,113,0,32,181,1,0,112,200,113,0,32,181,1,0,112,193,1,0,112,248,113,0,32,99,114,0,32,189,114,0,32,212,1,0,112,9,115,0,32,121,115,0,32,224,1,0,112,29,116,0,32,121,116,0,32,229,116,0,32,248,1,0,112,87,117,0,32,191,1,0,112,44,118,0,32,218,118,0,32,212,1,0,112,32,119,0,32,212,1,0,112,210,119,0,32,212,1,0,112,83,120,0,32,209,1,0,112,183,120,0,32,5,121,0,32,213,121,0,32,190,1,0,112,191,122,0,32,193,1,0,112,65,123,0,32,197,123,0,32,202,1,0,112,58,124,0,32,222,1,0,112,189,124,0,32,43,1,0,112,191,1,0,112,87,125,0,32,190,1,0,112,193,125,0,32,39,126,0,32,173,126,0,32,25,127,0,32,226,1,0,112,190,1,0,112,123,127,0,32,246,127,0,32,190,1,0,112,73,128,0,32,191,1,0,112,168,128,0,32,252,128,0,32,197,1,0,112,108,129,0,32,209,1,0,112,248,1,0,112,226,1,0,112,198,129,0,32,44,130,0,32,152,130,0,32,20,131,0,32,190,1,0,112,209,1,0,112,99,131,0,32,115,131,0,32,212,1,0,112,212,1,0,112,149,1,0,112,149,1,0,112,149,1,0,112,149,1,0,112,149,1,0,112,57,2,0,112,18,1,0,112,132,0,0,112,32,1,0,112,5,0,0,112,48,0,0,112,132,131,0,32,252,0,0,112,80,1,0,112,48,0,0,112,13,2,0,112,11,1,0,112,150,131,0,32,173,131,0,32,48,0,0,112,11,1,0,112,66,1,0,112,24,1,0,112,70,1,0,112,143,0,0,112,70,1,0,112,62,2,0,112,56,0,0,112,193,1,0,112,42,2,0,112,186,0,0,112,110,0,0,112,218,0,0,112,161,0,0,112,166,0,0,112,82,1,0,112,43,2,0,112,43,2,0,112,45,2,0,112,110,0,0,112,27,1,0,112,186,0,0,112,60,1,0,112,191,0,0,112,152,0,0,112,152,0,0,112,234,131,0,32,134,132,0,32,173,132,0,32,31,133,0,32,75,2,0,112,199,133,0,32,249,133,0,32,59,2,0,112,12,134,0,32,67,134,0,32,80,2,0,112,90,134,0,32,106,134,0,32,126,134,0,32,180,134,0,32,215,134,0,32,57,2,0,112,242,134,0,32,10,135,0,32,48,135,0,32,83,135,0,32,80,2,0,112,102,135,0,32,70,2,0,112,126,135,0,32,144,135,0,32,179,135,0,32,209,135,0,32,236,135,0,32,4,136,0,32,24,136,0,32,55,2,0,112,55,2,0,112,52,136,0,32,110,136,0,32,56,2,0,112,70,2,0,112,126,136,0,32,150,136,0,32,184,136,0,32,75,2,0,112,80,2,0,112,80,2,0,112,75,2,0,112,245,1,0,112,210,1,0,112,63,1,0,112,59,1,0,112,55,2,0,112,61,1,0,112,192,136,0,32,135,137,0,32,148,137,0,32,91,138,0,32,104,138,0,32,47,139,0,32,60,139,0,32,65,139,0,32,7,140,0,32,20,140,0,32,219,140,0,32,232,140,0,32,175,141,0,32,204,1,0,112,181,1,0,112,60,0,0,112,59,0,0,112,186,0,0,112,98,0,0,112,132,0,0,112,174,0,0,112,57,2,0,112,133,0,0,112,111,0,0,112,110,0,0,112,152,0,0,112,152,0,0,112,70,2,0,112,181,1,0,112,181,1,0,112,17,1,0,112,219,1,0,112,210,1,0,112,181,1,0,112,5,0,132,0,13,1,138,0,32,0,42,0,115,39,0,144,242,41,0,144,147,23,0,32,133,3,0,96,185,141,0,128
 };
diff --git a/src/duckdb/extension/json/include/json_common.hpp b/src/duckdb/extension/json/include/json_common.hpp
index bcc8d7c2..1387bf4f 100644
--- a/src/duckdb/extension/json/include/json_common.hpp
+++ b/src/duckdb/extension/json/include/json_common.hpp
@@ -89,7 +89,8 @@ using json_key_set_t = unordered_set;
 struct JSONCommon {
 public:
 	//! Read/Write flags
-	static constexpr auto READ_FLAG = YYJSON_READ_ALLOW_INF_AND_NAN | YYJSON_READ_ALLOW_TRAILING_COMMAS;
+	static constexpr auto READ_FLAG =
+	    YYJSON_READ_ALLOW_INF_AND_NAN | YYJSON_READ_ALLOW_TRAILING_COMMAS | YYJSON_READ_BIGNUM_AS_RAW;
 	static constexpr auto READ_STOP_FLAG = READ_FLAG | YYJSON_READ_STOP_WHEN_DONE;
 	static constexpr auto READ_INSITU_FLAG = READ_STOP_FLAG | YYJSON_READ_INSITU;
 	static constexpr auto WRITE_FLAG = YYJSON_WRITE_ALLOW_INF_AND_NAN;
@@ -102,6 +103,7 @@ struct JSONCommon {
 	static constexpr char const *TYPE_STRING_BIGINT = "BIGINT";
 	static constexpr char const *TYPE_STRING_UBIGINT = "UBIGINT";
 	static constexpr char const *TYPE_STRING_DOUBLE = "DOUBLE";
+	static constexpr char const *TYPE_STRING_HUGEINT = "HUGEINT";
 	static constexpr char const *TYPE_STRING_VARCHAR = "VARCHAR";
 	static constexpr char const *TYPE_STRING_ARRAY = "ARRAY";
 	static constexpr char const *TYPE_STRING_OBJECT = "OBJECT";
@@ -109,23 +111,24 @@ struct JSONCommon {
 	static inline const char *ValTypeToString(yyjson_val *val) {
 		switch (yyjson_get_tag(val)) {
 		case YYJSON_TYPE_NULL | YYJSON_SUBTYPE_NONE:
-			return JSONCommon::TYPE_STRING_NULL;
+			return TYPE_STRING_NULL;
 		case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NOESC:
 		case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NONE:
-			return JSONCommon::TYPE_STRING_VARCHAR;
+			return TYPE_STRING_VARCHAR;
 		case YYJSON_TYPE_ARR | YYJSON_SUBTYPE_NONE:
-			return JSONCommon::TYPE_STRING_ARRAY;
+			return TYPE_STRING_ARRAY;
 		case YYJSON_TYPE_OBJ | YYJSON_SUBTYPE_NONE:
-			return JSONCommon::TYPE_STRING_OBJECT;
+			return TYPE_STRING_OBJECT;
 		case YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_TRUE:
 		case YYJSON_TYPE_BOOL | YYJSON_SUBTYPE_FALSE:
-			return JSONCommon::TYPE_STRING_BOOLEAN;
+			return TYPE_STRING_BOOLEAN;
 		case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_UINT:
-			return JSONCommon::TYPE_STRING_UBIGINT;
+			return TYPE_STRING_UBIGINT;
 		case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT:
-			return JSONCommon::TYPE_STRING_BIGINT;
+			return TYPE_STRING_BIGINT;
 		case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL:
-			return JSONCommon::TYPE_STRING_DOUBLE;
+		case YYJSON_TYPE_RAW | YYJSON_SUBTYPE_NONE:
+			return TYPE_STRING_DOUBLE;
 		default:
 			throw InternalException("Unexpected yyjson tag in ValTypeToString");
 		}
@@ -154,6 +157,7 @@ struct JSONCommon {
 		case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_SINT:
 			return LogicalTypeId::BIGINT;
 		case YYJSON_TYPE_NUM | YYJSON_SUBTYPE_REAL:
+		case YYJSON_TYPE_RAW | YYJSON_SUBTYPE_NONE:
 			return LogicalTypeId::DOUBLE;
 		default:
 			throw InternalException("Unexpected yyjson tag in ValTypeToLogicalTypeId");
@@ -241,12 +245,16 @@ struct JSONCommon {
 	};
 
 	//! Get JSON value using JSON path query (safe, checks the path query)
-	static inline yyjson_val *Get(yyjson_val *val, const string_t &path_str) {
+	static inline yyjson_val *Get(yyjson_val *val, const string_t &path_str, bool integral_argument) {
 		auto ptr = path_str.GetData();
 		auto len = path_str.GetSize();
 		if (len == 0) {
 			return GetUnsafe(val, ptr, len);
 		}
+		if (integral_argument) {
+			auto str = "$[" + path_str.GetString() + "]";
+			return GetUnsafe(val, str.c_str(), str.length());
+		}
 		switch (*ptr) {
 		case '/': {
 			// '/' notation must be '\0'-terminated
@@ -260,9 +268,15 @@ struct JSONCommon {
 			}
 			return GetUnsafe(val, ptr, len);
 		}
-		default:
-			auto str = "/" + string(ptr, len);
-			return GetUnsafe(val, str.c_str(), len + 1);
+		default: {
+			string path;
+			if (memchr(ptr, '"', len)) {
+				path = "/" + string(ptr, len);
+			} else {
+				path = "$.\"" + path_str.GetString() + "\"";
+			}
+			return GetUnsafe(val, path.c_str(), path.length());
+		}
 		}
 	}
 
@@ -291,7 +305,7 @@ struct JSONCommon {
 	//! Get JSON pointer (/field/index/... syntax)
 	static inline yyjson_val *GetPointer(yyjson_val *val, const char *ptr, const idx_t &len) {
 		yyjson_ptr_err err;
-		return len == 1 ? val : unsafe_yyjson_ptr_getx(val, ptr, len, &err);
+		return unsafe_yyjson_ptr_getx(val, ptr, len, &err);
 	}
 	//! Get JSON path ($.field[index]... syntax)
 	static yyjson_val *GetPath(yyjson_val *val, const char *ptr, const idx_t &len);
diff --git a/src/duckdb/extension/json/include/json_executors.hpp b/src/duckdb/extension/json/include/json_executors.hpp
index 0eeff5e4..3290a95e 100644
--- a/src/duckdb/extension/json/include/json_executors.hpp
+++ b/src/duckdb/extension/json/include/json_executors.hpp
@@ -8,6 +8,7 @@
 
 #pragma once
 
+#include "duckdb/common/vector_operations/vector_operations.hpp"
 #include "duckdb/execution/expression_executor.hpp"
 #include "json_functions.hpp"
 
@@ -88,11 +89,18 @@ struct JSONExecutors {
 			}
 		} else { // Columnref path
 			D_ASSERT(info.path_type == JSONCommon::JSONPathType::REGULAR);
-			auto &paths = args.data[1];
+			unique_ptr casted_paths;
+			if (args.data[1].GetType().id() == LogicalTypeId::VARCHAR) {
+				casted_paths = make_uniq(args.data[1]);
+			} else {
+				casted_paths = make_uniq(LogicalTypeId::VARCHAR);
+				VectorOperations::DefaultCast(args.data[1], *casted_paths, args.size(), true);
+			}
 			BinaryExecutor::ExecuteWithNulls(
-			    inputs, paths, result, args.size(), [&](string_t input, string_t path, ValidityMask &mask, idx_t idx) {
+			    inputs, *casted_paths, result, args.size(),
+			    [&](string_t input, string_t path, ValidityMask &mask, idx_t idx) {
 				    auto doc = JSONCommon::ReadDocument(input, JSONCommon::READ_FLAG, lstate.json_allocator.GetYYAlc());
-				    auto val = JSONCommon::Get(doc->root, path);
+				    auto val = JSONCommon::Get(doc->root, path, args.data[1].GetType().IsIntegral());
 				    if (SET_NULL_IF_NOT_FOUND && !val) {
 					    mask.SetInvalid(idx);
 					    return T {};
diff --git a/src/duckdb/extension/json/include/json_scan.hpp b/src/duckdb/extension/json/include/json_scan.hpp
index a2ad431b..61439b61 100644
--- a/src/duckdb/extension/json/include/json_scan.hpp
+++ b/src/duckdb/extension/json/include/json_scan.hpp
@@ -132,7 +132,7 @@ struct JSONScanData : public TableFunctionData {
 	bool convert_strings_to_integers = false;
 	//! If a struct contains more fields than this threshold with at least 80% similar types,
 	//! we infer it as MAP type
-	idx_t map_inference_threshold = 25;
+	idx_t map_inference_threshold = 200;
 
 	//! All column names (in order)
 	vector names;
@@ -179,7 +179,8 @@ struct JSONScanGlobalState {
 
 	//! Column names that we're actually reading (after projection pushdown)
 	vector names;
-	vector column_indices;
+	vector column_ids;
+	vector column_indices;
 
 	//! Buffer manager allocator
 	Allocator &allocator;
@@ -309,8 +310,7 @@ struct JSONScan {
 
 	static double ScanProgress(ClientContext &context, const FunctionData *bind_data_p,
 	                           const GlobalTableFunctionState *global_state);
-	static idx_t GetBatchIndex(ClientContext &context, const FunctionData *bind_data_p,
-	                           LocalTableFunctionState *local_state, GlobalTableFunctionState *global_state);
+	static OperatorPartitionData GetPartitionData(ClientContext &context, TableFunctionGetPartitionInput &input);
 	static unique_ptr Cardinality(ClientContext &context, const FunctionData *bind_data);
 	static void ComplexFilterPushdown(ClientContext &context, LogicalGet &get, FunctionData *bind_data_p,
 	                                  vector> &filters);
diff --git a/src/duckdb/extension/json/include/json_transform.hpp b/src/duckdb/extension/json/include/json_transform.hpp
index 222f9003..0ae6b57b 100644
--- a/src/duckdb/extension/json/include/json_transform.hpp
+++ b/src/duckdb/extension/json/include/json_transform.hpp
@@ -8,6 +8,8 @@
 
 #pragma once
 
+#include "duckdb/common/column_index.hpp"
+#include "duckdb/common/optional_ptr.hpp"
 #include "duckdb/function/scalar/strftime_format.hpp"
 #include "json_common.hpp"
 
@@ -64,9 +66,10 @@ struct TryParseTimeStamp {
 
 struct JSONTransform {
 	static bool Transform(yyjson_val *vals[], yyjson_alc *alc, Vector &result, const idx_t count,
-	                      JSONTransformOptions &options);
+	                      JSONTransformOptions &options, optional_ptr column_index);
 	static bool TransformObject(yyjson_val *objects[], yyjson_alc *alc, const idx_t count, const vector &names,
-	                            const vector &result_vectors, JSONTransformOptions &options);
+	                            const vector &result_vectors, JSONTransformOptions &options,
+	                            optional_ptr> column_indices, bool error_unknown_key);
 	static bool GetStringVector(yyjson_val *vals[], const idx_t count, const LogicalType &target, Vector &string_vector,
 	                            JSONTransformOptions &options);
 };
diff --git a/src/duckdb/extension/json/json_extension.cpp b/src/duckdb/extension/json/json_extension.cpp
index b594c26d..e0665260 100644
--- a/src/duckdb/extension/json/json_extension.cpp
+++ b/src/duckdb/extension/json/json_extension.cpp
@@ -27,7 +27,7 @@ static DefaultMacro json_macros[] = {
      "json_group_structure",
      {"x", nullptr},
      {{nullptr, nullptr}},
-     "json_structure(json_group_array(x))->'0'"},
+     "json_structure(json_group_array(x))->0"},
     {DEFAULT_SCHEMA, "json", {"x", nullptr}, {{nullptr, nullptr}}, "json_extract(x, '$')"},
     {nullptr, nullptr, {nullptr}, {{nullptr, nullptr}}, nullptr}};
 
diff --git a/src/duckdb/extension/json/json_functions.cpp b/src/duckdb/extension/json/json_functions.cpp
index 0ad68376..2b8b7828 100644
--- a/src/duckdb/extension/json/json_functions.cpp
+++ b/src/duckdb/extension/json/json_functions.cpp
@@ -21,21 +21,25 @@ static JSONPathType CheckPath(const Value &path_val, string &path, size_t &len)
 	const auto path_str_val = path_val.DefaultCastAs(LogicalType::VARCHAR);
 	auto path_str = path_str_val.GetValueUnsafe();
 	len = path_str.GetSize();
-	auto ptr = path_str.GetData();
+	const auto ptr = path_str.GetData();
 	// Empty strings and invalid $ paths yield an error
 	if (len == 0) {
 		throw BinderException("Empty JSON path");
 	}
 	JSONPathType path_type = JSONPathType::REGULAR;
-	if (*ptr == '$') {
-		path_type = JSONCommon::ValidatePath(ptr, len, true);
-	}
 	// Copy over string to the bind data
 	if (*ptr == '/' || *ptr == '$') {
 		path = string(ptr, len);
-	} else {
+	} else if (path_val.type().IsIntegral()) {
+		path = "$[" + string(ptr, len) + "]";
+	} else if (memchr(ptr, '"', len)) {
 		path = "/" + string(ptr, len);
-		len++;
+	} else {
+		path = "$.\"" + string(ptr, len) + "\"";
+	}
+	len = path.length();
+	if (*path.c_str() == '$') {
+		path_type = JSONCommon::ValidatePath(path.c_str(), len, true);
 	}
 	return path_type;
 }
@@ -67,7 +71,11 @@ unique_ptr JSONReadFunctionData::Bind(ClientContext &context, Scal
 			path_type = CheckPath(path_val, path, len);
 		}
 	}
-	bound_function.arguments[1] = LogicalType::VARCHAR;
+	if (arguments[1]->return_type.IsIntegral()) {
+		bound_function.arguments[1] = LogicalType::BIGINT;
+	} else {
+		bound_function.arguments[1] = LogicalType::VARCHAR;
+	}
 	if (path_type == JSONCommon::JSONPathType::WILDCARD) {
 		bound_function.return_type = LogicalType::LIST(bound_function.return_type);
 	}
@@ -117,6 +125,7 @@ unique_ptr JSONReadManyFunctionData::Bind(ClientContext &context,
 
 JSONFunctionLocalState::JSONFunctionLocalState(Allocator &allocator) : json_allocator(allocator) {
 }
+
 JSONFunctionLocalState::JSONFunctionLocalState(ClientContext &context)
     : JSONFunctionLocalState(BufferAllocator::Get(context)) {
 }
diff --git a/src/duckdb/extension/json/json_functions/json_create.cpp b/src/duckdb/extension/json/json_functions/json_create.cpp
index 3927daa1..8c587fd0 100644
--- a/src/duckdb/extension/json/json_functions/json_create.cpp
+++ b/src/duckdb/extension/json/json_functions/json_create.cpp
@@ -40,25 +40,36 @@ static LogicalType GetJSONType(StructNames &const_struct_names, const LogicalTyp
 	// These types can go directly into JSON
 	case LogicalTypeId::SQLNULL:
 	case LogicalTypeId::BOOLEAN:
-	case LogicalTypeId::BIGINT:
-	case LogicalTypeId::UBIGINT:
-	case LogicalTypeId::DOUBLE:
-		return type;
-	// We cast these types to a type that can go into JSON
 	case LogicalTypeId::TINYINT:
 	case LogicalTypeId::SMALLINT:
 	case LogicalTypeId::INTEGER:
-		return LogicalType::BIGINT;
+	case LogicalTypeId::BIGINT:
+	case LogicalTypeId::HUGEINT:
+	case LogicalTypeId::UHUGEINT:
 	case LogicalTypeId::UTINYINT:
 	case LogicalTypeId::USMALLINT:
 	case LogicalTypeId::UINTEGER:
-		return LogicalType::UBIGINT;
+	case LogicalTypeId::UBIGINT:
 	case LogicalTypeId::FLOAT:
+	case LogicalTypeId::DOUBLE:
+	case LogicalTypeId::BIT:
+	case LogicalTypeId::BLOB:
+	case LogicalTypeId::VARCHAR:
+	case LogicalTypeId::AGGREGATE_STATE:
+	case LogicalTypeId::ENUM:
+	case LogicalTypeId::DATE:
+	case LogicalTypeId::INTERVAL:
+	case LogicalTypeId::TIME:
+	case LogicalTypeId::TIME_TZ:
+	case LogicalTypeId::TIMESTAMP:
+	case LogicalTypeId::TIMESTAMP_TZ:
+	case LogicalTypeId::TIMESTAMP_NS:
+	case LogicalTypeId::TIMESTAMP_MS:
+	case LogicalTypeId::TIMESTAMP_SEC:
+	case LogicalTypeId::UUID:
+	case LogicalTypeId::VARINT:
 	case LogicalTypeId::DECIMAL:
-	case LogicalTypeId::UHUGEINT:
-	case LogicalTypeId::HUGEINT:
-		return LogicalType::DOUBLE;
-	// The nested types need to conform as well
+		return type;
 	case LogicalTypeId::LIST:
 		return LogicalType::LIST(GetJSONType(const_struct_names, ListType::GetChildType(type)));
 	case LogicalTypeId::ARRAY:
@@ -211,7 +222,7 @@ template <>
 struct CreateJSONValue {
 	static inline yyjson_mut_val *Operation(yyjson_mut_doc *doc, const hugeint_t &input) {
 		const auto input_string = input.ToString();
-		return yyjson_mut_strncpy(doc, input_string.c_str(), input_string.length());
+		return yyjson_mut_rawncpy(doc, input_string.c_str(), input_string.length());
 	}
 };
 
@@ -219,7 +230,7 @@ template <>
 struct CreateJSONValue {
 	static inline yyjson_mut_val *Operation(yyjson_mut_doc *doc, const uhugeint_t &input) {
 		const auto input_string = input.ToString();
-		return yyjson_mut_strncpy(doc, input_string.c_str(), input_string.length());
+		return yyjson_mut_rawncpy(doc, input_string.c_str(), input_string.length());
 	}
 };
 
@@ -287,6 +298,22 @@ static void TemplatedCreateValues(yyjson_mut_doc *doc, yyjson_mut_val *vals[], V
 	}
 }
 
+static void CreateRawValues(yyjson_mut_doc *doc, yyjson_mut_val *vals[], Vector &value_v, idx_t count) {
+	UnifiedVectorFormat value_data;
+	value_v.ToUnifiedFormat(count, value_data);
+	auto values = UnifiedVectorFormat::GetData(value_data);
+	for (idx_t i = 0; i < count; i++) {
+		idx_t val_idx = value_data.sel->get_index(i);
+		if (!value_data.validity.RowIsValid(val_idx)) {
+			vals[i] = yyjson_mut_null(doc);
+		} else {
+			const auto &str = values[val_idx];
+			vals[i] = yyjson_mut_rawncpy(doc, str.GetData(), str.GetSize());
+		}
+		D_ASSERT(vals[i] != nullptr);
+	}
+}
+
 static void CreateValuesStruct(const StructNames &names, yyjson_mut_doc *doc, yyjson_mut_val *vals[], Vector &value_v,
                                idx_t count) {
 	// Structs become values, therefore we initialize vals to JSON values
@@ -476,7 +503,8 @@ static void CreateValuesArray(const StructNames &names, yyjson_mut_doc *doc, yyj
 
 static void CreateValues(const StructNames &names, yyjson_mut_doc *doc, yyjson_mut_val *vals[], Vector &value_v,
                          idx_t count) {
-	switch (value_v.GetType().id()) {
+	const auto &type = value_v.GetType();
+	switch (type.id()) {
 	case LogicalTypeId::SQLNULL:
 		CreateValuesNull(doc, vals, count);
 		break;
@@ -550,17 +578,28 @@ static void CreateValues(const StructNames &names, yyjson_mut_doc *doc, yyjson_m
 	case LogicalTypeId::TIMESTAMP_NS:
 	case LogicalTypeId::TIMESTAMP_MS:
 	case LogicalTypeId::TIMESTAMP_SEC:
-	case LogicalTypeId::VARINT:
 	case LogicalTypeId::UUID: {
 		Vector string_vector(LogicalTypeId::VARCHAR, count);
 		VectorOperations::DefaultCast(value_v, string_vector, count);
 		TemplatedCreateValues(doc, vals, string_vector, count);
 		break;
 	}
+	case LogicalTypeId::VARINT: {
+		Vector string_vector(LogicalTypeId::VARCHAR, count);
+		VectorOperations::DefaultCast(value_v, string_vector, count);
+		CreateRawValues(doc, vals, string_vector, count);
+		break;
+	}
 	case LogicalTypeId::DECIMAL: {
-		Vector double_vector(LogicalType::DOUBLE, count);
-		VectorOperations::DefaultCast(value_v, double_vector, count);
-		TemplatedCreateValues(doc, vals, double_vector, count);
+		if (DecimalType::GetWidth(type) > 15) {
+			Vector string_vector(LogicalTypeId::VARCHAR, count);
+			VectorOperations::DefaultCast(value_v, string_vector, count);
+			CreateRawValues(doc, vals, string_vector, count);
+		} else {
+			Vector double_vector(LogicalType::DOUBLE, count);
+			VectorOperations::DefaultCast(value_v, double_vector, count);
+			TemplatedCreateValues(doc, vals, double_vector, count);
+		}
 		break;
 	}
 	case LogicalTypeId::INVALID:
@@ -604,7 +643,6 @@ static void ObjectFunction(DataChunk &args, ExpressionState &state, Vector &resu
 	for (idx_t i = 0; i < count; i++) {
 		objects[i] = JSONCommon::WriteVal(objs[i], alc);
 	}
-
 	if (args.AllConstant()) {
 		result.SetVectorType(VectorType::CONSTANT_VECTOR);
 	}
@@ -637,7 +675,6 @@ static void ArrayFunction(DataChunk &args, ExpressionState &state, Vector &resul
 	for (idx_t i = 0; i < count; i++) {
 		objects[i] = JSONCommon::WriteVal(arrs[i], alc);
 	}
-
 	if (args.AllConstant()) {
 		result.SetVectorType(VectorType::CONSTANT_VECTOR);
 	}
@@ -651,22 +688,9 @@ static void ToJSONFunctionInternal(const StructNames &names, Vector &input, cons
 	CreateValues(names, doc, vals, input, count);
 
 	// Write JSON values to string
-	auto objects = FlatVector::GetData(result);
-	auto &result_validity = FlatVector::Validity(result);
-	UnifiedVectorFormat input_data;
-	input.ToUnifiedFormat(count, input_data);
-	for (idx_t i = 0; i < count; i++) {
-		idx_t idx = input_data.sel->get_index(i);
-		if (input_data.validity.RowIsValid(idx)) {
-			objects[i] = JSONCommon::WriteVal(vals[i], alc);
-		} else {
-			result_validity.SetInvalid(i);
-		}
-	}
-
-	if (input.GetVectorType() == VectorType::CONSTANT_VECTOR || count == 1) {
-		result.SetVectorType(VectorType::CONSTANT_VECTOR);
-	}
+	UnaryExecutor::ExecuteWithNulls(input, result, count, [&](data_t, ValidityMask &, idx_t index) {
+		return JSONCommon::WriteVal(vals[index], alc);
+	});
 }
 
 static void ToJSONFunction(DataChunk &args, ExpressionState &state, Vector &result) {
diff --git a/src/duckdb/extension/json/json_functions/json_extract.cpp b/src/duckdb/extension/json/json_functions/json_extract.cpp
index 2fc32612..a0bde5de 100644
--- a/src/duckdb/extension/json/json_functions/json_extract.cpp
+++ b/src/duckdb/extension/json/json_functions/json_extract.cpp
@@ -6,9 +6,17 @@ static inline string_t ExtractFromVal(yyjson_val *val, yyjson_alc *alc, Vector &
 	return JSONCommon::WriteVal(val, alc);
 }
 
-static inline string_t ExtractStringFromVal(yyjson_val *val, yyjson_alc *alc, Vector &, ValidityMask &, idx_t) {
-	return yyjson_is_str(val) ? string_t(unsafe_yyjson_get_str(val), unsafe_yyjson_get_len(val))
-	                          : JSONCommon::WriteVal(val, alc);
+static inline string_t ExtractStringFromVal(yyjson_val *val, yyjson_alc *alc, Vector &, ValidityMask &mask, idx_t idx) {
+	switch (yyjson_get_tag(val)) {
+	case YYJSON_TYPE_NULL | YYJSON_SUBTYPE_NONE:
+		mask.SetInvalid(idx);
+		return string_t {};
+	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NOESC:
+	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NONE:
+		return string_t(unsafe_yyjson_get_str(val), unsafe_yyjson_get_len(val));
+	default:
+		return JSONCommon::WriteVal(val, alc);
+	}
 }
 
 static void ExtractFunction(DataChunk &args, ExpressionState &state, Vector &result) {
diff --git a/src/duckdb/extension/json/json_functions/json_structure.cpp b/src/duckdb/extension/json/json_functions/json_structure.cpp
index 04800572..51652bae 100644
--- a/src/duckdb/extension/json/json_functions/json_structure.cpp
+++ b/src/duckdb/extension/json/json_functions/json_structure.cpp
@@ -1,12 +1,11 @@
 #include "json_structure.hpp"
 
 #include "duckdb/common/enum_util.hpp"
+#include "duckdb/common/extra_type_info.hpp"
 #include "json_executors.hpp"
 #include "json_scan.hpp"
 #include "json_transform.hpp"
 
-#include 
-
 namespace duckdb {
 
 static bool IsNumeric(LogicalTypeId type) {
@@ -214,8 +213,8 @@ void JSONStructureNode::RefineCandidateTypesObject(yyjson_val *vals[], const idx
 				D_ASSERT(it != key_map.end());
 				const auto child_idx = it->second;
 				child_vals[child_idx][i] = child_val;
+				found_key_count += !found_keys[child_idx];
 				found_keys[child_idx] = true;
-				found_key_count++;
 			}
 
 			if (found_key_count != child_count) {
@@ -562,10 +561,12 @@ static void MergeNodeVal(JSONStructureNode &merged, const JSONStructureDescripti
 	}
 	if (!merged.initialized) {
 		merged_desc.candidate_types = child_desc.candidate_types;
-	} else if (!merged_desc.candidate_types.empty() && !child_desc.candidate_types.empty() &&
-	           merged_desc.candidate_types.back() != child_desc.candidate_types.back()) {
+	} else if (merged_desc.candidate_types.empty() != child_desc.candidate_types.empty() // both empty or neither empty
+	           || (!merged_desc.candidate_types.empty() &&
+	               merged_desc.candidate_types.back() != child_desc.candidate_types.back())) { // non-empty: check type
 		merged_desc.candidate_types.clear(); // Not the same, default to VARCHAR
 	}
+
 	merged.initialized = true;
 }
 
@@ -704,14 +705,18 @@ static LogicalType StructureToTypeObject(ClientContext &context, const JSONStruc
 	D_ASSERT(node.descriptions.size() == 1 && node.descriptions[0].type == LogicalTypeId::STRUCT);
 	auto &desc = node.descriptions[0];
 
-	// If it's an empty struct we do MAP of JSON instead
 	if (desc.children.empty()) {
-		// Empty struct - let's do MAP of JSON instead
-		return LogicalType::MAP(LogicalType::VARCHAR, null_type);
+		if (map_inference_threshold != DConstants::INVALID_INDEX) {
+			// Empty struct - let's do MAP of JSON instead
+			return LogicalType::MAP(LogicalType::VARCHAR, null_type);
+		} else {
+			return LogicalType::JSON();
+		}
 	}
 
 	// If it's an inconsistent object we also just do MAP with the best-possible, recursively-merged value type
-	if (IsStructureInconsistent(desc, node.count, node.null_count, field_appearance_threshold)) {
+	if (map_inference_threshold != DConstants::INVALID_INDEX &&
+	    IsStructureInconsistent(desc, node.count, node.null_count, field_appearance_threshold)) {
 		return LogicalType::MAP(LogicalType::VARCHAR,
 		                        GetMergedType(context, node, max_depth, field_appearance_threshold,
 		                                      map_inference_threshold, depth + 1, null_type));
diff --git a/src/duckdb/extension/json/json_functions/json_transform.cpp b/src/duckdb/extension/json/json_functions/json_transform.cpp
index d1f1caa1..5b4b64e0 100644
--- a/src/duckdb/extension/json/json_functions/json_transform.cpp
+++ b/src/duckdb/extension/json/json_functions/json_transform.cpp
@@ -102,6 +102,7 @@ static inline bool GetValueNumerical(yyjson_val *val, T &result, JSONTransformOp
 	switch (unsafe_yyjson_get_tag(val)) {
 	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NOESC:
 	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NONE:
+	case YYJSON_TYPE_RAW | YYJSON_SUBTYPE_NONE:
 		success = OP::template Operation(GetString(val), result, options.strict_cast);
 		break;
 	case YYJSON_TYPE_ARR | YYJSON_SUBTYPE_NONE:
@@ -138,6 +139,7 @@ static inline bool GetValueDecimal(yyjson_val *val, T &result, uint8_t w, uint8_
 	switch (unsafe_yyjson_get_tag(val)) {
 	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NOESC:
 	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NONE:
+	case YYJSON_TYPE_RAW | YYJSON_SUBTYPE_NONE:
 		success = OP::template Operation(GetString(val), result, options.parameters, w, s);
 		break;
 	case YYJSON_TYPE_ARR | YYJSON_SUBTYPE_NONE:
@@ -172,6 +174,7 @@ static inline bool GetValueString(yyjson_val *val, yyjson_alc *alc, string_t &re
 	switch (unsafe_yyjson_get_tag(val)) {
 	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NOESC:
 	case YYJSON_TYPE_STR | YYJSON_SUBTYPE_NONE:
+	case YYJSON_TYPE_RAW | YYJSON_SUBTYPE_NONE:
 		result = string_t(unsafe_yyjson_get_str(val), unsafe_yyjson_get_len(val));
 		return true;
 	case YYJSON_TYPE_ARR | YYJSON_SUBTYPE_NONE:
@@ -359,9 +362,14 @@ static bool TransformToString(yyjson_val *vals[], yyjson_alc *alc, Vector &resul
 
 bool JSONTransform::TransformObject(yyjson_val *objects[], yyjson_alc *alc, const idx_t count,
                                     const vector &names, const vector &result_vectors,
-                                    JSONTransformOptions &options) {
+                                    JSONTransformOptions &options,
+                                    optional_ptr> column_indices, bool error_unknown_key) {
+	if (column_indices && column_indices->empty()) {
+		column_indices = nullptr;
+	}
 	D_ASSERT(alc);
 	D_ASSERT(names.size() == result_vectors.size());
+	D_ASSERT(!column_indices || column_indices->size() == names.size());
 	const idx_t column_count = names.size();
 
 	// Build hash map from key to column index so we don't have to linearly search using the key
@@ -426,7 +434,7 @@ bool JSONTransform::TransformObject(yyjson_val *objects[], yyjson_alc *alc, cons
 					found_keys[col_idx] = true;
 					found_key_count++;
 				}
-			} else if (success && options.error_unknown_key) {
+			} else if (success && error_unknown_key && options.error_unknown_key) {
 				options.error_message =
 				    StringUtil::Format("Object %s has unknown key \"" + string(key_ptr, key_len) + "\"",
 				                       JSONCommon::ValToString(objects[i], 50));
@@ -455,7 +463,9 @@ bool JSONTransform::TransformObject(yyjson_val *objects[], yyjson_alc *alc, cons
 	}
 
 	for (idx_t col_idx = 0; col_idx < column_count; col_idx++) {
-		if (!JSONTransform::Transform(nested_vals[col_idx], alc, *result_vectors[col_idx], count, options)) {
+		auto child_column_index = column_indices ? &(*column_indices)[col_idx] : nullptr;
+		if (!JSONTransform::Transform(nested_vals[col_idx], alc, *result_vectors[col_idx], count, options,
+		                              child_column_index)) {
 			success = false;
 		}
 	}
@@ -468,7 +478,11 @@ bool JSONTransform::TransformObject(yyjson_val *objects[], yyjson_alc *alc, cons
 }
 
 static bool TransformObjectInternal(yyjson_val *objects[], yyjson_alc *alc, Vector &result, const idx_t count,
-                                    JSONTransformOptions &options) {
+                                    JSONTransformOptions &options, optional_ptr column_index) {
+	if (column_index && column_index->ChildIndexCount() == 0) {
+		column_index = nullptr;
+	}
+
 	// Set validity first
 	auto &result_validity = FlatVector::Validity(result);
 	for (idx_t i = 0; i < count; i++) {
@@ -482,14 +496,31 @@ static bool TransformObjectInternal(yyjson_val *objects[], yyjson_alc *alc, Vect
 	auto &child_vs = StructVector::GetEntries(result);
 	vector child_names;
 	vector child_vectors;
-	child_names.reserve(child_vs.size());
-	child_vectors.reserve(child_vs.size());
+
+	const auto child_count = column_index ? column_index->ChildIndexCount() : child_vs.size();
+	child_names.reserve(child_count);
+	child_vectors.reserve(child_count);
+
+	unordered_set projected_indices;
+	for (idx_t child_i = 0; child_i < child_count; child_i++) {
+		const auto actual_i = column_index ? column_index->GetChildIndex(child_i).GetPrimaryIndex() : child_i;
+		projected_indices.insert(actual_i);
+
+		child_names.push_back(StructType::GetChildName(result.GetType(), actual_i));
+		child_vectors.push_back(child_vs[actual_i].get());
+	}
+
 	for (idx_t child_i = 0; child_i < child_vs.size(); child_i++) {
-		child_names.push_back(StructType::GetChildName(result.GetType(), child_i));
-		child_vectors.push_back(child_vs[child_i].get());
+		if (projected_indices.find(child_i) == projected_indices.end()) {
+			child_vs[child_i]->SetVectorType(VectorType::CONSTANT_VECTOR);
+			ConstantVector::SetNull(*child_vs[child_i], true);
+		}
 	}
 
-	return JSONTransform::TransformObject(objects, alc, count, child_names, child_vectors, options);
+	auto child_indices = column_index ? &column_index->GetChildIndexes() : nullptr;
+	const auto error_unknown_key = child_count == child_vs.size(); // Nothing projected out, error if unknown
+	return JSONTransform::TransformObject(objects, alc, count, child_names, child_vectors, options, child_indices,
+	                                      error_unknown_key);
 }
 
 static bool TransformArrayToList(yyjson_val *arrays[], yyjson_alc *alc, Vector &result, const idx_t count,
@@ -559,7 +590,7 @@ static bool TransformArrayToList(yyjson_val *arrays[], yyjson_alc *alc, Vector &
 	}
 
 	// Transform array values
-	if (!JSONTransform::Transform(nested_vals, alc, ListVector::GetEntry(result), offset, options)) {
+	if (!JSONTransform::Transform(nested_vals, alc, ListVector::GetEntry(result), offset, options, nullptr)) {
 		success = false;
 	}
 
@@ -649,7 +680,7 @@ static bool TransformArrayToArray(yyjson_val *arrays[], yyjson_alc *alc, Vector
 	}
 
 	// Transform array values
-	if (!JSONTransform::Transform(nested_vals, alc, ArrayVector::GetEntry(result), child_count, options)) {
+	if (!JSONTransform::Transform(nested_vals, alc, ArrayVector::GetEntry(result), child_count, options, nullptr)) {
 		success = false;
 	}
 
@@ -717,13 +748,13 @@ static bool TransformObjectToMap(yyjson_val *objects[], yyjson_alc *alc, Vector
 	D_ASSERT(list_offset == list_size);
 
 	// Transform keys
-	if (!JSONTransform::Transform(keys, alc, MapVector::GetKeys(result), list_size, options)) {
+	if (!JSONTransform::Transform(keys, alc, MapVector::GetKeys(result), list_size, options, nullptr)) {
 		throw ConversionException(
 		    StringUtil::Format(options.error_message + ". Cannot default to NULL, because map keys cannot be NULL"));
 	}
 
 	// Transform values
-	if (!JSONTransform::Transform(vals, alc, MapVector::GetValues(result), list_size, options)) {
+	if (!JSONTransform::Transform(vals, alc, MapVector::GetValues(result), list_size, options, nullptr)) {
 		success = false;
 	}
 
@@ -810,7 +841,7 @@ bool TransformValueIntoUnion(yyjson_val **vals, yyjson_alc *alc, Vector &result,
 		idx_t actual_tag = tag - names.begin();
 
 		Vector single(UnionType::GetMemberType(type, actual_tag), 1);
-		if (!JSONTransform::Transform(&val, alc, single, 1, options)) {
+		if (!JSONTransform::Transform(&val, alc, single, 1, options, nullptr)) {
 			success = false;
 		}
 
@@ -821,7 +852,7 @@ bool TransformValueIntoUnion(yyjson_val **vals, yyjson_alc *alc, Vector &result,
 }
 
 bool JSONTransform::Transform(yyjson_val *vals[], yyjson_alc *alc, Vector &result, const idx_t count,
-                              JSONTransformOptions &options) {
+                              JSONTransformOptions &options, optional_ptr column_index) {
 	auto result_type = result.GetType();
 	if ((result_type == LogicalTypeId::TIMESTAMP || result_type == LogicalTypeId::DATE) && options.date_format_map &&
 	    options.date_format_map->HasFormats(result_type.id())) {
@@ -896,7 +927,7 @@ bool JSONTransform::Transform(yyjson_val *vals[], yyjson_alc *alc, Vector &resul
 	case LogicalTypeId::BLOB:
 		return TransformToString(vals, alc, result, count);
 	case LogicalTypeId::STRUCT:
-		return TransformObjectInternal(vals, alc, result, count, options);
+		return TransformObjectInternal(vals, alc, result, count, options, column_index);
 	case LogicalTypeId::LIST:
 		return TransformArrayToList(vals, alc, result, count, options);
 	case LogicalTypeId::MAP:
@@ -932,7 +963,7 @@ static bool TransformFunctionInternal(Vector &input, const idx_t count, Vector &
 		}
 	}
 
-	auto success = JSONTransform::Transform(vals, alc, result, count, options);
+	auto success = JSONTransform::Transform(vals, alc, result, count, options, nullptr);
 	if (input.GetVectorType() == VectorType::CONSTANT_VECTOR) {
 		result.SetVectorType(VectorType::CONSTANT_VECTOR);
 	}
diff --git a/src/duckdb/extension/json/json_functions/json_value.cpp b/src/duckdb/extension/json/json_functions/json_value.cpp
index 06afbd94..b15f7f9e 100644
--- a/src/duckdb/extension/json/json_functions/json_value.cpp
+++ b/src/duckdb/extension/json/json_functions/json_value.cpp
@@ -4,6 +4,7 @@ namespace duckdb {
 
 static inline string_t ValueFromVal(yyjson_val *val, yyjson_alc *alc, Vector &, ValidityMask &mask, idx_t idx) {
 	switch (yyjson_get_tag(val)) {
+	case YYJSON_TYPE_NULL | YYJSON_SUBTYPE_NONE:
 	case YYJSON_TYPE_ARR | YYJSON_SUBTYPE_NONE:
 	case YYJSON_TYPE_OBJ | YYJSON_SUBTYPE_NONE:
 		mask.SetInvalid(idx);
@@ -22,12 +23,12 @@ static void ValueManyFunction(DataChunk &args, ExpressionState &state, Vector &r
 }
 
 static void GetValueFunctionsInternal(ScalarFunctionSet &set, const LogicalType &input_type) {
-	set.AddFunction(ScalarFunction({input_type, LogicalType::BIGINT}, LogicalType::JSON(), ValueFunction,
+	set.AddFunction(ScalarFunction({input_type, LogicalType::BIGINT}, LogicalType::VARCHAR, ValueFunction,
 	                               JSONReadFunctionData::Bind, nullptr, nullptr, JSONFunctionLocalState::Init));
-	set.AddFunction(ScalarFunction({input_type, LogicalType::VARCHAR}, LogicalType::JSON(), ValueFunction,
+	set.AddFunction(ScalarFunction({input_type, LogicalType::VARCHAR}, LogicalType::VARCHAR, ValueFunction,
 	                               JSONReadFunctionData::Bind, nullptr, nullptr, JSONFunctionLocalState::Init));
 	set.AddFunction(ScalarFunction({input_type, LogicalType::LIST(LogicalType::VARCHAR)},
-	                               LogicalType::LIST(LogicalType::JSON()), ValueManyFunction,
+	                               LogicalType::LIST(LogicalType::VARCHAR), ValueManyFunction,
 	                               JSONReadManyFunctionData::Bind, nullptr, nullptr, JSONFunctionLocalState::Init));
 }
 
diff --git a/src/duckdb/extension/json/json_functions/read_json.cpp b/src/duckdb/extension/json/json_functions/read_json.cpp
index d56b3e98..78c1b437 100644
--- a/src/duckdb/extension/json/json_functions/read_json.cpp
+++ b/src/duckdb/extension/json/json_functions/read_json.cpp
@@ -1,9 +1,9 @@
+#include "duckdb/common/helper.hpp"
 #include "duckdb/common/multi_file_reader.hpp"
 #include "json_functions.hpp"
 #include "json_scan.hpp"
 #include "json_structure.hpp"
 #include "json_transform.hpp"
-#include "duckdb/common/helper.hpp"
 
 namespace duckdb {
 
@@ -330,8 +330,8 @@ static void ReadJSONFunction(ClientContext &context, TableFunctionInput &data_p,
 
 	if (!gstate.names.empty()) {
 		vector result_vectors;
-		result_vectors.reserve(gstate.column_indices.size());
-		for (const auto &col_idx : gstate.column_indices) {
+		result_vectors.reserve(gstate.column_ids.size());
+		for (const auto &col_idx : gstate.column_ids) {
 			result_vectors.emplace_back(&output.data[col_idx]);
 		}
 
@@ -339,11 +339,12 @@ static void ReadJSONFunction(ClientContext &context, TableFunctionInput &data_p,
 		bool success;
 		if (gstate.bind_data.options.record_type == JSONRecordType::RECORDS) {
 			success = JSONTransform::TransformObject(values, lstate.GetAllocator(), count, gstate.names, result_vectors,
-			                                         lstate.transform_options);
+			                                         lstate.transform_options, gstate.column_indices,
+			                                         lstate.transform_options.error_unknown_key);
 		} else {
 			D_ASSERT(gstate.bind_data.options.record_type == JSONRecordType::VALUES);
 			success = JSONTransform::Transform(values, lstate.GetAllocator(), *result_vectors[0], count,
-			                                   lstate.transform_options);
+			                                   lstate.transform_options, gstate.column_indices[0]);
 		}
 
 		if (!success) {
diff --git a/src/duckdb/extension/json/json_functions/read_json_objects.cpp b/src/duckdb/extension/json/json_functions/read_json_objects.cpp
index 7e97b647..a0e6e6b8 100644
--- a/src/duckdb/extension/json/json_functions/read_json_objects.cpp
+++ b/src/duckdb/extension/json/json_functions/read_json_objects.cpp
@@ -33,7 +33,7 @@ static void ReadJSONObjectsFunction(ClientContext &context, TableFunctionInput &
 
 	if (!gstate.names.empty()) {
 		// Create the strings without copying them
-		const auto col_idx = gstate.column_indices[0];
+		const auto col_idx = gstate.column_ids[0];
 		auto strings = FlatVector::GetData(output.data[col_idx]);
 		auto &validity = FlatVector::Validity(output.data[col_idx]);
 		for (idx_t i = 0; i < count; i++) {
diff --git a/src/duckdb/extension/json/json_scan.cpp b/src/duckdb/extension/json/json_scan.cpp
index 75232a7d..a1dd4e0d 100644
--- a/src/duckdb/extension/json/json_scan.cpp
+++ b/src/duckdb/extension/json/json_scan.cpp
@@ -144,8 +144,7 @@ string JSONScanData::GetTimestampFormat() const {
 }
 
 JSONScanGlobalState::JSONScanGlobalState(ClientContext &context, const JSONScanData &bind_data_p)
-    : bind_data(bind_data_p), transform_options(bind_data.transform_options),
-      allocator(BufferManager::GetBufferManager(context).GetBufferAllocator()),
+    : bind_data(bind_data_p), transform_options(bind_data.transform_options), allocator(BufferAllocator::Get(context)),
       buffer_capacity(bind_data.maximum_object_size * 2), file_index(0), batch_index(0),
       system_threads(TaskScheduler::GetScheduler(context).NumberOfThreads()),
       enable_parallel_scans(bind_data.files.size() < system_threads) {
@@ -186,8 +185,9 @@ unique_ptr JSONGlobalTableFunctionState::Init(ClientCo
 			continue;
 		}
 
-		gstate.column_indices.push_back(col_idx);
 		gstate.names.push_back(bind_data.names[col_id]);
+		gstate.column_ids.push_back(col_idx);
+		gstate.column_indices.push_back(input.column_indexes[col_idx]);
 	}
 
 	if (gstate.names.size() < bind_data.names.size() || bind_data.options.file_options.union_by_name) {
@@ -210,7 +210,7 @@ unique_ptr JSONGlobalTableFunctionState::Init(ClientCo
 	for (auto &reader : gstate.json_readers) {
 		MultiFileReader().FinalizeBind(reader->GetOptions().file_options, gstate.bind_data.reader_bind,
 		                               reader->GetFileName(), gstate.names, dummy_types, bind_data.names,
-		                               input.column_ids, reader->reader_data, context, nullptr);
+		                               input.column_indexes, reader->reader_data, context, nullptr);
 	}
 
 	return std::move(result);
@@ -957,10 +957,12 @@ double JSONScan::ScanProgress(ClientContext &, const FunctionData *, const Globa
 	return progress / double(gstate.json_readers.size());
 }
 
-idx_t JSONScan::GetBatchIndex(ClientContext &, const FunctionData *, LocalTableFunctionState *local_state,
-                              GlobalTableFunctionState *) {
-	auto &lstate = local_state->Cast();
-	return lstate.GetBatchIndex();
+OperatorPartitionData JSONScan::GetPartitionData(ClientContext &, TableFunctionGetPartitionInput &input) {
+	if (input.partition_info.RequiresPartitionColumns()) {
+		throw InternalException("JSONScan::GetPartitionData: partition columns not supported");
+	}
+	auto &lstate = input.local_state->Cast();
+	return OperatorPartitionData(lstate.GetBatchIndex());
 }
 
 unique_ptr JSONScan::Cardinality(ClientContext &, const FunctionData *bind_data) {
@@ -1014,7 +1016,7 @@ void JSONScan::TableFunctionDefaults(TableFunction &table_function) {
 	table_function.named_parameters["compression"] = LogicalType::VARCHAR;
 
 	table_function.table_scan_progress = ScanProgress;
-	table_function.get_batch_index = GetBatchIndex;
+	table_function.get_partition_data = GetPartitionData;
 	table_function.cardinality = Cardinality;
 
 	table_function.serialize = Serialize;
diff --git a/src/duckdb/extension/json/serialize_json.cpp b/src/duckdb/extension/json/serialize_json.cpp
index ee8b4368..b5724e77 100644
--- a/src/duckdb/extension/json/serialize_json.cpp
+++ b/src/duckdb/extension/json/serialize_json.cpp
@@ -44,7 +44,7 @@ void JSONScanData::Serialize(Serializer &serializer) const {
 	serializer.WritePropertyWithDefault(113, "field_appearance_threshold", field_appearance_threshold, 0.1);
 	serializer.WritePropertyWithDefault(114, "maximum_sample_files", maximum_sample_files, 32);
 	serializer.WritePropertyWithDefault(115, "convert_strings_to_integers", convert_strings_to_integers, false);
-	serializer.WritePropertyWithDefault(116, "map_inference_threshold", map_inference_threshold, 25);
+	serializer.WritePropertyWithDefault(116, "map_inference_threshold", map_inference_threshold, 200);
 }
 
 unique_ptr JSONScanData::Deserialize(Deserializer &deserializer) {
@@ -75,7 +75,7 @@ unique_ptr JSONScanData::Deserialize(Deserializer &deserializer) {
 	deserializer.ReadPropertyWithExplicitDefault(113, "field_appearance_threshold", result->field_appearance_threshold, 0.1);
 	deserializer.ReadPropertyWithExplicitDefault(114, "maximum_sample_files", result->maximum_sample_files, 32);
 	deserializer.ReadPropertyWithExplicitDefault(115, "convert_strings_to_integers", result->convert_strings_to_integers, false);
-	deserializer.ReadPropertyWithExplicitDefault(116, "map_inference_threshold", result->map_inference_threshold, 25);
+	deserializer.ReadPropertyWithExplicitDefault(116, "map_inference_threshold", result->map_inference_threshold, 200);
 	return result;
 }
 
diff --git a/src/duckdb/extension/parquet/column_reader.cpp b/src/duckdb/extension/parquet/column_reader.cpp
index fac6d89d..6ea2cae7 100644
--- a/src/duckdb/extension/parquet/column_reader.cpp
+++ b/src/duckdb/extension/parquet/column_reader.cpp
@@ -29,11 +29,11 @@
 
 namespace duckdb {
 
-using duckdb_parquet::format::CompressionCodec;
-using duckdb_parquet::format::ConvertedType;
-using duckdb_parquet::format::Encoding;
-using duckdb_parquet::format::PageType;
-using duckdb_parquet::format::Type;
+using duckdb_parquet::CompressionCodec;
+using duckdb_parquet::ConvertedType;
+using duckdb_parquet::Encoding;
+using duckdb_parquet::PageType;
+using duckdb_parquet::Type;
 
 const uint64_t ParquetDecodeUtils::BITPACK_MASKS[] = {0,
                                                       1,
@@ -108,7 +108,8 @@ const uint8_t ParquetDecodeUtils::BITPACK_DLEN = 8;
 ColumnReader::ColumnReader(ParquetReader &reader, LogicalType type_p, const SchemaElement &schema_p, idx_t file_idx_p,
                            idx_t max_define_p, idx_t max_repeat_p)
     : schema(schema_p), file_idx(file_idx_p), max_define(max_define_p), max_repeat(max_repeat_p), reader(reader),
-      type(std::move(type_p)), page_rows_available(0) {
+      type(std::move(type_p)), page_rows_available(0), dictionary_selection_vector(STANDARD_VECTOR_SIZE),
+      dictionary_size(0) {
 
 	// dummies for Skip()
 	dummy_define.resize(reader.allocator, STANDARD_VECTOR_SIZE);
@@ -189,19 +190,10 @@ unique_ptr ColumnReader::Stats(idx_t row_group_idx_p, const vect
 }
 
 void ColumnReader::Plain(shared_ptr plain_data, uint8_t *defines, idx_t num_values, // NOLINT
-                         parquet_filter_t &filter, idx_t result_offset, Vector &result) {
+                         parquet_filter_t *filter, idx_t result_offset, Vector &result) {
 	throw NotImplementedException("Plain");
 }
 
-void ColumnReader::Dictionary(shared_ptr dictionary_data, idx_t num_entries) { // NOLINT
-	throw NotImplementedException("Dictionary");
-}
-
-void ColumnReader::Offsets(uint32_t *offsets, uint8_t *defines, idx_t num_values, parquet_filter_t &filter,
-                           idx_t result_offset, Vector &result) {
-	throw NotImplementedException("Offsets");
-}
-
 void ColumnReader::PrepareDeltaLengthByteArray(ResizeableBuffer &buffer) {
 	throw std::runtime_error("DELTA_LENGTH_BYTE_ARRAY encoding is only supported for text or binary data");
 }
@@ -215,8 +207,6 @@ void ColumnReader::DeltaByteArray(uint8_t *defines, idx_t num_values, // NOLINT
 	throw NotImplementedException("DeltaByteArray");
 }
 
-void ColumnReader::DictReference(Vector &result) {
-}
 void ColumnReader::PlainReference(shared_ptr, Vector &result) { // NOLINT
 }
 
@@ -247,6 +237,10 @@ void ColumnReader::PrepareRead(parquet_filter_t &filter) {
 	block.reset();
 	PageHeader page_hdr;
 	reader.Read(page_hdr, *protocol);
+	// some basic sanity check
+	if (page_hdr.compressed_page_size < 0 || page_hdr.uncompressed_page_size < 0) {
+		throw std::runtime_error("Page sizes can't be < 0");
+	}
 
 	switch (page_hdr.type) {
 	case PageType::DATA_PAGE_V2:
@@ -257,10 +251,26 @@ void ColumnReader::PrepareRead(parquet_filter_t &filter) {
 		PreparePage(page_hdr);
 		PrepareDataPage(page_hdr);
 		break;
-	case PageType::DICTIONARY_PAGE:
+	case PageType::DICTIONARY_PAGE: {
 		PreparePage(page_hdr);
-		Dictionary(std::move(block), page_hdr.dictionary_page_header.num_values);
+		if (page_hdr.dictionary_page_header.num_values < 0) {
+			throw std::runtime_error("Invalid dictionary page header (num_values < 0)");
+		}
+		auto old_dict_size = dictionary_size;
+		// we use the first value in the dictionary to keep a NULL
+		dictionary_size = page_hdr.dictionary_page_header.num_values;
+		if (!dictionary) {
+			dictionary = make_uniq(type, dictionary_size + 1);
+		} else if (dictionary_size > old_dict_size) {
+			dictionary->Resize(old_dict_size, dictionary_size + 1);
+		}
+		dictionary_id = reader.file_name + "_" + schema.name + "_" + std::to_string(chunk_read_offset);
+		// we use the first entry as a NULL, dictionary vectors don't have a separate validity mask
+		FlatVector::Validity(*dictionary).SetInvalid(0);
+		PlainReference(block, *dictionary);
+		Plain(block, nullptr, dictionary_size, nullptr, 1, *dictionary);
 		break;
+	}
 	default:
 		break; // ignore INDEX page type and any other custom extensions
 	}
@@ -272,7 +282,6 @@ void ColumnReader::ResetPage() {
 
 void ColumnReader::PreparePageV2(PageHeader &page_hdr) {
 	D_ASSERT(page_hdr.type == PageType::DATA_PAGE_V2);
-
 	auto &trans = reinterpret_cast(*protocol->getTransport());
 
 	AllocateBlock(page_hdr.uncompressed_page_size + 1);
@@ -294,6 +303,10 @@ void ColumnReader::PreparePageV2(PageHeader &page_hdr) {
 	// copy repeats & defines as-is because FOR SOME REASON they are uncompressed
 	auto uncompressed_bytes = page_hdr.data_page_header_v2.repetition_levels_byte_length +
 	                          page_hdr.data_page_header_v2.definition_levels_byte_length;
+	if (uncompressed_bytes > page_hdr.uncompressed_page_size) {
+		throw std::runtime_error("Page header inconsistency, uncompressed_page_size needs to be larger than "
+		                         "repetition_levels_byte_length + definition_levels_byte_length");
+	}
 	trans.read(block->ptr, uncompressed_bytes);
 
 	auto compressed_bytes = page_hdr.compressed_page_size - uncompressed_bytes;
@@ -482,6 +495,31 @@ void ColumnReader::PrepareDataPage(PageHeader &page_hdr) {
 	}
 }
 
+void ColumnReader::ConvertDictToSelVec(uint32_t *offsets, uint8_t *defines, parquet_filter_t &filter, idx_t read_now,
+                                       idx_t result_offset) {
+	D_ASSERT(read_now <= STANDARD_VECTOR_SIZE);
+	idx_t offset_idx = 0;
+	for (idx_t row_idx = 0; row_idx < read_now; row_idx++) {
+		if (HasDefines() && defines[row_idx + result_offset] != max_define) {
+			dictionary_selection_vector.set_index(row_idx, 0); // dictionary entry 0 is NULL
+			continue;                                          // we don't have a dict entry for NULLs
+		}
+		if (filter.test(row_idx + result_offset)) {
+			auto offset = offsets[offset_idx++];
+			if (offset >= dictionary_size) {
+				throw std::runtime_error("Parquet file is likely corrupted, dictionary offset out of range");
+			}
+			dictionary_selection_vector.set_index(row_idx, offset + 1);
+		} else {
+			dictionary_selection_vector.set_index(row_idx, 0); // just set NULL if the filter excludes this row
+			offset_idx++;
+		}
+	}
+#ifdef DEBUG
+	dictionary_selection_vector.Verify(read_now, dictionary_size + 1);
+#endif
+}
+
 idx_t ColumnReader::Read(uint64_t num_values, parquet_filter_t &filter, data_ptr_t define_out, data_ptr_t repeat_out,
                          Vector &result) {
 	// we need to reset the location because multiple column readers share the same protocol
@@ -520,30 +558,43 @@ idx_t ColumnReader::Read(uint64_t num_values, parquet_filter_t &filter, data_ptr
 
 		if ((dict_decoder || dbp_decoder || rle_decoder || bss_decoder) && HasDefines()) {
 			// we need the null count because the dictionary offsets have no entries for nulls
-			for (idx_t i = 0; i < read_now; i++) {
-				if (define_out[i + result_offset] != max_define) {
-					null_count++;
-				}
+			for (idx_t i = result_offset; i < result_offset + read_now; i++) {
+				null_count += (define_out[i] != max_define);
 			}
 		}
 
+		if (result_offset != 0 && result.GetVectorType() != VectorType::FLAT_VECTOR) {
+			result.Flatten(result_offset);
+			result.Resize(result_offset, result_offset + read_now);
+		}
+
 		if (dict_decoder) {
+			if ((!dictionary || dictionary_size == 0) && null_count < read_now) {
+				throw std::runtime_error("Parquet file is likely corrupted, missing dictionary");
+			}
 			offset_buffer.resize(reader.allocator, sizeof(uint32_t) * (read_now - null_count));
 			dict_decoder->GetBatch(offset_buffer.ptr, read_now - null_count);
-			DictReference(result);
-			Offsets(reinterpret_cast(offset_buffer.ptr), define_out, read_now, filter, result_offset,
-			        result);
+			ConvertDictToSelVec(reinterpret_cast(offset_buffer.ptr),
+			                    reinterpret_cast(define_out), filter, read_now, result_offset);
+			if (result_offset == 0) {
+				result.Dictionary(*dictionary, dictionary_size + 1, dictionary_selection_vector, read_now);
+				DictionaryVector::SetDictionaryId(result, dictionary_id);
+				D_ASSERT(result.GetVectorType() == VectorType::DICTIONARY_VECTOR);
+			} else {
+				D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR);
+				VectorOperations::Copy(*dictionary, result, dictionary_selection_vector, read_now, 0, result_offset);
+			}
 		} else if (dbp_decoder) {
 			// TODO keep this in the state
 			auto read_buf = make_shared_ptr();
 
 			switch (schema.type) {
-			case duckdb_parquet::format::Type::INT32:
+			case duckdb_parquet::Type::INT32:
 				read_buf->resize(reader.allocator, sizeof(int32_t) * (read_now - null_count));
 				dbp_decoder->GetBatch(read_buf->ptr, read_now - null_count);
 
 				break;
-			case duckdb_parquet::format::Type::INT64:
+			case duckdb_parquet::Type::INT64:
 				read_buf->resize(reader.allocator, sizeof(int64_t) * (read_now - null_count));
 				dbp_decoder->GetBatch(read_buf->ptr, read_now - null_count);
 				break;
@@ -552,14 +603,14 @@ idx_t ColumnReader::Read(uint64_t num_values, parquet_filter_t &filter, data_ptr
 				throw std::runtime_error("DELTA_BINARY_PACKED should only be INT32 or INT64");
 			}
 			// Plain() will put NULLs in the right place
-			Plain(read_buf, define_out, read_now, filter, result_offset, result);
+			Plain(read_buf, define_out, read_now, &filter, result_offset, result);
 		} else if (rle_decoder) {
 			// RLE encoding for boolean
 			D_ASSERT(type.id() == LogicalTypeId::BOOLEAN);
 			auto read_buf = make_shared_ptr();
 			read_buf->resize(reader.allocator, sizeof(bool) * (read_now - null_count));
 			rle_decoder->GetBatch(read_buf->ptr, read_now - null_count);
-			PlainTemplated>(read_buf, define_out, read_now, filter,
+			PlainTemplated>(read_buf, define_out, read_now, &filter,
 			                                                            result_offset, result);
 		} else if (byte_array_data) {
 			// DELTA_BYTE_ARRAY or DELTA_LENGTH_BYTE_ARRAY
@@ -568,11 +619,11 @@ idx_t ColumnReader::Read(uint64_t num_values, parquet_filter_t &filter, data_ptr
 			auto read_buf = make_shared_ptr();
 
 			switch (schema.type) {
-			case duckdb_parquet::format::Type::FLOAT:
+			case duckdb_parquet::Type::FLOAT:
 				read_buf->resize(reader.allocator, sizeof(float) * (read_now - null_count));
 				bss_decoder->GetBatch(read_buf->ptr, read_now - null_count);
 				break;
-			case duckdb_parquet::format::Type::DOUBLE:
+			case duckdb_parquet::Type::DOUBLE:
 				read_buf->resize(reader.allocator, sizeof(double) * (read_now - null_count));
 				bss_decoder->GetBatch(read_buf->ptr, read_now - null_count);
 				break;
@@ -580,10 +631,10 @@ idx_t ColumnReader::Read(uint64_t num_values, parquet_filter_t &filter, data_ptr
 				throw std::runtime_error("BYTE_STREAM_SPLIT encoding is only supported for FLOAT or DOUBLE data");
 			}
 
-			Plain(read_buf, define_out, read_now, filter, result_offset, result);
+			Plain(read_buf, define_out, read_now, &filter, result_offset, result);
 		} else {
 			PlainReference(block, result);
-			Plain(block, define_out, read_now, filter, result_offset, result);
+			Plain(block, define_out, read_now, &filter, result_offset, result);
 		}
 
 		result_offset += read_now;
@@ -607,12 +658,13 @@ void ColumnReader::ApplyPendingSkips(idx_t num_values) {
 	dummy_repeat.zero();
 
 	// TODO this can be optimized, for example we dont actually have to bitunpack offsets
-	Vector dummy_result(type, nullptr);
+	Vector base_result(type, nullptr);
 
 	idx_t remaining = num_values;
 	idx_t read = 0;
 
 	while (remaining) {
+		Vector dummy_result(base_result);
 		idx_t to_read = MinValue(remaining, STANDARD_VECTOR_SIZE);
 		read += Read(to_read, none_filter, dummy_define.ptr, dummy_repeat.ptr, dummy_result);
 		remaining -= to_read;
@@ -657,27 +709,6 @@ uint32_t StringColumnReader::VerifyString(const char *str_data, uint32_t str_len
 	return VerifyString(str_data, str_len, Type() == LogicalTypeId::VARCHAR);
 }
 
-void StringColumnReader::Dictionary(shared_ptr data, idx_t num_entries) {
-	dict = std::move(data);
-	dict_strings = unsafe_unique_ptr(new string_t[num_entries]);
-	for (idx_t dict_idx = 0; dict_idx < num_entries; dict_idx++) {
-		uint32_t str_len;
-		if (fixed_width_string_length == 0) {
-			// variable length string: read from dictionary
-			str_len = dict->read();
-		} else {
-			// fixed length string
-			str_len = fixed_width_string_length;
-		}
-		dict->available(str_len);
-
-		auto dict_str = reinterpret_cast(dict->ptr);
-		auto actual_str_len = VerifyString(dict_str, str_len);
-		dict_strings[dict_idx] = string_t(dict_str, actual_str_len);
-		dict->inc(str_len);
-	}
-}
-
 static shared_ptr ReadDbpData(Allocator &allocator, ResizeableBuffer &buffer, idx_t &value_count) {
 	auto decoder = make_uniq(buffer.ptr, buffer.len);
 	value_count = decoder->TotalValues();
@@ -704,6 +735,7 @@ void StringColumnReader::PrepareDeltaLengthByteArray(ResizeableBuffer &buffer) {
 	auto string_data = FlatVector::GetData(*byte_array_data);
 	for (idx_t i = 0; i < value_count; i++) {
 		auto str_len = length_data[i];
+		buffer.available(str_len);
 		string_data[i] = StringVector::EmptyString(*byte_array_data, str_len);
 		auto result_data = string_data[i].GetDataWriteable();
 		memcpy(result_data, buffer.ptr, length_data[i]);
@@ -732,6 +764,7 @@ void StringColumnReader::PrepareDeltaByteArray(ResizeableBuffer &buffer) {
 	auto string_data = FlatVector::GetData(*byte_array_data);
 	for (idx_t i = 0; i < prefix_count; i++) {
 		auto str_len = prefix_data[i] + suffix_data[i];
+		buffer.available(suffix_data[i]);
 		string_data[i] = StringVector::EmptyString(*byte_array_data, str_len);
 		auto result_data = string_data[i].GetDataWriteable();
 		if (prefix_data[i] > 0) {
@@ -783,17 +816,10 @@ class ParquetStringVectorBuffer : public VectorBuffer {
 	shared_ptr buffer;
 };
 
-void StringColumnReader::DictReference(Vector &result) {
-	StringVector::AddBuffer(result, make_buffer(dict));
-}
 void StringColumnReader::PlainReference(shared_ptr plain_data, Vector &result) {
 	StringVector::AddBuffer(result, make_buffer(std::move(plain_data)));
 }
 
-string_t StringParquetValueConversion::DictRead(ByteBuffer &dict, uint32_t &offset, ColumnReader &reader) {
-	return reader.Cast().dict_strings[offset];
-}
-
 string_t StringParquetValueConversion::PlainRead(ByteBuffer &plain_data, ColumnReader &reader) {
 	auto &scr = reader.Cast();
 	uint32_t str_len = scr.fixed_width_string_length == 0 ? plain_data.read() : scr.fixed_width_string_length;
@@ -1156,14 +1182,19 @@ StructColumnReader::StructColumnReader(ParquetReader &reader, LogicalType type_p
 	D_ASSERT(type.InternalType() == PhysicalType::STRUCT);
 }
 
-ColumnReader *StructColumnReader::GetChildReader(idx_t child_idx) {
-	D_ASSERT(child_idx < child_readers.size());
-	return child_readers[child_idx].get();
+ColumnReader &StructColumnReader::GetChildReader(idx_t child_idx) {
+	if (!child_readers[child_idx]) {
+		throw InternalException("StructColumnReader::GetChildReader(%d) - but this child reader is not set", child_idx);
+	}
+	return *child_readers[child_idx].get();
 }
 
 void StructColumnReader::InitializeRead(idx_t row_group_idx_p, const vector &columns,
                                         TProtocol &protocol_p) {
 	for (auto &child : child_readers) {
+		if (!child) {
+			continue;
+		}
 		child->InitializeRead(row_group_idx_p, columns, protocol_p);
 	}
 }
@@ -1177,34 +1208,51 @@ idx_t StructColumnReader::Read(uint64_t num_values, parquet_filter_t &filter, da
 		ApplyPendingSkips(pending_skips);
 	}
 
-	idx_t read_count = num_values;
-	for (idx_t i = 0; i < struct_entries.size(); i++) {
-		auto child_num_values = child_readers[i]->Read(num_values, filter, define_out, repeat_out, *struct_entries[i]);
-		if (i == 0) {
+	optional_idx read_count;
+	for (idx_t i = 0; i < child_readers.size(); i++) {
+		auto &child = child_readers[i];
+		auto &target_vector = *struct_entries[i];
+		if (!child) {
+			// if we are not scanning this vector - set it to NULL
+			target_vector.SetVectorType(VectorType::CONSTANT_VECTOR);
+			ConstantVector::SetNull(target_vector, true);
+			continue;
+		}
+		auto child_num_values = child->Read(num_values, filter, define_out, repeat_out, target_vector);
+		if (!read_count.IsValid()) {
 			read_count = child_num_values;
-		} else if (read_count != child_num_values) {
+		} else if (read_count.GetIndex() != child_num_values) {
 			throw std::runtime_error("Struct child row count mismatch");
 		}
 	}
+	if (!read_count.IsValid()) {
+		read_count = num_values;
+	}
 	// set the validity mask for this level
 	auto &validity = FlatVector::Validity(result);
-	for (idx_t i = 0; i < read_count; i++) {
+	for (idx_t i = 0; i < read_count.GetIndex(); i++) {
 		if (define_out[i] < max_define) {
 			validity.SetInvalid(i);
 		}
 	}
 
-	return read_count;
+	return read_count.GetIndex();
 }
 
 void StructColumnReader::Skip(idx_t num_values) {
-	for (auto &child_reader : child_readers) {
-		child_reader->Skip(num_values);
+	for (auto &child : child_readers) {
+		if (!child) {
+			continue;
+		}
+		child->Skip(num_values);
 	}
 }
 
 void StructColumnReader::RegisterPrefetch(ThriftFileTransport &transport, bool allow_merge) {
 	for (auto &child : child_readers) {
+		if (!child) {
+			continue;
+		}
 		child->RegisterPrefetch(transport, allow_merge);
 	}
 }
@@ -1212,6 +1260,9 @@ void StructColumnReader::RegisterPrefetch(ThriftFileTransport &transport, bool a
 uint64_t StructColumnReader::TotalCompressedSize() {
 	uint64_t size = 0;
 	for (auto &child : child_readers) {
+		if (!child) {
+			continue;
+		}
 		size += child->TotalCompressedSize();
 	}
 	return size;
@@ -1248,9 +1299,6 @@ idx_t StructColumnReader::GroupRowsAvailable() {
 //===--------------------------------------------------------------------===//
 template 
 struct DecimalParquetValueConversion {
-	static DUCKDB_PHYSICAL_TYPE DictRead(ByteBuffer &dict, uint32_t &offset, ColumnReader &reader) {
-		return reinterpret_cast(dict.ptr)[offset];
-	}
 
 	static DUCKDB_PHYSICAL_TYPE PlainRead(ByteBuffer &plain_data, ColumnReader &reader) {
 		idx_t byte_len;
@@ -1300,14 +1348,6 @@ class DecimalColumnReader
 	          reader, std::move(type_p), schema_p, file_idx_p, max_define_p, max_repeat_p) {};
 
 protected:
-	void Dictionary(shared_ptr dictionary_data, idx_t num_entries) { // NOLINT
-		BaseType::AllocateDict(num_entries * sizeof(DUCKDB_PHYSICAL_TYPE));
-		auto dict_ptr = (DUCKDB_PHYSICAL_TYPE *)this->dict->ptr;
-		for (idx_t i = 0; i < num_entries; i++) {
-			dict_ptr[i] =
-			    DecimalParquetValueConversion::PlainRead(*dictionary_data, *this);
-		}
-	}
 };
 
 template 
@@ -1337,7 +1377,7 @@ static unique_ptr CreateDecimalReaderInternal(ParquetReader &reade
 
 template <>
 double ParquetDecimalUtils::ReadDecimalValue(const_data_ptr_t pointer, idx_t size,
-                                             const duckdb_parquet::format::SchemaElement &schema_ele) {
+                                             const duckdb_parquet::SchemaElement &schema_ele) {
 	double res = 0;
 	bool positive = (*pointer & 0x80) == 0;
 	for (idx_t i = 0; i < size; i += 8) {
@@ -1374,10 +1414,6 @@ unique_ptr ParquetDecimalUtils::CreateReader(ParquetReader &reader
 // UUID Column Reader
 //===--------------------------------------------------------------------===//
 struct UUIDValueConversion {
-	static hugeint_t DictRead(ByteBuffer &dict, uint32_t &offset, ColumnReader &reader) {
-		return reinterpret_cast(dict.ptr)[offset];
-	}
-
 	static hugeint_t ReadParquetUUID(const_data_ptr_t input) {
 		hugeint_t result;
 		result.lower = 0;
@@ -1425,15 +1461,6 @@ class UUIDColumnReader : public TemplatedColumnReader(reader, std::move(type_p), schema_p, file_idx_p,
 	                                                            max_define_p, max_repeat_p) {};
-
-protected:
-	void Dictionary(shared_ptr dictionary_data, idx_t num_entries) { // NOLINT
-		AllocateDict(num_entries * sizeof(hugeint_t));
-		auto dict_ptr = reinterpret_cast(this->dict->ptr);
-		for (idx_t i = 0; i < num_entries; i++) {
-			dict_ptr[i] = UUIDValueConversion::PlainRead(*dictionary_data, *this);
-		}
-	}
 };
 
 //===--------------------------------------------------------------------===//
@@ -1442,10 +1469,6 @@ class UUIDColumnReader : public TemplatedColumnReader(dict.ptr)[offset];
-	}
-
 	static interval_t ReadParquetInterval(const_data_ptr_t input) {
 		interval_t result;
 		result.months = Load(input);
@@ -1485,15 +1508,6 @@ class IntervalColumnReader : public TemplatedColumnReader(reader, std::move(type_p), schema_p, file_idx_p,
 	                                                                 max_define_p, max_repeat_p) {};
-
-protected:
-	void Dictionary(shared_ptr dictionary_data, idx_t num_entries) override { // NOLINT
-		AllocateDict(num_entries * sizeof(interval_t));
-		auto dict_ptr = reinterpret_cast(this->dict->ptr);
-		for (idx_t i = 0; i < num_entries; i++) {
-			dict_ptr[i] = IntervalValueConversion::PlainRead(*dictionary_data, *this);
-		}
-	}
 };
 
 //===--------------------------------------------------------------------===//
diff --git a/src/duckdb/extension/parquet/column_writer.cpp b/src/duckdb/extension/parquet/column_writer.cpp
index 1d42da05..add370c1 100644
--- a/src/duckdb/extension/parquet/column_writer.cpp
+++ b/src/duckdb/extension/parquet/column_writer.cpp
@@ -1,10 +1,12 @@
 #include "column_writer.hpp"
 
 #include "duckdb.hpp"
+#include "geo_parquet.hpp"
+#include "parquet_dbp_encoder.hpp"
 #include "parquet_rle_bp_decoder.hpp"
 #include "parquet_rle_bp_encoder.hpp"
+#include "parquet_statistics.hpp"
 #include "parquet_writer.hpp"
-#include "geo_parquet.hpp"
 #ifndef DUCKDB_AMALGAMATION
 #include "duckdb/common/exception.hpp"
 #include "duckdb/common/operator/comparison_operators.hpp"
@@ -19,49 +21,32 @@
 #include "duckdb/execution/expression_executor.hpp"
 #endif
 
+#include "brotli/encode.h"
 #include "lz4.hpp"
 #include "miniz_wrapper.hpp"
 #include "snappy.h"
 #include "zstd.h"
-#include "brotli/encode.h"
+#include "zstd/common/xxhash.hpp"
+
+#include 
 
 namespace duckdb {
 
 using namespace duckdb_parquet; // NOLINT
 using namespace duckdb_miniz;   // NOLINT
 
-using duckdb_parquet::format::CompressionCodec;
-using duckdb_parquet::format::ConvertedType;
-using duckdb_parquet::format::Encoding;
-using duckdb_parquet::format::FieldRepetitionType;
-using duckdb_parquet::format::FileMetaData;
-using duckdb_parquet::format::PageHeader;
-using duckdb_parquet::format::PageType;
-using ParquetRowGroup = duckdb_parquet::format::RowGroup;
-using duckdb_parquet::format::Type;
+using duckdb_parquet::CompressionCodec;
+using duckdb_parquet::ConvertedType;
+using duckdb_parquet::Encoding;
+using duckdb_parquet::FieldRepetitionType;
+using duckdb_parquet::FileMetaData;
+using duckdb_parquet::PageHeader;
+using duckdb_parquet::PageType;
+using ParquetRowGroup = duckdb_parquet::RowGroup;
+using duckdb_parquet::Type;
 
 #define PARQUET_DEFINE_VALID 65535
 
-static void VarintEncode(uint32_t val, WriteStream &ser) {
-	do {
-		uint8_t byte = val & 127;
-		val >>= 7;
-		if (val != 0) {
-			byte |= 128;
-		}
-		ser.Write(byte);
-	} while (val != 0);
-}
-
-static uint8_t GetVarintSize(uint32_t val) {
-	uint8_t res = 0;
-	do {
-		val >>= 7;
-		res++;
-	} while (val != 0);
-	return res;
-}
-
 //===--------------------------------------------------------------------===//
 // ColumnWriterStatistics
 //===--------------------------------------------------------------------===//
@@ -106,7 +91,7 @@ void RleBpEncoder::BeginPrepare(uint32_t first_value) {
 void RleBpEncoder::FinishRun() {
 	// last value, or value has changed
 	// write out the current run
-	byte_count += GetVarintSize(current_run_count << 1) + byte_width;
+	byte_count += ParquetDecodeUtils::GetVarintSize(current_run_count << 1) + byte_width;
 	current_run_count = 1;
 	run_count++;
 }
@@ -137,7 +122,7 @@ void RleBpEncoder::BeginWrite(WriteStream &writer, uint32_t first_value) {
 
 void RleBpEncoder::WriteRun(WriteStream &writer) {
 	// write the header of the run
-	VarintEncode(current_run_count << 1, writer);
+	ParquetDecodeUtils::VarintEncode(current_run_count << 1, writer);
 	// now write the value
 	D_ASSERT(last_value >> (byte_width * 8) == 0);
 	switch (byte_width) {
@@ -224,16 +209,11 @@ void ColumnWriter::CompressPage(MemoryStream &temp_writer, size_t &compressed_si
 		break;
 	}
 	case CompressionCodec::ZSTD: {
-		auto configured_compression = writer.CompressionLevel();
-		int compress_level = ZSTD_CLEVEL_DEFAULT;
-		if (configured_compression.IsValid()) {
-			compress_level = static_cast(configured_compression.GetIndex());
-		}
 		compressed_size = duckdb_zstd::ZSTD_compressBound(temp_writer.GetPosition());
 		compressed_buf = unique_ptr(new data_t[compressed_size]);
-		compressed_size =
-		    duckdb_zstd::ZSTD_compress((void *)compressed_buf.get(), compressed_size,
-		                               (const void *)temp_writer.GetData(), temp_writer.GetPosition(), compress_level);
+		compressed_size = duckdb_zstd::ZSTD_compress((void *)compressed_buf.get(), compressed_size,
+		                                             (const void *)temp_writer.GetData(), temp_writer.GetPosition(),
+		                                             UnsafeNumericCast(writer.CompressionLevel()));
 		compressed_data = compressed_buf.get();
 		break;
 	}
@@ -344,18 +324,20 @@ struct PageWriteInformation {
 
 class BasicColumnWriterState : public ColumnWriterState {
 public:
-	BasicColumnWriterState(duckdb_parquet::format::RowGroup &row_group, idx_t col_idx)
+	BasicColumnWriterState(duckdb_parquet::RowGroup &row_group, idx_t col_idx)
 	    : row_group(row_group), col_idx(col_idx) {
 		page_info.emplace_back();
 	}
 	~BasicColumnWriterState() override = default;
 
-	duckdb_parquet::format::RowGroup &row_group;
+	duckdb_parquet::RowGroup &row_group;
 	idx_t col_idx;
 	vector page_info;
 	vector write_info;
 	unique_ptr stats_state;
 	idx_t current_page = 0;
+
+	unique_ptr bloom_filter;
 };
 
 //===--------------------------------------------------------------------===//
@@ -377,17 +359,15 @@ class BasicColumnWriter : public ColumnWriter {
 	//! Dictionary pages must be below 2GB. Unlike data pages, there's only one dictionary page.
 	//! For this reason we go with a much higher, but still a conservative upper bound of 1GB;
 	static constexpr const idx_t MAX_UNCOMPRESSED_DICT_PAGE_SIZE = 1e9;
-	//! If the dictionary has this many entries, but the compression ratio is still below 1,
-	//! we stop creating the dictionary
+	//! If the dictionary has this many entries, we stop creating the dictionary
 	static constexpr const idx_t DICTIONARY_ANALYZE_THRESHOLD = 1e4;
-
 	//! The maximum size a key entry in an RLE page takes
 	static constexpr const idx_t MAX_DICTIONARY_KEY_SIZE = sizeof(uint32_t);
 	//! The size of encoding the string length
 	static constexpr const idx_t STRING_LENGTH_SIZE = sizeof(uint32_t);
 
 public:
-	unique_ptr InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) override;
+	unique_ptr InitializeWriteState(duckdb_parquet::RowGroup &row_group) override;
 	void Prepare(ColumnWriterState &state, ColumnWriterState *parent, Vector &vector, idx_t count) override;
 	void BeginWrite(ColumnWriterState &state) override;
 	void Write(ColumnWriterState &state, Vector &vector, idx_t count) override;
@@ -397,7 +377,7 @@ class BasicColumnWriter : public ColumnWriter {
 	static void WriteLevels(WriteStream &temp_writer, const unsafe_vector &levels, idx_t max_value,
 	                        idx_t start_offset, idx_t count);
 
-	virtual duckdb_parquet::format::Encoding::type GetEncoding(BasicColumnWriterState &state);
+	virtual duckdb_parquet::Encoding::type GetEncoding(BasicColumnWriterState &state);
 
 	void NextPage(BasicColumnWriterState &state);
 	void FlushPage(BasicColumnWriterState &state);
@@ -425,18 +405,18 @@ class BasicColumnWriter : public ColumnWriter {
 	void WriteDictionary(BasicColumnWriterState &state, unique_ptr temp_writer, idx_t row_count);
 	virtual void FlushDictionary(BasicColumnWriterState &state, ColumnWriterStatistics *stats);
 
-	void SetParquetStatistics(BasicColumnWriterState &state, duckdb_parquet::format::ColumnChunk &column);
-	void RegisterToRowGroup(duckdb_parquet::format::RowGroup &row_group);
+	void SetParquetStatistics(BasicColumnWriterState &state, duckdb_parquet::ColumnChunk &column);
+	void RegisterToRowGroup(duckdb_parquet::RowGroup &row_group);
 };
 
-unique_ptr BasicColumnWriter::InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) {
+unique_ptr BasicColumnWriter::InitializeWriteState(duckdb_parquet::RowGroup &row_group) {
 	auto result = make_uniq(row_group, row_group.columns.size());
 	RegisterToRowGroup(row_group);
 	return std::move(result);
 }
 
-void BasicColumnWriter::RegisterToRowGroup(duckdb_parquet::format::RowGroup &row_group) {
-	format::ColumnChunk column_chunk;
+void BasicColumnWriter::RegisterToRowGroup(duckdb_parquet::RowGroup &row_group) {
+	duckdb_parquet::ColumnChunk column_chunk;
 	column_chunk.__isset.meta_data = true;
 	column_chunk.meta_data.codec = writer.GetCodec();
 	column_chunk.meta_data.path_in_schema = schema_path;
@@ -486,7 +466,7 @@ void BasicColumnWriter::Prepare(ColumnWriterState &state_p, ColumnWriterState *p
 	}
 }
 
-duckdb_parquet::format::Encoding::type BasicColumnWriter::GetEncoding(BasicColumnWriterState &state) {
+duckdb_parquet::Encoding::type BasicColumnWriter::GetEncoding(BasicColumnWriterState &state) {
 	return Encoding::PLAIN;
 }
 
@@ -646,8 +626,10 @@ void BasicColumnWriter::Write(ColumnWriterState &state_p, Vector &vector, idx_t
 	}
 }
 
-void BasicColumnWriter::SetParquetStatistics(BasicColumnWriterState &state,
-                                             duckdb_parquet::format::ColumnChunk &column_chunk) {
+void BasicColumnWriter::SetParquetStatistics(BasicColumnWriterState &state, duckdb_parquet::ColumnChunk &column_chunk) {
+	if (!state.stats_state) {
+		return;
+	}
 	if (max_repeat == 0) {
 		column_chunk.meta_data.statistics.null_count = NumericCast(state.null_count);
 		column_chunk.meta_data.statistics.__isset.null_count = true;
@@ -682,6 +664,11 @@ void BasicColumnWriter::SetParquetStatistics(BasicColumnWriterState &state,
 		column_chunk.meta_data.__isset.statistics = true;
 	}
 	for (const auto &write_info : state.write_info) {
+		// only care about data page encodings, data_page_header.encoding is meaningless for dict
+		if (write_info.page_header.type != PageType::DATA_PAGE &&
+		    write_info.page_header.type != PageType::DATA_PAGE_V2) {
+			continue;
+		}
 		column_chunk.meta_data.encodings.push_back(write_info.page_header.data_page_header.encoding);
 	}
 }
@@ -728,6 +715,11 @@ void BasicColumnWriter::FinalizeWrite(ColumnWriterState &state_p) {
 	column_chunk.meta_data.total_compressed_size =
 	    UnsafeNumericCast(column_writer.GetTotalWritten() - start_offset);
 	column_chunk.meta_data.total_uncompressed_size = UnsafeNumericCast(total_uncompressed_size);
+
+	if (state.bloom_filter) {
+		writer.BufferBloomFilter(state.col_idx, std::move(state.bloom_filter));
+	}
+	// which row group is this?
 }
 
 void BasicColumnWriter::FlushDictionary(BasicColumnWriterState &state, ColumnWriterStatistics *stats) {
@@ -792,21 +784,47 @@ class NumericStatisticsState : public ColumnWriterStatistics {
 		return NumericLimits::IsSigned() ? GetMaxValue() : string();
 	}
 	string GetMinValue() override {
-		return HasStats() ? string((char *)&min, sizeof(T)) : string();
+		return HasStats() ? string(char_ptr_cast(&min), sizeof(T)) : string();
 	}
 	string GetMaxValue() override {
-		return HasStats() ? string((char *)&max, sizeof(T)) : string();
+		return HasStats() ? string(char_ptr_cast(&max), sizeof(T)) : string();
 	}
 };
 
 struct BaseParquetOperator {
+
+	template 
+	static void WriteToStream(const TGT &input, WriteStream &ser) {
+		ser.WriteData(const_data_ptr_cast(&input), sizeof(TGT));
+	}
+
+	template 
+	static uint64_t XXHash64(const TGT &target_value) {
+		return duckdb_zstd::XXH64(&target_value, sizeof(target_value), 0);
+	}
+
+	template 
+	static unique_ptr InitializeStats() {
+		return nullptr;
+	}
+
+	template 
+	static void HandleStats(ColumnWriterStatistics *stats, TGT target_value) {
+	}
+};
+
+struct ParquetCastOperator : public BaseParquetOperator {
+	template 
+	static TGT Operation(SRC input) {
+		return TGT(input);
+	}
 	template 
 	static unique_ptr InitializeStats() {
 		return make_uniq>();
 	}
 
 	template 
-	static void HandleStats(ColumnWriterStatistics *stats, SRC source_value, TGT target_value) {
+	static void HandleStats(ColumnWriterStatistics *stats, TGT target_value) {
 		auto &numeric_stats = (NumericStatisticsState &)*stats;
 		if (LessThan::Operation(target_value, numeric_stats.min)) {
 			numeric_stats.min = target_value;
@@ -817,24 +835,165 @@ struct BaseParquetOperator {
 	}
 };
 
-struct ParquetCastOperator : public BaseParquetOperator {
+struct ParquetTimestampNSOperator : public ParquetCastOperator {
 	template 
 	static TGT Operation(SRC input) {
 		return TGT(input);
 	}
 };
 
-struct ParquetTimestampNSOperator : public BaseParquetOperator {
+struct ParquetTimestampSOperator : public ParquetCastOperator {
 	template 
 	static TGT Operation(SRC input) {
-		return TGT(input);
+		return Timestamp::FromEpochSecondsPossiblyInfinite(input).value;
+	}
+};
+
+class StringStatisticsState : public ColumnWriterStatistics {
+	static constexpr const idx_t MAX_STRING_STATISTICS_SIZE = 10000;
+
+public:
+	StringStatisticsState() : has_stats(false), values_too_big(false), min(), max() {
+	}
+
+	bool has_stats;
+	bool values_too_big;
+	string min;
+	string max;
+
+public:
+	bool HasStats() override {
+		return has_stats;
+	}
+
+	void Update(const string_t &val) {
+		if (values_too_big) {
+			return;
+		}
+		auto str_len = val.GetSize();
+		if (str_len > MAX_STRING_STATISTICS_SIZE) {
+			// we avoid gathering stats when individual string values are too large
+			// this is because the statistics are copied into the Parquet file meta data in uncompressed format
+			// ideally we avoid placing several mega or giga-byte long strings there
+			// we put a threshold of 10KB, if we see strings that exceed this threshold we avoid gathering stats
+			values_too_big = true;
+			has_stats = false;
+			min = string();
+			max = string();
+			return;
+		}
+		if (!has_stats || LessThan::Operation(val, string_t(min))) {
+			min = val.GetString();
+		}
+		if (!has_stats || GreaterThan::Operation(val, string_t(max))) {
+			max = val.GetString();
+		}
+		has_stats = true;
+	}
+
+	string GetMin() override {
+		return GetMinValue();
+	}
+	string GetMax() override {
+		return GetMaxValue();
+	}
+	string GetMinValue() override {
+		return HasStats() ? min : string();
+	}
+	string GetMaxValue() override {
+		return HasStats() ? max : string();
 	}
 };
 
-struct ParquetTimestampSOperator : public BaseParquetOperator {
+struct ParquetStringOperator : public BaseParquetOperator {
 	template 
 	static TGT Operation(SRC input) {
-		return Timestamp::FromEpochSecondsPossiblyInfinite(input).value;
+		return input;
+	}
+
+	template 
+	static unique_ptr InitializeStats() {
+		return make_uniq();
+	}
+
+	template 
+	static void HandleStats(ColumnWriterStatistics *stats, TGT target_value) {
+		auto &string_stats = stats->Cast();
+		string_stats.Update(target_value);
+	}
+
+	template 
+	static void WriteToStream(const TGT &target_value, WriteStream &ser) {
+		ser.Write(target_value.GetSize());
+		ser.WriteData(const_data_ptr_cast(target_value.GetData()), target_value.GetSize());
+	}
+
+	template 
+	static uint64_t XXHash64(const TGT &target_value) {
+		return duckdb_zstd::XXH64(target_value.GetData(), target_value.GetSize(), 0);
+	}
+};
+
+struct ParquetIntervalTargetType {
+	static constexpr const idx_t PARQUET_INTERVAL_SIZE = 12;
+	data_t bytes[PARQUET_INTERVAL_SIZE];
+};
+
+struct ParquetIntervalOperator : public BaseParquetOperator {
+	template 
+	static TGT Operation(SRC input) {
+
+		if (input.days < 0 || input.months < 0 || input.micros < 0) {
+			throw IOException("Parquet files do not support negative intervals");
+		}
+		TGT result;
+		Store(input.months, result.bytes);
+		Store(input.days, result.bytes + sizeof(uint32_t));
+		Store(input.micros / 1000, result.bytes + sizeof(uint32_t) * 2);
+		return result;
+	}
+
+	template 
+	static void WriteToStream(const TGT &target_value, WriteStream &ser) {
+		ser.WriteData(target_value.bytes, ParquetIntervalTargetType::PARQUET_INTERVAL_SIZE);
+	}
+
+	template 
+	static uint64_t XXHash64(const TGT &target_value) {
+		return duckdb_zstd::XXH64(target_value.bytes, ParquetIntervalTargetType::PARQUET_INTERVAL_SIZE, 0);
+	}
+};
+
+struct ParquetUUIDTargetType {
+	static constexpr const idx_t PARQUET_UUID_SIZE = 16;
+	data_t bytes[PARQUET_UUID_SIZE];
+};
+
+struct ParquetUUIDOperator : public BaseParquetOperator {
+	template 
+	static TGT Operation(SRC input) {
+		TGT result;
+		uint64_t high_bytes = input.upper ^ (int64_t(1) << 63);
+		uint64_t low_bytes = input.lower;
+		for (idx_t i = 0; i < sizeof(uint64_t); i++) {
+			auto shift_count = (sizeof(uint64_t) - i - 1) * 8;
+			result.bytes[i] = (high_bytes >> shift_count) & 0xFF;
+		}
+		for (idx_t i = 0; i < sizeof(uint64_t); i++) {
+			auto shift_count = (sizeof(uint64_t) - i - 1) * 8;
+			result.bytes[sizeof(uint64_t) + i] = (low_bytes >> shift_count) & 0xFF;
+		}
+		return result;
+	}
+
+	template 
+	static void WriteToStream(const TGT &target_value, WriteStream &ser) {
+		ser.WriteData(target_value.bytes, ParquetUUIDTargetType::PARQUET_UUID_SIZE);
+	}
+
+	template 
+	static uint64_t XXHash64(const TGT &target_value) {
+		return duckdb_zstd::XXH64(target_value.bytes, ParquetUUIDTargetType::PARQUET_UUID_SIZE, 0);
 	}
 };
 
@@ -845,7 +1004,7 @@ struct ParquetTimeTZOperator : public BaseParquetOperator {
 	}
 };
 
-struct ParquetHugeintOperator {
+struct ParquetHugeintOperator : public BaseParquetOperator {
 	template 
 	static TGT Operation(SRC input) {
 		return Hugeint::Cast(input);
@@ -857,11 +1016,11 @@ struct ParquetHugeintOperator {
 	}
 
 	template 
-	static void HandleStats(ColumnWriterStatistics *stats, SRC source_value, TGT target_value) {
+	static void HandleStats(ColumnWriterStatistics *stats, TGT target_value) {
 	}
 };
 
-struct ParquetUhugeintOperator {
+struct ParquetUhugeintOperator : public BaseParquetOperator {
 	template 
 	static TGT Operation(SRC input) {
 		return Uhugeint::Cast(input);
@@ -873,16 +1032,13 @@ struct ParquetUhugeintOperator {
 	}
 
 	template 
-	static void HandleStats(ColumnWriterStatistics *stats, SRC source_value, TGT target_value) {
+	static void HandleStats(ColumnWriterStatistics *stats, TGT target_value) {
 	}
 };
 
 template 
 static void TemplatedWritePlain(Vector &col, ColumnWriterStatistics *stats, const idx_t chunk_start,
-                                const idx_t chunk_end, ValidityMask &mask, WriteStream &ser) {
-	static constexpr idx_t WRITE_COMBINER_CAPACITY = 8;
-	TGT write_combiner[WRITE_COMBINER_CAPACITY];
-	idx_t write_combiner_count = 0;
+                                const idx_t chunk_end, const ValidityMask &mask, WriteStream &ser) {
 
 	const auto *ptr = FlatVector::GetData(col);
 	for (idx_t r = chunk_start; r < chunk_end; r++) {
@@ -890,113 +1046,395 @@ static void TemplatedWritePlain(Vector &col, ColumnWriterStatistics *stats, cons
 			continue;
 		}
 		TGT target_value = OP::template Operation(ptr[r]);
-		OP::template HandleStats(stats, ptr[r], target_value);
-		write_combiner[write_combiner_count++] = target_value;
-		if (write_combiner_count == WRITE_COMBINER_CAPACITY) {
-			ser.WriteData(const_data_ptr_cast(write_combiner), WRITE_COMBINER_CAPACITY * sizeof(TGT));
-			write_combiner_count = 0;
-		}
+		OP::template HandleStats(stats, target_value);
+		OP::template WriteToStream(target_value, ser);
 	}
-	ser.WriteData(const_data_ptr_cast(write_combiner), write_combiner_count * sizeof(TGT));
 }
 
-template 
-class StandardColumnWriter : public BasicColumnWriter {
+template 
+class StandardColumnWriterState : public BasicColumnWriterState {
 public:
-	StandardColumnWriter(ParquetWriter &writer, idx_t schema_idx, vector schema_path_p, // NOLINT
-	                     idx_t max_repeat, idx_t max_define, bool can_have_nulls)
-	    : BasicColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls) {
+	StandardColumnWriterState(duckdb_parquet::RowGroup &row_group, idx_t col_idx)
+	    : BasicColumnWriterState(row_group, col_idx) {
 	}
-	~StandardColumnWriter() override = default;
+	~StandardColumnWriterState() override = default;
+
+	// analysis state for integer values for DELTA_BINARY_PACKED
+	idx_t total_value_count = 0;
+
+	unordered_map dictionary;
+	duckdb_parquet::Encoding::type encoding;
+};
 
+template 
+class StandardWriterPageState : public ColumnWriterPageState {
 public:
-	unique_ptr InitializeStatsState() override {
-		return OP::template InitializeStats();
+	explicit StandardWriterPageState(const idx_t total_value_count, Encoding::type encoding_p,
+	                                 const unordered_map &dictionary_p)
+	    : encoding(encoding_p), dbp_initialized(false), dbp_encoder(total_value_count), dictionary(dictionary_p),
+	      dict_written_value(false), dict_bit_width(RleBpDecoder::ComputeBitWidth(dictionary.size())),
+	      dict_encoder(dict_bit_width) {
 	}
+	duckdb_parquet::Encoding::type encoding;
 
-	void WriteVector(WriteStream &temp_writer, ColumnWriterStatistics *stats, ColumnWriterPageState *page_state,
-	                 Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
-		auto &mask = FlatVector::Validity(input_column);
-		TemplatedWritePlain(input_column, stats, chunk_start, chunk_end, mask, temp_writer);
-	}
+	bool dbp_initialized;
+	DbpEncoder dbp_encoder;
 
-	idx_t GetRowSize(const Vector &vector, const idx_t index, const BasicColumnWriterState &state) const override {
-		return sizeof(TGT);
-	}
+	const unordered_map &dictionary;
+	bool dict_written_value;
+	uint32_t dict_bit_width;
+	RleBpEncoder dict_encoder;
 };
 
-//===--------------------------------------------------------------------===//
-// Boolean Column Writer
-//===--------------------------------------------------------------------===//
-class BooleanStatisticsState : public ColumnWriterStatistics {
-public:
-	BooleanStatisticsState() : min(true), max(false) {
-	}
+namespace dbp_encoder {
+template 
+void BeginWrite(DbpEncoder &encoder, WriteStream &writer, const T &first_value) {
+	throw InternalException("Can't write type to DELTA_BINARY_PACKED column");
+}
 
-	bool min;
-	bool max;
+template <>
+void BeginWrite(DbpEncoder &encoder, WriteStream &writer, const int64_t &first_value) {
+	encoder.BeginWrite(writer, first_value);
+}
 
-public:
-	bool HasStats() override {
-		return !(min && !max);
-	}
+template <>
+void BeginWrite(DbpEncoder &encoder, WriteStream &writer, const int32_t &first_value) {
+	BeginWrite(encoder, writer, UnsafeNumericCast(first_value));
+}
 
-	string GetMin() override {
-		return GetMinValue();
-	}
-	string GetMax() override {
-		return GetMaxValue();
-	}
-	string GetMinValue() override {
-		return HasStats() ? string(const_char_ptr_cast(&min), sizeof(bool)) : string();
-	}
-	string GetMaxValue() override {
-		return HasStats() ? string(const_char_ptr_cast(&max), sizeof(bool)) : string();
-	}
-};
+template <>
+void BeginWrite(DbpEncoder &encoder, WriteStream &writer, const uint64_t &first_value) {
+	encoder.BeginWrite(writer, UnsafeNumericCast(first_value));
+}
 
-class BooleanWriterPageState : public ColumnWriterPageState {
-public:
-	uint8_t byte = 0;
-	uint8_t byte_pos = 0;
-};
+template <>
+void BeginWrite(DbpEncoder &encoder, WriteStream &writer, const uint32_t &first_value) {
+	BeginWrite(encoder, writer, UnsafeNumericCast(first_value));
+}
 
-class BooleanColumnWriter : public BasicColumnWriter {
+template 
+void WriteValue(DbpEncoder &encoder, WriteStream &writer, const T &value) {
+	throw InternalException("Can't write type to DELTA_BINARY_PACKED column");
+}
+
+template <>
+void WriteValue(DbpEncoder &encoder, WriteStream &writer, const int64_t &value) {
+	encoder.WriteValue(writer, value);
+}
+
+template <>
+void WriteValue(DbpEncoder &encoder, WriteStream &writer, const int32_t &value) {
+	WriteValue(encoder, writer, UnsafeNumericCast(value));
+}
+
+template <>
+void WriteValue(DbpEncoder &encoder, WriteStream &writer, const uint64_t &value) {
+	encoder.WriteValue(writer, UnsafeNumericCast(value));
+}
+
+template <>
+void WriteValue(DbpEncoder &encoder, WriteStream &writer, const uint32_t &value) {
+	WriteValue(encoder, writer, UnsafeNumericCast(value));
+}
+
+} // namespace dbp_encoder
+
+template 
+class StandardColumnWriter : public BasicColumnWriter {
 public:
-	BooleanColumnWriter(ParquetWriter &writer, idx_t schema_idx, vector schema_path_p, idx_t max_repeat,
-	                    idx_t max_define, bool can_have_nulls)
+	StandardColumnWriter(ParquetWriter &writer, idx_t schema_idx, vector schema_path_p, // NOLINT
+	                     idx_t max_repeat, idx_t max_define, bool can_have_nulls)
 	    : BasicColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls) {
 	}
-	~BooleanColumnWriter() override = default;
+	~StandardColumnWriter() override = default;
 
 public:
-	unique_ptr InitializeStatsState() override {
-		return make_uniq();
+	unique_ptr InitializeWriteState(duckdb_parquet::RowGroup &row_group) override {
+		auto result = make_uniq>(row_group, row_group.columns.size());
+		result->encoding = Encoding::RLE_DICTIONARY;
+		RegisterToRowGroup(row_group);
+		return std::move(result);
 	}
 
-	void WriteVector(WriteStream &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *state_p,
-	                 Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
-		auto &stats = stats_p->Cast();
-		auto &state = state_p->Cast();
-		auto &mask = FlatVector::Validity(input_column);
+	unique_ptr InitializePageState(BasicColumnWriterState &state_p) override {
+		auto &state = state_p.Cast>();
 
-		auto *ptr = FlatVector::GetData(input_column);
-		for (idx_t r = chunk_start; r < chunk_end; r++) {
-			if (mask.RowIsValid(r)) {
-				// only encode if non-null
-				if (ptr[r]) {
-					stats.max = true;
-					state.byte |= 1 << state.byte_pos;
-				} else {
-					stats.min = false;
-				}
-				state.byte_pos++;
+		auto result =
+		    make_uniq>(state.total_value_count, state.encoding, state.dictionary);
+		return std::move(result);
+	}
 
-				if (state.byte_pos == 8) {
-					temp_writer.Write(state.byte);
-					state.byte = 0;
-					state.byte_pos = 0;
-				}
+	void FlushPageState(WriteStream &temp_writer, ColumnWriterPageState *state_p) override {
+		auto &page_state = state_p->Cast>();
+		switch (page_state.encoding) {
+		case Encoding::DELTA_BINARY_PACKED:
+			if (!page_state.dbp_initialized) {
+				dbp_encoder::BeginWrite(page_state.dbp_encoder, temp_writer, 0);
+			}
+			page_state.dbp_encoder.FinishWrite(temp_writer);
+			break;
+		case Encoding::RLE_DICTIONARY:
+			D_ASSERT(page_state.dict_bit_width != 0);
+			if (!page_state.dict_written_value) {
+				// all values are null
+				// just write the bit width
+				temp_writer.Write(page_state.dict_bit_width);
+				return;
+			}
+			page_state.dict_encoder.FinishWrite(temp_writer);
+
+			break;
+		case Encoding::PLAIN:
+			break;
+		default:
+			throw InternalException("Unknown encoding");
+		}
+	}
+
+	Encoding::type GetEncoding(BasicColumnWriterState &state_p) override {
+		auto &state = state_p.Cast>();
+		return state.encoding;
+	}
+
+	bool HasAnalyze() override {
+		return true;
+	}
+
+	void Analyze(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) override {
+		auto &state = state_p.Cast>();
+
+		auto data_ptr = FlatVector::GetData(vector);
+		idx_t vector_index = 0;
+		uint32_t new_value_index = state.dictionary.size();
+
+		const bool check_parent_empty = parent && !parent->is_empty.empty();
+		const idx_t parent_index = state.definition_levels.size();
+
+		const idx_t vcount =
+		    check_parent_empty ? parent->definition_levels.size() - state.definition_levels.size() : count;
+
+		const auto &validity = FlatVector::Validity(vector);
+
+		for (idx_t i = 0; i < vcount; i++) {
+			if (check_parent_empty && parent->is_empty[parent_index + i]) {
+				continue;
+			}
+			if (validity.RowIsValid(vector_index)) {
+				if (state.dictionary.size() <= writer.DictionarySizeLimit()) {
+					const auto &src_value = data_ptr[vector_index];
+					if (state.dictionary.find(src_value) == state.dictionary.end()) {
+						state.dictionary[src_value] = new_value_index;
+						new_value_index++;
+					}
+				}
+				state.total_value_count++;
+			}
+			vector_index++;
+		}
+	}
+
+	void FinalizeAnalyze(ColumnWriterState &state_p) override {
+		const auto type = writer.GetType(schema_idx);
+
+		auto &state = state_p.Cast>();
+		if (state.dictionary.size() == 0 || state.dictionary.size() > writer.DictionarySizeLimit()) {
+			// special handling for int column: dpb, otherwise plain
+			state.encoding = (type == Type::type::INT32 || type == Type::type::INT64) ? Encoding::DELTA_BINARY_PACKED
+			                                                                          : Encoding::PLAIN;
+			state.dictionary.clear();
+		}
+	}
+
+	unique_ptr InitializeStatsState() override {
+		return OP::template InitializeStats();
+	}
+
+	bool HasDictionary(BasicColumnWriterState &state_p) override {
+		auto &state = state_p.Cast>();
+		return state.encoding == Encoding::RLE_DICTIONARY;
+	}
+
+	idx_t DictionarySize(BasicColumnWriterState &state_p) override {
+		auto &state = state_p.Cast>();
+		return state.dictionary.size();
+	}
+
+	void WriteVector(WriteStream &temp_writer, ColumnWriterStatistics *stats, ColumnWriterPageState *page_state_p,
+	                 Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
+		auto &page_state = page_state_p->Cast>();
+
+		const auto &mask = FlatVector::Validity(input_column);
+		const auto *data_ptr = FlatVector::GetData(input_column);
+
+		switch (page_state.encoding) {
+		case Encoding::RLE_DICTIONARY: {
+			for (idx_t r = chunk_start; r < chunk_end; r++) {
+				if (!mask.RowIsValid(r)) {
+					continue;
+				}
+				auto &src_val = data_ptr[r];
+				auto value_index = page_state.dictionary.at(src_val);
+				if (!page_state.dict_written_value) {
+					// first value
+					// write the bit-width as a one-byte entry
+					temp_writer.Write(page_state.dict_bit_width);
+					// now begin writing the actual value
+					page_state.dict_encoder.BeginWrite(temp_writer, value_index);
+					page_state.dict_written_value = true;
+				} else {
+					page_state.dict_encoder.WriteValue(temp_writer, value_index);
+				}
+			}
+			break;
+		}
+
+		case Encoding::DELTA_BINARY_PACKED: {
+			idx_t r = chunk_start;
+			if (!page_state.dbp_initialized) {
+				// find first non-null value
+				for (; r < chunk_end; r++) {
+					if (!mask.RowIsValid(r)) {
+						continue;
+					}
+					const TGT target_value = OP::template Operation(data_ptr[r]);
+					OP::template HandleStats(stats, target_value);
+					dbp_encoder::BeginWrite(page_state.dbp_encoder, temp_writer, target_value);
+					page_state.dbp_initialized = true;
+					r++; // skip over
+					break;
+				}
+			}
+
+			for (; r < chunk_end; r++) {
+				if (!mask.RowIsValid(r)) {
+					continue;
+				}
+				const TGT target_value = OP::template Operation(data_ptr[r]);
+				OP::template HandleStats(stats, target_value);
+				dbp_encoder::WriteValue(page_state.dbp_encoder, temp_writer, target_value);
+			}
+			break;
+		}
+		case Encoding::PLAIN: {
+			D_ASSERT(page_state.encoding == Encoding::PLAIN);
+			TemplatedWritePlain(input_column, stats, chunk_start, chunk_end, mask, temp_writer);
+			break;
+		}
+		default:
+			throw InternalException("Unknown encoding");
+		}
+	}
+
+	void FlushDictionary(BasicColumnWriterState &state_p, ColumnWriterStatistics *stats) override {
+		auto &state = state_p.Cast>();
+
+		D_ASSERT(state.encoding == Encoding::RLE_DICTIONARY);
+
+		// first we need to sort the values in index order
+		auto values = vector(state.dictionary.size());
+		for (const auto &entry : state.dictionary) {
+			values[entry.second] = entry.first;
+		}
+
+		state.bloom_filter =
+		    make_uniq(state.dictionary.size(), writer.BloomFilterFalsePositiveRatio());
+
+		// first write the contents of the dictionary page to a temporary buffer
+		auto temp_writer = make_uniq(MaxValue(
+		    NextPowerOfTwo(state.dictionary.size() * sizeof(TGT)), MemoryStream::DEFAULT_INITIAL_CAPACITY));
+		for (idx_t r = 0; r < values.size(); r++) {
+			const TGT target_value = OP::template Operation(values[r]);
+			// update the statistics
+			OP::template HandleStats(stats, target_value);
+			// update the bloom filter
+			auto hash = OP::template XXHash64(target_value);
+			state.bloom_filter->FilterInsert(hash);
+			// actually write the dictionary value
+			OP::template WriteToStream(target_value, *temp_writer);
+		}
+		// flush the dictionary page and add it to the to-be-written pages
+		WriteDictionary(state, std::move(temp_writer), values.size());
+		// bloom filter will be queued for writing in ParquetWriter::BufferBloomFilter one level up
+	}
+
+	// TODO this now vastly over-estimates the page size
+	idx_t GetRowSize(const Vector &vector, const idx_t index, const BasicColumnWriterState &state_p) const override {
+		return sizeof(TGT);
+	}
+};
+
+//===--------------------------------------------------------------------===//
+// Boolean Column Writer
+//===--------------------------------------------------------------------===//
+class BooleanStatisticsState : public ColumnWriterStatistics {
+public:
+	BooleanStatisticsState() : min(true), max(false) {
+	}
+
+	bool min;
+	bool max;
+
+public:
+	bool HasStats() override {
+		return !(min && !max);
+	}
+
+	string GetMin() override {
+		return GetMinValue();
+	}
+	string GetMax() override {
+		return GetMaxValue();
+	}
+	string GetMinValue() override {
+		return HasStats() ? string(const_char_ptr_cast(&min), sizeof(bool)) : string();
+	}
+	string GetMaxValue() override {
+		return HasStats() ? string(const_char_ptr_cast(&max), sizeof(bool)) : string();
+	}
+};
+
+class BooleanWriterPageState : public ColumnWriterPageState {
+public:
+	uint8_t byte = 0;
+	uint8_t byte_pos = 0;
+};
+
+class BooleanColumnWriter : public BasicColumnWriter {
+public:
+	BooleanColumnWriter(ParquetWriter &writer, idx_t schema_idx, vector schema_path_p, idx_t max_repeat,
+	                    idx_t max_define, bool can_have_nulls)
+	    : BasicColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls) {
+	}
+	~BooleanColumnWriter() override = default;
+
+public:
+	unique_ptr InitializeStatsState() override {
+		return make_uniq();
+	}
+
+	void WriteVector(WriteStream &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *state_p,
+	                 Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
+		auto &stats = stats_p->Cast();
+		auto &state = state_p->Cast();
+		auto &mask = FlatVector::Validity(input_column);
+
+		auto *ptr = FlatVector::GetData(input_column);
+		for (idx_t r = chunk_start; r < chunk_end; r++) {
+			if (mask.RowIsValid(r)) {
+				// only encode if non-null
+				if (ptr[r]) {
+					stats.max = true;
+					state.byte |= 1 << state.byte_pos;
+				} else {
+					stats.min = false;
+				}
+				state.byte_pos++;
+
+				if (state.byte_pos == 8) {
+					temp_writer.Write(state.byte);
+					state.byte = 0;
+					state.byte_pos = 0;
+				}
 			}
 		}
 	}
@@ -1120,447 +1558,47 @@ class FixedDecimalColumnWriter : public BasicColumnWriter {
 	}
 };
 
-//===--------------------------------------------------------------------===//
-// UUID Column Writer
-//===--------------------------------------------------------------------===//
-class UUIDColumnWriter : public BasicColumnWriter {
-	static constexpr const idx_t PARQUET_UUID_SIZE = 16;
-
-public:
-	UUIDColumnWriter(ParquetWriter &writer, idx_t schema_idx, vector schema_path_p, idx_t max_repeat,
-	                 idx_t max_define, bool can_have_nulls)
-	    : BasicColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls) {
-	}
-	~UUIDColumnWriter() override = default;
-
-public:
-	static void WriteParquetUUID(hugeint_t input, data_ptr_t result) {
-		uint64_t high_bytes = input.upper ^ (int64_t(1) << 63);
-		uint64_t low_bytes = input.lower;
-
-		for (idx_t i = 0; i < sizeof(uint64_t); i++) {
-			auto shift_count = (sizeof(uint64_t) - i - 1) * 8;
-			result[i] = (high_bytes >> shift_count) & 0xFF;
-		}
-		for (idx_t i = 0; i < sizeof(uint64_t); i++) {
-			auto shift_count = (sizeof(uint64_t) - i - 1) * 8;
-			result[sizeof(uint64_t) + i] = (low_bytes >> shift_count) & 0xFF;
-		}
-	}
-
-	void WriteVector(WriteStream &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *page_state,
-	                 Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
-		auto &mask = FlatVector::Validity(input_column);
-		auto *ptr = FlatVector::GetData(input_column);
-
-		data_t temp_buffer[PARQUET_UUID_SIZE];
-		for (idx_t r = chunk_start; r < chunk_end; r++) {
-			if (mask.RowIsValid(r)) {
-				WriteParquetUUID(ptr[r], temp_buffer);
-				temp_writer.WriteData(temp_buffer, PARQUET_UUID_SIZE);
-			}
-		}
-	}
-
-	idx_t GetRowSize(const Vector &vector, const idx_t index, const BasicColumnWriterState &state) const override {
-		return PARQUET_UUID_SIZE;
-	}
-};
-
-//===--------------------------------------------------------------------===//
-// Interval Column Writer
-//===--------------------------------------------------------------------===//
-class IntervalColumnWriter : public BasicColumnWriter {
-	static constexpr const idx_t PARQUET_INTERVAL_SIZE = 12;
-
-public:
-	IntervalColumnWriter(ParquetWriter &writer, idx_t schema_idx, vector schema_path_p, idx_t max_repeat,
-	                     idx_t max_define, bool can_have_nulls)
-	    : BasicColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls) {
-	}
-	~IntervalColumnWriter() override = default;
-
-public:
-	static void WriteParquetInterval(interval_t input, data_ptr_t result) {
-		if (input.days < 0 || input.months < 0 || input.micros < 0) {
-			throw IOException("Parquet files do not support negative intervals");
-		}
-		Store(input.months, result);
-		Store(input.days, result + sizeof(uint32_t));
-		Store(input.micros / 1000, result + sizeof(uint32_t) * 2);
-	}
-
-	void WriteVector(WriteStream &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *page_state,
-	                 Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
-		auto &mask = FlatVector::Validity(input_column);
-		auto *ptr = FlatVector::GetData(input_column);
-
-		data_t temp_buffer[PARQUET_INTERVAL_SIZE];
-		for (idx_t r = chunk_start; r < chunk_end; r++) {
-			if (mask.RowIsValid(r)) {
-				WriteParquetInterval(ptr[r], temp_buffer);
-				temp_writer.WriteData(temp_buffer, PARQUET_INTERVAL_SIZE);
-			}
-		}
-	}
-
-	idx_t GetRowSize(const Vector &vector, const idx_t index, const BasicColumnWriterState &state) const override {
-		return PARQUET_INTERVAL_SIZE;
-	}
-};
-
-//===--------------------------------------------------------------------===//
-// String Column Writer
-//===--------------------------------------------------------------------===//
-class StringStatisticsState : public ColumnWriterStatistics {
-	static constexpr const idx_t MAX_STRING_STATISTICS_SIZE = 10000;
-
-public:
-	StringStatisticsState() : has_stats(false), values_too_big(false), min(), max() {
-	}
-
-	bool has_stats;
-	bool values_too_big;
-	string min;
-	string max;
-
-public:
-	bool HasStats() override {
-		return has_stats;
-	}
-
-	void Update(const string_t &val) {
-		if (values_too_big) {
-			return;
-		}
-		auto str_len = val.GetSize();
-		if (str_len > MAX_STRING_STATISTICS_SIZE) {
-			// we avoid gathering stats when individual string values are too large
-			// this is because the statistics are copied into the Parquet file meta data in uncompressed format
-			// ideally we avoid placing several mega or giga-byte long strings there
-			// we put a threshold of 10KB, if we see strings that exceed this threshold we avoid gathering stats
-			values_too_big = true;
-			has_stats = false;
-			min = string();
-			max = string();
-			return;
-		}
-		if (!has_stats || LessThan::Operation(val, string_t(min))) {
-			min = val.GetString();
-		}
-		if (!has_stats || GreaterThan::Operation(val, string_t(max))) {
-			max = val.GetString();
-		}
-		has_stats = true;
-	}
-
-	string GetMin() override {
-		return GetMinValue();
-	}
-	string GetMax() override {
-		return GetMaxValue();
-	}
-	string GetMinValue() override {
-		return HasStats() ? min : string();
-	}
-	string GetMaxValue() override {
-		return HasStats() ? max : string();
-	}
-};
-
-class StringColumnWriterState : public BasicColumnWriterState {
-public:
-	StringColumnWriterState(duckdb_parquet::format::RowGroup &row_group, idx_t col_idx)
-	    : BasicColumnWriterState(row_group, col_idx) {
-	}
-	~StringColumnWriterState() override = default;
-
-	// analysis state
-	idx_t estimated_dict_page_size = 0;
-	idx_t estimated_rle_pages_size = 0;
-	idx_t estimated_plain_size = 0;
-
-	// Dictionary and accompanying string heap
-	string_map_t dictionary;
-	// key_bit_width== 0 signifies the chunk is written in plain encoding
-	uint32_t key_bit_width;
-
-	bool IsDictionaryEncoded() const {
-		return key_bit_width != 0;
-	}
-};
-
-class StringWriterPageState : public ColumnWriterPageState {
-public:
-	explicit StringWriterPageState(uint32_t bit_width, const string_map_t &values)
-	    : bit_width(bit_width), dictionary(values), encoder(bit_width), written_value(false) {
-		D_ASSERT(IsDictionaryEncoded() || (bit_width == 0 && dictionary.empty()));
-	}
-
-	bool IsDictionaryEncoded() {
-		return bit_width != 0;
-	}
-	// if 0, we're writing a plain page
-	uint32_t bit_width;
-	const string_map_t &dictionary;
-	RleBpEncoder encoder;
-	bool written_value;
-};
-
-class StringColumnWriter : public BasicColumnWriter {
-public:
-	StringColumnWriter(ParquetWriter &writer, idx_t schema_idx, vector schema_path_p, idx_t max_repeat,
-	                   idx_t max_define, bool can_have_nulls)
-	    : BasicColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls) {
-	}
-	~StringColumnWriter() override = default;
-
-public:
-	unique_ptr InitializeStatsState() override {
-		return make_uniq();
-	}
-
-	unique_ptr InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) override {
-		auto result = make_uniq(row_group, row_group.columns.size());
-		RegisterToRowGroup(row_group);
-		return std::move(result);
-	}
-
-	bool HasAnalyze() override {
-		return true;
-	}
-
-	void Analyze(ColumnWriterState &state_p, ColumnWriterState *parent, Vector &vector, idx_t count) override {
-		auto &state = state_p.Cast();
-		if (writer.DictionaryCompressionRatioThreshold() == NumericLimits::Maximum() ||
-		    (state.dictionary.size() > DICTIONARY_ANALYZE_THRESHOLD && WontUseDictionary(state))) {
-			// Early out: compression ratio is less than the specified parameter
-			// after seeing more entries than the threshold
-			return;
-		}
-
-		idx_t vcount = parent ? parent->definition_levels.size() - state.definition_levels.size() : count;
-		idx_t parent_index = state.definition_levels.size();
-		auto &validity = FlatVector::Validity(vector);
-		idx_t vector_index = 0;
-		uint32_t new_value_index = state.dictionary.size();
-		uint32_t last_value_index = -1;
-		idx_t run_length = 0;
-		idx_t run_count = 0;
-		auto strings = FlatVector::GetData(vector);
-		for (idx_t i = 0; i < vcount; i++) {
-			if (parent && !parent->is_empty.empty() && parent->is_empty[parent_index + i]) {
-				continue;
-			}
-
-			if (validity.RowIsValid(vector_index)) {
-				run_length++;
-				const auto &value = strings[vector_index];
-				// Try to insert into the dictionary. If it's already there, we get back the value index
-				auto found = state.dictionary.insert(string_map_t::value_type(value, new_value_index));
-				state.estimated_plain_size += value.GetSize() + STRING_LENGTH_SIZE;
-				if (found.second) {
-					// string didn't exist yet in the dictionary
-					new_value_index++;
-					state.estimated_dict_page_size += value.GetSize() + MAX_DICTIONARY_KEY_SIZE;
-				}
-
-				// if the value changed, we will encode it in the page
-				if (last_value_index != found.first->second) {
-					// we will add the value index size later, when we know the total number of keys
-					state.estimated_rle_pages_size += GetVarintSize(run_length);
-					run_length = 0;
-					run_count++;
-					last_value_index = found.first->second;
-				}
-			}
-			vector_index++;
-		}
-		// Add the costs of keys sizes. We don't know yet how many bytes the keys need as we haven't
-		// seen all the values. therefore we use an over-estimation of
-		state.estimated_rle_pages_size += MAX_DICTIONARY_KEY_SIZE * run_count;
-	}
-
-	void FinalizeAnalyze(ColumnWriterState &state_p) override {
-		auto &state = state_p.Cast();
-
-		// check if a dictionary will require more space than a plain write, or if the dictionary page is going to
-		// be too large
-		if (WontUseDictionary(state)) {
-			// clearing the dictionary signals a plain write
-			state.dictionary.clear();
-			state.key_bit_width = 0;
-		} else {
-			state.key_bit_width = RleBpDecoder::ComputeBitWidth(state.dictionary.size());
-		}
-	}
-
-	void WriteVector(WriteStream &temp_writer, ColumnWriterStatistics *stats_p, ColumnWriterPageState *page_state_p,
-	                 Vector &input_column, idx_t chunk_start, idx_t chunk_end) override {
-		auto &page_state = page_state_p->Cast();
-		auto &mask = FlatVector::Validity(input_column);
-		auto &stats = stats_p->Cast();
-
-		auto *ptr = FlatVector::GetData(input_column);
-		if (page_state.IsDictionaryEncoded()) {
-			// dictionary based page
-			for (idx_t r = chunk_start; r < chunk_end; r++) {
-				if (!mask.RowIsValid(r)) {
-					continue;
-				}
-				auto value_index = page_state.dictionary.at(ptr[r]);
-				if (!page_state.written_value) {
-					// first value
-					// write the bit-width as a one-byte entry
-					temp_writer.Write(page_state.bit_width);
-					// now begin writing the actual value
-					page_state.encoder.BeginWrite(temp_writer, value_index);
-					page_state.written_value = true;
-				} else {
-					page_state.encoder.WriteValue(temp_writer, value_index);
-				}
-			}
-		} else {
-			// plain page
-			for (idx_t r = chunk_start; r < chunk_end; r++) {
-				if (!mask.RowIsValid(r)) {
-					continue;
-				}
-				stats.Update(ptr[r]);
-				temp_writer.Write(ptr[r].GetSize());
-				temp_writer.WriteData(const_data_ptr_cast(ptr[r].GetData()), ptr[r].GetSize());
-			}
-		}
-	}
-
-	unique_ptr InitializePageState(BasicColumnWriterState &state_p) override {
-		auto &state = state_p.Cast();
-		return make_uniq(state.key_bit_width, state.dictionary);
-	}
-
-	void FlushPageState(WriteStream &temp_writer, ColumnWriterPageState *state_p) override {
-		auto &page_state = state_p->Cast();
-		if (page_state.bit_width != 0) {
-			if (!page_state.written_value) {
-				// all values are null
-				// just write the bit width
-				temp_writer.Write(page_state.bit_width);
-				return;
-			}
-			page_state.encoder.FinishWrite(temp_writer);
-		}
-	}
-
-	duckdb_parquet::format::Encoding::type GetEncoding(BasicColumnWriterState &state_p) override {
-		auto &state = state_p.Cast();
-		return state.IsDictionaryEncoded() ? Encoding::RLE_DICTIONARY : Encoding::PLAIN;
-	}
-
-	bool HasDictionary(BasicColumnWriterState &state_p) override {
-		auto &state = state_p.Cast();
-		return state.IsDictionaryEncoded();
-	}
-
-	idx_t DictionarySize(BasicColumnWriterState &state_p) override {
-		auto &state = state_p.Cast();
-		D_ASSERT(state.IsDictionaryEncoded());
-		return state.dictionary.size();
-	}
-
-	void FlushDictionary(BasicColumnWriterState &state_p, ColumnWriterStatistics *stats_p) override {
-		auto &stats = stats_p->Cast();
-		auto &state = state_p.Cast();
-		if (!state.IsDictionaryEncoded()) {
-			return;
-		}
-		// first we need to sort the values in index order
-		auto values = vector(state.dictionary.size());
-		for (const auto &entry : state.dictionary) {
-			D_ASSERT(values[entry.second].GetSize() == 0);
-			values[entry.second] = entry.first;
-		}
-		// first write the contents of the dictionary page to a temporary buffer
-		auto temp_writer = make_uniq(
-		    MaxValue(NextPowerOfTwo(state.estimated_dict_page_size), MemoryStream::DEFAULT_INITIAL_CAPACITY));
-		for (idx_t r = 0; r < values.size(); r++) {
-			auto &value = values[r];
-			// update the statistics
-			stats.Update(value);
-			// write this string value to the dictionary
-			temp_writer->Write(value.GetSize());
-			temp_writer->WriteData(const_data_ptr_cast((value.GetData())), value.GetSize());
-		}
-		// flush the dictionary page and add it to the to-be-written pages
-		WriteDictionary(state, std::move(temp_writer), values.size());
-	}
-
-	idx_t GetRowSize(const Vector &vector, const idx_t index, const BasicColumnWriterState &state_p) const override {
-		auto &state = state_p.Cast();
-		if (state.IsDictionaryEncoded()) {
-			return (state.key_bit_width + 7) / 8;
-		} else {
-			auto strings = FlatVector::GetData(vector);
-			return strings[index].GetSize();
-		}
-	}
-
-private:
-	bool WontUseDictionary(StringColumnWriterState &state) const {
-		return state.estimated_dict_page_size > MAX_UNCOMPRESSED_DICT_PAGE_SIZE ||
-		       DictionaryCompressionRatio(state) < writer.DictionaryCompressionRatioThreshold();
-	}
-
-	static double DictionaryCompressionRatio(StringColumnWriterState &state) {
-		// If any are 0, we just return a compression ratio of 1
-		if (state.estimated_plain_size == 0 || state.estimated_rle_pages_size == 0 ||
-		    state.estimated_dict_page_size == 0) {
-			return 1;
-		}
-		// Otherwise, plain size divided by compressed size
-		return double(state.estimated_plain_size) /
-		       double(state.estimated_rle_pages_size + state.estimated_dict_page_size);
-	}
-};
-
 //===--------------------------------------------------------------------===//
 // WKB Column Writer
 //===--------------------------------------------------------------------===//
 // Used to store the metadata for a WKB-encoded geometry column when writing
 // GeoParquet files.
-class WKBColumnWriterState final : public StringColumnWriterState {
+class WKBColumnWriterState final : public StandardColumnWriterState {
 public:
-	WKBColumnWriterState(ClientContext &context, duckdb_parquet::format::RowGroup &row_group, idx_t col_idx)
-	    : StringColumnWriterState(row_group, col_idx), geo_data(), geo_data_writer(context) {
+	WKBColumnWriterState(ClientContext &context, duckdb_parquet::RowGroup &row_group, idx_t col_idx)
+	    : StandardColumnWriterState(row_group, col_idx), geo_data(), geo_data_writer(context) {
 	}
 
 	GeoParquetColumnMetadata geo_data;
 	GeoParquetColumnMetadataWriter geo_data_writer;
 };
 
-class WKBColumnWriter final : public StringColumnWriter {
+class WKBColumnWriter final : public StandardColumnWriter {
 public:
 	WKBColumnWriter(ClientContext &context_p, ParquetWriter &writer, idx_t schema_idx, vector schema_path_p,
 	                idx_t max_repeat, idx_t max_define, bool can_have_nulls, string name)
-	    : StringColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls),
+	    : StandardColumnWriter(writer, schema_idx, std::move(schema_path_p), max_repeat, max_define, can_have_nulls),
 	      column_name(std::move(name)), context(context_p) {
 
 		this->writer.GetGeoParquetData().RegisterGeometryColumn(column_name);
 	}
 
-	unique_ptr InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) override {
+	unique_ptr InitializeWriteState(duckdb_parquet::RowGroup &row_group) override {
 		auto result = make_uniq(context, row_group, row_group.columns.size());
+		result->encoding = Encoding::RLE_DICTIONARY;
 		RegisterToRowGroup(row_group);
 		return std::move(result);
 	}
+
 	void Write(ColumnWriterState &state, Vector &vector, idx_t count) override {
-		StringColumnWriter::Write(state, vector, count);
+		StandardColumnWriter::Write(state, vector, count);
 
 		auto &geo_state = state.Cast();
 		geo_state.geo_data_writer.Update(geo_state.geo_data, vector, count);
 	}
 
 	void FinalizeWrite(ColumnWriterState &state) override {
-		StringColumnWriter::FinalizeWrite(state);
+		StandardColumnWriter::FinalizeWrite(state);
 
 		// Add the geodata object to the writer
 		const auto &geo_state = state.Cast();
@@ -1658,7 +1696,7 @@ class EnumColumnWriter : public BasicColumnWriter {
 		page_state.encoder.FinishWrite(temp_writer);
 	}
 
-	duckdb_parquet::format::Encoding::type GetEncoding(BasicColumnWriterState &state) override {
+	duckdb_parquet::Encoding::type GetEncoding(BasicColumnWriterState &state) override {
 		return Encoding::RLE_DICTIONARY;
 	}
 
@@ -1710,7 +1748,7 @@ class StructColumnWriter : public ColumnWriter {
 	vector> child_writers;
 
 public:
-	unique_ptr InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) override;
+	unique_ptr InitializeWriteState(duckdb_parquet::RowGroup &row_group) override;
 	bool HasAnalyze() override;
 	void Analyze(ColumnWriterState &state, ColumnWriterState *parent, Vector &vector, idx_t count) override;
 	void FinalizeAnalyze(ColumnWriterState &state) override;
@@ -1723,17 +1761,17 @@ class StructColumnWriter : public ColumnWriter {
 
 class StructColumnWriterState : public ColumnWriterState {
 public:
-	StructColumnWriterState(duckdb_parquet::format::RowGroup &row_group, idx_t col_idx)
+	StructColumnWriterState(duckdb_parquet::RowGroup &row_group, idx_t col_idx)
 	    : row_group(row_group), col_idx(col_idx) {
 	}
 	~StructColumnWriterState() override = default;
 
-	duckdb_parquet::format::RowGroup &row_group;
+	duckdb_parquet::RowGroup &row_group;
 	idx_t col_idx;
 	vector> child_states;
 };
 
-unique_ptr StructColumnWriter::InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) {
+unique_ptr StructColumnWriter::InitializeWriteState(duckdb_parquet::RowGroup &row_group) {
 	auto result = make_uniq(row_group, row_group.columns.size());
 
 	result->child_states.reserve(child_writers.size());
@@ -1831,7 +1869,7 @@ class ListColumnWriter : public ColumnWriter {
 	unique_ptr child_writer;
 
 public:
-	unique_ptr InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) override;
+	unique_ptr InitializeWriteState(duckdb_parquet::RowGroup &row_group) override;
 	bool HasAnalyze() override;
 	void Analyze(ColumnWriterState &state, ColumnWriterState *parent, Vector &vector, idx_t count) override;
 	void FinalizeAnalyze(ColumnWriterState &state) override;
@@ -1844,18 +1882,17 @@ class ListColumnWriter : public ColumnWriter {
 
 class ListColumnWriterState : public ColumnWriterState {
 public:
-	ListColumnWriterState(duckdb_parquet::format::RowGroup &row_group, idx_t col_idx)
-	    : row_group(row_group), col_idx(col_idx) {
+	ListColumnWriterState(duckdb_parquet::RowGroup &row_group, idx_t col_idx) : row_group(row_group), col_idx(col_idx) {
 	}
 	~ListColumnWriterState() override = default;
 
-	duckdb_parquet::format::RowGroup &row_group;
+	duckdb_parquet::RowGroup &row_group;
 	idx_t col_idx;
 	unique_ptr child_state;
 	idx_t parent_index = 0;
 };
 
-unique_ptr ListColumnWriter::InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) {
+unique_ptr ListColumnWriter::InitializeWriteState(duckdb_parquet::RowGroup &row_group) {
 	auto result = make_uniq(row_group, row_group.columns.size());
 	result->child_state = child_writer->InitializeWriteState(row_group);
 	return std::move(result);
@@ -2078,12 +2115,48 @@ void ArrayColumnWriter::Write(ColumnWriterState &state_p, Vector &vector, idx_t
 	child_writer->Write(*state.child_state, array_child, count * array_size);
 }
 
+// special double/float class to deal with dictionary encoding and NaN equality
+struct double_na_equal {
+	double_na_equal() : val(0) {
+	}
+	double_na_equal(const double val_p) : val(val_p) {
+	}
+	operator double() const {
+		return val;
+	}
+
+	bool operator==(const double &right) const {
+		if (std::isnan(val) && std::isnan(right)) {
+			return true;
+		}
+		return val == right;
+	}
+	double val;
+};
+
+struct float_na_equal {
+	float_na_equal() : val(0) {
+	}
+	float_na_equal(const float val_p) : val(val_p) {
+	}
+	operator float() const {
+		return val;
+	}
+	bool operator==(const float &right) const {
+		if (std::isnan(val) && std::isnan(right)) {
+			return true;
+		}
+		return val == right;
+	}
+	float val;
+};
+
 //===--------------------------------------------------------------------===//
 // Create Column Writer
 //===--------------------------------------------------------------------===//
 
 unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &context,
-                                                             vector &schemas,
+                                                             vector &schemas,
                                                              ParquetWriter &writer, const LogicalType &type,
                                                              const string &name, vector schema_path,
                                                              optional_ptr field_ids,
@@ -2107,7 +2180,7 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 	if (type.id() == LogicalTypeId::STRUCT || type.id() == LogicalTypeId::UNION) {
 		auto &child_types = StructType::GetChildTypes(type);
 		// set up the schema element for this struct
-		duckdb_parquet::format::SchemaElement schema_element;
+		duckdb_parquet::SchemaElement schema_element;
 		schema_element.repetition_type = null_type;
 		schema_element.num_children = UnsafeNumericCast(child_types.size());
 		schema_element.__isset.num_children = true;
@@ -2137,7 +2210,7 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 		// set up the two schema elements for the list
 		// for some reason we only set the converted type in the OPTIONAL element
 		// first an OPTIONAL element
-		duckdb_parquet::format::SchemaElement optional_element;
+		duckdb_parquet::SchemaElement optional_element;
 		optional_element.repetition_type = null_type;
 		optional_element.num_children = 1;
 		optional_element.converted_type = ConvertedType::LIST;
@@ -2154,7 +2227,7 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 		schema_path.push_back(name);
 
 		// then a REPEATED element
-		duckdb_parquet::format::SchemaElement repeated_element;
+		duckdb_parquet::SchemaElement repeated_element;
 		repeated_element.repetition_type = FieldRepetitionType::REPEATED;
 		repeated_element.num_children = 1;
 		repeated_element.__isset.num_children = true;
@@ -2184,7 +2257,7 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 		// 	}
 		// }
 		// top map element
-		duckdb_parquet::format::SchemaElement top_element;
+		duckdb_parquet::SchemaElement top_element;
 		top_element.repetition_type = null_type;
 		top_element.num_children = 1;
 		top_element.converted_type = ConvertedType::MAP;
@@ -2201,7 +2274,7 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 		schema_path.push_back(name);
 
 		// key_value element
-		duckdb_parquet::format::SchemaElement kv_element;
+		duckdb_parquet::SchemaElement kv_element;
 		kv_element.repetition_type = FieldRepetitionType::REPEATED;
 		kv_element.num_children = 2;
 		kv_element.__isset.repetition_type = true;
@@ -2229,7 +2302,7 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 		return make_uniq(writer, schema_idx, schema_path, max_repeat, max_define,
 		                                   std::move(struct_writer), can_have_nulls);
 	}
-	duckdb_parquet::format::SchemaElement schema_element;
+	duckdb_parquet::SchemaElement schema_element;
 	schema_element.type = ParquetWriter::DuckDBTypeToParquetType(type);
 	schema_element.repetition_type = null_type;
 	schema_element.__isset.num_children = false;
@@ -2243,8 +2316,8 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 	ParquetWriter::SetSchemaProperties(type, schema_element);
 	schemas.push_back(std::move(schema_element));
 	schema_path.push_back(name);
-
-	if (type.id() == LogicalTypeId::BLOB && type.GetAlias() == "WKB_BLOB") {
+	if (type.id() == LogicalTypeId::BLOB && type.GetAlias() == "WKB_BLOB" &&
+	    GeoParquetFileMetadata::IsGeoParquetConversionEnabled(context)) {
 		return make_uniq(context, writer, schema_idx, std::move(schema_path), max_repeat, max_define,
 		                                  can_have_nulls, name);
 	}
@@ -2298,11 +2371,11 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 		return make_uniq>(writer, schema_idx, std::move(schema_path),
 		                                                           max_repeat, max_define, can_have_nulls);
 	case LogicalTypeId::FLOAT:
-		return make_uniq>(writer, schema_idx, std::move(schema_path), max_repeat,
-		                                                     max_define, can_have_nulls);
+		return make_uniq>(writer, schema_idx, std::move(schema_path),
+		                                                              max_repeat, max_define, can_have_nulls);
 	case LogicalTypeId::DOUBLE:
-		return make_uniq>(writer, schema_idx, std::move(schema_path), max_repeat,
-		                                                       max_define, can_have_nulls);
+		return make_uniq>(writer, schema_idx, std::move(schema_path),
+		                                                                max_repeat, max_define, can_have_nulls);
 	case LogicalTypeId::DECIMAL:
 		switch (type.InternalType()) {
 		case PhysicalType::INT16:
@@ -2320,14 +2393,14 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 		}
 	case LogicalTypeId::BLOB:
 	case LogicalTypeId::VARCHAR:
-		return make_uniq(writer, schema_idx, std::move(schema_path), max_repeat, max_define,
-		                                     can_have_nulls);
+		return make_uniq>(
+		    writer, schema_idx, std::move(schema_path), max_repeat, max_define, can_have_nulls);
 	case LogicalTypeId::UUID:
-		return make_uniq(writer, schema_idx, std::move(schema_path), max_repeat, max_define,
-		                                   can_have_nulls);
+		return make_uniq>(
+		    writer, schema_idx, std::move(schema_path), max_repeat, max_define, can_have_nulls);
 	case LogicalTypeId::INTERVAL:
-		return make_uniq(writer, schema_idx, std::move(schema_path), max_repeat, max_define,
-		                                       can_have_nulls);
+		return make_uniq>(
+		    writer, schema_idx, std::move(schema_path), max_repeat, max_define, can_have_nulls);
 	case LogicalTypeId::ENUM:
 		return make_uniq(writer, type, schema_idx, std::move(schema_path), max_repeat, max_define,
 		                                   can_have_nulls);
@@ -2336,4 +2409,73 @@ unique_ptr ColumnWriter::CreateWriterRecursive(ClientContext &cont
 	}
 }
 
+template <>
+struct NumericLimits {
+	static constexpr float Minimum() {
+		return std::numeric_limits::lowest();
+	};
+	static constexpr float Maximum() {
+		return std::numeric_limits::max();
+	};
+	static constexpr bool IsSigned() {
+		return std::is_signed::value;
+	}
+	static constexpr bool IsIntegral() {
+		return std::is_integral::value;
+	}
+};
+
+template <>
+struct NumericLimits {
+	static constexpr double Minimum() {
+		return std::numeric_limits::lowest();
+	};
+	static constexpr double Maximum() {
+		return std::numeric_limits::max();
+	};
+	static constexpr bool IsSigned() {
+		return std::is_signed::value;
+	}
+	static constexpr bool IsIntegral() {
+		return std::is_integral::value;
+	}
+};
+
 } // namespace duckdb
+
+namespace std {
+template <>
+struct hash {
+	size_t operator()(const duckdb::ParquetIntervalTargetType &val) const {
+		return duckdb::Hash(duckdb::const_char_ptr_cast(val.bytes),
+		                    duckdb::ParquetIntervalTargetType::PARQUET_INTERVAL_SIZE);
+	}
+};
+
+template <>
+struct hash {
+	size_t operator()(const duckdb::ParquetUUIDTargetType &val) const {
+		return duckdb::Hash(duckdb::const_char_ptr_cast(val.bytes), duckdb::ParquetUUIDTargetType::PARQUET_UUID_SIZE);
+	}
+};
+
+template <>
+struct hash {
+	size_t operator()(const duckdb::float_na_equal &val) const {
+		if (std::isnan(val.val)) {
+			return duckdb::Hash(std::numeric_limits::quiet_NaN());
+		}
+		return duckdb::Hash(val.val);
+	}
+};
+
+template <>
+struct hash {
+	inline size_t operator()(const duckdb::double_na_equal &val) const {
+		if (std::isnan(val.val)) {
+			return duckdb::Hash(std::numeric_limits::quiet_NaN());
+		}
+		return duckdb::Hash(val.val);
+	}
+};
+} // namespace std
diff --git a/src/duckdb/extension/parquet/geo_parquet.cpp b/src/duckdb/extension/parquet/geo_parquet.cpp
index 28c56991..ec252a50 100644
--- a/src/duckdb/extension/parquet/geo_parquet.cpp
+++ b/src/duckdb/extension/parquet/geo_parquet.cpp
@@ -176,8 +176,14 @@ void GeoParquetColumnMetadataWriter::Update(GeoParquetColumnMetadata &meta, Vect
 // GeoParquetFileMetadata
 //------------------------------------------------------------------------------
 
-unique_ptr
-GeoParquetFileMetadata::TryRead(const duckdb_parquet::format::FileMetaData &file_meta_data, ClientContext &context) {
+unique_ptr GeoParquetFileMetadata::TryRead(const duckdb_parquet::FileMetaData &file_meta_data,
+                                                                   const ClientContext &context) {
+
+	// Conversion not enabled, or spatial is not loaded!
+	if (!IsGeoParquetConversionEnabled(context)) {
+		return nullptr;
+	}
+
 	for (auto &kv : file_meta_data.key_value_metadata) {
 		if (kv.key == "geo") {
 			const auto geo_metadata = yyjson_read(kv.value.c_str(), kv.value.size(), 0);
@@ -186,14 +192,6 @@ GeoParquetFileMetadata::TryRead(const duckdb_parquet::format::FileMetaData &file
 				return nullptr;
 			}
 
-			// Check if the spatial extension is loaded, or try to autoload it.
-			const auto is_loaded = ExtensionHelper::TryAutoLoadExtension(context, "spatial");
-			if (!is_loaded) {
-				// Spatial extension is not available, we can't make use of the metadata anyway.
-				yyjson_doc_free(geo_metadata);
-				return nullptr;
-			}
-
 			try {
 				// Check the root object
 				const auto root = yyjson_doc_get_root(geo_metadata);
@@ -290,7 +288,7 @@ void GeoParquetFileMetadata::FlushColumnMeta(const string &column_name, const Ge
 	column.bbox.Combine(meta.bbox);
 }
 
-void GeoParquetFileMetadata::Write(duckdb_parquet::format::FileMetaData &file_meta_data) const {
+void GeoParquetFileMetadata::Write(duckdb_parquet::FileMetaData &file_meta_data) const {
 
 	yyjson_mut_doc *doc = yyjson_mut_doc_new(nullptr);
 	yyjson_mut_val *root = yyjson_mut_obj(doc);
@@ -344,7 +342,7 @@ void GeoParquetFileMetadata::Write(duckdb_parquet::format::FileMetaData &file_me
 	}
 
 	// Create a string from the JSON
-	duckdb_parquet::format::KeyValue kv;
+	duckdb_parquet::KeyValue kv;
 	kv.__set_key("geo");
 	kv.__set_value(string(json, len));
 
@@ -368,6 +366,22 @@ void GeoParquetFileMetadata::RegisterGeometryColumn(const string &column_name) {
 	geometry_columns[column_name] = GeoParquetColumnMetadata();
 }
 
+bool GeoParquetFileMetadata::IsGeoParquetConversionEnabled(const ClientContext &context) {
+	Value geoparquet_enabled;
+	if (!context.TryGetCurrentSetting("enable_geoparquet_conversion", geoparquet_enabled)) {
+		return false;
+	}
+	if (!geoparquet_enabled.GetValue()) {
+		// Disabled by setting
+		return false;
+	}
+	if (!context.db->ExtensionIsLoaded("spatial")) {
+		// Spatial extension is not loaded, we cant convert anyway
+		return false;
+	}
+	return true;
+}
+
 unique_ptr GeoParquetFileMetadata::CreateColumnReader(ParquetReader &reader,
                                                                     const LogicalType &logical_type,
                                                                     const SchemaElement &s_ele, idx_t schema_idx_p,
diff --git a/src/duckdb/extension/parquet/include/boolean_column_reader.hpp b/src/duckdb/extension/parquet/include/boolean_column_reader.hpp
index 125c548d..c37c6209 100644
--- a/src/duckdb/extension/parquet/include/boolean_column_reader.hpp
+++ b/src/duckdb/extension/parquet/include/boolean_column_reader.hpp
@@ -40,10 +40,6 @@ class BooleanColumnReader : public TemplatedColumnReader parquet_filter_t;
 
@@ -72,7 +72,7 @@ class ColumnReader {
 
 	template 
 	void PlainTemplated(shared_ptr plain_data, uint8_t *defines, uint64_t num_values,
-	                    parquet_filter_t &filter, idx_t result_offset, Vector &result) {
+	                    parquet_filter_t *filter, idx_t result_offset, Vector &result) {
 		if (HasDefines()) {
 			if (CONVERSION::PlainAvailable(*plain_data, num_values)) {
 				PlainTemplatedInternal(*plain_data, defines, num_values, filter,
@@ -95,13 +95,13 @@ class ColumnReader {
 private:
 	template 
 	void PlainTemplatedInternal(ByteBuffer &plain_data, const uint8_t *__restrict defines, const uint64_t num_values,
-	                            const parquet_filter_t &filter, const idx_t result_offset, Vector &result) {
+	                            const parquet_filter_t *filter, const idx_t result_offset, Vector &result) {
 		const auto result_ptr = FlatVector::GetData(result);
 		auto &result_mask = FlatVector::Validity(result);
 		for (idx_t row_idx = result_offset; row_idx < result_offset + num_values; row_idx++) {
-			if (HAS_DEFINES && defines[row_idx] != max_define) {
+			if (HAS_DEFINES && defines && defines[row_idx] != max_define) {
 				result_mask.SetInvalid(row_idx);
-			} else if (filter.test(row_idx)) {
+			} else if (!filter || filter->test(row_idx)) {
 				result_ptr[row_idx] =
 				    UNSAFE ? CONVERSION::UnsafePlainRead(plain_data, *this) : CONVERSION::PlainRead(plain_data, *this);
 			} else { // there is still some data there that we have to skip over
@@ -117,14 +117,9 @@ class ColumnReader {
 protected:
 	Allocator &GetAllocator();
 	// readers that use the default Read() need to implement those
-	virtual void Plain(shared_ptr plain_data, uint8_t *defines, idx_t num_values, parquet_filter_t &filter,
+	virtual void Plain(shared_ptr plain_data, uint8_t *defines, idx_t num_values, parquet_filter_t *filter,
 	                   idx_t result_offset, Vector &result);
-	virtual void Dictionary(shared_ptr dictionary_data, idx_t num_entries);
-	virtual void Offsets(uint32_t *offsets, uint8_t *defines, idx_t num_values, parquet_filter_t &filter,
-	                     idx_t result_offset, Vector &result);
-
 	// these are nops for most types, but not for strings
-	virtual void DictReference(Vector &result);
 	virtual void PlainReference(shared_ptr, Vector &result);
 
 	virtual void PrepareDeltaLengthByteArray(ResizeableBuffer &buffer);
@@ -168,10 +163,11 @@ class ColumnReader {
 	void PreparePageV2(PageHeader &page_hdr);
 	void DecompressInternal(CompressionCodec::type codec, const_data_ptr_t src, idx_t src_size, data_ptr_t dst,
 	                        idx_t dst_size);
+	void ConvertDictToSelVec(uint32_t *offsets, uint8_t *defines, parquet_filter_t &filter, idx_t read_now,
+	                         idx_t result_offset);
+	const ColumnChunk *chunk = nullptr;
 
-	const duckdb_parquet::format::ColumnChunk *chunk = nullptr;
-
-	duckdb_apache::thrift::protocol::TProtocol *protocol;
+	TProtocol *protocol;
 	idx_t page_rows_available;
 	idx_t group_rows_available;
 	idx_t chunk_read_offset;
@@ -193,6 +189,11 @@ class ColumnReader {
 	ResizeableBuffer dummy_define;
 	ResizeableBuffer dummy_repeat;
 
+	SelectionVector dictionary_selection_vector;
+	idx_t dictionary_size;
+	unique_ptr dictionary;
+	string dictionary_id;
+
 public:
 	template 
 	TARGET &Cast() {
diff --git a/src/duckdb/extension/parquet/include/column_writer.hpp b/src/duckdb/extension/parquet/include/column_writer.hpp
index 65f89e59..b27254f7 100644
--- a/src/duckdb/extension/parquet/include/column_writer.hpp
+++ b/src/duckdb/extension/parquet/include/column_writer.hpp
@@ -17,6 +17,8 @@ class ParquetWriter;
 class ColumnWriterPageState;
 class BasicColumnWriterState;
 struct ChildFieldIDs;
+class ResizeableBuffer;
+class ParquetBloomFilter;
 
 class ColumnWriterState {
 public:
@@ -80,12 +82,12 @@ class ColumnWriter {
 public:
 	//! Create the column writer for a specific type recursively
 	static unique_ptr
-	CreateWriterRecursive(ClientContext &context, vector &schemas,
-	                      ParquetWriter &writer, const LogicalType &type, const string &name,
-	                      vector schema_path, optional_ptr field_ids, idx_t max_repeat = 0,
-	                      idx_t max_define = 1, bool can_have_nulls = true);
+	CreateWriterRecursive(ClientContext &context, vector &schemas, ParquetWriter &writer,
+	                      const LogicalType &type, const string &name, vector schema_path,
+	                      optional_ptr field_ids, idx_t max_repeat = 0, idx_t max_define = 1,
+	                      bool can_have_nulls = true);
 
-	virtual unique_ptr InitializeWriteState(duckdb_parquet::format::RowGroup &row_group) = 0;
+	virtual unique_ptr InitializeWriteState(duckdb_parquet::RowGroup &row_group) = 0;
 
 	//! indicates whether the write need to analyse the data before preparing it
 	virtual bool HasAnalyze() {
diff --git a/src/duckdb/extension/parquet/include/decode_utils.hpp b/src/duckdb/extension/parquet/include/decode_utils.hpp
index 3b2829d6..d6c4a854 100644
--- a/src/duckdb/extension/parquet/include/decode_utils.hpp
+++ b/src/duckdb/extension/parquet/include/decode_utils.hpp
@@ -1,40 +1,160 @@
+//===----------------------------------------------------------------------===//
+//                         DuckDB
+//
+// decode_utils.hpp
+//
+//
+//===----------------------------------------------------------------------===//
+
 #pragma once
 
+#include "duckdb/common/bitpacking.hpp"
 #include "resizable_buffer.hpp"
 
 namespace duckdb {
-class ParquetDecodeUtils {
-
-public:
-	template 
-	static T ZigzagToInt(const uint64_t n) {
-		return T(n >> 1) ^ -T(n & 1);
-	}
 
+class ParquetDecodeUtils {
+	//===--------------------------------------------------------------------===//
+	// Bitpacking
+	//===--------------------------------------------------------------------===//
+private:
 	static const uint64_t BITPACK_MASKS[];
 	static const uint64_t BITPACK_MASKS_SIZE;
 	static const uint8_t BITPACK_DLEN;
 
-	template 
-	static uint32_t BitUnpack(ByteBuffer &buffer, uint8_t &bitpack_pos, T *dest, uint32_t count, uint8_t width) {
-		if (width >= ParquetDecodeUtils::BITPACK_MASKS_SIZE) {
+	static void CheckWidth(const uint8_t width) {
+		if (width >= BITPACK_MASKS_SIZE) {
 			throw InvalidInputException("The width (%d) of the bitpacked data exceeds the supported max width (%d), "
 			                            "the file might be corrupted.",
-			                            width, ParquetDecodeUtils::BITPACK_MASKS_SIZE);
+			                            width, BITPACK_MASKS_SIZE);
 		}
-		auto mask = BITPACK_MASKS[width];
+	}
 
-		for (uint32_t i = 0; i < count; i++) {
-			T val = (buffer.get() >> bitpack_pos) & mask;
+public:
+	template 
+	static void BitUnpack(ByteBuffer &src, bitpacking_width_t &bitpack_pos, T *dst, idx_t count,
+	                      const bitpacking_width_t width) {
+		CheckWidth(width);
+		const auto mask = BITPACK_MASKS[width];
+		src.available(count * width / BITPACK_DLEN); // check if buffer has enough space available once
+		if (bitpack_pos == 0 && count >= BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE) {
+			idx_t remainder = count % BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE;
+			idx_t aligned_count = count - remainder;
+			BitUnpackAlignedInternal(src, dst, aligned_count, width);
+			dst += aligned_count;
+			count = remainder;
+		}
+		for (idx_t i = 0; i < count; i++) {
+			auto val = (src.unsafe_get() >> bitpack_pos) & mask;
 			bitpack_pos += width;
 			while (bitpack_pos > BITPACK_DLEN) {
-				buffer.inc(1);
-				val |= (T(buffer.get()) << T(BITPACK_DLEN - (bitpack_pos - width))) & mask;
+				src.unsafe_inc(1);
+				val |= (static_cast(src.unsafe_get())
+				        << static_cast(BITPACK_DLEN - (bitpack_pos - width))) &
+				       mask;
 				bitpack_pos -= BITPACK_DLEN;
 			}
-			dest[i] = val;
+			dst[i] = val;
+		}
+	}
+
+	template 
+	static void BitPackAligned(T *src, data_ptr_t dst, const idx_t count, const bitpacking_width_t width) {
+		D_ASSERT(width < BITPACK_MASKS_SIZE);
+		D_ASSERT(count % BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE == 0);
+		BitpackingPrimitives::PackBuffer(dst, src, count, width);
+	}
+
+	template 
+	static void BitUnpackAlignedInternal(ByteBuffer &src, T *dst, const idx_t count, const bitpacking_width_t width) {
+		for (idx_t i = 0; i < count; i += BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE) {
+			const auto next_read = BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE * width / 8;
+
+			// Buffer for alignment
+			T aligned_data[BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE];
+
+			// Copy over to aligned buffer
+			memcpy(aligned_data, src.ptr, next_read);
+
+			// Unpack
+			BitpackingPrimitives::UnPackBlock(data_ptr_cast(dst), data_ptr_cast(aligned_data), width, true);
+
+			src.unsafe_inc(next_read);
+			dst += BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE;
 		}
-		return count;
+	}
+
+	template 
+	static void BitUnpackAligned(ByteBuffer &src, T *dst, const idx_t count, const bitpacking_width_t width) {
+		CheckWidth(width);
+		if (count % BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE != 0) {
+			throw InvalidInputException("Aligned bitpacking count must be a multiple of %llu",
+			                            BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE);
+		}
+		const auto read_size = count * width / BITPACK_DLEN;
+		src.available(read_size); // check if buffer has enough space available once
+		BitUnpackAlignedInternal(src, dst, count, width);
+	}
+
+	//===--------------------------------------------------------------------===//
+	// Zigzag
+	//===--------------------------------------------------------------------===//
+private:
+	//! https://lemire.me/blog/2022/11/25/making-all-your-integers-positive-with-zigzag-encoding/
+	template 
+	static typename std::enable_if::value, typename std::make_signed::type>::type
+	ZigzagToIntInternal(UNSIGNED x) {
+		return (x >> 1) ^ (-(x & 1));
+	}
+
+	template 
+	static typename std::enable_if::value, typename std::make_unsigned::type>::type
+	IntToZigzagInternal(SIGNED x) {
+		using UNSIGNED = typename std::make_unsigned::type;
+		return (static_cast(x) << 1) ^ static_cast(x >> (sizeof(SIGNED) * 8 - 1));
+	}
+
+public:
+	template 
+	static typename std::enable_if::value, typename std::make_signed::type>::type
+	ZigzagToInt(UNSIGNED x) {
+		auto integer = ZigzagToIntInternal(x);
+		D_ASSERT(x == IntToZigzagInternal(integer)); // test roundtrip
+		return integer;
+	}
+
+	template 
+	static typename std::enable_if::value, typename std::make_unsigned::type>::type
+	IntToZigzag(SIGNED x) {
+		auto zigzag = IntToZigzagInternal(x);
+		D_ASSERT(x == ZigzagToIntInternal(zigzag)); // test roundtrip
+		return zigzag;
+	}
+
+	//===--------------------------------------------------------------------===//
+	// Varint
+	//===--------------------------------------------------------------------===//
+public:
+	template 
+	static uint8_t GetVarintSize(T val) {
+		uint8_t res = 0;
+		do {
+			val >>= 7;
+			res++;
+		} while (val != 0);
+		return res;
+	}
+
+	template 
+	static void VarintEncode(T val, WriteStream &ser) {
+		do {
+			uint8_t byte = val & 127;
+			val >>= 7;
+			if (val != 0) {
+				byte |= 128;
+			}
+			ser.Write(byte);
+		} while (val != 0);
 	}
 
 	template 
diff --git a/src/duckdb/extension/parquet/include/geo_parquet.hpp b/src/duckdb/extension/parquet/include/geo_parquet.hpp
index ab04dcdf..0a9b0966 100644
--- a/src/duckdb/extension/parquet/include/geo_parquet.hpp
+++ b/src/duckdb/extension/parquet/include/geo_parquet.hpp
@@ -119,20 +119,23 @@ class GeoParquetFileMetadata {
 public:
 	// Try to read GeoParquet metadata. Returns nullptr if not found, invalid or the required spatial extension is not
 	// available.
-	static unique_ptr TryRead(const duckdb_parquet::format::FileMetaData &file_meta_data,
-	                                                  ClientContext &context);
-	void Write(duckdb_parquet::format::FileMetaData &file_meta_data) const;
+
+	static unique_ptr TryRead(const duckdb_parquet::FileMetaData &file_meta_data,
+	                                                  const ClientContext &context);
+	void Write(duckdb_parquet::FileMetaData &file_meta_data) const;
 
 	void FlushColumnMeta(const string &column_name, const GeoParquetColumnMetadata &meta);
 	const unordered_map &GetColumnMeta() const;
 
 	unique_ptr CreateColumnReader(ParquetReader &reader, const LogicalType &logical_type,
-	                                            const duckdb_parquet::format::SchemaElement &s_ele, idx_t schema_idx_p,
+	                                            const duckdb_parquet::SchemaElement &s_ele, idx_t schema_idx_p,
 	                                            idx_t max_define_p, idx_t max_repeat_p, ClientContext &context);
 
 	bool IsGeometryColumn(const string &column_name) const;
 	void RegisterGeometryColumn(const string &column_name);
 
+	static bool IsGeoParquetConversionEnabled(const ClientContext &context);
+
 private:
 	mutex write_lock;
 	string version = "1.1.0";
diff --git a/src/duckdb/extension/parquet/include/null_column_reader.hpp b/src/duckdb/extension/parquet/include/null_column_reader.hpp
index 567efee3..6d89c906 100644
--- a/src/duckdb/extension/parquet/include/null_column_reader.hpp
+++ b/src/duckdb/extension/parquet/include/null_column_reader.hpp
@@ -25,20 +25,7 @@ class NullColumnReader : public ColumnReader {
 	shared_ptr dict;
 
 public:
-	void Dictionary(shared_ptr data, idx_t num_entries) override {
-		dict = std::move(data);
-	}
-
-	void Offsets(uint32_t *offsets, uint8_t *defines, uint64_t num_values, parquet_filter_t &filter,
-	             idx_t result_offset, Vector &result) override {
-		auto &result_mask = FlatVector::Validity(result);
-
-		for (idx_t row_idx = 0; row_idx < num_values; row_idx++) {
-			result_mask.SetInvalid(row_idx + result_offset);
-		}
-	}
-
-	void Plain(shared_ptr plain_data, uint8_t *defines, uint64_t num_values, parquet_filter_t &filter,
+	void Plain(shared_ptr plain_data, uint8_t *defines, uint64_t num_values, parquet_filter_t *filter,
 	           idx_t result_offset, Vector &result) override {
 		(void)defines;
 		(void)plain_data;
diff --git a/src/duckdb/extension/parquet/include/parquet_crypto.hpp b/src/duckdb/extension/parquet/include/parquet_crypto.hpp
index b4aed9d0..47064844 100644
--- a/src/duckdb/extension/parquet/include/parquet_crypto.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_crypto.hpp
@@ -4,7 +4,7 @@
 // parquet_crypto.hpp
 //
 //
-//===----------------------------------------------------------------------===/
+//===----------------------------------------------------------------------===//
 
 #pragma once
 
diff --git a/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp b/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp
index c40c3c02..4925a0ff 100644
--- a/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_dbp_decoder.hpp
@@ -1,126 +1,137 @@
+//===----------------------------------------------------------------------===//
+//                         DuckDB
+//
+// parquet_dbp_deccoder.hpp
+//
+//
+//===----------------------------------------------------------------------===//
+
 #pragma once
+
 #include "decode_utils.hpp"
 
 namespace duckdb {
+
 class DbpDecoder {
 public:
-	DbpDecoder(data_ptr_t buffer, uint32_t buffer_len) : buffer_(buffer, buffer_len) {
-		//   
-		// overall header
-		block_value_count = ParquetDecodeUtils::VarintDecode(buffer_);
-		miniblocks_per_block = ParquetDecodeUtils::VarintDecode(buffer_);
-		total_value_count = ParquetDecodeUtils::VarintDecode(buffer_);
-		start_value = ParquetDecodeUtils::ZigzagToInt(ParquetDecodeUtils::VarintDecode(buffer_));
-
-		// some derivatives
-		D_ASSERT(miniblocks_per_block > 0);
-		values_per_miniblock = block_value_count / miniblocks_per_block;
-		miniblock_bit_widths = unique_ptr(new data_t[miniblocks_per_block]);
-
-		// init state to something sane
-		values_left_in_block = 0;
-		values_left_in_miniblock = 0;
-		miniblock_offset = 0;
-		min_delta = 0;
-		bitpack_pos = 0;
-		is_first_value = true;
+	DbpDecoder(const data_ptr_t buffer, const uint32_t buffer_len)
+	    : buffer_(buffer, buffer_len),
+	      //   
+	      block_size_in_values(ParquetDecodeUtils::VarintDecode(buffer_)),
+	      number_of_miniblocks_per_block(ParquetDecodeUtils::VarintDecode(buffer_)),
+	      number_of_values_in_a_miniblock(block_size_in_values / number_of_miniblocks_per_block),
+	      total_value_count(ParquetDecodeUtils::VarintDecode(buffer_)),
+	      previous_value(ParquetDecodeUtils::ZigzagToInt(ParquetDecodeUtils::VarintDecode(buffer_))),
+	      // init state to something sane
+	      is_first_value(true), read_values(0), min_delta(NumericLimits::Maximum()),
+	      miniblock_index(number_of_miniblocks_per_block - 1), list_of_bitwidths_of_miniblocks(nullptr),
+	      miniblock_offset(number_of_values_in_a_miniblock),
+	      unpacked_data_offset(BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE) {
+		if (!(block_size_in_values % number_of_miniblocks_per_block == 0 &&
+		      number_of_values_in_a_miniblock % BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE == 0)) {
+			throw InvalidInputException("Parquet file has invalid block sizes for DELTA_BINARY_PACKED");
+		}
 	};
 
-	ByteBuffer BufferPtr() {
-		if (bitpack_pos != 0) {
-			buffer_.inc(1);
-			bitpack_pos = 0;
-		}
+	ByteBuffer BufferPtr() const {
 		return buffer_;
 	}
 
+	uint64_t TotalValues() const {
+		return total_value_count;
+	}
+
 	template 
-	void GetBatch(data_ptr_t values_target_ptr, uint32_t batch_size) {
-		auto values = reinterpret_cast(values_target_ptr);
+	void GetBatch(const data_ptr_t target_values_ptr, const idx_t batch_size) {
+		if (read_values + batch_size > total_value_count) {
+			throw std::runtime_error("DBP decode did not find enough values");
+		}
+		read_values += batch_size;
+		GetBatchInternal(target_values_ptr, batch_size);
+	}
+
+	void Finalize() {
+		if (miniblock_offset == number_of_values_in_a_miniblock) {
+			return;
+		}
+		auto data = make_unsafe_uniq_array(number_of_values_in_a_miniblock);
+		GetBatchInternal(data_ptr_cast(data.get()), number_of_values_in_a_miniblock - miniblock_offset);
+	}
 
+private:
+	template 
+	void GetBatchInternal(const data_ptr_t target_values_ptr, const idx_t batch_size) {
 		if (batch_size == 0) {
 			return;
 		}
-		idx_t value_offset = 0;
 
+		auto target_values = reinterpret_cast(target_values_ptr);
+		idx_t target_values_offset = 0;
 		if (is_first_value) {
-			values[0] = start_value;
-			value_offset++;
+			target_values[0] = static_cast(previous_value);
+			target_values_offset++;
 			is_first_value = false;
 		}
 
-		if (total_value_count == 1) { // I guess it's a special case
-			if (batch_size > 1) {
-				throw std::runtime_error("DBP decode did not find enough values (have 1)");
-			}
-			return;
-		}
-
-		while (value_offset < batch_size) {
-			if (values_left_in_block == 0) { // need to open new block
-				if (bitpack_pos > 0) {       // have to eat the leftovers if any
-					buffer_.inc(1);
-				}
-				min_delta =
-				    ParquetDecodeUtils::ZigzagToInt(ParquetDecodeUtils::VarintDecode(buffer_));
-				for (idx_t miniblock_idx = 0; miniblock_idx < miniblocks_per_block; miniblock_idx++) {
-					miniblock_bit_widths[miniblock_idx] = buffer_.read();
-					// TODO what happens if width is 0?
+		while (target_values_offset < batch_size) {
+			// Copy over any remaining data
+			const idx_t next = MinValue(batch_size - target_values_offset,
+			                            BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE - unpacked_data_offset);
+			if (next != 0) {
+				for (idx_t i = 0; i < next; i++) {
+					auto &target = target_values[target_values_offset + i];
+					const auto &unpacked_value = unpacked_data[unpacked_data_offset + i];
+					target = static_cast(static_cast(previous_value) + static_cast(min_delta) +
+					                        unpacked_value);
+					previous_value = static_cast(target);
 				}
-				values_left_in_block = block_value_count;
-				miniblock_offset = 0;
-				bitpack_pos = 0;
-				values_left_in_miniblock = values_per_miniblock;
-			}
-			if (values_left_in_miniblock == 0) {
-				miniblock_offset++;
-				values_left_in_miniblock = values_per_miniblock;
+				target_values_offset += next;
+				unpacked_data_offset += next;
+				continue;
 			}
 
-			auto read_now = MinValue(values_left_in_miniblock, (idx_t)batch_size - value_offset);
-			ParquetDecodeUtils::BitUnpack(buffer_, bitpack_pos, &values[value_offset], read_now,
-			                                 miniblock_bit_widths[miniblock_offset]);
-			for (idx_t i = value_offset; i < value_offset + read_now; i++) {
-				values[i] = T(uint64_t((i == 0) ? start_value : values[i - 1]) + min_delta + uint64_t(values[i]));
+			// Move to next miniblock / block
+			D_ASSERT(unpacked_data_offset == BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE);
+			D_ASSERT(miniblock_index < number_of_miniblocks_per_block);
+			D_ASSERT(miniblock_offset <= number_of_values_in_a_miniblock);
+			if (miniblock_offset == number_of_values_in_a_miniblock) {
+				miniblock_offset = 0;
+				if (++miniblock_index == number_of_miniblocks_per_block) {
+					//   
+					min_delta = ParquetDecodeUtils::ZigzagToInt(ParquetDecodeUtils::VarintDecode(buffer_));
+					buffer_.available(number_of_miniblocks_per_block);
+					list_of_bitwidths_of_miniblocks = buffer_.ptr;
+					buffer_.unsafe_inc(number_of_miniblocks_per_block);
+					miniblock_index = 0;
+				}
 			}
-			value_offset += read_now;
-			values_left_in_miniblock -= read_now;
-			values_left_in_block -= read_now;
-		}
 
-		if (value_offset != batch_size) {
-			throw std::runtime_error("DBP decode did not find enough values");
-		}
-		start_value = values[batch_size - 1];
-	}
-	void Finalize() {
-		if (values_left_in_miniblock == 0) {
-			return;
+			// Unpack from current miniblock
+			ParquetDecodeUtils::BitUnpackAligned(buffer_, unpacked_data,
+			                                     BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE,
+			                                     list_of_bitwidths_of_miniblocks[miniblock_index]);
+			unpacked_data_offset = 0;
+			miniblock_offset += BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE;
 		}
-		auto data = unique_ptr(new uint32_t[values_left_in_miniblock]);
-		GetBatch(data_ptr_cast(data.get()), values_left_in_miniblock);
-	}
-
-	uint64_t TotalValues() {
-		return total_value_count;
 	}
 
 private:
 	ByteBuffer buffer_;
-	idx_t block_value_count;
-	idx_t miniblocks_per_block;
-	idx_t total_value_count;
-	int64_t start_value;
-	idx_t values_per_miniblock;
-
-	unique_ptr miniblock_bit_widths;
-	idx_t values_left_in_block;
-	idx_t values_left_in_miniblock;
-	idx_t miniblock_offset;
-	int64_t min_delta;
+	const idx_t block_size_in_values;
+	const idx_t number_of_miniblocks_per_block;
+	const idx_t number_of_values_in_a_miniblock;
+	const idx_t total_value_count;
+	int64_t previous_value;
 
 	bool is_first_value;
+	idx_t read_values;
 
-	uint8_t bitpack_pos;
+	//! Block stuff
+	int64_t min_delta;
+	idx_t miniblock_index;
+	bitpacking_width_t *list_of_bitwidths_of_miniblocks;
+	idx_t miniblock_offset;
+	uint64_t unpacked_data[BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE];
+	idx_t unpacked_data_offset;
 };
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/include/parquet_dbp_encoder.hpp b/src/duckdb/extension/parquet/include/parquet_dbp_encoder.hpp
new file mode 100644
index 00000000..791d10e0
--- /dev/null
+++ b/src/duckdb/extension/parquet/include/parquet_dbp_encoder.hpp
@@ -0,0 +1,179 @@
+//===----------------------------------------------------------------------===//
+//                         DuckDB
+//
+// parquet_dbp_encoder.hpp
+//
+//
+//===----------------------------------------------------------------------===//
+
+#pragma once
+
+#include "decode_utils.hpp"
+
+namespace duckdb {
+
+class DbpEncoder {
+private:
+	static constexpr uint64_t BLOCK_SIZE_IN_VALUES = 2048;
+	static constexpr uint64_t NUMBER_OF_MINIBLOCKS_IN_A_BLOCK = 8;
+	static constexpr uint64_t NUMBER_OF_VALUES_IN_A_MINIBLOCK = BLOCK_SIZE_IN_VALUES / NUMBER_OF_MINIBLOCKS_IN_A_BLOCK;
+
+public:
+	explicit DbpEncoder(const idx_t total_value_count_p) : total_value_count(total_value_count_p), count(0) {
+	}
+
+public:
+	void BeginWrite(WriteStream &writer, const int64_t &first_value) {
+		//    
+
+		// the block size is a multiple of 128; it is stored as a ULEB128 int
+		ParquetDecodeUtils::VarintEncode(BLOCK_SIZE_IN_VALUES, writer);
+		// the miniblock count per block is a divisor of the block size such that their quotient,
+		// the number of values in a miniblock, is a multiple of 32
+		static_assert(BLOCK_SIZE_IN_VALUES % NUMBER_OF_MINIBLOCKS_IN_A_BLOCK == 0 &&
+		                  NUMBER_OF_VALUES_IN_A_MINIBLOCK % BitpackingPrimitives::BITPACKING_ALGORITHM_GROUP_SIZE == 0,
+		              "invalid block sizes for DELTA_BINARY_PACKED");
+		// it is stored as a ULEB128 int
+		ParquetDecodeUtils::VarintEncode(NUMBER_OF_MINIBLOCKS_IN_A_BLOCK, writer);
+		// the total value count is stored as a ULEB128 int
+		ParquetDecodeUtils::VarintEncode(total_value_count, writer);
+		// the first value is stored as a zigzag ULEB128 int
+		ParquetDecodeUtils::VarintEncode(ParquetDecodeUtils::IntToZigzag(first_value), writer);
+
+		// initialize
+		if (total_value_count != 0) {
+			count++;
+		}
+		previous_value = first_value;
+
+		min_delta = NumericLimits::Maximum();
+		block_count = 0;
+	}
+
+	void WriteValue(WriteStream &writer, const int64_t &value) {
+		// 1. Compute the differences between consecutive elements. For the first element in the block,
+		// use the last element in the previous block or, in the case of the first block,
+		// use the first value of the whole sequence, stored in the header.
+
+		// Subtractions in steps 1) and 2) may incur signed arithmetic overflow,
+		// and so will the corresponding additions when decoding.
+		// Overflow should be allowed and handled as wrapping around in 2’s complement notation
+		// so that the original values are correctly restituted.
+		// This may require explicit care in some programming languages
+		// (for example by doing all arithmetic in the unsigned domain).
+		const auto delta = static_cast(static_cast(value) - static_cast(previous_value));
+		previous_value = value;
+		// Compute the frame of reference (the minimum of the deltas in the block).
+		min_delta = MinValue(min_delta, delta);
+		// append. if block is full, write it out
+		data[block_count++] = delta;
+		if (block_count == BLOCK_SIZE_IN_VALUES) {
+			WriteBlock(writer);
+		}
+	}
+
+	void FinishWrite(WriteStream &writer) {
+		if (count + block_count != total_value_count) {
+			throw InternalException("value count mismatch when writing DELTA_BINARY_PACKED");
+		}
+		if (block_count != 0) {
+			WriteBlock(writer);
+		}
+	}
+
+private:
+	void WriteBlock(WriteStream &writer) {
+		D_ASSERT(count + block_count == total_value_count || block_count == BLOCK_SIZE_IN_VALUES);
+		const auto number_of_miniblocks =
+		    (block_count + NUMBER_OF_VALUES_IN_A_MINIBLOCK - 1) / NUMBER_OF_VALUES_IN_A_MINIBLOCK;
+		for (idx_t miniblock_idx = 0; miniblock_idx < number_of_miniblocks; miniblock_idx++) {
+			for (idx_t i = 0; i < NUMBER_OF_VALUES_IN_A_MINIBLOCK; i++) {
+				const idx_t index = miniblock_idx * NUMBER_OF_VALUES_IN_A_MINIBLOCK + i;
+				auto &value = data[index];
+				if (index < block_count) {
+					// 2. Compute the frame of reference (the minimum of the deltas in the block).
+					// Subtract this min delta from all deltas in the block.
+					// This guarantees that all values are non-negative.
+					D_ASSERT(min_delta <= value);
+					value = static_cast(static_cast(value) - static_cast(min_delta));
+				} else {
+					// If there are not enough values to fill the last miniblock, we pad the miniblock
+					// so that its length is always the number of values in a full miniblock multiplied by the bit
+					// width. The values of the padding bits should be zero, but readers must accept paddings consisting
+					// of arbitrary bits as well.
+					value = 0;
+				}
+			}
+		}
+
+		for (idx_t miniblock_idx = 0; miniblock_idx < NUMBER_OF_MINIBLOCKS_IN_A_BLOCK; miniblock_idx++) {
+			auto &width = list_of_bitwidths_of_miniblocks[miniblock_idx];
+			if (miniblock_idx < number_of_miniblocks) {
+				const auto src = &data[miniblock_idx * NUMBER_OF_VALUES_IN_A_MINIBLOCK];
+				width = BitpackingPrimitives::MinimumBitWidth(reinterpret_cast(src),
+				                                              NUMBER_OF_VALUES_IN_A_MINIBLOCK);
+				D_ASSERT(width <= sizeof(int64_t) * 8);
+			} else {
+				// If, in the last block, less than  miniblocks are needed to store the
+				// values, the bytes storing the bit widths of the unneeded miniblocks are still present, their value
+				// should be zero, but readers must accept arbitrary values as well. There are no additional padding
+				// bytes for the miniblock bodies though, as if their bit widths were 0 (regardless of the actual byte
+				// values). The reader knows when to stop reading by keeping track of the number of values read.
+				width = 0;
+			}
+		}
+
+		// 3. Encode the frame of reference (min delta) as a zigzag ULEB128 int
+		// followed by the bit widths of the miniblocks
+		// and the delta values (minus the min delta) bit-packed per miniblock.
+		//   
+
+		// the min delta is a zigzag ULEB128 int (we compute a minimum as we need positive integers for bit packing)
+		ParquetDecodeUtils::VarintEncode(ParquetDecodeUtils::IntToZigzag(min_delta), writer);
+		// the bitwidth of each block is stored as a byte
+		writer.WriteData(list_of_bitwidths_of_miniblocks, NUMBER_OF_MINIBLOCKS_IN_A_BLOCK);
+		// each miniblock is a list of bit packed ints according to the bit width stored at the beginning of the block
+		for (idx_t miniblock_idx = 0; miniblock_idx < number_of_miniblocks; miniblock_idx++) {
+			const auto src = &data[miniblock_idx * NUMBER_OF_VALUES_IN_A_MINIBLOCK];
+			const auto &width = list_of_bitwidths_of_miniblocks[miniblock_idx];
+			memset(data_packed, 0, sizeof(data_packed));
+			ParquetDecodeUtils::BitPackAligned(reinterpret_cast(src), data_packed,
+			                                   NUMBER_OF_VALUES_IN_A_MINIBLOCK, width);
+			const auto write_size = NUMBER_OF_VALUES_IN_A_MINIBLOCK * width / 8;
+#ifdef DEBUG
+			// immediately verify that unpacking yields the input data
+			int64_t verification_data[NUMBER_OF_VALUES_IN_A_MINIBLOCK];
+			ByteBuffer byte_buffer(data_ptr_cast(data_packed), write_size);
+			bitpacking_width_t bitpack_pos = 0;
+			ParquetDecodeUtils::BitUnpack(byte_buffer, bitpack_pos, verification_data, NUMBER_OF_VALUES_IN_A_MINIBLOCK,
+			                              width);
+			for (idx_t i = 0; i < NUMBER_OF_VALUES_IN_A_MINIBLOCK; i++) {
+				D_ASSERT(src[i] == verification_data[i]);
+			}
+#endif
+			writer.WriteData(data_packed, write_size);
+		}
+
+		count += block_count;
+
+		min_delta = NumericLimits::Maximum();
+		block_count = 0;
+	}
+
+private:
+	//! Overall fields
+	const idx_t total_value_count;
+	idx_t count;
+	int64_t previous_value;
+
+	//! Block-specific fields
+	int64_t min_delta;
+	int64_t data[BLOCK_SIZE_IN_VALUES];
+	idx_t block_count;
+
+	//! Bitpacking fields
+	bitpacking_width_t list_of_bitwidths_of_miniblocks[NUMBER_OF_MINIBLOCKS_IN_A_BLOCK];
+	data_t data_packed[NUMBER_OF_VALUES_IN_A_MINIBLOCK * sizeof(int64_t)];
+};
+
+} // namespace duckdb
diff --git a/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp b/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp
index 4f189bbc..119ed567 100644
--- a/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_decimal_utils.hpp
@@ -16,8 +16,7 @@ namespace duckdb {
 class ParquetDecimalUtils {
 public:
 	template 
-	static PHYSICAL_TYPE ReadDecimalValue(const_data_ptr_t pointer, idx_t size,
-	                                      const duckdb_parquet::format::SchemaElement &) {
+	static PHYSICAL_TYPE ReadDecimalValue(const_data_ptr_t pointer, idx_t size, const duckdb_parquet::SchemaElement &) {
 		PHYSICAL_TYPE res = 0;
 
 		auto res_ptr = (uint8_t *)&res;
@@ -54,6 +53,6 @@ class ParquetDecimalUtils {
 
 template <>
 double ParquetDecimalUtils::ReadDecimalValue(const_data_ptr_t pointer, idx_t size,
-                                             const duckdb_parquet::format::SchemaElement &schema_ele);
+                                             const duckdb_parquet::SchemaElement &schema_ele);
 
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/include/parquet_extension.hpp b/src/duckdb/extension/parquet/include/parquet_extension.hpp
index 702adb38..413a104b 100644
--- a/src/duckdb/extension/parquet/include/parquet_extension.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_extension.hpp
@@ -1,3 +1,11 @@
+//===----------------------------------------------------------------------===//
+//                         DuckDB
+//
+// parquet_extension.hpp
+//
+//
+//===----------------------------------------------------------------------===/
+
 #pragma once
 
 #include "duckdb.hpp"
diff --git a/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp b/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp
index 48b6448d..b7373056 100644
--- a/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_file_metadata_cache.hpp
@@ -20,7 +20,7 @@ class ParquetFileMetadataCache : public ObjectCacheEntry {
 public:
 	ParquetFileMetadataCache() : metadata(nullptr) {
 	}
-	ParquetFileMetadataCache(unique_ptr file_metadata, time_t r_time,
+	ParquetFileMetadataCache(unique_ptr file_metadata, time_t r_time,
 	                         unique_ptr geo_metadata)
 	    : metadata(std::move(file_metadata)), read_time(r_time), geo_metadata(std::move(geo_metadata)) {
 	}
@@ -28,7 +28,7 @@ class ParquetFileMetadataCache : public ObjectCacheEntry {
 	~ParquetFileMetadataCache() override = default;
 
 	//! Parquet file metadata
-	unique_ptr metadata;
+	unique_ptr metadata;
 
 	//! read time
 	time_t read_time;
diff --git a/src/duckdb/extension/parquet/include/parquet_metadata.hpp b/src/duckdb/extension/parquet/include/parquet_metadata.hpp
index 2310e1de..09ecd5af 100644
--- a/src/duckdb/extension/parquet/include/parquet_metadata.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_metadata.hpp
@@ -33,4 +33,9 @@ class ParquetFileMetadataFunction : public TableFunction {
 	ParquetFileMetadataFunction();
 };
 
+class ParquetBloomProbeFunction : public TableFunction {
+public:
+	ParquetBloomProbeFunction();
+};
+
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/include/parquet_reader.hpp b/src/duckdb/extension/parquet/include/parquet_reader.hpp
index ef8dcaf8..79de2b4c 100644
--- a/src/duckdb/extension/parquet/include/parquet_reader.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_reader.hpp
@@ -93,6 +93,7 @@ struct ParquetOptions {
 
 	MultiFileReaderOptions file_options;
 	vector schema;
+	idx_t explicit_cardinality = 0;
 
 public:
 	void Serialize(Serializer &serializer) const;
@@ -137,7 +138,7 @@ class ParquetReader {
 	//! Index of the file_row_number column
 	idx_t file_row_number_idx = DConstants::INVALID_INDEX;
 	//! Parquet schema for the generated columns
-	vector generated_column_schema;
+	vector generated_column_schema;
 	//! Table column names - set when using COPY tbl FROM file.parquet
 	vector table_columns;
 
@@ -166,7 +167,7 @@ class ParquetReader {
 	idx_t NumRows();
 	idx_t NumRowGroups();
 
-	const duckdb_parquet::format::FileMetaData *GetFileMetadata();
+	const duckdb_parquet::FileMetaData *GetFileMetadata();
 
 	uint32_t Read(duckdb_apache::thrift::TBase &object, TProtocol &iprot);
 	uint32_t ReadData(duckdb_apache::thrift::protocol::TProtocol &iprot, const data_ptr_t buffer,
@@ -201,9 +202,10 @@ class ParquetReader {
 	bool ScanInternal(ParquetReaderScanState &state, DataChunk &output);
 	unique_ptr CreateReader(ClientContext &context);
 
-	unique_ptr CreateReaderRecursive(ClientContext &context, idx_t depth, idx_t max_define,
-	                                               idx_t max_repeat, idx_t &next_schema_idx, idx_t &next_file_idx);
-	const duckdb_parquet::format::RowGroup &GetGroup(ParquetReaderScanState &state);
+	unique_ptr CreateReaderRecursive(ClientContext &context, const vector &indexes,
+	                                               idx_t depth, idx_t max_define, idx_t max_repeat,
+	                                               idx_t &next_schema_idx, idx_t &next_file_idx);
+	const duckdb_parquet::RowGroup &GetGroup(ParquetReaderScanState &state);
 	uint64_t GetGroupCompressedSize(ParquetReaderScanState &state);
 	idx_t GetGroupOffset(ParquetReaderScanState &state);
 	// Group span is the distance between the min page offset and the max page offset plus the max page compressed size
diff --git a/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp b/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp
index 27093388..b8dc35b3 100644
--- a/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_rle_bp_decoder.hpp
@@ -40,11 +40,7 @@ class RleBpDecoder {
 				values_read += repeat_batch;
 			} else if (literal_count_ > 0) {
 				uint32_t literal_batch = MinValue(batch_size - values_read, static_cast(literal_count_));
-				uint32_t actual_read = ParquetDecodeUtils::BitUnpack(buffer_, bitpack_pos, values + values_read,
-				                                                        literal_batch, bit_width_);
-				if (literal_batch != actual_read) {
-					throw std::runtime_error("Did not find enough values");
-				}
+				ParquetDecodeUtils::BitUnpack(buffer_, bitpack_pos, values + values_read, literal_batch, bit_width_);
 				literal_count_ -= literal_batch;
 				values_read += literal_batch;
 			} else {
@@ -66,7 +62,7 @@ class RleBpDecoder {
 			return 0;
 		}
 		uint8_t ret = 1;
-		while (((idx_t)(1u << ret) - 1) < val) {
+		while ((((idx_t)1u << (idx_t)ret) - 1) < val) {
 			ret++;
 		}
 		return ret;
diff --git a/src/duckdb/extension/parquet/include/parquet_statistics.hpp b/src/duckdb/extension/parquet/include/parquet_statistics.hpp
index 94ce194e..ad1f939c 100644
--- a/src/duckdb/extension/parquet/include/parquet_statistics.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_statistics.hpp
@@ -1,3 +1,11 @@
+//===----------------------------------------------------------------------===//
+//                         DuckDB
+//
+// parquet_statistics.hpp
+//
+//
+//===----------------------------------------------------------------------===/
+
 #pragma once
 
 #include "duckdb.hpp"
@@ -8,19 +16,95 @@
 
 namespace duckdb {
 
-using duckdb_parquet::format::ColumnChunk;
-using duckdb_parquet::format::SchemaElement;
+using duckdb_parquet::ColumnChunk;
+using duckdb_parquet::SchemaElement;
 
 struct LogicalType;
 class ColumnReader;
+class ResizeableBuffer;
 
 struct ParquetStatisticsUtils {
 
 	static unique_ptr TransformColumnStatistics(const ColumnReader &reader,
 	                                                            const vector &columns);
 
-	static Value ConvertValue(const LogicalType &type, const duckdb_parquet::format::SchemaElement &schema_ele,
+	static Value ConvertValue(const LogicalType &type, const duckdb_parquet::SchemaElement &schema_ele,
 	                          const std::string &stats);
+
+	static bool BloomFilterSupported(const LogicalTypeId &type_id);
+
+	static bool BloomFilterExcludes(const TableFilter &filter, const duckdb_parquet::ColumnMetaData &column_meta_data,
+	                                duckdb_apache::thrift::protocol::TProtocol &file_proto, Allocator &allocator);
+
+private:
+	static Value ConvertValueInternal(const LogicalType &type, const duckdb_parquet::SchemaElement &schema_ele,
+	                                  const std::string &stats);
+};
+
+class ParquetBloomFilter {
+	static constexpr const idx_t DEFAULT_BLOCK_COUNT = 32; // 4k filter
+
+public:
+	ParquetBloomFilter(idx_t num_entries, double bloom_filter_false_positive_ratio);
+	ParquetBloomFilter(unique_ptr data_p);
+	void FilterInsert(uint64_t x);
+	bool FilterCheck(uint64_t x);
+	void Shrink(idx_t new_block_count);
+	double OneRatio();
+	ResizeableBuffer *Get();
+
+private:
+	unique_ptr data;
+	idx_t block_count;
+};
+
+// see https://github.com/apache/parquet-format/blob/master/BloomFilter.md
+
+struct ParquetBloomBlock {
+	struct ParquetBloomMaskResult {
+		uint8_t bit_set[8] = {0};
+	};
+
+	uint32_t block[8] = {0};
+
+	static bool check_bit(uint32_t &x, const uint8_t i) {
+		D_ASSERT(i < 32);
+		return (x >> i) & (uint32_t)1;
+	}
+
+	static void set_bit(uint32_t &x, const uint8_t i) {
+		D_ASSERT(i < 32);
+		x |= (uint32_t)1 << i;
+		D_ASSERT(check_bit(x, i));
+	}
+
+	static ParquetBloomMaskResult Mask(uint32_t x) {
+		static const uint32_t parquet_bloom_salt[8] = {0x47b6137bU, 0x44974d91U, 0x8824ad5bU, 0xa2b7289dU,
+		                                               0x705495c7U, 0x2df1424bU, 0x9efc4947U, 0x5c6bfb31U};
+		ParquetBloomMaskResult result;
+		for (idx_t i = 0; i < 8; i++) {
+			result.bit_set[i] = (x * parquet_bloom_salt[i]) >> 27;
+		}
+		return result;
+	}
+
+	static void BlockInsert(ParquetBloomBlock &b, uint32_t x) {
+		auto masked = Mask(x);
+		for (idx_t i = 0; i < 8; i++) {
+			set_bit(b.block[i], masked.bit_set[i]);
+			D_ASSERT(check_bit(b.block[i], masked.bit_set[i]));
+		}
+	}
+
+	static bool BlockCheck(ParquetBloomBlock &b, uint32_t x) {
+		auto masked = Mask(x);
+		for (idx_t i = 0; i < 8; i++) {
+			if (!check_bit(b.block[i], masked.bit_set[i])) {
+				return false;
+			}
+		}
+		return true;
+	}
 };
 
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/include/parquet_writer.hpp b/src/duckdb/extension/parquet/include/parquet_writer.hpp
index 297d2efa..e601926b 100644
--- a/src/duckdb/extension/parquet/include/parquet_writer.hpp
+++ b/src/duckdb/extension/parquet/include/parquet_writer.hpp
@@ -19,6 +19,7 @@
 #include "duckdb/function/copy_function.hpp"
 #endif
 
+#include "parquet_statistics.hpp"
 #include "column_writer.hpp"
 #include "parquet_types.h"
 #include "geo_parquet.hpp"
@@ -33,7 +34,7 @@ class Serializer;
 class Deserializer;
 
 struct PreparedRowGroup {
-	duckdb_parquet::format::RowGroup row_group;
+	duckdb_parquet::RowGroup row_group;
 	vector> states;
 	vector> heaps;
 };
@@ -61,13 +62,19 @@ struct FieldID {
 	static FieldID Deserialize(Deserializer &source);
 };
 
+struct ParquetBloomFilterEntry {
+	unique_ptr bloom_filter;
+	idx_t row_group_idx;
+	idx_t column_idx;
+};
+
 class ParquetWriter {
 public:
 	ParquetWriter(ClientContext &context, FileSystem &fs, string file_name, vector types,
-	              vector names, duckdb_parquet::format::CompressionCodec::type codec, ChildFieldIDs field_ids,
+	              vector names, duckdb_parquet::CompressionCodec::type codec, ChildFieldIDs field_ids,
 	              const vector> &kv_metadata,
-	              shared_ptr encryption_config, double dictionary_compression_ratio_threshold,
-	              optional_idx compression_level, bool debug_use_openssl);
+	              shared_ptr encryption_config, idx_t dictionary_size_limit,
+	              double bloom_filter_false_positive_ratio, int64_t compression_level, bool debug_use_openssl);
 
 public:
 	void PrepareRowGroup(ColumnDataCollection &buffer, PreparedRowGroup &result);
@@ -75,16 +82,16 @@ class ParquetWriter {
 	void Flush(ColumnDataCollection &buffer);
 	void Finalize();
 
-	static duckdb_parquet::format::Type::type DuckDBTypeToParquetType(const LogicalType &duckdb_type);
-	static void SetSchemaProperties(const LogicalType &duckdb_type, duckdb_parquet::format::SchemaElement &schema_ele);
+	static duckdb_parquet::Type::type DuckDBTypeToParquetType(const LogicalType &duckdb_type);
+	static void SetSchemaProperties(const LogicalType &duckdb_type, duckdb_parquet::SchemaElement &schema_ele);
 
 	duckdb_apache::thrift::protocol::TProtocol *GetProtocol() {
 		return protocol.get();
 	}
-	duckdb_parquet::format::CompressionCodec::type GetCodec() {
+	duckdb_parquet::CompressionCodec::type GetCodec() {
 		return codec;
 	}
-	duckdb_parquet::format::Type::type GetType(idx_t schema_idx) {
+	duckdb_parquet::Type::type GetType(idx_t schema_idx) {
 		return file_meta_data.schema[schema_idx].type;
 	}
 	LogicalType GetSQLType(idx_t schema_idx) const {
@@ -97,10 +104,13 @@ class ParquetWriter {
 		lock_guard glock(lock);
 		return writer->total_written;
 	}
-	double DictionaryCompressionRatioThreshold() const {
-		return dictionary_compression_ratio_threshold;
+	idx_t DictionarySizeLimit() const {
+		return dictionary_size_limit;
 	}
-	optional_idx CompressionLevel() const {
+	double BloomFilterFalsePositiveRatio() const {
+		return bloom_filter_false_positive_ratio;
+	}
+	int64_t CompressionLevel() const {
 		return compression_level;
 	}
 	idx_t NumberOfRowGroups() {
@@ -114,28 +124,32 @@ class ParquetWriter {
 	GeoParquetFileMetadata &GetGeoParquetData();
 
 	static bool TryGetParquetType(const LogicalType &duckdb_type,
-	                              optional_ptr type = nullptr);
+	                              optional_ptr type = nullptr);
+
+	void BufferBloomFilter(idx_t col_idx, unique_ptr bloom_filter);
 
 private:
 	string file_name;
 	vector sql_types;
 	vector column_names;
-	duckdb_parquet::format::CompressionCodec::type codec;
+	duckdb_parquet::CompressionCodec::type codec;
 	ChildFieldIDs field_ids;
 	shared_ptr encryption_config;
-	double dictionary_compression_ratio_threshold;
-	optional_idx compression_level;
+	idx_t dictionary_size_limit;
+	double bloom_filter_false_positive_ratio;
+	int64_t compression_level;
 	bool debug_use_openssl;
 	shared_ptr encryption_util;
 
 	unique_ptr writer;
 	std::shared_ptr protocol;
-	duckdb_parquet::format::FileMetaData file_meta_data;
+	duckdb_parquet::FileMetaData file_meta_data;
 	std::mutex lock;
 
 	vector> column_writers;
 
 	unique_ptr geoparquet_data;
+	vector bloom_filters;
 };
 
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/include/resizable_buffer.hpp b/src/duckdb/extension/parquet/include/resizable_buffer.hpp
index 65b639ba..14658ece 100644
--- a/src/duckdb/extension/parquet/include/resizable_buffer.hpp
+++ b/src/duckdb/extension/parquet/include/resizable_buffer.hpp
@@ -5,6 +5,7 @@
 //
 //
 //===----------------------------------------------------------------------===//
+
 #pragma once
 
 #include "duckdb.hpp"
diff --git a/src/duckdb/extension/parquet/include/string_column_reader.hpp b/src/duckdb/extension/parquet/include/string_column_reader.hpp
index f67bbd9d..2ab96a29 100644
--- a/src/duckdb/extension/parquet/include/string_column_reader.hpp
+++ b/src/duckdb/extension/parquet/include/string_column_reader.hpp
@@ -13,11 +13,8 @@
 namespace duckdb {
 
 struct StringParquetValueConversion {
-	static string_t DictRead(ByteBuffer &dict, uint32_t &offset, ColumnReader &reader);
-
 	static string_t PlainRead(ByteBuffer &plain_data, ColumnReader &reader);
 	static void PlainSkip(ByteBuffer &plain_data, ColumnReader &reader);
-
 	static bool PlainAvailable(const ByteBuffer &plain_data, const idx_t count);
 	static string_t UnsafePlainRead(ByteBuffer &plain_data, ColumnReader &reader);
 	static void UnsafePlainSkip(ByteBuffer &plain_data, ColumnReader &reader);
@@ -30,14 +27,10 @@ class StringColumnReader : public TemplatedColumnReader dict_strings;
 	idx_t fixed_width_string_length;
 	idx_t delta_offset = 0;
 
 public:
-	void Dictionary(shared_ptr dictionary_data, idx_t num_entries) override;
-
 	void PrepareDeltaLengthByteArray(ResizeableBuffer &buffer) override;
 	void PrepareDeltaByteArray(ResizeableBuffer &buffer) override;
 	void DeltaByteArray(uint8_t *defines, idx_t num_values, parquet_filter_t &filter, idx_t result_offset,
@@ -46,7 +39,6 @@ class StringColumnReader : public TemplatedColumnReader plain_data, Vector &result) override;
 };
 
diff --git a/src/duckdb/extension/parquet/include/struct_column_reader.hpp b/src/duckdb/extension/parquet/include/struct_column_reader.hpp
index b9a9b5ee..4a025469 100644
--- a/src/duckdb/extension/parquet/include/struct_column_reader.hpp
+++ b/src/duckdb/extension/parquet/include/struct_column_reader.hpp
@@ -24,7 +24,7 @@ class StructColumnReader : public ColumnReader {
 	vector> child_readers;
 
 public:
-	ColumnReader *GetChildReader(idx_t child_idx);
+	ColumnReader &GetChildReader(idx_t child_idx);
 
 	void InitializeRead(idx_t row_group_idx_p, const vector &columns, TProtocol &protocol_p) override;
 
diff --git a/src/duckdb/extension/parquet/include/templated_column_reader.hpp b/src/duckdb/extension/parquet/include/templated_column_reader.hpp
index e29d2a98..d8586530 100644
--- a/src/duckdb/extension/parquet/include/templated_column_reader.hpp
+++ b/src/duckdb/extension/parquet/include/templated_column_reader.hpp
@@ -15,10 +15,6 @@ namespace duckdb {
 
 template 
 struct TemplatedParquetValueConversion {
-	static VALUE_TYPE DictRead(ByteBuffer &dict, uint32_t &offset, ColumnReader &reader) {
-		D_ASSERT(offset < dict.len / sizeof(VALUE_TYPE));
-		return ((VALUE_TYPE *)dict.ptr)[offset];
-	}
 
 	static VALUE_TYPE PlainRead(ByteBuffer &plain_data, ColumnReader &reader) {
 		return plain_data.read();
@@ -62,57 +58,16 @@ class TemplatedColumnReader : public ColumnReader {
 		}
 	}
 
-	void Dictionary(shared_ptr data, idx_t num_entries) override {
-		dict = std::move(data);
-	}
-
-	void Offsets(uint32_t *offsets, uint8_t *defines, uint64_t num_values, parquet_filter_t &filter,
-	             idx_t result_offset, Vector &result) override {
-		if (!dict) {
-			throw IOException(
-			    "Parquet file is likely corrupted, cannot have dictionary offsets without seeing a dictionary first.");
-		}
-		if (HasDefines()) {
-			OffsetsInternal(*dict, offsets, defines, num_values, filter, result_offset, result);
-		} else {
-			OffsetsInternal(*dict, offsets, defines, num_values, filter, result_offset, result);
-		}
-	}
-
-	void Plain(shared_ptr plain_data, uint8_t *defines, uint64_t num_values, parquet_filter_t &filter,
+	void Plain(shared_ptr plain_data, uint8_t *defines, uint64_t num_values, parquet_filter_t *filter,
 	           idx_t result_offset, Vector &result) override {
 		PlainTemplated(std::move(plain_data), defines, num_values, filter, result_offset,
 		                                             result);
 	}
-
-private:
-	template 
-	void OffsetsInternal(ResizeableBuffer &dict_ref, uint32_t *__restrict offsets, const uint8_t *__restrict defines,
-	                     const uint64_t num_values, const parquet_filter_t &filter, const idx_t result_offset,
-	                     Vector &result) {
-		const auto result_ptr = FlatVector::GetData(result);
-		auto &result_mask = FlatVector::Validity(result);
-		idx_t offset_idx = 0;
-		for (idx_t row_idx = result_offset; row_idx < result_offset + num_values; row_idx++) {
-			if (HAS_DEFINES && defines[row_idx] != max_define) {
-				result_mask.SetInvalid(row_idx);
-				continue;
-			}
-			if (filter.test(row_idx)) {
-				result_ptr[row_idx] = VALUE_CONVERSION::DictRead(dict_ref, offsets[offset_idx++], *this);
-			} else {
-				offset_idx++;
-			}
-		}
-	}
 };
 
 template 
 struct CallbackParquetValueConversion {
-	static DUCKDB_PHYSICAL_TYPE DictRead(ByteBuffer &dict, uint32_t &offset, ColumnReader &reader) {
-		return TemplatedParquetValueConversion::DictRead(dict, offset, reader);
-	}
 
 	static DUCKDB_PHYSICAL_TYPE PlainRead(ByteBuffer &plain_data, ColumnReader &reader) {
 		return FUNC(plain_data.read());
diff --git a/src/duckdb/extension/parquet/include/thrift_tools.hpp b/src/duckdb/extension/parquet/include/thrift_tools.hpp
index 2306aa30..de1eaca3 100644
--- a/src/duckdb/extension/parquet/include/thrift_tools.hpp
+++ b/src/duckdb/extension/parquet/include/thrift_tools.hpp
@@ -1,4 +1,13 @@
+//===----------------------------------------------------------------------===//
+//                         DuckDB
+//
+// thrift_tools.hpp
+//
+//
+//===----------------------------------------------------------------------===/
+
 #pragma once
+
 #include 
 #include "thrift/protocol/TCompactProtocol.h"
 #include "thrift/transport/TBufferTransports.h"
@@ -89,7 +98,10 @@ struct ReadAheadBuffer {
 		}
 
 		if (read_head.GetEnd() > handle.GetFileSize()) {
-			throw std::runtime_error("Prefetch registered for bytes outside file");
+			throw std::runtime_error("Prefetch registered for bytes outside file: " + handle.GetPath() +
+			                         ", attempted range: [" + std::to_string(pos) + ", " +
+			                         std::to_string(read_head.GetEnd()) +
+			                         "), file size: " + std::to_string(handle.GetFileSize()));
 		}
 	}
 
diff --git a/src/duckdb/extension/parquet/include/zstd_file_system.hpp b/src/duckdb/extension/parquet/include/zstd_file_system.hpp
index 230aef36..5b132bc8 100644
--- a/src/duckdb/extension/parquet/include/zstd_file_system.hpp
+++ b/src/duckdb/extension/parquet/include/zstd_file_system.hpp
@@ -26,6 +26,10 @@ class ZStdFileSystem : public CompressedFileSystem {
 	unique_ptr CreateStream() override;
 	idx_t InBufferSize() override;
 	idx_t OutBufferSize() override;
+
+	static int64_t DefaultCompressionLevel();
+	static int64_t MinimumCompressionLevel();
+	static int64_t MaximumCompressionLevel();
 };
 
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/parquet_extension.cpp b/src/duckdb/extension/parquet/parquet_extension.cpp
index 596fed87..96e64793 100644
--- a/src/duckdb/extension/parquet/parquet_extension.cpp
+++ b/src/duckdb/extension/parquet/parquet_extension.cpp
@@ -70,8 +70,8 @@ struct ParquetReadBindData : public TableFunctionData {
 	// These come from the initial_reader, but need to be stored in case the initial_reader is removed by a filter
 	idx_t initial_file_cardinality;
 	idx_t initial_file_row_groups;
+	idx_t explicit_cardinality = 0; // can be set to inject exterior cardinality knowledge (e.g. from a data lake)
 	ParquetOptions parquet_options;
-
 	MultiFileReaderBindData reader_bind;
 
 	void Initialize(shared_ptr reader) {
@@ -165,7 +165,7 @@ struct ParquetReadGlobalState : public GlobalTableFunctionState {
 	idx_t max_threads;
 	vector projection_ids;
 	vector scanned_types;
-	vector column_ids;
+	vector column_indexes;
 	optional_ptr filters;
 
 	idx_t MaxThreads() const override {
@@ -180,27 +180,27 @@ struct ParquetReadGlobalState : public GlobalTableFunctionState {
 struct ParquetWriteBindData : public TableFunctionData {
 	vector sql_types;
 	vector column_names;
-	duckdb_parquet::format::CompressionCodec::type codec = duckdb_parquet::format::CompressionCodec::SNAPPY;
+	duckdb_parquet::CompressionCodec::type codec = duckdb_parquet::CompressionCodec::SNAPPY;
 	vector> kv_metadata;
-	idx_t row_group_size = Storage::ROW_GROUP_SIZE;
-
-	//! If row_group_size_bytes is not set, we default to row_group_size * BYTES_PER_ROW
-	static constexpr const idx_t BYTES_PER_ROW = 1024;
-	idx_t row_group_size_bytes;
+	idx_t row_group_size = DEFAULT_ROW_GROUP_SIZE;
+	idx_t row_group_size_bytes = NumericLimits::Maximum();
 
 	//! How/Whether to encrypt the data
 	shared_ptr encryption_config;
 	bool debug_use_openssl = true;
 
-	//! Dictionary compression is applied only if the compression ratio exceeds this threshold
-	double dictionary_compression_ratio_threshold = 1.0;
+	//! After how many distinct values should we abandon dictionary compression and bloom filters?
+	idx_t dictionary_size_limit = row_group_size / 100;
+
+	//! What false positive rate are we willing to accept for bloom filters
+	double bloom_filter_false_positive_ratio = 0.01;
 
 	//! After how many row groups to rotate to a new file
 	optional_idx row_groups_per_file;
 
 	ChildFieldIDs field_ids;
 	//! The compression level, higher value is more
-	optional_idx compression_level;
+	int64_t compression_level = ZStdFileSystem::DefaultCompressionLevel();
 };
 
 struct ParquetWriteGlobalState : public GlobalFunctionData {
@@ -209,7 +209,7 @@ struct ParquetWriteGlobalState : public GlobalFunctionData {
 
 struct ParquetWriteLocalState : public LocalFunctionData {
 	explicit ParquetWriteLocalState(ClientContext &context, const vector &types)
-	    : buffer(context, types, ColumnDataAllocatorType::HYBRID) {
+	    : buffer(BufferAllocator::Get(context), types) {
 		buffer.InitializeAppend(append_state);
 	}
 
@@ -285,7 +285,7 @@ static MultiFileReaderBindData BindSchema(ClientContext &context, vector &global_column_ids,
+                                    const vector &global_column_ids,
                                     optional_ptr table_filters, ClientContext &context,
                                     optional_idx file_idx, optional_ptr reader_state) {
 	auto &parquet_options = bind_data.parquet_options;
@@ -321,7 +321,7 @@ static void InitializeParquetReader(ParquetReader &reader, const ParquetReadBind
 
 	// loop through the schema definition
 	for (idx_t i = 0; i < global_column_ids.size(); i++) {
-		auto global_column_index = global_column_ids[i];
+		auto global_column_index = global_column_ids[i].GetPrimaryIndex();
 
 		// check if this is a constant column
 		bool constant = false;
@@ -383,6 +383,11 @@ static bool GetBooleanArgument(const pair> &option) {
 	return BooleanValue::Get(boolean_value);
 }
 
+TablePartitionInfo ParquetGetPartitionInfo(ClientContext &context, TableFunctionPartitionInput &input) {
+	auto &parquet_bind = input.bind_data->Cast();
+	return parquet_bind.multi_file_reader->GetPartitionInfo(context, parquet_bind.reader_bind, input);
+}
+
 class ParquetScanFunction {
 public:
 	static TableFunctionSet GetFunctionSet() {
@@ -395,12 +400,13 @@ class ParquetScanFunction {
 		table_function.named_parameters["file_row_number"] = LogicalType::BOOLEAN;
 		table_function.named_parameters["debug_use_openssl"] = LogicalType::BOOLEAN;
 		table_function.named_parameters["compression"] = LogicalType::VARCHAR;
+		table_function.named_parameters["explicit_cardinality"] = LogicalType::UBIGINT;
 		table_function.named_parameters["schema"] =
 		    LogicalType::MAP(LogicalType::INTEGER, LogicalType::STRUCT({{{"name", LogicalType::VARCHAR},
 		                                                                 {"type", LogicalType::VARCHAR},
 		                                                                 {"default_value", LogicalType::VARCHAR}}}));
 		table_function.named_parameters["encryption_config"] = LogicalTypeId::ANY;
-		table_function.get_batch_index = ParquetScanGetBatchIndex;
+		table_function.get_partition_data = ParquetScanGetPartitionData;
 		table_function.serialize = ParquetScanSerialize;
 		table_function.deserialize = ParquetScanDeserialize;
 		table_function.get_bind_info = ParquetGetBindInfo;
@@ -408,6 +414,7 @@ class ParquetScanFunction {
 		table_function.filter_pushdown = true;
 		table_function.filter_prune = true;
 		table_function.pushdown_complex_filter = ParquetComplexFilterPushdown;
+		table_function.get_partition_info = ParquetGetPartitionInfo;
 
 		MultiFileReader::AddParameters(table_function);
 
@@ -460,66 +467,23 @@ class ParquetScanFunction {
 		}
 
 		// NOTE: we do not want to parse the Parquet metadata for the sole purpose of getting column statistics
-
-		auto &config = DBConfig::GetConfig(context);
-
-		if (bind_data.file_list->GetExpandResult() != FileExpandResult::MULTIPLE_FILES) {
-			if (bind_data.initial_reader) {
-				// most common path, scanning single parquet file
-				return bind_data.initial_reader->ReadStatistics(bind_data.names[column_index]);
-			} else if (!config.options.object_cache_enable) {
-				// our initial reader was reset
-				return nullptr;
-			}
-		} else if (config.options.object_cache_enable) {
-			// multiple files, object cache enabled: merge statistics
-			unique_ptr overall_stats;
-
-			auto &cache = ObjectCache::GetObjectCache(context);
-			// for more than one file, we could be lucky and metadata for *every* file is in the object cache (if
-			// enabled at all)
-			FileSystem &fs = FileSystem::GetFileSystem(context);
-
-			for (const auto &file_name : bind_data.file_list->Files()) {
-				auto metadata = cache.Get(file_name);
-				if (!metadata) {
-					// missing metadata entry in cache, no usable stats
-					return nullptr;
-				}
-				if (!fs.IsRemoteFile(file_name)) {
-					auto handle = fs.OpenFile(file_name, FileFlags::FILE_FLAGS_READ);
-					// we need to check if the metadata cache entries are current
-					if (fs.GetLastModifiedTime(*handle) >= metadata->read_time) {
-						// missing or invalid metadata entry in cache, no usable stats overall
-						return nullptr;
-					}
-				} else {
-					// for remote files we just avoid reading stats entirely
-					return nullptr;
-				}
-				// get and merge stats for file
-				auto file_stats = ParquetReader::ReadStatistics(context, bind_data.parquet_options, metadata,
-				                                                bind_data.names[column_index]);
-				if (!file_stats) {
-					return nullptr;
-				}
-				if (overall_stats) {
-					overall_stats->Merge(*file_stats);
-				} else {
-					overall_stats = std::move(file_stats);
-				}
-			}
-			// success!
-			return overall_stats;
+		if (bind_data.file_list->GetExpandResult() == FileExpandResult::MULTIPLE_FILES) {
+			// multiple files, no luck!
+			return nullptr;
 		}
+		if (!bind_data.initial_reader) {
+			// no reader
+			return nullptr;
+		}
+		// scanning single parquet file and we have the metadata read already
+		return bind_data.initial_reader->ReadStatistics(bind_data.names[column_index]);
 
-		// multiple files and no object cache, no luck!
 		return nullptr;
 	}
 
 	static unique_ptr ParquetScanBindInternal(ClientContext &context,
 	                                                        unique_ptr multi_file_reader,
-	                                                        unique_ptr file_list,
+	                                                        shared_ptr file_list,
 	                                                        vector &return_types, vector &names,
 	                                                        ParquetOptions parquet_options) {
 		auto result = make_uniq();
@@ -545,7 +509,11 @@ class ParquetScanFunction {
 			result->reader_bind = result->multi_file_reader->BindReader(
 			    context, result->types, result->names, *result->file_list, *result, parquet_options);
 		}
-
+		if (parquet_options.explicit_cardinality) {
+			auto file_count = result->file_list->GetTotalFileCount();
+			result->explicit_cardinality = parquet_options.explicit_cardinality;
+			result->initial_file_cardinality = result->explicit_cardinality / (file_count ? file_count : 1);
+		}
 		if (return_types.empty()) {
 			// no expected types - just copy the types
 			return_types = result->types;
@@ -618,6 +586,8 @@ class ParquetScanFunction {
 
 				// cannot be combined with hive_partitioning=true, so we disable auto-detection
 				parquet_options.file_options.auto_detect_hive_partitioning = false;
+			} else if (loption == "explicit_cardinality") {
+				parquet_options.explicit_cardinality = UBigIntValue::Get(kv.second);
 			} else if (loption == "encryption_config") {
 				parquet_options.encryption_config = ParquetEncryptionConfig::Create(context, kv.second);
 			}
@@ -692,7 +662,7 @@ class ParquetScanFunction {
 
 		result->multi_file_reader_state = bind_data.multi_file_reader->InitializeGlobalState(
 		    context, bind_data.parquet_options.file_options, bind_data.reader_bind, file_list, bind_data.types,
-		    bind_data.names, input.column_ids);
+		    bind_data.names, input.column_indexes);
 		if (file_list.IsEmpty()) {
 			result->readers = {};
 		} else if (!bind_data.union_readers.empty()) {
@@ -730,12 +700,12 @@ class ParquetScanFunction {
 				if (file_name != reader_data->reader->file_name) {
 					throw InternalException("Mismatch in filename order and reader order in parquet scan");
 				}
-				InitializeParquetReader(*reader_data->reader, bind_data, input.column_ids, input.filters, context,
+				InitializeParquetReader(*reader_data->reader, bind_data, input.column_indexes, input.filters, context,
 				                        file_idx, result->multi_file_reader_state);
 			}
 		}
 
-		result->column_ids = input.column_ids;
+		result->column_indexes = input.column_indexes;
 		result->filters = input.filters.get();
 		result->row_group_index = 0;
 		result->file_index = 0;
@@ -748,16 +718,16 @@ class ParquetScanFunction {
 			if (!input.projection_ids.empty()) {
 				result->projection_ids = input.projection_ids;
 			} else {
-				result->projection_ids.resize(input.column_ids.size());
+				result->projection_ids.resize(input.column_indexes.size());
 				iota(begin(result->projection_ids), end(result->projection_ids), 0);
 			}
 
 			const auto table_types = bind_data.types;
-			for (const auto &col_idx : input.column_ids) {
-				if (IsRowIdColumnId(col_idx)) {
+			for (const auto &col_idx : input.column_indexes) {
+				if (col_idx.IsRowIdColumn()) {
 					result->scanned_types.emplace_back(LogicalType::ROW_TYPE);
 				} else {
-					result->scanned_types.push_back(table_types[col_idx]);
+					result->scanned_types.push_back(table_types[col_idx.GetPrimaryIndex()]);
 				}
 			}
 		}
@@ -771,11 +741,16 @@ class ParquetScanFunction {
 		return std::move(result);
 	}
 
-	static idx_t ParquetScanGetBatchIndex(ClientContext &context, const FunctionData *bind_data_p,
-	                                      LocalTableFunctionState *local_state,
-	                                      GlobalTableFunctionState *global_state) {
-		auto &data = local_state->Cast();
-		return data.batch_index;
+	static OperatorPartitionData ParquetScanGetPartitionData(ClientContext &context,
+	                                                         TableFunctionGetPartitionInput &input) {
+		auto &bind_data = input.bind_data->CastNoConst();
+		auto &data = input.local_state->Cast();
+		auto &gstate = input.global_state->Cast();
+		OperatorPartitionData partition_data(data.batch_index);
+		bind_data.multi_file_reader->GetPartitionData(context, bind_data.reader_bind, data.reader->reader_data,
+		                                              gstate.multi_file_reader_state, input.partition_info,
+		                                              partition_data);
+		return partition_data;
 	}
 
 	static void ParquetScanSerialize(Serializer &serializer, const optional_ptr bind_data_p,
@@ -847,13 +822,15 @@ class ParquetScanFunction {
 
 	static unique_ptr ParquetCardinality(ClientContext &context, const FunctionData *bind_data) {
 		auto &data = bind_data->Cast();
-
+		if (data.explicit_cardinality) {
+			return make_uniq(data.explicit_cardinality);
+		}
 		auto file_list_cardinality_estimate = data.file_list->GetCardinality(context);
 		if (file_list_cardinality_estimate) {
 			return file_list_cardinality_estimate;
 		}
-
-		return make_uniq(data.initial_file_cardinality * data.file_list->GetTotalFileCount());
+		return make_uniq(MaxValue(data.initial_file_cardinality, (idx_t)1) *
+		                                 data.file_list->GetTotalFileCount());
 	}
 
 	static idx_t ParquetScanMaxThreads(ClientContext &context, const FunctionData *bind_data) {
@@ -1005,7 +982,7 @@ class ParquetScanFunction {
 						reader =
 						    make_shared_ptr(context, current_reader_data.file_to_be_opened, pq_options);
 					}
-					InitializeParquetReader(*reader, bind_data, parallel_state.column_ids, parallel_state.filters,
+					InitializeParquetReader(*reader, bind_data, parallel_state.column_indexes, parallel_state.filters,
 					                        context, i, parallel_state.multi_file_reader_state);
 				} catch (...) {
 					parallel_lock.lock();
@@ -1180,6 +1157,7 @@ unique_ptr ParquetWriteBind(ClientContext &context, CopyFunctionBi
                                           const vector &names, const vector &sql_types) {
 	D_ASSERT(names.size() == sql_types.size());
 	bool row_group_size_bytes_set = false;
+	bool compression_level_set = false;
 	auto bind_data = make_uniq();
 	for (auto &option : input.info.options) {
 		const auto loption = StringUtil::Lower(option.first);
@@ -1202,19 +1180,19 @@ unique_ptr ParquetWriteBind(ClientContext &context, CopyFunctionBi
 		} else if (loption == "compression" || loption == "codec") {
 			const auto roption = StringUtil::Lower(option.second[0].ToString());
 			if (roption == "uncompressed") {
-				bind_data->codec = duckdb_parquet::format::CompressionCodec::UNCOMPRESSED;
+				bind_data->codec = duckdb_parquet::CompressionCodec::UNCOMPRESSED;
 			} else if (roption == "snappy") {
-				bind_data->codec = duckdb_parquet::format::CompressionCodec::SNAPPY;
+				bind_data->codec = duckdb_parquet::CompressionCodec::SNAPPY;
 			} else if (roption == "gzip") {
-				bind_data->codec = duckdb_parquet::format::CompressionCodec::GZIP;
+				bind_data->codec = duckdb_parquet::CompressionCodec::GZIP;
 			} else if (roption == "zstd") {
-				bind_data->codec = duckdb_parquet::format::CompressionCodec::ZSTD;
+				bind_data->codec = duckdb_parquet::CompressionCodec::ZSTD;
 			} else if (roption == "brotli") {
-				bind_data->codec = duckdb_parquet::format::CompressionCodec::BROTLI;
+				bind_data->codec = duckdb_parquet::CompressionCodec::BROTLI;
 			} else if (roption == "lz4" || roption == "lz4_raw") {
 				/* LZ4 is technically another compression scheme, but deprecated and arrow also uses them
 				 * interchangeably */
-				bind_data->codec = duckdb_parquet::format::CompressionCodec::LZ4_RAW;
+				bind_data->codec = duckdb_parquet::CompressionCodec::LZ4_RAW;
 			} else {
 				throw BinderException("Expected %s argument to be either [uncompressed, brotli, gzip, snappy, or zstd]",
 				                      loption);
@@ -1257,14 +1235,19 @@ unique_ptr ParquetWriteBind(ClientContext &context, CopyFunctionBi
 		} else if (loption == "encryption_config") {
 			bind_data->encryption_config = ParquetEncryptionConfig::Create(context, option.second[0]);
 		} else if (loption == "dictionary_compression_ratio_threshold") {
+			// deprecated, ignore setting
+		} else if (loption == "dictionary_size_limit") {
+			auto val = option.second[0].GetValue();
+			if (val < 0) {
+				throw BinderException("dictionary_size_limit must be greater than 0 or 0 to disable");
+			}
+			bind_data->dictionary_size_limit = val;
+		} else if (loption == "bloom_filter_false_positive_ratio") {
 			auto val = option.second[0].GetValue();
-			if (val == -1) {
-				val = NumericLimits::Maximum();
-			} else if (val < 0) {
-				throw BinderException("dictionary_compression_ratio_threshold must be greater than 0, or -1 to disable "
-				                      "dictionary compression");
+			if (val <= 0) {
+				throw BinderException("bloom_filter_false_positive_ratio must be greater than 0");
 			}
-			bind_data->dictionary_compression_ratio_threshold = val;
+			bind_data->bloom_filter_false_positive_ratio = val;
 		} else if (loption == "debug_use_openssl") {
 			auto val = StringUtil::Lower(option.second[0].GetValue());
 			if (val == "false") {
@@ -1275,7 +1258,14 @@ unique_ptr ParquetWriteBind(ClientContext &context, CopyFunctionBi
 				throw BinderException("Expected debug_use_openssl to be a BOOLEAN");
 			}
 		} else if (loption == "compression_level") {
-			bind_data->compression_level = option.second[0].GetValue();
+			const auto val = option.second[0].GetValue();
+			if (val < ZStdFileSystem::MinimumCompressionLevel() || val > ZStdFileSystem::MaximumCompressionLevel()) {
+				throw BinderException("Compression level must be between %lld and %lld",
+				                      ZStdFileSystem::MinimumCompressionLevel(),
+				                      ZStdFileSystem::MaximumCompressionLevel());
+			}
+			bind_data->compression_level = val;
+			compression_level_set = true;
 		} else {
 			throw NotImplementedException("Unrecognized option for PARQUET: %s", option.first.c_str());
 		}
@@ -1285,9 +1275,10 @@ unique_ptr ParquetWriteBind(ClientContext &context, CopyFunctionBi
 			throw BinderException("ROW_GROUP_SIZE_BYTES does not work while preserving insertion order. Use \"SET "
 			                      "preserve_insertion_order=false;\" to disable preserving insertion order.");
 		}
-	} else {
-		// We always set a max row group size bytes so we don't use too much memory
-		bind_data->row_group_size_bytes = bind_data->row_group_size * ParquetWriteBindData::BYTES_PER_ROW;
+	}
+
+	if (compression_level_set && bind_data->codec != CompressionCodec::ZSTD) {
+		throw BinderException("Compression level is only supported for the ZSTD compression codec");
 	}
 
 	bind_data->sql_types = sql_types;
@@ -1301,11 +1292,11 @@ unique_ptr ParquetWriteInitializeGlobal(ClientContext &conte
 	auto &parquet_bind = bind_data.Cast();
 
 	auto &fs = FileSystem::GetFileSystem(context);
-	global_state->writer =
-	    make_uniq(context, fs, file_path, parquet_bind.sql_types, parquet_bind.column_names,
-	                             parquet_bind.codec, parquet_bind.field_ids.Copy(), parquet_bind.kv_metadata,
-	                             parquet_bind.encryption_config, parquet_bind.dictionary_compression_ratio_threshold,
-	                             parquet_bind.compression_level, parquet_bind.debug_use_openssl);
+	global_state->writer = make_uniq(
+	    context, fs, file_path, parquet_bind.sql_types, parquet_bind.column_names, parquet_bind.codec,
+	    parquet_bind.field_ids.Copy(), parquet_bind.kv_metadata, parquet_bind.encryption_config,
+	    parquet_bind.dictionary_size_limit, parquet_bind.bloom_filter_false_positive_ratio,
+	    parquet_bind.compression_level, parquet_bind.debug_use_openssl);
 	return std::move(global_state);
 }
 
@@ -1350,8 +1341,7 @@ unique_ptr ParquetWriteInitializeLocal(ExecutionContext &cont
 
 // FIXME: Have these be generated instead
 template <>
-const char *EnumUtil::ToChars(
-    duckdb_parquet::format::CompressionCodec::type value) {
+const char *EnumUtil::ToChars(duckdb_parquet::CompressionCodec::type value) {
 	switch (value) {
 	case CompressionCodec::UNCOMPRESSED:
 		return "UNCOMPRESSED";
@@ -1383,8 +1373,7 @@ const char *EnumUtil::ToChars(
 }
 
 template <>
-duckdb_parquet::format::CompressionCodec::type
-EnumUtil::FromString(const char *value) {
+duckdb_parquet::CompressionCodec::type EnumUtil::FromString(const char *value) {
 	if (StringUtil::Equals(value, "UNCOMPRESSED")) {
 		return CompressionCodec::UNCOMPRESSED;
 	}
@@ -1412,6 +1401,23 @@ EnumUtil::FromString(const char
 	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented", value));
 }
 
+static optional_idx SerializeCompressionLevel(const int64_t compression_level) {
+	return compression_level < 0 ? NumericLimits::Maximum() - NumericCast(AbsValue(compression_level))
+	                             : NumericCast(compression_level);
+}
+
+static int64_t DeserializeCompressionLevel(const optional_idx compression_level) {
+	// Was originally an optional_idx, now int64_t, so we still serialize as such
+	if (!compression_level.IsValid()) {
+		return ZStdFileSystem::DefaultCompressionLevel();
+	}
+	if (compression_level.GetIndex() > NumericCast(ZStdFileSystem::MaximumCompressionLevel())) {
+		// restore the negative compression level
+		return -NumericCast(NumericLimits::Maximum() - compression_level.GetIndex());
+	}
+	return NumericCast(compression_level.GetIndex());
+}
+
 static void ParquetCopySerialize(Serializer &serializer, const FunctionData &bind_data_p,
                                  const CopyFunction &function) {
 	auto &bind_data = bind_data_p.Cast();
@@ -1424,30 +1430,42 @@ static void ParquetCopySerialize(Serializer &serializer, const FunctionData &bin
 	serializer.WriteProperty(106, "field_ids", bind_data.field_ids);
 	serializer.WritePropertyWithDefault>(107, "encryption_config",
 	                                                                         bind_data.encryption_config, nullptr);
-	serializer.WriteProperty(108, "dictionary_compression_ratio_threshold",
-	                         bind_data.dictionary_compression_ratio_threshold);
-	serializer.WritePropertyWithDefault(109, "compression_level", bind_data.compression_level);
+
+	// 108 was dictionary_compression_ratio_threshold, but was deleted
+	const auto compression_level = SerializeCompressionLevel(bind_data.compression_level);
+	D_ASSERT(DeserializeCompressionLevel(compression_level) == bind_data.compression_level);
+	serializer.WritePropertyWithDefault(109, "compression_level", compression_level);
 	serializer.WriteProperty(110, "row_groups_per_file", bind_data.row_groups_per_file);
 	serializer.WriteProperty(111, "debug_use_openssl", bind_data.debug_use_openssl);
+	serializer.WriteProperty(112, "dictionary_size_limit", bind_data.dictionary_size_limit);
+	serializer.WriteProperty(113, "bloom_filter_false_positive_ratio", bind_data.bloom_filter_false_positive_ratio);
 }
 
 static unique_ptr ParquetCopyDeserialize(Deserializer &deserializer, CopyFunction &function) {
 	auto data = make_uniq();
 	data->sql_types = deserializer.ReadProperty>(100, "sql_types");
 	data->column_names = deserializer.ReadProperty>(101, "column_names");
-	data->codec = deserializer.ReadProperty(102, "codec");
+	data->codec = deserializer.ReadProperty(102, "codec");
 	data->row_group_size = deserializer.ReadProperty(103, "row_group_size");
 	data->row_group_size_bytes = deserializer.ReadProperty(104, "row_group_size_bytes");
 	data->kv_metadata = deserializer.ReadProperty>>(105, "kv_metadata");
 	data->field_ids = deserializer.ReadProperty(106, "field_ids");
 	deserializer.ReadPropertyWithExplicitDefault>(107, "encryption_config",
 	                                                                                  data->encryption_config, nullptr);
-	deserializer.ReadPropertyWithExplicitDefault(108, "dictionary_compression_ratio_threshold",
-	                                                     data->dictionary_compression_ratio_threshold, 1.0);
-	deserializer.ReadPropertyWithDefault(109, "compression_level", data->compression_level);
+	deserializer.ReadDeletedProperty(108, "dictionary_compression_ratio_threshold");
+
+	optional_idx compression_level;
+	deserializer.ReadPropertyWithDefault(109, "compression_level", compression_level);
+	data->compression_level = DeserializeCompressionLevel(compression_level);
+	D_ASSERT(SerializeCompressionLevel(data->compression_level) == compression_level);
 	data->row_groups_per_file =
 	    deserializer.ReadPropertyWithExplicitDefault(110, "row_groups_per_file", optional_idx::Invalid());
 	data->debug_use_openssl = deserializer.ReadPropertyWithExplicitDefault(111, "debug_use_openssl", true);
+	data->dictionary_size_limit =
+	    deserializer.ReadPropertyWithExplicitDefault(112, "dictionary_size_limit", data->row_group_size / 10);
+	data->bloom_filter_false_positive_ratio =
+	    deserializer.ReadPropertyWithExplicitDefault(113, "bloom_filter_false_positive_ratio", 0.01);
+
 	return std::move(data);
 }
 // LCOV_EXCL_STOP
@@ -1573,7 +1591,7 @@ static vector> ParquetWriteSelect(CopyToSelectInput &inpu
 		// Spatial types need to be encoded into WKB when writing GeoParquet.
 		// But dont perform this conversion if this is a EXPORT DATABASE statement
 		if (input.copy_to_type == CopyToType::COPY_TO_FILE && type.id() == LogicalTypeId::BLOB && type.HasAlias() &&
-		    type.GetAlias() == "GEOMETRY") {
+		    type.GetAlias() == "GEOMETRY" && GeoParquetFileMetadata::IsGeoParquetConversionEnabled(context)) {
 
 			LogicalType wkb_blob_type(LogicalTypeId::BLOB);
 			wkb_blob_type.SetAlias("WKB_BLOB");
@@ -1649,6 +1667,10 @@ void ParquetExtension::Load(DuckDB &db) {
 	ParquetFileMetadataFunction file_meta_fun;
 	ExtensionUtil::RegisterFunction(db_instance, MultiFileReader::CreateFunctionSet(file_meta_fun));
 
+	// parquet_bloom_probe
+	ParquetBloomProbeFunction bloom_probe_fun;
+	ExtensionUtil::RegisterFunction(db_instance, MultiFileReader::CreateFunctionSet(bloom_probe_fun));
+
 	CopyFunction function("parquet");
 	function.copy_to_select = ParquetWriteSelect;
 	function.copy_to_bind = ParquetWriteBind;
@@ -1680,6 +1702,18 @@ void ParquetExtension::Load(DuckDB &db) {
 	config.replacement_scans.emplace_back(ParquetScanReplacement);
 	config.AddExtensionOption("binary_as_string", "In Parquet files, interpret binary data as a string.",
 	                          LogicalType::BOOLEAN);
+	config.AddExtensionOption("disable_parquet_prefetching", "Disable the prefetching mechanism in Parquet",
+	                          LogicalType::BOOLEAN, Value(false));
+	config.AddExtensionOption("prefetch_all_parquet_files",
+	                          "Use the prefetching mechanism for all types of parquet files", LogicalType::BOOLEAN,
+	                          Value(false));
+	config.AddExtensionOption("parquet_metadata_cache",
+	                          "Cache Parquet metadata - useful when reading the same files multiple times",
+	                          LogicalType::BOOLEAN, Value(false));
+	config.AddExtensionOption(
+	    "enable_geoparquet_conversion",
+	    "Attempt to decode/encode geometry data in/as GeoParquet files if the spatial extension is present.",
+	    LogicalType::BOOLEAN, Value::BOOLEAN(true));
 }
 
 std::string ParquetExtension::Name() {
diff --git a/src/duckdb/extension/parquet/parquet_metadata.cpp b/src/duckdb/extension/parquet/parquet_metadata.cpp
index b1d70a54..1c3b9b2f 100644
--- a/src/duckdb/extension/parquet/parquet_metadata.cpp
+++ b/src/duckdb/extension/parquet/parquet_metadata.cpp
@@ -8,6 +8,7 @@
 #include "duckdb/common/multi_file_reader.hpp"
 #include "duckdb/common/types/blob.hpp"
 #include "duckdb/common/types/column/column_data_collection.hpp"
+#include "duckdb/planner/filter/constant_filter.hpp"
 #include "duckdb/main/config.hpp"
 #endif
 
@@ -15,11 +16,22 @@ namespace duckdb {
 
 struct ParquetMetaDataBindData : public TableFunctionData {
 	vector return_types;
-	unique_ptr file_list;
+	shared_ptr file_list;
 	unique_ptr multi_file_reader;
 };
 
-enum class ParquetMetadataOperatorType : uint8_t { META_DATA, SCHEMA, KEY_VALUE_META_DATA, FILE_META_DATA };
+struct ParquetBloomProbeBindData : public ParquetMetaDataBindData {
+	string probe_column_name;
+	Value probe_constant;
+};
+
+enum class ParquetMetadataOperatorType : uint8_t {
+	META_DATA,
+	SCHEMA,
+	KEY_VALUE_META_DATA,
+	FILE_META_DATA,
+	BLOOM_PROBE
+};
 
 struct ParquetMetaDataOperatorData : public GlobalTableFunctionState {
 	explicit ParquetMetaDataOperatorData(ClientContext &context, const vector &types)
@@ -37,11 +49,14 @@ struct ParquetMetaDataOperatorData : public GlobalTableFunctionState {
 	static void BindSchema(vector &return_types, vector &names);
 	static void BindKeyValueMetaData(vector &return_types, vector &names);
 	static void BindFileMetaData(vector &return_types, vector &names);
+	static void BindBloomProbe(vector &return_types, vector &names);
 
 	void LoadRowGroupMetadata(ClientContext &context, const vector &return_types, const string &file_path);
 	void LoadSchemaData(ClientContext &context, const vector &return_types, const string &file_path);
 	void LoadKeyValueMetaData(ClientContext &context, const vector &return_types, const string &file_path);
 	void LoadFileMetaData(ClientContext &context, const vector &return_types, const string &file_path);
+	void ExecuteBloomProbe(ClientContext &context, const vector &return_types, const string &file_path,
+	                       const string &column_name, const Value &probe);
 };
 
 template 
@@ -164,10 +179,16 @@ void ParquetMetaDataOperatorData::BindMetaData(vector &return_types
 
 	names.emplace_back("key_value_metadata");
 	return_types.emplace_back(LogicalType::MAP(LogicalType::BLOB, LogicalType::BLOB));
+
+	names.emplace_back("bloom_filter_offset");
+	return_types.emplace_back(LogicalType::BIGINT);
+
+	names.emplace_back("bloom_filter_length");
+	return_types.emplace_back(LogicalType::BIGINT);
 }
 
-Value ConvertParquetStats(const LogicalType &type, const duckdb_parquet::format::SchemaElement &schema_ele,
-                          bool stats_is_set, const std::string &stats) {
+Value ConvertParquetStats(const LogicalType &type, const duckdb_parquet::SchemaElement &schema_ele, bool stats_is_set,
+                          const std::string &stats) {
 	if (!stats_is_set) {
 		return Value(LogicalType::VARCHAR);
 	}
@@ -298,6 +319,14 @@ void ParquetMetaDataOperatorData::LoadRowGroupMetadata(ClientContext &context, c
 			    23, count,
 			    Value::MAP(LogicalType::BLOB, LogicalType::BLOB, std::move(map_keys), std::move(map_values)));
 
+			// bloom_filter_offset, LogicalType::BIGINT
+			current_chunk.SetValue(
+			    24, count, ParquetElementBigint(col_meta.bloom_filter_offset, col_meta.__isset.bloom_filter_offset));
+
+			// bloom_filter_length, LogicalType::BIGINT
+			current_chunk.SetValue(
+			    25, count, ParquetElementBigint(col_meta.bloom_filter_length, col_meta.__isset.bloom_filter_length));
+
 			count++;
 			if (count >= STANDARD_VECTOR_SIZE) {
 				current_chunk.SetCardinality(count);
@@ -352,7 +381,7 @@ void ParquetMetaDataOperatorData::BindSchema(vector &return_types,
 	return_types.emplace_back(LogicalType::VARCHAR);
 }
 
-Value ParquetLogicalTypeToString(const duckdb_parquet::format::LogicalType &type, bool is_set) {
+Value ParquetLogicalTypeToString(const duckdb_parquet::LogicalType &type, bool is_set) {
 	if (!is_set) {
 		return Value();
 	}
@@ -560,12 +589,84 @@ void ParquetMetaDataOperatorData::LoadFileMetaData(ClientContext &context, const
 	collection.InitializeScan(scan_state);
 }
 
+//===--------------------------------------------------------------------===//
+// Bloom Probe
+//===--------------------------------------------------------------------===//
+void ParquetMetaDataOperatorData::BindBloomProbe(vector &return_types, vector &names) {
+	names.emplace_back("file_name");
+	return_types.emplace_back(LogicalType::VARCHAR);
+
+	names.emplace_back("row_group_id");
+	return_types.emplace_back(LogicalType::BIGINT);
+
+	names.emplace_back("bloom_filter_excludes");
+	return_types.emplace_back(LogicalType::BOOLEAN);
+}
+
+void ParquetMetaDataOperatorData::ExecuteBloomProbe(ClientContext &context, const vector &return_types,
+                                                    const string &file_path, const string &column_name,
+                                                    const Value &probe) {
+	collection.Reset();
+	ParquetOptions parquet_options(context);
+	auto reader = make_uniq(context, file_path, parquet_options);
+	idx_t count = 0;
+	DataChunk current_chunk;
+	current_chunk.Initialize(context, return_types);
+	auto meta_data = reader->GetFileMetadata();
+
+	optional_idx probe_column_idx;
+	for (idx_t column_idx = 0; column_idx < reader->names.size(); column_idx++) {
+		if (reader->names[column_idx] == column_name) {
+			probe_column_idx = column_idx;
+		}
+	}
+
+	if (!probe_column_idx.IsValid()) {
+		throw InvalidInputException("Column %s not found in %s", column_name, file_path);
+	}
+
+	auto &allocator = Allocator::DefaultAllocator();
+	auto transport = std::make_shared(allocator, reader->GetHandle(), false);
+	auto protocol =
+	    make_uniq>(std::move(transport));
+
+	D_ASSERT(!probe.IsNull());
+	ConstantFilter filter(ExpressionType::COMPARE_EQUAL,
+	                      probe.CastAs(context, reader->GetTypes()[probe_column_idx.GetIndex()]));
+
+	for (idx_t row_group_idx = 0; row_group_idx < meta_data->row_groups.size(); row_group_idx++) {
+		auto &row_group = meta_data->row_groups[row_group_idx];
+		auto &column = row_group.columns[probe_column_idx.GetIndex()];
+
+		auto bloom_excludes =
+		    ParquetStatisticsUtils::BloomFilterExcludes(filter, column.meta_data, *protocol, allocator);
+		current_chunk.SetValue(0, count, Value(file_path));
+		current_chunk.SetValue(1, count, Value::BIGINT(row_group_idx));
+		current_chunk.SetValue(2, count, Value::BOOLEAN(bloom_excludes));
+
+		count++;
+		if (count >= STANDARD_VECTOR_SIZE) {
+			current_chunk.SetCardinality(count);
+			collection.Append(current_chunk);
+
+			count = 0;
+			current_chunk.Reset();
+		}
+	}
+
+	current_chunk.SetCardinality(count);
+	collection.Append(current_chunk);
+	collection.InitializeScan(scan_state);
+}
+
 //===--------------------------------------------------------------------===//
 // Bind
 //===--------------------------------------------------------------------===//
 template 
 unique_ptr ParquetMetaDataBind(ClientContext &context, TableFunctionBindInput &input,
                                              vector &return_types, vector &names) {
+	auto result = make_uniq();
+
 	switch (TYPE) {
 	case ParquetMetadataOperatorType::SCHEMA:
 		ParquetMetaDataOperatorData::BindSchema(return_types, names);
@@ -579,14 +680,26 @@ unique_ptr ParquetMetaDataBind(ClientContext &context, TableFuncti
 	case ParquetMetadataOperatorType::FILE_META_DATA:
 		ParquetMetaDataOperatorData::BindFileMetaData(return_types, names);
 		break;
+	case ParquetMetadataOperatorType::BLOOM_PROBE: {
+		auto probe_bind_data = make_uniq();
+		D_ASSERT(input.inputs.size() == 3);
+		if (input.inputs[1].IsNull() || input.inputs[2].IsNull()) {
+			throw InvalidInputException("Can't have NULL parameters for parquet_bloom_probe");
+		}
+		probe_bind_data->probe_column_name = input.inputs[1].CastAs(context, LogicalType::VARCHAR).GetValue();
+		probe_bind_data->probe_constant = input.inputs[2];
+		result = std::move(probe_bind_data);
+		ParquetMetaDataOperatorData::BindBloomProbe(return_types, names);
+		break;
+	}
 	default:
 		throw InternalException("Unsupported ParquetMetadataOperatorType");
 	}
 
-	auto result = make_uniq();
 	result->return_types = return_types;
 	result->multi_file_reader = MultiFileReader::Create(input.table_function);
 	result->file_list = result->multi_file_reader->CreateFileList(context, input.inputs[0]);
+
 	return std::move(result);
 }
 
@@ -614,6 +727,12 @@ unique_ptr ParquetMetaDataInit(ClientContext &context,
 	case ParquetMetadataOperatorType::FILE_META_DATA:
 		result->LoadFileMetaData(context, bind_data.return_types, bind_data.file_list->GetFirstFile());
 		break;
+	case ParquetMetadataOperatorType::BLOOM_PROBE: {
+		auto &bloom_probe_bind_data = input.bind_data->Cast();
+		result->ExecuteBloomProbe(context, bind_data.return_types, bind_data.file_list->GetFirstFile(),
+		                          bloom_probe_bind_data.probe_column_name, bloom_probe_bind_data.probe_constant);
+		break;
+	}
 	default:
 		throw InternalException("Unsupported ParquetMetadataOperatorType");
 	}
@@ -647,6 +766,12 @@ void ParquetMetaDataImplementation(ClientContext &context, TableFunctionInput &d
 			case ParquetMetadataOperatorType::FILE_META_DATA:
 				data.LoadFileMetaData(context, bind_data.return_types, data.current_file);
 				break;
+			case ParquetMetadataOperatorType::BLOOM_PROBE: {
+				auto &bloom_probe_bind_data = data_p.bind_data->Cast();
+				data.ExecuteBloomProbe(context, bind_data.return_types, bind_data.file_list->GetFirstFile(),
+				                       bloom_probe_bind_data.probe_column_name, bloom_probe_bind_data.probe_constant);
+				break;
+			}
 			default:
 				throw InternalException("Unsupported ParquetMetadataOperatorType");
 			}
@@ -686,4 +811,11 @@ ParquetFileMetadataFunction::ParquetFileMetadataFunction()
                     ParquetMetaDataInit) {
 }
 
+ParquetBloomProbeFunction::ParquetBloomProbeFunction()
+    : TableFunction("parquet_bloom_probe", {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::ANY},
+                    ParquetMetaDataImplementation,
+                    ParquetMetaDataBind,
+                    ParquetMetaDataInit) {
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/parquet_reader.cpp b/src/duckdb/extension/parquet/parquet_reader.cpp
index 0508d254..e6ce7aa9 100644
--- a/src/duckdb/extension/parquet/parquet_reader.cpp
+++ b/src/duckdb/extension/parquet/parquet_reader.cpp
@@ -29,6 +29,7 @@
 #include "duckdb/planner/filter/conjunction_filter.hpp"
 #include "duckdb/planner/filter/constant_filter.hpp"
 #include "duckdb/planner/filter/struct_filter.hpp"
+#include "duckdb/planner/filter/optional_filter.hpp"
 #include "duckdb/planner/table_filter.hpp"
 #include "duckdb/storage/object_cache.hpp"
 #endif
@@ -40,15 +41,15 @@
 
 namespace duckdb {
 
-using duckdb_parquet::format::ColumnChunk;
-using duckdb_parquet::format::ConvertedType;
-using duckdb_parquet::format::FieldRepetitionType;
-using duckdb_parquet::format::FileCryptoMetaData;
-using duckdb_parquet::format::FileMetaData;
-using ParquetRowGroup = duckdb_parquet::format::RowGroup;
-using duckdb_parquet::format::SchemaElement;
-using duckdb_parquet::format::Statistics;
-using duckdb_parquet::format::Type;
+using duckdb_parquet::ColumnChunk;
+using duckdb_parquet::ConvertedType;
+using duckdb_parquet::FieldRepetitionType;
+using duckdb_parquet::FileCryptoMetaData;
+using duckdb_parquet::FileMetaData;
+using ParquetRowGroup = duckdb_parquet::RowGroup;
+using duckdb_parquet::SchemaElement;
+using duckdb_parquet::Statistics;
+using duckdb_parquet::Type;
 
 static unique_ptr
 CreateThriftFileProtocol(Allocator &allocator, FileHandle &file_handle, bool prefetch_mode) {
@@ -147,6 +148,10 @@ LogicalType ParquetReader::DeriveLogicalType(const SchemaElement &s_ele, bool bi
 		}
 	}
 	if (s_ele.__isset.converted_type) {
+		// Legacy NULL type, does no longer exist, but files are still around of course
+		if (static_cast(s_ele.converted_type) == 24) {
+			return LogicalTypeId::SQLNULL;
+		}
 		switch (s_ele.converted_type) {
 		case ConvertedType::INT_8:
 			if (s_ele.type == Type::INT32) {
@@ -251,8 +256,6 @@ LogicalType ParquetReader::DeriveLogicalType(const SchemaElement &s_ele, bool bi
 			return LogicalType::INTERVAL;
 		case ConvertedType::JSON:
 			return LogicalType::JSON();
-		case ConvertedType::NULL_TYPE:
-			return LogicalTypeId::SQLNULL;
 		case ConvertedType::MAP:
 		case ConvertedType::MAP_KEY_VALUE:
 		case ConvertedType::LIST:
@@ -292,9 +295,10 @@ LogicalType ParquetReader::DeriveLogicalType(const SchemaElement &s_ele) {
 	return DeriveLogicalType(s_ele, parquet_options.binary_as_string);
 }
 
-unique_ptr ParquetReader::CreateReaderRecursive(ClientContext &context, idx_t depth, idx_t max_define,
-                                                              idx_t max_repeat, idx_t &next_schema_idx,
-                                                              idx_t &next_file_idx) {
+unique_ptr ParquetReader::CreateReaderRecursive(ClientContext &context,
+                                                              const vector &indexes, idx_t depth,
+                                                              idx_t max_define, idx_t max_repeat,
+                                                              idx_t &next_schema_idx, idx_t &next_file_idx) {
 	auto file_meta_data = GetFileMetadata();
 	D_ASSERT(file_meta_data);
 	D_ASSERT(next_schema_idx < file_meta_data->schema.size());
@@ -324,6 +328,12 @@ unique_ptr ParquetReader::CreateReaderRecursive(ClientContext &con
 	if (s_ele.__isset.num_children && s_ele.num_children > 0) { // inner node
 		child_list_t child_types;
 		vector> child_readers;
+		// this type is a nested type - it has child columns specified
+		// create a mapping for which column readers we should create
+		unordered_map> required_readers;
+		for (auto &index : indexes) {
+			required_readers.insert(make_pair(index.GetPrimaryIndex(), index.GetChildIndexes()));
+		}
 
 		idx_t c_idx = 0;
 		while (c_idx < (idx_t)s_ele.num_children) {
@@ -331,10 +341,23 @@ unique_ptr ParquetReader::CreateReaderRecursive(ClientContext &con
 
 			auto &child_ele = file_meta_data->schema[next_schema_idx];
 
-			auto child_reader =
-			    CreateReaderRecursive(context, depth + 1, max_define, max_repeat, next_schema_idx, next_file_idx);
+			// figure out which child columns we should read of this child column
+			vector child_indexes;
+			auto entry = required_readers.find(c_idx);
+			if (entry != required_readers.end()) {
+				child_indexes = entry->second;
+			}
+			auto child_reader = CreateReaderRecursive(context, child_indexes, depth + 1, max_define, max_repeat,
+			                                          next_schema_idx, next_file_idx);
 			child_types.push_back(make_pair(child_ele.name, child_reader->Type()));
-			child_readers.push_back(std::move(child_reader));
+			if (indexes.empty() || entry != required_readers.end()) {
+				// either (1) indexes is empty, meaning we need to read all child columns, or (2) we need to read this
+				// column
+				child_readers.push_back(std::move(child_reader));
+			} else {
+				// this column was explicitly not required - push an empty child reader here
+				child_readers.push_back(nullptr);
+			}
 
 			c_idx++;
 		}
@@ -432,7 +455,7 @@ unique_ptr ParquetReader::CreateReader(ClientContext &context) {
 	if (file_meta_data->schema[0].num_children == 0) {
 		throw IOException("Parquet reader: root schema element has no children");
 	}
-	auto ret = CreateReaderRecursive(context, 0, 0, 0, next_schema_idx, next_file_idx);
+	auto ret = CreateReaderRecursive(context, reader_data.column_indexes, 0, 0, 0, next_schema_idx, next_file_idx);
 	if (ret->Type().id() != LogicalTypeId::STRUCT) {
 		throw InvalidInputException("Root element of Parquet file must be a struct");
 	}
@@ -538,11 +561,13 @@ ParquetReader::ParquetReader(ClientContext &context_p, string file_name_p, Parqu
 		encryption_util = make_shared_ptr();
 	}
 
-	// If object cached is disabled
+	// If metadata cached is disabled
 	// or if this file has cached metadata
 	// or if the cached version already expired
 	if (!metadata_p) {
-		if (!ObjectCache::ObjectCacheEnabled(context_p)) {
+		Value metadata_cache = false;
+		context_p.TryGetCurrentSetting("parquet_metadata_cache", metadata_cache);
+		if (!metadata_cache.GetValue()) {
 			metadata =
 			    LoadMetadata(context_p, allocator, *file_handle, parquet_options.encryption_config, *encryption_util);
 		} else {
@@ -592,11 +617,11 @@ unique_ptr ParquetReader::ReadStatistics(const string &name) {
 
 	unique_ptr column_stats;
 	auto file_meta_data = GetFileMetadata();
-	auto column_reader = root_reader->Cast().GetChildReader(file_col_idx);
+	auto &column_reader = root_reader->Cast().GetChildReader(file_col_idx);
 
 	for (idx_t row_group_idx = 0; row_group_idx < file_meta_data->row_groups.size(); row_group_idx++) {
 		auto &row_group = file_meta_data->row_groups[row_group_idx];
-		auto chunk_stats = column_reader->Stats(row_group_idx, row_group.columns);
+		auto chunk_stats = column_reader.Stats(row_group_idx, row_group.columns);
 		if (!chunk_stats) {
 			return nullptr;
 		}
@@ -637,8 +662,7 @@ uint32_t ParquetReader::ReadData(duckdb_apache::thrift::protocol::TProtocol &ipr
 const ParquetRowGroup &ParquetReader::GetGroup(ParquetReaderScanState &state) {
 	auto file_meta_data = GetFileMetadata();
 	D_ASSERT(state.current_group >= 0 && (idx_t)state.current_group < state.group_idx_list.size());
-	D_ASSERT(state.group_idx_list[state.current_group] >= 0 &&
-	         state.group_idx_list[state.current_group] < file_meta_data->row_groups.size());
+	D_ASSERT(state.group_idx_list[state.current_group] < file_meta_data->row_groups.size());
 	return file_meta_data->row_groups[state.group_idx_list[state.current_group]];
 }
 
@@ -720,22 +744,30 @@ static FilterPropagateResult CheckParquetStringFilter(BaseStatistics &stats, con
 void ParquetReader::PrepareRowGroupBuffer(ParquetReaderScanState &state, idx_t col_idx) {
 	auto &group = GetGroup(state);
 	auto column_id = reader_data.column_ids[col_idx];
-	auto column_reader = state.root_reader->Cast().GetChildReader(column_id);
+	auto &column_reader = state.root_reader->Cast().GetChildReader(column_id);
 
 	// TODO move this to columnreader too
 	if (reader_data.filters) {
-		auto stats = column_reader->Stats(state.group_idx_list[state.current_group], group.columns);
+		auto stats = column_reader.Stats(state.group_idx_list[state.current_group], group.columns);
 		// filters contain output chunk index, not file col idx!
 		auto global_id = reader_data.column_mapping[col_idx];
 		auto filter_entry = reader_data.filters->filters.find(global_id);
+
 		if (stats && filter_entry != reader_data.filters->filters.end()) {
-			bool skip_chunk = false;
 			auto &filter = *filter_entry->second;
 
 			FilterPropagateResult prune_result;
-			if (column_reader->Type().id() == LogicalTypeId::VARCHAR &&
-			    group.columns[column_reader->FileIdx()].meta_data.statistics.__isset.min_value &&
-			    group.columns[column_reader->FileIdx()].meta_data.statistics.__isset.max_value) {
+			// TODO we might not have stats but STILL a bloom filter so move this up
+			// check the bloom filter if present
+			if (!column_reader.Type().IsNested() &&
+			    ParquetStatisticsUtils::BloomFilterSupported(column_reader.Type().id()) &&
+			    ParquetStatisticsUtils::BloomFilterExcludes(filter, group.columns[column_reader.FileIdx()].meta_data,
+			                                                *state.thrift_file_proto, allocator)) {
+				prune_result = FilterPropagateResult::FILTER_ALWAYS_FALSE;
+			} else if (column_reader.Type().id() == LogicalTypeId::VARCHAR &&
+			           group.columns[column_reader.FileIdx()].meta_data.statistics.__isset.min_value &&
+			           group.columns[column_reader.FileIdx()].meta_data.statistics.__isset.max_value) {
+
 				// our StringStats only store the first 8 bytes of strings (even if Parquet has longer string stats)
 				// however, when reading remote Parquet files, skipping row groups is really important
 				// here, we implement a special case to check the full length for string filters
@@ -744,7 +776,7 @@ void ParquetReader::PrepareRowGroupBuffer(ParquetReaderScanState &state, idx_t c
 					auto and_result = FilterPropagateResult::FILTER_ALWAYS_TRUE;
 					for (auto &child_filter : and_filter.child_filters) {
 						auto child_prune_result = CheckParquetStringFilter(
-						    *stats, group.columns[column_reader->FileIdx()].meta_data.statistics, *child_filter);
+						    *stats, group.columns[column_reader.FileIdx()].meta_data.statistics, *child_filter);
 						if (child_prune_result == FilterPropagateResult::FILTER_ALWAYS_FALSE) {
 							and_result = FilterPropagateResult::FILTER_ALWAYS_FALSE;
 							break;
@@ -755,16 +787,13 @@ void ParquetReader::PrepareRowGroupBuffer(ParquetReaderScanState &state, idx_t c
 					prune_result = and_result;
 				} else {
 					prune_result = CheckParquetStringFilter(
-					    *stats, group.columns[column_reader->FileIdx()].meta_data.statistics, filter);
+					    *stats, group.columns[column_reader.FileIdx()].meta_data.statistics, filter);
 				}
 			} else {
 				prune_result = filter.CheckStatistics(*stats);
 			}
 
 			if (prune_result == FilterPropagateResult::FILTER_ALWAYS_FALSE) {
-				skip_chunk = true;
-			}
-			if (skip_chunk) {
 				// this effectively will skip this chunk
 				state.group_offset = group.num_rows;
 				return;
@@ -794,7 +823,14 @@ void ParquetReader::InitializeScan(ClientContext &context, ParquetReaderScanStat
 	if (!state.file_handle || state.file_handle->path != file_handle->path) {
 		auto flags = FileFlags::FILE_FLAGS_READ;
 
-		if (!file_handle->OnDiskFile() && file_handle->CanSeek()) {
+		Value disable_prefetch = false;
+		Value prefetch_all_files = false;
+		context.TryGetCurrentSetting("disable_parquet_prefetching", disable_prefetch);
+		context.TryGetCurrentSetting("prefetch_all_parquet_files", prefetch_all_files);
+		bool should_prefetch = !file_handle->OnDiskFile() || prefetch_all_files.GetValue();
+		bool can_prefetch = file_handle->CanSeek() && !disable_prefetch.GetValue();
+
+		if (should_prefetch && can_prefetch) {
 			state.prefetch_mode = true;
 			flags |= FileFlags::FILE_FLAGS_DIRECT_IO;
 		} else {
@@ -818,15 +854,16 @@ void FilterIsNull(Vector &v, parquet_filter_t &filter_mask, idx_t count) {
 		}
 		return;
 	}
-	D_ASSERT(v.GetVectorType() == VectorType::FLAT_VECTOR);
 
-	auto &mask = FlatVector::Validity(v);
-	if (mask.AllValid()) {
+	UnifiedVectorFormat unified;
+	v.ToUnifiedFormat(count, unified);
+
+	if (unified.validity.AllValid()) {
 		filter_mask.reset();
 	} else {
 		for (idx_t i = 0; i < count; i++) {
 			if (filter_mask.test(i)) {
-				filter_mask.set(i, !mask.RowIsValid(i));
+				filter_mask.set(i, !unified.validity.RowIsValid(unified.sel->get_index(i)));
 			}
 		}
 	}
@@ -840,13 +877,14 @@ void FilterIsNotNull(Vector &v, parquet_filter_t &filter_mask, idx_t count) {
 		}
 		return;
 	}
-	D_ASSERT(v.GetVectorType() == VectorType::FLAT_VECTOR);
 
-	auto &mask = FlatVector::Validity(v);
-	if (!mask.AllValid()) {
+	UnifiedVectorFormat unified;
+	v.ToUnifiedFormat(count, unified);
+
+	if (!unified.validity.AllValid()) {
 		for (idx_t i = 0; i < count; i++) {
 			if (filter_mask.test(i)) {
-				filter_mask.set(i, mask.RowIsValid(i));
+				filter_mask.set(i, unified.validity.RowIsValid(unified.sel->get_index(i)));
 			}
 		}
 	}
@@ -862,24 +900,32 @@ void TemplatedFilterOperation(Vector &v, T constant, parquet_filter_t &filter_ma
 			if (!OP::Operation(v_ptr[0], constant)) {
 				filter_mask.reset();
 			}
+		} else {
+			filter_mask.reset();
 		}
 		return;
 	}
 
-	D_ASSERT(v.GetVectorType() == VectorType::FLAT_VECTOR);
-	auto v_ptr = FlatVector::GetData(v);
-	auto &mask = FlatVector::Validity(v);
+	UnifiedVectorFormat unified;
+	v.ToUnifiedFormat(count, unified);
+	auto data_ptr = UnifiedVectorFormat::GetData(unified);
 
-	if (!mask.AllValid()) {
+	if (!unified.validity.AllValid()) {
 		for (idx_t i = 0; i < count; i++) {
-			if (filter_mask.test(i) && mask.RowIsValid(i)) {
-				filter_mask.set(i, OP::Operation(v_ptr[i], constant));
+			if (filter_mask.test(i)) {
+				auto idx = unified.sel->get_index(i);
+				bool is_valid = unified.validity.RowIsValid(idx);
+				if (is_valid) {
+					filter_mask.set(i, OP::Operation(data_ptr[idx], constant));
+				} else {
+					filter_mask.set(i, false);
+				}
 			}
 		}
 	} else {
 		for (idx_t i = 0; i < count; i++) {
 			if (filter_mask.test(i)) {
-				filter_mask.set(i, OP::Operation(v_ptr[i], constant));
+				filter_mask.set(i, OP::Operation(data_ptr[unified.sel->get_index(i)], constant));
 			}
 		}
 	}
@@ -978,8 +1024,11 @@ static void ApplyFilter(Vector &v, TableFilter &filter, parquet_filter_t &filter
 		case ExpressionType::COMPARE_GREATERTHANOREQUALTO:
 			FilterOperationSwitch(v, constant_filter.constant, filter_mask, count);
 			break;
+		case ExpressionType::COMPARE_NOTEQUAL:
+			FilterOperationSwitch(v, constant_filter.constant, filter_mask, count);
+			break;
 		default:
-			D_ASSERT(0);
+			throw InternalException("Unsupported comparison for Parquet filter pushdown");
 		}
 		break;
 	}
@@ -993,7 +1042,12 @@ static void ApplyFilter(Vector &v, TableFilter &filter, parquet_filter_t &filter
 		auto &struct_filter = filter.Cast();
 		auto &child = StructVector::GetEntries(v)[struct_filter.child_idx];
 		ApplyFilter(*child, *struct_filter.child_filter, filter_mask, count);
-	} break;
+	}
+	case TableFilterType::OPTIONAL_FILTER: {
+		// we don't execute zone map filters here - we only consider them for zone map pruning
+		// do nothing to the mask.
+		break;
+	}
 	default:
 		D_ASSERT(0);
 		break;
@@ -1035,19 +1089,21 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
 			auto file_col_idx = reader_data.column_ids[col_idx];
 
 			auto &root_reader = state.root_reader->Cast();
-			to_scan_compressed_bytes += root_reader.GetChildReader(file_col_idx)->TotalCompressedSize();
+			to_scan_compressed_bytes += root_reader.GetChildReader(file_col_idx).TotalCompressedSize();
 		}
 
 		auto &group = GetGroup(state);
 		if (state.prefetch_mode && state.group_offset != (idx_t)group.num_rows) {
-
 			uint64_t total_row_group_span = GetGroupSpan(state);
 
 			double scan_percentage = (double)(to_scan_compressed_bytes) / static_cast(total_row_group_span);
 
 			if (to_scan_compressed_bytes > total_row_group_span) {
-				throw InvalidInputException(
-				    "Malformed parquet file: sum of total compressed bytes of columns seems incorrect");
+				throw IOException(
+				    "The parquet file '%s' seems to have incorrectly set page offsets. This interferes with DuckDB's "
+				    "prefetching optimization. DuckDB may still be able to scan this file by manually disabling the "
+				    "prefetching mechanism using: 'SET disable_parquet_prefetching=true'.",
+				    file_name);
 			}
 
 			if (!reader_data.filters &&
@@ -1075,7 +1131,7 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
 						auto entry = reader_data.filters->filters.find(reader_data.column_mapping[col_idx]);
 						has_filter = entry != reader_data.filters->filters.end();
 					}
-					root_reader.GetChildReader(file_col_idx)->RegisterPrefetch(trans, !(lazy_fetch && !has_filter));
+					root_reader.GetChildReader(file_col_idx).RegisterPrefetch(trans, !(lazy_fetch && !has_filter));
 				}
 
 				trans.FinalizeRegistration();
@@ -1135,8 +1191,8 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
 				auto result_idx = reader_data.column_mapping[id];
 
 				auto &result_vector = result.data[result_idx];
-				auto child_reader = root_reader.GetChildReader(file_col_idx);
-				child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
+				auto &child_reader = root_reader.GetChildReader(file_col_idx);
+				child_reader.Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
 				need_to_read[id] = false;
 
 				ApplyFilter(result_vector, *filter_col.second, filter_mask, this_output_chunk_rows);
@@ -1150,12 +1206,12 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
 			}
 			auto file_col_idx = reader_data.column_ids[col_idx];
 			if (filter_mask.none()) {
-				root_reader.GetChildReader(file_col_idx)->Skip(result.size());
+				root_reader.GetChildReader(file_col_idx).Skip(result.size());
 				continue;
 			}
 			auto &result_vector = result.data[reader_data.column_mapping[col_idx]];
-			auto child_reader = root_reader.GetChildReader(file_col_idx);
-			child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
+			auto &child_reader = root_reader.GetChildReader(file_col_idx);
+			child_reader.Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
 		}
 
 		idx_t sel_size = 0;
@@ -1170,8 +1226,8 @@ bool ParquetReader::ScanInternal(ParquetReaderScanState &state, DataChunk &resul
 		for (idx_t col_idx = 0; col_idx < reader_data.column_ids.size(); col_idx++) {
 			auto file_col_idx = reader_data.column_ids[col_idx];
 			auto &result_vector = result.data[reader_data.column_mapping[col_idx]];
-			auto child_reader = root_reader.GetChildReader(file_col_idx);
-			auto rows_read = child_reader->Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
+			auto &child_reader = root_reader.GetChildReader(file_col_idx);
+			auto rows_read = child_reader.Read(result.size(), filter_mask, define_ptr, repeat_ptr, result_vector);
 			if (rows_read != result.size()) {
 				throw InvalidInputException("Mismatch in parquet read for column %llu, expected %llu rows, got %llu",
 				                            file_col_idx, result.size(), rows_read);
diff --git a/src/duckdb/extension/parquet/parquet_statistics.cpp b/src/duckdb/extension/parquet/parquet_statistics.cpp
index 26896c57..b20510be 100644
--- a/src/duckdb/extension/parquet/parquet_statistics.cpp
+++ b/src/duckdb/extension/parquet/parquet_statistics.cpp
@@ -5,21 +5,24 @@
 #include "parquet_timestamp.hpp"
 #include "string_column_reader.hpp"
 #include "struct_column_reader.hpp"
+#include "zstd/common/xxhash.hpp"
+
 #ifndef DUCKDB_AMALGAMATION
 #include "duckdb/common/types/blob.hpp"
 #include "duckdb/common/types/time.hpp"
 #include "duckdb/common/types/value.hpp"
 #include "duckdb/storage/statistics/struct_stats.hpp"
+#include "duckdb/planner/filter/constant_filter.hpp"
 #endif
 
 namespace duckdb {
 
-using duckdb_parquet::format::ConvertedType;
-using duckdb_parquet::format::Type;
+using duckdb_parquet::ConvertedType;
+using duckdb_parquet::Type;
 
 static unique_ptr CreateNumericStats(const LogicalType &type,
-                                                     const duckdb_parquet::format::SchemaElement &schema_ele,
-                                                     const duckdb_parquet::format::Statistics &parquet_stats) {
+                                                     const duckdb_parquet::SchemaElement &schema_ele,
+                                                     const duckdb_parquet::Statistics &parquet_stats) {
 	auto stats = NumericStats::CreateUnknown(type);
 
 	// for reasons unknown to science, Parquet defines *both* `min` and `min_value` as well as `max` and
@@ -27,16 +30,16 @@ static unique_ptr CreateNumericStats(const LogicalType &type,
 	Value min;
 	Value max;
 	if (parquet_stats.__isset.min_value) {
-		min = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.min_value).DefaultCastAs(type);
+		min = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.min_value);
 	} else if (parquet_stats.__isset.min) {
-		min = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.min).DefaultCastAs(type);
+		min = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.min);
 	} else {
 		min = Value(type);
 	}
 	if (parquet_stats.__isset.max_value) {
-		max = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.max_value).DefaultCastAs(type);
+		max = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.max_value);
 	} else if (parquet_stats.__isset.max) {
-		max = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.max).DefaultCastAs(type);
+		max = ParquetStatisticsUtils::ConvertValue(type, schema_ele, parquet_stats.max);
 	} else {
 		max = Value(type);
 	}
@@ -45,14 +48,24 @@ static unique_ptr CreateNumericStats(const LogicalType &type,
 	return stats.ToUnique();
 }
 
-Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
-                                           const duckdb_parquet::format::SchemaElement &schema_ele,
+Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type, const duckdb_parquet::SchemaElement &schema_ele,
                                            const std::string &stats) {
+	Value result;
+	string error;
+	auto stats_val = ConvertValueInternal(type, schema_ele, stats);
+	if (!stats_val.DefaultTryCastAs(type, result, &error)) {
+		return Value(type);
+	}
+	return result;
+}
+Value ParquetStatisticsUtils::ConvertValueInternal(const LogicalType &type,
+                                                   const duckdb_parquet::SchemaElement &schema_ele,
+                                                   const std::string &stats) {
 	auto stats_data = const_data_ptr_cast(stats.c_str());
 	switch (type.id()) {
 	case LogicalTypeId::BOOLEAN: {
 		if (stats.size() != sizeof(bool)) {
-			throw InternalException("Incorrect stats size for type BOOLEAN");
+			throw InvalidInputException("Incorrect stats size for type BOOLEAN");
 		}
 		return Value::BOOLEAN(Load(stats_data));
 	}
@@ -60,29 +73,29 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 	case LogicalTypeId::USMALLINT:
 	case LogicalTypeId::UINTEGER:
 		if (stats.size() != sizeof(uint32_t)) {
-			throw InternalException("Incorrect stats size for type UINTEGER");
+			throw InvalidInputException("Incorrect stats size for type UINTEGER");
 		}
 		return Value::UINTEGER(Load(stats_data));
 	case LogicalTypeId::UBIGINT:
 		if (stats.size() != sizeof(uint64_t)) {
-			throw InternalException("Incorrect stats size for type UBIGINT");
+			throw InvalidInputException("Incorrect stats size for type UBIGINT");
 		}
 		return Value::UBIGINT(Load(stats_data));
 	case LogicalTypeId::TINYINT:
 	case LogicalTypeId::SMALLINT:
 	case LogicalTypeId::INTEGER:
 		if (stats.size() != sizeof(int32_t)) {
-			throw InternalException("Incorrect stats size for type INTEGER");
+			throw InvalidInputException("Incorrect stats size for type INTEGER");
 		}
 		return Value::INTEGER(Load(stats_data));
 	case LogicalTypeId::BIGINT:
 		if (stats.size() != sizeof(int64_t)) {
-			throw InternalException("Incorrect stats size for type BIGINT");
+			throw InvalidInputException("Incorrect stats size for type BIGINT");
 		}
 		return Value::BIGINT(Load(stats_data));
 	case LogicalTypeId::FLOAT: {
 		if (stats.size() != sizeof(float)) {
-			throw InternalException("Incorrect stats size for type FLOAT");
+			throw InvalidInputException("Incorrect stats size for type FLOAT");
 		}
 		auto val = Load(stats_data);
 		if (!Value::FloatIsFinite(val)) {
@@ -100,7 +113,7 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 			break;
 		}
 		if (stats.size() != sizeof(double)) {
-			throw InternalException("Incorrect stats size for type DOUBLE");
+			throw InvalidInputException("Incorrect stats size for type DOUBLE");
 		}
 		auto val = Load(stats_data);
 		if (!Value::DoubleIsFinite(val)) {
@@ -114,13 +127,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 		switch (schema_ele.type) {
 		case Type::INT32: {
 			if (stats.size() != sizeof(int32_t)) {
-				throw InternalException("Incorrect stats size for type %s", type.ToString());
+				throw InvalidInputException("Incorrect stats size for type %s", type.ToString());
 			}
 			return Value::DECIMAL(Load(stats_data), width, scale);
 		}
 		case Type::INT64: {
 			if (stats.size() != sizeof(int64_t)) {
-				throw InternalException("Incorrect stats size for type %s", type.ToString());
+				throw InvalidInputException("Incorrect stats size for type %s", type.ToString());
 			}
 			return Value::DECIMAL(Load(stats_data), width, scale);
 		}
@@ -141,22 +154,21 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 				    ParquetDecimalUtils::ReadDecimalValue(stats_data, stats.size(), schema_ele), width,
 				    scale);
 			default:
-				throw InternalException("Unsupported internal type for decimal");
+				throw InvalidInputException("Unsupported internal type for decimal");
 			}
 		default:
 			throw InternalException("Unsupported internal type for decimal?..");
 		}
 	}
-	case LogicalType::VARCHAR:
-	case LogicalType::BLOB:
-		if (Value::StringIsValid(stats)) {
-			return Value(stats);
-		} else {
+	case LogicalTypeId::VARCHAR:
+	case LogicalTypeId::BLOB:
+		if (type.id() == LogicalTypeId::BLOB || !Value::StringIsValid(stats)) {
 			return Value(Blob::ToString(string_t(stats)));
 		}
+		return Value(stats);
 	case LogicalTypeId::DATE:
 		if (stats.size() != sizeof(int32_t)) {
-			throw InternalException("Incorrect stats size for type DATE");
+			throw InvalidInputException("Incorrect stats size for type DATE");
 		}
 		return Value::DATE(date_t(Load(stats_data)));
 	case LogicalTypeId::TIME: {
@@ -166,7 +178,7 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 		} else if (stats.size() == sizeof(int64_t)) {
 			val = Load(stats_data);
 		} else {
-			throw InternalException("Incorrect stats size for type TIME");
+			throw InvalidInputException("Incorrect stats size for type TIME");
 		}
 		if (schema_ele.__isset.logicalType && schema_ele.logicalType.__isset.TIME) {
 			// logical type
@@ -180,7 +192,7 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 				throw InternalException("Time logicalType is set but unit is not defined");
 			}
 		}
-		if (schema_ele.converted_type == duckdb_parquet::format::ConvertedType::TIME_MILLIS) {
+		if (schema_ele.converted_type == duckdb_parquet::ConvertedType::TIME_MILLIS) {
 			return Value::TIME(Time::FromTimeMs(val));
 		} else {
 			return Value::TIME(dtime_t(val));
@@ -193,7 +205,7 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 		} else if (stats.size() == sizeof(int64_t)) {
 			val = Load(stats_data);
 		} else {
-			throw InternalException("Incorrect stats size for type TIMETZ");
+			throw InvalidInputException("Incorrect stats size for type TIMETZ");
 		}
 		if (schema_ele.__isset.logicalType && schema_ele.logicalType.__isset.TIME) {
 			// logical type
@@ -214,13 +226,13 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 		timestamp_t timestamp_value;
 		if (schema_ele.type == Type::INT96) {
 			if (stats.size() != sizeof(Int96)) {
-				throw InternalException("Incorrect stats size for type TIMESTAMP");
+				throw InvalidInputException("Incorrect stats size for type TIMESTAMP");
 			}
 			timestamp_value = ImpalaTimestampToTimestamp(Load(stats_data));
 		} else {
 			D_ASSERT(schema_ele.type == Type::INT64);
 			if (stats.size() != sizeof(int64_t)) {
-				throw InternalException("Incorrect stats size for type TIMESTAMP");
+				throw InvalidInputException("Incorrect stats size for type TIMESTAMP");
 			}
 			auto val = Load(stats_data);
 			if (schema_ele.__isset.logicalType && schema_ele.logicalType.__isset.TIMESTAMP) {
@@ -234,29 +246,28 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 				} else {
 					throw InternalException("Timestamp logicalType is set but unit is not defined");
 				}
-			} else if (schema_ele.converted_type == duckdb_parquet::format::ConvertedType::TIMESTAMP_MILLIS) {
+			} else if (schema_ele.converted_type == duckdb_parquet::ConvertedType::TIMESTAMP_MILLIS) {
 				timestamp_value = Timestamp::FromEpochMs(val);
 			} else {
 				timestamp_value = timestamp_t(val);
 			}
 		}
 		if (type.id() == LogicalTypeId::TIMESTAMP_TZ) {
-			return Value::TIMESTAMPTZ(timestamp_value);
-		} else {
-			return Value::TIMESTAMP(timestamp_value);
+			return Value::TIMESTAMPTZ(timestamp_tz_t(timestamp_value));
 		}
+		return Value::TIMESTAMP(timestamp_value);
 	}
 	case LogicalTypeId::TIMESTAMP_NS: {
 		timestamp_ns_t timestamp_value;
 		if (schema_ele.type == Type::INT96) {
 			if (stats.size() != sizeof(Int96)) {
-				throw InternalException("Incorrect stats size for type TIMESTAMP_NS");
+				throw InvalidInputException("Incorrect stats size for type TIMESTAMP_NS");
 			}
 			timestamp_value = ImpalaTimestampToTimestampNS(Load(stats_data));
 		} else {
 			D_ASSERT(schema_ele.type == Type::INT64);
 			if (stats.size() != sizeof(int64_t)) {
-				throw InternalException("Incorrect stats size for type TIMESTAMP_NS");
+				throw InvalidInputException("Incorrect stats size for type TIMESTAMP_NS");
 			}
 			auto val = Load(stats_data);
 			if (schema_ele.__isset.logicalType && schema_ele.logicalType.__isset.TIMESTAMP) {
@@ -270,7 +281,7 @@ Value ParquetStatisticsUtils::ConvertValue(const LogicalType &type,
 				} else {
 					throw InternalException("Timestamp (NS) logicalType is set but unit is unknown");
 				}
-			} else if (schema_ele.converted_type == duckdb_parquet::format::ConvertedType::TIMESTAMP_MILLIS) {
+			} else if (schema_ele.converted_type == duckdb_parquet::ConvertedType::TIMESTAMP_MILLIS) {
 				timestamp_value = ParquetTimestampMsToTimestampNs(val);
 			} else {
 				timestamp_value = ParquetTimestampUsToTimestampNs(val);
@@ -300,6 +311,9 @@ unique_ptr ParquetStatisticsUtils::TransformColumnStatistics(con
 		auto &struct_reader = reader.Cast();
 		// Recurse into child readers
 		for (idx_t i = 0; i < struct_reader.child_readers.size(); i++) {
+			if (!struct_reader.child_readers[i]) {
+				continue;
+			}
 			auto &child_reader = *struct_reader.child_readers[i];
 			auto child_stats = ParquetStatisticsUtils::TransformColumnStatistics(child_reader, columns);
 			StructStats::SetChildStats(struct_stats, i, std::move(child_stats));
@@ -387,4 +401,210 @@ unique_ptr ParquetStatisticsUtils::TransformColumnStatistics(con
 	return row_group_stats;
 }
 
+static bool HasFilterConstants(const TableFilter &duckdb_filter) {
+	switch (duckdb_filter.filter_type) {
+	case TableFilterType::CONSTANT_COMPARISON: {
+		auto &constant_filter = duckdb_filter.Cast();
+		return (constant_filter.comparison_type == ExpressionType::COMPARE_EQUAL && !constant_filter.constant.IsNull());
+	}
+	case TableFilterType::CONJUNCTION_AND: {
+		auto &conjunction_and_filter = duckdb_filter.Cast();
+		bool child_has_constant = false;
+		for (auto &child_filter : conjunction_and_filter.child_filters) {
+			child_has_constant |= HasFilterConstants(*child_filter);
+		}
+		return child_has_constant;
+	}
+	case TableFilterType::CONJUNCTION_OR: {
+		auto &conjunction_or_filter = duckdb_filter.Cast();
+		bool child_has_constant = false;
+		for (auto &child_filter : conjunction_or_filter.child_filters) {
+			child_has_constant |= HasFilterConstants(*child_filter);
+		}
+		return child_has_constant;
+	}
+	default:
+		return false;
+	}
+}
+
+template 
+uint64_t ValueXH64FixedWidth(const Value &constant) {
+	T val = constant.GetValue();
+	return duckdb_zstd::XXH64(&val, sizeof(val), 0);
+}
+
+// TODO we can only this if the parquet representation of the type exactly matches the duckdb rep!
+// TODO TEST THIS!
+// TODO perhaps we can re-use some writer infra here
+static uint64_t ValueXXH64(const Value &constant) {
+	switch (constant.type().InternalType()) {
+	case PhysicalType::UINT8:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::INT8:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::UINT16:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::INT16:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::UINT32:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::INT32:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::UINT64:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::INT64:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::FLOAT:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::DOUBLE:
+		return ValueXH64FixedWidth(constant);
+	case PhysicalType::VARCHAR: {
+		auto val = constant.GetValue();
+		return duckdb_zstd::XXH64(val.c_str(), val.length(), 0);
+	}
+	default:
+		return 0;
+	}
+}
+
+static bool ApplyBloomFilter(const TableFilter &duckdb_filter, ParquetBloomFilter &bloom_filter) {
+	switch (duckdb_filter.filter_type) {
+	case TableFilterType::CONSTANT_COMPARISON: {
+		auto &constant_filter = duckdb_filter.Cast();
+		auto is_compare_equal = constant_filter.comparison_type == ExpressionType::COMPARE_EQUAL;
+		D_ASSERT(!constant_filter.constant.IsNull());
+		auto hash = ValueXXH64(constant_filter.constant);
+		return hash > 0 && !bloom_filter.FilterCheck(hash) && is_compare_equal;
+	}
+	case TableFilterType::CONJUNCTION_AND: {
+		auto &conjunction_and_filter = duckdb_filter.Cast();
+		bool any_children_true = false;
+		for (auto &child_filter : conjunction_and_filter.child_filters) {
+			any_children_true |= ApplyBloomFilter(*child_filter, bloom_filter);
+		}
+		return any_children_true;
+	}
+	case TableFilterType::CONJUNCTION_OR: {
+		auto &conjunction_or_filter = duckdb_filter.Cast();
+		bool all_children_true = true;
+		for (auto &child_filter : conjunction_or_filter.child_filters) {
+			all_children_true &= ApplyBloomFilter(*child_filter, bloom_filter);
+		}
+		return all_children_true;
+	}
+	default:
+		return false;
+	}
+}
+
+bool ParquetStatisticsUtils::BloomFilterSupported(const LogicalTypeId &type_id) {
+	switch (type_id) {
+	case LogicalTypeId::TINYINT:
+	case LogicalTypeId::UTINYINT:
+	case LogicalTypeId::SMALLINT:
+	case LogicalTypeId::USMALLINT:
+	case LogicalTypeId::INTEGER:
+	case LogicalTypeId::UINTEGER:
+	case LogicalTypeId::BIGINT:
+	case LogicalTypeId::UBIGINT:
+	case LogicalTypeId::FLOAT:
+	case LogicalTypeId::DOUBLE:
+	case LogicalTypeId::VARCHAR:
+	case LogicalTypeId::BLOB:
+		return true;
+	default:
+		return false;
+	}
+}
+
+bool ParquetStatisticsUtils::BloomFilterExcludes(const TableFilter &duckdb_filter,
+                                                 const duckdb_parquet::ColumnMetaData &column_meta_data,
+                                                 TProtocol &file_proto, Allocator &allocator) {
+	if (!HasFilterConstants(duckdb_filter) || !column_meta_data.__isset.bloom_filter_offset ||
+	    column_meta_data.bloom_filter_offset <= 0) {
+		return false;
+	}
+	// TODO check length against file length!
+
+	auto &transport = reinterpret_cast(*file_proto.getTransport());
+	transport.SetLocation(column_meta_data.bloom_filter_offset);
+	if (column_meta_data.__isset.bloom_filter_length && column_meta_data.bloom_filter_length > 0) {
+		transport.Prefetch(column_meta_data.bloom_filter_offset, column_meta_data.bloom_filter_length);
+	}
+
+	duckdb_parquet::BloomFilterHeader filter_header;
+	// TODO the bloom filter could be encrypted, too, so need to double check that this is NOT the case
+	filter_header.read(&file_proto);
+	if (!filter_header.algorithm.__isset.BLOCK || !filter_header.compression.__isset.UNCOMPRESSED ||
+	    !filter_header.hash.__isset.XXHASH) {
+		return false;
+	}
+
+	auto new_buffer = make_uniq(allocator, filter_header.numBytes);
+	transport.read(new_buffer->ptr, filter_header.numBytes);
+	ParquetBloomFilter bloom_filter(std::move(new_buffer));
+	return ApplyBloomFilter(duckdb_filter, bloom_filter);
+}
+
+ParquetBloomFilter::ParquetBloomFilter(idx_t num_entries, double bloom_filter_false_positive_ratio) {
+
+	// aim for hit ratio of 0.01%
+	// see http://tfk.mit.edu/pdf/bloom.pdf
+	double f = bloom_filter_false_positive_ratio;
+	double k = 8.0;
+	double n = num_entries;
+	double m = -k * n / std::log(1 - std::pow(f, 1 / k));
+	auto b = MaxValue(NextPowerOfTwo(m / k) / 32, 1);
+
+	D_ASSERT(b > 0 && IsPowerOfTwo(b));
+
+	data = make_uniq(Allocator::DefaultAllocator(), sizeof(ParquetBloomBlock) * b);
+	data->zero();
+	block_count = data->len / sizeof(ParquetBloomBlock);
+	D_ASSERT(data->len % sizeof(ParquetBloomBlock) == 0);
+}
+
+ParquetBloomFilter::ParquetBloomFilter(unique_ptr data_p) {
+	D_ASSERT(data_p->len % sizeof(ParquetBloomBlock) == 0);
+	data = std::move(data_p);
+	block_count = data->len / sizeof(ParquetBloomBlock);
+	D_ASSERT(data->len % sizeof(ParquetBloomBlock) == 0);
+}
+
+void ParquetBloomFilter::FilterInsert(uint64_t x) {
+	auto blocks = (ParquetBloomBlock *)(data->ptr);
+	uint64_t i = ((x >> 32) * block_count) >> 32;
+	auto &b = blocks[i];
+	ParquetBloomBlock::BlockInsert(b, x);
+}
+
+bool ParquetBloomFilter::FilterCheck(uint64_t x) {
+	auto blocks = (ParquetBloomBlock *)(data->ptr);
+	auto i = ((x >> 32) * block_count) >> 32;
+	return ParquetBloomBlock::BlockCheck(blocks[i], x);
+}
+
+// compiler optimizes this into a single instruction (popcnt)
+static uint8_t PopCnt64(uint64_t n) {
+	uint8_t c = 0;
+	for (; n; ++c) {
+		n &= n - 1;
+	}
+	return c;
+}
+
+double ParquetBloomFilter::OneRatio() {
+	auto bloom_ptr = (uint64_t *)data->ptr;
+	idx_t one_count = 0;
+	for (idx_t b_idx = 0; b_idx < data->len / sizeof(uint64_t); ++b_idx) {
+		one_count += PopCnt64(bloom_ptr[b_idx]);
+	}
+	return one_count / (data->len * 8.0);
+}
+
+ResizeableBuffer *ParquetBloomFilter::Get() {
+	return data.get();
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/parquet_timestamp.cpp b/src/duckdb/extension/parquet/parquet_timestamp.cpp
index a0ada7d1..84c158f1 100644
--- a/src/duckdb/extension/parquet/parquet_timestamp.cpp
+++ b/src/duckdb/extension/parquet/parquet_timestamp.cpp
@@ -105,6 +105,16 @@ date_t ParquetIntToDate(const int32_t &raw_date) {
 	return date_t(raw_date);
 }
 
+template 
+static T ParquetWrapTime(const T &raw, const T day) {
+	// Special case 24:00:00
+	if (raw == day) {
+		return raw;
+	}
+	const auto modulus = raw % day;
+	return modulus + (modulus < 0) * day;
+}
+
 dtime_t ParquetIntToTimeMs(const int32_t &raw_millis) {
 	return Time::FromTimeMs(raw_millis);
 }
@@ -118,15 +128,19 @@ dtime_t ParquetIntToTimeNs(const int64_t &raw_nanos) {
 }
 
 dtime_tz_t ParquetIntToTimeMsTZ(const int32_t &raw_millis) {
-	return dtime_tz_t(Time::FromTimeMs(raw_millis), 0);
+	const int32_t MSECS_PER_DAY = Interval::MSECS_PER_SEC * Interval::SECS_PER_DAY;
+	const auto millis = ParquetWrapTime(raw_millis, MSECS_PER_DAY);
+	return dtime_tz_t(Time::FromTimeMs(millis), 0);
 }
 
 dtime_tz_t ParquetIntToTimeTZ(const int64_t &raw_micros) {
-	return dtime_tz_t(dtime_t(raw_micros), 0);
+	const auto micros = ParquetWrapTime(raw_micros, Interval::MICROS_PER_DAY);
+	return dtime_tz_t(dtime_t(micros), 0);
 }
 
 dtime_tz_t ParquetIntToTimeNsTZ(const int64_t &raw_nanos) {
-	return dtime_tz_t(Time::FromTimeNs(raw_nanos), 0);
+	const auto nanos = ParquetWrapTime(raw_nanos, Interval::NANOS_PER_DAY);
+	return dtime_tz_t(Time::FromTimeNs(nanos), 0);
 }
 
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/parquet_writer.cpp b/src/duckdb/extension/parquet/parquet_writer.cpp
index 570b4edd..7a3ddb9a 100644
--- a/src/duckdb/extension/parquet/parquet_writer.cpp
+++ b/src/duckdb/extension/parquet/parquet_writer.cpp
@@ -4,6 +4,7 @@
 #include "mbedtls_wrapper.hpp"
 #include "parquet_crypto.hpp"
 #include "parquet_timestamp.hpp"
+#include "resizable_buffer.hpp"
 
 #ifndef DUCKDB_AMALGAMATION
 #include "duckdb/common/file_system.hpp"
@@ -25,16 +26,16 @@ using namespace duckdb_apache::thrift;            // NOLINT
 using namespace duckdb_apache::thrift::protocol;  // NOLINT
 using namespace duckdb_apache::thrift::transport; // NOLINT
 
-using duckdb_parquet::format::CompressionCodec;
-using duckdb_parquet::format::ConvertedType;
-using duckdb_parquet::format::Encoding;
-using duckdb_parquet::format::FieldRepetitionType;
-using duckdb_parquet::format::FileCryptoMetaData;
-using duckdb_parquet::format::FileMetaData;
-using duckdb_parquet::format::PageHeader;
-using duckdb_parquet::format::PageType;
-using ParquetRowGroup = duckdb_parquet::format::RowGroup;
-using duckdb_parquet::format::Type;
+using duckdb_parquet::CompressionCodec;
+using duckdb_parquet::ConvertedType;
+using duckdb_parquet::Encoding;
+using duckdb_parquet::FieldRepetitionType;
+using duckdb_parquet::FileCryptoMetaData;
+using duckdb_parquet::FileMetaData;
+using duckdb_parquet::PageHeader;
+using duckdb_parquet::PageType;
+using ParquetRowGroup = duckdb_parquet::RowGroup;
+using duckdb_parquet::Type;
 
 ChildFieldIDs::ChildFieldIDs() : ids(make_uniq>()) {
 }
@@ -167,11 +168,12 @@ Type::type ParquetWriter::DuckDBTypeToParquetType(const LogicalType &duckdb_type
 	throw NotImplementedException("Unimplemented type for Parquet \"%s\"", duckdb_type.ToString());
 }
 
-void ParquetWriter::SetSchemaProperties(const LogicalType &duckdb_type,
-                                        duckdb_parquet::format::SchemaElement &schema_ele) {
+void ParquetWriter::SetSchemaProperties(const LogicalType &duckdb_type, duckdb_parquet::SchemaElement &schema_ele) {
 	if (duckdb_type.IsJSONType()) {
 		schema_ele.converted_type = ConvertedType::JSON;
 		schema_ele.__isset.converted_type = true;
+		schema_ele.__isset.logicalType = true;
+		schema_ele.logicalType.__set_JSON(duckdb_parquet::JsonType());
 		return;
 	}
 	switch (duckdb_type.id()) {
@@ -317,13 +319,15 @@ void VerifyUniqueNames(const vector &names) {
 ParquetWriter::ParquetWriter(ClientContext &context, FileSystem &fs, string file_name_p, vector types_p,
                              vector names_p, CompressionCodec::type codec, ChildFieldIDs field_ids_p,
                              const vector> &kv_metadata,
-                             shared_ptr encryption_config_p,
-                             double dictionary_compression_ratio_threshold_p, optional_idx compression_level_p,
+                             shared_ptr encryption_config_p, idx_t dictionary_size_limit_p,
+                             double bloom_filter_false_positive_ratio_p, int64_t compression_level_p,
                              bool debug_use_openssl_p)
     : file_name(std::move(file_name_p)), sql_types(std::move(types_p)), column_names(std::move(names_p)), codec(codec),
       field_ids(std::move(field_ids_p)), encryption_config(std::move(encryption_config_p)),
-      dictionary_compression_ratio_threshold(dictionary_compression_ratio_threshold_p),
+      dictionary_size_limit(dictionary_size_limit_p),
+      bloom_filter_false_positive_ratio(bloom_filter_false_positive_ratio_p), compression_level(compression_level_p),
       debug_use_openssl(debug_use_openssl_p) {
+
 	// initialize the file writer
 	writer = make_uniq(fs, file_name.c_str(),
 	                                       FileFlags::FILE_FLAGS_WRITE | FileFlags::FILE_FLAGS_FILE_CREATE_NEW);
@@ -350,36 +354,24 @@ ParquetWriter::ParquetWriter(ClientContext &context, FileSystem &fs, string file
 	file_meta_data.version = 1;
 
 	file_meta_data.__isset.created_by = true;
-	file_meta_data.created_by = "DuckDB";
+	file_meta_data.created_by =
+	    StringUtil::Format("DuckDB version %s (build %s)", DuckDB::LibraryVersion(), DuckDB::SourceID());
 
 	file_meta_data.schema.resize(1);
 
 	for (auto &kv_pair : kv_metadata) {
-		duckdb_parquet::format::KeyValue kv;
+		duckdb_parquet::KeyValue kv;
 		kv.__set_key(kv_pair.first);
 		kv.__set_value(kv_pair.second);
 		file_meta_data.key_value_metadata.push_back(kv);
 		file_meta_data.__isset.key_value_metadata = true;
 	}
-	if (compression_level_p.IsValid()) {
-		idx_t level = compression_level_p.GetIndex();
-		switch (codec) {
-		case CompressionCodec::ZSTD:
-			if (level < 1 || level > 22) {
-				throw BinderException("Compression level for ZSTD must be between 1 and 22");
-			}
-			break;
-		default:
-			throw NotImplementedException("Compression level is only supported for the ZSTD compression codec");
-		}
-		compression_level = level;
-	}
 
 	// populate root schema object
 	file_meta_data.schema[0].name = "duckdb_schema";
 	file_meta_data.schema[0].num_children = NumericCast(sql_types.size());
 	file_meta_data.schema[0].__isset.num_children = true;
-	file_meta_data.schema[0].repetition_type = duckdb_parquet::format::FieldRepetitionType::REQUIRED;
+	file_meta_data.schema[0].repetition_type = duckdb_parquet::FieldRepetitionType::REQUIRED;
 	file_meta_data.schema[0].__isset.repetition_type = true;
 
 	auto &unique_names = column_names;
@@ -465,7 +457,7 @@ void ParquetWriter::PrepareRowGroup(ColumnDataCollection &buffer, PreparedRowGro
 // Validation code adapted from Impala
 static void ValidateOffsetInFile(const string &filename, idx_t col_idx, idx_t file_length, idx_t offset,
                                  const string &offset_name) {
-	if (offset < 0 || offset >= file_length) {
+	if (offset >= file_length) {
 		throw IOException("File '%s': metadata is corrupt. Column %d has invalid "
 		                  "%s (offset=%llu file_size=%llu).",
 		                  filename, col_idx, offset_name, offset, file_length);
@@ -534,12 +526,40 @@ void ParquetWriter::Flush(ColumnDataCollection &buffer) {
 }
 
 void ParquetWriter::Finalize() {
-	const auto start_offset = writer->GetTotalWritten();
+
+	// dump the bloom filters right before footer, not if stuff is encrypted
+
+	for (auto &bloom_filter_entry : bloom_filters) {
+		D_ASSERT(!encryption_config);
+		// write nonsense bloom filter header
+		duckdb_parquet::BloomFilterHeader filter_header;
+		auto bloom_filter_bytes = bloom_filter_entry.bloom_filter->Get();
+		filter_header.numBytes = bloom_filter_bytes->len;
+		filter_header.algorithm.__set_BLOCK(duckdb_parquet::SplitBlockAlgorithm());
+		filter_header.compression.__set_UNCOMPRESSED(duckdb_parquet::Uncompressed());
+		filter_header.hash.__set_XXHASH(duckdb_parquet::XxHash());
+
+		// set metadata flags
+		auto &column_chunk =
+		    file_meta_data.row_groups[bloom_filter_entry.row_group_idx].columns[bloom_filter_entry.column_idx];
+
+		column_chunk.meta_data.__isset.bloom_filter_offset = true;
+		column_chunk.meta_data.bloom_filter_offset = writer->GetTotalWritten();
+
+		auto bloom_filter_header_size = Write(filter_header);
+		// write actual data
+		WriteData(bloom_filter_bytes->ptr, bloom_filter_bytes->len);
+
+		column_chunk.meta_data.__isset.bloom_filter_length = true;
+		column_chunk.meta_data.bloom_filter_length = bloom_filter_header_size + bloom_filter_bytes->len;
+	}
+
+	const auto metadata_start_offset = writer->GetTotalWritten();
 	if (encryption_config) {
 		// Crypto metadata is written unencrypted
 		FileCryptoMetaData crypto_metadata;
-		duckdb_parquet::format::AesGcmV1 aes_gcm_v1;
-		duckdb_parquet::format::EncryptionAlgorithm alg;
+		duckdb_parquet::AesGcmV1 aes_gcm_v1;
+		duckdb_parquet::EncryptionAlgorithm alg;
 		alg.__set_AES_GCM_V1(aes_gcm_v1);
 		crypto_metadata.__set_encryption_algorithm(alg);
 		crypto_metadata.write(protocol.get());
@@ -552,7 +572,7 @@ void ParquetWriter::Finalize() {
 
 	Write(file_meta_data);
 
-	writer->Write(writer->GetTotalWritten() - start_offset);
+	writer->Write(writer->GetTotalWritten() - metadata_start_offset);
 
 	if (encryption_config) {
 		// encrypted parquet files also end with the string "PARE"
@@ -574,4 +594,15 @@ GeoParquetFileMetadata &ParquetWriter::GetGeoParquetData() {
 	return *geoparquet_data;
 }
 
+void ParquetWriter::BufferBloomFilter(idx_t col_idx, unique_ptr bloom_filter) {
+	if (encryption_config) {
+		return;
+	}
+	ParquetBloomFilterEntry new_entry;
+	new_entry.bloom_filter = std::move(bloom_filter);
+	new_entry.column_idx = col_idx;
+	new_entry.row_group_idx = file_meta_data.row_groups.size();
+	bloom_filters.push_back(std::move(new_entry));
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/extension/parquet/serialize_parquet.cpp b/src/duckdb/extension/parquet/serialize_parquet.cpp
index e6aeac02..bcb334a4 100644
--- a/src/duckdb/extension/parquet/serialize_parquet.cpp
+++ b/src/duckdb/extension/parquet/serialize_parquet.cpp
@@ -7,8 +7,6 @@
 #include "duckdb/common/serializer/deserializer.hpp"
 #include "parquet_reader.hpp"
 #include "parquet_crypto.hpp"
-#include "parquet_reader.hpp"
-#include "parquet_writer.hpp"
 #include "parquet_writer.hpp"
 
 namespace duckdb {
@@ -72,6 +70,7 @@ void ParquetOptions::Serialize(Serializer &serializer) const {
 	serializer.WritePropertyWithDefault>(103, "schema", schema);
 	serializer.WritePropertyWithDefault>(104, "encryption_config", encryption_config, nullptr);
 	serializer.WritePropertyWithDefault(105, "debug_use_openssl", debug_use_openssl, true);
+	serializer.WritePropertyWithDefault(106, "explicit_cardinality", explicit_cardinality, 0);
 }
 
 ParquetOptions ParquetOptions::Deserialize(Deserializer &deserializer) {
@@ -82,6 +81,7 @@ ParquetOptions ParquetOptions::Deserialize(Deserializer &deserializer) {
 	deserializer.ReadPropertyWithDefault>(103, "schema", result.schema);
 	deserializer.ReadPropertyWithExplicitDefault>(104, "encryption_config", result.encryption_config, nullptr);
 	deserializer.ReadPropertyWithExplicitDefault(105, "debug_use_openssl", result.debug_use_openssl, true);
+	deserializer.ReadPropertyWithExplicitDefault(106, "explicit_cardinality", result.explicit_cardinality, 0);
 	return result;
 }
 
diff --git a/src/duckdb/extension/parquet/zstd_file_system.cpp b/src/duckdb/extension/parquet/zstd_file_system.cpp
index 5a630b05..7204f360 100644
--- a/src/duckdb/extension/parquet/zstd_file_system.cpp
+++ b/src/duckdb/extension/parquet/zstd_file_system.cpp
@@ -1,4 +1,5 @@
 #include "zstd_file_system.hpp"
+
 #include "zstd.h"
 
 namespace duckdb {
@@ -184,4 +185,16 @@ idx_t ZStdFileSystem::OutBufferSize() {
 	return duckdb_zstd::ZSTD_DStreamOutSize();
 }
 
+int64_t ZStdFileSystem::DefaultCompressionLevel() {
+	return duckdb_zstd::ZSTD_defaultCLevel();
+}
+
+int64_t ZStdFileSystem::MinimumCompressionLevel() {
+	return duckdb_zstd::ZSTD_minCLevel();
+}
+
+int64_t ZStdFileSystem::MaximumCompressionLevel() {
+	return duckdb_zstd::ZSTD_maxCLevel();
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/src/catalog/catalog.cpp b/src/duckdb/src/catalog/catalog.cpp
index 08a01d93..6168967d 100644
--- a/src/duckdb/src/catalog/catalog.cpp
+++ b/src/duckdb/src/catalog/catalog.cpp
@@ -71,7 +71,12 @@ Catalog &Catalog::GetSystemCatalog(ClientContext &context) {
 	return Catalog::GetSystemCatalog(*context.db);
 }
 
-optional_ptr Catalog::GetCatalogEntry(ClientContext &context, const string &catalog_name) {
+const string &GetDefaultCatalog(CatalogEntryRetriever &retriever) {
+	return DatabaseManager::GetDefaultDatabase(retriever.GetContext());
+}
+
+optional_ptr Catalog::GetCatalogEntry(CatalogEntryRetriever &retriever, const string &catalog_name) {
+	auto &context = retriever.GetContext();
 	auto &db_manager = DatabaseManager::Get(context);
 	if (catalog_name == TEMP_CATALOG) {
 		return &ClientData::Get(context).temporary_objects->GetCatalog();
@@ -79,22 +84,32 @@ optional_ptr Catalog::GetCatalogEntry(ClientContext &context, const str
 	if (catalog_name == SYSTEM_CATALOG) {
 		return &GetSystemCatalog(context);
 	}
-	auto entry = db_manager.GetDatabase(
-	    context, IsInvalidCatalog(catalog_name) ? DatabaseManager::GetDefaultDatabase(context) : catalog_name);
+	auto entry =
+	    db_manager.GetDatabase(context, IsInvalidCatalog(catalog_name) ? GetDefaultCatalog(retriever) : catalog_name);
 	if (!entry) {
 		return nullptr;
 	}
 	return &entry->GetCatalog();
 }
 
-Catalog &Catalog::GetCatalog(ClientContext &context, const string &catalog_name) {
-	auto catalog = Catalog::GetCatalogEntry(context, catalog_name);
+optional_ptr Catalog::GetCatalogEntry(ClientContext &context, const string &catalog_name) {
+	CatalogEntryRetriever entry_retriever(context);
+	return GetCatalogEntry(entry_retriever, catalog_name);
+}
+
+Catalog &Catalog::GetCatalog(CatalogEntryRetriever &retriever, const string &catalog_name) {
+	auto catalog = Catalog::GetCatalogEntry(retriever, catalog_name);
 	if (!catalog) {
 		throw BinderException("Catalog \"%s\" does not exist!", catalog_name);
 	}
 	return *catalog;
 }
 
+Catalog &Catalog::GetCatalog(ClientContext &context, const string &catalog_name) {
+	CatalogEntryRetriever entry_retriever(context);
+	return GetCatalog(entry_retriever, catalog_name);
+}
+
 //===--------------------------------------------------------------------===//
 // Schema
 //===--------------------------------------------------------------------===//
@@ -293,22 +308,13 @@ optional_ptr Catalog::CreateIndex(ClientContext &context, CreateIn
 // Lookup Structures
 //===--------------------------------------------------------------------===//
 struct CatalogLookup {
-	CatalogLookup(Catalog &catalog, string schema_p) : catalog(catalog), schema(std::move(schema_p)) {
+	CatalogLookup(Catalog &catalog, string schema_p, string name_p)
+	    : catalog(catalog), schema(std::move(schema_p)), name(std::move(name_p)) {
 	}
 
 	Catalog &catalog;
 	string schema;
-};
-
-//! Return value of Catalog::LookupEntry
-struct CatalogEntryLookup {
-	optional_ptr schema;
-	optional_ptr entry;
-	ErrorData error;
-
-	DUCKDB_API bool Found() const {
-		return entry;
-	}
+	string name;
 };
 
 //===--------------------------------------------------------------------===//
@@ -321,8 +327,8 @@ void Catalog::DropEntry(ClientContext &context, DropInfo &info) {
 		return;
 	}
 
-	auto lookup = LookupEntry(context, info.type, info.schema, info.name, info.if_not_found);
-
+	CatalogEntryRetriever retriever(context);
+	auto lookup = LookupEntry(retriever, info.type, info.schema, info.name, info.if_not_found);
 	if (!lookup.Found()) {
 		return;
 	}
@@ -352,9 +358,10 @@ SchemaCatalogEntry &Catalog::GetSchema(CatalogTransaction transaction, const str
 //===--------------------------------------------------------------------===//
 // Lookup
 //===--------------------------------------------------------------------===//
-SimilarCatalogEntry Catalog::SimilarEntryInSchemas(ClientContext &context, const string &entry_name, CatalogType type,
-                                                   const reference_set_t &schemas) {
-	SimilarCatalogEntry result;
+vector Catalog::SimilarEntriesInSchemas(ClientContext &context, const string &entry_name,
+                                                             CatalogType type,
+                                                             const reference_set_t &schemas) {
+	vector results;
 	for (auto schema_ref : schemas) {
 		auto &schema = schema_ref.get();
 		auto transaction = schema.catalog.GetCatalogTransaction(context);
@@ -363,17 +370,23 @@ SimilarCatalogEntry Catalog::SimilarEntryInSchemas(ClientContext &context, const
 			// no similar entry found
 			continue;
 		}
-		if (!result.Found() || result.score < entry.score) {
-			result = entry;
-			result.schema = &schema;
+		if (results.empty() || results[0].score <= entry.score) {
+			if (!results.empty() && results[0].score < entry.score) {
+				results.clear();
+			}
+
+			results.push_back(entry);
+			results.back().schema = &schema;
 		}
 	}
-	return result;
+	return results;
 }
 
-vector GetCatalogEntries(ClientContext &context, const string &catalog, const string &schema) {
+vector GetCatalogEntries(CatalogEntryRetriever &retriever, const string &catalog,
+                                             const string &schema) {
+	auto &context = retriever.GetContext();
 	vector entries;
-	auto &search_path = *context.client_data->catalog_search_path;
+	auto &search_path = retriever.GetSearchPath();
 	if (IsInvalidCatalog(catalog) && IsInvalidSchema(schema)) {
 		// no catalog or schema provided - scan the entire search path
 		entries = search_path.Get();
@@ -383,7 +396,12 @@ vector GetCatalogEntries(ClientContext &context, const strin
 			entries.emplace_back(catalog_name, schema);
 		}
 		if (entries.empty()) {
-			entries.emplace_back(DatabaseManager::GetDefaultDatabase(context), schema);
+			auto &default_entry = search_path.GetDefault();
+			if (!IsInvalidCatalog(default_entry.catalog)) {
+				entries.emplace_back(default_entry.catalog, schema);
+			} else {
+				entries.emplace_back(DatabaseManager::GetDefaultDatabase(context), schema);
+			}
 		}
 	} else if (IsInvalidSchema(schema)) {
 		auto schemas = search_path.GetSchemasForCatalog(catalog);
@@ -400,11 +418,11 @@ vector GetCatalogEntries(ClientContext &context, const strin
 	return entries;
 }
 
-void FindMinimalQualification(ClientContext &context, const string &catalog_name, const string &schema_name,
+void FindMinimalQualification(CatalogEntryRetriever &retriever, const string &catalog_name, const string &schema_name,
                               bool &qualify_database, bool &qualify_schema) {
 	// check if we can we qualify ONLY the schema
 	bool found = false;
-	auto entries = GetCatalogEntries(context, INVALID_CATALOG, schema_name);
+	auto entries = GetCatalogEntries(retriever, INVALID_CATALOG, schema_name);
 	for (auto &entry : entries) {
 		if (entry.catalog == catalog_name && entry.schema == schema_name) {
 			found = true;
@@ -418,7 +436,7 @@ void FindMinimalQualification(ClientContext &context, const string &catalog_name
 	}
 	// check if we can qualify ONLY the catalog
 	found = false;
-	entries = GetCatalogEntries(context, catalog_name, INVALID_SCHEMA);
+	entries = GetCatalogEntries(retriever, catalog_name, INVALID_SCHEMA);
 	for (auto &entry : entries) {
 		if (entry.catalog == catalog_name && entry.schema == schema_name) {
 			found = true;
@@ -476,25 +494,38 @@ static bool IsAutoloadableFunction(CatalogType type) {
 	        type == CatalogType::AGGREGATE_FUNCTION_ENTRY || type == CatalogType::PRAGMA_FUNCTION_ENTRY);
 }
 
+bool IsTableFunction(CatalogType type) {
+	switch (type) {
+	case CatalogType::TABLE_FUNCTION_ENTRY:
+	case CatalogType::TABLE_MACRO_ENTRY:
+	case CatalogType::PRAGMA_FUNCTION_ENTRY:
+		return true;
+	default:
+		return false;
+	}
+}
+
+bool IsScalarFunction(CatalogType type) {
+	switch (type) {
+	case CatalogType::SCALAR_FUNCTION_ENTRY:
+	case CatalogType::AGGREGATE_FUNCTION_ENTRY:
+	case CatalogType::MACRO_ENTRY:
+		return true;
+	default:
+		return false;
+	}
+}
+
 static bool CompareCatalogTypes(CatalogType type_a, CatalogType type_b) {
 	if (type_a == type_b) {
 		// Types are same
 		return true;
 	}
-	if (!IsAutoloadableFunction(type_a)) {
-		D_ASSERT(IsAutoloadableFunction(type_b));
-		// Make sure that `type_a` is an autoloadable function
-		return CompareCatalogTypes(type_b, type_a);
-	}
-	if (type_a == CatalogType::TABLE_FUNCTION_ENTRY) {
-		// These are all table functions
-		return type_b == CatalogType::TABLE_MACRO_ENTRY || type_b == CatalogType::PRAGMA_FUNCTION_ENTRY;
-	} else if (type_a == CatalogType::SCALAR_FUNCTION_ENTRY) {
-		// These are all scalar functions
-		return type_b == CatalogType::MACRO_ENTRY;
-	} else if (type_a == CatalogType::PRAGMA_FUNCTION_ENTRY) {
-		// These are all table functions
-		return type_b == CatalogType::TABLE_MACRO_ENTRY || type_b == CatalogType::TABLE_FUNCTION_ENTRY;
+	if (IsScalarFunction(type_a) && IsScalarFunction(type_b)) {
+		return true;
+	}
+	if (IsTableFunction(type_a) && IsTableFunction(type_b)) {
+		return true;
 	}
 	return false;
 }
@@ -553,18 +584,19 @@ CatalogException Catalog::UnrecognizedConfigurationError(ClientContext &context,
 	throw CatalogException::MissingEntry("configuration parameter", name, potential_names);
 }
 
-CatalogException Catalog::CreateMissingEntryException(ClientContext &context, const string &entry_name,
+CatalogException Catalog::CreateMissingEntryException(CatalogEntryRetriever &retriever, const string &entry_name,
                                                       CatalogType type,
                                                       const reference_set_t &schemas,
                                                       QueryErrorContext error_context) {
-	auto entry = SimilarEntryInSchemas(context, entry_name, type, schemas);
+	auto &context = retriever.GetContext();
+	auto entries = SimilarEntriesInSchemas(context, entry_name, type, schemas);
 
 	reference_set_t unseen_schemas;
 	auto &db_manager = DatabaseManager::Get(context);
 	auto databases = db_manager.GetDatabases(context);
 	auto &config = DBConfig::GetConfig(context);
 
-	auto max_schema_count = config.options.catalog_error_max_schemas;
+	auto max_schema_count = config.GetSetting(context);
 	for (auto database : databases) {
 		if (unseen_schemas.size() >= max_schema_count) {
 			break;
@@ -637,20 +669,36 @@ CatalogException Catalog::CreateMissingEntryException(ClientContext &context, co
 	// entries in other schemas get a penalty
 	// however, if there is an exact match in another schema, we will always show it
 	static constexpr const double UNSEEN_PENALTY = 0.2;
-	auto unseen_entry = SimilarEntryInSchemas(context, entry_name, type, unseen_schemas);
-	string did_you_mean;
-	if (unseen_entry.Found() && (unseen_entry.score == 1.0 || unseen_entry.score - UNSEEN_PENALTY > entry.score)) {
+	auto unseen_entries = SimilarEntriesInSchemas(context, entry_name, type, unseen_schemas);
+	vector suggestions;
+	if (!unseen_entries.empty() && (unseen_entries[0].score == 1.0 || unseen_entries[0].score - UNSEEN_PENALTY >
+	                                                                      (entries.empty() ? 0.0 : entries[0].score))) {
 		// the closest matching entry requires qualification as it is not in the default search path
 		// check how to minimally qualify this entry
-		auto catalog_name = unseen_entry.schema->catalog.GetName();
-		auto schema_name = unseen_entry.schema->name;
-		bool qualify_database;
-		bool qualify_schema;
-		FindMinimalQualification(context, catalog_name, schema_name, qualify_database, qualify_schema);
-		did_you_mean = unseen_entry.GetQualifiedName(qualify_database, qualify_schema);
-	} else if (entry.Found()) {
-		did_you_mean = entry.name;
+		for (auto &unseen_entry : unseen_entries) {
+			auto catalog_name = unseen_entry.schema->catalog.GetName();
+			auto schema_name = unseen_entry.schema->name;
+			bool qualify_database;
+			bool qualify_schema;
+			FindMinimalQualification(retriever, catalog_name, schema_name, qualify_database, qualify_schema);
+			suggestions.push_back(unseen_entry.GetQualifiedName(qualify_database, qualify_schema));
+		}
+	} else if (!entries.empty()) {
+		for (auto &entry : entries) {
+			suggestions.push_back(entry.name);
+		}
+	}
+
+	string did_you_mean;
+	std::sort(suggestions.begin(), suggestions.end());
+	if (suggestions.size() > 2) {
+		auto last = suggestions.back();
+		suggestions.pop_back();
+		did_you_mean = StringUtil::Join(suggestions, ", ") + ", or " + last;
+	} else {
+		did_you_mean = StringUtil::Join(suggestions, " or ");
 	}
+
 	return CatalogException::MissingEntry(type, entry_name, did_you_mean, error_context);
 }
 
@@ -667,13 +715,14 @@ CatalogEntryLookup Catalog::TryLookupEntryInternal(CatalogTransaction transactio
 	return {schema_entry, entry, ErrorData()};
 }
 
-CatalogEntryLookup Catalog::TryLookupEntry(ClientContext &context, CatalogType type, const string &schema,
+CatalogEntryLookup Catalog::TryLookupEntry(CatalogEntryRetriever &retriever, CatalogType type, const string &schema,
                                            const string &name, OnEntryNotFound if_not_found,
                                            QueryErrorContext error_context) {
+	auto &context = retriever.GetContext();
 	reference_set_t schemas;
 	if (IsInvalidSchema(schema)) {
 		// try all schemas for this catalog
-		auto entries = GetCatalogEntries(context, GetName(), INVALID_SCHEMA);
+		auto entries = GetCatalogEntries(retriever, GetName(), INVALID_SCHEMA);
 		for (auto &entry : entries) {
 			auto &candidate_schema = entry.schema;
 			auto transaction = GetCatalogTransaction(context);
@@ -699,15 +748,15 @@ CatalogEntryLookup Catalog::TryLookupEntry(ClientContext &context, CatalogType t
 	if (if_not_found == OnEntryNotFound::RETURN_NULL) {
 		return {nullptr, nullptr, ErrorData()};
 	} else {
-		auto except = CreateMissingEntryException(context, name, type, schemas, error_context);
+		auto except = CreateMissingEntryException(retriever, name, type, schemas, error_context);
 		return {nullptr, nullptr, ErrorData(except)};
 	}
 }
 
-CatalogEntryLookup Catalog::LookupEntry(ClientContext &context, CatalogType type, const string &schema,
+CatalogEntryLookup Catalog::LookupEntry(CatalogEntryRetriever &retriever, CatalogType type, const string &schema,
                                         const string &name, OnEntryNotFound if_not_found,
                                         QueryErrorContext error_context) {
-	auto res = TryLookupEntry(context, type, schema, name, if_not_found, error_context);
+	auto res = TryLookupEntry(retriever, type, schema, name, if_not_found, error_context);
 
 	if (res.error.HasError()) {
 		res.error.Throw();
@@ -716,13 +765,14 @@ CatalogEntryLookup Catalog::LookupEntry(ClientContext &context, CatalogType type
 	return res;
 }
 
-CatalogEntryLookup Catalog::TryLookupEntry(ClientContext &context, vector &lookups, CatalogType type,
-                                           const string &name, OnEntryNotFound if_not_found,
+CatalogEntryLookup Catalog::TryLookupEntry(CatalogEntryRetriever &retriever, vector &lookups,
+                                           CatalogType type, const string &name, OnEntryNotFound if_not_found,
                                            QueryErrorContext error_context) {
+	auto &context = retriever.GetContext();
 	reference_set_t schemas;
 	for (auto &lookup : lookups) {
 		auto transaction = lookup.catalog.GetCatalogTransaction(context);
-		auto result = lookup.catalog.TryLookupEntryInternal(transaction, type, lookup.schema, name);
+		auto result = lookup.catalog.TryLookupEntryInternal(transaction, type, lookup.schema, lookup.name);
 		if (result.Found()) {
 			return result;
 		}
@@ -734,24 +784,60 @@ CatalogEntryLookup Catalog::TryLookupEntry(ClientContext &context, vector catalog_by_name_lookups;
+	auto catalog_by_name = GetCatalogEntry(retriever, name);
+	if (catalog_by_name && catalog_by_name->HasDefaultTable()) {
+		catalog_by_name_lookups.emplace_back(*catalog_by_name, catalog_by_name->GetDefaultTableSchema(),
+		                                     catalog_by_name->GetDefaultTable());
+	}
+
+	return TryLookupEntry(retriever, catalog_by_name_lookups, type, name, if_not_found, error_context);
+}
+
+static void ThrowDefaultTableAmbiguityException(CatalogEntryLookup &base_lookup, CatalogEntryLookup &default_table,
+                                                const string &name) {
+	auto entry_type = CatalogTypeToString(base_lookup.entry->type);
+	string fully_qualified_name_hint;
+	if (base_lookup.schema) {
+		fully_qualified_name_hint = StringUtil::Format(": '%s.%s.%s'", base_lookup.schema->catalog.GetName(),
+		                                               base_lookup.schema->name, base_lookup.entry->name);
+	}
+	string fully_qualified_catalog_name_hint = StringUtil::Format(
+	    ": '%s.%s.%s'", default_table.schema->catalog.GetName(), default_table.schema->name, default_table.entry->name);
+	throw CatalogException(
+	    "Ambiguity detected for '%s': this could either refer to the '%s' '%s', or the "
+	    "attached catalog '%s' which has a default table. To avoid this error, either detach the catalog and "
+	    "reattach under a different name, or use a fully qualified name for the '%s'%s or for the Catalog "
+	    "Default Table%s.",
+	    name, entry_type, name, name, entry_type, fully_qualified_name_hint, fully_qualified_catalog_name_hint);
+}
+
+CatalogEntryLookup Catalog::TryLookupEntry(CatalogEntryRetriever &retriever, CatalogType type, const string &catalog,
                                            const string &schema, const string &name, OnEntryNotFound if_not_found,
                                            QueryErrorContext error_context) {
-	auto entries = GetCatalogEntries(context, catalog, schema);
+	auto entries = GetCatalogEntries(retriever, catalog, schema);
 	vector lookups;
 	vector final_lookups;
 	lookups.reserve(entries.size());
 	for (auto &entry : entries) {
 		optional_ptr catalog_entry;
 		if (if_not_found == OnEntryNotFound::RETURN_NULL) {
-			catalog_entry = Catalog::GetCatalogEntry(context, entry.catalog);
+			catalog_entry = Catalog::GetCatalogEntry(retriever, entry.catalog);
 		} else {
-			catalog_entry = &Catalog::GetCatalog(context, entry.catalog);
+			catalog_entry = &Catalog::GetCatalog(retriever, entry.catalog);
 		}
 		if (!catalog_entry) {
 			return {nullptr, nullptr, ErrorData()};
@@ -759,26 +845,46 @@ CatalogEntryLookup Catalog::TryLookupEntry(ClientContext &context, CatalogType t
 		D_ASSERT(catalog_entry);
 		auto lookup_behavior = catalog_entry->CatalogTypeLookupRule(type);
 		if (lookup_behavior == CatalogLookupBehavior::STANDARD) {
-			lookups.emplace_back(*catalog_entry, entry.schema);
+			lookups.emplace_back(*catalog_entry, entry.schema, name);
 		} else if (lookup_behavior == CatalogLookupBehavior::LOWER_PRIORITY) {
-			final_lookups.emplace_back(*catalog_entry, entry.schema);
+			final_lookups.emplace_back(*catalog_entry, entry.schema, name);
 		}
 	}
+
 	for (auto &lookup : final_lookups) {
 		lookups.emplace_back(std::move(lookup));
 	}
-	return Catalog::TryLookupEntry(context, lookups, type, name, if_not_found, error_context);
+
+	// Do the main lookup
+	auto lookup_result = TryLookupEntry(retriever, lookups, type, name, if_not_found, error_context);
+
+	// Special case for tables: we do a second lookup searching for catalogs with default tables that also match this
+	// lookup
+	if (type == CatalogType::TABLE_ENTRY) {
+		auto lookup_result_default_table =
+		    TryLookupDefaultTable(retriever, type, catalog, schema, name, if_not_found, error_context);
+
+		if (lookup_result_default_table.Found() && lookup_result.Found()) {
+			ThrowDefaultTableAmbiguityException(lookup_result, lookup_result_default_table, name);
+		}
+
+		if (lookup_result_default_table.Found()) {
+			return lookup_result_default_table;
+		}
+	}
+
+	return lookup_result;
 }
 
-optional_ptr Catalog::GetEntry(ClientContext &context, CatalogType type, const string &schema_name,
-                                             const string &name, OnEntryNotFound if_not_found,
-                                             QueryErrorContext error_context) {
-	auto lookup_entry = TryLookupEntry(context, type, schema_name, name, if_not_found, error_context);
+optional_ptr Catalog::GetEntry(CatalogEntryRetriever &retriever, CatalogType type,
+                                             const string &schema_name, const string &name,
+                                             OnEntryNotFound if_not_found, QueryErrorContext error_context) {
+	auto lookup_entry = TryLookupEntry(retriever, type, schema_name, name, if_not_found, error_context);
 
 	// Try autoloading extension to resolve lookup
 	if (!lookup_entry.Found()) {
-		if (AutoLoadExtensionByCatalogEntry(*context.db, type, name)) {
-			lookup_entry = TryLookupEntry(context, type, schema_name, name, if_not_found, error_context);
+		if (AutoLoadExtensionByCatalogEntry(*retriever.GetContext().db, type, name)) {
+			lookup_entry = TryLookupEntry(retriever, type, schema_name, name, if_not_found, error_context);
 		}
 	}
 
@@ -789,20 +895,27 @@ optional_ptr Catalog::GetEntry(ClientContext &context, CatalogType
 	return lookup_entry.entry.get();
 }
 
+optional_ptr Catalog::GetEntry(ClientContext &context, CatalogType type, const string &schema_name,
+                                             const string &name, OnEntryNotFound if_not_found,
+                                             QueryErrorContext error_context) {
+	CatalogEntryRetriever retriever(context);
+	return GetEntry(retriever, type, schema_name, name, if_not_found, error_context);
+}
+
 CatalogEntry &Catalog::GetEntry(ClientContext &context, CatalogType type, const string &schema, const string &name,
                                 QueryErrorContext error_context) {
 	return *Catalog::GetEntry(context, type, schema, name, OnEntryNotFound::THROW_EXCEPTION, error_context);
 }
 
-optional_ptr Catalog::GetEntry(ClientContext &context, CatalogType type, const string &catalog,
+optional_ptr Catalog::GetEntry(CatalogEntryRetriever &retriever, CatalogType type, const string &catalog,
                                              const string &schema, const string &name, OnEntryNotFound if_not_found,
                                              QueryErrorContext error_context) {
-	auto result = TryLookupEntry(context, type, catalog, schema, name, if_not_found, error_context);
+	auto result = TryLookupEntry(retriever, type, catalog, schema, name, if_not_found, error_context);
 
 	// Try autoloading extension to resolve lookup
 	if (!result.Found()) {
-		if (AutoLoadExtensionByCatalogEntry(*context.db, type, name)) {
-			result = TryLookupEntry(context, type, catalog, schema, name, if_not_found, error_context);
+		if (AutoLoadExtensionByCatalogEntry(*retriever.GetContext().db, type, name)) {
+			result = TryLookupEntry(retriever, type, catalog, schema, name, if_not_found, error_context);
 		}
 	}
 
@@ -816,20 +929,26 @@ optional_ptr Catalog::GetEntry(ClientContext &context, CatalogType
 	}
 	return result.entry.get();
 }
+optional_ptr Catalog::GetEntry(ClientContext &context, CatalogType type, const string &catalog,
+                                             const string &schema, const string &name, OnEntryNotFound if_not_found,
+                                             QueryErrorContext error_context) {
+	CatalogEntryRetriever retriever(context);
+	return GetEntry(retriever, type, catalog, schema, name, if_not_found, error_context);
+}
 
 CatalogEntry &Catalog::GetEntry(ClientContext &context, CatalogType type, const string &catalog, const string &schema,
                                 const string &name, QueryErrorContext error_context) {
 	return *Catalog::GetEntry(context, type, catalog, schema, name, OnEntryNotFound::THROW_EXCEPTION, error_context);
 }
 
-optional_ptr Catalog::GetSchema(ClientContext &context, const string &catalog_name,
+optional_ptr Catalog::GetSchema(CatalogEntryRetriever &retriever, const string &catalog_name,
                                                     const string &schema_name, OnEntryNotFound if_not_found,
                                                     QueryErrorContext error_context) {
-	auto entries = GetCatalogEntries(context, catalog_name, schema_name);
+	auto entries = GetCatalogEntries(retriever, catalog_name, schema_name);
 	for (idx_t i = 0; i < entries.size(); i++) {
 		auto on_not_found = i + 1 == entries.size() ? if_not_found : OnEntryNotFound::RETURN_NULL;
-		auto &catalog = Catalog::GetCatalog(context, entries[i].catalog);
-		auto result = catalog.GetSchema(context, schema_name, on_not_found, error_context);
+		auto &catalog = Catalog::GetCatalog(retriever, entries[i].catalog);
+		auto result = catalog.GetSchema(retriever.GetContext(), schema_name, on_not_found, error_context);
 		if (result) {
 			return result;
 		}
@@ -837,20 +956,28 @@ optional_ptr Catalog::GetSchema(ClientContext &context, cons
 	return nullptr;
 }
 
+optional_ptr Catalog::GetSchema(ClientContext &context, const string &catalog_name,
+                                                    const string &schema_name, OnEntryNotFound if_not_found,
+                                                    QueryErrorContext error_context) {
+	CatalogEntryRetriever retriever(context);
+	return GetSchema(retriever, catalog_name, schema_name, if_not_found, error_context);
+}
+
 vector> Catalog::GetSchemas(ClientContext &context) {
 	vector> schemas;
 	ScanSchemas(context, [&](SchemaCatalogEntry &entry) { schemas.push_back(entry); });
 	return schemas;
 }
 
-vector> Catalog::GetSchemas(ClientContext &context, const string &catalog_name) {
+vector> Catalog::GetSchemas(CatalogEntryRetriever &retriever,
+                                                          const string &catalog_name) {
 	vector> catalogs;
 	if (IsInvalidCatalog(catalog_name)) {
 		reference_set_t inserted_catalogs;
 
-		auto &search_path = *context.client_data->catalog_search_path;
+		auto &search_path = retriever.GetSearchPath();
 		for (auto &entry : search_path.Get()) {
-			auto &catalog = Catalog::GetCatalog(context, entry.catalog);
+			auto &catalog = Catalog::GetCatalog(retriever, entry.catalog);
 			if (inserted_catalogs.find(catalog) != inserted_catalogs.end()) {
 				continue;
 			}
@@ -858,16 +985,21 @@ vector> Catalog::GetSchemas(ClientContext &context
 			catalogs.push_back(catalog);
 		}
 	} else {
-		catalogs.push_back(Catalog::GetCatalog(context, catalog_name));
+		catalogs.push_back(Catalog::GetCatalog(retriever, catalog_name));
 	}
 	vector> result;
 	for (auto catalog : catalogs) {
-		auto schemas = catalog.get().GetSchemas(context);
+		auto schemas = catalog.get().GetSchemas(retriever.GetContext());
 		result.insert(result.end(), schemas.begin(), schemas.end());
 	}
 	return result;
 }
 
+vector> Catalog::GetSchemas(ClientContext &context, const string &catalog_name) {
+	CatalogEntryRetriever retriever(context);
+	return GetSchemas(retriever, catalog_name);
+}
+
 vector> Catalog::GetAllSchemas(ClientContext &context) {
 	vector> result;
 
@@ -896,8 +1028,8 @@ vector> Catalog::GetAllSchemas(ClientContext &cont
 
 void Catalog::Alter(CatalogTransaction transaction, AlterInfo &info) {
 	if (transaction.HasContext()) {
-		auto lookup =
-		    LookupEntry(transaction.GetContext(), info.GetCatalogType(), info.schema, info.name, info.if_not_found);
+		CatalogEntryRetriever retriever(transaction.GetContext());
+		auto lookup = LookupEntry(retriever, info.GetCatalogType(), info.schema, info.name, info.if_not_found);
 		if (!lookup.Found()) {
 			return;
 		}
@@ -916,6 +1048,28 @@ vector Catalog::GetMetadataInfo(ClientContext &context) {
 	return vector();
 }
 
+optional_ptr Catalog::GetDependencyManager() {
+	return nullptr;
+}
+
+//! Whether this catalog has a default table. Catalogs with a default table can be queries by their catalog name
+bool Catalog::HasDefaultTable() const {
+	return !default_table.empty();
+}
+
+void Catalog::SetDefaultTable(const string &schema, const string &name) {
+	default_table = name;
+	default_table_schema = schema;
+}
+
+string Catalog::GetDefaultTable() const {
+	return default_table;
+}
+
+string Catalog::GetDefaultTableSchema() const {
+	return !default_table_schema.empty() ? default_table_schema : DEFAULT_SCHEMA;
+}
+
 void Catalog::Verify() {
 }
 
diff --git a/src/duckdb/src/catalog/catalog_entry.cpp b/src/duckdb/src/catalog/catalog_entry.cpp
index 3c8f383a..d6a96d6e 100644
--- a/src/duckdb/src/catalog/catalog_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry.cpp
@@ -109,6 +109,9 @@ unique_ptr CatalogEntry::Deserialize(Deserializer &deserializer) {
 void CatalogEntry::Verify(Catalog &catalog_p) {
 }
 
+void CatalogEntry::Rollback(CatalogEntry &prev_entry) {
+}
+
 InCatalogEntry::InCatalogEntry(CatalogType type, Catalog &catalog, string name)
     : CatalogEntry(type, catalog, std::move(name)), catalog(catalog) {
 }
diff --git a/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp b/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp
index be047bfe..c70984e5 100644
--- a/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry/duck_index_entry.cpp
@@ -9,17 +9,20 @@ IndexDataTableInfo::IndexDataTableInfo(shared_ptr info_p, const s
     : info(std::move(info_p)), index_name(index_name_p) {
 }
 
-IndexDataTableInfo::~IndexDataTableInfo() {
+void DuckIndexEntry::Rollback(CatalogEntry &) {
 	if (!info) {
 		return;
 	}
-	// FIXME: this should happen differently.
-	info->GetIndexes().RemoveIndex(index_name);
+	if (!info->info) {
+		return;
+	}
+	info->info->GetIndexes().RemoveIndex(name);
 }
 
 DuckIndexEntry::DuckIndexEntry(Catalog &catalog, SchemaCatalogEntry &schema, CreateIndexInfo &create_info,
                                TableCatalogEntry &table_p)
     : IndexCatalogEntry(catalog, schema, create_info), initial_index_size(0) {
+
 	auto &table = table_p.Cast();
 	auto &storage = table.GetStorage();
 	info = make_shared_ptr(storage.GetDataTableInfo(), name);
@@ -54,7 +57,9 @@ DataTableInfo &DuckIndexEntry::GetDataTableInfo() const {
 
 void DuckIndexEntry::CommitDrop() {
 	D_ASSERT(info);
-	GetDataTableInfo().GetIndexes().CommitDrop(name);
+	auto &indexes = GetDataTableInfo().GetIndexes();
+	indexes.CommitDrop(name);
+	indexes.RemoveIndex(name);
 }
 
 } // namespace duckdb
diff --git a/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp b/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp
index 42dea06f..9f07d4ac 100644
--- a/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry/duck_schema_entry.cpp
@@ -119,6 +119,13 @@ optional_ptr DuckSchemaEntry::AddEntryInternal(CatalogTransaction
 	// first find the set for this entry
 	auto &set = GetCatalogSet(entry_type);
 	dependencies.AddDependency(*this);
+	if (on_conflict == OnCreateConflict::IGNORE_ON_CONFLICT) {
+		auto old_entry = set.GetEntry(transaction, entry_name);
+		if (old_entry) {
+			return nullptr;
+		}
+	}
+
 	if (on_conflict == OnCreateConflict::REPLACE_ON_CONFLICT) {
 		// CREATE OR REPLACE: first try to drop the entry
 		auto old_entry = set.GetEntry(transaction, entry_name);
@@ -161,6 +168,9 @@ optional_ptr DuckSchemaEntry::CreateTable(CatalogTransaction trans
 		auto &set = GetCatalogSet(CatalogType::TABLE_ENTRY);
 		info.dependencies.AddDependency(*set.GetEntry(transaction, fk_info.name));
 	}
+	for (auto &dep : info.dependencies.Set()) {
+		table->dependencies.AddDependency(dep);
+	}
 
 	auto entry = AddEntryInternal(transaction, std::move(table), info.Base().on_conflict, info.dependencies);
 	if (!entry) {
@@ -315,7 +325,7 @@ void DuckSchemaEntry::DropEntry(ClientContext &context, DropInfo &info) {
 		throw InternalException("Failed to drop entry \"%s\" - entry could not be found", info.name);
 	}
 	if (existing_entry->type != info.type) {
-		throw CatalogException("Existing object %s is of type %s, trying to replace with type %s", info.name,
+		throw CatalogException("Existing object %s is of type %s, trying to drop type %s", info.name,
 		                       CatalogTypeToString(existing_entry->type), CatalogTypeToString(info.type));
 	}
 
@@ -359,6 +369,11 @@ optional_ptr DuckSchemaEntry::GetEntry(CatalogTransaction transact
 	return GetCatalogSet(type).GetEntry(transaction, name);
 }
 
+CatalogSet::EntryLookup DuckSchemaEntry::GetEntryDetailed(CatalogTransaction transaction, CatalogType type,
+                                                          const string &name) {
+	return GetCatalogSet(type).GetEntryDetailed(transaction, name);
+}
+
 SimilarCatalogEntry DuckSchemaEntry::GetSimilarEntry(CatalogTransaction transaction, CatalogType type,
                                                      const string &name) {
 	return GetCatalogSet(type).SimilarEntry(transaction, name);
diff --git a/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp b/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp
index be1041f9..e1d0c66a 100644
--- a/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry/duck_table_entry.cpp
@@ -20,72 +20,22 @@
 #include "duckdb/planner/operator/logical_projection.hpp"
 #include "duckdb/planner/operator/logical_update.hpp"
 #include "duckdb/planner/parsed_data/bound_create_table_info.hpp"
-#include "duckdb/planner/table_filter.hpp"
 #include "duckdb/storage/storage_manager.hpp"
 #include "duckdb/storage/table_storage_info.hpp"
 
 namespace duckdb {
 
-void AddDataTableIndex(DataTable &storage, const ColumnList &columns, const vector &keys,
-                       IndexConstraintType constraint_type, const IndexStorageInfo &info) {
-
-	// fetch types and create expressions for the index from the columns
-	vector column_ids;
-	vector> unbound_expressions;
-	vector> bound_expressions;
-	idx_t key_nr = 0;
-	column_ids.reserve(keys.size());
-	for (auto &physical_key : keys) {
-		auto &column = columns.GetColumn(physical_key);
-		D_ASSERT(!column.Generated());
-		unbound_expressions.push_back(
-		    make_uniq(column.Name(), column.Type(), ColumnBinding(0, column_ids.size())));
-
-		bound_expressions.push_back(make_uniq(column.Type(), key_nr++));
-		column_ids.push_back(column.StorageOid());
-	}
-	// create an adaptive radix tree around the expressions
-	auto art = make_uniq(info.name, constraint_type, column_ids, TableIOManager::Get(storage),
-	                          std::move(unbound_expressions), storage.db, nullptr, info);
-	if (!info.IsValid() && !info.name.empty() && !storage.IsRoot()) {
-		throw TransactionException("Transaction conflict: cannot add an index to a table that has been altered!");
-	}
-	storage.AddIndex(std::move(art));
-}
-
-void AddDataTableIndex(DataTable &storage, const ColumnList &columns, vector &keys,
-                       IndexConstraintType constraint_type, const IndexStorageInfo &info) {
-	vector new_keys;
-	new_keys.reserve(keys.size());
-	for (auto &logical_key : keys) {
-		new_keys.push_back(columns.LogicalToPhysical(logical_key));
-	}
-	AddDataTableIndex(storage, columns, new_keys, constraint_type, info);
-}
-
-IndexStorageInfo GetIndexInfo(const IndexConstraintType &constraint_type, const bool v1_0_0_storage,
-                              unique_ptr &create_info, const idx_t identifier) {
+IndexStorageInfo GetIndexInfo(const IndexConstraintType type, const bool v1_0_0_storage, unique_ptr &info,
+                              const idx_t id) {
 
-	auto &create_table_info = create_info->Cast();
-	auto constraint_name = EnumUtil::ToString(constraint_type) + "_";
-	auto name = constraint_name + create_table_info.table + "_" + to_string(identifier);
-	IndexStorageInfo info(name);
+	auto &table_info = info->Cast();
+	auto constraint_name = EnumUtil::ToString(type) + "_";
+	auto name = constraint_name + table_info.table + "_" + to_string(id);
+	IndexStorageInfo index_info(name);
 	if (!v1_0_0_storage) {
-		info.options.emplace("v1_0_0_storage", v1_0_0_storage);
-	}
-	return info;
-}
-
-vector GetUniqueConstraintKeys(const ColumnList &columns, const UniqueConstraint &constraint) {
-	vector indexes;
-	if (constraint.HasIndex()) {
-		indexes.push_back(columns.LogicalToPhysical(constraint.GetIndex()));
-	} else {
-		for (auto &keyname : constraint.GetColumnNames()) {
-			indexes.push_back(columns.GetColumn(keyname).Physical());
-		}
+		index_info.options.emplace("v1_0_0_storage", v1_0_0_storage);
 	}
-	return indexes;
+	return index_info;
 }
 
 DuckTableEntry::DuckTableEntry(Catalog &catalog, SchemaCatalogEntry &schema, BoundCreateTableInfo &info,
@@ -101,28 +51,30 @@ DuckTableEntry::DuckTableEntry(Catalog &catalog, SchemaCatalogEntry &schema, Bou
 	}
 
 	// create the physical storage
-	vector storage_columns;
+	vector column_defs;
 	for (auto &col_def : columns.Physical()) {
-		storage_columns.push_back(col_def.Copy());
+		column_defs.push_back(col_def.Copy());
 	}
 	storage = make_shared_ptr(catalog.GetAttached(), StorageManager::Get(catalog).GetTableIOManager(&info),
-	                                     schema.name, name, std::move(storage_columns), std::move(info.data));
+	                                     schema.name, name, std::move(column_defs), std::move(info.data));
 
-	// create the unique indexes for the UNIQUE and PRIMARY KEY and FOREIGN KEY constraints
+	// Create the unique indexes for the UNIQUE, PRIMARY KEY, and FOREIGN KEY constraints.
 	idx_t indexes_idx = 0;
 	for (idx_t i = 0; i < constraints.size(); i++) {
 		auto &constraint = constraints[i];
 		if (constraint->type == ConstraintType::UNIQUE) {
-			// unique constraint: create a unique index
+
+			// UNIQUE constraint: Create a unique index.
 			auto &unique = constraint->Cast();
 			IndexConstraintType constraint_type = IndexConstraintType::UNIQUE;
 			if (unique.is_primary_key) {
 				constraint_type = IndexConstraintType::PRIMARY;
 			}
-			auto unique_keys = GetUniqueConstraintKeys(columns, unique);
+
+			auto column_indexes = unique.GetLogicalIndexes(columns);
 			if (info.indexes.empty()) {
-				auto index_storage_info = GetIndexInfo(constraint_type, false, info.base, i);
-				AddDataTableIndex(*storage, columns, unique_keys, constraint_type, index_storage_info);
+				auto index_info = GetIndexInfo(constraint_type, false, info.base, i);
+				storage->AddIndex(columns, column_indexes, constraint_type, index_info);
 				continue;
 			}
 
@@ -132,21 +84,27 @@ DuckTableEntry::DuckTableEntry(Catalog &catalog, SchemaCatalogEntry &schema, Bou
 				info.indexes[indexes_idx].name = name_info.name;
 			}
 
-			// now add the index
-			AddDataTableIndex(*storage, columns, unique_keys, constraint_type, info.indexes[indexes_idx++]);
+			// Now we can add the index.
+			storage->AddIndex(columns, column_indexes, constraint_type, info.indexes[indexes_idx++]);
 			continue;
 		}
 
 		if (constraint->type == ConstraintType::FOREIGN_KEY) {
-			// foreign key constraint: create a foreign key index
+			// Create a FOREIGN KEY index.
 			auto &bfk = constraint->Cast();
 			if (bfk.info.type == ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE ||
 			    bfk.info.type == ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE) {
 
+				vector column_indexes;
+				for (const auto &physical_index : bfk.info.fk_keys) {
+					auto &col = columns.GetColumn(physical_index);
+					column_indexes.push_back(col.Logical());
+				}
+
 				if (info.indexes.empty()) {
 					auto constraint_type = IndexConstraintType::FOREIGN;
-					auto index_storage_info = GetIndexInfo(constraint_type, false, info.base, i);
-					AddDataTableIndex(*storage, columns, bfk.info.fk_keys, constraint_type, index_storage_info);
+					auto index_info = GetIndexInfo(constraint_type, false, info.base, i);
+					storage->AddIndex(columns, column_indexes, constraint_type, index_info);
 					continue;
 				}
 
@@ -156,9 +114,8 @@ DuckTableEntry::DuckTableEntry(Catalog &catalog, SchemaCatalogEntry &schema, Bou
 					info.indexes[indexes_idx].name = name_info.name;
 				}
 
-				// now add the index
-				AddDataTableIndex(*storage, columns, bfk.info.fk_keys, IndexConstraintType::FOREIGN,
-				                  info.indexes[indexes_idx++]);
+				// Now we can add the index.
+				storage->AddIndex(columns, column_indexes, IndexConstraintType::FOREIGN, info.indexes[indexes_idx++]);
 			}
 		}
 	}
@@ -258,6 +215,10 @@ unique_ptr DuckTableEntry::AlterEntry(ClientContext &context, Alte
 		auto &drop_not_null_info = table_info.Cast();
 		return DropNotNull(context, drop_not_null_info);
 	}
+	case AlterTableType::ADD_CONSTRAINT: {
+		auto &add_constraint_info = table_info.Cast();
+		return AddConstraint(context, add_constraint_info);
+	}
 	default:
 		throw InternalException("Unrecognized alter table type!");
 	}
@@ -565,7 +526,6 @@ unique_ptr DuckTableEntry::SetDefault(ClientContext &context, SetD
 }
 
 unique_ptr DuckTableEntry::SetNotNull(ClientContext &context, SetNotNullInfo &info) {
-
 	auto create_info = make_uniq(schema, name);
 	create_info->comment = comment;
 	create_info->tags = tags;
@@ -598,8 +558,9 @@ unique_ptr DuckTableEntry::SetNotNull(ClientContext &context, SetN
 	}
 
 	// Return with new storage info. Note that we need the bound column index here.
-	auto new_storage = make_shared_ptr(
-	    context, *storage, make_uniq(columns.LogicalToPhysical(LogicalIndex(not_null_idx))));
+	auto physical_columns = columns.LogicalToPhysical(LogicalIndex(not_null_idx));
+	auto bound_constraint = make_uniq(physical_columns);
+	auto new_storage = make_shared_ptr(context, *storage, *bound_constraint);
 	return make_uniq(catalog, schema, *bound_create_info, new_storage);
 }
 
@@ -630,12 +591,24 @@ unique_ptr DuckTableEntry::DropNotNull(ClientContext &context, Dro
 unique_ptr DuckTableEntry::ChangeColumnType(ClientContext &context, ChangeColumnTypeInfo &info) {
 	auto binder = Binder::CreateBinder(context);
 	binder->BindLogicalType(info.target_type, &catalog, schema.name);
+
 	auto change_idx = GetColumnIndex(info.column_name);
 	auto create_info = make_uniq(schema, name);
 	create_info->temporary = temporary;
 	create_info->comment = comment;
 	create_info->tags = tags;
 
+	// Bind the USING expression.
+	vector bound_columns;
+	AlterBinder expr_binder(*binder, context, *this, bound_columns, info.target_type);
+	auto expression = info.expression->Copy();
+	auto bound_expression = expr_binder.Bind(expression);
+
+	// Infer the target_type from the USING expression, if not set explicitly.
+	if (info.target_type == LogicalType::UNKNOWN) {
+		info.target_type = bound_expression->return_type;
+	}
+
 	auto bound_constraints = binder->BindConstraints(constraints, name, columns);
 	for (auto &col : columns.Logical()) {
 		auto copy = col.Copy();
@@ -655,11 +628,11 @@ unique_ptr DuckTableEntry::ChangeColumnType(ClientContext &context
 		create_info->columns.AddColumn(std::move(copy));
 	}
 
-	for (idx_t i = 0; i < constraints.size(); i++) {
-		auto constraint = constraints[i]->Copy();
+	for (idx_t constr_idx = 0; constr_idx < constraints.size(); constr_idx++) {
+		auto constraint = constraints[constr_idx]->Copy();
 		switch (constraint->type) {
 		case ConstraintType::CHECK: {
-			auto &bound_check = bound_constraints[i]->Cast();
+			auto &bound_check = bound_constraints[constr_idx]->Cast();
 			auto physical_index = columns.LogicalToPhysical(change_idx);
 			if (bound_check.bound_columns.find(physical_index) != bound_check.bound_columns.end()) {
 				throw BinderException("Cannot change the type of a column that has a CHECK constraint specified");
@@ -669,22 +642,21 @@ unique_ptr DuckTableEntry::ChangeColumnType(ClientContext &context
 		case ConstraintType::NOT_NULL:
 			break;
 		case ConstraintType::UNIQUE: {
-			auto &bound_unique = bound_constraints[i]->Cast();
-			if (bound_unique.key_set.find(change_idx) != bound_unique.key_set.end()) {
+			auto &bound_unique = bound_constraints[constr_idx]->Cast();
+			auto physical_index = columns.LogicalToPhysical(change_idx);
+			if (bound_unique.key_set.find(physical_index) != bound_unique.key_set.end()) {
 				throw BinderException(
 				    "Cannot change the type of a column that has a UNIQUE or PRIMARY KEY constraint specified");
 			}
 			break;
 		}
 		case ConstraintType::FOREIGN_KEY: {
-			auto &bfk = bound_constraints[i]->Cast();
+			auto &bfk = bound_constraints[constr_idx]->Cast();
 			auto key_set = bfk.pk_key_set;
 			if (bfk.info.type == ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE) {
 				key_set = bfk.fk_key_set;
 			} else if (bfk.info.type == ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE) {
-				for (idx_t i = 0; i < bfk.info.fk_keys.size(); i++) {
-					key_set.insert(bfk.info.fk_keys[i]);
-				}
+				key_set.insert(bfk.info.fk_keys.begin(), bfk.info.fk_keys.end());
 			}
 			if (key_set.find(columns.LogicalToPhysical(change_idx)) != key_set.end()) {
 				throw BinderException("Cannot change the type of a column that has a FOREIGN KEY constraint specified");
@@ -697,18 +669,14 @@ unique_ptr DuckTableEntry::ChangeColumnType(ClientContext &context
 		create_info->constraints.push_back(std::move(constraint));
 	}
 
-	// bind the specified expression
-	vector bound_columns;
-	AlterBinder expr_binder(*binder, context, *this, bound_columns, info.target_type);
-	auto expression = info.expression->Copy();
-	auto bound_expression = expr_binder.Bind(expression);
 	auto bound_create_info = binder->BindCreateTableInfo(std::move(create_info), schema);
-	vector storage_oids;
+
+	vector storage_oids;
 	for (idx_t i = 0; i < bound_columns.size(); i++) {
-		storage_oids.push_back(columns.LogicalToPhysical(bound_columns[i]).index);
+		storage_oids.emplace_back(columns.LogicalToPhysical(bound_columns[i]).index);
 	}
 	if (storage_oids.empty()) {
-		storage_oids.push_back(COLUMN_IDENTIFIER_ROW_ID);
+		storage_oids.emplace_back(COLUMN_IDENTIFIER_ROW_ID);
 	}
 
 	auto new_storage =
@@ -801,6 +769,84 @@ unique_ptr DuckTableEntry::DropForeignKeyConstraint(ClientContext
 	return make_uniq(catalog, schema, *bound_create_info, storage);
 }
 
+void DuckTableEntry::Rollback(CatalogEntry &prev_entry) {
+	if (prev_entry.type != CatalogType::TABLE_ENTRY) {
+		return;
+	}
+
+	// Rolls back any physical index creation.
+	// FIXME: Currently only works for PKs.
+	// FIXME: Should be changed to work for any index-based constraint.
+
+	auto &table = Cast();
+	auto &prev_table = prev_entry.Cast();
+	auto &prev_info = prev_table.GetStorage().GetDataTableInfo();
+	auto &prev_indexes = prev_info->GetIndexes();
+
+	// Find all index-based constraints that exist in rollback_table, but not in table.
+	// Then, remove them.
+
+	unordered_set names;
+	for (const auto &constraint : prev_table.GetConstraints()) {
+		if (constraint->type != ConstraintType::UNIQUE) {
+			continue;
+		}
+		const auto &unique = constraint->Cast();
+		if (unique.is_primary_key) {
+			auto index_name = unique.GetName(prev_table.name);
+			names.insert(index_name);
+		}
+	}
+
+	for (const auto &constraint : GetConstraints()) {
+		if (constraint->type != ConstraintType::UNIQUE) {
+			continue;
+		}
+		const auto &unique = constraint->Cast();
+		if (!unique.IsPrimaryKey()) {
+			continue;
+		}
+		auto index_name = unique.GetName(table.name);
+		if (names.find(index_name) == names.end()) {
+			prev_indexes.RemoveIndex(index_name);
+		}
+	}
+}
+
+unique_ptr DuckTableEntry::AddConstraint(ClientContext &context, AddConstraintInfo &info) {
+	auto create_info = make_uniq(schema, name);
+	create_info->comment = comment;
+
+	// Copy all columns and constraints to the modified table.
+	create_info->columns = columns.Copy();
+	for (const auto &constraint : constraints) {
+		create_info->constraints.push_back(constraint->Copy());
+	}
+
+	if (info.constraint->type == ConstraintType::UNIQUE) {
+		const auto &unique = info.constraint->Cast();
+		const auto existing_pk = GetPrimaryKey();
+
+		if (unique.is_primary_key && existing_pk) {
+			auto existing_name = existing_pk->ToString();
+			throw CatalogException("table \"%s\" can have only one primary key: %s", name, existing_name);
+		}
+		create_info->constraints.push_back(info.constraint->Copy());
+
+	} else {
+		throw InternalException("unsupported constraint type in ALTER TABLE statement");
+	}
+
+	// We create a physical table with a new constraint and a new unique index.
+	const auto binder = Binder::CreateBinder(context);
+	const auto bound_constraint = binder->BindConstraint(*info.constraint, create_info->table, create_info->columns);
+	const auto bound_create_info = binder->BindCreateTableInfo(std::move(create_info), schema);
+
+	auto new_storage = make_shared_ptr(context, *storage, *bound_constraint);
+	auto new_entry = make_uniq(catalog, schema, *bound_create_info, new_storage);
+	return std::move(new_entry);
+}
+
 unique_ptr DuckTableEntry::Copy(ClientContext &context) const {
 	auto create_info = make_uniq(schema, name);
 	create_info->comment = comment;
diff --git a/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp b/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp
index 865ac473..f983fb76 100644
--- a/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry/scalar_function_catalog_entry.cpp
@@ -1,4 +1,5 @@
 #include "duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp"
+#include "duckdb/common/vector.hpp"
 #include "duckdb/parser/parsed_data/alter_scalar_function_info.hpp"
 
 namespace duckdb {
@@ -8,7 +9,7 @@ ScalarFunctionCatalogEntry::ScalarFunctionCatalogEntry(Catalog &catalog, SchemaC
     : FunctionEntry(CatalogType::SCALAR_FUNCTION_ENTRY, catalog, schema, info), functions(info.functions) {
 }
 
-unique_ptr ScalarFunctionCatalogEntry::AlterEntry(ClientContext &context, AlterInfo &info) {
+unique_ptr ScalarFunctionCatalogEntry::AlterEntry(CatalogTransaction transaction, AlterInfo &info) {
 	if (info.type != AlterType::ALTER_SCALAR_FUNCTION) {
 		throw InternalException("Attempting to alter ScalarFunctionCatalogEntry with unsupported alter type");
 	}
@@ -20,10 +21,15 @@ unique_ptr ScalarFunctionCatalogEntry::AlterEntry(ClientContext &c
 	auto &add_overloads = function_info.Cast();
 
 	ScalarFunctionSet new_set = functions;
-	if (!new_set.MergeFunctionSet(add_overloads.new_overloads)) {
-		throw BinderException("Failed to add new function overloads to function \"%s\": function already exists", name);
+	if (!new_set.MergeFunctionSet(add_overloads.new_overloads->functions, true)) {
+		throw BinderException(
+		    "Failed to add new function overloads to function \"%s\": function overload already exists", name);
 	}
 	CreateScalarFunctionInfo new_info(std::move(new_set));
+	new_info.internal = internal;
+	new_info.descriptions = descriptions;
+	new_info.descriptions.insert(new_info.descriptions.end(), add_overloads.new_overloads->descriptions.begin(),
+	                             add_overloads.new_overloads->descriptions.end());
 	return make_uniq(catalog, schema, new_info);
 }
 
diff --git a/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp b/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp
index 3c8e7c70..60cceee6 100644
--- a/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry/schema_catalog_entry.cpp
@@ -39,6 +39,20 @@ SimilarCatalogEntry SchemaCatalogEntry::GetSimilarEntry(CatalogTransaction trans
 	return result;
 }
 
+//! This should not be used, it's only implemented to not put the burden of implementing it on every derived class of
+//! SchemaCatalogEntry
+CatalogSet::EntryLookup SchemaCatalogEntry::GetEntryDetailed(CatalogTransaction transaction, CatalogType type,
+                                                             const string &name) {
+	CatalogSet::EntryLookup result;
+	result.result = GetEntry(transaction, type, name);
+	if (!result.result) {
+		result.reason = CatalogSet::EntryLookup::FailureReason::DELETED;
+	} else {
+		result.reason = CatalogSet::EntryLookup::FailureReason::SUCCESS;
+	}
+	return result;
+}
+
 unique_ptr SchemaCatalogEntry::GetInfo() const {
 	auto result = make_uniq();
 	result->schema = name;
diff --git a/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp b/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp
index abb66b7e..ce0078e5 100644
--- a/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry/table_catalog_entry.cpp
@@ -176,6 +176,24 @@ string TableCatalogEntry::ColumnsToSQL(const ColumnList &columns, const vector 0) {
+			ss << ", ";
+		}
+		ss << KeywordHelper::WriteOptionallyQuoted(column.Name()) << " ";
+	}
+	ss << ")";
+	return ss.str();
+}
+
 string TableCatalogEntry::ToSQL() const {
 	auto create_info = GetInfo();
 	return create_info->ToString();
@@ -316,4 +334,20 @@ void TableCatalogEntry::BindUpdateConstraints(Binder &binder, LogicalGet &get, L
 	}
 }
 
+optional_ptr TableCatalogEntry::GetPrimaryKey() const {
+	for (const auto &constraint : GetConstraints()) {
+		if (constraint->type == ConstraintType::UNIQUE) {
+			auto &unique = constraint->Cast();
+			if (unique.IsPrimaryKey()) {
+				return &unique;
+			}
+		}
+	}
+	return nullptr;
+}
+
+bool TableCatalogEntry::HasPrimaryKey() const {
+	return GetPrimaryKey() != nullptr;
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp b/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp
index 1b3b566b..9b80a1d5 100644
--- a/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp
+++ b/src/duckdb/src/catalog/catalog_entry/table_function_catalog_entry.cpp
@@ -9,7 +9,7 @@ TableFunctionCatalogEntry::TableFunctionCatalogEntry(Catalog &catalog, SchemaCat
 	D_ASSERT(this->functions.Size() > 0);
 }
 
-unique_ptr TableFunctionCatalogEntry::AlterEntry(ClientContext &context, AlterInfo &info) {
+unique_ptr TableFunctionCatalogEntry::AlterEntry(CatalogTransaction transaction, AlterInfo &info) {
 	if (info.type != AlterType::ALTER_TABLE_FUNCTION) {
 		throw InternalException("Attempting to alter TableFunctionCatalogEntry with unsupported alter type");
 	}
diff --git a/src/duckdb/src/catalog/catalog_entry_retriever.cpp b/src/duckdb/src/catalog/catalog_entry_retriever.cpp
index db0d0d42..c37562d7 100644
--- a/src/duckdb/src/catalog/catalog_entry_retriever.cpp
+++ b/src/duckdb/src/catalog/catalog_entry_retriever.cpp
@@ -7,6 +7,7 @@
 #include "duckdb/common/enums/catalog_type.hpp"
 #include "duckdb/common/optional_ptr.hpp"
 #include "duckdb/catalog/catalog_entry/type_catalog_entry.hpp"
+#include "duckdb/main/client_data.hpp"
 
 namespace duckdb {
 
@@ -36,14 +37,13 @@ optional_ptr CatalogEntryRetriever::GetEntry(CatalogType type, con
                                                            const string &schema, const string &name,
                                                            OnEntryNotFound on_entry_not_found,
                                                            QueryErrorContext error_context) {
-	return GetEntryInternal(
-	    [&]() { return Catalog::GetEntry(context, type, catalog, schema, name, on_entry_not_found, error_context); });
+	return ReturnAndCallback(Catalog::GetEntry(*this, type, catalog, schema, name, on_entry_not_found, error_context));
 }
 
 optional_ptr CatalogEntryRetriever::GetSchema(const string &catalog, const string &name,
                                                                   OnEntryNotFound on_entry_not_found,
                                                                   QueryErrorContext error_context) {
-	auto result = Catalog::GetSchema(context, catalog, name, on_entry_not_found, error_context);
+	auto result = Catalog::GetSchema(*this, catalog, name, on_entry_not_found, error_context);
 	if (!result) {
 		return result;
 	}
@@ -57,8 +57,63 @@ optional_ptr CatalogEntryRetriever::GetSchema(const string &
 optional_ptr CatalogEntryRetriever::GetEntry(CatalogType type, Catalog &catalog, const string &schema,
                                                            const string &name, OnEntryNotFound on_entry_not_found,
                                                            QueryErrorContext error_context) {
-	return GetEntryInternal(
-	    [&]() { return catalog.GetEntry(context, type, schema, name, on_entry_not_found, error_context); });
+	return ReturnAndCallback(catalog.GetEntry(*this, type, schema, name, on_entry_not_found, error_context));
+}
+
+optional_ptr CatalogEntryRetriever::ReturnAndCallback(optional_ptr result) {
+	if (!result) {
+		return result;
+	}
+	if (callback) {
+		// Call the callback if it's set
+		callback(*result);
+	}
+	return result;
+}
+
+void CatalogEntryRetriever::Inherit(const CatalogEntryRetriever &parent) {
+	this->callback = parent.callback;
+	this->search_path = parent.search_path;
+}
+
+CatalogSearchPath &CatalogEntryRetriever::GetSearchPath() {
+	if (search_path) {
+		return *search_path;
+	}
+	return *ClientData::Get(context).catalog_search_path;
+}
+
+void CatalogEntryRetriever::SetSearchPath(vector entries) {
+	vector new_path;
+	for (auto &entry : entries) {
+		if (IsInvalidCatalog(entry.catalog) || entry.catalog == SYSTEM_CATALOG || entry.catalog == TEMP_CATALOG) {
+			continue;
+		}
+		new_path.push_back(std::move(entry));
+	}
+	if (new_path.empty()) {
+		return;
+	}
+
+	// push the set paths from the ClientContext behind the provided paths
+	auto &client_search_path = *ClientData::Get(context).catalog_search_path;
+	auto &set_paths = client_search_path.GetSetPaths();
+	for (auto path : set_paths) {
+		if (IsInvalidCatalog(path.catalog)) {
+			path.catalog = DatabaseManager::GetDefaultDatabase(context);
+		}
+		new_path.push_back(std::move(path));
+	}
+
+	this->search_path = make_shared_ptr(context, std::move(new_path));
+}
+
+void CatalogEntryRetriever::SetCallback(catalog_entry_callback_t callback) {
+	this->callback = std::move(callback);
+}
+
+catalog_entry_callback_t CatalogEntryRetriever::GetCallback() {
+	return callback;
 }
 
 } // namespace duckdb
diff --git a/src/duckdb/src/catalog/catalog_search_path.cpp b/src/duckdb/src/catalog/catalog_search_path.cpp
index 9368e300..fe314dde 100644
--- a/src/duckdb/src/catalog/catalog_search_path.cpp
+++ b/src/duckdb/src/catalog/catalog_search_path.cpp
@@ -123,13 +123,17 @@ vector CatalogSearchEntry::ParseList(const string &input) {
 	return result;
 }
 
-CatalogSearchPath::CatalogSearchPath(ClientContext &context_p) : context(context_p) {
-	Reset();
+CatalogSearchPath::CatalogSearchPath(ClientContext &context_p, vector entries)
+    : context(context_p) {
+	SetPathsInternal(std::move(entries));
+}
+
+CatalogSearchPath::CatalogSearchPath(ClientContext &context_p) : CatalogSearchPath(context_p, {}) {
 }
 
 void CatalogSearchPath::Reset() {
 	vector empty;
-	SetPaths(empty);
+	SetPathsInternal(empty);
 }
 
 string CatalogSearchPath::GetSetName(CatalogSetPathType set_type) {
@@ -176,8 +180,7 @@ void CatalogSearchPath::Set(vector new_paths, CatalogSetPath
 			                       new_paths[0].catalog);
 		}
 	}
-	this->set_paths = std::move(new_paths);
-	SetPaths(set_paths);
+	SetPathsInternal(std::move(new_paths));
 }
 
 void CatalogSearchPath::Set(CatalogSearchEntry new_value, CatalogSetPathType set_type) {
@@ -239,12 +242,14 @@ const CatalogSearchEntry &CatalogSearchPath::GetDefault() {
 	return paths[1];
 }
 
-void CatalogSearchPath::SetPaths(vector new_paths) {
+void CatalogSearchPath::SetPathsInternal(vector new_paths) {
+	this->set_paths = std::move(new_paths);
+
 	paths.clear();
-	paths.reserve(new_paths.size() + 3);
+	paths.reserve(set_paths.size() + 3);
 	paths.emplace_back(TEMP_CATALOG, DEFAULT_SCHEMA);
-	for (auto &path : new_paths) {
-		paths.push_back(std::move(path));
+	for (auto &path : set_paths) {
+		paths.push_back(path);
 	}
 	paths.emplace_back(INVALID_CATALOG, DEFAULT_SCHEMA);
 	paths.emplace_back(SYSTEM_CATALOG, DEFAULT_SCHEMA);
diff --git a/src/duckdb/src/catalog/catalog_set.cpp b/src/duckdb/src/catalog/catalog_set.cpp
index f3f7ef1b..b95f8574 100644
--- a/src/duckdb/src/catalog/catalog_set.cpp
+++ b/src/duckdb/src/catalog/catalog_set.cpp
@@ -88,10 +88,6 @@ CatalogSet::CatalogSet(Catalog &catalog_p, unique_ptr defaults
 CatalogSet::~CatalogSet() {
 }
 
-bool IsDependencyEntry(CatalogEntry &entry) {
-	return entry.type == CatalogType::DEPENDENCY_ENTRY;
-}
-
 bool CatalogSet::StartChain(CatalogTransaction transaction, const string &name, unique_lock &read_lock) {
 	D_ASSERT(!map.GetEntry(name));
 
@@ -101,9 +97,8 @@ bool CatalogSet::StartChain(CatalogTransaction transaction, const string &name,
 		return false;
 	}
 
-	// first create a dummy deleted entry for this entry
-	// so transactions started before the commit of this transaction don't
-	// see it yet
+	// first create a dummy deleted entry
+	// so other transactions will see that instead of the entry that is to be added.
 	auto dummy_node = make_uniq(CatalogType::INVALID, catalog, name);
 	dummy_node->timestamp = 0;
 	dummy_node->deleted = true;
@@ -114,20 +109,23 @@ bool CatalogSet::StartChain(CatalogTransaction transaction, const string &name,
 }
 
 bool CatalogSet::VerifyVacancy(CatalogTransaction transaction, CatalogEntry &entry) {
-	// if it does, we have to check version numbers
 	if (HasConflict(transaction, entry.timestamp)) {
-		// current version has been written to by a currently active
-		// transaction
+		// A transaction that is not visible to our snapshot has already made a change to this entry.
+		// Because of Catalog limitations we can't push our change on this, even if the change was made by another
+		// active transaction that might end up being aborted. So we have to cancel this transaction.
 		throw TransactionException("Catalog write-write conflict on create with \"%s\"", entry.name);
 	}
-	// there is a current version that has been committed
-	// if it has not been deleted there is a conflict
+	// The entry is visible to our snapshot
 	if (!entry.deleted) {
 		return false;
 	}
 	return true;
 }
 
+static bool IsDependencyEntry(CatalogEntry &entry) {
+	return entry.type == CatalogType::DEPENDENCY_ENTRY;
+}
+
 void CatalogSet::CheckCatalogEntryInvariants(CatalogEntry &value, const string &name) {
 	if (value.internal && !catalog.IsSystemCatalog() && name != DEFAULT_SCHEMA) {
 		throw InternalException("Attempting to create internal entry \"%s\" in non-system catalog - internal entries "
@@ -160,7 +158,7 @@ optional_ptr CatalogSet::CreateCommittedEntry(unique_ptrset = this;
-	// Set the timestamp to the first committed transaction
+	// Give the entry commit id 0, so it is visible to all transactions
 	entry->timestamp = 0;
 	map.AddEntry(std::move(entry));
 
@@ -176,7 +174,7 @@ bool CatalogSet::CreateEntryInternal(CatalogTransaction transaction, const strin
 			return false;
 		}
 	} else if (should_be_empty) {
-		// Verify that the chain is deleted, not altered by another transaction
+		// Verify that the entry is deleted, not altered by another transaction
 		if (!VerifyVacancy(transaction, *entry_value)) {
 			return false;
 		}
@@ -185,7 +183,7 @@ bool CatalogSet::CreateEntryInternal(CatalogTransaction transaction, const strin
 	// Finally add the new entry to the chain
 	auto value_ptr = value.get();
 	map.UpdateEntry(std::move(value));
-	// push the old entry in the undo buffer for this transaction
+	// Push the old entry in the undo buffer for this transaction, so it can be restored in the event of failure
 	if (transaction.transaction) {
 		DuckTransactionManager::Get(GetCatalog().GetAttached())
 		    .PushCatalogEntry(*transaction.transaction, value_ptr->Child());
@@ -197,11 +195,10 @@ bool CatalogSet::CreateEntry(CatalogTransaction transaction, const string &name,
                              const LogicalDependencyList &dependencies) {
 	CheckCatalogEntryInvariants(*value, name);
 
-	// Set the timestamp to the timestamp of the current transaction
+	// Mark this entry as being created by the current active transaction
 	value->timestamp = transaction.transaction_id;
 	value->set = this;
-	// now add the dependency set of this object to the dependency manager
-	catalog.GetDependencyManager().AddObject(transaction, *value, dependencies);
+	catalog.GetDependencyManager()->AddObject(transaction, *value, dependencies);
 
 	// lock the catalog for writing
 	lock_guard write_lock(catalog.GetWriteLock());
@@ -216,24 +213,24 @@ bool CatalogSet::CreateEntry(ClientContext &context, const string &name, unique_
 	return CreateEntry(catalog.GetCatalogTransaction(context), name, std::move(value), dependencies);
 }
 
+//! This method is used to retrieve an entry for the purpose of making a new version, through an alter/drop/create
 optional_ptr CatalogSet::GetEntryInternal(CatalogTransaction transaction, const string &name) {
 	auto entry_value = map.GetEntry(name);
 	if (!entry_value) {
-		// the entry does not exist, check if we can create a default entry
 		return nullptr;
 	}
 	auto &catalog_entry = *entry_value;
 
-	// if it does: we have to retrieve the entry and to check version numbers
+	// Check if this entry is visible to our snapshot
 	if (HasConflict(transaction, catalog_entry.timestamp)) {
-		// current version has been written to by a currently active
-		// transaction
+		// We intend to create a new version of the entry.
+		// Another transaction has already made an edit to this catalog entry, because of limitations in the Catalog we
+		// can't create an edit alongside this even if the other transaction might end up getting aborted. So we have to
+		// abort the transaction.
 		throw TransactionException("Catalog write-write conflict on alter with \"%s\"", catalog_entry.name);
 	}
-	// there is a current version that has been committed by this transaction
+	// The entry is visible to our snapshot, check if it's deleted
 	if (catalog_entry.deleted) {
-		// if the entry was already deleted, it now does not exist anymore
-		// so we return that we could not find it
 		return nullptr;
 	}
 	return &catalog_entry;
@@ -262,7 +259,7 @@ bool CatalogSet::AlterOwnership(CatalogTransaction transaction, ChangeOwnershipI
 		throw CatalogException("CatalogElement \"%s.%s\" does not exist!", info.owner_schema, info.owner_name);
 	}
 	write_lock.unlock();
-	catalog.GetDependencyManager().AddOwnership(transaction, *owner_entry, *entry);
+	catalog.GetDependencyManager()->AddOwnership(transaction, *owner_entry, *entry);
 	return true;
 }
 
@@ -371,7 +368,7 @@ bool CatalogSet::AlterEntry(CatalogTransaction transaction, const string &name,
 	write_lock.unlock();
 
 	// Check the dependency manager to verify that there are no conflicting dependencies with this alter
-	catalog.GetDependencyManager().AlterObject(transaction, *entry, *new_entry, alter_info);
+	catalog.GetDependencyManager()->AlterObject(transaction, *entry, *new_entry, alter_info);
 
 	return true;
 }
@@ -388,7 +385,7 @@ bool CatalogSet::DropDependencies(CatalogTransaction transaction, const string &
 	// check any dependencies of this object
 	D_ASSERT(entry->ParentCatalog().IsDuckCatalog());
 	auto &duck_catalog = entry->ParentCatalog().Cast();
-	duck_catalog.GetDependencyManager().DropObject(transaction, *entry, cascade);
+	duck_catalog.GetDependencyManager()->DropObject(transaction, *entry, cascade);
 	return true;
 }
 
@@ -434,6 +431,35 @@ bool CatalogSet::DropEntry(ClientContext &context, const string &name, bool casc
 	return DropEntry(catalog.GetCatalogTransaction(context), name, cascade, allow_drop_internal);
 }
 
+//! Verify that the object referenced by the dependency still exists when we commit the dependency
+void CatalogSet::VerifyExistenceOfDependency(transaction_t commit_id, CatalogEntry &entry) {
+	auto &duck_catalog = GetCatalog();
+
+	// Make sure that we don't see any uncommitted changes
+	auto transaction_id = MAX_TRANSACTION_ID;
+	// This will allow us to see all committed changes made before this COMMIT happened
+	auto tx_start_time = commit_id;
+	CatalogTransaction commit_transaction(duck_catalog.GetDatabase(), transaction_id, tx_start_time);
+
+	D_ASSERT(entry.type == CatalogType::DEPENDENCY_ENTRY);
+	auto &dep = entry.Cast();
+	duck_catalog.GetDependencyManager()->VerifyExistence(commit_transaction, dep);
+}
+
+//! Verify that no dependencies creations were committed since our transaction started, that reference the entry we're
+//! dropping
+void CatalogSet::CommitDrop(transaction_t commit_id, transaction_t start_time, CatalogEntry &entry) {
+	auto &duck_catalog = GetCatalog();
+
+	// Make sure that we don't see any uncommitted changes
+	auto transaction_id = MAX_TRANSACTION_ID;
+	// This will allow us to see all committed changes made before this COMMIT happened
+	auto tx_start_time = commit_id;
+	CatalogTransaction commit_transaction(duck_catalog.GetDatabase(), transaction_id, tx_start_time);
+
+	duck_catalog.GetDependencyManager()->VerifyCommitDrop(commit_transaction, start_time, entry);
+}
+
 DuckCatalog &CatalogSet::GetCatalog() {
 	return catalog;
 }
@@ -467,6 +493,11 @@ bool CatalogSet::HasConflict(CatalogTransaction transaction, transaction_t times
 	return CreatedByOtherActiveTransaction(transaction, timestamp) || CommittedAfterStarting(transaction, timestamp);
 }
 
+bool CatalogSet::IsCommitted(transaction_t timestamp) {
+	//! FIXME: `transaction_t` itself should be a class that has these methods
+	return timestamp < TRANSACTION_ID_START;
+}
+
 bool CatalogSet::UseTimestamp(CatalogTransaction transaction, transaction_t timestamp) {
 	if (timestamp == transaction.transaction_id) {
 		// we created this version
@@ -480,13 +511,20 @@ bool CatalogSet::UseTimestamp(CatalogTransaction transaction, transaction_t time
 }
 
 CatalogEntry &CatalogSet::GetEntryForTransaction(CatalogTransaction transaction, CatalogEntry ¤t) {
+	bool visible;
+	return GetEntryForTransaction(transaction, current, visible);
+}
+
+CatalogEntry &CatalogSet::GetEntryForTransaction(CatalogTransaction transaction, CatalogEntry ¤t, bool &visible) {
 	reference entry(current);
 	while (entry.get().HasChild()) {
 		if (UseTimestamp(transaction, entry.get().timestamp)) {
-			break;
+			visible = true;
+			return entry.get();
 		}
 		entry = entry.get().Child();
 	}
+	visible = false;
 	return entry.get();
 }
 
@@ -554,9 +592,14 @@ CatalogSet::EntryLookup CatalogSet::GetEntryDetailed(CatalogTransaction transact
 		// check the version numbers
 
 		auto &catalog_entry = *entry_value;
-		auto ¤t = GetEntryForTransaction(transaction, catalog_entry);
+		bool visible;
+		auto ¤t = GetEntryForTransaction(transaction, catalog_entry, visible);
 		if (current.deleted) {
-			return EntryLookup {nullptr, EntryLookup::FailureReason::DELETED};
+			if (!visible) {
+				return EntryLookup {nullptr, EntryLookup::FailureReason::INVISIBLE};
+			} else {
+				return EntryLookup {nullptr, EntryLookup::FailureReason::DELETED};
+			}
 		}
 		D_ASSERT(StringUtil::CIEquals(name, current.name));
 		return EntryLookup {¤t, EntryLookup::FailureReason::SUCCESS};
@@ -590,6 +633,7 @@ void CatalogSet::Undo(CatalogEntry &entry) {
 
 	// i.e. we have to place (entry) as (entry->parent) again
 	auto &to_be_removed_node = entry.Parent();
+	to_be_removed_node.Rollback(entry);
 
 	D_ASSERT(StringUtil::CIEquals(entry.name, to_be_removed_node.name));
 	if (!to_be_removed_node.HasParent()) {
diff --git a/src/duckdb/src/catalog/default/default_functions.cpp b/src/duckdb/src/catalog/default/default_functions.cpp
index b4f7deca..ecffc34f 100644
--- a/src/duckdb/src/catalog/default/default_functions.cpp
+++ b/src/duckdb/src/catalog/default/default_functions.cpp
@@ -12,7 +12,7 @@ namespace duckdb {
 static const DefaultMacro internal_macros[] = {
 	{DEFAULT_SCHEMA, "current_role", {nullptr}, {{nullptr, nullptr}}, "'duckdb'"},                       // user name of current execution context
 	{DEFAULT_SCHEMA, "current_user", {nullptr}, {{nullptr, nullptr}}, "'duckdb'"},                       // user name of current execution context
-	{DEFAULT_SCHEMA, "current_catalog", {nullptr}, {{nullptr, nullptr}}, "current_database()"},          // name of current database (called "catalog" in the SQL standard)
+	{DEFAULT_SCHEMA, "current_catalog", {nullptr}, {{nullptr, nullptr}}, "main.current_database()"},          // name of current database (called "catalog" in the SQL standard)
 	{DEFAULT_SCHEMA, "user", {nullptr}, {{nullptr, nullptr}}, "current_user"},                           // equivalent to current_user
 	{DEFAULT_SCHEMA, "session_user", {nullptr}, {{nullptr, nullptr}}, "'duckdb'"},                       // session user name
 	{"pg_catalog", "inet_client_addr", {nullptr}, {{nullptr, nullptr}}, "NULL"},                       // address of the remote connection
@@ -27,10 +27,10 @@ static const DefaultMacro internal_macros[] = {
 
 	{"pg_catalog", "pg_typeof", {"expression", nullptr}, {{nullptr, nullptr}}, "lower(typeof(expression))"},  // get the data type of any value
 
-	{"pg_catalog", "current_database", {nullptr}, {{nullptr, nullptr}}, "current_database()"},  	    // name of current database (called "catalog" in the SQL standard)
-	{"pg_catalog", "current_query", {nullptr}, {{nullptr, nullptr}}, "current_query()"},  	        // the currently executing query (NULL if not inside a plpgsql function)
-	{"pg_catalog", "current_schema", {nullptr}, {{nullptr, nullptr}}, "current_schema()"},  	        // name of current schema
-	{"pg_catalog", "current_schemas", {"include_implicit"}, {{nullptr, nullptr}}, "current_schemas(include_implicit)"},  	// names of schemas in search path
+	{"pg_catalog", "current_database", {nullptr}, {{nullptr, nullptr}}, "system.main.current_database()"},  	    // name of current database (called "catalog" in the SQL standard)
+	{"pg_catalog", "current_query", {nullptr}, {{nullptr, nullptr}}, "system.main.current_query()"},  	        // the currently executing query (NULL if not inside a plpgsql function)
+	{"pg_catalog", "current_schema", {nullptr}, {{nullptr, nullptr}}, "system.main.current_schema()"},  	        // name of current schema
+	{"pg_catalog", "current_schemas", {"include_implicit"}, {{nullptr, nullptr}}, "system.main.current_schemas(include_implicit)"},  	// names of schemas in search path
 
 	// privilege functions
 	{"pg_catalog", "has_any_column_privilege", {"table", "privilege", nullptr}, {{nullptr, nullptr}}, "true"},  //boolean  //does current user have privilege for any column of table
@@ -63,7 +63,7 @@ static const DefaultMacro internal_macros[] = {
 	{"pg_catalog", "pg_get_expr", {"pg_node_tree", "relation_oid", nullptr}, {{nullptr, nullptr}}, "pg_node_tree"},
 	{"pg_catalog", "format_pg_type", {"logical_type", "type_name", nullptr}, {{nullptr, nullptr}}, "case upper(logical_type) when 'FLOAT' then 'float4' when 'DOUBLE' then 'float8' when 'DECIMAL' then 'numeric' when 'ENUM' then lower(type_name) when 'VARCHAR' then 'varchar' when 'BLOB' then 'bytea' when 'TIMESTAMP' then 'timestamp' when 'TIME' then 'time' when 'TIMESTAMP WITH TIME ZONE' then 'timestamptz' when 'TIME WITH TIME ZONE' then 'timetz' when 'SMALLINT' then 'int2' when 'INTEGER' then 'int4' when 'BIGINT' then 'int8' when 'BOOLEAN' then 'bool' else lower(logical_type) end"},
 	{"pg_catalog", "format_type", {"type_oid", "typemod", nullptr}, {{nullptr, nullptr}}, "(select format_pg_type(logical_type, type_name) from duckdb_types() t where t.type_oid=type_oid) || case when typemod>0 then concat('(', typemod//1000, ',', typemod%1000, ')') else '' end"},
-	{"pg_catalog", "map_to_pg_oid", {"type_name", nullptr}, {{nullptr, nullptr}}, "case type_name when 'bool' then 16 when 'int16' then 21 when 'int' then 23 when 'bigint' then 20 when 'date' then 1082 when 'time' then 1083 when 'datetime' then 1114 when 'dec' then 1700 when 'float' then 700 when 'double' then 701 when 'bpchar' then 1043 when 'binary' then 17 when 'interval' then 1186 when 'timestamptz' then 1184 when 'timetz' then 1266 when 'bit' then 1560 when 'guid' then 2950 else null end"}, // map duckdb_oid to pg_oid. If no corresponding type, return null 
+	{"pg_catalog", "map_to_pg_oid", {"type_name", nullptr}, {{nullptr, nullptr}}, "case type_name when 'bool' then 16 when 'int16' then 21 when 'int' then 23 when 'bigint' then 20 when 'date' then 1082 when 'time' then 1083 when 'datetime' then 1114 when 'dec' then 1700 when 'float' then 700 when 'double' then 701 when 'bpchar' then 1043 when 'binary' then 17 when 'interval' then 1186 when 'timestamptz' then 1184 when 'timetz' then 1266 when 'bit' then 1560 when 'guid' then 2950 else null end"}, // map duckdb_oid to pg_oid. If no corresponding type, return null
 
 	{"pg_catalog", "pg_has_role", {"user", "role", "privilege", nullptr}, {{nullptr, nullptr}}, "true"},  //boolean  //does user have privilege for role
 	{"pg_catalog", "pg_has_role", {"role", "privilege", nullptr}, {{nullptr, nullptr}}, "true"},  //boolean  //does current user have privilege for role
@@ -102,12 +102,11 @@ static const DefaultMacro internal_macros[] = {
 	{DEFAULT_SCHEMA, "array_to_string", {"arr", "sep", nullptr}, {{nullptr, nullptr}}, "list_aggr(arr::varchar[], 'string_agg', sep)"},
 	// Test default parameters
 	{DEFAULT_SCHEMA, "array_to_string_comma_default", {"arr", nullptr}, {{"sep", "','"}, {nullptr, nullptr}}, "list_aggr(arr::varchar[], 'string_agg', sep)"},
-	
+
 	{DEFAULT_SCHEMA, "generate_subscripts", {"arr", "dim", nullptr}, {{nullptr, nullptr}}, "unnest(generate_series(1, array_length(arr, dim)))"},
 	{DEFAULT_SCHEMA, "fdiv", {"x", "y", nullptr}, {{nullptr, nullptr}}, "floor(x/y)"},
 	{DEFAULT_SCHEMA, "fmod", {"x", "y", nullptr}, {{nullptr, nullptr}}, "(x-y*floor(x/y))"},
-	{DEFAULT_SCHEMA, "count_if", {"l", nullptr}, {{nullptr, nullptr}}, "sum(if(l, 1, 0))"},
-	{DEFAULT_SCHEMA, "split_part", {"string", "delimiter", "position", nullptr}, {{nullptr, nullptr}}, "coalesce(string_split(string, delimiter)[position],'')"},
+	{DEFAULT_SCHEMA, "split_part", {"string", "delimiter", "position", nullptr}, {{nullptr, nullptr}}, "if(string IS NOT NULL AND delimiter IS NOT NULL AND position IS NOT NULL, coalesce(string_split(string, delimiter)[position],''), NULL)"},
 	{DEFAULT_SCHEMA, "geomean", {"x", nullptr}, {{nullptr, nullptr}}, "exp(avg(ln(x)))"},
 	{DEFAULT_SCHEMA, "geometric_mean", {"x", nullptr}, {{nullptr, nullptr}}, "geomean(x)"},
 
@@ -161,6 +160,9 @@ static const DefaultMacro internal_macros[] = {
 
 	// date functions
 	{DEFAULT_SCHEMA, "date_add", {"date", "interval", nullptr}, {{nullptr, nullptr}}, "date + interval"},
+	{DEFAULT_SCHEMA, "current_date", {nullptr}, {{nullptr, nullptr}}, "current_timestamp::DATE"},
+	{DEFAULT_SCHEMA, "today", {nullptr}, {{nullptr, nullptr}}, "current_timestamp::DATE"},
+	{DEFAULT_SCHEMA, "get_current_time", {nullptr}, {{nullptr, nullptr}}, "current_timestamp::TIMETZ"},
 
 	// regexp functions
 	{DEFAULT_SCHEMA, "regexp_split_to_table", {"text", "pattern", nullptr}, {{nullptr, nullptr}}, "unnest(string_split_regex(text, pattern))"},
diff --git a/src/duckdb/src/catalog/dependency_manager.cpp b/src/duckdb/src/catalog/dependency_manager.cpp
index 51c60d3a..4fcb4d4d 100644
--- a/src/duckdb/src/catalog/dependency_manager.cpp
+++ b/src/duckdb/src/catalog/dependency_manager.cpp
@@ -433,17 +433,86 @@ string DependencyManager::CollectDependents(CatalogTransaction transaction, cata
 	return result;
 }
 
-void DependencyManager::DropObject(CatalogTransaction transaction, CatalogEntry &object, bool cascade) {
+void DependencyManager::VerifyExistence(CatalogTransaction transaction, DependencyEntry &object) {
+	auto &subject = object.Subject();
+
+	CatalogEntryInfo info;
+	if (subject.flags.IsOwnership()) {
+		info = object.SourceInfo();
+	} else {
+		info = object.EntryInfo();
+	}
+
+	auto &type = info.type;
+	auto &schema = info.schema;
+	auto &name = info.name;
+
+	auto &duck_catalog = catalog.Cast();
+	auto &schema_catalog_set = duck_catalog.GetSchemaCatalogSet();
+
+	CatalogSet::EntryLookup lookup_result;
+	lookup_result = schema_catalog_set.GetEntryDetailed(transaction, schema);
+
+	if (type != CatalogType::SCHEMA_ENTRY && lookup_result.result) {
+		auto &schema_entry = lookup_result.result->Cast();
+		lookup_result = schema_entry.GetEntryDetailed(transaction, type, name);
+	}
+
+	if (lookup_result.reason == CatalogSet::EntryLookup::FailureReason::DELETED) {
+		throw DependencyException("Could not commit creation of dependency, subject \"%s\" has been deleted",
+		                          object.SourceInfo().name);
+	}
+}
+
+void DependencyManager::VerifyCommitDrop(CatalogTransaction transaction, transaction_t start_time,
+                                         CatalogEntry &object) {
 	if (IsSystemEntry(object)) {
-		// Don't do anything for this
 		return;
 	}
-
 	auto info = GetLookupProperties(object);
-	// Check if there are any entries that block the DROP because they still depend on the object
-	catalog_entry_set_t to_drop;
+	ScanDependents(transaction, info, [&](DependencyEntry &dep) {
+		auto dep_committed_at = dep.timestamp.load();
+		if (dep_committed_at > start_time) {
+			// In the event of a CASCADE, the dependency drop has not committed yet
+			// so we would be halted by the existence of a dependency we are already dropping unless we check the
+			// timestamp
+			//
+			// Which differentiates between objects that we were already aware of (and will subsequently be dropped) and
+			// objects that were introduced inbetween, which should cause this error:
+			throw DependencyException(
+			    "Could not commit DROP of \"%s\" because a dependency was created after the transaction started",
+			    object.name);
+		}
+	});
+	ScanSubjects(transaction, info, [&](DependencyEntry &dep) {
+		auto dep_committed_at = dep.timestamp.load();
+		if (!dep.Dependent().flags.IsOwnedBy()) {
+			return;
+		}
+		D_ASSERT(dep.Subject().flags.IsOwnership());
+		if (dep_committed_at > start_time) {
+			// Same as above, objects that are owned by the object that is being dropped will be dropped as part of this
+			// transaction. Only objects that were introduced by other transactions, that this transaction could not
+			// see, should cause this error:
+			throw DependencyException(
+			    "Could not commit DROP of \"%s\" because a dependency was created after the transaction started",
+			    object.name);
+		}
+	});
+}
 
+catalog_entry_set_t DependencyManager::CheckDropDependencies(CatalogTransaction transaction, CatalogEntry &object,
+                                                             bool cascade) {
+	if (IsSystemEntry(object)) {
+		// Don't do anything for this
+		return catalog_entry_set_t();
+	}
+
+	catalog_entry_set_t to_drop;
 	catalog_entry_set_t blocking_dependents;
+
+	auto info = GetLookupProperties(object);
+	// Look through all the objects that depend on the 'object'
 	ScanDependents(transaction, info, [&](DependencyEntry &dep) {
 		// It makes no sense to have a schema depend on anything
 		D_ASSERT(dep.EntryInfo().type != CatalogType::SCHEMA_ENTRY);
@@ -467,6 +536,7 @@ void DependencyManager::DropObject(CatalogTransaction transaction, CatalogEntry
 		throw DependencyException(error_string);
 	}
 
+	// Look through all the entries that 'object' depends on
 	ScanSubjects(transaction, info, [&](DependencyEntry &dep) {
 		auto flags = dep.Subject().flags;
 		if (flags.IsOwnership()) {
@@ -475,7 +545,17 @@ void DependencyManager::DropObject(CatalogTransaction transaction, CatalogEntry
 			to_drop.insert(*entry);
 		}
 	});
+	return to_drop;
+}
 
+void DependencyManager::DropObject(CatalogTransaction transaction, CatalogEntry &object, bool cascade) {
+	if (IsSystemEntry(object)) {
+		// Don't do anything for this
+		return;
+	}
+
+	// Check if there are any entries that block the DROP because they still depend on the object
+	auto to_drop = CheckDropDependencies(transaction, object, cascade);
 	CleanupDependencies(transaction, object);
 
 	for (auto &entry : to_drop) {
@@ -485,6 +565,54 @@ void DependencyManager::DropObject(CatalogTransaction transaction, CatalogEntry
 	}
 }
 
+void DependencyManager::ReorderEntries(catalog_entry_vector_t &entries, ClientContext &context) {
+	auto transaction = catalog.GetCatalogTransaction(context);
+	// Read all the entries visible to this snapshot
+	ReorderEntries(entries, transaction);
+}
+
+void DependencyManager::ReorderEntries(catalog_entry_vector_t &entries) {
+	// Read all committed entries
+	CatalogTransaction transaction(catalog.GetDatabase(), TRANSACTION_ID_START - 1, TRANSACTION_ID_START - 1);
+	ReorderEntries(entries, transaction);
+}
+
+void DependencyManager::ReorderEntry(CatalogTransaction transaction, CatalogEntry &entry, catalog_entry_set_t &visited,
+                                     catalog_entry_vector_t &order) {
+	auto &catalog_entry = *LookupEntry(transaction, entry);
+	// We use this in CheckpointManager, it has the highest commit ID, allowing us to read any committed data
+	bool allow_internal = transaction.start_time == TRANSACTION_ID_START - 1;
+	if (visited.count(catalog_entry) || (!allow_internal && catalog_entry.internal)) {
+		// Already seen and ordered appropriately
+		return;
+	}
+
+	// Check if there are any entries that this entry depends on, those are written first
+	catalog_entry_vector_t dependents;
+	auto info = GetLookupProperties(entry);
+	ScanSubjects(transaction, info, [&](DependencyEntry &dep) { dependents.push_back(dep); });
+	for (auto &dep : dependents) {
+		ReorderEntry(transaction, dep, visited, order);
+	}
+
+	// Then write the entry
+	visited.insert(catalog_entry);
+	order.push_back(catalog_entry);
+}
+
+void DependencyManager::ReorderEntries(catalog_entry_vector_t &entries, CatalogTransaction transaction) {
+	catalog_entry_vector_t reordered;
+	catalog_entry_set_t visited;
+	for (auto &entry : entries) {
+		ReorderEntry(transaction, entry, visited, reordered);
+	}
+	// If this would fail, that means there are more entries that we somehow reached through the dependency manager
+	// but those entries should not actually be visible to this transaction
+	D_ASSERT(entries.size() == reordered.size());
+	entries.clear();
+	entries = reordered;
+}
+
 void DependencyManager::AlterObject(CatalogTransaction transaction, CatalogEntry &old_obj, CatalogEntry &new_obj,
                                     AlterInfo &alter_info) {
 	if (IsSystemEntry(new_obj)) {
diff --git a/src/duckdb/src/catalog/duck_catalog.cpp b/src/duckdb/src/catalog/duck_catalog.cpp
index 920740c9..d0b50f7d 100644
--- a/src/duckdb/src/catalog/duck_catalog.cpp
+++ b/src/duckdb/src/catalog/duck_catalog.cpp
@@ -8,9 +8,7 @@
 #include "duckdb/function/built_in_functions.hpp"
 #include "duckdb/main/attached_database.hpp"
 #include "duckdb/transaction/duck_transaction_manager.hpp"
-#ifndef DISABLE_CORE_FUNCTIONS_EXTENSION
-#include "duckdb/core_functions/core_functions.hpp"
-#endif
+#include "duckdb/function/function_list.hpp"
 
 namespace duckdb {
 
@@ -35,13 +33,11 @@ void DuckCatalog::Initialize(bool load_builtin) {
 	CreateSchema(data, info);
 
 	if (load_builtin) {
-		// initialize default functions
 		BuiltinFunctions builtin(data, *this);
 		builtin.Initialize();
 
-#ifndef DISABLE_CORE_FUNCTIONS_EXTENSION
-		CoreFunctions::RegisterFunctions(*this, data);
-#endif
+		// initialize default functions
+		FunctionList::RegisterFunctions(*this, data);
 	}
 
 	Verify();
@@ -51,6 +47,10 @@ bool DuckCatalog::IsDuckCatalog() {
 	return true;
 }
 
+optional_ptr DuckCatalog::GetDependencyManager() {
+	return dependency_manager.get();
+}
+
 //===--------------------------------------------------------------------===//
 // Schema
 //===--------------------------------------------------------------------===//
@@ -61,7 +61,7 @@ optional_ptr DuckCatalog::CreateSchemaInternal(CatalogTransaction
 	if (!schemas->CreateEntry(transaction, info.schema, std::move(entry), dependencies)) {
 		return nullptr;
 	}
-	return (CatalogEntry *)result;
+	return result;
 }
 
 optional_ptr DuckCatalog::CreateSchema(CatalogTransaction transaction, CreateSchemaInfo &info) {
@@ -115,6 +115,10 @@ void DuckCatalog::ScanSchemas(std::function callback
 	schemas->Scan([&](CatalogEntry &entry) { callback(entry.Cast()); });
 }
 
+CatalogSet &DuckCatalog::GetSchemaCatalogSet() {
+	return *schemas;
+}
+
 optional_ptr DuckCatalog::GetSchema(CatalogTransaction transaction, const string &schema_name,
                                                         OnEntryNotFound if_not_found, QueryErrorContext error_context) {
 	D_ASSERT(!schema_name.empty());
diff --git a/src/duckdb/src/common/allocator.cpp b/src/duckdb/src/common/allocator.cpp
index d3ef18bb..97708793 100644
--- a/src/duckdb/src/common/allocator.cpp
+++ b/src/duckdb/src/common/allocator.cpp
@@ -5,6 +5,7 @@
 #include "duckdb/common/exception.hpp"
 #include "duckdb/common/helper.hpp"
 #include "duckdb/common/numeric_utils.hpp"
+#include "duckdb/common/operator/cast_operators.hpp"
 #include "duckdb/common/types/timestamp.hpp"
 
 #include 
@@ -242,12 +243,14 @@ static void MallocTrim(idx_t pad) {
 	static atomic LAST_TRIM_TIMESTAMP_MS {0};
 
 	int64_t last_trim_timestamp_ms = LAST_TRIM_TIMESTAMP_MS.load();
-	const int64_t current_timestamp_ms = Timestamp::GetEpochMs(Timestamp::GetCurrentTimestamp());
+	auto current_ts = Timestamp::GetCurrentTimestamp();
+	auto current_timestamp_ms = Cast::Operation(current_ts).value;
 
 	if (current_timestamp_ms - last_trim_timestamp_ms < TRIM_INTERVAL_MS) {
 		return; // We trimmed less than TRIM_INTERVAL_MS ago
 	}
-	if (!std::atomic_compare_exchange_weak(&LAST_TRIM_TIMESTAMP_MS, &last_trim_timestamp_ms, current_timestamp_ms)) {
+	if (!LAST_TRIM_TIMESTAMP_MS.compare_exchange_strong(last_trim_timestamp_ms, current_timestamp_ms,
+	                                                    std::memory_order_acquire, std::memory_order_relaxed)) {
 		return; // Another thread has updated LAST_TRIM_TIMESTAMP_MS since we loaded it
 	}
 
diff --git a/src/duckdb/src/common/arrow/arrow_appender.cpp b/src/duckdb/src/common/arrow/arrow_appender.cpp
index b478fdb3..632bffc6 100644
--- a/src/duckdb/src/common/arrow/arrow_appender.cpp
+++ b/src/duckdb/src/common/arrow/arrow_appender.cpp
@@ -225,6 +225,7 @@ static void InitializeFunctionPointers(ArrowAppendData &append_data, const Logic
 		break;
 	case LogicalTypeId::BLOB:
 	case LogicalTypeId::BIT:
+	case LogicalTypeId::VARINT:
 		if (append_data.options.arrow_offset_size == ArrowOffsetSize::LARGE) {
 			InitializeAppenderForType>(append_data);
 		} else {
diff --git a/src/duckdb/src/common/arrow/arrow_converter.cpp b/src/duckdb/src/common/arrow/arrow_converter.cpp
index 3524dc89..582daf34 100644
--- a/src/duckdb/src/common/arrow/arrow_converter.cpp
+++ b/src/duckdb/src/common/arrow/arrow_converter.cpp
@@ -127,7 +127,7 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
 	case LogicalTypeId::HUGEINT: {
 		if (options.arrow_lossless_conversion) {
 			child.format = "w:16";
-			auto schema_metadata = ArrowSchemaMetadata::MetadataFromName("duckdb.hugeint");
+			auto schema_metadata = ArrowSchemaMetadata::DuckDBInternalType("hugeint");
 			root_holder.metadata_info.emplace_back(schema_metadata.SerializeMetadata());
 			child.metadata = root_holder.metadata_info.back().get();
 		} else {
@@ -137,7 +137,18 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
 	}
 	case LogicalTypeId::UHUGEINT: {
 		child.format = "w:16";
-		auto schema_metadata = ArrowSchemaMetadata::MetadataFromName("duckdb.uhugeint");
+		auto schema_metadata = ArrowSchemaMetadata::DuckDBInternalType("uhugeint");
+		root_holder.metadata_info.emplace_back(schema_metadata.SerializeMetadata());
+		child.metadata = root_holder.metadata_info.back().get();
+		break;
+	}
+	case LogicalTypeId::VARINT: {
+		if (options.arrow_offset_size == ArrowOffsetSize::LARGE) {
+			child.format = "Z";
+		} else {
+			child.format = "z";
+		}
+		auto schema_metadata = ArrowSchemaMetadata::DuckDBInternalType("varint");
 		root_holder.metadata_info.emplace_back(schema_metadata.SerializeMetadata());
 		child.metadata = root_holder.metadata_info.back().get();
 		break;
@@ -149,7 +160,7 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
 		if (options.arrow_lossless_conversion) {
 			// This is a canonical extension, hence needs the "arrow." prefix
 			child.format = "w:16";
-			auto schema_metadata = ArrowSchemaMetadata::MetadataFromName("arrow.uuid");
+			auto schema_metadata = ArrowSchemaMetadata::ArrowCanonicalType("arrow.uuid");
 			root_holder.metadata_info.emplace_back(schema_metadata.SerializeMetadata());
 			child.metadata = root_holder.metadata_info.back().get();
 		} else {
@@ -166,8 +177,8 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
 		break;
 	}
 	case LogicalTypeId::VARCHAR:
-		if (type.IsJSONType()) {
-			auto schema_metadata = ArrowSchemaMetadata::MetadataFromName("arrow.json");
+		if (type.IsJSONType() && options.arrow_lossless_conversion) {
+			auto schema_metadata = ArrowSchemaMetadata::ArrowCanonicalType("arrow.json");
 			root_holder.metadata_info.emplace_back(schema_metadata.SerializeMetadata());
 			child.metadata = root_holder.metadata_info.back().get();
 		}
@@ -187,7 +198,7 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
 	case LogicalTypeId::TIME_TZ: {
 		if (options.arrow_lossless_conversion) {
 			child.format = "w:8";
-			auto schema_metadata = ArrowSchemaMetadata::MetadataFromName("duckdb.time_tz");
+			auto schema_metadata = ArrowSchemaMetadata::DuckDBInternalType("time_tz");
 			root_holder.metadata_info.emplace_back(schema_metadata.SerializeMetadata());
 			child.metadata = root_holder.metadata_info.back().get();
 		} else {
@@ -245,7 +256,7 @@ void SetArrowFormat(DuckDBArrowSchemaHolder &root_holder, ArrowSchema &child, co
 			child.format = "z";
 		}
 		if (options.arrow_lossless_conversion) {
-			auto schema_metadata = ArrowSchemaMetadata::MetadataFromName("duckdb.bit");
+			auto schema_metadata = ArrowSchemaMetadata::DuckDBInternalType("bit");
 			root_holder.metadata_info.emplace_back(schema_metadata.SerializeMetadata());
 			child.metadata = root_holder.metadata_info.back().get();
 		}
diff --git a/src/duckdb/src/common/arrow/arrow_merge_event.cpp b/src/duckdb/src/common/arrow/arrow_merge_event.cpp
index e899d818..1315ad1a 100644
--- a/src/duckdb/src/common/arrow/arrow_merge_event.cpp
+++ b/src/duckdb/src/common/arrow/arrow_merge_event.cpp
@@ -1,4 +1,5 @@
 #include "duckdb/common/arrow/arrow_merge_event.hpp"
+#include "duckdb/common/arrow/arrow_util.hpp"
 #include "duckdb/storage/storage_info.hpp"
 
 namespace duckdb {
@@ -86,7 +87,7 @@ void ArrowMergeEvent::Schedule() {
 		idx_t tuples_for_task = 0;
 		idx_t start_index = transformer.GetIndex();
 		idx_t end_index = start_index;
-		while (tuples_for_task < Storage::ROW_GROUP_SIZE) {
+		while (tuples_for_task < DEFAULT_ROW_GROUP_SIZE) {
 			idx_t batch_size;
 			if (!transformer.TryGetNextBatchSize(batch_size)) {
 				finished = true;
diff --git a/src/duckdb/src/common/arrow/arrow_util.cpp b/src/duckdb/src/common/arrow/arrow_util.cpp
new file mode 100644
index 00000000..423a6dd2
--- /dev/null
+++ b/src/duckdb/src/common/arrow/arrow_util.cpp
@@ -0,0 +1,60 @@
+#include "duckdb/common/arrow/arrow_util.hpp"
+#include "duckdb/common/arrow/arrow_appender.hpp"
+#include "duckdb/common/types/data_chunk.hpp"
+
+namespace duckdb {
+
+bool ArrowUtil::TryFetchChunk(ChunkScanState &scan_state, ClientProperties options, idx_t batch_size, ArrowArray *out,
+                              idx_t &count, ErrorData &error) {
+	count = 0;
+	ArrowAppender appender(scan_state.Types(), batch_size, std::move(options));
+	auto remaining_tuples_in_chunk = scan_state.RemainingInChunk();
+	if (remaining_tuples_in_chunk) {
+		// We start by scanning the non-finished current chunk
+		idx_t cur_consumption = MinValue(remaining_tuples_in_chunk, batch_size);
+		count += cur_consumption;
+		auto ¤t_chunk = scan_state.CurrentChunk();
+		appender.Append(current_chunk, scan_state.CurrentOffset(), scan_state.CurrentOffset() + cur_consumption,
+		                current_chunk.size());
+		scan_state.IncreaseOffset(cur_consumption);
+	}
+	while (count < batch_size) {
+		if (!scan_state.LoadNextChunk(error)) {
+			if (scan_state.HasError()) {
+				error = scan_state.GetError();
+			}
+			return false;
+		}
+		if (scan_state.ChunkIsEmpty()) {
+			// The scan was successful, but an empty chunk was returned
+			break;
+		}
+		auto ¤t_chunk = scan_state.CurrentChunk();
+		if (scan_state.Finished() || current_chunk.size() == 0) {
+			break;
+		}
+		// The amount we still need to append into this chunk
+		auto remaining = batch_size - count;
+
+		// The amount remaining, capped by the amount left in the current chunk
+		auto to_append_to_batch = MinValue(remaining, scan_state.RemainingInChunk());
+		appender.Append(current_chunk, 0, to_append_to_batch, current_chunk.size());
+		count += to_append_to_batch;
+		scan_state.IncreaseOffset(to_append_to_batch);
+	}
+	if (count > 0) {
+		*out = appender.Finalize();
+	}
+	return true;
+}
+
+idx_t ArrowUtil::FetchChunk(ChunkScanState &scan_state, ClientProperties options, idx_t chunk_size, ArrowArray *out) {
+	ErrorData error;
+	idx_t result_count;
+	if (!TryFetchChunk(scan_state, std::move(options), chunk_size, out, result_count, error)) {
+		error.Throw();
+	}
+	return result_count;
+}
+
+} // namespace duckdb
diff --git a/src/duckdb/src/common/arrow/arrow_wrapper.cpp b/src/duckdb/src/common/arrow/arrow_wrapper.cpp
index 0f0613bc..2d17076f 100644
--- a/src/duckdb/src/common/arrow/arrow_wrapper.cpp
+++ b/src/duckdb/src/common/arrow/arrow_wrapper.cpp
@@ -1,4 +1,5 @@
 #include "duckdb/common/arrow/arrow_wrapper.hpp"
+#include "duckdb/common/arrow/arrow_util.hpp"
 #include "duckdb/common/arrow/arrow_converter.hpp"
 
 #include "duckdb/common/assert.hpp"
@@ -176,57 +177,4 @@ ResultArrowArrayStreamWrapper::ResultArrowArrayStreamWrapper(unique_ptr 0) {
-		*out = appender.Finalize();
-	}
-	return true;
-}
-
-idx_t ArrowUtil::FetchChunk(ChunkScanState &scan_state, ClientProperties options, idx_t chunk_size, ArrowArray *out) {
-	ErrorData error;
-	idx_t result_count;
-	if (!TryFetchChunk(scan_state, std::move(options), chunk_size, out, result_count, error)) {
-		error.Throw();
-	}
-	return result_count;
-}
-
 } // namespace duckdb
diff --git a/src/duckdb/src/common/arrow/schema_metadata.cpp b/src/duckdb/src/common/arrow/schema_metadata.cpp
index acbf75c5..836f89f2 100644
--- a/src/duckdb/src/common/arrow/schema_metadata.cpp
+++ b/src/duckdb/src/common/arrow/schema_metadata.cpp
@@ -1,6 +1,7 @@
 #include "duckdb/common/arrow/schema_metadata.hpp"
 
 namespace duckdb {
+
 ArrowSchemaMetadata::ArrowSchemaMetadata(const char *metadata) {
 	if (metadata) {
 		// Read the number of key-value pairs (int32)
@@ -27,33 +28,62 @@ ArrowSchemaMetadata::ArrowSchemaMetadata(const char *metadata) {
 			// Read the value
 			const std::string value(metadata, static_cast(value_length));
 			metadata += value_length;
-			metadata_map[key] = value;
+			schema_metadata_map[key] = value;
 		}
 	}
+	extension_metadata_map = StringUtil::ParseJSONMap(schema_metadata_map[ARROW_METADATA_KEY]);
 }
 
 void ArrowSchemaMetadata::AddOption(const string &key, const string &value) {
-	metadata_map[key] = value;
+	schema_metadata_map[key] = value;
 }
 string ArrowSchemaMetadata::GetOption(const string &key) const {
-	return metadata_map.at(key);
+	auto it = schema_metadata_map.find(key);
+	if (it != schema_metadata_map.end()) {
+		return it->second;
+	} else {
+		return "";
+	}
 }
 
 string ArrowSchemaMetadata::GetExtensionName() const {
 	return GetOption(ARROW_EXTENSION_NAME);
 }
 
-ArrowSchemaMetadata ArrowSchemaMetadata::MetadataFromName(const string &extension_name) {
+ArrowSchemaMetadata ArrowSchemaMetadata::ArrowCanonicalType(const string &extension_name) {
+	ArrowSchemaMetadata metadata;
+	metadata.AddOption(ARROW_EXTENSION_NAME, extension_name);
+	metadata.AddOption(ARROW_METADATA_KEY, "");
+	return metadata;
+}
+
+ArrowSchemaMetadata ArrowSchemaMetadata::DuckDBInternalType(const string &type_name) {
 	ArrowSchemaMetadata metadata;
-	metadata.AddOption(ArrowSchemaMetadata::ARROW_EXTENSION_NAME, extension_name);
-	metadata.AddOption(ArrowSchemaMetadata::ARROW_METADATA_KEY, "");
+	metadata.AddOption(ARROW_EXTENSION_NAME, ARROW_EXTENSION_NON_CANONICAL);
+	// We have to set the metadata key with type_name and vendor_name.
+	metadata.extension_metadata_map["vendor_name"] = "DuckDB";
+	metadata.extension_metadata_map["type_name"] = type_name;
+	metadata.AddOption(ARROW_METADATA_KEY, StringUtil::ToJSONMap(metadata.extension_metadata_map));
 	return metadata;
 }
 
-bool ArrowSchemaMetadata::HasExtension() {
-	if (metadata_map.find(ARROW_EXTENSION_NAME) == metadata_map.end()) {
+bool ArrowSchemaMetadata::IsNonCanonicalType(const string &type, const string &vendor) const {
+	if (schema_metadata_map.find(ARROW_EXTENSION_NAME) == schema_metadata_map.end()) {
 		return false;
 	}
+	if (schema_metadata_map.find(ARROW_EXTENSION_NAME)->second != ARROW_EXTENSION_NON_CANONICAL) {
+		return false;
+	}
+	if (extension_metadata_map.find("type_name") == extension_metadata_map.end() ||
+	    extension_metadata_map.find("vendor_name") == extension_metadata_map.end()) {
+		return false;
+	}
+	auto vendor_name = extension_metadata_map.find("vendor_name")->second;
+	auto type_name = extension_metadata_map.find("type_name")->second;
+	return vendor_name == vendor && type_name == type;
+}
+
+bool ArrowSchemaMetadata::HasExtension() const {
 	auto arrow_extension = GetOption(ArrowSchemaMetadata::ARROW_EXTENSION_NAME);
 	// FIXME: We are currently ignoring the ogc extensions
 	return !arrow_extension.empty() && !StringUtil::StartsWith(arrow_extension, "ogc");
@@ -63,7 +93,7 @@ unsafe_unique_array ArrowSchemaMetadata::SerializeMetadata() const {
 	// First we have to figure out the total size:
 	// 1. number of key-value pairs (int32)
 	idx_t total_size = sizeof(int32_t);
-	for (const auto &option : metadata_map) {
+	for (const auto &option : schema_metadata_map) {
 		// 2. Length of the key and value (2 * int32)
 		total_size += 2 * sizeof(int32_t);
 		// 3. Length of key
@@ -74,11 +104,11 @@ unsafe_unique_array ArrowSchemaMetadata::SerializeMetadata() const {
 	auto metadata_array_ptr = make_unsafe_uniq_array(total_size);
 	auto metadata_ptr = metadata_array_ptr.get();
 	// 1. number of key-value pairs (int32)
-	const idx_t map_size = metadata_map.size();
+	const idx_t map_size = schema_metadata_map.size();
 	memcpy(metadata_ptr, &map_size, sizeof(int32_t));
 	metadata_ptr += sizeof(int32_t);
 	// Iterate through each key-value pair in the map
-	for (const auto &pair : metadata_map) {
+	for (const auto &pair : schema_metadata_map) {
 		const std::string &key = pair.first;
 		idx_t key_size = key.size();
 		// Length of the key (int32)
diff --git a/src/duckdb/src/common/bind_helpers.cpp b/src/duckdb/src/common/bind_helpers.cpp
index 2d8a9f32..b618b797 100644
--- a/src/duckdb/src/common/bind_helpers.cpp
+++ b/src/duckdb/src/common/bind_helpers.cpp
@@ -11,7 +11,7 @@ namespace duckdb {
 
 Value ConvertVectorToValue(vector set) {
 	if (set.empty()) {
-		return Value::EMPTYLIST(LogicalType::BOOLEAN);
+		return Value::LIST(LogicalType::BOOLEAN, std::move(set));
 	}
 	return Value::LIST(std::move(set));
 }
diff --git a/src/duckdb/src/common/box_renderer.cpp b/src/duckdb/src/common/box_renderer.cpp
index 404bb32f..f85cf622 100644
--- a/src/duckdb/src/common/box_renderer.cpp
+++ b/src/duckdb/src/common/box_renderer.cpp
@@ -11,11 +11,90 @@ namespace duckdb {
 
 const idx_t BoxRenderer::SPLIT_COLUMN = idx_t(-1);
 
+//===--------------------------------------------------------------------===//
+// Result Renderer
+//===--------------------------------------------------------------------===//
+BaseResultRenderer::BaseResultRenderer() : value_type(LogicalTypeId::INVALID) {
+}
+
+BaseResultRenderer::~BaseResultRenderer() {
+}
+
+BaseResultRenderer &BaseResultRenderer::operator<<(char c) {
+	RenderLayout(string(1, c));
+	return *this;
+}
+
+BaseResultRenderer &BaseResultRenderer::operator<<(const string &val) {
+	RenderLayout(val);
+	return *this;
+}
+
+void BaseResultRenderer::Render(ResultRenderType render_mode, const string &val) {
+	switch (render_mode) {
+	case ResultRenderType::LAYOUT:
+		RenderLayout(val);
+		break;
+	case ResultRenderType::COLUMN_NAME:
+		RenderColumnName(val);
+		break;
+	case ResultRenderType::COLUMN_TYPE:
+		RenderType(val);
+		break;
+	case ResultRenderType::VALUE:
+		RenderValue(val, value_type);
+		break;
+	case ResultRenderType::NULL_VALUE:
+		RenderNull(val, value_type);
+		break;
+	case ResultRenderType::FOOTER:
+		RenderFooter(val);
+		break;
+	default:
+		throw InternalException("Unsupported type for result renderer");
+	}
+}
+
+void BaseResultRenderer::SetValueType(const LogicalType &type) {
+	value_type = type;
+}
+
+void StringResultRenderer::RenderLayout(const string &text) {
+	result += text;
+}
+
+void StringResultRenderer::RenderColumnName(const string &text) {
+	result += text;
+}
+
+void StringResultRenderer::RenderType(const string &text) {
+	result += text;
+}
+
+void StringResultRenderer::RenderValue(const string &text, const LogicalType &type) {
+	result += text;
+}
+
+void StringResultRenderer::RenderNull(const string &text, const LogicalType &type) {
+	result += text;
+}
+
+void StringResultRenderer::RenderFooter(const string &text) {
+	result += text;
+}
+
+const string &StringResultRenderer::str() {
+	return result;
+}
+
+//===--------------------------------------------------------------------===//
+// Box Renderer
+//===--------------------------------------------------------------------===//
 BoxRenderer::BoxRenderer(BoxRendererConfig config_p) : config(std::move(config_p)) {
 }
 
 string BoxRenderer::ToString(ClientContext &context, const vector &names, const ColumnDataCollection &result) {
-	std::stringstream ss;
+	StringResultRenderer ss;
 	Render(context, names, result, ss);
 	return ss.str();
 }
@@ -24,8 +103,8 @@ void BoxRenderer::Print(ClientContext &context, const vector &names, con
 	Printer::Print(ToString(context, names, result));
 }
 
-void BoxRenderer::RenderValue(std::ostream &ss, const string &value, idx_t column_width,
-                              ValueRenderAlignment alignment) {
+void BoxRenderer::RenderValue(BaseResultRenderer &ss, const string &value, idx_t column_width,
+                              ResultRenderType render_mode, ValueRenderAlignment alignment) {
 	auto render_width = Utf8Proc::RenderWidth(value);
 
 	const string *render_value = &value;
@@ -72,7 +151,7 @@ void BoxRenderer::RenderValue(std::ostream &ss, const string &value, idx_t colum
 	}
 	ss << config.VERTICAL;
 	ss << string(lpadding, ' ');
-	ss << *render_value;
+	ss.Render(render_mode, *render_value);
 	ss << string(rpadding, ' ');
 }
 
@@ -131,6 +210,74 @@ ValueRenderAlignment BoxRenderer::TypeAlignment(const LogicalType &type) {
 	}
 }
 
+string BoxRenderer::TryFormatLargeNumber(const string &numeric) {
+	// we only return a readable rendering if the number is > 1 million
+	if (numeric.size() <= 5) {
+		// number too small for sure
+		return string();
+	}
+	// get the number to summarize
+	idx_t number = 0;
+	bool negative = false;
+	idx_t i = 0;
+	if (numeric[0] == '-') {
+		negative = true;
+		i++;
+	}
+	for (; i < numeric.size(); i++) {
+		char c = numeric[i];
+		if (c == '.') {
+			break;
+		}
+		if (c < '0' || c > '9') {
+			// not a number or something funky (e.g. 1.23e7)
+			// we could theoretically summarize numbers with exponents
+			return string();
+		}
+		if (number >= 1000000000000000000ULL) {
+			// number too big
+			return string();
+		}
+		number = number * 10 + static_cast(c - '0');
+	}
+	struct UnitBase {
+		idx_t base;
+		const char *name;
+	};
+	static constexpr idx_t BASE_COUNT = 5;
+	UnitBase bases[] = {{1000000ULL, "million"},
+	                    {1000000000ULL, "billion"},
+	                    {1000000000000ULL, "trillion"},
+	                    {1000000000000000ULL, "quadrillion"},
+	                    {1000000000000000000ULL, "quintillion"}};
+	idx_t base = 0;
+	string unit;
+	for (idx_t i = 0; i < BASE_COUNT; i++) {
+		// round the number according to this base
+		idx_t rounded_number = number + ((bases[i].base / 100ULL) / 2);
+		if (rounded_number >= bases[i].base) {
+			base = bases[i].base;
+			unit = bases[i].name;
+		}
+	}
+	if (unit.empty()) {
+		return string();
+	}
+	number += (base / 100ULL) / 2;
+	idx_t decimal_unit = number / (base / 100ULL);
+	string decimal_str = to_string(decimal_unit);
+	string result;
+	if (negative) {
+		result += "-";
+	}
+	result += decimal_str.substr(0, decimal_str.size() - 2);
+	result += config.decimal_separator == '\0' ? '.' : config.decimal_separator;
+	result += decimal_str.substr(decimal_str.size() - 2, 2);
+	result += " ";
+	result += unit;
+	return result;
+}
+
 list BoxRenderer::FetchRenderCollections(ClientContext &context,
                                                                const ColumnDataCollection &result, idx_t top_rows,
                                                                idx_t bottom_rows) {
@@ -152,6 +299,13 @@ list BoxRenderer::FetchRenderCollections(ClientContext &co
 	DataChunk insert_result;
 	insert_result.Initialize(context, varchar_types);
 
+	if (config.large_number_rendering == LargeNumberRendering::FOOTER) {
+		if (config.render_mode != RenderMode::ROWS || result.Count() != 1) {
+			// large number footer can only be constructed (1) if we have a single row, and (2) in ROWS mode
+			config.large_number_rendering = LargeNumberRendering::NONE;
+		}
+	}
+
 	// fetch the top rows from the ColumnDataCollection
 	idx_t chunk_idx = 0;
 	idx_t row_idx = 0;
@@ -171,6 +325,38 @@ list BoxRenderer::FetchRenderCollections(ClientContext &co
 		// construct the render collection
 		top_collection.Append(insert_result);
 
+		// if we have are constructing a footer
+		if (config.large_number_rendering == LargeNumberRendering::FOOTER) {
+			D_ASSERT(insert_count == 1);
+			vector readable_numbers;
+			readable_numbers.resize(column_count);
+			bool all_readable = true;
+			for (idx_t c = 0; c < column_count; c++) {
+				if (!result.Types()[c].IsNumeric()) {
+					// not a numeric type - cannot summarize
+					all_readable = false;
+					break;
+				}
+				// add a readable rendering of the value (i.e. "1234567" becomes "1.23 million")
+				// we only add the rendering if the string is big
+				auto numeric_val = insert_result.data[c].GetValue(0).ToString();
+				readable_numbers[c] = TryFormatLargeNumber(numeric_val);
+				if (readable_numbers[c].empty()) {
+					all_readable = false;
+					break;
+				}
+				readable_numbers[c] = "(" + readable_numbers[c] + ")";
+			}
+			insert_result.Reset();
+			if (all_readable) {
+				for (idx_t c = 0; c < column_count; c++) {
+					insert_result.data[c].SetValue(0, Value(readable_numbers[c]));
+				}
+				insert_result.SetCardinality(1);
+				top_collection.Append(insert_result);
+			}
+		}
+
 		chunk_idx++;
 		row_idx += fetch_result.size();
 	}
@@ -259,7 +445,7 @@ list BoxRenderer::PivotCollections(ClientContext &context,
 	return result;
 }
 
-string ConvertRenderValue(const string &input) {
+string BoxRenderer::ConvertRenderValue(const string &input) {
 	string result;
 	result.reserve(input.size());
 	for (idx_t c = 0; c < input.size(); c++) {
@@ -311,13 +497,80 @@ string ConvertRenderValue(const string &input) {
 	return result;
 }
 
-string BoxRenderer::GetRenderValue(ColumnDataRowCollection &rows, idx_t c, idx_t r) {
+string BoxRenderer::FormatNumber(const string &input) {
+	if (config.large_number_rendering == LargeNumberRendering::ALL) {
+		// when large number rendering is set to ALL, we try to format all numbers as large numbers
+		auto number = TryFormatLargeNumber(input);
+		if (!number.empty()) {
+			return number;
+		}
+	}
+	if (config.decimal_separator == '\0' && config.thousand_separator == '\0') {
+		// no thousand separator
+		return input;
+	}
+	// first check how many digits there are (preceding any decimal point)
+	idx_t character_count = 0;
+	for (auto c : input) {
+		if (!StringUtil::CharacterIsDigit(c)) {
+			break;
+		}
+		character_count++;
+	}
+	// find the position of the first thousand separator
+	idx_t separator_position = character_count % 3 == 0 ? 3 : character_count % 3;
+	// now add the thousand separators
+	string result;
+	for (idx_t c = 0; c < character_count; c++) {
+		if (c == separator_position && config.thousand_separator != '\0') {
+			result += config.thousand_separator;
+			separator_position += 3;
+		}
+		result += input[c];
+	}
+	// add any remaining characters
+	for (idx_t c = character_count; c < input.size(); c++) {
+		if (input[c] == '.' && config.decimal_separator != '\0') {
+			result += config.decimal_separator;
+		} else {
+			result += input[c];
+		}
+	}
+	return result;
+}
+
+string BoxRenderer::ConvertRenderValue(const string &input, const LogicalType &type) {
+	switch (type.id()) {
+	case LogicalTypeId::TINYINT:
+	case LogicalTypeId::SMALLINT:
+	case LogicalTypeId::INTEGER:
+	case LogicalTypeId::BIGINT:
+	case LogicalTypeId::HUGEINT:
+	case LogicalTypeId::UTINYINT:
+	case LogicalTypeId::USMALLINT:
+	case LogicalTypeId::UINTEGER:
+	case LogicalTypeId::UBIGINT:
+	case LogicalTypeId::UHUGEINT:
+	case LogicalTypeId::DECIMAL:
+	case LogicalTypeId::FLOAT:
+	case LogicalTypeId::DOUBLE:
+		return FormatNumber(input);
+	default:
+		return ConvertRenderValue(input);
+	}
+}
+
+string BoxRenderer::GetRenderValue(BaseResultRenderer &ss, ColumnDataRowCollection &rows, idx_t c, idx_t r,
+                                   const LogicalType &type, ResultRenderType &render_mode) {
 	try {
+		render_mode = ResultRenderType::VALUE;
+		ss.SetValueType(type);
 		auto row = rows.GetValue(c, r);
 		if (row.IsNull()) {
+			render_mode = ResultRenderType::NULL_VALUE;
 			return config.null_value;
 		}
-		return ConvertRenderValue(StringValue::Get(row));
+		return ConvertRenderValue(StringValue::Get(row), type);
 	} catch (std::exception &ex) {
 		return "????INVALID VALUE - " + string(ex.what()) + "?????";
 	}
@@ -346,7 +599,7 @@ vector BoxRenderer::ComputeRenderWidths(const vector &names, cons
 					if (FlatVector::IsNull(chunk.data[c], r)) {
 						render_value = config.null_value;
 					} else {
-						render_value = ConvertRenderValue(string_data[r].GetString());
+						render_value = ConvertRenderValue(string_data[r].GetString(), result_types[c]);
 					}
 					auto render_width = Utf8Proc::RenderWidth(render_value);
 					widths[c] = MaxValue(render_width, widths[c]);
@@ -435,7 +688,7 @@ vector BoxRenderer::ComputeRenderWidths(const vector &names, cons
 void BoxRenderer::RenderHeader(const vector &names, const vector &result_types,
                                const vector &column_map, const vector &widths,
                                const vector &boundaries, idx_t total_length, bool has_results,
-                               std::ostream &ss) {
+                               BaseResultRenderer &ss) {
 	auto column_count = column_map.size();
 	// render the top line
 	ss << config.LTCORNER;
@@ -455,12 +708,15 @@ void BoxRenderer::RenderHeader(const vector &names, const vector &names, const vector &names, const vector &collections, const vector &column_map,
-                               const vector &widths, const vector &result_types, std::ostream &ss) {
+                               const vector &widths, const vector &result_types,
+                               BaseResultRenderer &ss) {
 	auto &top_collection = collections.front();
 	auto &bottom_collection = collections.back();
 	// render the top rows
@@ -500,12 +764,15 @@ void BoxRenderer::RenderValues(const list &collections, co
 	auto bottom_rows = bottom_collection.Count();
 	auto column_count = column_map.size();
 
+	bool large_number_footer = config.large_number_rendering == LargeNumberRendering::FOOTER;
 	vector alignments;
 	if (config.render_mode == RenderMode::ROWS) {
 		for (idx_t c = 0; c < column_count; c++) {
 			auto column_idx = column_map[c];
 			if (column_idx == SPLIT_COLUMN) {
 				alignments.push_back(ValueRenderAlignment::MIDDLE);
+			} else if (large_number_footer && result_types[column_idx].IsNumeric()) {
+				alignments.push_back(ValueRenderAlignment::MIDDLE);
 			} else {
 				alignments.push_back(TypeAlignment(result_types[column_idx]));
 			}
@@ -517,15 +784,32 @@ void BoxRenderer::RenderValues(const list &collections, co
 		for (idx_t c = 0; c < column_count; c++) {
 			auto column_idx = column_map[c];
 			string str;
+			ResultRenderType render_mode;
 			if (column_idx == SPLIT_COLUMN) {
 				str = config.DOTDOTDOT;
+				render_mode = ResultRenderType::LAYOUT;
 			} else {
-				str = GetRenderValue(rows, column_idx, r);
+				str = GetRenderValue(ss, rows, column_idx, r, result_types[column_idx], render_mode);
 			}
 			ValueRenderAlignment alignment;
 			if (config.render_mode == RenderMode::ROWS) {
 				alignment = alignments[c];
+				if (large_number_footer && r == 1) {
+					// render readable numbers with highlighting of a NULL value
+					render_mode = ResultRenderType::NULL_VALUE;
+				}
 			} else {
+				switch (c) {
+				case 0:
+					render_mode = ResultRenderType::COLUMN_NAME;
+					break;
+				case 1:
+					render_mode = ResultRenderType::COLUMN_TYPE;
+					break;
+				default:
+					render_mode = ResultRenderType::VALUE;
+					break;
+				}
 				if (c < 2) {
 					alignment = ValueRenderAlignment::LEFT;
 				} else if (c == SPLIT_COLUMN) {
@@ -534,7 +818,7 @@ void BoxRenderer::RenderValues(const list &collections, co
 					alignment = ValueRenderAlignment::RIGHT;
 				}
 			}
-			RenderValue(ss, str, widths[c], alignment);
+			RenderValue(ss, str, widths[c], render_mode, alignment);
 		}
 		ss << config.VERTICAL;
 		ss << '\n';
@@ -556,8 +840,11 @@ void BoxRenderer::RenderValues(const list &collections, co
 					str = config.DOT;
 				} else {
 					// align the dots in the center of the column
-					auto top_value = GetRenderValue(rows, column_idx, top_rows - 1);
-					auto bottom_value = GetRenderValue(brows, column_idx, bottom_rows - 1);
+					ResultRenderType render_mode;
+					auto top_value =
+					    GetRenderValue(ss, rows, column_idx, top_rows - 1, result_types[column_idx], render_mode);
+					auto bottom_value =
+					    GetRenderValue(ss, brows, column_idx, bottom_rows - 1, result_types[column_idx], render_mode);
 					auto top_length = MinValue(widths[c], Utf8Proc::RenderWidth(top_value));
 					auto bottom_length = MinValue(widths[c], Utf8Proc::RenderWidth(bottom_value));
 					auto dot_length = MinValue(top_length, bottom_length);
@@ -590,7 +877,7 @@ void BoxRenderer::RenderValues(const list &collections, co
 						str = config.DOT;
 					}
 				}
-				RenderValue(ss, str, widths[c], alignment);
+				RenderValue(ss, str, widths[c], ResultRenderType::LAYOUT, alignment);
 			}
 			ss << config.VERTICAL;
 			ss << '\n';
@@ -600,12 +887,15 @@ void BoxRenderer::RenderValues(const list &collections, co
 			for (idx_t c = 0; c < column_count; c++) {
 				auto column_idx = column_map[c];
 				string str;
+				ResultRenderType render_mode;
 				if (column_idx == SPLIT_COLUMN) {
 					str = config.DOTDOTDOT;
+					render_mode = ResultRenderType::LAYOUT;
 				} else {
-					str = GetRenderValue(brows, column_idx, bottom_rows - r - 1);
+					str = GetRenderValue(ss, brows, column_idx, bottom_rows - r - 1, result_types[column_idx],
+					                     render_mode);
 				}
-				RenderValue(ss, str, widths[c], alignments[c]);
+				RenderValue(ss, str, widths[c], render_mode, alignments[c]);
 			}
 			ss << config.VERTICAL;
 			ss << '\n';
@@ -616,7 +906,7 @@ void BoxRenderer::RenderValues(const list &collections, co
 void BoxRenderer::RenderRowCount(string row_count_str, string shown_str, const string &column_count_str,
                                  const vector &boundaries, bool has_hidden_rows, bool has_hidden_columns,
                                  idx_t total_length, idx_t row_count, idx_t column_count, idx_t minimum_row_length,
-                                 std::ostream &ss) {
+                                 BaseResultRenderer &ss) {
 	// check if we can merge the row_count_str and the shown_str
 	bool display_shown_separately = has_hidden_rows;
 	if (has_hidden_rows && total_length >= row_count_str.size() + shown_str.size() + 5) {
@@ -656,19 +946,19 @@ void BoxRenderer::RenderRowCount(string row_count_str, string shown_str, const s
 	if (render_rows_and_columns) {
 		ss << config.VERTICAL;
 		ss << " ";
-		ss << row_count_str;
+		ss.Render(ResultRenderType::FOOTER, row_count_str);
 		ss << string(total_length - row_count_str.size() - column_count_str.size() - 4, ' ');
-		ss << column_count_str;
+		ss.Render(ResultRenderType::FOOTER, column_count_str);
 		ss << " ";
 		ss << config.VERTICAL;
 		ss << '\n';
 	} else if (render_rows) {
-		RenderValue(ss, row_count_str, total_length - 4);
+		RenderValue(ss, row_count_str, total_length - 4, ResultRenderType::FOOTER);
 		ss << config.VERTICAL;
 		ss << '\n';
 
 		if (display_shown_separately) {
-			RenderValue(ss, shown_str, total_length - 4);
+			RenderValue(ss, shown_str, total_length - 4, ResultRenderType::FOOTER);
 			ss << config.VERTICAL;
 			ss << '\n';
 		}
@@ -683,7 +973,7 @@ void BoxRenderer::RenderRowCount(string row_count_str, string shown_str, const s
 }
 
 void BoxRenderer::Render(ClientContext &context, const vector &names, const ColumnDataCollection &result,
-                         std::ostream &ss) {
+                         BaseResultRenderer &ss) {
 	if (result.ColumnCount() != names.size()) {
 		throw InternalException("Error in BoxRenderer::Render - unaligned columns and names");
 	}
diff --git a/src/duckdb/src/common/cgroups.cpp b/src/duckdb/src/common/cgroups.cpp
index eb240b20..d7ddd980 100644
--- a/src/duckdb/src/common/cgroups.cpp
+++ b/src/duckdb/src/common/cgroups.cpp
@@ -86,7 +86,13 @@ string CGroups::ReadCGroupPath(FileSystem &fs, const char *cgroup_file) {
 	string content(buffer);
 	auto pos = content.find("::");
 	if (pos != string::npos) {
-		return content.substr(pos + 2);
+		// remove trailing \n
+		auto pos2 = content.find('\n', pos + 2);
+		if (pos2 != string::npos) {
+			return content.substr(pos + 2, pos2 - (pos + 2));
+		} else {
+			return content.substr(pos + 2);
+		}
 	}
 #endif
 	return "";
diff --git a/src/duckdb/src/common/compressed_file_system.cpp b/src/duckdb/src/common/compressed_file_system.cpp
index b34c6c21..ddc325cf 100644
--- a/src/duckdb/src/common/compressed_file_system.cpp
+++ b/src/duckdb/src/common/compressed_file_system.cpp
@@ -7,7 +7,7 @@ StreamWrapper::~StreamWrapper() {
 }
 
 CompressedFile::CompressedFile(CompressedFileSystem &fs, unique_ptr child_handle_p, const string &path)
-    : FileHandle(fs, path), compressed_fs(fs), child_handle(std::move(child_handle_p)) {
+    : FileHandle(fs, path, child_handle_p->GetFlags()), compressed_fs(fs), child_handle(std::move(child_handle_p)) {
 }
 
 CompressedFile::~CompressedFile() {
diff --git a/src/duckdb/src/common/constants.cpp b/src/duckdb/src/common/constants.cpp
index a6c12be1..edafe6b6 100644
--- a/src/duckdb/src/common/constants.cpp
+++ b/src/duckdb/src/common/constants.cpp
@@ -1,4 +1,5 @@
 #include "duckdb/common/constants.hpp"
+#include "duckdb/common/exception.hpp"
 
 #include "duckdb/common/limits.hpp"
 #include "duckdb/common/vector_size.hpp"
@@ -21,6 +22,10 @@ bool IsPowerOfTwo(uint64_t v) {
 }
 
 uint64_t NextPowerOfTwo(uint64_t v) {
+	auto v_in = v;
+	if (v < 1) { // this is not strictly right but we seem to rely on it in places
+		return 2;
+	}
 	v--;
 	v |= v >> 1;
 	v |= v >> 2;
@@ -29,6 +34,9 @@ uint64_t NextPowerOfTwo(uint64_t v) {
 	v |= v >> 16;
 	v |= v >> 32;
 	v++;
+	if (v == 0) {
+		throw OutOfRangeException("Can't find next power of 2 for %llu", v_in);
+	}
 	return v;
 }
 
diff --git a/src/duckdb/src/common/enum_util.cpp b/src/duckdb/src/common/enum_util.cpp
index c4185af9..20b1c130 100644
--- a/src/duckdb/src/common/enum_util.cpp
+++ b/src/duckdb/src/common/enum_util.cpp
@@ -28,6 +28,7 @@
 #include "duckdb/common/enums/file_compression_type.hpp"
 #include "duckdb/common/enums/file_glob_options.hpp"
 #include "duckdb/common/enums/filter_propagate_result.hpp"
+#include "duckdb/common/enums/function_errors.hpp"
 #include "duckdb/common/enums/index_constraint_type.hpp"
 #include "duckdb/common/enums/join_type.hpp"
 #include "duckdb/common/enums/joinref_type.hpp"
@@ -45,6 +46,7 @@
 #include "duckdb/common/enums/physical_operator_type.hpp"
 #include "duckdb/common/enums/prepared_statement_mode.hpp"
 #include "duckdb/common/enums/profiler_format.hpp"
+#include "duckdb/common/enums/quantile_enum.hpp"
 #include "duckdb/common/enums/relation_type.hpp"
 #include "duckdb/common/enums/scan_options.hpp"
 #include "duckdb/common/enums/set_operation_type.hpp"
@@ -77,7 +79,6 @@
 #include "duckdb/common/types/timestamp.hpp"
 #include "duckdb/common/types/vector.hpp"
 #include "duckdb/common/types/vector_buffer.hpp"
-#include "duckdb/core_functions/aggregate/quantile_enum.hpp"
 #include "duckdb/execution/index/art/art.hpp"
 #include "duckdb/execution/index/art/node.hpp"
 #include "duckdb/execution/operator/csv_scanner/csv_option.hpp"
@@ -88,7 +89,7 @@
 #include "duckdb/function/copy_function.hpp"
 #include "duckdb/function/function.hpp"
 #include "duckdb/function/macro_function.hpp"
-#include "duckdb/function/scalar/compressed_materialization_functions.hpp"
+#include "duckdb/function/scalar/compressed_materialization_utils.hpp"
 #include "duckdb/function/scalar/strftime_format.hpp"
 #include "duckdb/function/table/arrow/enum/arrow_datetime_type.hpp"
 #include "duckdb/function/table/arrow/enum/arrow_type_info_type.hpp"
@@ -139,8167 +140,4000 @@
 #include "duckdb/storage/statistics/base_statistics.hpp"
 #include "duckdb/storage/table/chunk_info.hpp"
 #include "duckdb/storage/table/column_segment.hpp"
+#include "duckdb/storage/temporary_file_manager.hpp"
 #include "duckdb/verification/statement_verifier.hpp"
 
 namespace duckdb {
 
+const StringUtil::EnumStringLiteral *GetAccessModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AccessMode::UNDEFINED), "UNDEFINED" },
+		{ static_cast(AccessMode::AUTOMATIC), "AUTOMATIC" },
+		{ static_cast(AccessMode::READ_ONLY), "READ_ONLY" },
+		{ static_cast(AccessMode::READ_WRITE), "READ_WRITE" }
+	};
+	return values;
+}
+
 template<>
 const char* EnumUtil::ToChars(AccessMode value) {
-	switch(value) {
-	case AccessMode::UNDEFINED:
-		return "UNDEFINED";
-	case AccessMode::AUTOMATIC:
-		return "AUTOMATIC";
-	case AccessMode::READ_ONLY:
-		return "READ_ONLY";
-	case AccessMode::READ_WRITE:
-		return "READ_WRITE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAccessModeValues(), 4, "AccessMode", static_cast(value));
 }
 
 template<>
 AccessMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "UNDEFINED")) {
-		return AccessMode::UNDEFINED;
-	}
-	if (StringUtil::Equals(value, "AUTOMATIC")) {
-		return AccessMode::AUTOMATIC;
-	}
-	if (StringUtil::Equals(value, "READ_ONLY")) {
-		return AccessMode::READ_ONLY;
-	}
-	if (StringUtil::Equals(value, "READ_WRITE")) {
-		return AccessMode::READ_WRITE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAccessModeValues(), 4, "AccessMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAggregateCombineTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AggregateCombineType::PRESERVE_INPUT), "PRESERVE_INPUT" },
+		{ static_cast(AggregateCombineType::ALLOW_DESTRUCTIVE), "ALLOW_DESTRUCTIVE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AggregateCombineType value) {
-	switch(value) {
-	case AggregateCombineType::PRESERVE_INPUT:
-		return "PRESERVE_INPUT";
-	case AggregateCombineType::ALLOW_DESTRUCTIVE:
-		return "ALLOW_DESTRUCTIVE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAggregateCombineTypeValues(), 2, "AggregateCombineType", static_cast(value));
 }
 
 template<>
 AggregateCombineType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "PRESERVE_INPUT")) {
-		return AggregateCombineType::PRESERVE_INPUT;
-	}
-	if (StringUtil::Equals(value, "ALLOW_DESTRUCTIVE")) {
-		return AggregateCombineType::ALLOW_DESTRUCTIVE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAggregateCombineTypeValues(), 2, "AggregateCombineType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAggregateDistinctDependentValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AggregateDistinctDependent::DISTINCT_DEPENDENT), "DISTINCT_DEPENDENT" },
+		{ static_cast(AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT), "NOT_DISTINCT_DEPENDENT" }
+	};
+	return values;
+}
+
+template<>
+const char* EnumUtil::ToChars(AggregateDistinctDependent value) {
+	return StringUtil::EnumToString(GetAggregateDistinctDependentValues(), 2, "AggregateDistinctDependent", static_cast(value));
+}
+
+template<>
+AggregateDistinctDependent EnumUtil::FromString(const char *value) {
+	return static_cast(StringUtil::StringToEnum(GetAggregateDistinctDependentValues(), 2, "AggregateDistinctDependent", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAggregateHandlingValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AggregateHandling::STANDARD_HANDLING), "STANDARD_HANDLING" },
+		{ static_cast(AggregateHandling::NO_AGGREGATES_ALLOWED), "NO_AGGREGATES_ALLOWED" },
+		{ static_cast(AggregateHandling::FORCE_AGGREGATES), "FORCE_AGGREGATES" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AggregateHandling value) {
-	switch(value) {
-	case AggregateHandling::STANDARD_HANDLING:
-		return "STANDARD_HANDLING";
-	case AggregateHandling::NO_AGGREGATES_ALLOWED:
-		return "NO_AGGREGATES_ALLOWED";
-	case AggregateHandling::FORCE_AGGREGATES:
-		return "FORCE_AGGREGATES";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAggregateHandlingValues(), 3, "AggregateHandling", static_cast(value));
 }
 
 template<>
 AggregateHandling EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "STANDARD_HANDLING")) {
-		return AggregateHandling::STANDARD_HANDLING;
-	}
-	if (StringUtil::Equals(value, "NO_AGGREGATES_ALLOWED")) {
-		return AggregateHandling::NO_AGGREGATES_ALLOWED;
-	}
-	if (StringUtil::Equals(value, "FORCE_AGGREGATES")) {
-		return AggregateHandling::FORCE_AGGREGATES;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAggregateHandlingValues(), 3, "AggregateHandling", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAggregateOrderDependentValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AggregateOrderDependent::ORDER_DEPENDENT), "ORDER_DEPENDENT" },
+		{ static_cast(AggregateOrderDependent::NOT_ORDER_DEPENDENT), "NOT_ORDER_DEPENDENT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AggregateOrderDependent value) {
-	switch(value) {
-	case AggregateOrderDependent::ORDER_DEPENDENT:
-		return "ORDER_DEPENDENT";
-	case AggregateOrderDependent::NOT_ORDER_DEPENDENT:
-		return "NOT_ORDER_DEPENDENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAggregateOrderDependentValues(), 2, "AggregateOrderDependent", static_cast(value));
 }
 
 template<>
 AggregateOrderDependent EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ORDER_DEPENDENT")) {
-		return AggregateOrderDependent::ORDER_DEPENDENT;
-	}
-	if (StringUtil::Equals(value, "NOT_ORDER_DEPENDENT")) {
-		return AggregateOrderDependent::NOT_ORDER_DEPENDENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAggregateOrderDependentValues(), 2, "AggregateOrderDependent", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAggregateTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AggregateType::NON_DISTINCT), "NON_DISTINCT" },
+		{ static_cast(AggregateType::DISTINCT), "DISTINCT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AggregateType value) {
-	switch(value) {
-	case AggregateType::NON_DISTINCT:
-		return "NON_DISTINCT";
-	case AggregateType::DISTINCT:
-		return "DISTINCT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAggregateTypeValues(), 2, "AggregateType", static_cast(value));
 }
 
 template<>
 AggregateType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NON_DISTINCT")) {
-		return AggregateType::NON_DISTINCT;
-	}
-	if (StringUtil::Equals(value, "DISTINCT")) {
-		return AggregateType::DISTINCT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAggregateTypeValues(), 2, "AggregateType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAlterForeignKeyTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AlterForeignKeyType::AFT_ADD), "AFT_ADD" },
+		{ static_cast(AlterForeignKeyType::AFT_DELETE), "AFT_DELETE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AlterForeignKeyType value) {
-	switch(value) {
-	case AlterForeignKeyType::AFT_ADD:
-		return "AFT_ADD";
-	case AlterForeignKeyType::AFT_DELETE:
-		return "AFT_DELETE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAlterForeignKeyTypeValues(), 2, "AlterForeignKeyType", static_cast(value));
 }
 
 template<>
 AlterForeignKeyType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "AFT_ADD")) {
-		return AlterForeignKeyType::AFT_ADD;
-	}
-	if (StringUtil::Equals(value, "AFT_DELETE")) {
-		return AlterForeignKeyType::AFT_DELETE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAlterForeignKeyTypeValues(), 2, "AlterForeignKeyType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAlterScalarFunctionTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AlterScalarFunctionType::INVALID), "INVALID" },
+		{ static_cast(AlterScalarFunctionType::ADD_FUNCTION_OVERLOADS), "ADD_FUNCTION_OVERLOADS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AlterScalarFunctionType value) {
-	switch(value) {
-	case AlterScalarFunctionType::INVALID:
-		return "INVALID";
-	case AlterScalarFunctionType::ADD_FUNCTION_OVERLOADS:
-		return "ADD_FUNCTION_OVERLOADS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAlterScalarFunctionTypeValues(), 2, "AlterScalarFunctionType", static_cast(value));
 }
 
 template<>
 AlterScalarFunctionType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return AlterScalarFunctionType::INVALID;
-	}
-	if (StringUtil::Equals(value, "ADD_FUNCTION_OVERLOADS")) {
-		return AlterScalarFunctionType::ADD_FUNCTION_OVERLOADS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAlterScalarFunctionTypeValues(), 2, "AlterScalarFunctionType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAlterTableFunctionTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AlterTableFunctionType::INVALID), "INVALID" },
+		{ static_cast(AlterTableFunctionType::ADD_FUNCTION_OVERLOADS), "ADD_FUNCTION_OVERLOADS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AlterTableFunctionType value) {
-	switch(value) {
-	case AlterTableFunctionType::INVALID:
-		return "INVALID";
-	case AlterTableFunctionType::ADD_FUNCTION_OVERLOADS:
-		return "ADD_FUNCTION_OVERLOADS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAlterTableFunctionTypeValues(), 2, "AlterTableFunctionType", static_cast(value));
 }
 
 template<>
 AlterTableFunctionType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return AlterTableFunctionType::INVALID;
-	}
-	if (StringUtil::Equals(value, "ADD_FUNCTION_OVERLOADS")) {
-		return AlterTableFunctionType::ADD_FUNCTION_OVERLOADS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAlterTableFunctionTypeValues(), 2, "AlterTableFunctionType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAlterTableTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AlterTableType::INVALID), "INVALID" },
+		{ static_cast(AlterTableType::RENAME_COLUMN), "RENAME_COLUMN" },
+		{ static_cast(AlterTableType::RENAME_TABLE), "RENAME_TABLE" },
+		{ static_cast(AlterTableType::ADD_COLUMN), "ADD_COLUMN" },
+		{ static_cast(AlterTableType::REMOVE_COLUMN), "REMOVE_COLUMN" },
+		{ static_cast(AlterTableType::ALTER_COLUMN_TYPE), "ALTER_COLUMN_TYPE" },
+		{ static_cast(AlterTableType::SET_DEFAULT), "SET_DEFAULT" },
+		{ static_cast(AlterTableType::FOREIGN_KEY_CONSTRAINT), "FOREIGN_KEY_CONSTRAINT" },
+		{ static_cast(AlterTableType::SET_NOT_NULL), "SET_NOT_NULL" },
+		{ static_cast(AlterTableType::DROP_NOT_NULL), "DROP_NOT_NULL" },
+		{ static_cast(AlterTableType::SET_COLUMN_COMMENT), "SET_COLUMN_COMMENT" },
+		{ static_cast(AlterTableType::ADD_CONSTRAINT), "ADD_CONSTRAINT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AlterTableType value) {
-	switch(value) {
-	case AlterTableType::INVALID:
-		return "INVALID";
-	case AlterTableType::RENAME_COLUMN:
-		return "RENAME_COLUMN";
-	case AlterTableType::RENAME_TABLE:
-		return "RENAME_TABLE";
-	case AlterTableType::ADD_COLUMN:
-		return "ADD_COLUMN";
-	case AlterTableType::REMOVE_COLUMN:
-		return "REMOVE_COLUMN";
-	case AlterTableType::ALTER_COLUMN_TYPE:
-		return "ALTER_COLUMN_TYPE";
-	case AlterTableType::SET_DEFAULT:
-		return "SET_DEFAULT";
-	case AlterTableType::FOREIGN_KEY_CONSTRAINT:
-		return "FOREIGN_KEY_CONSTRAINT";
-	case AlterTableType::SET_NOT_NULL:
-		return "SET_NOT_NULL";
-	case AlterTableType::DROP_NOT_NULL:
-		return "DROP_NOT_NULL";
-	case AlterTableType::SET_COLUMN_COMMENT:
-		return "SET_COLUMN_COMMENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAlterTableTypeValues(), 12, "AlterTableType", static_cast(value));
 }
 
 template<>
 AlterTableType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return AlterTableType::INVALID;
-	}
-	if (StringUtil::Equals(value, "RENAME_COLUMN")) {
-		return AlterTableType::RENAME_COLUMN;
-	}
-	if (StringUtil::Equals(value, "RENAME_TABLE")) {
-		return AlterTableType::RENAME_TABLE;
-	}
-	if (StringUtil::Equals(value, "ADD_COLUMN")) {
-		return AlterTableType::ADD_COLUMN;
-	}
-	if (StringUtil::Equals(value, "REMOVE_COLUMN")) {
-		return AlterTableType::REMOVE_COLUMN;
-	}
-	if (StringUtil::Equals(value, "ALTER_COLUMN_TYPE")) {
-		return AlterTableType::ALTER_COLUMN_TYPE;
-	}
-	if (StringUtil::Equals(value, "SET_DEFAULT")) {
-		return AlterTableType::SET_DEFAULT;
-	}
-	if (StringUtil::Equals(value, "FOREIGN_KEY_CONSTRAINT")) {
-		return AlterTableType::FOREIGN_KEY_CONSTRAINT;
-	}
-	if (StringUtil::Equals(value, "SET_NOT_NULL")) {
-		return AlterTableType::SET_NOT_NULL;
-	}
-	if (StringUtil::Equals(value, "DROP_NOT_NULL")) {
-		return AlterTableType::DROP_NOT_NULL;
-	}
-	if (StringUtil::Equals(value, "SET_COLUMN_COMMENT")) {
-		return AlterTableType::SET_COLUMN_COMMENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAlterTableTypeValues(), 12, "AlterTableType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAlterTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AlterType::INVALID), "INVALID" },
+		{ static_cast(AlterType::ALTER_TABLE), "ALTER_TABLE" },
+		{ static_cast(AlterType::ALTER_VIEW), "ALTER_VIEW" },
+		{ static_cast(AlterType::ALTER_SEQUENCE), "ALTER_SEQUENCE" },
+		{ static_cast(AlterType::CHANGE_OWNERSHIP), "CHANGE_OWNERSHIP" },
+		{ static_cast(AlterType::ALTER_SCALAR_FUNCTION), "ALTER_SCALAR_FUNCTION" },
+		{ static_cast(AlterType::ALTER_TABLE_FUNCTION), "ALTER_TABLE_FUNCTION" },
+		{ static_cast(AlterType::SET_COMMENT), "SET_COMMENT" },
+		{ static_cast(AlterType::SET_COLUMN_COMMENT), "SET_COLUMN_COMMENT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AlterType value) {
-	switch(value) {
-	case AlterType::INVALID:
-		return "INVALID";
-	case AlterType::ALTER_TABLE:
-		return "ALTER_TABLE";
-	case AlterType::ALTER_VIEW:
-		return "ALTER_VIEW";
-	case AlterType::ALTER_SEQUENCE:
-		return "ALTER_SEQUENCE";
-	case AlterType::CHANGE_OWNERSHIP:
-		return "CHANGE_OWNERSHIP";
-	case AlterType::ALTER_SCALAR_FUNCTION:
-		return "ALTER_SCALAR_FUNCTION";
-	case AlterType::ALTER_TABLE_FUNCTION:
-		return "ALTER_TABLE_FUNCTION";
-	case AlterType::SET_COMMENT:
-		return "SET_COMMENT";
-	case AlterType::SET_COLUMN_COMMENT:
-		return "SET_COLUMN_COMMENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAlterTypeValues(), 9, "AlterType", static_cast(value));
 }
 
 template<>
 AlterType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return AlterType::INVALID;
-	}
-	if (StringUtil::Equals(value, "ALTER_TABLE")) {
-		return AlterType::ALTER_TABLE;
-	}
-	if (StringUtil::Equals(value, "ALTER_VIEW")) {
-		return AlterType::ALTER_VIEW;
-	}
-	if (StringUtil::Equals(value, "ALTER_SEQUENCE")) {
-		return AlterType::ALTER_SEQUENCE;
-	}
-	if (StringUtil::Equals(value, "CHANGE_OWNERSHIP")) {
-		return AlterType::CHANGE_OWNERSHIP;
-	}
-	if (StringUtil::Equals(value, "ALTER_SCALAR_FUNCTION")) {
-		return AlterType::ALTER_SCALAR_FUNCTION;
-	}
-	if (StringUtil::Equals(value, "ALTER_TABLE_FUNCTION")) {
-		return AlterType::ALTER_TABLE_FUNCTION;
-	}
-	if (StringUtil::Equals(value, "SET_COMMENT")) {
-		return AlterType::SET_COMMENT;
-	}
-	if (StringUtil::Equals(value, "SET_COLUMN_COMMENT")) {
-		return AlterType::SET_COLUMN_COMMENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAlterTypeValues(), 9, "AlterType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAlterViewTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AlterViewType::INVALID), "INVALID" },
+		{ static_cast(AlterViewType::RENAME_VIEW), "RENAME_VIEW" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AlterViewType value) {
-	switch(value) {
-	case AlterViewType::INVALID:
-		return "INVALID";
-	case AlterViewType::RENAME_VIEW:
-		return "RENAME_VIEW";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAlterViewTypeValues(), 2, "AlterViewType", static_cast(value));
 }
 
 template<>
 AlterViewType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return AlterViewType::INVALID;
-	}
-	if (StringUtil::Equals(value, "RENAME_VIEW")) {
-		return AlterViewType::RENAME_VIEW;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAlterViewTypeValues(), 2, "AlterViewType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetAppenderTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(AppenderType::LOGICAL), "LOGICAL" },
+		{ static_cast(AppenderType::PHYSICAL), "PHYSICAL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(AppenderType value) {
-	switch(value) {
-	case AppenderType::LOGICAL:
-		return "LOGICAL";
-	case AppenderType::PHYSICAL:
-		return "PHYSICAL";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetAppenderTypeValues(), 2, "AppenderType", static_cast(value));
 }
 
 template<>
 AppenderType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "LOGICAL")) {
-		return AppenderType::LOGICAL;
-	}
-	if (StringUtil::Equals(value, "PHYSICAL")) {
-		return AppenderType::PHYSICAL;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetAppenderTypeValues(), 2, "AppenderType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetArrowDateTimeTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ArrowDateTimeType::MILLISECONDS), "MILLISECONDS" },
+		{ static_cast(ArrowDateTimeType::MICROSECONDS), "MICROSECONDS" },
+		{ static_cast(ArrowDateTimeType::NANOSECONDS), "NANOSECONDS" },
+		{ static_cast(ArrowDateTimeType::SECONDS), "SECONDS" },
+		{ static_cast(ArrowDateTimeType::DAYS), "DAYS" },
+		{ static_cast(ArrowDateTimeType::MONTHS), "MONTHS" },
+		{ static_cast(ArrowDateTimeType::MONTH_DAY_NANO), "MONTH_DAY_NANO" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ArrowDateTimeType value) {
-	switch(value) {
-	case ArrowDateTimeType::MILLISECONDS:
-		return "MILLISECONDS";
-	case ArrowDateTimeType::MICROSECONDS:
-		return "MICROSECONDS";
-	case ArrowDateTimeType::NANOSECONDS:
-		return "NANOSECONDS";
-	case ArrowDateTimeType::SECONDS:
-		return "SECONDS";
-	case ArrowDateTimeType::DAYS:
-		return "DAYS";
-	case ArrowDateTimeType::MONTHS:
-		return "MONTHS";
-	case ArrowDateTimeType::MONTH_DAY_NANO:
-		return "MONTH_DAY_NANO";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetArrowDateTimeTypeValues(), 7, "ArrowDateTimeType", static_cast(value));
 }
 
 template<>
 ArrowDateTimeType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "MILLISECONDS")) {
-		return ArrowDateTimeType::MILLISECONDS;
-	}
-	if (StringUtil::Equals(value, "MICROSECONDS")) {
-		return ArrowDateTimeType::MICROSECONDS;
-	}
-	if (StringUtil::Equals(value, "NANOSECONDS")) {
-		return ArrowDateTimeType::NANOSECONDS;
-	}
-	if (StringUtil::Equals(value, "SECONDS")) {
-		return ArrowDateTimeType::SECONDS;
-	}
-	if (StringUtil::Equals(value, "DAYS")) {
-		return ArrowDateTimeType::DAYS;
-	}
-	if (StringUtil::Equals(value, "MONTHS")) {
-		return ArrowDateTimeType::MONTHS;
-	}
-	if (StringUtil::Equals(value, "MONTH_DAY_NANO")) {
-		return ArrowDateTimeType::MONTH_DAY_NANO;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetArrowDateTimeTypeValues(), 7, "ArrowDateTimeType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetArrowOffsetSizeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ArrowOffsetSize::REGULAR), "REGULAR" },
+		{ static_cast(ArrowOffsetSize::LARGE), "LARGE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ArrowOffsetSize value) {
-	switch(value) {
-	case ArrowOffsetSize::REGULAR:
-		return "REGULAR";
-	case ArrowOffsetSize::LARGE:
-		return "LARGE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetArrowOffsetSizeValues(), 2, "ArrowOffsetSize", static_cast(value));
 }
 
 template<>
 ArrowOffsetSize EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "REGULAR")) {
-		return ArrowOffsetSize::REGULAR;
-	}
-	if (StringUtil::Equals(value, "LARGE")) {
-		return ArrowOffsetSize::LARGE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetArrowOffsetSizeValues(), 2, "ArrowOffsetSize", value));
+}
+
+const StringUtil::EnumStringLiteral *GetArrowTypeInfoTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ArrowTypeInfoType::LIST), "LIST" },
+		{ static_cast(ArrowTypeInfoType::STRUCT), "STRUCT" },
+		{ static_cast(ArrowTypeInfoType::DATE_TIME), "DATE_TIME" },
+		{ static_cast(ArrowTypeInfoType::STRING), "STRING" },
+		{ static_cast(ArrowTypeInfoType::ARRAY), "ARRAY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ArrowTypeInfoType value) {
-	switch(value) {
-	case ArrowTypeInfoType::LIST:
-		return "LIST";
-	case ArrowTypeInfoType::STRUCT:
-		return "STRUCT";
-	case ArrowTypeInfoType::DATE_TIME:
-		return "DATE_TIME";
-	case ArrowTypeInfoType::STRING:
-		return "STRING";
-	case ArrowTypeInfoType::ARRAY:
-		return "ARRAY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetArrowTypeInfoTypeValues(), 5, "ArrowTypeInfoType", static_cast(value));
 }
 
 template<>
 ArrowTypeInfoType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "LIST")) {
-		return ArrowTypeInfoType::LIST;
-	}
-	if (StringUtil::Equals(value, "STRUCT")) {
-		return ArrowTypeInfoType::STRUCT;
-	}
-	if (StringUtil::Equals(value, "DATE_TIME")) {
-		return ArrowTypeInfoType::DATE_TIME;
-	}
-	if (StringUtil::Equals(value, "STRING")) {
-		return ArrowTypeInfoType::STRING;
-	}
-	if (StringUtil::Equals(value, "ARRAY")) {
-		return ArrowTypeInfoType::ARRAY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetArrowTypeInfoTypeValues(), 5, "ArrowTypeInfoType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetArrowVariableSizeTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ArrowVariableSizeType::NORMAL), "NORMAL" },
+		{ static_cast(ArrowVariableSizeType::FIXED_SIZE), "FIXED_SIZE" },
+		{ static_cast(ArrowVariableSizeType::SUPER_SIZE), "SUPER_SIZE" },
+		{ static_cast(ArrowVariableSizeType::VIEW), "VIEW" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ArrowVariableSizeType value) {
-	switch(value) {
-	case ArrowVariableSizeType::NORMAL:
-		return "NORMAL";
-	case ArrowVariableSizeType::FIXED_SIZE:
-		return "FIXED_SIZE";
-	case ArrowVariableSizeType::SUPER_SIZE:
-		return "SUPER_SIZE";
-	case ArrowVariableSizeType::VIEW:
-		return "VIEW";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetArrowVariableSizeTypeValues(), 4, "ArrowVariableSizeType", static_cast(value));
 }
 
 template<>
 ArrowVariableSizeType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NORMAL")) {
-		return ArrowVariableSizeType::NORMAL;
-	}
-	if (StringUtil::Equals(value, "FIXED_SIZE")) {
-		return ArrowVariableSizeType::FIXED_SIZE;
-	}
-	if (StringUtil::Equals(value, "SUPER_SIZE")) {
-		return ArrowVariableSizeType::SUPER_SIZE;
-	}
-	if (StringUtil::Equals(value, "VIEW")) {
-		return ArrowVariableSizeType::VIEW;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetArrowVariableSizeTypeValues(), 4, "ArrowVariableSizeType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetBinderTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(BinderType::REGULAR_BINDER), "REGULAR_BINDER" },
+		{ static_cast(BinderType::VIEW_BINDER), "VIEW_BINDER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(BinderType value) {
-	switch(value) {
-	case BinderType::REGULAR_BINDER:
-		return "REGULAR_BINDER";
-	case BinderType::VIEW_BINDER:
-		return "VIEW_BINDER";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetBinderTypeValues(), 2, "BinderType", static_cast(value));
 }
 
 template<>
 BinderType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "REGULAR_BINDER")) {
-		return BinderType::REGULAR_BINDER;
-	}
-	if (StringUtil::Equals(value, "VIEW_BINDER")) {
-		return BinderType::VIEW_BINDER;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetBinderTypeValues(), 2, "BinderType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetBindingModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(BindingMode::STANDARD_BINDING), "STANDARD_BINDING" },
+		{ static_cast(BindingMode::EXTRACT_NAMES), "EXTRACT_NAMES" },
+		{ static_cast(BindingMode::EXTRACT_REPLACEMENT_SCANS), "EXTRACT_REPLACEMENT_SCANS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(BindingMode value) {
-	switch(value) {
-	case BindingMode::STANDARD_BINDING:
-		return "STANDARD_BINDING";
-	case BindingMode::EXTRACT_NAMES:
-		return "EXTRACT_NAMES";
-	case BindingMode::EXTRACT_REPLACEMENT_SCANS:
-		return "EXTRACT_REPLACEMENT_SCANS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetBindingModeValues(), 3, "BindingMode", static_cast(value));
 }
 
 template<>
 BindingMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "STANDARD_BINDING")) {
-		return BindingMode::STANDARD_BINDING;
-	}
-	if (StringUtil::Equals(value, "EXTRACT_NAMES")) {
-		return BindingMode::EXTRACT_NAMES;
-	}
-	if (StringUtil::Equals(value, "EXTRACT_REPLACEMENT_SCANS")) {
-		return BindingMode::EXTRACT_REPLACEMENT_SCANS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetBindingModeValues(), 3, "BindingMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetBitpackingModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(BitpackingMode::INVALID), "INVALID" },
+		{ static_cast(BitpackingMode::AUTO), "AUTO" },
+		{ static_cast(BitpackingMode::CONSTANT), "CONSTANT" },
+		{ static_cast(BitpackingMode::CONSTANT_DELTA), "CONSTANT_DELTA" },
+		{ static_cast(BitpackingMode::DELTA_FOR), "DELTA_FOR" },
+		{ static_cast(BitpackingMode::FOR), "FOR" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(BitpackingMode value) {
-	switch(value) {
-	case BitpackingMode::INVALID:
-		return "INVALID";
-	case BitpackingMode::AUTO:
-		return "AUTO";
-	case BitpackingMode::CONSTANT:
-		return "CONSTANT";
-	case BitpackingMode::CONSTANT_DELTA:
-		return "CONSTANT_DELTA";
-	case BitpackingMode::DELTA_FOR:
-		return "DELTA_FOR";
-	case BitpackingMode::FOR:
-		return "FOR";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetBitpackingModeValues(), 6, "BitpackingMode", static_cast(value));
 }
 
 template<>
 BitpackingMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return BitpackingMode::INVALID;
-	}
-	if (StringUtil::Equals(value, "AUTO")) {
-		return BitpackingMode::AUTO;
-	}
-	if (StringUtil::Equals(value, "CONSTANT")) {
-		return BitpackingMode::CONSTANT;
-	}
-	if (StringUtil::Equals(value, "CONSTANT_DELTA")) {
-		return BitpackingMode::CONSTANT_DELTA;
-	}
-	if (StringUtil::Equals(value, "DELTA_FOR")) {
-		return BitpackingMode::DELTA_FOR;
-	}
-	if (StringUtil::Equals(value, "FOR")) {
-		return BitpackingMode::FOR;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetBitpackingModeValues(), 6, "BitpackingMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetBlockStateValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(BlockState::BLOCK_UNLOADED), "BLOCK_UNLOADED" },
+		{ static_cast(BlockState::BLOCK_LOADED), "BLOCK_LOADED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(BlockState value) {
-	switch(value) {
-	case BlockState::BLOCK_UNLOADED:
-		return "BLOCK_UNLOADED";
-	case BlockState::BLOCK_LOADED:
-		return "BLOCK_LOADED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetBlockStateValues(), 2, "BlockState", static_cast(value));
 }
 
 template<>
 BlockState EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "BLOCK_UNLOADED")) {
-		return BlockState::BLOCK_UNLOADED;
-	}
-	if (StringUtil::Equals(value, "BLOCK_LOADED")) {
-		return BlockState::BLOCK_LOADED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetBlockStateValues(), 2, "BlockState", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCAPIResultSetTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CAPIResultSetType::CAPI_RESULT_TYPE_NONE), "CAPI_RESULT_TYPE_NONE" },
+		{ static_cast(CAPIResultSetType::CAPI_RESULT_TYPE_MATERIALIZED), "CAPI_RESULT_TYPE_MATERIALIZED" },
+		{ static_cast(CAPIResultSetType::CAPI_RESULT_TYPE_STREAMING), "CAPI_RESULT_TYPE_STREAMING" },
+		{ static_cast(CAPIResultSetType::CAPI_RESULT_TYPE_DEPRECATED), "CAPI_RESULT_TYPE_DEPRECATED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CAPIResultSetType value) {
-	switch(value) {
-	case CAPIResultSetType::CAPI_RESULT_TYPE_NONE:
-		return "CAPI_RESULT_TYPE_NONE";
-	case CAPIResultSetType::CAPI_RESULT_TYPE_MATERIALIZED:
-		return "CAPI_RESULT_TYPE_MATERIALIZED";
-	case CAPIResultSetType::CAPI_RESULT_TYPE_STREAMING:
-		return "CAPI_RESULT_TYPE_STREAMING";
-	case CAPIResultSetType::CAPI_RESULT_TYPE_DEPRECATED:
-		return "CAPI_RESULT_TYPE_DEPRECATED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCAPIResultSetTypeValues(), 4, "CAPIResultSetType", static_cast(value));
 }
 
 template<>
 CAPIResultSetType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CAPI_RESULT_TYPE_NONE")) {
-		return CAPIResultSetType::CAPI_RESULT_TYPE_NONE;
-	}
-	if (StringUtil::Equals(value, "CAPI_RESULT_TYPE_MATERIALIZED")) {
-		return CAPIResultSetType::CAPI_RESULT_TYPE_MATERIALIZED;
-	}
-	if (StringUtil::Equals(value, "CAPI_RESULT_TYPE_STREAMING")) {
-		return CAPIResultSetType::CAPI_RESULT_TYPE_STREAMING;
-	}
-	if (StringUtil::Equals(value, "CAPI_RESULT_TYPE_DEPRECATED")) {
-		return CAPIResultSetType::CAPI_RESULT_TYPE_DEPRECATED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCAPIResultSetTypeValues(), 4, "CAPIResultSetType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCSVStateValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CSVState::STANDARD), "STANDARD" },
+		{ static_cast(CSVState::DELIMITER), "DELIMITER" },
+		{ static_cast(CSVState::DELIMITER_FIRST_BYTE), "DELIMITER_FIRST_BYTE" },
+		{ static_cast(CSVState::DELIMITER_SECOND_BYTE), "DELIMITER_SECOND_BYTE" },
+		{ static_cast(CSVState::DELIMITER_THIRD_BYTE), "DELIMITER_THIRD_BYTE" },
+		{ static_cast(CSVState::RECORD_SEPARATOR), "RECORD_SEPARATOR" },
+		{ static_cast(CSVState::CARRIAGE_RETURN), "CARRIAGE_RETURN" },
+		{ static_cast(CSVState::QUOTED), "QUOTED" },
+		{ static_cast(CSVState::UNQUOTED), "UNQUOTED" },
+		{ static_cast(CSVState::ESCAPE), "ESCAPE" },
+		{ static_cast(CSVState::INVALID), "INVALID" },
+		{ static_cast(CSVState::NOT_SET), "NOT_SET" },
+		{ static_cast(CSVState::QUOTED_NEW_LINE), "QUOTED_NEW_LINE" },
+		{ static_cast(CSVState::EMPTY_SPACE), "EMPTY_SPACE" },
+		{ static_cast(CSVState::COMMENT), "COMMENT" },
+		{ static_cast(CSVState::STANDARD_NEWLINE), "STANDARD_NEWLINE" },
+		{ static_cast(CSVState::UNQUOTED_ESCAPE), "UNQUOTED_ESCAPE" },
+		{ static_cast(CSVState::ESCAPED_RETURN), "ESCAPED_RETURN" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CSVState value) {
-	switch(value) {
-	case CSVState::STANDARD:
-		return "STANDARD";
-	case CSVState::DELIMITER:
-		return "DELIMITER";
-	case CSVState::RECORD_SEPARATOR:
-		return "RECORD_SEPARATOR";
-	case CSVState::CARRIAGE_RETURN:
-		return "CARRIAGE_RETURN";
-	case CSVState::QUOTED:
-		return "QUOTED";
-	case CSVState::UNQUOTED:
-		return "UNQUOTED";
-	case CSVState::ESCAPE:
-		return "ESCAPE";
-	case CSVState::INVALID:
-		return "INVALID";
-	case CSVState::NOT_SET:
-		return "NOT_SET";
-	case CSVState::QUOTED_NEW_LINE:
-		return "QUOTED_NEW_LINE";
-	case CSVState::EMPTY_SPACE:
-		return "EMPTY_SPACE";
-	case CSVState::COMMENT:
-		return "COMMENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCSVStateValues(), 18, "CSVState", static_cast(value));
 }
 
 template<>
 CSVState EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "STANDARD")) {
-		return CSVState::STANDARD;
-	}
-	if (StringUtil::Equals(value, "DELIMITER")) {
-		return CSVState::DELIMITER;
-	}
-	if (StringUtil::Equals(value, "RECORD_SEPARATOR")) {
-		return CSVState::RECORD_SEPARATOR;
-	}
-	if (StringUtil::Equals(value, "CARRIAGE_RETURN")) {
-		return CSVState::CARRIAGE_RETURN;
-	}
-	if (StringUtil::Equals(value, "QUOTED")) {
-		return CSVState::QUOTED;
-	}
-	if (StringUtil::Equals(value, "UNQUOTED")) {
-		return CSVState::UNQUOTED;
-	}
-	if (StringUtil::Equals(value, "ESCAPE")) {
-		return CSVState::ESCAPE;
-	}
-	if (StringUtil::Equals(value, "INVALID")) {
-		return CSVState::INVALID;
-	}
-	if (StringUtil::Equals(value, "NOT_SET")) {
-		return CSVState::NOT_SET;
-	}
-	if (StringUtil::Equals(value, "QUOTED_NEW_LINE")) {
-		return CSVState::QUOTED_NEW_LINE;
-	}
-	if (StringUtil::Equals(value, "EMPTY_SPACE")) {
-		return CSVState::EMPTY_SPACE;
-	}
-	if (StringUtil::Equals(value, "COMMENT")) {
-		return CSVState::COMMENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCSVStateValues(), 18, "CSVState", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCTEMaterializeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CTEMaterialize::CTE_MATERIALIZE_DEFAULT), "CTE_MATERIALIZE_DEFAULT" },
+		{ static_cast(CTEMaterialize::CTE_MATERIALIZE_ALWAYS), "CTE_MATERIALIZE_ALWAYS" },
+		{ static_cast(CTEMaterialize::CTE_MATERIALIZE_NEVER), "CTE_MATERIALIZE_NEVER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CTEMaterialize value) {
-	switch(value) {
-	case CTEMaterialize::CTE_MATERIALIZE_DEFAULT:
-		return "CTE_MATERIALIZE_DEFAULT";
-	case CTEMaterialize::CTE_MATERIALIZE_ALWAYS:
-		return "CTE_MATERIALIZE_ALWAYS";
-	case CTEMaterialize::CTE_MATERIALIZE_NEVER:
-		return "CTE_MATERIALIZE_NEVER";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCTEMaterializeValues(), 3, "CTEMaterialize", static_cast(value));
 }
 
 template<>
 CTEMaterialize EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CTE_MATERIALIZE_DEFAULT")) {
-		return CTEMaterialize::CTE_MATERIALIZE_DEFAULT;
-	}
-	if (StringUtil::Equals(value, "CTE_MATERIALIZE_ALWAYS")) {
-		return CTEMaterialize::CTE_MATERIALIZE_ALWAYS;
-	}
-	if (StringUtil::Equals(value, "CTE_MATERIALIZE_NEVER")) {
-		return CTEMaterialize::CTE_MATERIALIZE_NEVER;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCTEMaterializeValues(), 3, "CTEMaterialize", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCatalogLookupBehaviorValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CatalogLookupBehavior::STANDARD), "STANDARD" },
+		{ static_cast(CatalogLookupBehavior::LOWER_PRIORITY), "LOWER_PRIORITY" },
+		{ static_cast(CatalogLookupBehavior::NEVER_LOOKUP), "NEVER_LOOKUP" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CatalogLookupBehavior value) {
-	switch(value) {
-	case CatalogLookupBehavior::STANDARD:
-		return "STANDARD";
-	case CatalogLookupBehavior::LOWER_PRIORITY:
-		return "LOWER_PRIORITY";
-	case CatalogLookupBehavior::NEVER_LOOKUP:
-		return "NEVER_LOOKUP";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCatalogLookupBehaviorValues(), 3, "CatalogLookupBehavior", static_cast(value));
 }
 
 template<>
 CatalogLookupBehavior EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "STANDARD")) {
-		return CatalogLookupBehavior::STANDARD;
-	}
-	if (StringUtil::Equals(value, "LOWER_PRIORITY")) {
-		return CatalogLookupBehavior::LOWER_PRIORITY;
-	}
-	if (StringUtil::Equals(value, "NEVER_LOOKUP")) {
-		return CatalogLookupBehavior::NEVER_LOOKUP;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCatalogLookupBehaviorValues(), 3, "CatalogLookupBehavior", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCatalogTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CatalogType::INVALID), "INVALID" },
+		{ static_cast(CatalogType::TABLE_ENTRY), "TABLE_ENTRY" },
+		{ static_cast(CatalogType::SCHEMA_ENTRY), "SCHEMA_ENTRY" },
+		{ static_cast(CatalogType::VIEW_ENTRY), "VIEW_ENTRY" },
+		{ static_cast(CatalogType::INDEX_ENTRY), "INDEX_ENTRY" },
+		{ static_cast(CatalogType::PREPARED_STATEMENT), "PREPARED_STATEMENT" },
+		{ static_cast(CatalogType::SEQUENCE_ENTRY), "SEQUENCE_ENTRY" },
+		{ static_cast(CatalogType::COLLATION_ENTRY), "COLLATION_ENTRY" },
+		{ static_cast(CatalogType::TYPE_ENTRY), "TYPE_ENTRY" },
+		{ static_cast(CatalogType::DATABASE_ENTRY), "DATABASE_ENTRY" },
+		{ static_cast(CatalogType::TABLE_FUNCTION_ENTRY), "TABLE_FUNCTION_ENTRY" },
+		{ static_cast(CatalogType::SCALAR_FUNCTION_ENTRY), "SCALAR_FUNCTION_ENTRY" },
+		{ static_cast(CatalogType::AGGREGATE_FUNCTION_ENTRY), "AGGREGATE_FUNCTION_ENTRY" },
+		{ static_cast(CatalogType::PRAGMA_FUNCTION_ENTRY), "PRAGMA_FUNCTION_ENTRY" },
+		{ static_cast(CatalogType::COPY_FUNCTION_ENTRY), "COPY_FUNCTION_ENTRY" },
+		{ static_cast(CatalogType::MACRO_ENTRY), "MACRO_ENTRY" },
+		{ static_cast(CatalogType::TABLE_MACRO_ENTRY), "TABLE_MACRO_ENTRY" },
+		{ static_cast(CatalogType::DELETED_ENTRY), "DELETED_ENTRY" },
+		{ static_cast(CatalogType::RENAMED_ENTRY), "RENAMED_ENTRY" },
+		{ static_cast(CatalogType::SECRET_ENTRY), "SECRET_ENTRY" },
+		{ static_cast(CatalogType::SECRET_TYPE_ENTRY), "SECRET_TYPE_ENTRY" },
+		{ static_cast(CatalogType::SECRET_FUNCTION_ENTRY), "SECRET_FUNCTION_ENTRY" },
+		{ static_cast(CatalogType::DEPENDENCY_ENTRY), "DEPENDENCY_ENTRY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CatalogType value) {
-	switch(value) {
-	case CatalogType::INVALID:
-		return "INVALID";
-	case CatalogType::TABLE_ENTRY:
-		return "TABLE_ENTRY";
-	case CatalogType::SCHEMA_ENTRY:
-		return "SCHEMA_ENTRY";
-	case CatalogType::VIEW_ENTRY:
-		return "VIEW_ENTRY";
-	case CatalogType::INDEX_ENTRY:
-		return "INDEX_ENTRY";
-	case CatalogType::PREPARED_STATEMENT:
-		return "PREPARED_STATEMENT";
-	case CatalogType::SEQUENCE_ENTRY:
-		return "SEQUENCE_ENTRY";
-	case CatalogType::COLLATION_ENTRY:
-		return "COLLATION_ENTRY";
-	case CatalogType::TYPE_ENTRY:
-		return "TYPE_ENTRY";
-	case CatalogType::DATABASE_ENTRY:
-		return "DATABASE_ENTRY";
-	case CatalogType::TABLE_FUNCTION_ENTRY:
-		return "TABLE_FUNCTION_ENTRY";
-	case CatalogType::SCALAR_FUNCTION_ENTRY:
-		return "SCALAR_FUNCTION_ENTRY";
-	case CatalogType::AGGREGATE_FUNCTION_ENTRY:
-		return "AGGREGATE_FUNCTION_ENTRY";
-	case CatalogType::PRAGMA_FUNCTION_ENTRY:
-		return "PRAGMA_FUNCTION_ENTRY";
-	case CatalogType::COPY_FUNCTION_ENTRY:
-		return "COPY_FUNCTION_ENTRY";
-	case CatalogType::MACRO_ENTRY:
-		return "MACRO_ENTRY";
-	case CatalogType::TABLE_MACRO_ENTRY:
-		return "TABLE_MACRO_ENTRY";
-	case CatalogType::DELETED_ENTRY:
-		return "DELETED_ENTRY";
-	case CatalogType::RENAMED_ENTRY:
-		return "RENAMED_ENTRY";
-	case CatalogType::SECRET_ENTRY:
-		return "SECRET_ENTRY";
-	case CatalogType::SECRET_TYPE_ENTRY:
-		return "SECRET_TYPE_ENTRY";
-	case CatalogType::SECRET_FUNCTION_ENTRY:
-		return "SECRET_FUNCTION_ENTRY";
-	case CatalogType::DEPENDENCY_ENTRY:
-		return "DEPENDENCY_ENTRY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCatalogTypeValues(), 23, "CatalogType", static_cast(value));
 }
 
 template<>
 CatalogType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return CatalogType::INVALID;
-	}
-	if (StringUtil::Equals(value, "TABLE_ENTRY")) {
-		return CatalogType::TABLE_ENTRY;
-	}
-	if (StringUtil::Equals(value, "SCHEMA_ENTRY")) {
-		return CatalogType::SCHEMA_ENTRY;
-	}
-	if (StringUtil::Equals(value, "VIEW_ENTRY")) {
-		return CatalogType::VIEW_ENTRY;
-	}
-	if (StringUtil::Equals(value, "INDEX_ENTRY")) {
-		return CatalogType::INDEX_ENTRY;
-	}
-	if (StringUtil::Equals(value, "PREPARED_STATEMENT")) {
-		return CatalogType::PREPARED_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "SEQUENCE_ENTRY")) {
-		return CatalogType::SEQUENCE_ENTRY;
-	}
-	if (StringUtil::Equals(value, "COLLATION_ENTRY")) {
-		return CatalogType::COLLATION_ENTRY;
-	}
-	if (StringUtil::Equals(value, "TYPE_ENTRY")) {
-		return CatalogType::TYPE_ENTRY;
-	}
-	if (StringUtil::Equals(value, "DATABASE_ENTRY")) {
-		return CatalogType::DATABASE_ENTRY;
-	}
-	if (StringUtil::Equals(value, "TABLE_FUNCTION_ENTRY")) {
-		return CatalogType::TABLE_FUNCTION_ENTRY;
-	}
-	if (StringUtil::Equals(value, "SCALAR_FUNCTION_ENTRY")) {
-		return CatalogType::SCALAR_FUNCTION_ENTRY;
-	}
-	if (StringUtil::Equals(value, "AGGREGATE_FUNCTION_ENTRY")) {
-		return CatalogType::AGGREGATE_FUNCTION_ENTRY;
-	}
-	if (StringUtil::Equals(value, "PRAGMA_FUNCTION_ENTRY")) {
-		return CatalogType::PRAGMA_FUNCTION_ENTRY;
-	}
-	if (StringUtil::Equals(value, "COPY_FUNCTION_ENTRY")) {
-		return CatalogType::COPY_FUNCTION_ENTRY;
-	}
-	if (StringUtil::Equals(value, "MACRO_ENTRY")) {
-		return CatalogType::MACRO_ENTRY;
-	}
-	if (StringUtil::Equals(value, "TABLE_MACRO_ENTRY")) {
-		return CatalogType::TABLE_MACRO_ENTRY;
-	}
-	if (StringUtil::Equals(value, "DELETED_ENTRY")) {
-		return CatalogType::DELETED_ENTRY;
-	}
-	if (StringUtil::Equals(value, "RENAMED_ENTRY")) {
-		return CatalogType::RENAMED_ENTRY;
-	}
-	if (StringUtil::Equals(value, "SECRET_ENTRY")) {
-		return CatalogType::SECRET_ENTRY;
-	}
-	if (StringUtil::Equals(value, "SECRET_TYPE_ENTRY")) {
-		return CatalogType::SECRET_TYPE_ENTRY;
-	}
-	if (StringUtil::Equals(value, "SECRET_FUNCTION_ENTRY")) {
-		return CatalogType::SECRET_FUNCTION_ENTRY;
-	}
-	if (StringUtil::Equals(value, "DEPENDENCY_ENTRY")) {
-		return CatalogType::DEPENDENCY_ENTRY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCatalogTypeValues(), 23, "CatalogType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCheckpointAbortValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CheckpointAbort::NO_ABORT), "NONE" },
+		{ static_cast(CheckpointAbort::DEBUG_ABORT_BEFORE_TRUNCATE), "BEFORE_TRUNCATE" },
+		{ static_cast(CheckpointAbort::DEBUG_ABORT_BEFORE_HEADER), "BEFORE_HEADER" },
+		{ static_cast(CheckpointAbort::DEBUG_ABORT_AFTER_FREE_LIST_WRITE), "AFTER_FREE_LIST_WRITE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CheckpointAbort value) {
-	switch(value) {
-	case CheckpointAbort::NO_ABORT:
-		return "NO_ABORT";
-	case CheckpointAbort::DEBUG_ABORT_BEFORE_TRUNCATE:
-		return "DEBUG_ABORT_BEFORE_TRUNCATE";
-	case CheckpointAbort::DEBUG_ABORT_BEFORE_HEADER:
-		return "DEBUG_ABORT_BEFORE_HEADER";
-	case CheckpointAbort::DEBUG_ABORT_AFTER_FREE_LIST_WRITE:
-		return "DEBUG_ABORT_AFTER_FREE_LIST_WRITE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCheckpointAbortValues(), 4, "CheckpointAbort", static_cast(value));
 }
 
 template<>
 CheckpointAbort EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_ABORT")) {
-		return CheckpointAbort::NO_ABORT;
-	}
-	if (StringUtil::Equals(value, "DEBUG_ABORT_BEFORE_TRUNCATE")) {
-		return CheckpointAbort::DEBUG_ABORT_BEFORE_TRUNCATE;
-	}
-	if (StringUtil::Equals(value, "DEBUG_ABORT_BEFORE_HEADER")) {
-		return CheckpointAbort::DEBUG_ABORT_BEFORE_HEADER;
-	}
-	if (StringUtil::Equals(value, "DEBUG_ABORT_AFTER_FREE_LIST_WRITE")) {
-		return CheckpointAbort::DEBUG_ABORT_AFTER_FREE_LIST_WRITE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCheckpointAbortValues(), 4, "CheckpointAbort", value));
+}
+
+const StringUtil::EnumStringLiteral *GetChunkInfoTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ChunkInfoType::CONSTANT_INFO), "CONSTANT_INFO" },
+		{ static_cast(ChunkInfoType::VECTOR_INFO), "VECTOR_INFO" },
+		{ static_cast(ChunkInfoType::EMPTY_INFO), "EMPTY_INFO" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ChunkInfoType value) {
-	switch(value) {
-	case ChunkInfoType::CONSTANT_INFO:
-		return "CONSTANT_INFO";
-	case ChunkInfoType::VECTOR_INFO:
-		return "VECTOR_INFO";
-	case ChunkInfoType::EMPTY_INFO:
-		return "EMPTY_INFO";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetChunkInfoTypeValues(), 3, "ChunkInfoType", static_cast(value));
 }
 
 template<>
 ChunkInfoType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CONSTANT_INFO")) {
-		return ChunkInfoType::CONSTANT_INFO;
-	}
-	if (StringUtil::Equals(value, "VECTOR_INFO")) {
-		return ChunkInfoType::VECTOR_INFO;
-	}
-	if (StringUtil::Equals(value, "EMPTY_INFO")) {
-		return ChunkInfoType::EMPTY_INFO;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetChunkInfoTypeValues(), 3, "ChunkInfoType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetColumnDataAllocatorTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ColumnDataAllocatorType::BUFFER_MANAGER_ALLOCATOR), "BUFFER_MANAGER_ALLOCATOR" },
+		{ static_cast(ColumnDataAllocatorType::IN_MEMORY_ALLOCATOR), "IN_MEMORY_ALLOCATOR" },
+		{ static_cast(ColumnDataAllocatorType::HYBRID), "HYBRID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ColumnDataAllocatorType value) {
-	switch(value) {
-	case ColumnDataAllocatorType::BUFFER_MANAGER_ALLOCATOR:
-		return "BUFFER_MANAGER_ALLOCATOR";
-	case ColumnDataAllocatorType::IN_MEMORY_ALLOCATOR:
-		return "IN_MEMORY_ALLOCATOR";
-	case ColumnDataAllocatorType::HYBRID:
-		return "HYBRID";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetColumnDataAllocatorTypeValues(), 3, "ColumnDataAllocatorType", static_cast(value));
 }
 
 template<>
 ColumnDataAllocatorType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "BUFFER_MANAGER_ALLOCATOR")) {
-		return ColumnDataAllocatorType::BUFFER_MANAGER_ALLOCATOR;
-	}
-	if (StringUtil::Equals(value, "IN_MEMORY_ALLOCATOR")) {
-		return ColumnDataAllocatorType::IN_MEMORY_ALLOCATOR;
-	}
-	if (StringUtil::Equals(value, "HYBRID")) {
-		return ColumnDataAllocatorType::HYBRID;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetColumnDataAllocatorTypeValues(), 3, "ColumnDataAllocatorType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetColumnDataScanPropertiesValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ColumnDataScanProperties::INVALID), "INVALID" },
+		{ static_cast(ColumnDataScanProperties::ALLOW_ZERO_COPY), "ALLOW_ZERO_COPY" },
+		{ static_cast(ColumnDataScanProperties::DISALLOW_ZERO_COPY), "DISALLOW_ZERO_COPY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ColumnDataScanProperties value) {
-	switch(value) {
-	case ColumnDataScanProperties::INVALID:
-		return "INVALID";
-	case ColumnDataScanProperties::ALLOW_ZERO_COPY:
-		return "ALLOW_ZERO_COPY";
-	case ColumnDataScanProperties::DISALLOW_ZERO_COPY:
-		return "DISALLOW_ZERO_COPY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetColumnDataScanPropertiesValues(), 3, "ColumnDataScanProperties", static_cast(value));
 }
 
 template<>
 ColumnDataScanProperties EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return ColumnDataScanProperties::INVALID;
-	}
-	if (StringUtil::Equals(value, "ALLOW_ZERO_COPY")) {
-		return ColumnDataScanProperties::ALLOW_ZERO_COPY;
-	}
-	if (StringUtil::Equals(value, "DISALLOW_ZERO_COPY")) {
-		return ColumnDataScanProperties::DISALLOW_ZERO_COPY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetColumnDataScanPropertiesValues(), 3, "ColumnDataScanProperties", value));
+}
+
+const StringUtil::EnumStringLiteral *GetColumnSegmentTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ColumnSegmentType::TRANSIENT), "TRANSIENT" },
+		{ static_cast(ColumnSegmentType::PERSISTENT), "PERSISTENT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ColumnSegmentType value) {
-	switch(value) {
-	case ColumnSegmentType::TRANSIENT:
-		return "TRANSIENT";
-	case ColumnSegmentType::PERSISTENT:
-		return "PERSISTENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetColumnSegmentTypeValues(), 2, "ColumnSegmentType", static_cast(value));
 }
 
 template<>
 ColumnSegmentType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "TRANSIENT")) {
-		return ColumnSegmentType::TRANSIENT;
-	}
-	if (StringUtil::Equals(value, "PERSISTENT")) {
-		return ColumnSegmentType::PERSISTENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetColumnSegmentTypeValues(), 2, "ColumnSegmentType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCompressedMaterializationDirectionValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CompressedMaterializationDirection::INVALID), "INVALID" },
+		{ static_cast(CompressedMaterializationDirection::COMPRESS), "COMPRESS" },
+		{ static_cast(CompressedMaterializationDirection::DECOMPRESS), "DECOMPRESS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CompressedMaterializationDirection value) {
-	switch(value) {
-	case CompressedMaterializationDirection::INVALID:
-		return "INVALID";
-	case CompressedMaterializationDirection::COMPRESS:
-		return "COMPRESS";
-	case CompressedMaterializationDirection::DECOMPRESS:
-		return "DECOMPRESS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCompressedMaterializationDirectionValues(), 3, "CompressedMaterializationDirection", static_cast(value));
 }
 
 template<>
 CompressedMaterializationDirection EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return CompressedMaterializationDirection::INVALID;
-	}
-	if (StringUtil::Equals(value, "COMPRESS")) {
-		return CompressedMaterializationDirection::COMPRESS;
-	}
-	if (StringUtil::Equals(value, "DECOMPRESS")) {
-		return CompressedMaterializationDirection::DECOMPRESS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCompressedMaterializationDirectionValues(), 3, "CompressedMaterializationDirection", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCompressionTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CompressionType::COMPRESSION_AUTO), "COMPRESSION_AUTO" },
+		{ static_cast(CompressionType::COMPRESSION_UNCOMPRESSED), "COMPRESSION_UNCOMPRESSED" },
+		{ static_cast(CompressionType::COMPRESSION_CONSTANT), "COMPRESSION_CONSTANT" },
+		{ static_cast(CompressionType::COMPRESSION_RLE), "COMPRESSION_RLE" },
+		{ static_cast(CompressionType::COMPRESSION_DICTIONARY), "COMPRESSION_DICTIONARY" },
+		{ static_cast(CompressionType::COMPRESSION_PFOR_DELTA), "COMPRESSION_PFOR_DELTA" },
+		{ static_cast(CompressionType::COMPRESSION_BITPACKING), "COMPRESSION_BITPACKING" },
+		{ static_cast(CompressionType::COMPRESSION_FSST), "COMPRESSION_FSST" },
+		{ static_cast(CompressionType::COMPRESSION_CHIMP), "COMPRESSION_CHIMP" },
+		{ static_cast(CompressionType::COMPRESSION_PATAS), "COMPRESSION_PATAS" },
+		{ static_cast(CompressionType::COMPRESSION_ALP), "COMPRESSION_ALP" },
+		{ static_cast(CompressionType::COMPRESSION_ALPRD), "COMPRESSION_ALPRD" },
+		{ static_cast(CompressionType::COMPRESSION_ZSTD), "COMPRESSION_ZSTD" },
+		{ static_cast(CompressionType::COMPRESSION_ROARING), "COMPRESSION_ROARING" },
+		{ static_cast(CompressionType::COMPRESSION_COUNT), "COMPRESSION_COUNT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CompressionType value) {
-	switch(value) {
-	case CompressionType::COMPRESSION_AUTO:
-		return "COMPRESSION_AUTO";
-	case CompressionType::COMPRESSION_UNCOMPRESSED:
-		return "COMPRESSION_UNCOMPRESSED";
-	case CompressionType::COMPRESSION_CONSTANT:
-		return "COMPRESSION_CONSTANT";
-	case CompressionType::COMPRESSION_RLE:
-		return "COMPRESSION_RLE";
-	case CompressionType::COMPRESSION_DICTIONARY:
-		return "COMPRESSION_DICTIONARY";
-	case CompressionType::COMPRESSION_PFOR_DELTA:
-		return "COMPRESSION_PFOR_DELTA";
-	case CompressionType::COMPRESSION_BITPACKING:
-		return "COMPRESSION_BITPACKING";
-	case CompressionType::COMPRESSION_FSST:
-		return "COMPRESSION_FSST";
-	case CompressionType::COMPRESSION_CHIMP:
-		return "COMPRESSION_CHIMP";
-	case CompressionType::COMPRESSION_PATAS:
-		return "COMPRESSION_PATAS";
-	case CompressionType::COMPRESSION_ALP:
-		return "COMPRESSION_ALP";
-	case CompressionType::COMPRESSION_ALPRD:
-		return "COMPRESSION_ALPRD";
-	case CompressionType::COMPRESSION_COUNT:
-		return "COMPRESSION_COUNT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCompressionTypeValues(), 15, "CompressionType", static_cast(value));
 }
 
 template<>
 CompressionType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "COMPRESSION_AUTO")) {
-		return CompressionType::COMPRESSION_AUTO;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_UNCOMPRESSED")) {
-		return CompressionType::COMPRESSION_UNCOMPRESSED;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_CONSTANT")) {
-		return CompressionType::COMPRESSION_CONSTANT;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_RLE")) {
-		return CompressionType::COMPRESSION_RLE;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_DICTIONARY")) {
-		return CompressionType::COMPRESSION_DICTIONARY;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_PFOR_DELTA")) {
-		return CompressionType::COMPRESSION_PFOR_DELTA;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_BITPACKING")) {
-		return CompressionType::COMPRESSION_BITPACKING;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_FSST")) {
-		return CompressionType::COMPRESSION_FSST;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_CHIMP")) {
-		return CompressionType::COMPRESSION_CHIMP;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_PATAS")) {
-		return CompressionType::COMPRESSION_PATAS;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_ALP")) {
-		return CompressionType::COMPRESSION_ALP;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_ALPRD")) {
-		return CompressionType::COMPRESSION_ALPRD;
-	}
-	if (StringUtil::Equals(value, "COMPRESSION_COUNT")) {
-		return CompressionType::COMPRESSION_COUNT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCompressionTypeValues(), 15, "CompressionType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetConflictManagerModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ConflictManagerMode::SCAN), "SCAN" },
+		{ static_cast(ConflictManagerMode::THROW), "THROW" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ConflictManagerMode value) {
-	switch(value) {
-	case ConflictManagerMode::SCAN:
-		return "SCAN";
-	case ConflictManagerMode::THROW:
-		return "THROW";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetConflictManagerModeValues(), 2, "ConflictManagerMode", static_cast(value));
 }
 
 template<>
 ConflictManagerMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SCAN")) {
-		return ConflictManagerMode::SCAN;
-	}
-	if (StringUtil::Equals(value, "THROW")) {
-		return ConflictManagerMode::THROW;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetConflictManagerModeValues(), 2, "ConflictManagerMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetConstraintTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ConstraintType::INVALID), "INVALID" },
+		{ static_cast(ConstraintType::NOT_NULL), "NOT_NULL" },
+		{ static_cast(ConstraintType::CHECK), "CHECK" },
+		{ static_cast(ConstraintType::UNIQUE), "UNIQUE" },
+		{ static_cast(ConstraintType::FOREIGN_KEY), "FOREIGN_KEY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ConstraintType value) {
-	switch(value) {
-	case ConstraintType::INVALID:
-		return "INVALID";
-	case ConstraintType::NOT_NULL:
-		return "NOT_NULL";
-	case ConstraintType::CHECK:
-		return "CHECK";
-	case ConstraintType::UNIQUE:
-		return "UNIQUE";
-	case ConstraintType::FOREIGN_KEY:
-		return "FOREIGN_KEY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetConstraintTypeValues(), 5, "ConstraintType", static_cast(value));
 }
 
 template<>
 ConstraintType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return ConstraintType::INVALID;
-	}
-	if (StringUtil::Equals(value, "NOT_NULL")) {
-		return ConstraintType::NOT_NULL;
-	}
-	if (StringUtil::Equals(value, "CHECK")) {
-		return ConstraintType::CHECK;
-	}
-	if (StringUtil::Equals(value, "UNIQUE")) {
-		return ConstraintType::UNIQUE;
-	}
-	if (StringUtil::Equals(value, "FOREIGN_KEY")) {
-		return ConstraintType::FOREIGN_KEY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetConstraintTypeValues(), 5, "ConstraintType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCopyFunctionReturnTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CopyFunctionReturnType::CHANGED_ROWS), "CHANGED_ROWS" },
+		{ static_cast(CopyFunctionReturnType::CHANGED_ROWS_AND_FILE_LIST), "CHANGED_ROWS_AND_FILE_LIST" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CopyFunctionReturnType value) {
-	switch(value) {
-	case CopyFunctionReturnType::CHANGED_ROWS:
-		return "CHANGED_ROWS";
-	case CopyFunctionReturnType::CHANGED_ROWS_AND_FILE_LIST:
-		return "CHANGED_ROWS_AND_FILE_LIST";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCopyFunctionReturnTypeValues(), 2, "CopyFunctionReturnType", static_cast(value));
 }
 
 template<>
 CopyFunctionReturnType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CHANGED_ROWS")) {
-		return CopyFunctionReturnType::CHANGED_ROWS;
-	}
-	if (StringUtil::Equals(value, "CHANGED_ROWS_AND_FILE_LIST")) {
-		return CopyFunctionReturnType::CHANGED_ROWS_AND_FILE_LIST;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCopyFunctionReturnTypeValues(), 2, "CopyFunctionReturnType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCopyOverwriteModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CopyOverwriteMode::COPY_ERROR_ON_CONFLICT), "COPY_ERROR_ON_CONFLICT" },
+		{ static_cast(CopyOverwriteMode::COPY_OVERWRITE), "COPY_OVERWRITE" },
+		{ static_cast(CopyOverwriteMode::COPY_OVERWRITE_OR_IGNORE), "COPY_OVERWRITE_OR_IGNORE" },
+		{ static_cast(CopyOverwriteMode::COPY_APPEND), "COPY_APPEND" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CopyOverwriteMode value) {
-	switch(value) {
-	case CopyOverwriteMode::COPY_ERROR_ON_CONFLICT:
-		return "COPY_ERROR_ON_CONFLICT";
-	case CopyOverwriteMode::COPY_OVERWRITE:
-		return "COPY_OVERWRITE";
-	case CopyOverwriteMode::COPY_OVERWRITE_OR_IGNORE:
-		return "COPY_OVERWRITE_OR_IGNORE";
-	case CopyOverwriteMode::COPY_APPEND:
-		return "COPY_APPEND";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCopyOverwriteModeValues(), 4, "CopyOverwriteMode", static_cast(value));
 }
 
 template<>
 CopyOverwriteMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "COPY_ERROR_ON_CONFLICT")) {
-		return CopyOverwriteMode::COPY_ERROR_ON_CONFLICT;
-	}
-	if (StringUtil::Equals(value, "COPY_OVERWRITE")) {
-		return CopyOverwriteMode::COPY_OVERWRITE;
-	}
-	if (StringUtil::Equals(value, "COPY_OVERWRITE_OR_IGNORE")) {
-		return CopyOverwriteMode::COPY_OVERWRITE_OR_IGNORE;
-	}
-	if (StringUtil::Equals(value, "COPY_APPEND")) {
-		return CopyOverwriteMode::COPY_APPEND;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCopyOverwriteModeValues(), 4, "CopyOverwriteMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetCopyToTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(CopyToType::COPY_TO_FILE), "COPY_TO_FILE" },
+		{ static_cast(CopyToType::EXPORT_DATABASE), "EXPORT_DATABASE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(CopyToType value) {
-	switch(value) {
-	case CopyToType::COPY_TO_FILE:
-		return "COPY_TO_FILE";
-	case CopyToType::EXPORT_DATABASE:
-		return "EXPORT_DATABASE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetCopyToTypeValues(), 2, "CopyToType", static_cast(value));
 }
 
 template<>
 CopyToType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "COPY_TO_FILE")) {
-		return CopyToType::COPY_TO_FILE;
-	}
-	if (StringUtil::Equals(value, "EXPORT_DATABASE")) {
-		return CopyToType::EXPORT_DATABASE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetCopyToTypeValues(), 2, "CopyToType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDataFileTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DataFileType::FILE_DOES_NOT_EXIST), "FILE_DOES_NOT_EXIST" },
+		{ static_cast(DataFileType::DUCKDB_FILE), "DUCKDB_FILE" },
+		{ static_cast(DataFileType::SQLITE_FILE), "SQLITE_FILE" },
+		{ static_cast(DataFileType::PARQUET_FILE), "PARQUET_FILE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DataFileType value) {
-	switch(value) {
-	case DataFileType::FILE_DOES_NOT_EXIST:
-		return "FILE_DOES_NOT_EXIST";
-	case DataFileType::DUCKDB_FILE:
-		return "DUCKDB_FILE";
-	case DataFileType::SQLITE_FILE:
-		return "SQLITE_FILE";
-	case DataFileType::PARQUET_FILE:
-		return "PARQUET_FILE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDataFileTypeValues(), 4, "DataFileType", static_cast(value));
 }
 
 template<>
 DataFileType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "FILE_DOES_NOT_EXIST")) {
-		return DataFileType::FILE_DOES_NOT_EXIST;
-	}
-	if (StringUtil::Equals(value, "DUCKDB_FILE")) {
-		return DataFileType::DUCKDB_FILE;
-	}
-	if (StringUtil::Equals(value, "SQLITE_FILE")) {
-		return DataFileType::SQLITE_FILE;
-	}
-	if (StringUtil::Equals(value, "PARQUET_FILE")) {
-		return DataFileType::PARQUET_FILE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDataFileTypeValues(), 4, "DataFileType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDatePartSpecifierValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DatePartSpecifier::YEAR), "YEAR" },
+		{ static_cast(DatePartSpecifier::MONTH), "MONTH" },
+		{ static_cast(DatePartSpecifier::DAY), "DAY" },
+		{ static_cast(DatePartSpecifier::DECADE), "DECADE" },
+		{ static_cast(DatePartSpecifier::CENTURY), "CENTURY" },
+		{ static_cast(DatePartSpecifier::MILLENNIUM), "MILLENNIUM" },
+		{ static_cast(DatePartSpecifier::MICROSECONDS), "MICROSECONDS" },
+		{ static_cast(DatePartSpecifier::MILLISECONDS), "MILLISECONDS" },
+		{ static_cast(DatePartSpecifier::SECOND), "SECOND" },
+		{ static_cast(DatePartSpecifier::MINUTE), "MINUTE" },
+		{ static_cast(DatePartSpecifier::HOUR), "HOUR" },
+		{ static_cast(DatePartSpecifier::DOW), "DOW" },
+		{ static_cast(DatePartSpecifier::ISODOW), "ISODOW" },
+		{ static_cast(DatePartSpecifier::WEEK), "WEEK" },
+		{ static_cast(DatePartSpecifier::ISOYEAR), "ISOYEAR" },
+		{ static_cast(DatePartSpecifier::QUARTER), "QUARTER" },
+		{ static_cast(DatePartSpecifier::DOY), "DOY" },
+		{ static_cast(DatePartSpecifier::YEARWEEK), "YEARWEEK" },
+		{ static_cast(DatePartSpecifier::ERA), "ERA" },
+		{ static_cast(DatePartSpecifier::TIMEZONE), "TIMEZONE" },
+		{ static_cast(DatePartSpecifier::TIMEZONE_HOUR), "TIMEZONE_HOUR" },
+		{ static_cast(DatePartSpecifier::TIMEZONE_MINUTE), "TIMEZONE_MINUTE" },
+		{ static_cast(DatePartSpecifier::EPOCH), "EPOCH" },
+		{ static_cast(DatePartSpecifier::JULIAN_DAY), "JULIAN_DAY" },
+		{ static_cast(DatePartSpecifier::INVALID), "INVALID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DatePartSpecifier value) {
-	switch(value) {
-	case DatePartSpecifier::YEAR:
-		return "YEAR";
-	case DatePartSpecifier::MONTH:
-		return "MONTH";
-	case DatePartSpecifier::DAY:
-		return "DAY";
-	case DatePartSpecifier::DECADE:
-		return "DECADE";
-	case DatePartSpecifier::CENTURY:
-		return "CENTURY";
-	case DatePartSpecifier::MILLENNIUM:
-		return "MILLENNIUM";
-	case DatePartSpecifier::MICROSECONDS:
-		return "MICROSECONDS";
-	case DatePartSpecifier::MILLISECONDS:
-		return "MILLISECONDS";
-	case DatePartSpecifier::SECOND:
-		return "SECOND";
-	case DatePartSpecifier::MINUTE:
-		return "MINUTE";
-	case DatePartSpecifier::HOUR:
-		return "HOUR";
-	case DatePartSpecifier::DOW:
-		return "DOW";
-	case DatePartSpecifier::ISODOW:
-		return "ISODOW";
-	case DatePartSpecifier::WEEK:
-		return "WEEK";
-	case DatePartSpecifier::ISOYEAR:
-		return "ISOYEAR";
-	case DatePartSpecifier::QUARTER:
-		return "QUARTER";
-	case DatePartSpecifier::DOY:
-		return "DOY";
-	case DatePartSpecifier::YEARWEEK:
-		return "YEARWEEK";
-	case DatePartSpecifier::ERA:
-		return "ERA";
-	case DatePartSpecifier::TIMEZONE:
-		return "TIMEZONE";
-	case DatePartSpecifier::TIMEZONE_HOUR:
-		return "TIMEZONE_HOUR";
-	case DatePartSpecifier::TIMEZONE_MINUTE:
-		return "TIMEZONE_MINUTE";
-	case DatePartSpecifier::EPOCH:
-		return "EPOCH";
-	case DatePartSpecifier::JULIAN_DAY:
-		return "JULIAN_DAY";
-	case DatePartSpecifier::INVALID:
-		return "INVALID";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDatePartSpecifierValues(), 25, "DatePartSpecifier", static_cast(value));
 }
 
 template<>
 DatePartSpecifier EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "YEAR")) {
-		return DatePartSpecifier::YEAR;
-	}
-	if (StringUtil::Equals(value, "MONTH")) {
-		return DatePartSpecifier::MONTH;
-	}
-	if (StringUtil::Equals(value, "DAY")) {
-		return DatePartSpecifier::DAY;
-	}
-	if (StringUtil::Equals(value, "DECADE")) {
-		return DatePartSpecifier::DECADE;
-	}
-	if (StringUtil::Equals(value, "CENTURY")) {
-		return DatePartSpecifier::CENTURY;
-	}
-	if (StringUtil::Equals(value, "MILLENNIUM")) {
-		return DatePartSpecifier::MILLENNIUM;
-	}
-	if (StringUtil::Equals(value, "MICROSECONDS")) {
-		return DatePartSpecifier::MICROSECONDS;
-	}
-	if (StringUtil::Equals(value, "MILLISECONDS")) {
-		return DatePartSpecifier::MILLISECONDS;
-	}
-	if (StringUtil::Equals(value, "SECOND")) {
-		return DatePartSpecifier::SECOND;
-	}
-	if (StringUtil::Equals(value, "MINUTE")) {
-		return DatePartSpecifier::MINUTE;
-	}
-	if (StringUtil::Equals(value, "HOUR")) {
-		return DatePartSpecifier::HOUR;
-	}
-	if (StringUtil::Equals(value, "DOW")) {
-		return DatePartSpecifier::DOW;
-	}
-	if (StringUtil::Equals(value, "ISODOW")) {
-		return DatePartSpecifier::ISODOW;
-	}
-	if (StringUtil::Equals(value, "WEEK")) {
-		return DatePartSpecifier::WEEK;
-	}
-	if (StringUtil::Equals(value, "ISOYEAR")) {
-		return DatePartSpecifier::ISOYEAR;
-	}
-	if (StringUtil::Equals(value, "QUARTER")) {
-		return DatePartSpecifier::QUARTER;
-	}
-	if (StringUtil::Equals(value, "DOY")) {
-		return DatePartSpecifier::DOY;
-	}
-	if (StringUtil::Equals(value, "YEARWEEK")) {
-		return DatePartSpecifier::YEARWEEK;
-	}
-	if (StringUtil::Equals(value, "ERA")) {
-		return DatePartSpecifier::ERA;
-	}
-	if (StringUtil::Equals(value, "TIMEZONE")) {
-		return DatePartSpecifier::TIMEZONE;
-	}
-	if (StringUtil::Equals(value, "TIMEZONE_HOUR")) {
-		return DatePartSpecifier::TIMEZONE_HOUR;
-	}
-	if (StringUtil::Equals(value, "TIMEZONE_MINUTE")) {
-		return DatePartSpecifier::TIMEZONE_MINUTE;
-	}
-	if (StringUtil::Equals(value, "EPOCH")) {
-		return DatePartSpecifier::EPOCH;
-	}
-	if (StringUtil::Equals(value, "JULIAN_DAY")) {
-		return DatePartSpecifier::JULIAN_DAY;
-	}
-	if (StringUtil::Equals(value, "INVALID")) {
-		return DatePartSpecifier::INVALID;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDatePartSpecifierValues(), 25, "DatePartSpecifier", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDebugInitializeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DebugInitialize::NO_INITIALIZE), "NO_INITIALIZE" },
+		{ static_cast(DebugInitialize::DEBUG_ZERO_INITIALIZE), "DEBUG_ZERO_INITIALIZE" },
+		{ static_cast(DebugInitialize::DEBUG_ONE_INITIALIZE), "DEBUG_ONE_INITIALIZE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DebugInitialize value) {
-	switch(value) {
-	case DebugInitialize::NO_INITIALIZE:
-		return "NO_INITIALIZE";
-	case DebugInitialize::DEBUG_ZERO_INITIALIZE:
-		return "DEBUG_ZERO_INITIALIZE";
-	case DebugInitialize::DEBUG_ONE_INITIALIZE:
-		return "DEBUG_ONE_INITIALIZE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDebugInitializeValues(), 3, "DebugInitialize", static_cast(value));
 }
 
 template<>
 DebugInitialize EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_INITIALIZE")) {
-		return DebugInitialize::NO_INITIALIZE;
-	}
-	if (StringUtil::Equals(value, "DEBUG_ZERO_INITIALIZE")) {
-		return DebugInitialize::DEBUG_ZERO_INITIALIZE;
-	}
-	if (StringUtil::Equals(value, "DEBUG_ONE_INITIALIZE")) {
-		return DebugInitialize::DEBUG_ONE_INITIALIZE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDebugInitializeValues(), 3, "DebugInitialize", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDefaultOrderByNullTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DefaultOrderByNullType::INVALID), "INVALID" },
+		{ static_cast(DefaultOrderByNullType::NULLS_FIRST), "NULLS_FIRST" },
+		{ static_cast(DefaultOrderByNullType::NULLS_LAST), "NULLS_LAST" },
+		{ static_cast(DefaultOrderByNullType::NULLS_FIRST_ON_ASC_LAST_ON_DESC), "NULLS_FIRST_ON_ASC_LAST_ON_DESC" },
+		{ static_cast(DefaultOrderByNullType::NULLS_LAST_ON_ASC_FIRST_ON_DESC), "NULLS_LAST_ON_ASC_FIRST_ON_DESC" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DefaultOrderByNullType value) {
-	switch(value) {
-	case DefaultOrderByNullType::INVALID:
-		return "INVALID";
-	case DefaultOrderByNullType::NULLS_FIRST:
-		return "NULLS_FIRST";
-	case DefaultOrderByNullType::NULLS_LAST:
-		return "NULLS_LAST";
-	case DefaultOrderByNullType::NULLS_FIRST_ON_ASC_LAST_ON_DESC:
-		return "NULLS_FIRST_ON_ASC_LAST_ON_DESC";
-	case DefaultOrderByNullType::NULLS_LAST_ON_ASC_FIRST_ON_DESC:
-		return "NULLS_LAST_ON_ASC_FIRST_ON_DESC";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDefaultOrderByNullTypeValues(), 5, "DefaultOrderByNullType", static_cast(value));
 }
 
 template<>
 DefaultOrderByNullType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return DefaultOrderByNullType::INVALID;
-	}
-	if (StringUtil::Equals(value, "NULLS_FIRST")) {
-		return DefaultOrderByNullType::NULLS_FIRST;
-	}
-	if (StringUtil::Equals(value, "NULLS_LAST")) {
-		return DefaultOrderByNullType::NULLS_LAST;
-	}
-	if (StringUtil::Equals(value, "NULLS_FIRST_ON_ASC_LAST_ON_DESC")) {
-		return DefaultOrderByNullType::NULLS_FIRST_ON_ASC_LAST_ON_DESC;
-	}
-	if (StringUtil::Equals(value, "NULLS_LAST_ON_ASC_FIRST_ON_DESC")) {
-		return DefaultOrderByNullType::NULLS_LAST_ON_ASC_FIRST_ON_DESC;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDefaultOrderByNullTypeValues(), 5, "DefaultOrderByNullType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDependencyEntryTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DependencyEntryType::SUBJECT), "SUBJECT" },
+		{ static_cast(DependencyEntryType::DEPENDENT), "DEPENDENT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DependencyEntryType value) {
-	switch(value) {
-	case DependencyEntryType::SUBJECT:
-		return "SUBJECT";
-	case DependencyEntryType::DEPENDENT:
-		return "DEPENDENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDependencyEntryTypeValues(), 2, "DependencyEntryType", static_cast(value));
 }
 
 template<>
 DependencyEntryType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SUBJECT")) {
-		return DependencyEntryType::SUBJECT;
-	}
-	if (StringUtil::Equals(value, "DEPENDENT")) {
-		return DependencyEntryType::DEPENDENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDependencyEntryTypeValues(), 2, "DependencyEntryType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDeprecatedIndexTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DeprecatedIndexType::INVALID), "INVALID" },
+		{ static_cast(DeprecatedIndexType::ART), "ART" },
+		{ static_cast(DeprecatedIndexType::EXTENSION), "EXTENSION" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DeprecatedIndexType value) {
-	switch(value) {
-	case DeprecatedIndexType::INVALID:
-		return "INVALID";
-	case DeprecatedIndexType::ART:
-		return "ART";
-	case DeprecatedIndexType::EXTENSION:
-		return "EXTENSION";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDeprecatedIndexTypeValues(), 3, "DeprecatedIndexType", static_cast(value));
 }
 
 template<>
 DeprecatedIndexType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return DeprecatedIndexType::INVALID;
-	}
-	if (StringUtil::Equals(value, "ART")) {
-		return DeprecatedIndexType::ART;
-	}
-	if (StringUtil::Equals(value, "EXTENSION")) {
-		return DeprecatedIndexType::EXTENSION;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDeprecatedIndexTypeValues(), 3, "DeprecatedIndexType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDestroyBufferUponValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DestroyBufferUpon::BLOCK), "BLOCK" },
+		{ static_cast(DestroyBufferUpon::EVICTION), "EVICTION" },
+		{ static_cast(DestroyBufferUpon::UNPIN), "UNPIN" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DestroyBufferUpon value) {
-	switch(value) {
-	case DestroyBufferUpon::BLOCK:
-		return "BLOCK";
-	case DestroyBufferUpon::EVICTION:
-		return "EVICTION";
-	case DestroyBufferUpon::UNPIN:
-		return "UNPIN";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDestroyBufferUponValues(), 3, "DestroyBufferUpon", static_cast(value));
 }
 
 template<>
 DestroyBufferUpon EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "BLOCK")) {
-		return DestroyBufferUpon::BLOCK;
-	}
-	if (StringUtil::Equals(value, "EVICTION")) {
-		return DestroyBufferUpon::EVICTION;
-	}
-	if (StringUtil::Equals(value, "UNPIN")) {
-		return DestroyBufferUpon::UNPIN;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDestroyBufferUponValues(), 3, "DestroyBufferUpon", value));
+}
+
+const StringUtil::EnumStringLiteral *GetDistinctTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(DistinctType::DISTINCT), "DISTINCT" },
+		{ static_cast(DistinctType::DISTINCT_ON), "DISTINCT_ON" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(DistinctType value) {
-	switch(value) {
-	case DistinctType::DISTINCT:
-		return "DISTINCT";
-	case DistinctType::DISTINCT_ON:
-		return "DISTINCT_ON";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetDistinctTypeValues(), 2, "DistinctType", static_cast(value));
 }
 
 template<>
 DistinctType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "DISTINCT")) {
-		return DistinctType::DISTINCT;
-	}
-	if (StringUtil::Equals(value, "DISTINCT_ON")) {
-		return DistinctType::DISTINCT_ON;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetDistinctTypeValues(), 2, "DistinctType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetErrorTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ErrorType::UNSIGNED_EXTENSION), "UNSIGNED_EXTENSION" },
+		{ static_cast(ErrorType::INVALIDATED_TRANSACTION), "INVALIDATED_TRANSACTION" },
+		{ static_cast(ErrorType::INVALIDATED_DATABASE), "INVALIDATED_DATABASE" },
+		{ static_cast(ErrorType::ERROR_COUNT), "ERROR_COUNT" },
+		{ static_cast(ErrorType::INVALID), "INVALID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ErrorType value) {
-	switch(value) {
-	case ErrorType::UNSIGNED_EXTENSION:
-		return "UNSIGNED_EXTENSION";
-	case ErrorType::INVALIDATED_TRANSACTION:
-		return "INVALIDATED_TRANSACTION";
-	case ErrorType::INVALIDATED_DATABASE:
-		return "INVALIDATED_DATABASE";
-	case ErrorType::ERROR_COUNT:
-		return "ERROR_COUNT";
-	case ErrorType::INVALID:
-		return "INVALID";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetErrorTypeValues(), 5, "ErrorType", static_cast(value));
 }
 
 template<>
 ErrorType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "UNSIGNED_EXTENSION")) {
-		return ErrorType::UNSIGNED_EXTENSION;
-	}
-	if (StringUtil::Equals(value, "INVALIDATED_TRANSACTION")) {
-		return ErrorType::INVALIDATED_TRANSACTION;
-	}
-	if (StringUtil::Equals(value, "INVALIDATED_DATABASE")) {
-		return ErrorType::INVALIDATED_DATABASE;
-	}
-	if (StringUtil::Equals(value, "ERROR_COUNT")) {
-		return ErrorType::ERROR_COUNT;
-	}
-	if (StringUtil::Equals(value, "INVALID")) {
-		return ErrorType::INVALID;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetErrorTypeValues(), 5, "ErrorType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExceptionFormatValueTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExceptionFormatValueType::FORMAT_VALUE_TYPE_DOUBLE), "FORMAT_VALUE_TYPE_DOUBLE" },
+		{ static_cast(ExceptionFormatValueType::FORMAT_VALUE_TYPE_INTEGER), "FORMAT_VALUE_TYPE_INTEGER" },
+		{ static_cast(ExceptionFormatValueType::FORMAT_VALUE_TYPE_STRING), "FORMAT_VALUE_TYPE_STRING" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExceptionFormatValueType value) {
-	switch(value) {
-	case ExceptionFormatValueType::FORMAT_VALUE_TYPE_DOUBLE:
-		return "FORMAT_VALUE_TYPE_DOUBLE";
-	case ExceptionFormatValueType::FORMAT_VALUE_TYPE_INTEGER:
-		return "FORMAT_VALUE_TYPE_INTEGER";
-	case ExceptionFormatValueType::FORMAT_VALUE_TYPE_STRING:
-		return "FORMAT_VALUE_TYPE_STRING";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExceptionFormatValueTypeValues(), 3, "ExceptionFormatValueType", static_cast(value));
 }
 
 template<>
 ExceptionFormatValueType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "FORMAT_VALUE_TYPE_DOUBLE")) {
-		return ExceptionFormatValueType::FORMAT_VALUE_TYPE_DOUBLE;
-	}
-	if (StringUtil::Equals(value, "FORMAT_VALUE_TYPE_INTEGER")) {
-		return ExceptionFormatValueType::FORMAT_VALUE_TYPE_INTEGER;
-	}
-	if (StringUtil::Equals(value, "FORMAT_VALUE_TYPE_STRING")) {
-		return ExceptionFormatValueType::FORMAT_VALUE_TYPE_STRING;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExceptionFormatValueTypeValues(), 3, "ExceptionFormatValueType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExceptionTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExceptionType::INVALID), "INVALID" },
+		{ static_cast(ExceptionType::OUT_OF_RANGE), "OUT_OF_RANGE" },
+		{ static_cast(ExceptionType::CONVERSION), "CONVERSION" },
+		{ static_cast(ExceptionType::UNKNOWN_TYPE), "UNKNOWN_TYPE" },
+		{ static_cast(ExceptionType::DECIMAL), "DECIMAL" },
+		{ static_cast(ExceptionType::MISMATCH_TYPE), "MISMATCH_TYPE" },
+		{ static_cast(ExceptionType::DIVIDE_BY_ZERO), "DIVIDE_BY_ZERO" },
+		{ static_cast(ExceptionType::OBJECT_SIZE), "OBJECT_SIZE" },
+		{ static_cast(ExceptionType::INVALID_TYPE), "INVALID_TYPE" },
+		{ static_cast(ExceptionType::SERIALIZATION), "SERIALIZATION" },
+		{ static_cast(ExceptionType::TRANSACTION), "TRANSACTION" },
+		{ static_cast(ExceptionType::NOT_IMPLEMENTED), "NOT_IMPLEMENTED" },
+		{ static_cast(ExceptionType::EXPRESSION), "EXPRESSION" },
+		{ static_cast(ExceptionType::CATALOG), "CATALOG" },
+		{ static_cast(ExceptionType::PARSER), "PARSER" },
+		{ static_cast(ExceptionType::PLANNER), "PLANNER" },
+		{ static_cast(ExceptionType::SCHEDULER), "SCHEDULER" },
+		{ static_cast(ExceptionType::EXECUTOR), "EXECUTOR" },
+		{ static_cast(ExceptionType::CONSTRAINT), "CONSTRAINT" },
+		{ static_cast(ExceptionType::INDEX), "INDEX" },
+		{ static_cast(ExceptionType::STAT), "STAT" },
+		{ static_cast(ExceptionType::CONNECTION), "CONNECTION" },
+		{ static_cast(ExceptionType::SYNTAX), "SYNTAX" },
+		{ static_cast(ExceptionType::SETTINGS), "SETTINGS" },
+		{ static_cast(ExceptionType::BINDER), "BINDER" },
+		{ static_cast(ExceptionType::NETWORK), "NETWORK" },
+		{ static_cast(ExceptionType::OPTIMIZER), "OPTIMIZER" },
+		{ static_cast(ExceptionType::NULL_POINTER), "NULL_POINTER" },
+		{ static_cast(ExceptionType::IO), "IO" },
+		{ static_cast(ExceptionType::INTERRUPT), "INTERRUPT" },
+		{ static_cast(ExceptionType::FATAL), "FATAL" },
+		{ static_cast(ExceptionType::INTERNAL), "INTERNAL" },
+		{ static_cast(ExceptionType::INVALID_INPUT), "INVALID_INPUT" },
+		{ static_cast(ExceptionType::OUT_OF_MEMORY), "OUT_OF_MEMORY" },
+		{ static_cast(ExceptionType::PERMISSION), "PERMISSION" },
+		{ static_cast(ExceptionType::PARAMETER_NOT_RESOLVED), "PARAMETER_NOT_RESOLVED" },
+		{ static_cast(ExceptionType::PARAMETER_NOT_ALLOWED), "PARAMETER_NOT_ALLOWED" },
+		{ static_cast(ExceptionType::DEPENDENCY), "DEPENDENCY" },
+		{ static_cast(ExceptionType::HTTP), "HTTP" },
+		{ static_cast(ExceptionType::MISSING_EXTENSION), "MISSING_EXTENSION" },
+		{ static_cast(ExceptionType::AUTOLOAD), "AUTOLOAD" },
+		{ static_cast(ExceptionType::SEQUENCE), "SEQUENCE" },
+		{ static_cast(ExceptionType::INVALID_CONFIGURATION), "INVALID_CONFIGURATION" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExceptionType value) {
-	switch(value) {
-	case ExceptionType::INVALID:
-		return "INVALID";
-	case ExceptionType::OUT_OF_RANGE:
-		return "OUT_OF_RANGE";
-	case ExceptionType::CONVERSION:
-		return "CONVERSION";
-	case ExceptionType::UNKNOWN_TYPE:
-		return "UNKNOWN_TYPE";
-	case ExceptionType::DECIMAL:
-		return "DECIMAL";
-	case ExceptionType::MISMATCH_TYPE:
-		return "MISMATCH_TYPE";
-	case ExceptionType::DIVIDE_BY_ZERO:
-		return "DIVIDE_BY_ZERO";
-	case ExceptionType::OBJECT_SIZE:
-		return "OBJECT_SIZE";
-	case ExceptionType::INVALID_TYPE:
-		return "INVALID_TYPE";
-	case ExceptionType::SERIALIZATION:
-		return "SERIALIZATION";
-	case ExceptionType::TRANSACTION:
-		return "TRANSACTION";
-	case ExceptionType::NOT_IMPLEMENTED:
-		return "NOT_IMPLEMENTED";
-	case ExceptionType::EXPRESSION:
-		return "EXPRESSION";
-	case ExceptionType::CATALOG:
-		return "CATALOG";
-	case ExceptionType::PARSER:
-		return "PARSER";
-	case ExceptionType::PLANNER:
-		return "PLANNER";
-	case ExceptionType::SCHEDULER:
-		return "SCHEDULER";
-	case ExceptionType::EXECUTOR:
-		return "EXECUTOR";
-	case ExceptionType::CONSTRAINT:
-		return "CONSTRAINT";
-	case ExceptionType::INDEX:
-		return "INDEX";
-	case ExceptionType::STAT:
-		return "STAT";
-	case ExceptionType::CONNECTION:
-		return "CONNECTION";
-	case ExceptionType::SYNTAX:
-		return "SYNTAX";
-	case ExceptionType::SETTINGS:
-		return "SETTINGS";
-	case ExceptionType::BINDER:
-		return "BINDER";
-	case ExceptionType::NETWORK:
-		return "NETWORK";
-	case ExceptionType::OPTIMIZER:
-		return "OPTIMIZER";
-	case ExceptionType::NULL_POINTER:
-		return "NULL_POINTER";
-	case ExceptionType::IO:
-		return "IO";
-	case ExceptionType::INTERRUPT:
-		return "INTERRUPT";
-	case ExceptionType::FATAL:
-		return "FATAL";
-	case ExceptionType::INTERNAL:
-		return "INTERNAL";
-	case ExceptionType::INVALID_INPUT:
-		return "INVALID_INPUT";
-	case ExceptionType::OUT_OF_MEMORY:
-		return "OUT_OF_MEMORY";
-	case ExceptionType::PERMISSION:
-		return "PERMISSION";
-	case ExceptionType::PARAMETER_NOT_RESOLVED:
-		return "PARAMETER_NOT_RESOLVED";
-	case ExceptionType::PARAMETER_NOT_ALLOWED:
-		return "PARAMETER_NOT_ALLOWED";
-	case ExceptionType::DEPENDENCY:
-		return "DEPENDENCY";
-	case ExceptionType::HTTP:
-		return "HTTP";
-	case ExceptionType::MISSING_EXTENSION:
-		return "MISSING_EXTENSION";
-	case ExceptionType::AUTOLOAD:
-		return "AUTOLOAD";
-	case ExceptionType::SEQUENCE:
-		return "SEQUENCE";
-	case ExceptionType::INVALID_CONFIGURATION:
-		return "INVALID_CONFIGURATION";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExceptionTypeValues(), 43, "ExceptionType", static_cast(value));
 }
 
 template<>
 ExceptionType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return ExceptionType::INVALID;
-	}
-	if (StringUtil::Equals(value, "OUT_OF_RANGE")) {
-		return ExceptionType::OUT_OF_RANGE;
-	}
-	if (StringUtil::Equals(value, "CONVERSION")) {
-		return ExceptionType::CONVERSION;
-	}
-	if (StringUtil::Equals(value, "UNKNOWN_TYPE")) {
-		return ExceptionType::UNKNOWN_TYPE;
-	}
-	if (StringUtil::Equals(value, "DECIMAL")) {
-		return ExceptionType::DECIMAL;
-	}
-	if (StringUtil::Equals(value, "MISMATCH_TYPE")) {
-		return ExceptionType::MISMATCH_TYPE;
-	}
-	if (StringUtil::Equals(value, "DIVIDE_BY_ZERO")) {
-		return ExceptionType::DIVIDE_BY_ZERO;
-	}
-	if (StringUtil::Equals(value, "OBJECT_SIZE")) {
-		return ExceptionType::OBJECT_SIZE;
-	}
-	if (StringUtil::Equals(value, "INVALID_TYPE")) {
-		return ExceptionType::INVALID_TYPE;
-	}
-	if (StringUtil::Equals(value, "SERIALIZATION")) {
-		return ExceptionType::SERIALIZATION;
-	}
-	if (StringUtil::Equals(value, "TRANSACTION")) {
-		return ExceptionType::TRANSACTION;
-	}
-	if (StringUtil::Equals(value, "NOT_IMPLEMENTED")) {
-		return ExceptionType::NOT_IMPLEMENTED;
-	}
-	if (StringUtil::Equals(value, "EXPRESSION")) {
-		return ExceptionType::EXPRESSION;
-	}
-	if (StringUtil::Equals(value, "CATALOG")) {
-		return ExceptionType::CATALOG;
-	}
-	if (StringUtil::Equals(value, "PARSER")) {
-		return ExceptionType::PARSER;
-	}
-	if (StringUtil::Equals(value, "PLANNER")) {
-		return ExceptionType::PLANNER;
-	}
-	if (StringUtil::Equals(value, "SCHEDULER")) {
-		return ExceptionType::SCHEDULER;
-	}
-	if (StringUtil::Equals(value, "EXECUTOR")) {
-		return ExceptionType::EXECUTOR;
-	}
-	if (StringUtil::Equals(value, "CONSTRAINT")) {
-		return ExceptionType::CONSTRAINT;
-	}
-	if (StringUtil::Equals(value, "INDEX")) {
-		return ExceptionType::INDEX;
-	}
-	if (StringUtil::Equals(value, "STAT")) {
-		return ExceptionType::STAT;
-	}
-	if (StringUtil::Equals(value, "CONNECTION")) {
-		return ExceptionType::CONNECTION;
-	}
-	if (StringUtil::Equals(value, "SYNTAX")) {
-		return ExceptionType::SYNTAX;
-	}
-	if (StringUtil::Equals(value, "SETTINGS")) {
-		return ExceptionType::SETTINGS;
-	}
-	if (StringUtil::Equals(value, "BINDER")) {
-		return ExceptionType::BINDER;
-	}
-	if (StringUtil::Equals(value, "NETWORK")) {
-		return ExceptionType::NETWORK;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER")) {
-		return ExceptionType::OPTIMIZER;
-	}
-	if (StringUtil::Equals(value, "NULL_POINTER")) {
-		return ExceptionType::NULL_POINTER;
-	}
-	if (StringUtil::Equals(value, "IO")) {
-		return ExceptionType::IO;
-	}
-	if (StringUtil::Equals(value, "INTERRUPT")) {
-		return ExceptionType::INTERRUPT;
-	}
-	if (StringUtil::Equals(value, "FATAL")) {
-		return ExceptionType::FATAL;
-	}
-	if (StringUtil::Equals(value, "INTERNAL")) {
-		return ExceptionType::INTERNAL;
-	}
-	if (StringUtil::Equals(value, "INVALID_INPUT")) {
-		return ExceptionType::INVALID_INPUT;
-	}
-	if (StringUtil::Equals(value, "OUT_OF_MEMORY")) {
-		return ExceptionType::OUT_OF_MEMORY;
-	}
-	if (StringUtil::Equals(value, "PERMISSION")) {
-		return ExceptionType::PERMISSION;
-	}
-	if (StringUtil::Equals(value, "PARAMETER_NOT_RESOLVED")) {
-		return ExceptionType::PARAMETER_NOT_RESOLVED;
-	}
-	if (StringUtil::Equals(value, "PARAMETER_NOT_ALLOWED")) {
-		return ExceptionType::PARAMETER_NOT_ALLOWED;
-	}
-	if (StringUtil::Equals(value, "DEPENDENCY")) {
-		return ExceptionType::DEPENDENCY;
-	}
-	if (StringUtil::Equals(value, "HTTP")) {
-		return ExceptionType::HTTP;
-	}
-	if (StringUtil::Equals(value, "MISSING_EXTENSION")) {
-		return ExceptionType::MISSING_EXTENSION;
-	}
-	if (StringUtil::Equals(value, "AUTOLOAD")) {
-		return ExceptionType::AUTOLOAD;
-	}
-	if (StringUtil::Equals(value, "SEQUENCE")) {
-		return ExceptionType::SEQUENCE;
-	}
-	if (StringUtil::Equals(value, "INVALID_CONFIGURATION")) {
-		return ExceptionType::INVALID_CONFIGURATION;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExceptionTypeValues(), 43, "ExceptionType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExplainFormatValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExplainFormat::DEFAULT), "DEFAULT" },
+		{ static_cast(ExplainFormat::TEXT), "TEXT" },
+		{ static_cast(ExplainFormat::JSON), "JSON" },
+		{ static_cast(ExplainFormat::HTML), "HTML" },
+		{ static_cast(ExplainFormat::GRAPHVIZ), "GRAPHVIZ" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExplainFormat value) {
-	switch(value) {
-	case ExplainFormat::DEFAULT:
-		return "DEFAULT";
-	case ExplainFormat::TEXT:
-		return "TEXT";
-	case ExplainFormat::JSON:
-		return "JSON";
-	case ExplainFormat::HTML:
-		return "HTML";
-	case ExplainFormat::GRAPHVIZ:
-		return "GRAPHVIZ";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExplainFormatValues(), 5, "ExplainFormat", static_cast(value));
 }
 
 template<>
 ExplainFormat EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "DEFAULT")) {
-		return ExplainFormat::DEFAULT;
-	}
-	if (StringUtil::Equals(value, "TEXT")) {
-		return ExplainFormat::TEXT;
-	}
-	if (StringUtil::Equals(value, "JSON")) {
-		return ExplainFormat::JSON;
-	}
-	if (StringUtil::Equals(value, "HTML")) {
-		return ExplainFormat::HTML;
-	}
-	if (StringUtil::Equals(value, "GRAPHVIZ")) {
-		return ExplainFormat::GRAPHVIZ;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExplainFormatValues(), 5, "ExplainFormat", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExplainOutputTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExplainOutputType::ALL), "ALL" },
+		{ static_cast(ExplainOutputType::OPTIMIZED_ONLY), "OPTIMIZED_ONLY" },
+		{ static_cast(ExplainOutputType::PHYSICAL_ONLY), "PHYSICAL_ONLY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExplainOutputType value) {
-	switch(value) {
-	case ExplainOutputType::ALL:
-		return "ALL";
-	case ExplainOutputType::OPTIMIZED_ONLY:
-		return "OPTIMIZED_ONLY";
-	case ExplainOutputType::PHYSICAL_ONLY:
-		return "PHYSICAL_ONLY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExplainOutputTypeValues(), 3, "ExplainOutputType", static_cast(value));
 }
 
 template<>
 ExplainOutputType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ALL")) {
-		return ExplainOutputType::ALL;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZED_ONLY")) {
-		return ExplainOutputType::OPTIMIZED_ONLY;
-	}
-	if (StringUtil::Equals(value, "PHYSICAL_ONLY")) {
-		return ExplainOutputType::PHYSICAL_ONLY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExplainOutputTypeValues(), 3, "ExplainOutputType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExplainTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExplainType::EXPLAIN_STANDARD), "EXPLAIN_STANDARD" },
+		{ static_cast(ExplainType::EXPLAIN_ANALYZE), "EXPLAIN_ANALYZE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExplainType value) {
-	switch(value) {
-	case ExplainType::EXPLAIN_STANDARD:
-		return "EXPLAIN_STANDARD";
-	case ExplainType::EXPLAIN_ANALYZE:
-		return "EXPLAIN_ANALYZE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExplainTypeValues(), 2, "ExplainType", static_cast(value));
 }
 
 template<>
 ExplainType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "EXPLAIN_STANDARD")) {
-		return ExplainType::EXPLAIN_STANDARD;
-	}
-	if (StringUtil::Equals(value, "EXPLAIN_ANALYZE")) {
-		return ExplainType::EXPLAIN_ANALYZE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExplainTypeValues(), 2, "ExplainType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExponentTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExponentType::NONE), "NONE" },
+		{ static_cast(ExponentType::POSITIVE), "POSITIVE" },
+		{ static_cast(ExponentType::NEGATIVE), "NEGATIVE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExponentType value) {
-	switch(value) {
-	case ExponentType::NONE:
-		return "NONE";
-	case ExponentType::POSITIVE:
-		return "POSITIVE";
-	case ExponentType::NEGATIVE:
-		return "NEGATIVE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExponentTypeValues(), 3, "ExponentType", static_cast(value));
 }
 
 template<>
 ExponentType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NONE")) {
-		return ExponentType::NONE;
-	}
-	if (StringUtil::Equals(value, "POSITIVE")) {
-		return ExponentType::POSITIVE;
-	}
-	if (StringUtil::Equals(value, "NEGATIVE")) {
-		return ExponentType::NEGATIVE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExponentTypeValues(), 3, "ExponentType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExpressionClassValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExpressionClass::INVALID), "INVALID" },
+		{ static_cast(ExpressionClass::AGGREGATE), "AGGREGATE" },
+		{ static_cast(ExpressionClass::CASE), "CASE" },
+		{ static_cast(ExpressionClass::CAST), "CAST" },
+		{ static_cast(ExpressionClass::COLUMN_REF), "COLUMN_REF" },
+		{ static_cast(ExpressionClass::COMPARISON), "COMPARISON" },
+		{ static_cast(ExpressionClass::CONJUNCTION), "CONJUNCTION" },
+		{ static_cast(ExpressionClass::CONSTANT), "CONSTANT" },
+		{ static_cast(ExpressionClass::DEFAULT), "DEFAULT" },
+		{ static_cast(ExpressionClass::FUNCTION), "FUNCTION" },
+		{ static_cast(ExpressionClass::OPERATOR), "OPERATOR" },
+		{ static_cast(ExpressionClass::STAR), "STAR" },
+		{ static_cast(ExpressionClass::SUBQUERY), "SUBQUERY" },
+		{ static_cast(ExpressionClass::WINDOW), "WINDOW" },
+		{ static_cast(ExpressionClass::PARAMETER), "PARAMETER" },
+		{ static_cast(ExpressionClass::COLLATE), "COLLATE" },
+		{ static_cast(ExpressionClass::LAMBDA), "LAMBDA" },
+		{ static_cast(ExpressionClass::POSITIONAL_REFERENCE), "POSITIONAL_REFERENCE" },
+		{ static_cast(ExpressionClass::BETWEEN), "BETWEEN" },
+		{ static_cast(ExpressionClass::LAMBDA_REF), "LAMBDA_REF" },
+		{ static_cast(ExpressionClass::BOUND_AGGREGATE), "BOUND_AGGREGATE" },
+		{ static_cast(ExpressionClass::BOUND_CASE), "BOUND_CASE" },
+		{ static_cast(ExpressionClass::BOUND_CAST), "BOUND_CAST" },
+		{ static_cast(ExpressionClass::BOUND_COLUMN_REF), "BOUND_COLUMN_REF" },
+		{ static_cast(ExpressionClass::BOUND_COMPARISON), "BOUND_COMPARISON" },
+		{ static_cast(ExpressionClass::BOUND_CONJUNCTION), "BOUND_CONJUNCTION" },
+		{ static_cast(ExpressionClass::BOUND_CONSTANT), "BOUND_CONSTANT" },
+		{ static_cast(ExpressionClass::BOUND_DEFAULT), "BOUND_DEFAULT" },
+		{ static_cast(ExpressionClass::BOUND_FUNCTION), "BOUND_FUNCTION" },
+		{ static_cast(ExpressionClass::BOUND_OPERATOR), "BOUND_OPERATOR" },
+		{ static_cast(ExpressionClass::BOUND_PARAMETER), "BOUND_PARAMETER" },
+		{ static_cast(ExpressionClass::BOUND_REF), "BOUND_REF" },
+		{ static_cast(ExpressionClass::BOUND_SUBQUERY), "BOUND_SUBQUERY" },
+		{ static_cast(ExpressionClass::BOUND_WINDOW), "BOUND_WINDOW" },
+		{ static_cast(ExpressionClass::BOUND_BETWEEN), "BOUND_BETWEEN" },
+		{ static_cast(ExpressionClass::BOUND_UNNEST), "BOUND_UNNEST" },
+		{ static_cast(ExpressionClass::BOUND_LAMBDA), "BOUND_LAMBDA" },
+		{ static_cast(ExpressionClass::BOUND_LAMBDA_REF), "BOUND_LAMBDA_REF" },
+		{ static_cast(ExpressionClass::BOUND_EXPRESSION), "BOUND_EXPRESSION" },
+		{ static_cast(ExpressionClass::BOUND_EXPANDED), "BOUND_EXPANDED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExpressionClass value) {
-	switch(value) {
-	case ExpressionClass::INVALID:
-		return "INVALID";
-	case ExpressionClass::AGGREGATE:
-		return "AGGREGATE";
-	case ExpressionClass::CASE:
-		return "CASE";
-	case ExpressionClass::CAST:
-		return "CAST";
-	case ExpressionClass::COLUMN_REF:
-		return "COLUMN_REF";
-	case ExpressionClass::COMPARISON:
-		return "COMPARISON";
-	case ExpressionClass::CONJUNCTION:
-		return "CONJUNCTION";
-	case ExpressionClass::CONSTANT:
-		return "CONSTANT";
-	case ExpressionClass::DEFAULT:
-		return "DEFAULT";
-	case ExpressionClass::FUNCTION:
-		return "FUNCTION";
-	case ExpressionClass::OPERATOR:
-		return "OPERATOR";
-	case ExpressionClass::STAR:
-		return "STAR";
-	case ExpressionClass::SUBQUERY:
-		return "SUBQUERY";
-	case ExpressionClass::WINDOW:
-		return "WINDOW";
-	case ExpressionClass::PARAMETER:
-		return "PARAMETER";
-	case ExpressionClass::COLLATE:
-		return "COLLATE";
-	case ExpressionClass::LAMBDA:
-		return "LAMBDA";
-	case ExpressionClass::POSITIONAL_REFERENCE:
-		return "POSITIONAL_REFERENCE";
-	case ExpressionClass::BETWEEN:
-		return "BETWEEN";
-	case ExpressionClass::LAMBDA_REF:
-		return "LAMBDA_REF";
-	case ExpressionClass::BOUND_AGGREGATE:
-		return "BOUND_AGGREGATE";
-	case ExpressionClass::BOUND_CASE:
-		return "BOUND_CASE";
-	case ExpressionClass::BOUND_CAST:
-		return "BOUND_CAST";
-	case ExpressionClass::BOUND_COLUMN_REF:
-		return "BOUND_COLUMN_REF";
-	case ExpressionClass::BOUND_COMPARISON:
-		return "BOUND_COMPARISON";
-	case ExpressionClass::BOUND_CONJUNCTION:
-		return "BOUND_CONJUNCTION";
-	case ExpressionClass::BOUND_CONSTANT:
-		return "BOUND_CONSTANT";
-	case ExpressionClass::BOUND_DEFAULT:
-		return "BOUND_DEFAULT";
-	case ExpressionClass::BOUND_FUNCTION:
-		return "BOUND_FUNCTION";
-	case ExpressionClass::BOUND_OPERATOR:
-		return "BOUND_OPERATOR";
-	case ExpressionClass::BOUND_PARAMETER:
-		return "BOUND_PARAMETER";
-	case ExpressionClass::BOUND_REF:
-		return "BOUND_REF";
-	case ExpressionClass::BOUND_SUBQUERY:
-		return "BOUND_SUBQUERY";
-	case ExpressionClass::BOUND_WINDOW:
-		return "BOUND_WINDOW";
-	case ExpressionClass::BOUND_BETWEEN:
-		return "BOUND_BETWEEN";
-	case ExpressionClass::BOUND_UNNEST:
-		return "BOUND_UNNEST";
-	case ExpressionClass::BOUND_LAMBDA:
-		return "BOUND_LAMBDA";
-	case ExpressionClass::BOUND_LAMBDA_REF:
-		return "BOUND_LAMBDA_REF";
-	case ExpressionClass::BOUND_EXPRESSION:
-		return "BOUND_EXPRESSION";
-	case ExpressionClass::BOUND_EXPANDED:
-		return "BOUND_EXPANDED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExpressionClassValues(), 40, "ExpressionClass", static_cast(value));
 }
 
 template<>
 ExpressionClass EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return ExpressionClass::INVALID;
-	}
-	if (StringUtil::Equals(value, "AGGREGATE")) {
-		return ExpressionClass::AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "CASE")) {
-		return ExpressionClass::CASE;
-	}
-	if (StringUtil::Equals(value, "CAST")) {
-		return ExpressionClass::CAST;
-	}
-	if (StringUtil::Equals(value, "COLUMN_REF")) {
-		return ExpressionClass::COLUMN_REF;
-	}
-	if (StringUtil::Equals(value, "COMPARISON")) {
-		return ExpressionClass::COMPARISON;
-	}
-	if (StringUtil::Equals(value, "CONJUNCTION")) {
-		return ExpressionClass::CONJUNCTION;
-	}
-	if (StringUtil::Equals(value, "CONSTANT")) {
-		return ExpressionClass::CONSTANT;
-	}
-	if (StringUtil::Equals(value, "DEFAULT")) {
-		return ExpressionClass::DEFAULT;
-	}
-	if (StringUtil::Equals(value, "FUNCTION")) {
-		return ExpressionClass::FUNCTION;
-	}
-	if (StringUtil::Equals(value, "OPERATOR")) {
-		return ExpressionClass::OPERATOR;
-	}
-	if (StringUtil::Equals(value, "STAR")) {
-		return ExpressionClass::STAR;
-	}
-	if (StringUtil::Equals(value, "SUBQUERY")) {
-		return ExpressionClass::SUBQUERY;
-	}
-	if (StringUtil::Equals(value, "WINDOW")) {
-		return ExpressionClass::WINDOW;
-	}
-	if (StringUtil::Equals(value, "PARAMETER")) {
-		return ExpressionClass::PARAMETER;
-	}
-	if (StringUtil::Equals(value, "COLLATE")) {
-		return ExpressionClass::COLLATE;
-	}
-	if (StringUtil::Equals(value, "LAMBDA")) {
-		return ExpressionClass::LAMBDA;
-	}
-	if (StringUtil::Equals(value, "POSITIONAL_REFERENCE")) {
-		return ExpressionClass::POSITIONAL_REFERENCE;
-	}
-	if (StringUtil::Equals(value, "BETWEEN")) {
-		return ExpressionClass::BETWEEN;
-	}
-	if (StringUtil::Equals(value, "LAMBDA_REF")) {
-		return ExpressionClass::LAMBDA_REF;
-	}
-	if (StringUtil::Equals(value, "BOUND_AGGREGATE")) {
-		return ExpressionClass::BOUND_AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "BOUND_CASE")) {
-		return ExpressionClass::BOUND_CASE;
-	}
-	if (StringUtil::Equals(value, "BOUND_CAST")) {
-		return ExpressionClass::BOUND_CAST;
-	}
-	if (StringUtil::Equals(value, "BOUND_COLUMN_REF")) {
-		return ExpressionClass::BOUND_COLUMN_REF;
-	}
-	if (StringUtil::Equals(value, "BOUND_COMPARISON")) {
-		return ExpressionClass::BOUND_COMPARISON;
-	}
-	if (StringUtil::Equals(value, "BOUND_CONJUNCTION")) {
-		return ExpressionClass::BOUND_CONJUNCTION;
-	}
-	if (StringUtil::Equals(value, "BOUND_CONSTANT")) {
-		return ExpressionClass::BOUND_CONSTANT;
-	}
-	if (StringUtil::Equals(value, "BOUND_DEFAULT")) {
-		return ExpressionClass::BOUND_DEFAULT;
-	}
-	if (StringUtil::Equals(value, "BOUND_FUNCTION")) {
-		return ExpressionClass::BOUND_FUNCTION;
-	}
-	if (StringUtil::Equals(value, "BOUND_OPERATOR")) {
-		return ExpressionClass::BOUND_OPERATOR;
-	}
-	if (StringUtil::Equals(value, "BOUND_PARAMETER")) {
-		return ExpressionClass::BOUND_PARAMETER;
-	}
-	if (StringUtil::Equals(value, "BOUND_REF")) {
-		return ExpressionClass::BOUND_REF;
-	}
-	if (StringUtil::Equals(value, "BOUND_SUBQUERY")) {
-		return ExpressionClass::BOUND_SUBQUERY;
-	}
-	if (StringUtil::Equals(value, "BOUND_WINDOW")) {
-		return ExpressionClass::BOUND_WINDOW;
-	}
-	if (StringUtil::Equals(value, "BOUND_BETWEEN")) {
-		return ExpressionClass::BOUND_BETWEEN;
-	}
-	if (StringUtil::Equals(value, "BOUND_UNNEST")) {
-		return ExpressionClass::BOUND_UNNEST;
-	}
-	if (StringUtil::Equals(value, "BOUND_LAMBDA")) {
-		return ExpressionClass::BOUND_LAMBDA;
-	}
-	if (StringUtil::Equals(value, "BOUND_LAMBDA_REF")) {
-		return ExpressionClass::BOUND_LAMBDA_REF;
-	}
-	if (StringUtil::Equals(value, "BOUND_EXPRESSION")) {
-		return ExpressionClass::BOUND_EXPRESSION;
-	}
-	if (StringUtil::Equals(value, "BOUND_EXPANDED")) {
-		return ExpressionClass::BOUND_EXPANDED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExpressionClassValues(), 40, "ExpressionClass", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExpressionTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExpressionType::INVALID), "INVALID" },
+		{ static_cast(ExpressionType::OPERATOR_CAST), "OPERATOR_CAST" },
+		{ static_cast(ExpressionType::OPERATOR_NOT), "OPERATOR_NOT" },
+		{ static_cast(ExpressionType::OPERATOR_IS_NULL), "OPERATOR_IS_NULL" },
+		{ static_cast(ExpressionType::OPERATOR_IS_NOT_NULL), "OPERATOR_IS_NOT_NULL" },
+		{ static_cast(ExpressionType::COMPARE_EQUAL), "COMPARE_EQUAL" },
+		{ static_cast(ExpressionType::COMPARE_NOTEQUAL), "COMPARE_NOTEQUAL" },
+		{ static_cast(ExpressionType::COMPARE_LESSTHAN), "COMPARE_LESSTHAN" },
+		{ static_cast(ExpressionType::COMPARE_GREATERTHAN), "COMPARE_GREATERTHAN" },
+		{ static_cast(ExpressionType::COMPARE_LESSTHANOREQUALTO), "COMPARE_LESSTHANOREQUALTO" },
+		{ static_cast(ExpressionType::COMPARE_GREATERTHANOREQUALTO), "COMPARE_GREATERTHANOREQUALTO" },
+		{ static_cast(ExpressionType::COMPARE_IN), "COMPARE_IN" },
+		{ static_cast(ExpressionType::COMPARE_NOT_IN), "COMPARE_NOT_IN" },
+		{ static_cast(ExpressionType::COMPARE_DISTINCT_FROM), "COMPARE_DISTINCT_FROM" },
+		{ static_cast(ExpressionType::COMPARE_BETWEEN), "COMPARE_BETWEEN" },
+		{ static_cast(ExpressionType::COMPARE_NOT_BETWEEN), "COMPARE_NOT_BETWEEN" },
+		{ static_cast(ExpressionType::COMPARE_NOT_DISTINCT_FROM), "COMPARE_NOT_DISTINCT_FROM" },
+		{ static_cast(ExpressionType::CONJUNCTION_AND), "CONJUNCTION_AND" },
+		{ static_cast(ExpressionType::CONJUNCTION_OR), "CONJUNCTION_OR" },
+		{ static_cast(ExpressionType::VALUE_CONSTANT), "VALUE_CONSTANT" },
+		{ static_cast(ExpressionType::VALUE_PARAMETER), "VALUE_PARAMETER" },
+		{ static_cast(ExpressionType::VALUE_TUPLE), "VALUE_TUPLE" },
+		{ static_cast(ExpressionType::VALUE_TUPLE_ADDRESS), "VALUE_TUPLE_ADDRESS" },
+		{ static_cast(ExpressionType::VALUE_NULL), "VALUE_NULL" },
+		{ static_cast(ExpressionType::VALUE_VECTOR), "VALUE_VECTOR" },
+		{ static_cast(ExpressionType::VALUE_SCALAR), "VALUE_SCALAR" },
+		{ static_cast(ExpressionType::VALUE_DEFAULT), "VALUE_DEFAULT" },
+		{ static_cast(ExpressionType::AGGREGATE), "AGGREGATE" },
+		{ static_cast(ExpressionType::BOUND_AGGREGATE), "BOUND_AGGREGATE" },
+		{ static_cast(ExpressionType::GROUPING_FUNCTION), "GROUPING_FUNCTION" },
+		{ static_cast(ExpressionType::WINDOW_AGGREGATE), "WINDOW_AGGREGATE" },
+		{ static_cast(ExpressionType::WINDOW_RANK), "WINDOW_RANK" },
+		{ static_cast(ExpressionType::WINDOW_RANK_DENSE), "WINDOW_RANK_DENSE" },
+		{ static_cast(ExpressionType::WINDOW_NTILE), "WINDOW_NTILE" },
+		{ static_cast(ExpressionType::WINDOW_PERCENT_RANK), "WINDOW_PERCENT_RANK" },
+		{ static_cast(ExpressionType::WINDOW_CUME_DIST), "WINDOW_CUME_DIST" },
+		{ static_cast(ExpressionType::WINDOW_ROW_NUMBER), "WINDOW_ROW_NUMBER" },
+		{ static_cast(ExpressionType::WINDOW_FIRST_VALUE), "WINDOW_FIRST_VALUE" },
+		{ static_cast(ExpressionType::WINDOW_LAST_VALUE), "WINDOW_LAST_VALUE" },
+		{ static_cast(ExpressionType::WINDOW_LEAD), "WINDOW_LEAD" },
+		{ static_cast(ExpressionType::WINDOW_LAG), "WINDOW_LAG" },
+		{ static_cast(ExpressionType::WINDOW_NTH_VALUE), "WINDOW_NTH_VALUE" },
+		{ static_cast(ExpressionType::FUNCTION), "FUNCTION" },
+		{ static_cast(ExpressionType::BOUND_FUNCTION), "BOUND_FUNCTION" },
+		{ static_cast(ExpressionType::CASE_EXPR), "CASE_EXPR" },
+		{ static_cast(ExpressionType::OPERATOR_NULLIF), "OPERATOR_NULLIF" },
+		{ static_cast(ExpressionType::OPERATOR_COALESCE), "OPERATOR_COALESCE" },
+		{ static_cast(ExpressionType::ARRAY_EXTRACT), "ARRAY_EXTRACT" },
+		{ static_cast(ExpressionType::ARRAY_SLICE), "ARRAY_SLICE" },
+		{ static_cast(ExpressionType::STRUCT_EXTRACT), "STRUCT_EXTRACT" },
+		{ static_cast(ExpressionType::ARRAY_CONSTRUCTOR), "ARRAY_CONSTRUCTOR" },
+		{ static_cast(ExpressionType::ARROW), "ARROW" },
+		{ static_cast(ExpressionType::SUBQUERY), "SUBQUERY" },
+		{ static_cast(ExpressionType::STAR), "STAR" },
+		{ static_cast(ExpressionType::TABLE_STAR), "TABLE_STAR" },
+		{ static_cast(ExpressionType::PLACEHOLDER), "PLACEHOLDER" },
+		{ static_cast(ExpressionType::COLUMN_REF), "COLUMN_REF" },
+		{ static_cast(ExpressionType::FUNCTION_REF), "FUNCTION_REF" },
+		{ static_cast(ExpressionType::TABLE_REF), "TABLE_REF" },
+		{ static_cast(ExpressionType::LAMBDA_REF), "LAMBDA_REF" },
+		{ static_cast(ExpressionType::CAST), "CAST" },
+		{ static_cast(ExpressionType::BOUND_REF), "BOUND_REF" },
+		{ static_cast(ExpressionType::BOUND_COLUMN_REF), "BOUND_COLUMN_REF" },
+		{ static_cast(ExpressionType::BOUND_UNNEST), "BOUND_UNNEST" },
+		{ static_cast(ExpressionType::COLLATE), "COLLATE" },
+		{ static_cast(ExpressionType::LAMBDA), "LAMBDA" },
+		{ static_cast(ExpressionType::POSITIONAL_REFERENCE), "POSITIONAL_REFERENCE" },
+		{ static_cast(ExpressionType::BOUND_LAMBDA_REF), "BOUND_LAMBDA_REF" },
+		{ static_cast(ExpressionType::BOUND_EXPANDED), "BOUND_EXPANDED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExpressionType value) {
-	switch(value) {
-	case ExpressionType::INVALID:
-		return "INVALID";
-	case ExpressionType::OPERATOR_CAST:
-		return "OPERATOR_CAST";
-	case ExpressionType::OPERATOR_NOT:
-		return "OPERATOR_NOT";
-	case ExpressionType::OPERATOR_IS_NULL:
-		return "OPERATOR_IS_NULL";
-	case ExpressionType::OPERATOR_IS_NOT_NULL:
-		return "OPERATOR_IS_NOT_NULL";
-	case ExpressionType::COMPARE_EQUAL:
-		return "COMPARE_EQUAL";
-	case ExpressionType::COMPARE_NOTEQUAL:
-		return "COMPARE_NOTEQUAL";
-	case ExpressionType::COMPARE_LESSTHAN:
-		return "COMPARE_LESSTHAN";
-	case ExpressionType::COMPARE_GREATERTHAN:
-		return "COMPARE_GREATERTHAN";
-	case ExpressionType::COMPARE_LESSTHANOREQUALTO:
-		return "COMPARE_LESSTHANOREQUALTO";
-	case ExpressionType::COMPARE_GREATERTHANOREQUALTO:
-		return "COMPARE_GREATERTHANOREQUALTO";
-	case ExpressionType::COMPARE_IN:
-		return "COMPARE_IN";
-	case ExpressionType::COMPARE_NOT_IN:
-		return "COMPARE_NOT_IN";
-	case ExpressionType::COMPARE_DISTINCT_FROM:
-		return "COMPARE_DISTINCT_FROM";
-	case ExpressionType::COMPARE_BETWEEN:
-		return "COMPARE_BETWEEN";
-	case ExpressionType::COMPARE_NOT_BETWEEN:
-		return "COMPARE_NOT_BETWEEN";
-	case ExpressionType::COMPARE_NOT_DISTINCT_FROM:
-		return "COMPARE_NOT_DISTINCT_FROM";
-	case ExpressionType::CONJUNCTION_AND:
-		return "CONJUNCTION_AND";
-	case ExpressionType::CONJUNCTION_OR:
-		return "CONJUNCTION_OR";
-	case ExpressionType::VALUE_CONSTANT:
-		return "VALUE_CONSTANT";
-	case ExpressionType::VALUE_PARAMETER:
-		return "VALUE_PARAMETER";
-	case ExpressionType::VALUE_TUPLE:
-		return "VALUE_TUPLE";
-	case ExpressionType::VALUE_TUPLE_ADDRESS:
-		return "VALUE_TUPLE_ADDRESS";
-	case ExpressionType::VALUE_NULL:
-		return "VALUE_NULL";
-	case ExpressionType::VALUE_VECTOR:
-		return "VALUE_VECTOR";
-	case ExpressionType::VALUE_SCALAR:
-		return "VALUE_SCALAR";
-	case ExpressionType::VALUE_DEFAULT:
-		return "VALUE_DEFAULT";
-	case ExpressionType::AGGREGATE:
-		return "AGGREGATE";
-	case ExpressionType::BOUND_AGGREGATE:
-		return "BOUND_AGGREGATE";
-	case ExpressionType::GROUPING_FUNCTION:
-		return "GROUPING_FUNCTION";
-	case ExpressionType::WINDOW_AGGREGATE:
-		return "WINDOW_AGGREGATE";
-	case ExpressionType::WINDOW_RANK:
-		return "WINDOW_RANK";
-	case ExpressionType::WINDOW_RANK_DENSE:
-		return "WINDOW_RANK_DENSE";
-	case ExpressionType::WINDOW_NTILE:
-		return "WINDOW_NTILE";
-	case ExpressionType::WINDOW_PERCENT_RANK:
-		return "WINDOW_PERCENT_RANK";
-	case ExpressionType::WINDOW_CUME_DIST:
-		return "WINDOW_CUME_DIST";
-	case ExpressionType::WINDOW_ROW_NUMBER:
-		return "WINDOW_ROW_NUMBER";
-	case ExpressionType::WINDOW_FIRST_VALUE:
-		return "WINDOW_FIRST_VALUE";
-	case ExpressionType::WINDOW_LAST_VALUE:
-		return "WINDOW_LAST_VALUE";
-	case ExpressionType::WINDOW_LEAD:
-		return "WINDOW_LEAD";
-	case ExpressionType::WINDOW_LAG:
-		return "WINDOW_LAG";
-	case ExpressionType::WINDOW_NTH_VALUE:
-		return "WINDOW_NTH_VALUE";
-	case ExpressionType::FUNCTION:
-		return "FUNCTION";
-	case ExpressionType::BOUND_FUNCTION:
-		return "BOUND_FUNCTION";
-	case ExpressionType::CASE_EXPR:
-		return "CASE_EXPR";
-	case ExpressionType::OPERATOR_NULLIF:
-		return "OPERATOR_NULLIF";
-	case ExpressionType::OPERATOR_COALESCE:
-		return "OPERATOR_COALESCE";
-	case ExpressionType::ARRAY_EXTRACT:
-		return "ARRAY_EXTRACT";
-	case ExpressionType::ARRAY_SLICE:
-		return "ARRAY_SLICE";
-	case ExpressionType::STRUCT_EXTRACT:
-		return "STRUCT_EXTRACT";
-	case ExpressionType::ARRAY_CONSTRUCTOR:
-		return "ARRAY_CONSTRUCTOR";
-	case ExpressionType::ARROW:
-		return "ARROW";
-	case ExpressionType::SUBQUERY:
-		return "SUBQUERY";
-	case ExpressionType::STAR:
-		return "STAR";
-	case ExpressionType::TABLE_STAR:
-		return "TABLE_STAR";
-	case ExpressionType::PLACEHOLDER:
-		return "PLACEHOLDER";
-	case ExpressionType::COLUMN_REF:
-		return "COLUMN_REF";
-	case ExpressionType::FUNCTION_REF:
-		return "FUNCTION_REF";
-	case ExpressionType::TABLE_REF:
-		return "TABLE_REF";
-	case ExpressionType::LAMBDA_REF:
-		return "LAMBDA_REF";
-	case ExpressionType::CAST:
-		return "CAST";
-	case ExpressionType::BOUND_REF:
-		return "BOUND_REF";
-	case ExpressionType::BOUND_COLUMN_REF:
-		return "BOUND_COLUMN_REF";
-	case ExpressionType::BOUND_UNNEST:
-		return "BOUND_UNNEST";
-	case ExpressionType::COLLATE:
-		return "COLLATE";
-	case ExpressionType::LAMBDA:
-		return "LAMBDA";
-	case ExpressionType::POSITIONAL_REFERENCE:
-		return "POSITIONAL_REFERENCE";
-	case ExpressionType::BOUND_LAMBDA_REF:
-		return "BOUND_LAMBDA_REF";
-	case ExpressionType::BOUND_EXPANDED:
-		return "BOUND_EXPANDED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExpressionTypeValues(), 69, "ExpressionType", static_cast(value));
 }
 
 template<>
 ExpressionType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return ExpressionType::INVALID;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_CAST")) {
-		return ExpressionType::OPERATOR_CAST;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_NOT")) {
-		return ExpressionType::OPERATOR_NOT;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_IS_NULL")) {
-		return ExpressionType::OPERATOR_IS_NULL;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_IS_NOT_NULL")) {
-		return ExpressionType::OPERATOR_IS_NOT_NULL;
-	}
-	if (StringUtil::Equals(value, "COMPARE_EQUAL")) {
-		return ExpressionType::COMPARE_EQUAL;
-	}
-	if (StringUtil::Equals(value, "COMPARE_NOTEQUAL")) {
-		return ExpressionType::COMPARE_NOTEQUAL;
-	}
-	if (StringUtil::Equals(value, "COMPARE_LESSTHAN")) {
-		return ExpressionType::COMPARE_LESSTHAN;
-	}
-	if (StringUtil::Equals(value, "COMPARE_GREATERTHAN")) {
-		return ExpressionType::COMPARE_GREATERTHAN;
-	}
-	if (StringUtil::Equals(value, "COMPARE_LESSTHANOREQUALTO")) {
-		return ExpressionType::COMPARE_LESSTHANOREQUALTO;
-	}
-	if (StringUtil::Equals(value, "COMPARE_GREATERTHANOREQUALTO")) {
-		return ExpressionType::COMPARE_GREATERTHANOREQUALTO;
-	}
-	if (StringUtil::Equals(value, "COMPARE_IN")) {
-		return ExpressionType::COMPARE_IN;
-	}
-	if (StringUtil::Equals(value, "COMPARE_NOT_IN")) {
-		return ExpressionType::COMPARE_NOT_IN;
-	}
-	if (StringUtil::Equals(value, "COMPARE_DISTINCT_FROM")) {
-		return ExpressionType::COMPARE_DISTINCT_FROM;
-	}
-	if (StringUtil::Equals(value, "COMPARE_BETWEEN")) {
-		return ExpressionType::COMPARE_BETWEEN;
-	}
-	if (StringUtil::Equals(value, "COMPARE_NOT_BETWEEN")) {
-		return ExpressionType::COMPARE_NOT_BETWEEN;
-	}
-	if (StringUtil::Equals(value, "COMPARE_NOT_DISTINCT_FROM")) {
-		return ExpressionType::COMPARE_NOT_DISTINCT_FROM;
-	}
-	if (StringUtil::Equals(value, "CONJUNCTION_AND")) {
-		return ExpressionType::CONJUNCTION_AND;
-	}
-	if (StringUtil::Equals(value, "CONJUNCTION_OR")) {
-		return ExpressionType::CONJUNCTION_OR;
-	}
-	if (StringUtil::Equals(value, "VALUE_CONSTANT")) {
-		return ExpressionType::VALUE_CONSTANT;
-	}
-	if (StringUtil::Equals(value, "VALUE_PARAMETER")) {
-		return ExpressionType::VALUE_PARAMETER;
-	}
-	if (StringUtil::Equals(value, "VALUE_TUPLE")) {
-		return ExpressionType::VALUE_TUPLE;
-	}
-	if (StringUtil::Equals(value, "VALUE_TUPLE_ADDRESS")) {
-		return ExpressionType::VALUE_TUPLE_ADDRESS;
-	}
-	if (StringUtil::Equals(value, "VALUE_NULL")) {
-		return ExpressionType::VALUE_NULL;
-	}
-	if (StringUtil::Equals(value, "VALUE_VECTOR")) {
-		return ExpressionType::VALUE_VECTOR;
-	}
-	if (StringUtil::Equals(value, "VALUE_SCALAR")) {
-		return ExpressionType::VALUE_SCALAR;
-	}
-	if (StringUtil::Equals(value, "VALUE_DEFAULT")) {
-		return ExpressionType::VALUE_DEFAULT;
-	}
-	if (StringUtil::Equals(value, "AGGREGATE")) {
-		return ExpressionType::AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "BOUND_AGGREGATE")) {
-		return ExpressionType::BOUND_AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "GROUPING_FUNCTION")) {
-		return ExpressionType::GROUPING_FUNCTION;
-	}
-	if (StringUtil::Equals(value, "WINDOW_AGGREGATE")) {
-		return ExpressionType::WINDOW_AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "WINDOW_RANK")) {
-		return ExpressionType::WINDOW_RANK;
-	}
-	if (StringUtil::Equals(value, "WINDOW_RANK_DENSE")) {
-		return ExpressionType::WINDOW_RANK_DENSE;
-	}
-	if (StringUtil::Equals(value, "WINDOW_NTILE")) {
-		return ExpressionType::WINDOW_NTILE;
-	}
-	if (StringUtil::Equals(value, "WINDOW_PERCENT_RANK")) {
-		return ExpressionType::WINDOW_PERCENT_RANK;
-	}
-	if (StringUtil::Equals(value, "WINDOW_CUME_DIST")) {
-		return ExpressionType::WINDOW_CUME_DIST;
-	}
-	if (StringUtil::Equals(value, "WINDOW_ROW_NUMBER")) {
-		return ExpressionType::WINDOW_ROW_NUMBER;
-	}
-	if (StringUtil::Equals(value, "WINDOW_FIRST_VALUE")) {
-		return ExpressionType::WINDOW_FIRST_VALUE;
-	}
-	if (StringUtil::Equals(value, "WINDOW_LAST_VALUE")) {
-		return ExpressionType::WINDOW_LAST_VALUE;
-	}
-	if (StringUtil::Equals(value, "WINDOW_LEAD")) {
-		return ExpressionType::WINDOW_LEAD;
-	}
-	if (StringUtil::Equals(value, "WINDOW_LAG")) {
-		return ExpressionType::WINDOW_LAG;
-	}
-	if (StringUtil::Equals(value, "WINDOW_NTH_VALUE")) {
-		return ExpressionType::WINDOW_NTH_VALUE;
-	}
-	if (StringUtil::Equals(value, "FUNCTION")) {
-		return ExpressionType::FUNCTION;
-	}
-	if (StringUtil::Equals(value, "BOUND_FUNCTION")) {
-		return ExpressionType::BOUND_FUNCTION;
-	}
-	if (StringUtil::Equals(value, "CASE_EXPR")) {
-		return ExpressionType::CASE_EXPR;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_NULLIF")) {
-		return ExpressionType::OPERATOR_NULLIF;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_COALESCE")) {
-		return ExpressionType::OPERATOR_COALESCE;
-	}
-	if (StringUtil::Equals(value, "ARRAY_EXTRACT")) {
-		return ExpressionType::ARRAY_EXTRACT;
-	}
-	if (StringUtil::Equals(value, "ARRAY_SLICE")) {
-		return ExpressionType::ARRAY_SLICE;
-	}
-	if (StringUtil::Equals(value, "STRUCT_EXTRACT")) {
-		return ExpressionType::STRUCT_EXTRACT;
-	}
-	if (StringUtil::Equals(value, "ARRAY_CONSTRUCTOR")) {
-		return ExpressionType::ARRAY_CONSTRUCTOR;
-	}
-	if (StringUtil::Equals(value, "ARROW")) {
-		return ExpressionType::ARROW;
-	}
-	if (StringUtil::Equals(value, "SUBQUERY")) {
-		return ExpressionType::SUBQUERY;
-	}
-	if (StringUtil::Equals(value, "STAR")) {
-		return ExpressionType::STAR;
-	}
-	if (StringUtil::Equals(value, "TABLE_STAR")) {
-		return ExpressionType::TABLE_STAR;
-	}
-	if (StringUtil::Equals(value, "PLACEHOLDER")) {
-		return ExpressionType::PLACEHOLDER;
-	}
-	if (StringUtil::Equals(value, "COLUMN_REF")) {
-		return ExpressionType::COLUMN_REF;
-	}
-	if (StringUtil::Equals(value, "FUNCTION_REF")) {
-		return ExpressionType::FUNCTION_REF;
-	}
-	if (StringUtil::Equals(value, "TABLE_REF")) {
-		return ExpressionType::TABLE_REF;
-	}
-	if (StringUtil::Equals(value, "LAMBDA_REF")) {
-		return ExpressionType::LAMBDA_REF;
-	}
-	if (StringUtil::Equals(value, "CAST")) {
-		return ExpressionType::CAST;
-	}
-	if (StringUtil::Equals(value, "BOUND_REF")) {
-		return ExpressionType::BOUND_REF;
-	}
-	if (StringUtil::Equals(value, "BOUND_COLUMN_REF")) {
-		return ExpressionType::BOUND_COLUMN_REF;
-	}
-	if (StringUtil::Equals(value, "BOUND_UNNEST")) {
-		return ExpressionType::BOUND_UNNEST;
-	}
-	if (StringUtil::Equals(value, "COLLATE")) {
-		return ExpressionType::COLLATE;
-	}
-	if (StringUtil::Equals(value, "LAMBDA")) {
-		return ExpressionType::LAMBDA;
-	}
-	if (StringUtil::Equals(value, "POSITIONAL_REFERENCE")) {
-		return ExpressionType::POSITIONAL_REFERENCE;
-	}
-	if (StringUtil::Equals(value, "BOUND_LAMBDA_REF")) {
-		return ExpressionType::BOUND_LAMBDA_REF;
-	}
-	if (StringUtil::Equals(value, "BOUND_EXPANDED")) {
-		return ExpressionType::BOUND_EXPANDED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExpressionTypeValues(), 69, "ExpressionType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExtensionABITypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExtensionABIType::UNKNOWN), "UNKNOWN" },
+		{ static_cast(ExtensionABIType::CPP), "CPP" },
+		{ static_cast(ExtensionABIType::C_STRUCT), "C_STRUCT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExtensionABIType value) {
-	switch(value) {
-	case ExtensionABIType::UNKNOWN:
-		return "UNKNOWN";
-	case ExtensionABIType::CPP:
-		return "CPP";
-	case ExtensionABIType::C_STRUCT:
-		return "C_STRUCT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExtensionABITypeValues(), 3, "ExtensionABIType", static_cast(value));
 }
 
 template<>
 ExtensionABIType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "UNKNOWN")) {
-		return ExtensionABIType::UNKNOWN;
-	}
-	if (StringUtil::Equals(value, "CPP")) {
-		return ExtensionABIType::CPP;
-	}
-	if (StringUtil::Equals(value, "C_STRUCT")) {
-		return ExtensionABIType::C_STRUCT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExtensionABITypeValues(), 3, "ExtensionABIType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExtensionInstallModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExtensionInstallMode::UNKNOWN), "UNKNOWN" },
+		{ static_cast(ExtensionInstallMode::REPOSITORY), "REPOSITORY" },
+		{ static_cast(ExtensionInstallMode::CUSTOM_PATH), "CUSTOM_PATH" },
+		{ static_cast(ExtensionInstallMode::STATICALLY_LINKED), "STATICALLY_LINKED" },
+		{ static_cast(ExtensionInstallMode::NOT_INSTALLED), "NOT_INSTALLED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExtensionInstallMode value) {
-	switch(value) {
-	case ExtensionInstallMode::UNKNOWN:
-		return "UNKNOWN";
-	case ExtensionInstallMode::REPOSITORY:
-		return "REPOSITORY";
-	case ExtensionInstallMode::CUSTOM_PATH:
-		return "CUSTOM_PATH";
-	case ExtensionInstallMode::STATICALLY_LINKED:
-		return "STATICALLY_LINKED";
-	case ExtensionInstallMode::NOT_INSTALLED:
-		return "NOT_INSTALLED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExtensionInstallModeValues(), 5, "ExtensionInstallMode", static_cast(value));
 }
 
 template<>
 ExtensionInstallMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "UNKNOWN")) {
-		return ExtensionInstallMode::UNKNOWN;
-	}
-	if (StringUtil::Equals(value, "REPOSITORY")) {
-		return ExtensionInstallMode::REPOSITORY;
-	}
-	if (StringUtil::Equals(value, "CUSTOM_PATH")) {
-		return ExtensionInstallMode::CUSTOM_PATH;
-	}
-	if (StringUtil::Equals(value, "STATICALLY_LINKED")) {
-		return ExtensionInstallMode::STATICALLY_LINKED;
-	}
-	if (StringUtil::Equals(value, "NOT_INSTALLED")) {
-		return ExtensionInstallMode::NOT_INSTALLED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExtensionInstallModeValues(), 5, "ExtensionInstallMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExtensionLoadResultValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExtensionLoadResult::LOADED_EXTENSION), "LOADED_EXTENSION" },
+		{ static_cast(ExtensionLoadResult::EXTENSION_UNKNOWN), "EXTENSION_UNKNOWN" },
+		{ static_cast(ExtensionLoadResult::NOT_LOADED), "NOT_LOADED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExtensionLoadResult value) {
-	switch(value) {
-	case ExtensionLoadResult::LOADED_EXTENSION:
-		return "LOADED_EXTENSION";
-	case ExtensionLoadResult::EXTENSION_UNKNOWN:
-		return "EXTENSION_UNKNOWN";
-	case ExtensionLoadResult::NOT_LOADED:
-		return "NOT_LOADED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExtensionLoadResultValues(), 3, "ExtensionLoadResult", static_cast(value));
 }
 
 template<>
 ExtensionLoadResult EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "LOADED_EXTENSION")) {
-		return ExtensionLoadResult::LOADED_EXTENSION;
-	}
-	if (StringUtil::Equals(value, "EXTENSION_UNKNOWN")) {
-		return ExtensionLoadResult::EXTENSION_UNKNOWN;
-	}
-	if (StringUtil::Equals(value, "NOT_LOADED")) {
-		return ExtensionLoadResult::NOT_LOADED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExtensionLoadResultValues(), 3, "ExtensionLoadResult", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExtensionUpdateResultTagValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExtensionUpdateResultTag::UNKNOWN), "UNKNOWN" },
+		{ static_cast(ExtensionUpdateResultTag::NO_UPDATE_AVAILABLE), "NO_UPDATE_AVAILABLE" },
+		{ static_cast(ExtensionUpdateResultTag::NOT_A_REPOSITORY), "NOT_A_REPOSITORY" },
+		{ static_cast(ExtensionUpdateResultTag::NOT_INSTALLED), "NOT_INSTALLED" },
+		{ static_cast(ExtensionUpdateResultTag::STATICALLY_LOADED), "STATICALLY_LOADED" },
+		{ static_cast(ExtensionUpdateResultTag::MISSING_INSTALL_INFO), "MISSING_INSTALL_INFO" },
+		{ static_cast(ExtensionUpdateResultTag::REDOWNLOADED), "REDOWNLOADED" },
+		{ static_cast(ExtensionUpdateResultTag::UPDATED), "UPDATED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExtensionUpdateResultTag value) {
-	switch(value) {
-	case ExtensionUpdateResultTag::UNKNOWN:
-		return "UNKNOWN";
-	case ExtensionUpdateResultTag::NO_UPDATE_AVAILABLE:
-		return "NO_UPDATE_AVAILABLE";
-	case ExtensionUpdateResultTag::NOT_A_REPOSITORY:
-		return "NOT_A_REPOSITORY";
-	case ExtensionUpdateResultTag::NOT_INSTALLED:
-		return "NOT_INSTALLED";
-	case ExtensionUpdateResultTag::STATICALLY_LOADED:
-		return "STATICALLY_LOADED";
-	case ExtensionUpdateResultTag::MISSING_INSTALL_INFO:
-		return "MISSING_INSTALL_INFO";
-	case ExtensionUpdateResultTag::REDOWNLOADED:
-		return "REDOWNLOADED";
-	case ExtensionUpdateResultTag::UPDATED:
-		return "UPDATED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExtensionUpdateResultTagValues(), 8, "ExtensionUpdateResultTag", static_cast(value));
 }
 
 template<>
 ExtensionUpdateResultTag EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "UNKNOWN")) {
-		return ExtensionUpdateResultTag::UNKNOWN;
-	}
-	if (StringUtil::Equals(value, "NO_UPDATE_AVAILABLE")) {
-		return ExtensionUpdateResultTag::NO_UPDATE_AVAILABLE;
-	}
-	if (StringUtil::Equals(value, "NOT_A_REPOSITORY")) {
-		return ExtensionUpdateResultTag::NOT_A_REPOSITORY;
-	}
-	if (StringUtil::Equals(value, "NOT_INSTALLED")) {
-		return ExtensionUpdateResultTag::NOT_INSTALLED;
-	}
-	if (StringUtil::Equals(value, "STATICALLY_LOADED")) {
-		return ExtensionUpdateResultTag::STATICALLY_LOADED;
-	}
-	if (StringUtil::Equals(value, "MISSING_INSTALL_INFO")) {
-		return ExtensionUpdateResultTag::MISSING_INSTALL_INFO;
-	}
-	if (StringUtil::Equals(value, "REDOWNLOADED")) {
-		return ExtensionUpdateResultTag::REDOWNLOADED;
-	}
-	if (StringUtil::Equals(value, "UPDATED")) {
-		return ExtensionUpdateResultTag::UPDATED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExtensionUpdateResultTagValues(), 8, "ExtensionUpdateResultTag", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExtraDropInfoTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExtraDropInfoType::INVALID), "INVALID" },
+		{ static_cast(ExtraDropInfoType::SECRET_INFO), "SECRET_INFO" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExtraDropInfoType value) {
-	switch(value) {
-	case ExtraDropInfoType::INVALID:
-		return "INVALID";
-	case ExtraDropInfoType::SECRET_INFO:
-		return "SECRET_INFO";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExtraDropInfoTypeValues(), 2, "ExtraDropInfoType", static_cast(value));
 }
 
 template<>
 ExtraDropInfoType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return ExtraDropInfoType::INVALID;
-	}
-	if (StringUtil::Equals(value, "SECRET_INFO")) {
-		return ExtraDropInfoType::SECRET_INFO;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExtraDropInfoTypeValues(), 2, "ExtraDropInfoType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetExtraTypeInfoTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ExtraTypeInfoType::INVALID_TYPE_INFO), "INVALID_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::GENERIC_TYPE_INFO), "GENERIC_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::DECIMAL_TYPE_INFO), "DECIMAL_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::STRING_TYPE_INFO), "STRING_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::LIST_TYPE_INFO), "LIST_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::STRUCT_TYPE_INFO), "STRUCT_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::ENUM_TYPE_INFO), "ENUM_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::USER_TYPE_INFO), "USER_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::AGGREGATE_STATE_TYPE_INFO), "AGGREGATE_STATE_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::ARRAY_TYPE_INFO), "ARRAY_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::ANY_TYPE_INFO), "ANY_TYPE_INFO" },
+		{ static_cast(ExtraTypeInfoType::INTEGER_LITERAL_TYPE_INFO), "INTEGER_LITERAL_TYPE_INFO" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ExtraTypeInfoType value) {
-	switch(value) {
-	case ExtraTypeInfoType::INVALID_TYPE_INFO:
-		return "INVALID_TYPE_INFO";
-	case ExtraTypeInfoType::GENERIC_TYPE_INFO:
-		return "GENERIC_TYPE_INFO";
-	case ExtraTypeInfoType::DECIMAL_TYPE_INFO:
-		return "DECIMAL_TYPE_INFO";
-	case ExtraTypeInfoType::STRING_TYPE_INFO:
-		return "STRING_TYPE_INFO";
-	case ExtraTypeInfoType::LIST_TYPE_INFO:
-		return "LIST_TYPE_INFO";
-	case ExtraTypeInfoType::STRUCT_TYPE_INFO:
-		return "STRUCT_TYPE_INFO";
-	case ExtraTypeInfoType::ENUM_TYPE_INFO:
-		return "ENUM_TYPE_INFO";
-	case ExtraTypeInfoType::USER_TYPE_INFO:
-		return "USER_TYPE_INFO";
-	case ExtraTypeInfoType::AGGREGATE_STATE_TYPE_INFO:
-		return "AGGREGATE_STATE_TYPE_INFO";
-	case ExtraTypeInfoType::ARRAY_TYPE_INFO:
-		return "ARRAY_TYPE_INFO";
-	case ExtraTypeInfoType::ANY_TYPE_INFO:
-		return "ANY_TYPE_INFO";
-	case ExtraTypeInfoType::INTEGER_LITERAL_TYPE_INFO:
-		return "INTEGER_LITERAL_TYPE_INFO";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetExtraTypeInfoTypeValues(), 12, "ExtraTypeInfoType", static_cast(value));
 }
 
 template<>
 ExtraTypeInfoType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID_TYPE_INFO")) {
-		return ExtraTypeInfoType::INVALID_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "GENERIC_TYPE_INFO")) {
-		return ExtraTypeInfoType::GENERIC_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "DECIMAL_TYPE_INFO")) {
-		return ExtraTypeInfoType::DECIMAL_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "STRING_TYPE_INFO")) {
-		return ExtraTypeInfoType::STRING_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "LIST_TYPE_INFO")) {
-		return ExtraTypeInfoType::LIST_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "STRUCT_TYPE_INFO")) {
-		return ExtraTypeInfoType::STRUCT_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "ENUM_TYPE_INFO")) {
-		return ExtraTypeInfoType::ENUM_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "USER_TYPE_INFO")) {
-		return ExtraTypeInfoType::USER_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "AGGREGATE_STATE_TYPE_INFO")) {
-		return ExtraTypeInfoType::AGGREGATE_STATE_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "ARRAY_TYPE_INFO")) {
-		return ExtraTypeInfoType::ARRAY_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "ANY_TYPE_INFO")) {
-		return ExtraTypeInfoType::ANY_TYPE_INFO;
-	}
-	if (StringUtil::Equals(value, "INTEGER_LITERAL_TYPE_INFO")) {
-		return ExtraTypeInfoType::INTEGER_LITERAL_TYPE_INFO;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetExtraTypeInfoTypeValues(), 12, "ExtraTypeInfoType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFileBufferTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FileBufferType::BLOCK), "BLOCK" },
+		{ static_cast(FileBufferType::MANAGED_BUFFER), "MANAGED_BUFFER" },
+		{ static_cast(FileBufferType::TINY_BUFFER), "TINY_BUFFER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FileBufferType value) {
-	switch(value) {
-	case FileBufferType::BLOCK:
-		return "BLOCK";
-	case FileBufferType::MANAGED_BUFFER:
-		return "MANAGED_BUFFER";
-	case FileBufferType::TINY_BUFFER:
-		return "TINY_BUFFER";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFileBufferTypeValues(), 3, "FileBufferType", static_cast(value));
 }
 
 template<>
 FileBufferType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "BLOCK")) {
-		return FileBufferType::BLOCK;
-	}
-	if (StringUtil::Equals(value, "MANAGED_BUFFER")) {
-		return FileBufferType::MANAGED_BUFFER;
-	}
-	if (StringUtil::Equals(value, "TINY_BUFFER")) {
-		return FileBufferType::TINY_BUFFER;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFileBufferTypeValues(), 3, "FileBufferType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFileCompressionTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FileCompressionType::AUTO_DETECT), "AUTO_DETECT" },
+		{ static_cast(FileCompressionType::UNCOMPRESSED), "UNCOMPRESSED" },
+		{ static_cast(FileCompressionType::GZIP), "GZIP" },
+		{ static_cast(FileCompressionType::ZSTD), "ZSTD" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FileCompressionType value) {
-	switch(value) {
-	case FileCompressionType::AUTO_DETECT:
-		return "AUTO_DETECT";
-	case FileCompressionType::UNCOMPRESSED:
-		return "UNCOMPRESSED";
-	case FileCompressionType::GZIP:
-		return "GZIP";
-	case FileCompressionType::ZSTD:
-		return "ZSTD";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFileCompressionTypeValues(), 4, "FileCompressionType", static_cast(value));
 }
 
 template<>
 FileCompressionType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "AUTO_DETECT")) {
-		return FileCompressionType::AUTO_DETECT;
-	}
-	if (StringUtil::Equals(value, "UNCOMPRESSED")) {
-		return FileCompressionType::UNCOMPRESSED;
-	}
-	if (StringUtil::Equals(value, "GZIP")) {
-		return FileCompressionType::GZIP;
-	}
-	if (StringUtil::Equals(value, "ZSTD")) {
-		return FileCompressionType::ZSTD;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFileCompressionTypeValues(), 4, "FileCompressionType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFileExpandResultValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FileExpandResult::NO_FILES), "NO_FILES" },
+		{ static_cast(FileExpandResult::SINGLE_FILE), "SINGLE_FILE" },
+		{ static_cast(FileExpandResult::MULTIPLE_FILES), "MULTIPLE_FILES" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FileExpandResult value) {
-	switch(value) {
-	case FileExpandResult::NO_FILES:
-		return "NO_FILES";
-	case FileExpandResult::SINGLE_FILE:
-		return "SINGLE_FILE";
-	case FileExpandResult::MULTIPLE_FILES:
-		return "MULTIPLE_FILES";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFileExpandResultValues(), 3, "FileExpandResult", static_cast(value));
 }
 
 template<>
 FileExpandResult EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_FILES")) {
-		return FileExpandResult::NO_FILES;
-	}
-	if (StringUtil::Equals(value, "SINGLE_FILE")) {
-		return FileExpandResult::SINGLE_FILE;
-	}
-	if (StringUtil::Equals(value, "MULTIPLE_FILES")) {
-		return FileExpandResult::MULTIPLE_FILES;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFileExpandResultValues(), 3, "FileExpandResult", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFileGlobOptionsValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FileGlobOptions::DISALLOW_EMPTY), "DISALLOW_EMPTY" },
+		{ static_cast(FileGlobOptions::ALLOW_EMPTY), "ALLOW_EMPTY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FileGlobOptions value) {
-	switch(value) {
-	case FileGlobOptions::DISALLOW_EMPTY:
-		return "DISALLOW_EMPTY";
-	case FileGlobOptions::ALLOW_EMPTY:
-		return "ALLOW_EMPTY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFileGlobOptionsValues(), 2, "FileGlobOptions", static_cast(value));
 }
 
 template<>
 FileGlobOptions EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "DISALLOW_EMPTY")) {
-		return FileGlobOptions::DISALLOW_EMPTY;
-	}
-	if (StringUtil::Equals(value, "ALLOW_EMPTY")) {
-		return FileGlobOptions::ALLOW_EMPTY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFileGlobOptionsValues(), 2, "FileGlobOptions", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFileLockTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FileLockType::NO_LOCK), "NO_LOCK" },
+		{ static_cast(FileLockType::READ_LOCK), "READ_LOCK" },
+		{ static_cast(FileLockType::WRITE_LOCK), "WRITE_LOCK" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FileLockType value) {
-	switch(value) {
-	case FileLockType::NO_LOCK:
-		return "NO_LOCK";
-	case FileLockType::READ_LOCK:
-		return "READ_LOCK";
-	case FileLockType::WRITE_LOCK:
-		return "WRITE_LOCK";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFileLockTypeValues(), 3, "FileLockType", static_cast(value));
 }
 
 template<>
 FileLockType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_LOCK")) {
-		return FileLockType::NO_LOCK;
-	}
-	if (StringUtil::Equals(value, "READ_LOCK")) {
-		return FileLockType::READ_LOCK;
-	}
-	if (StringUtil::Equals(value, "WRITE_LOCK")) {
-		return FileLockType::WRITE_LOCK;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFileLockTypeValues(), 3, "FileLockType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFilterPropagateResultValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FilterPropagateResult::NO_PRUNING_POSSIBLE), "NO_PRUNING_POSSIBLE" },
+		{ static_cast(FilterPropagateResult::FILTER_ALWAYS_TRUE), "FILTER_ALWAYS_TRUE" },
+		{ static_cast(FilterPropagateResult::FILTER_ALWAYS_FALSE), "FILTER_ALWAYS_FALSE" },
+		{ static_cast(FilterPropagateResult::FILTER_TRUE_OR_NULL), "FILTER_TRUE_OR_NULL" },
+		{ static_cast(FilterPropagateResult::FILTER_FALSE_OR_NULL), "FILTER_FALSE_OR_NULL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FilterPropagateResult value) {
-	switch(value) {
-	case FilterPropagateResult::NO_PRUNING_POSSIBLE:
-		return "NO_PRUNING_POSSIBLE";
-	case FilterPropagateResult::FILTER_ALWAYS_TRUE:
-		return "FILTER_ALWAYS_TRUE";
-	case FilterPropagateResult::FILTER_ALWAYS_FALSE:
-		return "FILTER_ALWAYS_FALSE";
-	case FilterPropagateResult::FILTER_TRUE_OR_NULL:
-		return "FILTER_TRUE_OR_NULL";
-	case FilterPropagateResult::FILTER_FALSE_OR_NULL:
-		return "FILTER_FALSE_OR_NULL";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFilterPropagateResultValues(), 5, "FilterPropagateResult", static_cast(value));
 }
 
 template<>
 FilterPropagateResult EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_PRUNING_POSSIBLE")) {
-		return FilterPropagateResult::NO_PRUNING_POSSIBLE;
-	}
-	if (StringUtil::Equals(value, "FILTER_ALWAYS_TRUE")) {
-		return FilterPropagateResult::FILTER_ALWAYS_TRUE;
-	}
-	if (StringUtil::Equals(value, "FILTER_ALWAYS_FALSE")) {
-		return FilterPropagateResult::FILTER_ALWAYS_FALSE;
-	}
-	if (StringUtil::Equals(value, "FILTER_TRUE_OR_NULL")) {
-		return FilterPropagateResult::FILTER_TRUE_OR_NULL;
-	}
-	if (StringUtil::Equals(value, "FILTER_FALSE_OR_NULL")) {
-		return FilterPropagateResult::FILTER_FALSE_OR_NULL;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFilterPropagateResultValues(), 5, "FilterPropagateResult", value));
+}
+
+const StringUtil::EnumStringLiteral *GetForeignKeyTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE), "FK_TYPE_PRIMARY_KEY_TABLE" },
+		{ static_cast(ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE), "FK_TYPE_FOREIGN_KEY_TABLE" },
+		{ static_cast(ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE), "FK_TYPE_SELF_REFERENCE_TABLE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ForeignKeyType value) {
-	switch(value) {
-	case ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE:
-		return "FK_TYPE_PRIMARY_KEY_TABLE";
-	case ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE:
-		return "FK_TYPE_FOREIGN_KEY_TABLE";
-	case ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE:
-		return "FK_TYPE_SELF_REFERENCE_TABLE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetForeignKeyTypeValues(), 3, "ForeignKeyType", static_cast(value));
 }
 
 template<>
 ForeignKeyType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "FK_TYPE_PRIMARY_KEY_TABLE")) {
-		return ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE;
-	}
-	if (StringUtil::Equals(value, "FK_TYPE_FOREIGN_KEY_TABLE")) {
-		return ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE;
-	}
-	if (StringUtil::Equals(value, "FK_TYPE_SELF_REFERENCE_TABLE")) {
-		return ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetForeignKeyTypeValues(), 3, "ForeignKeyType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFunctionCollationHandlingValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FunctionCollationHandling::PROPAGATE_COLLATIONS), "PROPAGATE_COLLATIONS" },
+		{ static_cast(FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS), "PUSH_COMBINABLE_COLLATIONS" },
+		{ static_cast(FunctionCollationHandling::IGNORE_COLLATIONS), "IGNORE_COLLATIONS" }
+	};
+	return values;
+}
+
+template<>
+const char* EnumUtil::ToChars(FunctionCollationHandling value) {
+	return StringUtil::EnumToString(GetFunctionCollationHandlingValues(), 3, "FunctionCollationHandling", static_cast(value));
+}
+
+template<>
+FunctionCollationHandling EnumUtil::FromString(const char *value) {
+	return static_cast(StringUtil::StringToEnum(GetFunctionCollationHandlingValues(), 3, "FunctionCollationHandling", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFunctionErrorsValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FunctionErrors::CANNOT_ERROR), "CANNOT_ERROR" },
+		{ static_cast(FunctionErrors::CAN_THROW_ERROR), "CAN_THROW_ERROR" }
+	};
+	return values;
+}
+
+template<>
+const char* EnumUtil::ToChars(FunctionErrors value) {
+	return StringUtil::EnumToString(GetFunctionErrorsValues(), 2, "FunctionErrors", static_cast(value));
+}
+
+template<>
+FunctionErrors EnumUtil::FromString(const char *value) {
+	return static_cast(StringUtil::StringToEnum(GetFunctionErrorsValues(), 2, "FunctionErrors", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFunctionNullHandlingValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FunctionNullHandling::DEFAULT_NULL_HANDLING), "DEFAULT_NULL_HANDLING" },
+		{ static_cast(FunctionNullHandling::SPECIAL_HANDLING), "SPECIAL_HANDLING" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FunctionNullHandling value) {
-	switch(value) {
-	case FunctionNullHandling::DEFAULT_NULL_HANDLING:
-		return "DEFAULT_NULL_HANDLING";
-	case FunctionNullHandling::SPECIAL_HANDLING:
-		return "SPECIAL_HANDLING";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFunctionNullHandlingValues(), 2, "FunctionNullHandling", static_cast(value));
 }
 
 template<>
 FunctionNullHandling EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "DEFAULT_NULL_HANDLING")) {
-		return FunctionNullHandling::DEFAULT_NULL_HANDLING;
-	}
-	if (StringUtil::Equals(value, "SPECIAL_HANDLING")) {
-		return FunctionNullHandling::SPECIAL_HANDLING;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFunctionNullHandlingValues(), 2, "FunctionNullHandling", value));
+}
+
+const StringUtil::EnumStringLiteral *GetFunctionStabilityValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(FunctionStability::CONSISTENT), "CONSISTENT" },
+		{ static_cast(FunctionStability::VOLATILE), "VOLATILE" },
+		{ static_cast(FunctionStability::CONSISTENT_WITHIN_QUERY), "CONSISTENT_WITHIN_QUERY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(FunctionStability value) {
-	switch(value) {
-	case FunctionStability::CONSISTENT:
-		return "CONSISTENT";
-	case FunctionStability::VOLATILE:
-		return "VOLATILE";
-	case FunctionStability::CONSISTENT_WITHIN_QUERY:
-		return "CONSISTENT_WITHIN_QUERY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetFunctionStabilityValues(), 3, "FunctionStability", static_cast(value));
 }
 
 template<>
 FunctionStability EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CONSISTENT")) {
-		return FunctionStability::CONSISTENT;
-	}
-	if (StringUtil::Equals(value, "VOLATILE")) {
-		return FunctionStability::VOLATILE;
-	}
-	if (StringUtil::Equals(value, "CONSISTENT_WITHIN_QUERY")) {
-		return FunctionStability::CONSISTENT_WITHIN_QUERY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetFunctionStabilityValues(), 3, "FunctionStability", value));
+}
+
+const StringUtil::EnumStringLiteral *GetGateStatusValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(GateStatus::GATE_NOT_SET), "GATE_NOT_SET" },
+		{ static_cast(GateStatus::GATE_SET), "GATE_SET" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(GateStatus value) {
-	switch(value) {
-	case GateStatus::GATE_NOT_SET:
-		return "GATE_NOT_SET";
-	case GateStatus::GATE_SET:
-		return "GATE_SET";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetGateStatusValues(), 2, "GateStatus", static_cast(value));
 }
 
 template<>
 GateStatus EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "GATE_NOT_SET")) {
-		return GateStatus::GATE_NOT_SET;
-	}
-	if (StringUtil::Equals(value, "GATE_SET")) {
-		return GateStatus::GATE_SET;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetGateStatusValues(), 2, "GateStatus", value));
+}
+
+const StringUtil::EnumStringLiteral *GetHLLStorageTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(HLLStorageType::HLL_V1), "HLL_V1" },
+		{ static_cast(HLLStorageType::HLL_V2), "HLL_V2" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(HLLStorageType value) {
-	switch(value) {
-	case HLLStorageType::HLL_V1:
-		return "HLL_V1";
-	case HLLStorageType::HLL_V2:
-		return "HLL_V2";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetHLLStorageTypeValues(), 2, "HLLStorageType", static_cast(value));
 }
 
 template<>
 HLLStorageType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "HLL_V1")) {
-		return HLLStorageType::HLL_V1;
-	}
-	if (StringUtil::Equals(value, "HLL_V2")) {
-		return HLLStorageType::HLL_V2;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetHLLStorageTypeValues(), 2, "HLLStorageType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetIndexConstraintTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(IndexConstraintType::NONE), "NONE" },
+		{ static_cast(IndexConstraintType::UNIQUE), "UNIQUE" },
+		{ static_cast(IndexConstraintType::PRIMARY), "PRIMARY" },
+		{ static_cast(IndexConstraintType::FOREIGN), "FOREIGN" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(IndexConstraintType value) {
-	switch(value) {
-	case IndexConstraintType::NONE:
-		return "NONE";
-	case IndexConstraintType::UNIQUE:
-		return "UNIQUE";
-	case IndexConstraintType::PRIMARY:
-		return "PRIMARY";
-	case IndexConstraintType::FOREIGN:
-		return "FOREIGN";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetIndexConstraintTypeValues(), 4, "IndexConstraintType", static_cast(value));
 }
 
 template<>
 IndexConstraintType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NONE")) {
-		return IndexConstraintType::NONE;
-	}
-	if (StringUtil::Equals(value, "UNIQUE")) {
-		return IndexConstraintType::UNIQUE;
-	}
-	if (StringUtil::Equals(value, "PRIMARY")) {
-		return IndexConstraintType::PRIMARY;
-	}
-	if (StringUtil::Equals(value, "FOREIGN")) {
-		return IndexConstraintType::FOREIGN;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetIndexConstraintTypeValues(), 4, "IndexConstraintType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetInsertColumnOrderValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(InsertColumnOrder::INSERT_BY_POSITION), "INSERT_BY_POSITION" },
+		{ static_cast(InsertColumnOrder::INSERT_BY_NAME), "INSERT_BY_NAME" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(InsertColumnOrder value) {
-	switch(value) {
-	case InsertColumnOrder::INSERT_BY_POSITION:
-		return "INSERT_BY_POSITION";
-	case InsertColumnOrder::INSERT_BY_NAME:
-		return "INSERT_BY_NAME";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetInsertColumnOrderValues(), 2, "InsertColumnOrder", static_cast(value));
 }
 
 template<>
 InsertColumnOrder EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INSERT_BY_POSITION")) {
-		return InsertColumnOrder::INSERT_BY_POSITION;
-	}
-	if (StringUtil::Equals(value, "INSERT_BY_NAME")) {
-		return InsertColumnOrder::INSERT_BY_NAME;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetInsertColumnOrderValues(), 2, "InsertColumnOrder", value));
+}
+
+const StringUtil::EnumStringLiteral *GetInterruptModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(InterruptMode::NO_INTERRUPTS), "NO_INTERRUPTS" },
+		{ static_cast(InterruptMode::TASK), "TASK" },
+		{ static_cast(InterruptMode::BLOCKING), "BLOCKING" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(InterruptMode value) {
-	switch(value) {
-	case InterruptMode::NO_INTERRUPTS:
-		return "NO_INTERRUPTS";
-	case InterruptMode::TASK:
-		return "TASK";
-	case InterruptMode::BLOCKING:
-		return "BLOCKING";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetInterruptModeValues(), 3, "InterruptMode", static_cast(value));
 }
 
 template<>
 InterruptMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_INTERRUPTS")) {
-		return InterruptMode::NO_INTERRUPTS;
-	}
-	if (StringUtil::Equals(value, "TASK")) {
-		return InterruptMode::TASK;
-	}
-	if (StringUtil::Equals(value, "BLOCKING")) {
-		return InterruptMode::BLOCKING;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetInterruptModeValues(), 3, "InterruptMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetJoinRefTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(JoinRefType::REGULAR), "REGULAR" },
+		{ static_cast(JoinRefType::NATURAL), "NATURAL" },
+		{ static_cast(JoinRefType::CROSS), "CROSS" },
+		{ static_cast(JoinRefType::POSITIONAL), "POSITIONAL" },
+		{ static_cast(JoinRefType::ASOF), "ASOF" },
+		{ static_cast(JoinRefType::DEPENDENT), "DEPENDENT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(JoinRefType value) {
-	switch(value) {
-	case JoinRefType::REGULAR:
-		return "REGULAR";
-	case JoinRefType::NATURAL:
-		return "NATURAL";
-	case JoinRefType::CROSS:
-		return "CROSS";
-	case JoinRefType::POSITIONAL:
-		return "POSITIONAL";
-	case JoinRefType::ASOF:
-		return "ASOF";
-	case JoinRefType::DEPENDENT:
-		return "DEPENDENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetJoinRefTypeValues(), 6, "JoinRefType", static_cast(value));
 }
 
 template<>
 JoinRefType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "REGULAR")) {
-		return JoinRefType::REGULAR;
-	}
-	if (StringUtil::Equals(value, "NATURAL")) {
-		return JoinRefType::NATURAL;
-	}
-	if (StringUtil::Equals(value, "CROSS")) {
-		return JoinRefType::CROSS;
-	}
-	if (StringUtil::Equals(value, "POSITIONAL")) {
-		return JoinRefType::POSITIONAL;
-	}
-	if (StringUtil::Equals(value, "ASOF")) {
-		return JoinRefType::ASOF;
-	}
-	if (StringUtil::Equals(value, "DEPENDENT")) {
-		return JoinRefType::DEPENDENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetJoinRefTypeValues(), 6, "JoinRefType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetJoinTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(JoinType::INVALID), "INVALID" },
+		{ static_cast(JoinType::LEFT), "LEFT" },
+		{ static_cast(JoinType::RIGHT), "RIGHT" },
+		{ static_cast(JoinType::INNER), "INNER" },
+		{ static_cast(JoinType::OUTER), "FULL" },
+		{ static_cast(JoinType::SEMI), "SEMI" },
+		{ static_cast(JoinType::ANTI), "ANTI" },
+		{ static_cast(JoinType::MARK), "MARK" },
+		{ static_cast(JoinType::SINGLE), "SINGLE" },
+		{ static_cast(JoinType::RIGHT_SEMI), "RIGHT_SEMI" },
+		{ static_cast(JoinType::RIGHT_ANTI), "RIGHT_ANTI" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(JoinType value) {
-	switch(value) {
-	case JoinType::INVALID:
-		return "INVALID";
-	case JoinType::LEFT:
-		return "LEFT";
-	case JoinType::RIGHT:
-		return "RIGHT";
-	case JoinType::INNER:
-		return "INNER";
-	case JoinType::OUTER:
-		return "FULL";
-	case JoinType::SEMI:
-		return "SEMI";
-	case JoinType::ANTI:
-		return "ANTI";
-	case JoinType::MARK:
-		return "MARK";
-	case JoinType::SINGLE:
-		return "SINGLE";
-	case JoinType::RIGHT_SEMI:
-		return "RIGHT_SEMI";
-	case JoinType::RIGHT_ANTI:
-		return "RIGHT_ANTI";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetJoinTypeValues(), 11, "JoinType", static_cast(value));
 }
 
 template<>
 JoinType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return JoinType::INVALID;
-	}
-	if (StringUtil::Equals(value, "LEFT")) {
-		return JoinType::LEFT;
-	}
-	if (StringUtil::Equals(value, "RIGHT")) {
-		return JoinType::RIGHT;
-	}
-	if (StringUtil::Equals(value, "INNER")) {
-		return JoinType::INNER;
-	}
-	if (StringUtil::Equals(value, "FULL")) {
-		return JoinType::OUTER;
-	}
-	if (StringUtil::Equals(value, "SEMI")) {
-		return JoinType::SEMI;
-	}
-	if (StringUtil::Equals(value, "ANTI")) {
-		return JoinType::ANTI;
-	}
-	if (StringUtil::Equals(value, "MARK")) {
-		return JoinType::MARK;
-	}
-	if (StringUtil::Equals(value, "SINGLE")) {
-		return JoinType::SINGLE;
-	}
-	if (StringUtil::Equals(value, "RIGHT_SEMI")) {
-		return JoinType::RIGHT_SEMI;
-	}
-	if (StringUtil::Equals(value, "RIGHT_ANTI")) {
-		return JoinType::RIGHT_ANTI;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetJoinTypeValues(), 11, "JoinType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetKeywordCategoryValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(KeywordCategory::KEYWORD_RESERVED), "KEYWORD_RESERVED" },
+		{ static_cast(KeywordCategory::KEYWORD_UNRESERVED), "KEYWORD_UNRESERVED" },
+		{ static_cast(KeywordCategory::KEYWORD_TYPE_FUNC), "KEYWORD_TYPE_FUNC" },
+		{ static_cast(KeywordCategory::KEYWORD_COL_NAME), "KEYWORD_COL_NAME" },
+		{ static_cast(KeywordCategory::KEYWORD_NONE), "KEYWORD_NONE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(KeywordCategory value) {
-	switch(value) {
-	case KeywordCategory::KEYWORD_RESERVED:
-		return "KEYWORD_RESERVED";
-	case KeywordCategory::KEYWORD_UNRESERVED:
-		return "KEYWORD_UNRESERVED";
-	case KeywordCategory::KEYWORD_TYPE_FUNC:
-		return "KEYWORD_TYPE_FUNC";
-	case KeywordCategory::KEYWORD_COL_NAME:
-		return "KEYWORD_COL_NAME";
-	case KeywordCategory::KEYWORD_NONE:
-		return "KEYWORD_NONE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetKeywordCategoryValues(), 5, "KeywordCategory", static_cast(value));
 }
 
 template<>
 KeywordCategory EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "KEYWORD_RESERVED")) {
-		return KeywordCategory::KEYWORD_RESERVED;
-	}
-	if (StringUtil::Equals(value, "KEYWORD_UNRESERVED")) {
-		return KeywordCategory::KEYWORD_UNRESERVED;
-	}
-	if (StringUtil::Equals(value, "KEYWORD_TYPE_FUNC")) {
-		return KeywordCategory::KEYWORD_TYPE_FUNC;
-	}
-	if (StringUtil::Equals(value, "KEYWORD_COL_NAME")) {
-		return KeywordCategory::KEYWORD_COL_NAME;
-	}
-	if (StringUtil::Equals(value, "KEYWORD_NONE")) {
-		return KeywordCategory::KEYWORD_NONE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetKeywordCategoryValues(), 5, "KeywordCategory", value));
+}
+
+const StringUtil::EnumStringLiteral *GetLimitNodeTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(LimitNodeType::UNSET), "UNSET" },
+		{ static_cast(LimitNodeType::CONSTANT_VALUE), "CONSTANT_VALUE" },
+		{ static_cast(LimitNodeType::CONSTANT_PERCENTAGE), "CONSTANT_PERCENTAGE" },
+		{ static_cast(LimitNodeType::EXPRESSION_VALUE), "EXPRESSION_VALUE" },
+		{ static_cast(LimitNodeType::EXPRESSION_PERCENTAGE), "EXPRESSION_PERCENTAGE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(LimitNodeType value) {
-	switch(value) {
-	case LimitNodeType::UNSET:
-		return "UNSET";
-	case LimitNodeType::CONSTANT_VALUE:
-		return "CONSTANT_VALUE";
-	case LimitNodeType::CONSTANT_PERCENTAGE:
-		return "CONSTANT_PERCENTAGE";
-	case LimitNodeType::EXPRESSION_VALUE:
-		return "EXPRESSION_VALUE";
-	case LimitNodeType::EXPRESSION_PERCENTAGE:
-		return "EXPRESSION_PERCENTAGE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetLimitNodeTypeValues(), 5, "LimitNodeType", static_cast(value));
 }
 
 template<>
 LimitNodeType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "UNSET")) {
-		return LimitNodeType::UNSET;
-	}
-	if (StringUtil::Equals(value, "CONSTANT_VALUE")) {
-		return LimitNodeType::CONSTANT_VALUE;
-	}
-	if (StringUtil::Equals(value, "CONSTANT_PERCENTAGE")) {
-		return LimitNodeType::CONSTANT_PERCENTAGE;
-	}
-	if (StringUtil::Equals(value, "EXPRESSION_VALUE")) {
-		return LimitNodeType::EXPRESSION_VALUE;
-	}
-	if (StringUtil::Equals(value, "EXPRESSION_PERCENTAGE")) {
-		return LimitNodeType::EXPRESSION_PERCENTAGE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetLimitNodeTypeValues(), 5, "LimitNodeType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetLoadTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(LoadType::LOAD), "LOAD" },
+		{ static_cast(LoadType::INSTALL), "INSTALL" },
+		{ static_cast(LoadType::FORCE_INSTALL), "FORCE_INSTALL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(LoadType value) {
-	switch(value) {
-	case LoadType::LOAD:
-		return "LOAD";
-	case LoadType::INSTALL:
-		return "INSTALL";
-	case LoadType::FORCE_INSTALL:
-		return "FORCE_INSTALL";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetLoadTypeValues(), 3, "LoadType", static_cast(value));
 }
 
 template<>
 LoadType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "LOAD")) {
-		return LoadType::LOAD;
-	}
-	if (StringUtil::Equals(value, "INSTALL")) {
-		return LoadType::INSTALL;
-	}
-	if (StringUtil::Equals(value, "FORCE_INSTALL")) {
-		return LoadType::FORCE_INSTALL;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetLoadTypeValues(), 3, "LoadType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetLogicalOperatorTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(LogicalOperatorType::LOGICAL_INVALID), "LOGICAL_INVALID" },
+		{ static_cast(LogicalOperatorType::LOGICAL_PROJECTION), "LOGICAL_PROJECTION" },
+		{ static_cast(LogicalOperatorType::LOGICAL_FILTER), "LOGICAL_FILTER" },
+		{ static_cast(LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY), "LOGICAL_AGGREGATE_AND_GROUP_BY" },
+		{ static_cast(LogicalOperatorType::LOGICAL_WINDOW), "LOGICAL_WINDOW" },
+		{ static_cast(LogicalOperatorType::LOGICAL_UNNEST), "LOGICAL_UNNEST" },
+		{ static_cast(LogicalOperatorType::LOGICAL_LIMIT), "LOGICAL_LIMIT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_ORDER_BY), "LOGICAL_ORDER_BY" },
+		{ static_cast(LogicalOperatorType::LOGICAL_TOP_N), "LOGICAL_TOP_N" },
+		{ static_cast(LogicalOperatorType::LOGICAL_COPY_TO_FILE), "LOGICAL_COPY_TO_FILE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DISTINCT), "LOGICAL_DISTINCT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_SAMPLE), "LOGICAL_SAMPLE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_PIVOT), "LOGICAL_PIVOT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_COPY_DATABASE), "LOGICAL_COPY_DATABASE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_GET), "LOGICAL_GET" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CHUNK_GET), "LOGICAL_CHUNK_GET" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DELIM_GET), "LOGICAL_DELIM_GET" },
+		{ static_cast(LogicalOperatorType::LOGICAL_EXPRESSION_GET), "LOGICAL_EXPRESSION_GET" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DUMMY_SCAN), "LOGICAL_DUMMY_SCAN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_EMPTY_RESULT), "LOGICAL_EMPTY_RESULT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CTE_REF), "LOGICAL_CTE_REF" },
+		{ static_cast(LogicalOperatorType::LOGICAL_JOIN), "LOGICAL_JOIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DELIM_JOIN), "LOGICAL_DELIM_JOIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_COMPARISON_JOIN), "LOGICAL_COMPARISON_JOIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_ANY_JOIN), "LOGICAL_ANY_JOIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CROSS_PRODUCT), "LOGICAL_CROSS_PRODUCT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_POSITIONAL_JOIN), "LOGICAL_POSITIONAL_JOIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_ASOF_JOIN), "LOGICAL_ASOF_JOIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DEPENDENT_JOIN), "LOGICAL_DEPENDENT_JOIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_UNION), "LOGICAL_UNION" },
+		{ static_cast(LogicalOperatorType::LOGICAL_EXCEPT), "LOGICAL_EXCEPT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_INTERSECT), "LOGICAL_INTERSECT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_RECURSIVE_CTE), "LOGICAL_RECURSIVE_CTE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_MATERIALIZED_CTE), "LOGICAL_MATERIALIZED_CTE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_INSERT), "LOGICAL_INSERT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DELETE), "LOGICAL_DELETE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_UPDATE), "LOGICAL_UPDATE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_ALTER), "LOGICAL_ALTER" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_TABLE), "LOGICAL_CREATE_TABLE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_INDEX), "LOGICAL_CREATE_INDEX" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_SEQUENCE), "LOGICAL_CREATE_SEQUENCE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_VIEW), "LOGICAL_CREATE_VIEW" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_SCHEMA), "LOGICAL_CREATE_SCHEMA" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_MACRO), "LOGICAL_CREATE_MACRO" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DROP), "LOGICAL_DROP" },
+		{ static_cast(LogicalOperatorType::LOGICAL_PRAGMA), "LOGICAL_PRAGMA" },
+		{ static_cast(LogicalOperatorType::LOGICAL_TRANSACTION), "LOGICAL_TRANSACTION" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_TYPE), "LOGICAL_CREATE_TYPE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_ATTACH), "LOGICAL_ATTACH" },
+		{ static_cast(LogicalOperatorType::LOGICAL_DETACH), "LOGICAL_DETACH" },
+		{ static_cast(LogicalOperatorType::LOGICAL_EXPLAIN), "LOGICAL_EXPLAIN" },
+		{ static_cast(LogicalOperatorType::LOGICAL_PREPARE), "LOGICAL_PREPARE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_EXECUTE), "LOGICAL_EXECUTE" },
+		{ static_cast(LogicalOperatorType::LOGICAL_EXPORT), "LOGICAL_EXPORT" },
+		{ static_cast(LogicalOperatorType::LOGICAL_VACUUM), "LOGICAL_VACUUM" },
+		{ static_cast(LogicalOperatorType::LOGICAL_SET), "LOGICAL_SET" },
+		{ static_cast(LogicalOperatorType::LOGICAL_LOAD), "LOGICAL_LOAD" },
+		{ static_cast(LogicalOperatorType::LOGICAL_RESET), "LOGICAL_RESET" },
+		{ static_cast(LogicalOperatorType::LOGICAL_UPDATE_EXTENSIONS), "LOGICAL_UPDATE_EXTENSIONS" },
+		{ static_cast(LogicalOperatorType::LOGICAL_CREATE_SECRET), "LOGICAL_CREATE_SECRET" },
+		{ static_cast(LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR), "LOGICAL_EXTENSION_OPERATOR" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(LogicalOperatorType value) {
-	switch(value) {
-	case LogicalOperatorType::LOGICAL_INVALID:
-		return "LOGICAL_INVALID";
-	case LogicalOperatorType::LOGICAL_PROJECTION:
-		return "LOGICAL_PROJECTION";
-	case LogicalOperatorType::LOGICAL_FILTER:
-		return "LOGICAL_FILTER";
-	case LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY:
-		return "LOGICAL_AGGREGATE_AND_GROUP_BY";
-	case LogicalOperatorType::LOGICAL_WINDOW:
-		return "LOGICAL_WINDOW";
-	case LogicalOperatorType::LOGICAL_UNNEST:
-		return "LOGICAL_UNNEST";
-	case LogicalOperatorType::LOGICAL_LIMIT:
-		return "LOGICAL_LIMIT";
-	case LogicalOperatorType::LOGICAL_ORDER_BY:
-		return "LOGICAL_ORDER_BY";
-	case LogicalOperatorType::LOGICAL_TOP_N:
-		return "LOGICAL_TOP_N";
-	case LogicalOperatorType::LOGICAL_COPY_TO_FILE:
-		return "LOGICAL_COPY_TO_FILE";
-	case LogicalOperatorType::LOGICAL_DISTINCT:
-		return "LOGICAL_DISTINCT";
-	case LogicalOperatorType::LOGICAL_SAMPLE:
-		return "LOGICAL_SAMPLE";
-	case LogicalOperatorType::LOGICAL_PIVOT:
-		return "LOGICAL_PIVOT";
-	case LogicalOperatorType::LOGICAL_COPY_DATABASE:
-		return "LOGICAL_COPY_DATABASE";
-	case LogicalOperatorType::LOGICAL_GET:
-		return "LOGICAL_GET";
-	case LogicalOperatorType::LOGICAL_CHUNK_GET:
-		return "LOGICAL_CHUNK_GET";
-	case LogicalOperatorType::LOGICAL_DELIM_GET:
-		return "LOGICAL_DELIM_GET";
-	case LogicalOperatorType::LOGICAL_EXPRESSION_GET:
-		return "LOGICAL_EXPRESSION_GET";
-	case LogicalOperatorType::LOGICAL_DUMMY_SCAN:
-		return "LOGICAL_DUMMY_SCAN";
-	case LogicalOperatorType::LOGICAL_EMPTY_RESULT:
-		return "LOGICAL_EMPTY_RESULT";
-	case LogicalOperatorType::LOGICAL_CTE_REF:
-		return "LOGICAL_CTE_REF";
-	case LogicalOperatorType::LOGICAL_JOIN:
-		return "LOGICAL_JOIN";
-	case LogicalOperatorType::LOGICAL_DELIM_JOIN:
-		return "LOGICAL_DELIM_JOIN";
-	case LogicalOperatorType::LOGICAL_COMPARISON_JOIN:
-		return "LOGICAL_COMPARISON_JOIN";
-	case LogicalOperatorType::LOGICAL_ANY_JOIN:
-		return "LOGICAL_ANY_JOIN";
-	case LogicalOperatorType::LOGICAL_CROSS_PRODUCT:
-		return "LOGICAL_CROSS_PRODUCT";
-	case LogicalOperatorType::LOGICAL_POSITIONAL_JOIN:
-		return "LOGICAL_POSITIONAL_JOIN";
-	case LogicalOperatorType::LOGICAL_ASOF_JOIN:
-		return "LOGICAL_ASOF_JOIN";
-	case LogicalOperatorType::LOGICAL_DEPENDENT_JOIN:
-		return "LOGICAL_DEPENDENT_JOIN";
-	case LogicalOperatorType::LOGICAL_UNION:
-		return "LOGICAL_UNION";
-	case LogicalOperatorType::LOGICAL_EXCEPT:
-		return "LOGICAL_EXCEPT";
-	case LogicalOperatorType::LOGICAL_INTERSECT:
-		return "LOGICAL_INTERSECT";
-	case LogicalOperatorType::LOGICAL_RECURSIVE_CTE:
-		return "LOGICAL_RECURSIVE_CTE";
-	case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE:
-		return "LOGICAL_MATERIALIZED_CTE";
-	case LogicalOperatorType::LOGICAL_INSERT:
-		return "LOGICAL_INSERT";
-	case LogicalOperatorType::LOGICAL_DELETE:
-		return "LOGICAL_DELETE";
-	case LogicalOperatorType::LOGICAL_UPDATE:
-		return "LOGICAL_UPDATE";
-	case LogicalOperatorType::LOGICAL_ALTER:
-		return "LOGICAL_ALTER";
-	case LogicalOperatorType::LOGICAL_CREATE_TABLE:
-		return "LOGICAL_CREATE_TABLE";
-	case LogicalOperatorType::LOGICAL_CREATE_INDEX:
-		return "LOGICAL_CREATE_INDEX";
-	case LogicalOperatorType::LOGICAL_CREATE_SEQUENCE:
-		return "LOGICAL_CREATE_SEQUENCE";
-	case LogicalOperatorType::LOGICAL_CREATE_VIEW:
-		return "LOGICAL_CREATE_VIEW";
-	case LogicalOperatorType::LOGICAL_CREATE_SCHEMA:
-		return "LOGICAL_CREATE_SCHEMA";
-	case LogicalOperatorType::LOGICAL_CREATE_MACRO:
-		return "LOGICAL_CREATE_MACRO";
-	case LogicalOperatorType::LOGICAL_DROP:
-		return "LOGICAL_DROP";
-	case LogicalOperatorType::LOGICAL_PRAGMA:
-		return "LOGICAL_PRAGMA";
-	case LogicalOperatorType::LOGICAL_TRANSACTION:
-		return "LOGICAL_TRANSACTION";
-	case LogicalOperatorType::LOGICAL_CREATE_TYPE:
-		return "LOGICAL_CREATE_TYPE";
-	case LogicalOperatorType::LOGICAL_ATTACH:
-		return "LOGICAL_ATTACH";
-	case LogicalOperatorType::LOGICAL_DETACH:
-		return "LOGICAL_DETACH";
-	case LogicalOperatorType::LOGICAL_EXPLAIN:
-		return "LOGICAL_EXPLAIN";
-	case LogicalOperatorType::LOGICAL_PREPARE:
-		return "LOGICAL_PREPARE";
-	case LogicalOperatorType::LOGICAL_EXECUTE:
-		return "LOGICAL_EXECUTE";
-	case LogicalOperatorType::LOGICAL_EXPORT:
-		return "LOGICAL_EXPORT";
-	case LogicalOperatorType::LOGICAL_VACUUM:
-		return "LOGICAL_VACUUM";
-	case LogicalOperatorType::LOGICAL_SET:
-		return "LOGICAL_SET";
-	case LogicalOperatorType::LOGICAL_LOAD:
-		return "LOGICAL_LOAD";
-	case LogicalOperatorType::LOGICAL_RESET:
-		return "LOGICAL_RESET";
-	case LogicalOperatorType::LOGICAL_UPDATE_EXTENSIONS:
-		return "LOGICAL_UPDATE_EXTENSIONS";
-	case LogicalOperatorType::LOGICAL_CREATE_SECRET:
-		return "LOGICAL_CREATE_SECRET";
-	case LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR:
-		return "LOGICAL_EXTENSION_OPERATOR";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetLogicalOperatorTypeValues(), 61, "LogicalOperatorType", static_cast(value));
 }
 
 template<>
 LogicalOperatorType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "LOGICAL_INVALID")) {
-		return LogicalOperatorType::LOGICAL_INVALID;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_PROJECTION")) {
-		return LogicalOperatorType::LOGICAL_PROJECTION;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_FILTER")) {
-		return LogicalOperatorType::LOGICAL_FILTER;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_AGGREGATE_AND_GROUP_BY")) {
-		return LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_WINDOW")) {
-		return LogicalOperatorType::LOGICAL_WINDOW;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_UNNEST")) {
-		return LogicalOperatorType::LOGICAL_UNNEST;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_LIMIT")) {
-		return LogicalOperatorType::LOGICAL_LIMIT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_ORDER_BY")) {
-		return LogicalOperatorType::LOGICAL_ORDER_BY;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_TOP_N")) {
-		return LogicalOperatorType::LOGICAL_TOP_N;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_COPY_TO_FILE")) {
-		return LogicalOperatorType::LOGICAL_COPY_TO_FILE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DISTINCT")) {
-		return LogicalOperatorType::LOGICAL_DISTINCT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_SAMPLE")) {
-		return LogicalOperatorType::LOGICAL_SAMPLE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_PIVOT")) {
-		return LogicalOperatorType::LOGICAL_PIVOT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_COPY_DATABASE")) {
-		return LogicalOperatorType::LOGICAL_COPY_DATABASE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_GET")) {
-		return LogicalOperatorType::LOGICAL_GET;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CHUNK_GET")) {
-		return LogicalOperatorType::LOGICAL_CHUNK_GET;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DELIM_GET")) {
-		return LogicalOperatorType::LOGICAL_DELIM_GET;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_EXPRESSION_GET")) {
-		return LogicalOperatorType::LOGICAL_EXPRESSION_GET;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DUMMY_SCAN")) {
-		return LogicalOperatorType::LOGICAL_DUMMY_SCAN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_EMPTY_RESULT")) {
-		return LogicalOperatorType::LOGICAL_EMPTY_RESULT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CTE_REF")) {
-		return LogicalOperatorType::LOGICAL_CTE_REF;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_JOIN")) {
-		return LogicalOperatorType::LOGICAL_JOIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DELIM_JOIN")) {
-		return LogicalOperatorType::LOGICAL_DELIM_JOIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_COMPARISON_JOIN")) {
-		return LogicalOperatorType::LOGICAL_COMPARISON_JOIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_ANY_JOIN")) {
-		return LogicalOperatorType::LOGICAL_ANY_JOIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CROSS_PRODUCT")) {
-		return LogicalOperatorType::LOGICAL_CROSS_PRODUCT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_POSITIONAL_JOIN")) {
-		return LogicalOperatorType::LOGICAL_POSITIONAL_JOIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_ASOF_JOIN")) {
-		return LogicalOperatorType::LOGICAL_ASOF_JOIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DEPENDENT_JOIN")) {
-		return LogicalOperatorType::LOGICAL_DEPENDENT_JOIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_UNION")) {
-		return LogicalOperatorType::LOGICAL_UNION;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_EXCEPT")) {
-		return LogicalOperatorType::LOGICAL_EXCEPT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_INTERSECT")) {
-		return LogicalOperatorType::LOGICAL_INTERSECT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_RECURSIVE_CTE")) {
-		return LogicalOperatorType::LOGICAL_RECURSIVE_CTE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_MATERIALIZED_CTE")) {
-		return LogicalOperatorType::LOGICAL_MATERIALIZED_CTE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_INSERT")) {
-		return LogicalOperatorType::LOGICAL_INSERT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DELETE")) {
-		return LogicalOperatorType::LOGICAL_DELETE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_UPDATE")) {
-		return LogicalOperatorType::LOGICAL_UPDATE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_ALTER")) {
-		return LogicalOperatorType::LOGICAL_ALTER;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_TABLE")) {
-		return LogicalOperatorType::LOGICAL_CREATE_TABLE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_INDEX")) {
-		return LogicalOperatorType::LOGICAL_CREATE_INDEX;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_SEQUENCE")) {
-		return LogicalOperatorType::LOGICAL_CREATE_SEQUENCE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_VIEW")) {
-		return LogicalOperatorType::LOGICAL_CREATE_VIEW;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_SCHEMA")) {
-		return LogicalOperatorType::LOGICAL_CREATE_SCHEMA;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_MACRO")) {
-		return LogicalOperatorType::LOGICAL_CREATE_MACRO;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DROP")) {
-		return LogicalOperatorType::LOGICAL_DROP;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_PRAGMA")) {
-		return LogicalOperatorType::LOGICAL_PRAGMA;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_TRANSACTION")) {
-		return LogicalOperatorType::LOGICAL_TRANSACTION;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_TYPE")) {
-		return LogicalOperatorType::LOGICAL_CREATE_TYPE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_ATTACH")) {
-		return LogicalOperatorType::LOGICAL_ATTACH;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_DETACH")) {
-		return LogicalOperatorType::LOGICAL_DETACH;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_EXPLAIN")) {
-		return LogicalOperatorType::LOGICAL_EXPLAIN;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_PREPARE")) {
-		return LogicalOperatorType::LOGICAL_PREPARE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_EXECUTE")) {
-		return LogicalOperatorType::LOGICAL_EXECUTE;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_EXPORT")) {
-		return LogicalOperatorType::LOGICAL_EXPORT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_VACUUM")) {
-		return LogicalOperatorType::LOGICAL_VACUUM;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_SET")) {
-		return LogicalOperatorType::LOGICAL_SET;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_LOAD")) {
-		return LogicalOperatorType::LOGICAL_LOAD;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_RESET")) {
-		return LogicalOperatorType::LOGICAL_RESET;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_UPDATE_EXTENSIONS")) {
-		return LogicalOperatorType::LOGICAL_UPDATE_EXTENSIONS;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_CREATE_SECRET")) {
-		return LogicalOperatorType::LOGICAL_CREATE_SECRET;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_EXTENSION_OPERATOR")) {
-		return LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetLogicalOperatorTypeValues(), 61, "LogicalOperatorType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetLogicalTypeIdValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(LogicalTypeId::INVALID), "INVALID" },
+		{ static_cast(LogicalTypeId::SQLNULL), "NULL" },
+		{ static_cast(LogicalTypeId::UNKNOWN), "UNKNOWN" },
+		{ static_cast(LogicalTypeId::ANY), "ANY" },
+		{ static_cast(LogicalTypeId::USER), "USER" },
+		{ static_cast(LogicalTypeId::BOOLEAN), "BOOLEAN" },
+		{ static_cast(LogicalTypeId::TINYINT), "TINYINT" },
+		{ static_cast(LogicalTypeId::SMALLINT), "SMALLINT" },
+		{ static_cast(LogicalTypeId::INTEGER), "INTEGER" },
+		{ static_cast(LogicalTypeId::BIGINT), "BIGINT" },
+		{ static_cast(LogicalTypeId::DATE), "DATE" },
+		{ static_cast(LogicalTypeId::TIME), "TIME" },
+		{ static_cast(LogicalTypeId::TIMESTAMP_SEC), "TIMESTAMP_S" },
+		{ static_cast(LogicalTypeId::TIMESTAMP_MS), "TIMESTAMP_MS" },
+		{ static_cast(LogicalTypeId::TIMESTAMP), "TIMESTAMP" },
+		{ static_cast(LogicalTypeId::TIMESTAMP_NS), "TIMESTAMP_NS" },
+		{ static_cast(LogicalTypeId::DECIMAL), "DECIMAL" },
+		{ static_cast(LogicalTypeId::FLOAT), "FLOAT" },
+		{ static_cast(LogicalTypeId::DOUBLE), "DOUBLE" },
+		{ static_cast(LogicalTypeId::CHAR), "CHAR" },
+		{ static_cast(LogicalTypeId::VARCHAR), "VARCHAR" },
+		{ static_cast(LogicalTypeId::BLOB), "BLOB" },
+		{ static_cast(LogicalTypeId::INTERVAL), "INTERVAL" },
+		{ static_cast(LogicalTypeId::UTINYINT), "UTINYINT" },
+		{ static_cast(LogicalTypeId::USMALLINT), "USMALLINT" },
+		{ static_cast(LogicalTypeId::UINTEGER), "UINTEGER" },
+		{ static_cast(LogicalTypeId::UBIGINT), "UBIGINT" },
+		{ static_cast(LogicalTypeId::TIMESTAMP_TZ), "TIMESTAMP WITH TIME ZONE" },
+		{ static_cast(LogicalTypeId::TIME_TZ), "TIME WITH TIME ZONE" },
+		{ static_cast(LogicalTypeId::BIT), "BIT" },
+		{ static_cast(LogicalTypeId::STRING_LITERAL), "STRING_LITERAL" },
+		{ static_cast(LogicalTypeId::INTEGER_LITERAL), "INTEGER_LITERAL" },
+		{ static_cast(LogicalTypeId::VARINT), "VARINT" },
+		{ static_cast(LogicalTypeId::UHUGEINT), "UHUGEINT" },
+		{ static_cast(LogicalTypeId::HUGEINT), "HUGEINT" },
+		{ static_cast(LogicalTypeId::POINTER), "POINTER" },
+		{ static_cast(LogicalTypeId::VALIDITY), "VALIDITY" },
+		{ static_cast(LogicalTypeId::UUID), "UUID" },
+		{ static_cast(LogicalTypeId::STRUCT), "STRUCT" },
+		{ static_cast(LogicalTypeId::LIST), "LIST" },
+		{ static_cast(LogicalTypeId::MAP), "MAP" },
+		{ static_cast(LogicalTypeId::TABLE), "TABLE" },
+		{ static_cast(LogicalTypeId::ENUM), "ENUM" },
+		{ static_cast(LogicalTypeId::AGGREGATE_STATE), "AGGREGATE_STATE" },
+		{ static_cast(LogicalTypeId::LAMBDA), "LAMBDA" },
+		{ static_cast(LogicalTypeId::UNION), "UNION" },
+		{ static_cast(LogicalTypeId::ARRAY), "ARRAY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(LogicalTypeId value) {
-	switch(value) {
-	case LogicalTypeId::INVALID:
-		return "INVALID";
-	case LogicalTypeId::SQLNULL:
-		return "NULL";
-	case LogicalTypeId::UNKNOWN:
-		return "UNKNOWN";
-	case LogicalTypeId::ANY:
-		return "ANY";
-	case LogicalTypeId::USER:
-		return "USER";
-	case LogicalTypeId::BOOLEAN:
-		return "BOOLEAN";
-	case LogicalTypeId::TINYINT:
-		return "TINYINT";
-	case LogicalTypeId::SMALLINT:
-		return "SMALLINT";
-	case LogicalTypeId::INTEGER:
-		return "INTEGER";
-	case LogicalTypeId::BIGINT:
-		return "BIGINT";
-	case LogicalTypeId::DATE:
-		return "DATE";
-	case LogicalTypeId::TIME:
-		return "TIME";
-	case LogicalTypeId::TIMESTAMP_SEC:
-		return "TIMESTAMP_S";
-	case LogicalTypeId::TIMESTAMP_MS:
-		return "TIMESTAMP_MS";
-	case LogicalTypeId::TIMESTAMP:
-		return "TIMESTAMP";
-	case LogicalTypeId::TIMESTAMP_NS:
-		return "TIMESTAMP_NS";
-	case LogicalTypeId::DECIMAL:
-		return "DECIMAL";
-	case LogicalTypeId::FLOAT:
-		return "FLOAT";
-	case LogicalTypeId::DOUBLE:
-		return "DOUBLE";
-	case LogicalTypeId::CHAR:
-		return "CHAR";
-	case LogicalTypeId::VARCHAR:
-		return "VARCHAR";
-	case LogicalTypeId::BLOB:
-		return "BLOB";
-	case LogicalTypeId::INTERVAL:
-		return "INTERVAL";
-	case LogicalTypeId::UTINYINT:
-		return "UTINYINT";
-	case LogicalTypeId::USMALLINT:
-		return "USMALLINT";
-	case LogicalTypeId::UINTEGER:
-		return "UINTEGER";
-	case LogicalTypeId::UBIGINT:
-		return "UBIGINT";
-	case LogicalTypeId::TIMESTAMP_TZ:
-		return "TIMESTAMP WITH TIME ZONE";
-	case LogicalTypeId::TIME_TZ:
-		return "TIME WITH TIME ZONE";
-	case LogicalTypeId::BIT:
-		return "BIT";
-	case LogicalTypeId::STRING_LITERAL:
-		return "STRING_LITERAL";
-	case LogicalTypeId::INTEGER_LITERAL:
-		return "INTEGER_LITERAL";
-	case LogicalTypeId::VARINT:
-		return "VARINT";
-	case LogicalTypeId::UHUGEINT:
-		return "UHUGEINT";
-	case LogicalTypeId::HUGEINT:
-		return "HUGEINT";
-	case LogicalTypeId::POINTER:
-		return "POINTER";
-	case LogicalTypeId::VALIDITY:
-		return "VALIDITY";
-	case LogicalTypeId::UUID:
-		return "UUID";
-	case LogicalTypeId::STRUCT:
-		return "STRUCT";
-	case LogicalTypeId::LIST:
-		return "LIST";
-	case LogicalTypeId::MAP:
-		return "MAP";
-	case LogicalTypeId::TABLE:
-		return "TABLE";
-	case LogicalTypeId::ENUM:
-		return "ENUM";
-	case LogicalTypeId::AGGREGATE_STATE:
-		return "AGGREGATE_STATE";
-	case LogicalTypeId::LAMBDA:
-		return "LAMBDA";
-	case LogicalTypeId::UNION:
-		return "UNION";
-	case LogicalTypeId::ARRAY:
-		return "ARRAY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetLogicalTypeIdValues(), 47, "LogicalTypeId", static_cast(value));
 }
 
 template<>
 LogicalTypeId EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return LogicalTypeId::INVALID;
-	}
-	if (StringUtil::Equals(value, "NULL")) {
-		return LogicalTypeId::SQLNULL;
-	}
-	if (StringUtil::Equals(value, "UNKNOWN")) {
-		return LogicalTypeId::UNKNOWN;
-	}
-	if (StringUtil::Equals(value, "ANY")) {
-		return LogicalTypeId::ANY;
-	}
-	if (StringUtil::Equals(value, "USER")) {
-		return LogicalTypeId::USER;
-	}
-	if (StringUtil::Equals(value, "BOOLEAN")) {
-		return LogicalTypeId::BOOLEAN;
-	}
-	if (StringUtil::Equals(value, "TINYINT")) {
-		return LogicalTypeId::TINYINT;
-	}
-	if (StringUtil::Equals(value, "SMALLINT")) {
-		return LogicalTypeId::SMALLINT;
-	}
-	if (StringUtil::Equals(value, "INTEGER")) {
-		return LogicalTypeId::INTEGER;
-	}
-	if (StringUtil::Equals(value, "BIGINT")) {
-		return LogicalTypeId::BIGINT;
-	}
-	if (StringUtil::Equals(value, "DATE")) {
-		return LogicalTypeId::DATE;
-	}
-	if (StringUtil::Equals(value, "TIME")) {
-		return LogicalTypeId::TIME;
-	}
-	if (StringUtil::Equals(value, "TIMESTAMP_S")) {
-		return LogicalTypeId::TIMESTAMP_SEC;
-	}
-	if (StringUtil::Equals(value, "TIMESTAMP_MS")) {
-		return LogicalTypeId::TIMESTAMP_MS;
-	}
-	if (StringUtil::Equals(value, "TIMESTAMP")) {
-		return LogicalTypeId::TIMESTAMP;
-	}
-	if (StringUtil::Equals(value, "TIMESTAMP_NS")) {
-		return LogicalTypeId::TIMESTAMP_NS;
-	}
-	if (StringUtil::Equals(value, "DECIMAL")) {
-		return LogicalTypeId::DECIMAL;
-	}
-	if (StringUtil::Equals(value, "FLOAT")) {
-		return LogicalTypeId::FLOAT;
-	}
-	if (StringUtil::Equals(value, "DOUBLE")) {
-		return LogicalTypeId::DOUBLE;
-	}
-	if (StringUtil::Equals(value, "CHAR")) {
-		return LogicalTypeId::CHAR;
-	}
-	if (StringUtil::Equals(value, "VARCHAR")) {
-		return LogicalTypeId::VARCHAR;
-	}
-	if (StringUtil::Equals(value, "BLOB")) {
-		return LogicalTypeId::BLOB;
-	}
-	if (StringUtil::Equals(value, "INTERVAL")) {
-		return LogicalTypeId::INTERVAL;
-	}
-	if (StringUtil::Equals(value, "UTINYINT")) {
-		return LogicalTypeId::UTINYINT;
-	}
-	if (StringUtil::Equals(value, "USMALLINT")) {
-		return LogicalTypeId::USMALLINT;
-	}
-	if (StringUtil::Equals(value, "UINTEGER")) {
-		return LogicalTypeId::UINTEGER;
-	}
-	if (StringUtil::Equals(value, "UBIGINT")) {
-		return LogicalTypeId::UBIGINT;
-	}
-	if (StringUtil::Equals(value, "TIMESTAMP WITH TIME ZONE")) {
-		return LogicalTypeId::TIMESTAMP_TZ;
-	}
-	if (StringUtil::Equals(value, "TIME WITH TIME ZONE")) {
-		return LogicalTypeId::TIME_TZ;
-	}
-	if (StringUtil::Equals(value, "BIT")) {
-		return LogicalTypeId::BIT;
-	}
-	if (StringUtil::Equals(value, "STRING_LITERAL")) {
-		return LogicalTypeId::STRING_LITERAL;
-	}
-	if (StringUtil::Equals(value, "INTEGER_LITERAL")) {
-		return LogicalTypeId::INTEGER_LITERAL;
-	}
-	if (StringUtil::Equals(value, "VARINT")) {
-		return LogicalTypeId::VARINT;
-	}
-	if (StringUtil::Equals(value, "UHUGEINT")) {
-		return LogicalTypeId::UHUGEINT;
-	}
-	if (StringUtil::Equals(value, "HUGEINT")) {
-		return LogicalTypeId::HUGEINT;
-	}
-	if (StringUtil::Equals(value, "POINTER")) {
-		return LogicalTypeId::POINTER;
-	}
-	if (StringUtil::Equals(value, "VALIDITY")) {
-		return LogicalTypeId::VALIDITY;
-	}
-	if (StringUtil::Equals(value, "UUID")) {
-		return LogicalTypeId::UUID;
-	}
-	if (StringUtil::Equals(value, "STRUCT")) {
-		return LogicalTypeId::STRUCT;
-	}
-	if (StringUtil::Equals(value, "LIST")) {
-		return LogicalTypeId::LIST;
-	}
-	if (StringUtil::Equals(value, "MAP")) {
-		return LogicalTypeId::MAP;
-	}
-	if (StringUtil::Equals(value, "TABLE")) {
-		return LogicalTypeId::TABLE;
-	}
-	if (StringUtil::Equals(value, "ENUM")) {
-		return LogicalTypeId::ENUM;
-	}
-	if (StringUtil::Equals(value, "AGGREGATE_STATE")) {
-		return LogicalTypeId::AGGREGATE_STATE;
-	}
-	if (StringUtil::Equals(value, "LAMBDA")) {
-		return LogicalTypeId::LAMBDA;
-	}
-	if (StringUtil::Equals(value, "UNION")) {
-		return LogicalTypeId::UNION;
-	}
-	if (StringUtil::Equals(value, "ARRAY")) {
-		return LogicalTypeId::ARRAY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetLogicalTypeIdValues(), 47, "LogicalTypeId", value));
+}
+
+const StringUtil::EnumStringLiteral *GetLookupResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(LookupResultType::LOOKUP_MISS), "LOOKUP_MISS" },
+		{ static_cast(LookupResultType::LOOKUP_HIT), "LOOKUP_HIT" },
+		{ static_cast(LookupResultType::LOOKUP_NULL), "LOOKUP_NULL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(LookupResultType value) {
-	switch(value) {
-	case LookupResultType::LOOKUP_MISS:
-		return "LOOKUP_MISS";
-	case LookupResultType::LOOKUP_HIT:
-		return "LOOKUP_HIT";
-	case LookupResultType::LOOKUP_NULL:
-		return "LOOKUP_NULL";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetLookupResultTypeValues(), 3, "LookupResultType", static_cast(value));
 }
 
 template<>
 LookupResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "LOOKUP_MISS")) {
-		return LookupResultType::LOOKUP_MISS;
-	}
-	if (StringUtil::Equals(value, "LOOKUP_HIT")) {
-		return LookupResultType::LOOKUP_HIT;
-	}
-	if (StringUtil::Equals(value, "LOOKUP_NULL")) {
-		return LookupResultType::LOOKUP_NULL;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetLookupResultTypeValues(), 3, "LookupResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetMacroTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(MacroType::VOID_MACRO), "VOID_MACRO" },
+		{ static_cast(MacroType::TABLE_MACRO), "TABLE_MACRO" },
+		{ static_cast(MacroType::SCALAR_MACRO), "SCALAR_MACRO" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(MacroType value) {
-	switch(value) {
-	case MacroType::VOID_MACRO:
-		return "VOID_MACRO";
-	case MacroType::TABLE_MACRO:
-		return "TABLE_MACRO";
-	case MacroType::SCALAR_MACRO:
-		return "SCALAR_MACRO";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetMacroTypeValues(), 3, "MacroType", static_cast(value));
 }
 
 template<>
 MacroType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "VOID_MACRO")) {
-		return MacroType::VOID_MACRO;
-	}
-	if (StringUtil::Equals(value, "TABLE_MACRO")) {
-		return MacroType::TABLE_MACRO;
-	}
-	if (StringUtil::Equals(value, "SCALAR_MACRO")) {
-		return MacroType::SCALAR_MACRO;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetMacroTypeValues(), 3, "MacroType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetMapInvalidReasonValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(MapInvalidReason::VALID), "VALID" },
+		{ static_cast(MapInvalidReason::NULL_KEY), "NULL_KEY" },
+		{ static_cast(MapInvalidReason::DUPLICATE_KEY), "DUPLICATE_KEY" },
+		{ static_cast(MapInvalidReason::NOT_ALIGNED), "NOT_ALIGNED" },
+		{ static_cast(MapInvalidReason::INVALID_PARAMS), "INVALID_PARAMS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(MapInvalidReason value) {
-	switch(value) {
-	case MapInvalidReason::VALID:
-		return "VALID";
-	case MapInvalidReason::NULL_KEY:
-		return "NULL_KEY";
-	case MapInvalidReason::DUPLICATE_KEY:
-		return "DUPLICATE_KEY";
-	case MapInvalidReason::NOT_ALIGNED:
-		return "NOT_ALIGNED";
-	case MapInvalidReason::INVALID_PARAMS:
-		return "INVALID_PARAMS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetMapInvalidReasonValues(), 5, "MapInvalidReason", static_cast(value));
 }
 
 template<>
 MapInvalidReason EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "VALID")) {
-		return MapInvalidReason::VALID;
-	}
-	if (StringUtil::Equals(value, "NULL_KEY")) {
-		return MapInvalidReason::NULL_KEY;
-	}
-	if (StringUtil::Equals(value, "DUPLICATE_KEY")) {
-		return MapInvalidReason::DUPLICATE_KEY;
-	}
-	if (StringUtil::Equals(value, "NOT_ALIGNED")) {
-		return MapInvalidReason::NOT_ALIGNED;
-	}
-	if (StringUtil::Equals(value, "INVALID_PARAMS")) {
-		return MapInvalidReason::INVALID_PARAMS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetMapInvalidReasonValues(), 5, "MapInvalidReason", value));
+}
+
+const StringUtil::EnumStringLiteral *GetMemoryTagValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(MemoryTag::BASE_TABLE), "BASE_TABLE" },
+		{ static_cast(MemoryTag::HASH_TABLE), "HASH_TABLE" },
+		{ static_cast(MemoryTag::PARQUET_READER), "PARQUET_READER" },
+		{ static_cast(MemoryTag::CSV_READER), "CSV_READER" },
+		{ static_cast(MemoryTag::ORDER_BY), "ORDER_BY" },
+		{ static_cast(MemoryTag::ART_INDEX), "ART_INDEX" },
+		{ static_cast(MemoryTag::COLUMN_DATA), "COLUMN_DATA" },
+		{ static_cast(MemoryTag::METADATA), "METADATA" },
+		{ static_cast(MemoryTag::OVERFLOW_STRINGS), "OVERFLOW_STRINGS" },
+		{ static_cast(MemoryTag::IN_MEMORY_TABLE), "IN_MEMORY_TABLE" },
+		{ static_cast(MemoryTag::ALLOCATOR), "ALLOCATOR" },
+		{ static_cast(MemoryTag::EXTENSION), "EXTENSION" },
+		{ static_cast(MemoryTag::TRANSACTION), "TRANSACTION" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(MemoryTag value) {
-	switch(value) {
-	case MemoryTag::BASE_TABLE:
-		return "BASE_TABLE";
-	case MemoryTag::HASH_TABLE:
-		return "HASH_TABLE";
-	case MemoryTag::PARQUET_READER:
-		return "PARQUET_READER";
-	case MemoryTag::CSV_READER:
-		return "CSV_READER";
-	case MemoryTag::ORDER_BY:
-		return "ORDER_BY";
-	case MemoryTag::ART_INDEX:
-		return "ART_INDEX";
-	case MemoryTag::COLUMN_DATA:
-		return "COLUMN_DATA";
-	case MemoryTag::METADATA:
-		return "METADATA";
-	case MemoryTag::OVERFLOW_STRINGS:
-		return "OVERFLOW_STRINGS";
-	case MemoryTag::IN_MEMORY_TABLE:
-		return "IN_MEMORY_TABLE";
-	case MemoryTag::ALLOCATOR:
-		return "ALLOCATOR";
-	case MemoryTag::EXTENSION:
-		return "EXTENSION";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetMemoryTagValues(), 13, "MemoryTag", static_cast(value));
 }
 
 template<>
 MemoryTag EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "BASE_TABLE")) {
-		return MemoryTag::BASE_TABLE;
-	}
-	if (StringUtil::Equals(value, "HASH_TABLE")) {
-		return MemoryTag::HASH_TABLE;
-	}
-	if (StringUtil::Equals(value, "PARQUET_READER")) {
-		return MemoryTag::PARQUET_READER;
-	}
-	if (StringUtil::Equals(value, "CSV_READER")) {
-		return MemoryTag::CSV_READER;
-	}
-	if (StringUtil::Equals(value, "ORDER_BY")) {
-		return MemoryTag::ORDER_BY;
-	}
-	if (StringUtil::Equals(value, "ART_INDEX")) {
-		return MemoryTag::ART_INDEX;
-	}
-	if (StringUtil::Equals(value, "COLUMN_DATA")) {
-		return MemoryTag::COLUMN_DATA;
-	}
-	if (StringUtil::Equals(value, "METADATA")) {
-		return MemoryTag::METADATA;
-	}
-	if (StringUtil::Equals(value, "OVERFLOW_STRINGS")) {
-		return MemoryTag::OVERFLOW_STRINGS;
-	}
-	if (StringUtil::Equals(value, "IN_MEMORY_TABLE")) {
-		return MemoryTag::IN_MEMORY_TABLE;
-	}
-	if (StringUtil::Equals(value, "ALLOCATOR")) {
-		return MemoryTag::ALLOCATOR;
-	}
-	if (StringUtil::Equals(value, "EXTENSION")) {
-		return MemoryTag::EXTENSION;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetMemoryTagValues(), 13, "MemoryTag", value));
+}
+
+const StringUtil::EnumStringLiteral *GetMetaPipelineTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(MetaPipelineType::REGULAR), "REGULAR" },
+		{ static_cast(MetaPipelineType::JOIN_BUILD), "JOIN_BUILD" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(MetaPipelineType value) {
-	switch(value) {
-	case MetaPipelineType::REGULAR:
-		return "REGULAR";
-	case MetaPipelineType::JOIN_BUILD:
-		return "JOIN_BUILD";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetMetaPipelineTypeValues(), 2, "MetaPipelineType", static_cast(value));
 }
 
 template<>
 MetaPipelineType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "REGULAR")) {
-		return MetaPipelineType::REGULAR;
-	}
-	if (StringUtil::Equals(value, "JOIN_BUILD")) {
-		return MetaPipelineType::JOIN_BUILD;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetMetaPipelineTypeValues(), 2, "MetaPipelineType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetMetricsTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(MetricsType::QUERY_NAME), "QUERY_NAME" },
+		{ static_cast(MetricsType::BLOCKED_THREAD_TIME), "BLOCKED_THREAD_TIME" },
+		{ static_cast(MetricsType::CPU_TIME), "CPU_TIME" },
+		{ static_cast(MetricsType::EXTRA_INFO), "EXTRA_INFO" },
+		{ static_cast(MetricsType::CUMULATIVE_CARDINALITY), "CUMULATIVE_CARDINALITY" },
+		{ static_cast(MetricsType::OPERATOR_TYPE), "OPERATOR_TYPE" },
+		{ static_cast(MetricsType::OPERATOR_CARDINALITY), "OPERATOR_CARDINALITY" },
+		{ static_cast(MetricsType::CUMULATIVE_ROWS_SCANNED), "CUMULATIVE_ROWS_SCANNED" },
+		{ static_cast(MetricsType::OPERATOR_ROWS_SCANNED), "OPERATOR_ROWS_SCANNED" },
+		{ static_cast(MetricsType::OPERATOR_TIMING), "OPERATOR_TIMING" },
+		{ static_cast(MetricsType::RESULT_SET_SIZE), "RESULT_SET_SIZE" },
+		{ static_cast(MetricsType::LATENCY), "LATENCY" },
+		{ static_cast(MetricsType::ROWS_RETURNED), "ROWS_RETURNED" },
+		{ static_cast(MetricsType::OPERATOR_NAME), "OPERATOR_NAME" },
+		{ static_cast(MetricsType::ALL_OPTIMIZERS), "ALL_OPTIMIZERS" },
+		{ static_cast(MetricsType::CUMULATIVE_OPTIMIZER_TIMING), "CUMULATIVE_OPTIMIZER_TIMING" },
+		{ static_cast(MetricsType::PLANNER), "PLANNER" },
+		{ static_cast(MetricsType::PLANNER_BINDING), "PLANNER_BINDING" },
+		{ static_cast(MetricsType::PHYSICAL_PLANNER), "PHYSICAL_PLANNER" },
+		{ static_cast(MetricsType::PHYSICAL_PLANNER_COLUMN_BINDING), "PHYSICAL_PLANNER_COLUMN_BINDING" },
+		{ static_cast(MetricsType::PHYSICAL_PLANNER_RESOLVE_TYPES), "PHYSICAL_PLANNER_RESOLVE_TYPES" },
+		{ static_cast(MetricsType::PHYSICAL_PLANNER_CREATE_PLAN), "PHYSICAL_PLANNER_CREATE_PLAN" },
+		{ static_cast(MetricsType::OPTIMIZER_EXPRESSION_REWRITER), "OPTIMIZER_EXPRESSION_REWRITER" },
+		{ static_cast(MetricsType::OPTIMIZER_FILTER_PULLUP), "OPTIMIZER_FILTER_PULLUP" },
+		{ static_cast(MetricsType::OPTIMIZER_FILTER_PUSHDOWN), "OPTIMIZER_FILTER_PUSHDOWN" },
+		{ static_cast(MetricsType::OPTIMIZER_EMPTY_RESULT_PULLUP), "OPTIMIZER_EMPTY_RESULT_PULLUP" },
+		{ static_cast(MetricsType::OPTIMIZER_CTE_FILTER_PUSHER), "OPTIMIZER_CTE_FILTER_PUSHER" },
+		{ static_cast(MetricsType::OPTIMIZER_REGEX_RANGE), "OPTIMIZER_REGEX_RANGE" },
+		{ static_cast(MetricsType::OPTIMIZER_IN_CLAUSE), "OPTIMIZER_IN_CLAUSE" },
+		{ static_cast(MetricsType::OPTIMIZER_JOIN_ORDER), "OPTIMIZER_JOIN_ORDER" },
+		{ static_cast(MetricsType::OPTIMIZER_DELIMINATOR), "OPTIMIZER_DELIMINATOR" },
+		{ static_cast(MetricsType::OPTIMIZER_UNNEST_REWRITER), "OPTIMIZER_UNNEST_REWRITER" },
+		{ static_cast(MetricsType::OPTIMIZER_UNUSED_COLUMNS), "OPTIMIZER_UNUSED_COLUMNS" },
+		{ static_cast(MetricsType::OPTIMIZER_STATISTICS_PROPAGATION), "OPTIMIZER_STATISTICS_PROPAGATION" },
+		{ static_cast(MetricsType::OPTIMIZER_COMMON_SUBEXPRESSIONS), "OPTIMIZER_COMMON_SUBEXPRESSIONS" },
+		{ static_cast(MetricsType::OPTIMIZER_COMMON_AGGREGATE), "OPTIMIZER_COMMON_AGGREGATE" },
+		{ static_cast(MetricsType::OPTIMIZER_COLUMN_LIFETIME), "OPTIMIZER_COLUMN_LIFETIME" },
+		{ static_cast(MetricsType::OPTIMIZER_BUILD_SIDE_PROBE_SIDE), "OPTIMIZER_BUILD_SIDE_PROBE_SIDE" },
+		{ static_cast(MetricsType::OPTIMIZER_LIMIT_PUSHDOWN), "OPTIMIZER_LIMIT_PUSHDOWN" },
+		{ static_cast(MetricsType::OPTIMIZER_TOP_N), "OPTIMIZER_TOP_N" },
+		{ static_cast(MetricsType::OPTIMIZER_COMPRESSED_MATERIALIZATION), "OPTIMIZER_COMPRESSED_MATERIALIZATION" },
+		{ static_cast(MetricsType::OPTIMIZER_DUPLICATE_GROUPS), "OPTIMIZER_DUPLICATE_GROUPS" },
+		{ static_cast(MetricsType::OPTIMIZER_REORDER_FILTER), "OPTIMIZER_REORDER_FILTER" },
+		{ static_cast(MetricsType::OPTIMIZER_SAMPLING_PUSHDOWN), "OPTIMIZER_SAMPLING_PUSHDOWN" },
+		{ static_cast(MetricsType::OPTIMIZER_JOIN_FILTER_PUSHDOWN), "OPTIMIZER_JOIN_FILTER_PUSHDOWN" },
+		{ static_cast(MetricsType::OPTIMIZER_EXTENSION), "OPTIMIZER_EXTENSION" },
+		{ static_cast(MetricsType::OPTIMIZER_MATERIALIZED_CTE), "OPTIMIZER_MATERIALIZED_CTE" },
+		{ static_cast(MetricsType::OPTIMIZER_SUM_REWRITER), "OPTIMIZER_SUM_REWRITER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(MetricsType value) {
-	switch(value) {
-	case MetricsType::QUERY_NAME:
-		return "QUERY_NAME";
-	case MetricsType::BLOCKED_THREAD_TIME:
-		return "BLOCKED_THREAD_TIME";
-	case MetricsType::CPU_TIME:
-		return "CPU_TIME";
-	case MetricsType::EXTRA_INFO:
-		return "EXTRA_INFO";
-	case MetricsType::CUMULATIVE_CARDINALITY:
-		return "CUMULATIVE_CARDINALITY";
-	case MetricsType::OPERATOR_TYPE:
-		return "OPERATOR_TYPE";
-	case MetricsType::OPERATOR_CARDINALITY:
-		return "OPERATOR_CARDINALITY";
-	case MetricsType::CUMULATIVE_ROWS_SCANNED:
-		return "CUMULATIVE_ROWS_SCANNED";
-	case MetricsType::OPERATOR_ROWS_SCANNED:
-		return "OPERATOR_ROWS_SCANNED";
-	case MetricsType::OPERATOR_TIMING:
-		return "OPERATOR_TIMING";
-	case MetricsType::RESULT_SET_SIZE:
-		return "RESULT_SET_SIZE";
-	case MetricsType::ALL_OPTIMIZERS:
-		return "ALL_OPTIMIZERS";
-	case MetricsType::CUMULATIVE_OPTIMIZER_TIMING:
-		return "CUMULATIVE_OPTIMIZER_TIMING";
-	case MetricsType::PLANNER:
-		return "PLANNER";
-	case MetricsType::PLANNER_BINDING:
-		return "PLANNER_BINDING";
-	case MetricsType::PHYSICAL_PLANNER:
-		return "PHYSICAL_PLANNER";
-	case MetricsType::PHYSICAL_PLANNER_COLUMN_BINDING:
-		return "PHYSICAL_PLANNER_COLUMN_BINDING";
-	case MetricsType::PHYSICAL_PLANNER_RESOLVE_TYPES:
-		return "PHYSICAL_PLANNER_RESOLVE_TYPES";
-	case MetricsType::PHYSICAL_PLANNER_CREATE_PLAN:
-		return "PHYSICAL_PLANNER_CREATE_PLAN";
-	case MetricsType::OPTIMIZER_EXPRESSION_REWRITER:
-		return "OPTIMIZER_EXPRESSION_REWRITER";
-	case MetricsType::OPTIMIZER_FILTER_PULLUP:
-		return "OPTIMIZER_FILTER_PULLUP";
-	case MetricsType::OPTIMIZER_FILTER_PUSHDOWN:
-		return "OPTIMIZER_FILTER_PUSHDOWN";
-	case MetricsType::OPTIMIZER_CTE_FILTER_PUSHER:
-		return "OPTIMIZER_CTE_FILTER_PUSHER";
-	case MetricsType::OPTIMIZER_REGEX_RANGE:
-		return "OPTIMIZER_REGEX_RANGE";
-	case MetricsType::OPTIMIZER_IN_CLAUSE:
-		return "OPTIMIZER_IN_CLAUSE";
-	case MetricsType::OPTIMIZER_JOIN_ORDER:
-		return "OPTIMIZER_JOIN_ORDER";
-	case MetricsType::OPTIMIZER_DELIMINATOR:
-		return "OPTIMIZER_DELIMINATOR";
-	case MetricsType::OPTIMIZER_UNNEST_REWRITER:
-		return "OPTIMIZER_UNNEST_REWRITER";
-	case MetricsType::OPTIMIZER_UNUSED_COLUMNS:
-		return "OPTIMIZER_UNUSED_COLUMNS";
-	case MetricsType::OPTIMIZER_STATISTICS_PROPAGATION:
-		return "OPTIMIZER_STATISTICS_PROPAGATION";
-	case MetricsType::OPTIMIZER_COMMON_SUBEXPRESSIONS:
-		return "OPTIMIZER_COMMON_SUBEXPRESSIONS";
-	case MetricsType::OPTIMIZER_COMMON_AGGREGATE:
-		return "OPTIMIZER_COMMON_AGGREGATE";
-	case MetricsType::OPTIMIZER_COLUMN_LIFETIME:
-		return "OPTIMIZER_COLUMN_LIFETIME";
-	case MetricsType::OPTIMIZER_BUILD_SIDE_PROBE_SIDE:
-		return "OPTIMIZER_BUILD_SIDE_PROBE_SIDE";
-	case MetricsType::OPTIMIZER_LIMIT_PUSHDOWN:
-		return "OPTIMIZER_LIMIT_PUSHDOWN";
-	case MetricsType::OPTIMIZER_TOP_N:
-		return "OPTIMIZER_TOP_N";
-	case MetricsType::OPTIMIZER_COMPRESSED_MATERIALIZATION:
-		return "OPTIMIZER_COMPRESSED_MATERIALIZATION";
-	case MetricsType::OPTIMIZER_DUPLICATE_GROUPS:
-		return "OPTIMIZER_DUPLICATE_GROUPS";
-	case MetricsType::OPTIMIZER_REORDER_FILTER:
-		return "OPTIMIZER_REORDER_FILTER";
-	case MetricsType::OPTIMIZER_JOIN_FILTER_PUSHDOWN:
-		return "OPTIMIZER_JOIN_FILTER_PUSHDOWN";
-	case MetricsType::OPTIMIZER_EXTENSION:
-		return "OPTIMIZER_EXTENSION";
-	case MetricsType::OPTIMIZER_MATERIALIZED_CTE:
-		return "OPTIMIZER_MATERIALIZED_CTE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetMetricsTypeValues(), 48, "MetricsType", static_cast(value));
 }
 
 template<>
 MetricsType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "QUERY_NAME")) {
-		return MetricsType::QUERY_NAME;
-	}
-	if (StringUtil::Equals(value, "BLOCKED_THREAD_TIME")) {
-		return MetricsType::BLOCKED_THREAD_TIME;
-	}
-	if (StringUtil::Equals(value, "CPU_TIME")) {
-		return MetricsType::CPU_TIME;
-	}
-	if (StringUtil::Equals(value, "EXTRA_INFO")) {
-		return MetricsType::EXTRA_INFO;
-	}
-	if (StringUtil::Equals(value, "CUMULATIVE_CARDINALITY")) {
-		return MetricsType::CUMULATIVE_CARDINALITY;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_TYPE")) {
-		return MetricsType::OPERATOR_TYPE;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_CARDINALITY")) {
-		return MetricsType::OPERATOR_CARDINALITY;
-	}
-	if (StringUtil::Equals(value, "CUMULATIVE_ROWS_SCANNED")) {
-		return MetricsType::CUMULATIVE_ROWS_SCANNED;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_ROWS_SCANNED")) {
-		return MetricsType::OPERATOR_ROWS_SCANNED;
-	}
-	if (StringUtil::Equals(value, "OPERATOR_TIMING")) {
-		return MetricsType::OPERATOR_TIMING;
-	}
-	if (StringUtil::Equals(value, "RESULT_SET_SIZE")) {
-		return MetricsType::RESULT_SET_SIZE;
-	}
-	if (StringUtil::Equals(value, "ALL_OPTIMIZERS")) {
-		return MetricsType::ALL_OPTIMIZERS;
-	}
-	if (StringUtil::Equals(value, "CUMULATIVE_OPTIMIZER_TIMING")) {
-		return MetricsType::CUMULATIVE_OPTIMIZER_TIMING;
-	}
-	if (StringUtil::Equals(value, "PLANNER")) {
-		return MetricsType::PLANNER;
-	}
-	if (StringUtil::Equals(value, "PLANNER_BINDING")) {
-		return MetricsType::PLANNER_BINDING;
-	}
-	if (StringUtil::Equals(value, "PHYSICAL_PLANNER")) {
-		return MetricsType::PHYSICAL_PLANNER;
-	}
-	if (StringUtil::Equals(value, "PHYSICAL_PLANNER_COLUMN_BINDING")) {
-		return MetricsType::PHYSICAL_PLANNER_COLUMN_BINDING;
-	}
-	if (StringUtil::Equals(value, "PHYSICAL_PLANNER_RESOLVE_TYPES")) {
-		return MetricsType::PHYSICAL_PLANNER_RESOLVE_TYPES;
-	}
-	if (StringUtil::Equals(value, "PHYSICAL_PLANNER_CREATE_PLAN")) {
-		return MetricsType::PHYSICAL_PLANNER_CREATE_PLAN;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_EXPRESSION_REWRITER")) {
-		return MetricsType::OPTIMIZER_EXPRESSION_REWRITER;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_FILTER_PULLUP")) {
-		return MetricsType::OPTIMIZER_FILTER_PULLUP;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_FILTER_PUSHDOWN")) {
-		return MetricsType::OPTIMIZER_FILTER_PUSHDOWN;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_CTE_FILTER_PUSHER")) {
-		return MetricsType::OPTIMIZER_CTE_FILTER_PUSHER;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_REGEX_RANGE")) {
-		return MetricsType::OPTIMIZER_REGEX_RANGE;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_IN_CLAUSE")) {
-		return MetricsType::OPTIMIZER_IN_CLAUSE;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_JOIN_ORDER")) {
-		return MetricsType::OPTIMIZER_JOIN_ORDER;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_DELIMINATOR")) {
-		return MetricsType::OPTIMIZER_DELIMINATOR;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_UNNEST_REWRITER")) {
-		return MetricsType::OPTIMIZER_UNNEST_REWRITER;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_UNUSED_COLUMNS")) {
-		return MetricsType::OPTIMIZER_UNUSED_COLUMNS;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_STATISTICS_PROPAGATION")) {
-		return MetricsType::OPTIMIZER_STATISTICS_PROPAGATION;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_COMMON_SUBEXPRESSIONS")) {
-		return MetricsType::OPTIMIZER_COMMON_SUBEXPRESSIONS;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_COMMON_AGGREGATE")) {
-		return MetricsType::OPTIMIZER_COMMON_AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_COLUMN_LIFETIME")) {
-		return MetricsType::OPTIMIZER_COLUMN_LIFETIME;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_BUILD_SIDE_PROBE_SIDE")) {
-		return MetricsType::OPTIMIZER_BUILD_SIDE_PROBE_SIDE;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_LIMIT_PUSHDOWN")) {
-		return MetricsType::OPTIMIZER_LIMIT_PUSHDOWN;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_TOP_N")) {
-		return MetricsType::OPTIMIZER_TOP_N;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_COMPRESSED_MATERIALIZATION")) {
-		return MetricsType::OPTIMIZER_COMPRESSED_MATERIALIZATION;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_DUPLICATE_GROUPS")) {
-		return MetricsType::OPTIMIZER_DUPLICATE_GROUPS;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_REORDER_FILTER")) {
-		return MetricsType::OPTIMIZER_REORDER_FILTER;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_JOIN_FILTER_PUSHDOWN")) {
-		return MetricsType::OPTIMIZER_JOIN_FILTER_PUSHDOWN;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_EXTENSION")) {
-		return MetricsType::OPTIMIZER_EXTENSION;
-	}
-	if (StringUtil::Equals(value, "OPTIMIZER_MATERIALIZED_CTE")) {
-		return MetricsType::OPTIMIZER_MATERIALIZED_CTE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetMetricsTypeValues(), 48, "MetricsType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetNTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(NType::PREFIX), "PREFIX" },
+		{ static_cast(NType::LEAF), "LEAF" },
+		{ static_cast(NType::NODE_4), "NODE_4" },
+		{ static_cast(NType::NODE_16), "NODE_16" },
+		{ static_cast(NType::NODE_48), "NODE_48" },
+		{ static_cast(NType::NODE_256), "NODE_256" },
+		{ static_cast(NType::LEAF_INLINED), "LEAF_INLINED" },
+		{ static_cast(NType::NODE_7_LEAF), "NODE_7_LEAF" },
+		{ static_cast(NType::NODE_15_LEAF), "NODE_15_LEAF" },
+		{ static_cast(NType::NODE_256_LEAF), "NODE_256_LEAF" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(NType value) {
-	switch(value) {
-	case NType::PREFIX:
-		return "PREFIX";
-	case NType::LEAF:
-		return "LEAF";
-	case NType::NODE_4:
-		return "NODE_4";
-	case NType::NODE_16:
-		return "NODE_16";
-	case NType::NODE_48:
-		return "NODE_48";
-	case NType::NODE_256:
-		return "NODE_256";
-	case NType::LEAF_INLINED:
-		return "LEAF_INLINED";
-	case NType::NODE_7_LEAF:
-		return "NODE_7_LEAF";
-	case NType::NODE_15_LEAF:
-		return "NODE_15_LEAF";
-	case NType::NODE_256_LEAF:
-		return "NODE_256_LEAF";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetNTypeValues(), 10, "NType", static_cast(value));
 }
 
 template<>
 NType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "PREFIX")) {
-		return NType::PREFIX;
-	}
-	if (StringUtil::Equals(value, "LEAF")) {
-		return NType::LEAF;
-	}
-	if (StringUtil::Equals(value, "NODE_4")) {
-		return NType::NODE_4;
-	}
-	if (StringUtil::Equals(value, "NODE_16")) {
-		return NType::NODE_16;
-	}
-	if (StringUtil::Equals(value, "NODE_48")) {
-		return NType::NODE_48;
-	}
-	if (StringUtil::Equals(value, "NODE_256")) {
-		return NType::NODE_256;
-	}
-	if (StringUtil::Equals(value, "LEAF_INLINED")) {
-		return NType::LEAF_INLINED;
-	}
-	if (StringUtil::Equals(value, "NODE_7_LEAF")) {
-		return NType::NODE_7_LEAF;
-	}
-	if (StringUtil::Equals(value, "NODE_15_LEAF")) {
-		return NType::NODE_15_LEAF;
-	}
-	if (StringUtil::Equals(value, "NODE_256_LEAF")) {
-		return NType::NODE_256_LEAF;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetNTypeValues(), 10, "NType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetNewLineIdentifierValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(NewLineIdentifier::SINGLE_N), "SINGLE_N" },
+		{ static_cast(NewLineIdentifier::CARRY_ON), "CARRY_ON" },
+		{ static_cast(NewLineIdentifier::NOT_SET), "NOT_SET" },
+		{ static_cast(NewLineIdentifier::SINGLE_R), "SINGLE_R" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(NewLineIdentifier value) {
-	switch(value) {
-	case NewLineIdentifier::SINGLE_N:
-		return "SINGLE_N";
-	case NewLineIdentifier::CARRY_ON:
-		return "CARRY_ON";
-	case NewLineIdentifier::NOT_SET:
-		return "NOT_SET";
-	case NewLineIdentifier::SINGLE_R:
-		return "SINGLE_R";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetNewLineIdentifierValues(), 4, "NewLineIdentifier", static_cast(value));
 }
 
 template<>
 NewLineIdentifier EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SINGLE_N")) {
-		return NewLineIdentifier::SINGLE_N;
-	}
-	if (StringUtil::Equals(value, "CARRY_ON")) {
-		return NewLineIdentifier::CARRY_ON;
-	}
-	if (StringUtil::Equals(value, "NOT_SET")) {
-		return NewLineIdentifier::NOT_SET;
-	}
-	if (StringUtil::Equals(value, "SINGLE_R")) {
-		return NewLineIdentifier::SINGLE_R;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetNewLineIdentifierValues(), 4, "NewLineIdentifier", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOnConflictActionValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OnConflictAction::THROW), "THROW" },
+		{ static_cast(OnConflictAction::NOTHING), "NOTHING" },
+		{ static_cast(OnConflictAction::UPDATE), "UPDATE" },
+		{ static_cast(OnConflictAction::REPLACE), "REPLACE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OnConflictAction value) {
-	switch(value) {
-	case OnConflictAction::THROW:
-		return "THROW";
-	case OnConflictAction::NOTHING:
-		return "NOTHING";
-	case OnConflictAction::UPDATE:
-		return "UPDATE";
-	case OnConflictAction::REPLACE:
-		return "REPLACE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOnConflictActionValues(), 4, "OnConflictAction", static_cast(value));
 }
 
 template<>
 OnConflictAction EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "THROW")) {
-		return OnConflictAction::THROW;
-	}
-	if (StringUtil::Equals(value, "NOTHING")) {
-		return OnConflictAction::NOTHING;
-	}
-	if (StringUtil::Equals(value, "UPDATE")) {
-		return OnConflictAction::UPDATE;
-	}
-	if (StringUtil::Equals(value, "REPLACE")) {
-		return OnConflictAction::REPLACE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOnConflictActionValues(), 4, "OnConflictAction", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOnCreateConflictValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OnCreateConflict::ERROR_ON_CONFLICT), "ERROR_ON_CONFLICT" },
+		{ static_cast(OnCreateConflict::IGNORE_ON_CONFLICT), "IGNORE_ON_CONFLICT" },
+		{ static_cast(OnCreateConflict::REPLACE_ON_CONFLICT), "REPLACE_ON_CONFLICT" },
+		{ static_cast(OnCreateConflict::ALTER_ON_CONFLICT), "ALTER_ON_CONFLICT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OnCreateConflict value) {
-	switch(value) {
-	case OnCreateConflict::ERROR_ON_CONFLICT:
-		return "ERROR_ON_CONFLICT";
-	case OnCreateConflict::IGNORE_ON_CONFLICT:
-		return "IGNORE_ON_CONFLICT";
-	case OnCreateConflict::REPLACE_ON_CONFLICT:
-		return "REPLACE_ON_CONFLICT";
-	case OnCreateConflict::ALTER_ON_CONFLICT:
-		return "ALTER_ON_CONFLICT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOnCreateConflictValues(), 4, "OnCreateConflict", static_cast(value));
 }
 
 template<>
 OnCreateConflict EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ERROR_ON_CONFLICT")) {
-		return OnCreateConflict::ERROR_ON_CONFLICT;
-	}
-	if (StringUtil::Equals(value, "IGNORE_ON_CONFLICT")) {
-		return OnCreateConflict::IGNORE_ON_CONFLICT;
-	}
-	if (StringUtil::Equals(value, "REPLACE_ON_CONFLICT")) {
-		return OnCreateConflict::REPLACE_ON_CONFLICT;
-	}
-	if (StringUtil::Equals(value, "ALTER_ON_CONFLICT")) {
-		return OnCreateConflict::ALTER_ON_CONFLICT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOnCreateConflictValues(), 4, "OnCreateConflict", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOnEntryNotFoundValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OnEntryNotFound::THROW_EXCEPTION), "THROW_EXCEPTION" },
+		{ static_cast(OnEntryNotFound::RETURN_NULL), "RETURN_NULL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OnEntryNotFound value) {
-	switch(value) {
-	case OnEntryNotFound::THROW_EXCEPTION:
-		return "THROW_EXCEPTION";
-	case OnEntryNotFound::RETURN_NULL:
-		return "RETURN_NULL";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOnEntryNotFoundValues(), 2, "OnEntryNotFound", static_cast(value));
 }
 
 template<>
 OnEntryNotFound EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "THROW_EXCEPTION")) {
-		return OnEntryNotFound::THROW_EXCEPTION;
-	}
-	if (StringUtil::Equals(value, "RETURN_NULL")) {
-		return OnEntryNotFound::RETURN_NULL;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOnEntryNotFoundValues(), 2, "OnEntryNotFound", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOperatorFinalizeResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OperatorFinalizeResultType::HAVE_MORE_OUTPUT), "HAVE_MORE_OUTPUT" },
+		{ static_cast(OperatorFinalizeResultType::FINISHED), "FINISHED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OperatorFinalizeResultType value) {
-	switch(value) {
-	case OperatorFinalizeResultType::HAVE_MORE_OUTPUT:
-		return "HAVE_MORE_OUTPUT";
-	case OperatorFinalizeResultType::FINISHED:
-		return "FINISHED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOperatorFinalizeResultTypeValues(), 2, "OperatorFinalizeResultType", static_cast(value));
 }
 
 template<>
 OperatorFinalizeResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "HAVE_MORE_OUTPUT")) {
-		return OperatorFinalizeResultType::HAVE_MORE_OUTPUT;
-	}
-	if (StringUtil::Equals(value, "FINISHED")) {
-		return OperatorFinalizeResultType::FINISHED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOperatorFinalizeResultTypeValues(), 2, "OperatorFinalizeResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOperatorResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OperatorResultType::NEED_MORE_INPUT), "NEED_MORE_INPUT" },
+		{ static_cast(OperatorResultType::HAVE_MORE_OUTPUT), "HAVE_MORE_OUTPUT" },
+		{ static_cast(OperatorResultType::FINISHED), "FINISHED" },
+		{ static_cast(OperatorResultType::BLOCKED), "BLOCKED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OperatorResultType value) {
-	switch(value) {
-	case OperatorResultType::NEED_MORE_INPUT:
-		return "NEED_MORE_INPUT";
-	case OperatorResultType::HAVE_MORE_OUTPUT:
-		return "HAVE_MORE_OUTPUT";
-	case OperatorResultType::FINISHED:
-		return "FINISHED";
-	case OperatorResultType::BLOCKED:
-		return "BLOCKED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOperatorResultTypeValues(), 4, "OperatorResultType", static_cast(value));
 }
 
 template<>
 OperatorResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NEED_MORE_INPUT")) {
-		return OperatorResultType::NEED_MORE_INPUT;
-	}
-	if (StringUtil::Equals(value, "HAVE_MORE_OUTPUT")) {
-		return OperatorResultType::HAVE_MORE_OUTPUT;
-	}
-	if (StringUtil::Equals(value, "FINISHED")) {
-		return OperatorResultType::FINISHED;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return OperatorResultType::BLOCKED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOperatorResultTypeValues(), 4, "OperatorResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOptimizerTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OptimizerType::INVALID), "INVALID" },
+		{ static_cast(OptimizerType::EXPRESSION_REWRITER), "EXPRESSION_REWRITER" },
+		{ static_cast(OptimizerType::FILTER_PULLUP), "FILTER_PULLUP" },
+		{ static_cast(OptimizerType::FILTER_PUSHDOWN), "FILTER_PUSHDOWN" },
+		{ static_cast(OptimizerType::EMPTY_RESULT_PULLUP), "EMPTY_RESULT_PULLUP" },
+		{ static_cast(OptimizerType::CTE_FILTER_PUSHER), "CTE_FILTER_PUSHER" },
+		{ static_cast(OptimizerType::REGEX_RANGE), "REGEX_RANGE" },
+		{ static_cast(OptimizerType::IN_CLAUSE), "IN_CLAUSE" },
+		{ static_cast(OptimizerType::JOIN_ORDER), "JOIN_ORDER" },
+		{ static_cast(OptimizerType::DELIMINATOR), "DELIMINATOR" },
+		{ static_cast(OptimizerType::UNNEST_REWRITER), "UNNEST_REWRITER" },
+		{ static_cast(OptimizerType::UNUSED_COLUMNS), "UNUSED_COLUMNS" },
+		{ static_cast(OptimizerType::STATISTICS_PROPAGATION), "STATISTICS_PROPAGATION" },
+		{ static_cast(OptimizerType::COMMON_SUBEXPRESSIONS), "COMMON_SUBEXPRESSIONS" },
+		{ static_cast(OptimizerType::COMMON_AGGREGATE), "COMMON_AGGREGATE" },
+		{ static_cast(OptimizerType::COLUMN_LIFETIME), "COLUMN_LIFETIME" },
+		{ static_cast(OptimizerType::BUILD_SIDE_PROBE_SIDE), "BUILD_SIDE_PROBE_SIDE" },
+		{ static_cast(OptimizerType::LIMIT_PUSHDOWN), "LIMIT_PUSHDOWN" },
+		{ static_cast(OptimizerType::TOP_N), "TOP_N" },
+		{ static_cast(OptimizerType::COMPRESSED_MATERIALIZATION), "COMPRESSED_MATERIALIZATION" },
+		{ static_cast(OptimizerType::DUPLICATE_GROUPS), "DUPLICATE_GROUPS" },
+		{ static_cast(OptimizerType::REORDER_FILTER), "REORDER_FILTER" },
+		{ static_cast(OptimizerType::SAMPLING_PUSHDOWN), "SAMPLING_PUSHDOWN" },
+		{ static_cast(OptimizerType::JOIN_FILTER_PUSHDOWN), "JOIN_FILTER_PUSHDOWN" },
+		{ static_cast(OptimizerType::EXTENSION), "EXTENSION" },
+		{ static_cast(OptimizerType::MATERIALIZED_CTE), "MATERIALIZED_CTE" },
+		{ static_cast(OptimizerType::SUM_REWRITER), "SUM_REWRITER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OptimizerType value) {
-	switch(value) {
-	case OptimizerType::INVALID:
-		return "INVALID";
-	case OptimizerType::EXPRESSION_REWRITER:
-		return "EXPRESSION_REWRITER";
-	case OptimizerType::FILTER_PULLUP:
-		return "FILTER_PULLUP";
-	case OptimizerType::FILTER_PUSHDOWN:
-		return "FILTER_PUSHDOWN";
-	case OptimizerType::CTE_FILTER_PUSHER:
-		return "CTE_FILTER_PUSHER";
-	case OptimizerType::REGEX_RANGE:
-		return "REGEX_RANGE";
-	case OptimizerType::IN_CLAUSE:
-		return "IN_CLAUSE";
-	case OptimizerType::JOIN_ORDER:
-		return "JOIN_ORDER";
-	case OptimizerType::DELIMINATOR:
-		return "DELIMINATOR";
-	case OptimizerType::UNNEST_REWRITER:
-		return "UNNEST_REWRITER";
-	case OptimizerType::UNUSED_COLUMNS:
-		return "UNUSED_COLUMNS";
-	case OptimizerType::STATISTICS_PROPAGATION:
-		return "STATISTICS_PROPAGATION";
-	case OptimizerType::COMMON_SUBEXPRESSIONS:
-		return "COMMON_SUBEXPRESSIONS";
-	case OptimizerType::COMMON_AGGREGATE:
-		return "COMMON_AGGREGATE";
-	case OptimizerType::COLUMN_LIFETIME:
-		return "COLUMN_LIFETIME";
-	case OptimizerType::BUILD_SIDE_PROBE_SIDE:
-		return "BUILD_SIDE_PROBE_SIDE";
-	case OptimizerType::LIMIT_PUSHDOWN:
-		return "LIMIT_PUSHDOWN";
-	case OptimizerType::TOP_N:
-		return "TOP_N";
-	case OptimizerType::COMPRESSED_MATERIALIZATION:
-		return "COMPRESSED_MATERIALIZATION";
-	case OptimizerType::DUPLICATE_GROUPS:
-		return "DUPLICATE_GROUPS";
-	case OptimizerType::REORDER_FILTER:
-		return "REORDER_FILTER";
-	case OptimizerType::JOIN_FILTER_PUSHDOWN:
-		return "JOIN_FILTER_PUSHDOWN";
-	case OptimizerType::EXTENSION:
-		return "EXTENSION";
-	case OptimizerType::MATERIALIZED_CTE:
-		return "MATERIALIZED_CTE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOptimizerTypeValues(), 27, "OptimizerType", static_cast(value));
 }
 
 template<>
 OptimizerType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return OptimizerType::INVALID;
-	}
-	if (StringUtil::Equals(value, "EXPRESSION_REWRITER")) {
-		return OptimizerType::EXPRESSION_REWRITER;
-	}
-	if (StringUtil::Equals(value, "FILTER_PULLUP")) {
-		return OptimizerType::FILTER_PULLUP;
-	}
-	if (StringUtil::Equals(value, "FILTER_PUSHDOWN")) {
-		return OptimizerType::FILTER_PUSHDOWN;
-	}
-	if (StringUtil::Equals(value, "CTE_FILTER_PUSHER")) {
-		return OptimizerType::CTE_FILTER_PUSHER;
-	}
-	if (StringUtil::Equals(value, "REGEX_RANGE")) {
-		return OptimizerType::REGEX_RANGE;
-	}
-	if (StringUtil::Equals(value, "IN_CLAUSE")) {
-		return OptimizerType::IN_CLAUSE;
-	}
-	if (StringUtil::Equals(value, "JOIN_ORDER")) {
-		return OptimizerType::JOIN_ORDER;
-	}
-	if (StringUtil::Equals(value, "DELIMINATOR")) {
-		return OptimizerType::DELIMINATOR;
-	}
-	if (StringUtil::Equals(value, "UNNEST_REWRITER")) {
-		return OptimizerType::UNNEST_REWRITER;
-	}
-	if (StringUtil::Equals(value, "UNUSED_COLUMNS")) {
-		return OptimizerType::UNUSED_COLUMNS;
-	}
-	if (StringUtil::Equals(value, "STATISTICS_PROPAGATION")) {
-		return OptimizerType::STATISTICS_PROPAGATION;
-	}
-	if (StringUtil::Equals(value, "COMMON_SUBEXPRESSIONS")) {
-		return OptimizerType::COMMON_SUBEXPRESSIONS;
-	}
-	if (StringUtil::Equals(value, "COMMON_AGGREGATE")) {
-		return OptimizerType::COMMON_AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "COLUMN_LIFETIME")) {
-		return OptimizerType::COLUMN_LIFETIME;
-	}
-	if (StringUtil::Equals(value, "BUILD_SIDE_PROBE_SIDE")) {
-		return OptimizerType::BUILD_SIDE_PROBE_SIDE;
-	}
-	if (StringUtil::Equals(value, "LIMIT_PUSHDOWN")) {
-		return OptimizerType::LIMIT_PUSHDOWN;
-	}
-	if (StringUtil::Equals(value, "TOP_N")) {
-		return OptimizerType::TOP_N;
-	}
-	if (StringUtil::Equals(value, "COMPRESSED_MATERIALIZATION")) {
-		return OptimizerType::COMPRESSED_MATERIALIZATION;
-	}
-	if (StringUtil::Equals(value, "DUPLICATE_GROUPS")) {
-		return OptimizerType::DUPLICATE_GROUPS;
-	}
-	if (StringUtil::Equals(value, "REORDER_FILTER")) {
-		return OptimizerType::REORDER_FILTER;
-	}
-	if (StringUtil::Equals(value, "JOIN_FILTER_PUSHDOWN")) {
-		return OptimizerType::JOIN_FILTER_PUSHDOWN;
-	}
-	if (StringUtil::Equals(value, "EXTENSION")) {
-		return OptimizerType::EXTENSION;
-	}
-	if (StringUtil::Equals(value, "MATERIALIZED_CTE")) {
-		return OptimizerType::MATERIALIZED_CTE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOptimizerTypeValues(), 27, "OptimizerType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOrderByNullTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OrderByNullType::INVALID), "INVALID" },
+		{ static_cast(OrderByNullType::ORDER_DEFAULT), "ORDER_DEFAULT" },
+		{ static_cast(OrderByNullType::ORDER_DEFAULT), "DEFAULT" },
+		{ static_cast(OrderByNullType::NULLS_FIRST), "NULLS_FIRST" },
+		{ static_cast(OrderByNullType::NULLS_FIRST), "NULLS FIRST" },
+		{ static_cast(OrderByNullType::NULLS_LAST), "NULLS_LAST" },
+		{ static_cast(OrderByNullType::NULLS_LAST), "NULLS LAST" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OrderByNullType value) {
-	switch(value) {
-	case OrderByNullType::INVALID:
-		return "INVALID";
-	case OrderByNullType::ORDER_DEFAULT:
-		return "ORDER_DEFAULT";
-	case OrderByNullType::NULLS_FIRST:
-		return "NULLS_FIRST";
-	case OrderByNullType::NULLS_LAST:
-		return "NULLS_LAST";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOrderByNullTypeValues(), 7, "OrderByNullType", static_cast(value));
 }
 
 template<>
 OrderByNullType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return OrderByNullType::INVALID;
-	}
-	if (StringUtil::Equals(value, "ORDER_DEFAULT") || StringUtil::Equals(value, "DEFAULT")) {
-		return OrderByNullType::ORDER_DEFAULT;
-	}
-	if (StringUtil::Equals(value, "NULLS_FIRST") || StringUtil::Equals(value, "NULLS FIRST")) {
-		return OrderByNullType::NULLS_FIRST;
-	}
-	if (StringUtil::Equals(value, "NULLS_LAST") || StringUtil::Equals(value, "NULLS LAST")) {
-		return OrderByNullType::NULLS_LAST;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOrderByNullTypeValues(), 7, "OrderByNullType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOrderPreservationTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OrderPreservationType::NO_ORDER), "NO_ORDER" },
+		{ static_cast(OrderPreservationType::INSERTION_ORDER), "INSERTION_ORDER" },
+		{ static_cast(OrderPreservationType::FIXED_ORDER), "FIXED_ORDER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OrderPreservationType value) {
-	switch(value) {
-	case OrderPreservationType::NO_ORDER:
-		return "NO_ORDER";
-	case OrderPreservationType::INSERTION_ORDER:
-		return "INSERTION_ORDER";
-	case OrderPreservationType::FIXED_ORDER:
-		return "FIXED_ORDER";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOrderPreservationTypeValues(), 3, "OrderPreservationType", static_cast(value));
 }
 
 template<>
 OrderPreservationType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_ORDER")) {
-		return OrderPreservationType::NO_ORDER;
-	}
-	if (StringUtil::Equals(value, "INSERTION_ORDER")) {
-		return OrderPreservationType::INSERTION_ORDER;
-	}
-	if (StringUtil::Equals(value, "FIXED_ORDER")) {
-		return OrderPreservationType::FIXED_ORDER;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOrderPreservationTypeValues(), 3, "OrderPreservationType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOrderTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OrderType::INVALID), "INVALID" },
+		{ static_cast(OrderType::ORDER_DEFAULT), "ORDER_DEFAULT" },
+		{ static_cast(OrderType::ORDER_DEFAULT), "DEFAULT" },
+		{ static_cast(OrderType::ASCENDING), "ASCENDING" },
+		{ static_cast(OrderType::ASCENDING), "ASC" },
+		{ static_cast(OrderType::DESCENDING), "DESCENDING" },
+		{ static_cast(OrderType::DESCENDING), "DESC" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OrderType value) {
-	switch(value) {
-	case OrderType::INVALID:
-		return "INVALID";
-	case OrderType::ORDER_DEFAULT:
-		return "ORDER_DEFAULT";
-	case OrderType::ASCENDING:
-		return "ASCENDING";
-	case OrderType::DESCENDING:
-		return "DESCENDING";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOrderTypeValues(), 7, "OrderType", static_cast(value));
 }
 
 template<>
 OrderType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return OrderType::INVALID;
-	}
-	if (StringUtil::Equals(value, "ORDER_DEFAULT") || StringUtil::Equals(value, "DEFAULT")) {
-		return OrderType::ORDER_DEFAULT;
-	}
-	if (StringUtil::Equals(value, "ASCENDING") || StringUtil::Equals(value, "ASC")) {
-		return OrderType::ASCENDING;
-	}
-	if (StringUtil::Equals(value, "DESCENDING") || StringUtil::Equals(value, "DESC")) {
-		return OrderType::DESCENDING;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOrderTypeValues(), 7, "OrderType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetOutputStreamValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(OutputStream::STREAM_STDOUT), "STREAM_STDOUT" },
+		{ static_cast(OutputStream::STREAM_STDERR), "STREAM_STDERR" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(OutputStream value) {
-	switch(value) {
-	case OutputStream::STREAM_STDOUT:
-		return "STREAM_STDOUT";
-	case OutputStream::STREAM_STDERR:
-		return "STREAM_STDERR";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetOutputStreamValues(), 2, "OutputStream", static_cast(value));
 }
 
 template<>
 OutputStream EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "STREAM_STDOUT")) {
-		return OutputStream::STREAM_STDOUT;
-	}
-	if (StringUtil::Equals(value, "STREAM_STDERR")) {
-		return OutputStream::STREAM_STDERR;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetOutputStreamValues(), 2, "OutputStream", value));
+}
+
+const StringUtil::EnumStringLiteral *GetParseInfoTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ParseInfoType::ALTER_INFO), "ALTER_INFO" },
+		{ static_cast(ParseInfoType::ATTACH_INFO), "ATTACH_INFO" },
+		{ static_cast(ParseInfoType::COPY_INFO), "COPY_INFO" },
+		{ static_cast(ParseInfoType::CREATE_INFO), "CREATE_INFO" },
+		{ static_cast(ParseInfoType::CREATE_SECRET_INFO), "CREATE_SECRET_INFO" },
+		{ static_cast(ParseInfoType::DETACH_INFO), "DETACH_INFO" },
+		{ static_cast(ParseInfoType::DROP_INFO), "DROP_INFO" },
+		{ static_cast(ParseInfoType::BOUND_EXPORT_DATA), "BOUND_EXPORT_DATA" },
+		{ static_cast(ParseInfoType::LOAD_INFO), "LOAD_INFO" },
+		{ static_cast(ParseInfoType::PRAGMA_INFO), "PRAGMA_INFO" },
+		{ static_cast(ParseInfoType::SHOW_SELECT_INFO), "SHOW_SELECT_INFO" },
+		{ static_cast(ParseInfoType::TRANSACTION_INFO), "TRANSACTION_INFO" },
+		{ static_cast(ParseInfoType::VACUUM_INFO), "VACUUM_INFO" },
+		{ static_cast(ParseInfoType::COMMENT_ON_INFO), "COMMENT_ON_INFO" },
+		{ static_cast(ParseInfoType::COMMENT_ON_COLUMN_INFO), "COMMENT_ON_COLUMN_INFO" },
+		{ static_cast(ParseInfoType::COPY_DATABASE_INFO), "COPY_DATABASE_INFO" },
+		{ static_cast(ParseInfoType::UPDATE_EXTENSIONS_INFO), "UPDATE_EXTENSIONS_INFO" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ParseInfoType value) {
-	switch(value) {
-	case ParseInfoType::ALTER_INFO:
-		return "ALTER_INFO";
-	case ParseInfoType::ATTACH_INFO:
-		return "ATTACH_INFO";
-	case ParseInfoType::COPY_INFO:
-		return "COPY_INFO";
-	case ParseInfoType::CREATE_INFO:
-		return "CREATE_INFO";
-	case ParseInfoType::CREATE_SECRET_INFO:
-		return "CREATE_SECRET_INFO";
-	case ParseInfoType::DETACH_INFO:
-		return "DETACH_INFO";
-	case ParseInfoType::DROP_INFO:
-		return "DROP_INFO";
-	case ParseInfoType::BOUND_EXPORT_DATA:
-		return "BOUND_EXPORT_DATA";
-	case ParseInfoType::LOAD_INFO:
-		return "LOAD_INFO";
-	case ParseInfoType::PRAGMA_INFO:
-		return "PRAGMA_INFO";
-	case ParseInfoType::SHOW_SELECT_INFO:
-		return "SHOW_SELECT_INFO";
-	case ParseInfoType::TRANSACTION_INFO:
-		return "TRANSACTION_INFO";
-	case ParseInfoType::VACUUM_INFO:
-		return "VACUUM_INFO";
-	case ParseInfoType::COMMENT_ON_INFO:
-		return "COMMENT_ON_INFO";
-	case ParseInfoType::COMMENT_ON_COLUMN_INFO:
-		return "COMMENT_ON_COLUMN_INFO";
-	case ParseInfoType::COPY_DATABASE_INFO:
-		return "COPY_DATABASE_INFO";
-	case ParseInfoType::UPDATE_EXTENSIONS_INFO:
-		return "UPDATE_EXTENSIONS_INFO";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetParseInfoTypeValues(), 17, "ParseInfoType", static_cast(value));
 }
 
 template<>
 ParseInfoType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ALTER_INFO")) {
-		return ParseInfoType::ALTER_INFO;
-	}
-	if (StringUtil::Equals(value, "ATTACH_INFO")) {
-		return ParseInfoType::ATTACH_INFO;
-	}
-	if (StringUtil::Equals(value, "COPY_INFO")) {
-		return ParseInfoType::COPY_INFO;
-	}
-	if (StringUtil::Equals(value, "CREATE_INFO")) {
-		return ParseInfoType::CREATE_INFO;
-	}
-	if (StringUtil::Equals(value, "CREATE_SECRET_INFO")) {
-		return ParseInfoType::CREATE_SECRET_INFO;
-	}
-	if (StringUtil::Equals(value, "DETACH_INFO")) {
-		return ParseInfoType::DETACH_INFO;
-	}
-	if (StringUtil::Equals(value, "DROP_INFO")) {
-		return ParseInfoType::DROP_INFO;
-	}
-	if (StringUtil::Equals(value, "BOUND_EXPORT_DATA")) {
-		return ParseInfoType::BOUND_EXPORT_DATA;
-	}
-	if (StringUtil::Equals(value, "LOAD_INFO")) {
-		return ParseInfoType::LOAD_INFO;
-	}
-	if (StringUtil::Equals(value, "PRAGMA_INFO")) {
-		return ParseInfoType::PRAGMA_INFO;
-	}
-	if (StringUtil::Equals(value, "SHOW_SELECT_INFO")) {
-		return ParseInfoType::SHOW_SELECT_INFO;
-	}
-	if (StringUtil::Equals(value, "TRANSACTION_INFO")) {
-		return ParseInfoType::TRANSACTION_INFO;
-	}
-	if (StringUtil::Equals(value, "VACUUM_INFO")) {
-		return ParseInfoType::VACUUM_INFO;
-	}
-	if (StringUtil::Equals(value, "COMMENT_ON_INFO")) {
-		return ParseInfoType::COMMENT_ON_INFO;
-	}
-	if (StringUtil::Equals(value, "COMMENT_ON_COLUMN_INFO")) {
-		return ParseInfoType::COMMENT_ON_COLUMN_INFO;
-	}
-	if (StringUtil::Equals(value, "COPY_DATABASE_INFO")) {
-		return ParseInfoType::COPY_DATABASE_INFO;
-	}
-	if (StringUtil::Equals(value, "UPDATE_EXTENSIONS_INFO")) {
-		return ParseInfoType::UPDATE_EXTENSIONS_INFO;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetParseInfoTypeValues(), 17, "ParseInfoType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetParserExtensionResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ParserExtensionResultType::PARSE_SUCCESSFUL), "PARSE_SUCCESSFUL" },
+		{ static_cast(ParserExtensionResultType::DISPLAY_ORIGINAL_ERROR), "DISPLAY_ORIGINAL_ERROR" },
+		{ static_cast(ParserExtensionResultType::DISPLAY_EXTENSION_ERROR), "DISPLAY_EXTENSION_ERROR" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ParserExtensionResultType value) {
-	switch(value) {
-	case ParserExtensionResultType::PARSE_SUCCESSFUL:
-		return "PARSE_SUCCESSFUL";
-	case ParserExtensionResultType::DISPLAY_ORIGINAL_ERROR:
-		return "DISPLAY_ORIGINAL_ERROR";
-	case ParserExtensionResultType::DISPLAY_EXTENSION_ERROR:
-		return "DISPLAY_EXTENSION_ERROR";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetParserExtensionResultTypeValues(), 3, "ParserExtensionResultType", static_cast(value));
 }
 
 template<>
 ParserExtensionResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "PARSE_SUCCESSFUL")) {
-		return ParserExtensionResultType::PARSE_SUCCESSFUL;
-	}
-	if (StringUtil::Equals(value, "DISPLAY_ORIGINAL_ERROR")) {
-		return ParserExtensionResultType::DISPLAY_ORIGINAL_ERROR;
-	}
-	if (StringUtil::Equals(value, "DISPLAY_EXTENSION_ERROR")) {
-		return ParserExtensionResultType::DISPLAY_EXTENSION_ERROR;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetParserExtensionResultTypeValues(), 3, "ParserExtensionResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPartitionSortStageValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PartitionSortStage::INIT), "INIT" },
+		{ static_cast(PartitionSortStage::SCAN), "SCAN" },
+		{ static_cast(PartitionSortStage::PREPARE), "PREPARE" },
+		{ static_cast(PartitionSortStage::MERGE), "MERGE" },
+		{ static_cast(PartitionSortStage::SORTED), "SORTED" },
+		{ static_cast(PartitionSortStage::FINISHED), "FINISHED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PartitionSortStage value) {
-	switch(value) {
-	case PartitionSortStage::INIT:
-		return "INIT";
-	case PartitionSortStage::SCAN:
-		return "SCAN";
-	case PartitionSortStage::PREPARE:
-		return "PREPARE";
-	case PartitionSortStage::MERGE:
-		return "MERGE";
-	case PartitionSortStage::SORTED:
-		return "SORTED";
-	case PartitionSortStage::FINISHED:
-		return "FINISHED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPartitionSortStageValues(), 6, "PartitionSortStage", static_cast(value));
 }
 
 template<>
 PartitionSortStage EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INIT")) {
-		return PartitionSortStage::INIT;
-	}
-	if (StringUtil::Equals(value, "SCAN")) {
-		return PartitionSortStage::SCAN;
-	}
-	if (StringUtil::Equals(value, "PREPARE")) {
-		return PartitionSortStage::PREPARE;
-	}
-	if (StringUtil::Equals(value, "MERGE")) {
-		return PartitionSortStage::MERGE;
-	}
-	if (StringUtil::Equals(value, "SORTED")) {
-		return PartitionSortStage::SORTED;
-	}
-	if (StringUtil::Equals(value, "FINISHED")) {
-		return PartitionSortStage::FINISHED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPartitionSortStageValues(), 6, "PartitionSortStage", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPartitionedColumnDataTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PartitionedColumnDataType::INVALID), "INVALID" },
+		{ static_cast(PartitionedColumnDataType::RADIX), "RADIX" },
+		{ static_cast(PartitionedColumnDataType::HIVE), "HIVE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PartitionedColumnDataType value) {
-	switch(value) {
-	case PartitionedColumnDataType::INVALID:
-		return "INVALID";
-	case PartitionedColumnDataType::RADIX:
-		return "RADIX";
-	case PartitionedColumnDataType::HIVE:
-		return "HIVE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPartitionedColumnDataTypeValues(), 3, "PartitionedColumnDataType", static_cast(value));
 }
 
 template<>
 PartitionedColumnDataType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return PartitionedColumnDataType::INVALID;
-	}
-	if (StringUtil::Equals(value, "RADIX")) {
-		return PartitionedColumnDataType::RADIX;
-	}
-	if (StringUtil::Equals(value, "HIVE")) {
-		return PartitionedColumnDataType::HIVE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPartitionedColumnDataTypeValues(), 3, "PartitionedColumnDataType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPartitionedTupleDataTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PartitionedTupleDataType::INVALID), "INVALID" },
+		{ static_cast(PartitionedTupleDataType::RADIX), "RADIX" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PartitionedTupleDataType value) {
-	switch(value) {
-	case PartitionedTupleDataType::INVALID:
-		return "INVALID";
-	case PartitionedTupleDataType::RADIX:
-		return "RADIX";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPartitionedTupleDataTypeValues(), 2, "PartitionedTupleDataType", static_cast(value));
 }
 
 template<>
 PartitionedTupleDataType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return PartitionedTupleDataType::INVALID;
-	}
-	if (StringUtil::Equals(value, "RADIX")) {
-		return PartitionedTupleDataType::RADIX;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPartitionedTupleDataTypeValues(), 2, "PartitionedTupleDataType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPendingExecutionResultValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PendingExecutionResult::RESULT_READY), "RESULT_READY" },
+		{ static_cast(PendingExecutionResult::RESULT_NOT_READY), "RESULT_NOT_READY" },
+		{ static_cast(PendingExecutionResult::EXECUTION_ERROR), "EXECUTION_ERROR" },
+		{ static_cast(PendingExecutionResult::BLOCKED), "BLOCKED" },
+		{ static_cast(PendingExecutionResult::NO_TASKS_AVAILABLE), "NO_TASKS_AVAILABLE" },
+		{ static_cast(PendingExecutionResult::EXECUTION_FINISHED), "EXECUTION_FINISHED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PendingExecutionResult value) {
-	switch(value) {
-	case PendingExecutionResult::RESULT_READY:
-		return "RESULT_READY";
-	case PendingExecutionResult::RESULT_NOT_READY:
-		return "RESULT_NOT_READY";
-	case PendingExecutionResult::EXECUTION_ERROR:
-		return "EXECUTION_ERROR";
-	case PendingExecutionResult::BLOCKED:
-		return "BLOCKED";
-	case PendingExecutionResult::NO_TASKS_AVAILABLE:
-		return "NO_TASKS_AVAILABLE";
-	case PendingExecutionResult::EXECUTION_FINISHED:
-		return "EXECUTION_FINISHED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPendingExecutionResultValues(), 6, "PendingExecutionResult", static_cast(value));
 }
 
 template<>
 PendingExecutionResult EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "RESULT_READY")) {
-		return PendingExecutionResult::RESULT_READY;
-	}
-	if (StringUtil::Equals(value, "RESULT_NOT_READY")) {
-		return PendingExecutionResult::RESULT_NOT_READY;
-	}
-	if (StringUtil::Equals(value, "EXECUTION_ERROR")) {
-		return PendingExecutionResult::EXECUTION_ERROR;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return PendingExecutionResult::BLOCKED;
-	}
-	if (StringUtil::Equals(value, "NO_TASKS_AVAILABLE")) {
-		return PendingExecutionResult::NO_TASKS_AVAILABLE;
-	}
-	if (StringUtil::Equals(value, "EXECUTION_FINISHED")) {
-		return PendingExecutionResult::EXECUTION_FINISHED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPendingExecutionResultValues(), 6, "PendingExecutionResult", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPhysicalOperatorTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PhysicalOperatorType::INVALID), "INVALID" },
+		{ static_cast(PhysicalOperatorType::ORDER_BY), "ORDER_BY" },
+		{ static_cast(PhysicalOperatorType::LIMIT), "LIMIT" },
+		{ static_cast(PhysicalOperatorType::STREAMING_LIMIT), "STREAMING_LIMIT" },
+		{ static_cast(PhysicalOperatorType::LIMIT_PERCENT), "LIMIT_PERCENT" },
+		{ static_cast(PhysicalOperatorType::TOP_N), "TOP_N" },
+		{ static_cast(PhysicalOperatorType::WINDOW), "WINDOW" },
+		{ static_cast(PhysicalOperatorType::UNNEST), "UNNEST" },
+		{ static_cast(PhysicalOperatorType::UNGROUPED_AGGREGATE), "UNGROUPED_AGGREGATE" },
+		{ static_cast(PhysicalOperatorType::HASH_GROUP_BY), "HASH_GROUP_BY" },
+		{ static_cast(PhysicalOperatorType::PERFECT_HASH_GROUP_BY), "PERFECT_HASH_GROUP_BY" },
+		{ static_cast(PhysicalOperatorType::PARTITIONED_AGGREGATE), "PARTITIONED_AGGREGATE" },
+		{ static_cast(PhysicalOperatorType::FILTER), "FILTER" },
+		{ static_cast(PhysicalOperatorType::PROJECTION), "PROJECTION" },
+		{ static_cast(PhysicalOperatorType::COPY_TO_FILE), "COPY_TO_FILE" },
+		{ static_cast(PhysicalOperatorType::BATCH_COPY_TO_FILE), "BATCH_COPY_TO_FILE" },
+		{ static_cast(PhysicalOperatorType::RESERVOIR_SAMPLE), "RESERVOIR_SAMPLE" },
+		{ static_cast(PhysicalOperatorType::STREAMING_SAMPLE), "STREAMING_SAMPLE" },
+		{ static_cast(PhysicalOperatorType::STREAMING_WINDOW), "STREAMING_WINDOW" },
+		{ static_cast(PhysicalOperatorType::PIVOT), "PIVOT" },
+		{ static_cast(PhysicalOperatorType::COPY_DATABASE), "COPY_DATABASE" },
+		{ static_cast(PhysicalOperatorType::TABLE_SCAN), "TABLE_SCAN" },
+		{ static_cast(PhysicalOperatorType::DUMMY_SCAN), "DUMMY_SCAN" },
+		{ static_cast(PhysicalOperatorType::COLUMN_DATA_SCAN), "COLUMN_DATA_SCAN" },
+		{ static_cast(PhysicalOperatorType::CHUNK_SCAN), "CHUNK_SCAN" },
+		{ static_cast(PhysicalOperatorType::RECURSIVE_CTE_SCAN), "RECURSIVE_CTE_SCAN" },
+		{ static_cast(PhysicalOperatorType::CTE_SCAN), "CTE_SCAN" },
+		{ static_cast(PhysicalOperatorType::DELIM_SCAN), "DELIM_SCAN" },
+		{ static_cast(PhysicalOperatorType::EXPRESSION_SCAN), "EXPRESSION_SCAN" },
+		{ static_cast(PhysicalOperatorType::POSITIONAL_SCAN), "POSITIONAL_SCAN" },
+		{ static_cast(PhysicalOperatorType::BLOCKWISE_NL_JOIN), "BLOCKWISE_NL_JOIN" },
+		{ static_cast(PhysicalOperatorType::NESTED_LOOP_JOIN), "NESTED_LOOP_JOIN" },
+		{ static_cast(PhysicalOperatorType::HASH_JOIN), "HASH_JOIN" },
+		{ static_cast(PhysicalOperatorType::CROSS_PRODUCT), "CROSS_PRODUCT" },
+		{ static_cast(PhysicalOperatorType::PIECEWISE_MERGE_JOIN), "PIECEWISE_MERGE_JOIN" },
+		{ static_cast(PhysicalOperatorType::IE_JOIN), "IE_JOIN" },
+		{ static_cast(PhysicalOperatorType::LEFT_DELIM_JOIN), "LEFT_DELIM_JOIN" },
+		{ static_cast(PhysicalOperatorType::RIGHT_DELIM_JOIN), "RIGHT_DELIM_JOIN" },
+		{ static_cast(PhysicalOperatorType::POSITIONAL_JOIN), "POSITIONAL_JOIN" },
+		{ static_cast(PhysicalOperatorType::ASOF_JOIN), "ASOF_JOIN" },
+		{ static_cast(PhysicalOperatorType::UNION), "UNION" },
+		{ static_cast(PhysicalOperatorType::RECURSIVE_CTE), "RECURSIVE_CTE" },
+		{ static_cast(PhysicalOperatorType::CTE), "CTE" },
+		{ static_cast(PhysicalOperatorType::INSERT), "INSERT" },
+		{ static_cast(PhysicalOperatorType::BATCH_INSERT), "BATCH_INSERT" },
+		{ static_cast(PhysicalOperatorType::DELETE_OPERATOR), "DELETE_OPERATOR" },
+		{ static_cast(PhysicalOperatorType::UPDATE), "UPDATE" },
+		{ static_cast(PhysicalOperatorType::CREATE_TABLE), "CREATE_TABLE" },
+		{ static_cast(PhysicalOperatorType::CREATE_TABLE_AS), "CREATE_TABLE_AS" },
+		{ static_cast(PhysicalOperatorType::BATCH_CREATE_TABLE_AS), "BATCH_CREATE_TABLE_AS" },
+		{ static_cast(PhysicalOperatorType::CREATE_INDEX), "CREATE_INDEX" },
+		{ static_cast(PhysicalOperatorType::ALTER), "ALTER" },
+		{ static_cast(PhysicalOperatorType::CREATE_SEQUENCE), "CREATE_SEQUENCE" },
+		{ static_cast(PhysicalOperatorType::CREATE_VIEW), "CREATE_VIEW" },
+		{ static_cast(PhysicalOperatorType::CREATE_SCHEMA), "CREATE_SCHEMA" },
+		{ static_cast(PhysicalOperatorType::CREATE_MACRO), "CREATE_MACRO" },
+		{ static_cast(PhysicalOperatorType::DROP), "DROP" },
+		{ static_cast(PhysicalOperatorType::PRAGMA), "PRAGMA" },
+		{ static_cast(PhysicalOperatorType::TRANSACTION), "TRANSACTION" },
+		{ static_cast(PhysicalOperatorType::CREATE_TYPE), "CREATE_TYPE" },
+		{ static_cast(PhysicalOperatorType::ATTACH), "ATTACH" },
+		{ static_cast(PhysicalOperatorType::DETACH), "DETACH" },
+		{ static_cast(PhysicalOperatorType::EXPLAIN), "EXPLAIN" },
+		{ static_cast(PhysicalOperatorType::EXPLAIN_ANALYZE), "EXPLAIN_ANALYZE" },
+		{ static_cast(PhysicalOperatorType::EMPTY_RESULT), "EMPTY_RESULT" },
+		{ static_cast(PhysicalOperatorType::EXECUTE), "EXECUTE" },
+		{ static_cast(PhysicalOperatorType::PREPARE), "PREPARE" },
+		{ static_cast(PhysicalOperatorType::VACUUM), "VACUUM" },
+		{ static_cast(PhysicalOperatorType::EXPORT), "EXPORT" },
+		{ static_cast(PhysicalOperatorType::SET), "SET" },
+		{ static_cast(PhysicalOperatorType::SET_VARIABLE), "SET_VARIABLE" },
+		{ static_cast(PhysicalOperatorType::LOAD), "LOAD" },
+		{ static_cast(PhysicalOperatorType::INOUT_FUNCTION), "INOUT_FUNCTION" },
+		{ static_cast(PhysicalOperatorType::RESULT_COLLECTOR), "RESULT_COLLECTOR" },
+		{ static_cast(PhysicalOperatorType::RESET), "RESET" },
+		{ static_cast(PhysicalOperatorType::EXTENSION), "EXTENSION" },
+		{ static_cast(PhysicalOperatorType::VERIFY_VECTOR), "VERIFY_VECTOR" },
+		{ static_cast(PhysicalOperatorType::UPDATE_EXTENSIONS), "UPDATE_EXTENSIONS" },
+		{ static_cast(PhysicalOperatorType::CREATE_SECRET), "CREATE_SECRET" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PhysicalOperatorType value) {
-	switch(value) {
-	case PhysicalOperatorType::INVALID:
-		return "INVALID";
-	case PhysicalOperatorType::ORDER_BY:
-		return "ORDER_BY";
-	case PhysicalOperatorType::LIMIT:
-		return "LIMIT";
-	case PhysicalOperatorType::STREAMING_LIMIT:
-		return "STREAMING_LIMIT";
-	case PhysicalOperatorType::LIMIT_PERCENT:
-		return "LIMIT_PERCENT";
-	case PhysicalOperatorType::TOP_N:
-		return "TOP_N";
-	case PhysicalOperatorType::WINDOW:
-		return "WINDOW";
-	case PhysicalOperatorType::UNNEST:
-		return "UNNEST";
-	case PhysicalOperatorType::UNGROUPED_AGGREGATE:
-		return "UNGROUPED_AGGREGATE";
-	case PhysicalOperatorType::HASH_GROUP_BY:
-		return "HASH_GROUP_BY";
-	case PhysicalOperatorType::PERFECT_HASH_GROUP_BY:
-		return "PERFECT_HASH_GROUP_BY";
-	case PhysicalOperatorType::FILTER:
-		return "FILTER";
-	case PhysicalOperatorType::PROJECTION:
-		return "PROJECTION";
-	case PhysicalOperatorType::COPY_TO_FILE:
-		return "COPY_TO_FILE";
-	case PhysicalOperatorType::BATCH_COPY_TO_FILE:
-		return "BATCH_COPY_TO_FILE";
-	case PhysicalOperatorType::RESERVOIR_SAMPLE:
-		return "RESERVOIR_SAMPLE";
-	case PhysicalOperatorType::STREAMING_SAMPLE:
-		return "STREAMING_SAMPLE";
-	case PhysicalOperatorType::STREAMING_WINDOW:
-		return "STREAMING_WINDOW";
-	case PhysicalOperatorType::PIVOT:
-		return "PIVOT";
-	case PhysicalOperatorType::COPY_DATABASE:
-		return "COPY_DATABASE";
-	case PhysicalOperatorType::TABLE_SCAN:
-		return "TABLE_SCAN";
-	case PhysicalOperatorType::DUMMY_SCAN:
-		return "DUMMY_SCAN";
-	case PhysicalOperatorType::COLUMN_DATA_SCAN:
-		return "COLUMN_DATA_SCAN";
-	case PhysicalOperatorType::CHUNK_SCAN:
-		return "CHUNK_SCAN";
-	case PhysicalOperatorType::RECURSIVE_CTE_SCAN:
-		return "RECURSIVE_CTE_SCAN";
-	case PhysicalOperatorType::CTE_SCAN:
-		return "CTE_SCAN";
-	case PhysicalOperatorType::DELIM_SCAN:
-		return "DELIM_SCAN";
-	case PhysicalOperatorType::EXPRESSION_SCAN:
-		return "EXPRESSION_SCAN";
-	case PhysicalOperatorType::POSITIONAL_SCAN:
-		return "POSITIONAL_SCAN";
-	case PhysicalOperatorType::BLOCKWISE_NL_JOIN:
-		return "BLOCKWISE_NL_JOIN";
-	case PhysicalOperatorType::NESTED_LOOP_JOIN:
-		return "NESTED_LOOP_JOIN";
-	case PhysicalOperatorType::HASH_JOIN:
-		return "HASH_JOIN";
-	case PhysicalOperatorType::CROSS_PRODUCT:
-		return "CROSS_PRODUCT";
-	case PhysicalOperatorType::PIECEWISE_MERGE_JOIN:
-		return "PIECEWISE_MERGE_JOIN";
-	case PhysicalOperatorType::IE_JOIN:
-		return "IE_JOIN";
-	case PhysicalOperatorType::LEFT_DELIM_JOIN:
-		return "LEFT_DELIM_JOIN";
-	case PhysicalOperatorType::RIGHT_DELIM_JOIN:
-		return "RIGHT_DELIM_JOIN";
-	case PhysicalOperatorType::POSITIONAL_JOIN:
-		return "POSITIONAL_JOIN";
-	case PhysicalOperatorType::ASOF_JOIN:
-		return "ASOF_JOIN";
-	case PhysicalOperatorType::UNION:
-		return "UNION";
-	case PhysicalOperatorType::RECURSIVE_CTE:
-		return "RECURSIVE_CTE";
-	case PhysicalOperatorType::CTE:
-		return "CTE";
-	case PhysicalOperatorType::INSERT:
-		return "INSERT";
-	case PhysicalOperatorType::BATCH_INSERT:
-		return "BATCH_INSERT";
-	case PhysicalOperatorType::DELETE_OPERATOR:
-		return "DELETE_OPERATOR";
-	case PhysicalOperatorType::UPDATE:
-		return "UPDATE";
-	case PhysicalOperatorType::CREATE_TABLE:
-		return "CREATE_TABLE";
-	case PhysicalOperatorType::CREATE_TABLE_AS:
-		return "CREATE_TABLE_AS";
-	case PhysicalOperatorType::BATCH_CREATE_TABLE_AS:
-		return "BATCH_CREATE_TABLE_AS";
-	case PhysicalOperatorType::CREATE_INDEX:
-		return "CREATE_INDEX";
-	case PhysicalOperatorType::ALTER:
-		return "ALTER";
-	case PhysicalOperatorType::CREATE_SEQUENCE:
-		return "CREATE_SEQUENCE";
-	case PhysicalOperatorType::CREATE_VIEW:
-		return "CREATE_VIEW";
-	case PhysicalOperatorType::CREATE_SCHEMA:
-		return "CREATE_SCHEMA";
-	case PhysicalOperatorType::CREATE_MACRO:
-		return "CREATE_MACRO";
-	case PhysicalOperatorType::DROP:
-		return "DROP";
-	case PhysicalOperatorType::PRAGMA:
-		return "PRAGMA";
-	case PhysicalOperatorType::TRANSACTION:
-		return "TRANSACTION";
-	case PhysicalOperatorType::CREATE_TYPE:
-		return "CREATE_TYPE";
-	case PhysicalOperatorType::ATTACH:
-		return "ATTACH";
-	case PhysicalOperatorType::DETACH:
-		return "DETACH";
-	case PhysicalOperatorType::EXPLAIN:
-		return "EXPLAIN";
-	case PhysicalOperatorType::EXPLAIN_ANALYZE:
-		return "EXPLAIN_ANALYZE";
-	case PhysicalOperatorType::EMPTY_RESULT:
-		return "EMPTY_RESULT";
-	case PhysicalOperatorType::EXECUTE:
-		return "EXECUTE";
-	case PhysicalOperatorType::PREPARE:
-		return "PREPARE";
-	case PhysicalOperatorType::VACUUM:
-		return "VACUUM";
-	case PhysicalOperatorType::EXPORT:
-		return "EXPORT";
-	case PhysicalOperatorType::SET:
-		return "SET";
-	case PhysicalOperatorType::SET_VARIABLE:
-		return "SET_VARIABLE";
-	case PhysicalOperatorType::LOAD:
-		return "LOAD";
-	case PhysicalOperatorType::INOUT_FUNCTION:
-		return "INOUT_FUNCTION";
-	case PhysicalOperatorType::RESULT_COLLECTOR:
-		return "RESULT_COLLECTOR";
-	case PhysicalOperatorType::RESET:
-		return "RESET";
-	case PhysicalOperatorType::EXTENSION:
-		return "EXTENSION";
-	case PhysicalOperatorType::VERIFY_VECTOR:
-		return "VERIFY_VECTOR";
-	case PhysicalOperatorType::UPDATE_EXTENSIONS:
-		return "UPDATE_EXTENSIONS";
-	case PhysicalOperatorType::CREATE_SECRET:
-		return "CREATE_SECRET";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPhysicalOperatorTypeValues(), 79, "PhysicalOperatorType", static_cast(value));
 }
 
 template<>
 PhysicalOperatorType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return PhysicalOperatorType::INVALID;
-	}
-	if (StringUtil::Equals(value, "ORDER_BY")) {
-		return PhysicalOperatorType::ORDER_BY;
-	}
-	if (StringUtil::Equals(value, "LIMIT")) {
-		return PhysicalOperatorType::LIMIT;
-	}
-	if (StringUtil::Equals(value, "STREAMING_LIMIT")) {
-		return PhysicalOperatorType::STREAMING_LIMIT;
-	}
-	if (StringUtil::Equals(value, "LIMIT_PERCENT")) {
-		return PhysicalOperatorType::LIMIT_PERCENT;
-	}
-	if (StringUtil::Equals(value, "TOP_N")) {
-		return PhysicalOperatorType::TOP_N;
-	}
-	if (StringUtil::Equals(value, "WINDOW")) {
-		return PhysicalOperatorType::WINDOW;
-	}
-	if (StringUtil::Equals(value, "UNNEST")) {
-		return PhysicalOperatorType::UNNEST;
-	}
-	if (StringUtil::Equals(value, "UNGROUPED_AGGREGATE")) {
-		return PhysicalOperatorType::UNGROUPED_AGGREGATE;
-	}
-	if (StringUtil::Equals(value, "HASH_GROUP_BY")) {
-		return PhysicalOperatorType::HASH_GROUP_BY;
-	}
-	if (StringUtil::Equals(value, "PERFECT_HASH_GROUP_BY")) {
-		return PhysicalOperatorType::PERFECT_HASH_GROUP_BY;
-	}
-	if (StringUtil::Equals(value, "FILTER")) {
-		return PhysicalOperatorType::FILTER;
-	}
-	if (StringUtil::Equals(value, "PROJECTION")) {
-		return PhysicalOperatorType::PROJECTION;
-	}
-	if (StringUtil::Equals(value, "COPY_TO_FILE")) {
-		return PhysicalOperatorType::COPY_TO_FILE;
-	}
-	if (StringUtil::Equals(value, "BATCH_COPY_TO_FILE")) {
-		return PhysicalOperatorType::BATCH_COPY_TO_FILE;
-	}
-	if (StringUtil::Equals(value, "RESERVOIR_SAMPLE")) {
-		return PhysicalOperatorType::RESERVOIR_SAMPLE;
-	}
-	if (StringUtil::Equals(value, "STREAMING_SAMPLE")) {
-		return PhysicalOperatorType::STREAMING_SAMPLE;
-	}
-	if (StringUtil::Equals(value, "STREAMING_WINDOW")) {
-		return PhysicalOperatorType::STREAMING_WINDOW;
-	}
-	if (StringUtil::Equals(value, "PIVOT")) {
-		return PhysicalOperatorType::PIVOT;
-	}
-	if (StringUtil::Equals(value, "COPY_DATABASE")) {
-		return PhysicalOperatorType::COPY_DATABASE;
-	}
-	if (StringUtil::Equals(value, "TABLE_SCAN")) {
-		return PhysicalOperatorType::TABLE_SCAN;
-	}
-	if (StringUtil::Equals(value, "DUMMY_SCAN")) {
-		return PhysicalOperatorType::DUMMY_SCAN;
-	}
-	if (StringUtil::Equals(value, "COLUMN_DATA_SCAN")) {
-		return PhysicalOperatorType::COLUMN_DATA_SCAN;
-	}
-	if (StringUtil::Equals(value, "CHUNK_SCAN")) {
-		return PhysicalOperatorType::CHUNK_SCAN;
-	}
-	if (StringUtil::Equals(value, "RECURSIVE_CTE_SCAN")) {
-		return PhysicalOperatorType::RECURSIVE_CTE_SCAN;
-	}
-	if (StringUtil::Equals(value, "CTE_SCAN")) {
-		return PhysicalOperatorType::CTE_SCAN;
-	}
-	if (StringUtil::Equals(value, "DELIM_SCAN")) {
-		return PhysicalOperatorType::DELIM_SCAN;
-	}
-	if (StringUtil::Equals(value, "EXPRESSION_SCAN")) {
-		return PhysicalOperatorType::EXPRESSION_SCAN;
-	}
-	if (StringUtil::Equals(value, "POSITIONAL_SCAN")) {
-		return PhysicalOperatorType::POSITIONAL_SCAN;
-	}
-	if (StringUtil::Equals(value, "BLOCKWISE_NL_JOIN")) {
-		return PhysicalOperatorType::BLOCKWISE_NL_JOIN;
-	}
-	if (StringUtil::Equals(value, "NESTED_LOOP_JOIN")) {
-		return PhysicalOperatorType::NESTED_LOOP_JOIN;
-	}
-	if (StringUtil::Equals(value, "HASH_JOIN")) {
-		return PhysicalOperatorType::HASH_JOIN;
-	}
-	if (StringUtil::Equals(value, "CROSS_PRODUCT")) {
-		return PhysicalOperatorType::CROSS_PRODUCT;
-	}
-	if (StringUtil::Equals(value, "PIECEWISE_MERGE_JOIN")) {
-		return PhysicalOperatorType::PIECEWISE_MERGE_JOIN;
-	}
-	if (StringUtil::Equals(value, "IE_JOIN")) {
-		return PhysicalOperatorType::IE_JOIN;
-	}
-	if (StringUtil::Equals(value, "LEFT_DELIM_JOIN")) {
-		return PhysicalOperatorType::LEFT_DELIM_JOIN;
-	}
-	if (StringUtil::Equals(value, "RIGHT_DELIM_JOIN")) {
-		return PhysicalOperatorType::RIGHT_DELIM_JOIN;
-	}
-	if (StringUtil::Equals(value, "POSITIONAL_JOIN")) {
-		return PhysicalOperatorType::POSITIONAL_JOIN;
-	}
-	if (StringUtil::Equals(value, "ASOF_JOIN")) {
-		return PhysicalOperatorType::ASOF_JOIN;
-	}
-	if (StringUtil::Equals(value, "UNION")) {
-		return PhysicalOperatorType::UNION;
-	}
-	if (StringUtil::Equals(value, "RECURSIVE_CTE")) {
-		return PhysicalOperatorType::RECURSIVE_CTE;
-	}
-	if (StringUtil::Equals(value, "CTE")) {
-		return PhysicalOperatorType::CTE;
-	}
-	if (StringUtil::Equals(value, "INSERT")) {
-		return PhysicalOperatorType::INSERT;
-	}
-	if (StringUtil::Equals(value, "BATCH_INSERT")) {
-		return PhysicalOperatorType::BATCH_INSERT;
-	}
-	if (StringUtil::Equals(value, "DELETE_OPERATOR")) {
-		return PhysicalOperatorType::DELETE_OPERATOR;
-	}
-	if (StringUtil::Equals(value, "UPDATE")) {
-		return PhysicalOperatorType::UPDATE;
-	}
-	if (StringUtil::Equals(value, "CREATE_TABLE")) {
-		return PhysicalOperatorType::CREATE_TABLE;
-	}
-	if (StringUtil::Equals(value, "CREATE_TABLE_AS")) {
-		return PhysicalOperatorType::CREATE_TABLE_AS;
-	}
-	if (StringUtil::Equals(value, "BATCH_CREATE_TABLE_AS")) {
-		return PhysicalOperatorType::BATCH_CREATE_TABLE_AS;
-	}
-	if (StringUtil::Equals(value, "CREATE_INDEX")) {
-		return PhysicalOperatorType::CREATE_INDEX;
-	}
-	if (StringUtil::Equals(value, "ALTER")) {
-		return PhysicalOperatorType::ALTER;
-	}
-	if (StringUtil::Equals(value, "CREATE_SEQUENCE")) {
-		return PhysicalOperatorType::CREATE_SEQUENCE;
-	}
-	if (StringUtil::Equals(value, "CREATE_VIEW")) {
-		return PhysicalOperatorType::CREATE_VIEW;
-	}
-	if (StringUtil::Equals(value, "CREATE_SCHEMA")) {
-		return PhysicalOperatorType::CREATE_SCHEMA;
-	}
-	if (StringUtil::Equals(value, "CREATE_MACRO")) {
-		return PhysicalOperatorType::CREATE_MACRO;
-	}
-	if (StringUtil::Equals(value, "DROP")) {
-		return PhysicalOperatorType::DROP;
-	}
-	if (StringUtil::Equals(value, "PRAGMA")) {
-		return PhysicalOperatorType::PRAGMA;
-	}
-	if (StringUtil::Equals(value, "TRANSACTION")) {
-		return PhysicalOperatorType::TRANSACTION;
-	}
-	if (StringUtil::Equals(value, "CREATE_TYPE")) {
-		return PhysicalOperatorType::CREATE_TYPE;
-	}
-	if (StringUtil::Equals(value, "ATTACH")) {
-		return PhysicalOperatorType::ATTACH;
-	}
-	if (StringUtil::Equals(value, "DETACH")) {
-		return PhysicalOperatorType::DETACH;
-	}
-	if (StringUtil::Equals(value, "EXPLAIN")) {
-		return PhysicalOperatorType::EXPLAIN;
-	}
-	if (StringUtil::Equals(value, "EXPLAIN_ANALYZE")) {
-		return PhysicalOperatorType::EXPLAIN_ANALYZE;
-	}
-	if (StringUtil::Equals(value, "EMPTY_RESULT")) {
-		return PhysicalOperatorType::EMPTY_RESULT;
-	}
-	if (StringUtil::Equals(value, "EXECUTE")) {
-		return PhysicalOperatorType::EXECUTE;
-	}
-	if (StringUtil::Equals(value, "PREPARE")) {
-		return PhysicalOperatorType::PREPARE;
-	}
-	if (StringUtil::Equals(value, "VACUUM")) {
-		return PhysicalOperatorType::VACUUM;
-	}
-	if (StringUtil::Equals(value, "EXPORT")) {
-		return PhysicalOperatorType::EXPORT;
-	}
-	if (StringUtil::Equals(value, "SET")) {
-		return PhysicalOperatorType::SET;
-	}
-	if (StringUtil::Equals(value, "SET_VARIABLE")) {
-		return PhysicalOperatorType::SET_VARIABLE;
-	}
-	if (StringUtil::Equals(value, "LOAD")) {
-		return PhysicalOperatorType::LOAD;
-	}
-	if (StringUtil::Equals(value, "INOUT_FUNCTION")) {
-		return PhysicalOperatorType::INOUT_FUNCTION;
-	}
-	if (StringUtil::Equals(value, "RESULT_COLLECTOR")) {
-		return PhysicalOperatorType::RESULT_COLLECTOR;
-	}
-	if (StringUtil::Equals(value, "RESET")) {
-		return PhysicalOperatorType::RESET;
-	}
-	if (StringUtil::Equals(value, "EXTENSION")) {
-		return PhysicalOperatorType::EXTENSION;
-	}
-	if (StringUtil::Equals(value, "VERIFY_VECTOR")) {
-		return PhysicalOperatorType::VERIFY_VECTOR;
-	}
-	if (StringUtil::Equals(value, "UPDATE_EXTENSIONS")) {
-		return PhysicalOperatorType::UPDATE_EXTENSIONS;
-	}
-	if (StringUtil::Equals(value, "CREATE_SECRET")) {
-		return PhysicalOperatorType::CREATE_SECRET;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPhysicalOperatorTypeValues(), 79, "PhysicalOperatorType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPhysicalTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PhysicalType::BOOL), "BOOL" },
+		{ static_cast(PhysicalType::UINT8), "UINT8" },
+		{ static_cast(PhysicalType::INT8), "INT8" },
+		{ static_cast(PhysicalType::UINT16), "UINT16" },
+		{ static_cast(PhysicalType::INT16), "INT16" },
+		{ static_cast(PhysicalType::UINT32), "UINT32" },
+		{ static_cast(PhysicalType::INT32), "INT32" },
+		{ static_cast(PhysicalType::UINT64), "UINT64" },
+		{ static_cast(PhysicalType::INT64), "INT64" },
+		{ static_cast(PhysicalType::FLOAT), "FLOAT" },
+		{ static_cast(PhysicalType::DOUBLE), "DOUBLE" },
+		{ static_cast(PhysicalType::INTERVAL), "INTERVAL" },
+		{ static_cast(PhysicalType::LIST), "LIST" },
+		{ static_cast(PhysicalType::STRUCT), "STRUCT" },
+		{ static_cast(PhysicalType::ARRAY), "ARRAY" },
+		{ static_cast(PhysicalType::VARCHAR), "VARCHAR" },
+		{ static_cast(PhysicalType::UINT128), "UINT128" },
+		{ static_cast(PhysicalType::INT128), "INT128" },
+		{ static_cast(PhysicalType::UNKNOWN), "UNKNOWN" },
+		{ static_cast(PhysicalType::BIT), "BIT" },
+		{ static_cast(PhysicalType::INVALID), "INVALID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PhysicalType value) {
-	switch(value) {
-	case PhysicalType::BOOL:
-		return "BOOL";
-	case PhysicalType::UINT8:
-		return "UINT8";
-	case PhysicalType::INT8:
-		return "INT8";
-	case PhysicalType::UINT16:
-		return "UINT16";
-	case PhysicalType::INT16:
-		return "INT16";
-	case PhysicalType::UINT32:
-		return "UINT32";
-	case PhysicalType::INT32:
-		return "INT32";
-	case PhysicalType::UINT64:
-		return "UINT64";
-	case PhysicalType::INT64:
-		return "INT64";
-	case PhysicalType::FLOAT:
-		return "FLOAT";
-	case PhysicalType::DOUBLE:
-		return "DOUBLE";
-	case PhysicalType::INTERVAL:
-		return "INTERVAL";
-	case PhysicalType::LIST:
-		return "LIST";
-	case PhysicalType::STRUCT:
-		return "STRUCT";
-	case PhysicalType::ARRAY:
-		return "ARRAY";
-	case PhysicalType::VARCHAR:
-		return "VARCHAR";
-	case PhysicalType::UINT128:
-		return "UINT128";
-	case PhysicalType::INT128:
-		return "INT128";
-	case PhysicalType::UNKNOWN:
-		return "UNKNOWN";
-	case PhysicalType::BIT:
-		return "BIT";
-	case PhysicalType::INVALID:
-		return "INVALID";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPhysicalTypeValues(), 21, "PhysicalType", static_cast(value));
 }
 
 template<>
 PhysicalType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "BOOL")) {
-		return PhysicalType::BOOL;
-	}
-	if (StringUtil::Equals(value, "UINT8")) {
-		return PhysicalType::UINT8;
-	}
-	if (StringUtil::Equals(value, "INT8")) {
-		return PhysicalType::INT8;
-	}
-	if (StringUtil::Equals(value, "UINT16")) {
-		return PhysicalType::UINT16;
-	}
-	if (StringUtil::Equals(value, "INT16")) {
-		return PhysicalType::INT16;
-	}
-	if (StringUtil::Equals(value, "UINT32")) {
-		return PhysicalType::UINT32;
-	}
-	if (StringUtil::Equals(value, "INT32")) {
-		return PhysicalType::INT32;
-	}
-	if (StringUtil::Equals(value, "UINT64")) {
-		return PhysicalType::UINT64;
-	}
-	if (StringUtil::Equals(value, "INT64")) {
-		return PhysicalType::INT64;
-	}
-	if (StringUtil::Equals(value, "FLOAT")) {
-		return PhysicalType::FLOAT;
-	}
-	if (StringUtil::Equals(value, "DOUBLE")) {
-		return PhysicalType::DOUBLE;
-	}
-	if (StringUtil::Equals(value, "INTERVAL")) {
-		return PhysicalType::INTERVAL;
-	}
-	if (StringUtil::Equals(value, "LIST")) {
-		return PhysicalType::LIST;
-	}
-	if (StringUtil::Equals(value, "STRUCT")) {
-		return PhysicalType::STRUCT;
-	}
-	if (StringUtil::Equals(value, "ARRAY")) {
-		return PhysicalType::ARRAY;
-	}
-	if (StringUtil::Equals(value, "VARCHAR")) {
-		return PhysicalType::VARCHAR;
-	}
-	if (StringUtil::Equals(value, "UINT128")) {
-		return PhysicalType::UINT128;
-	}
-	if (StringUtil::Equals(value, "INT128")) {
-		return PhysicalType::INT128;
-	}
-	if (StringUtil::Equals(value, "UNKNOWN")) {
-		return PhysicalType::UNKNOWN;
-	}
-	if (StringUtil::Equals(value, "BIT")) {
-		return PhysicalType::BIT;
-	}
-	if (StringUtil::Equals(value, "INVALID")) {
-		return PhysicalType::INVALID;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPhysicalTypeValues(), 21, "PhysicalType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPragmaTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PragmaType::PRAGMA_STATEMENT), "PRAGMA_STATEMENT" },
+		{ static_cast(PragmaType::PRAGMA_CALL), "PRAGMA_CALL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PragmaType value) {
-	switch(value) {
-	case PragmaType::PRAGMA_STATEMENT:
-		return "PRAGMA_STATEMENT";
-	case PragmaType::PRAGMA_CALL:
-		return "PRAGMA_CALL";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPragmaTypeValues(), 2, "PragmaType", static_cast(value));
 }
 
 template<>
 PragmaType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "PRAGMA_STATEMENT")) {
-		return PragmaType::PRAGMA_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "PRAGMA_CALL")) {
-		return PragmaType::PRAGMA_CALL;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPragmaTypeValues(), 2, "PragmaType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPreparedParamTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PreparedParamType::AUTO_INCREMENT), "AUTO_INCREMENT" },
+		{ static_cast(PreparedParamType::POSITIONAL), "POSITIONAL" },
+		{ static_cast(PreparedParamType::NAMED), "NAMED" },
+		{ static_cast(PreparedParamType::INVALID), "INVALID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PreparedParamType value) {
-	switch(value) {
-	case PreparedParamType::AUTO_INCREMENT:
-		return "AUTO_INCREMENT";
-	case PreparedParamType::POSITIONAL:
-		return "POSITIONAL";
-	case PreparedParamType::NAMED:
-		return "NAMED";
-	case PreparedParamType::INVALID:
-		return "INVALID";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPreparedParamTypeValues(), 4, "PreparedParamType", static_cast(value));
 }
 
 template<>
 PreparedParamType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "AUTO_INCREMENT")) {
-		return PreparedParamType::AUTO_INCREMENT;
-	}
-	if (StringUtil::Equals(value, "POSITIONAL")) {
-		return PreparedParamType::POSITIONAL;
-	}
-	if (StringUtil::Equals(value, "NAMED")) {
-		return PreparedParamType::NAMED;
-	}
-	if (StringUtil::Equals(value, "INVALID")) {
-		return PreparedParamType::INVALID;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPreparedParamTypeValues(), 4, "PreparedParamType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetPreparedStatementModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(PreparedStatementMode::PREPARE_ONLY), "PREPARE_ONLY" },
+		{ static_cast(PreparedStatementMode::PREPARE_AND_EXECUTE), "PREPARE_AND_EXECUTE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(PreparedStatementMode value) {
-	switch(value) {
-	case PreparedStatementMode::PREPARE_ONLY:
-		return "PREPARE_ONLY";
-	case PreparedStatementMode::PREPARE_AND_EXECUTE:
-		return "PREPARE_AND_EXECUTE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetPreparedStatementModeValues(), 2, "PreparedStatementMode", static_cast(value));
 }
 
 template<>
 PreparedStatementMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "PREPARE_ONLY")) {
-		return PreparedStatementMode::PREPARE_ONLY;
-	}
-	if (StringUtil::Equals(value, "PREPARE_AND_EXECUTE")) {
-		return PreparedStatementMode::PREPARE_AND_EXECUTE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetPreparedStatementModeValues(), 2, "PreparedStatementMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetProfilerPrintFormatValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ProfilerPrintFormat::QUERY_TREE), "QUERY_TREE" },
+		{ static_cast(ProfilerPrintFormat::JSON), "JSON" },
+		{ static_cast(ProfilerPrintFormat::QUERY_TREE_OPTIMIZER), "QUERY_TREE_OPTIMIZER" },
+		{ static_cast(ProfilerPrintFormat::NO_OUTPUT), "NO_OUTPUT" },
+		{ static_cast(ProfilerPrintFormat::HTML), "HTML" },
+		{ static_cast(ProfilerPrintFormat::GRAPHVIZ), "GRAPHVIZ" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ProfilerPrintFormat value) {
-	switch(value) {
-	case ProfilerPrintFormat::QUERY_TREE:
-		return "QUERY_TREE";
-	case ProfilerPrintFormat::JSON:
-		return "JSON";
-	case ProfilerPrintFormat::QUERY_TREE_OPTIMIZER:
-		return "QUERY_TREE_OPTIMIZER";
-	case ProfilerPrintFormat::NO_OUTPUT:
-		return "NO_OUTPUT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetProfilerPrintFormatValues(), 6, "ProfilerPrintFormat", static_cast(value));
 }
 
 template<>
 ProfilerPrintFormat EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "QUERY_TREE")) {
-		return ProfilerPrintFormat::QUERY_TREE;
-	}
-	if (StringUtil::Equals(value, "JSON")) {
-		return ProfilerPrintFormat::JSON;
-	}
-	if (StringUtil::Equals(value, "QUERY_TREE_OPTIMIZER")) {
-		return ProfilerPrintFormat::QUERY_TREE_OPTIMIZER;
-	}
-	if (StringUtil::Equals(value, "NO_OUTPUT")) {
-		return ProfilerPrintFormat::NO_OUTPUT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetProfilerPrintFormatValues(), 6, "ProfilerPrintFormat", value));
+}
+
+const StringUtil::EnumStringLiteral *GetQuantileSerializationTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(QuantileSerializationType::NON_DECIMAL), "NON_DECIMAL" },
+		{ static_cast(QuantileSerializationType::DECIMAL_DISCRETE), "DECIMAL_DISCRETE" },
+		{ static_cast(QuantileSerializationType::DECIMAL_DISCRETE_LIST), "DECIMAL_DISCRETE_LIST" },
+		{ static_cast(QuantileSerializationType::DECIMAL_CONTINUOUS), "DECIMAL_CONTINUOUS" },
+		{ static_cast(QuantileSerializationType::DECIMAL_CONTINUOUS_LIST), "DECIMAL_CONTINUOUS_LIST" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(QuantileSerializationType value) {
-	switch(value) {
-	case QuantileSerializationType::NON_DECIMAL:
-		return "NON_DECIMAL";
-	case QuantileSerializationType::DECIMAL_DISCRETE:
-		return "DECIMAL_DISCRETE";
-	case QuantileSerializationType::DECIMAL_DISCRETE_LIST:
-		return "DECIMAL_DISCRETE_LIST";
-	case QuantileSerializationType::DECIMAL_CONTINUOUS:
-		return "DECIMAL_CONTINUOUS";
-	case QuantileSerializationType::DECIMAL_CONTINUOUS_LIST:
-		return "DECIMAL_CONTINUOUS_LIST";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetQuantileSerializationTypeValues(), 5, "QuantileSerializationType", static_cast(value));
 }
 
 template<>
 QuantileSerializationType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NON_DECIMAL")) {
-		return QuantileSerializationType::NON_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "DECIMAL_DISCRETE")) {
-		return QuantileSerializationType::DECIMAL_DISCRETE;
-	}
-	if (StringUtil::Equals(value, "DECIMAL_DISCRETE_LIST")) {
-		return QuantileSerializationType::DECIMAL_DISCRETE_LIST;
-	}
-	if (StringUtil::Equals(value, "DECIMAL_CONTINUOUS")) {
-		return QuantileSerializationType::DECIMAL_CONTINUOUS;
-	}
-	if (StringUtil::Equals(value, "DECIMAL_CONTINUOUS_LIST")) {
-		return QuantileSerializationType::DECIMAL_CONTINUOUS_LIST;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetQuantileSerializationTypeValues(), 5, "QuantileSerializationType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetQueryNodeTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(QueryNodeType::SELECT_NODE), "SELECT_NODE" },
+		{ static_cast(QueryNodeType::SET_OPERATION_NODE), "SET_OPERATION_NODE" },
+		{ static_cast(QueryNodeType::BOUND_SUBQUERY_NODE), "BOUND_SUBQUERY_NODE" },
+		{ static_cast(QueryNodeType::RECURSIVE_CTE_NODE), "RECURSIVE_CTE_NODE" },
+		{ static_cast(QueryNodeType::CTE_NODE), "CTE_NODE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(QueryNodeType value) {
-	switch(value) {
-	case QueryNodeType::SELECT_NODE:
-		return "SELECT_NODE";
-	case QueryNodeType::SET_OPERATION_NODE:
-		return "SET_OPERATION_NODE";
-	case QueryNodeType::BOUND_SUBQUERY_NODE:
-		return "BOUND_SUBQUERY_NODE";
-	case QueryNodeType::RECURSIVE_CTE_NODE:
-		return "RECURSIVE_CTE_NODE";
-	case QueryNodeType::CTE_NODE:
-		return "CTE_NODE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetQueryNodeTypeValues(), 5, "QueryNodeType", static_cast(value));
 }
 
 template<>
 QueryNodeType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SELECT_NODE")) {
-		return QueryNodeType::SELECT_NODE;
-	}
-	if (StringUtil::Equals(value, "SET_OPERATION_NODE")) {
-		return QueryNodeType::SET_OPERATION_NODE;
-	}
-	if (StringUtil::Equals(value, "BOUND_SUBQUERY_NODE")) {
-		return QueryNodeType::BOUND_SUBQUERY_NODE;
-	}
-	if (StringUtil::Equals(value, "RECURSIVE_CTE_NODE")) {
-		return QueryNodeType::RECURSIVE_CTE_NODE;
-	}
-	if (StringUtil::Equals(value, "CTE_NODE")) {
-		return QueryNodeType::CTE_NODE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetQueryNodeTypeValues(), 5, "QueryNodeType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetQueryResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(QueryResultType::MATERIALIZED_RESULT), "MATERIALIZED_RESULT" },
+		{ static_cast(QueryResultType::STREAM_RESULT), "STREAM_RESULT" },
+		{ static_cast(QueryResultType::PENDING_RESULT), "PENDING_RESULT" },
+		{ static_cast(QueryResultType::ARROW_RESULT), "ARROW_RESULT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(QueryResultType value) {
-	switch(value) {
-	case QueryResultType::MATERIALIZED_RESULT:
-		return "MATERIALIZED_RESULT";
-	case QueryResultType::STREAM_RESULT:
-		return "STREAM_RESULT";
-	case QueryResultType::PENDING_RESULT:
-		return "PENDING_RESULT";
-	case QueryResultType::ARROW_RESULT:
-		return "ARROW_RESULT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetQueryResultTypeValues(), 4, "QueryResultType", static_cast(value));
 }
 
 template<>
 QueryResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "MATERIALIZED_RESULT")) {
-		return QueryResultType::MATERIALIZED_RESULT;
-	}
-	if (StringUtil::Equals(value, "STREAM_RESULT")) {
-		return QueryResultType::STREAM_RESULT;
-	}
-	if (StringUtil::Equals(value, "PENDING_RESULT")) {
-		return QueryResultType::PENDING_RESULT;
-	}
-	if (StringUtil::Equals(value, "ARROW_RESULT")) {
-		return QueryResultType::ARROW_RESULT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetQueryResultTypeValues(), 4, "QueryResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetQuoteRuleValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(QuoteRule::QUOTES_RFC), "QUOTES_RFC" },
+		{ static_cast(QuoteRule::QUOTES_OTHER), "QUOTES_OTHER" },
+		{ static_cast(QuoteRule::NO_QUOTES), "NO_QUOTES" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(QuoteRule value) {
-	switch(value) {
-	case QuoteRule::QUOTES_RFC:
-		return "QUOTES_RFC";
-	case QuoteRule::QUOTES_OTHER:
-		return "QUOTES_OTHER";
-	case QuoteRule::NO_QUOTES:
-		return "NO_QUOTES";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetQuoteRuleValues(), 3, "QuoteRule", static_cast(value));
 }
 
 template<>
 QuoteRule EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "QUOTES_RFC")) {
-		return QuoteRule::QUOTES_RFC;
-	}
-	if (StringUtil::Equals(value, "QUOTES_OTHER")) {
-		return QuoteRule::QUOTES_OTHER;
-	}
-	if (StringUtil::Equals(value, "NO_QUOTES")) {
-		return QuoteRule::NO_QUOTES;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetQuoteRuleValues(), 3, "QuoteRule", value));
+}
+
+const StringUtil::EnumStringLiteral *GetRelationTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(RelationType::INVALID_RELATION), "INVALID_RELATION" },
+		{ static_cast(RelationType::TABLE_RELATION), "TABLE_RELATION" },
+		{ static_cast(RelationType::PROJECTION_RELATION), "PROJECTION_RELATION" },
+		{ static_cast(RelationType::FILTER_RELATION), "FILTER_RELATION" },
+		{ static_cast(RelationType::EXPLAIN_RELATION), "EXPLAIN_RELATION" },
+		{ static_cast(RelationType::CROSS_PRODUCT_RELATION), "CROSS_PRODUCT_RELATION" },
+		{ static_cast(RelationType::JOIN_RELATION), "JOIN_RELATION" },
+		{ static_cast(RelationType::AGGREGATE_RELATION), "AGGREGATE_RELATION" },
+		{ static_cast(RelationType::SET_OPERATION_RELATION), "SET_OPERATION_RELATION" },
+		{ static_cast(RelationType::DISTINCT_RELATION), "DISTINCT_RELATION" },
+		{ static_cast(RelationType::LIMIT_RELATION), "LIMIT_RELATION" },
+		{ static_cast(RelationType::ORDER_RELATION), "ORDER_RELATION" },
+		{ static_cast(RelationType::CREATE_VIEW_RELATION), "CREATE_VIEW_RELATION" },
+		{ static_cast(RelationType::CREATE_TABLE_RELATION), "CREATE_TABLE_RELATION" },
+		{ static_cast(RelationType::INSERT_RELATION), "INSERT_RELATION" },
+		{ static_cast(RelationType::VALUE_LIST_RELATION), "VALUE_LIST_RELATION" },
+		{ static_cast(RelationType::MATERIALIZED_RELATION), "MATERIALIZED_RELATION" },
+		{ static_cast(RelationType::DELETE_RELATION), "DELETE_RELATION" },
+		{ static_cast(RelationType::UPDATE_RELATION), "UPDATE_RELATION" },
+		{ static_cast(RelationType::WRITE_CSV_RELATION), "WRITE_CSV_RELATION" },
+		{ static_cast(RelationType::WRITE_PARQUET_RELATION), "WRITE_PARQUET_RELATION" },
+		{ static_cast(RelationType::READ_CSV_RELATION), "READ_CSV_RELATION" },
+		{ static_cast(RelationType::SUBQUERY_RELATION), "SUBQUERY_RELATION" },
+		{ static_cast(RelationType::TABLE_FUNCTION_RELATION), "TABLE_FUNCTION_RELATION" },
+		{ static_cast(RelationType::VIEW_RELATION), "VIEW_RELATION" },
+		{ static_cast(RelationType::QUERY_RELATION), "QUERY_RELATION" },
+		{ static_cast(RelationType::DELIM_JOIN_RELATION), "DELIM_JOIN_RELATION" },
+		{ static_cast(RelationType::DELIM_GET_RELATION), "DELIM_GET_RELATION" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(RelationType value) {
-	switch(value) {
-	case RelationType::INVALID_RELATION:
-		return "INVALID_RELATION";
-	case RelationType::TABLE_RELATION:
-		return "TABLE_RELATION";
-	case RelationType::PROJECTION_RELATION:
-		return "PROJECTION_RELATION";
-	case RelationType::FILTER_RELATION:
-		return "FILTER_RELATION";
-	case RelationType::EXPLAIN_RELATION:
-		return "EXPLAIN_RELATION";
-	case RelationType::CROSS_PRODUCT_RELATION:
-		return "CROSS_PRODUCT_RELATION";
-	case RelationType::JOIN_RELATION:
-		return "JOIN_RELATION";
-	case RelationType::AGGREGATE_RELATION:
-		return "AGGREGATE_RELATION";
-	case RelationType::SET_OPERATION_RELATION:
-		return "SET_OPERATION_RELATION";
-	case RelationType::DISTINCT_RELATION:
-		return "DISTINCT_RELATION";
-	case RelationType::LIMIT_RELATION:
-		return "LIMIT_RELATION";
-	case RelationType::ORDER_RELATION:
-		return "ORDER_RELATION";
-	case RelationType::CREATE_VIEW_RELATION:
-		return "CREATE_VIEW_RELATION";
-	case RelationType::CREATE_TABLE_RELATION:
-		return "CREATE_TABLE_RELATION";
-	case RelationType::INSERT_RELATION:
-		return "INSERT_RELATION";
-	case RelationType::VALUE_LIST_RELATION:
-		return "VALUE_LIST_RELATION";
-	case RelationType::MATERIALIZED_RELATION:
-		return "MATERIALIZED_RELATION";
-	case RelationType::DELETE_RELATION:
-		return "DELETE_RELATION";
-	case RelationType::UPDATE_RELATION:
-		return "UPDATE_RELATION";
-	case RelationType::WRITE_CSV_RELATION:
-		return "WRITE_CSV_RELATION";
-	case RelationType::WRITE_PARQUET_RELATION:
-		return "WRITE_PARQUET_RELATION";
-	case RelationType::READ_CSV_RELATION:
-		return "READ_CSV_RELATION";
-	case RelationType::SUBQUERY_RELATION:
-		return "SUBQUERY_RELATION";
-	case RelationType::TABLE_FUNCTION_RELATION:
-		return "TABLE_FUNCTION_RELATION";
-	case RelationType::VIEW_RELATION:
-		return "VIEW_RELATION";
-	case RelationType::QUERY_RELATION:
-		return "QUERY_RELATION";
-	case RelationType::DELIM_JOIN_RELATION:
-		return "DELIM_JOIN_RELATION";
-	case RelationType::DELIM_GET_RELATION:
-		return "DELIM_GET_RELATION";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetRelationTypeValues(), 28, "RelationType", static_cast(value));
 }
 
 template<>
 RelationType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID_RELATION")) {
-		return RelationType::INVALID_RELATION;
-	}
-	if (StringUtil::Equals(value, "TABLE_RELATION")) {
-		return RelationType::TABLE_RELATION;
-	}
-	if (StringUtil::Equals(value, "PROJECTION_RELATION")) {
-		return RelationType::PROJECTION_RELATION;
-	}
-	if (StringUtil::Equals(value, "FILTER_RELATION")) {
-		return RelationType::FILTER_RELATION;
-	}
-	if (StringUtil::Equals(value, "EXPLAIN_RELATION")) {
-		return RelationType::EXPLAIN_RELATION;
-	}
-	if (StringUtil::Equals(value, "CROSS_PRODUCT_RELATION")) {
-		return RelationType::CROSS_PRODUCT_RELATION;
-	}
-	if (StringUtil::Equals(value, "JOIN_RELATION")) {
-		return RelationType::JOIN_RELATION;
-	}
-	if (StringUtil::Equals(value, "AGGREGATE_RELATION")) {
-		return RelationType::AGGREGATE_RELATION;
-	}
-	if (StringUtil::Equals(value, "SET_OPERATION_RELATION")) {
-		return RelationType::SET_OPERATION_RELATION;
-	}
-	if (StringUtil::Equals(value, "DISTINCT_RELATION")) {
-		return RelationType::DISTINCT_RELATION;
-	}
-	if (StringUtil::Equals(value, "LIMIT_RELATION")) {
-		return RelationType::LIMIT_RELATION;
-	}
-	if (StringUtil::Equals(value, "ORDER_RELATION")) {
-		return RelationType::ORDER_RELATION;
-	}
-	if (StringUtil::Equals(value, "CREATE_VIEW_RELATION")) {
-		return RelationType::CREATE_VIEW_RELATION;
-	}
-	if (StringUtil::Equals(value, "CREATE_TABLE_RELATION")) {
-		return RelationType::CREATE_TABLE_RELATION;
-	}
-	if (StringUtil::Equals(value, "INSERT_RELATION")) {
-		return RelationType::INSERT_RELATION;
-	}
-	if (StringUtil::Equals(value, "VALUE_LIST_RELATION")) {
-		return RelationType::VALUE_LIST_RELATION;
-	}
-	if (StringUtil::Equals(value, "MATERIALIZED_RELATION")) {
-		return RelationType::MATERIALIZED_RELATION;
-	}
-	if (StringUtil::Equals(value, "DELETE_RELATION")) {
-		return RelationType::DELETE_RELATION;
-	}
-	if (StringUtil::Equals(value, "UPDATE_RELATION")) {
-		return RelationType::UPDATE_RELATION;
-	}
-	if (StringUtil::Equals(value, "WRITE_CSV_RELATION")) {
-		return RelationType::WRITE_CSV_RELATION;
-	}
-	if (StringUtil::Equals(value, "WRITE_PARQUET_RELATION")) {
-		return RelationType::WRITE_PARQUET_RELATION;
-	}
-	if (StringUtil::Equals(value, "READ_CSV_RELATION")) {
-		return RelationType::READ_CSV_RELATION;
-	}
-	if (StringUtil::Equals(value, "SUBQUERY_RELATION")) {
-		return RelationType::SUBQUERY_RELATION;
-	}
-	if (StringUtil::Equals(value, "TABLE_FUNCTION_RELATION")) {
-		return RelationType::TABLE_FUNCTION_RELATION;
-	}
-	if (StringUtil::Equals(value, "VIEW_RELATION")) {
-		return RelationType::VIEW_RELATION;
-	}
-	if (StringUtil::Equals(value, "QUERY_RELATION")) {
-		return RelationType::QUERY_RELATION;
-	}
-	if (StringUtil::Equals(value, "DELIM_JOIN_RELATION")) {
-		return RelationType::DELIM_JOIN_RELATION;
-	}
-	if (StringUtil::Equals(value, "DELIM_GET_RELATION")) {
-		return RelationType::DELIM_GET_RELATION;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetRelationTypeValues(), 28, "RelationType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetRenderModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(RenderMode::ROWS), "ROWS" },
+		{ static_cast(RenderMode::COLUMNS), "COLUMNS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(RenderMode value) {
-	switch(value) {
-	case RenderMode::ROWS:
-		return "ROWS";
-	case RenderMode::COLUMNS:
-		return "COLUMNS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetRenderModeValues(), 2, "RenderMode", static_cast(value));
 }
 
 template<>
 RenderMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ROWS")) {
-		return RenderMode::ROWS;
-	}
-	if (StringUtil::Equals(value, "COLUMNS")) {
-		return RenderMode::COLUMNS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetRenderModeValues(), 2, "RenderMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetResultModifierTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ResultModifierType::LIMIT_MODIFIER), "LIMIT_MODIFIER" },
+		{ static_cast(ResultModifierType::ORDER_MODIFIER), "ORDER_MODIFIER" },
+		{ static_cast(ResultModifierType::DISTINCT_MODIFIER), "DISTINCT_MODIFIER" },
+		{ static_cast(ResultModifierType::LIMIT_PERCENT_MODIFIER), "LIMIT_PERCENT_MODIFIER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ResultModifierType value) {
-	switch(value) {
-	case ResultModifierType::LIMIT_MODIFIER:
-		return "LIMIT_MODIFIER";
-	case ResultModifierType::ORDER_MODIFIER:
-		return "ORDER_MODIFIER";
-	case ResultModifierType::DISTINCT_MODIFIER:
-		return "DISTINCT_MODIFIER";
-	case ResultModifierType::LIMIT_PERCENT_MODIFIER:
-		return "LIMIT_PERCENT_MODIFIER";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetResultModifierTypeValues(), 4, "ResultModifierType", static_cast(value));
 }
 
 template<>
 ResultModifierType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "LIMIT_MODIFIER")) {
-		return ResultModifierType::LIMIT_MODIFIER;
-	}
-	if (StringUtil::Equals(value, "ORDER_MODIFIER")) {
-		return ResultModifierType::ORDER_MODIFIER;
-	}
-	if (StringUtil::Equals(value, "DISTINCT_MODIFIER")) {
-		return ResultModifierType::DISTINCT_MODIFIER;
-	}
-	if (StringUtil::Equals(value, "LIMIT_PERCENT_MODIFIER")) {
-		return ResultModifierType::LIMIT_PERCENT_MODIFIER;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetResultModifierTypeValues(), 4, "ResultModifierType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSampleMethodValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SampleMethod::SYSTEM_SAMPLE), "System" },
+		{ static_cast(SampleMethod::BERNOULLI_SAMPLE), "Bernoulli" },
+		{ static_cast(SampleMethod::RESERVOIR_SAMPLE), "Reservoir" },
+		{ static_cast(SampleMethod::INVALID), "INVALID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SampleMethod value) {
-	switch(value) {
-	case SampleMethod::SYSTEM_SAMPLE:
-		return "System";
-	case SampleMethod::BERNOULLI_SAMPLE:
-		return "Bernoulli";
-	case SampleMethod::RESERVOIR_SAMPLE:
-		return "Reservoir";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSampleMethodValues(), 4, "SampleMethod", static_cast(value));
 }
 
 template<>
 SampleMethod EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "System")) {
-		return SampleMethod::SYSTEM_SAMPLE;
-	}
-	if (StringUtil::Equals(value, "Bernoulli")) {
-		return SampleMethod::BERNOULLI_SAMPLE;
-	}
-	if (StringUtil::Equals(value, "Reservoir")) {
-		return SampleMethod::RESERVOIR_SAMPLE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSampleMethodValues(), 4, "SampleMethod", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSampleTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SampleType::BLOCKING_SAMPLE), "BLOCKING_SAMPLE" },
+		{ static_cast(SampleType::RESERVOIR_SAMPLE), "RESERVOIR_SAMPLE" },
+		{ static_cast(SampleType::RESERVOIR_PERCENTAGE_SAMPLE), "RESERVOIR_PERCENTAGE_SAMPLE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SampleType value) {
-	switch(value) {
-	case SampleType::BLOCKING_SAMPLE:
-		return "BLOCKING_SAMPLE";
-	case SampleType::RESERVOIR_SAMPLE:
-		return "RESERVOIR_SAMPLE";
-	case SampleType::RESERVOIR_PERCENTAGE_SAMPLE:
-		return "RESERVOIR_PERCENTAGE_SAMPLE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSampleTypeValues(), 3, "SampleType", static_cast(value));
 }
 
 template<>
 SampleType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "BLOCKING_SAMPLE")) {
-		return SampleType::BLOCKING_SAMPLE;
-	}
-	if (StringUtil::Equals(value, "RESERVOIR_SAMPLE")) {
-		return SampleType::RESERVOIR_SAMPLE;
-	}
-	if (StringUtil::Equals(value, "RESERVOIR_PERCENTAGE_SAMPLE")) {
-		return SampleType::RESERVOIR_PERCENTAGE_SAMPLE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSampleTypeValues(), 3, "SampleType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetScanTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ScanType::TABLE), "TABLE" },
+		{ static_cast(ScanType::PARQUET), "PARQUET" },
+		{ static_cast(ScanType::EXTERNAL), "EXTERNAL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ScanType value) {
-	switch(value) {
-	case ScanType::TABLE:
-		return "TABLE";
-	case ScanType::PARQUET:
-		return "PARQUET";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetScanTypeValues(), 3, "ScanType", static_cast(value));
 }
 
 template<>
 ScanType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "TABLE")) {
-		return ScanType::TABLE;
-	}
-	if (StringUtil::Equals(value, "PARQUET")) {
-		return ScanType::PARQUET;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetScanTypeValues(), 3, "ScanType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSecretDisplayTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SecretDisplayType::REDACTED), "REDACTED" },
+		{ static_cast(SecretDisplayType::UNREDACTED), "UNREDACTED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SecretDisplayType value) {
-	switch(value) {
-	case SecretDisplayType::REDACTED:
-		return "REDACTED";
-	case SecretDisplayType::UNREDACTED:
-		return "UNREDACTED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSecretDisplayTypeValues(), 2, "SecretDisplayType", static_cast(value));
 }
 
 template<>
 SecretDisplayType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "REDACTED")) {
-		return SecretDisplayType::REDACTED;
-	}
-	if (StringUtil::Equals(value, "UNREDACTED")) {
-		return SecretDisplayType::UNREDACTED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSecretDisplayTypeValues(), 2, "SecretDisplayType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSecretPersistTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SecretPersistType::DEFAULT), "DEFAULT" },
+		{ static_cast(SecretPersistType::TEMPORARY), "TEMPORARY" },
+		{ static_cast(SecretPersistType::PERSISTENT), "PERSISTENT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SecretPersistType value) {
-	switch(value) {
-	case SecretPersistType::DEFAULT:
-		return "DEFAULT";
-	case SecretPersistType::TEMPORARY:
-		return "TEMPORARY";
-	case SecretPersistType::PERSISTENT:
-		return "PERSISTENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSecretPersistTypeValues(), 3, "SecretPersistType", static_cast(value));
 }
 
 template<>
 SecretPersistType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "DEFAULT")) {
-		return SecretPersistType::DEFAULT;
-	}
-	if (StringUtil::Equals(value, "TEMPORARY")) {
-		return SecretPersistType::TEMPORARY;
-	}
-	if (StringUtil::Equals(value, "PERSISTENT")) {
-		return SecretPersistType::PERSISTENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSecretPersistTypeValues(), 3, "SecretPersistType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSecretSerializationTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SecretSerializationType::CUSTOM), "CUSTOM" },
+		{ static_cast(SecretSerializationType::KEY_VALUE_SECRET), "KEY_VALUE_SECRET" }
+	};
+	return values;
+}
+
+template<>
+const char* EnumUtil::ToChars(SecretSerializationType value) {
+	return StringUtil::EnumToString(GetSecretSerializationTypeValues(), 2, "SecretSerializationType", static_cast(value));
+}
+
+template<>
+SecretSerializationType EnumUtil::FromString(const char *value) {
+	return static_cast(StringUtil::StringToEnum(GetSecretSerializationTypeValues(), 2, "SecretSerializationType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSequenceInfoValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SequenceInfo::SEQ_START), "SEQ_START" },
+		{ static_cast(SequenceInfo::SEQ_INC), "SEQ_INC" },
+		{ static_cast(SequenceInfo::SEQ_MIN), "SEQ_MIN" },
+		{ static_cast(SequenceInfo::SEQ_MAX), "SEQ_MAX" },
+		{ static_cast(SequenceInfo::SEQ_CYCLE), "SEQ_CYCLE" },
+		{ static_cast(SequenceInfo::SEQ_OWN), "SEQ_OWN" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SequenceInfo value) {
-	switch(value) {
-	case SequenceInfo::SEQ_START:
-		return "SEQ_START";
-	case SequenceInfo::SEQ_INC:
-		return "SEQ_INC";
-	case SequenceInfo::SEQ_MIN:
-		return "SEQ_MIN";
-	case SequenceInfo::SEQ_MAX:
-		return "SEQ_MAX";
-	case SequenceInfo::SEQ_CYCLE:
-		return "SEQ_CYCLE";
-	case SequenceInfo::SEQ_OWN:
-		return "SEQ_OWN";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSequenceInfoValues(), 6, "SequenceInfo", static_cast(value));
 }
 
 template<>
 SequenceInfo EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SEQ_START")) {
-		return SequenceInfo::SEQ_START;
-	}
-	if (StringUtil::Equals(value, "SEQ_INC")) {
-		return SequenceInfo::SEQ_INC;
-	}
-	if (StringUtil::Equals(value, "SEQ_MIN")) {
-		return SequenceInfo::SEQ_MIN;
-	}
-	if (StringUtil::Equals(value, "SEQ_MAX")) {
-		return SequenceInfo::SEQ_MAX;
-	}
-	if (StringUtil::Equals(value, "SEQ_CYCLE")) {
-		return SequenceInfo::SEQ_CYCLE;
-	}
-	if (StringUtil::Equals(value, "SEQ_OWN")) {
-		return SequenceInfo::SEQ_OWN;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSequenceInfoValues(), 6, "SequenceInfo", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSetOperationTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SetOperationType::NONE), "NONE" },
+		{ static_cast(SetOperationType::UNION), "UNION" },
+		{ static_cast(SetOperationType::EXCEPT), "EXCEPT" },
+		{ static_cast(SetOperationType::INTERSECT), "INTERSECT" },
+		{ static_cast(SetOperationType::UNION_BY_NAME), "UNION_BY_NAME" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SetOperationType value) {
-	switch(value) {
-	case SetOperationType::NONE:
-		return "NONE";
-	case SetOperationType::UNION:
-		return "UNION";
-	case SetOperationType::EXCEPT:
-		return "EXCEPT";
-	case SetOperationType::INTERSECT:
-		return "INTERSECT";
-	case SetOperationType::UNION_BY_NAME:
-		return "UNION_BY_NAME";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSetOperationTypeValues(), 5, "SetOperationType", static_cast(value));
 }
 
 template<>
 SetOperationType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NONE")) {
-		return SetOperationType::NONE;
-	}
-	if (StringUtil::Equals(value, "UNION")) {
-		return SetOperationType::UNION;
-	}
-	if (StringUtil::Equals(value, "EXCEPT")) {
-		return SetOperationType::EXCEPT;
-	}
-	if (StringUtil::Equals(value, "INTERSECT")) {
-		return SetOperationType::INTERSECT;
-	}
-	if (StringUtil::Equals(value, "UNION_BY_NAME")) {
-		return SetOperationType::UNION_BY_NAME;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSetOperationTypeValues(), 5, "SetOperationType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSetScopeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SetScope::AUTOMATIC), "AUTOMATIC" },
+		{ static_cast(SetScope::LOCAL), "LOCAL" },
+		{ static_cast(SetScope::SESSION), "SESSION" },
+		{ static_cast(SetScope::GLOBAL), "GLOBAL" },
+		{ static_cast(SetScope::VARIABLE), "VARIABLE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SetScope value) {
-	switch(value) {
-	case SetScope::AUTOMATIC:
-		return "AUTOMATIC";
-	case SetScope::LOCAL:
-		return "LOCAL";
-	case SetScope::SESSION:
-		return "SESSION";
-	case SetScope::GLOBAL:
-		return "GLOBAL";
-	case SetScope::VARIABLE:
-		return "VARIABLE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSetScopeValues(), 5, "SetScope", static_cast(value));
 }
 
 template<>
 SetScope EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "AUTOMATIC")) {
-		return SetScope::AUTOMATIC;
-	}
-	if (StringUtil::Equals(value, "LOCAL")) {
-		return SetScope::LOCAL;
-	}
-	if (StringUtil::Equals(value, "SESSION")) {
-		return SetScope::SESSION;
-	}
-	if (StringUtil::Equals(value, "GLOBAL")) {
-		return SetScope::GLOBAL;
-	}
-	if (StringUtil::Equals(value, "VARIABLE")) {
-		return SetScope::VARIABLE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSetScopeValues(), 5, "SetScope", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSetTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SetType::SET), "SET" },
+		{ static_cast(SetType::RESET), "RESET" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SetType value) {
-	switch(value) {
-	case SetType::SET:
-		return "SET";
-	case SetType::RESET:
-		return "RESET";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSetTypeValues(), 2, "SetType", static_cast(value));
 }
 
 template<>
 SetType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SET")) {
-		return SetType::SET;
-	}
-	if (StringUtil::Equals(value, "RESET")) {
-		return SetType::RESET;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSetTypeValues(), 2, "SetType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSettingScopeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SettingScope::GLOBAL), "GLOBAL" },
+		{ static_cast(SettingScope::LOCAL), "LOCAL" },
+		{ static_cast(SettingScope::SECRET), "SECRET" },
+		{ static_cast(SettingScope::INVALID), "INVALID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SettingScope value) {
-	switch(value) {
-	case SettingScope::GLOBAL:
-		return "GLOBAL";
-	case SettingScope::LOCAL:
-		return "LOCAL";
-	case SettingScope::SECRET:
-		return "SECRET";
-	case SettingScope::INVALID:
-		return "INVALID";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSettingScopeValues(), 4, "SettingScope", static_cast(value));
 }
 
 template<>
 SettingScope EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "GLOBAL")) {
-		return SettingScope::GLOBAL;
-	}
-	if (StringUtil::Equals(value, "LOCAL")) {
-		return SettingScope::LOCAL;
-	}
-	if (StringUtil::Equals(value, "SECRET")) {
-		return SettingScope::SECRET;
-	}
-	if (StringUtil::Equals(value, "INVALID")) {
-		return SettingScope::INVALID;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSettingScopeValues(), 4, "SettingScope", value));
+}
+
+const StringUtil::EnumStringLiteral *GetShowTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(ShowType::SUMMARY), "SUMMARY" },
+		{ static_cast(ShowType::DESCRIBE), "DESCRIBE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(ShowType value) {
-	switch(value) {
-	case ShowType::SUMMARY:
-		return "SUMMARY";
-	case ShowType::DESCRIBE:
-		return "DESCRIBE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetShowTypeValues(), 2, "ShowType", static_cast(value));
 }
 
 template<>
 ShowType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SUMMARY")) {
-		return ShowType::SUMMARY;
-	}
-	if (StringUtil::Equals(value, "DESCRIBE")) {
-		return ShowType::DESCRIBE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetShowTypeValues(), 2, "ShowType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSimplifiedTokenTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SimplifiedTokenType::SIMPLIFIED_TOKEN_IDENTIFIER), "SIMPLIFIED_TOKEN_IDENTIFIER" },
+		{ static_cast(SimplifiedTokenType::SIMPLIFIED_TOKEN_NUMERIC_CONSTANT), "SIMPLIFIED_TOKEN_NUMERIC_CONSTANT" },
+		{ static_cast(SimplifiedTokenType::SIMPLIFIED_TOKEN_STRING_CONSTANT), "SIMPLIFIED_TOKEN_STRING_CONSTANT" },
+		{ static_cast(SimplifiedTokenType::SIMPLIFIED_TOKEN_OPERATOR), "SIMPLIFIED_TOKEN_OPERATOR" },
+		{ static_cast(SimplifiedTokenType::SIMPLIFIED_TOKEN_KEYWORD), "SIMPLIFIED_TOKEN_KEYWORD" },
+		{ static_cast(SimplifiedTokenType::SIMPLIFIED_TOKEN_COMMENT), "SIMPLIFIED_TOKEN_COMMENT" },
+		{ static_cast(SimplifiedTokenType::SIMPLIFIED_TOKEN_ERROR), "SIMPLIFIED_TOKEN_ERROR" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SimplifiedTokenType value) {
-	switch(value) {
-	case SimplifiedTokenType::SIMPLIFIED_TOKEN_IDENTIFIER:
-		return "SIMPLIFIED_TOKEN_IDENTIFIER";
-	case SimplifiedTokenType::SIMPLIFIED_TOKEN_NUMERIC_CONSTANT:
-		return "SIMPLIFIED_TOKEN_NUMERIC_CONSTANT";
-	case SimplifiedTokenType::SIMPLIFIED_TOKEN_STRING_CONSTANT:
-		return "SIMPLIFIED_TOKEN_STRING_CONSTANT";
-	case SimplifiedTokenType::SIMPLIFIED_TOKEN_OPERATOR:
-		return "SIMPLIFIED_TOKEN_OPERATOR";
-	case SimplifiedTokenType::SIMPLIFIED_TOKEN_KEYWORD:
-		return "SIMPLIFIED_TOKEN_KEYWORD";
-	case SimplifiedTokenType::SIMPLIFIED_TOKEN_COMMENT:
-		return "SIMPLIFIED_TOKEN_COMMENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSimplifiedTokenTypeValues(), 7, "SimplifiedTokenType", static_cast(value));
 }
 
 template<>
 SimplifiedTokenType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SIMPLIFIED_TOKEN_IDENTIFIER")) {
-		return SimplifiedTokenType::SIMPLIFIED_TOKEN_IDENTIFIER;
-	}
-	if (StringUtil::Equals(value, "SIMPLIFIED_TOKEN_NUMERIC_CONSTANT")) {
-		return SimplifiedTokenType::SIMPLIFIED_TOKEN_NUMERIC_CONSTANT;
-	}
-	if (StringUtil::Equals(value, "SIMPLIFIED_TOKEN_STRING_CONSTANT")) {
-		return SimplifiedTokenType::SIMPLIFIED_TOKEN_STRING_CONSTANT;
-	}
-	if (StringUtil::Equals(value, "SIMPLIFIED_TOKEN_OPERATOR")) {
-		return SimplifiedTokenType::SIMPLIFIED_TOKEN_OPERATOR;
-	}
-	if (StringUtil::Equals(value, "SIMPLIFIED_TOKEN_KEYWORD")) {
-		return SimplifiedTokenType::SIMPLIFIED_TOKEN_KEYWORD;
-	}
-	if (StringUtil::Equals(value, "SIMPLIFIED_TOKEN_COMMENT")) {
-		return SimplifiedTokenType::SIMPLIFIED_TOKEN_COMMENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSimplifiedTokenTypeValues(), 7, "SimplifiedTokenType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSinkCombineResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SinkCombineResultType::FINISHED), "FINISHED" },
+		{ static_cast(SinkCombineResultType::BLOCKED), "BLOCKED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SinkCombineResultType value) {
-	switch(value) {
-	case SinkCombineResultType::FINISHED:
-		return "FINISHED";
-	case SinkCombineResultType::BLOCKED:
-		return "BLOCKED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSinkCombineResultTypeValues(), 2, "SinkCombineResultType", static_cast(value));
 }
 
 template<>
 SinkCombineResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "FINISHED")) {
-		return SinkCombineResultType::FINISHED;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return SinkCombineResultType::BLOCKED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSinkCombineResultTypeValues(), 2, "SinkCombineResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSinkFinalizeTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SinkFinalizeType::READY), "READY" },
+		{ static_cast(SinkFinalizeType::NO_OUTPUT_POSSIBLE), "NO_OUTPUT_POSSIBLE" },
+		{ static_cast(SinkFinalizeType::BLOCKED), "BLOCKED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SinkFinalizeType value) {
-	switch(value) {
-	case SinkFinalizeType::READY:
-		return "READY";
-	case SinkFinalizeType::NO_OUTPUT_POSSIBLE:
-		return "NO_OUTPUT_POSSIBLE";
-	case SinkFinalizeType::BLOCKED:
-		return "BLOCKED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSinkFinalizeTypeValues(), 3, "SinkFinalizeType", static_cast(value));
 }
 
 template<>
 SinkFinalizeType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "READY")) {
-		return SinkFinalizeType::READY;
-	}
-	if (StringUtil::Equals(value, "NO_OUTPUT_POSSIBLE")) {
-		return SinkFinalizeType::NO_OUTPUT_POSSIBLE;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return SinkFinalizeType::BLOCKED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSinkFinalizeTypeValues(), 3, "SinkFinalizeType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSinkNextBatchTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SinkNextBatchType::READY), "READY" },
+		{ static_cast(SinkNextBatchType::BLOCKED), "BLOCKED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SinkNextBatchType value) {
-	switch(value) {
-	case SinkNextBatchType::READY:
-		return "READY";
-	case SinkNextBatchType::BLOCKED:
-		return "BLOCKED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSinkNextBatchTypeValues(), 2, "SinkNextBatchType", static_cast(value));
 }
 
 template<>
 SinkNextBatchType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "READY")) {
-		return SinkNextBatchType::READY;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return SinkNextBatchType::BLOCKED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSinkNextBatchTypeValues(), 2, "SinkNextBatchType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSinkResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SinkResultType::NEED_MORE_INPUT), "NEED_MORE_INPUT" },
+		{ static_cast(SinkResultType::FINISHED), "FINISHED" },
+		{ static_cast(SinkResultType::BLOCKED), "BLOCKED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SinkResultType value) {
-	switch(value) {
-	case SinkResultType::NEED_MORE_INPUT:
-		return "NEED_MORE_INPUT";
-	case SinkResultType::FINISHED:
-		return "FINISHED";
-	case SinkResultType::BLOCKED:
-		return "BLOCKED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSinkResultTypeValues(), 3, "SinkResultType", static_cast(value));
 }
 
 template<>
 SinkResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NEED_MORE_INPUT")) {
-		return SinkResultType::NEED_MORE_INPUT;
-	}
-	if (StringUtil::Equals(value, "FINISHED")) {
-		return SinkResultType::FINISHED;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return SinkResultType::BLOCKED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSinkResultTypeValues(), 3, "SinkResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSourceResultTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SourceResultType::HAVE_MORE_OUTPUT), "HAVE_MORE_OUTPUT" },
+		{ static_cast(SourceResultType::FINISHED), "FINISHED" },
+		{ static_cast(SourceResultType::BLOCKED), "BLOCKED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SourceResultType value) {
-	switch(value) {
-	case SourceResultType::HAVE_MORE_OUTPUT:
-		return "HAVE_MORE_OUTPUT";
-	case SourceResultType::FINISHED:
-		return "FINISHED";
-	case SourceResultType::BLOCKED:
-		return "BLOCKED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSourceResultTypeValues(), 3, "SourceResultType", static_cast(value));
 }
 
 template<>
 SourceResultType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "HAVE_MORE_OUTPUT")) {
-		return SourceResultType::HAVE_MORE_OUTPUT;
-	}
-	if (StringUtil::Equals(value, "FINISHED")) {
-		return SourceResultType::FINISHED;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return SourceResultType::BLOCKED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSourceResultTypeValues(), 3, "SourceResultType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetStatementReturnTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(StatementReturnType::QUERY_RESULT), "QUERY_RESULT" },
+		{ static_cast(StatementReturnType::CHANGED_ROWS), "CHANGED_ROWS" },
+		{ static_cast(StatementReturnType::NOTHING), "NOTHING" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(StatementReturnType value) {
-	switch(value) {
-	case StatementReturnType::QUERY_RESULT:
-		return "QUERY_RESULT";
-	case StatementReturnType::CHANGED_ROWS:
-		return "CHANGED_ROWS";
-	case StatementReturnType::NOTHING:
-		return "NOTHING";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetStatementReturnTypeValues(), 3, "StatementReturnType", static_cast(value));
 }
 
 template<>
 StatementReturnType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "QUERY_RESULT")) {
-		return StatementReturnType::QUERY_RESULT;
-	}
-	if (StringUtil::Equals(value, "CHANGED_ROWS")) {
-		return StatementReturnType::CHANGED_ROWS;
-	}
-	if (StringUtil::Equals(value, "NOTHING")) {
-		return StatementReturnType::NOTHING;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetStatementReturnTypeValues(), 3, "StatementReturnType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetStatementTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(StatementType::INVALID_STATEMENT), "INVALID_STATEMENT" },
+		{ static_cast(StatementType::SELECT_STATEMENT), "SELECT_STATEMENT" },
+		{ static_cast(StatementType::INSERT_STATEMENT), "INSERT_STATEMENT" },
+		{ static_cast(StatementType::UPDATE_STATEMENT), "UPDATE_STATEMENT" },
+		{ static_cast(StatementType::CREATE_STATEMENT), "CREATE_STATEMENT" },
+		{ static_cast(StatementType::DELETE_STATEMENT), "DELETE_STATEMENT" },
+		{ static_cast(StatementType::PREPARE_STATEMENT), "PREPARE_STATEMENT" },
+		{ static_cast(StatementType::EXECUTE_STATEMENT), "EXECUTE_STATEMENT" },
+		{ static_cast(StatementType::ALTER_STATEMENT), "ALTER_STATEMENT" },
+		{ static_cast(StatementType::TRANSACTION_STATEMENT), "TRANSACTION_STATEMENT" },
+		{ static_cast(StatementType::COPY_STATEMENT), "COPY_STATEMENT" },
+		{ static_cast(StatementType::ANALYZE_STATEMENT), "ANALYZE_STATEMENT" },
+		{ static_cast(StatementType::VARIABLE_SET_STATEMENT), "VARIABLE_SET_STATEMENT" },
+		{ static_cast(StatementType::CREATE_FUNC_STATEMENT), "CREATE_FUNC_STATEMENT" },
+		{ static_cast(StatementType::EXPLAIN_STATEMENT), "EXPLAIN_STATEMENT" },
+		{ static_cast(StatementType::DROP_STATEMENT), "DROP_STATEMENT" },
+		{ static_cast(StatementType::EXPORT_STATEMENT), "EXPORT_STATEMENT" },
+		{ static_cast(StatementType::PRAGMA_STATEMENT), "PRAGMA_STATEMENT" },
+		{ static_cast(StatementType::VACUUM_STATEMENT), "VACUUM_STATEMENT" },
+		{ static_cast(StatementType::CALL_STATEMENT), "CALL_STATEMENT" },
+		{ static_cast(StatementType::SET_STATEMENT), "SET_STATEMENT" },
+		{ static_cast(StatementType::LOAD_STATEMENT), "LOAD_STATEMENT" },
+		{ static_cast(StatementType::RELATION_STATEMENT), "RELATION_STATEMENT" },
+		{ static_cast(StatementType::EXTENSION_STATEMENT), "EXTENSION_STATEMENT" },
+		{ static_cast(StatementType::LOGICAL_PLAN_STATEMENT), "LOGICAL_PLAN_STATEMENT" },
+		{ static_cast(StatementType::ATTACH_STATEMENT), "ATTACH_STATEMENT" },
+		{ static_cast(StatementType::DETACH_STATEMENT), "DETACH_STATEMENT" },
+		{ static_cast(StatementType::MULTI_STATEMENT), "MULTI_STATEMENT" },
+		{ static_cast(StatementType::COPY_DATABASE_STATEMENT), "COPY_DATABASE_STATEMENT" },
+		{ static_cast(StatementType::UPDATE_EXTENSIONS_STATEMENT), "UPDATE_EXTENSIONS_STATEMENT" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(StatementType value) {
-	switch(value) {
-	case StatementType::INVALID_STATEMENT:
-		return "INVALID_STATEMENT";
-	case StatementType::SELECT_STATEMENT:
-		return "SELECT_STATEMENT";
-	case StatementType::INSERT_STATEMENT:
-		return "INSERT_STATEMENT";
-	case StatementType::UPDATE_STATEMENT:
-		return "UPDATE_STATEMENT";
-	case StatementType::CREATE_STATEMENT:
-		return "CREATE_STATEMENT";
-	case StatementType::DELETE_STATEMENT:
-		return "DELETE_STATEMENT";
-	case StatementType::PREPARE_STATEMENT:
-		return "PREPARE_STATEMENT";
-	case StatementType::EXECUTE_STATEMENT:
-		return "EXECUTE_STATEMENT";
-	case StatementType::ALTER_STATEMENT:
-		return "ALTER_STATEMENT";
-	case StatementType::TRANSACTION_STATEMENT:
-		return "TRANSACTION_STATEMENT";
-	case StatementType::COPY_STATEMENT:
-		return "COPY_STATEMENT";
-	case StatementType::ANALYZE_STATEMENT:
-		return "ANALYZE_STATEMENT";
-	case StatementType::VARIABLE_SET_STATEMENT:
-		return "VARIABLE_SET_STATEMENT";
-	case StatementType::CREATE_FUNC_STATEMENT:
-		return "CREATE_FUNC_STATEMENT";
-	case StatementType::EXPLAIN_STATEMENT:
-		return "EXPLAIN_STATEMENT";
-	case StatementType::DROP_STATEMENT:
-		return "DROP_STATEMENT";
-	case StatementType::EXPORT_STATEMENT:
-		return "EXPORT_STATEMENT";
-	case StatementType::PRAGMA_STATEMENT:
-		return "PRAGMA_STATEMENT";
-	case StatementType::VACUUM_STATEMENT:
-		return "VACUUM_STATEMENT";
-	case StatementType::CALL_STATEMENT:
-		return "CALL_STATEMENT";
-	case StatementType::SET_STATEMENT:
-		return "SET_STATEMENT";
-	case StatementType::LOAD_STATEMENT:
-		return "LOAD_STATEMENT";
-	case StatementType::RELATION_STATEMENT:
-		return "RELATION_STATEMENT";
-	case StatementType::EXTENSION_STATEMENT:
-		return "EXTENSION_STATEMENT";
-	case StatementType::LOGICAL_PLAN_STATEMENT:
-		return "LOGICAL_PLAN_STATEMENT";
-	case StatementType::ATTACH_STATEMENT:
-		return "ATTACH_STATEMENT";
-	case StatementType::DETACH_STATEMENT:
-		return "DETACH_STATEMENT";
-	case StatementType::MULTI_STATEMENT:
-		return "MULTI_STATEMENT";
-	case StatementType::COPY_DATABASE_STATEMENT:
-		return "COPY_DATABASE_STATEMENT";
-	case StatementType::UPDATE_EXTENSIONS_STATEMENT:
-		return "UPDATE_EXTENSIONS_STATEMENT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetStatementTypeValues(), 30, "StatementType", static_cast(value));
 }
 
 template<>
 StatementType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID_STATEMENT")) {
-		return StatementType::INVALID_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "SELECT_STATEMENT")) {
-		return StatementType::SELECT_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "INSERT_STATEMENT")) {
-		return StatementType::INSERT_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "UPDATE_STATEMENT")) {
-		return StatementType::UPDATE_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "CREATE_STATEMENT")) {
-		return StatementType::CREATE_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "DELETE_STATEMENT")) {
-		return StatementType::DELETE_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "PREPARE_STATEMENT")) {
-		return StatementType::PREPARE_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "EXECUTE_STATEMENT")) {
-		return StatementType::EXECUTE_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "ALTER_STATEMENT")) {
-		return StatementType::ALTER_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "TRANSACTION_STATEMENT")) {
-		return StatementType::TRANSACTION_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "COPY_STATEMENT")) {
-		return StatementType::COPY_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "ANALYZE_STATEMENT")) {
-		return StatementType::ANALYZE_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "VARIABLE_SET_STATEMENT")) {
-		return StatementType::VARIABLE_SET_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "CREATE_FUNC_STATEMENT")) {
-		return StatementType::CREATE_FUNC_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "EXPLAIN_STATEMENT")) {
-		return StatementType::EXPLAIN_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "DROP_STATEMENT")) {
-		return StatementType::DROP_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "EXPORT_STATEMENT")) {
-		return StatementType::EXPORT_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "PRAGMA_STATEMENT")) {
-		return StatementType::PRAGMA_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "VACUUM_STATEMENT")) {
-		return StatementType::VACUUM_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "CALL_STATEMENT")) {
-		return StatementType::CALL_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "SET_STATEMENT")) {
-		return StatementType::SET_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "LOAD_STATEMENT")) {
-		return StatementType::LOAD_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "RELATION_STATEMENT")) {
-		return StatementType::RELATION_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "EXTENSION_STATEMENT")) {
-		return StatementType::EXTENSION_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "LOGICAL_PLAN_STATEMENT")) {
-		return StatementType::LOGICAL_PLAN_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "ATTACH_STATEMENT")) {
-		return StatementType::ATTACH_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "DETACH_STATEMENT")) {
-		return StatementType::DETACH_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "MULTI_STATEMENT")) {
-		return StatementType::MULTI_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "COPY_DATABASE_STATEMENT")) {
-		return StatementType::COPY_DATABASE_STATEMENT;
-	}
-	if (StringUtil::Equals(value, "UPDATE_EXTENSIONS_STATEMENT")) {
-		return StatementType::UPDATE_EXTENSIONS_STATEMENT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetStatementTypeValues(), 30, "StatementType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetStatisticsTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(StatisticsType::NUMERIC_STATS), "NUMERIC_STATS" },
+		{ static_cast(StatisticsType::STRING_STATS), "STRING_STATS" },
+		{ static_cast(StatisticsType::LIST_STATS), "LIST_STATS" },
+		{ static_cast(StatisticsType::STRUCT_STATS), "STRUCT_STATS" },
+		{ static_cast(StatisticsType::BASE_STATS), "BASE_STATS" },
+		{ static_cast(StatisticsType::ARRAY_STATS), "ARRAY_STATS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(StatisticsType value) {
-	switch(value) {
-	case StatisticsType::NUMERIC_STATS:
-		return "NUMERIC_STATS";
-	case StatisticsType::STRING_STATS:
-		return "STRING_STATS";
-	case StatisticsType::LIST_STATS:
-		return "LIST_STATS";
-	case StatisticsType::STRUCT_STATS:
-		return "STRUCT_STATS";
-	case StatisticsType::BASE_STATS:
-		return "BASE_STATS";
-	case StatisticsType::ARRAY_STATS:
-		return "ARRAY_STATS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetStatisticsTypeValues(), 6, "StatisticsType", static_cast(value));
 }
 
 template<>
 StatisticsType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NUMERIC_STATS")) {
-		return StatisticsType::NUMERIC_STATS;
-	}
-	if (StringUtil::Equals(value, "STRING_STATS")) {
-		return StatisticsType::STRING_STATS;
-	}
-	if (StringUtil::Equals(value, "LIST_STATS")) {
-		return StatisticsType::LIST_STATS;
-	}
-	if (StringUtil::Equals(value, "STRUCT_STATS")) {
-		return StatisticsType::STRUCT_STATS;
-	}
-	if (StringUtil::Equals(value, "BASE_STATS")) {
-		return StatisticsType::BASE_STATS;
-	}
-	if (StringUtil::Equals(value, "ARRAY_STATS")) {
-		return StatisticsType::ARRAY_STATS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetStatisticsTypeValues(), 6, "StatisticsType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetStatsInfoValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(StatsInfo::CAN_HAVE_NULL_VALUES), "CAN_HAVE_NULL_VALUES" },
+		{ static_cast(StatsInfo::CANNOT_HAVE_NULL_VALUES), "CANNOT_HAVE_NULL_VALUES" },
+		{ static_cast(StatsInfo::CAN_HAVE_VALID_VALUES), "CAN_HAVE_VALID_VALUES" },
+		{ static_cast(StatsInfo::CANNOT_HAVE_VALID_VALUES), "CANNOT_HAVE_VALID_VALUES" },
+		{ static_cast(StatsInfo::CAN_HAVE_NULL_AND_VALID_VALUES), "CAN_HAVE_NULL_AND_VALID_VALUES" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(StatsInfo value) {
-	switch(value) {
-	case StatsInfo::CAN_HAVE_NULL_VALUES:
-		return "CAN_HAVE_NULL_VALUES";
-	case StatsInfo::CANNOT_HAVE_NULL_VALUES:
-		return "CANNOT_HAVE_NULL_VALUES";
-	case StatsInfo::CAN_HAVE_VALID_VALUES:
-		return "CAN_HAVE_VALID_VALUES";
-	case StatsInfo::CANNOT_HAVE_VALID_VALUES:
-		return "CANNOT_HAVE_VALID_VALUES";
-	case StatsInfo::CAN_HAVE_NULL_AND_VALID_VALUES:
-		return "CAN_HAVE_NULL_AND_VALID_VALUES";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetStatsInfoValues(), 5, "StatsInfo", static_cast(value));
 }
 
 template<>
 StatsInfo EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CAN_HAVE_NULL_VALUES")) {
-		return StatsInfo::CAN_HAVE_NULL_VALUES;
-	}
-	if (StringUtil::Equals(value, "CANNOT_HAVE_NULL_VALUES")) {
-		return StatsInfo::CANNOT_HAVE_NULL_VALUES;
-	}
-	if (StringUtil::Equals(value, "CAN_HAVE_VALID_VALUES")) {
-		return StatsInfo::CAN_HAVE_VALID_VALUES;
-	}
-	if (StringUtil::Equals(value, "CANNOT_HAVE_VALID_VALUES")) {
-		return StatsInfo::CANNOT_HAVE_VALID_VALUES;
-	}
-	if (StringUtil::Equals(value, "CAN_HAVE_NULL_AND_VALID_VALUES")) {
-		return StatsInfo::CAN_HAVE_NULL_AND_VALID_VALUES;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetStatsInfoValues(), 5, "StatsInfo", value));
+}
+
+const StringUtil::EnumStringLiteral *GetStrTimeSpecifierValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(StrTimeSpecifier::ABBREVIATED_WEEKDAY_NAME), "ABBREVIATED_WEEKDAY_NAME" },
+		{ static_cast(StrTimeSpecifier::FULL_WEEKDAY_NAME), "FULL_WEEKDAY_NAME" },
+		{ static_cast(StrTimeSpecifier::WEEKDAY_DECIMAL), "WEEKDAY_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::DAY_OF_MONTH_PADDED), "DAY_OF_MONTH_PADDED" },
+		{ static_cast(StrTimeSpecifier::DAY_OF_MONTH), "DAY_OF_MONTH" },
+		{ static_cast(StrTimeSpecifier::ABBREVIATED_MONTH_NAME), "ABBREVIATED_MONTH_NAME" },
+		{ static_cast(StrTimeSpecifier::FULL_MONTH_NAME), "FULL_MONTH_NAME" },
+		{ static_cast(StrTimeSpecifier::MONTH_DECIMAL_PADDED), "MONTH_DECIMAL_PADDED" },
+		{ static_cast(StrTimeSpecifier::MONTH_DECIMAL), "MONTH_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::YEAR_WITHOUT_CENTURY_PADDED), "YEAR_WITHOUT_CENTURY_PADDED" },
+		{ static_cast(StrTimeSpecifier::YEAR_WITHOUT_CENTURY), "YEAR_WITHOUT_CENTURY" },
+		{ static_cast(StrTimeSpecifier::YEAR_DECIMAL), "YEAR_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::HOUR_24_PADDED), "HOUR_24_PADDED" },
+		{ static_cast(StrTimeSpecifier::HOUR_24_DECIMAL), "HOUR_24_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::HOUR_12_PADDED), "HOUR_12_PADDED" },
+		{ static_cast(StrTimeSpecifier::HOUR_12_DECIMAL), "HOUR_12_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::AM_PM), "AM_PM" },
+		{ static_cast(StrTimeSpecifier::MINUTE_PADDED), "MINUTE_PADDED" },
+		{ static_cast(StrTimeSpecifier::MINUTE_DECIMAL), "MINUTE_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::SECOND_PADDED), "SECOND_PADDED" },
+		{ static_cast(StrTimeSpecifier::SECOND_DECIMAL), "SECOND_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::MICROSECOND_PADDED), "MICROSECOND_PADDED" },
+		{ static_cast(StrTimeSpecifier::MILLISECOND_PADDED), "MILLISECOND_PADDED" },
+		{ static_cast(StrTimeSpecifier::UTC_OFFSET), "UTC_OFFSET" },
+		{ static_cast(StrTimeSpecifier::TZ_NAME), "TZ_NAME" },
+		{ static_cast(StrTimeSpecifier::DAY_OF_YEAR_PADDED), "DAY_OF_YEAR_PADDED" },
+		{ static_cast(StrTimeSpecifier::DAY_OF_YEAR_DECIMAL), "DAY_OF_YEAR_DECIMAL" },
+		{ static_cast(StrTimeSpecifier::WEEK_NUMBER_PADDED_SUN_FIRST), "WEEK_NUMBER_PADDED_SUN_FIRST" },
+		{ static_cast(StrTimeSpecifier::WEEK_NUMBER_PADDED_MON_FIRST), "WEEK_NUMBER_PADDED_MON_FIRST" },
+		{ static_cast(StrTimeSpecifier::LOCALE_APPROPRIATE_DATE_AND_TIME), "LOCALE_APPROPRIATE_DATE_AND_TIME" },
+		{ static_cast(StrTimeSpecifier::LOCALE_APPROPRIATE_DATE), "LOCALE_APPROPRIATE_DATE" },
+		{ static_cast(StrTimeSpecifier::LOCALE_APPROPRIATE_TIME), "LOCALE_APPROPRIATE_TIME" },
+		{ static_cast(StrTimeSpecifier::NANOSECOND_PADDED), "NANOSECOND_PADDED" },
+		{ static_cast(StrTimeSpecifier::YEAR_ISO), "YEAR_ISO" },
+		{ static_cast(StrTimeSpecifier::WEEKDAY_ISO), "WEEKDAY_ISO" },
+		{ static_cast(StrTimeSpecifier::WEEK_NUMBER_ISO), "WEEK_NUMBER_ISO" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(StrTimeSpecifier value) {
-	switch(value) {
-	case StrTimeSpecifier::ABBREVIATED_WEEKDAY_NAME:
-		return "ABBREVIATED_WEEKDAY_NAME";
-	case StrTimeSpecifier::FULL_WEEKDAY_NAME:
-		return "FULL_WEEKDAY_NAME";
-	case StrTimeSpecifier::WEEKDAY_DECIMAL:
-		return "WEEKDAY_DECIMAL";
-	case StrTimeSpecifier::DAY_OF_MONTH_PADDED:
-		return "DAY_OF_MONTH_PADDED";
-	case StrTimeSpecifier::DAY_OF_MONTH:
-		return "DAY_OF_MONTH";
-	case StrTimeSpecifier::ABBREVIATED_MONTH_NAME:
-		return "ABBREVIATED_MONTH_NAME";
-	case StrTimeSpecifier::FULL_MONTH_NAME:
-		return "FULL_MONTH_NAME";
-	case StrTimeSpecifier::MONTH_DECIMAL_PADDED:
-		return "MONTH_DECIMAL_PADDED";
-	case StrTimeSpecifier::MONTH_DECIMAL:
-		return "MONTH_DECIMAL";
-	case StrTimeSpecifier::YEAR_WITHOUT_CENTURY_PADDED:
-		return "YEAR_WITHOUT_CENTURY_PADDED";
-	case StrTimeSpecifier::YEAR_WITHOUT_CENTURY:
-		return "YEAR_WITHOUT_CENTURY";
-	case StrTimeSpecifier::YEAR_DECIMAL:
-		return "YEAR_DECIMAL";
-	case StrTimeSpecifier::HOUR_24_PADDED:
-		return "HOUR_24_PADDED";
-	case StrTimeSpecifier::HOUR_24_DECIMAL:
-		return "HOUR_24_DECIMAL";
-	case StrTimeSpecifier::HOUR_12_PADDED:
-		return "HOUR_12_PADDED";
-	case StrTimeSpecifier::HOUR_12_DECIMAL:
-		return "HOUR_12_DECIMAL";
-	case StrTimeSpecifier::AM_PM:
-		return "AM_PM";
-	case StrTimeSpecifier::MINUTE_PADDED:
-		return "MINUTE_PADDED";
-	case StrTimeSpecifier::MINUTE_DECIMAL:
-		return "MINUTE_DECIMAL";
-	case StrTimeSpecifier::SECOND_PADDED:
-		return "SECOND_PADDED";
-	case StrTimeSpecifier::SECOND_DECIMAL:
-		return "SECOND_DECIMAL";
-	case StrTimeSpecifier::MICROSECOND_PADDED:
-		return "MICROSECOND_PADDED";
-	case StrTimeSpecifier::MILLISECOND_PADDED:
-		return "MILLISECOND_PADDED";
-	case StrTimeSpecifier::UTC_OFFSET:
-		return "UTC_OFFSET";
-	case StrTimeSpecifier::TZ_NAME:
-		return "TZ_NAME";
-	case StrTimeSpecifier::DAY_OF_YEAR_PADDED:
-		return "DAY_OF_YEAR_PADDED";
-	case StrTimeSpecifier::DAY_OF_YEAR_DECIMAL:
-		return "DAY_OF_YEAR_DECIMAL";
-	case StrTimeSpecifier::WEEK_NUMBER_PADDED_SUN_FIRST:
-		return "WEEK_NUMBER_PADDED_SUN_FIRST";
-	case StrTimeSpecifier::WEEK_NUMBER_PADDED_MON_FIRST:
-		return "WEEK_NUMBER_PADDED_MON_FIRST";
-	case StrTimeSpecifier::LOCALE_APPROPRIATE_DATE_AND_TIME:
-		return "LOCALE_APPROPRIATE_DATE_AND_TIME";
-	case StrTimeSpecifier::LOCALE_APPROPRIATE_DATE:
-		return "LOCALE_APPROPRIATE_DATE";
-	case StrTimeSpecifier::LOCALE_APPROPRIATE_TIME:
-		return "LOCALE_APPROPRIATE_TIME";
-	case StrTimeSpecifier::NANOSECOND_PADDED:
-		return "NANOSECOND_PADDED";
-	case StrTimeSpecifier::YEAR_ISO:
-		return "YEAR_ISO";
-	case StrTimeSpecifier::WEEKDAY_ISO:
-		return "WEEKDAY_ISO";
-	case StrTimeSpecifier::WEEK_NUMBER_ISO:
-		return "WEEK_NUMBER_ISO";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetStrTimeSpecifierValues(), 36, "StrTimeSpecifier", static_cast(value));
 }
 
 template<>
 StrTimeSpecifier EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ABBREVIATED_WEEKDAY_NAME")) {
-		return StrTimeSpecifier::ABBREVIATED_WEEKDAY_NAME;
-	}
-	if (StringUtil::Equals(value, "FULL_WEEKDAY_NAME")) {
-		return StrTimeSpecifier::FULL_WEEKDAY_NAME;
-	}
-	if (StringUtil::Equals(value, "WEEKDAY_DECIMAL")) {
-		return StrTimeSpecifier::WEEKDAY_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "DAY_OF_MONTH_PADDED")) {
-		return StrTimeSpecifier::DAY_OF_MONTH_PADDED;
-	}
-	if (StringUtil::Equals(value, "DAY_OF_MONTH")) {
-		return StrTimeSpecifier::DAY_OF_MONTH;
-	}
-	if (StringUtil::Equals(value, "ABBREVIATED_MONTH_NAME")) {
-		return StrTimeSpecifier::ABBREVIATED_MONTH_NAME;
-	}
-	if (StringUtil::Equals(value, "FULL_MONTH_NAME")) {
-		return StrTimeSpecifier::FULL_MONTH_NAME;
-	}
-	if (StringUtil::Equals(value, "MONTH_DECIMAL_PADDED")) {
-		return StrTimeSpecifier::MONTH_DECIMAL_PADDED;
-	}
-	if (StringUtil::Equals(value, "MONTH_DECIMAL")) {
-		return StrTimeSpecifier::MONTH_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "YEAR_WITHOUT_CENTURY_PADDED")) {
-		return StrTimeSpecifier::YEAR_WITHOUT_CENTURY_PADDED;
-	}
-	if (StringUtil::Equals(value, "YEAR_WITHOUT_CENTURY")) {
-		return StrTimeSpecifier::YEAR_WITHOUT_CENTURY;
-	}
-	if (StringUtil::Equals(value, "YEAR_DECIMAL")) {
-		return StrTimeSpecifier::YEAR_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "HOUR_24_PADDED")) {
-		return StrTimeSpecifier::HOUR_24_PADDED;
-	}
-	if (StringUtil::Equals(value, "HOUR_24_DECIMAL")) {
-		return StrTimeSpecifier::HOUR_24_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "HOUR_12_PADDED")) {
-		return StrTimeSpecifier::HOUR_12_PADDED;
-	}
-	if (StringUtil::Equals(value, "HOUR_12_DECIMAL")) {
-		return StrTimeSpecifier::HOUR_12_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "AM_PM")) {
-		return StrTimeSpecifier::AM_PM;
-	}
-	if (StringUtil::Equals(value, "MINUTE_PADDED")) {
-		return StrTimeSpecifier::MINUTE_PADDED;
-	}
-	if (StringUtil::Equals(value, "MINUTE_DECIMAL")) {
-		return StrTimeSpecifier::MINUTE_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "SECOND_PADDED")) {
-		return StrTimeSpecifier::SECOND_PADDED;
-	}
-	if (StringUtil::Equals(value, "SECOND_DECIMAL")) {
-		return StrTimeSpecifier::SECOND_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "MICROSECOND_PADDED")) {
-		return StrTimeSpecifier::MICROSECOND_PADDED;
-	}
-	if (StringUtil::Equals(value, "MILLISECOND_PADDED")) {
-		return StrTimeSpecifier::MILLISECOND_PADDED;
-	}
-	if (StringUtil::Equals(value, "UTC_OFFSET")) {
-		return StrTimeSpecifier::UTC_OFFSET;
-	}
-	if (StringUtil::Equals(value, "TZ_NAME")) {
-		return StrTimeSpecifier::TZ_NAME;
-	}
-	if (StringUtil::Equals(value, "DAY_OF_YEAR_PADDED")) {
-		return StrTimeSpecifier::DAY_OF_YEAR_PADDED;
-	}
-	if (StringUtil::Equals(value, "DAY_OF_YEAR_DECIMAL")) {
-		return StrTimeSpecifier::DAY_OF_YEAR_DECIMAL;
-	}
-	if (StringUtil::Equals(value, "WEEK_NUMBER_PADDED_SUN_FIRST")) {
-		return StrTimeSpecifier::WEEK_NUMBER_PADDED_SUN_FIRST;
-	}
-	if (StringUtil::Equals(value, "WEEK_NUMBER_PADDED_MON_FIRST")) {
-		return StrTimeSpecifier::WEEK_NUMBER_PADDED_MON_FIRST;
-	}
-	if (StringUtil::Equals(value, "LOCALE_APPROPRIATE_DATE_AND_TIME")) {
-		return StrTimeSpecifier::LOCALE_APPROPRIATE_DATE_AND_TIME;
-	}
-	if (StringUtil::Equals(value, "LOCALE_APPROPRIATE_DATE")) {
-		return StrTimeSpecifier::LOCALE_APPROPRIATE_DATE;
-	}
-	if (StringUtil::Equals(value, "LOCALE_APPROPRIATE_TIME")) {
-		return StrTimeSpecifier::LOCALE_APPROPRIATE_TIME;
-	}
-	if (StringUtil::Equals(value, "NANOSECOND_PADDED")) {
-		return StrTimeSpecifier::NANOSECOND_PADDED;
-	}
-	if (StringUtil::Equals(value, "YEAR_ISO")) {
-		return StrTimeSpecifier::YEAR_ISO;
-	}
-	if (StringUtil::Equals(value, "WEEKDAY_ISO")) {
-		return StrTimeSpecifier::WEEKDAY_ISO;
-	}
-	if (StringUtil::Equals(value, "WEEK_NUMBER_ISO")) {
-		return StrTimeSpecifier::WEEK_NUMBER_ISO;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetStrTimeSpecifierValues(), 36, "StrTimeSpecifier", value));
+}
+
+const StringUtil::EnumStringLiteral *GetStreamExecutionResultValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(StreamExecutionResult::CHUNK_READY), "CHUNK_READY" },
+		{ static_cast(StreamExecutionResult::CHUNK_NOT_READY), "CHUNK_NOT_READY" },
+		{ static_cast(StreamExecutionResult::EXECUTION_ERROR), "EXECUTION_ERROR" },
+		{ static_cast(StreamExecutionResult::EXECUTION_CANCELLED), "EXECUTION_CANCELLED" },
+		{ static_cast(StreamExecutionResult::BLOCKED), "BLOCKED" },
+		{ static_cast(StreamExecutionResult::NO_TASKS_AVAILABLE), "NO_TASKS_AVAILABLE" },
+		{ static_cast(StreamExecutionResult::EXECUTION_FINISHED), "EXECUTION_FINISHED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(StreamExecutionResult value) {
-	switch(value) {
-	case StreamExecutionResult::CHUNK_READY:
-		return "CHUNK_READY";
-	case StreamExecutionResult::CHUNK_NOT_READY:
-		return "CHUNK_NOT_READY";
-	case StreamExecutionResult::EXECUTION_ERROR:
-		return "EXECUTION_ERROR";
-	case StreamExecutionResult::EXECUTION_CANCELLED:
-		return "EXECUTION_CANCELLED";
-	case StreamExecutionResult::BLOCKED:
-		return "BLOCKED";
-	case StreamExecutionResult::NO_TASKS_AVAILABLE:
-		return "NO_TASKS_AVAILABLE";
-	case StreamExecutionResult::EXECUTION_FINISHED:
-		return "EXECUTION_FINISHED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetStreamExecutionResultValues(), 7, "StreamExecutionResult", static_cast(value));
 }
 
 template<>
 StreamExecutionResult EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CHUNK_READY")) {
-		return StreamExecutionResult::CHUNK_READY;
-	}
-	if (StringUtil::Equals(value, "CHUNK_NOT_READY")) {
-		return StreamExecutionResult::CHUNK_NOT_READY;
-	}
-	if (StringUtil::Equals(value, "EXECUTION_ERROR")) {
-		return StreamExecutionResult::EXECUTION_ERROR;
-	}
-	if (StringUtil::Equals(value, "EXECUTION_CANCELLED")) {
-		return StreamExecutionResult::EXECUTION_CANCELLED;
-	}
-	if (StringUtil::Equals(value, "BLOCKED")) {
-		return StreamExecutionResult::BLOCKED;
-	}
-	if (StringUtil::Equals(value, "NO_TASKS_AVAILABLE")) {
-		return StreamExecutionResult::NO_TASKS_AVAILABLE;
-	}
-	if (StringUtil::Equals(value, "EXECUTION_FINISHED")) {
-		return StreamExecutionResult::EXECUTION_FINISHED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetStreamExecutionResultValues(), 7, "StreamExecutionResult", value));
+}
+
+const StringUtil::EnumStringLiteral *GetSubqueryTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(SubqueryType::INVALID), "INVALID" },
+		{ static_cast(SubqueryType::SCALAR), "SCALAR" },
+		{ static_cast(SubqueryType::EXISTS), "EXISTS" },
+		{ static_cast(SubqueryType::NOT_EXISTS), "NOT_EXISTS" },
+		{ static_cast(SubqueryType::ANY), "ANY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(SubqueryType value) {
-	switch(value) {
-	case SubqueryType::INVALID:
-		return "INVALID";
-	case SubqueryType::SCALAR:
-		return "SCALAR";
-	case SubqueryType::EXISTS:
-		return "EXISTS";
-	case SubqueryType::NOT_EXISTS:
-		return "NOT_EXISTS";
-	case SubqueryType::ANY:
-		return "ANY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetSubqueryTypeValues(), 5, "SubqueryType", static_cast(value));
 }
 
 template<>
 SubqueryType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return SubqueryType::INVALID;
-	}
-	if (StringUtil::Equals(value, "SCALAR")) {
-		return SubqueryType::SCALAR;
-	}
-	if (StringUtil::Equals(value, "EXISTS")) {
-		return SubqueryType::EXISTS;
-	}
-	if (StringUtil::Equals(value, "NOT_EXISTS")) {
-		return SubqueryType::NOT_EXISTS;
-	}
-	if (StringUtil::Equals(value, "ANY")) {
-		return SubqueryType::ANY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetSubqueryTypeValues(), 5, "SubqueryType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTableColumnTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TableColumnType::STANDARD), "STANDARD" },
+		{ static_cast(TableColumnType::GENERATED), "GENERATED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TableColumnType value) {
-	switch(value) {
-	case TableColumnType::STANDARD:
-		return "STANDARD";
-	case TableColumnType::GENERATED:
-		return "GENERATED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTableColumnTypeValues(), 2, "TableColumnType", static_cast(value));
 }
 
 template<>
 TableColumnType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "STANDARD")) {
-		return TableColumnType::STANDARD;
-	}
-	if (StringUtil::Equals(value, "GENERATED")) {
-		return TableColumnType::GENERATED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTableColumnTypeValues(), 2, "TableColumnType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTableFilterTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TableFilterType::CONSTANT_COMPARISON), "CONSTANT_COMPARISON" },
+		{ static_cast(TableFilterType::IS_NULL), "IS_NULL" },
+		{ static_cast(TableFilterType::IS_NOT_NULL), "IS_NOT_NULL" },
+		{ static_cast(TableFilterType::CONJUNCTION_OR), "CONJUNCTION_OR" },
+		{ static_cast(TableFilterType::CONJUNCTION_AND), "CONJUNCTION_AND" },
+		{ static_cast(TableFilterType::STRUCT_EXTRACT), "STRUCT_EXTRACT" },
+		{ static_cast(TableFilterType::OPTIONAL_FILTER), "OPTIONAL_FILTER" },
+		{ static_cast(TableFilterType::IN_FILTER), "IN_FILTER" },
+		{ static_cast(TableFilterType::DYNAMIC_FILTER), "DYNAMIC_FILTER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TableFilterType value) {
-	switch(value) {
-	case TableFilterType::CONSTANT_COMPARISON:
-		return "CONSTANT_COMPARISON";
-	case TableFilterType::IS_NULL:
-		return "IS_NULL";
-	case TableFilterType::IS_NOT_NULL:
-		return "IS_NOT_NULL";
-	case TableFilterType::CONJUNCTION_OR:
-		return "CONJUNCTION_OR";
-	case TableFilterType::CONJUNCTION_AND:
-		return "CONJUNCTION_AND";
-	case TableFilterType::STRUCT_EXTRACT:
-		return "STRUCT_EXTRACT";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTableFilterTypeValues(), 9, "TableFilterType", static_cast(value));
 }
 
 template<>
 TableFilterType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "CONSTANT_COMPARISON")) {
-		return TableFilterType::CONSTANT_COMPARISON;
-	}
-	if (StringUtil::Equals(value, "IS_NULL")) {
-		return TableFilterType::IS_NULL;
-	}
-	if (StringUtil::Equals(value, "IS_NOT_NULL")) {
-		return TableFilterType::IS_NOT_NULL;
-	}
-	if (StringUtil::Equals(value, "CONJUNCTION_OR")) {
-		return TableFilterType::CONJUNCTION_OR;
-	}
-	if (StringUtil::Equals(value, "CONJUNCTION_AND")) {
-		return TableFilterType::CONJUNCTION_AND;
-	}
-	if (StringUtil::Equals(value, "STRUCT_EXTRACT")) {
-		return TableFilterType::STRUCT_EXTRACT;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTableFilterTypeValues(), 9, "TableFilterType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTablePartitionInfoValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TablePartitionInfo::NOT_PARTITIONED), "NOT_PARTITIONED" },
+		{ static_cast(TablePartitionInfo::SINGLE_VALUE_PARTITIONS), "SINGLE_VALUE_PARTITIONS" },
+		{ static_cast(TablePartitionInfo::OVERLAPPING_PARTITIONS), "OVERLAPPING_PARTITIONS" },
+		{ static_cast(TablePartitionInfo::DISJOINT_PARTITIONS), "DISJOINT_PARTITIONS" }
+	};
+	return values;
+}
+
+template<>
+const char* EnumUtil::ToChars(TablePartitionInfo value) {
+	return StringUtil::EnumToString(GetTablePartitionInfoValues(), 4, "TablePartitionInfo", static_cast(value));
+}
+
+template<>
+TablePartitionInfo EnumUtil::FromString(const char *value) {
+	return static_cast(StringUtil::StringToEnum(GetTablePartitionInfoValues(), 4, "TablePartitionInfo", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTableReferenceTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TableReferenceType::INVALID), "INVALID" },
+		{ static_cast(TableReferenceType::BASE_TABLE), "BASE_TABLE" },
+		{ static_cast(TableReferenceType::SUBQUERY), "SUBQUERY" },
+		{ static_cast(TableReferenceType::JOIN), "JOIN" },
+		{ static_cast(TableReferenceType::TABLE_FUNCTION), "TABLE_FUNCTION" },
+		{ static_cast(TableReferenceType::EXPRESSION_LIST), "EXPRESSION_LIST" },
+		{ static_cast(TableReferenceType::CTE), "CTE" },
+		{ static_cast(TableReferenceType::EMPTY_FROM), "EMPTY" },
+		{ static_cast(TableReferenceType::PIVOT), "PIVOT" },
+		{ static_cast(TableReferenceType::SHOW_REF), "SHOW_REF" },
+		{ static_cast(TableReferenceType::COLUMN_DATA), "COLUMN_DATA" },
+		{ static_cast(TableReferenceType::DELIM_GET), "DELIM_GET" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TableReferenceType value) {
-	switch(value) {
-	case TableReferenceType::INVALID:
-		return "INVALID";
-	case TableReferenceType::BASE_TABLE:
-		return "BASE_TABLE";
-	case TableReferenceType::SUBQUERY:
-		return "SUBQUERY";
-	case TableReferenceType::JOIN:
-		return "JOIN";
-	case TableReferenceType::TABLE_FUNCTION:
-		return "TABLE_FUNCTION";
-	case TableReferenceType::EXPRESSION_LIST:
-		return "EXPRESSION_LIST";
-	case TableReferenceType::CTE:
-		return "CTE";
-	case TableReferenceType::EMPTY_FROM:
-		return "EMPTY";
-	case TableReferenceType::PIVOT:
-		return "PIVOT";
-	case TableReferenceType::SHOW_REF:
-		return "SHOW_REF";
-	case TableReferenceType::COLUMN_DATA:
-		return "COLUMN_DATA";
-	case TableReferenceType::DELIM_GET:
-		return "DELIM_GET";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTableReferenceTypeValues(), 12, "TableReferenceType", static_cast(value));
 }
 
 template<>
 TableReferenceType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return TableReferenceType::INVALID;
-	}
-	if (StringUtil::Equals(value, "BASE_TABLE")) {
-		return TableReferenceType::BASE_TABLE;
-	}
-	if (StringUtil::Equals(value, "SUBQUERY")) {
-		return TableReferenceType::SUBQUERY;
-	}
-	if (StringUtil::Equals(value, "JOIN")) {
-		return TableReferenceType::JOIN;
-	}
-	if (StringUtil::Equals(value, "TABLE_FUNCTION")) {
-		return TableReferenceType::TABLE_FUNCTION;
-	}
-	if (StringUtil::Equals(value, "EXPRESSION_LIST")) {
-		return TableReferenceType::EXPRESSION_LIST;
-	}
-	if (StringUtil::Equals(value, "CTE")) {
-		return TableReferenceType::CTE;
-	}
-	if (StringUtil::Equals(value, "EMPTY")) {
-		return TableReferenceType::EMPTY_FROM;
-	}
-	if (StringUtil::Equals(value, "PIVOT")) {
-		return TableReferenceType::PIVOT;
-	}
-	if (StringUtil::Equals(value, "SHOW_REF")) {
-		return TableReferenceType::SHOW_REF;
-	}
-	if (StringUtil::Equals(value, "COLUMN_DATA")) {
-		return TableReferenceType::COLUMN_DATA;
-	}
-	if (StringUtil::Equals(value, "DELIM_GET")) {
-		return TableReferenceType::DELIM_GET;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTableReferenceTypeValues(), 12, "TableReferenceType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTableScanTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TableScanType::TABLE_SCAN_REGULAR), "TABLE_SCAN_REGULAR" },
+		{ static_cast(TableScanType::TABLE_SCAN_COMMITTED_ROWS), "TABLE_SCAN_COMMITTED_ROWS" },
+		{ static_cast(TableScanType::TABLE_SCAN_COMMITTED_ROWS_DISALLOW_UPDATES), "TABLE_SCAN_COMMITTED_ROWS_DISALLOW_UPDATES" },
+		{ static_cast(TableScanType::TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED), "TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED" },
+		{ static_cast(TableScanType::TABLE_SCAN_LATEST_COMMITTED_ROWS), "TABLE_SCAN_LATEST_COMMITTED_ROWS" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TableScanType value) {
-	switch(value) {
-	case TableScanType::TABLE_SCAN_REGULAR:
-		return "TABLE_SCAN_REGULAR";
-	case TableScanType::TABLE_SCAN_COMMITTED_ROWS:
-		return "TABLE_SCAN_COMMITTED_ROWS";
-	case TableScanType::TABLE_SCAN_COMMITTED_ROWS_DISALLOW_UPDATES:
-		return "TABLE_SCAN_COMMITTED_ROWS_DISALLOW_UPDATES";
-	case TableScanType::TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED:
-		return "TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED";
-	case TableScanType::TABLE_SCAN_LATEST_COMMITTED_ROWS:
-		return "TABLE_SCAN_LATEST_COMMITTED_ROWS";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTableScanTypeValues(), 5, "TableScanType", static_cast(value));
 }
 
 template<>
 TableScanType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "TABLE_SCAN_REGULAR")) {
-		return TableScanType::TABLE_SCAN_REGULAR;
-	}
-	if (StringUtil::Equals(value, "TABLE_SCAN_COMMITTED_ROWS")) {
-		return TableScanType::TABLE_SCAN_COMMITTED_ROWS;
-	}
-	if (StringUtil::Equals(value, "TABLE_SCAN_COMMITTED_ROWS_DISALLOW_UPDATES")) {
-		return TableScanType::TABLE_SCAN_COMMITTED_ROWS_DISALLOW_UPDATES;
-	}
-	if (StringUtil::Equals(value, "TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED")) {
-		return TableScanType::TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED;
-	}
-	if (StringUtil::Equals(value, "TABLE_SCAN_LATEST_COMMITTED_ROWS")) {
-		return TableScanType::TABLE_SCAN_LATEST_COMMITTED_ROWS;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTableScanTypeValues(), 5, "TableScanType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTaskExecutionModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TaskExecutionMode::PROCESS_ALL), "PROCESS_ALL" },
+		{ static_cast(TaskExecutionMode::PROCESS_PARTIAL), "PROCESS_PARTIAL" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TaskExecutionMode value) {
-	switch(value) {
-	case TaskExecutionMode::PROCESS_ALL:
-		return "PROCESS_ALL";
-	case TaskExecutionMode::PROCESS_PARTIAL:
-		return "PROCESS_PARTIAL";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTaskExecutionModeValues(), 2, "TaskExecutionMode", static_cast(value));
 }
 
 template<>
 TaskExecutionMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "PROCESS_ALL")) {
-		return TaskExecutionMode::PROCESS_ALL;
-	}
-	if (StringUtil::Equals(value, "PROCESS_PARTIAL")) {
-		return TaskExecutionMode::PROCESS_PARTIAL;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTaskExecutionModeValues(), 2, "TaskExecutionMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTaskExecutionResultValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TaskExecutionResult::TASK_FINISHED), "TASK_FINISHED" },
+		{ static_cast(TaskExecutionResult::TASK_NOT_FINISHED), "TASK_NOT_FINISHED" },
+		{ static_cast(TaskExecutionResult::TASK_ERROR), "TASK_ERROR" },
+		{ static_cast(TaskExecutionResult::TASK_BLOCKED), "TASK_BLOCKED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TaskExecutionResult value) {
-	switch(value) {
-	case TaskExecutionResult::TASK_FINISHED:
-		return "TASK_FINISHED";
-	case TaskExecutionResult::TASK_NOT_FINISHED:
-		return "TASK_NOT_FINISHED";
-	case TaskExecutionResult::TASK_ERROR:
-		return "TASK_ERROR";
-	case TaskExecutionResult::TASK_BLOCKED:
-		return "TASK_BLOCKED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTaskExecutionResultValues(), 4, "TaskExecutionResult", static_cast(value));
 }
 
 template<>
 TaskExecutionResult EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "TASK_FINISHED")) {
-		return TaskExecutionResult::TASK_FINISHED;
-	}
-	if (StringUtil::Equals(value, "TASK_NOT_FINISHED")) {
-		return TaskExecutionResult::TASK_NOT_FINISHED;
-	}
-	if (StringUtil::Equals(value, "TASK_ERROR")) {
-		return TaskExecutionResult::TASK_ERROR;
-	}
-	if (StringUtil::Equals(value, "TASK_BLOCKED")) {
-		return TaskExecutionResult::TASK_BLOCKED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTaskExecutionResultValues(), 4, "TaskExecutionResult", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTemporaryBufferSizeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TemporaryBufferSize::INVALID), "INVALID" },
+		{ static_cast(TemporaryBufferSize::S32K), "S32K" },
+		{ static_cast(TemporaryBufferSize::S64K), "S64K" },
+		{ static_cast(TemporaryBufferSize::S96K), "S96K" },
+		{ static_cast(TemporaryBufferSize::S128K), "S128K" },
+		{ static_cast(TemporaryBufferSize::S160K), "S160K" },
+		{ static_cast(TemporaryBufferSize::S192K), "S192K" },
+		{ static_cast(TemporaryBufferSize::S224K), "S224K" },
+		{ static_cast(TemporaryBufferSize::DEFAULT), "DEFAULT" }
+	};
+	return values;
+}
+
+template<>
+const char* EnumUtil::ToChars(TemporaryBufferSize value) {
+	return StringUtil::EnumToString(GetTemporaryBufferSizeValues(), 9, "TemporaryBufferSize", static_cast(value));
+}
+
+template<>
+TemporaryBufferSize EnumUtil::FromString(const char *value) {
+	return static_cast(StringUtil::StringToEnum(GetTemporaryBufferSizeValues(), 9, "TemporaryBufferSize", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTemporaryCompressionLevelValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TemporaryCompressionLevel::ZSTD_MINUS_FIVE), "ZSTD_MINUS_FIVE" },
+		{ static_cast(TemporaryCompressionLevel::ZSTD_MINUS_THREE), "ZSTD_MINUS_THREE" },
+		{ static_cast(TemporaryCompressionLevel::ZSTD_MINUS_ONE), "ZSTD_MINUS_ONE" },
+		{ static_cast(TemporaryCompressionLevel::UNCOMPRESSED), "UNCOMPRESSED" },
+		{ static_cast(TemporaryCompressionLevel::ZSTD_ONE), "ZSTD_ONE" },
+		{ static_cast(TemporaryCompressionLevel::ZSTD_THREE), "ZSTD_THREE" },
+		{ static_cast(TemporaryCompressionLevel::ZSTD_FIVE), "ZSTD_FIVE" }
+	};
+	return values;
+}
+
+template<>
+const char* EnumUtil::ToChars(TemporaryCompressionLevel value) {
+	return StringUtil::EnumToString(GetTemporaryCompressionLevelValues(), 7, "TemporaryCompressionLevel", static_cast(value));
+}
+
+template<>
+TemporaryCompressionLevel EnumUtil::FromString(const char *value) {
+	return static_cast(StringUtil::StringToEnum(GetTemporaryCompressionLevelValues(), 7, "TemporaryCompressionLevel", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTimestampCastResultValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TimestampCastResult::SUCCESS), "SUCCESS" },
+		{ static_cast(TimestampCastResult::ERROR_INCORRECT_FORMAT), "ERROR_INCORRECT_FORMAT" },
+		{ static_cast(TimestampCastResult::ERROR_NON_UTC_TIMEZONE), "ERROR_NON_UTC_TIMEZONE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TimestampCastResult value) {
-	switch(value) {
-	case TimestampCastResult::SUCCESS:
-		return "SUCCESS";
-	case TimestampCastResult::ERROR_INCORRECT_FORMAT:
-		return "ERROR_INCORRECT_FORMAT";
-	case TimestampCastResult::ERROR_NON_UTC_TIMEZONE:
-		return "ERROR_NON_UTC_TIMEZONE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTimestampCastResultValues(), 3, "TimestampCastResult", static_cast(value));
 }
 
 template<>
 TimestampCastResult EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "SUCCESS")) {
-		return TimestampCastResult::SUCCESS;
-	}
-	if (StringUtil::Equals(value, "ERROR_INCORRECT_FORMAT")) {
-		return TimestampCastResult::ERROR_INCORRECT_FORMAT;
-	}
-	if (StringUtil::Equals(value, "ERROR_NON_UTC_TIMEZONE")) {
-		return TimestampCastResult::ERROR_NON_UTC_TIMEZONE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTimestampCastResultValues(), 3, "TimestampCastResult", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTransactionModifierTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TransactionModifierType::TRANSACTION_DEFAULT_MODIFIER), "TRANSACTION_DEFAULT_MODIFIER" },
+		{ static_cast(TransactionModifierType::TRANSACTION_READ_ONLY), "TRANSACTION_READ_ONLY" },
+		{ static_cast(TransactionModifierType::TRANSACTION_READ_WRITE), "TRANSACTION_READ_WRITE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TransactionModifierType value) {
-	switch(value) {
-	case TransactionModifierType::TRANSACTION_DEFAULT_MODIFIER:
-		return "TRANSACTION_DEFAULT_MODIFIER";
-	case TransactionModifierType::TRANSACTION_READ_ONLY:
-		return "TRANSACTION_READ_ONLY";
-	case TransactionModifierType::TRANSACTION_READ_WRITE:
-		return "TRANSACTION_READ_WRITE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTransactionModifierTypeValues(), 3, "TransactionModifierType", static_cast(value));
 }
 
 template<>
 TransactionModifierType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "TRANSACTION_DEFAULT_MODIFIER")) {
-		return TransactionModifierType::TRANSACTION_DEFAULT_MODIFIER;
-	}
-	if (StringUtil::Equals(value, "TRANSACTION_READ_ONLY")) {
-		return TransactionModifierType::TRANSACTION_READ_ONLY;
-	}
-	if (StringUtil::Equals(value, "TRANSACTION_READ_WRITE")) {
-		return TransactionModifierType::TRANSACTION_READ_WRITE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTransactionModifierTypeValues(), 3, "TransactionModifierType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTransactionTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TransactionType::INVALID), "INVALID" },
+		{ static_cast(TransactionType::BEGIN_TRANSACTION), "BEGIN_TRANSACTION" },
+		{ static_cast(TransactionType::COMMIT), "COMMIT" },
+		{ static_cast(TransactionType::ROLLBACK), "ROLLBACK" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TransactionType value) {
-	switch(value) {
-	case TransactionType::INVALID:
-		return "INVALID";
-	case TransactionType::BEGIN_TRANSACTION:
-		return "BEGIN_TRANSACTION";
-	case TransactionType::COMMIT:
-		return "COMMIT";
-	case TransactionType::ROLLBACK:
-		return "ROLLBACK";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTransactionTypeValues(), 4, "TransactionType", static_cast(value));
 }
 
 template<>
 TransactionType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return TransactionType::INVALID;
-	}
-	if (StringUtil::Equals(value, "BEGIN_TRANSACTION")) {
-		return TransactionType::BEGIN_TRANSACTION;
-	}
-	if (StringUtil::Equals(value, "COMMIT")) {
-		return TransactionType::COMMIT;
-	}
-	if (StringUtil::Equals(value, "ROLLBACK")) {
-		return TransactionType::ROLLBACK;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTransactionTypeValues(), 4, "TransactionType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetTupleDataPinPropertiesValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(TupleDataPinProperties::INVALID), "INVALID" },
+		{ static_cast(TupleDataPinProperties::KEEP_EVERYTHING_PINNED), "KEEP_EVERYTHING_PINNED" },
+		{ static_cast(TupleDataPinProperties::UNPIN_AFTER_DONE), "UNPIN_AFTER_DONE" },
+		{ static_cast(TupleDataPinProperties::DESTROY_AFTER_DONE), "DESTROY_AFTER_DONE" },
+		{ static_cast(TupleDataPinProperties::ALREADY_PINNED), "ALREADY_PINNED" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(TupleDataPinProperties value) {
-	switch(value) {
-	case TupleDataPinProperties::INVALID:
-		return "INVALID";
-	case TupleDataPinProperties::KEEP_EVERYTHING_PINNED:
-		return "KEEP_EVERYTHING_PINNED";
-	case TupleDataPinProperties::UNPIN_AFTER_DONE:
-		return "UNPIN_AFTER_DONE";
-	case TupleDataPinProperties::DESTROY_AFTER_DONE:
-		return "DESTROY_AFTER_DONE";
-	case TupleDataPinProperties::ALREADY_PINNED:
-		return "ALREADY_PINNED";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetTupleDataPinPropertiesValues(), 5, "TupleDataPinProperties", static_cast(value));
 }
 
 template<>
 TupleDataPinProperties EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return TupleDataPinProperties::INVALID;
-	}
-	if (StringUtil::Equals(value, "KEEP_EVERYTHING_PINNED")) {
-		return TupleDataPinProperties::KEEP_EVERYTHING_PINNED;
-	}
-	if (StringUtil::Equals(value, "UNPIN_AFTER_DONE")) {
-		return TupleDataPinProperties::UNPIN_AFTER_DONE;
-	}
-	if (StringUtil::Equals(value, "DESTROY_AFTER_DONE")) {
-		return TupleDataPinProperties::DESTROY_AFTER_DONE;
-	}
-	if (StringUtil::Equals(value, "ALREADY_PINNED")) {
-		return TupleDataPinProperties::ALREADY_PINNED;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetTupleDataPinPropertiesValues(), 5, "TupleDataPinProperties", value));
+}
+
+const StringUtil::EnumStringLiteral *GetUndoFlagsValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(UndoFlags::EMPTY_ENTRY), "EMPTY_ENTRY" },
+		{ static_cast(UndoFlags::CATALOG_ENTRY), "CATALOG_ENTRY" },
+		{ static_cast(UndoFlags::INSERT_TUPLE), "INSERT_TUPLE" },
+		{ static_cast(UndoFlags::DELETE_TUPLE), "DELETE_TUPLE" },
+		{ static_cast(UndoFlags::UPDATE_TUPLE), "UPDATE_TUPLE" },
+		{ static_cast(UndoFlags::SEQUENCE_VALUE), "SEQUENCE_VALUE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(UndoFlags value) {
-	switch(value) {
-	case UndoFlags::EMPTY_ENTRY:
-		return "EMPTY_ENTRY";
-	case UndoFlags::CATALOG_ENTRY:
-		return "CATALOG_ENTRY";
-	case UndoFlags::INSERT_TUPLE:
-		return "INSERT_TUPLE";
-	case UndoFlags::DELETE_TUPLE:
-		return "DELETE_TUPLE";
-	case UndoFlags::UPDATE_TUPLE:
-		return "UPDATE_TUPLE";
-	case UndoFlags::SEQUENCE_VALUE:
-		return "SEQUENCE_VALUE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetUndoFlagsValues(), 6, "UndoFlags", static_cast(value));
 }
 
 template<>
 UndoFlags EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "EMPTY_ENTRY")) {
-		return UndoFlags::EMPTY_ENTRY;
-	}
-	if (StringUtil::Equals(value, "CATALOG_ENTRY")) {
-		return UndoFlags::CATALOG_ENTRY;
-	}
-	if (StringUtil::Equals(value, "INSERT_TUPLE")) {
-		return UndoFlags::INSERT_TUPLE;
-	}
-	if (StringUtil::Equals(value, "DELETE_TUPLE")) {
-		return UndoFlags::DELETE_TUPLE;
-	}
-	if (StringUtil::Equals(value, "UPDATE_TUPLE")) {
-		return UndoFlags::UPDATE_TUPLE;
-	}
-	if (StringUtil::Equals(value, "SEQUENCE_VALUE")) {
-		return UndoFlags::SEQUENCE_VALUE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetUndoFlagsValues(), 6, "UndoFlags", value));
+}
+
+const StringUtil::EnumStringLiteral *GetUnionInvalidReasonValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(UnionInvalidReason::VALID), "VALID" },
+		{ static_cast(UnionInvalidReason::TAG_OUT_OF_RANGE), "TAG_OUT_OF_RANGE" },
+		{ static_cast(UnionInvalidReason::NO_MEMBERS), "NO_MEMBERS" },
+		{ static_cast(UnionInvalidReason::VALIDITY_OVERLAP), "VALIDITY_OVERLAP" },
+		{ static_cast(UnionInvalidReason::TAG_MISMATCH), "TAG_MISMATCH" },
+		{ static_cast(UnionInvalidReason::NULL_TAG), "NULL_TAG" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(UnionInvalidReason value) {
-	switch(value) {
-	case UnionInvalidReason::VALID:
-		return "VALID";
-	case UnionInvalidReason::TAG_OUT_OF_RANGE:
-		return "TAG_OUT_OF_RANGE";
-	case UnionInvalidReason::NO_MEMBERS:
-		return "NO_MEMBERS";
-	case UnionInvalidReason::VALIDITY_OVERLAP:
-		return "VALIDITY_OVERLAP";
-	case UnionInvalidReason::TAG_MISMATCH:
-		return "TAG_MISMATCH";
-	case UnionInvalidReason::NULL_TAG:
-		return "NULL_TAG";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetUnionInvalidReasonValues(), 6, "UnionInvalidReason", static_cast(value));
 }
 
 template<>
 UnionInvalidReason EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "VALID")) {
-		return UnionInvalidReason::VALID;
-	}
-	if (StringUtil::Equals(value, "TAG_OUT_OF_RANGE")) {
-		return UnionInvalidReason::TAG_OUT_OF_RANGE;
-	}
-	if (StringUtil::Equals(value, "NO_MEMBERS")) {
-		return UnionInvalidReason::NO_MEMBERS;
-	}
-	if (StringUtil::Equals(value, "VALIDITY_OVERLAP")) {
-		return UnionInvalidReason::VALIDITY_OVERLAP;
-	}
-	if (StringUtil::Equals(value, "TAG_MISMATCH")) {
-		return UnionInvalidReason::TAG_MISMATCH;
-	}
-	if (StringUtil::Equals(value, "NULL_TAG")) {
-		return UnionInvalidReason::NULL_TAG;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetUnionInvalidReasonValues(), 6, "UnionInvalidReason", value));
+}
+
+const StringUtil::EnumStringLiteral *GetVectorAuxiliaryDataTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(VectorAuxiliaryDataType::ARROW_AUXILIARY), "ARROW_AUXILIARY" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(VectorAuxiliaryDataType value) {
-	switch(value) {
-	case VectorAuxiliaryDataType::ARROW_AUXILIARY:
-		return "ARROW_AUXILIARY";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetVectorAuxiliaryDataTypeValues(), 1, "VectorAuxiliaryDataType", static_cast(value));
 }
 
 template<>
 VectorAuxiliaryDataType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ARROW_AUXILIARY")) {
-		return VectorAuxiliaryDataType::ARROW_AUXILIARY;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetVectorAuxiliaryDataTypeValues(), 1, "VectorAuxiliaryDataType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetVectorBufferTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(VectorBufferType::STANDARD_BUFFER), "STANDARD_BUFFER" },
+		{ static_cast(VectorBufferType::DICTIONARY_BUFFER), "DICTIONARY_BUFFER" },
+		{ static_cast(VectorBufferType::VECTOR_CHILD_BUFFER), "VECTOR_CHILD_BUFFER" },
+		{ static_cast(VectorBufferType::STRING_BUFFER), "STRING_BUFFER" },
+		{ static_cast(VectorBufferType::FSST_BUFFER), "FSST_BUFFER" },
+		{ static_cast(VectorBufferType::STRUCT_BUFFER), "STRUCT_BUFFER" },
+		{ static_cast(VectorBufferType::LIST_BUFFER), "LIST_BUFFER" },
+		{ static_cast(VectorBufferType::MANAGED_BUFFER), "MANAGED_BUFFER" },
+		{ static_cast(VectorBufferType::OPAQUE_BUFFER), "OPAQUE_BUFFER" },
+		{ static_cast(VectorBufferType::ARRAY_BUFFER), "ARRAY_BUFFER" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(VectorBufferType value) {
-	switch(value) {
-	case VectorBufferType::STANDARD_BUFFER:
-		return "STANDARD_BUFFER";
-	case VectorBufferType::DICTIONARY_BUFFER:
-		return "DICTIONARY_BUFFER";
-	case VectorBufferType::VECTOR_CHILD_BUFFER:
-		return "VECTOR_CHILD_BUFFER";
-	case VectorBufferType::STRING_BUFFER:
-		return "STRING_BUFFER";
-	case VectorBufferType::FSST_BUFFER:
-		return "FSST_BUFFER";
-	case VectorBufferType::STRUCT_BUFFER:
-		return "STRUCT_BUFFER";
-	case VectorBufferType::LIST_BUFFER:
-		return "LIST_BUFFER";
-	case VectorBufferType::MANAGED_BUFFER:
-		return "MANAGED_BUFFER";
-	case VectorBufferType::OPAQUE_BUFFER:
-		return "OPAQUE_BUFFER";
-	case VectorBufferType::ARRAY_BUFFER:
-		return "ARRAY_BUFFER";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetVectorBufferTypeValues(), 10, "VectorBufferType", static_cast(value));
 }
 
 template<>
 VectorBufferType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "STANDARD_BUFFER")) {
-		return VectorBufferType::STANDARD_BUFFER;
-	}
-	if (StringUtil::Equals(value, "DICTIONARY_BUFFER")) {
-		return VectorBufferType::DICTIONARY_BUFFER;
-	}
-	if (StringUtil::Equals(value, "VECTOR_CHILD_BUFFER")) {
-		return VectorBufferType::VECTOR_CHILD_BUFFER;
-	}
-	if (StringUtil::Equals(value, "STRING_BUFFER")) {
-		return VectorBufferType::STRING_BUFFER;
-	}
-	if (StringUtil::Equals(value, "FSST_BUFFER")) {
-		return VectorBufferType::FSST_BUFFER;
-	}
-	if (StringUtil::Equals(value, "STRUCT_BUFFER")) {
-		return VectorBufferType::STRUCT_BUFFER;
-	}
-	if (StringUtil::Equals(value, "LIST_BUFFER")) {
-		return VectorBufferType::LIST_BUFFER;
-	}
-	if (StringUtil::Equals(value, "MANAGED_BUFFER")) {
-		return VectorBufferType::MANAGED_BUFFER;
-	}
-	if (StringUtil::Equals(value, "OPAQUE_BUFFER")) {
-		return VectorBufferType::OPAQUE_BUFFER;
-	}
-	if (StringUtil::Equals(value, "ARRAY_BUFFER")) {
-		return VectorBufferType::ARRAY_BUFFER;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetVectorBufferTypeValues(), 10, "VectorBufferType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetVectorTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(VectorType::FLAT_VECTOR), "FLAT_VECTOR" },
+		{ static_cast(VectorType::FSST_VECTOR), "FSST_VECTOR" },
+		{ static_cast(VectorType::CONSTANT_VECTOR), "CONSTANT_VECTOR" },
+		{ static_cast(VectorType::DICTIONARY_VECTOR), "DICTIONARY_VECTOR" },
+		{ static_cast(VectorType::SEQUENCE_VECTOR), "SEQUENCE_VECTOR" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(VectorType value) {
-	switch(value) {
-	case VectorType::FLAT_VECTOR:
-		return "FLAT_VECTOR";
-	case VectorType::FSST_VECTOR:
-		return "FSST_VECTOR";
-	case VectorType::CONSTANT_VECTOR:
-		return "CONSTANT_VECTOR";
-	case VectorType::DICTIONARY_VECTOR:
-		return "DICTIONARY_VECTOR";
-	case VectorType::SEQUENCE_VECTOR:
-		return "SEQUENCE_VECTOR";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetVectorTypeValues(), 5, "VectorType", static_cast(value));
 }
 
 template<>
 VectorType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "FLAT_VECTOR")) {
-		return VectorType::FLAT_VECTOR;
-	}
-	if (StringUtil::Equals(value, "FSST_VECTOR")) {
-		return VectorType::FSST_VECTOR;
-	}
-	if (StringUtil::Equals(value, "CONSTANT_VECTOR")) {
-		return VectorType::CONSTANT_VECTOR;
-	}
-	if (StringUtil::Equals(value, "DICTIONARY_VECTOR")) {
-		return VectorType::DICTIONARY_VECTOR;
-	}
-	if (StringUtil::Equals(value, "SEQUENCE_VECTOR")) {
-		return VectorType::SEQUENCE_VECTOR;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetVectorTypeValues(), 5, "VectorType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetVerificationTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(VerificationType::ORIGINAL), "ORIGINAL" },
+		{ static_cast(VerificationType::COPIED), "COPIED" },
+		{ static_cast(VerificationType::DESERIALIZED), "DESERIALIZED" },
+		{ static_cast(VerificationType::PARSED), "PARSED" },
+		{ static_cast(VerificationType::UNOPTIMIZED), "UNOPTIMIZED" },
+		{ static_cast(VerificationType::NO_OPERATOR_CACHING), "NO_OPERATOR_CACHING" },
+		{ static_cast(VerificationType::PREPARED), "PREPARED" },
+		{ static_cast(VerificationType::EXTERNAL), "EXTERNAL" },
+		{ static_cast(VerificationType::FETCH_ROW_AS_SCAN), "FETCH_ROW_AS_SCAN" },
+		{ static_cast(VerificationType::INVALID), "INVALID" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(VerificationType value) {
-	switch(value) {
-	case VerificationType::ORIGINAL:
-		return "ORIGINAL";
-	case VerificationType::COPIED:
-		return "COPIED";
-	case VerificationType::DESERIALIZED:
-		return "DESERIALIZED";
-	case VerificationType::PARSED:
-		return "PARSED";
-	case VerificationType::UNOPTIMIZED:
-		return "UNOPTIMIZED";
-	case VerificationType::NO_OPERATOR_CACHING:
-		return "NO_OPERATOR_CACHING";
-	case VerificationType::PREPARED:
-		return "PREPARED";
-	case VerificationType::EXTERNAL:
-		return "EXTERNAL";
-	case VerificationType::FETCH_ROW_AS_SCAN:
-		return "FETCH_ROW_AS_SCAN";
-	case VerificationType::INVALID:
-		return "INVALID";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetVerificationTypeValues(), 10, "VerificationType", static_cast(value));
 }
 
 template<>
 VerificationType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "ORIGINAL")) {
-		return VerificationType::ORIGINAL;
-	}
-	if (StringUtil::Equals(value, "COPIED")) {
-		return VerificationType::COPIED;
-	}
-	if (StringUtil::Equals(value, "DESERIALIZED")) {
-		return VerificationType::DESERIALIZED;
-	}
-	if (StringUtil::Equals(value, "PARSED")) {
-		return VerificationType::PARSED;
-	}
-	if (StringUtil::Equals(value, "UNOPTIMIZED")) {
-		return VerificationType::UNOPTIMIZED;
-	}
-	if (StringUtil::Equals(value, "NO_OPERATOR_CACHING")) {
-		return VerificationType::NO_OPERATOR_CACHING;
-	}
-	if (StringUtil::Equals(value, "PREPARED")) {
-		return VerificationType::PREPARED;
-	}
-	if (StringUtil::Equals(value, "EXTERNAL")) {
-		return VerificationType::EXTERNAL;
-	}
-	if (StringUtil::Equals(value, "FETCH_ROW_AS_SCAN")) {
-		return VerificationType::FETCH_ROW_AS_SCAN;
-	}
-	if (StringUtil::Equals(value, "INVALID")) {
-		return VerificationType::INVALID;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetVerificationTypeValues(), 10, "VerificationType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetVerifyExistenceTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(VerifyExistenceType::APPEND), "APPEND" },
+		{ static_cast(VerifyExistenceType::APPEND_FK), "APPEND_FK" },
+		{ static_cast(VerifyExistenceType::DELETE_FK), "DELETE_FK" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(VerifyExistenceType value) {
-	switch(value) {
-	case VerifyExistenceType::APPEND:
-		return "APPEND";
-	case VerifyExistenceType::APPEND_FK:
-		return "APPEND_FK";
-	case VerifyExistenceType::DELETE_FK:
-		return "DELETE_FK";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetVerifyExistenceTypeValues(), 3, "VerifyExistenceType", static_cast(value));
 }
 
 template<>
 VerifyExistenceType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "APPEND")) {
-		return VerifyExistenceType::APPEND;
-	}
-	if (StringUtil::Equals(value, "APPEND_FK")) {
-		return VerifyExistenceType::APPEND_FK;
-	}
-	if (StringUtil::Equals(value, "DELETE_FK")) {
-		return VerifyExistenceType::DELETE_FK;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetVerifyExistenceTypeValues(), 3, "VerifyExistenceType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetWALTypeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(WALType::INVALID), "INVALID" },
+		{ static_cast(WALType::CREATE_TABLE), "CREATE_TABLE" },
+		{ static_cast(WALType::DROP_TABLE), "DROP_TABLE" },
+		{ static_cast(WALType::CREATE_SCHEMA), "CREATE_SCHEMA" },
+		{ static_cast(WALType::DROP_SCHEMA), "DROP_SCHEMA" },
+		{ static_cast(WALType::CREATE_VIEW), "CREATE_VIEW" },
+		{ static_cast(WALType::DROP_VIEW), "DROP_VIEW" },
+		{ static_cast(WALType::CREATE_SEQUENCE), "CREATE_SEQUENCE" },
+		{ static_cast(WALType::DROP_SEQUENCE), "DROP_SEQUENCE" },
+		{ static_cast(WALType::SEQUENCE_VALUE), "SEQUENCE_VALUE" },
+		{ static_cast(WALType::CREATE_MACRO), "CREATE_MACRO" },
+		{ static_cast(WALType::DROP_MACRO), "DROP_MACRO" },
+		{ static_cast(WALType::CREATE_TYPE), "CREATE_TYPE" },
+		{ static_cast(WALType::DROP_TYPE), "DROP_TYPE" },
+		{ static_cast(WALType::ALTER_INFO), "ALTER_INFO" },
+		{ static_cast(WALType::CREATE_TABLE_MACRO), "CREATE_TABLE_MACRO" },
+		{ static_cast(WALType::DROP_TABLE_MACRO), "DROP_TABLE_MACRO" },
+		{ static_cast(WALType::CREATE_INDEX), "CREATE_INDEX" },
+		{ static_cast(WALType::DROP_INDEX), "DROP_INDEX" },
+		{ static_cast(WALType::USE_TABLE), "USE_TABLE" },
+		{ static_cast(WALType::INSERT_TUPLE), "INSERT_TUPLE" },
+		{ static_cast(WALType::DELETE_TUPLE), "DELETE_TUPLE" },
+		{ static_cast(WALType::UPDATE_TUPLE), "UPDATE_TUPLE" },
+		{ static_cast(WALType::ROW_GROUP_DATA), "ROW_GROUP_DATA" },
+		{ static_cast(WALType::WAL_VERSION), "WAL_VERSION" },
+		{ static_cast(WALType::CHECKPOINT), "CHECKPOINT" },
+		{ static_cast(WALType::WAL_FLUSH), "WAL_FLUSH" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(WALType value) {
-	switch(value) {
-	case WALType::INVALID:
-		return "INVALID";
-	case WALType::CREATE_TABLE:
-		return "CREATE_TABLE";
-	case WALType::DROP_TABLE:
-		return "DROP_TABLE";
-	case WALType::CREATE_SCHEMA:
-		return "CREATE_SCHEMA";
-	case WALType::DROP_SCHEMA:
-		return "DROP_SCHEMA";
-	case WALType::CREATE_VIEW:
-		return "CREATE_VIEW";
-	case WALType::DROP_VIEW:
-		return "DROP_VIEW";
-	case WALType::CREATE_SEQUENCE:
-		return "CREATE_SEQUENCE";
-	case WALType::DROP_SEQUENCE:
-		return "DROP_SEQUENCE";
-	case WALType::SEQUENCE_VALUE:
-		return "SEQUENCE_VALUE";
-	case WALType::CREATE_MACRO:
-		return "CREATE_MACRO";
-	case WALType::DROP_MACRO:
-		return "DROP_MACRO";
-	case WALType::CREATE_TYPE:
-		return "CREATE_TYPE";
-	case WALType::DROP_TYPE:
-		return "DROP_TYPE";
-	case WALType::ALTER_INFO:
-		return "ALTER_INFO";
-	case WALType::CREATE_TABLE_MACRO:
-		return "CREATE_TABLE_MACRO";
-	case WALType::DROP_TABLE_MACRO:
-		return "DROP_TABLE_MACRO";
-	case WALType::CREATE_INDEX:
-		return "CREATE_INDEX";
-	case WALType::DROP_INDEX:
-		return "DROP_INDEX";
-	case WALType::USE_TABLE:
-		return "USE_TABLE";
-	case WALType::INSERT_TUPLE:
-		return "INSERT_TUPLE";
-	case WALType::DELETE_TUPLE:
-		return "DELETE_TUPLE";
-	case WALType::UPDATE_TUPLE:
-		return "UPDATE_TUPLE";
-	case WALType::ROW_GROUP_DATA:
-		return "ROW_GROUP_DATA";
-	case WALType::WAL_VERSION:
-		return "WAL_VERSION";
-	case WALType::CHECKPOINT:
-		return "CHECKPOINT";
-	case WALType::WAL_FLUSH:
-		return "WAL_FLUSH";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetWALTypeValues(), 27, "WALType", static_cast(value));
 }
 
 template<>
 WALType EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return WALType::INVALID;
-	}
-	if (StringUtil::Equals(value, "CREATE_TABLE")) {
-		return WALType::CREATE_TABLE;
-	}
-	if (StringUtil::Equals(value, "DROP_TABLE")) {
-		return WALType::DROP_TABLE;
-	}
-	if (StringUtil::Equals(value, "CREATE_SCHEMA")) {
-		return WALType::CREATE_SCHEMA;
-	}
-	if (StringUtil::Equals(value, "DROP_SCHEMA")) {
-		return WALType::DROP_SCHEMA;
-	}
-	if (StringUtil::Equals(value, "CREATE_VIEW")) {
-		return WALType::CREATE_VIEW;
-	}
-	if (StringUtil::Equals(value, "DROP_VIEW")) {
-		return WALType::DROP_VIEW;
-	}
-	if (StringUtil::Equals(value, "CREATE_SEQUENCE")) {
-		return WALType::CREATE_SEQUENCE;
-	}
-	if (StringUtil::Equals(value, "DROP_SEQUENCE")) {
-		return WALType::DROP_SEQUENCE;
-	}
-	if (StringUtil::Equals(value, "SEQUENCE_VALUE")) {
-		return WALType::SEQUENCE_VALUE;
-	}
-	if (StringUtil::Equals(value, "CREATE_MACRO")) {
-		return WALType::CREATE_MACRO;
-	}
-	if (StringUtil::Equals(value, "DROP_MACRO")) {
-		return WALType::DROP_MACRO;
-	}
-	if (StringUtil::Equals(value, "CREATE_TYPE")) {
-		return WALType::CREATE_TYPE;
-	}
-	if (StringUtil::Equals(value, "DROP_TYPE")) {
-		return WALType::DROP_TYPE;
-	}
-	if (StringUtil::Equals(value, "ALTER_INFO")) {
-		return WALType::ALTER_INFO;
-	}
-	if (StringUtil::Equals(value, "CREATE_TABLE_MACRO")) {
-		return WALType::CREATE_TABLE_MACRO;
-	}
-	if (StringUtil::Equals(value, "DROP_TABLE_MACRO")) {
-		return WALType::DROP_TABLE_MACRO;
-	}
-	if (StringUtil::Equals(value, "CREATE_INDEX")) {
-		return WALType::CREATE_INDEX;
-	}
-	if (StringUtil::Equals(value, "DROP_INDEX")) {
-		return WALType::DROP_INDEX;
-	}
-	if (StringUtil::Equals(value, "USE_TABLE")) {
-		return WALType::USE_TABLE;
-	}
-	if (StringUtil::Equals(value, "INSERT_TUPLE")) {
-		return WALType::INSERT_TUPLE;
-	}
-	if (StringUtil::Equals(value, "DELETE_TUPLE")) {
-		return WALType::DELETE_TUPLE;
-	}
-	if (StringUtil::Equals(value, "UPDATE_TUPLE")) {
-		return WALType::UPDATE_TUPLE;
-	}
-	if (StringUtil::Equals(value, "ROW_GROUP_DATA")) {
-		return WALType::ROW_GROUP_DATA;
-	}
-	if (StringUtil::Equals(value, "WAL_VERSION")) {
-		return WALType::WAL_VERSION;
-	}
-	if (StringUtil::Equals(value, "CHECKPOINT")) {
-		return WALType::CHECKPOINT;
-	}
-	if (StringUtil::Equals(value, "WAL_FLUSH")) {
-		return WALType::WAL_FLUSH;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetWALTypeValues(), 27, "WALType", value));
+}
+
+const StringUtil::EnumStringLiteral *GetWindowAggregationModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(WindowAggregationMode::WINDOW), "WINDOW" },
+		{ static_cast(WindowAggregationMode::COMBINE), "COMBINE" },
+		{ static_cast(WindowAggregationMode::SEPARATE), "SEPARATE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(WindowAggregationMode value) {
-	switch(value) {
-	case WindowAggregationMode::WINDOW:
-		return "WINDOW";
-	case WindowAggregationMode::COMBINE:
-		return "COMBINE";
-	case WindowAggregationMode::SEPARATE:
-		return "SEPARATE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetWindowAggregationModeValues(), 3, "WindowAggregationMode", static_cast(value));
 }
 
 template<>
 WindowAggregationMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "WINDOW")) {
-		return WindowAggregationMode::WINDOW;
-	}
-	if (StringUtil::Equals(value, "COMBINE")) {
-		return WindowAggregationMode::COMBINE;
-	}
-	if (StringUtil::Equals(value, "SEPARATE")) {
-		return WindowAggregationMode::SEPARATE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetWindowAggregationModeValues(), 3, "WindowAggregationMode", value));
+}
+
+const StringUtil::EnumStringLiteral *GetWindowBoundaryValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(WindowBoundary::INVALID), "INVALID" },
+		{ static_cast(WindowBoundary::UNBOUNDED_PRECEDING), "UNBOUNDED_PRECEDING" },
+		{ static_cast(WindowBoundary::UNBOUNDED_FOLLOWING), "UNBOUNDED_FOLLOWING" },
+		{ static_cast(WindowBoundary::CURRENT_ROW_RANGE), "CURRENT_ROW_RANGE" },
+		{ static_cast(WindowBoundary::CURRENT_ROW_ROWS), "CURRENT_ROW_ROWS" },
+		{ static_cast(WindowBoundary::EXPR_PRECEDING_ROWS), "EXPR_PRECEDING_ROWS" },
+		{ static_cast(WindowBoundary::EXPR_FOLLOWING_ROWS), "EXPR_FOLLOWING_ROWS" },
+		{ static_cast(WindowBoundary::EXPR_PRECEDING_RANGE), "EXPR_PRECEDING_RANGE" },
+		{ static_cast(WindowBoundary::EXPR_FOLLOWING_RANGE), "EXPR_FOLLOWING_RANGE" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(WindowBoundary value) {
-	switch(value) {
-	case WindowBoundary::INVALID:
-		return "INVALID";
-	case WindowBoundary::UNBOUNDED_PRECEDING:
-		return "UNBOUNDED_PRECEDING";
-	case WindowBoundary::UNBOUNDED_FOLLOWING:
-		return "UNBOUNDED_FOLLOWING";
-	case WindowBoundary::CURRENT_ROW_RANGE:
-		return "CURRENT_ROW_RANGE";
-	case WindowBoundary::CURRENT_ROW_ROWS:
-		return "CURRENT_ROW_ROWS";
-	case WindowBoundary::EXPR_PRECEDING_ROWS:
-		return "EXPR_PRECEDING_ROWS";
-	case WindowBoundary::EXPR_FOLLOWING_ROWS:
-		return "EXPR_FOLLOWING_ROWS";
-	case WindowBoundary::EXPR_PRECEDING_RANGE:
-		return "EXPR_PRECEDING_RANGE";
-	case WindowBoundary::EXPR_FOLLOWING_RANGE:
-		return "EXPR_FOLLOWING_RANGE";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetWindowBoundaryValues(), 9, "WindowBoundary", static_cast(value));
 }
 
 template<>
 WindowBoundary EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "INVALID")) {
-		return WindowBoundary::INVALID;
-	}
-	if (StringUtil::Equals(value, "UNBOUNDED_PRECEDING")) {
-		return WindowBoundary::UNBOUNDED_PRECEDING;
-	}
-	if (StringUtil::Equals(value, "UNBOUNDED_FOLLOWING")) {
-		return WindowBoundary::UNBOUNDED_FOLLOWING;
-	}
-	if (StringUtil::Equals(value, "CURRENT_ROW_RANGE")) {
-		return WindowBoundary::CURRENT_ROW_RANGE;
-	}
-	if (StringUtil::Equals(value, "CURRENT_ROW_ROWS")) {
-		return WindowBoundary::CURRENT_ROW_ROWS;
-	}
-	if (StringUtil::Equals(value, "EXPR_PRECEDING_ROWS")) {
-		return WindowBoundary::EXPR_PRECEDING_ROWS;
-	}
-	if (StringUtil::Equals(value, "EXPR_FOLLOWING_ROWS")) {
-		return WindowBoundary::EXPR_FOLLOWING_ROWS;
-	}
-	if (StringUtil::Equals(value, "EXPR_PRECEDING_RANGE")) {
-		return WindowBoundary::EXPR_PRECEDING_RANGE;
-	}
-	if (StringUtil::Equals(value, "EXPR_FOLLOWING_RANGE")) {
-		return WindowBoundary::EXPR_FOLLOWING_RANGE;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetWindowBoundaryValues(), 9, "WindowBoundary", value));
+}
+
+const StringUtil::EnumStringLiteral *GetWindowExcludeModeValues() {
+	static constexpr StringUtil::EnumStringLiteral values[] {
+		{ static_cast(WindowExcludeMode::NO_OTHER), "NO_OTHER" },
+		{ static_cast(WindowExcludeMode::CURRENT_ROW), "CURRENT_ROW" },
+		{ static_cast(WindowExcludeMode::GROUP), "GROUP" },
+		{ static_cast(WindowExcludeMode::TIES), "TIES" }
+	};
+	return values;
 }
 
 template<>
 const char* EnumUtil::ToChars(WindowExcludeMode value) {
-	switch(value) {
-	case WindowExcludeMode::NO_OTHER:
-		return "NO_OTHER";
-	case WindowExcludeMode::CURRENT_ROW:
-		return "CURRENT_ROW";
-	case WindowExcludeMode::GROUP:
-		return "GROUP";
-	case WindowExcludeMode::TIES:
-		return "TIES";
-	default:
-		throw NotImplementedException(StringUtil::Format("Enum value: '%d' not implemented in ToChars", value));
-	}
+	return StringUtil::EnumToString(GetWindowExcludeModeValues(), 4, "WindowExcludeMode", static_cast(value));
 }
 
 template<>
 WindowExcludeMode EnumUtil::FromString(const char *value) {
-	if (StringUtil::Equals(value, "NO_OTHER")) {
-		return WindowExcludeMode::NO_OTHER;
-	}
-	if (StringUtil::Equals(value, "CURRENT_ROW")) {
-		return WindowExcludeMode::CURRENT_ROW;
-	}
-	if (StringUtil::Equals(value, "GROUP")) {
-		return WindowExcludeMode::GROUP;
-	}
-	if (StringUtil::Equals(value, "TIES")) {
-		return WindowExcludeMode::TIES;
-	}
-	throw NotImplementedException(StringUtil::Format("Enum value: '%s' not implemented in FromString", value));
+	return static_cast(StringUtil::StringToEnum(GetWindowExcludeModeValues(), 4, "WindowExcludeMode", value));
 }
 
 }
diff --git a/src/duckdb/src/common/enums/compression_type.cpp b/src/duckdb/src/common/enums/compression_type.cpp
index 3b9930cf..b0528a7d 100644
--- a/src/duckdb/src/common/enums/compression_type.cpp
+++ b/src/duckdb/src/common/enums/compression_type.cpp
@@ -40,10 +40,14 @@ CompressionType CompressionTypeFromString(const string &str) {
 		return CompressionType::COMPRESSION_CHIMP;
 	} else if (compression == "patas") {
 		return CompressionType::COMPRESSION_PATAS;
+	} else if (compression == "zstd") {
+		return CompressionType::COMPRESSION_ZSTD;
 	} else if (compression == "alp") {
 		return CompressionType::COMPRESSION_ALP;
 	} else if (compression == "alprd") {
 		return CompressionType::COMPRESSION_ALPRD;
+	} else if (compression == "roaring") {
+		return CompressionType::COMPRESSION_ROARING;
 	} else {
 		return CompressionType::COMPRESSION_AUTO;
 	}
@@ -71,10 +75,14 @@ string CompressionTypeToString(CompressionType type) {
 		return "Chimp";
 	case CompressionType::COMPRESSION_PATAS:
 		return "Patas";
+	case CompressionType::COMPRESSION_ZSTD:
+		return "ZSTD";
 	case CompressionType::COMPRESSION_ALP:
 		return "ALP";
 	case CompressionType::COMPRESSION_ALPRD:
 		return "ALPRD";
+	case CompressionType::COMPRESSION_ROARING:
+		return "Roaring";
 	default:
 		throw InternalException("Unrecognized compression type!");
 	}
diff --git a/src/duckdb/src/common/enums/metric_type.cpp b/src/duckdb/src/common/enums/metric_type.cpp
index a317f2d6..94a75cc1 100644
--- a/src/duckdb/src/common/enums/metric_type.cpp
+++ b/src/duckdb/src/common/enums/metric_type.cpp
@@ -16,6 +16,7 @@ profiler_settings_t MetricsUtils::GetOptimizerMetrics() {
         MetricsType::OPTIMIZER_EXPRESSION_REWRITER,
         MetricsType::OPTIMIZER_FILTER_PULLUP,
         MetricsType::OPTIMIZER_FILTER_PUSHDOWN,
+        MetricsType::OPTIMIZER_EMPTY_RESULT_PULLUP,
         MetricsType::OPTIMIZER_CTE_FILTER_PUSHER,
         MetricsType::OPTIMIZER_REGEX_RANGE,
         MetricsType::OPTIMIZER_IN_CLAUSE,
@@ -33,9 +34,11 @@ profiler_settings_t MetricsUtils::GetOptimizerMetrics() {
         MetricsType::OPTIMIZER_COMPRESSED_MATERIALIZATION,
         MetricsType::OPTIMIZER_DUPLICATE_GROUPS,
         MetricsType::OPTIMIZER_REORDER_FILTER,
+        MetricsType::OPTIMIZER_SAMPLING_PUSHDOWN,
         MetricsType::OPTIMIZER_JOIN_FILTER_PUSHDOWN,
         MetricsType::OPTIMIZER_EXTENSION,
         MetricsType::OPTIMIZER_MATERIALIZED_CTE,
+        MetricsType::OPTIMIZER_SUM_REWRITER,
     };
 }
 
@@ -60,6 +63,8 @@ MetricsType MetricsUtils::GetOptimizerMetricByType(OptimizerType type) {
             return MetricsType::OPTIMIZER_FILTER_PULLUP;
         case OptimizerType::FILTER_PUSHDOWN:
             return MetricsType::OPTIMIZER_FILTER_PUSHDOWN;
+        case OptimizerType::EMPTY_RESULT_PULLUP:
+            return MetricsType::OPTIMIZER_EMPTY_RESULT_PULLUP;
         case OptimizerType::CTE_FILTER_PUSHER:
             return MetricsType::OPTIMIZER_CTE_FILTER_PUSHER;
         case OptimizerType::REGEX_RANGE:
@@ -94,12 +99,16 @@ MetricsType MetricsUtils::GetOptimizerMetricByType(OptimizerType type) {
             return MetricsType::OPTIMIZER_DUPLICATE_GROUPS;
         case OptimizerType::REORDER_FILTER:
             return MetricsType::OPTIMIZER_REORDER_FILTER;
+        case OptimizerType::SAMPLING_PUSHDOWN:
+            return MetricsType::OPTIMIZER_SAMPLING_PUSHDOWN;
         case OptimizerType::JOIN_FILTER_PUSHDOWN:
             return MetricsType::OPTIMIZER_JOIN_FILTER_PUSHDOWN;
         case OptimizerType::EXTENSION:
             return MetricsType::OPTIMIZER_EXTENSION;
         case OptimizerType::MATERIALIZED_CTE:
             return MetricsType::OPTIMIZER_MATERIALIZED_CTE;
+        case OptimizerType::SUM_REWRITER:
+            return MetricsType::OPTIMIZER_SUM_REWRITER;
        default:
             throw InternalException("OptimizerType %s cannot be converted to a MetricsType", EnumUtil::ToString(type));
     };
@@ -113,6 +122,8 @@ OptimizerType MetricsUtils::GetOptimizerTypeByMetric(MetricsType type) {
             return OptimizerType::FILTER_PULLUP;
         case MetricsType::OPTIMIZER_FILTER_PUSHDOWN:
             return OptimizerType::FILTER_PUSHDOWN;
+        case MetricsType::OPTIMIZER_EMPTY_RESULT_PULLUP:
+            return OptimizerType::EMPTY_RESULT_PULLUP;
         case MetricsType::OPTIMIZER_CTE_FILTER_PUSHER:
             return OptimizerType::CTE_FILTER_PUSHER;
         case MetricsType::OPTIMIZER_REGEX_RANGE:
@@ -147,12 +158,16 @@ OptimizerType MetricsUtils::GetOptimizerTypeByMetric(MetricsType type) {
             return OptimizerType::DUPLICATE_GROUPS;
         case MetricsType::OPTIMIZER_REORDER_FILTER:
             return OptimizerType::REORDER_FILTER;
+        case MetricsType::OPTIMIZER_SAMPLING_PUSHDOWN:
+            return OptimizerType::SAMPLING_PUSHDOWN;
         case MetricsType::OPTIMIZER_JOIN_FILTER_PUSHDOWN:
             return OptimizerType::JOIN_FILTER_PUSHDOWN;
         case MetricsType::OPTIMIZER_EXTENSION:
             return OptimizerType::EXTENSION;
         case MetricsType::OPTIMIZER_MATERIALIZED_CTE:
             return OptimizerType::MATERIALIZED_CTE;
+        case MetricsType::OPTIMIZER_SUM_REWRITER:
+            return OptimizerType::SUM_REWRITER;
     default:
             return OptimizerType::INVALID;
     };
@@ -163,6 +178,7 @@ bool MetricsUtils::IsOptimizerMetric(MetricsType type) {
         case MetricsType::OPTIMIZER_EXPRESSION_REWRITER:
         case MetricsType::OPTIMIZER_FILTER_PULLUP:
         case MetricsType::OPTIMIZER_FILTER_PUSHDOWN:
+        case MetricsType::OPTIMIZER_EMPTY_RESULT_PULLUP:
         case MetricsType::OPTIMIZER_CTE_FILTER_PUSHER:
         case MetricsType::OPTIMIZER_REGEX_RANGE:
         case MetricsType::OPTIMIZER_IN_CLAUSE:
@@ -180,9 +196,11 @@ bool MetricsUtils::IsOptimizerMetric(MetricsType type) {
         case MetricsType::OPTIMIZER_COMPRESSED_MATERIALIZATION:
         case MetricsType::OPTIMIZER_DUPLICATE_GROUPS:
         case MetricsType::OPTIMIZER_REORDER_FILTER:
+        case MetricsType::OPTIMIZER_SAMPLING_PUSHDOWN:
         case MetricsType::OPTIMIZER_JOIN_FILTER_PUSHDOWN:
         case MetricsType::OPTIMIZER_EXTENSION:
         case MetricsType::OPTIMIZER_MATERIALIZED_CTE:
+        case MetricsType::OPTIMIZER_SUM_REWRITER:
             return true;
         default:
             return false;
diff --git a/src/duckdb/src/common/enums/optimizer_type.cpp b/src/duckdb/src/common/enums/optimizer_type.cpp
index 460bbb3a..f2555dc5 100644
--- a/src/duckdb/src/common/enums/optimizer_type.cpp
+++ b/src/duckdb/src/common/enums/optimizer_type.cpp
@@ -15,6 +15,7 @@ static const DefaultOptimizerType internal_optimizer_types[] = {
     {"expression_rewriter", OptimizerType::EXPRESSION_REWRITER},
     {"filter_pullup", OptimizerType::FILTER_PULLUP},
     {"filter_pushdown", OptimizerType::FILTER_PUSHDOWN},
+    {"empty_result_pullup", OptimizerType::EMPTY_RESULT_PULLUP},
     {"cte_filter_pusher", OptimizerType::CTE_FILTER_PUSHER},
     {"regex_range", OptimizerType::REGEX_RANGE},
     {"in_clause", OptimizerType::IN_CLAUSE},
@@ -32,9 +33,11 @@ static const DefaultOptimizerType internal_optimizer_types[] = {
     {"compressed_materialization", OptimizerType::COMPRESSED_MATERIALIZATION},
     {"duplicate_groups", OptimizerType::DUPLICATE_GROUPS},
     {"reorder_filter", OptimizerType::REORDER_FILTER},
+    {"sampling_pushdown", OptimizerType::SAMPLING_PUSHDOWN},
     {"join_filter_pushdown", OptimizerType::JOIN_FILTER_PUSHDOWN},
     {"extension", OptimizerType::EXTENSION},
     {"materialized_cte", OptimizerType::MATERIALIZED_CTE},
+    {"sum_rewriter", OptimizerType::SUM_REWRITER},
     {nullptr, OptimizerType::INVALID}};
 
 string OptimizerTypeToString(OptimizerType type) {
diff --git a/src/duckdb/src/common/enums/physical_operator_type.cpp b/src/duckdb/src/common/enums/physical_operator_type.cpp
index a48f4407..f520cb44 100644
--- a/src/duckdb/src/common/enums/physical_operator_type.cpp
+++ b/src/duckdb/src/common/enums/physical_operator_type.cpp
@@ -41,6 +41,8 @@ string PhysicalOperatorToString(PhysicalOperatorType type) {
 		return "HASH_GROUP_BY";
 	case PhysicalOperatorType::PERFECT_HASH_GROUP_BY:
 		return "PERFECT_HASH_GROUP_BY";
+	case PhysicalOperatorType::PARTITIONED_AGGREGATE:
+		return "PARTITIONED_AGGREGATE";
 	case PhysicalOperatorType::FILTER:
 		return "FILTER";
 	case PhysicalOperatorType::PROJECTION:
diff --git a/src/duckdb/src/common/error_data.cpp b/src/duckdb/src/common/error_data.cpp
index d0a427cc..08163947 100644
--- a/src/duckdb/src/common/error_data.cpp
+++ b/src/duckdb/src/common/error_data.cpp
@@ -98,7 +98,7 @@ void ErrorData::ConvertErrorToJSON() {
 		// empty or already JSON
 		return;
 	}
-	raw_message = StringUtil::ToJSONMap(type, raw_message, extra_info);
+	raw_message = StringUtil::ExceptionToJSONMap(type, raw_message, extra_info);
 	final_message = raw_message;
 }
 
diff --git a/src/duckdb/src/common/exception.cpp b/src/duckdb/src/common/exception.cpp
index b8aac720..6f93e169 100644
--- a/src/duckdb/src/common/exception.cpp
+++ b/src/duckdb/src/common/exception.cpp
@@ -35,9 +35,9 @@ string Exception::ToJSON(ExceptionType type, const string &message, const unorde
 #ifdef DUCKDB_DEBUG_STACKTRACE
 	auto extended_extra_info = extra_info;
 	extended_extra_info["stack_trace"] = Exception::GetStackTrace();
-	return StringUtil::ToJSONMap(type, message, extended_extra_info);
+	return StringUtil::ExceptionToJSONMap(type, message, extended_extra_info);
 #else
-	return StringUtil::ToJSONMap(type, message, extra_info);
+	return StringUtil::ExceptionToJSONMap(type, message, extra_info);
 #endif
 }
 
@@ -292,6 +292,9 @@ PermissionException::PermissionException(const string &msg) : Exception(Exceptio
 SyntaxException::SyntaxException(const string &msg) : Exception(ExceptionType::SYNTAX, msg) {
 }
 
+ExecutorException::ExecutorException(const string &msg) : Exception(ExceptionType::EXECUTOR, msg) {
+}
+
 ConstraintException::ConstraintException(const string &msg) : Exception(ExceptionType::CONSTRAINT, msg) {
 }
 
diff --git a/src/duckdb/src/common/extra_type_info.cpp b/src/duckdb/src/common/extra_type_info.cpp
index 6c09480c..54f03447 100644
--- a/src/duckdb/src/common/extra_type_info.cpp
+++ b/src/duckdb/src/common/extra_type_info.cpp
@@ -1,4 +1,5 @@
 #include "duckdb/common/extra_type_info.hpp"
+#include "duckdb/common/extra_type_info/enum_type_info.hpp"
 #include "duckdb/common/serializer/deserializer.hpp"
 #include "duckdb/common/enum_util.hpp"
 #include "duckdb/common/numeric_utils.hpp"
@@ -220,50 +221,6 @@ PhysicalType EnumTypeInfo::DictType(idx_t size) {
 	}
 }
 
-template 
-struct EnumTypeInfoTemplated : public EnumTypeInfo {
-	explicit EnumTypeInfoTemplated(Vector &values_insert_order_p, idx_t size_p)
-	    : EnumTypeInfo(values_insert_order_p, size_p) {
-		D_ASSERT(values_insert_order_p.GetType().InternalType() == PhysicalType::VARCHAR);
-
-		UnifiedVectorFormat vdata;
-		values_insert_order.ToUnifiedFormat(size_p, vdata);
-
-		auto data = UnifiedVectorFormat::GetData(vdata);
-		for (idx_t i = 0; i < size_p; i++) {
-			auto idx = vdata.sel->get_index(i);
-			if (!vdata.validity.RowIsValid(idx)) {
-				throw InternalException("Attempted to create ENUM type with NULL value");
-			}
-			if (values.count(data[idx]) > 0) {
-				throw InvalidInputException("Attempted to create ENUM type with duplicate value %s",
-				                            data[idx].GetString());
-			}
-			values[data[idx]] = UnsafeNumericCast(i);
-		}
-	}
-
-	static shared_ptr Deserialize(Deserializer &deserializer, uint32_t size) {
-		Vector values_insert_order(LogicalType::VARCHAR, size);
-		auto strings = FlatVector::GetData(values_insert_order);
-
-		deserializer.ReadList(201, "values", [&](Deserializer::List &list, idx_t i) {
-			strings[i] = StringVector::AddStringOrBlob(values_insert_order, list.ReadElement());
-		});
-		return make_shared_ptr(values_insert_order, size);
-	}
-
-	const string_map_t &GetValues() const {
-		return values;
-	}
-
-	EnumTypeInfoTemplated(const EnumTypeInfoTemplated &) = delete;
-	EnumTypeInfoTemplated &operator=(const EnumTypeInfoTemplated &) = delete;
-
-private:
-	string_map_t values;
-};
-
 EnumTypeInfo::EnumTypeInfo(Vector &values_insert_order_p, idx_t dict_size_p)
     : ExtraTypeInfo(ExtraTypeInfoType::ENUM_TYPE_INFO), values_insert_order(values_insert_order_p),
       dict_type(EnumDictType::VECTOR_DICT), dict_size(dict_size_p) {
diff --git a/src/duckdb/src/common/file_system.cpp b/src/duckdb/src/common/file_system.cpp
index 6e68402b..26ac7fee 100644
--- a/src/duckdb/src/common/file_system.cpp
+++ b/src/duckdb/src/common/file_system.cpp
@@ -551,7 +551,8 @@ bool FileSystem::OnDiskFile(FileHandle &handle) {
 }
 // LCOV_EXCL_STOP
 
-FileHandle::FileHandle(FileSystem &file_system, string path_p) : file_system(file_system), path(std::move(path_p)) {
+FileHandle::FileHandle(FileSystem &file_system, string path_p, FileOpenFlags flags)
+    : file_system(file_system), path(std::move(path_p)), flags(flags) {
 }
 
 FileHandle::~FileHandle() {
diff --git a/src/duckdb/src/common/http_util.cpp b/src/duckdb/src/common/http_util.cpp
index 4c1c73d1..71248367 100644
--- a/src/duckdb/src/common/http_util.cpp
+++ b/src/duckdb/src/common/http_util.cpp
@@ -6,7 +6,11 @@
 namespace duckdb {
 
 void HTTPUtil::ParseHTTPProxyHost(string &proxy_value, string &hostname_out, idx_t &port_out, idx_t default_port) {
-	auto proxy_split = StringUtil::Split(proxy_value, ":");
+	auto sanitized_proxy_value = proxy_value;
+	if (StringUtil::StartsWith(proxy_value, "http://")) {
+		sanitized_proxy_value = proxy_value.substr(7);
+	}
+	auto proxy_split = StringUtil::Split(sanitized_proxy_value, ":");
 	if (proxy_split.size() == 1) {
 		hostname_out = proxy_split[0];
 		port_out = default_port;
diff --git a/src/duckdb/src/common/local_file_system.cpp b/src/duckdb/src/common/local_file_system.cpp
index 70246d26..74a24908 100644
--- a/src/duckdb/src/common/local_file_system.cpp
+++ b/src/duckdb/src/common/local_file_system.cpp
@@ -6,7 +6,7 @@
 #include "duckdb/common/helper.hpp"
 #include "duckdb/common/string_util.hpp"
 #include "duckdb/common/windows.hpp"
-#include "duckdb/function/scalar/string_functions.hpp"
+#include "duckdb/function/scalar/string_common.hpp"
 #include "duckdb/main/client_context.hpp"
 #include "duckdb/main/database.hpp"
 
@@ -129,7 +129,8 @@ bool LocalFileSystem::IsPipe(const string &filename, optional_ptr op
 
 struct UnixFileHandle : public FileHandle {
 public:
-	UnixFileHandle(FileSystem &file_system, string path, int fd) : FileHandle(file_system, std::move(path)), fd(fd) {
+	UnixFileHandle(FileSystem &file_system, string path, int fd, FileOpenFlags flags)
+	    : FileHandle(file_system, std::move(path), flags), fd(fd) {
 	}
 	~UnixFileHandle() override {
 		UnixFileHandle::Close();
@@ -417,7 +418,7 @@ unique_ptr LocalFileSystem::OpenFile(const string &path_p, FileOpenF
 			}
 		}
 	}
-	return make_uniq(*this, path, fd);
+	return make_uniq(*this, path, fd, flags);
 }
 
 void LocalFileSystem::SetFilePointer(FileHandle &handle, idx_t location) {
@@ -527,7 +528,8 @@ int64_t LocalFileSystem::GetFileSize(FileHandle &handle) {
 	int fd = handle.Cast().fd;
 	struct stat s;
 	if (fstat(fd, &s) == -1) {
-		return -1;
+		throw IOException("Failed to get file size for file \"%s\": %s", {{"errno", std::to_string(errno)}},
+		                  handle.path, strerror(errno));
 	}
 	return s.st_size;
 }
@@ -536,7 +538,8 @@ time_t LocalFileSystem::GetLastModifiedTime(FileHandle &handle) {
 	int fd = handle.Cast().fd;
 	struct stat s;
 	if (fstat(fd, &s) == -1) {
-		return -1;
+		throw IOException("Failed to get last modified time for file \"%s\": %s", {{"errno", std::to_string(errno)}},
+		                  handle.path, strerror(errno));
 	}
 	return s.st_mtime;
 }
@@ -714,8 +717,8 @@ std::string LocalFileSystem::GetLastErrorAsString() {
 
 struct WindowsFileHandle : public FileHandle {
 public:
-	WindowsFileHandle(FileSystem &file_system, string path, HANDLE fd)
-	    : FileHandle(file_system, path), position(0), fd(fd) {
+	WindowsFileHandle(FileSystem &file_system, string path, HANDLE fd, FileOpenFlags flags)
+	    : FileHandle(file_system, path, flags), position(0), fd(fd) {
 	}
 	~WindowsFileHandle() override {
 		Close();
@@ -853,7 +856,7 @@ unique_ptr LocalFileSystem::OpenFile(const string &path_p, FileOpenF
 			throw IOException("Cannot open file \"%s\": %s", path.c_str(), error);
 		}
 	}
-	auto handle = make_uniq(*this, path.c_str(), hFile);
+	auto handle = make_uniq(*this, path.c_str(), hFile, flags);
 	if (flags.OpenForAppending()) {
 		auto file_size = GetFileSize(*handle);
 		SetFilePointer(*handle, file_size);
@@ -967,7 +970,8 @@ int64_t LocalFileSystem::GetFileSize(FileHandle &handle) {
 	HANDLE hFile = handle.Cast().fd;
 	LARGE_INTEGER result;
 	if (!GetFileSizeEx(hFile, &result)) {
-		return -1;
+		auto error = LocalFileSystem::GetLastErrorAsString();
+		throw IOException("Failed to get file size for file \"%s\": %s", handle.path, error);
 	}
 	return result.QuadPart;
 }
@@ -978,7 +982,8 @@ time_t LocalFileSystem::GetLastModifiedTime(FileHandle &handle) {
 	// https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-getfiletime
 	FILETIME last_write;
 	if (GetFileTime(hFile, nullptr, nullptr, &last_write) == 0) {
-		return -1;
+		auto error = LocalFileSystem::GetLastErrorAsString();
+		throw IOException("Failed to get last modified time for file \"%s\": %s", handle.path, error);
 	}
 
 	// https://stackoverflow.com/questions/29266743/what-is-dwlowdatetime-and-dwhighdatetime
@@ -1194,7 +1199,7 @@ static void GlobFilesInternal(FileSystem &fs, const string &path, const string &
 		if (is_directory != match_directory) {
 			return;
 		}
-		if (LikeFun::Glob(fname.c_str(), fname.size(), glob.c_str(), glob.size())) {
+		if (Glob(fname.c_str(), fname.size(), glob.c_str(), glob.size())) {
 			if (join_path) {
 				result.push_back(fs.JoinPath(path, fname));
 			} else {
diff --git a/src/duckdb/src/common/multi_file_list.cpp b/src/duckdb/src/common/multi_file_list.cpp
index 9c57b5e8..668a5b36 100644
--- a/src/duckdb/src/common/multi_file_list.cpp
+++ b/src/duckdb/src/common/multi_file_list.cpp
@@ -14,8 +14,11 @@
 namespace duckdb {
 
 MultiFilePushdownInfo::MultiFilePushdownInfo(LogicalGet &get)
-    : table_index(get.table_index), column_names(get.names), column_ids(get.GetColumnIds()),
+    : table_index(get.table_index), column_names(get.names), column_indexes(get.GetColumnIds()),
       extra_info(get.extra_info) {
+	for (auto &col_id : column_indexes) {
+		column_ids.push_back(col_id.GetPrimaryIndex());
+	}
 }
 
 MultiFilePushdownInfo::MultiFilePushdownInfo(idx_t table_index, const vector &column_names,
diff --git a/src/duckdb/src/common/multi_file_reader.cpp b/src/duckdb/src/common/multi_file_reader.cpp
index b964a935..97eba101 100644
--- a/src/duckdb/src/common/multi_file_reader.cpp
+++ b/src/duckdb/src/common/multi_file_reader.cpp
@@ -23,7 +23,7 @@ MultiFileReader::~MultiFileReader() {
 unique_ptr MultiFileReader::Create(const TableFunction &table_function) {
 	unique_ptr res;
 	if (table_function.get_multi_file_reader) {
-		res = table_function.get_multi_file_reader();
+		res = table_function.get_multi_file_reader(table_function);
 		res->function_name = table_function.name;
 	} else {
 		res = make_uniq();
@@ -43,7 +43,7 @@ Value MultiFileReader::CreateValueFromFileList(const vector &file_list)
 	for (auto &file : file_list) {
 		files.push_back(file);
 	}
-	return Value::LIST(std::move(files));
+	return Value::LIST(LogicalType::VARCHAR, std::move(files));
 }
 
 void MultiFileReader::AddParameters(TableFunction &table_function) {
@@ -78,12 +78,8 @@ vector MultiFileReader::ParsePaths(const Value &input) {
 	}
 }
 
-unique_ptr MultiFileReader::CreateFileList(ClientContext &context, const vector &paths,
+shared_ptr MultiFileReader::CreateFileList(ClientContext &context, const vector &paths,
                                                           FileGlobOptions options) {
-	auto &config = DBConfig::GetConfig(context);
-	if (!config.options.enable_external_access) {
-		throw PermissionException("Scanning %s files is disabled through configuration", function_name);
-	}
 	vector result_files;
 
 	auto res = make_uniq(context, paths, options);
@@ -93,7 +89,7 @@ unique_ptr MultiFileReader::CreateFileList(ClientContext &context
 	return std::move(res);
 }
 
-unique_ptr MultiFileReader::CreateFileList(ClientContext &context, const Value &input,
+shared_ptr MultiFileReader::CreateFileList(ClientContext &context, const Value &input,
                                                           FileGlobOptions options) {
 	auto paths = ParsePaths(input);
 	return CreateFileList(context, paths, options);
@@ -219,7 +215,9 @@ void MultiFileReader::BindOptions(MultiFileReaderOptions &options, MultiFileList
 
 		for (auto &part : partitions) {
 			idx_t hive_partitioning_index;
-			auto lookup = std::find(names.begin(), names.end(), part.first);
+			auto lookup = std::find_if(names.begin(), names.end(), [&](const string &col_name) {
+				return StringUtil::CIEquals(col_name, part.first);
+			});
 			if (lookup != names.end()) {
 				// hive partitioning column also exists in file - override
 				auto idx = NumericCast(lookup - names.begin());
@@ -239,7 +237,7 @@ void MultiFileReader::BindOptions(MultiFileReaderOptions &options, MultiFileList
 void MultiFileReader::FinalizeBind(const MultiFileReaderOptions &file_options, const MultiFileReaderBindData &options,
                                    const string &filename, const vector &local_names,
                                    const vector &global_types, const vector &global_names,
-                                   const vector &global_column_ids, MultiFileReaderData &reader_data,
+                                   const vector &global_column_ids, MultiFileReaderData &reader_data,
                                    ClientContext &context, optional_ptr global_state) {
 
 	// create a map of name -> column index
@@ -250,12 +248,13 @@ void MultiFileReader::FinalizeBind(const MultiFileReaderOptions &file_options, c
 		}
 	}
 	for (idx_t i = 0; i < global_column_ids.size(); i++) {
-		auto column_id = global_column_ids[i];
-		if (IsRowIdColumnId(column_id)) {
+		auto &col_idx = global_column_ids[i];
+		if (col_idx.IsRowIdColumn()) {
 			// row-id
 			reader_data.constant_map.emplace_back(i, Value::BIGINT(42));
 			continue;
 		}
+		auto column_id = col_idx.GetPrimaryIndex();
 		if (column_id == options.filename_idx) {
 			// filename
 			reader_data.constant_map.emplace_back(i, Value(filename));
@@ -296,15 +295,16 @@ unique_ptr
 MultiFileReader::InitializeGlobalState(ClientContext &context, const MultiFileReaderOptions &file_options,
                                        const MultiFileReaderBindData &bind_data, const MultiFileList &file_list,
                                        const vector &global_types, const vector &global_names,
-                                       const vector &global_column_ids) {
+                                       const vector &global_column_ids) {
 	// By default, the multifilereader does not require any global state
 	return nullptr;
 }
 
 void MultiFileReader::CreateNameMapping(const string &file_name, const vector &local_types,
                                         const vector &local_names, const vector &global_types,
-                                        const vector &global_names, const vector &global_column_ids,
-                                        MultiFileReaderData &reader_data, const string &initial_file,
+                                        const vector &global_names,
+                                        const vector &global_column_ids, MultiFileReaderData &reader_data,
+                                        const string &initial_file,
                                         optional_ptr global_state) {
 	D_ASSERT(global_types.size() == global_names.size());
 	D_ASSERT(local_types.size() == local_names.size());
@@ -327,7 +327,8 @@ void MultiFileReader::CreateNameMapping(const string &file_name, const vector= global_types.size()) {
 			throw InternalException(
 			    "MultiFileReader::CreatePositionalMapping - global_id is out of range in global_types for this file");
@@ -355,20 +356,25 @@ void MultiFileReader::CreateNameMapping(const string &file_name, const vector &local_types,
                                     const vector &local_names, const vector &global_types,
-                                    const vector &global_names, const vector &global_column_ids,
+                                    const vector &global_names, const vector &global_column_ids,
                                     optional_ptr filters, MultiFileReaderData &reader_data,
                                     const string &initial_file, const MultiFileReaderBindData &options,
                                     optional_ptr global_state) {
@@ -410,10 +416,53 @@ void MultiFileReader::FinalizeChunk(ClientContext &context, const MultiFileReade
 	chunk.Verify();
 }
 
+void MultiFileReader::GetPartitionData(ClientContext &context, const MultiFileReaderBindData &bind_data,
+                                       const MultiFileReaderData &reader_data,
+                                       optional_ptr global_state,
+                                       const OperatorPartitionInfo &partition_info,
+                                       OperatorPartitionData &partition_data) {
+	for (auto &col : partition_info.partition_columns) {
+		bool found_constant = false;
+		for (auto &constant : reader_data.constant_map) {
+			if (constant.column_id == col) {
+				found_constant = true;
+				partition_data.partition_data.emplace_back(constant.value);
+				break;
+			}
+		}
+		if (!found_constant) {
+			throw InternalException(
+			    "MultiFileReader::GetPartitionData - did not find constant for the given partition");
+		}
+	}
+}
+
+TablePartitionInfo MultiFileReader::GetPartitionInfo(ClientContext &context, const MultiFileReaderBindData &bind_data,
+                                                     TableFunctionPartitionInput &input) {
+	// check if all of the columns are in the hive partition set
+	for (auto &partition_col : input.partition_ids) {
+		// check if this column is in the hive partitioned set
+		bool found = false;
+		for (auto &partition : bind_data.hive_partitioning_indexes) {
+			if (partition.index == partition_col) {
+				found = true;
+				break;
+			}
+		}
+		if (!found) {
+			// the column is not partitioned - hive partitioning alone can't guarantee the groups are partitioned
+			return TablePartitionInfo::NOT_PARTITIONED;
+		}
+	}
+	// if all columns are in the hive partitioning set, we know that each partition will only have a single value
+	// i.e. if the hive partitioning is by (YEAR, MONTH), each partition will have a single unique (YEAR, MONTH)
+	return TablePartitionInfo::SINGLE_VALUE_PARTITIONS;
+}
+
 TableFunctionSet MultiFileReader::CreateFunctionSet(TableFunction table_function) {
 	TableFunctionSet function_set(table_function.name);
 	function_set.AddFunction(table_function);
-	D_ASSERT(table_function.arguments.size() == 1 && table_function.arguments[0] == LogicalType::VARCHAR);
+	D_ASSERT(table_function.arguments.size() >= 1 && table_function.arguments[0] == LogicalType::VARCHAR);
 	table_function.arguments[0] = LogicalType::LIST(LogicalType::VARCHAR);
 	function_set.AddFunction(std::move(table_function));
 	return function_set;
diff --git a/src/duckdb/src/common/opener_file_system.cpp b/src/duckdb/src/common/opener_file_system.cpp
new file mode 100644
index 00000000..8f55d689
--- /dev/null
+++ b/src/duckdb/src/common/opener_file_system.cpp
@@ -0,0 +1,37 @@
+#include "duckdb/common/opener_file_system.hpp"
+#include "duckdb/common/file_opener.hpp"
+#include "duckdb/main/database.hpp"
+#include "duckdb/main/config.hpp"
+
+namespace duckdb {
+
+void OpenerFileSystem::VerifyNoOpener(optional_ptr opener) {
+	if (opener) {
+		throw InternalException("OpenerFileSystem cannot take an opener - the opener is pushed automatically");
+	}
+}
+void OpenerFileSystem::VerifyCanAccessFileInternal(const string &path, FileType type) {
+	auto opener = GetOpener();
+	if (!opener) {
+		return;
+	}
+	auto db = opener->TryGetDatabase();
+	if (!db) {
+		return;
+	}
+	auto &config = db->config;
+	if (!config.CanAccessFile(path, type)) {
+		throw PermissionException("Cannot access %s \"%s\" - file system operations are disabled by configuration",
+		                          type == FileType::FILE_TYPE_DIR ? "directory" : "file", path);
+	}
+}
+
+void OpenerFileSystem::VerifyCanAccessFile(const string &path) {
+	VerifyCanAccessFileInternal(path, FileType::FILE_TYPE_REGULAR);
+}
+
+void OpenerFileSystem::VerifyCanAccessDirectory(const string &path) {
+	VerifyCanAccessFileInternal(path, FileType::FILE_TYPE_DIR);
+}
+
+} // namespace duckdb
diff --git a/src/duckdb/src/common/operator/cast_operators.cpp b/src/duckdb/src/common/operator/cast_operators.cpp
index 87adfba4..5e1dc442 100644
--- a/src/duckdb/src/common/operator/cast_operators.cpp
+++ b/src/duckdb/src/common/operator/cast_operators.cpp
@@ -1066,6 +1066,59 @@ bool TryCast::Operation(timestamp_t input, timestamp_t &result, bool strict) {
 	return true;
 }
 
+template <>
+bool TryCast::Operation(timestamp_sec_t input, timestamp_sec_t &result, bool strict) {
+	result.value = input.value;
+	return true;
+}
+
+template <>
+bool TryCast::Operation(timestamp_t input, timestamp_sec_t &result, bool strict) {
+	D_ASSERT(Timestamp::IsFinite(input));
+	result.value = input.value / Interval::MICROS_PER_SEC;
+	return true;
+}
+
+template <>
+bool TryCast::Operation(timestamp_ms_t input, timestamp_ms_t &result, bool strict) {
+	result.value = input.value;
+	return true;
+}
+
+template <>
+bool TryCast::Operation(timestamp_t input, timestamp_ms_t &result, bool strict) {
+	D_ASSERT(Timestamp::IsFinite(input));
+	result.value = input.value / Interval::MICROS_PER_MSEC;
+	return true;
+}
+
+template <>
+bool TryCast::Operation(timestamp_ns_t input, timestamp_ns_t &result, bool strict) {
+	result.value = input.value;
+	return true;
+}
+
+template <>
+bool TryCast::Operation(timestamp_t input, timestamp_ns_t &result, bool strict) {
+	D_ASSERT(Timestamp::IsFinite(input));
+	if (!TryMultiplyOperator::Operation(input.value, Interval::NANOS_PER_MSEC, result.value)) {
+		throw ConversionException("Could not convert TIMESTAMP to TIMESTAMP_NS");
+	}
+	return true;
+}
+
+template <>
+bool TryCast::Operation(timestamp_tz_t input, timestamp_tz_t &result, bool strict) {
+	result.value = input.value;
+	return true;
+}
+
+template <>
+bool TryCast::Operation(timestamp_t input, timestamp_tz_t &result, bool strict) {
+	result.value = input.value;
+	return true;
+}
+
 template <>
 bool TryCast::Operation(timestamp_t input, dtime_tz_t &result, bool strict) {
 	if (!Timestamp::IsFinite(input)) {
diff --git a/src/duckdb/src/common/operator/string_cast.cpp b/src/duckdb/src/common/operator/string_cast.cpp
index 64d9c53e..e152c71b 100644
--- a/src/duckdb/src/common/operator/string_cast.cpp
+++ b/src/duckdb/src/common/operator/string_cast.cpp
@@ -129,9 +129,11 @@ template 
 duckdb::string_t StringFromTimestamp(timestamp_t input, Vector &vector) {
 	if (input == timestamp_t::infinity()) {
 		return StringVector::AddString(vector, Date::PINF);
-	} else if (input == timestamp_t::ninfinity()) {
+	}
+	if (input == timestamp_t::ninfinity()) {
 		return StringVector::AddString(vector, Date::NINF);
 	}
+
 	date_t date_entry;
 	dtime_t time_entry;
 	int32_t picos = 0;
@@ -260,9 +262,11 @@ template <>
 string_t StringCastTZ::Operation(timestamp_t input, Vector &vector) {
 	if (input == timestamp_t::infinity()) {
 		return StringVector::AddString(vector, Date::PINF);
-	} else if (input == timestamp_t::ninfinity()) {
+	}
+	if (input == timestamp_t::ninfinity()) {
 		return StringVector::AddString(vector, Date::NINF);
 	}
+
 	date_t date_entry;
 	dtime_t time_entry;
 	Timestamp::Convert(input, date_entry, time_entry);
diff --git a/src/duckdb/src/common/pipe_file_system.cpp b/src/duckdb/src/common/pipe_file_system.cpp
index d6eb2c6a..3345e498 100644
--- a/src/duckdb/src/common/pipe_file_system.cpp
+++ b/src/duckdb/src/common/pipe_file_system.cpp
@@ -7,8 +7,9 @@
 namespace duckdb {
 class PipeFile : public FileHandle {
 public:
-	PipeFile(unique_ptr child_handle_p, const string &path)
-	    : FileHandle(pipe_fs, path), child_handle(std::move(child_handle_p)) {
+	explicit PipeFile(unique_ptr child_handle_p)
+	    : FileHandle(pipe_fs, child_handle_p->path, child_handle_p->GetFlags()),
+	      child_handle(std::move(child_handle_p)) {
 	}
 
 	PipeFileSystem pipe_fs;
@@ -51,8 +52,7 @@ void PipeFileSystem::FileSync(FileHandle &handle) {
 }
 
 unique_ptr PipeFileSystem::OpenPipe(unique_ptr handle) {
-	auto path = handle->path;
-	return make_uniq(std::move(handle), path);
+	return make_uniq(std::move(handle));
 }
 
 } // namespace duckdb
diff --git a/src/duckdb/src/common/progress_bar/progress_bar.cpp b/src/duckdb/src/common/progress_bar/progress_bar.cpp
index 13d1d509..2fa8c0ad 100644
--- a/src/duckdb/src/common/progress_bar/progress_bar.cpp
+++ b/src/duckdb/src/common/progress_bar/progress_bar.cpp
@@ -83,8 +83,16 @@ bool ProgressBar::ShouldPrint(bool final) const {
 		// Don't print progress at all
 		return false;
 	}
-	// FIXME - do we need to check supported before running `profiler.Elapsed()` ?
-	auto sufficient_time_elapsed = profiler.Elapsed() > static_cast(show_progress_after) / 1000.0;
+	if (!supported) {
+		return false;
+	}
+
+	double elapsed_time = -1.0;
+	if (elapsed_time < 0.0) {
+		elapsed_time = profiler.Elapsed();
+	}
+
+	auto sufficient_time_elapsed = elapsed_time > static_cast(show_progress_after) / 1000.0;
 	if (!sufficient_time_elapsed) {
 		// Don't print yet
 		return false;
@@ -93,9 +101,6 @@ bool ProgressBar::ShouldPrint(bool final) const {
 		// Print the last completed bar
 		return true;
 	}
-	if (!supported) {
-		return false;
-	}
 	return query_progress.percentage > -1;
 }
 
@@ -103,16 +108,24 @@ void ProgressBar::Update(bool final) {
 	if (!final && !supported) {
 		return;
 	}
-	double new_percentage = -1;
-	auto rows_processed = query_progress.rows_processed.load();
-	auto total_rows_to_process = query_progress.total_rows_to_process.load();
-	supported = executor.GetPipelinesProgress(new_percentage, rows_processed, total_rows_to_process);
-	query_progress.rows_processed = rows_processed;
-	query_progress.total_rows_to_process = total_rows_to_process;
 
-	if (!final && !supported) {
+	ProgressData progress;
+	idx_t invalid_pipelines = executor.GetPipelinesProgress(progress);
+
+	double new_percentage = 0.0;
+	if (invalid_pipelines == 0 && progress.IsValid()) {
+		if (progress.total > 1e15) {
+			progress.Normalize(1e15);
+		}
+		query_progress.rows_processed = idx_t(progress.done);
+		query_progress.total_rows_to_process = idx_t(progress.total);
+		new_percentage = progress.ProgressDone() * 100;
+	}
+
+	if (!final && invalid_pipelines > 0) {
 		return;
 	}
+
 	if (new_percentage > query_progress.percentage) {
 		query_progress.percentage = new_percentage;
 	}
diff --git a/src/duckdb/src/common/radix_partitioning.cpp b/src/duckdb/src/common/radix_partitioning.cpp
index 3e8dee30..d62a1329 100644
--- a/src/duckdb/src/common/radix_partitioning.cpp
+++ b/src/duckdb/src/common/radix_partitioning.cpp
@@ -112,6 +112,7 @@ RadixPartitionedColumnData::RadixPartitionedColumnData(ClientContext &context_p,
 	allocators->allocators.reserve(num_partitions);
 	for (idx_t i = 0; i < num_partitions; i++) {
 		CreateAllocator();
+		allocators->allocators.back()->SetPartitionIndex(i);
 	}
 	D_ASSERT(allocators->allocators.size() == num_partitions);
 }
@@ -174,8 +175,10 @@ RadixPartitionedTupleData::~RadixPartitionedTupleData() {
 }
 
 void RadixPartitionedTupleData::Initialize() {
-	for (idx_t i = 0; i < RadixPartitioning::NumberOfPartitions(radix_bits); i++) {
+	const auto num_partitions = RadixPartitioning::NumberOfPartitions(radix_bits);
+	for (idx_t i = 0; i < num_partitions; i++) {
 		partitions.emplace_back(CreatePartitionCollection(i));
+		partitions.back()->SetPartitionIndex(i);
 	}
 }
 
diff --git a/src/duckdb/src/common/random_engine.cpp b/src/duckdb/src/common/random_engine.cpp
index e51f7100..704992f0 100644
--- a/src/duckdb/src/common/random_engine.cpp
+++ b/src/duckdb/src/common/random_engine.cpp
@@ -29,12 +29,28 @@ double RandomEngine::NextRandom(double min, double max) {
 }
 
 double RandomEngine::NextRandom() {
-	return std::ldexp(random_state->pcg(), -32);
+	auto uint64 = NextRandomInteger64();
+	return std::ldexp(uint64, -64);
 }
+
+double RandomEngine::NextRandom32(double min, double max) {
+	D_ASSERT(max >= min);
+	return min + (NextRandom32() * (max - min));
+}
+
+double RandomEngine::NextRandom32() {
+	auto uint32 = NextRandomInteger();
+	return std::ldexp(uint32, -32);
+}
+
 uint32_t RandomEngine::NextRandomInteger() {
 	return random_state->pcg();
 }
 
+uint64_t RandomEngine::NextRandomInteger64() {
+	return (static_cast(NextRandomInteger()) << UINT64_C(32)) | static_cast(NextRandomInteger());
+}
+
 uint32_t RandomEngine::NextRandomInteger(uint32_t min, uint32_t max) {
 	return min + static_cast(NextRandom() * double(max - min));
 }
diff --git a/src/duckdb/src/common/render_tree.cpp b/src/duckdb/src/common/render_tree.cpp
index 9c7dca21..582d5e1a 100644
--- a/src/duckdb/src/common/render_tree.cpp
+++ b/src/duckdb/src/common/render_tree.cpp
@@ -41,29 +41,13 @@ class TreeChildrenIterator {
 
 template <>
 bool TreeChildrenIterator::HasChildren(const PhysicalOperator &op) {
-	switch (op.type) {
-	case PhysicalOperatorType::LEFT_DELIM_JOIN:
-	case PhysicalOperatorType::RIGHT_DELIM_JOIN:
-	case PhysicalOperatorType::POSITIONAL_SCAN:
-		return true;
-	default:
-		return !op.children.empty();
-	}
+	return !op.GetChildren().empty();
 }
 template <>
 void TreeChildrenIterator::Iterate(const PhysicalOperator &op,
                                    const std::function &callback) {
-	for (auto &child : op.children) {
-		callback(*child);
-	}
-	if (op.type == PhysicalOperatorType::LEFT_DELIM_JOIN || op.type == PhysicalOperatorType::RIGHT_DELIM_JOIN) {
-		auto &delim = op.Cast();
-		callback(*delim.join);
-	} else if ((op.type == PhysicalOperatorType::POSITIONAL_SCAN)) {
-		auto &pscan = op.Cast();
-		for (auto &table : pscan.child_tables) {
-			callback(*table);
-		}
+	for (auto &child : op.GetChildren()) {
+		callback(child);
 	}
 }
 
@@ -118,7 +102,7 @@ static unique_ptr CreateNode(const PipelineRenderNode &op) {
 static unique_ptr CreateNode(const ProfilingNode &op) {
 	auto &info = op.GetProfilingInfo();
 	InsertionOrderPreservingMap extra_info;
-	if (info.Enabled(MetricsType::EXTRA_INFO)) {
+	if (info.Enabled(info.settings, MetricsType::EXTRA_INFO)) {
 		extra_info = op.GetProfilingInfo().extra_info;
 	}
 
@@ -128,11 +112,13 @@ static unique_ptr CreateNode(const ProfilingNode &op) {
 	}
 
 	auto result = make_uniq(node_name, extra_info);
-	if (info.Enabled(MetricsType::OPERATOR_CARDINALITY)) {
-		result->extra_text[RenderTreeNode::CARDINALITY] = info.GetMetricAsString(MetricsType::OPERATOR_CARDINALITY);
+	if (info.Enabled(info.settings, MetricsType::OPERATOR_CARDINALITY)) {
+		auto cardinality = info.GetMetricAsString(MetricsType::OPERATOR_CARDINALITY);
+		result->extra_text[RenderTreeNode::CARDINALITY] = cardinality;
 	}
-	if (info.Enabled(MetricsType::OPERATOR_TIMING)) {
-		string timing = StringUtil::Format("%.2f", info.metrics.at(MetricsType::OPERATOR_TIMING).GetValue());
+	if (info.Enabled(info.settings, MetricsType::OPERATOR_TIMING)) {
+		auto value = info.metrics.at(MetricsType::OPERATOR_TIMING).GetValue();
+		string timing = StringUtil::Format("%.2f", value);
 		result->extra_text[RenderTreeNode::TIMING] = timing + "s";
 	}
 	return result;
diff --git a/src/duckdb/src/common/row_operations/row_external.cpp b/src/duckdb/src/common/row_operations/row_external.cpp
index 5aef76a0..161fa750 100644
--- a/src/duckdb/src/common/row_operations/row_external.cpp
+++ b/src/duckdb/src/common/row_operations/row_external.cpp
@@ -107,7 +107,7 @@ static inline void VerifyUnswizzledString(const RowLayout &layout, const idx_t &
 	idx_t idx_in_entry;
 	ValidityBytes::GetEntryIndex(col_idx, entry_idx, idx_in_entry);
 
-	ValidityBytes row_mask(row_ptr);
+	ValidityBytes row_mask(row_ptr, layout.ColumnCount());
 	if (row_mask.RowIsValid(row_mask.GetValidityEntry(entry_idx), idx_in_entry)) {
 		auto str = Load(row_ptr + layout.GetOffsets()[col_idx]);
 		str.Verify();
diff --git a/src/duckdb/src/common/row_operations/row_gather.cpp b/src/duckdb/src/common/row_operations/row_gather.cpp
index b421fc1c..40743279 100644
--- a/src/duckdb/src/common/row_operations/row_gather.cpp
+++ b/src/duckdb/src/common/row_operations/row_gather.cpp
@@ -35,7 +35,7 @@ static void TemplatedGatherLoop(Vector &rows, const SelectionVector &row_sel, Ve
 		auto row = ptrs[row_idx];
 		auto col_idx = col_sel.get_index(i);
 		data[col_idx] = Load(row + col_offset);
-		ValidityBytes row_mask(row);
+		ValidityBytes row_mask(row, layout.ColumnCount());
 		if (!row_mask.RowIsValid(row_mask.GetValidityEntry(entry_idx), idx_in_entry)) {
 			if (build_size > STANDARD_VECTOR_SIZE && col_mask.AllValid()) {
 				//! We need to initialize the mask with the vector size.
@@ -67,7 +67,7 @@ static void GatherVarchar(Vector &rows, const SelectionVector &row_sel, Vector &
 		auto col_idx = col_sel.get_index(i);
 		auto col_ptr = row + col_offset;
 		data[col_idx] = Load(col_ptr);
-		ValidityBytes row_mask(row);
+		ValidityBytes row_mask(row, layout.ColumnCount());
 		if (!row_mask.RowIsValid(row_mask.GetValidityEntry(entry_idx), idx_in_entry)) {
 			if (build_size > STANDARD_VECTOR_SIZE && col_mask.AllValid()) {
 				//! We need to initialize the mask with the vector size.
@@ -178,60 +178,4 @@ void RowOperations::Gather(Vector &rows, const SelectionVector &row_sel, Vector
 	}
 }
 
-template 
-static void TemplatedFullScanLoop(Vector &rows, Vector &col, idx_t count, idx_t col_offset, idx_t col_no) {
-	// Precompute mask indexes
-	idx_t entry_idx;
-	idx_t idx_in_entry;
-	ValidityBytes::GetEntryIndex(col_no, entry_idx, idx_in_entry);
-
-	auto ptrs = FlatVector::GetData(rows);
-	auto data = FlatVector::GetData(col);
-	//	auto &col_mask = FlatVector::Validity(col);
-
-	for (idx_t i = 0; i < count; i++) {
-		auto row = ptrs[i];
-		data[i] = Load(row + col_offset);
-		ValidityBytes row_mask(row);
-		if (!row_mask.RowIsValid(row_mask.GetValidityEntry(entry_idx), idx_in_entry)) {
-			throw InternalException("Null value comparisons not implemented for perfect hash table yet");
-			//			col_mask.SetInvalid(i);
-		}
-	}
-}
-
-void RowOperations::FullScanColumn(const TupleDataLayout &layout, Vector &rows, Vector &col, idx_t count,
-                                   idx_t col_no) {
-	const auto col_offset = layout.GetOffsets()[col_no];
-	col.SetVectorType(VectorType::FLAT_VECTOR);
-	switch (col.GetType().InternalType()) {
-	case PhysicalType::UINT8:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	case PhysicalType::UINT16:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	case PhysicalType::UINT32:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	case PhysicalType::UINT64:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	case PhysicalType::INT8:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	case PhysicalType::INT16:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	case PhysicalType::INT32:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	case PhysicalType::INT64:
-		TemplatedFullScanLoop(rows, col, count, col_offset, col_no);
-		break;
-	default:
-		throw NotImplementedException("Unimplemented type for RowOperations::FullScanColumn");
-	}
-}
-
 } // namespace duckdb
diff --git a/src/duckdb/src/common/row_operations/row_matcher.cpp b/src/duckdb/src/common/row_operations/row_matcher.cpp
index 41b9f211..d08ab9d4 100644
--- a/src/duckdb/src/common/row_operations/row_matcher.cpp
+++ b/src/duckdb/src/common/row_operations/row_matcher.cpp
@@ -34,7 +34,7 @@ static idx_t TemplatedMatchLoop(const TupleDataVectorFormat &lhs_format, Selecti
 		const auto lhs_null = LHS_ALL_VALID ? false : !lhs_validity.RowIsValid(lhs_idx);
 
 		const auto &rhs_location = rhs_locations[idx];
-		const ValidityBytes rhs_mask(rhs_location);
+		const ValidityBytes rhs_mask(rhs_location, rhs_layout.ColumnCount());
 		const auto rhs_null = !rhs_mask.RowIsValid(rhs_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry);
 
 		if (COMPARISON_OP::template Operation(lhs_data[lhs_idx], Load(rhs_location + rhs_offset_in_row), lhs_null,
@@ -85,7 +85,7 @@ static idx_t StructMatchEquality(Vector &lhs_vector, const TupleDataVectorFormat
 		const auto lhs_null = lhs_validity.AllValid() ? false : !lhs_validity.RowIsValid(lhs_idx);
 
 		const auto &rhs_location = rhs_locations[idx];
-		const ValidityBytes rhs_mask(rhs_location);
+		const ValidityBytes rhs_mask(rhs_location, rhs_layout.ColumnCount());
 		const auto rhs_null = !rhs_mask.RowIsValid(rhs_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry);
 
 		// For structs there is no value to compare, here we match NULLs and let recursion do the rest
diff --git a/src/duckdb/src/common/row_operations/row_scatter.cpp b/src/duckdb/src/common/row_operations/row_scatter.cpp
index 6195df23..a535e1a2 100644
--- a/src/duckdb/src/common/row_operations/row_scatter.cpp
+++ b/src/duckdb/src/common/row_operations/row_scatter.cpp
@@ -20,7 +20,7 @@ using ValidityBytes = RowLayout::ValidityBytes;
 
 template 
 static void TemplatedScatter(UnifiedVectorFormat &col, Vector &rows, const SelectionVector &sel, const idx_t count,
-                             const idx_t col_offset, const idx_t col_no) {
+                             const idx_t col_offset, const idx_t col_no, const idx_t col_count) {
 	auto data = UnifiedVectorFormat::GetData(col);
 	auto ptrs = FlatVector::GetData(rows);
 
@@ -34,7 +34,7 @@ static void TemplatedScatter(UnifiedVectorFormat &col, Vector &rows, const Selec
 			T store_value = isnull ? NullValue() : data[col_idx];
 			Store(store_value, row + col_offset);
 			if (isnull) {
-				ValidityBytes col_mask(ptrs[idx]);
+				ValidityBytes col_mask(ptrs[idx], col_count);
 				col_mask.SetInvalidUnsafe(col_no);
 			}
 		}
@@ -64,7 +64,7 @@ static void ComputeStringEntrySizes(const UnifiedVectorFormat &col, idx_t entry_
 
 static void ScatterStringVector(UnifiedVectorFormat &col, Vector &rows, data_ptr_t str_locations[],
                                 const SelectionVector &sel, const idx_t count, const idx_t col_offset,
-                                const idx_t col_no) {
+                                const idx_t col_no, const idx_t col_count) {
 	auto string_data = UnifiedVectorFormat::GetData(col);
 	auto ptrs = FlatVector::GetData(rows);
 
@@ -75,7 +75,7 @@ static void ScatterStringVector(UnifiedVectorFormat &col, Vector &rows, data_ptr
 		auto col_idx = col.sel->get_index(idx);
 		auto row = ptrs[idx];
 		if (!col.validity.RowIsValid(col_idx)) {
-			ValidityBytes col_mask(row);
+			ValidityBytes col_mask(row, col_count);
 			col_mask.SetInvalidUnsafe(col_no);
 			Store(null, row + col_offset);
 		} else if (string_data[col_idx].IsInlined()) {
@@ -118,11 +118,12 @@ void RowOperations::Scatter(DataChunk &columns, UnifiedVectorFormat col_data[],
 	}
 
 	// Set the validity mask for each row before inserting data
+	idx_t column_count = layout.ColumnCount();
 	auto ptrs = FlatVector::GetData(rows);
 	for (idx_t i = 0; i < count; ++i) {
 		auto row_idx = sel.get_index(i);
 		auto row = ptrs[row_idx];
-		ValidityBytes(row).SetAllValid(layout.ColumnCount());
+		ValidityBytes(row, column_count).SetAllValid(layout.ColumnCount());
 	}
 
 	const auto vcount = columns.size();
@@ -180,46 +181,46 @@ void RowOperations::Scatter(DataChunk &columns, UnifiedVectorFormat col_data[],
 		switch (types[col_no].InternalType()) {
 		case PhysicalType::BOOL:
 		case PhysicalType::INT8:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::INT16:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::INT32:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::INT64:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::UINT8:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::UINT16:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::UINT32:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::UINT64:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::INT128:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::UINT128:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::FLOAT:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::DOUBLE:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::INTERVAL:
-			TemplatedScatter(col, rows, sel, count, col_offset, col_no);
+			TemplatedScatter(col, rows, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::VARCHAR:
-			ScatterStringVector(col, rows, data_locations, sel, count, col_offset, col_no);
+			ScatterStringVector(col, rows, data_locations, sel, count, col_offset, col_no, column_count);
 			break;
 		case PhysicalType::LIST:
 		case PhysicalType::STRUCT:
diff --git a/src/duckdb/src/common/serializer/buffered_file_writer.cpp b/src/duckdb/src/common/serializer/buffered_file_writer.cpp
index a378c4ac..f0d81192 100644
--- a/src/duckdb/src/common/serializer/buffered_file_writer.cpp
+++ b/src/duckdb/src/common/serializer/buffered_file_writer.cpp
@@ -21,7 +21,7 @@ idx_t BufferedFileWriter::GetFileSize() {
 	return NumericCast(fs.GetFileSize(*handle)) + offset;
 }
 
-idx_t BufferedFileWriter::GetTotalWritten() {
+idx_t BufferedFileWriter::GetTotalWritten() const {
 	return total_written + offset;
 }
 
diff --git a/src/duckdb/src/common/sort/comparators.cpp b/src/duckdb/src/common/sort/comparators.cpp
index 82e8069d..4df4cccc 100644
--- a/src/duckdb/src/common/sort/comparators.cpp
+++ b/src/duckdb/src/common/sort/comparators.cpp
@@ -9,7 +9,7 @@ namespace duckdb {
 bool Comparators::TieIsBreakable(const idx_t &tie_col, const data_ptr_t &row_ptr, const SortLayout &sort_layout) {
 	const auto &col_idx = sort_layout.sorting_to_blob_col.at(tie_col);
 	// Check if the blob is NULL
-	ValidityBytes row_mask(row_ptr);
+	ValidityBytes row_mask(row_ptr, sort_layout.column_count);
 	idx_t entry_idx;
 	idx_t idx_in_entry;
 	ValidityBytes::GetEntryIndex(col_idx, entry_idx, idx_in_entry);
@@ -24,7 +24,7 @@ bool Comparators::TieIsBreakable(const idx_t &tie_col, const data_ptr_t &row_ptr
 	}
 	const auto &tie_col_offset = row_layout.GetOffsets()[col_idx];
 	auto tie_string = Load(row_ptr + tie_col_offset);
-	if (tie_string.GetSize() < sort_layout.prefix_lengths[tie_col]) {
+	if (tie_string.GetSize() < sort_layout.prefix_lengths[tie_col] && tie_string.GetSize() > 0) {
 		// No need to break the tie - we already compared the full string
 		return false;
 	}
@@ -71,7 +71,7 @@ int Comparators::BreakBlobTie(const idx_t &tie_col, const SBScanState &left, con
                               const SortLayout &sort_layout, const bool &external) {
 	data_ptr_t l_data_ptr = left.DataPtr(*left.sb->blob_sorting_data);
 	data_ptr_t r_data_ptr = right.DataPtr(*right.sb->blob_sorting_data);
-	if (!TieIsBreakable(tie_col, l_data_ptr, sort_layout)) {
+	if (!TieIsBreakable(tie_col, l_data_ptr, sort_layout) && !TieIsBreakable(tie_col, r_data_ptr, sort_layout)) {
 		// Quick check to see if ties can be broken
 		return 0;
 	}
@@ -195,8 +195,8 @@ int Comparators::CompareStructAndAdvance(data_ptr_t &left_ptr, data_ptr_t &right
                                          const child_list_t &types, bool valid) {
 	idx_t count = types.size();
 	// Load validity masks
-	ValidityBytes left_validity(left_ptr);
-	ValidityBytes right_validity(right_ptr);
+	ValidityBytes left_validity(left_ptr, types.size());
+	ValidityBytes right_validity(right_ptr, types.size());
 	left_ptr += (count + 7) / 8;
 	right_ptr += (count + 7) / 8;
 	// Initialize variables
@@ -235,8 +235,8 @@ int Comparators::CompareArrayAndAdvance(data_ptr_t &left_ptr, data_ptr_t &right_
 	}
 
 	// Load array validity masks
-	ValidityBytes left_validity(left_ptr);
-	ValidityBytes right_validity(right_ptr);
+	ValidityBytes left_validity(left_ptr, array_size);
+	ValidityBytes right_validity(right_ptr, array_size);
 	left_ptr += (array_size + 7) / 8;
 	right_ptr += (array_size + 7) / 8;
 
@@ -352,8 +352,8 @@ int Comparators::CompareListAndAdvance(data_ptr_t &left_ptr, data_ptr_t &right_p
 	left_ptr += sizeof(idx_t);
 	right_ptr += sizeof(idx_t);
 	// Load list validity masks
-	ValidityBytes left_validity(left_ptr);
-	ValidityBytes right_validity(right_ptr);
+	ValidityBytes left_validity(left_ptr, left_len);
+	ValidityBytes right_validity(right_ptr, right_len);
 	left_ptr += (left_len + 7) / 8;
 	right_ptr += (right_len + 7) / 8;
 	// Compare
diff --git a/src/duckdb/src/common/sort/partition_state.cpp b/src/duckdb/src/common/sort/partition_state.cpp
index d87e31fd..9c437969 100644
--- a/src/duckdb/src/common/sort/partition_state.cpp
+++ b/src/duckdb/src/common/sort/partition_state.cpp
@@ -92,7 +92,7 @@ PartitionGlobalSinkState::PartitionGlobalSinkState(ClientContext &context,
 	GenerateOrderings(partitions, orders, partition_bys, order_bys, partition_stats);
 
 	memory_per_thread = PhysicalOperator::GetMaxThreadMemory(context);
-	external = ClientConfig::GetConfig(context).force_external;
+	external = ClientConfig::GetConfig(context).GetSetting(context);
 
 	const auto thread_pages = PreviousPowerOfTwo(memory_per_thread / (4 * buffer_manager.GetBlockAllocSize()));
 	while (max_bits < 10 && (thread_pages >> max_bits) > 1) {
@@ -148,7 +148,7 @@ void PartitionGlobalSinkState::ResizeGroupingData(idx_t cardinality) {
 		return;
 	}
 	//	Is the average partition size too large?
-	const idx_t partition_size = STANDARD_ROW_GROUPS_SIZE;
+	const idx_t partition_size = DEFAULT_ROW_GROUP_SIZE;
 	const auto bits = grouping_data ? grouping_data->GetRadixBits() : 0;
 	auto new_bits = bits ? bits : 4;
 	while (new_bits < max_bits && (cardinality / RadixPartitioning::NumberOfPartitions(new_bits)) > partition_size) {
diff --git a/src/duckdb/src/common/string_util.cpp b/src/duckdb/src/common/string_util.cpp
index dd57bda7..0493b626 100644
--- a/src/duckdb/src/common/string_util.cpp
+++ b/src/duckdb/src/common/string_util.cpp
@@ -2,10 +2,12 @@
 
 #include "duckdb/common/exception.hpp"
 #include "duckdb/common/pair.hpp"
+#include "duckdb/common/stack.hpp"
 #include "duckdb/common/to_string.hpp"
 #include "duckdb/common/helper.hpp"
-#include "duckdb/function/scalar/string_functions.hpp"
+#include "duckdb/common/exception/parser_exception.hpp"
 #include "jaro_winkler.hpp"
+#include "utf8proc_wrapper.hpp"
 
 #include 
 #include 
@@ -15,6 +17,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "yyjson.hpp"
 
@@ -35,7 +38,19 @@ string StringUtil::GenerateRandomName(idx_t length) {
 }
 
 bool StringUtil::Contains(const string &haystack, const string &needle) {
-	return (haystack.find(needle) != string::npos);
+	return Find(haystack, needle).IsValid();
+}
+
+optional_idx StringUtil::Find(const string &haystack, const string &needle) {
+	auto index = haystack.find(needle);
+	if (index == string::npos) {
+		return optional_idx();
+	}
+	return optional_idx(index);
+}
+
+bool StringUtil::Contains(const string &haystack, const char &needle_char) {
+	return (haystack.find(needle_char) != string::npos);
 }
 
 void StringUtil::LTrim(string &str) {
@@ -86,16 +101,6 @@ string StringUtil::Repeat(const string &str, idx_t n) {
 	return (os.str());
 }
 
-vector StringUtil::Split(const string &str, char delimiter) {
-	std::stringstream ss(str);
-	vector lines;
-	string temp;
-	while (getline(ss, temp, delimiter)) {
-		lines.push_back(temp);
-	}
-	return (lines);
-}
-
 namespace string_util_internal {
 
 inline void SkipSpaces(const string &str, idx_t &index) {
@@ -155,6 +160,43 @@ vector StringUtil::SplitWithQuote(const string &str, char delimiter, cha
 	return entries;
 }
 
+vector StringUtil::SplitWithParentheses(const string &str, char delimiter, char par_open, char par_close) {
+	vector result;
+	string current;
+	stack parentheses;
+
+	for (size_t i = 0; i < str.size(); ++i) {
+		char ch = str[i];
+
+		// stack to keep track if we are within parentheses
+		if (ch == par_open) {
+			parentheses.push(ch);
+		}
+		if (ch == par_close) {
+			if (!parentheses.empty()) {
+				parentheses.pop();
+			} else {
+				throw InvalidInputException("Incongruent parentheses in string: '%s'", str);
+			}
+		}
+		// split if not within parentheses
+		if (parentheses.empty() && ch == delimiter) {
+			result.push_back(current);
+			current.clear();
+		} else {
+			current += ch;
+		}
+	}
+	// Add the last segment
+	if (!current.empty()) {
+		result.push_back(current);
+	}
+	if (!parentheses.empty()) {
+		throw InvalidInputException("Incongruent parentheses in string: '%s'", str);
+	}
+	return result;
+}
+
 string StringUtil::Join(const vector &input, const string &separator) {
 	return StringUtil::Join(input, input.size(), separator, [](const string &s) { return s; });
 }
@@ -236,6 +278,10 @@ bool StringUtil::IsLower(const string &str) {
 	return str == Lower(str);
 }
 
+bool StringUtil::IsUpper(const string &str) {
+	return str == Upper(str);
+}
+
 // Jenkins hash function: https://en.wikipedia.org/wiki/Jenkins_hash_function
 uint64_t StringUtil::CIHash(const string &str) {
 	uint32_t hash = 0;
@@ -254,7 +300,7 @@ bool StringUtil::CIEquals(const string &l1, const string &l2) {
 	if (l1.size() != l2.size()) {
 		return false;
 	}
-	const auto charmap = LowerFun::ASCII_TO_LOWER_MAP;
+	const auto charmap = ASCII_TO_LOWER_MAP;
 	for (idx_t c = 0; c < l1.size(); c++) {
 		if (charmap[(uint8_t)l1[c]] != charmap[(uint8_t)l2[c]]) {
 			return false;
@@ -264,7 +310,7 @@ bool StringUtil::CIEquals(const string &l1, const string &l2) {
 }
 
 bool StringUtil::CILessThan(const string &s1, const string &s2) {
-	const auto charmap = UpperFun::ASCII_TO_UPPER_MAP;
+	const auto charmap = ASCII_TO_UPPER_MAP;
 
 	unsigned char u1 {}, u2 {};
 
@@ -290,6 +336,16 @@ idx_t StringUtil::CIFind(vector &vector, const string &search_string) {
 	return DConstants::INVALID_INDEX;
 }
 
+vector StringUtil::Split(const string &str, char delimiter) {
+	std::stringstream ss(str);
+	vector lines;
+	string temp;
+	while (getline(ss, temp, delimiter)) {
+		lines.push_back(temp);
+	}
+	return (lines);
+}
+
 vector StringUtil::Split(const string &input, const string &split) {
 	vector splits;
 
@@ -509,23 +565,12 @@ unordered_map StringUtil::ParseJSONMap(const string &json) {
 	return result;
 }
 
-string StringUtil::ToJSONMap(ExceptionType type, const string &message, const unordered_map &map) {
-	D_ASSERT(map.find("exception_type") == map.end());
-	D_ASSERT(map.find("exception_message") == map.end());
-
-	yyjson_mut_doc *doc = yyjson_mut_doc_new(nullptr);
-	yyjson_mut_val *root = yyjson_mut_obj(doc);
-	yyjson_mut_doc_set_root(doc, root);
-
-	auto except_str = Exception::ExceptionTypeToString(type);
-	yyjson_mut_obj_add_strncpy(doc, root, "exception_type", except_str.c_str(), except_str.size());
-	yyjson_mut_obj_add_strncpy(doc, root, "exception_message", message.c_str(), message.size());
+string ToJsonMapInternal(const unordered_map &map, yyjson_mut_doc *doc, yyjson_mut_val *root) {
 	for (auto &entry : map) {
 		auto key = yyjson_mut_strncpy(doc, entry.first.c_str(), entry.first.size());
 		auto value = yyjson_mut_strncpy(doc, entry.second.c_str(), entry.second.size());
 		yyjson_mut_obj_add(root, key, value);
 	}
-
 	yyjson_write_err err;
 	size_t len;
 	constexpr yyjson_write_flag flags = YYJSON_WRITE_ALLOW_INVALID_UNICODE;
@@ -544,6 +589,29 @@ string StringUtil::ToJSONMap(ExceptionType type, const string &message, const un
 	// Return the result
 	return result;
 }
+string StringUtil::ToJSONMap(const unordered_map &map) {
+	yyjson_mut_doc *doc = yyjson_mut_doc_new(nullptr);
+	yyjson_mut_val *root = yyjson_mut_obj(doc);
+	yyjson_mut_doc_set_root(doc, root);
+
+	return ToJsonMapInternal(map, doc, root);
+}
+
+string StringUtil::ExceptionToJSONMap(ExceptionType type, const string &message,
+                                      const unordered_map &map) {
+	D_ASSERT(map.find("exception_type") == map.end());
+	D_ASSERT(map.find("exception_message") == map.end());
+
+	yyjson_mut_doc *doc = yyjson_mut_doc_new(nullptr);
+	yyjson_mut_val *root = yyjson_mut_obj(doc);
+	yyjson_mut_doc_set_root(doc, root);
+
+	auto except_str = Exception::ExceptionTypeToString(type);
+	yyjson_mut_obj_add_strncpy(doc, root, "exception_type", except_str.c_str(), except_str.size());
+	yyjson_mut_obj_add_strncpy(doc, root, "exception_message", message.c_str(), message.size());
+
+	return ToJsonMapInternal(map, doc, root);
+}
 
 string StringUtil::GetFileName(const string &file_path) {
 
@@ -713,4 +781,60 @@ string StringUtil::URLDecode(const string &input, bool plus_to_space) {
 	return string(result_data.get(), result_size);
 }
 
+uint32_t StringUtil::StringToEnum(const EnumStringLiteral enum_list[], idx_t enum_count, const char *enum_name,
+                                  const char *str_value) {
+	for (idx_t i = 0; i < enum_count; i++) {
+		if (CIEquals(enum_list[i].string, str_value)) {
+			return enum_list[i].number;
+		}
+	}
+	// string to enum conversion failed - generate candidates
+	vector candidates;
+	for (idx_t i = 0; i < enum_count; i++) {
+		candidates.push_back(enum_list[i].string);
+	}
+	auto closest_values = TopNJaroWinkler(candidates, str_value);
+	auto message = CandidatesMessage(closest_values, "Candidates");
+	throw NotImplementedException("Enum value: unrecognized value \"%s\" for enum \"%s\"\n%s", str_value, enum_name,
+	                              message);
+}
+
+const char *StringUtil::EnumToString(const EnumStringLiteral enum_list[], idx_t enum_count, const char *enum_name,
+                                     uint32_t enum_value) {
+	for (idx_t i = 0; i < enum_count; i++) {
+		if (enum_list[i].number == enum_value) {
+			return enum_list[i].string;
+		}
+	}
+	throw NotImplementedException("Enum value: unrecognized enum value \"%d\" for enum \"%s\"", enum_value, enum_name);
+}
+
+const uint8_t StringUtil::ASCII_TO_UPPER_MAP[] = {
+    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,  21,
+    22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,
+    44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  65,
+    66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,
+    88,  89,  90,  91,  92,  93,  94,  95,  96,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,  75,  76,  77,
+    78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,  90,  123, 124, 125, 126, 127, 128, 129, 130, 131,
+    132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+    154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+    176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+    198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+    220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+    242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255};
+
+const uint8_t StringUtil::ASCII_TO_LOWER_MAP[] = {
+    0,   1,   2,   3,   4,   5,   6,   7,   8,   9,   10,  11,  12,  13,  14,  15,  16,  17,  18,  19,  20,  21,
+    22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,  36,  37,  38,  39,  40,  41,  42,  43,
+    44,  45,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,  59,  60,  61,  62,  63,  64,  97,
+    98,  99,  100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+    120, 121, 122, 91,  92,  93,  94,  95,  96,  97,  98,  99,  100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+    110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
+    132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
+    154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+    176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197,
+    198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
+    220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
+    242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255};
+
 } // namespace duckdb
diff --git a/src/duckdb/src/common/types.cpp b/src/duckdb/src/common/types.cpp
index a440b496..7ec71892 100644
--- a/src/duckdb/src/common/types.cpp
+++ b/src/duckdb/src/common/types.cpp
@@ -13,6 +13,7 @@
 #include "duckdb/common/serializer/deserializer.hpp"
 #include "duckdb/common/serializer/serializer.hpp"
 #include "duckdb/common/string_util.hpp"
+#include "duckdb/common/type_visitor.hpp"
 #include "duckdb/common/types/decimal.hpp"
 #include "duckdb/common/types/hash.hpp"
 #include "duckdb/common/types/string_type.hpp"
@@ -24,11 +25,12 @@
 #include "duckdb/main/attached_database.hpp"
 #include "duckdb/main/client_context.hpp"
 #include "duckdb/main/client_data.hpp"
+#include "duckdb/main/config.hpp"
 #include "duckdb/main/database.hpp"
 #include "duckdb/main/database_manager.hpp"
 #include "duckdb/parser/keyword_helper.hpp"
 #include "duckdb/parser/parser.hpp"
-#include "duckdb/main/config.hpp"
+
 #include 
 
 namespace duckdb {
@@ -170,6 +172,7 @@ string LogicalTypeIdToString(LogicalTypeId type) {
 
 constexpr const LogicalTypeId LogicalType::INVALID;
 constexpr const LogicalTypeId LogicalType::SQLNULL;
+constexpr const LogicalTypeId LogicalType::UNKNOWN;
 constexpr const LogicalTypeId LogicalType::BOOLEAN;
 constexpr const LogicalTypeId LogicalType::TINYINT;
 constexpr const LogicalTypeId LogicalType::UTINYINT;
@@ -559,7 +562,7 @@ LogicalType TransformStringToLogicalType(const string &str) {
 		                                      "INT2",
 		                                      "SHORT",
 		                                      "TIME",
-		                                      "TIMESTAMPTZ	",
+		                                      "TIMESTAMPTZ",
 		                                      "TIMESTAMP",
 		                                      "DATETIME",
 		                                      "TINYINT",
@@ -678,6 +681,54 @@ bool LogicalType::IsValid() const {
 	return id() != LogicalTypeId::INVALID && id() != LogicalTypeId::UNKNOWN;
 }
 
+bool LogicalType::IsComplete() const {
+	// Check if type does not contain incomplete types
+	return !TypeVisitor::Contains(*this, [](const LogicalType &type) {
+		switch (type.id()) {
+		case LogicalTypeId::INVALID:
+		case LogicalTypeId::UNKNOWN:
+		case LogicalTypeId::ANY:
+			return true; // These are incomplete by default
+		case LogicalTypeId::LIST:
+		case LogicalTypeId::MAP:
+			if (!type.AuxInfo() || type.AuxInfo()->type != ExtraTypeInfoType::LIST_TYPE_INFO) {
+				return true; // Missing or incorrect type info
+			}
+			break;
+		case LogicalTypeId::STRUCT:
+		case LogicalTypeId::UNION:
+			if (!type.AuxInfo() || type.AuxInfo()->type != ExtraTypeInfoType::STRUCT_TYPE_INFO) {
+				return true; // Missing or incorrect type info
+			}
+			break;
+		case LogicalTypeId::ARRAY:
+			if (!type.AuxInfo() || type.AuxInfo()->type != ExtraTypeInfoType::ARRAY_TYPE_INFO) {
+				return true; // Missing or incorrect type info
+			}
+			break;
+		case LogicalTypeId::DECIMAL:
+			if (!type.AuxInfo() || type.AuxInfo()->type != ExtraTypeInfoType::DECIMAL_TYPE_INFO) {
+				return true; // Missing or incorrect type info
+			}
+			break;
+		default:
+			return false;
+		}
+
+		// Type has type info, check if it is complete
+		D_ASSERT(type.AuxInfo());
+		switch (type.AuxInfo()->type) {
+		case ExtraTypeInfoType::STRUCT_TYPE_INFO:
+			return type.AuxInfo()->Cast().child_types.empty(); // Cannot be empty
+		case ExtraTypeInfoType::DECIMAL_TYPE_INFO:
+			return DecimalType::GetWidth(type) >= 1 && DecimalType::GetWidth(type) <= Decimal::MAX_WIDTH_DECIMAL &&
+			       DecimalType::GetScale(type) <= DecimalType::GetWidth(type);
+		default:
+			return false; // Nested types are checked by TypeVisitor recursion
+		}
+	});
+}
+
 bool LogicalType::GetDecimalProperties(uint8_t &width, uint8_t &scale) const {
 	switch (id_) {
 	case LogicalTypeId::SQLNULL:
diff --git a/src/duckdb/src/common/types/bit.cpp b/src/duckdb/src/common/types/bit.cpp
index f263c2c4..5006d64f 100644
--- a/src/duckdb/src/common/types/bit.cpp
+++ b/src/duckdb/src/common/types/bit.cpp
@@ -22,7 +22,7 @@ idx_t Bit::ComputeBitstringLen(idx_t len) {
 	return result;
 }
 
-static inline idx_t GetBitPadding(const string_t &bit_string) {
+static inline idx_t GetBitPadding(const bitstring_t &bit_string) {
 	auto data = const_data_ptr_cast(bit_string.GetData());
 	D_ASSERT(idx_t(data[0]) <= 8);
 	return data[0];
@@ -37,14 +37,14 @@ static inline idx_t GetBitSize(const string_t &str) {
 	return str_len;
 }
 
-uint8_t Bit::GetFirstByte(const string_t &str) {
+uint8_t Bit::GetFirstByte(const bitstring_t &str) {
 	D_ASSERT(str.GetSize() > 1);
 
 	auto data = const_data_ptr_cast(str.GetData());
 	return data[1] & ((1 << (8 - data[0])) - 1);
 }
 
-void Bit::Finalize(string_t &str) {
+void Bit::Finalize(bitstring_t &str) {
 	// bit strings require all padding bits to be set to 1
 	// this method sets all padding bits to 1
 	auto padding = GetBitPadding(str);
@@ -55,7 +55,7 @@ void Bit::Finalize(string_t &str) {
 	Bit::Verify(str);
 }
 
-void Bit::SetEmptyBitString(string_t &target, string_t &input) {
+void Bit::SetEmptyBitString(bitstring_t &target, string_t &input) {
 	char *res_buf = target.GetDataWriteable();
 	const char *buf = input.GetData();
 	memset(res_buf, 0, input.GetSize());
@@ -63,7 +63,7 @@ void Bit::SetEmptyBitString(string_t &target, string_t &input) {
 	Bit::Finalize(target);
 }
 
-void Bit::SetEmptyBitString(string_t &target, idx_t len) {
+void Bit::SetEmptyBitString(bitstring_t &target, idx_t len) {
 	char *res_buf = target.GetDataWriteable();
 	memset(res_buf, 0, target.GetSize());
 	res_buf[0] = ComputePadding(len);
@@ -71,7 +71,7 @@ void Bit::SetEmptyBitString(string_t &target, idx_t len) {
 }
 
 // **** casting functions ****
-void Bit::ToString(string_t bits, char *output) {
+void Bit::ToString(bitstring_t bits, char *output) {
 	auto data = const_data_ptr_cast(bits.GetData());
 	auto len = bits.GetSize();
 
@@ -87,7 +87,7 @@ void Bit::ToString(string_t bits, char *output) {
 	}
 }
 
-string Bit::ToString(string_t str) {
+string Bit::ToString(bitstring_t str) {
 	auto len = BitLength(str);
 	auto buffer = make_unsafe_uniq_array_uninitialized(len);
 	ToString(str, buffer.get());
@@ -117,7 +117,7 @@ bool Bit::TryGetBitStringSize(string_t str, idx_t &str_len, string *error_messag
 	return true;
 }
 
-void Bit::ToBit(string_t str, string_t &output_str) {
+void Bit::ToBit(string_t str, bitstring_t &output_str) {
 	auto data = const_data_ptr_cast(str.GetData());
 	auto len = str.GetSize();
 	auto output = output_str.GetDataWriteable();
@@ -151,12 +151,12 @@ void Bit::ToBit(string_t str, string_t &output_str) {
 string Bit::ToBit(string_t str) {
 	auto bit_len = GetBitSize(str);
 	auto buffer = make_unsafe_uniq_array_uninitialized(bit_len);
-	string_t output_str(buffer.get(), UnsafeNumericCast(bit_len));
+	bitstring_t output_str(buffer.get(), UnsafeNumericCast(bit_len));
 	Bit::ToBit(str, output_str);
 	return output_str.GetString();
 }
 
-void Bit::BlobToBit(string_t blob, string_t &output_str) {
+void Bit::BlobToBit(string_t blob, bitstring_t &output_str) {
 	auto data = const_data_ptr_cast(blob.GetData());
 	auto output = output_str.GetDataWriteable();
 	idx_t size = blob.GetSize();
@@ -167,12 +167,12 @@ void Bit::BlobToBit(string_t blob, string_t &output_str) {
 
 string Bit::BlobToBit(string_t blob) {
 	auto buffer = make_unsafe_uniq_array_uninitialized(blob.GetSize() + 1);
-	string_t output_str(buffer.get(), UnsafeNumericCast(blob.GetSize() + 1));
+	bitstring_t output_str(buffer.get(), UnsafeNumericCast(blob.GetSize() + 1));
 	Bit::BlobToBit(blob, output_str);
 	return output_str.GetString();
 }
 
-void Bit::BitToBlob(string_t bit, string_t &output_blob) {
+void Bit::BitToBlob(bitstring_t bit, string_t &output_blob) {
 	D_ASSERT(bit.GetSize() == output_blob.GetSize() + 1);
 
 	auto data = const_data_ptr_cast(bit.GetData());
@@ -189,7 +189,7 @@ void Bit::BitToBlob(string_t bit, string_t &output_blob) {
 	}
 }
 
-string Bit::BitToBlob(string_t bit) {
+string Bit::BitToBlob(bitstring_t bit) {
 	D_ASSERT(bit.GetSize() > 1);
 
 	auto buffer = make_unsafe_uniq_array_uninitialized(bit.GetSize() - 1);
@@ -199,32 +199,53 @@ string Bit::BitToBlob(string_t bit) {
 }
 
 // **** scalar functions ****
-void Bit::BitString(const string_t &input, const idx_t &bit_length, string_t &result) {
+void Bit::BitString(const string_t &input, idx_t bit_length, bitstring_t &result) {
 	char *res_buf = result.GetDataWriteable();
 	const char *buf = input.GetData();
 
 	auto padding = ComputePadding(bit_length);
 	res_buf[0] = padding;
+	auto padding_len = UnsafeNumericCast(padding);
 	for (idx_t i = 0; i < bit_length; i++) {
 		if (i < bit_length - input.GetSize()) {
-			Bit::SetBit(result, i, 0);
+			Bit::SetBitInternal(result, i + padding_len, 0);
 		} else {
 			idx_t bit = buf[i - (bit_length - input.GetSize())] == '1' ? 1 : 0;
+			Bit::SetBitInternal(result, i + padding_len, bit);
+		}
+	}
+	Bit::Finalize(result);
+}
+
+void Bit::ExtendBitString(const bitstring_t &input, idx_t bit_length, bitstring_t &result) {
+	uint8_t *res_buf = reinterpret_cast(result.GetDataWriteable());
+
+	auto padding = ComputePadding(bit_length);
+	res_buf[0] = static_cast(padding);
+
+	idx_t original_length = Bit::BitLength(input);
+	D_ASSERT(bit_length >= original_length);
+	idx_t shift = bit_length - original_length;
+	for (idx_t i = 0; i < bit_length; i++) {
+		if (i < shift) {
+			Bit::SetBit(result, i, 0);
+		} else {
+			idx_t bit = Bit::GetBit(input, i - shift);
 			Bit::SetBit(result, i, bit);
 		}
 	}
 	Bit::Finalize(result);
 }
 
-idx_t Bit::BitLength(string_t bits) {
+idx_t Bit::BitLength(bitstring_t bits) {
 	return ((bits.GetSize() - 1) * 8) - GetBitPadding(bits);
 }
 
-idx_t Bit::OctetLength(string_t bits) {
+idx_t Bit::OctetLength(bitstring_t bits) {
 	return bits.GetSize() - 1;
 }
 
-idx_t Bit::BitCount(string_t bits) {
+idx_t Bit::BitCount(bitstring_t bits) {
 	idx_t count = 0;
 	const char *buf = bits.GetData();
 	for (idx_t byte_idx = 1; byte_idx < OctetLength(bits) + 1; byte_idx++) {
@@ -235,7 +256,7 @@ idx_t Bit::BitCount(string_t bits) {
 	return count - GetBitPadding(bits);
 }
 
-idx_t Bit::BitPosition(string_t substring, string_t bits) {
+idx_t Bit::BitPosition(bitstring_t substring, bitstring_t bits) {
 	const char *buf = bits.GetData();
 	auto len = bits.GetSize();
 	auto substr_len = BitLength(substring);
@@ -269,7 +290,7 @@ idx_t Bit::BitPosition(string_t substring, string_t bits) {
 	return 0;
 }
 
-idx_t Bit::GetBit(string_t bit_string, idx_t n) {
+idx_t Bit::GetBit(bitstring_t bit_string, idx_t n) {
 	return Bit::GetBitInternal(bit_string, n + GetBitPadding(bit_string));
 }
 
@@ -277,7 +298,7 @@ idx_t Bit::GetBitIndex(idx_t n) {
 	return n / 8 + 1;
 }
 
-idx_t Bit::GetBitInternal(string_t bit_string, idx_t n) {
+idx_t Bit::GetBitInternal(bitstring_t bit_string, idx_t n) {
 	const char *buf = bit_string.GetData();
 	auto idx = Bit::GetBitIndex(n);
 	D_ASSERT(idx < bit_string.GetSize());
@@ -285,12 +306,12 @@ idx_t Bit::GetBitInternal(string_t bit_string, idx_t n) {
 	return (byte & 1 ? 1 : 0);
 }
 
-void Bit::SetBit(string_t &bit_string, idx_t n, idx_t new_value) {
+void Bit::SetBit(bitstring_t &bit_string, idx_t n, idx_t new_value) {
 	SetBitInternal(bit_string, n + GetBitPadding(bit_string), new_value);
 	Bit::Finalize(bit_string);
 }
 
-void Bit::SetBitInternal(string_t &bit_string, idx_t n, idx_t new_value) {
+void Bit::SetBitInternal(bitstring_t &bit_string, idx_t n, idx_t new_value) {
 	uint8_t *buf = reinterpret_cast(bit_string.GetDataWriteable());
 
 	auto idx = Bit::GetBitIndex(n);
@@ -305,39 +326,41 @@ void Bit::SetBitInternal(string_t &bit_string, idx_t n, idx_t new_value) {
 }
 
 // **** BITWISE operators ****
-void Bit::RightShift(const string_t &bit_string, const idx_t &shift, string_t &result) {
+void Bit::RightShift(const bitstring_t &bit_string, idx_t shift, bitstring_t &result) {
 	uint8_t *res_buf = reinterpret_cast(result.GetDataWriteable());
 	const uint8_t *buf = reinterpret_cast(bit_string.GetData());
 
 	res_buf[0] = buf[0];
+	auto padding = GetBitPadding(result);
 	for (idx_t i = 0; i < Bit::BitLength(result); i++) {
 		if (i < shift) {
-			Bit::SetBit(result, i, 0);
+			Bit::SetBitInternal(result, i + padding, 0);
 		} else {
 			idx_t bit = Bit::GetBit(bit_string, i - shift);
-			Bit::SetBit(result, i, bit);
+			Bit::SetBitInternal(result, i + padding, bit);
 		}
 	}
 	Bit::Finalize(result);
 }
 
-void Bit::LeftShift(const string_t &bit_string, const idx_t &shift, string_t &result) {
+void Bit::LeftShift(const bitstring_t &bit_string, idx_t shift, bitstring_t &result) {
 	uint8_t *res_buf = reinterpret_cast(result.GetDataWriteable());
 	const uint8_t *buf = reinterpret_cast(bit_string.GetData());
 
 	res_buf[0] = buf[0];
+	auto padding = GetBitPadding(result);
 	for (idx_t i = 0; i < Bit::BitLength(bit_string); i++) {
 		if (i < (Bit::BitLength(bit_string) - shift)) {
 			idx_t bit = Bit::GetBit(bit_string, shift + i);
-			Bit::SetBit(result, i, bit);
+			Bit::SetBitInternal(result, i + padding, bit);
 		} else {
-			Bit::SetBit(result, i, 0);
+			Bit::SetBitInternal(result, i + padding, 0);
 		}
 	}
 	Bit::Finalize(result);
 }
 
-void Bit::BitwiseAnd(const string_t &rhs, const string_t &lhs, string_t &result) {
+void Bit::BitwiseAnd(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result) {
 	if (Bit::BitLength(lhs) != Bit::BitLength(rhs)) {
 		throw InvalidInputException("Cannot AND bit strings of different sizes");
 	}
@@ -353,7 +376,7 @@ void Bit::BitwiseAnd(const string_t &rhs, const string_t &lhs, string_t &result)
 	Bit::Finalize(result);
 }
 
-void Bit::BitwiseOr(const string_t &rhs, const string_t &lhs, string_t &result) {
+void Bit::BitwiseOr(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result) {
 	if (Bit::BitLength(lhs) != Bit::BitLength(rhs)) {
 		throw InvalidInputException("Cannot OR bit strings of different sizes");
 	}
@@ -369,7 +392,7 @@ void Bit::BitwiseOr(const string_t &rhs, const string_t &lhs, string_t &result)
 	Bit::Finalize(result);
 }
 
-void Bit::BitwiseXor(const string_t &rhs, const string_t &lhs, string_t &result) {
+void Bit::BitwiseXor(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result) {
 	if (Bit::BitLength(lhs) != Bit::BitLength(rhs)) {
 		throw InvalidInputException("Cannot XOR bit strings of different sizes");
 	}
@@ -385,7 +408,7 @@ void Bit::BitwiseXor(const string_t &rhs, const string_t &lhs, string_t &result)
 	Bit::Finalize(result);
 }
 
-void Bit::BitwiseNot(const string_t &input, string_t &result) {
+void Bit::BitwiseNot(const bitstring_t &input, bitstring_t &result) {
 	uint8_t *result_buf = reinterpret_cast(result.GetDataWriteable());
 	const uint8_t *buf = reinterpret_cast(input.GetData());
 
@@ -396,7 +419,7 @@ void Bit::BitwiseNot(const string_t &input, string_t &result) {
 	Bit::Finalize(result);
 }
 
-void Bit::Verify(const string_t &input) {
+void Bit::Verify(const bitstring_t &input) {
 #ifdef DEBUG
 	// bit strings require all padding bits to be set to 1
 	auto padding = GetBitPadding(input);
diff --git a/src/duckdb/src/common/types/column/column_data_allocator.cpp b/src/duckdb/src/common/types/column/column_data_allocator.cpp
index 0f2c6384..66a1e612 100644
--- a/src/duckdb/src/common/types/column/column_data_allocator.cpp
+++ b/src/duckdb/src/common/types/column/column_data_allocator.cpp
@@ -1,7 +1,9 @@
 #include "duckdb/common/types/column/column_data_allocator.hpp"
 
+#include "duckdb/common/radix_partitioning.hpp"
 #include "duckdb/common/types/column/column_data_collection_segment.hpp"
 #include "duckdb/storage/buffer/block_handle.hpp"
+#include "duckdb/storage/buffer/buffer_pool.hpp"
 #include "duckdb/storage/buffer_manager.hpp"
 
 namespace duckdb {
@@ -45,6 +47,21 @@ ColumnDataAllocator::ColumnDataAllocator(ColumnDataAllocator &other) {
 	}
 }
 
+ColumnDataAllocator::~ColumnDataAllocator() {
+	if (type == ColumnDataAllocatorType::IN_MEMORY_ALLOCATOR) {
+		return;
+	}
+	for (auto &block : blocks) {
+		block.handle->SetDestroyBufferUpon(DestroyBufferUpon::UNPIN);
+	}
+	const auto data_size = SizeInBytes();
+	blocks.clear();
+	if (Allocator::SupportsFlush() &&
+	    data_size > alloc.buffer_manager->GetBufferPool().GetAllocatorBulkDeallocationFlushThreshold()) {
+		Allocator::FlushAll();
+	}
+}
+
 BufferHandle ColumnDataAllocator::Pin(uint32_t block_id) {
 	D_ASSERT(type == ColumnDataAllocatorType::BUFFER_MANAGER_ALLOCATOR || type == ColumnDataAllocatorType::HYBRID);
 	shared_ptr handle;
@@ -68,6 +85,9 @@ BufferHandle ColumnDataAllocator::AllocateBlock(idx_t size) {
 	auto pin = alloc.buffer_manager->Allocate(MemoryTag::COLUMN_DATA, max_size, false);
 	data.handle = pin.GetBlockHandle();
 	blocks.push_back(std::move(data));
+	if (partition_index.IsValid()) { // Set the eviction queue index logarithmically using RadixBits
+		blocks.back().handle->SetEvictionQueueIndex(RadixPartitioning::RadixBits(partition_index.GetIndex()));
+	}
 	allocated_size += max_size;
 	return pin;
 }
diff --git a/src/duckdb/src/common/types/column/column_data_collection.cpp b/src/duckdb/src/common/types/column/column_data_collection.cpp
index c3740444..d6e01e5a 100644
--- a/src/duckdb/src/common/types/column/column_data_collection.cpp
+++ b/src/duckdb/src/common/types/column/column_data_collection.cpp
@@ -1,14 +1,14 @@
 #include "duckdb/common/types/column/column_data_collection.hpp"
 
 #include "duckdb/common/printer.hpp"
+#include "duckdb/common/serializer/deserializer.hpp"
+#include "duckdb/common/serializer/serializer.hpp"
 #include "duckdb/common/string_util.hpp"
 #include "duckdb/common/types/column/column_data_collection_segment.hpp"
 #include "duckdb/common/types/value_map.hpp"
 #include "duckdb/common/uhugeint.hpp"
 #include "duckdb/common/vector_operations/vector_operations.hpp"
 #include "duckdb/storage/buffer_manager.hpp"
-#include "duckdb/common/serializer/serializer.hpp"
-#include "duckdb/common/serializer/deserializer.hpp"
 
 namespace duckdb {
 
@@ -119,6 +119,13 @@ idx_t ColumnDataCollection::AllocationSize() const {
 	return total_size;
 }
 
+void ColumnDataCollection::SetPartitionIndex(const idx_t index) {
+	D_ASSERT(!partition_index.IsValid());
+	D_ASSERT(Count() == 0);
+	partition_index = index;
+	allocator->SetPartitionIndex(index);
+}
+
 //===--------------------------------------------------------------------===//
 // ColumnDataRow
 //===--------------------------------------------------------------------===//
@@ -311,7 +318,7 @@ void ColumnDataCollection::InitializeAppend(ColumnDataAppendState &state) {
 
 void ColumnDataCopyValidity(const UnifiedVectorFormat &source_data, validity_t *target, idx_t source_offset,
                             idx_t target_offset, idx_t copy_count) {
-	ValidityMask validity(target);
+	ValidityMask validity(target, STANDARD_VECTOR_SIZE);
 	if (target_offset == 0) {
 		// first time appending to this vector
 		// all data here is still uninitialized
@@ -401,9 +408,9 @@ static void TemplatedColumnDataCopy(ColumnDataMetaData &meta_data, const Unified
 
 		auto base_ptr = segment.allocator->GetDataPointer(append_state.current_chunk_state, current_segment.block_id,
 		                                                  current_segment.offset);
-		auto validity_data = ColumnDataCollectionSegment::GetValidityPointer(base_ptr, OP::TypeSize());
+		auto validity_data = ColumnDataCollectionSegment::GetValidityPointerForWriting(base_ptr, OP::TypeSize());
 
-		ValidityMask result_validity(validity_data);
+		ValidityMask result_validity(validity_data, STANDARD_VECTOR_SIZE);
 		if (current_segment.count == 0) {
 			// first time appending to this vector
 			// all data here is still uninitialized
@@ -517,8 +524,8 @@ void ColumnDataCopy(ColumnDataMetaData &meta_data, const UnifiedVector
 		auto ¤t_segment = segment.GetVectorData(current_index);
 		auto base_ptr = segment.allocator->GetDataPointer(append_state.current_chunk_state, current_segment.block_id,
 		                                                  current_segment.offset);
-		auto validity_data = ColumnDataCollectionSegment::GetValidityPointer(base_ptr, sizeof(string_t));
-		ValidityMask target_validity(validity_data);
+		auto validity_data = ColumnDataCollectionSegment::GetValidityPointerForWriting(base_ptr, sizeof(string_t));
+		ValidityMask target_validity(validity_data, STANDARD_VECTOR_SIZE);
 		if (current_segment.count == 0) {
 			// first time appending to this vector
 			// all data here is still uninitialized
@@ -772,7 +779,8 @@ ColumnDataCopyFunction ColumnDataCollection::GetCopyFunction(const LogicalType &
 		break;
 	}
 	default:
-		throw InternalException("Unsupported type for ColumnDataCollection::GetCopyFunction");
+		throw InternalException("Unsupported type %s for ColumnDataCollection::GetCopyFunction",
+		                        EnumUtil::ToString(type.InternalType()));
 	}
 	result.function = function;
 	return result;
@@ -923,6 +931,29 @@ bool ColumnDataCollection::NextScanIndex(ColumnDataScanState &state, idx_t &chun
 	return true;
 }
 
+bool ColumnDataCollection::PrevScanIndex(ColumnDataScanState &state, idx_t &chunk_index, idx_t &segment_index,
+                                         idx_t &row_index) const {
+	// check within the current segment if we still have chunks to scan
+	// Note that state.chunk_index is 1-indexed, with 0 as undefined.
+	while (state.chunk_index <= 1) {
+		if (!state.segment_index) {
+			return false;
+		}
+
+		--state.segment_index;
+		state.chunk_index = segments[state.segment_index]->chunk_data.size() + 1;
+		state.current_chunk_state.handles.clear();
+	}
+
+	--state.chunk_index;
+	segment_index = state.segment_index;
+	chunk_index = state.chunk_index - 1;
+	state.next_row_index = state.current_row_index;
+	state.current_row_index -= segments[state.segment_index]->chunk_data[chunk_index].count;
+	row_index = state.current_row_index;
+	return true;
+}
+
 void ColumnDataCollection::ScanAtIndex(ColumnDataParallelScanState &state, ColumnDataLocalScanState &lstate,
                                        DataChunk &result, idx_t chunk_index, idx_t segment_index,
                                        idx_t row_index) const {
@@ -955,6 +986,38 @@ bool ColumnDataCollection::Scan(ColumnDataScanState &state, DataChunk &result) c
 	return true;
 }
 
+bool ColumnDataCollection::Seek(idx_t seek_idx, ColumnDataScanState &state, DataChunk &result) const {
+	//	Idempotency: Don't change anything if the row is already in range
+	if (state.current_row_index <= seek_idx && seek_idx < state.next_row_index) {
+		return true;
+	}
+
+	result.Reset();
+
+	//	Linear scan for now. We could use a current_row_index => chunk map at some point
+	//	but most use cases should be pretty local
+	idx_t chunk_index;
+	idx_t segment_index;
+	idx_t row_index;
+	while (seek_idx < state.current_row_index) {
+		if (!PrevScanIndex(state, chunk_index, segment_index, row_index)) {
+			return false;
+		}
+	}
+	while (state.next_row_index <= seek_idx) {
+		if (!NextScanIndex(state, chunk_index, segment_index, row_index)) {
+			return false;
+		}
+	}
+
+	// found a chunk to scan -> scan it
+	auto &segment = *segments[segment_index];
+	state.current_chunk_state.properties = state.properties;
+	segment.ReadChunk(chunk_index, state.current_chunk_state, result, state.column_ids);
+	result.Verify();
+	return true;
+}
+
 ColumnDataRowCollection ColumnDataCollection::GetRows() const {
 	return ColumnDataRowCollection(*this);
 }
diff --git a/src/duckdb/src/common/types/column/column_data_collection_segment.cpp b/src/duckdb/src/common/types/column/column_data_collection_segment.cpp
index fd2e39ff..f8b0c158 100644
--- a/src/duckdb/src/common/types/column/column_data_collection_segment.cpp
+++ b/src/duckdb/src/common/types/column/column_data_collection_segment.cpp
@@ -14,10 +14,31 @@ idx_t ColumnDataCollectionSegment::GetDataSize(idx_t type_size) {
 	return AlignValue(type_size * STANDARD_VECTOR_SIZE);
 }
 
-validity_t *ColumnDataCollectionSegment::GetValidityPointer(data_ptr_t base_ptr, idx_t type_size) {
+validity_t *ColumnDataCollectionSegment::GetValidityPointerForWriting(data_ptr_t base_ptr, idx_t type_size) {
 	return reinterpret_cast(base_ptr + GetDataSize(type_size));
 }
 
+validity_t *ColumnDataCollectionSegment::GetValidityPointer(data_ptr_t base_ptr, idx_t type_size, idx_t count) {
+	auto validity_mask = reinterpret_cast(base_ptr + GetDataSize(type_size));
+
+	// Optimized check to see if all entries are valid
+	for (idx_t i = 0; i < (count / ValidityMask::BITS_PER_VALUE); i++) {
+		if (!ValidityMask::AllValid(validity_mask[i])) {
+			return validity_mask;
+		}
+	}
+
+	if ((count % ValidityMask::BITS_PER_VALUE) != 0) {
+		// Create a mask with the lower `bits_to_check` bits set to 1
+		validity_t mask = (1ULL << (count % ValidityMask::BITS_PER_VALUE)) - 1;
+		if ((validity_mask[(count / ValidityMask::BITS_PER_VALUE)] & mask) != mask) {
+			return validity_mask;
+		}
+	}
+	// All entries are valid, no need to initialize the validity mask
+	return nullptr;
+}
+
 VectorDataIndex ColumnDataCollectionSegment::AllocateVectorInternal(const LogicalType &type, ChunkMetaData &chunk_meta,
                                                                     ChunkManagementState *chunk_state) {
 	VectorMetaData meta_data;
@@ -141,11 +162,11 @@ idx_t ColumnDataCollectionSegment::ReadVectorInternal(ChunkManagementState &stat
 	auto &vdata = GetVectorData(vector_index);
 
 	auto base_ptr = allocator->GetDataPointer(state, vdata.block_id, vdata.offset);
-	auto validity_data = GetValidityPointer(base_ptr, type_size);
+	auto validity_data = GetValidityPointer(base_ptr, type_size, vdata.count);
 	if (!vdata.next_data.IsValid() && state.properties != ColumnDataScanProperties::DISALLOW_ZERO_COPY) {
 		// no next data, we can do a zero-copy read of this vector
 		FlatVector::SetData(result, base_ptr);
-		FlatVector::Validity(result).Initialize(validity_data);
+		FlatVector::Validity(result).Initialize(validity_data, STANDARD_VECTOR_SIZE);
 		return vdata.count;
 	}
 
@@ -169,11 +190,11 @@ idx_t ColumnDataCollectionSegment::ReadVectorInternal(ChunkManagementState &stat
 	while (next_index.IsValid()) {
 		auto ¤t_vdata = GetVectorData(next_index);
 		base_ptr = allocator->GetDataPointer(state, current_vdata.block_id, current_vdata.offset);
-		validity_data = GetValidityPointer(base_ptr, type_size);
+		validity_data = GetValidityPointer(base_ptr, type_size, current_vdata.count);
 		if (type_size > 0) {
 			memcpy(target_data + current_offset * type_size, base_ptr, current_vdata.count * type_size);
 		}
-		ValidityMask current_validity(validity_data);
+		ValidityMask current_validity(validity_data, STANDARD_VECTOR_SIZE);
 		target_validity.SliceInPlace(current_validity, current_offset, 0, current_vdata.count);
 		current_offset += current_vdata.count;
 		next_index = current_vdata.next_data;
@@ -235,6 +256,7 @@ void ColumnDataCollectionSegment::ReadChunk(idx_t chunk_index, ChunkManagementSt
                                             const vector &column_ids) {
 	D_ASSERT(chunk.ColumnCount() == column_ids.size());
 	D_ASSERT(state.properties != ColumnDataScanProperties::INVALID);
+	chunk.Reset();
 	InitializeChunkState(chunk_index, state);
 	auto &chunk_meta = chunk_data[chunk_index];
 	for (idx_t i = 0; i < column_ids.size(); i++) {
diff --git a/src/duckdb/src/common/types/conflict_manager.cpp b/src/duckdb/src/common/types/conflict_manager.cpp
index 8e7ce0b9..d06e7244 100644
--- a/src/duckdb/src/common/types/conflict_manager.cpp
+++ b/src/duckdb/src/common/types/conflict_manager.cpp
@@ -212,6 +212,18 @@ idx_t ConflictManager::ConflictCount() const {
 	return conflicts.Count();
 }
 
+void ConflictManager::AddIndex(BoundIndex &index) {
+	matched_indexes.insert(&index);
+}
+
+bool ConflictManager::MatchedIndex(BoundIndex &index) {
+	return matched_indexes.count(&index);
+}
+
+const unordered_set &ConflictManager::MatchedIndexes() const {
+	return matched_indexes;
+}
+
 void ConflictManager::Finalize() {
 	D_ASSERT(!finalized);
 	if (SingleIndexTarget()) {
@@ -251,8 +263,4 @@ VerifyExistenceType ConflictManager::LookupType() const {
 	return this->lookup_type;
 }
 
-void ConflictManager::SetIndexCount(idx_t count) {
-	index_count = count;
-}
-
 } // namespace duckdb
diff --git a/src/duckdb/src/common/types/data_chunk.cpp b/src/duckdb/src/common/types/data_chunk.cpp
index eea02568..8b00a95f 100644
--- a/src/duckdb/src/common/types/data_chunk.cpp
+++ b/src/duckdb/src/common/types/data_chunk.cpp
@@ -26,50 +26,53 @@ DataChunk::~DataChunk() {
 }
 
 void DataChunk::InitializeEmpty(const vector &types) {
-	InitializeEmpty(types.begin(), types.end());
-}
-
-void DataChunk::Initialize(Allocator &allocator, const vector &types, idx_t capacity_p) {
-	Initialize(allocator, types.begin(), types.end(), capacity_p);
+	D_ASSERT(data.empty());
+	capacity = STANDARD_VECTOR_SIZE;
+	for (idx_t i = 0; i < types.size(); i++) {
+		data.emplace_back(types[i], nullptr);
+	}
 }
 
 void DataChunk::Initialize(ClientContext &context, const vector &types, idx_t capacity_p) {
 	Initialize(Allocator::Get(context), types, capacity_p);
 }
 
-idx_t DataChunk::GetAllocationSize() const {
-	idx_t total_size = 0;
-	auto cardinality = size();
-	for (auto &vec : data) {
-		total_size += vec.GetAllocationSize(cardinality);
-	}
-	return total_size;
+void DataChunk::Initialize(Allocator &allocator, const vector &types, idx_t capacity_p) {
+	auto initialize = vector(types.size(), true);
+	Initialize(allocator, types, initialize, capacity_p);
 }
 
-void DataChunk::Initialize(Allocator &allocator, vector::const_iterator begin,
-                           vector::const_iterator end, idx_t capacity_p) {
-	D_ASSERT(data.empty());                   // can only be initialized once
-	D_ASSERT(std::distance(begin, end) != 0); // empty chunk not allowed
+void DataChunk::Initialize(ClientContext &context, const vector &types, const vector &initialize,
+                           idx_t capacity_p) {
+	Initialize(Allocator::Get(context), types, initialize, capacity_p);
+}
+
+void DataChunk::Initialize(Allocator &allocator, const vector &types, const vector &initialize,
+                           idx_t capacity_p) {
+	D_ASSERT(types.size() == initialize.size());
+	D_ASSERT(data.empty());
+
 	capacity = capacity_p;
-	for (; begin != end; begin++) {
-		VectorCache cache(allocator, *begin, capacity);
+	for (idx_t i = 0; i < types.size(); i++) {
+		if (!initialize[i]) {
+			data.emplace_back(types[i], nullptr);
+			vector_caches.emplace_back();
+			continue;
+		}
+
+		VectorCache cache(allocator, types[i], capacity);
 		data.emplace_back(cache);
 		vector_caches.push_back(std::move(cache));
 	}
 }
 
-void DataChunk::Initialize(ClientContext &context, vector::const_iterator begin,
-                           vector::const_iterator end, idx_t capacity_p) {
-	Initialize(Allocator::Get(context), begin, end, capacity_p);
-}
-
-void DataChunk::InitializeEmpty(vector::const_iterator begin, vector::const_iterator end) {
-	capacity = STANDARD_VECTOR_SIZE;
-	D_ASSERT(data.empty());                   // can only be initialized once
-	D_ASSERT(std::distance(begin, end) != 0); // empty chunk not allowed
-	for (; begin != end; begin++) {
-		data.emplace_back(*begin, nullptr);
+idx_t DataChunk::GetAllocationSize() const {
+	idx_t total_size = 0;
+	auto cardinality = size();
+	for (auto &vec : data) {
+		total_size += vec.GetAllocationSize(cardinality);
 	}
+	return total_size;
 }
 
 void DataChunk::Reset() {
diff --git a/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp b/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp
index 17cd306f..b77463d8 100644
--- a/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp
+++ b/src/duckdb/src/common/types/row/partitioned_tuple_data.cpp
@@ -262,15 +262,8 @@ void PartitionedTupleData::Repartition(PartitionedTupleData &new_partitioned_dat
 	PartitionedTupleDataAppendState append_state;
 	new_partitioned_data.InitializeAppendState(append_state);
 
-	const auto reverse = RepartitionReverseOrder();
-	const idx_t start_idx = reverse ? partitions.size() : 0;
-	const idx_t end_idx = reverse ? 0 : partitions.size();
-	const int64_t update = reverse ? -1 : 1;
-	const int64_t adjustment = reverse ? -1 : 0;
-
-	for (idx_t partition_idx = start_idx; partition_idx != end_idx; partition_idx += idx_t(update)) {
-		auto actual_partition_idx = partition_idx + idx_t(adjustment);
-		auto &partition = *partitions[actual_partition_idx];
+	for (idx_t partition_idx = 0; partition_idx < partitions.size(); partition_idx++) {
+		auto &partition = *partitions[partition_idx];
 
 		if (partition.Count() > 0) {
 			TupleDataChunkIterator iterator(partition, TupleDataPinProperties::DESTROY_AFTER_DONE, true);
@@ -279,9 +272,9 @@ void PartitionedTupleData::Repartition(PartitionedTupleData &new_partitioned_dat
 				new_partitioned_data.Append(append_state, chunk_state, iterator.GetCurrentChunkCount());
 			} while (iterator.Next());
 
-			RepartitionFinalizeStates(*this, new_partitioned_data, append_state, actual_partition_idx);
+			RepartitionFinalizeStates(*this, new_partitioned_data, append_state, partition_idx);
 		}
-		partitions[actual_partition_idx]->Reset();
+		partitions[partition_idx]->Reset();
 	}
 	new_partitioned_data.FlushAppendState(append_state);
 
diff --git a/src/duckdb/src/common/types/row/tuple_data_allocator.cpp b/src/duckdb/src/common/types/row/tuple_data_allocator.cpp
index 8f391c49..ed9145a1 100644
--- a/src/duckdb/src/common/types/row/tuple_data_allocator.cpp
+++ b/src/duckdb/src/common/types/row/tuple_data_allocator.cpp
@@ -1,6 +1,7 @@
 #include "duckdb/common/types/row/tuple_data_allocator.hpp"
 
 #include "duckdb/common/fast_mem.hpp"
+#include "duckdb/common/radix_partitioning.hpp"
 #include "duckdb/common/types/row/tuple_data_segment.hpp"
 #include "duckdb/common/types/row/tuple_data_states.hpp"
 #include "duckdb/storage/buffer/block_handle.hpp"
@@ -73,6 +74,12 @@ idx_t TupleDataAllocator::HeapBlockCount() const {
 	return heap_blocks.size();
 }
 
+void TupleDataAllocator::SetPartitionIndex(const idx_t index) {
+	D_ASSERT(!partition_index.IsValid());
+	D_ASSERT(row_blocks.empty() && heap_blocks.empty());
+	partition_index = index;
+}
+
 void TupleDataAllocator::Build(TupleDataSegment &segment, TupleDataPinState &pin_state,
                                TupleDataChunkState &chunk_state, const idx_t append_offset, const idx_t append_count) {
 	D_ASSERT(this == segment.allocator.get());
@@ -142,6 +149,9 @@ TupleDataChunkPart TupleDataAllocator::BuildChunkPart(TupleDataPinState &pin_sta
 	// Allocate row block (if needed)
 	if (row_blocks.empty() || row_blocks.back().RemainingCapacity() < layout.GetRowWidth()) {
 		row_blocks.emplace_back(buffer_manager, block_size);
+		if (partition_index.IsValid()) { // Set the eviction queue index logarithmically using RadixBits
+			row_blocks.back().handle->SetEvictionQueueIndex(RadixPartitioning::RadixBits(partition_index.GetIndex()));
+		}
 	}
 	result.row_block_index = NumericCast(row_blocks.size() - 1);
 	auto &row_block = row_blocks[result.row_block_index];
@@ -188,6 +198,10 @@ TupleDataChunkPart TupleDataAllocator::BuildChunkPart(TupleDataPinState &pin_sta
 				if (heap_blocks.empty() || heap_blocks.back().RemainingCapacity() < heap_sizes[append_offset]) {
 					const auto size = MaxValue(block_size, heap_sizes[append_offset]);
 					heap_blocks.emplace_back(buffer_manager, size);
+					if (partition_index.IsValid()) { // Set the eviction queue index logarithmically using RadixBits
+						heap_blocks.back().handle->SetEvictionQueueIndex(
+						    RadixPartitioning::RadixBits(partition_index.GetIndex()));
+					}
 				}
 				result.heap_block_index = NumericCast(heap_blocks.size() - 1);
 				auto &heap_block = heap_blocks[result.heap_block_index];
@@ -315,9 +329,9 @@ void TupleDataAllocator::InitializeChunkStateInternal(TupleDataPinState &pin_sta
 	D_ASSERT(offset <= STANDARD_VECTOR_SIZE);
 }
 
-static inline void VerifyStrings(const LogicalTypeId type_id, const data_ptr_t row_locations[], const idx_t col_idx,
-                                 const idx_t base_col_offset, const idx_t col_offset, const idx_t offset,
-                                 const idx_t count) {
+static inline void VerifyStrings(const TupleDataLayout &layout, const LogicalTypeId type_id,
+                                 const data_ptr_t row_locations[], const idx_t col_idx, const idx_t base_col_offset,
+                                 const idx_t col_offset, const idx_t offset, const idx_t count) {
 #ifdef DEBUG
 	if (type_id != LogicalTypeId::VARCHAR) {
 		// Make sure we don't verify BLOB / AGGREGATE_STATE
@@ -328,7 +342,7 @@ static inline void VerifyStrings(const LogicalTypeId type_id, const data_ptr_t r
 	ValidityBytes::GetEntryIndex(col_idx, entry_idx, idx_in_entry);
 	for (idx_t i = 0; i < count; i++) {
 		const auto &row_location = row_locations[offset + i] + base_col_offset;
-		ValidityBytes row_mask(row_location);
+		ValidityBytes row_mask(row_location, layout.ColumnCount());
 		if (row_mask.RowIsValid(row_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry)) {
 			auto recomputed_string = Load(row_location + col_offset);
 			recomputed_string.Verify();
@@ -362,7 +376,7 @@ void TupleDataAllocator::RecomputeHeapPointers(Vector &old_heap_ptrs, const Sele
 			for (idx_t i = 0; i < count; i++) {
 				const auto idx = offset + i;
 				const auto &row_location = row_locations[idx] + base_col_offset;
-				ValidityBytes row_mask(row_location);
+				ValidityBytes row_mask(row_location, layout.ColumnCount());
 				if (!row_mask.RowIsValid(row_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry)) {
 					continue;
 				}
@@ -379,7 +393,7 @@ void TupleDataAllocator::RecomputeHeapPointers(Vector &old_heap_ptrs, const Sele
 					Store(new_heap_ptr + diff, string_ptr_location);
 				}
 			}
-			VerifyStrings(type.id(), row_locations, col_idx, base_col_offset, col_offset, offset, count);
+			VerifyStrings(layout, type.id(), row_locations, col_idx, base_col_offset, col_offset, offset, count);
 			break;
 		}
 		case PhysicalType::LIST:
@@ -387,7 +401,7 @@ void TupleDataAllocator::RecomputeHeapPointers(Vector &old_heap_ptrs, const Sele
 			for (idx_t i = 0; i < count; i++) {
 				const auto idx = offset + i;
 				const auto &row_location = row_locations[idx] + base_col_offset;
-				ValidityBytes row_mask(row_location);
+				ValidityBytes row_mask(row_location, layout.ColumnCount());
 				if (!row_mask.RowIsValid(row_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry)) {
 					continue;
 				}
diff --git a/src/duckdb/src/common/types/row/tuple_data_collection.cpp b/src/duckdb/src/common/types/row/tuple_data_collection.cpp
index a5215d03..77b8befa 100644
--- a/src/duckdb/src/common/types/row/tuple_data_collection.cpp
+++ b/src/duckdb/src/common/types/row/tuple_data_collection.cpp
@@ -79,6 +79,13 @@ void TupleDataCollection::Unpin() {
 	}
 }
 
+void TupleDataCollection::SetPartitionIndex(const idx_t index) {
+	D_ASSERT(!partition_index.IsValid());
+	D_ASSERT(Count() == 0);
+	partition_index = index;
+	allocator->SetPartitionIndex(index);
+}
+
 // LCOV_EXCL_START
 void VerifyAppendColumns(const TupleDataLayout &layout, const vector &column_ids) {
 #ifdef DEBUG
@@ -246,7 +253,7 @@ static inline void ToUnifiedFormatInternal(TupleDataVectorFormat &format, Vector
 		// Make sure we round up so its all covered
 		auto child_array_total_size = ArrayVector::GetTotalSize(vector);
 		auto list_entry_t_count =
-		    MaxValue((child_array_total_size + array_size) / array_size, format.unified.validity.TargetCount());
+		    MaxValue((child_array_total_size + array_size) / array_size, format.unified.validity.Capacity());
 
 		// Create list entries!
 		format.array_list_entries = make_unsafe_uniq_array(list_entry_t_count);
diff --git a/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp b/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp
index fb9e8a6d..a735d90b 100644
--- a/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp
+++ b/src/duckdb/src/common/types/row/tuple_data_scatter_gather.cpp
@@ -646,7 +646,7 @@ static void TupleDataTemplatedScatter(const Vector &, const TupleDataVectorForma
 				TupleDataValueStore(data[source_idx], target_locations[i], offset_in_row, target_heap_locations[i]);
 			} else {
 				TupleDataValueStore(NullValue(), target_locations[i], offset_in_row, target_heap_locations[i]);
-				ValidityBytes(target_locations[i]).SetInvalidUnsafe(entry_idx, idx_in_entry);
+				ValidityBytes(target_locations[i], layout.ColumnCount()).SetInvalidUnsafe(entry_idx, idx_in_entry);
 			}
 		}
 	}
@@ -675,7 +675,7 @@ static void TupleDataStructScatter(const Vector &source, const TupleDataVectorFo
 		for (idx_t i = 0; i < append_count; i++) {
 			const auto source_idx = source_sel.get_index(append_sel.get_index(i));
 			if (!validity.RowIsValid(source_idx)) {
-				ValidityBytes(target_locations[i]).SetInvalidUnsafe(entry_idx, idx_in_entry);
+				ValidityBytes(target_locations[i], layout.ColumnCount()).SetInvalidUnsafe(entry_idx, idx_in_entry);
 			}
 		}
 	}
@@ -742,7 +742,7 @@ static void TupleDataListScatter(const Vector &source, const TupleDataVectorForm
 			Store(data[source_idx].length, target_heap_location);
 			target_heap_location += sizeof(uint64_t);
 		} else {
-			ValidityBytes(target_locations[i]).SetInvalidUnsafe(entry_idx, idx_in_entry);
+			ValidityBytes(target_locations[i], layout.ColumnCount()).SetInvalidUnsafe(entry_idx, idx_in_entry);
 		}
 	}
 
@@ -791,7 +791,7 @@ static void TupleDataArrayScatter(const Vector &source, const TupleDataVectorFor
 			Store(data[source_idx].length, target_heap_location);
 			target_heap_location += sizeof(uint64_t);
 		} else {
-			ValidityBytes(target_locations[i]).SetInvalidUnsafe(entry_idx, idx_in_entry);
+			ValidityBytes(target_locations[i], layout.ColumnCount()).SetInvalidUnsafe(entry_idx, idx_in_entry);
 		}
 	}
 
@@ -843,7 +843,7 @@ static void TupleDataTemplatedWithinCollectionScatter(const Vector &, const Tupl
 
 		// Initialize validity mask and skip heap pointer over it
 		auto &target_heap_location = target_heap_locations[i];
-		ValidityBytes child_mask(target_heap_location);
+		ValidityBytes child_mask(target_heap_location, list_length);
 		child_mask.SetAllValid(list_length);
 		target_heap_location += ValidityBytes::SizeInBytes(list_length);
 
@@ -901,7 +901,7 @@ static void TupleDataStructWithinCollectionScatter(const Vector &source, const T
 
 		// Initialize validity mask and skip the heap pointer over it
 		auto &target_heap_location = target_heap_locations[i];
-		ValidityBytes child_mask(target_heap_location);
+		ValidityBytes child_mask(target_heap_location, list_length);
 		child_mask.SetAllValid(list_length);
 		target_heap_location += ValidityBytes::SizeInBytes(list_length);
 
@@ -964,7 +964,7 @@ static void TupleDataCollectionWithinCollectionScatter(const Vector &child_list,
 
 		// Initialize validity mask and skip heap pointer over it
 		auto &target_heap_location = target_heap_locations[i];
-		ValidityBytes child_mask(target_heap_location);
+		ValidityBytes child_mask(target_heap_location, list_length);
 		child_mask.SetAllValid(list_length);
 		target_heap_location += ValidityBytes::SizeInBytes(list_length);
 
@@ -1129,7 +1129,7 @@ static void TupleDataTemplatedGather(const TupleDataLayout &layout, Vector &row_
 		const auto &source_row = source_locations[scan_sel.get_index(i)];
 		const auto target_idx = target_sel.get_index(i);
 		target_data[target_idx] = Load(source_row + offset_in_row);
-		ValidityBytes row_mask(source_row);
+		ValidityBytes row_mask(source_row, layout.ColumnCount());
 		if (!row_mask.RowIsValid(row_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry)) {
 			target_validity.SetInvalid(target_idx);
 		}
@@ -1165,7 +1165,7 @@ static void TupleDataStructGather(const TupleDataLayout &layout, Vector &row_loc
 		const auto &source_row = source_locations[source_idx];
 
 		// Set the validity
-		ValidityBytes row_mask(source_row);
+		ValidityBytes row_mask(source_row, layout.ColumnCount());
 		if (!row_mask.RowIsValid(row_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry)) {
 			const auto target_idx = target_sel.get_index(i);
 			target_validity.SetInvalid(target_idx);
@@ -1214,10 +1214,11 @@ static void TupleDataListGather(const TupleDataLayout &layout, Vector &row_locat
 	const auto source_heap_locations = FlatVector::GetData(heap_locations);
 
 	const auto offset_in_row = layout.GetOffsets()[col_idx];
-	uint64_t target_list_offset = 0;
+	auto list_size_before = ListVector::GetListSize(target);
+	uint64_t target_list_offset = list_size_before;
 	for (idx_t i = 0; i < scan_count; i++) {
 		const auto &source_row = source_locations[scan_sel.get_index(i)];
-		ValidityBytes row_mask(source_row);
+		ValidityBytes row_mask(source_row, layout.ColumnCount());
 
 		const auto target_idx = target_sel.get_index(i);
 		if (row_mask.RowIsValid(row_mask.GetValidityEntryUnsafe(entry_idx), idx_in_entry)) {
@@ -1237,9 +1238,8 @@ static void TupleDataListGather(const TupleDataLayout &layout, Vector &row_locat
 			target_list_validity.SetInvalid(target_idx);
 		}
 	}
-	auto list_size_before = ListVector::GetListSize(target);
-	ListVector::Reserve(target, list_size_before + target_list_offset);
-	ListVector::SetListSize(target, list_size_before + target_list_offset);
+	ListVector::Reserve(target, target_list_offset);
+	ListVector::SetListSize(target, target_list_offset);
 
 	// Recurse
 	D_ASSERT(child_functions.size() == 1);
@@ -1282,7 +1282,7 @@ TupleDataTemplatedWithinCollectionGather(const TupleDataLayout &, Vector &heap_l
 
 		// Initialize validity mask
 		auto &source_heap_location = source_heap_locations[i];
-		ValidityBytes source_mask(source_heap_location);
+		ValidityBytes source_mask(source_heap_location, list_length);
 		source_heap_location += ValidityBytes::SizeInBytes(list_length);
 
 		// Get the start to the fixed-size data and skip the heap pointer over it
@@ -1333,7 +1333,7 @@ static void TupleDataStructWithinCollectionGather(const TupleDataLayout &layout,
 
 		// Initialize validity mask and skip over it
 		auto &source_heap_location = source_heap_locations[i];
-		ValidityBytes source_mask(source_heap_location);
+		ValidityBytes source_mask(source_heap_location, list_length);
 		source_heap_location += ValidityBytes::SizeInBytes(list_length);
 
 		// Load the child validity belonging to this list entry
@@ -1398,7 +1398,7 @@ static void TupleDataCollectionWithinCollectionGather(const TupleDataLayout &lay
 
 		// Initialize validity mask and skip over it
 		auto &source_heap_location = source_heap_locations[i];
-		ValidityBytes source_mask(source_heap_location);
+		ValidityBytes source_mask(source_heap_location, list_length);
 		source_heap_location += ValidityBytes::SizeInBytes(list_length);
 
 		// Get the start to the fixed-size data and skip the heap pointer over it
diff --git a/src/duckdb/src/common/types/row/tuple_data_segment.cpp b/src/duckdb/src/common/types/row/tuple_data_segment.cpp
index 82e25001..ddec1323 100644
--- a/src/duckdb/src/common/types/row/tuple_data_segment.cpp
+++ b/src/duckdb/src/common/types/row/tuple_data_segment.cpp
@@ -1,6 +1,7 @@
 #include "duckdb/common/types/row/tuple_data_segment.hpp"
 
 #include "duckdb/common/types/row/tuple_data_allocator.hpp"
+#include "duckdb/storage/buffer/buffer_pool.hpp"
 
 namespace duckdb {
 
@@ -118,6 +119,10 @@ TupleDataSegment::~TupleDataSegment() {
 	}
 	pinned_row_handles.clear();
 	pinned_heap_handles.clear();
+	if (Allocator::SupportsFlush() && allocator &&
+	    data_size > allocator->GetBufferManager().GetBufferPool().GetAllocatorBulkDeallocationFlushThreshold()) {
+		Allocator::FlushAll();
+	}
 	allocator.reset();
 }
 
diff --git a/src/duckdb/src/common/types/timestamp.cpp b/src/duckdb/src/common/types/timestamp.cpp
index d6b3f822..dbb1202d 100644
--- a/src/duckdb/src/common/types/timestamp.cpp
+++ b/src/duckdb/src/common/types/timestamp.cpp
@@ -270,9 +270,11 @@ timestamp_t Timestamp::FromString(const string &str) {
 string Timestamp::ToString(timestamp_t timestamp) {
 	if (timestamp == timestamp_t::infinity()) {
 		return Date::PINF;
-	} else if (timestamp == timestamp_t::ninfinity()) {
+	}
+	if (timestamp == timestamp_t::ninfinity()) {
 		return Date::NINF;
 	}
+
 	date_t date;
 	dtime_t time;
 	Timestamp::Convert(timestamp, date, time);
@@ -282,7 +284,8 @@ string Timestamp::ToString(timestamp_t timestamp) {
 date_t Timestamp::GetDate(timestamp_t timestamp) {
 	if (DUCKDB_UNLIKELY(timestamp == timestamp_t::infinity())) {
 		return date_t::infinity();
-	} else if (DUCKDB_UNLIKELY(timestamp == timestamp_t::ninfinity())) {
+	}
+	if (DUCKDB_UNLIKELY(timestamp == timestamp_t::ninfinity())) {
 		return date_t::ninfinity();
 	}
 	return date_t(UnsafeNumericCast((timestamp.value + (timestamp.value < 0)) / Interval::MICROS_PER_DAY -
diff --git a/src/duckdb/src/common/types/validity_mask.cpp b/src/duckdb/src/common/types/validity_mask.cpp
index fac6fea4..c4a526b5 100644
--- a/src/duckdb/src/common/types/validity_mask.cpp
+++ b/src/duckdb/src/common/types/validity_mask.cpp
@@ -51,11 +51,18 @@ string ValidityMask::ToString(idx_t count) const {
 	result += "]";
 	return result;
 }
+
+string ValidityMask::ToString() const {
+	return ValidityMask::ToString(capacity);
+}
 // LCOV_EXCL_STOP
 
-void ValidityMask::Resize(idx_t old_size, idx_t new_size) {
-	D_ASSERT(new_size >= old_size);
-	target_count = new_size;
+void ValidityMask::Resize(idx_t new_size) {
+	idx_t old_size = capacity;
+	if (new_size <= old_size) {
+		return;
+	}
+	capacity = new_size;
 	if (validity_mask) {
 		auto new_size_count = EntryCount(new_size);
 		auto old_size_count = EntryCount(old_size);
@@ -72,8 +79,8 @@ void ValidityMask::Resize(idx_t old_size, idx_t new_size) {
 	}
 }
 
-idx_t ValidityMask::TargetCount() const {
-	return target_count;
+idx_t ValidityMask::Capacity() const {
+	return capacity;
 }
 
 void ValidityMask::Slice(const ValidityMask &other, idx_t source_offset, idx_t count) {
@@ -114,6 +121,10 @@ void ValidityMask::CopySel(const ValidityMask &other, const SelectionVector &sel
 }
 
 void ValidityMask::SliceInPlace(const ValidityMask &other, idx_t target_offset, idx_t source_offset, idx_t count) {
+	if (AllValid() && other.AllValid()) {
+		// Both validity masks are uninitialized, nothing to do
+		return;
+	}
 	EnsureWritable();
 	const idx_t ragged = count % BITS_PER_VALUE;
 	const idx_t entire_units = count / BITS_PER_VALUE;
diff --git a/src/duckdb/src/common/types/value.cpp b/src/duckdb/src/common/types/value.cpp
index 5d893b6c..ed5e086a 100644
--- a/src/duckdb/src/common/types/value.cpp
+++ b/src/duckdb/src/common/types/value.cpp
@@ -1,11 +1,8 @@
 #include "duckdb/common/types/value.hpp"
 
 #include "duckdb/common/exception.hpp"
-#include "duckdb/common/to_string.hpp"
 #include "duckdb/common/limits.hpp"
-#include "duckdb/common/operator/aggregate_operators.hpp"
 #include "duckdb/common/operator/cast_operators.hpp"
-#include "duckdb/common/operator/comparison_operators.hpp"
 
 #include "duckdb/common/uhugeint.hpp"
 #include "utf8proc_wrapper.hpp"
@@ -17,7 +14,6 @@
 #include "duckdb/common/types/hugeint.hpp"
 #include "duckdb/common/types/uuid.hpp"
 #include "duckdb/common/types/interval.hpp"
-#include "duckdb/common/types/null_value.hpp"
 #include "duckdb/common/types/time.hpp"
 #include "duckdb/common/types/timestamp.hpp"
 #include "duckdb/common/types/bit.hpp"
@@ -26,7 +22,6 @@
 #include "duckdb/common/vector_operations/vector_operations.hpp"
 #include "duckdb/common/string_util.hpp"
 #include "duckdb/common/types/cast_helpers.hpp"
-#include "duckdb/common/types/hash.hpp"
 #include "duckdb/function/cast/cast_function_set.hpp"
 #include "duckdb/main/error_manager.hpp"
 #include "duckdb/common/types/varint.hpp"
@@ -227,32 +222,37 @@ Value Value::MinimumValue(const LogicalType &type) {
 		return Value::DATE(Date::FromDate(Date::DATE_MIN_YEAR, Date::DATE_MIN_MONTH, Date::DATE_MIN_DAY));
 	case LogicalTypeId::TIME:
 		return Value::TIME(dtime_t(0));
-	case LogicalTypeId::TIMESTAMP:
-		return Value::TIMESTAMP(Date::FromDate(Timestamp::MIN_YEAR, Timestamp::MIN_MONTH, Timestamp::MIN_DAY),
-		                        dtime_t(0));
+	case LogicalTypeId::TIMESTAMP: {
+		const auto date = Date::FromDate(Timestamp::MIN_YEAR, Timestamp::MIN_MONTH, Timestamp::MIN_DAY);
+		return Value::TIMESTAMP(date, dtime_t(0));
+	}
 	case LogicalTypeId::TIMESTAMP_SEC: {
-		//	Casting rounds up, which will overflow
-		const auto min_us = MinimumValue(LogicalType::TIMESTAMP).GetValue();
-		return Value::TIMESTAMPSEC(timestamp_t(Timestamp::GetEpochSeconds(min_us)));
+		// Get the minimum timestamp and cast it to timestamp_sec_t.
+		const auto min_ts = MinimumValue(LogicalType::TIMESTAMP).GetValue();
+		const auto ts = Cast::Operation(min_ts);
+		return Value::TIMESTAMPSEC(ts);
 	}
 	case LogicalTypeId::TIMESTAMP_MS: {
-		//	Casting rounds up, which will overflow
-		const auto min_us = MinimumValue(LogicalType::TIMESTAMP).GetValue();
-		return Value::TIMESTAMPMS(timestamp_t(Timestamp::GetEpochMs(min_us)));
+		// Get the minimum timestamp and cast it to timestamp_ms_t.
+		const auto min_ts = MinimumValue(LogicalType::TIMESTAMP).GetValue();
+		const auto ts = Cast::Operation(min_ts);
+		return Value::TIMESTAMPMS(ts);
 	}
 	case LogicalTypeId::TIMESTAMP_NS: {
 		// Clear the fractional day.
 		auto min_ns = NumericLimits::Minimum();
 		min_ns /= Interval::NANOS_PER_DAY;
 		min_ns *= Interval::NANOS_PER_DAY;
-		return Value::TIMESTAMPNS(timestamp_t(min_ns));
+		return Value::TIMESTAMPNS(timestamp_ns_t(min_ns));
 	}
 	case LogicalTypeId::TIME_TZ:
 		//	"00:00:00+1559" from the PG docs, but actually 00:00:00+15:59:59
 		return Value::TIMETZ(dtime_tz_t(dtime_t(0), dtime_tz_t::MAX_OFFSET));
-	case LogicalTypeId::TIMESTAMP_TZ:
-		return Value::TIMESTAMPTZ(Timestamp::FromDatetime(
-		    Date::FromDate(Timestamp::MIN_YEAR, Timestamp::MIN_MONTH, Timestamp::MIN_DAY), dtime_t(0)));
+	case LogicalTypeId::TIMESTAMP_TZ: {
+		const auto date = Date::FromDate(Timestamp::MIN_YEAR, Timestamp::MIN_MONTH, Timestamp::MIN_DAY);
+		const auto ts = Timestamp::FromDatetime(date, dtime_t(0));
+		return Value::TIMESTAMPTZ(timestamp_tz_t(ts));
+	}
 	case LogicalTypeId::FLOAT:
 		return Value::FLOAT(NumericLimits::Minimum());
 	case LogicalTypeId::DOUBLE:
@@ -319,23 +319,27 @@ Value Value::MaximumValue(const LogicalType &type) {
 		return Value::TIME(dtime_t(Interval::MICROS_PER_DAY));
 	case LogicalTypeId::TIMESTAMP:
 		return Value::TIMESTAMP(timestamp_t(NumericLimits::Maximum() - 1));
+	case LogicalTypeId::TIMESTAMP_SEC: {
+		// Get the maximum timestamp and cast it to timestamp_s_t.
+		const auto max_ts = MaximumValue(LogicalType::TIMESTAMP).GetValue();
+		const auto ts = Cast::Operation(max_ts);
+		return Value::TIMESTAMPSEC(ts);
+	}
 	case LogicalTypeId::TIMESTAMP_MS: {
-		//	Casting rounds up, which will overflow
-		const auto max_us = MaximumValue(LogicalType::TIMESTAMP).GetValue();
-		return Value::TIMESTAMPMS(timestamp_t(Timestamp::GetEpochMs(max_us)));
+		// Get the maximum timestamp and cast it to timestamp_ms_t.
+		const auto max_ts = MaximumValue(LogicalType::TIMESTAMP).GetValue();
+		const auto ts = Cast::Operation(max_ts);
+		return Value::TIMESTAMPMS(ts);
 	}
-	case LogicalTypeId::TIMESTAMP_NS:
-		return Value::TIMESTAMPNS(timestamp_t(NumericLimits::Maximum() - 1));
-	case LogicalTypeId::TIMESTAMP_SEC: {
-		//	Casting rounds up, which will overflow
-		const auto max_us = MaximumValue(LogicalType::TIMESTAMP).GetValue();
-		return Value::TIMESTAMPSEC(timestamp_t(Timestamp::GetEpochSeconds(max_us)));
+	case LogicalTypeId::TIMESTAMP_NS: {
+		const auto ts = timestamp_ns_t(NumericLimits::Maximum() - 1);
+		return Value::TIMESTAMPNS(ts);
 	}
+	case LogicalTypeId::TIMESTAMP_TZ:
+		return Value::TIMESTAMPTZ(timestamp_tz_t(NumericLimits::Maximum() - 1));
 	case LogicalTypeId::TIME_TZ:
-		//	"24:00:00-1559" from the PG docs but actually "24:00:00-15:59:59"
+		// "24:00:00-1559" from the PG docs but actually "24:00:00-15:59:59".
 		return Value::TIMETZ(dtime_tz_t(dtime_t(Interval::MICROS_PER_DAY), dtime_tz_t::MIN_OFFSET));
-	case LogicalTypeId::TIMESTAMP_TZ:
-		return MaximumValue(LogicalType::TIMESTAMP);
 	case LogicalTypeId::FLOAT:
 		return Value::FLOAT(NumericLimits::Maximum());
 	case LogicalTypeId::DOUBLE:
@@ -376,14 +380,14 @@ Value Value::Infinity(const LogicalType &type) {
 		return Value::DATE(date_t::infinity());
 	case LogicalTypeId::TIMESTAMP:
 		return Value::TIMESTAMP(timestamp_t::infinity());
+	case LogicalTypeId::TIMESTAMP_SEC:
+		return Value::TIMESTAMPSEC(timestamp_sec_t(timestamp_t::infinity().value));
 	case LogicalTypeId::TIMESTAMP_MS:
-		return Value::TIMESTAMPMS(timestamp_t::infinity());
+		return Value::TIMESTAMPMS(timestamp_ms_t(timestamp_t::infinity().value));
 	case LogicalTypeId::TIMESTAMP_NS:
-		return Value::TIMESTAMPNS(timestamp_t::infinity());
-	case LogicalTypeId::TIMESTAMP_SEC:
-		return Value::TIMESTAMPSEC(timestamp_t::infinity());
+		return Value::TIMESTAMPNS(timestamp_ns_t(timestamp_t::infinity().value));
 	case LogicalTypeId::TIMESTAMP_TZ:
-		return Value::TIMESTAMPTZ(timestamp_t::infinity());
+		return Value::TIMESTAMPTZ(timestamp_tz_t(timestamp_t::infinity()));
 	case LogicalTypeId::FLOAT:
 		return Value::FLOAT(std::numeric_limits::infinity());
 	case LogicalTypeId::DOUBLE:
@@ -399,14 +403,14 @@ Value Value::NegativeInfinity(const LogicalType &type) {
 		return Value::DATE(date_t::ninfinity());
 	case LogicalTypeId::TIMESTAMP:
 		return Value::TIMESTAMP(timestamp_t::ninfinity());
+	case LogicalTypeId::TIMESTAMP_SEC:
+		return Value::TIMESTAMPSEC(timestamp_sec_t(timestamp_t::ninfinity().value));
 	case LogicalTypeId::TIMESTAMP_MS:
-		return Value::TIMESTAMPMS(timestamp_t::ninfinity());
+		return Value::TIMESTAMPMS(timestamp_ms_t(timestamp_t::ninfinity().value));
 	case LogicalTypeId::TIMESTAMP_NS:
-		return Value::TIMESTAMPNS(timestamp_t::ninfinity());
-	case LogicalTypeId::TIMESTAMP_SEC:
-		return Value::TIMESTAMPSEC(timestamp_t::ninfinity());
+		return Value::TIMESTAMPNS(timestamp_ns_t(timestamp_t::ninfinity().value));
 	case LogicalTypeId::TIMESTAMP_TZ:
-		return Value::TIMESTAMPTZ(timestamp_t::ninfinity());
+		return Value::TIMESTAMPTZ(timestamp_tz_t(timestamp_t::ninfinity()));
 	case LogicalTypeId::FLOAT:
 		return Value::FLOAT(-std::numeric_limits::infinity());
 	case LogicalTypeId::DOUBLE:
@@ -545,6 +549,26 @@ bool Value::IsFinite(timestamp_t input) {
 	return Timestamp::IsFinite(input);
 }
 
+template <>
+bool Value::IsFinite(timestamp_sec_t input) {
+	return Timestamp::IsFinite(input);
+}
+
+template <>
+bool Value::IsFinite(timestamp_ms_t input) {
+	return Timestamp::IsFinite(input);
+}
+
+template <>
+bool Value::IsFinite(timestamp_ns_t input) {
+	return Timestamp::IsFinite(input);
+}
+
+template <>
+bool Value::IsFinite(timestamp_tz_t input) {
+	return Timestamp::IsFinite(input);
+}
+
 bool Value::StringIsValid(const char *str, idx_t length) {
 	auto utf_type = Utf8Proc::Analyze(str, length);
 	return utf_type != UnicodeType::INVALID;
@@ -652,30 +676,30 @@ Value Value::TIMESTAMP(timestamp_t value) {
 	return result;
 }
 
-Value Value::TIMESTAMPTZ(timestamp_t value) {
-	Value result(LogicalType::TIMESTAMP_TZ);
-	result.value_.timestamp = value;
+Value Value::TIMESTAMPSEC(timestamp_sec_t timestamp) {
+	Value result(LogicalType::TIMESTAMP_S);
+	result.value_.timestamp_s = timestamp;
 	result.is_null = false;
 	return result;
 }
 
-Value Value::TIMESTAMPNS(timestamp_t timestamp) {
-	Value result(LogicalType::TIMESTAMP_NS);
-	result.value_.timestamp = timestamp;
+Value Value::TIMESTAMPMS(timestamp_ms_t timestamp) {
+	Value result(LogicalType::TIMESTAMP_MS);
+	result.value_.timestamp_ms = timestamp;
 	result.is_null = false;
 	return result;
 }
 
-Value Value::TIMESTAMPMS(timestamp_t timestamp) {
-	Value result(LogicalType::TIMESTAMP_MS);
-	result.value_.timestamp = timestamp;
+Value Value::TIMESTAMPNS(timestamp_ns_t timestamp) {
+	Value result(LogicalType::TIMESTAMP_NS);
+	result.value_.timestamp_ns = timestamp;
 	result.is_null = false;
 	return result;
 }
 
-Value Value::TIMESTAMPSEC(timestamp_t timestamp) {
-	Value result(LogicalType::TIMESTAMP_S);
-	result.value_.timestamp = timestamp;
+Value Value::TIMESTAMPTZ(timestamp_tz_t value) {
+	Value result(LogicalType::TIMESTAMP_TZ);
+	result.value_.timestamp_tz = value;
 	result.is_null = false;
 	return result;
 }
@@ -686,7 +710,9 @@ Value Value::TIMESTAMP(date_t date, dtime_t time) {
 
 Value Value::TIMESTAMP(int32_t year, int32_t month, int32_t day, int32_t hour, int32_t min, int32_t sec,
                        int32_t micros) {
-	auto val = Value::TIMESTAMP(Date::FromDate(year, month, day), Time::FromTime(hour, min, sec, micros));
+	auto date = Date::FromDate(year, month, day);
+	auto time = Time::FromTime(hour, min, sec, micros);
+	auto val = Value::TIMESTAMP(date, time);
 	val.type_ = LogicalType::TIMESTAMP;
 	return val;
 }
@@ -702,6 +728,7 @@ Value Value::STRUCT(const LogicalType &type, vector struct_values) {
 	result.is_null = false;
 	return result;
 }
+
 Value Value::STRUCT(child_list_t values) {
 	child_list_t child_types;
 	vector struct_values;
@@ -712,16 +739,37 @@ Value Value::STRUCT(child_list_t values) {
 	return Value::STRUCT(LogicalType::STRUCT(child_types), std::move(struct_values));
 }
 
+void MapKeyCheck(unordered_set &unique_keys, const Value &key) {
+	// NULL key check.
+	if (key.IsNull()) {
+		MapVector::EvalMapInvalidReason(MapInvalidReason::NULL_KEY);
+	}
+
+	// Duplicate key check.
+	auto key_hash = key.Hash();
+	if (unique_keys.find(key_hash) != unique_keys.end()) {
+		MapVector::EvalMapInvalidReason(MapInvalidReason::DUPLICATE_KEY);
+	}
+	unique_keys.insert(key_hash);
+}
+
 Value Value::MAP(const LogicalType &child_type, vector values) { // NOLINT
 	vector map_keys;
 	vector map_values;
+	unordered_set unique_keys;
+
 	for (auto &val : values) {
 		D_ASSERT(val.type().InternalType() == PhysicalType::STRUCT);
 		auto &children = StructValue::GetChildren(val);
 		D_ASSERT(children.size() == 2);
-		map_keys.push_back(children[0]);
+
+		auto &key = children[0];
+		MapKeyCheck(unique_keys, key);
+
+		map_keys.push_back(key);
 		map_values.push_back(children[1]);
 	}
+
 	auto &key_type = StructType::GetChildType(child_type, 0);
 	auto &value_type = StructType::GetChildType(child_type, 1);
 	return Value::MAP(key_type, value_type, std::move(map_keys), std::move(map_values));
@@ -733,13 +781,20 @@ Value Value::MAP(const LogicalType &key_type, const LogicalType &value_type, vec
 
 	result.type_ = LogicalType::MAP(key_type, value_type);
 	result.is_null = false;
+	unordered_set unique_keys;
+
 	for (idx_t i = 0; i < keys.size(); i++) {
 		child_list_t new_children;
 		new_children.reserve(2);
-		new_children.push_back(std::make_pair("key", std::move(keys[i])));
-		new_children.push_back(std::make_pair("value", std::move(values[i])));
+
+		auto key = keys[i].DefaultCastAs(key_type);
+		MapKeyCheck(unique_keys, key);
+
+		new_children.push_back(std::make_pair("key", key));
+		new_children.push_back(std::make_pair("value", values[i].DefaultCastAs(value_type)));
 		values[i] = Value::STRUCT(std::move(new_children));
 	}
+
 	result.value_info_ = make_shared_ptr(std::move(values));
 	return result;
 }
@@ -781,72 +836,33 @@ Value Value::UNION(child_list_t members, uint8_t tag, Value value)
 	return result;
 }
 
-Value Value::LIST(vector values) {
-	if (values.empty()) {
-		throw InternalException("Value::LIST without providing a child-type requires a non-empty list of values. Use "
-		                        "Value::LIST(child_type, list) instead.");
-	}
-#ifdef DEBUG
-	for (idx_t i = 1; i < values.size(); i++) {
-		D_ASSERT(values[i].type() == values[0].type());
-	}
-#endif
+Value Value::LIST(const LogicalType &child_type, vector values) {
 	Value result;
-	result.type_ = LogicalType::LIST(values[0].type());
-	result.value_info_ = make_shared_ptr(std::move(values));
+	result.type_ = LogicalType::LIST(child_type);
 	result.is_null = false;
-	return result;
-}
-
-Value Value::LIST(const LogicalType &child_type, vector values) {
-	if (values.empty()) {
-		return Value::EMPTYLIST(child_type);
-	}
 	for (auto &val : values) {
 		val = val.DefaultCastAs(child_type);
 	}
-	return Value::LIST(std::move(values));
-}
-
-Value Value::EMPTYLIST(const LogicalType &child_type) {
-	Value result;
-	result.type_ = LogicalType::LIST(child_type);
-	result.value_info_ = make_shared_ptr();
-	result.is_null = false;
+	result.value_info_ = make_shared_ptr(std::move(values));
 	return result;
 }
 
-Value Value::ARRAY(vector values) {
+Value Value::LIST(vector values) {
 	if (values.empty()) {
-		throw InternalException("Value::ARRAY without providing a child-type requires a non-empty list of values. Use "
-		                        "Value::ARRAY(child_type, list) instead.");
-	}
-#ifdef DEBUG
-	for (idx_t i = 1; i < values.size(); i++) {
-		D_ASSERT(values[i].type() == values[0].type());
+		throw InternalException(
+		    "Value::LIST(values) cannot be used to make an empty list - use Value::LIST(type, values) instead");
 	}
-#endif
-	Value result;
-	result.type_ = LogicalType::ARRAY(values[0].type(), values.size());
-	result.value_info_ = make_shared_ptr(std::move(values));
-	result.is_null = false;
-	return result;
+	auto &type = values[0].type();
+	return Value::LIST(type, std::move(values));
 }
 
 Value Value::ARRAY(const LogicalType &child_type, vector values) {
-	if (values.empty()) {
-		return Value::EMPTYARRAY(child_type, 0);
-	}
+	Value result;
+	result.type_ = LogicalType::ARRAY(child_type, values.size());
 	for (auto &val : values) {
 		val = val.DefaultCastAs(child_type);
 	}
-	return Value::ARRAY(std::move(values));
-}
-
-Value Value::EMPTYARRAY(const LogicalType &child_type, uint32_t size) {
-	Value result;
-	result.type_ = LogicalType::ARRAY(child_type, size);
-	result.value_info_ = make_shared_ptr();
+	result.value_info_ = make_shared_ptr(std::move(values));
 	result.is_null = false;
 	return result;
 }
@@ -1094,17 +1110,21 @@ T Value::GetValueInternal() const {
 	case LogicalTypeId::TIME_TZ:
 		return Cast::Operation(value_.timetz);
 	case LogicalTypeId::TIMESTAMP:
-	case LogicalTypeId::TIMESTAMP_TZ:
 		return Cast::Operation(value_.timestamp);
+	case LogicalTypeId::TIMESTAMP_SEC:
+		return Cast::Operation(value_.timestamp_s);
+	case LogicalTypeId::TIMESTAMP_MS:
+		return Cast::Operation(value_.timestamp_ms);
+	case LogicalTypeId::TIMESTAMP_NS:
+		return Cast::Operation(value_.timestamp_ns);
+	case LogicalTypeId::TIMESTAMP_TZ:
+		return Cast::Operation(value_.timestamp_tz);
 	case LogicalTypeId::UTINYINT:
 		return Cast::Operation(value_.utinyint);
 	case LogicalTypeId::USMALLINT:
 		return Cast::Operation(value_.usmallint);
 	case LogicalTypeId::UINTEGER:
 		return Cast::Operation(value_.uinteger);
-	case LogicalTypeId::TIMESTAMP_MS:
-	case LogicalTypeId::TIMESTAMP_NS:
-	case LogicalTypeId::TIMESTAMP_SEC:
 	case LogicalTypeId::UBIGINT:
 		return Cast::Operation(value_.ubigint);
 	case LogicalTypeId::FLOAT:
@@ -1160,11 +1180,16 @@ int64_t Value::GetValue() const {
 	}
 	switch (type_.id()) {
 	case LogicalTypeId::TIMESTAMP:
+		return value_.timestamp.value;
 	case LogicalTypeId::TIMESTAMP_SEC:
-	case LogicalTypeId::TIMESTAMP_NS:
+		return value_.timestamp_s.value;
 	case LogicalTypeId::TIMESTAMP_MS:
-	case LogicalTypeId::TIME:
+		return value_.timestamp_ms.value;
+	case LogicalTypeId::TIMESTAMP_NS:
+		return value_.timestamp_ns.value;
 	case LogicalTypeId::TIMESTAMP_TZ:
+		return value_.timestamp_tz.value;
+	case LogicalTypeId::TIME:
 		return value_.bigint;
 	default:
 		return GetValueInternal();
@@ -1214,10 +1239,32 @@ template <>
 dtime_t Value::GetValue() const {
 	return GetValueInternal();
 }
+
 template <>
 timestamp_t Value::GetValue() const {
 	return GetValueInternal();
 }
+
+template <>
+timestamp_sec_t Value::GetValue() const {
+	return GetValueInternal();
+}
+
+template <>
+timestamp_ms_t Value::GetValue() const {
+	return GetValueInternal();
+}
+
+template <>
+timestamp_ns_t Value::GetValue() const {
+	return GetValueInternal();
+}
+
+template <>
+timestamp_tz_t Value::GetValue() const {
+	return GetValueInternal();
+}
+
 template <>
 dtime_tz_t Value::GetValue() const {
 	return GetValueInternal();
@@ -1285,14 +1332,14 @@ Value Value::Numeric(const LogicalType &type, int64_t value) {
 		return Value::TIME(dtime_t(value));
 	case LogicalTypeId::TIMESTAMP:
 		return Value::TIMESTAMP(timestamp_t(value));
-	case LogicalTypeId::TIMESTAMP_NS:
-		return Value::TIMESTAMPNS(timestamp_t(value));
-	case LogicalTypeId::TIMESTAMP_MS:
-		return Value::TIMESTAMPMS(timestamp_t(value));
 	case LogicalTypeId::TIMESTAMP_SEC:
-		return Value::TIMESTAMPSEC(timestamp_t(value));
+		return Value::TIMESTAMPSEC(timestamp_sec_t(value));
+	case LogicalTypeId::TIMESTAMP_MS:
+		return Value::TIMESTAMPMS(timestamp_ms_t(value));
+	case LogicalTypeId::TIMESTAMP_NS:
+		return Value::TIMESTAMPNS(timestamp_ns_t(value));
 	case LogicalTypeId::TIMESTAMP_TZ:
-		return Value::TIMESTAMPTZ(timestamp_t(value));
+		return Value::TIMESTAMPTZ(timestamp_tz_t(value));
 	case LogicalTypeId::ENUM:
 		switch (type.InternalType()) {
 		case PhysicalType::UINT8:
@@ -1457,6 +1504,30 @@ timestamp_t Value::GetValueUnsafe() const {
 	return value_.timestamp;
 }
 
+template <>
+timestamp_sec_t Value::GetValueUnsafe() const {
+	D_ASSERT(type_.InternalType() == PhysicalType::INT64);
+	return value_.timestamp_s;
+}
+
+template <>
+timestamp_ms_t Value::GetValueUnsafe() const {
+	D_ASSERT(type_.InternalType() == PhysicalType::INT64);
+	return value_.timestamp_ms;
+}
+
+template <>
+timestamp_ns_t Value::GetValueUnsafe() const {
+	D_ASSERT(type_.InternalType() == PhysicalType::INT64);
+	return value_.timestamp_ns;
+}
+
+template <>
+timestamp_tz_t Value::GetValueUnsafe() const {
+	D_ASSERT(type_.InternalType() == PhysicalType::INT64);
+	return value_.timestamp_tz;
+}
+
 template <>
 interval_t Value::GetValueUnsafe() const {
 	D_ASSERT(type_.InternalType() == PhysicalType::INTERVAL);
@@ -1471,7 +1542,7 @@ hash_t Value::Hash() const {
 		return 0;
 	}
 	Vector input(*this);
-	Vector result(LogicalType::HASH);
+	Vector result(LogicalType::HASH, 1);
 	VectorOperations::Hash(input, result, 1);
 
 	auto data = FlatVector::GetData(result);
@@ -1503,8 +1574,13 @@ string Value::ToSQLString() const {
 	case LogicalTypeId::BLOB:
 		return "'" + ToString() + "'::" + type_.ToString();
 	case LogicalTypeId::VARCHAR:
-	case LogicalTypeId::ENUM:
+	case LogicalTypeId::ENUM: {
+		auto str_val = ToString();
+		if (str_val.size() == 1 && str_val[0] == '\0') {
+			return "chr(0)";
+		}
 		return "'" + StringUtil::Replace(ToString(), "'", "''") + "'";
+	}
 	case LogicalTypeId::STRUCT: {
 		bool is_unnamed = StructType::IsUnnamed(type_);
 		string ret = is_unnamed ? "(" : "{";
@@ -1648,6 +1724,22 @@ timestamp_t TimestampValue::Get(const Value &value) {
 	return value.GetValueUnsafe();
 }
 
+timestamp_sec_t TimestampSValue::Get(const Value &value) {
+	return value.GetValueUnsafe();
+}
+
+timestamp_ms_t TimestampMSValue::Get(const Value &value) {
+	return value.GetValueUnsafe();
+}
+
+timestamp_ns_t TimestampNSValue::Get(const Value &value) {
+	return value.GetValueUnsafe();
+}
+
+timestamp_tz_t TimestampTZValue::Get(const Value &value) {
+	return value.GetValueUnsafe();
+}
+
 interval_t IntervalValue::Get(const Value &value) {
 	return value.GetValueUnsafe();
 }
@@ -1817,6 +1909,9 @@ bool Value::DefaultTryCastAs(const LogicalType &target_type, Value &new_value, s
 
 Value Value::CastAs(CastFunctionSet &set, GetCastFunctionInput &get_input, const LogicalType &target_type,
                     bool strict) const {
+	if (target_type.id() == LogicalTypeId::ANY) {
+		return *this;
+	}
 	Value new_value;
 	string error_message;
 	if (!TryCastAs(set, get_input, target_type, new_value, &error_message, strict)) {
@@ -1865,89 +1960,136 @@ void Value::Reinterpret(LogicalType new_type) {
 	this->type_ = std::move(new_type);
 }
 
-void Value::Serialize(Serializer &serializer) const {
-	serializer.WriteProperty(100, "type", type_);
-	serializer.WriteProperty(101, "is_null", is_null);
-	if (!IsNull()) {
-		switch (type_.InternalType()) {
-		case PhysicalType::BIT:
-			throw InternalException("BIT type should not be serialized");
-		case PhysicalType::BOOL:
-			serializer.WriteProperty(102, "value", value_.boolean);
-			break;
-		case PhysicalType::INT8:
-			serializer.WriteProperty(102, "value", value_.tinyint);
-			break;
-		case PhysicalType::INT16:
-			serializer.WriteProperty(102, "value", value_.smallint);
-			break;
-		case PhysicalType::INT32:
-			serializer.WriteProperty(102, "value", value_.integer);
-			break;
-		case PhysicalType::INT64:
-			serializer.WriteProperty(102, "value", value_.bigint);
-			break;
-		case PhysicalType::UINT8:
-			serializer.WriteProperty(102, "value", value_.utinyint);
-			break;
-		case PhysicalType::UINT16:
-			serializer.WriteProperty(102, "value", value_.usmallint);
-			break;
-		case PhysicalType::UINT32:
-			serializer.WriteProperty(102, "value", value_.uinteger);
-			break;
-		case PhysicalType::UINT64:
-			serializer.WriteProperty(102, "value", value_.ubigint);
-			break;
-		case PhysicalType::INT128:
-			serializer.WriteProperty(102, "value", value_.hugeint);
-			break;
-		case PhysicalType::UINT128:
-			serializer.WriteProperty(102, "value", value_.uhugeint);
-			break;
-		case PhysicalType::FLOAT:
-			serializer.WriteProperty(102, "value", value_.float_);
-			break;
-		case PhysicalType::DOUBLE:
-			serializer.WriteProperty(102, "value", value_.double_);
-			break;
-		case PhysicalType::INTERVAL:
-			serializer.WriteProperty(102, "value", value_.interval);
-			break;
-		case PhysicalType::VARCHAR: {
-			if (type_.id() == LogicalTypeId::BLOB) {
-				auto blob_str = Blob::ToString(StringValue::Get(*this));
-				serializer.WriteProperty(102, "value", blob_str);
-			} else {
-				serializer.WriteProperty(102, "value", StringValue::Get(*this));
+const LogicalType &GetChildType(const LogicalType &parent_type, idx_t i) {
+	switch (parent_type.InternalType()) {
+	case PhysicalType::LIST:
+		return ListType::GetChildType(parent_type);
+	case PhysicalType::STRUCT:
+		return StructType::GetChildType(parent_type, i);
+	case PhysicalType::ARRAY:
+		return ArrayType::GetChildType(parent_type);
+	default:
+		throw InternalException("Parent type is not a nested type");
+	}
+}
+
+bool SerializeTypeMatches(const LogicalType &expected_type, const LogicalType &actual_type) {
+	if (expected_type.id() != actual_type.id()) {
+		// type id needs to be the same
+		return false;
+	}
+	if (expected_type.IsNested()) {
+		// for nested types that is enough - we will recurse into the children and check there again anyway
+		return true;
+	}
+	// otherwise we do a deep comparison of the type (e.g. decimal flags need to be consistent)
+	return expected_type == actual_type;
+}
+
+void Value::SerializeChildren(Serializer &serializer, const vector &children, const LogicalType &parent_type) {
+	serializer.WriteObject(102, "value", [&](Serializer &child_serializer) {
+		child_serializer.WriteList(100, "children", children.size(), [&](Serializer::List &list, idx_t i) {
+			auto &value_type = GetChildType(parent_type, i);
+			bool serialize_type = value_type.id() == LogicalTypeId::ANY;
+			if (!serialize_type && !SerializeTypeMatches(value_type, children[i].type())) {
+				throw InternalException("Error when serializing type - serializing a child of a nested value with type "
+				                        "%s, but expected type %s",
+				                        children[i].type(), value_type);
 			}
-		} break;
-		case PhysicalType::LIST: {
-			serializer.WriteObject(102, "value", [&](Serializer &serializer) {
-				auto &children = ListValue::GetChildren(*this);
-				serializer.WriteProperty(100, "children", children);
-			});
-		} break;
-		case PhysicalType::STRUCT: {
-			serializer.WriteObject(102, "value", [&](Serializer &serializer) {
-				auto &children = StructValue::GetChildren(*this);
-				serializer.WriteProperty(100, "children", children);
+			list.WriteObject([&](Serializer &element_serializer) {
+				children[i].SerializeInternal(element_serializer, serialize_type);
 			});
-		} break;
-		case PhysicalType::ARRAY: {
-			serializer.WriteObject(102, "value", [&](Serializer &serializer) {
-				auto &children = ArrayValue::GetChildren(*this);
-				serializer.WriteProperty(100, "children", children);
-			});
-		} break;
-		default:
-			throw NotImplementedException("Unimplemented type for Serialize");
+		});
+	});
+}
+
+void Value::SerializeInternal(Serializer &serializer, bool serialize_type) const {
+	if (serialize_type || !serializer.ShouldSerialize(4)) {
+		// only the root value needs to serialize its type
+		// for forwards compatibility reasons, we also serialize the type always when targeting versions < v1.2.0
+		serializer.WriteProperty(100, "type", type_);
+	}
+	serializer.WriteProperty(101, "is_null", is_null);
+	if (IsNull()) {
+		return;
+	}
+	switch (type_.InternalType()) {
+	case PhysicalType::BIT:
+		throw InternalException("BIT type should not be serialized");
+	case PhysicalType::BOOL:
+		serializer.WriteProperty(102, "value", value_.boolean);
+		break;
+	case PhysicalType::INT8:
+		serializer.WriteProperty(102, "value", value_.tinyint);
+		break;
+	case PhysicalType::INT16:
+		serializer.WriteProperty(102, "value", value_.smallint);
+		break;
+	case PhysicalType::INT32:
+		serializer.WriteProperty(102, "value", value_.integer);
+		break;
+	case PhysicalType::INT64:
+		serializer.WriteProperty(102, "value", value_.bigint);
+		break;
+	case PhysicalType::UINT8:
+		serializer.WriteProperty(102, "value", value_.utinyint);
+		break;
+	case PhysicalType::UINT16:
+		serializer.WriteProperty(102, "value", value_.usmallint);
+		break;
+	case PhysicalType::UINT32:
+		serializer.WriteProperty(102, "value", value_.uinteger);
+		break;
+	case PhysicalType::UINT64:
+		serializer.WriteProperty(102, "value", value_.ubigint);
+		break;
+	case PhysicalType::INT128:
+		serializer.WriteProperty(102, "value", value_.hugeint);
+		break;
+	case PhysicalType::UINT128:
+		serializer.WriteProperty(102, "value", value_.uhugeint);
+		break;
+	case PhysicalType::FLOAT:
+		serializer.WriteProperty(102, "value", value_.float_);
+		break;
+	case PhysicalType::DOUBLE:
+		serializer.WriteProperty(102, "value", value_.double_);
+		break;
+	case PhysicalType::INTERVAL:
+		serializer.WriteProperty(102, "value", value_.interval);
+		break;
+	case PhysicalType::VARCHAR: {
+		if (type_.id() == LogicalTypeId::BLOB) {
+			auto blob_str = Blob::ToString(StringValue::Get(*this));
+			serializer.WriteProperty(102, "value", blob_str);
+		} else {
+			serializer.WriteProperty(102, "value", StringValue::Get(*this));
 		}
+	} break;
+	case PhysicalType::LIST:
+		SerializeChildren(serializer, ListValue::GetChildren(*this), type_);
+		break;
+	case PhysicalType::STRUCT:
+		SerializeChildren(serializer, StructValue::GetChildren(*this), type_);
+		break;
+	case PhysicalType::ARRAY:
+		SerializeChildren(serializer, ArrayValue::GetChildren(*this), type_);
+		break;
+	default:
+		throw NotImplementedException("Unimplemented type for Serialize");
 	}
 }
 
+void Value::Serialize(Serializer &serializer) const {
+	// serialize the value - the top-level value always needs to serialize its type
+	SerializeInternal(serializer, true);
+}
+
 Value Value::Deserialize(Deserializer &deserializer) {
-	auto type = deserializer.ReadProperty(100, "type");
+	auto type = deserializer.ReadPropertyWithExplicitDefault(100, "type", LogicalTypeId::INVALID);
+	if (type.id() == LogicalTypeId::INVALID) {
+		type = deserializer.Get();
+	}
 	auto is_null = deserializer.ReadProperty(101, "is_null");
 	Value new_value = Value(type);
 	if (is_null) {
@@ -2008,22 +2150,32 @@ Value Value::Deserialize(Deserializer &deserializer) {
 		}
 	} break;
 	case PhysicalType::LIST: {
+		deserializer.Set(ListType::GetChildType(type));
 		deserializer.ReadObject(102, "value", [&](Deserializer &obj) {
 			auto children = obj.ReadProperty>(100, "children");
 			new_value.value_info_ = make_shared_ptr(children);
 		});
+		deserializer.Unset();
 	} break;
 	case PhysicalType::STRUCT: {
 		deserializer.ReadObject(102, "value", [&](Deserializer &obj) {
-			auto children = obj.ReadProperty>(100, "children");
+			vector children;
+			obj.ReadList(100, "children", [&](Deserializer::List &list, idx_t i) {
+				deserializer.Set(StructType::GetChildType(type, i));
+				auto child = list.ReadElement();
+				deserializer.Unset();
+				children.push_back(std::move(child));
+			});
 			new_value.value_info_ = make_shared_ptr(children);
 		});
 	} break;
 	case PhysicalType::ARRAY: {
+		deserializer.Set(ArrayType::GetChildType(type));
 		deserializer.ReadObject(102, "value", [&](Deserializer &obj) {
 			auto children = obj.ReadProperty>(100, "children");
 			new_value.value_info_ = make_shared_ptr(children);
 		});
+		deserializer.Unset();
 	} break;
 	default:
 		throw NotImplementedException("Unimplemented type for Deserialize");
diff --git a/src/duckdb/src/common/types/vector.cpp b/src/duckdb/src/common/types/vector.cpp
index 29e0a955..48f9c504 100644
--- a/src/duckdb/src/common/types/vector.cpp
+++ b/src/duckdb/src/common/types/vector.cpp
@@ -15,6 +15,7 @@
 #include "duckdb/common/types/sel_cache.hpp"
 #include "duckdb/common/types/value.hpp"
 #include "duckdb/common/types/value_map.hpp"
+#include "duckdb/common/types/varint.hpp"
 #include "duckdb/common/types/vector_cache.hpp"
 #include "duckdb/common/uhugeint.hpp"
 #include "duckdb/common/vector_operations/vector_operations.hpp"
@@ -22,7 +23,6 @@
 #include "duckdb/storage/buffer/buffer_handle.hpp"
 #include "duckdb/storage/string_uncompressed.hpp"
 #include "fsst.h"
-#include "duckdb/common/types/varint.hpp"
 
 #include  // strlen() on Solaris
 
@@ -231,6 +231,8 @@ void Vector::Slice(const SelectionVector &sel, idx_t count) {
 	if (GetVectorType() == VectorType::DICTIONARY_VECTOR) {
 		// already a dictionary, slice the current dictionary
 		auto ¤t_sel = DictionaryVector::SelVector(*this);
+		auto dictionary_size = DictionaryVector::DictionarySize(*this);
+		auto dictionary_id = DictionaryVector::DictionaryId(*this);
 		auto sliced_dictionary = current_sel.Slice(sel, count);
 		buffer = make_buffer(std::move(sliced_dictionary));
 		if (GetType().InternalType() == PhysicalType::STRUCT) {
@@ -240,6 +242,11 @@ void Vector::Slice(const SelectionVector &sel, idx_t count) {
 			new_child.auxiliary = make_buffer(new_child, sel, count);
 			auxiliary = make_buffer(std::move(new_child));
 		}
+		if (dictionary_size.IsValid()) {
+			auto &dict_buffer = buffer->Cast();
+			dict_buffer.SetDictionarySize(dictionary_size.GetIndex());
+			dict_buffer.SetDictionaryId(std::move(dictionary_id));
+		}
 		return;
 	}
 
@@ -260,11 +267,25 @@ void Vector::Slice(const SelectionVector &sel, idx_t count) {
 	auxiliary = std::move(child_ref);
 }
 
+void Vector::Dictionary(idx_t dictionary_size, const SelectionVector &sel, idx_t count) {
+	Slice(sel, count);
+	if (GetVectorType() == VectorType::DICTIONARY_VECTOR) {
+		buffer->Cast().SetDictionarySize(dictionary_size);
+	}
+}
+
+void Vector::Dictionary(const Vector &dict, idx_t dictionary_size, const SelectionVector &sel, idx_t count) {
+	Reference(dict);
+	Dictionary(dictionary_size, sel, count);
+}
+
 void Vector::Slice(const SelectionVector &sel, idx_t count, SelCache &cache) {
 	if (GetVectorType() == VectorType::DICTIONARY_VECTOR && GetType().InternalType() != PhysicalType::STRUCT) {
 		// dictionary vector: need to merge dictionaries
 		// check if we have a cached entry
 		auto ¤t_sel = DictionaryVector::SelVector(*this);
+		auto dictionary_size = DictionaryVector::DictionarySize(*this);
+		auto dictionary_id = DictionaryVector::DictionaryId(*this);
 		auto target_data = current_sel.data();
 		auto entry = cache.cache.find(target_data);
 		if (entry != cache.cache.end()) {
@@ -275,6 +296,11 @@ void Vector::Slice(const SelectionVector &sel, idx_t count, SelCache &cache) {
 			Slice(sel, count);
 			cache.cache[target_data] = this->buffer;
 		}
+		if (dictionary_size.IsValid()) {
+			auto &dict_buffer = buffer->Cast();
+			dict_buffer.SetDictionarySize(dictionary_size.GetIndex());
+			dict_buffer.SetDictionaryId(std::move(dictionary_id));
+		}
 	} else {
 		Slice(sel, count);
 	}
@@ -304,8 +330,8 @@ void Vector::Initialize(bool zero_data, idx_t capacity) {
 		}
 	}
 
-	if (capacity > validity.TargetCount()) {
-		validity.Resize(validity.TargetCount(), capacity);
+	if (capacity > validity.Capacity()) {
+		validity.Resize(capacity);
 	}
 }
 
@@ -362,7 +388,7 @@ void Vector::Resize(idx_t current_size, idx_t new_size) {
 	for (auto &resize_info_entry : resize_infos) {
 		// Resize the validity mask.
 		auto new_validity_size = new_size * resize_info_entry.multiplier;
-		resize_info_entry.vec.validity.Resize(current_size, new_validity_size);
+		resize_info_entry.vec.validity.Resize(new_validity_size);
 
 		// For nested data types, we only need to resize the validity mask.
 		if (!resize_info_entry.data) {
@@ -608,13 +634,13 @@ Value Vector::GetValueInternal(const Vector &v_p, idx_t index_p) {
 	case LogicalTypeId::TIMESTAMP:
 		return Value::TIMESTAMP(reinterpret_cast(data)[index]);
 	case LogicalTypeId::TIMESTAMP_NS:
-		return Value::TIMESTAMPNS(reinterpret_cast(data)[index]);
+		return Value::TIMESTAMPNS(reinterpret_cast(data)[index]);
 	case LogicalTypeId::TIMESTAMP_MS:
-		return Value::TIMESTAMPMS(reinterpret_cast(data)[index]);
+		return Value::TIMESTAMPMS(reinterpret_cast(data)[index]);
 	case LogicalTypeId::TIMESTAMP_SEC:
-		return Value::TIMESTAMPSEC(reinterpret_cast(data)[index]);
+		return Value::TIMESTAMPSEC(reinterpret_cast(data)[index]);
 	case LogicalTypeId::TIMESTAMP_TZ:
-		return Value::TIMESTAMPTZ(reinterpret_cast(data)[index]);
+		return Value::TIMESTAMPTZ(reinterpret_cast(data)[index]);
 	case LogicalTypeId::HUGEINT:
 		return Value::HUGEINT(reinterpret_cast(data)[index]);
 	case LogicalTypeId::UHUGEINT:
@@ -726,7 +752,7 @@ Value Vector::GetValueInternal(const Vector &v_p, idx_t index_p) {
 		for (idx_t i = offset; i < offset + stride; i++) {
 			children.push_back(child_vec.GetValue(i));
 		}
-		return Value::ARRAY(std::move(children));
+		return Value::ARRAY(ArrayType::GetChildType(type), std::move(children));
 	}
 	default:
 		throw InternalException("Unimplemented type for value access");
@@ -1269,10 +1295,11 @@ void Vector::Deserialize(Deserializer &deserializer, idx_t count) {
 	auto &logical_type = GetType();
 
 	auto &validity = FlatVector::Validity(*this);
-	validity.Reset();
+	auto validity_count = MaxValue(count, STANDARD_VECTOR_SIZE);
+	validity.Reset(validity_count);
 	const auto has_validity_mask = deserializer.ReadProperty(100, "has_validity_mask");
 	if (has_validity_mask) {
-		validity.Initialize(MaxValue(count, STANDARD_VECTOR_SIZE));
+		validity.Initialize(validity_count);
 		deserializer.ReadProperty(101, "validity", data_ptr_cast(validity.GetData()), validity.ValidityMaskSize(count));
 	}
 
diff --git a/src/duckdb/src/common/types/vector_cache.cpp b/src/duckdb/src/common/types/vector_cache.cpp
index 56664319..49ffe357 100644
--- a/src/duckdb/src/common/types/vector_cache.cpp
+++ b/src/duckdb/src/common/types/vector_cache.cpp
@@ -118,19 +118,25 @@ class VectorCacheBuffer : public VectorBuffer {
 	idx_t capacity;
 };
 
-VectorCache::VectorCache(Allocator &allocator, const LogicalType &type_p, idx_t capacity_p) {
+VectorCache::VectorCache() : buffer(nullptr) {
+}
+
+VectorCache::VectorCache(Allocator &allocator, const LogicalType &type_p, const idx_t capacity_p) {
 	buffer = make_buffer(allocator, type_p, capacity_p);
 }
 
 void VectorCache::ResetFromCache(Vector &result) const {
-	D_ASSERT(buffer);
-	auto &vcache = buffer->Cast();
-	vcache.ResetFromCache(result, buffer);
+	if (!buffer) {
+		return;
+	}
+	auto &vector_cache = buffer->Cast();
+	vector_cache.ResetFromCache(result, buffer);
 }
 
 const LogicalType &VectorCache::GetType() const {
-	auto &vcache = buffer->Cast();
-	return vcache.GetType();
+	D_ASSERT(buffer);
+	auto &vector_cache = buffer->Cast();
+	return vector_cache.GetType();
 }
 
 } // namespace duckdb
diff --git a/src/duckdb/src/common/vector_operations/comparison_operators.cpp b/src/duckdb/src/common/vector_operations/comparison_operators.cpp
index c66288d8..8a56cdfc 100644
--- a/src/duckdb/src/common/vector_operations/comparison_operators.cpp
+++ b/src/duckdb/src/common/vector_operations/comparison_operators.cpp
@@ -167,6 +167,9 @@ static void NestedComparisonExecutor(Vector &left, Vector &right, Vector &result
 		auto &result_validity = ConstantVector::Validity(result);
 		SelectionVector true_sel(1);
 		auto match_count = ComparisonSelector::Select(left, right, nullptr, 1, &true_sel, nullptr, result_validity);
+		// since we are dealing with nested types where the values are not NULL, the result is always valid (i.e true or
+		// false)
+		result_validity.SetAllValid(1);
 		auto result_data = ConstantVector::GetData(result);
 		result_data[0] = match_count > 0;
 		return;
@@ -182,6 +185,10 @@ static void NestedComparisonExecutor(Vector &left, Vector &right, Vector &result
 	if (!leftv.validity.AllValid() || !rightv.validity.AllValid()) {
 		ComparesNotNull(leftv, rightv, result_validity, count);
 	}
+	ValidityMask original_mask;
+	original_mask.SetAllValid(count);
+	original_mask.Copy(result_validity, count);
+
 	SelectionVector true_sel(count);
 	SelectionVector false_sel(count);
 	idx_t match_count =
@@ -190,12 +197,19 @@ static void NestedComparisonExecutor(Vector &left, Vector &right, Vector &result
 	for (idx_t i = 0; i < match_count; ++i) {
 		const auto idx = true_sel.get_index(i);
 		result_data[idx] = true;
+		// if the row was valid during the null check, set it to valid here as well
+		if (original_mask.RowIsValid(idx)) {
+			result_validity.SetValid(idx);
+		}
 	}
 
 	const idx_t no_match_count = count - match_count;
 	for (idx_t i = 0; i < no_match_count; ++i) {
 		const auto idx = false_sel.get_index(i);
 		result_data[idx] = false;
+		if (original_mask.RowIsValid(idx)) {
+			result_validity.SetValid(idx);
+		}
 	}
 }
 
diff --git a/src/duckdb/src/common/vector_operations/is_distinct_from.cpp b/src/duckdb/src/common/vector_operations/is_distinct_from.cpp
index e9a31ee0..b250eddc 100644
--- a/src/duckdb/src/common/vector_operations/is_distinct_from.cpp
+++ b/src/duckdb/src/common/vector_operations/is_distinct_from.cpp
@@ -65,17 +65,26 @@ static void DistinctExecute(Vector &left, Vector &right, Vector &result, idx_t c
 	DistinctExecuteSwitch(left, right, result, count);
 }
 
+#ifndef DUCKDB_SMALLER_BINARY
 template 
+#else
+template 
+#endif
 static inline idx_t
 DistinctSelectGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
                           const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
                           const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lmask,
                           ValidityMask &rmask, SelectionVector *true_sel, SelectionVector *false_sel) {
+#ifdef DUCKDB_SMALLER_BINARY
+	bool HAS_TRUE_SEL = true_sel;
+	bool HAS_FALSE_SEL = false_sel;
+#endif
 	idx_t true_count = 0, false_count = 0;
 	for (idx_t i = 0; i < count; i++) {
 		auto result_idx = result_sel->get_index(i);
 		auto lindex = lsel->get_index(i);
 		auto rindex = rsel->get_index(i);
+#ifndef DUCKDB_SMALLER_BINARY
 		if (NO_NULL) {
 			if (OP::Operation(ldata[lindex], rdata[rindex], false, false)) {
 				if (HAS_TRUE_SEL) {
@@ -86,7 +95,9 @@ DistinctSelectGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *_
 					false_sel->set_index(false_count++, result_idx);
 				}
 			}
-		} else {
+		} else
+#endif
+		{
 			if (OP::Operation(ldata[lindex], rdata[rindex], !lmask.RowIsValid(lindex), !rmask.RowIsValid(rindex))) {
 				if (HAS_TRUE_SEL) {
 					true_sel->set_index(true_count++, result_idx);
@@ -104,6 +115,8 @@ DistinctSelectGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *_
 		return count - false_count;
 	}
 }
+
+#ifndef DUCKDB_SMALLER_BINARY
 template 
 static inline idx_t
 DistinctSelectGenericLoopSelSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata,
@@ -122,6 +135,7 @@ DistinctSelectGenericLoopSelSwitch(const LEFT_TYPE *__restrict ldata, const RIGH
 		    ldata, rdata, lsel, rsel, result_sel, count, lmask, rmask, true_sel, false_sel);
 	}
 }
+#endif
 
 template 
 static inline idx_t
@@ -129,6 +143,7 @@ DistinctSelectGenericLoopSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_T
                                 const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel,
                                 const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lmask,
                                 ValidityMask &rmask, SelectionVector *true_sel, SelectionVector *false_sel) {
+#ifndef DUCKDB_SMALLER_BINARY
 	if (!lmask.AllValid() || !rmask.AllValid()) {
 		return DistinctSelectGenericLoopSelSwitch(
 		    ldata, rdata, lsel, rsel, result_sel, count, lmask, rmask, true_sel, false_sel);
@@ -136,6 +151,10 @@ DistinctSelectGenericLoopSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_T
 		return DistinctSelectGenericLoopSelSwitch(
 		    ldata, rdata, lsel, rsel, result_sel, count, lmask, rmask, true_sel, false_sel);
 	}
+#else
+	return DistinctSelectGenericLoop(ldata, rdata, lsel, rsel, result_sel, count, lmask,
+	                                                            rmask, true_sel, false_sel);
+#endif
 }
 
 template 
@@ -150,6 +169,8 @@ static idx_t DistinctSelectGeneric(Vector &left, Vector &right, const SelectionV
 	    UnifiedVectorFormat::GetData(ldata), UnifiedVectorFormat::GetData(rdata), ldata.sel,
 	    rdata.sel, sel, count, ldata.validity, rdata.validity, true_sel, false_sel);
 }
+
+#ifndef DUCKDB_SMALLER_BINARY
 template 
 static inline idx_t DistinctSelectFlatLoop(LEFT_TYPE *__restrict ldata, RIGHT_TYPE *__restrict rdata,
@@ -205,6 +226,7 @@ static inline idx_t DistinctSelectFlatLoopSwitch(LEFT_TYPE *__restrict ldata, RI
 	return DistinctSelectFlatLoopSelSwitch(
 	    ldata, rdata, sel, count, lmask, rmask, true_sel, false_sel);
 }
+
 template 
 static idx_t DistinctSelectFlat(Vector &left, Vector &right, const SelectionVector *sel, idx_t count,
                                 SelectionVector *true_sel, SelectionVector *false_sel) {
@@ -229,6 +251,8 @@ static idx_t DistinctSelectFlat(Vector &left, Vector &right, const SelectionVect
 		    ldata, rdata, sel, count, FlatVector::Validity(left), FlatVector::Validity(right), true_sel, false_sel);
 	}
 }
+#endif
+
 template 
 static idx_t DistinctSelectConstant(Vector &left, Vector &right, const SelectionVector *sel, idx_t count,
                                     SelectionVector *true_sel, SelectionVector *false_sel) {
@@ -287,6 +311,7 @@ static idx_t DistinctSelect(Vector &left, Vector &right, const SelectionVector *
 
 	if (left.GetVectorType() == VectorType::CONSTANT_VECTOR && right.GetVectorType() == VectorType::CONSTANT_VECTOR) {
 		return DistinctSelectConstant(left, right, sel, count, true_sel, false_sel);
+#ifndef DUCKDB_SMALLER_BINARY
 	} else if (left.GetVectorType() == VectorType::CONSTANT_VECTOR &&
 	           right.GetVectorType() == VectorType::FLAT_VECTOR) {
 		return DistinctSelectFlat(left, right, sel, count, true_sel, false_sel);
@@ -296,6 +321,7 @@ static idx_t DistinctSelect(Vector &left, Vector &right, const SelectionVector *
 	} else if (left.GetVectorType() == VectorType::FLAT_VECTOR && right.GetVectorType() == VectorType::FLAT_VECTOR) {
 		return DistinctSelectFlat(left, right, sel, count, true_sel,
 		                                                                   false_sel);
+#endif
 	} else {
 		return DistinctSelectGeneric(left, right, sel, count, true_sel, false_sel);
 	}
@@ -532,7 +558,7 @@ static void ExtractNestedMask(const SelectionVector &slice_sel, const idx_t coun
 		}
 	}
 
-	child_mask->Reset(null_mask->TargetCount());
+	child_mask->Reset(null_mask->Capacity());
 }
 
 static void DensifyNestedSelection(const SelectionVector &dense_sel, const idx_t count, SelectionVector &slice_sel) {
@@ -570,7 +596,7 @@ static idx_t DistinctSelectStruct(Vector &left, Vector &right, idx_t count, cons
 	ValidityMask *child_mask = nullptr;
 	if (null_mask) {
 		child_mask = &child_validity;
-		child_mask->Reset(null_mask->TargetCount());
+		child_mask->Reset(null_mask->Capacity());
 	}
 
 	idx_t match_count = 0;
@@ -708,7 +734,7 @@ static idx_t DistinctSelectList(Vector &left, Vector &right, idx_t count, const
 	ValidityMask *child_mask = nullptr;
 	if (null_mask) {
 		child_mask = &child_validity;
-		child_mask->Reset(null_mask->TargetCount());
+		child_mask->Reset(null_mask->Capacity());
 	}
 
 	idx_t match_count = 0;
@@ -844,7 +870,7 @@ static idx_t DistinctSelectArray(Vector &left, Vector &right, idx_t count, const
 	ValidityMask *child_mask = nullptr;
 	if (null_mask) {
 		child_mask = &child_validity;
-		child_mask->Reset(null_mask->TargetCount());
+		child_mask->Reset(null_mask->Capacity());
 	}
 
 	idx_t match_count = 0;
@@ -1181,6 +1207,7 @@ idx_t VectorOperations::DistinctGreaterThanNullsFirst(Vector &left, Vector &righ
 	return TemplatedDistinctSelectOperation(left, right, sel, count, true_sel,
 	                                                                               false_sel, null_mask);
 }
+
 // true := A >= B with nulls being maximal
 idx_t VectorOperations::DistinctGreaterThanEquals(Vector &left, Vector &right, optional_ptr sel,
                                                   idx_t count, optional_ptr true_sel,
diff --git a/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp b/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp
deleted file mode 100644
index 426d4498..00000000
--- a/src/duckdb/src/core_functions/aggregate/distributive/entropy.cpp
+++ /dev/null
@@ -1,183 +0,0 @@
-#include "duckdb/core_functions/aggregate/distributive_functions.hpp"
-#include "duckdb/common/exception.hpp"
-#include "duckdb/common/vector_operations/vector_operations.hpp"
-#include "duckdb/planner/expression/bound_aggregate_expression.hpp"
-#include "duckdb/function/function_set.hpp"
-#include "duckdb/common/algorithm.hpp"
-#include "duckdb/common/unordered_map.hpp"
-
-namespace duckdb {
-
-template 
-struct EntropyState {
-	using DistinctMap = unordered_map;
-
-	idx_t count;
-	DistinctMap *distinct;
-
-	EntropyState &operator=(const EntropyState &other) = delete;
-
-	EntropyState &Assign(const EntropyState &other) {
-		D_ASSERT(!distinct);
-		distinct = new DistinctMap(*other.distinct);
-		count = other.count;
-		return *this;
-	}
-};
-
-struct EntropyFunctionBase {
-	template 
-	static void Initialize(STATE &state) {
-		state.distinct = nullptr;
-		state.count = 0;
-	}
-
-	template 
-	static void Combine(const STATE &source, STATE &target, AggregateInputData &) {
-		if (!source.distinct) {
-			return;
-		}
-		if (!target.distinct) {
-			target.Assign(source);
-			return;
-		}
-		for (auto &val : *source.distinct) {
-			auto value = val.first;
-			(*target.distinct)[value] += val.second;
-		}
-		target.count += source.count;
-	}
-
-	template 
-	static void Finalize(STATE &state, T &target, AggregateFinalizeData &finalize_data) {
-		double count = static_cast(state.count);
-		if (state.distinct) {
-			double entropy = 0;
-			for (auto &val : *state.distinct) {
-				double val_sec = static_cast(val.second);
-				entropy += (val_sec / count) * log2(count / val_sec);
-			}
-			target = entropy;
-		} else {
-			target = 0;
-		}
-	}
-
-	static bool IgnoreNull() {
-		return true;
-	}
-	template 
-	static void Destroy(STATE &state, AggregateInputData &aggr_input_data) {
-		if (state.distinct) {
-			delete state.distinct;
-		}
-	}
-};
-
-struct EntropyFunction : EntropyFunctionBase {
-	template 
-	static void Operation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input) {
-		if (!state.distinct) {
-			state.distinct = new unordered_map();
-		}
-		(*state.distinct)[input]++;
-		state.count++;
-	}
-	template 
-	static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input,
-	                              idx_t count) {
-		for (idx_t i = 0; i < count; i++) {
-			Operation(state, input, unary_input);
-		}
-	}
-};
-
-struct EntropyFunctionString : EntropyFunctionBase {
-	template 
-	static void Operation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input) {
-		if (!state.distinct) {
-			state.distinct = new unordered_map();
-		}
-		auto value = input.GetString();
-		(*state.distinct)[value]++;
-		state.count++;
-	}
-
-	template 
-	static void ConstantOperation(STATE &state, const INPUT_TYPE &input, AggregateUnaryInput &unary_input,
-	                              idx_t count) {
-		for (idx_t i = 0; i < count; i++) {
-			Operation(state, input, unary_input);
-		}
-	}
-};
-
-template 
-AggregateFunction GetEntropyFunction(const LogicalType &input_type, const LogicalType &result_type) {
-	auto fun =
-	    AggregateFunction::UnaryAggregateDestructor, INPUT_TYPE, RESULT_TYPE, EntropyFunction>(
-	        input_type, result_type);
-	fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING;
-	return fun;
-}
-
-AggregateFunction GetEntropyFunctionInternal(PhysicalType type) {
-	switch (type) {
-	case PhysicalType::UINT16:
-		return AggregateFunction::UnaryAggregateDestructor, uint16_t, double, EntropyFunction>(
-		    LogicalType::USMALLINT, LogicalType::DOUBLE);
-	case PhysicalType::UINT32:
-		return AggregateFunction::UnaryAggregateDestructor, uint32_t, double, EntropyFunction>(
-		    LogicalType::UINTEGER, LogicalType::DOUBLE);
-	case PhysicalType::UINT64:
-		return AggregateFunction::UnaryAggregateDestructor, uint64_t, double, EntropyFunction>(
-		    LogicalType::UBIGINT, LogicalType::DOUBLE);
-	case PhysicalType::INT16:
-		return AggregateFunction::UnaryAggregateDestructor, int16_t, double, EntropyFunction>(
-		    LogicalType::SMALLINT, LogicalType::DOUBLE);
-	case PhysicalType::INT32:
-		return AggregateFunction::UnaryAggregateDestructor, int32_t, double, EntropyFunction>(
-		    LogicalType::INTEGER, LogicalType::DOUBLE);
-	case PhysicalType::INT64:
-		return AggregateFunction::UnaryAggregateDestructor, int64_t, double, EntropyFunction>(
-		    LogicalType::BIGINT, LogicalType::DOUBLE);
-	case PhysicalType::FLOAT:
-		return AggregateFunction::UnaryAggregateDestructor, float, double, EntropyFunction>(
-		    LogicalType::FLOAT, LogicalType::DOUBLE);
-	case PhysicalType::DOUBLE:
-		return AggregateFunction::UnaryAggregateDestructor, double, double, EntropyFunction>(
-		    LogicalType::DOUBLE, LogicalType::DOUBLE);
-	case PhysicalType::VARCHAR: {
-		return AggregateFunction::UnaryAggregateDestructor, string_t, double,
-		                                                   EntropyFunctionString>(
-		    LogicalType::ANY_PARAMS(LogicalType::VARCHAR, 150), LogicalType::DOUBLE);
-	}
-
-	default:
-		throw InternalException("Unimplemented approximate_count aggregate");
-	}
-}
-
-AggregateFunction GetEntropyFunction(PhysicalType type) {
-	auto fun = GetEntropyFunctionInternal(type);
-	fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING;
-	return fun;
-}
-
-AggregateFunctionSet EntropyFun::GetFunctions() {
-	AggregateFunctionSet entropy("entropy");
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::UINT16));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::UINT32));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::UINT64));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::FLOAT));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::INT16));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::INT32));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::INT64));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::DOUBLE));
-	entropy.AddFunction(GetEntropyFunction(PhysicalType::VARCHAR));
-	entropy.AddFunction(GetEntropyFunction(LogicalType::TIMESTAMP, LogicalType::DOUBLE));
-	entropy.AddFunction(GetEntropyFunction(LogicalType::TIMESTAMP_TZ, LogicalType::DOUBLE));
-	return entropy;
-}
-
-} // namespace duckdb
diff --git a/src/duckdb/src/core_functions/scalar/date/current.cpp b/src/duckdb/src/core_functions/scalar/date/current.cpp
deleted file mode 100644
index 15957531..00000000
--- a/src/duckdb/src/core_functions/scalar/date/current.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "duckdb/core_functions/scalar/date_functions.hpp"
-
-#include "duckdb/common/exception.hpp"
-#include "duckdb/common/types/timestamp.hpp"
-#include "duckdb/common/vector_operations/vector_operations.hpp"
-#include "duckdb/planner/expression/bound_function_expression.hpp"
-#include "duckdb/main/client_context.hpp"
-#include "duckdb/transaction/meta_transaction.hpp"
-
-namespace duckdb {
-
-static timestamp_t GetTransactionTimestamp(ExpressionState &state) {
-	return MetaTransaction::Get(state.GetContext()).start_timestamp;
-}
-
-static void CurrentTimeFunction(DataChunk &input, ExpressionState &state, Vector &result) {
-	D_ASSERT(input.ColumnCount() == 0);
-	auto val = Value::TIME(Timestamp::GetTime(GetTransactionTimestamp(state)));
-	result.Reference(val);
-}
-
-static void CurrentDateFunction(DataChunk &input, ExpressionState &state, Vector &result) {
-	D_ASSERT(input.ColumnCount() == 0);
-
-	auto val = Value::DATE(Timestamp::GetDate(GetTransactionTimestamp(state)));
-	result.Reference(val);
-}
-
-static void CurrentTimestampFunction(DataChunk &input, ExpressionState &state, Vector &result) {
-	D_ASSERT(input.ColumnCount() == 0);
-
-	auto val = Value::TIMESTAMPTZ(GetTransactionTimestamp(state));
-	result.Reference(val);
-}
-
-ScalarFunction CurrentTimeFun::GetFunction() {
-	ScalarFunction current_time({}, LogicalType::TIME, CurrentTimeFunction);
-	current_time.stability = FunctionStability::CONSISTENT_WITHIN_QUERY;
-	return current_time;
-}
-
-ScalarFunction CurrentDateFun::GetFunction() {
-	ScalarFunction current_date({}, LogicalType::DATE, CurrentDateFunction);
-	current_date.stability = FunctionStability::CONSISTENT_WITHIN_QUERY;
-	return current_date;
-}
-
-ScalarFunction GetCurrentTimestampFun::GetFunction() {
-	ScalarFunction current_timestamp({}, LogicalType::TIMESTAMP_TZ, CurrentTimestampFunction);
-	current_timestamp.stability = FunctionStability::CONSISTENT_WITHIN_QUERY;
-	return current_timestamp;
-}
-
-} // namespace duckdb
diff --git a/src/duckdb/src/core_functions/scalar/string/jaro_winkler.cpp b/src/duckdb/src/core_functions/scalar/string/jaro_winkler.cpp
deleted file mode 100644
index 3c54b411..00000000
--- a/src/duckdb/src/core_functions/scalar/string/jaro_winkler.cpp
+++ /dev/null
@@ -1,71 +0,0 @@
-#include "jaro_winkler.hpp"
-
-#include "duckdb/core_functions/scalar/string_functions.hpp"
-
-namespace duckdb {
-
-static inline double JaroScalarFunction(const string_t &s1, const string_t &s2) {
-	auto s1_begin = s1.GetData();
-	auto s2_begin = s2.GetData();
-	return duckdb_jaro_winkler::jaro_similarity(s1_begin, s1_begin + s1.GetSize(), s2_begin, s2_begin + s2.GetSize());
-}
-
-static inline double JaroWinklerScalarFunction(const string_t &s1, const string_t &s2) {
-	auto s1_begin = s1.GetData();
-	auto s2_begin = s2.GetData();
-	return duckdb_jaro_winkler::jaro_winkler_similarity(s1_begin, s1_begin + s1.GetSize(), s2_begin,
-	                                                    s2_begin + s2.GetSize());
-}
-
-template 
-static void CachedFunction(Vector &constant, Vector &other, Vector &result, idx_t count) {
-	auto val = constant.GetValue(0);
-	if (val.IsNull()) {
-		auto &result_validity = FlatVector::Validity(result);
-		result_validity.SetAllInvalid(count);
-		return;
-	}
-
-	auto str_val = StringValue::Get(val);
-	auto cached = CACHED_SIMILARITY(str_val);
-	UnaryExecutor::Execute(other, result, count, [&](const string_t &other_str) {
-		auto other_str_begin = other_str.GetData();
-		return cached.similarity(other_str_begin, other_str_begin + other_str.GetSize());
-	});
-}
-
-template >
-static void TemplatedJaroWinklerFunction(DataChunk &args, Vector &result, SIMILARITY_FUNCTION fun) {
-	bool arg0_constant = args.data[0].GetVectorType() == VectorType::CONSTANT_VECTOR;
-	bool arg1_constant = args.data[1].GetVectorType() == VectorType::CONSTANT_VECTOR;
-	if (!(arg0_constant ^ arg1_constant)) {
-		// We can't optimize by caching one of the two strings
-		BinaryExecutor::Execute(args.data[0], args.data[1], result, args.size(), fun);
-		return;
-	}
-
-	if (arg0_constant) {
-		CachedFunction(args.data[0], args.data[1], result, args.size());
-	} else {
-		CachedFunction(args.data[1], args.data[0], result, args.size());
-	}
-}
-
-static void JaroFunction(DataChunk &args, ExpressionState &state, Vector &result) {
-	TemplatedJaroWinklerFunction>(args, result, JaroScalarFunction);
-}
-
-static void JaroWinklerFunction(DataChunk &args, ExpressionState &state, Vector &result) {
-	TemplatedJaroWinklerFunction>(args, result,
-	                                                                                     JaroWinklerScalarFunction);
-}
-
-ScalarFunction JaroSimilarityFun::GetFunction() {
-	return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE, JaroFunction);
-}
-
-ScalarFunction JaroWinklerSimilarityFun::GetFunction() {
-	return ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::DOUBLE, JaroWinklerFunction);
-}
-
-} // namespace duckdb
diff --git a/src/duckdb/src/execution/adaptive_filter.cpp b/src/duckdb/src/execution/adaptive_filter.cpp
index ce4025d2..6077ae3f 100644
--- a/src/duckdb/src/execution/adaptive_filter.cpp
+++ b/src/duckdb/src/execution/adaptive_filter.cpp
@@ -11,6 +11,9 @@ AdaptiveFilter::AdaptiveFilter(const Expression &expr) : observe_interval(10), e
 	D_ASSERT(conj_expr.children.size() > 1);
 	for (idx_t idx = 0; idx < conj_expr.children.size(); idx++) {
 		permutation.push_back(idx);
+		if (conj_expr.children[idx]->CanThrow()) {
+			disable_permutations = true;
+		}
 		if (idx != conj_expr.children.size() - 1) {
 			swap_likeliness.push_back(100);
 		}
@@ -29,7 +32,7 @@ AdaptiveFilter::AdaptiveFilter(const TableFilterSet &table_filters)
 }
 
 AdaptiveFilterState AdaptiveFilter::BeginFilter() const {
-	if (permutation.size() <= 1) {
+	if (permutation.size() <= 1 || disable_permutations) {
 		return AdaptiveFilterState();
 	}
 	AdaptiveFilterState state;
@@ -38,7 +41,7 @@ AdaptiveFilterState AdaptiveFilter::BeginFilter() const {
 }
 
 void AdaptiveFilter::EndFilter(AdaptiveFilterState state) {
-	if (permutation.size() <= 1) {
+	if (permutation.size() <= 1 || disable_permutations) {
 		// nothing to permute
 		return;
 	}
@@ -50,6 +53,7 @@ void AdaptiveFilter::AdaptRuntimeStatistics(double duration) {
 	iteration_count++;
 	runtime_sum += duration;
 
+	D_ASSERT(!disable_permutations);
 	if (!warmup) {
 		// the last swap was observed
 		if (observe && iteration_count == observe_interval) {
diff --git a/src/duckdb/src/execution/aggregate_hashtable.cpp b/src/duckdb/src/execution/aggregate_hashtable.cpp
index e09fd9b7..542564bd 100644
--- a/src/duckdb/src/execution/aggregate_hashtable.cpp
+++ b/src/duckdb/src/execution/aggregate_hashtable.cpp
@@ -59,7 +59,8 @@ GroupedAggregateHashTable::GroupedAggregateHashTable(ClientContext &context, All
 }
 
 void GroupedAggregateHashTable::InitializePartitionedData() {
-	if (!partitioned_data || RadixPartitioning::RadixBits(partitioned_data->PartitionCount()) != radix_bits) {
+	if (!partitioned_data ||
+	    RadixPartitioning::RadixBitsOfPowerOfTwo(partitioned_data->PartitionCount()) != radix_bits) {
 		D_ASSERT(!partitioned_data || partitioned_data->Count() == 0);
 		partitioned_data =
 		    make_uniq(buffer_manager, layout, radix_bits, layout.ColumnCount() - 1);
@@ -131,7 +132,11 @@ idx_t GroupedAggregateHashTable::Capacity() const {
 }
 
 idx_t GroupedAggregateHashTable::ResizeThreshold() const {
-	return LossyNumericCast(static_cast(Capacity()) / LOAD_FACTOR);
+	return ResizeThreshold(Capacity());
+}
+
+idx_t GroupedAggregateHashTable::ResizeThreshold(const idx_t capacity) {
+	return LossyNumericCast(static_cast(capacity) / LOAD_FACTOR);
 }
 
 idx_t GroupedAggregateHashTable::ApplyBitMask(hash_t hash) const {
@@ -155,7 +160,7 @@ void GroupedAggregateHashTable::Verify() {
 }
 
 void GroupedAggregateHashTable::ClearPointerTable() {
-	std::fill_n(entries, capacity, ht_entry_t::GetEmptyEntry());
+	std::fill_n(entries, capacity, ht_entry_t());
 }
 
 void GroupedAggregateHashTable::ResetCount() {
@@ -166,11 +171,15 @@ void GroupedAggregateHashTable::SetRadixBits(idx_t radix_bits_p) {
 	radix_bits = radix_bits_p;
 }
 
+idx_t GroupedAggregateHashTable::GetRadixBits() const {
+	return radix_bits;
+}
+
 void GroupedAggregateHashTable::Resize(idx_t size) {
 	D_ASSERT(size >= STANDARD_VECTOR_SIZE);
 	D_ASSERT(IsPowerOfTwo(size));
-	if (size < capacity) {
-		throw InternalException("Cannot downsize a hash table!");
+	if (Count() != 0 && size < capacity) {
+		throw InternalException("Cannot downsize a non-empty hash table!");
 	}
 
 	capacity = size;
@@ -226,29 +235,183 @@ idx_t GroupedAggregateHashTable::AddChunk(DataChunk &groups, DataChunk &payload,
 	return AddChunk(groups, payload, aggregate_filter);
 }
 
-idx_t GroupedAggregateHashTable::AddChunk(DataChunk &groups, DataChunk &payload, const unsafe_vector &filter) {
-	Vector hashes(LogicalType::HASH);
-	groups.Hash(hashes);
-
-	return AddChunk(groups, hashes, payload, filter);
+GroupedAggregateHashTable::AggregateDictionaryState::AggregateDictionaryState()
+    : hashes(LogicalType::HASH), new_dictionary_pointers(LogicalType::POINTER), unique_entries(STANDARD_VECTOR_SIZE) {
 }
 
-idx_t GroupedAggregateHashTable::AddChunk(DataChunk &groups, Vector &group_hashes, DataChunk &payload,
-                                          const unsafe_vector &filter) {
-	if (groups.size() == 0) {
-		return 0;
+optional_idx GroupedAggregateHashTable::TryAddDictionaryGroups(DataChunk &groups, DataChunk &payload,
+                                                               const unsafe_vector &filter) {
+	static constexpr idx_t MAX_DICTIONARY_SIZE_THRESHOLD = 20000;
+	static constexpr idx_t DICTIONARY_THRESHOLD = 2;
+	// dictionary vector - check if this is a duplicate eliminated dictionary from the storage
+	auto &dict_col = groups.data[0];
+	auto opt_dict_size = DictionaryVector::DictionarySize(dict_col);
+	if (!opt_dict_size.IsValid()) {
+		// dict size not known - this is not a dictionary that comes from the storage
+		return optional_idx();
+	}
+	idx_t dict_size = opt_dict_size.GetIndex();
+	auto &dictionary_id = DictionaryVector::DictionaryId(dict_col);
+	if (dictionary_id.empty()) {
+		// dictionary has no id, we can't cache across vectors
+		// only use dictionary compression if there are fewer entries than groups
+		if (dict_size >= groups.size() * DICTIONARY_THRESHOLD) {
+			// dictionary is too large - use regular aggregation
+			return optional_idx();
+		}
+	} else {
+		// dictionary has an id - we can cache across vectors
+		// use a much larger limit for dictionary
+		if (dict_size >= MAX_DICTIONARY_SIZE_THRESHOLD) {
+			// dictionary is too large - use regular aggregation
+			return optional_idx();
+		}
+	}
+	auto &dictionary_vector = DictionaryVector::Child(dict_col);
+	auto &offsets = DictionaryVector::SelVector(dict_col);
+	auto &dict_state = state.dict_state;
+	if (dict_state.dictionary_id.empty() || dict_state.dictionary_id != dictionary_id) {
+		// new dictionary - initialize the index state
+		if (dict_size > dict_state.capacity) {
+			dict_state.dictionary_addresses = make_uniq(LogicalType::POINTER, dict_size);
+			dict_state.found_entry = make_unsafe_uniq_array(dict_size);
+			dict_state.capacity = dict_size;
+		}
+		memset(dict_state.found_entry.get(), 0, dict_size * sizeof(bool));
+		dict_state.dictionary_id = dictionary_id;
+	} else if (dict_size > dict_state.capacity) {
+		throw InternalException("AggregateHT - using cached dictionary data but dictionary has changed (dictionary id "
+		                        "%s - dict size %d, current capacity %d)",
+		                        dict_state.dictionary_id, dict_size, dict_state.capacity);
 	}
 
-#ifdef DEBUG
-	D_ASSERT(groups.ColumnCount() + 1 == layout.ColumnCount());
-	for (idx_t i = 0; i < groups.ColumnCount(); i++) {
-		D_ASSERT(groups.GetTypes()[i] == layout.GetTypes()[i]);
+	auto &found_entry = dict_state.found_entry;
+	auto &unique_entries = dict_state.unique_entries;
+	idx_t unique_count = 0;
+	// for each of the dictionary entries - check if we have already done a look-up into the hash table
+	// if we have, we can just use the cached group pointers
+	for (idx_t i = 0; i < groups.size(); i++) {
+		auto dict_idx = offsets.get_index(i);
+		unique_entries.set_index(unique_count, dict_idx);
+		unique_count += !found_entry[dict_idx];
+		found_entry[dict_idx] = true;
+	}
+	auto &new_dictionary_pointers = dict_state.new_dictionary_pointers;
+	idx_t new_group_count = 0;
+	if (unique_count > 0) {
+		auto &unique_values = dict_state.unique_values;
+		if (unique_values.ColumnCount() == 0) {
+			unique_values.InitializeEmpty(groups.GetTypes());
+		}
+		// slice the dictionary
+		unique_values.data[0].Slice(dictionary_vector, unique_entries, unique_count);
+		unique_values.SetCardinality(unique_count);
+		// now we know which entries we are going to add - hash them
+		auto &hashes = dict_state.hashes;
+		unique_values.Hash(hashes);
+
+		// add the dictionary groups to the hash table
+		new_group_count = FindOrCreateGroups(unique_values, hashes, new_dictionary_pointers, state.new_groups);
+	}
+	auto &aggregates = layout.GetAggregates();
+	if (aggregates.empty()) {
+		// early-out - no aggregates to update
+		return new_group_count;
+	}
+
+	// set the addresses that we found for each of the unique groups in the main addresses vector
+	auto new_dict_addresses = FlatVector::GetData(new_dictionary_pointers);
+	// for each of the new groups, add them to the global (cached) list of addresses for the dictionary
+	auto &dictionary_addresses = *dict_state.dictionary_addresses;
+	auto dict_addresses = FlatVector::GetData(dictionary_addresses);
+	for (idx_t i = 0; i < unique_count; i++) {
+		auto dict_idx = unique_entries.get_index(i);
+		dict_addresses[dict_idx] = new_dict_addresses[i] + layout.GetAggrOffset();
+	}
+	// now set up the addresses for the aggregates
+	auto result_addresses = FlatVector::GetData(state.addresses);
+	for (idx_t i = 0; i < groups.size(); i++) {
+		auto dict_idx = offsets.get_index(i);
+		result_addresses[i] = dict_addresses[dict_idx];
+	}
+
+	// finally process the aggregates
+	UpdateAggregates(payload, filter);
+
+	return new_group_count;
+}
+
+optional_idx GroupedAggregateHashTable::TryAddConstantGroups(DataChunk &groups, DataChunk &payload,
+                                                             const unsafe_vector &filter) {
+#ifndef DEBUG
+	if (groups.size() <= 1) {
+		// this only has a point if we have multiple groups
+		return optional_idx();
 	}
 #endif
+	auto &dict_state = state.dict_state;
+	auto &unique_values = dict_state.unique_values;
+	if (unique_values.ColumnCount() == 0) {
+		unique_values.InitializeEmpty(groups.GetTypes());
+	}
+	// slice the dictionary
+	unique_values.Reference(groups);
+	unique_values.SetCardinality(1);
+	unique_values.Flatten();
 
-	const auto new_group_count = FindOrCreateGroups(groups, group_hashes, state.addresses, state.new_groups);
-	VectorOperations::AddInPlace(state.addresses, NumericCast(layout.GetAggrOffset()), payload.size());
+	auto &hashes = dict_state.hashes;
+	unique_values.Hash(hashes);
+
+	// add the single constant group to the hash table
+	auto &new_dictionary_pointers = dict_state.new_dictionary_pointers;
+	auto new_group_count = FindOrCreateGroups(unique_values, hashes, new_dictionary_pointers, state.new_groups);
 
+	auto &aggregates = layout.GetAggregates();
+	if (aggregates.empty()) {
+		// early-out - no aggregates to update
+		return new_group_count;
+	}
+
+	auto new_dict_addresses = FlatVector::GetData(new_dictionary_pointers);
+	auto result_addresses = FlatVector::GetData(state.addresses);
+	uintptr_t aggregate_address = new_dict_addresses[0] + layout.GetAggrOffset();
+	for (idx_t i = 0; i < payload.size(); i++) {
+		result_addresses[i] = aggregate_address;
+	}
+
+	// process the aggregates
+	// FIXME: we can use simple_update here if the aggregates support it
+	UpdateAggregates(payload, filter);
+
+	return new_group_count;
+}
+
+optional_idx GroupedAggregateHashTable::TryAddCompressedGroups(DataChunk &groups, DataChunk &payload,
+                                                               const unsafe_vector &filter) {
+	// all groups must be compressed
+	if (groups.AllConstant()) {
+		return TryAddConstantGroups(groups, payload, filter);
+	}
+	if (groups.ColumnCount() == 1 && groups.data[0].GetVectorType() == VectorType::DICTIONARY_VECTOR) {
+		return TryAddDictionaryGroups(groups, payload, filter);
+	}
+	return optional_idx();
+}
+
+idx_t GroupedAggregateHashTable::AddChunk(DataChunk &groups, DataChunk &payload, const unsafe_vector &filter) {
+	// check if we can use an optimized path that utilizes compressed vectors
+	auto result = TryAddCompressedGroups(groups, payload, filter);
+	if (result.IsValid()) {
+		return result.GetIndex();
+	}
+	// otherwise append the raw values
+	Vector hashes(LogicalType::HASH);
+	groups.Hash(hashes);
+
+	return AddChunk(groups, hashes, payload, filter);
+}
+
+void GroupedAggregateHashTable::UpdateAggregates(DataChunk &payload, const unsafe_vector &filter) {
 	// Now every cell has an entry, update the aggregates
 	auto &aggregates = layout.GetAggregates();
 	idx_t filter_idx = 0;
@@ -278,6 +441,26 @@ idx_t GroupedAggregateHashTable::AddChunk(DataChunk &groups, Vector &group_hashe
 	}
 
 	Verify();
+}
+
+idx_t GroupedAggregateHashTable::AddChunk(DataChunk &groups, Vector &group_hashes, DataChunk &payload,
+                                          const unsafe_vector &filter) {
+	if (groups.size() == 0) {
+		return 0;
+	}
+
+#ifdef DEBUG
+	D_ASSERT(groups.ColumnCount() + 1 == layout.ColumnCount());
+	for (idx_t i = 0; i < groups.ColumnCount(); i++) {
+		D_ASSERT(groups.GetTypes()[i] == layout.GetTypes()[i]);
+	}
+#endif
+
+	const auto new_group_count = FindOrCreateGroups(groups, group_hashes, state.addresses, state.new_groups);
+	VectorOperations::AddInPlace(state.addresses, NumericCast(layout.GetAggrOffset()), payload.size());
+
+	UpdateAggregates(payload, filter);
+
 	return new_group_count;
 }
 
diff --git a/src/duckdb/src/execution/expression_executor.cpp b/src/duckdb/src/execution/expression_executor.cpp
index 716672d8..63a24f47 100644
--- a/src/duckdb/src/execution/expression_executor.cpp
+++ b/src/duckdb/src/execution/expression_executor.cpp
@@ -170,10 +170,16 @@ unique_ptr ExpressionExecutor::InitializeState(const Expression
 void ExpressionExecutor::Execute(const Expression &expr, ExpressionState *state, const SelectionVector *sel,
                                  idx_t count, Vector &result) {
 #ifdef DEBUG
-	// the result vector has to be used for the first time or has to be reset
-	// otherwise, the validity mask might contain previous (now incorrect) data
+	// The result vector must be used for the first time, or must be reset.
+	// Otherwise, the validity mask can contain previous (now incorrect) data.
 	if (result.GetVectorType() == VectorType::FLAT_VECTOR) {
-		D_ASSERT(FlatVector::Validity(result).CheckAllValid(count));
+
+		// We do not initialize vector caches for these expressions.
+		if (expr.GetExpressionClass() != ExpressionClass::BOUND_REF &&
+		    expr.GetExpressionClass() != ExpressionClass::BOUND_CONSTANT &&
+		    expr.GetExpressionClass() != ExpressionClass::BOUND_PARAMETER) {
+			D_ASSERT(FlatVector::Validity(result).CheckAllValid(count));
+		}
 	}
 #endif
 
@@ -230,8 +236,10 @@ idx_t ExpressionExecutor::Select(const Expression &expr, ExpressionState *state,
 	D_ASSERT(true_sel || false_sel);
 	D_ASSERT(expr.return_type.id() == LogicalTypeId::BOOLEAN);
 	switch (expr.expression_class) {
+#ifndef DUCKDB_SMALLER_BINARY
 	case ExpressionClass::BOUND_BETWEEN:
 		return Select(expr.Cast(), state, sel, count, true_sel, false_sel);
+#endif
 	case ExpressionClass::BOUND_COMPARISON:
 		return Select(expr.Cast(), state, sel, count, true_sel, false_sel);
 	case ExpressionClass::BOUND_CONJUNCTION:
diff --git a/src/duckdb/src/execution/expression_executor/execute_between.cpp b/src/duckdb/src/execution/expression_executor/execute_between.cpp
index ca7d45f7..34183513 100644
--- a/src/duckdb/src/execution/expression_executor/execute_between.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_between.cpp
@@ -7,6 +7,7 @@
 
 namespace duckdb {
 
+#ifndef DUCKDB_SMALLER_BINARY
 struct BothInclusiveBetweenOperator {
 	template 
 	static inline bool Operation(T input, T lower, T upper) {
@@ -85,13 +86,15 @@ static idx_t BetweenLoopTypeSwitch(Vector &input, Vector &lower, Vector &upper,
 		throw InvalidTypeException(input.GetType(), "Invalid type for BETWEEN");
 	}
 }
+#endif
 
 unique_ptr ExpressionExecutor::InitializeState(const BoundBetweenExpression &expr,
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
-	result->AddChild(expr.input.get());
-	result->AddChild(expr.lower.get());
-	result->AddChild(expr.upper.get());
+	result->AddChild(*expr.input);
+	result->AddChild(*expr.lower);
+	result->AddChild(*expr.upper);
+
 	result->Finalize();
 	return result;
 }
@@ -130,6 +133,9 @@ void ExpressionExecutor::Execute(const BoundBetweenExpression &expr, ExpressionS
 
 idx_t ExpressionExecutor::Select(const BoundBetweenExpression &expr, ExpressionState *state, const SelectionVector *sel,
                                  idx_t count, SelectionVector *true_sel, SelectionVector *false_sel) {
+#ifdef DUCKDB_SMALLER_BINARY
+	throw InternalException("ExpressionExecutor::Select not available with DUCKDB_SMALLER_BINARY");
+#else
 	// resolve the children
 	Vector input(state->intermediate_chunk.data[0]);
 	Vector lower(state->intermediate_chunk.data[1]);
@@ -151,6 +157,7 @@ idx_t ExpressionExecutor::Select(const BoundBetweenExpression &expr, ExpressionS
 	} else {
 		return BetweenLoopTypeSwitch(input, lower, upper, sel, count, true_sel, false_sel);
 	}
+#endif
 }
 
 } // namespace duckdb
diff --git a/src/duckdb/src/execution/expression_executor/execute_case.cpp b/src/duckdb/src/execution/expression_executor/execute_case.cpp
index 37d50af5..cdeae311 100644
--- a/src/duckdb/src/execution/expression_executor/execute_case.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_case.cpp
@@ -18,10 +18,11 @@ unique_ptr ExpressionExecutor::InitializeState(const BoundCaseE
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
 	for (auto &case_check : expr.case_checks) {
-		result->AddChild(case_check.when_expr.get());
-		result->AddChild(case_check.then_expr.get());
+		result->AddChild(*case_check.when_expr);
+		result->AddChild(*case_check.then_expr);
 	}
-	result->AddChild(expr.else_expr.get());
+	result->AddChild(*expr.else_expr);
+
 	result->Finalize();
 	return std::move(result);
 }
diff --git a/src/duckdb/src/execution/expression_executor/execute_cast.cpp b/src/duckdb/src/execution/expression_executor/execute_cast.cpp
index 688ffbb9..eb3a93fc 100644
--- a/src/duckdb/src/execution/expression_executor/execute_cast.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_cast.cpp
@@ -8,10 +8,12 @@ namespace duckdb {
 unique_ptr ExpressionExecutor::InitializeState(const BoundCastExpression &expr,
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
-	result->AddChild(expr.child.get());
+	result->AddChild(*expr.child);
 	result->Finalize();
+
 	if (expr.bound_cast.init_local_state) {
-		CastLocalStateParameters parameters(root.executor->GetContext(), expr.bound_cast.cast_data);
+		auto context_ptr = root.executor->HasContext() ? &root.executor->GetContext() : nullptr;
+		CastLocalStateParameters parameters(context_ptr, expr.bound_cast.cast_data);
 		result->local_state = expr.bound_cast.init_local_state(parameters);
 	}
 	return std::move(result);
diff --git a/src/duckdb/src/execution/expression_executor/execute_comparison.cpp b/src/duckdb/src/execution/expression_executor/execute_comparison.cpp
index 58a4e480..949bc7ab 100644
--- a/src/duckdb/src/execution/expression_executor/execute_comparison.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_comparison.cpp
@@ -12,8 +12,9 @@ namespace duckdb {
 unique_ptr ExpressionExecutor::InitializeState(const BoundComparisonExpression &expr,
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
-	result->AddChild(expr.left.get());
-	result->AddChild(expr.right.get());
+	result->AddChild(*expr.left);
+	result->AddChild(*expr.right);
+
 	result->Finalize();
 	return result;
 }
diff --git a/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp b/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp
index 37161cfd..8ea55d63 100644
--- a/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_conjunction.cpp
@@ -18,8 +18,9 @@ unique_ptr ExpressionExecutor::InitializeState(const BoundConju
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
 	for (auto &child : expr.children) {
-		result->AddChild(child.get());
+		result->AddChild(*child);
 	}
+
 	result->Finalize();
 	return std::move(result);
 }
diff --git a/src/duckdb/src/execution/expression_executor/execute_function.cpp b/src/duckdb/src/execution/expression_executor/execute_function.cpp
index 0a7d3261..7fe9df2f 100644
--- a/src/duckdb/src/execution/expression_executor/execute_function.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_function.cpp
@@ -14,8 +14,9 @@ unique_ptr ExpressionExecutor::InitializeState(const BoundFunct
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
 	for (auto &child : expr.children) {
-		result->AddChild(child.get());
+		result->AddChild(*child);
 	}
+
 	result->Finalize();
 	if (expr.function.init_local_state) {
 		result->local_state = expr.function.init_local_state(*result, expr, expr.bind_info.get());
diff --git a/src/duckdb/src/execution/expression_executor/execute_operator.cpp b/src/duckdb/src/execution/expression_executor/execute_operator.cpp
index f357ff9c..7db87478 100644
--- a/src/duckdb/src/execution/expression_executor/execute_operator.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_operator.cpp
@@ -8,8 +8,9 @@ unique_ptr ExpressionExecutor::InitializeState(const BoundOpera
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
 	for (auto &child : expr.children) {
-		result->AddChild(child.get());
+		result->AddChild(*child);
 	}
+
 	result->Finalize();
 	return result;
 }
@@ -33,7 +34,7 @@ void ExpressionExecutor::Execute(const BoundOperatorExpression &expr, Expression
 		intermediate.Reference(false_val);
 
 		// in rhs is a list of constants
-		// for every child, OR the result of the comparision with the left
+		// for every child, OR the result of the comparison with the left
 		// to get the overall result.
 		for (idx_t child = 1; child < expr.children.size(); child++) {
 			Vector vector_to_check(expr.children[child]->return_type);
diff --git a/src/duckdb/src/execution/expression_executor/execute_reference.cpp b/src/duckdb/src/execution/expression_executor/execute_reference.cpp
index 4dac1539..88fdfa63 100644
--- a/src/duckdb/src/execution/expression_executor/execute_reference.cpp
+++ b/src/duckdb/src/execution/expression_executor/execute_reference.cpp
@@ -6,7 +6,7 @@ namespace duckdb {
 unique_ptr ExpressionExecutor::InitializeState(const BoundReferenceExpression &expr,
                                                                 ExpressionExecutorState &root) {
 	auto result = make_uniq(expr, root);
-	result->Finalize(true);
+	result->Finalize();
 	return result;
 }
 
diff --git a/src/duckdb/src/execution/expression_executor_state.cpp b/src/duckdb/src/execution/expression_executor_state.cpp
index 44161f94..070a399d 100644
--- a/src/duckdb/src/execution/expression_executor_state.cpp
+++ b/src/duckdb/src/execution/expression_executor_state.cpp
@@ -6,20 +6,22 @@
 
 namespace duckdb {
 
-void ExpressionState::AddChild(Expression *expr) {
-	types.push_back(expr->return_type);
-	child_states.push_back(ExpressionExecutor::InitializeState(*expr, root));
+void ExpressionState::AddChild(Expression &child_expr) {
+	types.push_back(child_expr.return_type);
+	auto child_state = ExpressionExecutor::InitializeState(child_expr, root);
+	child_states.push_back(std::move(child_state));
+
+	auto expr_class = child_expr.GetExpressionClass();
+	auto initialize_child = expr_class != ExpressionClass::BOUND_REF && expr_class != ExpressionClass::BOUND_CONSTANT &&
+	                        expr_class != ExpressionClass::BOUND_PARAMETER;
+	initialize.push_back(initialize_child);
 }
 
-void ExpressionState::Finalize(bool empty) {
+void ExpressionState::Finalize() {
 	if (types.empty()) {
 		return;
 	}
-	if (empty) {
-		intermediate_chunk.InitializeEmpty(types);
-	} else {
-		intermediate_chunk.Initialize(GetAllocator(), types);
-	}
+	intermediate_chunk.Initialize(GetAllocator(), types, initialize);
 }
 
 Allocator &ExpressionState::GetAllocator() {
diff --git a/src/duckdb/src/execution/index/art/base_leaf.cpp b/src/duckdb/src/execution/index/art/base_leaf.cpp
index 59492bb4..5034a039 100644
--- a/src/duckdb/src/execution/index/art/base_leaf.cpp
+++ b/src/duckdb/src/execution/index/art/base_leaf.cpp
@@ -154,7 +154,7 @@ void Node15Leaf::ShrinkNode256Leaf(ART &art, Node &node15_leaf, Node &node256_le
 	auto &n256 = Node::Ref(art, node256_leaf, NType::NODE_256_LEAF);
 	node15_leaf.SetGateStatus(node256_leaf.GetGateStatus());
 
-	ValidityMask mask(&n256.mask[0]);
+	ValidityMask mask(&n256.mask[0], Node256::CAPACITY);
 	for (uint16_t i = 0; i < Node256::CAPACITY; i++) {
 		if (mask.RowIsValid(i)) {
 			n15.key[n15.count] = UnsafeNumericCast(i);
diff --git a/src/duckdb/src/execution/index/art/node256_leaf.cpp b/src/duckdb/src/execution/index/art/node256_leaf.cpp
index 01067922..5c74674f 100644
--- a/src/duckdb/src/execution/index/art/node256_leaf.cpp
+++ b/src/duckdb/src/execution/index/art/node256_leaf.cpp
@@ -11,7 +11,7 @@ Node256Leaf &Node256Leaf::New(ART &art, Node &node) {
 	auto &n256 = Node::Ref(art, node, NODE_256_LEAF);
 
 	n256.count = 0;
-	ValidityMask mask(&n256.mask[0]);
+	ValidityMask mask(&n256.mask[0], Node256::CAPACITY);
 	mask.SetAllInvalid(CAPACITY);
 	return n256;
 }
@@ -19,14 +19,14 @@ Node256Leaf &Node256Leaf::New(ART &art, Node &node) {
 void Node256Leaf::InsertByte(ART &art, Node &node, const uint8_t byte) {
 	auto &n256 = Node::Ref(art, node, NODE_256_LEAF);
 	n256.count++;
-	ValidityMask mask(&n256.mask[0]);
+	ValidityMask mask(&n256.mask[0], Node256::CAPACITY);
 	mask.SetValid(byte);
 }
 
 void Node256Leaf::DeleteByte(ART &art, Node &node, const uint8_t byte) {
 	auto &n256 = Node::Ref(art, node, NODE_256_LEAF);
 	n256.count--;
-	ValidityMask mask(&n256.mask[0]);
+	ValidityMask mask(&n256.mask[0], Node256::CAPACITY);
 	mask.SetInvalid(byte);
 
 	// Shrink node to Node15
@@ -37,12 +37,12 @@ void Node256Leaf::DeleteByte(ART &art, Node &node, const uint8_t byte) {
 }
 
 bool Node256Leaf::HasByte(uint8_t &byte) {
-	ValidityMask v_mask(&mask[0]);
+	ValidityMask v_mask(&mask[0], Node256::CAPACITY);
 	return v_mask.RowIsValid(byte);
 }
 
 bool Node256Leaf::GetNextByte(uint8_t &byte) {
-	ValidityMask v_mask(&mask[0]);
+	ValidityMask v_mask(&mask[0], Node256::CAPACITY);
 	for (uint16_t i = byte; i < CAPACITY; i++) {
 		if (v_mask.RowIsValid(i)) {
 			byte = UnsafeNumericCast(i);
@@ -58,7 +58,7 @@ Node256Leaf &Node256Leaf::GrowNode15Leaf(ART &art, Node &node256_leaf, Node &nod
 	node256_leaf.SetGateStatus(node15_leaf.GetGateStatus());
 
 	n256.count = n15.count;
-	ValidityMask mask(&n256.mask[0]);
+	ValidityMask mask(&n256.mask[0], Node256::CAPACITY);
 	for (uint8_t i = 0; i < n15.count; i++) {
 		mask.SetValid(n15.key[i]);
 	}
diff --git a/src/duckdb/src/execution/index/art/plan_art.cpp b/src/duckdb/src/execution/index/art/plan_art.cpp
new file mode 100644
index 00000000..ce459b29
--- /dev/null
+++ b/src/duckdb/src/execution/index/art/plan_art.cpp
@@ -0,0 +1,89 @@
+#include "duckdb/execution/index/art/art.hpp"
+#include "duckdb/execution/operator/filter/physical_filter.hpp"
+#include "duckdb/execution/operator/order/physical_order.hpp"
+#include "duckdb/execution/operator/projection/physical_projection.hpp"
+#include "duckdb/execution/operator/schema/physical_create_art_index.hpp"
+#include "duckdb/planner/expression/bound_operator_expression.hpp"
+#include "duckdb/planner/expression/bound_reference_expression.hpp"
+#include "duckdb/planner/operator/logical_create_index.hpp"
+
+namespace duckdb {
+
+unique_ptr ART::CreatePlan(PlanIndexInput &input) {
+	auto &op = input.op;
+
+	// PROJECTION on indexed columns.
+	vector new_column_types;
+	vector> select_list;
+	for (idx_t i = 0; i < op.expressions.size(); i++) {
+		new_column_types.push_back(op.expressions[i]->return_type);
+		select_list.push_back(std::move(op.expressions[i]));
+	}
+	new_column_types.emplace_back(LogicalType::ROW_TYPE);
+	select_list.push_back(make_uniq(LogicalType::ROW_TYPE, op.info->scan_types.size() - 1));
+
+	auto projection = make_uniq(new_column_types, std::move(select_list), op.estimated_cardinality);
+	projection->children.push_back(std::move(input.table_scan));
+
+	// Optional NOT NULL filter.
+	unique_ptr prev_operator;
+	auto is_alter = op.alter_table_info != nullptr;
+	if (!is_alter) {
+		vector filter_types;
+		vector> filter_select_list;
+		auto not_null_type = ExpressionType::OPERATOR_IS_NOT_NULL;
+
+		for (idx_t i = 0; i < new_column_types.size() - 1; i++) {
+			filter_types.push_back(new_column_types[i]);
+			auto is_not_null_expr = make_uniq(not_null_type, LogicalType::BOOLEAN);
+			auto bound_ref = make_uniq(new_column_types[i], i);
+			is_not_null_expr->children.push_back(std::move(bound_ref));
+			filter_select_list.push_back(std::move(is_not_null_expr));
+		}
+
+		prev_operator =
+		    make_uniq(std::move(filter_types), std::move(filter_select_list), op.estimated_cardinality);
+		prev_operator->types.emplace_back(LogicalType::ROW_TYPE);
+		prev_operator->children.push_back(std::move(projection));
+
+	} else {
+		prev_operator = std::move(projection);
+	}
+
+	// Determine whether to push an ORDER BY operator.
+	auto sort = true;
+	if (op.unbound_expressions.size() > 1) {
+		sort = false;
+	} else if (op.unbound_expressions[0]->return_type.InternalType() == PhysicalType::VARCHAR) {
+		sort = false;
+	}
+
+	// CREATE INDEX operator.
+	auto physical_create_index = make_uniq(
+	    op, op.table, op.info->column_ids, std::move(op.info), std::move(op.unbound_expressions),
+	    op.estimated_cardinality, sort, std::move(op.alter_table_info));
+
+	if (!sort) {
+		physical_create_index->children.push_back(std::move(prev_operator));
+		return std::move(physical_create_index);
+	}
+
+	// ORDER BY operator.
+	vector orders;
+	vector projections;
+	for (idx_t i = 0; i < new_column_types.size() - 1; i++) {
+		auto col_expr = make_uniq_base(new_column_types[i], i);
+		orders.emplace_back(OrderType::ASCENDING, OrderByNullType::NULLS_FIRST, std::move(col_expr));
+		projections.emplace_back(i);
+	}
+	projections.emplace_back(new_column_types.size() - 1);
+
+	auto physical_order =
+	    make_uniq(new_column_types, std::move(orders), std::move(projections), op.estimated_cardinality);
+
+	physical_order->children.push_back(std::move(prev_operator));
+	physical_create_index->children.push_back(std::move(physical_order));
+	return std::move(physical_create_index);
+}
+
+} // namespace duckdb
diff --git a/src/duckdb/src/execution/index/fixed_size_allocator.cpp b/src/duckdb/src/execution/index/fixed_size_allocator.cpp
index a6ad0f38..24ea0918 100644
--- a/src/duckdb/src/execution/index/fixed_size_allocator.cpp
+++ b/src/duckdb/src/execution/index/fixed_size_allocator.cpp
@@ -44,7 +44,6 @@ FixedSizeAllocator::FixedSizeAllocator(const idx_t segment_size, BlockManager &b
 }
 
 IndexPointer FixedSizeAllocator::New() {
-
 	// no more segments available
 	if (buffers_with_free_space.empty()) {
 
@@ -57,7 +56,7 @@ IndexPointer FixedSizeAllocator::New() {
 		// set the bitmask
 		D_ASSERT(buffers.find(buffer_id) != buffers.end());
 		auto &buffer = buffers.find(buffer_id)->second;
-		ValidityMask mask(reinterpret_cast(buffer.Get()));
+		ValidityMask mask(reinterpret_cast(buffer.Get()), available_segments_per_buffer);
 
 		// zero-initialize the bitmask to avoid leaking memory to disk
 		auto data = mask.GetData();
@@ -75,7 +74,7 @@ IndexPointer FixedSizeAllocator::New() {
 
 	D_ASSERT(buffers.find(buffer_id) != buffers.end());
 	auto &buffer = buffers.find(buffer_id)->second;
-	auto offset = buffer.GetOffset(bitmask_count);
+	auto offset = buffer.GetOffset(bitmask_count, available_segments_per_buffer);
 
 	total_segment_count++;
 	buffer.segment_count++;
@@ -100,7 +99,7 @@ void FixedSizeAllocator::Free(const IndexPointer ptr) {
 	auto &buffer = buffers.find(buffer_id)->second;
 
 	auto bitmask_ptr = reinterpret_cast(buffer.Get());
-	ValidityMask mask(bitmask_ptr);
+	ValidityMask mask(bitmask_ptr, offset + 1); // FIXME
 	D_ASSERT(!mask.RowIsValid(offset));
 	mask.SetValid(offset);
 
@@ -289,7 +288,6 @@ vector FixedSizeAllocator::InitSerializationToWAL() {
 }
 
 void FixedSizeAllocator::Init(const FixedSizeAllocatorInfo &info) {
-
 	segment_size = info.segment_size;
 	total_segment_count = 0;
 
diff --git a/src/duckdb/src/execution/index/fixed_size_buffer.cpp b/src/duckdb/src/execution/index/fixed_size_buffer.cpp
index 7647a453..336d9639 100644
--- a/src/duckdb/src/execution/index/fixed_size_buffer.cpp
+++ b/src/duckdb/src/execution/index/fixed_size_buffer.cpp
@@ -106,21 +106,25 @@ void FixedSizeBuffer::Serialize(PartialBlockManager &partial_block_manager, cons
 		auto &p_block_for_index = allocation.partial_block->Cast();
 		auto dst_handle = buffer_manager.Pin(p_block_for_index.block_handle);
 		memcpy(dst_handle.Ptr() + block_pointer.offset, buffer_handle.Ptr(), allocation_size);
-		SetUninitializedRegions(p_block_for_index, segment_size, block_pointer.offset, bitmask_offset);
+		SetUninitializedRegions(p_block_for_index, segment_size, block_pointer.offset, bitmask_offset,
+		                        available_segments);
 
 	} else {
 		// create a new block that can potentially be used as a partial block
 		D_ASSERT(block_handle);
 		D_ASSERT(!block_pointer.offset);
 		auto p_block_for_index = make_uniq(allocation.state, block_manager, block_handle);
-		SetUninitializedRegions(*p_block_for_index, segment_size, block_pointer.offset, bitmask_offset);
+		SetUninitializedRegions(*p_block_for_index, segment_size, block_pointer.offset, bitmask_offset,
+		                        available_segments);
 		allocation.partial_block = std::move(p_block_for_index);
 	}
 
-	partial_block_manager.RegisterPartialBlock(std::move(allocation));
-
 	// resetting this buffer
 	buffer_handle.Destroy();
+
+	// register the partial block
+	partial_block_manager.RegisterPartialBlock(std::move(allocation));
+
 	block_handle = block_manager.RegisterBlock(block_pointer.block_id);
 	D_ASSERT(block_handle->BlockId() < MAXIMUM_BLOCK);
 
@@ -146,11 +150,11 @@ void FixedSizeBuffer::Pin() {
 	block_handle = std::move(new_block_handle);
 }
 
-uint32_t FixedSizeBuffer::GetOffset(const idx_t bitmask_count) {
+uint32_t FixedSizeBuffer::GetOffset(const idx_t bitmask_count, const idx_t available_segments) {
 
 	// get the bitmask data
 	auto bitmask_ptr = reinterpret_cast(Get());
-	ValidityMask mask(bitmask_ptr);
+	ValidityMask mask(bitmask_ptr, available_segments);
 	auto data = mask.GetData();
 
 	// fills up a buffer sequentially before searching for free bits
@@ -204,7 +208,7 @@ void FixedSizeBuffer::SetAllocationSize(const idx_t available_segments, const id
 	// We traverse from the back. A binary search would be faster.
 	// However, buffers are often (almost) full, so the overhead is acceptable.
 	auto bitmask_ptr = reinterpret_cast(Get());
-	ValidityMask mask(bitmask_ptr);
+	ValidityMask mask(bitmask_ptr, available_segments);
 
 	auto max_offset = available_segments;
 	for (idx_t i = available_segments; i > 0; i--) {
@@ -217,13 +221,14 @@ void FixedSizeBuffer::SetAllocationSize(const idx_t available_segments, const id
 }
 
 void FixedSizeBuffer::SetUninitializedRegions(PartialBlockForIndex &p_block_for_index, const idx_t segment_size,
-                                              const idx_t offset, const idx_t bitmask_offset) {
+                                              const idx_t offset, const idx_t bitmask_offset,
+                                              const idx_t available_segments) {
 
 	// this function calls Get() on the buffer
 	D_ASSERT(InMemory());
 
 	auto bitmask_ptr = reinterpret_cast(Get());
-	ValidityMask mask(bitmask_ptr);
+	ValidityMask mask(bitmask_ptr, available_segments);
 
 	idx_t i = 0;
 	idx_t max_offset = offset + allocation_size;
diff --git a/src/duckdb/src/execution/index/index_type_set.cpp b/src/duckdb/src/execution/index/index_type_set.cpp
index 4e1dda7e..4fe7cda4 100644
--- a/src/duckdb/src/execution/index/index_type_set.cpp
+++ b/src/duckdb/src/execution/index/index_type_set.cpp
@@ -5,10 +5,13 @@
 namespace duckdb {
 
 IndexTypeSet::IndexTypeSet() {
-	// Register the ART index type
+
+	// Register the ART index type by default
 	IndexType art_index_type;
 	art_index_type.name = ART::TYPE_NAME;
 	art_index_type.create_instance = ART::Create;
+	art_index_type.create_plan = ART::CreatePlan;
+
 	RegisterIndexType(art_index_type);
 }
 
diff --git a/src/duckdb/src/execution/join_hashtable.cpp b/src/duckdb/src/execution/join_hashtable.cpp
index e19d2a7e..fc99ddd0 100644
--- a/src/duckdb/src/execution/join_hashtable.cpp
+++ b/src/duckdb/src/execution/join_hashtable.cpp
@@ -14,13 +14,13 @@ using ProbeSpill = JoinHashTable::ProbeSpill;
 using ProbeSpillLocalState = JoinHashTable::ProbeSpillLocalAppendState;
 
 JoinHashTable::SharedState::SharedState()
-    : rhs_row_locations(LogicalType::POINTER), salt_match_sel(STANDARD_VECTOR_SIZE),
+    : rhs_row_locations(LogicalType::POINTER), salt_v(LogicalType::UBIGINT), salt_match_sel(STANDARD_VECTOR_SIZE),
       key_no_match_sel(STANDARD_VECTOR_SIZE) {
 }
 
 JoinHashTable::ProbeState::ProbeState()
-    : SharedState(), salt_v(LogicalType::UBIGINT), ht_offsets_v(LogicalType::UBIGINT),
-      ht_offsets_dense_v(LogicalType::UBIGINT), non_empty_sel(STANDARD_VECTOR_SIZE) {
+    : SharedState(), ht_offsets_v(LogicalType::UBIGINT), ht_offsets_dense_v(LogicalType::UBIGINT),
+      non_empty_sel(STANDARD_VECTOR_SIZE) {
 }
 
 JoinHashTable::InsertState::InsertState(const JoinHashTable &ht)
@@ -132,21 +132,23 @@ void JoinHashTable::Merge(JoinHashTable &other) {
 	sink_collection->Combine(*other.sink_collection);
 }
 
-static void ApplyBitmaskAndGetSaltBuild(Vector &hashes_v, const idx_t &count, const idx_t &bitmask) {
+static void ApplyBitmaskAndGetSaltBuild(Vector &hashes_v, Vector &salt_v, const idx_t &count, const idx_t &bitmask) {
 	if (hashes_v.GetVectorType() == VectorType::CONSTANT_VECTOR) {
-		D_ASSERT(!ConstantVector::IsNull(hashes_v));
-		auto indices = ConstantVector::GetData(hashes_v);
-		hash_t salt = ht_entry_t::ExtractSaltWithNulls(*indices);
-		idx_t offset = *indices & bitmask;
-		*indices = offset | salt;
+		auto &hash = *ConstantVector::GetData(hashes_v);
+		salt_v.SetVectorType(VectorType::CONSTANT_VECTOR);
+
+		*ConstantVector::GetData(salt_v) = ht_entry_t::ExtractSalt(hash);
+		salt_v.Flatten(count);
+
+		hash = hash & bitmask;
 		hashes_v.Flatten(count);
 	} else {
 		hashes_v.Flatten(count);
+		auto salts = FlatVector::GetData(salt_v);
 		auto hashes = FlatVector::GetData(hashes_v);
 		for (idx_t i = 0; i < count; i++) {
-			idx_t salt = ht_entry_t::ExtractSaltWithNulls(hashes[i]);
-			idx_t offset = hashes[i] & bitmask;
-			hashes[i] = offset | salt;
+			salts[i] = ht_entry_t::ExtractSalt(hashes[i]);
+			hashes[i] &= bitmask;
 		}
 	}
 }
@@ -156,7 +158,7 @@ static void ApplyBitmaskAndGetSaltBuild(Vector &hashes_v, const idx_t &count, co
 template 
 static inline void GetRowPointersInternal(DataChunk &keys, TupleDataChunkState &key_state,
                                           JoinHashTable::ProbeState &state, Vector &hashes_v,
-                                          const SelectionVector &sel, idx_t &count, JoinHashTable *ht,
+                                          const SelectionVector &sel, idx_t &count, JoinHashTable &ht,
                                           ht_entry_t *entries, Vector &pointers_result_v, SelectionVector &match_sel) {
 	UnifiedVectorFormat hashes_v_unified;
 	hashes_v.ToUnifiedFormat(count, hashes_v_unified);
@@ -173,7 +175,7 @@ static inline void GetRowPointersInternal(DataChunk &keys, TupleDataChunkState &
 	for (idx_t i = 0; i < count; i++) {
 		const auto row_index = sel.get_index(i);
 		auto uvf_index = hashes_v_unified.sel->get_index(row_index);
-		auto ht_offset = hashes[uvf_index] & ht->bitmask;
+		auto ht_offset = hashes[uvf_index] & ht.bitmask;
 		ht_offsets_dense[i] = ht_offset;
 		ht_offsets[row_index] = ht_offset;
 	}
@@ -239,7 +241,7 @@ static inline void GetRowPointersInternal(DataChunk &keys, TupleDataChunkState &
 						break;
 					}
 
-					IncrementAndWrap(ht_offset, ht->bitmask);
+					IncrementAndWrap(ht_offset, ht.bitmask);
 				}
 			} else {
 				entry = entries[ht_offset];
@@ -258,9 +260,9 @@ static inline void GetRowPointersInternal(DataChunk &keys, TupleDataChunkState &
 
 		if (salt_match_count != 0) {
 			// Perform row comparisons, after function call salt_match_sel will point to the keys that match
-			idx_t key_match_count = ht->row_matcher_build.Match(keys, key_state.vector_data, state.salt_match_sel,
-			                                                    salt_match_count, ht->layout, state.rhs_row_locations,
-			                                                    &state.key_no_match_sel, key_no_match_count);
+			idx_t key_match_count = ht.row_matcher_build.Match(keys, key_state.vector_data, state.salt_match_sel,
+			                                                   salt_match_count, ht.layout, state.rhs_row_locations,
+			                                                   &state.key_no_match_sel, key_no_match_count);
 
 			D_ASSERT(key_match_count + key_no_match_count == salt_match_count);
 
@@ -278,7 +280,7 @@ static inline void GetRowPointersInternal(DataChunk &keys, TupleDataChunkState &
 				const auto row_index = state.key_no_match_sel.get_index(i);
 				auto &ht_offset = ht_offsets[row_index];
 
-				IncrementAndWrap(ht_offset, ht->bitmask);
+				IncrementAndWrap(ht_offset, ht.bitmask);
 			}
 		}
 
@@ -288,19 +290,18 @@ static inline void GetRowPointersInternal(DataChunk &keys, TupleDataChunkState &
 }
 
 inline bool JoinHashTable::UseSalt() const {
-	// only use salt for large hash tables and if there is only one equality condition as otherwise
-	// we potentially need to compare multiple keys
-	return this->capacity > USE_SALT_THRESHOLD && this->equality_predicate_columns.size() == 1;
+	// only use salt for large hash tables
+	return this->capacity > USE_SALT_THRESHOLD;
 }
 
 void JoinHashTable::GetRowPointers(DataChunk &keys, TupleDataChunkState &key_state, ProbeState &state, Vector &hashes_v,
                                    const SelectionVector &sel, idx_t &count, Vector &pointers_result_v,
                                    SelectionVector &match_sel) {
 	if (UseSalt()) {
-		GetRowPointersInternal(keys, key_state, state, hashes_v, sel, count, this, entries, pointers_result_v,
+		GetRowPointersInternal(keys, key_state, state, hashes_v, sel, count, *this, entries, pointers_result_v,
 		                             match_sel);
 	} else {
-		GetRowPointersInternal(keys, key_state, state, hashes_v, sel, count, this, entries, pointers_result_v,
+		GetRowPointersInternal(keys, key_state, state, hashes_v, sel, count, *this, entries, pointers_result_v,
 		                              match_sel);
 	}
 }
@@ -434,11 +435,11 @@ idx_t JoinHashTable::PrepareKeys(DataChunk &keys, vector
 	return added_count;
 }
 
-static void StorePointer(const_data_ptr_t pointer, data_ptr_t target) {
+static void StorePointer(const const_data_ptr_t &pointer, const data_ptr_t &target) {
 	Store(cast_pointer_to_uint64(pointer), target);
 }
 
-static data_ptr_t LoadPointer(const_data_ptr_t source) {
+static data_ptr_t LoadPointer(const const_data_ptr_t &source) {
 	return cast_uint64_to_pointer(Load(source));
 }
 
@@ -448,45 +449,36 @@ static data_ptr_t LoadPointer(const_data_ptr_t source) {
 template 
 static inline data_ptr_t InsertRowToEntry(atomic &entry, const data_ptr_t &row_ptr_to_insert,
                                           const hash_t &salt, const idx_t &pointer_offset) {
-
+	const ht_entry_t desired_entry(salt, row_ptr_to_insert);
 	if (PARALLEL) {
-		// if we expect the entry to be empty, if the operation fails we need to cancel the whole operation as another
-		// key might have been inserted in the meantime that does not match the current key
 		if (EXPECT_EMPTY) {
-
-			// add nullptr to the end of the list to mark the end
+			// Add nullptr to the end of the list to mark the end
 			StorePointer(nullptr, row_ptr_to_insert + pointer_offset);
 
-			ht_entry_t new_empty_entry = ht_entry_t::GetDesiredEntry(row_ptr_to_insert, salt);
-			ht_entry_t expected_empty_entry = ht_entry_t::GetEmptyEntry();
-			std::atomic_compare_exchange_weak(&entry, &expected_empty_entry, new_empty_entry);
-
-			// if the expected empty entry actually was null, we can just return the pointer, and it will be a nullptr
-			// if the expected entry was filled in the meantime, we need to cancel the operation and will return the
-			// pointer to the next entry
-			return expected_empty_entry.GetPointerOrNull();
-		}
-
-		// if we expect the entry to be full, we know that even if the insert fails the keys still match so we can
-		// just keep trying until we succeed
-		else {
-			ht_entry_t expected_current_entry = entry.load(std::memory_order_relaxed);
-			ht_entry_t desired_new_entry = ht_entry_t::GetDesiredEntry(row_ptr_to_insert, salt);
-			D_ASSERT(expected_current_entry.IsOccupied());
+			ht_entry_t expected_entry;
+			entry.compare_exchange_strong(expected_entry, desired_entry, std::memory_order_acquire,
+			                              std::memory_order_relaxed);
 
+			// The expected entry is updated with the encountered entry by the compare exchange
+			// So, this returns a nullptr if it was empty, and a non-null if it was not (which cancels the insert)
+			return expected_entry.GetPointerOrNull();
+		} else {
+			// At this point we know that the keys match, so we can try to insert until we succeed
+			ht_entry_t expected_entry = entry.load(std::memory_order_relaxed);
+			D_ASSERT(expected_entry.IsOccupied());
 			do {
-				data_ptr_t current_row_pointer = expected_current_entry.GetPointer();
+				data_ptr_t current_row_pointer = expected_entry.GetPointer();
 				StorePointer(current_row_pointer, row_ptr_to_insert + pointer_offset);
-			} while (!std::atomic_compare_exchange_weak(&entry, &expected_current_entry, desired_new_entry));
+			} while (!entry.compare_exchange_weak(expected_entry, desired_entry, std::memory_order_release,
+			                                      std::memory_order_relaxed));
 
 			return nullptr;
 		}
 	} else {
-		// if we are not in parallel mode, we can just do the operation without any checks
-		ht_entry_t current_entry = entry.load(std::memory_order_relaxed);
-		data_ptr_t current_row_pointer = current_entry.GetPointerOrNull();
+		// If we are not in parallel mode, we can just do the operation without any checks
+		data_ptr_t current_row_pointer = entry.load(std::memory_order_relaxed).GetPointerOrNull();
 		StorePointer(current_row_pointer, row_ptr_to_insert + pointer_offset);
-		entry = ht_entry_t::GetDesiredEntry(row_ptr_to_insert, salt);
+		entry = desired_entry;
 		return nullptr;
 	}
 }
@@ -519,8 +511,9 @@ static inline void PerformKeyComparison(JoinHashTable::InsertState &state, JoinH
 template 
 static inline void InsertMatchesAndIncrementMisses(atomic entries[], JoinHashTable::InsertState &state,
                                                    JoinHashTable &ht, const data_ptr_t lhs_row_locations[],
-                                                   idx_t ht_offsets_and_salts[], const idx_t capacity_mask,
-                                                   const idx_t key_match_count, const idx_t key_no_match_count) {
+                                                   idx_t ht_offsets[], const hash_t hash_salts[],
+                                                   const idx_t capacity_mask, const idx_t key_match_count,
+                                                   const idx_t key_no_match_count) {
 	if (key_match_count != 0) {
 		ht.chains_longer_than_one = true;
 	}
@@ -530,11 +523,11 @@ static inline void InsertMatchesAndIncrementMisses(atomic entries[],
 		const auto need_compare_idx = state.key_match_sel.get_index(i);
 		const auto entry_index = state.salt_match_sel.get_index(need_compare_idx);
 
-		const auto &ht_offset = ht_offsets_and_salts[entry_index] & ht_entry_t::POINTER_MASK;
+		const auto &ht_offset = ht_offsets[entry_index];
 		auto &entry = entries[ht_offset];
-		const data_ptr_t row_ptr_to_insert = lhs_row_locations[entry_index];
+		const auto row_ptr_to_insert = lhs_row_locations[entry_index];
 
-		const auto salt = ht_offsets_and_salts[entry_index];
+		const auto salt = hash_salts[entry_index];
 		InsertRowToEntry(entry, row_ptr_to_insert, salt, ht.pointer_offset);
 	}
 
@@ -543,8 +536,8 @@ static inline void InsertMatchesAndIncrementMisses(atomic entries[],
 		const auto need_compare_idx = state.key_no_match_sel.get_index(i);
 		const auto entry_index = state.salt_match_sel.get_index(need_compare_idx);
 
-		idx_t &ht_offset_and_salt = ht_offsets_and_salts[entry_index];
-		IncrementAndWrap(ht_offset_and_salt, capacity_mask);
+		auto &ht_offset = ht_offsets[entry_index];
+		IncrementAndWrap(ht_offset, capacity_mask);
 
 		state.remaining_sel.set_index(i, entry_index);
 	}
@@ -555,10 +548,11 @@ static void InsertHashesLoop(atomic entries[], Vector &row_locations
                              JoinHashTable::InsertState &state, const TupleDataCollection &data_collection,
                              JoinHashTable &ht) {
 	D_ASSERT(hashes_v.GetType().id() == LogicalType::HASH);
-	ApplyBitmaskAndGetSaltBuild(hashes_v, count, ht.bitmask);
+	ApplyBitmaskAndGetSaltBuild(hashes_v, state.salt_v, count, ht.bitmask);
 
-	// the offset for each row to insert
-	const auto ht_offsets_and_salts = FlatVector::GetData(hashes_v);
+	// the salts offset for each row to insert
+	const auto ht_offsets = FlatVector::GetData(hashes_v);
+	const auto hash_salts = FlatVector::GetData(state.salt_v);
 	// the row locations of the rows that are already in the hash table
 	const auto rhs_row_locations = FlatVector::GetData(state.rhs_row_locations);
 	// the row locations of the rows that are to be inserted
@@ -584,7 +578,7 @@ static void InsertHashesLoop(atomic entries[], Vector &row_locations
 			idx_t new_remaining_count = 0;
 			for (idx_t i = 0; i < remaining_count; i++) {
 				const auto idx = remaining_sel->get_index(i);
-				if (ValidityBytes(lhs_row_locations[idx]).RowIsValidUnsafe(col_idx)) {
+				if (ValidityBytes(lhs_row_locations[idx], count).RowIsValidUnsafe(col_idx)) {
 					state.remaining_sel.set_index(new_remaining_count++, idx);
 				}
 			}
@@ -601,15 +595,13 @@ static void InsertHashesLoop(atomic entries[], Vector &row_locations
 		// iterate over each entry to find out whether it belongs to an existing list or will start a new list
 		for (idx_t i = 0; i < remaining_count; i++) {
 			const idx_t row_index = remaining_sel->get_index(i);
-			idx_t &ht_offset_and_salt = ht_offsets_and_salts[row_index];
-			const hash_t salt = ht_entry_t::ExtractSalt(ht_offset_and_salt);
+			auto &ht_offset = ht_offsets[row_index];
+			auto &salt = hash_salts[row_index];
 
-			// increment the ht_offset_and_salt of the entry as long as next entry is occupied and salt does not match
-			idx_t ht_offset;
+			// increment the ht_offset of the entry as long as next entry is occupied and salt does not match
 			ht_entry_t entry;
 			bool occupied;
 			while (true) {
-				ht_offset = ht_offset_and_salt & ht_entry_t::POINTER_MASK;
 				atomic &atomic_entry = entries[ht_offset];
 				entry = atomic_entry.load(std::memory_order_relaxed);
 				occupied = entry.IsOccupied();
@@ -622,7 +614,7 @@ static void InsertHashesLoop(atomic entries[], Vector &row_locations
 					break;
 				}
 
-				IncrementAndWrap(ht_offset_and_salt, capacity_mask);
+				IncrementAndWrap(ht_offset, capacity_mask);
 			}
 
 			if (!occupied) { // insert into free
@@ -657,7 +649,7 @@ static void InsertHashesLoop(atomic entries[], Vector &row_locations
 			idx_t key_match_count = 0;
 			PerformKeyComparison(state, ht, data_collection, row_locations, salt_match_count, key_match_count,
 			                     key_no_match_count);
-			InsertMatchesAndIncrementMisses(entries, state, ht, lhs_row_locations, ht_offsets_and_salts,
+			InsertMatchesAndIncrementMisses(entries, state, ht, lhs_row_locations, ht_offsets, hash_salts,
 			                                          capacity_mask, key_match_count, key_no_match_count);
 		}
 
@@ -702,7 +694,7 @@ void JoinHashTable::InitializePointerTable() {
 	D_ASSERT(hash_map.GetSize() == capacity * sizeof(ht_entry_t));
 
 	// initialize HT with all-zero entries
-	std::fill_n(entries, capacity, ht_entry_t::GetEmptyEntry());
+	std::fill_n(entries, capacity, ht_entry_t());
 
 	bitmask = capacity - 1;
 }
@@ -773,10 +765,12 @@ ScanStructure::ScanStructure(JoinHashTable &ht_p, TupleDataChunkState &key_state
     : key_state(key_state_p), pointers(LogicalType::POINTER), count(0), sel_vector(STANDARD_VECTOR_SIZE),
       chain_match_sel_vector(STANDARD_VECTOR_SIZE), chain_no_match_sel_vector(STANDARD_VECTOR_SIZE),
       found_match(make_unsafe_uniq_array_uninitialized(STANDARD_VECTOR_SIZE)), ht(ht_p), finished(false),
-      is_null(true) {
+      is_null(true), rhs_pointers(LogicalType::POINTER), lhs_sel_vector(STANDARD_VECTOR_SIZE), last_match_count(0),
+      last_sel_vector(STANDARD_VECTOR_SIZE) {
 }
 
 void ScanStructure::Next(DataChunk &keys, DataChunk &left, DataChunk &result) {
+	D_ASSERT(keys.size() == left.size());
 	if (finished) {
 		return;
 	}
@@ -897,46 +891,100 @@ void ScanStructure::GatherResult(Vector &result, const SelectionVector &sel_vect
 	GatherResult(result, *FlatVector::IncrementalSelectionVector(), sel_vector, count, col_idx);
 }
 
+void ScanStructure::GatherResult(Vector &result, const idx_t count, const idx_t col_idx) {
+	ht.data_collection->Gather(rhs_pointers, *FlatVector::IncrementalSelectionVector(), count, col_idx, result,
+	                           *FlatVector::IncrementalSelectionVector(), nullptr);
+}
+
+void ScanStructure::UpdateCompactionBuffer(idx_t base_count, SelectionVector &result_vector, idx_t result_count) {
+	// matches were found
+	// record the result
+	// on the LHS, we store result vector
+	for (idx_t i = 0; i < result_count; i++) {
+		lhs_sel_vector.set_index(base_count + i, result_vector.get_index(i));
+	}
+
+	// on the RHS, we collect their pointers
+	VectorOperations::Copy(pointers, rhs_pointers, result_vector, result_count, 0, base_count);
+}
+
 void ScanStructure::NextInnerJoin(DataChunk &keys, DataChunk &left, DataChunk &result) {
 	if (ht.join_type != JoinType::RIGHT_SEMI && ht.join_type != JoinType::RIGHT_ANTI) {
 		D_ASSERT(result.ColumnCount() == left.ColumnCount() + ht.output_columns.size());
 	}
-	if (this->count == 0) {
-		// no pointers left to chase
-		return;
-	}
 
-	idx_t result_count = ScanInnerJoin(keys, chain_match_sel_vector);
+	idx_t base_count = 0;
+	idx_t result_count;
+	while (this->count > 0) {
+		// if we have saved the match result, we need not call ScanInnerJoin again
+		if (last_match_count == 0) {
+			result_count = ScanInnerJoin(keys, chain_match_sel_vector);
+		} else {
+			chain_match_sel_vector.Initialize(last_sel_vector);
+			result_count = last_match_count;
+			last_match_count = 0;
+		}
 
-	if (result_count > 0) {
-		if (PropagatesBuildSide(ht.join_type)) {
-			// full/right outer join: mark join matches as FOUND in the HT
-			auto ptrs = FlatVector::GetData(pointers);
-			for (idx_t i = 0; i < result_count; i++) {
-				auto idx = chain_match_sel_vector.get_index(i);
-				// NOTE: threadsan reports this as a data race because this can be set concurrently by separate
-				// threads Technically it is, but it does not matter, since the only value that can be written is
-				// "true"
-				Store(true, ptrs[idx] + ht.tuple_size);
+		if (result_count > 0) {
+			// the result chunk cannot contain more data, we record the match result for future use
+			if (base_count + result_count > STANDARD_VECTOR_SIZE) {
+				last_sel_vector.Initialize(chain_match_sel_vector);
+				last_match_count = result_count;
+				break;
 			}
-		}
-		// for right semi join, just mark the entry as found and move on. Propagation happens later
-		if (ht.join_type != JoinType::RIGHT_SEMI && ht.join_type != JoinType::RIGHT_ANTI) {
-			// matches were found
-			// construct the result
-			// on the LHS, we create a slice using the result vector
-			result.Slice(left, chain_match_sel_vector, result_count);
-
-			// on the RHS, we need to fetch the data from the hash table
-			for (idx_t i = 0; i < ht.output_columns.size(); i++) {
-				auto &vector = result.data[left.ColumnCount() + i];
-				const auto output_col_idx = ht.output_columns[i];
-				D_ASSERT(vector.GetType() == ht.layout.GetTypes()[output_col_idx]);
-				GatherResult(vector, chain_match_sel_vector, result_count, output_col_idx);
+
+			if (PropagatesBuildSide(ht.join_type)) {
+				// full/right outer join: mark join matches as FOUND in the HT
+				auto ptrs = FlatVector::GetData(pointers);
+				for (idx_t i = 0; i < result_count; i++) {
+					auto idx = chain_match_sel_vector.get_index(i);
+					// NOTE: threadsan reports this as a data race because this can be set concurrently by separate
+					// threads Technically it is, but it does not matter, since the only value that can be written is
+					// "true"
+					Store(true, ptrs[idx] + ht.tuple_size);
+				}
+			}
+
+			if (ht.join_type != JoinType::RIGHT_SEMI && ht.join_type != JoinType::RIGHT_ANTI) {
+				// Fast Path: if there is NO more than one element in the chain, we construct the result chunk directly
+				if (!ht.chains_longer_than_one) {
+					// matches were found
+					// on the LHS, we create a slice using the result vector
+					result.Slice(left, chain_match_sel_vector, result_count);
+
+					// on the RHS, we need to fetch the data from the hash table
+					for (idx_t i = 0; i < ht.output_columns.size(); i++) {
+						auto &vector = result.data[left.ColumnCount() + i];
+						const auto output_col_idx = ht.output_columns[i];
+						D_ASSERT(vector.GetType() == ht.layout.GetTypes()[output_col_idx]);
+						GatherResult(vector, chain_match_sel_vector, result_count, output_col_idx);
+					}
+
+					AdvancePointers();
+					return;
+				}
+
+				// Common Path: use a buffer to store temporary data
+				UpdateCompactionBuffer(base_count, chain_match_sel_vector, result_count);
+				base_count += result_count;
 			}
 		}
 		AdvancePointers();
 	}
+
+	if (base_count > 0) {
+		// create result chunk, we have two steps:
+		// 1) slice LHS vectors
+		result.Slice(left, lhs_sel_vector, base_count);
+
+		// 2) gather RHS vectors
+		for (idx_t i = 0; i < ht.output_columns.size(); i++) {
+			auto &vector = result.data[left.ColumnCount() + i];
+			const auto output_col_idx = ht.output_columns[i];
+			D_ASSERT(vector.GetType() == ht.layout.GetTypes()[output_col_idx]);
+			GatherResult(vector, base_count, output_col_idx);
+		}
+	}
 }
 
 void ScanStructure::ScanKeyMatches(DataChunk &keys) {
@@ -964,7 +1012,6 @@ void ScanStructure::ScanKeyMatches(DataChunk &keys) {
 template 
 void ScanStructure::NextSemiOrAntiJoin(DataChunk &keys, DataChunk &left, DataChunk &result) {
 	D_ASSERT(left.ColumnCount() == result.ColumnCount());
-	D_ASSERT(keys.size() == left.size());
 	// create the selection vector from the matches that were found
 	SelectionVector sel(STANDARD_VECTOR_SIZE);
 	idx_t result_count = 0;
@@ -1468,57 +1515,42 @@ bool JoinHashTable::PrepareExternalFinalize(const idx_t max_ht_size) {
 	return true;
 }
 
-static void CreateSpillChunk(DataChunk &spill_chunk, DataChunk &keys, DataChunk &payload, Vector &hashes) {
-	spill_chunk.Reset();
-	idx_t spill_col_idx = 0;
-	for (idx_t col_idx = 0; col_idx < keys.ColumnCount(); col_idx++) {
-		spill_chunk.data[col_idx].Reference(keys.data[col_idx]);
-	}
-	spill_col_idx += keys.ColumnCount();
-	for (idx_t col_idx = 0; col_idx < payload.data.size(); col_idx++) {
-		spill_chunk.data[spill_col_idx + col_idx].Reference(payload.data[col_idx]);
-	}
-	spill_col_idx += payload.ColumnCount();
-	spill_chunk.data[spill_col_idx].Reference(hashes);
-}
-
-void JoinHashTable::ProbeAndSpill(ScanStructure &scan_structure, DataChunk &keys, TupleDataChunkState &key_state,
-                                  ProbeState &probe_state, DataChunk &payload, ProbeSpill &probe_spill,
+void JoinHashTable::ProbeAndSpill(ScanStructure &scan_structure, DataChunk &probe_keys, TupleDataChunkState &key_state,
+                                  ProbeState &probe_state, DataChunk &probe_chunk, ProbeSpill &probe_spill,
                                   ProbeSpillLocalAppendState &spill_state, DataChunk &spill_chunk) {
 	// hash all the keys
 	Vector hashes(LogicalType::HASH);
-	Hash(keys, *FlatVector::IncrementalSelectionVector(), keys.size(), hashes);
+	Hash(probe_keys, *FlatVector::IncrementalSelectionVector(), probe_keys.size(), hashes);
 
 	// find out which keys we can match with the current pinned partitions
-	SelectionVector true_sel;
-	SelectionVector false_sel;
-	true_sel.Initialize();
-	false_sel.Initialize();
-	auto true_count = RadixPartitioning::Select(hashes, FlatVector::IncrementalSelectionVector(), keys.size(),
-	                                            radix_bits, partition_end, &true_sel, &false_sel);
-	auto false_count = keys.size() - true_count;
-
-	CreateSpillChunk(spill_chunk, keys, payload, hashes);
+	SelectionVector true_sel(STANDARD_VECTOR_SIZE);
+	SelectionVector false_sel(STANDARD_VECTOR_SIZE);
+	const auto true_count =
+	    RadixPartitioning::Select(hashes, FlatVector::IncrementalSelectionVector(), probe_keys.size(), radix_bits,
+	                              partition_end, &true_sel, &false_sel);
+	const auto false_count = probe_keys.size() - true_count;
 
 	// can't probe these values right now, append to spill
+	spill_chunk.Reset();
+	spill_chunk.Reference(probe_chunk);
+	spill_chunk.data.back().Reference(hashes);
 	spill_chunk.Slice(false_sel, false_count);
-	spill_chunk.Verify();
 	probe_spill.Append(spill_chunk, spill_state);
 
 	// slice the stuff we CAN probe right now
 	hashes.Slice(true_sel, true_count);
-	keys.Slice(true_sel, true_count);
-	payload.Slice(true_sel, true_count);
+	probe_keys.Slice(true_sel, true_count);
+	probe_chunk.Slice(true_sel, true_count);
 
 	const SelectionVector *current_sel;
-	InitializeScanStructure(scan_structure, keys, key_state, current_sel);
+	InitializeScanStructure(scan_structure, probe_keys, key_state, current_sel);
 	if (scan_structure.count == 0) {
 		return;
 	}
 
 	// now initialize the pointers of the scan structure based on the hashes
-	GetRowPointers(keys, key_state, probe_state, hashes, *current_sel, scan_structure.count, scan_structure.pointers,
-	               scan_structure.sel_vector);
+	GetRowPointers(probe_keys, key_state, probe_state, hashes, *current_sel, scan_structure.count,
+	               scan_structure.pointers, scan_structure.sel_vector);
 }
 
 ProbeSpill::ProbeSpill(JoinHashTable &ht, ClientContext &context, const vector &probe_types)
diff --git a/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp b/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp
index c4cf4b55..5459674b 100644
--- a/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp
+++ b/src/duckdb/src/execution/operator/aggregate/physical_hash_aggregate.cpp
@@ -319,15 +319,17 @@ void PhysicalHashAggregate::SinkDistinctGrouping(ExecutionContext &context, Data
 			for (idx_t group_idx = 0; group_idx < grouped_aggregate_data.groups.size(); group_idx++) {
 				auto &group = grouped_aggregate_data.groups[group_idx];
 				auto &bound_ref = group->Cast();
-				filtered_input.data[bound_ref.index].Reference(chunk.data[bound_ref.index]);
+				auto &col = filtered_input.data[bound_ref.index];
+				col.Reference(chunk.data[bound_ref.index]);
+				col.Slice(sel_vec, count);
 			}
 			for (idx_t child_idx = 0; child_idx < aggregate.children.size(); child_idx++) {
 				auto &child = aggregate.children[child_idx];
 				auto &bound_ref = child->Cast();
-
-				filtered_input.data[bound_ref.index].Reference(chunk.data[bound_ref.index]);
+				auto &col = filtered_input.data[bound_ref.index];
+				col.Reference(chunk.data[bound_ref.index]);
+				col.Slice(sel_vec, count);
 			}
-			filtered_input.Slice(sel_vec, count);
 			filtered_input.SetCardinality(count);
 
 			radix_table.Sink(context, filtered_input, sink_input, empty_chunk, empty_filter);
@@ -883,15 +885,15 @@ SourceResultType PhysicalHashAggregate::GetData(ExecutionContext &context, DataC
 	return chunk.size() == 0 ? SourceResultType::FINISHED : SourceResultType::HAVE_MORE_OUTPUT;
 }
 
-double PhysicalHashAggregate::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const {
+ProgressData PhysicalHashAggregate::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const {
 	auto &sink_gstate = sink_state->Cast();
 	auto &gstate = gstate_p.Cast();
-	double total_progress = 0;
+	ProgressData progress;
 	for (idx_t radix_idx = 0; radix_idx < groupings.size(); radix_idx++) {
-		total_progress += groupings[radix_idx].table_data.GetProgress(
-		    context, *sink_gstate.grouping_states[radix_idx].table_state, *gstate.radix_states[radix_idx]);
+		progress.Add(groupings[radix_idx].table_data.GetProgress(
+		    context, *sink_gstate.grouping_states[radix_idx].table_state, *gstate.radix_states[radix_idx]));
 	}
-	return total_progress / double(groupings.size());
+	return progress;
 }
 
 InsertionOrderPreservingMap PhysicalHashAggregate::ParamsToString() const {
diff --git a/src/duckdb/src/execution/operator/aggregate/physical_partitioned_aggregate.cpp b/src/duckdb/src/execution/operator/aggregate/physical_partitioned_aggregate.cpp
new file mode 100644
index 00000000..32bf4ecc
--- /dev/null
+++ b/src/duckdb/src/execution/operator/aggregate/physical_partitioned_aggregate.cpp
@@ -0,0 +1,226 @@
+#include "duckdb/execution/operator/aggregate/physical_partitioned_aggregate.hpp"
+#include "duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp"
+#include "duckdb/common/types/value_map.hpp"
+
+namespace duckdb {
+
+PhysicalPartitionedAggregate::PhysicalPartitionedAggregate(ClientContext &context, vector types,
+                                                           vector> aggregates_p,
+                                                           vector> groups_p,
+                                                           vector partitions_p, idx_t estimated_cardinality)
+    : PhysicalOperator(PhysicalOperatorType::PARTITIONED_AGGREGATE, std::move(types), estimated_cardinality),
+      partitions(std::move(partitions_p)), groups(std::move(groups_p)), aggregates(std::move(aggregates_p)) {
+}
+
+OperatorPartitionInfo PhysicalPartitionedAggregate::RequiredPartitionInfo() const {
+	return OperatorPartitionInfo::PartitionColumns(partitions);
+}
+//===--------------------------------------------------------------------===//
+// Global State
+//===--------------------------------------------------------------------===//
+class PartitionedAggregateLocalSinkState : public LocalSinkState {
+public:
+	PartitionedAggregateLocalSinkState(const PhysicalPartitionedAggregate &op, const vector &child_types,
+	                                   ExecutionContext &context)
+	    : execute_state(context.client, op.aggregates, child_types) {
+	}
+
+	//! The current partition
+	Value current_partition;
+	//! The local aggregate state for the current partition
+	unique_ptr state;
+	//! The ungrouped aggregate execute state
+	UngroupedAggregateExecuteState execute_state;
+};
+
+class PartitionedAggregateGlobalSinkState : public GlobalSinkState {
+public:
+	PartitionedAggregateGlobalSinkState(const PhysicalPartitionedAggregate &op, ClientContext &context)
+	    : op(op), aggregate_result(BufferAllocator::Get(context), op.types) {
+	}
+
+	mutex lock;
+	const PhysicalPartitionedAggregate &op;
+	//! The per-partition aggregate states
+	value_map_t> aggregate_states;
+	//! Final aggregate result
+	ColumnDataCollection aggregate_result;
+
+	GlobalUngroupedAggregateState &GetOrCreatePartition(ClientContext &context, const Value &partition) {
+		lock_guard l(lock);
+		// find the state that corresponds to this partition and combine
+		auto entry = aggregate_states.find(partition);
+		if (entry != aggregate_states.end()) {
+			return *entry->second;
+		}
+		// no state yet for this partition - allocate a new one
+		auto new_global_state = make_uniq(BufferAllocator::Get(context), op.aggregates);
+		auto &result = *new_global_state;
+		aggregate_states.insert(make_pair(partition, std::move(new_global_state)));
+		return result;
+	}
+
+	void Combine(ClientContext &context, PartitionedAggregateLocalSinkState &lstate) {
+		if (!lstate.state) {
+			// no aggregate state
+			return;
+		}
+		auto &global_state = GetOrCreatePartition(context, lstate.current_partition);
+		global_state.Combine(*lstate.state);
+		// clear the local aggregate state
+		lstate.state.reset();
+	}
+};
+
+unique_ptr PhysicalPartitionedAggregate::GetGlobalSinkState(ClientContext &context) const {
+	return make_uniq(*this, context);
+}
+
+//===--------------------------------------------------------------------===//
+// Local State
+//===--------------------------------------------------------------------===//
+
+unique_ptr PhysicalPartitionedAggregate::GetLocalSinkState(ExecutionContext &context) const {
+	D_ASSERT(sink_state);
+	return make_uniq(*this, children[0]->GetTypes(), context);
+}
+
+//===--------------------------------------------------------------------===//
+// Sink
+//===--------------------------------------------------------------------===//
+SinkResultType PhysicalPartitionedAggregate::Sink(ExecutionContext &context, DataChunk &chunk,
+                                                  OperatorSinkInput &input) const {
+	auto &gstate = input.global_state.Cast();
+	auto &lstate = input.local_state.Cast();
+	if (!lstate.state) {
+		// the local state is not yet initialized for this partition
+		// initialize the partition
+		child_list_t partition_values;
+		for (idx_t partition_idx = 0; partition_idx < groups.size(); partition_idx++) {
+			auto column_name = to_string(partition_idx);
+			auto &partition = input.local_state.partition_info.partition_data[partition_idx];
+			D_ASSERT(Value::NotDistinctFrom(partition.min_val, partition.max_val));
+			partition_values.emplace_back(make_pair(std::move(column_name), partition.min_val));
+		}
+		lstate.current_partition = Value::STRUCT(std::move(partition_values));
+
+		// initialize the state
+		auto &global_aggregate_state = gstate.GetOrCreatePartition(context.client, lstate.current_partition);
+		lstate.state = make_uniq(global_aggregate_state);
+	}
+
+	// perform the aggregation
+	lstate.execute_state.Sink(*lstate.state, chunk);
+	return SinkResultType::NEED_MORE_INPUT;
+}
+
+//===--------------------------------------------------------------------===//
+// Next Batch
+//===--------------------------------------------------------------------===//
+SinkNextBatchType PhysicalPartitionedAggregate::NextBatch(ExecutionContext &context,
+                                                          OperatorSinkNextBatchInput &input) const {
+	// flush the local state
+	auto &gstate = input.global_state.Cast();
+	auto &lstate = input.local_state.Cast();
+
+	// finalize and reset the current state (if any)
+	gstate.Combine(context.client, lstate);
+	return SinkNextBatchType::READY;
+}
+
+//===--------------------------------------------------------------------===//
+// Combine
+//===--------------------------------------------------------------------===//
+SinkCombineResultType PhysicalPartitionedAggregate::Combine(ExecutionContext &context,
+                                                            OperatorSinkCombineInput &input) const {
+	auto &gstate = input.global_state.Cast();
+	auto &lstate = input.local_state.Cast();
+	gstate.Combine(context.client, lstate);
+	return SinkCombineResultType::FINISHED;
+}
+
+//===--------------------------------------------------------------------===//
+// Finalize
+//===--------------------------------------------------------------------===//
+SinkFinalizeType PhysicalPartitionedAggregate::Finalize(Pipeline &pipeline, Event &event, ClientContext &context,
+                                                        OperatorSinkFinalizeInput &input) const {
+	auto &gstate = input.global_state.Cast();
+	ColumnDataAppendState append_state;
+	gstate.aggregate_result.InitializeAppend(append_state);
+	// finalize each of the partitions and append to a ColumnDataCollection
+	DataChunk chunk;
+	chunk.Initialize(context, types);
+	for (auto &entry : gstate.aggregate_states) {
+		chunk.Reset();
+		// reference the partitions
+		auto &partitions = StructValue::GetChildren(entry.first);
+		for (idx_t partition_idx = 0; partition_idx < partitions.size(); partition_idx++) {
+			chunk.data[partition_idx].Reference(partitions[partition_idx]);
+		}
+		// finalize the aggregates
+		entry.second->Finalize(chunk, partitions.size());
+
+		// append to the CDC
+		gstate.aggregate_result.Append(append_state, chunk);
+	}
+	return SinkFinalizeType::READY;
+}
+
+//===--------------------------------------------------------------------===//
+// Source
+//===--------------------------------------------------------------------===//
+class PartitionedAggregateGlobalSourceState : public GlobalSourceState {
+public:
+	explicit PartitionedAggregateGlobalSourceState(PartitionedAggregateGlobalSinkState &gstate) {
+		gstate.aggregate_result.InitializeScan(scan_state);
+	}
+
+	ColumnDataScanState scan_state;
+
+	idx_t MaxThreads() override {
+		return 1;
+	}
+};
+
+unique_ptr PhysicalPartitionedAggregate::GetGlobalSourceState(ClientContext &context) const {
+	auto &gstate = sink_state->Cast();
+	return make_uniq(gstate);
+}
+
+SourceResultType PhysicalPartitionedAggregate::GetData(ExecutionContext &context, DataChunk &chunk,
+                                                       OperatorSourceInput &input) const {
+	auto &gstate = sink_state->Cast();
+	auto &gsource = input.global_state.Cast();
+	gstate.aggregate_result.Scan(gsource.scan_state, chunk);
+	return chunk.size() == 0 ? SourceResultType::FINISHED : SourceResultType::HAVE_MORE_OUTPUT;
+}
+
+//===--------------------------------------------------------------------===//
+// ParamsToString
+//===--------------------------------------------------------------------===//
+InsertionOrderPreservingMap PhysicalPartitionedAggregate::ParamsToString() const {
+	InsertionOrderPreservingMap result;
+	string groups_info;
+	for (idx_t i = 0; i < groups.size(); i++) {
+		if (i > 0) {
+			groups_info += "\n";
+		}
+		groups_info += groups[i]->GetName();
+	}
+	result["Groups"] = groups_info;
+	string aggregate_info;
+	for (idx_t i = 0; i < aggregates.size(); i++) {
+		auto &aggregate = aggregates[i]->Cast();
+		if (i > 0) {
+			aggregate_info += "\n";
+		}
+		aggregate_info += aggregates[i]->GetName();
+		if (aggregate.filter) {
+			aggregate_info += " Filter: " + aggregate.filter->GetName();
+		}
+	}
+	result["Aggregates"] = aggregate_info;
+	return result;
+}
+
+} // namespace duckdb
diff --git a/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp b/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp
index 15d082ab..0ec4bd2a 100644
--- a/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp
+++ b/src/duckdb/src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp
@@ -142,6 +142,75 @@ void GlobalUngroupedAggregateState::CombineDistinct(LocalUngroupedAggregateState
 	}
 }
 
+//===--------------------------------------------------------------------===//
+// Ungrouped Aggregate Execute State
+//===--------------------------------------------------------------------===//
+UngroupedAggregateExecuteState::UngroupedAggregateExecuteState(ClientContext &context,
+                                                               const vector> &aggregates,
+                                                               const vector &child_types)
+    : aggregates(aggregates), child_executor(context), aggregate_input_chunk(), filter_set() {
+	vector payload_types;
+	vector aggregate_objects;
+	auto &allocator = BufferAllocator::Get(context);
+	for (auto &aggregate : aggregates) {
+		D_ASSERT(aggregate->GetExpressionClass() == ExpressionClass::BOUND_AGGREGATE);
+		auto &aggr = aggregate->Cast();
+		// initialize the payload chunk
+		for (auto &child : aggr.children) {
+			payload_types.push_back(child->return_type);
+			child_executor.AddExpression(*child);
+		}
+		aggregate_objects.emplace_back(&aggr);
+	}
+	if (!payload_types.empty()) { // for select count(*) from t; there is no payload at all
+		aggregate_input_chunk.Initialize(allocator, payload_types);
+	}
+	filter_set.Initialize(context, aggregate_objects, child_types);
+}
+
+void UngroupedAggregateExecuteState::Reset() {
+	aggregate_input_chunk.Reset();
+}
+
+void UngroupedAggregateExecuteState::Sink(LocalUngroupedAggregateState &state, DataChunk &input) {
+	DataChunk &payload_chunk = aggregate_input_chunk;
+
+	idx_t payload_idx = 0;
+	idx_t next_payload_idx = 0;
+
+	for (idx_t aggr_idx = 0; aggr_idx < aggregates.size(); aggr_idx++) {
+		auto &aggregate = aggregates[aggr_idx]->Cast();
+
+		payload_idx = next_payload_idx;
+		next_payload_idx = payload_idx + aggregate.children.size();
+
+		if (aggregate.IsDistinct()) {
+			continue;
+		}
+
+		idx_t payload_cnt = 0;
+		// resolve the filter (if any)
+		if (aggregate.filter) {
+			auto &filtered_data = filter_set.GetFilterData(aggr_idx);
+			auto count = filtered_data.ApplyFilter(input);
+
+			child_executor.SetChunk(filtered_data.filtered_payload);
+			payload_chunk.SetCardinality(count);
+		} else {
+			child_executor.SetChunk(input);
+			payload_chunk.SetCardinality(input);
+		}
+
+		// resolve the child expressions of the aggregate (if any)
+		for (idx_t i = 0; i < aggregate.children.size(); ++i) {
+			child_executor.ExecuteExpression(payload_idx + payload_cnt, payload_chunk.data[payload_idx + payload_cnt]);
+			payload_cnt++;
+		}
+
+		state.Sink(payload_chunk, payload_idx, aggr_idx);
+	}
+}
+
 //===--------------------------------------------------------------------===//
 // Local State
 //===--------------------------------------------------------------------===//
@@ -153,45 +222,19 @@ class UngroupedAggregateLocalSinkState : public LocalSinkState {
 public:
 	UngroupedAggregateLocalSinkState(const PhysicalUngroupedAggregate &op, const vector &child_types,
 	                                 UngroupedAggregateGlobalSinkState &gstate_p, ExecutionContext &context)
-	    : state(gstate_p.state), child_executor(context.client), aggregate_input_chunk(), filter_set() {
+	    : state(gstate_p.state), execute_state(context.client, op.aggregates, child_types) {
 		auto &gstate = gstate_p.Cast();
-
-		auto &allocator = BufferAllocator::Get(context.client);
 		InitializeDistinctAggregates(op, gstate, context);
-
-		vector payload_types;
-		vector aggregate_objects;
-		for (auto &aggregate : op.aggregates) {
-			D_ASSERT(aggregate->GetExpressionClass() == ExpressionClass::BOUND_AGGREGATE);
-			auto &aggr = aggregate->Cast();
-			// initialize the payload chunk
-			for (auto &child : aggr.children) {
-				payload_types.push_back(child->return_type);
-				child_executor.AddExpression(*child);
-			}
-			aggregate_objects.emplace_back(&aggr);
-		}
-		if (!payload_types.empty()) { // for select count(*) from t; there is no payload at all
-			aggregate_input_chunk.Initialize(allocator, payload_types);
-		}
-		filter_set.Initialize(context.client, aggregate_objects, child_types);
 	}
 
 	//! The local aggregate state
 	LocalUngroupedAggregateState state;
-	//! The executor
-	ExpressionExecutor child_executor;
-	//! The payload chunk, containing all the Vectors for the aggregates
-	DataChunk aggregate_input_chunk;
-	//! Aggregate filter data set
-	AggregateFilterDataSet filter_set;
+	//! The ungrouped aggregate execute state
+	UngroupedAggregateExecuteState execute_state;
 	//! The local sink states of the distinct aggregates hash tables
 	vector> radix_states;
 
 public:
-	void Reset() {
-		aggregate_input_chunk.Reset();
-	}
 	void InitializeDistinctAggregates(const PhysicalUngroupedAggregate &op,
 	                                  const UngroupedAggregateGlobalSinkState &gstate, ExecutionContext &context) {
 
@@ -274,7 +317,7 @@ void PhysicalUngroupedAggregate::SinkDistinct(ExecutionContext &context, DataChu
 			// And in our case, we need to filter the groups (the distinct aggr children)
 
 			// Apply the filter before inserting into the hashtable
-			auto &filtered_data = sink.filter_set.GetFilterData(idx);
+			auto &filtered_data = sink.execute_state.filter_set.GetFilterData(idx);
 			idx_t count = filtered_data.ApplyFilter(chunk);
 			filtered_data.filtered_payload.SetCardinality(count);
 
@@ -290,49 +333,13 @@ SinkResultType PhysicalUngroupedAggregate::Sink(ExecutionContext &context, DataC
 	auto &sink = input.local_state.Cast();
 
 	// perform the aggregation inside the local state
-	sink.Reset();
+	sink.execute_state.Reset();
 
 	if (distinct_data) {
 		SinkDistinct(context, chunk, input);
 	}
 
-	DataChunk &payload_chunk = sink.aggregate_input_chunk;
-
-	idx_t payload_idx = 0;
-	idx_t next_payload_idx = 0;
-
-	for (idx_t aggr_idx = 0; aggr_idx < aggregates.size(); aggr_idx++) {
-		auto &aggregate = aggregates[aggr_idx]->Cast();
-
-		payload_idx = next_payload_idx;
-		next_payload_idx = payload_idx + aggregate.children.size();
-
-		if (aggregate.IsDistinct()) {
-			continue;
-		}
-
-		idx_t payload_cnt = 0;
-		// resolve the filter (if any)
-		if (aggregate.filter) {
-			auto &filtered_data = sink.filter_set.GetFilterData(aggr_idx);
-			auto count = filtered_data.ApplyFilter(chunk);
-
-			sink.child_executor.SetChunk(filtered_data.filtered_payload);
-			payload_chunk.SetCardinality(count);
-		} else {
-			sink.child_executor.SetChunk(chunk);
-			payload_chunk.SetCardinality(chunk);
-		}
-
-		// resolve the child expressions of the aggregate (if any)
-		for (idx_t i = 0; i < aggregate.children.size(); ++i) {
-			sink.child_executor.ExecuteExpression(payload_idx + payload_cnt,
-			                                      payload_chunk.data[payload_idx + payload_cnt]);
-			payload_cnt++;
-		}
-
-		sink.state.Sink(payload_chunk, payload_idx, aggr_idx);
-	}
+	sink.execute_state.Sink(sink.state, chunk);
 	return SinkResultType::NEED_MORE_INPUT;
 }
 
@@ -342,6 +349,7 @@ void LocalUngroupedAggregateState::Sink(DataChunk &payload_chunk, idx_t payload_
 #endif
 	auto &aggregate = state.aggregate_expressions[aggr_idx]->Cast();
 	idx_t payload_cnt = aggregate.children.size();
+	D_ASSERT(payload_idx + payload_cnt <= payload_chunk.data.size());
 	auto start_of_input = payload_cnt == 0 ? nullptr : &payload_chunk.data[payload_idx];
 	AggregateInputData aggr_input_data(state.bind_data[aggr_idx], allocator);
 	aggregate.function.simple_update(start_of_input, aggr_input_data, payload_cnt, state.aggregate_data[aggr_idx].get(),
@@ -624,14 +632,14 @@ void VerifyNullHandling(DataChunk &chunk, UngroupedAggregateState &state,
 #endif
 }
 
-void GlobalUngroupedAggregateState::Finalize(DataChunk &result) {
+void GlobalUngroupedAggregateState::Finalize(DataChunk &result, idx_t column_offset) {
 	result.SetCardinality(1);
 	for (idx_t aggr_idx = 0; aggr_idx < state.aggregate_expressions.size(); aggr_idx++) {
 		auto &aggregate = state.aggregate_expressions[aggr_idx]->Cast();
 
 		Vector state_vector(Value::POINTER(CastPointerToValue(state.aggregate_data[aggr_idx].get())));
 		AggregateInputData aggr_input_data(aggregate.bind_info.get(), allocator);
-		aggregate.function.finalize(state_vector, aggr_input_data, result.data[aggr_idx], 1, 0);
+		aggregate.function.finalize(state_vector, aggr_input_data, result.data[column_offset + aggr_idx], 1, 0);
 	}
 }
 
diff --git a/src/duckdb/src/execution/operator/aggregate/physical_window.cpp b/src/duckdb/src/execution/operator/aggregate/physical_window.cpp
index e9bf471d..4beef863 100644
--- a/src/duckdb/src/execution/operator/aggregate/physical_window.cpp
+++ b/src/duckdb/src/execution/operator/aggregate/physical_window.cpp
@@ -1,30 +1,15 @@
 #include "duckdb/execution/operator/aggregate/physical_window.hpp"
 
-#include "duckdb/common/operator/add.hpp"
-#include "duckdb/common/operator/cast_operators.hpp"
-#include "duckdb/common/operator/comparison_operators.hpp"
-#include "duckdb/common/operator/subtract.hpp"
-#include "duckdb/common/optional_ptr.hpp"
-#include "duckdb/common/radix_partitioning.hpp"
-#include "duckdb/common/row_operations/row_operations.hpp"
 #include "duckdb/common/sort/partition_state.hpp"
-
-#include "duckdb/common/types/column/column_data_consumer.hpp"
-#include "duckdb/common/types/row/row_data_collection_scanner.hpp"
-#include "duckdb/common/uhugeint.hpp"
-#include "duckdb/common/vector_operations/vector_operations.hpp"
-#include "duckdb/common/windows_undefs.hpp"
-#include "duckdb/execution/expression_executor.hpp"
-#include "duckdb/execution/window_executor.hpp"
-#include "duckdb/execution/window_segment_tree.hpp"
-#include "duckdb/main/client_config.hpp"
-#include "duckdb/main/config.hpp"
-#include "duckdb/parallel/base_pipeline_event.hpp"
-#include "duckdb/planner/expression/bound_reference_expression.hpp"
+#include "duckdb/function/window/window_aggregate_function.hpp"
+#include "duckdb/function/window/window_cumedist_function.hpp"
+#include "duckdb/function/window/window_executor.hpp"
+#include "duckdb/function/window/window_rank_function.hpp"
+#include "duckdb/function/window/window_rownumber_function.hpp"
+#include "duckdb/function/window/window_shared_expressions.hpp"
+#include "duckdb/function/window/window_value_function.hpp"
 #include "duckdb/planner/expression/bound_window_expression.hpp"
-
-#include 
-#include 
+//
 #include 
 
 namespace duckdb {
@@ -102,6 +87,8 @@ class WindowHashGroup {
 	ValidityMask partition_mask;
 	//! The order boundary mask
 	OrderMasks order_masks;
+	//! The fully materialised data collection
+	unique_ptr collection;
 	//! External paging
 	bool external;
 	// The processing stage for this group
@@ -145,6 +132,8 @@ class WindowGlobalSinkState : public GlobalSinkState {
 	unique_ptr global_partition;
 	//! The execution functions
 	Executors executors;
+	//! The shared expressions library
+	WindowSharedExpressions shared;
 };
 
 class WindowPartitionGlobalSinkState : public PartitionGlobalSinkState {
@@ -215,31 +204,31 @@ PhysicalWindow::PhysicalWindow(vector types, vector WindowExecutorFactory(BoundWindowExpression &wexpr, ClientContext &context,
-                                                        WindowAggregationMode mode) {
+                                                        WindowSharedExpressions &shared, WindowAggregationMode mode) {
 	switch (wexpr.type) {
 	case ExpressionType::WINDOW_AGGREGATE:
-		return make_uniq(wexpr, context, mode);
+		return make_uniq(wexpr, context, shared, mode);
 	case ExpressionType::WINDOW_ROW_NUMBER:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_RANK_DENSE:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_RANK:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_PERCENT_RANK:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_CUME_DIST:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_NTILE:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_LEAD:
 	case ExpressionType::WINDOW_LAG:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_FIRST_VALUE:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_LAST_VALUE:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 	case ExpressionType::WINDOW_NTH_VALUE:
-		return make_uniq(wexpr, context);
+		return make_uniq(wexpr, context, shared);
 		break;
 	default:
 		throw InternalException("Window aggregate type %s", ExpressionTypeToString(wexpr.type));
@@ -256,7 +245,7 @@ WindowGlobalSinkState::WindowGlobalSinkState(const PhysicalWindow &op, ClientCon
 	for (idx_t expr_idx = 0; expr_idx < op.select_list.size(); ++expr_idx) {
 		D_ASSERT(op.select_list[expr_idx]->GetExpressionClass() == ExpressionClass::BOUND_WINDOW);
 		auto &wexpr = op.select_list[expr_idx]->Cast();
-		auto wexec = WindowExecutorFactory(wexpr, context, mode);
+		auto wexec = WindowExecutorFactory(wexpr, context, shared, mode);
 		executors.emplace_back(std::move(wexec));
 	}
 
@@ -568,6 +557,15 @@ WindowHashGroup::WindowHashGroup(WindowGlobalSinkState &gstate, const idx_t hash
 	if (rows) {
 		blocks = rows->blocks.size();
 	}
+
+	// Set up the collection for any fully materialised data
+	const auto &shared = WindowSharedExpressions::GetSortedExpressions(gstate.shared.coll_shared);
+	vector types;
+	for (auto &expr : shared) {
+		types.emplace_back(expr->return_type);
+	}
+	auto &buffer_manager = BufferManager::GetBufferManager(gstate.context);
+	collection = make_uniq(buffer_manager, count, types);
 }
 
 // Per-thread scan state
@@ -606,6 +604,19 @@ class WindowLocalSourceState : public LocalSourceState {
 	void Sink();
 	void Finalize();
 	void GetData(DataChunk &chunk);
+
+	//! Storage and evaluation for the fully materialised data
+	unique_ptr builder;
+	ExpressionExecutor coll_exec;
+	DataChunk coll_chunk;
+
+	//! Storage and evaluation for chunks used in the sink/build phase
+	ExpressionExecutor sink_exec;
+	DataChunk sink_chunk;
+
+	//! Storage and evaluation for chunks used in the evaluate phase
+	ExpressionExecutor eval_exec;
+	DataChunk eval_chunk;
 };
 
 WindowHashGroup::ExecutorGlobalStates &WindowHashGroup::Initialize(WindowGlobalSinkState &gsink) {
@@ -660,8 +671,30 @@ void WindowLocalSourceState::Sink() {
 				break;
 			}
 
+			//	Compute fully materialised expressions
+			if (coll_chunk.data.empty()) {
+				coll_chunk.SetCardinality(input_chunk);
+			} else {
+				coll_chunk.Reset();
+				coll_exec.Execute(input_chunk, coll_chunk);
+				auto collection = window_hash_group->collection.get();
+				if (!builder || &builder->collection != collection) {
+					builder = make_uniq(*collection);
+				}
+
+				builder->Sink(coll_chunk, input_idx);
+			}
+
+			// Compute sink expressions
+			if (sink_chunk.data.empty()) {
+				sink_chunk.SetCardinality(input_chunk);
+			} else {
+				sink_chunk.Reset();
+				sink_exec.Execute(input_chunk, sink_chunk);
+			}
+
 			for (idx_t w = 0; w < executors.size(); ++w) {
-				executors[w]->Sink(input_chunk, input_idx, window_hash_group->count, *gestates[w], *local_states[w]);
+				executors[w]->Sink(sink_chunk, coll_chunk, input_idx, *gestates[w], *local_states[w]);
 			}
 
 			window_hash_group->sunk += input_chunk.size();
@@ -677,15 +710,20 @@ void WindowLocalSourceState::Finalize() {
 	D_ASSERT(task);
 	D_ASSERT(task->stage == WindowGroupStage::FINALIZE);
 
+	// First finalize the collection (so the executors can use it)
+	auto &gsink = gsource.gsink;
+	if (window_hash_group->collection) {
+		window_hash_group->collection->Combine(gsink.shared.coll_validity);
+	}
+
 	// Finalize all the executors.
 	// Parallel finalisation is handled internally by the executor,
 	// and should not return until all threads have completed work.
-	auto &gsink = gsource.gsink;
 	const auto &executors = gsink.executors;
 	auto &gestates = window_hash_group->gestates;
 	auto &local_states = window_hash_group->thread_states.at(task->thread_idx);
 	for (idx_t w = 0; w < executors.size(); ++w) {
-		executors[w]->Finalize(*gestates[w], *local_states[w]);
+		executors[w]->Finalize(*gestates[w], *local_states[w], window_hash_group->collection);
 	}
 
 	//	Mark this range as done
@@ -693,7 +731,9 @@ void WindowLocalSourceState::Finalize() {
 	task->begin_idx = task->end_idx;
 }
 
-WindowLocalSourceState::WindowLocalSourceState(WindowGlobalSourceState &gsource) : gsource(gsource), batch_index(0) {
+WindowLocalSourceState::WindowLocalSourceState(WindowGlobalSourceState &gsource)
+    : gsource(gsource), batch_index(0), coll_exec(gsource.context), sink_exec(gsource.context),
+      eval_exec(gsource.context) {
 	auto &gsink = gsource.gsink;
 	auto &global_partition = *gsink.global_partition;
 
@@ -706,6 +746,11 @@ WindowLocalSourceState::WindowLocalSourceState(WindowGlobalSourceState &gsource)
 	}
 	output_chunk.Initialize(global_partition.allocator, output_types);
 
+	auto &shared = gsink.shared;
+	shared.PrepareCollection(coll_exec, coll_chunk);
+	shared.PrepareSink(sink_exec, sink_chunk);
+	shared.PrepareEvaluate(eval_exec, eval_chunk);
+
 	++gsource.locals;
 }
 
@@ -819,7 +864,13 @@ void WindowLocalSourceState::GetData(DataChunk &result) {
 		auto &gstate = *gestates[expr_idx];
 		auto &lstate = *local_states[expr_idx];
 		auto &result = output_chunk.data[expr_idx];
-		executor.Evaluate(position, input_chunk, result, lstate, gstate);
+		if (eval_chunk.data.empty()) {
+			eval_chunk.SetCardinality(input_chunk);
+		} else {
+			eval_chunk.Reset();
+			eval_exec.Execute(input_chunk, eval_chunk);
+		}
+		executor.Evaluate(position, eval_chunk, result, lstate, gstate);
 	}
 	output_chunk.SetCardinality(input_chunk);
 	output_chunk.Verify();
@@ -856,7 +907,10 @@ unique_ptr PhysicalWindow::GetGlobalSourceState(ClientContext
 	return make_uniq(context, gsink);
 }
 
-bool PhysicalWindow::SupportsBatchIndex() const {
+bool PhysicalWindow::SupportsPartitioning(const OperatorPartitionInfo &partition_info) const {
+	if (partition_info.RequiresPartitionColumns()) {
+		return false;
+	}
 	//	We can only preserve order for single partitioning
 	//	or work stealing causes out of order batch numbers
 	auto &wexpr = select_list[order_idx]->Cast();
@@ -878,19 +932,30 @@ OrderPreservationType PhysicalWindow::SourceOrder() const {
 	return OrderPreservationType::FIXED_ORDER;
 }
 
-double PhysicalWindow::GetProgress(ClientContext &context, GlobalSourceState &gsource_p) const {
+ProgressData PhysicalWindow::GetProgress(ClientContext &context, GlobalSourceState &gsource_p) const {
 	auto &gsource = gsource_p.Cast();
 	const auto returned = gsource.returned.load();
 
 	auto &gsink = gsource.gsink;
 	const auto count = gsink.global_partition->count.load();
-	return count ? (double(returned) / double(count)) : -1;
+	ProgressData res;
+	if (count) {
+		res.done = double(returned);
+		res.total = double(count);
+	} else {
+		res.SetInvalid();
+	}
+	return res;
 }
 
-idx_t PhysicalWindow::GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate_p,
-                                    LocalSourceState &lstate_p) const {
+OperatorPartitionData PhysicalWindow::GetPartitionData(ExecutionContext &context, DataChunk &chunk,
+                                                       GlobalSourceState &gstate_p, LocalSourceState &lstate_p,
+                                                       const OperatorPartitionInfo &partition_info) const {
+	if (partition_info.RequiresPartitionColumns()) {
+		throw InternalException("PhysicalWindow::GetPartitionData: partition columns not supported");
+	}
 	auto &lstate = lstate_p.Cast();
-	return lstate.batch_index;
+	return OperatorPartitionData(lstate.batch_index);
 }
 
 SourceResultType PhysicalWindow::GetData(ExecutionContext &context, DataChunk &chunk,
diff --git a/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp b/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp
index c8a7d167..5f282329 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_buffer_manager.cpp
@@ -4,11 +4,16 @@
 namespace duckdb {
 
 CSVBufferManager::CSVBufferManager(ClientContext &context_p, const CSVReaderOptions &options, const string &file_path_p,
-                                   const idx_t file_idx_p, bool per_file_single_threaded_p)
+                                   const idx_t file_idx_p, bool per_file_single_threaded_p,
+                                   unique_ptr file_handle_p)
     : context(context_p), per_file_single_threaded(per_file_single_threaded_p), file_idx(file_idx_p),
       file_path(file_path_p), buffer_size(CSVBuffer::CSV_BUFFER_SIZE) {
 	D_ASSERT(!file_path.empty());
-	file_handle = ReadCSV::OpenCSV(file_path, options.compression, context);
+	if (file_handle_p) {
+		file_handle = std::move(file_handle_p);
+	} else {
+		file_handle = ReadCSV::OpenCSV(file_path, options, context);
+	}
 	is_pipe = file_handle->IsPipe();
 	skip_rows = options.dialect_options.skip_rows.GetValue();
 	auto file_size = file_handle->FileSize();
@@ -119,15 +124,15 @@ void CSVBufferManager::ResetBuffer(const idx_t buffer_idx) {
 	}
 }
 
-idx_t CSVBufferManager::GetBufferSize() {
+idx_t CSVBufferManager::GetBufferSize() const {
 	return buffer_size;
 }
 
-idx_t CSVBufferManager::BufferCount() {
+idx_t CSVBufferManager::BufferCount() const {
 	return cached_buffers.size();
 }
 
-bool CSVBufferManager::Done() {
+bool CSVBufferManager::Done() const {
 	return done;
 }
 
@@ -144,8 +149,19 @@ void CSVBufferManager::ResetBufferManager() {
 	}
 }
 
-string CSVBufferManager::GetFilePath() {
+string CSVBufferManager::GetFilePath() const {
 	return file_path;
 }
 
+bool CSVBufferManager::IsBlockUnloaded(idx_t block_idx) {
+	if (block_idx < cached_buffers.size()) {
+		return cached_buffers[block_idx]->IsUnloaded();
+	}
+	return false;
+}
+
+idx_t CSVBufferManager::GetBytesRead() const {
+	return bytes_read;
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp b/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp
index e8b502fb..0a8c1e20 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/buffer_manager/csv_file_handle.cpp
@@ -3,12 +3,14 @@
 #include "duckdb/common/numeric_utils.hpp"
 #include "duckdb/common/compressed_file_system.hpp"
 #include "duckdb/common/string_util.hpp"
+#include "duckdb/execution/operator/csv_scanner/csv_reader_options.hpp"
 
 namespace duckdb {
 
-CSVFileHandle::CSVFileHandle(FileSystem &fs, Allocator &allocator, unique_ptr file_handle_p,
-                             const string &path_p, FileCompressionType compression)
-    : compression_type(compression), file_handle(std::move(file_handle_p)), path(path_p) {
+CSVFileHandle::CSVFileHandle(DBConfig &config, unique_ptr file_handle_p, const string &path_p,
+                             const CSVReaderOptions &options)
+    : compression_type(options.compression), file_handle(std::move(file_handle_p)),
+      encoder(config, options.encoding, options.buffer_size), path(path_p) {
 	can_seek = file_handle->CanSeek();
 	on_disk_file = file_handle->OnDiskFile();
 	file_size = file_handle->GetFileSize();
@@ -25,21 +27,21 @@ unique_ptr CSVFileHandle::OpenFileHandle(FileSystem &fs, Allocator &
 	return file_handle;
 }
 
-unique_ptr CSVFileHandle::OpenFile(FileSystem &fs, Allocator &allocator, const string &path,
-                                                  FileCompressionType compression) {
-	auto file_handle = CSVFileHandle::OpenFileHandle(fs, allocator, path, compression);
-	return make_uniq(fs, allocator, std::move(file_handle), path, compression);
+unique_ptr CSVFileHandle::OpenFile(DBConfig &config, FileSystem &fs, Allocator &allocator,
+                                                  const string &path, const CSVReaderOptions &options) {
+	auto file_handle = OpenFileHandle(fs, allocator, path, options.compression);
+	return make_uniq(config, std::move(file_handle), path, options);
 }
 
-double CSVFileHandle::GetProgress() {
+double CSVFileHandle::GetProgress() const {
 	return static_cast(file_handle->GetProgress());
 }
 
-bool CSVFileHandle::CanSeek() {
+bool CSVFileHandle::CanSeek() const {
 	return can_seek;
 }
 
-void CSVFileHandle::Seek(idx_t position) {
+void CSVFileHandle::Seek(const idx_t position) const {
 	if (!can_seek) {
 		if (is_pipe) {
 			throw InternalException("Trying to seek a piped CSV File.");
@@ -49,7 +51,7 @@ void CSVFileHandle::Seek(idx_t position) {
 	file_handle->Seek(position);
 }
 
-bool CSVFileHandle::OnDiskFile() {
+bool CSVFileHandle::OnDiskFile() const {
 	return on_disk_file;
 }
 
@@ -59,22 +61,27 @@ void CSVFileHandle::Reset() {
 	requested_bytes = 0;
 }
 
-bool CSVFileHandle::IsPipe() {
+bool CSVFileHandle::IsPipe() const {
 	return is_pipe;
 }
 
-idx_t CSVFileHandle::FileSize() {
+idx_t CSVFileHandle::FileSize() const {
 	return file_size;
 }
 
-bool CSVFileHandle::FinishedReading() {
+bool CSVFileHandle::FinishedReading() const {
 	return finished;
 }
 
 idx_t CSVFileHandle::Read(void *buffer, idx_t nr_bytes) {
 	requested_bytes += nr_bytes;
 	// if this is a plain file source OR we can seek we are not caching anything
-	auto bytes_read = file_handle->Read(buffer, nr_bytes);
+	idx_t bytes_read = 0;
+	if (encoder.encoding_name == "utf-8") {
+		bytes_read = static_cast(file_handle->Read(buffer, nr_bytes));
+	} else {
+		bytes_read = encoder.Encode(*file_handle, static_cast(buffer), nr_bytes);
+	}
 	if (!finished) {
 		finished = bytes_read == 0;
 	}
diff --git a/src/duckdb/src/execution/operator/csv_scanner/encode/csv_encoder.cpp b/src/duckdb/src/execution/operator/csv_scanner/encode/csv_encoder.cpp
new file mode 100644
index 00000000..89fc5df0
--- /dev/null
+++ b/src/duckdb/src/execution/operator/csv_scanner/encode/csv_encoder.cpp
@@ -0,0 +1,95 @@
+#include "duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp"
+#include "duckdb/common/exception.hpp"
+#include "duckdb/main/config.hpp"
+#include "duckdb/function/encoding_function.hpp"
+
+namespace duckdb {
+
+void CSVEncoderBuffer::Initialize(idx_t encoded_size) {
+	encoded_buffer_size = encoded_size;
+	encoded_buffer = std::unique_ptr(new char[encoded_size]);
+}
+
+char *CSVEncoderBuffer::Ptr() const {
+	return encoded_buffer.get();
+}
+
+idx_t CSVEncoderBuffer::GetCapacity() const {
+	return encoded_buffer_size;
+}
+
+idx_t CSVEncoderBuffer::GetSize() const {
+	return actual_encoded_buffer_size;
+}
+
+void CSVEncoderBuffer::SetSize(const idx_t buffer_size) {
+	D_ASSERT(buffer_size <= encoded_buffer_size);
+	actual_encoded_buffer_size = buffer_size;
+}
+
+bool CSVEncoderBuffer::HasDataToRead() const {
+	return cur_pos < actual_encoded_buffer_size;
+}
+
+void CSVEncoderBuffer::Reset() {
+	cur_pos = 0;
+	actual_encoded_buffer_size = 0;
+}
+
+CSVEncoder::CSVEncoder(DBConfig &config, const string &encoding_name_to_find, idx_t buffer_size) {
+	encoding_name = StringUtil::Lower(encoding_name_to_find);
+	auto function = config.GetEncodeFunction(encoding_name_to_find);
+	if (!function) {
+		auto loaded_encodings = config.GetLoadedEncodedFunctions();
+		std::ostringstream error;
+		error << "The CSV Reader does not support the encoding: \"" << encoding_name_to_find << "\"\n";
+		error << "The currently supported encodings are: " << '\n';
+		for (auto &encoding_function : loaded_encodings) {
+			error << "*  " << encoding_function.get().GetType() << '\n';
+		}
+		throw InvalidInputException(error.str());
+	}
+	// We ensure that the encoded buffer size is an even number to make the two byte lookup on utf-16 work
+	idx_t encoded_buffer_size = buffer_size % 2 != 0 ? buffer_size - 1 : buffer_size;
+	D_ASSERT(encoded_buffer_size > 0);
+	encoded_buffer.Initialize(encoded_buffer_size);
+	remaining_bytes_buffer.Initialize(function->GetBytesPerIteration());
+	encoding_function = function;
+}
+
+idx_t CSVEncoder::Encode(FileHandle &file_handle_input, char *output_buffer, const idx_t decoded_buffer_size) {
+	idx_t output_buffer_pos = 0;
+	// Check if we have some left-overs. These can either be
+	// 1. missing decoded bytes
+	if (remaining_bytes_buffer.HasDataToRead()) {
+		D_ASSERT(remaining_bytes_buffer.cur_pos == 0);
+		const auto remaining_bytes_buffer_ptr = remaining_bytes_buffer.Ptr();
+		for (; remaining_bytes_buffer.cur_pos < remaining_bytes_buffer.GetSize(); remaining_bytes_buffer.cur_pos++) {
+			output_buffer[output_buffer_pos++] = remaining_bytes_buffer_ptr[remaining_bytes_buffer.cur_pos];
+		}
+		remaining_bytes_buffer.Reset();
+	}
+	// 2. remaining encoded buffer
+	if (encoded_buffer.HasDataToRead()) {
+		encoding_function->GetFunction()(
+		    encoded_buffer.Ptr(), encoded_buffer.cur_pos, encoded_buffer.GetSize(), output_buffer, output_buffer_pos,
+		    decoded_buffer_size, remaining_bytes_buffer.Ptr(), remaining_bytes_buffer.actual_encoded_buffer_size);
+	}
+	// 3. a new encoded buffer from the file
+	while (output_buffer_pos < decoded_buffer_size) {
+		idx_t current_decoded_buffer_start = output_buffer_pos;
+		encoded_buffer.Reset();
+		auto actual_encoded_bytes =
+		    static_cast(file_handle_input.Read(encoded_buffer.Ptr(), encoded_buffer.GetCapacity()));
+		encoded_buffer.SetSize(actual_encoded_bytes);
+		encoding_function->GetFunction()(
+		    encoded_buffer.Ptr(), encoded_buffer.cur_pos, encoded_buffer.GetSize(), output_buffer, output_buffer_pos,
+		    decoded_buffer_size, remaining_bytes_buffer.Ptr(), remaining_bytes_buffer.actual_encoded_buffer_size);
+		if (output_buffer_pos == current_decoded_buffer_start) {
+			return output_buffer_pos;
+		}
+	}
+	return output_buffer_pos;
+}
+
+} // namespace duckdb
diff --git a/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp b/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp
index c8fe1d6f..757598e1 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/scanner/base_scanner.cpp
@@ -1,6 +1,6 @@
 #include "duckdb/execution/operator/csv_scanner/base_scanner.hpp"
 
-#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp"
+#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp"
 #include "duckdb/execution/operator/csv_scanner/skip_scanner.hpp"
 
 namespace duckdb {
@@ -25,7 +25,7 @@ BaseScanner::BaseScanner(shared_ptr buffer_manager_p, shared_p
 	}
 }
 
-bool BaseScanner::FinishedFile() {
+bool BaseScanner::FinishedFile() const {
 	if (!cur_buffer_handle) {
 		return true;
 	}
@@ -76,7 +76,7 @@ void BaseScanner::FinalizeChunkProcess() {
 	throw InternalException("FinalizeChunkProcess() from CSV Base Scanner is not implemented");
 }
 
-CSVStateMachine &BaseScanner::GetStateMachine() {
+CSVStateMachine &BaseScanner::GetStateMachine() const {
 	return *state_machine;
 }
 
diff --git a/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp b/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp
index f66b180e..7c4b7bb9 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/scanner/column_count_scanner.cpp
@@ -12,10 +12,32 @@ void ColumnCountResult::AddValue(ColumnCountResult &result, idx_t buffer_pos) {
 }
 
 inline void ColumnCountResult::InternalAddRow() {
-	column_counts[result_position].number_of_columns = current_column_count + 1;
+	const idx_t column_count = current_column_count + 1;
+	column_counts[result_position].number_of_columns = column_count;
+	rows_per_column_count[column_count]++;
 	current_column_count = 0;
 }
 
+idx_t ColumnCountResult::GetMostFrequentColumnCount() const {
+	if (rows_per_column_count.empty()) {
+		return 1;
+	}
+	idx_t column_count = 0;
+	idx_t current_max = 0;
+	for (auto &rpc : rows_per_column_count) {
+		if (rpc.second > current_max) {
+			current_max = rpc.second;
+			column_count = rpc.first;
+		} else if (rpc.second == current_max) {
+			// We pick the largest to untie
+			if (rpc.first > column_count) {
+				column_count = rpc.first;
+			}
+		}
+	}
+	return column_count;
+}
+
 bool ColumnCountResult::AddRow(ColumnCountResult &result, idx_t buffer_pos) {
 	result.InternalAddRow();
 	if (!result.states.EmptyLastValue()) {
diff --git a/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp b/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp
index 5d6a9b0d..f99e46a9 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/scanner/csv_schema.cpp
@@ -43,7 +43,46 @@ bool CSVSchema::CanWeCastIt(LogicalTypeId source, LogicalTypeId destination) {
 	}
 }
 
-void CSVSchema::Initialize(vector &names, vector &types, const string &file_path_p) {
+void CSVSchema::MergeSchemas(CSVSchema &other, bool null_padding) {
+	// TODO: We could also merge names, maybe by giving preference to non-generated names?
+	const vector candidates_by_specificity = {LogicalType::BOOLEAN, LogicalType::BIGINT,
+	                                                       LogicalType::DOUBLE, LogicalType::VARCHAR};
+	for (idx_t i = 0; i < columns.size() && i < other.columns.size(); i++) {
+		auto this_type = columns[i].type.id();
+		auto other_type = other.columns[i].type.id();
+		if (columns[i].type != other.columns[i].type) {
+			if (CanWeCastIt(this_type, other_type)) {
+				// If we can cast this to other, this becomes other
+				columns[i].type = other.columns[i].type;
+			} else if (!CanWeCastIt(other_type, this_type)) {
+				// If we can't cast this to other or other to this, we see which parent they can be both cast to
+				for (const auto &type : candidates_by_specificity) {
+					if (CanWeCastIt(this_type, type.id()) && CanWeCastIt(other_type, type.id())) {
+						columns[i].type = type;
+						break;
+					}
+				}
+			}
+		}
+	}
+
+	if (null_padding && other.columns.size() > columns.size()) {
+		for (idx_t i = columns.size(); i < other.columns.size(); i++) {
+			auto name = other.columns[i].name;
+			auto type = other.columns[i].type;
+			columns.push_back({name, type});
+			name_idx_map[name] = i;
+		}
+	}
+}
+
+CSVSchema::CSVSchema(vector &names, vector &types, const string &file_path, idx_t rows_read_p,
+                     const bool empty_p)
+    : rows_read(rows_read_p), empty(empty_p) {
+	Initialize(names, types, file_path);
+}
+
+void CSVSchema::Initialize(const vector &names, const vector &types, const string &file_path_p) {
 	if (!columns.empty()) {
 		throw InternalException("CSV Schema is already populated, this should not happen.");
 	}
@@ -51,23 +90,96 @@ void CSVSchema::Initialize(vector &names, vector &types, co
 	D_ASSERT(names.size() == types.size() && !names.empty());
 	for (idx_t i = 0; i < names.size(); i++) {
 		// Populate our little schema
-		columns.push_back({names[i], types[i]});
+		auto name = names.at(i);
+		auto type = types.at(i);
+		columns.push_back({name, type});
 		name_idx_map[names[i]] = i;
 	}
 }
 
+vector CSVSchema::GetNames() const {
+	vector names;
+	for (auto &column : columns) {
+		names.push_back(column.name);
+	}
+	return names;
+}
+
+vector CSVSchema::GetTypes() const {
+	vector types;
+	for (auto &column : columns) {
+		types.push_back(column.type);
+	}
+	return types;
+}
+
 bool CSVSchema::Empty() const {
 	return columns.empty();
 }
 
-bool CSVSchema::SchemasMatch(string &error_message, vector &names, vector &types,
-                             const string &cur_file_path) {
-	D_ASSERT(names.size() == types.size());
+bool CSVSchema::MatchColumns(const CSVSchema &other) const {
+	return other.columns.size() == columns.size() || empty || other.empty;
+}
+
+string CSVSchema::GetPath() const {
+	return file_path;
+}
+
+idx_t CSVSchema::GetColumnCount() const {
+	return columns.size();
+}
+
+idx_t CSVSchema::GetRowsRead() const {
+	return rows_read;
+}
+
+bool CSVSchema::SchemasMatch(string &error_message, SnifferResult &sniffer_result, const string &cur_file_path,
+                             bool is_minimal_sniffer) const {
+	D_ASSERT(sniffer_result.names.size() == sniffer_result.return_types.size());
 	bool match = true;
 	unordered_map current_schema;
-	for (idx_t i = 0; i < names.size(); i++) {
+
+	for (idx_t i = 0; i < sniffer_result.names.size(); i++) {
 		// Populate our little schema
-		current_schema[names[i]] = {types[i], i};
+		current_schema[sniffer_result.names[i]] = {sniffer_result.return_types[i], i};
+	}
+	if (is_minimal_sniffer) {
+		auto min_sniffer = static_cast(sniffer_result);
+		if (!min_sniffer.more_than_one_row) {
+			bool min_sniff_match = true;
+			// If we don't have more than one row, either the names must match or the types must match.
+			for (auto &column : columns) {
+				if (current_schema.find(column.name) == current_schema.end()) {
+					min_sniff_match = false;
+					break;
+				}
+			}
+			if (min_sniff_match) {
+				return true;
+			}
+			// Otherwise, the types must match.
+			min_sniff_match = true;
+			if (sniffer_result.return_types.size() == columns.size()) {
+				idx_t return_type_idx = 0;
+				for (auto &column : columns) {
+					if (column.type != sniffer_result.return_types[return_type_idx++]) {
+						min_sniff_match = false;
+						break;
+					}
+				}
+			} else {
+				min_sniff_match = false;
+			}
+			if (min_sniff_match) {
+				// If we got here, we have the right types but the wrong names, lets fix the names
+				idx_t sniff_name_idx = 0;
+				for (auto &column : columns) {
+					sniffer_result.names[sniff_name_idx++] = column.name;
+				}
+				return true;
+			}
+		}
+		// If we got to this point, the minimal sniffer doesn't match, we throw an error.
 	}
 	// Here we check if the schema of a given file matched our original schema
 	// We consider it's not a match if:
diff --git a/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp b/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp
index 4ddd938b..0a577d77 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/scanner/scanner_boundary.cpp
@@ -106,4 +106,12 @@ void CSVIterator::SetStart(idx_t start) {
 	boundary.buffer_pos = start;
 }
 
+void CSVIterator::SetEnd(idx_t pos) {
+	boundary.end_pos = pos;
+}
+
+idx_t CSVIterator::GetGlobalCurrentPos() {
+	return pos.buffer_pos + buffer_size * pos.buffer_idx;
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp b/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp
index b58f3649..27e0cbd9 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/scanner/string_value_scanner.cpp
@@ -23,11 +23,17 @@ StringValueResult::StringValueResult(CSVStates &states, CSVStateMachine &state_m
     : ScannerResult(states, state_machine, result_size_p),
       number_of_columns(NumericCast(state_machine.dialect_options.num_cols)),
       null_padding(state_machine.options.null_padding), ignore_errors(state_machine.options.ignore_errors.GetValue()),
+      extra_delimiter_bytes(state_machine.dialect_options.state_machine_options.delimiter.GetValue().size() - 1),
       error_handler(error_hander_p), iterator(iterator_p), store_line_size(store_line_size_p),
       csv_file_scan(std::move(csv_file_scan_p)), lines_read(lines_read_p),
       current_errors(state_machine.options.IgnoreErrors()), sniffing(sniffing_p), path(std::move(path_p)) {
 	// Vector information
 	D_ASSERT(number_of_columns > 0);
+	if (!buffer_handle) {
+		// It Was Over Before It Even Began
+		D_ASSERT(iterator.done);
+		return;
+	}
 	buffer_handles[buffer_handle->buffer_idx] = buffer_handle;
 	// Buffer Information
 	buffer_ptr = buffer_handle->Ptr();
@@ -234,31 +240,40 @@ void StringValueResult::AddValueToVector(const char *value_ptr, const idx_t size
 			return;
 		}
 	}
-	for (idx_t i = 0; i < null_str_count; i++) {
-		if (size == null_str_size[i]) {
-			if (((quoted && state_machine.options.allow_quoted_nulls) || !quoted)) {
-				if (IsValueNull(null_str_ptr[i], value_ptr, size)) {
-					bool empty = false;
-					if (chunk_col_id < state_machine.options.force_not_null.size()) {
-						empty = state_machine.options.force_not_null[chunk_col_id];
-					}
-					if (empty) {
-						if (parse_types[chunk_col_id].type_id != LogicalTypeId::VARCHAR) {
-							// If it is not a varchar, empty values are not accepted, we must error.
-							current_errors.Insert(CAST_ERROR, cur_col_id, chunk_col_id, last_position);
-						}
-						static_cast(vector_ptr[chunk_col_id])[number_of_rows] = string_t();
+
+	if (((quoted && state_machine.options.allow_quoted_nulls) || !quoted)) {
+		// Check for the occurrence of escaped null string like \N only if RFC 4180 conformance is disabled
+		const bool check_unquoted_escaped_null =
+		    state_machine.state_machine_options.rfc_4180.GetValue() == false && escaped && !quoted && size == 1;
+		for (idx_t i = 0; i < null_str_count; i++) {
+			bool is_null = false;
+			if (null_str_size[i] == 2 && null_str_ptr[i][0] == state_machine.state_machine_options.escape.GetValue()) {
+				is_null = check_unquoted_escaped_null && null_str_ptr[i][1] == value_ptr[0];
+			} else if (size == null_str_size[i] && !check_unquoted_escaped_null) {
+				is_null = IsValueNull(null_str_ptr[i], value_ptr, size);
+			}
+			if (is_null) {
+				bool empty = false;
+				if (chunk_col_id < state_machine.options.force_not_null.size()) {
+					empty = state_machine.options.force_not_null[chunk_col_id];
+				}
+				if (empty) {
+					if (parse_types[chunk_col_id].type_id != LogicalTypeId::VARCHAR) {
+						// If it is not a varchar, empty values are not accepted, we must error.
+						current_errors.Insert(CAST_ERROR, cur_col_id, chunk_col_id, last_position);
 					} else {
-						if (chunk_col_id == number_of_columns) {
-							// We check for a weird case, where we ignore an extra value, if it is a null value
-							return;
-						}
-						validity_mask[chunk_col_id]->SetInvalid(number_of_rows);
+						static_cast(vector_ptr[chunk_col_id])[number_of_rows] = string_t();
+					}
+				} else {
+					if (chunk_col_id == number_of_columns) {
+						// We check for a weird case, where we ignore an extra value, if it is a null value
+						return;
 					}
-					cur_col_id++;
-					chunk_col_id++;
-					return;
+					validity_mask[chunk_col_id]->SetInvalid(static_cast(number_of_rows));
 				}
+				cur_col_id++;
+				chunk_col_id++;
+				return;
 			}
 		}
 	}
@@ -408,7 +423,7 @@ void StringValueResult::AddValueToVector(const char *value_ptr, const idx_t size
 			if (force_error) {
 				HandleUnicodeError(cur_col_id, last_position);
 			}
-			// If we got here, we are ingoring errors, hence we must ignore this line.
+			// If we got here, we are ignoring errors, hence we must ignore this line.
 			current_errors.Insert(INVALID_UNICODE, cur_col_id, chunk_col_id, last_position);
 			break;
 		}
@@ -442,7 +457,11 @@ void StringValueResult::AddValueToVector(const char *value_ptr, const idx_t size
 }
 
 DataChunk &StringValueResult::ToChunk() {
-	parse_chunk.SetCardinality(number_of_rows);
+	if (number_of_rows < 0) {
+		throw InternalException("CSVScanner: ToChunk() function. Has a negative number of rows, this indicates an "
+		                        "issue with the error handler.");
+	}
+	parse_chunk.SetCardinality(static_cast(number_of_rows));
 	return parse_chunk;
 }
 
@@ -470,17 +489,25 @@ void StringValueResult::Reset() {
 }
 
 void StringValueResult::AddQuotedValue(StringValueResult &result, const idx_t buffer_pos) {
+	if (!result.unquoted) {
+		result.current_errors.Insert(UNTERMINATED_QUOTES, result.cur_col_id, result.chunk_col_id, result.last_position);
+	}
+	AddPossiblyEscapedValue(result, buffer_pos, result.buffer_ptr + result.quoted_position + 1,
+	                        buffer_pos - result.quoted_position - 2, buffer_pos < result.last_position.buffer_pos + 2);
+	result.quoted = false;
+}
+
+void StringValueResult::AddPossiblyEscapedValue(StringValueResult &result, const idx_t buffer_pos,
+                                                const char *value_ptr, const idx_t length, const bool empty) {
 	if (result.escaped) {
 		if (result.projecting_columns) {
 			if (!result.projected_columns[result.cur_col_id]) {
 				result.cur_col_id++;
-				result.quoted = false;
 				result.escaped = false;
 				return;
 			}
 		}
-		if (!result.HandleTooManyColumnsError(result.buffer_ptr + result.quoted_position + 1,
-		                                      buffer_pos - result.quoted_position - 2)) {
+		if (!result.HandleTooManyColumnsError(value_ptr, length)) {
 			// If it's an escaped value we have to remove all the escapes, this is not really great
 			// If we are going to escape, this vector must be a varchar vector
 			if (result.parse_chunk.data[result.chunk_col_id].GetType() != LogicalType::VARCHAR) {
@@ -490,11 +517,8 @@ void StringValueResult::AddQuotedValue(StringValueResult &result, const idx_t bu
 					std::ostringstream error;
 					// Casting Error Message
 
-					error << "Could not convert string \""
-					      << std::string(result.buffer_ptr + result.quoted_position + 1,
-					                     buffer_pos - result.quoted_position - 2)
-					      << "\" to \'" << LogicalTypeIdToString(result.parse_types[result.chunk_col_id].type_id)
-					      << "\'";
+					error << "Could not convert string \"" << std::string(value_ptr, length) << "\" to \'"
+					      << LogicalTypeIdToString(result.parse_types[result.chunk_col_id].type_id) << "\'";
 					auto error_string = error.str();
 					SanitizeError(error_string);
 					result.current_errors.ModifyErrorMessageOfLastError(error_string);
@@ -503,35 +527,52 @@ void StringValueResult::AddQuotedValue(StringValueResult &result, const idx_t bu
 				result.chunk_col_id++;
 			} else {
 				auto value = StringValueScanner::RemoveEscape(
-				    result.buffer_ptr + result.quoted_position + 1, buffer_pos - result.quoted_position - 2,
-				    result.state_machine.dialect_options.state_machine_options.escape.GetValue(),
+				    value_ptr, length, result.state_machine.dialect_options.state_machine_options.escape.GetValue(),
 				    result.parse_chunk.data[result.chunk_col_id]);
 				result.AddValueToVector(value.GetData(), value.GetSize());
 			}
 		}
 	} else {
-		if (buffer_pos < result.last_position.buffer_pos + 2) {
+		if (empty) {
 			// empty value
 			auto value = string_t();
 			result.AddValueToVector(value.GetData(), value.GetSize());
 		} else {
-			result.AddValueToVector(result.buffer_ptr + result.quoted_position + 1,
-			                        buffer_pos - result.quoted_position - 2);
+			result.AddValueToVector(value_ptr, length);
 		}
 	}
-	result.quoted = false;
 	result.escaped = false;
 }
 
+inline idx_t StringValueResult::HandleMultiDelimiter(const idx_t buffer_pos) const {
+	idx_t size = buffer_pos - last_position.buffer_pos - extra_delimiter_bytes;
+	if (buffer_pos < last_position.buffer_pos + extra_delimiter_bytes) {
+		// If this is a scenario where the value is null, that is fine (e.g., delim = '||' and line is: A||)
+		if (buffer_pos == last_position.buffer_pos) {
+			size = 0;
+		} else {
+			// Otherwise something went wrong.
+			throw InternalException(
+			    "Value size is lower than the number of extra delimiter bytes in the HandleMultiDelimiter(). "
+			    "buffer_pos = %d, last_position.buffer_pos = %d, extra_delimiter_bytes = %d",
+			    buffer_pos, last_position.buffer_pos, extra_delimiter_bytes);
+		}
+	}
+	return size;
+}
+
 void StringValueResult::AddValue(StringValueResult &result, const idx_t buffer_pos) {
 	if (result.last_position.buffer_pos > buffer_pos) {
 		return;
 	}
 	if (result.quoted) {
-		StringValueResult::AddQuotedValue(result, buffer_pos);
+		AddQuotedValue(result, buffer_pos - result.extra_delimiter_bytes);
+	} else if (result.escaped) {
+		AddPossiblyEscapedValue(result, buffer_pos, result.buffer_ptr + result.last_position.buffer_pos,
+		                        buffer_pos - result.last_position.buffer_pos, false);
 	} else {
 		result.AddValueToVector(result.buffer_ptr + result.last_position.buffer_pos,
-		                        buffer_pos - result.last_position.buffer_pos);
+		                        result.HandleMultiDelimiter(buffer_pos));
 	}
 	result.last_position.buffer_pos = buffer_pos + 1;
 }
@@ -653,7 +694,7 @@ bool LineError::HandleErrors(StringValueResult &result) {
 			result.RemoveLastLine();
 		} else {
 			// Otherwise, we add it to the borked rows to remove it later and just cleanup the column variables.
-			result.borked_rows.insert(result.number_of_rows);
+			result.borked_rows.insert(static_cast(result.number_of_rows));
 			result.cur_col_id = 0;
 			result.chunk_col_id = 0;
 		}
@@ -735,9 +776,9 @@ bool StringValueResult::AddRowInternal() {
 	}
 
 	if (current_errors.HandleErrors(*this)) {
-		line_positions_per_row[number_of_rows] = current_line_position;
+		line_positions_per_row[static_cast(number_of_rows)] = current_line_position;
 		number_of_rows++;
-		if (number_of_rows >= result_size) {
+		if (static_cast(number_of_rows) >= result_size) {
 			// We have a full chunk
 			return true;
 		}
@@ -764,7 +805,7 @@ bool StringValueResult::AddRowInternal() {
 				if (empty) {
 					static_cast(vector_ptr[chunk_col_id])[number_of_rows] = string_t();
 				} else {
-					validity_mask[chunk_col_id]->SetInvalid(number_of_rows);
+					validity_mask[chunk_col_id]->SetInvalid(static_cast(number_of_rows));
 				}
 				cur_col_id++;
 				chunk_col_id++;
@@ -794,11 +835,11 @@ bool StringValueResult::AddRowInternal() {
 			RemoveLastLine();
 		}
 	}
-	line_positions_per_row[number_of_rows] = current_line_position;
+	line_positions_per_row[static_cast(number_of_rows)] = current_line_position;
 	cur_col_id = 0;
 	chunk_col_id = 0;
 	number_of_rows++;
-	if (number_of_rows >= result_size) {
+	if (static_cast(number_of_rows) >= result_size) {
 		// We have a full chunk
 		return true;
 	}
@@ -811,8 +852,13 @@ bool StringValueResult::AddRow(StringValueResult &result, const idx_t buffer_pos
 		if (result.quoted) {
 			AddQuotedValue(result, buffer_pos);
 		} else {
-			result.AddValueToVector(result.buffer_ptr + result.last_position.buffer_pos,
-			                        buffer_pos - result.last_position.buffer_pos);
+			char *value_ptr = result.buffer_ptr + result.last_position.buffer_pos;
+			idx_t size = buffer_pos - result.last_position.buffer_pos;
+			if (result.escaped) {
+				AddPossiblyEscapedValue(result, buffer_pos, value_ptr, size, size == 0);
+			} else {
+				result.AddValueToVector(value_ptr, size);
+			}
 		}
 		if (result.state_machine.dialect_options.state_machine_options.new_line == NewLineIdentifier::CARRY_ON) {
 			if (result.states.states[1] == CSVState::RECORD_SEPARATOR) {
@@ -831,11 +877,6 @@ bool StringValueResult::AddRow(StringValueResult &result, const idx_t buffer_pos
 }
 
 void StringValueResult::InvalidState(StringValueResult &result) {
-	bool force_error = !result.state_machine.options.ignore_errors.GetValue() && result.sniffing;
-	// Invalid unicode, we must error
-	if (force_error) {
-		result.HandleUnicodeError(result.cur_col_id, result.last_position);
-	}
 	result.current_errors.Insert(UNTERMINATED_QUOTES, result.cur_col_id, result.chunk_col_id, result.last_position);
 }
 
@@ -856,12 +897,12 @@ bool StringValueResult::EmptyLine(StringValueResult &result, const idx_t buffer_
 				if (empty) {
 					static_cast(result.vector_ptr[0])[result.number_of_rows] = string_t();
 				} else {
-					result.validity_mask[0]->SetInvalid(result.number_of_rows);
+					result.validity_mask[0]->SetInvalid(static_cast(result.number_of_rows));
 				}
 				result.number_of_rows++;
 			}
 		}
-		if (result.number_of_rows >= result.result_size) {
+		if (static_cast(result.number_of_rows) >= result.result_size) {
 			// We have a full chunk
 			return true;
 		}
@@ -880,6 +921,7 @@ StringValueScanner::StringValueScanner(idx_t scanner_idx_p, const shared_ptrcontext.client_data->debug_set_max_line_length, csv_file_scan, lines_read, sniffing,
              buffer_manager->GetFilePath()) {
+	iterator.buffer_size = state_machine->options.buffer_size;
 }
 
 StringValueScanner::StringValueScanner(const shared_ptr &buffer_manager,
@@ -891,6 +933,7 @@ StringValueScanner::StringValueScanner(const shared_ptr &buffe
              iterator.pos.buffer_pos, *error_handler, iterator,
              buffer_manager->context.client_data->debug_set_max_line_length, csv_file_scan, lines_read, sniffing,
              buffer_manager->GetFilePath()) {
+	iterator.buffer_size = state_machine->options.buffer_size;
 }
 
 unique_ptr StringValueScanner::GetCSVScanner(ClientContext &context, CSVReaderOptions &options) {
@@ -1038,27 +1081,30 @@ void StringValueScanner::Flush(DataChunk &insert_chunk) {
 	}
 	if (!result.borked_rows.empty()) {
 		// We must remove the borked lines from our chunk
-		SelectionVector succesful_rows(parse_chunk.size());
+		SelectionVector successful_rows(parse_chunk.size());
 		idx_t sel_idx = 0;
 		for (idx_t row_idx = 0; row_idx < parse_chunk.size(); row_idx++) {
 			if (result.borked_rows.find(row_idx) == result.borked_rows.end()) {
-				succesful_rows.set_index(sel_idx++, row_idx);
+				successful_rows.set_index(sel_idx++, row_idx);
 			}
 		}
 		// Now we slice the result
-		insert_chunk.Slice(succesful_rows, sel_idx);
+		insert_chunk.Slice(successful_rows, sel_idx);
 	}
 }
 
 void StringValueScanner::Initialize() {
 	states.Initialize();
+
 	if (result.result_size != 1 && !(sniffing && state_machine->options.null_padding &&
 	                                 !state_machine->options.dialect_options.skip_rows.IsSetByUser())) {
 		SetStart();
+	} else {
+		start_pos = iterator.GetGlobalCurrentPos();
 	}
+
 	result.last_position = {iterator.pos.buffer_idx, iterator.pos.buffer_pos, cur_buffer_handle->actual_size};
 	result.current_line_position.begin = result.last_position;
-
 	result.current_line_position.end = result.current_line_position.begin;
 }
 
@@ -1125,6 +1171,8 @@ void StringValueScanner::ProcessExtraRow() {
 			}
 			break;
 		case CSVState::ESCAPE:
+		case CSVState::UNQUOTED_ESCAPE:
+		case CSVState::ESCAPED_RETURN:
 			result.SetEscaped(result);
 			iterator.pos.buffer_pos++;
 			break;
@@ -1136,6 +1184,11 @@ void StringValueScanner::ProcessExtraRow() {
 				iterator.pos.buffer_pos++;
 			}
 			break;
+		case CSVState::UNQUOTED: {
+			result.SetUnquoted(result);
+			iterator.pos.buffer_pos++;
+			break;
+		}
 		case CSVState::COMMENT:
 			result.SetComment(result, iterator.pos.buffer_pos);
 			iterator.pos.buffer_pos++;
@@ -1188,14 +1241,14 @@ string_t StringValueScanner::RemoveEscape(const char *str_ptr, idx_t end, char e
 	return removed_escapes;
 }
 
-void StringValueScanner::ProcessOverbufferValue() {
+void StringValueScanner::ProcessOverBufferValue() {
 	// Process first string
-	states.Initialize();
-	string overbuffer_string;
-	auto previous_buffer = previous_buffer_handle->Ptr();
-	if (result.last_position.buffer_pos == previous_buffer_handle->actual_size) {
-		state_machine->Transition(states, previous_buffer[result.last_position.buffer_pos - 1]);
+	if (result.last_position.buffer_pos != previous_buffer_handle->actual_size) {
+		states.Initialize();
 	}
+
+	string over_buffer_string;
+	auto previous_buffer = previous_buffer_handle->Ptr();
 	idx_t j = 0;
 	result.quoted = false;
 	for (idx_t i = result.last_position.buffer_pos; i < previous_buffer_handle->actual_size; i++) {
@@ -1207,12 +1260,15 @@ void StringValueScanner::ProcessOverbufferValue() {
 			break;
 		} else {
 			if (!result.comment) {
-				overbuffer_string += previous_buffer[i];
+				over_buffer_string += previous_buffer[i];
 			}
 		}
 		if (states.IsQuoted()) {
 			result.SetQuoted(result, j);
 		}
+		if (states.IsUnquoted()) {
+			result.SetUnquoted(result);
+		}
 		if (states.IsEscaped()) {
 			result.escaped = true;
 		}
@@ -1224,7 +1280,7 @@ void StringValueScanner::ProcessOverbufferValue() {
 		}
 		j++;
 	}
-	if (overbuffer_string.empty() &&
+	if (over_buffer_string.empty() &&
 	    state_machine->dialect_options.state_machine_options.new_line == NewLineIdentifier::CARRY_ON) {
 		if (buffer_handle_ptr[iterator.pos.buffer_pos] == '\n') {
 			iterator.pos.buffer_pos++;
@@ -1244,7 +1300,7 @@ void StringValueScanner::ProcessOverbufferValue() {
 			break;
 		} else {
 			if (!result.comment && !states.IsComment()) {
-				overbuffer_string += buffer_handle_ptr[iterator.pos.buffer_pos];
+				over_buffer_string += buffer_handle_ptr[iterator.pos.buffer_pos];
 			}
 		}
 		if (states.IsQuoted()) {
@@ -1271,21 +1327,36 @@ void StringValueScanner::ProcessOverbufferValue() {
 	if (!skip_value) {
 		string_t value;
 		if (result.quoted) {
-			value = string_t(overbuffer_string.c_str() + result.quoted_position,
-			                 UnsafeNumericCast(overbuffer_string.size() - 1 - result.quoted_position));
+			value = string_t(over_buffer_string.c_str() + result.quoted_position,
+			                 UnsafeNumericCast(over_buffer_string.size() - 1 - result.quoted_position));
 			if (result.escaped) {
-				const auto str_ptr = overbuffer_string.c_str() + result.quoted_position;
-				value = RemoveEscape(str_ptr, overbuffer_string.size() - 2,
+				const auto str_ptr = over_buffer_string.c_str() + result.quoted_position;
+				value = RemoveEscape(str_ptr, over_buffer_string.size() - 2,
 				                     state_machine->dialect_options.state_machine_options.escape.GetValue(),
 				                     result.parse_chunk.data[result.chunk_col_id]);
 			}
 		} else {
-			value = string_t(overbuffer_string.c_str(), UnsafeNumericCast(overbuffer_string.size()));
+			value = string_t(over_buffer_string.c_str(), UnsafeNumericCast(over_buffer_string.size()));
+			if (result.escaped) {
+				value = RemoveEscape(over_buffer_string.c_str(), over_buffer_string.size(),
+				                     state_machine->dialect_options.state_machine_options.escape.GetValue(),
+				                     result.parse_chunk.data[result.chunk_col_id]);
+			}
 		}
 		if (states.EmptyLine() && state_machine->dialect_options.num_cols == 1) {
 			result.EmptyLine(result, iterator.pos.buffer_pos);
 		} else if (!states.IsNotSet() && (!result.comment || !value.Empty())) {
-			result.AddValueToVector(value.GetData(), value.GetSize(), true);
+			idx_t value_size = value.GetSize();
+			if (states.IsDelimiter()) {
+				idx_t extra_delimiter_bytes =
+				    result.state_machine.dialect_options.state_machine_options.delimiter.GetValue().size() - 1;
+				if (extra_delimiter_bytes > value_size) {
+					throw InternalException(
+					    "Value size is lower than the number of extra delimiter bytes in the ProcesOverBufferValue()");
+				}
+				value_size -= extra_delimiter_bytes;
+			}
+			result.AddValueToVector(value.GetData(), value_size, true);
 		}
 	} else {
 		if (states.EmptyLine() && state_machine->dialect_options.num_cols == 1) {
@@ -1355,6 +1426,10 @@ bool StringValueScanner::MoveToNextBuffer() {
 				if (result.IsCommentSet(result)) {
 					result.UnsetComment(result, iterator.pos.buffer_pos);
 				} else {
+					if (result.quoted && states.IsDelimiterBytes()) {
+						result.current_errors.Insert(UNTERMINATED_QUOTES, result.cur_col_id, result.chunk_col_id,
+						                             result.last_position);
+					}
 					result.AddRow(result, previous_buffer_handle->actual_size);
 				}
 				lines_read++;
@@ -1365,8 +1440,8 @@ bool StringValueScanner::MoveToNextBuffer() {
 
 		iterator.pos.buffer_pos = 0;
 		buffer_handle_ptr = cur_buffer_handle->Ptr();
-		// Handle overbuffer value
-		ProcessOverbufferValue();
+		// Handle over-buffer value
+		ProcessOverBufferValue();
 		result.buffer_ptr = buffer_handle_ptr;
 		result.buffer_size = cur_buffer_handle->actual_size;
 		return true;
@@ -1384,7 +1459,7 @@ void StringValueResult::SkipBOM() const {
 void StringValueResult::RemoveLastLine() {
 	// potentially de-nullify values
 	for (idx_t i = 0; i < chunk_col_id; i++) {
-		validity_mask[i]->SetValid(number_of_rows);
+		validity_mask[i]->SetValid(static_cast(number_of_rows));
 	}
 	// reset column trackers
 	cur_col_id = 0;
@@ -1399,38 +1474,86 @@ bool StringValueResult::PrintErrorLine() const {
 	       (state_machine.options.store_rejects.GetValue() || !state_machine.options.ignore_errors.GetValue());
 }
 
-void StringValueScanner::SkipUntilNewLine() {
-	// Now skip until next newline
-	if (state_machine->options.dialect_options.state_machine_options.new_line.GetValue() ==
-	    NewLineIdentifier::CARRY_ON) {
-		bool carriage_return = false;
-		bool not_carriage_return = false;
-		for (; iterator.pos.buffer_pos < cur_buffer_handle->actual_size; iterator.pos.buffer_pos++) {
-			if (buffer_handle_ptr[iterator.pos.buffer_pos] == '\r') {
-				carriage_return = true;
-			} else if (buffer_handle_ptr[iterator.pos.buffer_pos] != '\n') {
-				not_carriage_return = true;
+bool StringValueScanner::FirstValueEndsOnQuote(CSVIterator iterator) const {
+	CSVStates current_state;
+	current_state.Initialize(CSVState::STANDARD);
+	const idx_t to_pos = iterator.GetEndPos();
+	while (iterator.pos.buffer_pos < to_pos) {
+		state_machine->Transition(current_state, buffer_handle_ptr[iterator.pos.buffer_pos++]);
+		if ((current_state.IsState(CSVState::DELIMITER) || current_state.IsState(CSVState::CARRIAGE_RETURN) ||
+		     current_state.IsState(CSVState::RECORD_SEPARATOR))) {
+			return buffer_handle_ptr[iterator.pos.buffer_pos - 2] ==
+			       state_machine->dialect_options.state_machine_options.quote.GetValue();
+		}
+	}
+	return false;
+}
+
+bool StringValueScanner::SkipUntilState(CSVState initial_state, CSVState until_state, CSVIterator ¤t_iterator,
+                                        bool "ed) const {
+	CSVStates current_state;
+	current_state.Initialize(initial_state);
+	bool first_column = true;
+	const idx_t to_pos = current_iterator.GetEndPos();
+	while (current_iterator.pos.buffer_pos < to_pos) {
+		state_machine_strict->Transition(current_state, buffer_handle_ptr[current_iterator.pos.buffer_pos++]);
+		if (current_state.IsState(CSVState::STANDARD) || current_state.IsState(CSVState::STANDARD_NEWLINE)) {
+			while (current_iterator.pos.buffer_pos + 8 < to_pos) {
+				uint64_t value = Load(
+				    reinterpret_cast(&buffer_handle_ptr[current_iterator.pos.buffer_pos]));
+				if (ContainsZeroByte((value ^ state_machine_strict->transition_array.delimiter) &
+				                     (value ^ state_machine_strict->transition_array.new_line) &
+				                     (value ^ state_machine_strict->transition_array.carriage_return) &
+				                     (value ^ state_machine_strict->transition_array.comment))) {
+					break;
+				}
+				current_iterator.pos.buffer_pos += 8;
+			}
+			while (state_machine_strict->transition_array
+			           .skip_standard[static_cast(buffer_handle_ptr[current_iterator.pos.buffer_pos])] &&
+			       current_iterator.pos.buffer_pos < to_pos - 1) {
+				current_iterator.pos.buffer_pos++;
 			}
-			if (buffer_handle_ptr[iterator.pos.buffer_pos] == '\n') {
-				if (carriage_return || not_carriage_return) {
-					iterator.pos.buffer_pos++;
-					return;
+		}
+		if (current_state.IsState(CSVState::QUOTED)) {
+			while (current_iterator.pos.buffer_pos + 8 < to_pos) {
+				uint64_t value = Load(
+				    reinterpret_cast(&buffer_handle_ptr[current_iterator.pos.buffer_pos]));
+				if (ContainsZeroByte((value ^ state_machine_strict->transition_array.quote) &
+				                     (value ^ state_machine_strict->transition_array.escape))) {
+					break;
 				}
+				current_iterator.pos.buffer_pos += 8;
+			}
+
+			while (state_machine_strict->transition_array
+			           .skip_quoted[static_cast(buffer_handle_ptr[current_iterator.pos.buffer_pos])] &&
+			       current_iterator.pos.buffer_pos < to_pos - 1) {
+				current_iterator.pos.buffer_pos++;
 			}
 		}
-	} else {
-		for (; iterator.pos.buffer_pos < cur_buffer_handle->actual_size; iterator.pos.buffer_pos++) {
-			if (buffer_handle_ptr[iterator.pos.buffer_pos] == '\n' ||
-			    buffer_handle_ptr[iterator.pos.buffer_pos] == '\r') {
-				iterator.pos.buffer_pos++;
-				return;
+		if ((current_state.IsState(CSVState::DELIMITER) || current_state.IsState(CSVState::CARRIAGE_RETURN) ||
+		     current_state.IsState(CSVState::RECORD_SEPARATOR)) &&
+		    first_column) {
+			if (buffer_handle_ptr[current_iterator.pos.buffer_pos - 1] ==
+			    state_machine_strict->dialect_options.state_machine_options.quote.GetValue()) {
+				quoted = true;
 			}
 		}
+		if (current_state.WasState(CSVState::DELIMITER)) {
+			first_column = false;
+		}
+		if (current_state.IsState(until_state)) {
+			return true;
+		}
+		if (current_state.IsState(CSVState::INVALID)) {
+			return false;
+		}
 	}
+	return false;
 }
 
 bool StringValueScanner::CanDirectlyCast(const LogicalType &type, bool icu_loaded) {
-
 	switch (type.id()) {
 	case LogicalTypeId::TINYINT:
 	case LogicalTypeId::SMALLINT:
@@ -1458,68 +1581,118 @@ bool StringValueScanner::CanDirectlyCast(const LogicalType &type, bool icu_loade
 	}
 }
 
+bool StringValueScanner::IsRowValid(CSVIterator ¤t_iterator) const {
+	if (iterator.pos.buffer_pos == cur_buffer_handle->actual_size) {
+		return false;
+	}
+	constexpr idx_t result_size = 1;
+	auto scan_finder =
+	    make_uniq(0U, buffer_manager, state_machine_strict, make_shared_ptr(),
+	                                  csv_file_scan, false, current_iterator, result_size);
+	auto &tuples = scan_finder->ParseChunk();
+	current_iterator.pos = scan_finder->GetIteratorPosition();
+	return (tuples.number_of_rows == 1 || tuples.first_line_is_comment) && tuples.borked_rows.empty() &&
+	       !tuples.current_errors.HasError();
+	;
+}
+
+ValidRowInfo StringValueScanner::TryRow(CSVState state, idx_t start_pos, idx_t end_pos) const {
+	auto current_iterator = iterator;
+	current_iterator.SetStart(start_pos);
+	current_iterator.SetEnd(end_pos);
+	bool quoted = false;
+	if (SkipUntilState(state, CSVState::RECORD_SEPARATOR, current_iterator, quoted)) {
+		auto iterator_start = current_iterator;
+		idx_t current_pos = current_iterator.pos.buffer_pos;
+		current_iterator.SetEnd(iterator.GetEndPos());
+		if (iterator.GetEndPos() == current_pos) {
+			return {false, current_pos, current_iterator.pos.buffer_idx, current_iterator.pos.buffer_pos, quoted};
+		}
+		if (IsRowValid(current_iterator)) {
+			if (!quoted) {
+				quoted = FirstValueEndsOnQuote(iterator_start);
+			}
+			return {true, current_pos, current_iterator.pos.buffer_idx, current_iterator.pos.buffer_pos, quoted};
+		}
+	}
+	return {false, current_iterator.pos.buffer_pos, current_iterator.pos.buffer_idx, current_iterator.pos.buffer_pos,
+	        quoted};
+}
+
 void StringValueScanner::SetStart() {
+	start_pos = iterator.GetGlobalCurrentPos();
 	if (iterator.first_one) {
 		if (result.store_line_size) {
 			result.error_handler.NewMaxLineSize(iterator.pos.buffer_pos);
 		}
 		return;
 	}
-	if (state_machine->options.IgnoreErrors()) {
-		// If we are ignoring errors we don't really need to figure out a line.
-		return;
-	}
-	// The result size of the data after skipping the row is one line
-	// We have to look for a new line that fits our schema
-	// 1. We walk until the next new line
-	bool line_found;
-	unique_ptr scan_finder;
-	do {
-		constexpr idx_t result_size = 1;
-		SkipUntilNewLine();
-		if (state_machine->options.null_padding) {
-			// When Null Padding, we assume we start from the correct new-line
-			return;
-		}
-		scan_finder =
-		    make_uniq(0U, buffer_manager, state_machine, make_shared_ptr(true),
-		                                  csv_file_scan, false, iterator, result_size);
-		auto &tuples = scan_finder->ParseChunk();
-		line_found = true;
-		if (tuples.number_of_rows != 1 ||
-		    (!tuples.borked_rows.empty() && !state_machine->options.ignore_errors.GetValue()) ||
-		    tuples.first_line_is_comment) {
-			line_found = false;
-			// If no tuples were parsed, this is not the correct start, we need to skip until the next new line
-			// Or if columns don't match, this is not the correct start, we need to skip until the next new line
-			if (scan_finder->previous_buffer_handle) {
-				if (scan_finder->iterator.pos.buffer_pos >= scan_finder->previous_buffer_handle->actual_size &&
-				    scan_finder->previous_buffer_handle->is_last_buffer) {
-					iterator.pos.buffer_idx = scan_finder->iterator.pos.buffer_idx;
-					iterator.pos.buffer_pos = scan_finder->iterator.pos.buffer_pos;
-					result.last_position = {iterator.pos.buffer_idx, iterator.pos.buffer_pos, result.buffer_size};
-					iterator.done = scan_finder->iterator.done;
-					return;
-				}
-			}
-			if (iterator.pos.buffer_pos == cur_buffer_handle->actual_size ||
-			    scan_finder->iterator.GetBufferIdx() > iterator.GetBufferIdx()) {
-				// If things go terribly wrong, we never loop indefinitely.
-				iterator.pos.buffer_idx = scan_finder->iterator.pos.buffer_idx;
-				iterator.pos.buffer_pos = scan_finder->iterator.pos.buffer_pos;
-				result.last_position = {iterator.pos.buffer_idx, iterator.pos.buffer_pos, result.buffer_size};
-				iterator.done = scan_finder->iterator.done;
-				return;
+	if (iterator.GetEndPos() > cur_buffer_handle->actual_size) {
+		iterator.SetEnd(cur_buffer_handle->actual_size);
+	}
+	if (!state_machine_strict) {
+		// We need to initialize our strict state machine
+		auto &state_machine_cache = CSVStateMachineCache::Get(buffer_manager->context);
+		auto state_options = state_machine->state_machine_options;
+		// To set the state machine to be strict we ensure that rfc_4180 is set to true
+		if (!state_options.rfc_4180.IsSetByUser()) {
+			state_options.rfc_4180 = true;
+		}
+		state_machine_strict =
+		    make_shared_ptr(state_machine_cache.Get(state_options), state_machine->options);
+	}
+	// At this point we have 3 options:
+	// 1. We are at the start of a valid line
+	ValidRowInfo best_row = TryRow(CSVState::STANDARD_NEWLINE, iterator.pos.buffer_pos, iterator.GetEndPos());
+	// 2. We are in the middle of a quoted value
+	if (state_machine->dialect_options.state_machine_options.quote.GetValue() != '\0') {
+		idx_t end_pos = iterator.GetEndPos();
+		if (best_row.is_valid && best_row.end_buffer_idx == iterator.pos.buffer_idx) {
+			// If we got a valid row from the standard state, we limit our search up to that.
+			end_pos = best_row.end_pos;
+		}
+		auto quoted_row = TryRow(CSVState::QUOTED, iterator.pos.buffer_pos, end_pos);
+		if (quoted_row.is_valid && (!best_row.is_valid || best_row.last_state_quote)) {
+			best_row = quoted_row;
+		}
+		if (!best_row.is_valid && !quoted_row.is_valid && best_row.start_pos < quoted_row.start_pos) {
+			best_row = quoted_row;
+		}
+	}
+	// 3. We are in an escaped value
+	if (!best_row.is_valid && state_machine->dialect_options.state_machine_options.escape.GetValue() != '\0' &&
+	    state_machine->dialect_options.state_machine_options.quote.GetValue() != '\0') {
+		auto escape_row = TryRow(CSVState::ESCAPE, iterator.pos.buffer_pos, iterator.GetEndPos());
+		if (escape_row.is_valid) {
+			best_row = escape_row;
+		} else {
+			if (best_row.start_pos < escape_row.start_pos) {
+				best_row = escape_row;
 			}
 		}
-	} while (!line_found);
-	iterator.pos.buffer_idx = scan_finder->result.current_line_position.begin.buffer_idx;
-	iterator.pos.buffer_pos = scan_finder->result.current_line_position.begin.buffer_pos;
+	}
+	if (!best_row.is_valid) {
+		bool is_this_the_end =
+		    best_row.start_pos >= cur_buffer_handle->actual_size && cur_buffer_handle->is_last_buffer;
+		if (is_this_the_end) {
+			iterator.pos.buffer_pos = best_row.start_pos;
+			iterator.done = true;
+		} else {
+			bool mock;
+			SkipUntilState(CSVState::STANDARD_NEWLINE, CSVState::RECORD_SEPARATOR, iterator, mock);
+		}
+	} else {
+		iterator.pos.buffer_pos = best_row.start_pos;
+		iterator.done = iterator.pos.buffer_pos == cur_buffer_handle->actual_size;
+	}
+	// 4. We have an error, if we have an error, we let life go on, the scanner will either ignore it
+	// or throw.
 	result.last_position = {iterator.pos.buffer_idx, iterator.pos.buffer_pos, result.buffer_size};
+	start_pos = iterator.GetGlobalCurrentPos();
 }
 
 void StringValueScanner::FinalizeChunkProcess() {
-	if (result.number_of_rows >= result.result_size || iterator.done) {
+	if (static_cast(result.number_of_rows) >= result.result_size || iterator.done) {
 		// We are done
 		if (!sniffing) {
 			if (csv_file_scan) {
@@ -1557,14 +1730,18 @@ void StringValueScanner::FinalizeChunkProcess() {
 			if (result.current_errors.HasErrorType(UNTERMINATED_QUOTES)) {
 				has_unterminated_quotes = true;
 			}
-			result.current_errors.HandleErrors(result);
+			if (result.current_errors.HandleErrors(result)) {
+				result.number_of_rows++;
+			}
 		}
 		if (states.IsQuotedCurrent() && !has_unterminated_quotes) {
 			// If we finish the execution of a buffer, and we end in a quoted state, it means we have unterminated
 			// quotes
 			result.current_errors.Insert(UNTERMINATED_QUOTES, result.cur_col_id, result.chunk_col_id,
 			                             result.last_position);
-			result.current_errors.HandleErrors(result);
+			if (result.current_errors.HandleErrors(result)) {
+				result.number_of_rows++;
+			}
 		}
 		if (!iterator.done) {
 			if (iterator.pos.buffer_pos >= iterator.GetEndPos() || iterator.pos.buffer_idx > iterator.GetBufferIdx() ||
@@ -1575,9 +1752,9 @@ void StringValueScanner::FinalizeChunkProcess() {
 	} else {
 		// 2) If a boundary is not set
 		// We read until the chunk is complete, or we have nothing else to read.
-		while (!FinishedFile() && result.number_of_rows < result.result_size) {
+		while (!FinishedFile() && static_cast(result.number_of_rows) < result.result_size) {
 			MoveToNextBuffer();
-			if (result.number_of_rows >= result.result_size) {
+			if (static_cast(result.number_of_rows) >= result.result_size) {
 				return;
 			}
 			if (cur_buffer_handle) {
@@ -1587,11 +1764,16 @@ void StringValueScanner::FinalizeChunkProcess() {
 		iterator.done = FinishedFile();
 		if (result.null_padding && result.number_of_rows < STANDARD_VECTOR_SIZE && result.chunk_col_id > 0) {
 			while (result.chunk_col_id < result.parse_chunk.ColumnCount()) {
-				result.validity_mask[result.chunk_col_id++]->SetInvalid(result.number_of_rows);
+				result.validity_mask[result.chunk_col_id++]->SetInvalid(static_cast(result.number_of_rows));
 				result.cur_col_id++;
 			}
 			result.number_of_rows++;
 		}
 	}
 }
+
+ValidatorLine StringValueScanner::GetValidationLine() {
+	return {start_pos, result.iterator.GetGlobalCurrentPos()};
+}
+
 } // namespace duckdb
diff --git a/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp b/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp
index 96aa9e2d..74928a5c 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/sniffer/csv_sniffer.cpp
@@ -1,4 +1,4 @@
-#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp"
+#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp"
 #include "duckdb/common/types/value.hpp"
 
 namespace duckdb {
@@ -41,15 +41,16 @@ void MatchAndReplace(CSVOption &original, CSVOption &sniffed, const string
 		// We verify that the user input matches the sniffed value
 		if (original != sniffed) {
 			error += "CSV Sniffer: Sniffer detected value different than the user input for the " + name;
-			error += " options \n Set: " + original.FormatValue() + " Sniffed: " + sniffed.FormatValue() + "\n";
+			error += " options \n Set: " + original.FormatValue() + ", Sniffed: " + sniffed.FormatValue() + "\n";
 		}
 	} else {
 		// We replace the value of original with the sniffed value
 		original.Set(sniffed.GetValue(), false);
 	}
 }
-void MatchAndRepaceUserSetVariables(DialectOptions &original, DialectOptions &sniffed, string &error, bool found_date,
-                                    bool found_timestamp) {
+
+void MatchAndReplaceUserSetVariables(DialectOptions &original, DialectOptions &sniffed, string &error, bool found_date,
+                                     bool found_timestamp) {
 	MatchAndReplace(original.header, sniffed.header, "Header", error);
 	if (sniffed.state_machine_options.new_line.GetValue() != NewLineIdentifier::NOT_SET) {
 		// Is sniffed line is not set (e.g., single-line file) , we don't try to replace and match.
@@ -72,7 +73,7 @@ void MatchAndRepaceUserSetVariables(DialectOptions &original, DialectOptions &sn
 	}
 }
 // Set the CSV Options in the reference
-void CSVSniffer::SetResultOptions() {
+void CSVSniffer::SetResultOptions() const {
 	bool found_date = false;
 	bool found_timestamp = false;
 	for (auto &type : detected_types) {
@@ -82,31 +83,30 @@ void CSVSniffer::SetResultOptions() {
 			found_timestamp = true;
 		}
 	}
-	MatchAndRepaceUserSetVariables(options.dialect_options, best_candidate->GetStateMachine().dialect_options,
-	                               options.sniffer_user_mismatch_error, found_date, found_timestamp);
+	MatchAndReplaceUserSetVariables(options.dialect_options, best_candidate->GetStateMachine().dialect_options,
+	                                options.sniffer_user_mismatch_error, found_date, found_timestamp);
 	options.dialect_options.num_cols = best_candidate->GetStateMachine().dialect_options.num_cols;
 	options.dialect_options.rows_until_header = best_candidate->GetStateMachine().dialect_options.rows_until_header;
 }
 
-SnifferResult CSVSniffer::MinimalSniff() {
+AdaptiveSnifferResult CSVSniffer::MinimalSniff() {
 	if (set_columns.IsSet()) {
 		// Nothing to see here
-		return SnifferResult(*set_columns.types, *set_columns.names);
+		return AdaptiveSnifferResult(*set_columns.types, *set_columns.names, true);
 	}
 	// Return Types detected
 	vector return_types;
 	// Column Names detected
-	vector names;
-
 	buffer_manager->sniffing = true;
-	constexpr idx_t result_size = 2;
+	constexpr idx_t result_size = STANDARD_VECTOR_SIZE;
 
 	auto state_machine =
 	    make_shared_ptr(options, options.dialect_options.state_machine_options, state_machine_cache);
 	ColumnCountScanner count_scanner(buffer_manager, state_machine, error_handler, result_size);
 	auto &sniffed_column_counts = count_scanner.ParseChunk();
 	if (sniffed_column_counts.result_position == 0) {
-		return {{}, {}};
+		// The file is an empty file, we just return
+		return {{}, {}, false};
 	}
 
 	state_machine->dialect_options.num_cols = sniffed_column_counts[0].number_of_columns;
@@ -114,6 +114,7 @@ SnifferResult CSVSniffer::MinimalSniff() {
 
 	// First figure out the number of columns on this configuration
 	auto scanner = count_scanner.UpgradeToStringValueScanner();
+	scanner->error_handler->SetIgnoreErrors(true);
 	// Parse chunk and read csv with info candidate
 	auto &data_chunk = scanner->ParseChunk().ToChunk();
 	idx_t start_row = 0;
@@ -130,16 +131,19 @@ SnifferResult CSVSniffer::MinimalSniff() {
 
 	// Possibly Gather Header
 	vector potential_header;
-	if (start_row != 0) {
-		for (idx_t col_idx = 0; col_idx < data_chunk.ColumnCount(); col_idx++) {
-			auto &cur_vector = data_chunk.data[col_idx];
-			auto vector_data = FlatVector::GetData(cur_vector);
-			HeaderValue val(vector_data[0]);
-			potential_header.emplace_back(val);
+	for (idx_t col_idx = 0; col_idx < data_chunk.ColumnCount(); col_idx++) {
+		auto &cur_vector = data_chunk.data[col_idx];
+		auto vector_data = FlatVector::GetData(cur_vector);
+		auto &validity = FlatVector::Validity(cur_vector);
+		HeaderValue val;
+		if (validity.RowIsValid(0)) {
+			val = HeaderValue(vector_data[0]);
 		}
+		potential_header.emplace_back(val);
 	}
-	names = DetectHeaderInternal(buffer_manager->context, potential_header, *state_machine, set_columns,
-	                             best_sql_types_candidates_per_column_idx, options, *error_handler);
+
+	auto names = DetectHeaderInternal(buffer_manager->context, potential_header, *state_machine, set_columns,
+	                                  best_sql_types_candidates_per_column_idx, options, *error_handler);
 
 	for (idx_t column_idx = 0; column_idx < best_sql_types_candidates_per_column_idx.size(); column_idx++) {
 		LogicalType d_type = best_sql_types_candidates_per_column_idx[column_idx].back();
@@ -148,11 +152,10 @@ SnifferResult CSVSniffer::MinimalSniff() {
 		}
 		detected_types.push_back(d_type);
 	}
-
-	return {detected_types, names};
+	return {detected_types, names, sniffed_column_counts.result_position > 1};
 }
 
-SnifferResult CSVSniffer::AdaptiveSniff(CSVSchema &file_schema) {
+SnifferResult CSVSniffer::AdaptiveSniff(const CSVSchema &file_schema) {
 	auto min_sniff_res = MinimalSniff();
 	bool run_full = error_handler->AnyErrors() || detection_error_handler->AnyErrors();
 	// Check if we are happy with the result or if we need to do more sniffing
@@ -160,8 +163,7 @@ SnifferResult CSVSniffer::AdaptiveSniff(CSVSchema &file_schema) {
 		// If we got no errors, we also run full if schemas do not match.
 		if (!set_columns.IsSet() && !options.file_options.AnySet()) {
 			string error;
-			run_full =
-			    !file_schema.SchemasMatch(error, min_sniff_res.names, min_sniff_res.return_types, options.file_path);
+			run_full = !file_schema.SchemasMatch(error, min_sniff_res, options.file_path, true);
 		}
 	}
 	if (run_full) {
@@ -169,19 +171,24 @@ SnifferResult CSVSniffer::AdaptiveSniff(CSVSchema &file_schema) {
 		auto full_sniffer = SniffCSV();
 		if (!set_columns.IsSet() && !options.file_options.AnySet()) {
 			string error;
-			if (!file_schema.SchemasMatch(error, full_sniffer.names, full_sniffer.return_types, options.file_path) &&
+			if (!file_schema.SchemasMatch(error, full_sniffer, options.file_path, false) &&
 			    !options.ignore_errors.GetValue()) {
 				throw InvalidInputException(error);
 			}
 		}
 		return full_sniffer;
 	}
-	return min_sniff_res;
+	return min_sniff_res.ToSnifferResult();
 }
+
 SnifferResult CSVSniffer::SniffCSV(bool force_match) {
 	buffer_manager->sniffing = true;
 	// 1. Dialect Detection
 	DetectDialect();
+	if (buffer_manager->file_handle->compression_type != FileCompressionType::UNCOMPRESSED &&
+	    buffer_manager->IsBlockUnloaded(0)) {
+		buffer_manager->ResetBufferManager();
+	}
 	// 2. Type Detection
 	DetectTypes();
 	// 3. Type Refinement
@@ -221,13 +228,16 @@ SnifferResult CSVSniffer::SniffCSV(bool force_match) {
 			// If the header exists it should match
 			string header_error = "The Column names set by the user do not match the ones found by the sniffer. \n";
 			auto &set_names = *set_columns.names;
-			for (idx_t i = 0; i < set_columns.Size(); i++) {
-				if (set_names[i] != names[i]) {
-					header_error += "Column at position: " + to_string(i) + " Set name: " + set_names[i] +
-					                " Sniffed Name: " + names[i] + "\n";
-					match = false;
+			if (set_names.size() == names.size()) {
+				for (idx_t i = 0; i < set_columns.Size(); i++) {
+					if (set_names[i] != names[i]) {
+						header_error += "Column at position: " + to_string(i) + ", Set name: " + set_names[i] +
+						                ", Sniffed Name: " + names[i] + "\n";
+						match = false;
+					}
 				}
 			}
+
 			if (!match) {
 				error += header_error;
 			}
@@ -235,15 +245,18 @@ SnifferResult CSVSniffer::SniffCSV(bool force_match) {
 		match = true;
 		string type_error = "The Column types set by the user do not match the ones found by the sniffer. \n";
 		auto &set_types = *set_columns.types;
-		for (idx_t i = 0; i < set_columns.Size(); i++) {
-			if (set_types[i] != detected_types[i]) {
-				type_error += "Column at position: " + to_string(i) + " Set type: " + set_types[i].ToString() +
-				              " Sniffed type: " + detected_types[i].ToString() + "\n";
-				detected_types[i] = set_types[i];
-				manually_set[i] = true;
-				match = false;
+		if (detected_types.size() == set_columns.Size()) {
+			for (idx_t i = 0; i < set_columns.Size(); i++) {
+				if (set_types[i] != detected_types[i]) {
+					type_error += "Column at position: " + to_string(i) + " Set type: " + set_types[i].ToString() +
+					              " Sniffed type: " + detected_types[i].ToString() + "\n";
+					detected_types[i] = set_types[i];
+					manually_set[i] = true;
+					match = false;
+				}
 			}
 		}
+
 		if (!match) {
 			error += type_error;
 		}
diff --git a/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp b/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp
index 44d17909..ae06d024 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/sniffer/dialect_detection.cpp
@@ -1,5 +1,5 @@
 #include "duckdb/common/shared_ptr.hpp"
-#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp"
+#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp"
 #include "duckdb/main/client_data.hpp"
 #include "duckdb/execution/operator/csv_scanner/csv_reader_options.hpp"
 
@@ -14,20 +14,20 @@ bool IsQuoteDefault(char quote) {
 	return false;
 }
 
-vector DialectCandidates::GetDefaultDelimiter() {
-	return {',', '|', ';', '\t'};
+vector DialectCandidates::GetDefaultDelimiter() {
+	return {",", "|", ";", "\t"};
 }
 
 vector> DialectCandidates::GetDefaultQuote() {
-	return {{'\"'}, {'\"', '\''}, {'\0'}};
+	return {{'\0'}, {'\"', '\''}, {'\"'}};
 }
 
 vector DialectCandidates::GetDefaultQuoteRule() {
-	return {QuoteRule::QUOTES_RFC, QuoteRule::QUOTES_OTHER, QuoteRule::NO_QUOTES};
+	return {QuoteRule::NO_QUOTES, QuoteRule::QUOTES_OTHER, QuoteRule::QUOTES_RFC};
 }
 
 vector> DialectCandidates::GetDefaultEscape() {
-	return {{'\"', '\0', '\''}, {'\\'}, {'\0'}};
+	return {{'\0'}, {'\\'}, {'\"', '\0', '\''}};
 }
 
 vector DialectCandidates::GetDefaultComment() {
@@ -46,7 +46,7 @@ string DialectCandidates::Print() {
 	}
 	search_space << "\n";
 	search_space << "Quote/Escape Candidates: ";
-	for (uint8_t i = 0; i < static_cast(quoterule_candidates.size()); i++) {
+	for (uint8_t i = 0; i < static_cast(quote_rule_candidates.size()); i++) {
 		auto quote_candidate = quote_candidates_map[i];
 		auto escape_candidate = escape_candidates_map[i];
 		for (idx_t j = 0; j < quote_candidate.size(); j++) {
@@ -60,7 +60,7 @@ string DialectCandidates::Print() {
 				search_space << ",";
 			}
 		}
-		if (i < quoterule_candidates.size() - 1) {
+		if (i < quote_rule_candidates.size() - 1) {
 			search_space << ",";
 		}
 	}
@@ -111,7 +111,7 @@ DialectCandidates::DialectCandidates(const CSVStateMachineOptions &options) {
 		for (auto "e_rule : default_quote_rule) {
 			quote_candidates_map[static_cast(quote_rule)] = {options.quote.GetValue()};
 		}
-		// also add it as a escape rule
+		// also add it as an escape rule
 		if (!IsQuoteDefault(options.quote.GetValue())) {
 			escape_candidates_map[static_cast(QuoteRule::QUOTES_RFC)].emplace_back(options.quote.GetValue());
 		}
@@ -124,14 +124,14 @@ DialectCandidates::DialectCandidates(const CSVStateMachineOptions &options) {
 	if (options.escape.IsSetByUser()) {
 		// user provided escape: use that escape rule
 		if (options.escape == '\0') {
-			quoterule_candidates = {QuoteRule::QUOTES_RFC};
+			quote_rule_candidates = {QuoteRule::QUOTES_RFC};
 		} else {
-			quoterule_candidates = {QuoteRule::QUOTES_OTHER};
+			quote_rule_candidates = {QuoteRule::QUOTES_OTHER};
 		}
-		escape_candidates_map[static_cast(quoterule_candidates[0])] = {options.escape.GetValue()};
+		escape_candidates_map[static_cast(quote_rule_candidates[0])] = {options.escape.GetValue()};
 	} else {
 		// no escape provided: try standard/common escapes
-		quoterule_candidates = default_quote_rule;
+		quote_rule_candidates = default_quote_rule;
 	}
 }
 
@@ -144,18 +144,24 @@ void CSVSniffer::GenerateStateMachineSearchSpace(vector(quoterule));
+	for (const auto quote_rule : dialect_candidates.quote_rule_candidates) {
+		const auto "e_candidates = dialect_candidates.quote_candidates_map.at(static_cast(quote_rule));
 		for (const auto "e : quote_candidates) {
 			for (const auto &delimiter : dialect_candidates.delim_candidates) {
 				const auto &escape_candidates =
-				    dialect_candidates.escape_candidates_map.at(static_cast(quoterule));
+				    dialect_candidates.escape_candidates_map.at(static_cast(quote_rule));
 				for (const auto &escape : escape_candidates) {
 					for (const auto &comment : dialect_candidates.comment_candidates) {
 						D_ASSERT(buffer_manager);
-						CSVStateMachineOptions state_machine_options(delimiter, quote, escape, comment, new_line_id);
+						CSVStateMachineOptions state_machine_options(delimiter, quote, escape, comment, new_line_id,
+						                                             rfc_4180);
 						auto sniffing_state_machine =
 						    make_shared_ptr(options, state_machine_options, state_machine_cache);
 						if (options.dialect_options.skip_rows.IsSetByUser()) {
@@ -181,7 +187,7 @@ void CSVSniffer::GenerateStateMachineSearchSpace(vector scanner,
 	}
 	idx_t consistent_rows = 0;
 	idx_t num_cols = sniffed_column_counts.result_position == 0 ? 1 : sniffed_column_counts[0].number_of_columns;
+	const bool ignore_errors = options.ignore_errors.GetValue();
+	// If we are ignoring errors and not null_padding , we pick the most frequent number of columns as the right one
+	bool use_most_frequent_columns = ignore_errors && !options.null_padding;
+	if (use_most_frequent_columns) {
+		num_cols = sniffed_column_counts.GetMostFrequentColumnCount();
+	}
 	idx_t padding_count = 0;
 	idx_t comment_rows = 0;
 	idx_t ignored_rows = 0;
-	bool allow_padding = options.null_padding;
+	const bool allow_padding = options.null_padding;
 	bool first_valid = false;
 	if (sniffed_column_counts.result_position > rows_read) {
 		rows_read = sniffed_column_counts.result_position;
 	}
-	if (set_columns.IsCandidateUnacceptable(num_cols, options.null_padding, options.ignore_errors.GetValue(),
+	if (set_columns.IsCandidateUnacceptable(num_cols, options.null_padding, ignore_errors,
 	                                        sniffed_column_counts[0].last_value_always_empty)) {
 		// Not acceptable
 		return;
@@ -242,8 +254,7 @@ void CSVSniffer::AnalyzeDialectCandidate(unique_ptr scanner,
 	idx_t header_idx = 0;
 	for (idx_t row = 0; row < sniffed_column_counts.result_position; row++) {
 		if (set_columns.IsCandidateUnacceptable(sniffed_column_counts[row].number_of_columns, options.null_padding,
-		                                        options.ignore_errors.GetValue(),
-		                                        sniffed_column_counts[row].last_value_always_empty)) {
+		                                        ignore_errors, sniffed_column_counts[row].last_value_always_empty)) {
 			// Not acceptable
 			return;
 		}
@@ -258,7 +269,7 @@ void CSVSniffer::AnalyzeDialectCandidate(unique_ptr scanner,
 			consistent_rows++;
 		} else if (num_cols < sniffed_column_counts[row].number_of_columns &&
 		           (!options.dialect_options.skip_rows.IsSetByUser() || comment_rows > 0) &&
-		           (!set_columns.IsSet() || options.null_padding)) {
+		           (!set_columns.IsSet() || options.null_padding) && (!first_valid || (!use_most_frequent_columns))) {
 			// all rows up to this point will need padding
 			if (!first_valid) {
 				first_valid = true;
@@ -268,15 +279,14 @@ void CSVSniffer::AnalyzeDialectCandidate(unique_ptr scanner,
 			// we use the maximum amount of num_cols that we find
 			num_cols = sniffed_column_counts[row].number_of_columns;
 			dirty_notes = row;
-			// sniffed_column_counts.state_machine.dialect_options.rows_until_header = dirty_notes;
 			dirty_notes_minus_comments = dirty_notes - comment_rows;
 			header_idx = row;
 			consistent_rows = 1;
-		} else if (sniffed_column_counts[row].number_of_columns == num_cols ||
-		           (options.ignore_errors.GetValue() && !options.null_padding)) {
+		} else if (sniffed_column_counts[row].number_of_columns == num_cols || (use_most_frequent_columns)) {
 			if (!first_valid) {
 				first_valid = true;
 				sniffed_column_counts.state_machine.dialect_options.rows_until_header = row;
+				dirty_notes = row;
 			}
 			if (sniffed_column_counts[row].number_of_columns != num_cols) {
 				ignored_rows++;
@@ -296,61 +306,95 @@ void CSVSniffer::AnalyzeDialectCandidate(unique_ptr scanner,
 	consistent_rows += padding_count;
 
 	// Whether there are more values (rows) available that are consistent, exceeding the current best.
-	bool more_values = consistent_rows > best_consistent_rows && num_cols >= max_columns_found;
+	const bool more_values = consistent_rows > best_consistent_rows && num_cols >= max_columns_found;
+
+	const bool more_columns = consistent_rows == best_consistent_rows && num_cols > max_columns_found;
 
 	// If additional padding is required when compared to the previous padding count.
-	bool require_more_padding = padding_count > prev_padding_count;
+	const bool require_more_padding = padding_count > prev_padding_count;
 
 	// If less padding is now required when compared to the previous padding count.
-	bool require_less_padding = padding_count < prev_padding_count;
+	const bool require_less_padding = padding_count < prev_padding_count;
 
 	// If there was only a single column before, and the new number of columns exceeds that.
-	bool single_column_before = max_columns_found < 2 && num_cols > max_columns_found * candidates.size();
+	const bool single_column_before = max_columns_found < 2 && num_cols > max_columns_found * candidates.size();
 
 	// If the number of rows is consistent with the calculated value after accounting for skipped rows and the
 	// start row.
-	bool rows_consistent =
+	const bool rows_consistent =
 	    consistent_rows + (dirty_notes_minus_comments - options.dialect_options.skip_rows.GetValue()) + comment_rows ==
 	    sniffed_column_counts.result_position - options.dialect_options.skip_rows.GetValue();
 	// If there are more than one consistent row.
-	bool more_than_one_row = consistent_rows > 1;
+	const bool more_than_one_row = consistent_rows > 1;
 
 	// If there are more than one column.
-	bool more_than_one_column = num_cols > 1;
+	const bool more_than_one_column = num_cols > 1;
 
 	// If the start position is valid.
-	bool start_good = !candidates.empty() &&
-	                  dirty_notes <= candidates.front()->GetStateMachine().dialect_options.skip_rows.GetValue();
+	const bool start_good = !candidates.empty() &&
+	                        dirty_notes <= candidates.front()->GetStateMachine().dialect_options.skip_rows.GetValue();
 
 	// If padding happened but it is not allowed.
-	bool invalid_padding = !allow_padding && padding_count > 0;
+	const bool invalid_padding = !allow_padding && padding_count > 0;
 
-	bool comments_are_acceptable = AreCommentsAcceptable(
+	const bool comments_are_acceptable = AreCommentsAcceptable(
 	    sniffed_column_counts, num_cols, options.dialect_options.state_machine_options.comment.IsSetByUser());
 
+	const bool quoted =
+	    scanner->ever_quoted &&
+	    sniffed_column_counts.state_machine.dialect_options.state_machine_options.quote.GetValue() != '\0';
+
+	// For our columns to match, we either don't have them manually set, or they match in value with the sniffed value
+	const bool columns_match_set =
+	    num_cols == set_columns.Size() ||
+	    (num_cols == set_columns.Size() + 1 && sniffed_column_counts[0].last_value_always_empty) ||
+	    !set_columns.IsSet();
+
 	// If rows are consistent and no invalid padding happens, this is the best suitable candidate if one of the
 	// following is valid:
 	// - There's a single column before.
 	// - There are more values and no additional padding is required.
 	// - There's more than one column and less padding is required.
-	if (rows_consistent &&
-	    (single_column_before || (more_values && !require_more_padding) ||
-	     (more_than_one_column && require_less_padding)) &&
+	if (columns_match_set && rows_consistent &&
+	    (single_column_before || ((more_values || more_columns) && !require_more_padding) ||
+	     (more_than_one_column && require_less_padding) || quoted) &&
 	    !invalid_padding && comments_are_acceptable) {
-		if (!candidates.empty() && set_columns.IsSet() && max_columns_found == candidates.size()) {
+		if (!candidates.empty() && set_columns.IsSet() && max_columns_found == set_columns.Size()) {
 			// We have a candidate that fits our requirements better
-			return;
+			if (candidates.front()->ever_quoted || !scanner->ever_quoted) {
+				return;
+			}
 		}
 		auto &sniffing_state_machine = scanner->GetStateMachine();
 
-		if (!candidates.empty() && candidates.front()->ever_quoted && !scanner->ever_quoted) {
+		if (!candidates.empty() && candidates.front()->ever_quoted) {
 			// Give preference to quoted boys.
-			return;
+			if (!scanner->ever_quoted) {
+				return;
+			} else {
+				// Give preference to one that got escaped
+				if (!scanner->ever_escaped && candidates.front()->ever_escaped) {
+					return;
+				}
+				if (best_consistent_rows == consistent_rows && num_cols >= max_columns_found) {
+					// If both have not been escaped, this might get solved later on.
+					sniffing_state_machine.dialect_options.num_cols = num_cols;
+					candidates.emplace_back(std::move(scanner));
+					max_columns_found = num_cols;
+					return;
+				}
+			}
 		}
 		if (max_columns_found == num_cols && ignored_rows > min_ignored_rows) {
 			return;
 		}
-
+		if (quoted && num_cols < max_columns_found) {
+			for (auto &candidate : candidates) {
+				if (candidate->ever_quoted) {
+					return;
+				}
+			}
+		}
 		best_consistent_rows = consistent_rows;
 		max_columns_found = num_cols;
 		prev_padding_count = padding_count;
@@ -369,18 +413,19 @@ void CSVSniffer::AnalyzeDialectCandidate(unique_ptr scanner,
 
 		candidates.clear();
 		sniffing_state_machine.dialect_options.num_cols = num_cols;
+		lines_sniffed = sniffed_column_counts.result_position;
 		candidates.emplace_back(std::move(scanner));
 		return;
 	}
 	// If there's more than one row and column, the start is good, rows are consistent,
 	// no additional padding is required, and there is no invalid padding, and there is not yet a candidate
 	// with the same quote, we add this state_machine as a suitable candidate.
-	if (more_than_one_row && more_than_one_column && start_good && rows_consistent && !require_more_padding &&
-	    !invalid_padding && num_cols == max_columns_found && comments_are_acceptable) {
+	if (columns_match_set && more_than_one_row && more_than_one_column && start_good && rows_consistent &&
+	    !require_more_padding && !invalid_padding && num_cols == max_columns_found && comments_are_acceptable) {
 		auto &sniffing_state_machine = scanner->GetStateMachine();
 
 		bool same_quote_is_candidate = false;
-		for (auto &candidate : candidates) {
+		for (const auto &candidate : candidates) {
 			if (sniffing_state_machine.dialect_options.state_machine_options.quote ==
 			    candidate->GetStateMachine().dialect_options.state_machine_options.quote) {
 				same_quote_is_candidate = true;
@@ -397,14 +442,14 @@ void CSVSniffer::AnalyzeDialectCandidate(unique_ptr scanner,
 			} else if (!options.null_padding) {
 				sniffing_state_machine.dialect_options.skip_rows = dirty_notes;
 			}
-
 			sniffing_state_machine.dialect_options.num_cols = num_cols;
+			lines_sniffed = sniffed_column_counts.result_position;
 			candidates.emplace_back(std::move(scanner));
 		}
 	}
 }
 
-bool CSVSniffer::RefineCandidateNextChunk(ColumnCountScanner &candidate) {
+bool CSVSniffer::RefineCandidateNextChunk(ColumnCountScanner &candidate) const {
 	auto &sniffed_column_counts = candidate.ParseChunk();
 	for (idx_t i = 0; i < sniffed_column_counts.result_position; i++) {
 		if (set_columns.IsSet()) {
@@ -431,24 +476,35 @@ void CSVSniffer::RefineCandidates() {
 		// Only one candidate nothing to refine or all candidates already checked
 		return;
 	}
-	vector> successful_candidates;
-	for (auto &cur_candidate : candidates) {
-		for (idx_t i = 1; i <= options.sample_size_chunks; i++) {
-			bool finished_file = cur_candidate->FinishedFile();
+
+	for (idx_t i = 1; i <= options.sample_size_chunks; i++) {
+		vector> successful_candidates;
+		bool done = false;
+		for (auto &cur_candidate : candidates) {
+			const bool finished_file = cur_candidate->FinishedFile();
+			if (successful_candidates.empty()) {
+				lines_sniffed += cur_candidate->GetResult().result_position;
+			}
 			if (finished_file || i == options.sample_size_chunks) {
 				// we finished the file or our chunk sample successfully
-				successful_candidates.push_back(std::move(cur_candidate));
-				break;
+				if (!cur_candidate->GetResult().error) {
+					successful_candidates.push_back(std::move(cur_candidate));
+				}
+				done = true;
+				continue;
 			}
-			if (!RefineCandidateNextChunk(*cur_candidate) || cur_candidate->GetResult().error) {
-				// This candidate failed, move to the next one
-				break;
+			if (RefineCandidateNextChunk(*cur_candidate) && !cur_candidate->GetResult().error) {
+				successful_candidates.push_back(std::move(cur_candidate));
 			}
 		}
+		candidates = std::move(successful_candidates);
+		if (done) {
+			break;
+		}
 	}
 	// If we have multiple candidates with quotes set, we will give the preference to ones
 	// that have actually quoted values, otherwise we will choose quotes = \0
-	candidates.clear();
+	vector> successful_candidates = std::move(candidates);
 	if (!successful_candidates.empty()) {
 		for (idx_t i = 0; i < successful_candidates.size(); i++) {
 			unique_ptr cc_best_candidate = std::move(successful_candidates[i]);
@@ -519,7 +575,7 @@ void CSVSniffer::DetectDialect() {
 	// if no dialect candidate was found, we throw an exception
 	if (candidates.empty()) {
 		auto error = CSVError::SniffingError(options, dialect_candidates.Print());
-		error_handler->Error(error);
+		error_handler->Error(error, true);
 	}
 }
 } // namespace duckdb
diff --git a/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp b/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp
index fd050400..9475f594 100644
--- a/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp
+++ b/src/duckdb/src/execution/operator/csv_scanner/sniffer/header_detection.cpp
@@ -1,5 +1,5 @@
 #include "duckdb/common/types/cast_helpers.hpp"
-#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp"
+#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp"
 #include "duckdb/execution/operator/csv_scanner/csv_reader_options.hpp"
 
 #include "utf8proc.hpp"
@@ -114,9 +114,9 @@ bool CSVSniffer::DetectHeaderWithSetColumn(ClientContext &context, vector
Error(error); + error_handler->Error(error, true); } // Assert that it's all good at this point. D_ASSERT(best_candidate && !best_format_candidates.empty()); diff --git a/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp b/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp index 43d69318..8d3e2684 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_refinement.cpp @@ -1,4 +1,4 @@ -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "duckdb/execution/operator/csv_scanner/csv_casting.hpp" namespace duckdb { diff --git a/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp b/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp index 34fa4146..a693144d 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/sniffer/type_replacement.cpp @@ -1,4 +1,4 @@ -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" namespace duckdb { void CSVSniffer::ReplaceTypes() { diff --git a/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp b/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp index 665c5b39..eae140f7 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine.cpp @@ -1,5 +1,5 @@ #include "duckdb/execution/operator/csv_scanner/csv_state_machine.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "utf8proc_wrapper.hpp" #include "duckdb/main/error_manager.hpp" #include "duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp" diff --git a/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp b/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp index 6c93cc93..fd85567f 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/state_machine/csv_state_machine_cache.cpp @@ -1,6 +1,6 @@ #include "duckdb/execution/operator/csv_scanner/csv_state_machine.hpp" #include "duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" namespace duckdb { @@ -22,15 +22,21 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op auto &transition_array = state_machine_cache[state_machine_options]; for (uint32_t i = 0; i < StateMachine::NUM_STATES; i++) { - CSVState cur_state = static_cast(i); + const auto cur_state = static_cast(i); switch (cur_state) { case CSVState::QUOTED: case CSVState::QUOTED_NEW_LINE: + case CSVState::ESCAPE: InitializeTransitionArray(transition_array, cur_state, CSVState::QUOTED); break; case CSVState::UNQUOTED: - case CSVState::ESCAPE: - InitializeTransitionArray(transition_array, cur_state, CSVState::INVALID); + if (state_machine_options.rfc_4180.GetValue()) { + // If we have an unquoted state, following rfc 4180, our base state is invalid + InitializeTransitionArray(transition_array, cur_state, CSVState::INVALID); + } else { + // This will allow us to accept unescaped quotes + InitializeTransitionArray(transition_array, cur_state, CSVState::UNQUOTED); + } break; case CSVState::COMMENT: InitializeTransitionArray(transition_array, cur_state, CSVState::COMMENT); @@ -41,49 +47,114 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op } } - uint8_t delimiter = static_cast(state_machine_options.delimiter.GetValue()); - uint8_t quote = static_cast(state_machine_options.quote.GetValue()); - uint8_t escape = static_cast(state_machine_options.escape.GetValue()); - uint8_t comment = static_cast(state_machine_options.comment.GetValue()); + const auto delimiter_value = state_machine_options.delimiter.GetValue(); + const auto delimiter_first_byte = static_cast(delimiter_value[0]); + const auto quote = static_cast(state_machine_options.quote.GetValue()); + const auto escape = static_cast(state_machine_options.escape.GetValue()); + const auto comment = static_cast(state_machine_options.comment.GetValue()); + + const auto new_line_id = state_machine_options.new_line.GetValue(); - auto new_line_id = state_machine_options.new_line.GetValue(); + const bool multi_byte_delimiter = delimiter_value.size() != 1; + bool enable_unquoted_escape = state_machine_options.rfc_4180.GetValue() == false && + state_machine_options.quote != state_machine_options.escape && + state_machine_options.escape != '\0'; // Now set values depending on configuration // 1) Standard/Invalid State - vector std_inv {static_cast(CSVState::STANDARD), static_cast(CSVState::INVALID)}; + vector std_inv {static_cast(CSVState::STANDARD), static_cast(CSVState::INVALID), + static_cast(CSVState::STANDARD_NEWLINE)}; for (auto &state : std_inv) { - transition_array[delimiter][state] = CSVState::DELIMITER; - transition_array[static_cast('\n')][state] = CSVState::RECORD_SEPARATOR; + if (multi_byte_delimiter) { + transition_array[delimiter_first_byte][state] = CSVState::DELIMITER_FIRST_BYTE; + } else { + transition_array[delimiter_first_byte][state] = CSVState::DELIMITER; + } if (new_line_id == NewLineIdentifier::CARRY_ON) { transition_array[static_cast('\r')][state] = CSVState::CARRIAGE_RETURN; + if (state == static_cast(CSVState::STANDARD_NEWLINE)) { + transition_array[static_cast('\n')][state] = CSVState::STANDARD; + } else { + transition_array[static_cast('\n')][state] = CSVState::RECORD_SEPARATOR; + } } else { transition_array[static_cast('\r')][state] = CSVState::RECORD_SEPARATOR; + transition_array[static_cast('\n')][state] = CSVState::RECORD_SEPARATOR; } if (comment != '\0') { transition_array[comment][state] = CSVState::COMMENT; } + if (enable_unquoted_escape) { + transition_array[escape][state] = CSVState::UNQUOTED_ESCAPE; + } } // 2) Field Separator State - transition_array[delimiter][static_cast(CSVState::DELIMITER)] = CSVState::DELIMITER; - transition_array[static_cast('\n')][static_cast(CSVState::DELIMITER)] = - CSVState::RECORD_SEPARATOR; - if (new_line_id == NewLineIdentifier::CARRY_ON) { - transition_array[static_cast('\r')][static_cast(CSVState::DELIMITER)] = - CSVState::CARRIAGE_RETURN; - } else { - transition_array[static_cast('\r')][static_cast(CSVState::DELIMITER)] = - CSVState::RECORD_SEPARATOR; - } transition_array[quote][static_cast(CSVState::DELIMITER)] = CSVState::QUOTED; - if (delimiter != ' ') { + if (delimiter_first_byte != ' ') { transition_array[' '][static_cast(CSVState::DELIMITER)] = CSVState::EMPTY_SPACE; } - if (comment != '\0') { - transition_array[comment][static_cast(CSVState::DELIMITER)] = CSVState::COMMENT; + + vector delimiter_states { + static_cast(CSVState::DELIMITER), static_cast(CSVState::DELIMITER_FIRST_BYTE), + static_cast(CSVState::DELIMITER_SECOND_BYTE), static_cast(CSVState::DELIMITER_THIRD_BYTE)}; + + // These are the same transitions for all delimiter states + for (auto &state : delimiter_states) { + if (multi_byte_delimiter) { + transition_array[delimiter_first_byte][state] = CSVState::DELIMITER_FIRST_BYTE; + } else { + transition_array[delimiter_first_byte][state] = CSVState::DELIMITER; + } + transition_array[static_cast('\n')][state] = CSVState::RECORD_SEPARATOR; + if (new_line_id == NewLineIdentifier::CARRY_ON) { + transition_array[static_cast('\r')][state] = CSVState::CARRIAGE_RETURN; + } else { + transition_array[static_cast('\r')][state] = CSVState::RECORD_SEPARATOR; + } + if (comment != '\0') { + transition_array[comment][static_cast(CSVState::DELIMITER)] = CSVState::COMMENT; + } + } + // Deal other multi-byte delimiters + if (delimiter_value.size() == 2) { + transition_array[static_cast(delimiter_value[1])] + [static_cast(CSVState::DELIMITER_FIRST_BYTE)] = CSVState::DELIMITER; + } else if (delimiter_value.size() == 3) { + if (delimiter_value[0] == delimiter_value[1]) { + transition_array[static_cast(delimiter_value[1])] + [static_cast(CSVState::DELIMITER_SECOND_BYTE)] = CSVState::DELIMITER_SECOND_BYTE; + } + transition_array[static_cast(delimiter_value[1])] + [static_cast(CSVState::DELIMITER_FIRST_BYTE)] = CSVState::DELIMITER_SECOND_BYTE; + transition_array[static_cast(delimiter_value[2])] + [static_cast(CSVState::DELIMITER_SECOND_BYTE)] = CSVState::DELIMITER; + } else if (delimiter_value.size() == 4) { + if (delimiter_value[0] == delimiter_value[2]) { + transition_array[static_cast(delimiter_value[1])] + [static_cast(CSVState::DELIMITER_THIRD_BYTE)] = CSVState::DELIMITER_SECOND_BYTE; + } + if (delimiter_value[0] == delimiter_value[1] && delimiter_value[1] == delimiter_value[2]) { + transition_array[static_cast(delimiter_value[1])] + [static_cast(CSVState::DELIMITER_THIRD_BYTE)] = CSVState::DELIMITER_THIRD_BYTE; + } + transition_array[static_cast(delimiter_value[1])] + [static_cast(CSVState::DELIMITER_FIRST_BYTE)] = CSVState::DELIMITER_SECOND_BYTE; + transition_array[static_cast(delimiter_value[2])] + [static_cast(CSVState::DELIMITER_SECOND_BYTE)] = CSVState::DELIMITER_THIRD_BYTE; + transition_array[static_cast(delimiter_value[3])] + [static_cast(CSVState::DELIMITER_THIRD_BYTE)] = CSVState::DELIMITER; + } + if (enable_unquoted_escape) { + transition_array[escape][static_cast(CSVState::DELIMITER)] = CSVState::UNQUOTED_ESCAPE; } // 3) Record Separator State - transition_array[delimiter][static_cast(CSVState::RECORD_SEPARATOR)] = CSVState::DELIMITER; + if (multi_byte_delimiter) { + transition_array[delimiter_first_byte][static_cast(CSVState::RECORD_SEPARATOR)] = + CSVState::DELIMITER_FIRST_BYTE; + } else { + transition_array[delimiter_first_byte][static_cast(CSVState::RECORD_SEPARATOR)] = CSVState::DELIMITER; + } transition_array[static_cast('\n')][static_cast(CSVState::RECORD_SEPARATOR)] = CSVState::RECORD_SEPARATOR; if (new_line_id == NewLineIdentifier::CARRY_ON) { @@ -94,12 +165,15 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op CSVState::RECORD_SEPARATOR; } transition_array[quote][static_cast(CSVState::RECORD_SEPARATOR)] = CSVState::QUOTED; - if (delimiter != ' ') { + if (delimiter_first_byte != ' ') { transition_array[' '][static_cast(CSVState::RECORD_SEPARATOR)] = CSVState::EMPTY_SPACE; } if (comment != '\0') { transition_array[comment][static_cast(CSVState::RECORD_SEPARATOR)] = CSVState::COMMENT; } + if (enable_unquoted_escape) { + transition_array[escape][static_cast(CSVState::RECORD_SEPARATOR)] = CSVState::UNQUOTED_ESCAPE; + } // 4) Carriage Return State transition_array[static_cast('\n')][static_cast(CSVState::CARRIAGE_RETURN)] = @@ -107,19 +181,23 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op transition_array[static_cast('\r')][static_cast(CSVState::CARRIAGE_RETURN)] = CSVState::CARRIAGE_RETURN; transition_array[quote][static_cast(CSVState::CARRIAGE_RETURN)] = CSVState::QUOTED; - if (delimiter != ' ') { + if (delimiter_first_byte != ' ') { transition_array[' '][static_cast(CSVState::CARRIAGE_RETURN)] = CSVState::EMPTY_SPACE; } if (comment != '\0') { transition_array[comment][static_cast(CSVState::CARRIAGE_RETURN)] = CSVState::COMMENT; } + if (enable_unquoted_escape) { + transition_array[escape][static_cast(CSVState::CARRIAGE_RETURN)] = CSVState::UNQUOTED_ESCAPE; + } // 5) Quoted State transition_array[quote][static_cast(CSVState::QUOTED)] = CSVState::UNQUOTED; transition_array['\n'][static_cast(CSVState::QUOTED)] = CSVState::QUOTED_NEW_LINE; transition_array['\r'][static_cast(CSVState::QUOTED)] = CSVState::QUOTED_NEW_LINE; - if (state_machine_options.quote != state_machine_options.escape) { + if (state_machine_options.quote != state_machine_options.escape && + state_machine_options.escape.GetValue() != '\0') { transition_array[escape][static_cast(CSVState::QUOTED)] = CSVState::ESCAPE; } // 6) Unquoted State @@ -131,19 +209,29 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op transition_array[static_cast('\r')][static_cast(CSVState::UNQUOTED)] = CSVState::RECORD_SEPARATOR; } - transition_array[delimiter][static_cast(CSVState::UNQUOTED)] = CSVState::DELIMITER; + if (multi_byte_delimiter) { + transition_array[delimiter_first_byte][static_cast(CSVState::UNQUOTED)] = + CSVState::DELIMITER_FIRST_BYTE; + } else { + transition_array[delimiter_first_byte][static_cast(CSVState::UNQUOTED)] = CSVState::DELIMITER; + } if (state_machine_options.quote == state_machine_options.escape) { - transition_array[escape][static_cast(CSVState::UNQUOTED)] = CSVState::QUOTED; + transition_array[quote][static_cast(CSVState::UNQUOTED)] = CSVState::QUOTED; + } + if (state_machine_options.escape == '\0' && state_machine_options.rfc_4180 == false) { + transition_array[quote][static_cast(CSVState::UNQUOTED)] = CSVState::QUOTED; } if (comment != '\0') { transition_array[comment][static_cast(CSVState::UNQUOTED)] = CSVState::COMMENT; } - // 7) Escaped State - transition_array[quote][static_cast(CSVState::ESCAPE)] = CSVState::QUOTED; - transition_array[escape][static_cast(CSVState::ESCAPE)] = CSVState::QUOTED; // 8) Not Set - transition_array[delimiter][static_cast(CSVState::NOT_SET)] = CSVState::DELIMITER; + if (multi_byte_delimiter) { + transition_array[delimiter_first_byte][static_cast(CSVState::NOT_SET)] = + CSVState::DELIMITER_FIRST_BYTE; + } else { + transition_array[delimiter_first_byte][static_cast(CSVState::NOT_SET)] = CSVState::DELIMITER; + } transition_array[static_cast('\n')][static_cast(CSVState::NOT_SET)] = CSVState::RECORD_SEPARATOR; if (new_line_id == NewLineIdentifier::CARRY_ON) { transition_array[static_cast('\r')][static_cast(CSVState::NOT_SET)] = @@ -153,20 +241,30 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op CSVState::RECORD_SEPARATOR; } transition_array[quote][static_cast(CSVState::NOT_SET)] = CSVState::QUOTED; - if (delimiter != ' ') { + if (delimiter_first_byte != ' ') { transition_array[' '][static_cast(CSVState::NOT_SET)] = CSVState::EMPTY_SPACE; } if (comment != '\0') { transition_array[comment][static_cast(CSVState::NOT_SET)] = CSVState::COMMENT; } + if (enable_unquoted_escape) { + transition_array[escape][static_cast(CSVState::NOT_SET)] = CSVState::UNQUOTED_ESCAPE; + } + // 9) Quoted NewLine transition_array[quote][static_cast(CSVState::QUOTED_NEW_LINE)] = CSVState::UNQUOTED; - if (state_machine_options.quote != state_machine_options.escape) { + if (state_machine_options.quote != state_machine_options.escape && + state_machine_options.escape.GetValue() != '\0') { transition_array[escape][static_cast(CSVState::QUOTED_NEW_LINE)] = CSVState::ESCAPE; } // 10) Empty Value State (Not first value) - transition_array[delimiter][static_cast(CSVState::EMPTY_SPACE)] = CSVState::DELIMITER; + if (multi_byte_delimiter) { + transition_array[delimiter_first_byte][static_cast(CSVState::EMPTY_SPACE)] = + CSVState::DELIMITER_FIRST_BYTE; + } else { + transition_array[delimiter_first_byte][static_cast(CSVState::EMPTY_SPACE)] = CSVState::DELIMITER; + } transition_array[static_cast('\n')][static_cast(CSVState::EMPTY_SPACE)] = CSVState::RECORD_SEPARATOR; if (new_line_id == NewLineIdentifier::CARRY_ON) { @@ -180,6 +278,9 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op if (comment != '\0') { transition_array[comment][static_cast(CSVState::EMPTY_SPACE)] = CSVState::COMMENT; } + if (enable_unquoted_escape) { + transition_array[escape][static_cast(CSVState::EMPTY_SPACE)] = CSVState::UNQUOTED_ESCAPE; + } // 11) Comment State transition_array[static_cast('\n')][static_cast(CSVState::COMMENT)] = CSVState::RECORD_SEPARATOR; @@ -191,6 +292,33 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op CSVState::RECORD_SEPARATOR; } + // 12) Unquoted Escape State + if (enable_unquoted_escape) { + // Any character can be escaped, so default to STANDARD + if (new_line_id == NewLineIdentifier::CARRY_ON) { + transition_array[static_cast('\r')][static_cast(CSVState::UNQUOTED_ESCAPE)] = + CSVState::ESCAPED_RETURN; + } + } + + // 13) Escaped Return State + if (enable_unquoted_escape && new_line_id == NewLineIdentifier::CARRY_ON) { + // The new state is STANDARD for \r + \n and \r + ordinary character. + // Other special characters need to be handled. + transition_array[delimiter_first_byte][static_cast(CSVState::ESCAPED_RETURN)] = CSVState::DELIMITER; + if (new_line_id == NewLineIdentifier::CARRY_ON) { + transition_array[static_cast('\r')][static_cast(CSVState::ESCAPED_RETURN)] = + CSVState::CARRIAGE_RETURN; + } else { + transition_array[static_cast('\r')][static_cast(CSVState::ESCAPED_RETURN)] = + CSVState::RECORD_SEPARATOR; + } + if (comment != '\0') { + transition_array[comment][static_cast(CSVState::ESCAPED_RETURN)] = CSVState::COMMENT; + } + transition_array[escape][static_cast(CSVState::ESCAPED_RETURN)] = CSVState::UNQUOTED_ESCAPE; + } + // Initialize characters we can skip during processing, for Standard and Quoted states for (idx_t i = 0; i < StateMachine::NUM_TRANSITIONS; i++) { transition_array.skip_standard[i] = true; @@ -198,10 +326,13 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op transition_array.skip_comment[i] = true; } // For standard states we only care for delimiters \r and \n - transition_array.skip_standard[delimiter] = false; + transition_array.skip_standard[delimiter_first_byte] = false; transition_array.skip_standard[static_cast('\n')] = false; transition_array.skip_standard[static_cast('\r')] = false; transition_array.skip_standard[comment] = false; + if (enable_unquoted_escape) { + transition_array.skip_standard[escape] = false; + } // For quoted we only care about quote, escape and for delimiters \r and \n transition_array.skip_quoted[quote] = false; @@ -212,7 +343,7 @@ void CSVStateMachineCache::Insert(const CSVStateMachineOptions &state_machine_op transition_array.skip_comment[static_cast('\r')] = false; transition_array.skip_comment[static_cast('\n')] = false; - transition_array.delimiter = delimiter; + transition_array.delimiter = delimiter_first_byte; transition_array.new_line = static_cast('\n'); transition_array.carriage_return = static_cast('\r'); transition_array.quote = quote; @@ -241,9 +372,11 @@ CSVStateMachineCache::CSVStateMachineCache() { const auto &escape_candidates = default_escape[static_cast(quote_rule)]; for (const auto &escape : escape_candidates) { for (const auto &comment : default_comment) { - Insert({delimiter, quote, escape, comment, NewLineIdentifier::SINGLE_N}); - Insert({delimiter, quote, escape, comment, NewLineIdentifier::SINGLE_R}); - Insert({delimiter, quote, escape, comment, NewLineIdentifier::CARRY_ON}); + for (const bool rfc_4180 : {true, false}) { + Insert({delimiter, quote, escape, comment, NewLineIdentifier::SINGLE_N, rfc_4180}); + Insert({delimiter, quote, escape, comment, NewLineIdentifier::SINGLE_R, rfc_4180}); + Insert({delimiter, quote, escape, comment, NewLineIdentifier::CARRY_ON, rfc_4180}); + } } } } diff --git a/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp b/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp index e3589486..01864128 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/table_function/csv_file_scanner.cpp @@ -1,6 +1,6 @@ #include "duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "duckdb/execution/operator/csv_scanner/skip_scanner.hpp" #include "duckdb/function/table/read_csv.hpp" @@ -10,7 +10,7 @@ CSVUnionData::~CSVUnionData() { CSVFileScan::CSVFileScan(ClientContext &context, shared_ptr buffer_manager_p, shared_ptr state_machine_p, const CSVReaderOptions &options_p, - const ReadCSVData &bind_data, const vector &column_ids, CSVSchema &file_schema) + const ReadCSVData &bind_data, const vector &column_ids, CSVSchema &file_schema) : file_path(options_p.file_path), file_idx(0), buffer_manager(std::move(buffer_manager_p)), state_machine(std::move(state_machine_p)), file_size(buffer_manager->file_handle->FileSize()), error_handler(make_shared_ptr(options_p.ignore_errors.GetValue())), @@ -60,7 +60,7 @@ void CSVFileScan::SetStart() { } CSVFileScan::CSVFileScan(ClientContext &context, const string &file_path_p, const CSVReaderOptions &options_p, - const idx_t file_idx_p, const ReadCSVData &bind_data, const vector &column_ids, + const idx_t file_idx_p, const ReadCSVData &bind_data, const vector &column_ids, CSVSchema &file_schema, bool per_file_single_threaded) : file_path(file_path_p), file_idx(file_idx_p), error_handler(make_shared_ptr(options_p.ignore_errors.GetValue())), options(options_p) { @@ -125,7 +125,7 @@ CSVFileScan::CSVFileScan(ClientContext &context, const string &file_path_p, cons if (file_schema.Empty()) { CSVSniffer sniffer(options, buffer_manager, state_machine_cache); auto result = sniffer.SniffCSV(); - file_schema.Initialize(result.names, result.return_types, options.file_path); + file_schema.Initialize(bind_data.csv_names, bind_data.csv_types, options.file_path); } else if (file_idx > 0 && buffer_manager->file_handle->FileSize() > 0) { options.file_path = file_path; CSVSniffer sniffer(options, buffer_manager, state_machine_cache, false); diff --git a/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp b/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp index 4f3e9dce..18772aad 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/table_function/global_csv_state.cpp @@ -1,6 +1,6 @@ #include "duckdb/execution/operator/csv_scanner/global_csv_state.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "duckdb/execution/operator/csv_scanner/scanner_boundary.hpp" #include "duckdb/execution/operator/csv_scanner/skip_scanner.hpp" #include "duckdb/execution/operator/persistent/csv_rejects_table.hpp" @@ -11,7 +11,7 @@ namespace duckdb { CSVGlobalState::CSVGlobalState(ClientContext &context_p, const shared_ptr &buffer_manager, const CSVReaderOptions &options, idx_t system_threads_p, const vector &files, - vector column_ids_p, const ReadCSVData &bind_data_p) + vector column_ids_p, const ReadCSVData &bind_data_p) : context(context_p), system_threads(system_threads_p), column_ids(std::move(column_ids_p)), sniffer_mismatch_error(options.sniffer_user_mismatch_error), bind_data(bind_data_p) { @@ -25,7 +25,12 @@ CSVGlobalState::CSVGlobalState(ClientContext &context_p, const shared_ptr(context, files[0], options, 0U, bind_data, column_ids, file_schema, false)); - }; + } + idx_t cur_file_idx = 0; + while (file_scans.back()->start_iterator.done && file_scans.size() < files.size()) { + file_scans.emplace_back(make_uniq(context, files[++cur_file_idx], options, cur_file_idx, bind_data, + column_ids, file_schema, false)); + } // There are situations where we only support single threaded scanning bool many_csv_files = files.size() > 1 && files.size() > system_threads * 2; single_threaded = many_csv_files || !options.parallel; @@ -75,6 +80,12 @@ double CSVGlobalState::GetProgress(const ReadCSVData &bind_data_p) const { } unique_ptr CSVGlobalState::Next(optional_ptr previous_scanner) { + if (previous_scanner) { + // We have to insert information for validation + lock_guard parallel_lock(main_mutex); + validator.Insert(previous_scanner->csv_file_scan->file_idx, previous_scanner->scanner_idx, + previous_scanner->GetValidationLine()); + } if (single_threaded) { idx_t cur_idx; bool empty_file = false; @@ -183,7 +194,13 @@ void CSVGlobalState::DecrementThread() { D_ASSERT(running_threads > 0); running_threads--; if (running_threads == 0) { - for (auto &file : file_scans) { + bool ignore_or_store_errors = + bind_data.options.ignore_errors.GetValue() || bind_data.options.store_rejects.GetValue(); + if (!single_threaded && !ignore_or_store_errors) { + // If we are running multithreaded and not ignoring errors, we must run the validator + validator.Verify(); + } + for (const auto &file : file_scans) { file->error_handler->ErrorIfNeeded(); } FillRejectsTable(); diff --git a/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp b/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp index d382fdd3..0aa0afa4 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/util/csv_error.cpp @@ -84,6 +84,11 @@ bool CSVErrorHandler::AnyErrors() { return !errors.empty(); } +void CSVErrorHandler::SetIgnoreErrors(bool ignore_errors_p) { + lock_guard parallel_lock(main_mutex); + ignore_errors = ignore_errors_p; +} + CSVError::CSVError(string error_message_p, CSVErrorType type_p, LinesPerBoundary error_info_p) : error_message(std::move(error_message_p)), type(type_p), error_info(error_info_p) { } @@ -175,7 +180,7 @@ CSVError CSVError::LineSizeError(const CSVReaderOptions &options, idx_t actual_s } CSVError CSVError::HeaderSniffingError(const CSVReaderOptions &options, const vector &best_header_row, - idx_t column_count, char delimiter) { + const idx_t column_count, const string &delimiter) { std::ostringstream error; // 1. Which file error << "Error when sniffing file \"" << options.file_path << "\"." << '\n'; @@ -304,7 +309,7 @@ CSVError CSVError::UnterminatedQuotesError(const CSVReaderOptions &options, idx_ std::ostringstream how_to_fix_it; how_to_fix_it << "Possible fixes:" << '\n'; how_to_fix_it << "* Enable ignore errors (ignore_errors=true) to skip this row" << '\n'; - how_to_fix_it << "* Set quote do empty or to a different value (e.g., quote=\'\')" << '\n'; + how_to_fix_it << "* Set quote to empty or to a different value (e.g., quote=\'\')" << '\n'; return CSVError(error.str(), UNTERMINATED_QUOTES, current_column, csv_row, error_info, row_byte_position, byte_position, options, how_to_fix_it.str(), current_path); } diff --git a/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp b/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp index 21f910ec..4cf65382 100644 --- a/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp +++ b/src/duckdb/src/execution/operator/csv_scanner/util/csv_reader_options.cpp @@ -4,9 +4,20 @@ #include "duckdb/common/string_util.hpp" #include "duckdb/common/enum_util.hpp" #include "duckdb/common/multi_file_reader.hpp" +#include "duckdb/common/set.hpp" namespace duckdb { +CSVReaderOptions::CSVReaderOptions(CSVOption single_byte_delimiter, + const CSVOption &multi_byte_delimiter) { + if (multi_byte_delimiter.GetValue().empty()) { + char single_byte_value = single_byte_delimiter.GetValue(); + string value(1, single_byte_value); + dialect_options.state_machine_options.delimiter = value; + } else { + dialect_options.state_machine_options.delimiter = multi_byte_delimiter; + } +} static bool ParseBoolean(const Value &value, const string &loption); static bool ParseBoolean(const vector &set, const string &loption) { @@ -101,18 +112,18 @@ void CSVReaderOptions::SetSkipRows(int64_t skip_rows) { } string CSVReaderOptions::GetDelimiter() const { - return std::string(1, this->dialect_options.state_machine_options.delimiter.GetValue()); + return this->dialect_options.state_machine_options.delimiter.GetValue(); } void CSVReaderOptions::SetDelimiter(const string &input) { auto delim_str = StringUtil::Replace(input, "\\t", "\t"); - if (delim_str.size() > 1) { - throw InvalidInputException("The delimiter option cannot exceed a size of 1 byte."); + if (delim_str.size() > 4) { + throw InvalidInputException("The delimiter option cannot exceed a size of 4 bytes."); } if (input.empty()) { delim_str = string("\0", 1); } - this->dialect_options.state_machine_options.delimiter.Set(delim_str[0]); + this->dialect_options.state_machine_options.delimiter.Set(delim_str); } string CSVReaderOptions::GetQuote() const { @@ -172,10 +183,26 @@ void CSVReaderOptions::SetNewline(const string &input) { } } +bool CSVReaderOptions::GetRFC4180() const { + return this->dialect_options.state_machine_options.rfc_4180.GetValue(); +} + +void CSVReaderOptions::SetRFC4180(bool input) { + this->dialect_options.state_machine_options.rfc_4180.Set(input); +} + bool CSVReaderOptions::IgnoreErrors() const { return ignore_errors.GetValue() && !store_rejects.GetValue(); } +char CSVReaderOptions::GetSingleByteDelimiter() const { + return dialect_options.state_machine_options.delimiter.GetValue()[0]; +} + +string CSVReaderOptions::GetMultiByteDelimiter() const { + return dialect_options.state_machine_options.delimiter.GetValue(); +} + void CSVReaderOptions::SetDateFormat(LogicalTypeId type, const string &format, bool read_format) { string error; if (read_format) { @@ -273,6 +300,8 @@ void CSVReaderOptions::SetReadOption(const string &loption, const Value &value, throw BinderException("Unsupported parameter for REJECTS_LIMIT: cannot be negative"); } rejects_limit = NumericCast(limit); + } else if (loption == "encoding") { + encoding = ParseString(value, loption); } else { throw BinderException("Unrecognized option for CSV reader \"%s\"", loption); } @@ -370,13 +399,10 @@ bool CSVReaderOptions::SetBaseOption(const string &loption, const Value &value, throw BinderException("CSV Writer function option %s only accepts one nullstr value.", loption); } - } else if (loption == "encoding") { - auto encoding = StringUtil::Lower(ParseString(value, loption)); - if (encoding != "utf8" && encoding != "utf-8") { - throw BinderException("Copy is only supported for UTF-8 encoded files, ENCODING 'UTF-8'"); - } } else if (loption == "compression") { SetCompression(ParseString(value, loption)); + } else if (loption == "rfc_4180") { + SetRFC4180(ParseBoolean(value, loption)); } else { // unrecognized option in base CSV return false; @@ -385,9 +411,10 @@ bool CSVReaderOptions::SetBaseOption(const string &loption, const Value &value, } template -string FormatOptionLine(const string &name, const CSVOption option) { +string FormatOptionLine(const string &name, const CSVOption &option) { return name + " = " + option.FormatValue() + " " + option.FormatSet() + "\n "; } + bool CSVReaderOptions::WasTypeManuallySet(idx_t i) const { if (i >= was_type_manually_set.size()) { return false; @@ -401,10 +428,11 @@ string CSVReaderOptions::ToString(const string ¤t_file_path) const { auto &escape = dialect_options.state_machine_options.escape; auto &comment = dialect_options.state_machine_options.comment; auto &new_line = dialect_options.state_machine_options.new_line; + auto &rfc_4180 = dialect_options.state_machine_options.rfc_4180; auto &skip_rows = dialect_options.skip_rows; auto &header = dialect_options.header; - string error = " file=" + current_file_path + "\n "; + string error = " file = " + current_file_path + "\n "; // Let's first print options that can either be set by the user or by the sniffer // delimiter error += FormatOptionLine("delimiter", delimiter); @@ -420,6 +448,8 @@ string CSVReaderOptions::ToString(const string ¤t_file_path) const { error += FormatOptionLine("skip_rows", skip_rows); // comment error += FormatOptionLine("comment", comment); + // rfc_4180 + error += FormatOptionLine("rfc_4180", rfc_4180); // date format error += FormatOptionLine("date_format", dialect_options.date_format.at(LogicalType::DATE)); // timestamp format @@ -427,13 +457,13 @@ string CSVReaderOptions::ToString(const string ¤t_file_path) const { // Now we do options that can only be set by the user, that might hold some general significance // null padding - error += "null_padding=" + std::to_string(null_padding) + "\n "; + error += "null_padding = " + std::to_string(null_padding) + "\n "; // sample_size - error += "sample_size=" + std::to_string(sample_size_chunks * STANDARD_VECTOR_SIZE) + "\n "; + error += "sample_size = " + std::to_string(sample_size_chunks * STANDARD_VECTOR_SIZE) + "\n "; // ignore_errors - error += "ignore_errors=" + ignore_errors.FormatValue() + "\n "; + error += "ignore_errors = " + ignore_errors.FormatValue() + "\n "; // all_varchar - error += "all_varchar=" + std::to_string(all_varchar) + "\n"; + error += "all_varchar = " + std::to_string(all_varchar) + "\n"; // Add information regarding sniffer mismatches (if any) error += sniffer_user_mismatch_error; @@ -446,21 +476,21 @@ static Value StringVectorToValue(const vector &vec) { for (auto &item : vec) { content.push_back(Value(item)); } - return Value::LIST(std::move(content)); + return Value::LIST(LogicalType::VARCHAR, std::move(content)); } static uint8_t GetCandidateSpecificity(const LogicalType &candidate_type) { //! Const ht with accepted auto_types and their weights in specificity const duckdb::unordered_map auto_type_candidates_specificity { - {(uint8_t)LogicalTypeId::VARCHAR, 0}, {(uint8_t)LogicalTypeId::DOUBLE, 1}, - {(uint8_t)LogicalTypeId::FLOAT, 2}, {(uint8_t)LogicalTypeId::DECIMAL, 3}, - {(uint8_t)LogicalTypeId::BIGINT, 4}, {(uint8_t)LogicalTypeId::INTEGER, 5}, - {(uint8_t)LogicalTypeId::SMALLINT, 6}, {(uint8_t)LogicalTypeId::TINYINT, 7}, - {(uint8_t)LogicalTypeId::TIMESTAMP, 8}, {(uint8_t)LogicalTypeId::DATE, 9}, - {(uint8_t)LogicalTypeId::TIME, 10}, {(uint8_t)LogicalTypeId::BOOLEAN, 11}, - {(uint8_t)LogicalTypeId::SQLNULL, 12}}; - - auto id = (uint8_t)candidate_type.id(); + {static_cast(LogicalTypeId::VARCHAR), 0}, {static_cast(LogicalTypeId::DOUBLE), 1}, + {static_cast(LogicalTypeId::FLOAT), 2}, {static_cast(LogicalTypeId::DECIMAL), 3}, + {static_cast(LogicalTypeId::BIGINT), 4}, {static_cast(LogicalTypeId::INTEGER), 5}, + {static_cast(LogicalTypeId::SMALLINT), 6}, {static_cast(LogicalTypeId::TINYINT), 7}, + {static_cast(LogicalTypeId::TIMESTAMP), 8}, {static_cast(LogicalTypeId::DATE), 9}, + {static_cast(LogicalTypeId::TIME), 10}, {static_cast(LogicalTypeId::BOOLEAN), 11}, + {static_cast(LogicalTypeId::SQLNULL), 12}}; + + auto id = static_cast(candidate_type.id()); auto it = auto_type_candidates_specificity.find(id); if (it == auto_type_candidates_specificity.end()) { throw BinderException("Auto Type Candidate of type %s is not accepted as a valid input", @@ -468,7 +498,7 @@ static uint8_t GetCandidateSpecificity(const LogicalType &candidate_type) { } return it->second; } -bool StoreUserDefinedParameter(string &option) { +bool StoreUserDefinedParameter(const string &option) { if (option == "column_types" || option == "types" || option == "dtypes" || option == "auto_detect" || option == "auto_type_candidates" || option == "columns" || option == "names") { // We don't store options related to types, names and auto-detection since these are either irrelevant to our @@ -477,20 +507,49 @@ bool StoreUserDefinedParameter(string &option) { } return true; } -void CSVReaderOptions::FromNamedParameters(named_parameter_map_t &in, ClientContext &context) { + +void CSVReaderOptions::Verify() { + if (rejects_table_name.IsSetByUser() && !store_rejects.GetValue() && store_rejects.IsSetByUser()) { + throw BinderException("REJECTS_TABLE option is only supported when store_rejects is not manually set to false"); + } + if (rejects_scan_name.IsSetByUser() && !store_rejects.GetValue() && store_rejects.IsSetByUser()) { + throw BinderException("REJECTS_SCAN option is only supported when store_rejects is not manually set to false"); + } + if (rejects_scan_name.IsSetByUser() || rejects_table_name.IsSetByUser()) { + // Ensure we set store_rejects to true automagically + store_rejects.Set(true, false); + } + // Validate rejects_table options + if (store_rejects.GetValue()) { + if (!ignore_errors.GetValue() && ignore_errors.IsSetByUser()) { + throw BinderException( + "STORE_REJECTS option is only supported when IGNORE_ERRORS is not manually set to false"); + } + // Ensure we set ignore errors to true automagically + ignore_errors.Set(true, false); + if (file_options.union_by_name) { + throw BinderException("REJECTS_TABLE option is not supported when UNION_BY_NAME is set to true"); + } + } + if (rejects_limit != 0 && !store_rejects.GetValue()) { + throw BinderException("REJECTS_LIMIT option is only supported when REJECTS_TABLE is set to a table name"); + } +} + +void CSVReaderOptions::FromNamedParameters(const named_parameter_map_t &in, ClientContext &context) { map ordered_user_defined_parameters; for (auto &kv : in) { if (MultiFileReader().ParseOption(kv.first, kv.second, file_options, context)) { continue; } auto loption = StringUtil::Lower(kv.first); - // skip variables that are specific to auto detection + // skip variables that are specific to auto-detection if (StoreUserDefinedParameter(loption)) { ordered_user_defined_parameters[loption] = kv.second.ToSQLString(); } if (loption == "columns") { if (!name_list.empty()) { - throw BinderException("read_csv_auto column_names/names can only be supplied once"); + throw BinderException("read_csv column_names/names can only be supplied once"); } columns_set = true; auto &child_type = kv.second.type(); @@ -539,23 +598,40 @@ void CSVReaderOptions::FromNamedParameters(named_parameter_map_t &in, ClientCont auto_type_candidates.emplace_back(candidate_type.second); } } else if (loption == "column_names" || loption == "names") { + unordered_set column_names; if (!name_list.empty()) { - throw BinderException("read_csv_auto column_names/names can only be supplied once"); + throw BinderException("read_csv column_names/names can only be supplied once"); } if (kv.second.IsNull()) { - throw BinderException("read_csv_auto %s cannot be NULL", kv.first); + throw BinderException("read_csv %s cannot be NULL", kv.first); } auto &children = ListValue::GetChildren(kv.second); for (auto &child : children) { name_list.push_back(StringValue::Get(child)); } + for (auto &name : name_list) { + bool empty = true; + for (auto &c : name) { + if (!StringUtil::CharacterIsSpace(c)) { + empty = false; + break; + } + } + if (empty) { + throw BinderException("read_csv %s cannot have empty (or all whitespace) value", kv.first); + } + if (column_names.find(name) != column_names.end()) { + throw BinderException("read_csv %s must have unique values. \"%s\" is repeated.", kv.first, name); + } + column_names.insert(name); + } } else if (loption == "column_types" || loption == "types" || loption == "dtypes") { auto &child_type = kv.second.type(); if (child_type.id() != LogicalTypeId::STRUCT && child_type.id() != LogicalTypeId::LIST) { - throw BinderException("read_csv_auto %s requires a struct or list as input", kv.first); + throw BinderException("read_csv %s requires a struct or list as input", kv.first); } if (!sql_type_list.empty()) { - throw BinderException("read_csv_auto column_types/types/dtypes can only be supplied once"); + throw BinderException("read_csv column_types/types/dtypes can only be supplied once"); } vector sql_type_names; if (child_type.id() == LogicalTypeId::STRUCT) { @@ -565,7 +641,7 @@ void CSVReaderOptions::FromNamedParameters(named_parameter_map_t &in, ClientCont auto &name = StructType::GetChildName(child_type, i); auto &val = struct_children[i]; if (val.type().id() != LogicalTypeId::VARCHAR) { - throw BinderException("read_csv_auto %s requires a type specification as string", kv.first); + throw BinderException("read_csv %s requires a type specification as string", kv.first); } sql_type_names.push_back(StringValue::Get(val)); sql_types_per_column[name] = i; @@ -573,7 +649,7 @@ void CSVReaderOptions::FromNamedParameters(named_parameter_map_t &in, ClientCont } else { auto &list_child = ListType::GetChildType(child_type); if (list_child.id() != LogicalTypeId::VARCHAR) { - throw BinderException("read_csv_auto %s requires a list of types (varchar) as input", kv.first); + throw BinderException("read_csv %s requires a list of types (varchar) as input", kv.first); } auto &children = ListValue::GetChildren(kv.second); for (auto &child : children) { @@ -584,8 +660,7 @@ void CSVReaderOptions::FromNamedParameters(named_parameter_map_t &in, ClientCont for (auto &sql_type : sql_type_names) { auto def_type = TransformStringToLogicalType(sql_type, context); if (def_type.id() == LogicalTypeId::USER) { - throw BinderException("Unrecognized type \"%s\" for read_csv_auto %s definition", sql_type, - kv.first); + throw BinderException("Unrecognized type \"%s\" for read_csv %s definition", sql_type, kv.first); } sql_type_list.push_back(std::move(def_type)); } @@ -606,11 +681,12 @@ void CSVReaderOptions::FromNamedParameters(named_parameter_map_t &in, ClientCont } //! This function is used to remember options set by the sniffer, for use in ReadCSVRelation -void CSVReaderOptions::ToNamedParameters(named_parameter_map_t &named_params) { +void CSVReaderOptions::ToNamedParameters(named_parameter_map_t &named_params) const { auto &delimiter = dialect_options.state_machine_options.delimiter; auto "e = dialect_options.state_machine_options.quote; auto &escape = dialect_options.state_machine_options.escape; auto &comment = dialect_options.state_machine_options.comment; + auto &rfc_4180 = dialect_options.state_machine_options.rfc_4180; auto &header = dialect_options.header; if (delimiter.IsSetByUser()) { named_params["delim"] = Value(GetDelimiter()); @@ -630,6 +706,9 @@ void CSVReaderOptions::ToNamedParameters(named_parameter_map_t &named_params) { if (header.IsSetByUser()) { named_params["header"] = Value(GetHeader()); } + if (rfc_4180.IsSetByUser()) { + named_params["rfc_4180"] = Value(GetRFC4180()); + } named_params["max_line_size"] = Value::BIGINT(NumericCast(maximum_line_size)); if (dialect_options.skip_rows.IsSetByUser()) { named_params["skip"] = Value::UBIGINT(GetSkipRows()); diff --git a/src/duckdb/src/execution/operator/csv_scanner/util/csv_validator.cpp b/src/duckdb/src/execution/operator/csv_scanner/util/csv_validator.cpp new file mode 100644 index 00000000..1b8d3f34 --- /dev/null +++ b/src/duckdb/src/execution/operator/csv_scanner/util/csv_validator.cpp @@ -0,0 +1,63 @@ +#include "duckdb/execution/operator/csv_scanner/csv_validator.hpp" +#include + +namespace duckdb { + +void ThreadLines::Insert(idx_t thread_idx, ValidatorLine line_info) { + D_ASSERT(thread_lines.find(thread_idx) == thread_lines.end()); + thread_lines.insert({thread_idx, line_info}); +} + +string ThreadLines::Print() const { + string result; + for (auto &line : thread_lines) { + result += "{start_pos: " + std::to_string(line.second.start_pos) + + ", end_pos: " + std::to_string(line.second.end_pos) + "}"; + } + return result; +} + +void ThreadLines::Verify() const { + bool initialized = false; + idx_t last_end_pos = 0; + for (auto &line_info : thread_lines) { + if (!initialized) { + // First run, we just set the initialized to true + initialized = true; + } else { + if (line_info.second.start_pos == line_info.second.end_pos) { + last_end_pos = line_info.second.end_pos; + continue; + } + if (last_end_pos + error_margin < line_info.second.start_pos || + line_info.second.start_pos < last_end_pos - error_margin) { + std::ostringstream error; + error << "The Parallel CSV Reader currently does not support a full read on this file." << '\n'; + error << "To correctly parse this file, please run with the single threaded error (i.e., parallel = " + "false)" + << '\n'; + throw NotImplementedException(error.str()); + } + } + last_end_pos = line_info.second.end_pos; + } +} + +void CSVValidator::Insert(idx_t file_idx, idx_t thread_idx, ValidatorLine line_info) { + if (per_file_thread_lines.size() <= file_idx) { + per_file_thread_lines.resize(file_idx + 1); + } + per_file_thread_lines[file_idx].Insert(thread_idx, line_info); +} + +void CSVValidator::Verify() const { + for (auto &file : per_file_thread_lines) { + file.Verify(); + } +} + +string CSVValidator::Print(idx_t file_idx) const { + return per_file_thread_lines[file_idx].Print(); +} + +} // namespace duckdb diff --git a/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp b/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp index 6a036109..d52b7bc4 100644 --- a/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp +++ b/src/duckdb/src/execution/operator/helper/physical_buffered_collector.cpp @@ -59,7 +59,7 @@ unique_ptr PhysicalBufferedCollector::GetLocalSinkState(Executio unique_ptr PhysicalBufferedCollector::GetResult(GlobalSinkState &state) { auto &gstate = state.Cast(); lock_guard l(gstate.glock); - // FIXME: maybe we want to check if the execution was successfull before creating the StreamQueryResult ? + // FIXME: maybe we want to check if the execution was successful before creating the StreamQueryResult ? auto cc = gstate.context.lock(); auto result = make_uniq(statement_type, properties, types, names, cc->GetClientProperties(), gstate.buffered_data); diff --git a/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp b/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp index 869db44f..32785a7a 100644 --- a/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp +++ b/src/duckdb/src/execution/operator/helper/physical_reservoir_sample.cpp @@ -15,13 +15,14 @@ class SampleGlobalSinkState : public GlobalSinkState { if (percentage == 0) { return; } - sample = make_uniq(allocator, percentage, options.seed); + sample = make_uniq(allocator, percentage, + static_cast(options.seed.GetIndex())); } else { auto size = NumericCast(options.sample_size.GetValue()); if (size == 0) { return; } - sample = make_uniq(allocator, size, options.seed); + sample = make_uniq(allocator, size, static_cast(options.seed.GetIndex())); } } @@ -49,13 +50,15 @@ SinkResultType PhysicalReservoirSample::Sink(ExecutionContext &context, DataChun if (percentage == 0) { return SinkResultType::FINISHED; } - global_state.sample = make_uniq(allocator, percentage, options->seed); + global_state.sample = make_uniq(allocator, percentage, + static_cast(options->seed.GetIndex())); } else { idx_t num_samples = options->sample_size.GetValue(); if (num_samples == 0) { return SinkResultType::FINISHED; } - global_state.sample = make_uniq(allocator, num_samples, options->seed); + global_state.sample = + make_uniq(allocator, num_samples, static_cast(options->seed.GetIndex())); } } global_state.sample->AddToReservoir(chunk); diff --git a/src/duckdb/src/execution/operator/helper/physical_set.cpp b/src/duckdb/src/execution/operator/helper/physical_set.cpp index 4fe86880..4a321a52 100644 --- a/src/duckdb/src/execution/operator/helper/physical_set.cpp +++ b/src/duckdb/src/execution/operator/helper/physical_set.cpp @@ -48,7 +48,7 @@ SourceResultType PhysicalSet::GetData(ExecutionContext &context, DataChunk &chun } } - Value input_val = value.CastAs(context.client, option->parameter_type); + Value input_val = value.CastAs(context.client, DBConfig::ParseLogicalType(option->parameter_type)); switch (variable_scope) { case SetScope::GLOBAL: { if (!option->set_global) { diff --git a/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp b/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp index 186c1541..345745df 100644 --- a/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp +++ b/src/duckdb/src/execution/operator/helper/physical_vacuum.cpp @@ -15,7 +15,7 @@ PhysicalVacuum::PhysicalVacuum(unique_ptr info_p, optional_ptr table) { + explicit VacuumLocalSinkState(VacuumInfo &info, optional_ptr table) : hashes(LogicalType::HASH) { for (const auto &column_name : info.columns) { auto &column = table->GetColumn(column_name); if (DistinctStatistics::TypeIsSupported(column.GetType())) { @@ -27,6 +27,7 @@ class VacuumLocalSinkState : public LocalSinkState { }; vector> column_distinct_stats; + Vector hashes; }; unique_ptr PhysicalVacuum::GetLocalSinkState(ExecutionContext &context) const { @@ -62,7 +63,7 @@ SinkResultType PhysicalVacuum::Sink(ExecutionContext &context, DataChunk &chunk, if (!DistinctStatistics::TypeIsSupported(chunk.data[col_idx].GetType())) { continue; } - lstate.column_distinct_stats[col_idx]->Update(chunk.data[col_idx], chunk.size(), false); + lstate.column_distinct_stats[col_idx]->Update(chunk.data[col_idx], chunk.size(), lstate.hashes); } return SinkResultType::NEED_MORE_INPUT; diff --git a/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp b/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp index f5ced297..123d9416 100644 --- a/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp +++ b/src/duckdb/src/execution/operator/join/perfect_hash_join_executor.cpp @@ -1,17 +1,123 @@ #include "duckdb/execution/operator/join/perfect_hash_join_executor.hpp" -#include "duckdb/common/types/row/row_layout.hpp" +#include "duckdb/common/operator/subtract.hpp" #include "duckdb/execution/operator/join/physical_hash_join.hpp" namespace duckdb { -PerfectHashJoinExecutor::PerfectHashJoinExecutor(const PhysicalHashJoin &join_p, JoinHashTable &ht_p, - PerfectHashJoinStats perfect_join_stats) - : join(join_p), ht(ht_p), perfect_join_statistics(std::move(perfect_join_stats)) { +PerfectHashJoinExecutor::PerfectHashJoinExecutor(const PhysicalHashJoin &join_p, JoinHashTable &ht_p) + : join(join_p), ht(ht_p) { } -bool PerfectHashJoinExecutor::CanDoPerfectHashJoin() { - return perfect_join_statistics.is_build_small; +//===--------------------------------------------------------------------===// +// Initialize +//===--------------------------------------------------------------------===// +bool ExtractNumericValue(Value val, hugeint_t &result) { + if (!val.type().IsIntegral()) { + switch (val.type().InternalType()) { + case PhysicalType::INT8: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::INT16: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::INT32: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::INT64: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::INT128: + result = val.GetValueUnsafe(); + break; + case PhysicalType::UINT8: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::UINT16: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::UINT32: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::UINT64: + result = Hugeint::Convert(val.GetValueUnsafe()); + break; + case PhysicalType::UINT128: { + const auto uhugeint_val = val.GetValueUnsafe(); + if (uhugeint_val > NumericCast(NumericLimits::Maximum())) { + return false; + } + result.lower = uhugeint_val.lower; + result.upper = NumericCast(uhugeint_val.upper); + break; + } + default: + return false; + } + } else { + if (!val.DefaultTryCastAs(LogicalType::HUGEINT)) { + return false; + } + result = val.GetValue(); + } + return true; +} + +bool PerfectHashJoinExecutor::CanDoPerfectHashJoin(const PhysicalHashJoin &op, const Value &min, const Value &max) { + if (perfect_join_statistics.is_build_small) { + return true; // Already true based on static statistics + } + + // We only do this optimization for inner joins with one integer equality condition + const auto key_type = op.conditions[0].left->return_type; + if (op.join_type != JoinType::INNER || op.conditions.size() != 1 || + op.conditions[0].comparison != ExpressionType::COMPARE_EQUAL || !TypeIsInteger(key_type.InternalType())) { + return false; + } + + // We bail out if there are nested types on the RHS + for (auto &type : op.children[1]->types) { + switch (type.InternalType()) { + case PhysicalType::STRUCT: + case PhysicalType::LIST: + case PhysicalType::ARRAY: + return false; + default: + break; + } + } + + // And when the build range is smaller than the threshold + perfect_join_statistics.build_min = min; + perfect_join_statistics.build_max = max; + hugeint_t min_value, max_value; + if (!ExtractNumericValue(perfect_join_statistics.build_min, min_value) || + !ExtractNumericValue(perfect_join_statistics.build_max, max_value)) { + return false; + } + if (max_value < min_value) { + return false; // Empty table + } + + hugeint_t build_range; + if (!TrySubtractOperator::Operation(max_value, min_value, build_range)) { + return false; + } + + // The max size our build must have to run the perfect HJ + static constexpr idx_t MAX_BUILD_SIZE = 1048576; + if (build_range > Hugeint::Convert(MAX_BUILD_SIZE)) { + return false; + } + perfect_join_statistics.build_range = NumericCast(build_range); + + // If count is larger than range (duplicates), we bail out + if (ht.Count() > perfect_join_statistics.build_range) { + return false; + } + + perfect_join_statistics.is_build_small = true; + return true; } //===--------------------------------------------------------------------===// @@ -20,7 +126,7 @@ bool PerfectHashJoinExecutor::CanDoPerfectHashJoin() { bool PerfectHashJoinExecutor::BuildPerfectHashTable(LogicalType &key_type) { // First, allocate memory for each build column auto build_size = perfect_join_statistics.build_range + 1; - for (const auto &type : join.rhs_output_types) { + for (const auto &type : join.rhs_output_columns.col_types) { perfect_hash_table.emplace_back(type, build_size); } @@ -29,7 +135,6 @@ bool PerfectHashJoinExecutor::BuildPerfectHashTable(LogicalType &key_type) { memset(bitmap_build_idx.get(), 0, sizeof(bool) * build_size); // set false // Now fill columns with build data - return FullScanHashTable(key_type); } @@ -50,7 +155,8 @@ bool PerfectHashJoinExecutor::FullScanHashTable(LogicalType &key_type) { // Scan the build keys in the hash table Vector build_vector(key_type, key_count); - RowOperations::FullScanColumn(ht.layout, tuples_addresses, build_vector, key_count, 0); + data_collection.Gather(tuples_addresses, *FlatVector::IncrementalSelectionVector(), key_count, 0, build_vector, + *FlatVector::IncrementalSelectionVector(), nullptr); // Now fill the selection vector using the build keys and create a sequential vector // TODO: add check for fast pass when probe is part of build domain @@ -69,7 +175,7 @@ bool PerfectHashJoinExecutor::FullScanHashTable(LogicalType &key_type) { // Full scan the remaining build columns and fill the perfect hash table const auto build_size = perfect_join_statistics.build_range + 1; - for (idx_t i = 0; i < join.rhs_output_types.size(); i++) { + for (idx_t i = 0; i < join.rhs_output_columns.col_types.size(); i++) { auto &vector = perfect_hash_table[i]; const auto output_col_idx = ht.output_columns[i]; D_ASSERT(vector.GetType() == ht.layout.GetTypes()[output_col_idx]); @@ -94,6 +200,8 @@ bool PerfectHashJoinExecutor::FillSelectionVectorSwitchBuild(Vector &source, Sel return TemplatedFillSelectionVectorBuild(source, sel_vec, seq_sel_vec, count); case PhysicalType::INT64: return TemplatedFillSelectionVectorBuild(source, sel_vec, seq_sel_vec, count); + case PhysicalType::INT128: + return TemplatedFillSelectionVectorBuild(source, sel_vec, seq_sel_vec, count); case PhysicalType::UINT8: return TemplatedFillSelectionVectorBuild(source, sel_vec, seq_sel_vec, count); case PhysicalType::UINT16: @@ -102,6 +210,8 @@ bool PerfectHashJoinExecutor::FillSelectionVectorSwitchBuild(Vector &source, Sel return TemplatedFillSelectionVectorBuild(source, sel_vec, seq_sel_vec, count); case PhysicalType::UINT64: return TemplatedFillSelectionVectorBuild(source, sel_vec, seq_sel_vec, count); + case PhysicalType::UINT128: + return TemplatedFillSelectionVectorBuild(source, sel_vec, seq_sel_vec, count); default: throw NotImplementedException("Type not supported for perfect hash join"); } @@ -166,7 +276,8 @@ unique_ptr PerfectHashJoinExecutor::GetOperatorState(ExecutionCon } OperatorResultType PerfectHashJoinExecutor::ProbePerfectHashTable(ExecutionContext &context, DataChunk &input, - DataChunk &result, OperatorState &state_p) { + DataChunk &lhs_output_columns, DataChunk &result, + OperatorState &state_p) { auto &state = state_p.Cast(); // keeps track of how many probe keys have a match idx_t probe_sel_count = 0; @@ -182,14 +293,14 @@ OperatorResultType PerfectHashJoinExecutor::ProbePerfectHashTable(ExecutionConte // If build is dense and probe is in build's domain, just reference probe if (perfect_join_statistics.is_build_dense && keys_count == probe_sel_count) { - result.Reference(input); + result.Reference(lhs_output_columns); } else { // otherwise, filter it out the values that do not match - result.Slice(input, state.probe_sel_vec, probe_sel_count, 0); + result.Slice(lhs_output_columns, state.probe_sel_vec, probe_sel_count, 0); } // on the build side, we need to fetch the data and build dictionary vectors with the sel_vec - for (idx_t i = 0; i < join.rhs_output_types.size(); i++) { - auto &result_vector = result.data[input.ColumnCount() + i]; + for (idx_t i = 0; i < join.rhs_output_columns.col_types.size(); i++) { + auto &result_vector = result.data[lhs_output_columns.ColumnCount() + i]; D_ASSERT(result_vector.GetType() == ht.layout.GetTypes()[ht.output_columns[i]]); auto &build_vec = perfect_hash_table[i]; result_vector.Reference(build_vec); @@ -214,6 +325,9 @@ void PerfectHashJoinExecutor::FillSelectionVectorSwitchProbe(Vector &source, Sel case PhysicalType::INT64: TemplatedFillSelectionVectorProbe(source, build_sel_vec, probe_sel_vec, count, probe_sel_count); break; + case PhysicalType::INT128: + TemplatedFillSelectionVectorProbe(source, build_sel_vec, probe_sel_vec, count, probe_sel_count); + break; case PhysicalType::UINT8: TemplatedFillSelectionVectorProbe(source, build_sel_vec, probe_sel_vec, count, probe_sel_count); break; @@ -226,6 +340,9 @@ void PerfectHashJoinExecutor::FillSelectionVectorSwitchProbe(Vector &source, Sel case PhysicalType::UINT64: TemplatedFillSelectionVectorProbe(source, build_sel_vec, probe_sel_vec, count, probe_sel_count); break; + case PhysicalType::UINT128: + TemplatedFillSelectionVectorProbe(source, build_sel_vec, probe_sel_vec, count, probe_sel_count); + break; default: throw NotImplementedException("Type not supported"); } diff --git a/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp b/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp index 1b6eb619..deabb6f8 100644 --- a/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp +++ b/src/duckdb/src/execution/operator/join/physical_blockwise_nl_join.cpp @@ -79,16 +79,28 @@ class BlockwiseNLJoinState : public CachingOperatorState { public: explicit BlockwiseNLJoinState(ExecutionContext &context, ColumnDataCollection &rhs, const PhysicalBlockwiseNLJoin &op) - : cross_product(rhs), left_outer(IsLeftOuterJoin(op.join_type)), match_sel(STANDARD_VECTOR_SIZE), + : op(op), cross_product(rhs), left_outer(IsLeftOuterJoin(op.join_type)), match_sel(STANDARD_VECTOR_SIZE), executor(context.client, *op.condition) { left_outer.Initialize(STANDARD_VECTOR_SIZE); + ResetMatches(); } + const PhysicalBlockwiseNLJoin &op; CrossProductExecutor cross_product; OuterJoinMarker left_outer; SelectionVector match_sel; ExpressionExecutor executor; DataChunk intermediate_chunk; + bool found_match[STANDARD_VECTOR_SIZE]; + + void ResetMatches() { + if (op.join_type != JoinType::SEMI && op.join_type != JoinType::ANTI) { + return; + } + for (idx_t i = 0; i < STANDARD_VECTOR_SIZE; i++) { + found_match[i] = false; + } + } }; unique_ptr PhysicalBlockwiseNLJoin::GetOperatorState(ExecutionContext &context) const { @@ -136,69 +148,66 @@ OperatorResultType PhysicalBlockwiseNLJoin::ExecuteInternal(ExecutionContext &co // now perform the actual join // we perform a cross product, then execute the expression directly on the cross product result idx_t result_count = 0; - bool found_match[STANDARD_VECTOR_SIZE] = {false}; - - do { - auto result = state.cross_product.Execute(input, *intermediate_chunk); - if (result == OperatorResultType::NEED_MORE_INPUT) { - // exhausted input, have to pull new LHS chunk - if (state.left_outer.Enabled()) { - // left join: before we move to the next chunk, see if we need to output any vectors that didn't - // have a match found - state.left_outer.ConstructLeftJoinResult(input, *intermediate_chunk); - state.left_outer.Reset(); - } - if (join_type == JoinType::SEMI) { - PhysicalJoin::ConstructSemiJoinResult(input, chunk, found_match); - } - if (join_type == JoinType::ANTI) { - PhysicalJoin::ConstructAntiJoinResult(input, chunk, found_match); - } + auto result = state.cross_product.Execute(input, *intermediate_chunk); + if (result == OperatorResultType::NEED_MORE_INPUT) { + // exhausted input, have to pull new LHS chunk + if (state.left_outer.Enabled()) { + // left join: before we move to the next chunk, see if we need to output any vectors that didn't + // have a match found + state.left_outer.ConstructLeftJoinResult(input, *intermediate_chunk); + state.left_outer.Reset(); + } - return OperatorResultType::NEED_MORE_INPUT; + if (join_type == JoinType::SEMI) { + PhysicalJoin::ConstructSemiJoinResult(input, chunk, state.found_match); + } + if (join_type == JoinType::ANTI) { + PhysicalJoin::ConstructAntiJoinResult(input, chunk, state.found_match); } + state.ResetMatches(); - // now perform the computation - result_count = state.executor.SelectExpression(*intermediate_chunk, state.match_sel); - - // handle anti and semi joins with different logic - if (result_count > 0) { - // found a match! - // handle anti semi join conditions first - if (join_type == JoinType::ANTI || join_type == JoinType::SEMI) { - if (state.cross_product.ScanLHS()) { - found_match[state.cross_product.PositionInChunk()] = true; - } else { - for (idx_t i = 0; i < result_count; i++) { - found_match[state.match_sel.get_index(i)] = true; - } - } - intermediate_chunk->Reset(); - // trick the loop to continue as semi and anti joins will never produce more output than - // the LHS cardinality - result_count = 0; + return OperatorResultType::NEED_MORE_INPUT; + } + + // now perform the computation + result_count = state.executor.SelectExpression(*intermediate_chunk, state.match_sel); + + // handle anti and semi joins with different logic + if (result_count > 0) { + // found a match! + // handle anti semi join conditions first + if (join_type == JoinType::ANTI || join_type == JoinType::SEMI) { + if (state.cross_product.ScanLHS()) { + state.found_match[state.cross_product.PositionInChunk()] = true; } else { - // check if the cross product is scanning the LHS or the RHS in its entirety - if (!state.cross_product.ScanLHS()) { - // set the match flags in the LHS - state.left_outer.SetMatches(state.match_sel, result_count); - // set the match flag in the RHS - gstate.right_outer.SetMatch(state.cross_product.ScanPosition() + - state.cross_product.PositionInChunk()); - } else { - // set the match flag in the LHS - state.left_outer.SetMatch(state.cross_product.PositionInChunk()); - // set the match flags in the RHS - gstate.right_outer.SetMatches(state.match_sel, result_count, state.cross_product.ScanPosition()); + for (idx_t i = 0; i < result_count; i++) { + state.found_match[state.match_sel.get_index(i)] = true; } - intermediate_chunk->Slice(state.match_sel, result_count); } - } else { - // no result: reset the chunk intermediate_chunk->Reset(); + // trick the loop to continue as semi and anti joins will never produce more output than + // the LHS cardinality + result_count = 0; + } else { + // check if the cross product is scanning the LHS or the RHS in its entirety + if (!state.cross_product.ScanLHS()) { + // set the match flags in the LHS + state.left_outer.SetMatches(state.match_sel, result_count); + // set the match flag in the RHS + gstate.right_outer.SetMatch(state.cross_product.ScanPosition() + state.cross_product.PositionInChunk()); + } else { + // set the match flag in the LHS + state.left_outer.SetMatch(state.cross_product.PositionInChunk()); + // set the match flags in the RHS + gstate.right_outer.SetMatches(state.match_sel, result_count, state.cross_product.ScanPosition()); + } + intermediate_chunk->Slice(state.match_sel, result_count); } - } while (result_count == 0); + } else { + // no result: reset the chunk + intermediate_chunk->Reset(); + } return OperatorResultType::HAVE_MORE_OUTPUT; } diff --git a/src/duckdb/src/execution/operator/join/physical_hash_join.cpp b/src/duckdb/src/execution/operator/join/physical_hash_join.cpp index 3deb27b6..c8ae9747 100644 --- a/src/duckdb/src/execution/operator/join/physical_hash_join.cpp +++ b/src/duckdb/src/execution/operator/join/physical_hash_join.cpp @@ -1,12 +1,15 @@ #include "duckdb/execution/operator/join/physical_hash_join.hpp" #include "duckdb/common/radix_partitioning.hpp" +#include "duckdb/common/types/value_map.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" #include "duckdb/function/aggregate/distributive_functions.hpp" #include "duckdb/function/function_binder.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/main/query_profiler.hpp" +#include "duckdb/optimizer/filter_combiner.hpp" #include "duckdb/parallel/base_pipeline_event.hpp" #include "duckdb/parallel/executor_task.hpp" #include "duckdb/parallel/interrupt.hpp" @@ -14,8 +17,11 @@ #include "duckdb/parallel/thread_context.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/planner/expression/bound_reference_expression.hpp" +#include "duckdb/planner/filter/conjunction_filter.hpp" #include "duckdb/planner/filter/constant_filter.hpp" +#include "duckdb/planner/filter/in_filter.hpp" #include "duckdb/planner/filter/null_filter.hpp" +#include "duckdb/planner/filter/optional_filter.hpp" #include "duckdb/planner/table_filter.hpp" #include "duckdb/storage/buffer_manager.hpp" #include "duckdb/storage/storage_manager.hpp" @@ -27,11 +33,9 @@ PhysicalHashJoin::PhysicalHashJoin(LogicalOperator &op, unique_ptr right, vector cond, JoinType join_type, const vector &left_projection_map, const vector &right_projection_map, vector delim_types, idx_t estimated_cardinality, - PerfectHashJoinStats perfect_join_stats, unique_ptr pushdown_info_p) : PhysicalComparisonJoin(op, PhysicalOperatorType::HASH_JOIN, std::move(cond), join_type, estimated_cardinality), - delim_types(std::move(delim_types)), perfect_join_statistics(std::move(perfect_join_stats)) { - D_ASSERT(left_projection_map.empty()); + delim_types(std::move(delim_types)) { filter_pushdown = std::move(pushdown_info_p); @@ -48,6 +52,22 @@ PhysicalHashJoin::PhysicalHashJoin(LogicalOperator &op, unique_ptrGetTypes(); + + // Create a projection map for the LHS (if it was empty), for convenience + lhs_output_columns.col_idxs = left_projection_map; + if (lhs_output_columns.col_idxs.empty()) { + lhs_output_columns.col_idxs.reserve(lhs_input_types.size()); + for (idx_t i = 0; i < lhs_input_types.size(); i++) { + lhs_output_columns.col_idxs.emplace_back(i); + } + } + + for (auto &lhs_col : lhs_output_columns.col_idxs) { + auto &lhs_col_type = lhs_input_types[lhs_col]; + lhs_output_columns.col_types.push_back(lhs_col_type); + } + // For ANTI, SEMI and MARK join, we only need to store the keys, so for these the payload/RHS types are empty if (join_type == JoinType::ANTI || join_type == JoinType::SEMI || join_type == JoinType::MARK) { return; @@ -71,22 +91,22 @@ PhysicalHashJoin::PhysicalHashJoin(LogicalOperator &op, unique_ptrsecond); + rhs_output_columns.col_idxs.push_back(it->second); } - rhs_output_types.push_back(rhs_col_type); + rhs_output_columns.col_types.push_back(rhs_col_type); } } PhysicalHashJoin::PhysicalHashJoin(LogicalOperator &op, unique_ptr left, unique_ptr right, vector cond, JoinType join_type, - idx_t estimated_cardinality, PerfectHashJoinStats perfect_join_state) + idx_t estimated_cardinality) : PhysicalHashJoin(op, std::move(left), std::move(right), std::move(cond), join_type, {}, {}, {}, - estimated_cardinality, std::move(perfect_join_state), nullptr) { + estimated_cardinality, nullptr) { } //===--------------------------------------------------------------------===// @@ -102,7 +122,9 @@ unique_ptr JoinFilterPushdownInfo::GetGlobalState(ClientC const PhysicalOperator &op) const { // clear any previously set filters // we can have previous filters for this operator in case of e.g. recursive CTEs - dynamic_filters->ClearFilters(op); + for (auto &info : probe_info) { + info.dynamic_filters->ClearFilters(op); + } auto result = make_uniq(); result->global_aggregate_state = make_uniq(BufferAllocator::Get(context), min_max_aggregates); @@ -119,16 +141,24 @@ class HashJoinGlobalSinkState : public GlobalSinkState { hash_table = op.InitializeHashTable(context); // For perfect hash join - perfect_join_executor = make_uniq(op, *hash_table, op.perfect_join_statistics); + perfect_join_executor = make_uniq(op, *hash_table); + bool use_perfect_hash = false; + if (op.conditions.size() == 1 && !op.join_stats.empty() && op.join_stats[1] && + TypeIsIntegral(op.join_stats[1]->GetType().InternalType()) && NumericStats::HasMinMax(*op.join_stats[1])) { + use_perfect_hash = perfect_join_executor->CanDoPerfectHashJoin(op, NumericStats::Min(*op.join_stats[1]), + NumericStats::Max(*op.join_stats[1])); + } // For external hash join - external = ClientConfig::GetConfig(context).force_external; + external = ClientConfig::GetConfig(context).GetSetting(context); // Set probe types - const auto &payload_types = op.children[0]->types; - probe_types.insert(probe_types.end(), op.condition_types.begin(), op.condition_types.end()); - probe_types.insert(probe_types.end(), payload_types.begin(), payload_types.end()); + probe_types = op.children[0]->types; probe_types.emplace_back(LogicalType::HASH); if (op.filter_pushdown) { + if (op.filter_pushdown->probe_info.empty() && use_perfect_hash) { + // Only computing min/max to check for perfect HJ, but we already can + skip_filter_pushdown = true; + } global_filter_state = op.filter_pushdown->GetGlobalState(context, op); } } @@ -169,6 +199,7 @@ class HashJoinGlobalSinkState : public GlobalSinkState { //! Whether or not we have started scanning data using GetData atomic scanned_data; + bool skip_filter_pushdown = false; unique_ptr global_filter_state; }; @@ -189,8 +220,8 @@ class HashJoinLocalSinkState : public LocalSinkState { } join_keys.Initialize(allocator, op.condition_types); - if (!op.payload_types.empty()) { - payload_chunk.Initialize(allocator, op.payload_types); + if (!op.payload_columns.col_types.empty()) { + payload_chunk.Initialize(allocator, op.payload_columns.col_types); } hash_table = op.InitializeHashTable(context); @@ -218,7 +249,8 @@ class HashJoinLocalSinkState : public LocalSinkState { }; unique_ptr PhysicalHashJoin::InitializeHashTable(ClientContext &context) const { - auto result = make_uniq(context, conditions, payload_types, join_type, rhs_output_columns); + auto result = make_uniq(context, conditions, payload_columns.col_types, join_type, + rhs_output_columns.col_idxs); if (!delim_types.empty() && join_type == JoinType::MARK) { // correlated MARK join if (delim_types.size() + 1 == conditions.size()) { @@ -246,7 +278,7 @@ unique_ptr PhysicalHashJoin::InitializeHashTable(ClientContext &c delim_payload_types.push_back(aggr->return_type); info.correlated_aggregates.push_back(std::move(aggr)); - auto count_fun = CountFun::GetFunction(); + auto count_fun = CountFunctionBase::GetFunction(); vector> children; // this is a dummy but we need it to make the hash table understand whats going on children.push_back(make_uniq_base(count_fun.return_type, 0U)); @@ -278,42 +310,36 @@ unique_ptr PhysicalHashJoin::GetLocalSinkState(ExecutionContext void JoinFilterPushdownInfo::Sink(DataChunk &chunk, JoinFilterLocalState &lstate) const { // if we are pushing any filters into a probe-side, compute the min/max over the columns that we are pushing - for (idx_t pushdown_idx = 0; pushdown_idx < filters.size(); pushdown_idx++) { - auto &pushdown = filters[pushdown_idx]; + for (idx_t pushdown_idx = 0; pushdown_idx < join_condition.size(); pushdown_idx++) { + auto join_condition_idx = join_condition[pushdown_idx]; for (idx_t i = 0; i < 2; i++) { idx_t aggr_idx = pushdown_idx * 2 + i; - lstate.local_aggregate_state->Sink(chunk, pushdown.join_condition, aggr_idx); + lstate.local_aggregate_state->Sink(chunk, join_condition_idx, aggr_idx); } } } SinkResultType PhysicalHashJoin::Sink(ExecutionContext &context, DataChunk &chunk, OperatorSinkInput &input) const { + auto &gstate = input.global_state.Cast(); auto &lstate = input.local_state.Cast(); // resolve the join keys for the right chunk lstate.join_keys.Reset(); lstate.join_key_executor.Execute(chunk, lstate.join_keys); - if (filter_pushdown) { + if (filter_pushdown && !gstate.skip_filter_pushdown) { filter_pushdown->Sink(lstate.join_keys, *lstate.local_filter_state); } - // build the HT - auto &ht = *lstate.hash_table; - if (payload_types.empty()) { - // there are only keys: place an empty chunk in the payload + if (payload_columns.col_types.empty()) { // there are only keys: place an empty chunk in the payload lstate.payload_chunk.SetCardinality(chunk.size()); - ht.Build(lstate.append_state, lstate.join_keys, lstate.payload_chunk); - } else { - // there are payload columns - lstate.payload_chunk.Reset(); - lstate.payload_chunk.SetCardinality(chunk); - for (idx_t i = 0; i < payload_column_idxs.size(); i++) { - lstate.payload_chunk.data[i].Reference(chunk.data[payload_column_idxs[i]]); - } - ht.Build(lstate.append_state, lstate.join_keys, lstate.payload_chunk); + } else { // there are payload columns + lstate.payload_chunk.ReferenceColumns(chunk, payload_columns.col_idxs); } + // build the HT + lstate.hash_table->Build(lstate.append_state, lstate.join_keys, lstate.payload_chunk); + return SinkResultType::NEED_MORE_INPUT; } @@ -336,7 +362,7 @@ SinkCombineResultType PhysicalHashJoin::Combine(ExecutionContext &context, Opera auto &client_profiler = QueryProfiler::Get(context.client); context.thread.profiler.Flush(*this); client_profiler.Flush(context.thread.profiler); - if (filter_pushdown) { + if (filter_pushdown && !gstate.skip_filter_pushdown) { filter_pushdown->Combine(*gstate.global_filter_state, *lstate.local_filter_state); } @@ -426,18 +452,11 @@ class HashJoinFinalizeEvent : public BasePipelineEvent { make_uniq(shared_from_this(), context, sink, 0U, chunk_count, false, sink.op)); } else { // Parallel finalize - auto chunks_per_thread = MaxValue((chunk_count + num_threads - 1) / num_threads, 1); - - idx_t chunk_idx = 0; - for (idx_t thread_idx = 0; thread_idx < num_threads; thread_idx++) { - auto chunk_idx_from = chunk_idx; - auto chunk_idx_to = MinValue(chunk_idx_from + chunks_per_thread, chunk_count); - finalize_tasks.push_back(make_uniq(shared_from_this(), context, sink, - chunk_idx_from, chunk_idx_to, true, sink.op)); - chunk_idx = chunk_idx_to; - if (chunk_idx == chunk_count) { - break; - } + const idx_t chunks_per_task = context.config.verify_parallelism ? 1 : CHUNKS_PER_TASK; + for (idx_t chunk_idx = 0; chunk_idx < chunk_count; chunk_idx += chunks_per_task) { + auto chunk_idx_to = MinValue(chunk_idx + chunks_per_task, chunk_count); + finalize_tasks.push_back(make_uniq(shared_from_this(), context, sink, chunk_idx, + chunk_idx_to, true, sink.op)); } } SetTasks(std::move(finalize_tasks)); @@ -448,7 +467,8 @@ class HashJoinFinalizeEvent : public BasePipelineEvent { sink.hash_table->finalized = true; } - static constexpr const idx_t PARALLEL_CONSTRUCT_THRESHOLD = 1048576; + static constexpr idx_t PARALLEL_CONSTRUCT_THRESHOLD = 1048576; + static constexpr idx_t CHUNKS_PER_TASK = 64; }; void HashJoinGlobalSinkState::ScheduleFinalize(Pipeline &pipeline, Event &event) { @@ -560,47 +580,104 @@ class HashJoinRepartitionEvent : public BasePipelineEvent { } }; -void JoinFilterPushdownInfo::PushFilters(JoinFilterGlobalState &gstate, const PhysicalOperator &op) const { +void JoinFilterPushdownInfo::PushInFilter(const JoinFilterPushdownFilter &info, JoinHashTable &ht, + const PhysicalOperator &op, idx_t filter_idx, idx_t filter_col_idx) const { + // generate a "OR" filter (i.e. x=1 OR x=535 OR x=997) + // first scan the entire vector at the probe side + // FIXME: this code is duplicated from PerfectHashJoinExecutor::FullScanHashTable + auto build_idx = join_condition[filter_idx]; + auto &data_collection = ht.GetDataCollection(); + + Vector tuples_addresses(LogicalType::POINTER, ht.Count()); // allocate space for all the tuples + + JoinHTScanState join_ht_state(data_collection, 0, data_collection.ChunkCount(), + TupleDataPinProperties::KEEP_EVERYTHING_PINNED); + + // Go through all the blocks and fill the keys addresses + idx_t key_count = ht.FillWithHTOffsets(join_ht_state, tuples_addresses); + + // Scan the build keys in the hash table + Vector build_vector(ht.layout.GetTypes()[build_idx], key_count); + data_collection.Gather(tuples_addresses, *FlatVector::IncrementalSelectionVector(), key_count, build_idx, + build_vector, *FlatVector::IncrementalSelectionVector(), nullptr); + + // generate the OR-clause - note that we only need to consider unique values here (so we use a seT) + value_set_t unique_ht_values; + for (idx_t k = 0; k < key_count; k++) { + unique_ht_values.insert(build_vector.GetValue(k)); + } + vector in_list(unique_ht_values.begin(), unique_ht_values.end()); + + // generating the OR filter only makes sense if the range is + // not dense and that the range does not contain NULL + // i.e. if we have the values [0, 1, 2, 3, 4] - the min/max is fully equivalent to the OR filter + if (FilterCombiner::ContainsNull(in_list) || FilterCombiner::IsDenseRange(in_list)) { + return; + } + + // generate the OR filter + auto or_filter = make_uniq(std::move(in_list)); + // we push the OR filter as an OptionalFilter so that we can use it for zonemap pruning only + // the IN-list is expensive to execute otherwise + auto filter = make_uniq(std::move(or_filter)); + info.dynamic_filters->PushFilter(op, filter_col_idx, std::move(filter)); +} + +unique_ptr JoinFilterPushdownInfo::Finalize(ClientContext &context, JoinHashTable &ht, + JoinFilterGlobalState &gstate, + const PhysicalOperator &op) const { // finalize the min/max aggregates vector min_max_types; for (auto &aggr_expr : min_max_aggregates) { min_max_types.push_back(aggr_expr->return_type); } - DataChunk final_min_max; - final_min_max.Initialize(Allocator::DefaultAllocator(), min_max_types); + auto final_min_max = make_uniq(); + final_min_max->Initialize(Allocator::DefaultAllocator(), min_max_types); - gstate.global_aggregate_state->Finalize(final_min_max); + gstate.global_aggregate_state->Finalize(*final_min_max); + if (probe_info.empty()) { + return final_min_max; // There are not table souces in which we can push down filters + } + + auto dynamic_or_filter_threshold = ClientConfig::GetSetting(context); // create a filter for each of the aggregates - for (idx_t filter_idx = 0; filter_idx < filters.size(); filter_idx++) { - auto &filter = filters[filter_idx]; - auto filter_col_idx = filter.probe_column_index.column_index; - auto min_idx = filter_idx * 2; - auto max_idx = min_idx + 1; - - auto min_val = final_min_max.data[min_idx].GetValue(0); - auto max_val = final_min_max.data[max_idx].GetValue(0); - if (min_val.IsNull() || max_val.IsNull()) { - // min/max is NULL - // this can happen in case all values in the RHS column are NULL, but they are still pushed into the hash - // table e.g. because they are part of a RIGHT join - continue; - } - if (Value::NotDistinctFrom(min_val, max_val)) { - // min = max - generate an equality filter - auto constant_filter = make_uniq(ExpressionType::COMPARE_EQUAL, std::move(min_val)); - dynamic_filters->PushFilter(op, filter_col_idx, std::move(constant_filter)); - } else { - // min != max - generate a range filter - auto greater_equals = - make_uniq(ExpressionType::COMPARE_GREATERTHANOREQUALTO, std::move(min_val)); - dynamic_filters->PushFilter(op, filter_col_idx, std::move(greater_equals)); - auto less_equals = make_uniq(ExpressionType::COMPARE_LESSTHANOREQUALTO, std::move(max_val)); - dynamic_filters->PushFilter(op, filter_col_idx, std::move(less_equals)); + for (idx_t filter_idx = 0; filter_idx < join_condition.size(); filter_idx++) { + for (auto &info : probe_info) { + auto filter_col_idx = info.columns[filter_idx].probe_column_index.column_index; + auto min_idx = filter_idx * 2; + auto max_idx = min_idx + 1; + + auto min_val = final_min_max->data[min_idx].GetValue(0); + auto max_val = final_min_max->data[max_idx].GetValue(0); + if (min_val.IsNull() || max_val.IsNull()) { + // min/max is NULL + // this can happen in case all values in the RHS column are NULL, but they are still pushed into the + // hash table e.g. because they are part of a RIGHT join + continue; + } + // if the HT is small we can generate a complete "OR" filter + if (ht.Count() > 1 && ht.Count() <= dynamic_or_filter_threshold) { + PushInFilter(info, ht, op, filter_idx, filter_col_idx); + } + + if (Value::NotDistinctFrom(min_val, max_val)) { + // min = max - generate an equality filter + auto constant_filter = make_uniq(ExpressionType::COMPARE_EQUAL, std::move(min_val)); + info.dynamic_filters->PushFilter(op, filter_col_idx, std::move(constant_filter)); + } else { + // min != max - generate a range filter + auto greater_equals = + make_uniq(ExpressionType::COMPARE_GREATERTHANOREQUALTO, std::move(min_val)); + info.dynamic_filters->PushFilter(op, filter_col_idx, std::move(greater_equals)); + auto less_equals = + make_uniq(ExpressionType::COMPARE_LESSTHANOREQUALTO, std::move(max_val)); + info.dynamic_filters->PushFilter(op, filter_col_idx, std::move(less_equals)); + } } - // not null filter - dynamic_filters->PushFilter(op, filter_col_idx, make_uniq()); } + + return final_min_max; } SinkFinalizeType PhysicalHashJoin::Finalize(Pipeline &pipeline, Event &event, ClientContext &context, @@ -616,7 +693,9 @@ SinkFinalizeType PhysicalHashJoin::Finalize(Pipeline &pipeline, Event &event, Cl const auto max_partition_ht_size = sink.max_partition_size + JoinHashTable::PointerTableSize(sink.max_partition_count); - if (max_partition_ht_size > sink.temporary_memory_state->GetReservation()) { + const auto very_very_skewed = // No point in repartitioning if it's this skewed + static_cast(max_partition_ht_size) >= 0.8 * static_cast(sink.total_size); + if (!very_very_skewed && max_partition_ht_size > sink.temporary_memory_state->GetReservation()) { // We have to repartition ht.SetRepartitionRadixBits(sink.temporary_memory_state->GetReservation(), sink.max_partition_size, sink.max_partition_count); @@ -645,12 +724,19 @@ SinkFinalizeType PhysicalHashJoin::Finalize(Pipeline &pipeline, Event &event, Cl sink.local_hash_tables.clear(); ht.Unpartition(); - if (filter_pushdown && ht.Count() > 0) { - filter_pushdown->PushFilters(*sink.global_filter_state, *this); + Value min; + Value max; + if (filter_pushdown && !sink.skip_filter_pushdown && ht.Count() > 0) { + auto final_min_max = filter_pushdown->Finalize(context, ht, *sink.global_filter_state, *this); + min = final_min_max->data[0].GetValue(0); + max = final_min_max->data[1].GetValue(0); + } else if (TypeIsIntegral(conditions[0].right->return_type.InternalType())) { + min = Value::MinimumValue(conditions[0].right->return_type); + max = Value::MaximumValue(conditions[0].right->return_type); } // check for possible perfect hash table - auto use_perfect_hash = sink.perfect_join_executor->CanDoPerfectHashJoin(); + auto use_perfect_hash = sink.perfect_join_executor->CanDoPerfectHashJoin(*this, min, max); if (use_perfect_hash) { D_ASSERT(ht.equality_types.size() == 1); auto key_type = ht.equality_types[0]; @@ -677,8 +763,9 @@ class HashJoinOperatorState : public CachingOperatorState { : probe_executor(context), scan_structure(*sink.hash_table, join_key_state) { } - DataChunk join_keys; + DataChunk lhs_join_keys; TupleDataChunkState join_key_state; + DataChunk lhs_output; ExpressionExecutor probe_executor; JoinHashTable::ScanStructure scan_structure; @@ -699,10 +786,13 @@ unique_ptr PhysicalHashJoin::GetOperatorState(ExecutionContext &c auto &allocator = BufferAllocator::Get(context.client); auto &sink = sink_state->Cast(); auto state = make_uniq(context.client, sink); + state->lhs_join_keys.Initialize(allocator, condition_types); + if (!lhs_output_columns.col_types.empty()) { + state->lhs_output.Initialize(allocator, lhs_output_columns.col_types); + } if (sink.perfect_join_executor) { state->perfect_hash_join_state = sink.perfect_join_executor->GetOperatorState(context); } else { - state->join_keys.Initialize(allocator, condition_types); for (auto &cond : conditions) { state->probe_executor.AddExpression(*cond.left); } @@ -727,13 +817,16 @@ OperatorResultType PhysicalHashJoin::ExecuteInternal(ExecutionContext &context, if (EmptyResultIfRHSIsEmpty()) { return OperatorResultType::FINISHED; } - ConstructEmptyJoinResult(sink.hash_table->join_type, sink.hash_table->has_null, input, chunk); + state.lhs_output.ReferenceColumns(input, lhs_output_columns.col_idxs); + ConstructEmptyJoinResult(sink.hash_table->join_type, sink.hash_table->has_null, state.lhs_output, chunk); return OperatorResultType::NEED_MORE_INPUT; } if (sink.perfect_join_executor) { D_ASSERT(!sink.external); - return sink.perfect_join_executor->ProbePerfectHashTable(context, input, chunk, *state.perfect_hash_join_state); + state.lhs_output.ReferenceColumns(input, lhs_output_columns.col_idxs); + return sink.perfect_join_executor->ProbePerfectHashTable(context, input, state.lhs_output, chunk, + *state.perfect_hash_join_state); } if (sink.external && !state.initialized) { @@ -747,19 +840,21 @@ OperatorResultType PhysicalHashJoin::ExecuteInternal(ExecutionContext &context, if (state.scan_structure.is_null) { // probe the HT, start by resolving the join keys for the left chunk - state.join_keys.Reset(); - state.probe_executor.Execute(input, state.join_keys); + state.lhs_join_keys.Reset(); + state.probe_executor.Execute(input, state.lhs_join_keys); // perform the actual probe if (sink.external) { - sink.hash_table->ProbeAndSpill(state.scan_structure, state.join_keys, state.join_key_state, + sink.hash_table->ProbeAndSpill(state.scan_structure, state.lhs_join_keys, state.join_key_state, state.probe_state, input, *sink.probe_spill, state.spill_state, state.spill_chunk); } else { - sink.hash_table->Probe(state.scan_structure, state.join_keys, state.join_key_state, state.probe_state); + sink.hash_table->Probe(state.scan_structure, state.lhs_join_keys, state.join_key_state, state.probe_state); } } - state.scan_structure.Next(state.join_keys, input, chunk); + + state.lhs_output.ReferenceColumns(input, lhs_output_columns.col_idxs); + state.scan_structure.Next(state.lhs_join_keys, state.lhs_output, chunk); if (state.scan_structure.PointersExhausted() && chunk.size() == 0) { state.scan_structure.is_null = true; @@ -860,14 +955,12 @@ class HashJoinLocalSourceState : public LocalSourceState { //! Local scan state for probe spill ColumnDataConsumerScanState probe_local_scan; //! Chunks for holding the scanned probe collection - DataChunk probe_chunk; - DataChunk join_keys; - DataChunk payload; + DataChunk lhs_probe_chunk; + DataChunk lhs_join_keys; + DataChunk lhs_output; TupleDataChunkState join_key_state; + ExpressionExecutor lhs_join_key_executor; - //! Column indices to easily reference the join keys/payload columns in probe_chunk - vector join_key_indices; - vector payload_indices; //! Scan structure for the external probe JoinHashTable::ScanStructure scan_structure; JoinHashTable::ProbeState probe_state; @@ -1044,23 +1137,18 @@ bool HashJoinGlobalSourceState::AssignTask(HashJoinGlobalSinkState &sink, HashJo HashJoinLocalSourceState::HashJoinLocalSourceState(const PhysicalHashJoin &op, const HashJoinGlobalSinkState &sink, Allocator &allocator) - : local_stage(HashJoinSourceStage::INIT), addresses(LogicalType::POINTER), + : local_stage(HashJoinSourceStage::INIT), addresses(LogicalType::POINTER), lhs_join_key_executor(sink.context), scan_structure(*sink.hash_table, join_key_state) { auto &chunk_state = probe_local_scan.current_chunk_state; chunk_state.properties = ColumnDataScanProperties::ALLOW_ZERO_COPY; - probe_chunk.Initialize(allocator, sink.probe_types); - join_keys.Initialize(allocator, op.condition_types); - payload.Initialize(allocator, op.children[0]->types); + lhs_probe_chunk.Initialize(allocator, sink.probe_types); + lhs_join_keys.Initialize(allocator, op.condition_types); + lhs_output.Initialize(allocator, op.lhs_output_columns.col_types); TupleDataCollection::InitializeChunkState(join_key_state, op.condition_types); - // Store the indices of the columns to reference them easily - idx_t col_idx = 0; - for (; col_idx < op.condition_types.size(); col_idx++) { - join_key_indices.push_back(col_idx); - } - for (; col_idx < sink.probe_types.size() - 1; col_idx++) { - payload_indices.push_back(col_idx); + for (auto &cond : op.conditions) { + lhs_join_key_executor.AddExpression(*cond.left); } } @@ -1111,7 +1199,7 @@ void HashJoinLocalSourceState::ExternalProbe(HashJoinGlobalSinkState &sink, Hash if (!scan_structure.is_null) { // Still have elements remaining (i.e. we got >STANDARD_VECTOR_SIZE elements in the previous probe) - scan_structure.Next(join_keys, payload, chunk); + scan_structure.Next(lhs_join_keys, lhs_output, chunk); if (chunk.size() != 0 || !scan_structure.PointersExhausted()) { return; } @@ -1128,22 +1216,23 @@ void HashJoinLocalSourceState::ExternalProbe(HashJoinGlobalSinkState &sink, Hash } // Scan input chunk for next probe - sink.probe_spill->consumer->ScanChunk(probe_local_scan, probe_chunk); + sink.probe_spill->consumer->ScanChunk(probe_local_scan, lhs_probe_chunk); // Get the probe chunk columns/hashes - join_keys.ReferenceColumns(probe_chunk, join_key_indices); - payload.ReferenceColumns(probe_chunk, payload_indices); - auto precomputed_hashes = &probe_chunk.data.back(); + lhs_join_keys.Reset(); + lhs_join_key_executor.Execute(lhs_probe_chunk, lhs_join_keys); + lhs_output.ReferenceColumns(lhs_probe_chunk, sink.op.lhs_output_columns.col_idxs); if (sink.hash_table->Count() == 0 && !gstate.op.EmptyResultIfRHSIsEmpty()) { - gstate.op.ConstructEmptyJoinResult(sink.hash_table->join_type, sink.hash_table->has_null, payload, chunk); + gstate.op.ConstructEmptyJoinResult(sink.hash_table->join_type, sink.hash_table->has_null, lhs_output, chunk); empty_ht_probe_in_progress = true; return; } // Perform the probe - sink.hash_table->Probe(scan_structure, join_keys, join_key_state, probe_state, precomputed_hashes); - scan_structure.Next(join_keys, payload, chunk); + auto precomputed_hashes = &lhs_probe_chunk.data.back(); + sink.hash_table->Probe(scan_structure, lhs_join_keys, join_key_state, probe_state, precomputed_hashes); + scan_structure.Next(lhs_join_keys, lhs_output, chunk); } void HashJoinLocalSourceState::ExternalScanHT(HashJoinGlobalSinkState &sink, HashJoinGlobalSourceState &gstate, @@ -1202,24 +1291,30 @@ SourceResultType PhysicalHashJoin::GetData(ExecutionContext &context, DataChunk return chunk.size() == 0 ? SourceResultType::FINISHED : SourceResultType::HAVE_MORE_OUTPUT; } -double PhysicalHashJoin::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const { +ProgressData PhysicalHashJoin::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const { auto &sink = sink_state->Cast(); auto &gstate = gstate_p.Cast(); + ProgressData res; + if (!sink.external) { if (PropagatesBuildSide(join_type)) { - return static_cast(gstate.full_outer_chunk_done) / - static_cast(gstate.full_outer_chunk_count) * 100.0; + res.done = static_cast(gstate.full_outer_chunk_done); + res.total = static_cast(gstate.full_outer_chunk_count); + return res; } - return 100.0; + res.done = 0.0; + res.total = 1.0; + return res; } auto num_partitions = static_cast(RadixPartitioning::NumberOfPartitions(sink.hash_table->GetRadixBits())); auto partition_start = static_cast(sink.hash_table->GetPartitionStart()); - auto partition_end = static_cast(sink.hash_table->GetPartitionEnd()); + // auto partition_end = static_cast(sink.hash_table->GetPartitionEnd()); // This many partitions are fully done - auto progress = partition_start / num_partitions; + res.done = partition_start; + res.total = num_partitions; auto probe_chunk_done = static_cast(gstate.probe_chunk_done); auto probe_chunk_count = static_cast(gstate.probe_chunk_count); @@ -1227,10 +1322,12 @@ double PhysicalHashJoin::GetProgress(ClientContext &context, GlobalSourceState & // Progress of the current round of probing, weighed by the number of partitions auto probe_progress = probe_chunk_done / probe_chunk_count; // Add it to the progress, weighed by the number of partitions in the current round - progress += (partition_end - partition_start) / num_partitions * probe_progress; + // progress += (partition_end - partition_start) / num_partitions * probe_progress; + // TODO also also me, fixup using somehow `partition_end - partition_start` + res.done += probe_progress; } - return progress * 100.0; + return res; } InsertionOrderPreservingMap PhysicalHashJoin::ParamsToString() const { @@ -1249,11 +1346,6 @@ InsertionOrderPreservingMap PhysicalHashJoin::ParamsToString() const { } result["Conditions"] = condition_info; - if (perfect_join_statistics.is_build_small) { - // perfect hash join - result["Build Min"] = perfect_join_statistics.build_min.ToString(); - result["Build Max"] = perfect_join_statistics.build_max.ToString(); - } SetEstimatedCardinality(result, estimated_cardinality); return result; } diff --git a/src/duckdb/src/execution/operator/join/physical_iejoin.cpp b/src/duckdb/src/execution/operator/join/physical_iejoin.cpp index 143b1f20..c5d5810f 100644 --- a/src/duckdb/src/execution/operator/join/physical_iejoin.cpp +++ b/src/duckdb/src/execution/operator/join/physical_iejoin.cpp @@ -1,18 +1,19 @@ #include "duckdb/execution/operator/join/physical_iejoin.hpp" +#include "duckdb/common/atomic.hpp" #include "duckdb/common/operator/comparison_operators.hpp" #include "duckdb/common/row_operations/row_operations.hpp" #include "duckdb/common/sort/sort.hpp" #include "duckdb/common/sort/sorted_block.hpp" +#include "duckdb/common/thread.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/parallel/event.hpp" #include "duckdb/parallel/meta_pipeline.hpp" #include "duckdb/parallel/thread_context.hpp" +#include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_reference_expression.hpp" -#include "duckdb/common/atomic.hpp" -#include "duckdb/common/thread.hpp" namespace duckdb { @@ -388,18 +389,42 @@ IEJoinUnion::IEJoinUnion(ClientContext &context, const PhysicalIEJoin &op, Sorte auto ref = make_uniq(order1.expression->return_type, 0U); vector orders; orders.emplace_back(order1.type, order1.null_order, std::move(ref)); + // The goal is to make i (from the left table) < j (from the right table), + // if value[i] and value[j] match the condition 1. + // Add a column from_left to solve the problem when there exist multiple equal values in l1. + // If the operator is loose inequality, make t1.from_left (== true) sort BEFORE t2.from_left (== false). + // Otherwise, make t1.from_left sort (== true) sort AFTER t2.from_left (== false). + // For example, if t1.time <= t2.time + // | value | 1 | 1 | 1 | 1 | + // | --------- | ----- | ----- | ----- | ----- | + // | from_left | T(l2) | T(l2) | F(r1) | F(r2) | + // if t1.time < t2.time + // | value | 1 | 1 | 1 | 1 | + // | --------- | ----- | ----- | ----- | ----- | + // | from_left | F(r2) | F(r1) | T(l2) | T(l1) | + // Using this OrderType, if i < j then value[i] (from left table) and value[j] (from right table) match + // the condition (t1.time <= t2.time or t1.time < t2.time), then from_left will force them into the correct order. + auto from_left = make_uniq(Value::BOOLEAN(true)); + orders.emplace_back(SBIterator::ComparisonValue(cmp1) == 0 ? OrderType::DESCENDING : OrderType::ASCENDING, + OrderByNullType::ORDER_DEFAULT, std::move(from_left)); l1 = make_uniq(context, orders, payload_layout, op); // LHS has positive rids ExpressionExecutor l_executor(context); l_executor.AddExpression(*order1.expression); + // add const column true + auto left_const = make_uniq(Value::BOOLEAN(true)); + l_executor.AddExpression(*left_const); l_executor.AddExpression(*order2.expression); AppendKey(t1, l_executor, *l1, 1, 1, b1); // RHS has negative rids ExpressionExecutor r_executor(context); r_executor.AddExpression(*op.rhs_orders[0].expression); + // add const column flase + auto right_const = make_uniq(Value::BOOLEAN(false)); + r_executor.AddExpression(*right_const); r_executor.AddExpression(*op.rhs_orders[1].expression); AppendKey(t2, r_executor, *l1, -1, -1, b2); @@ -447,12 +472,12 @@ IEJoinUnion::IEJoinUnion(ClientContext &context, const PhysicalIEJoin &op, Sorte // 7. initialize bit-array B (|B| = n), and set all bits to 0 n = l2->count.load(); bit_array.resize(ValidityMask::EntryCount(n), 0); - bit_mask.Initialize(bit_array.data()); + bit_mask.Initialize(bit_array.data(), n); // Bloom filter bloom_count = (n + (BLOOM_CHUNK_BITS - 1)) / BLOOM_CHUNK_BITS; bloom_array.resize(ValidityMask::EntryCount(bloom_count), 0); - bloom_filter.Initialize(bloom_array.data()); + bloom_filter.Initialize(bloom_array.data(), bloom_count); // 11. for(i←1 to n) do const auto &cmp2 = op.conditions[1].comparison; @@ -463,53 +488,6 @@ IEJoinUnion::IEJoinUnion(ClientContext &context, const PhysicalIEJoin &op, Sorte (void)NextRow(); } -idx_t IEJoinUnion::SearchL1(idx_t pos) { - // Perform an exponential search in the appropriate direction - op1->SetIndex(pos); - - idx_t step = 1; - auto hi = pos; - auto lo = pos; - if (!op1->cmp) { - // Scan left for loose inequality - lo -= MinValue(step, lo); - step *= 2; - off1->SetIndex(lo); - while (lo > 0 && op1->Compare(*off1)) { - hi = lo; - lo -= MinValue(step, lo); - step *= 2; - off1->SetIndex(lo); - } - } else { - // Scan right for strict inequality - hi += MinValue(step, n - hi); - step *= 2; - off1->SetIndex(hi); - while (hi < n && !op1->Compare(*off1)) { - lo = hi; - hi += MinValue(step, n - hi); - step *= 2; - off1->SetIndex(hi); - } - } - - // Binary search the target area - while (lo < hi) { - const auto mid = lo + (hi - lo) / 2; - off1->SetIndex(mid); - if (op1->Compare(*off1)) { - hi = mid; - } else { - lo = mid + 1; - } - } - - off1->SetIndex(lo); - - return lo; -} - bool IEJoinUnion::NextRow() { for (; i < n; ++i) { // 12. pos ← P[i] @@ -539,7 +517,7 @@ bool IEJoinUnion::NextRow() { // Find the leftmost off1 where L1[pos] op1 L1[off1..n] // These are the rows that satisfy the op1 condition // and that is where we should start scanning B from - j = SearchL1(pos); + j = pos; return true; } @@ -911,7 +889,7 @@ class IEJoinGlobalSourceState : public GlobalSourceState { GetNextPair(client, lstate); } - double GetProgress() const { + ProgressData GetProgress() const { auto &left_table = *gsink.tables[0]; auto &right_table = *gsink.tables[1]; @@ -925,7 +903,14 @@ class IEJoinGlobalSourceState : public GlobalSourceState { const auto r = MinValue(next_right.load(), right_outers.load()); const auto returned = completed.load() + l + r; - return count ? (double(returned) / double(count)) : -1; + ProgressData res; + if (count) { + res.done = double(returned); + res.total = double(count); + } else { + res.SetInvalid(); + } + return res; } const PhysicalIEJoin &op; @@ -959,7 +944,7 @@ unique_ptr PhysicalIEJoin::GetLocalSourceState(ExecutionContex return make_uniq(context.client, *this); } -double PhysicalIEJoin::GetProgress(ClientContext &context, GlobalSourceState &gsource_p) const { +ProgressData PhysicalIEJoin::GetProgress(ClientContext &context, GlobalSourceState &gsource_p) const { auto &gsource = gsource_p.Cast(); return gsource.GetProgress(); } diff --git a/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp b/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp index d7b30423..8216d91a 100644 --- a/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp +++ b/src/duckdb/src/execution/operator/join/physical_piecewise_merge_join.cpp @@ -618,7 +618,12 @@ OperatorResultType PhysicalPiecewiseMergeJoin::ResolveComplexJoin(ExecutionConte if (tail_count < result_count) { result_count = tail_count; - chunk.Slice(*sel, result_count); + if (result_count == 0) { + // Need to reset here otherwise we may use the non-flat chunk when constructing LEFT/OUTER + chunk.Reset(); + } else { + chunk.Slice(*sel, result_count); + } } } diff --git a/src/duckdb/src/execution/operator/join/physical_range_join.cpp b/src/duckdb/src/execution/operator/join/physical_range_join.cpp index 6c7deb1e..f7701f84 100644 --- a/src/duckdb/src/execution/operator/join/physical_range_join.cpp +++ b/src/duckdb/src/execution/operator/join/physical_range_join.cpp @@ -62,7 +62,6 @@ PhysicalRangeJoin::GlobalSortedTable::GlobalSortedTable(ClientContext &context, RowLayout &payload_layout, const PhysicalOperator &op_p) : op(op_p), global_sort_state(BufferManager::GetBufferManager(context), orders, payload_layout), has_null(0), count(0), memory_per_thread(0) { - D_ASSERT(orders.size() == 1); // Set external (can be forced with the PRAGMA) auto &config = ClientConfig::GetConfig(context); diff --git a/src/duckdb/src/execution/operator/order/physical_order.cpp b/src/duckdb/src/execution/operator/order/physical_order.cpp index e0bb0c94..71294e9b 100644 --- a/src/duckdb/src/execution/operator/order/physical_order.cpp +++ b/src/duckdb/src/execution/operator/order/physical_order.cpp @@ -264,10 +264,14 @@ SourceResultType PhysicalOrder::GetData(ExecutionContext &context, DataChunk &ch return chunk.size() == 0 ? SourceResultType::FINISHED : SourceResultType::HAVE_MORE_OUTPUT; } -idx_t PhysicalOrder::GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate_p, - LocalSourceState &lstate_p) const { +OperatorPartitionData PhysicalOrder::GetPartitionData(ExecutionContext &context, DataChunk &chunk, + GlobalSourceState &gstate_p, LocalSourceState &lstate_p, + const OperatorPartitionInfo &partition_info) const { + if (partition_info.RequiresPartitionColumns()) { + throw InternalException("PhysicalOrder::GetPartitionData: partition columns not supported"); + } auto &lstate = lstate_p.Cast(); - return lstate.batch_index; + return OperatorPartitionData(lstate.batch_index); } InsertionOrderPreservingMap PhysicalOrder::ParamsToString() const { diff --git a/src/duckdb/src/execution/operator/order/physical_top_n.cpp b/src/duckdb/src/execution/operator/order/physical_top_n.cpp index aa686878..c55b5069 100644 --- a/src/duckdb/src/execution/operator/order/physical_top_n.cpp +++ b/src/duckdb/src/execution/operator/order/physical_top_n.cpp @@ -1,19 +1,20 @@ #include "duckdb/execution/operator/order/physical_top_n.hpp" #include "duckdb/common/assert.hpp" -#include "duckdb/common/sort/sort.hpp" -#include "duckdb/common/types/row/row_layout.hpp" -#include "duckdb/common/value_operations/value_operations.hpp" -#include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/execution/expression_executor.hpp" +#include "duckdb/function/create_sort_key.hpp" #include "duckdb/storage/data_table.hpp" +#include "duckdb/planner/filter/dynamic_filter.hpp" namespace duckdb { PhysicalTopN::PhysicalTopN(vector types, vector orders, idx_t limit, idx_t offset, - idx_t estimated_cardinality) + shared_ptr dynamic_filter_p, idx_t estimated_cardinality) : PhysicalOperator(PhysicalOperatorType::TOP_N, std::move(types), estimated_cardinality), orders(std::move(orders)), - limit(limit), offset(offset) { + limit(limit), offset(offset), dynamic_filter(std::move(dynamic_filter_p)) { +} + +PhysicalTopN::~PhysicalTopN() { } //===--------------------------------------------------------------------===// @@ -21,33 +22,55 @@ PhysicalTopN::PhysicalTopN(vector types, vector o //===--------------------------------------------------------------------===// class TopNHeap; -struct TopNScanState { - unique_ptr scanner; - idx_t pos; - bool exclude_offset; -}; +struct TopNEntry { + string_t sort_key; + idx_t index; -class TopNSortState { -public: - explicit TopNSortState(TopNHeap &heap); + bool operator<(const TopNEntry &other) const { + return sort_key < other.sort_key; + } +}; - TopNHeap &heap; - unique_ptr local_state; - unique_ptr global_state; - idx_t count; - bool is_sorted; +struct TopNScanState { + TopNScanState() : pos(0), sel(STANDARD_VECTOR_SIZE) { + } -public: - void Initialize(); - void Append(DataChunk &sort_chunk, DataChunk &payload); + idx_t pos; + vector scan_order; + SelectionVector sel; +}; - void Sink(DataChunk &input); - void Finalize(); +struct TopNBoundaryValue { + explicit TopNBoundaryValue(const PhysicalTopN &op) + : op(op), boundary_vector(op.orders[0].expression->return_type), + boundary_modifiers(op.orders[0].type, op.orders[0].null_order) { + } - void Move(TopNSortState &other); + const PhysicalTopN &op; + mutex lock; + string boundary_value; + bool is_set = false; + Vector boundary_vector; + OrderModifiers boundary_modifiers; + + string GetBoundaryValue() { + lock_guard l(lock); + return boundary_value; + } - void InitializeScan(TopNScanState &state, bool exclude_offset); - void Scan(TopNScanState &state, DataChunk &chunk); + void UpdateValue(string_t boundary_val) { + unique_lock l(lock); + if (!is_set || boundary_val < string_t(boundary_value)) { + boundary_value = boundary_val.GetString(); + is_set = true; + if (op.dynamic_filter) { + CreateSortKeyHelpers::DecodeSortKey(boundary_val, boundary_vector, 0, boundary_modifiers); + auto new_dynamic_value = boundary_vector.GetValue(0); + l.unlock(); + op.dynamic_filter->SetValue(std::move(new_dynamic_value)); + } + } + } }; class TopNHeap { @@ -61,162 +84,77 @@ class TopNHeap { Allocator &allocator; BufferManager &buffer_manager; + unsafe_vector heap; const vector &payload_types; const vector &orders; + vector modifiers; idx_t limit; idx_t offset; - TopNSortState sort_state; + idx_t heap_size; ExpressionExecutor executor; DataChunk sort_chunk; - DataChunk compare_chunk; + DataChunk heap_data; DataChunk payload_chunk; - //! A set of boundary values that determine either the minimum or the maximum value we have to consider for our - //! top-n - DataChunk boundary_values; - //! Whether or not the boundary_values has been set. The boundary_values are only set after a reduce step - bool has_boundary_values; + DataChunk sort_keys; + StringHeap sort_key_heap; + SelectionVector matching_sel; + + DataChunk compare_chunk; + //! Cached global boundary value as a set of constant vectors + DataChunk boundary_values; + //! Cached global boundary value in sort-key format + string boundary_val; SelectionVector final_sel; SelectionVector true_sel; SelectionVector false_sel; SelectionVector new_remaining_sel; public: - void Sink(DataChunk &input); + void Sink(DataChunk &input, optional_ptr boundary_value = nullptr); void Combine(TopNHeap &other); void Reduce(); void Finalize(); - void ExtractBoundaryValues(DataChunk ¤t_chunk, DataChunk &prev_chunk); - void InitializeScan(TopNScanState &state, bool exclude_offset); void Scan(TopNScanState &state, DataChunk &chunk); - bool CheckBoundaryValues(DataChunk &sort_chunk, DataChunk &payload); -}; - -//===--------------------------------------------------------------------===// -// TopNSortState -//===--------------------------------------------------------------------===// -TopNSortState::TopNSortState(TopNHeap &heap) : heap(heap), count(0), is_sorted(false) { -} + bool CheckBoundaryValues(DataChunk &sort_chunk, DataChunk &payload, TopNBoundaryValue &boundary_val); + void AddSmallHeap(DataChunk &input, Vector &sort_keys_vec); + void AddLargeHeap(DataChunk &input, Vector &sort_keys_vec); -void TopNSortState::Initialize() { - RowLayout layout; - layout.Initialize(heap.payload_types); - auto &buffer_manager = heap.buffer_manager; - global_state = make_uniq(buffer_manager, heap.orders, layout); - local_state = make_uniq(); - local_state->Initialize(*global_state, buffer_manager); -} - -void TopNSortState::Append(DataChunk &sort_chunk, DataChunk &payload) { - D_ASSERT(!is_sorted); - if (heap.has_boundary_values) { - if (!heap.CheckBoundaryValues(sort_chunk, payload)) { - return; - } +public: + idx_t ReduceThreshold() const { + return MaxValue(STANDARD_VECTOR_SIZE * 5ULL, 2ULL * heap_size); } - local_state->SinkChunk(sort_chunk, payload); - count += payload.size(); -} - -void TopNSortState::Sink(DataChunk &input) { - // compute the ordering values for the new chunk - heap.sort_chunk.Reset(); - heap.executor.Execute(input, heap.sort_chunk); - - // append the new chunk to what we have already - Append(heap.sort_chunk, input); -} - -void TopNSortState::Move(TopNSortState &other) { - local_state = std::move(other.local_state); - global_state = std::move(other.global_state); - count = other.count; - is_sorted = other.is_sorted; -} - -void TopNSortState::Finalize() { - D_ASSERT(!is_sorted); - global_state->AddLocalState(*local_state); - - global_state->PrepareMergePhase(); - while (global_state->sorted_blocks.size() > 1) { - MergeSorter merge_sorter(*global_state, heap.buffer_manager); - merge_sorter.PerformInMergeRound(); - global_state->CompleteMergeRound(); + idx_t InitialHeapAllocSize() const { + return MinValue(STANDARD_VECTOR_SIZE * 100ULL, ReduceThreshold()) + STANDARD_VECTOR_SIZE; } - is_sorted = true; -} -void TopNSortState::InitializeScan(TopNScanState &state, bool exclude_offset) { - D_ASSERT(is_sorted); - if (global_state->sorted_blocks.empty()) { - state.scanner = nullptr; - } else { - D_ASSERT(global_state->sorted_blocks.size() == 1); - state.scanner = make_uniq(*global_state->sorted_blocks[0]->payload_data, *global_state); - } - state.pos = 0; - state.exclude_offset = exclude_offset && heap.offset > 0; -} - -void TopNSortState::Scan(TopNScanState &state, DataChunk &chunk) { - if (!state.scanner) { - return; - } - auto offset = heap.offset; - auto limit = heap.limit; - D_ASSERT(is_sorted); - while (chunk.size() == 0) { - state.scanner->Scan(chunk); - if (chunk.size() == 0) { - break; +private: + inline bool EntryShouldBeAdded(const string_t &sort_key) { + if (heap.size() < heap_size) { + // heap is full - check the latest entry + return true; } - idx_t start = state.pos; - idx_t end = state.pos + chunk.size(); - state.pos = end; - - idx_t chunk_start = 0; - idx_t chunk_end = chunk.size(); - if (state.exclude_offset) { - // we need to exclude all tuples before the OFFSET - // check if we should include anything - if (end <= offset) { - // end is smaller than offset: include nothing! - chunk.Reset(); - continue; - } else if (start < offset) { - // we need to slice - chunk_start = offset - start; - } - } - // check if we need to truncate at the offset + limit mark - if (start >= offset + limit) { - // we are finished - chunk_end = 0; - } else if (end > offset + limit) { - // the end extends past the offset + limit - // truncate the current chunk - chunk_end = offset + limit - start; + if (sort_key < heap.front().sort_key) { + // sort key is smaller than current max value + return true; } - D_ASSERT(chunk_end - chunk_start <= STANDARD_VECTOR_SIZE); - if (chunk_end == chunk_start) { - chunk.Reset(); - break; - } else if (chunk_start > 0) { - SelectionVector sel(STANDARD_VECTOR_SIZE); - for (idx_t i = chunk_start; i < chunk_end; i++) { - sel.set_index(i - chunk_start, i); - } - chunk.Slice(sel, chunk_end - chunk_start); - } else if (chunk_end != chunk.size()) { - chunk.SetCardinality(chunk_end); + // heap is full and there is no room for the entry + return false; + } + + inline void AddEntryToHeap(const TopNEntry &entry) { + if (heap.size() >= heap_size) { + std::pop_heap(heap.begin(), heap.end()); + heap.pop_back(); } + heap.push_back(entry); + std::push_heap(heap.begin(), heap.end()); } -} +}; //===--------------------------------------------------------------------===// // TopNHeap @@ -224,21 +162,25 @@ void TopNSortState::Scan(TopNScanState &state, DataChunk &chunk) { TopNHeap::TopNHeap(ClientContext &context, Allocator &allocator, const vector &payload_types_p, const vector &orders_p, idx_t limit, idx_t offset) : allocator(allocator), buffer_manager(BufferManager::GetBufferManager(context)), payload_types(payload_types_p), - orders(orders_p), limit(limit), offset(offset), sort_state(*this), executor(context), has_boundary_values(false), - final_sel(STANDARD_VECTOR_SIZE), true_sel(STANDARD_VECTOR_SIZE), false_sel(STANDARD_VECTOR_SIZE), - new_remaining_sel(STANDARD_VECTOR_SIZE) { + orders(orders_p), limit(limit), offset(offset), heap_size(limit + offset), executor(context), + matching_sel(STANDARD_VECTOR_SIZE), final_sel(STANDARD_VECTOR_SIZE), true_sel(STANDARD_VECTOR_SIZE), + false_sel(STANDARD_VECTOR_SIZE), new_remaining_sel(STANDARD_VECTOR_SIZE) { // initialize the executor and the sort_chunk vector sort_types; for (auto &order : orders) { auto &expr = order.expression; sort_types.push_back(expr->return_type); executor.AddExpression(*expr); + modifiers.emplace_back(order.type, order.null_order); } + heap.reserve(InitialHeapAllocSize()); + vector sort_keys_type {LogicalType::BLOB}; + sort_keys.Initialize(allocator, sort_keys_type); + heap_data.Initialize(allocator, payload_types, InitialHeapAllocSize()); payload_chunk.Initialize(allocator, payload_types); sort_chunk.Initialize(allocator, sort_types); compare_chunk.Initialize(allocator, sort_types); boundary_values.Initialize(allocator, sort_types); - sort_state.Initialize(); } TopNHeap::TopNHeap(ClientContext &context, const vector &payload_types, @@ -251,84 +193,93 @@ TopNHeap::TopNHeap(ExecutionContext &context, const vector &payload : TopNHeap(context.client, Allocator::Get(context.client), payload_types, orders, limit, offset) { } -void TopNHeap::Sink(DataChunk &input) { - sort_state.Sink(input); -} +void TopNHeap::AddSmallHeap(DataChunk &input, Vector &sort_keys_vec) { + // insert the sort keys into the priority queue + constexpr idx_t BASE_INDEX = NumericLimits::Maximum(); -void TopNHeap::Combine(TopNHeap &other) { - other.Finalize(); - - TopNScanState state; - other.InitializeScan(state, false); - while (true) { - payload_chunk.Reset(); - other.Scan(state, payload_chunk); - if (payload_chunk.size() == 0) { - break; + bool any_added = false; + auto sort_key_values = FlatVector::GetData(sort_keys_vec); + for (idx_t r = 0; r < input.size(); r++) { + auto &sort_key = sort_key_values[r]; + if (!EntryShouldBeAdded(sort_key)) { + continue; } - Sink(payload_chunk); + // replace the previous top entry with the new entry + TopNEntry entry; + entry.sort_key = sort_key; + entry.index = BASE_INDEX + r; + AddEntryToHeap(entry); + any_added = true; } - Reduce(); -} - -void TopNHeap::Finalize() { - sort_state.Finalize(); -} - -void TopNHeap::Reduce() { - idx_t min_sort_threshold = MaxValue(STANDARD_VECTOR_SIZE * 5ULL, 2ULL * (limit + offset)); - if (sort_state.count < min_sort_threshold) { - // only reduce when we pass two times the limit + offset, or 5 vectors (whichever comes first) + if (!any_added) { + // early-out: no matches return; } - sort_state.Finalize(); - TopNSortState new_state(*this); - new_state.Initialize(); - TopNScanState state; - sort_state.InitializeScan(state, false); - - DataChunk new_chunk; - new_chunk.Initialize(allocator, payload_types); - - DataChunk *current_chunk = &new_chunk; - DataChunk *prev_chunk = &payload_chunk; - has_boundary_values = false; - while (true) { - current_chunk->Reset(); - Scan(state, *current_chunk); - if (current_chunk->size() == 0) { - ExtractBoundaryValues(*current_chunk, *prev_chunk); - break; + // for all matching entries we need to copy over the corresponding payload values + idx_t match_count = 0; + for (auto &entry : heap) { + if (entry.index < BASE_INDEX) { + continue; + } + // this entry was added in this chunk + // if not inlined - copy over the string to the string heap + if (!entry.sort_key.IsInlined()) { + entry.sort_key = sort_key_heap.AddBlob(entry.sort_key); } - new_state.Sink(*current_chunk); - std::swap(current_chunk, prev_chunk); + // to finalize the addition of this entry we need to move over the payload data + matching_sel.set_index(match_count, entry.index - BASE_INDEX); + entry.index = heap_data.size() + match_count; + match_count++; } - sort_state.Move(new_state); + // copy over the input rows to the payload chunk + heap_data.Append(input, true, &matching_sel, match_count); } -void TopNHeap::ExtractBoundaryValues(DataChunk ¤t_chunk, DataChunk &prev_chunk) { - // extract the last entry of the prev_chunk and set as minimum value - D_ASSERT(prev_chunk.size() > 0); - for (idx_t col_idx = 0; col_idx < current_chunk.ColumnCount(); col_idx++) { - ConstantVector::Reference(current_chunk.data[col_idx], prev_chunk.data[col_idx], prev_chunk.size() - 1, - prev_chunk.size()); +void TopNHeap::AddLargeHeap(DataChunk &input, Vector &sort_keys_vec) { + auto sort_key_values = FlatVector::GetData(sort_keys_vec); + idx_t base_index = heap_data.size(); + idx_t match_count = 0; + for (idx_t r = 0; r < input.size(); r++) { + auto &sort_key = sort_key_values[r]; + if (!EntryShouldBeAdded(sort_key)) { + continue; + } + // replace the previous top entry with the new entry + TopNEntry entry; + entry.sort_key = sort_key.IsInlined() ? sort_key : sort_key_heap.AddBlob(sort_key); + entry.index = base_index + match_count; + AddEntryToHeap(entry); + matching_sel.set_index(match_count++, r); } - current_chunk.SetCardinality(1); - sort_chunk.Reset(); - executor.Execute(¤t_chunk, sort_chunk); - - boundary_values.Reset(); - boundary_values.Append(sort_chunk); - boundary_values.SetCardinality(1); - for (idx_t i = 0; i < boundary_values.ColumnCount(); i++) { - boundary_values.data[i].SetVectorType(VectorType::CONSTANT_VECTOR); + if (match_count == 0) { + // early-out: no matches + return; } - has_boundary_values = true; + + // copy over the input rows to the payload chunk + heap_data.Append(input, true, &matching_sel, match_count); } -bool TopNHeap::CheckBoundaryValues(DataChunk &sort_chunk, DataChunk &payload) { +bool TopNHeap::CheckBoundaryValues(DataChunk &sort_chunk, DataChunk &payload, TopNBoundaryValue &global_boundary) { + // get the global boundary value + auto current_boundary_val = global_boundary.GetBoundaryValue(); + if (current_boundary_val.empty()) { + // no boundary value (yet) - don't do anything + return true; + } + if (current_boundary_val != boundary_val) { + // new boundary value - decode + boundary_val = std::move(current_boundary_val); + boundary_values.Reset(); + CreateSortKeyHelpers::DecodeSortKey(string_t(boundary_val), boundary_values, 0, modifiers); + for (auto &col : boundary_values.data) { + col.SetVectorType(VectorType::CONSTANT_VECTOR); + } + } + boundary_values.SetCardinality(sort_chunk.size()); + // we have boundary values // from these boundary values, determine which values we should insert (if any) idx_t final_count = 0; @@ -390,23 +341,138 @@ bool TopNHeap::CheckBoundaryValues(DataChunk &sort_chunk, DataChunk &payload) { return true; } +void TopNHeap::Sink(DataChunk &input, optional_ptr global_boundary) { + static constexpr idx_t SMALL_HEAP_THRESHOLD = 100; + + // compute the ordering values for the new chunk + sort_chunk.Reset(); + executor.Execute(input, sort_chunk); + + if (global_boundary) { + // if we have a global boundary value check which rows pass before doing anything + if (!CheckBoundaryValues(sort_chunk, input, *global_boundary)) { + // nothing in this chunk can be in the final result + return; + } + } + + // construct the sort key from the sort chunk + sort_keys.Reset(); + auto &sort_keys_vec = sort_keys.data[0]; + CreateSortKeyHelpers::CreateSortKey(sort_chunk, modifiers, sort_keys_vec); + + if (heap_size <= SMALL_HEAP_THRESHOLD) { + AddSmallHeap(input, sort_keys_vec); + } else { + AddLargeHeap(input, sort_keys_vec); + } + + // if we modified the heap we might be able to update the global boundary + // note that the global boundary only applies to FULL heaps + if (heap.size() >= heap_size && global_boundary) { + global_boundary->UpdateValue(heap.front().sort_key); + } +} + +void TopNHeap::Combine(TopNHeap &other) { + other.Finalize(); + + idx_t match_count = 0; + // merge the heap of other into this + for (idx_t i = 0; i < other.heap.size(); i++) { + // heap is full - check the latest entry + auto &other_entry = other.heap[i]; + auto &sort_key = other_entry.sort_key; + if (!EntryShouldBeAdded(sort_key)) { + continue; + } + // add this entry + TopNEntry new_entry; + new_entry.sort_key = sort_key.IsInlined() ? sort_key : sort_key_heap.AddBlob(sort_key); + new_entry.index = heap_data.size() + match_count; + AddEntryToHeap(new_entry); + + matching_sel.set_index(match_count++, other_entry.index); + if (match_count >= STANDARD_VECTOR_SIZE) { + // flush + heap_data.Append(other.heap_data, true, &matching_sel, match_count); + match_count = 0; + } + } + if (match_count > 0) { + // flush + heap_data.Append(other.heap_data, true, &matching_sel, match_count); + match_count = 0; + } + Reduce(); +} + +void TopNHeap::Finalize() { +} + +void TopNHeap::Reduce() { + if (heap_data.size() < ReduceThreshold()) { + // only reduce when we pass the reduce threshold + return; + } + // we have too many values in the heap - reduce them + StringHeap new_sort_heap; + DataChunk new_heap_data; + new_heap_data.Initialize(allocator, payload_types, heap.size()); + + SelectionVector new_payload_sel(heap.size()); + for (idx_t i = 0; i < heap.size(); i++) { + auto &entry = heap[i]; + // the entry is not inlined - move the sort key to the new sort heap + if (!entry.sort_key.IsInlined()) { + entry.sort_key = new_sort_heap.AddBlob(entry.sort_key); + } + // move this heap entry to position X in the payload chunk + new_payload_sel.set_index(i, entry.index); + entry.index = i; + } + + // copy over the data from the current payload chunk to the new payload chunk + new_heap_data.Slice(heap_data, new_payload_sel, heap.size()); + new_heap_data.Flatten(); + + sort_key_heap.Move(new_sort_heap); + heap_data.Reference(new_heap_data); +} + void TopNHeap::InitializeScan(TopNScanState &state, bool exclude_offset) { - sort_state.InitializeScan(state, exclude_offset); + auto heap_copy = heap; + // traverse the rest of the heap + state.scan_order.resize(heap_copy.size()); + while (!heap_copy.empty()) { + std::pop_heap(heap_copy.begin(), heap_copy.end()); + state.scan_order[heap_copy.size() - 1] = UnsafeNumericCast(heap_copy.back().index); + heap_copy.pop_back(); + } + state.pos = exclude_offset ? offset : 0; } void TopNHeap::Scan(TopNScanState &state, DataChunk &chunk) { - sort_state.Scan(state, chunk); + if (state.pos >= state.scan_order.size()) { + return; + } + SelectionVector sel(state.scan_order.data() + state.pos); + idx_t count = MinValue(STANDARD_VECTOR_SIZE, state.scan_order.size() - state.pos); + state.pos += STANDARD_VECTOR_SIZE; + + chunk.Reset(); + chunk.Slice(heap_data, sel, count); } class TopNGlobalState : public GlobalSinkState { public: - TopNGlobalState(ClientContext &context, const vector &payload_types, - const vector &orders, idx_t limit, idx_t offset) - : heap(context, payload_types, orders, limit, offset) { + TopNGlobalState(ClientContext &context, const PhysicalTopN &op) + : heap(context, op.types, op.orders, op.limit, op.offset), boundary_value(op) { } mutex lock; TopNHeap heap; + TopNBoundaryValue boundary_value; }; class TopNLocalState : public LocalSinkState { @@ -424,7 +490,10 @@ unique_ptr PhysicalTopN::GetLocalSinkState(ExecutionContext &con } unique_ptr PhysicalTopN::GetGlobalSinkState(ClientContext &context) const { - return make_uniq(context, types, orders, limit, offset); + if (dynamic_filter) { + dynamic_filter->Reset(); + } + return make_uniq(context, *this); } //===--------------------------------------------------------------------===// @@ -432,8 +501,9 @@ unique_ptr PhysicalTopN::GetGlobalSinkState(ClientContext &cont //===--------------------------------------------------------------------===// SinkResultType PhysicalTopN::Sink(ExecutionContext &context, DataChunk &chunk, OperatorSinkInput &input) const { // append to the local sink state + auto &gstate = input.global_state.Cast(); auto &sink = input.local_state.Cast(); - sink.heap.Sink(chunk); + sink.heap.Sink(chunk, &gstate.boundary_value); sink.heap.Reduce(); return SinkResultType::NEED_MORE_INPUT; } diff --git a/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp b/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp index d1fcd7b7..4effccaf 100644 --- a/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp +++ b/src/duckdb/src/execution/operator/persistent/physical_batch_copy_to_file.cpp @@ -143,7 +143,7 @@ class FixedBatchCopyLocalState : public LocalSinkState { FixedBatchCopyState current_task = FixedBatchCopyState::SINKING_DATA; void InitializeCollection(ClientContext &context, const PhysicalOperator &op) { - collection = make_uniq(context, op.children[0]->types, ColumnDataAllocatorType::HYBRID); + collection = make_uniq(BufferAllocator::Get(context), op.children[0]->types); collection->InitializeAppend(append_state); local_memory_usage = 0; } @@ -434,7 +434,7 @@ void PhysicalBatchCopyToFile::RepartitionBatches(ClientContext &context, GlobalS // the collection is too large for a batch - we need to repartition // create an empty collection auto new_collection = - make_uniq(context, children[0]->types, ColumnDataAllocatorType::HYBRID); + make_uniq(BufferAllocator::Get(context), children[0]->types); append_batch = make_uniq(0U, std::move(new_collection)); } if (append_batch) { @@ -458,8 +458,7 @@ void PhysicalBatchCopyToFile::RepartitionBatches(ClientContext &context, GlobalS // the collection is full - move it to the result and create a new one task_manager.AddTask(make_uniq(gstate.scheduled_batch_index++, std::move(append_batch))); - auto new_collection = - make_uniq(context, children[0]->types, ColumnDataAllocatorType::HYBRID); + auto new_collection = make_uniq(BufferAllocator::Get(context), children[0]->types); append_batch = make_uniq(0U, std::move(new_collection)); append_batch->collection->InitializeAppend(append_state); } diff --git a/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp b/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp index 8bad7cbb..58c7a060 100644 --- a/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp +++ b/src/duckdb/src/execution/operator/persistent/physical_batch_insert.cpp @@ -34,6 +34,8 @@ PhysicalBatchInsert::PhysicalBatchInsert(LogicalOperator &op, SchemaCatalogEntry //===--------------------------------------------------------------------===// // CollectionMerger //===--------------------------------------------------------------------===// +enum class RowGroupBatchType : uint8_t { FLUSHED, NOT_FLUSHED }; + class CollectionMerger { public: explicit CollectionMerger(ClientContext &context) : context(context) { @@ -41,10 +43,17 @@ class CollectionMerger { ClientContext &context; vector> current_collections; + RowGroupBatchType batch_type = RowGroupBatchType::NOT_FLUSHED; public: - void AddCollection(unique_ptr collection) { + void AddCollection(unique_ptr collection, RowGroupBatchType type) { current_collections.push_back(std::move(collection)); + if (type == RowGroupBatchType::FLUSHED) { + batch_type = RowGroupBatchType::FLUSHED; + if (current_collections.size() > 1) { + throw InternalException("Cannot merge flushed collections"); + } + } } bool Empty() { @@ -65,9 +74,9 @@ class CollectionMerger { DataChunk scan_chunk; scan_chunk.Initialize(context, types); - vector column_ids; + vector column_ids; for (idx_t i = 0; i < types.size(); i++) { - column_ids.push_back(i); + column_ids.emplace_back(i); } for (auto &collection : current_collections) { if (!collection) { @@ -91,13 +100,14 @@ class CollectionMerger { } new_collection->FinalizeAppend(TransactionData(0, 0), append_state); writer.WriteLastRowGroup(*new_collection); + } else if (batch_type == RowGroupBatchType::NOT_FLUSHED) { + writer.WriteLastRowGroup(*new_collection); } current_collections.clear(); return new_collection; } }; -enum class RowGroupBatchType : uint8_t { FLUSHED, NOT_FLUSHED }; struct RowGroupBatchEntry { RowGroupBatchEntry(idx_t batch_idx, unique_ptr collection_p, RowGroupBatchType type) : batch_idx(batch_idx), total_rows(collection_p->GetTotalRows()), unflushed_memory(0), @@ -131,19 +141,21 @@ class BatchInsertGlobalState : public GlobalSinkState { explicit BatchInsertGlobalState(ClientContext &context, DuckTableEntry &table, idx_t minimum_memory_per_thread) : memory_manager(context, minimum_memory_per_thread), table(table), insert_count(0), optimistically_written(false), minimum_memory_per_thread(minimum_memory_per_thread) { + row_group_size = table.GetStorage().GetRowGroupSize(); } BatchMemoryManager memory_manager; BatchTaskManager task_manager; mutex lock; DuckTableEntry &table; + idx_t row_group_size; idx_t insert_count; vector collections; idx_t next_start = 0; atomic optimistically_written; idx_t minimum_memory_per_thread; - static bool ReadyToMerge(idx_t count); + bool ReadyToMerge(idx_t count) const; void ScheduleMergeTasks(idx_t min_batch_index); unique_ptr MergeCollections(ClientContext &context, vector merge_collections, @@ -178,8 +190,8 @@ class BatchInsertLocalState : public LocalSinkState { void CreateNewCollection(DuckTableEntry &table, const vector &insert_types) { auto table_info = table.GetStorage().GetDataTableInfo(); - auto &block_manager = TableIOManager::Get(table.GetStorage()).GetBlockManagerForRowData(); - current_collection = make_uniq(std::move(table_info), block_manager, insert_types, + auto &io_manager = TableIOManager::Get(table.GetStorage()); + current_collection = make_uniq(std::move(table_info), io_manager, insert_types, NumericCast(MAX_ROW_ID)); current_collection->InitializeEmpty(); current_collection->InitializeAppend(current_append_state); @@ -227,21 +239,21 @@ struct BatchMergeTask { idx_t total_count; }; -bool BatchInsertGlobalState::ReadyToMerge(idx_t count) { +bool BatchInsertGlobalState::ReadyToMerge(idx_t count) const { // we try to merge so the count fits nicely into row groups - if (count >= Storage::ROW_GROUP_SIZE / 10 * 9 && count <= Storage::ROW_GROUP_SIZE) { + if (count >= row_group_size / 10 * 9 && count <= row_group_size) { // 90%-100% of row group size return true; } - if (count >= Storage::ROW_GROUP_SIZE / 10 * 18 && count <= Storage::ROW_GROUP_SIZE * 2) { + if (count >= row_group_size / 10 * 18 && count <= row_group_size * 2) { // 180%-200% of row group size return true; } - if (count >= Storage::ROW_GROUP_SIZE / 10 * 27 && count <= Storage::ROW_GROUP_SIZE * 3) { + if (count >= row_group_size / 10 * 27 && count <= row_group_size * 3) { // 270%-300% of row group size return true; } - if (count >= Storage::ROW_GROUP_SIZE / 10 * 36) { + if (count >= row_group_size / 10 * 36) { // >360% of row group size return true; } @@ -330,7 +342,7 @@ unique_ptr BatchInsertGlobalState::MergeCollections(ClientCo CollectionMerger merger(context); idx_t written_data = 0; for (auto &entry : merge_collections) { - merger.AddCollection(std::move(entry.collection)); + merger.AddCollection(std::move(entry.collection), RowGroupBatchType::NOT_FLUSHED); written_data += entry.unflushed_memory; } optimistically_written = true; @@ -346,7 +358,7 @@ void BatchInsertGlobalState::AddCollection(ClientContext &context, idx_t batch_i batch_index, min_batch_index); } auto new_count = current_collection->GetTotalRows(); - auto batch_type = new_count < Storage::ROW_GROUP_SIZE ? RowGroupBatchType::NOT_FLUSHED : RowGroupBatchType::FLUSHED; + auto batch_type = new_count < row_group_size ? RowGroupBatchType::NOT_FLUSHED : RowGroupBatchType::FLUSHED; if (batch_type == RowGroupBatchType::FLUSHED && writer) { writer->WriteLastRowGroup(*current_collection); } @@ -556,7 +568,7 @@ SinkFinalizeType PhysicalBatchInsert::Finalize(Pipeline &pipeline, Event &event, auto &gstate = input.global_state.Cast(); auto &memory_manager = gstate.memory_manager; - if (gstate.optimistically_written || gstate.insert_count >= LocalStorage::MERGE_THRESHOLD) { + if (gstate.optimistically_written || gstate.insert_count >= gstate.row_group_size) { // we have written data to disk optimistically or are inserting a large amount of data // perform a final pass over all of the row groups and merge them together vector> mergers; @@ -569,7 +581,7 @@ SinkFinalizeType PhysicalBatchInsert::Finalize(Pipeline &pipeline, Event &event, if (!current_merger) { current_merger = make_uniq(context); } - current_merger->AddCollection(std::move(entry.collection)); + current_merger->AddCollection(std::move(entry.collection), entry.type); memory_manager.ReduceUnflushedMemory(entry.unflushed_memory); } else { // this collection has been flushed: it does not need to be merged @@ -580,7 +592,7 @@ SinkFinalizeType PhysicalBatchInsert::Finalize(Pipeline &pipeline, Event &event, current_merger.reset(); } auto larger_merger = make_uniq(context); - larger_merger->AddCollection(std::move(entry.collection)); + larger_merger->AddCollection(std::move(entry.collection), entry.type); mergers.push_back(std::move(larger_merger)); } } diff --git a/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp b/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp index fece3ef0..fa85d670 100644 --- a/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp +++ b/src/duckdb/src/execution/operator/persistent/physical_copy_to_file.cpp @@ -510,6 +510,12 @@ SinkFinalizeType PhysicalCopyToFile::Finalize(Pipeline &pipeline, Event &event, } if (per_thread_output) { // already happened in combine + if (NumericCast(gstate.rows_copied.load()) == 0 && sink_state != nullptr) { + // no rows from source, write schema to file + auto global_lock = gstate.lock.GetExclusiveLock(); + gstate.global_state = CreateFileState(context, *sink_state, *global_lock); + function.copy_to_finalize(context, *bind_data, *gstate.global_state); + } return SinkFinalizeType::READY; } if (function.copy_to_finalize) { diff --git a/src/duckdb/src/execution/operator/persistent/physical_delete.cpp b/src/duckdb/src/execution/operator/persistent/physical_delete.cpp index ec832aa2..acbb8b9d 100644 --- a/src/duckdb/src/execution/operator/persistent/physical_delete.cpp +++ b/src/duckdb/src/execution/operator/persistent/physical_delete.cpp @@ -51,7 +51,7 @@ SinkResultType PhysicalDelete::Sink(ExecutionContext &context, DataChunk &chunk, auto &transaction = DuckTransaction::Get(context.client, table.db); auto &row_identifiers = chunk.data[row_id_index]; - vector column_ids; + vector column_ids; for (idx_t i = 0; i < table.ColumnCount(); i++) { column_ids.emplace_back(i); }; diff --git a/src/duckdb/src/execution/operator/persistent/physical_export.cpp b/src/duckdb/src/execution/operator/persistent/physical_export.cpp index ccb9cd31..66afb4c9 100644 --- a/src/duckdb/src/execution/operator/persistent/physical_export.cpp +++ b/src/duckdb/src/execution/operator/persistent/physical_export.cpp @@ -9,15 +9,23 @@ #include "duckdb/parallel/pipeline.hpp" #include "duckdb/parser/keyword_helper.hpp" #include "duckdb/transaction/transaction.hpp" +#include "duckdb/catalog/duck_catalog.hpp" +#include "duckdb/catalog/dependency_manager.hpp" #include #include namespace duckdb { +void ReorderTableEntries(catalog_entry_vector_t &tables); + using std::stringstream; -void ReorderTableEntries(catalog_entry_vector_t &tables); +PhysicalExport::PhysicalExport(vector types, CopyFunction function, unique_ptr info, + idx_t estimated_cardinality, unique_ptr exported_tables) + : PhysicalOperator(PhysicalOperatorType::EXPORT, std::move(types), estimated_cardinality), + function(std::move(function)), info(std::move(info)), exported_tables(std::move(exported_tables)) { +} static void WriteCatalogEntries(stringstream &ss, catalog_entry_vector_t &entries) { for (auto &entry : entries) { @@ -121,6 +129,10 @@ void PhysicalExport::ExtractEntries(ClientContext &context, vectorcatalog); - ExtractEntries(context.client, schema_list, entries); + auto &catalog = Catalog::GetCatalog(ccontext, info->catalog); - // consider the order of tables because of foreign key constraint - entries.tables.clear(); - for (idx_t i = 0; i < exported_tables.data.size(); i++) { - entries.tables.push_back(exported_tables.data[i].entry); + catalog_entry_vector_t catalog_entries; + catalog_entries = GetNaiveExportOrder(context.client, catalog); + auto dependency_manager = catalog.GetDependencyManager(); + if (dependency_manager) { + dependency_manager->ReorderEntries(catalog_entries, ccontext); } - // order macro's by timestamp so nested macro's are imported nicely - sort(entries.macros.begin(), entries.macros.end(), - [](const reference &lhs, const reference &rhs) { - return lhs.get().oid < rhs.get().oid; - }); - // write the schema.sql file - // export order is SCHEMA -> SEQUENCE -> TABLE -> VIEW -> INDEX - stringstream ss; - WriteCatalogEntries(ss, entries.schemas); - WriteCatalogEntries(ss, entries.custom_types); - WriteCatalogEntries(ss, entries.sequences); - WriteCatalogEntries(ss, entries.tables); - WriteCatalogEntries(ss, entries.views); - WriteCatalogEntries(ss, entries.indexes); - WriteCatalogEntries(ss, entries.macros); - + WriteCatalogEntries(ss, catalog_entries); WriteStringStreamToFile(fs, ss, fs.JoinPath(info->file_path, "schema.sql")); // write the load.sql file // for every table, we write COPY INTO statement with the specified options stringstream load_ss; - for (idx_t i = 0; i < exported_tables.data.size(); i++) { - auto exported_table_info = exported_tables.data[i].table_data; + for (idx_t i = 0; i < exported_tables->data.size(); i++) { + auto exported_table_info = exported_tables->data[i].table_data; WriteCopyStatement(fs, load_ss, *info, exported_table_info, function); } WriteStringStreamToFile(fs, load_ss, fs.JoinPath(info->file_path, "load.sql")); diff --git a/src/duckdb/src/execution/operator/persistent/physical_insert.cpp b/src/duckdb/src/execution/operator/persistent/physical_insert.cpp index 626f28b8..35d2f425 100644 --- a/src/duckdb/src/execution/operator/persistent/physical_insert.cpp +++ b/src/duckdb/src/execution/operator/persistent/physical_insert.cpp @@ -18,6 +18,7 @@ #include "duckdb/transaction/duck_transaction.hpp" #include "duckdb/storage/table/append_state.hpp" #include "duckdb/storage/table/update_state.hpp" +#include "duckdb/function/create_sort_key.hpp" namespace duckdb { @@ -34,7 +35,7 @@ PhysicalInsert::PhysicalInsert( return_chunk(return_chunk), parallel(parallel), action_type(action_type), set_expressions(std::move(set_expressions)), set_columns(std::move(set_columns)), set_types(std::move(set_types)), on_conflict_condition(std::move(on_conflict_condition_p)), do_update_condition(std::move(do_update_condition_p)), - conflict_target(std::move(conflict_target_p)), columns_to_fetch(std::move(columns_to_fetch_p)) { + conflict_target(std::move(conflict_target_p)) { if (action_type == OnConflictAction::THROW) { return; @@ -44,11 +45,12 @@ PhysicalInsert::PhysicalInsert( // One or more columns are referenced from the existing table, // we use the 'insert_types' to figure out which types these columns have - types_to_fetch = vector(columns_to_fetch.size(), LogicalType::SQLNULL); - for (idx_t i = 0; i < columns_to_fetch.size(); i++) { - auto &id = columns_to_fetch[i]; + types_to_fetch = vector(columns_to_fetch_p.size(), LogicalType::SQLNULL); + for (idx_t i = 0; i < columns_to_fetch_p.size(); i++) { + auto &id = columns_to_fetch_p[i]; D_ASSERT(id < insert_types.size()); types_to_fetch[i] = insert_types[id]; + columns_to_fetch.emplace_back(id); } } @@ -72,49 +74,26 @@ void PhysicalInsert::GetInsertInfo(const BoundCreateTableInfo &info, vector &return_types, DuckTableEntry &table) - : table(table), insert_count(0), initialized(false), return_collection(context, return_types) { - } - mutex lock; - DuckTableEntry &table; - idx_t insert_count; - bool initialized; - LocalAppendState append_state; - ColumnDataCollection return_collection; -}; +InsertGlobalState::InsertGlobalState(ClientContext &context, const vector &return_types, + DuckTableEntry &table) + : table(table), insert_count(0), initialized(false), return_collection(context, return_types) { +} -class InsertLocalState : public LocalSinkState { -public: - InsertLocalState(ClientContext &context, const vector &types, - const vector> &bound_defaults, - const vector> &bound_constraints) - : default_executor(context, bound_defaults), bound_constraints(bound_constraints) { - insert_chunk.Initialize(Allocator::Get(context), types); - } - - DataChunk insert_chunk; - ExpressionExecutor default_executor; - TableAppendState local_append_state; - unique_ptr local_collection; - optional_ptr writer; - // Rows that have been updated by a DO UPDATE conflict - unordered_set updated_global_rows; - // Rows in the transaction-local storage that have been updated by a DO UPDATE conflict - unordered_set updated_local_rows; - idx_t update_count = 0; - unique_ptr constraint_state; - const vector> &bound_constraints; - - ConstraintState &GetConstraintState(DataTable &table, TableCatalogEntry &tableref) { - if (!constraint_state) { - constraint_state = table.InitializeConstraintState(tableref, bound_constraints); - } - return *constraint_state; +InsertLocalState::InsertLocalState(ClientContext &context, const vector &types, + const vector> &bound_defaults, + const vector> &bound_constraints) + : default_executor(context, bound_defaults), bound_constraints(bound_constraints) { + insert_chunk.Initialize(Allocator::Get(context), types); + update_chunk.Initialize(Allocator::Get(context), types); +} + +ConstraintState &InsertLocalState::GetConstraintState(DataTable &table, TableCatalogEntry &tableref) { + if (!constraint_state) { + constraint_state = table.InitializeConstraintState(tableref, bound_constraints); } -}; + return *constraint_state; +} unique_ptr PhysicalInsert::GetGlobalSinkState(ClientContext &context) const { optional_ptr table; @@ -298,17 +277,15 @@ static idx_t PerformOnConflictAction(ExecutionContext &context, DataChunk &chunk } // TODO: should we use a hash table to keep track of this instead? -template static void RegisterUpdatedRows(InsertLocalState &lstate, const Vector &row_ids, idx_t count) { // Insert all rows, if any of the rows has already been updated before, we throw an error auto data = FlatVector::GetData(row_ids); - // The rowids in the transaction-local ART aren't final yet so we have to separately keep track of the two sets of - // rowids - unordered_set &updated_rows = GLOBAL ? lstate.updated_global_rows : lstate.updated_local_rows; + auto &updated_rows = lstate.updated_rows; for (idx_t i = 0; i < count; i++) { auto result = updated_rows.insert(data[i]); if (result.second == false) { + // This is following postgres behavior: throw InvalidInputException( "ON CONFLICT DO UPDATE can not update the same row twice in the same command. Ensure that no rows " "proposed for insertion within the same command have duplicate constrained values"); @@ -316,31 +293,138 @@ static void RegisterUpdatedRows(InsertLocalState &lstate, const Vector &row_ids, } } +static void CheckDistinctnessInternal(ValidityMask &valid, vector> &sort_keys, idx_t count, + map> &result) { + for (idx_t i = 0; i < count; i++) { + bool has_conflicts = false; + for (idx_t j = i + 1; j < count; j++) { + if (!valid.RowIsValid(j)) { + // Already a conflict + continue; + } + bool matches = true; + for (auto &sort_key : sort_keys) { + auto &this_row = FlatVector::GetData(sort_key.get())[i]; + auto &other_row = FlatVector::GetData(sort_key.get())[j]; + if (this_row != other_row) { + matches = false; + break; + } + } + if (matches) { + auto &row_ids = result[i]; + has_conflicts = true; + row_ids.push_back(j); + valid.SetInvalid(j); + } + } + if (has_conflicts) { + valid.SetInvalid(i); + } + } +} + +void PrepareSortKeys(DataChunk &input, unordered_map> &sort_keys, + const unordered_set &column_ids) { + OrderModifiers order_modifiers(OrderType::ASCENDING, OrderByNullType::NULLS_LAST); + for (auto &it : column_ids) { + auto &sort_key = sort_keys[it]; + if (sort_key != nullptr) { + continue; + } + auto &column = input.data[it]; + sort_key = make_uniq(LogicalType::BLOB); + CreateSortKeyHelpers::CreateSortKey(column, input.size(), order_modifiers, *sort_key); + } +} + +static map> CheckDistinctness(DataChunk &input, ConflictInfo &info, + unordered_set &matched_indexes) { + map> conflicts; + unordered_map> sort_keys; + //! Register which rows have already caused a conflict + ValidityMask valid(input.size()); + + auto &column_ids = info.column_ids; + if (column_ids.empty()) { + for (auto index : matched_indexes) { + auto &index_column_ids = index->GetColumnIdSet(); + PrepareSortKeys(input, sort_keys, index_column_ids); + vector> columns; + for (auto &idx : index_column_ids) { + columns.push_back(*sort_keys[idx]); + } + CheckDistinctnessInternal(valid, columns, input.size(), conflicts); + } + } else { + PrepareSortKeys(input, sort_keys, column_ids); + vector> columns; + for (auto &idx : column_ids) { + columns.push_back(*sort_keys[idx]); + } + CheckDistinctnessInternal(valid, columns, input.size(), conflicts); + } + return conflicts; +} + +template +static void VerifyOnConflictCondition(ExecutionContext &context, DataChunk &combined_chunk, + const unique_ptr &on_conflict_condition, + ConstraintState &constraint_state, DataChunk &tuples, DataTable &data_table, + LocalStorage &local_storage) { + if (!on_conflict_condition) { + return; + } + DataChunk conflict_condition_result; + CheckOnConflictCondition(context, combined_chunk, on_conflict_condition, conflict_condition_result); + bool conditions_met = AllConflictsMeetCondition(conflict_condition_result); + if (!conditions_met) { + // Filter out the tuples that did pass the filter, then run the verify again + ManagedSelection sel(combined_chunk.size()); + auto data = FlatVector::GetData(conflict_condition_result.data[0]); + for (idx_t i = 0; i < combined_chunk.size(); i++) { + if (!data[i]) { + // Only populate the selection vector with the tuples that did not meet the condition + sel.Append(i); + } + } + combined_chunk.Slice(sel.Selection(), sel.Count()); + if (GLOBAL) { + data_table.VerifyAppendConstraints(constraint_state, context.client, combined_chunk, nullptr); + } else { + DataTable::VerifyUniqueIndexes(local_storage.GetIndexes(data_table), context.client, tuples, nullptr); + } + throw InternalException("The previous operation was expected to throw but didn't"); + } +} + template static idx_t HandleInsertConflicts(TableCatalogEntry &table, ExecutionContext &context, InsertLocalState &lstate, - DataTable &data_table, const PhysicalInsert &op) { + DataChunk &tuples, const PhysicalInsert &op) { auto &types_to_fetch = op.types_to_fetch; auto &on_conflict_condition = op.on_conflict_condition; auto &conflict_target = op.conflict_target; auto &columns_to_fetch = op.columns_to_fetch; + auto &data_table = table.GetStorage(); auto &local_storage = LocalStorage::Get(context.client, data_table.db); - // We either want to do nothing, or perform an update when conflicts arise ConflictInfo conflict_info(conflict_target); - ConflictManager conflict_manager(VerifyExistenceType::APPEND, lstate.insert_chunk.size(), &conflict_info); + ConflictManager conflict_manager(VerifyExistenceType::APPEND, tuples.size(), &conflict_info); if (GLOBAL) { auto &constraint_state = lstate.GetConstraintState(data_table, table); - data_table.VerifyAppendConstraints(constraint_state, context.client, lstate.insert_chunk, &conflict_manager); + data_table.VerifyAppendConstraints(constraint_state, context.client, tuples, &conflict_manager); } else { - DataTable::VerifyUniqueIndexes(local_storage.GetIndexes(data_table), context.client, lstate.insert_chunk, - &conflict_manager); + DataTable::VerifyUniqueIndexes(local_storage.GetIndexes(data_table), context.client, tuples, &conflict_manager); } + conflict_manager.Finalize(); if (conflict_manager.ConflictCount() == 0) { // No conflicts found, 0 updates performed return 0; } + idx_t affected_tuples = 0; + auto &conflicts = conflict_manager.Conflicts(); auto &row_ids = conflict_manager.RowIds(); @@ -349,8 +433,8 @@ static idx_t HandleInsertConflicts(TableCatalogEntry &table, ExecutionContext &c DataChunk combined_chunk; // contains conflict_chunk + scan_chunk (wide) // Filter out everything but the conflicting rows - conflict_chunk.Initialize(context.client, lstate.insert_chunk.GetTypes()); - conflict_chunk.Reference(lstate.insert_chunk); + conflict_chunk.Initialize(context.client, tuples.GetTypes()); + conflict_chunk.Reference(tuples); conflict_chunk.Slice(conflicts.Selection(), conflicts.Count()); conflict_chunk.SetCardinality(conflicts.Count()); @@ -374,47 +458,26 @@ static idx_t HandleInsertConflicts(TableCatalogEntry &table, ExecutionContext &c // Splice the Input chunk and the fetched chunk together CombineExistingAndInsertTuples(combined_chunk, scan_chunk, conflict_chunk, context.client, op); - if (on_conflict_condition) { - DataChunk conflict_condition_result; - CheckOnConflictCondition(context, combined_chunk, on_conflict_condition, conflict_condition_result); - bool conditions_met = AllConflictsMeetCondition(conflict_condition_result); - if (!conditions_met) { - // Filter out the tuples that did pass the filter, then run the verify again - ManagedSelection sel(combined_chunk.size()); - auto data = FlatVector::GetData(conflict_condition_result.data[0]); - for (idx_t i = 0; i < combined_chunk.size(); i++) { - if (!data[i]) { - // Only populate the selection vector with the tuples that did not meet the condition - sel.Append(i); - } - } - combined_chunk.Slice(sel.Selection(), sel.Count()); - row_ids.Slice(sel.Selection(), sel.Count()); - if (GLOBAL) { - auto &constraint_state = lstate.GetConstraintState(data_table, table); - data_table.VerifyAppendConstraints(constraint_state, context.client, combined_chunk, nullptr); - } else { - DataTable::VerifyUniqueIndexes(local_storage.GetIndexes(data_table), context.client, - lstate.insert_chunk, nullptr); - } - throw InternalException("The previous operation was expected to throw but didn't"); - } - } + auto &constraint_state = lstate.GetConstraintState(data_table, table); + VerifyOnConflictCondition(context, combined_chunk, on_conflict_condition, constraint_state, tuples, + data_table, local_storage); - RegisterUpdatedRows(lstate, row_ids, combined_chunk.size()); + if (&tuples == &lstate.update_chunk) { + // Allow updating duplicate rows for the 'update_chunk' + RegisterUpdatedRows(lstate, row_ids, combined_chunk.size()); + } - idx_t updated_tuples = PerformOnConflictAction(context, combined_chunk, table, row_ids, op); + affected_tuples += PerformOnConflictAction(context, combined_chunk, table, row_ids, op); // Remove the conflicting tuples from the insert chunk - SelectionVector sel_vec(lstate.insert_chunk.size()); - idx_t new_size = - SelectionVector::Inverted(conflicts.Selection(), sel_vec, conflicts.Count(), lstate.insert_chunk.size()); - lstate.insert_chunk.Slice(sel_vec, new_size); - lstate.insert_chunk.SetCardinality(new_size); - return updated_tuples; + SelectionVector sel_vec(tuples.size()); + idx_t new_size = SelectionVector::Inverted(conflicts.Selection(), sel_vec, conflicts.Count(), tuples.size()); + tuples.Slice(sel_vec, new_size); + tuples.SetCardinality(new_size); + return affected_tuples; } -idx_t PhysicalInsert::OnConflictHandling(TableCatalogEntry &table, ExecutionContext &context, +idx_t PhysicalInsert::OnConflictHandling(TableCatalogEntry &table, ExecutionContext &context, InsertGlobalState &gstate, InsertLocalState &lstate) const { auto &data_table = table.GetStorage(); if (action_type == OnConflictAction::THROW) { @@ -422,12 +485,86 @@ idx_t PhysicalInsert::OnConflictHandling(TableCatalogEntry &table, ExecutionCont data_table.VerifyAppendConstraints(constraint_state, context.client, lstate.insert_chunk, nullptr); return 0; } + + auto &local_storage = LocalStorage::Get(context.client, data_table.db); + ConflictInfo conflict_info(conflict_target); + + auto &global_indexes = data_table.GetDataTableInfo()->GetIndexes(); + auto &local_indexes = local_storage.GetIndexes(data_table); + + unordered_set matched_indexes; + if (conflict_info.column_ids.empty()) { + // We care about every index that applies to the table if no ON CONFLICT (...) target is given + global_indexes.Scan([&](Index &index) { + if (!index.IsUnique()) { + return false; + } + if (conflict_info.ConflictTargetMatches(index)) { + D_ASSERT(index.IsBound()); + auto &bound_index = index.Cast(); + matched_indexes.insert(&bound_index); + } + return false; + }); + local_indexes.Scan([&](Index &index) { + if (!index.IsUnique()) { + return false; + } + if (conflict_info.ConflictTargetMatches(index)) { + D_ASSERT(index.IsBound()); + auto &bound_index = index.Cast(); + matched_indexes.insert(&bound_index); + } + return false; + }); + } + + auto inner_conflicts = CheckDistinctness(lstate.insert_chunk, conflict_info, matched_indexes); + idx_t count = lstate.insert_chunk.size(); + if (!inner_conflicts.empty()) { + // We have at least one inner conflict, filter it out + ManagedSelection sel_vec(count); + ValidityMask not_a_conflict(count); + set last_occurrences_of_conflict; + for (idx_t i = 0; i < count; i++) { + auto it = inner_conflicts.find(i); + if (it != inner_conflicts.end()) { + auto &conflicts = it->second; + auto conflict_it = conflicts.begin(); + for (; conflict_it != conflicts.end();) { + auto &idx = *conflict_it; + not_a_conflict.SetInvalid(idx); + conflict_it++; + if (conflict_it == conflicts.end()) { + last_occurrences_of_conflict.insert(idx); + } + } + } + if (not_a_conflict.RowIsValid(i)) { + sel_vec.Append(i); + } + } + if (action_type == OnConflictAction::UPDATE) { + ManagedSelection last_occurrences(last_occurrences_of_conflict.size()); + for (auto &idx : last_occurrences_of_conflict) { + last_occurrences.Append(idx); + } + + lstate.update_chunk.Reference(lstate.insert_chunk); + lstate.update_chunk.Slice(last_occurrences.Selection(), last_occurrences.Count()); + lstate.update_chunk.SetCardinality(last_occurrences.Count()); + } + + lstate.insert_chunk.Slice(sel_vec.Selection(), sel_vec.Count()); + lstate.insert_chunk.SetCardinality(sel_vec.Count()); + } + // Check whether any conflicts arise, and if they all meet the conflict_target + condition // If that's not the case - We throw the first error idx_t updated_tuples = 0; - updated_tuples += HandleInsertConflicts(table, context, lstate, data_table, *this); + updated_tuples += HandleInsertConflicts(table, context, lstate, lstate.insert_chunk, *this); // Also check the transaction-local storage+ART so we can detect conflicts within this transaction - updated_tuples += HandleInsertConflicts(table, context, lstate, data_table, *this); + updated_tuples += HandleInsertConflicts(table, context, lstate, lstate.insert_chunk, *this); return updated_tuples; } @@ -452,7 +589,7 @@ SinkResultType PhysicalInsert::Sink(ExecutionContext &context, DataChunk &chunk, // so it should not be added to the RETURNING chunk gstate.return_collection.Append(lstate.insert_chunk); } - idx_t updated_tuples = OnConflictHandling(table, context, lstate); + idx_t updated_tuples = OnConflictHandling(table, context, gstate, lstate); if (action_type == OnConflictAction::NOTHING && return_chunk) { // Because we didn't add to the RETURNING chunk yet // we add the tuples that did not get filtered out now @@ -461,27 +598,30 @@ SinkResultType PhysicalInsert::Sink(ExecutionContext &context, DataChunk &chunk, gstate.insert_count += lstate.insert_chunk.size(); gstate.insert_count += updated_tuples; storage.LocalAppend(gstate.append_state, table, context.client, lstate.insert_chunk, true); - - // We finalize the local append to write the segment node count. - if (action_type != OnConflictAction::THROW) { + if (action_type == OnConflictAction::UPDATE && lstate.update_chunk.size() != 0) { + // Flush the append so we can target the data we just appended with the update storage.FinalizeLocalAppend(gstate.append_state); gstate.initialized = false; + (void)HandleInsertConflicts(table, context, lstate, lstate.update_chunk, *this); + (void)HandleInsertConflicts(table, context, lstate, lstate.update_chunk, *this); + // All of the tuples should have been turned into an update, leaving the chunk empty afterwards + D_ASSERT(lstate.update_chunk.size() == 0); } - } else { D_ASSERT(!return_chunk); // parallel append if (!lstate.local_collection) { lock_guard l(gstate.lock); auto table_info = storage.GetDataTableInfo(); - auto &block_manager = TableIOManager::Get(storage).GetBlockManagerForRowData(); - lstate.local_collection = make_uniq(std::move(table_info), block_manager, insert_types, + auto &io_manager = TableIOManager::Get(table.GetStorage()); + lstate.local_collection = make_uniq(std::move(table_info), io_manager, insert_types, NumericCast(MAX_ROW_ID)); lstate.local_collection->InitializeEmpty(); lstate.local_collection->InitializeAppend(lstate.local_append_state); lstate.writer = &gstate.table.GetStorage().CreateOptimisticWriter(context.client); } - OnConflictHandling(table, context, lstate); + OnConflictHandling(table, context, gstate, lstate); + D_ASSERT(action_type != OnConflictAction::UPDATE); auto new_row_group = lstate.local_collection->Append(lstate.insert_chunk, lstate.local_append_state); if (new_row_group) { @@ -503,6 +643,10 @@ SinkCombineResultType PhysicalInsert::Combine(ExecutionContext &context, Operato return SinkCombineResultType::FINISHED; } + auto &table = gstate.table; + auto &storage = table.GetStorage(); + const idx_t row_group_size = storage.GetRowGroupSize(); + // parallel append: finalize the append TransactionData tdata(0, 0); lstate.local_collection->FinalizeAppend(tdata, lstate.local_append_state); @@ -511,10 +655,8 @@ SinkCombineResultType PhysicalInsert::Combine(ExecutionContext &context, Operato lock_guard lock(gstate.lock); gstate.insert_count += append_count; - if (append_count < Storage::ROW_GROUP_SIZE) { + if (append_count < row_group_size) { // we have few rows - append to the local storage directly - auto &table = gstate.table; - auto &storage = table.GetStorage(); storage.InitializeLocalAppend(gstate.append_state, table, context.client, bound_constraints); auto &transaction = DuckTransaction::Get(context.client, table.catalog); lstate.local_collection->Scan(transaction, [&](DataChunk &insert_chunk) { @@ -524,6 +666,8 @@ SinkCombineResultType PhysicalInsert::Combine(ExecutionContext &context, Operato storage.FinalizeLocalAppend(gstate.append_state); } else { // we have written rows to disk optimistically - merge directly into the transaction-local storage + lstate.writer->WriteLastRowGroup(*lstate.local_collection); + gstate.table.GetStorage().LocalMerge(context.client, *lstate.local_collection); gstate.table.GetStorage().FinalizeOptimisticWriter(context.client, *lstate.writer); } diff --git a/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp b/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp index 9fa89e51..fa150693 100644 --- a/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp +++ b/src/duckdb/src/execution/operator/projection/physical_tableinout_function.cpp @@ -23,7 +23,7 @@ class TableInOutGlobalState : public GlobalOperatorState { PhysicalTableInOutFunction::PhysicalTableInOutFunction(vector types, TableFunction function_p, unique_ptr bind_data_p, - vector column_ids_p, idx_t estimated_cardinality, + vector column_ids_p, idx_t estimated_cardinality, vector project_input_p) : PhysicalOperator(PhysicalOperatorType::INOUT_FUNCTION, std::move(types), estimated_cardinality), function(std::move(function_p)), bind_data(std::move(bind_data_p)), column_ids(std::move(column_ids_p)), @@ -111,7 +111,11 @@ OperatorResultType PhysicalTableInOutFunction::Execute(ExecutionContext &context InsertionOrderPreservingMap PhysicalTableInOutFunction::ParamsToString() const { InsertionOrderPreservingMap result; if (function.to_string) { - result["__text__"] = function.to_string(bind_data.get()); + TableFunctionToStringInput input(function, bind_data.get()); + auto to_string_result = function.to_string(input); + for (const auto &it : to_string_result) { + result[it.first] = it.second; + } } else { result["Name"] = function.name; } diff --git a/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp b/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp index e2a67505..c1e2707b 100644 --- a/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp +++ b/src/duckdb/src/execution/operator/scan/physical_positional_scan.cpp @@ -119,7 +119,7 @@ class PositionalTableScanner { return source.ColumnCount(); } - double GetProgress(ClientContext &context) { + ProgressData GetProgress(ClientContext &context) { return table.GetProgress(context, global_state); } @@ -179,15 +179,16 @@ SourceResultType PhysicalPositionalScan::GetData(ExecutionContext &context, Data return SourceResultType::HAVE_MORE_OUTPUT; } -double PhysicalPositionalScan::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const { +ProgressData PhysicalPositionalScan::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const { auto &gstate = gstate_p.Cast(); - double result = child_tables[0]->GetProgress(context, *gstate.global_states[0]); - for (size_t t = 1; t < child_tables.size(); ++t) { - result = MinValue(result, child_tables[t]->GetProgress(context, *gstate.global_states[t])); + ProgressData res; + + for (size_t t = 0; t < child_tables.size(); ++t) { + res.Add(child_tables[t]->GetProgress(context, *gstate.global_states[t])); } - return result; + return res; } bool PhysicalPositionalScan::Equals(const PhysicalOperator &other_p) const { @@ -208,4 +209,12 @@ bool PhysicalPositionalScan::Equals(const PhysicalOperator &other_p) const { return true; } +vector> PhysicalPositionalScan::GetChildren() const { + auto result = PhysicalOperator::GetChildren(); + for (auto &entry : child_tables) { + result.push_back(*entry); + } + return result; +} + } // namespace duckdb diff --git a/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp b/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp index 27ba3982..91f509a3 100644 --- a/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp +++ b/src/duckdb/src/execution/operator/scan/physical_table_scan.cpp @@ -11,7 +11,7 @@ namespace duckdb { PhysicalTableScan::PhysicalTableScan(vector types, TableFunction function_p, unique_ptr bind_data_p, vector returned_types_p, - vector column_ids_p, vector projection_ids_p, + vector column_ids_p, vector projection_ids_p, vector names_p, unique_ptr table_filters_p, idx_t estimated_cardinality, ExtraOperatorInfo extra_info, vector parameters_p) @@ -28,7 +28,8 @@ class TableScanGlobalSourceState : public GlobalSourceState { table_filters = op.dynamic_filters->GetFinalTableFilters(op, op.table_filters.get()); } if (op.function.init_global) { - TableFunctionInitInput input(op.bind_data.get(), op.column_ids, op.projection_ids, GetTableFilters(op)); + TableFunctionInitInput input(op.bind_data.get(), op.column_ids, op.projection_ids, GetTableFilters(op), + op.extra_info.sample_options); global_state = op.function.init_global(context, input); if (global_state) { max_threads = global_state->MaxThreads(); @@ -71,7 +72,7 @@ class TableScanLocalSourceState : public LocalSourceState { const PhysicalTableScan &op) { if (op.function.init_local) { TableFunctionInitInput input(op.bind_data.get(), op.column_ids, op.projection_ids, - gstate.GetTableFilters(op)); + gstate.GetTableFilters(op), op.extra_info.sample_options); local_state = op.function.init_local(context, input, gstate.global_state.get()); } } @@ -111,62 +112,90 @@ SourceResultType PhysicalTableScan::GetData(ExecutionContext &context, DataChunk return chunk.size() == 0 ? SourceResultType::FINISHED : SourceResultType::HAVE_MORE_OUTPUT; } -double PhysicalTableScan::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const { +ProgressData PhysicalTableScan::GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const { auto &gstate = gstate_p.Cast(); + ProgressData res; if (function.table_scan_progress) { - return function.table_scan_progress(context, bind_data.get(), gstate.global_state.get()); + double table_progress = function.table_scan_progress(context, bind_data.get(), gstate.global_state.get()); + if (table_progress < 0.0) { + res.SetInvalid(); + } else { + res.done = table_progress; + res.total = 100.0; + // Assume cardinality is always 1e3 + res.Normalize(1e3); + } + } else { + // if table_scan_progress is not implemented we don't support this function yet in the progress bar + res.SetInvalid(); } - // if table_scan_progress is not implemented we don't support this function yet in the progress bar - return -1; + return res; } -idx_t PhysicalTableScan::GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate_p, - LocalSourceState &lstate) const { - D_ASSERT(SupportsBatchIndex()); - D_ASSERT(function.get_batch_index); +bool PhysicalTableScan::SupportsPartitioning(const OperatorPartitionInfo &partition_info) const { + if (!function.get_partition_data) { + return false; + } + // FIXME: actually check if partition info is supported + return true; +} + +OperatorPartitionData PhysicalTableScan::GetPartitionData(ExecutionContext &context, DataChunk &chunk, + GlobalSourceState &gstate_p, LocalSourceState &lstate, + const OperatorPartitionInfo &partition_info) const { + D_ASSERT(SupportsPartitioning(partition_info)); + D_ASSERT(function.get_partition_data); auto &gstate = gstate_p.Cast(); auto &state = lstate.Cast(); - return function.get_batch_index(context.client, bind_data.get(), state.local_state.get(), - gstate.global_state.get()); + TableFunctionGetPartitionInput input(bind_data.get(), state.local_state.get(), gstate.global_state.get(), + partition_info); + return function.get_partition_data(context.client, input); } string PhysicalTableScan::GetName() const { return StringUtil::Upper(function.name + " " + function.extra_info); } +void AddProjectionNames(const ColumnIndex &index, const string &name, const LogicalType &type, string &result) { + if (!index.HasChildren()) { + // base case - no children projected out + if (!result.empty()) { + result += "\n"; + } + result += name; + return; + } + auto &child_types = StructType::GetChildTypes(type); + for (auto &child_index : index.GetChildIndexes()) { + auto &ele = child_types[child_index.GetPrimaryIndex()]; + AddProjectionNames(child_index, name + "." + ele.first, ele.second, result); + } +} + InsertionOrderPreservingMap PhysicalTableScan::ParamsToString() const { InsertionOrderPreservingMap result; if (function.to_string) { - result["__text__"] = function.to_string(bind_data.get()); + TableFunctionToStringInput input(function, bind_data.get()); + auto to_string_result = function.to_string(input); + for (const auto &it : to_string_result) { + result[it.first] = it.second; + } } else { result["Function"] = StringUtil::Upper(function.name); } if (function.projection_pushdown) { - if (function.filter_prune) { - string projections; - for (idx_t i = 0; i < projection_ids.size(); i++) { - const auto &column_id = column_ids[projection_ids[i]]; - if (column_id < names.size()) { - if (i > 0) { - projections += "\n"; - } - projections += names[column_id]; - } - } - result["Projections"] = projections; - } else { - string projections; - for (idx_t i = 0; i < column_ids.size(); i++) { - const auto &column_id = column_ids[i]; - if (column_id < names.size()) { - if (i > 0) { - projections += "\n"; - } - projections += names[column_id]; - } + string projections; + idx_t projected_column_count = function.filter_prune ? projection_ids.size() : column_ids.size(); + for (idx_t i = 0; i < projected_column_count; i++) { + auto base_index = function.filter_prune ? projection_ids[i] : i; + auto &column_index = column_ids[base_index]; + auto column_id = column_index.GetPrimaryIndex(); + if (column_id >= names.size()) { + continue; } - result["Projections"] = projections; + AddProjectionNames(column_index, names[column_id], returned_types[column_id], projections); } + result["Projections"] = projections; } if (function.filter_pushdown && table_filters) { string filters_info; @@ -179,11 +208,20 @@ InsertionOrderPreservingMap PhysicalTableScan::ParamsToString() const { filters_info += "\n"; } first_item = false; - filters_info += filter->ToString(names[column_ids[column_index]]); + + const auto col_id = column_ids[column_index].GetPrimaryIndex(); + if (col_id == COLUMN_IDENTIFIER_ROW_ID) { + filters_info += filter->ToString("rowid"); + } else { + filters_info += filter->ToString(names[col_id]); + } } } result["Filters"] = filters_info; } + if (extra_info.sample_options) { + result["Sample Method"] = "System: " + extra_info.sample_options->sample_size.ToString() + "%"; + } if (!extra_info.file_filters.empty()) { result["File Filters"] = extra_info.file_filters; if (extra_info.filtered_files.IsValid() && extra_info.total_files.IsValid()) { diff --git a/src/duckdb/src/execution/operator/schema/physical_alter.cpp b/src/duckdb/src/execution/operator/schema/physical_alter.cpp index 0e73fc29..0d463e5a 100644 --- a/src/duckdb/src/execution/operator/schema/physical_alter.cpp +++ b/src/duckdb/src/execution/operator/schema/physical_alter.cpp @@ -11,7 +11,6 @@ namespace duckdb { SourceResultType PhysicalAlter::GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const { auto &catalog = Catalog::GetCatalog(context.client, info->catalog); catalog.Alter(context.client, *info); - return SourceResultType::FINISHED; } diff --git a/src/duckdb/src/execution/operator/schema/physical_attach.cpp b/src/duckdb/src/execution/operator/schema/physical_attach.cpp index 69af179f..523f0d57 100644 --- a/src/duckdb/src/execution/operator/schema/physical_attach.cpp +++ b/src/duckdb/src/execution/operator/schema/physical_attach.cpp @@ -36,7 +36,6 @@ SourceResultType PhysicalAttach::GetData(ExecutionContext &context, DataChunk &c // constant-time lookup in the catalog for the db name auto existing_db = db_manager.GetDatabase(context.client, name); if (existing_db) { - if ((existing_db->IsReadOnly() && options.access_mode == AccessMode::READ_WRITE) || (!existing_db->IsReadOnly() && options.access_mode == AccessMode::READ_ONLY)) { @@ -46,7 +45,9 @@ SourceResultType PhysicalAttach::GetData(ExecutionContext &context, DataChunk &c throw BinderException("Database \"%s\" is already attached in %s mode, cannot re-attach in %s mode", name, existing_mode_str, attached_mode); } - + if (!options.default_table.name.empty()) { + existing_db->GetCatalog().SetDefaultTable(options.default_table.schema, options.default_table.name); + } return SourceResultType::FINISHED; } } @@ -70,8 +71,11 @@ SourceResultType PhysicalAttach::GetData(ExecutionContext &context, DataChunk &c auto attached_db = db_manager.AttachDatabase(context.client, *info, options); //! Initialize the database. - const auto block_alloc_size = info->GetBlockAllocSize(); - attached_db->Initialize(block_alloc_size); + const auto storage_options = info->GetStorageOptions(); + attached_db->Initialize(storage_options); + if (!options.default_table.name.empty()) { + attached_db->GetCatalog().SetDefaultTable(options.default_table.schema, options.default_table.name); + } return SourceResultType::FINISHED; } diff --git a/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp b/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp index 7eceeecb..78b96cff 100644 --- a/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp +++ b/src/duckdb/src/execution/operator/schema/physical_create_art_index.cpp @@ -16,12 +16,13 @@ namespace duckdb { PhysicalCreateARTIndex::PhysicalCreateARTIndex(LogicalOperator &op, TableCatalogEntry &table_p, const vector &column_ids, unique_ptr info, vector> unbound_expressions, - idx_t estimated_cardinality, const bool sorted) + idx_t estimated_cardinality, const bool sorted, + unique_ptr alter_table_info) : PhysicalOperator(PhysicalOperatorType::CREATE_INDEX, op.types, estimated_cardinality), table(table_p.Cast()), info(std::move(info)), unbound_expressions(std::move(unbound_expressions)), - sorted(sorted) { + sorted(sorted), alter_table_info(std::move(alter_table_info)) { - // Convert the virtual column ids to physical column ids. + // Convert the logical column ids to physical column ids. for (auto &column_id : column_ids) { storage_ids.push_back(table.GetColumns().LogicalToPhysical(LogicalIndex(column_id)).index); } @@ -123,6 +124,18 @@ SinkResultType PhysicalCreateARTIndex::Sink(ExecutionContext &context, DataChunk auto &l_state = input.local_state.Cast(); l_state.arena_allocator.Reset(); l_state.key_chunk.ReferenceColumns(chunk, l_state.key_column_ids); + + // Check for NULLs, if we are creating a PRIMARY KEY. + // FIXME: Later, we want to ensure that we skip the NULL check for any non-PK alter. + if (alter_table_info) { + auto row_count = l_state.key_chunk.size(); + for (idx_t i = 0; i < l_state.key_chunk.ColumnCount(); i++) { + if (VectorOperations::HasNull(l_state.key_chunk.data[i], row_count)) { + throw ConstraintException("NOT NULL constraint failed: %s", info->index_name); + } + } + } + ART::GenerateKeyVectors(l_state.arena_allocator, l_state.key_chunk, chunk.data[chunk.ColumnCount() - 1], l_state.keys, l_state.row_ids); @@ -138,7 +151,7 @@ SinkCombineResultType PhysicalCreateARTIndex::Combine(ExecutionContext &context, auto &g_state = input.global_state.Cast(); auto &l_state = input.local_state.Cast(); - // merge the local index into the global index + // Merge the local index into the global index. if (!g_state.global_index->MergeIndexes(*l_state.local_index)) { throw ConstraintException("Data contains duplicates on indexed column(s)"); } @@ -149,38 +162,54 @@ SinkCombineResultType PhysicalCreateARTIndex::Combine(ExecutionContext &context, SinkFinalizeType PhysicalCreateARTIndex::Finalize(Pipeline &pipeline, Event &event, ClientContext &context, OperatorSinkFinalizeInput &input) const { - // here, we set the resulting global index as the newly created index of the table + // Here, we set the resulting global index as the newly created index of the table. auto &state = input.global_state.Cast(); - // vacuum excess memory and verify + // Vacuum excess memory and verify. state.global_index->Vacuum(); D_ASSERT(!state.global_index->VerifyAndToString(true).empty()); state.global_index->VerifyAllocations(); auto &storage = table.GetStorage(); if (!storage.IsRoot()) { - throw TransactionException("Transaction conflict: cannot add an index to a table that has been altered!"); + throw TransactionException("cannot add an index to a table that has been altered"); } auto &schema = table.schema; info->column_ids = storage_ids; - // Ensure that the index does not yet exist. - // FIXME: We should early-out prior to creating the index. - if (schema.GetEntry(schema.GetCatalogTransaction(context), CatalogType::INDEX_ENTRY, info->index_name)) { - if (info->on_conflict != OnCreateConflict::IGNORE_ON_CONFLICT) { - throw CatalogException("Index with name \"%s\" already exists!", info->index_name); + // FIXME: We should check for catalog exceptions prior to index creation, and later double-check. + if (!alter_table_info) { + // Ensure that the index does not yet exist in the catalog. + auto entry = schema.GetEntry(schema.GetCatalogTransaction(context), CatalogType::INDEX_ENTRY, info->index_name); + if (entry) { + if (info->on_conflict != OnCreateConflict::IGNORE_ON_CONFLICT) { + throw CatalogException("Index with name \"%s\" already exists!", info->index_name); + } + // IF NOT EXISTS on existing index. We are done. + return SinkFinalizeType::READY; } - // IF NOT EXISTS on existing index. We are done. - return SinkFinalizeType::READY; - } - auto index_entry = schema.CreateIndex(schema.GetCatalogTransaction(context), *info, table).get(); - D_ASSERT(index_entry); - auto &index = index_entry->Cast(); - index.initial_index_size = state.global_index->GetInMemorySize(); + auto index_entry = schema.CreateIndex(schema.GetCatalogTransaction(context), *info, table).get(); + D_ASSERT(index_entry); + auto &index = index_entry->Cast(); + index.initial_index_size = state.global_index->GetInMemorySize(); + + } else { + // Ensure that there are no other indexes with that name on this table. + auto &indexes = storage.GetDataTableInfo()->GetIndexes(); + indexes.Scan([&](Index &index) { + if (index.GetIndexName() == info->index_name) { + throw CatalogException("an index with that name already exists for this table: %s", info->index_name); + } + return false; + }); + + auto &catalog = Catalog::GetCatalog(context, info->catalog); + catalog.Alter(context, *alter_table_info); + } - // add index to storage + // Add the index to the storage. storage.AddIndex(std::move(state.global_index)); return SinkFinalizeType::READY; } diff --git a/src/duckdb/src/execution/operator/set/physical_union.cpp b/src/duckdb/src/execution/operator/set/physical_union.cpp index 4954dc87..1194b953 100644 --- a/src/duckdb/src/execution/operator/set/physical_union.cpp +++ b/src/duckdb/src/execution/operator/set/physical_union.cpp @@ -32,7 +32,11 @@ void PhysicalUnion::BuildPipelines(Pipeline ¤t, MetaPipeline &meta_pipelin order_matters = true; } if (sink) { - if (sink->SinkOrderDependent() || sink->RequiresBatchIndex()) { + if (sink->SinkOrderDependent()) { + order_matters = true; + } + auto partition_info = sink->RequiredPartitionInfo(); + if (partition_info.batch_index) { order_matters = true; } if (!sink->ParallelSink()) { diff --git a/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp b/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp index 4fa6f08f..c378e61e 100644 --- a/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp +++ b/src/duckdb/src/execution/perfect_aggregate_hashtable.cpp @@ -130,7 +130,12 @@ void PerfectAggregateHashTable::AddChunk(DataChunk &groups, DataChunk &payload) // compute the actual pointer to the data by adding it to the base HT pointer and multiplying by the tuple size for (idx_t i = 0; i < groups.size(); i++) { const auto group = address_data[i]; - D_ASSERT(group < total_groups); + if (group >= total_groups) { + throw InvalidInputException("Perfect hash aggregate: aggregate group %llu exceeded total groups %llu. This " + "likely means that the statistics in your data source are corrupt.\n* PRAGMA " + "disable_optimizer to disable optimizations that rely on correct statistics", + group, total_groups); + } group_is_set[group] = true; address_data[i] = uintptr_t(data) + group * tuple_size; } diff --git a/src/duckdb/src/execution/physical_operator.cpp b/src/duckdb/src/execution/physical_operator.cpp index 3fe08ddf..c5119620 100644 --- a/src/duckdb/src/execution/physical_operator.cpp +++ b/src/duckdb/src/execution/physical_operator.cpp @@ -50,7 +50,7 @@ idx_t PhysicalOperator::EstimatedThreadCount() const { idx_t result = 0; if (children.empty()) { // Terminal operator, e.g., base table, these decide the degree of parallelism of pipelines - result = MaxValue(estimated_cardinality / (Storage::ROW_GROUP_SIZE * 2), 1); + result = MaxValue(estimated_cardinality / (DEFAULT_ROW_GROUP_SIZE * 2), 1); } else if (type == PhysicalOperatorType::UNION) { // We can run union pipelines in parallel, so we sum up the thread count of the children for (auto &child : children) { @@ -116,13 +116,16 @@ SourceResultType PhysicalOperator::GetData(ExecutionContext &context, DataChunk throw InternalException("Calling GetData on a node that is not a source!"); } -idx_t PhysicalOperator::GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, - LocalSourceState &lstate) const { - throw InternalException("Calling GetBatchIndex on a node that does not support it"); +OperatorPartitionData PhysicalOperator::GetPartitionData(ExecutionContext &context, DataChunk &chunk, + GlobalSourceState &gstate, LocalSourceState &lstate, + const OperatorPartitionInfo &partition_info) const { + throw InternalException("Calling GetPartitionData on a node that does not support it"); } -double PhysicalOperator::GetProgress(ClientContext &context, GlobalSourceState &gstate) const { - return -1; +ProgressData PhysicalOperator::GetProgress(ClientContext &context, GlobalSourceState &gstate) const { + ProgressData res; + res.SetInvalid(); + return res; } // LCOV_EXCL_STOP @@ -175,10 +178,13 @@ bool PhysicalOperator::OperatorCachingAllowed(ExecutionContext &context) { return false; } else if (!context.pipeline->GetSink()) { return false; - } else if (context.pipeline->GetSink()->RequiresBatchIndex()) { - return false; } else if (context.pipeline->IsOrderDependent()) { return false; + } else { + auto partition_info = context.pipeline->GetSink()->RequiredPartitionInfo(); + if (partition_info.AnyRequired()) { + return false; + } } return true; @@ -240,7 +246,7 @@ vector> PhysicalOperator::GetSources() const { bool PhysicalOperator::AllSourcesSupportBatchIndex() const { auto sources = GetSources(); for (auto &source : sources) { - if (!source.get().SupportsBatchIndex()) { + if (!source.get().SupportsPartitioning(OperatorPartitionInfo::BatchIndex())) { return false; } } diff --git a/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp b/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp index c069fd9c..e0ce831c 100644 --- a/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_aggregate.cpp @@ -3,7 +3,9 @@ #include "duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp" #include "duckdb/execution/operator/aggregate/physical_perfecthash_aggregate.hpp" #include "duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp" +#include "duckdb/execution/operator/aggregate/physical_partitioned_aggregate.hpp" #include "duckdb/execution/operator/projection/physical_projection.hpp" +#include "duckdb/execution/operator/scan/physical_table_scan.hpp" #include "duckdb/execution/physical_plan_generator.hpp" #include "duckdb/function/function_binder.hpp" #include "duckdb/main/client_context.hpp" @@ -28,6 +30,88 @@ hugeint_t GetRangeHugeint(const BaseStatistics &nstats) { return Hugeint::Convert(NumericStats::GetMax(nstats)) - Hugeint::Convert(NumericStats::GetMin(nstats)); } +static bool CanUsePartitionedAggregate(ClientContext &context, LogicalAggregate &op, PhysicalOperator &child, + vector &partition_columns) { + if (op.grouping_sets.size() > 1 || !op.grouping_functions.empty()) { + return false; + } + for (auto &expression : op.expressions) { + auto &aggregate = expression->Cast(); + if (aggregate.IsDistinct()) { + // distinct aggregates are not supported in partitioned hash aggregates + return false; + } + } + // check if the source is partitioned by the aggregate columns + // figure out the columns we are grouping by + for (auto &group_expr : op.groups) { + // only support bound reference here + if (group_expr->type != ExpressionType::BOUND_REF) { + return false; + } + auto &ref = group_expr->Cast(); + partition_columns.push_back(ref.index); + } + // traverse the children of the aggregate to find the source operator + reference child_ref(child); + while (child_ref.get().type != PhysicalOperatorType::TABLE_SCAN) { + auto &child_op = child_ref.get(); + switch (child_op.type) { + case PhysicalOperatorType::PROJECTION: { + // recompute partition columns + auto &projection = child_op.Cast(); + vector new_columns; + for (auto &partition_col : partition_columns) { + // we only support bound reference here + auto &expr = projection.select_list[partition_col]; + if (expr->type != ExpressionType::BOUND_REF) { + return false; + } + auto &ref = expr->Cast(); + new_columns.push_back(ref.index); + } + // continue into child node with new columns + partition_columns = std::move(new_columns); + child_ref = *child_op.children[0]; + break; + } + case PhysicalOperatorType::FILTER: + // continue into child operators + child_ref = *child_op.children[0]; + break; + default: + // unsupported operator for partition pass-through + return false; + } + } + auto &table_scan = child_ref.get().Cast(); + if (!table_scan.function.get_partition_info) { + // this source does not expose partition information - skip + return false; + } + // get the base columns by projecting over the projection_ids/column_ids + if (!table_scan.projection_ids.empty()) { + for (auto &partition_col : partition_columns) { + partition_col = table_scan.projection_ids[partition_col]; + } + } + vector base_columns; + for (const auto &partition_idx : partition_columns) { + auto col_idx = partition_idx; + col_idx = table_scan.column_ids[col_idx].GetPrimaryIndex(); + base_columns.push_back(col_idx); + } + // check if the source operator is partitioned by the grouping columns + TableFunctionPartitionInput input(table_scan.bind_data.get(), base_columns); + auto partition_info = table_scan.function.get_partition_info(context, input); + if (partition_info != TablePartitionInfo::SINGLE_VALUE_PARTITIONS) { + // we only support single-value partitions currently + return false; + } + // we have single value partitions! + return true; +} + static bool CanUsePerfectHashAggregate(ClientContext &context, LogicalAggregate &op, vector &bits_per_group) { if (op.grouping_sets.size() > 1 || !op.grouping_functions.empty()) { return false; @@ -157,19 +241,19 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalAggregate plan = ExtractAggregateExpressions(std::move(plan), op.expressions, op.groups); + bool can_use_simple_aggregation = true; + for (auto &expression : op.expressions) { + auto &aggregate = expression->Cast(); + if (!aggregate.function.simple_update) { + // unsupported aggregate for simple aggregation: use hash aggregation + can_use_simple_aggregation = false; + break; + } + } if (op.groups.empty() && op.grouping_sets.size() <= 1) { // no groups, check if we can use a simple aggregation // special case: aggregate entire columns together - bool use_simple_aggregation = true; - for (auto &expression : op.expressions) { - auto &aggregate = expression->Cast(); - if (!aggregate.function.simple_update) { - // unsupported aggregate for simple aggregation: use hash aggregation - use_simple_aggregation = false; - break; - } - } - if (use_simple_aggregation) { + if (can_use_simple_aggregation) { groupby = make_uniq_base(op.types, std::move(op.expressions), op.estimated_cardinality); } else { @@ -178,9 +262,14 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalAggregate } } else { // groups! create a GROUP BY aggregator - // use a perfect hash aggregate if possible + // use a partitioned or perfect hash aggregate if possible + vector partition_columns; vector required_bits; - if (CanUsePerfectHashAggregate(context, op, required_bits)) { + if (can_use_simple_aggregation && CanUsePartitionedAggregate(context, op, *plan, partition_columns)) { + groupby = make_uniq_base( + context, op.types, std::move(op.expressions), std::move(op.groups), std::move(partition_columns), + op.estimated_cardinality); + } else if (CanUsePerfectHashAggregate(context, op, required_bits)) { groupby = make_uniq_base( context, op.types, std::move(op.expressions), std::move(op.groups), std::move(op.group_stats), std::move(required_bits), op.estimated_cardinality); diff --git a/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp b/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp index 31fcf3ba..8d1117c9 100644 --- a/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_comparison_join.cpp @@ -1,4 +1,6 @@ +#include "duckdb/catalog/catalog_entry/duck_table_entry.hpp" #include "duckdb/execution/operator/join/perfect_hash_join_executor.hpp" +#include "duckdb/execution/operator/join/physical_blockwise_nl_join.hpp" #include "duckdb/execution/operator/join/physical_cross_product.hpp" #include "duckdb/execution/operator/join/physical_hash_join.hpp" #include "duckdb/execution/operator/join/physical_iejoin.hpp" @@ -8,123 +10,13 @@ #include "duckdb/execution/physical_plan_generator.hpp" #include "duckdb/function/table/table_scan.hpp" #include "duckdb/main/client_context.hpp" -#include "duckdb/planner/operator/logical_comparison_join.hpp" -#include "duckdb/transaction/duck_transaction.hpp" -#include "duckdb/common/operator/subtract.hpp" -#include "duckdb/execution/operator/join/physical_blockwise_nl_join.hpp" #include "duckdb/planner/expression/bound_reference_expression.hpp" #include "duckdb/planner/expression_iterator.hpp" -#include "duckdb/catalog/catalog_entry/duck_table_entry.hpp" +#include "duckdb/planner/operator/logical_comparison_join.hpp" +#include "duckdb/transaction/duck_transaction.hpp" namespace duckdb { -bool ExtractNumericValue(Value val, int64_t &result) { - if (!val.type().IsIntegral()) { - switch (val.type().InternalType()) { - case PhysicalType::INT16: - result = val.GetValueUnsafe(); - break; - case PhysicalType::INT32: - result = val.GetValueUnsafe(); - break; - case PhysicalType::INT64: - result = val.GetValueUnsafe(); - break; - default: - return false; - } - } else { - if (!val.DefaultTryCastAs(LogicalType::BIGINT)) { - return false; - } - result = val.GetValue(); - } - return true; -} - -void CheckForPerfectJoinOpt(LogicalComparisonJoin &op, PerfectHashJoinStats &join_state) { - // we only do this optimization for inner joins - if (op.join_type != JoinType::INNER) { - return; - } - // with one condition - if (op.conditions.size() != 1) { - return; - } - // with propagated statistics - if (op.join_stats.empty()) { - return; - } - for (auto &type : op.children[1]->types) { - switch (type.InternalType()) { - case PhysicalType::STRUCT: - case PhysicalType::LIST: - case PhysicalType::ARRAY: - return; - default: - break; - } - } - // with equality condition and null values not equal - for (auto &&condition : op.conditions) { - if (condition.comparison != ExpressionType::COMPARE_EQUAL) { - return; - } - } - // with integral internal types - for (auto &&join_stat : op.join_stats) { - if (!TypeIsInteger(join_stat->GetType().InternalType()) || - join_stat->GetType().InternalType() == PhysicalType::INT128 || - join_stat->GetType().InternalType() == PhysicalType::UINT128) { - // perfect join not possible for non-integral types or hugeint - return; - } - } - - // and when the build range is smaller than the threshold - auto &stats_build = *op.join_stats[1].get(); // rhs stats - if (!NumericStats::HasMinMax(stats_build)) { - return; - } - int64_t min_value, max_value; - if (!ExtractNumericValue(NumericStats::Min(stats_build), min_value) || - !ExtractNumericValue(NumericStats::Max(stats_build), max_value)) { - return; - } - if (max_value < min_value) { - // empty table - return; - } - int64_t build_range; - if (!TrySubtractOperator::Operation(max_value, min_value, build_range)) { - return; - } - - // Fill join_stats for invisible join - auto &stats_probe = *op.join_stats[0].get(); // lhs stats - if (!NumericStats::HasMinMax(stats_probe)) { - return; - } - - // The max size our build must have to run the perfect HJ - const idx_t MAX_BUILD_SIZE = 1000000; - join_state.probe_min = NumericStats::Min(stats_probe); - join_state.probe_max = NumericStats::Max(stats_probe); - join_state.build_min = NumericStats::Min(stats_build); - join_state.build_max = NumericStats::Max(stats_build); - join_state.estimated_cardinality = op.estimated_cardinality; - join_state.build_range = NumericCast(build_range); - if (join_state.build_range > MAX_BUILD_SIZE) { - return; - } - if (NumericStats::Min(stats_build) <= NumericStats::Min(stats_probe) && - NumericStats::Max(stats_probe) <= NumericStats::Max(stats_build)) { - join_state.is_probe_in_domain = true; - } - join_state.is_build_small = true; - return; -} - static void RewriteJoinCondition(Expression &expr, idx_t offset) { if (expr.type == ExpressionType::BOUND_REF) { auto &ref = expr.Cast(); @@ -133,29 +25,6 @@ static void RewriteJoinCondition(Expression &expr, idx_t offset) { ExpressionIterator::EnumerateChildren(expr, [&](Expression &child) { RewriteJoinCondition(child, offset); }); } -bool PhysicalPlanGenerator::HasEquality(vector &conds, idx_t &range_count) { - for (size_t c = 0; c < conds.size(); ++c) { - auto &cond = conds[c]; - switch (cond.comparison) { - case ExpressionType::COMPARE_EQUAL: - case ExpressionType::COMPARE_NOT_DISTINCT_FROM: - return true; - case ExpressionType::COMPARE_LESSTHAN: - case ExpressionType::COMPARE_GREATERTHAN: - case ExpressionType::COMPARE_LESSTHANOREQUALTO: - case ExpressionType::COMPARE_GREATERTHANOREQUALTO: - ++range_count; - break; - case ExpressionType::COMPARE_NOTEQUAL: - case ExpressionType::COMPARE_DISTINCT_FROM: - break; - default: - throw NotImplementedException("Unimplemented comparison join"); - } - } - return false; -} - unique_ptr PhysicalPlanGenerator::PlanComparisonJoin(LogicalComparisonJoin &op) { // now visit the children D_ASSERT(op.children.size() == 2); @@ -173,7 +42,7 @@ unique_ptr PhysicalPlanGenerator::PlanComparisonJoin(LogicalCo } idx_t has_range = 0; - bool has_equality = HasEquality(op.conditions, has_range); + bool has_equality = op.HasEquality(has_range); bool can_merge = has_range > 0; bool can_iejoin = has_range >= 2 && recursive_cte_tables.empty(); switch (op.join_type) { @@ -196,14 +65,12 @@ unique_ptr PhysicalPlanGenerator::PlanComparisonJoin(LogicalCo unique_ptr plan; if (has_equality && !prefer_range_joins) { // Equality join with small number of keys : possible perfect join optimization - PerfectHashJoinStats perfect_join_stats; - CheckForPerfectJoinOpt(op, perfect_join_stats); - plan = - make_uniq(op, std::move(left), std::move(right), std::move(op.conditions), op.join_type, - op.left_projection_map, op.right_projection_map, std::move(op.mark_types), - op.estimated_cardinality, perfect_join_stats, std::move(op.filter_pushdown)); - + plan = make_uniq( + op, std::move(left), std::move(right), std::move(op.conditions), op.join_type, op.left_projection_map, + op.right_projection_map, std::move(op.mark_types), op.estimated_cardinality, std::move(op.filter_pushdown)); + plan->Cast().join_stats = std::move(op.join_stats); } else { + D_ASSERT(op.left_projection_map.empty()); if (left->estimated_cardinality <= client_config.nested_loop_join_threshold || right->estimated_cardinality <= client_config.nested_loop_join_threshold) { can_iejoin = false; diff --git a/src/duckdb/src/execution/physical_plan/plan_create_index.cpp b/src/duckdb/src/execution/physical_plan/plan_create_index.cpp index abfcd628..e2017c23 100644 --- a/src/duckdb/src/execution/physical_plan/plan_create_index.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_create_index.cpp @@ -1,28 +1,17 @@ #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp" -#include "duckdb/execution/operator/projection/physical_projection.hpp" -#include "duckdb/execution/operator/filter/physical_filter.hpp" -#include "duckdb/execution/operator/scan/physical_table_scan.hpp" -#include "duckdb/execution/operator/schema/physical_create_art_index.hpp" -#include "duckdb/execution/operator/order/physical_order.hpp" #include "duckdb/execution/physical_plan_generator.hpp" -#include "duckdb/planner/operator/logical_create_index.hpp" -#include "duckdb/planner/operator/logical_get.hpp" +#include "duckdb/main/client_context.hpp" +#include "duckdb/main/database.hpp" #include "duckdb/planner/expression/bound_operator_expression.hpp" #include "duckdb/planner/expression/bound_reference_expression.hpp" -#include "duckdb/planner/table_filter.hpp" +#include "duckdb/planner/operator/logical_create_index.hpp" +#include "duckdb/planner/operator/logical_get.hpp" namespace duckdb { unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalCreateIndex &op) { - // generate a physical plan for the parallel index creation which consists of the following operators - // table scan - projection (for expression execution) - filter (NOT NULL) - order (if applicable) - create index - - D_ASSERT(op.children.size() == 1); - auto table_scan = CreatePlan(*op.children[0]); - - // validate that all expressions contain valid scalar functions - // e.g. get_current_timestamp(), random(), and sequence values are not allowed as index keys - // because they make deletions and lookups unfeasible + // Ensure that all expressions contain valid scalar functions. + // E.g., get_current_timestamp(), random(), and sequence values cannot be index keys. for (idx_t i = 0; i < op.unbound_expressions.size(); i++) { auto &expr = op.unbound_expressions[i]; if (!expr->IsConsistent()) { @@ -30,91 +19,27 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalCreateInde } } - // if we get here and the index type is not ART, we throw an exception - // because we don't support any other index type yet. However, an operator extension could have - // replaced this part of the plan with a different index creation operator. - if (op.info->index_type != ART::TYPE_NAME) { + // If we get here and the index type is not valid index type, we throw an exception. + const auto index_type = context.db->config.GetIndexTypes().FindByName(op.info->index_type); + if (!index_type) { throw BinderException("Unknown index type: " + op.info->index_type); } + if (!index_type->create_plan) { + throw InternalException("Index type '%s' is missing a create_plan function", op.info->index_type); + } - // table scan operator for index key columns and row IDs + // Add a dependency for the entire table on which we create the index. dependencies.AddDependency(op.table); - D_ASSERT(op.info->scan_types.size() - 1 <= op.info->names.size()); D_ASSERT(op.info->scan_types.size() - 1 <= op.info->column_ids.size()); - // projection to execute expressions on the key columns - - vector new_column_types; - vector> select_list; - for (idx_t i = 0; i < op.expressions.size(); i++) { - new_column_types.push_back(op.expressions[i]->return_type); - select_list.push_back(std::move(op.expressions[i])); - } - new_column_types.emplace_back(LogicalType::ROW_TYPE); - select_list.push_back(make_uniq(LogicalType::ROW_TYPE, op.info->scan_types.size() - 1)); - - auto projection = make_uniq(new_column_types, std::move(select_list), op.estimated_cardinality); - projection->children.push_back(std::move(table_scan)); - - // filter operator for IS_NOT_NULL on each key column - - vector filter_types; - vector> filter_select_list; - - for (idx_t i = 0; i < new_column_types.size() - 1; i++) { - filter_types.push_back(new_column_types[i]); - auto is_not_null_expr = - make_uniq(ExpressionType::OPERATOR_IS_NOT_NULL, LogicalType::BOOLEAN); - auto bound_ref = make_uniq(new_column_types[i], i); - is_not_null_expr->children.push_back(std::move(bound_ref)); - filter_select_list.push_back(std::move(is_not_null_expr)); - } - - auto null_filter = - make_uniq(std::move(filter_types), std::move(filter_select_list), op.estimated_cardinality); - null_filter->types.emplace_back(LogicalType::ROW_TYPE); - null_filter->children.push_back(std::move(projection)); - - // determine if we sort the data prior to index creation - // we don't sort, if either VARCHAR or compound key - auto perform_sorting = true; - if (op.unbound_expressions.size() > 1) { - perform_sorting = false; - } else if (op.unbound_expressions[0]->return_type.InternalType() == PhysicalType::VARCHAR) { - perform_sorting = false; - } - - // actual physical create index operator - - auto physical_create_index = - make_uniq(op, op.table, op.info->column_ids, std::move(op.info), - std::move(op.unbound_expressions), op.estimated_cardinality, perform_sorting); - - if (perform_sorting) { - - // optional order operator - vector orders; - vector projections; - for (idx_t i = 0; i < new_column_types.size() - 1; i++) { - auto col_expr = make_uniq_base(new_column_types[i], i); - orders.emplace_back(OrderType::ASCENDING, OrderByNullType::NULLS_FIRST, std::move(col_expr)); - projections.emplace_back(i); - } - projections.emplace_back(new_column_types.size() - 1); - - auto physical_order = make_uniq(new_column_types, std::move(orders), std::move(projections), - op.estimated_cardinality); - physical_order->children.push_back(std::move(null_filter)); - - physical_create_index->children.push_back(std::move(physical_order)); - } else { - - // no ordering - physical_create_index->children.push_back(std::move(null_filter)); - } + // Generate a physical plan for the parallel index creation. + // TABLE SCAN - PROJECTION - (optional) NOT NULL FILTER - (optional) ORDER BY - CREATE INDEX + D_ASSERT(op.children.size() == 1); + auto table_scan = CreatePlan(*op.children[0]); - return std::move(physical_create_index); + PlanIndexInput input(context, op, table_scan); + return index_type->create_plan(input); } } // namespace duckdb diff --git a/src/duckdb/src/execution/physical_plan/plan_distinct.cpp b/src/duckdb/src/execution/physical_plan/plan_distinct.cpp index 355169c3..1eee79c8 100644 --- a/src/duckdb/src/execution/physical_plan/plan_distinct.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_distinct.cpp @@ -1,7 +1,7 @@ #include "duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp" #include "duckdb/execution/operator/projection/physical_projection.hpp" #include "duckdb/execution/physical_plan_generator.hpp" -#include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/planner/expression/bound_reference_expression.hpp" #include "duckdb/planner/operator/logical_distinct.hpp" @@ -59,8 +59,9 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalDistinct & first_children.push_back(std::move(bound)); FunctionBinder function_binder(context); - auto first_aggregate = function_binder.BindAggregateFunction( - FirstFun::GetFunction(logical_type), std::move(first_children), nullptr, AggregateType::NON_DISTINCT); + auto first_aggregate = + function_binder.BindAggregateFunction(FirstFunctionGetter::GetFunction(logical_type), + std::move(first_children), nullptr, AggregateType::NON_DISTINCT); first_aggregate->order_bys = op.order_by ? op.order_by->Copy() : nullptr; if (ClientConfig::GetConfig(context).enable_optimizer) { diff --git a/src/duckdb/src/execution/physical_plan/plan_export.cpp b/src/duckdb/src/execution/physical_plan/plan_export.cpp index 3179ec6f..ff04115e 100644 --- a/src/duckdb/src/execution/physical_plan/plan_export.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_export.cpp @@ -6,12 +6,8 @@ namespace duckdb { unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalExport &op) { - auto &config = DBConfig::GetConfig(context); - if (!config.options.enable_external_access) { - throw PermissionException("Export is disabled through configuration"); - } auto export_node = make_uniq(op.types, op.function, std::move(op.copy_info), - op.estimated_cardinality, op.exported_tables); + op.estimated_cardinality, std::move(op.exported_tables)); // plan the underlying copy statements, if any if (!op.children.empty()) { auto plan = CreatePlan(*op.children[0]); diff --git a/src/duckdb/src/execution/physical_plan/plan_filter.cpp b/src/duckdb/src/execution/physical_plan/plan_filter.cpp index ea87121a..50c1253d 100644 --- a/src/duckdb/src/execution/physical_plan/plan_filter.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_filter.cpp @@ -20,7 +20,7 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalFilter &op filter->children.push_back(std::move(plan)); plan = std::move(filter); } - if (!op.projection_map.empty()) { + if (op.HasProjectionMap()) { // there is a projection map, generate a physical projection vector> select_list; for (idx_t i = 0; i < op.projection_map.size(); i++) { diff --git a/src/duckdb/src/execution/physical_plan/plan_get.cpp b/src/duckdb/src/execution/physical_plan/plan_get.cpp index 056d291f..4aba3a44 100644 --- a/src/duckdb/src/execution/physical_plan/plan_get.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_get.cpp @@ -14,22 +14,22 @@ namespace duckdb { -unique_ptr CreateTableFilterSet(TableFilterSet &table_filters, const vector &column_ids) { +unique_ptr CreateTableFilterSet(TableFilterSet &table_filters, const vector &column_ids) { // create the table filter map auto table_filter_set = make_uniq(); for (auto &table_filter : table_filters.filters) { // find the relative column index from the absolute column index into the table - idx_t column_index = DConstants::INVALID_INDEX; + optional_idx column_index; for (idx_t i = 0; i < column_ids.size(); i++) { - if (table_filter.first == column_ids[i]) { + if (table_filter.first == column_ids[i].GetPrimaryIndex()) { column_index = i; break; } } - if (column_index == DConstants::INVALID_INDEX) { + if (!column_index.IsValid()) { throw InternalException("Could not find column index for table filter"); } - table_filter_set->filters[column_index] = std::move(table_filter.second); + table_filter_set->filters[column_index.GetIndex()] = std::move(table_filter.second); } return table_filter_set; } @@ -95,7 +95,7 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalGet &op) { unique_ptr unsupported_filter; unordered_set to_remove; for (auto &entry : table_filters->filters) { - auto column_id = column_ids[entry.first]; + auto column_id = column_ids[entry.first].GetPrimaryIndex(); auto &type = op.returned_types[column_id]; if (!op.function.supports_pushdown_type(type)) { idx_t column_id_filter = entry.first; @@ -123,7 +123,8 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalGet &op) { if (!select_list.empty()) { vector filter_types; for (auto &c : projection_ids) { - filter_types.push_back(op.returned_types[column_ids[c]]); + auto column_id = column_ids[c].GetPrimaryIndex(); + filter_types.push_back(op.returned_types[column_id]); } filter = make_uniq(filter_types, std::move(select_list), op.estimated_cardinality); } @@ -139,7 +140,7 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalGet &op) { if (column_ids.size() == op.returned_types.size()) { bool projection_necessary = false; for (idx_t i = 0; i < column_ids.size(); i++) { - if (column_ids[i] != i) { + if (column_ids[i].GetPrimaryIndex() != i) { projection_necessary = true; break; } @@ -158,13 +159,14 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalGet &op) { vector types; vector> expressions; for (auto &column_id : column_ids) { - if (column_id == COLUMN_IDENTIFIER_ROW_ID) { - types.emplace_back(LogicalType::BIGINT); + if (column_id.IsRowIdColumn()) { + types.emplace_back(LogicalType::ROW_TYPE); expressions.push_back(make_uniq(Value::BIGINT(0))); } else { - auto type = op.returned_types[column_id]; + auto col_id = column_id.GetPrimaryIndex(); + auto type = op.returned_types[col_id]; types.push_back(type); - expressions.push_back(make_uniq(type, column_id)); + expressions.push_back(make_uniq(type, col_id)); } } unique_ptr projection = diff --git a/src/duckdb/src/execution/physical_plan/plan_order.cpp b/src/duckdb/src/execution/physical_plan/plan_order.cpp index a7161ad3..449e7ee8 100644 --- a/src/duckdb/src/execution/physical_plan/plan_order.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_order.cpp @@ -9,16 +9,16 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalOrder &op) auto plan = CreatePlan(*op.children[0]); if (!op.orders.empty()) { - vector projections; - if (op.projections.empty()) { + vector projection_map; + if (op.HasProjectionMap()) { + projection_map = std::move(op.projection_map); + } else { for (idx_t i = 0; i < plan->types.size(); i++) { - projections.push_back(i); + projection_map.push_back(i); } - } else { - projections = std::move(op.projections); } - auto order = - make_uniq(op.types, std::move(op.orders), std::move(projections), op.estimated_cardinality); + auto order = make_uniq(op.types, std::move(op.orders), std::move(projection_map), + op.estimated_cardinality); order->children.push_back(std::move(plan)); plan = std::move(order); } diff --git a/src/duckdb/src/execution/physical_plan/plan_prepare.cpp b/src/duckdb/src/execution/physical_plan/plan_prepare.cpp index 0a61e939..191377b1 100644 --- a/src/duckdb/src/execution/physical_plan/plan_prepare.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_prepare.cpp @@ -8,8 +8,8 @@ namespace duckdb { unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalPrepare &op) { D_ASSERT(op.children.size() <= 1); - // generate physical plan - if (!op.children.empty()) { + // generate physical plan only when all parameters are bound (otherwise the physical plan won't be used anyway) + if (op.prepared->properties.bound_all_parameters && !op.children.empty()) { auto plan = CreatePlan(*op.children[0]); op.prepared->types = plan->types; op.prepared->plan = std::move(plan); diff --git a/src/duckdb/src/execution/physical_plan/plan_sample.cpp b/src/duckdb/src/execution/physical_plan/plan_sample.cpp index e13ef8eb..be557847 100644 --- a/src/duckdb/src/execution/physical_plan/plan_sample.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_sample.cpp @@ -3,6 +3,7 @@ #include "duckdb/execution/physical_plan_generator.hpp" #include "duckdb/planner/operator/logical_sample.hpp" #include "duckdb/common/enum_util.hpp" +#include "duckdb/common/random_engine.hpp" namespace duckdb { @@ -12,6 +13,10 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalSample &op auto plan = CreatePlan(*op.children[0]); unique_ptr sample; + if (!op.sample_options->seed.IsValid()) { + auto &random_engine = RandomEngine::Get(context); + op.sample_options->SetSeed(random_engine.NextRandomInteger()); + } switch (op.sample_options->method) { case SampleMethod::RESERVOIR_SAMPLE: sample = make_uniq(op.types, std::move(op.sample_options), op.estimated_cardinality); @@ -23,9 +28,9 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalSample &op "reservoir sampling or use a sample_size", EnumUtil::ToString(op.sample_options->method)); } - sample = make_uniq(op.types, op.sample_options->method, - op.sample_options->sample_size.GetValue(), - op.sample_options->seed, op.estimated_cardinality); + sample = make_uniq( + op.types, op.sample_options->method, op.sample_options->sample_size.GetValue(), + static_cast(op.sample_options->seed.GetIndex()), op.estimated_cardinality); break; default: throw InternalException("Unimplemented sample method"); diff --git a/src/duckdb/src/execution/physical_plan/plan_set_operation.cpp b/src/duckdb/src/execution/physical_plan/plan_set_operation.cpp index ef0f1755..dada24fc 100644 --- a/src/duckdb/src/execution/physical_plan/plan_set_operation.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_set_operation.cpp @@ -81,11 +81,10 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalSetOperati // EXCEPT is ANTI join // INTERSECT is SEMI join - PerfectHashJoinStats join_stats; // used in inner joins only JoinType join_type = op.type == LogicalOperatorType::LOGICAL_EXCEPT ? JoinType::ANTI : JoinType::SEMI; result = make_uniq(op, std::move(left), std::move(right), std::move(conditions), join_type, - op.estimated_cardinality, join_stats); + op.estimated_cardinality); // For EXCEPT ALL / INTERSECT ALL we need to remove the row number column again if (op.setop_all) { diff --git a/src/duckdb/src/execution/physical_plan/plan_simple.cpp b/src/duckdb/src/execution/physical_plan/plan_simple.cpp index a13b607c..7c03ff4f 100644 --- a/src/duckdb/src/execution/physical_plan/plan_simple.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_simple.cpp @@ -1,11 +1,10 @@ #include "duckdb/execution/operator/helper/physical_load.hpp" #include "duckdb/execution/operator/helper/physical_transaction.hpp" -#include "duckdb/execution/operator/helper/physical_vacuum.hpp" #include "duckdb/execution/operator/helper/physical_update_extensions.hpp" +#include "duckdb/execution/operator/helper/physical_vacuum.hpp" #include "duckdb/execution/operator/schema/physical_alter.hpp" #include "duckdb/execution/operator/schema/physical_attach.hpp" #include "duckdb/execution/operator/schema/physical_create_schema.hpp" -#include "duckdb/execution/operator/schema/physical_create_sequence.hpp" #include "duckdb/execution/operator/schema/physical_create_view.hpp" #include "duckdb/execution/operator/schema/physical_detach.hpp" #include "duckdb/execution/operator/schema/physical_drop.hpp" diff --git a/src/duckdb/src/execution/physical_plan/plan_top_n.cpp b/src/duckdb/src/execution/physical_plan/plan_top_n.cpp index 9748904c..70002187 100644 --- a/src/duckdb/src/execution/physical_plan/plan_top_n.cpp +++ b/src/duckdb/src/execution/physical_plan/plan_top_n.cpp @@ -9,8 +9,9 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(LogicalTopN &op) auto plan = CreatePlan(*op.children[0]); - auto top_n = make_uniq(op.types, std::move(op.orders), NumericCast(op.limit), - NumericCast(op.offset), op.estimated_cardinality); + auto top_n = + make_uniq(op.types, std::move(op.orders), NumericCast(op.limit), + NumericCast(op.offset), std::move(op.dynamic_filter), op.estimated_cardinality); top_n->children.push_back(std::move(plan)); return std::move(top_n); } diff --git a/src/duckdb/src/execution/physical_plan_generator.cpp b/src/duckdb/src/execution/physical_plan_generator.cpp index 9dead090..1ac6f61b 100644 --- a/src/duckdb/src/execution/physical_plan_generator.cpp +++ b/src/duckdb/src/execution/physical_plan_generator.cpp @@ -13,24 +13,6 @@ namespace duckdb { -class DependencyExtractor : public LogicalOperatorVisitor { -public: - explicit DependencyExtractor(LogicalDependencyList &dependencies) : dependencies(dependencies) { - } - -protected: - unique_ptr VisitReplace(BoundFunctionExpression &expr, unique_ptr *expr_ptr) override { - // extract dependencies from the bound function expression - if (expr.function.dependency) { - expr.function.dependency(expr, dependencies); - } - return nullptr; - } - -private: - LogicalDependencyList &dependencies; -}; - PhysicalPlanGenerator::PhysicalPlanGenerator(ClientContext &context) : context(context) { } @@ -51,10 +33,6 @@ unique_ptr PhysicalPlanGenerator::CreatePlan(unique_ptrResolveOperatorTypes(); profiler.EndPhase(); - // extract dependencies from the logical plan - DependencyExtractor extractor(dependencies); - extractor.VisitOperator(*op); - // then create the main physical plan profiler.StartPhase(MetricsType::PHYSICAL_PLANNER_CREATE_PLAN); auto plan = CreatePlan(*op); diff --git a/src/duckdb/src/execution/radix_partitioned_hashtable.cpp b/src/duckdb/src/execution/radix_partitioned_hashtable.cpp index cfd96810..fb5543d3 100644 --- a/src/duckdb/src/execution/radix_partitioned_hashtable.cpp +++ b/src/duckdb/src/execution/radix_partitioned_hashtable.cpp @@ -8,8 +8,6 @@ #include "duckdb/execution/executor.hpp" #include "duckdb/execution/ht_entry.hpp" #include "duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp" -#include "duckdb/main/config.hpp" -#include "duckdb/parallel/event.hpp" #include "duckdb/planner/expression/bound_reference_expression.hpp" #include "duckdb/storage/temporary_memory_manager.hpp" @@ -50,7 +48,7 @@ void RadixPartitionedHashTable::SetGroupingValues() { for (idx_t i = 0; i < grouping.size(); i++) { if (grouping_set.find(grouping[i]) == grouping_set.end()) { // We don't group on this value! - grouping_value += (int64_t)1 << (grouping.size() - (i + 1)); + grouping_value += 1LL << (grouping.size() - (i + 1)); } } grouping_values.push_back(Value::BIGINT(grouping_value)); @@ -96,31 +94,34 @@ struct RadixHTConfig { public: explicit RadixHTConfig(ClientContext &context, RadixHTGlobalSinkState &sink); - void SetRadixBits(idx_t radix_bits_p); + void SetRadixBits(const idx_t &radix_bits_p); bool SetRadixBitsToExternal(); idx_t GetRadixBits() const; private: - void SetRadixBitsInternal(const idx_t radix_bits_p, bool external); - static idx_t InitialSinkRadixBits(ClientContext &context); - static idx_t MaximumSinkRadixBits(ClientContext &context); - static idx_t ExternalRadixBits(const idx_t &maximum_sink_radix_bits_p); - static idx_t SinkCapacity(ClientContext &context); + void SetRadixBitsInternal(idx_t radix_bits_p, bool external); + static idx_t InitialSinkRadixBits(idx_t number_of_threads_p); + static idx_t MaximumSinkRadixBits(idx_t number_of_threads_p); + static idx_t SinkCapacity(idx_t number_of_threads_p); + +public: + //! Number of threads (from TaskScheduler) + const idx_t number_of_threads; + //! Capacity of HTs during the Sink + const idx_t sink_capacity; private: //! Assume (1 << 15) = 32KB L1 cache per core, divided by two because hyperthreading - static constexpr const idx_t L1_CACHE_SIZE = 32768 / 2; + static constexpr idx_t L1_CACHE_SIZE = 32768 / 2; //! Assume (1 << 20) = 1MB L2 cache per core, divided by two because hyperthreading - static constexpr const idx_t L2_CACHE_SIZE = 1048576 / 2; + static constexpr idx_t L2_CACHE_SIZE = 1048576 / 2; //! Assume (1 << 20) + (1 << 19) = 1.5MB L3 cache per core (shared), divided by two because hyperthreading - static constexpr const idx_t L3_CACHE_SIZE = 1572864 / 2; + static constexpr idx_t L3_CACHE_SIZE = 1572864 / 2; //! Sink radix bits to initialize with - static constexpr const idx_t MAXIMUM_INITIAL_SINK_RADIX_BITS = 3; + static constexpr idx_t MAXIMUM_INITIAL_SINK_RADIX_BITS = 3; //! Maximum Sink radix bits (independent of threads) - static constexpr const idx_t MAXIMUM_FINAL_SINK_RADIX_BITS = 7; - //! By how many radix bits to increment if we go external - static constexpr const idx_t EXTERNAL_RADIX_BITS_INCREMENT = 3; + static constexpr idx_t MAXIMUM_FINAL_SINK_RADIX_BITS = 7; //! The global sink state RadixHTGlobalSinkState &sink; @@ -128,17 +129,14 @@ struct RadixHTConfig { atomic sink_radix_bits; //! Maximum Sink radix bits (set based on number of threads) const idx_t maximum_sink_radix_bits; - //! Radix bits if we go external - const idx_t external_radix_bits; public: - //! Capacity of HTs during the Sink - const idx_t sink_capacity; - + //! If we have this many or less threads, we grow the HT, otherwise we abandon + static constexpr idx_t GROW_STRATEGY_THREAD_THRESHOLD = 2; //! If we fill this many blocks per partition, we trigger a repartition - static constexpr const double BLOCK_FILL_FACTOR = 1.8; + static constexpr double BLOCK_FILL_FACTOR = 1.8; //! By how many bits to repartition if a repartition is triggered - static constexpr const idx_t REPARTITION_RADIX_BITS = 2; + static constexpr idx_t REPARTITION_RADIX_BITS = 2; }; class RadixHTGlobalSinkState : public GlobalSinkState { @@ -153,6 +151,7 @@ class RadixHTGlobalSinkState : public GlobalSinkState { ClientContext &context; //! Temporary memory state for managing this hash table's memory usage unique_ptr temporary_memory_state; + idx_t minimum_reservation; //! The radix HT const RadixPartitionedHashTable &radix_ht; @@ -174,6 +173,7 @@ class RadixHTGlobalSinkState : public GlobalSinkState { unique_ptr uncombined_data; //! Allocators used during the Sink/Finalize vector> stored_allocators; + idx_t stored_allocators_size; //! Partitions that are finalized during GetData vector> partitions; @@ -192,8 +192,9 @@ RadixHTGlobalSinkState::RadixHTGlobalSinkState(ClientContext &context_p, const R : context(context_p), temporary_memory_state(TemporaryMemoryManager::Get(context).Register(context)), radix_ht(radix_ht_p), config(context, *this), finalized(false), external(false), active_threads(0), number_of_threads(NumericCast(TaskScheduler::GetScheduler(context).NumberOfThreads())), - any_combined(false), finalize_done(0), scan_pin_properties(TupleDataPinProperties::DESTROY_AFTER_DONE), - count_before_combining(0), max_partition_size(0) { + any_combined(false), stored_allocators_size(0), finalize_done(0), + scan_pin_properties(TupleDataPinProperties::DESTROY_AFTER_DONE), count_before_combining(0), + max_partition_size(0) { // Compute minimum reservation auto block_alloc_size = BufferManager::GetBufferManager(context).GetBlockAllocSize(); @@ -210,7 +211,7 @@ RadixHTGlobalSinkState::RadixHTGlobalSinkState(ClientContext &context_p, const R // This really is the minimum reservation that we can do auto num_threads = NumericCast(TaskScheduler::GetScheduler(context).NumberOfThreads()); - auto minimum_reservation = num_threads * ht_size; + minimum_reservation = num_threads * ht_size; temporary_memory_state->SetMinimumReservation(minimum_reservation); temporary_memory_state->SetRemainingSizeAndUpdateReservation(context, minimum_reservation); @@ -252,17 +253,18 @@ void RadixHTGlobalSinkState::Destroy() { // LCOV_EXCL_STOP RadixHTConfig::RadixHTConfig(ClientContext &context, RadixHTGlobalSinkState &sink_p) - : sink(sink_p), sink_radix_bits(InitialSinkRadixBits(context)), - maximum_sink_radix_bits(MaximumSinkRadixBits(context)), - external_radix_bits(ExternalRadixBits(maximum_sink_radix_bits)), sink_capacity(SinkCapacity(context)) { + : number_of_threads(NumericCast(TaskScheduler::GetScheduler(context).NumberOfThreads())), + sink_capacity(SinkCapacity(number_of_threads)), sink(sink_p), + sink_radix_bits(InitialSinkRadixBits(number_of_threads)), + maximum_sink_radix_bits(MaximumSinkRadixBits(number_of_threads)) { } -void RadixHTConfig::SetRadixBits(idx_t radix_bits_p) { +void RadixHTConfig::SetRadixBits(const idx_t &radix_bits_p) { SetRadixBitsInternal(MinValue(radix_bits_p, maximum_sink_radix_bits), false); } bool RadixHTConfig::SetRadixBitsToExternal() { - SetRadixBitsInternal(external_radix_bits, true); + SetRadixBitsInternal(MAXIMUM_FINAL_SINK_RADIX_BITS, true); return sink.external; } @@ -284,30 +286,24 @@ void RadixHTConfig::SetRadixBitsInternal(const idx_t radix_bits_p, bool external sink.external = true; } sink_radix_bits = radix_bits_p; - return; -} - -idx_t RadixHTConfig::InitialSinkRadixBits(ClientContext &context) { - const auto active_threads = NumericCast(TaskScheduler::GetScheduler(context).NumberOfThreads()); - return MinValue(RadixPartitioning::RadixBits(NextPowerOfTwo(active_threads)), MAXIMUM_INITIAL_SINK_RADIX_BITS); } -idx_t RadixHTConfig::MaximumSinkRadixBits(ClientContext &context) { - const auto active_threads = NumericCast(TaskScheduler::GetScheduler(context).NumberOfThreads()); - return MinValue(RadixPartitioning::RadixBits(NextPowerOfTwo(active_threads)), MAXIMUM_FINAL_SINK_RADIX_BITS); +idx_t RadixHTConfig::InitialSinkRadixBits(const idx_t number_of_threads_p) { + return MinValue(RadixPartitioning::RadixBitsOfPowerOfTwo(NextPowerOfTwo(number_of_threads_p)), + MAXIMUM_INITIAL_SINK_RADIX_BITS); } -idx_t RadixHTConfig::ExternalRadixBits(const idx_t &maximum_sink_radix_bits_p) { - return MinValue(maximum_sink_radix_bits_p + EXTERNAL_RADIX_BITS_INCREMENT, MAXIMUM_FINAL_SINK_RADIX_BITS); +idx_t RadixHTConfig::MaximumSinkRadixBits(const idx_t number_of_threads_p) { + if (number_of_threads_p <= GROW_STRATEGY_THREAD_THRESHOLD) { + return InitialSinkRadixBits(number_of_threads_p); // Don't repartition unless we go external + } + return MAXIMUM_FINAL_SINK_RADIX_BITS; } -idx_t RadixHTConfig::SinkCapacity(ClientContext &context) { - // Get active and maximum number of threads - const auto active_threads = NumericCast(TaskScheduler::GetScheduler(context).NumberOfThreads()); - +idx_t RadixHTConfig::SinkCapacity(const idx_t number_of_threads_p) { // Compute cache size per active thread (assuming cache is shared) - const auto total_shared_cache_size = active_threads * L3_CACHE_SIZE; - const auto cache_per_active_thread = L1_CACHE_SIZE + L2_CACHE_SIZE + total_shared_cache_size / active_threads; + const auto total_shared_cache_size = number_of_threads_p * L3_CACHE_SIZE; + const auto cache_per_active_thread = L1_CACHE_SIZE + L2_CACHE_SIZE + total_shared_cache_size / number_of_threads_p; // Divide cache per active thread by entry size, round up to next power of two, to get capacity const auto size_per_entry = sizeof(ht_entry_t) * GroupedAggregateHashTable::LOAD_FACTOR; @@ -363,14 +359,16 @@ void RadixPartitionedHashTable::PopulateGroupChunk(DataChunk &group_chunk, DataC group_chunk.Verify(); } -bool MaybeRepartition(ClientContext &context, RadixHTGlobalSinkState &gstate, RadixHTLocalSinkState &lstate) { +void MaybeRepartition(ClientContext &context, RadixHTGlobalSinkState &gstate, RadixHTLocalSinkState &lstate) { auto &config = gstate.config; auto &ht = *lstate.ht; auto &partitioned_data = ht.GetPartitionedData(); // Check if we're approaching the memory limit auto &temporary_memory_state = *gstate.temporary_memory_state; - const auto total_size = partitioned_data->SizeInBytes() + ht.Capacity() * sizeof(ht_entry_t); + const auto aggregate_allocator_size = ht.GetAggregateAllocator()->AllocationSize(); + const auto total_size = + aggregate_allocator_size + partitioned_data->SizeInBytes() + ht.Capacity() * sizeof(ht_entry_t); idx_t thread_limit = temporary_memory_state.GetReservation() / gstate.number_of_threads; if (total_size > thread_limit) { // We're over the thread memory limit @@ -379,7 +377,9 @@ bool MaybeRepartition(ClientContext &context, RadixHTGlobalSinkState &gstate, Ra auto guard = gstate.Lock(); thread_limit = temporary_memory_state.GetReservation() / gstate.number_of_threads; if (total_size > thread_limit) { - // Out-of-core would be triggered below, try to increase the reservation + // Out-of-core would be triggered below, update minimum reservation and try to increase the reservation + temporary_memory_state.SetMinimumReservation(aggregate_allocator_size * gstate.number_of_threads + + gstate.minimum_reservation); auto remaining_size = MaxValue(gstate.number_of_threads * total_size, temporary_memory_state.GetRemainingSize()); temporary_memory_state.SetRemainingSizeAndUpdateReservation(context, 2 * remaining_size); @@ -401,17 +401,16 @@ bool MaybeRepartition(ClientContext &context, RadixHTGlobalSinkState &gstate, Ra partitioned_data->Repartition(*lstate.abandoned_data); ht.SetRadixBits(gstate.config.GetRadixBits()); ht.InitializePartitionedData(); - return true; } } - // We can go external when there is only one active thread, but we shouldn't repartition here - if (gstate.number_of_threads < 2) { - return false; + // We can go external when there are few threads, but we shouldn't repartition here + if (gstate.number_of_threads <= RadixHTConfig::GROW_STRATEGY_THREAD_THRESHOLD) { + return; } const auto partition_count = partitioned_data->PartitionCount(); - const auto current_radix_bits = RadixPartitioning::RadixBits(partition_count); + const auto current_radix_bits = RadixPartitioning::RadixBitsOfPowerOfTwo(partition_count); D_ASSERT(current_radix_bits <= config.GetRadixBits()); const auto block_size = BufferManager::GetBufferManager(context).GetBlockSize(); @@ -424,7 +423,7 @@ bool MaybeRepartition(ClientContext &context, RadixHTGlobalSinkState &gstate, Ra const auto global_radix_bits = config.GetRadixBits(); if (current_radix_bits == global_radix_bits) { - return false; // We're already on the right number of radix bits + return; // We're already on the right number of radix bits } // We're out-of-sync with the global radix bits, repartition @@ -433,7 +432,6 @@ bool MaybeRepartition(ClientContext &context, RadixHTGlobalSinkState &gstate, Ra ht.SetRadixBits(global_radix_bits); ht.InitializePartitionedData(); old_partitioned_data->Repartition(*ht.GetPartitionedData()); - return true; } void RadixPartitionedHashTable::Sink(ExecutionContext &context, DataChunk &chunk, OperatorSinkInput &input, @@ -441,7 +439,10 @@ void RadixPartitionedHashTable::Sink(ExecutionContext &context, DataChunk &chunk auto &gstate = input.global_state.Cast(); auto &lstate = input.local_state.Cast(); if (!lstate.ht) { - lstate.ht = CreateHT(context.client, gstate.config.sink_capacity, gstate.config.GetRadixBits()); + const auto capacity = gstate.number_of_threads <= RadixHTConfig::GROW_STRATEGY_THREAD_THRESHOLD + ? gstate.config.sink_capacity + : GroupedAggregateHashTable::InitialCapacity(); + lstate.ht = CreateHT(context.client, capacity, gstate.config.GetRadixBits()); gstate.active_threads++; } @@ -451,11 +452,11 @@ void RadixPartitionedHashTable::Sink(ExecutionContext &context, DataChunk &chunk auto &ht = *lstate.ht; ht.AddChunk(group_chunk, payload_input, filter); - if (ht.Count() + STANDARD_VECTOR_SIZE < ht.ResizeThreshold()) { + if (ht.Count() + STANDARD_VECTOR_SIZE < GroupedAggregateHashTable::ResizeThreshold(gstate.config.sink_capacity)) { return; // We can fit another chunk } - if (gstate.number_of_threads > 2) { + if (gstate.number_of_threads > RadixHTConfig::GROW_STRATEGY_THREAD_THRESHOLD || gstate.external) { // 'Reset' the HT without taking its data, we can just keep appending to the same collection // This only works because we never resize the HT ht.ClearPointerTable(); @@ -464,12 +465,17 @@ void RadixPartitionedHashTable::Sink(ExecutionContext &context, DataChunk &chunk } // Check if we need to repartition - auto repartitioned = MaybeRepartition(context.client, gstate, lstate); + const auto radix_bits_before = ht.GetRadixBits(); + MaybeRepartition(context.client, gstate, lstate); + const auto repartitioned = radix_bits_before != ht.GetRadixBits(); if (repartitioned && ht.Count() != 0) { // We repartitioned, but we didn't clear the pointer table / reset the count because we're on 1 or 2 threads ht.ClearPointerTable(); ht.ResetCount(); + if (gstate.external) { + ht.Resize(gstate.config.sink_capacity); + } } // TODO: combine early and often @@ -507,6 +513,7 @@ void RadixPartitionedHashTable::Combine(ExecutionContext &context, GlobalSinkSta gstate.uncombined_data = std::move(lstate.abandoned_data); } gstate.stored_allocators.emplace_back(ht.GetAggregateAllocator()); + gstate.stored_allocators_size += gstate.stored_allocators.back()->AllocationSize(); } void RadixPartitionedHashTable::Finalize(ClientContext &context, GlobalSinkState &gstate_p) const { @@ -541,7 +548,7 @@ void RadixPartitionedHashTable::Finalize(ClientContext &context, GlobalSinkState } // Minimum of combining one partition at a time - gstate.temporary_memory_state->SetMinimumReservation(gstate.max_partition_size); + gstate.temporary_memory_state->SetMinimumReservation(gstate.stored_allocators_size + gstate.max_partition_size); // Set size to 0 until the scan actually starts gstate.temporary_memory_state->SetZero(); gstate.finalized = true; @@ -558,12 +565,15 @@ idx_t RadixPartitionedHashTable::MaxThreads(GlobalSinkState &sink_p) const { const auto max_threads = MinValue( NumericCast(TaskScheduler::GetScheduler(sink.context).NumberOfThreads()), sink.partitions.size()); - sink.temporary_memory_state->SetRemainingSizeAndUpdateReservation(sink.context, - max_threads * sink.max_partition_size); + sink.temporary_memory_state->SetRemainingSizeAndUpdateReservation( + sink.context, sink.stored_allocators_size + max_threads * sink.max_partition_size); + // we cannot spill aggregate state memory + const auto usable_memory = sink.temporary_memory_state->GetReservation() > sink.stored_allocators_size + ? sink.temporary_memory_state->GetReservation() - sink.max_partition_size + : 0; // This many partitions will fit given our reservation (at least 1)) - const auto partitions_fit = - MaxValue(sink.temporary_memory_state->GetReservation() / sink.max_partition_size, 1); + const auto partitions_fit = MaxValue(usable_memory / sink.max_partition_size, 1); // Mininum of the two return MinValue(partitions_fit, max_threads); @@ -684,8 +694,8 @@ SourceResultType RadixHTGlobalSourceState::AssignTask(RadixHTGlobalSinkState &si } RadixHTLocalSourceState::RadixHTLocalSourceState(ExecutionContext &context, const RadixPartitionedHashTable &radix_ht) - : task(RadixHTSourceTaskType::NO_TASK), scan_status(RadixHTScanStatus::DONE), layout(radix_ht.GetLayout().Copy()), - aggregate_allocator(BufferAllocator::Get(context.client)) { + : task(RadixHTSourceTaskType::NO_TASK), task_idx(DConstants::INVALID_INDEX), scan_status(RadixHTScanStatus::DONE), + layout(radix_ht.GetLayout().Copy()), aggregate_allocator(BufferAllocator::Get(context.client)) { auto &allocator = BufferAllocator::Get(context.client); auto scan_chunk_types = radix_ht.group_types; for (auto &aggr_type : radix_ht.op.aggregate_return_types) { @@ -903,25 +913,24 @@ SourceResultType RadixPartitionedHashTable::GetData(ExecutionContext &context, D } } -double RadixPartitionedHashTable::GetProgress(ClientContext &, GlobalSinkState &sink_p, - GlobalSourceState &gstate_p) const { +ProgressData RadixPartitionedHashTable::GetProgress(ClientContext &, GlobalSinkState &sink_p, + GlobalSourceState &gstate_p) const { auto &sink = sink_p.Cast(); auto &gstate = gstate_p.Cast(); // Get partition combine progress, weigh it 2x - double total_progress = 0; + ProgressData progress; for (auto &partition : sink.partitions) { - total_progress += 2.0 * partition->progress; + progress.done += 2.0 * partition->progress; } // Get scan progress, weigh it 1x - total_progress += 1.0 * double(gstate.task_done); + progress.done += 1.0 * double(gstate.task_done); // Divide by 3x for the weights, and the number of partitions to get a value between 0 and 1 again - total_progress /= 3.0 * double(sink.partitions.size()); + progress.total += 3.0 * double(sink.partitions.size()); - // Multiply by 100 to get a percentage - return 100.0 * total_progress; + return progress; } } // namespace duckdb diff --git a/src/duckdb/src/execution/reservoir_sample.cpp b/src/duckdb/src/execution/reservoir_sample.cpp index eb20982b..284e03fa 100644 --- a/src/duckdb/src/execution/reservoir_sample.cpp +++ b/src/duckdb/src/execution/reservoir_sample.cpp @@ -79,7 +79,7 @@ unique_ptr ReservoirSample::GetChunk() { for (idx_t i = samples_remaining; i < collected_sample_count; i++) { sel.set_index(i - samples_remaining, i); } - ret->Initialize(allocator, reservoir_types.begin(), reservoir_types.end(), STANDARD_VECTOR_SIZE); + ret->Initialize(allocator, reservoir_types); ret->Slice(*reservoir_data_chunk, sel, STANDARD_VECTOR_SIZE); ret->SetCardinality(STANDARD_VECTOR_SIZE); // reduce capacity and cardinality of the sample data chunk diff --git a/src/duckdb/src/execution/window_executor.cpp b/src/duckdb/src/execution/window_executor.cpp deleted file mode 100644 index 56397f7a..00000000 --- a/src/duckdb/src/execution/window_executor.cpp +++ /dev/null @@ -1,1830 +0,0 @@ -#include "duckdb/execution/window_executor.hpp" - -#include "duckdb/common/operator/add.hpp" -#include "duckdb/common/operator/subtract.hpp" - -#include "duckdb/common/array.hpp" - -namespace duckdb { - -//===--------------------------------------------------------------------===// -// WindowDataChunk -//===--------------------------------------------------------------------===// -bool WindowDataChunk::IsSimple(const Vector &v) { - switch (v.GetType().InternalType()) { - case PhysicalType::BOOL: - case PhysicalType::UINT8: - case PhysicalType::INT8: - case PhysicalType::UINT16: - case PhysicalType::INT16: - case PhysicalType::UINT32: - case PhysicalType::INT32: - case PhysicalType::UINT64: - case PhysicalType::INT64: - case PhysicalType::FLOAT: - case PhysicalType::DOUBLE: - case PhysicalType::INTERVAL: - case PhysicalType::UINT128: - case PhysicalType::INT128: - return true; - case PhysicalType::LIST: - case PhysicalType::STRUCT: - case PhysicalType::ARRAY: - case PhysicalType::VARCHAR: - case PhysicalType::BIT: - return false; - default: - break; - } - - throw InternalException("Unsupported type for WindowDataChunk"); -} - -WindowDataChunk::WindowDataChunk(DataChunk &chunk) : chunk(chunk) { -} - -void WindowDataChunk::Initialize(Allocator &allocator, const vector &types, idx_t capacity) { - vector new_locks(types.size()); - locks.swap(new_locks); - chunk.Initialize(allocator, types, capacity); - chunk.SetCardinality(capacity); - - is_simple.clear(); - for (const auto &v : chunk.data) { - is_simple.push_back(IsSimple(v)); - } -} - -void WindowDataChunk::Copy(DataChunk &input, idx_t begin) { - const auto source_count = input.size(); - const idx_t end = begin + source_count; - const idx_t count = chunk.size(); - D_ASSERT(end <= count); - // Can we overwrite the validity mask in parallel? - bool aligned = IsMaskAligned(begin, end, count); - for (column_t i = 0; i < chunk.data.size(); ++i) { - auto &src = input.data[i]; - auto &dst = chunk.data[i]; - UnifiedVectorFormat sdata; - src.ToUnifiedFormat(count, sdata); - if (is_simple[i] && aligned && sdata.validity.AllValid()) { - VectorOperations::Copy(src, dst, source_count, 0, begin); - } else { - lock_guard column_guard(locks[i]); - VectorOperations::Copy(src, dst, source_count, 0, begin); - } - } -} - -static idx_t FindNextStart(const ValidityMask &mask, idx_t l, const idx_t r, idx_t &n) { - if (mask.AllValid()) { - auto start = MinValue(l + n - 1, r); - n -= MinValue(n, r - l); - return start; - } - - while (l < r) { - // If l is aligned with the start of a block, and the block is blank, then skip forward one block. - idx_t entry_idx; - idx_t shift; - mask.GetEntryIndex(l, entry_idx, shift); - - const auto block = mask.GetValidityEntry(entry_idx); - if (mask.NoneValid(block) && !shift) { - l += ValidityMask::BITS_PER_VALUE; - continue; - } - - // Loop over the block - for (; shift < ValidityMask::BITS_PER_VALUE && l < r; ++shift, ++l) { - if (mask.RowIsValid(block, shift) && --n == 0) { - return MinValue(l, r); - } - } - } - - // Didn't find a start so return the end of the range - return r; -} - -static idx_t FindPrevStart(const ValidityMask &mask, const idx_t l, idx_t r, idx_t &n) { - if (mask.AllValid()) { - auto start = (r <= l + n) ? l : r - n; - n -= r - start; - return start; - } - - while (l < r) { - // If r is aligned with the start of a block, and the previous block is blank, - // then skip backwards one block. - idx_t entry_idx; - idx_t shift; - mask.GetEntryIndex(r - 1, entry_idx, shift); - - const auto block = mask.GetValidityEntry(entry_idx); - if (mask.NoneValid(block) && (shift + 1 == ValidityMask::BITS_PER_VALUE)) { - // r is nonzero (> l) and word aligned, so this will not underflow. - r -= ValidityMask::BITS_PER_VALUE; - continue; - } - - // Loop backwards over the block - // shift is probing r-1 >= l >= 0 - for (++shift; shift-- > 0 && l < r; --r) { - // l < r ensures n == 1 if result is supposed to be NULL because of EXCLUDE - if (mask.RowIsValid(block, shift) && --n == 0) { - return MaxValue(l, r - 1); - } - } - } - - // Didn't find a start so return the start of the range - return l; -} - -template -static T GetCell(const DataChunk &chunk, idx_t column, idx_t index) { - D_ASSERT(chunk.ColumnCount() > column); - auto &source = chunk.data[column]; - const auto data = FlatVector::GetData(source); - return data[index]; -} - -static bool CellIsNull(const DataChunk &chunk, idx_t column, idx_t index) { - D_ASSERT(chunk.ColumnCount() > column); - auto &source = chunk.data[column]; - return FlatVector::IsNull(source, index); -} - -static void CopyCell(const DataChunk &chunk, idx_t column, idx_t index, Vector &target, idx_t target_offset) { - D_ASSERT(chunk.ColumnCount() > column); - auto &source = chunk.data[column]; - VectorOperations::Copy(source, target, index + 1, index, target_offset); -} - -//===--------------------------------------------------------------------===// -// WindowInputColumn -//===--------------------------------------------------------------------===// -WindowInputColumn::WindowInputColumn(optional_ptr expr_p, ClientContext &context, idx_t count) - : expr(expr_p), scalar(expr ? expr->IsScalar() : true), count(count), wtarget(target) { - - if (expr) { - vector types; - types.emplace_back(expr->return_type); - wtarget.Initialize(Allocator::Get(context), types, count); - ptype = expr->return_type.InternalType(); - } -} - -void WindowInputColumn::Copy(DataChunk &input_chunk, idx_t input_idx) { - if (expr && (!input_idx || !scalar)) { - wtarget.Copy(input_chunk, input_idx); - } -} - -//===--------------------------------------------------------------------===// -// WindowColumnIterator -//===--------------------------------------------------------------------===// -template -struct WindowColumnIterator { - using iterator = WindowColumnIterator; - using iterator_category = std::random_access_iterator_tag; - using difference_type = std::ptrdiff_t; - using value_type = T; - using reference = T; - using pointer = idx_t; - - explicit WindowColumnIterator(const WindowInputColumn &coll_p, pointer pos_p = 0) : coll(&coll_p), pos(pos_p) { - } - - // Forward iterator - inline reference operator*() const { - return coll->GetCell(pos); - } - inline explicit operator pointer() const { - return pos; - } - - inline iterator &operator++() { - ++pos; - return *this; - } - inline iterator operator++(int) { - auto result = *this; - ++(*this); - return result; - } - - // Bidirectional iterator - inline iterator &operator--() { - --pos; - return *this; - } - inline iterator operator--(int) { - auto result = *this; - --(*this); - return result; - } - - // Random Access - inline iterator &operator+=(difference_type n) { - pos += UnsafeNumericCast(n); - return *this; - } - inline iterator &operator-=(difference_type n) { - pos -= UnsafeNumericCast(n); - return *this; - } - - inline reference operator[](difference_type m) const { - return coll->GetCell(pos + m); - } - - friend inline iterator &operator+(const iterator &a, difference_type n) { - return iterator(a.coll, a.pos + n); - } - - friend inline iterator operator-(const iterator &a, difference_type n) { - return iterator(a.coll, a.pos - n); - } - - friend inline iterator operator+(difference_type n, const iterator &a) { - return a + n; - } - friend inline difference_type operator-(const iterator &a, const iterator &b) { - return difference_type(a.pos - b.pos); - } - - friend inline bool operator==(const iterator &a, const iterator &b) { - return a.pos == b.pos; - } - friend inline bool operator!=(const iterator &a, const iterator &b) { - return a.pos != b.pos; - } - friend inline bool operator<(const iterator &a, const iterator &b) { - return a.pos < b.pos; - } - friend inline bool operator<=(const iterator &a, const iterator &b) { - return a.pos <= b.pos; - } - friend inline bool operator>(const iterator &a, const iterator &b) { - return a.pos > b.pos; - } - friend inline bool operator>=(const iterator &a, const iterator &b) { - return a.pos >= b.pos; - } - -private: - optional_ptr coll; - pointer pos; -}; - -template -struct OperationCompare : public std::function { - inline bool operator()(const T &lhs, const T &val) const { - return OP::template Operation(lhs, val); - } -}; - -template -static idx_t FindTypedRangeBound(const WindowInputColumn &over, const idx_t order_begin, const idx_t order_end, - const WindowBoundary range, WindowInputExpression &boundary, const idx_t chunk_idx, - const FrameBounds &prev) { - D_ASSERT(!boundary.CellIsNull(chunk_idx)); - const auto val = boundary.GetCell(chunk_idx); - - OperationCompare comp; - - // Check that the value we are searching for is in range. - if (range == WindowBoundary::EXPR_PRECEDING_RANGE) { - // Preceding but value past the current value - const auto cur_val = over.GetCell(order_end - 1); - if (comp(cur_val, val)) { - throw OutOfRangeException("Invalid RANGE PRECEDING value"); - } - } else { - // Following but value before the current value - D_ASSERT(range == WindowBoundary::EXPR_FOLLOWING_RANGE); - const auto cur_val = over.GetCell(order_begin); - if (comp(val, cur_val)) { - throw OutOfRangeException("Invalid RANGE FOLLOWING value"); - } - } - - // Try to reuse the previous bounds to restrict the search. - // This is only valid if the previous bounds were non-empty - // Only inject the comparisons if the previous bounds are a strict subset. - WindowColumnIterator begin(over, order_begin); - WindowColumnIterator end(over, order_end); - if (prev.start < prev.end) { - if (order_begin < prev.start && prev.start < order_end) { - const auto first = over.GetCell(prev.start); - if (!comp(val, first)) { - // prev.first <= val, so we can start further forward - begin += UnsafeNumericCast(prev.start - order_begin); - } - } - if (order_begin < prev.end && prev.end < order_end) { - const auto second = over.GetCell(prev.end - 1); - if (!comp(second, val)) { - // val <= prev.second, so we can end further back - // (prev.second is the largest peer) - end -= UnsafeNumericCast(order_end - prev.end - 1); - } - } - } - - if (FROM) { - return idx_t(std::lower_bound(begin, end, val, comp)); - } else { - return idx_t(std::upper_bound(begin, end, val, comp)); - } -} - -template -static idx_t FindRangeBound(const WindowInputColumn &over, const idx_t order_begin, const idx_t order_end, - const WindowBoundary range, WindowInputExpression &boundary, const idx_t chunk_idx, - const FrameBounds &prev) { - D_ASSERT(boundary.chunk.ColumnCount() == 1); - D_ASSERT(boundary.chunk.data[0].GetType().InternalType() == over.ptype); - - switch (over.ptype) { - case PhysicalType::INT8: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::INT16: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::INT32: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::INT64: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::UINT8: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::UINT16: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::UINT32: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::UINT64: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::INT128: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::UINT128: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, - prev); - case PhysicalType::FLOAT: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::DOUBLE: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case PhysicalType::INTERVAL: - return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, - prev); - default: - throw InternalException("Unsupported column type for RANGE"); - } -} - -template -static idx_t FindOrderedRangeBound(const WindowInputColumn &over, const OrderType range_sense, const idx_t order_begin, - const idx_t order_end, const WindowBoundary range, WindowInputExpression &boundary, - const idx_t chunk_idx, const FrameBounds &prev) { - switch (range_sense) { - case OrderType::ASCENDING: - return FindRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - case OrderType::DESCENDING: - return FindRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); - default: - throw InternalException("Unsupported ORDER BY sense for RANGE"); - } -} - -struct WindowBoundariesState { - static inline bool IsScalar(const unique_ptr &expr) { - return !expr || expr->IsScalar(); - } - - static inline bool BoundaryNeedsPeer(const WindowBoundary &boundary) { - switch (boundary) { - case WindowBoundary::CURRENT_ROW_RANGE: - case WindowBoundary::EXPR_PRECEDING_RANGE: - case WindowBoundary::EXPR_FOLLOWING_RANGE: - return true; - default: - return false; - } - } - - static inline bool ExpressionNeedsPeer(const ExpressionType &type) { - switch (type) { - case ExpressionType::WINDOW_RANK: - case ExpressionType::WINDOW_RANK_DENSE: - case ExpressionType::WINDOW_PERCENT_RANK: - case ExpressionType::WINDOW_CUME_DIST: - return true; - default: - return false; - } - } - - WindowBoundariesState(const BoundWindowExpression &wexpr, const idx_t input_size); - - void Update(const idx_t row_idx, const WindowInputColumn &range_collection, const idx_t chunk_idx, - WindowInputExpression &boundary_start, WindowInputExpression &boundary_end, - const ValidityMask &partition_mask, const ValidityMask &order_mask); - - void Bounds(DataChunk &bounds, idx_t row_idx, const WindowInputColumn &range, const idx_t count, - WindowInputExpression &boundary_start, WindowInputExpression &boundary_end, - const ValidityMask &partition_mask, const ValidityMask &order_mask); - - // Cached lookups - const ExpressionType type; - const idx_t input_size; - const WindowBoundary start_boundary; - const WindowBoundary end_boundary; - const size_t partition_count; - const size_t order_count; - const OrderType range_sense; - const bool has_preceding_range; - const bool has_following_range; - const bool needs_peer; - - idx_t next_pos = 0; - idx_t partition_start = 0; - idx_t partition_end = 0; - idx_t peer_start = 0; - idx_t peer_end = 0; - idx_t valid_start = 0; - idx_t valid_end = 0; - idx_t window_start = NumericLimits::Maximum(); - idx_t window_end = NumericLimits::Maximum(); - FrameBounds prev; -}; - -//===--------------------------------------------------------------------===// -// WindowBoundariesState -//===--------------------------------------------------------------------===// -void WindowBoundariesState::Update(const idx_t row_idx, const WindowInputColumn &range_collection, - const idx_t chunk_idx, WindowInputExpression &boundary_start, - WindowInputExpression &boundary_end, const ValidityMask &partition_mask, - const ValidityMask &order_mask) { - - if (partition_count + order_count > 0) { - - // determine partition and peer group boundaries to ultimately figure out window size - const auto is_same_partition = !partition_mask.RowIsValidUnsafe(row_idx); - const auto is_peer = !order_mask.RowIsValidUnsafe(row_idx); - const auto is_jump = (next_pos != row_idx); - - // when the partition changes, recompute the boundaries - if (!is_same_partition || is_jump) { - if (is_jump) { - idx_t n = 1; - partition_start = FindPrevStart(partition_mask, 0, row_idx + 1, n); - n = 1; - peer_start = FindPrevStart(order_mask, 0, row_idx + 1, n); - } else { - partition_start = row_idx; - peer_start = row_idx; - } - - // find end of partition - partition_end = input_size; - if (partition_count) { - idx_t n = 1; - partition_end = FindNextStart(partition_mask, partition_start + 1, input_size, n); - } - - // Find valid ordering values for the new partition - // so we can exclude NULLs from RANGE expression computations - valid_start = partition_start; - valid_end = partition_end; - - if ((valid_start < valid_end) && has_preceding_range) { - // Exclude any leading NULLs - if (range_collection.CellIsNull(valid_start)) { - idx_t n = 1; - valid_start = FindNextStart(order_mask, valid_start + 1, valid_end, n); - } - } - - if ((valid_start < valid_end) && has_following_range) { - // Exclude any trailing NULLs - if (range_collection.CellIsNull(valid_end - 1)) { - idx_t n = 1; - valid_end = FindPrevStart(order_mask, valid_start, valid_end, n); - } - - // Reset range hints - prev.start = valid_start; - prev.end = valid_end; - } - } else if (!is_peer) { - peer_start = row_idx; - } - - if (needs_peer) { - peer_end = partition_end; - if (order_count) { - idx_t n = 1; - peer_end = FindNextStart(order_mask, peer_start + 1, partition_end, n); - } - } - - } else { - // OVER() - partition_end = input_size; - peer_end = partition_end; - } - next_pos = row_idx + 1; - - // determine window boundaries depending on the type of expression - switch (start_boundary) { - case WindowBoundary::UNBOUNDED_PRECEDING: - window_start = partition_start; - break; - case WindowBoundary::CURRENT_ROW_ROWS: - window_start = row_idx; - break; - case WindowBoundary::CURRENT_ROW_RANGE: - window_start = peer_start; - break; - case WindowBoundary::EXPR_PRECEDING_ROWS: { - int64_t computed_start; - if (!TrySubtractOperator::Operation(static_cast(row_idx), boundary_start.GetCell(chunk_idx), - computed_start)) { - window_start = partition_start; - } else { - window_start = UnsafeNumericCast(MaxValue(computed_start, 0)); - } - break; - } - case WindowBoundary::EXPR_FOLLOWING_ROWS: { - int64_t computed_start; - if (!TryAddOperator::Operation(static_cast(row_idx), boundary_start.GetCell(chunk_idx), - computed_start)) { - window_start = partition_start; - } else { - window_start = UnsafeNumericCast(MaxValue(computed_start, 0)); - } - break; - } - case WindowBoundary::EXPR_PRECEDING_RANGE: { - if (boundary_start.CellIsNull(chunk_idx)) { - window_start = peer_start; - } else { - prev.start = FindOrderedRangeBound(range_collection, range_sense, valid_start, row_idx + 1, - start_boundary, boundary_start, chunk_idx, prev); - window_start = prev.start; - } - break; - } - case WindowBoundary::EXPR_FOLLOWING_RANGE: { - if (boundary_start.CellIsNull(chunk_idx)) { - window_start = peer_start; - } else { - prev.start = FindOrderedRangeBound(range_collection, range_sense, row_idx, valid_end, start_boundary, - boundary_start, chunk_idx, prev); - window_start = prev.start; - } - break; - } - default: - throw InternalException("Unsupported window start boundary"); - } - - switch (end_boundary) { - case WindowBoundary::CURRENT_ROW_ROWS: - window_end = row_idx + 1; - break; - case WindowBoundary::CURRENT_ROW_RANGE: - window_end = peer_end; - break; - case WindowBoundary::UNBOUNDED_FOLLOWING: - window_end = partition_end; - break; - case WindowBoundary::EXPR_PRECEDING_ROWS: { - int64_t computed_start; - if (!TrySubtractOperator::Operation(int64_t(row_idx + 1), boundary_end.GetCell(chunk_idx), - computed_start)) { - window_end = partition_end; - } else { - window_end = UnsafeNumericCast(MaxValue(computed_start, 0)); - } - break; - } - case WindowBoundary::EXPR_FOLLOWING_ROWS: { - int64_t computed_start; - if (!TryAddOperator::Operation(int64_t(row_idx + 1), boundary_end.GetCell(chunk_idx), - computed_start)) { - window_end = partition_end; - } else { - window_end = UnsafeNumericCast(MaxValue(computed_start, 0)); - } - break; - } - case WindowBoundary::EXPR_PRECEDING_RANGE: { - if (boundary_end.CellIsNull(chunk_idx)) { - window_end = peer_end; - } else { - prev.end = FindOrderedRangeBound(range_collection, range_sense, valid_start, row_idx + 1, - end_boundary, boundary_end, chunk_idx, prev); - window_end = prev.end; - } - break; - } - case WindowBoundary::EXPR_FOLLOWING_RANGE: { - if (boundary_end.CellIsNull(chunk_idx)) { - window_end = peer_end; - } else { - prev.end = FindOrderedRangeBound(range_collection, range_sense, row_idx, valid_end, end_boundary, - boundary_end, chunk_idx, prev); - window_end = prev.end; - } - break; - } - default: - throw InternalException("Unsupported window end boundary"); - } - - // clamp windows to partitions if they should exceed - if (window_start < partition_start) { - window_start = partition_start; - } - if (window_start > partition_end) { - window_start = partition_end; - } - if (window_end < partition_start) { - window_end = partition_start; - } - if (window_end > partition_end) { - window_end = partition_end; - } -} - -static bool HasPrecedingRange(const BoundWindowExpression &wexpr) { - return (wexpr.start == WindowBoundary::EXPR_PRECEDING_RANGE || wexpr.end == WindowBoundary::EXPR_PRECEDING_RANGE); -} - -static bool HasFollowingRange(const BoundWindowExpression &wexpr) { - return (wexpr.start == WindowBoundary::EXPR_FOLLOWING_RANGE || wexpr.end == WindowBoundary::EXPR_FOLLOWING_RANGE); -} - -WindowBoundariesState::WindowBoundariesState(const BoundWindowExpression &wexpr, const idx_t input_size) - : type(wexpr.type), input_size(input_size), start_boundary(wexpr.start), end_boundary(wexpr.end), - partition_count(wexpr.partitions.size()), order_count(wexpr.orders.size()), - range_sense(wexpr.orders.empty() ? OrderType::INVALID : wexpr.orders[0].type), - has_preceding_range(HasPrecedingRange(wexpr)), has_following_range(HasFollowingRange(wexpr)), - // if we have EXCLUDE GROUP / TIES, we also need peer boundaries - needs_peer(BoundaryNeedsPeer(wexpr.end) || ExpressionNeedsPeer(wexpr.type) || - wexpr.exclude_clause >= WindowExcludeMode::GROUP) { -} - -void WindowBoundariesState::Bounds(DataChunk &bounds, idx_t row_idx, const WindowInputColumn &range, const idx_t count, - WindowInputExpression &boundary_start, WindowInputExpression &boundary_end, - const ValidityMask &partition_mask, const ValidityMask &order_mask) { - bounds.Reset(); - D_ASSERT(bounds.ColumnCount() == 6); - auto partition_begin_data = FlatVector::GetData(bounds.data[PARTITION_BEGIN]); - auto partition_end_data = FlatVector::GetData(bounds.data[PARTITION_END]); - auto peer_begin_data = FlatVector::GetData(bounds.data[PEER_BEGIN]); - auto peer_end_data = FlatVector::GetData(bounds.data[PEER_END]); - auto window_begin_data = FlatVector::GetData(bounds.data[WINDOW_BEGIN]); - auto window_end_data = FlatVector::GetData(bounds.data[WINDOW_END]); - for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { - Update(row_idx, range, chunk_idx, boundary_start, boundary_end, partition_mask, order_mask); - *partition_begin_data++ = partition_start; - *partition_end_data++ = partition_end; - if (needs_peer) { - *peer_begin_data++ = peer_start; - *peer_end_data++ = peer_end; - } - *window_begin_data++ = UnsafeNumericCast(window_start); - *window_end_data++ = UnsafeNumericCast(window_end); - } - bounds.SetCardinality(count); -} - -//===--------------------------------------------------------------------===// -// WindowExecutorBoundsState -//===--------------------------------------------------------------------===// -class WindowExecutorBoundsState : public WindowExecutorLocalState { -public: - explicit WindowExecutorBoundsState(const WindowExecutorGlobalState &gstate); - ~WindowExecutorBoundsState() override { - } - - virtual void UpdateBounds(idx_t row_idx, DataChunk &input_chunk, const WindowInputColumn &range); - - // Frame management - const ValidityMask &partition_mask; - const ValidityMask &order_mask; - DataChunk bounds; - WindowBoundariesState state; - - // evaluate boundaries if present. Parser has checked boundary types. - WindowInputExpression boundary_start; - WindowInputExpression boundary_end; -}; - -WindowExecutorBoundsState::WindowExecutorBoundsState(const WindowExecutorGlobalState &gstate) - : WindowExecutorLocalState(gstate), partition_mask(gstate.partition_mask), order_mask(gstate.order_mask), - state(gstate.executor.wexpr, gstate.payload_count), - boundary_start(gstate.executor.wexpr.start_expr.get(), gstate.executor.context), - boundary_end(gstate.executor.wexpr.end_expr.get(), gstate.executor.context) { - vector bounds_types(6, LogicalType(LogicalTypeId::UBIGINT)); - bounds.Initialize(Allocator::Get(gstate.executor.context), bounds_types); -} - -void WindowExecutorBoundsState::UpdateBounds(idx_t row_idx, DataChunk &input_chunk, const WindowInputColumn &range) { - // Evaluate the row-level arguments - boundary_start.Execute(input_chunk); - boundary_end.Execute(input_chunk); - - const auto count = input_chunk.size(); - bounds.Reset(); - state.Bounds(bounds, row_idx, range, count, boundary_start, boundary_end, partition_mask, order_mask); -} - -//===--------------------------------------------------------------------===// -// ExclusionFilter -//===--------------------------------------------------------------------===// - -//! Handles window exclusion by piggybacking on the filtering logic. -//! (needed for first_value, last_value, nth_value) -class ExclusionFilter { -public: - ExclusionFilter(const WindowExcludeMode exclude_mode_p, idx_t total_count, const ValidityMask &src) - : mode(exclude_mode_p), mask_src(src) { - mask.Initialize(total_count); - - // copy the data from mask_src - FetchFromSource(0, total_count); - } - - //! Copy the entries from mask_src to mask, in the index range [begin, end) - void FetchFromSource(idx_t begin, idx_t end); - //! Apply the current exclusion to the validity mask - //! (offset is the current row's index within the chunk) - void ApplyExclusion(DataChunk &bounds, idx_t row_idx, idx_t offset); - //! Reset the validity mask to match mask_src - //! (offset is the current row's index within the chunk) - void ResetMask(idx_t row_idx, idx_t offset); - - //! The current peer group's begin - idx_t curr_peer_begin; - //! The current peer group's end - idx_t curr_peer_end; - //! The window exclusion mode - WindowExcludeMode mode; - //! The validity mask representing the exclusion - ValidityMask mask; - //! The validity mask upon which mask is based - const ValidityMask &mask_src; - //! A validity mask consisting of only one entries (needed if no ignore_nulls mask is supplied) - ValidityMask all_ones_mask; -}; - -void ExclusionFilter::FetchFromSource(idx_t begin, idx_t end) { - idx_t begin_entry_idx; - idx_t end_entry_idx; - idx_t idx_in_entry; - mask.GetEntryIndex(begin, begin_entry_idx, idx_in_entry); - mask.GetEntryIndex(end - 1, end_entry_idx, idx_in_entry); - auto dst = mask.GetData() + begin_entry_idx; - for (idx_t entry_idx = begin_entry_idx; entry_idx <= end_entry_idx; ++entry_idx) { - *dst++ = mask_src.GetValidityEntry(entry_idx); - } -} - -void ExclusionFilter::ApplyExclusion(DataChunk &bounds, idx_t row_idx, idx_t offset) { - // flip the bits in mask according to the window exclusion mode - switch (mode) { - case WindowExcludeMode::CURRENT_ROW: - mask.SetInvalid(row_idx); - break; - case WindowExcludeMode::TIES: - case WindowExcludeMode::GROUP: { - if (curr_peer_end == row_idx || offset == 0) { - // new peer group or input chunk: set entire peer group to invalid - auto peer_begin = FlatVector::GetData(bounds.data[PEER_BEGIN]); - auto peer_end = FlatVector::GetData(bounds.data[PEER_END]); - curr_peer_begin = peer_begin[offset]; - curr_peer_end = peer_end[offset]; - for (idx_t i = curr_peer_begin; i < curr_peer_end; i++) { - mask.SetInvalid(i); - } - } - if (mode == WindowExcludeMode::TIES) { - mask.Set(row_idx, mask_src.RowIsValid(row_idx)); - } - break; - } - default: - break; - } -} - -void ExclusionFilter::ResetMask(idx_t row_idx, idx_t offset) { - // flip the bits that were modified in ApplyExclusion back - switch (mode) { - case WindowExcludeMode::CURRENT_ROW: - mask.Set(row_idx, mask_src.RowIsValid(row_idx)); - break; - case WindowExcludeMode::TIES: - mask.SetInvalid(row_idx); - DUCKDB_EXPLICIT_FALLTHROUGH; - case WindowExcludeMode::GROUP: - if (curr_peer_end == row_idx + 1) { - // if we've reached the peer group's end, restore the entire peer group - FetchFromSource(curr_peer_begin, curr_peer_end); - } - break; - default: - break; - } -} - -//===--------------------------------------------------------------------===// -// WindowExecutor -//===--------------------------------------------------------------------===// -static void PrepareInputExpressions(const vector> &exprs, ExpressionExecutor &executor, - DataChunk &chunk) { - if (exprs.empty()) { - return; - } - - vector types; - for (idx_t expr_idx = 0; expr_idx < exprs.size(); ++expr_idx) { - types.push_back(exprs[expr_idx]->return_type); - executor.AddExpression(*exprs[expr_idx]); - } - - if (!types.empty()) { - auto &allocator = executor.GetAllocator(); - chunk.Initialize(allocator, types); - } -} - -WindowExecutor::WindowExecutor(BoundWindowExpression &wexpr, ClientContext &context) : wexpr(wexpr), context(context) { -} - -WindowExecutorGlobalState::WindowExecutorGlobalState(const WindowExecutor &executor, const idx_t payload_count, - const ValidityMask &partition_mask, const ValidityMask &order_mask) - : executor(executor), payload_count(payload_count), partition_mask(partition_mask), order_mask(order_mask), - range((HasPrecedingRange(executor.wexpr) || HasFollowingRange(executor.wexpr)) - ? executor.wexpr.orders[0].expression.get() - : nullptr, - executor.context, payload_count) { - for (const auto &child : executor.wexpr.children) { - arg_types.emplace_back(child->return_type); - } -} - -WindowExecutorLocalState::WindowExecutorLocalState(const WindowExecutorGlobalState &gstate) - : payload_executor(gstate.executor.context), range_executor(gstate.executor.context) { - // TODO: child may be a scalar, don't need to materialize the whole collection then - - // evaluate inner expressions of window functions, could be more complex - PrepareInputExpressions(gstate.executor.wexpr.children, payload_executor, payload_chunk); - - if (gstate.range.expr) { - vector types; - types.emplace_back(gstate.range.expr->return_type); - range_executor.AddExpression(*gstate.range.expr); - - auto &allocator = range_executor.GetAllocator(); - range_chunk.Initialize(allocator, types); - } -} - -void WindowExecutorLocalState::Sink(WindowExecutorGlobalState &gstate, DataChunk &input_chunk, idx_t input_idx) { - if (gstate.range.expr && (!input_idx || !gstate.range.scalar)) { - range_executor.Execute(input_chunk, range_chunk); - gstate.range.Copy(range_chunk, input_idx); - } -} - -unique_ptr WindowExecutor::GetGlobalState(const idx_t payload_count, - const ValidityMask &partition_mask, - const ValidityMask &order_mask) const { - return make_uniq(*this, payload_count, partition_mask, order_mask); -} - -unique_ptr WindowExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { - return make_uniq(gstate); -} - -void WindowExecutor::Sink(DataChunk &input_chunk, const idx_t input_idx, const idx_t total_count, - WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const { - lstate.Sink(gstate, input_chunk, input_idx); -} - -//===--------------------------------------------------------------------===// -// WindowAggregateExecutor -//===--------------------------------------------------------------------===// -class WindowAggregateExecutorGlobalState : public WindowExecutorGlobalState { -public: - bool IsConstantAggregate(); - bool IsCustomAggregate(); - bool IsDistinctAggregate(); - - WindowAggregateExecutorGlobalState(const WindowAggregateExecutor &executor, const idx_t payload_count, - const ValidityMask &partition_mask, const ValidityMask &order_mask); - - // aggregate computation algorithm - unique_ptr aggregator; - // aggregate global state - unique_ptr gsink; -}; - -bool WindowAggregateExecutorGlobalState::IsConstantAggregate() { - const auto &wexpr = executor.wexpr; - - if (!wexpr.aggregate) { - return false; - } - // window exclusion cannot be handled by constant aggregates - if (wexpr.exclude_clause != WindowExcludeMode::NO_OTHER) { - return false; - } - - // COUNT(*) is already handled efficiently by segment trees. - if (wexpr.children.empty()) { - return false; - } - - /* - The default framing option is RANGE UNBOUNDED PRECEDING, which - is the same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT - ROW; it sets the frame to be all rows from the partition start - up through the current row's last peer (a row that the window's - ORDER BY clause considers equivalent to the current row; all - rows are peers if there is no ORDER BY). In general, UNBOUNDED - PRECEDING means that the frame starts with the first row of the - partition, and similarly UNBOUNDED FOLLOWING means that the - frame ends with the last row of the partition, regardless of - RANGE, ROWS or GROUPS mode. In ROWS mode, CURRENT ROW means that - the frame starts or ends with the current row; but in RANGE or - GROUPS mode it means that the frame starts or ends with the - current row's first or last peer in the ORDER BY ordering. The - offset PRECEDING and offset FOLLOWING options vary in meaning - depending on the frame mode. - */ - switch (wexpr.start) { - case WindowBoundary::UNBOUNDED_PRECEDING: - break; - case WindowBoundary::CURRENT_ROW_RANGE: - if (!wexpr.orders.empty()) { - return false; - } - break; - default: - return false; - } - - switch (wexpr.end) { - case WindowBoundary::UNBOUNDED_FOLLOWING: - break; - case WindowBoundary::CURRENT_ROW_RANGE: - if (!wexpr.orders.empty()) { - return false; - } - break; - default: - return false; - } - - return true; -} - -bool WindowAggregateExecutorGlobalState::IsDistinctAggregate() { - const auto &wexpr = executor.wexpr; - - if (!wexpr.aggregate) { - return false; - } - - return wexpr.distinct; -} - -bool WindowAggregateExecutorGlobalState::IsCustomAggregate() { - const auto &wexpr = executor.wexpr; - const auto &mode = reinterpret_cast(executor).mode; - - if (!wexpr.aggregate) { - return false; - } - - if (!AggregateObject(wexpr).function.window) { - return false; - } - - return (mode < WindowAggregationMode::COMBINE); -} - -void WindowExecutor::Evaluate(idx_t row_idx, DataChunk &input_chunk, Vector &result, WindowExecutorLocalState &lstate, - WindowExecutorGlobalState &gstate) const { - auto &lbstate = lstate.Cast(); - lbstate.UpdateBounds(row_idx, input_chunk, gstate.range); - - const auto count = input_chunk.size(); - EvaluateInternal(gstate, lstate, result, count, row_idx); - - result.Verify(count); -} - -WindowAggregateExecutor::WindowAggregateExecutor(BoundWindowExpression &wexpr, ClientContext &context, - WindowAggregationMode mode) - : WindowExecutor(wexpr, context), mode(mode) { -} - -WindowAggregateExecutorGlobalState::WindowAggregateExecutorGlobalState(const WindowAggregateExecutor &executor, - const idx_t group_count, - const ValidityMask &partition_mask, - const ValidityMask &order_mask) - : WindowExecutorGlobalState(executor, group_count, partition_mask, order_mask) { - auto &wexpr = executor.wexpr; - auto &context = executor.context; - auto return_type = wexpr.return_type; - const auto &mode = reinterpret_cast(executor).mode; - - // Force naive for SEPARATE mode or for (currently!) unsupported functionality - const auto force_naive = - !ClientConfig::GetConfig(context).enable_optimizer || mode == WindowAggregationMode::SEPARATE; - AggregateObject aggr(wexpr); - if (force_naive || (wexpr.distinct && wexpr.exclude_clause != WindowExcludeMode::NO_OTHER)) { - aggregator = make_uniq(aggr, arg_types, return_type, wexpr.exclude_clause); - } else if (IsDistinctAggregate()) { - // build a merge sort tree - // see https://dl.acm.org/doi/pdf/10.1145/3514221.3526184 - aggregator = make_uniq(aggr, arg_types, return_type, wexpr.exclude_clause, context); - } else if (IsConstantAggregate()) { - aggregator = make_uniq(aggr, arg_types, return_type, wexpr.exclude_clause); - } else if (IsCustomAggregate()) { - aggregator = make_uniq(aggr, arg_types, return_type, wexpr.exclude_clause); - } else { - // build a segment tree for frame-adhering aggregates - // see http://www.vldb.org/pvldb/vol8/p1058-leis.pdf - aggregator = make_uniq(aggr, arg_types, return_type, mode, wexpr.exclude_clause); - } - - gsink = aggregator->GetGlobalState(group_count, partition_mask); -} - -unique_ptr WindowAggregateExecutor::GetGlobalState(const idx_t payload_count, - const ValidityMask &partition_mask, - const ValidityMask &order_mask) const { - return make_uniq(*this, payload_count, partition_mask, order_mask); -} - -class WindowAggregateExecutorLocalState : public WindowExecutorBoundsState { -public: - WindowAggregateExecutorLocalState(const WindowExecutorGlobalState &gstate, const WindowAggregator &aggregator) - : WindowExecutorBoundsState(gstate), filter_executor(gstate.executor.context) { - - auto &gastate = gstate.Cast(); - aggregator_state = aggregator.GetLocalState(*gastate.gsink); - - // evaluate the FILTER clause and stuff it into a large mask for compactness and reuse - auto &wexpr = gstate.executor.wexpr; - if (wexpr.filter_expr) { - filter_executor.AddExpression(*wexpr.filter_expr); - filter_sel.Initialize(STANDARD_VECTOR_SIZE); - } - } - -public: - // state of aggregator - unique_ptr aggregator_state; - //! Executor for any filter clause - ExpressionExecutor filter_executor; - //! Result of filtering - SelectionVector filter_sel; -}; - -unique_ptr -WindowAggregateExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { - auto &gastate = gstate.Cast(); - auto res = make_uniq(gstate, *gastate.aggregator); - return std::move(res); -} - -void WindowAggregateExecutor::Sink(DataChunk &input_chunk, const idx_t input_idx, const idx_t total_count, - WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const { - auto &gastate = gstate.Cast(); - auto &lastate = lstate.Cast(); - auto &filter_sel = lastate.filter_sel; - auto &filter_executor = lastate.filter_executor; - auto &payload_executor = lastate.payload_executor; - auto &payload_chunk = lastate.payload_chunk; - auto &aggregator = gastate.aggregator; - - idx_t filtered = 0; - SelectionVector *filtering = nullptr; - if (wexpr.filter_expr) { - filtering = &filter_sel; - filtered = filter_executor.SelectExpression(input_chunk, filter_sel); - } - - if (!wexpr.children.empty()) { - payload_chunk.Reset(); - payload_executor.Execute(input_chunk, payload_chunk); - payload_chunk.Verify(); - } else if (aggregator) { - // Zero-argument aggregate (e.g., COUNT(*) - payload_chunk.SetCardinality(input_chunk); - } - - D_ASSERT(aggregator); - auto &gestate = *gastate.gsink; - auto &lestate = *lastate.aggregator_state; - aggregator->Sink(gestate, lestate, payload_chunk, input_idx, filtering, filtered); - - WindowExecutor::Sink(input_chunk, input_idx, total_count, gstate, lstate); -} - -static void ApplyWindowStats(const WindowBoundary &boundary, FrameDelta &delta, BaseStatistics *base, bool is_start) { - // Avoid overflow by clamping to the frame bounds - auto base_stats = delta; - - switch (boundary) { - case WindowBoundary::UNBOUNDED_PRECEDING: - if (is_start) { - delta.end = 0; - return; - } - break; - case WindowBoundary::UNBOUNDED_FOLLOWING: - if (!is_start) { - delta.begin = 0; - return; - } - break; - case WindowBoundary::CURRENT_ROW_ROWS: - delta.begin = delta.end = 0; - return; - case WindowBoundary::EXPR_PRECEDING_ROWS: - if (base && base->GetStatsType() == StatisticsType::NUMERIC_STATS && NumericStats::HasMinMax(*base)) { - // Preceding so negative offset from current row - base_stats.begin = NumericStats::GetMin(*base); - base_stats.end = NumericStats::GetMax(*base); - if (delta.begin < base_stats.end && base_stats.end < delta.end) { - delta.begin = -base_stats.end; - } - if (delta.begin < base_stats.begin && base_stats.begin < delta.end) { - delta.end = -base_stats.begin + 1; - } - } - return; - case WindowBoundary::EXPR_FOLLOWING_ROWS: - if (base && base->GetStatsType() == StatisticsType::NUMERIC_STATS && NumericStats::HasMinMax(*base)) { - base_stats.begin = NumericStats::GetMin(*base); - base_stats.end = NumericStats::GetMax(*base); - if (base_stats.end < delta.end) { - delta.end = base_stats.end + 1; - } - } - return; - - case WindowBoundary::CURRENT_ROW_RANGE: - case WindowBoundary::EXPR_PRECEDING_RANGE: - case WindowBoundary::EXPR_FOLLOWING_RANGE: - return; - default: - break; - } - - if (is_start) { - throw InternalException("Unsupported window start boundary"); - } else { - throw InternalException("Unsupported window end boundary"); - } -} - -void WindowAggregateExecutor::Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const { - auto &gastate = gstate.Cast(); - auto &aggregator = gastate.aggregator; - auto &gsink = gastate.gsink; - D_ASSERT(aggregator); - - // Estimate the frame statistics - // Default to the entire partition if we don't know anything - FrameStats stats; - const auto count = NumericCast(gastate.payload_count); - - // First entry is the frame start - stats[0] = FrameDelta(-count, count); - auto base = wexpr.expr_stats.empty() ? nullptr : wexpr.expr_stats[0].get(); - ApplyWindowStats(wexpr.start, stats[0], base, true); - - // Second entry is the frame end - stats[1] = FrameDelta(-count, count); - base = wexpr.expr_stats.empty() ? nullptr : wexpr.expr_stats[1].get(); - ApplyWindowStats(wexpr.end, stats[1], base, false); - - auto &lastate = lstate.Cast(); - aggregator->Finalize(*gsink, *lastate.aggregator_state, stats); -} - -void WindowAggregateExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &gastate = gstate.Cast(); - auto &lastate = lstate.Cast(); - auto &aggregator = gastate.aggregator; - auto &gsink = gastate.gsink; - D_ASSERT(aggregator); - - auto &agg_state = *lastate.aggregator_state; - - aggregator->Evaluate(*gsink, agg_state, lastate.bounds, result, count, row_idx); -} - -//===--------------------------------------------------------------------===// -// WindowRowNumberExecutor -//===--------------------------------------------------------------------===// -WindowRowNumberExecutor::WindowRowNumberExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowExecutor(wexpr, context) { -} - -void WindowRowNumberExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &lbstate = lstate.Cast(); - auto partition_begin = FlatVector::GetData(lbstate.bounds.data[PARTITION_BEGIN]); - auto rdata = FlatVector::GetData(result); - for (idx_t i = 0; i < count; ++i, ++row_idx) { - rdata[i] = NumericCast(row_idx - partition_begin[i] + 1); - } -} - -//===--------------------------------------------------------------------===// -// WindowPeerState -//===--------------------------------------------------------------------===// -class WindowPeerState : public WindowExecutorBoundsState { -public: - explicit WindowPeerState(const WindowExecutorGlobalState &gstate) : WindowExecutorBoundsState(gstate) { - } - -public: - uint64_t dense_rank = 1; - uint64_t rank_equal = 0; - uint64_t rank = 1; - - void NextRank(idx_t partition_begin, idx_t peer_begin, idx_t row_idx); -}; - -void WindowPeerState::NextRank(idx_t partition_begin, idx_t peer_begin, idx_t row_idx) { - if (partition_begin == row_idx) { - dense_rank = 1; - rank = 1; - rank_equal = 0; - } else if (peer_begin == row_idx) { - dense_rank++; - rank += rank_equal; - rank_equal = 0; - } - rank_equal++; -} - -WindowRankExecutor::WindowRankExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowExecutor(wexpr, context) { -} - -unique_ptr WindowRankExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { - return make_uniq(gstate); -} - -void WindowRankExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &lpeer = lstate.Cast(); - auto partition_begin = FlatVector::GetData(lpeer.bounds.data[PARTITION_BEGIN]); - auto peer_begin = FlatVector::GetData(lpeer.bounds.data[PEER_BEGIN]); - auto rdata = FlatVector::GetData(result); - - // Reset to "previous" row - lpeer.rank = (peer_begin[0] - partition_begin[0]) + 1; - lpeer.rank_equal = (row_idx - peer_begin[0]); - - for (idx_t i = 0; i < count; ++i, ++row_idx) { - lpeer.NextRank(partition_begin[i], peer_begin[i], row_idx); - rdata[i] = NumericCast(lpeer.rank); - } -} - -WindowDenseRankExecutor::WindowDenseRankExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowExecutor(wexpr, context) { -} - -unique_ptr -WindowDenseRankExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { - return make_uniq(gstate); -} - -void WindowDenseRankExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &lpeer = lstate.Cast(); - - auto &order_mask = gstate.order_mask; - auto partition_begin = FlatVector::GetData(lpeer.bounds.data[PARTITION_BEGIN]); - auto peer_begin = FlatVector::GetData(lpeer.bounds.data[PEER_BEGIN]); - auto rdata = FlatVector::GetData(result); - - // Reset to "previous" row - lpeer.rank = (peer_begin[0] - partition_begin[0]) + 1; - lpeer.rank_equal = (row_idx - peer_begin[0]); - - // The previous dense rank is the number of order mask bits in [partition_begin, row_idx) - lpeer.dense_rank = 0; - - auto order_begin = partition_begin[0]; - idx_t begin_idx; - idx_t begin_offset; - order_mask.GetEntryIndex(order_begin, begin_idx, begin_offset); - - auto order_end = row_idx; - idx_t end_idx; - idx_t end_offset; - order_mask.GetEntryIndex(order_end, end_idx, end_offset); - - // If they are in the same entry, just loop - if (begin_idx == end_idx) { - const auto entry = order_mask.GetValidityEntry(begin_idx); - for (; begin_offset < end_offset; ++begin_offset) { - lpeer.dense_rank += order_mask.RowIsValid(entry, begin_offset); - } - } else { - // Count the ragged bits at the start of the partition - if (begin_offset) { - const auto entry = order_mask.GetValidityEntry(begin_idx); - for (; begin_offset < order_mask.BITS_PER_VALUE; ++begin_offset) { - lpeer.dense_rank += order_mask.RowIsValid(entry, begin_offset); - ++order_begin; - } - ++begin_idx; - } - - // Count the the aligned bits. - ValidityMask tail_mask(order_mask.GetData() + begin_idx); - lpeer.dense_rank += tail_mask.CountValid(order_end - order_begin); - } - - for (idx_t i = 0; i < count; ++i, ++row_idx) { - lpeer.NextRank(partition_begin[i], peer_begin[i], row_idx); - rdata[i] = NumericCast(lpeer.dense_rank); - } -} - -WindowPercentRankExecutor::WindowPercentRankExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowExecutor(wexpr, context) { -} - -unique_ptr -WindowPercentRankExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { - return make_uniq(gstate); -} - -void WindowPercentRankExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &lpeer = lstate.Cast(); - auto partition_begin = FlatVector::GetData(lpeer.bounds.data[PARTITION_BEGIN]); - auto partition_end = FlatVector::GetData(lpeer.bounds.data[PARTITION_END]); - auto peer_begin = FlatVector::GetData(lpeer.bounds.data[PEER_BEGIN]); - auto rdata = FlatVector::GetData(result); - - // Reset to "previous" row - lpeer.rank = (peer_begin[0] - partition_begin[0]) + 1; - lpeer.rank_equal = (row_idx - peer_begin[0]); - - for (idx_t i = 0; i < count; ++i, ++row_idx) { - lpeer.NextRank(partition_begin[i], peer_begin[i], row_idx); - auto denom = static_cast(NumericCast(partition_end[i] - partition_begin[i] - 1)); - double percent_rank = denom > 0 ? ((double)lpeer.rank - 1) / denom : 0; - rdata[i] = percent_rank; - } -} - -//===--------------------------------------------------------------------===// -// WindowCumeDistExecutor -//===--------------------------------------------------------------------===// -WindowCumeDistExecutor::WindowCumeDistExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowExecutor(wexpr, context) { -} - -void WindowCumeDistExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &lbstate = lstate.Cast(); - auto partition_begin = FlatVector::GetData(lbstate.bounds.data[PARTITION_BEGIN]); - auto partition_end = FlatVector::GetData(lbstate.bounds.data[PARTITION_END]); - auto peer_end = FlatVector::GetData(lbstate.bounds.data[PEER_END]); - auto rdata = FlatVector::GetData(result); - for (idx_t i = 0; i < count; ++i, ++row_idx) { - auto denom = static_cast(NumericCast(partition_end[i] - partition_begin[i])); - double cume_dist = denom > 0 ? ((double)(peer_end[i] - partition_begin[i])) / denom : 0; - rdata[i] = cume_dist; - } -} - -//===--------------------------------------------------------------------===// -// WindowValueGlobalState -//===--------------------------------------------------------------------===// - -class WindowValueGlobalState : public WindowExecutorGlobalState { -public: - WindowValueGlobalState(const WindowExecutor &executor, const idx_t payload_count, - const ValidityMask &partition_mask, const ValidityMask &order_mask) - : WindowExecutorGlobalState(executor, payload_count, partition_mask, order_mask), - payload_collection(payload_data), ignore_nulls(&no_nulls) - - { - if (!arg_types.empty()) { - payload_collection.Initialize(Allocator::Get(executor.context), arg_types, payload_count); - } - - auto &wexpr = executor.wexpr; - if (wexpr.ignore_nulls) { - switch (wexpr.type) { - case ExpressionType::WINDOW_LEAD: - case ExpressionType::WINDOW_LAG: - case ExpressionType::WINDOW_FIRST_VALUE: - case ExpressionType::WINDOW_LAST_VALUE: - case ExpressionType::WINDOW_NTH_VALUE: - ignore_nulls = &FlatVector::Validity(payload_collection.chunk.data[0]); - break; - default: - break; - } - } - } - - // The partition values - DataChunk payload_data; - // The partition values - WindowDataChunk payload_collection; - // Mask to use for exclusion if we are not ignoring NULLs - ValidityMask no_nulls; - // IGNORE NULLS - optional_ptr ignore_nulls; -}; - -//===--------------------------------------------------------------------===// -// WindowValueLocalState -//===--------------------------------------------------------------------===// - -//! A class representing the state of the first_value, last_value and nth_value functions -class WindowValueLocalState : public WindowExecutorBoundsState { -public: - explicit WindowValueLocalState(const WindowValueGlobalState &gvstate) - : WindowExecutorBoundsState(gvstate), gvstate(gvstate) { - } - - //! Lazily initialize for value Execute - void Initialize(); - - //! The corresponding global value state - const WindowValueGlobalState &gvstate; - //! Lazy initialization flag - bool initialized = false; - //! The exclusion filter handler - unique_ptr exclusion_filter; - //! The validity mask that combines both the NULLs and exclusion information - optional_ptr ignore_nulls_exclude; -}; - -void WindowValueLocalState::Initialize() { - if (initialized) { - return; - } - auto ignore_nulls = gvstate.ignore_nulls; - if (gvstate.executor.wexpr.exclude_clause == WindowExcludeMode::NO_OTHER) { - exclusion_filter = nullptr; - ignore_nulls_exclude = ignore_nulls; - } else { - // create the exclusion filter based on ignore_nulls - exclusion_filter = - make_uniq(gvstate.executor.wexpr.exclude_clause, gvstate.payload_count, *ignore_nulls); - ignore_nulls_exclude = &exclusion_filter->mask; - } - - initialized = true; -} - -//===--------------------------------------------------------------------===// -// WindowValueExecutor -//===--------------------------------------------------------------------===// -WindowValueExecutor::WindowValueExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowExecutor(wexpr, context) { -} - -WindowNtileExecutor::WindowNtileExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowValueExecutor(wexpr, context) { -} - -unique_ptr WindowValueExecutor::GetGlobalState(const idx_t payload_count, - const ValidityMask &partition_mask, - const ValidityMask &order_mask) const { - return make_uniq(*this, payload_count, partition_mask, order_mask); -} - -void WindowValueExecutor::Sink(DataChunk &input_chunk, const idx_t input_idx, const idx_t total_count, - WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const { - auto &gvstate = gstate.Cast(); - auto &lvstate = lstate.Cast(); - auto &payload_chunk = lvstate.payload_chunk; - auto &payload_executor = lvstate.payload_executor; - auto &payload_collection = gvstate.payload_collection; - - if (!wexpr.children.empty()) { - payload_chunk.Reset(); - payload_executor.Execute(input_chunk, payload_chunk); - payload_chunk.Verify(); - payload_collection.Copy(payload_chunk, input_idx); - } - - WindowExecutor::Sink(input_chunk, input_idx, total_count, gstate, lstate); -} - -unique_ptr WindowValueExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { - const auto &gvstate = gstate.Cast(); - return make_uniq(gvstate); -} - -void WindowNtileExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &gvstate = gstate.Cast(); - auto &payload_collection = gvstate.payload_collection.chunk; - D_ASSERT(payload_collection.ColumnCount() == 1); - auto &lbstate = lstate.Cast(); - auto partition_begin = FlatVector::GetData(lbstate.bounds.data[PARTITION_BEGIN]); - auto partition_end = FlatVector::GetData(lbstate.bounds.data[PARTITION_END]); - auto rdata = FlatVector::GetData(result); - for (idx_t i = 0; i < count; ++i, ++row_idx) { - if (CellIsNull(payload_collection, 0, row_idx)) { - FlatVector::SetNull(result, i, true); - } else { - auto n_param = GetCell(payload_collection, 0, row_idx); - if (n_param < 1) { - throw InvalidInputException("Argument for ntile must be greater than zero"); - } - // With thanks from SQLite's ntileValueFunc() - auto n_total = NumericCast(partition_end[i] - partition_begin[i]); - if (n_param > n_total) { - // more groups allowed than we have values - // map every entry to a unique group - n_param = n_total; - } - int64_t n_size = (n_total / n_param); - // find the row idx within the group - D_ASSERT(row_idx >= partition_begin[i]); - auto adjusted_row_idx = NumericCast(row_idx - partition_begin[i]); - // now compute the ntile - int64_t n_large = n_total - n_param * n_size; - int64_t i_small = n_large * (n_size + 1); - int64_t result_ntile; - - D_ASSERT((n_large * (n_size + 1) + (n_param - n_large) * n_size) == n_total); - - if (adjusted_row_idx < i_small) { - result_ntile = 1 + adjusted_row_idx / (n_size + 1); - } else { - result_ntile = 1 + n_large + (adjusted_row_idx - i_small) / n_size; - } - // result has to be between [1, NTILE] - D_ASSERT(result_ntile >= 1 && result_ntile <= n_param); - rdata[i] = result_ntile; - } - } -} - -//===--------------------------------------------------------------------===// -// WindowLeadLagLocalState -//===--------------------------------------------------------------------===// -class WindowLeadLagLocalState : public WindowValueLocalState { -public: - explicit WindowLeadLagLocalState(const WindowValueGlobalState &gstate) - : WindowValueLocalState(gstate), - leadlag_offset(gstate.executor.wexpr.offset_expr.get(), gstate.executor.context), - leadlag_default(gstate.executor.wexpr.default_expr.get(), gstate.executor.context) { - } - - void UpdateBounds(idx_t row_idx, DataChunk &input_chunk, const WindowInputColumn &range) override; - -public: - // LEAD/LAG Evaluation - WindowInputExpression leadlag_offset; - WindowInputExpression leadlag_default; -}; - -void WindowLeadLagLocalState::UpdateBounds(idx_t row_idx, DataChunk &input_chunk, const WindowInputColumn &range) { - // Evaluate the row-level arguments - leadlag_offset.Execute(input_chunk); - leadlag_default.Execute(input_chunk); - - WindowExecutorBoundsState::UpdateBounds(row_idx, input_chunk, range); -} - -WindowLeadLagExecutor::WindowLeadLagExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowValueExecutor(wexpr, context) { -} - -unique_ptr -WindowLeadLagExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { - const auto &gvstate = gstate.Cast(); - return make_uniq(gvstate); -} - -void WindowLeadLagExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &gvstate = gstate.Cast(); - auto &payload_collection = gvstate.payload_collection.chunk; - auto &ignore_nulls = gvstate.ignore_nulls; - auto &llstate = lstate.Cast(); - - bool can_shift = ignore_nulls->AllValid(); - if (wexpr.offset_expr) { - can_shift = can_shift && wexpr.offset_expr->IsFoldable(); - } - if (wexpr.default_expr) { - can_shift = can_shift && wexpr.default_expr->IsFoldable(); - } - - auto partition_begin = FlatVector::GetData(llstate.bounds.data[PARTITION_BEGIN]); - auto partition_end = FlatVector::GetData(llstate.bounds.data[PARTITION_END]); - const auto row_end = row_idx + count; - for (idx_t i = 0; i < count;) { - int64_t offset = 1; - if (wexpr.offset_expr) { - offset = llstate.leadlag_offset.GetCell(i); - } - int64_t val_idx = (int64_t)row_idx; - if (wexpr.type == ExpressionType::WINDOW_LEAD) { - val_idx = AddOperatorOverflowCheck::Operation(val_idx, offset); - } else { - val_idx = SubtractOperatorOverflowCheck::Operation(val_idx, offset); - } - - idx_t delta = 0; - if (val_idx < (int64_t)row_idx) { - // Count backwards - delta = idx_t(row_idx - idx_t(val_idx)); - val_idx = int64_t(FindPrevStart(*ignore_nulls, partition_begin[i], row_idx, delta)); - } else if (val_idx > (int64_t)row_idx) { - delta = idx_t(idx_t(val_idx) - row_idx); - val_idx = int64_t(FindNextStart(*ignore_nulls, row_idx + 1, partition_end[i], delta)); - } - // else offset is zero, so don't move. - - if (can_shift) { - if (!delta) { - // Copy source[index:index+width] => result[i:] - const auto index = NumericCast(val_idx); - const auto source_limit = partition_end[i] - index; - const auto target_limit = MinValue(partition_end[i], row_end) - row_idx; - const auto width = MinValue(source_limit, target_limit); - auto &source = payload_collection.data[0]; - VectorOperations::Copy(source, result, index + width, index, i); - i += width; - row_idx += width; - } else if (wexpr.default_expr) { - const auto width = MinValue(delta, count - i); - llstate.leadlag_default.CopyCell(result, i, width); - i += width; - row_idx += width; - } else { - for (idx_t nulls = MinValue(delta, count - i); nulls--; ++i, ++row_idx) { - FlatVector::SetNull(result, i, true); - } - } - } else { - if (!delta) { - CopyCell(payload_collection, 0, NumericCast(val_idx), result, i); - } else if (wexpr.default_expr) { - llstate.leadlag_default.CopyCell(result, i); - } else { - FlatVector::SetNull(result, i, true); - } - ++i; - ++row_idx; - } - } -} - -WindowFirstValueExecutor::WindowFirstValueExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowValueExecutor(wexpr, context) { -} - -void WindowFirstValueExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &gvstate = gstate.Cast(); - auto &payload_collection = gvstate.payload_collection.chunk; - auto &lvstate = lstate.Cast(); - lvstate.Initialize(); - auto window_begin = FlatVector::GetData(lvstate.bounds.data[WINDOW_BEGIN]); - auto window_end = FlatVector::GetData(lvstate.bounds.data[WINDOW_END]); - for (idx_t i = 0; i < count; ++i, ++row_idx) { - - if (lvstate.exclusion_filter) { - lvstate.exclusion_filter->ApplyExclusion(lvstate.bounds, row_idx, i); - } - - if (window_begin[i] >= window_end[i]) { - FlatVector::SetNull(result, i, true); - continue; - } - // Same as NTH_VALUE(..., 1) - idx_t n = 1; - const auto first_idx = FindNextStart(*lvstate.ignore_nulls_exclude, window_begin[i], window_end[i], n); - if (!n) { - CopyCell(payload_collection, 0, first_idx, result, i); - } else { - FlatVector::SetNull(result, i, true); - } - - if (lvstate.exclusion_filter) { - lvstate.exclusion_filter->ResetMask(row_idx, i); - } - } -} - -WindowLastValueExecutor::WindowLastValueExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowValueExecutor(wexpr, context) { -} - -void WindowLastValueExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &gvstate = gstate.Cast(); - auto &payload_collection = gvstate.payload_collection.chunk; - auto &lvstate = lstate.Cast(); - lvstate.Initialize(); - auto window_begin = FlatVector::GetData(lvstate.bounds.data[WINDOW_BEGIN]); - auto window_end = FlatVector::GetData(lvstate.bounds.data[WINDOW_END]); - for (idx_t i = 0; i < count; ++i, ++row_idx) { - - if (lvstate.exclusion_filter) { - lvstate.exclusion_filter->ApplyExclusion(lvstate.bounds, row_idx, i); - } - - if (window_begin[i] >= window_end[i]) { - FlatVector::SetNull(result, i, true); - continue; - } - idx_t n = 1; - const auto last_idx = FindPrevStart(*lvstate.ignore_nulls_exclude, window_begin[i], window_end[i], n); - if (!n) { - CopyCell(payload_collection, 0, last_idx, result, i); - } else { - FlatVector::SetNull(result, i, true); - } - - if (lvstate.exclusion_filter) { - lvstate.exclusion_filter->ResetMask(row_idx, i); - } - } -} - -WindowNthValueExecutor::WindowNthValueExecutor(BoundWindowExpression &wexpr, ClientContext &context) - : WindowValueExecutor(wexpr, context) { -} - -void WindowNthValueExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, - Vector &result, idx_t count, idx_t row_idx) const { - auto &gvstate = gstate.Cast(); - auto &payload_collection = gvstate.payload_collection.chunk; - D_ASSERT(payload_collection.ColumnCount() == 2); - - auto &lvstate = lstate.Cast(); - lvstate.Initialize(); - auto window_begin = FlatVector::GetData(lvstate.bounds.data[WINDOW_BEGIN]); - auto window_end = FlatVector::GetData(lvstate.bounds.data[WINDOW_END]); - for (idx_t i = 0; i < count; ++i, ++row_idx) { - - if (lvstate.exclusion_filter) { - lvstate.exclusion_filter->ApplyExclusion(lvstate.bounds, row_idx, i); - } - - if (window_begin[i] >= window_end[i]) { - FlatVector::SetNull(result, i, true); - continue; - } - // Returns value evaluated at the row that is the n'th row of the window frame (counting from 1); - // returns NULL if there is no such row. - if (CellIsNull(payload_collection, 1, row_idx)) { - FlatVector::SetNull(result, i, true); - } else { - auto n_param = GetCell(payload_collection, 1, row_idx); - if (n_param < 1) { - FlatVector::SetNull(result, i, true); - } else { - auto n = idx_t(n_param); - const auto nth_index = FindNextStart(*lvstate.ignore_nulls_exclude, window_begin[i], window_end[i], n); - if (!n) { - CopyCell(payload_collection, 0, nth_index, result, i); - } else { - FlatVector::SetNull(result, i, true); - } - } - } - - if (lvstate.exclusion_filter) { - lvstate.exclusion_filter->ResetMask(row_idx, i); - } - } -} - -} // namespace duckdb diff --git a/src/duckdb/src/execution/window_segment_tree.cpp b/src/duckdb/src/execution/window_segment_tree.cpp deleted file mode 100644 index be71e85c..00000000 --- a/src/duckdb/src/execution/window_segment_tree.cpp +++ /dev/null @@ -1,2073 +0,0 @@ -#include "duckdb/execution/window_segment_tree.hpp" - -#include "duckdb/common/algorithm.hpp" -#include "duckdb/common/helper.hpp" -#include "duckdb/common/sort/partition_state.hpp" -#include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/execution/merge_sort_tree.hpp" -#include "duckdb/planner/expression/bound_constant_expression.hpp" -#include "duckdb/execution/window_executor.hpp" - -#include -#include -#include - -namespace duckdb { - -//===--------------------------------------------------------------------===// -// WindowAggregator -//===--------------------------------------------------------------------===// -WindowAggregatorState::WindowAggregatorState() : allocator(Allocator::DefaultAllocator()) { -} - -class WindowAggregatorGlobalState : public WindowAggregatorState { -public: - WindowAggregatorGlobalState(const WindowAggregator &aggregator_p, idx_t group_count) - : aggregator(aggregator_p), winputs(inputs), locals(0), finalized(0) { - - if (!aggregator.arg_types.empty()) { - winputs.Initialize(Allocator::DefaultAllocator(), aggregator.arg_types, group_count); - } - if (aggregator.aggr.filter) { - // Start with all invalid and set the ones that pass - filter_mask.Initialize(group_count, false); - } - } - - //! The aggregator data - const WindowAggregator &aggregator; - - //! Partition data chunk - DataChunk inputs; - WindowDataChunk winputs; - - //! The filtered rows in inputs. - ValidityArray filter_mask; - - //! Lock for single threading - mutable mutex lock; - - //! Count of local tasks - mutable std::atomic locals; - - //! Number of finalised states - std::atomic finalized; -}; - -WindowAggregator::WindowAggregator(AggregateObject aggr_p, const vector &arg_types_p, - const LogicalType &result_type_p, const WindowExcludeMode exclude_mode_p) - : aggr(std::move(aggr_p)), arg_types(arg_types_p), result_type(result_type_p), - state_size(aggr.function.state_size(aggr.function)), exclude_mode(exclude_mode_p) { -} - -WindowAggregator::~WindowAggregator() { -} - -unique_ptr WindowAggregator::GetGlobalState(idx_t group_count, const ValidityMask &) const { - return make_uniq(*this, group_count); -} - -void WindowAggregator::Sink(WindowAggregatorState &gsink, WindowAggregatorState &lstate, DataChunk &arg_chunk, - idx_t input_idx, optional_ptr filter_sel, idx_t filtered) { - auto &gasink = gsink.Cast(); - auto &winputs = gasink.winputs; - auto &filter_mask = gasink.filter_mask; - if (winputs.chunk.ColumnCount()) { - winputs.Copy(arg_chunk, input_idx); - } - if (filter_sel) { - for (idx_t f = 0; f < filtered; ++f) { - filter_mask.SetValid(input_idx + filter_sel->get_index(f)); - } - } -} - -void WindowAggregator::Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, const FrameStats &stats) { -} - -//===--------------------------------------------------------------------===// -// WindowConstantAggregator -//===--------------------------------------------------------------------===// -struct WindowAggregateStates { - explicit WindowAggregateStates(const AggregateObject &aggr); - ~WindowAggregateStates() { - Destroy(); - } - - //! The number of states - idx_t GetCount() const { - return states.size() / state_size; - } - data_ptr_t *GetData() { - return FlatVector::GetData(*statef); - } - data_ptr_t GetStatePtr(idx_t idx) { - return states.data() + idx * state_size; - } - const_data_ptr_t GetStatePtr(idx_t idx) const { - return states.data() + idx * state_size; - } - //! Initialise all the states - void Initialize(idx_t count); - //! Combine the states into the target - void Combine(WindowAggregateStates &target, - AggregateCombineType combine_type = AggregateCombineType::PRESERVE_INPUT); - //! Finalize the states into an output vector - void Finalize(Vector &result); - //! Destroy the states - void Destroy(); - - //! A description of the aggregator - const AggregateObject aggr; - //! The size of each state - const idx_t state_size; - //! The allocator to use - ArenaAllocator allocator; - //! Data pointer that contains the state data - vector states; - //! Reused result state container for the window functions - unique_ptr statef; -}; - -WindowAggregateStates::WindowAggregateStates(const AggregateObject &aggr) - : aggr(aggr), state_size(aggr.function.state_size(aggr.function)), allocator(Allocator::DefaultAllocator()) { -} - -void WindowAggregateStates::Initialize(idx_t count) { - states.resize(count * state_size); - auto state_ptr = states.data(); - - statef = make_uniq(LogicalType::POINTER, count); - auto state_f_data = FlatVector::GetData(*statef); - - for (idx_t i = 0; i < count; ++i, state_ptr += state_size) { - state_f_data[i] = state_ptr; - aggr.function.initialize(aggr.function, state_ptr); - } - - // Prevent conversion of results to constants - statef->SetVectorType(VectorType::FLAT_VECTOR); -} - -void WindowAggregateStates::Combine(WindowAggregateStates &target, AggregateCombineType combine_type) { - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator, AggregateCombineType::ALLOW_DESTRUCTIVE); - aggr.function.combine(*statef, *target.statef, aggr_input_data, GetCount()); -} - -void WindowAggregateStates::Finalize(Vector &result) { - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - aggr.function.finalize(*statef, aggr_input_data, result, GetCount(), 0); -} - -void WindowAggregateStates::Destroy() { - if (states.empty()) { - return; - } - - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - if (aggr.function.destructor) { - aggr.function.destructor(*statef, aggr_input_data, GetCount()); - } - - states.clear(); -} - -class WindowConstantAggregatorGlobalState : public WindowAggregatorGlobalState { -public: - WindowConstantAggregatorGlobalState(const WindowConstantAggregator &aggregator, idx_t count, - const ValidityMask &partition_mask); - - void Finalize(const FrameStats &stats); - - //! Partition starts - vector partition_offsets; - //! Reused result state container for the window functions - WindowAggregateStates statef; - //! Aggregate results - unique_ptr results; -}; - -class WindowConstantAggregatorLocalState : public WindowAggregatorState { -public: - explicit WindowConstantAggregatorLocalState(const WindowConstantAggregatorGlobalState &gstate); - ~WindowConstantAggregatorLocalState() override { - } - - void Sink(DataChunk &payload_chunk, idx_t input_idx, optional_ptr filter_sel, idx_t filtered); - void Combine(WindowConstantAggregatorGlobalState &gstate); - -public: - //! The global state we are sharing - const WindowConstantAggregatorGlobalState &gstate; - //! Reusable chunk for sinking - DataChunk inputs; - //! A vector of pointers to "state", used for intermediate window segment aggregation - Vector statep; - //! Reused result state container for the window functions - WindowAggregateStates statef; - //! The current result partition being read - idx_t partition; - //! Shared SV for evaluation - SelectionVector matches; -}; - -WindowConstantAggregatorGlobalState::WindowConstantAggregatorGlobalState(const WindowConstantAggregator &aggregator, - idx_t group_count, - const ValidityMask &partition_mask) - : WindowAggregatorGlobalState(aggregator, STANDARD_VECTOR_SIZE), statef(aggregator.aggr) { - - // Locate the partition boundaries - if (partition_mask.AllValid()) { - partition_offsets.emplace_back(0); - } else { - idx_t entry_idx; - idx_t shift; - for (idx_t start = 0; start < group_count;) { - partition_mask.GetEntryIndex(start, entry_idx, shift); - - // If start is aligned with the start of a block, - // and the block is blank, then skip forward one block. - const auto block = partition_mask.GetValidityEntry(entry_idx); - if (partition_mask.NoneValid(block) && !shift) { - start += ValidityMask::BITS_PER_VALUE; - continue; - } - - // Loop over the block - for (; shift < ValidityMask::BITS_PER_VALUE && start < group_count; ++shift, ++start) { - if (partition_mask.RowIsValid(block, shift)) { - partition_offsets.emplace_back(start); - } - } - } - } - - // Initialise the vector for caching the results - results = make_uniq(aggregator.result_type, partition_offsets.size()); - - // Initialise the final states - statef.Initialize(partition_offsets.size()); - - // Add final guard - partition_offsets.emplace_back(group_count); -} - -WindowConstantAggregatorLocalState::WindowConstantAggregatorLocalState( - const WindowConstantAggregatorGlobalState &gstate) - : gstate(gstate), statep(Value::POINTER(0)), statef(gstate.statef.aggr), partition(0) { - matches.Initialize(); - - // Start the aggregates - auto &partition_offsets = gstate.partition_offsets; - auto &aggregator = gstate.aggregator; - statef.Initialize(partition_offsets.size() - 1); - - // Set up shared buffer - inputs.Initialize(Allocator::DefaultAllocator(), aggregator.arg_types); - - gstate.locals++; -} - -WindowConstantAggregator::WindowConstantAggregator(AggregateObject aggr, const vector &arg_types, - const LogicalType &result_type, - const WindowExcludeMode exclude_mode_p) - : WindowAggregator(std::move(aggr), arg_types, result_type, exclude_mode_p) { -} - -unique_ptr WindowConstantAggregator::GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const { - return make_uniq(*this, group_count, partition_mask); -} - -void WindowConstantAggregator::Sink(WindowAggregatorState &gsink, WindowAggregatorState &lstate, DataChunk &arg_chunk, - idx_t input_idx, optional_ptr filter_sel, idx_t filtered) { - auto &lastate = lstate.Cast(); - - lastate.Sink(arg_chunk, input_idx, filter_sel, filtered); -} - -void WindowConstantAggregatorLocalState::Sink(DataChunk &payload_chunk, idx_t row, - optional_ptr filter_sel, idx_t filtered) { - auto &partition_offsets = gstate.partition_offsets; - auto &aggregator = gstate.aggregator; - const auto &aggr = aggregator.aggr; - const auto chunk_begin = row; - const auto chunk_end = chunk_begin + payload_chunk.size(); - idx_t partition = - idx_t(std::upper_bound(partition_offsets.begin(), partition_offsets.end(), row) - partition_offsets.begin()) - - 1; - - auto state_f_data = statef.GetData(); - auto state_p_data = FlatVector::GetData(statep); - - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - idx_t begin = 0; - idx_t filter_idx = 0; - auto partition_end = partition_offsets[partition + 1]; - while (row < chunk_end) { - if (row == partition_end) { - ++partition; - partition_end = partition_offsets[partition + 1]; - } - partition_end = MinValue(partition_end, chunk_end); - auto end = partition_end - chunk_begin; - - inputs.Reset(); - if (filter_sel) { - // Slice to any filtered rows in [begin, end) - SelectionVector sel; - - // Find the first value in [begin, end) - for (; filter_idx < filtered; ++filter_idx) { - auto idx = filter_sel->get_index(filter_idx); - if (idx >= begin) { - break; - } - } - - // Find the first value in [end, filtered) - sel.Initialize(filter_sel->data() + filter_idx); - idx_t nsel = 0; - for (; filter_idx < filtered; ++filter_idx, ++nsel) { - auto idx = filter_sel->get_index(filter_idx); - if (idx >= end) { - break; - } - } - - if (nsel != inputs.size()) { - inputs.Slice(payload_chunk, sel, nsel); - } - } else { - // Slice to [begin, end) - if (begin) { - for (idx_t c = 0; c < payload_chunk.ColumnCount(); ++c) { - inputs.data[c].Slice(payload_chunk.data[c], begin, end); - } - } else { - inputs.Reference(payload_chunk); - } - inputs.SetCardinality(end - begin); - } - - // Aggregate the filtered rows into a single state - const auto count = inputs.size(); - auto state = state_f_data[partition]; - if (aggr.function.simple_update) { - aggr.function.simple_update(inputs.data.data(), aggr_input_data, inputs.ColumnCount(), state, count); - } else { - state_p_data[0] = state_f_data[partition]; - aggr.function.update(inputs.data.data(), aggr_input_data, inputs.ColumnCount(), statep, count); - } - - // Skip filtered rows too! - row += end - begin; - begin = end; - } -} - -void WindowConstantAggregator::Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, - const FrameStats &stats) { - auto &gastate = gstate.Cast(); - auto &lastate = lstate.Cast(); - - // Single-threaded combine - lock_guard finalize_guard(gastate.lock); - lastate.statef.Combine(gastate.statef); - lastate.statef.Destroy(); - - // Last one out turns off the lights! - if (++gastate.finalized == gastate.locals) { - gastate.statef.Finalize(*gastate.results); - gastate.statef.Destroy(); - } -} - -unique_ptr WindowConstantAggregator::GetLocalState(const WindowAggregatorState &gstate) const { - return make_uniq(gstate.Cast()); -} - -void WindowConstantAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, - const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { - auto &gasink = gsink.Cast(); - const auto &partition_offsets = gasink.partition_offsets; - const auto &results = *gasink.results; - - auto begins = FlatVector::GetData(bounds.data[WINDOW_BEGIN]); - // Chunk up the constants and copy them one at a time - auto &lcstate = lstate.Cast(); - idx_t matched = 0; - idx_t target_offset = 0; - for (idx_t i = 0; i < count; ++i) { - const auto begin = begins[i]; - // Find the partition containing [begin, end) - while (partition_offsets[lcstate.partition + 1] <= begin) { - // Flush the previous partition's data - if (matched) { - VectorOperations::Copy(results, result, lcstate.matches, matched, 0, target_offset); - target_offset += matched; - matched = 0; - } - ++lcstate.partition; - } - - lcstate.matches.set_index(matched++, lcstate.partition); - } - - // Flush the last partition - if (matched) { - // Optimize constant result - if (target_offset == 0 && matched == count) { - VectorOperations::Copy(results, result, lcstate.matches, 1, 0, target_offset); - result.SetVectorType(VectorType::CONSTANT_VECTOR); - } else { - VectorOperations::Copy(results, result, lcstate.matches, matched, 0, target_offset); - } - } -} - -//===--------------------------------------------------------------------===// -// WindowCustomAggregator -//===--------------------------------------------------------------------===// -WindowCustomAggregator::WindowCustomAggregator(AggregateObject aggr, const vector &arg_types, - const LogicalType &result_type, const WindowExcludeMode exclude_mode) - : WindowAggregator(std::move(aggr), arg_types, result_type, exclude_mode) { -} - -WindowCustomAggregator::~WindowCustomAggregator() { -} - -class WindowCustomAggregatorState : public WindowAggregatorState { -public: - WindowCustomAggregatorState(const AggregateObject &aggr, const WindowExcludeMode exclude_mode); - ~WindowCustomAggregatorState() override; - -public: - //! The aggregate function - const AggregateObject &aggr; - //! Data pointer that contains a single state, shared by all the custom evaluators - vector state; - //! Reused result state container for the window functions - Vector statef; - //! The frame boundaries, used for the window functions - SubFrames frames; -}; - -static void InitSubFrames(SubFrames &frames, const WindowExcludeMode exclude_mode) { - idx_t nframes = 0; - switch (exclude_mode) { - case WindowExcludeMode::NO_OTHER: - nframes = 1; - break; - case WindowExcludeMode::TIES: - nframes = 3; - break; - case WindowExcludeMode::CURRENT_ROW: - case WindowExcludeMode::GROUP: - nframes = 2; - break; - } - frames.resize(nframes, {0, 0}); -} - -class WindowCustomAggregatorGlobalState : public WindowAggregatorGlobalState { -public: - explicit WindowCustomAggregatorGlobalState(const WindowCustomAggregator &aggregator, idx_t group_count) - : WindowAggregatorGlobalState(aggregator, group_count) { - - gcstate = make_uniq(aggregator.aggr, aggregator.exclude_mode); - } - - //! Traditional packed filter mask for API - ValidityMask filter_packed; - //! Data pointer that contains a single local state, used for global custom window execution state - unique_ptr gcstate; - //! Partition description for custom window APIs - unique_ptr partition_input; -}; - -WindowCustomAggregatorState::WindowCustomAggregatorState(const AggregateObject &aggr, - const WindowExcludeMode exclude_mode) - : aggr(aggr), state(aggr.function.state_size(aggr.function)), - statef(Value::POINTER(CastPointerToValue(state.data()))), frames(3, {0, 0}) { - // if we have a frame-by-frame method, share the single state - aggr.function.initialize(aggr.function, state.data()); - - InitSubFrames(frames, exclude_mode); -} - -WindowCustomAggregatorState::~WindowCustomAggregatorState() { - if (aggr.function.destructor) { - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - aggr.function.destructor(statef, aggr_input_data, 1); - } -} - -unique_ptr WindowCustomAggregator::GetGlobalState(idx_t group_count, - const ValidityMask &) const { - return make_uniq(*this, group_count); -} - -void WindowCustomAggregator::Finalize(WindowAggregatorState &gsink, WindowAggregatorState &lstate, - const FrameStats &stats) { - // Single threaded Finalize for now - auto &gcsink = gsink.Cast(); - lock_guard gestate_guard(gcsink.lock); - if (gcsink.finalized) { - return; - } - - WindowAggregator::Finalize(gsink, lstate, stats); - - auto &inputs = gcsink.inputs; - auto &filter_mask = gcsink.filter_mask; - auto &filter_packed = gcsink.filter_packed; - filter_mask.Pack(filter_packed, filter_mask.target_count); - - gcsink.partition_input = - make_uniq(inputs.data.data(), inputs.ColumnCount(), inputs.size(), filter_packed, stats); - - if (aggr.function.window_init) { - auto &gcstate = *gcsink.gcstate; - - AggregateInputData aggr_input_data(aggr.GetFunctionData(), gcstate.allocator); - aggr.function.window_init(aggr_input_data, *gcsink.partition_input, gcstate.state.data()); - } - - ++gcsink.finalized; -} - -unique_ptr WindowCustomAggregator::GetLocalState(const WindowAggregatorState &gstate) const { - return make_uniq(aggr, exclude_mode); -} - -template -static void EvaluateSubFrames(const DataChunk &bounds, const WindowExcludeMode exclude_mode, idx_t count, idx_t row_idx, - SubFrames &frames, OP operation) { - auto begins = FlatVector::GetData(bounds.data[WINDOW_BEGIN]); - auto ends = FlatVector::GetData(bounds.data[WINDOW_END]); - auto peer_begin = FlatVector::GetData(bounds.data[PEER_BEGIN]); - auto peer_end = FlatVector::GetData(bounds.data[PEER_END]); - - for (idx_t i = 0, cur_row = row_idx; i < count; ++i, ++cur_row) { - idx_t nframes = 0; - if (exclude_mode == WindowExcludeMode::NO_OTHER) { - auto begin = begins[i]; - auto end = ends[i]; - frames[nframes++] = FrameBounds(begin, end); - } else { - // The frame_exclusion option allows rows around the current row to be excluded from the frame, - // even if they would be included according to the frame start and frame end options. - // EXCLUDE CURRENT ROW excludes the current row from the frame. - // EXCLUDE GROUP excludes the current row and its ordering peers from the frame. - // EXCLUDE TIES excludes any peers of the current row from the frame, but not the current row itself. - // EXCLUDE NO OTHERS simply specifies explicitly the default behavior - // of not excluding the current row or its peers. - // https://www.postgresql.org/docs/current/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS - // - // For the sake of the client, we make some guarantees about the subframes: - // * They are in order left-to-right - // * They do not intersect - // * start <= end - // * The number is always the same - // - // Since we always have peer_begin <= cur_row < cur_row + 1 <= peer_end - // this is not too hard to arrange, but it may be that some subframes are contiguous, - // and some are empty. - - // WindowExcludePart::LEFT - auto begin = begins[i]; - auto end = (exclude_mode == WindowExcludeMode::CURRENT_ROW) ? cur_row : peer_begin[i]; - end = MaxValue(begin, end); - frames[nframes++] = FrameBounds(begin, end); - - // with EXCLUDE TIES, in addition to the frame part right of the peer group's end, - // we also need to consider the current row - if (exclude_mode == WindowExcludeMode::TIES) { - frames[nframes++] = FrameBounds(cur_row, cur_row + 1); - } - - // WindowExcludePart::RIGHT - end = ends[i]; - begin = (exclude_mode == WindowExcludeMode::CURRENT_ROW) ? (cur_row + 1) : peer_end[i]; - begin = MinValue(begin, end); - frames[nframes++] = FrameBounds(begin, end); - } - - operation(i); - } -} - -void WindowCustomAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, - const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { - auto &lcstate = lstate.Cast(); - auto &frames = lcstate.frames; - const_data_ptr_t gstate_p = nullptr; - auto &gcsink = gsink.Cast(); - if (gcsink.gcstate) { - gstate_p = gcsink.gcstate->state.data(); - } - - EvaluateSubFrames(bounds, exclude_mode, count, row_idx, frames, [&](idx_t i) { - // Extract the range - AggregateInputData aggr_input_data(aggr.GetFunctionData(), lstate.allocator); - aggr.function.window(aggr_input_data, *gcsink.partition_input, gstate_p, lcstate.state.data(), frames, result, - i); - }); -} - -//===--------------------------------------------------------------------===// -// WindowNaiveAggregator -//===--------------------------------------------------------------------===// -WindowNaiveAggregator::WindowNaiveAggregator(AggregateObject aggr, const vector &arg_types, - const LogicalType &result_type, const WindowExcludeMode exclude_mode) - : WindowAggregator(std::move(aggr), arg_types, result_type, exclude_mode) { -} - -WindowNaiveAggregator::~WindowNaiveAggregator() { -} - -class WindowNaiveState : public WindowAggregatorState { -public: - struct HashRow { - HashRow(WindowNaiveState &state, const DataChunk &inputs) : state(state), inputs(inputs) { - } - - size_t operator()(const idx_t &i) const { - return state.Hash(inputs, i); - } - - WindowNaiveState &state; - const DataChunk &inputs; - }; - - struct EqualRow { - EqualRow(WindowNaiveState &state, const DataChunk &inputs) : state(state), inputs(inputs) { - } - - bool operator()(const idx_t &lhs, const idx_t &rhs) const { - return state.KeyEqual(inputs, lhs, rhs); - } - - WindowNaiveState &state; - const DataChunk &inputs; - }; - - using RowSet = std::unordered_set; - - explicit WindowNaiveState(const WindowNaiveAggregator &gsink); - - void Evaluate(const WindowAggregatorGlobalState &gsink, const DataChunk &bounds, Vector &result, idx_t count, - idx_t row_idx); - -protected: - //! Flush the accumulated intermediate states into the result states - void FlushStates(const WindowAggregatorGlobalState &gsink); - - //! Hashes a value for the hash table - size_t Hash(const DataChunk &inputs, idx_t rid); - //! Compares two values for the hash table - bool KeyEqual(const DataChunk &inputs, const idx_t &lhs, const idx_t &rhs); - - //! The global state - const WindowNaiveAggregator &aggregator; - //! Data pointer that contains a vector of states, used for row aggregation - vector state; - //! Reused result state container for the aggregate - Vector statef; - //! A vector of pointers to "state", used for buffering intermediate aggregates - Vector statep; - //! Input data chunk, used for leaf segment aggregation - DataChunk leaves; - //! The rows beging updated. - SelectionVector update_sel; - //! Count of buffered values - idx_t flush_count; - //! The frame boundaries, used for EXCLUDE - SubFrames frames; - //! The optional hash table used for DISTINCT - Vector hashes; -}; - -WindowNaiveState::WindowNaiveState(const WindowNaiveAggregator &aggregator_p) - : aggregator(aggregator_p), state(aggregator.state_size * STANDARD_VECTOR_SIZE), statef(LogicalType::POINTER), - statep((LogicalType::POINTER)), flush_count(0), hashes(LogicalType::HASH) { - InitSubFrames(frames, aggregator.exclude_mode); - - update_sel.Initialize(); - - // Build the finalise vector that just points to the result states - data_ptr_t state_ptr = state.data(); - D_ASSERT(statef.GetVectorType() == VectorType::FLAT_VECTOR); - statef.SetVectorType(VectorType::CONSTANT_VECTOR); - statef.Flatten(STANDARD_VECTOR_SIZE); - auto fdata = FlatVector::GetData(statef); - for (idx_t i = 0; i < STANDARD_VECTOR_SIZE; ++i) { - fdata[i] = state_ptr; - state_ptr += aggregator.state_size; - } -} - -void WindowNaiveState::FlushStates(const WindowAggregatorGlobalState &gsink) { - if (!flush_count) { - return; - } - - auto &inputs = gsink.inputs; - leaves.Slice(inputs, update_sel, flush_count); - - auto &aggr = aggregator.aggr; - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - aggr.function.update(leaves.data.data(), aggr_input_data, leaves.ColumnCount(), statep, flush_count); - - flush_count = 0; -} - -size_t WindowNaiveState::Hash(const DataChunk &inputs, idx_t rid) { - auto s = UnsafeNumericCast(rid); - SelectionVector sel(&s); - leaves.Slice(inputs, sel, 1); - leaves.Hash(hashes); - - return *FlatVector::GetData(hashes); -} - -bool WindowNaiveState::KeyEqual(const DataChunk &inputs, const idx_t &lhs, const idx_t &rhs) { - auto l = UnsafeNumericCast(lhs); - SelectionVector lsel(&l); - - auto r = UnsafeNumericCast(rhs); - SelectionVector rsel(&r); - - sel_t f = 0; - SelectionVector fsel(&f); - - for (auto &input : inputs.data) { - Vector left(input, lsel, 1); - Vector right(input, rsel, 1); - if (!VectorOperations::NotDistinctFrom(left, right, nullptr, 1, nullptr, &fsel)) { - return false; - } - } - - return true; -} - -void WindowNaiveState::Evaluate(const WindowAggregatorGlobalState &gsink, const DataChunk &bounds, Vector &result, - idx_t count, idx_t row_idx) { - auto &aggr = aggregator.aggr; - auto &filter_mask = gsink.filter_mask; - auto &inputs = gsink.inputs; - - if (leaves.ColumnCount() == 0 && inputs.ColumnCount() > 0) { - leaves.Initialize(Allocator::DefaultAllocator(), inputs.GetTypes()); - } - - auto fdata = FlatVector::GetData(statef); - auto pdata = FlatVector::GetData(statep); - - HashRow hash_row(*this, inputs); - EqualRow equal_row(*this, inputs); - RowSet row_set(STANDARD_VECTOR_SIZE, hash_row, equal_row); - - EvaluateSubFrames(bounds, aggregator.exclude_mode, count, row_idx, frames, [&](idx_t rid) { - auto agg_state = fdata[rid]; - aggr.function.initialize(aggr.function, agg_state); - - // Just update the aggregate with the unfiltered input rows - row_set.clear(); - for (const auto &frame : frames) { - for (auto f = frame.start; f < frame.end; ++f) { - if (!filter_mask.RowIsValid(f)) { - continue; - } - - // Filter out duplicates - if (aggr.IsDistinct() && !row_set.insert(f).second) { - continue; - } - - pdata[flush_count] = agg_state; - update_sel[flush_count++] = UnsafeNumericCast(f); - if (flush_count >= STANDARD_VECTOR_SIZE) { - FlushStates(gsink); - } - } - } - }); - - // Flush the final states - FlushStates(gsink); - - // Finalise the result aggregates and write to the result - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - aggr.function.finalize(statef, aggr_input_data, result, count, 0); - - // Destruct the result aggregates - if (aggr.function.destructor) { - aggr.function.destructor(statef, aggr_input_data, count); - } -} - -unique_ptr WindowNaiveAggregator::GetLocalState(const WindowAggregatorState &gstate) const { - return make_uniq(*this); -} - -void WindowNaiveAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, - const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { - const auto &gnstate = gsink.Cast(); - auto &lnstate = lstate.Cast(); - lnstate.Evaluate(gnstate, bounds, result, count, row_idx); -} - -//===--------------------------------------------------------------------===// -// WindowSegmentTree -//===--------------------------------------------------------------------===// -class WindowSegmentTreeGlobalState : public WindowAggregatorGlobalState { -public: - using AtomicCounters = vector>; - - WindowSegmentTreeGlobalState(const WindowSegmentTree &aggregator, idx_t group_count); - - ArenaAllocator &CreateTreeAllocator() { - lock_guard tree_lock(lock); - tree_allocators.emplace_back(make_uniq(Allocator::DefaultAllocator())); - return *tree_allocators.back(); - } - - //! The owning aggregator - const WindowSegmentTree &tree; - //! The actual window segment tree: an array of aggregate states that represent all the intermediate nodes - WindowAggregateStates levels_flat_native; - //! For each level, the starting location in the levels_flat_native array - vector levels_flat_start; - //! The level being built (read) - std::atomic build_level; - //! The number of entries started so far at each level - unique_ptr build_started; - //! The number of entries completed so far at each level - unique_ptr build_completed; - //! The tree allocators. - //! We need to hold onto them for the tree lifetime, - //! not the lifetime of the local state that constructed part of the tree - vector> tree_allocators; - - // TREE_FANOUT needs to cleanly divide STANDARD_VECTOR_SIZE - static constexpr idx_t TREE_FANOUT = 16; -}; - -WindowSegmentTree::WindowSegmentTree(AggregateObject aggr, const vector &arg_types, - const LogicalType &result_type, WindowAggregationMode mode_p, - const WindowExcludeMode exclude_mode_p) - : WindowAggregator(std::move(aggr), arg_types, result_type, exclude_mode_p), mode(mode_p) { -} - -class WindowSegmentTreePart { -public: - //! Right side nodes need to be cached and processed in reverse order - using RightEntry = std::pair; - - enum FramePart : uint8_t { FULL = 0, LEFT = 1, RIGHT = 2 }; - - WindowSegmentTreePart(ArenaAllocator &allocator, const AggregateObject &aggr, const DataChunk &inputs, - const ValidityArray &filter_mask); - ~WindowSegmentTreePart(); - - unique_ptr Copy() const { - return make_uniq(allocator, aggr, inputs, filter_mask); - } - - void FlushStates(bool combining); - void ExtractFrame(idx_t begin, idx_t end, data_ptr_t current_state); - void WindowSegmentValue(const WindowSegmentTreeGlobalState &tree, idx_t l_idx, idx_t begin, idx_t end, - data_ptr_t current_state); - //! Writes result and calls destructors - void Finalize(Vector &result, idx_t count); - - void Combine(WindowSegmentTreePart &other, idx_t count); - - void Evaluate(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, Vector &result, - idx_t count, idx_t row_idx, FramePart frame_part); - -protected: - //! Initialises the accumulation state vector (statef) - void Initialize(idx_t count); - //! Accumulate upper tree levels - void EvaluateUpperLevels(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, - idx_t count, idx_t row_idx, FramePart frame_part); - void EvaluateLeaves(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, idx_t count, - idx_t row_idx, FramePart frame_part, FramePart leaf_part); - -public: - //! Allocator for aggregates - ArenaAllocator &allocator; - //! The aggregate function - const AggregateObject &aggr; - //! Order insensitive aggregate (we can optimise internal combines) - const bool order_insensitive; - //! The partition arguments - const DataChunk &inputs; - //! The filtered rows in inputs - const ValidityArray &filter_mask; - //! The size of a single aggregate state - const idx_t state_size; - //! Data pointer that contains a vector of states, used for intermediate window segment aggregation - vector state; - //! Input data chunk, used for leaf segment aggregation - DataChunk leaves; - //! The filtered rows in inputs. - SelectionVector filter_sel; - //! A vector of pointers to "state", used for intermediate window segment aggregation - Vector statep; - //! Reused state pointers for combining segment tree levels - Vector statel; - //! Reused result state container for the window functions - Vector statef; - //! Count of buffered values - idx_t flush_count; - //! Cache of right side tree ranges for ordered aggregates - vector right_stack; -}; - -class WindowSegmentTreeState : public WindowAggregatorState { -public: - WindowSegmentTreeState() { - } - - void Finalize(WindowSegmentTreeGlobalState &gstate); - void Evaluate(const WindowSegmentTreeGlobalState &gsink, const DataChunk &bounds, Vector &result, idx_t count, - idx_t row_idx); - //! The left (default) segment tree part - unique_ptr part; - //! The right segment tree part (for EXCLUDE) - unique_ptr right_part; -}; - -void WindowSegmentTree::Finalize(WindowAggregatorState &gsink, WindowAggregatorState &lstate, const FrameStats &stats) { - - auto &gasink = gsink.Cast(); - auto &inputs = gasink.inputs; - - WindowAggregator::Finalize(gsink, lstate, stats); - - if (inputs.ColumnCount() > 0) { - if (aggr.function.combine && UseCombineAPI()) { - lstate.Cast().Finalize(gasink); - } - } - - ++gasink.finalized; -} - -WindowSegmentTreePart::WindowSegmentTreePart(ArenaAllocator &allocator, const AggregateObject &aggr, - const DataChunk &inputs, const ValidityArray &filter_mask) - : allocator(allocator), aggr(aggr), - order_insensitive(aggr.function.order_dependent == AggregateOrderDependent::NOT_ORDER_DEPENDENT), inputs(inputs), - filter_mask(filter_mask), state_size(aggr.function.state_size(aggr.function)), - state(state_size * STANDARD_VECTOR_SIZE), statep(LogicalType::POINTER), statel(LogicalType::POINTER), - statef(LogicalType::POINTER), flush_count(0) { - if (inputs.ColumnCount() > 0) { - leaves.Initialize(Allocator::DefaultAllocator(), inputs.GetTypes()); - filter_sel.Initialize(); - } - - // Build the finalise vector that just points to the result states - data_ptr_t state_ptr = state.data(); - D_ASSERT(statef.GetVectorType() == VectorType::FLAT_VECTOR); - statef.SetVectorType(VectorType::CONSTANT_VECTOR); - statef.Flatten(STANDARD_VECTOR_SIZE); - auto fdata = FlatVector::GetData(statef); - for (idx_t i = 0; i < STANDARD_VECTOR_SIZE; ++i) { - fdata[i] = state_ptr; - state_ptr += state_size; - } -} - -WindowSegmentTreePart::~WindowSegmentTreePart() { -} - -unique_ptr WindowSegmentTree::GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const { - return make_uniq(*this, group_count); -} - -unique_ptr WindowSegmentTree::GetLocalState(const WindowAggregatorState &gstate) const { - return make_uniq(); -} - -void WindowSegmentTreePart::FlushStates(bool combining) { - if (!flush_count) { - return; - } - - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - if (combining) { - statel.Verify(flush_count); - aggr.function.combine(statel, statep, aggr_input_data, flush_count); - } else { - leaves.Slice(inputs, filter_sel, flush_count); - aggr.function.update(&leaves.data[0], aggr_input_data, leaves.ColumnCount(), statep, flush_count); - } - - flush_count = 0; -} - -void WindowSegmentTreePart::Combine(WindowSegmentTreePart &other, idx_t count) { - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - aggr.function.combine(other.statef, statef, aggr_input_data, count); -} - -void WindowSegmentTreePart::ExtractFrame(idx_t begin, idx_t end, data_ptr_t state_ptr) { - const auto count = end - begin; - - // If we are not filtering, - // just update the shared dictionary selection to the range - // Otherwise set it to the input rows that pass the filter - auto states = FlatVector::GetData(statep); - if (filter_mask.AllValid()) { - for (idx_t i = 0; i < count; ++i) { - states[flush_count] = state_ptr; - filter_sel.set_index(flush_count++, begin + i); - if (flush_count >= STANDARD_VECTOR_SIZE) { - FlushStates(false); - } - } - } else { - for (idx_t i = begin; i < end; ++i) { - if (filter_mask.RowIsValid(i)) { - states[flush_count] = state_ptr; - filter_sel.set_index(flush_count++, i); - if (flush_count >= STANDARD_VECTOR_SIZE) { - FlushStates(false); - } - } - } - } -} - -void WindowSegmentTreePart::WindowSegmentValue(const WindowSegmentTreeGlobalState &tree, idx_t l_idx, idx_t begin, - idx_t end, data_ptr_t state_ptr) { - D_ASSERT(begin <= end); - if (begin == end || inputs.ColumnCount() == 0) { - return; - } - - const auto count = end - begin; - if (l_idx == 0) { - ExtractFrame(begin, end, state_ptr); - } else { - // find out where the states begin - auto begin_ptr = tree.levels_flat_native.GetStatePtr(begin + tree.levels_flat_start[l_idx - 1]); - // set up a vector of pointers that point towards the set of states - auto ldata = FlatVector::GetData(statel); - auto pdata = FlatVector::GetData(statep); - for (idx_t i = 0; i < count; i++) { - pdata[flush_count] = state_ptr; - ldata[flush_count++] = begin_ptr; - begin_ptr += state_size; - if (flush_count >= STANDARD_VECTOR_SIZE) { - FlushStates(true); - } - } - } -} -void WindowSegmentTreePart::Finalize(Vector &result, idx_t count) { - // Finalise the result aggregates and write to result if write_result is set - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - aggr.function.finalize(statef, aggr_input_data, result, count, 0); - - // Destruct the result aggregates - if (aggr.function.destructor) { - aggr.function.destructor(statef, aggr_input_data, count); - } -} - -WindowSegmentTreeGlobalState::WindowSegmentTreeGlobalState(const WindowSegmentTree &aggregator, idx_t group_count) - : WindowAggregatorGlobalState(aggregator, group_count), tree(aggregator), levels_flat_native(aggregator.aggr) { - - D_ASSERT(inputs.ColumnCount() > 0); - - // compute space required to store internal nodes of segment tree - levels_flat_start.push_back(0); - - idx_t levels_flat_offset = 0; - idx_t level_current = 0; - // level 0 is data itself - idx_t level_size; - // iterate over the levels of the segment tree - while ((level_size = - (level_current == 0 ? inputs.size() : levels_flat_offset - levels_flat_start[level_current - 1])) > 1) { - for (idx_t pos = 0; pos < level_size; pos += TREE_FANOUT) { - levels_flat_offset++; - } - - levels_flat_start.push_back(levels_flat_offset); - level_current++; - } - - // Corner case: single element in the window - if (levels_flat_offset == 0) { - ++levels_flat_offset; - } - - levels_flat_native.Initialize(levels_flat_offset); - - // Start by building from the bottom level - build_level = 0; - - build_started = make_uniq(levels_flat_start.size()); - for (auto &counter : *build_started) { - counter = 0; - } - - build_completed = make_uniq(levels_flat_start.size()); - for (auto &counter : *build_completed) { - counter = 0; - } -} - -void WindowSegmentTreeState::Finalize(WindowSegmentTreeGlobalState &gstate) { - // Single part for constructing the tree - auto &inputs = gstate.inputs; - auto &tree = gstate.tree; - auto &filter_mask = gstate.filter_mask; - WindowSegmentTreePart gtstate(gstate.CreateTreeAllocator(), tree.aggr, inputs, filter_mask); - - auto &levels_flat_native = gstate.levels_flat_native; - const auto &levels_flat_start = gstate.levels_flat_start; - // iterate over the levels of the segment tree - for (;;) { - const idx_t level_current = gstate.build_level.load(); - if (level_current >= levels_flat_start.size()) { - break; - } - - // level 0 is data itself - const auto level_size = - (level_current == 0 ? inputs.size() - : levels_flat_start[level_current] - levels_flat_start[level_current - 1]); - if (level_size <= 1) { - break; - } - const idx_t build_count = (level_size + gstate.TREE_FANOUT - 1) / gstate.TREE_FANOUT; - - // Build the next fan-in - const idx_t build_idx = (*gstate.build_started).at(level_current)++; - if (build_idx >= build_count) { - // Nothing left at this level, so wait until other threads are done. - // Since we are only building TREE_FANOUT values at a time, this will be quick. - while (level_current == gstate.build_level.load()) { - std::this_thread::sleep_for(std::chrono::milliseconds(1)); - } - continue; - } - - // compute the aggregate for this entry in the segment tree - const idx_t pos = build_idx * gstate.TREE_FANOUT; - const idx_t levels_flat_offset = levels_flat_start[level_current] + build_idx; - auto state_ptr = levels_flat_native.GetStatePtr(levels_flat_offset); - gtstate.WindowSegmentValue(gstate, level_current, pos, MinValue(level_size, pos + gstate.TREE_FANOUT), - state_ptr); - gtstate.FlushStates(level_current > 0); - - // If that was the last one, mark the level as complete. - const idx_t build_complete = ++(*gstate.build_completed).at(level_current); - if (build_complete == build_count) { - gstate.build_level++; - continue; - } - } -} - -void WindowSegmentTree::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, - const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { - const auto >state = gsink.Cast(); - auto <state = lstate.Cast(); - ltstate.Evaluate(gtstate, bounds, result, count, row_idx); -} - -void WindowSegmentTreeState::Evaluate(const WindowSegmentTreeGlobalState >state, const DataChunk &bounds, - Vector &result, idx_t count, idx_t row_idx) { - auto window_begin = FlatVector::GetData(bounds.data[WINDOW_BEGIN]); - auto window_end = FlatVector::GetData(bounds.data[WINDOW_END]); - auto peer_begin = FlatVector::GetData(bounds.data[PEER_BEGIN]); - auto peer_end = FlatVector::GetData(bounds.data[PEER_END]); - - if (!part) { - part = - make_uniq(allocator, gtstate.aggregator.aggr, gtstate.inputs, gtstate.filter_mask); - } - - if (gtstate.aggregator.exclude_mode != WindowExcludeMode::NO_OTHER) { - // 1. evaluate the tree left of the excluded part - part->Evaluate(gtstate, window_begin, peer_begin, result, count, row_idx, WindowSegmentTreePart::LEFT); - - // 2. set up a second state for the right of the excluded part - if (!right_part) { - right_part = part->Copy(); - } - - // 3. evaluate the tree right of the excluded part - right_part->Evaluate(gtstate, peer_end, window_end, result, count, row_idx, WindowSegmentTreePart::RIGHT); - - // 4. combine the buffer state into the Segment Tree State - part->Combine(*right_part, count); - } else { - part->Evaluate(gtstate, window_begin, window_end, result, count, row_idx, WindowSegmentTreePart::FULL); - } - - part->Finalize(result, count); -} - -void WindowSegmentTreePart::Evaluate(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, - Vector &result, idx_t count, idx_t row_idx, FramePart frame_part) { - Initialize(count); - - if (order_insensitive) { - // First pass: aggregate the segment tree nodes with sharing - EvaluateUpperLevels(tree, begins, ends, count, row_idx, frame_part); - - // Second pass: aggregate the ragged leaves - EvaluateLeaves(tree, begins, ends, count, row_idx, frame_part, FramePart::FULL); - } else { - // Evaluate leaves in order - EvaluateLeaves(tree, begins, ends, count, row_idx, frame_part, FramePart::LEFT); - EvaluateUpperLevels(tree, begins, ends, count, row_idx, frame_part); - EvaluateLeaves(tree, begins, ends, count, row_idx, frame_part, FramePart::RIGHT); - } -} - -void WindowSegmentTreePart::Initialize(idx_t count) { - auto fdata = FlatVector::GetData(statef); - for (idx_t rid = 0; rid < count; ++rid) { - auto state_ptr = fdata[rid]; - aggr.function.initialize(aggr.function, state_ptr); - } -} - -void WindowSegmentTreePart::EvaluateUpperLevels(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, - const idx_t *ends, idx_t count, idx_t row_idx, FramePart frame_part) { - auto fdata = FlatVector::GetData(statef); - - const auto exclude_mode = tree.tree.exclude_mode; - const bool begin_on_curr_row = frame_part == FramePart::RIGHT && exclude_mode == WindowExcludeMode::CURRENT_ROW; - const bool end_on_curr_row = frame_part == FramePart::LEFT && exclude_mode == WindowExcludeMode::CURRENT_ROW; - - const auto max_level = tree.levels_flat_start.size() + 1; - right_stack.resize(max_level, {0, 0}); - - // Share adjacent identical states - // We do this first because we want to share only tree aggregations - idx_t prev_begin = 1; - idx_t prev_end = 0; - auto ldata = FlatVector::GetData(statel); - auto pdata = FlatVector::GetData(statep); - data_ptr_t prev_state = nullptr; - for (idx_t rid = 0, cur_row = row_idx; rid < count; ++rid, ++cur_row) { - auto state_ptr = fdata[rid]; - - auto begin = begin_on_curr_row ? cur_row + 1 : begins[rid]; - auto end = end_on_curr_row ? cur_row : ends[rid]; - if (begin >= end) { - continue; - } - - // Skip level 0 - idx_t l_idx = 0; - idx_t right_max = 0; - for (; l_idx < max_level; l_idx++) { - idx_t parent_begin = begin / tree.TREE_FANOUT; - idx_t parent_end = end / tree.TREE_FANOUT; - if (prev_state && l_idx == 1 && begin == prev_begin && end == prev_end) { - // Just combine the previous top level result - ldata[flush_count] = prev_state; - pdata[flush_count] = state_ptr; - if (++flush_count >= STANDARD_VECTOR_SIZE) { - FlushStates(true); - } - break; - } - - if (order_insensitive && l_idx == 1) { - prev_state = state_ptr; - prev_begin = begin; - prev_end = end; - } - - if (parent_begin == parent_end) { - if (l_idx) { - WindowSegmentValue(tree, l_idx, begin, end, state_ptr); - } - break; - } - idx_t group_begin = parent_begin * tree.TREE_FANOUT; - if (begin != group_begin) { - if (l_idx) { - WindowSegmentValue(tree, l_idx, begin, group_begin + tree.TREE_FANOUT, state_ptr); - } - parent_begin++; - } - idx_t group_end = parent_end * tree.TREE_FANOUT; - if (end != group_end) { - if (l_idx) { - if (order_insensitive) { - WindowSegmentValue(tree, l_idx, group_end, end, state_ptr); - } else { - right_stack[l_idx] = {group_end, end}; - right_max = l_idx; - } - } - } - begin = parent_begin; - end = parent_end; - } - - // Flush the right side values from left to right for order_sensitive aggregates - // As we go up the tree, the right side ranges move left, - // so we just cache them in a fixed size, preallocated array. - // Then we can just reverse scan the array and append the cached ranges. - for (l_idx = right_max; l_idx > 0; --l_idx) { - auto &right_entry = right_stack[l_idx]; - const auto group_end = right_entry.first; - const auto end = right_entry.second; - if (end) { - WindowSegmentValue(tree, l_idx, group_end, end, state_ptr); - right_entry = {0, 0}; - } - } - } - FlushStates(true); -} - -void WindowSegmentTreePart::EvaluateLeaves(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, - const idx_t *ends, idx_t count, idx_t row_idx, FramePart frame_part, - FramePart leaf_part) { - - auto fdata = FlatVector::GetData(statef); - - // For order-sensitive aggregates, we have to process the ragged leaves in two pieces. - // The left side have to be added before the main tree followed by the ragged right sides. - // The current row is the leftmost value of the right hand side. - const bool compute_left = leaf_part != FramePart::RIGHT; - const bool compute_right = leaf_part != FramePart::LEFT; - const auto exclude_mode = tree.tree.exclude_mode; - const bool begin_on_curr_row = frame_part == FramePart::RIGHT && exclude_mode == WindowExcludeMode::CURRENT_ROW; - const bool end_on_curr_row = frame_part == FramePart::LEFT && exclude_mode == WindowExcludeMode::CURRENT_ROW; - // with EXCLUDE TIES, in addition to the frame part right of the peer group's end, we also need to consider the - // current row - const bool add_curr_row = compute_left && frame_part == FramePart::RIGHT && exclude_mode == WindowExcludeMode::TIES; - - for (idx_t rid = 0, cur_row = row_idx; rid < count; ++rid, ++cur_row) { - auto state_ptr = fdata[rid]; - - const auto begin = begin_on_curr_row ? cur_row + 1 : begins[rid]; - const auto end = end_on_curr_row ? cur_row : ends[rid]; - if (add_curr_row) { - WindowSegmentValue(tree, 0, cur_row, cur_row + 1, state_ptr); - } - if (begin >= end) { - continue; - } - - idx_t parent_begin = begin / tree.TREE_FANOUT; - idx_t parent_end = end / tree.TREE_FANOUT; - if (parent_begin == parent_end) { - if (compute_left) { - WindowSegmentValue(tree, 0, begin, end, state_ptr); - } - continue; - } - - idx_t group_begin = parent_begin * tree.TREE_FANOUT; - if (begin != group_begin && compute_left) { - WindowSegmentValue(tree, 0, begin, group_begin + tree.TREE_FANOUT, state_ptr); - } - idx_t group_end = parent_end * tree.TREE_FANOUT; - if (end != group_end && compute_right) { - WindowSegmentValue(tree, 0, group_end, end, state_ptr); - } - } - FlushStates(false); -} - -//===--------------------------------------------------------------------===// -// WindowDistinctAggregator -//===--------------------------------------------------------------------===// -WindowDistinctAggregator::WindowDistinctAggregator(AggregateObject aggr, const vector &arg_types, - const LogicalType &result_type, - const WindowExcludeMode exclude_mode_p, ClientContext &context) - : WindowAggregator(std::move(aggr), arg_types, result_type, exclude_mode_p), context(context) { -} - -class WindowDistinctAggregatorLocalState; - -class WindowDistinctAggregatorGlobalState; - -class WindowDistinctSortTree : public MergeSortTree { -public: - // prev_idx, input_idx - using ZippedTuple = std::tuple; - using ZippedElements = vector; - - explicit WindowDistinctSortTree(WindowDistinctAggregatorGlobalState &gdastate, idx_t count) : gdastate(gdastate) { - // Set up for parallel build - build_level = 0; - build_complete = 0; - build_run = 0; - build_run_length = 1; - build_num_runs = count; - } - - void Build(WindowDistinctAggregatorLocalState &ldastate); - -protected: - bool TryNextRun(idx_t &level_idx, idx_t &run_idx); - void BuildRun(idx_t level_nr, idx_t i, WindowDistinctAggregatorLocalState &ldastate); - - WindowDistinctAggregatorGlobalState &gdastate; -}; - -class WindowDistinctAggregatorGlobalState : public WindowAggregatorGlobalState { -public: - using GlobalSortStatePtr = unique_ptr; - using ZippedTuple = WindowDistinctSortTree::ZippedTuple; - using ZippedElements = WindowDistinctSortTree::ZippedElements; - - WindowDistinctAggregatorGlobalState(const WindowDistinctAggregator &aggregator, idx_t group_count); - - //! Compute the block starts - void MeasurePayloadBlocks(); - //! Patch up the previous index block boundaries - void PatchPrevIdcs(); - bool TryPrepareNextStage(WindowDistinctAggregatorLocalState &lstate); - - // Single threaded sorting for now - ClientContext &context; - idx_t memory_per_thread; - - //! Finalize guard - mutex lock; - //! Finalize stage - atomic stage; - //! Tasks launched - idx_t total_tasks = 0; - //! Tasks launched - idx_t tasks_assigned = 0; - //! Tasks landed - mutable atomic tasks_completed; - - //! The sorted payload data types (partition index) - vector payload_types; - //! The aggregate arguments + partition index - vector sort_types; - - //! Sorting operations - GlobalSortStatePtr global_sort; - //! The block starts (the scanner doesn't know this) plus the total count - vector block_starts; - - //! The block boundary seconds - mutable ZippedElements seconds; - //! The MST with the distinct back pointers - mutable MergeSortTree zipped_tree; - //! The merge sort tree for the aggregate. - WindowDistinctSortTree merge_sort_tree; - - //! The actual window segment tree: an array of aggregate states that represent all the intermediate nodes - WindowAggregateStates levels_flat_native; - //! For each level, the starting location in the levels_flat_native array - vector levels_flat_start; -}; - -WindowDistinctAggregatorGlobalState::WindowDistinctAggregatorGlobalState(const WindowDistinctAggregator &aggregator, - idx_t group_count) - : WindowAggregatorGlobalState(aggregator, group_count), context(aggregator.context), - stage(PartitionSortStage::INIT), tasks_completed(0), merge_sort_tree(*this, group_count), - levels_flat_native(aggregator.aggr) { - payload_types.emplace_back(LogicalType::UBIGINT); - - // 1: functionComputePrevIdcs(𝑖𝑛) - // 2: sorted ← [] - // We sort the aggregate arguments and use the partition index as a tie-breaker. - // TODO: Use a hash table? - sort_types = aggregator.arg_types; - for (const auto &type : payload_types) { - sort_types.emplace_back(type); - } - - vector orders; - for (const auto &type : sort_types) { - auto expr = make_uniq(Value(type)); - orders.emplace_back(BoundOrderByNode(OrderType::ASCENDING, OrderByNullType::NULLS_FIRST, std::move(expr))); - } - - RowLayout payload_layout; - payload_layout.Initialize(payload_types); - - global_sort = make_uniq(BufferManager::GetBufferManager(context), orders, payload_layout); - - memory_per_thread = PhysicalOperator::GetMaxThreadMemory(context); - - // 6: prevIdcs ← [] - // 7: prevIdcs[0] ← “-” - auto &prev_idcs = zipped_tree.Allocate(group_count); - - // To handle FILTER clauses we make the missing elements - // point to themselves so they won't be counted. - for (idx_t i = 0; i < group_count; ++i) { - prev_idcs[i] = ZippedTuple(i + 1, i); - } - - // compute space required to store aggregation states of merge sort tree - // this is one aggregate state per entry per level - idx_t internal_nodes = 0; - levels_flat_start.push_back(internal_nodes); - for (idx_t level_nr = 0; level_nr < zipped_tree.tree.size(); ++level_nr) { - internal_nodes += zipped_tree.tree[level_nr].first.size(); - levels_flat_start.push_back(internal_nodes); - } - levels_flat_native.Initialize(internal_nodes); - - merge_sort_tree.tree.reserve(zipped_tree.tree.size()); - for (idx_t level_nr = 0; level_nr < zipped_tree.tree.size(); ++level_nr) { - auto &zipped_level = zipped_tree.tree[level_nr].first; - WindowDistinctSortTree::Elements level; - WindowDistinctSortTree::Offsets cascades; - level.resize(zipped_level.size()); - merge_sort_tree.tree.emplace_back(std::move(level), std::move(cascades)); - } -} - -class WindowDistinctAggregatorLocalState : public WindowAggregatorState { -public: - explicit WindowDistinctAggregatorLocalState(const WindowDistinctAggregatorGlobalState &aggregator); - - void Sink(DataChunk &arg_chunk, idx_t input_idx, optional_ptr filter_sel, idx_t filtered); - void Sorted(); - void ExecuteTask(); - void Evaluate(const WindowDistinctAggregatorGlobalState &gdstate, const DataChunk &bounds, Vector &result, - idx_t count, idx_t row_idx); - - //! Thread-local sorting data - LocalSortState local_sort; - //! Finalize stage - PartitionSortStage stage = PartitionSortStage::INIT; - //! Finalize scan block index - idx_t block_idx; - //! Thread-local tree aggregation - Vector update_v; - Vector source_v; - Vector target_v; - DataChunk leaves; - SelectionVector sel; - -protected: - //! Flush the accumulated intermediate states into the result states - void FlushStates(); - - //! The aggregator we are working with - const WindowDistinctAggregatorGlobalState &gastate; - DataChunk sort_chunk; - DataChunk payload_chunk; - //! Reused result state container for the window functions - WindowAggregateStates statef; - //! A vector of pointers to "state", used for buffering intermediate aggregates - Vector statep; - //! Reused state pointers for combining tree elements - Vector statel; - //! Count of buffered values - idx_t flush_count; - //! The frame boundaries, used for the window functions - SubFrames frames; -}; - -WindowDistinctAggregatorLocalState::WindowDistinctAggregatorLocalState( - const WindowDistinctAggregatorGlobalState &gastate) - : update_v(LogicalType::POINTER), source_v(LogicalType::POINTER), target_v(LogicalType::POINTER), gastate(gastate), - statef(gastate.aggregator.aggr), statep(LogicalType::POINTER), statel(LogicalType::POINTER), flush_count(0) { - InitSubFrames(frames, gastate.aggregator.exclude_mode); - payload_chunk.Initialize(Allocator::DefaultAllocator(), gastate.payload_types); - - auto &global_sort = gastate.global_sort; - local_sort.Initialize(*global_sort, global_sort->buffer_manager); - - sort_chunk.Initialize(Allocator::DefaultAllocator(), gastate.sort_types); - sort_chunk.data.back().Reference(payload_chunk.data[0]); - - //! Input data chunk, used for leaf segment aggregation - leaves.Initialize(Allocator::DefaultAllocator(), gastate.inputs.GetTypes()); - sel.Initialize(); - - gastate.locals++; -} - -unique_ptr WindowDistinctAggregator::GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const { - return make_uniq(*this, group_count); -} - -void WindowDistinctAggregator::Sink(WindowAggregatorState &gsink, WindowAggregatorState &lstate, DataChunk &arg_chunk, - idx_t input_idx, optional_ptr filter_sel, idx_t filtered) { - WindowAggregator::Sink(gsink, lstate, arg_chunk, input_idx, filter_sel, filtered); - - auto &ldstate = lstate.Cast(); - ldstate.Sink(arg_chunk, input_idx, filter_sel, filtered); -} - -void WindowDistinctAggregatorLocalState::Sink(DataChunk &arg_chunk, idx_t input_idx, - optional_ptr filter_sel, idx_t filtered) { - // 3: for i ← 0 to in.size do - // 4: sorted[i] ← (in[i], i) - const auto count = arg_chunk.size(); - payload_chunk.Reset(); - auto &sorted_vec = payload_chunk.data[0]; - auto sorted = FlatVector::GetData(sorted_vec); - std::iota(sorted, sorted + count, input_idx); - - for (column_t c = 0; c < arg_chunk.ColumnCount(); ++c) { - sort_chunk.data[c].Reference(arg_chunk.data[c]); - } - sort_chunk.data.back().Reference(sorted_vec); - sort_chunk.SetCardinality(arg_chunk); - payload_chunk.SetCardinality(sort_chunk); - - // Apply FILTER clause, if any - if (filter_sel) { - sort_chunk.Slice(*filter_sel, filtered); - payload_chunk.Slice(*filter_sel, filtered); - } - - local_sort.SinkChunk(sort_chunk, payload_chunk); - - if (local_sort.SizeInBytes() > gastate.memory_per_thread) { - local_sort.Sort(*gastate.global_sort, true); - } -} - -void WindowDistinctAggregatorLocalState::ExecuteTask() { - auto &global_sort = *gastate.global_sort; - switch (stage) { - case PartitionSortStage::INIT: - // AddLocalState is thread-safe - global_sort.AddLocalState(local_sort); - break; - case PartitionSortStage::MERGE: { - MergeSorter merge_sorter(global_sort, global_sort.buffer_manager); - merge_sorter.PerformInMergeRound(); - break; - } - case PartitionSortStage::SORTED: - Sorted(); - break; - default: - break; - } - - ++gastate.tasks_completed; -} - -void WindowDistinctAggregatorGlobalState::MeasurePayloadBlocks() { - const auto &blocks = global_sort->sorted_blocks[0]->payload_data->data_blocks; - idx_t count = 0; - for (const auto &block : blocks) { - block_starts.emplace_back(count); - count += block->count; - } - block_starts.emplace_back(count); -} - -bool WindowDistinctAggregatorGlobalState::TryPrepareNextStage(WindowDistinctAggregatorLocalState &lstate) { - lock_guard stage_guard(lock); - - switch (stage.load()) { - case PartitionSortStage::INIT: - // Wait for all the local sorts to be processed - if (tasks_completed < locals) { - return false; - } - global_sort->PrepareMergePhase(); - if (!(global_sort->sorted_blocks.size() / 2)) { - if (global_sort->sorted_blocks.empty()) { - lstate.stage = stage = PartitionSortStage::FINISHED; - return true; - } - MeasurePayloadBlocks(); - seconds.resize(block_starts.size() - 1); - total_tasks = seconds.size(); - tasks_completed = 0; - tasks_assigned = 0; - lstate.stage = stage = PartitionSortStage::SORTED; - lstate.block_idx = tasks_assigned++; - return true; - } - global_sort->InitializeMergeRound(); - lstate.stage = stage = PartitionSortStage::MERGE; - total_tasks = locals; - tasks_assigned = 1; - tasks_completed = 0; - return true; - case PartitionSortStage::MERGE: - if (tasks_assigned < total_tasks) { - lstate.stage = PartitionSortStage::MERGE; - ++tasks_assigned; - return true; - } else if (tasks_completed < tasks_assigned) { - return false; - } - global_sort->CompleteMergeRound(true); - if (!(global_sort->sorted_blocks.size() / 2)) { - MeasurePayloadBlocks(); - seconds.resize(block_starts.size() - 1); - total_tasks = seconds.size(); - tasks_completed = 0; - tasks_assigned = 0; - lstate.stage = stage = PartitionSortStage::SORTED; - lstate.block_idx = tasks_assigned++; - return true; - } - global_sort->InitializeMergeRound(); - lstate.stage = PartitionSortStage::MERGE; - total_tasks = locals; - tasks_assigned = 1; - tasks_completed = 0; - return true; - case PartitionSortStage::SORTED: - if (tasks_assigned < total_tasks) { - lstate.stage = PartitionSortStage::SORTED; - lstate.block_idx = tasks_assigned++; - return true; - } else if (tasks_completed < tasks_assigned) { - lstate.stage = PartitionSortStage::FINISHED; - // Sleep while other tasks finish - return false; - } - // Last task patches the boundaries - PatchPrevIdcs(); - break; - default: - break; - } - - lstate.stage = stage = PartitionSortStage::FINISHED; - - return true; -} - -void WindowDistinctAggregator::Finalize(WindowAggregatorState &gsink, WindowAggregatorState &lstate, - const FrameStats &stats) { - auto &gdsink = gsink.Cast(); - auto &ldstate = lstate.Cast(); - - // 5: Sort sorted lexicographically increasing - ldstate.ExecuteTask(); - - // Merge in parallel - while (gdsink.stage.load() != PartitionSortStage::FINISHED) { - if (gdsink.TryPrepareNextStage(ldstate)) { - ldstate.ExecuteTask(); - } else { - std::this_thread::yield(); - } - } - - // These are a parallel implementations, - // so every thread can call them. - gdsink.zipped_tree.Build(); - gdsink.merge_sort_tree.Build(ldstate); - - ++gdsink.finalized; -} - -void WindowDistinctAggregatorLocalState::Sorted() { - using ZippedTuple = WindowDistinctAggregatorGlobalState::ZippedTuple; - auto &global_sort = gastate.global_sort; - auto &prev_idcs = gastate.zipped_tree.LowestLevel(); - auto &aggregator = gastate.aggregator; - auto &scan_chunk = payload_chunk; - - auto scanner = make_uniq(*global_sort, block_idx); - const auto in_size = gastate.block_starts.at(block_idx + 1); - scanner->Scan(scan_chunk); - idx_t scan_idx = 0; - - auto *input_idx = FlatVector::GetData(scan_chunk.data[0]); - idx_t i = 0; - - SBIterator curr(*global_sort, ExpressionType::COMPARE_LESSTHAN); - SBIterator prev(*global_sort, ExpressionType::COMPARE_LESSTHAN); - auto prefix_layout = global_sort->sort_layout.GetPrefixComparisonLayout(aggregator.arg_types.size()); - - const auto block_begin = gastate.block_starts.at(block_idx); - if (!block_begin) { - // First block, so set up initial sentinel - i = input_idx[scan_idx++]; - prev_idcs[i] = ZippedTuple(0, i); - std::get<0>(gastate.seconds[block_idx]) = i; - } else { - // Move to the to end of the previous block - // so we can record the comparison result for the first row - curr.SetIndex(block_begin - 1); - prev.SetIndex(block_begin - 1); - scan_idx = 0; - std::get<0>(gastate.seconds[block_idx]) = input_idx[scan_idx]; - } - - // 8: for i ← 1 to in.size do - for (++curr; curr.GetIndex() < in_size; ++curr, ++prev) { - // Scan second one chunk at a time - // Note the scan is one behind the iterators - if (scan_idx >= scan_chunk.size()) { - scan_chunk.Reset(); - scanner->Scan(scan_chunk); - scan_idx = 0; - input_idx = FlatVector::GetData(scan_chunk.data[0]); - } - auto second = i; - i = input_idx[scan_idx++]; - - int lt = 0; - if (prefix_layout.all_constant) { - lt = FastMemcmp(prev.entry_ptr, curr.entry_ptr, prefix_layout.comparison_size); - } else { - lt = Comparators::CompareTuple(prev.scan, curr.scan, prev.entry_ptr, curr.entry_ptr, prefix_layout, - prev.external); - } - - // 9: if sorted[i].first == sorted[i-1].first then - // 10: prevIdcs[i] ← sorted[i-1].second - // 11: else - // 12: prevIdcs[i] ← “-” - if (!lt) { - prev_idcs[i] = ZippedTuple(second + 1, i); - } else { - prev_idcs[i] = ZippedTuple(0, i); - } - } - - // Save the last value of i for patching up the block boundaries - std::get<1>(gastate.seconds[block_idx]) = i; -} - -void WindowDistinctAggregatorGlobalState::PatchPrevIdcs() { - // 13: return prevIdcs - - // Patch up the indices at block boundaries - // (We don't need to patch block 0.) - auto &prev_idcs = zipped_tree.LowestLevel(); - for (idx_t block_idx = 1; block_idx < seconds.size(); ++block_idx) { - // We only need to patch if the first index in the block - // was a back link to the previous block (10:) - auto i = std::get<0>(seconds.at(block_idx)); - if (std::get<0>(prev_idcs[i])) { - auto second = std::get<1>(seconds.at(block_idx - 1)); - prev_idcs[i] = ZippedTuple(second + 1, i); - } - } -} - -bool WindowDistinctSortTree::TryNextRun(idx_t &level_idx, idx_t &run_idx) { - const auto fanout = FANOUT; - - lock_guard stage_guard(build_lock); - - // Verify we are not done - if (build_level >= tree.size()) { - return false; - } - - // Finished with this level? - if (build_complete >= build_num_runs) { - auto &zipped_tree = gdastate.zipped_tree; - std::swap(tree[build_level].second, zipped_tree.tree[build_level].second); - - ++build_level; - if (build_level >= tree.size()) { - zipped_tree.tree.clear(); - return false; - } - - const auto count = LowestLevel().size(); - build_run_length *= fanout; - build_num_runs = (count + build_run_length - 1) / build_run_length; - build_run = 0; - build_complete = 0; - } - - // If all runs are in flight, - // yield until the next level is ready - if (build_run >= build_num_runs) { - return false; - } - - level_idx = build_level; - run_idx = build_run++; - - return true; -} - -void WindowDistinctSortTree::Build(WindowDistinctAggregatorLocalState &ldastate) { - // Fan in parent levels until we are at the top - // Note that we don't build the top layer as that would just be all the data. - while (build_level.load() < tree.size()) { - idx_t level_idx; - idx_t run_idx; - if (TryNextRun(level_idx, run_idx)) { - BuildRun(level_idx, run_idx, ldastate); - } else { - std::this_thread::yield(); - } - } -} - -void WindowDistinctSortTree::BuildRun(idx_t level_nr, idx_t run_idx, WindowDistinctAggregatorLocalState &ldastate) { - auto &aggr = gdastate.aggregator.aggr; - auto &allocator = gdastate.allocator; - auto &inputs = gdastate.inputs; - auto &levels_flat_native = gdastate.levels_flat_native; - - //! Input data chunk, used for leaf segment aggregation - auto &leaves = ldastate.leaves; - auto &sel = ldastate.sel; - - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - - //! The states to update - auto &update_v = ldastate.update_v; - auto updates = FlatVector::GetData(update_v); - - auto &source_v = ldastate.source_v; - auto sources = FlatVector::GetData(source_v); - auto &target_v = ldastate.target_v; - auto targets = FlatVector::GetData(target_v); - - auto &zipped_tree = gdastate.zipped_tree; - auto &zipped_level = zipped_tree.tree[level_nr].first; - auto &level = tree[level_nr].first; - - // Reset the combine state - idx_t nupdate = 0; - idx_t ncombine = 0; - data_ptr_t prev_state = nullptr; - idx_t i = run_idx * build_run_length; - auto next_limit = MinValue(zipped_level.size(), i + build_run_length); - idx_t levels_flat_offset = level_nr * zipped_level.size() + i; - for (auto j = i; j < next_limit; ++j) { - // Initialise the next aggregate - auto curr_state = levels_flat_native.GetStatePtr(levels_flat_offset++); - - // Update this state (if it matches) - const auto prev_idx = std::get<0>(zipped_level[j]); - level[j] = prev_idx; - if (prev_idx < i + 1) { - updates[nupdate] = curr_state; - // input_idx - sel[nupdate] = UnsafeNumericCast(std::get<1>(zipped_level[j])); - ++nupdate; - } - - // Merge the previous state (if any) - if (prev_state) { - sources[ncombine] = prev_state; - targets[ncombine] = curr_state; - ++ncombine; - } - prev_state = curr_state; - - // Flush the states if one is maxed out. - if (MaxValue(ncombine, nupdate) >= STANDARD_VECTOR_SIZE) { - // Push the updates first so they propagate - leaves.Reference(inputs); - leaves.Slice(sel, nupdate); - aggr.function.update(leaves.data.data(), aggr_input_data, leaves.ColumnCount(), update_v, nupdate); - nupdate = 0; - - // Combine the states sequentially - aggr.function.combine(source_v, target_v, aggr_input_data, ncombine); - ncombine = 0; - } - } - - // Flush any remaining states - if (ncombine || nupdate) { - // Push the updates - leaves.Reference(inputs); - leaves.Slice(sel, nupdate); - aggr.function.update(leaves.data.data(), aggr_input_data, leaves.ColumnCount(), update_v, nupdate); - nupdate = 0; - - // Combine the states sequentially - aggr.function.combine(source_v, target_v, aggr_input_data, ncombine); - ncombine = 0; - } - - ++build_complete; -} - -void WindowDistinctAggregatorLocalState::FlushStates() { - if (!flush_count) { - return; - } - - const auto &aggr = gastate.aggregator.aggr; - AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); - statel.Verify(flush_count); - aggr.function.combine(statel, statep, aggr_input_data, flush_count); - - flush_count = 0; -} - -void WindowDistinctAggregatorLocalState::Evaluate(const WindowDistinctAggregatorGlobalState &gdstate, - const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) { - auto ldata = FlatVector::GetData(statel); - auto pdata = FlatVector::GetData(statep); - - const auto &merge_sort_tree = gdstate.merge_sort_tree; - const auto &levels_flat_native = gdstate.levels_flat_native; - const auto exclude_mode = gdstate.aggregator.exclude_mode; - - // Build the finalise vector that just points to the result states - statef.Initialize(count); - - EvaluateSubFrames(bounds, exclude_mode, count, row_idx, frames, [&](idx_t rid) { - auto agg_state = statef.GetStatePtr(rid); - - // TODO: Extend AggregateLowerBound to handle subframes, just like SelectNth. - const auto lower = frames[0].start; - const auto upper = frames[0].end; - merge_sort_tree.AggregateLowerBound(lower, upper, lower + 1, - [&](idx_t level, const idx_t run_begin, const idx_t run_pos) { - if (run_pos != run_begin) { - // Find the source aggregate - // Buffer a merge of the indicated state into the current state - const auto agg_idx = gdstate.levels_flat_start[level] + run_pos - 1; - const auto running_agg = levels_flat_native.GetStatePtr(agg_idx); - pdata[flush_count] = agg_state; - ldata[flush_count++] = running_agg; - if (flush_count >= STANDARD_VECTOR_SIZE) { - FlushStates(); - } - } - }); - }); - - // Flush the final states - FlushStates(); - - // Finalise the result aggregates and write to the result - statef.Finalize(result); - statef.Destroy(); -} - -unique_ptr WindowDistinctAggregator::GetLocalState(const WindowAggregatorState &gstate) const { - return make_uniq(gstate.Cast()); -} - -void WindowDistinctAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, - const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { - - const auto &gdstate = gsink.Cast(); - auto &ldstate = lstate.Cast(); - ldstate.Evaluate(gdstate, bounds, result, count, row_idx); -} - -} // namespace duckdb diff --git a/src/duckdb/src/function/aggregate/distributive/count.cpp b/src/duckdb/src/function/aggregate/distributive/count.cpp index 8b5c3be2..30824b7a 100644 --- a/src/duckdb/src/function/aggregate/distributive/count.cpp +++ b/src/duckdb/src/function/aggregate/distributive/count.cpp @@ -1,6 +1,7 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" namespace duckdb { @@ -36,7 +37,7 @@ struct CountStarFunction : public BaseCountFunction { template static void Window(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition, const_data_ptr_t, data_ptr_t l_state, const SubFrames &frames, Vector &result, idx_t rid) { - D_ASSERT(partition.input_count == 0); + D_ASSERT(partition.column_ids.empty()); auto data = FlatVector::GetData(result); RESULT_TYPE total = 0; @@ -210,7 +211,7 @@ struct CountFunction : public BaseCountFunction { } }; -AggregateFunction CountFun::GetFunction() { +AggregateFunction CountFunctionBase::GetFunction() { AggregateFunction fun({LogicalType(LogicalTypeId::ANY)}, LogicalType::BIGINT, AggregateFunction::StateSize, AggregateFunction::StateInitialize, CountFunction::CountScatter, AggregateFunction::StateCombine, @@ -241,21 +242,14 @@ unique_ptr CountPropagateStats(ClientContext &context, BoundAggr return nullptr; } -void CountFun::RegisterFunction(BuiltinFunctions &set) { - AggregateFunction count_function = CountFun::GetFunction(); +AggregateFunctionSet CountFun::GetFunctions() { + AggregateFunction count_function = CountFunctionBase::GetFunction(); count_function.statistics = CountPropagateStats; AggregateFunctionSet count("count"); count.AddFunction(count_function); // the count function can also be called without arguments - count_function = CountStarFun::GetFunction(); - count.AddFunction(count_function); - set.AddFunction(count); -} - -void CountStarFun::RegisterFunction(BuiltinFunctions &set) { - AggregateFunctionSet count("count_star"); count.AddFunction(CountStarFun::GetFunction()); - set.AddFunction(count); + return count; } } // namespace duckdb diff --git a/src/duckdb/src/function/aggregate/distributive/first.cpp b/src/duckdb/src/function/aggregate/distributive/first_last_any.cpp similarity index 93% rename from src/duckdb/src/function/aggregate/distributive/first.cpp rename to src/duckdb/src/function/aggregate/distributive/first_last_any.cpp index 8fed2190..d8cb58e3 100644 --- a/src/duckdb/src/function/aggregate/distributive/first.cpp +++ b/src/duckdb/src/function/aggregate/distributive/first_last_any.cpp @@ -1,7 +1,8 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" #include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" +#include "duckdb/function/create_sort_key.hpp" #include "duckdb/planner/expression.hpp" namespace duckdb { @@ -68,7 +69,7 @@ struct FirstFunction : public FirstFunctionBase { template struct FirstFunctionStringBase : public FirstFunctionBase { - template + template static void SetValue(STATE &state, AggregateInputData &input_data, string_t value, bool is_null) { if (LAST && state.is_set) { Destroy(state, input_data); @@ -81,7 +82,9 @@ struct FirstFunctionStringBase : public FirstFunctionBase { } else { state.is_set = true; state.is_null = false; - if (value.IsInlined()) { + if ((COMBINE && !LAST) || value.IsInlined()) { + // We use the aggregate allocator for 'first', so the allocation is already done when combining + // Of course, if the value is inlined, we also don't need to allocate state.value = value; } else { // non-inlined string, need to allocate space for it @@ -97,7 +100,7 @@ struct FirstFunctionStringBase : public FirstFunctionBase { template static void Combine(const STATE &source, STATE &target, AggregateInputData &input_data) { if (source.is_set && (LAST || !target.is_set)) { - SetValue(target, input_data, source.value, source.is_null); + SetValue(target, input_data, source.value, source.is_null); } } @@ -291,7 +294,7 @@ static AggregateFunction GetFirstFunction(const LogicalType &type) { } } -AggregateFunction FirstFun::GetFunction(const LogicalType &type) { +AggregateFunction FirstFunctionGetter::GetFunction(const LogicalType &type) { auto fun = GetFirstFunction(type); fun.name = "first"; return fun; @@ -304,6 +307,7 @@ unique_ptr BindDecimalFirst(ClientContext &context, AggregateFunct auto name = std::move(function.name); function = GetFirstFunction(decimal_type); function.name = std::move(name); + function.distinct_dependent = AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT; function.return_type = decimal_type; return nullptr; } @@ -323,6 +327,7 @@ unique_ptr BindFirst(ClientContext &context, AggregateFunction &fu auto name = std::move(function.name); function = GetFirstOperator(input_type); function.name = std::move(name); + function.distinct_dependent = AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT; if (function.bind) { return function.bind(context, function, arguments); } else { @@ -338,22 +343,22 @@ static void AddFirstOperator(AggregateFunctionSet &set) { nullptr, BindFirst)); } -void FirstFun::RegisterFunction(BuiltinFunctions &set) { +AggregateFunctionSet FirstFun::GetFunctions() { AggregateFunctionSet first("first"); - AggregateFunctionSet last("last"); - AggregateFunctionSet any_value("any_value"); - AddFirstOperator(first); - AddFirstOperator(last); - AddFirstOperator(any_value); - - set.AddFunction(first); - first.name = "arbitrary"; - set.AddFunction(first); + return first; +} - set.AddFunction(last); +AggregateFunctionSet LastFun::GetFunctions() { + AggregateFunctionSet last("last"); + AddFirstOperator(last); + return last; +} - set.AddFunction(any_value); +AggregateFunctionSet AnyValueFun::GetFunctions() { + AggregateFunctionSet any_value("any_value"); + AddFirstOperator(any_value); + return any_value; } } // namespace duckdb diff --git a/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp b/src/duckdb/src/function/aggregate/distributive/minmax.cpp similarity index 94% rename from src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp rename to src/duckdb/src/function/aggregate/distributive/minmax.cpp index dba09e5a..b862bf6d 100644 --- a/src/duckdb/src/core_functions/aggregate/distributive/minmax.cpp +++ b/src/duckdb/src/function/aggregate/distributive/minmax.cpp @@ -1,16 +1,17 @@ #include "duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp" -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" #include "duckdb/common/exception.hpp" -#include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/operator/comparison_operators.hpp" #include "duckdb/common/types/null_value.hpp" +#include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" +#include "duckdb/function/aggregate/minmax_n_helpers.hpp" +#include "duckdb/function/aggregate/sort_key_helpers.hpp" +#include "duckdb/function/function_binder.hpp" #include "duckdb/main/config.hpp" #include "duckdb/planner/expression.hpp" #include "duckdb/planner/expression/bound_comparison_expression.hpp" #include "duckdb/planner/expression_binder.hpp" -#include "duckdb/function/function_binder.hpp" -#include "duckdb/core_functions/aggregate/sort_key_helpers.hpp" -#include "duckdb/core_functions/aggregate/minmax_n_helpers.hpp" namespace duckdb { @@ -315,8 +316,8 @@ static AggregateFunction GetMinMaxOperator(const LogicalType &type) { auto internal_type = type.InternalType(); switch (internal_type) { case PhysicalType::VARCHAR: - return AggregateFunction::UnaryAggregateDestructor(type.id(), - type.id()); + return AggregateFunction::UnaryAggregateDestructor(type, + type); case PhysicalType::LIST: case PhysicalType::STRUCT: case PhysicalType::ARRAY: @@ -336,8 +337,14 @@ unique_ptr BindMinMax(ClientContext &context, AggregateFunction &f // to make sure the result's correctness. string function_name = function.name == "min" ? "arg_min" : "arg_max"; QueryErrorContext error_context; - auto func = Catalog::GetEntry(context, CatalogType::SCALAR_FUNCTION_ENTRY, "", "", function_name, + auto func = Catalog::GetEntry(context, CatalogType::AGGREGATE_FUNCTION_ENTRY, "", "", function_name, OnEntryNotFound::RETURN_NULL, error_context); + if (!func) { + throw NotImplementedException( + "Failure while binding function \"%s\" using collations - arg_min/arg_max do not exist in the " + "catalog - load the core_functions module to fix this issue", + function.name); + } auto &func_entry = func->Cast(); @@ -370,6 +377,7 @@ unique_ptr BindMinMax(ClientContext &context, AggregateFunction &f function = GetMinMaxOperator(input_type); function.name = std::move(name); function.order_dependent = AggregateOrderDependent::NOT_ORDER_DEPENDENT; + function.distinct_dependent = AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT; if (function.bind) { return function.bind(context, function, arguments); } else { @@ -383,11 +391,11 @@ static AggregateFunction GetMinMaxOperator(string name) { nullptr, nullptr, BindMinMax); } -AggregateFunction MinFun::GetFunction() { +AggregateFunction MinFunction::GetFunction() { return GetMinMaxOperator("min"); } -AggregateFunction MaxFun::GetFunction() { +AggregateFunction MaxFunction::GetFunction() { return GetMinMaxOperator("max"); } @@ -471,7 +479,7 @@ static void SpecializeMinMaxNFunction(AggregateFunction &function) { using OP = MinMaxNOperation; function.state_size = AggregateFunction::StateSize; - function.initialize = AggregateFunction::StateInitialize; + function.initialize = AggregateFunction::StateInitialize; function.combine = AggregateFunction::StateCombine; function.destructor = AggregateFunction::StateDestroy; @@ -531,17 +539,16 @@ static AggregateFunction GetMinMaxNFunction() { //--------------------------------------------------- // Function Registration //---------------------------------------------------s - AggregateFunctionSet MinFun::GetFunctions() { AggregateFunctionSet min("min"); - min.AddFunction(GetFunction()); + min.AddFunction(MinFunction::GetFunction()); min.AddFunction(GetMinMaxNFunction()); return min; } AggregateFunctionSet MaxFun::GetFunctions() { AggregateFunctionSet max("max"); - max.AddFunction(GetFunction()); + max.AddFunction(MaxFunction::GetFunction()); max.AddFunction(GetMinMaxNFunction()); return max; } diff --git a/src/duckdb/src/function/aggregate/distributive_functions.cpp b/src/duckdb/src/function/aggregate/distributive_functions.cpp deleted file mode 100644 index 5971861c..00000000 --- a/src/duckdb/src/function/aggregate/distributive_functions.cpp +++ /dev/null @@ -1,15 +0,0 @@ -#include "duckdb/function/aggregate/distributive_functions.hpp" -#include "duckdb/common/exception.hpp" -#include "duckdb/common/types/null_value.hpp" -#include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/function/aggregate_function.hpp" - -namespace duckdb { - -void BuiltinFunctions::RegisterDistributiveAggregates() { - Register(); - Register(); - Register(); -} - -} // namespace duckdb diff --git a/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp b/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp index 4e86f930..87960adb 100644 --- a/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp +++ b/src/duckdb/src/function/aggregate/sorted_aggregate_function.cpp @@ -744,7 +744,8 @@ void FunctionBinder::BindSortedAggregate(ClientContext &context, BoundAggregateE // Replace the aggregate with the wrapper AggregateFunction ordered_aggregate( bound_function.name, arguments, bound_function.return_type, AggregateFunction::StateSize, - AggregateFunction::StateInitialize, + AggregateFunction::StateInitialize, SortedAggregateFunction::ScatterUpdate, AggregateFunction::StateCombine, SortedAggregateFunction::Finalize, bound_function.null_handling, SortedAggregateFunction::SimpleUpdate, nullptr, diff --git a/src/duckdb/src/function/built_in_functions.cpp b/src/duckdb/src/function/built_in_functions.cpp index 23372fcd..00e7eac6 100644 --- a/src/duckdb/src/function/built_in_functions.cpp +++ b/src/duckdb/src/function/built_in_functions.cpp @@ -1,12 +1,16 @@ #include "duckdb/function/built_in_functions.hpp" + +#include "duckdb/catalog/catalog.hpp" +#include "duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp" +#include "duckdb/main/extension_entries.hpp" #include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp" #include "duckdb/parser/parsed_data/create_collation_info.hpp" #include "duckdb/parser/parsed_data/create_copy_function_info.hpp" #include "duckdb/parser/parsed_data/create_pragma_function_info.hpp" #include "duckdb/parser/parsed_data/create_scalar_function_info.hpp" #include "duckdb/parser/parsed_data/create_table_function_info.hpp" -#include "duckdb/catalog/catalog.hpp" -#include "duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp" +#include "duckdb/main/extension_helper.hpp" +#include "duckdb/main/config.hpp" namespace duckdb { @@ -85,4 +89,83 @@ void BuiltinFunctions::AddFunction(CopyFunction function) { catalog.CreateCopyFunction(transaction, info); } +struct ExtensionFunctionInfo : public ScalarFunctionInfo { + explicit ExtensionFunctionInfo(string extension_p) : extension(std::move(extension_p)) { + } + + string extension; +}; + +unique_ptr BindExtensionFunction(ClientContext &context, ScalarFunction &bound_function, + vector> &arguments) { + // if this is triggered we are trying to call a method that is present in an extension + // but the extension is not loaded + // try to autoload the extension + // first figure out which extension we need to auto-load + auto &function_info = bound_function.function_info->Cast(); + auto &extension_name = function_info.extension; + auto &db = *context.db; + + if (!ExtensionHelper::CanAutoloadExtension(extension_name)) { + throw BinderException("Trying to call function \"%s\" which is present in extension \"%s\" - but the extension " + "is not loaded and could not be auto-loaded", + bound_function.name, extension_name); + } + // auto-load the extension + ExtensionHelper::AutoLoadExtension(db, extension_name); + + // now find the function in the catalog + auto &catalog = Catalog::GetSystemCatalog(db); + auto &function_entry = catalog.GetEntry(context, DEFAULT_SCHEMA, bound_function.name); + // override the function with the extension function + bound_function = function_entry.functions.GetFunctionByArguments(context, bound_function.arguments); + // call the original bind (if any) + if (!bound_function.bind) { + return nullptr; + } + return bound_function.bind(context, bound_function, arguments); +} + +void BuiltinFunctions::AddExtensionFunction(ScalarFunctionSet set) { + CreateScalarFunctionInfo info(std::move(set)); + info.internal = true; + catalog.CreateFunction(transaction, info); +} + +void BuiltinFunctions::RegisterExtensionOverloads() { +#ifdef GENERATE_EXTENSION_ENTRIES + // do not insert auto loading placeholders when generating extension entries + return; +#endif + ScalarFunctionSet current_set; + for (auto &entry : EXTENSION_FUNCTION_OVERLOADS) { + vector arguments; + auto splits = StringUtil::Split(entry.signature, ">"); + auto return_type = DBConfig::ParseLogicalType(splits[1]); + auto argument_splits = StringUtil::Split(splits[0], ","); + for (auto ¶m : argument_splits) { + arguments.push_back(DBConfig::ParseLogicalType(param)); + } + if (entry.type != CatalogType::SCALAR_FUNCTION_ENTRY) { + throw InternalException( + "Extension function overloads only supported for scalar functions currently - %s has a different type", + entry.name); + } + + ScalarFunction function(entry.name, std::move(arguments), std::move(return_type), nullptr, + BindExtensionFunction); + function.function_info = make_shared_ptr(entry.extension); + if (current_set.name != entry.name) { + if (!current_set.name.empty()) { + // create set of functions + AddExtensionFunction(current_set); + } + current_set = ScalarFunctionSet(entry.name); + } + // add this function to the set of function overloads + current_set.AddFunction(std::move(function)); + } + AddExtensionFunction(std::move(current_set)); +} + } // namespace duckdb diff --git a/src/duckdb/src/function/cast/decimal_cast.cpp b/src/duckdb/src/function/cast/decimal_cast.cpp index d1bc6e77..21f80bf0 100644 --- a/src/duckdb/src/function/cast/decimal_cast.cpp +++ b/src/duckdb/src/function/cast/decimal_cast.cpp @@ -114,17 +114,48 @@ struct DecimalScaleDownOperator { } }; +// This function detects if we can scale a decimal down to another. +template +bool CanScaleDownDecimal(INPUT_TYPE input, DecimalScaleInput &data) { + int64_t divisor = UnsafeNumericCast(NumericHelper::POWERS_OF_TEN[data.source_scale]); + auto value = input % divisor; + auto rounded_input = input; + if (rounded_input < 0) { + rounded_input *= -1; + value *= -1; + } + if (value >= divisor / 2) { + rounded_input += divisor; + } + return rounded_input < data.limit && rounded_input > -data.limit; +} + +template <> +bool CanScaleDownDecimal(hugeint_t input, DecimalScaleInput &data) { + auto divisor = UnsafeNumericCast(Hugeint::POWERS_OF_TEN[data.source_scale]); + hugeint_t value = input % divisor; + hugeint_t rounded_input = input; + if (rounded_input < 0) { + rounded_input *= -1; + value *= -1; + } + if (value >= divisor / 2) { + rounded_input += divisor; + } + return rounded_input < data.limit && rounded_input > -data.limit; +} + struct DecimalScaleDownCheckOperator { template static RESULT_TYPE Operation(INPUT_TYPE input, ValidityMask &mask, idx_t idx, void *dataptr) { - auto data = (DecimalScaleInput *)dataptr; - if (input >= data->limit || input <= -data->limit) { + auto data = static_cast *>(dataptr); + if (!CanScaleDownDecimal(input, *data)) { auto error = StringUtil::Format("Casting value \"%s\" to type %s failed: value is out of range!", Decimal::ToString(input, data->source_width, data->source_scale), data->result.GetType().ToString()); return HandleVectorCastError::Operation(std::move(error), mask, idx, data->vector_cast_data); } - return Cast::Operation(input / data->factor); + return DecimalScaleDownOperator::Operation(input, mask, idx, dataptr); } }; @@ -145,7 +176,6 @@ bool TemplatedDecimalScaleDown(Vector &source, Vector &result, idx_t count, Cast return true; } else { // type might not fit: check limit - auto limit = UnsafeNumericCast(POWERS_SOURCE::POWERS_OF_TEN[target_width]); DecimalScaleInput input(result, limit, divide_factor, parameters, source_width, source_scale); UnaryExecutor::GenericExecute(source, result, count, &input, diff --git a/src/duckdb/src/function/cast/string_cast.cpp b/src/duckdb/src/function/cast/string_cast.cpp index 9f8b5ee2..f3a19c42 100644 --- a/src/duckdb/src/function/cast/string_cast.cpp +++ b/src/duckdb/src/function/cast/string_cast.cpp @@ -342,8 +342,8 @@ bool VectorStringToMap::StringToNestedTypeCastLoop(const string_t *source_data, vector_cast_data.all_converted = false; } - auto &key_validity = FlatVector::Validity(result_key_child); if (!vector_cast_data.all_converted) { + auto &key_validity = FlatVector::Validity(result_key_child); for (idx_t row_idx = 0; row_idx < count; row_idx++) { if (!result_mask.RowIsValid(row_idx)) { continue; diff --git a/src/duckdb/src/function/cast/union/from_struct.cpp b/src/duckdb/src/function/cast/union/from_struct.cpp index ca3aecfc..c6fcd2a0 100644 --- a/src/duckdb/src/function/cast/union/from_struct.cpp +++ b/src/duckdb/src/function/cast/union/from_struct.cpp @@ -58,6 +58,8 @@ bool StructToUnionCast::Cast(Vector &source, Vector &result, idx_t count, CastPa cast_data.child_cast_info[i].function(source_child_vector, result_child_vector, count, child_parameters); (void)converted; D_ASSERT(converted); + // we flatten the child because we use FlatVector::SetNull below and we may get non-flat from source/cast + result_child_vector.Flatten(count); } if (source.GetVectorType() == VectorType::CONSTANT_VECTOR) { @@ -68,15 +70,15 @@ bool StructToUnionCast::Cast(Vector &source, Vector &result, idx_t count, CastPa auto &tag_vec = *target_children[0]; ConstantVector::SetNull(result, ConstantVector::IsNull(tag_vec)); } else { - source.Flatten(count); - FlatVector::Validity(result) = FlatVector::Validity(source); - // if the tag is NULL, the union should be NULL auto &tag_vec = *target_children[0]; - UnifiedVectorFormat tag_data; + UnifiedVectorFormat source_data, tag_data; + source.ToUnifiedFormat(count, source_data); tag_vec.ToUnifiedFormat(count, tag_data); + for (idx_t i = 0; i < count; i++) { - if (!tag_data.validity.RowIsValid(tag_data.sel->get_index(i))) { + if (!source_data.validity.RowIsValid(source_data.sel->get_index(i)) || + !tag_data.validity.RowIsValid(tag_data.sel->get_index(i))) { FlatVector::SetNull(result, i, true); } } diff --git a/src/duckdb/src/function/compression_config.cpp b/src/duckdb/src/function/compression_config.cpp index a5e686f3..c0a7f160 100644 --- a/src/duckdb/src/function/compression_config.cpp +++ b/src/duckdb/src/function/compression_config.cpp @@ -26,6 +26,8 @@ static const DefaultCompressionMethod internal_compression_methods[] = { {CompressionType::COMPRESSION_ALP, AlpCompressionFun::GetFunction, AlpCompressionFun::TypeIsSupported}, {CompressionType::COMPRESSION_ALPRD, AlpRDCompressionFun::GetFunction, AlpRDCompressionFun::TypeIsSupported}, {CompressionType::COMPRESSION_FSST, FSSTFun::GetFunction, FSSTFun::TypeIsSupported}, + {CompressionType::COMPRESSION_ZSTD, ZSTDFun::GetFunction, ZSTDFun::TypeIsSupported}, + {CompressionType::COMPRESSION_ROARING, RoaringCompressionFun::GetFunction, RoaringCompressionFun::TypeIsSupported}, {CompressionType::COMPRESSION_AUTO, nullptr, nullptr}}; static optional_ptr FindCompressionFunction(CompressionFunctionSet &set, CompressionType type, @@ -79,6 +81,8 @@ vector> DBConfig::GetCompressionFunctions(const P TryLoadCompression(*this, result, CompressionType::COMPRESSION_ALP, physical_type); TryLoadCompression(*this, result, CompressionType::COMPRESSION_ALPRD, physical_type); TryLoadCompression(*this, result, CompressionType::COMPRESSION_FSST, physical_type); + TryLoadCompression(*this, result, CompressionType::COMPRESSION_ZSTD, physical_type); + TryLoadCompression(*this, result, CompressionType::COMPRESSION_ROARING, physical_type); return result; } diff --git a/src/duckdb/src/function/encoding_function.cpp b/src/duckdb/src/function/encoding_function.cpp new file mode 100644 index 00000000..644652c4 --- /dev/null +++ b/src/duckdb/src/function/encoding_function.cpp @@ -0,0 +1,134 @@ +#include "duckdb/function/encoding_function.hpp" +#include "duckdb/main/config.hpp" + +namespace duckdb { + +struct DefaultEncodeMethod { + string name; + encode_t encode_function; + idx_t ratio; + idx_t bytes_per_iteration; +}; + +void DecodeUTF16ToUTF8(const char *source_buffer, idx_t &source_buffer_current_position, const idx_t source_buffer_size, + char *target_buffer, idx_t &target_buffer_current_position, const idx_t target_buffer_size, + char *remaining_bytes_buffer, idx_t &remaining_bytes_size) { + + for (; source_buffer_current_position < source_buffer_size; source_buffer_current_position += 2) { + if (target_buffer_current_position == target_buffer_size) { + // We are done + return; + } + const uint16_t ch = + static_cast(static_cast(source_buffer[source_buffer_current_position]) | + (static_cast(source_buffer[source_buffer_current_position + 1]) << 8)); + if (ch >= 0xD800 && ch <= 0xDFFF) { + throw InvalidInputException("File is not utf-16 encoded"); + } + if (ch <= 0x007F) { + // 1-byte UTF-8 for ASCII characters + target_buffer[target_buffer_current_position++] = static_cast(ch & 0x7F); + } else if (ch <= 0x07FF) { + // 2-byte UTF-8 + target_buffer[target_buffer_current_position++] = static_cast(0xC0 | (ch >> 6)); + if (target_buffer_current_position == target_buffer_size) { + // We are done, but we have to store one byte for the next chunk! + source_buffer_current_position += 2; + remaining_bytes_buffer[0] = static_cast(0x80 | (ch & 0x3F)); + remaining_bytes_size = 1; + return; + } + target_buffer[target_buffer_current_position++] = static_cast(0x80 | (ch & 0x3F)); + } else { + // 3-byte UTF-8 + target_buffer[target_buffer_current_position++] = static_cast(0xE0 | (ch >> 12)); + if (target_buffer_current_position == target_buffer_size) { + // We are done, but we have to store two bytes for the next chunk! + source_buffer_current_position += 2; + remaining_bytes_buffer[0] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + remaining_bytes_buffer[1] = static_cast(0x80 | (ch & 0x3F)); + remaining_bytes_size = 2; + return; + } + target_buffer[target_buffer_current_position++] = static_cast(0x80 | ((ch >> 6) & 0x3F)); + if (target_buffer_current_position == target_buffer_size) { + // We are done, but we have to store one byte for the next chunk! + source_buffer_current_position += 2; + remaining_bytes_buffer[0] = static_cast(0x80 | (ch & 0x3F)); + remaining_bytes_size = 1; + return; + } + target_buffer[target_buffer_current_position++] = static_cast(0x80 | (ch & 0x3F)); + } + } +} + +void DecodeLatin1ToUTF8(const char *source_buffer, idx_t &source_buffer_current_position, + const idx_t source_buffer_size, char *target_buffer, idx_t &target_buffer_current_position, + const idx_t target_buffer_size, char *remaining_bytes_buffer, idx_t &remaining_bytes_size) { + for (; source_buffer_current_position < source_buffer_size; source_buffer_current_position++) { + if (target_buffer_current_position == target_buffer_size) { + // We are done + return; + } + const unsigned char ch = static_cast(source_buffer[source_buffer_current_position]); + if (ch > 0x7F && ch <= 0x9F) { + throw InvalidInputException("File is not latin-1 encoded"); + } + if (ch <= 0x7F) { + // ASCII: 1 byte in UTF-8 + target_buffer[target_buffer_current_position++] = static_cast(ch); + } else { + // Non-ASCII: 2 bytes in UTF-8 + target_buffer[target_buffer_current_position++] = static_cast(0xc2 + (ch > 0xbf)); + if (target_buffer_current_position == target_buffer_size) { + // We are done, but we have to store one byte for the next chunk! + source_buffer_current_position++; + remaining_bytes_buffer[0] = static_cast((ch & 0x3f) + 0x80); + remaining_bytes_size = 1; + return; + } + target_buffer[target_buffer_current_position++] = static_cast((ch & 0x3f) + 0x80); + } + } +} + +void DecodeUTF8(const char *source_buffer, idx_t &source_buffer_current_position, const idx_t source_buffer_size, + char *target_buffer, idx_t &target_buffer_current_position, const idx_t target_buffer_size, + char *remaining_bytes_buffer, idx_t &remaining_bytes_size) { + throw InternalException("Decode UTF8 is not a valid function, and should be verified one level up."); +} + +void EncodingFunctionSet::Initialize(DBConfig &config) { + config.RegisterEncodeFunction({"utf-8", DecodeUTF8, 1, 1}); + config.RegisterEncodeFunction({"latin-1", DecodeLatin1ToUTF8, 2, 1}); + config.RegisterEncodeFunction({"utf-16", DecodeUTF16ToUTF8, 2, 2}); +} + +void DBConfig::RegisterEncodeFunction(const EncodingFunction &function) const { + lock_guard l(encoding_functions->lock); + const auto decode_type = function.GetType(); + if (encoding_functions->functions.find(decode_type) != encoding_functions->functions.end()) { + throw InvalidInputException("Decoding function with name %s already registered", decode_type); + } + encoding_functions->functions[decode_type] = function; +} + +optional_ptr DBConfig::GetEncodeFunction(const string &name) const { + lock_guard l(encoding_functions->lock); + // Check if the function is already loaded into the global compression functions. + if (encoding_functions->functions.find(name) != encoding_functions->functions.end()) { + return &encoding_functions->functions[name]; + } + return nullptr; +} + +vector> DBConfig::GetLoadedEncodedFunctions() const { + lock_guard l(encoding_functions->lock); + vector> result; + for (auto &function : encoding_functions->functions) { + result.push_back(function.second); + } + return result; +} +} // namespace duckdb diff --git a/src/duckdb/src/function/function.cpp b/src/duckdb/src/function/function.cpp index 9427f445..2a2f32dd 100644 --- a/src/duckdb/src/function/function.cpp +++ b/src/duckdb/src/function/function.cpp @@ -2,11 +2,13 @@ #include "duckdb/common/string_util.hpp" #include "duckdb/common/types/hash.hpp" +#include "duckdb/function/built_in_functions.hpp" #include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/function/scalar_function.hpp" #include "duckdb/parser/parsed_data/pragma_info.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" +#include "duckdb/main/extension_entries.hpp" namespace duckdb { @@ -74,7 +76,8 @@ BaseScalarFunction::BaseScalarFunction(string name_p, vector argume FunctionStability stability, LogicalType varargs_p, FunctionNullHandling null_handling) : SimpleFunction(std::move(name_p), std::move(arguments_p), std::move(varargs_p)), - return_type(std::move(return_type_p)), stability(stability), null_handling(null_handling) { + return_type(std::move(return_type_p)), stability(stability), null_handling(null_handling), + collation_handling(FunctionCollationHandling::PROPAGATE_COLLATIONS) { } BaseScalarFunction::~BaseScalarFunction() { @@ -92,22 +95,14 @@ void BuiltinFunctions::Initialize() { RegisterTableFunctions(); RegisterArrowFunctions(); - RegisterDistributiveAggregates(); - - RegisterCompressedMaterializationFunctions(); - - RegisterGenericFunctions(); - RegisterOperators(); - RegisterSequenceFunctions(); - RegisterStringFunctions(); - RegisterNestedFunctions(); - RegisterPragmaFunctions(); // initialize collations AddCollation("nocase", LowerFun::GetFunction(), true); - AddCollation("noaccent", StripAccentsFun::GetFunction()); + AddCollation("noaccent", StripAccentsFun::GetFunction(), true); AddCollation("nfc", NFCNormalizeFun::GetFunction()); + + RegisterExtensionOverloads(); } hash_t BaseScalarFunction::Hash() const { diff --git a/src/duckdb/src/function/function_binder.cpp b/src/duckdb/src/function/function_binder.cpp index 6bc8dcfa..67144182 100644 --- a/src/duckdb/src/function/function_binder.cpp +++ b/src/duckdb/src/function/function_binder.cpp @@ -6,17 +6,19 @@ #include "duckdb/execution/expression_executor.hpp" #include "duckdb/function/aggregate_function.hpp" #include "duckdb/function/cast_rules.hpp" +#include "duckdb/function/scalar/generic_functions.hpp" #include "duckdb/parser/parsed_data/create_secret_info.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression_binder.hpp" -#include "duckdb/function/scalar/generic_functions.hpp" namespace duckdb { -FunctionBinder::FunctionBinder(ClientContext &context) : context(context) { +FunctionBinder::FunctionBinder(ClientContext &context_p) : binder(nullptr), context(context_p) { +} +FunctionBinder::FunctionBinder(Binder &binder_p) : binder(&binder_p), context(binder_p.context) { } optional_idx FunctionBinder::BindVarArgsFunctionCost(const SimpleFunction &func, const vector &arguments) { @@ -318,24 +320,13 @@ unique_ptr FunctionBinder::BindScalarFunction(ScalarFunctionCatalogE // found a matching function! auto bound_function = func.functions.GetFunctionByOffset(best_function.GetIndex()); - // If any of the parameters are NULL, the function will just be replaced with a NULL constant - // But this NULL constant needs to have to correct type, because we use LogicalType::SQLNULL for binding macro's - // However, some functions may have an invalid return type, so we default to SQLNULL for those - LogicalType return_type_if_null; - switch (bound_function.return_type.id()) { - case LogicalTypeId::ANY: - case LogicalTypeId::DECIMAL: - case LogicalTypeId::STRUCT: - case LogicalTypeId::LIST: - case LogicalTypeId::MAP: - case LogicalTypeId::UNION: - case LogicalTypeId::ARRAY: - return_type_if_null = LogicalType::SQLNULL; - break; - default: - return_type_if_null = bound_function.return_type; - } - + // If any of the parameters are NULL, the function will just be replaced with a NULL constant. + // We try to give the NULL constant the correct type, but we have to do this without binding the function, + // because functions with DEFAULT_NULL_HANDLING should not have to deal with NULL inputs in their bind code. + // Some functions may have an invalid default return type, as they must be bound to infer the return type. + // In those cases, we default to SQLNULL. + const auto return_type_if_null = + bound_function.return_type.IsComplete() ? bound_function.return_type : LogicalType::SQLNULL; if (bound_function.null_handling == FunctionNullHandling::DEFAULT_NULL_HANDLING) { for (auto &child : children) { if (child->return_type == LogicalTypeId::SQLNULL) { @@ -356,22 +347,110 @@ unique_ptr FunctionBinder::BindScalarFunction(ScalarFunctionCatalogE return BindScalarFunction(bound_function, std::move(children), is_operator, binder); } +bool RequiresCollationPropagation(const LogicalType &type) { + return type.id() == LogicalTypeId::VARCHAR && !type.HasAlias(); +} + +string ExtractCollation(const vector> &children) { + string collation; + for (auto &arg : children) { + if (!RequiresCollationPropagation(arg->return_type)) { + // not a varchar column + continue; + } + auto child_collation = StringType::GetCollation(arg->return_type); + if (collation.empty()) { + collation = child_collation; + } else if (!child_collation.empty() && collation != child_collation) { + throw BinderException("Cannot combine types with different collation!"); + } + } + return collation; +} + +void PropagateCollations(ClientContext &, ScalarFunction &bound_function, vector> &children) { + if (!RequiresCollationPropagation(bound_function.return_type)) { + // we only need to propagate if the function returns a varchar + return; + } + auto collation = ExtractCollation(children); + if (collation.empty()) { + // no collation to propagate + return; + } + // propagate the collation to the return type + auto collation_type = LogicalType::VARCHAR_COLLATION(std::move(collation)); + bound_function.return_type = std::move(collation_type); +} + +void PushCollations(ClientContext &context, ScalarFunction &bound_function, vector> &children, + CollationType type) { + auto collation = ExtractCollation(children); + if (collation.empty()) { + // no collation to push + return; + } + // push collation into the return type if required + auto collation_type = LogicalType::VARCHAR_COLLATION(std::move(collation)); + if (RequiresCollationPropagation(bound_function.return_type)) { + bound_function.return_type = collation_type; + } + // push collations to the children + for (auto &arg : children) { + if (RequiresCollationPropagation(arg->return_type)) { + // if this is a varchar type - propagate the collation + arg->return_type = collation_type; + } + // now push the actual collation handling + ExpressionBinder::PushCollation(context, arg, arg->return_type, type); + } +} + +void HandleCollations(ClientContext &context, ScalarFunction &bound_function, + vector> &children) { + switch (bound_function.collation_handling) { + case FunctionCollationHandling::IGNORE_COLLATIONS: + // explicitly ignoring collation handling + break; + case FunctionCollationHandling::PROPAGATE_COLLATIONS: + PropagateCollations(context, bound_function, children); + break; + case FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS: + // first propagate, then push collations to the children + PushCollations(context, bound_function, children, CollationType::COMBINABLE_COLLATIONS); + break; + default: + throw InternalException("Unrecognized collation handling"); + } +} + unique_ptr FunctionBinder::BindScalarFunction(ScalarFunction bound_function, vector> children, bool is_operator, optional_ptr binder) { unique_ptr bind_info; + if (bound_function.bind) { bind_info = bound_function.bind(context, bound_function, children); + } else if (bound_function.bind_extended) { + if (!binder) { + throw InternalException("Function '%s' has a 'bind_extended' but the FunctionBinder was created without " + "a reference to a Binder", + bound_function.name); + } + ScalarFunctionBindInput bind_input(*binder); + bind_info = bound_function.bind_extended(bind_input, bound_function, children); } + if (bound_function.get_modified_databases && binder) { auto &properties = binder->GetStatementProperties(); FunctionModifiedDatabasesInput input(bind_info, properties); bound_function.get_modified_databases(context, input); } + HandleCollations(context, bound_function, children); + // check if we need to add casts to the children CastToFunctionArguments(bound_function, children); - // now create the function auto return_type = bound_function.return_type; unique_ptr result; auto result_func = make_uniq(std::move(return_type), std::move(bound_function), diff --git a/src/duckdb/src/function/function_list.cpp b/src/duckdb/src/function/function_list.cpp new file mode 100644 index 00000000..4c81c458 --- /dev/null +++ b/src/duckdb/src/function/function_list.cpp @@ -0,0 +1,176 @@ +#include "duckdb/function/function_list.hpp" + +#include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/scalar/compressed_materialization_functions.hpp" +#include "duckdb/function/scalar/date_functions.hpp" +#include "duckdb/function/scalar/generic_functions.hpp" +#include "duckdb/function/scalar/list_functions.hpp" +#include "duckdb/function/scalar/map_functions.hpp" +#include "duckdb/function/scalar/operator_functions.hpp" +#include "duckdb/function/scalar/sequence_functions.hpp" +#include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/struct_functions.hpp" +#include "duckdb/function/scalar/system_functions.hpp" +#include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp" +#include "duckdb/parser/parsed_data/create_scalar_function_info.hpp" + +namespace duckdb { + +// Scalar Function +#define DUCKDB_SCALAR_FUNCTION_BASE(_PARAM, _NAME) \ + { _NAME, _PARAM::Parameters, _PARAM::Description, _PARAM::Example, _PARAM::GetFunction, nullptr, nullptr, nullptr } +#define DUCKDB_SCALAR_FUNCTION(_PARAM) DUCKDB_SCALAR_FUNCTION_BASE(_PARAM, _PARAM::Name) +#define DUCKDB_SCALAR_FUNCTION_ALIAS(_PARAM) DUCKDB_SCALAR_FUNCTION_BASE(_PARAM::ALIAS, _PARAM::Name) +// Scalar Function Set +#define DUCKDB_SCALAR_FUNCTION_SET_BASE(_PARAM, _NAME) \ + { _NAME, _PARAM::Parameters, _PARAM::Description, _PARAM::Example, nullptr, _PARAM::GetFunctions, nullptr, nullptr } +#define DUCKDB_SCALAR_FUNCTION_SET(_PARAM) DUCKDB_SCALAR_FUNCTION_SET_BASE(_PARAM, _PARAM::Name) +#define DUCKDB_SCALAR_FUNCTION_SET_ALIAS(_PARAM) DUCKDB_SCALAR_FUNCTION_SET_BASE(_PARAM::ALIAS, _PARAM::Name) +// Aggregate Function +#define DUCKDB_AGGREGATE_FUNCTION_BASE(_PARAM, _NAME) \ + { _NAME, _PARAM::Parameters, _PARAM::Description, _PARAM::Example, nullptr, nullptr, _PARAM::GetFunction, nullptr } +#define DUCKDB_AGGREGATE_FUNCTION(_PARAM) DUCKDB_AGGREGATE_FUNCTION_BASE(_PARAM, _PARAM::Name) +#define DUCKDB_AGGREGATE_FUNCTION_ALIAS(_PARAM) DUCKDB_AGGREGATE_FUNCTION_BASE(_PARAM::ALIAS, _PARAM::Name) +// Aggregate Function Set +#define DUCKDB_AGGREGATE_FUNCTION_SET_BASE(_PARAM, _NAME) \ + { _NAME, _PARAM::Parameters, _PARAM::Description, _PARAM::Example, nullptr, nullptr, nullptr, _PARAM::GetFunctions } +#define DUCKDB_AGGREGATE_FUNCTION_SET(_PARAM) DUCKDB_AGGREGATE_FUNCTION_SET_BASE(_PARAM, _PARAM::Name) +#define DUCKDB_AGGREGATE_FUNCTION_SET_ALIAS(_PARAM) DUCKDB_AGGREGATE_FUNCTION_SET_BASE(_PARAM::ALIAS, _PARAM::Name) +#define FINAL_FUNCTION \ + { nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr } + +// this list is generated by scripts/generate_functions.py +static const StaticFunctionDefinition function[] = { + DUCKDB_SCALAR_FUNCTION(NotLikeFun), + DUCKDB_SCALAR_FUNCTION(NotILikeFun), + DUCKDB_SCALAR_FUNCTION_SET(OperatorModuloFun), + DUCKDB_SCALAR_FUNCTION_SET(OperatorMultiplyFun), + DUCKDB_SCALAR_FUNCTION_SET(OperatorAddFun), + DUCKDB_SCALAR_FUNCTION_SET(OperatorSubtractFun), + DUCKDB_SCALAR_FUNCTION_SET(OperatorFloatDivideFun), + DUCKDB_SCALAR_FUNCTION_SET(OperatorIntegerDivideFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalCompressIntegralUbigintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalCompressIntegralUintegerFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalCompressIntegralUsmallintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalCompressIntegralUtinyintFun), + DUCKDB_SCALAR_FUNCTION(InternalCompressStringHugeintFun), + DUCKDB_SCALAR_FUNCTION(InternalCompressStringUbigintFun), + DUCKDB_SCALAR_FUNCTION(InternalCompressStringUintegerFun), + DUCKDB_SCALAR_FUNCTION(InternalCompressStringUsmallintFun), + DUCKDB_SCALAR_FUNCTION(InternalCompressStringUtinyintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralBigintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralHugeintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralIntegerFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralSmallintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralUbigintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralUhugeintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralUintegerFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressIntegralUsmallintFun), + DUCKDB_SCALAR_FUNCTION_SET(InternalDecompressStringFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(AddFun), + DUCKDB_AGGREGATE_FUNCTION_SET(AnyValueFun), + DUCKDB_AGGREGATE_FUNCTION_SET_ALIAS(ArbitraryFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayCatFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayConcatFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayContainsFun), + DUCKDB_SCALAR_FUNCTION_SET(ArrayExtractFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayHasFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayIndexofFun), + DUCKDB_SCALAR_FUNCTION_SET(ArrayLengthFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayPositionFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ArrayResizeFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArraySelectFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayWhereFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ArrayZipFun), + DUCKDB_SCALAR_FUNCTION_SET(BitLengthFun), + DUCKDB_SCALAR_FUNCTION(CombineFun), + DUCKDB_SCALAR_FUNCTION(ConcatFun), + DUCKDB_SCALAR_FUNCTION(ConcatWsFun), + DUCKDB_SCALAR_FUNCTION(ConstantOrNullFun), + DUCKDB_SCALAR_FUNCTION_SET(ContainsFun), + DUCKDB_AGGREGATE_FUNCTION_SET(CountFun), + DUCKDB_AGGREGATE_FUNCTION(CountStarFun), + DUCKDB_SCALAR_FUNCTION(CreateSortKeyFun), + DUCKDB_SCALAR_FUNCTION(CurrvalFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(DivideFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(EndsWithFun), + DUCKDB_SCALAR_FUNCTION(ErrorFun), + DUCKDB_SCALAR_FUNCTION(FinalizeFun), + DUCKDB_AGGREGATE_FUNCTION_SET(FirstFun), + DUCKDB_SCALAR_FUNCTION(GetVariableFun), + DUCKDB_SCALAR_FUNCTION(IlikeEscapeFun), + DUCKDB_AGGREGATE_FUNCTION_SET(LastFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(LcaseFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(LenFun), + DUCKDB_SCALAR_FUNCTION_SET(LengthFun), + DUCKDB_SCALAR_FUNCTION_SET(LengthGraphemeFun), + DUCKDB_SCALAR_FUNCTION(LikeEscapeFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ListCatFun), + DUCKDB_SCALAR_FUNCTION(ListConcatFun), + DUCKDB_SCALAR_FUNCTION(ListContainsFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ListElementFun), + DUCKDB_SCALAR_FUNCTION_SET(ListExtractFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ListHasFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(ListIndexofFun), + DUCKDB_SCALAR_FUNCTION(ListPositionFun), + DUCKDB_SCALAR_FUNCTION_SET(ListResizeFun), + DUCKDB_SCALAR_FUNCTION(ListSelectFun), + DUCKDB_SCALAR_FUNCTION(ListWhereFun), + DUCKDB_SCALAR_FUNCTION(ListZipFun), + DUCKDB_SCALAR_FUNCTION(LowerFun), + DUCKDB_SCALAR_FUNCTION(MapContainsFun), + DUCKDB_AGGREGATE_FUNCTION_SET(MaxFun), + DUCKDB_SCALAR_FUNCTION_SET(MD5Fun), + DUCKDB_SCALAR_FUNCTION_SET(MD5NumberFun), + DUCKDB_AGGREGATE_FUNCTION_SET(MinFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(ModFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(MultiplyFun), + DUCKDB_SCALAR_FUNCTION(NextvalFun), + DUCKDB_SCALAR_FUNCTION(NFCNormalizeFun), + DUCKDB_SCALAR_FUNCTION(NotIlikeEscapeFun), + DUCKDB_SCALAR_FUNCTION(NotLikeEscapeFun), + DUCKDB_SCALAR_FUNCTION_SET(OctetLengthFun), + DUCKDB_SCALAR_FUNCTION(PrefixFun), + DUCKDB_SCALAR_FUNCTION(RegexpEscapeFun), + DUCKDB_SCALAR_FUNCTION_SET(RegexpExtractFun), + DUCKDB_SCALAR_FUNCTION_SET(RegexpExtractAllFun), + DUCKDB_SCALAR_FUNCTION_SET(RegexpFun), + DUCKDB_SCALAR_FUNCTION_SET(RegexpMatchesFun), + DUCKDB_SCALAR_FUNCTION_SET(RegexpReplaceFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(RegexpSplitToArrayFun), + DUCKDB_SCALAR_FUNCTION(RowFun), + DUCKDB_SCALAR_FUNCTION_SET(SHA1Fun), + DUCKDB_SCALAR_FUNCTION_SET(SHA256Fun), + DUCKDB_SCALAR_FUNCTION_ALIAS(SplitFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(StrSplitFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(StrSplitRegexFun), + DUCKDB_SCALAR_FUNCTION_SET(StrfTimeFun), + DUCKDB_SCALAR_FUNCTION(StringSplitFun), + DUCKDB_SCALAR_FUNCTION_SET(StringSplitRegexFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(StringToArrayFun), + DUCKDB_SCALAR_FUNCTION(StripAccentsFun), + DUCKDB_SCALAR_FUNCTION(StrlenFun), + DUCKDB_SCALAR_FUNCTION_SET(StrpTimeFun), + DUCKDB_SCALAR_FUNCTION(StructConcatFun), + DUCKDB_SCALAR_FUNCTION_SET(StructExtractFun), + DUCKDB_SCALAR_FUNCTION(StructPackFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(SubstrFun), + DUCKDB_SCALAR_FUNCTION_SET(SubstringFun), + DUCKDB_SCALAR_FUNCTION_SET(SubstringGraphemeFun), + DUCKDB_SCALAR_FUNCTION_SET_ALIAS(SubtractFun), + DUCKDB_SCALAR_FUNCTION(SuffixFun), + DUCKDB_SCALAR_FUNCTION_SET(TryStrpTimeFun), + DUCKDB_SCALAR_FUNCTION_ALIAS(UcaseFun), + DUCKDB_SCALAR_FUNCTION(UpperFun), + DUCKDB_SCALAR_FUNCTION(ConcatOperatorFun), + DUCKDB_SCALAR_FUNCTION(LikeFun), + DUCKDB_SCALAR_FUNCTION(ILikeFun), + DUCKDB_SCALAR_FUNCTION(GlobPatternFun), + FINAL_FUNCTION +}; + +const StaticFunctionDefinition *FunctionList::GetInternalFunctionList() { + return function; +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/pragma/pragma_functions.cpp b/src/duckdb/src/function/pragma/pragma_functions.cpp index 3e82bfb7..63582806 100644 --- a/src/duckdb/src/function/pragma/pragma_functions.cpp +++ b/src/duckdb/src/function/pragma/pragma_functions.cpp @@ -99,11 +99,9 @@ static void PragmaDisableForceParallelism(ClientContext &context, const Function } static void PragmaEnableObjectCache(ClientContext &context, const FunctionParameters ¶meters) { - DBConfig::GetConfig(context).options.object_cache_enable = true; } static void PragmaDisableObjectCache(ClientContext &context, const FunctionParameters ¶meters) { - DBConfig::GetConfig(context).options.object_cache_enable = false; } static void PragmaEnableCheckpointOnShutdown(ClientContext &context, const FunctionParameters ¶meters) { diff --git a/src/duckdb/src/function/pragma/pragma_queries.cpp b/src/duckdb/src/function/pragma/pragma_queries.cpp index cc52edba..66dd6ace 100644 --- a/src/duckdb/src/function/pragma/pragma_queries.cpp +++ b/src/duckdb/src/function/pragma/pragma_queries.cpp @@ -138,14 +138,10 @@ string PragmaPlatform(ClientContext &context, const FunctionParameters ¶mete } string PragmaImportDatabase(ClientContext &context, const FunctionParameters ¶meters) { - auto &config = DBConfig::GetConfig(context); - if (!config.options.enable_external_access) { - throw PermissionException("Import is disabled through configuration"); - } auto &fs = FileSystem::GetFileSystem(context); string final_query; - // read the "shema.sql" and "load.sql" files + // read the "schema.sql" and "load.sql" files vector files = {"schema.sql", "load.sql"}; for (auto &file : files) { auto file_path = fs.JoinPath(parameters.values[0].ToString(), file); diff --git a/src/duckdb/src/core_functions/core_functions.cpp b/src/duckdb/src/function/register_function_list.cpp similarity index 66% rename from src/duckdb/src/core_functions/core_functions.cpp rename to src/duckdb/src/function/register_function_list.cpp index ef1687dc..1aeebbbb 100644 --- a/src/duckdb/src/core_functions/core_functions.cpp +++ b/src/duckdb/src/function/register_function_list.cpp @@ -1,20 +1,20 @@ -#include "duckdb/core_functions/core_functions.hpp" -#include "duckdb/core_functions/function_list.hpp" +#include "duckdb/catalog/default/default_types.hpp" +#include "duckdb/common/string_util.hpp" +#include "duckdb/function/function_list.hpp" +#include "duckdb/function/register_function_list_helper.hpp" #include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp" #include "duckdb/parser/parsed_data/create_scalar_function_info.hpp" namespace duckdb { template -void FillExtraInfo(const StaticFunctionDefinition &function, T &info) { +static void FillExtraInfo(const StaticFunctionDefinition &function, T &info) { info.internal = true; - info.description = function.description; - info.parameter_names = StringUtil::Split(function.parameters, ","); - info.example = function.example; + FillFunctionDescriptions(function, info); } -void CoreFunctions::RegisterFunctions(Catalog &catalog, CatalogTransaction transaction) { - auto functions = StaticFunctionDefinition::GetFunctionList(); +static void RegisterFunctionList(Catalog &catalog, CatalogTransaction transaction, + const StaticFunctionDefinition *functions) { for (idx_t i = 0; functions[i].name; i++) { auto &function = functions[i]; if (function.get_function || function.get_function_set) { @@ -47,4 +47,8 @@ void CoreFunctions::RegisterFunctions(Catalog &catalog, CatalogTransaction trans } } +void FunctionList::RegisterFunctions(Catalog &catalog, CatalogTransaction transaction) { + RegisterFunctionList(catalog, transaction, FunctionList::GetInternalFunctionList()); +} + } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp b/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp index e431ae40..78410a59 100644 --- a/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp +++ b/src/duckdb/src/function/scalar/compressed_materialization/compress_integral.cpp @@ -3,6 +3,7 @@ #include "duckdb/common/serializer/serializer.hpp" #include "duckdb/function/function_set.hpp" #include "duckdb/function/scalar/compressed_materialization_functions.hpp" +#include "duckdb/function/scalar/compressed_materialization_utils.hpp" namespace duckdb { @@ -40,9 +41,12 @@ static void IntegralCompressFunction(DataChunk &args, ExpressionState &state, Ve D_ASSERT(args.ColumnCount() == 2); D_ASSERT(args.data[1].GetVectorType() == VectorType::CONSTANT_VECTOR); const auto min_val = ConstantVector::GetData(args.data[1])[0]; - UnaryExecutor::Execute(args.data[0], result, args.size(), [&](const INPUT_TYPE &input) { - return TemplatedIntegralCompress::Operation(input, min_val); - }); + UnaryExecutor::Execute( + args.data[0], result, args.size(), + [&](const INPUT_TYPE &input) { + return TemplatedIntegralCompress::Operation(input, min_val); + }, + FunctionErrors::CANNOT_ERROR); } template @@ -123,9 +127,12 @@ static void IntegralDecompressFunction(DataChunk &args, ExpressionState &state, D_ASSERT(args.data[1].GetVectorType() == VectorType::CONSTANT_VECTOR); D_ASSERT(args.data[1].GetType() == result.GetType()); const auto min_val = ConstantVector::GetData(args.data[1])[0]; - UnaryExecutor::Execute(args.data[0], result, args.size(), [&](const INPUT_TYPE &input) { - return TemplatedIntegralDecompress::Operation(input, min_val); - }); + UnaryExecutor::Execute( + args.data[0], result, args.size(), + [&](const INPUT_TYPE &input) { + return TemplatedIntegralDecompress::Operation(input, min_val); + }, + FunctionErrors::CANNOT_ERROR); } template @@ -190,8 +197,7 @@ unique_ptr CMIntegralDeserialize(Deserializer &deserializer, Scala ScalarFunction CMIntegralCompressFun::GetFunction(const LogicalType &input_type, const LogicalType &result_type) { ScalarFunction result(IntegralCompressFunctionName(result_type), {input_type, input_type}, result_type, - GetIntegralCompressFunctionInputSwitch(input_type, result_type), - CompressedMaterializationFunctions::Bind); + GetIntegralCompressFunctionInputSwitch(input_type, result_type), CMUtils::Bind); result.serialize = CMIntegralSerialize; result.deserialize = CMIntegralDeserialize; return result; @@ -207,16 +213,9 @@ static ScalarFunctionSet GetIntegralCompressFunctionSet(const LogicalType &resul return set; } -void CMIntegralCompressFun::RegisterFunction(BuiltinFunctions &set) { - for (const auto &result_type : CompressedMaterializationFunctions::IntegralTypes()) { - set.AddFunction(GetIntegralCompressFunctionSet(result_type)); - } -} - ScalarFunction CMIntegralDecompressFun::GetFunction(const LogicalType &input_type, const LogicalType &result_type) { ScalarFunction result(IntegralDecompressFunctionName(result_type), {input_type, result_type}, result_type, - GetIntegralDecompressFunctionInputSwitch(input_type, result_type), - CompressedMaterializationFunctions::Bind); + GetIntegralDecompressFunctionInputSwitch(input_type, result_type), CMUtils::Bind); result.serialize = CMIntegralSerialize; result.deserialize = CMIntegralDeserialize; return result; @@ -224,7 +223,7 @@ ScalarFunction CMIntegralDecompressFun::GetFunction(const LogicalType &input_typ static ScalarFunctionSet GetIntegralDecompressFunctionSet(const LogicalType &result_type) { ScalarFunctionSet set(IntegralDecompressFunctionName(result_type)); - for (const auto &input_type : CompressedMaterializationFunctions::IntegralTypes()) { + for (const auto &input_type : CMUtils::IntegralTypes()) { if (GetTypeIdSize(result_type.InternalType()) > GetTypeIdSize(input_type.InternalType())) { set.AddFunction(CMIntegralDecompressFun::GetFunction(input_type, result_type)); } @@ -232,12 +231,52 @@ static ScalarFunctionSet GetIntegralDecompressFunctionSet(const LogicalType &res return set; } -void CMIntegralDecompressFun::RegisterFunction(BuiltinFunctions &set) { - for (const auto &result_type : LogicalType::Integral()) { - if (GetTypeIdSize(result_type.InternalType()) > 1) { - set.AddFunction(GetIntegralDecompressFunctionSet(result_type)); - } - } +ScalarFunctionSet InternalCompressIntegralUtinyintFun::GetFunctions() { + return GetIntegralCompressFunctionSet(LogicalType(LogicalTypeId::UTINYINT)); +} + +ScalarFunctionSet InternalCompressIntegralUsmallintFun::GetFunctions() { + return GetIntegralCompressFunctionSet(LogicalType(LogicalTypeId::USMALLINT)); +} + +ScalarFunctionSet InternalCompressIntegralUintegerFun::GetFunctions() { + return GetIntegralCompressFunctionSet(LogicalType(LogicalTypeId::UINTEGER)); +} + +ScalarFunctionSet InternalCompressIntegralUbigintFun::GetFunctions() { + return GetIntegralCompressFunctionSet(LogicalType(LogicalTypeId::UBIGINT)); +} + +ScalarFunctionSet InternalDecompressIntegralSmallintFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::SMALLINT)); +} + +ScalarFunctionSet InternalDecompressIntegralIntegerFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::INTEGER)); +} + +ScalarFunctionSet InternalDecompressIntegralBigintFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::BIGINT)); +} + +ScalarFunctionSet InternalDecompressIntegralHugeintFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::HUGEINT)); +} + +ScalarFunctionSet InternalDecompressIntegralUsmallintFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::USMALLINT)); +} + +ScalarFunctionSet InternalDecompressIntegralUintegerFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::UINTEGER)); +} + +ScalarFunctionSet InternalDecompressIntegralUbigintFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::UBIGINT)); +} + +ScalarFunctionSet InternalDecompressIntegralUhugeintFun::GetFunctions() { + return GetIntegralDecompressFunctionSet(LogicalType(LogicalTypeId::UHUGEINT)); } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp b/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp index 907b8c45..d1d0734d 100644 --- a/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp +++ b/src/duckdb/src/function/scalar/compressed_materialization/compress_string.cpp @@ -1,5 +1,6 @@ #include "duckdb/common/bswap.hpp" #include "duckdb/function/scalar/compressed_materialization_functions.hpp" +#include "duckdb/function/scalar/compressed_materialization_utils.hpp" #include "duckdb/common/serializer/serializer.hpp" #include "duckdb/common/serializer/deserializer.hpp" @@ -68,7 +69,8 @@ inline uint8_t StringCompress(const string_t &input) { template static void StringCompressFunction(DataChunk &args, ExpressionState &state, Vector &result) { - UnaryExecutor::Execute(args.data[0], result, args.size(), StringCompress); + UnaryExecutor::Execute(args.data[0], result, args.size(), StringCompress, + FunctionErrors::CANNOT_ERROR); } template @@ -161,9 +163,10 @@ template static void StringDecompressFunction(DataChunk &args, ExpressionState &state, Vector &result) { auto &allocator = ExecuteFunctionState::GetFunctionState(state)->Cast().allocator; allocator.Reset(); - UnaryExecutor::Execute(args.data[0], result, args.size(), [&](const INPUT_TYPE &input) { - return StringDecompress(input, allocator); - }); + UnaryExecutor::Execute( + args.data[0], result, args.size(), + [&](const INPUT_TYPE &input) { return StringDecompress(input, allocator); }, + FunctionErrors::CANNOT_ERROR); } template @@ -203,18 +206,12 @@ unique_ptr CMStringCompressDeserialize(Deserializer &deserializer, ScalarFunction CMStringCompressFun::GetFunction(const LogicalType &result_type) { ScalarFunction result(StringCompressFunctionName(result_type), {LogicalType::VARCHAR}, result_type, - GetStringCompressFunctionSwitch(result_type), CompressedMaterializationFunctions::Bind); + GetStringCompressFunctionSwitch(result_type), CMUtils::Bind); result.serialize = CMStringCompressSerialize; result.deserialize = CMStringCompressDeserialize; return result; } -void CMStringCompressFun::RegisterFunction(BuiltinFunctions &set) { - for (const auto &result_type : CompressedMaterializationFunctions::StringTypes()) { - set.AddFunction(CMStringCompressFun::GetFunction(result_type)); - } -} - static void CMStringDecompressSerialize(Serializer &serializer, const optional_ptr bind_data, const ScalarFunction &function) { serializer.WriteProperty(100, "arguments", function.arguments); @@ -229,8 +226,8 @@ unique_ptr CMStringDecompressDeserialize(Deserializer &deserialize ScalarFunction CMStringDecompressFun::GetFunction(const LogicalType &input_type) { ScalarFunction result(StringDecompressFunctionName(), {input_type}, LogicalType::VARCHAR, - GetStringDecompressFunctionSwitch(input_type), CompressedMaterializationFunctions::Bind, - nullptr, nullptr, StringDecompressLocalState::Init); + GetStringDecompressFunctionSwitch(input_type), CMUtils::Bind, nullptr, nullptr, + StringDecompressLocalState::Init); result.serialize = CMStringDecompressSerialize; result.deserialize = CMStringDecompressDeserialize; return result; @@ -238,14 +235,34 @@ ScalarFunction CMStringDecompressFun::GetFunction(const LogicalType &input_type) static ScalarFunctionSet GetStringDecompressFunctionSet() { ScalarFunctionSet set(StringDecompressFunctionName()); - for (const auto &input_type : CompressedMaterializationFunctions::StringTypes()) { + for (const auto &input_type : CMUtils::StringTypes()) { set.AddFunction(CMStringDecompressFun::GetFunction(input_type)); } return set; } -void CMStringDecompressFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction(GetStringDecompressFunctionSet()); +ScalarFunction InternalCompressStringUtinyintFun::GetFunction() { + return CMStringCompressFun::GetFunction(LogicalType(LogicalTypeId::UTINYINT)); +} + +ScalarFunction InternalCompressStringUsmallintFun::GetFunction() { + return CMStringCompressFun::GetFunction(LogicalType(LogicalTypeId::USMALLINT)); +} + +ScalarFunction InternalCompressStringUintegerFun::GetFunction() { + return CMStringCompressFun::GetFunction(LogicalType(LogicalTypeId::UINTEGER)); +} + +ScalarFunction InternalCompressStringUbigintFun::GetFunction() { + return CMStringCompressFun::GetFunction(LogicalType(LogicalTypeId::UBIGINT)); +} + +ScalarFunction InternalCompressStringHugeintFun::GetFunction() { + return CMStringCompressFun::GetFunction(LogicalType(LogicalTypeId::HUGEINT)); +} + +ScalarFunctionSet InternalDecompressStringFun::GetFunctions() { + return GetStringDecompressFunctionSet(); } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/compressed_materialization_functions.cpp b/src/duckdb/src/function/scalar/compressed_materialization_functions.cpp deleted file mode 100644 index 456d1bb8..00000000 --- a/src/duckdb/src/function/scalar/compressed_materialization_functions.cpp +++ /dev/null @@ -1,29 +0,0 @@ -#include "duckdb/function/scalar/compressed_materialization_functions.hpp" - -namespace duckdb { - -const vector CompressedMaterializationFunctions::IntegralTypes() { - return {LogicalType::UTINYINT, LogicalType::USMALLINT, LogicalType::UINTEGER, LogicalType::UBIGINT}; -} - -const vector CompressedMaterializationFunctions::StringTypes() { - return {LogicalType::UTINYINT, LogicalType::USMALLINT, LogicalType::UINTEGER, LogicalType::UBIGINT, - LogicalType::HUGEINT}; -} - -// LCOV_EXCL_START -unique_ptr CompressedMaterializationFunctions::Bind(ClientContext &context, - ScalarFunction &bound_function, - vector> &arguments) { - throw BinderException("Compressed materialization functions are for internal use only!"); -} -// LCOV_EXCL_STOP - -void BuiltinFunctions::RegisterCompressedMaterializationFunctions() { - Register(); - Register(); - Register(); - Register(); -} - -} // namespace duckdb diff --git a/src/duckdb/src/function/scalar/compressed_materialization_utils.cpp b/src/duckdb/src/function/scalar/compressed_materialization_utils.cpp new file mode 100644 index 00000000..2d09a7e7 --- /dev/null +++ b/src/duckdb/src/function/scalar/compressed_materialization_utils.cpp @@ -0,0 +1,21 @@ +#include "duckdb/function/scalar/compressed_materialization_utils.hpp" + +namespace duckdb { + +const vector CMUtils::IntegralTypes() { + return {LogicalType::UTINYINT, LogicalType::USMALLINT, LogicalType::UINTEGER, LogicalType::UBIGINT}; +} + +const vector CMUtils::StringTypes() { + return {LogicalType::UTINYINT, LogicalType::USMALLINT, LogicalType::UINTEGER, LogicalType::UBIGINT, + LogicalType::HUGEINT}; +} + +// LCOV_EXCL_START +unique_ptr CMUtils::Bind(ClientContext &context, ScalarFunction &bound_function, + vector> &arguments) { + throw BinderException("Compressed materialization functions are for internal use only!"); +} +// LCOV_EXCL_STOP + +} // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/blob/create_sort_key.cpp b/src/duckdb/src/function/scalar/create_sort_key.cpp similarity index 89% rename from src/duckdb/src/core_functions/scalar/blob/create_sort_key.cpp rename to src/duckdb/src/function/scalar/create_sort_key.cpp index 5a643809..1cb2acdd 100644 --- a/src/duckdb/src/core_functions/scalar/blob/create_sort_key.cpp +++ b/src/duckdb/src/function/scalar/create_sort_key.cpp @@ -1,10 +1,11 @@ -#include "duckdb/core_functions/scalar/blob_functions.hpp" -#include "duckdb/execution/expression_executor.hpp" +#include "duckdb/function/create_sort_key.hpp" + #include "duckdb/common/enums/order_type.hpp" #include "duckdb/common/radix.hpp" +#include "duckdb/function/scalar/generic_functions.hpp" +#include "duckdb/execution/expression_executor.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression_binder.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" namespace duckdb { @@ -729,6 +730,15 @@ void CreateSortKeyHelpers::CreateSortKey(Vector &input, idx_t input_count, Order CreateSortKeyInternal(sort_key_data, modifiers, result, input_count); } +void CreateSortKeyHelpers::CreateSortKey(DataChunk &input, const vector &modifiers, Vector &result) { + vector> sort_key_data; + D_ASSERT(modifiers.size() == input.ColumnCount()); + for (idx_t r = 0; r < modifiers.size(); r++) { + sort_key_data.push_back(make_uniq(input.data[r], input.size(), modifiers[r])); + } + CreateSortKeyInternal(sort_key_data, modifiers, result, input.size()); +} + void CreateSortKeyHelpers::CreateSortKeyWithValidity(Vector &input, Vector &result, const OrderModifiers &modifiers, const idx_t count) { CreateSortKey(input, count, modifiers, result); @@ -762,23 +772,65 @@ static void CreateSortKeyFunction(DataChunk &args, ExpressionState &state, Vecto //===--------------------------------------------------------------------===// // Decode Sort Key //===--------------------------------------------------------------------===// +struct DecodeSortKeyVectorData { + DecodeSortKeyVectorData(const LogicalType &type, OrderModifiers modifiers) + : flip_bytes(modifiers.order_type == OrderType::DESCENDING) { + null_byte = SortKeyVectorData::NULL_FIRST_BYTE; + valid_byte = SortKeyVectorData::NULL_LAST_BYTE; + if (modifiers.null_type == OrderByNullType::NULLS_LAST) { + std::swap(null_byte, valid_byte); + } + + // NULLS FIRST/NULLS LAST passed in by the user are only respected at the top level + // within nested types NULLS LAST/NULLS FIRST is dependent on ASC/DESC order instead + // don't blame me this is what Postgres does + auto child_null_type = + modifiers.order_type == OrderType::ASCENDING ? OrderByNullType::NULLS_LAST : OrderByNullType::NULLS_FIRST; + OrderModifiers child_modifiers(modifiers.order_type, child_null_type); + switch (type.InternalType()) { + case PhysicalType::STRUCT: { + auto &children = StructType::GetChildTypes(type); + for (auto &child_type : children) { + child_data.emplace_back(child_type.second, child_modifiers); + } + break; + } + case PhysicalType::ARRAY: { + auto &child_type = ArrayType::GetChildType(type); + child_data.emplace_back(child_type, child_modifiers); + break; + } + case PhysicalType::LIST: { + auto &child_type = ListType::GetChildType(type); + child_data.emplace_back(child_type, child_modifiers); + break; + } + default: + break; + } + } + + data_t null_byte; + data_t valid_byte; + vector child_data; + bool flip_bytes; +}; + struct DecodeSortKeyData { - explicit DecodeSortKeyData(OrderModifiers modifiers, string_t &sort_key) - : data(const_data_ptr_cast(sort_key.GetData())), size(sort_key.GetSize()), position(0), - flip_bytes(modifiers.order_type == OrderType::DESCENDING) { + explicit DecodeSortKeyData(string_t &sort_key) + : data(const_data_ptr_cast(sort_key.GetData())), size(sort_key.GetSize()), position(0) { } const_data_ptr_t data; idx_t size; idx_t position; - bool flip_bytes; }; -void DecodeSortKeyRecursive(DecodeSortKeyData &decode_data, SortKeyVectorData &vector_data, Vector &result, +void DecodeSortKeyRecursive(DecodeSortKeyData &decode_data, DecodeSortKeyVectorData &vector_data, Vector &result, idx_t result_idx); template -void TemplatedDecodeSortKey(DecodeSortKeyData &decode_data, SortKeyVectorData &vector_data, Vector &result, +void TemplatedDecodeSortKey(DecodeSortKeyData &decode_data, DecodeSortKeyVectorData &vector_data, Vector &result, idx_t result_idx) { auto validity_byte = decode_data.data[decode_data.position]; decode_data.position++; @@ -787,11 +839,11 @@ void TemplatedDecodeSortKey(DecodeSortKeyData &decode_data, SortKeyVectorData &v FlatVector::Validity(result).SetInvalid(result_idx); return; } - idx_t increment = OP::Decode(decode_data.data + decode_data.position, result, result_idx, decode_data.flip_bytes); + idx_t increment = OP::Decode(decode_data.data + decode_data.position, result, result_idx, vector_data.flip_bytes); decode_data.position += increment; } -void DecodeSortKeyStruct(DecodeSortKeyData &decode_data, SortKeyVectorData &vector_data, Vector &result, +void DecodeSortKeyStruct(DecodeSortKeyData &decode_data, DecodeSortKeyVectorData &vector_data, Vector &result, idx_t result_idx) { // check if the top-level is valid or not auto validity_byte = decode_data.data[decode_data.position]; @@ -805,11 +857,11 @@ void DecodeSortKeyStruct(DecodeSortKeyData &decode_data, SortKeyVectorData &vect auto &child_entries = StructVector::GetEntries(result); for (idx_t c = 0; c < child_entries.size(); c++) { auto &child_entry = child_entries[c]; - DecodeSortKeyRecursive(decode_data, *vector_data.child_data[c], *child_entry, result_idx); + DecodeSortKeyRecursive(decode_data, vector_data.child_data[c], *child_entry, result_idx); } } -void DecodeSortKeyList(DecodeSortKeyData &decode_data, SortKeyVectorData &vector_data, Vector &result, +void DecodeSortKeyList(DecodeSortKeyData &decode_data, DecodeSortKeyVectorData &vector_data, Vector &result, idx_t result_idx) { // check if the top-level is valid or not auto validity_byte = decode_data.data[decode_data.position]; @@ -823,7 +875,7 @@ void DecodeSortKeyList(DecodeSortKeyData &decode_data, SortKeyVectorData &vector // we don't know how many there will be // decode child elements until we encounter the list delimiter auto list_delimiter = SortKeyVectorData::LIST_DELIMITER; - if (decode_data.flip_bytes) { + if (vector_data.flip_bytes) { list_delimiter = ~list_delimiter; } auto list_data = FlatVector::GetData(result); @@ -839,7 +891,7 @@ void DecodeSortKeyList(DecodeSortKeyData &decode_data, SortKeyVectorData &vector ListVector::Reserve(result, new_list_size); // now decode the entry - DecodeSortKeyRecursive(decode_data, *vector_data.child_data[0], child_vector, new_list_size - 1); + DecodeSortKeyRecursive(decode_data, vector_data.child_data[0], child_vector, new_list_size - 1); } // skip the list delimiter decode_data.position++; @@ -849,7 +901,7 @@ void DecodeSortKeyList(DecodeSortKeyData &decode_data, SortKeyVectorData &vector ListVector::SetListSize(result, new_list_size); } -void DecodeSortKeyArray(DecodeSortKeyData &decode_data, SortKeyVectorData &vector_data, Vector &result, +void DecodeSortKeyArray(DecodeSortKeyData &decode_data, DecodeSortKeyVectorData &vector_data, Vector &result, idx_t result_idx) { // check if the top-level is valid or not auto validity_byte = decode_data.data[decode_data.position]; @@ -864,7 +916,7 @@ void DecodeSortKeyArray(DecodeSortKeyData &decode_data, SortKeyVectorData &vecto // however the decoded data still contains a list delimiter // we use this delimiter to verify we successfully decoded the entire array auto list_delimiter = SortKeyVectorData::LIST_DELIMITER; - if (decode_data.flip_bytes) { + if (vector_data.flip_bytes) { list_delimiter = ~list_delimiter; } auto &child_vector = ArrayVector::GetEntry(result); @@ -880,7 +932,7 @@ void DecodeSortKeyArray(DecodeSortKeyData &decode_data, SortKeyVectorData &vecto break; } // now decode the entry - DecodeSortKeyRecursive(decode_data, *vector_data.child_data[0], child_vector, child_start + found_elements - 1); + DecodeSortKeyRecursive(decode_data, vector_data.child_data[0], child_vector, child_start + found_elements - 1); } // skip the list delimiter decode_data.position++; @@ -890,7 +942,7 @@ void DecodeSortKeyArray(DecodeSortKeyData &decode_data, SortKeyVectorData &vecto } } -void DecodeSortKeyRecursive(DecodeSortKeyData &decode_data, SortKeyVectorData &vector_data, Vector &result, +void DecodeSortKeyRecursive(DecodeSortKeyData &decode_data, DecodeSortKeyVectorData &vector_data, Vector &result, idx_t result_idx) { switch (result.GetType().InternalType()) { case PhysicalType::BOOL: @@ -936,7 +988,7 @@ void DecodeSortKeyRecursive(DecodeSortKeyData &decode_data, SortKeyVectorData &v TemplatedDecodeSortKey>(decode_data, vector_data, result, result_idx); break; case PhysicalType::VARCHAR: - if (vector_data.vec.GetType().id() == LogicalTypeId::VARCHAR) { + if (result.GetType().id() == LogicalTypeId::VARCHAR) { TemplatedDecodeSortKey(decode_data, vector_data, result, result_idx); } else { TemplatedDecodeSortKey(decode_data, vector_data, result, result_idx); @@ -952,17 +1004,28 @@ void DecodeSortKeyRecursive(DecodeSortKeyData &decode_data, SortKeyVectorData &v DecodeSortKeyArray(decode_data, vector_data, result, result_idx); break; default: - throw NotImplementedException("Unsupported type %s in DecodeSortKey", vector_data.vec.GetType()); + throw NotImplementedException("Unsupported type %s in DecodeSortKey", result.GetType()); } } void CreateSortKeyHelpers::DecodeSortKey(string_t sort_key, Vector &result, idx_t result_idx, OrderModifiers modifiers) { - SortKeyVectorData sort_key_data(result, 0, modifiers); - DecodeSortKeyData decode_data(modifiers, sort_key); + DecodeSortKeyVectorData sort_key_data(result.GetType(), modifiers); + DecodeSortKeyData decode_data(sort_key); DecodeSortKeyRecursive(decode_data, sort_key_data, result, result_idx); } +void CreateSortKeyHelpers::DecodeSortKey(string_t sort_key, DataChunk &result, idx_t result_idx, + const vector &modifiers) { + DecodeSortKeyData decode_data(sort_key); + D_ASSERT(modifiers.size() == result.ColumnCount()); + for (idx_t c = 0; c < result.ColumnCount(); c++) { + auto &vec = result.data[c]; + DecodeSortKeyVectorData vector_data(vec.GetType(), modifiers[c]); + DecodeSortKeyRecursive(decode_data, vector_data, vec, result_idx); + } +} + ScalarFunction CreateSortKeyFun::GetFunction() { ScalarFunction sort_key_function("create_sort_key", {LogicalType::ANY}, LogicalType::BLOB, CreateSortKeyFunction, CreateSortKeyBind); diff --git a/src/duckdb/src/core_functions/scalar/date/strftime.cpp b/src/duckdb/src/function/scalar/date/strftime.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/date/strftime.cpp rename to src/duckdb/src/function/scalar/date/strftime.cpp index 8aa34d32..1671ff54 100644 --- a/src/duckdb/src/core_functions/scalar/date/strftime.cpp +++ b/src/duckdb/src/function/scalar/date/strftime.cpp @@ -4,7 +4,7 @@ #include "duckdb/execution/expression_executor.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression/bound_parameter_expression.hpp" -#include "duckdb/core_functions/scalar/date_functions.hpp" +#include "duckdb/function/scalar/date_functions.hpp" #include #include @@ -94,7 +94,7 @@ static void StrfTimeFunctionTimestampNS(DataChunk &args, ExpressionState &state, } ScalarFunctionSet StrfTimeFun::GetFunctions() { - ScalarFunctionSet strftime; + ScalarFunctionSet strftime("strftime"); strftime.AddFunction(ScalarFunction({LogicalType::DATE, LogicalType::VARCHAR}, LogicalType::VARCHAR, StrfTimeFunctionDate, StrfTimeBindFunction)); @@ -296,7 +296,7 @@ struct StrpTimeFunction { }; ScalarFunctionSet StrpTimeFun::GetFunctions() { - ScalarFunctionSet strptime; + ScalarFunctionSet strptime("strptime"); const auto list_type = LogicalType::LIST(LogicalType::VARCHAR); auto fun = ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::TIMESTAMP, @@ -312,7 +312,7 @@ ScalarFunctionSet StrpTimeFun::GetFunctions() { } ScalarFunctionSet TryStrpTimeFun::GetFunctions() { - ScalarFunctionSet try_strptime; + ScalarFunctionSet try_strptime("try_strptime"); const auto list_type = LogicalType::LIST(LogicalType::VARCHAR); auto fun = ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::TIMESTAMP, diff --git a/src/duckdb/src/function/scalar/generic/constant_or_null.cpp b/src/duckdb/src/function/scalar/generic/constant_or_null.cpp index 05b0ebce..32b9f855 100644 --- a/src/duckdb/src/function/scalar/generic/constant_or_null.cpp +++ b/src/duckdb/src/function/scalar/generic/constant_or_null.cpp @@ -1,3 +1,4 @@ +#include "duckdb/function/scalar/generic_common.hpp" #include "duckdb/function/scalar/generic_functions.hpp" #include "duckdb/common/operator/comparison_operators.hpp" #include "duckdb/execution/expression_executor.hpp" @@ -65,10 +66,6 @@ static void ConstantOrNullFunction(DataChunk &args, ExpressionState &state, Vect } } -ScalarFunction ConstantOrNull::GetFunction(const LogicalType &return_type) { - return ScalarFunction("constant_or_null", {return_type, LogicalType::ANY}, return_type, ConstantOrNullFunction); -} - unique_ptr ConstantOrNull::Bind(Value value) { return make_uniq(std::move(value)); } @@ -97,11 +94,12 @@ unique_ptr ConstantOrNullBind(ClientContext &context, ScalarFuncti return make_uniq(std::move(value)); } -void ConstantOrNull::RegisterFunction(BuiltinFunctions &set) { - auto fun = ConstantOrNull::GetFunction(LogicalType::ANY); +ScalarFunction ConstantOrNullFun::GetFunction() { + auto fun = ScalarFunction("constant_or_null", {LogicalType::ANY, LogicalType::ANY}, LogicalType::ANY, + ConstantOrNullFunction); fun.bind = ConstantOrNullBind; fun.varargs = LogicalType::ANY; - set.AddFunction(fun); + return fun; } } // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/generic/error.cpp b/src/duckdb/src/function/scalar/generic/error.cpp similarity index 90% rename from src/duckdb/src/core_functions/scalar/generic/error.cpp rename to src/duckdb/src/function/scalar/generic/error.cpp index e9047378..7563b75a 100644 --- a/src/duckdb/src/core_functions/scalar/generic/error.cpp +++ b/src/duckdb/src/function/scalar/generic/error.cpp @@ -1,4 +1,5 @@ -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "duckdb/function/scalar/generic_functions.hpp" + #include namespace duckdb { diff --git a/src/duckdb/src/function/scalar/generic/getvariable.cpp b/src/duckdb/src/function/scalar/generic/getvariable.cpp index b46ab60d..14d32954 100644 --- a/src/duckdb/src/function/scalar/generic/getvariable.cpp +++ b/src/duckdb/src/function/scalar/generic/getvariable.cpp @@ -49,10 +49,10 @@ unique_ptr BindGetVariableExpression(FunctionBindExpressionInput &in return make_uniq(bind_data.value); } -void GetVariableFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunction GetVariableFun::GetFunction() { ScalarFunction getvar("getvariable", {LogicalType::VARCHAR}, LogicalType::ANY, nullptr, GetVariableBind, nullptr); getvar.bind_expression = BindGetVariableExpression; - set.AddFunction(getvar); + return getvar; } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/generic_functions.cpp b/src/duckdb/src/function/scalar/generic_functions.cpp deleted file mode 100644 index 27330ab1..00000000 --- a/src/duckdb/src/function/scalar/generic_functions.cpp +++ /dev/null @@ -1,11 +0,0 @@ -#include "duckdb/function/scalar/generic_functions.hpp" - -namespace duckdb { - -void BuiltinFunctions::RegisterGenericFunctions() { - Register(); - Register(); - Register(); -} - -} // namespace duckdb diff --git a/src/duckdb/src/function/scalar/list/contains_or_position.cpp b/src/duckdb/src/function/scalar/list/contains_or_position.cpp index c10e467b..309d78c3 100644 --- a/src/duckdb/src/function/scalar/list/contains_or_position.cpp +++ b/src/duckdb/src/function/scalar/list/contains_or_position.cpp @@ -1,3 +1,4 @@ +#include "duckdb/function/scalar/list_functions.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression_binder.hpp" @@ -66,11 +67,4 @@ ScalarFunction ListPositionFun::GetFunction() { ListSearchFunction, ListSearchBind); } -void ListContainsFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"list_contains", "array_contains", "list_has", "array_has"}, GetFunction()); -} - -void ListPositionFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"list_position", "list_indexof", "array_position", "array_indexof"}, GetFunction()); -} } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/list/list_extract.cpp b/src/duckdb/src/function/scalar/list/list_extract.cpp index 37176f23..55017f5c 100644 --- a/src/duckdb/src/function/scalar/list/list_extract.cpp +++ b/src/duckdb/src/function/scalar/list/list_extract.cpp @@ -4,7 +4,8 @@ #include "duckdb/common/uhugeint.hpp" #include "duckdb/common/vector_operations/binary_executor.hpp" #include "duckdb/function/scalar/nested_functions.hpp" -#include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" +#include "duckdb/function/scalar/list_functions.hpp" #include "duckdb/parser/expression/bound_expression.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -105,9 +106,8 @@ static void ExecuteListExtract(Vector &result, Vector &list, Vector &offsets, co static void ExecuteStringExtract(Vector &result, Vector &input_vector, Vector &subscript_vector, const idx_t count) { BinaryExecutor::Execute( - input_vector, subscript_vector, result, count, [&](string_t input_string, int64_t subscript) { - return SubstringFun::SubstringUnicode(result, input_string, subscript, 1); - }); + input_vector, subscript_vector, result, count, + [&](string_t input_string, int64_t subscript) { return SubstringUnicode(result, input_string, subscript, 1); }); } static void ListExtractFunction(DataChunk &args, ExpressionState &state, Vector &result) { @@ -156,29 +156,34 @@ static unique_ptr ListExtractStats(ClientContext &context, Funct return child_copy.ToUnique(); } -void ListExtractFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunctionSet ListExtractFun::GetFunctions() { + ScalarFunctionSet list_extract_set("list_extract"); + + // the arguments and return types are actually set in the binder function + ScalarFunction lfun({LogicalType::LIST(LogicalType::ANY), LogicalType::BIGINT}, LogicalType::ANY, + ListExtractFunction, ListExtractBind, nullptr, ListExtractStats); + + ScalarFunction sfun({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR, ListExtractFunction); + + list_extract_set.AddFunction(lfun); + list_extract_set.AddFunction(sfun); + return list_extract_set; +} + +ScalarFunctionSet ArrayExtractFun::GetFunctions() { + ScalarFunctionSet array_extract_set("array_extract"); + // the arguments and return types are actually set in the binder function ScalarFunction lfun({LogicalType::LIST(LogicalType::ANY), LogicalType::BIGINT}, LogicalType::ANY, ListExtractFunction, ListExtractBind, nullptr, ListExtractStats); ScalarFunction sfun({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR, ListExtractFunction); - ScalarFunctionSet list_extract("list_extract"); - list_extract.AddFunction(lfun); - list_extract.AddFunction(sfun); - set.AddFunction(list_extract); - - ScalarFunctionSet list_element("list_element"); - list_element.AddFunction(lfun); - list_element.AddFunction(sfun); - set.AddFunction(list_element); - - ScalarFunctionSet array_extract("array_extract"); - array_extract.AddFunction(lfun); - array_extract.AddFunction(sfun); - array_extract.AddFunction(StructExtractFun::KeyExtractFunction()); - array_extract.AddFunction(StructExtractFun::IndexExtractFunction()); - set.AddFunction(array_extract); + array_extract_set.AddFunction(lfun); + array_extract_set.AddFunction(sfun); + array_extract_set.AddFunction(GetKeyExtractFunction()); + array_extract_set.AddFunction(GetIndexExtractFunction()); + return array_extract_set; } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/list/list_resize.cpp b/src/duckdb/src/function/scalar/list/list_resize.cpp index 86d21fd5..dc20d00b 100644 --- a/src/duckdb/src/function/scalar/list/list_resize.cpp +++ b/src/duckdb/src/function/scalar/list/list_resize.cpp @@ -1,5 +1,6 @@ #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/function/scalar/nested_functions.hpp" +#include "duckdb/function/scalar/list_functions.hpp" #include "duckdb/function/scalar_function.hpp" #include "duckdb/function/built_in_functions.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" @@ -154,7 +155,7 @@ static unique_ptr ListResizeBind(ClientContext &context, ScalarFun return make_uniq(bound_function.return_type); } -void ListResizeFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunctionSet ListResizeFun::GetFunctions() { ScalarFunction simple_fun({LogicalType::LIST(LogicalTypeId::ANY), LogicalTypeId::ANY}, LogicalType::LIST(LogicalTypeId::ANY), ListResizeFunction, ListResizeBind); simple_fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING; @@ -163,15 +164,10 @@ void ListResizeFun::RegisterFunction(BuiltinFunctions &set) { LogicalType::LIST(LogicalTypeId::ANY), ListResizeFunction, ListResizeBind); default_value_fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING; - ScalarFunctionSet list_resize("list_resize"); - list_resize.AddFunction(simple_fun); - list_resize.AddFunction(default_value_fun); - set.AddFunction(list_resize); - - ScalarFunctionSet array_resize("array_resize"); - array_resize.AddFunction(simple_fun); - array_resize.AddFunction(default_value_fun); - set.AddFunction(array_resize); + ScalarFunctionSet list_resize_set("list_resize"); + list_resize_set.AddFunction(simple_fun); + list_resize_set.AddFunction(default_value_fun); + return list_resize_set; } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/list/list_select.cpp b/src/duckdb/src/function/scalar/list/list_select.cpp index 07413977..55c6a9f1 100644 --- a/src/duckdb/src/function/scalar/list/list_select.cpp +++ b/src/duckdb/src/function/scalar/list/list_select.cpp @@ -4,6 +4,7 @@ #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression/bound_parameter_expression.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" +#include "duckdb/function/scalar/list_functions.hpp" namespace duckdb { @@ -179,8 +180,4 @@ ScalarFunction ListSelectFun::GetFunction() { return fun; } -void ListSelectFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"list_select", "array_select"}, ListSelectFun::GetFunction()); - set.AddFunction({"list_where", "array_where"}, ListWhereFun::GetFunction()); -} } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/list/list_zip.cpp b/src/duckdb/src/function/scalar/list/list_zip.cpp index 6e24689c..ef39a989 100644 --- a/src/duckdb/src/function/scalar/list/list_zip.cpp +++ b/src/duckdb/src/function/scalar/list/list_zip.cpp @@ -1,4 +1,5 @@ #include "duckdb/common/types/data_chunk.hpp" +#include "duckdb/function/scalar/list_functions.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression_binder.hpp" @@ -111,7 +112,7 @@ static void ListZipFunction(DataChunk &args, ExpressionState &state, Vector &res offset += len; } for (idx_t child_idx = 0; child_idx < args_size; child_idx++) { - if (!(args.data[child_idx].GetType() == LogicalType::SQLNULL)) { + if (args.data[child_idx].GetType() != LogicalType::SQLNULL) { struct_entries[child_idx]->Slice(ListVector::GetEntry(args.data[child_idx]), selections[child_idx], result_size); } @@ -131,7 +132,9 @@ static unique_ptr ListZipBind(ClientContext &context, ScalarFuncti throw BinderException("Provide at least one argument to " + bound_function.name); } if (arguments[size - 1]->return_type.id() == LogicalTypeId::BOOLEAN) { - size--; + if (--size == 0) { + throw BinderException("Provide at least one list argument to " + bound_function.name); + } } case_insensitive_set_t struct_names; @@ -160,11 +163,8 @@ ScalarFunction ListZipFun::GetFunction() { auto fun = ScalarFunction({}, LogicalType::LIST(LogicalTypeId::STRUCT), ListZipFunction, ListZipBind); fun.varargs = LogicalType::ANY; - fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING; // Special handling needed? + fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING; return fun; } -void ListZipFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"list_zip", "array_zip"}, GetFunction()); -} } // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/map/map_contains.cpp b/src/duckdb/src/function/scalar/map/map_contains.cpp similarity index 97% rename from src/duckdb/src/core_functions/scalar/map/map_contains.cpp rename to src/duckdb/src/function/scalar/map/map_contains.cpp index 19a46015..068e67bc 100644 --- a/src/duckdb/src/core_functions/scalar/map/map_contains.cpp +++ b/src/duckdb/src/function/scalar/map/map_contains.cpp @@ -1,6 +1,6 @@ -#include "duckdb/core_functions/scalar/map_functions.hpp" #include "duckdb/function/scalar/list/contains_or_position.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" +#include "duckdb/function/scalar/map_functions.hpp" namespace duckdb { @@ -48,9 +48,9 @@ static unique_ptr MapContainsBind(ClientContext &context, ScalarFu } ScalarFunction MapContainsFun::GetFunction() { - ScalarFunction fun("map_contains", {LogicalType::MAP(LogicalType::ANY, LogicalType::ANY), LogicalType::ANY}, LogicalType::BOOLEAN, MapContainsFunction, MapContainsBind); return fun; } + } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/nested_functions.cpp b/src/duckdb/src/function/scalar/nested_functions.cpp index 8685ad4a..2d5359c4 100644 --- a/src/duckdb/src/function/scalar/nested_functions.cpp +++ b/src/duckdb/src/function/scalar/nested_functions.cpp @@ -37,15 +37,4 @@ void MapUtil::ReinterpretMap(Vector &result, Vector &input, idx_t count) { result.SetVectorType(input.GetVectorType()); } -void BuiltinFunctions::RegisterNestedFunctions() { - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); -} - } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/operators/add.cpp b/src/duckdb/src/function/scalar/operator/add.cpp similarity index 99% rename from src/duckdb/src/function/scalar/operators/add.cpp rename to src/duckdb/src/function/scalar/operator/add.cpp index f3b86d52..fa2f1a9e 100644 --- a/src/duckdb/src/function/scalar/operators/add.cpp +++ b/src/duckdb/src/function/scalar/operator/add.cpp @@ -90,7 +90,8 @@ template <> timestamp_t AddOperator::Operation(date_t left, interval_t right) { if (left == date_t::infinity()) { return timestamp_t::infinity(); - } else if (left == date_t::ninfinity()) { + } + if (left == date_t::ninfinity()) { return timestamp_t::ninfinity(); } return Interval::Add(Timestamp::FromDatetime(left, dtime_t(0)), right); diff --git a/src/duckdb/src/function/scalar/operators/arithmetic.cpp b/src/duckdb/src/function/scalar/operator/arithmetic.cpp similarity index 91% rename from src/duckdb/src/function/scalar/operators/arithmetic.cpp rename to src/duckdb/src/function/scalar/operator/arithmetic.cpp index 03789783..cc590591 100644 --- a/src/duckdb/src/function/scalar/operators/arithmetic.cpp +++ b/src/duckdb/src/function/scalar/operator/arithmetic.cpp @@ -12,6 +12,7 @@ #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/function/scalar/operators.hpp" +#include "duckdb/function/scalar/operator_functions.hpp" #include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -298,7 +299,7 @@ unique_ptr NopDecimalBind(ClientContext &context, ScalarFunction & return nullptr; } -ScalarFunction AddFun::GetFunction(const LogicalType &type) { +ScalarFunction AddFunction::GetFunction(const LogicalType &type) { D_ASSERT(type.IsNumeric()); if (type.id() == LogicalTypeId::DECIMAL) { return ScalarFunction("+", {type}, type, ScalarFunction::NopFunction, NopDecimalBind); @@ -307,7 +308,7 @@ ScalarFunction AddFun::GetFunction(const LogicalType &type) { } } -ScalarFunction AddFun::GetFunction(const LogicalType &left_type, const LogicalType &right_type) { +ScalarFunction AddFunction::GetFunction(const LogicalType &left_type, const LogicalType &right_type) { if (left_type.IsNumeric() && left_type.id() == right_type.id()) { if (left_type.id() == LogicalTypeId::DECIMAL) { auto function = ScalarFunction("+", {left_type, right_type}, left_type, nullptr, @@ -393,52 +394,49 @@ ScalarFunction AddFun::GetFunction(const LogicalType &left_type, const LogicalTy break; } // LCOV_EXCL_START - throw NotImplementedException("AddFun for types %s, %s", EnumUtil::ToString(left_type.id()), + throw NotImplementedException("AddFunction for types %s, %s", EnumUtil::ToString(left_type.id()), EnumUtil::ToString(right_type.id())); // LCOV_EXCL_STOP } -void AddFun::RegisterFunction(BuiltinFunctions &set) { - ScalarFunctionSet functions("+"); +ScalarFunctionSet OperatorAddFun::GetFunctions() { + ScalarFunctionSet add("+"); for (auto &type : LogicalType::Numeric()) { // unary add function is a nop, but only exists for numeric types - functions.AddFunction(GetFunction(type)); + add.AddFunction(AddFunction::GetFunction(type)); // binary add function adds two numbers together - functions.AddFunction(GetFunction(type, type)); + add.AddFunction(AddFunction::GetFunction(type, type)); } // we can add integers to dates - functions.AddFunction(GetFunction(LogicalType::DATE, LogicalType::INTEGER)); - functions.AddFunction(GetFunction(LogicalType::INTEGER, LogicalType::DATE)); + add.AddFunction(AddFunction::GetFunction(LogicalType::DATE, LogicalType::INTEGER)); + add.AddFunction(AddFunction::GetFunction(LogicalType::INTEGER, LogicalType::DATE)); // we can add intervals together - functions.AddFunction(GetFunction(LogicalType::INTERVAL, LogicalType::INTERVAL)); + add.AddFunction(AddFunction::GetFunction(LogicalType::INTERVAL, LogicalType::INTERVAL)); // we can add intervals to dates/times/timestamps - functions.AddFunction(GetFunction(LogicalType::DATE, LogicalType::INTERVAL)); - functions.AddFunction(GetFunction(LogicalType::INTERVAL, LogicalType::DATE)); + add.AddFunction(AddFunction::GetFunction(LogicalType::DATE, LogicalType::INTERVAL)); + add.AddFunction(AddFunction::GetFunction(LogicalType::INTERVAL, LogicalType::DATE)); - functions.AddFunction(GetFunction(LogicalType::TIME, LogicalType::INTERVAL)); - functions.AddFunction(GetFunction(LogicalType::INTERVAL, LogicalType::TIME)); + add.AddFunction(AddFunction::GetFunction(LogicalType::TIME, LogicalType::INTERVAL)); + add.AddFunction(AddFunction::GetFunction(LogicalType::INTERVAL, LogicalType::TIME)); - functions.AddFunction(GetFunction(LogicalType::TIMESTAMP, LogicalType::INTERVAL)); - functions.AddFunction(GetFunction(LogicalType::INTERVAL, LogicalType::TIMESTAMP)); + add.AddFunction(AddFunction::GetFunction(LogicalType::TIMESTAMP, LogicalType::INTERVAL)); + add.AddFunction(AddFunction::GetFunction(LogicalType::INTERVAL, LogicalType::TIMESTAMP)); - functions.AddFunction(GetFunction(LogicalType::TIME_TZ, LogicalType::INTERVAL)); - functions.AddFunction(GetFunction(LogicalType::INTERVAL, LogicalType::TIME_TZ)); + add.AddFunction(AddFunction::GetFunction(LogicalType::TIME_TZ, LogicalType::INTERVAL)); + add.AddFunction(AddFunction::GetFunction(LogicalType::INTERVAL, LogicalType::TIME_TZ)); // we can add times to dates - functions.AddFunction(GetFunction(LogicalType::TIME, LogicalType::DATE)); - functions.AddFunction(GetFunction(LogicalType::DATE, LogicalType::TIME)); + add.AddFunction(AddFunction::GetFunction(LogicalType::TIME, LogicalType::DATE)); + add.AddFunction(AddFunction::GetFunction(LogicalType::DATE, LogicalType::TIME)); // we can add times with time zones (offsets) to dates - functions.AddFunction(GetFunction(LogicalType::TIME_TZ, LogicalType::DATE)); - functions.AddFunction(GetFunction(LogicalType::DATE, LogicalType::TIME_TZ)); + add.AddFunction(AddFunction::GetFunction(LogicalType::TIME_TZ, LogicalType::DATE)); + add.AddFunction(AddFunction::GetFunction(LogicalType::DATE, LogicalType::TIME_TZ)); // we can add lists together - functions.AddFunction(ListConcatFun::GetFunction()); + add.AddFunction(ListConcatFun::GetFunction()); - set.AddFunction(functions); - - functions.name = "add"; - set.AddFunction(functions); + return add; } //===--------------------------------------------------------------------===// @@ -578,7 +576,7 @@ static unique_ptr NegateBindStatistics(ClientContext &context, F return stats.ToUnique(); } -ScalarFunction SubtractFun::GetFunction(const LogicalType &type) { +ScalarFunction SubtractFunction::GetFunction(const LogicalType &type) { if (type.id() == LogicalTypeId::INTERVAL) { return ScalarFunction("-", {type}, type, ScalarFunction::UnaryFunction); } else if (type.id() == LogicalTypeId::DECIMAL) { @@ -590,7 +588,7 @@ ScalarFunction SubtractFun::GetFunction(const LogicalType &type) { } } -ScalarFunction SubtractFun::GetFunction(const LogicalType &left_type, const LogicalType &right_type) { +ScalarFunction SubtractFunction::GetFunction(const LogicalType &left_type, const LogicalType &right_type) { if (left_type.IsNumeric() && left_type.id() == right_type.id()) { if (left_type.id() == LogicalTypeId::DECIMAL) { auto function = @@ -664,33 +662,31 @@ ScalarFunction SubtractFun::GetFunction(const LogicalType &left_type, const Logi // LCOV_EXCL_STOP } -void SubtractFun::RegisterFunction(BuiltinFunctions &set) { - ScalarFunctionSet functions("-"); +ScalarFunctionSet OperatorSubtractFun::GetFunctions() { + ScalarFunctionSet subtract("-"); for (auto &type : LogicalType::Numeric()) { // unary subtract function, negates the input (i.e. multiplies by -1) - functions.AddFunction(GetFunction(type)); + subtract.AddFunction(SubtractFunction::GetFunction(type)); // binary subtract function "a - b", subtracts b from a - functions.AddFunction(GetFunction(type, type)); + subtract.AddFunction(SubtractFunction::GetFunction(type, type)); } // we can subtract dates from each other - functions.AddFunction(GetFunction(LogicalType::DATE, LogicalType::DATE)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::DATE, LogicalType::DATE)); // we can subtract integers from dates - functions.AddFunction(GetFunction(LogicalType::DATE, LogicalType::INTEGER)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::DATE, LogicalType::INTEGER)); // we can subtract timestamps from each other - functions.AddFunction(GetFunction(LogicalType::TIMESTAMP, LogicalType::TIMESTAMP)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::TIMESTAMP, LogicalType::TIMESTAMP)); // we can subtract intervals from each other - functions.AddFunction(GetFunction(LogicalType::INTERVAL, LogicalType::INTERVAL)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::INTERVAL, LogicalType::INTERVAL)); // we can subtract intervals from dates/times/timestamps, but not the other way around - functions.AddFunction(GetFunction(LogicalType::DATE, LogicalType::INTERVAL)); - functions.AddFunction(GetFunction(LogicalType::TIME, LogicalType::INTERVAL)); - functions.AddFunction(GetFunction(LogicalType::TIMESTAMP, LogicalType::INTERVAL)); - functions.AddFunction(GetFunction(LogicalType::TIME_TZ, LogicalType::INTERVAL)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::DATE, LogicalType::INTERVAL)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::TIME, LogicalType::INTERVAL)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::TIMESTAMP, LogicalType::INTERVAL)); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::TIME_TZ, LogicalType::INTERVAL)); // we can negate intervals - functions.AddFunction(GetFunction(LogicalType::INTERVAL)); - set.AddFunction(functions); + subtract.AddFunction(SubtractFunction::GetFunction(LogicalType::INTERVAL)); - functions.name = "subtract"; - set.AddFunction(functions); + return subtract; } //===--------------------------------------------------------------------===// @@ -803,34 +799,32 @@ unique_ptr BindDecimalMultiply(ClientContext &context, ScalarFunct return std::move(bind_data); } -void MultiplyFun::RegisterFunction(BuiltinFunctions &set) { - ScalarFunctionSet functions("*"); +ScalarFunctionSet OperatorMultiplyFun::GetFunctions() { + ScalarFunctionSet multiply("*"); for (auto &type : LogicalType::Numeric()) { if (type.id() == LogicalTypeId::DECIMAL) { ScalarFunction function({type, type}, type, nullptr, BindDecimalMultiply); function.serialize = SerializeDecimalArithmetic; function.deserialize = DeserializeDecimalArithmetic; - functions.AddFunction(function); + multiply.AddFunction(function); } else if (TypeIsIntegral(type.InternalType())) { - functions.AddFunction(ScalarFunction( + multiply.AddFunction(ScalarFunction( {type, type}, type, GetScalarIntegerFunction(type.InternalType()), nullptr, nullptr, PropagateNumericStats)); } else { - functions.AddFunction( + multiply.AddFunction( ScalarFunction({type, type}, type, GetScalarBinaryFunction(type.InternalType()))); } } - functions.AddFunction( + multiply.AddFunction( ScalarFunction({LogicalType::INTERVAL, LogicalType::BIGINT}, LogicalType::INTERVAL, ScalarFunction::BinaryFunction)); - functions.AddFunction( + multiply.AddFunction( ScalarFunction({LogicalType::BIGINT, LogicalType::INTERVAL}, LogicalType::INTERVAL, ScalarFunction::BinaryFunction)); - set.AddFunction(functions); - functions.name = "multiply"; - set.AddFunction(functions); + return multiply; } //===--------------------------------------------------------------------===// @@ -965,7 +959,7 @@ unique_ptr BindBinaryFloatingPoint(ClientContext &context, ScalarF return nullptr; } -void DivideFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunctionSet OperatorFloatDivideFun::GetFunctions() { ScalarFunctionSet fp_divide("/"); fp_divide.AddFunction(ScalarFunction({LogicalType::FLOAT, LogicalType::FLOAT}, LogicalType::FLOAT, nullptr, BindBinaryFloatingPoint)); @@ -974,8 +968,10 @@ void DivideFun::RegisterFunction(BuiltinFunctions &set) { fp_divide.AddFunction( ScalarFunction({LogicalType::INTERVAL, LogicalType::BIGINT}, LogicalType::INTERVAL, BinaryScalarFunctionIgnoreZero)); - set.AddFunction(fp_divide); + return fp_divide; +} +ScalarFunctionSet OperatorIntegerDivideFun::GetFunctions() { ScalarFunctionSet full_divide("//"); for (auto &type : LogicalType::Numeric()) { if (type.id() == LogicalTypeId::DECIMAL) { @@ -985,10 +981,7 @@ void DivideFun::RegisterFunction(BuiltinFunctions &set) { ScalarFunction({type, type}, type, GetBinaryFunctionIgnoreZero(type.InternalType()))); } } - set.AddFunction(full_divide); - - full_divide.name = "divide"; - set.AddFunction(full_divide); + return full_divide; } //===--------------------------------------------------------------------===// @@ -1031,21 +1024,19 @@ hugeint_t ModuloOperator::Operation(hugeint_t left, hugeint_t right) { return left % right; } -void ModFun::RegisterFunction(BuiltinFunctions &set) { - ScalarFunctionSet functions("%"); +ScalarFunctionSet OperatorModuloFun::GetFunctions() { + ScalarFunctionSet modulo("%"); for (auto &type : LogicalType::Numeric()) { if (type.id() == LogicalTypeId::FLOAT || type.id() == LogicalTypeId::DOUBLE) { - functions.AddFunction(ScalarFunction({type, type}, type, nullptr, BindBinaryFloatingPoint)); + modulo.AddFunction(ScalarFunction({type, type}, type, nullptr, BindBinaryFloatingPoint)); } else if (type.id() == LogicalTypeId::DECIMAL) { - functions.AddFunction(ScalarFunction({type, type}, type, nullptr, BindDecimalModulo)); + modulo.AddFunction(ScalarFunction({type, type}, type, nullptr, BindDecimalModulo)); } else { - functions.AddFunction( + modulo.AddFunction( ScalarFunction({type, type}, type, GetBinaryFunctionIgnoreZero(type.InternalType()))); } } - set.AddFunction(functions); - functions.name = "mod"; - set.AddFunction(functions); + return modulo; } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/operators/multiply.cpp b/src/duckdb/src/function/scalar/operator/multiply.cpp similarity index 100% rename from src/duckdb/src/function/scalar/operators/multiply.cpp rename to src/duckdb/src/function/scalar/operator/multiply.cpp diff --git a/src/duckdb/src/function/scalar/operators/subtract.cpp b/src/duckdb/src/function/scalar/operator/subtract.cpp similarity index 100% rename from src/duckdb/src/function/scalar/operators/subtract.cpp rename to src/duckdb/src/function/scalar/operator/subtract.cpp diff --git a/src/duckdb/src/function/scalar/operators.cpp b/src/duckdb/src/function/scalar/operators.cpp deleted file mode 100644 index 2862b13c..00000000 --- a/src/duckdb/src/function/scalar/operators.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "duckdb/function/scalar/operators.hpp" -#include "duckdb/common/exception.hpp" - -namespace duckdb { - -void BuiltinFunctions::RegisterOperators() { - Register(); - Register(); - Register(); - Register(); - Register(); -} - -} // namespace duckdb diff --git a/src/duckdb/src/function/scalar/sequence/nextval.cpp b/src/duckdb/src/function/scalar/sequence/nextval.cpp index f25fac67..b5ae85c8 100644 --- a/src/duckdb/src/function/scalar/sequence/nextval.cpp +++ b/src/duckdb/src/function/scalar/sequence/nextval.cpp @@ -1,4 +1,5 @@ #include "duckdb/function/scalar/sequence_functions.hpp" +#include "duckdb/function/scalar/sequence_utils.hpp" #include "duckdb/catalog/catalog.hpp" #include "duckdb/catalog/dependency_list.hpp" @@ -28,15 +29,23 @@ struct NextSequenceValueOperator { } }; -SequenceCatalogEntry &BindSequence(ClientContext &context, string &catalog, string &schema, const string &name) { +SequenceCatalogEntry &BindSequence(Binder &binder, string &catalog, string &schema, const string &name) { // fetch the sequence from the catalog + Binder::BindSchemaOrCatalog(binder.context, catalog, schema); + return binder.EntryRetriever() + .GetEntry(CatalogType::SEQUENCE_ENTRY, catalog, schema, name) + ->Cast(); +} + +SequenceCatalogEntry &BindSequenceFromContext(ClientContext &context, string &catalog, string &schema, + const string &name) { Binder::BindSchemaOrCatalog(context, catalog, schema); return Catalog::GetEntry(context, catalog, schema, name); } -SequenceCatalogEntry &BindSequence(ClientContext &context, const string &name) { +SequenceCatalogEntry &BindSequence(Binder &binder, const string &name) { auto qname = QualifiedName::Parse(name); - return BindSequence(context, qname.catalog, qname.schema, qname.name); + return BindSequence(binder, qname.catalog, qname.schema, qname.name); } struct NextValLocalState : public FunctionLocalState { @@ -80,30 +89,23 @@ static void NextValFunction(DataChunk &args, ExpressionState &state, Vector &res } } -static unique_ptr NextValBind(ClientContext &context, ScalarFunction &, +static unique_ptr NextValBind(ScalarFunctionBindInput &bind_input, ScalarFunction &, vector> &arguments) { if (!arguments[0]->IsFoldable()) { throw NotImplementedException( "currval/nextval requires a constant sequence - non-constant sequences are no longer supported"); } + auto &binder = bind_input.binder; // parameter to nextval function is a foldable constant // evaluate the constant and perform the catalog lookup already - auto seqname = ExpressionExecutor::EvaluateScalar(context, *arguments[0]); + auto seqname = ExpressionExecutor::EvaluateScalar(binder.context, *arguments[0]); if (seqname.IsNull()) { return nullptr; } - auto &seq = BindSequence(context, seqname.ToString()); + auto &seq = BindSequence(binder, seqname.ToString()); return make_uniq(seq); } -static void NextValDependency(BoundFunctionExpression &expr, LogicalDependencyList &dependencies) { - if (!expr.bind_info) { - return; - } - auto &info = expr.bind_info->Cast(); - dependencies.AddDependency(info.sequence); -} - void Serialize(Serializer &serializer, const optional_ptr bind_data, const ScalarFunction &) { auto &next_val_bind_data = bind_data->Cast(); serializer.WritePropertyWithDefault(100, "sequence_create_info", next_val_bind_data.create_info); @@ -117,7 +119,7 @@ unique_ptr Deserialize(Deserializer &deserializer, ScalarFunction } auto &seq_info = create_info->Cast(); auto &context = deserializer.Get(); - auto &sequence = BindSequence(context, seq_info.catalog, seq_info.schema, seq_info.name); + auto &sequence = BindSequenceFromContext(context, seq_info.catalog, seq_info.schema, seq_info.name); return make_uniq(sequence); } @@ -129,25 +131,27 @@ void NextValModifiedDatabases(ClientContext &context, FunctionModifiedDatabasesI input.properties.RegisterDBModify(seq.sequence.ParentCatalog(), context); } -void NextvalFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunction NextvalFun::GetFunction() { ScalarFunction next_val("nextval", {LogicalType::VARCHAR}, LogicalType::BIGINT, - NextValFunction, NextValBind, NextValDependency); + NextValFunction, nullptr, nullptr); + next_val.bind_extended = NextValBind; next_val.stability = FunctionStability::VOLATILE; next_val.serialize = Serialize; next_val.deserialize = Deserialize; next_val.get_modified_databases = NextValModifiedDatabases; next_val.init_local_state = NextValLocalFunction; - set.AddFunction(next_val); + return next_val; } -void CurrvalFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunction CurrvalFun::GetFunction() { ScalarFunction curr_val("currval", {LogicalType::VARCHAR}, LogicalType::BIGINT, - NextValFunction, NextValBind, NextValDependency); + NextValFunction, nullptr, nullptr); + curr_val.bind_extended = NextValBind; curr_val.stability = FunctionStability::VOLATILE; curr_val.serialize = Serialize; curr_val.deserialize = Deserialize; curr_val.init_local_state = NextValLocalFunction; - set.AddFunction(curr_val); + return curr_val; } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/sequence_functions.cpp b/src/duckdb/src/function/scalar/sequence_functions.cpp deleted file mode 100644 index 30b0c065..00000000 --- a/src/duckdb/src/function/scalar/sequence_functions.cpp +++ /dev/null @@ -1,10 +0,0 @@ -#include "duckdb/function/scalar/sequence_functions.hpp" - -namespace duckdb { - -void BuiltinFunctions::RegisterSequenceFunctions() { - Register(); - Register(); -} - -} // namespace duckdb diff --git a/src/duckdb/src/function/scalar/strftime_format.cpp b/src/duckdb/src/function/scalar/strftime_format.cpp index 3525519a..8ab46ace 100644 --- a/src/duckdb/src/function/scalar/strftime_format.cpp +++ b/src/duckdb/src/function/scalar/strftime_format.cpp @@ -1185,8 +1185,7 @@ bool StrpTimeFormat::Parse(const char *data, size_t size, ParseResult &result, b case StrTimeSpecifier::YEAR_WITHOUT_CENTURY_PADDED: case StrTimeSpecifier::YEAR_WITHOUT_CENTURY: case StrTimeSpecifier::YEAR_DECIMAL: - // Part of the offset - break; + // Switch to offset parsing case StrTimeSpecifier::WEEKDAY_DECIMAL: // First offset specifier offset_specifier = specifiers[i]; diff --git a/src/duckdb/src/function/scalar/string/caseconvert.cpp b/src/duckdb/src/function/scalar/string/caseconvert.cpp index b6240d06..d0d850f5 100644 --- a/src/duckdb/src/function/scalar/string/caseconvert.cpp +++ b/src/duckdb/src/function/scalar/string/caseconvert.cpp @@ -1,6 +1,8 @@ #include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/common/exception.hpp" +#include "duckdb/common/string_util.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/common/vector_operations/unary_executor.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -11,41 +13,14 @@ namespace duckdb { -const uint8_t UpperFun::ASCII_TO_UPPER_MAP[] = { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255}; -const uint8_t LowerFun::ASCII_TO_LOWER_MAP[] = { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, 122, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255}; - template static string_t ASCIICaseConvert(Vector &result, const char *input_data, idx_t input_length) { idx_t output_length = input_length; auto result_str = StringVector::EmptyString(result, output_length); auto result_data = result_str.GetDataWriteable(); for (idx_t i = 0; i < input_length; i++) { - result_data[i] = UnsafeNumericCast(IS_UPPER ? UpperFun::ASCII_TO_UPPER_MAP[uint8_t(input_data[i])] - : LowerFun::ASCII_TO_LOWER_MAP[uint8_t(input_data[i])]); + result_data[i] = UnsafeNumericCast(IS_UPPER ? StringUtil::ASCII_TO_UPPER_MAP[uint8_t(input_data[i])] + : StringUtil::ASCII_TO_LOWER_MAP[uint8_t(input_data[i])]); } result_str.Finalize(); return result_str; @@ -90,19 +65,19 @@ static void CaseConvert(const char *input_data, idx_t input_length, char *result i += UnsafeNumericCast(sz); } else { // ascii - *result_data = UnsafeNumericCast(IS_UPPER ? UpperFun::ASCII_TO_UPPER_MAP[uint8_t(input_data[i])] - : LowerFun::ASCII_TO_LOWER_MAP[uint8_t(input_data[i])]); + *result_data = UnsafeNumericCast(IS_UPPER ? StringUtil::ASCII_TO_UPPER_MAP[uint8_t(input_data[i])] + : StringUtil::ASCII_TO_LOWER_MAP[uint8_t(input_data[i])]); result_data++; i++; } } } -idx_t LowerFun::LowerLength(const char *input_data, idx_t input_length) { +idx_t LowerLength(const char *input_data, idx_t input_length) { return GetResultLength(input_data, input_length); } -void LowerFun::LowerCase(const char *input_data, idx_t input_length, char *result_data) { +void LowerCase(const char *input_data, idx_t input_length, char *result_data) { CaseConvert(input_data, input_length, result_data); } @@ -166,14 +141,9 @@ ScalarFunction LowerFun::GetFunction() { nullptr, CaseConvertPropagateStats); } -void LowerFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"lower", "lcase"}, LowerFun::GetFunction()); -} - -void UpperFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"upper", "ucase"}, - ScalarFunction({LogicalType::VARCHAR}, LogicalType::VARCHAR, CaseConvertFunction, nullptr, - nullptr, CaseConvertPropagateStats)); +ScalarFunction UpperFun::GetFunction() { + return ScalarFunction("upper", {LogicalType::VARCHAR}, LogicalType::VARCHAR, CaseConvertFunction, nullptr, + nullptr, CaseConvertPropagateStats); } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/concat.cpp b/src/duckdb/src/function/scalar/string/concat.cpp index 18619a5b..a6a495a9 100644 --- a/src/duckdb/src/function/scalar/string/concat.cpp +++ b/src/duckdb/src/function/scalar/string/concat.cpp @@ -4,6 +4,7 @@ #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/function/scalar/string_functions.hpp" + #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -45,7 +46,7 @@ static void StringConcatFunction(DataChunk &args, ExpressionState &state, Vector vector result_lengths(args.size(), 0); for (idx_t col_idx = 0; col_idx < args.ColumnCount(); col_idx++) { auto &input = args.data[col_idx]; - D_ASSERT(input.GetType().id() == LogicalTypeId::VARCHAR); + D_ASSERT(input.GetType().InternalType() == PhysicalType::VARCHAR); if (input.GetVectorType() == VectorType::CONSTANT_VECTOR) { if (ConstantVector::IsNull(input)) { // constant null, skip @@ -143,68 +144,65 @@ static void ConcatOperator(DataChunk &args, ExpressionState &state, Vector &resu }); } -static void ListConcatFunction(DataChunk &args, ExpressionState &state, Vector &result) { - D_ASSERT(args.ColumnCount() == 2); +struct ListConcatInputData { + ListConcatInputData(Vector &input, Vector &child_vec) : input(input), child_vec(child_vec) { + } + + UnifiedVectorFormat vdata; + Vector &input; + Vector &child_vec; + UnifiedVectorFormat child_vdata; + const list_entry_t *input_entries = nullptr; +}; + +static void ListConcatFunction(DataChunk &args, ExpressionState &state, Vector &result, bool is_operator) { auto count = args.size(); - Vector &lhs = args.data[0]; - Vector &rhs = args.data[1]; - if (lhs.GetType().id() == LogicalTypeId::SQLNULL) { - result.Reference(rhs); - return; - } - if (rhs.GetType().id() == LogicalTypeId::SQLNULL) { - result.Reference(lhs); - return; + auto result_entries = FlatVector::GetData(result); + vector input_data; + for (auto &input : args.data) { + if (!is_operator && input.GetType().id() == LogicalTypeId::SQLNULL) { + // LIST_CONCAT ignores NULL values + continue; + } + + auto &child_vec = ListVector::GetEntry(input); + ListConcatInputData data(input, child_vec); + input.ToUnifiedFormat(count, data.vdata); + + data.input_entries = UnifiedVectorFormat::GetData(data.vdata); + auto list_size = ListVector::GetListSize(input); + + child_vec.ToUnifiedFormat(list_size, data.child_vdata); + + input_data.push_back(std::move(data)); } - UnifiedVectorFormat lhs_data; - UnifiedVectorFormat rhs_data; - lhs.ToUnifiedFormat(count, lhs_data); - rhs.ToUnifiedFormat(count, rhs_data); - auto lhs_entries = UnifiedVectorFormat::GetData(lhs_data); - auto rhs_entries = UnifiedVectorFormat::GetData(rhs_data); - - auto lhs_list_size = ListVector::GetListSize(lhs); - auto rhs_list_size = ListVector::GetListSize(rhs); - auto &lhs_child = ListVector::GetEntry(lhs); - auto &rhs_child = ListVector::GetEntry(rhs); - UnifiedVectorFormat lhs_child_data; - UnifiedVectorFormat rhs_child_data; - lhs_child.ToUnifiedFormat(lhs_list_size, lhs_child_data); - rhs_child.ToUnifiedFormat(rhs_list_size, rhs_child_data); - - result.SetVectorType(VectorType::FLAT_VECTOR); - auto result_entries = FlatVector::GetData(result); auto &result_validity = FlatVector::Validity(result); - idx_t offset = 0; for (idx_t i = 0; i < count; i++) { - auto lhs_list_index = lhs_data.sel->get_index(i); - auto rhs_list_index = rhs_data.sel->get_index(i); - if (!lhs_data.validity.RowIsValid(lhs_list_index) && !rhs_data.validity.RowIsValid(rhs_list_index)) { - result_validity.SetInvalid(i); - continue; - } - result_entries[i].offset = offset; - result_entries[i].length = 0; - if (lhs_data.validity.RowIsValid(lhs_list_index)) { - const auto &lhs_entry = lhs_entries[lhs_list_index]; - result_entries[i].length += lhs_entry.length; - ListVector::Append(result, lhs_child, *lhs_child_data.sel, lhs_entry.offset + lhs_entry.length, - lhs_entry.offset); - } - if (rhs_data.validity.RowIsValid(rhs_list_index)) { - const auto &rhs_entry = rhs_entries[rhs_list_index]; - result_entries[i].length += rhs_entry.length; - ListVector::Append(result, rhs_child, *rhs_child_data.sel, rhs_entry.offset + rhs_entry.length, - rhs_entry.offset); + auto &result_entry = result_entries[i]; + result_entry.offset = offset; + result_entry.length = 0; + for (auto &data : input_data) { + auto list_index = data.vdata.sel->get_index(i); + if (!data.vdata.validity.RowIsValid(list_index)) { + // LIST_CONCAT ignores NULL values, but || does not + if (is_operator) { + result_validity.SetInvalid(i); + } + continue; + } + const auto &list_entry = data.input_entries[list_index]; + result_entry.length += list_entry.length; + ListVector::Append(result, data.child_vec, *data.child_vdata.sel, list_entry.offset + list_entry.length, + list_entry.offset); } - offset += result_entries[i].length; + offset += result_entry.length; } - D_ASSERT(ListVector::GetListSize(result) == offset); + ListVector::SetListSize(result, offset); - if (lhs.GetVectorType() == VectorType::CONSTANT_VECTOR && rhs.GetVectorType() == VectorType::CONSTANT_VECTOR) { + if (args.AllConstant()) { result.SetVectorType(VectorType::CONSTANT_VECTOR); } } @@ -213,7 +211,7 @@ static void ConcatFunction(DataChunk &args, ExpressionState &state, Vector &resu auto &func_expr = state.expr.Cast(); auto &info = func_expr.bind_info->Cast(); if (info.return_type.id() == LogicalTypeId::LIST) { - return ListConcatFunction(args, state, result); + return ListConcatFunction(args, state, result, info.is_operator); } else if (info.is_operator) { return ConcatOperator(args, state, result); } @@ -235,128 +233,103 @@ static void SetArgumentType(ScalarFunction &bound_function, const LogicalType &t bound_function.return_type = type; } -static void HandleArrayBinding(ClientContext &context, vector> &arguments) { - if (arguments[1]->return_type.id() != LogicalTypeId::ARRAY && - arguments[1]->return_type.id() != LogicalTypeId::SQLNULL) { - throw BinderException("Cannot concatenate types %s and %s", arguments[0]->return_type.ToString(), - arguments[1]->return_type.ToString()); - } - - // if either argument is an array, we cast it to a list - arguments[0] = BoundCastExpression::AddArrayCastToList(context, std::move(arguments[0])); - arguments[1] = BoundCastExpression::AddArrayCastToList(context, std::move(arguments[1])); -} - -static unique_ptr HandleListBinding(ClientContext &context, ScalarFunction &bound_function, - vector> &arguments, bool is_operator) { - // list_concat only accepts two arguments - D_ASSERT(arguments.size() == 2); - - auto &lhs = arguments[0]->return_type; - auto &rhs = arguments[1]->return_type; - - if (lhs.id() == LogicalTypeId::UNKNOWN || rhs.id() == LogicalTypeId::UNKNOWN) { - throw ParameterNotResolvedException(); - } else if (lhs.id() == LogicalTypeId::SQLNULL || rhs.id() == LogicalTypeId::SQLNULL) { - // we mimic postgres behaviour: list_concat(NULL, my_list) = my_list - auto return_type = rhs.id() == LogicalTypeId::SQLNULL ? lhs : rhs; - SetArgumentType(bound_function, return_type, is_operator); - return make_uniq(bound_function.return_type, is_operator); - } - if (lhs.id() != LogicalTypeId::LIST || rhs.id() != LogicalTypeId::LIST) { - throw BinderException("Cannot concatenate types %s and %s", lhs.ToString(), rhs.ToString()); - } - - // Resolve list type +static unique_ptr BindListConcat(ClientContext &context, ScalarFunction &bound_function, + vector> &arguments, bool is_operator) { LogicalType child_type = LogicalType::SQLNULL; - for (const auto &argument : arguments) { - auto &next_type = ListType::GetChildType(argument->return_type); + bool all_null = true; + for (auto &arg : arguments) { + auto &return_type = arg->return_type; + if (return_type == LogicalTypeId::SQLNULL) { + // we mimic postgres behaviour: list_concat(NULL, my_list) = my_list + continue; + } + all_null = false; + LogicalType next_type = LogicalTypeId::INVALID; + switch (return_type.id()) { + case LogicalTypeId::UNKNOWN: + throw ParameterNotResolvedException(); + case LogicalTypeId::LIST: + next_type = ListType::GetChildType(return_type); + break; + case LogicalTypeId::ARRAY: + next_type = ArrayType::GetChildType(return_type); + break; + default: { + string type_list; + for (idx_t arg_idx = 0; arg_idx < arguments.size(); arg_idx++) { + if (!type_list.empty()) { + if (arg_idx + 1 == arguments.size()) { + // last argument + type_list += " and "; + } else { + type_list += ", "; + } + } + type_list += arguments[arg_idx]->return_type.ToString(); + } + throw BinderException(*arg, "Cannot concatenate types %s - an explicit cast is required", type_list); + } + } if (!LogicalType::TryGetMaxLogicalType(context, child_type, next_type, child_type)) { - throw BinderException("Cannot concatenate lists of types %s[] and %s[] - an explicit cast is required", + throw BinderException(*arg, + "Cannot concatenate lists of types %s[] and %s[] - an explicit cast is required", child_type.ToString(), next_type.ToString()); } } + if (all_null) { + // all arguments are NULL + SetArgumentType(bound_function, LogicalTypeId::SQLNULL, is_operator); + return make_uniq(bound_function.return_type, is_operator); + } auto list_type = LogicalType::LIST(child_type); SetArgumentType(bound_function, list_type, is_operator); return make_uniq(bound_function.return_type, is_operator); } -static void FindFirstTwoArguments(vector> &arguments, LogicalTypeId &first_arg, - LogicalTypeId &second_arg) { - first_arg = arguments[0]->return_type.id(); - second_arg = first_arg; - if (arguments.size() > 1) { - second_arg = arguments[1]->return_type.id(); +static unique_ptr BindConcatFunctionInternal(ClientContext &context, ScalarFunction &bound_function, + vector> &arguments, + bool is_operator) { + bool list_concat = false; + // blob concat is only supported for the concat operator - regular concat converts to varchar + bool all_blob = is_operator ? true : false; + for (auto &arg : arguments) { + if (arg->return_type.id() == LogicalTypeId::UNKNOWN) { + throw ParameterNotResolvedException(); + } + if (arg->return_type.id() == LogicalTypeId::LIST || arg->return_type.id() == LogicalTypeId::ARRAY) { + list_concat = true; + } + if (arg->return_type.id() != LogicalTypeId::BLOB) { + all_blob = false; + } + } + if (list_concat) { + return BindListConcat(context, bound_function, arguments, is_operator); } + auto return_type = all_blob ? LogicalType::BLOB : LogicalType::VARCHAR; + + // we can now assume that the input is a string or castable to a string + SetArgumentType(bound_function, return_type, is_operator); + return make_uniq(bound_function.return_type, is_operator); } static unique_ptr BindConcatFunction(ClientContext &context, ScalarFunction &bound_function, vector> &arguments) { - LogicalTypeId first_arg; - LogicalTypeId second_arg; - FindFirstTwoArguments(arguments, first_arg, second_arg); - - if (arguments.size() > 2 && (first_arg == LogicalTypeId::ARRAY || first_arg == LogicalTypeId::LIST)) { - throw BinderException("list_concat only accepts two arguments"); - } - - if (first_arg == LogicalTypeId::ARRAY || second_arg == LogicalTypeId::ARRAY) { - HandleArrayBinding(context, arguments); - FindFirstTwoArguments(arguments, first_arg, second_arg); - } - - if (first_arg == LogicalTypeId::LIST || second_arg == LogicalTypeId::LIST) { - return HandleListBinding(context, bound_function, arguments, false); - } - - // we can now assume that the input is a string or castable to a string - SetArgumentType(bound_function, LogicalType::VARCHAR, false); - return make_uniq(bound_function.return_type, false); + return BindConcatFunctionInternal(context, bound_function, arguments, false); } static unique_ptr BindConcatOperator(ClientContext &context, ScalarFunction &bound_function, vector> &arguments) { - D_ASSERT(arguments.size() == 2); - - LogicalTypeId lhs; - LogicalTypeId rhs; - FindFirstTwoArguments(arguments, lhs, rhs); - - if (lhs == LogicalTypeId::UNKNOWN || rhs == LogicalTypeId::UNKNOWN) { - throw ParameterNotResolvedException(); - } - if (lhs == LogicalTypeId::ARRAY || rhs == LogicalTypeId::ARRAY) { - HandleArrayBinding(context, arguments); - FindFirstTwoArguments(arguments, lhs, rhs); - } - - if (lhs == LogicalTypeId::LIST || rhs == LogicalTypeId::LIST) { - return HandleListBinding(context, bound_function, arguments, true); - } - - LogicalType return_type; - if (lhs == LogicalTypeId::BLOB && rhs == LogicalTypeId::BLOB) { - return_type = LogicalType::BLOB; - } else { - return_type = LogicalType::VARCHAR; - } - - // we can now assume that the input is a string or castable to a string - SetArgumentType(bound_function, return_type, true); - return make_uniq(bound_function.return_type, true); + return BindConcatFunctionInternal(context, bound_function, arguments, true); } static unique_ptr ListConcatStats(ClientContext &context, FunctionStatisticsInput &input) { auto &child_stats = input.child_stats; - D_ASSERT(child_stats.size() == 2); - - auto &left_stats = child_stats[0]; - auto &right_stats = child_stats[1]; - - auto stats = left_stats.ToUnique(); - stats->Merge(right_stats); - + auto stats = child_stats[0].ToUnique(); + for (idx_t i = 1; i < child_stats.size(); i++) { + stats->Merge(child_stats[i]); + } return stats; } @@ -369,30 +342,26 @@ ScalarFunction ListConcatFun::GetFunction() { return fun; } -void ListConcatFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"list_concat", "list_cat", "array_concat", "array_cat"}, GetFunction()); -} - -void ConcatFun::RegisterFunction(BuiltinFunctions &set) { - // the concat operator and concat function have different behavior regarding NULLs - // this is strange but seems consistent with postgresql and mysql - // (sqlite does not support the concat function, only the concat operator) - - // the concat operator behaves as one would expect: any NULL value present results in a NULL - // i.e. NULL || 'hello' = NULL - // the concat function, however, treats NULL values as an empty string - // i.e. concat(NULL, 'hello') = 'hello' +// the concat operator and concat function have different behavior regarding NULLs +// this is strange but seems consistent with postgresql and mysql +// (sqlite does not support the concat function, only the concat operator) +// the concat operator behaves as one would expect: any NULL value present results in a NULL +// i.e. NULL || 'hello' = NULL +// the concat function, however, treats NULL values as an empty string +// i.e. concat(NULL, 'hello') = 'hello' +ScalarFunction ConcatFun::GetFunction() { ScalarFunction concat = ScalarFunction("concat", {LogicalType::ANY}, LogicalType::ANY, ConcatFunction, BindConcatFunction); concat.varargs = LogicalType::ANY; concat.null_handling = FunctionNullHandling::SPECIAL_HANDLING; - set.AddFunction(concat); + return concat; +} +ScalarFunction ConcatOperatorFun::GetFunction() { ScalarFunction concat_op = ScalarFunction("||", {LogicalType::ANY, LogicalType::ANY}, LogicalType::ANY, ConcatFunction, BindConcatOperator); - concat.null_handling = FunctionNullHandling::SPECIAL_HANDLING; - set.AddFunction(concat_op); + return concat_op; } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/concat_ws.cpp b/src/duckdb/src/function/scalar/string/concat_ws.cpp index 7689738c..ebc1e8b3 100644 --- a/src/duckdb/src/function/scalar/string/concat_ws.cpp +++ b/src/duckdb/src/function/scalar/string/concat_ws.cpp @@ -130,7 +130,7 @@ static unique_ptr BindConcatWSFunction(ClientContext &context, Sca return nullptr; } -void ConcatWSFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunction ConcatWsFun::GetFunction() { // concat_ws functions similarly to the concat function, except the result is NULL if the separator is NULL // if the separator is not NULL, however, NULL values are counted as empty string // there is one separate rule: there are no separators added between NULL values, @@ -143,7 +143,7 @@ void ConcatWSFun::RegisterFunction(BuiltinFunctions &set) { LogicalType::VARCHAR, ConcatWSFunction, BindConcatWSFunction); concat_ws.varargs = LogicalType::ANY; concat_ws.null_handling = FunctionNullHandling::SPECIAL_HANDLING; - set.AddFunction(concat_ws); + return ScalarFunction(concat_ws); } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/contains.cpp b/src/duckdb/src/function/scalar/string/contains.cpp index f1c3f8dc..b34d62c7 100644 --- a/src/duckdb/src/function/scalar/string/contains.cpp +++ b/src/duckdb/src/function/scalar/string/contains.cpp @@ -1,10 +1,11 @@ -#include "duckdb/function/scalar/string_functions.hpp" - #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/function/scalar/list_functions.hpp" +#include "duckdb/function/scalar/map_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" +#include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/function/scalar/nested_functions.hpp" -#include "duckdb/core_functions/scalar/map_functions.hpp" + namespace duckdb { template @@ -99,8 +100,7 @@ idx_t ContainsGeneric(const unsigned char *haystack, idx_t haystack_size, const } } -idx_t ContainsFun::Find(const unsigned char *haystack, idx_t haystack_size, const unsigned char *needle, - idx_t needle_size) { +idx_t FindStrInStr(const unsigned char *haystack, idx_t haystack_size, const unsigned char *needle, idx_t needle_size) { D_ASSERT(needle_size > 0); // start off by performing a memchr to find the first character of the auto location = memchr(haystack, needle[0], haystack_size); @@ -133,7 +133,7 @@ idx_t ContainsFun::Find(const unsigned char *haystack, idx_t haystack_size, cons } } -idx_t ContainsFun::Find(const string_t &haystack_s, const string_t &needle_s) { +idx_t FindStrInStr(const string_t &haystack_s, const string_t &needle_s) { auto haystack = const_uchar_ptr_cast(haystack_s.GetData()); auto haystack_size = haystack_s.GetSize(); auto needle = const_uchar_ptr_cast(needle_s.GetData()); @@ -142,16 +142,23 @@ idx_t ContainsFun::Find(const string_t &haystack_s, const string_t &needle_s) { // empty needle: always true return 0; } - return ContainsFun::Find(haystack, haystack_size, needle, needle_size); + return FindStrInStr(haystack, haystack_size, needle, needle_size); } struct ContainsOperator { template static inline TR Operation(TA left, TB right) { - return ContainsFun::Find(left, right) != DConstants::INVALID_INDEX; + return FindStrInStr(left, right) != DConstants::INVALID_INDEX; } }; +ScalarFunction GetStringContains() { + ScalarFunction string_fun("contains", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, + ScalarFunction::BinaryFunction); + string_fun.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return string_fun; +} + ScalarFunctionSet ContainsFun::GetFunctions() { auto string_fun = GetStringContains(); auto list_fun = ListContainsFun::GetFunction(); @@ -163,14 +170,4 @@ ScalarFunctionSet ContainsFun::GetFunctions() { return set; } -ScalarFunction ContainsFun::GetStringContains() { - ScalarFunction string_fun("contains", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, - ScalarFunction::BinaryFunction); - return string_fun; -} - -void ContainsFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction(GetFunctions()); -} - } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/length.cpp b/src/duckdb/src/function/scalar/string/length.cpp index 5ad1438c..b757596e 100644 --- a/src/duckdb/src/function/scalar/string/length.cpp +++ b/src/duckdb/src/function/scalar/string/length.cpp @@ -1,10 +1,9 @@ -#include "duckdb/function/scalar/string_functions.hpp" -#include "duckdb/common/types/bit.hpp" - #include "duckdb/common/exception.hpp" +#include "duckdb/common/types/bit.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/function/scalar/string_common.hpp" +#include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" - #include "duckdb/planner/expression/bound_parameter_expression.hpp" #include "utf8proc.hpp" @@ -14,14 +13,14 @@ namespace duckdb { struct StringLengthOperator { template static inline TR Operation(TA input) { - return LengthFun::Length(input); + return Length(input); } }; struct GraphemeCountOperator { template static inline TR Operation(TA input) { - return LengthFun::GraphemeCount(input); + return GraphemeCount(input); } }; @@ -216,47 +215,57 @@ static unique_ptr ArrayOrListLengthBinaryBind(ClientContext &conte } } -void LengthFun::RegisterFunction(BuiltinFunctions &set) { - ScalarFunction array_length_unary = - ScalarFunction({LogicalType::LIST(LogicalType::ANY)}, LogicalType::BIGINT, nullptr, ArrayOrListLengthBind); +ScalarFunctionSet LengthFun::GetFunctions() { ScalarFunctionSet length("length"); length.AddFunction(ScalarFunction({LogicalType::VARCHAR}, LogicalType::BIGINT, ScalarFunction::UnaryFunction, nullptr, nullptr, LengthPropagateStats)); length.AddFunction(ScalarFunction({LogicalType::BIT}, LogicalType::BIGINT, ScalarFunction::UnaryFunction)); - length.AddFunction(array_length_unary); - set.AddFunction(length); - length.name = "len"; - set.AddFunction(length); + length.AddFunction( + ScalarFunction({LogicalType::LIST(LogicalType::ANY)}, LogicalType::BIGINT, nullptr, ArrayOrListLengthBind)); + return (length); +} +ScalarFunctionSet LengthGraphemeFun::GetFunctions() { ScalarFunctionSet length_grapheme("length_grapheme"); length_grapheme.AddFunction(ScalarFunction({LogicalType::VARCHAR}, LogicalType::BIGINT, ScalarFunction::UnaryFunction, nullptr, nullptr, LengthPropagateStats)); - set.AddFunction(length_grapheme); + return (length_grapheme); +} +ScalarFunctionSet ArrayLengthFun::GetFunctions() { ScalarFunctionSet array_length("array_length"); - array_length.AddFunction(array_length_unary); + array_length.AddFunction( + ScalarFunction({LogicalType::LIST(LogicalType::ANY)}, LogicalType::BIGINT, nullptr, ArrayOrListLengthBind)); array_length.AddFunction(ScalarFunction({LogicalType::LIST(LogicalType::ANY), LogicalType::BIGINT}, LogicalType::BIGINT, nullptr, ArrayOrListLengthBinaryBind)); - set.AddFunction(array_length); + return (array_length); +} + +ScalarFunction StrlenFun::GetFunction() { + return ScalarFunction("strlen", {LogicalType::VARCHAR}, LogicalType::BIGINT, + ScalarFunction::UnaryFunction); +} - set.AddFunction(ScalarFunction("strlen", {LogicalType::VARCHAR}, LogicalType::BIGINT, - ScalarFunction::UnaryFunction)); +ScalarFunctionSet BitLengthFun::GetFunctions() { ScalarFunctionSet bit_length("bit_length"); bit_length.AddFunction(ScalarFunction({LogicalType::VARCHAR}, LogicalType::BIGINT, ScalarFunction::UnaryFunction)); bit_length.AddFunction(ScalarFunction({LogicalType::BIT}, LogicalType::BIGINT, ScalarFunction::UnaryFunction)); - set.AddFunction(bit_length); + return (bit_length); +} + +ScalarFunctionSet OctetLengthFun::GetFunctions() { // length for BLOB type ScalarFunctionSet octet_length("octet_length"); octet_length.AddFunction(ScalarFunction({LogicalType::BLOB}, LogicalType::BIGINT, ScalarFunction::UnaryFunction)); octet_length.AddFunction(ScalarFunction({LogicalType::BIT}, LogicalType::BIGINT, ScalarFunction::UnaryFunction)); - set.AddFunction(octet_length); + return (octet_length); } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/like.cpp b/src/duckdb/src/function/scalar/string/like.cpp index b8271178..5e279cf2 100644 --- a/src/duckdb/src/function/scalar/string/like.cpp +++ b/src/duckdb/src/function/scalar/string/like.cpp @@ -1,5 +1,7 @@ #include "duckdb/common/exception.hpp" +#include "duckdb/common/string_util.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -10,7 +12,7 @@ namespace duckdb { struct StandardCharacterReader { static void NextCharacter(const char *sdata, idx_t slen, idx_t &sidx) { sidx++; - while (sidx < slen && !LengthFun::IsCharacter(sdata[sidx])) { + while (sidx < slen && !IsCharacter(sdata[sidx])) { sidx++; } } @@ -26,7 +28,7 @@ struct ASCIILCaseReader { } static char Operation(const char *data, idx_t pos) { - return (char)LowerFun::ASCII_TO_LOWER_MAP[(uint8_t)data[pos]]; + return (char)StringUtil::ASCII_TO_LOWER_MAP[(uint8_t)data[pos]]; } }; @@ -116,8 +118,8 @@ struct LikeMatcher : public FunctionData { for (; segment_idx < end_idx; segment_idx++) { auto &segment = segments[segment_idx]; // find the pattern of the current segment - idx_t next_offset = ContainsFun::Find(str_data, str_len, const_uchar_ptr_cast(segment.pattern.c_str()), - segment.pattern.size()); + idx_t next_offset = + FindStrInStr(str_data, str_len, const_uchar_ptr_cast(segment.pattern.c_str()), segment.pattern.size()); if (next_offset == DConstants::INVALID_INDEX) { // could not find this pattern in the string: no match return false; @@ -141,8 +143,8 @@ struct LikeMatcher : public FunctionData { } else { auto &segment = segments.back(); // find the pattern of the current segment - idx_t next_offset = ContainsFun::Find(str_data, str_len, const_uchar_ptr_cast(segment.pattern.c_str()), - segment.pattern.size()); + idx_t next_offset = + FindStrInStr(str_data, str_len, const_uchar_ptr_cast(segment.pattern.c_str()), segment.pattern.size()); return next_offset != DConstants::INVALID_INDEX; } } @@ -205,6 +207,11 @@ static unique_ptr LikeBindFunction(ClientContext &context, ScalarF vector> &arguments) { // pattern is the second argument. If its constant, we can already prepare the pattern and store it for later. D_ASSERT(arguments.size() == 2 || arguments.size() == 3); + for (auto &arg : arguments) { + if (arg->return_type.id() == LogicalTypeId::VARCHAR && !StringType::GetCollation(arg->return_type).empty()) { + return nullptr; + } + } if (arguments[1]->IsFoldable()) { Value pattern_str = ExpressionExecutor::EvaluateScalar(context, *arguments[1]); return LikeMatcher::CreateLikeMatcher(pattern_str.ToString()); @@ -228,7 +235,7 @@ bool LikeOperatorFunction(string_t &s, string_t &pat, char escape) { return LikeOperatorFunction(s.GetData(), s.GetSize(), pat.GetData(), pat.GetSize(), escape); } -bool LikeFun::Glob(const char *string, idx_t slen, const char *pattern, idx_t plen, bool allow_question_mark) { +bool Glob(const char *string, idx_t slen, const char *pattern, idx_t plen, bool allow_question_mark) { idx_t sidx = 0; idx_t pidx = 0; main_loop : { @@ -250,7 +257,7 @@ main_loop : { } // recursively match the remainder of the pattern for (; sidx < slen; sidx++) { - if (LikeFun::Glob(string + sidx, slen - sidx, pattern + pidx, plen - pidx)) { + if (Glob(string + sidx, slen - sidx, pattern + pidx, plen - pidx)) { return true; } } @@ -402,13 +409,13 @@ bool ILikeOperatorFunction(string_t &str, string_t &pattern, char escape = '\0') auto pat_size = pattern.GetSize(); // lowercase both the str and the pattern - idx_t str_llength = LowerFun::LowerLength(str_data, str_size); + idx_t str_llength = LowerLength(str_data, str_size); auto str_ldata = make_unsafe_uniq_array_uninitialized(str_llength); - LowerFun::LowerCase(str_data, str_size, str_ldata.get()); + LowerCase(str_data, str_size, str_ldata.get()); - idx_t pat_llength = LowerFun::LowerLength(pat_data, pat_size); + idx_t pat_llength = LowerLength(pat_data, pat_size); auto pat_ldata = make_unsafe_uniq_array_uninitialized(pat_llength); - LowerFun::LowerCase(pat_data, pat_size, pat_ldata.get()); + LowerCase(pat_data, pat_size, pat_ldata.get()); string_t str_lcase(str_ldata.get(), UnsafeNumericCast(str_llength)); string_t pat_lcase(pat_ldata.get(), UnsafeNumericCast(pat_llength)); return LikeOperatorFunction(str_lcase, pat_lcase, escape); @@ -468,7 +475,7 @@ struct NotILikeOperatorASCII { struct GlobOperator { template static inline TR Operation(TA str, TB pattern) { - return LikeFun::Glob(str.GetData(), str.GetSize(), pattern.GetData(), pattern.GetSize()); + return Glob(str.GetData(), str.GetSize(), pattern.GetData(), pattern.GetSize()); } }; @@ -510,45 +517,71 @@ static void RegularLikeFunction(DataChunk &input, ExpressionState &state, Vector input.size()); } } -void LikeFun::RegisterFunction(BuiltinFunctions &set) { - // like - set.AddFunction(GetLikeFunction()); - // not like - set.AddFunction(ScalarFunction("!~~", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, - RegularLikeFunction, LikeBindFunction)); - // glob - set.AddFunction(ScalarFunction("~~~", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, - ScalarFunction::BinaryFunction)); - // ilike - set.AddFunction(ScalarFunction("~~*", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, - ScalarFunction::BinaryFunction, nullptr, - nullptr, ILikePropagateStats)); - // not ilike - set.AddFunction(ScalarFunction("!~~*", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, - ScalarFunction::BinaryFunction, nullptr, - nullptr, ILikePropagateStats)); + +ScalarFunction NotLikeFun::GetFunction() { + ScalarFunction not_like("!~~", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, + RegularLikeFunction, LikeBindFunction); + not_like.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return not_like; +} + +ScalarFunction GlobPatternFun::GetFunction() { + ScalarFunction glob("~~~", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, + ScalarFunction::BinaryFunction); + glob.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return glob; +} + +ScalarFunction ILikeFun::GetFunction() { + ScalarFunction ilike("~~*", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, + ScalarFunction::BinaryFunction, nullptr, nullptr, + ILikePropagateStats); + ilike.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return ilike; +} + +ScalarFunction NotILikeFun::GetFunction() { + ScalarFunction not_ilike("!~~*", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, + ScalarFunction::BinaryFunction, nullptr, + nullptr, ILikePropagateStats); + not_ilike.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return not_ilike; } -ScalarFunction LikeFun::GetLikeFunction() { - return ScalarFunction("~~", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, - RegularLikeFunction, LikeBindFunction); +ScalarFunction LikeFun::GetFunction() { + ScalarFunction like("~~", {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, + RegularLikeFunction, LikeBindFunction); + like.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return like; } -void LikeEscapeFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction(GetLikeEscapeFun()); - set.AddFunction({"not_like_escape"}, - ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, - LogicalType::BOOLEAN, LikeEscapeFunction)); - - set.AddFunction({"ilike_escape"}, ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, - LogicalType::BOOLEAN, LikeEscapeFunction)); - set.AddFunction({"not_ilike_escape"}, - ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, - LogicalType::BOOLEAN, LikeEscapeFunction)); +ScalarFunction NotLikeEscapeFun::GetFunction() { + ScalarFunction not_like_escape("not_like_escape", + {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, + LogicalType::BOOLEAN, LikeEscapeFunction); + not_like_escape.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return not_like_escape; } -ScalarFunction LikeEscapeFun::GetLikeEscapeFun() { - return ScalarFunction("like_escape", {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, - LogicalType::BOOLEAN, LikeEscapeFunction); +ScalarFunction IlikeEscapeFun::GetFunction() { + ScalarFunction ilike_escape("ilike_escape", {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, + LogicalType::BOOLEAN, LikeEscapeFunction); + ilike_escape.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return ilike_escape; } + +ScalarFunction NotIlikeEscapeFun::GetFunction() { + ScalarFunction not_ilike_escape("not_ilike_escape", + {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, + LogicalType::BOOLEAN, LikeEscapeFunction); + not_ilike_escape.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return not_ilike_escape; +} +ScalarFunction LikeEscapeFun::GetFunction() { + ScalarFunction like_escape("like_escape", {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, + LogicalType::BOOLEAN, LikeEscapeFunction); + like_escape.collation_handling = FunctionCollationHandling::PUSH_COMBINABLE_COLLATIONS; + return like_escape; +} + } // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/string/md5.cpp b/src/duckdb/src/function/scalar/string/md5.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/string/md5.cpp rename to src/duckdb/src/function/scalar/string/md5.cpp index 399e3a90..837f97c1 100644 --- a/src/duckdb/src/core_functions/scalar/string/md5.cpp +++ b/src/duckdb/src/function/scalar/string/md5.cpp @@ -1,7 +1,7 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "duckdb/common/crypto/md5.hpp" +#include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" -#include "duckdb/common/crypto/md5.hpp" #include "duckdb/common/vector_operations/unary_executor.hpp" namespace duckdb { diff --git a/src/duckdb/src/function/scalar/string/nfc_normalize.cpp b/src/duckdb/src/function/scalar/string/nfc_normalize.cpp index 28984335..92a06149 100644 --- a/src/duckdb/src/function/scalar/string/nfc_normalize.cpp +++ b/src/duckdb/src/function/scalar/string/nfc_normalize.cpp @@ -1,5 +1,5 @@ +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/function/scalar/string_functions.hpp" - #include "utf8proc_wrapper.hpp" namespace duckdb { @@ -9,7 +9,7 @@ struct NFCNormalizeOperator { static RESULT_TYPE Operation(INPUT_TYPE input, Vector &result) { auto input_data = input.GetData(); auto input_length = input.GetSize(); - if (StripAccentsFun::IsAscii(input_data, input_length)) { + if (IsAscii(input_data, input_length)) { return input; } auto normalized_str = Utf8Proc::Normalize(input_data, input_length); @@ -31,8 +31,4 @@ ScalarFunction NFCNormalizeFun::GetFunction() { return ScalarFunction("nfc_normalize", {LogicalType::VARCHAR}, LogicalType::VARCHAR, NFCNormalizeFunction); } -void NFCNormalizeFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction(NFCNormalizeFun::GetFunction()); -} - } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/prefix.cpp b/src/duckdb/src/function/scalar/string/prefix.cpp index d15c1e02..2b46610f 100644 --- a/src/duckdb/src/function/scalar/string/prefix.cpp +++ b/src/duckdb/src/function/scalar/string/prefix.cpp @@ -65,8 +65,4 @@ ScalarFunction PrefixFun::GetFunction() { ScalarFunction::BinaryFunction); } -void PrefixFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction(GetFunction()); -} - } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/regexp.cpp b/src/duckdb/src/function/scalar/string/regexp.cpp index 265e84be..20118132 100644 --- a/src/duckdb/src/function/scalar/string/regexp.cpp +++ b/src/duckdb/src/function/scalar/string/regexp.cpp @@ -382,7 +382,7 @@ static unique_ptr RegexExtractBind(ClientContext &context, ScalarF std::move(group_string)); } -void RegexpFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunctionSet RegexpFun::GetFunctions() { ScalarFunctionSet regexp_full_match("regexp_full_match"); regexp_full_match.AddFunction( ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, @@ -392,7 +392,10 @@ void RegexpFun::RegisterFunction(BuiltinFunctions &set) { ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, RegexpMatchesFunction, RegexpMatchesBind, nullptr, nullptr, RegexInitLocalState, LogicalType::INVALID, FunctionStability::CONSISTENT, FunctionNullHandling::SPECIAL_HANDLING)); + return (regexp_full_match); +} +ScalarFunctionSet RegexpMatchesFun::GetFunctions() { ScalarFunctionSet regexp_partial_match("regexp_matches"); regexp_partial_match.AddFunction(ScalarFunction( {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, RegexpMatchesFunction, @@ -402,7 +405,10 @@ void RegexpFun::RegisterFunction(BuiltinFunctions &set) { {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::BOOLEAN, RegexpMatchesFunction, RegexpMatchesBind, nullptr, nullptr, RegexInitLocalState, LogicalType::INVALID, FunctionStability::CONSISTENT, FunctionNullHandling::SPECIAL_HANDLING)); + return (regexp_partial_match); +} +ScalarFunctionSet RegexpReplaceFun::GetFunctions() { ScalarFunctionSet regexp_replace("regexp_replace"); regexp_replace.AddFunction(ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::VARCHAR, RegexReplaceFunction, RegexReplaceBind, nullptr, @@ -410,7 +416,10 @@ void RegexpFun::RegisterFunction(BuiltinFunctions &set) { regexp_replace.AddFunction(ScalarFunction( {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::VARCHAR, RegexReplaceFunction, RegexReplaceBind, nullptr, nullptr, RegexInitLocalState)); + return (regexp_replace); +} +ScalarFunctionSet RegexpExtractFun::GetFunctions() { ScalarFunctionSet regexp_extract("regexp_extract"); regexp_extract.AddFunction(ScalarFunction({LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::VARCHAR, RegexExtractFunction, RegexExtractBind, nullptr, nullptr, @@ -434,7 +443,10 @@ void RegexpFun::RegisterFunction(BuiltinFunctions &set) { {LogicalType::VARCHAR, LogicalType::VARCHAR, LogicalType::LIST(LogicalType::VARCHAR), LogicalType::VARCHAR}, LogicalType::VARCHAR, RegexExtractStructFunction, RegexExtractBind, nullptr, nullptr, RegexInitLocalState, LogicalType::INVALID, FunctionStability::CONSISTENT, FunctionNullHandling::SPECIAL_HANDLING)); + return (regexp_extract); +} +ScalarFunctionSet RegexpExtractAllFun::GetFunctions() { ScalarFunctionSet regexp_extract_all("regexp_extract_all"); regexp_extract_all.AddFunction(ScalarFunction( {LogicalType::VARCHAR, LogicalType::VARCHAR}, LogicalType::LIST(LogicalType::VARCHAR), @@ -449,12 +461,7 @@ void RegexpFun::RegisterFunction(BuiltinFunctions &set) { LogicalType::LIST(LogicalType::VARCHAR), RegexpExtractAll::Execute, RegexpExtractAll::Bind, nullptr, nullptr, RegexpExtractAll::InitLocalState, LogicalType::INVALID, FunctionStability::CONSISTENT, FunctionNullHandling::SPECIAL_HANDLING)); - - set.AddFunction(regexp_full_match); - set.AddFunction(regexp_partial_match); - set.AddFunction(regexp_replace); - set.AddFunction(regexp_extract); - set.AddFunction(regexp_extract_all); + return (regexp_extract_all); } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp b/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp index 0e6cfa7d..144dcff0 100644 --- a/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp +++ b/src/duckdb/src/function/scalar/string/regexp/regexp_extract_all.cpp @@ -1,4 +1,5 @@ #include "duckdb/function/scalar/regexp.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/function/scalar/string_functions.hpp" @@ -36,7 +37,7 @@ bool ExtractAll(duckdb_re2::StringPiece &input, duckdb_re2::RE2 &pattern, idx_t // to avoid an infinite loop // FIXME: support unicode characters consumed++; - while (*startpos + consumed < input.length() && !LengthFun::IsCharacter(input[*startpos + consumed])) { + while (*startpos + consumed < input.length() && !IsCharacter(input[*startpos + consumed])) { consumed++; } } diff --git a/src/duckdb/src/core_functions/scalar/string/regexp_escape.cpp b/src/duckdb/src/function/scalar/string/regexp_escape.cpp similarity index 77% rename from src/duckdb/src/core_functions/scalar/string/regexp_escape.cpp rename to src/duckdb/src/function/scalar/string/regexp_escape.cpp index 32517c9c..3d72fe68 100644 --- a/src/duckdb/src/core_functions/scalar/string/regexp_escape.cpp +++ b/src/duckdb/src/function/scalar/string/regexp_escape.cpp @@ -1,4 +1,4 @@ -#include "duckdb/core_functions/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_functions.hpp" #include "re2/re2.h" namespace duckdb { @@ -16,7 +16,7 @@ static void RegexpEscapeFunction(DataChunk &args, ExpressionState &state, Vector } ScalarFunction RegexpEscapeFun::GetFunction() { - return ScalarFunction({LogicalType::VARCHAR}, LogicalType::VARCHAR, RegexpEscapeFunction); + return ScalarFunction("regexp_escape", {LogicalType::VARCHAR}, LogicalType::VARCHAR, RegexpEscapeFunction); } } // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/string/sha1.cpp b/src/duckdb/src/function/scalar/string/sha1.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/string/sha1.cpp rename to src/duckdb/src/function/scalar/string/sha1.cpp index 82ec9b7a..c59dcf25 100644 --- a/src/duckdb/src/core_functions/scalar/string/sha1.cpp +++ b/src/duckdb/src/function/scalar/string/sha1.cpp @@ -1,6 +1,6 @@ +#include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/unary_executor.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" #include "mbedtls_wrapper.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/string/sha256.cpp b/src/duckdb/src/function/scalar/string/sha256.cpp similarity index 94% rename from src/duckdb/src/core_functions/scalar/string/sha256.cpp rename to src/duckdb/src/function/scalar/string/sha256.cpp index 32ca5f5c..a48ccf93 100644 --- a/src/duckdb/src/core_functions/scalar/string/sha256.cpp +++ b/src/duckdb/src/function/scalar/string/sha256.cpp @@ -1,6 +1,6 @@ +#include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/vector_operations/unary_executor.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" #include "mbedtls_wrapper.hpp" namespace duckdb { diff --git a/src/duckdb/src/core_functions/scalar/string/string_split.cpp b/src/duckdb/src/function/scalar/string/string_split.cpp similarity index 96% rename from src/duckdb/src/core_functions/scalar/string/string_split.cpp rename to src/duckdb/src/function/scalar/string/string_split.cpp index c62cacd7..9673eca9 100644 --- a/src/duckdb/src/core_functions/scalar/string/string_split.cpp +++ b/src/duckdb/src/function/scalar/string/string_split.cpp @@ -1,10 +1,10 @@ +#include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/common/exception.hpp" #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/common/types/vector.hpp" #include "duckdb/common/vector_size.hpp" -#include "duckdb/core_functions/scalar/string_functions.hpp" #include "duckdb/function/scalar/regexp.hpp" -#include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" namespace duckdb { @@ -36,8 +36,7 @@ struct RegularStringSplit { if (delim_size == 0) { return 0; } - return ContainsFun::Find(const_uchar_ptr_cast(input_data), input_size, const_uchar_ptr_cast(delim_data), - delim_size); + return FindStrInStr(const_uchar_ptr_cast(input_data), input_size, const_uchar_ptr_cast(delim_data), delim_size); } }; @@ -84,7 +83,7 @@ struct StringSplitter { // special case: 0 length match and pos is 0 // move to the next character for (pos++; pos < input_size; pos++) { - if (LengthFun::IsCharacter(input_data[pos])) { + if (IsCharacter(input_data[pos])) { break; } } diff --git a/src/duckdb/src/function/scalar/string/strip_accents.cpp b/src/duckdb/src/function/scalar/string/strip_accents.cpp index 1883c60f..2ab7ca49 100644 --- a/src/duckdb/src/function/scalar/string/strip_accents.cpp +++ b/src/duckdb/src/function/scalar/string/strip_accents.cpp @@ -1,10 +1,11 @@ +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/function/scalar/string_functions.hpp" #include "utf8proc.hpp" namespace duckdb { -bool StripAccentsFun::IsAscii(const char *input, idx_t n) { +bool IsAscii(const char *input, idx_t n) { for (idx_t i = 0; i < n; i++) { if (input[i] & 0x80) { // non-ascii character @@ -17,7 +18,7 @@ bool StripAccentsFun::IsAscii(const char *input, idx_t n) { struct StripAccentsOperator { template static RESULT_TYPE Operation(INPUT_TYPE input, Vector &result) { - if (StripAccentsFun::IsAscii(input.GetData(), input.GetSize())) { + if (IsAscii(input.GetData(), input.GetSize())) { return input; } @@ -41,8 +42,4 @@ ScalarFunction StripAccentsFun::GetFunction() { return ScalarFunction("strip_accents", {LogicalType::VARCHAR}, LogicalType::VARCHAR, StripAccentsFunction); } -void StripAccentsFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction(StripAccentsFun::GetFunction()); -} - } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/substring.cpp b/src/duckdb/src/function/scalar/string/substring.cpp index f7ff13f3..58c93624 100644 --- a/src/duckdb/src/function/scalar/string/substring.cpp +++ b/src/duckdb/src/function/scalar/string/substring.cpp @@ -1,3 +1,4 @@ +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/common/algorithm.hpp" @@ -94,7 +95,7 @@ string_t SubstringASCII(Vector &result, string_t input, int64_t offset, int64_t return SubstringSlice(result, input_data, start, UnsafeNumericCast(end - start)); } -string_t SubstringFun::SubstringUnicode(Vector &result, string_t input, int64_t offset, int64_t length) { +string_t SubstringUnicode(Vector &result, string_t input, int64_t offset, int64_t length) { auto input_data = input.GetData(); auto input_size = input.GetSize(); @@ -129,7 +130,7 @@ string_t SubstringFun::SubstringUnicode(Vector &result, string_t input, int64_t } int64_t current_character = 0; for (idx_t i = input_size; i > 0; i--) { - if (LengthFun::IsCharacter(input_data[i - 1])) { + if (IsCharacter(input_data[i - 1])) { current_character++; if (current_character == start) { start_pos = i; @@ -139,10 +140,10 @@ string_t SubstringFun::SubstringUnicode(Vector &result, string_t input, int64_t } } } - while (!LengthFun::IsCharacter(input_data[start_pos])) { + while (!IsCharacter(input_data[start_pos])) { start_pos++; } - while (end_pos < input_size && !LengthFun::IsCharacter(input_data[end_pos])) { + while (end_pos < input_size && !IsCharacter(input_data[end_pos])) { end_pos++; } @@ -170,7 +171,7 @@ string_t SubstringFun::SubstringUnicode(Vector &result, string_t input, int64_t int64_t current_character = 0; for (idx_t i = 0; i < input_size; i++) { - if (LengthFun::IsCharacter(input_data[i])) { + if (IsCharacter(input_data[i])) { if (current_character == start) { start_pos = i; } else if (current_character == end) { @@ -190,7 +191,7 @@ string_t SubstringFun::SubstringUnicode(Vector &result, string_t input, int64_t UnsafeNumericCast(end_pos - start_pos)); } -string_t SubstringFun::SubstringGrapheme(Vector &result, string_t input, int64_t offset, int64_t length) { +string_t SubstringGrapheme(Vector &result, string_t input, int64_t offset, int64_t length) { auto input_data = input.GetData(); auto input_size = input.GetSize(); @@ -251,13 +252,13 @@ string_t SubstringFun::SubstringGrapheme(Vector &result, string_t input, int64_t struct SubstringUnicodeOp { static string_t Substring(Vector &result, string_t input, int64_t offset, int64_t length) { - return SubstringFun::SubstringUnicode(result, input, offset, length); + return SubstringUnicode(result, input, offset, length); } }; struct SubstringGraphemeOp { static string_t Substring(Vector &result, string_t input, int64_t offset, int64_t length) { - return SubstringFun::SubstringGrapheme(result, input, offset, length); + return SubstringGrapheme(result, input, offset, length); } }; @@ -311,7 +312,7 @@ static unique_ptr SubstringPropagateStats(ClientContext &context return nullptr; } -void SubstringFun::RegisterFunction(BuiltinFunctions &set) { +ScalarFunctionSet SubstringFun::GetFunctions() { ScalarFunctionSet substr("substring"); substr.AddFunction(ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT, LogicalType::BIGINT}, LogicalType::VARCHAR, SubstringFunction, nullptr, nullptr, @@ -319,10 +320,10 @@ void SubstringFun::RegisterFunction(BuiltinFunctions &set) { substr.AddFunction(ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR, SubstringFunction, nullptr, nullptr, SubstringPropagateStats)); - set.AddFunction(substr); - substr.name = "substr"; - set.AddFunction(substr); + return (substr); +} +ScalarFunctionSet SubstringGraphemeFun::GetFunctions() { ScalarFunctionSet substr_grapheme("substring_grapheme"); substr_grapheme.AddFunction(ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT, LogicalType::BIGINT}, LogicalType::VARCHAR, SubstringFunction, nullptr, @@ -330,7 +331,7 @@ void SubstringFun::RegisterFunction(BuiltinFunctions &set) { substr_grapheme.AddFunction(ScalarFunction({LogicalType::VARCHAR, LogicalType::BIGINT}, LogicalType::VARCHAR, SubstringFunction, nullptr, nullptr, SubstringPropagateStats)); - set.AddFunction(substr_grapheme); + return (substr_grapheme); } } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string/suffix.cpp b/src/duckdb/src/function/scalar/string/suffix.cpp index df148457..21175f61 100644 --- a/src/duckdb/src/function/scalar/string/suffix.cpp +++ b/src/duckdb/src/function/scalar/string/suffix.cpp @@ -40,8 +40,4 @@ ScalarFunction SuffixFun::GetFunction() { ScalarFunction::BinaryFunction); } -void SuffixFun::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction({"suffix", "ends_with"}, GetFunction()); -} - } // namespace duckdb diff --git a/src/duckdb/src/function/scalar/string_functions.cpp b/src/duckdb/src/function/scalar/string_functions.cpp deleted file mode 100644 index e3ccbe0a..00000000 --- a/src/duckdb/src/function/scalar/string_functions.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "duckdb/function/scalar/string_functions.hpp" - -namespace duckdb { - -void BuiltinFunctions::RegisterStringFunctions() { - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); - Register(); -} - -} // namespace duckdb diff --git a/src/duckdb/src/function/scalar/struct/struct_concat.cpp b/src/duckdb/src/function/scalar/struct/struct_concat.cpp new file mode 100644 index 00000000..f5ed780e --- /dev/null +++ b/src/duckdb/src/function/scalar/struct/struct_concat.cpp @@ -0,0 +1,115 @@ +#include "duckdb/function/scalar/nested_functions.hpp" +#include "duckdb/function/scalar/struct_functions.hpp" +#include "duckdb/common/case_insensitive_map.hpp" +#include "duckdb/planner/expression_binder.hpp" +#include "duckdb/planner/expression/bound_function_expression.hpp" +#include "duckdb/storage/statistics/struct_stats.hpp" + +namespace duckdb { + +static void StructConcatFunction(DataChunk &args, ExpressionState &state, Vector &result) { + auto &result_cols = StructVector::GetEntries(result); + idx_t offset = 0; + + if (!args.AllConstant()) { + // Unless all arguments are constant, we flatten the input to make sure it's homogeneous + args.Flatten(); + } + + for (auto &arg : args.data) { + const auto &child_cols = StructVector::GetEntries(arg); + for (auto &child_col : child_cols) { + result_cols[offset++]->Reference(*child_col); + } + } + D_ASSERT(offset == result_cols.size()); + + if (args.AllConstant()) { + result.SetVectorType(VectorType::CONSTANT_VECTOR); + } + + result.Verify(args.size()); +} + +static unique_ptr StructConcatBind(ClientContext &context, ScalarFunction &bound_function, + vector> &arguments) { + + // collect names and deconflict, construct return type + if (arguments.empty()) { + throw InvalidInputException("struct_concat: At least one argument is required"); + } + + child_list_t combined_children; + case_insensitive_set_t name_set; + + bool has_unnamed = false; + + for (idx_t arg_idx = 0; arg_idx < arguments.size(); arg_idx++) { + const auto &arg = arguments[arg_idx]; + + if (arg->return_type.id() == LogicalTypeId::UNKNOWN) { + throw ParameterNotResolvedException(); + } + + if (arg->return_type.id() != LogicalTypeId::STRUCT) { + throw InvalidInputException("struct_concat: Argument at position \"%d\" is not a STRUCT", arg_idx + 1); + } + + const auto &child_types = StructType::GetChildTypes(arg->return_type); + for (const auto &child : child_types) { + if (!child.first.empty()) { + auto it = name_set.find(child.first); + if (it != name_set.end()) { + if (*it == child.first) { + throw InvalidInputException("struct_concat: Arguments contain duplicate STRUCT entry \"%s\"", + child.first); + } + throw InvalidInputException( + "struct_concat: Arguments contain case-insensitive duplicate STRUCT entry \"%s\" and \"%s\"", + child.first, *it); + } + name_set.insert(child.first); + } else { + has_unnamed = true; + } + combined_children.push_back(child); + } + } + + if (has_unnamed && !name_set.empty()) { + throw InvalidInputException("struct_concat: Cannot mix named and unnamed STRUCTs"); + } + + bound_function.return_type = LogicalType::STRUCT(combined_children); + return nullptr; +} + +unique_ptr StructConcatStats(ClientContext &context, FunctionStatisticsInput &input) { + const auto &expr = input.expr; + + auto &arg_stats = input.child_stats; + auto &arg_exprs = input.expr.children; + + auto struct_stats = StructStats::CreateUnknown(expr.return_type); + idx_t struct_index = 0; + + for (idx_t arg_idx = 0; arg_idx < arg_exprs.size(); arg_idx++) { + auto &arg_stat = arg_stats[arg_idx]; + auto &arg_type = arg_exprs[arg_idx]->return_type; + for (idx_t child_idx = 0; child_idx < StructType::GetChildCount(arg_type); child_idx++) { + auto &child_stat = StructStats::GetChildStats(arg_stat, child_idx); + StructStats::SetChildStats(struct_stats, struct_index++, child_stat); + } + } + return struct_stats.ToUnique(); +} + +ScalarFunction StructConcatFun::GetFunction() { + ScalarFunction fun("struct_concat", {}, LogicalTypeId::STRUCT, StructConcatFunction, StructConcatBind, nullptr, + StructConcatStats); + fun.varargs = LogicalType::ANY; + fun.null_handling = FunctionNullHandling::SPECIAL_HANDLING; + return fun; +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/scalar/struct/struct_extract.cpp b/src/duckdb/src/function/scalar/struct/struct_extract.cpp index b4ef1c8d..8434bed3 100644 --- a/src/duckdb/src/function/scalar/struct/struct_extract.cpp +++ b/src/duckdb/src/function/scalar/struct/struct_extract.cpp @@ -1,28 +1,14 @@ #include "duckdb/common/string_util.hpp" #include "duckdb/execution/expression_executor.hpp" +#include "duckdb/function/scalar/struct_functions.hpp" #include "duckdb/function/scalar/nested_functions.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression/bound_parameter_expression.hpp" #include "duckdb/storage/statistics/struct_stats.hpp" +#include "duckdb/function/scalar/struct_utils.hpp" namespace duckdb { -struct StructExtractBindData : public FunctionData { - explicit StructExtractBindData(idx_t index) : index(index) { - } - - idx_t index; - -public: - unique_ptr Copy() const override { - return make_uniq(index); - } - bool Equals(const FunctionData &other_p) const override { - auto &other = other_p.Cast(); - return index == other.index; - } -}; - static void StructExtractFunction(DataChunk &args, ExpressionState &state, Vector &result) { auto &func_expr = state.expr.Cast(); auto &info = func_expr.bind_info->Cast(); @@ -98,7 +84,7 @@ static unique_ptr StructExtractBind(ClientContext &context, Scalar } bound_function.return_type = std::move(return_type); - return StructExtractFun::GetBindData(key_index); + return GetBindData(key_index); } static unique_ptr StructExtractBindIndex(ClientContext &context, ScalarFunction &bound_function, @@ -134,7 +120,7 @@ static unique_ptr StructExtractBindIndex(ClientContext &context, S index, struct_children.size()); } bound_function.return_type = struct_children[NumericCast(index - 1)].second; - return StructExtractFun::GetBindData(NumericCast(index - 1)); + return GetBindData(NumericCast(index - 1)); } static unique_ptr PropagateStructExtractStats(ClientContext &context, FunctionStatisticsInput &input) { @@ -146,30 +132,26 @@ static unique_ptr PropagateStructExtractStats(ClientContext &con return struct_child_stats[info.index].ToUnique(); } -unique_ptr StructExtractFun::GetBindData(idx_t index) { +unique_ptr GetBindData(idx_t index) { return make_uniq(index); } -ScalarFunction StructExtractFun::KeyExtractFunction() { +ScalarFunction GetKeyExtractFunction() { return ScalarFunction("struct_extract", {LogicalTypeId::STRUCT, LogicalType::VARCHAR}, LogicalType::ANY, StructExtractFunction, StructExtractBind, nullptr, PropagateStructExtractStats); } -ScalarFunction StructExtractFun::IndexExtractFunction() { +ScalarFunction GetIndexExtractFunction() { return ScalarFunction("struct_extract", {LogicalTypeId::STRUCT, LogicalType::BIGINT}, LogicalType::ANY, StructExtractFunction, StructExtractBindIndex); } ScalarFunctionSet StructExtractFun::GetFunctions() { - ScalarFunctionSet functions("struct_extract"); - functions.AddFunction(KeyExtractFunction()); - functions.AddFunction(IndexExtractFunction()); - return functions; -} - -void StructExtractFun::RegisterFunction(BuiltinFunctions &set) { // the arguments and return types are actually set in the binder function - set.AddFunction(GetFunctions()); + ScalarFunctionSet struct_extract_set("struct_extract"); + struct_extract_set.AddFunction(GetKeyExtractFunction()); + struct_extract_set.AddFunction(GetIndexExtractFunction()); + return struct_extract_set; } } // namespace duckdb diff --git a/src/duckdb/src/core_functions/scalar/struct/struct_pack.cpp b/src/duckdb/src/function/scalar/struct/struct_pack.cpp similarity index 98% rename from src/duckdb/src/core_functions/scalar/struct/struct_pack.cpp rename to src/duckdb/src/function/scalar/struct/struct_pack.cpp index 4e71ea36..1cc0c637 100644 --- a/src/duckdb/src/core_functions/scalar/struct/struct_pack.cpp +++ b/src/duckdb/src/function/scalar/struct/struct_pack.cpp @@ -1,11 +1,11 @@ -#include "duckdb/core_functions/scalar/struct_functions.hpp" -#include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/common/string_util.hpp" -#include "duckdb/parser/expression/bound_expression.hpp" #include "duckdb/function/scalar/nested_functions.hpp" +#include "duckdb/function/scalar/struct_functions.hpp" #include "duckdb/common/case_insensitive_map.hpp" -#include "duckdb/storage/statistics/struct_stats.hpp" +#include "duckdb/common/string_util.hpp" +#include "duckdb/parser/expression/bound_expression.hpp" +#include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression_binder.hpp" +#include "duckdb/storage/statistics/struct_stats.hpp" namespace duckdb { diff --git a/src/duckdb/src/function/scalar/system/aggregate_export.cpp b/src/duckdb/src/function/scalar/system/aggregate_export.cpp index 92fea109..90d94dcb 100644 --- a/src/duckdb/src/function/scalar/system/aggregate_export.cpp +++ b/src/duckdb/src/function/scalar/system/aggregate_export.cpp @@ -1,5 +1,7 @@ #include "duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp" #include "duckdb/function/function_binder.hpp" +#include "duckdb/function/scalar/generic_common.hpp" +#include "duckdb/function/scalar/system_functions.hpp" #include "duckdb/function/scalar/generic_functions.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/main/database.hpp" @@ -339,7 +341,7 @@ ExportAggregateFunction::Bind(unique_ptr child_aggrega child_aggregate->aggr_type); } -ScalarFunction ExportAggregateFunction::GetFinalize() { +ScalarFunction FinalizeFun::GetFunction() { auto result = ScalarFunction("finalize", {LogicalTypeId::AGGREGATE_STATE}, LogicalTypeId::INVALID, AggregateStateFinalize, BindAggregateState, nullptr, nullptr, InitFinalizeState); result.null_handling = FunctionNullHandling::SPECIAL_HANDLING; @@ -348,7 +350,7 @@ ScalarFunction ExportAggregateFunction::GetFinalize() { return result; } -ScalarFunction ExportAggregateFunction::GetCombine() { +ScalarFunction CombineFun::GetFunction() { auto result = ScalarFunction("combine", {LogicalTypeId::AGGREGATE_STATE, LogicalTypeId::ANY}, LogicalTypeId::AGGREGATE_STATE, AggregateStateCombine, BindAggregateState, nullptr, nullptr, InitCombineState); @@ -358,9 +360,4 @@ ScalarFunction ExportAggregateFunction::GetCombine() { return result; } -void ExportAggregateFunction::RegisterFunction(BuiltinFunctions &set) { - set.AddFunction(ExportAggregateFunction::GetCombine()); - set.AddFunction(ExportAggregateFunction::GetFinalize()); -} - } // namespace duckdb diff --git a/src/duckdb/src/function/scalar_function.cpp b/src/duckdb/src/function/scalar_function.cpp index 75d74cf5..a627643f 100644 --- a/src/duckdb/src/function/scalar_function.cpp +++ b/src/duckdb/src/function/scalar_function.cpp @@ -10,28 +10,28 @@ ScalarFunctionInfo::~ScalarFunctionInfo() { ScalarFunction::ScalarFunction(string name, vector arguments, LogicalType return_type, scalar_function_t function, bind_scalar_function_t bind, - dependency_function_t dependency, function_statistics_t statistics, + bind_scalar_function_extended_t bind_extended, function_statistics_t statistics, init_local_state_t init_local_state, LogicalType varargs, FunctionStability side_effects, FunctionNullHandling null_handling, bind_lambda_function_t bind_lambda) : BaseScalarFunction(std::move(name), std::move(arguments), std::move(return_type), side_effects, std::move(varargs), null_handling), - function(std::move(function)), bind(bind), init_local_state(init_local_state), dependency(dependency), + function(std::move(function)), bind(bind), bind_extended(bind_extended), init_local_state(init_local_state), statistics(statistics), bind_lambda(bind_lambda), bind_expression(nullptr), get_modified_databases(nullptr), serialize(nullptr), deserialize(nullptr) { } ScalarFunction::ScalarFunction(vector arguments, LogicalType return_type, scalar_function_t function, - bind_scalar_function_t bind, dependency_function_t dependency, + bind_scalar_function_t bind, bind_scalar_function_extended_t bind_extended, function_statistics_t statistics, init_local_state_t init_local_state, LogicalType varargs, FunctionStability side_effects, FunctionNullHandling null_handling, bind_lambda_function_t bind_lambda) - : ScalarFunction(string(), std::move(arguments), std::move(return_type), std::move(function), bind, dependency, + : ScalarFunction(string(), std::move(arguments), std::move(return_type), std::move(function), bind, bind_extended, statistics, init_local_state, std::move(varargs), side_effects, null_handling, bind_lambda) { } bool ScalarFunction::operator==(const ScalarFunction &rhs) const { return name == rhs.name && arguments == rhs.arguments && return_type == rhs.return_type && varargs == rhs.varargs && - bind == rhs.bind && dependency == rhs.dependency && statistics == rhs.statistics && + bind == rhs.bind && bind_extended == rhs.bind_extended && statistics == rhs.statistics && bind_lambda == rhs.bind_lambda; } diff --git a/src/duckdb/src/function/table/arrow.cpp b/src/duckdb/src/function/table/arrow.cpp index 16b5c5e4..5d719e8f 100644 --- a/src/duckdb/src/function/table/arrow.cpp +++ b/src/duckdb/src/function/table/arrow.cpp @@ -35,9 +35,11 @@ static unique_ptr GetArrowExtensionType(const ArrowSchemaMetadata &ex // Check for arrow canonical extensions if (arrow_extension == "arrow.uuid") { if (format != "w:16") { - throw InvalidInputException( - "arrow.uuid must be a fixed-size binary of 16 bytes (i.e., \'w:16\'). It is incorrectly defined as: %s", - format); + std::ostringstream error; + error + << "arrow.uuid must be a fixed-size binary of 16 bytes (i.e., \'w:16\'). It is incorrectly defined as:" + << format; + return make_uniq(error.str()); } return make_uniq(LogicalType::UUID); } else if (arrow_extension == "arrow.json") { @@ -49,40 +51,47 @@ static unique_ptr GetArrowExtensionType(const ArrowSchemaMetadata &ex } else if (format == "vu") { return make_uniq(LogicalType::JSON(), make_uniq(ArrowVariableSizeType::VIEW)); } else { - throw InvalidInputException("arrow.json must be of a varchar format (i.e., \'u\',\'U\' or \'vu\'). It is " - "incorrectly defined as: %s", - format); + std::ostringstream error; + error + << "arrow.json must be of a varchar format (i.e., \'u\',\'U\' or \'vu\'). It is incorrectly defined as:" + << format; + return make_uniq(error.str()); } } // Check for DuckDB canonical extensions - else if (arrow_extension == "duckdb.hugeint") { + else if (extension_type.IsNonCanonicalType("hugeint")) { if (format != "w:16") { - throw InvalidInputException("duckdb.hugeint must be a fixed-size binary of 16 bytes (i.e., \'w:16\'). It " - "is incorrectly defined as: %s", - format); + std::ostringstream error; + error << "DuckDB hugeint must be a fixed-size binary of 16 bytes (i.e., \'w:16\'). It is incorrectly " + "defined as:" + << format; + return make_uniq(error.str()); } return make_uniq(LogicalType::HUGEINT); - - } else if (arrow_extension == "duckdb.uhugeint") { + } else if (extension_type.IsNonCanonicalType("uhugeint")) { if (format != "w:16") { - throw InvalidInputException("duckdb.hugeint must be a fixed-size binary of 16 bytes (i.e., \'w:16\'). It " - "is incorrectly defined as: %s", - format); + std::ostringstream error; + error << "DuckDB uhugeint must be a fixed-size binary of 16 bytes (i.e., \'w:16\'). It is incorrectly " + "defined as:" + << format; + return make_uniq(error.str()); } return make_uniq(LogicalType::UHUGEINT); - } else if (arrow_extension == "duckdb.time_tz") { + } else if (extension_type.IsNonCanonicalType("time_tz")) { if (format != "w:8") { - throw InvalidInputException("duckdb.time_tz must be a fixed-size binary of 8 bytes (i.e., \'w:8\'). It " - "is incorrectly defined as: %s", - format); + std::ostringstream error; + error << "DuckDB time_tz must be a fixed-size binary of 8 bytes (i.e., \'w:8\'). It is incorrectly defined " + "as:" + << format; + return make_uniq(error.str()); } return make_uniq(LogicalType::TIME_TZ, make_uniq(ArrowDateTimeType::MICROSECONDS)); - } else if (arrow_extension == "duckdb.bit") { + } else if (extension_type.IsNonCanonicalType("bit")) { if (format != "z" && format != "Z") { - throw InvalidInputException("duckdb.bit must be a blob (i.e., \'z\' or \'Z\'). It " - "is incorrectly defined as: %s", - format); + std::ostringstream error; + error << "DuckDB bit must be a blob (i.e., \'z\' or \'Z\'). It is incorrectly defined as:" << format; + return make_uniq(error.str()); } else if (format == "z") { auto type_info = make_uniq(ArrowVariableSizeType::NORMAL); return make_uniq(LogicalType::BIT, std::move(type_info)); @@ -90,10 +99,24 @@ static unique_ptr GetArrowExtensionType(const ArrowSchemaMetadata &ex auto type_info = make_uniq(ArrowVariableSizeType::SUPER_SIZE); return make_uniq(LogicalType::BIT, std::move(type_info)); + } else if (extension_type.IsNonCanonicalType("varint")) { + if (format != "z" && format != "Z") { + std::ostringstream error; + error << "DuckDB bit must be a blob (i.e., \'z\'). It is incorrectly defined as:" << format; + return make_uniq(error.str()); + } + unique_ptr type_info; + if (format == "z") { + type_info = make_uniq(ArrowVariableSizeType::NORMAL); + } else { + type_info = make_uniq(ArrowVariableSizeType::SUPER_SIZE); + } + return make_uniq(LogicalType::VARINT, std::move(type_info)); } else { - throw NotImplementedException( - "Arrow Type with extension name: %s and format: %s, is not currently supported in DuckDB ", arrow_extension, - format); + std::ostringstream error; + error << "Arrow Type with extension name: " << arrow_extension << " and format: " << format + << ", is not currently supported in DuckDB."; + return make_uniq(error.str(), true); } } static unique_ptr GetArrowLogicalTypeNoDictionary(ArrowSchema &schema) { @@ -347,6 +370,15 @@ void ArrowTableFunction::PopulateArrowTableType(ArrowTableType &arrow_table, Arr } } +unique_ptr ArrowTableFunction::ArrowScanBindDumb(ClientContext &context, TableFunctionBindInput &input, + vector &return_types, + vector &names) { + auto bind_data = ArrowScanBind(context, input, return_types, names); + auto &arrow_bind_data = bind_data->Cast(); + arrow_bind_data.projection_pushdown_enabled = false; + return bind_data; +} + unique_ptr ArrowTableFunction::ArrowScanBind(ClientContext &context, TableFunctionBindInput &input, vector &return_types, vector &names) { if (input.inputs[0].IsNull() || input.inputs[1].IsNull() || input.inputs[2].IsNull()) { @@ -384,10 +416,12 @@ unique_ptr ProduceArrowScan(const ArrowScanFunctionData //! Generate Projection Pushdown Vector ArrowStreamParameters parameters; D_ASSERT(!column_ids.empty()); + auto &arrow_types = function.arrow_table.GetColumns(); for (idx_t idx = 0; idx < column_ids.size(); idx++) { auto col_idx = column_ids[idx]; if (col_idx != COLUMN_IDENTIFIER_ROW_ID) { auto &schema = *function.schema_root.arrow_schema.children[col_idx]; + arrow_types.at(col_idx)->ThrowIfInvalid(); parameters.projected_columns.projection_map[idx] = schema.name; parameters.projected_columns.columns.emplace_back(schema.name); parameters.projected_columns.filter_to_col[idx] = col_idx; @@ -450,7 +484,10 @@ ArrowTableFunction::ArrowScanInitLocalInternal(ClientContext &context, TableFunc auto result = make_uniq(std::move(current_chunk)); result->column_ids = input.column_ids; result->filters = input.filters.get(); - if (!input.projection_ids.empty()) { + auto &bind_data = input.bind_data->Cast(); + if (!bind_data.projection_pushdown_enabled) { + result->column_ids.clear(); + } else if (!input.projection_ids.empty()) { auto &asgs = global_state_p->Cast(); result->all_columns.Initialize(context, asgs.scanned_types); } @@ -501,11 +538,13 @@ unique_ptr ArrowTableFunction::ArrowScanCardinality(ClientContex return make_uniq(); } -idx_t ArrowTableFunction::ArrowGetBatchIndex(ClientContext &context, const FunctionData *bind_data_p, - LocalTableFunctionState *local_state, - GlobalTableFunctionState *global_state) { - auto &state = local_state->Cast(); - return state.batch_index; +OperatorPartitionData ArrowTableFunction::ArrowGetPartitionData(ClientContext &context, + TableFunctionGetPartitionInput &input) { + if (input.partition_info.RequiresPartitionColumns()) { + throw InternalException("ArrowTableFunction::GetPartitionData: partition columns not supported"); + } + auto &state = input.local_state->Cast(); + return OperatorPartitionData(state.batch_index); } bool ArrowTableFunction::ArrowPushdownType(const LogicalType &type) { @@ -559,7 +598,7 @@ void ArrowTableFunction::RegisterFunction(BuiltinFunctions &set) { TableFunction arrow("arrow_scan", {LogicalType::POINTER, LogicalType::POINTER, LogicalType::POINTER}, ArrowScanFunction, ArrowScanBind, ArrowScanInitGlobal, ArrowScanInitLocal); arrow.cardinality = ArrowScanCardinality; - arrow.get_batch_index = ArrowGetBatchIndex; + arrow.get_partition_data = ArrowGetPartitionData; arrow.projection_pushdown = true; arrow.filter_pushdown = true; arrow.filter_prune = true; @@ -567,9 +606,9 @@ void ArrowTableFunction::RegisterFunction(BuiltinFunctions &set) { set.AddFunction(arrow); TableFunction arrow_dumb("arrow_scan_dumb", {LogicalType::POINTER, LogicalType::POINTER, LogicalType::POINTER}, - ArrowScanFunction, ArrowScanBind, ArrowScanInitGlobal, ArrowScanInitLocal); + ArrowScanFunction, ArrowScanBindDumb, ArrowScanInitGlobal, ArrowScanInitLocal); arrow_dumb.cardinality = ArrowScanCardinality; - arrow_dumb.get_batch_index = ArrowGetBatchIndex; + arrow_dumb.get_partition_data = ArrowGetPartitionData; arrow_dumb.projection_pushdown = false; arrow_dumb.filter_pushdown = false; arrow_dumb.filter_prune = false; diff --git a/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp b/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp index b434b99c..3f23e94e 100644 --- a/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp +++ b/src/duckdb/src/function/table/arrow/arrow_duck_schema.cpp @@ -43,6 +43,15 @@ bool ArrowType::RunEndEncoded() const { return run_end_encoded; } +void ArrowType::ThrowIfInvalid() const { + if (type.id() == LogicalTypeId::INVALID) { + if (not_implemented) { + throw NotImplementedException(error_message); + } + throw InvalidInputException(error_message); + } +} + LogicalType ArrowType::GetDuckType(bool use_dictionary) const { if (use_dictionary && dictionary_type) { return dictionary_type->GetDuckType(); diff --git a/src/duckdb/src/function/table/arrow_conversion.cpp b/src/duckdb/src/function/table/arrow_conversion.cpp index b83bbf56..261635e1 100644 --- a/src/duckdb/src/function/table/arrow_conversion.cpp +++ b/src/duckdb/src/function/table/arrow_conversion.cpp @@ -27,6 +27,7 @@ ArrowArrayPhysicalType GetArrowArrayPhysicalType(const ArrowType &type) { } // namespace +#if STANDARD_VECTOR_SIZE > 64 static void ShiftRight(unsigned char *ar, int size, int shift) { int carry = 0; while (shift--) { @@ -37,6 +38,7 @@ static void ShiftRight(unsigned char *ar, int size, int shift) { } } } +#endif idx_t GetEffectiveOffset(const ArrowArray &array, int64_t parent_offset, const ArrowScanLocalState &state, int64_t nested_offset = -1) { @@ -98,7 +100,7 @@ static void GetValidityMask(ValidityMask &mask, ArrowArray &array, const ArrowSc //! We are setting a validity mask of the data part of dictionary vector //! For some reason, Nulls are allowed to be indexes, hence we need to set the last element here to be null //! We might have to resize the mask - mask.Resize(size, size + 1); + mask.Resize(size + 1); mask.SetInvalid(size); } } @@ -138,6 +140,12 @@ static ArrowListOffsetData ConvertArrowListOffsetsTemplated(Vector &vector, Arro auto &start_offset = result.start_offset; auto &list_size = result.list_size; + if (size == 0) { + start_offset = 0; + list_size = 0; + return result; + } + idx_t cur_offset = 0; auto offsets = ArrowBufferData(array, 1) + effective_offset; start_offset = offsets[0]; @@ -765,14 +773,12 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowArraySca case LogicalTypeId::BOOLEAN: { //! Arrow bit-packs boolean values //! Lets first figure out where we are in the source array - auto src_ptr = ArrowBufferData(array, 1) + - GetEffectiveOffset(array, NumericCast(parent_offset), scan_state, nested_offset) / 8; + auto effective_offset = + GetEffectiveOffset(array, NumericCast(parent_offset), scan_state, nested_offset); + auto src_ptr = ArrowBufferData(array, 1) + effective_offset / 8; auto tgt_ptr = (uint8_t *)FlatVector::GetData(vector); int src_pos = 0; - idx_t cur_bit = scan_state.chunk_offset % 8; - if (nested_offset != -1) { - cur_bit = NumericCast(nested_offset % 8); - } + idx_t cur_bit = effective_offset % 8; for (idx_t row = 0; row < size; row++) { if ((src_ptr[src_pos] & (1 << cur_bit)) == 0) { tgt_ptr[row] = 0; @@ -1026,7 +1032,8 @@ static void ColumnArrowToDuckDB(Vector &vector, ArrowArray &array, ArrowArraySca break; } case LogicalTypeId::BLOB: - case LogicalTypeId::BIT: { + case LogicalTypeId::BIT: + case LogicalTypeId::VARINT: { ArrowToDuckDBBlob(vector, array, scan_state, size, arrow_type, nested_offset, NumericCast(parent_offset)); break; @@ -1335,7 +1342,7 @@ static void ColumnArrowToDuckDBDictionary(Vector &vector, ArrowArray &array, Arr void ArrowTableFunction::ArrowToDuckDB(ArrowScanLocalState &scan_state, const arrow_column_map_t &arrow_convert_data, DataChunk &output, idx_t start, bool arrow_scan_is_projected) { for (idx_t idx = 0; idx < output.ColumnCount(); idx++) { - auto col_idx = scan_state.column_ids[idx]; + auto col_idx = scan_state.column_ids.empty() ? idx : scan_state.column_ids[idx]; // If projection was not pushed down into the arrow scanner, but projection pushdown is enabled on the // table function, we need to use original column ids here. diff --git a/src/duckdb/src/function/table/copy_csv.cpp b/src/duckdb/src/function/table/copy_csv.cpp index b2c16a67..42e3f061 100644 --- a/src/duckdb/src/function/table/copy_csv.cpp +++ b/src/duckdb/src/function/table/copy_csv.cpp @@ -7,7 +7,7 @@ #include "duckdb/common/types/column/column_data_collection.hpp" #include "duckdb/common/types/string_type.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "duckdb/function/copy_function.hpp" #include "duckdb/function/scalar/string_functions.hpp" #include "duckdb/function/table/read_csv.hpp" @@ -40,6 +40,15 @@ void SubstringDetection(char str_1, string &str_2, const string &name_str_1, con } } +void StringDetection(const string &str_1, const string &str_2, const string &name_str_1, const string &name_str_2) { + if (str_1.empty() || str_2.empty()) { + return; + } + if (str_2.find(str_1) != string::npos) { + throw BinderException("%s must not appear in the %s specification and vice versa", name_str_1, name_str_2); + } +} + //===--------------------------------------------------------------------===// // Bind //===--------------------------------------------------------------------===// @@ -50,17 +59,15 @@ void WriteQuoteOrEscape(WriteStream &writer, char quote_or_escape) { } void BaseCSVData::Finalize() { - // verify that the options are correct in the final pass - if (options.dialect_options.state_machine_options.escape == '\0') { - options.dialect_options.state_machine_options.escape = options.dialect_options.state_machine_options.quote; - } - // escape and delimiter must not be substrings of each other - AreOptionsEqual(options.dialect_options.state_machine_options.delimiter.GetValue(), - options.dialect_options.state_machine_options.escape.GetValue(), "DELIMITER", "ESCAPE"); + auto delimiter_string = options.dialect_options.state_machine_options.delimiter.GetValue(); + + // quote and delimiter must not be substrings of each other + SubstringDetection(options.dialect_options.state_machine_options.quote.GetValue(), delimiter_string, "QUOTE", + "DELIMITER"); - // delimiter and quote must not be substrings of each other - AreOptionsEqual(options.dialect_options.state_machine_options.quote.GetValue(), - options.dialect_options.state_machine_options.delimiter.GetValue(), "DELIMITER", "QUOTE"); + // escape and delimiter must not be substrings of each other + SubstringDetection(options.dialect_options.state_machine_options.escape.GetValue(), delimiter_string, "ESCAPE", + "DELIMITER"); // escape and quote must not be substrings of each other (but can be the same) if (options.dialect_options.state_machine_options.quote != options.dialect_options.state_machine_options.escape) { @@ -68,26 +75,33 @@ void BaseCSVData::Finalize() { options.dialect_options.state_machine_options.escape.GetValue(), "QUOTE", "ESCAPE"); } - // delimiter and quote must not be substrings of each other + // comment and quote must not be substrings of each other AreOptionsEqual(options.dialect_options.state_machine_options.comment.GetValue(), options.dialect_options.state_machine_options.quote.GetValue(), "COMMENT", "QUOTE"); - // delimiter and quote must not be substrings of each other - AreOptionsEqual(options.dialect_options.state_machine_options.comment.GetValue(), - options.dialect_options.state_machine_options.delimiter.GetValue(), "COMMENT", "DELIMITER"); + // delimiter and comment must not be substrings of each other + SubstringDetection(options.dialect_options.state_machine_options.comment.GetValue(), delimiter_string, "COMMENT", + "DELIMITER"); // null string and delimiter must not be substrings of each other for (auto &null_str : options.null_str) { if (!null_str.empty()) { - SubstringDetection(options.dialect_options.state_machine_options.delimiter.GetValue(), null_str, - "DELIMITER", "NULL"); + StringDetection(options.dialect_options.state_machine_options.delimiter.GetValue(), null_str, "DELIMITER", + "NULL"); - // quote/escape and nullstr must not be substrings of each other + // quote and nullstr must not be substrings of each other SubstringDetection(options.dialect_options.state_machine_options.quote.GetValue(), null_str, "QUOTE", "NULL"); - SubstringDetection(options.dialect_options.state_machine_options.escape.GetValue(), null_str, "ESCAPE", - "NULL"); + // Validate the nullstr against the escape character + const char escape = options.dialect_options.state_machine_options.escape.GetValue(); + // Allow nullstr to be escape character + some non-special character, e.g., "\N" (MySQL default). + // In this case, only unquoted occurrences of the nullstr will be recognized as null values. + if (options.dialect_options.state_machine_options.rfc_4180 == false && null_str.size() == 2 && + null_str[0] == escape && null_str[1] != '\0') { + continue; + } + SubstringDetection(escape, null_str, "ESCAPE", "NULL"); } } @@ -203,7 +217,7 @@ static unique_ptr WriteCSVBind(ClientContext &context, CopyFunctio bind_data->requires_quotes['\n'] = true; bind_data->requires_quotes['\r'] = true; bind_data->requires_quotes[NumericCast( - bind_data->options.dialect_options.state_machine_options.delimiter.GetValue())] = true; + bind_data->options.dialect_options.state_machine_options.delimiter.GetValue()[0])] = true; bind_data->requires_quotes[NumericCast( bind_data->options.dialect_options.state_machine_options.quote.GetValue())] = true; @@ -311,7 +325,8 @@ static void WriteQuotedString(WriteStream &writer, WriteCSVData &csv_data, const // force quote is disabled: check if we need to add quotes anyway force_quote = RequiresQuotes(csv_data, str, len); } - if (force_quote) { + // If a quote is set to none (i.e., null-terminator) we skip the quotation + if (force_quote && options.dialect_options.state_machine_options.quote.GetValue() != '\0') { // quoting is enabled: we might need to escape things in the string bool requires_escape = false; // simple CSV @@ -440,7 +455,7 @@ static unique_ptr WriteCSVInitializeGlobal(ClientContext &co // write the header line to the file for (idx_t i = 0; i < csv_data.options.name_list.size(); i++) { if (i != 0) { - WriteQuoteOrEscape(stream, options.dialect_options.state_machine_options.delimiter.GetValue()); + WriteQuoteOrEscape(stream, options.dialect_options.state_machine_options.delimiter.GetValue()[0]); } WriteQuotedString(stream, csv_data, csv_data.options.name_list[i].c_str(), csv_data.options.name_list[i].size(), false); @@ -477,7 +492,7 @@ static void WriteCSVChunkInternal(ClientContext &context, FunctionData &bind_dat D_ASSERT(options.null_str.size() == 1); for (idx_t col_idx = 0; col_idx < cast_chunk.ColumnCount(); col_idx++) { if (col_idx != 0) { - WriteQuoteOrEscape(writer, options.dialect_options.state_machine_options.delimiter.GetValue()); + WriteQuoteOrEscape(writer, options.dialect_options.state_machine_options.delimiter.GetValue()[0]); } if (FlatVector::IsNull(cast_chunk.data[col_idx], row_idx)) { // write null value diff --git a/src/duckdb/src/function/table/glob.cpp b/src/duckdb/src/function/table/glob.cpp index d3146245..736c2778 100644 --- a/src/duckdb/src/function/table/glob.cpp +++ b/src/duckdb/src/function/table/glob.cpp @@ -8,7 +8,7 @@ namespace duckdb { struct GlobFunctionBindData : public TableFunctionData { - unique_ptr file_list; + shared_ptr file_list; }; static unique_ptr GlobFunctionBind(ClientContext &context, TableFunctionBindInput &input, diff --git a/src/duckdb/src/function/table/query_function.cpp b/src/duckdb/src/function/table/query_function.cpp index d000c03a..c44b1919 100644 --- a/src/duckdb/src/function/table/query_function.cpp +++ b/src/duckdb/src/function/table/query_function.cpp @@ -16,33 +16,39 @@ static unique_ptr ParseSubquery(const string &query, const ParserOp return duckdb::make_uniq(std::move(select_stmt)); } -static void UnionTablesQuery(TableFunctionBindInput &input, string &query) { +static string UnionTablesQuery(TableFunctionBindInput &input) { for (auto &input_val : input.inputs) { if (input_val.IsNull()) { throw BinderException("Cannot use NULL as function argument"); } } + string result; string by_name = (input.inputs.size() == 2 && (input.inputs[1].type().id() == LogicalTypeId::BOOLEAN && input.inputs[1].GetValue())) ? "BY NAME " : ""; // 'by_name' variable defaults to false if (input.inputs[0].type().id() == LogicalTypeId::VARCHAR) { - query += "FROM " + KeywordHelper::WriteOptionallyQuoted(input.inputs[0].ToString()); + auto from_path = input.inputs[0].ToString(); + auto qualified_name = QualifiedName::Parse(from_path); + result += "FROM " + qualified_name.ToString(); } else if (input.inputs[0].type() == LogicalType::LIST(LogicalType::VARCHAR)) { string union_all_clause = " UNION ALL " + by_name + "FROM "; const auto &children = ListValue::GetChildren(input.inputs[0]); + if (children.empty()) { throw InvalidInputException("Input list is empty"); } - - query += "FROM " + KeywordHelper::WriteOptionallyQuoted(children[0].ToString()); + auto qualified_name = QualifiedName::Parse(children[0].ToString()); + result += "FROM " + qualified_name.ToString(); for (size_t i = 1; i < children.size(); ++i) { auto child = children[i].ToString(); - query += union_all_clause + KeywordHelper::WriteOptionallyQuoted(child); + auto qualified_name = QualifiedName::Parse(child); + result += union_all_clause + qualified_name.ToString(); } } else { throw InvalidInputException("Expected a table or a list with tables as input"); } + return result; } static unique_ptr QueryBindReplace(ClientContext &context, TableFunctionBindInput &input) { @@ -52,8 +58,7 @@ static unique_ptr QueryBindReplace(ClientContext &context, TableFuncti } static unique_ptr TableBindReplace(ClientContext &context, TableFunctionBindInput &input) { - string query; - UnionTablesQuery(input, query); + auto query = UnionTablesQuery(input); auto subquery_ref = ParseSubquery(query, context.GetParserOptions(), "Expected a table or a list with tables as input"); return std::move(subquery_ref); diff --git a/src/duckdb/src/function/table/read_csv.cpp b/src/duckdb/src/function/table/read_csv.cpp index 58948af7..d27c3470 100644 --- a/src/duckdb/src/function/table/read_csv.cpp +++ b/src/duckdb/src/function/table/read_csv.cpp @@ -8,7 +8,7 @@ #include "duckdb/common/union_by_name.hpp" #include "duckdb/execution/operator/csv_scanner/global_csv_state.hpp" #include "duckdb/execution/operator/csv_scanner/csv_error.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "duckdb/execution/operator/persistent/csv_rejects_table.hpp" #include "duckdb/function/function_set.hpp" #include "duckdb/main/client_context.hpp" @@ -26,14 +26,16 @@ #include "duckdb/execution/operator/csv_scanner/string_value_scanner.hpp" #include +#include "duckdb/execution/operator/csv_scanner/csv_schema.hpp" namespace duckdb { -unique_ptr ReadCSV::OpenCSV(const string &file_path, FileCompressionType compression, +unique_ptr ReadCSV::OpenCSV(const string &file_path, const CSVReaderOptions &options, ClientContext &context) { auto &fs = FileSystem::GetFileSystem(context); auto &allocator = BufferAllocator::Get(context); - return CSVFileHandle::OpenFile(fs, allocator, file_path, compression); + auto &db_config = DBConfig::GetConfig(context); + return CSVFileHandle::OpenFile(db_config, fs, allocator, file_path, options); } ReadCSVData::ReadCSVData() { @@ -43,6 +45,80 @@ void ReadCSVData::FinalizeRead(ClientContext &context) { BaseCSVData::Finalize(); } +//! Function to do schema discovery over one CSV file or a list/glob of CSV files +void SchemaDiscovery(ClientContext &context, ReadCSVData &result, CSVReaderOptions &options, + vector &return_types, vector &names, MultiFileList &multi_file_list) { + vector schemas; + const auto option_og = options; + + const auto file_paths = multi_file_list.GetAllFiles(); + + // Here what we want to do is to sniff a given number of lines, if we have many files, we might go through them + // to reach the number of lines. + const idx_t required_number_of_lines = options.sniff_size * options.sample_size_chunks; + + idx_t total_number_of_rows = 0; + idx_t current_file = 0; + options.file_path = file_paths[current_file]; + + result.buffer_manager = make_shared_ptr(context, options, options.file_path, 0, false); + { + CSVSniffer sniffer(options, result.buffer_manager, CSVStateMachineCache::Get(context)); + auto sniffer_result = sniffer.SniffCSV(); + idx_t rows_read = sniffer.LinesSniffed() - + (options.dialect_options.skip_rows.GetValue() + options.dialect_options.header.GetValue()); + + schemas.emplace_back(sniffer_result.names, sniffer_result.return_types, file_paths[0], rows_read, + result.buffer_manager->GetBuffer(0)->actual_size == 0); + total_number_of_rows += sniffer.LinesSniffed(); + } + + // We do a copy of the options to not pollute the options of the first file. + const idx_t max_files_to_sniff = 10; + idx_t files_to_sniff = file_paths.size() > max_files_to_sniff ? max_files_to_sniff : file_paths.size(); + while (total_number_of_rows < required_number_of_lines && current_file + 1 < files_to_sniff) { + auto option_copy = option_og; + current_file++; + option_copy.file_path = file_paths[current_file]; + auto buffer_manager = + make_shared_ptr(context, option_copy, option_copy.file_path, current_file, false); + // TODO: We could cache the sniffer to be reused during scanning. Currently that's an exercise left to the + // reader + CSVSniffer sniffer(option_copy, buffer_manager, CSVStateMachineCache::Get(context)); + auto sniffer_result = sniffer.SniffCSV(); + idx_t rows_read = sniffer.LinesSniffed() - (option_copy.dialect_options.skip_rows.GetValue() + + option_copy.dialect_options.header.GetValue()); + if (buffer_manager->GetBuffer(0)->actual_size == 0) { + schemas.emplace_back(true); + } else { + schemas.emplace_back(sniffer_result.names, sniffer_result.return_types, option_copy.file_path, rows_read); + } + total_number_of_rows += sniffer.LinesSniffed(); + } + + // We might now have multiple schemas, we need to go through them to define the one true schema + CSVSchema best_schema; + for (auto &schema : schemas) { + if (best_schema.Empty()) { + // A schema is bettah than no schema + best_schema = schema; + } else if (best_schema.GetRowsRead() == 0) { + // If the best-schema has no data-rows, that's easy, we just take the new schema + best_schema = schema; + } else if (schema.GetRowsRead() != 0) { + // We might have conflicting-schemas, we must merge them + best_schema.MergeSchemas(schema, options.null_padding); + } + } + + if (names.empty()) { + names = best_schema.GetNames(); + return_types = best_schema.GetTypes(); + } + result.csv_types = return_types; + result.csv_names = names; +} + static unique_ptr ReadCSVBind(ClientContext &context, TableFunctionBindInput &input, vector &return_types, vector &names) { @@ -52,36 +128,9 @@ static unique_ptr ReadCSVBind(ClientContext &context, TableFunctio auto multi_file_list = multi_file_reader->CreateFileList(context, input.inputs[0]); options.FromNamedParameters(input.named_parameters, context); - if (options.rejects_table_name.IsSetByUser() && !options.store_rejects.GetValue() && - options.store_rejects.IsSetByUser()) { - throw BinderException("REJECTS_TABLE option is only supported when store_rejects is not manually set to false"); - } - if (options.rejects_scan_name.IsSetByUser() && !options.store_rejects.GetValue() && - options.store_rejects.IsSetByUser()) { - throw BinderException("REJECTS_SCAN option is only supported when store_rejects is not manually set to false"); - } - if (options.rejects_scan_name.IsSetByUser() || options.rejects_table_name.IsSetByUser()) { - // Ensure we set store_rejects to true automagically - options.store_rejects.Set(true, false); - } - // Validate rejects_table options - if (options.store_rejects.GetValue()) { - if (!options.ignore_errors.GetValue() && options.ignore_errors.IsSetByUser()) { - throw BinderException( - "STORE_REJECTS option is only supported when IGNORE_ERRORS is not manually set to false"); - } - // Ensure we set ignore errors to true automagically - options.ignore_errors.Set(true, false); - if (options.file_options.union_by_name) { - throw BinderException("REJECTS_TABLE option is not supported when UNION_BY_NAME is set to true"); - } - } - if (options.rejects_limit != 0 && !options.store_rejects.GetValue()) { - throw BinderException("REJECTS_LIMIT option is only supported when REJECTS_TABLE is set to a table name"); - } options.file_options.AutoDetectHivePartitioning(*multi_file_list, context); - + options.Verify(); if (!options.auto_detect) { if (!options.columns_set) { throw BinderException("read_csv requires columns to be specified through the 'columns' option. Use " @@ -93,16 +142,7 @@ static unique_ptr ReadCSVBind(ClientContext &context, TableFunctio } } if (options.auto_detect && !options.file_options.union_by_name) { - options.file_path = multi_file_list->GetFirstFile(); - result->buffer_manager = make_shared_ptr(context, options, options.file_path, 0); - CSVSniffer sniffer(options, result->buffer_manager, CSVStateMachineCache::Get(context)); - auto sniffer_result = sniffer.SniffCSV(); - if (names.empty()) { - names = sniffer_result.names; - return_types = sniffer_result.return_types; - } - result->csv_types = return_types; - result->csv_names = names; + SchemaDiscovery(context, *result, options, return_types, names, *multi_file_list); } D_ASSERT(return_types.size() == names.size()); @@ -138,7 +178,7 @@ static unique_ptr ReadCSVBind(ClientContext &context, TableFunctio result->return_types = return_types; result->return_names = names; if (!options.force_not_null_names.empty()) { - // Lets first check all column names match + // Let's first check all column names match duckdb::unordered_set column_names; for (auto &name : names) { column_names.insert(name); @@ -196,7 +236,7 @@ static unique_ptr ReadCSVInitGlobal(ClientContext &con return nullptr; } return make_uniq(context, bind_data.buffer_manager, bind_data.options, - context.db->NumberOfThreads(), bind_data.files, input.column_ids, bind_data); + context.db->NumberOfThreads(), bind_data.files, input.column_indexes, bind_data); } unique_ptr ReadCSVInitLocal(ExecutionContext &context, TableFunctionInitInput &input, @@ -249,10 +289,12 @@ static void ReadCSVFunction(ClientContext &context, TableFunctionInput &data_p, } while (true); } -static idx_t CSVReaderGetBatchIndex(ClientContext &context, const FunctionData *bind_data_p, - LocalTableFunctionState *local_state, GlobalTableFunctionState *global_state) { - auto &data = local_state->Cast(); - return data.csv_reader->scanner_idx; +static OperatorPartitionData CSVReaderGetPartitionData(ClientContext &context, TableFunctionGetPartitionInput &input) { + if (input.partition_info.RequiresPartitionColumns()) { + throw InternalException("CSVReader::GetPartitionData: partition columns not supported"); + } + auto &data = input.local_state->Cast(); + return OperatorPartitionData(data.csv_reader->scanner_idx); } void ReadCSVTableFunction::ReadCSVAddNamedParameters(TableFunction &table_function) { @@ -291,8 +333,9 @@ void ReadCSVTableFunction::ReadCSVAddNamedParameters(TableFunction &table_functi table_function.named_parameters["types"] = LogicalType::ANY; table_function.named_parameters["names"] = LogicalType::LIST(LogicalType::VARCHAR); table_function.named_parameters["column_names"] = LogicalType::LIST(LogicalType::VARCHAR); - table_function.named_parameters["parallel"] = LogicalType::BOOLEAN; table_function.named_parameters["comment"] = LogicalType::VARCHAR; + table_function.named_parameters["encoding"] = LogicalType::VARCHAR; + table_function.named_parameters["rfc_4180"] = LogicalType::BOOLEAN; MultiFileReader::AddParameters(table_function); } @@ -324,13 +367,11 @@ void CSVComplexFilterPushdown(ClientContext &context, LogicalGet &get, FunctionD unique_ptr CSVReaderCardinality(ClientContext &context, const FunctionData *bind_data_p) { auto &bind_data = bind_data_p->Cast(); - idx_t per_file_cardinality = 0; + // determined through the scientific method as the average amount of rows in a CSV file + idx_t per_file_cardinality = 42; if (bind_data.buffer_manager && bind_data.buffer_manager->file_handle) { auto estimated_row_width = (bind_data.csv_types.size() * 5); per_file_cardinality = bind_data.buffer_manager->file_handle->FileSize() / estimated_row_width; - } else { - // determined through the scientific method as the average amount of rows in a CSV file - per_file_cardinality = 42; } return make_uniq(bind_data.files.size() * per_file_cardinality); } @@ -365,7 +406,7 @@ TableFunction ReadCSVTableFunction::GetFunction() { read_csv.pushdown_complex_filter = CSVComplexFilterPushdown; read_csv.serialize = CSVReaderSerialize; read_csv.deserialize = CSVReaderDeserialize; - read_csv.get_batch_index = CSVReaderGetBatchIndex; + read_csv.get_partition_data = CSVReaderGetPartitionData; read_csv.cardinality = CSVReaderCardinality; read_csv.projection_pushdown = true; read_csv.type_pushdown = PushdownTypeToCSVScanner; diff --git a/src/duckdb/src/function/table/read_file.cpp b/src/duckdb/src/function/table/read_file.cpp index e9039b0b..158e89fd 100644 --- a/src/duckdb/src/function/table/read_file.cpp +++ b/src/duckdb/src/function/table/read_file.cpp @@ -64,7 +64,7 @@ static unique_ptr ReadFileBind(ClientContext &context, TableFuncti names.push_back("content"); return_types.push_back(LogicalType::BIGINT); names.push_back("size"); - return_types.push_back(LogicalType::TIMESTAMP); + return_types.push_back(LogicalType::TIMESTAMP_TZ); names.push_back("last_modified"); return std::move(result); @@ -150,11 +150,30 @@ static void ReadFileExecute(ClientContext &context, TableFunctionInput &input, D FlatVector::GetData(file_name_vector)[out_idx] = file_name_string; } break; case ReadFileBindData::FILE_CONTENT_COLUMN: { - auto file_size = file_handle->GetFileSize(); - AssertMaxFileSize(file_name, file_size); + auto file_size_raw = file_handle->GetFileSize(); + AssertMaxFileSize(file_name, file_size_raw); + auto file_size = UnsafeNumericCast(file_size_raw); auto &file_content_vector = output.data[col_idx]; - auto content_string = StringVector::EmptyString(file_content_vector, file_size); - file_handle->Read(content_string.GetDataWriteable(), file_size); + auto content_string = StringVector::EmptyString(file_content_vector, file_size_raw); + + auto remaining_bytes = UnsafeNumericCast(file_size); + + // Read in batches of 100mb + constexpr auto MAX_READ_SIZE = 100LL * 1024 * 1024; + while (remaining_bytes > 0) { + const auto bytes_to_read = MinValue(remaining_bytes, MAX_READ_SIZE); + const auto content_string_ptr = + content_string.GetDataWriteable() + (file_size - remaining_bytes); + const auto actually_read = + file_handle->Read(content_string_ptr, UnsafeNumericCast(bytes_to_read)); + if (actually_read == 0) { + // Uh oh, random EOF? + throw IOException("Failed to read file '%s' at offset %lu, unexpected EOF", file_name, + file_size - remaining_bytes); + } + remaining_bytes -= actually_read; + } + content_string.Finalize(); OP::VERIFY(file_name, content_string); @@ -172,7 +191,8 @@ static void ReadFileExecute(ClientContext &context, TableFunctionInput &input, D // correctly) try { auto timestamp_seconds = Timestamp::FromEpochSeconds(fs.GetLastModifiedTime(*file_handle)); - FlatVector::GetData(last_modified_vector)[out_idx] = timestamp_seconds; + FlatVector::GetData(last_modified_vector)[out_idx] = + timestamp_tz_t(timestamp_seconds); } catch (std::exception &ex) { ErrorData error(ex); if (error.Type() == ExceptionType::CONVERSION) { diff --git a/src/duckdb/src/function/table/sniff_csv.cpp b/src/duckdb/src/function/table/sniff_csv.cpp index 2a1d1b98..c278dd72 100644 --- a/src/duckdb/src/function/table/sniff_csv.cpp +++ b/src/duckdb/src/function/table/sniff_csv.cpp @@ -1,7 +1,7 @@ #include "duckdb/function/built_in_functions.hpp" #include "duckdb/execution/operator/csv_scanner/csv_reader_options.hpp" #include "duckdb/common/types/data_chunk.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp" #include "duckdb/function/table_function.hpp" #include "duckdb/main/client_context.hpp" @@ -21,6 +21,8 @@ struct CSVSniffFunctionData : public TableFunctionData { vector return_types_csv; // Column Names of CSV (If given by the user) vector names_csv; + // If we want to force the match of the sniffer types + bool force_match = true; }; struct CSVSniffGlobalState : public GlobalTableFunctionState { @@ -36,10 +38,6 @@ static unique_ptr CSVSniffInitGlobal(ClientContext &co static unique_ptr CSVSniffBind(ClientContext &context, TableFunctionBindInput &input, vector &return_types, vector &names) { auto result = make_uniq(); - auto &config = DBConfig::GetConfig(context); - if (!config.options.enable_external_access) { - throw PermissionException("sniff_csv is disabled through configuration"); - } result->path = input.inputs[0].ToString(); auto it = input.named_parameters.find("auto_detect"); if (it != input.named_parameters.end()) { @@ -49,7 +47,16 @@ static unique_ptr CSVSniffBind(ClientContext &context, TableFuncti // otherwise remove it input.named_parameters.erase("auto_detect"); } + + // If we want to force the match of the sniffer + it = input.named_parameters.find("force_match"); + if (it != input.named_parameters.end()) { + result->force_match = it->second.GetValue(); + input.named_parameters.erase("force_match"); + } result->options.FromNamedParameters(input.named_parameters, context); + result->options.Verify(); + // We want to return the whole CSV Configuration // 1. Delimiter return_types.emplace_back(LogicalType::VARCHAR); @@ -104,6 +111,13 @@ string FormatOptions(char opt) { return result; } +string FormatOptions(string opt) { + if (opt.size() == 1) { + return FormatOptions(opt[0]); + } + return opt; +} + static void CSVSniffFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) { auto &global_state = data_p.global_state->Cast(); // Are we done? @@ -131,7 +145,7 @@ static void CSVSniffFunction(ClientContext &context, TableFunctionInput &data_p, sniffer_options.sql_type_list = data.return_types_csv; } CSVSniffer sniffer(sniffer_options, buffer_manager, CSVStateMachineCache::Get(context)); - auto sniffer_result = sniffer.SniffCSV(true); + auto sniffer_result = sniffer.SniffCSV(data.force_match); string str_opt; string separator = ", "; // Set output @@ -293,6 +307,7 @@ void CSVSnifferFunction::RegisterFunction(BuiltinFunctions &set) { TableFunction csv_sniffer("sniff_csv", {LogicalType::VARCHAR}, CSVSniffFunction, CSVSniffBind, CSVSniffInitGlobal); // Accept same options as the actual csv reader ReadCSVTableFunction::ReadCSVAddNamedParameters(csv_sniffer); + csv_sniffer.named_parameters["force_match"] = LogicalType::BOOLEAN; set.AddFunction(csv_sniffer); } } // namespace duckdb diff --git a/src/duckdb/src/function/table/system/duckdb_columns.cpp b/src/duckdb/src/function/table/system/duckdb_columns.cpp index 1632a9e5..d30ea530 100644 --- a/src/duckdb/src/function/table/system/duckdb_columns.cpp +++ b/src/duckdb/src/function/table/system/duckdb_columns.cpp @@ -115,7 +115,7 @@ class TableColumnHelper : public ColumnHelper { explicit TableColumnHelper(TableCatalogEntry &entry) : entry(entry) { for (auto &constraint : entry.GetConstraints()) { if (constraint->type == ConstraintType::NOT_NULL) { - auto ¬_null = *reinterpret_cast(constraint.get()); + auto ¬_null = constraint->Cast(); not_null_cols.insert(not_null.index.index); } } diff --git a/src/duckdb/src/function/table/system/duckdb_constraints.cpp b/src/duckdb/src/function/table/system/duckdb_constraints.cpp index 8637feaf..5f436f2c 100644 --- a/src/duckdb/src/function/table/system/duckdb_constraints.cpp +++ b/src/duckdb/src/function/table/system/duckdb_constraints.cpp @@ -307,7 +307,6 @@ void DuckDBConstraintsFunction(ClientContext &context, TableFunctionInput &data_ for (auto &name : info.referenced_columns) { referenced_column_name_list.push_back(Value(std::move(name))); } - // constraint_column_indexes, LIST output.SetValue(col++, count, Value::LIST(LogicalType::BIGINT, std::move(column_index_list))); @@ -325,6 +324,7 @@ void DuckDBConstraintsFunction(ClientContext &context, TableFunctionInput &data_ output.SetValue(col++, count, Value::LIST(LogicalType::VARCHAR, std::move(referenced_column_name_list))); count++; } + if (data.constraint_offset >= constraints.size()) { data.constraint_offset = 0; data.offset++; diff --git a/src/duckdb/src/function/table/system/duckdb_dependencies.cpp b/src/duckdb/src/function/table/system/duckdb_dependencies.cpp index 6f737019..720bee4d 100644 --- a/src/duckdb/src/function/table/system/duckdb_dependencies.cpp +++ b/src/duckdb/src/function/table/system/duckdb_dependencies.cpp @@ -57,13 +57,12 @@ unique_ptr DuckDBDependenciesInit(ClientContext &conte // scan all the schemas and collect them auto &catalog = Catalog::GetCatalog(context, INVALID_CATALOG); - if (catalog.IsDuckCatalog()) { - auto &duck_catalog = catalog.Cast(); - auto &dependency_manager = duck_catalog.GetDependencyManager(); - dependency_manager.Scan(context, - [&](CatalogEntry &obj, CatalogEntry &dependent, const DependencyDependentFlags &flags) { - result->entries.emplace_back(obj, dependent, flags); - }); + auto dependency_manager = catalog.GetDependencyManager(); + if (dependency_manager) { + dependency_manager->Scan( + context, [&](CatalogEntry &obj, CatalogEntry &dependent, const DependencyDependentFlags &flags) { + result->entries.emplace_back(obj, dependent, flags); + }); } return std::move(result); diff --git a/src/duckdb/src/function/table/system/duckdb_functions.cpp b/src/duckdb/src/function/table/system/duckdb_functions.cpp index 80ac7bcb..2fef5c55 100644 --- a/src/duckdb/src/function/table/system/duckdb_functions.cpp +++ b/src/duckdb/src/function/table/system/duckdb_functions.cpp @@ -8,11 +8,12 @@ #include "duckdb/catalog/catalog_entry/table_macro_catalog_entry.hpp" #include "duckdb/function/table_macro_function.hpp" #include "duckdb/function/scalar_macro_function.hpp" - #include "duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp" #include "duckdb/parser/expression/columnref_expression.hpp" #include "duckdb/common/algorithm.hpp" +#include "duckdb/common/optional_idx.hpp" +#include "duckdb/common/types.hpp" #include "duckdb/main/client_data.hpp" namespace duckdb { @@ -76,8 +77,8 @@ static unique_ptr DuckDBFunctionsBind(ClientContext &context, Tabl names.emplace_back("function_oid"); return_types.emplace_back(LogicalType::BIGINT); - names.emplace_back("example"); - return_types.emplace_back(LogicalType::VARCHAR); + names.emplace_back("examples"); + return_types.emplace_back(LogicalType::LIST(LogicalType::VARCHAR)); names.emplace_back("stability"); return_types.emplace_back(LogicalType::VARCHAR); @@ -154,6 +155,11 @@ struct ScalarFunctionExtractor { return Value::LIST(LogicalType::VARCHAR, std::move(results)); } + static vector GetParameterLogicalTypes(ScalarFunctionCatalogEntry &entry, idx_t offset) { + auto fun = entry.functions.GetFunctionByOffset(offset); + return fun.arguments; + } + static Value GetVarArgs(ScalarFunctionCatalogEntry &entry, idx_t offset) { auto fun = entry.functions.GetFunctionByOffset(offset); return !fun.HasVarArgs() ? Value() : Value(fun.varargs.ToString()); @@ -202,6 +208,11 @@ struct AggregateFunctionExtractor { return Value::LIST(LogicalType::VARCHAR, std::move(results)); } + static vector GetParameterLogicalTypes(AggregateFunctionCatalogEntry &entry, idx_t offset) { + auto fun = entry.functions.GetFunctionByOffset(offset); + return fun.arguments; + } + static Value GetVarArgs(AggregateFunctionCatalogEntry &entry, idx_t offset) { auto fun = entry.functions.GetFunctionByOffset(offset); return !fun.HasVarArgs() ? Value() : Value(fun.varargs.ToString()); @@ -259,6 +270,18 @@ struct MacroExtractor { return Value::LIST(LogicalType::VARCHAR, std::move(results)); } + static vector GetParameterLogicalTypes(ScalarMacroCatalogEntry &entry, idx_t offset) { + vector results; + auto ¯o_entry = *entry.macros[offset]; + for (idx_t i = 0; i < macro_entry.parameters.size(); i++) { + results.emplace_back(LogicalType::UNKNOWN); + } + for (idx_t i = 0; i < macro_entry.default_parameters.size(); i++) { + results.emplace_back(LogicalType::UNKNOWN); + } + return results; + } + static Value GetVarArgs(ScalarMacroCatalogEntry &entry, idx_t offset) { return Value(); } @@ -318,6 +341,18 @@ struct TableMacroExtractor { return Value::LIST(LogicalType::VARCHAR, std::move(results)); } + static vector GetParameterLogicalTypes(TableMacroCatalogEntry &entry, idx_t offset) { + vector results; + auto ¯o_entry = *entry.macros[offset]; + for (idx_t i = 0; i < macro_entry.parameters.size(); i++) { + results.emplace_back(LogicalType::UNKNOWN); + } + for (idx_t i = 0; i < macro_entry.default_parameters.size(); i++) { + results.emplace_back(LogicalType::UNKNOWN); + } + return results; + } + static Value GetVarArgs(TableMacroCatalogEntry &entry, idx_t offset) { return Value(); } @@ -378,6 +413,11 @@ struct TableFunctionExtractor { return Value::LIST(LogicalType::VARCHAR, std::move(results)); } + static vector GetParameterLogicalTypes(TableFunctionCatalogEntry &entry, idx_t offset) { + auto fun = entry.functions.GetFunctionByOffset(offset); + return fun.arguments; + } + static Value GetVarArgs(TableFunctionCatalogEntry &entry, idx_t offset) { auto fun = entry.functions.GetFunctionByOffset(offset); return !fun.HasVarArgs() ? Value() : Value(fun.varargs.ToString()); @@ -435,6 +475,11 @@ struct PragmaFunctionExtractor { return Value::LIST(LogicalType::VARCHAR, std::move(results)); } + static vector GetParameterLogicalTypes(PragmaFunctionCatalogEntry &entry, idx_t offset) { + auto fun = entry.functions.GetFunctionByOffset(offset); + return fun.arguments; + } + static Value GetVarArgs(PragmaFunctionCatalogEntry &entry, idx_t offset) { auto fun = entry.functions.GetFunctionByOffset(offset); return !fun.HasVarArgs() ? Value() : Value(fun.varargs.ToString()); @@ -453,9 +498,92 @@ struct PragmaFunctionExtractor { } }; +static vector ToValueVector(vector &string_vector) { + vector result; + for (string &str : string_vector) { + result.emplace_back(Value(str)); + } + return result; +} + +template +static Value GetParameterNames(FunctionEntry &entry, idx_t function_idx, FunctionDescription &function_description, + Value ¶meter_types) { + vector parameter_names; + if (!function_description.parameter_names.empty()) { + for (idx_t param_idx = 0; param_idx < ListValue::GetChildren(parameter_types).size(); param_idx++) { + if (param_idx < function_description.parameter_names.size()) { + parameter_names.emplace_back(function_description.parameter_names[param_idx]); + } else { + parameter_names.emplace_back("col" + to_string(param_idx)); + } + } + } else { + // fallback + auto &function = entry.Cast(); + parameter_names = OP::GetParameters(function, function_idx); + } + return Value::LIST(LogicalType::VARCHAR, parameter_names); +} + +// returns values: +// 0: exact type match; N: match using N values; Invalid(): no match +static optional_idx CalcDescriptionSpecificity(FunctionDescription &description, + const vector ¶meter_types) { + if (description.parameter_types.size() != parameter_types.size()) { + return optional_idx::Invalid(); + } + idx_t any_count = 0; + for (idx_t i = 0; i < description.parameter_types.size(); i++) { + if (description.parameter_types[i].id() == LogicalTypeId::ANY) { + any_count++; + } else if (description.parameter_types[i] != parameter_types[i]) { + return optional_idx::Invalid(); + } + } + return any_count; +} + +// Find FunctionDescription object with matching number of arguments and types +static optional_idx GetFunctionDescriptionIndex(vector &function_descriptions, + vector &function_parameter_types) { + if (function_descriptions.size() == 1) { + // one description, use it even if nr of parameters don't match + idx_t nr_function_parameters = function_parameter_types.size(); + for (idx_t i = 0; i < function_descriptions[0].parameter_types.size(); i++) { + if (i < nr_function_parameters && function_descriptions[0].parameter_types[i] != LogicalTypeId::ANY && + function_descriptions[0].parameter_types[i] != function_parameter_types[i]) { + return optional_idx::Invalid(); + } + } + return optional_idx(0); + } + + // multiple descriptions, search most specific description + optional_idx best_description_idx; + // specificity_score: 0: exact type match; N: match using N values; Invalid(): no match + optional_idx best_specificity_score; + optional_idx specificity_score; + for (idx_t descr_idx = 0; descr_idx < function_descriptions.size(); descr_idx++) { + specificity_score = CalcDescriptionSpecificity(function_descriptions[descr_idx], function_parameter_types); + if (specificity_score.IsValid() && + (!best_specificity_score.IsValid() || specificity_score.GetIndex() < best_specificity_score.GetIndex())) { + best_specificity_score = specificity_score; + best_description_idx = descr_idx; + } + } + return best_description_idx; +} + template bool ExtractFunctionData(FunctionEntry &entry, idx_t function_idx, DataChunk &output, idx_t output_offset) { auto &function = entry.Cast(); + vector parameter_types_vector = OP::GetParameterLogicalTypes(function, function_idx); + Value parameter_types_value = OP::GetParameterTypes(function, function_idx); + optional_idx description_idx = GetFunctionDescriptionIndex(entry.descriptions, parameter_types_vector); + FunctionDescription function_description = + description_idx.IsValid() ? entry.descriptions[description_idx.GetIndex()] : FunctionDescription(); + idx_t col = 0; // database_name, LogicalType::VARCHAR @@ -474,7 +602,8 @@ bool ExtractFunctionData(FunctionEntry &entry, idx_t function_idx, DataChunk &ou output.SetValue(col++, output_offset, Value(OP::GetFunctionType())); // function_description, LogicalType::VARCHAR - output.SetValue(col++, output_offset, entry.description.empty() ? Value() : entry.description); + output.SetValue(col++, output_offset, + (function_description.description.empty()) ? Value() : Value(function_description.description)); // comment, LogicalType::VARCHAR output.SetValue(col++, output_offset, entry.comment); @@ -486,15 +615,11 @@ bool ExtractFunctionData(FunctionEntry &entry, idx_t function_idx, DataChunk &ou output.SetValue(col++, output_offset, OP::GetReturnType(function, function_idx)); // parameters, LogicalType::LIST(LogicalType::VARCHAR) - auto parameters = OP::GetParameters(function, function_idx); - for (idx_t param_idx = 0; param_idx < function.parameter_names.size() && param_idx < parameters.size(); - param_idx++) { - parameters[param_idx] = Value(function.parameter_names[param_idx]); - } - output.SetValue(col++, output_offset, Value::LIST(LogicalType::VARCHAR, std::move(parameters))); + output.SetValue(col++, output_offset, + GetParameterNames(function, function_idx, function_description, parameter_types_value)); // parameter_types, LogicalType::LIST(LogicalType::VARCHAR) - output.SetValue(col++, output_offset, OP::GetParameterTypes(function, function_idx)); + output.SetValue(col++, output_offset, parameter_types_value); // varargs, LogicalType::VARCHAR output.SetValue(col++, output_offset, OP::GetVarArgs(function, function_idx)); @@ -511,8 +636,9 @@ bool ExtractFunctionData(FunctionEntry &entry, idx_t function_idx, DataChunk &ou // function_oid, LogicalType::BIGINT output.SetValue(col++, output_offset, Value::BIGINT(NumericCast(function.oid))); - // example, LogicalType::VARCHAR - output.SetValue(col++, output_offset, entry.example.empty() ? Value() : entry.example); + // examples, LogicalType::LIST(LogicalType::VARCHAR) + output.SetValue(col++, output_offset, + Value::LIST(LogicalType::VARCHAR, ToValueVector(function_description.examples))); // stability, LogicalType::VARCHAR output.SetValue(col++, output_offset, OP::ResultType(function, function_idx)); @@ -546,7 +672,6 @@ void DuckDBFunctionsFunction(ClientContext &context, TableFunctionInput &data_p, finished = ExtractFunctionData(entry, data.offset_in_entry, output, count); break; - case CatalogType::MACRO_ENTRY: finished = ExtractFunctionData(entry, data.offset_in_entry, output, count); diff --git a/src/duckdb/src/function/table/system/duckdb_secrets.cpp b/src/duckdb/src/function/table/system/duckdb_secrets.cpp index 44557e34..6069344b 100644 --- a/src/duckdb/src/function/table/system/duckdb_secrets.cpp +++ b/src/duckdb/src/function/table/system/duckdb_secrets.cpp @@ -107,13 +107,21 @@ void DuckDBSecretsFunction(ClientContext &context, TableFunctionInput &data_p, D const auto &secret = *secret_entry.secret; - output.SetValue(0, count, secret.GetName()); - output.SetValue(1, count, Value(secret.GetType())); - output.SetValue(2, count, Value(secret.GetProvider())); - output.SetValue(3, count, Value(secret_entry.persist_type == SecretPersistType::PERSISTENT)); - output.SetValue(4, count, Value(secret_entry.storage_mode)); - output.SetValue(5, count, Value::LIST(LogicalType::VARCHAR, scope_value)); - output.SetValue(6, count, secret.ToString(bind_data.redact)); + idx_t i = 0; + // name + output.SetValue(i++, count, secret.GetName()); + // type + output.SetValue(i++, count, Value(secret.GetType())); + // provider + output.SetValue(i++, count, Value(secret.GetProvider())); + // persistent + output.SetValue(i++, count, Value(secret_entry.persist_type == SecretPersistType::PERSISTENT)); + // storage + output.SetValue(i++, count, Value(secret_entry.storage_mode)); + // scope + output.SetValue(i++, count, Value::LIST(LogicalType::VARCHAR, scope_value)); + // secret_string + output.SetValue(i++, count, secret.ToString(bind_data.redact)); data.offset++; count++; diff --git a/src/duckdb/src/function/table/system/duckdb_settings.cpp b/src/duckdb/src/function/table/system/duckdb_settings.cpp index eec5bbfe..b7c3a56b 100644 --- a/src/duckdb/src/function/table/system/duckdb_settings.cpp +++ b/src/duckdb/src/function/table/system/duckdb_settings.cpp @@ -54,7 +54,7 @@ unique_ptr DuckDBSettingsInit(ClientContext &context, value.name = option->name; value.value = option->get_setting(context).ToString(); value.description = option->description; - value.input_type = EnumUtil::ToString(option->parameter_type); + value.input_type = option->parameter_type; value.scope = EnumUtil::ToString(scope); result->settings.push_back(std::move(value)); diff --git a/src/duckdb/src/function/table/system/duckdb_tables.cpp b/src/duckdb/src/function/table/system/duckdb_tables.cpp index 7f1386ab..5e007bbf 100644 --- a/src/duckdb/src/function/table/system/duckdb_tables.cpp +++ b/src/duckdb/src/function/table/system/duckdb_tables.cpp @@ -86,18 +86,6 @@ unique_ptr DuckDBTablesInit(ClientContext &context, Ta return std::move(result); } -static bool TableHasPrimaryKey(TableCatalogEntry &table) { - for (auto &constraint : table.GetConstraints()) { - if (constraint->type == ConstraintType::UNIQUE) { - auto &unique = constraint->Cast(); - if (unique.IsPrimaryKey()) { - return true; - } - } - } - return false; -} - static idx_t CheckConstraintCount(TableCatalogEntry &table) { idx_t check_count = 0; for (auto &constraint : table.GetConstraints()) { @@ -148,7 +136,7 @@ void DuckDBTablesFunction(ClientContext &context, TableFunctionInput &data_p, Da // temporary, LogicalType::BOOLEAN output.SetValue(col++, count, Value::BOOLEAN(table.temporary)); // has_primary_key, LogicalType::BOOLEAN - output.SetValue(col++, count, Value::BOOLEAN(TableHasPrimaryKey(table))); + output.SetValue(col++, count, Value::BOOLEAN(table.HasPrimaryKey())); // estimated_size, LogicalType::BIGINT Value card_val = !storage_info.cardinality.IsValid() diff --git a/src/duckdb/src/function/table/system/duckdb_types.cpp b/src/duckdb/src/function/table/system/duckdb_types.cpp index 3872852d..dd98408b 100644 --- a/src/duckdb/src/function/table/system/duckdb_types.cpp +++ b/src/duckdb/src/function/table/system/duckdb_types.cpp @@ -184,7 +184,7 @@ void DuckDBTypesFunction(ClientContext &context, TableFunctionInput &data_p, Dat labels.emplace_back(data[i]); } - output.SetValue(col++, count, Value::LIST(labels)); + output.SetValue(col++, count, Value::LIST(LogicalType::VARCHAR, labels)); } else { output.SetValue(col++, count, Value()); } diff --git a/src/duckdb/src/function/table/system/pragma_storage_info.cpp b/src/duckdb/src/function/table/system/pragma_storage_info.cpp index 0c33ebf0..5500c1c5 100644 --- a/src/duckdb/src/function/table/system/pragma_storage_info.cpp +++ b/src/duckdb/src/function/table/system/pragma_storage_info.cpp @@ -79,6 +79,9 @@ static unique_ptr PragmaStorageInfoBind(ClientContext &context, Ta names.emplace_back("segment_info"); return_types.emplace_back(LogicalType::VARCHAR); + names.emplace_back("additional_block_ids"); + return_types.emplace_back(LogicalType::LIST(LogicalTypeId::BIGINT)); + auto qname = QualifiedName::Parse(input.inputs[0].GetValue()); // look up the table name in the catalog @@ -93,6 +96,14 @@ unique_ptr PragmaStorageInfoInit(ClientContext &contex return make_uniq(); } +static Value ValueFromBlockIdList(const vector &block_ids) { + vector blocks; + for (auto &block_id : block_ids) { + blocks.push_back(Value::BIGINT(block_id)); + } + return Value::LIST(LogicalTypeId::BIGINT, blocks); +} + static void PragmaStorageInfoFunction(ClientContext &context, TableFunctionInput &data_p, DataChunk &output) { auto &bind_data = data_p.bind_data->Cast(); auto &data = data_p.global_state->Cast(); @@ -138,6 +149,12 @@ static void PragmaStorageInfoFunction(ClientContext &context, TableFunctionInput } // segment_info output.SetValue(col_idx++, count, Value(entry.segment_info)); + // additional_block_ids + if (entry.persistent) { + output.SetValue(col_idx++, count, ValueFromBlockIdList(entry.additional_blocks)); + } else { + output.SetValue(col_idx++, count, Value()); + } count++; } output.SetCardinality(count); diff --git a/src/duckdb/src/function/table/system/pragma_table_info.cpp b/src/duckdb/src/function/table/system/pragma_table_info.cpp index 3e47ff39..56205d90 100644 --- a/src/duckdb/src/function/table/system/pragma_table_info.cpp +++ b/src/duckdb/src/function/table/system/pragma_table_info.cpp @@ -215,6 +215,12 @@ static ColumnConstraintInfo CheckConstraints(TableCatalogEntry &table, const Col return result; } +void PragmaTableInfo::GetColumnInfo(TableCatalogEntry &table, const ColumnDefinition &column, DataChunk &output, + idx_t index) { + auto constraint_info = CheckConstraints(table, column); + PragmaShowHelper::GetTableColumns(column, constraint_info, output, index); +} + static void PragmaTableInfoTable(PragmaTableOperatorData &data, TableCatalogEntry &table, DataChunk &output, bool is_table_info) { if (data.offset >= table.GetColumns().LogicalColumnCount()) { diff --git a/src/duckdb/src/function/table/system/test_all_types.cpp b/src/duckdb/src/function/table/system/test_all_types.cpp index 2b1e0803..0fbcd884 100644 --- a/src/duckdb/src/function/table/system/test_all_types.cpp +++ b/src/duckdb/src/function/table/system/test_all_types.cpp @@ -1,7 +1,8 @@ +#include "duckdb/common/operator/cast_operators.hpp" #include "duckdb/common/pair.hpp" +#include "duckdb/common/types/bit.hpp" #include "duckdb/common/types/date.hpp" #include "duckdb/common/types/timestamp.hpp" -#include "duckdb/common/types/bit.hpp" #include "duckdb/function/table/system_functions.hpp" #include @@ -99,49 +100,55 @@ vector TestAllTypesFun::GetTestTypes(bool use_large_enum) { // arrays auto int_list_type = LogicalType::LIST(LogicalType::INTEGER); - auto empty_int_list = Value::EMPTYLIST(LogicalType::INTEGER); - auto int_list = Value::LIST({Value::INTEGER(42), Value::INTEGER(999), Value(LogicalType::INTEGER), - Value(LogicalType::INTEGER), Value::INTEGER(-42)}); + auto empty_int_list = Value::LIST(LogicalType::INTEGER, vector()); + auto int_list = + Value::LIST(LogicalType::INTEGER, {Value::INTEGER(42), Value::INTEGER(999), Value(LogicalType::INTEGER), + Value(LogicalType::INTEGER), Value::INTEGER(-42)}); result.emplace_back(int_list_type, "int_array", empty_int_list, int_list); auto double_list_type = LogicalType::LIST(LogicalType::DOUBLE); - auto empty_double_list = Value::EMPTYLIST(LogicalType::DOUBLE); - auto double_list = Value::LIST( - {Value::DOUBLE(42), Value::DOUBLE(NAN), Value::DOUBLE(std::numeric_limits::infinity()), - Value::DOUBLE(-std::numeric_limits::infinity()), Value(LogicalType::DOUBLE), Value::DOUBLE(-42)}); + auto empty_double_list = Value::LIST(LogicalType::DOUBLE, vector()); + auto double_list = Value::LIST(LogicalType::DOUBLE, {Value::DOUBLE(42), Value::DOUBLE(NAN), + Value::DOUBLE(std::numeric_limits::infinity()), + Value::DOUBLE(-std::numeric_limits::infinity()), + Value(LogicalType::DOUBLE), Value::DOUBLE(-42)}); result.emplace_back(double_list_type, "double_array", empty_double_list, double_list); auto date_list_type = LogicalType::LIST(LogicalType::DATE); - auto empty_date_list = Value::EMPTYLIST(LogicalType::DATE); - auto date_list = - Value::LIST({Value::DATE(date_t()), Value::DATE(date_t::infinity()), Value::DATE(date_t::ninfinity()), - Value(LogicalType::DATE), Value::DATE(Date::FromString("2022-05-12"))}); + auto empty_date_list = Value::LIST(LogicalType::DATE, vector()); + auto date_list = Value::LIST(LogicalType::DATE, {Value::DATE(date_t()), Value::DATE(date_t::infinity()), + Value::DATE(date_t::ninfinity()), Value(LogicalType::DATE), + Value::DATE(Date::FromString("2022-05-12"))}); result.emplace_back(date_list_type, "date_array", empty_date_list, date_list); auto timestamp_list_type = LogicalType::LIST(LogicalType::TIMESTAMP); - auto empty_timestamp_list = Value::EMPTYLIST(LogicalType::TIMESTAMP); - auto timestamp_list = Value::LIST({Value::TIMESTAMP(timestamp_t()), Value::TIMESTAMP(timestamp_t::infinity()), - Value::TIMESTAMP(timestamp_t::ninfinity()), Value(LogicalType::TIMESTAMP), - Value::TIMESTAMP(Timestamp::FromString("2022-05-12 16:23:45"))}); + auto empty_timestamp_list = Value::LIST(LogicalType::TIMESTAMP, vector()); + auto timestamp_list = + Value::LIST(LogicalType::TIMESTAMP, {Value::TIMESTAMP(timestamp_t()), Value::TIMESTAMP(timestamp_t::infinity()), + Value::TIMESTAMP(timestamp_t::ninfinity()), Value(LogicalType::TIMESTAMP), + Value::TIMESTAMP(Timestamp::FromString("2022-05-12 16:23:45"))}); result.emplace_back(timestamp_list_type, "timestamp_array", empty_timestamp_list, timestamp_list); auto timestamptz_list_type = LogicalType::LIST(LogicalType::TIMESTAMP_TZ); - auto empty_timestamptz_list = Value::EMPTYLIST(LogicalType::TIMESTAMP_TZ); - auto timestamptz_list = Value::LIST({Value::TIMESTAMPTZ(timestamp_t()), Value::TIMESTAMPTZ(timestamp_t::infinity()), - Value::TIMESTAMPTZ(timestamp_t::ninfinity()), Value(LogicalType::TIMESTAMP_TZ), - Value::TIMESTAMPTZ(Timestamp::FromString("2022-05-12 16:23:45-07"))}); + auto empty_timestamptz_list = Value::LIST(LogicalType::TIMESTAMP_TZ, vector()); + auto timestamptz_list = + Value::LIST(LogicalType::TIMESTAMP_TZ, + {Value::TIMESTAMPTZ(timestamp_tz_t()), Value::TIMESTAMPTZ(timestamp_tz_t(timestamp_t::infinity())), + Value::TIMESTAMPTZ(timestamp_tz_t(timestamp_t::ninfinity())), Value(LogicalType::TIMESTAMP_TZ), + Value::TIMESTAMPTZ(timestamp_tz_t(Timestamp::FromString("2022-05-12 16:23:45-07")))}); result.emplace_back(timestamptz_list_type, "timestamptz_array", empty_timestamptz_list, timestamptz_list); auto varchar_list_type = LogicalType::LIST(LogicalType::VARCHAR); - auto empty_varchar_list = Value::EMPTYLIST(LogicalType::VARCHAR); - auto varchar_list = - Value::LIST({Value("🦆🦆🦆🦆🦆🦆"), Value("goose"), Value(LogicalType::VARCHAR), Value("")}); + auto empty_varchar_list = Value::LIST(LogicalType::VARCHAR, vector()); + auto varchar_list = Value::LIST(LogicalType::VARCHAR, {Value("🦆🦆🦆🦆🦆🦆"), Value("goose"), + Value(LogicalType::VARCHAR), Value("")}); result.emplace_back(varchar_list_type, "varchar_array", empty_varchar_list, varchar_list); // nested arrays auto nested_list_type = LogicalType::LIST(int_list_type); - auto empty_nested_list = Value::EMPTYLIST(int_list_type); - auto nested_int_list = Value::LIST({empty_int_list, int_list, Value(int_list_type), empty_int_list, int_list}); + auto empty_nested_list = Value::LIST(int_list_type, vector()); + auto nested_int_list = + Value::LIST(int_list_type, {empty_int_list, int_list, Value(int_list_type), empty_int_list, int_list}); result.emplace_back(nested_list_type, "nested_int_array", empty_nested_list, nested_int_list); // structs @@ -183,8 +190,8 @@ vector TestAllTypesFun::GetTestTypes(bool use_large_enum) { // array of structs auto array_of_structs_type = LogicalType::LIST(struct_type); - auto min_array_of_struct_val = Value::EMPTYLIST(struct_type); - auto max_array_of_struct_val = Value::LIST({min_struct_val, max_struct_val, Value(struct_type)}); + auto min_array_of_struct_val = Value::LIST(struct_type, vector()); + auto max_array_of_struct_val = Value::LIST(struct_type, {min_struct_val, max_struct_val, Value(struct_type)}); result.emplace_back(array_of_structs_type, "array_of_structs", std::move(min_array_of_struct_val), std::move(max_array_of_struct_val)); @@ -215,39 +222,42 @@ vector TestAllTypesFun::GetTestTypes(bool use_large_enum) { // fixed int array auto fixed_int_array_type = LogicalType::ARRAY(LogicalType::INTEGER, 3); - auto fixed_int_min_array_value = Value::ARRAY({Value(LogicalType::INTEGER), 2, 3}); - auto fixed_int_max_array_value = Value::ARRAY({4, 5, 6}); + auto fixed_int_min_array_value = Value::ARRAY(LogicalType::INTEGER, {Value(LogicalType::INTEGER), 2, 3}); + auto fixed_int_max_array_value = Value::ARRAY(LogicalType::INTEGER, {4, 5, 6}); result.emplace_back(fixed_int_array_type, "fixed_int_array", fixed_int_min_array_value, fixed_int_max_array_value); // fixed varchar array auto fixed_varchar_array_type = LogicalType::ARRAY(LogicalType::VARCHAR, 3); - auto fixed_varchar_min_array_value = Value::ARRAY({Value("a"), Value(LogicalType::VARCHAR), Value("c")}); - auto fixed_varchar_max_array_value = Value::ARRAY({Value("d"), Value("e"), Value("f")}); + auto fixed_varchar_min_array_value = + Value::ARRAY(LogicalType::VARCHAR, {Value("a"), Value(LogicalType::VARCHAR), Value("c")}); + auto fixed_varchar_max_array_value = Value::ARRAY(LogicalType::VARCHAR, {Value("d"), Value("e"), Value("f")}); result.emplace_back(fixed_varchar_array_type, "fixed_varchar_array", fixed_varchar_min_array_value, fixed_varchar_max_array_value); // fixed nested int array auto fixed_nested_int_array_type = LogicalType::ARRAY(fixed_int_array_type, 3); - auto fixed_nested_int_min_array_value = - Value::ARRAY({fixed_int_min_array_value, Value(fixed_int_array_type), fixed_int_min_array_value}); - auto fixed_nested_int_max_array_value = - Value::ARRAY({fixed_int_max_array_value, fixed_int_min_array_value, fixed_int_max_array_value}); + auto fixed_nested_int_min_array_value = Value::ARRAY( + fixed_int_array_type, {fixed_int_min_array_value, Value(fixed_int_array_type), fixed_int_min_array_value}); + auto fixed_nested_int_max_array_value = Value::ARRAY( + fixed_int_array_type, {fixed_int_max_array_value, fixed_int_min_array_value, fixed_int_max_array_value}); result.emplace_back(fixed_nested_int_array_type, "fixed_nested_int_array", fixed_nested_int_min_array_value, fixed_nested_int_max_array_value); // fixed nested varchar array auto fixed_nested_varchar_array_type = LogicalType::ARRAY(fixed_varchar_array_type, 3); auto fixed_nested_varchar_min_array_value = - Value::ARRAY({fixed_varchar_min_array_value, Value(fixed_varchar_array_type), fixed_varchar_min_array_value}); + Value::ARRAY(fixed_varchar_array_type, + {fixed_varchar_min_array_value, Value(fixed_varchar_array_type), fixed_varchar_min_array_value}); auto fixed_nested_varchar_max_array_value = - Value::ARRAY({fixed_varchar_max_array_value, fixed_varchar_min_array_value, fixed_varchar_max_array_value}); + Value::ARRAY(fixed_varchar_array_type, + {fixed_varchar_max_array_value, fixed_varchar_min_array_value, fixed_varchar_max_array_value}); result.emplace_back(fixed_nested_varchar_array_type, "fixed_nested_varchar_array", fixed_nested_varchar_min_array_value, fixed_nested_varchar_max_array_value); // fixed array of structs auto fixed_struct_array_type = LogicalType::ARRAY(struct_type, 3); - auto fixed_struct_min_array_value = Value::ARRAY({min_struct_val, max_struct_val, min_struct_val}); - auto fixed_struct_max_array_value = Value::ARRAY({max_struct_val, min_struct_val, max_struct_val}); + auto fixed_struct_min_array_value = Value::ARRAY(struct_type, {min_struct_val, max_struct_val, min_struct_val}); + auto fixed_struct_max_array_value = Value::ARRAY(struct_type, {max_struct_val, min_struct_val, max_struct_val}); result.emplace_back(fixed_struct_array_type, "fixed_struct_array", fixed_struct_min_array_value, fixed_struct_max_array_value); @@ -262,18 +272,18 @@ vector TestAllTypesFun::GetTestTypes(bool use_large_enum) { struct_of_fixed_array_max_value); // fixed array of list of int - auto fixed_array_of_list_of_int_type = LogicalType::ARRAY(LogicalType::LIST(LogicalType::INTEGER), 3); - auto fixed_array_of_list_of_int_min_value = Value::ARRAY({empty_int_list, int_list, empty_int_list}); - auto fixed_array_of_list_of_int_max_value = Value::ARRAY({int_list, empty_int_list, int_list}); + auto fixed_array_of_list_of_int_type = LogicalType::ARRAY(int_list_type, 3); + auto fixed_array_of_list_of_int_min_value = Value::ARRAY(int_list_type, {empty_int_list, int_list, empty_int_list}); + auto fixed_array_of_list_of_int_max_value = Value::ARRAY(int_list_type, {int_list, empty_int_list, int_list}); result.emplace_back(fixed_array_of_list_of_int_type, "fixed_array_of_int_list", fixed_array_of_list_of_int_min_value, fixed_array_of_list_of_int_max_value); // list of fixed array of int auto list_of_fixed_array_of_int_type = LogicalType::LIST(fixed_int_array_type); - auto list_of_fixed_array_of_int_min_value = - Value::LIST({fixed_int_min_array_value, fixed_int_max_array_value, fixed_int_min_array_value}); - auto list_of_fixed_array_of_int_max_value = - Value::LIST({fixed_int_max_array_value, fixed_int_min_array_value, fixed_int_max_array_value}); + auto list_of_fixed_array_of_int_min_value = Value::LIST( + fixed_int_array_type, {fixed_int_min_array_value, fixed_int_max_array_value, fixed_int_min_array_value}); + auto list_of_fixed_array_of_int_max_value = Value::LIST( + fixed_int_array_type, {fixed_int_max_array_value, fixed_int_min_array_value, fixed_int_max_array_value}); result.emplace_back(list_of_fixed_array_of_int_type, "list_of_fixed_int_array", list_of_fixed_array_of_int_min_value, list_of_fixed_array_of_int_max_value); diff --git a/src/duckdb/src/function/table/table_scan.cpp b/src/duckdb/src/function/table/table_scan.cpp index 7733bf2b..a88be6e7 100644 --- a/src/duckdb/src/function/table/table_scan.cpp +++ b/src/duckdb/src/function/table/table_scan.cpp @@ -17,6 +17,7 @@ #include "duckdb/storage/table/scan_state.hpp" #include "duckdb/transaction/duck_transaction.hpp" #include "duckdb/transaction/local_storage.hpp" +#include "duckdb/storage/storage_index.hpp" #include "duckdb/main/client_data.hpp" namespace duckdb { @@ -34,12 +35,25 @@ struct TableScanLocalState : public LocalTableFunctionState { DataChunk all_columns; }; -static storage_t GetStorageIndex(TableCatalogEntry &table, column_t column_id) { - if (column_id == DConstants::INVALID_INDEX) { - return column_id; +static StorageIndex TransformStorageIndex(const ColumnIndex &column_id) { + vector result; + for (auto &child_id : column_id.GetChildIndexes()) { + result.push_back(TransformStorageIndex(child_id)); } - auto &col = table.GetColumn(LogicalIndex(column_id)); - return col.StorageOid(); + return StorageIndex(column_id.GetPrimaryIndex(), std::move(result)); +} + +static StorageIndex GetStorageIndex(TableCatalogEntry &table, const ColumnIndex &column_id) { + if (column_id.IsRowIdColumn()) { + return StorageIndex(); + } + // the index of the base ColumnIndex is equal to the physical column index in the table + // for any child indices - the indices are already the physical indices + // (since only the top-level can have generated columns) + auto &col = table.GetColumn(column_id.ToLogical()); + auto result = TransformStorageIndex(column_id); + result.SetIndex(col.StorageOid()); + return result; } struct TableScanGlobalState : public GlobalTableFunctionState { @@ -68,12 +82,11 @@ static unique_ptr TableScanInitLocal(ExecutionContext & GlobalTableFunctionState *gstate) { auto result = make_uniq(); auto &bind_data = input.bind_data->Cast(); - vector column_ids = input.column_ids; - for (auto &col : column_ids) { - auto storage_idx = GetStorageIndex(bind_data.table, col); - col = storage_idx; + vector storage_ids; + for (auto &col : input.column_indexes) { + storage_ids.push_back(GetStorageIndex(bind_data.table, col)); } - result->scan_state.Initialize(std::move(column_ids), input.filters.get()); + result->scan_state.Initialize(std::move(storage_ids), input.filters.get(), input.sample_options.get()); TableScanParallelStateNext(context.client, input.bind_data.get(), result.get(), gstate); if (input.CanRemoveFilterColumns()) { auto &tsgs = gstate->Cast(); @@ -93,11 +106,11 @@ unique_ptr TableScanInitGlobal(ClientContext &context, if (input.CanRemoveFilterColumns()) { result->projection_ids = input.projection_ids; const auto &columns = bind_data.table.GetColumns(); - for (const auto &col_idx : input.column_ids) { - if (col_idx == COLUMN_IDENTIFIER_ROW_ID) { + for (const auto &col_idx : input.column_indexes) { + if (col_idx.IsRowIdColumn()) { result->scanned_types.emplace_back(LogicalType::ROW_TYPE); } else { - result->scanned_types.push_back(columns.GetColumn(LogicalIndex(col_idx)).Type()); + result->scanned_types.push_back(columns.GetColumn(col_idx.ToLogical()).Type()); } } } @@ -175,16 +188,19 @@ double TableScanProgress(ClientContext &context, const FunctionData *bind_data_p return percentage; } -idx_t TableScanGetBatchIndex(ClientContext &context, const FunctionData *bind_data_p, - LocalTableFunctionState *local_state, GlobalTableFunctionState *gstate_p) { - auto &state = local_state->Cast(); +OperatorPartitionData TableScanGetPartitionData(ClientContext &context, TableFunctionGetPartitionInput &input) { + if (input.partition_info.RequiresPartitionColumns()) { + throw InternalException("TableScan::GetPartitionData: partition columns not supported"); + } + auto &state = input.local_state->Cast(); if (state.scan_state.table_state.row_group) { - return state.scan_state.table_state.batch_index; + return OperatorPartitionData(state.scan_state.table_state.batch_index); } if (state.scan_state.local_state.row_group) { - return state.scan_state.table_state.batch_index + state.scan_state.local_state.batch_index; + return OperatorPartitionData(state.scan_state.table_state.batch_index + + state.scan_state.local_state.batch_index); } - return 0; + return OperatorPartitionData(0); } BindInfo TableScanGetBindInfo(const optional_ptr bind_data_p) { @@ -219,7 +235,7 @@ struct IndexScanGlobalState : public GlobalTableFunctionState { idx_t row_ids_offset; ColumnFetchState fetch_state; TableScanState local_storage_state; - vector column_ids; + vector column_ids; bool finished; }; @@ -236,8 +252,8 @@ static unique_ptr IndexScanInitGlobal(ClientContext &c result->local_storage_state.options.force_fetch_row = ClientConfig::GetConfig(context).force_fetch_row; result->column_ids.reserve(input.column_ids.size()); - for (auto &id : input.column_ids) { - result->column_ids.push_back(GetStorageIndex(bind_data.table, id)); + for (auto &col_id : input.column_indexes) { + result->column_ids.push_back(GetStorageIndex(bind_data.table, col_id)); } result->local_storage_state.Initialize(result->column_ids, input.filters.get()); @@ -281,7 +297,8 @@ static void RewriteIndexExpression(Index &index, LogicalGet &get, Expression &ex column_t referenced_column = column_ids[bound_colref.binding.column_index]; // search for the referenced column in the set of column_ids for (idx_t i = 0; i < get_column_ids.size(); i++) { - if (get_column_ids[i] == referenced_column) { + auto column_id = get_column_ids[i].GetPrimaryIndex(); + if (column_id == referenced_column) { bound_colref.binding.column_index = i; return; } @@ -346,8 +363,8 @@ void TableScanPushdownComplexFilter(ClientContext &context, LogicalGet &get, Fun if (index_state != nullptr) { auto &db_config = DBConfig::GetConfig(context); - auto index_scan_percentage = db_config.options.index_scan_percentage; - auto index_scan_max_count = db_config.options.index_scan_max_count; + auto index_scan_percentage = db_config.GetSetting(context); + auto index_scan_max_count = db_config.GetSetting(context); auto total_rows = storage.GetTotalRows(); auto total_rows_from_percentage = LossyNumericCast(double(total_rows) * index_scan_percentage); @@ -369,9 +386,10 @@ void TableScanPushdownComplexFilter(ClientContext &context, LogicalGet &get, Fun }); } -string TableScanToString(const FunctionData *bind_data_p) { - auto &bind_data = bind_data_p->Cast(); - string result = bind_data.table.name; +InsertionOrderPreservingMap TableScanToString(TableFunctionToStringInput &input) { + InsertionOrderPreservingMap result; + auto &bind_data = input.bind_data->Cast(); + result["Table"] = bind_data.table.name; return result; } @@ -412,7 +430,7 @@ TableFunction TableScanFunction::GetIndexScanFunction() { scan_function.pushdown_complex_filter = nullptr; scan_function.to_string = TableScanToString; scan_function.table_scan_progress = nullptr; - scan_function.get_batch_index = nullptr; + scan_function.get_partition_data = nullptr; scan_function.projection_pushdown = true; scan_function.filter_pushdown = false; scan_function.get_bind_info = TableScanGetBindInfo; @@ -431,11 +449,12 @@ TableFunction TableScanFunction::GetFunction() { scan_function.pushdown_complex_filter = TableScanPushdownComplexFilter; scan_function.to_string = TableScanToString; scan_function.table_scan_progress = TableScanProgress; - scan_function.get_batch_index = TableScanGetBatchIndex; + scan_function.get_partition_data = TableScanGetPartitionData; scan_function.get_bind_info = TableScanGetBindInfo; scan_function.projection_pushdown = true; scan_function.filter_pushdown = true; scan_function.filter_prune = true; + scan_function.sampling_pushdown = true; scan_function.serialize = TableScanSerialize; scan_function.deserialize = TableScanDeserialize; return scan_function; diff --git a/src/duckdb/src/function/table/version/pragma_version.cpp b/src/duckdb/src/function/table/version/pragma_version.cpp index 42914ea2..22fd4ac7 100644 --- a/src/duckdb/src/function/table/version/pragma_version.cpp +++ b/src/duckdb/src/function/table/version/pragma_version.cpp @@ -1,5 +1,5 @@ #ifndef DUCKDB_PATCH_VERSION -#define DUCKDB_PATCH_VERSION "1-dev169" +#define DUCKDB_PATCH_VERSION "4-dev3162" #endif #ifndef DUCKDB_MINOR_VERSION #define DUCKDB_MINOR_VERSION 1 @@ -8,10 +8,10 @@ #define DUCKDB_MAJOR_VERSION 1 #endif #ifndef DUCKDB_VERSION -#define DUCKDB_VERSION "v1.1.1-dev169" +#define DUCKDB_VERSION "v1.1.4-dev3162" #endif #ifndef DUCKDB_SOURCE_ID -#define DUCKDB_SOURCE_ID "26308a6081" +#define DUCKDB_SOURCE_ID "067ecb1c7f" #endif #include "duckdb/function/table/system_functions.hpp" #include "duckdb/main/database.hpp" diff --git a/src/duckdb/src/function/table_function.cpp b/src/duckdb/src/function/table_function.cpp index a5190aee..dd371eb5 100644 --- a/src/duckdb/src/function/table_function.cpp +++ b/src/duckdb/src/function/table_function.cpp @@ -17,10 +17,10 @@ TableFunction::TableFunction(string name, vector arguments, table_f : SimpleNamedParameterFunction(std::move(name), std::move(arguments)), bind(bind), bind_replace(nullptr), init_global(init_global), init_local(init_local), function(function), in_out_function(nullptr), in_out_function_final(nullptr), statistics(nullptr), dependency(nullptr), cardinality(nullptr), - pushdown_complex_filter(nullptr), to_string(nullptr), table_scan_progress(nullptr), get_batch_index(nullptr), + pushdown_complex_filter(nullptr), to_string(nullptr), table_scan_progress(nullptr), get_partition_data(nullptr), get_bind_info(nullptr), type_pushdown(nullptr), get_multi_file_reader(nullptr), supports_pushdown_type(nullptr), - serialize(nullptr), deserialize(nullptr), projection_pushdown(false), filter_pushdown(false), - filter_prune(false) { + get_partition_info(nullptr), serialize(nullptr), deserialize(nullptr), projection_pushdown(false), + filter_pushdown(false), filter_prune(false), sampling_pushdown(false) { } TableFunction::TableFunction(const vector &arguments, table_function_t function, @@ -32,9 +32,9 @@ TableFunction::TableFunction() : SimpleNamedParameterFunction("", {}), bind(nullptr), bind_replace(nullptr), init_global(nullptr), init_local(nullptr), function(nullptr), in_out_function(nullptr), statistics(nullptr), dependency(nullptr), cardinality(nullptr), pushdown_complex_filter(nullptr), to_string(nullptr), table_scan_progress(nullptr), - get_batch_index(nullptr), get_bind_info(nullptr), type_pushdown(nullptr), get_multi_file_reader(nullptr), - supports_pushdown_type(nullptr), serialize(nullptr), deserialize(nullptr), projection_pushdown(false), - filter_pushdown(false), filter_prune(false) { + get_partition_data(nullptr), get_bind_info(nullptr), type_pushdown(nullptr), get_multi_file_reader(nullptr), + supports_pushdown_type(nullptr), get_partition_info(nullptr), serialize(nullptr), deserialize(nullptr), + projection_pushdown(false), filter_pushdown(false), filter_prune(false), sampling_pushdown(false) { } bool TableFunction::Equal(const TableFunction &rhs) const { diff --git a/src/duckdb/src/function/window/window_aggregate_function.cpp b/src/duckdb/src/function/window/window_aggregate_function.cpp new file mode 100644 index 00000000..32dc0a27 --- /dev/null +++ b/src/duckdb/src/function/window/window_aggregate_function.cpp @@ -0,0 +1,315 @@ +#include "duckdb/function/window/window_aggregate_function.hpp" + +#include "duckdb/function/window/window_constant_aggregator.hpp" +#include "duckdb/function/window/window_custom_aggregator.hpp" +#include "duckdb/function/window/window_distinct_aggregator.hpp" +#include "duckdb/function/window/window_naive_aggregator.hpp" +#include "duckdb/function/window/window_segment_tree.hpp" +#include "duckdb/function/window/window_shared_expressions.hpp" +#include "duckdb/planner/expression/bound_reference_expression.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowAggregateExecutor +//===--------------------------------------------------------------------===// +class WindowAggregateExecutorGlobalState : public WindowExecutorGlobalState { +public: + WindowAggregateExecutorGlobalState(const WindowAggregateExecutor &executor, const idx_t payload_count, + const ValidityMask &partition_mask, const ValidityMask &order_mask); + + // aggregate global state + unique_ptr gsink; + + // the filter reference expression. + const Expression *filter_ref; +}; + +bool WindowAggregateExecutor::IsConstantAggregate() { + if (!wexpr.aggregate) { + return false; + } + // window exclusion cannot be handled by constant aggregates + if (wexpr.exclude_clause != WindowExcludeMode::NO_OTHER) { + return false; + } + + // COUNT(*) is already handled efficiently by segment trees. + if (wexpr.children.empty()) { + return false; + } + + /* + The default framing option is RANGE UNBOUNDED PRECEDING, which + is the same as RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT + ROW; it sets the frame to be all rows from the partition start + up through the current row's last peer (a row that the window's + ORDER BY clause considers equivalent to the current row; all + rows are peers if there is no ORDER BY). In general, UNBOUNDED + PRECEDING means that the frame starts with the first row of the + partition, and similarly UNBOUNDED FOLLOWING means that the + frame ends with the last row of the partition, regardless of + RANGE, ROWS or GROUPS mode. In ROWS mode, CURRENT ROW means that + the frame starts or ends with the current row; but in RANGE or + GROUPS mode it means that the frame starts or ends with the + current row's first or last peer in the ORDER BY ordering. The + offset PRECEDING and offset FOLLOWING options vary in meaning + depending on the frame mode. + */ + switch (wexpr.start) { + case WindowBoundary::UNBOUNDED_PRECEDING: + break; + case WindowBoundary::CURRENT_ROW_RANGE: + if (!wexpr.orders.empty()) { + return false; + } + break; + default: + return false; + } + + switch (wexpr.end) { + case WindowBoundary::UNBOUNDED_FOLLOWING: + break; + case WindowBoundary::CURRENT_ROW_RANGE: + if (!wexpr.orders.empty()) { + return false; + } + break; + default: + return false; + } + + return true; +} + +bool WindowAggregateExecutor::IsDistinctAggregate() { + if (!wexpr.aggregate) { + return false; + } + + return wexpr.distinct; +} + +bool WindowAggregateExecutor::IsCustomAggregate() { + if (!wexpr.aggregate) { + return false; + } + + if (!AggregateObject(wexpr).function.window) { + return false; + } + + return (mode < WindowAggregationMode::COMBINE); +} + +void WindowExecutor::Evaluate(idx_t row_idx, DataChunk &eval_chunk, Vector &result, WindowExecutorLocalState &lstate, + WindowExecutorGlobalState &gstate) const { + auto &lbstate = lstate.Cast(); + lbstate.UpdateBounds(gstate, row_idx, eval_chunk, lstate.range_cursor); + + const auto count = eval_chunk.size(); + EvaluateInternal(gstate, lstate, eval_chunk, result, count, row_idx); + + result.Verify(count); +} + +WindowAggregateExecutor::WindowAggregateExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared, WindowAggregationMode mode) + : WindowExecutor(wexpr, context, shared), mode(mode) { + auto return_type = wexpr.return_type; + + // Force naive for SEPARATE mode or for (currently!) unsupported functionality + const auto force_naive = + !ClientConfig::GetConfig(context).enable_optimizer || mode == WindowAggregationMode::SEPARATE; + if (force_naive || (wexpr.distinct && wexpr.exclude_clause != WindowExcludeMode::NO_OTHER)) { + aggregator = make_uniq(wexpr, wexpr.exclude_clause, shared); + } else if (IsDistinctAggregate()) { + // build a merge sort tree + // see https://dl.acm.org/doi/pdf/10.1145/3514221.3526184 + aggregator = make_uniq(wexpr, wexpr.exclude_clause, shared, context); + } else if (IsConstantAggregate()) { + aggregator = make_uniq(wexpr, wexpr.exclude_clause, shared); + } else if (IsCustomAggregate()) { + aggregator = make_uniq(wexpr, wexpr.exclude_clause, shared); + } else { + // build a segment tree for frame-adhering aggregates + // see http://www.vldb.org/pvldb/vol8/p1058-leis.pdf + aggregator = make_uniq(wexpr, mode, wexpr.exclude_clause, shared); + } + + // Compute the FILTER with the other eval columns. + // Anyone who needs it can then convert it to the form they need. + if (wexpr.filter_expr) { + const auto filter_idx = shared.RegisterSink(wexpr.filter_expr); + filter_ref = make_uniq(wexpr.filter_expr->return_type, filter_idx); + } +} + +WindowAggregateExecutorGlobalState::WindowAggregateExecutorGlobalState(const WindowAggregateExecutor &executor, + const idx_t group_count, + const ValidityMask &partition_mask, + const ValidityMask &order_mask) + : WindowExecutorGlobalState(executor, group_count, partition_mask, order_mask), + filter_ref(executor.filter_ref.get()) { + gsink = executor.aggregator->GetGlobalState(executor.context, group_count, partition_mask); +} + +unique_ptr WindowAggregateExecutor::GetGlobalState(const idx_t payload_count, + const ValidityMask &partition_mask, + const ValidityMask &order_mask) const { + return make_uniq(*this, payload_count, partition_mask, order_mask); +} + +class WindowAggregateExecutorLocalState : public WindowExecutorBoundsState { +public: + WindowAggregateExecutorLocalState(const WindowExecutorGlobalState &gstate, const WindowAggregator &aggregator) + : WindowExecutorBoundsState(gstate), filter_executor(gstate.executor.context) { + + auto &gastate = gstate.Cast(); + aggregator_state = aggregator.GetLocalState(*gastate.gsink); + + // evaluate the FILTER clause and stuff it into a large mask for compactness and reuse + auto filter_ref = gastate.filter_ref; + if (filter_ref) { + filter_executor.AddExpression(*filter_ref); + filter_sel.Initialize(STANDARD_VECTOR_SIZE); + } + } + +public: + // state of aggregator + unique_ptr aggregator_state; + //! Executor for any filter clause + ExpressionExecutor filter_executor; + //! Result of filtering + SelectionVector filter_sel; +}; + +unique_ptr +WindowAggregateExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { + return make_uniq(gstate, *aggregator); +} + +void WindowAggregateExecutor::Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, const idx_t input_idx, + WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const { + auto &gastate = gstate.Cast(); + auto &lastate = lstate.Cast(); + auto &filter_sel = lastate.filter_sel; + auto &filter_executor = lastate.filter_executor; + + idx_t filtered = 0; + SelectionVector *filtering = nullptr; + if (gastate.filter_ref) { + filtering = &filter_sel; + filtered = filter_executor.SelectExpression(sink_chunk, filter_sel); + } + + D_ASSERT(aggregator); + auto &gestate = *gastate.gsink; + auto &lestate = *lastate.aggregator_state; + aggregator->Sink(gestate, lestate, sink_chunk, coll_chunk, input_idx, filtering, filtered); + + WindowExecutor::Sink(sink_chunk, coll_chunk, input_idx, gstate, lstate); +} + +static void ApplyWindowStats(const WindowBoundary &boundary, FrameDelta &delta, BaseStatistics *base, bool is_start) { + // Avoid overflow by clamping to the frame bounds + auto base_stats = delta; + + switch (boundary) { + case WindowBoundary::UNBOUNDED_PRECEDING: + if (is_start) { + delta.end = 0; + return; + } + break; + case WindowBoundary::UNBOUNDED_FOLLOWING: + if (!is_start) { + delta.begin = 0; + return; + } + break; + case WindowBoundary::CURRENT_ROW_ROWS: + delta.begin = delta.end = 0; + return; + case WindowBoundary::EXPR_PRECEDING_ROWS: + if (base && base->GetStatsType() == StatisticsType::NUMERIC_STATS && NumericStats::HasMinMax(*base)) { + // Preceding so negative offset from current row + base_stats.begin = NumericStats::GetMin(*base); + base_stats.end = NumericStats::GetMax(*base); + if (delta.begin < base_stats.end && base_stats.end < delta.end) { + delta.begin = -base_stats.end; + } + if (delta.begin < base_stats.begin && base_stats.begin < delta.end) { + delta.end = -base_stats.begin + 1; + } + } + return; + case WindowBoundary::EXPR_FOLLOWING_ROWS: + if (base && base->GetStatsType() == StatisticsType::NUMERIC_STATS && NumericStats::HasMinMax(*base)) { + base_stats.begin = NumericStats::GetMin(*base); + base_stats.end = NumericStats::GetMax(*base); + if (base_stats.end < delta.end) { + delta.end = base_stats.end + 1; + } + } + return; + + case WindowBoundary::CURRENT_ROW_RANGE: + case WindowBoundary::EXPR_PRECEDING_RANGE: + case WindowBoundary::EXPR_FOLLOWING_RANGE: + return; + default: + break; + } + + if (is_start) { + throw InternalException("Unsupported window start boundary"); + } else { + throw InternalException("Unsupported window end boundary"); + } +} + +void WindowAggregateExecutor::Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + CollectionPtr collection) const { + WindowExecutor::Finalize(gstate, lstate, collection); + + auto &gastate = gstate.Cast(); + auto &gsink = gastate.gsink; + D_ASSERT(aggregator); + + // Estimate the frame statistics + // Default to the entire partition if we don't know anything + FrameStats stats; + const auto count = NumericCast(gastate.payload_count); + + // First entry is the frame start + stats[0] = FrameDelta(-count, count); + auto base = wexpr.expr_stats.empty() ? nullptr : wexpr.expr_stats[0].get(); + ApplyWindowStats(wexpr.start, stats[0], base, true); + + // Second entry is the frame end + stats[1] = FrameDelta(-count, count); + base = wexpr.expr_stats.empty() ? nullptr : wexpr.expr_stats[1].get(); + ApplyWindowStats(wexpr.end, stats[1], base, false); + + auto &lastate = lstate.Cast(); + aggregator->Finalize(*gsink, *lastate.aggregator_state, collection, stats); +} + +void WindowAggregateExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, + idx_t row_idx) const { + auto &gastate = gstate.Cast(); + auto &lastate = lstate.Cast(); + auto &gsink = gastate.gsink; + D_ASSERT(aggregator); + + auto &agg_state = *lastate.aggregator_state; + + aggregator->Evaluate(*gsink, agg_state, lastate.bounds, result, count, row_idx); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_aggregate_states.cpp b/src/duckdb/src/function/window/window_aggregate_states.cpp new file mode 100644 index 00000000..2a673ec5 --- /dev/null +++ b/src/duckdb/src/function/window/window_aggregate_states.cpp @@ -0,0 +1,48 @@ +#include "duckdb/function/window/window_aggregate_states.hpp" + +namespace duckdb { + +WindowAggregateStates::WindowAggregateStates(const AggregateObject &aggr) + : aggr(aggr), state_size(aggr.function.state_size(aggr.function)), allocator(Allocator::DefaultAllocator()) { +} + +void WindowAggregateStates::Initialize(idx_t count) { + states.resize(count * state_size); + auto state_ptr = states.data(); + + statef = make_uniq(LogicalType::POINTER, count); + auto state_f_data = FlatVector::GetData(*statef); + + for (idx_t i = 0; i < count; ++i, state_ptr += state_size) { + state_f_data[i] = state_ptr; + aggr.function.initialize(aggr.function, state_ptr); + } + + // Prevent conversion of results to constants + statef->SetVectorType(VectorType::FLAT_VECTOR); +} + +void WindowAggregateStates::Combine(WindowAggregateStates &target, AggregateCombineType combine_type) { + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator, AggregateCombineType::ALLOW_DESTRUCTIVE); + aggr.function.combine(*statef, *target.statef, aggr_input_data, GetCount()); +} + +void WindowAggregateStates::Finalize(Vector &result) { + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + aggr.function.finalize(*statef, aggr_input_data, result, GetCount(), 0); +} + +void WindowAggregateStates::Destroy() { + if (states.empty()) { + return; + } + + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + if (aggr.function.destructor) { + aggr.function.destructor(*statef, aggr_input_data, GetCount()); + } + + states.clear(); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_aggregator.cpp b/src/duckdb/src/function/window/window_aggregator.cpp new file mode 100644 index 00000000..60499073 --- /dev/null +++ b/src/duckdb/src/function/window/window_aggregator.cpp @@ -0,0 +1,89 @@ +#include "duckdb/function/window/window_aggregator.hpp" + +#include "duckdb/function/window/window_collection.hpp" +#include "duckdb/function/window/window_shared_expressions.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowAggregator +//===--------------------------------------------------------------------===// +WindowAggregatorState::WindowAggregatorState() : allocator(Allocator::DefaultAllocator()) { +} + +WindowAggregator::WindowAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode_p) + : wexpr(wexpr), aggr(wexpr), result_type(wexpr.return_type), state_size(aggr.function.state_size(aggr.function)), + exclude_mode(exclude_mode_p) { + + for (auto &child : wexpr.children) { + arg_types.emplace_back(child->return_type); + } +} + +WindowAggregator::WindowAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode_p, + WindowSharedExpressions &shared) + : WindowAggregator(wexpr, exclude_mode_p) { + for (auto &child : wexpr.children) { + child_idx.emplace_back(shared.RegisterCollection(child, false)); + } +} + +WindowAggregator::~WindowAggregator() { +} + +unique_ptr WindowAggregator::GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &) const { + return make_uniq(context, *this, group_count); +} + +void WindowAggregatorLocalState::Sink(WindowAggregatorGlobalState &gastate, DataChunk &sink_chunk, + DataChunk &coll_chunk, idx_t input_idx) { +} + +void WindowAggregator::Sink(WindowAggregatorState &gstate, WindowAggregatorState &lstate, DataChunk &sink_chunk, + DataChunk &coll_chunk, idx_t input_idx, optional_ptr filter_sel, + idx_t filtered) { + auto &gastate = gstate.Cast(); + auto &lastate = lstate.Cast(); + lastate.Sink(gastate, sink_chunk, coll_chunk, input_idx); + if (filter_sel) { + auto &filter_mask = gastate.filter_mask; + for (idx_t f = 0; f < filtered; ++f) { + filter_mask.SetValid(input_idx + filter_sel->get_index(f)); + } + } +} + +void WindowAggregatorLocalState::InitSubFrames(SubFrames &frames, const WindowExcludeMode exclude_mode) { + idx_t nframes = 0; + switch (exclude_mode) { + case WindowExcludeMode::NO_OTHER: + nframes = 1; + break; + case WindowExcludeMode::TIES: + nframes = 3; + break; + case WindowExcludeMode::CURRENT_ROW: + case WindowExcludeMode::GROUP: + nframes = 2; + break; + } + frames.resize(nframes, {0, 0}); +} + +void WindowAggregatorLocalState::Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection) { + // Prepare to scan + if (!cursor) { + cursor = make_uniq(*collection, gastate.aggregator.child_idx); + } +} + +void WindowAggregator::Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, CollectionPtr collection, + const FrameStats &stats) { + auto &gasink = gstate.Cast(); + auto &lastate = lstate.Cast(); + lastate.Finalize(gasink, collection); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_boundaries_state.cpp b/src/duckdb/src/function/window/window_boundaries_state.cpp new file mode 100644 index 00000000..915bc85f --- /dev/null +++ b/src/duckdb/src/function/window/window_boundaries_state.cpp @@ -0,0 +1,809 @@ +#include "duckdb/common/operator/add.hpp" +#include "duckdb/common/operator/subtract.hpp" +#include "duckdb/function/window/window_boundaries_state.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowBoundariesState +//===--------------------------------------------------------------------===// +idx_t WindowBoundariesState::FindNextStart(const ValidityMask &mask, idx_t l, const idx_t r, idx_t &n) { + if (mask.AllValid()) { + auto start = MinValue(l + n - 1, r); + n -= MinValue(n, r - l); + return start; + } + + while (l < r) { + // If l is aligned with the start of a block, and the block is blank, then skip forward one block. + idx_t entry_idx; + idx_t shift; + mask.GetEntryIndex(l, entry_idx, shift); + + const auto block = mask.GetValidityEntry(entry_idx); + if (mask.NoneValid(block) && !shift) { + l += ValidityMask::BITS_PER_VALUE; + continue; + } + + // Loop over the block + for (; shift < ValidityMask::BITS_PER_VALUE && l < r; ++shift, ++l) { + if (mask.RowIsValid(block, shift) && --n == 0) { + return MinValue(l, r); + } + } + } + + // Didn't find a start so return the end of the range + return r; +} + +idx_t WindowBoundariesState::FindPrevStart(const ValidityMask &mask, const idx_t l, idx_t r, idx_t &n) { + if (mask.AllValid()) { + auto start = (r <= l + n) ? l : r - n; + n -= r - start; + return start; + } + + while (l < r) { + // If r is aligned with the start of a block, and the previous block is blank, + // then skip backwards one block. + idx_t entry_idx; + idx_t shift; + mask.GetEntryIndex(r - 1, entry_idx, shift); + + const auto block = mask.GetValidityEntry(entry_idx); + if (mask.NoneValid(block) && (shift + 1 == ValidityMask::BITS_PER_VALUE)) { + // r is nonzero (> l) and word aligned, so this will not underflow. + r -= ValidityMask::BITS_PER_VALUE; + continue; + } + + // Loop backwards over the block + // shift is probing r-1 >= l >= 0 + for (++shift; shift-- > 0 && l < r; --r) { + // l < r ensures n == 1 if result is supposed to be NULL because of EXCLUDE + if (mask.RowIsValid(block, shift) && --n == 0) { + return MaxValue(l, r - 1); + } + } + } + + // Didn't find a start so return the start of the range + return l; +} + +//===--------------------------------------------------------------------===// +// WindowColumnIterator +//===--------------------------------------------------------------------===// +template +struct WindowColumnIterator { + using iterator = WindowColumnIterator; + using iterator_category = std::random_access_iterator_tag; + using difference_type = std::ptrdiff_t; + using value_type = T; + using reference = T; + using pointer = idx_t; + + explicit WindowColumnIterator(WindowCursor &coll, pointer pos = 0) : coll(&coll), pos(pos) { + } + + // Forward iterator + inline reference operator*() const { + return coll->GetCell(0, pos); + } + inline explicit operator pointer() const { + return pos; + } + + inline iterator &operator++() { + ++pos; + return *this; + } + inline iterator operator++(int) { + auto result = *this; + ++(*this); + return result; + } + + // Bidirectional iterator + inline iterator &operator--() { + --pos; + return *this; + } + inline iterator operator--(int) { + auto result = *this; + --(*this); + return result; + } + + // Random Access + inline iterator &operator+=(difference_type n) { + pos += UnsafeNumericCast(n); + return *this; + } + inline iterator &operator-=(difference_type n) { + pos -= UnsafeNumericCast(n); + return *this; + } + + inline reference operator[](difference_type m) const { + return coll->GetCell(0, pos + m); + } + + friend inline iterator &operator+(const iterator &a, difference_type n) { + return iterator(a.coll, a.pos + n); + } + + friend inline iterator operator-(const iterator &a, difference_type n) { + return iterator(a.coll, a.pos - n); + } + + friend inline iterator operator+(difference_type n, const iterator &a) { + return a + n; + } + friend inline difference_type operator-(const iterator &a, const iterator &b) { + return difference_type(a.pos - b.pos); + } + + friend inline bool operator==(const iterator &a, const iterator &b) { + return a.pos == b.pos; + } + friend inline bool operator!=(const iterator &a, const iterator &b) { + return a.pos != b.pos; + } + friend inline bool operator<(const iterator &a, const iterator &b) { + return a.pos < b.pos; + } + friend inline bool operator<=(const iterator &a, const iterator &b) { + return a.pos <= b.pos; + } + friend inline bool operator>(const iterator &a, const iterator &b) { + return a.pos > b.pos; + } + friend inline bool operator>=(const iterator &a, const iterator &b) { + return a.pos >= b.pos; + } + +private: + // optional_ptr does not allow us to modify this, but the constructor enforces it. + WindowCursor *coll; + pointer pos; +}; + +template +struct OperationCompare : public std::function { + inline bool operator()(const T &lhs, const T &val) const { + return OP::template Operation(lhs, val); + } +}; + +template +static idx_t FindTypedRangeBound(WindowCursor &over, const idx_t order_begin, const idx_t order_end, + const WindowBoundary range, WindowInputExpression &boundary, const idx_t chunk_idx, + const FrameBounds &prev) { + D_ASSERT(!boundary.CellIsNull(chunk_idx)); + const auto val = boundary.GetCell(chunk_idx); + + OperationCompare comp; + + // Check that the value we are searching for is in range. + if (range == WindowBoundary::EXPR_PRECEDING_RANGE) { + // Preceding but value past the current value + const auto cur_val = over.GetCell(0, order_end - 1); + if (comp(cur_val, val)) { + throw OutOfRangeException("Invalid RANGE PRECEDING value"); + } + } else { + // Following but value before the current value + D_ASSERT(range == WindowBoundary::EXPR_FOLLOWING_RANGE); + const auto cur_val = over.GetCell(0, order_begin); + if (comp(val, cur_val)) { + throw OutOfRangeException("Invalid RANGE FOLLOWING value"); + } + } + + // Try to reuse the previous bounds to restrict the search. + // This is only valid if the previous bounds were non-empty + // Only inject the comparisons if the previous bounds are a strict subset. + WindowColumnIterator begin(over, order_begin); + WindowColumnIterator end(over, order_end); + if (prev.start < prev.end) { + if (order_begin < prev.start && prev.start < order_end) { + const auto first = over.GetCell(0, prev.start); + if (!comp(val, first)) { + // prev.first <= val, so we can start further forward + begin += UnsafeNumericCast(prev.start - order_begin); + } + } + if (order_begin < prev.end && prev.end < order_end) { + const auto second = over.GetCell(0, prev.end - 1); + if (!comp(second, val)) { + // val <= prev.second, so we can end further back + // (prev.second is the largest peer) + end -= UnsafeNumericCast(order_end - prev.end - 1); + } + } + } + + if (FROM) { + return idx_t(std::lower_bound(begin, end, val, comp)); + } else { + return idx_t(std::upper_bound(begin, end, val, comp)); + } +} + +template +static idx_t FindRangeBound(WindowCursor &over, const idx_t order_begin, const idx_t order_end, + const WindowBoundary range, WindowInputExpression &boundary, const idx_t chunk_idx, + const FrameBounds &prev) { + switch (boundary.InternalType()) { + case PhysicalType::INT8: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::INT16: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::INT32: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::INT64: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::UINT8: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::UINT16: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::UINT32: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::UINT64: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::INT128: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::UINT128: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, + prev); + case PhysicalType::FLOAT: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::DOUBLE: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case PhysicalType::INTERVAL: + return FindTypedRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, + prev); + default: + throw InternalException("Unsupported column type for RANGE"); + } +} + +template +static idx_t FindOrderedRangeBound(WindowCursor &over, const OrderType range_sense, const idx_t order_begin, + const idx_t order_end, const WindowBoundary range, WindowInputExpression &boundary, + const idx_t chunk_idx, const FrameBounds &prev) { + switch (range_sense) { + case OrderType::ASCENDING: + return FindRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + case OrderType::DESCENDING: + return FindRangeBound(over, order_begin, order_end, range, boundary, chunk_idx, prev); + default: + throw InternalException("Unsupported ORDER BY sense for RANGE"); + } +} + +bool WindowBoundariesState::HasPrecedingRange(const BoundWindowExpression &wexpr) { + return (wexpr.start == WindowBoundary::EXPR_PRECEDING_RANGE || wexpr.end == WindowBoundary::EXPR_PRECEDING_RANGE); +} + +bool WindowBoundariesState::HasFollowingRange(const BoundWindowExpression &wexpr) { + return (wexpr.start == WindowBoundary::EXPR_FOLLOWING_RANGE || wexpr.end == WindowBoundary::EXPR_FOLLOWING_RANGE); +} + +WindowBoundsSet WindowBoundariesState::GetWindowBounds(const BoundWindowExpression &wexpr) { + const auto partition_count = wexpr.partitions.size(); + const auto order_count = wexpr.orders.size(); + + WindowBoundsSet result; + switch (wexpr.type) { + case ExpressionType::WINDOW_ROW_NUMBER: + result.insert(PARTITION_BEGIN); + break; + case ExpressionType::WINDOW_RANK_DENSE: + case ExpressionType::WINDOW_RANK: + result.insert(PARTITION_BEGIN); + result.insert(PEER_BEGIN); + break; + case ExpressionType::WINDOW_PERCENT_RANK: + result.insert(PARTITION_BEGIN); + result.insert(PARTITION_END); + result.insert(PEER_BEGIN); + break; + case ExpressionType::WINDOW_CUME_DIST: + result.insert(PARTITION_BEGIN); + result.insert(PARTITION_END); + result.insert(PEER_END); + break; + case ExpressionType::WINDOW_NTILE: + case ExpressionType::WINDOW_LEAD: + case ExpressionType::WINDOW_LAG: + result.insert(PARTITION_BEGIN); + result.insert(PARTITION_END); + break; + case ExpressionType::WINDOW_FIRST_VALUE: + case ExpressionType::WINDOW_LAST_VALUE: + case ExpressionType::WINDOW_NTH_VALUE: + case ExpressionType::WINDOW_AGGREGATE: + result.insert(PARTITION_BEGIN); + result.insert(PARTITION_END); + result.insert(FRAME_BEGIN); + result.insert(FRAME_END); + + // if we have EXCLUDE GROUP / TIES, we also need peer boundaries + if (wexpr.exclude_clause != WindowExcludeMode::NO_OTHER) { + result.insert(PEER_BEGIN); + result.insert(PEER_END); + } + + // If the frames are RANGE, then we need peer boundaries + // If they are preceding or following, we also need to know + // where the valid values begin or end. + switch (wexpr.start) { + case WindowBoundary::CURRENT_ROW_RANGE: + result.insert(PEER_BEGIN); + break; + case WindowBoundary::EXPR_PRECEDING_RANGE: + result.insert(PEER_BEGIN); + result.insert(VALID_BEGIN); + result.insert(VALID_END); + break; + case WindowBoundary::EXPR_FOLLOWING_RANGE: + result.insert(PEER_BEGIN); + result.insert(VALID_END); + break; + default: + break; + } + + switch (wexpr.end) { + case WindowBoundary::CURRENT_ROW_RANGE: + result.insert(PEER_END); + break; + case WindowBoundary::EXPR_PRECEDING_RANGE: + result.insert(PEER_END); + result.insert(VALID_BEGIN); + break; + case WindowBoundary::EXPR_FOLLOWING_RANGE: + result.insert(PEER_END); + result.insert(VALID_BEGIN); + result.insert(VALID_END); + break; + default: + break; + } + break; + default: + throw InternalException("Window aggregate type %s", ExpressionTypeToString(wexpr.type)); + } + + // Internal dependencies + if (result.count(VALID_END)) { + result.insert(PARTITION_END); + if (HasFollowingRange(wexpr)) { + result.insert(VALID_BEGIN); + } + } + if (result.count(VALID_BEGIN)) { + result.insert(PARTITION_BEGIN); + result.insert(PARTITION_END); + } + if (result.count(PEER_END)) { + result.insert(PARTITION_END); + if (order_count) { + result.insert(PEER_BEGIN); + } + } + if (result.count(PARTITION_END) && (partition_count + order_count)) { + result.insert(PARTITION_BEGIN); + } + + return result; +} + +WindowBoundariesState::WindowBoundariesState(const BoundWindowExpression &wexpr, const idx_t input_size) + : required(GetWindowBounds(wexpr)), type(wexpr.type), input_size(input_size), start_boundary(wexpr.start), + end_boundary(wexpr.end), partition_count(wexpr.partitions.size()), order_count(wexpr.orders.size()), + range_sense(wexpr.orders.empty() ? OrderType::INVALID : wexpr.orders[0].type), + has_preceding_range(HasPrecedingRange(wexpr)), has_following_range(HasFollowingRange(wexpr)) { +} + +void WindowBoundariesState::Bounds(DataChunk &bounds, idx_t row_idx, optional_ptr range, + const idx_t count, WindowInputExpression &boundary_start, + WindowInputExpression &boundary_end, const ValidityMask &partition_mask, + const ValidityMask &order_mask) { + bounds.Reset(); + D_ASSERT(bounds.ColumnCount() == 8); + + const auto is_jump = (next_pos != row_idx); + if (required.count(PARTITION_BEGIN)) { + PartitionBegin(bounds, row_idx, count, is_jump, partition_mask); + } + if (required.count(PARTITION_END)) { + PartitionEnd(bounds, row_idx, count, is_jump, partition_mask); + } + if (required.count(PEER_BEGIN)) { + PeerBegin(bounds, row_idx, count, is_jump, partition_mask, order_mask); + } + if (required.count(PEER_END)) { + PeerEnd(bounds, row_idx, count, partition_mask, order_mask); + } + if (required.count(VALID_BEGIN)) { + ValidBegin(bounds, row_idx, count, is_jump, partition_mask, order_mask, range); + } + if (required.count(VALID_END)) { + ValidEnd(bounds, row_idx, count, is_jump, partition_mask, order_mask, range); + } + if (required.count(FRAME_BEGIN)) { + FrameBegin(bounds, row_idx, count, boundary_start, range); + } + if (required.count(FRAME_END)) { + FrameEnd(bounds, row_idx, count, boundary_end, range); + } + next_pos += count; + + bounds.SetCardinality(count); +} + +void WindowBoundariesState::PartitionBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask) { + auto partition_begin_data = FlatVector::GetData(bounds.data[PARTITION_BEGIN]); + + // OVER() + if (partition_count + order_count == 0) { + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + partition_begin_data[chunk_idx] = 0; + } + return; + } + + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + // determine partition and peer group boundaries to ultimately figure out window size + const auto is_same_partition = !partition_mask.RowIsValidUnsafe(row_idx); + + // when the partition changes, recompute the boundaries + if (!is_same_partition || is_jump) { + if (is_jump) { + idx_t n = 1; + partition_start = FindPrevStart(partition_mask, 0, row_idx + 1, n); + is_jump = false; + } else { + partition_start = row_idx; + } + } + + partition_begin_data[chunk_idx] = partition_start; + } +} + +void WindowBoundariesState::PartitionEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask) { + auto partition_end_data = FlatVector::GetData(bounds.data[PARTITION_END]); + + // OVER() + if (partition_count + order_count == 0) { + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + partition_end_data[chunk_idx] = input_size; + } + return; + } + + auto partition_begin_data = FlatVector::GetData(bounds.data[PARTITION_BEGIN]); + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + // determine partition and peer group boundaries to ultimately figure out window size + const auto is_same_partition = !partition_mask.RowIsValidUnsafe(row_idx); + + // when the partition changes, recompute the boundaries + if (!is_same_partition || is_jump) { + // find end of partition + partition_end = input_size; + if (partition_count) { + const auto partition_begin = partition_begin_data[chunk_idx]; + idx_t n = 1; + partition_end = FindNextStart(partition_mask, partition_begin + 1, input_size, n); + } + is_jump = false; + } + + partition_end_data[chunk_idx] = partition_end; + } +} + +void WindowBoundariesState::PeerBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask, const ValidityMask &order_mask) { + + auto peer_begin_data = FlatVector::GetData(bounds.data[PEER_BEGIN]); + + // OVER() + if (partition_count + order_count == 0) { + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + peer_begin_data[chunk_idx] = 0; + } + return; + } + + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + // determine partition and peer group boundaries to ultimately figure out window size + const auto is_same_partition = !partition_mask.RowIsValidUnsafe(row_idx); + const auto is_peer = !order_mask.RowIsValidUnsafe(row_idx); + + // when the partition changes, recompute the boundaries + if (!is_same_partition || is_jump) { + // find end of partition + if (is_jump) { + idx_t n = 1; + peer_start = FindPrevStart(order_mask, 0, row_idx + 1, n); + } else { + peer_start = row_idx; + } + is_jump = false; + } else if (!is_peer) { + peer_start = row_idx; + } + + peer_begin_data[chunk_idx] = peer_start; + } +} + +void WindowBoundariesState::PeerEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, + const ValidityMask &partition_mask, const ValidityMask &order_mask) { + // OVER() + if (!order_count) { + bounds.data[PEER_END].Reference(bounds.data[PARTITION_END]); + return; + } + + auto partition_end_data = FlatVector::GetData(bounds.data[PARTITION_END]); + auto peer_begin_data = FlatVector::GetData(bounds.data[PEER_BEGIN]); + auto peer_end_data = FlatVector::GetData(bounds.data[PEER_END]); + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + idx_t n = 1; + const auto peer_start = peer_begin_data[chunk_idx]; + const auto partition_end = partition_end_data[chunk_idx]; + peer_end_data[chunk_idx] = FindNextStart(order_mask, peer_start + 1, partition_end, n); + } +} + +void WindowBoundariesState::ValidBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask, const ValidityMask &order_mask, + optional_ptr range) { + auto partition_begin_data = FlatVector::GetData(bounds.data[PARTITION_BEGIN]); + auto partition_end_data = FlatVector::GetData(bounds.data[PARTITION_END]); + auto valid_begin_data = FlatVector::GetData(bounds.data[VALID_BEGIN]); + + // OVER() + D_ASSERT(partition_count + order_count != 0); + D_ASSERT(range); + + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + const auto is_same_partition = !partition_mask.RowIsValidUnsafe(row_idx); + + if (!is_same_partition || is_jump) { + // Find valid ordering values for the new partition + // so we can exclude NULLs from RANGE expression computations + valid_start = partition_begin_data[chunk_idx]; + const auto valid_end = partition_end_data[chunk_idx]; + + if ((valid_start < valid_end) && has_preceding_range) { + // Exclude any leading NULLs + if (range->CellIsNull(0, valid_start)) { + idx_t n = 1; + valid_start = FindNextStart(order_mask, valid_start + 1, valid_end, n); + } + } + } + + valid_begin_data[chunk_idx] = valid_start; + } +} + +void WindowBoundariesState::ValidEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask, const ValidityMask &order_mask, + optional_ptr range) { + auto partition_end_data = FlatVector::GetData(bounds.data[PARTITION_END]); + auto valid_begin_data = FlatVector::GetData(bounds.data[VALID_BEGIN]); + auto valid_end_data = FlatVector::GetData(bounds.data[VALID_END]); + + // OVER() + D_ASSERT(partition_count + order_count != 0); + D_ASSERT(range); + + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + const auto is_same_partition = !partition_mask.RowIsValidUnsafe(row_idx); + + if (!is_same_partition || is_jump) { + // Find valid ordering values for the new partition + // so we can exclude NULLs from RANGE expression computations + valid_end = partition_end_data[chunk_idx]; + + if ((valid_start < valid_end) && has_following_range) { + // Exclude any trailing NULLs + const auto valid_start = valid_begin_data[chunk_idx]; + if (range->CellIsNull(0, valid_end - 1)) { + idx_t n = 1; + valid_end = FindPrevStart(order_mask, valid_start, valid_end, n); + } + + // Reset range hints + prev.start = valid_start; + prev.end = valid_end; + } + } + + valid_end_data[chunk_idx] = valid_end; + } +} + +void WindowBoundariesState::FrameBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, + WindowInputExpression &boundary_begin, optional_ptr range) { + auto partition_begin_data = FlatVector::GetData(bounds.data[PARTITION_BEGIN]); + auto partition_end_data = FlatVector::GetData(bounds.data[PARTITION_END]); + auto peer_begin_data = FlatVector::GetData(bounds.data[PEER_BEGIN]); + auto valid_begin_data = FlatVector::GetData(bounds.data[VALID_BEGIN]); + auto valid_end_data = FlatVector::GetData(bounds.data[VALID_END]); + auto frame_begin_data = FlatVector::GetData(bounds.data[FRAME_BEGIN]); + + idx_t window_start = NumericLimits::Maximum(); + + switch (start_boundary) { + case WindowBoundary::UNBOUNDED_PRECEDING: + bounds.data[FRAME_BEGIN].Reference(bounds.data[PARTITION_BEGIN]); + // No need to clamp + return; + case WindowBoundary::CURRENT_ROW_ROWS: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + frame_begin_data[chunk_idx] = row_idx; + } + break; + case WindowBoundary::CURRENT_ROW_RANGE: + bounds.data[FRAME_BEGIN].Reference(bounds.data[PEER_BEGIN]); + frame_begin_data = peer_begin_data; + break; + case WindowBoundary::EXPR_PRECEDING_ROWS: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + int64_t computed_start; + if (!TrySubtractOperator::Operation(static_cast(row_idx), + boundary_begin.GetCell(chunk_idx), computed_start)) { + window_start = partition_begin_data[chunk_idx]; + } else { + window_start = UnsafeNumericCast(MaxValue(computed_start, 0)); + } + frame_begin_data[chunk_idx] = window_start; + } + break; + case WindowBoundary::EXPR_FOLLOWING_ROWS: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + int64_t computed_start; + if (!TryAddOperator::Operation(static_cast(row_idx), boundary_begin.GetCell(chunk_idx), + computed_start)) { + window_start = partition_begin_data[chunk_idx]; + } else { + window_start = UnsafeNumericCast(MaxValue(computed_start, 0)); + } + frame_begin_data[chunk_idx] = window_start; + } + break; + case WindowBoundary::EXPR_PRECEDING_RANGE: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + if (boundary_begin.CellIsNull(chunk_idx)) { + window_start = peer_begin_data[chunk_idx]; + } else { + const auto valid_start = valid_begin_data[chunk_idx]; + prev.end = valid_end_data[chunk_idx]; + window_start = FindOrderedRangeBound(*range, range_sense, valid_start, row_idx + 1, + start_boundary, boundary_begin, chunk_idx, prev); + prev.start = window_start; + } + frame_begin_data[chunk_idx] = window_start; + } + break; + case WindowBoundary::EXPR_FOLLOWING_RANGE: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + if (boundary_begin.CellIsNull(chunk_idx)) { + window_start = peer_begin_data[chunk_idx]; + } else { + const auto valid_end = valid_end_data[chunk_idx]; + prev.end = valid_end; + window_start = FindOrderedRangeBound(*range, range_sense, row_idx, valid_end, start_boundary, + boundary_begin, chunk_idx, prev); + prev.start = window_start; + } + frame_begin_data[chunk_idx] = window_start; + } + break; + default: + throw InternalException("Unsupported window start boundary"); + } + + ClampFrame(count, frame_begin_data, partition_begin_data, partition_end_data); +} + +void WindowBoundariesState::FrameEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, + WindowInputExpression &boundary_end, optional_ptr range) { + auto partition_begin_data = FlatVector::GetData(bounds.data[PARTITION_BEGIN]); + auto partition_end_data = FlatVector::GetData(bounds.data[PARTITION_END]); + auto peer_end_data = FlatVector::GetData(bounds.data[PEER_END]); + auto valid_begin_data = FlatVector::GetData(bounds.data[VALID_BEGIN]); + auto valid_end_data = FlatVector::GetData(bounds.data[VALID_END]); + auto frame_end_data = FlatVector::GetData(bounds.data[FRAME_END]); + + idx_t window_end = NumericLimits::Maximum(); + + switch (end_boundary) { + case WindowBoundary::CURRENT_ROW_ROWS: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + frame_end_data[chunk_idx] = row_idx + 1; + } + break; + case WindowBoundary::CURRENT_ROW_RANGE: + bounds.data[FRAME_END].Reference(bounds.data[PEER_END]); + frame_end_data = peer_end_data; + break; + case WindowBoundary::UNBOUNDED_FOLLOWING: + bounds.data[FRAME_END].Reference(bounds.data[PARTITION_END]); + // No need to clamp + return; + case WindowBoundary::EXPR_PRECEDING_ROWS: { + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + int64_t computed_start; + if (!TrySubtractOperator::Operation(int64_t(row_idx + 1), boundary_end.GetCell(chunk_idx), + computed_start)) { + window_end = partition_end_data[chunk_idx]; + } else { + window_end = UnsafeNumericCast(MaxValue(computed_start, 0)); + } + frame_end_data[chunk_idx] = window_end; + } + break; + } + case WindowBoundary::EXPR_FOLLOWING_ROWS: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + int64_t computed_start; + if (!TryAddOperator::Operation(int64_t(row_idx + 1), boundary_end.GetCell(chunk_idx), + computed_start)) { + window_end = partition_end_data[chunk_idx]; + } else { + window_end = UnsafeNumericCast(MaxValue(computed_start, 0)); + } + frame_end_data[chunk_idx] = window_end; + } + break; + case WindowBoundary::EXPR_PRECEDING_RANGE: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + if (boundary_end.CellIsNull(chunk_idx)) { + window_end = peer_end_data[chunk_idx]; + } else { + const auto valid_start = valid_begin_data[chunk_idx]; + prev.start = valid_start; + window_end = FindOrderedRangeBound(*range, range_sense, valid_start, row_idx + 1, end_boundary, + boundary_end, chunk_idx, prev); + prev.end = window_end; + } + frame_end_data[chunk_idx] = window_end; + } + break; + case WindowBoundary::EXPR_FOLLOWING_RANGE: + for (idx_t chunk_idx = 0; chunk_idx < count; ++chunk_idx, ++row_idx) { + if (boundary_end.CellIsNull(chunk_idx)) { + window_end = peer_end_data[chunk_idx]; + } else { + const auto valid_end = valid_end_data[chunk_idx]; + prev.start = valid_begin_data[chunk_idx]; + window_end = FindOrderedRangeBound(*range, range_sense, row_idx, valid_end, end_boundary, + boundary_end, chunk_idx, prev); + prev.end = window_end; + } + frame_end_data[chunk_idx] = window_end; + } + break; + default: + throw InternalException("Unsupported window end boundary"); + } + + ClampFrame(count, frame_end_data, partition_begin_data, partition_end_data); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_collection.cpp b/src/duckdb/src/function/window/window_collection.cpp new file mode 100644 index 00000000..0dee0cc8 --- /dev/null +++ b/src/duckdb/src/function/window/window_collection.cpp @@ -0,0 +1,146 @@ +#include "duckdb/function/window/window_collection.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowCollection +//===--------------------------------------------------------------------===// +WindowCollection::WindowCollection(BufferManager &buffer_manager, idx_t count, const vector &types) + : all_valids(types.size()), types(types), count(count), buffer_manager(buffer_manager) { + if (!types.empty()) { + inputs = make_uniq(buffer_manager, types); + } + + validities.resize(types.size()); + + // Atomic vectors can't be constructed with a given value + for (auto &all_valid : all_valids) { + all_valid = true; + } +} + +void WindowCollection::GetCollection(idx_t row_idx, ColumnDataCollectionSpec &spec) { + if (spec.second && row_idx == spec.first + spec.second->Count()) { + return; + } + + lock_guard collection_guard(lock); + + auto collection = make_uniq(buffer_manager, types); + spec = {row_idx, collection.get()}; + Range probe {row_idx, collections.size()}; + auto i = std::upper_bound(ranges.begin(), ranges.end(), probe); + ranges.insert(i, probe); + collections.emplace_back(std::move(collection)); +} + +void WindowCollection::Combine(const ColumnSet &validity_cols) { + lock_guard collection_guard(lock); + + // If there are no columns (COUNT(*)) then this is a NOP + if (types.empty()) { + return; + } + + // Have we already combined? + if (inputs->Count()) { + D_ASSERT(collections.empty()); + D_ASSERT(ranges.empty()); + return; + } + + // If there are columns, we should have data + D_ASSERT(!collections.empty()); + D_ASSERT(!ranges.empty()); + + for (auto &range : ranges) { + inputs->Combine(*collections[range.second]); + } + collections.clear(); + ranges.clear(); + + if (validity_cols.empty()) { + return; + } + + D_ASSERT(inputs.get()); + + // Find all columns with NULLs + vector invalid_cols; + for (auto &col_idx : validity_cols) { + if (!all_valids[col_idx]) { + invalid_cols.emplace_back(col_idx); + validities[col_idx].Initialize(inputs->Count()); + } + } + + if (invalid_cols.empty()) { + return; + } + + WindowCursor cursor(*this, invalid_cols); + idx_t target_offset = 0; + while (cursor.Scan()) { + const auto count = cursor.chunk.size(); + for (idx_t i = 0; i < invalid_cols.size(); ++i) { + auto &other = FlatVector::Validity(cursor.chunk.data[i]); + const auto col_idx = invalid_cols[i]; + validities[col_idx].SliceInPlace(other, target_offset, 0, count); + } + target_offset += count; + } +} + +WindowBuilder::WindowBuilder(WindowCollection &collection) : collection(collection) { +} + +void WindowBuilder::Sink(DataChunk &chunk, idx_t input_idx) { + // Check whether we need a a new collection + if (!sink.second || input_idx < sink.first || sink.first + sink.second->Count() < input_idx) { + collection.GetCollection(input_idx, sink); + D_ASSERT(sink.second); + sink.second->InitializeAppend(appender); + } + sink.second->Append(appender, chunk); + + // Record NULLs + for (column_t col_idx = 0; col_idx < chunk.ColumnCount(); ++col_idx) { + if (!collection.all_valids[col_idx]) { + continue; + } + + // Column was valid, make sure it still is. + UnifiedVectorFormat data; + chunk.data[col_idx].ToUnifiedFormat(chunk.size(), data); + if (!data.validity.AllValid()) { + collection.all_valids[col_idx] = false; + } + } +} + +WindowCursor::WindowCursor(const WindowCollection &paged, vector column_ids) : paged(paged) { + D_ASSERT(paged.collections.empty()); + D_ASSERT(paged.ranges.empty()); + if (column_ids.empty()) { + // For things like COUNT(*) set the state up to contain the whole range + state.segment_index = 0; + state.chunk_index = 0; + state.current_row_index = 0; + state.next_row_index = paged.size(); + state.properties = ColumnDataScanProperties::ALLOW_ZERO_COPY; + chunk.SetCapacity(state.next_row_index); + chunk.SetCardinality(state.next_row_index); + return; + } else if (chunk.data.empty()) { + auto &inputs = paged.inputs; + D_ASSERT(inputs.get()); + inputs->InitializeScan(state, std::move(column_ids)); + inputs->InitializeScanChunk(state, chunk); + } +} + +WindowCursor::WindowCursor(const WindowCollection &paged, column_t col_idx) + : WindowCursor(paged, vector(1, col_idx)) { +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_constant_aggregator.cpp b/src/duckdb/src/function/window/window_constant_aggregator.cpp new file mode 100644 index 00000000..d94267f9 --- /dev/null +++ b/src/duckdb/src/function/window/window_constant_aggregator.cpp @@ -0,0 +1,281 @@ +#include "duckdb/function/window/window_constant_aggregator.hpp" +#include "duckdb/function/window/window_aggregate_states.hpp" +#include "duckdb/function/window/window_shared_expressions.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowConstantAggregator +//===--------------------------------------------------------------------===// + +class WindowConstantAggregatorGlobalState : public WindowAggregatorGlobalState { +public: + WindowConstantAggregatorGlobalState(ClientContext &context, const WindowConstantAggregator &aggregator, idx_t count, + const ValidityMask &partition_mask); + + void Finalize(const FrameStats &stats); + + //! Partition starts + vector partition_offsets; + //! Reused result state container for the window functions + WindowAggregateStates statef; + //! Aggregate results + unique_ptr results; +}; + +class WindowConstantAggregatorLocalState : public WindowAggregatorLocalState { +public: + explicit WindowConstantAggregatorLocalState(const WindowConstantAggregatorGlobalState &gstate); + ~WindowConstantAggregatorLocalState() override { + } + + void Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, idx_t input_idx, optional_ptr filter_sel, + idx_t filtered); + void Combine(WindowConstantAggregatorGlobalState &gstate); + +public: + //! The global state we are sharing + const WindowConstantAggregatorGlobalState &gstate; + //! Reusable chunk for sinking + DataChunk inputs; + //! Chunk for referencing the input columns + DataChunk payload_chunk; + //! A vector of pointers to "state", used for intermediate window segment aggregation + Vector statep; + //! Reused result state container for the window functions + WindowAggregateStates statef; + //! The current result partition being read + idx_t partition; + //! Shared SV for evaluation + SelectionVector matches; +}; + +WindowConstantAggregatorGlobalState::WindowConstantAggregatorGlobalState(ClientContext &context, + const WindowConstantAggregator &aggregator, + idx_t group_count, + const ValidityMask &partition_mask) + : WindowAggregatorGlobalState(context, aggregator, STANDARD_VECTOR_SIZE), statef(aggr) { + + // Locate the partition boundaries + if (partition_mask.AllValid()) { + partition_offsets.emplace_back(0); + } else { + idx_t entry_idx; + idx_t shift; + for (idx_t start = 0; start < group_count;) { + partition_mask.GetEntryIndex(start, entry_idx, shift); + + // If start is aligned with the start of a block, + // and the block is blank, then skip forward one block. + const auto block = partition_mask.GetValidityEntry(entry_idx); + if (partition_mask.NoneValid(block) && !shift) { + start += ValidityMask::BITS_PER_VALUE; + continue; + } + + // Loop over the block + for (; shift < ValidityMask::BITS_PER_VALUE && start < group_count; ++shift, ++start) { + if (partition_mask.RowIsValid(block, shift)) { + partition_offsets.emplace_back(start); + } + } + } + } + + // Initialise the vector for caching the results + results = make_uniq(aggregator.result_type, partition_offsets.size()); + + // Initialise the final states + statef.Initialize(partition_offsets.size()); + + // Add final guard + partition_offsets.emplace_back(group_count); +} + +WindowConstantAggregatorLocalState::WindowConstantAggregatorLocalState( + const WindowConstantAggregatorGlobalState &gstate) + : gstate(gstate), statep(Value::POINTER(0)), statef(gstate.statef.aggr), partition(0) { + matches.Initialize(); + + // Start the aggregates + auto &partition_offsets = gstate.partition_offsets; + auto &aggregator = gstate.aggregator; + statef.Initialize(partition_offsets.size() - 1); + + // Set up shared buffer + inputs.Initialize(Allocator::DefaultAllocator(), aggregator.arg_types); + payload_chunk.InitializeEmpty(inputs.GetTypes()); + + gstate.locals++; +} + +WindowConstantAggregator::WindowConstantAggregator(const BoundWindowExpression &wexpr, + const WindowExcludeMode exclude_mode_p, + WindowSharedExpressions &shared) + : WindowAggregator(wexpr, exclude_mode_p) { + + // We only need these values for Sink + for (auto &child : wexpr.children) { + child_idx.emplace_back(shared.RegisterSink(child)); + } +} + +unique_ptr WindowConstantAggregator::GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const { + return make_uniq(context, *this, group_count, partition_mask); +} + +void WindowConstantAggregator::Sink(WindowAggregatorState &gsink, WindowAggregatorState &lstate, DataChunk &sink_chunk, + DataChunk &coll_chunk, idx_t input_idx, optional_ptr filter_sel, + idx_t filtered) { + auto &lastate = lstate.Cast(); + + lastate.Sink(sink_chunk, coll_chunk, input_idx, filter_sel, filtered); +} + +void WindowConstantAggregatorLocalState::Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, idx_t row, + optional_ptr filter_sel, idx_t filtered) { + auto &partition_offsets = gstate.partition_offsets; + const auto &aggr = gstate.aggr; + const auto chunk_begin = row; + const auto chunk_end = chunk_begin + sink_chunk.size(); + idx_t partition = + idx_t(std::upper_bound(partition_offsets.begin(), partition_offsets.end(), row) - partition_offsets.begin()) - + 1; + + auto state_f_data = statef.GetData(); + auto state_p_data = FlatVector::GetData(statep); + + auto &child_idx = gstate.aggregator.child_idx; + for (column_t c = 0; c < child_idx.size(); ++c) { + payload_chunk.data[c].Reference(sink_chunk.data[child_idx[c]]); + } + + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + idx_t begin = 0; + idx_t filter_idx = 0; + auto partition_end = partition_offsets[partition + 1]; + while (row < chunk_end) { + if (row == partition_end) { + ++partition; + partition_end = partition_offsets[partition + 1]; + } + partition_end = MinValue(partition_end, chunk_end); + auto end = partition_end - chunk_begin; + + inputs.Reset(); + if (filter_sel) { + // Slice to any filtered rows in [begin, end) + SelectionVector sel; + + // Find the first value in [begin, end) + for (; filter_idx < filtered; ++filter_idx) { + auto idx = filter_sel->get_index(filter_idx); + if (idx >= begin) { + break; + } + } + + // Find the first value in [end, filtered) + sel.Initialize(filter_sel->data() + filter_idx); + idx_t nsel = 0; + for (; filter_idx < filtered; ++filter_idx, ++nsel) { + auto idx = filter_sel->get_index(filter_idx); + if (idx >= end) { + break; + } + } + + if (nsel != inputs.size()) { + inputs.Slice(payload_chunk, sel, nsel); + } + } else { + // Slice to [begin, end) + if (begin) { + for (idx_t c = 0; c < payload_chunk.ColumnCount(); ++c) { + inputs.data[c].Slice(payload_chunk.data[c], begin, end); + } + } else { + inputs.Reference(payload_chunk); + } + inputs.SetCardinality(end - begin); + } + + // Aggregate the filtered rows into a single state + const auto count = inputs.size(); + auto state = state_f_data[partition]; + if (aggr.function.simple_update) { + aggr.function.simple_update(inputs.data.data(), aggr_input_data, inputs.ColumnCount(), state, count); + } else { + state_p_data[0] = state_f_data[partition]; + aggr.function.update(inputs.data.data(), aggr_input_data, inputs.ColumnCount(), statep, count); + } + + // Skip filtered rows too! + row += end - begin; + begin = end; + } +} + +void WindowConstantAggregator::Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, + CollectionPtr collection, const FrameStats &stats) { + auto &gastate = gstate.Cast(); + auto &lastate = lstate.Cast(); + + // Single-threaded combine + lock_guard finalize_guard(gastate.lock); + lastate.statef.Combine(gastate.statef); + lastate.statef.Destroy(); + + // Last one out turns off the lights! + if (++gastate.finalized == gastate.locals) { + gastate.statef.Finalize(*gastate.results); + gastate.statef.Destroy(); + } +} + +unique_ptr WindowConstantAggregator::GetLocalState(const WindowAggregatorState &gstate) const { + return make_uniq(gstate.Cast()); +} + +void WindowConstantAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, + const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { + auto &gasink = gsink.Cast(); + const auto &partition_offsets = gasink.partition_offsets; + const auto &results = *gasink.results; + + auto begins = FlatVector::GetData(bounds.data[FRAME_BEGIN]); + // Chunk up the constants and copy them one at a time + auto &lcstate = lstate.Cast(); + idx_t matched = 0; + idx_t target_offset = 0; + for (idx_t i = 0; i < count; ++i) { + const auto begin = begins[i]; + // Find the partition containing [begin, end) + while (partition_offsets[lcstate.partition + 1] <= begin) { + // Flush the previous partition's data + if (matched) { + VectorOperations::Copy(results, result, lcstate.matches, matched, 0, target_offset); + target_offset += matched; + matched = 0; + } + ++lcstate.partition; + } + + lcstate.matches.set_index(matched++, lcstate.partition); + } + + // Flush the last partition + if (matched) { + // Optimize constant result + if (target_offset == 0 && matched == count) { + VectorOperations::Copy(results, result, lcstate.matches, 1, 0, target_offset); + result.SetVectorType(VectorType::CONSTANT_VECTOR); + } else { + VectorOperations::Copy(results, result, lcstate.matches, matched, 0, target_offset); + } + } +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_cumedist_function.cpp b/src/duckdb/src/function/window/window_cumedist_function.cpp new file mode 100644 index 00000000..7090b84a --- /dev/null +++ b/src/duckdb/src/function/window/window_cumedist_function.cpp @@ -0,0 +1,28 @@ +#include "duckdb/function/window/window_cumedist_function.hpp" +#include "duckdb/function/window/window_shared_expressions.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowCumeDistExecutor +//===--------------------------------------------------------------------===// +WindowCumeDistExecutor::WindowCumeDistExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowExecutor(wexpr, context, shared) { +} + +void WindowCumeDistExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, idx_t row_idx) const { + auto &lbstate = lstate.Cast(); + auto partition_begin = FlatVector::GetData(lbstate.bounds.data[PARTITION_BEGIN]); + auto partition_end = FlatVector::GetData(lbstate.bounds.data[PARTITION_END]); + auto peer_end = FlatVector::GetData(lbstate.bounds.data[PEER_END]); + auto rdata = FlatVector::GetData(result); + for (idx_t i = 0; i < count; ++i, ++row_idx) { + auto denom = static_cast(NumericCast(partition_end[i] - partition_begin[i])); + double cume_dist = denom > 0 ? ((double)(peer_end[i] - partition_begin[i])) / denom : 0; + rdata[i] = cume_dist; + } +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_custom_aggregator.cpp b/src/duckdb/src/function/window/window_custom_aggregator.cpp new file mode 100644 index 00000000..d7514352 --- /dev/null +++ b/src/duckdb/src/function/window/window_custom_aggregator.cpp @@ -0,0 +1,129 @@ +#include "duckdb/function/window/window_custom_aggregator.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowCustomAggregator +//===--------------------------------------------------------------------===// +WindowCustomAggregator::WindowCustomAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode, + WindowSharedExpressions &shared) + : WindowAggregator(wexpr, exclude_mode, shared) { +} + +WindowCustomAggregator::~WindowCustomAggregator() { +} + +class WindowCustomAggregatorState : public WindowAggregatorLocalState { +public: + WindowCustomAggregatorState(const AggregateObject &aggr, const WindowExcludeMode exclude_mode); + ~WindowCustomAggregatorState() override; + +public: + //! The aggregate function + const AggregateObject aggr; + //! Data pointer that contains a single state, shared by all the custom evaluators + vector state; + //! Reused result state container for the window functions + Vector statef; + //! The frame boundaries, used for the window functions + SubFrames frames; +}; + +class WindowCustomAggregatorGlobalState : public WindowAggregatorGlobalState { +public: + explicit WindowCustomAggregatorGlobalState(ClientContext &context, const WindowCustomAggregator &aggregator, + idx_t group_count) + : WindowAggregatorGlobalState(context, aggregator, group_count), context(context) { + + gcstate = make_uniq(aggr, aggregator.exclude_mode); + } + + //! Buffer manager for paging custom accelerator data + ClientContext &context; + //! Traditional packed filter mask for API + ValidityMask filter_packed; + //! Data pointer that contains a single local state, used for global custom window execution state + unique_ptr gcstate; + //! Partition description for custom window APIs + unique_ptr partition_input; +}; + +WindowCustomAggregatorState::WindowCustomAggregatorState(const AggregateObject &aggr, + const WindowExcludeMode exclude_mode) + : aggr(aggr), state(aggr.function.state_size(aggr.function)), + statef(Value::POINTER(CastPointerToValue(state.data()))), frames(3, {0, 0}) { + // if we have a frame-by-frame method, share the single state + aggr.function.initialize(aggr.function, state.data()); + + InitSubFrames(frames, exclude_mode); +} + +WindowCustomAggregatorState::~WindowCustomAggregatorState() { + if (aggr.function.destructor) { + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + aggr.function.destructor(statef, aggr_input_data, 1); + } +} + +unique_ptr WindowCustomAggregator::GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &) const { + return make_uniq(context, *this, group_count); +} + +void WindowCustomAggregator::Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, + CollectionPtr collection, const FrameStats &stats) { + // Single threaded Finalize for now + auto &gcsink = gstate.Cast(); + lock_guard gestate_guard(gcsink.lock); + if (gcsink.finalized) { + return; + } + + WindowAggregator::Finalize(gstate, lstate, collection, stats); + + auto inputs = collection->inputs.get(); + const auto count = collection->size(); + vector all_valids; + for (auto col_idx : child_idx) { + all_valids.push_back(collection->all_valids[col_idx]); + } + auto &filter_mask = gcsink.filter_mask; + auto &filter_packed = gcsink.filter_packed; + filter_mask.Pack(filter_packed, filter_mask.Capacity()); + + gcsink.partition_input = + make_uniq(gcsink.context, inputs, count, child_idx, all_valids, filter_packed, stats); + + if (aggr.function.window_init) { + auto &gcstate = *gcsink.gcstate; + + AggregateInputData aggr_input_data(aggr.GetFunctionData(), gcstate.allocator); + aggr.function.window_init(aggr_input_data, *gcsink.partition_input, gcstate.state.data()); + } + + ++gcsink.finalized; +} + +unique_ptr WindowCustomAggregator::GetLocalState(const WindowAggregatorState &gstate) const { + return make_uniq(aggr, exclude_mode); +} + +void WindowCustomAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, + const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { + auto &lcstate = lstate.Cast(); + auto &frames = lcstate.frames; + const_data_ptr_t gstate_p = nullptr; + auto &gcsink = gsink.Cast(); + if (gcsink.gcstate) { + gstate_p = gcsink.gcstate->state.data(); + } + + EvaluateSubFrames(bounds, exclude_mode, count, row_idx, frames, [&](idx_t i) { + // Extract the range + AggregateInputData aggr_input_data(aggr.GetFunctionData(), lstate.allocator); + aggr.function.window(aggr_input_data, *gcsink.partition_input, gstate_p, lcstate.state.data(), frames, result, + i); + }); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_distinct_aggregator.cpp b/src/duckdb/src/function/window/window_distinct_aggregator.cpp new file mode 100644 index 00000000..ba466288 --- /dev/null +++ b/src/duckdb/src/function/window/window_distinct_aggregator.cpp @@ -0,0 +1,750 @@ +#include "duckdb/function/window/window_distinct_aggregator.hpp" + +#include "duckdb/common/sort/partition_state.hpp" +#include "duckdb/common/sort/sort.hpp" +#include "duckdb/execution/merge_sort_tree.hpp" +#include "duckdb/function/window/window_aggregate_states.hpp" +#include "duckdb/planner/bound_result_modifier.hpp" +#include "duckdb/planner/expression/bound_constant_expression.hpp" + +#include +#include + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowDistinctAggregator +//===--------------------------------------------------------------------===// +WindowDistinctAggregator::WindowDistinctAggregator(const BoundWindowExpression &wexpr, + const WindowExcludeMode exclude_mode_p, + WindowSharedExpressions &shared, ClientContext &context) + : WindowAggregator(wexpr, exclude_mode_p, shared), context(context) { +} + +class WindowDistinctAggregatorLocalState; + +class WindowDistinctAggregatorGlobalState; + +class WindowDistinctSortTree : public MergeSortTree { +public: + // prev_idx, input_idx + using ZippedTuple = std::tuple; + using ZippedElements = vector; + + explicit WindowDistinctSortTree(WindowDistinctAggregatorGlobalState &gdastate, idx_t count) : gdastate(gdastate) { + // Set up for parallel build + build_level = 0; + build_complete = 0; + build_run = 0; + build_run_length = 1; + build_num_runs = count; + } + + void Build(WindowDistinctAggregatorLocalState &ldastate); + +protected: + bool TryNextRun(idx_t &level_idx, idx_t &run_idx); + void BuildRun(idx_t level_nr, idx_t i, WindowDistinctAggregatorLocalState &ldastate); + + WindowDistinctAggregatorGlobalState &gdastate; +}; + +class WindowDistinctAggregatorGlobalState : public WindowAggregatorGlobalState { +public: + using GlobalSortStatePtr = unique_ptr; + using LocalSortStatePtr = unique_ptr; + using ZippedTuple = WindowDistinctSortTree::ZippedTuple; + using ZippedElements = WindowDistinctSortTree::ZippedElements; + + WindowDistinctAggregatorGlobalState(ClientContext &context, const WindowDistinctAggregator &aggregator, + idx_t group_count); + + //! Compute the block starts + void MeasurePayloadBlocks(); + //! Create a new local sort + optional_ptr InitializeLocalSort() const; + + //! Patch up the previous index block boundaries + void PatchPrevIdcs(); + bool TryPrepareNextStage(WindowDistinctAggregatorLocalState &lstate); + + // Single threaded sorting for now + ClientContext &context; + idx_t memory_per_thread; + + //! Finalize guard + mutable mutex lock; + //! Finalize stage + atomic stage; + //! Tasks launched + idx_t total_tasks = 0; + //! Tasks launched + mutable idx_t tasks_assigned; + //! Tasks landed + mutable atomic tasks_completed; + + //! The sorted payload data types (partition index) + vector payload_types; + //! The aggregate arguments + partition index + vector sort_types; + + //! Sorting operations + GlobalSortStatePtr global_sort; + //! Local sort set + mutable vector local_sorts; + //! The block starts (the scanner doesn't know this) plus the total count + vector block_starts; + + //! The block boundary seconds + mutable ZippedElements seconds; + //! The MST with the distinct back pointers + mutable MergeSortTree zipped_tree; + //! The merge sort tree for the aggregate. + WindowDistinctSortTree merge_sort_tree; + + //! The actual window segment tree: an array of aggregate states that represent all the intermediate nodes + WindowAggregateStates levels_flat_native; + //! For each level, the starting location in the levels_flat_native array + vector levels_flat_start; +}; + +WindowDistinctAggregatorGlobalState::WindowDistinctAggregatorGlobalState(ClientContext &context, + const WindowDistinctAggregator &aggregator, + idx_t group_count) + : WindowAggregatorGlobalState(context, aggregator, group_count), context(aggregator.context), + stage(PartitionSortStage::INIT), tasks_assigned(0), tasks_completed(0), merge_sort_tree(*this, group_count), + levels_flat_native(aggr) { + payload_types.emplace_back(LogicalType::UBIGINT); + + // 1: functionComputePrevIdcs(𝑖𝑛) + // 2: sorted ← [] + // We sort the aggregate arguments and use the partition index as a tie-breaker. + // TODO: Use a hash table? + sort_types = aggregator.arg_types; + for (const auto &type : payload_types) { + sort_types.emplace_back(type); + } + + vector orders; + for (const auto &type : sort_types) { + auto expr = make_uniq(Value(type)); + orders.emplace_back(BoundOrderByNode(OrderType::ASCENDING, OrderByNullType::NULLS_FIRST, std::move(expr))); + } + + RowLayout payload_layout; + payload_layout.Initialize(payload_types); + + global_sort = make_uniq(BufferManager::GetBufferManager(context), orders, payload_layout); + + memory_per_thread = PhysicalOperator::GetMaxThreadMemory(context); + + // 6: prevIdcs ← [] + // 7: prevIdcs[0] ← “-” + auto &prev_idcs = zipped_tree.Allocate(group_count); + + // To handle FILTER clauses we make the missing elements + // point to themselves so they won't be counted. + for (idx_t i = 0; i < group_count; ++i) { + prev_idcs[i] = ZippedTuple(i + 1, i); + } + + // compute space required to store aggregation states of merge sort tree + // this is one aggregate state per entry per level + idx_t internal_nodes = 0; + levels_flat_start.push_back(internal_nodes); + for (idx_t level_nr = 0; level_nr < zipped_tree.tree.size(); ++level_nr) { + internal_nodes += zipped_tree.tree[level_nr].first.size(); + levels_flat_start.push_back(internal_nodes); + } + levels_flat_native.Initialize(internal_nodes); + + merge_sort_tree.tree.reserve(zipped_tree.tree.size()); + for (idx_t level_nr = 0; level_nr < zipped_tree.tree.size(); ++level_nr) { + auto &zipped_level = zipped_tree.tree[level_nr].first; + WindowDistinctSortTree::Elements level; + WindowDistinctSortTree::Offsets cascades; + level.resize(zipped_level.size()); + merge_sort_tree.tree.emplace_back(std::move(level), std::move(cascades)); + } +} + +optional_ptr WindowDistinctAggregatorGlobalState::InitializeLocalSort() const { + lock_guard local_sort_guard(lock); + auto local_sort = make_uniq(); + local_sort->Initialize(*global_sort, global_sort->buffer_manager); + ++tasks_assigned; + local_sorts.emplace_back(std::move(local_sort)); + + return local_sorts.back().get(); +} + +class WindowDistinctAggregatorLocalState : public WindowAggregatorLocalState { +public: + explicit WindowDistinctAggregatorLocalState(const WindowDistinctAggregatorGlobalState &aggregator); + + void Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, idx_t input_idx, optional_ptr filter_sel, + idx_t filtered); + void Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection) override; + void Sorted(); + void ExecuteTask(); + void Evaluate(const WindowDistinctAggregatorGlobalState &gdstate, const DataChunk &bounds, Vector &result, + idx_t count, idx_t row_idx); + + //! Thread-local sorting data + optional_ptr local_sort; + //! Finalize stage + PartitionSortStage stage = PartitionSortStage::INIT; + //! Finalize scan block index + idx_t block_idx; + //! Thread-local tree aggregation + Vector update_v; + Vector source_v; + Vector target_v; + DataChunk leaves; + SelectionVector sel; + +protected: + //! Flush the accumulated intermediate states into the result states + void FlushStates(); + + //! The aggregator we are working with + const WindowDistinctAggregatorGlobalState &gastate; + DataChunk sort_chunk; + DataChunk payload_chunk; + //! Reused result state container for the window functions + WindowAggregateStates statef; + //! A vector of pointers to "state", used for buffering intermediate aggregates + Vector statep; + //! Reused state pointers for combining tree elements + Vector statel; + //! Count of buffered values + idx_t flush_count; + //! The frame boundaries, used for the window functions + SubFrames frames; +}; + +WindowDistinctAggregatorLocalState::WindowDistinctAggregatorLocalState( + const WindowDistinctAggregatorGlobalState &gastate) + : update_v(LogicalType::POINTER), source_v(LogicalType::POINTER), target_v(LogicalType::POINTER), gastate(gastate), + statef(gastate.aggr), statep(LogicalType::POINTER), statel(LogicalType::POINTER), flush_count(0) { + InitSubFrames(frames, gastate.aggregator.exclude_mode); + payload_chunk.Initialize(Allocator::DefaultAllocator(), gastate.payload_types); + + sort_chunk.Initialize(Allocator::DefaultAllocator(), gastate.sort_types); + sort_chunk.data.back().Reference(payload_chunk.data[0]); + + gastate.locals++; +} + +unique_ptr WindowDistinctAggregator::GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const { + return make_uniq(context, *this, group_count); +} + +void WindowDistinctAggregator::Sink(WindowAggregatorState &gsink, WindowAggregatorState &lstate, DataChunk &sink_chunk, + DataChunk &coll_chunk, idx_t input_idx, optional_ptr filter_sel, + idx_t filtered) { + WindowAggregator::Sink(gsink, lstate, sink_chunk, coll_chunk, input_idx, filter_sel, filtered); + + auto &ldstate = lstate.Cast(); + ldstate.Sink(sink_chunk, coll_chunk, input_idx, filter_sel, filtered); +} + +void WindowDistinctAggregatorLocalState::Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, idx_t input_idx, + optional_ptr filter_sel, idx_t filtered) { + // 3: for i ← 0 to in.size do + // 4: sorted[i] ← (in[i], i) + const auto count = sink_chunk.size(); + payload_chunk.Reset(); + auto &sorted_vec = payload_chunk.data[0]; + auto sorted = FlatVector::GetData(sorted_vec); + std::iota(sorted, sorted + count, input_idx); + + // Our arguments are being fully materialised, + // but we also need them as sort keys. + auto &child_idx = gastate.aggregator.child_idx; + for (column_t c = 0; c < child_idx.size(); ++c) { + sort_chunk.data[c].Reference(coll_chunk.data[child_idx[c]]); + } + sort_chunk.data.back().Reference(sorted_vec); + sort_chunk.SetCardinality(sink_chunk); + payload_chunk.SetCardinality(sort_chunk); + + // Apply FILTER clause, if any + if (filter_sel) { + sort_chunk.Slice(*filter_sel, filtered); + payload_chunk.Slice(*filter_sel, filtered); + } + + if (!local_sort) { + local_sort = gastate.InitializeLocalSort(); + } + + local_sort->SinkChunk(sort_chunk, payload_chunk); + + if (local_sort->SizeInBytes() > gastate.memory_per_thread) { + local_sort->Sort(*gastate.global_sort, true); + } +} + +void WindowDistinctAggregatorLocalState::Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection) { + WindowAggregatorLocalState::Finalize(gastate, collection); + + //! Input data chunk, used for leaf segment aggregation + leaves.Initialize(Allocator::DefaultAllocator(), cursor->chunk.GetTypes()); + sel.Initialize(); +} + +void WindowDistinctAggregatorLocalState::ExecuteTask() { + auto &global_sort = *gastate.global_sort; + switch (stage) { + case PartitionSortStage::SCAN: + global_sort.AddLocalState(*gastate.local_sorts[block_idx]); + break; + case PartitionSortStage::MERGE: { + MergeSorter merge_sorter(global_sort, global_sort.buffer_manager); + merge_sorter.PerformInMergeRound(); + break; + } + case PartitionSortStage::SORTED: + Sorted(); + break; + default: + break; + } + + ++gastate.tasks_completed; +} + +void WindowDistinctAggregatorGlobalState::MeasurePayloadBlocks() { + const auto &blocks = global_sort->sorted_blocks[0]->payload_data->data_blocks; + idx_t count = 0; + for (const auto &block : blocks) { + block_starts.emplace_back(count); + count += block->count; + } + block_starts.emplace_back(count); +} + +bool WindowDistinctAggregatorGlobalState::TryPrepareNextStage(WindowDistinctAggregatorLocalState &lstate) { + lock_guard stage_guard(lock); + + switch (stage.load()) { + case PartitionSortStage::INIT: + // 5: Sort sorted lexicographically increasing + total_tasks = local_sorts.size(); + tasks_assigned = 0; + tasks_completed = 0; + lstate.stage = stage = PartitionSortStage::SCAN; + lstate.block_idx = tasks_assigned++; + return true; + case PartitionSortStage::SCAN: + // Process all the local sorts + if (tasks_assigned < total_tasks) { + lstate.stage = PartitionSortStage::SCAN; + lstate.block_idx = tasks_assigned++; + return true; + } else if (tasks_completed < tasks_assigned) { + return false; + } + global_sort->PrepareMergePhase(); + if (!(global_sort->sorted_blocks.size() / 2)) { + if (global_sort->sorted_blocks.empty()) { + lstate.stage = stage = PartitionSortStage::FINISHED; + return true; + } + MeasurePayloadBlocks(); + seconds.resize(block_starts.size() - 1); + total_tasks = seconds.size(); + tasks_completed = 0; + tasks_assigned = 0; + lstate.stage = stage = PartitionSortStage::SORTED; + lstate.block_idx = tasks_assigned++; + return true; + } + global_sort->InitializeMergeRound(); + lstate.stage = stage = PartitionSortStage::MERGE; + total_tasks = locals; + tasks_assigned = 1; + tasks_completed = 0; + return true; + case PartitionSortStage::MERGE: + if (tasks_assigned < total_tasks) { + lstate.stage = PartitionSortStage::MERGE; + ++tasks_assigned; + return true; + } else if (tasks_completed < tasks_assigned) { + return false; + } + global_sort->CompleteMergeRound(true); + if (!(global_sort->sorted_blocks.size() / 2)) { + MeasurePayloadBlocks(); + seconds.resize(block_starts.size() - 1); + total_tasks = seconds.size(); + tasks_completed = 0; + tasks_assigned = 0; + lstate.stage = stage = PartitionSortStage::SORTED; + lstate.block_idx = tasks_assigned++; + return true; + } + global_sort->InitializeMergeRound(); + lstate.stage = PartitionSortStage::MERGE; + total_tasks = locals; + tasks_assigned = 1; + tasks_completed = 0; + return true; + case PartitionSortStage::SORTED: + if (tasks_assigned < total_tasks) { + lstate.stage = PartitionSortStage::SORTED; + lstate.block_idx = tasks_assigned++; + return true; + } else if (tasks_completed < tasks_assigned) { + lstate.stage = PartitionSortStage::FINISHED; + // Sleep while other tasks finish + return false; + } + // Last task patches the boundaries + PatchPrevIdcs(); + break; + default: + break; + } + + lstate.stage = stage = PartitionSortStage::FINISHED; + + return true; +} + +void WindowDistinctAggregator::Finalize(WindowAggregatorState &gsink, WindowAggregatorState &lstate, + CollectionPtr collection, const FrameStats &stats) { + auto &gdsink = gsink.Cast(); + auto &ldstate = lstate.Cast(); + ldstate.Finalize(gdsink, collection); + + // Sort, merge and build the tree in parallel + while (gdsink.stage.load() != PartitionSortStage::FINISHED) { + if (gdsink.TryPrepareNextStage(ldstate)) { + ldstate.ExecuteTask(); + } else { + std::this_thread::yield(); + } + } + + // These are a parallel implementations, + // so every thread can call them. + gdsink.zipped_tree.Build(); + gdsink.merge_sort_tree.Build(ldstate); + + ++gdsink.finalized; +} + +void WindowDistinctAggregatorLocalState::Sorted() { + using ZippedTuple = WindowDistinctAggregatorGlobalState::ZippedTuple; + auto &global_sort = gastate.global_sort; + auto &prev_idcs = gastate.zipped_tree.LowestLevel(); + auto &aggregator = gastate.aggregator; + auto &scan_chunk = payload_chunk; + + auto scanner = make_uniq(*global_sort, block_idx); + const auto in_size = gastate.block_starts.at(block_idx + 1); + scanner->Scan(scan_chunk); + idx_t scan_idx = 0; + + auto *input_idx = FlatVector::GetData(scan_chunk.data[0]); + idx_t i = 0; + + SBIterator curr(*global_sort, ExpressionType::COMPARE_LESSTHAN); + SBIterator prev(*global_sort, ExpressionType::COMPARE_LESSTHAN); + auto prefix_layout = global_sort->sort_layout.GetPrefixComparisonLayout(aggregator.arg_types.size()); + + const auto block_begin = gastate.block_starts.at(block_idx); + if (!block_begin) { + // First block, so set up initial sentinel + i = input_idx[scan_idx++]; + prev_idcs[i] = ZippedTuple(0, i); + std::get<0>(gastate.seconds[block_idx]) = i; + } else { + // Move to the to end of the previous block + // so we can record the comparison result for the first row + curr.SetIndex(block_begin - 1); + prev.SetIndex(block_begin - 1); + scan_idx = 0; + std::get<0>(gastate.seconds[block_idx]) = input_idx[scan_idx]; + } + + // 8: for i ← 1 to in.size do + for (++curr; curr.GetIndex() < in_size; ++curr, ++prev) { + // Scan second one chunk at a time + // Note the scan is one behind the iterators + if (scan_idx >= scan_chunk.size()) { + scan_chunk.Reset(); + scanner->Scan(scan_chunk); + scan_idx = 0; + input_idx = FlatVector::GetData(scan_chunk.data[0]); + } + auto second = i; + i = input_idx[scan_idx++]; + + int lt = 0; + if (prefix_layout.all_constant) { + lt = FastMemcmp(prev.entry_ptr, curr.entry_ptr, prefix_layout.comparison_size); + } else { + lt = Comparators::CompareTuple(prev.scan, curr.scan, prev.entry_ptr, curr.entry_ptr, prefix_layout, + prev.external); + } + + // 9: if sorted[i].first == sorted[i-1].first then + // 10: prevIdcs[i] ← sorted[i-1].second + // 11: else + // 12: prevIdcs[i] ← “-” + if (!lt) { + prev_idcs[i] = ZippedTuple(second + 1, i); + } else { + prev_idcs[i] = ZippedTuple(0, i); + } + } + + // Save the last value of i for patching up the block boundaries + std::get<1>(gastate.seconds[block_idx]) = i; +} + +void WindowDistinctAggregatorGlobalState::PatchPrevIdcs() { + // 13: return prevIdcs + + // Patch up the indices at block boundaries + // (We don't need to patch block 0.) + auto &prev_idcs = zipped_tree.LowestLevel(); + for (idx_t block_idx = 1; block_idx < seconds.size(); ++block_idx) { + // We only need to patch if the first index in the block + // was a back link to the previous block (10:) + auto i = std::get<0>(seconds.at(block_idx)); + if (std::get<0>(prev_idcs[i])) { + auto second = std::get<1>(seconds.at(block_idx - 1)); + prev_idcs[i] = ZippedTuple(second + 1, i); + } + } +} + +bool WindowDistinctSortTree::TryNextRun(idx_t &level_idx, idx_t &run_idx) { + const auto fanout = FANOUT; + + lock_guard stage_guard(build_lock); + + // Verify we are not done + if (build_level >= tree.size()) { + return false; + } + + // Finished with this level? + if (build_complete >= build_num_runs) { + auto &zipped_tree = gdastate.zipped_tree; + std::swap(tree[build_level].second, zipped_tree.tree[build_level].second); + + ++build_level; + if (build_level >= tree.size()) { + zipped_tree.tree.clear(); + return false; + } + + const auto count = LowestLevel().size(); + build_run_length *= fanout; + build_num_runs = (count + build_run_length - 1) / build_run_length; + build_run = 0; + build_complete = 0; + } + + // If all runs are in flight, + // yield until the next level is ready + if (build_run >= build_num_runs) { + return false; + } + + level_idx = build_level; + run_idx = build_run++; + + return true; +} + +void WindowDistinctSortTree::Build(WindowDistinctAggregatorLocalState &ldastate) { + // Fan in parent levels until we are at the top + // Note that we don't build the top layer as that would just be all the data. + while (build_level.load() < tree.size()) { + idx_t level_idx; + idx_t run_idx; + if (TryNextRun(level_idx, run_idx)) { + BuildRun(level_idx, run_idx, ldastate); + } else { + std::this_thread::yield(); + } + } +} + +void WindowDistinctSortTree::BuildRun(idx_t level_nr, idx_t run_idx, WindowDistinctAggregatorLocalState &ldastate) { + auto &aggr = gdastate.aggr; + auto &allocator = gdastate.allocator; + auto &inputs = ldastate.cursor->chunk; + auto &levels_flat_native = gdastate.levels_flat_native; + + //! Input data chunk, used for leaf segment aggregation + auto &leaves = ldastate.leaves; + auto &sel = ldastate.sel; + + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + + //! The states to update + auto &update_v = ldastate.update_v; + auto updates = FlatVector::GetData(update_v); + + auto &source_v = ldastate.source_v; + auto sources = FlatVector::GetData(source_v); + auto &target_v = ldastate.target_v; + auto targets = FlatVector::GetData(target_v); + + auto &zipped_tree = gdastate.zipped_tree; + auto &zipped_level = zipped_tree.tree[level_nr].first; + auto &level = tree[level_nr].first; + + // Reset the combine state + idx_t nupdate = 0; + idx_t ncombine = 0; + data_ptr_t prev_state = nullptr; + idx_t i = run_idx * build_run_length; + auto next_limit = MinValue(zipped_level.size(), i + build_run_length); + idx_t levels_flat_offset = level_nr * zipped_level.size() + i; + for (auto j = i; j < next_limit; ++j) { + // Initialise the next aggregate + auto curr_state = levels_flat_native.GetStatePtr(levels_flat_offset++); + + // Update this state (if it matches) + const auto prev_idx = std::get<0>(zipped_level[j]); + level[j] = prev_idx; + if (prev_idx < i + 1) { + const auto update_idx = std::get<1>(zipped_level[j]); + if (!ldastate.cursor->RowIsVisible(update_idx)) { + // Flush if we have to move the cursor + // Push the updates first so they propagate + leaves.Reference(inputs); + leaves.Slice(sel, nupdate); + aggr.function.update(leaves.data.data(), aggr_input_data, leaves.ColumnCount(), update_v, nupdate); + nupdate = 0; + + // Combine the states sequentially + aggr.function.combine(source_v, target_v, aggr_input_data, ncombine); + ncombine = 0; + + // Move the update into range. + ldastate.cursor->Seek(update_idx); + } + + updates[nupdate] = curr_state; + // input_idx + sel[nupdate] = ldastate.cursor->RowOffset(update_idx); + ++nupdate; + } + + // Merge the previous state (if any) + if (prev_state) { + sources[ncombine] = prev_state; + targets[ncombine] = curr_state; + ++ncombine; + } + prev_state = curr_state; + + // Flush the states if one is maxed out. + if (MaxValue(ncombine, nupdate) >= STANDARD_VECTOR_SIZE) { + // Push the updates first so they propagate + leaves.Reference(inputs); + leaves.Slice(sel, nupdate); + aggr.function.update(leaves.data.data(), aggr_input_data, leaves.ColumnCount(), update_v, nupdate); + nupdate = 0; + + // Combine the states sequentially + aggr.function.combine(source_v, target_v, aggr_input_data, ncombine); + ncombine = 0; + } + } + + // Flush any remaining states + if (ncombine || nupdate) { + // Push the updates + leaves.Reference(inputs); + leaves.Slice(sel, nupdate); + aggr.function.update(leaves.data.data(), aggr_input_data, leaves.ColumnCount(), update_v, nupdate); + nupdate = 0; + + // Combine the states sequentially + aggr.function.combine(source_v, target_v, aggr_input_data, ncombine); + ncombine = 0; + } + + ++build_complete; +} + +void WindowDistinctAggregatorLocalState::FlushStates() { + if (!flush_count) { + return; + } + + const auto &aggr = gastate.aggr; + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + statel.Verify(flush_count); + aggr.function.combine(statel, statep, aggr_input_data, flush_count); + + flush_count = 0; +} + +void WindowDistinctAggregatorLocalState::Evaluate(const WindowDistinctAggregatorGlobalState &gdstate, + const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) { + auto ldata = FlatVector::GetData(statel); + auto pdata = FlatVector::GetData(statep); + + const auto &merge_sort_tree = gdstate.merge_sort_tree; + const auto &levels_flat_native = gdstate.levels_flat_native; + const auto exclude_mode = gdstate.aggregator.exclude_mode; + + // Build the finalise vector that just points to the result states + statef.Initialize(count); + + WindowAggregator::EvaluateSubFrames(bounds, exclude_mode, count, row_idx, frames, [&](idx_t rid) { + auto agg_state = statef.GetStatePtr(rid); + + // TODO: Extend AggregateLowerBound to handle subframes, just like SelectNth. + const auto lower = frames[0].start; + const auto upper = frames[0].end; + merge_sort_tree.AggregateLowerBound(lower, upper, lower + 1, + [&](idx_t level, const idx_t run_begin, const idx_t run_pos) { + if (run_pos != run_begin) { + // Find the source aggregate + // Buffer a merge of the indicated state into the current state + const auto agg_idx = gdstate.levels_flat_start[level] + run_pos - 1; + const auto running_agg = levels_flat_native.GetStatePtr(agg_idx); + pdata[flush_count] = agg_state; + ldata[flush_count++] = running_agg; + if (flush_count >= STANDARD_VECTOR_SIZE) { + FlushStates(); + } + } + }); + }); + + // Flush the final states + FlushStates(); + + // Finalise the result aggregates and write to the result + statef.Finalize(result); + statef.Destroy(); +} + +unique_ptr WindowDistinctAggregator::GetLocalState(const WindowAggregatorState &gstate) const { + return make_uniq(gstate.Cast()); +} + +void WindowDistinctAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, + const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { + + const auto &gdstate = gsink.Cast(); + auto &ldstate = lstate.Cast(); + ldstate.Evaluate(gdstate, bounds, result, count, row_idx); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_executor.cpp b/src/duckdb/src/function/window/window_executor.cpp new file mode 100644 index 00000000..bcf39018 --- /dev/null +++ b/src/duckdb/src/function/window/window_executor.cpp @@ -0,0 +1,89 @@ +#include "duckdb/function/window/window_executor.hpp" + +#include "duckdb/function/window/window_shared_expressions.hpp" + +#include "duckdb/common/array.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowExecutorBoundsState +//===--------------------------------------------------------------------===// +WindowExecutorBoundsState::WindowExecutorBoundsState(const WindowExecutorGlobalState &gstate) + : WindowExecutorLocalState(gstate), partition_mask(gstate.partition_mask), order_mask(gstate.order_mask), + state(gstate.executor.wexpr, gstate.payload_count) { + vector bounds_types(8, LogicalType(LogicalTypeId::UBIGINT)); + bounds.Initialize(Allocator::Get(gstate.executor.context), bounds_types); +} + +void WindowExecutorBoundsState::UpdateBounds(WindowExecutorGlobalState &gstate, idx_t row_idx, DataChunk &eval_chunk, + optional_ptr range) { + // Evaluate the row-level arguments + WindowInputExpression boundary_start(eval_chunk, gstate.executor.boundary_start_idx); + WindowInputExpression boundary_end(eval_chunk, gstate.executor.boundary_end_idx); + + const auto count = eval_chunk.size(); + bounds.Reset(); + state.Bounds(bounds, row_idx, range, count, boundary_start, boundary_end, partition_mask, order_mask); +} + +//===--------------------------------------------------------------------===// +// WindowExecutor +//===--------------------------------------------------------------------===// +WindowExecutor::WindowExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared) + : wexpr(wexpr), context(context), + range_expr((WindowBoundariesState::HasPrecedingRange(wexpr) || WindowBoundariesState::HasFollowingRange(wexpr)) + ? wexpr.orders[0].expression.get() + : nullptr) { + if (range_expr) { + range_idx = shared.RegisterCollection(wexpr.orders[0].expression, false); + } + + boundary_start_idx = shared.RegisterEvaluate(wexpr.start_expr); + boundary_end_idx = shared.RegisterEvaluate(wexpr.end_expr); +} + +WindowExecutorGlobalState::WindowExecutorGlobalState(const WindowExecutor &executor, const idx_t payload_count, + const ValidityMask &partition_mask, const ValidityMask &order_mask) + : executor(executor), payload_count(payload_count), partition_mask(partition_mask), order_mask(order_mask) { + for (const auto &child : executor.wexpr.children) { + arg_types.emplace_back(child->return_type); + } +} + +WindowExecutorLocalState::WindowExecutorLocalState(const WindowExecutorGlobalState &gstate) { +} + +void WindowExecutorLocalState::Sink(WindowExecutorGlobalState &gstate, DataChunk &sink_chunk, DataChunk &coll_chunk, + idx_t input_idx) { +} + +void WindowExecutorLocalState::Finalize(WindowExecutorGlobalState &gstate, CollectionPtr collection) { + const auto range_idx = gstate.executor.range_idx; + if (range_idx != DConstants::INVALID_INDEX) { + range_cursor = make_uniq(*collection, range_idx); + } +} + +unique_ptr WindowExecutor::GetGlobalState(const idx_t payload_count, + const ValidityMask &partition_mask, + const ValidityMask &order_mask) const { + return make_uniq(*this, payload_count, partition_mask, order_mask); +} + +unique_ptr WindowExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { + return make_uniq(gstate); +} + +void WindowExecutor::Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, const idx_t input_idx, + WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const { + lstate.Sink(gstate, sink_chunk, coll_chunk, input_idx); +} + +void WindowExecutor::Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + CollectionPtr collection) const { + lstate.Finalize(gstate, collection); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_naive_aggregator.cpp b/src/duckdb/src/function/window/window_naive_aggregator.cpp new file mode 100644 index 00000000..8bf0d54d --- /dev/null +++ b/src/duckdb/src/function/window/window_naive_aggregator.cpp @@ -0,0 +1,246 @@ +#include "duckdb/function/window/window_naive_aggregator.hpp" +#include "duckdb/function/window/window_collection.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowNaiveAggregator +//===--------------------------------------------------------------------===// +WindowNaiveAggregator::WindowNaiveAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode, + WindowSharedExpressions &shared) + : WindowAggregator(wexpr, exclude_mode, shared) { +} + +WindowNaiveAggregator::~WindowNaiveAggregator() { +} + +class WindowNaiveState : public WindowAggregatorLocalState { +public: + struct HashRow { + explicit HashRow(WindowNaiveState &state) : state(state) { + } + + inline size_t operator()(const idx_t &i) const { + return state.Hash(i); + } + + WindowNaiveState &state; + }; + + struct EqualRow { + explicit EqualRow(WindowNaiveState &state) : state(state) { + } + + inline bool operator()(const idx_t &lhs, const idx_t &rhs) const { + return state.KeyEqual(lhs, rhs); + } + + WindowNaiveState &state; + }; + + using RowSet = std::unordered_set; + + explicit WindowNaiveState(const WindowNaiveAggregator &gsink); + + void Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection) override; + + void Evaluate(const WindowAggregatorGlobalState &gsink, const DataChunk &bounds, Vector &result, idx_t count, + idx_t row_idx); + +protected: + //! Flush the accumulated intermediate states into the result states + void FlushStates(const WindowAggregatorGlobalState &gsink); + + //! Hashes a value for the hash table + size_t Hash(idx_t rid); + //! Compares two values for the hash table + bool KeyEqual(const idx_t &lhs, const idx_t &rhs); + + //! The global state + const WindowNaiveAggregator &aggregator; + //! Data pointer that contains a vector of states, used for row aggregation + vector state; + //! Reused result state container for the aggregate + Vector statef; + //! A vector of pointers to "state", used for buffering intermediate aggregates + Vector statep; + //! Input data chunk, used for leaf segment aggregation + DataChunk leaves; + //! The rows beging updated. + SelectionVector update_sel; + //! Count of buffered values + idx_t flush_count; + //! The frame boundaries, used for EXCLUDE + SubFrames frames; + //! The optional hash table used for DISTINCT + Vector hashes; + //! The state used for comparing the collection across chunk boundaries + unique_ptr comparer; +}; + +WindowNaiveState::WindowNaiveState(const WindowNaiveAggregator &aggregator_p) + : aggregator(aggregator_p), state(aggregator.state_size * STANDARD_VECTOR_SIZE), statef(LogicalType::POINTER), + statep((LogicalType::POINTER)), flush_count(0), hashes(LogicalType::HASH) { + InitSubFrames(frames, aggregator.exclude_mode); + + update_sel.Initialize(); + + // Build the finalise vector that just points to the result states + data_ptr_t state_ptr = state.data(); + D_ASSERT(statef.GetVectorType() == VectorType::FLAT_VECTOR); + statef.SetVectorType(VectorType::CONSTANT_VECTOR); + statef.Flatten(STANDARD_VECTOR_SIZE); + auto fdata = FlatVector::GetData(statef); + for (idx_t i = 0; i < STANDARD_VECTOR_SIZE; ++i) { + fdata[i] = state_ptr; + state_ptr += aggregator.state_size; + } +} + +void WindowNaiveState::Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection) { + WindowAggregatorLocalState::Finalize(gastate, collection); + + // Set up the comparison scanner just in case + if (!comparer) { + comparer = make_uniq(*collection, gastate.aggregator.child_idx); + } +} + +void WindowNaiveState::FlushStates(const WindowAggregatorGlobalState &gsink) { + if (!flush_count) { + return; + } + + auto &scanned = cursor->chunk; + leaves.Slice(scanned, update_sel, flush_count); + + const auto &aggr = gsink.aggr; + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + aggr.function.update(leaves.data.data(), aggr_input_data, leaves.ColumnCount(), statep, flush_count); + + flush_count = 0; +} + +size_t WindowNaiveState::Hash(idx_t rid) { + D_ASSERT(cursor->RowIsVisible(rid)); + auto s = cursor->RowOffset(rid); + auto &scanned = cursor->chunk; + SelectionVector sel(&s); + leaves.Slice(scanned, sel, 1); + leaves.Hash(hashes); + + return *FlatVector::GetData(hashes); +} + +bool WindowNaiveState::KeyEqual(const idx_t &lidx, const idx_t &ridx) { + // One of the indices will be scanned, so make it the left one + auto lhs = lidx; + auto rhs = ridx; + if (!cursor->RowIsVisible(lhs)) { + std::swap(lhs, rhs); + D_ASSERT(cursor->RowIsVisible(lhs)); + } + + auto &scanned = cursor->chunk; + auto l = cursor->RowOffset(lhs); + SelectionVector lsel(&l); + + auto rreader = cursor.get(); + if (!cursor->RowIsVisible(rhs)) { + // Values on different pages! + rreader = comparer.get(); + rreader->Seek(rhs); + } + auto rscanned = &rreader->chunk; + auto r = rreader->RowOffset(rhs); + SelectionVector rsel(&r); + + sel_t f = 0; + SelectionVector fsel(&f); + + for (column_t c = 0; c < scanned.ColumnCount(); ++c) { + Vector left(scanned.data[c], lsel, 1); + Vector right(rscanned->data[c], rsel, 1); + if (!VectorOperations::NotDistinctFrom(left, right, nullptr, 1, nullptr, &fsel)) { + return false; + } + } + + return true; +} + +void WindowNaiveState::Evaluate(const WindowAggregatorGlobalState &gsink, const DataChunk &bounds, Vector &result, + idx_t count, idx_t row_idx) { + const auto &aggr = gsink.aggr; + auto &filter_mask = gsink.filter_mask; + const auto types = cursor->chunk.GetTypes(); + + if (leaves.ColumnCount() == 0 && !types.empty()) { + leaves.Initialize(Allocator::DefaultAllocator(), types); + } + + auto fdata = FlatVector::GetData(statef); + auto pdata = FlatVector::GetData(statep); + + HashRow hash_row(*this); + EqualRow equal_row(*this); + RowSet row_set(STANDARD_VECTOR_SIZE, hash_row, equal_row); + + WindowAggregator::EvaluateSubFrames(bounds, aggregator.exclude_mode, count, row_idx, frames, [&](idx_t rid) { + auto agg_state = fdata[rid]; + aggr.function.initialize(aggr.function, agg_state); + + // Just update the aggregate with the unfiltered input rows + row_set.clear(); + for (const auto &frame : frames) { + for (auto f = frame.start; f < frame.end; ++f) { + if (!filter_mask.RowIsValid(f)) { + continue; + } + + // Seek to the current position + if (!cursor->RowIsVisible(f)) { + // We need to flush when we cross a chunk boundary + FlushStates(gsink); + cursor->Seek(f); + } + + // Filter out duplicates + if (aggr.IsDistinct() && !row_set.insert(f).second) { + continue; + } + + pdata[flush_count] = agg_state; + update_sel[flush_count++] = cursor->RowOffset(f); + if (flush_count >= STANDARD_VECTOR_SIZE) { + FlushStates(gsink); + } + } + } + }); + + // Flush the final states + FlushStates(gsink); + + // Finalise the result aggregates and write to the result + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + aggr.function.finalize(statef, aggr_input_data, result, count, 0); + + // Destruct the result aggregates + if (aggr.function.destructor) { + aggr.function.destructor(statef, aggr_input_data, count); + } +} + +unique_ptr WindowNaiveAggregator::GetLocalState(const WindowAggregatorState &gstate) const { + return make_uniq(*this); +} + +void WindowNaiveAggregator::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, + const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { + const auto &gnstate = gsink.Cast(); + auto &lnstate = lstate.Cast(); + lnstate.Evaluate(gnstate, bounds, result, count, row_idx); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_rank_function.cpp b/src/duckdb/src/function/window/window_rank_function.cpp new file mode 100644 index 00000000..a8d028b8 --- /dev/null +++ b/src/duckdb/src/function/window/window_rank_function.cpp @@ -0,0 +1,166 @@ +#include "duckdb/function/window/window_rank_function.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowPeerState +//===--------------------------------------------------------------------===// +// Base class for non-aggregate functions that use peer boundaries +class WindowPeerState : public WindowExecutorBoundsState { +public: + explicit WindowPeerState(const WindowExecutorGlobalState &gstate) : WindowExecutorBoundsState(gstate) { + } + +public: + uint64_t dense_rank = 1; + uint64_t rank_equal = 0; + uint64_t rank = 1; + + void NextRank(idx_t partition_begin, idx_t peer_begin, idx_t row_idx); +}; + +void WindowPeerState::NextRank(idx_t partition_begin, idx_t peer_begin, idx_t row_idx) { + if (partition_begin == row_idx) { + dense_rank = 1; + rank = 1; + rank_equal = 0; + } else if (peer_begin == row_idx) { + dense_rank++; + rank += rank_equal; + rank_equal = 0; + } + rank_equal++; +} + +//===--------------------------------------------------------------------===// +// WindowRankExecutor +//===--------------------------------------------------------------------===// +WindowRankExecutor::WindowRankExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowExecutor(wexpr, context, shared) { +} + +unique_ptr WindowRankExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { + return make_uniq(gstate); +} + +void WindowRankExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, idx_t row_idx) const { + auto &lpeer = lstate.Cast(); + auto partition_begin = FlatVector::GetData(lpeer.bounds.data[PARTITION_BEGIN]); + auto peer_begin = FlatVector::GetData(lpeer.bounds.data[PEER_BEGIN]); + auto rdata = FlatVector::GetData(result); + + // Reset to "previous" row + lpeer.rank = (peer_begin[0] - partition_begin[0]) + 1; + lpeer.rank_equal = (row_idx - peer_begin[0]); + + for (idx_t i = 0; i < count; ++i, ++row_idx) { + lpeer.NextRank(partition_begin[i], peer_begin[i], row_idx); + rdata[i] = NumericCast(lpeer.rank); + } +} + +//===--------------------------------------------------------------------===// +// WindowDenseRankExecutor +//===--------------------------------------------------------------------===// +WindowDenseRankExecutor::WindowDenseRankExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowExecutor(wexpr, context, shared) { +} + +unique_ptr +WindowDenseRankExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { + return make_uniq(gstate); +} + +void WindowDenseRankExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, + idx_t row_idx) const { + auto &lpeer = lstate.Cast(); + + auto &order_mask = gstate.order_mask; + auto partition_begin = FlatVector::GetData(lpeer.bounds.data[PARTITION_BEGIN]); + auto peer_begin = FlatVector::GetData(lpeer.bounds.data[PEER_BEGIN]); + auto rdata = FlatVector::GetData(result); + + // Reset to "previous" row + lpeer.rank = (peer_begin[0] - partition_begin[0]) + 1; + lpeer.rank_equal = (row_idx - peer_begin[0]); + + // The previous dense rank is the number of order mask bits in [partition_begin, row_idx) + lpeer.dense_rank = 0; + + auto order_begin = partition_begin[0]; + idx_t begin_idx; + idx_t begin_offset; + order_mask.GetEntryIndex(order_begin, begin_idx, begin_offset); + + auto order_end = row_idx; + idx_t end_idx; + idx_t end_offset; + order_mask.GetEntryIndex(order_end, end_idx, end_offset); + + // If they are in the same entry, just loop + if (begin_idx == end_idx) { + const auto entry = order_mask.GetValidityEntry(begin_idx); + for (; begin_offset < end_offset; ++begin_offset) { + lpeer.dense_rank += order_mask.RowIsValid(entry, begin_offset); + } + } else { + // Count the ragged bits at the start of the partition + if (begin_offset) { + const auto entry = order_mask.GetValidityEntry(begin_idx); + for (; begin_offset < order_mask.BITS_PER_VALUE; ++begin_offset) { + lpeer.dense_rank += order_mask.RowIsValid(entry, begin_offset); + ++order_begin; + } + ++begin_idx; + } + + // Count the the aligned bits. + ValidityMask tail_mask(order_mask.GetData() + begin_idx, end_idx - begin_idx); + lpeer.dense_rank += tail_mask.CountValid(order_end - order_begin); + } + + for (idx_t i = 0; i < count; ++i, ++row_idx) { + lpeer.NextRank(partition_begin[i], peer_begin[i], row_idx); + rdata[i] = NumericCast(lpeer.dense_rank); + } +} + +//===--------------------------------------------------------------------===// +// WindowPercentRankExecutor +//===--------------------------------------------------------------------===// +WindowPercentRankExecutor::WindowPercentRankExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowExecutor(wexpr, context, shared) { +} + +unique_ptr +WindowPercentRankExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { + return make_uniq(gstate); +} + +void WindowPercentRankExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, + idx_t row_idx) const { + auto &lpeer = lstate.Cast(); + auto partition_begin = FlatVector::GetData(lpeer.bounds.data[PARTITION_BEGIN]); + auto partition_end = FlatVector::GetData(lpeer.bounds.data[PARTITION_END]); + auto peer_begin = FlatVector::GetData(lpeer.bounds.data[PEER_BEGIN]); + auto rdata = FlatVector::GetData(result); + + // Reset to "previous" row + lpeer.rank = (peer_begin[0] - partition_begin[0]) + 1; + lpeer.rank_equal = (row_idx - peer_begin[0]); + + for (idx_t i = 0; i < count; ++i, ++row_idx) { + lpeer.NextRank(partition_begin[i], peer_begin[i], row_idx); + auto denom = static_cast(NumericCast(partition_end[i] - partition_begin[i] - 1)); + double percent_rank = denom > 0 ? ((double)lpeer.rank - 1) / denom : 0; + rdata[i] = percent_rank; + } +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_rownumber_function.cpp b/src/duckdb/src/function/window/window_rownumber_function.cpp new file mode 100644 index 00000000..d87b0fae --- /dev/null +++ b/src/duckdb/src/function/window/window_rownumber_function.cpp @@ -0,0 +1,24 @@ +#include "duckdb/function/window/window_rownumber_function.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowRowNumberExecutor +//===--------------------------------------------------------------------===// +WindowRowNumberExecutor::WindowRowNumberExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowExecutor(wexpr, context, shared) { +} + +void WindowRowNumberExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, + idx_t row_idx) const { + auto &lbstate = lstate.Cast(); + auto partition_begin = FlatVector::GetData(lbstate.bounds.data[PARTITION_BEGIN]); + auto rdata = FlatVector::GetData(result); + for (idx_t i = 0; i < count; ++i, ++row_idx) { + rdata[i] = NumericCast(row_idx - partition_begin[i] + 1); + } +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_segment_tree.cpp b/src/duckdb/src/function/window/window_segment_tree.cpp new file mode 100644 index 00000000..0ccc8615 --- /dev/null +++ b/src/duckdb/src/function/window/window_segment_tree.cpp @@ -0,0 +1,587 @@ +#include "duckdb/function/window/window_segment_tree.hpp" + +#include "duckdb/function/window/window_aggregate_states.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" + +#include + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowSegmentTree +//===--------------------------------------------------------------------===// +class WindowSegmentTreeGlobalState : public WindowAggregatorGlobalState { +public: + using AtomicCounters = vector>; + + WindowSegmentTreeGlobalState(ClientContext &context, const WindowSegmentTree &aggregator, idx_t group_count); + + ArenaAllocator &CreateTreeAllocator() { + lock_guard tree_lock(lock); + tree_allocators.emplace_back(make_uniq(Allocator::DefaultAllocator())); + return *tree_allocators.back(); + } + + //! The owning aggregator + const WindowSegmentTree &tree; + //! The actual window segment tree: an array of aggregate states that represent all the intermediate nodes + WindowAggregateStates levels_flat_native; + //! For each level, the starting location in the levels_flat_native array + vector levels_flat_start; + //! The level being built (read) + std::atomic build_level; + //! The number of entries started so far at each level + unique_ptr build_started; + //! The number of entries completed so far at each level + unique_ptr build_completed; + //! The tree allocators. + //! We need to hold onto them for the tree lifetime, + //! not the lifetime of the local state that constructed part of the tree + vector> tree_allocators; + + // TREE_FANOUT needs to cleanly divide STANDARD_VECTOR_SIZE + static constexpr idx_t TREE_FANOUT = 16; +}; + +WindowSegmentTree::WindowSegmentTree(const BoundWindowExpression &wexpr, WindowAggregationMode mode_p, + const WindowExcludeMode exclude_mode_p, WindowSharedExpressions &shared) + : WindowAggregator(wexpr, exclude_mode_p, shared), mode(mode_p) { +} + +class WindowSegmentTreePart { +public: + //! Right side nodes need to be cached and processed in reverse order + using RightEntry = std::pair; + + enum FramePart : uint8_t { FULL = 0, LEFT = 1, RIGHT = 2 }; + + WindowSegmentTreePart(ArenaAllocator &allocator, const AggregateObject &aggr, unique_ptr cursor, + const ValidityArray &filter_mask); + ~WindowSegmentTreePart(); + + unique_ptr Copy() const { + return make_uniq(allocator, aggr, cursor->Copy(), filter_mask); + } + + void FlushStates(bool combining); + void ExtractFrame(idx_t begin, idx_t end, data_ptr_t current_state); + void WindowSegmentValue(const WindowSegmentTreeGlobalState &tree, idx_t l_idx, idx_t begin, idx_t end, + data_ptr_t current_state); + //! Writes result and calls destructors + void Finalize(Vector &result, idx_t count); + + void Combine(WindowSegmentTreePart &other, idx_t count); + + void Evaluate(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, Vector &result, + idx_t count, idx_t row_idx, FramePart frame_part); + +protected: + //! Initialises the accumulation state vector (statef) + void Initialize(idx_t count); + //! Accumulate upper tree levels + void EvaluateUpperLevels(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, + idx_t count, idx_t row_idx, FramePart frame_part); + void EvaluateLeaves(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, idx_t count, + idx_t row_idx, FramePart frame_part, FramePart leaf_part); + +public: + //! Allocator for aggregates + ArenaAllocator &allocator; + //! The aggregate function + const AggregateObject &aggr; + //! Order insensitive aggregate (we can optimise internal combines) + const bool order_insensitive; + //! The filtered rows in inputs + const ValidityArray &filter_mask; + //! The size of a single aggregate state + const idx_t state_size; + //! Data pointer that contains a vector of states, used for intermediate window segment aggregation + vector state; + //! Scanned data state + unique_ptr cursor; + //! Input data chunk, used for leaf segment aggregation + DataChunk leaves; + //! The filtered rows in inputs. + SelectionVector filter_sel; + //! A vector of pointers to "state", used for intermediate window segment aggregation + Vector statep; + //! Reused state pointers for combining segment tree levels + Vector statel; + //! Reused result state container for the window functions + Vector statef; + //! Count of buffered values + idx_t flush_count; + //! Cache of right side tree ranges for ordered aggregates + vector right_stack; +}; + +class WindowSegmentTreeState : public WindowAggregatorLocalState { +public: + WindowSegmentTreeState() { + } + + void Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection) override; + void Evaluate(const WindowSegmentTreeGlobalState &gsink, const DataChunk &bounds, Vector &result, idx_t count, + idx_t row_idx); + //! The left (default) segment tree part + unique_ptr part; + //! The right segment tree part (for EXCLUDE) + unique_ptr right_part; +}; + +void WindowSegmentTree::Finalize(WindowAggregatorState &gsink, WindowAggregatorState &lstate, CollectionPtr collection, + const FrameStats &stats) { + WindowAggregator::Finalize(gsink, lstate, collection, stats); + + auto &gasink = gsink.Cast(); + ++gasink.finalized; +} + +WindowSegmentTreePart::WindowSegmentTreePart(ArenaAllocator &allocator, const AggregateObject &aggr, + unique_ptr cursor_p, const ValidityArray &filter_mask) + : allocator(allocator), aggr(aggr), + order_insensitive(aggr.function.order_dependent == AggregateOrderDependent::NOT_ORDER_DEPENDENT), + filter_mask(filter_mask), state_size(aggr.function.state_size(aggr.function)), + state(state_size * STANDARD_VECTOR_SIZE), cursor(std::move(cursor_p)), statep(LogicalType::POINTER), + statel(LogicalType::POINTER), statef(LogicalType::POINTER), flush_count(0) { + + auto &inputs = cursor->chunk; + if (inputs.ColumnCount() > 0) { + leaves.Initialize(Allocator::DefaultAllocator(), inputs.GetTypes()); + filter_sel.Initialize(); + } + + // Build the finalise vector that just points to the result states + data_ptr_t state_ptr = state.data(); + D_ASSERT(statef.GetVectorType() == VectorType::FLAT_VECTOR); + statef.SetVectorType(VectorType::CONSTANT_VECTOR); + statef.Flatten(STANDARD_VECTOR_SIZE); + auto fdata = FlatVector::GetData(statef); + for (idx_t i = 0; i < STANDARD_VECTOR_SIZE; ++i) { + fdata[i] = state_ptr; + state_ptr += state_size; + } +} + +WindowSegmentTreePart::~WindowSegmentTreePart() { +} + +unique_ptr WindowSegmentTree::GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const { + return make_uniq(context, *this, group_count); +} + +unique_ptr WindowSegmentTree::GetLocalState(const WindowAggregatorState &gstate) const { + return make_uniq(); +} + +void WindowSegmentTreePart::FlushStates(bool combining) { + if (!flush_count) { + return; + } + + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + if (combining) { + statel.Verify(flush_count); + aggr.function.combine(statel, statep, aggr_input_data, flush_count); + } else { + auto &scanned = cursor->chunk; + leaves.Slice(scanned, filter_sel, flush_count); + aggr.function.update(&leaves.data[0], aggr_input_data, leaves.ColumnCount(), statep, flush_count); + } + + flush_count = 0; +} + +void WindowSegmentTreePart::Combine(WindowSegmentTreePart &other, idx_t count) { + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + aggr.function.combine(other.statef, statef, aggr_input_data, count); +} + +void WindowSegmentTreePart::ExtractFrame(idx_t begin, idx_t end, data_ptr_t state_ptr) { + const auto count = end - begin; + + // If we are not filtering, + // just update the shared dictionary selection to the range + // Otherwise set it to the input rows that pass the filter + auto states = FlatVector::GetData(statep); + if (filter_mask.AllValid()) { + const auto offset = cursor->RowOffset(begin); + for (idx_t i = 0; i < count; ++i) { + states[flush_count] = state_ptr; + filter_sel.set_index(flush_count++, offset + i); + if (flush_count >= STANDARD_VECTOR_SIZE) { + FlushStates(false); + } + } + } else { + for (idx_t i = begin; i < end; ++i) { + if (filter_mask.RowIsValid(i)) { + states[flush_count] = state_ptr; + filter_sel.set_index(flush_count++, cursor->RowOffset(i)); + if (flush_count >= STANDARD_VECTOR_SIZE) { + FlushStates(false); + } + } + } + } +} + +void WindowSegmentTreePart::WindowSegmentValue(const WindowSegmentTreeGlobalState &tree, idx_t l_idx, idx_t begin, + idx_t end, data_ptr_t state_ptr) { + D_ASSERT(begin <= end); + auto &inputs = cursor->chunk; + if (begin == end || inputs.ColumnCount() == 0) { + return; + } + + const auto count = end - begin; + if (l_idx == 0) { + // Check the leaves when they cross chunk boundaries + while (begin < end) { + if (!cursor->RowIsVisible(begin)) { + FlushStates(false); + cursor->Seek(begin); + } + auto next = MinValue(end, cursor->state.next_row_index); + ExtractFrame(begin, next, state_ptr); + begin = next; + } + } else { + // find out where the states begin + auto begin_ptr = tree.levels_flat_native.GetStatePtr(begin + tree.levels_flat_start[l_idx - 1]); + // set up a vector of pointers that point towards the set of states + auto ldata = FlatVector::GetData(statel); + auto pdata = FlatVector::GetData(statep); + for (idx_t i = 0; i < count; i++) { + pdata[flush_count] = state_ptr; + ldata[flush_count++] = begin_ptr; + begin_ptr += state_size; + if (flush_count >= STANDARD_VECTOR_SIZE) { + FlushStates(true); + } + } + } +} +void WindowSegmentTreePart::Finalize(Vector &result, idx_t count) { + // Finalise the result aggregates and write to result if write_result is set + AggregateInputData aggr_input_data(aggr.GetFunctionData(), allocator); + aggr.function.finalize(statef, aggr_input_data, result, count, 0); + + // Destruct the result aggregates + if (aggr.function.destructor) { + aggr.function.destructor(statef, aggr_input_data, count); + } +} + +WindowSegmentTreeGlobalState::WindowSegmentTreeGlobalState(ClientContext &context, const WindowSegmentTree &aggregator, + idx_t group_count) + : WindowAggregatorGlobalState(context, aggregator, group_count), tree(aggregator), levels_flat_native(aggr) { + + D_ASSERT(!aggregator.wexpr.children.empty()); + + // compute space required to store internal nodes of segment tree + levels_flat_start.push_back(0); + + idx_t levels_flat_offset = 0; + idx_t level_current = 0; + // level 0 is data itself + idx_t level_size; + // iterate over the levels of the segment tree + while ((level_size = + (level_current == 0 ? group_count : levels_flat_offset - levels_flat_start[level_current - 1])) > 1) { + for (idx_t pos = 0; pos < level_size; pos += TREE_FANOUT) { + levels_flat_offset++; + } + + levels_flat_start.push_back(levels_flat_offset); + level_current++; + } + + // Corner case: single element in the window + if (levels_flat_offset == 0) { + ++levels_flat_offset; + } + + levels_flat_native.Initialize(levels_flat_offset); + + // Start by building from the bottom level + build_level = 0; + + build_started = make_uniq(levels_flat_start.size()); + for (auto &counter : *build_started) { + counter = 0; + } + + build_completed = make_uniq(levels_flat_start.size()); + for (auto &counter : *build_completed) { + counter = 0; + } +} + +void WindowSegmentTreeState::Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection) { + WindowAggregatorLocalState::Finalize(gastate, collection); + + // Single part for constructing the tree + auto &gstate = gastate.Cast(); + auto cursor = make_uniq(*collection, gastate.aggregator.child_idx); + const auto leaf_count = collection->size(); + auto &filter_mask = gstate.filter_mask; + WindowSegmentTreePart gtstate(gstate.CreateTreeAllocator(), gastate.aggr, std::move(cursor), filter_mask); + + auto &levels_flat_native = gstate.levels_flat_native; + const auto &levels_flat_start = gstate.levels_flat_start; + // iterate over the levels of the segment tree + for (;;) { + const idx_t level_current = gstate.build_level.load(); + if (level_current >= levels_flat_start.size()) { + break; + } + + // level 0 is data itself + const auto level_size = + (level_current == 0 ? leaf_count : levels_flat_start[level_current] - levels_flat_start[level_current - 1]); + if (level_size <= 1) { + break; + } + const idx_t build_count = (level_size + gstate.TREE_FANOUT - 1) / gstate.TREE_FANOUT; + + // Build the next fan-in + const idx_t build_idx = (*gstate.build_started).at(level_current)++; + if (build_idx >= build_count) { + // Nothing left at this level, so wait until other threads are done. + // Since we are only building TREE_FANOUT values at a time, this will be quick. + while (level_current == gstate.build_level.load()) { + std::this_thread::sleep_for(std::chrono::milliseconds(1)); + } + continue; + } + + // compute the aggregate for this entry in the segment tree + const idx_t pos = build_idx * gstate.TREE_FANOUT; + const idx_t levels_flat_offset = levels_flat_start[level_current] + build_idx; + auto state_ptr = levels_flat_native.GetStatePtr(levels_flat_offset); + gtstate.WindowSegmentValue(gstate, level_current, pos, MinValue(level_size, pos + gstate.TREE_FANOUT), + state_ptr); + gtstate.FlushStates(level_current > 0); + + // If that was the last one, mark the level as complete. + const idx_t build_complete = ++(*gstate.build_completed).at(level_current); + if (build_complete == build_count) { + gstate.build_level++; + continue; + } + } +} + +void WindowSegmentTree::Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, + const DataChunk &bounds, Vector &result, idx_t count, idx_t row_idx) const { + const auto >state = gsink.Cast(); + auto <state = lstate.Cast(); + ltstate.Evaluate(gtstate, bounds, result, count, row_idx); +} + +void WindowSegmentTreeState::Evaluate(const WindowSegmentTreeGlobalState >state, const DataChunk &bounds, + Vector &result, idx_t count, idx_t row_idx) { + auto window_begin = FlatVector::GetData(bounds.data[FRAME_BEGIN]); + auto window_end = FlatVector::GetData(bounds.data[FRAME_END]); + auto peer_begin = FlatVector::GetData(bounds.data[PEER_BEGIN]); + auto peer_end = FlatVector::GetData(bounds.data[PEER_END]); + + if (!part) { + part = make_uniq(allocator, gtstate.aggr, cursor->Copy(), gtstate.filter_mask); + } + + if (gtstate.aggregator.exclude_mode != WindowExcludeMode::NO_OTHER) { + // 1. evaluate the tree left of the excluded part + part->Evaluate(gtstate, window_begin, peer_begin, result, count, row_idx, WindowSegmentTreePart::LEFT); + + // 2. set up a second state for the right of the excluded part + if (!right_part) { + right_part = part->Copy(); + } + + // 3. evaluate the tree right of the excluded part + right_part->Evaluate(gtstate, peer_end, window_end, result, count, row_idx, WindowSegmentTreePart::RIGHT); + + // 4. combine the buffer state into the Segment Tree State + part->Combine(*right_part, count); + } else { + part->Evaluate(gtstate, window_begin, window_end, result, count, row_idx, WindowSegmentTreePart::FULL); + } + + part->Finalize(result, count); +} + +void WindowSegmentTreePart::Evaluate(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, const idx_t *ends, + Vector &result, idx_t count, idx_t row_idx, FramePart frame_part) { + Initialize(count); + + if (order_insensitive) { + // First pass: aggregate the segment tree nodes with sharing + EvaluateUpperLevels(tree, begins, ends, count, row_idx, frame_part); + + // Second pass: aggregate the ragged leaves + EvaluateLeaves(tree, begins, ends, count, row_idx, frame_part, FramePart::FULL); + } else { + // Evaluate leaves in order + EvaluateLeaves(tree, begins, ends, count, row_idx, frame_part, FramePart::LEFT); + EvaluateUpperLevels(tree, begins, ends, count, row_idx, frame_part); + EvaluateLeaves(tree, begins, ends, count, row_idx, frame_part, FramePart::RIGHT); + } +} + +void WindowSegmentTreePart::Initialize(idx_t count) { + auto fdata = FlatVector::GetData(statef); + for (idx_t rid = 0; rid < count; ++rid) { + auto state_ptr = fdata[rid]; + aggr.function.initialize(aggr.function, state_ptr); + } +} + +void WindowSegmentTreePart::EvaluateUpperLevels(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, + const idx_t *ends, idx_t count, idx_t row_idx, FramePart frame_part) { + auto fdata = FlatVector::GetData(statef); + + const auto exclude_mode = tree.tree.exclude_mode; + const bool begin_on_curr_row = frame_part == FramePart::RIGHT && exclude_mode == WindowExcludeMode::CURRENT_ROW; + const bool end_on_curr_row = frame_part == FramePart::LEFT && exclude_mode == WindowExcludeMode::CURRENT_ROW; + + const auto max_level = tree.levels_flat_start.size() + 1; + right_stack.resize(max_level, {0, 0}); + + // Share adjacent identical states + // We do this first because we want to share only tree aggregations + idx_t prev_begin = 1; + idx_t prev_end = 0; + auto ldata = FlatVector::GetData(statel); + auto pdata = FlatVector::GetData(statep); + data_ptr_t prev_state = nullptr; + for (idx_t rid = 0, cur_row = row_idx; rid < count; ++rid, ++cur_row) { + auto state_ptr = fdata[rid]; + + auto begin = begin_on_curr_row ? cur_row + 1 : begins[rid]; + auto end = end_on_curr_row ? cur_row : ends[rid]; + if (begin >= end) { + continue; + } + + // Skip level 0 + idx_t l_idx = 0; + idx_t right_max = 0; + for (; l_idx < max_level; l_idx++) { + idx_t parent_begin = begin / tree.TREE_FANOUT; + idx_t parent_end = end / tree.TREE_FANOUT; + if (prev_state && l_idx == 1 && begin == prev_begin && end == prev_end) { + // Just combine the previous top level result + ldata[flush_count] = prev_state; + pdata[flush_count] = state_ptr; + if (++flush_count >= STANDARD_VECTOR_SIZE) { + FlushStates(true); + } + break; + } + + if (order_insensitive && l_idx == 1) { + prev_state = state_ptr; + prev_begin = begin; + prev_end = end; + } + + if (parent_begin == parent_end) { + if (l_idx) { + WindowSegmentValue(tree, l_idx, begin, end, state_ptr); + } + break; + } + idx_t group_begin = parent_begin * tree.TREE_FANOUT; + if (begin != group_begin) { + if (l_idx) { + WindowSegmentValue(tree, l_idx, begin, group_begin + tree.TREE_FANOUT, state_ptr); + } + parent_begin++; + } + idx_t group_end = parent_end * tree.TREE_FANOUT; + if (end != group_end) { + if (l_idx) { + if (order_insensitive) { + WindowSegmentValue(tree, l_idx, group_end, end, state_ptr); + } else { + right_stack[l_idx] = {group_end, end}; + right_max = l_idx; + } + } + } + begin = parent_begin; + end = parent_end; + } + + // Flush the right side values from left to right for order_sensitive aggregates + // As we go up the tree, the right side ranges move left, + // so we just cache them in a fixed size, preallocated array. + // Then we can just reverse scan the array and append the cached ranges. + for (l_idx = right_max; l_idx > 0; --l_idx) { + auto &right_entry = right_stack[l_idx]; + const auto group_end = right_entry.first; + const auto end = right_entry.second; + if (end) { + WindowSegmentValue(tree, l_idx, group_end, end, state_ptr); + right_entry = {0, 0}; + } + } + } + FlushStates(true); +} + +void WindowSegmentTreePart::EvaluateLeaves(const WindowSegmentTreeGlobalState &tree, const idx_t *begins, + const idx_t *ends, idx_t count, idx_t row_idx, FramePart frame_part, + FramePart leaf_part) { + + auto fdata = FlatVector::GetData(statef); + + // For order-sensitive aggregates, we have to process the ragged leaves in two pieces. + // The left side have to be added before the main tree followed by the ragged right sides. + // The current row is the leftmost value of the right hand side. + const bool compute_left = leaf_part != FramePart::RIGHT; + const bool compute_right = leaf_part != FramePart::LEFT; + const auto exclude_mode = tree.tree.exclude_mode; + const bool begin_on_curr_row = frame_part == FramePart::RIGHT && exclude_mode == WindowExcludeMode::CURRENT_ROW; + const bool end_on_curr_row = frame_part == FramePart::LEFT && exclude_mode == WindowExcludeMode::CURRENT_ROW; + // with EXCLUDE TIES, in addition to the frame part right of the peer group's end, we also need to consider the + // current row + const bool add_curr_row = compute_left && frame_part == FramePart::RIGHT && exclude_mode == WindowExcludeMode::TIES; + + for (idx_t rid = 0, cur_row = row_idx; rid < count; ++rid, ++cur_row) { + auto state_ptr = fdata[rid]; + + const auto begin = begin_on_curr_row ? cur_row + 1 : begins[rid]; + const auto end = end_on_curr_row ? cur_row : ends[rid]; + if (add_curr_row) { + WindowSegmentValue(tree, 0, cur_row, cur_row + 1, state_ptr); + } + if (begin >= end) { + continue; + } + + idx_t parent_begin = begin / tree.TREE_FANOUT; + idx_t parent_end = end / tree.TREE_FANOUT; + if (parent_begin == parent_end) { + if (compute_left) { + WindowSegmentValue(tree, 0, begin, end, state_ptr); + } + continue; + } + + idx_t group_begin = parent_begin * tree.TREE_FANOUT; + if (begin != group_begin && compute_left) { + WindowSegmentValue(tree, 0, begin, group_begin + tree.TREE_FANOUT, state_ptr); + } + idx_t group_end = parent_end * tree.TREE_FANOUT; + if (end != group_end && compute_right) { + WindowSegmentValue(tree, 0, group_end, end, state_ptr); + } + } + FlushStates(false); +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_shared_expressions.cpp b/src/duckdb/src/function/window/window_shared_expressions.cpp new file mode 100644 index 00000000..b3ecbbae --- /dev/null +++ b/src/duckdb/src/function/window/window_shared_expressions.cpp @@ -0,0 +1,50 @@ +#include "duckdb/function/window/window_shared_expressions.hpp" +#include "duckdb/execution/expression_executor.hpp" + +namespace duckdb { + +column_t WindowSharedExpressions::RegisterExpr(const unique_ptr &expr, Shared &shared) { + auto pexpr = expr.get(); + if (!pexpr) { + return DConstants::INVALID_INDEX; + } + + // We need to make separate columns for volatile arguments + const auto is_volatile = expr->IsVolatile(); + auto i = shared.columns.find(*pexpr); + if (i != shared.columns.end() && !is_volatile) { + return i->second.front(); + } + + // New column, find maximum column number + column_t result = shared.size++; + shared.columns[*pexpr].emplace_back(result); + + return result; +} + +vector WindowSharedExpressions::GetSortedExpressions(Shared &shared) { + vector sorted(shared.size, nullptr); + for (auto &col : shared.columns) { + auto &expr = col.first.get(); + for (auto col_idx : col.second) { + sorted[col_idx] = &expr; + } + } + + return sorted; +} +void WindowSharedExpressions::PrepareExecutors(Shared &shared, ExpressionExecutor &exec, DataChunk &chunk) { + const auto sorted = GetSortedExpressions(shared); + vector types; + for (auto expr : sorted) { + exec.AddExpression(*expr); + types.emplace_back(expr->return_type); + } + + if (!types.empty()) { + chunk.Initialize(exec.GetAllocator(), types); + } +} + +} // namespace duckdb diff --git a/src/duckdb/src/function/window/window_value_function.cpp b/src/duckdb/src/function/window/window_value_function.cpp new file mode 100644 index 00000000..c652c811 --- /dev/null +++ b/src/duckdb/src/function/window/window_value_function.cpp @@ -0,0 +1,386 @@ +#include "duckdb/common/operator/add.hpp" +#include "duckdb/common/operator/subtract.hpp" +#include "duckdb/function/window/window_aggregator.hpp" +#include "duckdb/function/window/window_collection.hpp" +#include "duckdb/function/window/window_shared_expressions.hpp" +#include "duckdb/function/window/window_value_function.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" + +namespace duckdb { + +//===--------------------------------------------------------------------===// +// WindowValueGlobalState +//===--------------------------------------------------------------------===// + +class WindowValueGlobalState : public WindowExecutorGlobalState { +public: + using WindowCollectionPtr = unique_ptr; + WindowValueGlobalState(const WindowValueExecutor &executor, const idx_t payload_count, + const ValidityMask &partition_mask, const ValidityMask &order_mask) + : WindowExecutorGlobalState(executor, payload_count, partition_mask, order_mask), ignore_nulls(&all_valid), + child_idx(executor.child_idx) { + } + + void Finalize(CollectionPtr collection) { + lock_guard ignore_nulls_guard(lock); + if (child_idx != DConstants::INVALID_INDEX && executor.wexpr.ignore_nulls) { + ignore_nulls = &collection->validities[child_idx]; + } + } + + // IGNORE NULLS + mutex lock; + ValidityMask all_valid; + optional_ptr ignore_nulls; + + const column_t child_idx; +}; + +//===--------------------------------------------------------------------===// +// WindowValueLocalState +//===--------------------------------------------------------------------===// + +//! A class representing the state of the first_value, last_value and nth_value functions +class WindowValueLocalState : public WindowExecutorBoundsState { +public: + explicit WindowValueLocalState(const WindowValueGlobalState &gvstate) + : WindowExecutorBoundsState(gvstate), gvstate(gvstate) { + WindowAggregatorLocalState::InitSubFrames(frames, gvstate.executor.wexpr.exclude_clause); + } + + //! Finish the sinking and prepare to scan + void Finalize(WindowExecutorGlobalState &gstate, CollectionPtr collection) override; + + //! The corresponding global value state + const WindowValueGlobalState &gvstate; + //! The frame boundaries, used for EXCLUDE + SubFrames frames; + + //! The state used for reading the collection + unique_ptr cursor; +}; + +void WindowValueLocalState::Finalize(WindowExecutorGlobalState &gstate, CollectionPtr collection) { + WindowExecutorBoundsState::Finalize(gstate, collection); + + // Prepare to scan + if (!cursor && gvstate.child_idx != DConstants::INVALID_INDEX) { + cursor = make_uniq(*collection, gvstate.child_idx); + } +} + +//===--------------------------------------------------------------------===// +// WindowValueExecutor +//===--------------------------------------------------------------------===// +WindowValueExecutor::WindowValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowExecutor(wexpr, context, shared) { + + // The children have to be handled separately because only the first one is global + if (!wexpr.children.empty()) { + child_idx = shared.RegisterCollection(wexpr.children[0], wexpr.ignore_nulls); + + if (wexpr.children.size() > 1) { + nth_idx = shared.RegisterEvaluate(wexpr.children[1]); + } + } + + offset_idx = shared.RegisterEvaluate(wexpr.offset_expr); + default_idx = shared.RegisterEvaluate(wexpr.default_expr); +} + +WindowNtileExecutor::WindowNtileExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowValueExecutor(wexpr, context, shared) { +} + +unique_ptr WindowValueExecutor::GetGlobalState(const idx_t payload_count, + const ValidityMask &partition_mask, + const ValidityMask &order_mask) const { + return make_uniq(*this, payload_count, partition_mask, order_mask); +} + +void WindowValueExecutor::Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + CollectionPtr collection) const { + auto &gvstate = gstate.Cast(); + gvstate.Finalize(collection); + + WindowExecutor::Finalize(gstate, lstate, collection); +} + +unique_ptr WindowValueExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { + const auto &gvstate = gstate.Cast(); + return make_uniq(gvstate); +} + +void WindowNtileExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, idx_t row_idx) const { + auto &lvstate = lstate.Cast(); + auto &cursor = *lvstate.cursor; + auto partition_begin = FlatVector::GetData(lvstate.bounds.data[PARTITION_BEGIN]); + auto partition_end = FlatVector::GetData(lvstate.bounds.data[PARTITION_END]); + auto rdata = FlatVector::GetData(result); + for (idx_t i = 0; i < count; ++i, ++row_idx) { + if (cursor.CellIsNull(0, row_idx)) { + FlatVector::SetNull(result, i, true); + } else { + auto n_param = cursor.GetCell(0, row_idx); + if (n_param < 1) { + throw InvalidInputException("Argument for ntile must be greater than zero"); + } + // With thanks from SQLite's ntileValueFunc() + auto n_total = NumericCast(partition_end[i] - partition_begin[i]); + if (n_param > n_total) { + // more groups allowed than we have values + // map every entry to a unique group + n_param = n_total; + } + int64_t n_size = (n_total / n_param); + // find the row idx within the group + D_ASSERT(row_idx >= partition_begin[i]); + auto adjusted_row_idx = NumericCast(row_idx - partition_begin[i]); + // now compute the ntile + int64_t n_large = n_total - n_param * n_size; + int64_t i_small = n_large * (n_size + 1); + int64_t result_ntile; + + D_ASSERT((n_large * (n_size + 1) + (n_param - n_large) * n_size) == n_total); + + if (adjusted_row_idx < i_small) { + result_ntile = 1 + adjusted_row_idx / (n_size + 1); + } else { + result_ntile = 1 + n_large + (adjusted_row_idx - i_small) / n_size; + } + // result has to be between [1, NTILE] + D_ASSERT(result_ntile >= 1 && result_ntile <= n_param); + rdata[i] = result_ntile; + } + } +} + +//===--------------------------------------------------------------------===// +// WindowLeadLagLocalState +//===--------------------------------------------------------------------===// +class WindowLeadLagLocalState : public WindowValueLocalState { +public: + explicit WindowLeadLagLocalState(const WindowValueGlobalState &gstate) : WindowValueLocalState(gstate) { + } +}; + +WindowLeadLagExecutor::WindowLeadLagExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowValueExecutor(wexpr, context, shared) { +} + +unique_ptr +WindowLeadLagExecutor::GetLocalState(const WindowExecutorGlobalState &gstate) const { + const auto &gvstate = gstate.Cast(); + return make_uniq(gvstate); +} + +void WindowLeadLagExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, idx_t row_idx) const { + auto &gvstate = gstate.Cast(); + auto &ignore_nulls = gvstate.ignore_nulls; + auto &llstate = lstate.Cast(); + auto &cursor = *llstate.cursor; + + WindowInputExpression leadlag_offset(eval_chunk, offset_idx); + WindowInputExpression leadlag_default(eval_chunk, default_idx); + + bool can_shift = ignore_nulls->AllValid(); + if (wexpr.offset_expr) { + can_shift = can_shift && wexpr.offset_expr->IsFoldable(); + } + if (wexpr.default_expr) { + can_shift = can_shift && wexpr.default_expr->IsFoldable(); + } + + auto partition_begin = FlatVector::GetData(llstate.bounds.data[PARTITION_BEGIN]); + auto partition_end = FlatVector::GetData(llstate.bounds.data[PARTITION_END]); + const auto row_end = row_idx + count; + for (idx_t i = 0; i < count;) { + int64_t offset = 1; + if (wexpr.offset_expr) { + offset = leadlag_offset.GetCell(i); + } + int64_t val_idx = (int64_t)row_idx; + if (wexpr.type == ExpressionType::WINDOW_LEAD) { + val_idx = AddOperatorOverflowCheck::Operation(val_idx, offset); + } else { + val_idx = SubtractOperatorOverflowCheck::Operation(val_idx, offset); + } + + idx_t delta = 0; + if (val_idx < (int64_t)row_idx) { + // Count backwards + delta = idx_t(row_idx - idx_t(val_idx)); + val_idx = int64_t(WindowBoundariesState::FindPrevStart(*ignore_nulls, partition_begin[i], row_idx, delta)); + } else if (val_idx > (int64_t)row_idx) { + delta = idx_t(idx_t(val_idx) - row_idx); + val_idx = + int64_t(WindowBoundariesState::FindNextStart(*ignore_nulls, row_idx + 1, partition_end[i], delta)); + } + // else offset is zero, so don't move. + + if (can_shift) { + const auto target_limit = MinValue(partition_end[i], row_end) - row_idx; + if (!delta) { + // Copy source[index:index+width] => result[i:] + auto index = NumericCast(val_idx); + const auto source_limit = partition_end[i] - index; + auto width = MinValue(source_limit, target_limit); + // We may have to scan multiple blocks here, so loop until we have copied everything + const idx_t col_idx = 0; + while (width) { + const auto source_offset = cursor.Seek(index); + auto &source = cursor.chunk.data[col_idx]; + const auto copied = MinValue(cursor.chunk.size() - source_offset, width); + VectorOperations::Copy(source, result, source_offset + copied, source_offset, i); + i += copied; + row_idx += copied; + index += copied; + width -= copied; + } + } else if (wexpr.default_expr) { + const auto width = MinValue(delta, target_limit); + leadlag_default.CopyCell(result, i, width); + i += width; + row_idx += width; + } else { + for (idx_t nulls = MinValue(delta, target_limit); nulls--; ++i, ++row_idx) { + FlatVector::SetNull(result, i, true); + } + } + } else { + if (!delta) { + cursor.CopyCell(0, NumericCast(val_idx), result, i); + } else if (wexpr.default_expr) { + leadlag_default.CopyCell(result, i); + } else { + FlatVector::SetNull(result, i, true); + } + ++i; + ++row_idx; + } + } +} + +WindowFirstValueExecutor::WindowFirstValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowValueExecutor(wexpr, context, shared) { +} + +void WindowFirstValueExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, + idx_t row_idx) const { + auto &gvstate = gstate.Cast(); + auto &lvstate = lstate.Cast(); + auto &cursor = *lvstate.cursor; + auto &bounds = lvstate.bounds; + auto &frames = lvstate.frames; + auto &ignore_nulls = *gvstate.ignore_nulls; + auto exclude_mode = gvstate.executor.wexpr.exclude_clause; + WindowAggregator::EvaluateSubFrames(bounds, exclude_mode, count, row_idx, frames, [&](idx_t i) { + for (const auto &frame : frames) { + if (frame.start >= frame.end) { + continue; + } + + // Same as NTH_VALUE(..., 1) + idx_t n = 1; + const auto first_idx = WindowBoundariesState::FindNextStart(ignore_nulls, frame.start, frame.end, n); + if (!n) { + cursor.CopyCell(0, first_idx, result, i); + return; + } + } + + // Didn't find one + FlatVector::SetNull(result, i, true); + }); +} + +WindowLastValueExecutor::WindowLastValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowValueExecutor(wexpr, context, shared) { +} + +void WindowLastValueExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, + idx_t row_idx) const { + auto &gvstate = gstate.Cast(); + auto &lvstate = lstate.Cast(); + auto &cursor = *lvstate.cursor; + auto &bounds = lvstate.bounds; + auto &frames = lvstate.frames; + auto &ignore_nulls = *gvstate.ignore_nulls; + auto exclude_mode = gvstate.executor.wexpr.exclude_clause; + WindowAggregator::EvaluateSubFrames(bounds, exclude_mode, count, row_idx, frames, [&](idx_t i) { + for (idx_t f = frames.size(); f-- > 0;) { + const auto &frame = frames[f]; + if (frame.start >= frame.end) { + continue; + } + + idx_t n = 1; + const auto last_idx = WindowBoundariesState::FindPrevStart(ignore_nulls, frame.start, frame.end, n); + if (!n) { + cursor.CopyCell(0, last_idx, result, i); + return; + } + } + + // Didn't find one + FlatVector::SetNull(result, i, true); + }); +} + +WindowNthValueExecutor::WindowNthValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, + WindowSharedExpressions &shared) + : WindowValueExecutor(wexpr, context, shared) { +} + +void WindowNthValueExecutor::EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, idx_t row_idx) const { + auto &gvstate = gstate.Cast(); + auto &lvstate = lstate.Cast(); + auto &cursor = *lvstate.cursor; + auto &bounds = lvstate.bounds; + auto &frames = lvstate.frames; + auto &ignore_nulls = *gvstate.ignore_nulls; + auto exclude_mode = gvstate.executor.wexpr.exclude_clause; + D_ASSERT(cursor.chunk.ColumnCount() == 1); + WindowInputExpression nth_col(eval_chunk, nth_idx); + WindowAggregator::EvaluateSubFrames(bounds, exclude_mode, count, row_idx, frames, [&](idx_t i) { + // Returns value evaluated at the row that is the n'th row of the window frame (counting from 1); + // returns NULL if there is no such row. + if (nth_col.CellIsNull(i)) { + FlatVector::SetNull(result, i, true); + return; + } + auto n_param = nth_col.GetCell(i); + if (n_param < 1) { + FlatVector::SetNull(result, i, true); + return; + } + + // Decrement as we go along. + auto n = idx_t(n_param); + + for (const auto &frame : frames) { + if (frame.start >= frame.end) { + continue; + } + + const auto nth_index = WindowBoundariesState::FindNextStart(ignore_nulls, frame.start, frame.end, n); + if (!n) { + cursor.CopyCell(0, nth_index, result, i); + return; + } + } + FlatVector::SetNull(result, i, true); + }); +} + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb.h b/src/duckdb/src/include/duckdb.h index e2ece7aa..36b9dc71 100644 --- a/src/duckdb/src/include/duckdb.h +++ b/src/duckdb/src/include/duckdb.h @@ -133,6 +133,8 @@ typedef enum DUCKDB_TYPE { DUCKDB_TYPE_ANY = 34, // duckdb_varint DUCKDB_TYPE_VARINT = 35, + // SQLNULL type + DUCKDB_TYPE_SQLNULL = 36, } duckdb_type; //! An enum over the returned state of different functions. typedef enum duckdb_state { DuckDBSuccess = 0, DuckDBError = 1 } duckdb_state; @@ -280,15 +282,32 @@ typedef struct { int32_t offset; } duckdb_time_tz_struct; -//! Timestamps are stored as microseconds since 1970-01-01 -//! Use the duckdb_from_timestamp/duckdb_to_timestamp function to extract individual information +//! TIMESTAMP values are stored as microseconds since 1970-01-01. +//! Use the duckdb_from_timestamp and duckdb_to_timestamp functions to extract individual information. typedef struct { int64_t micros; } duckdb_timestamp; + +//! TIMESTAMP_S values are stored as seconds since 1970-01-01. +typedef struct { + int64_t seconds; +} duckdb_timestamp_s; + +//! TIMESTAMP_MS values are stored as milliseconds since 1970-01-01. +typedef struct { + int64_t millis; +} duckdb_timestamp_ms; + +//! TIMESTAMP_NS values are stored as nanoseconds since 1970-01-01. +typedef struct { + int64_t nanos; +} duckdb_timestamp_ns; + typedef struct { duckdb_date_struct date; duckdb_time_struct time; } duckdb_timestamp_struct; + typedef struct { int32_t months; int32_t days; @@ -624,12 +643,12 @@ typedef struct _duckdb_arrow_array { //===--------------------------------------------------------------------===// //! Passed to C API extension as parameter to the entrypoint struct duckdb_extension_access { - //! Indicate that an error has occured + //! Indicate that an error has occurred void (*set_error)(duckdb_extension_info info, const char *error); //! Fetch the database from duckdb to register extensions to duckdb_database *(*get_database)(duckdb_extension_info info); //! Fetch the API - void *(*get_api)(duckdb_extension_info info, const char *version); + const void *(*get_api)(duckdb_extension_info info, const char *version); }; //===--------------------------------------------------------------------===// @@ -1321,11 +1340,35 @@ DUCKDB_API duckdb_timestamp duckdb_to_timestamp(duckdb_timestamp_struct ts); /*! Test a `duckdb_timestamp` to see if it is a finite value. -* @param ts The timestamp object, as obtained from a `DUCKDB_TYPE_TIMESTAMP` column. +* @param ts The duckdb_timestamp object, as obtained from a `DUCKDB_TYPE_TIMESTAMP` column. * @return True if the timestamp is finite, false if it is ±infinity. */ DUCKDB_API bool duckdb_is_finite_timestamp(duckdb_timestamp ts); +/*! +Test a `duckdb_timestamp_s` to see if it is a finite value. + +* @param ts The duckdb_timestamp_s object, as obtained from a `DUCKDB_TYPE_TIMESTAMP_S` column. +* @return True if the timestamp is finite, false if it is ±infinity. +*/ +DUCKDB_API bool duckdb_is_finite_timestamp_s(duckdb_timestamp_s ts); + +/*! +Test a `duckdb_timestamp_ms` to see if it is a finite value. + +* @param ts The duckdb_timestamp_ms object, as obtained from a `DUCKDB_TYPE_TIMESTAMP_MS` column. +* @return True if the timestamp is finite, false if it is ±infinity. +*/ +DUCKDB_API bool duckdb_is_finite_timestamp_ms(duckdb_timestamp_ms ts); + +/*! +Test a `duckdb_timestamp_ns` to see if it is a finite value. + +* @param ts The duckdb_timestamp_ns object, as obtained from a `DUCKDB_TYPE_TIMESTAMP_NS` column. +* @return True if the timestamp is finite, false if it is ±infinity. +*/ +DUCKDB_API bool duckdb_is_finite_timestamp_ns(duckdb_timestamp_ns ts); + //===--------------------------------------------------------------------===// // Hugeint Helpers //===--------------------------------------------------------------------===// @@ -1469,6 +1512,19 @@ Returns `DUCKDB_TYPE_INVALID` if the parameter index is out of range or the stat */ DUCKDB_API duckdb_type duckdb_param_type(duckdb_prepared_statement prepared_statement, idx_t param_idx); +/*! +Returns the logical type for the parameter at the given index. + +Returns `nullptr` if the parameter index is out of range or the statement was not successfully prepared. + +The return type of this call should be destroyed with `duckdb_destroy_logical_type`. + +* @param prepared_statement The prepared statement. +* @param param_idx The parameter index. +* @return The logical type of the parameter +*/ +DUCKDB_API duckdb_logical_type duckdb_param_logical_type(duckdb_prepared_statement prepared_statement, idx_t param_idx); + /*! Clear the params bind to the prepared statement. */ @@ -1977,13 +2033,45 @@ Not to be confused with `duckdb_create_time_tz`, which creates a duckdb_time_tz_ DUCKDB_API duckdb_value duckdb_create_time_tz_value(duckdb_time_tz value); /*! -Creates a value from a timestamp +Creates a TIMESTAMP value from a duckdb_timestamp -* @param input The timestamp value +* @param input The duckdb_timestamp value * @return The value. This must be destroyed with `duckdb_destroy_value`. */ DUCKDB_API duckdb_value duckdb_create_timestamp(duckdb_timestamp input); +/*! +Creates a TIMESTAMP_TZ value from a duckdb_timestamp + +* @param input The duckdb_timestamp value +* @return The value. This must be destroyed with `duckdb_destroy_value`. +*/ +DUCKDB_API duckdb_value duckdb_create_timestamp_tz(duckdb_timestamp input); + +/*! +Creates a TIMESTAMP_S value from a duckdb_timestamp_s + +* @param input The duckdb_timestamp_s value +* @return The value. This must be destroyed with `duckdb_destroy_value`. +*/ +DUCKDB_API duckdb_value duckdb_create_timestamp_s(duckdb_timestamp_s input); + +/*! +Creates a TIMESTAMP_MS value from a duckdb_timestamp_ms + +* @param input The duckdb_timestamp_ms value +* @return The value. This must be destroyed with `duckdb_destroy_value`. +*/ +DUCKDB_API duckdb_value duckdb_create_timestamp_ms(duckdb_timestamp_ms input); + +/*! +Creates a TIMESTAMP_NS value from a duckdb_timestamp_ns + +* @param input The duckdb_timestamp_ns value +* @return The value. This must be destroyed with `duckdb_destroy_value`. +*/ +DUCKDB_API duckdb_value duckdb_create_timestamp_ns(duckdb_timestamp_ns input); + /*! Creates a value from an interval @@ -2130,13 +2218,45 @@ Returns the time_tz value of the given value. DUCKDB_API duckdb_time_tz duckdb_get_time_tz(duckdb_value val); /*! -Returns the timestamp value of the given value. +Returns the TIMESTAMP value of the given value. -* @param val A duckdb_value containing a timestamp +* @param val A duckdb_value containing a TIMESTAMP * @return A duckdb_timestamp, or MinValue if the value cannot be converted */ DUCKDB_API duckdb_timestamp duckdb_get_timestamp(duckdb_value val); +/*! +Returns the TIMESTAMP_TZ value of the given value. + +* @param val A duckdb_value containing a TIMESTAMP_TZ +* @return A duckdb_timestamp, or MinValue if the value cannot be converted +*/ +DUCKDB_API duckdb_timestamp duckdb_get_timestamp_tz(duckdb_value val); + +/*! +Returns the duckdb_timestamp_s value of the given value. + +* @param val A duckdb_value containing a TIMESTAMP_S +* @return A duckdb_timestamp_s, or MinValue if the value cannot be converted +*/ +DUCKDB_API duckdb_timestamp_s duckdb_get_timestamp_s(duckdb_value val); + +/*! +Returns the duckdb_timestamp_ms value of the given value. + +* @param val A duckdb_value containing a TIMESTAMP_MS +* @return A duckdb_timestamp_ms, or MinValue if the value cannot be converted +*/ +DUCKDB_API duckdb_timestamp_ms duckdb_get_timestamp_ms(duckdb_value val); + +/*! +Returns the duckdb_timestamp_ns value of the given value. + +* @param val A duckdb_value containing a TIMESTAMP_NS +* @return A duckdb_timestamp_ns, or MinValue if the value cannot be converted +*/ +DUCKDB_API duckdb_timestamp_ns duckdb_get_timestamp_ns(duckdb_value val); + /*! Returns the interval value of the given value. @@ -2228,6 +2348,64 @@ Returns the MAP value at index as a duckdb_value. */ DUCKDB_API duckdb_value duckdb_get_map_value(duckdb_value value, idx_t index); +/*! +Returns whether the value's type is SQLNULL or not. + +* @param value The value to check. +* @return True, if the value's type is SQLNULL, otherwise false. +*/ +DUCKDB_API bool duckdb_is_null_value(duckdb_value value); + +/*! +Creates a value of type SQLNULL. + +* @return The duckdb_value representing SQLNULL. This must be destroyed with `duckdb_destroy_value`. +*/ +DUCKDB_API duckdb_value duckdb_create_null_value(); + +/*! +Returns the number of elements in a LIST value. + +* @param value The LIST value. +* @return The number of elements in the list. +*/ +DUCKDB_API idx_t duckdb_get_list_size(duckdb_value value); + +/*! +Returns the LIST child at index as a duckdb_value. + +* @param value The LIST value. +* @param index The index of the child. +* @return The child as a duckdb_value. +*/ +DUCKDB_API duckdb_value duckdb_get_list_child(duckdb_value value, idx_t index); + +/*! +Creates an enum value from a type and a value. Must be destroyed with `duckdb_destroy_value`. + +* @param type The type of the enum +* @param value The value for the enum +* @return The enum value, or nullptr. +*/ +DUCKDB_API duckdb_value duckdb_create_enum_value(duckdb_logical_type type, uint64_t value); + +/*! +Returns the enum value of the given value. + +* @param value A duckdb_value containing an enum +* @return A uint64_t, or MinValue if the value cannot be converted +*/ +DUCKDB_API uint64_t duckdb_get_enum_value(duckdb_value value); + +/*! +Returns the STRUCT child at index as a duckdb_value. + +* @param value The STRUCT value. +* @param index The index of the child. +* @return The child as a duckdb_value. +*/ +DUCKDB_API duckdb_value duckdb_get_struct_child(duckdb_value value, idx_t index); + //===--------------------------------------------------------------------===// // Logical Type Interface //===--------------------------------------------------------------------===// @@ -2634,7 +2812,7 @@ DUCKDB_API uint64_t *duckdb_vector_get_validity(duckdb_vector vector); Ensures the validity mask is writable by allocating it. After this function is called, `duckdb_vector_get_validity` will ALWAYS return non-NULL. -This allows null values to be written to the vector, regardless of whether a validity mask was present before. +This allows NULL values to be written to the vector, regardless of whether a validity mask was present before. * @param vector The vector to alter */ @@ -3481,18 +3659,20 @@ DUCKDB_API duckdb_profiling_info duckdb_profiling_info_get_child(duckdb_profilin // Appender //===--------------------------------------------------------------------===// -// Appenders are the most efficient way of loading data into DuckDB from within the C interface, and are recommended for -// fast data loading. The appender is much faster than using prepared statements or individual `INSERT INTO` statements. +// Appenders are the most efficient way of loading data into DuckDB from within the C API. +// They are recommended for fast data loading as they perform better than prepared statements or individual `INSERT +// INTO` statements. + +// Appends are possible in row-wise format, and by appending entire data chunks. -// Appends are made in row-wise format. For every column, a `duckdb_append_[type]` call should be made, after which -// the row should be finished by calling `duckdb_appender_end_row`. After all rows have been appended, -// `duckdb_appender_destroy` should be used to finalize the appender and clean up the resulting memory. +// Row-wise: for every column, a `duckdb_append_[type]` call should be made. After finishing all appends to a row, call +// `duckdb_appender_end_row`. -// Instead of appending rows with `duckdb_appender_end_row`, it is also possible to fill and append -// chunks-at-a-time. +// Chunk-wise: Consecutively call `duckdb_append_data_chunk` until all chunks have been appended. + +// After all data has been appended, call `duckdb_appender_close` to finalize the appender followed by +// `duckdb_appender_destroy` to clean up the memory. -// Note that `duckdb_appender_destroy` should always be called on the resulting appender, even if the function returns -// `DuckDBError`. /*! Creates an appender object. @@ -3508,21 +3688,39 @@ DUCKDB_API duckdb_state duckdb_appender_create(duckdb_connection connection, con duckdb_appender *out_appender); /*! -Returns the number of columns in the table that belongs to the appender. +Creates an appender object. + +Note that the object must be destroyed with `duckdb_appender_destroy`. + +* @param connection The connection context to create the appender in. +* @param catalog The catalog of the table to append to, or `nullptr` for the default catalog. +* @param schema The schema of the table to append to, or `nullptr` for the default schema. +* @param table The table name to append to. +* @param out_appender The resulting appender object. +* @return `DuckDBSuccess` on success or `DuckDBError` on failure. +*/ +DUCKDB_API duckdb_state duckdb_appender_create_ext(duckdb_connection connection, const char *catalog, + const char *schema, const char *table, + duckdb_appender *out_appender); + +/*! +Returns the number of columns that belong to the appender. +If there is no active column list, then this equals the table's physical columns. * @param appender The appender to get the column count from. -* @return The number of columns in the table. +* @return The number of columns in the data chunks. */ DUCKDB_API idx_t duckdb_appender_column_count(duckdb_appender appender); /*! -Returns the type of the column at the specified index. +Returns the type of the column at the specified index. This is either a type in the active column list, or the same type +as a column in the receiving table. -Note: The resulting type should be destroyed with `duckdb_destroy_logical_type`. +Note: The resulting type must be destroyed with `duckdb_destroy_logical_type`. * @param appender The appender to get the column type from. * @param col_idx The index of the column to get the type of. -* @return The duckdb_logical_type of the column. +* @return The `duckdb_logical_type` of the column. */ DUCKDB_API duckdb_logical_type duckdb_appender_column_type(duckdb_appender appender, idx_t col_idx); @@ -3571,6 +3769,26 @@ before destroying the appender, if you need insights into the specific error. */ DUCKDB_API duckdb_state duckdb_appender_destroy(duckdb_appender *appender); +/*! +Appends a column to the active column list of the appender. Immediately flushes all previous data. + +The active column list specifies all columns that are expected when flushing the data. Any non-active columns are filled +with their default values, or NULL. + +* @param appender The appender to add the column to. +* @return `DuckDBSuccess` on success or `DuckDBError` on failure. +*/ +DUCKDB_API duckdb_state duckdb_appender_add_column(duckdb_appender appender, const char *name); + +/*! +Removes all columns from the active column list of the appender, resetting the appender to treat all columns as active. +Immediately flushes all previous data. + +* @param appender The appender to clear the columns from. +* @return `DuckDBSuccess` on success or `DuckDBError` on failure. +*/ +DUCKDB_API duckdb_state duckdb_appender_clear_columns(duckdb_appender appender); + /*! A nop function, provided for backwards compatibility reasons. Does nothing. Only `duckdb_appender_end_row` is required. */ @@ -3695,15 +3913,17 @@ Append a NULL value to the appender (of any type). DUCKDB_API duckdb_state duckdb_append_null(duckdb_appender appender); /*! -Appends a pre-filled data chunk to the specified appender. +Append a duckdb_value to the appender. +*/ +DUCKDB_API duckdb_state duckdb_append_value(duckdb_appender appender, duckdb_value value); -The types of the data chunk must exactly match the types of the table, no casting is performed. -If the types do not match or the appender is in an invalid state, DuckDBError is returned. -If the append is successful, DuckDBSuccess is returned. +/*! +Appends a pre-filled data chunk to the specified appender. + Attempts casting, if the data chunk types do not match the active appender types. * @param appender The appender to append to. * @param chunk The data chunk to append. -* @return The return state. +* @return `DuckDBSuccess` on success or `DuckDBError` on failure. */ DUCKDB_API duckdb_state duckdb_append_data_chunk(duckdb_appender appender, duckdb_data_chunk chunk); @@ -3724,6 +3944,21 @@ resulting table_description, even if the function returns `DuckDBError`. DUCKDB_API duckdb_state duckdb_table_description_create(duckdb_connection connection, const char *schema, const char *table, duckdb_table_description *out); +/*! +Creates a table description object. Note that `duckdb_table_description_destroy` must be called on the resulting +table_description, even if the function returns `DuckDBError`. + +* @param connection The connection context. +* @param catalog The catalog (database) name of the table, or `nullptr` for the default catalog. +* @param schema The schema of the table, or `nullptr` for the default schema. +* @param table The table name. +* @param out The resulting table description object. +* @return `DuckDBSuccess` on success or `DuckDBError` on failure. +*/ +DUCKDB_API duckdb_state duckdb_table_description_create_ext(duckdb_connection connection, const char *catalog, + const char *schema, const char *table, + duckdb_table_description *out); + /*! Destroy the TableDescription object. @@ -3751,6 +3986,16 @@ Check if the column at 'index' index of the table has a DEFAULT expression. */ DUCKDB_API duckdb_state duckdb_column_has_default(duckdb_table_description table_description, idx_t index, bool *out); +/*! +Obtain the column name at 'index'. +The out result must be destroyed with `duckdb_free`. + +* @param table_description The table_description to query. +* @param index The index of the column to query. +* @return The column name. +*/ +DUCKDB_API char *duckdb_table_description_get_column_name(duckdb_table_description table_description, idx_t index); + //===--------------------------------------------------------------------===// // Arrow Interface //===--------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/catalog/catalog.hpp b/src/duckdb/src/include/duckdb/catalog/catalog.hpp index 27886602..5d219cdf 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog.hpp @@ -9,17 +9,18 @@ #pragma once #include "duckdb/catalog/catalog_entry.hpp" -#include "duckdb/common/mutex.hpp" -#include "duckdb/parser/query_error_context.hpp" #include "duckdb/catalog/catalog_transaction.hpp" -#include "duckdb/common/reference_map.hpp" #include "duckdb/common/atomic.hpp" -#include "duckdb/common/map.hpp" -#include "duckdb/common/optional_ptr.hpp" +#include "duckdb/common/enums/catalog_lookup_behavior.hpp" #include "duckdb/common/enums/on_entry_not_found.hpp" #include "duckdb/common/error_data.hpp" #include "duckdb/common/exception/catalog_exception.hpp" -#include "duckdb/common/enums/catalog_lookup_behavior.hpp" +#include "duckdb/common/map.hpp" +#include "duckdb/common/mutex.hpp" +#include "duckdb/common/optional_ptr.hpp" +#include "duckdb/common/reference_map.hpp" +#include "duckdb/parser/query_error_context.hpp" + #include namespace duckdb { @@ -70,6 +71,18 @@ class LogicalInsert; class LogicalDelete; class LogicalUpdate; class CreateStatement; +class CatalogEntryRetriever; + +//! Return value of Catalog::LookupEntry +struct CatalogEntryLookup { + optional_ptr schema; + optional_ptr entry; + ErrorData error; + + DUCKDB_API bool Found() const { + return entry; + } +}; //! The Catalog object represents the catalog of the database. class Catalog { @@ -84,10 +97,15 @@ class Catalog { DUCKDB_API static Catalog &GetSystemCatalog(DatabaseInstance &db); //! Get the specified Catalog from the ClientContext DUCKDB_API static Catalog &GetCatalog(ClientContext &context, const string &catalog_name); + //! Get the specified Catalog from the ClientContext + DUCKDB_API static Catalog &GetCatalog(CatalogEntryRetriever &retriever, const string &catalog_name); //! Get the specified Catalog from the DatabaseInstance DUCKDB_API static Catalog &GetCatalog(DatabaseInstance &db, const string &catalog_name); //! Gets the specified Catalog from the database if it exists DUCKDB_API static optional_ptr GetCatalogEntry(ClientContext &context, const string &catalog_name); + //! Gets the specified Catalog from the database if it exists + DUCKDB_API static optional_ptr GetCatalogEntry(CatalogEntryRetriever &retriever, + const string &catalog_name); //! Get the specific Catalog from the AttachedDatabase DUCKDB_API static Catalog &GetCatalog(AttachedDatabase &db); @@ -214,6 +232,10 @@ class Catalog { const string &schema_name, OnEntryNotFound if_not_found, QueryErrorContext error_context = QueryErrorContext()); + DUCKDB_API static optional_ptr GetSchema(CatalogEntryRetriever &retriever, + const string &catalog_name, const string &schema_name, + OnEntryNotFound if_not_found, + QueryErrorContext error_context = QueryErrorContext()); //! Scans all the schemas in the system one-by-one, invoking the callback for each entry DUCKDB_API virtual void ScanSchemas(ClientContext &context, std::function callback) = 0; @@ -221,6 +243,10 @@ class Catalog { DUCKDB_API optional_ptr GetEntry(ClientContext &context, CatalogType type, const string &schema, const string &name, OnEntryNotFound if_not_found, QueryErrorContext error_context = QueryErrorContext()); + DUCKDB_API optional_ptr GetEntry(CatalogEntryRetriever &retriever, CatalogType type, + const string &schema, const string &name, + OnEntryNotFound if_not_found, + QueryErrorContext error_context = QueryErrorContext()); DUCKDB_API CatalogEntry &GetEntry(ClientContext &context, CatalogType type, const string &schema, const string &name, QueryErrorContext error_context = QueryErrorContext()); //! Gets the "catalog.schema.name" entry of the specified type, if entry does not exist behavior depends on @@ -229,6 +255,10 @@ class Catalog { const string &catalog, const string &schema, const string &name, OnEntryNotFound if_not_found, QueryErrorContext error_context = QueryErrorContext()); + DUCKDB_API static optional_ptr GetEntry(CatalogEntryRetriever &retriever, CatalogType type, + const string &catalog, const string &schema, + const string &name, OnEntryNotFound if_not_found, + QueryErrorContext error_context = QueryErrorContext()); DUCKDB_API static CatalogEntry &GetEntry(ClientContext &context, CatalogType type, const string &catalog, const string &schema, const string &name, QueryErrorContext error_context = QueryErrorContext()); @@ -281,6 +311,15 @@ class Catalog { return CatalogLookupBehavior::STANDARD; } + //! The default table is used for `SELECT * FROM ;` + DUCKDB_API bool HasDefaultTable() const; + DUCKDB_API void SetDefaultTable(const string &schema, const string &name); + DUCKDB_API string GetDefaultTable() const; + DUCKDB_API string GetDefaultTableSchema() const; + + //! Returns the dependency manager of this catalog - if the catalog has anye + virtual optional_ptr GetDependencyManager(); + public: template static optional_ptr GetEntry(ClientContext &context, const string &catalog_name, const string &schema_name, @@ -306,6 +345,8 @@ class Catalog { DUCKDB_API vector> GetSchemas(ClientContext &context); DUCKDB_API static vector> GetSchemas(ClientContext &context, const string &catalog_name); + DUCKDB_API static vector> GetSchemas(CatalogEntryRetriever &retriever, + const string &catalog_name); DUCKDB_API static vector> GetAllSchemas(ClientContext &context); virtual void Verify(); @@ -322,35 +363,47 @@ class Catalog { //! Reference to the database AttachedDatabase &db; + //! (optionally) a default table to query for `SELECT * FROM ;` + string default_table; + string default_table_schema; + public: + //! Lookup an entry using TryLookupEntry, throws if entry not found and if_not_found == THROW_EXCEPTION + CatalogEntryLookup LookupEntry(CatalogEntryRetriever &retriever, CatalogType type, const string &schema, + const string &name, OnEntryNotFound if_not_found, + QueryErrorContext error_context = QueryErrorContext()); + private: //! Lookup an entry in the schema, returning a lookup with the entry and schema if they exist CatalogEntryLookup TryLookupEntryInternal(CatalogTransaction transaction, CatalogType type, const string &schema, const string &name); //! Calls LookupEntryInternal on the schema, trying other schemas if the schema is invalid. Sets //! CatalogEntryLookup->error depending on if_not_found when no entry is found - CatalogEntryLookup TryLookupEntry(ClientContext &context, CatalogType type, const string &schema, + CatalogEntryLookup TryLookupEntry(CatalogEntryRetriever &retriever, CatalogType type, const string &schema, const string &name, OnEntryNotFound if_not_found, QueryErrorContext error_context = QueryErrorContext()); - //! Lookup an entry using TryLookupEntry, throws if entry not found and if_not_found == THROW_EXCEPTION - CatalogEntryLookup LookupEntry(ClientContext &context, CatalogType type, const string &schema, const string &name, - OnEntryNotFound if_not_found, QueryErrorContext error_context = QueryErrorContext()); - static CatalogEntryLookup TryLookupEntry(ClientContext &context, vector &lookups, CatalogType type, - const string &name, OnEntryNotFound if_not_found, + static CatalogEntryLookup TryLookupEntry(CatalogEntryRetriever &retriever, vector &lookups, + CatalogType type, const string &name, OnEntryNotFound if_not_found, QueryErrorContext error_context = QueryErrorContext()); - static CatalogEntryLookup TryLookupEntry(ClientContext &context, CatalogType type, const string &catalog, + static CatalogEntryLookup TryLookupEntry(CatalogEntryRetriever &retriever, CatalogType type, const string &catalog, const string &schema, const string &name, OnEntryNotFound if_not_found, QueryErrorContext error_context); + //! Looks for a Catalog with a DefaultTable that matches the lookup + static CatalogEntryLookup TryLookupDefaultTable(CatalogEntryRetriever &retriever, CatalogType type, + const string &catalog, const string &schema, const string &name, + OnEntryNotFound if_not_found, QueryErrorContext error_context); + //! Return an exception with did-you-mean suggestion. - static CatalogException CreateMissingEntryException(ClientContext &context, const string &entry_name, + static CatalogException CreateMissingEntryException(CatalogEntryRetriever &retriever, const string &entry_name, CatalogType type, const reference_set_t &schemas, QueryErrorContext error_context); //! Return the close entry name, the distance and the belonging schema. - static SimilarCatalogEntry SimilarEntryInSchemas(ClientContext &context, const string &entry_name, CatalogType type, - const reference_set_t &schemas); + static vector SimilarEntriesInSchemas(ClientContext &context, const string &entry_name, + CatalogType type, + const reference_set_t &schemas); virtual void DropSchema(ClientContext &context, DropInfo &info) = 0; diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp index 33802d1d..88c9706a 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry.hpp @@ -18,15 +18,16 @@ #include namespace duckdb { -struct AlterInfo; + class Catalog; class CatalogSet; class ClientContext; +class Deserializer; class SchemaCatalogEntry; class Serializer; -class Deserializer; class Value; +struct AlterInfo; struct CatalogTransaction; struct CreateInfo; @@ -68,6 +69,7 @@ class CatalogEntry { virtual unique_ptr AlterEntry(ClientContext &context, AlterInfo &info); virtual unique_ptr AlterEntry(CatalogTransaction transaction, AlterInfo &info); virtual void UndoAlter(ClientContext &context, AlterInfo &info); + virtual void Rollback(CatalogEntry &prev_entry); virtual unique_ptr Copy(ClientContext &context) const; @@ -97,6 +99,7 @@ class CatalogEntry { bool HasParent() const; CatalogEntry &Child(); CatalogEntry &Parent(); + const CatalogEntry &Parent() const; public: template diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp index 54196342..bb3ecd59 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_index_entry.hpp @@ -16,7 +16,6 @@ class TableCatalogEntry; //! Wrapper class to allow copying a DuckIndexEntry (for altering the DuckIndexEntry metadata such as comments) struct IndexDataTableInfo { IndexDataTableInfo(shared_ptr info_p, const string &index_name_p); - ~IndexDataTableInfo(); //! Pointer to the DataTableInfo shared_ptr info; @@ -34,6 +33,7 @@ class DuckIndexEntry : public IndexCatalogEntry { shared_ptr storage_info); unique_ptr Copy(ClientContext &context) const override; + void Rollback(CatalogEntry &prev_entry) override; //! The indexed table information shared_ptr info; diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp index 54ba310a..18842401 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_schema_entry.hpp @@ -62,6 +62,8 @@ class DuckSchemaEntry : public SchemaCatalogEntry { void Scan(CatalogType type, const std::function &callback) override; void DropEntry(ClientContext &context, DropInfo &info) override; optional_ptr GetEntry(CatalogTransaction transaction, CatalogType type, const string &name) override; + CatalogSet::EntryLookup GetEntryDetailed(CatalogTransaction transaction, CatalogType type, + const string &name) override; SimilarCatalogEntry GetSimilarEntry(CatalogTransaction transaction, CatalogType type, const string &name) override; unique_ptr Copy(ClientContext &context) const override; diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp index c728b295..ce09c4fe 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/duck_table_entry.hpp @@ -9,9 +9,13 @@ #pragma once #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp" +#include "duckdb/parser/constraints/unique_constraint.hpp" +#include "duckdb/planner/constraints/bound_unique_constraint.hpp" namespace duckdb { +struct AddConstraintInfo; + //! A table catalog entry class DuckTableEntry : public TableCatalogEntry { public: @@ -23,6 +27,8 @@ class DuckTableEntry : public TableCatalogEntry { unique_ptr AlterEntry(ClientContext &context, AlterInfo &info) override; unique_ptr AlterEntry(CatalogTransaction, AlterInfo &info) override; void UndoAlter(ClientContext &context, AlterInfo &info) override; + void Rollback(CatalogEntry &prev_entry) override; + //! Returns the underlying storage of the table DataTable &GetStorage() override; @@ -57,6 +63,7 @@ class DuckTableEntry : public TableCatalogEntry { unique_ptr AddForeignKeyConstraint(optional_ptr context, AlterForeignKeyInfo &info); unique_ptr DropForeignKeyConstraint(ClientContext &context, AlterForeignKeyInfo &info); unique_ptr SetColumnComment(ClientContext &context, SetColumnCommentInfo &info); + unique_ptr AddConstraint(ClientContext &context, AddConstraintInfo &info); void UpdateConstraintsOnColumnDrop(const LogicalIndex &removed_index, const vector &adjusted_indices, const RemoveColumnInfo &info, CreateTableInfo &create_info, diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp index 788c6561..955e5cd8 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/function_entry.hpp @@ -13,22 +13,16 @@ namespace duckdb { -//! An aggregate function in the catalog +//! A function in the catalog class FunctionEntry : public StandardEntry { public: FunctionEntry(CatalogType type, Catalog &catalog, SchemaCatalogEntry &schema, CreateFunctionInfo &info) : StandardEntry(type, schema, catalog, info.name) { - description = std::move(info.description); - parameter_names = std::move(info.parameter_names); - example = std::move(info.example); + descriptions = std::move(info.descriptions); this->dependencies = info.dependencies; + this->internal = info.internal; } - //! The description (if any) - string description; - //! Parameter names (if any) - vector parameter_names; - //! The example (if any) - string example; + vector descriptions; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp index 5a6e5731..0deb03fd 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/pragma_function_catalog_entry.hpp @@ -17,7 +17,7 @@ namespace duckdb { class Catalog; struct CreatePragmaFunctionInfo; -//! A table function in the catalog +//! A pragma function in the catalog class PragmaFunctionCatalogEntry : public FunctionEntry { public: static constexpr const CatalogType Type = CatalogType::PRAGMA_FUNCTION_ENTRY; diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp index a4440a86..2055a5a7 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/scalar_function_catalog_entry.hpp @@ -15,7 +15,7 @@ namespace duckdb { -//! A table function in the catalog +//! A scalar function in the catalog class ScalarFunctionCatalogEntry : public FunctionEntry { public: static constexpr const CatalogType Type = CatalogType::SCALAR_FUNCTION_ENTRY; @@ -28,6 +28,6 @@ class ScalarFunctionCatalogEntry : public FunctionEntry { ScalarFunctionSet functions; public: - unique_ptr AlterEntry(ClientContext &context, AlterInfo &info) override; + unique_ptr AlterEntry(CatalogTransaction transaction, AlterInfo &info) override; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp index a6f7d728..a82ea56c 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/schema_catalog_entry.hpp @@ -85,6 +85,8 @@ class SchemaCatalogEntry : public InCatalogEntry { DUCKDB_API virtual optional_ptr GetEntry(CatalogTransaction transaction, CatalogType type, const string &name) = 0; + DUCKDB_API virtual CatalogSet::EntryLookup GetEntryDetailed(CatalogTransaction transaction, CatalogType type, + const string &name); DUCKDB_API virtual SimilarCatalogEntry GetSimilarEntry(CatalogTransaction transaction, CatalogType type, const string &name); diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp index 0dd78f3c..d2e47e6d 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_catalog_entry.hpp @@ -21,8 +21,6 @@ namespace duckdb { class DataTable; -struct CreateTableInfo; -struct BoundCreateTableInfo; struct RenameColumnInfo; struct AddColumnInfo; @@ -33,12 +31,13 @@ struct AlterForeignKeyInfo; struct SetNotNullInfo; struct DropNotNullInfo; struct SetColumnCommentInfo; +struct CreateTableInfo; +struct BoundCreateTableInfo; class TableFunction; struct FunctionData; class Binder; -class TableColumnInfo; struct ColumnSegmentInfo; class TableStorageInfo; @@ -98,6 +97,9 @@ class TableCatalogEntry : public StandardEntry { DUCKDB_API static string ColumnsToSQL(const ColumnList &columns, const vector> &constraints); + //! Returns the expression string list of the column names e.g. (col1, col2, col3) + static string ColumnNamesToSQL(const ColumnList &columns); + //! Returns a list of segment information for this table, if exists virtual vector GetColumnSegmentInfo(); @@ -107,6 +109,11 @@ class TableCatalogEntry : public StandardEntry { virtual void BindUpdateConstraints(Binder &binder, LogicalGet &get, LogicalProjection &proj, LogicalUpdate &update, ClientContext &context); + //! Returns a pointer to the table's primary key, if exists, else nullptr. + optional_ptr GetPrimaryKey() const; + //! Returns true, if the table has a primary key, else false. + bool HasPrimaryKey() const; + protected: //! A list of columns that are part of this table ColumnList columns; diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp index fc784e55..a2e27570 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/table_function_catalog_entry.hpp @@ -28,6 +28,6 @@ class TableFunctionCatalogEntry : public FunctionEntry { TableFunctionSet functions; public: - unique_ptr AlterEntry(ClientContext &context, AlterInfo &info) override; + unique_ptr AlterEntry(CatalogTransaction transaction, AlterInfo &info) override; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp index 064ba4c0..8d608d07 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry/type_catalog_entry.hpp @@ -11,6 +11,7 @@ #include "duckdb/catalog/standard_entry.hpp" #include "duckdb/common/mutex.hpp" #include "duckdb/parser/parsed_data/create_type_info.hpp" +#include "duckdb/catalog/dependency_list.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp index 28b3874c..4e771cdc 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_entry_retriever.hpp @@ -1,3 +1,11 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/catalog/catalog_entry_retriever.hpp +// +// +//===----------------------------------------------------------------------===// + #pragma once #include @@ -6,6 +14,7 @@ #include "duckdb/common/string.hpp" #include "duckdb/parser/query_error_context.hpp" #include "duckdb/catalog/catalog_entry/schema_catalog_entry.hpp" +#include "duckdb/catalog/catalog_search_path.hpp" namespace duckdb { @@ -24,6 +33,11 @@ class CatalogEntryRetriever { } public: + void Inherit(const CatalogEntryRetriever &parent); + ClientContext &GetContext() { + return context; + } + optional_ptr GetEntry(CatalogType type, const string &catalog, const string &schema, const string &name, OnEntryNotFound on_entry_not_found = OnEntryNotFound::THROW_EXCEPTION, @@ -42,31 +56,20 @@ class CatalogEntryRetriever { OnEntryNotFound on_entry_not_found = OnEntryNotFound::THROW_EXCEPTION, QueryErrorContext error_context = QueryErrorContext()); - void SetCallback(catalog_entry_callback_t callback) { - this->callback = std::move(callback); - } - catalog_entry_callback_t GetCallback() { - return callback; - } + CatalogSearchPath &GetSearchPath(); + void SetSearchPath(vector entries); + + void SetCallback(catalog_entry_callback_t callback); + catalog_entry_callback_t GetCallback(); private: - using catalog_entry_retrieve_func_t = std::function()>; - optional_ptr GetEntryInternal(const catalog_entry_retrieve_func_t &retriever) { - auto result = retriever(); - if (!result) { - return result; - } - if (callback) { - // Call the callback if it's set - callback(*result); - } - return result; - } + optional_ptr ReturnAndCallback(optional_ptr result); private: - //! (optional) callback, called on every succesful entry retrieval + //! (optional) callback, called on every successful entry retrieval catalog_entry_callback_t callback = nullptr; ClientContext &context; + shared_ptr search_path; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp index 479d6c52..ff0def0f 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_search_path.hpp @@ -41,6 +41,7 @@ enum class CatalogSetPathType { SET_SCHEMA, SET_SCHEMAS }; class CatalogSearchPath { public: DUCKDB_API explicit CatalogSearchPath(ClientContext &client_p); + DUCKDB_API CatalogSearchPath(ClientContext &client_p, vector entries); CatalogSearchPath(const CatalogSearchPath &other) = delete; DUCKDB_API void Set(CatalogSearchEntry new_value, CatalogSetPathType set_type); @@ -61,8 +62,8 @@ class CatalogSearchPath { DUCKDB_API bool SchemaInSearchPath(ClientContext &context, const string &catalog_name, const string &schema_name); private: - void SetPaths(vector new_paths); - + //! Set paths without checking if they exist + void SetPathsInternal(vector new_paths); string GetSetName(CatalogSetPathType set_type); private: diff --git a/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp b/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp index aaef6af9..27364e77 100644 --- a/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp +++ b/src/duckdb/src/include/duckdb/catalog/catalog_set.hpp @@ -53,7 +53,7 @@ class CatalogEntryMap { class CatalogSet { public: struct EntryLookup { - enum class FailureReason { SUCCESS, DELETED, NOT_PRESENT }; + enum class FailureReason { SUCCESS, DELETED, NOT_PRESENT, INVISIBLE }; optional_ptr result; FailureReason reason; }; @@ -75,6 +75,10 @@ class CatalogSet { bool allow_drop_internal = false); DUCKDB_API bool DropEntry(ClientContext &context, const string &name, bool cascade, bool allow_drop_internal = false); + //! Verify that the entry referenced by the dependency is still alive + DUCKDB_API void VerifyExistenceOfDependency(transaction_t commit_id, CatalogEntry &entry); + //! Verify we can still drop the entry while committing + DUCKDB_API void CommitDrop(transaction_t commit_id, transaction_t start_time, CatalogEntry &entry); DUCKDB_API DuckCatalog &GetCatalog(); @@ -114,8 +118,9 @@ class CatalogSet { DUCKDB_API bool CommittedAfterStarting(CatalogTransaction transaction, transaction_t timestamp); DUCKDB_API bool HasConflict(CatalogTransaction transaction, transaction_t timestamp); DUCKDB_API bool UseTimestamp(CatalogTransaction transaction, transaction_t timestamp); + static bool IsCommitted(transaction_t timestamp); - void UpdateTimestamp(CatalogEntry &entry, transaction_t timestamp); + static void UpdateTimestamp(CatalogEntry &entry, transaction_t timestamp); mutex &GetCatalogLock() { return catalog_lock; @@ -126,6 +131,9 @@ class CatalogSet { private: bool DropDependencies(CatalogTransaction transaction, const string &name, bool cascade, bool allow_drop_internal = false); + //! Given a root entry, gets the entry valid for this transaction, 'visible' is used to indicate whether the entry + //! is actually visible to the transaction + CatalogEntry &GetEntryForTransaction(CatalogTransaction transaction, CatalogEntry ¤t, bool &visible); //! Given a root entry, gets the entry valid for this transaction CatalogEntry &GetEntryForTransaction(CatalogTransaction transaction, CatalogEntry ¤t); CatalogEntry &GetCommittedEntry(CatalogEntry ¤t); diff --git a/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp b/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp index 9b191036..804d2e7c 100644 --- a/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp +++ b/src/duckdb/src/include/duckdb/catalog/dependency_manager.hpp @@ -91,6 +91,10 @@ class DependencyManager { void AddOwnership(CatalogTransaction transaction, CatalogEntry &owner, CatalogEntry &entry); + //! Get the order of entries needed by EXPORT, the objects with no dependencies are exported first + void ReorderEntries(catalog_entry_vector_t &entries); + void ReorderEntries(catalog_entry_vector_t &entries, ClientContext &context); + private: DuckCatalog &catalog; CatalogSet subjects; @@ -110,7 +114,14 @@ class DependencyManager { static CatalogEntryInfo GetLookupProperties(const CatalogEntry &entry); private: + void ReorderEntry(CatalogTransaction transaction, CatalogEntry &entry, catalog_entry_set_t &visited, + catalog_entry_vector_t &order); + void ReorderEntries(catalog_entry_vector_t &entries, CatalogTransaction transaction); void AddObject(CatalogTransaction transaction, CatalogEntry &object, const LogicalDependencyList &dependencies); + void VerifyExistence(CatalogTransaction transaction, DependencyEntry &object); + void VerifyCommitDrop(CatalogTransaction transaction, transaction_t start_time, CatalogEntry &object); + //! Returns the objects that should be dropped alongside the object + catalog_entry_set_t CheckDropDependencies(CatalogTransaction transaction, CatalogEntry &object, bool cascade); void DropObject(CatalogTransaction transaction, CatalogEntry &object, bool cascade); void AlterObject(CatalogTransaction transaction, CatalogEntry &old_obj, CatalogEntry &new_obj, AlterInfo &info); diff --git a/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp b/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp index 830bd38e..c8299f81 100644 --- a/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp +++ b/src/duckdb/src/include/duckdb/catalog/duck_catalog.hpp @@ -25,9 +25,6 @@ class DuckCatalog : public Catalog { return "duckdb"; } - DependencyManager &GetDependencyManager() { - return *dependency_manager; - } mutex &GetWriteLock() { return write_lock; } @@ -52,6 +49,7 @@ class DuckCatalog : public Catalog { DUCKDB_API unique_ptr BindCreateIndex(Binder &binder, CreateStatement &stmt, TableCatalogEntry &table, unique_ptr plan) override; + CatalogSet &GetSchemaCatalogSet(); DatabaseSize GetDatabaseSize(ClientContext &context) override; vector GetMetadataInfo(ClientContext &context) override; @@ -61,6 +59,8 @@ class DuckCatalog : public Catalog { DUCKDB_API optional_idx GetCatalogVersion(ClientContext &context) override; + optional_ptr GetDependencyManager() override; + private: DUCKDB_API void DropSchema(CatalogTransaction transaction, DropInfo &info); DUCKDB_API void DropSchema(ClientContext &context, DropInfo &info) override; diff --git a/src/duckdb/src/include/duckdb/common/allocator.hpp b/src/duckdb/src/include/duckdb/common/allocator.hpp index f4550ef6..cd058645 100644 --- a/src/duckdb/src/include/duckdb/common/allocator.hpp +++ b/src/duckdb/src/include/duckdb/common/allocator.hpp @@ -65,6 +65,9 @@ class AllocatedData { data_ptr_t get() { // NOLINT: matching std style return pointer; } + operator bool() const { // NOLINT: missing explicit + return pointer != nullptr; + } const_data_ptr_t get() const { // NOLINT: matching std style return pointer; } diff --git a/src/duckdb/src/include/duckdb/common/array_ptr.hpp b/src/duckdb/src/include/duckdb/common/array_ptr.hpp index 5300a349..6c268945 100644 --- a/src/duckdb/src/include/duckdb/common/array_ptr.hpp +++ b/src/duckdb/src/include/duckdb/common/array_ptr.hpp @@ -1,3 +1,11 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/common/array_ptr.hpp +// +// +//===----------------------------------------------------------------------===// + #pragma once #include "duckdb/common/exception.hpp" diff --git a/src/duckdb/src/include/duckdb/common/arrow/appender/list_data.hpp b/src/duckdb/src/include/duckdb/common/arrow/appender/list_data.hpp index 0c2a1de6..5f0f8621 100644 --- a/src/duckdb/src/include/duckdb/common/arrow/appender/list_data.hpp +++ b/src/duckdb/src/include/duckdb/common/arrow/appender/list_data.hpp @@ -1,6 +1,7 @@ #pragma once #include "duckdb/common/arrow/appender/append_data.hpp" +#include "duckdb/common/arrow/arrow_appender.hpp" namespace duckdb { @@ -74,7 +75,8 @@ struct ArrowListData { (uint64_t)last_offset + list_length > NumericLimits::Maximum()) { throw InvalidInputException( "Arrow Appender: The maximum combined list offset for regular list buffers is " - "%u but the offset of %lu exceeds this.", + "%u but the offset of %lu exceeds this.\n* SET arrow_large_buffer_size=true to use large list " + "buffers", NumericLimits::Maximum(), last_offset); } last_offset += list_length; diff --git a/src/duckdb/src/include/duckdb/common/arrow/appender/list_view_data.hpp b/src/duckdb/src/include/duckdb/common/arrow/appender/list_view_data.hpp index 889e2614..158120c4 100644 --- a/src/duckdb/src/include/duckdb/common/arrow/appender/list_view_data.hpp +++ b/src/duckdb/src/include/duckdb/common/arrow/appender/list_view_data.hpp @@ -1,6 +1,7 @@ #pragma once #include "duckdb/common/arrow/appender/append_data.hpp" +#include "duckdb/common/arrow/arrow_appender.hpp" namespace duckdb { @@ -75,7 +76,8 @@ struct ArrowListViewData { (uint64_t)last_offset + list_length > NumericLimits::Maximum()) { throw InvalidInputException( "Arrow Appender: The maximum combined list offset for regular list buffers is " - "%u but the offset of %lu exceeds this.", + "%u but the offset of %lu exceeds this.\n* SET arrow_large_buffer_size=true to use large list " + "buffers", NumericLimits::Maximum(), last_offset); } offset_data[offset_idx] = last_offset; diff --git a/src/duckdb/src/include/duckdb/common/arrow/arrow_util.hpp b/src/duckdb/src/include/duckdb/common/arrow/arrow_util.hpp new file mode 100644 index 00000000..d49cade5 --- /dev/null +++ b/src/duckdb/src/include/duckdb/common/arrow/arrow_util.hpp @@ -0,0 +1,31 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/common/arrow/arrow_util.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once +#include "duckdb/common/arrow/arrow.hpp" +#include "duckdb/main/chunk_scan_state.hpp" +#include "duckdb/main/client_properties.hpp" +#include "duckdb/common/helper.hpp" +#include "duckdb/common/error_data.hpp" + +namespace duckdb { + +class QueryResult; +class DataChunk; + +class ArrowUtil { +public: + static bool TryFetchChunk(ChunkScanState &scan_state, ClientProperties options, idx_t chunk_size, ArrowArray *out, + idx_t &result_count, ErrorData &error); + static idx_t FetchChunk(ChunkScanState &scan_state, ClientProperties options, idx_t chunk_size, ArrowArray *out); + +private: + static bool TryFetchNext(QueryResult &result, unique_ptr &out, ErrorData &error); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp b/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp index 71bc8d6f..0639da53 100644 --- a/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp +++ b/src/duckdb/src/include/duckdb/common/arrow/arrow_wrapper.hpp @@ -9,14 +9,9 @@ #pragma once #include "duckdb/common/arrow/arrow.hpp" #include "duckdb/common/helper.hpp" -#include "duckdb/common/error_data.hpp" -#include "duckdb/main/chunk_scan_state.hpp" -#include "duckdb/main/client_properties.hpp" //! Here we have the internal duckdb classes that interact with Arrow's Internal Header (i.e., duckdb/commons/arrow.hpp) namespace duckdb { -class QueryResult; -class DataChunk; class ArrowSchemaWrapper { public: @@ -49,23 +44,14 @@ class ArrowArrayStreamWrapper { public: void GetSchema(ArrowSchemaWrapper &schema); - shared_ptr GetNextChunk(); + virtual shared_ptr GetNextChunk(); const char *GetError(); - ~ArrowArrayStreamWrapper(); + virtual ~ArrowArrayStreamWrapper(); ArrowArrayStreamWrapper() { arrow_array_stream.release = nullptr; } }; -class ArrowUtil { -public: - static bool TryFetchChunk(ChunkScanState &scan_state, ClientProperties options, idx_t chunk_size, ArrowArray *out, - idx_t &result_count, ErrorData &error); - static idx_t FetchChunk(ChunkScanState &scan_state, ClientProperties options, idx_t chunk_size, ArrowArray *out); - -private: - static bool TryFetchNext(QueryResult &result, unique_ptr &out, ErrorData &error); -}; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/arrow/schema_metadata.hpp b/src/duckdb/src/include/duckdb/common/arrow/schema_metadata.hpp index 0a25a840..833d455a 100644 --- a/src/duckdb/src/include/duckdb/common/arrow/schema_metadata.hpp +++ b/src/duckdb/src/include/duckdb/common/arrow/schema_metadata.hpp @@ -21,23 +21,31 @@ class ArrowSchemaMetadata { ArrowSchemaMetadata() {}; //! Adds an option to the metadata void AddOption(const string &key, const string &value); - //! Gets an option from the metadata, returns an empty string if does not exist. + //! Gets an option from the metadata, returns an empty string if it does not exist. string GetOption(const string &key) const; //! Transforms metadata to a char*, used when creating an arrow object unsafe_unique_array SerializeMetadata() const; //! If the arrow extension is set - bool HasExtension(); + bool HasExtension() const; + //! If this extension type is an 'arrow.opaque', and the internal type and vendors match. + bool IsNonCanonicalType(const string &type, const string &vendor = "DuckDB") const; //! Get the extension name if set, otherwise returns empty string GetExtensionName() const; //! Key for encode of the extension type name static constexpr const char *ARROW_EXTENSION_NAME = "ARROW:extension:name"; //! Key for encode of the metadata key static constexpr const char *ARROW_METADATA_KEY = "ARROW:extension:metadata"; + //! Arrow Extension for non-canonical types. + static constexpr const char *ARROW_EXTENSION_NON_CANONICAL = "arrow.opaque"; //! Creates the metadata based on an extension name - static ArrowSchemaMetadata MetadataFromName(const string &extension_name); + static ArrowSchemaMetadata ArrowCanonicalType(const string &extension_name); + //! Creates the metadata based on an extension name + static ArrowSchemaMetadata DuckDBInternalType(const string &type_name); private: //! The unordered map that holds the metadata - unordered_map metadata_map; + unordered_map schema_metadata_map; + //! The extension metadata map, currently only used for internal types in arrow.opaque + unordered_map extension_metadata_map; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/atomic.hpp b/src/duckdb/src/include/duckdb/common/atomic.hpp index 4445b311..e86e6a69 100644 --- a/src/duckdb/src/include/duckdb/common/atomic.hpp +++ b/src/duckdb/src/include/duckdb/common/atomic.hpp @@ -11,5 +11,17 @@ #include namespace duckdb { + using std::atomic; -} + +//! NOTE: When repeatedly trying to atomically set a value in a loop, you can use as the loop condition: +//! * std::atomic_compare_exchange_weak +//! * std::atomic::compare_exchange_weak +//! If not used as a loop condition, use: +//! * std::atomic_compare_exchange_strong +//! * std::atomic::compare_exchange_strong +//! If this is not done correctly, we may get correctness issues when using older compiler versions (see: issue #14389) +//! Performance may be optimized using std::memory_order, but NOT at the cost of correctness. +//! For correct examples of this, see concurrentqueue.h + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/bitpacking.hpp b/src/duckdb/src/include/duckdb/common/bitpacking.hpp index 8aa0305b..06d12882 100644 --- a/src/duckdb/src/include/duckdb/common/bitpacking.hpp +++ b/src/duckdb/src/include/duckdb/common/bitpacking.hpp @@ -41,16 +41,15 @@ class BitpackingPrimitives { } } else { idx_t misaligned_count = count % BITPACKING_ALGORITHM_GROUP_SIZE; - T tmp_buffer[BITPACKING_ALGORITHM_GROUP_SIZE]; // TODO maybe faster on the heap? - count -= misaligned_count; - for (idx_t i = 0; i < count; i += BITPACKING_ALGORITHM_GROUP_SIZE) { PackGroup(dst + (i * width) / 8, src + i, width); } - // Input was not aligned to BITPACKING_ALGORITHM_GROUP_SIZE, we need a copy + // The input is not aligned to BITPACKING_ALGORITHM_GROUP_SIZE. + // Copy the unaligned count into a zero-initialized temporary group, and pack it. if (misaligned_count) { + T tmp_buffer[BITPACKING_ALGORITHM_GROUP_SIZE] = {0}; memcpy(tmp_buffer, src + count, misaligned_count * sizeof(T)); PackGroup(dst + (count * width) / 8, tmp_buffer, width); } diff --git a/src/duckdb/src/include/duckdb/common/box_renderer.hpp b/src/duckdb/src/include/duckdb/common/box_renderer.hpp index fa9493ef..aaed6b8b 100644 --- a/src/duckdb/src/include/duckdb/common/box_renderer.hpp +++ b/src/duckdb/src/include/duckdb/common/box_renderer.hpp @@ -20,6 +20,51 @@ class ColumnDataRowCollection; enum class ValueRenderAlignment { LEFT, MIDDLE, RIGHT }; enum class RenderMode : uint8_t { ROWS, COLUMNS }; +enum class ResultRenderType { LAYOUT, COLUMN_NAME, COLUMN_TYPE, VALUE, NULL_VALUE, FOOTER }; + +class BaseResultRenderer { +public: + BaseResultRenderer(); + virtual ~BaseResultRenderer(); + + virtual void RenderLayout(const string &text) = 0; + virtual void RenderColumnName(const string &text) = 0; + virtual void RenderType(const string &text) = 0; + virtual void RenderValue(const string &text, const LogicalType &type) = 0; + virtual void RenderNull(const string &text, const LogicalType &type) = 0; + virtual void RenderFooter(const string &text) = 0; + + BaseResultRenderer &operator<<(char c); + BaseResultRenderer &operator<<(const string &val); + + void Render(ResultRenderType render_mode, const string &val); + void SetValueType(const LogicalType &type); + +private: + LogicalType value_type; +}; + +class StringResultRenderer : public BaseResultRenderer { +public: + void RenderLayout(const string &text) override; + void RenderColumnName(const string &text) override; + void RenderType(const string &text) override; + void RenderValue(const string &text, const LogicalType &type) override; + void RenderNull(const string &text, const LogicalType &type) override; + void RenderFooter(const string &text) override; + + const string &str(); // NOLINT: mimic string stream + +private: + string result; +}; + +enum class LargeNumberRendering { + NONE = 0, // render all numbers as-is + FOOTER = 1, // if there is a single row, adds a second footer row with a readable summarization of large numbers + ALL = 2 // renders all large numbers +}; + struct BoxRendererConfig { // a max_width of 0 means we default to the terminal width idx_t max_width = 0; @@ -33,8 +78,14 @@ struct BoxRendererConfig { idx_t max_col_width = 20; //! how to render NULL values string null_value = "NULL"; + //! Decimal separator (if any) + char decimal_separator = '\0'; + //! Thousand separator (if any) + char thousand_separator = '\0'; //! Whether or not to render row-wise or column-wise RenderMode render_mode = RenderMode::ROWS; + //! How to render large numbers + LargeNumberRendering large_number_rendering = LargeNumberRendering::NONE; #ifndef DUCKDB_ASCII_TREE_RENDERER const char *LTCORNER = "\342\224\214"; // NOLINT: "┌"; @@ -85,7 +136,8 @@ class BoxRenderer { string ToString(ClientContext &context, const vector &names, const ColumnDataCollection &op); - void Render(ClientContext &context, const vector &names, const ColumnDataCollection &op, std::ostream &ss); + void Render(ClientContext &context, const vector &names, const ColumnDataCollection &op, + BaseResultRenderer &ss); void Print(ClientContext &context, const vector &names, const ColumnDataCollection &op); private: @@ -93,11 +145,12 @@ class BoxRenderer { BoxRendererConfig config; private: - void RenderValue(std::ostream &ss, const string &value, idx_t column_width, + void RenderValue(BaseResultRenderer &ss, const string &value, idx_t column_width, ResultRenderType render_mode, ValueRenderAlignment alignment = ValueRenderAlignment::MIDDLE); string RenderType(const LogicalType &type); ValueRenderAlignment TypeAlignment(const LogicalType &type); - string GetRenderValue(ColumnDataRowCollection &rows, idx_t c, idx_t r); + string GetRenderValue(BaseResultRenderer &ss, ColumnDataRowCollection &rows, idx_t c, idx_t r, + const LogicalType &type, ResultRenderType &render_mode); list FetchRenderCollections(ClientContext &context, const ColumnDataCollection &result, idx_t top_rows, idx_t bottom_rows); list PivotCollections(ClientContext &context, list input, @@ -108,13 +161,19 @@ class BoxRenderer { vector &column_map, idx_t &total_length); void RenderHeader(const vector &names, const vector &result_types, const vector &column_map, const vector &widths, const vector &boundaries, - idx_t total_length, bool has_results, std::ostream &ss); + idx_t total_length, bool has_results, BaseResultRenderer &renderer); void RenderValues(const list &collections, const vector &column_map, - const vector &widths, const vector &result_types, std::ostream &ss); + const vector &widths, const vector &result_types, BaseResultRenderer &ss); void RenderRowCount(string row_count_str, string shown_str, const string &column_count_str, const vector &boundaries, bool has_hidden_rows, bool has_hidden_columns, idx_t total_length, idx_t row_count, idx_t column_count, idx_t minimum_row_length, - std::ostream &ss); + BaseResultRenderer &ss); + + string FormatNumber(const string &input); + string ConvertRenderValue(const string &input, const LogicalType &type); + string ConvertRenderValue(const string &input); + //! Try to format a large number in a readable way (e.g. 1234567 -> 1.23 million) + string TryFormatLargeNumber(const string &numeric); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/chrono.hpp b/src/duckdb/src/include/duckdb/common/chrono.hpp index 797a867c..c46e27b1 100644 --- a/src/duckdb/src/include/duckdb/common/chrono.hpp +++ b/src/duckdb/src/include/duckdb/common/chrono.hpp @@ -15,6 +15,7 @@ using std::chrono::duration; using std::chrono::duration_cast; using std::chrono::high_resolution_clock; using std::chrono::milliseconds; +using std::chrono::nanoseconds; using std::chrono::system_clock; using std::chrono::time_point; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/column_index.hpp b/src/duckdb/src/include/duckdb/common/column_index.hpp new file mode 100644 index 00000000..32d2e182 --- /dev/null +++ b/src/duckdb/src/include/duckdb/common/column_index.hpp @@ -0,0 +1,72 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/common/column_index.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/constants.hpp" +#include "duckdb/common/vector.hpp" + +namespace duckdb { + +struct ColumnIndex { + ColumnIndex() : index(DConstants::INVALID_INDEX) { + } + explicit ColumnIndex(idx_t index) : index(index) { + } + ColumnIndex(idx_t index, vector child_indexes_p) + : index(index), child_indexes(std::move(child_indexes_p)) { + } + + inline bool operator==(const ColumnIndex &rhs) const { + return index == rhs.index; + } + inline bool operator!=(const ColumnIndex &rhs) const { + return index != rhs.index; + } + inline bool operator<(const ColumnIndex &rhs) const { + return index < rhs.index; + } + idx_t GetPrimaryIndex() const { + return index; + } + LogicalIndex ToLogical() const { + return LogicalIndex(index); + } + bool HasChildren() const { + return !child_indexes.empty(); + } + idx_t ChildIndexCount() const { + return child_indexes.size(); + } + const ColumnIndex &GetChildIndex(idx_t idx) const { + return child_indexes[idx]; + } + ColumnIndex &GetChildIndex(idx_t idx) { + return child_indexes[idx]; + } + const vector &GetChildIndexes() const { + return child_indexes; + } + vector &GetChildIndexesMutable() { + return child_indexes; + } + void AddChildIndex(ColumnIndex new_index) { + this->child_indexes.push_back(std::move(new_index)); + } + bool IsRowIdColumn() const { + return index == DConstants::INVALID_INDEX; + } + void Serialize(Serializer &serializer) const; + static ColumnIndex Deserialize(Deserializer &deserializer); + +private: + idx_t index; + vector child_indexes; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/enum_util.hpp b/src/duckdb/src/include/duckdb/common/enum_util.hpp index 7cae3772..ce92dd77 100644 --- a/src/duckdb/src/include/duckdb/common/enum_util.hpp +++ b/src/duckdb/src/include/duckdb/common/enum_util.hpp @@ -36,6 +36,8 @@ enum class AccessMode : uint8_t; enum class AggregateCombineType : uint8_t; +enum class AggregateDistinctDependent : uint8_t; + enum class AggregateHandling : uint8_t; enum class AggregateOrderDependent : uint8_t; @@ -166,6 +168,10 @@ enum class FilterPropagateResult : uint8_t; enum class ForeignKeyType : uint8_t; +enum class FunctionCollationHandling : uint8_t; + +enum class FunctionErrors : uint8_t; + enum class FunctionNullHandling : uint8_t; enum class FunctionStability : uint8_t; @@ -278,6 +284,8 @@ enum class SecretDisplayType : uint8_t; enum class SecretPersistType : uint8_t; +enum class SecretSerializationType : uint8_t; + enum class SequenceInfo : uint8_t; enum class SetOperationType : uint8_t; @@ -320,6 +328,8 @@ enum class TableColumnType : uint8_t; enum class TableFilterType : uint8_t; +enum class TablePartitionInfo : uint8_t; + enum class TableReferenceType : uint8_t; enum class TableScanType : uint8_t; @@ -328,6 +338,10 @@ enum class TaskExecutionMode : uint8_t; enum class TaskExecutionResult : uint8_t; +enum class TemporaryBufferSize : uint64_t; + +enum class TemporaryCompressionLevel : int; + enum class TimestampCastResult : uint8_t; enum class TransactionModifierType : uint8_t; @@ -365,6 +379,9 @@ const char* EnumUtil::ToChars(AccessMode value); template<> const char* EnumUtil::ToChars(AggregateCombineType value); +template<> +const char* EnumUtil::ToChars(AggregateDistinctDependent value); + template<> const char* EnumUtil::ToChars(AggregateHandling value); @@ -560,6 +577,12 @@ const char* EnumUtil::ToChars(FilterPropagateResult value template<> const char* EnumUtil::ToChars(ForeignKeyType value); +template<> +const char* EnumUtil::ToChars(FunctionCollationHandling value); + +template<> +const char* EnumUtil::ToChars(FunctionErrors value); + template<> const char* EnumUtil::ToChars(FunctionNullHandling value); @@ -728,6 +751,9 @@ const char* EnumUtil::ToChars(SecretDisplayType value); template<> const char* EnumUtil::ToChars(SecretPersistType value); +template<> +const char* EnumUtil::ToChars(SecretSerializationType value); + template<> const char* EnumUtil::ToChars(SequenceInfo value); @@ -791,6 +817,9 @@ const char* EnumUtil::ToChars(TableColumnType value); template<> const char* EnumUtil::ToChars(TableFilterType value); +template<> +const char* EnumUtil::ToChars(TablePartitionInfo value); + template<> const char* EnumUtil::ToChars(TableReferenceType value); @@ -803,6 +832,12 @@ const char* EnumUtil::ToChars(TaskExecutionMode value); template<> const char* EnumUtil::ToChars(TaskExecutionResult value); +template<> +const char* EnumUtil::ToChars(TemporaryBufferSize value); + +template<> +const char* EnumUtil::ToChars(TemporaryCompressionLevel value); + template<> const char* EnumUtil::ToChars(TimestampCastResult value); @@ -855,6 +890,9 @@ AccessMode EnumUtil::FromString(const char *value); template<> AggregateCombineType EnumUtil::FromString(const char *value); +template<> +AggregateDistinctDependent EnumUtil::FromString(const char *value); + template<> AggregateHandling EnumUtil::FromString(const char *value); @@ -1050,6 +1088,12 @@ FilterPropagateResult EnumUtil::FromString(const char *va template<> ForeignKeyType EnumUtil::FromString(const char *value); +template<> +FunctionCollationHandling EnumUtil::FromString(const char *value); + +template<> +FunctionErrors EnumUtil::FromString(const char *value); + template<> FunctionNullHandling EnumUtil::FromString(const char *value); @@ -1218,6 +1262,9 @@ SecretDisplayType EnumUtil::FromString(const char *value); template<> SecretPersistType EnumUtil::FromString(const char *value); +template<> +SecretSerializationType EnumUtil::FromString(const char *value); + template<> SequenceInfo EnumUtil::FromString(const char *value); @@ -1281,6 +1328,9 @@ TableColumnType EnumUtil::FromString(const char *value); template<> TableFilterType EnumUtil::FromString(const char *value); +template<> +TablePartitionInfo EnumUtil::FromString(const char *value); + template<> TableReferenceType EnumUtil::FromString(const char *value); @@ -1293,6 +1343,12 @@ TaskExecutionMode EnumUtil::FromString(const char *value); template<> TaskExecutionResult EnumUtil::FromString(const char *value); +template<> +TemporaryBufferSize EnumUtil::FromString(const char *value); + +template<> +TemporaryCompressionLevel EnumUtil::FromString(const char *value); + template<> TimestampCastResult EnumUtil::FromString(const char *value); diff --git a/src/duckdb/src/include/duckdb/core_functions/core_functions.hpp b/src/duckdb/src/include/duckdb/common/enums/collation_type.hpp similarity index 60% rename from src/duckdb/src/include/duckdb/core_functions/core_functions.hpp rename to src/duckdb/src/include/duckdb/common/enums/collation_type.hpp index 3705be14..bd1a6e95 100644 --- a/src/duckdb/src/include/duckdb/core_functions/core_functions.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/collation_type.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/core_functions.hpp +// duckdb/common/enums/collation_type.hpp // // //===----------------------------------------------------------------------===// @@ -12,11 +12,6 @@ namespace duckdb { -class Catalog; -struct CatalogTransaction; - -struct CoreFunctions { - static void RegisterFunctions(Catalog &catalog, CatalogTransaction transaction); -}; +enum class CollationType { ALL_COLLATIONS, COMBINABLE_COLLATIONS }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/enums/compression_type.hpp b/src/duckdb/src/include/duckdb/common/enums/compression_type.hpp index 19bfa4cc..6a1c30d4 100644 --- a/src/duckdb/src/include/duckdb/common/enums/compression_type.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/compression_type.hpp @@ -26,6 +26,8 @@ enum class CompressionType : uint8_t { COMPRESSION_PATAS = 9, COMPRESSION_ALP = 10, COMPRESSION_ALPRD = 11, + COMPRESSION_ZSTD = 12, + COMPRESSION_ROARING = 13, COMPRESSION_COUNT // This has to stay the last entry of the type! }; diff --git a/src/duckdb/src/include/duckdb/common/enums/function_errors.hpp b/src/duckdb/src/include/duckdb/common/enums/function_errors.hpp new file mode 100644 index 00000000..5f00c55a --- /dev/null +++ b/src/duckdb/src/include/duckdb/common/enums/function_errors.hpp @@ -0,0 +1,18 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/common/enums/function_errors.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/common.hpp" + +namespace duckdb { + +//! Whether or not a function can throw an error or not +enum class FunctionErrors : uint8_t { CANNOT_ERROR = 0, CAN_THROW_ERROR = 1 }; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/enums/memory_tag.hpp b/src/duckdb/src/include/duckdb/common/enums/memory_tag.hpp index 109332b1..e38a720e 100644 --- a/src/duckdb/src/include/duckdb/common/enums/memory_tag.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/memory_tag.hpp @@ -24,9 +24,10 @@ enum class MemoryTag : uint8_t { OVERFLOW_STRINGS = 8, IN_MEMORY_TABLE = 9, ALLOCATOR = 10, - EXTENSION = 11 + EXTENSION = 11, + TRANSACTION = 12 }; -static constexpr const idx_t MEMORY_TAG_COUNT = 12; +static constexpr const idx_t MEMORY_TAG_COUNT = 13; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp b/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp index fdea7faf..c133faad 100644 --- a/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/metric_type.hpp @@ -31,6 +31,9 @@ enum class MetricsType : uint8_t { OPERATOR_ROWS_SCANNED, OPERATOR_TIMING, RESULT_SET_SIZE, + LATENCY, + ROWS_RETURNED, + OPERATOR_NAME, ALL_OPTIMIZERS, CUMULATIVE_OPTIMIZER_TIMING, PLANNER, @@ -42,6 +45,7 @@ enum class MetricsType : uint8_t { OPTIMIZER_EXPRESSION_REWRITER, OPTIMIZER_FILTER_PULLUP, OPTIMIZER_FILTER_PUSHDOWN, + OPTIMIZER_EMPTY_RESULT_PULLUP, OPTIMIZER_CTE_FILTER_PUSHER, OPTIMIZER_REGEX_RANGE, OPTIMIZER_IN_CLAUSE, @@ -59,9 +63,11 @@ enum class MetricsType : uint8_t { OPTIMIZER_COMPRESSED_MATERIALIZATION, OPTIMIZER_DUPLICATE_GROUPS, OPTIMIZER_REORDER_FILTER, + OPTIMIZER_SAMPLING_PUSHDOWN, OPTIMIZER_JOIN_FILTER_PUSHDOWN, OPTIMIZER_EXTENSION, OPTIMIZER_MATERIALIZED_CTE, + OPTIMIZER_SUM_REWRITER, }; struct MetricsTypeHashFunction { diff --git a/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp b/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp index 8eea1ca4..cfb7acb6 100644 --- a/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/optimizer_type.hpp @@ -18,6 +18,7 @@ enum class OptimizerType : uint32_t { EXPRESSION_REWRITER, FILTER_PULLUP, FILTER_PUSHDOWN, + EMPTY_RESULT_PULLUP, CTE_FILTER_PUSHER, REGEX_RANGE, IN_CLAUSE, @@ -35,9 +36,11 @@ enum class OptimizerType : uint32_t { COMPRESSED_MATERIALIZATION, DUPLICATE_GROUPS, REORDER_FILTER, + SAMPLING_PUSHDOWN, JOIN_FILTER_PUSHDOWN, EXTENSION, MATERIALIZED_CTE, + SUM_REWRITER }; string OptimizerTypeToString(OptimizerType type); diff --git a/src/duckdb/src/include/duckdb/common/enums/order_preservation_type.hpp b/src/duckdb/src/include/duckdb/common/enums/order_preservation_type.hpp index ef590c03..d28edb20 100644 --- a/src/duckdb/src/include/duckdb/common/enums/order_preservation_type.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/order_preservation_type.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// src/include/duckdb/common/enums/order_preservation_type.hpp +// duckdb/common/enums/order_preservation_type.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp b/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp index 4f170b49..607588c1 100644 --- a/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/physical_operator_type.hpp @@ -27,6 +27,7 @@ enum class PhysicalOperatorType : uint8_t { UNGROUPED_AGGREGATE, HASH_GROUP_BY, PERFECT_HASH_GROUP_BY, + PARTITIONED_AGGREGATE, FILTER, PROJECTION, COPY_TO_FILE, diff --git a/src/duckdb/src/include/duckdb/common/enums/profiler_format.hpp b/src/duckdb/src/include/duckdb/common/enums/profiler_format.hpp index 25a7912f..1a416d54 100644 --- a/src/duckdb/src/include/duckdb/common/enums/profiler_format.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/profiler_format.hpp @@ -12,6 +12,6 @@ namespace duckdb { -enum class ProfilerPrintFormat : uint8_t { QUERY_TREE, JSON, QUERY_TREE_OPTIMIZER, NO_OUTPUT }; +enum class ProfilerPrintFormat : uint8_t { QUERY_TREE, JSON, QUERY_TREE_OPTIMIZER, NO_OUTPUT, HTML, GRAPHVIZ }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_enum.hpp b/src/duckdb/src/include/duckdb/common/enums/quantile_enum.hpp similarity index 83% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_enum.hpp rename to src/duckdb/src/include/duckdb/common/enums/quantile_enum.hpp index 161f1a90..bcb90b2c 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/quantile_enum.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/quantile_enum.hpp @@ -1,13 +1,15 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/aggregate/quantile_enum.hpp +// duckdb/common/enums/quantile_enum.hpp // // //===----------------------------------------------------------------------===// #pragma once +#include "duckdb/common/constants.hpp" + namespace duckdb { enum class QuantileSerializationType : uint8_t { diff --git a/src/duckdb/src/include/duckdb/common/enums/scan_vector_type.hpp b/src/duckdb/src/include/duckdb/common/enums/scan_vector_type.hpp index dcdf6e90..73224f40 100644 --- a/src/duckdb/src/include/duckdb/common/enums/scan_vector_type.hpp +++ b/src/duckdb/src/include/duckdb/common/enums/scan_vector_type.hpp @@ -14,4 +14,6 @@ namespace duckdb { enum class ScanVectorType { SCAN_ENTIRE_VECTOR, SCAN_FLAT_VECTOR }; +enum class ScanVectorMode { REGULAR_SCAN, SCAN_COMMITTED, SCAN_COMMITTED_NO_UPDATES }; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/exception.hpp b/src/duckdb/src/include/duckdb/common/exception.hpp index dd6431c5..3bb60592 100644 --- a/src/duckdb/src/include/duckdb/common/exception.hpp +++ b/src/duckdb/src/include/duckdb/common/exception.hpp @@ -329,6 +329,16 @@ class InvalidInputException : public Exception { } }; +class ExecutorException : public Exception { +public: + DUCKDB_API explicit ExecutorException(const string &msg); + + template + explicit ExecutorException(const string &msg, ARGS... params) + : ExecutorException(ConstructMessage(msg, params...)) { + } +}; + class InvalidConfigurationException : public Exception { public: DUCKDB_API explicit InvalidConfigurationException(const string &msg); diff --git a/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp b/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp index 5ae6a5e8..363a3445 100644 --- a/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp +++ b/src/duckdb/src/include/duckdb/common/exception/parser_exception.hpp @@ -26,6 +26,10 @@ class ParserException : public Exception { explicit ParserException(optional_idx error_location, const string &msg, ARGS... params) : ParserException(ConstructMessage(msg, params...), Exception::InitializeExtraInfo(error_location)) { } + template + explicit ParserException(const ParsedExpression &expr, const string &msg, ARGS... params) + : ParserException(ConstructMessage(msg, params...), Exception::InitializeExtraInfo(expr)) { + } static ParserException SyntaxError(const string &query, const string &error_message, optional_idx error_location); }; diff --git a/src/duckdb/src/include/duckdb/common/extra_operator_info.hpp b/src/duckdb/src/include/duckdb/common/extra_operator_info.hpp index ceb24638..117be6c6 100644 --- a/src/duckdb/src/include/duckdb/common/extra_operator_info.hpp +++ b/src/duckdb/src/include/duckdb/common/extra_operator_info.hpp @@ -12,14 +12,17 @@ #include #include #include "duckdb/common/operator/comparison_operators.hpp" +#include "duckdb/common/optional_idx.hpp" +#include "duckdb/parser/parsed_data/sample_options.hpp" namespace duckdb { class ExtraOperatorInfo { public: - ExtraOperatorInfo() : file_filters("") { + ExtraOperatorInfo() : file_filters(""), sample_options(nullptr) { } - ExtraOperatorInfo(ExtraOperatorInfo &extra_info) : file_filters(extra_info.file_filters) { + ExtraOperatorInfo(ExtraOperatorInfo &extra_info) + : file_filters(extra_info.file_filters), sample_options(std::move(extra_info.sample_options)) { if (extra_info.total_files.IsValid()) { total_files = extra_info.total_files.GetIndex(); } @@ -34,6 +37,8 @@ class ExtraOperatorInfo { optional_idx total_files; //! Size of file list after applying filters optional_idx filtered_files; + //! Sample options that have been pushed down into the table scan + unique_ptr sample_options; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/extra_type_info/enum_type_info.hpp b/src/duckdb/src/include/duckdb/common/extra_type_info/enum_type_info.hpp new file mode 100644 index 00000000..3949caa8 --- /dev/null +++ b/src/duckdb/src/include/duckdb/common/extra_type_info/enum_type_info.hpp @@ -0,0 +1,53 @@ +#pragma once + +#include "duckdb/common/extra_type_info.hpp" +#include "duckdb/common/serializer/deserializer.hpp" +#include "duckdb/common/string_map_set.hpp" + +namespace duckdb { + +template +struct EnumTypeInfoTemplated : public EnumTypeInfo { + explicit EnumTypeInfoTemplated(Vector &values_insert_order_p, idx_t size_p) + : EnumTypeInfo(values_insert_order_p, size_p) { + D_ASSERT(values_insert_order_p.GetType().InternalType() == PhysicalType::VARCHAR); + + UnifiedVectorFormat vdata; + values_insert_order.ToUnifiedFormat(size_p, vdata); + + auto data = UnifiedVectorFormat::GetData(vdata); + for (idx_t i = 0; i < size_p; i++) { + auto idx = vdata.sel->get_index(i); + if (!vdata.validity.RowIsValid(idx)) { + throw InternalException("Attempted to create ENUM type with NULL value"); + } + if (values.count(data[idx]) > 0) { + throw InvalidInputException("Attempted to create ENUM type with duplicate value %s", + data[idx].GetString()); + } + values[data[idx]] = UnsafeNumericCast(i); + } + } + + static shared_ptr Deserialize(Deserializer &deserializer, uint32_t size) { + Vector values_insert_order(LogicalType::VARCHAR, size); + auto strings = FlatVector::GetData(values_insert_order); + + deserializer.ReadList(201, "values", [&](Deserializer::List &list, idx_t i) { + strings[i] = StringVector::AddStringOrBlob(values_insert_order, list.ReadElement()); + }); + return make_shared_ptr(values_insert_order, size); + } + + const string_map_t &GetValues() const { + return values; + } + + EnumTypeInfoTemplated(const EnumTypeInfoTemplated &) = delete; + EnumTypeInfoTemplated &operator=(const EnumTypeInfoTemplated &) = delete; + +private: + string_map_t values; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/file_buffer.hpp b/src/duckdb/src/include/duckdb/common/file_buffer.hpp index 1a3e6e9c..818b53ed 100644 --- a/src/duckdb/src/include/duckdb/common/file_buffer.hpp +++ b/src/duckdb/src/include/duckdb/common/file_buffer.hpp @@ -17,7 +17,7 @@ struct FileHandle; enum class FileBufferType : uint8_t { BLOCK = 1, MANAGED_BUFFER = 2, TINY_BUFFER = 3 }; -static constexpr const idx_t FILE_BUFFER_TYPE_COUNT = 3; +static constexpr idx_t FILE_BUFFER_TYPE_COUNT = 3; //! The FileBuffer represents a buffer that can be read or written to a Direct IO FileHandle. class FileBuffer { @@ -32,8 +32,6 @@ class FileBuffer { virtual ~FileBuffer(); Allocator &allocator; - //! The type of the buffer - FileBufferType type; //! The buffer that users can write to data_ptr_t buffer; //! The size of the portion that users can write to, this is equivalent to internal_size - BLOCK_HEADER_SIZE @@ -47,6 +45,10 @@ class FileBuffer { void Clear(); + FileBufferType GetBufferType() const { + return type; + } + // Same rules as the constructor. We will add room for a header, in additio to // the requested user bytes. We will then sector-align the result. void Resize(uint64_t user_size); @@ -68,6 +70,8 @@ class FileBuffer { void Initialize(DebugInitialize info); protected: + //! The type of the buffer + FileBufferType type; //! The pointer to the internal buffer that will be read or written, including the buffer header data_ptr_t internal_buffer; //! The aligned size as passed to the constructor. This is the size that is read or written to disk. diff --git a/src/duckdb/src/include/duckdb/common/file_system.hpp b/src/duckdb/src/include/duckdb/common/file_system.hpp index 0b83c4f3..e3aac6e9 100644 --- a/src/duckdb/src/include/duckdb/common/file_system.hpp +++ b/src/duckdb/src/include/duckdb/common/file_system.hpp @@ -53,7 +53,7 @@ enum class FileType { struct FileHandle { public: - DUCKDB_API FileHandle(FileSystem &file_system, string path); + DUCKDB_API FileHandle(FileSystem &file_system, string path, FileOpenFlags flags); FileHandle(const FileHandle &) = delete; DUCKDB_API virtual ~FileHandle(); @@ -84,6 +84,10 @@ struct FileHandle { return path; } + FileOpenFlags GetFlags() const { + return flags; + } + template TARGET &Cast() { DynamicCastCheck(this); @@ -98,6 +102,7 @@ struct FileHandle { public: FileSystem &file_system; string path; + FileOpenFlags flags; }; class FileSystem { diff --git a/src/duckdb/src/include/duckdb/common/hugeint.hpp b/src/duckdb/src/include/duckdb/common/hugeint.hpp index 0abc91e6..c9b54bd9 100644 --- a/src/duckdb/src/include/duckdb/common/hugeint.hpp +++ b/src/duckdb/src/include/duckdb/common/hugeint.hpp @@ -80,3 +80,13 @@ struct hugeint_t { // NOLINT: use numeric casing }; } // namespace duckdb + +namespace std { +template <> +struct hash { + size_t operator()(const duckdb::hugeint_t &val) const { + using std::hash; + return hash {}(val.upper) ^ hash {}(val.lower); + } +}; +} // namespace std diff --git a/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp b/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp index 2f612631..d1ff0867 100644 --- a/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp +++ b/src/duckdb/src/include/duckdb/common/insertion_order_preserving_map.hpp @@ -95,13 +95,13 @@ class InsertionOrderPreservingMap { map.resize(nz); } - void insert(const string &key, V &value) { // NOLINT: match stl API - map.push_back(make_pair(key, std::move(value))); + void insert(const string &key, V &&value) { // NOLINT: match stl API + map.emplace_back(key, std::move(value)); map_idx[key] = map.size() - 1; } - void insert(const string &key, V &&value) { // NOLINT: match stl API - map.push_back(make_pair(key, std::move(value))); + void insert(const string &key, const V &value) { // NOLINT: match stl API + map.emplace_back(key, value); map_idx[key] = map.size() - 1; } @@ -133,7 +133,7 @@ class InsertionOrderPreservingMap { V &operator[](const string &key) { if (!contains(key)) { auto v = V(); - insert(key, v); + insert(key, std::move(v)); } return map[map_idx[key]].second; } diff --git a/src/duckdb/src/include/duckdb/common/multi_file_list.hpp b/src/duckdb/src/include/duckdb/common/multi_file_list.hpp index 65ae8693..5adc321c 100644 --- a/src/duckdb/src/include/duckdb/common/multi_file_list.hpp +++ b/src/duckdb/src/include/duckdb/common/multi_file_list.hpp @@ -59,7 +59,8 @@ struct MultiFilePushdownInfo { idx_t table_index; const vector &column_names; - const vector &column_ids; + vector column_ids; + vector column_indexes; ExtraOperatorInfo &extra_info; }; diff --git a/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp b/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp index 5186eaae..364f8641 100644 --- a/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp +++ b/src/duckdb/src/include/duckdb/common/multi_file_reader.hpp @@ -93,6 +93,8 @@ struct MultiFileConstantEntry { struct MultiFileReaderData { //! The column ids to read from the file vector column_ids; + //! The column indexes to read from the file + vector column_indexes; //! The mapping of column id -> result column id //! The result chunk will be filled as follows: chunk.data[column_mapping[i]] = ReadColumn(column_ids[i]); vector column_mapping; @@ -132,11 +134,11 @@ struct MultiFileReader { //! Parse a Value containing 1 or more paths into a vector of paths. Note: no expansion is performed here DUCKDB_API virtual vector ParsePaths(const Value &input); //! Create a MultiFileList from a vector of paths. Any globs will be expanded using the default filesystem - DUCKDB_API virtual unique_ptr + DUCKDB_API virtual shared_ptr CreateFileList(ClientContext &context, const vector &paths, FileGlobOptions options = FileGlobOptions::DISALLOW_EMPTY); //! Shorthand for ParsePaths + CreateFileList - DUCKDB_API unique_ptr CreateFileList(ClientContext &context, const Value &input, + DUCKDB_API shared_ptr CreateFileList(ClientContext &context, const Value &input, FileGlobOptions options = FileGlobOptions::DISALLOW_EMPTY); //! Parse the named parameters of a multi-file reader @@ -167,21 +169,22 @@ struct MultiFileReader { InitializeGlobalState(ClientContext &context, const MultiFileReaderOptions &file_options, const MultiFileReaderBindData &bind_data, const MultiFileList &file_list, const vector &global_types, const vector &global_names, - const vector &global_column_ids); + const vector &global_column_ids); //! Finalize the bind phase of the multi-file reader after we know (1) the required (output) columns, and (2) the //! pushed down table filters DUCKDB_API virtual void FinalizeBind(const MultiFileReaderOptions &file_options, const MultiFileReaderBindData &options, const string &filename, const vector &local_names, const vector &global_types, - const vector &global_names, const vector &global_column_ids, - MultiFileReaderData &reader_data, ClientContext &context, - optional_ptr global_state); + const vector &global_names, + const vector &global_column_ids, MultiFileReaderData &reader_data, + ClientContext &context, optional_ptr global_state); //! Create all required mappings from the global types/names to the file-local types/names DUCKDB_API virtual void CreateMapping(const string &file_name, const vector &local_types, const vector &local_names, const vector &global_types, - const vector &global_names, const vector &global_column_ids, + const vector &global_names, + const vector &global_column_ids, optional_ptr filters, MultiFileReaderData &reader_data, const string &initial_file, const MultiFileReaderBindData &options, optional_ptr global_state); @@ -195,6 +198,13 @@ struct MultiFileReader { const MultiFileReaderData &reader_data, DataChunk &chunk, optional_ptr global_state); + //! Fetch the partition data for the current chunk + DUCKDB_API virtual void GetPartitionData(ClientContext &context, const MultiFileReaderBindData &bind_data, + const MultiFileReaderData &reader_data, + optional_ptr global_state, + const OperatorPartitionInfo &partition_info, + OperatorPartitionData &partition_data); + template MultiFileReaderBindData BindUnionReader(ClientContext &context, vector &return_types, vector &names, MultiFileList &files, RESULT_CLASS &result, @@ -241,7 +251,7 @@ struct MultiFileReader { template void InitializeReader(READER_CLASS &reader, const MultiFileReaderOptions &options, const MultiFileReaderBindData &bind_data, const vector &global_types, - const vector &global_names, const vector &global_column_ids, + const vector &global_names, const vector &global_column_ids, optional_ptr table_filters, const string &initial_file, ClientContext &context, optional_ptr global_state) { FinalizeBind(options, bind_data, reader.GetFileName(), reader.GetNames(), global_types, global_names, @@ -255,6 +265,11 @@ struct MultiFileReader { static void PruneReaders(BIND_DATA &data, MultiFileList &file_list) { unordered_set file_set; + // Avoid materializing the file list if there's nothing to prune + if (!data.initial_reader && data.union_readers.empty()) { + return; + } + for (const auto &file : file_list.Files()) { file_set.insert(file); } @@ -282,10 +297,15 @@ struct MultiFileReader { } } + //! Get partition info + DUCKDB_API virtual TablePartitionInfo GetPartitionInfo(ClientContext &context, + const MultiFileReaderBindData &bind_data, + TableFunctionPartitionInput &input); + protected: virtual void CreateNameMapping(const string &file_name, const vector &local_types, const vector &local_names, const vector &global_types, - const vector &global_names, const vector &global_column_ids, + const vector &global_names, const vector &global_column_ids, MultiFileReaderData &reader_data, const string &initial_file, optional_ptr global_state); diff --git a/src/duckdb/src/include/duckdb/common/opener_file_system.hpp b/src/duckdb/src/include/duckdb/common/opener_file_system.hpp index 2d35512b..216f393d 100644 --- a/src/duckdb/src/include/duckdb/common/opener_file_system.hpp +++ b/src/duckdb/src/include/duckdb/common/opener_file_system.hpp @@ -18,15 +18,14 @@ class OpenerFileSystem : public FileSystem { virtual FileSystem &GetFileSystem() const = 0; virtual optional_ptr GetOpener() const = 0; - void VerifyNoOpener(optional_ptr opener) { - if (opener) { - throw InternalException("OpenerFileSystem cannot take an opener - the opener is pushed automatically"); - } - } + void VerifyNoOpener(optional_ptr opener); + void VerifyCanAccessDirectory(const string &path); + void VerifyCanAccessFile(const string &path); unique_ptr OpenFile(const string &path, FileOpenFlags flags, optional_ptr opener = nullptr) override { VerifyNoOpener(opener); + VerifyCanAccessFile(path); return GetFileSystem().OpenFile(path, flags, GetOpener()); } @@ -66,26 +65,32 @@ class OpenerFileSystem : public FileSystem { bool DirectoryExists(const string &directory, optional_ptr opener) override { VerifyNoOpener(opener); + VerifyCanAccessDirectory(directory); return GetFileSystem().DirectoryExists(directory, GetOpener()); } void CreateDirectory(const string &directory, optional_ptr opener) override { VerifyNoOpener(opener); + VerifyCanAccessDirectory(directory); return GetFileSystem().CreateDirectory(directory, GetOpener()); } void RemoveDirectory(const string &directory, optional_ptr opener) override { VerifyNoOpener(opener); + VerifyCanAccessDirectory(directory); return GetFileSystem().RemoveDirectory(directory, GetOpener()); } bool ListFiles(const string &directory, const std::function &callback, FileOpener *opener = nullptr) override { VerifyNoOpener(opener); + VerifyCanAccessDirectory(directory); return GetFileSystem().ListFiles(directory, callback, GetOpener().get()); } void MoveFile(const string &source, const string &target, optional_ptr opener) override { VerifyNoOpener(opener); + VerifyCanAccessFile(source); + VerifyCanAccessFile(target); GetFileSystem().MoveFile(source, target, GetOpener()); } @@ -99,6 +104,7 @@ class OpenerFileSystem : public FileSystem { bool FileExists(const string &filename, optional_ptr opener) override { VerifyNoOpener(opener); + VerifyCanAccessFile(filename); return GetFileSystem().FileExists(filename, GetOpener()); } @@ -108,6 +114,7 @@ class OpenerFileSystem : public FileSystem { } void RemoveFile(const string &filename, optional_ptr opener) override { VerifyNoOpener(opener); + VerifyCanAccessFile(filename); GetFileSystem().RemoveFile(filename, GetOpener()); } @@ -117,6 +124,7 @@ class OpenerFileSystem : public FileSystem { vector Glob(const string &path, FileOpener *opener = nullptr) override { VerifyNoOpener(opener); + VerifyCanAccessFile(path); return GetFileSystem().Glob(path, GetOpener().get()); } @@ -143,6 +151,9 @@ class OpenerFileSystem : public FileSystem { vector ListSubSystems() override { return GetFileSystem().ListSubSystems(); } + +private: + void VerifyCanAccessFileInternal(const string &path, FileType type); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp b/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp index 3e4cb35e..d86b29d9 100644 --- a/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp +++ b/src/duckdb/src/include/duckdb/common/operator/cast_operators.hpp @@ -614,6 +614,22 @@ template <> DUCKDB_API bool TryCast::Operation(timestamp_t input, dtime_tz_t &result, bool strict); template <> DUCKDB_API bool TryCast::Operation(timestamp_t input, timestamp_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_sec_t input, timestamp_sec_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_t input, timestamp_sec_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_ms_t input, timestamp_ms_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_t input, timestamp_ms_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_ns_t input, timestamp_ns_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_t input, timestamp_ns_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_tz_t input, timestamp_tz_t &result, bool strict); +template <> +DUCKDB_API bool TryCast::Operation(timestamp_t input, timestamp_tz_t &result, bool strict); //===--------------------------------------------------------------------===// // Interval Casts diff --git a/src/duckdb/src/include/duckdb/common/optional_idx.hpp b/src/duckdb/src/include/duckdb/common/optional_idx.hpp index 7656fe6e..fc88f823 100644 --- a/src/duckdb/src/include/duckdb/common/optional_idx.hpp +++ b/src/duckdb/src/include/duckdb/common/optional_idx.hpp @@ -32,6 +32,10 @@ class optional_idx { return index != INVALID_INDEX; } + void SetInvalid() { + index = INVALID_INDEX; + } + idx_t GetIndex() const { if (index == INVALID_INDEX) { throw InternalException("Attempting to get the index of an optional_idx that is not set"); diff --git a/src/duckdb/src/include/duckdb/common/platform.hpp b/src/duckdb/src/include/duckdb/common/platform.hpp index 3166ff96..94eea304 100644 --- a/src/duckdb/src/include/duckdb/common/platform.hpp +++ b/src/duckdb/src/include/duckdb/common/platform.hpp @@ -48,9 +48,9 @@ std::string DuckDBPlatform() { // NOLINT: allow definition in header #ifdef __MINGW32__ postfix = "_mingw"; #endif -// this is used for the windows R builds which use a separate build environment +// this is used for the windows R builds which use `mingw` equivalent extensions #ifdef DUCKDB_PLATFORM_RTOOLS - postfix = "_rtools"; + postfix = "_mingw"; #endif return os + "_" + arch + postfix; } diff --git a/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp b/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp index aa5efc28..66b74ef7 100644 --- a/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp +++ b/src/duckdb/src/include/duckdb/common/radix_partitioning.hpp @@ -8,7 +8,7 @@ #pragma once -#include "duckdb/common/fast_mem.hpp" +#include "duckdb/common/bit_utils.hpp" #include "duckdb/common/types/column/partitioned_column_data.hpp" #include "duckdb/common/types/row/partitioned_tuple_data.hpp" @@ -30,15 +30,15 @@ struct RadixPartitioning { return idx_t(1) << radix_bits; } + template + static inline idx_t RadixBits(T n) { + return sizeof(T) * 8 - CountZeros::Leading(n); + } + //! Inverse of NumberOfPartitions, given a number of partitions, get the number of radix bits - static inline idx_t RadixBits(idx_t n_partitions) { + static inline idx_t RadixBitsOfPowerOfTwo(idx_t n_partitions) { D_ASSERT(IsPowerOfTwo(n_partitions)); - for (idx_t r = 0; r < sizeof(idx_t) * 8; r++) { - if (n_partitions == NumberOfPartitions(r)) { - return r; - } - } - throw InternalException("RadixPartitioning::RadixBits unable to find partition count!"); + return RadixBits(n_partitions) - 1; } //! Radix bits begin after uint16_t because these bits are used as salt in the aggregate HT @@ -132,9 +132,6 @@ class RadixPartitionedTupleData : public PartitionedTupleData { return RadixPartitioning::NumberOfPartitions(radix_bits) - 1; } - bool RepartitionReverseOrder() const override { - return true; - } void RepartitionFinalizeStates(PartitionedTupleData &old_partitioned_data, PartitionedTupleData &new_partitioned_data, PartitionedTupleDataAppendState &state, idx_t finished_partition_idx) const override; diff --git a/src/duckdb/src/include/duckdb/common/random_engine.hpp b/src/duckdb/src/include/duckdb/common/random_engine.hpp index 224a5a20..970db6ce 100644 --- a/src/duckdb/src/include/duckdb/common/random_engine.hpp +++ b/src/duckdb/src/include/duckdb/common/random_engine.hpp @@ -28,8 +28,12 @@ struct RandomEngine { //! Generate a random number between 0 and 1 double NextRandom(); + //! Generate a random number between 0 and 1, using 32-bits as a base + double NextRandom32(); + double NextRandom32(double min, double max); uint32_t NextRandomInteger(); uint32_t NextRandomInteger(uint32_t min, uint32_t max); + uint64_t NextRandomInteger64(); void SetSeed(uint32_t seed); diff --git a/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp b/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp index 2973c6b6..06ae00f4 100644 --- a/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp +++ b/src/duckdb/src/include/duckdb/common/row_operations/row_operations.hpp @@ -82,8 +82,6 @@ struct RowOperations { static void Gather(Vector &rows, const SelectionVector &row_sel, Vector &col, const SelectionVector &col_sel, const idx_t count, const RowLayout &layout, const idx_t col_no, const idx_t build_size = 0, data_ptr_t heap_ptr = nullptr); - //! Full Scan an entire columns - static void FullScanColumn(const TupleDataLayout &layout, Vector &rows, Vector &col, idx_t count, idx_t col_idx); //===--------------------------------------------------------------------===// // Comparison Operators diff --git a/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp b/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp index b360c3ea..9b70b173 100644 --- a/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp +++ b/src/duckdb/src/include/duckdb/common/serializer/buffered_file_writer.hpp @@ -43,7 +43,7 @@ class BufferedFileWriter : public WriteStream { //! Truncate the size to a previous size (given that size <= GetFileSize()) DUCKDB_API void Truncate(idx_t size); - DUCKDB_API idx_t GetTotalWritten(); + DUCKDB_API idx_t GetTotalWritten() const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp b/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp index a1c91b8e..5bde0f9a 100644 --- a/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp +++ b/src/duckdb/src/include/duckdb/common/serializer/serialization_traits.hpp @@ -32,6 +32,7 @@ using void_t = void; // Check for anything implementing a `void Serialize(Serializer &Serializer)` method template struct has_serialize : std::false_type {}; + template struct has_serialize< T, typename std::enable_if< diff --git a/src/duckdb/src/include/duckdb/common/string_util.hpp b/src/duckdb/src/include/duckdb/common/string_util.hpp index bf8c272d..49e4128b 100644 --- a/src/duckdb/src/include/duckdb/common/string_util.hpp +++ b/src/duckdb/src/include/duckdb/common/string_util.hpp @@ -86,6 +86,9 @@ class StringUtil { static bool CharacterIsAlpha(char c) { return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z'); } + static bool CharacterIsAlphaNumeric(char c) { + return CharacterIsAlpha(c) || CharacterIsDigit(c); + } static bool CharacterIsOperator(char c) { if (c == '_') { return false; @@ -124,6 +127,10 @@ class StringUtil { //! Returns true if the needle string exists in the haystack DUCKDB_API static bool Contains(const string &haystack, const string &needle); + DUCKDB_API static bool Contains(const string &haystack, const char &needle_char); + + //! Returns the position of needle string within the haystack + DUCKDB_API static optional_idx Find(const string &haystack, const string &needle); //! Returns true if the target string starts with the given prefix DUCKDB_API static bool StartsWith(string str, string prefix); @@ -137,6 +144,10 @@ class StringUtil { //! Split the input string based on newline char DUCKDB_API static vector Split(const string &str, char delimiter); + //! Split the input string, ignore delimiters within parentheses. Note: leading/trailing spaces are NOT stripped + DUCKDB_API static vector SplitWithParentheses(const string &str, char delimiter = ',', char par_open = '(', + char par_close = ')'); + //! Split the input string allong a quote. Note that any escaping is NOT supported. DUCKDB_API static vector SplitWithQuote(const string &str, char delimiter = ',', char quote = '"'); @@ -197,6 +208,7 @@ class StringUtil { DUCKDB_API static string Title(const string &str); DUCKDB_API static bool IsLower(const string &str); + DUCKDB_API static bool IsUpper(const string &str); //! Case insensitive hash DUCKDB_API static uint64_t CIHash(const string &str); @@ -289,13 +301,27 @@ class StringUtil { //! JSON method that constructs a { string: value } JSON map //! This is the inverse of ParseJSONMap //! NOTE: this method is not efficient - DUCKDB_API static string ToJSONMap(ExceptionType type, const string &message, - const unordered_map &map); + DUCKDB_API static string ExceptionToJSONMap(ExceptionType type, const string &message, + const unordered_map &map); + + DUCKDB_API static string ToJSONMap(const unordered_map &map); DUCKDB_API static string GetFileName(const string &file_path); DUCKDB_API static string GetFileExtension(const string &file_name); DUCKDB_API static string GetFileStem(const string &file_name); DUCKDB_API static string GetFilePath(const string &file_path); + + struct EnumStringLiteral { + uint32_t number; + const char *string; + }; + + DUCKDB_API static uint32_t StringToEnum(const EnumStringLiteral enum_list[], idx_t enum_count, + const char *enum_name, const char *str_value); + DUCKDB_API static const char *EnumToString(const EnumStringLiteral enum_list[], idx_t enum_count, + const char *enum_name, uint32_t enum_value); + DUCKDB_API static const uint8_t ASCII_TO_LOWER_MAP[]; + DUCKDB_API static const uint8_t ASCII_TO_UPPER_MAP[]; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/tree_renderer.hpp b/src/duckdb/src/include/duckdb/common/tree_renderer.hpp index 4e033740..981836b6 100644 --- a/src/duckdb/src/include/duckdb/common/tree_renderer.hpp +++ b/src/duckdb/src/include/duckdb/common/tree_renderer.hpp @@ -30,6 +30,8 @@ class TreeRenderer { virtual bool UsesRawKeyNames() { return false; } + virtual void Render(const ProfilingNode &op, std::ostream &ss) { + } }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/tree_renderer/graphviz_tree_renderer.hpp b/src/duckdb/src/include/duckdb/common/tree_renderer/graphviz_tree_renderer.hpp index 5f9cebf1..a4ed7f75 100644 --- a/src/duckdb/src/include/duckdb/common/tree_renderer/graphviz_tree_renderer.hpp +++ b/src/duckdb/src/include/duckdb/common/tree_renderer/graphviz_tree_renderer.hpp @@ -35,7 +35,7 @@ class GRAPHVIZTreeRenderer : public TreeRenderer { void Render(const LogicalOperator &op, std::ostream &ss); void Render(const PhysicalOperator &op, std::ostream &ss); - void Render(const ProfilingNode &op, std::ostream &ss); + void Render(const ProfilingNode &op, std::ostream &ss) override; void Render(const Pipeline &op, std::ostream &ss); void ToStreamInternal(RenderTree &root, std::ostream &ss) override; diff --git a/src/duckdb/src/include/duckdb/common/tree_renderer/html_tree_renderer.hpp b/src/duckdb/src/include/duckdb/common/tree_renderer/html_tree_renderer.hpp index 56cdb4b1..e5d038a2 100644 --- a/src/duckdb/src/include/duckdb/common/tree_renderer/html_tree_renderer.hpp +++ b/src/duckdb/src/include/duckdb/common/tree_renderer/html_tree_renderer.hpp @@ -35,7 +35,7 @@ class HTMLTreeRenderer : public TreeRenderer { void Render(const LogicalOperator &op, std::ostream &ss); void Render(const PhysicalOperator &op, std::ostream &ss); - void Render(const ProfilingNode &op, std::ostream &ss); + void Render(const ProfilingNode &op, std::ostream &ss) override; void Render(const Pipeline &op, std::ostream &ss); void ToStreamInternal(RenderTree &root, std::ostream &ss) override; diff --git a/src/duckdb/src/include/duckdb/common/tree_renderer/json_tree_renderer.hpp b/src/duckdb/src/include/duckdb/common/tree_renderer/json_tree_renderer.hpp index 13a5383e..15e7c503 100644 --- a/src/duckdb/src/include/duckdb/common/tree_renderer/json_tree_renderer.hpp +++ b/src/duckdb/src/include/duckdb/common/tree_renderer/json_tree_renderer.hpp @@ -35,7 +35,7 @@ class JSONTreeRenderer : public TreeRenderer { void Render(const LogicalOperator &op, std::ostream &ss); void Render(const PhysicalOperator &op, std::ostream &ss); - void Render(const ProfilingNode &op, std::ostream &ss); + void Render(const ProfilingNode &op, std::ostream &ss) override; void Render(const Pipeline &op, std::ostream &ss); void ToStreamInternal(RenderTree &root, std::ostream &ss) override; diff --git a/src/duckdb/src/include/duckdb/common/tree_renderer/text_tree_renderer.hpp b/src/duckdb/src/include/duckdb/common/tree_renderer/text_tree_renderer.hpp index fa560e65..b34144a3 100644 --- a/src/duckdb/src/include/duckdb/common/tree_renderer/text_tree_renderer.hpp +++ b/src/duckdb/src/include/duckdb/common/tree_renderer/text_tree_renderer.hpp @@ -84,7 +84,7 @@ class TextTreeRenderer : public TreeRenderer { void Render(const LogicalOperator &op, std::ostream &ss); void Render(const PhysicalOperator &op, std::ostream &ss); - void Render(const ProfilingNode &op, std::ostream &ss); + void Render(const ProfilingNode &op, std::ostream &ss) override; void Render(const Pipeline &op, std::ostream &ss); void ToStreamInternal(RenderTree &root, std::ostream &ss) override; diff --git a/src/duckdb/src/include/duckdb/common/types.hpp b/src/duckdb/src/include/duckdb/common/types.hpp index 6e85f35d..72a91501 100644 --- a/src/duckdb/src/include/duckdb/common/types.hpp +++ b/src/duckdb/src/include/duckdb/common/types.hpp @@ -338,12 +338,13 @@ struct LogicalType { DUCKDB_API static LogicalType NormalizeType(const LogicalType &type); - //! Gets the decimal properties of a numeric type. Fails if the type is not numeric. + //! Gets the decimal properties of a numeric type. Fails if the type is not numeric. DUCKDB_API bool GetDecimalProperties(uint8_t &width, uint8_t &scale) const; DUCKDB_API void Verify() const; DUCKDB_API bool IsValid() const; + DUCKDB_API bool IsComplete() const; private: diff --git a/src/duckdb/src/include/duckdb/common/types/bit.hpp b/src/duckdb/src/include/duckdb/common/types/bit.hpp index 5a1a8209..cbf59913 100644 --- a/src/duckdb/src/include/duckdb/common/types/bit.hpp +++ b/src/duckdb/src/include/duckdb/common/types/bit.hpp @@ -17,85 +17,88 @@ namespace duckdb { +using bitstring_t = duckdb::string_t; + //! The Bit class is a static class that holds helper functions for the BIT type. class Bit { public: //! Returns the number of bits in the bit string - DUCKDB_API static idx_t BitLength(string_t bits); + DUCKDB_API static idx_t BitLength(bitstring_t bits); //! Returns the number of set bits in the bit string - DUCKDB_API static idx_t BitCount(string_t bits); + DUCKDB_API static idx_t BitCount(bitstring_t bits); //! Returns the number of bytes in the bit string - DUCKDB_API static idx_t OctetLength(string_t bits); + DUCKDB_API static idx_t OctetLength(bitstring_t bits); //! Extracts the nth bit from bit string; the first (leftmost) bit is indexed 0 - DUCKDB_API static idx_t GetBit(string_t bit_string, idx_t n); + DUCKDB_API static idx_t GetBit(bitstring_t bit_string, idx_t n); //! Sets the nth bit in bit string to newvalue; the first (leftmost) bit is indexed 0 - DUCKDB_API static void SetBit(string_t &bit_string, idx_t n, idx_t new_value); + DUCKDB_API static void SetBit(bitstring_t &bit_string, idx_t n, idx_t new_value); //! Returns first starting index of the specified substring within bits, or zero if it's not present. - DUCKDB_API static idx_t BitPosition(string_t substring, string_t bits); + DUCKDB_API static idx_t BitPosition(bitstring_t substring, bitstring_t bits); //! Converts bits to a string, writing the output to the designated output string. //! The string needs to have space for at least GetStringSize(bits) bytes. - DUCKDB_API static void ToString(string_t bits, char *output); - DUCKDB_API static string ToString(string_t str); + DUCKDB_API static void ToString(bitstring_t bits, char *output); + DUCKDB_API static string ToString(bitstring_t bits); //! Returns the bit size of a string -> bit conversion DUCKDB_API static bool TryGetBitStringSize(string_t str, idx_t &result_size, string *error_message); //! Convert a string to a bit. This function should ONLY be called after calling GetBitSize, since it does NOT //! perform data validation. - DUCKDB_API static void ToBit(string_t str, string_t &output); + DUCKDB_API static void ToBit(string_t str, bitstring_t &output); DUCKDB_API static string ToBit(string_t str); //! output needs to have enough space allocated before calling this function (blob size + 1) - DUCKDB_API static void BlobToBit(string_t blob, string_t &output); + DUCKDB_API static void BlobToBit(string_t blob, bitstring_t &output); DUCKDB_API static string BlobToBit(string_t blob); //! output_str needs to have enough space allocated before calling this function (sizeof(T) + 1) template - static void NumericToBit(T numeric, string_t &output_str); + static void NumericToBit(T numeric, bitstring_t &output_str); template static string NumericToBit(T numeric); //! bit is expected to fit inside of output num (bit size <= sizeof(T) + 1) template - static void BitToNumeric(string_t bit, T &output_num); + static void BitToNumeric(bitstring_t bit, T &output_num); template - static T BitToNumeric(string_t bit); + static T BitToNumeric(bitstring_t bit); //! bit is expected to fit inside of output_blob (bit size = output_blob + 1) - static void BitToBlob(string_t bit, string_t &output_blob); + static void BitToBlob(bitstring_t bit, string_t &output_blob); - static string BitToBlob(string_t bit); + static string BitToBlob(bitstring_t bit); //! Creates a new bitstring of determined length - DUCKDB_API static void BitString(const string_t &input, const idx_t &len, string_t &result); - DUCKDB_API static void SetEmptyBitString(string_t &target, string_t &input); - DUCKDB_API static void SetEmptyBitString(string_t &target, idx_t len); + DUCKDB_API static void BitString(const string_t &input, idx_t len, bitstring_t &result); + DUCKDB_API static void ExtendBitString(const bitstring_t &input, idx_t bit_length, bitstring_t &result); + DUCKDB_API static void SetEmptyBitString(bitstring_t &target, string_t &input); + DUCKDB_API static void SetEmptyBitString(bitstring_t &target, idx_t len); DUCKDB_API static idx_t ComputeBitstringLen(idx_t len); - DUCKDB_API static void RightShift(const string_t &bit_string, const idx_t &shif, string_t &result); - DUCKDB_API static void LeftShift(const string_t &bit_string, const idx_t &shift, string_t &result); - DUCKDB_API static void BitwiseAnd(const string_t &rhs, const string_t &lhs, string_t &result); - DUCKDB_API static void BitwiseOr(const string_t &rhs, const string_t &lhs, string_t &result); - DUCKDB_API static void BitwiseXor(const string_t &rhs, const string_t &lhs, string_t &result); - DUCKDB_API static void BitwiseNot(const string_t &rhs, string_t &result); + DUCKDB_API static void RightShift(const bitstring_t &bit_string, idx_t shift, bitstring_t &result); + DUCKDB_API static void LeftShift(const bitstring_t &bit_string, idx_t shift, bitstring_t &result); + DUCKDB_API static void BitwiseAnd(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result); + DUCKDB_API static void BitwiseOr(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result); + DUCKDB_API static void BitwiseXor(const bitstring_t &rhs, const bitstring_t &lhs, bitstring_t &result); + DUCKDB_API static void BitwiseNot(const bitstring_t &rhs, bitstring_t &result); - DUCKDB_API static void Verify(const string_t &input); + DUCKDB_API static void Verify(const bitstring_t &input); private: - static void Finalize(string_t &str); - static idx_t GetBitInternal(string_t bit_string, idx_t n); - static void SetBitInternal(string_t &bit_string, idx_t n, idx_t new_value); + static void Finalize(bitstring_t &str); + static idx_t GetBitInternal(bitstring_t bit_string, idx_t n); + static void SetBitInternal(bitstring_t &bit_string, idx_t n, idx_t new_value); static idx_t GetBitIndex(idx_t n); - static uint8_t GetFirstByte(const string_t &str); + static uint8_t GetFirstByte(const bitstring_t &str); }; //===--------------------------------------------------------------------===// // Bit Template definitions //===--------------------------------------------------------------------===// template -void Bit::NumericToBit(T numeric, string_t &output_str) { +void Bit::NumericToBit(T numeric, bitstring_t &output_str) { D_ASSERT(output_str.GetSize() >= sizeof(T) + 1); auto output = output_str.GetDataWriteable(); @@ -113,20 +116,20 @@ template string Bit::NumericToBit(T numeric) { auto bit_len = sizeof(T) + 1; auto buffer = make_unsafe_uniq_array_uninitialized(bit_len); - string_t output_str(buffer.get(), UnsafeNumericCast(bit_len)); + bitstring_t output_str(buffer.get(), UnsafeNumericCast(bit_len)); Bit::NumericToBit(numeric, output_str); return output_str.GetString(); } template -T Bit::BitToNumeric(string_t bit) { +T Bit::BitToNumeric(bitstring_t bit) { T output; Bit::BitToNumeric(bit, output); return (output); } template -void Bit::BitToNumeric(string_t bit, T &output_num) { +void Bit::BitToNumeric(bitstring_t bit, T &output_num) { D_ASSERT(bit.GetSize() <= sizeof(T) + 1); output_num = 0; diff --git a/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp b/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp index dc49d2db..38a29532 100644 --- a/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp +++ b/src/duckdb/src/include/duckdb/common/types/column/column_data_allocator.hpp @@ -32,6 +32,7 @@ class ColumnDataAllocator { explicit ColumnDataAllocator(BufferManager &buffer_manager); ColumnDataAllocator(ClientContext &context, ColumnDataAllocatorType allocator_type); ColumnDataAllocator(ColumnDataAllocator &allocator); + ~ColumnDataAllocator(); //! Returns an allocator object to allocate with. This returns the allocator in IN_MEMORY_ALLOCATOR, and a buffer //! allocator in case of BUFFER_MANAGER_ALLOCATOR. @@ -61,6 +62,12 @@ class ColumnDataAllocator { idx_t AllocationSize() const { return allocated_size; } + //! Sets the partition index of this tuple data collection + void SetPartitionIndex(idx_t index) { + D_ASSERT(!partition_index.IsValid()); + D_ASSERT(blocks.empty() && allocated_data.empty()); + partition_index = index; + } public: void AllocateData(idx_t size, uint32_t &block_id, uint32_t &offset, ChunkManagementState *chunk_state); @@ -106,6 +113,8 @@ class ColumnDataAllocator { mutex lock; //! Total allocated size idx_t allocated_size = 0; + //! Partition index (optional, if partitioned) + optional_idx partition_index; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp b/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp index 1a747323..f02d4900 100644 --- a/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp +++ b/src/duckdb/src/include/duckdb/common/types/column/column_data_collection.hpp @@ -65,6 +65,8 @@ class ColumnDataCollection { idx_t SizeInBytes() const; //! The allocation size (in bytes) of this ColumnDataCollection - this property is cached idx_t AllocationSize() const; + //! Sets the partition index of this ColumnDataCollection + void SetPartitionIndex(idx_t index); //! Get the allocator DUCKDB_API Allocator &GetAllocator() const; @@ -141,10 +143,17 @@ class ColumnDataCollection { //! Obtains the next scan index to scan from bool NextScanIndex(ColumnDataScanState &state, idx_t &chunk_index, idx_t &segment_index, idx_t &row_index) const; + //! Obtains the previous scan index to scan from + bool PrevScanIndex(ColumnDataScanState &state, idx_t &chunk_index, idx_t &segment_index, idx_t &row_index) const; //! Scans at the indices (obtained from NextScanIndex) void ScanAtIndex(ColumnDataParallelScanState &state, ColumnDataLocalScanState &lstate, DataChunk &result, idx_t chunk_index, idx_t segment_index, idx_t row_index) const; + //! Seeks to the chunk _containing_ the row. Returns false if it is past the end. + //! Note that the returned chunk will likely not be aligned to the given row + //! but the scan state will provide the actual range + bool Seek(idx_t row_idx, ColumnDataScanState &state, DataChunk &result) const; + //! Initialize the column data collection void Initialize(vector types); @@ -178,6 +187,8 @@ class ColumnDataCollection { vector copy_functions; //! When the column data collection is marked as finished - new tuples can no longer be appended to it bool finished_append; + //! Partition index (optional, if partitioned) + optional_idx partition_index; }; //! The ColumnDataRowCollection represents a set of materialized rows, as obtained from the ColumnDataCollection @@ -190,8 +201,8 @@ class ColumnDataRowCollection { public: // container API - bool empty() const { // NOLINT: match stl API - return rows.empty(); + bool empty() const { // NOLINT: match stl API + return rows.empty(); // NOLINT } idx_t size() const { // NOLINT: match stl API return rows.size(); diff --git a/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_segment.hpp b/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_segment.hpp index 33dba6ad..76ba2b90 100644 --- a/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_segment.hpp +++ b/src/duckdb/src/include/duckdb/common/types/column/column_data_collection_segment.hpp @@ -137,7 +137,8 @@ class ColumnDataCollectionSegment { void Verify(); static idx_t GetDataSize(idx_t type_size); - static validity_t *GetValidityPointer(data_ptr_t base_ptr, idx_t type_size); + static validity_t *GetValidityPointerForWriting(data_ptr_t base_ptr, idx_t type_size); + static validity_t *GetValidityPointer(data_ptr_t base_ptr, idx_t type_size, idx_t count); private: idx_t ReadVectorInternal(ChunkManagementState &state, VectorDataIndex vector_index, Vector &result); diff --git a/src/duckdb/src/include/duckdb/common/types/conflict_manager.hpp b/src/duckdb/src/include/duckdb/common/types/conflict_manager.hpp index f9d71375..5d63365d 100644 --- a/src/duckdb/src/include/duckdb/common/types/conflict_manager.hpp +++ b/src/duckdb/src/include/duckdb/common/types/conflict_manager.hpp @@ -31,7 +31,6 @@ class ConflictManager { optional_ptr conflict_info = nullptr); public: - void SetIndexCount(idx_t count); // These methods return a boolean indicating whether we should throw or not bool AddMiss(idx_t chunk_index); bool AddHit(idx_t chunk_index, row_t row_id); @@ -45,6 +44,9 @@ class ConflictManager { const ConflictInfo &GetConflictInfo() const; void FinishLookup(); void SetMode(ConflictManagerMode mode); + void AddIndex(BoundIndex &index); + bool MatchedIndex(BoundIndex &index); + const unordered_set &MatchedIndexes() const; private: bool IsConflict(LookupResultType type); @@ -62,9 +64,9 @@ class ConflictManager { VerifyExistenceType lookup_type; idx_t input_size; optional_ptr conflict_info; - idx_t index_count; bool finalized = false; ManagedSelection conflicts; + unordered_set matched_indexes; unique_ptr row_ids; // Used to check if a given conflict is part of the conflict target or not unique_ptr> conflict_set; diff --git a/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp b/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp index 58f6aced..3369f5e0 100644 --- a/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp +++ b/src/duckdb/src/include/duckdb/common/types/data_chunk.hpp @@ -83,22 +83,19 @@ class DataChunk { //! Set the DataChunk to own the data of data chunk, destroying the other chunk in the process DUCKDB_API void Move(DataChunk &chunk); - //! Initializes the DataChunk with the specified types to an empty DataChunk - //! This will create one vector of the specified type for each LogicalType in the - //! types list. The vector will be referencing vector to the data owned by - //! the DataChunk. + //! Initializes a DataChunk with the given types and without any vector data allocation. + DUCKDB_API void InitializeEmpty(const vector &types); + + //! Initializes a DataChunk with the given types. Then, if the corresponding boolean in the initialize-vector is + //! true, it initializes the vector for that data type. + DUCKDB_API void Initialize(ClientContext &context, const vector &types, + idx_t capacity = STANDARD_VECTOR_SIZE); DUCKDB_API void Initialize(Allocator &allocator, const vector &types, idx_t capacity = STANDARD_VECTOR_SIZE); - DUCKDB_API void Initialize(ClientContext &context, const vector &types, + DUCKDB_API void Initialize(ClientContext &context, const vector &types, const vector &initialize, + idx_t capacity = STANDARD_VECTOR_SIZE); + DUCKDB_API void Initialize(Allocator &allocator, const vector &types, const vector &initialize, idx_t capacity = STANDARD_VECTOR_SIZE); - //! Initializes an empty DataChunk with the given types. The vectors will *not* have any data allocated for them. - DUCKDB_API void InitializeEmpty(const vector &types); - - DUCKDB_API void InitializeEmpty(vector::const_iterator begin, vector::const_iterator end); - DUCKDB_API void Initialize(Allocator &allocator, vector::const_iterator begin, - vector::const_iterator end, idx_t capacity = STANDARD_VECTOR_SIZE); - DUCKDB_API void Initialize(ClientContext &context, vector::const_iterator begin, - vector::const_iterator end, idx_t capacity = STANDARD_VECTOR_SIZE); //! Append the other DataChunk to this one. The column count and types of //! the two DataChunks have to match exactly. Throws an exception if there @@ -109,7 +106,7 @@ class DataChunk { //! Destroy all data and columns owned by this DataChunk DUCKDB_API void Destroy(); - //! Copies the data from this vector to another vector. + //! Copies the data from this chunk to another chunk. DUCKDB_API void Copy(DataChunk &other, idx_t offset = 0) const; DUCKDB_API void Copy(DataChunk &other, const SelectionVector &sel, const idx_t source_count, const idx_t offset = 0) const; diff --git a/src/duckdb/src/include/duckdb/common/types/date_lookup_cache.hpp b/src/duckdb/src/include/duckdb/common/types/date_lookup_cache.hpp index 044493ef..b276bbe3 100644 --- a/src/duckdb/src/include/duckdb/common/types/date_lookup_cache.hpp +++ b/src/duckdb/src/include/duckdb/common/types/date_lookup_cache.hpp @@ -30,7 +30,7 @@ class DateLookupCache { //! Extracts the component, or sets the validity mask to NULL if the date is infinite int64_t ExtractElement(date_t date, ValidityMask &mask, idx_t idx) const { - if (DUCKDB_UNLIKELY(date.days < CACHE_MIN_DATE || date.days > CACHE_MAX_DATE)) { + if (DUCKDB_UNLIKELY(date.days < CACHE_MIN_DATE || date.days >= CACHE_MAX_DATE)) { if (DUCKDB_UNLIKELY(!Value::IsFinite(date))) { mask.SetInvalid(idx); return 0; diff --git a/src/duckdb/src/include/duckdb/common/types/hugeint.hpp b/src/duckdb/src/include/duckdb/common/types/hugeint.hpp index a5c06338..328c2ce1 100644 --- a/src/duckdb/src/include/duckdb/common/types/hugeint.hpp +++ b/src/duckdb/src/include/duckdb/common/types/hugeint.hpp @@ -128,7 +128,6 @@ class Hugeint { static int Sign(hugeint_t n); static hugeint_t Abs(hugeint_t n); - // comparison operators // note that everywhere here we intentionally use bitwise ops // this is because they seem to be consistently much faster (benchmarked on a Macbook Pro) diff --git a/src/duckdb/src/include/duckdb/common/types/interval.hpp b/src/duckdb/src/include/duckdb/common/types/interval.hpp index d8a9672b..825000d5 100644 --- a/src/duckdb/src/include/duckdb/common/types/interval.hpp +++ b/src/duckdb/src/include/duckdb/common/types/interval.hpp @@ -27,6 +27,11 @@ struct interval_t { // NOLINT int64_t micros; inline void Normalize(int64_t &months, int64_t &days, int64_t µs) const; + + // Normalize to interval bounds. + inline static void Borrow(const int64_t msf, int64_t &lsf, int32_t &f, const int64_t scale); + inline interval_t Normalize() const; + inline bool operator==(const interval_t &right) const { // Quick equality check const auto &left = *this; @@ -165,19 +170,62 @@ class Interval { return left > right; } }; -void interval_t::Normalize(int64_t &months, int64_t &days, int64_t µs) const { - auto input = *this; - int64_t extra_months_d = input.days / Interval::DAYS_PER_MONTH; - int64_t extra_months_micros = input.micros / Interval::MICROS_PER_MONTH; - input.days -= UnsafeNumericCast(extra_months_d * Interval::DAYS_PER_MONTH); - input.micros -= extra_months_micros * Interval::MICROS_PER_MONTH; - int64_t extra_days_micros = input.micros / Interval::MICROS_PER_DAY; - input.micros -= extra_days_micros * Interval::MICROS_PER_DAY; +void interval_t::Normalize(int64_t &months, int64_t &days, int64_t µs) const { + auto &input = *this; - months = input.months + extra_months_d + extra_months_micros; - days = input.days + extra_days_micros; + // Carry left micros = input.micros; + int64_t carry_days = micros / Interval::MICROS_PER_DAY; + micros -= carry_days * Interval::MICROS_PER_DAY; + + days = input.days; + days += carry_days; + int64_t carry_months = days / Interval::DAYS_PER_MONTH; + days -= carry_months * Interval::DAYS_PER_MONTH; + + months = input.months; + months += carry_months; +} + +void interval_t::Borrow(const int64_t msf, int64_t &lsf, int32_t &f, const int64_t scale) { + if (msf > NumericLimits::Maximum()) { + f = NumericLimits::Maximum(); + lsf += (msf - f) * scale; + } else if (msf < NumericLimits::Minimum()) { + f = NumericLimits::Minimum(); + lsf += (msf - f) * scale; + } else { + f = UnsafeNumericCast(msf); + } +} + +interval_t interval_t::Normalize() const { + interval_t result; + + int64_t mm; + int64_t dd; + Normalize(mm, dd, result.micros); + + // Borrow right on overflow + Borrow(mm, dd, result.months, Interval::DAYS_PER_MONTH); + Borrow(dd, result.micros, result.days, Interval::MICROS_PER_DAY); + + return result; } } // namespace duckdb + +namespace std { +template <> +struct hash { + size_t operator()(const duckdb::interval_t &val) const { + int64_t months, days, micros; + val.Normalize(months, days, micros); + using std::hash; + + return hash {}(duckdb::UnsafeNumericCast(days)) ^ + hash {}(duckdb::UnsafeNumericCast(months)) ^ hash {}(micros); + } +}; +} // namespace std diff --git a/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp b/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp index 999c7218..878b1bfa 100644 --- a/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp +++ b/src/duckdb/src/include/duckdb/common/types/row/partitioned_tuple_data.hpp @@ -153,10 +153,6 @@ class PartitionedTupleData { return DConstants::INVALID_INDEX; } - //! Whether or not to iterate over the original partitions in reverse order when repartitioning (optional) - virtual bool RepartitionReverseOrder() const { - return false; - } //! Finalize states while repartitioning - useful for unpinning blocks that are no longer needed (optional) virtual void RepartitionFinalizeStates(PartitionedTupleData &old_partitioned_data, PartitionedTupleData &new_partitioned_data, diff --git a/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp b/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp index 840d4860..b68d3606 100644 --- a/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp +++ b/src/duckdb/src/include/duckdb/common/types/row/tuple_data_allocator.hpp @@ -67,6 +67,8 @@ class TupleDataAllocator { idx_t RowBlockCount() const; //! Number of heap blocks idx_t HeapBlockCount() const; + //! Sets the partition index of this tuple data allocator + void SetPartitionIndex(idx_t index); public: //! Builds out the chunks for next append, given the metadata in the append state @@ -113,6 +115,8 @@ class TupleDataAllocator { BufferManager &buffer_manager; //! The layout of the data const TupleDataLayout layout; + //! Partition index (optional, if partitioned) + optional_idx partition_index; //! Blocks storing the fixed-size rows unsafe_vector row_blocks; //! Blocks storing the variable-size data of the fixed-size rows (e.g., string, list) diff --git a/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp b/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp index b87b4002..71b70092 100644 --- a/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp +++ b/src/duckdb/src/include/duckdb/common/types/row/tuple_data_collection.hpp @@ -66,6 +66,8 @@ class TupleDataCollection { idx_t SizeInBytes() const; //! Unpins all held pins void Unpin(); + //! Sets the partition index of this tuple data collection + void SetPartitionIndex(idx_t index); //! Gets the scatter function for the given type static TupleDataScatterFunction GetScatterFunction(const LogicalType &type, bool within_collection = false); @@ -252,6 +254,8 @@ class TupleDataCollection { vector scatter_functions; //! The set of gather functions vector gather_functions; + //! Partition index (optional, if partitioned) + optional_idx partition_index; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/types/string_type.hpp b/src/duckdb/src/include/duckdb/common/types/string_type.hpp index 882e0625..0a88e332 100644 --- a/src/duckdb/src/include/duckdb/common/types/string_type.hpp +++ b/src/duckdb/src/include/duckdb/common/types/string_type.hpp @@ -13,6 +13,7 @@ #include "duckdb/common/helper.hpp" #include "duckdb/common/numeric_utils.hpp" #include "duckdb/common/limits.hpp" +#include "duckdb/common/types/hash.hpp" #include #include @@ -234,3 +235,12 @@ struct string_t { }; } // namespace duckdb + +namespace std { +template <> +struct hash { + size_t operator()(const duckdb::string_t &val) const { + return Hash(val); + } +}; +} // namespace std diff --git a/src/duckdb/src/include/duckdb/common/types/timestamp.hpp b/src/duckdb/src/include/duckdb/common/types/timestamp.hpp index 683d3965..45b28cf4 100644 --- a/src/duckdb/src/include/duckdb/common/types/timestamp.hpp +++ b/src/duckdb/src/include/duckdb/common/types/timestamp.hpp @@ -22,15 +22,15 @@ struct date_t; // NOLINT struct dtime_t; // NOLINT struct dtime_tz_t; // NOLINT -//! Type used to represent timestamps (seconds,microseconds,milliseconds or nanoseconds since 1970-01-01) +//! Type used to represent a TIMESTAMP. timestamp_t holds the microseconds since 1970-01-01. struct timestamp_t { // NOLINT int64_t value; timestamp_t() = default; - explicit inline constexpr timestamp_t(int64_t value_p) : value(value_p) { + explicit inline constexpr timestamp_t(int64_t micros) : value(micros) { } - inline timestamp_t &operator=(int64_t value_p) { - value = value_p; + inline timestamp_t &operator=(int64_t micros) { + value = micros; return *this; } @@ -79,19 +79,40 @@ struct timestamp_t { // NOLINT } // NOLINT }; -struct timestamp_tz_t : public timestamp_t { // NOLINT -}; -struct timestamp_ns_t : public timestamp_t { // NOLINT +//! Type used to represent TIMESTAMP_S. timestamp_sec_t holds the seconds since 1970-01-01. +struct timestamp_sec_t : public timestamp_t { // NOLINT + timestamp_sec_t() = default; + explicit inline constexpr timestamp_sec_t(int64_t seconds) : timestamp_t(seconds) { + } }; + +//! Type used to represent TIMESTAMP_MS. timestamp_ms_t holds the milliseconds since 1970-01-01. struct timestamp_ms_t : public timestamp_t { // NOLINT + timestamp_ms_t() = default; + explicit inline constexpr timestamp_ms_t(int64_t millis) : timestamp_t(millis) { + } }; -struct timestamp_sec_t : public timestamp_t { // NOLINT + +//! Type used to represent TIMESTAMP_NS. timestamp_ns_t holds the nanoseconds since 1970-01-01. +struct timestamp_ns_t : public timestamp_t { // NOLINT + timestamp_ns_t() = default; + explicit inline constexpr timestamp_ns_t(int64_t nanos) : timestamp_t(nanos) { + } +}; + +//! Type used to represent TIMESTAMPTZ. timestamp_tz_t holds the microseconds since 1970-01-01 (UTC). +//! It is physically the same as timestamp_t, both hold microseconds since epoch. +struct timestamp_tz_t : public timestamp_t { // NOLINT + timestamp_tz_t() = default; + explicit inline constexpr timestamp_tz_t(int64_t micros) : timestamp_t(micros) { + } + explicit inline constexpr timestamp_tz_t(timestamp_t ts) : timestamp_t(ts) { + } }; enum class TimestampCastResult : uint8_t { SUCCESS, ERROR_INCORRECT_FORMAT, ERROR_NON_UTC_TIMEZONE }; -//! The Timestamp class is a static class that holds helper functions for the Timestamp -//! type. +//! The static Timestamp class holds helper functions for the timestamp types. class Timestamp { public: // min timestamp is 290308-12-22 (BC) @@ -130,7 +151,7 @@ class Timestamp { c == '-'; } - //! Is the timestamp finite or infinite? + //! True, if the timestamp is finite, else false. static inline bool IsFinite(timestamp_t timestamp) { return timestamp != timestamp_t::infinity() && timestamp != timestamp_t::ninfinity(); } diff --git a/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp b/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp index 335feef7..b38df8dd 100644 --- a/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp +++ b/src/duckdb/src/include/duckdb/common/types/uhugeint.hpp @@ -76,7 +76,7 @@ class Uhugeint { template inline static uhugeint_t Divide(uhugeint_t lhs, uhugeint_t rhs) { - // division between two same-size unsigned intergers can only go wrong with division by zero + // division between two same-size unsigned integers can only go wrong with division by zero if (rhs == 0) { throw OutOfRangeException("Division of UHUGEINT by zero!"); } diff --git a/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp b/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp index 897488e5..665a7111 100644 --- a/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp +++ b/src/duckdb/src/include/duckdb/common/types/validity_mask.hpp @@ -66,11 +66,11 @@ struct TemplatedValidityMask { static constexpr const idx_t STANDARD_MASK_SIZE = STANDARD_ENTRY_COUNT * sizeof(validity_t); public: - inline TemplatedValidityMask() : validity_mask(nullptr), target_count(STANDARD_VECTOR_SIZE) { + inline TemplatedValidityMask() : validity_mask(nullptr), capacity(STANDARD_VECTOR_SIZE) { } - inline explicit TemplatedValidityMask(idx_t target_count) : validity_mask(nullptr), target_count(target_count) { + inline explicit TemplatedValidityMask(idx_t target_count) : validity_mask(nullptr), capacity(target_count) { } - inline explicit TemplatedValidityMask(V *ptr) : validity_mask(ptr), target_count(STANDARD_VECTOR_SIZE) { + inline explicit TemplatedValidityMask(V *ptr, idx_t capacity) : validity_mask(ptr), capacity(capacity) { } inline TemplatedValidityMask(const TemplatedValidityMask &original, idx_t count) { Copy(original, count); @@ -139,7 +139,7 @@ struct TemplatedValidityMask { inline void Reset(idx_t target_count_p = STANDARD_VECTOR_SIZE) { validity_mask = nullptr; validity_data.reset(); - target_count = target_count_p; + capacity = target_count_p; } static inline idx_t EntryCount(idx_t count) { @@ -155,6 +155,7 @@ struct TemplatedValidityMask { return validity_mask[entry_idx]; } static inline bool AllValid(V entry) { + // Check if all the tuples that are covered by this entry (usually 64) are valid return entry == ValidityBuffer::MAX_ENTRY; } static inline bool NoneValid(V entry) { @@ -190,6 +191,12 @@ struct TemplatedValidityMask { //! Returns true if a row is valid (i.e. not null), false otherwise inline bool RowIsValid(idx_t row_idx) const { +#ifdef DEBUG + if (row_idx >= capacity) { + throw InternalException("ValidityMask::RowIsValid - row_idx %d is out-of-range for mask with capacity %llu", + row_idx, capacity); + } +#endif if (!validity_mask) { return true; } @@ -206,6 +213,12 @@ struct TemplatedValidityMask { //! Marks the entry at the specified row index as valid (i.e. not-null) inline void SetValid(idx_t row_idx) { +#ifdef DEBUG + if (row_idx >= capacity) { + throw InternalException("ValidityMask::SetValid - row_idx %d is out-of-range for mask with capacity %llu", + row_idx, capacity); + } +#endif if (!validity_mask) { // if AllValid() we don't need to do anything // the row is already valid @@ -229,9 +242,14 @@ struct TemplatedValidityMask { //! Marks the entry at the specified row index as invalid (i.e. null) inline void SetInvalid(idx_t row_idx) { +#ifdef DEBUG + if (row_idx >= capacity) { + throw InternalException("ValidityMask::SetInvalid - row_idx %d is out-of-range for mask with capacity %llu", + row_idx, capacity); + } +#endif if (!validity_mask) { - D_ASSERT(row_idx <= target_count); - Initialize(target_count); + Initialize(capacity); } SetInvalidUnsafe(row_idx); } @@ -291,25 +309,26 @@ struct TemplatedValidityMask { } public: - inline void Initialize(validity_t *validity) { + inline void Initialize(validity_t *validity, idx_t new_capacity) { validity_data.reset(); validity_mask = validity; + capacity = new_capacity; } inline void Initialize(const TemplatedValidityMask &other) { validity_mask = other.validity_mask; validity_data = other.validity_data; - target_count = other.target_count; + capacity = other.capacity; } inline void Initialize(idx_t count) { - target_count = count; + capacity = count; validity_data = make_buffer(count); validity_mask = validity_data->owned_data.get(); } inline void Initialize() { - Initialize(target_count); + Initialize(capacity); } inline void Copy(const TemplatedValidityMask &other, idx_t count) { - target_count = count; + capacity = count; if (other.AllValid()) { validity_data = nullptr; validity_mask = nullptr; @@ -322,30 +341,30 @@ struct TemplatedValidityMask { protected: V *validity_mask; buffer_ptr validity_data; - // The size to initialize the validity mask to when/if the mask is lazily initialized - idx_t target_count; + idx_t capacity; }; struct ValidityMask : public TemplatedValidityMask { public: - inline ValidityMask() : TemplatedValidityMask(nullptr) { + inline ValidityMask() : TemplatedValidityMask(nullptr, STANDARD_VECTOR_SIZE) { } - inline explicit ValidityMask(idx_t target_count) : TemplatedValidityMask(target_count) { + inline explicit ValidityMask(idx_t capacity) : TemplatedValidityMask(capacity) { } - inline explicit ValidityMask(validity_t *ptr) : TemplatedValidityMask(ptr) { + inline explicit ValidityMask(validity_t *ptr, idx_t capacity) : TemplatedValidityMask(ptr, capacity) { } inline ValidityMask(const ValidityMask &original, idx_t count) : TemplatedValidityMask(original, count) { } public: - DUCKDB_API void Resize(idx_t old_size, idx_t new_size); - DUCKDB_API idx_t TargetCount() const; + DUCKDB_API void Resize(idx_t new_size); + DUCKDB_API idx_t Capacity() const; DUCKDB_API void SliceInPlace(const ValidityMask &other, idx_t target_offset, idx_t source_offset, idx_t count); DUCKDB_API void Slice(const ValidityMask &other, idx_t source_offset, idx_t count); DUCKDB_API void CopySel(const ValidityMask &other, const SelectionVector &sel, idx_t source_offset, idx_t target_offset, idx_t count); DUCKDB_API void Combine(const ValidityMask &other, idx_t count); DUCKDB_API string ToString(idx_t count) const; + DUCKDB_API string ToString() const; DUCKDB_API static bool IsAligned(idx_t count); @@ -365,11 +384,18 @@ struct ValidityArray { } inline void Initialize(idx_t count, bool initial = true) { - target_count = count; + capacity = count; validity_data = make_unsafe_uniq_array(count); validity_mask = validity_data.get(); memset(validity_mask, initial, sizeof(bool) * count); } + inline void InitializeEmpty(idx_t count) { + capacity = count; + } + + idx_t Capacity() const { + return capacity; + } //! RowIsValidUnsafe should only be used if AllValid() is false: it achieves the same as RowIsValid but skips a //! not-null check @@ -380,6 +406,12 @@ struct ValidityArray { //! Returns true if a row is valid (i.e. not null), false otherwise inline bool RowIsValid(idx_t row_idx) const { +#ifdef DEBUG + if (row_idx >= capacity) { + throw InternalException("ValidityData::RowIsValid - row_idx %d is out-of-range for mask with capacity %llu", + row_idx, capacity); + } +#endif if (!validity_mask) { return true; } @@ -394,6 +426,12 @@ struct ValidityArray { //! Marks the entry at the specified row index as valid (i.e. not-null) inline void SetValid(idx_t row_idx) { +#ifdef DEBUG + if (row_idx >= capacity) { + throw InternalException("ValidityData::SetValid - row_idx %d is out-of-range for mask with capacity %llu", + row_idx, capacity); + } +#endif if (!validity_mask) { // if AllValid() we don't need to do anything // the row is already valid @@ -405,7 +443,7 @@ struct ValidityArray { inline void Pack(ValidityMask &mask, const idx_t count) const { if (AllValid()) { - mask.Reset(); + mask.Reset(count); return; } mask.Initialize(count); @@ -434,9 +472,10 @@ struct ValidityArray { } } +private: bool *validity_mask = nullptr; unsafe_unique_array validity_data; - idx_t target_count = 0; + idx_t capacity = 0; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/types/value.hpp b/src/duckdb/src/include/duckdb/common/types/value.hpp index 7918fa8c..07954158 100644 --- a/src/duckdb/src/include/duckdb/common/types/value.hpp +++ b/src/duckdb/src/include/duckdb/common/types/value.hpp @@ -130,14 +130,18 @@ class Value { DUCKDB_API static Value TIMETZ(dtime_tz_t time); //! Create a time Value from a specified time DUCKDB_API static Value TIME(int32_t hour, int32_t min, int32_t sec, int32_t micros); - //! Create a timestamp Value from a specified date/time combination + //! Create a timestamp Value from a specified date/time combination. DUCKDB_API static Value TIMESTAMP(date_t date, dtime_t time); - //! Create a timestamp Value from a specified timestamp + //! Create a timestamp Value from a specified value. DUCKDB_API static Value TIMESTAMP(timestamp_t timestamp); - DUCKDB_API static Value TIMESTAMPNS(timestamp_t timestamp); - DUCKDB_API static Value TIMESTAMPMS(timestamp_t timestamp); - DUCKDB_API static Value TIMESTAMPSEC(timestamp_t timestamp); - DUCKDB_API static Value TIMESTAMPTZ(timestamp_t timestamp); + //! Create a timestamp_s Value from a specified value. + DUCKDB_API static Value TIMESTAMPSEC(timestamp_sec_t timestamp); + //! Create a timestamp_ms Value from a specified value. + DUCKDB_API static Value TIMESTAMPMS(timestamp_ms_t timestamp); + //! Create a timestamp_ns Value from a specified value. + DUCKDB_API static Value TIMESTAMPNS(timestamp_ns_t timestamp); + //! Create a timestamp_tz Value from a specified value. + DUCKDB_API static Value TIMESTAMPTZ(timestamp_tz_t timestamp); //! Create a timestamp Value from a specified timestamp in separate values DUCKDB_API static Value TIMESTAMP(int32_t year, int32_t month, int32_t day, int32_t hour, int32_t min, int32_t sec, int32_t micros); @@ -159,20 +163,13 @@ class Value { //! Create a struct value with given list of entries DUCKDB_API static Value STRUCT(child_list_t values); DUCKDB_API static Value STRUCT(const LogicalType &type, vector struct_values); - //! Create a list value with the given entries, list type is inferred from children - //! Cannot be called with an empty list, use either EMPTYLIST or LIST with a type instead - DUCKDB_API static Value LIST(vector values); //! Create a list value with the given entries DUCKDB_API static Value LIST(const LogicalType &child_type, vector values); - //! Create an empty list with the specified child-type - DUCKDB_API static Value EMPTYLIST(const LogicalType &child_type); - //! Create an array value with the given entries. Array type is inferred from children - //! Cannot be called with an empty list, use either EMPTYARRAY or ARRAY with a type instead - DUCKDB_API static Value ARRAY(vector values); + //! Create a list value with the given entries + //! The type of the first value determines the list type. The list cannot be empty. + DUCKDB_API static Value LIST(vector values); // Create an array value with the given entries DUCKDB_API static Value ARRAY(const LogicalType &type, vector values); - //! Create an empty array of the given type and size - DUCKDB_API static Value EMPTYARRAY(const LogicalType &type, uint32_t size); //! Create a map value with the given entries DUCKDB_API static Value MAP(const LogicalType &child_type, vector values); //! Create a map value with the given entries @@ -301,6 +298,11 @@ class Value { } DUCKDB_API void Print() const; +private: + void SerializeInternal(Serializer &serializer, bool serialize_type) const; + static void SerializeChildren(Serializer &serializer, const vector &children, + const LogicalType &parent_type); + private: //! The logical of the value LogicalType type_; // NOLINT @@ -329,6 +331,10 @@ class Value { dtime_t time; dtime_tz_t timetz; timestamp_t timestamp; + timestamp_sec_t timestamp_s; + timestamp_ms_t timestamp_ms; + timestamp_ns_t timestamp_ns; + timestamp_tz_t timestamp_tz; interval_t interval; } value_; // NOLINT @@ -412,6 +418,22 @@ struct TimestampValue { DUCKDB_API static timestamp_t Get(const Value &value); }; +struct TimestampSValue { + DUCKDB_API static timestamp_sec_t Get(const Value &value); +}; + +struct TimestampMSValue { + DUCKDB_API static timestamp_ms_t Get(const Value &value); +}; + +struct TimestampNSValue { + DUCKDB_API static timestamp_ns_t Get(const Value &value); +}; + +struct TimestampTZValue { + DUCKDB_API static timestamp_tz_t Get(const Value &value); +}; + struct IntervalValue { DUCKDB_API static interval_t Get(const Value &value); }; @@ -534,6 +556,14 @@ DUCKDB_API dtime_tz_t Value::GetValue() const; template <> DUCKDB_API timestamp_t Value::GetValue() const; template <> +DUCKDB_API timestamp_sec_t Value::GetValue() const; +template <> +DUCKDB_API timestamp_ms_t Value::GetValue() const; +template <> +DUCKDB_API timestamp_ns_t Value::GetValue() const; +template <> +DUCKDB_API timestamp_tz_t Value::GetValue() const; +template <> DUCKDB_API interval_t Value::GetValue() const; template <> DUCKDB_API Value Value::GetValue() const; @@ -577,6 +607,14 @@ DUCKDB_API dtime_tz_t Value::GetValueUnsafe() const; template <> DUCKDB_API timestamp_t Value::GetValueUnsafe() const; template <> +DUCKDB_API timestamp_sec_t Value::GetValueUnsafe() const; +template <> +DUCKDB_API timestamp_ms_t Value::GetValueUnsafe() const; +template <> +DUCKDB_API timestamp_ns_t Value::GetValueUnsafe() const; +template <> +DUCKDB_API timestamp_tz_t Value::GetValueUnsafe() const; +template <> DUCKDB_API interval_t Value::GetValueUnsafe() const; template <> @@ -592,5 +630,13 @@ template <> DUCKDB_API bool Value::IsFinite(date_t input); template <> DUCKDB_API bool Value::IsFinite(timestamp_t input); +template <> +DUCKDB_API bool Value::IsFinite(timestamp_sec_t input); +template <> +DUCKDB_API bool Value::IsFinite(timestamp_ms_t input); +template <> +DUCKDB_API bool Value::IsFinite(timestamp_ns_t input); +template <> +DUCKDB_API bool Value::IsFinite(timestamp_tz_t input); } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/common/types/vector.hpp b/src/duckdb/src/include/duckdb/common/types/vector.hpp index 7150a5d7..067582f4 100644 --- a/src/duckdb/src/include/duckdb/common/types/vector.hpp +++ b/src/duckdb/src/include/duckdb/common/types/vector.hpp @@ -144,6 +144,10 @@ class Vector { DUCKDB_API void Slice(const SelectionVector &sel, idx_t count); //! Slice the vector, keeping the result around in a cache or potentially using the cache instead of slicing DUCKDB_API void Slice(const SelectionVector &sel, idx_t count, SelCache &cache); + //! Turn this vector into a dictionary vector + DUCKDB_API void Dictionary(idx_t dictionary_size, const SelectionVector &sel, idx_t count); + //! Creates a reference to a dictionary of the other vector + DUCKDB_API void Dictionary(const Vector &dict, idx_t dictionary_size, const SelectionVector &sel, idx_t count); //! Creates the data of this vector with the specified type. Any data that //! is currently in the vector is destroyed. @@ -304,22 +308,44 @@ struct ConstantVector { }; struct DictionaryVector { - static inline const SelectionVector &SelVector(const Vector &vector) { + static void VerifyDictionary(const Vector &vector) { +#ifdef DUCKDB_DEBUG_NO_SAFETY D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR); +#else + if (vector.GetVectorType() != VectorType::DICTIONARY_VECTOR) { + throw InternalException( + "Operation requires a dictionary vector but a non-dictionary vector was encountered"); + } +#endif + } + static inline const SelectionVector &SelVector(const Vector &vector) { + VerifyDictionary(vector); return vector.buffer->Cast().GetSelVector(); } static inline SelectionVector &SelVector(Vector &vector) { - D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR); + VerifyDictionary(vector); return vector.buffer->Cast().GetSelVector(); } static inline const Vector &Child(const Vector &vector) { - D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR); + VerifyDictionary(vector); return vector.auxiliary->Cast().data; } static inline Vector &Child(Vector &vector) { - D_ASSERT(vector.GetVectorType() == VectorType::DICTIONARY_VECTOR); + VerifyDictionary(vector); return vector.auxiliary->Cast().data; } + static inline optional_idx DictionarySize(const Vector &vector) { + VerifyDictionary(vector); + return vector.buffer->Cast().GetDictionarySize(); + } + static inline const string &DictionaryId(const Vector &vector) { + VerifyDictionary(vector); + return vector.buffer->Cast().GetDictionaryId(); + } + static inline void SetDictionaryId(Vector &vector, string new_id) { + VerifyDictionary(vector); + vector.buffer->Cast().SetDictionaryId(std::move(new_id)); + } }; struct FlatVector { diff --git a/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp b/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp index 9221b896..00ee20c2 100644 --- a/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp +++ b/src/duckdb/src/include/duckdb/common/types/vector_buffer.hpp @@ -159,9 +159,24 @@ class DictionaryBuffer : public VectorBuffer { void SetSelVector(const SelectionVector &vector) { this->sel_vector.Initialize(vector); } + void SetDictionarySize(idx_t dict_size) { + dictionary_size = dict_size; + } + optional_idx GetDictionarySize() const { + return dictionary_size; + } + void SetDictionaryId(string id) { + dictionary_id = std::move(id); + } + const string &GetDictionaryId() const { + return dictionary_id; + } private: SelectionVector sel_vector; + optional_idx dictionary_size; + //! A unique identifier for the dictionary that can be used to check if two dictionaries are equivalent + string dictionary_id; }; class VectorStringBuffer : public VectorBuffer { diff --git a/src/duckdb/src/include/duckdb/common/types/vector_cache.hpp b/src/duckdb/src/include/duckdb/common/types/vector_cache.hpp index 333950ce..490bcd14 100644 --- a/src/duckdb/src/include/duckdb/common/types/vector_cache.hpp +++ b/src/duckdb/src/include/duckdb/common/types/vector_cache.hpp @@ -16,18 +16,20 @@ namespace duckdb { class Allocator; class Vector; -//! The VectorCache holds cached data that allows for re-use of the same memory by vectors +//! The VectorCache holds cached vector data. +//! It enables re-using the same memory for different vectors. class VectorCache { public: - //! Instantiate a vector cache with the given type and capacity - DUCKDB_API explicit VectorCache(Allocator &allocator, const LogicalType &type, - idx_t capacity = STANDARD_VECTOR_SIZE); + //! Instantiate an empty vector cache. + DUCKDB_API VectorCache(); + //! Instantiate a vector cache with the given type and capacity. + DUCKDB_API VectorCache(Allocator &allocator, const LogicalType &type, const idx_t capacity = STANDARD_VECTOR_SIZE); +public: buffer_ptr buffer; public: void ResetFromCache(Vector &result) const; - const LogicalType &GetType() const; }; diff --git a/src/duckdb/src/include/duckdb/common/uhugeint.hpp b/src/duckdb/src/include/duckdb/common/uhugeint.hpp index ba98df46..a579e37e 100644 --- a/src/duckdb/src/include/duckdb/common/uhugeint.hpp +++ b/src/duckdb/src/include/duckdb/common/uhugeint.hpp @@ -79,3 +79,13 @@ struct uhugeint_t { // NOLINT }; } // namespace duckdb + +namespace std { +template <> +struct hash { + size_t operator()(const duckdb::uhugeint_t &val) const { + using std::hash; + return hash {}(val.upper) ^ hash {}(val.lower); + } +}; +} // namespace std diff --git a/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp b/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp index 87895f7b..6abe7ff1 100644 --- a/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp +++ b/src/duckdb/src/include/duckdb/common/vector_operations/aggregate_executor.hpp @@ -31,6 +31,7 @@ using SubFrames = vector; class AggregateExecutor { private: +#ifndef DUCKDB_SMALLER_BINARY template static inline void NullaryFlatLoop(STATE_TYPE **__restrict states, AggregateInputData &aggr_input_data, idx_t count) { @@ -38,6 +39,7 @@ class AggregateExecutor { OP::template Operation(*states[i], aggr_input_data, i); } } +#endif template static inline void NullaryScatterLoop(STATE_TYPE **__restrict states, AggregateInputData &aggr_input_data, @@ -49,6 +51,7 @@ class AggregateExecutor { } } +#ifndef DUCKDB_SMALLER_BINARY template static inline void UnaryFlatLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data, STATE_TYPE **__restrict states, ValidityMask &mask, idx_t count) { @@ -88,6 +91,7 @@ class AggregateExecutor { } } } +#endif template static inline void UnaryScatterLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data, @@ -114,6 +118,7 @@ class AggregateExecutor { } } +#ifndef DUCKDB_SMALLER_BINARY template static inline void UnaryFlatUpdateLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data, STATE_TYPE *__restrict state, idx_t count, ValidityMask &mask) { @@ -144,6 +149,7 @@ class AggregateExecutor { } } } +#endif template static inline void UnaryUpdateLoop(const INPUT_TYPE *__restrict idata, AggregateInputData &aggr_input_data, @@ -230,9 +236,11 @@ class AggregateExecutor { if (states.GetVectorType() == VectorType::CONSTANT_VECTOR) { auto sdata = ConstantVector::GetData(states); OP::template ConstantOperation(**sdata, aggr_input_data, count); +#ifndef DUCKDB_SMALLER_BINARY } else if (states.GetVectorType() == VectorType::FLAT_VECTOR) { auto sdata = FlatVector::GetData(states); NullaryFlatLoop(sdata, aggr_input_data, count); +#endif } else { UnifiedVectorFormat sdata; states.ToUnifiedFormat(count, sdata); @@ -258,12 +266,14 @@ class AggregateExecutor { auto sdata = ConstantVector::GetData(states); AggregateUnaryInput input_data(aggr_input_data, ConstantVector::Validity(input)); OP::template ConstantOperation(**sdata, *idata, input_data, count); +#ifndef DUCKDB_SMALLER_BINARY } else if (input.GetVectorType() == VectorType::FLAT_VECTOR && states.GetVectorType() == VectorType::FLAT_VECTOR) { auto idata = FlatVector::GetData(input); auto sdata = FlatVector::GetData(states); UnaryFlatLoop(idata, aggr_input_data, sdata, FlatVector::Validity(input), count); +#endif } else { UnifiedVectorFormat idata, sdata; input.ToUnifiedFormat(count, idata); @@ -287,12 +297,14 @@ class AggregateExecutor { input_data, count); break; } +#ifndef DUCKDB_SMALLER_BINARY case VectorType::FLAT_VECTOR: { auto idata = FlatVector::GetData(input); UnaryFlatUpdateLoop(idata, aggr_input_data, (STATE_TYPE *)state, count, FlatVector::Validity(input)); break; } +#endif default: { UnifiedVectorFormat idata; input.ToUnifiedFormat(count, idata); @@ -387,19 +399,6 @@ class AggregateExecutor { } } - template - static void UnaryWindow(const Vector &input, const ValidityMask &ifilter, AggregateInputData &aggr_input_data, - data_ptr_t state_p, const SubFrames &frames, Vector &result, idx_t ridx, - const_data_ptr_t gstate_p) { - - auto idata = FlatVector::GetData(input); - const auto &ivalid = FlatVector::Validity(input); - auto &state = *reinterpret_cast(state_p); - auto gstate = reinterpret_cast(gstate_p); - OP::template Window(idata, ifilter, ivalid, aggr_input_data, state, frames, - result, ridx, gstate); - } - template static void IntersectFrames(const SubFrames &lefts, const SubFrames &rights, OP &op) { const auto cover_start = MinValue(rights[0].start, lefts[0].start); diff --git a/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp b/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp index 55c10bb2..57e669d5 100644 --- a/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp +++ b/src/duckdb/src/include/duckdb/common/vector_operations/binary_executor.hpp @@ -68,6 +68,7 @@ struct BinaryLambdaWrapperWithNulls { }; struct BinaryExecutor { +#ifndef DUCKDB_SMALLER_BINARY template static void ExecuteFlatLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata, @@ -121,6 +122,7 @@ struct BinaryExecutor { } } } +#endif template static void ExecuteConstant(Vector &left, Vector &right, Vector &result, FUNC fun) { @@ -138,6 +140,7 @@ struct BinaryExecutor { fun, *ldata, *rdata, ConstantVector::Validity(result), 0); } +#ifndef DUCKDB_SMALLER_BINARY template static void ExecuteFlat(Vector &left, Vector &right, Vector &result, idx_t count, FUNC fun) { @@ -182,6 +185,7 @@ struct BinaryExecutor { ExecuteFlatLoop( ldata, rdata, result_data, count, result_validity, fun); } +#endif template static void ExecuteGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata, @@ -232,6 +236,7 @@ struct BinaryExecutor { auto right_vector_type = right.GetVectorType(); if (left_vector_type == VectorType::CONSTANT_VECTOR && right_vector_type == VectorType::CONSTANT_VECTOR) { ExecuteConstant(left, right, result, fun); +#ifndef DUCKDB_SMALLER_BINARY } else if (left_vector_type == VectorType::FLAT_VECTOR && right_vector_type == VectorType::CONSTANT_VECTOR) { ExecuteFlat(left, right, result, count, fun); @@ -241,6 +246,7 @@ struct BinaryExecutor { } else if (left_vector_type == VectorType::FLAT_VECTOR && right_vector_type == VectorType::FLAT_VECTOR) { ExecuteFlat(left, right, result, count, fun); +#endif } else { ExecuteGeneric(left, right, result, count, fun); } @@ -299,6 +305,7 @@ struct BinaryExecutor { } } +#ifndef DUCKDB_SMALLER_BINARY template static inline idx_t SelectFlatLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata, @@ -417,14 +424,24 @@ struct BinaryExecutor { ldata, rdata, sel, count, combined_mask, true_sel, false_sel); } } +#endif +#ifndef DUCKDB_SMALLER_BINARY template +#else + template +#endif static inline idx_t SelectGenericLoop(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata, const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel, const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lvalidity, ValidityMask &rvalidity, SelectionVector *true_sel, SelectionVector *false_sel) { idx_t true_count = 0, false_count = 0; +#ifdef DUCKDB_SMALLER_BINARY + const bool HAS_TRUE_SEL = true_sel; + const bool HAS_FALSE_SEL = false_sel; + const bool NO_NULL = false; +#endif for (idx_t i = 0; i < count; i++) { auto result_idx = result_sel->get_index(i); auto lindex = lsel->get_index(i); @@ -446,6 +463,8 @@ struct BinaryExecutor { return count - false_count; } } + +#ifndef DUCKDB_SMALLER_BINARY template static inline idx_t SelectGenericLoopSelSwitch(const LEFT_TYPE *__restrict ldata, const RIGHT_TYPE *__restrict rdata, @@ -464,6 +483,7 @@ struct BinaryExecutor { ldata, rdata, lsel, rsel, result_sel, count, lvalidity, rvalidity, true_sel, false_sel); } } +#endif template static inline idx_t @@ -471,6 +491,7 @@ struct BinaryExecutor { const SelectionVector *__restrict lsel, const SelectionVector *__restrict rsel, const SelectionVector *__restrict result_sel, idx_t count, ValidityMask &lvalidity, ValidityMask &rvalidity, SelectionVector *true_sel, SelectionVector *false_sel) { +#ifndef DUCKDB_SMALLER_BINARY if (!lvalidity.AllValid() || !rvalidity.AllValid()) { return SelectGenericLoopSelSwitch( ldata, rdata, lsel, rsel, result_sel, count, lvalidity, rvalidity, true_sel, false_sel); @@ -478,6 +499,10 @@ struct BinaryExecutor { return SelectGenericLoopSelSwitch( ldata, rdata, lsel, rsel, result_sel, count, lvalidity, rvalidity, true_sel, false_sel); } +#else + return SelectGenericLoop(ldata, rdata, lsel, rsel, result_sel, count, lvalidity, + rvalidity, true_sel, false_sel); +#endif } template @@ -502,6 +527,7 @@ struct BinaryExecutor { if (left.GetVectorType() == VectorType::CONSTANT_VECTOR && right.GetVectorType() == VectorType::CONSTANT_VECTOR) { return SelectConstant(left, right, sel, count, true_sel, false_sel); +#ifndef DUCKDB_SMALLER_BINARY } else if (left.GetVectorType() == VectorType::CONSTANT_VECTOR && right.GetVectorType() == VectorType::FLAT_VECTOR) { return SelectFlat(left, right, sel, count, true_sel, false_sel); @@ -511,6 +537,7 @@ struct BinaryExecutor { } else if (left.GetVectorType() == VectorType::FLAT_VECTOR && right.GetVectorType() == VectorType::FLAT_VECTOR) { return SelectFlat(left, right, sel, count, true_sel, false_sel); +#endif } else { return SelectGeneric(left, right, sel, count, true_sel, false_sel); } diff --git a/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp b/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp index 9f29d741..38b5b624 100644 --- a/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp +++ b/src/duckdb/src/include/duckdb/common/vector_operations/unary_executor.hpp @@ -11,6 +11,7 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/types/vector.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/common/enums/function_errors.hpp" #include @@ -90,6 +91,7 @@ struct UnaryExecutor { } } +#ifndef DUCKDB_SMALLER_BINARY template static inline void ExecuteFlat(const INPUT_TYPE *__restrict ldata, RESULT_TYPE *__restrict result_data, idx_t count, ValidityMask &mask, ValidityMask &result_mask, void *dataptr, bool adds_nulls) { @@ -135,9 +137,11 @@ struct UnaryExecutor { } } } +#endif template - static inline void ExecuteStandard(Vector &input, Vector &result, idx_t count, void *dataptr, bool adds_nulls) { + static inline void ExecuteStandard(Vector &input, Vector &result, idx_t count, void *dataptr, bool adds_nulls, + FunctionErrors errors = FunctionErrors::CAN_THROW_ERROR) { switch (input.GetVectorType()) { case VectorType::CONSTANT_VECTOR: { result.SetVectorType(VectorType::CONSTANT_VECTOR); @@ -153,6 +157,7 @@ struct UnaryExecutor { } break; } +#ifndef DUCKDB_SMALLER_BINARY case VectorType::FLAT_VECTOR: { result.SetVectorType(VectorType::FLAT_VECTOR); auto result_data = FlatVector::GetData(result); @@ -162,6 +167,35 @@ struct UnaryExecutor { FlatVector::Validity(result), dataptr, adds_nulls); break; } + case VectorType::DICTIONARY_VECTOR: { + // dictionary vector - we can run the function ONLY on the dictionary in some cases + // we can only do this if the function does not throw errors + // we can execute the function on a value that is in the dictionary but that is not referenced + // if the function can throw errors - this will result in us (incorrectly) throwing an error + if (errors == FunctionErrors::CANNOT_ERROR) { + static constexpr idx_t DICTIONARY_THRESHOLD = 2; + auto dict_size = DictionaryVector::DictionarySize(input); + if (dict_size.IsValid() && dict_size.GetIndex() * DICTIONARY_THRESHOLD <= count) { + // we can operate directly on the dictionary if we have a dictionary size + // but this only makes sense if the dictionary size is smaller than the count by some factor + auto &dictionary_values = DictionaryVector::Child(input); + if (dictionary_values.GetVectorType() == VectorType::FLAT_VECTOR) { + // execute the function over the dictionary + auto result_data = FlatVector::GetData(result); + auto ldata = FlatVector::GetData(dictionary_values); + ExecuteFlat( + ldata, result_data, dict_size.GetIndex(), FlatVector::Validity(dictionary_values), + FlatVector::Validity(result), dataptr, adds_nulls); + // slice the result with the original offsets + auto &offsets = DictionaryVector::SelVector(input); + result.Dictionary(result, dict_size.GetIndex(), offsets, count); + break; + } + } + } + DUCKDB_EXPLICIT_FALLTHROUGH; + } +#endif default: { UnifiedVectorFormat vdata; input.ToUnifiedFormat(count, vdata); @@ -184,9 +218,10 @@ struct UnaryExecutor { } template > - static void Execute(Vector &input, Vector &result, idx_t count, FUNC fun) { - ExecuteStandard(input, result, count, - reinterpret_cast(&fun), false); + static void Execute(Vector &input, Vector &result, idx_t count, FUNC fun, + FunctionErrors errors = FunctionErrors::CAN_THROW_ERROR) { + ExecuteStandard( + input, result, count, reinterpret_cast(&fun), false, errors); } template diff --git a/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp b/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp index bd772fca..20219ea4 100644 --- a/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp +++ b/src/duckdb/src/include/duckdb/common/vector_operations/vector_operations.hpp @@ -129,7 +129,6 @@ struct VectorOperations { idx_t count, optional_ptr true_sel, optional_ptr false_sel, optional_ptr null_mask = nullptr); - // true := A > B with nulls being minimal static idx_t DistinctGreaterThanNullsFirst(Vector &left, Vector &right, optional_ptr sel, idx_t count, optional_ptr true_sel, diff --git a/src/duckdb/src/include/duckdb/common/windows_undefs.hpp b/src/duckdb/src/include/duckdb/common/windows_undefs.hpp index 680c2a43..c991f32b 100644 --- a/src/duckdb/src/include/duckdb/common/windows_undefs.hpp +++ b/src/duckdb/src/include/duckdb/common/windows_undefs.hpp @@ -6,7 +6,8 @@ // //===----------------------------------------------------------------------===// -#pragma once +// Do not add a header inclusion guard to this file. Otherwise these Win32 macros +// may get defined and stomp on DuckDB symbols #ifdef WIN32 diff --git a/src/duckdb/src/include/duckdb/execution/adaptive_filter.hpp b/src/duckdb/src/include/duckdb/execution/adaptive_filter.hpp index 82a6bd55..6aea5ab5 100644 --- a/src/duckdb/src/include/duckdb/execution/adaptive_filter.hpp +++ b/src/duckdb/src/include/duckdb/execution/adaptive_filter.hpp @@ -33,6 +33,8 @@ class AdaptiveFilter { void EndFilter(AdaptiveFilterState state); private: + bool disable_permutations = false; + //! used for adaptive expression reordering idx_t iteration_count = 0; idx_t swap_idx = 0; diff --git a/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp b/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp index 2b424152..14a86d64 100644 --- a/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp +++ b/src/duckdb/src/include/duckdb/execution/aggregate_hashtable.hpp @@ -57,6 +57,7 @@ class GroupedAggregateHashTable : public BaseAggregateHashTable { idx_t Capacity() const; //! Threshold at which to resize the HT idx_t ResizeThreshold() const; + static idx_t ResizeThreshold(idx_t capacity); //! Add the given data to the HT, computing the aggregates grouped by the //! data in the group chunk. When resize = true, aggregates will not be @@ -64,6 +65,9 @@ class GroupedAggregateHashTable : public BaseAggregateHashTable { idx_t AddChunk(DataChunk &groups, DataChunk &payload, const unsafe_vector &filter); idx_t AddChunk(DataChunk &groups, Vector &group_hashes, DataChunk &payload, const unsafe_vector &filter); idx_t AddChunk(DataChunk &groups, DataChunk &payload, AggregateType filter); + optional_idx TryAddCompressedGroups(DataChunk &groups, DataChunk &payload, const unsafe_vector &filter); + optional_idx TryAddDictionaryGroups(DataChunk &groups, DataChunk &payload, const unsafe_vector &filter); + optional_idx TryAddConstantGroups(DataChunk &groups, DataChunk &payload, const unsafe_vector &filter); //! Fetch the aggregates for specific groups from the HT and place them in the result void FetchAggregates(DataChunk &groups, DataChunk &result); @@ -87,6 +91,8 @@ class GroupedAggregateHashTable : public BaseAggregateHashTable { void ResetCount(); //! Set the radix bits for this HT void SetRadixBits(idx_t radix_bits); + //! Get the radix bits for this HT + idx_t GetRadixBits() const; //! Initializes the PartitionedTupleData void InitializePartitionedData(); @@ -101,6 +107,20 @@ class GroupedAggregateHashTable : public BaseAggregateHashTable { //! Efficiently matches groups RowMatcher row_matcher; + struct AggregateDictionaryState { + AggregateDictionaryState(); + + //! The current dictionary vector id (if any) + string dictionary_id; + DataChunk unique_values; + Vector hashes; + Vector new_dictionary_pointers; + SelectionVector unique_entries; + unique_ptr dictionary_addresses; + unsafe_unique_array found_entry; + idx_t capacity = 0; + }; + //! Append state struct AggregateHTAppendState { AggregateHTAppendState(); @@ -116,6 +136,7 @@ class GroupedAggregateHashTable : public BaseAggregateHashTable { Vector addresses; unsafe_unique_array group_data; DataChunk group_chunk; + AggregateDictionaryState dict_state; } state; //! The number of radix bits to partition by @@ -152,6 +173,8 @@ class GroupedAggregateHashTable : public BaseAggregateHashTable { //! Apply bitmask to get the entry in the HT inline idx_t ApplyBitMask(hash_t hash) const; + void UpdateAggregates(DataChunk &payload, const unsafe_vector &filter); + //! Does the actual group matching / creation idx_t FindOrCreateGroupsInternal(DataChunk &groups, Vector &group_hashes, Vector &addresses, SelectionVector &new_groups); diff --git a/src/duckdb/src/include/duckdb/execution/executor.hpp b/src/duckdb/src/include/duckdb/execution/executor.hpp index 287413ea..46315a98 100644 --- a/src/duckdb/src/include/duckdb/execution/executor.hpp +++ b/src/duckdb/src/include/duckdb/execution/executor.hpp @@ -13,7 +13,9 @@ #include "duckdb/common/mutex.hpp" #include "duckdb/common/pair.hpp" #include "duckdb/common/reference_map.hpp" +#include "duckdb/main/query_result.hpp" #include "duckdb/execution/task_error_manager.hpp" +#include "duckdb/execution/progress_data.hpp" #include "duckdb/parallel/pipeline.hpp" #include @@ -85,7 +87,7 @@ class Executor { void AddToBeRescheduled(shared_ptr &task); //! Returns the progress of the pipelines - bool GetPipelinesProgress(double ¤t_progress, uint64_t ¤t_cardinality, uint64_t &total_cardinality); + idx_t GetPipelinesProgress(ProgressData &progress); void CompletePipeline() { completed_pipelines++; diff --git a/src/duckdb/src/include/duckdb/execution/expression_executor.hpp b/src/duckdb/src/include/duckdb/execution/expression_executor.hpp index 80c380d6..7aeb3c2d 100644 --- a/src/duckdb/src/include/duckdb/execution/expression_executor.hpp +++ b/src/duckdb/src/include/duckdb/execution/expression_executor.hpp @@ -21,7 +21,6 @@ class ExecutionContext; //! ExpressionExecutor is responsible for executing a set of expressions and storing the result in a data chunk class ExpressionExecutor { friend class BoundIndex; - friend class CreateIndexLocalSinkState; public: DUCKDB_API explicit ExpressionExecutor(ClientContext &context); diff --git a/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp b/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp index c0802db2..780166fb 100644 --- a/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp +++ b/src/duckdb/src/include/duckdb/execution/expression_executor_state.hpp @@ -28,10 +28,11 @@ struct ExpressionState { vector> child_states; vector types; DataChunk intermediate_chunk; + vector initialize; public: - void AddChild(Expression *expr); - void Finalize(bool empty = false); + void AddChild(Expression &child_expr); + void Finalize(); Allocator &GetAllocator(); bool HasContext(); DUCKDB_API ClientContext &GetContext(); diff --git a/src/duckdb/src/include/duckdb/execution/ht_entry.hpp b/src/duckdb/src/include/duckdb/execution/ht_entry.hpp index d6ba0498..8be70f4e 100644 --- a/src/duckdb/src/include/duckdb/execution/ht_entry.hpp +++ b/src/duckdb/src/include/duckdb/execution/ht_entry.hpp @@ -13,6 +13,11 @@ namespace duckdb { +#if !defined(DISABLE_POINTER_SALT) && defined(__ANDROID__) +// Google, why does Android need 18446744 TB of address space? +#define DISABLE_POINTER_SALT +#endif + //! The ht_entry_t struct represents an individual entry within a hash table. /*! This struct is used by the JoinHashTable and AggregateHashTable to store entries within the hash table. It stores @@ -21,31 +26,38 @@ namespace duckdb { */ struct ht_entry_t { // NOLINT public: - //! Upper 16 bits are salt +#ifdef DISABLE_POINTER_SALT + //! No salt, all pointer + static constexpr const hash_t SALT_MASK = 0x0000000000000000; + static constexpr const hash_t POINTER_MASK = 0xFFFFFFFFFFFFFFFF; +#else + //! Upper 16 bits are salt, lower 48 bits are the pointer static constexpr const hash_t SALT_MASK = 0xFFFF000000000000; - //! Lower 48 bits are the pointer static constexpr const hash_t POINTER_MASK = 0x0000FFFFFFFFFFFF; +#endif - explicit inline ht_entry_t(hash_t value_p) noexcept : value(value_p) { + ht_entry_t() noexcept : value(0) { } - // Add a default constructor for 32-bit linux test case - ht_entry_t() noexcept : value(0) { + explicit ht_entry_t(hash_t value_p) noexcept : value(value_p) { } - inline bool IsOccupied() const { - return value != 0; + ht_entry_t(const hash_t &salt, const data_ptr_t &pointer) + : value(cast_pointer_to_uint64(pointer) | (salt & SALT_MASK)) { } - // Returns a pointer based on the stored value without checking cell occupancy. - // This can return a nullptr if the cell is not occupied. - inline data_ptr_t GetPointerOrNull() const { - return cast_uint64_to_pointer(value & POINTER_MASK); + inline bool IsOccupied() const { + return value != 0; } - // Returns a pointer based on the stored value if the cell is occupied + //! Returns a pointer based on the stored value (asserts if the cell is occupied) inline data_ptr_t GetPointer() const { D_ASSERT(IsOccupied()); + return GetPointerOrNull(); + } + + //! Returns a pointer based on the stored value + inline data_ptr_t GetPointerOrNull() const { return cast_uint64_to_pointer(value & POINTER_MASK); } @@ -59,15 +71,10 @@ struct ht_entry_t { // NOLINT } // Returns the salt, leaves upper salt bits intact, sets lower bits to all 1's - static inline hash_t ExtractSalt(hash_t hash) { + static inline hash_t ExtractSalt(const hash_t &hash) { return hash | POINTER_MASK; } - // Returns the salt, leaves upper salt bits intact, sets lower bits to all 0's - static inline hash_t ExtractSaltWithNulls(hash_t hash) { - return hash & SALT_MASK; - } - inline hash_t GetSalt() const { return ExtractSalt(value); } @@ -81,15 +88,6 @@ struct ht_entry_t { // NOLINT value = salt; } - static inline ht_entry_t GetDesiredEntry(const data_ptr_t &pointer, const hash_t &salt) { - auto desired = cast_pointer_to_uint64(pointer) | (salt & SALT_MASK); - return ht_entry_t(desired); - } - - static inline ht_entry_t GetEmptyEntry() { - return ht_entry_t(0); - } - private: hash_t value; }; diff --git a/src/duckdb/src/include/duckdb/execution/index/art/art.hpp b/src/duckdb/src/include/duckdb/execution/index/art/art.hpp index 076a9356..00299952 100644 --- a/src/duckdb/src/include/duckdb/execution/index/art/art.hpp +++ b/src/duckdb/src/include/duckdb/execution/index/art/art.hpp @@ -55,6 +55,9 @@ class ART : public BoundIndex { return std::move(art); } + //! Plan index construction. + static unique_ptr CreatePlan(PlanIndexInput &input); + //! Root of the tree. Node tree = Node(); //! Fixed-size allocators holding the ART nodes. diff --git a/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp b/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp index 9942bb81..520e2437 100644 --- a/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp +++ b/src/duckdb/src/include/duckdb/execution/index/fixed_size_allocator.hpp @@ -94,6 +94,10 @@ class FixedSizeAllocator { return total_segment_count; } + inline idx_t GetMaxSegmentsPerBuffer() const { + return available_segments_per_buffer; + } + //! Returns the upper bound of the available buffer IDs, i.e., upper_bound > max_buffer_id idx_t GetUpperBoundBufferId() const; //! Merge another FixedSizeAllocator into this allocator. Both must have the same segment size diff --git a/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp b/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp index b9c858a8..bf9b35d1 100644 --- a/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp +++ b/src/duckdb/src/include/duckdb/execution/index/fixed_size_buffer.hpp @@ -89,7 +89,7 @@ class FixedSizeBuffer { //! Pin a buffer (if not in-memory) void Pin(); //! Returns the first free offset in a bitmask - uint32_t GetOffset(const idx_t bitmask_count); + uint32_t GetOffset(const idx_t bitmask_count, const idx_t available_segments); //! Sets the allocation size, if dirty void SetAllocationSize(const idx_t available_segments, const idx_t segment_size, const idx_t bitmask_offset); @@ -102,7 +102,7 @@ class FixedSizeBuffer { private: //! Sets all uninitialized regions of a buffer in the respective partial block allocation void SetUninitializedRegions(PartialBlockForIndex &p_block_for_index, const idx_t segment_size, const idx_t offset, - const idx_t bitmask_offset); + const idx_t bitmask_offset, const idx_t available_segments); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/index/index_type.hpp b/src/duckdb/src/include/duckdb/execution/index/index_type.hpp index 3417b15e..52d779f3 100644 --- a/src/duckdb/src/include/duckdb/execution/index/index_type.hpp +++ b/src/duckdb/src/include/duckdb/execution/index/index_type.hpp @@ -18,6 +18,8 @@ namespace duckdb { class BoundIndex; +class PhysicalOperator; +class LogicalCreateIndex; enum class IndexConstraintType : uint8_t; class Expression; class TableIOManager; @@ -43,7 +45,19 @@ struct CreateIndexInput { options(options) {}; }; +struct PlanIndexInput { + ClientContext &context; + LogicalCreateIndex &op; + unique_ptr &table_scan; + + PlanIndexInput(ClientContext &context_p, LogicalCreateIndex &op_p, unique_ptr &table_scan_p) + : context(context_p), op(op_p), table_scan(table_scan_p) { + } +}; + typedef unique_ptr (*index_create_function_t)(CreateIndexInput &input); +typedef unique_ptr (*index_plan_function_t)(PlanIndexInput &input); + //! A index "type" class IndexType { public: @@ -51,7 +65,8 @@ class IndexType { string name; // Callbacks - index_create_function_t create_instance; + index_plan_function_t create_plan = nullptr; + index_create_function_t create_instance = nullptr; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp b/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp index add3a271..6f50793f 100644 --- a/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp +++ b/src/duckdb/src/include/duckdb/execution/join_hashtable.hpp @@ -82,6 +82,14 @@ class JoinHashTable { bool finished; bool is_null; + // it records the RHS pointers for the result chunk + Vector rhs_pointers; + // it records the LHS sel vector for the result chunk + SelectionVector lhs_sel_vector; + // these two variable records the last match results + idx_t last_match_count; + SelectionVector last_sel_vector; + explicit ScanStructure(JoinHashTable &ht, TupleDataChunkState &key_state); //! Get the next batch of data from the scan structure void Next(DataChunk &keys, DataChunk &left, DataChunk &result); @@ -114,33 +122,35 @@ class JoinHashTable { idx_t ScanInnerJoin(DataChunk &keys, SelectionVector &result_vector); + //! Update the data chunk compaction buffer + void UpdateCompactionBuffer(idx_t base_count, SelectionVector &result_vector, idx_t result_count); + public: void AdvancePointers(); void AdvancePointers(const SelectionVector &sel, idx_t sel_count); void GatherResult(Vector &result, const SelectionVector &result_vector, const SelectionVector &sel_vector, const idx_t count, const idx_t col_idx); void GatherResult(Vector &result, const SelectionVector &sel_vector, const idx_t count, const idx_t col_idx); + void GatherResult(Vector &result, const idx_t count, const idx_t col_idx); idx_t ResolvePredicates(DataChunk &keys, SelectionVector &match_sel, SelectionVector *no_match_sel); }; public: struct SharedState { - SharedState(); // The ptrs to the row to which a key should be inserted into during building // or matched against during probing Vector rhs_row_locations; + Vector salt_v; SelectionVector salt_match_sel; SelectionVector key_no_match_sel; }; struct ProbeState : SharedState { - ProbeState(); - Vector salt_v; Vector ht_offsets_v; Vector ht_offsets_dense_v; @@ -407,8 +417,8 @@ class JoinHashTable { //! Build HT for the next partitioned probe round bool PrepareExternalFinalize(const idx_t max_ht_size); //! Probe whatever we can, sink the rest into a thread-local HT - void ProbeAndSpill(ScanStructure &scan_structure, DataChunk &keys, TupleDataChunkState &key_state, - ProbeState &probe_state, DataChunk &payload, ProbeSpill &probe_spill, + void ProbeAndSpill(ScanStructure &scan_structure, DataChunk &probe_keys, TupleDataChunkState &key_state, + ProbeState &probe_state, DataChunk &probe_chunk, ProbeSpill &probe_spill, ProbeSpillLocalAppendState &spill_state, DataChunk &spill_chunk); private: diff --git a/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp index 9f04e1b9..195d1fb9 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_hash_aggregate.hpp @@ -93,7 +93,7 @@ class PhysicalHashAggregate : public PhysicalOperator { GlobalSourceState &gstate) const override; SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; - double GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; + ProgressData GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; bool IsSource() const override { return true; diff --git a/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_partitioned_aggregate.hpp b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_partitioned_aggregate.hpp new file mode 100644 index 00000000..071a82ed --- /dev/null +++ b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_partitioned_aggregate.hpp @@ -0,0 +1,70 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/execution/operator/aggregate/physical_partitioned_aggregate.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/execution/physical_operator.hpp" +#include "duckdb/planner/expression.hpp" +#include "duckdb/execution/operator/aggregate/grouped_aggregate_data.hpp" +#include "duckdb/parser/group_by_node.hpp" +#include "duckdb/execution/radix_partitioned_hashtable.hpp" +#include "duckdb/common/unordered_map.hpp" + +namespace duckdb { + +//! PhysicalPartitionedAggregate is an aggregate operator that can only perform aggregates on data that is partitioned +// by the grouping columns +class PhysicalPartitionedAggregate : public PhysicalOperator { +public: + static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::PARTITIONED_AGGREGATE; + +public: + PhysicalPartitionedAggregate(ClientContext &context, vector types, + vector> expressions, vector> groups, + vector partitions, idx_t estimated_cardinality); + + //! The partitions over which this is grouped + vector partitions; + //! The groups over which the aggregate is partitioned - note that this is only + vector> groups; + //! The aggregates that have to be computed + vector> aggregates; + +public: + // Source interface + SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; + unique_ptr GetGlobalSourceState(ClientContext &context) const override; + + bool IsSource() const override { + return true; + } + +public: + // Sink interface + SinkResultType Sink(ExecutionContext &context, DataChunk &chunk, OperatorSinkInput &input) const override; + SinkCombineResultType Combine(ExecutionContext &context, OperatorSinkCombineInput &input) const override; + SinkFinalizeType Finalize(Pipeline &pipeline, Event &event, ClientContext &context, + OperatorSinkFinalizeInput &input) const override; + SinkNextBatchType NextBatch(ExecutionContext &context, OperatorSinkNextBatchInput &input) const override; + + unique_ptr GetLocalSinkState(ExecutionContext &context) const override; + unique_ptr GetGlobalSinkState(ClientContext &context) const override; + + InsertionOrderPreservingMap ParamsToString() const override; + + OperatorPartitionInfo RequiredPartitionInfo() const override; + bool IsSink() const override { + return true; + } + + bool ParallelSink() const override { + return true; + } +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp index 0f393756..cd7d2a64 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_ungrouped_aggregate.hpp @@ -18,8 +18,7 @@ namespace duckdb { -//! PhysicalUngroupedAggregate is an aggregate operator that can only perform aggregates (1) without any groups, (2) -//! without any DISTINCT aggregates, and (3) when all aggregates are combineable +//! PhysicalUngroupedAggregate is an aggregate operator that can only perform aggregates without any groups class PhysicalUngroupedAggregate : public PhysicalOperator { public: static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::UNGROUPED_AGGREGATE; diff --git a/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp index b1fb6e9a..5a485bca 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/aggregate/physical_window.hpp @@ -37,8 +37,9 @@ class PhysicalWindow : public PhysicalOperator { GlobalSourceState &gstate) const override; unique_ptr GetGlobalSourceState(ClientContext &context) const override; SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; - idx_t GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, - LocalSourceState &lstate) const override; + OperatorPartitionData GetPartitionData(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, + LocalSourceState &lstate, + const OperatorPartitionInfo &partition_info) const override; bool IsSource() const override { return true; @@ -47,10 +48,10 @@ class PhysicalWindow : public PhysicalOperator { return true; } - bool SupportsBatchIndex() const override; + bool SupportsPartitioning(const OperatorPartitionInfo &partition_info) const override; OrderPreservationType SourceOrder() const override; - double GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const override; + ProgressData GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const override; public: // Sink interface diff --git a/src/duckdb/src/include/duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp b/src/duckdb/src/include/duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp index 0f18a169..cf1b13c5 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/aggregate/ungrouped_aggregate_state.hpp @@ -11,6 +11,7 @@ #include "duckdb/execution/expression_executor.hpp" #include "duckdb/function/aggregate_function.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" +#include "duckdb/execution/operator/aggregate/aggregate_object.hpp" namespace duckdb { struct DistinctAggregateData; @@ -56,7 +57,7 @@ struct GlobalUngroupedAggregateState { ArenaAllocator &CreateAllocator() const; void Combine(LocalUngroupedAggregateState &other); void CombineDistinct(LocalUngroupedAggregateState &other, DistinctAggregateData &distinct_data); - void Finalize(DataChunk &result); + void Finalize(DataChunk &result, idx_t column_offset = 0); }; struct LocalUngroupedAggregateState { @@ -72,4 +73,23 @@ struct LocalUngroupedAggregateState { void Sink(DataChunk &payload_chunk, idx_t payload_idx, idx_t aggr_idx); }; +struct UngroupedAggregateExecuteState { +public: + UngroupedAggregateExecuteState(ClientContext &context, const vector> &aggregates, + const vector &child_types); + + //! The set of aggregates + const vector> &aggregates; + //! The executor + ExpressionExecutor child_executor; + //! The payload chunk, containing all the Vectors for the aggregates + DataChunk aggregate_input_chunk; + //! Aggregate filter data set + AggregateFilterDataSet filter_set; + +public: + void Sink(LocalUngroupedAggregateState &state, DataChunk &input); + void Reset(); +}; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp index 8922fc7c..53d964ee 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/base_scanner.hpp @@ -21,13 +21,18 @@ class ScannerResult { public: ScannerResult(CSVStates &states, CSVStateMachine &state_machine, idx_t result_size); - //! Adds a Value to the result static inline void SetQuoted(ScannerResult &result, idx_t quoted_position) { if (!result.quoted) { result.quoted_position = quoted_position; } result.quoted = true; + result.unquoted = true; } + + static inline void SetUnquoted(ScannerResult &result) { + result.quoted = true; + } + static inline void SetEscaped(ScannerResult &result) { result.escaped = true; } @@ -44,8 +49,11 @@ class ScannerResult { //! Variable to keep information regarding quoted and escaped values bool quoted = false; + //! If the current quoted value is unquoted + bool unquoted = false; + //! If the current value has been escaped bool escaped = false; - //! Variable to keep track if we are in a comment row. Hence won't add it + //! Variable to keep track if we are in a comment row. Hence, won't add it bool comment = false; idx_t quoted_position = 0; @@ -73,7 +81,7 @@ class BaseScanner { virtual ~BaseScanner() = default; //! Returns true if the scanner is finished - bool FinishedFile(); + bool FinishedFile() const; //! Parses data into a output_chunk virtual ScannerResult &ParseChunk(); @@ -97,7 +105,7 @@ class BaseScanner { return iterator.pos; } - CSVStateMachine &GetStateMachine(); + CSVStateMachine &GetStateMachine() const; shared_ptr csv_file_scan; @@ -114,6 +122,8 @@ class BaseScanner { bool ever_quoted = false; + bool ever_escaped = false; + //! Shared pointer to the buffer_manager, this is shared across multiple scanners shared_ptr buffer_manager; @@ -122,6 +132,10 @@ class BaseScanner { static CSVIterator SkipCSVRows(shared_ptr buffer_manager, const shared_ptr &state_machine, idx_t rows_to_skip); + inline static bool ContainsZeroByte(uint64_t v) { + return (v - UINT64_C(0x0101010101010101)) & ~(v)&UINT64_C(0x8080808080808080); + } + protected: //! Boundaries of this scanner CSVIterator iterator; @@ -142,10 +156,6 @@ class BaseScanner { //! Initializes the scanner virtual void Initialize(); - inline static bool ContainsZeroByte(uint64_t v) { - return (v - UINT64_C(0x0101010101010101)) & ~(v)&UINT64_C(0x8080808080808080); - } - //! Process one chunk template void Process(T &result) { @@ -252,8 +262,16 @@ class BaseScanner { iterator.pos.buffer_pos++; } } break; + case CSVState::UNQUOTED: { + T::SetUnquoted(result); + iterator.pos.buffer_pos++; + break; + } case CSVState::ESCAPE: + case CSVState::UNQUOTED_ESCAPE: + case CSVState::ESCAPED_RETURN: T::SetEscaped(result); + ever_escaped = true; iterator.pos.buffer_pos++; break; case CSVState::STANDARD: { @@ -264,6 +282,7 @@ class BaseScanner { if (ContainsZeroByte((value ^ state_machine->transition_array.delimiter) & (value ^ state_machine->transition_array.new_line) & (value ^ state_machine->transition_array.carriage_return) & + (value ^ state_machine->transition_array.escape) & (value ^ state_machine->transition_array.comment))) { break; } @@ -313,6 +332,9 @@ class BaseScanner { //! Internal function for parse chunk template void ParseChunkInternal(T &result) { + if (iterator.done) { + return; + } if (!initialized) { Initialize(); initialized = true; diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp index 55b63532..8cecfe50 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/column_count_scanner.hpp @@ -41,7 +41,8 @@ class ColumnCountResult : public ScannerResult { bool error = false; idx_t result_position = 0; bool cur_line_starts_as_comment = false; - + //! How many rows fit a given column count + map rows_per_column_count; //! Adds a Value to the result static inline void AddValue(ColumnCountResult &result, idx_t buffer_pos); //! Adds a Row to the result @@ -57,6 +58,9 @@ class ColumnCountResult : public ScannerResult { static inline void SetComment(ColumnCountResult &result, idx_t buffer_pos); + //! Returns the column count + idx_t GetMostFrequentColumnCount() const; + inline void InternalAddRow(); }; diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp index 7b86f238..039c06ab 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer.hpp @@ -72,6 +72,9 @@ class CSVBuffer { char *Ptr() { return char_ptr_cast(handle.Ptr()); } + bool IsUnloaded() { + return block->IsUnloaded(); + } //! By default, we use CSV_BUFFER_SIZE to allocate each buffer //! TODO: Should benchmarks other values diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp index 396c60c9..6c967422 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp @@ -22,7 +22,9 @@ class CSVStateMachine; class CSVBufferManager { public: CSVBufferManager(ClientContext &context, const CSVReaderOptions &options, const string &file_path, - const idx_t file_idx, bool per_file_single_threaded = false); + const idx_t file_idx, bool per_file_single_threaded = false, + unique_ptr file_handle = nullptr); + //! Returns a buffer from a buffer id (starting from 0). If it's in the auto-detection then we cache new buffers //! Otherwise we remove them from the cache if they are already there, or just return them bypassing the cache. shared_ptr GetBuffer(const idx_t buffer_idx); @@ -35,15 +37,19 @@ class CSVBufferManager { void UnpinBuffer(const idx_t cache_idx); //! Returns the buffer size set for this CSV buffer manager - idx_t GetBufferSize(); + idx_t GetBufferSize() const; //! Returns the number of buffers in the cached_buffers cache - idx_t BufferCount(); + idx_t BufferCount() const; //! If this buffer manager is done. In the context of a buffer manager it means that it read all buffers at least //! once. - bool Done(); + bool Done() const; void ResetBufferManager(); - string GetFilePath(); + string GetFilePath() const; + + bool IsBlockUnloaded(idx_t block_idx); + + idx_t GetBytesRead() const; ClientContext &context; idx_t skip_rows = 0; diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp index 2c254e26..f7acbcb9 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_error.hpp @@ -68,7 +68,7 @@ class CSVError { static CSVError SniffingError(const CSVReaderOptions &options, const string &search_space); //! Produces an error message for a header sniffing error. static CSVError HeaderSniffingError(const CSVReaderOptions &options, const vector &best_header_row, - idx_t column_count, char delimiter); + idx_t column_count, const string &delimiter); //! Produces error messages for unterminated quoted values static CSVError UnterminatedQuotesError(const CSVReaderOptions &options, idx_t current_column, LinesPerBoundary error_info, string &csv_row, idx_t row_byte_position, @@ -135,6 +135,8 @@ class CSVErrorHandler { print_line = false; } + void SetIgnoreErrors(bool ignore_errors); + private: //! Private methods should always be locked by parent method. //! If we should print the line of an error diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp index 58aac7b5..c124bf09 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_handle.hpp @@ -12,28 +12,29 @@ #include "duckdb/common/mutex.hpp" #include "duckdb/common/helper.hpp" #include "duckdb/common/allocator.hpp" - +#include "duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp" namespace duckdb { class Allocator; class FileSystem; +struct CSVReaderOptions; -struct CSVFileHandle { +class CSVFileHandle { public: - CSVFileHandle(FileSystem &fs, Allocator &allocator, unique_ptr file_handle_p, const string &path_p, - FileCompressionType compression); + CSVFileHandle(DBConfig &config, unique_ptr file_handle_p, const string &path_p, + const CSVReaderOptions &options); mutex main_mutex; - bool CanSeek(); - void Seek(idx_t position); - bool OnDiskFile(); - bool IsPipe(); + bool CanSeek() const; + void Seek(idx_t position) const; + bool OnDiskFile() const; + bool IsPipe() const; void Reset(); - idx_t FileSize(); + idx_t FileSize() const; - bool FinishedReading(); + bool FinishedReading() const; idx_t Read(void *buffer, idx_t nr_bytes); @@ -43,14 +44,15 @@ struct CSVFileHandle { static unique_ptr OpenFileHandle(FileSystem &fs, Allocator &allocator, const string &path, FileCompressionType compression); - static unique_ptr OpenFile(FileSystem &fs, Allocator &allocator, const string &path, - FileCompressionType compression); + static unique_ptr OpenFile(DBConfig &config, FileSystem &fs, Allocator &allocator, + const string &path, const CSVReaderOptions &options); FileCompressionType compression_type; - double GetProgress(); + double GetProgress() const; private: unique_ptr file_handle; + CSVEncoder encoder; string path; bool can_seek = false; bool on_disk_file = false; diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp index 09c7b6a8..826ef217 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp @@ -42,11 +42,11 @@ class CSVFileScan { //! This means the options are alreadu set, and the buffer manager is already up and runinng. CSVFileScan(ClientContext &context, shared_ptr buffer_manager, shared_ptr state_machine, const CSVReaderOptions &options, - const ReadCSVData &bind_data, const vector &column_ids, CSVSchema &file_schema); + const ReadCSVData &bind_data, const vector &column_ids, CSVSchema &file_schema); //! Constructor for new CSV Files, we must initialize the buffer manager and the state machine //! Path to this file CSVFileScan(ClientContext &context, const string &file_path, const CSVReaderOptions &options, const idx_t file_idx, - const ReadCSVData &bind_data, const vector &column_ids, CSVSchema &file_schema, + const ReadCSVData &bind_data, const vector &column_ids, CSVSchema &file_schema, bool per_file_single_threaded); CSVFileScan(ClientContext &context, const string &file_name, const CSVReaderOptions &options); diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp index 52cd2687..90ef7943 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_option.hpp @@ -32,6 +32,7 @@ struct CSVOption { // NOLINT: work-around bug in clang-tidy } CSVOption(T value_p, bool set_by_user_p) : value(value_p), set_by_user(set_by_user_p) { } + CSVOption() {}; //! Sets value. @@ -77,7 +78,7 @@ struct CSVOption { // NOLINT: work-around bug in clang-tidy return value != other; } //! Returns CSV Option value - inline const T GetValue() const { + inline const T &GetValue() const { return value; } bool IsSetByUser() const { diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp index 8b7cca02..fc8288f8 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_reader_options.hpp @@ -24,7 +24,7 @@ struct DialectOptions { CSVStateMachineOptions state_machine_options; //! Expected number of columns idx_t num_cols = 0; - //! Whether or not the file has a header line + //! Whether the file has a header line CSVOption header = false; //! The date format to use (if any is specified) map> date_format = {{LogicalTypeId::DATE, {}}, @@ -35,6 +35,8 @@ struct DialectOptions { }; struct CSVReaderOptions { + CSVReaderOptions() {}; + CSVReaderOptions(CSVOption single_byte_delimiter, const CSVOption &multi_byte_delimiter); //===--------------------------------------------------------------------===// // CommonCSVOptions //===--------------------------------------------------------------------===// @@ -59,7 +61,7 @@ struct CSVReaderOptions { FileCompressionType compression = FileCompressionType::AUTO_DETECT; //! Option to convert quoted values to NULL values bool allow_quoted_nulls = true; - char comment; + char comment = '\0'; //===--------------------------------------------------------------------===// // CSVAutoOptions @@ -72,7 +74,7 @@ struct CSVReaderOptions { vector name_list; //! If the names and types were set by the columns parameter bool columns_set = false; - //! Types considered as candidates for auto detection ordered by descending specificity (~ from high to low) + //! Types considered as candidates for auto-detection ordered by descending specificity (~ from high to low) vector auto_type_candidates = {LogicalType::VARCHAR, LogicalType::DOUBLE, LogicalType::BIGINT, LogicalType::TIMESTAMP, LogicalType::DATE, LogicalType::TIME, LogicalType::BOOLEAN, LogicalType::SQLNULL}; @@ -86,7 +88,7 @@ struct CSVReaderOptions { //! Maximum CSV line size: specified because if we reach this amount, we likely have wrong delimiters (default: 2MB) //! note that this is the guaranteed line length that will succeed, longer lines may be accepted if slightly above idx_t maximum_line_size = 2097152; - //! Whether or not header names shall be normalized + //! Whether header names shall be normalized bool normalize_names = false; //! True, if column with that index must skip null check unordered_set force_not_null_names; @@ -94,11 +96,12 @@ struct CSVReaderOptions { vector force_not_null; //! Result size of sniffing phases static constexpr idx_t sniff_size = 2048; + //! Number of sample chunks used in auto-detection idx_t sample_size_chunks = 20480 / sniff_size; //! Consider all columns to be of type varchar bool all_varchar = false; - //! Whether or not to automatically detect dialect and datatypes + //! Whether to automatically detect dialect and datatypes bool auto_detect = true; //! The file path of the CSV file to read string file_path; @@ -108,11 +111,13 @@ struct CSVReaderOptions { idx_t buffer_size = CSVBuffer::CSV_BUFFER_SIZE; //! Decimal separator when reading as numeric string decimal_separator = "."; - //! Whether or not to pad rows that do not have enough columns with NULL values + //! Whether to pad rows that do not have enough columns with NULL values bool null_padding = false; //! If we should attempt to run parallel scanning over one file bool parallel = true; + //! By default, our encoding is always UTF-8 + string encoding = "utf-8"; //! User defined parameters for the csv function concatenated on a string string user_defined_parameters; @@ -128,7 +133,7 @@ struct CSVReaderOptions { //! The date format to use for writing (if any is specified) map write_date_format = {{LogicalTypeId::DATE, Value()}, {LogicalTypeId::TIMESTAMP, Value()}}; - //! Whether or not a type format is specified + //! Whether a type format is specified map has_format = {{LogicalTypeId::DATE, false}, {LogicalTypeId::TIMESTAMP, false}}; void Serialize(Serializer &serializer) const; @@ -143,7 +148,6 @@ struct CSVReaderOptions { void SetEscape(const string &escape); idx_t GetSkipRows() const; - void SetSkipRows(int64_t rows); void SetQuote(const string "e); @@ -158,6 +162,13 @@ struct CSVReaderOptions { string GetNewline() const; void SetNewline(const string &input); + + bool GetRFC4180() const; + void SetRFC4180(bool rfc4180); + + char GetSingleByteDelimiter() const; + string GetMultiByteDelimiter() const; + //! Set an option that is supported by both reading and writing functions, called by //! the SetReadOption and SetWriteOption methods bool SetBaseOption(const string &loption, const Value &value, bool write_option = false); @@ -168,8 +179,10 @@ struct CSVReaderOptions { void SetReadOption(const string &loption, const Value &value, vector &expected_names); void SetWriteOption(const string &loption, const Value &value); void SetDateFormat(LogicalTypeId type, const string &format, bool read_format); - void ToNamedParameters(named_parameter_map_t &out); - void FromNamedParameters(named_parameter_map_t &in, ClientContext &context); + void ToNamedParameters(named_parameter_map_t &out) const; + void FromNamedParameters(const named_parameter_map_t &in, ClientContext &context); + //! Verify options are not conflicting + void Verify(); string ToString(const string ¤t_file_path) const; //! If the type for column with idx i was manually set diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp index cf56f75f..3e7a90c9 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_schema.hpp @@ -9,6 +9,7 @@ #pragma once #include "duckdb/common/types.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp" namespace duckdb { //! Basic CSV Column Info @@ -21,15 +22,50 @@ struct CSVColumnInfo { //! Basic CSV Schema struct CSVSchema { - void Initialize(vector &names, vector &types, const string &file_path); + explicit CSVSchema(const bool empty = false) : empty(empty) { + } + + CSVSchema(vector &names, vector &types, const string &file_path, idx_t rows_read, + const bool empty = false); + + //! Initializes the schema based on names and types + void Initialize(const vector &names, const vector &types, const string &file_path); + + //! If the schema is empty bool Empty() const; - bool SchemasMatch(string &error_message, vector &names, vector &types, - const string &cur_file_path); + + //! If the columns of the schema match + bool MatchColumns(const CSVSchema &other) const; + + //! We merge two schemas by ensuring that the column types are compatible between both + void MergeSchemas(CSVSchema &other, bool null_padding); + + //! What's the file path for the file that generated this schema + string GetPath() const; + + //! How many columns we have in this schema + idx_t GetColumnCount() const; + + //! Check if two schemas match. + bool SchemasMatch(string &error_message, SnifferResult &sniffer_result, const string &cur_file_path, + bool is_minimal_sniffer) const; + + //! How many rows were read when generating this schema, this is only used for sniffing during the binder + idx_t GetRowsRead() const; + + //! Get a vector with names + vector GetNames() const; + + //! Get a vector with types + vector GetTypes() const; private: + //! If a type can be cast to another static bool CanWeCastIt(LogicalTypeId source, LogicalTypeId destination); vector columns; unordered_map name_idx_map; string file_path; + idx_t rows_read = 0; + bool empty = false; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state.hpp index ecb40e44..e88e897a 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state.hpp @@ -14,18 +14,25 @@ namespace duckdb { //! All States of CSV Parsing enum class CSVState : uint8_t { - STANDARD = 0, //! Regular unquoted field state - DELIMITER = 1, //! State after encountering a field separator (e.g., ;) - RECORD_SEPARATOR = 2, //! State after encountering a record separator (i.e., \n) - CARRIAGE_RETURN = 3, //! State after encountering a carriage return(i.e., \r) - QUOTED = 4, //! State when inside a quoted field - UNQUOTED = 5, //! State when leaving a quoted field - ESCAPE = 6, //! State when encountering an escape character (e.g., \) - INVALID = 7, //! Got to an Invalid State, this should error. - NOT_SET = 8, //! If the state is not set, usually the first state before getting the first character - QUOTED_NEW_LINE = 9, //! If we have a quoted newline - EMPTY_SPACE = 10, //! If we have empty spaces in the beginning and end of value - COMMENT = 11 //! If we are in a comment state, and hence have to skip the whole line + STANDARD = 0, //! Regular unquoted field state + DELIMITER = 1, //! State after encountering a field separator (e.g., ;) - This is always the last delimiter byte + //! ------------- Multi-byte Delimiter States (up to 4 bytes) ----------------------------------------------!// + DELIMITER_FIRST_BYTE = 2, //! State when encountering the first delimiter byte of a multi-byte delimiter + DELIMITER_SECOND_BYTE = 3, //! State when encountering the second delimiter byte of a multi-byte delimiter + DELIMITER_THIRD_BYTE = 4, //! State when encountering the third delimiter byte of a multi-byte delimiter + //! --------------------------------------------------------------------------------------------------------!// + RECORD_SEPARATOR = 5, //! State after encountering a record separator (i.e., \n) + CARRIAGE_RETURN = 6, //! State after encountering a carriage return(i.e., \r) + QUOTED = 7, //! State when inside a quoted field + UNQUOTED = 8, //! State when leaving a quoted field + ESCAPE = 9, //! State when encountering an escape character (e.g., \) + INVALID = 10, //! Got to an Invalid State, this should error. + NOT_SET = 11, //! If the state is not set, usually the first state before getting the first character + QUOTED_NEW_LINE = 12, //! If we have a quoted newline + EMPTY_SPACE = 13, //! If we have empty spaces in the beginning and end of value + COMMENT = 14, //! If we are in a comment state, and hence have to skip the whole line + STANDARD_NEWLINE = 15, //! State used for figuring out a new line. + UNQUOTED_ESCAPE = 16, //! State when encountering an escape character (e.g., \) in an unquoted field + ESCAPED_RETURN = 17 //! State when the carriage return is preceded by an escape character (for '\r\n' newline only) }; - } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp index 13933a18..234a2c4c 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine.hpp @@ -17,65 +17,93 @@ namespace duckdb { //! State of necessary CSV States to parse file //! Current, previous, and state before the previous struct CSVStates { - void Initialize() { - states[0] = CSVState::NOT_SET; - states[1] = CSVState::NOT_SET; + void Initialize(CSVState initial_state = CSVState::NOT_SET) { + states[0] = initial_state; + states[1] = initial_state; } - inline bool NewValue() { + inline bool NewValue() const { return states[1] == CSVState::DELIMITER; } - inline bool NewRow() { + inline bool NewRow() const { // It is a new row, if the previous state is not a record separator, and the current one is return states[0] != CSVState::RECORD_SEPARATOR && states[0] != CSVState::CARRIAGE_RETURN && (states[1] == CSVState::RECORD_SEPARATOR || states[1] == CSVState::CARRIAGE_RETURN); } - inline bool WasStandard() { + inline bool WasStandard() const { return states[0] == CSVState::STANDARD; } - inline bool EmptyLastValue() { + inline bool EmptyLastValue() const { // It is a new row, if the previous state is not a record separator, and the current one is - return states[0] == CSVState::DELIMITER && - (states[1] == CSVState::RECORD_SEPARATOR || states[1] == CSVState::CARRIAGE_RETURN || - states[1] == CSVState::DELIMITER); + return (states[0] == CSVState::DELIMITER && + (states[1] == CSVState::RECORD_SEPARATOR || states[1] == CSVState::CARRIAGE_RETURN || + states[1] == CSVState::DELIMITER)) || + (states[0] == CSVState::STANDARD && states[1] == CSVState::DELIMITER); } - inline bool EmptyLine() { + inline bool EmptyLine() const { return (states[1] == CSVState::CARRIAGE_RETURN || states[1] == CSVState::RECORD_SEPARATOR) && (states[0] == CSVState::RECORD_SEPARATOR || states[0] == CSVState::NOT_SET); } - inline bool IsNotSet() { + inline bool IsDelimiterBytes() const { + return states[0] == CSVState::DELIMITER_FIRST_BYTE || states[0] == CSVState::DELIMITER_SECOND_BYTE || + states[0] == CSVState::DELIMITER_THIRD_BYTE; + } + + inline bool IsDelimiter() const { + return states[1] == CSVState::DELIMITER; + } + + inline bool IsNotSet() const { return states[1] == CSVState::NOT_SET; } - inline bool IsComment() { + inline bool IsComment() const { return states[1] == CSVState::COMMENT; } - inline bool IsCurrentNewRow() { + inline bool IsCurrentNewRow() const { return states[1] == CSVState::RECORD_SEPARATOR || states[1] == CSVState::CARRIAGE_RETURN; } - inline bool IsCarriageReturn() { + inline bool IsCarriageReturn() const { return states[1] == CSVState::CARRIAGE_RETURN; } - inline bool IsInvalid() { + inline bool IsInvalid() const { return states[1] == CSVState::INVALID; } - inline bool IsQuoted() { + inline bool IsQuoted() const { return states[0] == CSVState::QUOTED; } - inline bool IsEscaped() { - return states[1] == CSVState::ESCAPE || (states[0] == CSVState::UNQUOTED && states[1] == CSVState::QUOTED); - } - inline bool IsQuotedCurrent() { + inline bool IsUnquoted() const { + return states[0] == CSVState::UNQUOTED; + } + inline bool IsEscaped() const { + switch (states[1]) { + case CSVState::ESCAPE: + case CSVState::UNQUOTED_ESCAPE: + case CSVState::ESCAPED_RETURN: + return true; + case CSVState::QUOTED: + return states[0] == CSVState::UNQUOTED; + default: + return false; + } + } + inline bool IsQuotedCurrent() const { return states[1] == CSVState::QUOTED || states[1] == CSVState::QUOTED_NEW_LINE; } + inline bool IsState(const CSVState state) const { + return states[1] == state; + } + inline bool WasState(const CSVState state) const { + return states[0] == state; + } CSVState states[2]; }; @@ -98,7 +126,7 @@ class CSVStateMachine { states.states[1] = transition_array[static_cast(current_char)][static_cast(states.states[1])]; } - void Print() { + void Print() const { std::cout << "State Machine Options" << '\n'; std::cout << "Delim: " << state_machine_options.delimiter.GetValue() << '\n'; std::cout << "Quote: " << state_machine_options.quote.GetValue() << '\n'; diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp index decf46d4..fdbafac0 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_state_machine_cache.hpp @@ -19,7 +19,7 @@ namespace duckdb { //! Class to wrap the state machine matrix class StateMachine { public: - static constexpr uint32_t NUM_STATES = 13; + static constexpr uint32_t NUM_STATES = 18; static constexpr uint32_t NUM_TRANSITIONS = 256; CSVState state_machine[NUM_TRANSITIONS][NUM_STATES]; //! Transitions where we might skip processing @@ -37,11 +37,11 @@ class StateMachine { uint64_t escape = 0; uint64_t comment = 0; - const CSVState *operator[](idx_t i) const { + const CSVState *operator[](const idx_t i) const { return state_machine[i]; } - CSVState *operator[](idx_t i) { + CSVState *operator[](const idx_t i) { return state_machine[i]; } }; @@ -49,7 +49,7 @@ class StateMachine { //! Hash function used in out state machine cache, it hashes and combines all options used to generate a state machine struct HashCSVStateMachineConfig { size_t operator()(CSVStateMachineOptions const &config) const noexcept { - auto h_delimiter = Hash(config.delimiter.GetValue()); + auto h_delimiter = Hash(config.delimiter.GetValue().c_str()); auto h_quote = Hash(config.quote.GetValue()); auto h_escape = Hash(config.escape.GetValue()); auto h_newline = Hash(static_cast(config.new_line.GetValue())); @@ -60,7 +60,7 @@ struct HashCSVStateMachineConfig { //! The CSVStateMachineCache caches state machines, although small ~2kb, the actual creation of multiple State Machines //! can become a bottleneck on sniffing, when reading very small csv files. -//! Hence the cache stores State Machines based on their different delimiter|quote|escape options. +//! Hence, the cache stores State Machines based on their different delimiter|quote|escape options. class CSVStateMachineCache : public ObjectCacheEntry { public: CSVStateMachineCache(); @@ -85,7 +85,7 @@ class CSVStateMachineCache : public ObjectCacheEntry { void Insert(const CSVStateMachineOptions &state_machine_options); //! Cache on delimiter|quote|escape|newline unordered_map state_machine_cache; - //! Default value for options used to intialize CSV State Machine Cache + //! Default value for options used to initialize CSV State Machine Cache //! Because the state machine cache can be accessed in Parallel we need a mutex. mutex main_mutex; diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_validator.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_validator.hpp new file mode 100644 index 00000000..20d03170 --- /dev/null +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_validator.hpp @@ -0,0 +1,58 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/execution/operator/csv_scanner/csv_validator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/map.hpp" +#include "duckdb/common/typedefs.hpp" +#include "duckdb/common/string.hpp" +#include "duckdb/common/vector.hpp" + +namespace duckdb { + +//! Information used to validate +struct ValidatorLine { + ValidatorLine(idx_t start_pos_p, idx_t end_pos_p) : start_pos(start_pos_p), end_pos(end_pos_p) { + } + const idx_t start_pos; + const idx_t end_pos; +}; + +struct ThreadLines { + ThreadLines() {}; + //! Validate everything is as it should be, returns true if it's all good, false o.w. + void Verify() const; + + void Insert(idx_t thread, ValidatorLine line_info); + + string Print() const; + +private: + map thread_lines; + //! We allow up to 2 bytes of error margin (basically \r\n) + static constexpr idx_t error_margin = 2; +}; + +//! The validator works by double-checking that threads started and ended in the right positions +struct CSVValidator { + CSVValidator() { + } + //! Validate that all files are good + void Verify() const; + + //! Inserts line_info to a given thread index of a given file. + void Insert(idx_t file_idx, idx_t thread, ValidatorLine line_info); + + string Print(idx_t file_idx) const; + +private: + //! Per file thread lines. + vector per_file_thread_lines; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp new file mode 100644 index 00000000..764d9694 --- /dev/null +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp @@ -0,0 +1,62 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/execution/operator/csv_scanner/encode/csv_encoder.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/typedefs.hpp" +#include "duckdb/common/file_system.hpp" +#include "duckdb/function/encoding_function.hpp" + +namespace duckdb { + +struct DBConfig; + +//! Struct that holds encoder buffers +struct CSVEncoderBuffer { + CSVEncoderBuffer() : encoded_buffer_size(0) {}; + void Initialize(idx_t encoded_buffer_size); + + char *Ptr() const; + + idx_t GetCapacity() const; + + idx_t GetSize() const; + + void SetSize(const idx_t buffer_size); + + bool HasDataToRead() const; + + void Reset(); + idx_t cur_pos = 0; + //! The actual encoded buffer size, from the last file_handle read. + idx_t actual_encoded_buffer_size = 0; + +private: + //! The encoded buffer, we only have one per file, so we cache it and make sure to pass over unused bytes. + std::unique_ptr encoded_buffer; + //! The encoded buffer size is defined as buffer_size/GetRatio() + idx_t encoded_buffer_size; +}; + +class CSVEncoder { +public: + //! Constructor, basically takes an encoding and the output buffer size + CSVEncoder(DBConfig &config, const string &encoding_name, idx_t buffer_size); + //! Main encode function, it reads the file into an encoded buffer and converts it to the output buffer + idx_t Encode(FileHandle &file_handle_input, char *output_buffer, const idx_t decoded_buffer_size); + string encoding_name; + +private: + //! The actual encoded buffer + CSVEncoderBuffer encoded_buffer; + //! Potential remaining bytes + CSVEncoderBuffer remaining_bytes_buffer; + //! Actual Encoding Function + optional_ptr encoding_function; +}; +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp index de2448d5..2f63d945 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/global_csv_state.hpp @@ -15,6 +15,7 @@ #include "duckdb/function/table/read_csv.hpp" #include "duckdb/execution/operator/csv_scanner/csv_file_scanner.hpp" #include "duckdb/execution/operator/csv_scanner/string_value_scanner.hpp" +#include "duckdb/execution/operator/csv_scanner/csv_validator.hpp" namespace duckdb { @@ -22,7 +23,7 @@ namespace duckdb { struct CSVGlobalState : public GlobalTableFunctionState { CSVGlobalState(ClientContext &context, const shared_ptr &buffer_manager_p, const CSVReaderOptions &options, idx_t system_threads_p, const vector &files, - vector column_ids_p, const ReadCSVData &bind_data); + vector column_ids_p, const ReadCSVData &bind_data); ~CSVGlobalState() override { } @@ -58,7 +59,7 @@ struct CSVGlobalState : public GlobalTableFunctionState { //! Number of threads being used in this scanner idx_t running_threads = 1; //! The column ids to read - vector column_ids; + vector column_ids; string sniffer_mismatch_error; @@ -78,6 +79,8 @@ struct CSVGlobalState : public GlobalTableFunctionState { unordered_map threads_per_file; //! We hold information on the current scanner boundary CSVIterator current_boundary; + + CSVValidator validator; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner_boundary.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner_boundary.hpp index 9e38f9be..9f0d9782 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner_boundary.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/scanner_boundary.hpp @@ -70,6 +70,10 @@ struct CSVIterator { void SetCurrentBoundaryToPosition(bool single_threaded); void SetStart(idx_t pos); + void SetEnd(idx_t pos); + + // Gets the current position for the file + idx_t GetGlobalCurrentPos(); //! 8 MB TODO: Should benchmarks other values static constexpr idx_t BYTES_PER_THREAD = 8000000; @@ -80,6 +84,8 @@ struct CSVIterator { bool first_one = true; + idx_t buffer_size; + private: //! The original setting CSVBoundary boundary; diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_sniffer.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp similarity index 93% rename from src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_sniffer.hpp rename to src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp index 8bffeeb5..5715d25d 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/csv_sniffer.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/execution/operator/csv_scanner/csv_sniffer.hpp +// duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp // // //===----------------------------------------------------------------------===// @@ -14,6 +14,7 @@ #include "duckdb/execution/operator/csv_scanner/column_count_scanner.hpp" #include "duckdb/execution/operator/csv_scanner/csv_schema.hpp" #include "duckdb/execution/operator/csv_scanner/header_value.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp" namespace duckdb { struct DateTimestampSniffing { @@ -22,16 +23,6 @@ struct DateTimestampSniffing { vector format; idx_t initial_size; }; -//! Struct to store the result of the Sniffer -struct SnifferResult { - SnifferResult(vector return_types_p, vector names_p) - : return_types(std::move(return_types_p)), names(std::move(names_p)) { - } - //! Return Types that were detected - vector return_types; - //! Column Names that were detected - vector names; -}; //! All the options that will be used to sniff the dialect of the CSV file struct DialectCandidates { @@ -39,7 +30,7 @@ struct DialectCandidates { explicit DialectCandidates(const CSVStateMachineOptions &options); //! Static functions to get defaults of the search space - static vector GetDefaultDelimiter(); + static vector GetDefaultDelimiter(); static vector> GetDefaultQuote(); @@ -52,11 +43,11 @@ struct DialectCandidates { string Print(); //! Candidates for the delimiter - vector delim_candidates; + vector delim_candidates; //! Candidates for the comment vector comment_candidates; //! Quote-Rule Candidates - vector quoterule_candidates; + vector quote_rule_candidates; //! Candidates for the quote option unordered_map> quote_candidates_map; //! Candidates for the escape option @@ -134,10 +125,10 @@ class CSVSniffer { //! data types It does this considering a priorly set CSV schema. If there is a mismatch of the schema it runs the //! full on blazing all guns sniffer, if that still fails it tells the user to union_by_name. //! It returns the projection order. - SnifferResult AdaptiveSniff(CSVSchema &file_schema); + SnifferResult AdaptiveSniff(const CSVSchema &file_schema); //! Function that only sniffs the first two rows, to verify if a header exists and what are the data types - SnifferResult MinimalSniff(); + AdaptiveSnifferResult MinimalSniff(); static NewLineIdentifier DetectNewLineDelimiter(CSVBufferManager &buffer_manager); @@ -145,6 +136,8 @@ class CSVSniffer { static bool CanYouCastIt(ClientContext &context, const string_t value, const LogicalType &type, const DialectOptions &dialect_options, const bool is_null, const char decimal_separator); + idx_t LinesSniffed() const; + private: //! CSV State Machine Cache CSVStateMachineCache &state_machine_cache; @@ -160,9 +153,10 @@ class CSVSniffer { SetColumns set_columns; shared_ptr error_handler; shared_ptr detection_error_handler; - + //! Number of lines sniffed in this sniffer + idx_t lines_sniffed; //! Sets the result options - void SetResultOptions(); + void SetResultOptions() const; //! ------------------------------------------------------// //! ----------------- Dialect Detection ----------------- // @@ -181,7 +175,7 @@ class CSVSniffer { void RefineCandidates(); //! Checks if candidate still produces good values for the next chunk - bool RefineCandidateNextChunk(ColumnCountScanner &candidate); + bool RefineCandidateNextChunk(ColumnCountScanner &candidate) const; //! ------------------------------------------------------// //! ------------------- Type Detection ------------------ // diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp new file mode 100644 index 00000000..2a8e0de1 --- /dev/null +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp @@ -0,0 +1,36 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/execution/operator/csv_scanner/sniffer/sniff_result.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/execution/operator/csv_scanner/csv_state_machine.hpp" +#include "duckdb/common/vector.hpp" + +namespace duckdb { + +//! Struct to store the result of the Sniffer +struct SnifferResult { + SnifferResult(vector return_types_p, vector names_p) + : return_types(std::move(return_types_p)), names(std::move(names_p)) { + } + //! Return Types that were detected + vector return_types; + //! Column Names that were detected + vector names; +}; + +struct AdaptiveSnifferResult : SnifferResult { + AdaptiveSnifferResult(vector return_types_p, vector names_p, bool more_than_one_row_p) + : SnifferResult(std::move(return_types_p), std::move(names_p)), more_than_one_row(more_than_one_row_p) { + } + bool more_than_one_row; + SnifferResult ToSnifferResult() { + return {return_types, names}; + } +}; +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine_options.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine_options.hpp index 826a1903..53b30658 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine_options.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/state_machine_options.hpp @@ -15,11 +15,13 @@ namespace duckdb { //! Basically which char, quote and escape were used to generate it. struct CSVStateMachineOptions { CSVStateMachineOptions() {}; - CSVStateMachineOptions(char delimiter_p, char quote_p, char escape_p, char comment_p, NewLineIdentifier new_line_p) - : delimiter(delimiter_p), quote(quote_p), escape(escape_p), comment(comment_p), new_line(new_line_p) {}; + CSVStateMachineOptions(string delimiter_p, char quote_p, char escape_p, char comment_p, + NewLineIdentifier new_line_p, bool rfc_4180_p) + : delimiter(std::move(delimiter_p)), quote(quote_p), escape(escape_p), comment(comment_p), new_line(new_line_p), + rfc_4180(rfc_4180_p) {}; //! Delimiter to separate columns within each line - CSVOption delimiter = ','; + CSVOption delimiter {","}; //! Quote used for columns that contain reserved characters, e.g ' CSVOption quote = '\"'; //! Escape character to escape quote character @@ -28,10 +30,12 @@ struct CSVStateMachineOptions { CSVOption comment = '\0'; //! New Line separator CSVOption new_line = NewLineIdentifier::NOT_SET; + //! RFC 4180 conformance + CSVOption rfc_4180 = false; bool operator==(const CSVStateMachineOptions &other) const { return delimiter == other.delimiter && quote == other.quote && escape == other.escape && - new_line == other.new_line && comment == other.comment; + new_line == other.new_line && comment == other.comment && rfc_4180 == other.rfc_4180; } }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp index 20182b5e..39f7b7f3 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/csv_scanner/string_value_scanner.hpp @@ -12,7 +12,7 @@ #include "duckdb/execution/operator/csv_scanner/csv_state_machine.hpp" #include "duckdb/execution/operator/csv_scanner/scanner_boundary.hpp" #include "duckdb/execution/operator/csv_scanner/base_scanner.hpp" - +#include "duckdb/execution/operator/csv_scanner/csv_validator.hpp" namespace duckdb { struct CSVBufferUsage { @@ -132,6 +132,10 @@ class LineError { bool HandleErrors(StringValueResult &result); + bool HasError() const { + return !current_errors.empty(); + } + private: vector current_errors; bool is_error_in_line; @@ -180,13 +184,15 @@ class StringValueResult : public ScannerResult { const bool null_padding; const bool ignore_errors; + const idx_t extra_delimiter_bytes = 0; + unsafe_unique_array null_str_ptr; unsafe_unique_array null_str_size; idx_t null_str_count; //! Internal Data Chunk used for flushing DataChunk parse_chunk; - idx_t number_of_rows = 0; + int64_t number_of_rows = 0; idx_t cur_col_id = 0; bool figure_out_new_line = false; //! Information to properly handle errors @@ -234,6 +240,9 @@ class StringValueResult : public ScannerResult { //! Specialized code for quoted values, makes sure to remove quotes and escapes static inline void AddQuotedValue(StringValueResult &result, const idx_t buffer_pos); + //! Specialized code for possibly escaped values, makes sure to remove escapes + static inline void AddPossiblyEscapedValue(StringValueResult &result, const idx_t buffer_pos, const char *value_ptr, + const idx_t length, const bool empty); //! Adds a Value to the result static inline void AddValue(StringValueResult &result, const idx_t buffer_pos); //! Adds a Row to the result @@ -246,13 +255,15 @@ class StringValueResult : public ScannerResult { //! Handles EmptyLine states static inline bool EmptyLine(StringValueResult &result, const idx_t buffer_pos); inline bool AddRowInternal(); - //! Force the throw of a unicode error + //! Force the throw of a Unicode error void HandleUnicodeError(idx_t col_idx, LinePosition &error_position); bool HandleTooManyColumnsError(const char *value_ptr, const idx_t size); inline void AddValueToVector(const char *value_ptr, const idx_t size, bool allocate = false); static inline void SetComment(StringValueResult &result, idx_t buffer_pos); static inline bool UnsetComment(StringValueResult &result, idx_t buffer_pos); + inline idx_t HandleMultiDelimiter(const idx_t buffer_pos) const; + DataChunk &ToChunk(); //! Resets the state of the result void Reset(); @@ -267,6 +278,18 @@ class StringValueResult : public ScannerResult { void RemoveLastLine(); }; +struct ValidRowInfo { + ValidRowInfo(bool is_valid_p, idx_t start_pos_p, idx_t end_buffer_idx_p, idx_t end_pos_p, bool last_state_quote_p) + : is_valid(is_valid_p), start_pos(start_pos_p), end_buffer_idx(end_buffer_idx_p), end_pos(end_pos_p), + last_state_quote(last_state_quote_p) {}; + ValidRowInfo() : is_valid(false), start_pos(0), end_buffer_idx(0), end_pos(0) {}; + + bool is_valid; + idx_t start_pos; + idx_t end_buffer_idx; + idx_t end_pos; + bool last_state_quote = false; +}; //! Our dialect scanner basically goes over the CSV and actually parses the values to a DuckDB vector of string_t class StringValueScanner : public BaseScanner { public: @@ -297,6 +320,9 @@ class StringValueScanner : public BaseScanner { //! If we can directly cast the type when consuming the CSV file, or we have to do it later static bool CanDirectlyCast(const LogicalType &type, bool icu_loaded); + //! Gets validation line information + ValidatorLine GetValidationLine(); + const idx_t scanner_idx; //! Variable that manages buffer tracking @@ -308,21 +334,31 @@ class StringValueScanner : public BaseScanner { void FinalizeChunkProcess() override; //! Function used to process values that go over the first buffer, extra allocation might be necessary - void ProcessOverbufferValue(); + void ProcessOverBufferValue(); void ProcessExtraRow(); //! Function used to move from one buffer to the other, if necessary bool MoveToNextBuffer(); - void SkipUntilNewLine(); - + //! -------- Functions used to figure out where lines start ---------!// + //! Main function, sets the correct start void SetStart(); + //! From a given initial state, it skips until we reach the until_state + bool SkipUntilState(CSVState initial_state, CSVState until_state, CSVIterator ¤t_iterator, + bool "ed) const; + //! If the current row we found is valid + bool IsRowValid(CSVIterator ¤t_iterator) const; + ValidRowInfo TryRow(CSVState state, idx_t start_pos, idx_t end_pos) const; + bool FirstValueEndsOnQuote(CSVIterator iterator) const; StringValueResult result; vector types; - - //! Pointer to the previous buffer handle, necessary for overbuffer values + //! True Position where this scanner started scanning(i.e., after figuring out where the first line starts) + idx_t start_pos; + //! Pointer to the previous buffer handle, necessary for over-buffer values shared_ptr previous_buffer_handle; + //! Strict state machine, is basically a state machine with rfc 4180 set to true, used to figure out new line. + shared_ptr state_machine_strict; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp index f630187f..29a58c7a 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_batch_collector.hpp @@ -30,8 +30,8 @@ class PhysicalBatchCollector : public PhysicalResultCollector { unique_ptr GetLocalSinkState(ExecutionContext &context) const override; unique_ptr GetGlobalSinkState(ClientContext &context) const override; - bool RequiresBatchIndex() const override { - return true; + OperatorPartitionInfo RequiredPartitionInfo() const override { + return OperatorPartitionInfo::BatchIndex(); } bool ParallelSink() const override { diff --git a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_batch_collector.hpp b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_batch_collector.hpp index 6e2661c8..1ab92396 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_batch_collector.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_buffered_batch_collector.hpp @@ -37,8 +37,8 @@ class PhysicalBufferedBatchCollector : public PhysicalResultCollector { unique_ptr GetLocalSinkState(ExecutionContext &context) const override; unique_ptr GetGlobalSinkState(ClientContext &context) const override; - bool RequiresBatchIndex() const override { - return true; + OperatorPartitionInfo RequiredPartitionInfo() const override { + return OperatorPartitionInfo::BatchIndex(); } bool ParallelSink() const override { diff --git a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit.hpp b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit.hpp index 2734066b..47f01b2b 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_limit.hpp @@ -57,8 +57,8 @@ class PhysicalLimit : public PhysicalOperator { return true; } - bool RequiresBatchIndex() const override { - return true; + OperatorPartitionInfo RequiredPartitionInfo() const override { + return OperatorPartitionInfo::BatchIndex(); } public: diff --git a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp index 9ff7bf62..e4a581dc 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_reservoir_sample.hpp @@ -41,7 +41,7 @@ class PhysicalReservoirSample : public PhysicalOperator { SinkFinalizeType Finalize(Pipeline &pipeline, Event &event, ClientContext &context, OperatorSinkFinalizeInput &input) const override; bool ParallelSink() const override { - return true; + return !options->repeatable; } bool IsSink() const override { diff --git a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp index bbfab543..0032e06c 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/helper/physical_result_collector.hpp @@ -9,6 +9,7 @@ #pragma once #include "duckdb/execution/physical_operator.hpp" +#include "duckdb/main/query_result.hpp" #include "duckdb/common/enums/statement_type.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/execution/operator/join/join_filter_pushdown.hpp b/src/duckdb/src/include/duckdb/execution/operator/join/join_filter_pushdown.hpp index 0a270b54..3a5663c6 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/join/join_filter_pushdown.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/join/join_filter_pushdown.hpp @@ -8,19 +8,19 @@ #pragma once +#include "duckdb/planner/column_binding.hpp" #include "duckdb/planner/expression.hpp" #include "duckdb/planner/table_filter.hpp" -#include "duckdb/planner/column_binding.hpp" namespace duckdb { class DataChunk; class DynamicTableFilterSet; +class LogicalGet; +class JoinHashTable; struct GlobalUngroupedAggregateState; struct LocalUngroupedAggregateState; struct JoinFilterPushdownColumn { - //! The join condition from which this filter pushdown is generated - idx_t join_condition; //! The probe column index to which this filter should be applied ColumnBinding probe_column_index; }; @@ -39,11 +39,27 @@ struct JoinFilterLocalState { unique_ptr local_aggregate_state; }; -struct JoinFilterPushdownInfo { +struct JoinFilterPushdownFilter { //! The dynamic table filter set where to push filters into shared_ptr dynamic_filters; - //! The filters that we should generate - vector filters; + //! The columns for which we should generate filters + vector columns; +}; + +struct PushdownFilterTarget { + PushdownFilterTarget(LogicalGet &get, vector columns_p) + : get(get), columns(std::move(columns_p)) { + } + + LogicalGet &get; + vector columns; +}; + +struct JoinFilterPushdownInfo { + //! The join condition indexes for which we compute the min/max aggregates + vector join_condition; + //! The probes to push the filter into + vector probe_info; //! Min/Max aggregates vector> min_max_aggregates; @@ -53,7 +69,12 @@ struct JoinFilterPushdownInfo { void Sink(DataChunk &chunk, JoinFilterLocalState &lstate) const; void Combine(JoinFilterGlobalState &gstate, JoinFilterLocalState &lstate) const; - void PushFilters(JoinFilterGlobalState &gstate, const PhysicalOperator &op) const; + unique_ptr Finalize(ClientContext &context, JoinHashTable &ht, JoinFilterGlobalState &gstate, + const PhysicalOperator &op) const; + +private: + void PushInFilter(const JoinFilterPushdownFilter &info, JoinHashTable &ht, const PhysicalOperator &op, + idx_t filter_idx, idx_t filter_col_idx) const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp b/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp index 33fcb6a2..0affaf4c 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/join/perfect_hash_join_executor.hpp @@ -22,13 +22,9 @@ class PhysicalHashJoin; struct PerfectHashJoinStats { Value build_min; Value build_max; - Value probe_min; - Value probe_max; bool is_build_small = false; bool is_build_dense = false; - bool is_probe_in_domain = false; idx_t build_range = 0; - idx_t estimated_cardinality = 0; }; //! PhysicalHashJoin represents a hash loop join between two tables @@ -36,14 +32,14 @@ class PerfectHashJoinExecutor { using PerfectHashTable = vector; public: - explicit PerfectHashJoinExecutor(const PhysicalHashJoin &join, JoinHashTable &ht, PerfectHashJoinStats pjoin_stats); + PerfectHashJoinExecutor(const PhysicalHashJoin &join, JoinHashTable &ht); public: - bool CanDoPerfectHashJoin(); + bool CanDoPerfectHashJoin(const PhysicalHashJoin &op, const Value &min, const Value &max); unique_ptr GetOperatorState(ExecutionContext &context); - OperatorResultType ProbePerfectHashTable(ExecutionContext &context, DataChunk &input, DataChunk &chunk, - OperatorState &state); + OperatorResultType ProbePerfectHashTable(ExecutionContext &context, DataChunk &input, DataChunk &lhs_output_columns, + DataChunk &chunk, OperatorState &state); bool BuildPerfectHashTable(LogicalType &type); private: @@ -65,9 +61,9 @@ class PerfectHashJoinExecutor { JoinHashTable &ht; //! Columnar perfect hash table PerfectHashTable perfect_hash_table; - //! Build and probe statistics + //! Build statistics PerfectHashJoinStats perfect_join_statistics; - //! Stores the occurences of each value in the build side + //! Stores the occurrences of each value in the build side unsafe_unique_array bitmap_build_idx; //! Stores the number of unique keys in the build side idx_t unique_keys = 0; diff --git a/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp b/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp index 5b8d9c08..849423a2 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/join/physical_hash_join.hpp @@ -22,15 +22,18 @@ class PhysicalHashJoin : public PhysicalComparisonJoin { public: static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::HASH_JOIN; + struct JoinProjectionColumns { + vector col_idxs; + vector col_types; + }; + public: PhysicalHashJoin(LogicalOperator &op, unique_ptr left, unique_ptr right, vector cond, JoinType join_type, const vector &left_projection_map, const vector &right_projection_map, vector delim_types, - idx_t estimated_cardinality, PerfectHashJoinStats perfect_join_stats, - unique_ptr pushdown_info); + idx_t estimated_cardinality, unique_ptr pushdown_info); PhysicalHashJoin(LogicalOperator &op, unique_ptr left, unique_ptr right, - vector cond, JoinType join_type, idx_t estimated_cardinality, - PerfectHashJoinStats join_state); + vector cond, JoinType join_type, idx_t estimated_cardinality); //! Initialize HT for this operator unique_ptr InitializeHashTable(ClientContext &context) const; @@ -38,20 +41,18 @@ class PhysicalHashJoin : public PhysicalComparisonJoin { //! The types of the join keys vector condition_types; - //! The indices for getting the payload columns - vector payload_column_idxs; - //! The types of the payload columns - vector payload_types; - - //! Positions of the RHS columns that need to output - vector rhs_output_columns; - //! The types of the output - vector rhs_output_types; + //! The indices/types of the payload columns + JoinProjectionColumns payload_columns; + //! The indices/types of the lhs columns that need to be output + JoinProjectionColumns lhs_output_columns; + //! The indices/types of the rhs columns that need to be output + JoinProjectionColumns rhs_output_columns; //! Duplicate eliminated types; only used for delim_joins (i.e. correlated subqueries) vector delim_types; - //! Used in perfect hash join - PerfectHashJoinStats perfect_join_statistics; + + //! Join Keys statistics (optional) + vector> join_stats; public: InsertionOrderPreservingMap ParamsToString() const override; @@ -75,7 +76,7 @@ class PhysicalHashJoin : public PhysicalComparisonJoin { GlobalSourceState &gstate) const override; SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; - double GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; + ProgressData GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; //! Becomes a source when it is an external join bool IsSource() const override { diff --git a/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp b/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp index 0fe4b962..5c018372 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/join/physical_iejoin.hpp @@ -46,7 +46,7 @@ class PhysicalIEJoin : public PhysicalRangeJoin { return true; } - double GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const override; + ProgressData GetProgress(ClientContext &context, GlobalSourceState &gstate_p) const override; public: // Sink Interface diff --git a/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp b/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp index b3b28992..b62fea5d 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/order/physical_order.hpp @@ -35,8 +35,9 @@ class PhysicalOrder : public PhysicalOperator { GlobalSourceState &gstate) const override; unique_ptr GetGlobalSourceState(ClientContext &context) const override; SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; - idx_t GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, - LocalSourceState &lstate) const override; + OperatorPartitionData GetPartitionData(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, + LocalSourceState &lstate, + const OperatorPartitionInfo &partition_info) const override; bool IsSource() const override { return true; @@ -46,7 +47,10 @@ class PhysicalOrder : public PhysicalOperator { return true; } - bool SupportsBatchIndex() const override { + bool SupportsPartitioning(const OperatorPartitionInfo &partition_info) const override { + if (partition_info.RequiresPartitionColumns()) { + return false; + } return true; } diff --git a/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp b/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp index 0cd33528..a7d5559f 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/order/physical_top_n.hpp @@ -12,6 +12,7 @@ #include "duckdb/planner/bound_query_node.hpp" namespace duckdb { +struct DynamicFilterData; //! Represents a physical ordering of the data. Note that this will not change //! the data but only add a selection vector. @@ -21,11 +22,14 @@ class PhysicalTopN : public PhysicalOperator { public: PhysicalTopN(vector types, vector orders, idx_t limit, idx_t offset, - idx_t estimated_cardinality); + shared_ptr dynamic_filter, idx_t estimated_cardinality); + ~PhysicalTopN() override; vector orders; idx_t limit; idx_t offset; + //! Dynamic table filter (if any) + shared_ptr dynamic_filter; public: // Source interface diff --git a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp index 4f01747d..56f8a43a 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_copy_to_file.hpp @@ -49,8 +49,8 @@ class PhysicalBatchCopyToFile : public PhysicalOperator { unique_ptr GetGlobalSinkState(ClientContext &context) const override; SinkNextBatchType NextBatch(ExecutionContext &context, OperatorSinkNextBatchInput &input) const override; - bool RequiresBatchIndex() const override { - return true; + OperatorPartitionInfo RequiredPartitionInfo() const override { + return OperatorPartitionInfo::BatchIndex(); } bool IsSink() const override { diff --git a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp index bce3ac63..57c34928 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_batch_insert.hpp @@ -60,8 +60,8 @@ class PhysicalBatchInsert : public PhysicalOperator { SinkFinalizeType Finalize(Pipeline &pipeline, Event &event, ClientContext &context, OperatorSinkFinalizeInput &input) const override; - bool RequiresBatchIndex() const override { - return true; + OperatorPartitionInfo RequiredPartitionInfo() const override { + return OperatorPartitionInfo::BatchIndex(); } bool IsSink() const override { diff --git a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp index 4032aea6..fd7f4981 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_export.hpp @@ -34,17 +34,14 @@ class PhysicalExport : public PhysicalOperator { public: PhysicalExport(vector types, CopyFunction function, unique_ptr info, - idx_t estimated_cardinality, BoundExportData exported_tables) - : PhysicalOperator(PhysicalOperatorType::EXPORT, std::move(types), estimated_cardinality), - function(std::move(function)), info(std::move(info)), exported_tables(std::move(exported_tables)) { - } + idx_t estimated_cardinality, unique_ptr exported_tables); //! The copy function to use to read the file CopyFunction function; //! The binding info containing the set of options for reading the file unique_ptr info; //! The table info for each table that will be exported - BoundExportData exported_tables; + unique_ptr exported_tables; public: // Source interface diff --git a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp index 9680b583..29666460 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/persistent/physical_insert.hpp @@ -13,10 +13,52 @@ #include "duckdb/planner/parsed_data/bound_create_table_info.hpp" #include "duckdb/common/index_vector.hpp" #include "duckdb/parser/statement/insert_statement.hpp" +#include "duckdb/storage/table/append_state.hpp" +#include "duckdb/catalog/catalog_entry/duck_table_entry.hpp" namespace duckdb { -class InsertLocalState; +//===--------------------------------------------------------------------===// +// Sink +//===--------------------------------------------------------------------===// +class InsertGlobalState : public GlobalSinkState { +public: + explicit InsertGlobalState(ClientContext &context, const vector &return_types, DuckTableEntry &table); + +public: + mutex lock; + DuckTableEntry &table; + idx_t insert_count; + bool initialized; + LocalAppendState append_state; + ColumnDataCollection return_collection; +}; + +class InsertLocalState : public LocalSinkState { +public: +public: + InsertLocalState(ClientContext &context, const vector &types, + const vector> &bound_defaults, + const vector> &bound_constraints); + +public: + ConstraintState &GetConstraintState(DataTable &table, TableCatalogEntry &tableref); + +public: + //! The chunk that ends up getting inserted + DataChunk insert_chunk; + //! The chunk containing the tuples that become an update (if DO UPDATE) + DataChunk update_chunk; + ExpressionExecutor default_executor; + TableAppendState local_append_state; + unique_ptr local_collection; + optional_ptr writer; + // Rows that have been updated by a DO UPDATE conflict + unordered_set updated_rows; + idx_t update_count = 0; + unique_ptr constraint_state; + const vector> &bound_constraints; +}; //! Physically insert a set of data into a table class PhysicalInsert : public PhysicalOperator { @@ -73,7 +115,7 @@ class PhysicalInsert : public PhysicalOperator { unordered_set conflict_target; // Column ids from the original table to fetch - vector columns_to_fetch; + vector columns_to_fetch; // Matching types to the column ids to fetch vector types_to_fetch; @@ -120,7 +162,8 @@ class PhysicalInsert : public PhysicalOperator { //! Returns the amount of updated tuples void CreateUpdateChunk(ExecutionContext &context, DataChunk &chunk, TableCatalogEntry &table, Vector &row_ids, DataChunk &result) const; - idx_t OnConflictHandling(TableCatalogEntry &table, ExecutionContext &context, InsertLocalState &lstate) const; + idx_t OnConflictHandling(TableCatalogEntry &table, ExecutionContext &context, InsertGlobalState &gstate, + InsertLocalState &lstate) const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp b/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp index 1fb4eebe..f505f416 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/projection/physical_tableinout_function.hpp @@ -20,7 +20,7 @@ class PhysicalTableInOutFunction : public PhysicalOperator { public: PhysicalTableInOutFunction(vector types, TableFunction function_p, - unique_ptr bind_data_p, vector column_ids_p, + unique_ptr bind_data_p, vector column_ids_p, idx_t estimated_cardinality, vector projected_input); public: @@ -47,7 +47,7 @@ class PhysicalTableInOutFunction : public PhysicalOperator { //! Bind data of the function unique_ptr bind_data; //! The set of column ids to fetch - vector column_ids; + vector column_ids; //! The set of input columns to project out vector projected_input; }; diff --git a/src/duckdb/src/include/duckdb/execution/operator/scan/physical_positional_scan.hpp b/src/duckdb/src/include/duckdb/execution/operator/scan/physical_positional_scan.hpp index c142009d..2a39fb23 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/scan/physical_positional_scan.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/scan/physical_positional_scan.hpp @@ -30,6 +30,7 @@ class PhysicalPositionalScan : public PhysicalOperator { public: bool Equals(const PhysicalOperator &other) const override; + vector> GetChildren() const override; public: unique_ptr GetLocalSourceState(ExecutionContext &context, @@ -37,7 +38,7 @@ class PhysicalPositionalScan : public PhysicalOperator { unique_ptr GetGlobalSourceState(ClientContext &context) const override; SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; - double GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; + ProgressData GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; bool IsSource() const override { return true; diff --git a/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp b/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp index 621282e2..45ac1e34 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/scan/physical_table_scan.hpp @@ -13,6 +13,7 @@ #include "duckdb/planner/table_filter.hpp" #include "duckdb/storage/data_table.hpp" #include "duckdb/common/extra_operator_info.hpp" +#include "duckdb/common/column_index.hpp" namespace duckdb { @@ -24,7 +25,7 @@ class PhysicalTableScan : public PhysicalOperator { public: //! Table scan that immediately projects out filter columns that are unused in the remainder of the query plan PhysicalTableScan(vector types, TableFunction function, unique_ptr bind_data, - vector returned_types, vector column_ids, vector projection_ids, + vector returned_types, vector column_ids, vector projection_ids, vector names, unique_ptr table_filters, idx_t estimated_cardinality, ExtraOperatorInfo extra_info, vector parameters); @@ -35,14 +36,15 @@ class PhysicalTableScan : public PhysicalOperator { //! The types of ALL columns that can be returned by the table function vector returned_types; //! The column ids used within the table function - vector column_ids; + vector column_ids; //! The projected-out column ids vector projection_ids; //! The names of the columns vector names; //! The table filters unique_ptr table_filters; - //! Currently stores info related to filters pushed down into MultiFileLists + //! Currently stores info related to filters pushed down into MultiFileLists and sample rate pushed down into the + //! table scan ExtraOperatorInfo extra_info; //! Parameters vector parameters; @@ -60,19 +62,18 @@ class PhysicalTableScan : public PhysicalOperator { GlobalSourceState &gstate) const override; unique_ptr GetGlobalSourceState(ClientContext &context) const override; SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const override; - idx_t GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, - LocalSourceState &lstate) const override; + OperatorPartitionData GetPartitionData(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, + LocalSourceState &lstate, + const OperatorPartitionInfo &partition_info) const override; bool IsSource() const override { return true; } bool ParallelSource() const override; - bool SupportsBatchIndex() const override { - return function.get_batch_index != nullptr; - } + bool SupportsPartitioning(const OperatorPartitionInfo &partition_info) const override; - double GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; + ProgressData GetProgress(ClientContext &context, GlobalSourceState &gstate) const override; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_art_index.hpp b/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_art_index.hpp index edd949fb..cc317838 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_art_index.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/schema/physical_create_art_index.hpp @@ -8,18 +8,18 @@ #pragma once -#include "duckdb/execution/physical_operator.hpp" #include "duckdb/execution/index/art/art.hpp" +#include "duckdb/execution/physical_operator.hpp" #include "duckdb/parser/parsed_data/create_index_info.hpp" - #include "duckdb/storage/data_table.hpp" #include namespace duckdb { + class DuckTableEntry; -//! Physical CREATE (UNIQUE) INDEX statement +//! Physical index creation operator. class PhysicalCreateARTIndex : public PhysicalOperator { public: static constexpr const PhysicalOperatorType TYPE = PhysicalOperatorType::CREATE_INDEX; @@ -27,18 +27,21 @@ class PhysicalCreateARTIndex : public PhysicalOperator { public: PhysicalCreateARTIndex(LogicalOperator &op, TableCatalogEntry &table, const vector &column_ids, unique_ptr info, vector> unbound_expressions, - idx_t estimated_cardinality, const bool sorted); + idx_t estimated_cardinality, const bool sorted, + unique_ptr alter_table_info = nullptr); - //! The table to create the index for + //! The table to create the index for. DuckTableEntry &table; - //! The list of column IDs required for the index + //! The list of column IDs of the index. vector storage_ids; - //! Info for index creation + //! Index creation information. unique_ptr info; - //! Unbound expressions to be used in the optimizer + //! Unbound expressions of the indexed columns. vector> unbound_expressions; - //! Whether the pipeline sorts the data prior to index creation + //! True, if the pipeline sorts the index data prior to index creation. const bool sorted; + //! Alter table information for adding indexes. + unique_ptr alter_table_info; public: //! Source interface, NOP for this operator @@ -49,14 +52,14 @@ class PhysicalCreateARTIndex : public PhysicalOperator { } public: - //! Sink interface, thread-local sink states + //! Sink interface, thread-local sink states. Contains an index for each state. unique_ptr GetLocalSinkState(ExecutionContext &context) const override; - //! Sink interface, global sink state + //! Sink interface, global sink state. Contains the global index. unique_ptr GetGlobalSinkState(ClientContext &context) const override; - //! Sink for unsorted data: insert iteratively + //! Sink for unsorted data: insert iteratively. SinkResultType SinkUnsorted(OperatorSinkInput &input) const; - //! Sink for sorted data: build + merge + //! Sink for sorted data: build + merge. SinkResultType SinkSorted(OperatorSinkInput &input) const; SinkResultType Sink(ExecutionContext &context, DataChunk &chunk, OperatorSinkInput &input) const override; diff --git a/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp b/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp index 5416c8fd..3ce30ce6 100644 --- a/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp +++ b/src/duckdb/src/include/duckdb/execution/operator/set/physical_cte.hpp @@ -52,10 +52,6 @@ class PhysicalCTE : public PhysicalOperator { return false; } - bool RequiresBatchIndex() const override { - return false; - } - InsertionOrderPreservingMap ParamsToString() const override; public: diff --git a/src/duckdb/src/include/duckdb/execution/partition_info.hpp b/src/duckdb/src/include/duckdb/execution/partition_info.hpp new file mode 100644 index 00000000..8a56f77f --- /dev/null +++ b/src/duckdb/src/include/duckdb/execution/partition_info.hpp @@ -0,0 +1,79 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/execution/partition_info.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/common.hpp" +#include "duckdb/common/types/value.hpp" +#include "duckdb/common/optional_idx.hpp" + +namespace duckdb { + +enum class PartitionInfo { NONE, REQUIRES_BATCH_INDEX }; + +struct ColumnPartitionData { + explicit ColumnPartitionData(Value partition_val) : min_val(partition_val), max_val(std::move(partition_val)) { + } + + Value min_val; + Value max_val; +}; + +struct SourcePartitionInfo { + //! The current batch index + //! This is only set in case RequiresBatchIndex() is true, and the source has support for it (SupportsBatchIndex()) + //! Otherwise this is left on INVALID_INDEX + //! The batch index is a globally unique, increasing index that should be used to maintain insertion order + //! //! in conjunction with parallelism + optional_idx batch_index; + //! The minimum batch index that any thread is currently actively reading + optional_idx min_batch_index; + //! Column partition data + vector partition_data; +}; + +struct OperatorPartitionInfo { + OperatorPartitionInfo() = default; + explicit OperatorPartitionInfo(bool batch_index) : batch_index(batch_index) { + } + explicit OperatorPartitionInfo(vector partition_columns_p) + : partition_columns(std::move(partition_columns_p)) { + } + + bool batch_index = false; + vector partition_columns; + + static OperatorPartitionInfo NoPartitionInfo() { + return OperatorPartitionInfo(false); + } + static OperatorPartitionInfo BatchIndex() { + return OperatorPartitionInfo(true); + } + static OperatorPartitionInfo PartitionColumns(vector columns) { + return OperatorPartitionInfo(std::move(columns)); + } + bool RequiresPartitionColumns() const { + return !partition_columns.empty(); + } + bool RequiresBatchIndex() const { + return batch_index; + } + bool AnyRequired() const { + return RequiresPartitionColumns() || RequiresBatchIndex(); + } +}; + +struct OperatorPartitionData { + explicit OperatorPartitionData(idx_t batch_index) : batch_index(batch_index) { + } + + idx_t batch_index; + vector partition_data; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/physical_operator.hpp b/src/duckdb/src/include/duckdb/execution/physical_operator.hpp index be63efb2..822b5537 100644 --- a/src/duckdb/src/include/duckdb/execution/physical_operator.hpp +++ b/src/duckdb/src/include/duckdb/execution/physical_operator.hpp @@ -15,11 +15,13 @@ #include "duckdb/common/enums/explain_format.hpp" #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/execution/execution_context.hpp" +#include "duckdb/execution/progress_data.hpp" #include "duckdb/optimizer/join_order/join_node.hpp" #include "duckdb/common/optional_idx.hpp" #include "duckdb/execution/physical_operator_states.hpp" #include "duckdb/common/enums/order_preservation_type.hpp" #include "duckdb/common/case_insensitive_map.hpp" +#include "duckdb/execution/partition_info.hpp" namespace duckdb { class Event; @@ -113,8 +115,9 @@ class PhysicalOperator { virtual unique_ptr GetGlobalSourceState(ClientContext &context) const; virtual SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, OperatorSourceInput &input) const; - virtual idx_t GetBatchIndex(ExecutionContext &context, DataChunk &chunk, GlobalSourceState &gstate, - LocalSourceState &lstate) const; + virtual OperatorPartitionData GetPartitionData(ExecutionContext &context, DataChunk &chunk, + GlobalSourceState &gstate, LocalSourceState &lstate, + const OperatorPartitionInfo &partition_info) const; virtual bool IsSource() const { return false; @@ -124,8 +127,11 @@ class PhysicalOperator { return false; } - virtual bool SupportsBatchIndex() const { - return false; + virtual bool SupportsPartitioning(const OperatorPartitionInfo &partition_info) const { + if (partition_info.AnyRequired()) { + return false; + } + return true; } //! The type of order emitted by the operator (as a source) @@ -134,10 +140,11 @@ class PhysicalOperator { } //! Returns the current progress percentage, or a negative value if progress bars are not supported - virtual double GetProgress(ClientContext &context, GlobalSourceState &gstate) const; + virtual ProgressData GetProgress(ClientContext &context, GlobalSourceState &gstate) const; //! Returns the current progress percentage, or a negative value if progress bars are not supported - virtual double GetSinkProgress(ClientContext &context, GlobalSinkState &gstate, double source_progress) const { + virtual ProgressData GetSinkProgress(ClientContext &context, GlobalSinkState &gstate, + const ProgressData source_progress) const { return source_progress; } @@ -181,8 +188,8 @@ class PhysicalOperator { return false; } - virtual bool RequiresBatchIndex() const { - return false; + virtual OperatorPartitionInfo RequiredPartitionInfo() const { + return OperatorPartitionInfo::NoPartitionInfo(); } //! Whether or not the sink operator depends on the order of the input chunks @@ -241,8 +248,12 @@ class CachingPhysicalOperator : public PhysicalOperator { bool caching_supported; public: + //! This Execute will prevent small chunks from entering the pipeline, buffering them until a bigger chunk is + //! created. OperatorResultType Execute(ExecutionContext &context, DataChunk &input, DataChunk &chunk, GlobalOperatorState &gstate, OperatorState &state) const final; + //! FinalExecute is used here to send out the remainder of the chunk (< STANDARD_VECTOR_SIZE) that we still had + //! cached. OperatorFinalizeResultType FinalExecute(ExecutionContext &context, DataChunk &chunk, GlobalOperatorState &gstate, OperatorState &state) const final; diff --git a/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp b/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp index 6c6717c4..9c0d6df1 100644 --- a/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp +++ b/src/duckdb/src/include/duckdb/execution/physical_operator_states.hpp @@ -16,6 +16,7 @@ #include "duckdb/execution/execution_context.hpp" #include "duckdb/optimizer/join_order/join_node.hpp" #include "duckdb/parallel/interrupt.hpp" +#include "duckdb/execution/partition_info.hpp" namespace duckdb { class Event; @@ -26,17 +27,6 @@ class PipelineBuildState; class MetaPipeline; class InterruptState; -struct SourcePartitionInfo { - //! The current batch index - //! This is only set in case RequiresBatchIndex() is true, and the source has support for it (SupportsBatchIndex()) - //! Otherwise this is left on INVALID_INDEX - //! The batch index is a globally unique, increasing index that should be used to maintain insertion order - //! //! in conjunction with parallelism - optional_idx batch_index; - //! The minimum batch index that any thread is currently actively reading - optional_idx min_batch_index; -}; - // LCOV_EXCL_START class OperatorState { public: diff --git a/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp b/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp index 0b09b349..51797f58 100644 --- a/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp +++ b/src/duckdb/src/include/duckdb/execution/physical_plan_generator.hpp @@ -45,8 +45,6 @@ class PhysicalPlanGenerator { //! Whether or not we should preserve insertion order for executing the given sink static bool PreserveInsertionOrder(ClientContext &context, PhysicalOperator &plan); - static bool HasEquality(vector &conds, idx_t &range_count); - protected: unique_ptr CreatePlan(LogicalOperator &op); diff --git a/src/duckdb/src/include/duckdb/execution/progress_data.hpp b/src/duckdb/src/include/duckdb/execution/progress_data.hpp new file mode 100644 index 00000000..01d5b875 --- /dev/null +++ b/src/duckdb/src/include/duckdb/execution/progress_data.hpp @@ -0,0 +1,55 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/execution/progress_data.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/assert.hpp" + +namespace duckdb { + +struct ProgressData { + double done = 0.0; + double total = 0.0; + bool invalid = false; + double ProgressDone() const { + // ProgressDone requires a valid state + D_ASSERT(IsValid()); + + return done / total; + } + void Add(const ProgressData &other) { + // Add is unchecked, propagating invalid + done += other.done; + total += other.total; + invalid |= other.invalid; + } + void Normalize(const double target = 1.0) { + // Normalize checks only `target`, propagating invalid + D_ASSERT(target > 0.0); + if (IsValid()) { + if (total > 0.0) { + done /= total; + } + total = 1.0; + done *= target; + total *= target; + } else { + SetInvalid(); + } + } + void SetInvalid() { + invalid = true; + done = 0.0; + total = 1.0; + } + bool IsValid() const { + return (!invalid) && (done >= 0.0) && (done <= total) && (total >= 0.0); + } +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp b/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp index 2134de07..b14ebb17 100644 --- a/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp +++ b/src/duckdb/src/include/duckdb/execution/radix_partitioned_hashtable.hpp @@ -10,6 +10,7 @@ #include "duckdb/common/types/row/tuple_data_layout.hpp" #include "duckdb/execution/operator/aggregate/grouped_aggregate_data.hpp" +#include "duckdb/execution/progress_data.hpp" #include "duckdb/parser/group_by_node.hpp" namespace duckdb { @@ -50,7 +51,7 @@ class RadixPartitionedHashTable { SourceResultType GetData(ExecutionContext &context, DataChunk &chunk, GlobalSinkState &sink, OperatorSourceInput &input) const; - double GetProgress(ClientContext &context, GlobalSinkState &sink_p, GlobalSourceState &gstate) const; + ProgressData GetProgress(ClientContext &context, GlobalSinkState &sink_p, GlobalSourceState &gstate) const; const TupleDataLayout &GetLayout() const; idx_t MaxThreads(GlobalSinkState &sink) const; diff --git a/src/duckdb/src/include/duckdb/execution/window_executor.hpp b/src/duckdb/src/include/duckdb/execution/window_executor.hpp deleted file mode 100644 index 0c9a7c34..00000000 --- a/src/duckdb/src/include/duckdb/execution/window_executor.hpp +++ /dev/null @@ -1,343 +0,0 @@ -//===----------------------------------------------------------------------===// -// DuckDB -// -// duckdb/execution/window_executor.hpp -// -// -//===----------------------------------------------------------------------===// - -#pragma once - -#include "duckdb/execution/expression_executor.hpp" -#include "duckdb/execution/window_segment_tree.hpp" -#include "duckdb/planner/expression/bound_window_expression.hpp" -#include "duckdb/common/vector_operations/vector_operations.hpp" - -namespace duckdb { - -// A wrapper for building DataChunks in parallel -class WindowDataChunk { -public: - // True if the vector data can just be copied to - static bool IsSimple(const Vector &v); - - static inline bool IsMaskAligned(idx_t begin, idx_t end, idx_t count) { - return ValidityMask::IsAligned(begin) && (ValidityMask::IsAligned(end) || (end == count)); - } - - explicit WindowDataChunk(DataChunk &chunk); - - void Initialize(Allocator &allocator, const vector &types, idx_t capacity); - - void Copy(DataChunk &src, idx_t begin); - - //! The wrapped chunk - DataChunk &chunk; - -private: - //! True if the column is a scalar only value - vector is_simple; - //! Exclusive lock for each column - vector locks; -}; - -struct WindowInputExpression { - static void PrepareInputExpression(Expression &expr, ExpressionExecutor &executor, DataChunk &chunk) { - vector types; - types.push_back(expr.return_type); - executor.AddExpression(expr); - - auto &allocator = executor.GetAllocator(); - chunk.Initialize(allocator, types); - } - - WindowInputExpression(optional_ptr expr_p, ClientContext &context) - : expr(expr_p), ptype(PhysicalType::INVALID), scalar(true), executor(context) { - if (expr) { - PrepareInputExpression(*expr, executor, chunk); - ptype = expr->return_type.InternalType(); - scalar = expr->IsScalar(); - } - } - - void Execute(DataChunk &input_chunk) { - if (expr) { - chunk.Reset(); - executor.Execute(input_chunk, chunk); - chunk.Verify(); - chunk.Flatten(); - } - } - - template - inline T GetCell(idx_t i) const { - D_ASSERT(!chunk.data.empty()); - const auto data = FlatVector::GetData(chunk.data[0]); - return data[scalar ? 0 : i]; - } - - inline bool CellIsNull(idx_t i) const { - D_ASSERT(!chunk.data.empty()); - if (chunk.data[0].GetVectorType() == VectorType::CONSTANT_VECTOR) { - return ConstantVector::IsNull(chunk.data[0]); - } - return FlatVector::IsNull(chunk.data[0], i); - } - - inline void CopyCell(Vector &target, idx_t target_offset, idx_t width = 1) const { - D_ASSERT(!chunk.data.empty()); - auto &source = chunk.data[0]; - auto source_offset = scalar ? 0 : target_offset; - VectorOperations::Copy(source, target, source_offset + width, source_offset, target_offset); - } - - optional_ptr expr; - PhysicalType ptype; - bool scalar; - ExpressionExecutor executor; - DataChunk chunk; -}; - -struct WindowInputColumn { - WindowInputColumn(optional_ptr expr_p, ClientContext &context, idx_t count); - - void Copy(DataChunk &input_chunk, idx_t input_idx); - - inline bool CellIsNull(idx_t i) const { - D_ASSERT(!target.data.empty()); - D_ASSERT(i < count); - return FlatVector::IsNull((target.data[0]), scalar ? 0 : i); - } - - template - inline T GetCell(idx_t i) const { - D_ASSERT(!target.data.empty()); - D_ASSERT(i < count); - const auto data = FlatVector::GetData(target.data[0]); - return data[scalar ? 0 : i]; - } - - optional_ptr expr; - PhysicalType ptype; - const bool scalar; - const idx_t count; - -private: - DataChunk target; - WindowDataChunk wtarget; -}; - -// Column indexes of the bounds chunk -enum WindowBounds : uint8_t { PARTITION_BEGIN, PARTITION_END, PEER_BEGIN, PEER_END, WINDOW_BEGIN, WINDOW_END }; - -class WindowExecutorState { -public: - WindowExecutorState() {}; - virtual ~WindowExecutorState() { - } - - template - TARGET &Cast() { - DynamicCastCheck(this); - return reinterpret_cast(*this); - } - template - const TARGET &Cast() const { - DynamicCastCheck(this); - return reinterpret_cast(*this); - } -}; - -class WindowExecutor; - -class WindowExecutorGlobalState : public WindowExecutorState { -public: - WindowExecutorGlobalState(const WindowExecutor &executor, const idx_t payload_count, - const ValidityMask &partition_mask, const ValidityMask &order_mask); - - const WindowExecutor &executor; - - const idx_t payload_count; - const ValidityMask &partition_mask; - const ValidityMask &order_mask; - vector arg_types; - - // evaluate RANGE expressions, if needed - WindowInputColumn range; -}; - -class WindowExecutorLocalState : public WindowExecutorState { -public: - explicit WindowExecutorLocalState(const WindowExecutorGlobalState &gstate); - - void Sink(WindowExecutorGlobalState &gstate, DataChunk &input_chunk, idx_t input_idx); - - // Argument evaluation - ExpressionExecutor payload_executor; - DataChunk payload_chunk; - - //! Range evaluation - ExpressionExecutor range_executor; - DataChunk range_chunk; -}; - -class WindowExecutor { -public: - WindowExecutor(BoundWindowExpression &wexpr, ClientContext &context); - virtual ~WindowExecutor() { - } - - virtual unique_ptr - GetGlobalState(const idx_t payload_count, const ValidityMask &partition_mask, const ValidityMask &order_mask) const; - virtual unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const; - - virtual void Sink(DataChunk &input_chunk, const idx_t input_idx, const idx_t total_count, - WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const; - - virtual void Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const { - } - - void Evaluate(idx_t row_idx, DataChunk &input_chunk, Vector &result, WindowExecutorLocalState &lstate, - WindowExecutorGlobalState &gstate) const; - - // The function - const BoundWindowExpression &wexpr; - ClientContext &context; - -protected: - virtual void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const = 0; -}; - -class WindowAggregateExecutor : public WindowExecutor { -public: - WindowAggregateExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowAggregationMode mode); - - void Sink(DataChunk &input_chunk, const idx_t input_idx, const idx_t total_count, WindowExecutorGlobalState &gstate, - WindowExecutorLocalState &lstate) const override; - void Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const override; - - unique_ptr GetGlobalState(const idx_t payload_count, const ValidityMask &partition_mask, - const ValidityMask &order_mask) const override; - unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; - - const WindowAggregationMode mode; - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -class WindowRowNumberExecutor : public WindowExecutor { -public: - WindowRowNumberExecutor(BoundWindowExpression &wexpr, ClientContext &context); - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -// Base class for non-aggregate functions that use peer boundaries -class WindowRankExecutor : public WindowExecutor { -public: - WindowRankExecutor(BoundWindowExpression &wexpr, ClientContext &context); - - unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -class WindowDenseRankExecutor : public WindowExecutor { -public: - WindowDenseRankExecutor(BoundWindowExpression &wexpr, ClientContext &context); - - unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -class WindowPercentRankExecutor : public WindowExecutor { -public: - WindowPercentRankExecutor(BoundWindowExpression &wexpr, ClientContext &context); - - unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -class WindowCumeDistExecutor : public WindowExecutor { -public: - WindowCumeDistExecutor(BoundWindowExpression &wexpr, ClientContext &context); - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -// Base class for non-aggregate functions that have a payload -class WindowValueExecutor : public WindowExecutor { -public: - WindowValueExecutor(BoundWindowExpression &wexpr, ClientContext &context); - - void Sink(DataChunk &input_chunk, const idx_t input_idx, const idx_t total_count, WindowExecutorGlobalState &gstate, - WindowExecutorLocalState &lstate) const override; - - unique_ptr GetGlobalState(const idx_t payload_count, const ValidityMask &partition_mask, - const ValidityMask &order_mask) const override; - unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; -}; - -// -class WindowNtileExecutor : public WindowValueExecutor { -public: - WindowNtileExecutor(BoundWindowExpression &wexpr, ClientContext &context); - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; -class WindowLeadLagExecutor : public WindowValueExecutor { -public: - WindowLeadLagExecutor(BoundWindowExpression &wexpr, ClientContext &context); - - unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -class WindowFirstValueExecutor : public WindowValueExecutor { -public: - WindowFirstValueExecutor(BoundWindowExpression &wexpr, ClientContext &context); - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -class WindowLastValueExecutor : public WindowValueExecutor { -public: - WindowLastValueExecutor(BoundWindowExpression &wexpr, ClientContext &context); - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -class WindowNthValueExecutor : public WindowValueExecutor { -public: - WindowNthValueExecutor(BoundWindowExpression &wexpr, ClientContext &context); - -protected: - void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, Vector &result, - idx_t count, idx_t row_idx) const override; -}; - -} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp b/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp deleted file mode 100644 index d70b4789..00000000 --- a/src/duckdb/src/include/duckdb/execution/window_segment_tree.hpp +++ /dev/null @@ -1,165 +0,0 @@ -//===----------------------------------------------------------------------===// -// DuckDB -// -// duckdb/execution/window_segment_tree.hpp -// -// -//===----------------------------------------------------------------------===// - -#pragma once - -#include "duckdb/common/sort/sort.hpp" -#include "duckdb/common/types/data_chunk.hpp" -#include "duckdb/execution/physical_operator.hpp" -#include "duckdb/function/aggregate_function.hpp" -#include "duckdb/common/enums/window_aggregation_mode.hpp" -#include "duckdb/execution/operator/aggregate/aggregate_object.hpp" -#include "duckdb/parser/expression/window_expression.hpp" - -namespace duckdb { - -class WindowAggregatorState { -public: - WindowAggregatorState(); - virtual ~WindowAggregatorState() { - } - - template - TARGET &Cast() { - DynamicCastCheck(this); - return reinterpret_cast(*this); - } - template - const TARGET &Cast() const { - DynamicCastCheck(this); - return reinterpret_cast(*this); - } - - //! Allocator for aggregates - ArenaAllocator allocator; -}; - -class WindowAggregator { -public: - WindowAggregator(AggregateObject aggr, const vector &arg_types_p, const LogicalType &result_type_p, - const WindowExcludeMode exclude_mode_p); - virtual ~WindowAggregator(); - - // Threading states - virtual unique_ptr GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const; - virtual unique_ptr GetLocalState(const WindowAggregatorState &gstate) const = 0; - - // Build - virtual void Sink(WindowAggregatorState &gstate, WindowAggregatorState &lstate, DataChunk &arg_chunk, - idx_t input_idx, optional_ptr filter_sel, idx_t filtered); - virtual void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, const FrameStats &stats); - - // Probe - virtual void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, - Vector &result, idx_t count, idx_t row_idx) const = 0; - - //! A description of the aggregator - const AggregateObject aggr; - //! The argument types for the function - const vector arg_types; - //! The result type of the window function - const LogicalType result_type; - //! The size of a single aggregate state - const idx_t state_size; - //! The window exclusion clause - const WindowExcludeMode exclude_mode; -}; - -// Used for validation -class WindowNaiveAggregator : public WindowAggregator { -public: - WindowNaiveAggregator(AggregateObject aggr, const vector &arg_types_p, - const LogicalType &result_type_p, const WindowExcludeMode exclude_mode); - ~WindowNaiveAggregator() override; - - unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; - void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, - Vector &result, idx_t count, idx_t row_idx) const override; -}; - -class WindowConstantAggregator : public WindowAggregator { -public: - WindowConstantAggregator(AggregateObject aggr, const vector &arg_types_p, - const LogicalType &result_type_p, WindowExcludeMode exclude_mode_p); - ~WindowConstantAggregator() override { - } - - unique_ptr GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const override; - void Sink(WindowAggregatorState &gstate, WindowAggregatorState &lstate, DataChunk &arg_chunk, idx_t input_idx, - optional_ptr filter_sel, idx_t filtered) override; - void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, const FrameStats &stats) override; - - unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; - void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, - Vector &result, idx_t count, idx_t row_idx) const override; -}; - -class WindowCustomAggregator : public WindowAggregator { -public: - WindowCustomAggregator(AggregateObject aggr, const vector &arg_types_p, - const LogicalType &result_type_p, const WindowExcludeMode exclude_mode); - ~WindowCustomAggregator() override; - - unique_ptr GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const override; - void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, const FrameStats &stats) override; - - unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; - void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, - Vector &result, idx_t count, idx_t row_idx) const override; -}; - -class WindowSegmentTree : public WindowAggregator { - -public: - WindowSegmentTree(AggregateObject aggr, const vector &arg_types_p, const LogicalType &result_type_p, - WindowAggregationMode mode_p, const WindowExcludeMode exclude_mode); - - unique_ptr GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const override; - unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; - void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, const FrameStats &stats) override; - - void Evaluate(const WindowAggregatorState &gstate, WindowAggregatorState &lstate, const DataChunk &bounds, - Vector &result, idx_t count, idx_t row_idx) const override; - -public: - //! Use the combine API, if available - inline bool UseCombineAPI() const { - return mode < WindowAggregationMode::SEPARATE; - } - - //! Use the combine API, if available - WindowAggregationMode mode; -}; - -class WindowDistinctAggregator : public WindowAggregator { -public: - WindowDistinctAggregator(AggregateObject aggr, const vector &arg_types_p, - const LogicalType &result_type_p, const WindowExcludeMode exclude_mode_p, - ClientContext &context); - - // Build - unique_ptr GetGlobalState(idx_t group_count, - const ValidityMask &partition_mask) const override; - void Sink(WindowAggregatorState &gsink, WindowAggregatorState &lstate, DataChunk &arg_chunk, idx_t input_idx, - optional_ptr filter_sel, idx_t filtered) override; - void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, const FrameStats &stats) override; - - // Evaluate - unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; - void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, - Vector &result, idx_t count, idx_t row_idx) const override; - - //! Context for sorting - ClientContext &context; -}; - -} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/aggregate/distributive_function_utils.hpp b/src/duckdb/src/include/duckdb/function/aggregate/distributive_function_utils.hpp new file mode 100644 index 00000000..9f32d453 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/aggregate/distributive_function_utils.hpp @@ -0,0 +1,31 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/aggregate/distributive_function_utils.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct CountFunctionBase { + static AggregateFunction GetFunction(); +}; + +struct FirstFunctionGetter { + static AggregateFunction GetFunction(const LogicalType &type); +}; + +struct MinFunction { + static AggregateFunction GetFunction(); +}; + +struct MaxFunction { + static AggregateFunction GetFunction(); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp b/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp index cba1a7de..7d6eb327 100644 --- a/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/aggregate/distributive_functions.hpp @@ -1,36 +1,87 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/function/aggregate/distributive_functions.hpp +// function/aggregate/distributive_functions.hpp // // //===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// #pragma once -#include "duckdb/function/aggregate_function.hpp" #include "duckdb/function/function_set.hpp" -#include "duckdb/common/types/null_value.hpp" -#include "duckdb/function/built_in_functions.hpp" namespace duckdb { struct CountStarFun { - static AggregateFunction GetFunction(); + static constexpr const char *Name = "count_star"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; - static void RegisterFunction(BuiltinFunctions &set); + static AggregateFunction GetFunction(); }; struct CountFun { - static AggregateFunction GetFunction(); + static constexpr const char *Name = "count"; + static constexpr const char *Parameters = "arg"; + static constexpr const char *Description = "Returns the number of non-null values in arg."; + static constexpr const char *Example = "count(A)"; - static void RegisterFunction(BuiltinFunctions &set); + static AggregateFunctionSet GetFunctions(); }; struct FirstFun { - static AggregateFunction GetFunction(const LogicalType &type); + static constexpr const char *Name = "first"; + static constexpr const char *Parameters = "arg"; + static constexpr const char *Description = "Returns the first value (null or non-null) from arg. This function is affected by ordering."; + static constexpr const char *Example = "first(A)"; + + static AggregateFunctionSet GetFunctions(); +}; + +struct ArbitraryFun { + using ALIAS = FirstFun; + + static constexpr const char *Name = "arbitrary"; +}; + +struct LastFun { + static constexpr const char *Name = "last"; + static constexpr const char *Parameters = "arg"; + static constexpr const char *Description = "Returns the last value of a column. This function is affected by ordering."; + static constexpr const char *Example = "last(A)"; + + static AggregateFunctionSet GetFunctions(); +}; + +struct AnyValueFun { + static constexpr const char *Name = "any_value"; + static constexpr const char *Parameters = "arg"; + static constexpr const char *Description = "Returns the first non-null value from arg. This function is affected by ordering."; + static constexpr const char *Example = ""; + + static AggregateFunctionSet GetFunctions(); +}; + +struct MinFun { + static constexpr const char *Name = "min"; + static constexpr const char *Parameters = "arg"; + static constexpr const char *Description = "Returns the minimum value present in arg."; + static constexpr const char *Example = "min(A)"; + + static AggregateFunctionSet GetFunctions(); +}; + +struct MaxFun { + static constexpr const char *Name = "max"; + static constexpr const char *Parameters = "arg"; + static constexpr const char *Description = "Returns the maximum value present in arg."; + static constexpr const char *Example = "max(A)"; - static void RegisterFunction(BuiltinFunctions &set); + static AggregateFunctionSet GetFunctions(); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/minmax_n_helpers.hpp b/src/duckdb/src/include/duckdb/function/aggregate/minmax_n_helpers.hpp similarity index 95% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/minmax_n_helpers.hpp rename to src/duckdb/src/include/duckdb/function/aggregate/minmax_n_helpers.hpp index 09b0bb7d..9c59d11c 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/minmax_n_helpers.hpp +++ b/src/duckdb/src/include/duckdb/function/aggregate/minmax_n_helpers.hpp @@ -1,7 +1,14 @@ #pragma once -#include "duckdb/common/vector.hpp" +#include "duckdb/common/common.hpp" +#include "duckdb/storage/arena_allocator.hpp" #include "duckdb/common/algorithm.hpp" +#include "duckdb/common/pair.hpp" +#include "duckdb/common/types/string_type.hpp" +#include "duckdb/common/types/vector.hpp" +#include "duckdb/common/enums/order_type.hpp" +#include "duckdb/function/aggregate_function.hpp" +#include "duckdb/function/create_sort_key.hpp" namespace duckdb { @@ -33,6 +40,8 @@ struct HeapEntry { HeapEntry(HeapEntry &&other) noexcept { if (other.value.IsInlined()) { value = other.value; + capacity = 0; + allocated_data = nullptr; } else { capacity = other.capacity; allocated_data = other.allocated_data; @@ -294,11 +303,8 @@ struct MinMaxFallbackValue { static void PrepareData(Vector &input, const idx_t count, EXTRA_STATE &extra_state, UnifiedVectorFormat &format) { const OrderModifiers modifiers(OrderType::ASCENDING, OrderByNullType::NULLS_LAST); - CreateSortKeyHelpers::CreateSortKey(input, count, modifiers, extra_state); + CreateSortKeyHelpers::CreateSortKeyWithValidity(input, extra_state, modifiers, count); input.Flatten(count); - extra_state.Flatten(count); - // Ensure the validity vectors match, because we want to ignore nulls - FlatVector::Validity(extra_state).Initialize(FlatVector::Validity(input)); extra_state.ToUnifiedFormat(count, format); } }; diff --git a/src/duckdb/src/include/duckdb/core_functions/aggregate/sort_key_helpers.hpp b/src/duckdb/src/include/duckdb/function/aggregate/sort_key_helpers.hpp similarity index 93% rename from src/duckdb/src/include/duckdb/core_functions/aggregate/sort_key_helpers.hpp rename to src/duckdb/src/include/duckdb/function/aggregate/sort_key_helpers.hpp index 12798ae3..f1ecb86f 100644 --- a/src/duckdb/src/include/duckdb/core_functions/aggregate/sort_key_helpers.hpp +++ b/src/duckdb/src/include/duckdb/function/aggregate/sort_key_helpers.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/aggregate/sort_key_helpers.hpp +// duckdb/function/aggregate/sort_key_helpers.hpp // // //===----------------------------------------------------------------------===// @@ -9,7 +9,7 @@ #pragma once #include "duckdb/common/common.hpp" -#include "duckdb/core_functions/create_sort_key.hpp" +#include "duckdb/function/create_sort_key.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/function/aggregate_function.hpp b/src/duckdb/src/include/duckdb/function/aggregate_function.hpp index 4d4ef63f..e63533d5 100644 --- a/src/duckdb/src/include/duckdb/function/aggregate_function.hpp +++ b/src/duckdb/src/include/duckdb/function/aggregate_function.hpp @@ -16,6 +16,8 @@ namespace duckdb { +class BufferManager; + //! A half-open range of frame boundary values _relative to the current row_ //! This is why they are signed values. struct FrameDelta { @@ -29,14 +31,21 @@ struct FrameDelta { using FrameStats = array; //! The partition data for custom window functions +//! Note that if the inputs is nullptr then the column count is 0, +//! but the row count will still be valid +class ColumnDataCollection; struct WindowPartitionInput { - WindowPartitionInput(const Vector inputs[], idx_t input_count, idx_t count, const ValidityMask &filter_mask, + WindowPartitionInput(ClientContext &context, const ColumnDataCollection *inputs, idx_t count, + vector &column_ids, vector &all_valid, const ValidityMask &filter_mask, const FrameStats &stats) - : inputs(inputs), input_count(input_count), count(count), filter_mask(filter_mask), stats(stats) { + : context(context), inputs(inputs), count(count), column_ids(column_ids), all_valid(all_valid), + filter_mask(filter_mask), stats(stats) { } - const Vector *inputs; - idx_t input_count; + ClientContext &context; + const ColumnDataCollection *inputs; idx_t count; + vector column_ids; + vector all_valid; const ValidityMask &filter_mask; const FrameStats stats; }; @@ -94,6 +103,13 @@ struct AggregateFunctionInfo { } }; +enum class AggregateDestructorType { + STANDARD, + // legacy destructors allow non-trivial destructors in aggregate states + // these might not be trivial to off-load to disk + LEGACY +}; + class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug in clang-tidy public: AggregateFunction(const string &name, const vector &arguments, const LogicalType &return_type, @@ -108,7 +124,8 @@ class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug LogicalType(LogicalTypeId::INVALID), null_handling), state_size(state_size), initialize(initialize), update(update), combine(combine), finalize(finalize), simple_update(simple_update), window(window), bind(bind), destructor(destructor), statistics(statistics), - serialize(serialize), deserialize(deserialize), order_dependent(AggregateOrderDependent::ORDER_DEPENDENT) { + serialize(serialize), deserialize(deserialize), order_dependent(AggregateOrderDependent::ORDER_DEPENDENT), + distinct_dependent(AggregateDistinctDependent::DISTINCT_DEPENDENT) { } AggregateFunction(const string &name, const vector &arguments, const LogicalType &return_type, @@ -122,7 +139,8 @@ class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug LogicalType(LogicalTypeId::INVALID)), state_size(state_size), initialize(initialize), update(update), combine(combine), finalize(finalize), simple_update(simple_update), window(window), bind(bind), destructor(destructor), statistics(statistics), - serialize(serialize), deserialize(deserialize), order_dependent(AggregateOrderDependent::ORDER_DEPENDENT) { + serialize(serialize), deserialize(deserialize), order_dependent(AggregateOrderDependent::ORDER_DEPENDENT), + distinct_dependent(AggregateDistinctDependent::DISTINCT_DEPENDENT) { } AggregateFunction(const vector &arguments, const LogicalType &return_type, aggregate_size_t state_size, @@ -177,6 +195,8 @@ class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug aggregate_deserialize_t deserialize; //! Whether or not the aggregate is order dependent AggregateOrderDependent order_dependent; + //! Whether or not the aggregate is affect by distinct modifiers + AggregateDistinctDependent distinct_dependent; //! Additional function info, passed to the bind shared_ptr function_info; @@ -197,29 +217,33 @@ class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug AggregateFunction::StateFinalize, AggregateFunction::NullaryUpdate); } - template + template static AggregateFunction UnaryAggregate(const LogicalType &input_type, LogicalType return_type, FunctionNullHandling null_handling = FunctionNullHandling::DEFAULT_NULL_HANDLING) { - return AggregateFunction( - {input_type}, return_type, AggregateFunction::StateSize, - AggregateFunction::StateInitialize, AggregateFunction::UnaryScatterUpdate, - AggregateFunction::StateCombine, AggregateFunction::StateFinalize, - null_handling, AggregateFunction::UnaryUpdate); + return AggregateFunction({input_type}, return_type, AggregateFunction::StateSize, + AggregateFunction::StateInitialize, + AggregateFunction::UnaryScatterUpdate, + AggregateFunction::StateCombine, + AggregateFunction::StateFinalize, null_handling, + AggregateFunction::UnaryUpdate); } - template + template static AggregateFunction UnaryAggregateDestructor(LogicalType input_type, LogicalType return_type) { - auto aggregate = UnaryAggregate(input_type, return_type); + auto aggregate = UnaryAggregate(input_type, return_type); aggregate.destructor = AggregateFunction::StateDestroy; return aggregate; } - template + template static AggregateFunction BinaryAggregate(const LogicalType &a_type, const LogicalType &b_type, LogicalType return_type) { return AggregateFunction({a_type, b_type}, return_type, AggregateFunction::StateSize, - AggregateFunction::StateInitialize, + AggregateFunction::StateInitialize, AggregateFunction::BinaryScatterUpdate, AggregateFunction::StateCombine, AggregateFunction::StateFinalize, @@ -232,8 +256,14 @@ class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug return sizeof(STATE); } - template + template static void StateInitialize(const AggregateFunction &, data_ptr_t state) { + // FIXME: we should remove the "destructor_type" option in the future +#if !defined(__GNUC__) || (__GNUC__ >= 5) + static_assert(std::is_trivially_move_constructible::value || + destructor_type == AggregateDestructorType::LEGACY, + "Aggregate state must be trivially move constructible"); +#endif OP::Initialize(*reinterpret_cast(state)); } @@ -265,16 +295,6 @@ class AggregateFunction : public BaseScalarFunction { // NOLINT: work-around bug AggregateExecutor::UnaryUpdate(inputs[0], aggr_input_data, state, count); } - template - static void UnaryWindow(AggregateInputData &aggr_input_data, const WindowPartitionInput &partition, - const_data_ptr_t g_state, data_ptr_t l_state, const SubFrames &subframes, Vector &result, - idx_t rid) { - - D_ASSERT(partition.input_count == 1); - AggregateExecutor::UnaryWindow( - partition.inputs[0], partition.filter_mask, aggr_input_data, l_state, subframes, result, rid, g_state); - } - template static void BinaryScatterUpdate(Vector inputs[], AggregateInputData &aggr_input_data, idx_t input_count, Vector &states, idx_t count) { diff --git a/src/duckdb/src/include/duckdb/function/aggregate_state.hpp b/src/duckdb/src/include/duckdb/function/aggregate_state.hpp index 9b0015d2..bb0d096d 100644 --- a/src/duckdb/src/include/duckdb/function/aggregate_state.hpp +++ b/src/duckdb/src/include/duckdb/function/aggregate_state.hpp @@ -17,6 +17,8 @@ namespace duckdb { enum class AggregateType : uint8_t { NON_DISTINCT = 1, DISTINCT = 2 }; //! Whether or not the input order influences the result of the aggregate enum class AggregateOrderDependent : uint8_t { ORDER_DEPENDENT = 1, NOT_ORDER_DEPENDENT = 2 }; +//! Whether or not the input distinctness influences the result of the aggregate +enum class AggregateDistinctDependent : uint8_t { DISTINCT_DEPENDENT = 1, NOT_DISTINCT_DEPENDENT = 2 }; //! Whether or not the combiner needs to preserve the source enum class AggregateCombineType : uint8_t { PRESERVE_INPUT = 1, ALLOW_DESTRUCTIVE = 2 }; diff --git a/src/duckdb/src/include/duckdb/function/built_in_functions.hpp b/src/duckdb/src/include/duckdb/function/built_in_functions.hpp index 3e665afe..fb8ef316 100644 --- a/src/duckdb/src/include/duckdb/function/built_in_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/built_in_functions.hpp @@ -54,19 +54,12 @@ class BuiltinFunctions { void RegisterArrowFunctions(); void RegisterSnifferFunction(); - // aggregates - void RegisterDistributiveAggregates(); - - // scalar functions - void RegisterCompressedMaterializationFunctions(); - void RegisterGenericFunctions(); - void RegisterOperators(); - void RegisterStringFunctions(); - void RegisterNestedFunctions(); - void RegisterSequenceFunctions(); + void RegisterExtensionOverloads(); // pragmas void RegisterPragmaFunctions(); + + void AddExtensionFunction(ScalarFunctionSet set); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/compression/compression.hpp b/src/duckdb/src/include/duckdb/function/compression/compression.hpp index cddfc806..28113c78 100644 --- a/src/duckdb/src/include/duckdb/function/compression/compression.hpp +++ b/src/duckdb/src/include/duckdb/function/compression/compression.hpp @@ -63,4 +63,14 @@ struct FSSTFun { static bool TypeIsSupported(const PhysicalType physical_type); }; +struct ZSTDFun { + static CompressionFunction GetFunction(PhysicalType type); + static bool TypeIsSupported(PhysicalType type); +}; + +struct RoaringCompressionFun { + static CompressionFunction GetFunction(PhysicalType type); + static bool TypeIsSupported(const PhysicalType physical_type); +}; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/compression_function.hpp b/src/duckdb/src/include/duckdb/function/compression_function.hpp index 40f50653..9199f45a 100644 --- a/src/duckdb/src/include/duckdb/function/compression_function.hpp +++ b/src/duckdb/src/include/duckdb/function/compression_function.hpp @@ -22,6 +22,7 @@ class ColumnData; class ColumnDataCheckpointer; class ColumnSegment; class SegmentStatistics; +class TableFilter; struct ColumnSegmentState; struct ColumnFetchState; @@ -95,6 +96,11 @@ struct CompressedSegmentState { return ""; } // LCOV_EXCL_STOP + //! Get the block ids of additional pages created by the segment + virtual vector GetAdditionalBlocks() const { // LCOV_EXCL_START + return vector(); + } // LCOV_EXCL_STOP + template TARGET &Cast() { DynamicCastCheck(this); @@ -163,6 +169,12 @@ typedef void (*compression_scan_vector_t)(ColumnSegment &segment, ColumnScanStat //! Function prototype used for reading an arbitrary ('scan_count') number of values typedef void (*compression_scan_partial_t)(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, idx_t result_offset); +//! Function prototype used for reading a subset of the values of a vector indicated by a selection vector +typedef void (*compression_select_t)(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + const SelectionVector &sel, idx_t sel_count); +//! Function prototype used for applying a filter to a vector while scanning that vector +typedef void (*compression_filter_t)(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + SelectionVector &sel, idx_t &sel_count, const TableFilter &filter); //! Function prototype used for reading a single value typedef void (*compression_fetch_row_t)(ColumnSegment &segment, ColumnFetchState &state, row_t row_id, Vector &result, idx_t result_idx); @@ -206,13 +218,14 @@ class CompressionFunction { compression_serialize_state_t serialize_state = nullptr, compression_deserialize_state_t deserialize_state = nullptr, compression_cleanup_state_t cleanup_state = nullptr, - compression_init_prefetch_t init_prefetch = nullptr) + compression_init_prefetch_t init_prefetch = nullptr, compression_select_t select = nullptr, + compression_filter_t filter = nullptr) : type(type), data_type(data_type), init_analyze(init_analyze), analyze(analyze), final_analyze(final_analyze), init_compression(init_compression), compress(compress), compress_finalize(compress_finalize), init_prefetch(init_prefetch), init_scan(init_scan), scan_vector(scan_vector), scan_partial(scan_partial), - fetch_row(fetch_row), skip(skip), init_segment(init_segment), init_append(init_append), append(append), - finalize_append(finalize_append), revert_append(revert_append), serialize_state(serialize_state), - deserialize_state(deserialize_state), cleanup_state(cleanup_state) { + select(select), filter(filter), fetch_row(fetch_row), skip(skip), init_segment(init_segment), + init_append(init_append), append(append), finalize_append(finalize_append), revert_append(revert_append), + serialize_state(serialize_state), deserialize_state(deserialize_state), cleanup_state(cleanup_state) { } //! Compression type @@ -251,6 +264,10 @@ class CompressionFunction { //! this can request > vector_size as well //! this is used if a vector crosses segment boundaries, or for child columns of lists compression_scan_partial_t scan_partial; + //! scan a subset of a vector + compression_select_t select; + //! Scan and apply a filter to a vector while scanning + compression_filter_t filter; //! fetch an individual row from the compressed vector //! used for index lookups compression_fetch_row_t fetch_row; diff --git a/src/duckdb/src/include/duckdb/core_functions/create_sort_key.hpp b/src/duckdb/src/include/duckdb/function/create_sort_key.hpp similarity index 86% rename from src/duckdb/src/include/duckdb/core_functions/create_sort_key.hpp rename to src/duckdb/src/include/duckdb/function/create_sort_key.hpp index 1f464945..ab5e6bc1 100644 --- a/src/duckdb/src/include/duckdb/core_functions/create_sort_key.hpp +++ b/src/duckdb/src/include/duckdb/function/create_sort_key.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/create_sort_key.hpp +// duckdb/function/create_sort_key.hpp // // //===----------------------------------------------------------------------===// @@ -46,8 +46,11 @@ struct OrderModifiers { }; struct CreateSortKeyHelpers { + static void CreateSortKey(DataChunk &input, const vector &modifiers, Vector &result); static void CreateSortKey(Vector &input, idx_t input_count, OrderModifiers modifiers, Vector &result); static void DecodeSortKey(string_t sort_key, Vector &result, idx_t result_idx, OrderModifiers modifiers); + static void DecodeSortKey(string_t sort_key, DataChunk &result, idx_t result_idx, + const vector &modifiers); static void CreateSortKeyWithValidity(Vector &input, Vector &result, const OrderModifiers &modifiers, const idx_t count); }; diff --git a/src/duckdb/src/include/duckdb/function/encoding_function.hpp b/src/duckdb/src/include/duckdb/function/encoding_function.hpp new file mode 100644 index 00000000..f9e042e1 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/encoding_function.hpp @@ -0,0 +1,78 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/encoding_function.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/common.hpp" +#include "duckdb/common/enums/compression_type.hpp" +#include "duckdb/common/map.hpp" +#include "duckdb/common/mutex.hpp" +#include "duckdb/function/function.hpp" +#include "duckdb/storage/data_pointer.hpp" +#include "duckdb/storage/storage_info.hpp" + +namespace duckdb { + +struct DBConfig; + +//! Decode function, basically takes information about the decoded and the encoded buffers. +typedef void (*encode_t)(const char *encoded_buffer, idx_t &encoded_buffer_current_position, + const idx_t encoded_buffer_size, char *decoded_buffer, idx_t &decoded_buffer_current_position, + const idx_t decoded_buffer_size, char *remaining_bytes_buffer, idx_t &remaining_bytes_size); + +class EncodingFunction { +public: + EncodingFunction() : encode_function(nullptr), ratio(0), bytes_per_iteration(0) { + } + + EncodingFunction(const string &encode_type, encode_t encode_function, const idx_t ratio, + const idx_t bytes_per_iteration) + : encoding_type(encode_type), encode_function(encode_function), ratio(ratio), + bytes_per_iteration(bytes_per_iteration) { + D_ASSERT(ratio > 0); + D_ASSERT(encode_function); + D_ASSERT(bytes_per_iteration > 0); + }; + + ~EncodingFunction() {}; + + string GetType() const { + return encoding_type; + } + encode_t GetFunction() const { + return encode_function; + } + idx_t GetRatio() const { + return ratio; + } + idx_t GetBytesPerIteration() const { + return bytes_per_iteration; + } + +private: + //! The encoding type of this function (e.g., utf-8) + string encoding_type; + //! The actual encoding function + encode_t encode_function; + //! Ratio of the max size this encoded buffer could ever reach on a decoded buffer + idx_t ratio; + //! How many bytes in the decoded buffer one iteration of the encoded function can cause. + //! e.g., one iteration of Latin-1 to UTF-8 can generate max 2 bytes. + //! However, one iteration of UTF-16 to UTF-8, can generate up to 3 UTF-8 bytes. + idx_t bytes_per_iteration; +}; + +//! The set of encoding functions +struct EncodingFunctionSet { + EncodingFunctionSet() {}; + static void Initialize(DBConfig &config); + mutex lock; + case_insensitive_map_t functions; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/function.hpp b/src/duckdb/src/include/duckdb/function/function.hpp index 8575f270..89d4a0da 100644 --- a/src/duckdb/src/include/duckdb/function/function.hpp +++ b/src/duckdb/src/include/duckdb/function/function.hpp @@ -43,6 +43,15 @@ enum class FunctionNullHandling : uint8_t { DEFAULT_NULL_HANDLING = 0, SPECIAL_H //! but the result might change across queries (e.g. NOW(), CURRENT_TIME) //! VOLATILE -> the result of this function might change per row (e.g. RANDOM()) enum class FunctionStability : uint8_t { CONSISTENT = 0, VOLATILE = 1, CONSISTENT_WITHIN_QUERY = 2 }; +//! How to handle collations +//! PROPAGATE_COLLATIONS -> this function combines collation from its inputs and emits them again (default) +//! PUSH_COMBINABLE_COLLATIONS -> combinable collations are executed for the input arguments +//! IGNORE_COLLATIONS -> collations are completely ignored by the function +enum class FunctionCollationHandling : uint8_t { + PROPAGATE_COLLATIONS = 0, + PUSH_COMBINABLE_COLLATIONS = 1, + IGNORE_COLLATIONS = 2 +}; struct FunctionData { DUCKDB_API virtual ~FunctionData(); @@ -159,6 +168,8 @@ class BaseScalarFunction : public SimpleFunction { FunctionStability stability; //! How this function handles NULL values FunctionNullHandling null_handling; + //! Collation handling of the function + FunctionCollationHandling collation_handling; public: DUCKDB_API hash_t Hash() const; diff --git a/src/duckdb/src/include/duckdb/function/function_binder.hpp b/src/duckdb/src/include/duckdb/function/function_binder.hpp index 9f1fb315..53e90b2e 100644 --- a/src/duckdb/src/include/duckdb/function/function_binder.hpp +++ b/src/duckdb/src/include/duckdb/function/function_binder.hpp @@ -21,8 +21,10 @@ namespace duckdb { //! The FunctionBinder class is responsible for binding functions class FunctionBinder { public: + DUCKDB_API explicit FunctionBinder(Binder &binder); DUCKDB_API explicit FunctionBinder(ClientContext &context); + optional_ptr binder; ClientContext &context; public: diff --git a/src/duckdb/src/include/duckdb/function/function_list.hpp b/src/duckdb/src/include/duckdb/function/function_list.hpp new file mode 100644 index 00000000..feccb823 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/function_list.hpp @@ -0,0 +1,39 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/function_list.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb.hpp" + +namespace duckdb { + +typedef ScalarFunction (*get_scalar_function_t)(); +typedef ScalarFunctionSet (*get_scalar_function_set_t)(); +typedef AggregateFunction (*get_aggregate_function_t)(); +typedef AggregateFunctionSet (*get_aggregate_function_set_t)(); + +struct StaticFunctionDefinition { + const char *name; + const char *parameters; + const char *description; + const char *example; + get_scalar_function_t get_function; + get_scalar_function_set_t get_function_set; + get_aggregate_function_t get_aggregate_function; + get_aggregate_function_set_t get_aggregate_function_set; +}; + +class Catalog; +struct CatalogTransaction; + +struct FunctionList { + static const StaticFunctionDefinition *GetInternalFunctionList(); + static void RegisterFunctions(Catalog &catalog, CatalogTransaction transaction); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/function_set.hpp b/src/duckdb/src/include/duckdb/function/function_set.hpp index d20a5273..3a0a223b 100644 --- a/src/duckdb/src/include/duckdb/function/function_set.hpp +++ b/src/duckdb/src/include/duckdb/function/function_set.hpp @@ -41,23 +41,29 @@ class FunctionSet { D_ASSERT(offset < functions.size()); return functions[offset]; } - bool MergeFunctionSet(FunctionSet new_functions) { + bool MergeFunctionSet(FunctionSet new_functions, bool override = false) { D_ASSERT(!new_functions.functions.empty()); - bool need_rewrite_entry = false; for (auto &new_func : new_functions.functions) { - bool can_add = true; + bool overwritten = false; for (auto &func : functions) { if (new_func.Equal(func)) { - can_add = false; + // function overload already exists + if (override) { + // override it + overwritten = true; + func = new_func; + } else { + // throw an error + return false; + } break; } } - if (can_add) { + if (!overwritten) { functions.push_back(new_func); - need_rewrite_entry = true; } } - return need_rewrite_entry; + return true; } }; diff --git a/src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp b/src/duckdb/src/include/duckdb/function/lambda_functions.hpp similarity index 99% rename from src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp rename to src/duckdb/src/include/duckdb/function/lambda_functions.hpp index ea4db5ac..a47894a3 100644 --- a/src/duckdb/src/include/duckdb/core_functions/lambda_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/lambda_functions.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/lambda_functions.hpp +// duckdb/function/lambda_functions.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/function/register_function_list_helper.hpp b/src/duckdb/src/include/duckdb/function/register_function_list_helper.hpp new file mode 100644 index 00000000..fc389cff --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/register_function_list_helper.hpp @@ -0,0 +1,69 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/register_function_list_helper.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/main/config.hpp" +#include "duckdb/parser/parsed_data/create_aggregate_function_info.hpp" +#include "duckdb/parser/parsed_data/create_scalar_function_info.hpp" + +namespace duckdb { + +static void FillFunctionParameters(FunctionDescription &function_description, const char *function_name, + vector ¶meters, vector &descriptions, vector &examples) { + for (string ¶meter : parameters) { + vector parameter_name_type = StringUtil::Split(parameter, "::"); + if (parameter_name_type.size() == 1) { + function_description.parameter_names.push_back(std::move(parameter_name_type[0])); + function_description.parameter_types.push_back(LogicalType::ANY); + } else if (parameter_name_type.size() == 2) { + function_description.parameter_names.push_back(std::move(parameter_name_type[0])); + function_description.parameter_types.push_back(DBConfig::ParseLogicalType(parameter_name_type[1])); + } else { + throw InternalException("Ill formed function variant for function '%s'", function_name); + } + } +} + +template +static void FillFunctionDescriptions(const FunctionDefinition &function, T &info) { + vector variants = StringUtil::Split(function.parameters, '\1'); + vector descriptions = StringUtil::Split(function.description, '\1'); + vector examples = StringUtil::Split(function.example, '\1'); + + // add single variant for functions that take no arguments + if (variants.empty()) { + variants.push_back(""); + } + + for (idx_t variant_index = 0; variant_index < variants.size(); variant_index++) { + FunctionDescription function_description; + // parameter_names and parameter_types + vector parameters = StringUtil::SplitWithParentheses(variants[variant_index], ','); + FillFunctionParameters(function_description, function.name, parameters, descriptions, examples); + // description + if (descriptions.size() == variants.size()) { + function_description.description = descriptions[variant_index]; + } else if (descriptions.size() == 1) { + function_description.description = descriptions[0]; + } else if (!descriptions.empty()) { + throw InternalException("Incorrect number of function descriptions for function '%s'", function.name); + } + // examples + if (examples.size() == variants.size()) { + function_description.examples = StringUtil::Split(examples[variant_index], '\2'); + } else if (examples.size() == 1) { + function_description.examples = StringUtil::Split(examples[0], '\2'); + } else if (!examples.empty()) { + throw InternalException("Incorrect number of function examples for function '%s'", function.name); + } + info.descriptions.push_back(std::move(function_description)); + } +} + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_functions.hpp index aab5dede..f9e4fe93 100644 --- a/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_functions.hpp @@ -1,49 +1,180 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/function/scalar/compressed_materialization_functions.hpp +// function/scalar/compressed_materialization_functions.hpp // // //===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// #pragma once -#include "duckdb/function/built_in_functions.hpp" #include "duckdb/function/function_set.hpp" namespace duckdb { -struct CompressedMaterializationFunctions { - //! The types we compress integral types to - static const vector IntegralTypes(); - //! The types we compress strings to - static const vector StringTypes(); +struct InternalCompressIntegralUtinyintFun { + static constexpr const char *Name = "__internal_compress_integral_utinyint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalCompressIntegralUsmallintFun { + static constexpr const char *Name = "__internal_compress_integral_usmallint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalCompressIntegralUintegerFun { + static constexpr const char *Name = "__internal_compress_integral_uinteger"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalCompressIntegralUbigintFun { + static constexpr const char *Name = "__internal_compress_integral_ubigint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalCompressStringUtinyintFun { + static constexpr const char *Name = "__internal_compress_string_utinyint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; - static unique_ptr Bind(ClientContext &context, ScalarFunction &bound_function, - vector> &arguments); + static ScalarFunction GetFunction(); }; -//! Needed for (de)serialization without binding -enum class CompressedMaterializationDirection : uint8_t { INVALID = 0, COMPRESS = 1, DECOMPRESS = 2 }; +struct InternalCompressStringUsmallintFun { + static constexpr const char *Name = "__internal_compress_string_usmallint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; -struct CMIntegralCompressFun { - static ScalarFunction GetFunction(const LogicalType &input_type, const LogicalType &result_type); - static void RegisterFunction(BuiltinFunctions &set); + static ScalarFunction GetFunction(); }; -struct CMIntegralDecompressFun { - static ScalarFunction GetFunction(const LogicalType &input_type, const LogicalType &result_type); - static void RegisterFunction(BuiltinFunctions &set); +struct InternalCompressStringUintegerFun { + static constexpr const char *Name = "__internal_compress_string_uinteger"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); }; -struct CMStringCompressFun { - static ScalarFunction GetFunction(const LogicalType &result_type); - static void RegisterFunction(BuiltinFunctions &set); +struct InternalCompressStringUbigintFun { + static constexpr const char *Name = "__internal_compress_string_ubigint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); }; -struct CMStringDecompressFun { - static ScalarFunction GetFunction(const LogicalType &input_type); - static void RegisterFunction(BuiltinFunctions &set); +struct InternalCompressStringHugeintFun { + static constexpr const char *Name = "__internal_compress_string_hugeint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +struct InternalDecompressIntegralSmallintFun { + static constexpr const char *Name = "__internal_decompress_integral_smallint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressIntegralIntegerFun { + static constexpr const char *Name = "__internal_decompress_integral_integer"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressIntegralBigintFun { + static constexpr const char *Name = "__internal_decompress_integral_bigint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressIntegralHugeintFun { + static constexpr const char *Name = "__internal_decompress_integral_hugeint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressIntegralUsmallintFun { + static constexpr const char *Name = "__internal_decompress_integral_usmallint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressIntegralUintegerFun { + static constexpr const char *Name = "__internal_decompress_integral_uinteger"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressIntegralUbigintFun { + static constexpr const char *Name = "__internal_decompress_integral_ubigint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressIntegralUhugeintFun { + static constexpr const char *Name = "__internal_decompress_integral_uhugeint"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct InternalDecompressStringFun { + static constexpr const char *Name = "__internal_decompress_string"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_utils.hpp b/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_utils.hpp new file mode 100644 index 00000000..8609999a --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/compressed_materialization_utils.hpp @@ -0,0 +1,45 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/scalar/compressed_materialization_utils.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/built_in_functions.hpp" +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct CMUtils { + //! The types we compress integral types to + static const vector IntegralTypes(); + //! The types we compress strings to + static const vector StringTypes(); + + static unique_ptr Bind(ClientContext &context, ScalarFunction &bound_function, + vector> &arguments); +}; + +//! Needed for (de)serialization without binding +enum class CompressedMaterializationDirection : uint8_t { INVALID = 0, COMPRESS = 1, DECOMPRESS = 2 }; + +struct CMIntegralCompressFun { + static ScalarFunction GetFunction(const LogicalType &input_type, const LogicalType &result_type); +}; + +struct CMIntegralDecompressFun { + static ScalarFunction GetFunction(const LogicalType &input_type, const LogicalType &result_type); +}; + +struct CMStringCompressFun { + static ScalarFunction GetFunction(const LogicalType &result_type); +}; + +struct CMStringDecompressFun { + static ScalarFunction GetFunction(const LogicalType &input_type); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp new file mode 100644 index 00000000..8aac94b2 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/date_functions.hpp @@ -0,0 +1,45 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// function/scalar/date_functions.hpp +// +// +//===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct StrfTimeFun { + static constexpr const char *Name = "strftime"; + static constexpr const char *Parameters = "data,format"; + static constexpr const char *Description = "Converts a date to a string according to the format string."; + static constexpr const char *Example = "strftime(date '1992-01-01', '%a, %-d %B %Y')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct StrpTimeFun { + static constexpr const char *Name = "strptime"; + static constexpr const char *Parameters = "text::VARCHAR,format::VARCHAR\1text::VARCHAR,format-list::VARCHAR[]"; + static constexpr const char *Description = "Converts the string text to timestamp according to the format string. Throws an error on failure. To return NULL on failure, use try_strptime.\1Converts the string text to timestamp applying the format strings in the list until one succeeds. Throws an error on failure. To return NULL on failure, use try_strptime."; + static constexpr const char *Example = "strptime('Wed, 1 January 1992 - 08:38:40 PM', '%a, %-d %B %Y - %I:%M:%S %p')\1strptime('4/15/2023 10:56:00', ['%d/%m/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S'])"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct TryStrpTimeFun { + static constexpr const char *Name = "try_strptime"; + static constexpr const char *Parameters = "text,format"; + static constexpr const char *Description = "Converts the string text to timestamp according to the format string. Returns NULL on failure."; + static constexpr const char *Example = "try_strptime('Wed, 1 January 1992 - 08:38:40 PM', '%a, %-d %B %Y - %I:%M:%S %p')"; + + static ScalarFunctionSet GetFunctions(); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/generic_common.hpp b/src/duckdb/src/include/duckdb/function/scalar/generic_common.hpp new file mode 100644 index 00000000..f4a4089e --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/generic_common.hpp @@ -0,0 +1,36 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/scalar/generic_common.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/scalar_function.hpp" +#include "duckdb/function/function_set.hpp" +#include "duckdb/function/built_in_functions.hpp" +#include "duckdb/common/serializer/serializer.hpp" +#include "duckdb/common/serializer/deserializer.hpp" + +namespace duckdb { +class BoundFunctionExpression; + +struct ConstantOrNull { + static unique_ptr Bind(Value value); + static bool IsConstantOrNull(BoundFunctionExpression &expr, const Value &val); +}; + +struct ExportAggregateFunctionBindData : public FunctionData { + unique_ptr aggregate; + explicit ExportAggregateFunctionBindData(unique_ptr aggregate_p); + unique_ptr Copy() const override; + bool Equals(const FunctionData &other_p) const override; +}; + +struct ExportAggregateFunction { + static unique_ptr Bind(unique_ptr child_aggregate); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp index abd1713e..fd2865e6 100644 --- a/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar/generic_functions.hpp @@ -1,45 +1,54 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/function/scalar/generic_functions.hpp +// function/scalar/generic_functions.hpp // // //===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// #pragma once -#include "duckdb/function/scalar_function.hpp" #include "duckdb/function/function_set.hpp" -#include "duckdb/function/built_in_functions.hpp" -#include "duckdb/common/serializer/serializer.hpp" -#include "duckdb/common/serializer/deserializer.hpp" namespace duckdb { -class BoundFunctionExpression; -struct ConstantOrNull { - static ScalarFunction GetFunction(const LogicalType &return_type); - static unique_ptr Bind(Value value); - static bool IsConstantOrNull(BoundFunctionExpression &expr, const Value &val); - static void RegisterFunction(BuiltinFunctions &set); +struct ConstantOrNullFun { + static constexpr const char *Name = "constant_or_null"; + static constexpr const char *Parameters = "arg1,arg2"; + static constexpr const char *Description = "If arg2 is NULL, return NULL. Otherwise, return arg1."; + static constexpr const char *Example = "constant_or_null(42, NULL)"; + + static ScalarFunction GetFunction(); }; -struct ExportAggregateFunctionBindData : public FunctionData { - unique_ptr aggregate; - explicit ExportAggregateFunctionBindData(unique_ptr aggregate_p); - unique_ptr Copy() const override; - bool Equals(const FunctionData &other_p) const override; +struct GetVariableFun { + static constexpr const char *Name = "getvariable"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); }; -struct ExportAggregateFunction { - static unique_ptr Bind(unique_ptr child_aggregate); - static ScalarFunction GetCombine(); - static ScalarFunction GetFinalize(); - static void RegisterFunction(BuiltinFunctions &set); +struct ErrorFun { + static constexpr const char *Name = "error"; + static constexpr const char *Parameters = "message"; + static constexpr const char *Description = "Throws the given error message"; + static constexpr const char *Example = "error('access_mode')"; + + static ScalarFunction GetFunction(); }; -struct GetVariableFun { - static void RegisterFunction(BuiltinFunctions &set); +struct CreateSortKeyFun { + static constexpr const char *Name = "create_sort_key"; + static constexpr const char *Parameters = "parameters..."; + static constexpr const char *Description = "Constructs a binary-comparable sort key based on a set of input parameters and sort qualifiers"; + static constexpr const char *Example = "create_sort_key('A', 'DESC')"; + + static ScalarFunction GetFunction(); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp b/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp index 2af4b12d..1c091e7d 100644 --- a/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar/list/contains_or_position.hpp @@ -1,5 +1,5 @@ #pragma once -#include "duckdb/core_functions/create_sort_key.hpp" +#include "duckdb/function/create_sort_key.hpp" #include "duckdb/common/operator/comparison_operators.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/function/scalar/list_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/list_functions.hpp new file mode 100644 index 00000000..577b643f --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/list_functions.hpp @@ -0,0 +1,156 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// function/scalar/list_functions.hpp +// +// +//===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct ListSelectFun { + static constexpr const char *Name = "list_select"; + static constexpr const char *Parameters = "value_list,index_list"; + static constexpr const char *Description = "Returns a list based on the elements selected by the index_list."; + static constexpr const char *Example = "list_select([10, 20, 30, 40], [1, 4])"; + + static ScalarFunction GetFunction(); +}; + +struct ArraySelectFun { + using ALIAS = ListSelectFun; + + static constexpr const char *Name = "array_select"; +}; + +struct ListWhereFun { + static constexpr const char *Name = "list_where"; + static constexpr const char *Parameters = "value_list,mask_list"; + static constexpr const char *Description = "Returns a list with the BOOLEANs in mask_list applied as a mask to the value_list."; + static constexpr const char *Example = "list_where([10, 20, 30, 40], [true, false, false, true])"; + + static ScalarFunction GetFunction(); +}; + +struct ArrayWhereFun { + using ALIAS = ListWhereFun; + + static constexpr const char *Name = "array_where"; +}; + +struct ListContainsFun { + static constexpr const char *Name = "list_contains"; + static constexpr const char *Parameters = "list,element"; + static constexpr const char *Description = "Returns true if the list contains the element."; + static constexpr const char *Example = "list_contains([1, 2, NULL], 1)"; + + static ScalarFunction GetFunction(); +}; + +struct ArrayContainsFun { + using ALIAS = ListContainsFun; + + static constexpr const char *Name = "array_contains"; +}; + +struct ListHasFun { + using ALIAS = ListContainsFun; + + static constexpr const char *Name = "list_has"; +}; + +struct ArrayHasFun { + using ALIAS = ListContainsFun; + + static constexpr const char *Name = "array_has"; +}; + +struct ListPositionFun { + static constexpr const char *Name = "list_position"; + static constexpr const char *Parameters = "list,element"; + static constexpr const char *Description = "Returns the index of the element if the list contains the element. If the element is not found, it returns NULL."; + static constexpr const char *Example = "list_position([1, 2, NULL], 2)"; + + static ScalarFunction GetFunction(); +}; + +struct ListIndexofFun { + using ALIAS = ListPositionFun; + + static constexpr const char *Name = "list_indexof"; +}; + +struct ArrayPositionFun { + using ALIAS = ListPositionFun; + + static constexpr const char *Name = "array_position"; +}; + +struct ArrayIndexofFun { + using ALIAS = ListPositionFun; + + static constexpr const char *Name = "array_indexof"; +}; + +struct ListZipFun { + static constexpr const char *Name = "list_zip"; + static constexpr const char *Parameters = "list1,list2,..."; + static constexpr const char *Description = "Zips k LISTs to a new LIST whose length will be that of the longest list. Its elements are structs of k elements from each list list_1, …, list_k, missing elements are replaced with NULL. If truncate is set, all lists are truncated to the smallest list length."; + static constexpr const char *Example = "list_zip([1, 2], [3, 4], [5, 6])"; + + static ScalarFunction GetFunction(); +}; + +struct ArrayZipFun { + using ALIAS = ListZipFun; + + static constexpr const char *Name = "array_zip"; +}; + +struct ListExtractFun { + static constexpr const char *Name = "list_extract"; + static constexpr const char *Parameters = "list,index"; + static constexpr const char *Description = "Extract the indexth (1-based) value from the list."; + static constexpr const char *Example = "list_extract([4, 5, 6], 3)"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct ListElementFun { + using ALIAS = ListExtractFun; + + static constexpr const char *Name = "list_element"; +}; + +struct ListResizeFun { + static constexpr const char *Name = "list_resize"; + static constexpr const char *Parameters = "list,size[,value]"; + static constexpr const char *Description = "Resizes the list to contain size elements. Initializes new elements with value or NULL if value is not set."; + static constexpr const char *Example = "list_resize([1, 2, 3], 5, 0)"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct ArrayResizeFun { + using ALIAS = ListResizeFun; + + static constexpr const char *Name = "array_resize"; +}; + +struct ArrayExtractFun { + static constexpr const char *Name = "array_extract"; + static constexpr const char *Parameters = "list,index"; + static constexpr const char *Description = "Extract the indexth (1-based) value from the array."; + static constexpr const char *Example = "array_extract('DuckDB', 2)"; + + static ScalarFunctionSet GetFunctions(); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/map_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/map_functions.hpp new file mode 100644 index 00000000..5814a00e --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/map_functions.hpp @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// function/scalar/map_functions.hpp +// +// +//===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct MapContainsFun { + static constexpr const char *Name = "map_contains"; + static constexpr const char *Parameters = "map,key"; + static constexpr const char *Description = "Checks if a map contains a given key."; + static constexpr const char *Example = "map_contains(MAP {'key1': 10, 'key2': 20, 'key3': 30}, 'key2')"; + + static ScalarFunction GetFunction(); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp index e7b2f55c..bbad8b75 100644 --- a/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar/nested_functions.hpp @@ -82,50 +82,8 @@ struct HistogramAggState { MAP_TYPE *hist; }; -struct ListExtractFun { - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ListConcatFun { - static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ListContainsFun { - static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ListPositionFun { - static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ListResizeFun { - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ListZipFun { - static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ListSelectFun { - static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ListWhereFun { - static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct StructExtractFun { - static ScalarFunction KeyExtractFunction(); - static ScalarFunction IndexExtractFunction(); - static ScalarFunctionSet GetFunctions(); - static unique_ptr GetBindData(idx_t index); - static void RegisterFunction(BuiltinFunctions &set); -}; +unique_ptr GetBindData(idx_t index); +ScalarFunction GetKeyExtractFunction(); +ScalarFunction GetIndexExtractFunction(); } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/operator_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/operator_functions.hpp new file mode 100644 index 00000000..dbb7a146 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/operator_functions.hpp @@ -0,0 +1,102 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// function/scalar/operator_functions.hpp +// +// +//===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct OperatorAddFun { + static constexpr const char *Name = "+"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct AddFun { + using ALIAS = OperatorAddFun; + + static constexpr const char *Name = "add"; +}; + +struct OperatorSubtractFun { + static constexpr const char *Name = "-"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct SubtractFun { + using ALIAS = OperatorSubtractFun; + + static constexpr const char *Name = "subtract"; +}; + +struct OperatorMultiplyFun { + static constexpr const char *Name = "*"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct MultiplyFun { + using ALIAS = OperatorMultiplyFun; + + static constexpr const char *Name = "multiply"; +}; + +struct OperatorFloatDivideFun { + static constexpr const char *Name = "/"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct OperatorIntegerDivideFun { + static constexpr const char *Name = "//"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct DivideFun { + using ALIAS = OperatorIntegerDivideFun; + + static constexpr const char *Name = "divide"; +}; + +struct OperatorModuloFun { + static constexpr const char *Name = "%"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct ModFun { + using ALIAS = OperatorModuloFun; + + static constexpr const char *Name = "mod"; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/operators.hpp b/src/duckdb/src/include/duckdb/function/scalar/operators.hpp index 90689a33..f23c5c3b 100644 --- a/src/duckdb/src/include/duckdb/function/scalar/operators.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar/operators.hpp @@ -14,28 +14,14 @@ namespace duckdb { -struct AddFun { +struct AddFunction { static ScalarFunction GetFunction(const LogicalType &type); static ScalarFunction GetFunction(const LogicalType &left_type, const LogicalType &right_type); - static void RegisterFunction(BuiltinFunctions &set); }; -struct SubtractFun { +struct SubtractFunction { static ScalarFunction GetFunction(const LogicalType &type); static ScalarFunction GetFunction(const LogicalType &left_type, const LogicalType &right_type); - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct MultiplyFun { - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct DivideFun { - static void RegisterFunction(BuiltinFunctions &set); -}; - -struct ModFun { - static void RegisterFunction(BuiltinFunctions &set); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp index 34103bfc..d7f6eb01 100644 --- a/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar/sequence_functions.hpp @@ -1,45 +1,36 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/function/scalar/sequence_functions.hpp +// function/scalar/sequence_functions.hpp // // //===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// #pragma once -#include "duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp" -#include "duckdb/function/scalar_function.hpp" #include "duckdb/function/function_set.hpp" -#include "duckdb/function/built_in_functions.hpp" namespace duckdb { -struct NextvalBindData : public FunctionData { - explicit NextvalBindData(SequenceCatalogEntry &sequence) : sequence(sequence), create_info(sequence.GetInfo()) { - } - - //! The sequence to use for the nextval computation; only if the sequence is a constant - SequenceCatalogEntry &sequence; - - //! The CreateInfo for the above sequence, if it exists - unique_ptr create_info; - - unique_ptr Copy() const override { - return make_uniq(sequence); - } +struct CurrvalFun { + static constexpr const char *Name = "currval"; + static constexpr const char *Parameters = "'sequence_name'"; + static constexpr const char *Description = "Return the current value of the sequence. Note that nextval must be called at least once prior to calling currval."; + static constexpr const char *Example = "currval('my_sequence_name')"; - bool Equals(const FunctionData &other_p) const override { - auto &other = other_p.Cast(); - return RefersToSameObject(sequence, other.sequence); - } + static ScalarFunction GetFunction(); }; struct NextvalFun { - static void RegisterFunction(BuiltinFunctions &set); -}; + static constexpr const char *Name = "nextval"; + static constexpr const char *Parameters = "'sequence_name'"; + static constexpr const char *Description = "Return the following value of the sequence."; + static constexpr const char *Example = "nextval('my_sequence_name')"; -struct CurrvalFun { - static void RegisterFunction(BuiltinFunctions &set); + static ScalarFunction GetFunction(); }; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/sequence_utils.hpp b/src/duckdb/src/include/duckdb/function/scalar/sequence_utils.hpp new file mode 100644 index 00000000..642e53f9 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/sequence_utils.hpp @@ -0,0 +1,38 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/scalar/sequence_functions.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp" +#include "duckdb/function/scalar_function.hpp" +#include "duckdb/function/function_set.hpp" +#include "duckdb/function/built_in_functions.hpp" + +namespace duckdb { + +struct NextvalBindData : public FunctionData { + explicit NextvalBindData(SequenceCatalogEntry &sequence) : sequence(sequence), create_info(sequence.GetInfo()) { + } + + //! The sequence to use for the nextval computation; only if the sequence is a constant + SequenceCatalogEntry &sequence; + + //! The CreateInfo for the above sequence, if it exists + unique_ptr create_info; + + unique_ptr Copy() const override { + return make_uniq(sequence); + } + + bool Equals(const FunctionData &other_p) const override { + auto &other = other_p.Cast(); + return RefersToSameObject(sequence, other.sequence); + } +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/string_common.hpp b/src/duckdb/src/include/duckdb/function/scalar/string_common.hpp new file mode 100644 index 00000000..4cf00d8c --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/string_common.hpp @@ -0,0 +1,49 @@ +#pragma once + +#include "duckdb/common/typedefs.hpp" +#include "duckdb/function/scalar_function.hpp" +#include "utf8proc_wrapper.hpp" + +namespace duckdb { + +bool IsAscii(const char *input, idx_t n); +idx_t LowerLength(const char *input_data, idx_t input_length); +void LowerCase(const char *input_data, idx_t input_length, char *result_data); +idx_t FindStrInStr(const string_t &haystack_s, const string_t &needle_s); +idx_t FindStrInStr(const unsigned char *haystack, idx_t haystack_size, const unsigned char *needle, idx_t needle_size); +string_t SubstringASCII(Vector &result, string_t input, int64_t offset, int64_t length); +string_t SubstringUnicode(Vector &result, string_t input, int64_t offset, int64_t length); +string_t SubstringGrapheme(Vector &result, string_t input, int64_t offset, int64_t length); + +ScalarFunction GetStringContains(); +DUCKDB_API bool Glob(const char *s, idx_t slen, const char *pattern, idx_t plen, bool allow_question_mark = true); + +static inline bool IsCharacter(char c) { + return (c & 0xc0) != 0x80; +} + +template +static inline TR Length(TA input) { + auto input_data = input.GetData(); + auto input_length = input.GetSize(); + TR length = 0; + for (idx_t i = 0; i < input_length; i++) { + length += IsCharacter(input_data[i]); + } + return length; +} + +template +static inline TR GraphemeCount(TA input) { + auto input_data = input.GetData(); + auto input_length = input.GetSize(); + for (idx_t i = 0; i < input_length; i++) { + if (input_data[i] & 0x80) { + // non-ascii character: use grapheme iterator on remainder of string + return UnsafeNumericCast(Utf8Proc::GraphemeCount(input_data, input_length)); + } + } + return UnsafeNumericCast(input_length); +} + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp index 76dda087..ffca2c07 100644 --- a/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar/string_functions.hpp @@ -1,131 +1,456 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/function/scalar/string_functions.hpp +// function/scalar/string_functions.hpp // // //===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// #pragma once #include "duckdb/function/function_set.hpp" -#include "utf8proc_wrapper.hpp" -#include "duckdb/function/built_in_functions.hpp" - -namespace duckdb_re2 { -class RE2; -} namespace duckdb { -struct LowerFun { - static const uint8_t ASCII_TO_LOWER_MAP[]; +struct UpperFun { + static constexpr const char *Name = "upper"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Convert string to upper case."; + static constexpr const char *Example = "upper('Hello')"; + + static ScalarFunction GetFunction(); +}; + +struct UcaseFun { + using ALIAS = UpperFun; + + static constexpr const char *Name = "ucase"; +}; - //! Returns the length of the result string obtained from lowercasing the given input (in bytes) - static idx_t LowerLength(const char *input_data, idx_t input_length); - //! Lowercases the string to the target output location, result_data must have space for at least LowerLength bytes - static void LowerCase(const char *input_data, idx_t input_length, char *result_data); +struct LowerFun { + static constexpr const char *Name = "lower"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Convert string to lower case"; + static constexpr const char *Example = "lower('Hello')"; static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); }; -struct UpperFun { - static const uint8_t ASCII_TO_UPPER_MAP[]; +struct LcaseFun { + using ALIAS = LowerFun; - static void RegisterFunction(BuiltinFunctions &set); + static constexpr const char *Name = "lcase"; }; -struct StripAccentsFun { - static bool IsAscii(const char *input, idx_t n); +struct ConcatWsFun { + static constexpr const char *Name = "concat_ws"; + static constexpr const char *Parameters = "separator,string,..."; + static constexpr const char *Description = "Concatenate strings together separated by the specified separator."; + static constexpr const char *Example = "concat_ws(', ', 'Banana', 'Apple', 'Melon')"; + static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); }; struct ConcatFun { - static void RegisterFunction(BuiltinFunctions &set); + static constexpr const char *Name = "concat"; + static constexpr const char *Parameters = "string,..."; + static constexpr const char *Description = "Concatenate many strings together."; + static constexpr const char *Example = "concat('Hello', ' ', 'World')"; + static ScalarFunction GetFunction(); }; -struct ConcatWSFun { - static void RegisterFunction(BuiltinFunctions &set); -}; +struct ListConcatFun { + static constexpr const char *Name = "list_concat"; + static constexpr const char *Parameters = "list1,list2"; + static constexpr const char *Description = "Concatenates two lists."; + static constexpr const char *Example = "list_concat([2, 3], [4, 5, 6])"; -struct LengthFun { - static void RegisterFunction(BuiltinFunctions &set); - static inline bool IsCharacter(char c) { - return (c & 0xc0) != 0x80; - } - - template - static inline TR Length(TA input) { - auto input_data = input.GetData(); - auto input_length = input.GetSize(); - TR length = 0; - for (idx_t i = 0; i < input_length; i++) { - length += IsCharacter(input_data[i]); - } - return length; - } - - template - static inline TR GraphemeCount(TA input) { - auto input_data = input.GetData(); - auto input_length = input.GetSize(); - for (idx_t i = 0; i < input_length; i++) { - if (input_data[i] & 0x80) { - // non-ascii character: use grapheme iterator on remainder of string - return UnsafeNumericCast(Utf8Proc::GraphemeCount(input_data, input_length)); - } - } - return UnsafeNumericCast(input_length); - } + static ScalarFunction GetFunction(); }; -struct LikeFun { - static ScalarFunction GetLikeFunction(); - static void RegisterFunction(BuiltinFunctions &set); - DUCKDB_API static bool Glob(const char *s, idx_t slen, const char *pattern, idx_t plen, - bool allow_question_mark = true); +struct ListCatFun { + using ALIAS = ListConcatFun; + + static constexpr const char *Name = "list_cat"; }; -struct LikeEscapeFun { - static ScalarFunction GetLikeEscapeFun(); - static void RegisterFunction(BuiltinFunctions &set); +struct ArrayConcatFun { + using ALIAS = ListConcatFun; + + static constexpr const char *Name = "array_concat"; }; -struct NFCNormalizeFun { - static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); +struct ArrayCatFun { + using ALIAS = ListConcatFun; + + static constexpr const char *Name = "array_cat"; }; -struct SubstringFun { - static void RegisterFunction(BuiltinFunctions &set); - static string_t SubstringUnicode(Vector &result, string_t input, int64_t offset, int64_t length); - static string_t SubstringGrapheme(Vector &result, string_t input, int64_t offset, int64_t length); +struct ConcatOperatorFun { + static constexpr const char *Name = "||"; + static constexpr const char *Parameters = "list1,list2"; + static constexpr const char *Description = "Concatenates two lists."; + static constexpr const char *Example = "list_concat([2, 3], [4, 5, 6])"; + + static ScalarFunction GetFunction(); }; struct PrefixFun { + static constexpr const char *Name = "prefix"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); }; struct SuffixFun { + static constexpr const char *Name = "suffix"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + static ScalarFunction GetFunction(); - static void RegisterFunction(BuiltinFunctions &set); +}; + +struct EndsWithFun { + using ALIAS = SuffixFun; + + static constexpr const char *Name = "ends_with"; }; struct ContainsFun { + static constexpr const char *Name = "contains"; + static constexpr const char *Parameters = "string::VARCHAR,search_string::VARCHAR\1list::ANY[],element::ANY\1map::MAP(ANY,ANY),key::ANY"; + static constexpr const char *Description = "Returns true if search_string is found within string.\1Returns true if the list contains the element.\1Checks if a map contains a given key."; + static constexpr const char *Example = "contains('abc', 'a')\1contains([1, 2, NULL], 1)\1contains(MAP {'key1': 10, 'key2': 20, 'key3': 30}, 'key2')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct StripAccentsFun { + static constexpr const char *Name = "strip_accents"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Strips accents from string."; + static constexpr const char *Example = "strip_accents('mühleisen')"; + + static ScalarFunction GetFunction(); +}; + +struct NFCNormalizeFun { + static constexpr const char *Name = "nfc_normalize"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Convert string to Unicode NFC normalized string. Useful for comparisons and ordering if text data is mixed between NFC normalized and not."; + static constexpr const char *Example = "nfc_normalize('ardèch')"; + + static ScalarFunction GetFunction(); +}; + +struct LengthFun { + static constexpr const char *Name = "length"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Number of characters in string."; + static constexpr const char *Example = "length('Hello🦆')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct LenFun { + using ALIAS = LengthFun; + + static constexpr const char *Name = "len"; +}; + +struct StrlenFun { + static constexpr const char *Name = "strlen"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Number of bytes in string."; + static constexpr const char *Example = "strlen('🦆')"; + + static ScalarFunction GetFunction(); +}; + +struct BitLengthFun { + static constexpr const char *Name = "bit_length"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunctionSet GetFunctions(); +}; + +struct OctetLengthFun { + static constexpr const char *Name = "octet_length"; + static constexpr const char *Parameters = "blob"; + static constexpr const char *Description = "Number of bytes in blob."; + static constexpr const char *Example = "octet_length('\\xAA\\xBB'::BLOB)"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct LengthGraphemeFun { + static constexpr const char *Name = "length_grapheme"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Number of grapheme clusters in string."; + static constexpr const char *Example = "length_grapheme('🤦🏼‍♂️🤦🏽‍♀️')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct ArrayLengthFun { + static constexpr const char *Name = "array_length"; + static constexpr const char *Parameters = "list"; + static constexpr const char *Description = "Returns the length of the list."; + static constexpr const char *Example = "array_length([1,2,3])"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct SubstringFun { + static constexpr const char *Name = "substring"; + static constexpr const char *Parameters = "string,start,length"; + static constexpr const char *Description = "Extract substring of length characters starting from character start. Note that a start value of 1 refers to the first character of the string."; + static constexpr const char *Example = "substring('Hello', 2, 2)"; + static ScalarFunctionSet GetFunctions(); - static ScalarFunction GetStringContains(); - static void RegisterFunction(BuiltinFunctions &set); - static idx_t Find(const string_t &haystack, const string_t &needle); - static idx_t Find(const unsigned char *haystack, idx_t haystack_size, const unsigned char *needle, - idx_t needle_size); +}; + +struct SubstrFun { + using ALIAS = SubstringFun; + + static constexpr const char *Name = "substr"; +}; + +struct SubstringGraphemeFun { + static constexpr const char *Name = "substring_grapheme"; + static constexpr const char *Parameters = "string,start,length"; + static constexpr const char *Description = "Extract substring of length grapheme clusters starting from character start. Note that a start value of 1 refers to the first character of the string."; + static constexpr const char *Example = "substring_grapheme('🦆🤦🏼‍♂️🤦🏽‍♀️🦆', 3, 2)"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct StringSplitFun { + static constexpr const char *Name = "string_split"; + static constexpr const char *Parameters = "string,separator"; + static constexpr const char *Description = "Splits the string along the separator"; + static constexpr const char *Example = "string_split('hello-world', '-')"; + + static ScalarFunction GetFunction(); +}; + +struct StrSplitFun { + using ALIAS = StringSplitFun; + + static constexpr const char *Name = "str_split"; +}; + +struct StringToArrayFun { + using ALIAS = StringSplitFun; + + static constexpr const char *Name = "string_to_array"; +}; + +struct SplitFun { + using ALIAS = StringSplitFun; + + static constexpr const char *Name = "split"; +}; + +struct StringSplitRegexFun { + static constexpr const char *Name = "string_split_regex"; + static constexpr const char *Parameters = "string,separator"; + static constexpr const char *Description = "Splits the string along the regex"; + static constexpr const char *Example = "string_split_regex('hello␣world; 42', ';?␣')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct StrSplitRegexFun { + using ALIAS = StringSplitRegexFun; + + static constexpr const char *Name = "str_split_regex"; +}; + +struct RegexpSplitToArrayFun { + using ALIAS = StringSplitRegexFun; + + static constexpr const char *Name = "regexp_split_to_array"; }; struct RegexpFun { - static void RegisterFunction(BuiltinFunctions &set); + static constexpr const char *Name = "regexp_full_match"; + static constexpr const char *Parameters = "string,regex[,options]"; + static constexpr const char *Description = "Returns true if the entire string matches the regex. A set of optional options can be set."; + static constexpr const char *Example = "regexp_full_match('anabanana', '(an)*')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct RegexpMatchesFun { + static constexpr const char *Name = "regexp_matches"; + static constexpr const char *Parameters = "string,pattern[,options]"; + static constexpr const char *Description = "Returns true if string contains the regexp pattern, false otherwise. A set of optional options can be set."; + static constexpr const char *Example = "regexp_matches('anabanana', '(an)*')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct RegexpReplaceFun { + static constexpr const char *Name = "regexp_replace"; + static constexpr const char *Parameters = "string,pattern,replacement[,options]"; + static constexpr const char *Description = "If string contains the regexp pattern, replaces the matching part with replacement. A set of optional options can be set."; + static constexpr const char *Example = "regexp_replace('hello', '[lo]', '-')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct RegexpExtractFun { + static constexpr const char *Name = "regexp_extract"; + static constexpr const char *Parameters = "string,pattern[,group = 0][,options]"; + static constexpr const char *Description = "If string contains the regexp pattern, returns the capturing group specified by optional parameter group. The group must be a constant value. If no group is given, it defaults to 0. A set of optional options can be set."; + static constexpr const char *Example = "regexp_extract('abc', '([a-z])(b)', 1)"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct RegexpExtractAllFun { + static constexpr const char *Name = "regexp_extract_all"; + static constexpr const char *Parameters = "string, regex[, group = 0][, options]"; + static constexpr const char *Description = "Split the string along the regex and extract all occurrences of group. A set of optional options can be set."; + static constexpr const char *Example = "regexp_extract_all('hello_world', '([a-z ]+)_?', 1)"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct RegexpEscapeFun { + static constexpr const char *Name = "regexp_escape"; + static constexpr const char *Parameters = "string"; + static constexpr const char *Description = "Escapes all potentially meaningful regexp characters in the input string"; + static constexpr const char *Example = "regexp_escape('https://duckdb.org')"; + + static ScalarFunction GetFunction(); +}; + +struct LikeFun { + static constexpr const char *Name = "~~"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +struct NotLikeFun { + static constexpr const char *Name = "!~~"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +struct GlobPatternFun { + static constexpr const char *Name = "~~~"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +struct ILikeFun { + static constexpr const char *Name = "~~*"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +struct NotILikeFun { + static constexpr const char *Name = "!~~*"; + static constexpr const char *Parameters = ""; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +struct LikeEscapeFun { + static constexpr const char *Name = "like_escape"; + static constexpr const char *Parameters = "string,like_specifier,escape_character"; + static constexpr const char *Description = "Returns true if the string matches the like_specifier (see Pattern Matching) using case-sensitive matching. escape_character is used to search for wildcard characters in the string."; + static constexpr const char *Example = "like_escape('a%c', 'a$%c', '$')"; + + static ScalarFunction GetFunction(); +}; + +struct NotLikeEscapeFun { + static constexpr const char *Name = "not_like_escape"; + static constexpr const char *Parameters = "string,like_specifier,escape_character"; + static constexpr const char *Description = "Returns false if the string matches the like_specifier (see Pattern Matching) using case-sensitive matching. escape_character is used to search for wildcard characters in the string."; + static constexpr const char *Example = "not_like_escape('a%c', 'a$%c', '$')"; + + static ScalarFunction GetFunction(); +}; + +struct IlikeEscapeFun { + static constexpr const char *Name = "ilike_escape"; + static constexpr const char *Parameters = "string,like_specifier,escape_character"; + static constexpr const char *Description = "Returns true if the string matches the like_specifier (see Pattern Matching) using case-insensitive matching. escape_character is used to search for wildcard characters in the string."; + static constexpr const char *Example = "ilike_escape('A%c', 'a$%C', '$')"; + + static ScalarFunction GetFunction(); +}; + +struct NotIlikeEscapeFun { + static constexpr const char *Name = "not_ilike_escape"; + static constexpr const char *Parameters = "string,like_specifier,escape_character"; + static constexpr const char *Description = "Returns false if the string matches the like_specifier (see Pattern Matching) using case-insensitive matching. escape_character is used to search for wildcard characters in the string."; + static constexpr const char *Example = "not_ilike_escape('A%c', 'a$%C', '$')"; + + static ScalarFunction GetFunction(); +}; + +struct MD5Fun { + static constexpr const char *Name = "md5"; + static constexpr const char *Parameters = "value"; + static constexpr const char *Description = "Returns the MD5 hash of the value as a string"; + static constexpr const char *Example = "md5('123')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct MD5NumberFun { + static constexpr const char *Name = "md5_number"; + static constexpr const char *Parameters = "value"; + static constexpr const char *Description = "Returns the MD5 hash of the value as an INT128"; + static constexpr const char *Example = "md5_number('123')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct SHA1Fun { + static constexpr const char *Name = "sha1"; + static constexpr const char *Parameters = "value"; + static constexpr const char *Description = "Returns the SHA1 hash of the value"; + static constexpr const char *Example = "sha1('hello')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct SHA256Fun { + static constexpr const char *Name = "sha256"; + static constexpr const char *Parameters = "value"; + static constexpr const char *Description = "Returns the SHA256 hash of the value"; + static constexpr const char *Example = "sha256('hello')"; + + static ScalarFunctionSet GetFunctions(); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/struct_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/struct_functions.hpp new file mode 100644 index 00000000..3719cab3 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/struct_functions.hpp @@ -0,0 +1,54 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// function/scalar/struct_functions.hpp +// +// +//===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct StructExtractFun { + static constexpr const char *Name = "struct_extract"; + static constexpr const char *Parameters = "struct,'entry'"; + static constexpr const char *Description = "Extract the named entry from the STRUCT."; + static constexpr const char *Example = "struct_extract({'i': 3, 'v2': 3, 'v3': 0}, 'i')"; + + static ScalarFunctionSet GetFunctions(); +}; + +struct StructPackFun { + static constexpr const char *Name = "struct_pack"; + static constexpr const char *Parameters = "name:=any,..."; + static constexpr const char *Description = "Create a STRUCT containing the argument values. The entry name will be the bound variable name."; + static constexpr const char *Example = "struct_pack(i := 4, s := 'string')"; + + static ScalarFunction GetFunction(); +}; + +struct RowFun { + static constexpr const char *Name = "row"; + static constexpr const char *Parameters = "any,..."; + static constexpr const char *Description = "Create an unnamed STRUCT (tuple) containing the argument values."; + static constexpr const char *Example = "row(i, i % 4, i / 4)"; + + static ScalarFunction GetFunction(); +}; + +struct StructConcatFun { + static constexpr const char *Name = "struct_concat"; + static constexpr const char *Parameters = "struct,struct,..."; + static constexpr const char *Description = "Merge the multiple STRUCTs into a single STRUCT."; + static constexpr const char *Example = "struct_concat(struct_pack(i := 4), struct_pack(s := 'string'))"; + + static ScalarFunction GetFunction(); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/struct_utils.hpp b/src/duckdb/src/include/duckdb/function/scalar/struct_utils.hpp new file mode 100644 index 00000000..d92acd59 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/struct_utils.hpp @@ -0,0 +1,33 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/scalar/struct_utils.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/scalar_function.hpp" +#include "duckdb/function/function_set.hpp" +#include "duckdb/function/built_in_functions.hpp" + +namespace duckdb { + +struct StructExtractBindData : public FunctionData { + explicit StructExtractBindData(idx_t index) : index(index) { + } + + idx_t index; + +public: + unique_ptr Copy() const override { + return make_uniq(index); + } + bool Equals(const FunctionData &other_p) const override { + auto &other = other_p.Cast(); + return index == other.index; + } +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar/system_functions.hpp b/src/duckdb/src/include/duckdb/function/scalar/system_functions.hpp new file mode 100644 index 00000000..c7a2fe26 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/scalar/system_functions.hpp @@ -0,0 +1,36 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// function/scalar/system_functions.hpp +// +// +//===----------------------------------------------------------------------===// +// This file is automatically generated by scripts/generate_functions.py +// Do not edit this file manually, your changes will be overwritten +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/function_set.hpp" + +namespace duckdb { + +struct FinalizeFun { + static constexpr const char *Name = "finalize"; + static constexpr const char *Parameters = "col0"; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +struct CombineFun { + static constexpr const char *Name = "combine"; + static constexpr const char *Parameters = "col0,col1"; + static constexpr const char *Description = ""; + static constexpr const char *Example = ""; + + static ScalarFunction GetFunction(); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/scalar_function.hpp b/src/duckdb/src/include/duckdb/function/scalar_function.hpp index ff658383..236356b9 100644 --- a/src/duckdb/src/include/duckdb/function/scalar_function.hpp +++ b/src/duckdb/src/include/duckdb/function/scalar_function.hpp @@ -51,8 +51,8 @@ struct ScalarFunctionInfo { class Binder; class BoundFunctionExpression; -class LogicalDependencyList; class ScalarFunctionCatalogEntry; + struct StatementProperties; struct FunctionStatisticsInput { @@ -87,17 +87,25 @@ struct FunctionBindExpressionInput { BoundFunctionExpression &function; }; +struct ScalarFunctionBindInput { + explicit ScalarFunctionBindInput(Binder &binder) : binder(binder) { + } + + Binder &binder; +}; + //! The scalar function type typedef std::function scalar_function_t; //! The type to bind the scalar function and to create the function data typedef unique_ptr (*bind_scalar_function_t)(ClientContext &context, ScalarFunction &bound_function, vector> &arguments); +typedef unique_ptr (*bind_scalar_function_extended_t)(ScalarFunctionBindInput &bind_input, + ScalarFunction &bound_function, + vector> &arguments); //! The type to initialize a thread local state for the scalar function typedef unique_ptr (*init_local_state_t)(ExpressionState &state, const BoundFunctionExpression &expr, FunctionData *bind_data); -//! The type to add the dependencies of this BoundFunctionExpression to the set of dependencies -typedef void (*dependency_function_t)(BoundFunctionExpression &expr, LogicalDependencyList &dependencies); //! The type to propagate statistics for this scalar function typedef unique_ptr (*function_statistics_t)(ClientContext &context, FunctionStatisticsInput &input); //! The type to bind lambda-specific parameter types @@ -116,15 +124,16 @@ class ScalarFunction : public BaseScalarFunction { // NOLINT: work-around bug in public: DUCKDB_API ScalarFunction(string name, vector arguments, LogicalType return_type, scalar_function_t function, bind_scalar_function_t bind = nullptr, - dependency_function_t dependency = nullptr, function_statistics_t statistics = nullptr, - init_local_state_t init_local_state = nullptr, + bind_scalar_function_extended_t bind_extended = nullptr, + function_statistics_t statistics = nullptr, init_local_state_t init_local_state = nullptr, LogicalType varargs = LogicalType(LogicalTypeId::INVALID), FunctionStability stability = FunctionStability::CONSISTENT, FunctionNullHandling null_handling = FunctionNullHandling::DEFAULT_NULL_HANDLING, bind_lambda_function_t bind_lambda = nullptr); DUCKDB_API ScalarFunction(vector arguments, LogicalType return_type, scalar_function_t function, - bind_scalar_function_t bind = nullptr, dependency_function_t dependency = nullptr, + bind_scalar_function_t bind = nullptr, + bind_scalar_function_extended_t bind_extended = nullptr, function_statistics_t statistics = nullptr, init_local_state_t init_local_state = nullptr, LogicalType varargs = LogicalType(LogicalTypeId::INVALID), FunctionStability stability = FunctionStability::CONSISTENT, @@ -135,10 +144,10 @@ class ScalarFunction : public BaseScalarFunction { // NOLINT: work-around bug in scalar_function_t function; //! The bind function (if any) bind_scalar_function_t bind; + //! The bind function that receives extra input to perform more complex binding operations (if any) + bind_scalar_function_extended_t bind_extended = nullptr; //! Init thread local state for the function (if any) init_local_state_t init_local_state; - //! The dependency function (if any) - dependency_function_t dependency; //! The statistics propagation function (if any) function_statistics_t statistics; //! The lambda bind function (if any) diff --git a/src/duckdb/src/include/duckdb/function/table/arrow.hpp b/src/duckdb/src/include/duckdb/function/table/arrow.hpp index bc88fed0..4f8f24f3 100644 --- a/src/duckdb/src/include/duckdb/function/table/arrow.hpp +++ b/src/duckdb/src/include/duckdb/function/table/arrow.hpp @@ -65,6 +65,8 @@ struct ArrowScanFunctionData : public TableFunctionData { shared_ptr dependency; //! Arrow table data ArrowTableType arrow_table; + //! Whether projection pushdown is enabled on the scan + bool projection_pushdown_enabled = true; }; struct ArrowRunEndEncodingState { @@ -184,6 +186,8 @@ struct ArrowTableFunction { //! Binds an arrow table static unique_ptr ArrowScanBind(ClientContext &context, TableFunctionBindInput &input, vector &return_types, vector &names); + static unique_ptr ArrowScanBindDumb(ClientContext &context, TableFunctionBindInput &input, + vector &return_types, vector &names); //! Actual conversion from Arrow to DuckDB static void ArrowToDuckDB(ArrowScanLocalState &scan_state, const arrow_column_map_t &arrow_convert_data, DataChunk &output, idx_t start, bool arrow_scan_is_projected = true); @@ -214,8 +218,7 @@ struct ArrowTableFunction { static idx_t ArrowScanMaxThreads(ClientContext &context, const FunctionData *bind_data); //! Allows parallel Create Table / Insertion - static idx_t ArrowGetBatchIndex(ClientContext &context, const FunctionData *bind_data_p, - LocalTableFunctionState *local_state, GlobalTableFunctionState *global_state); + static OperatorPartitionData ArrowGetPartitionData(ClientContext &context, TableFunctionGetPartitionInput &input); //! Specify if a given type can be pushed-down by the arrow engine static bool ArrowPushdownType(const LogicalType &type); diff --git a/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp b/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp index a9ab1e78..5c2b710a 100644 --- a/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp +++ b/src/duckdb/src/include/duckdb/function/table/arrow/arrow_duck_schema.hpp @@ -8,6 +8,8 @@ #pragma once +#include + #include "duckdb/common/types.hpp" #include "duckdb/common/unordered_map.hpp" #include "duckdb/common/vector.hpp" @@ -22,6 +24,10 @@ class ArrowType { explicit ArrowType(LogicalType type_p, unique_ptr type_info = nullptr) : type(std::move(type_p)), type_info(std::move(type_info)) { } + explicit ArrowType(string error_message_p, bool not_implemented_p = false) + : type(LogicalTypeId::INVALID), type_info(nullptr), error_message(std::move(error_message_p)), + not_implemented(not_implemented_p) { + } public: LogicalType GetDuckType(bool use_dictionary = false) const; @@ -37,6 +43,7 @@ class ArrowType { const T &GetTypeInfo() const { return type_info->Cast(); } + void ThrowIfInvalid() const; private: LogicalType type; @@ -45,6 +52,10 @@ class ArrowType { //! Is run-end-encoded bool run_end_encoded = false; unique_ptr type_info; + //! Error message in case of an invalid type (i.e., from an unsupported extension) + string error_message; + //! In case of an error do we throw not implemented? + bool not_implemented = false; }; using arrow_column_map_t = unordered_map>; diff --git a/src/duckdb/src/include/duckdb/function/table/read_csv.hpp b/src/duckdb/src/include/duckdb/function/table/read_csv.hpp index ef9622b7..de60ed4d 100644 --- a/src/duckdb/src/include/duckdb/function/table/read_csv.hpp +++ b/src/duckdb/src/include/duckdb/function/table/read_csv.hpp @@ -25,7 +25,7 @@ class StringValueScanner; class ReadCSV { public: - static unique_ptr OpenCSV(const string &file_path, FileCompressionType compression, + static unique_ptr OpenCSV(const string &file_path, const CSVReaderOptions &options, ClientContext &context); }; @@ -46,6 +46,9 @@ struct WriteCSVData : public BaseCSVData { : sql_types(std::move(sql_types)) { files.push_back(std::move(file_path)); options.name_list = std::move(names); + if (options.dialect_options.state_machine_options.escape == '\0') { + options.dialect_options.state_machine_options.escape = options.dialect_options.state_machine_options.quote; + } } //! The SQL types to write @@ -54,7 +57,7 @@ struct WriteCSVData : public BaseCSVData { string newline = "\n"; //! The size of the CSV file (in bytes) that we buffer before we flush it to disk idx_t flush_size = 4096ULL * 8ULL; - //! For each byte whether or not the CSV file requires quotes when containing the byte + //! For each byte whether the CSV file requires quotes when containing the byte unsafe_unique_array requires_quotes; //! Expressions used to convert the input into strings vector> cast_expressions; diff --git a/src/duckdb/src/include/duckdb/function/table/system_functions.hpp b/src/duckdb/src/include/duckdb/function/table/system_functions.hpp index fae4b510..f74dc466 100644 --- a/src/duckdb/src/include/duckdb/function/table/system_functions.hpp +++ b/src/duckdb/src/include/duckdb/function/table/system_functions.hpp @@ -18,6 +18,8 @@ struct PragmaCollations { }; struct PragmaTableInfo { + static void GetColumnInfo(TableCatalogEntry &table, const ColumnDefinition &column, DataChunk &output, idx_t index); + static void RegisterFunction(BuiltinFunctions &set); }; diff --git a/src/duckdb/src/include/duckdb/function/table_function.hpp b/src/duckdb/src/include/duckdb/function/table_function.hpp index 68883293..16a6b7d0 100644 --- a/src/duckdb/src/include/duckdb/function/table_function.hpp +++ b/src/duckdb/src/include/duckdb/function/table_function.hpp @@ -15,6 +15,7 @@ #include "duckdb/planner/bind_context.hpp" #include "duckdb/planner/logical_operator.hpp" #include "duckdb/storage/statistics/node_statistics.hpp" +#include "duckdb/common/column_index.hpp" #include @@ -23,9 +24,12 @@ namespace duckdb { class BaseStatistics; class LogicalDependencyList; class LogicalGet; +class TableFunction; class TableFilterSet; class TableCatalogEntry; struct MultiFileReader; +struct OperatorPartitionData; +struct OperatorPartitionInfo; struct TableFunctionInfo { DUCKDB_API virtual ~TableFunctionInfo(); @@ -101,15 +105,31 @@ struct TableFunctionBindInput { }; struct TableFunctionInitInput { - TableFunctionInitInput(optional_ptr bind_data_p, const vector &column_ids_p, - const vector &projection_ids_p, optional_ptr filters_p) - : bind_data(bind_data_p), column_ids(column_ids_p), projection_ids(projection_ids_p), filters(filters_p) { + TableFunctionInitInput(optional_ptr bind_data_p, vector column_ids_p, + const vector &projection_ids_p, optional_ptr filters_p, + optional_ptr sample_options_p = nullptr) + : bind_data(bind_data_p), column_ids(std::move(column_ids_p)), projection_ids(projection_ids_p), + filters(filters_p), sample_options(sample_options_p) { + for (auto &col_id : column_ids) { + column_indexes.emplace_back(col_id); + } + } + TableFunctionInitInput(optional_ptr bind_data_p, vector column_indexes_p, + const vector &projection_ids_p, optional_ptr filters_p, + optional_ptr sample_options_p = nullptr) + : bind_data(bind_data_p), column_indexes(std::move(column_indexes_p)), projection_ids(projection_ids_p), + filters(filters_p), sample_options(sample_options_p) { + for (auto &col_id : column_indexes) { + column_ids.emplace_back(col_id.GetPrimaryIndex()); + } } optional_ptr bind_data; - const vector &column_ids; + vector column_ids; + vector column_indexes; const vector projection_ids; optional_ptr filters; + optional_ptr sample_options; bool CanRemoveFilterColumns() const { if (projection_ids.empty()) { @@ -139,7 +159,41 @@ struct TableFunctionInput { optional_ptr global_state; }; -enum class ScanType : uint8_t { TABLE, PARQUET }; +struct TableFunctionPartitionInput { + TableFunctionPartitionInput(optional_ptr bind_data_p, const vector &partition_ids) + : bind_data(bind_data_p), partition_ids(partition_ids) { + } + + optional_ptr bind_data; + const vector &partition_ids; +}; + +struct TableFunctionToStringInput { + TableFunctionToStringInput(const TableFunction &table_function_p, optional_ptr bind_data_p) + : table_function(table_function_p), bind_data(bind_data_p) { + } + const TableFunction &table_function; + optional_ptr bind_data; +}; + +struct TableFunctionGetPartitionInput { +public: + TableFunctionGetPartitionInput(optional_ptr bind_data_p, + optional_ptr local_state_p, + optional_ptr global_state_p, + const OperatorPartitionInfo &partition_info_p) + : bind_data(bind_data_p), local_state(local_state_p), global_state(global_state_p), + partition_info(partition_info_p) { + } + +public: + optional_ptr bind_data; + optional_ptr local_state; + optional_ptr global_state; + const OperatorPartitionInfo &partition_info; +}; + +enum class ScanType : uint8_t { TABLE, PARQUET, EXTERNAL }; struct BindInfo { public: @@ -181,6 +235,14 @@ struct BindInfo { } }; +//! How a table is partitioned by a given set of columns +enum class TablePartitionInfo : uint8_t { + NOT_PARTITIONED, // the table is not partitioned by the given set of columns + SINGLE_VALUE_PARTITIONS, // each partition has exactly one unique value (e.g. bounds = [1,1][2,2][3,3]) + OVERLAPPING_PARTITIONS, // the partitions overlap **only** at the boundaries (e.g. bounds = [1,2][2,3][3,4] + DISJOINT_PARTITIONS // the partitions are disjoint (e.g. bounds = [1,2][3,4][5,6]) +}; + typedef unique_ptr (*table_function_bind_t)(ClientContext &context, TableFunctionBindInput &input, vector &return_types, vector &names); typedef unique_ptr (*table_function_bind_replace_t)(ClientContext &context, TableFunctionBindInput &input); @@ -196,13 +258,12 @@ typedef OperatorResultType (*table_in_out_function_t)(ExecutionContext &context, DataChunk &input, DataChunk &output); typedef OperatorFinalizeResultType (*table_in_out_function_final_t)(ExecutionContext &context, TableFunctionInput &data, DataChunk &output); -typedef idx_t (*table_function_get_batch_index_t)(ClientContext &context, const FunctionData *bind_data, - LocalTableFunctionState *local_state, - GlobalTableFunctionState *global_state); +typedef OperatorPartitionData (*table_function_get_partition_data_t)(ClientContext &context, + TableFunctionGetPartitionInput &input); typedef BindInfo (*table_function_get_bind_info_t)(const optional_ptr bind_data); -typedef unique_ptr (*table_function_get_multi_file_reader_t)(); +typedef unique_ptr (*table_function_get_multi_file_reader_t)(const TableFunction &); typedef bool (*table_function_supports_pushdown_type_t)(const LogicalType &type); @@ -214,7 +275,7 @@ typedef unique_ptr (*table_function_cardinality_t)(ClientContext typedef void (*table_function_pushdown_complex_filter_t)(ClientContext &context, LogicalGet &get, FunctionData *bind_data, vector> &filters); -typedef string (*table_function_to_string_t)(const FunctionData *bind_data); +typedef InsertionOrderPreservingMap (*table_function_to_string_t)(TableFunctionToStringInput &input); typedef void (*table_function_serialize_t)(Serializer &serializer, const optional_ptr bind_data, const TableFunction &function); @@ -223,6 +284,9 @@ typedef unique_ptr (*table_function_deserialize_t)(Deserializer &d typedef void (*table_function_type_pushdown_t)(ClientContext &context, optional_ptr bind_data, const unordered_map &new_column_types); +typedef TablePartitionInfo (*table_function_get_partition_info_t)(ClientContext &context, + TableFunctionPartitionInput &input); + //! When to call init_global to initialize the table function enum class TableFunctionInitialization { INITIALIZE_ON_EXECUTE, INITIALIZE_ON_SCHEDULE }; @@ -242,7 +306,7 @@ class TableFunction : public SimpleNamedParameterFunction { // NOLINT: work-arou //! The returned FunctionData object should be constant and should not be changed during execution. table_function_bind_t bind; //! (Optional) Bind replace function - //! This function is called before the regular bind function. It allows returning a TableRef will be used to + //! This function is called before the regular bind function. It allows returning a TableRef that will be used to //! to generate a logical plan that replaces the LogicalGet of a regularly bound TableFunction. The BindReplace can //! also return a nullptr to indicate a regular bind needs to be performed instead. table_function_bind_replace_t bind_replace; @@ -277,8 +341,8 @@ class TableFunction : public SimpleNamedParameterFunction { // NOLINT: work-arou table_function_to_string_t to_string; //! (Optional) return how much of the table we have scanned up to this point (% of the data) table_function_progress_t table_scan_progress; - //! (Optional) returns the current batch index of the current scan operator - table_function_get_batch_index_t get_batch_index; + //! (Optional) returns the partition info of the current scan operator + table_function_get_partition_data_t get_partition_data; //! (Optional) returns extra bind info table_function_get_bind_info_t get_bind_info; //! (Optional) pushes down type information to scanner, returns true if pushdown was successful @@ -287,6 +351,8 @@ class TableFunction : public SimpleNamedParameterFunction { // NOLINT: work-arou table_function_get_multi_file_reader_t get_multi_file_reader; //! (Optional) If this scanner supports filter pushdown, but not to all data types table_function_supports_pushdown_type_t supports_pushdown_type; + //! Get partition info of the table + table_function_get_partition_info_t get_partition_info; table_function_serialize_t serialize; table_function_deserialize_t deserialize; @@ -301,6 +367,9 @@ class TableFunction : public SimpleNamedParameterFunction { // NOLINT: work-arou //! Whether or not the table function can immediately prune out filter columns that are unused in the remainder of //! the query plan, e.g., "SELECT i FROM tbl WHERE j = 42;" - j does not need to leave the table function at all bool filter_prune; + //! Whether or not the table function supports sampling pushdown. If not supported a sample will be taken after the + //! table function. + bool sampling_pushdown; //! Additional function info, passed to the bind shared_ptr function_info; diff --git a/src/duckdb/src/include/duckdb/core_functions/to_interval.hpp b/src/duckdb/src/include/duckdb/function/to_interval.hpp similarity index 94% rename from src/duckdb/src/include/duckdb/core_functions/to_interval.hpp rename to src/duckdb/src/include/duckdb/function/to_interval.hpp index a0f6bf8f..3ef1e82c 100644 --- a/src/duckdb/src/include/duckdb/core_functions/to_interval.hpp +++ b/src/duckdb/src/include/duckdb/function/to_interval.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/core_functions/to_interval.hpp +// duckdb/function/to_interval.hpp // // //===----------------------------------------------------------------------===// diff --git a/src/duckdb/src/include/duckdb/function/window/window_aggregate_function.hpp b/src/duckdb/src/include/duckdb/function/window/window_aggregate_function.hpp new file mode 100644 index 00000000..b110315c --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_aggregate_function.hpp @@ -0,0 +1,46 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_aggregate_function.hpp +// +// +//===----------------------------------------------------------------------===// + +#include "duckdb/function/window/window_executor.hpp" +#include "duckdb/common/enums/window_aggregation_mode.hpp" +#include "duckdb/function/window/window_aggregator.hpp" + +namespace duckdb { + +class WindowAggregateExecutor : public WindowExecutor { +public: + WindowAggregateExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared, + WindowAggregationMode mode); + + bool IsConstantAggregate(); + bool IsCustomAggregate(); + bool IsDistinctAggregate(); + + void Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, const idx_t input_idx, WindowExecutorGlobalState &gstate, + WindowExecutorLocalState &lstate) const override; + void Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + CollectionPtr collection) const override; + + unique_ptr GetGlobalState(const idx_t payload_count, const ValidityMask &partition_mask, + const ValidityMask &order_mask) const override; + unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; + + const WindowAggregationMode mode; + + // aggregate computation algorithm + unique_ptr aggregator; + + // FILTER reference expression in sink_chunk + unique_ptr filter_ref; + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_aggregate_states.hpp b/src/duckdb/src/include/duckdb/function/window/window_aggregate_states.hpp new file mode 100644 index 00000000..1382a522 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_aggregate_states.hpp @@ -0,0 +1,56 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_aggregate_states.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/execution/operator/aggregate/aggregate_object.hpp" + +namespace duckdb { + +struct WindowAggregateStates { + explicit WindowAggregateStates(const AggregateObject &aggr); + ~WindowAggregateStates() { + Destroy(); + } + + //! The number of states + idx_t GetCount() const { + return states.size() / state_size; + } + data_ptr_t *GetData() { + return FlatVector::GetData(*statef); + } + data_ptr_t GetStatePtr(idx_t idx) { + return states.data() + idx * state_size; + } + const_data_ptr_t GetStatePtr(idx_t idx) const { + return states.data() + idx * state_size; + } + //! Initialise all the states + void Initialize(idx_t count); + //! Combine the states into the target + void Combine(WindowAggregateStates &target, + AggregateCombineType combine_type = AggregateCombineType::PRESERVE_INPUT); + //! Finalize the states into an output vector + void Finalize(Vector &result); + //! Destroy the states + void Destroy(); + + //! A description of the aggregator + const AggregateObject aggr; + //! The size of each state + const idx_t state_size; + //! The allocator to use + ArenaAllocator allocator; + //! Data pointer that contains the state data + vector states; + //! Reused result state container for the window functions + unique_ptr statef; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_aggregator.hpp b/src/duckdb/src/include/duckdb/function/window/window_aggregator.hpp new file mode 100644 index 00000000..c7103ce4 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_aggregator.hpp @@ -0,0 +1,192 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_aggregator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/execution/operator/aggregate/aggregate_object.hpp" +#include "duckdb/function/window/window_boundaries_state.hpp" + +namespace duckdb { + +class WindowCollection; +class WindowCursor; +struct WindowSharedExpressions; + +class WindowAggregatorState { +public: + WindowAggregatorState(); + virtual ~WindowAggregatorState() { + } + + template + TARGET &Cast() { + DynamicCastCheck(this); + return reinterpret_cast(*this); + } + template + const TARGET &Cast() const { + DynamicCastCheck(this); + return reinterpret_cast(*this); + } + + //! Allocator for aggregates + ArenaAllocator allocator; +}; + +class WindowAggregator { +public: + using CollectionPtr = optional_ptr; + + template + static void EvaluateSubFrames(const DataChunk &bounds, const WindowExcludeMode exclude_mode, idx_t count, + idx_t row_idx, SubFrames &frames, OP operation) { + auto begins = FlatVector::GetData(bounds.data[FRAME_BEGIN]); + auto ends = FlatVector::GetData(bounds.data[FRAME_END]); + auto peer_begin = FlatVector::GetData(bounds.data[PEER_BEGIN]); + auto peer_end = FlatVector::GetData(bounds.data[PEER_END]); + + for (idx_t i = 0, cur_row = row_idx; i < count; ++i, ++cur_row) { + idx_t nframes = 0; + if (exclude_mode == WindowExcludeMode::NO_OTHER) { + auto begin = begins[i]; + auto end = ends[i]; + frames[nframes++] = FrameBounds(begin, end); + } else { + // The frame_exclusion option allows rows around the current row to be excluded from the frame, + // even if they would be included according to the frame start and frame end options. + // EXCLUDE CURRENT ROW excludes the current row from the frame. + // EXCLUDE GROUP excludes the current row and its ordering peers from the frame. + // EXCLUDE TIES excludes any peers of the current row from the frame, but not the current row itself. + // EXCLUDE NO OTHERS simply specifies explicitly the default behavior + // of not excluding the current row or its peers. + // https://www.postgresql.org/docs/current/sql-expressions.html#SYNTAX-WINDOW-FUNCTIONS + // + // For the sake of the client, we make some guarantees about the subframes: + // * They are in order left-to-right + // * They do not intersect + // * start <= end + // * The number is always the same + // + // Since we always have peer_begin <= cur_row < cur_row + 1 <= peer_end + // this is not too hard to arrange, but it may be that some subframes are contiguous, + // and some are empty. + + // WindowExcludePart::LEFT + const auto frame_begin = begins[i]; + const auto frame_end = ends[i]; + auto begin = frame_begin; + auto end = (exclude_mode == WindowExcludeMode::CURRENT_ROW) ? cur_row : peer_begin[i]; + end = MinValue(end, frame_end); + end = MaxValue(end, frame_begin); + frames[nframes++] = FrameBounds(begin, end); + + // with EXCLUDE TIES, in addition to the frame part right of the peer group's end, + // we also need to consider the current row + if (exclude_mode == WindowExcludeMode::TIES) { + begin = MinValue(MaxValue(cur_row, frame_begin), frame_end); + end = MaxValue(MinValue(cur_row + 1, frame_end), frame_begin); + frames[nframes++] = FrameBounds(begin, end); + } + + // WindowExcludePart::RIGHT + end = frame_end; + begin = (exclude_mode == WindowExcludeMode::CURRENT_ROW) ? (cur_row + 1) : peer_end[i]; + begin = MaxValue(begin, frame_begin); + begin = MinValue(begin, frame_end); + frames[nframes++] = FrameBounds(begin, end); + } + + operation(i); + } + } + + WindowAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode_p); + WindowAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode_p, + WindowSharedExpressions &shared); + virtual ~WindowAggregator(); + + // Threading states + virtual unique_ptr GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const; + virtual unique_ptr GetLocalState(const WindowAggregatorState &gstate) const = 0; + + // Build + virtual void Sink(WindowAggregatorState &gstate, WindowAggregatorState &lstate, DataChunk &sink_chunk, + DataChunk &coll_chunk, idx_t input_idx, optional_ptr filter_sel, idx_t filtered); + virtual void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, CollectionPtr collection, + const FrameStats &stats); + + // Probe + virtual void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, + Vector &result, idx_t count, idx_t row_idx) const = 0; + + //! The window function + const BoundWindowExpression &wexpr; + //! A description of the aggregator + const AggregateObject aggr; + //! The argument types for the function + vector arg_types; + //! The result type of the window function + const LogicalType result_type; + //! The size of a single aggregate state + const idx_t state_size; + //! The window exclusion clause + const WindowExcludeMode exclude_mode; + //! Partition collection column indicies + vector child_idx; +}; + +class WindowAggregatorGlobalState : public WindowAggregatorState { +public: + WindowAggregatorGlobalState(ClientContext &context, const WindowAggregator &aggregator_p, idx_t group_count) + : aggregator(aggregator_p), aggr(aggregator.wexpr), locals(0), finalized(0) { + + if (aggr.filter) { + // Start with all invalid and set the ones that pass + filter_mask.Initialize(group_count, false); + } else { + filter_mask.InitializeEmpty(group_count); + } + } + + //! The aggregator data + const WindowAggregator &aggregator; + + //! The aggregate function + const AggregateObject aggr; + + //! The filtered rows in inputs. + ValidityArray filter_mask; + + //! Lock for single threading + mutable mutex lock; + + //! Count of local tasks + mutable std::atomic locals; + + //! Number of finalised states + std::atomic finalized; +}; + +class WindowAggregatorLocalState : public WindowAggregatorState { +public: + using CollectionPtr = optional_ptr; + + static void InitSubFrames(SubFrames &frames, const WindowExcludeMode exclude_mode); + + WindowAggregatorLocalState() { + } + + void Sink(WindowAggregatorGlobalState &gastate, DataChunk &sink_chunk, DataChunk &coll_chunk, idx_t row_idx); + virtual void Finalize(WindowAggregatorGlobalState &gastate, CollectionPtr collection); + + //! The state used for reading the collection + unique_ptr cursor; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_boundaries_state.hpp b/src/duckdb/src/include/duckdb/function/window/window_boundaries_state.hpp new file mode 100644 index 00000000..290353eb --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_boundaries_state.hpp @@ -0,0 +1,150 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_boundaries_state.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/types.hpp" +#include "duckdb/common/types/data_chunk.hpp" +#include "duckdb/common/vector_operations/vector_operations.hpp" +#include "duckdb/function/window/window_collection.hpp" +#include "duckdb/parser/expression/window_expression.hpp" +#include "duckdb/common/vector_operations/aggregate_executor.hpp" + +namespace duckdb { + +class BoundWindowExpression; + +// Column indexes of the bounds chunk +enum WindowBounds : uint8_t { + PARTITION_BEGIN, + PARTITION_END, + PEER_BEGIN, + PEER_END, + VALID_BEGIN, + VALID_END, + FRAME_BEGIN, + FRAME_END +}; + +// C++ 11 won't do this automatically... +struct WindowBoundsHash { + inline uint64_t operator()(const WindowBounds &value) const { + return value; + } +}; + +using WindowBoundsSet = unordered_set; + +struct WindowInputExpression { + WindowInputExpression(DataChunk &chunk, column_t col_idx) + : ptype(PhysicalType::INVALID), scalar(true), chunk(chunk), col_idx(col_idx) { + if (col_idx < chunk.data.size()) { + auto &col = chunk.data[col_idx]; + ptype = col.GetType().InternalType(); + scalar = (col.GetVectorType() == VectorType::CONSTANT_VECTOR); + } + } + + inline PhysicalType InternalType() const { + return ptype; + } + + template + inline T GetCell(idx_t i) const { + D_ASSERT(!chunk.data.empty()); + const auto data = FlatVector::GetData(chunk.data[col_idx]); + return data[scalar ? 0 : i]; + } + + inline bool CellIsNull(idx_t i) const { + D_ASSERT(!chunk.data.empty()); + auto &col = chunk.data[col_idx]; + + if (scalar) { + return ConstantVector::IsNull(col); + } + return FlatVector::IsNull(col, i); + } + + inline void CopyCell(Vector &target, idx_t target_offset, idx_t width = 1) const { + D_ASSERT(!chunk.data.empty()); + auto &source = chunk.data[col_idx]; + auto source_offset = scalar ? 0 : target_offset; + VectorOperations::Copy(source, target, source_offset + width, source_offset, target_offset); + } + +private: + PhysicalType ptype; + bool scalar; + DataChunk &chunk; + const column_t col_idx; +}; + +struct WindowBoundariesState { + + static bool HasPrecedingRange(const BoundWindowExpression &wexpr); + static bool HasFollowingRange(const BoundWindowExpression &wexpr); + static WindowBoundsSet GetWindowBounds(const BoundWindowExpression &wexpr); + static idx_t FindNextStart(const ValidityMask &mask, idx_t l, const idx_t r, idx_t &n); + static idx_t FindPrevStart(const ValidityMask &mask, const idx_t l, idx_t r, idx_t &n); + + WindowBoundariesState(const BoundWindowExpression &wexpr, const idx_t input_size); + + // Generate the partition start indices + void PartitionBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask); + void PartitionEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask); + void PeerBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask, const ValidityMask &order_mask); + void PeerEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, const ValidityMask &partition_mask, + const ValidityMask &order_mask); + void ValidBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, + const ValidityMask &partition_mask, const ValidityMask &order_mask, + optional_ptr range); + void ValidEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, bool is_jump, const ValidityMask &partition_mask, + const ValidityMask &order_mask, optional_ptr range); + void FrameBegin(DataChunk &bounds, idx_t row_idx, const idx_t count, WindowInputExpression &boundary_begin, + optional_ptr range); + void FrameEnd(DataChunk &bounds, idx_t row_idx, const idx_t count, WindowInputExpression &boundary_end, + optional_ptr range); + + static void ClampFrame(const idx_t count, idx_t *values, const idx_t *begin, const idx_t *end) { + for (idx_t i = 0; i < count; ++i) { + values[i] = MinValue(MaxValue(values[i], begin[i]), end[i]); + } + } + + void Bounds(DataChunk &bounds, idx_t row_idx, optional_ptr range, const idx_t count, + WindowInputExpression &boundary_start, WindowInputExpression &boundary_end, + const ValidityMask &partition_mask, const ValidityMask &order_mask); + + // Cached lookups + WindowBoundsSet required; + const ExpressionType type; + const idx_t input_size; + const WindowBoundary start_boundary; + const WindowBoundary end_boundary; + const size_t partition_count; + const size_t order_count; + const OrderType range_sense; + const bool has_preceding_range; + const bool has_following_range; + + // Carried between chunks + idx_t next_pos = 0; + idx_t partition_start = 0; + idx_t partition_end = 0; + idx_t peer_start = 0; + idx_t valid_start = 0; + idx_t valid_end = 0; + + FrameBounds prev; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_collection.hpp b/src/duckdb/src/include/duckdb/function/window/window_collection.hpp new file mode 100644 index 00000000..d946a1d7 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_collection.hpp @@ -0,0 +1,146 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_collection.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/atomic.hpp" +#include "duckdb/common/types/column/column_data_collection.hpp" +#include "duckdb/common/vector_operations/vector_operations.hpp" + +namespace duckdb { + +// A wrapper for building ColumnDataCollections in parallel +class WindowCollection { +public: + using ColumnDataCollectionPtr = unique_ptr; + using ColumnDataCollectionSpec = pair>; + using ColumnSet = unordered_set; + + WindowCollection(BufferManager &buffer_manager, idx_t count, const vector &types); + + idx_t ColumnCount() const { + return types.size(); + } + + idx_t size() const { // NOLINT + return count; + } + + const vector &GetTypes() const { + return types; + } + + //! Update a thread-local collection for appending data to a given row + void GetCollection(idx_t row_idx, ColumnDataCollectionSpec &spec); + //! Single-threaded, idempotent ordered combining of all the appended data. + void Combine(const ColumnSet &build_validity); + + //! The collection data. May be null if the column count is 0. + ColumnDataCollectionPtr inputs; + //! Global validity mask + vector> all_valids; + //! Optional validity mask for the entire collection + vector validities; + + //! The collection columns + const vector types; + //! The collection rows + const idx_t count; + + //! Guard for range updates + mutex lock; + //! The paging buffer manager to use + BufferManager &buffer_manager; + //! The component column data collections + vector collections; + //! The (sorted) collection ranges + using Range = pair; + vector ranges; +}; + +class WindowBuilder { +public: + explicit WindowBuilder(WindowCollection &collection); + + //! Add a new chunk at the given index + void Sink(DataChunk &chunk, idx_t input_idx); + + //! The collection we are helping to build + WindowCollection &collection; + //! The thread's current input collection + using ColumnDataCollectionSpec = WindowCollection::ColumnDataCollectionSpec; + ColumnDataCollectionSpec sink; + //! The state used for appending to the collection + ColumnDataAppendState appender; + //! Are all the sunk rows valid? + bool all_valid = true; +}; + +class WindowCursor { +public: + WindowCursor(const WindowCollection &paged, column_t col_idx); + WindowCursor(const WindowCollection &paged, vector column_ids); + + //! Is the scan in range? + inline bool RowIsVisible(idx_t row_idx) const { + return (row_idx < state.next_row_index && state.current_row_index <= row_idx); + } + //! The offset of the row in the given state + inline sel_t RowOffset(idx_t row_idx) const { + D_ASSERT(RowIsVisible(row_idx)); + return UnsafeNumericCast(row_idx - state.current_row_index); + } + //! Scan the next chunk + inline bool Scan() { + return paged.inputs->Scan(state, chunk); + } + //! Seek to the given row + inline idx_t Seek(idx_t row_idx) { + if (!RowIsVisible(row_idx)) { + D_ASSERT(paged.inputs.get()); + paged.inputs->Seek(row_idx, state, chunk); + } + return RowOffset(row_idx); + } + //! Check a collection cell for nullity + bool CellIsNull(idx_t col_idx, idx_t row_idx) { + D_ASSERT(chunk.ColumnCount() > col_idx); + auto index = Seek(row_idx); + auto &source = chunk.data[col_idx]; + return FlatVector::IsNull(source, index); + } + //! Read a typed cell + template + T GetCell(idx_t col_idx, idx_t row_idx) { + D_ASSERT(chunk.ColumnCount() > col_idx); + auto index = Seek(row_idx); + auto &source = chunk.data[col_idx]; + const auto data = FlatVector::GetData(source); + return data[index]; + } + //! Copy a single value + void CopyCell(idx_t col_idx, idx_t row_idx, Vector &target, idx_t target_offset) { + D_ASSERT(chunk.ColumnCount() > col_idx); + auto index = Seek(row_idx); + auto &source = chunk.data[col_idx]; + VectorOperations::Copy(source, target, index + 1, index, target_offset); + } + + unique_ptr Copy() const { + return make_uniq(paged, state.column_ids); + } + + //! The pageable data + const WindowCollection &paged; + //! The state used for reading the collection + ColumnDataScanState state; + //! The data chunk read into + DataChunk chunk; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_constant_aggregator.hpp b/src/duckdb/src/include/duckdb/function/window/window_constant_aggregator.hpp new file mode 100644 index 00000000..af3c7f88 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_constant_aggregator.hpp @@ -0,0 +1,35 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_constant_aggregator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_aggregator.hpp" + +namespace duckdb { + +class WindowConstantAggregator : public WindowAggregator { +public: + WindowConstantAggregator(const BoundWindowExpression &wexpr, WindowExcludeMode exclude_mode_p, + WindowSharedExpressions &shared); + ~WindowConstantAggregator() override { + } + + unique_ptr GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const override; + void Sink(WindowAggregatorState &gstate, WindowAggregatorState &lstate, DataChunk &sink_chunk, + DataChunk &coll_chunk, idx_t input_idx, optional_ptr filter_sel, + idx_t filtered) override; + void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, CollectionPtr collection, + const FrameStats &stats) override; + + unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; + void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_cumedist_function.hpp b/src/duckdb/src/include/duckdb/function/window/window_cumedist_function.hpp new file mode 100644 index 00000000..0ba062d4 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_cumedist_function.hpp @@ -0,0 +1,24 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_cumedist_function.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_executor.hpp" + +namespace duckdb { + +class WindowCumeDistExecutor : public WindowExecutor { +public: + WindowCumeDistExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_custom_aggregator.hpp b/src/duckdb/src/include/duckdb/function/window/window_custom_aggregator.hpp new file mode 100644 index 00000000..dffad848 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_custom_aggregator.hpp @@ -0,0 +1,31 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_custom_aggregator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_aggregator.hpp" + +namespace duckdb { + +class WindowCustomAggregator : public WindowAggregator { +public: + WindowCustomAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode, + WindowSharedExpressions &shared); + ~WindowCustomAggregator() override; + + unique_ptr GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const override; + void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, CollectionPtr collection, + const FrameStats &stats) override; + + unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; + void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_distinct_aggregator.hpp b/src/duckdb/src/include/duckdb/function/window/window_distinct_aggregator.hpp new file mode 100644 index 00000000..1cafc925 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_distinct_aggregator.hpp @@ -0,0 +1,37 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_distinct_aggregator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_aggregator.hpp" + +namespace duckdb { + +class WindowDistinctAggregator : public WindowAggregator { +public: + WindowDistinctAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode_p, + WindowSharedExpressions &shared, ClientContext &context); + + // Build + unique_ptr GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const override; + void Sink(WindowAggregatorState &gsink, WindowAggregatorState &lstate, DataChunk &sink_chunk, DataChunk &coll_chunk, + idx_t input_idx, optional_ptr filter_sel, idx_t filtered) override; + void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, CollectionPtr collection, + const FrameStats &stats) override; + + // Evaluate + unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; + void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, + Vector &result, idx_t count, idx_t row_idx) const override; + + //! Context for sorting + ClientContext &context; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_executor.hpp b/src/duckdb/src/include/duckdb/function/window/window_executor.hpp new file mode 100644 index 00000000..6d392bf9 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_executor.hpp @@ -0,0 +1,122 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_executor.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_boundaries_state.hpp" +#include "duckdb/function/window/window_collection.hpp" + +namespace duckdb { + +class WindowCollection; + +struct WindowSharedExpressions; + +class WindowExecutorState { +public: + WindowExecutorState() {}; + virtual ~WindowExecutorState() { + } + + template + TARGET &Cast() { + DynamicCastCheck(this); + return reinterpret_cast(*this); + } + template + const TARGET &Cast() const { + DynamicCastCheck(this); + return reinterpret_cast(*this); + } +}; + +class WindowExecutor; + +class WindowExecutorGlobalState : public WindowExecutorState { +public: + using CollectionPtr = optional_ptr; + + WindowExecutorGlobalState(const WindowExecutor &executor, const idx_t payload_count, + const ValidityMask &partition_mask, const ValidityMask &order_mask); + + const WindowExecutor &executor; + + const idx_t payload_count; + const ValidityMask &partition_mask; + const ValidityMask &order_mask; + vector arg_types; +}; + +class WindowExecutorLocalState : public WindowExecutorState { +public: + using CollectionPtr = optional_ptr; + + explicit WindowExecutorLocalState(const WindowExecutorGlobalState &gstate); + + void Sink(WindowExecutorGlobalState &gstate, DataChunk &sink_chunk, DataChunk &coll_chunk, idx_t input_idx); + virtual void Finalize(WindowExecutorGlobalState &gstate, CollectionPtr collection); + + //! The state used for reading the range collection + unique_ptr range_cursor; +}; + +class WindowExecutorBoundsState : public WindowExecutorLocalState { +public: + explicit WindowExecutorBoundsState(const WindowExecutorGlobalState &gstate); + ~WindowExecutorBoundsState() override { + } + + virtual void UpdateBounds(WindowExecutorGlobalState &gstate, idx_t row_idx, DataChunk &eval_chunk, + optional_ptr range); + + // Frame management + const ValidityMask &partition_mask; + const ValidityMask &order_mask; + DataChunk bounds; + WindowBoundariesState state; +}; + +class WindowExecutor { +public: + using CollectionPtr = optional_ptr; + + WindowExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + virtual ~WindowExecutor() { + } + + virtual unique_ptr + GetGlobalState(const idx_t payload_count, const ValidityMask &partition_mask, const ValidityMask &order_mask) const; + virtual unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const; + + virtual void Sink(DataChunk &sink_chunk, DataChunk &coll_chunk, const idx_t input_idx, + WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate) const; + + virtual void Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + CollectionPtr collection) const; + + void Evaluate(idx_t row_idx, DataChunk &eval_chunk, Vector &result, WindowExecutorLocalState &lstate, + WindowExecutorGlobalState &gstate) const; + + // The function + const BoundWindowExpression &wexpr; + ClientContext &context; + + // evaluate frame expressions, if needed + column_t boundary_start_idx = DConstants::INVALID_INDEX; + column_t boundary_end_idx = DConstants::INVALID_INDEX; + + // evaluate RANGE expressions, if needed + optional_ptr range_expr; + column_t range_idx = DConstants::INVALID_INDEX; + +protected: + virtual void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + DataChunk &eval_chunk, Vector &result, idx_t count, idx_t row_idx) const = 0; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_naive_aggregator.hpp b/src/duckdb/src/include/duckdb/function/window/window_naive_aggregator.hpp new file mode 100644 index 00000000..199301bb --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_naive_aggregator.hpp @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_naive_aggregator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_aggregator.hpp" + +namespace duckdb { + +// Used for validation +class WindowNaiveAggregator : public WindowAggregator { +public: + WindowNaiveAggregator(const BoundWindowExpression &wexpr, const WindowExcludeMode exclude_mode, + WindowSharedExpressions &shared); + ~WindowNaiveAggregator() override; + + unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; + void Evaluate(const WindowAggregatorState &gsink, WindowAggregatorState &lstate, const DataChunk &bounds, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_rank_function.hpp b/src/duckdb/src/include/duckdb/function/window/window_rank_function.hpp new file mode 100644 index 00000000..58376d25 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_rank_function.hpp @@ -0,0 +1,48 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_rank_function.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_executor.hpp" + +namespace duckdb { + +class WindowRankExecutor : public WindowExecutor { +public: + WindowRankExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + + unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +class WindowDenseRankExecutor : public WindowExecutor { +public: + WindowDenseRankExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + + unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +class WindowPercentRankExecutor : public WindowExecutor { +public: + WindowPercentRankExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + + unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_rownumber_function.hpp b/src/duckdb/src/include/duckdb/function/window/window_rownumber_function.hpp new file mode 100644 index 00000000..46b118e9 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_rownumber_function.hpp @@ -0,0 +1,24 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_rownumber_function.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_executor.hpp" + +namespace duckdb { + +class WindowRowNumberExecutor : public WindowExecutor { +public: + WindowRowNumberExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_segment_tree.hpp b/src/duckdb/src/include/duckdb/function/window/window_segment_tree.hpp new file mode 100644 index 00000000..f3a7b6f9 --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_segment_tree.hpp @@ -0,0 +1,40 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_segment_tree.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_aggregator.hpp" + +namespace duckdb { + +class WindowSegmentTree : public WindowAggregator { + +public: + WindowSegmentTree(const BoundWindowExpression &wexpr, WindowAggregationMode mode_p, + const WindowExcludeMode exclude_mode, WindowSharedExpressions &shared); + + unique_ptr GetGlobalState(ClientContext &context, idx_t group_count, + const ValidityMask &partition_mask) const override; + unique_ptr GetLocalState(const WindowAggregatorState &gstate) const override; + void Finalize(WindowAggregatorState &gstate, WindowAggregatorState &lstate, CollectionPtr collection, + const FrameStats &stats) override; + + void Evaluate(const WindowAggregatorState &gstate, WindowAggregatorState &lstate, const DataChunk &bounds, + Vector &result, idx_t count, idx_t row_idx) const override; + +public: + //! Use the combine API, if available + inline bool UseCombineAPI() const { + return mode < WindowAggregationMode::SEPARATE; + } + + //! Use the combine API, if available + WindowAggregationMode mode; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_shared_expressions.hpp b/src/duckdb/src/include/duckdb/function/window/window_shared_expressions.hpp new file mode 100644 index 00000000..b6ebb6ff --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_shared_expressions.hpp @@ -0,0 +1,76 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_shared_expressions.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/parser/expression_map.hpp" + +namespace duckdb { + +class ExpressionExecutor; +class DataChunk; + +//! A shared set of expressions +struct WindowSharedExpressions { + struct Shared { + column_t size = 0; + expression_map_t> columns; + }; + + //! Register a shared expression in a shared set + static column_t RegisterExpr(const unique_ptr &expr, Shared &shared); + + //! Register a shared collection expression + column_t RegisterCollection(const unique_ptr &expr, bool build_validity) { + auto result = RegisterExpr(expr, coll_shared); + if (build_validity) { + coll_validity.insert(result); + } + return result; + } + //! Register a shared collection expression + inline column_t RegisterSink(const unique_ptr &expr) { + return RegisterExpr(expr, sink_shared); + } + //! Register a shared evaluation expression + inline column_t RegisterEvaluate(const unique_ptr &expr) { + return RegisterExpr(expr, eval_shared); + } + + //! Expression layout + static vector GetSortedExpressions(Shared &shared); + + //! Expression execution utility + static void PrepareExecutors(Shared &shared, ExpressionExecutor &exec, DataChunk &chunk); + + //! Prepare collection expressions + inline void PrepareCollection(ExpressionExecutor &exec, DataChunk &chunk) { + PrepareExecutors(coll_shared, exec, chunk); + } + + //! Prepare collection expressions + inline void PrepareSink(ExpressionExecutor &exec, DataChunk &chunk) { + PrepareExecutors(sink_shared, exec, chunk); + } + + //! Prepare collection expressions + inline void PrepareEvaluate(ExpressionExecutor &exec, DataChunk &chunk) { + PrepareExecutors(eval_shared, exec, chunk); + } + + //! Fully materialised shared expressions + Shared coll_shared; + //! Sink shared expressions + Shared sink_shared; + //! Evaluate shared expressions + Shared eval_shared; + //! Requested collection validity masks + unordered_set coll_validity; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/function/window/window_value_function.hpp b/src/duckdb/src/include/duckdb/function/window/window_value_function.hpp new file mode 100644 index 00000000..b0357eab --- /dev/null +++ b/src/duckdb/src/include/duckdb/function/window/window_value_function.hpp @@ -0,0 +1,84 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/function/window/window_value_function.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/function/window/window_executor.hpp" + +namespace duckdb { + +// Base class for non-aggregate functions that have a payload +class WindowValueExecutor : public WindowExecutor { +public: + WindowValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + + void Finalize(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, + CollectionPtr collection) const override; + + unique_ptr GetGlobalState(const idx_t payload_count, const ValidityMask &partition_mask, + const ValidityMask &order_mask) const override; + unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; + + //! The column index of the value column + column_t child_idx = DConstants::INVALID_INDEX; + //! The column index of the Nth column + column_t nth_idx = DConstants::INVALID_INDEX; + //! The column index of the offset column + column_t offset_idx = DConstants::INVALID_INDEX; + //! The column index of the default value column + column_t default_idx = DConstants::INVALID_INDEX; +}; + +// +class WindowNtileExecutor : public WindowValueExecutor { +public: + WindowNtileExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; +class WindowLeadLagExecutor : public WindowValueExecutor { +public: + WindowLeadLagExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + + unique_ptr GetLocalState(const WindowExecutorGlobalState &gstate) const override; + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +class WindowFirstValueExecutor : public WindowValueExecutor { +public: + WindowFirstValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +class WindowLastValueExecutor : public WindowValueExecutor { +public: + WindowLastValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +class WindowNthValueExecutor : public WindowValueExecutor { +public: + WindowNthValueExecutor(BoundWindowExpression &wexpr, ClientContext &context, WindowSharedExpressions &shared); + +protected: + void EvaluateInternal(WindowExecutorGlobalState &gstate, WindowExecutorLocalState &lstate, DataChunk &eval_chunk, + Vector &result, idx_t count, idx_t row_idx) const override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/main/appender.hpp b/src/duckdb/src/include/duckdb/main/appender.hpp index 9662e274..70dc881e 100644 --- a/src/duckdb/src/include/duckdb/main/appender.hpp +++ b/src/duckdb/src/include/duckdb/main/appender.hpp @@ -28,28 +28,31 @@ enum class AppenderType : uint8_t { //! The Appender class can be used to append elements to a table. class BaseAppender { public: - //! The amount of tuples that will be gathered in the column data collection before flushing + //! The amount of tuples that are gathered in the column data collection before flushing. static constexpr const idx_t DEFAULT_FLUSH_COUNT = STANDARD_VECTOR_SIZE * 100ULL; protected: + //! The allocator for the column data collection. Allocator &allocator; - //! The append types + //! The column types of the associated table. vector types; - //! The buffered data for the append + //! The active column types. + vector active_types; + //! The buffered to-be-appended data. unique_ptr collection; - //! Internal chunk used for appends + //! The active chunk for row-based appends. DataChunk chunk; - //! The current column to append to + //! The currently active column of row-based appends. idx_t column = 0; - //! The type of the appender + //! The type of the appender. AppenderType appender_type; - //! The amount of rows after which we flush the appender automatically + //! The amount of rows after which the appender flushes automatically. idx_t flush_count = DEFAULT_FLUSH_COUNT; protected: - DUCKDB_API BaseAppender(Allocator &allocator, AppenderType type); - DUCKDB_API BaseAppender(Allocator &allocator, vector types, AppenderType type, - idx_t flush_count = DEFAULT_FLUSH_COUNT); + DUCKDB_API BaseAppender(Allocator &allocator, const AppenderType type); + DUCKDB_API BaseAppender(Allocator &allocator, vector types, const AppenderType type, + const idx_t flush_count = DEFAULT_FLUSH_COUNT); public: DUCKDB_API virtual ~BaseAppender(); @@ -78,15 +81,21 @@ class BaseAppender { DUCKDB_API void Flush(); //! Flush the changes made by the appender and close it. The appender cannot be used after this point DUCKDB_API void Close(); + //! Returns the active types of the appender. + const vector &GetActiveTypes() const; - vector &GetTypes() { - return types; - } idx_t CurrentColumn() const { return column; } DUCKDB_API void AppendDataChunk(DataChunk &value); + //! Appends a column to the active column list. + //! Immediately flushes all previous data. + virtual void AddColumn(const string &name) = 0; + //! Removes all columns from the active column list. + //! Immediately flushes all previous data. + virtual void ClearColumns() = 0; + protected: void Destructor(); virtual void FlushInternal(ColumnDataCollection &collection) = 0; @@ -114,20 +123,28 @@ class BaseAppender { }; class Appender : public BaseAppender { - //! A reference to a database connection that created this appender + //! A shared pointer to the context of this appender. shared_ptr context; - //! The table description (including column names) + //! The table description including the column names. unique_ptr description; - //! The default expressions - unordered_map default_values; + //! All table default values. + unordered_map default_values; + + //! If not empty, then this holds all logical column IDs of columns provided by the appender. + //! Any other columns default to NULL, or their default values. + vector column_ids; public: + DUCKDB_API Appender(Connection &con, const string &database_name, const string &schema_name, + const string &table_name); DUCKDB_API Appender(Connection &con, const string &schema_name, const string &table_name); DUCKDB_API Appender(Connection &con, const string &table_name); DUCKDB_API ~Appender() override; public: void AppendDefault(); + void AddColumn(const string &name) override; + void ClearColumns() override; protected: void FlushInternal(ColumnDataCollection &collection) override; @@ -141,11 +158,13 @@ class InternalAppender : public BaseAppender { public: DUCKDB_API InternalAppender(ClientContext &context, TableCatalogEntry &table, - idx_t flush_count = DEFAULT_FLUSH_COUNT); + const idx_t flush_count = DEFAULT_FLUSH_COUNT); DUCKDB_API ~InternalAppender() override; protected: void FlushInternal(ColumnDataCollection &collection) override; + void AddColumn(const string &name) override; + void ClearColumns() override; }; template <> diff --git a/src/duckdb/src/include/duckdb/main/attached_database.hpp b/src/duckdb/src/include/duckdb/main/attached_database.hpp index db2e8ef5..098edf9f 100644 --- a/src/duckdb/src/include/duckdb/main/attached_database.hpp +++ b/src/duckdb/src/include/duckdb/main/attached_database.hpp @@ -13,6 +13,7 @@ #include "duckdb/common/mutex.hpp" #include "duckdb/main/config.hpp" #include "duckdb/catalog/catalog_entry.hpp" +#include "duckdb/storage/storage_options.hpp" namespace duckdb { class Catalog; @@ -43,8 +44,10 @@ struct AttachOptions { AccessMode access_mode; //! The file format type. The default type is a duckdb database file, but other file formats are possible. string db_type; - //! We only set this, if we detect any unrecognized option. - string unrecognized_option; + //! Set of remaining (key, value) options + unordered_map options; + //! (optionally) a catalog can be provided with a default table + QualifiedName default_table; }; //! The AttachedDatabase represents an attached database instance. @@ -61,7 +64,7 @@ class AttachedDatabase : public CatalogEntry { ~AttachedDatabase() override; //! Initializes the catalog and storage of the attached database. - void Initialize(const optional_idx block_alloc_size = optional_idx()); + void Initialize(StorageOptions options = StorageOptions()); void Close(); Catalog &ParentCatalog() override; diff --git a/src/duckdb/src/include/duckdb/main/capi/extension_api.hpp b/src/duckdb/src/include/duckdb/main/capi/extension_api.hpp index 932730c0..d881adca 100644 --- a/src/duckdb/src/include/duckdb/main/capi/extension_api.hpp +++ b/src/duckdb/src/include/duckdb/main/capi/extension_api.hpp @@ -422,6 +422,37 @@ typedef struct { duckdb_arrow_schema arrow_schema, duckdb_arrow_array arrow_array, duckdb_arrow_stream *out_stream); duckdb_data_chunk (*duckdb_stream_fetch_chunk)(duckdb_result result); + // dev + // WARNING! the functions below are not (yet) stable + + duckdb_state (*duckdb_appender_create_ext)(duckdb_connection connection, const char *catalog, const char *schema, + const char *table, duckdb_appender *out_appender); + duckdb_state (*duckdb_table_description_create_ext)(duckdb_connection connection, const char *catalog, + const char *schema, const char *table, + duckdb_table_description *out); + char *(*duckdb_table_description_get_column_name)(duckdb_table_description table_description, idx_t index); + duckdb_logical_type (*duckdb_param_logical_type)(duckdb_prepared_statement prepared_statement, idx_t param_idx); + bool (*duckdb_is_null_value)(duckdb_value value); + duckdb_value (*duckdb_create_null_value)(); + idx_t (*duckdb_get_list_size)(duckdb_value value); + duckdb_value (*duckdb_get_list_child)(duckdb_value value, idx_t index); + duckdb_value (*duckdb_create_enum_value)(duckdb_logical_type type, uint64_t value); + uint64_t (*duckdb_get_enum_value)(duckdb_value value); + duckdb_value (*duckdb_get_struct_child)(duckdb_value value, idx_t index); + duckdb_state (*duckdb_appender_add_column)(duckdb_appender appender, const char *name); + duckdb_state (*duckdb_appender_clear_columns)(duckdb_appender appender); + bool (*duckdb_is_finite_timestamp_s)(duckdb_timestamp_s ts); + bool (*duckdb_is_finite_timestamp_ms)(duckdb_timestamp_ms ts); + bool (*duckdb_is_finite_timestamp_ns)(duckdb_timestamp_ns ts); + duckdb_value (*duckdb_create_timestamp_tz)(duckdb_timestamp input); + duckdb_value (*duckdb_create_timestamp_s)(duckdb_timestamp_s input); + duckdb_value (*duckdb_create_timestamp_ms)(duckdb_timestamp_ms input); + duckdb_value (*duckdb_create_timestamp_ns)(duckdb_timestamp_ns input); + duckdb_timestamp (*duckdb_get_timestamp_tz)(duckdb_value val); + duckdb_timestamp_s (*duckdb_get_timestamp_s)(duckdb_value val); + duckdb_timestamp_ms (*duckdb_get_timestamp_ms)(duckdb_value val); + duckdb_timestamp_ns (*duckdb_get_timestamp_ns)(duckdb_value val); + duckdb_state (*duckdb_append_value)(duckdb_appender appender, duckdb_value value); } duckdb_ext_api_v0; //===--------------------------------------------------------------------===// @@ -800,6 +831,31 @@ inline duckdb_ext_api_v0 CreateAPIv0() { result.duckdb_arrow_scan = duckdb_arrow_scan; result.duckdb_arrow_array_scan = duckdb_arrow_array_scan; result.duckdb_stream_fetch_chunk = duckdb_stream_fetch_chunk; + result.duckdb_appender_create_ext = duckdb_appender_create_ext; + result.duckdb_table_description_create_ext = duckdb_table_description_create_ext; + result.duckdb_table_description_get_column_name = duckdb_table_description_get_column_name; + result.duckdb_param_logical_type = duckdb_param_logical_type; + result.duckdb_is_null_value = duckdb_is_null_value; + result.duckdb_create_null_value = duckdb_create_null_value; + result.duckdb_get_list_size = duckdb_get_list_size; + result.duckdb_get_list_child = duckdb_get_list_child; + result.duckdb_create_enum_value = duckdb_create_enum_value; + result.duckdb_get_enum_value = duckdb_get_enum_value; + result.duckdb_get_struct_child = duckdb_get_struct_child; + result.duckdb_appender_add_column = duckdb_appender_add_column; + result.duckdb_appender_clear_columns = duckdb_appender_clear_columns; + result.duckdb_is_finite_timestamp_s = duckdb_is_finite_timestamp_s; + result.duckdb_is_finite_timestamp_ms = duckdb_is_finite_timestamp_ms; + result.duckdb_is_finite_timestamp_ns = duckdb_is_finite_timestamp_ns; + result.duckdb_create_timestamp_tz = duckdb_create_timestamp_tz; + result.duckdb_create_timestamp_s = duckdb_create_timestamp_s; + result.duckdb_create_timestamp_ms = duckdb_create_timestamp_ms; + result.duckdb_create_timestamp_ns = duckdb_create_timestamp_ns; + result.duckdb_get_timestamp_tz = duckdb_get_timestamp_tz; + result.duckdb_get_timestamp_s = duckdb_get_timestamp_s; + result.duckdb_get_timestamp_ms = duckdb_get_timestamp_ms; + result.duckdb_get_timestamp_ns = duckdb_get_timestamp_ns; + result.duckdb_append_value = duckdb_append_value; return result; } diff --git a/src/duckdb/src/include/duckdb/main/client_config.hpp b/src/duckdb/src/include/duckdb/main/client_config.hpp index 306aa0a6..8b919c82 100644 --- a/src/duckdb/src/include/duckdb/main/client_config.hpp +++ b/src/duckdb/src/include/duckdb/main/client_config.hpp @@ -117,6 +117,9 @@ struct ClientConfig { //! The threshold at which we switch from using filtered aggregates to LIST with a dedicated pivot operator idx_t pivot_filter_threshold = 20; + //! The maximum amount of OR filters we generate dynamically from a hash join + idx_t dynamic_or_filter_threshold = 50; + //! Whether or not the "/" division operator defaults to integer division or floating point division bool integer_division = false; //! When a scalar subquery returns multiple rows - return a random row instead of returning an error @@ -170,6 +173,16 @@ struct ClientConfig { user_variables.erase(name); } + template + static typename OP::RETURN_TYPE GetSetting(const ClientContext &context) { + return OP::GetSetting(context).template GetValue(); + } + + template + static Value GetSettingValue(const ClientContext &context) { + return OP::GetSetting(context); + } + public: void SetDefaultStreamingBufferSize(); }; diff --git a/src/duckdb/src/include/duckdb/main/client_context.hpp b/src/duckdb/src/include/duckdb/main/client_context.hpp index c03e38ae..6f5115cb 100644 --- a/src/duckdb/src/include/duckdb/main/client_context.hpp +++ b/src/duckdb/src/include/duckdb/main/client_context.hpp @@ -114,17 +114,32 @@ class ClientContext : public enable_shared_from_this { DUCKDB_API unique_ptr PendingQuery(unique_ptr statement, bool allow_stream_result); + //! Create a pending query with a list of parameters + DUCKDB_API unique_ptr PendingQuery(unique_ptr statement, + case_insensitive_map_t &values, + bool allow_stream_result); + DUCKDB_API unique_ptr + PendingQuery(const string &query, case_insensitive_map_t &values, bool allow_stream_result); + //! Destroy the client context DUCKDB_API void Destroy(); - //! Get the table info of a specific table, or nullptr if it cannot be found + //! Get the table info of a specific table, or nullptr if it cannot be found. + DUCKDB_API unique_ptr TableInfo(const string &database_name, const string &schema_name, + const string &table_name); + //! Get the table info of a specific table, or nullptr if it cannot be found. Uses INVALID_CATALOG. DUCKDB_API unique_ptr TableInfo(const string &schema_name, const string &table_name); - //! Appends a DataChunk to the specified table. Returns whether or not the append was successful. - DUCKDB_API void Append(TableDescription &description, ColumnDataCollection &collection); + //! Appends a DataChunk and its default columns to the specified table. + DUCKDB_API void Append(TableDescription &description, ColumnDataCollection &collection, + optional_ptr> column_ids = nullptr); + //! Try to bind a relation in the current client context; either throws an exception or fills the result_columns //! list with the set of returned columns DUCKDB_API void TryBindRelation(Relation &relation, vector &result_columns); + //! Internal function for try bind relation. It does not require a client-context lock. + DUCKDB_API void InternalTryBindRelation(Relation &relation, vector &result_columns); + //! Execute a relation DUCKDB_API unique_ptr PendingQuery(const shared_ptr &relation, bool allow_stream_result); @@ -211,7 +226,8 @@ class ClientContext : public enable_shared_from_this { vector> ParseStatementsInternal(ClientContextLock &lock, const string &query); //! Perform aggressive query verification of a SELECT statement. Only called when query_verification_enabled is //! true. - ErrorData VerifyQuery(ClientContextLock &lock, const string &query, unique_ptr statement); + ErrorData VerifyQuery(ClientContextLock &lock, const string &query, unique_ptr statement, + optional_ptr> values = nullptr); void InitialCleanup(ClientContextLock &lock); //! Internal clean up, does not lock. Caller must hold the context_lock. @@ -239,6 +255,7 @@ class ClientContext : public enable_shared_from_this { const PendingQueryParameters ¶meters); unique_ptr RunStatementInternal(ClientContextLock &lock, const string &query, unique_ptr statement, bool allow_stream_result, + optional_ptr> params, bool verify = true); unique_ptr PrepareInternal(ClientContextLock &lock, unique_ptr statement); void LogQueryInternal(ClientContextLock &lock, const string &query); diff --git a/src/duckdb/src/include/duckdb/main/client_context_wrapper.hpp b/src/duckdb/src/include/duckdb/main/client_context_wrapper.hpp index 2ee70345..41c10225 100644 --- a/src/duckdb/src/include/duckdb/main/client_context_wrapper.hpp +++ b/src/duckdb/src/include/duckdb/main/client_context_wrapper.hpp @@ -9,16 +9,21 @@ #pragma once #include "duckdb/common/shared_ptr.hpp" +#include "duckdb/parser/column_definition.hpp" namespace duckdb { class ClientContext; +class Relation; + class ClientContextWrapper { public: + virtual ~ClientContextWrapper() = default; explicit ClientContextWrapper(const shared_ptr &context); shared_ptr GetContext(); shared_ptr TryGetContext(); + virtual void TryBindRelation(Relation &relation, vector &columns); private: weak_ptr client_context; diff --git a/src/duckdb/src/include/duckdb/main/config.hpp b/src/duckdb/src/include/duckdb/main/config.hpp index 162109ba..604ef264 100644 --- a/src/duckdb/src/include/duckdb/main/config.hpp +++ b/src/duckdb/src/include/duckdb/main/config.hpp @@ -24,15 +24,16 @@ #include "duckdb/common/types/value.hpp" #include "duckdb/common/vector.hpp" #include "duckdb/common/winapi.hpp" +#include "duckdb/execution/index/index_type_set.hpp" #include "duckdb/function/cast/default_casts.hpp" #include "duckdb/function/replacement_scan.hpp" +#include "duckdb/main/client_properties.hpp" #include "duckdb/optimizer/optimizer_extension.hpp" #include "duckdb/parser/parsed_data/create_info.hpp" #include "duckdb/parser/parser_extension.hpp" #include "duckdb/planner/operator_extension.hpp" #include "duckdb/storage/compression/bitpacking.hpp" -#include "duckdb/main/client_properties.hpp" -#include "duckdb/execution/index/index_type_set.hpp" +#include "duckdb/function/encoding_function.hpp" namespace duckdb { @@ -70,7 +71,7 @@ typedef Value (*get_setting_function_t)(const ClientContext &context); struct ConfigurationOption { const char *name; const char *description; - LogicalTypeId parameter_type; + const char *parameter_type; set_global_function_t set_global; set_local_function_t set_local; reset_global_function_t reset_global; @@ -168,12 +169,10 @@ struct DBConfigOptions { string collation = string(); //! The order type used when none is specified (default: ASC) OrderType default_order_type = OrderType::ASCENDING; - //! Null ordering used when none is specified (default: NULLS LAST) + //! NULL ordering used when none is specified (default: NULLS LAST) DefaultOrderByNullType default_null_order = DefaultOrderByNullType::NULLS_LAST; //! enable COPY and related commands bool enable_external_access = true; - //! Whether or not object cache is used - bool object_cache_enable = false; //! Whether or not the global http metadata cache is used bool http_metadata_cache_enable = false; //! HTTP Proxy config as 'hostname:port' @@ -195,13 +194,15 @@ struct DBConfigOptions { bool initialize_default_database = true; //! The set of disabled optimizers (default empty) set disabled_optimizers; + //! The average string length required to use ZSTD compression. + uint64_t zstd_min_string_length = 4096; //! Force a specific compression method to be used when checkpointing (if available) CompressionType force_compression = CompressionType::COMPRESSION_AUTO; //! Force a specific bitpacking mode to be used when using the bitpacking compression method BitpackingMode force_bitpacking_mode = BitpackingMode::AUTO; //! Debug setting for window aggregation mode: (window, combine, separate) WindowAggregationMode window_mode = WindowAggregationMode::WINDOW; - //! Whether or not preserving insertion order should be preserved + //! Whether preserving insertion order should be preserved bool preserve_insertion_order = true; //! Whether Arrow Arrays use Large or Regular buffers ArrowOffsetSize arrow_offset_size = ArrowOffsetSize::REGULAR; @@ -209,7 +210,7 @@ struct DBConfigOptions { bool arrow_use_list_view = false; //! Whenever a DuckDB type does not have a clear native or canonical extension match in Arrow, export the types //! with a duckdb.type_name extension name - bool arrow_arrow_lossless_conversion = false; + bool arrow_lossless_conversion = false; //! Whether when producing arrow objects we produce string_views or regular strings bool produce_arrow_string_views = false; //! Database configuration variables as controlled by SET @@ -272,6 +273,10 @@ struct DBConfigOptions { bool debug_skip_checkpoint_on_commit = false; //! The maximum amount of vacuum tasks to schedule during a checkpoint idx_t max_vacuum_tasks = 100; + //! Paths that are explicitly allowed, even if enable_external_access is false + unordered_set allowed_paths; + //! Directories that are explicitly allowed, even if enable_external_access is false + set allowed_directories; bool operator==(const DBConfigOptions &other) const; }; @@ -346,6 +351,7 @@ struct DBConfig { DUCKDB_API void ResetOption(DatabaseInstance *db, const ConfigurationOption &option); DUCKDB_API void SetOption(const string &name, Value value); DUCKDB_API void ResetOption(const string &name); + static LogicalType ParseLogicalType(const string &type); DUCKDB_API void CheckLock(const string &name); @@ -357,6 +363,12 @@ struct DBConfig { DUCKDB_API optional_ptr GetCompressionFunction(CompressionType type, const PhysicalType physical_type); + //! Returns the encode function matching the encoding name. + DUCKDB_API optional_ptr GetEncodeFunction(const string &name) const; + DUCKDB_API void RegisterEncodeFunction(const EncodingFunction &function) const; + + //! Returns the encode function names. + DUCKDB_API vector> GetLoadedEncodedFunctions() const; bool operator==(const DBConfig &other); bool operator!=(const DBConfig &other); @@ -373,8 +385,26 @@ struct DBConfig { OrderByNullType ResolveNullOrder(OrderType order_type, OrderByNullType null_type) const; const string UserAgent() const; + template + typename OP::RETURN_TYPE GetSetting(const ClientContext &context) { + std::lock_guard lock(config_lock); + return OP::GetSetting(context).template GetValue(); + } + + template + Value GetSettingValue(const ClientContext &context) { + std::lock_guard lock(config_lock); + return OP::GetSetting(context); + } + + bool CanAccessFile(const string &path, FileType type); + void AddAllowedDirectory(const string &path); + void AddAllowedPath(const string &path); + string SanitizeAllowedPath(const string &path) const; + private: unique_ptr compression_functions; + unique_ptr encoding_functions; unique_ptr cast_functions; unique_ptr collation_bindings; unique_ptr index_types; diff --git a/src/duckdb/src/include/duckdb/main/connection.hpp b/src/duckdb/src/include/duckdb/main/connection.hpp index aec41c7d..d0935ca8 100644 --- a/src/duckdb/src/include/duckdb/main/connection.hpp +++ b/src/duckdb/src/include/duckdb/main/connection.hpp @@ -97,16 +97,30 @@ class Connection { //! Issues a query to the database and returns a Pending Query Result DUCKDB_API unique_ptr PendingQuery(unique_ptr statement, bool allow_stream_result = false); + DUCKDB_API unique_ptr PendingQuery(unique_ptr statement, + case_insensitive_map_t &named_values, + bool allow_stream_result = false); + DUCKDB_API unique_ptr PendingQuery(const string &query, + case_insensitive_map_t &named_values, + bool allow_stream_result = false); + DUCKDB_API unique_ptr PendingQuery(const string &query, vector &values, + bool allow_stream_result = false); + DUCKDB_API unique_ptr PendingQuery(unique_ptr statement, vector &values, + bool allow_stream_result = false); //! Prepare the specified query, returning a prepared statement object DUCKDB_API unique_ptr Prepare(const string &query); //! Prepare the specified statement, returning a prepared statement object DUCKDB_API unique_ptr Prepare(unique_ptr statement); - //! Get the table info of a specific table (in the default schema), or nullptr if it cannot be found - DUCKDB_API unique_ptr TableInfo(const string &table_name); - //! Get the table info of a specific table, or nullptr if it cannot be found + //! Get the table info of a specific table, or nullptr if it cannot be found. + DUCKDB_API unique_ptr TableInfo(const string &database_name, const string &schema_name, + const string &table_name); + //! Get the table info of a specific table, or nullptr if it cannot be found. Uses INVALID_CATALOG. DUCKDB_API unique_ptr TableInfo(const string &schema_name, const string &table_name); + //! Get the table info of a specific table, or nullptr if it cannot be found. Uses INVALID_CATALOG and + //! DEFAULT_SCHEMA. + DUCKDB_API unique_ptr TableInfo(const string &table_name); //! Extract a set of SQL statements from a specific query DUCKDB_API vector> ExtractStatements(const string &query); @@ -131,6 +145,7 @@ class Connection { DUCKDB_API shared_ptr TableFunction(const string &tname, const vector &values); //! Returns a relation that produces values DUCKDB_API shared_ptr Values(const vector> &values); + DUCKDB_API shared_ptr Values(vector>> &&values); DUCKDB_API shared_ptr Values(const vector> &values, const vector &column_names, const string &alias = "values"); DUCKDB_API shared_ptr Values(const string &values); diff --git a/src/duckdb/src/include/duckdb/main/database.hpp b/src/duckdb/src/include/duckdb/main/database.hpp index 222a36c0..2a6fffa9 100644 --- a/src/duckdb/src/include/duckdb/main/database.hpp +++ b/src/duckdb/src/include/duckdb/main/database.hpp @@ -12,6 +12,7 @@ #include "duckdb/main/valid_checker.hpp" #include "duckdb/common/winapi.hpp" #include "duckdb/main/extension.hpp" +#include "duckdb/main/capi/extension_api.hpp" #include "duckdb/main/extension_install_info.hpp" #include "duckdb/main/settings.hpp" @@ -58,6 +59,8 @@ class DatabaseInstance : public enable_shared_from_this { DUCKDB_API ValidChecker &GetValidChecker(); DUCKDB_API void SetExtensionLoaded(const string &extension_name, ExtensionInstallInfo &install_info); + DUCKDB_API const duckdb_ext_api_v0 GetExtensionAPIV0(); + idx_t NumberOfThreads(); DUCKDB_API static DatabaseInstance &GetDatabase(ClientContext &context); @@ -91,6 +94,8 @@ class DatabaseInstance : public enable_shared_from_this { ValidChecker db_validity; unique_ptr db_file_system; shared_ptr db_cache_entry; + + duckdb_ext_api_v0 (*create_api_v0)(); }; //! The database object. This object holds the catalog and all the diff --git a/src/duckdb/src/include/duckdb/main/database_file_opener.hpp b/src/duckdb/src/include/duckdb/main/database_file_opener.hpp index 6cf21086..024956aa 100644 --- a/src/duckdb/src/include/duckdb/main/database_file_opener.hpp +++ b/src/duckdb/src/include/duckdb/main/database_file_opener.hpp @@ -22,7 +22,7 @@ class DatabaseFileOpener : public FileOpener { } SettingLookupResult TryGetCurrentSetting(const string &key, Value &result) override { - return SettingLookupResult(); + return db.TryGetCurrentSetting(key, result); } optional_ptr TryGetClientContext() override { diff --git a/src/duckdb/src/include/duckdb/main/database_manager.hpp b/src/duckdb/src/include/duckdb/main/database_manager.hpp index c06b5505..c193c979 100644 --- a/src/duckdb/src/include/duckdb/main/database_manager.hpp +++ b/src/duckdb/src/include/duckdb/main/database_manager.hpp @@ -21,6 +21,7 @@ namespace duckdb { class AttachedDatabase; class Catalog; +class CatalogEntryRetriever; class CatalogSet; class ClientContext; class DatabaseInstance; @@ -83,6 +84,8 @@ class DatabaseManager { bool HasDefaultDatabase() { return !default_database.empty(); } + //! Gets a list of all attached database paths + vector GetAttachedDatabasePaths(); private: //! Returns a database with a specified path diff --git a/src/duckdb/src/include/duckdb/main/extension_entries.hpp b/src/duckdb/src/include/duckdb/main/extension_entries.hpp index e574ef28..e3980246 100644 --- a/src/duckdb/src/include/duckdb/main/extension_entries.hpp +++ b/src/duckdb/src/include/duckdb/main/extension_entries.hpp @@ -11,8 +11,13 @@ #include "duckdb/common/unordered_map.hpp" #include "duckdb/common/enums/catalog_type.hpp" -// NOTE: this file is generated by scripts/generate_extensions_function.py. Check out the check-load-install-extensions -// job in .github/workflows/LinuxRelease.yml on how to use it +// NOTE: this file is generated by scripts/generate_extensions_function.py. +// Example usage to refresh one extension (replace "icu" with the desired extension): +// GENERATE_EXTENSION_ENTRIES=1 make debug +// python3 scripts/generate_extensions_function.py --extensions icu --shell build/debug/duckdb --extension_dir +// build/debug + +// Check out the check-load-install-extensions job in .github/workflows/LinuxRelease.yml for more details namespace duckdb { @@ -27,31 +32,174 @@ struct ExtensionFunctionEntry { CatalogType type; }; +struct ExtensionFunctionOverloadEntry { + char name[48]; + char extension[48]; + CatalogType type; + char signature[96]; +}; + static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = { + {"!__postfix", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"&", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"&&", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"**", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"->>", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"<->", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"<<", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"<<=", "inet", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"<=>", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"<@", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {">>", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {">>=", "inet", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"@", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"@>", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"^", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"^@", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"abs", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"acos", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"acosh", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"add_numbers_together", "demo_capi", CatalogType::SCALAR_FUNCTION_ENTRY}, {"add_parquet_key", "parquet", CatalogType::PRAGMA_FUNCTION_ENTRY}, + {"aggregate", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"alias", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"apply", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"approx_count_distinct", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"approx_quantile", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"approx_top_k", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"arg_max", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"arg_max_null", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"arg_min", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"arg_min_null", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"argmax", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"argmin", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"array_agg", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"array_aggr", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_aggregate", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_apply", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_cosine_distance", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_cosine_similarity", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_cross_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_distance", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_distinct", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_dot_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_filter", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_grade_up", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_has_all", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_has_any", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_inner_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_negative_dot_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_negative_inner_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_reduce", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_reverse_sort", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_slice", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_sort", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"array_to_json", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_transform", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_unique", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"array_value", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"ascii", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"asin", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"asinh", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"atan", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"atan2", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"atanh", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"avg", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"bar", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"base64", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"bin", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"bit_and", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"bit_count", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"bit_or", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"bit_position", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"bit_xor", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"bitstring", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"bitstring_agg", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"bool_and", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"bool_or", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"broadcast", "inet", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"can_cast_implicitly", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"cardinality", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"cbrt", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"ceil", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"ceiling", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"check_peg_parser", "autocomplete", CatalogType::TABLE_FUNCTION_ENTRY}, + {"chr", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"corr", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"cos", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"cosh", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"cot", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"count_if", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"countif", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"covar_pop", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"covar_samp", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"create_fts_index", "fts", CatalogType::PRAGMA_FUNCTION_ENTRY}, + {"current_database", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"current_localtime", "icu", CatalogType::SCALAR_FUNCTION_ENTRY}, {"current_localtimestamp", "icu", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"current_query", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"current_schema", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"current_schemas", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"current_setting", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"damerau_levenshtein", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"dbgen", "tpch", CatalogType::TABLE_FUNCTION_ENTRY}, + {"decode", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"degrees", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"delta_scan", "delta", CatalogType::TABLE_FUNCTION_ENTRY}, {"drop_fts_index", "fts", CatalogType::PRAGMA_FUNCTION_ENTRY}, {"dsdgen", "tpcds", CatalogType::TABLE_FUNCTION_ENTRY}, + {"editdist3", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"element_at", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"encode", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"entropy", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"enum_code", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"enum_first", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"enum_last", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"enum_range", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"enum_range_boundary", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"epoch_ms", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"epoch_ns", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"epoch_us", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"equi_width_bins", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"even", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"excel_text", "excel", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"exp", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"factorial", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"family", "inet", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"favg", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"filter", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"flatten", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"floor", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"format", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"format_bytes", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"formatreadabledecimalsize", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"formatreadablesize", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"from_base64", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"from_binary", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"from_hex", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"from_json", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, {"from_json_strict", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, {"from_substrait", "substrait", CatalogType::TABLE_FUNCTION_ENTRY}, {"from_substrait_json", "substrait", CatalogType::TABLE_FUNCTION_ENTRY}, + {"fsum", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"fuzz_all_functions", "sqlsmith", CatalogType::TABLE_FUNCTION_ENTRY}, {"fuzzyduck", "sqlsmith", CatalogType::TABLE_FUNCTION_ENTRY}, + {"gamma", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"gcd", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"gen_random_uuid", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"get_bit", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"get_current_timestamp", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"get_substrait", "substrait", CatalogType::TABLE_FUNCTION_ENTRY}, {"get_substrait_json", "substrait", CatalogType::TABLE_FUNCTION_ENTRY}, + {"grade_up", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"greatest", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"greatest_common_divisor", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"group_concat", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"hamming", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"hash", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"hex", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"histogram", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"histogram_exact", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"hnsw_compact_index", "vss", CatalogType::PRAGMA_FUNCTION_ENTRY}, {"hnsw_index_scan", "vss", CatalogType::TABLE_FUNCTION_ENTRY}, {"host", "inet", CatalogType::SCALAR_FUNCTION_ENTRY}, @@ -193,6 +341,15 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = { {"icu_collate_zh_tw", "icu", CatalogType::SCALAR_FUNCTION_ENTRY}, {"icu_collate_zu", "icu", CatalogType::SCALAR_FUNCTION_ENTRY}, {"icu_sort_key", "icu", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"in_search_path", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"instr", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"is_histogram_other_bin", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"isfinite", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"isinf", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"isnan", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"jaccard", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"jaro_similarity", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"jaro_winkler_similarity", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"json", "json", CatalogType::MACRO_ENTRY}, {"json_array", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, {"json_array_length", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, @@ -221,27 +378,106 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = { {"json_type", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, {"json_valid", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, {"json_value", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"kahan_sum", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"kurtosis", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"kurtosis_pop", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"lcm", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"least", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"least_common_multiple", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"left", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"left_grapheme", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"levenshtein", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"lgamma", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"list_aggr", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_aggregate", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_apply", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_cosine_distance", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_cosine_similarity", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_distance", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_distinct", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_dot_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_filter", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_grade_up", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_has_all", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_has_any", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_inner_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_negative_dot_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_negative_inner_product", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_pack", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_reduce", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_reverse_sort", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_slice", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_sort", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_transform", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_unique", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"list_value", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"listagg", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"ln", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"load_aws_credentials", "aws", CatalogType::TABLE_FUNCTION_ENTRY}, + {"log", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"log10", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"log2", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"lpad", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"ltrim", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"mad", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"make_date", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"make_time", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"make_timestamp", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"make_timestamptz", "icu", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"map", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"map_concat", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"map_entries", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"map_extract", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"map_from_entries", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"map_keys", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"map_values", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"max_by", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"mean", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"median", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"min_by", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"mismatches", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"mode", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"mysql_clear_cache", "mysql_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"mysql_execute", "mysql_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"mysql_query", "mysql_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, + {"nanosecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"netmask", "inet", CatalogType::SCALAR_FUNCTION_ENTRY}, {"network", "inet", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"nextafter", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"normalized_interval", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"now", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"ord", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"parquet_bloom_probe", "parquet", CatalogType::TABLE_FUNCTION_ENTRY}, {"parquet_file_metadata", "parquet", CatalogType::TABLE_FUNCTION_ENTRY}, {"parquet_kv_metadata", "parquet", CatalogType::TABLE_FUNCTION_ENTRY}, {"parquet_metadata", "parquet", CatalogType::TABLE_FUNCTION_ENTRY}, {"parquet_scan", "parquet", CatalogType::TABLE_FUNCTION_ENTRY}, {"parquet_schema", "parquet", CatalogType::TABLE_FUNCTION_ENTRY}, + {"parse_dirname", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"parse_dirpath", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"parse_filename", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"parse_path", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"pg_clear_cache", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"pg_timezone_names", "icu", CatalogType::TABLE_FUNCTION_ENTRY}, + {"pi", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"position", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"postgres_attach", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"postgres_execute", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"postgres_query", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"postgres_scan", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"postgres_scan_pushdown", "postgres_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, + {"pow", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"power", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"pragma_hnsw_index_info", "vss", CatalogType::TABLE_FUNCTION_ENTRY}, {"pragma_rtree_index_info", "spatial", CatalogType::TABLE_FUNCTION_ENTRY}, + {"printf", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"product", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"quantile", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"quantile_cont", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"quantile_disc", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"radians", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"random", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"read_json", "json", CatalogType::TABLE_FUNCTION_ENTRY}, {"read_json_auto", "json", CatalogType::TABLE_FUNCTION_ENTRY}, {"read_json_objects", "json", CatalogType::TABLE_FUNCTION_ENTRY}, @@ -250,16 +486,44 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = { {"read_ndjson_auto", "json", CatalogType::TABLE_FUNCTION_ENTRY}, {"read_ndjson_objects", "json", CatalogType::TABLE_FUNCTION_ENTRY}, {"read_parquet", "parquet", CatalogType::TABLE_FUNCTION_ENTRY}, + {"reduce", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"reduce_sql_statement", "sqlsmith", CatalogType::TABLE_FUNCTION_ENTRY}, + {"regr_avgx", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_avgy", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_count", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_intercept", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_r2", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_slope", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_sxx", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_sxy", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"regr_syy", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"repeat", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"replace", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"reservoir_quantile", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"reverse", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"right", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"right_grapheme", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"round", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"row_to_json", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"rpad", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"rtree_index_dump", "spatial", CatalogType::TABLE_FUNCTION_ENTRY}, {"rtree_index_scan", "spatial", CatalogType::TABLE_FUNCTION_ENTRY}, + {"rtrim", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"scan_arrow_ipc", "arrow", CatalogType::TABLE_FUNCTION_ENTRY}, + {"sem", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"set_bit", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"setseed", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"shapefile_meta", "spatial", CatalogType::TABLE_FUNCTION_ENTRY}, + {"sign", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"signbit", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"sin", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"sinh", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"skewness", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"sql_auto_complete", "autocomplete", CatalogType::TABLE_FUNCTION_ENTRY}, {"sqlite_attach", "sqlite_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"sqlite_scan", "sqlite_scanner", CatalogType::TABLE_FUNCTION_ENTRY}, {"sqlsmith", "sqlsmith", CatalogType::TABLE_FUNCTION_ENTRY}, + {"sqrt", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_area", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_area_spheroid", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_asgeojson", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, @@ -293,6 +557,7 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = { {"st_envelope_agg", "spatial", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"st_equals", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_extent", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"st_extent_agg", "spatial", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"st_extent_approx", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_exteriorring", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_flipcoordinates", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, @@ -331,6 +596,7 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = { {"st_makevalid", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_mmax", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_mmin", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"st_multi", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_ngeometries", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_ninteriorrings", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_normalize", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, @@ -377,20 +643,284 @@ static constexpr ExtensionFunctionEntry EXTENSION_FUNCTIONS[] = { {"st_zmax", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_zmflag", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, {"st_zmin", "spatial", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"starts_with", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"stats", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"stddev", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"stddev_pop", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"stddev_samp", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, {"stem", "fts", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"string_agg", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"strpos", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"struct_insert", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"sum", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"sum_no_overflow", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"sumkahan", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"tan", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"tanh", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"text", "excel", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"timetz_byte_comparable", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"to_arrow_ipc", "arrow", CatalogType::TABLE_FUNCTION_ENTRY}, + {"to_base", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_base64", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_binary", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_centuries", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_days", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_decades", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_hex", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_hours", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"to_json", "json", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_microseconds", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_millennia", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_milliseconds", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_minutes", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_months", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_quarters", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_seconds", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_timestamp", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_weeks", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"to_years", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"tpcds", "tpcds", CatalogType::PRAGMA_FUNCTION_ENTRY}, {"tpcds_answers", "tpcds", CatalogType::TABLE_FUNCTION_ENTRY}, {"tpcds_queries", "tpcds", CatalogType::TABLE_FUNCTION_ENTRY}, {"tpch", "tpch", CatalogType::PRAGMA_FUNCTION_ENTRY}, {"tpch_answers", "tpch", CatalogType::TABLE_FUNCTION_ENTRY}, {"tpch_queries", "tpch", CatalogType::TABLE_FUNCTION_ENTRY}, + {"transaction_timestamp", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"translate", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"trim", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"trunc", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"txid_current", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"typeof", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"unbin", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"unhex", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"unicode", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"union_extract", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"union_tag", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"union_value", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"unpivot_list", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"url_decode", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"url_encode", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"uuid", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"var_pop", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"var_samp", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"variance", "core_functions", CatalogType::AGGREGATE_FUNCTION_ENTRY}, + {"vector_type", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"version", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, {"vss_join", "vss", CatalogType::TABLE_MACRO_ENTRY}, {"vss_match", "vss", CatalogType::TABLE_MACRO_ENTRY}, + {"xor", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"|", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, + {"~", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY}, }; // END_OF_EXTENSION_FUNCTIONS +static constexpr ExtensionFunctionOverloadEntry EXTENSION_FUNCTION_OVERLOADS[] = { + {"age", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>INTERVAL"}, + {"age", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP,TIMESTAMP>INTERVAL"}, + {"age", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>INTERVAL"}, + {"age", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ,TIMESTAMPTZ>INTERVAL"}, + {"century", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"century", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"century", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"century", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"date_diff", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE,DATE>BIGINT"}, + {"date_diff", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIME,TIME>BIGINT"}, + {"date_diff", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP,TIMESTAMP>BIGINT"}, + {"date_diff", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ,TIMESTAMPTZ>BIGINT"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE>BIGINT"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,INTERVAL>BIGINT"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIME>BIGINT"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP>BIGINT"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMETZ>BIGINT"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],DATE>STRUCT()"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],INTERVAL>STRUCT()"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIME>STRUCT()"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIMESTAMP>STRUCT()"}, + {"date_part", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIMETZ>STRUCT()"}, + {"date_part", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ>BIGINT"}, + {"date_part", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIMESTAMPTZ>STRUCT()"}, + {"date_sub", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE,DATE>BIGINT"}, + {"date_sub", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIME,TIME>BIGINT"}, + {"date_sub", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP,TIMESTAMP>BIGINT"}, + {"date_sub", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ,TIMESTAMPTZ>BIGINT"}, + {"date_trunc", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE>TIMESTAMP"}, + {"date_trunc", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,INTERVAL>INTERVAL"}, + {"date_trunc", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP>TIMESTAMP"}, + {"date_trunc", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ>TIMESTAMPTZ"}, + {"datediff", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE,DATE>BIGINT"}, + {"datediff", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIME,TIME>BIGINT"}, + {"datediff", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP,TIMESTAMP>BIGINT"}, + {"datediff", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ,TIMESTAMPTZ>BIGINT"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE>BIGINT"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,INTERVAL>BIGINT"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIME>BIGINT"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP>BIGINT"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMETZ>BIGINT"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],DATE>STRUCT()"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],INTERVAL>STRUCT()"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIME>STRUCT()"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIMESTAMP>STRUCT()"}, + {"datepart", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIMETZ>STRUCT()"}, + {"datepart", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ>BIGINT"}, + {"datepart", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR[],TIMESTAMPTZ>STRUCT()"}, + {"datesub", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE,DATE>BIGINT"}, + {"datesub", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIME,TIME>BIGINT"}, + {"datesub", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP,TIMESTAMP>BIGINT"}, + {"datesub", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ,TIMESTAMPTZ>BIGINT"}, + {"datetrunc", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,DATE>TIMESTAMP"}, + {"datetrunc", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,INTERVAL>INTERVAL"}, + {"datetrunc", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP>TIMESTAMP"}, + {"datetrunc", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ>TIMESTAMPTZ"}, + {"day", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"day", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"day", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"day", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"dayname", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>VARCHAR"}, + {"dayname", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>VARCHAR"}, + {"dayname", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>VARCHAR"}, + {"dayofmonth", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"dayofmonth", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"dayofmonth", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"dayofmonth", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"dayofweek", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"dayofweek", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"dayofweek", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"dayofweek", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"dayofyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"dayofyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"dayofyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"dayofyear", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"decade", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"decade", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"decade", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"decade", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"epoch", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>DOUBLE"}, + {"epoch", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>DOUBLE"}, + {"epoch", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIME>DOUBLE"}, + {"epoch", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>DOUBLE"}, + {"epoch", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMETZ>DOUBLE"}, + {"epoch", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>DOUBLE"}, + {"era", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"era", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"era", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"era", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"generate_series", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "BIGINT>BIGINT[]"}, + {"generate_series", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "BIGINT,BIGINT>BIGINT[]"}, + {"generate_series", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "BIGINT,BIGINT,BIGINT>BIGINT[]"}, + {"generate_series", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, + "TIMESTAMP,TIMESTAMP,INTERVAL>TIMESTAMP[]"}, + {"generate_series", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ,TIMESTAMPTZ,INTERVAL>TIMESTAMPTZ[]"}, + {"hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIME>BIGINT"}, + {"hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMETZ>BIGINT"}, + {"hour", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"isodow", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"isodow", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"isodow", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"isodow", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"isoyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"isoyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"isoyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"isoyear", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"julian", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>DOUBLE"}, + {"julian", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>DOUBLE"}, + {"julian", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>DOUBLE"}, + {"last_day", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>DATE"}, + {"last_day", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>DATE"}, + {"last_day", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>DATE"}, + {"microsecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"microsecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"microsecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIME>BIGINT"}, + {"microsecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"microsecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMETZ>BIGINT"}, + {"microsecond", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"millennium", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"millennium", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"millennium", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"millennium", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"millisecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"millisecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"millisecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIME>BIGINT"}, + {"millisecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"millisecond", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMETZ>BIGINT"}, + {"millisecond", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIME>BIGINT"}, + {"minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMETZ>BIGINT"}, + {"minute", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"month", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"month", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"month", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"month", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"monthname", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>VARCHAR"}, + {"monthname", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>VARCHAR"}, + {"monthname", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>VARCHAR"}, + {"quarter", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"quarter", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"quarter", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"quarter", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"range", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "BIGINT>BIGINT[]"}, + {"range", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "BIGINT,BIGINT>BIGINT[]"}, + {"range", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "BIGINT,BIGINT,BIGINT>BIGINT[]"}, + {"range", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP,TIMESTAMP,INTERVAL>TIMESTAMP[]"}, + {"range", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ,TIMESTAMPTZ,INTERVAL>TIMESTAMPTZ[]"}, + {"second", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"second", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"second", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIME>BIGINT"}, + {"second", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"second", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMETZ>BIGINT"}, + {"second", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"time_bucket", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,DATE>DATE"}, + {"time_bucket", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,DATE,DATE>DATE"}, + {"time_bucket", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,DATE,INTERVAL>DATE"}, + {"time_bucket", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMESTAMP>TIMESTAMP"}, + {"time_bucket", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMESTAMP,INTERVAL>TIMESTAMP"}, + {"time_bucket", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMESTAMP,TIMESTAMP>TIMESTAMP"}, + {"time_bucket", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMESTAMPTZ>TIMESTAMPTZ"}, + {"time_bucket", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMESTAMPTZ,INTERVAL>TIMESTAMPTZ"}, + {"time_bucket", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMESTAMPTZ,TIMESTAMPTZ>TIMESTAMPTZ"}, + {"time_bucket", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMESTAMPTZ,VARCHAR>TIMESTAMPTZ"}, + {"timezone", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"timezone", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"timezone", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL,TIMETZ>TIMETZ"}, + {"timezone", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"timezone", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"timezone", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMP>TIMESTAMPTZ"}, + {"timezone", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMESTAMPTZ>TIMESTAMP"}, + {"timezone", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "VARCHAR,TIMETZ>TIMETZ"}, + {"timezone_hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"timezone_hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"timezone_hour", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"timezone_hour", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"timezone_minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"timezone_minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"timezone_minute", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"timezone_minute", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"week", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"week", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"week", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"week", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"weekday", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"weekday", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"weekday", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"weekday", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"weekofyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"weekofyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"weekofyear", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"weekofyear", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"year", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"year", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"year", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"year", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, + {"yearweek", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "DATE>BIGINT"}, + {"yearweek", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "INTERVAL>BIGINT"}, + {"yearweek", "core_functions", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMP>BIGINT"}, + {"yearweek", "icu", CatalogType::SCALAR_FUNCTION_ENTRY, "TIMESTAMPTZ>BIGINT"}, +}; // END_OF_EXTENSION_FUNCTION_OVERLOADS + static constexpr ExtensionEntry EXTENSION_SETTINGS[] = { {"azure_account_name", "azure"}, {"azure_context_caching", "azure"}, @@ -408,6 +938,8 @@ static constexpr ExtensionEntry EXTENSION_SETTINGS[] = { {"binary_as_string", "parquet"}, {"ca_cert_file", "httpfs"}, {"calendar", "icu"}, + {"disable_parquet_prefetching", "parquet"}, + {"enable_geoparquet_conversion", "parquet"}, {"enable_server_cert_verification", "httpfs"}, {"force_download", "httpfs"}, {"hf_max_per_page", "httpfs"}, @@ -422,6 +954,7 @@ static constexpr ExtensionEntry EXTENSION_SETTINGS[] = { {"mysql_debug_show_queries", "mysql_scanner"}, {"mysql_experimental_filter_pushdown", "mysql_scanner"}, {"mysql_tinyint1_as_boolean", "mysql_scanner"}, + {"parquet_metadata_cache", "parquet"}, {"pg_array_as_varchar", "postgres_scanner"}, {"pg_connection_cache", "postgres_scanner"}, {"pg_connection_limit", "postgres_scanner"}, @@ -431,6 +964,7 @@ static constexpr ExtensionEntry EXTENSION_SETTINGS[] = { {"pg_pages_per_task", "postgres_scanner"}, {"pg_use_binary_copy", "postgres_scanner"}, {"pg_use_ctid_scan", "postgres_scanner"}, + {"prefetch_all_parquet_files", "parquet"}, {"s3_access_key_id", "httpfs"}, {"s3_endpoint", "httpfs"}, {"s3_region", "httpfs"}, @@ -505,8 +1039,10 @@ static constexpr ExtensionEntry EXTENSION_FILE_CONTAINS[] = {{".parquet?", "parq // Note: these are currently hardcoded in scripts/generate_extensions_function.py // TODO: automate by passing though to script via duckdb static constexpr ExtensionEntry EXTENSION_SECRET_TYPES[] = { - {"s3", "httpfs"}, {"r2", "httpfs"}, {"gcs", "httpfs"}, - {"azure", "azure"}, {"huggingface", "httpfs"}, {"bearer", "httpfs"}}; // EXTENSION_SECRET_TYPES + {"s3", "httpfs"}, {"r2", "httpfs"}, + {"gcs", "httpfs"}, {"azure", "azure"}, + {"huggingface", "httpfs"}, {"bearer", "httpfs"}, + {"mysql", "mysql_scanner"}, {"postgres", "postgres_scanner"}}; // EXTENSION_SECRET_TYPES // Note: these are currently hardcoded in scripts/generate_extensions_function.py // TODO: automate by passing though to script via duckdb @@ -523,11 +1059,13 @@ static constexpr ExtensionEntry EXTENSION_SECRET_PROVIDERS[] = { {"azure/service_principal", "azure"}, {"huggingface/config", "httfps"}, {"huggingface/credential_chain", "httpfs"}, - {"bearer/config", "httpfs"}}; // EXTENSION_SECRET_PROVIDERS + {"bearer/config", "httpfs"}, + {"mysql/config", "mysql_scanner"}, + {"postgres/config", "postgres_scanner"}}; // EXTENSION_SECRET_PROVIDERS static constexpr const char *AUTOLOADABLE_EXTENSIONS[] = { - "aws", "azure", "autocomplete", "delta", "excel", "fts", "httpfs", - "inet", "icu", "json", "parquet", "sqlite_scanner", "sqlsmith", "postgres_scanner", + "aws", "azure", "autocomplete", "core_functions", "delta", "excel", "fts", "httpfs", + "inet", "icu", "json", "mysql_scanner", "parquet", "sqlite_scanner", "sqlsmith", "postgres_scanner", "tpcds", "tpch"}; // END_OF_AUTOLOADABLE_EXTENSIONS } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/main/extension_helper.hpp b/src/duckdb/src/include/duckdb/main/extension_helper.hpp index 22b0e1b2..e1f3f7f3 100644 --- a/src/duckdb/src/include/duckdb/main/extension_helper.hpp +++ b/src/duckdb/src/include/duckdb/main/extension_helper.hpp @@ -173,6 +173,19 @@ class ExtensionHelper { return result; } + template + static idx_t ArraySize(const ExtensionEntry (&entries)[N]) { + return N; + } + + template + static const ExtensionEntry *GetArrayEntry(const ExtensionEntry (&entries)[N], idx_t entry) { + if (entry >= N) { + return nullptr; + } + return entries + entry; + } + //! Lookup a name in an ExtensionEntry list template static string FindExtensionInEntries(const string &name, const ExtensionEntry (&entries)[N]) { diff --git a/src/duckdb/src/include/duckdb/main/extension_util.hpp b/src/duckdb/src/include/duckdb/main/extension_util.hpp index f91ad227..6bdd7fa6 100644 --- a/src/duckdb/src/include/duckdb/main/extension_util.hpp +++ b/src/duckdb/src/include/duckdb/main/extension_util.hpp @@ -18,6 +18,9 @@ namespace duckdb { struct CreateMacroInfo; struct CreateCollationInfo; +struct CreateAggregateFunctionInfo; +struct CreateScalarFunctionInfo; +struct CreateTableFunctionInfo; class DatabaseInstance; //! The ExtensionUtil class contains methods that are useful for extensions @@ -25,18 +28,18 @@ class ExtensionUtil { public: //! Register a new DuckDB extension DUCKDB_API static void RegisterExtension(DatabaseInstance &db, const string &name, const ExtensionLoadedInfo &info); - //! Register a new scalar function - throw an exception if the function already exists + //! Register a new scalar function - merge overloads if the function already exists DUCKDB_API static void RegisterFunction(DatabaseInstance &db, ScalarFunction function); - //! Register a new scalar function set - throw an exception if the function already exists DUCKDB_API static void RegisterFunction(DatabaseInstance &db, ScalarFunctionSet function); - //! Register a new aggregate function - throw an exception if the function already exists + DUCKDB_API static void RegisterFunction(DatabaseInstance &db, CreateScalarFunctionInfo info); + //! Register a new aggregate function - merge overloads if the function already exists DUCKDB_API static void RegisterFunction(DatabaseInstance &db, AggregateFunction function); - //! Register a new aggregate function set - throw an exception if the function already exists DUCKDB_API static void RegisterFunction(DatabaseInstance &db, AggregateFunctionSet function); - //! Register a new table function - throw an exception if the function already exists + DUCKDB_API static void RegisterFunction(DatabaseInstance &db, CreateAggregateFunctionInfo info); + //! Register a new table function - merge overloads if the function already exists DUCKDB_API static void RegisterFunction(DatabaseInstance &db, TableFunction function); - //! Register a new table function set - throw an exception if the function already exists DUCKDB_API static void RegisterFunction(DatabaseInstance &db, TableFunctionSet function); + DUCKDB_API static void RegisterFunction(DatabaseInstance &db, CreateTableFunctionInfo info); //! Register a new pragma function - throw an exception if the function already exists DUCKDB_API static void RegisterFunction(DatabaseInstance &db, PragmaFunction function); //! Register a new pragma function set - throw an exception if the function already exists @@ -56,6 +59,8 @@ class ExtensionUtil { //! Returns a reference to the function in the catalog - throws an exception if it does not exist DUCKDB_API static ScalarFunctionCatalogEntry &GetFunction(DatabaseInstance &db, const string &name); DUCKDB_API static TableFunctionCatalogEntry &GetTableFunction(DatabaseInstance &db, const string &name); + DUCKDB_API static optional_ptr TryGetFunction(DatabaseInstance &db, const string &name); + DUCKDB_API static optional_ptr TryGetTableFunction(DatabaseInstance &db, const string &name); //! Add a function overload DUCKDB_API static void AddFunctionOverload(DatabaseInstance &db, ScalarFunction function); diff --git a/src/duckdb/src/include/duckdb/main/prepared_statement.hpp b/src/duckdb/src/include/duckdb/main/prepared_statement.hpp index ed3e5364..a391f6ac 100644 --- a/src/duckdb/src/include/duckdb/main/prepared_statement.hpp +++ b/src/duckdb/src/include/duckdb/main/prepared_statement.hpp @@ -94,7 +94,7 @@ class PreparedStatement { template static string ExcessValuesException(const case_insensitive_map_t ¶meters, - case_insensitive_map_t &values) { + const case_insensitive_map_t &values) { // Too many values set excess_set; for (auto &pair : values) { @@ -113,7 +113,7 @@ class PreparedStatement { template static string MissingValuesException(const case_insensitive_map_t ¶meters, - case_insensitive_map_t &values) { + const case_insensitive_map_t &values) { // Missing values set missing_set; for (auto &pair : parameters) { @@ -131,7 +131,7 @@ class PreparedStatement { } template - static void VerifyParameters(case_insensitive_map_t &provided, + static void VerifyParameters(const case_insensitive_map_t &provided, const case_insensitive_map_t &expected) { if (expected.size() == provided.size()) { // Same amount of identifiers, if diff --git a/src/duckdb/src/include/duckdb/main/profiling_info.hpp b/src/duckdb/src/include/duckdb/main/profiling_info.hpp index a5722351..5e9ee287 100644 --- a/src/duckdb/src/include/duckdb/main/profiling_info.hpp +++ b/src/duckdb/src/include/duckdb/main/profiling_info.hpp @@ -26,38 +26,36 @@ namespace duckdb { class ProfilingInfo { public: - // Enabling a metric adds it to this set. + //! Enabling a metric adds it to this set. profiler_settings_t settings; - // Contains all enabled metrics. + //! This set contains the expanded to-be-collected metrics, which can differ from 'settings'. + profiler_settings_t expanded_settings; + //! Contains all enabled metrics. profiler_metrics_t metrics; - // Additional metrics. + //! Additional metrics. // FIXME: move to metrics. InsertionOrderPreservingMap extra_info; public: ProfilingInfo() = default; - explicit ProfilingInfo(profiler_settings_t &n_settings, idx_t depth = 0) : settings(n_settings) { - if (depth == 0) { - settings.insert(MetricsType::QUERY_NAME); - } else { - settings.insert(MetricsType::OPERATOR_TYPE); - } - ResetMetrics(); - } + explicit ProfilingInfo(const profiler_settings_t &n_settings, const idx_t depth = 0); ProfilingInfo(ProfilingInfo &) = default; ProfilingInfo &operator=(ProfilingInfo const &) = default; public: static profiler_settings_t DefaultSettings(); + static profiler_settings_t DefaultRootSettings(); static profiler_settings_t DefaultOperatorSettings(); - static profiler_settings_t AllSettings(); public: void ResetMetrics(); - bool Enabled(const MetricsType setting) const; + //! Returns true, if the query profiler must collect this metric. + static bool Enabled(const profiler_settings_t &settings, const MetricsType metric); + //! Expand metrics depending on the collection of other metrics. + static void Expand(profiler_settings_t &settings, const MetricsType metric); public: - string GetMetricAsString(MetricsType setting) const; + string GetMetricAsString(const MetricsType metric) const; void WriteMetricsToJSON(duckdb_yyjson::yyjson_mut_doc *doc, duckdb_yyjson::yyjson_mut_val *destination); public: @@ -68,20 +66,20 @@ class ProfilingInfo { } template - void AddToMetric(const MetricsType setting, const Value &value) { - D_ASSERT(!metrics[setting].IsNull()); - if (metrics.find(setting) == metrics.end()) { - metrics[setting] = value; + void AddToMetric(const MetricsType type, const Value &value) { + D_ASSERT(!metrics[type].IsNull()); + if (metrics.find(type) == metrics.end()) { + metrics[type] = value; return; } - auto new_value = metrics[setting].GetValue() + value.GetValue(); - metrics[setting] = Value::CreateValue(new_value); + auto new_value = metrics[type].GetValue() + value.GetValue(); + metrics[type] = Value::CreateValue(new_value); } template - void AddToMetric(const MetricsType setting, const METRIC_TYPE &value) { + void AddToMetric(const MetricsType type, const METRIC_TYPE &value) { auto new_value = Value::CreateValue(value); - return AddToMetric(setting, new_value); + return AddToMetric(type, new_value); } }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/main/query_profiler.hpp b/src/duckdb/src/include/duckdb/main/query_profiler.hpp index 4a9ab9e7..bbeb8400 100644 --- a/src/duckdb/src/include/duckdb/main/query_profiler.hpp +++ b/src/duckdb/src/include/duckdb/main/query_profiler.hpp @@ -64,7 +64,10 @@ class OperatorProfiler { public: DUCKDB_API explicit OperatorProfiler(ClientContext &context); + ~OperatorProfiler() { + } +public: DUCKDB_API void StartOperator(optional_ptr phys_op); DUCKDB_API void EndOperator(optional_ptr chunk); @@ -72,20 +75,14 @@ class OperatorProfiler { DUCKDB_API void Flush(const PhysicalOperator &phys_op); DUCKDB_API OperatorInformation &GetOperatorInfo(const PhysicalOperator &phys_op); - ~OperatorProfiler() { - } - +public: ClientContext &context; - bool HasOperatorSetting(const MetricsType &metric) const { - return operator_settings.find(metric) != operator_settings.end(); - } - private: //! Whether or not the profiler is enabled bool enabled; //! Sub-settings for the operator profiler - profiler_settings_t operator_settings; + profiler_settings_t settings; //! The timer used to time the execution time of the individual Physical Operators Profiler op; @@ -113,8 +110,10 @@ class QueryProfiler { using TreeMap = reference_map_t>; private: - unique_ptr CreateTree(const PhysicalOperator &root, profiler_settings_t settings, idx_t depth = 0); + unique_ptr CreateTree(const PhysicalOperator &root, const profiler_settings_t &settings, + const idx_t depth = 0); void Render(const ProfilingNode &node, std::ostream &str) const; + string RenderDisabledMessage(ProfilerPrintFormat format) const; public: DUCKDB_API bool IsEnabled() const; @@ -147,6 +146,7 @@ class QueryProfiler { //! return the printed as a string. Unlike ToString, which is always formatted as a string, //! the return value is formatted based on the current print format (see GetPrintFormat()). DUCKDB_API string ToString(ExplainFormat format = ExplainFormat::DEFAULT) const; + DUCKDB_API string ToString(ProfilerPrintFormat format) const; static InsertionOrderPreservingMap JSONSanitize(const InsertionOrderPreservingMap &input); static string JSONSanitize(const string &text); @@ -170,8 +170,8 @@ class QueryProfiler { //! Whether or not the query profiler is running bool running; - //! The lock used for flushing information from a thread into the global query profiler - mutex flush_lock; + //! The lock used for accessing the global query profiler or flushing information to it from a thread + mutable std::mutex lock; //! Whether or not the query requires profiling bool query_requires_profiling; @@ -209,6 +209,7 @@ class QueryProfiler { //! Check whether or not an operator type requires query profiling. If none of the ops in a query require profiling //! no profiling information is output. bool OperatorRequiresProfiling(PhysicalOperatorType op_type); + ExplainFormat GetExplainFormat(ProfilerPrintFormat format) const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/main/relation.hpp b/src/duckdb/src/include/duckdb/main/relation.hpp index 18b125a3..e5fbafaf 100644 --- a/src/duckdb/src/include/duckdb/main/relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation.hpp @@ -34,17 +34,46 @@ class LogicalOperator; class QueryNode; class TableRef; +static string CreateRelationAlias(RelationType type, const string &alias) { + if (!alias.empty()) { + return alias; + } + return StringUtil::Format("%s_%s", EnumUtil::ToString(type), StringUtil::GenerateRandomName()); +} + +class RelationContextWrapper : public ClientContextWrapper { +public: + ~RelationContextWrapper() override = default; + explicit RelationContextWrapper(const shared_ptr &context) : ClientContextWrapper(context) {}; + + explicit RelationContextWrapper(const ClientContextWrapper &context) : ClientContextWrapper(context) {}; + + void TryBindRelation(Relation &relation, vector &columns) override { + GetContext()->InternalTryBindRelation(relation, columns); + } + +private: + weak_ptr client_context; +}; + class Relation : public enable_shared_from_this { public: - Relation(const shared_ptr &context, RelationType type) : context(context), type(type) { + Relation(const shared_ptr &context_p, const RelationType type) : type(type) { + context = make_shared_ptr(context_p); } - Relation(ClientContextWrapper &context, RelationType type) : context(context.GetContext()), type(type) { + Relation(const shared_ptr &context, RelationType type, const string &alias_p = "") + : context(context), type(type), alias(CreateRelationAlias(type, alias_p)) { } - virtual ~Relation() { + + Relation(const shared_ptr &context, RelationType type, const string &alias_p = "") + : context(context), type(type), alias(CreateRelationAlias(type, alias_p)) { } - ClientContextWrapper context; + virtual ~Relation() = default; + + shared_ptr context; RelationType type; + const string alias; vector> external_dependencies; public: @@ -64,7 +93,7 @@ class Relation : public enable_shared_from_this { DUCKDB_API shared_ptr CreateView(const string &name, bool replace = true, bool temporary = false); DUCKDB_API shared_ptr CreateView(const string &schema_name, const string &name, bool replace = true, bool temporary = false); - DUCKDB_API unique_ptr Query(const string &sql); + DUCKDB_API unique_ptr Query(const string &sql) const; DUCKDB_API unique_ptr Query(const string &name, const string &sql); //! Explain the query plan of this relation @@ -75,6 +104,7 @@ class Relation : public enable_shared_from_this { virtual bool IsReadOnly() { return true; } + DUCKDB_API void TryBindRelation(vector &columns); public: // PROJECT @@ -135,6 +165,7 @@ class Relation : public enable_shared_from_this { DUCKDB_API void Insert(const string &schema_name, const string &table_name); //! Insert a row (i.e.,list of values) into a table DUCKDB_API void Insert(const vector> &values); + DUCKDB_API void Insert(vector>> &&expressions); //! Create a table and insert the data from this relation into that table DUCKDB_API shared_ptr CreateRel(const string &schema_name, const string &table_name, bool temporary = false); @@ -157,6 +188,8 @@ class Relation : public enable_shared_from_this { //! Update a table, can only be used on a TableRelation DUCKDB_API virtual void Update(const string &update, const string &condition = string()); + DUCKDB_API virtual void Update(vector column_names, vector> &&update, + unique_ptr condition = nullptr); //! Delete from a table, can only be used on a TableRelation DUCKDB_API virtual void Delete(const string &condition = string()); //! Create a relation from calling a table in/out function on the input relation @@ -177,7 +210,7 @@ class Relation : public enable_shared_from_this { DUCKDB_API vector> GetAllDependencies(); protected: - DUCKDB_API string RenderWhitespace(idx_t depth); + DUCKDB_API static string RenderWhitespace(idx_t depth); public: template diff --git a/src/duckdb/src/include/duckdb/main/relation/delete_relation.hpp b/src/duckdb/src/include/duckdb/main/relation/delete_relation.hpp index 2e0c6564..d72a48bd 100644 --- a/src/duckdb/src/include/duckdb/main/relation/delete_relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation/delete_relation.hpp @@ -15,8 +15,8 @@ namespace duckdb { class DeleteRelation : public Relation { public: - DeleteRelation(ClientContextWrapper &context, unique_ptr condition, string schema_name, - string table_name); + DeleteRelation(shared_ptr &context, unique_ptr condition, + string schema_name, string table_name); vector columns; unique_ptr condition; diff --git a/src/duckdb/src/include/duckdb/main/relation/subquery_relation.hpp b/src/duckdb/src/include/duckdb/main/relation/subquery_relation.hpp index 16e9b7a8..0c9c9e50 100644 --- a/src/duckdb/src/include/duckdb/main/relation/subquery_relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation/subquery_relation.hpp @@ -14,17 +14,14 @@ namespace duckdb { class SubqueryRelation : public Relation { public: - SubqueryRelation(shared_ptr child, string alias); - + SubqueryRelation(shared_ptr child, const string &alias); shared_ptr child; - string alias; public: unique_ptr GetQueryNode() override; const vector &Columns() override; string ToString(idx_t depth) override; - string GetAlias() override; public: bool InheritsColumnBindings() override { diff --git a/src/duckdb/src/include/duckdb/main/relation/table_function_relation.hpp b/src/duckdb/src/include/duckdb/main/relation/table_function_relation.hpp index 3a2208d0..8781d712 100644 --- a/src/duckdb/src/include/duckdb/main/relation/table_function_relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation/table_function_relation.hpp @@ -17,7 +17,9 @@ class TableFunctionRelation : public Relation { TableFunctionRelation(const shared_ptr &context, string name, vector parameters, named_parameter_map_t named_parameters, shared_ptr input_relation_p = nullptr, bool auto_init = true); - + TableFunctionRelation(const shared_ptr &context, string name, vector parameters, + named_parameter_map_t named_parameters, shared_ptr input_relation_p = nullptr, + bool auto_init = true); TableFunctionRelation(const shared_ptr &context, string name, vector parameters, shared_ptr input_relation_p = nullptr, bool auto_init = true); ~TableFunctionRelation() override { diff --git a/src/duckdb/src/include/duckdb/main/relation/table_relation.hpp b/src/duckdb/src/include/duckdb/main/relation/table_relation.hpp index a14ce054..9c2fddce 100644 --- a/src/duckdb/src/include/duckdb/main/relation/table_relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation/table_relation.hpp @@ -16,6 +16,7 @@ namespace duckdb { class TableRelation : public Relation { public: TableRelation(const shared_ptr &context, unique_ptr description); + TableRelation(const shared_ptr &context, unique_ptr description); unique_ptr description; @@ -29,6 +30,8 @@ class TableRelation : public Relation { unique_ptr GetTableRef() override; void Update(const string &update, const string &condition = string()) override; + void Update(vector column_names, vector> &&update, + unique_ptr condition = nullptr) override; void Delete(const string &condition = string()) override; }; diff --git a/src/duckdb/src/include/duckdb/main/relation/update_relation.hpp b/src/duckdb/src/include/duckdb/main/relation/update_relation.hpp index 1cb14222..f46739dd 100644 --- a/src/duckdb/src/include/duckdb/main/relation/update_relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation/update_relation.hpp @@ -15,8 +15,9 @@ namespace duckdb { class UpdateRelation : public Relation { public: - UpdateRelation(ClientContextWrapper &context, unique_ptr condition, string schema_name, - string table_name, vector update_columns, vector> expressions); + UpdateRelation(shared_ptr &context, unique_ptr condition, + string schema_name, string table_name, vector update_columns, + vector> expressions); vector columns; unique_ptr condition; diff --git a/src/duckdb/src/include/duckdb/main/relation/value_relation.hpp b/src/duckdb/src/include/duckdb/main/relation/value_relation.hpp index 81fb8c4e..9b5ae525 100644 --- a/src/duckdb/src/include/duckdb/main/relation/value_relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation/value_relation.hpp @@ -17,6 +17,13 @@ class ValueRelation : public Relation { public: ValueRelation(const shared_ptr &context, const vector> &values, vector names, string alias = "values"); + ValueRelation(const shared_ptr &context, vector>> &&expressions, + vector names, string alias = "values"); + ValueRelation(const shared_ptr &context, const vector> &values, + vector names, string alias = "values"); + ValueRelation(const shared_ptr &context, + vector>> &&expressions, vector names, + string alias = "values"); ValueRelation(const shared_ptr &context, const string &values, vector names, string alias = "values"); diff --git a/src/duckdb/src/include/duckdb/main/relation/view_relation.hpp b/src/duckdb/src/include/duckdb/main/relation/view_relation.hpp index 78f72d78..529817d6 100644 --- a/src/duckdb/src/include/duckdb/main/relation/view_relation.hpp +++ b/src/duckdb/src/include/duckdb/main/relation/view_relation.hpp @@ -15,6 +15,7 @@ namespace duckdb { class ViewRelation : public Relation { public: ViewRelation(const shared_ptr &context, string schema_name, string view_name); + ViewRelation(const shared_ptr &context, string schema_name, string view_name); ViewRelation(const shared_ptr &context, unique_ptr ref, const string &view_name); string schema_name; diff --git a/src/duckdb/src/include/duckdb/main/secret/secret.hpp b/src/duckdb/src/include/duckdb/main/secret/secret.hpp index decd62ed..ee721d7f 100644 --- a/src/duckdb/src/include/duckdb/main/secret/secret.hpp +++ b/src/duckdb/src/include/duckdb/main/secret/secret.hpp @@ -80,6 +80,13 @@ struct SecretType { string default_provider; }; +enum class SecretSerializationType : uint8_t { + //! The secret is serialized with a custom serialization function + CUSTOM = 0, + //! The secret has been serialized as a KeyValueSecret + KEY_VALUE_SECRET = 1 +}; + //! Base class from which BaseSecret classes can be made. class BaseSecret { friend class SecretManager; @@ -187,7 +194,7 @@ class KeyValueSecret : public BaseSecret { for (const auto &entry : ListValue::GetChildren(secret_map_value)) { auto kv_struct = StructValue::GetChildren(entry); - result->secret_map[kv_struct[0].ToString()] = kv_struct[1].ToString(); + result->secret_map[kv_struct[0].ToString()] = kv_struct[1]; } Value redact_set_value; diff --git a/src/duckdb/src/include/duckdb/main/settings.hpp b/src/duckdb/src/include/duckdb/main/settings.hpp index f3f7ab6d..25dd2473 100644 --- a/src/duckdb/src/include/duckdb/main/settings.hpp +++ b/src/duckdb/src/include/duckdb/main/settings.hpp @@ -10,6 +10,7 @@ #include "duckdb/common/common.hpp" #include "duckdb/common/types/value.hpp" +#include "duckdb/main/config.hpp" namespace duckdb { class ClientContext; @@ -52,906 +53,1069 @@ struct SettingLookupResult { SettingScope scope = SettingScope::INVALID; }; +//===----------------------------------------------------------------------===// +// This code is autogenerated from 'update_settings_header_file.py'. +// Please do not make any changes directly here, as they will be overwritten. +// +// Start of the auto-generated list of settings structures +//===----------------------------------------------------------------------===// + struct AccessModeSetting { + using RETURN_TYPE = AccessMode; static constexpr const char *Name = "access_mode"; static constexpr const char *Description = "Access mode of the database (AUTOMATIC, READ_ONLY or READ_WRITE)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); static Value GetSetting(const ClientContext &context); }; -struct AllowPersistentSecrets { - static constexpr const char *Name = "allow_persistent_secrets"; - static constexpr const char *Description = - "Allow the creation of persistent secrets, that are stored and loaded on restarts"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct AllocatorBackgroundThreadsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "allocator_background_threads"; + static constexpr const char *Description = "Whether to enable the allocator background thread."; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); + static bool OnGlobalReset(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct CatalogErrorMaxSchema { - static constexpr const char *Name = "catalog_error_max_schemas"; +struct AllocatorBulkDeallocationFlushThresholdSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "allocator_bulk_deallocation_flush_threshold"; static constexpr const char *Description = - "The maximum number of schemas the system will scan for \"did you mean...\" style errors in the catalog"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; + "If a bulk deallocation larger than this occurs, flush outstanding allocations."; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct CheckpointThresholdSetting { - static constexpr const char *Name = "checkpoint_threshold"; +struct AllocatorFlushThresholdSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "allocator_flush_threshold"; static constexpr const char *Description = - "The WAL size threshold at which to automatically trigger a checkpoint (e.g. 1GB)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + "Peak allocation threshold at which to flush the allocator after completing a task."; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DebugCheckpointAbort { - static constexpr const char *Name = "debug_checkpoint_abort"; - static constexpr const char *Description = - "DEBUG SETTING: trigger an abort while checkpointing for testing purposes"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct AllowCommunityExtensionsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "allow_community_extensions"; + static constexpr const char *Description = "Allow to load community built extensions"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); + static bool OnGlobalReset(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DebugForceExternal { - static constexpr const char *Name = "debug_force_external"; - static constexpr const char *Description = - "DEBUG SETTING: force out-of-core computation for operators that support it, used for testing"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); +struct AllowExtensionsMetadataMismatchSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "allow_extensions_metadata_mismatch"; + static constexpr const char *Description = "Allow to load extensions with not compatible metadata"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DebugForceNoCrossProduct { - static constexpr const char *Name = "debug_force_no_cross_product"; +struct AllowPersistentSecretsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "allow_persistent_secrets"; static constexpr const char *Description = - "DEBUG SETTING: Force disable cross product generation when hyper graph isn't connected, used for testing"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); + "Allow the creation of persistent secrets, that are stored and loaded on restarts"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DebugSkipCheckpointOnCommit { - static constexpr const char *Name = "debug_skip_checkpoint_on_commit"; - static constexpr const char *Description = "DEBUG SETTING: skip checkpointing on commit"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct AllowUnredactedSecretsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "allow_unredacted_secrets"; + static constexpr const char *Description = "Allow printing unredacted secrets"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); + static bool OnGlobalReset(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct OrderedAggregateThreshold { - static constexpr const char *Name = "ordered_aggregate_threshold"; // NOLINT - static constexpr const char *Description = // NOLINT - "The number of rows to accumulate before sorting, used for tuning"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; // NOLINT - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); +struct AllowUnsignedExtensionsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "allow_unsigned_extensions"; + static constexpr const char *Description = "Allow to load extensions with invalid or missing signatures"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); + static bool OnGlobalReset(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DebugAsOfIEJoin { - static constexpr const char *Name = "debug_asof_iejoin"; // NOLINT - static constexpr const char *Description = "DEBUG SETTING: force use of IEJoin to implement AsOf joins"; // NOLINT - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; // NOLINT - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); +struct AllowedDirectoriesSetting { + using RETURN_TYPE = vector; + static constexpr const char *Name = "allowed_directories"; + static constexpr const char *Description = "List of directories/prefixes that are ALWAYS allowed to be queried - " + "even when enable_external_access is false"; + static constexpr const char *InputType = "VARCHAR[]"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct PreferRangeJoins { - static constexpr const char *Name = "prefer_range_joins"; // NOLINT - static constexpr const char *Description = "Force use of range joins with mixed predicates"; // NOLINT - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; // NOLINT - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); +struct AllowedPathsSetting { + using RETURN_TYPE = vector; + static constexpr const char *Name = "allowed_paths"; + static constexpr const char *Description = + "List of files that are ALWAYS allowed to be queried - even when enable_external_access is false"; + static constexpr const char *InputType = "VARCHAR[]"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DebugWindowMode { - static constexpr const char *Name = "debug_window_mode"; - static constexpr const char *Description = "DEBUG SETTING: switch window mode to use"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct ArrowLargeBufferSizeSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "arrow_large_buffer_size"; + static constexpr const char *Description = + "If arrow buffers for strings, blobs, uuids and bits should be exported using large buffers"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DefaultCollationSetting { - static constexpr const char *Name = "default_collation"; - static constexpr const char *Description = "The collation setting used when none is specified"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct ArrowLosslessConversionSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "arrow_lossless_conversion"; + static constexpr const char *Description = + "Whenever a DuckDB type does not have a clear native or canonical extension match in Arrow, export the types " + "with a duckdb.type_name extension name."; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct DefaultOrderSetting { - static constexpr const char *Name = "default_order"; - static constexpr const char *Description = "The order type used when none is specified (ASC or DESC)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct ArrowOutputListViewSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "arrow_output_list_view"; + static constexpr const char *Description = + "If export to arrow format should use ListView as the physical layout for LIST columns"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DefaultNullOrderSetting { - static constexpr const char *Name = "default_null_order"; - static constexpr const char *Description = "Null ordering used when none is specified (NULLS_FIRST or NULLS_LAST)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct AutoinstallExtensionRepositorySetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "autoinstall_extension_repository"; + static constexpr const char *Description = + "Overrides the custom endpoint for extension installation on autoloading"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DefaultSecretStorage { - static constexpr const char *Name = "default_secret_storage"; - static constexpr const char *Description = "Allows switching the default storage for secrets"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct AutoinstallKnownExtensionsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "autoinstall_known_extensions"; + static constexpr const char *Description = + "Whether known extensions are allowed to be automatically installed when a query depends on them"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DisabledFileSystemsSetting { - static constexpr const char *Name = "disabled_filesystems"; - static constexpr const char *Description = "Disable specific file systems preventing access (e.g. LocalFileSystem)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct AutoloadKnownExtensionsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "autoload_known_extensions"; + static constexpr const char *Description = + "Whether known extensions are allowed to be automatically loaded when a query depends on them"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct DisabledOptimizersSetting { - static constexpr const char *Name = "disabled_optimizers"; - static constexpr const char *Description = "DEBUG SETTING: disable a specific set of optimizers (comma separated)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct CatalogErrorMaxSchemasSetting { + using RETURN_TYPE = idx_t; + static constexpr const char *Name = "catalog_error_max_schemas"; + static constexpr const char *Description = + "The maximum number of schemas the system will scan for \"did you mean...\" style errors in the catalog"; + static constexpr const char *InputType = "UBIGINT"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct EnableExternalAccessSetting { - static constexpr const char *Name = "enable_external_access"; +struct CheckpointThresholdSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "checkpoint_threshold"; static constexpr const char *Description = - "Allow the database to access external state (through e.g. loading/installing modules, COPY TO/FROM, CSV " - "readers, pandas replacement scans, etc)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + "The WAL size threshold at which to automatically trigger a checkpoint (e.g. 1GB)"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct EnableMacrosDependencies { - static constexpr const char *Name = "enable_macro_dependencies"; - static constexpr const char *Description = - "Enable created MACROs to create dependencies on the referenced objects (such as tables)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct CustomExtensionRepositorySetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "custom_extension_repository"; + static constexpr const char *Description = "Overrides the custom endpoint for remote extension installation"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct EnableViewDependencies { - static constexpr const char *Name = "enable_view_dependencies"; +struct CustomProfilingSettingsSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "custom_profiling_settings"; + static constexpr const char *Description = "Accepts a JSON enabling custom metrics"; + static constexpr const char *InputType = "VARCHAR"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct CustomUserAgentSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "custom_user_agent"; + static constexpr const char *Description = "Metadata from DuckDB callers"; + static constexpr const char *InputType = "VARCHAR"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static Value GetSetting(const ClientContext &context); +}; + +struct DebugAsofIejoinSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "debug_asof_iejoin"; + static constexpr const char *Description = "DEBUG SETTING: force use of IEJoin to implement AsOf joins"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct DebugCheckpointAbortSetting { + using RETURN_TYPE = CheckpointAbort; + static constexpr const char *Name = "debug_checkpoint_abort"; static constexpr const char *Description = - "Enable created VIEWs to create dependencies on the referenced objects (such as tables)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + "DEBUG SETTING: trigger an abort while checkpointing for testing purposes"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct EnableFSSTVectors { - static constexpr const char *Name = "enable_fsst_vectors"; +struct DebugForceExternalSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "debug_force_external"; static constexpr const char *Description = - "Allow scans on FSST compressed segments to emit compressed vectors to utilize late decompression"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + "DEBUG SETTING: force out-of-core computation for operators that support it, used for testing"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct DebugForceNoCrossProductSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "debug_force_no_cross_product"; + static constexpr const char *Description = + "DEBUG SETTING: Force disable cross product generation when hyper graph isn't connected, used for testing"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct DebugSkipCheckpointOnCommitSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "debug_skip_checkpoint_on_commit"; + static constexpr const char *Description = "DEBUG SETTING: skip checkpointing on commit"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct AllowUnsignedExtensionsSetting { - static constexpr const char *Name = "allow_unsigned_extensions"; - static constexpr const char *Description = "Allow to load extensions with invalid or missing signatures"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct DebugWindowModeSetting { + using RETURN_TYPE = WindowAggregationMode; + static constexpr const char *Name = "debug_window_mode"; + static constexpr const char *Description = "DEBUG SETTING: switch window mode to use"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct AllowCommunityExtensionsSetting { - static constexpr const char *Name = "allow_community_extensions"; - static constexpr const char *Description = "Allow to load community built extensions"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct DefaultBlockSizeSetting { + using RETURN_TYPE = idx_t; + static constexpr const char *Name = "default_block_size"; + static constexpr const char *Description = + "The default block size for new duckdb database files (new as-in, they do not yet exist)."; + static constexpr const char *InputType = "UBIGINT"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct AllowExtensionsMetadataMismatchSetting { - static constexpr const char *Name = "allow_extensions_metadata_mismatch"; - static constexpr const char *Description = "Allow to load extensions with not compatible metadata"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct DefaultCollationSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "default_collation"; + static constexpr const char *Description = "The collation setting used when none is specified"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct AllowUnredactedSecretsSetting { - static constexpr const char *Name = "allow_unredacted_secrets"; - static constexpr const char *Description = "Allow printing unredacted secrets"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct DefaultNullOrderSetting { + using RETURN_TYPE = DefaultOrderByNullType; + static constexpr const char *Name = "default_null_order"; + static constexpr const char *Description = "NULL ordering used when none is specified (NULLS_FIRST or NULLS_LAST)"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct CustomExtensionRepository { - static constexpr const char *Name = "custom_extension_repository"; - static constexpr const char *Description = "Overrides the custom endpoint for remote extension installation"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct DefaultOrderSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "default_order"; + static constexpr const char *Description = "The order type used when none is specified (ASC or DESC)"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct AutoloadExtensionRepository { - static constexpr const char *Name = "autoinstall_extension_repository"; - static constexpr const char *Description = - "Overrides the custom endpoint for extension installation on autoloading"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct DefaultSecretStorageSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "default_secret_storage"; + static constexpr const char *Description = "Allows switching the default storage for secrets"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct AutoinstallKnownExtensions { - static constexpr const char *Name = "autoinstall_known_extensions"; - static constexpr const char *Description = - "Whether known extensions are allowed to be automatically installed when a query depends on them"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct DisabledFilesystemsSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "disabled_filesystems"; + static constexpr const char *Description = "Disable specific file systems preventing access (e.g. LocalFileSystem)"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct AutoloadKnownExtensions { - static constexpr const char *Name = "autoload_known_extensions"; - static constexpr const char *Description = - "Whether known extensions are allowed to be automatically loaded when a query depends on them"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct DisabledOptimizersSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "disabled_optimizers"; + static constexpr const char *Description = "DEBUG SETTING: disable a specific set of optimizers (comma separated)"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct EnableObjectCacheSetting { - static constexpr const char *Name = "enable_object_cache"; - static constexpr const char *Description = "Whether or not object cache is used to cache e.g. Parquet metadata"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct DuckDBAPISetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "duckdb_api"; + static constexpr const char *Description = "DuckDB API surface"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct StorageCompatibilityVersion { - static constexpr const char *Name = "storage_compatibility_version"; - static constexpr const char *Description = "Serialize on checkpoint with compatibility for a given duckdb version"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct DynamicOrFilterThresholdSetting { + using RETURN_TYPE = idx_t; + static constexpr const char *Name = "dynamic_or_filter_threshold"; + static constexpr const char *Description = + "The maximum amount of OR filters we generate dynamically from a hash join"; + static constexpr const char *InputType = "UBIGINT"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct EnableExternalAccessSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "enable_external_access"; + static constexpr const char *Description = + "Allow the database to access external state (through e.g. loading/installing modules, COPY TO/FROM, CSV " + "readers, pandas replacement scans, etc)"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); + static bool OnGlobalReset(DatabaseInstance *db, DBConfig &config); + static Value GetSetting(const ClientContext &context); +}; + +struct EnableFSSTVectorsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "enable_fsst_vectors"; + static constexpr const char *Description = + "Allow scans on FSST compressed segments to emit compressed vectors to utilize late decompression"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; +struct EnableHTTPLoggingSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "enable_http_logging"; + static constexpr const char *Description = "Enables HTTP logging"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + struct EnableHTTPMetadataCacheSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "enable_http_metadata_cache"; static constexpr const char *Description = "Whether or not the global http metadata is used to cache HTTP metadata"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static Value GetSetting(const ClientContext &context); +}; + +struct EnableMacroDependenciesSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "enable_macro_dependencies"; + static constexpr const char *Description = + "Enable created MACROs to create dependencies on the referenced objects (such as tables)"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static Value GetSetting(const ClientContext &context); +}; + +struct EnableObjectCacheSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "enable_object_cache"; + static constexpr const char *Description = "[PLACEHOLDER] Legacy setting - does nothing"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; struct EnableProfilingSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "enable_profiling"; static constexpr const char *Description = "Enables profiling, and sets the output format (JSON, QUERY_TREE, QUERY_TREE_OPTIMIZER)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); - static Value GetSetting(const ClientContext &context); -}; - -struct CustomProfilingSettings { - static constexpr const char *Name = "custom_profiling_settings"; - static constexpr const char *Description = "Accepts a JSON enabling custom metrics"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct EnableProgressBarSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "enable_progress_bar"; static constexpr const char *Description = "Enables the progress bar, printing progress to the terminal for long queries"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); + static bool OnLocalSet(ClientContext &context, const Value &input); + static bool OnLocalReset(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct EnableProgressBarPrintSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "enable_progress_bar_print"; static constexpr const char *Description = "Controls the printing of the progress bar, when 'enable_progress_bar' is true"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct ErrorsAsJsonSetting { +struct EnableViewDependenciesSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "enable_view_dependencies"; + static constexpr const char *Description = + "Enable created VIEWs to create dependencies on the referenced objects (such as tables)"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static Value GetSetting(const ClientContext &context); +}; + +struct ErrorsAsJSONSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "errors_as_json"; static constexpr const char *Description = "Output error messages as structured JSON instead of as a raw string"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct ExplainOutputSetting { + using RETURN_TYPE = ExplainOutputType; static constexpr const char *Name = "explain_output"; static constexpr const char *Description = "Output of EXPLAIN statements (ALL, OPTIMIZED_ONLY, PHYSICAL_ONLY)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct ExportLargeBufferArrow { - static constexpr const char *Name = "arrow_large_buffer_size"; - static constexpr const char *Description = - "If arrow buffers for strings, blobs, uuids and bits should be exported using large buffers"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - struct ExtensionDirectorySetting { + using RETURN_TYPE = string; static constexpr const char *Name = "extension_directory"; static constexpr const char *Description = "Set the directory to store extensions in"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; struct ExternalThreadsSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "external_threads"; static constexpr const char *Description = "The number of external threads that work on DuckDB tasks."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); + static bool OnGlobalReset(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; struct FileSearchPathSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "file_search_path"; static constexpr const char *Description = "A comma separated list of directories to search for input files"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct ForceCompressionSetting { - static constexpr const char *Name = "force_compression"; - static constexpr const char *Description = "DEBUG SETTING: forces a specific compression method to be used"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct ForceBitpackingModeSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "force_bitpacking_mode"; + static constexpr const char *Description = "DEBUG SETTING: forces a specific bitpacking mode"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct ForceBitpackingModeSetting { - static constexpr const char *Name = "force_bitpacking_mode"; - static constexpr const char *Description = "DEBUG SETTING: forces a specific bitpacking mode"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct ForceCompressionSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "force_compression"; + static constexpr const char *Description = "DEBUG SETTING: forces a specific compression method to be used"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; struct HomeDirectorySetting { + using RETURN_TYPE = string; static constexpr const char *Name = "home_directory"; static constexpr const char *Description = "Sets the home directory used by the system"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct HTTPProxy { +struct HTTPLoggingOutputSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "http_logging_output"; + static constexpr const char *Description = + "The file to which HTTP logging output should be saved, or empty to print to the terminal"; + static constexpr const char *InputType = "VARCHAR"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct HTTPProxySetting { + using RETURN_TYPE = string; static constexpr const char *Name = "http_proxy"; static constexpr const char *Description = "HTTP proxy host"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct HTTPProxyUsername { - static constexpr const char *Name = "http_proxy_username"; - static constexpr const char *Description = "Username for HTTP proxy"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct HTTPProxyPasswordSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "http_proxy_password"; + static constexpr const char *Description = "Password for HTTP proxy"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct HTTPProxyPassword { - static constexpr const char *Name = "http_proxy_password"; - static constexpr const char *Description = "Password for HTTP proxy"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; +struct HTTPProxyUsernameSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "http_proxy_username"; + static constexpr const char *Description = "Username for HTTP proxy"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct IntegerDivisionSetting { - static constexpr const char *Name = "integer_division"; +struct IEEEFloatingPointOpsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "ieee_floating_point_ops"; static constexpr const char *Description = - "Whether or not the / operator defaults to integer division, or to floating point division"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + "Use IEE754-compliant floating point operations (returning NAN instead of errors/NULL)."; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct LogQueryPathSetting { - static constexpr const char *Name = "log_query_path"; +struct ImmediateTransactionModeSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "immediate_transaction_mode"; static constexpr const char *Description = - "Specifies the path to which queries should be logged (default: NULL, queries are not logged)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); + "Whether transactions should be started lazily when needed, or immediately when BEGIN TRANSACTION is called"; + static constexpr const char *InputType = "BOOLEAN"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct LockConfigurationSetting { - static constexpr const char *Name = "lock_configuration"; - static constexpr const char *Description = "Whether or not the configuration can be altered"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct IndexScanMaxCountSetting { + using RETURN_TYPE = idx_t; + static constexpr const char *Name = "index_scan_max_count"; + static constexpr const char *Description = + "The maximum index scan count sets a threshold for index scans. If fewer than MAX(index_scan_max_count, " + "index_scan_percentage * total_row_count) rows match, we perform an index scan instead of a table scan."; + static constexpr const char *InputType = "UBIGINT"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct IEEEFloatingPointOpsSetting { - static constexpr const char *Name = "ieee_floating_point_ops"; +struct IndexScanPercentageSetting { + using RETURN_TYPE = double; + static constexpr const char *Name = "index_scan_percentage"; + static constexpr const char *Description = + "The index scan percentage sets a threshold for index scans. If fewer than MAX(index_scan_max_count, " + "index_scan_percentage * total_row_count) rows match, we perform an index scan instead of a table scan."; + static constexpr const char *InputType = "DOUBLE"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static bool OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input); + static Value GetSetting(const ClientContext &context); +}; + +struct IntegerDivisionSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "integer_division"; static constexpr const char *Description = - "Use IEE754-compliant floating point operations (returning NAN instead of errors/NULL)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + "Whether or not the / operator defaults to integer division, or to floating point division"; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct ImmediateTransactionModeSetting { - static constexpr const char *Name = "immediate_transaction_mode"; - static constexpr const char *Description = - "Whether transactions should be started lazily when needed, or immediately when BEGIN TRANSACTION is called"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; +struct LockConfigurationSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "lock_configuration"; + static constexpr const char *Description = "Whether or not the configuration can be altered"; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct MaximumExpressionDepthSetting { +struct LogQueryPathSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "log_query_path"; + static constexpr const char *Description = + "Specifies the path to which queries should be logged (default: NULL, queries are not logged)"; + static constexpr const char *InputType = "VARCHAR"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct MaxExpressionDepthSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "max_expression_depth"; static constexpr const char *Description = "The maximum expression depth limit in the parser. WARNING: increasing this setting and using very deep " "expressions might lead to stack overflow errors."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct MaximumMemorySetting { +struct MaxMemorySetting { + using RETURN_TYPE = string; static constexpr const char *Name = "max_memory"; static constexpr const char *Description = "The maximum memory of the system (e.g. 1GB)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct StreamingBufferSize { - static constexpr const char *Name = "streaming_buffer_size"; - static constexpr const char *Description = - "The maximum memory to buffer between fetching from a streaming result (e.g. 1GB)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); - static Value GetSetting(const ClientContext &context); -}; - -struct MaximumTempDirectorySize { +struct MaxTempDirectorySizeSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "max_temp_directory_size"; static constexpr const char *Description = - "The maximum amount of data stored inside the 'temp_directory' (when set). If the `temp_directory` is set to " - "an existing directory, this option defaults to the available disk space on " - "that drive. Otherwise, it defaults to 0 (implying that the temporary directory is not used)."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + "The maximum amount of data stored inside the 'temp_directory' (when set) (e.g. 1GB)"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct MaximumVacuumTasks { +struct MaxVacuumTasksSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "max_vacuum_tasks"; - static constexpr const char *Description = "The maximum vacuum tasks to schedule during a checkpoint"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; + static constexpr const char *Description = "The maximum vacuum tasks to schedule during a checkpoint."; + static constexpr const char *InputType = "UBIGINT"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct MergeJoinThreshold { +struct MergeJoinThresholdSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "merge_join_threshold"; static constexpr const char *Description = "The number of rows we need on either table to choose a merge join"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct NestedLoopJoinThreshold { +struct NestedLoopJoinThresholdSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "nested_loop_join_threshold"; static constexpr const char *Description = "The number of rows we need on either table to choose a nested loop join"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct OldImplicitCasting { +struct OldImplicitCastingSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "old_implicit_casting"; static constexpr const char *Description = "Allow implicit casting to/from VARCHAR"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct OrderByNonIntegerLiteral { +struct OrderByNonIntegerLiteralSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "order_by_non_integer_literal"; static constexpr const char *Description = - "Allow ordering by non-integer literals - ordering by such literals has no effect"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + "Allow ordering by non-integer literals - ordering by such literals has no effect."; + static constexpr const char *InputType = "BOOLEAN"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct OrderedAggregateThresholdSetting { + using RETURN_TYPE = idx_t; + static constexpr const char *Name = "ordered_aggregate_threshold"; + static constexpr const char *Description = "The number of rows to accumulate before sorting, used for tuning"; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); + static bool OnLocalSet(ClientContext &context, const Value &input); static Value GetSetting(const ClientContext &context); }; -struct PartitionedWriteFlushThreshold { +struct PartitionedWriteFlushThresholdSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "partitioned_write_flush_threshold"; static constexpr const char *Description = "The threshold in number of rows after which we flush a thread state when writing using PARTITION_BY"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct PartitionedWriteMaxOpenFiles { +struct PartitionedWriteMaxOpenFilesSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "partitioned_write_max_open_files"; static constexpr const char *Description = "The maximum amount of files the system can keep open before flushing to disk when writing using PARTITION_BY"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct DefaultBlockAllocSize { - static constexpr const char *Name = "default_block_size"; - static constexpr const char *Description = - "The default block size for new duckdb database files (new as-in, they do not yet exist)."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct IndexScanPercentage { - static constexpr const char *Name = "index_scan_percentage"; - static constexpr const char *Description = - "The index scan percentage sets a threshold for index scans. If fewer than MAX(index_scan_max_count, " - "index_scan_percentage * total_row_count) rows match, we perform an index scan instead of a table scan."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::DOUBLE; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct IndexScanMaxCount { - static constexpr const char *Name = "index_scan_max_count"; - static constexpr const char *Description = - "The maximum index scan count sets a threshold for index scans. If fewer than MAX(index_scan_max_count, " - "index_scan_percentage * total_row_count) rows match, we perform an index scan instead of a table scan."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::UBIGINT; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - struct PasswordSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "password"; static constexpr const char *Description = "The password to use. Ignored for legacy compatibility."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct PerfectHashThresholdSetting { +struct PerfectHtThresholdSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "perfect_ht_threshold"; static constexpr const char *Description = "Threshold in bytes for when to use a perfect hash table"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct PivotFilterThreshold { +struct PivotFilterThresholdSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "pivot_filter_threshold"; static constexpr const char *Description = "The threshold to switch from using filtered aggregates to LIST with a dedicated pivot operator"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BIGINT; + static constexpr const char *InputType = "UBIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct PivotLimitSetting { + using RETURN_TYPE = idx_t; static constexpr const char *Name = "pivot_limit"; static constexpr const char *Description = "The maximum number of pivot columns in a pivot statement"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BIGINT; + static constexpr const char *InputType = "UBIGINT"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + +struct PreferRangeJoinsSetting { + using RETURN_TYPE = bool; + static constexpr const char *Name = "prefer_range_joins"; + static constexpr const char *Description = "Force use of range joins with mixed predicates"; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct PreserveIdentifierCase { +struct PreserveIdentifierCaseSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "preserve_identifier_case"; static constexpr const char *Description = "Whether or not to preserve the identifier case, instead of always lowercasing all non-quoted identifiers"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct PreserveInsertionOrder { +struct PreserveInsertionOrderSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "preserve_insertion_order"; static constexpr const char *Description = "Whether or not to preserve insertion order. If set to false the system is allowed to re-order any results " "that do not contain ORDER BY clauses."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct ArrowOutputListView { - static constexpr const char *Name = "arrow_output_list_view"; - static constexpr const char *Description = - "If export to arrow format should use ListView as the physical layout for LIST columns"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct LosslessConversionArrow { - static constexpr const char *Name = "arrow_lossless_conversion"; - static constexpr const char *Description = - "Whenever a DuckDB type does not have a clear native or canonical extension match in Arrow, export the types " - "with a duckdb.type_name extension name."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct ProduceArrowStringView { +struct ProduceArrowStringViewSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "produce_arrow_string_view"; static constexpr const char *Description = "If strings should be produced by DuckDB in Utf8View format instead of Utf8"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + static constexpr const char *InputType = "BOOLEAN"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; struct ProfileOutputSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "profile_output"; static constexpr const char *Description = "The file to which profile output should be saved, or empty to print to the terminal"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct ProfilingModeSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "profiling_mode"; static constexpr const char *Description = "The profiling mode (STANDARD or DETAILED)"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct ProgressBarTimeSetting { + using RETURN_TYPE = int64_t; static constexpr const char *Name = "progress_bar_time"; static constexpr const char *Description = "Sets the time (in milliseconds) how long a query needs to take before we start printing a progress bar"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BIGINT; + static constexpr const char *InputType = "BIGINT"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; -struct ScalarSubqueryErrorOnMultipleRows { +struct ScalarSubqueryErrorOnMultipleRowsSetting { + using RETURN_TYPE = bool; static constexpr const char *Name = "scalar_subquery_error_on_multiple_rows"; static constexpr const char *Description = - "When a scalar subquery returns multiple rows - return a random row instead of returning an error"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; + "When a scalar subquery returns multiple rows - return a random row instead of returning an error."; + static constexpr const char *InputType = "BOOLEAN"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct SchemaSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "schema"; static constexpr const char *Description = "Sets the default search schema. Equivalent to setting search_path to a single value."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct SearchPathSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "search_path"; static constexpr const char *Description = "Sets the default catalog search path as a comma-separated list of values"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetLocal(ClientContext &context, const Value ¶meter); static void ResetLocal(ClientContext &context); static Value GetSetting(const ClientContext &context); }; struct SecretDirectorySetting { + using RETURN_TYPE = string; static constexpr const char *Name = "secret_directory"; static constexpr const char *Description = "Set the directory to which persistent secrets are stored"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; + static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); + static void ResetGlobal(DatabaseInstance *db, DBConfig &config); + static Value GetSetting(const ClientContext &context); +}; + +struct StorageCompatibilityVersionSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "storage_compatibility_version"; + static constexpr const char *Description = "Serialize on checkpoint with compatibility for a given duckdb version"; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; +struct StreamingBufferSizeSetting { + using RETURN_TYPE = string; + static constexpr const char *Name = "streaming_buffer_size"; + static constexpr const char *Description = + "The maximum memory to buffer between fetching from a streaming result (e.g. 1GB)"; + static constexpr const char *InputType = "VARCHAR"; + static void SetLocal(ClientContext &context, const Value ¶meter); + static void ResetLocal(ClientContext &context); + static Value GetSetting(const ClientContext &context); +}; + struct TempDirectorySetting { + using RETURN_TYPE = string; static constexpr const char *Name = "temp_directory"; static constexpr const char *Description = "Set the directory to which to write temp files"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; struct ThreadsSetting { + using RETURN_TYPE = int64_t; static constexpr const char *Name = "threads"; static constexpr const char *Description = "The number of total threads used by the system."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BIGINT; + static constexpr const char *InputType = "BIGINT"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; struct UsernameSetting { + using RETURN_TYPE = string; static constexpr const char *Name = "username"; static constexpr const char *Description = "The username to use. Ignored for legacy compatibility."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct AllocatorFlushThreshold { - static constexpr const char *Name = "allocator_flush_threshold"; - static constexpr const char *Description = - "Peak allocation threshold at which to flush the allocator after completing a task."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + static constexpr const char *InputType = "VARCHAR"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct AllocatorBulkDeallocationFlushThreshold { - static constexpr const char *Name = "allocator_bulk_deallocation_flush_threshold"; +struct ZstdMinStringLengthSetting { + using RETURN_TYPE = idx_t; + static constexpr const char *Name = "zstd_min_string_length"; static constexpr const char *Description = - "If a bulk deallocation larger than this occurs, flush outstanding allocations."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct AllocatorBackgroundThreadsSetting { - static constexpr const char *Name = "allocator_background_threads"; - static constexpr const char *Description = "Whether to enable the allocator background thread."; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct DuckDBApiSetting { - static constexpr const char *Name = "duckdb_api"; - static constexpr const char *Description = "DuckDB API surface"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; + "The (average) length at which to enable ZSTD compression, defaults to 4096"; + static constexpr const char *InputType = "UBIGINT"; static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); static void ResetGlobal(DatabaseInstance *db, DBConfig &config); static Value GetSetting(const ClientContext &context); }; -struct CustomUserAgentSetting { - static constexpr const char *Name = "custom_user_agent"; - static constexpr const char *Description = "Metadata from DuckDB callers"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; - static void SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter); - static void ResetGlobal(DatabaseInstance *db, DBConfig &config); - static Value GetSetting(const ClientContext &context); -}; - -struct EnableHTTPLoggingSetting { - static constexpr const char *Name = "enable_http_logging"; - static constexpr const char *Description = "Enables HTTP logging"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::BOOLEAN; - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); - static Value GetSetting(const ClientContext &context); -}; - -struct HTTPLoggingOutputSetting { - static constexpr const char *Name = "http_logging_output"; - static constexpr const char *Description = - "The file to which HTTP logging output should be saved, or empty to print to the terminal"; - static constexpr const LogicalTypeId InputType = LogicalTypeId::VARCHAR; - static void SetLocal(ClientContext &context, const Value ¶meter); - static void ResetLocal(ClientContext &context); - static Value GetSetting(const ClientContext &context); -}; +//===----------------------------------------------------------------------===// +// End of the auto-generated list of settings structures +//===--------------------------------------------------------------------===// } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/main/table_description.hpp b/src/duckdb/src/include/duckdb/main/table_description.hpp index 2a35b4f1..d1b7f656 100644 --- a/src/duckdb/src/include/duckdb/main/table_description.hpp +++ b/src/duckdb/src/include/duckdb/main/table_description.hpp @@ -12,13 +12,37 @@ namespace duckdb { -struct TableDescription { - //! The schema of the table +class TableDescription { +public: + TableDescription(const string &database_name, const string &schema_name, const string &table_name) + : database(database_name), schema(schema_name), table(table_name) {}; + + TableDescription() = delete; + +public: + //! The database of the table. + string database; + //! The schema of the table. string schema; - //! The table name of the table + //! The name of the table. string table; - //! The columns of the table + //! True, if the catalog is readonly. + bool readonly; + //! The columns of the table. vector columns; + +public: + idx_t PhysicalColumnCount() const { + idx_t count = 0; + for (auto &column : columns) { + if (column.Generated()) { + continue; + } + count++; + } + D_ASSERT(count != 0); + return count; + } }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/build_probe_side_optimizer.hpp b/src/duckdb/src/include/duckdb/optimizer/build_probe_side_optimizer.hpp index ccc4644a..cdb7dbfd 100644 --- a/src/duckdb/src/include/duckdb/optimizer/build_probe_side_optimizer.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/build_probe_side_optimizer.hpp @@ -37,7 +37,7 @@ class BuildProbeSideOptimizer : LogicalOperatorVisitor { void VisitExpression(unique_ptr *expression) override {}; private: - void TryFlipJoinChildren(LogicalOperator &op); + void TryFlipJoinChildren(LogicalOperator &op) const; static idx_t ChildHasJoins(LogicalOperator &op); static BuildSize GetBuildSizes(const LogicalOperator &op, idx_t lhs_cardinality, idx_t rhs_cardinality); diff --git a/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp b/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp index 72848bc2..d6fe5b72 100644 --- a/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/column_lifetime_analyzer.hpp @@ -8,18 +8,21 @@ #pragma once -#include "duckdb/planner/logical_operator_visitor.hpp" -#include "duckdb/planner/column_binding_map.hpp" #include "duckdb/common/vector.hpp" +#include "duckdb/planner/column_binding_map.hpp" +#include "duckdb/planner/logical_operator_visitor.hpp" namespace duckdb { + +class Optimizer; class BoundColumnRefExpression; //! The ColumnLifetimeAnalyzer optimizer traverses the logical operator tree and ensures that columns are removed from //! the plan when no longer required class ColumnLifetimeAnalyzer : public LogicalOperatorVisitor { public: - explicit ColumnLifetimeAnalyzer(bool is_root = false) : everything_referenced(is_root) { + explicit ColumnLifetimeAnalyzer(Optimizer &optimizer_p, LogicalOperator &root_p, bool is_root = false) + : optimizer(optimizer_p), root(root_p), everything_referenced(is_root) { } void VisitOperator(LogicalOperator &op) override; @@ -29,6 +32,8 @@ class ColumnLifetimeAnalyzer : public LogicalOperatorVisitor { unique_ptr VisitReplace(BoundReferenceExpression &expr, unique_ptr *expr_ptr) override; private: + Optimizer &optimizer; + LogicalOperator &root; //! Whether or not all the columns are referenced. This happens in the case of the root expression (because the //! output implicitly refers all the columns below it) bool everything_referenced; @@ -36,10 +41,12 @@ class ColumnLifetimeAnalyzer : public LogicalOperatorVisitor { column_binding_set_t column_references; private: + void VisitOperatorInternal(LogicalOperator &op); void StandardVisitOperator(LogicalOperator &op); - - void ExtractUnusedColumnBindings(vector bindings, column_binding_set_t &unused_bindings); - void GenerateProjectionMap(vector bindings, column_binding_set_t &unused_bindings, - vector &map); + void ExtractUnusedColumnBindings(const vector &bindings, column_binding_set_t &unused_bindings); + static void GenerateProjectionMap(vector bindings, column_binding_set_t &unused_bindings, + vector &map); + void Verify(LogicalOperator &op); + void AddVerificationProjection(unique_ptr &child); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/common_aggregate_optimizer.hpp b/src/duckdb/src/include/duckdb/optimizer/common_aggregate_optimizer.hpp index ff021592..0728b226 100644 --- a/src/duckdb/src/include/duckdb/optimizer/common_aggregate_optimizer.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/common_aggregate_optimizer.hpp @@ -8,8 +8,8 @@ #pragma once -#include "duckdb/planner/logical_operator_visitor.hpp" #include "duckdb/planner/column_binding_map.hpp" +#include "duckdb/planner/logical_operator_visitor.hpp" namespace duckdb { //! The CommonAggregateOptimizer optimizer eliminates duplicate aggregates from aggregate nodes @@ -18,8 +18,8 @@ class CommonAggregateOptimizer : public LogicalOperatorVisitor { void VisitOperator(LogicalOperator &op) override; private: + void StandardVisitOperator(LogicalOperator &op); unique_ptr VisitReplace(BoundColumnRefExpression &expr, unique_ptr *expr_ptr) override; - void ExtractCommonAggregates(LogicalAggregate &aggr); private: diff --git a/src/duckdb/src/include/duckdb/optimizer/empty_result_pullup.hpp b/src/duckdb/src/include/duckdb/optimizer/empty_result_pullup.hpp new file mode 100644 index 00000000..8959c0ec --- /dev/null +++ b/src/duckdb/src/include/duckdb/optimizer/empty_result_pullup.hpp @@ -0,0 +1,27 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/optimizer/deliminator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/optimizer/column_binding_replacer.hpp" + +namespace duckdb { + +//! The EmptyResultPullup Optimizer traverses the logical operator tree and Pulls up empty operators when possible +class EmptyResultPullup : LogicalOperatorVisitor { +public: + EmptyResultPullup() { + } + + unique_ptr Optimize(unique_ptr op); + +private: + unique_ptr PullUpEmptyJoinChildren(unique_ptr op); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/filter_combiner.hpp b/src/duckdb/src/include/duckdb/optimizer/filter_combiner.hpp index c9449616..68e22573 100644 --- a/src/duckdb/src/include/duckdb/optimizer/filter_combiner.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/filter_combiner.hpp @@ -45,9 +45,14 @@ class FilterCombiner { FilterResult AddFilter(unique_ptr expr); + //! Returns whether or not a set of integral values is a dense range (i.e. 1, 2, 3, 4, 5) + //! If this returns true - this sorts "in_list" as a side-effect + static bool IsDenseRange(vector &in_list); + static bool ContainsNull(vector &in_list); + void GenerateFilters(const std::function filter)> &callback); bool HasFilters(); - TableFilterSet GenerateTableScanFilters(const vector &column_ids); + TableFilterSet GenerateTableScanFilters(const vector &column_ids); // vector> GenerateZonemapChecks(vector &column_ids, vector> // &pushed_filters); diff --git a/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp b/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp index 1554e9a6..94706d21 100644 --- a/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/filter_pushdown.hpp @@ -57,6 +57,8 @@ class FilterPushdown { unique_ptr PushdownJoin(unique_ptr op); //! Push down a LogicalProjection op unique_ptr PushdownProjection(unique_ptr op); + //! Push down a LogicalProjection op + unique_ptr PushdownUnnest(unique_ptr op); //! Push down a LogicalSetOperation op unique_ptr PushdownSetOperation(unique_ptr op); //! Push down a LogicalGet op diff --git a/src/duckdb/src/include/duckdb/optimizer/in_clause_rewriter.hpp b/src/duckdb/src/include/duckdb/optimizer/in_clause_rewriter.hpp index 91e4e1f8..51af6e12 100644 --- a/src/duckdb/src/include/duckdb/optimizer/in_clause_rewriter.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/in_clause_rewriter.hpp @@ -9,6 +9,8 @@ #pragma once #include "duckdb/planner/logical_operator_visitor.hpp" +#include "duckdb/planner/logical_operator.hpp" +#include "duckdb/common/optional_ptr.hpp" namespace duckdb { class ClientContext; @@ -21,6 +23,7 @@ class InClauseRewriter : public LogicalOperatorVisitor { ClientContext &context; Optimizer &optimizer; + optional_ptr current_op; unique_ptr root; public: diff --git a/src/duckdb/src/include/duckdb/optimizer/join_filter_pushdown_optimizer.hpp b/src/duckdb/src/include/duckdb/optimizer/join_filter_pushdown_optimizer.hpp index 20272f02..aef9ba05 100644 --- a/src/duckdb/src/include/duckdb/optimizer/join_filter_pushdown_optimizer.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/join_filter_pushdown_optimizer.hpp @@ -13,6 +13,8 @@ namespace duckdb { class Optimizer; +struct JoinFilterPushdownColumn; +struct PushdownFilterTarget; //! The JoinFilterPushdownOptimizer links comparison joins to data sources to enable dynamic execution-time filter //! pushdown @@ -20,7 +22,10 @@ class JoinFilterPushdownOptimizer : public LogicalOperatorVisitor { public: explicit JoinFilterPushdownOptimizer(Optimizer &optimizer); +public: void VisitOperator(LogicalOperator &op) override; + static void GetPushdownFilterTargets(LogicalOperator &op, vector columns, + vector &targets); private: void GenerateJoinFilters(LogicalComparisonJoin &join); diff --git a/src/duckdb/src/include/duckdb/optimizer/join_order/plan_enumerator.hpp b/src/duckdb/src/include/duckdb/optimizer/join_order/plan_enumerator.hpp index 46aa5ce4..29e86795 100644 --- a/src/duckdb/src/include/duckdb/optimizer/join_order/plan_enumerator.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/join_order/plan_enumerator.hpp @@ -33,6 +33,8 @@ class PlanEnumerator { : query_graph(query_graph), query_graph_manager(query_graph_manager), cost_model(cost_model) { } + static constexpr idx_t THRESHOLD_TO_SWAP_TO_APPROXIMATE = 12; + //! Perform the join order solving void SolveJoinOrder(); void InitLeafPlans(); diff --git a/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp b/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp index b7d2a3d7..8df4fb94 100644 --- a/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/matcher/expression_matcher.hpp @@ -126,6 +126,20 @@ class FunctionExpressionMatcher : public ExpressionMatcher { bool Match(Expression &expr, vector> &bindings) override; }; +class AggregateExpressionMatcher : public ExpressionMatcher { +public: + AggregateExpressionMatcher() : ExpressionMatcher(ExpressionClass::BOUND_AGGREGATE) { + } + //! The matchers for the child expressions + vector> matchers; + //! The set matcher matching policy to use + SetMatcher::Policy policy; + //! The function name to match + unique_ptr function; + + bool Match(Expression &expr, vector> &bindings) override; +}; + //! The FoldableConstant matcher matches any expression that is foldable into a constant by the ExpressionExecutor (i.e. //! scalar but not aggregate/window/parameter) class FoldableConstantMatcher : public ExpressionMatcher { @@ -136,4 +150,13 @@ class FoldableConstantMatcher : public ExpressionMatcher { bool Match(Expression &expr, vector> &bindings) override; }; +//! The stable expression matcher matches only stable expressions (non-volatile) +class StableExpressionMatcher : public ExpressionMatcher { +public: + StableExpressionMatcher() : ExpressionMatcher(ExpressionClass::INVALID) { + } + + bool Match(Expression &expr, vector> &bindings) override; +}; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp b/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp index 0536ef16..892f35f3 100644 --- a/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/matcher/type_matcher.hpp @@ -34,6 +34,24 @@ class SpecificTypeMatcher : public TypeMatcher { private: LogicalType type; }; +//! The SpecificTypeMatcher class matches only a type out of a set of types +class SetTypesMatcher : public TypeMatcher { +public: + explicit SetTypesMatcher(vector types_p) : types(std::move(types_p)) { + } + + bool Match(const LogicalType &type_p) override { + for (auto &type : types) { + if (type == type_p) { + return true; + } + } + return false; + } + +private: + vector types; +}; //! The NumericTypeMatcher class matches any numeric type (DECIMAL, INTEGER, etc...) class NumericTypeMatcher : public TypeMatcher { diff --git a/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp b/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp index 4e37ca8e..5b0dea21 100644 --- a/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/optimizer.hpp @@ -28,6 +28,7 @@ class Optimizer { ClientContext &GetContext(); //! Whether the specific optimizer is disabled bool OptimizerDisabled(OptimizerType type); + static bool OptimizerDisabled(ClientContext &context, OptimizerType type); public: ClientContext &context; @@ -39,8 +40,16 @@ class Optimizer { void RunOptimizer(OptimizerType type, const std::function &callback); void Verify(LogicalOperator &op); +public: + // helper functions + unique_ptr BindScalarFunction(const string &name, unique_ptr c1); + unique_ptr BindScalarFunction(const string &name, unique_ptr c1, unique_ptr c2); + private: unique_ptr plan; + +private: + unique_ptr BindScalarFunction(const string &name, vector> children); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/remove_unused_columns.hpp b/src/duckdb/src/include/duckdb/optimizer/remove_unused_columns.hpp index 629efc5d..a05a1d72 100644 --- a/src/duckdb/src/include/duckdb/optimizer/remove_unused_columns.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/remove_unused_columns.hpp @@ -11,12 +11,18 @@ #include "duckdb/planner/logical_operator_visitor.hpp" #include "duckdb/planner/column_binding_map.hpp" #include "duckdb/common/vector.hpp" +#include "duckdb/common/column_index.hpp" namespace duckdb { class Binder; class BoundColumnRefExpression; class ClientContext; +struct ReferencedColumn { + vector> bindings; + vector child_columns; +}; + //! The RemoveUnusedColumns optimizer traverses the logical operator tree and removes any columns that are not required class RemoveUnusedColumns : public LogicalOperatorVisitor { public: @@ -25,6 +31,7 @@ class RemoveUnusedColumns : public LogicalOperatorVisitor { } void VisitOperator(LogicalOperator &op) override; + void VisitExpression(unique_ptr *expression) override; protected: unique_ptr VisitReplace(BoundColumnRefExpression &expr, unique_ptr *expr_ptr) override; @@ -37,14 +44,23 @@ class RemoveUnusedColumns : public LogicalOperatorVisitor { //! output implicitly refers all the columns below it) bool everything_referenced; //! The map of column references - column_binding_map_t> column_references; + column_binding_map_t column_references; private: template void ClearUnusedExpressions(vector &list, idx_t table_idx, bool replace = true); + //! Add a reference to the column in its entirey + void AddBinding(BoundColumnRefExpression &col); + //! Add a reference to a sub-section of the column + void AddBinding(BoundColumnRefExpression &col, ColumnIndex child_column); //! Perform a replacement of the ColumnBinding, iterating over all the currently found column references and //! replacing the bindings void ReplaceBinding(ColumnBinding current_binding, ColumnBinding new_binding); + + bool HandleStructExtract(Expression &expr); + + bool HandleStructExtractRecursive(Expression &expr, optional_ptr &colref, + vector &indexes); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp b/src/duckdb/src/include/duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp new file mode 100644 index 00000000..65123b96 --- /dev/null +++ b/src/duckdb/src/include/duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp @@ -0,0 +1,34 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/optimizer/rule.hpp" +#include "duckdb/parser/expression_map.hpp" + +namespace duckdb { + +class DistinctAggregateOptimizer : public Rule { +public: + explicit DistinctAggregateOptimizer(ExpressionRewriter &rewriter); + + static unique_ptr Apply(ClientContext &context, BoundAggregateExpression &aggr, bool &changes_made); + unique_ptr Apply(LogicalOperator &op, vector> &bindings, bool &changes_made, + bool is_root) override; +}; + +class DistinctWindowedOptimizer : public Rule { +public: + explicit DistinctWindowedOptimizer(ExpressionRewriter &rewriter); + + static unique_ptr Apply(ClientContext &context, BoundWindowExpression &wexpr, bool &changes_made); + unique_ptr Apply(LogicalOperator &op, vector> &bindings, bool &changes_made, + bool is_root) override; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/sampling_pushdown.hpp b/src/duckdb/src/include/duckdb/optimizer/sampling_pushdown.hpp new file mode 100644 index 00000000..78c67a19 --- /dev/null +++ b/src/duckdb/src/include/duckdb/optimizer/sampling_pushdown.hpp @@ -0,0 +1,25 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/optimizer/sampling_pushdown.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/constants.hpp" +#include "duckdb/planner/logical_operator.hpp" +#include "duckdb/common/unique_ptr.hpp" + +namespace duckdb { +class LocigalOperator; +class Optimizer; + +class SamplingPushdown { +public: + //! Optimize SYSTEM SAMPLING + SCAN to SAMPLE SCAN + unique_ptr Optimize(unique_ptr op); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp b/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp index 618c0750..555cb737 100644 --- a/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/statistics_propagator.hpp @@ -87,7 +87,7 @@ class StatisticsPropagator { unique_ptr PropagateExpression(unique_ptr &expr); unique_ptr PropagateExpression(Expression &expr, unique_ptr &expr_ptr); - + //! Run a comparison between the statistics and the table filter; returns the prune result unique_ptr PropagateExpression(BoundAggregateExpression &expr, unique_ptr &expr_ptr); unique_ptr PropagateExpression(BoundBetweenExpression &expr, unique_ptr &expr_ptr); unique_ptr PropagateExpression(BoundCaseExpression &expr, unique_ptr &expr_ptr); diff --git a/src/duckdb/src/include/duckdb/optimizer/sum_rewriter.hpp b/src/duckdb/src/include/duckdb/optimizer/sum_rewriter.hpp new file mode 100644 index 00000000..18cff911 --- /dev/null +++ b/src/duckdb/src/include/duckdb/optimizer/sum_rewriter.hpp @@ -0,0 +1,37 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/optimizer/sum_rewriter.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/planner/column_binding_map.hpp" +#include "duckdb/planner/logical_operator_visitor.hpp" + +namespace duckdb { +class ExpressionMatcher; +class Optimizer; + +//! Rewrites SUM(x + C) into SUM(x) + C * COUNT(x) +class SumRewriterOptimizer : public LogicalOperatorVisitor { +public: + explicit SumRewriterOptimizer(Optimizer &optimizer); + ~SumRewriterOptimizer() override; + + void Optimize(unique_ptr &op); + void VisitOperator(LogicalOperator &op) override; + +private: + void StandardVisitOperator(LogicalOperator &op); + unique_ptr VisitReplace(BoundColumnRefExpression &expr, unique_ptr *expr_ptr) override; + void RewriteSums(unique_ptr &aggr); + +private: + Optimizer &optimizer; + column_binding_map_t aggregate_map; + unique_ptr sum_matcher; +}; +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/topn_optimizer.hpp b/src/duckdb/src/include/duckdb/optimizer/topn_optimizer.hpp index 94ebaed2..aab07700 100644 --- a/src/duckdb/src/include/duckdb/optimizer/topn_optimizer.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/topn_optimizer.hpp @@ -12,6 +12,7 @@ namespace duckdb { class LogicalOperator; +class LogicalTopN; class Optimizer; class TopN { @@ -20,6 +21,9 @@ class TopN { unique_ptr Optimize(unique_ptr op); //! Whether we can perform the optimization on this operator static bool CanOptimize(LogicalOperator &op); + +private: + void PushdownDynamicFilters(LogicalTopN &op); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp b/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp index 3798cbd4..842d5ef2 100644 --- a/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp +++ b/src/duckdb/src/include/duckdb/optimizer/unnest_rewriter.hpp @@ -8,8 +8,8 @@ #pragma once -#include "duckdb/planner/logical_operator.hpp" #include "duckdb/common/pair.hpp" +#include "duckdb/planner/logical_operator.hpp" namespace duckdb { @@ -61,14 +61,14 @@ class UnnestRewriter { private: //! Find delim joins that contain an UNNEST - void FindCandidates(unique_ptr *op_ptr, vector *> &candidates); + void FindCandidates(unique_ptr &op, vector>> &candidates); //! Rewrite a delim join that contains an UNNEST - bool RewriteCandidate(unique_ptr *candidate); + bool RewriteCandidate(unique_ptr &candidate); //! Update the bindings of the RHS sequence of LOGICAL_PROJECTION(s) - void UpdateRHSBindings(unique_ptr *plan_ptr, unique_ptr *candidate, + void UpdateRHSBindings(unique_ptr &plan, unique_ptr &candidate, UnnestRewriterPlanUpdater &updater); //! Update the bindings of the BOUND_UNNEST expression of the LOGICAL_UNNEST - void UpdateBoundUnnestBindings(UnnestRewriterPlanUpdater &updater, unique_ptr *candidate); + void UpdateBoundUnnestBindings(UnnestRewriterPlanUpdater &updater, unique_ptr &candidate); //! Store all delim columns of the delim join void GetDelimColumns(LogicalOperator &op); diff --git a/src/duckdb/src/include/duckdb/parallel/pipeline.hpp b/src/duckdb/src/include/duckdb/parallel/pipeline.hpp index a074551c..34dcdd44 100644 --- a/src/duckdb/src/include/duckdb/parallel/pipeline.hpp +++ b/src/duckdb/src/include/duckdb/parallel/pipeline.hpp @@ -97,7 +97,7 @@ class Pipeline : public enable_shared_from_this { void PrintDependencies() const; //! Returns query progress - bool GetProgress(double ¤t_percentage, idx_t &estimated_cardinality); + bool GetProgress(ProgressData &progress_data); //! Returns a list of all operators (including source and sink) involved in this pipeline vector> GetOperators(); diff --git a/src/duckdb/src/include/duckdb/parallel/pipeline_executor.hpp b/src/duckdb/src/include/duckdb/parallel/pipeline_executor.hpp index e19c4483..9781e6fb 100644 --- a/src/duckdb/src/include/duckdb/parallel/pipeline_executor.hpp +++ b/src/duckdb/src/include/duckdb/parallel/pipeline_executor.hpp @@ -32,6 +32,28 @@ enum class PipelineExecuteResult { INTERRUPTED }; +class ExecutionBudget { +public: + explicit ExecutionBudget(idx_t maximum) : processed(0), maximum_to_process(maximum) { + } + +public: + bool Next() { + if (IsDepleted()) { + return false; + } + processed++; + return true; + } + bool IsDepleted() const { + return processed >= maximum_to_process; + } + +private: + idx_t processed; + idx_t maximum_to_process; +}; + //! The Pipeline class represents an execution pipeline class PipelineExecutor { public: @@ -43,10 +65,6 @@ class PipelineExecutor { //! Returns true if execution is finished, false if Execute should be called again PipelineExecuteResult Execute(idx_t max_chunks); - //! Push a single input DataChunk into the pipeline. - //! Returns either OperatorResultType::NEED_MORE_INPUT or OperatorResultType::FINISHED - //! If OperatorResultType::FINISHED is returned, more input will not change the result anymore - OperatorResultType ExecutePush(DataChunk &input); //! Called after depleting the source: finalizes the execution of this pipeline executor //! This should only be called once per PipelineExecutor. PipelineExecuteResult PushFinalize(); @@ -91,8 +109,8 @@ class PipelineExecutor { bool finalized = false; //! Whether or not the pipeline has finished processing int32_t finished_processing_idx = -1; - //! Whether or not this pipeline requires keeping track of the batch index of the source - bool requires_batch_index = false; + //! Partition info that is used by this executor + OperatorPartitionInfo required_partition_info; //! Source has indicated it is exhausted bool exhausted_source = false; @@ -128,7 +146,7 @@ class PipelineExecutor { SourceResultType GetData(DataChunk &chunk, OperatorSourceInput &input); SinkResultType Sink(DataChunk &chunk, OperatorSinkInput &input); - OperatorResultType ExecutePushInternal(DataChunk &input, idx_t initial_idx = 0); + OperatorResultType ExecutePushInternal(DataChunk &input, ExecutionBudget &chunk_budget, idx_t initial_idx = 0); //! Pushes a chunk through the pipeline and returns a single result chunk //! Returns whether or not a new input chunk is needed, or whether or not we are finished OperatorResultType Execute(DataChunk &input, DataChunk &result, idx_t initial_index = 0); @@ -138,7 +156,7 @@ class PipelineExecutor { //! Tries to flush all state from intermediate operators. Will return true if all state is flushed, false in the //! case of a blocked sink. - bool TryFlushCachingOperators(); + bool TryFlushCachingOperators(ExecutionBudget &chunk_budget); static bool CanCacheType(const LogicalType &type); void CacheChunk(DataChunk &input, idx_t operator_idx); diff --git a/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp b/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp index 570a3e27..a3811160 100644 --- a/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp +++ b/src/duckdb/src/include/duckdb/parser/constraints/unique_constraint.hpp @@ -8,8 +8,11 @@ #pragma once -#include "duckdb/parser/constraint.hpp" +#include "duckdb/common/enum_util.hpp" +#include "duckdb/common/enums/index_constraint_type.hpp" #include "duckdb/common/vector.hpp" +#include "duckdb/parser/column_list.hpp" +#include "duckdb/parser/constraint.hpp" namespace duckdb { @@ -18,52 +21,33 @@ class UniqueConstraint : public Constraint { static constexpr const ConstraintType TYPE = ConstraintType::UNIQUE; public: - DUCKDB_API UniqueConstraint(LogicalIndex index, bool is_primary_key); - DUCKDB_API UniqueConstraint(vector columns, bool is_primary_key); + DUCKDB_API UniqueConstraint(const LogicalIndex index, const bool is_primary_key); + DUCKDB_API UniqueConstraint(vector columns, const bool is_primary_key); public: DUCKDB_API string ToString() const override; - DUCKDB_API unique_ptr Copy() const override; - DUCKDB_API void Serialize(Serializer &serializer) const override; DUCKDB_API static unique_ptr Deserialize(Deserializer &deserializer); - bool IsPrimaryKey() const { - return is_primary_key; - } - - bool HasIndex() const { - return index.index != DConstants::INVALID_INDEX; - } - - LogicalIndex GetIndex() const { - if (!HasIndex()) { - throw InternalException("UniqueConstraint::GetIndex called on a unique constraint without a defined index"); - } - return index; - } - void SetIndex(LogicalIndex new_index) { - D_ASSERT(new_index.index != DConstants::INVALID_INDEX); - index = new_index; - } - - const vector &GetColumnNames() const { - D_ASSERT(columns.size() >= 1); - return columns; - } - vector &GetColumnNamesMutable() { - D_ASSERT(columns.size() >= 1); - return columns; - } - - void SetColumnName(string name) { - if (!columns.empty()) { - // name has already been set - return; - } - columns.push_back(std::move(name)); - } + //! Returns true, if the constraint is a PRIMARY KEY constraint. + bool IsPrimaryKey() const; + //! Returns true, if the constraint is defined on a single column. + bool HasIndex() const; + //! Returns the column index on which the constraint is defined. + LogicalIndex GetIndex() const; + //! Sets the column index of the constraint. + void SetIndex(const LogicalIndex new_index); + //! Returns a constant reference to the column names on which the constraint is defined. + const vector &GetColumnNames() const; + //! Returns a mutable reference to the column names on which the constraint is defined. + vector &GetColumnNamesMutable(); + //! Returns the column indexes on which the constraint is defined. + vector GetLogicalIndexes(const ColumnList &columns) const; + //! Get the name of the constraint. + string GetName(const string &table_name) const; + //! Sets a single column name. Does nothing, if the name is already set. + void SetColumnName(const string &name); private: UniqueConstraint(); @@ -73,12 +57,12 @@ class UniqueConstraint : public Constraint { #else public: #endif - //! The index of the column for which this constraint holds. Only used when the constraint relates to a single - //! column, equal to DConstants::INVALID_INDEX if not used + + //! The indexed column of the constraint. Only used for single-column constraints, invalid otherwise. LogicalIndex index; - //! The set of columns for which this constraint holds by name. Only used when the index field is not used. + //! The names of the columns on which this constraint is defined. Only set if the index field is not set. vector columns; - //! Whether or not this is a PRIMARY KEY constraint, or a UNIQUE constraint. + //! Whether this is a PRIMARY KEY constraint, or a UNIQUE constraint. bool is_primary_key; }; diff --git a/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp b/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp index f50717ef..408dcaab 100644 --- a/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp +++ b/src/duckdb/src/include/duckdb/parser/expression/columnref_expression.hpp @@ -12,6 +12,7 @@ #include "duckdb/common/vector.hpp" namespace duckdb { +struct BindingAlias; //! Represents a reference to a column from either the FROM clause or from an //! alias @@ -22,6 +23,8 @@ class ColumnRefExpression : public ParsedExpression { public: //! Specify both the column and table name ColumnRefExpression(string column_name, string table_name); + //! Specify both the column and table alias + ColumnRefExpression(string column_name, const BindingAlias &alias); //! Only specify the column name, the table name will be derived later explicit ColumnRefExpression(string column_name); //! Specify a set of names diff --git a/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp b/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp index d95b683d..c35ef202 100644 --- a/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp +++ b/src/duckdb/src/include/duckdb/parser/expression/star_expression.hpp @@ -10,6 +10,7 @@ #include "duckdb/parser/parsed_expression.hpp" #include "duckdb/common/case_insensitive_map.hpp" +#include "duckdb/parser/qualified_name_set.hpp" namespace duckdb { @@ -24,9 +25,11 @@ class StarExpression : public ParsedExpression { //! The relation name in case of tbl.*, or empty if this is a normal * string relation_name; //! List of columns to exclude from the STAR expression - case_insensitive_set_t exclude_list; + qualified_column_set_t exclude_list; //! List of columns to replace with another expression case_insensitive_map_t> replace_list; + //! List of columns to rename + qualified_column_map_t rename_list; //! The expression to select the columns (regular expression or list) unique_ptr expr; //! Whether or not this is a COLUMNS expression @@ -46,5 +49,12 @@ class StarExpression : public ParsedExpression { void Serialize(Serializer &serializer) const override; static unique_ptr Deserialize(Deserializer &deserializer); + +public: + // these methods exist for backwards compatibility of (de)serialization + StarExpression(const case_insensitive_set_t &exclude_list, qualified_column_set_t qualified_set); + + case_insensitive_set_t SerializedExcludeList() const; + qualified_column_set_t SerializedQualifiedExcludeList() const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp index 88db356a..7e47a2e8 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/alter_info.hpp @@ -74,6 +74,7 @@ struct AlterInfo : public ParseInfo { }; AlterEntryData GetAlterEntryData() const; + bool IsAddPrimaryKey() const; protected: explicit AlterInfo(AlterType type); diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp index 625f25f3..f3a20946 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/alter_scalar_function_info.hpp @@ -13,6 +13,7 @@ #include "duckdb/parser/parsed_data/alter_info.hpp" namespace duckdb { +struct CreateScalarFunctionInfo; //===--------------------------------------------------------------------===// // Alter Scalar Function @@ -33,10 +34,10 @@ struct AlterScalarFunctionInfo : public AlterInfo { // AddScalarFunctionOverloadInfo //===--------------------------------------------------------------------===// struct AddScalarFunctionOverloadInfo : public AlterScalarFunctionInfo { - AddScalarFunctionOverloadInfo(AlterEntryData data, ScalarFunctionSet new_overloads); + AddScalarFunctionOverloadInfo(AlterEntryData data, unique_ptr new_overloads); ~AddScalarFunctionOverloadInfo() override; - ScalarFunctionSet new_overloads; + unique_ptr new_overloads; public: unique_ptr Copy() const override; diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp index 73a685f7..9506b151 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/alter_table_info.hpp @@ -78,7 +78,8 @@ enum class AlterTableType : uint8_t { FOREIGN_KEY_CONSTRAINT = 7, SET_NOT_NULL = 8, DROP_NOT_NULL = 9, - SET_COLUMN_COMMENT = 10 + SET_COLUMN_COMMENT = 10, + ADD_CONSTRAINT = 11 }; struct AlterTableInfo : public AlterInfo { @@ -346,4 +347,24 @@ struct RenameViewInfo : public AlterViewInfo { RenameViewInfo(); }; +//===--------------------------------------------------------------------===// +// AddConstraintInfo +//===--------------------------------------------------------------------===// +struct AddConstraintInfo : public AlterTableInfo { + AddConstraintInfo(AlterEntryData data, unique_ptr constraint); + ~AddConstraintInfo() override; + + //! The constraint to add. + unique_ptr constraint; + +public: + unique_ptr Copy() const override; + string ToString() const override; + void Serialize(Serializer &serializer) const override; + static unique_ptr Deserialize(Deserializer &deserializer); + +private: + AddConstraintInfo(); +}; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp index 7906ac52..835dd9a4 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/attach_info.hpp @@ -13,6 +13,7 @@ #include "duckdb/common/unordered_map.hpp" #include "duckdb/common/types/value.hpp" #include "duckdb/common/enums/on_create_conflict.hpp" +#include "duckdb/storage/storage_options.hpp" namespace duckdb { @@ -34,10 +35,8 @@ struct AttachInfo : public ParseInfo { OnCreateConflict on_conflict = OnCreateConflict::ERROR_ON_CONFLICT; public: - //! Returns the block allocation size, which is the allocation size of blocks for this attached database file. - //! Returns DConstants::INVALID_INDEX, if not provided. This is NOT the actual memory available on a block - //! (block_size), even though the corresponding option we expose to the user is called "block_size". - optional_idx GetBlockAllocSize() const; + //! Returns the storage options + StorageOptions GetStorageOptions() const; //! Copies this AttachInfo and returns an unique pointer to the new AttachInfo. unique_ptr Copy() const; string ToString() const; diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_column_info.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_column_info.hpp index c274ffb5..60aa36ef 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_column_info.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/comment_on_column_info.hpp @@ -12,9 +12,9 @@ #include "duckdb/common/types/value.hpp" #include "duckdb/parser/parsed_data/alter_info.hpp" #include "duckdb/parser/qualified_name.hpp" -#include "duckdb/catalog/catalog_entry_retriever.hpp" namespace duckdb { +class CatalogEntryRetriever; class ClientContext; class CatalogEntry; diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp index 64018f3b..355a11f7 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/create_function_info.hpp @@ -13,22 +13,26 @@ namespace duckdb { +struct FunctionDescription { + //! Parameter types (if any) + vector parameter_types; + //! Parameter names (if any) + vector parameter_names; + //! The description (if any) + string description; + //! Examples (if any) + vector examples; +}; + struct CreateFunctionInfo : public CreateInfo { - explicit CreateFunctionInfo(CatalogType type, string schema = DEFAULT_SCHEMA) - : CreateInfo(type, std::move(schema)) { - D_ASSERT(type == CatalogType::SCALAR_FUNCTION_ENTRY || type == CatalogType::AGGREGATE_FUNCTION_ENTRY || - type == CatalogType::TABLE_FUNCTION_ENTRY || type == CatalogType::PRAGMA_FUNCTION_ENTRY || - type == CatalogType::MACRO_ENTRY || type == CatalogType::TABLE_MACRO_ENTRY); - } + explicit CreateFunctionInfo(CatalogType type, string schema = DEFAULT_SCHEMA); //! Function name string name; - //! The description (if any) - string description; - //! Parameter names (if any) - vector parameter_names; - //! The example (if any) - string example; + //! Function description + vector descriptions; + + DUCKDB_API void CopyFunctionProperties(CreateFunctionInfo &other) const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp index 08ff3826..6cc6e84c 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/create_index_info.hpp @@ -46,12 +46,12 @@ struct CreateIndexInfo : public CreateInfo { public: DUCKDB_API unique_ptr Copy() const override; - string ToString() const override; - vector ExpressionsToList() const; - string ExpressionsToString() const; void Serialize(Serializer &serializer) const override; static unique_ptr Deserialize(Deserializer &deserializer); + + vector ExpressionsToList() const; + string ExpressionsToString() const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp index b3f26a9b..192def09 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/exported_table_data.hpp @@ -1,7 +1,7 @@ //===----------------------------------------------------------------------===// // DuckDB // -// duckdb/parser/parsed_data/export_table_data.hpp +// duckdb/parser/parsed_data/exported_table_data.hpp // // //===----------------------------------------------------------------------===// @@ -28,16 +28,23 @@ struct ExportedTableData { string file_path; //! Not Null columns, if any vector not_null_columns; + + void Serialize(Serializer &serializer) const; + static ExportedTableData Deserialize(Deserializer &deserializer); }; struct ExportedTableInfo { - ExportedTableInfo(TableCatalogEntry &entry, ExportedTableData table_data_p, vector ¬_null_columns_p) - : entry(entry), table_data(std::move(table_data_p)) { - table_data.not_null_columns = not_null_columns_p; - } + ExportedTableInfo(TableCatalogEntry &entry, ExportedTableData table_data_p, vector ¬_null_columns_p); + ExportedTableInfo(ClientContext &context, ExportedTableData table_data); TableCatalogEntry &entry; ExportedTableData table_data; + + void Serialize(Serializer &serializer) const; + static ExportedTableInfo Deserialize(Deserializer &deserializer); + +private: + static TableCatalogEntry &GetEntry(ClientContext &context, const ExportedTableData &table_data); }; struct BoundExportData : public ParseInfo { @@ -49,6 +56,9 @@ struct BoundExportData : public ParseInfo { } vector data; + + void Serialize(Serializer &serializer) const override; + static unique_ptr Deserialize(Deserializer &deserializer); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp b/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp index 201469bc..dadbcfe9 100644 --- a/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp +++ b/src/duckdb/src/include/duckdb/parser/parsed_data/sample_options.hpp @@ -15,21 +15,30 @@ namespace duckdb { -enum class SampleMethod : uint8_t { SYSTEM_SAMPLE = 0, BERNOULLI_SAMPLE = 1, RESERVOIR_SAMPLE = 2 }; +// Invalid is 255 because previously stored databases have SampleMethods according to the current ENUMS and we need to +// maintain that +enum class SampleMethod : uint8_t { SYSTEM_SAMPLE = 0, BERNOULLI_SAMPLE = 1, RESERVOIR_SAMPLE = 2, INVALID = 255 }; // **DEPRECATED**: Use EnumUtil directly instead. string SampleMethodToString(SampleMethod method); -struct SampleOptions { +class SampleOptions { + +public: + explicit SampleOptions(int64_t seed_ = -1); + Value sample_size; bool is_percentage; SampleMethod method; - int64_t seed = -1; + optional_idx seed = optional_idx::Invalid(); + bool repeatable; unique_ptr Copy(); + void SetSeed(idx_t new_seed); static bool Equals(SampleOptions *a, SampleOptions *b); void Serialize(Serializer &serializer) const; static unique_ptr Deserialize(Deserializer &deserializer); + int64_t GetSeed() const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/parser.hpp b/src/duckdb/src/include/duckdb/parser/parser.hpp index b919f5ca..54cf89fb 100644 --- a/src/duckdb/src/include/duckdb/parser/parser.hpp +++ b/src/duckdb/src/include/duckdb/parser/parser.hpp @@ -44,6 +44,9 @@ class Parser { //! Tokenize a query, returning the raw tokens together with their locations static vector Tokenize(const string &query); + //! Tokenize an error message, returning the raw tokens together with their locations + static vector TokenizeError(const string &error_msg); + //! Returns true if the given text matches a keyword of the parser static KeywordCategory IsKeyword(const string &text); //! Returns a list of all keywords in the parser diff --git a/src/duckdb/src/include/duckdb/parser/qualified_name.hpp b/src/duckdb/src/include/duckdb/parser/qualified_name.hpp index ee594780..b17abbab 100644 --- a/src/duckdb/src/include/duckdb/parser/qualified_name.hpp +++ b/src/duckdb/src/include/duckdb/parser/qualified_name.hpp @@ -12,6 +12,7 @@ #include "duckdb/common/exception/parser_exception.hpp" #include "duckdb/parser/keyword_helper.hpp" #include "duckdb/common/string_util.hpp" +#include "duckdb/planner/binding_alias.hpp" namespace duckdb { @@ -22,70 +23,29 @@ struct QualifiedName { //! Parse the (optional) schema and a name from a string in the format of e.g. "schema"."table"; if there is no dot //! the schema will be set to INVALID_SCHEMA - static QualifiedName Parse(const string &input) { - string catalog; - string schema; - string name; - idx_t idx = 0; - vector entries; - string entry; - normal: - //! quote - for (; idx < input.size(); idx++) { - if (input[idx] == '"') { - idx++; - goto quoted; - } else if (input[idx] == '.') { - goto separator; - } - entry += input[idx]; - } - goto end; - separator: - entries.push_back(entry); - entry = ""; - idx++; - goto normal; - quoted: - //! look for another quote - for (; idx < input.size(); idx++) { - if (input[idx] == '"') { - //! unquote - idx++; - goto normal; - } - entry += input[idx]; - } - throw ParserException("Unterminated quote in qualified name!"); - end: - if (entries.empty()) { - catalog = INVALID_CATALOG; - schema = INVALID_SCHEMA; - name = entry; - } else if (entries.size() == 1) { - catalog = INVALID_CATALOG; - schema = entries[0]; - name = entry; - } else if (entries.size() == 2) { - catalog = entries[0]; - schema = entries[1]; - name = entry; - } else { - throw ParserException("Expected catalog.entry, schema.entry or entry: too many entries found"); - } - return QualifiedName {catalog, schema, name}; - } + static QualifiedName Parse(const string &input); + string ToString() const; }; struct QualifiedColumnName { - QualifiedColumnName() { - } - QualifiedColumnName(string table_p, string column_p) : table(std::move(table_p)), column(std::move(column_p)) { - } + QualifiedColumnName(); + QualifiedColumnName(string column_p); // NOLINT: allow implicit conversion from string to column name + QualifiedColumnName(string table_p, string column_p); + QualifiedColumnName(const BindingAlias &alias, string column_p); + string catalog; string schema; string table; string column; + + string ToString() const; + + void Serialize(Serializer &serializer) const; + static QualifiedColumnName Deserialize(Deserializer &deserializer); + + bool IsQualified() const; + + bool operator==(const QualifiedColumnName &rhs) const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/qualified_name_set.hpp b/src/duckdb/src/include/duckdb/parser/qualified_name_set.hpp index 1a105209..c17cde85 100644 --- a/src/duckdb/src/include/duckdb/parser/qualified_name_set.hpp +++ b/src/duckdb/src/include/duckdb/parser/qualified_name_set.hpp @@ -16,17 +16,33 @@ namespace duckdb { struct QualifiedColumnHashFunction { uint64_t operator()(const QualifiedColumnName &a) const { - std::hash str_hasher; - return str_hasher(a.schema) ^ str_hasher(a.table) ^ str_hasher(a.column); + // hash only on the column name - since we match based on the shortest possible match + return StringUtil::CIHash(a.column); } }; struct QualifiedColumnEquality { bool operator()(const QualifiedColumnName &a, const QualifiedColumnName &b) const { - return a.schema == b.schema && a.table == b.table && a.column == b.column; + // qualified column names follow a prefix comparison + // so "tbl.i" and "i" are equivalent, as are "schema.tbl.i" and "i" + // but "tbl.i" and "tbl2.i" are not equivalent + if (!a.catalog.empty() && !b.catalog.empty() && !StringUtil::CIEquals(a.catalog, b.catalog)) { + return false; + } + if (!a.schema.empty() && !b.schema.empty() && !StringUtil::CIEquals(a.schema, b.schema)) { + return false; + } + if (!a.table.empty() && !b.table.empty() && !StringUtil::CIEquals(a.table, b.table)) { + return false; + } + return StringUtil::CIEquals(a.column, b.column); } }; using qualified_column_set_t = unordered_set; +template +using qualified_column_map_t = + unordered_map; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/simplified_token.hpp b/src/duckdb/src/include/duckdb/parser/simplified_token.hpp index edf066f9..7a50824d 100644 --- a/src/duckdb/src/include/duckdb/parser/simplified_token.hpp +++ b/src/duckdb/src/include/duckdb/parser/simplified_token.hpp @@ -20,7 +20,8 @@ enum class SimplifiedTokenType : uint8_t { SIMPLIFIED_TOKEN_STRING_CONSTANT, SIMPLIFIED_TOKEN_OPERATOR, SIMPLIFIED_TOKEN_KEYWORD, - SIMPLIFIED_TOKEN_COMMENT + SIMPLIFIED_TOKEN_COMMENT, + SIMPLIFIED_TOKEN_ERROR }; struct SimplifiedToken { diff --git a/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp b/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp index 16bc1bb8..b841559e 100644 --- a/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp +++ b/src/duckdb/src/include/duckdb/parser/tableref/basetableref.hpp @@ -8,11 +8,13 @@ #pragma once -#include "duckdb/parser/tableref.hpp" #include "duckdb/common/vector.hpp" +#include "duckdb/main/table_description.hpp" +#include "duckdb/parser/tableref.hpp" namespace duckdb { -//! Represents a TableReference to a base table in the schema + +//! Represents a TableReference to a base table in a catalog and schema. class BaseTableRef : public TableRef { public: static constexpr const TableReferenceType TYPE = TableReferenceType::BASE_TABLE; @@ -21,23 +23,24 @@ class BaseTableRef : public TableRef { BaseTableRef() : TableRef(TableReferenceType::BASE_TABLE), catalog_name(INVALID_CATALOG), schema_name(INVALID_SCHEMA) { } + explicit BaseTableRef(const TableDescription &description) + : TableRef(TableReferenceType::BASE_TABLE), catalog_name(description.database), schema_name(description.schema), + table_name(description.table) { + } - //! The catalog name + //! The catalog name. string catalog_name; - //! Schema name + //! The schema name. string schema_name; - //! Table name + //! The table name. string table_name; public: string ToString() const override; bool Equals(const TableRef &other_p) const override; - unique_ptr Copy() override; - - //! Deserializes a blob back into a BaseTableRef void Serialize(Serializer &serializer) const override; - static unique_ptr Deserialize(Deserializer &source); }; + } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/tokens.hpp b/src/duckdb/src/include/duckdb/parser/tokens.hpp index f5eeb2c0..d18adfd4 100644 --- a/src/duckdb/src/include/duckdb/parser/tokens.hpp +++ b/src/duckdb/src/include/duckdb/parser/tokens.hpp @@ -104,6 +104,6 @@ class ShowRef; //===--------------------------------------------------------------------===// // Other //===--------------------------------------------------------------------===// -struct SampleOptions; +class SampleOptions; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/parser/transformer.hpp b/src/duckdb/src/include/duckdb/parser/transformer.hpp index 760526b1..00833a52 100644 --- a/src/duckdb/src/include/duckdb/parser/transformer.hpp +++ b/src/duckdb/src/include/duckdb/parser/transformer.hpp @@ -261,8 +261,8 @@ class Transformer { //===--------------------------------------------------------------------===// // Constraints transform //===--------------------------------------------------------------------===// - unique_ptr TransformConstraint(duckdb_libpgquery::PGListCell &cell); - unique_ptr TransformConstraint(duckdb_libpgquery::PGListCell &cell, ColumnDefinition &column, + unique_ptr TransformConstraint(duckdb_libpgquery::PGConstraint &constraint); + unique_ptr TransformConstraint(duckdb_libpgquery::PGConstraint &constraint, ColumnDefinition &column, idx_t index); //===--------------------------------------------------------------------===// @@ -323,6 +323,8 @@ class Transformer { //! Transform a range var into a (schema) qualified name QualifiedName TransformQualifiedName(duckdb_libpgquery::PGRangeVar &root); + //! Transform a Postgres TypeName string into a LogicalType (non-LIST types) + LogicalType TransformTypeNameInternal(duckdb_libpgquery::PGTypeName &name); //! Transform a Postgres TypeName string into a LogicalType LogicalType TransformTypeName(duckdb_libpgquery::PGTypeName &name); diff --git a/src/duckdb/src/include/duckdb/planner/bind_context.hpp b/src/duckdb/src/include/duckdb/planner/bind_context.hpp index e4b63f83..8234805e 100644 --- a/src/duckdb/src/include/duckdb/planner/bind_context.hpp +++ b/src/duckdb/src/include/duckdb/planner/bind_context.hpp @@ -10,6 +10,7 @@ #include "duckdb/catalog/catalog.hpp" #include "duckdb/common/case_insensitive_map.hpp" +#include "duckdb/common/column_index.hpp" #include "duckdb/common/reference_map.hpp" #include "duckdb/common/exception/binder_exception.hpp" #include "duckdb/parser/expression/columnref_expression.hpp" @@ -30,10 +31,12 @@ class TableCatalogEntry; class TableFunctionCatalogEntry; struct UsingColumnSet { - string primary_binding; - unordered_set bindings; + BindingAlias primary_binding; + vector bindings; }; +enum class ColumnBindType { EXPAND_GENERATED_COLUMNS, DO_NOT_EXPAND_GENERATED_COLUMNS }; + //! The BindContext object keeps track of all the tables and columns that are //! encountered during the binding process. class BindContext { @@ -46,10 +49,10 @@ class BindContext { public: //! Given a column name, find the matching table it belongs to. Throws an //! exception if no table has a column of the given name. - string GetMatchingBinding(const string &column_name); + optional_ptr GetMatchingBinding(const string &column_name); //! Like GetMatchingBinding, but instead of throwing an error if multiple tables have the same binding it will //! return a list of all the matching ones - unordered_set GetMatchingBindings(const string &column_name); + vector> GetMatchingBindings(const string &column_name); //! Like GetMatchingBindings, but returns the top 3 most similar bindings (in levenshtein distance) instead of the //! matching ones vector GetSimilarBindings(const string &column_name); @@ -61,38 +64,45 @@ class BindContext { string BindColumn(PositionalReferenceExpression &ref, string &table_name, string &column_name); unique_ptr PositionToColumn(PositionalReferenceExpression &ref); - unique_ptr ExpandGeneratedColumn(const string &table_name, const string &column_name); - - unique_ptr CreateColumnReference(const string &table_name, const string &column_name); - unique_ptr CreateColumnReference(const string &schema_name, const string &table_name, - const string &column_name); - unique_ptr CreateColumnReference(const string &catalog_name, const string &schema_name, - const string &table_name, const string &column_name); + unique_ptr ExpandGeneratedColumn(TableBinding &table_binding, const string &column_name); + + unique_ptr + CreateColumnReference(const string &table_name, const string &column_name, + ColumnBindType bind_type = ColumnBindType::EXPAND_GENERATED_COLUMNS); + unique_ptr + CreateColumnReference(const string &schema_name, const string &table_name, const string &column_name, + ColumnBindType bind_type = ColumnBindType::EXPAND_GENERATED_COLUMNS); + unique_ptr + CreateColumnReference(const string &catalog_name, const string &schema_name, const string &table_name, + const string &column_name, + ColumnBindType bind_type = ColumnBindType::EXPAND_GENERATED_COLUMNS); + unique_ptr + CreateColumnReference(const BindingAlias &table_alias, const string &column_name, + ColumnBindType bind_type = ColumnBindType::EXPAND_GENERATED_COLUMNS); //! Generate column expressions for all columns that are present in the //! referenced tables. This is used to resolve the * expression in a //! selection list. void GenerateAllColumnExpressions(StarExpression &expr, vector> &new_select_list); - //! Check if the given (binding, column_name) is in the exclusion/replacement lists. - //! Returns true if it is in one of these lists, and should therefore be skipped. - bool CheckExclusionList(StarExpression &expr, const string &column_name, - vector> &new_select_list, - case_insensitive_set_t &excluded_columns); - const vector> &GetBindingsList() { + const vector> &GetBindingsList() { return bindings_list; } + vector GetBindingAliases(); void GetTypesAndNames(vector &result_names, vector &result_types); //! Adds a base table with the given alias to the BindContext. void AddBaseTable(idx_t index, const string &alias, const vector &names, const vector &types, - vector &bound_column_ids, StandardEntry *entry, bool add_row_id = true); + vector &bound_column_ids, StandardEntry &entry, bool add_row_id = true); + void AddBaseTable(idx_t index, const string &alias, const vector &names, const vector &types, + vector &bound_column_ids, const string &table_name); //! Adds a call to a table function with the given alias to the BindContext. void AddTableFunction(idx_t index, const string &alias, const vector &names, - const vector &types, vector &bound_column_ids, StandardEntry *entry); + const vector &types, vector &bound_column_ids, + optional_ptr entry); //! Adds a table view with a given alias to the BindContext. - void AddView(idx_t index, const string &alias, SubqueryRef &ref, BoundQueryNode &subquery, ViewCatalogEntry *view); + void AddView(idx_t index, const string &alias, SubqueryRef &ref, BoundQueryNode &subquery, ViewCatalogEntry &view); //! Adds a subquery with a given alias to the BindContext. void AddSubquery(idx_t index, const string &alias, SubqueryRef &ref, BoundQueryNode &subquery); //! Adds a subquery with a given alias to the BindContext. @@ -117,17 +127,18 @@ class BindContext { //! column sets with the same name) throw an exception. optional_ptr GetUsingBinding(const string &column_name); //! Returns any using column set for the given column name, or nullptr if there is none - optional_ptr GetUsingBinding(const string &column_name, const string &binding_name); + optional_ptr GetUsingBinding(const string &column_name, const BindingAlias &binding); //! Erase a using binding from the set of using bindings void RemoveUsingBinding(const string &column_name, UsingColumnSet &set); //! Transfer a using binding from one bind context to this bind context void TransferUsingBinding(BindContext ¤t_context, optional_ptr current_set, - UsingColumnSet &new_set, const string &binding, const string &using_column); + UsingColumnSet &new_set, const string &using_column); //! Fetch the actual column name from the given binding, or throws if none exists //! This can be different from "column_name" because of case insensitivity //! (e.g. "column_name" might return "COLUMN_NAME") - string GetActualColumnName(const string &binding, const string &column_name); + string GetActualColumnName(const BindingAlias &binding_alias, const string &column_name); + string GetActualColumnName(Binding &binding, const string &column_name); case_insensitive_map_t> GetCTEBindings() { return cte_bindings; @@ -144,21 +155,27 @@ class BindContext { //! Add all the bindings from a BindContext to this BindContext. The other BindContext is destroyed in the process. void AddContext(BindContext other); //! For semi and anti joins we remove the binding context of the right table after binding the condition. - void RemoveContext(vector> &other_bindings_list); + void RemoveContext(const vector &aliases); //! Gets a binding of the specified name. Returns a nullptr and sets the out_error if the binding could not be //! found. optional_ptr GetBinding(const string &name, ErrorData &out_error); + optional_ptr GetBinding(const BindingAlias &alias, ErrorData &out_error); + + optional_ptr GetBinding(const BindingAlias &alias, const string &column_name, ErrorData &out_error); + + //! Get all bindings that match a specific binding alias - returns an error if none match + vector> GetBindings(const BindingAlias &alias, ErrorData &out_error); + private: - void AddBinding(const string &alias, unique_ptr binding); + void AddBinding(unique_ptr binding); + static string AmbiguityException(const BindingAlias &alias, const vector> &bindings); private: Binder &binder; - //! The set of bindings - case_insensitive_map_t> bindings; //! The list of bindings in insertion order - vector> bindings_list; + vector> bindings_list; //! The set of columns used in USING join conditions case_insensitive_map_t> using_columns; //! Using column sets diff --git a/src/duckdb/src/include/duckdb/planner/binder.hpp b/src/duckdb/src/include/duckdb/planner/binder.hpp index cdfc67d1..0cd7c0e6 100644 --- a/src/duckdb/src/include/duckdb/planner/binder.hpp +++ b/src/duckdb/src/include/duckdb/planner/binder.hpp @@ -24,6 +24,7 @@ #include "duckdb/planner/bound_tokens.hpp" #include "duckdb/planner/expression/bound_columnref_expression.hpp" #include "duckdb/planner/joinside.hpp" +#include "duckdb/planner/bound_constraint.hpp" #include "duckdb/planner/logical_operator.hpp" #include "duckdb/planner/tableref/bound_delimgetref.hpp" @@ -49,7 +50,6 @@ class BoundConstraint; struct CreateInfo; struct BoundCreateTableInfo; -struct BoundCreateFunctionInfo; struct CommonTableExpressionInfo; struct BoundParameterMap; struct BoundPragmaInfo; @@ -125,6 +125,7 @@ class Binder : public enable_shared_from_this { vector> &bound_defaults); static unique_ptr BindCreateTableCheckpoint(unique_ptr info, SchemaCatalogEntry &schema); + static vector> BindConstraints(ClientContext &context, const vector> &constraints, const string &table_name, const ColumnList &columns); @@ -133,6 +134,11 @@ class Binder : public enable_shared_from_this { vector> BindConstraints(const TableCatalogEntry &table); vector> BindNewConstraints(vector> &constraints, const string &table_name, const ColumnList &columns); + unique_ptr BindConstraint(Constraint &constraint, const string &table, const ColumnList &columns); + unique_ptr BindUniqueConstraint(Constraint &constraint, const string &table, + const ColumnList &columns); + + BoundStatement BindAlterAddIndex(BoundStatement &result, CatalogEntry &entry, unique_ptr alter_info); void SetCatalogLookupCallback(catalog_entry_callback_t callback); void BindCreateViewInfo(CreateViewInfo &base); @@ -189,11 +195,11 @@ class Binder : public enable_shared_from_this { void BindLogicalType(LogicalType &type, optional_ptr catalog = nullptr, const string &schema = INVALID_SCHEMA); - bool HasMatchingBinding(const string &table_name, const string &column_name, ErrorData &error); - bool HasMatchingBinding(const string &schema_name, const string &table_name, const string &column_name, - ErrorData &error); - bool HasMatchingBinding(const string &catalog_name, const string &schema_name, const string &table_name, - const string &column_name, ErrorData &error); + optional_ptr GetMatchingBinding(const string &table_name, const string &column_name, ErrorData &error); + optional_ptr GetMatchingBinding(const string &schema_name, const string &table_name, + const string &column_name, ErrorData &error); + optional_ptr GetMatchingBinding(const string &catalog_name, const string &schema_name, + const string &table_name, const string &column_name, ErrorData &error); void SetBindingMode(BindingMode mode); BindingMode GetBindingMode(); @@ -204,6 +210,11 @@ class Binder : public enable_shared_from_this { optional_ptr GetRootStatement() { return root_statement; } + CatalogEntryRetriever &EntryRetriever() { + return entry_retriever; + } + //! Returns a ColumnRefExpression after it was resolved (i.e. past the STAR expression/USING clauses) + static optional_ptr GetResolvedColumnExpression(ParsedExpression &root_expr); void SetCanContainNulls(bool can_contain_nulls); void SetAlwaysRequireRebind(); @@ -250,7 +261,8 @@ class Binder : public enable_shared_from_this { //! Bind the expressions of generated columns to check for errors void BindGeneratedColumns(BoundCreateTableInfo &info); //! Bind the default values of the columns of a table - void BindDefaultValues(const ColumnList &columns, vector> &bound_defaults); + void BindDefaultValues(const ColumnList &columns, vector> &bound_defaults, + const string &catalog = "", const string &schema = ""); //! Bind a limit value (LIMIT or OFFSET) BoundLimitNode BindLimitValue(OrderBinder &order_binder, unique_ptr limit_val, bool is_percentage, bool is_offset); @@ -384,12 +396,12 @@ class Binder : public enable_shared_from_this { vector &target_types, unique_ptr op); - string FindBinding(const string &using_column, const string &join_side); - bool TryFindBinding(const string &using_column, const string &join_side, string &result); + BindingAlias FindBinding(const string &using_column, const string &join_side); + bool TryFindBinding(const string &using_column, const string &join_side, BindingAlias &result); void AddUsingBindingSet(unique_ptr set); - string RetrieveUsingBinding(Binder ¤t_binder, optional_ptr current_set, - const string &column_name, const string &join_side); + BindingAlias RetrieveUsingBinding(Binder ¤t_binder, optional_ptr current_set, + const string &column_name, const string &join_side); void AddCTEMap(CommonTableExpressionMap &cte_map); diff --git a/src/duckdb/src/include/duckdb/planner/binding_alias.hpp b/src/duckdb/src/include/duckdb/planner/binding_alias.hpp new file mode 100644 index 00000000..2d85b521 --- /dev/null +++ b/src/duckdb/src/include/duckdb/planner/binding_alias.hpp @@ -0,0 +1,44 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/planner/binding_alias.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/common.hpp" +#include "duckdb/common/case_insensitive_map.hpp" + +namespace duckdb { +class StandardEntry; + +struct BindingAlias { + BindingAlias(); + explicit BindingAlias(string alias); + BindingAlias(string schema, string alias); + BindingAlias(string catalog, string schema, string alias); + explicit BindingAlias(const StandardEntry &entry); + + bool IsSet() const; + const string &GetAlias() const; + + const string &GetCatalog() const { + return catalog; + } + const string &GetSchema() const { + return schema; + } + + bool Matches(const BindingAlias &other) const; + bool operator==(const BindingAlias &other) const; + string ToString() const; + +private: + string catalog; + string schema; + string alias; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/collation_binding.hpp b/src/duckdb/src/include/duckdb/planner/collation_binding.hpp index f9f86d69..aa82a71a 100644 --- a/src/duckdb/src/include/duckdb/planner/collation_binding.hpp +++ b/src/duckdb/src/include/duckdb/planner/collation_binding.hpp @@ -9,6 +9,7 @@ #pragma once #include "duckdb/function/cast/default_casts.hpp" +#include "duckdb/common/enums/collation_type.hpp" namespace duckdb { struct MapCastInfo; @@ -16,7 +17,7 @@ struct MapCastNode; struct DBConfig; typedef bool (*try_push_collation_t)(ClientContext &context, unique_ptr &source, - const LogicalType &sql_type); + const LogicalType &sql_type, CollationType type); struct CollationCallback { explicit CollationCallback(try_push_collation_t try_push_collation_p) : try_push_collation(try_push_collation_p) { @@ -34,8 +35,8 @@ class CollationBinding { DUCKDB_API static CollationBinding &Get(DatabaseInstance &db); DUCKDB_API void RegisterCollation(CollationCallback callback); - DUCKDB_API bool PushCollation(ClientContext &context, unique_ptr &source, - const LogicalType &sql_type) const; + DUCKDB_API bool PushCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type, + CollationType type) const; private: vector collations; diff --git a/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp b/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp index 4c7468d6..b03f6ffe 100644 --- a/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp +++ b/src/duckdb/src/include/duckdb/planner/constraints/bound_unique_constraint.hpp @@ -19,22 +19,23 @@ class BoundUniqueConstraint : public BoundConstraint { static constexpr const ConstraintType TYPE = ConstraintType::UNIQUE; public: - BoundUniqueConstraint(vector keys, logical_index_set_t key_set, bool is_primary_key) - : BoundConstraint(ConstraintType::UNIQUE), keys(std::move(keys)), key_set(std::move(key_set)), + BoundUniqueConstraint(vector keys_p, physical_index_set_t key_set_p, const bool is_primary_key) + : BoundConstraint(ConstraintType::UNIQUE), keys(std::move(keys_p)), key_set(std::move(key_set_p)), is_primary_key(is_primary_key) { + #ifdef DEBUG - D_ASSERT(this->keys.size() == this->key_set.size()); - for (auto &key : this->keys) { - D_ASSERT(this->key_set.find(key) != this->key_set.end()); + D_ASSERT(keys.size() == key_set.size()); + for (auto &key : keys) { + D_ASSERT(key_set.find(key) != key_set.end()); } #endif } - //! The keys that define the unique constraint - vector keys; - //! The same keys but stored as an unordered set - logical_index_set_t key_set; - //! Whether or not the unique constraint is a primary key + //! The keys that define the unique constraint. + vector keys; + //! The same keys but stored as an unordered set. + physical_index_set_t key_set; + //! Whether this is a PRIMARY KEY constraint, or a UNIQUE constraint. bool is_primary_key; }; diff --git a/src/duckdb/src/include/duckdb/planner/expression.hpp b/src/duckdb/src/include/duckdb/planner/expression.hpp index a7f9045f..97094bbd 100644 --- a/src/duckdb/src/include/duckdb/planner/expression.hpp +++ b/src/duckdb/src/include/duckdb/planner/expression.hpp @@ -32,10 +32,12 @@ class Expression : public BaseExpression { bool HasSubquery() const override; bool IsScalar() const override; bool HasParameter() const override; + virtual bool IsVolatile() const; virtual bool IsConsistent() const; virtual bool PropagatesNullValues() const; virtual bool IsFoldable() const; + virtual bool CanThrow() const; hash_t Hash() const override; diff --git a/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp b/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp index d45ac502..c625fb4f 100644 --- a/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp +++ b/src/duckdb/src/include/duckdb/planner/expression/bound_cast_expression.hpp @@ -54,6 +54,8 @@ class BoundCastExpression : public Expression { unique_ptr Copy() const override; + bool CanThrow() const override; + void Serialize(Serializer &serializer) const override; static unique_ptr Deserialize(Deserializer &deserializer); diff --git a/src/duckdb/src/include/duckdb/planner/expression_binder.hpp b/src/duckdb/src/include/duckdb/planner/expression_binder.hpp index 8bdb03b8..c73ea546 100644 --- a/src/duckdb/src/include/duckdb/planner/expression_binder.hpp +++ b/src/duckdb/src/include/duckdb/planner/expression_binder.hpp @@ -21,6 +21,8 @@ #include "duckdb/catalog/catalog_entry_retriever.hpp" #include "duckdb/planner/expression/bound_lambda_expression.hpp" #include "duckdb/function/scalar_function.hpp" +#include "duckdb/planner/column_binding.hpp" +#include "duckdb/common/enums/collation_type.hpp" namespace duckdb { @@ -106,7 +108,7 @@ class ExpressionBinder { //! Returns a qualified column reference from a column reference with column_names.size() > 2 unique_ptr QualifyColumnNameWithManyDots(ColumnRefExpression &col_ref, ErrorData &error); //! Returns a qualified column reference from a column reference - unique_ptr QualifyColumnName(ColumnRefExpression &col_ref, ErrorData &error); + virtual unique_ptr QualifyColumnName(ColumnRefExpression &col_ref, ErrorData &error); //! Enables special-handling of lambda parameters by tracking them in the lambda_params vector void QualifyColumnNamesInLambda(FunctionExpression &function, vector> &lambda_params); //! Recursively qualifies the column references in the (children) of the expression. Passes on the @@ -115,8 +117,10 @@ class ExpressionBinder { const bool within_function_expression = false); //! Entry point for qualifying the column references of the expression static void QualifyColumnNames(Binder &binder, unique_ptr &expr); + static void QualifyColumnNames(ExpressionBinder &binder, unique_ptr &expr); - static bool PushCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type); + static bool PushCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type, + CollationType type = CollationType::ALL_COLLATIONS); static void TestCollation(ClientContext &context, const string &collation); BindResult BindCorrelatedColumns(unique_ptr &expr, ErrorData error_message); @@ -219,6 +223,10 @@ class ExpressionBinder { //! Returns true if the function name is an alias for the UNNEST function static bool IsUnnestFunction(const string &function_name); BindResult TryBindLambdaOrJson(FunctionExpression &function, idx_t depth, CatalogEntry &func); + + unique_ptr QualifyColumnNameWithManyDotsInternal(ColumnRefExpression &col_ref, ErrorData &error, + idx_t &struct_extract_start); + virtual void ThrowIfUnnestInLambda(const ColumnBinding &column_binding); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp b/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp index 4cb65dab..b111cc36 100644 --- a/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp +++ b/src/duckdb/src/include/duckdb/planner/expression_binder/having_binder.hpp @@ -25,6 +25,8 @@ class HavingBinder : public BaseSelectBinder { BindResult BindWindow(WindowExpression &expr, idx_t depth) override; BindResult BindColumnRef(unique_ptr &expr_ptr, idx_t depth, bool root_expression) override; + unique_ptr QualifyColumnName(ColumnRefExpression &col_ref, ErrorData &error) override; + private: ColumnAliasBinder column_alias_binder; AggregateHandling aggregate_handling; diff --git a/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp b/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp index 0d2ac67f..b15948b3 100644 --- a/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp +++ b/src/duckdb/src/include/duckdb/planner/expression_binder/index_binder.hpp @@ -10,22 +10,25 @@ #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp" #include "duckdb/common/unordered_map.hpp" -#include "duckdb/parser/parsed_data/create_index_info.hpp" -#include "duckdb/planner/expression_binder.hpp" #include "duckdb/execution/index/bound_index.hpp" #include "duckdb/execution/index/unbound_index.hpp" +#include "duckdb/parser/parsed_data/create_index_info.hpp" +#include "duckdb/planner/expression_binder.hpp" namespace duckdb { class BoundColumnRefExpression; -//! The IndexBinder is responsible for binding indexes, as well as expressions within an index statement +//! The IndexBinder binds indexes and expressions within index statements. class IndexBinder : public ExpressionBinder { public: IndexBinder(Binder &binder, ClientContext &context, optional_ptr table = nullptr, optional_ptr info = nullptr); unique_ptr BindIndex(const UnboundIndex &index); + unique_ptr BindCreateIndex(ClientContext &context, unique_ptr create_index_info, + TableCatalogEntry &table_entry, unique_ptr plan, + unique_ptr alter_table_info); protected: BindResult BindExpression(unique_ptr &expr_ptr, idx_t depth, @@ -33,7 +36,7 @@ class IndexBinder : public ExpressionBinder { string UnsupportedAggregateMessage() override; private: - // only for WAL replay + // Only for WAL replay. optional_ptr table; optional_ptr info; }; diff --git a/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp b/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp index df8365cc..b2838c19 100644 --- a/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp +++ b/src/duckdb/src/include/duckdb/planner/expression_binder/order_binder.hpp @@ -37,6 +37,9 @@ class OrderBinder { unique_ptr CreateExtraReference(unique_ptr expr); + //! Sets the query component, for error messages + void SetQueryComponent(string component = string()); + private: unique_ptr CreateProjectionReference(ParsedExpression &expr, const idx_t index); unique_ptr BindConstant(ParsedExpression &expr); @@ -46,6 +49,7 @@ class OrderBinder { vector> binders; optional_ptr>> extra_list; SelectBindState &bind_state; + string query_component = "ORDER BY"; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp b/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp index 995ed029..d191cd3e 100644 --- a/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp +++ b/src/duckdb/src/include/duckdb/planner/expression_binder/select_binder.hpp @@ -18,6 +18,7 @@ class SelectBinder : public BaseSelectBinder { SelectBinder(Binder &binder, ClientContext &context, BoundSelectNode &node, BoundGroupInformation &info); protected: + void ThrowIfUnnestInLambda(const ColumnBinding &column_binding) override; BindResult BindUnnest(FunctionExpression &function, idx_t depth, bool root_expression) override; BindResult BindColumnRef(unique_ptr &expr_ptr, idx_t depth, bool root_expression) override; diff --git a/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp b/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp index 1713ad67..49fcf6e9 100644 --- a/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp +++ b/src/duckdb/src/include/duckdb/planner/filter/conjunction_filter.hpp @@ -12,6 +12,7 @@ #include "duckdb/common/vector.hpp" namespace duckdb { + class ConjunctionFilter : public TableFilter { public: explicit ConjunctionFilter(TableFilterType filter_type_p) : TableFilter(filter_type_p) { @@ -35,8 +36,6 @@ class ConjunctionOrFilter : public ConjunctionFilter { public: ConjunctionOrFilter(); - -public: FilterPropagateResult CheckStatistics(BaseStatistics &stats) override; string ToString(const string &column_name) override; bool Equals(const TableFilter &other) const override; diff --git a/src/duckdb/src/include/duckdb/planner/filter/dynamic_filter.hpp b/src/duckdb/src/include/duckdb/planner/filter/dynamic_filter.hpp new file mode 100644 index 00000000..fbb32faf --- /dev/null +++ b/src/duckdb/src/include/duckdb/planner/filter/dynamic_filter.hpp @@ -0,0 +1,48 @@ + +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/planner/filter/dynamic_filter.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/planner/table_filter.hpp" +#include "duckdb/common/types/value.hpp" +#include "duckdb/common/enums/expression_type.hpp" + +namespace duckdb { + +struct DynamicFilterData { + mutex lock; + unique_ptr filter; + bool initialized = false; + + void SetValue(Value val); + void Reset(); +}; + +class DynamicFilter : public TableFilter { +public: + static constexpr const TableFilterType TYPE = TableFilterType::DYNAMIC_FILTER; + +public: + DynamicFilter(); + explicit DynamicFilter(shared_ptr filter_data); + + //! The shared, dynamic filter data + shared_ptr filter_data; + +public: + FilterPropagateResult CheckStatistics(BaseStatistics &stats) override; + string ToString(const string &column_name) override; + bool Equals(const TableFilter &other) const override; + unique_ptr Copy() const override; + unique_ptr ToExpression(const Expression &column) const override; + void Serialize(Serializer &serializer) const override; + static unique_ptr Deserialize(Deserializer &deserializer); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/filter/in_filter.hpp b/src/duckdb/src/include/duckdb/planner/filter/in_filter.hpp new file mode 100644 index 00000000..c9028ed5 --- /dev/null +++ b/src/duckdb/src/include/duckdb/planner/filter/in_filter.hpp @@ -0,0 +1,35 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/planner/filter/in_filter.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/planner/table_filter.hpp" +#include "duckdb/common/types/value.hpp" + +namespace duckdb { + +class InFilter : public TableFilter { +public: + static constexpr const TableFilterType TYPE = TableFilterType::IN_FILTER; + +public: + explicit InFilter(vector values); + + vector values; + +public: + FilterPropagateResult CheckStatistics(BaseStatistics &stats) override; + string ToString(const string &column_name) override; + bool Equals(const TableFilter &other) const override; + unique_ptr Copy() const override; + unique_ptr ToExpression(const Expression &column) const override; + void Serialize(Serializer &serializer) const override; + static unique_ptr Deserialize(Deserializer &deserializer); +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/filter/optional_filter.hpp b/src/duckdb/src/include/duckdb/planner/filter/optional_filter.hpp new file mode 100644 index 00000000..d694674d --- /dev/null +++ b/src/duckdb/src/include/duckdb/planner/filter/optional_filter.hpp @@ -0,0 +1,35 @@ + +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/planner/filter/optional_filter.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/planner/table_filter.hpp" + +namespace duckdb { + +class OptionalFilter : public TableFilter { +public: + static constexpr const TableFilterType TYPE = TableFilterType::OPTIONAL_FILTER; + +public: + explicit OptionalFilter(unique_ptr filter = nullptr); + + string ToString(const string &column_name) override; + unique_ptr Copy() const override; + unique_ptr ToExpression(const Expression &column) const override; + FilterPropagateResult CheckStatistics(BaseStatistics &stats) override; + void Serialize(Serializer &serializer) const override; + static unique_ptr Deserialize(Deserializer &deserializer); + +public: + // optional child filters + unique_ptr child_filter; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/logical_operator.hpp b/src/duckdb/src/include/duckdb/planner/logical_operator.hpp index b0611f7e..e7f533bd 100644 --- a/src/duckdb/src/include/duckdb/planner/logical_operator.hpp +++ b/src/duckdb/src/include/duckdb/planner/logical_operator.hpp @@ -80,6 +80,10 @@ class LogicalOperator { return true; }; + virtual bool HasProjectionMap() const { + return false; + } + //! Returns the set of table indexes of this operator virtual vector GetTableIndex() const; diff --git a/src/duckdb/src/include/duckdb/planner/logical_operator_visitor.hpp b/src/duckdb/src/include/duckdb/planner/logical_operator_visitor.hpp index ff0fd75d..b11065f6 100644 --- a/src/duckdb/src/include/duckdb/planner/logical_operator_visitor.hpp +++ b/src/duckdb/src/include/duckdb/planner/logical_operator_visitor.hpp @@ -35,6 +35,9 @@ class LogicalOperatorVisitor { //! Automatically calls the Visit method for Expression children of the current operator. Can be overloaded to //! change this behavior. void VisitOperatorExpressions(LogicalOperator &op); + //! Alternatives for VisitOperatorChildren for operators that have a projection map + void VisitOperatorWithProjectionMapChildren(LogicalOperator &op); + void VisitChildOfOperatorWithProjectionMap(LogicalOperator &child, vector &projection_map); // The VisitExpressionChildren method is called at the end of every call to VisitExpression to recursively visit all // expressions in an expression tree. It can be overloaded to prevent automatically visiting the entire tree. diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp index fd095f53..e361a2a6 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_comparison_join.hpp @@ -70,6 +70,8 @@ class LogicalComparisonJoin : public LogicalJoin { const unordered_set &right_bindings, vector> &expressions, vector &conditions, vector> &arbitrary_expressions); + + bool HasEquality(idx_t &range_count) const; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp index e9925cb4..2f04c7ee 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_create_index.hpp @@ -20,15 +20,15 @@ class LogicalCreateIndex : public LogicalOperator { public: LogicalCreateIndex(unique_ptr info_p, vector> expressions_p, - TableCatalogEntry &table_p); + TableCatalogEntry &table_p, unique_ptr alter_table_info = nullptr); - // Info for index creation + //! Index creation information. unique_ptr info; - - //! The table to create the index for + //! The table to create the index for. TableCatalogEntry &table; - - //! Unbound expressions to be used in the optimizer + // Alter table information. + unique_ptr alter_table_info; + //! Unbound expressions of the indexed columns. vector> unbound_expressions; public: @@ -39,8 +39,8 @@ class LogicalCreateIndex : public LogicalOperator { void ResolveTypes() override; private: - LogicalCreateIndex(ClientContext &context, unique_ptr info, vector> expressions); - - TableCatalogEntry &BindTable(ClientContext &context, CreateIndexInfo &info); + LogicalCreateIndex(ClientContext &context, unique_ptr info, vector> expressions, + unique_ptr alter_info); + TableCatalogEntry &BindTable(ClientContext &context, CreateIndexInfo &info_p); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp index 28a3686f..2115f09f 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_export.hpp @@ -20,26 +20,23 @@ class LogicalExport : public LogicalOperator { static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_EXPORT; public: - LogicalExport(CopyFunction function, unique_ptr copy_info, BoundExportData exported_tables) - : LogicalOperator(LogicalOperatorType::LOGICAL_EXPORT), function(std::move(function)), - copy_info(std::move(copy_info)), exported_tables(std::move(exported_tables)) { - } - CopyFunction function; + LogicalExport(CopyFunction function, unique_ptr copy_info, unique_ptr exported_tables); + unique_ptr copy_info; - BoundExportData exported_tables; + CopyFunction function; + unique_ptr exported_tables; - void Serialize(Serializer &serializer) const override { - throw NotImplementedException("FIXME: Serialize LogicalExport statement"); - } - unique_ptr Deserialize(Deserializer &deserializer) { - throw NotImplementedException("FIXME: Deserialize LogicalExport statement"); - } + void Serialize(Serializer &serializer) const override; + static unique_ptr Deserialize(Deserializer &deserializer); -public: protected: + LogicalExport(ClientContext &context, unique_ptr copy_info, unique_ptr exported_tables); + void ResolveTypes() override { types.emplace_back(LogicalType::BOOLEAN); } + + CopyFunction GetCopyFunction(ClientContext &context, CopyInfo &info); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp index acd5771b..b6f8323a 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_filter.hpp @@ -26,6 +26,10 @@ class LogicalFilter : public LogicalOperator { public: vector GetColumnBindings() override; + bool HasProjectionMap() const override { + return !projection_map.empty(); + } + void Serialize(Serializer &serializer) const override; static unique_ptr Deserialize(Deserializer &deserializer); diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp index 07af9e2e..993863c1 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_get.hpp @@ -49,8 +49,9 @@ class LogicalGet : public LogicalOperator { vector input_table_names; //! For a table-in-out function, the set of projected input columns vector projected_input; - //! Currently stores File Filters (as strings) applied by hive partitioning/complex filter pushdown - //! Stored so they can be included in explain output + //! Currently stores File Filters (as strings) applied by hive partitioning/complex filter pushdown and sample rate + //! pushed down into the table scan + //! Stored so the can be included in explain output ExtraOperatorInfo extra_info; //! Contains a reference to dynamically generated table filters (through e.g. a join up in the tree) shared_ptr dynamic_filters; @@ -61,11 +62,11 @@ class LogicalGet : public LogicalOperator { optional_ptr GetTable() const; public: - void SetColumnIds(vector &&column_ids); + void SetColumnIds(vector &&column_ids); void AddColumnId(column_t column_id); void ClearColumnIds(); - const vector &GetColumnIds() const; - vector &GetMutableColumnIds(); + const vector &GetColumnIds() const; + vector &GetMutableColumnIds(); vector GetColumnBindings() override; idx_t EstimateCardinality(ClientContext &context) override; @@ -86,6 +87,6 @@ class LogicalGet : public LogicalOperator { private: //! Bound column IDs - vector column_ids; + vector column_ids; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp index a6a63de6..9e278886 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_join.hpp @@ -27,6 +27,10 @@ class LogicalJoin : public LogicalOperator { static void GetTableReferences(LogicalOperator &op, unordered_set &bindings); static void GetExpressionBindings(Expression &expr, unordered_set &bindings); + bool HasProjectionMap() const override { + return !left_projection_map.empty() || !right_projection_map.empty(); + } + //! The type of the join (INNER, OUTER, etc...) JoinType join_type; //! Table index used to refer to the MARK column (in case of a MARK join) diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp index c16193ff..a7bdf50d 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_order.hpp @@ -24,11 +24,15 @@ class LogicalOrder : public LogicalOperator { explicit LogicalOrder(vector orders); vector orders; - vector projections; + vector projection_map; public: vector GetColumnBindings() override; + bool HasProjectionMap() const override { + return !projection_map.empty(); + } + void Serialize(Serializer &serializer) const override; static unique_ptr Deserialize(Deserializer &deserializer); diff --git a/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp b/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp index cc19ea6b..6a2f38ab 100644 --- a/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp +++ b/src/duckdb/src/include/duckdb/planner/operator/logical_top_n.hpp @@ -12,6 +12,7 @@ #include "duckdb/planner/logical_operator.hpp" namespace duckdb { +struct DynamicFilterData; //! LogicalTopN represents a comibination of ORDER BY and LIMIT clause, using Min/Max Heap class LogicalTopN : public LogicalOperator { @@ -19,15 +20,16 @@ class LogicalTopN : public LogicalOperator { static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_TOP_N; public: - LogicalTopN(vector orders, idx_t limit, idx_t offset) - : LogicalOperator(LogicalOperatorType::LOGICAL_TOP_N), orders(std::move(orders)), limit(limit), offset(offset) { - } + LogicalTopN(vector orders, idx_t limit, idx_t offset); + ~LogicalTopN() override; vector orders; //! The maximum amount of elements to emit idx_t limit; //! The offset from the start to begin emitting elements idx_t offset; + //! Dynamic table filter (if any) + shared_ptr dynamic_filter; public: vector GetColumnBindings() override { diff --git a/src/duckdb/src/include/duckdb/planner/table_binding.hpp b/src/duckdb/src/include/duckdb/planner/table_binding.hpp index 551ab9b0..4b9030b4 100644 --- a/src/duckdb/src/include/duckdb/planner/table_binding.hpp +++ b/src/duckdb/src/include/duckdb/planner/table_binding.hpp @@ -14,6 +14,8 @@ #include "duckdb/parser/parsed_expression.hpp" #include "duckdb/planner/expression_binder.hpp" #include "duckdb/catalog/catalog_entry/table_column_type.hpp" +#include "duckdb/planner/binding_alias.hpp" +#include "duckdb/common/column_index.hpp" namespace duckdb { class BindContext; @@ -31,14 +33,13 @@ enum class BindingType { BASE, TABLE, DUMMY, CATALOG_ENTRY }; //! A Binding represents a binding to a table, table-producing function or subquery with a specified table index. struct Binding { - Binding(BindingType binding_type, const string &alias, vector types, vector names, - idx_t index); + Binding(BindingType binding_type, BindingAlias alias, vector types, vector names, idx_t index); virtual ~Binding() = default; //! The type of Binding BindingType binding_type; //! The alias of the binding - string alias; + BindingAlias alias; //! The table index of the binding idx_t index; //! The types of the bound columns @@ -55,6 +56,10 @@ struct Binding { virtual ErrorData ColumnNotFoundError(const string &column_name) const; virtual BindResult Bind(ColumnRefExpression &colref, idx_t depth); virtual optional_ptr GetStandardEntry(); + string GetAlias() const; + + static BindingAlias GetAlias(const string &explicit_alias, const StandardEntry &entry); + static BindingAlias GetAlias(const string &explicit_alias, optional_ptr entry); public: template @@ -95,11 +100,11 @@ struct TableBinding : public Binding { public: TableBinding(const string &alias, vector types, vector names, - vector &bound_column_ids, optional_ptr entry, idx_t index, + vector &bound_column_ids, optional_ptr entry, idx_t index, bool add_row_id = false); //! A reference to the set of bound column ids - vector &bound_column_ids; + vector &bound_column_ids; //! The underlying catalog entry (if any) optional_ptr entry; @@ -109,7 +114,7 @@ struct TableBinding : public Binding { optional_ptr GetStandardEntry() override; ErrorData ColumnNotFoundError(const string &column_name) const override; // These are columns that are present in the name_map, appearing in the order that they're bound - const vector &GetBoundColumnIds() const; + const vector &GetBoundColumnIds() const; protected: ColumnBinding GetColumnBinding(column_t column_index); diff --git a/src/duckdb/src/include/duckdb/planner/table_filter.hpp b/src/duckdb/src/include/duckdb/planner/table_filter.hpp index ab4d754c..b39d529b 100644 --- a/src/duckdb/src/include/duckdb/planner/table_filter.hpp +++ b/src/duckdb/src/include/duckdb/planner/table_filter.hpp @@ -15,6 +15,7 @@ #include "duckdb/common/types.hpp" #include "duckdb/common/unordered_map.hpp" #include "duckdb/planner/column_binding.hpp" +#include "duckdb/common/column_index.hpp" namespace duckdb { class BaseStatistics; @@ -24,11 +25,14 @@ class PhysicalTableScan; enum class TableFilterType : uint8_t { CONSTANT_COMPARISON = 0, // constant comparison (e.g. =C, >C, >=C, Copy() const = 0; virtual bool Equals(const TableFilter &other) const { return filter_type != other.filter_type; @@ -58,7 +63,7 @@ class TableFilter { template TARGET &Cast() { if (filter_type != TARGET::TYPE) { - throw InternalException("Failed to cast table to type - table filter type mismatch"); + throw InternalException("Failed to cast to type - table filter type mismatch"); } return reinterpret_cast(*this); } @@ -66,7 +71,7 @@ class TableFilter { template const TARGET &Cast() const { if (filter_type != TARGET::TYPE) { - throw InternalException("Failed to cast table to type - table filter type mismatch"); + throw InternalException("Failed to cast to type - table filter type mismatch"); } return reinterpret_cast(*this); } @@ -77,7 +82,7 @@ class TableFilterSet { unordered_map> filters; public: - void PushFilter(idx_t column_index, unique_ptr filter); + void PushFilter(const ColumnIndex &col_idx, unique_ptr filter); bool Equals(TableFilterSet &other) { if (filters.size() != other.filters.size()) { diff --git a/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp b/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp index dc778907..d76aeccb 100644 --- a/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp +++ b/src/duckdb/src/include/duckdb/storage/arena_allocator.hpp @@ -25,6 +25,7 @@ struct ArenaChunk { }; class ArenaAllocator { +public: static constexpr const idx_t ARENA_ALLOCATOR_INITIAL_CAPACITY = 2048; static constexpr const idx_t ARENA_ALLOCATOR_MAX_CAPACITY = 1ULL << 24ULL; // 16MB diff --git a/src/duckdb/src/include/duckdb/storage/block_manager.hpp b/src/duckdb/src/include/duckdb/storage/block_manager.hpp index 7e73f037..d93f417d 100644 --- a/src/duckdb/src/include/duckdb/storage/block_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/block_manager.hpp @@ -17,6 +17,7 @@ namespace duckdb { class BlockHandle; +class BufferHandle; class BufferManager; class ClientContext; class DatabaseInstance; @@ -86,6 +87,8 @@ class BlockManager { //! Register a block with the given block id in the base file shared_ptr RegisterBlock(block_id_t block_id); //! Convert an existing in-memory buffer into a persistent disk-backed block + shared_ptr ConvertToPersistent(block_id_t block_id, shared_ptr old_block, + BufferHandle old_handle); shared_ptr ConvertToPersistent(block_id_t block_id, shared_ptr old_block); void UnregisterBlock(BlockHandle &block); diff --git a/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp b/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp index be1128fa..1f7970d5 100644 --- a/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp +++ b/src/duckdb/src/include/duckdb/storage/buffer/block_handle.hpp @@ -15,6 +15,7 @@ #include "duckdb/common/file_buffer.hpp" #include "duckdb/common/mutex.hpp" #include "duckdb/common/numeric_utils.hpp" +#include "duckdb/common/optional_idx.hpp" #include "duckdb/storage/storage_info.hpp" namespace duckdb { @@ -54,15 +55,9 @@ struct TempBufferPoolReservation : BufferPoolReservation { } }; -class BlockHandle : public enable_shared_from_this { - friend class BlockManager; - friend struct BufferEvictionNode; - friend class BufferHandle; - friend class BufferManager; - friend class StandardBufferManager; - friend class BufferPool; - friend struct EvictionQueue; +using BlockLock = unique_lock; +class BlockHandle : public enable_shared_from_this { public: BlockHandle(BlockManager &block_manager, block_id_t block_id, MemoryTag tag); BlockHandle(BlockManager &block_manager, block_id_t block_id, MemoryTag tag, unique_ptr buffer, @@ -72,21 +67,24 @@ class BlockHandle : public enable_shared_from_this { BlockManager &block_manager; public: - block_id_t BlockId() { + block_id_t BlockId() const { return block_id; } - void ResizeBuffer(idx_t block_size, int64_t memory_delta) { - D_ASSERT(buffer); - // resize and adjust current memory - buffer->Resize(block_size); - memory_usage = NumericCast(NumericCast(memory_usage) + memory_delta); - D_ASSERT(memory_usage == buffer->AllocSize()); + idx_t EvictionSequenceNumber() const { + return eviction_seq_num; + } + + idx_t NextEvictionSequenceNumber() { + return ++eviction_seq_num; } int32_t Readers() const { return readers; } + int32_t DecrementReaders() { + return --readers; + } inline bool IsSwizzled() const { return !unswizzled; @@ -101,7 +99,6 @@ class BlockHandle : public enable_shared_from_this { } inline void SetDestroyBufferUpon(DestroyBufferUpon destroy_buffer_upon_p) { - lock_guard guard(lock); destroy_buffer_upon = destroy_buffer_upon_p; } @@ -113,20 +110,75 @@ class BlockHandle : public enable_shared_from_this { return destroy_buffer_upon == DestroyBufferUpon::BLOCK; } - inline const idx_t &GetMemoryUsage() const { + inline idx_t GetMemoryUsage() const { return memory_usage; } - bool IsUnloaded() { + + bool IsUnloaded() const { return state == BlockState::BLOCK_UNLOADED; } -private: + void SetEvictionQueueIndex(const idx_t index) { + // can only be set once + D_ASSERT(eviction_queue_idx == DConstants::INVALID_INDEX); + // MANAGED_BUFFER only (at least, for now) + D_ASSERT(GetBufferType() == FileBufferType::MANAGED_BUFFER); + eviction_queue_idx = index; + } + + idx_t GetEvictionQueueIndex() const { + return eviction_queue_idx; + } + + FileBufferType GetBufferType() const { + return buffer_type; + } + + BlockState GetState() const { + return state; + } + + int64_t GetLRUTimestamp() const { + return lru_timestamp_msec; + } + + void SetLRUTimestamp(int64_t timestamp_msec) { + lru_timestamp_msec = timestamp_msec; + } + + BlockLock GetLock() { + return BlockLock(lock); + } + + //! Gets a reference to the buffer - the lock must be held + unique_ptr &GetBuffer(BlockLock &l); + + void ChangeMemoryUsage(BlockLock &l, int64_t delta); + BufferPoolReservation &GetMemoryCharge(BlockLock &l); + //! Merge a new memory reservation + void MergeMemoryReservation(BlockLock &, BufferPoolReservation reservation); + //! Resize the memory allocation + void ResizeMemory(BlockLock &, idx_t alloc_size); + + //! Resize the actual buffer + void ResizeBuffer(BlockLock &, idx_t block_size, int64_t memory_delta); BufferHandle Load(unique_ptr buffer = nullptr); - BufferHandle LoadFromBuffer(data_ptr_t data, unique_ptr reusable_buffer); - unique_ptr UnloadAndTakeBlock(); - void Unload(); - bool CanUnload(); + BufferHandle LoadFromBuffer(BlockLock &l, data_ptr_t data, unique_ptr reusable_buffer, + BufferPoolReservation reservation); + unique_ptr UnloadAndTakeBlock(BlockLock &); + void Unload(BlockLock &); + + //! Returns whether or not the block can be unloaded + //! Note that while this method does not require a lock, whether or not a block can be unloaded can change if the + //! lock is not held + bool CanUnload() const; + void ConvertToPersistent(BlockLock &, BlockHandle &new_block, unique_ptr new_buffer); + +private: + void VerifyMutex(unique_lock &l) const; + +private: //! The block-level lock mutex lock; //! Whether or not the block is loaded/unloaded @@ -136,7 +188,9 @@ class BlockHandle : public enable_shared_from_this { //! The block id of the block const block_id_t block_id; //! Memory tag - MemoryTag tag; + const MemoryTag tag; + //! File buffer type + const FileBufferType buffer_type; //! Pointer to loaded data (if any) unique_ptr buffer; //! Internal eviction sequence number @@ -144,14 +198,16 @@ class BlockHandle : public enable_shared_from_this { //! LRU timestamp (for age-based eviction) atomic lru_timestamp_msec; //! When to destroy the data buffer - DestroyBufferUpon destroy_buffer_upon; + atomic destroy_buffer_upon; //! The memory usage of the block (when loaded). If we are pinning/loading //! an unloaded block, this tells us how much memory to reserve. - idx_t memory_usage; + atomic memory_usage; //! Current memory reservation / usage BufferPoolReservation memory_charge; //! Does the block contain any memory pointers? const char *unswizzled; + //! Index for eviction queue (FileBufferType::MANAGED_BUFFER only, for now) + atomic eviction_queue_idx; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/buffer/buffer_handle.hpp b/src/duckdb/src/include/duckdb/storage/buffer/buffer_handle.hpp index 8895cff4..32ae0ee5 100644 --- a/src/duckdb/src/include/duckdb/storage/buffer/buffer_handle.hpp +++ b/src/duckdb/src/include/duckdb/storage/buffer/buffer_handle.hpp @@ -18,7 +18,7 @@ class FileBuffer; class BufferHandle { public: DUCKDB_API BufferHandle(); - DUCKDB_API explicit BufferHandle(shared_ptr handle); + DUCKDB_API explicit BufferHandle(shared_ptr handle, optional_ptr node); DUCKDB_API ~BufferHandle(); // disable copy constructors BufferHandle(const BufferHandle &other) = delete; diff --git a/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp b/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp index 955f1aa4..f4548e43 100644 --- a/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp +++ b/src/duckdb/src/include/duckdb/storage/buffer/buffer_pool.hpp @@ -50,6 +50,7 @@ class BufferPool { //! If bulk deallocation larger than this occurs, flush outstanding allocations void SetAllocatorBulkDeallocationFlushThreshold(idx_t threshold); + idx_t GetAllocatorBulkDeallocationFlushThreshold(); void UpdateUsedMemory(MemoryTag tag, int64_t size); @@ -81,14 +82,21 @@ class BufferPool { idx_t PurgeAgedBlocks(uint32_t max_age_sec); idx_t PurgeAgedBlocksInternal(EvictionQueue &queue, uint32_t max_age_sec, int64_t now, int64_t limit); //! Garbage collect dead nodes in the eviction queue. - void PurgeQueue(FileBufferType type); + void PurgeQueue(const BlockHandle &handle); //! Add a buffer handle to the eviction queue. Returns true, if the queue is //! ready to be purged, and false otherwise. bool AddToEvictionQueue(shared_ptr &handle); //! Gets the eviction queue for the specified type - EvictionQueue &GetEvictionQueueForType(FileBufferType type); + EvictionQueue &GetEvictionQueueForBlockHandle(const BlockHandle &handle); //! Increments the dead nodes for the queue with specified type - void IncrementDeadNodes(FileBufferType type); + void IncrementDeadNodes(const BlockHandle &handle); + + //! How many eviction queues we have for the different FileBufferTypes + static constexpr idx_t BLOCK_QUEUE_SIZE = 1; + static constexpr idx_t MANAGED_BUFFER_QUEUE_SIZE = 6; + static constexpr idx_t TINY_BUFFER_QUEUE_SIZE = 1; + //! Mapping and priority order for the eviction queues + const array eviction_queue_sizes; protected: enum class MemoryUsageCaches { diff --git a/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp b/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp index e2a3b95e..f497aa1d 100644 --- a/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/buffer_manager.hpp @@ -59,6 +59,7 @@ class BufferManager { virtual shared_ptr RegisterTransientMemory(const idx_t size, const idx_t block_size); //! Returns a new block of memory that is smaller than the block size setting. virtual shared_ptr RegisterSmallMemory(const idx_t size); + virtual shared_ptr RegisterSmallMemory(MemoryTag tag, const idx_t size); virtual DUCKDB_API Allocator &GetBufferAllocator(); virtual DUCKDB_API void ReserveMemory(idx_t size); @@ -98,7 +99,7 @@ class BufferManager { virtual TemporaryMemoryManager &GetTemporaryMemoryManager(); protected: - virtual void PurgeQueue(FileBufferType type) = 0; + virtual void PurgeQueue(const BlockHandle &handle) = 0; virtual void AddToEvictionQueue(shared_ptr &handle); virtual void WriteTemporaryBuffer(MemoryTag tag, block_id_t block_id, FileBuffer &buffer); virtual unique_ptr ReadTemporaryBuffer(MemoryTag tag, BlockHandle &block, diff --git a/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp b/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp index 59eb2efd..2b49a4cb 100644 --- a/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp +++ b/src/duckdb/src/include/duckdb/storage/checkpoint/string_checkpoint_state.hpp @@ -33,19 +33,6 @@ struct StringBlock { unique_ptr next; }; -struct string_location_t { // NOLINT - string_location_t(block_id_t block_id, int32_t offset) : block_id(block_id), offset(offset) { - } - string_location_t() { - } - bool IsValid(const idx_t block_size) { - auto cast_block_size = NumericCast(block_size); - return offset < cast_block_size && (block_id == INVALID_BLOCK || block_id >= MAXIMUM_BLOCK); - } - block_id_t block_id; - int32_t offset; -}; - struct UncompressedStringSegmentState : public CompressedSegmentState { ~UncompressedStringSegmentState() override; @@ -73,6 +60,10 @@ struct UncompressedStringSegmentState : public CompressedSegmentState { return "Overflow String Block Ids: " + result; } + vector GetAdditionalBlocks() const override { + return on_disk_blocks; + } + private: mutex block_lock; unordered_map> handles; diff --git a/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp b/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp index e22c52ee..167022df 100644 --- a/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp +++ b/src/duckdb/src/include/duckdb/storage/compression/alp/alp_compress.hpp @@ -93,8 +93,8 @@ struct AlpCompressionState : public CompressionState { auto &db = checkpointer.GetDatabase(); auto &type = checkpointer.GetType(); - auto compressed_segment = - ColumnSegment::CreateTransientSegment(db, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + auto compressed_segment = ColumnSegment::CreateTransientSegment(db, function, type, row_start, + info.GetBlockSize(), info.GetBlockSize()); current_segment = std::move(compressed_segment); current_segment->function = function; @@ -210,8 +210,7 @@ struct AlpCompressionState : public CompressionState { // Store the offset to the end of metadata (to be used as a backwards pointer in decoding) Store(NumericCast(total_segment_size), dataptr); - handle.Destroy(); - checkpoint_state.FlushSegment(std::move(current_segment), total_segment_size); + checkpoint_state.FlushSegment(std::move(current_segment), std::move(handle), total_segment_size); data_bytes_used = 0; vectors_flushed = 0; } diff --git a/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp b/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp index e4763d76..cf976617 100644 --- a/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp +++ b/src/duckdb/src/include/duckdb/storage/compression/alp/alp_constants.hpp @@ -19,7 +19,7 @@ class AlpConstants { static constexpr uint32_t RG_SAMPLES = 8; static constexpr uint16_t SAMPLES_PER_VECTOR = 32; // We calculate how many equidistant vector we must jump within a rowgroup - static constexpr uint32_t RG_SAMPLES_DUCKDB_JUMP = (STANDARD_ROW_GROUPS_SIZE / RG_SAMPLES) / STANDARD_VECTOR_SIZE; + static constexpr uint32_t RG_SAMPLES_DUCKDB_JUMP = (DEFAULT_ROW_GROUP_SIZE / RG_SAMPLES) / STANDARD_VECTOR_SIZE; static constexpr uint8_t HEADER_SIZE = sizeof(uint32_t); static constexpr uint8_t EXPONENT_SIZE = sizeof(uint8_t); diff --git a/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp b/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp index 4bf2cdb8..5bd1b7d0 100644 --- a/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp +++ b/src/duckdb/src/include/duckdb/storage/compression/alprd/alprd_compress.hpp @@ -103,8 +103,8 @@ struct AlpRDCompressionState : public CompressionState { auto &db = checkpointer.GetDatabase(); auto &type = checkpointer.GetType(); - auto compressed_segment = - ColumnSegment::CreateTransientSegment(db, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + auto compressed_segment = ColumnSegment::CreateTransientSegment(db, function, type, row_start, + info.GetBlockSize(), info.GetBlockSize()); compressed_segment->function = function; current_segment = std::move(compressed_segment); @@ -226,8 +226,7 @@ struct AlpRDCompressionState : public CompressionState { // Store the Dictionary memcpy((void *)dataptr, (void *)state.left_parts_dict, actual_dictionary_size_bytes); - handle.Destroy(); - checkpoint_state.FlushSegment(std::move(current_segment), total_segment_size); + checkpoint_state.FlushSegment(std::move(current_segment), std::move(handle), total_segment_size); data_bytes_used = 0; vectors_flushed = 0; } diff --git a/src/duckdb/src/include/duckdb/storage/compression/roaring/appender.hpp b/src/duckdb/src/include/duckdb/storage/compression/roaring/appender.hpp new file mode 100644 index 00000000..2928f2fd --- /dev/null +++ b/src/duckdb/src/include/duckdb/storage/compression/roaring/appender.hpp @@ -0,0 +1,115 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/storage/compression/roaring/appender.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/typedefs.hpp" +#include "duckdb/common/helper.hpp" +#include "duckdb/common/types/validity_mask.hpp" +#include "duckdb/common/types/vector.hpp" +#include "duckdb/storage/segment/uncompressed.hpp" +#include "duckdb/storage/compression/roaring/roaring.hpp" + +namespace duckdb { + +namespace roaring { + +template +struct RoaringStateAppender { +public: + RoaringStateAppender() = delete; + +public: + static void AppendBytes(STATE_TYPE &state, validity_t entry, idx_t bits) { + D_ASSERT(bits <= ValidityMask::BITS_PER_VALUE); + + idx_t full_bytes = bits / 8; + idx_t last_bits = bits % 8; + for (idx_t i = 0; i < full_bytes; i++) { + // Create a mask for the byte we care about (least to most significant byte) + auto bitmask = ValidityUncompressed::UPPER_MASKS[8] >> ((7 - i) * 8); + // Shift to the least significant bits so we can use it to index our bitmask table + auto array_index = static_cast((entry & bitmask) >> (i * 8)); + STATE_TYPE::HandleByte(state, array_index); + } + + if (DUCKDB_UNLIKELY(last_bits != 0)) { + auto bitmask = ValidityUncompressed::UPPER_MASKS[8] >> ((7 - full_bytes) * 8); + auto array_index = static_cast((entry & bitmask) >> (full_bytes * 8)); + STATE_TYPE::HandleRaggedByte(state, array_index, last_bits); + } + } + + static void AppendVector(STATE_TYPE &state, Vector &input, idx_t input_size) { + UnifiedVectorFormat unified; + input.ToUnifiedFormat(input_size, unified); + auto &validity = unified.validity; + + if (validity.AllValid()) { + // All bits are set implicitly + idx_t appended = 0; + while (appended < input_size) { + idx_t to_append = + MinValue(ROARING_CONTAINER_SIZE - STATE_TYPE::Count(state), input_size - appended); + STATE_TYPE::HandleAllValid(state, to_append); + if (STATE_TYPE::Count(state) == ROARING_CONTAINER_SIZE) { + STATE_TYPE::Flush(state); + } + appended += to_append; + } + } else { + // There is a validity mask + idx_t appended = 0; + while (appended < input_size) { + idx_t to_append = + MinValue(ROARING_CONTAINER_SIZE - STATE_TYPE::Count(state), input_size - appended); + + auto entry_count = to_append / ValidityMask::BITS_PER_VALUE; + for (idx_t entry_index = 0; entry_index < entry_count; entry_index++) { + // get the validity entry at this index + auto validity_entry = validity.GetValidityEntry(entry_index); + if (ValidityMask::AllValid(validity_entry)) { + // All bits are set + STATE_TYPE::HandleAllValid(state, ValidityMask::BITS_PER_VALUE); + } else if (ValidityMask::NoneValid(validity_entry)) { + // None of the bits are set + STATE_TYPE::HandleNoneValid(state, ValidityMask::BITS_PER_VALUE); + } else { + // Mixed set/unset bits + AppendBytes(state, validity_entry, ValidityMask::BITS_PER_VALUE); + } + } + + // Deal with a ragged end, when the validity entry isn't entirely used + idx_t remainder = to_append % ValidityMask::BITS_PER_VALUE; + if (DUCKDB_UNLIKELY(remainder != 0)) { + auto validity_entry = validity.GetValidityEntry(entry_count); + auto masked = validity_entry & ValidityUncompressed::LOWER_MASKS[remainder]; + if (masked == ValidityUncompressed::LOWER_MASKS[remainder]) { + // All bits are set + STATE_TYPE::HandleAllValid(state, remainder); + } else if (masked == 0) { + // None of the bits are set + STATE_TYPE::HandleNoneValid(state, remainder); + } else { + AppendBytes(state, validity_entry, remainder); + } + } + + if (STATE_TYPE::Count(state) == ROARING_CONTAINER_SIZE) { + STATE_TYPE::Flush(state); + } + appended += to_append; + } + } + } +}; + +} // namespace roaring + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/compression/roaring/roaring.hpp b/src/duckdb/src/include/duckdb/storage/compression/roaring/roaring.hpp new file mode 100644 index 00000000..86bb985d --- /dev/null +++ b/src/duckdb/src/include/duckdb/storage/compression/roaring/roaring.hpp @@ -0,0 +1,616 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/storage/compression/roaring/roaring.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/typedefs.hpp" +#include "duckdb/common/helper.hpp" +#include "duckdb/common/types/validity_mask.hpp" +#include "duckdb/common/types/vector.hpp" +#include "duckdb/function/compression_function.hpp" +#include "duckdb/storage/table/scan_state.hpp" + +namespace duckdb { +namespace roaring { + +//! Used for compressed runs/arrays +static constexpr uint16_t COMPRESSED_SEGMENT_SIZE = 256; +//! compresed segment size is 256, instead of division we can make use of shifting +static constexpr uint16_t COMPRESSED_SEGMENT_SHIFT_AMOUNT = 8; +//! The amount of values that are encoded per container +static constexpr idx_t ROARING_CONTAINER_SIZE = 2048; +static constexpr bool NULLS = true; +static constexpr bool NON_NULLS = false; +static constexpr uint16_t UNCOMPRESSED_SIZE = (ROARING_CONTAINER_SIZE / sizeof(validity_t)); +static constexpr uint16_t COMPRESSED_SEGMENT_COUNT = (ROARING_CONTAINER_SIZE / COMPRESSED_SEGMENT_SIZE); + +static constexpr uint16_t MAX_RUN_IDX = (UNCOMPRESSED_SIZE - COMPRESSED_SEGMENT_COUNT) / (sizeof(uint8_t) * 2); +static constexpr uint16_t MAX_ARRAY_IDX = (UNCOMPRESSED_SIZE - COMPRESSED_SEGMENT_COUNT) / (sizeof(uint8_t) * 1); +//! The value used to indicate that a container is a bitset container +static constexpr uint16_t BITSET_CONTAINER_SENTINEL_VALUE = MAX_ARRAY_IDX + 1; +static constexpr uint16_t COMPRESSED_ARRAY_THRESHOLD = 8; +static constexpr uint16_t COMPRESSED_RUN_THRESHOLD = 4; + +static constexpr uint16_t CONTAINER_TYPE_BITWIDTH = 2; +static constexpr uint16_t RUN_CONTAINER_SIZE_BITWIDTH = 7; +static constexpr uint16_t ARRAY_CONTAINER_SIZE_BITWIDTH = 8; + +//! This can be increased, but requires additional changes beyond just changing the constant +static_assert(MAX_RUN_IDX < NumericLimits::Maximum(), "The run size is encoded in a maximum of 8 bits"); + +//! This can be increased, but requires additional changes beyond just changing the constant +static_assert(BITSET_CONTAINER_SENTINEL_VALUE < NumericLimits::Maximum(), + "The array/bitset size is encoded in a maximum of 8 bits"); + +static_assert(ROARING_CONTAINER_SIZE % COMPRESSED_SEGMENT_SIZE == 0, + "The (maximum) container size has to be cleanly divisable by the segment size"); + +static_assert((1 << RUN_CONTAINER_SIZE_BITWIDTH) - 1 >= MAX_RUN_IDX, + "The bitwidth used to store the size of a run container has to be big enough to store the maximum size"); +static_assert( + (1 << ARRAY_CONTAINER_SIZE_BITWIDTH) - 1 >= MAX_ARRAY_IDX + 1, + "The bitwidth used to store the size of an array/bitset container has to be big enough to store the maximum size"); + +void SetInvalidRange(ValidityMask &result, idx_t start, idx_t end); + +struct RunContainerRLEPair { + uint16_t start; + uint16_t length; +}; + +enum class ContainerType : uint8_t { RUN_CONTAINER, ARRAY_CONTAINER, BITSET_CONTAINER }; + +struct ContainerMetadata { +public: + bool operator==(const ContainerMetadata &other) const { + if (container_type != other.container_type) { + return false; + } + if (count != other.count) { + return false; + } + if (nulls != other.nulls) { + return false; + } + return true; + } + + static ContainerMetadata CreateMetadata(uint16_t count, uint16_t array_null, uint16_t array_non_null, + uint16_t runs); + + static ContainerMetadata RunContainer(uint16_t runs) { + auto res = ContainerMetadata(); + res.container_type = ContainerType::RUN_CONTAINER; + res.nulls = true; + res.count = runs; + return res; + } + + static ContainerMetadata ArrayContainer(uint16_t array_size, bool nulls) { + auto res = ContainerMetadata(); + res.container_type = ContainerType::ARRAY_CONTAINER; + res.nulls = nulls; + res.count = array_size; + return res; + } + + static ContainerMetadata BitsetContainer(uint16_t container_size) { + auto res = ContainerMetadata(); + res.container_type = ContainerType::BITSET_CONTAINER; + res.nulls = true; + res.count = container_size; + return res; + } + +public: + idx_t GetDataSizeInBytes(idx_t container_size) const; + bool IsUncompressed() const { + return container_type == ContainerType::BITSET_CONTAINER; + } + bool IsRun() const { + return container_type == ContainerType::RUN_CONTAINER; + } + bool IsInverted() const { + return nulls; + } + bool IsArray() const { + return container_type == ContainerType::ARRAY_CONTAINER; + } + idx_t NumberOfRuns() const { + D_ASSERT(IsRun()); + return count; + } + idx_t Cardinality() const { + D_ASSERT(IsArray()); + return count; + } + +public: + ContainerType container_type; + //! Whether nulls are being encoded or non-nulls + bool nulls; + //! The amount (meaning depends on container_type) + uint16_t count; + +private: + ContainerMetadata() { + } +}; + +struct ContainerMetadataCollection { + static constexpr uint8_t IS_RUN_FLAG = 1 << 1; + static constexpr uint8_t IS_INVERTED_FLAG = 1 << 0; + +public: + ContainerMetadataCollection(); + +public: + void AddMetadata(ContainerMetadata metadata); + idx_t GetMetadataSizeForSegment() const; + idx_t GetMetadataSize(idx_t container_count, idx_t run_containers, idx_t array_containers) const; + idx_t GetRunContainerCount() const; + idx_t GetArrayAndBitsetContainerCount() const; + void FlushSegment(); + void Reset(); + // Write the metadata for the current segment + idx_t Serialize(data_ptr_t dest) const; + void Deserialize(data_ptr_t src, idx_t container_count); + +private: + void AddBitsetContainer(); + void AddArrayContainer(idx_t amount, bool is_inverted); + void AddRunContainer(idx_t amount, bool is_inverted); + void AddContainerType(bool is_run, bool is_inverted); + +public: + //! Encode for each container in the lower 2 bits if the container 'is_run' and 'is_inverted' + vector container_type; + //! Encode for each run container the length + vector number_of_runs; + //! Encode for each array/bitset container the length + vector cardinality; + + idx_t count_in_segment = 0; + idx_t runs_in_segment = 0; + idx_t arrays_in_segment = 0; +}; + +struct ContainerMetadataCollectionScanner { +public: + explicit ContainerMetadataCollectionScanner(ContainerMetadataCollection &collection); + +public: + ContainerMetadata GetNext(); + +public: + const ContainerMetadataCollection &collection; + idx_t array_idx = 0; + idx_t run_idx = 0; + idx_t idx = 0; +}; + +struct BitmaskTableEntry { + uint8_t first_bit_set : 1; + uint8_t last_bit_set : 1; + uint8_t valid_count : 6; + uint8_t run_count; +}; + +//===--------------------------------------------------------------------===// +// Analyze +//===--------------------------------------------------------------------===// +struct RoaringAnalyzeState : public AnalyzeState { +public: + explicit RoaringAnalyzeState(const CompressionInfo &info); + +public: + // RoaringStateAppender interface: + + static void HandleByte(RoaringAnalyzeState &state, uint8_t array_index); + static void HandleRaggedByte(RoaringAnalyzeState &state, uint8_t array_index, idx_t relevant_bits); + static void HandleAllValid(RoaringAnalyzeState &state, idx_t amount); + static void HandleNoneValid(RoaringAnalyzeState &state, idx_t amount); + static idx_t Count(RoaringAnalyzeState &state); + static void Flush(RoaringAnalyzeState &state); + +public: + ContainerMetadata GetResult(); + bool HasEnoughSpaceInSegment(idx_t required_space); + void FlushSegment(); + void FlushContainer(); + void Analyze(Vector &input, idx_t count); + +public: + unsafe_unique_array bitmask_table; + + //! Analyze phase + + //! The amount of set bits found + uint16_t one_count = 0; + //! The amount of unset bits found + uint16_t zero_count = 0; + //! The amount of runs (of 0's) so far + uint16_t run_count = 0; + //! Whether the last bit was set or not + bool last_bit_set; + //! The total amount of bits covered (one_count + zero_count) + uint16_t count = 0; + + //! Flushed analyze data + + //! The space used by the current segment + idx_t space_used = 0; + //! The total amount of segments to write + idx_t segment_count = 0; + //! The amount of values in the current segment; + idx_t current_count = 0; + //! The total amount of data to serialize + idx_t total_count = 0; + + //! The total amount of bytes used to compress the whole segment + idx_t total_size = 0; + //! The container metadata, determining the type of each container to use during compression + ContainerMetadataCollection metadata_collection; + vector container_metadata; +}; + +//===--------------------------------------------------------------------===// +// Compress +//===--------------------------------------------------------------------===// + +struct ContainerCompressionState { + using append_func_t = void (*)(ContainerCompressionState &, bool, uint16_t); + +public: + ContainerCompressionState(); + +public: + void Append(bool null, uint16_t amount = 1); + void OverrideArray(data_ptr_t destination, bool nulls, idx_t count); + void OverrideRun(data_ptr_t destination, idx_t count); + void OverrideUncompressed(data_ptr_t destination); + void Finalize(); + ContainerMetadata GetResult(); + void Reset(); + +public: + //! Buffered append state (we don't want to append every bit separately) + uint16_t length = 0; + bool last_bit_set; + + //! Total amount of values covered by the container + uint16_t appended_count = 0; + //! How many of the total are null + uint16_t null_count = 0; + bool last_is_null = false; + + RunContainerRLEPair *runs; + uint8_t *compressed_runs; + uint8_t *compressed_arrays[2]; + uint16_t *arrays[2]; + + //! The runs (for sequential nulls) + RunContainerRLEPair base_runs[COMPRESSED_RUN_THRESHOLD]; + //! The indices (for nulls | non-nulls) + uint16_t base_arrays[2][COMPRESSED_ARRAY_THRESHOLD]; + + uint16_t run_idx; + uint16_t array_idx[2]; + + uint8_t *array_counts[2]; + uint8_t *run_counts; + + uint8_t base_compressed_arrays[2][MAX_ARRAY_IDX]; + uint8_t base_compressed_runs[MAX_RUN_IDX * 2]; + uint8_t base_array_counts[2][COMPRESSED_SEGMENT_COUNT]; + uint8_t base_run_counts[COMPRESSED_SEGMENT_COUNT]; + + validity_t *uncompressed = nullptr; + //! Whether the state has been finalized + bool finalized = false; + //! The function called to append to the state + append_func_t append_function; +}; + +struct RoaringCompressState : public CompressionState { +public: + explicit RoaringCompressState(ColumnDataCheckpointer &checkpointer, unique_ptr analyze_state_p); + +public: + //! RoaringStateAppender interface + static void HandleByte(RoaringCompressState &state, uint8_t array_index); + static void HandleRaggedByte(RoaringCompressState &state, uint8_t array_index, idx_t relevant_bits); + static void HandleAllValid(RoaringCompressState &state, idx_t amount); + static void HandleNoneValid(RoaringCompressState &state, idx_t amount); + static idx_t Count(RoaringCompressState &state); + static void Flush(RoaringCompressState &state); + +public: + idx_t GetContainerIndex(); + idx_t GetRemainingSpace(); + bool CanStore(idx_t container_size, const ContainerMetadata &metadata); + void InitializeContainer(); + void CreateEmptySegment(idx_t row_start); + void FlushSegment(); + void Finalize(); + void FlushContainer(); + void NextContainer(); + void Compress(Vector &input, idx_t count); + +public: + unique_ptr owned_analyze_state; + RoaringAnalyzeState &analyze_state; + + ContainerCompressionState container_state; + ContainerMetadataCollection metadata_collection; + vector &container_metadata; + + ColumnDataCheckpointer &checkpointer; + CompressionFunction &function; + unique_ptr current_segment; + BufferHandle handle; + + // Ptr to next free spot in segment; + data_ptr_t data_ptr; + // Ptr to next free spot for storing + data_ptr_t metadata_ptr; + //! The amount of values already compressed + idx_t total_count = 0; +}; + +//===--------------------------------------------------------------------===// +// Scan +//===--------------------------------------------------------------------===// + +struct ContainerScanState { +public: + ContainerScanState(idx_t container_index_p, idx_t container_size) + : container_index(container_index_p), container_size(container_size) { + } + virtual ~ContainerScanState() { + } + +public: + virtual void ScanPartial(Vector &result, idx_t result_offset, idx_t to_scan) = 0; + virtual void Skip(idx_t count) = 0; + virtual void Verify() const = 0; + +public: + //! The index of the container + idx_t container_index; + //! The size of the container (how many values does it hold) + idx_t container_size; + //! How much of the container is already consumed + idx_t scanned_count = 0; +}; + +struct ContainerSegmentScan { +public: + explicit ContainerSegmentScan(data_ptr_t data); + ContainerSegmentScan(const ContainerSegmentScan &other) = delete; + ContainerSegmentScan(ContainerSegmentScan &&other) = delete; + ContainerSegmentScan &operator=(const ContainerSegmentScan &other) = delete; + ContainerSegmentScan &operator=(ContainerSegmentScan &&other) = delete; + +public: + // Returns the base of the current segment, forwarding the index if the segment is depleted of values + uint16_t operator++(int); + +private: + //! The COMPRESSED_SEGMENT_COUNT unsigned bytes indicating for each segment (256 bytes) of the container how many + //! values are in the segment + uint8_t *segments; + uint8_t index; + uint8_t count; +}; + +//! RUN Container + +struct RunContainerScanState : public ContainerScanState { +public: + RunContainerScanState(idx_t container_index, idx_t container_size, idx_t count, data_ptr_t data_p); + +public: + void ScanPartial(Vector &result, idx_t result_offset, idx_t to_scan) override; + void Skip(idx_t to_skip) override; + void Verify() const override; + +protected: + virtual void LoadNextRun(); + +protected: + RunContainerRLEPair run; + bool finished = false; + idx_t run_index = 0; + idx_t count; + data_ptr_t data; +}; + +struct CompressedRunContainerScanState : public RunContainerScanState { +public: + CompressedRunContainerScanState(idx_t container_index, idx_t container_size, idx_t count, data_ptr_t segments, + data_ptr_t data); + +protected: + void LoadNextRun() override; + void Verify() const override; + +private: + data_ptr_t segments; + ContainerSegmentScan segment; +}; + +//! ARRAY Container + +template +struct ArrayContainerScanState : public ContainerScanState { +public: + ArrayContainerScanState(idx_t container_index, idx_t container_size, idx_t count, data_ptr_t data_p) + : ContainerScanState(container_index, container_size), data(data_p), count(count) { + } + +public: + virtual void LoadNextValue() { + if (array_index >= count) { + finished = true; + return; + } + value = reinterpret_cast(data)[array_index]; + array_index++; + } + +public: + void ScanPartial(Vector &result, idx_t result_offset, idx_t to_scan) override { + auto &result_mask = FlatVector::Validity(result); + + // This method assumes that the validity mask starts off as having all bits set for the entries that are being + // scanned. + + if (!INVERTED) { + // If we are mapping valid entries, that means the majority of the bits are invalid + // so we set everything to invalid and only flip the bits that are present in the array + SetInvalidRange(result_mask, result_offset, result_offset + to_scan); + } + + if (!array_index) { + LoadNextValue(); + } + // At least one of the entries to scan is set + while (!finished) { + if (value >= scanned_count + to_scan) { + break; + } + if (value < scanned_count) { + LoadNextValue(); + continue; + } + auto index = value - scanned_count; + if (INVERTED) { + result_mask.SetInvalid(result_offset + index); + } else { + result_mask.SetValid(result_offset + index); + } + LoadNextValue(); + } + scanned_count += to_scan; + } + + void Skip(idx_t to_skip) override { + idx_t end = scanned_count + to_skip; + if (!array_index) { + LoadNextValue(); + } + while (!finished && value < end) { + LoadNextValue(); + } + // In case array_index has already reached count + scanned_count = end; + } + + void Verify() const override { +#ifdef DEBUG + uint16_t index = 0; + auto array = reinterpret_cast(data); + for (uint16_t i = 0; i < count; i++) { + D_ASSERT(!i || array[i] > index); + index = array[i]; + } +#endif + } + +protected: + uint16_t value; + data_ptr_t data; + bool finished = false; + const idx_t count; + idx_t array_index = 0; +}; + +template +struct CompressedArrayContainerScanState : public ArrayContainerScanState { +public: + CompressedArrayContainerScanState(idx_t container_index, idx_t container_size, idx_t count, data_ptr_t segments, + data_ptr_t data) + : ArrayContainerScanState(container_index, container_size, count, data), segments(segments), + segment(segments) { + D_ASSERT(count >= COMPRESSED_ARRAY_THRESHOLD); + } + +public: + void LoadNextValue() override { + if (this->array_index >= this->count) { + this->finished = true; + return; + } + this->value = segment++; + this->value += reinterpret_cast(this->data)[this->array_index]; + this->array_index++; + } + void Verify() const override { +#ifdef DEBUG + uint16_t index = 0; + ContainerSegmentScan verify_segment(segments); + for (uint16_t i = 0; i < this->count; i++) { + // Get the value + uint16_t new_index = verify_segment++; + new_index += reinterpret_cast(this->data)[i]; + + D_ASSERT(!i || new_index > index); + index = new_index; + } +#endif + } + +private: + data_ptr_t segments; + ContainerSegmentScan segment; +}; + +//! BITSET Container + +struct BitsetContainerScanState : public ContainerScanState { +public: + BitsetContainerScanState(idx_t container_index, idx_t count, validity_t *bitset); + +public: + void ScanPartial(Vector &result, idx_t result_offset, idx_t to_scan) override; + void Skip(idx_t to_skip) override; + void Verify() const override; + +public: + validity_t *bitset; +}; + +struct RoaringScanState : public SegmentScanState { +public: + explicit RoaringScanState(ColumnSegment &segment); + +public: + idx_t SkipVector(const ContainerMetadata &metadata); + bool UseContainerStateCache(idx_t container_index, idx_t internal_offset); + ContainerMetadata GetContainerMetadata(idx_t container_index); + data_ptr_t GetStartOfContainerData(idx_t container_index); + ContainerScanState &LoadContainer(idx_t container_index, idx_t internal_offset); + void ScanInternal(ContainerScanState &scan_state, idx_t to_scan, Vector &result, idx_t offset); + idx_t GetContainerIndex(idx_t start_index, idx_t &offset); + void ScanPartial(idx_t start_idx, Vector &result, idx_t offset, idx_t count); + void Skip(ContainerScanState &scan_state, idx_t skip_count); + +public: + BufferHandle handle; + ColumnSegment &segment; + unique_ptr current_container; + data_ptr_t data_ptr; + ContainerMetadataCollection metadata_collection; + vector container_metadata; + vector data_start_position; +}; + +} // namespace roaring + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/data_table.hpp b/src/duckdb/src/include/duckdb/storage/data_table.hpp index 313cb4b7..71f94eba 100644 --- a/src/duckdb/src/include/duckdb/storage/data_table.hpp +++ b/src/duckdb/src/include/duckdb/storage/data_table.hpp @@ -9,11 +9,8 @@ #pragma once #include "duckdb/common/enums/index_constraint_type.hpp" -#include "duckdb/common/enums/scan_options.hpp" -#include "duckdb/common/mutex.hpp" #include "duckdb/common/types/data_chunk.hpp" #include "duckdb/common/unique_ptr.hpp" -#include "duckdb/storage/block.hpp" #include "duckdb/storage/index.hpp" #include "duckdb/storage/statistics/column_statistics.hpp" #include "duckdb/storage/table/column_segment.hpp" @@ -25,6 +22,7 @@ #include "duckdb/transaction/local_storage.hpp" namespace duckdb { + class BoundForeignKeyConstraint; class ClientContext; class ColumnDataCollection; @@ -59,9 +57,9 @@ class DataTable { DataTable(ClientContext &context, DataTable &parent, idx_t removed_column); //! Constructs a DataTable as a delta on an existing data table but with one column changed type DataTable(ClientContext &context, DataTable &parent, idx_t changed_idx, const LogicalType &target_type, - const vector &bound_columns, Expression &cast_expr); + const vector &bound_columns, Expression &cast_expr); //! Constructs a DataTable as a delta on an existing data table but with one column added new constraint - explicit DataTable(ClientContext &context, DataTable &parent, unique_ptr constraint); + DataTable(ClientContext &context, DataTable &parent, BoundConstraint &constraint); //! A reference to the database instance AttachedDatabase &db; @@ -76,13 +74,11 @@ class DataTable { vector GetTypes(); const vector &Columns() const; - void InitializeScan(TableScanState &state, const vector &column_ids, - TableFilterSet *table_filter = nullptr); - void InitializeScan(DuckTransaction &transaction, TableScanState &state, const vector &column_ids, + void InitializeScan(DuckTransaction &transaction, TableScanState &state, const vector &column_ids, TableFilterSet *table_filters = nullptr); //! Returns the maximum amount of threads that should be assigned to scan this data table - idx_t MaxThreads(ClientContext &context); + idx_t MaxThreads(ClientContext &context) const; void InitializeParallelScan(ClientContext &context, ParallelTableScanState &state); bool NextParallelScan(ClientContext &context, ParallelTableScanState &state, TableScanState &scan_state); @@ -93,7 +89,7 @@ class DataTable { void Scan(DuckTransaction &transaction, DataChunk &result, TableScanState &state); //! Fetch data from the specific row identifiers from the base table - void Fetch(DuckTransaction &transaction, DataChunk &result, const vector &column_ids, + void Fetch(DuckTransaction &transaction, DataChunk &result, const vector &column_ids, const Vector &row_ids, idx_t fetch_count, ColumnFetchState &state); //! Initializes an append to transaction-local storage @@ -107,9 +103,10 @@ class DataTable { //! Append a chunk to the transaction-local storage of this table void LocalAppend(TableCatalogEntry &table, ClientContext &context, DataChunk &chunk, const vector> &bound_constraints); - //! Append a column data collection to the transaction-local storage of this table + //! Append a column data collection with default values to the transaction-local storage of this table. void LocalAppend(TableCatalogEntry &table, ClientContext &context, ColumnDataCollection &collection, - const vector> &bound_constraints); + const vector> &bound_constraints, + optional_ptr> column_ids); //! Merge a row group collection into the transaction-local storage void LocalMerge(ClientContext &context, RowGroupCollection &collection); //! Creates an optimistic writer for this table - used for optimistically writing parallel appends @@ -149,13 +146,15 @@ class DataTable { //! Commit the append void CommitAppend(transaction_t commit_id, idx_t row_start, idx_t count); //! Write a segment of the table to the WAL - void WriteToLog(WriteAheadLog &log, idx_t row_start, idx_t count, optional_ptr commit_state); + void WriteToLog(DuckTransaction &transaction, WriteAheadLog &log, idx_t row_start, idx_t count, + optional_ptr commit_state); //! Revert a set of appends made by the given AppendState, used to revert appends in the event of an error during //! commit (e.g. because of an I/O exception) - void RevertAppend(idx_t start_row, idx_t count); + void RevertAppend(DuckTransaction &transaction, idx_t start_row, idx_t count); void RevertAppendInternal(idx_t start_row); - void ScanTableSegment(idx_t start_row, idx_t count, const std::function &function); + void ScanTableSegment(DuckTransaction &transaction, idx_t start_row, idx_t count, + const std::function &function); //! Merge a row group collection directly into this table - appending it to the end of the table without copying void MergeStorage(RowGroupCollection &data, TableIndexList &indexes, optional_ptr commit_state); @@ -174,6 +173,7 @@ class DataTable { void SetAsRoot() { this->is_root = true; } + bool IsRoot() { return this->is_root; } @@ -215,7 +215,6 @@ class DataTable { void InitializeIndexes(ClientContext &context); bool HasIndexes() const; - void AddIndex(unique_ptr index); bool HasForeignKeyIndex(const vector &keys, ForeignKeyType type); void SetIndexStorageInfo(vector index_storage_info); void VacuumIndexes(); @@ -226,21 +225,30 @@ class DataTable { TableStorageInfo GetStorageInfo(); -public: + idx_t GetRowGroupSize() const; + static void VerifyUniqueIndexes(TableIndexList &indexes, ClientContext &context, DataChunk &chunk, optional_ptr conflict_manager); + //! AddIndex initializes an index and adds it to the table's index list. + //! It is either empty, or initialized via its index storage information. + void AddIndex(const ColumnList &columns, const vector &column_indexes, const IndexConstraintType type, + const IndexStorageInfo &info); + //! AddIndex moves an index to this table's index list. + void AddIndex(unique_ptr index); + private: //! Verify the new added constraints against current persistent&local data void VerifyNewConstraint(LocalStorage &local_storage, DataTable &parent, const BoundConstraint &constraint); + //! Verify constraints with a chunk from the Update containing only the specified column_ids void VerifyUpdateConstraints(ConstraintState &state, ClientContext &context, DataChunk &chunk, const vector &column_ids); //! Verify constraints with a chunk from the Delete containing all columns of the table void VerifyDeleteConstraints(TableDeleteState &state, ClientContext &context, DataChunk &chunk); - void InitializeScanWithOffset(TableScanState &state, const vector &column_ids, idx_t start_row, - idx_t end_row); + void InitializeScanWithOffset(DuckTransaction &transaction, TableScanState &state, + const vector &column_ids, idx_t start_row, idx_t end_row); void VerifyForeignKeyConstraint(const BoundForeignKeyConstraint &bfk, ClientContext &context, DataChunk &chunk, VerifyExistenceType verify_type); diff --git a/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp b/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp index ec10765b..28110ece 100644 --- a/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/metadata/metadata_manager.hpp @@ -50,9 +50,9 @@ class MetadataManager { ~MetadataManager(); MetadataHandle AllocateHandle(); - MetadataHandle Pin(MetadataPointer pointer); + MetadataHandle Pin(const MetadataPointer &pointer); - MetaBlockPointer GetDiskPointer(MetadataPointer pointer, uint32_t offset = 0); + MetaBlockPointer GetDiskPointer(const MetadataPointer &pointer, uint32_t offset = 0); MetadataPointer FromDiskPointer(MetaBlockPointer pointer); MetadataPointer RegisterDiskPointer(MetaBlockPointer pointer); diff --git a/src/duckdb/src/include/duckdb/storage/object_cache.hpp b/src/duckdb/src/include/duckdb/storage/object_cache.hpp index 5ef1a673..96c3bf71 100644 --- a/src/duckdb/src/include/duckdb/storage/object_cache.hpp +++ b/src/duckdb/src/include/duckdb/storage/object_cache.hpp @@ -74,7 +74,6 @@ class ObjectCache { } DUCKDB_API static ObjectCache &GetObjectCache(ClientContext &context); - DUCKDB_API static bool ObjectCacheEnabled(ClientContext &context); private: //! Object Cache diff --git a/src/duckdb/src/include/duckdb/storage/segment/uncompressed.hpp b/src/duckdb/src/include/duckdb/storage/segment/uncompressed.hpp index 57dd4d8d..7452c8ed 100644 --- a/src/duckdb/src/include/duckdb/storage/segment/uncompressed.hpp +++ b/src/duckdb/src/include/duckdb/storage/segment/uncompressed.hpp @@ -29,6 +29,9 @@ struct FixedSizeUncompressed { struct ValidityUncompressed { public: static CompressionFunction GetFunction(PhysicalType data_type); + static void AlignedScan(data_ptr_t input, idx_t input_start, Vector &result, idx_t scan_count); + static void UnalignedScan(data_ptr_t input, idx_t input_size, idx_t input_start, Vector &result, + idx_t result_offset, idx_t scan_count); public: static const validity_t LOWER_MASKS[65]; diff --git a/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp b/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp index e4de9608..93c348a6 100644 --- a/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/standard_buffer_manager.hpp @@ -49,7 +49,7 @@ class StandardBufferManager : public BufferManager { //! Registers an in-memory buffer that cannot be unloaded until it is destroyed. //! This buffer can be small (smaller than the block size of the temporary block manager). //! Unpin and Pin are NOPs on this block of memory. - shared_ptr RegisterSmallMemory(const idx_t size) final; + shared_ptr RegisterSmallMemory(MemoryTag tag, const idx_t size) final; idx_t GetUsedMemory() const final; idx_t GetMaxMemory() const final; @@ -76,7 +76,7 @@ class StandardBufferManager : public BufferManager { void SetMemoryLimit(idx_t limit = (idx_t)-1) final; void SetSwapLimit(optional_idx limit = optional_idx()) final; - //! Returns informaton about memory usage + //! Returns information about memory usage vector GetMemoryUsageInfo() const override; //! Returns a list of all temporary files @@ -120,7 +120,7 @@ class StandardBufferManager : public BufferManager { shared_ptr RegisterMemory(MemoryTag tag, idx_t block_size, bool can_destroy); //! Garbage collect eviction queue - void PurgeQueue(FileBufferType type) final; + void PurgeQueue(const BlockHandle &handle) final; BufferPool &GetBufferPool() const final; TemporaryMemoryManager &GetTemporaryMemoryManager() final; @@ -148,7 +148,7 @@ class StandardBufferManager : public BufferManager { //! When the BlockHandle reaches 0 readers, this creates a new FileBuffer for this BlockHandle and //! overwrites the data within with garbage. Any readers that do not hold the pin will notice - void VerifyZeroReaders(shared_ptr &handle); + void VerifyZeroReaders(BlockLock &l, shared_ptr &handle); void BatchRead(vector> &handles, const map &load_map, block_id_t first_block, block_id_t last_block); diff --git a/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp b/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp index 0cc4c69a..12f8d567 100644 --- a/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp +++ b/src/duckdb/src/include/duckdb/storage/statistics/column_statistics.hpp @@ -24,7 +24,7 @@ class ColumnStatistics { void Merge(ColumnStatistics &other); - void UpdateDistinctStatistics(Vector &v, idx_t count); + void UpdateDistinctStatistics(Vector &v, idx_t count, Vector &hashes); BaseStatistics &Statistics(); diff --git a/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp b/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp index fc6eb890..aaa4acb0 100644 --- a/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp +++ b/src/duckdb/src/include/duckdb/storage/statistics/distinct_statistics.hpp @@ -34,8 +34,8 @@ class DistinctStatistics { unique_ptr Copy() const; - void Update(Vector &update, idx_t count, bool sample = true); - void Update(UnifiedVectorFormat &update_data, const LogicalType &ptype, idx_t count, bool sample = true); + void UpdateSample(Vector &new_data, idx_t count, Vector &hashes); + void Update(Vector &new_data, idx_t count, Vector &hashes); string ToString() const; idx_t GetCount() const; @@ -45,15 +45,14 @@ class DistinctStatistics { void Serialize(Serializer &serializer) const; static unique_ptr Deserialize(Deserializer &deserializer); +private: + void UpdateInternal(Vector &update, idx_t count, Vector &hashes); + private: //! For distinct statistics we sample the input to speed up insertions static constexpr double BASE_SAMPLE_RATE = 0.1; //! For integers, we sample more: likely to be join keys (and hashing is cheaper than, e.g., strings) static constexpr double INTEGRAL_SAMPLE_RATE = 0.3; - //! For concurrent access - mutable mutex lock; - //! Preallocated vector for hashes - Vector hash_vec; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp b/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp index 9515acbe..342a6f30 100644 --- a/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp +++ b/src/duckdb/src/include/duckdb/storage/statistics/numeric_stats.hpp @@ -13,6 +13,7 @@ #include "duckdb/common/operator/comparison_operators.hpp" #include "duckdb/common/types/value.hpp" #include "duckdb/storage/statistics/numeric_stats_union.hpp" +#include "duckdb/common/array_ptr.hpp" namespace duckdb { class BaseStatistics; @@ -53,9 +54,23 @@ struct NumericStats { //! Sets the max value of the statistics DUCKDB_API static void SetMax(BaseStatistics &stats, const Value &val); + template + static void SetMax(BaseStatistics &stats, T val) { + auto &nstats = GetDataUnsafe(stats); + nstats.has_max = true; + nstats.max.GetReferenceUnsafe() = val; + } + + template + static void SetMin(BaseStatistics &stats, T val) { + auto &nstats = GetDataUnsafe(stats); + nstats.has_min = true; + nstats.min.GetReferenceUnsafe() = val; + } + //! Check whether or not a given comparison with a constant could possibly be satisfied by rows given the statistics DUCKDB_API static FilterPropagateResult CheckZonemap(const BaseStatistics &stats, ExpressionType comparison_type, - const Value &constant); + array_ptr constants); DUCKDB_API static void Merge(BaseStatistics &stats, const BaseStatistics &other_p); diff --git a/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp b/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp index f069ecc4..6ae410be 100644 --- a/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp +++ b/src/duckdb/src/include/duckdb/storage/statistics/string_stats.hpp @@ -14,6 +14,7 @@ #include "duckdb/common/exception.hpp" #include "duckdb/common/operator/comparison_operators.hpp" #include "duckdb/common/types/hugeint.hpp" +#include "duckdb/common/array_ptr.hpp" namespace duckdb { class BaseStatistics; @@ -62,7 +63,7 @@ struct StringStats { DUCKDB_API static string ToString(const BaseStatistics &stats); DUCKDB_API static FilterPropagateResult CheckZonemap(const BaseStatistics &stats, ExpressionType comparison_type, - const string &value); + array_ptr constants); DUCKDB_API static FilterPropagateResult CheckZonemap(const_data_ptr_t min_data, idx_t min_len, const_data_ptr_t max_data, idx_t max_len, ExpressionType comparison_type, const string &value); diff --git a/src/duckdb/src/include/duckdb/storage/storage_index.hpp b/src/duckdb/src/include/duckdb/storage/storage_index.hpp new file mode 100644 index 00000000..38ba9997 --- /dev/null +++ b/src/duckdb/src/include/duckdb/storage/storage_index.hpp @@ -0,0 +1,70 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/storage/storage_index.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/constants.hpp" +#include "duckdb/common/vector.hpp" + +namespace duckdb { + +struct StorageIndex { + StorageIndex() : index(DConstants::INVALID_INDEX) { + } + explicit StorageIndex(idx_t index) : index(index) { + } + StorageIndex(idx_t index, vector child_indexes_p) + : index(index), child_indexes(std::move(child_indexes_p)) { + } + + inline bool operator==(const StorageIndex &rhs) const { + return index == rhs.index; + } + inline bool operator!=(const StorageIndex &rhs) const { + return index != rhs.index; + } + inline bool operator<(const StorageIndex &rhs) const { + return index < rhs.index; + } + idx_t GetPrimaryIndex() const { + return index; + } + PhysicalIndex ToPhysical() const { + return PhysicalIndex(index); + } + bool HasChildren() const { + return !child_indexes.empty(); + } + idx_t ChildIndexCount() const { + return child_indexes.size(); + } + const StorageIndex &GetChildIndex(idx_t idx) const { + return child_indexes[idx]; + } + StorageIndex &GetChildIndex(idx_t idx) { + return child_indexes[idx]; + } + const vector &GetChildIndexes() const { + return child_indexes; + } + void AddChildIndex(StorageIndex new_index) { + this->child_indexes.push_back(std::move(new_index)); + } + void SetIndex(idx_t new_index) { + index = new_index; + } + bool IsRowIdColumn() const { + return index == DConstants::INVALID_INDEX; + } + +private: + idx_t index; + vector child_indexes; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/storage_info.hpp b/src/duckdb/src/include/duckdb/storage/storage_info.hpp index 17fb6c28..a2047d72 100644 --- a/src/duckdb/src/include/duckdb/storage/storage_info.hpp +++ b/src/duckdb/src/include/duckdb/storage/storage_info.hpp @@ -17,7 +17,7 @@ namespace duckdb { struct FileHandle; //! The standard row group size -#define STANDARD_ROW_GROUPS_SIZE 122880 +#define DEFAULT_ROW_GROUP_SIZE 122880ULL //! The definition of an invalid block #define INVALID_BLOCK (-1) //! The maximum block id is 2^62 @@ -38,10 +38,8 @@ struct Storage { //! The size of the headers. This should be small and written more or less atomically by the hard disk. We default //! to the page size, which is 4KB. (1 << 12) constexpr static idx_t FILE_HEADER_SIZE = 4096U; - //! The number of rows per row group (must be a multiple of the vector size) - constexpr static const idx_t ROW_GROUP_SIZE = STANDARD_ROW_GROUPS_SIZE; - //! The number of vectors per row group - constexpr static const idx_t ROW_GROUP_VECTOR_COUNT = ROW_GROUP_SIZE / STANDARD_VECTOR_SIZE; + //! The maximum row group size + constexpr static const idx_t MAX_ROW_GROUP_SIZE = 1ULL << 30ULL; //! The minimum block allocation size. This is the minimum size we test in our nightly tests. constexpr static idx_t MIN_BLOCK_ALLOC_SIZE = 16384ULL; @@ -118,10 +116,10 @@ struct DatabaseHeader { //! Detect mismatching constant values when compiling -#if (STANDARD_ROW_GROUPS_SIZE % STANDARD_VECTOR_SIZE != 0) +#if (DEFAULT_ROW_GROUP_SIZE % STANDARD_VECTOR_SIZE != 0) #error The row group size must be a multiple of the vector size #endif -#if (STANDARD_ROW_GROUPS_SIZE < STANDARD_VECTOR_SIZE) +#if (DEFAULT_ROW_GROUP_SIZE < STANDARD_VECTOR_SIZE) #error Row groups must be able to hold at least one vector #endif #if (DEFAULT_BLOCK_ALLOC_SIZE & (DEFAULT_BLOCK_ALLOC_SIZE - 1) != 0) diff --git a/src/duckdb/src/include/duckdb/storage/storage_manager.hpp b/src/duckdb/src/include/duckdb/storage/storage_manager.hpp index 1820805f..b72d3972 100644 --- a/src/duckdb/src/include/duckdb/storage/storage_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/storage_manager.hpp @@ -15,6 +15,7 @@ #include "duckdb/storage/write_ahead_log.hpp" #include "duckdb/storage/database_size.hpp" #include "duckdb/common/enums/checkpoint_type.hpp" +#include "duckdb/storage/storage_options.hpp" namespace duckdb { class BlockManager; @@ -71,7 +72,7 @@ class StorageManager { //! Initialize a database or load an existing database from the database file path. The block_alloc_size is //! either set, or invalid. If invalid, then DuckDB defaults to the default_block_alloc_size (DBConfig), //! or the file's block allocation size, if it is an existing database. - void Initialize(const optional_idx block_alloc_size); + void Initialize(StorageOptions options); DatabaseInstance &GetDatabase(); AttachedDatabase &GetAttached() { @@ -106,7 +107,7 @@ class StorageManager { virtual BlockManager &GetBlockManager() = 0; protected: - virtual void LoadDatabase(const optional_idx block_alloc_size) = 0; + virtual void LoadDatabase(StorageOptions options) = 0; protected: //! The database this storage manager belongs to @@ -156,6 +157,6 @@ class SingleFileStorageManager : public StorageManager { BlockManager &GetBlockManager() override; protected: - void LoadDatabase(const optional_idx block_alloc_size) override; + void LoadDatabase(StorageOptions options) override; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/storage_options.hpp b/src/duckdb/src/include/duckdb/storage/storage_options.hpp new file mode 100644 index 00000000..8935f09a --- /dev/null +++ b/src/duckdb/src/include/duckdb/storage/storage_options.hpp @@ -0,0 +1,23 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/storage/storage_options.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/common.hpp" +#include "duckdb/common/optional_idx.hpp" + +namespace duckdb { + +struct StorageOptions { + //! The allocation size of blocks for this attached database file (if any) + optional_idx block_alloc_size; + //! The row group size for this attached database (if any) + optional_idx row_group_size; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp b/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp index 9d823359..981d4e4e 100644 --- a/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp +++ b/src/duckdb/src/include/duckdb/storage/string_uncompressed.hpp @@ -41,6 +41,18 @@ struct StringScanState : public SegmentScanState { BufferHandle handle; }; +//===--------------------------------------------------------------------===// +// Append +//===--------------------------------------------------------------------===// +struct SerializedStringSegmentState : public ColumnSegmentState { +public: + SerializedStringSegmentState(); + explicit SerializedStringSegmentState(vector blocks_p); + +public: + void Serialize(Serializer &serializer) const override; +}; + struct UncompressedStringStorage { public: //! Dictionary header size at the beginning of the string segment (offset + length) @@ -60,6 +72,9 @@ struct UncompressedStringStorage { static void StringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, idx_t result_offset); static void StringScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result); + static void Select(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + const SelectionVector &sel, idx_t sel_count); + static void StringFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row_id, Vector &result, idx_t result_idx); static unique_ptr StringInitSegment(ColumnSegment &segment, block_id_t block_id, @@ -202,12 +217,25 @@ struct UncompressedStringStorage { static void WriteStringMarker(data_ptr_t target, block_id_t block_id, int32_t offset); static void ReadStringMarker(data_ptr_t target, block_id_t &block_id, int32_t &offset); - static string_location_t FetchStringLocation(StringDictionaryContainer dict, data_ptr_t base_ptr, - int32_t dict_offset, const idx_t block_size); - static string_t FetchStringFromDict(ColumnSegment &segment, StringDictionaryContainer dict, Vector &result, - data_ptr_t base_ptr, int32_t dict_offset, uint32_t string_length); - static string_t FetchString(ColumnSegment &segment, StringDictionaryContainer dict, Vector &result, - data_ptr_t baseptr, string_location_t location, uint32_t string_length); + inline static string_t FetchStringFromDict(ColumnSegment &segment, StringDictionaryContainer dict, Vector &result, + data_ptr_t base_ptr, int32_t dict_offset, uint32_t string_length) { + D_ASSERT(dict_offset <= NumericCast(segment.GetBlockManager().GetBlockSize())); + if (DUCKDB_LIKELY(dict_offset >= 0)) { + // regular string - fetch from dictionary + auto dict_end = base_ptr + dict.end; + auto dict_pos = dict_end - dict_offset; + + auto str_ptr = char_ptr_cast(dict_pos); + return string_t(str_ptr, string_length); + } else { + // read overflow string + block_id_t block_id; + int32_t offset; + ReadStringMarker(base_ptr + dict.end - AbsValue(dict_offset), block_id, offset); + + return ReadOverflowString(segment, result, block_id, offset); + } + } static unique_ptr SerializeState(ColumnSegment &segment); static unique_ptr DeserializeState(Deserializer &deserializer); diff --git a/src/duckdb/src/include/duckdb/storage/table/append_state.hpp b/src/duckdb/src/include/duckdb/storage/table/append_state.hpp index d7d2d37d..0a5c7b17 100644 --- a/src/duckdb/src/include/duckdb/storage/table/append_state.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/append_state.hpp @@ -72,6 +72,8 @@ struct TableAppendState { TransactionData transaction; //! Table statistics TableStatistics stats; + //! Cached hash vector + Vector hashes; }; struct ConstraintState { diff --git a/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp b/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp index 5830496b..09c8985f 100644 --- a/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/column_checkpoint_state.hpp @@ -40,7 +40,8 @@ struct ColumnCheckpointState { public: virtual unique_ptr GetStatistics(); - virtual void FlushSegment(unique_ptr segment, idx_t segment_size); + virtual void FlushSegmentInternal(unique_ptr segment, idx_t segment_size); + virtual void FlushSegment(unique_ptr segment, BufferHandle handle, idx_t segment_size); virtual PersistentColumnData ToPersistentData(); PartialBlockManager &GetPartialBlockManager() { diff --git a/src/duckdb/src/include/duckdb/storage/table/column_data.hpp b/src/duckdb/src/include/duckdb/storage/table/column_data.hpp index c3e21494..cc40d857 100644 --- a/src/duckdb/src/include/duckdb/storage/table/column_data.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/column_data.hpp @@ -108,12 +108,12 @@ class ColumnData { virtual idx_t ScanCount(ColumnScanState &state, Vector &result, idx_t count); //! Select - virtual void Select(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + virtual void Filter(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, idx_t &count, const TableFilter &filter); - virtual void FilterScan(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, - SelectionVector &sel, idx_t count); - virtual void FilterScanCommitted(idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, - idx_t count, bool allow_updates); + virtual void Select(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + SelectionVector &sel, idx_t count); + virtual void SelectCommitted(idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, + idx_t count, bool allow_updates); //! Skip the scan forward by "count" rows virtual void Skip(ColumnScanState &state, idx_t count = STANDARD_VECTOR_SIZE); @@ -177,14 +177,20 @@ class ColumnData { protected: //! Append a transient segment void AppendTransientSegment(SegmentLock &l, idx_t start_row); + void AppendSegment(SegmentLock &l, unique_ptr segment); + void BeginScanVectorInternal(ColumnScanState &state); //! Scans a base vector from the column idx_t ScanVector(ColumnScanState &state, Vector &result, idx_t remaining, ScanVectorType scan_type); //! Scans a vector from the column merged with any potential updates - //! If ALLOW_UPDATES is set to false, the function will instead throw an exception if any updates are found - template idx_t ScanVector(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, - idx_t target_scan); + idx_t target_scan, ScanVectorType scan_type, ScanVectorMode mode); + idx_t ScanVector(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + idx_t target_scan, ScanVectorMode mode); + void SelectVector(ColumnScanState &state, Vector &result, idx_t target_count, const SelectionVector &sel, + idx_t sel_count); + void FilterVector(ColumnScanState &state, Vector &result, idx_t target_count, SelectionVector &sel, + idx_t &sel_count, const TableFilter &filter); void ClearUpdates(); void FetchUpdates(TransactionData transaction, idx_t vector_index, Vector &result, idx_t scan_count, @@ -195,6 +201,9 @@ class ColumnData { idx_t GetVectorCount(idx_t vector_index) const; +private: + void UpdateCompressionFunction(SegmentLock &l, CompressionFunction &function); + protected: //! The segments holding the data of this column segment ColumnSegmentTree data; @@ -208,6 +217,9 @@ class ColumnData { unique_ptr stats; //! Total transient allocation size idx_t allocation_size; + //! The compression function used by the ColumnData + //! This is empty if the segments have mixed compression or the ColumnData is empty + optional_ptr compression; }; struct PersistentColumnData { diff --git a/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp b/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp index 2b1e7070..686af1e1 100644 --- a/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/column_segment.hpp @@ -60,15 +60,20 @@ class ColumnSegment : public SegmentBase { idx_t start, idx_t count, CompressionType compression_type, BaseStatistics statistics, unique_ptr segment_state); - static unique_ptr CreateTransientSegment(DatabaseInstance &db, const LogicalType &type, - const idx_t start, const idx_t segment_size, - const idx_t block_size); + static unique_ptr CreateTransientSegment(DatabaseInstance &db, CompressionFunction &function, + const LogicalType &type, const idx_t start, + const idx_t segment_size, const idx_t block_size); public: void InitializePrefetch(PrefetchState &prefetch_state, ColumnScanState &scan_state); void InitializeScan(ColumnScanState &state); //! Scan one vector from this segment void Scan(ColumnScanState &state, idx_t scan_count, Vector &result, idx_t result_offset, ScanVectorType scan_type); + //! Scan a subset of a vector (defined by the selection vector) + void Select(ColumnScanState &state, idx_t scan_count, Vector &result, const SelectionVector &sel, idx_t sel_count); + //! Scan one vector while applying a filter to the vector, returning only the matching elements + void Filter(ColumnScanState &state, idx_t scan_count, Vector &result, SelectionVector &sel, idx_t &sel_count, + const TableFilter &filter); //! Fetch a value of the specific row id and append it to the result void FetchRow(ColumnFetchState &state, row_t row_id, Vector &result, idx_t result_idx); diff --git a/src/duckdb/src/include/duckdb/storage/table/delete_state.hpp b/src/duckdb/src/include/duckdb/storage/table/delete_state.hpp index 6d25df4a..d3a05eee 100644 --- a/src/duckdb/src/include/duckdb/storage/table/delete_state.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/delete_state.hpp @@ -17,7 +17,7 @@ struct TableDeleteState { unique_ptr constraint_state; bool has_delete_constraints = false; DataChunk verify_chunk; - vector col_ids; + vector col_ids; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/table/row_group.hpp b/src/duckdb/src/include/duckdb/storage/table/row_group.hpp index e3f2e3db..3c1584c7 100644 --- a/src/duckdb/src/include/duckdb/storage/table/row_group.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/row_group.hpp @@ -18,6 +18,7 @@ #include "duckdb/storage/table/segment_base.hpp" #include "duckdb/storage/block.hpp" #include "duckdb/common/enums/checkpoint_type.hpp" +#include "duckdb/storage/storage_index.hpp" namespace duckdb { class AttachedDatabase; @@ -123,7 +124,7 @@ class RowGroup : public SegmentBase { //! For a specific row, returns true if it should be used for the transaction and false otherwise. bool Fetch(TransactionData transaction, idx_t row); //! Fetch a specific row from the row_group and insert it into the result at the specified index - void FetchRow(TransactionData transaction, ColumnFetchState &state, const vector &column_ids, + void FetchRow(TransactionData transaction, ColumnFetchState &state, const vector &column_ids, row_t row_id, DataChunk &result, idx_t result_idx); //! Append count rows to the version info @@ -178,6 +179,8 @@ class RowGroup : public SegmentBase { static void Serialize(RowGroupPointer &pointer, Serializer &serializer); static RowGroupPointer Deserialize(Deserializer &deserializer); + idx_t GetRowGroupSize() const; + private: optional_ptr GetVersionInfo(); shared_ptr GetOrCreateVersionInfoPtr(); @@ -185,6 +188,7 @@ class RowGroup : public SegmentBase { void SetVersionInfo(shared_ptr version); ColumnData &GetColumn(storage_t c); + ColumnData &GetColumn(const StorageIndex &c); idx_t GetColumnCount() const; vector> &GetColumns(); diff --git a/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp b/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp index 9184abf5..5186d8d5 100644 --- a/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/row_group_collection.hpp @@ -12,6 +12,7 @@ #include "duckdb/storage/table/segment_tree.hpp" #include "duckdb/storage/statistics/column_statistics.hpp" #include "duckdb/storage/table/table_statistics.hpp" +#include "duckdb/storage/storage_index.hpp" namespace duckdb { @@ -34,11 +35,14 @@ struct VacuumState; struct CollectionCheckpointState; struct PersistentCollectionData; class CheckpointTask; +class TableIOManager; class RowGroupCollection { public: - RowGroupCollection(shared_ptr info, BlockManager &block_manager, vector types, + RowGroupCollection(shared_ptr info, TableIOManager &io_manager, vector types, idx_t row_start, idx_t total_rows = 0); + RowGroupCollection(shared_ptr info, BlockManager &block_manager, vector types, + idx_t row_start, idx_t total_rows, idx_t row_group_size); public: idx_t GetTotalRows() const; @@ -55,20 +59,21 @@ class RowGroupCollection { RowGroup *GetRowGroup(int64_t index); void Verify(); - void InitializeScan(CollectionScanState &state, const vector &column_ids, TableFilterSet *table_filters); + void InitializeScan(CollectionScanState &state, const vector &column_ids, + TableFilterSet *table_filters); void InitializeCreateIndexScan(CreateIndexScanState &state); - void InitializeScanWithOffset(CollectionScanState &state, const vector &column_ids, idx_t start_row, + void InitializeScanWithOffset(CollectionScanState &state, const vector &column_ids, idx_t start_row, idx_t end_row); static bool InitializeScanInRowGroup(CollectionScanState &state, RowGroupCollection &collection, RowGroup &row_group, idx_t vector_index, idx_t max_row); void InitializeParallelScan(ParallelCollectionScanState &state); bool NextParallelScan(ClientContext &context, ParallelCollectionScanState &state, CollectionScanState &scan_state); - bool Scan(DuckTransaction &transaction, const vector &column_ids, + bool Scan(DuckTransaction &transaction, const vector &column_ids, const std::function &fun); bool Scan(DuckTransaction &transaction, const std::function &fun); - void Fetch(TransactionData transaction, DataChunk &result, const vector &column_ids, + void Fetch(TransactionData transaction, DataChunk &result, const vector &column_ids, const Vector &row_identifiers, idx_t fetch_count, ColumnFetchState &state); //! Initialize an append of a variable number of rows. FinalizeAppend must be called after appending is done. @@ -113,7 +118,7 @@ class RowGroupCollection { ExpressionExecutor &default_executor); shared_ptr RemoveColumn(idx_t col_idx); shared_ptr AlterType(ClientContext &context, idx_t changed_idx, const LogicalType &target_type, - vector bound_columns, Expression &cast_expr); + vector bound_columns, Expression &cast_expr); void VerifyNewConstraint(DataTable &parent, const BoundConstraint &constraint); void CopyStats(TableStatistics &stats); @@ -133,12 +138,18 @@ class RowGroupCollection { return allocation_size; } + idx_t GetRowGroupSize() const { + return row_group_size; + } + private: bool IsEmpty(SegmentLock &) const; private: //! BlockManager BlockManager &block_manager; + //! The row group size of the row group collection + const idx_t row_group_size; //! The number of rows in the table atomic total_rows; //! The data table info diff --git a/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp b/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp index 25bd70dd..bb0d0056 100644 --- a/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/row_version_manager.hpp @@ -49,13 +49,14 @@ class RowVersionManager { private: mutex version_lock; idx_t start; - unique_ptr vector_info[Storage::ROW_GROUP_VECTOR_COUNT]; + vector> vector_info; bool has_changes; vector storage_pointers; private: optional_ptr GetChunkInfo(idx_t vector_idx); ChunkVectorInfo &GetVectorInfo(idx_t vector_idx); + void FillVectorInfo(idx_t vector_idx); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp b/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp index bd7d0377..e94381a6 100644 --- a/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/scan_state.hpp @@ -13,8 +13,11 @@ #include "duckdb/storage/buffer/buffer_handle.hpp" #include "duckdb/storage/storage_lock.hpp" #include "duckdb/common/enums/scan_options.hpp" +#include "duckdb/common/random_engine.hpp" #include "duckdb/storage/table/segment_lock.hpp" #include "duckdb/common/types/data_chunk.hpp" +#include "duckdb/parser/parsed_data/sample_options.hpp" +#include "duckdb/storage/storage_index.hpp" namespace duckdb { class AdaptiveFilter; @@ -36,6 +39,7 @@ class RowGroupSegmentTree; class TableFilter; struct AdaptiveFilterState; struct TableScanOptions; +struct ScanSamplingInfo; struct SegmentScanState { virtual ~SegmentScanState() { @@ -93,10 +97,14 @@ struct ColumnScanState { vector> previous_states; //! The last read offset in the child state (used for LIST columns only) idx_t last_offset = 0; + //! Whether or not we should scan a specific child column + vector scan_child_column; //! Contains TableScan level config for scanning optional_ptr scan_options; public: + void Initialize(const LogicalType &type, const vector &children, + optional_ptr options); void Initialize(const LogicalType &type, optional_ptr options); //! Move the scan state forward by "count" rows (including all child states) void Next(idx_t count); @@ -114,7 +122,7 @@ struct ColumnFetchState { }; struct ScanFilter { - ScanFilter(idx_t index, const vector &column_ids, TableFilter &filter); + ScanFilter(idx_t index, const vector &column_ids, TableFilter &filter); idx_t scan_column_index; idx_t table_column_index; @@ -130,7 +138,7 @@ class ScanFilterInfo { public: ~ScanFilterInfo(); - void Initialize(TableFilterSet &filters, const vector &column_ids); + void Initialize(TableFilterSet &filters, const vector &column_ids); const vector &GetFilterList() const { return filter_list; @@ -188,10 +196,13 @@ class CollectionScanState { //! The valid selection SelectionVector valid_sel; + RandomEngine random; + public: void Initialize(const vector &types); - const vector &GetColumnIds(); + const vector &GetColumnIds(); ScanFilterInfo &GetFilterInfo(); + ScanSamplingInfo &GetSamplingInfo(); TableScanOptions &GetOptions(); bool Scan(DuckTransaction &transaction, DataChunk &result); bool ScanCommitted(DataChunk &result, TableScanType type); @@ -201,6 +212,13 @@ class CollectionScanState { TableScanState &parent; }; +struct ScanSamplingInfo { + //! Whether or not to do a system sample during scanning + bool do_system_sample = false; + //! The sampling rate to use + double sample_rate; +}; + struct TableScanOptions { //! Fetch rows one-at-a-time instead of using the regular scans. bool force_fetch_row = false; @@ -230,17 +248,22 @@ class TableScanState { shared_ptr checkpoint_lock; //! Filter info ScanFilterInfo filters; + //! Sampling info + ScanSamplingInfo sampling_info; public: - void Initialize(vector column_ids, optional_ptr table_filters = nullptr); + void Initialize(vector column_ids, optional_ptr table_filters = nullptr, + optional_ptr table_sampling = nullptr); - const vector &GetColumnIds(); + const vector &GetColumnIds(); ScanFilterInfo &GetFilterInfo(); + ScanSamplingInfo &GetSamplingInfo(); + private: //! The column identifiers of the scan - vector column_ids; + vector column_ids; }; struct ParallelCollectionScanState { diff --git a/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp b/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp index e267d2e3..c666de06 100644 --- a/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/segment_tree.hpp @@ -145,6 +145,7 @@ class SegmentTree { } SegmentNode node; segment->index = nodes.size(); + segment->next = nullptr; node.row_start = segment->start; node.node = std::move(segment); nodes.push_back(std::move(node)); @@ -166,16 +167,6 @@ class SegmentTree { return segment->index < nodes.size() && nodes[segment->index].node.get() == segment; } - //! Replace this tree with another tree, taking over its nodes in-place - void Replace(SegmentTree &other) { - auto l = Lock(); - Replace(l, other); - } - void Replace(SegmentLock &l, SegmentTree &other) { - other.LoadAllSegments(l); - nodes = std::move(other.nodes); - } - //! Erase all segments after a specific segment void EraseSegments(SegmentLock &l, idx_t segment_start) { LoadAllSegments(l); diff --git a/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp b/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp index b4b33730..97fbc889 100644 --- a/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/standard_column_data.hpp @@ -36,6 +36,11 @@ class StandardColumnData : public ColumnData { idx_t target_count) override; idx_t ScanCount(ColumnScanState &state, Vector &result, idx_t count) override; + void Filter(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + SelectionVector &sel, idx_t &count, const TableFilter &filter) override; + void Select(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + SelectionVector &sel, idx_t sel_count) override; + void InitializeAppend(ColumnAppendState &state) override; void AppendData(BaseStatistics &stats, ColumnAppendState &state, UnifiedVectorFormat &vdata, idx_t count) override; void RevertAppend(row_t start_row) override; diff --git a/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp b/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp index 4f1f681f..59f5e099 100644 --- a/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/table_index_list.hpp @@ -9,8 +9,8 @@ #pragma once #include "duckdb/common/mutex.hpp" -#include "duckdb/storage/index.hpp" #include "duckdb/parser/constraint.hpp" +#include "duckdb/storage/index.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp b/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp index 71fba059..a0e325c3 100644 --- a/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/update_segment.hpp @@ -12,6 +12,7 @@ #include "duckdb/storage/storage_lock.hpp" #include "duckdb/storage/statistics/segment_statistics.hpp" #include "duckdb/common/types/string_heap.hpp" +#include "duckdb/transaction/undo_buffer_allocator.hpp" namespace duckdb { class ColumnData; @@ -19,6 +20,7 @@ class DataTable; class Vector; struct UpdateInfo; struct UpdateNode; +struct UndoBufferAllocator; class UpdateSegment { public: @@ -51,7 +53,7 @@ class UpdateSegment { private: //! The lock for the update segment - StorageLock lock; + mutable StorageLock lock; //! The root node (if any) unique_ptr root; //! Update statistics @@ -64,16 +66,16 @@ class UpdateSegment { StringHeap heap; public: - typedef void (*initialize_update_function_t)(UpdateInfo *base_info, Vector &base_data, UpdateInfo *update_info, + typedef void (*initialize_update_function_t)(UpdateInfo &base_info, Vector &base_data, UpdateInfo &update_info, Vector &update, const SelectionVector &sel); - typedef void (*merge_update_function_t)(UpdateInfo *base_info, Vector &base_data, UpdateInfo *update_info, + typedef void (*merge_update_function_t)(UpdateInfo &base_info, Vector &base_data, UpdateInfo &update_info, Vector &update, row_t *ids, idx_t count, const SelectionVector &sel); - typedef void (*fetch_update_function_t)(transaction_t start_time, transaction_t transaction_id, UpdateInfo *info, + typedef void (*fetch_update_function_t)(transaction_t start_time, transaction_t transaction_id, UpdateInfo &info, Vector &result); - typedef void (*fetch_committed_function_t)(UpdateInfo *info, Vector &result); - typedef void (*fetch_committed_range_function_t)(UpdateInfo *info, idx_t start, idx_t end, idx_t result_offset, + typedef void (*fetch_committed_function_t)(UpdateInfo &info, Vector &result); + typedef void (*fetch_committed_range_function_t)(UpdateInfo &info, idx_t start, idx_t end, idx_t result_offset, Vector &result); - typedef void (*fetch_row_function_t)(transaction_t start_time, transaction_t transaction_id, UpdateInfo *info, + typedef void (*fetch_row_function_t)(transaction_t start_time, transaction_t transaction_id, UpdateInfo &info, idx_t row_idx, Vector &result, idx_t result_idx); typedef void (*rollback_update_function_t)(UpdateInfo &base_info, UpdateInfo &rollback_info); typedef idx_t (*statistics_update_function_t)(UpdateSegment *segment, SegmentStatistics &stats, Vector &update, @@ -90,18 +92,18 @@ class UpdateSegment { statistics_update_function_t statistics_update_function; private: + UndoBufferPointer GetUpdateNode(idx_t vector_idx) const; + void InitializeUpdateInfo(idx_t vector_idx); void InitializeUpdateInfo(UpdateInfo &info, row_t *ids, const SelectionVector &sel, idx_t count, idx_t vector_index, idx_t vector_offset); }; -struct UpdateNodeData { - unique_ptr info; - unsafe_unique_array tuples; - unsafe_unique_array tuple_data; -}; - struct UpdateNode { - unique_ptr info[Storage::ROW_GROUP_VECTOR_COUNT]; + explicit UpdateNode(BufferManager &manager); + ~UpdateNode(); + + UndoBufferAllocator allocator; + vector info; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/table/validity_column_data.hpp b/src/duckdb/src/include/duckdb/storage/table/validity_column_data.hpp index dcabc739..286a5343 100644 --- a/src/duckdb/src/include/duckdb/storage/table/validity_column_data.hpp +++ b/src/duckdb/src/include/duckdb/storage/table/validity_column_data.hpp @@ -14,6 +14,8 @@ namespace duckdb { //! Validity column data represents the validity data (i.e. which values are null) class ValidityColumnData : public ColumnData { + friend class StandardColumnData; + public: ValidityColumnData(BlockManager &block_manager, DataTableInfo &info, idx_t column_index, idx_t start_row, ColumnData &parent); diff --git a/src/duckdb/src/include/duckdb/storage/table_io_manager.hpp b/src/duckdb/src/include/duckdb/storage/table_io_manager.hpp index eff63da0..babe1727 100644 --- a/src/duckdb/src/include/duckdb/storage/table_io_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/table_io_manager.hpp @@ -30,6 +30,9 @@ class TableIOManager { virtual BlockManager &GetBlockManagerForRowData() = 0; virtual MetadataManager &GetMetadataManager() = 0; + + //! Returns the target row group size for the table + virtual idx_t GetRowGroupSize() const = 0; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp b/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp index 49b3089c..493dd320 100644 --- a/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp +++ b/src/duckdb/src/include/duckdb/storage/table_storage_info.hpp @@ -31,6 +31,7 @@ struct ColumnSegmentInfo { bool has_updates; bool persistent; block_id_t block_id; + vector additional_blocks; idx_t block_offset; string segment_info; }; diff --git a/src/duckdb/src/include/duckdb/storage/temporary_file_manager.hpp b/src/duckdb/src/include/duckdb/storage/temporary_file_manager.hpp index e5587547..780b113e 100644 --- a/src/duckdb/src/include/duckdb/storage/temporary_file_manager.hpp +++ b/src/duckdb/src/include/duckdb/storage/temporary_file_manager.hpp @@ -9,73 +9,113 @@ #pragma once #include "duckdb/common/allocator.hpp" +#include "duckdb/common/array.hpp" #include "duckdb/common/atomic.hpp" +#include "duckdb/common/enum_class_hash.hpp" #include "duckdb/common/file_system.hpp" #include "duckdb/common/mutex.hpp" -#include "duckdb/storage/block_manager.hpp" -#include "duckdb/storage/buffer/block_handle.hpp" -#include "duckdb/storage/buffer/buffer_pool.hpp" +#include "duckdb/common/random_engine.hpp" +#include "duckdb/common/unordered_map.hpp" #include "duckdb/storage/buffer_manager.hpp" namespace duckdb { +class TemporaryFileManager; + //===--------------------------------------------------------------------===// -// BlockIndexManager +// TemporaryBufferSize //===--------------------------------------------------------------------===// +static constexpr uint64_t TEMPORARY_BUFFER_SIZE_GRANULARITY = 32ULL * 1024ULL; + +enum class TemporaryBufferSize : uint64_t { + INVALID = 0, + S32K = 32768, + S64K = 65536, + S96K = 98304, + S128K = 131072, + S160K = 163840, + S192K = 196608, + S224K = 229376, + DEFAULT = DEFAULT_BLOCK_ALLOC_SIZE, +}; -class TemporaryFileManager; +//===--------------------------------------------------------------------===// +// TemporaryFileIdentifier/TemporaryFileIndex +//===--------------------------------------------------------------------===// +struct TemporaryFileIdentifier { +public: + TemporaryFileIdentifier(); + TemporaryFileIdentifier(TemporaryBufferSize size, idx_t file_index); + +public: + //! Whether this temporary file identifier is valid (fields have been set) + bool IsValid() const; +public: + //! The size of the buffers within the temp file + TemporaryBufferSize size; + //! The index of the temp file + optional_idx file_index; +}; + +struct TemporaryFileIndex { +public: + TemporaryFileIndex(); + TemporaryFileIndex(TemporaryFileIdentifier identifier, idx_t block_index); + +public: + //! Whether this temporary file index is valid (fields have been set) + bool IsValid() const; + +public: + //! The identifier for the temporary file + TemporaryFileIdentifier identifier; + //! The block index within the temporary file + optional_idx block_index; +}; + +//===--------------------------------------------------------------------===// +// BlockIndexManager +//===--------------------------------------------------------------------===// struct BlockIndexManager { public: - explicit BlockIndexManager(TemporaryFileManager &manager); BlockIndexManager(); + explicit BlockIndexManager(TemporaryFileManager &manager); public: //! Obtains a new block index from the index manager - idx_t GetNewBlockIndex(); - //! Removes an index from the block manager - //! Returns true if the max_index has been altered - bool RemoveIndex(idx_t index); - idx_t GetMaxIndex(); - bool HasFreeBlocks(); + idx_t GetNewBlockIndex(TemporaryBufferSize size); + //! Removes an index from the block manager (returns true if the max_index has been altered) + bool RemoveIndex(idx_t index, TemporaryBufferSize size); + //! Get the maximum block index + idx_t GetMaxIndex() const; + //! Whether there are free blocks available within the file + bool HasFreeBlocks() const; private: - void SetMaxIndex(idx_t blocks); - idx_t GetNewBlockIndexInternal(); + //! Get/set max block index + idx_t GetNewBlockIndexInternal(TemporaryBufferSize size); + void SetMaxIndex(idx_t new_index, TemporaryBufferSize size); private: + //! The maximum block index idx_t max_index; + //! Free indexes within the file set free_indexes; + //! Used indexes within the file set indexes_in_use; + //! The TemporaryFileManager that "owns" this BlockIndexManager optional_ptr manager; }; -//===--------------------------------------------------------------------===// -// TemporaryFileIndex -//===--------------------------------------------------------------------===// - -// FIXME: should be optional_idx -struct TemporaryFileIndex { - explicit TemporaryFileIndex(idx_t file_index = DConstants::INVALID_INDEX, - idx_t block_index = DConstants::INVALID_INDEX); - - idx_t file_index; - idx_t block_index; - -public: - bool IsValid() const; -}; - //===--------------------------------------------------------------------===// // TemporaryFileHandle //===--------------------------------------------------------------------===// - class TemporaryFileHandle { constexpr static idx_t MAX_ALLOWED_INDEX_BASE = 4000; public: - TemporaryFileHandle(idx_t temp_file_count, DatabaseInstance &db, const string &temp_directory, idx_t index, - TemporaryFileManager &manager); + TemporaryFileHandle(TemporaryFileManager &manager, TemporaryFileIdentifier identifier, idx_t temp_file_count); public: struct TemporaryFileLock { @@ -87,99 +127,226 @@ class TemporaryFileHandle { }; public: + //! Try to get an index of where to write in this file. Returns an invalid index if full TemporaryFileIndex TryGetBlockIndex(); - void WriteTemporaryFile(FileBuffer &buffer, TemporaryFileIndex index); - unique_ptr ReadTemporaryBuffer(idx_t block_index, unique_ptr reusable_buffer); + //! Remove block index from this TemporaryFileHandle void EraseBlockIndex(block_id_t block_index); + + //! Read/Write temporary buffers at given positions in this file (potentially compressed) + unique_ptr ReadTemporaryBuffer(idx_t block_index, unique_ptr reusable_buffer) const; + void WriteTemporaryBuffer(FileBuffer &buffer, idx_t block_index, AllocatedData &compressed_buffer) const; + + //! Deletes the file if there are no more blocks bool DeleteIfEmpty(); + //! Get information about this temporary file TemporaryFileInformation GetTemporaryFile(); private: + //! Create temporary file if it did not exist yet void CreateFileIfNotExists(TemporaryFileLock &); + //! Remove block index from this file void RemoveTempBlockIndex(TemporaryFileLock &, idx_t index); - idx_t GetPositionInFile(idx_t index); + //! Get the position of a block in the file + idx_t GetPositionInFile(idx_t index) const; private: - const idx_t max_allowed_index; + //! Reference to the DB instance DatabaseInstance &db; + //! The identifier (size/file index) of this TemporaryFileHandle + const TemporaryFileIdentifier identifier; + //! The maximum allowed index + const idx_t max_allowed_index; + //! File path/handle + const string path; unique_ptr handle; - idx_t file_index; - string path; + //! Lock for concurrent access and block index manager mutex file_lock; BlockIndexManager index_manager; }; //===--------------------------------------------------------------------===// -// TemporaryDirectoryHandle +// TemporaryFileMap //===--------------------------------------------------------------------===// +class TemporaryFileMap { +private: + template + using temporary_buffer_size_map_t = unordered_map; + using temporary_file_map_t = unordered_map>; -class TemporaryDirectoryHandle { public: - TemporaryDirectoryHandle(DatabaseInstance &db, string path_p, optional_idx max_swap_space); - ~TemporaryDirectoryHandle(); + explicit TemporaryFileMap(TemporaryFileManager &manager); + void Clear(); + +public: + //! Gets the map for the given size + temporary_file_map_t &GetMapForSize(TemporaryBufferSize size); - TemporaryFileManager &GetTempFile(); + //! Get/create/erase a TemporaryFileHandle for a size/index + optional_ptr GetFile(const TemporaryFileIdentifier &identifier); + TemporaryFileHandle &CreateFile(const TemporaryFileIdentifier &identifier); + void EraseFile(const TemporaryFileIdentifier &identifier); private: - DatabaseInstance &db; - string temp_directory; - bool created_directory = false; - unique_ptr temp_file; + TemporaryFileManager &manager; + temporary_buffer_size_map_t files; }; //===--------------------------------------------------------------------===// -// TemporaryFileManager +// TemporaryFileCompressionLevel/TemporaryFileCompressionAdaptivity //===--------------------------------------------------------------------===// +enum class TemporaryCompressionLevel : int { + ZSTD_MINUS_FIVE = -5, + ZSTD_MINUS_THREE = -3, + ZSTD_MINUS_ONE = -1, + UNCOMPRESSED = 0, + ZSTD_ONE = 1, + ZSTD_THREE = 3, + ZSTD_FIVE = 5, +}; + +class TemporaryFileCompressionAdaptivity { +public: + TemporaryFileCompressionAdaptivity(); + +public: + //! Get current time in nanoseconds to measure write times + static int64_t GetCurrentTimeNanos(); + //! Get the compression level to use based on current write times + TemporaryCompressionLevel GetCompressionLevel(); + //! Update write time for given compression level + void Update(TemporaryCompressionLevel level, int64_t time_before_ns); + +private: + //! Convert from level to index into write time array and back + static TemporaryCompressionLevel IndexToLevel(idx_t index); + static idx_t LevelToIndex(TemporaryCompressionLevel level); + //! Min/max compression levels + static TemporaryCompressionLevel MinimumCompressionLevel(); + static TemporaryCompressionLevel MaximumCompressionLevel(); +private: + //! The value to initialize the atomic write counters to + static constexpr int64_t INITIAL_NS = 50000; + //! How many compression levels we adapt between + static constexpr idx_t LEVELS = 6; + //! Bias towards compressed writes: we only choose uncompressed if it is more than 2x faster than compressed + static constexpr double DURATION_RATIO_THRESHOLD = 2.0; + //! Probability to deviate from the current best write behavior (1 in 20) + static constexpr double COMPRESSION_DEVIATION = 0.5; + //! Weight to use for moving weighted average + static constexpr int64_t WEIGHT = 16; + + //! Random engine to (sometimes) randomize compression + RandomEngine random_engine; + //! Duration of the last uncompressed write + int64_t last_uncompressed_write_ns; + //! Duration of the last compressed writes + int64_t last_compressed_writes_ns[LEVELS]; +}; + +//===--------------------------------------------------------------------===// +// TemporaryFileManager +//===--------------------------------------------------------------------===// class TemporaryFileManager { + friend struct BlockIndexManager; + friend class TemporaryFileHandle; + public: TemporaryFileManager(DatabaseInstance &db, const string &temp_directory_p); ~TemporaryFileManager(); +private: + struct CompressionResult { + TemporaryBufferSize size; + TemporaryCompressionLevel level; + }; + public: - struct TemporaryManagerLock { + struct TemporaryFileManagerLock { public: - explicit TemporaryManagerLock(mutex &mutex); + explicit TemporaryFileManagerLock(mutex &mutex); public: lock_guard lock; }; + //! Create/Read/Update/Delete operations for temporary buffers void WriteTemporaryBuffer(block_id_t block_id, FileBuffer &buffer); bool HasTemporaryBuffer(block_id_t block_id); unique_ptr ReadTemporaryBuffer(block_id_t id, unique_ptr reusable_buffer); void DeleteTemporaryBuffer(block_id_t id); + + //! Get the list of temporary files and their sizes vector GetTemporaryFiles(); - idx_t GetTotalUsedSpaceInBytes(); + + //! Get/set maximum swap space optional_idx GetMaxSwapSpace() const; void SetMaxSwapSpace(optional_idx limit); + + //! Get temporary file size + idx_t GetTotalUsedSpaceInBytes() const; //! Register temporary file size growth void IncreaseSizeOnDisk(idx_t amount); //! Register temporary file size decrease void DecreaseSizeOnDisk(idx_t amount); private: - void EraseUsedBlock(TemporaryManagerLock &lock, block_id_t id, TemporaryFileHandle *handle, + //! Compress buffer, write it in compressed_buffer and return the size/level + CompressionResult CompressBuffer(TemporaryFileCompressionAdaptivity &compression_adaptivity, FileBuffer &buffer, + AllocatedData &compressed_buffer); + + //! Create file name for given size/index + string CreateTemporaryFileName(const TemporaryFileIdentifier &identifier) const; + + //! Get/erase a temporary block + TemporaryFileIndex GetTempBlockIndex(TemporaryFileManagerLock &, block_id_t id); + void EraseUsedBlock(TemporaryFileManagerLock &lock, block_id_t id, TemporaryFileHandle &handle, TemporaryFileIndex index); - TemporaryFileHandle *GetFileHandle(TemporaryManagerLock &, idx_t index); - TemporaryFileIndex GetTempBlockIndex(TemporaryManagerLock &, block_id_t id); - void EraseFileHandle(TemporaryManagerLock &, idx_t file_index); + + //! Get/erase a temporary file handle + optional_ptr GetFileHandle(TemporaryFileManagerLock &, + const TemporaryFileIdentifier &identifier); + void EraseFileHandle(TemporaryFileManagerLock &, const TemporaryFileIdentifier &identifier); private: + //! Reference to the DB instance DatabaseInstance &db; - mutex manager_lock; //! The temporary directory string temp_directory; + //! Lock for parallel access + mutex manager_lock; //! The set of active temporary file handles - unordered_map> files; - //! map of block_id -> temporary file position + TemporaryFileMap files; + //! Map of block_id -> temporary file position unordered_map used_blocks; - //! Manager of in-use temporary file indexes - BlockIndexManager index_manager; + //! Map of TemporaryBufferSize -> manager of in-use temporary file indexes + unordered_map index_managers; //! The size in bytes of the temporary files that are currently alive atomic size_on_disk; //! The max amount of disk space that can be used idx_t max_swap_space; + //! How many compression adaptivities we have so that threads don't all share the same one + static constexpr idx_t COMPRESSION_ADAPTIVITIES = 64; + //! Class that oversees when/how much to compress + array compression_adaptivities; +}; + +//===--------------------------------------------------------------------===// +// TemporaryDirectoryHandle +//===--------------------------------------------------------------------===// +class TemporaryDirectoryHandle { +public: + TemporaryDirectoryHandle(DatabaseInstance &db, string path_p, optional_idx max_swap_space); + ~TemporaryDirectoryHandle(); + +public: + TemporaryFileManager &GetTempFile() const; + +private: + DatabaseInstance &db; + string temp_directory; + bool created_directory = false; + unique_ptr temp_file; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp b/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp index a5e295f2..8b2acc11 100644 --- a/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp +++ b/src/duckdb/src/include/duckdb/storage/write_ahead_log.hpp @@ -38,6 +38,8 @@ class TransactionManager; class WriteAheadLogDeserializer; struct PersistentCollectionData; +enum class WALInitState { NO_WAL, UNINITIALIZED, UNINITIALIZED_REQUIRES_TRUNCATE, INITIALIZED }; + //! The WriteAheadLog (WAL) is a log that is used to provide durability. Prior //! to committing a transaction it writes the changes the transaction made to //! the database to the log, which can then be replayed upon startup in case the @@ -45,22 +47,21 @@ struct PersistentCollectionData; class WriteAheadLog { public: //! Initialize the WAL in the specified directory - explicit WriteAheadLog(AttachedDatabase &database, const string &wal_path); + explicit WriteAheadLog(AttachedDatabase &database, const string &wal_path, idx_t wal_size = 0ULL, + WALInitState state = WALInitState::NO_WAL); virtual ~WriteAheadLog(); public: - //! Replay the WAL - static bool Replay(AttachedDatabase &database, unique_ptr handle); + //! Replay and initialize the WAL + static unique_ptr Replay(FileSystem &fs, AttachedDatabase &database, const string &wal_path); //! Gets the total bytes written to the WAL since startup - idx_t GetWALSize(); + idx_t GetWALSize() const; //! Gets the total bytes written to the WAL since startup - idx_t GetTotalWritten(); + idx_t GetTotalWritten() const; //! A WAL is initialized, if a writer to a file exists. - bool Initialized() { - return initialized; - } + bool Initialized() const; //! Initializes the file of the WAL by creating the file writer. BufferedFileWriter &Initialize(); @@ -93,7 +94,7 @@ class WriteAheadLog { //! Sets the table used for subsequent insert/delete/update commands void WriteSetTable(const string &schema, const string &table); - void WriteAlter(const AlterInfo &info); + void WriteAlter(CatalogEntry &entry, const AlterInfo &info); void WriteInsert(DataChunk &chunk); void WriteRowGroupData(const PersistentCollectionData &data); @@ -116,13 +117,16 @@ class WriteAheadLog { void WriteCheckpoint(MetaBlockPointer meta_block); +protected: + static unique_ptr ReplayInternal(AttachedDatabase &database, unique_ptr handle); + protected: AttachedDatabase &database; mutex wal_lock; unique_ptr writer; string wal_path; atomic wal_size; - atomic initialized; + atomic init_state; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/transaction/commit_state.hpp b/src/duckdb/src/include/duckdb/transaction/commit_state.hpp index d92056d3..382de729 100644 --- a/src/duckdb/src/include/duckdb/transaction/commit_state.hpp +++ b/src/duckdb/src/include/duckdb/transaction/commit_state.hpp @@ -14,6 +14,7 @@ namespace duckdb { class CatalogEntry; class DataChunk; +class DuckTransaction; class WriteAheadLog; class ClientContext; @@ -23,7 +24,7 @@ struct UpdateInfo; class CommitState { public: - explicit CommitState(transaction_t commit_id); + explicit CommitState(DuckTransaction &transaction, transaction_t commit_id); public: void CommitEntry(UndoFlags type, data_ptr_t data); @@ -33,6 +34,7 @@ class CommitState { void CommitEntryDrop(CatalogEntry &entry, data_ptr_t extra_data); private: + DuckTransaction &transaction; transaction_t commit_id; }; diff --git a/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp b/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp index efc23621..e17c048b 100644 --- a/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp +++ b/src/duckdb/src/include/duckdb/transaction/duck_transaction.hpp @@ -10,6 +10,8 @@ #include "duckdb/transaction/transaction.hpp" #include "duckdb/common/reference_map.hpp" +#include "duckdb/common/error_data.hpp" +#include "duckdb/transaction/undo_buffer.hpp" namespace duckdb { class CheckpointLock; @@ -57,7 +59,7 @@ class DuckTransaction : public Transaction { bool AutomaticCheckpoint(AttachedDatabase &db, const UndoBufferProperties &properties); //! Rollback - void Rollback() noexcept; + ErrorData Rollback(); //! Cleanup the undo buffer void Cleanup(transaction_t lowest_active_transaction); @@ -68,7 +70,7 @@ class DuckTransaction : public Transaction { idx_t base_row); void PushSequenceUsage(SequenceCatalogEntry &entry, const SequenceData &data); void PushAppend(DataTable &table, idx_t row_start, idx_t row_count); - UpdateInfo *CreateUpdateInfo(idx_t type_size, idx_t entries); + UndoBufferReference CreateUpdateInfo(idx_t type_size, idx_t entries); bool IsDuckTransaction() const override { return true; @@ -101,8 +103,12 @@ class DuckTransaction : public Transaction { reference_map_t> updated_collections; //! Lock for the active_locks map mutex active_locks_lock; + struct ActiveTableLock { + mutex checkpoint_lock_mutex; // protects access to the checkpoint_lock field in this class + weak_ptr checkpoint_lock; + }; //! Active locks on tables - reference_map_t> active_locks; + reference_map_t> active_locks; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp b/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp index 0371d4e9..deaaf0b4 100644 --- a/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp +++ b/src/duckdb/src/include/duckdb/transaction/duck_transaction_manager.hpp @@ -14,6 +14,7 @@ namespace duckdb { class DuckTransaction; +struct UndoBufferProperties; //! The Transaction Manager is responsible for creating and managing //! transactions diff --git a/src/duckdb/src/include/duckdb/transaction/local_storage.hpp b/src/duckdb/src/include/duckdb/transaction/local_storage.hpp index 1d070477..7ef26898 100644 --- a/src/duckdb/src/include/duckdb/transaction/local_storage.hpp +++ b/src/duckdb/src/include/duckdb/transaction/local_storage.hpp @@ -12,6 +12,7 @@ #include "duckdb/storage/table/table_index_list.hpp" #include "duckdb/storage/table/table_statistics.hpp" #include "duckdb/storage/optimistic_data_writer.hpp" +#include "duckdb/common/error_data.hpp" #include "duckdb/common/reference_map.hpp" namespace duckdb { @@ -30,7 +31,7 @@ class LocalTableStorage : public enable_shared_from_this { explicit LocalTableStorage(ClientContext &context, DataTable &table); // Create a LocalTableStorage from an ALTER TYPE LocalTableStorage(ClientContext &context, DataTable &table, LocalTableStorage &parent, idx_t changed_idx, - const LogicalType &target_type, const vector &bound_columns, Expression &cast_expr); + const LogicalType &target_type, const vector &bound_columns, Expression &cast_expr); // Create a LocalTableStorage from a DROP COLUMN LocalTableStorage(DataTable &table, LocalTableStorage &parent, idx_t drop_idx); // Create a LocalTableStorage from an ADD COLUMN @@ -91,10 +92,6 @@ class LocalTableManager { //! The LocalStorage class holds appends that have not been committed yet class LocalStorage { -public: - // Threshold to merge row groups instead of appending - static constexpr const idx_t MERGE_THRESHOLD = Storage::ROW_GROUP_SIZE; - public: struct CommitState { CommitState(); @@ -113,7 +110,7 @@ class LocalStorage { //! Initialize a scan of the local storage void InitializeScan(DataTable &table, CollectionScanState &state, optional_ptr table_filters); //! Scan - void Scan(CollectionScanState &state, const vector &column_ids, DataChunk &result); + void Scan(CollectionScanState &state, const vector &column_ids, DataChunk &result); void InitializeParallelScan(DataTable &table, ParallelCollectionScanState &state); bool NextParallelScan(ClientContext &context, DataTable &table, ParallelCollectionScanState &state, @@ -153,11 +150,11 @@ class LocalStorage { ExpressionExecutor &default_executor); void DropColumn(DataTable &old_dt, DataTable &new_dt, idx_t removed_column); void ChangeType(DataTable &old_dt, DataTable &new_dt, idx_t changed_idx, const LogicalType &target_type, - const vector &bound_columns, Expression &cast_expr); + const vector &bound_columns, Expression &cast_expr); void MoveStorage(DataTable &old_dt, DataTable &new_dt); - void FetchChunk(DataTable &table, Vector &row_ids, idx_t count, const vector &col_ids, DataChunk &chunk, - ColumnFetchState &fetch_state); + void FetchChunk(DataTable &table, Vector &row_ids, idx_t count, const vector &col_ids, + DataChunk &chunk, ColumnFetchState &fetch_state); TableIndexList &GetIndexes(DataTable &table); void VerifyNewConstraint(DataTable &parent, const BoundConstraint &constraint); diff --git a/src/duckdb/src/include/duckdb/transaction/rollback_state.hpp b/src/duckdb/src/include/duckdb/transaction/rollback_state.hpp index 19d6cdad..3195c2a6 100644 --- a/src/duckdb/src/include/duckdb/transaction/rollback_state.hpp +++ b/src/duckdb/src/include/duckdb/transaction/rollback_state.hpp @@ -13,15 +13,18 @@ namespace duckdb { class DataChunk; class DataTable; +class DuckTransaction; class WriteAheadLog; class RollbackState { public: - RollbackState() { - } + explicit RollbackState(DuckTransaction &transaction); public: void RollbackEntry(UndoFlags type, data_ptr_t data); + +private: + DuckTransaction &transaction; }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/transaction/transaction.hpp b/src/duckdb/src/include/duckdb/transaction/transaction.hpp index a2122a68..db0a90ee 100644 --- a/src/duckdb/src/include/duckdb/transaction/transaction.hpp +++ b/src/duckdb/src/include/duckdb/transaction/transaction.hpp @@ -10,10 +10,9 @@ #include "duckdb/catalog/catalog_entry/sequence_catalog_entry.hpp" #include "duckdb/common/types/data_chunk.hpp" -#include "duckdb/transaction/undo_buffer.hpp" -#include "duckdb/common/atomic.hpp" #include "duckdb/transaction/transaction_data.hpp" #include "duckdb/common/shared_ptr.hpp" +#include "duckdb/common/atomic.hpp" namespace duckdb { class SequenceCatalogEntry; diff --git a/src/duckdb/src/include/duckdb/transaction/transaction_manager.hpp b/src/duckdb/src/include/duckdb/transaction/transaction_manager.hpp index 2e37b882..c117ab09 100644 --- a/src/duckdb/src/include/duckdb/transaction/transaction_manager.hpp +++ b/src/duckdb/src/include/duckdb/transaction/transaction_manager.hpp @@ -12,7 +12,7 @@ #include "duckdb/common/common.hpp" #include "duckdb/common/mutex.hpp" #include "duckdb/common/vector.hpp" - +#include "duckdb/common/error_data.hpp" #include "duckdb/common/atomic.hpp" namespace duckdb { diff --git a/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp b/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp index 0eb86522..7218bb87 100644 --- a/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp +++ b/src/duckdb/src/include/duckdb/transaction/undo_buffer.hpp @@ -10,16 +10,20 @@ #include "duckdb/common/common.hpp" #include "duckdb/common/enums/undo_flags.hpp" -#include "duckdb/storage/arena_allocator.hpp" +#include "duckdb/transaction/undo_buffer_allocator.hpp" namespace duckdb { +class BufferManager; +class DuckTransaction; class StorageCommitState; class WriteAheadLog; +struct UndoBufferPointer; struct UndoBufferProperties { idx_t estimated_size = 0; bool has_updates = false; bool has_deletes = false; + bool has_index_deletes = false; bool has_catalog_changes = false; bool has_dropped_entries = false; }; @@ -30,17 +34,17 @@ struct UndoBufferProperties { class UndoBuffer { public: struct IteratorState { - ArenaChunk *current; + BufferHandle handle; + optional_ptr current; data_ptr_t start; data_ptr_t end; }; public: - explicit UndoBuffer(ClientContext &context); + explicit UndoBuffer(DuckTransaction &transaction, ClientContext &context); - //! Reserve space for an entry of the specified type and length in the undo - //! buffer - data_ptr_t CreateEntry(UndoFlags type, idx_t len); + //! Write a specified entry to the undo buffer + UndoBufferReference CreateEntry(UndoFlags type, idx_t len); bool ChangesMade(); UndoBufferProperties GetProperties(); @@ -55,10 +59,11 @@ class UndoBuffer { void RevertCommit(UndoBuffer::IteratorState &iterator_state, transaction_t transaction_id); //! Rollback the changes made in this UndoBuffer: should be called on //! rollback - void Rollback() noexcept; + void Rollback(); private: - ArenaAllocator allocator; + DuckTransaction &transaction; + UndoBufferAllocator allocator; private: template diff --git a/src/duckdb/src/include/duckdb/transaction/undo_buffer_allocator.hpp b/src/duckdb/src/include/duckdb/transaction/undo_buffer_allocator.hpp new file mode 100644 index 00000000..a318fe8f --- /dev/null +++ b/src/duckdb/src/include/duckdb/transaction/undo_buffer_allocator.hpp @@ -0,0 +1,79 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// +// duckdb/transaction/undo_buffer_allocator.hpp +// +// +//===----------------------------------------------------------------------===// + +#pragma once + +#include "duckdb/common/common.hpp" +#include "duckdb/storage/buffer/buffer_handle.hpp" + +namespace duckdb { +class BufferManager; +class BlockHandle; +struct UndoBufferEntry; +struct UndoBufferPointer; + +struct UndoBufferEntry { + explicit UndoBufferEntry(BufferManager &buffer_manager) : buffer_manager(buffer_manager) { + } + ~UndoBufferEntry(); + + BufferManager &buffer_manager; + shared_ptr block; + idx_t position = 0; + idx_t capacity = 0; + unique_ptr next; + optional_ptr prev; +}; + +struct UndoBufferReference { + UndoBufferReference() : entry(nullptr), position(0) { + } + UndoBufferReference(UndoBufferEntry &entry_p, BufferHandle handle_p, idx_t position) + : entry(&entry_p), handle(std::move(handle_p)), position(position) { + } + + optional_ptr entry; + BufferHandle handle; + idx_t position; + + data_ptr_t Ptr() { + return handle.Ptr() + position; + } + bool IsSet() const { + return entry; + } + + UndoBufferPointer GetBufferPointer(); +}; + +struct UndoBufferPointer { + UndoBufferPointer() : entry(nullptr), position(0) { + } + UndoBufferPointer(UndoBufferEntry &entry_p, idx_t position) : entry(&entry_p), position(position) { + } + + UndoBufferEntry *entry; + idx_t position; + + UndoBufferReference Pin() const; + bool IsSet() const { + return entry; + } +}; + +struct UndoBufferAllocator { + explicit UndoBufferAllocator(BufferManager &buffer_manager); + + UndoBufferReference Allocate(idx_t alloc_len); + + BufferManager &buffer_manager; + unique_ptr head; + optional_ptr tail; +}; + +} // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/transaction/update_info.hpp b/src/duckdb/src/include/duckdb/transaction/update_info.hpp index e7dc7dfc..7cccd923 100644 --- a/src/duckdb/src/include/duckdb/transaction/update_info.hpp +++ b/src/duckdb/src/include/duckdb/transaction/update_info.hpp @@ -11,12 +11,18 @@ #include "duckdb/common/constants.hpp" #include "duckdb/common/types/vector.hpp" #include "duckdb/common/types/validity_mask.hpp" +#include "duckdb/transaction/undo_buffer_allocator.hpp" #include "duckdb/common/atomic.hpp" namespace duckdb { class UpdateSegment; struct DataTableInfo; +//! UpdateInfo is a class that represents a set of updates applied to a single vector. +//! The UpdateInfo struct contains metadata associated with the update. +//! After the UpdateInfo, we must ALWAYS allocate the list of tuples and the data as contiguous arrays: +//! [UpdateInfo][TUPLES (sel_t[max])][DATA (T[max])] +//! The required allocation size can be obtained using UpdateInfo::GetAllocSize struct UpdateInfo { //! The update segment that this update info affects UpdateSegment *segment; @@ -30,27 +36,44 @@ struct UpdateInfo { sel_t N; // NOLINT //! The maximum amount of tuples that can fit into this UpdateInfo sel_t max; - //! The row ids of the tuples that have been updated. This should always be kept sorted! - sel_t *tuples; - //! The data of the tuples - data_ptr_t tuple_data; //! The previous update info (or nullptr if it is the base) - UpdateInfo *prev; + UndoBufferPointer prev; //! The next update info in the chain (or nullptr if it is the last) - UpdateInfo *next; + UndoBufferPointer next; + + //! The row ids of the tuples that have been updated. This should always be kept sorted! + sel_t *GetTuples(); + + //! The update values + data_ptr_t GetValues(); + + template + T *GetData() { + return reinterpret_cast(GetValues()); + } + + bool AppliesToTransaction(transaction_t start_time, transaction_t transaction_id) { + // these tuples were either committed AFTER this transaction started or are not committed yet, use + // tuples stored in this version + return version_number > start_time && version_number != transaction_id; + } //! Loop over the update chain and execute the specified callback on all UpdateInfo's that are relevant for that //! transaction in-order of newest to oldest template - static void UpdatesForTransaction(UpdateInfo *current, transaction_t start_time, transaction_t transaction_id, + static void UpdatesForTransaction(UpdateInfo ¤t, transaction_t start_time, transaction_t transaction_id, T &&callback) { - while (current) { - if (current->version_number > start_time && current->version_number != transaction_id) { - // these tuples were either committed AFTER this transaction started or are not committed yet, use - // tuples stored in this version - callback(current); + if (current.AppliesToTransaction(start_time, transaction_id)) { + callback(current); + } + auto update_ptr = current.next; + while (update_ptr.IsSet()) { + auto pin = update_ptr.Pin(); + auto &info = Get(pin); + if (info.AppliesToTransaction(start_time, transaction_id)) { + callback(info); } - current = current->next; + update_ptr = info.next; } } @@ -58,6 +81,13 @@ struct UpdateInfo { string ToString(); void Print(); void Verify(); + bool HasPrev() const; + bool HasNext() const; + static UpdateInfo &Get(UndoBufferReference &entry); + //! Returns the total allocation size for an UpdateInfo entry, together with space for the tuple data + static idx_t GetAllocSize(idx_t type_size); + //! Initialize an UpdateInfo struct that has been allocated using GetAllocSize (i.e. has extra space after it) + static void Initialize(UpdateInfo &info, transaction_t transaction_id); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/transaction/wal_write_state.hpp b/src/duckdb/src/include/duckdb/transaction/wal_write_state.hpp index 0a4b1e1c..aad1a672 100644 --- a/src/duckdb/src/include/duckdb/transaction/wal_write_state.hpp +++ b/src/duckdb/src/include/duckdb/transaction/wal_write_state.hpp @@ -14,6 +14,7 @@ namespace duckdb { class CatalogEntry; class DataChunk; +class DuckTransaction; class WriteAheadLog; class ClientContext; @@ -23,7 +24,8 @@ struct UpdateInfo; class WALWriteState { public: - explicit WALWriteState(WriteAheadLog &log, optional_ptr commit_state); + explicit WALWriteState(DuckTransaction &transaction, WriteAheadLog &log, + optional_ptr commit_state); public: void CommitEntry(UndoFlags type, data_ptr_t data); @@ -36,6 +38,7 @@ class WALWriteState { void WriteUpdate(UpdateInfo &info); private: + DuckTransaction &transaction; WriteAheadLog &log; optional_ptr commit_state; diff --git a/src/duckdb/src/include/duckdb/verification/copied_statement_verifier.hpp b/src/duckdb/src/include/duckdb/verification/copied_statement_verifier.hpp index 1df929c6..0e1d021c 100644 --- a/src/duckdb/src/include/duckdb/verification/copied_statement_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/copied_statement_verifier.hpp @@ -14,8 +14,10 @@ namespace duckdb { class CopiedStatementVerifier : public StatementVerifier { public: - explicit CopiedStatementVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement_p); + explicit CopiedStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement_p, + optional_ptr> parameters); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier.hpp b/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier.hpp index 78b2ff1e..af21d57d 100644 --- a/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/deserialized_statement_verifier.hpp @@ -14,8 +14,10 @@ namespace duckdb { class DeserializedStatementVerifier : public StatementVerifier { public: - explicit DeserializedStatementVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement); + explicit DeserializedStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement, + optional_ptr> parameters); }; } // namespace duckdb diff --git a/src/duckdb/src/include/duckdb/verification/external_statement_verifier.hpp b/src/duckdb/src/include/duckdb/verification/external_statement_verifier.hpp index 91d551f0..a46d9766 100644 --- a/src/duckdb/src/include/duckdb/verification/external_statement_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/external_statement_verifier.hpp @@ -14,8 +14,10 @@ namespace duckdb { class ExternalStatementVerifier : public StatementVerifier { public: - explicit ExternalStatementVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement); + explicit ExternalStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement, + optional_ptr> parameters); bool ForceExternal() const override { return true; diff --git a/src/duckdb/src/include/duckdb/verification/fetch_row_verifier.hpp b/src/duckdb/src/include/duckdb/verification/fetch_row_verifier.hpp index 007e9865..f4b75761 100644 --- a/src/duckdb/src/include/duckdb/verification/fetch_row_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/fetch_row_verifier.hpp @@ -14,8 +14,10 @@ namespace duckdb { class FetchRowVerifier : public StatementVerifier { public: - explicit FetchRowVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement_p); + explicit FetchRowVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement_p, + optional_ptr> parameters); bool ForceFetchRow() const override { return true; diff --git a/src/duckdb/src/include/duckdb/verification/no_operator_caching_verifier.hpp b/src/duckdb/src/include/duckdb/verification/no_operator_caching_verifier.hpp index 51a97d35..66b99db2 100644 --- a/src/duckdb/src/include/duckdb/verification/no_operator_caching_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/no_operator_caching_verifier.hpp @@ -14,8 +14,10 @@ namespace duckdb { class NoOperatorCachingVerifier : public StatementVerifier { public: - explicit NoOperatorCachingVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement_p); + explicit NoOperatorCachingVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement_p, + optional_ptr> parameters); bool DisableOperatorCaching() const override { return true; diff --git a/src/duckdb/src/include/duckdb/verification/parsed_statement_verifier.hpp b/src/duckdb/src/include/duckdb/verification/parsed_statement_verifier.hpp index 5448d5f8..d689eecb 100644 --- a/src/duckdb/src/include/duckdb/verification/parsed_statement_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/parsed_statement_verifier.hpp @@ -14,8 +14,10 @@ namespace duckdb { class ParsedStatementVerifier : public StatementVerifier { public: - explicit ParsedStatementVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement); + explicit ParsedStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement, + optional_ptr> parameters); bool RequireEquality() const override { return false; diff --git a/src/duckdb/src/include/duckdb/verification/prepared_statement_verifier.hpp b/src/duckdb/src/include/duckdb/verification/prepared_statement_verifier.hpp index 23c7593a..c34598c9 100644 --- a/src/duckdb/src/include/duckdb/verification/prepared_statement_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/prepared_statement_verifier.hpp @@ -14,11 +14,15 @@ namespace duckdb { class PreparedStatementVerifier : public StatementVerifier { public: - explicit PreparedStatementVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement_p); + explicit PreparedStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement_p, + optional_ptr> parameters); bool Run(ClientContext &context, const string &query, - const std::function(const string &, unique_ptr)> &run) override; + const std::function(const string &, unique_ptr, + optional_ptr>)> + &run) override; private: case_insensitive_map_t> values; diff --git a/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp b/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp index 27ce92a3..63d52393 100644 --- a/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/statement_verifier.hpp @@ -30,9 +30,12 @@ enum class VerificationType : uint8_t { class StatementVerifier { public: - StatementVerifier(VerificationType type, string name, unique_ptr statement_p); - explicit StatementVerifier(unique_ptr statement_p); - static unique_ptr Create(VerificationType type, const SQLStatement &statement_p); + StatementVerifier(VerificationType type, string name, unique_ptr statement_p, + optional_ptr> values); + explicit StatementVerifier(unique_ptr statement_p, + optional_ptr> values); + static unique_ptr Create(VerificationType type, const SQLStatement &statement_p, + optional_ptr> values); virtual ~StatementVerifier() noexcept; //! Check whether expressions in this verifier and the other verifier match @@ -41,8 +44,10 @@ class StatementVerifier { void CheckExpressions() const; //! Run the select statement and store the result - virtual bool Run(ClientContext &context, const string &query, - const std::function(const string &, unique_ptr)> &run); + virtual bool + Run(ClientContext &context, const string &query, + const std::function(const string &, unique_ptr, + optional_ptr>)> &run); //! Compare this verifier's results with another verifier string CompareResults(const StatementVerifier &other); @@ -50,6 +55,7 @@ class StatementVerifier { const VerificationType type; const string name; unique_ptr statement; + optional_ptr> parameters; const vector> &select_list; unique_ptr materialized_result; diff --git a/src/duckdb/src/include/duckdb/verification/unoptimized_statement_verifier.hpp b/src/duckdb/src/include/duckdb/verification/unoptimized_statement_verifier.hpp index 4d71b2e7..6521bb9c 100644 --- a/src/duckdb/src/include/duckdb/verification/unoptimized_statement_verifier.hpp +++ b/src/duckdb/src/include/duckdb/verification/unoptimized_statement_verifier.hpp @@ -14,8 +14,10 @@ namespace duckdb { class UnoptimizedStatementVerifier : public StatementVerifier { public: - explicit UnoptimizedStatementVerifier(unique_ptr statement_p); - static unique_ptr Create(const SQLStatement &statement_p); + explicit UnoptimizedStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters); + static unique_ptr Create(const SQLStatement &statement_p, + optional_ptr> parameters); bool DisableOptimizer() const override { return true; diff --git a/src/duckdb/src/include/duckdb_extension.h b/src/duckdb/src/include/duckdb_extension.h index c70eb8a8..34850d2c 100644 --- a/src/duckdb/src/include/duckdb_extension.h +++ b/src/duckdb/src/include/duckdb_extension.h @@ -486,6 +486,39 @@ typedef struct { duckdb_data_chunk (*duckdb_stream_fetch_chunk)(duckdb_result result); #endif +#ifdef DUCKDB_EXTENSION_API_VERSION_DEV // dev + // WARNING! the functions below are not (yet) stable + + duckdb_state (*duckdb_appender_create_ext)(duckdb_connection connection, const char *catalog, const char *schema, + const char *table, duckdb_appender *out_appender); + duckdb_state (*duckdb_table_description_create_ext)(duckdb_connection connection, const char *catalog, + const char *schema, const char *table, + duckdb_table_description *out); + char *(*duckdb_table_description_get_column_name)(duckdb_table_description table_description, idx_t index); + duckdb_logical_type (*duckdb_param_logical_type)(duckdb_prepared_statement prepared_statement, idx_t param_idx); + bool (*duckdb_is_null_value)(duckdb_value value); + duckdb_value (*duckdb_create_null_value)(); + idx_t (*duckdb_get_list_size)(duckdb_value value); + duckdb_value (*duckdb_get_list_child)(duckdb_value value, idx_t index); + duckdb_value (*duckdb_create_enum_value)(duckdb_logical_type type, uint64_t value); + uint64_t (*duckdb_get_enum_value)(duckdb_value value); + duckdb_value (*duckdb_get_struct_child)(duckdb_value value, idx_t index); + duckdb_state (*duckdb_appender_add_column)(duckdb_appender appender, const char *name); + duckdb_state (*duckdb_appender_clear_columns)(duckdb_appender appender); + bool (*duckdb_is_finite_timestamp_s)(duckdb_timestamp_s ts); + bool (*duckdb_is_finite_timestamp_ms)(duckdb_timestamp_ms ts); + bool (*duckdb_is_finite_timestamp_ns)(duckdb_timestamp_ns ts); + duckdb_value (*duckdb_create_timestamp_tz)(duckdb_timestamp input); + duckdb_value (*duckdb_create_timestamp_s)(duckdb_timestamp_s input); + duckdb_value (*duckdb_create_timestamp_ms)(duckdb_timestamp_ms input); + duckdb_value (*duckdb_create_timestamp_ns)(duckdb_timestamp_ns input); + duckdb_timestamp (*duckdb_get_timestamp_tz)(duckdb_value val); + duckdb_timestamp_s (*duckdb_get_timestamp_s)(duckdb_value val); + duckdb_timestamp_ms (*duckdb_get_timestamp_ms)(duckdb_value val); + duckdb_timestamp_ns (*duckdb_get_timestamp_ns)(duckdb_value val); + duckdb_state (*duckdb_append_value)(duckdb_appender appender, duckdb_value value); +#endif + } duckdb_ext_api_v0; //===--------------------------------------------------------------------===// @@ -865,6 +898,33 @@ typedef struct { #define duckdb_register_cast_function duckdb_ext_api.duckdb_register_cast_function #define duckdb_destroy_cast_function duckdb_ext_api.duckdb_destroy_cast_function +// Version dev +#define duckdb_is_finite_timestamp_s duckdb_ext_api.duckdb_is_finite_timestamp_s +#define duckdb_is_finite_timestamp_ms duckdb_ext_api.duckdb_is_finite_timestamp_ms +#define duckdb_is_finite_timestamp_ns duckdb_ext_api.duckdb_is_finite_timestamp_ns +#define duckdb_param_logical_type duckdb_ext_api.duckdb_param_logical_type +#define duckdb_create_timestamp_tz duckdb_ext_api.duckdb_create_timestamp_tz +#define duckdb_create_timestamp_s duckdb_ext_api.duckdb_create_timestamp_s +#define duckdb_create_timestamp_ms duckdb_ext_api.duckdb_create_timestamp_ms +#define duckdb_create_timestamp_ns duckdb_ext_api.duckdb_create_timestamp_ns +#define duckdb_get_timestamp_tz duckdb_ext_api.duckdb_get_timestamp_tz +#define duckdb_get_timestamp_s duckdb_ext_api.duckdb_get_timestamp_s +#define duckdb_get_timestamp_ms duckdb_ext_api.duckdb_get_timestamp_ms +#define duckdb_get_timestamp_ns duckdb_ext_api.duckdb_get_timestamp_ns +#define duckdb_is_null_value duckdb_ext_api.duckdb_is_null_value +#define duckdb_create_null_value duckdb_ext_api.duckdb_create_null_value +#define duckdb_get_list_size duckdb_ext_api.duckdb_get_list_size +#define duckdb_get_list_child duckdb_ext_api.duckdb_get_list_child +#define duckdb_create_enum_value duckdb_ext_api.duckdb_create_enum_value +#define duckdb_get_enum_value duckdb_ext_api.duckdb_get_enum_value +#define duckdb_get_struct_child duckdb_ext_api.duckdb_get_struct_child +#define duckdb_appender_create_ext duckdb_ext_api.duckdb_appender_create_ext +#define duckdb_appender_add_column duckdb_ext_api.duckdb_appender_add_column +#define duckdb_appender_clear_columns duckdb_ext_api.duckdb_appender_clear_columns +#define duckdb_append_value duckdb_ext_api.duckdb_append_value +#define duckdb_table_description_create_ext duckdb_ext_api.duckdb_table_description_create_ext +#define duckdb_table_description_get_column_name duckdb_ext_api.duckdb_table_description_get_column_name + //===--------------------------------------------------------------------===// // Struct Global Macros //===--------------------------------------------------------------------===// @@ -874,7 +934,7 @@ typedef struct { #define DUCKDB_EXTENSION_API_INIT(info, access, minimum_api_version) \ duckdb_ext_api_v0 *res = (duckdb_ext_api_v0 *)access->get_api(info, minimum_api_version); \ if (!res) { \ - return; \ + return false; \ }; \ duckdb_ext_api = *res; @@ -892,30 +952,31 @@ typedef struct { // Main entrypoint: opens (and closes) a connection automatically for the extension to register its functionality // through #define DUCKDB_EXTENSION_ENTRYPOINT \ - DUCKDB_EXTENSION_GLOBAL static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)( \ - duckdb_connection connection, duckdb_extension_info info, duckdb_extension_access * access); \ - DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN DUCKDB_EXTENSION_API void DUCKDB_EXTENSION_GLUE( \ - DUCKDB_EXTENSION_NAME, _init_c_api)(duckdb_extension_info info, duckdb_extension_access * access) { \ + DUCKDB_EXTENSION_GLOBAL static bool DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)( \ + duckdb_connection connection, duckdb_extension_info info, struct duckdb_extension_access * access); \ + DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN DUCKDB_EXTENSION_API bool DUCKDB_EXTENSION_GLUE( \ + DUCKDB_EXTENSION_NAME, _init_c_api)(duckdb_extension_info info, struct duckdb_extension_access * access) { \ DUCKDB_EXTENSION_API_INIT(info, access, DUCKDB_EXTENSION_API_VERSION_STRING); \ duckdb_database *db = access->get_database(info); \ duckdb_connection conn; \ if (duckdb_connect(*db, &conn) == DuckDBError) { \ access->set_error(info, "Failed to open connection to database"); \ - return; \ + return false; \ } \ - DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)(conn, info, access); \ + bool init_result = DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)(conn, info, access); \ duckdb_disconnect(&conn); \ + return init_result; \ } \ - DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal) + DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE static bool DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal) // Custom entrypoint: just forwards the info and access #define DUCKDB_EXTENSION_ENTRYPOINT_CUSTOM \ - DUCKDB_EXTENSION_GLOBAL static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)( \ - duckdb_extension_info info, duckdb_extension_access * access); \ - DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN DUCKDB_EXTENSION_API void DUCKDB_EXTENSION_GLUE( \ - DUCKDB_EXTENSION_NAME, _init_c_api)(duckdb_extension_info info, duckdb_extension_access * access) { \ + DUCKDB_EXTENSION_GLOBAL static bool DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)( \ + duckdb_extension_info info, struct duckdb_extension_access * access); \ + DUCKDB_EXTENSION_EXTERN_C_GUARD_OPEN DUCKDB_EXTENSION_API bool DUCKDB_EXTENSION_GLUE( \ + DUCKDB_EXTENSION_NAME, _init_c_api)(duckdb_extension_info info, struct duckdb_extension_access * access) { \ DUCKDB_EXTENSION_API_INIT(info, access, DUCKDB_EXTENSION_API_VERSION_STRING); \ - DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)(info, access); \ + return DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal)(info, access); \ } \ - DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE static void DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal) + DUCKDB_EXTENSION_EXTERN_C_GUARD_CLOSE static bool DUCKDB_EXTENSION_GLUE(DUCKDB_EXTENSION_NAME, _init_c_api_internal) #endif diff --git a/src/duckdb/src/main/appender.cpp b/src/duckdb/src/main/appender.cpp index 564fff2e..dde56b65 100644 --- a/src/duckdb/src/main/appender.cpp +++ b/src/duckdb/src/main/appender.cpp @@ -18,12 +18,12 @@ namespace duckdb { -BaseAppender::BaseAppender(Allocator &allocator, AppenderType type_p) +BaseAppender::BaseAppender(Allocator &allocator, const AppenderType type_p) : allocator(allocator), column(0), appender_type(type_p) { } -BaseAppender::BaseAppender(Allocator &allocator_p, vector types_p, AppenderType type_p, - idx_t flush_count_p) +BaseAppender::BaseAppender(Allocator &allocator_p, vector types_p, const AppenderType type_p, + const idx_t flush_count_p) : allocator(allocator_p), types(std::move(types_p)), collection(make_uniq(allocator, types)), column(0), appender_type(type_p), flush_count(flush_count_p) { InitializeChunk(); @@ -36,15 +36,22 @@ void BaseAppender::Destructor() { if (Exception::UncaughtException()) { return; } - // flush any remaining chunks, but only if we are not cleaning up the appender as part of an exception stack unwind - // wrapped in a try/catch because Close() can throw if the table was dropped in the meantime + // Flush any remaining chunks, if we are not cleaning up as part of an exception stack unwind wrapped in a + // try/catch. Close() can throw if the table was dropped in the meantime. try { Close(); } catch (...) { // NOLINT } } -InternalAppender::InternalAppender(ClientContext &context_p, TableCatalogEntry &table_p, idx_t flush_count_p) +const vector &BaseAppender::GetActiveTypes() const { + if (active_types.empty()) { + return types; + } + return active_types; +} + +InternalAppender::InternalAppender(ClientContext &context_p, TableCatalogEntry &table_p, const idx_t flush_count_p) : BaseAppender(Allocator::DefaultAllocator(), table_p.GetTypes(), AppenderType::PHYSICAL, flush_count_p), context(context_p), table(table_p) { } @@ -53,51 +60,69 @@ InternalAppender::~InternalAppender() { Destructor(); } -Appender::Appender(Connection &con, const string &schema_name, const string &table_name) +Appender::Appender(Connection &con, const string &database_name, const string &schema_name, const string &table_name) : BaseAppender(Allocator::DefaultAllocator(), AppenderType::LOGICAL), context(con.context) { - description = con.TableInfo(schema_name, table_name); + + description = con.TableInfo(database_name, schema_name, table_name); if (!description) { - // table could not be found throw CatalogException(StringUtil::Format("Table \"%s.%s\" could not be found", schema_name, table_name)); } + if (description->readonly) { + throw InvalidInputException("Cannot append to a readonly database."); + } + vector> defaults; for (auto &column : description->columns) { + if (column.Generated()) { + continue; + } types.push_back(column.Type()); defaults.push_back(column.HasDefaultValue() ? &column.DefaultValue() : nullptr); } - auto binder = Binder::CreateBinder(*context); + auto binder = Binder::CreateBinder(*context); context->RunFunctionInTransaction([&]() { for (idx_t i = 0; i < types.size(); i++) { auto &type = types[i]; auto &expr = defaults[i]; if (!expr) { - // Insert NULL + // The default value is NULL. default_values[i] = Value(type); continue; } + auto default_copy = expr->Copy(); D_ASSERT(!default_copy->HasParameter()); + ConstantBinder default_binder(*binder, *context, "DEFAULT value"); default_binder.target_type = type; auto bound_default = default_binder.Bind(default_copy); + + if (!bound_default->IsFoldable()) { + // Not supported yet. + continue; + } + Value result_value; - if (bound_default->IsFoldable() && - ExpressionExecutor::TryEvaluateScalar(*context, *bound_default, result_value)) { - // Insert the evaluated Value + auto eval_success = ExpressionExecutor::TryEvaluateScalar(*context, *bound_default, result_value); + // Insert the default Value. + if (eval_success) { default_values[i] = result_value; - } else { - // These are not supported currently, we don't add them to the 'default_values' map } } }); InitializeChunk(); - collection = make_uniq(allocator, types); + collection = make_uniq(allocator, GetActiveTypes()); +} + +Appender::Appender(Connection &con, const string &schema_name, const string &table_name) + : Appender(con, INVALID_CATALOG, schema_name, table_name) { } -Appender::Appender(Connection &con, const string &table_name) : Appender(con, DEFAULT_SCHEMA, table_name) { +Appender::Appender(Connection &con, const string &table_name) + : Appender(con, INVALID_CATALOG, DEFAULT_SCHEMA, table_name) { } Appender::~Appender() { @@ -105,16 +130,17 @@ Appender::~Appender() { } void BaseAppender::InitializeChunk() { - chunk.Initialize(allocator, types); + chunk.Destroy(); + chunk.Initialize(allocator, GetActiveTypes()); } void BaseAppender::BeginRow() { } void BaseAppender::EndRow() { - // check that all rows have been appended to + // Ensure that all columns have been appended to. if (column != chunk.ColumnCount()) { - throw InvalidInputException("Call to EndRow before all rows have been appended to!"); + throw InvalidInputException("Call to EndRow before all columns have been appended to!"); } column = 0; chunk.SetCardinality(chunk.size() + 1); @@ -137,8 +163,8 @@ void BaseAppender::AppendDecimalValueInternal(Vector &col, SRC input) { auto width = DecimalType::GetWidth(type); auto scale = DecimalType::GetScale(type); CastParameters parameters; - TryCastToDecimal::Operation(input, FlatVector::GetData(col)[chunk.size()], parameters, width, - scale); + auto &result = FlatVector::GetData(col)[chunk.size()]; + TryCastToDecimal::Operation(input, result, parameters, width, scale); return; } case AppenderType::PHYSICAL: { @@ -152,7 +178,7 @@ void BaseAppender::AppendDecimalValueInternal(Vector &col, SRC input) { template void BaseAppender::AppendValueInternal(T input) { - if (column >= types.size()) { + if (column >= GetActiveTypes().size()) { throw InvalidInputException("Too many appends for chunk!"); } auto &col = chunk.data[column]; @@ -340,7 +366,7 @@ void BaseAppender::Append(interval_t value) { } template <> -void BaseAppender::Append(Value value) { // NOLINT: template shtuff +void BaseAppender::Append(Value value) { // NOLINT: template stuff if (column >= chunk.ColumnCount()) { throw InvalidInputException("Too many appends for chunk!"); } @@ -361,18 +387,46 @@ void BaseAppender::AppendValue(const Value &value) { column++; } -void BaseAppender::AppendDataChunk(DataChunk &chunk) { - auto chunk_types = chunk.GetTypes(); - if (chunk_types != types) { - for (idx_t i = 0; i < chunk.ColumnCount(); i++) { - if (chunk.data[i].GetType() != types[i]) { - throw InvalidInputException("Type mismatch in Append DataChunk and the types required for appender, " - "expected %s but got %s for column %d", - types[i].ToString(), chunk.data[i].GetType().ToString(), i + 1); - } +void BaseAppender::AppendDataChunk(DataChunk &chunk_p) { + auto chunk_types = chunk_p.GetTypes(); + auto &appender_types = GetActiveTypes(); + + // Early-out, if types match. + if (chunk_types == appender_types) { + collection->Append(chunk_p); + if (collection->Count() >= flush_count) { + Flush(); } + return; } - collection->Append(chunk); + + auto count = chunk_p.ColumnCount(); + if (count != appender_types.size()) { + throw InvalidInputException("incorrect column count in AppendDataChunk, expected %d, got %d", + appender_types.size(), count); + } + + // We try to cast the chunk. + auto size = chunk_p.size(); + DataChunk cast_chunk; + cast_chunk.Initialize(allocator, appender_types); + cast_chunk.SetCardinality(size); + + for (idx_t i = 0; i < count; i++) { + if (chunk_p.data[i].GetType() == appender_types[i]) { + cast_chunk.data[i].Reference(chunk_p.data[i]); + continue; + } + + string error_msg; + auto success = VectorOperations::DefaultTryCast(chunk_p.data[i], cast_chunk.data[i], size, &error_msg); + if (!success) { + throw InvalidInputException("type mismatch in AppendDataChunk, expected %s, got %s for column %d", + appender_types[i].ToString(), chunk_p.data[i].GetType().ToString(), i); + } + } + + collection->Append(cast_chunk); if (collection->Count() >= flush_count) { Flush(); } @@ -390,7 +444,7 @@ void BaseAppender::FlushChunk() { } void BaseAppender::Flush() { - // check that all vectors have the same length before appending + // Check that all vectors have the same length before appending. if (column != 0) { throw InvalidInputException("Failed to Flush appender: incomplete append to row!"); } @@ -399,36 +453,88 @@ void BaseAppender::Flush() { if (collection->Count() == 0) { return; } - FlushInternal(*collection); + FlushInternal(*collection); collection->Reset(); column = 0; } void Appender::FlushInternal(ColumnDataCollection &collection) { - context->Append(*description, collection); + context->Append(*description, collection, &column_ids); } void Appender::AppendDefault() { - auto it = default_values.find(column); - auto &column_def = description->columns[column]; + auto index = column_ids.empty() ? column : column_ids[column].index; + auto it = default_values.find(index); if (it == default_values.end()) { + auto &name = description->columns[index].Name(); throw NotImplementedException( - "AppendDefault is currently not supported for column \"%s\" because default expression is not foldable.", - column_def.Name()); + "AppendDefault is not supported for column \"%s\": not a foldable default expressions.", name); + } + auto &value = it->second; + Append(value); +} + +void Appender::AddColumn(const string &name) { + Flush(); + + auto exists = false; + for (idx_t col_idx = 0; col_idx < description->columns.size(); col_idx++) { + auto &col_def = description->columns[col_idx]; + if (col_def.Name() != name) { + continue; + } + + // Ensure that we are not adding a generated column. + if (col_def.Generated()) { + throw InvalidInputException("cannot add a generated column to the appender"); + } + + // Ensure that we haven't added this column before. + for (const auto &column_id : column_ids) { + if (column_id == col_def.Logical()) { + throw InvalidInputException("cannot add the same column twice"); + } + } + + active_types.push_back(col_def.Type()); + column_ids.push_back(col_def.Logical()); + exists = true; + break; + } + if (!exists) { + throw InvalidInputException("the column must exist in the table"); } - auto &default_value = it->second; - Append(default_value); + + InitializeChunk(); + collection = make_uniq(allocator, GetActiveTypes()); +} + +void Appender::ClearColumns() { + Flush(); + column_ids.clear(); + active_types.clear(); + + InitializeChunk(); + collection = make_uniq(allocator, GetActiveTypes()); } void InternalAppender::FlushInternal(ColumnDataCollection &collection) { auto binder = Binder::CreateBinder(context); auto bound_constraints = binder->BindConstraints(table); - table.GetStorage().LocalAppend(table, context, collection, bound_constraints); + table.GetStorage().LocalAppend(table, context, collection, bound_constraints, nullptr); +} + +void InternalAppender::AddColumn(const string &name) { + throw InternalException("AddColumn not implemented for InternalAppender"); +} + +void InternalAppender::ClearColumns() { + throw InternalException("ClearColumns not implemented for InternalAppender"); } void BaseAppender::Close() { - if (column == 0 || column == types.size()) { + if (column == 0 || column == GetActiveTypes().size()) { Flush(); } } diff --git a/src/duckdb/src/main/attached_database.cpp b/src/duckdb/src/main/attached_database.cpp index 5a435b1d..51546d6c 100644 --- a/src/duckdb/src/main/attached_database.cpp +++ b/src/duckdb/src/main/attached_database.cpp @@ -25,7 +25,6 @@ AttachOptions::AttachOptions(const unique_ptr &info, const AccessMod : access_mode(default_access_mode) { for (auto &entry : info->options) { - if (entry.first == "readonly" || entry.first == "read_only") { // Extract the read access mode. @@ -40,7 +39,6 @@ AttachOptions::AttachOptions(const unique_ptr &info, const AccessMod if (entry.first == "readwrite" || entry.first == "read_write") { // Extract the write access mode. - auto read_write = BooleanValue::Get(entry.second.DefaultCastAs(LogicalType::BOOLEAN)); if (!read_write) { access_mode = AccessMode::READ_ONLY; @@ -56,11 +54,12 @@ AttachOptions::AttachOptions(const unique_ptr &info, const AccessMod continue; } - // We allow unrecognized options in storage extensions. To track that we saw an unrecognized option, - // we set unrecognized_option. - if (unrecognized_option.empty()) { - unrecognized_option = entry.first; + if (entry.first == "default_table") { + default_table = QualifiedName::Parse(StringValue::Get(entry.second.DefaultCastAs(LogicalType::VARCHAR))); + continue; } + + options[entry.first] = entry.second; } } @@ -93,6 +92,15 @@ AttachedDatabase::AttachedDatabase(DatabaseInstance &db, Catalog &catalog_p, str } else { type = AttachedDatabaseType::READ_WRITE_DATABASE; } + for (auto &entry : options.options) { + if (StringUtil::CIEquals(entry.first, "block_size")) { + continue; + } + if (StringUtil::CIEquals(entry.first, "row_group_size")) { + continue; + } + throw BinderException("Unrecognized option for attach \"%s\"", entry.first); + } // We create the storage after the catalog to guarantee we allow extensions to instantiate the DuckCatalog. catalog = make_uniq(*this); @@ -163,14 +171,14 @@ string AttachedDatabase::ExtractDatabaseName(const string &dbpath, FileSystem &f return name; } -void AttachedDatabase::Initialize(const optional_idx block_alloc_size) { +void AttachedDatabase::Initialize(StorageOptions options) { if (IsSystem()) { catalog->Initialize(true); } else { catalog->Initialize(false); } if (storage) { - storage->Initialize(block_alloc_size); + storage->Initialize(options); } } diff --git a/src/duckdb/src/main/capi/appender-c.cpp b/src/duckdb/src/main/capi/appender-c.cpp index eed34fb9..288d58ed 100644 --- a/src/duckdb/src/main/capi/appender-c.cpp +++ b/src/duckdb/src/main/capi/appender-c.cpp @@ -15,18 +15,27 @@ using duckdb::uhugeint_t; duckdb_state duckdb_appender_create(duckdb_connection connection, const char *schema, const char *table, duckdb_appender *out_appender) { + return duckdb_appender_create_ext(connection, INVALID_CATALOG, schema, table, out_appender); +} + +duckdb_state duckdb_appender_create_ext(duckdb_connection connection, const char *catalog, const char *schema, + const char *table, duckdb_appender *out_appender) { Connection *conn = reinterpret_cast(connection); if (!connection || !table || !out_appender) { return DuckDBError; } + if (catalog == nullptr) { + catalog = INVALID_CATALOG; + } if (schema == nullptr) { schema = DEFAULT_SCHEMA; } + auto wrapper = new AppenderWrapper(); *out_appender = (duckdb_appender)wrapper; try { - wrapper->appender = duckdb::make_uniq(*conn, schema, table); + wrapper->appender = duckdb::make_uniq(*conn, catalog, schema, table); } catch (std::exception &ex) { ErrorData error(ex); wrapper->error = error.RawMessage(); @@ -73,6 +82,14 @@ duckdb_state duckdb_appender_run_function(duckdb_appender appender, FUN &&functi return DuckDBSuccess; } +duckdb_state duckdb_appender_add_column(duckdb_appender appender, const char *name) { + return duckdb_appender_run_function(appender, [&](Appender &appender) { appender.AddColumn(name); }); +} + +duckdb_state duckdb_appender_clear_columns(duckdb_appender appender) { + return duckdb_appender_run_function(appender, [&](Appender &appender) { appender.ClearColumns(); }); +} + const char *duckdb_appender_error(duckdb_appender appender) { if (!appender) { return nullptr; @@ -241,7 +258,7 @@ idx_t duckdb_appender_column_count(duckdb_appender appender) { return 0; } - return wrapper->appender->GetTypes().size(); + return wrapper->appender->GetActiveTypes().size(); } duckdb_logical_type duckdb_appender_column_type(duckdb_appender appender, idx_t col_idx) { @@ -254,13 +271,18 @@ duckdb_logical_type duckdb_appender_column_type(duckdb_appender appender, idx_t return nullptr; } - return reinterpret_cast(new duckdb::LogicalType(wrapper->appender->GetTypes()[col_idx])); + auto &logical_type = wrapper->appender->GetActiveTypes()[col_idx]; + return reinterpret_cast(new duckdb::LogicalType(logical_type)); +} + +duckdb_state duckdb_append_value(duckdb_appender appender, duckdb_value value) { + return duckdb_append_internal(appender, *(reinterpret_cast(value))); } duckdb_state duckdb_append_data_chunk(duckdb_appender appender, duckdb_data_chunk chunk) { if (!chunk) { return DuckDBError; } - auto data_chunk = (duckdb::DataChunk *)chunk; + auto data_chunk = reinterpret_cast(chunk); return duckdb_appender_run_function(appender, [&](Appender &appender) { appender.AppendDataChunk(*data_chunk); }); } diff --git a/src/duckdb/src/main/capi/config-c.cpp b/src/duckdb/src/main/capi/config-c.cpp index daa4bcb0..68605056 100644 --- a/src/duckdb/src/main/capi/config-c.cpp +++ b/src/duckdb/src/main/capi/config-c.cpp @@ -1,6 +1,7 @@ #include "duckdb/main/capi/capi_internal.hpp" #include "duckdb/main/config.hpp" #include "duckdb/common/types/value.hpp" +#include "duckdb/main/extension_helper.hpp" using duckdb::DBConfig; using duckdb::Value; @@ -22,19 +23,31 @@ duckdb_state duckdb_create_config(duckdb_config *out_config) { } size_t duckdb_config_count() { - return DBConfig::GetOptionCount(); + return DBConfig::GetOptionCount() + duckdb::ExtensionHelper::ArraySize(duckdb::EXTENSION_SETTINGS); } duckdb_state duckdb_get_config_flag(size_t index, const char **out_name, const char **out_description) { auto option = DBConfig::GetOptionByIndex(index); - if (!option) { + if (option) { + if (out_name) { + *out_name = option->name; + } + if (out_description) { + *out_description = option->description; + } + return DuckDBSuccess; + } + + // extension index? + auto entry = duckdb::ExtensionHelper::GetArrayEntry(duckdb::EXTENSION_SETTINGS, index - DBConfig::GetOptionCount()); + if (!entry) { return DuckDBError; } if (out_name) { - *out_name = option->name; + *out_name = entry->name; } if (out_description) { - *out_description = option->description; + *out_description = entry->extension; } return DuckDBSuccess; } diff --git a/src/duckdb/src/main/capi/datetime-c.cpp b/src/duckdb/src/main/capi/datetime-c.cpp index de92c8da..9e19128a 100644 --- a/src/duckdb/src/main/capi/datetime-c.cpp +++ b/src/duckdb/src/main/capi/datetime-c.cpp @@ -10,6 +10,9 @@ using duckdb::Timestamp; using duckdb::date_t; using duckdb::dtime_t; +using duckdb::timestamp_ms_t; +using duckdb::timestamp_ns_t; +using duckdb::timestamp_sec_t; using duckdb::timestamp_t; duckdb_date_struct duckdb_from_date(duckdb_date date) { @@ -99,3 +102,15 @@ duckdb_timestamp duckdb_to_timestamp(duckdb_timestamp_struct ts) { bool duckdb_is_finite_timestamp(duckdb_timestamp ts) { return Timestamp::IsFinite(timestamp_t(ts.micros)); } + +bool duckdb_is_finite_timestamp_s(duckdb_timestamp_s ts) { + return Timestamp::IsFinite(timestamp_sec_t(ts.seconds)); +} + +bool duckdb_is_finite_timestamp_ms(duckdb_timestamp_ms ts) { + return Timestamp::IsFinite(timestamp_ms_t(ts.millis)); +} + +bool duckdb_is_finite_timestamp_ns(duckdb_timestamp_ns ts) { + return Timestamp::IsFinite(timestamp_ns_t(ts.nanos)); +} diff --git a/src/duckdb/src/main/capi/duckdb_value-c.cpp b/src/duckdb/src/main/capi/duckdb_value-c.cpp index defdf6a3..2cf31e63 100644 --- a/src/duckdb/src/main/capi/duckdb_value-c.cpp +++ b/src/duckdb/src/main/capi/duckdb_value-c.cpp @@ -145,12 +145,67 @@ duckdb_value duckdb_create_time_tz_value(duckdb_time_tz input) { duckdb_time_tz duckdb_get_time_tz(duckdb_value val) { return {CAPIGetValue(val).bits}; } + duckdb_value duckdb_create_timestamp(duckdb_timestamp input) { - return CAPICreateValue(duckdb::timestamp_t(input.micros)); + duckdb::timestamp_t ts(input.micros); + return CAPICreateValue(ts); } + duckdb_timestamp duckdb_get_timestamp(duckdb_value val) { + if (!val) { + return {0}; + } return {CAPIGetValue(val).value}; } + +duckdb_value duckdb_create_timestamp_tz(duckdb_timestamp input) { + duckdb::timestamp_tz_t ts(input.micros); + return CAPICreateValue(ts); +} + +duckdb_timestamp duckdb_get_timestamp_tz(duckdb_value val) { + if (!val) { + return {0}; + } + return {CAPIGetValue(val).value}; +} + +duckdb_value duckdb_create_timestamp_s(duckdb_timestamp_s input) { + duckdb::timestamp_sec_t ts(input.seconds); + return CAPICreateValue(ts); +} + +duckdb_timestamp_s duckdb_get_timestamp_s(duckdb_value val) { + if (!val) { + return {0}; + } + return {CAPIGetValue(val).value}; +} + +duckdb_value duckdb_create_timestamp_ms(duckdb_timestamp_ms input) { + duckdb::timestamp_ms_t ts(input.millis); + return CAPICreateValue(ts); +} + +duckdb_timestamp_ms duckdb_get_timestamp_ms(duckdb_value val) { + if (!val) { + return {0}; + } + return {CAPIGetValue(val).value}; +} + +duckdb_value duckdb_create_timestamp_ns(duckdb_timestamp_ns input) { + duckdb::timestamp_ns_t ts(input.nanos); + return CAPICreateValue(ts); +} + +duckdb_timestamp_ns duckdb_get_timestamp_ns(duckdb_value val) { + if (!val) { + return {0}; + } + return {CAPIGetValue(val).value}; +} + duckdb_value duckdb_create_interval(duckdb_interval input) { return WrapValue(new duckdb::Value(duckdb::Value::INTERVAL(input.months, input.days, input.micros))); } @@ -282,7 +337,7 @@ idx_t duckdb_get_map_size(duckdb_value value) { } auto val = UnwrapValue(value); - if (val.type().id() != LogicalTypeId::MAP) { + if (val.type().id() != LogicalTypeId::MAP || val.IsNull()) { return 0; } @@ -296,7 +351,7 @@ duckdb_value duckdb_get_map_key(duckdb_value value, idx_t index) { } auto val = UnwrapValue(value); - if (val.type().id() != LogicalTypeId::MAP) { + if (val.type().id() != LogicalTypeId::MAP || val.IsNull()) { return nullptr; } @@ -316,7 +371,7 @@ duckdb_value duckdb_get_map_value(duckdb_value value, idx_t index) { } auto val = UnwrapValue(value); - if (val.type().id() != LogicalTypeId::MAP) { + if (val.type().id() != LogicalTypeId::MAP || val.IsNull()) { return nullptr; } @@ -329,3 +384,94 @@ duckdb_value duckdb_get_map_value(duckdb_value value, idx_t index) { auto &child_struct = duckdb::StructValue::GetChildren(child); return WrapValue(new duckdb::Value(child_struct[1])); } + +bool duckdb_is_null_value(duckdb_value value) { + if (!value) { + return false; + } + return UnwrapValue(value).IsNull(); +} + +duckdb_value duckdb_create_null_value() { + return WrapValue(new duckdb::Value()); +} + +idx_t duckdb_get_list_size(duckdb_value value) { + if (!value) { + return 0; + } + + auto val = UnwrapValue(value); + if (val.type().id() != LogicalTypeId::LIST || val.IsNull()) { + return 0; + } + + auto &children = duckdb::ListValue::GetChildren(val); + return children.size(); +} + +duckdb_value duckdb_get_list_child(duckdb_value value, idx_t index) { + if (!value) { + return nullptr; + } + + auto val = UnwrapValue(value); + if (val.type().id() != LogicalTypeId::LIST || val.IsNull()) { + return nullptr; + } + + auto &children = duckdb::ListValue::GetChildren(val); + if (index >= children.size()) { + return nullptr; + } + + return WrapValue(new duckdb::Value(children[index])); +} + +duckdb_value duckdb_create_enum_value(duckdb_logical_type type, uint64_t value) { + if (!type) { + return nullptr; + } + + auto &logical_type = UnwrapType(type); + if (logical_type.id() != LogicalTypeId::ENUM) { + return nullptr; + } + + if (value >= duckdb::EnumType::GetSize(logical_type)) { + return nullptr; + } + + return WrapValue(new duckdb::Value(duckdb::Value::ENUM(value, logical_type))); +} + +uint64_t duckdb_get_enum_value(duckdb_value value) { + if (!value) { + return 0; + } + + auto val = UnwrapValue(value); + if (val.type().id() != LogicalTypeId::ENUM || val.IsNull()) { + return 0; + } + + return val.GetValue(); +} + +duckdb_value duckdb_get_struct_child(duckdb_value value, idx_t index) { + if (!value) { + return nullptr; + } + + auto val = UnwrapValue(value); + if (val.type().id() != LogicalTypeId::STRUCT || val.IsNull()) { + return nullptr; + } + + auto &children = duckdb::StructValue::GetChildren(val); + if (index >= children.size()) { + return nullptr; + } + + return WrapValue(new duckdb::Value(children[index])); +} diff --git a/src/duckdb/src/main/capi/helper-c.cpp b/src/duckdb/src/main/capi/helper-c.cpp index d847d94a..71099653 100644 --- a/src/duckdb/src/main/capi/helper-c.cpp +++ b/src/duckdb/src/main/capi/helper-c.cpp @@ -74,6 +74,8 @@ LogicalTypeId ConvertCTypeToCPP(duckdb_type c_type) { return LogicalTypeId::TIMESTAMP_TZ; case DUCKDB_TYPE_ANY: return LogicalTypeId::ANY; + case DUCKDB_TYPE_SQLNULL: + return LogicalTypeId::SQLNULL; default: // LCOV_EXCL_START D_ASSERT(0); return LogicalTypeId::INVALID; @@ -154,6 +156,8 @@ duckdb_type ConvertCPPTypeToC(const LogicalType &sql_type) { return DUCKDB_TYPE_ARRAY; case LogicalTypeId::ANY: return DUCKDB_TYPE_ANY; + case LogicalTypeId::SQLNULL: + return DUCKDB_TYPE_SQLNULL; default: // LCOV_EXCL_START D_ASSERT(0); return DUCKDB_TYPE_INVALID; @@ -193,6 +197,7 @@ idx_t GetCTypeSize(duckdb_type type) { case DUCKDB_TYPE_TIME: return sizeof(duckdb_time); case DUCKDB_TYPE_TIMESTAMP: + case DUCKDB_TYPE_TIMESTAMP_TZ: case DUCKDB_TYPE_TIMESTAMP_S: case DUCKDB_TYPE_TIMESTAMP_MS: case DUCKDB_TYPE_TIMESTAMP_NS: diff --git a/src/duckdb/src/main/capi/prepared-c.cpp b/src/duckdb/src/main/capi/prepared-c.cpp index a0df37a2..a065f41a 100644 --- a/src/duckdb/src/main/capi/prepared-c.cpp +++ b/src/duckdb/src/main/capi/prepared-c.cpp @@ -122,22 +122,41 @@ const char *duckdb_parameter_name(duckdb_prepared_statement prepared_statement, } duckdb_type duckdb_param_type(duckdb_prepared_statement prepared_statement, idx_t param_idx) { + auto logical_type = duckdb_param_logical_type(prepared_statement, param_idx); + if (!logical_type) { + return DUCKDB_TYPE_INVALID; + } + + auto type = duckdb_get_type_id(logical_type); + + duckdb_destroy_logical_type(&logical_type); + + return type; +} + +duckdb_logical_type duckdb_param_logical_type(duckdb_prepared_statement prepared_statement, idx_t param_idx) { auto wrapper = reinterpret_cast(prepared_statement); if (!wrapper || !wrapper->statement || wrapper->statement->HasError()) { - return DUCKDB_TYPE_INVALID; + return nullptr; + } + + auto identifier = duckdb_parameter_name_internal(prepared_statement, param_idx); + if (identifier == duckdb::string()) { + return nullptr; } + LogicalType param_type; - auto identifier = std::to_string(param_idx); + if (wrapper->statement->data->TryGetType(identifier, param_type)) { - return ConvertCPPTypeToC(param_type); + return reinterpret_cast(new LogicalType(param_type)); } // The value_map is gone after executing the prepared statement // See if this is the case and we still have a value registered for it auto it = wrapper->values.find(identifier); if (it != wrapper->values.end()) { - return ConvertCPPTypeToC(it->second.return_type.id()); + return reinterpret_cast(new LogicalType(it->second.return_type)); } - return DUCKDB_TYPE_INVALID; + return nullptr; } duckdb_state duckdb_clear_bindings(duckdb_prepared_statement prepared_statement) { @@ -282,7 +301,7 @@ duckdb_state duckdb_bind_timestamp(duckdb_prepared_statement prepared_statement, duckdb_state duckdb_bind_timestamp_tz(duckdb_prepared_statement prepared_statement, idx_t param_idx, duckdb_timestamp val) { - auto value = Value::TIMESTAMPTZ(timestamp_t(val.micros)); + auto value = Value::TIMESTAMPTZ(duckdb::timestamp_tz_t(val.micros)); return duckdb_bind_value(prepared_statement, param_idx, (duckdb_value)&value); } diff --git a/src/duckdb/src/main/capi/profiling_info-c.cpp b/src/duckdb/src/main/capi/profiling_info-c.cpp index 7e563dd0..4936aed4 100644 --- a/src/duckdb/src/main/capi/profiling_info-c.cpp +++ b/src/duckdb/src/main/capi/profiling_info-c.cpp @@ -30,7 +30,7 @@ duckdb_value duckdb_profiling_info_get_value(duckdb_profiling_info info, const c auto &node = *reinterpret_cast(info); auto &profiling_info = node.GetProfilingInfo(); auto key_enum = EnumUtil::FromString(duckdb::StringUtil::Upper(key)); - if (!profiling_info.Enabled(key_enum)) { + if (!profiling_info.Enabled(profiling_info.settings, key_enum)) { return nullptr; } @@ -46,10 +46,13 @@ duckdb_value duckdb_profiling_info_get_metrics(duckdb_profiling_info info) { auto &node = *reinterpret_cast(info); auto &profiling_info = node.GetProfilingInfo(); - // FIXME: filter between operator metrics and query node metrics. duckdb::unordered_map metrics_map; for (const auto &metric : profiling_info.metrics) { auto key = EnumUtil::ToString(metric.first); + if (!profiling_info.Enabled(profiling_info.settings, metric.first)) { + continue; + } + if (key == EnumUtil::ToString(MetricsType::OPERATOR_TYPE)) { auto type = duckdb::PhysicalOperatorType(metric.second.GetValue()); metrics_map[key] = EnumUtil::ToString(type); diff --git a/src/duckdb/src/main/capi/result-c.cpp b/src/duckdb/src/main/capi/result-c.cpp index 217e2bb0..cc5c6e47 100644 --- a/src/duckdb/src/main/capi/result-c.cpp +++ b/src/duckdb/src/main/capi/result-c.cpp @@ -538,6 +538,9 @@ idx_t duckdb_column_count(duckdb_result *result) { if (!result) { return 0; } + if (result->internal_data == NULL) { + return 0; + } auto &result_data = *(reinterpret_cast(result->internal_data)); return result_data.result->ColumnCount(); } diff --git a/src/duckdb/src/main/capi/table_description-c.cpp b/src/duckdb/src/main/capi/table_description-c.cpp index 495267f9..26624bbf 100644 --- a/src/duckdb/src/main/capi/table_description-c.cpp +++ b/src/duckdb/src/main/capi/table_description-c.cpp @@ -8,24 +8,31 @@ using duckdb::TableDescriptionWrapper; duckdb_state duckdb_table_description_create(duckdb_connection connection, const char *schema, const char *table, duckdb_table_description *out) { + return duckdb_table_description_create_ext(connection, INVALID_CATALOG, schema, table, out); +} + +duckdb_state duckdb_table_description_create_ext(duckdb_connection connection, const char *catalog, const char *schema, + const char *table, duckdb_table_description *out) { Connection *conn = reinterpret_cast(connection); if (!out) { return DuckDBError; } auto wrapper = new TableDescriptionWrapper(); - *out = (duckdb_table_description)wrapper; + *out = reinterpret_cast(wrapper); if (!connection || !table) { return DuckDBError; } - + if (catalog == nullptr) { + catalog = INVALID_CATALOG; + } if (schema == nullptr) { schema = DEFAULT_SCHEMA; } try { - wrapper->description = conn->TableInfo(schema, table); + wrapper->description = conn->TableInfo(catalog, schema, table); } catch (std::exception &ex) { ErrorData error(ex); wrapper->error = error.RawMessage(); @@ -61,22 +68,48 @@ const char *duckdb_table_description_error(duckdb_table_description table) { return wrapper->error.c_str(); } -duckdb_state duckdb_column_has_default(duckdb_table_description table_description, idx_t index, bool *out) { - auto wrapper = reinterpret_cast(table_description); - if (!wrapper || !out) { - if (wrapper) { - wrapper->error = "Please provide a valid (non-null) 'out' variable"; - } +duckdb_state GetTableDescription(TableDescriptionWrapper *wrapper, idx_t index) { + if (!wrapper) { return DuckDBError; } - auto &table = wrapper->description; if (index >= table->columns.size()) { wrapper->error = duckdb::StringUtil::Format("Column index %d is out of range, table only has %d columns", index, table->columns.size()); return DuckDBError; } + return DuckDBSuccess; +} + +duckdb_state duckdb_column_has_default(duckdb_table_description table_description, idx_t index, bool *out) { + auto wrapper = reinterpret_cast(table_description); + if (GetTableDescription(wrapper, index) == DuckDBError) { + return DuckDBError; + } + if (!out) { + wrapper->error = "Please provide a valid (non-null) 'out' variable"; + return DuckDBError; + } + + auto &table = wrapper->description; auto &column = table->columns[index]; *out = column.HasDefaultValue(); return DuckDBSuccess; } + +char *duckdb_table_description_get_column_name(duckdb_table_description table_description, idx_t index) { + auto wrapper = reinterpret_cast(table_description); + if (GetTableDescription(wrapper, index) == DuckDBError) { + return nullptr; + } + + auto &table = wrapper->description; + auto &column = table->columns[index]; + + auto name = column.GetName(); + auto result = reinterpret_cast(malloc(sizeof(char) * (name.size() + 1))); + memcpy(result, name.c_str(), name.size()); + result[name.size()] = '\0'; + + return result; +} diff --git a/src/duckdb/src/main/client_context.cpp b/src/duckdb/src/main/client_context.cpp index 467f28da..68eb54a5 100644 --- a/src/duckdb/src/main/client_context.cpp +++ b/src/duckdb/src/main/client_context.cpp @@ -41,6 +41,7 @@ #include "duckdb/planner/pragma_handler.hpp" #include "duckdb/storage/data_table.hpp" #include "duckdb/transaction/meta_transaction.hpp" +#include "duckdb/transaction/transaction_context.hpp" #include "duckdb/transaction/transaction_manager.hpp" namespace duckdb { @@ -190,6 +191,7 @@ void ClientContext::BeginQueryInternal(ClientContextLock &lock, const string &qu if (transaction.IsAutoCommit()) { transaction.BeginTransaction(); } + transaction.SetActiveQuery(db->GetDatabaseManager().GetNewQueryNumber()); LogQueryInternal(lock, query); active_query->query = query; @@ -540,6 +542,7 @@ unique_ptr ClientContext::PendingPreparedStatement(ClientCon } if (rebind == RebindQueryInfo::ATTEMPT_TO_REBIND) { RebindPreparedStatement(lock, query, prepared, parameters); + CheckIfPreparedStatementIsExecutable(*prepared); // rerun this too as modified_databases might have changed } return PendingPreparedStatementInternal(lock, prepared, parameters); } @@ -735,8 +738,13 @@ unique_ptr ClientContext::PendingStatementInternal(ClientCon unique_ptr statement, const PendingQueryParameters ¶meters) { // prepare the query for execution + if (parameters.parameters) { + PreparedStatement::VerifyParameters(*parameters.parameters, statement->named_param_map); + } + auto prepared = CreatePreparedStatement(lock, query, std::move(statement), parameters.parameters, PreparedStatementMode::PREPARE_AND_EXECUTE); + idx_t parameter_count = !parameters.parameters ? 0 : parameters.parameters->size(); if (prepared->properties.parameter_count > 0 && parameter_count == 0) { string error_message = StringUtil::Format("Expected %lld parameters, but none were supplied", @@ -751,11 +759,13 @@ unique_ptr ClientContext::PendingStatementInternal(ClientCon return PendingPreparedStatementInternal(lock, std::move(prepared), parameters); } -unique_ptr ClientContext::RunStatementInternal(ClientContextLock &lock, const string &query, - unique_ptr statement, - bool allow_stream_result, bool verify) { +unique_ptr +ClientContext::RunStatementInternal(ClientContextLock &lock, const string &query, unique_ptr statement, + bool allow_stream_result, + optional_ptr> params, bool verify) { PendingQueryParameters parameters; parameters.allow_stream_result = allow_stream_result; + parameters.parameters = params; auto pending = PendingQueryInternal(lock, std::move(statement), parameters, verify); if (pending->HasError()) { return ErrorResult(pending->GetErrorObject()); @@ -789,7 +799,7 @@ unique_ptr ClientContext::PendingStatementOrPreparedStatemen // in case this is a select query, we verify the original statement ErrorData error; try { - error = VerifyQuery(lock, query, std::move(statement)); + error = VerifyQuery(lock, query, std::move(statement), parameters.parameters); } catch (std::exception &ex) { error = ErrorData(ex); } @@ -926,7 +936,7 @@ unique_ptr ClientContext::Query(const string &query, bool allow_str } unique_ptr result; - QueryResult *last_result = nullptr; + optional_ptr last_result; bool last_had_result = false; for (idx_t i = 0; i < statements.size(); i++) { auto &statement = statements[i]; @@ -961,6 +971,7 @@ unique_ptr ClientContext::Query(const string &query, bool allow_str // Reset the interrupted flag, this was set by the task that found the error // Next statements should not be bothered by that interruption interrupted = false; + break; } } return result; @@ -980,34 +991,57 @@ bool ClientContext::ParseStatements(ClientContextLock &lock, const string &query } unique_ptr ClientContext::PendingQuery(const string &query, bool allow_stream_result) { + case_insensitive_map_t empty_param_list; + return PendingQuery(query, empty_param_list, allow_stream_result); +} + +unique_ptr ClientContext::PendingQuery(unique_ptr statement, + bool allow_stream_result) { + case_insensitive_map_t empty_param_list; + return PendingQuery(std::move(statement), empty_param_list, allow_stream_result); +} + +unique_ptr ClientContext::PendingQuery(const string &query, + case_insensitive_map_t &values, + bool allow_stream_result) { auto lock = LockContext(); + try { + InitialCleanup(*lock); - ErrorData error; - vector> statements; - if (!ParseStatements(*lock, query, statements, error)) { - return ErrorResult(std::move(error), query); - } - if (statements.size() != 1) { - return ErrorResult(ErrorData("PendingQuery can only take a single statement"), query); + auto statements = ParseStatementsInternal(*lock, query); + if (statements.empty()) { + throw InvalidInputException("No statement to prepare!"); + } + if (statements.size() > 1) { + throw InvalidInputException("Cannot prepare multiple statements at once!"); + } + + PendingQueryParameters params; + params.allow_stream_result = allow_stream_result; + params.parameters = values; + + return PendingQueryInternal(*lock, std::move(statements[0]), params, true); + } catch (std::exception &ex) { + return make_uniq(ErrorData(ex)); } - PendingQueryParameters parameters; - parameters.allow_stream_result = allow_stream_result; - return PendingQueryInternal(*lock, std::move(statements[0]), parameters); } unique_ptr ClientContext::PendingQuery(unique_ptr statement, + case_insensitive_map_t &values, bool allow_stream_result) { auto lock = LockContext(); - + auto query = statement->query; try { InitialCleanup(*lock); + + PendingQueryParameters params; + params.allow_stream_result = allow_stream_result; + params.parameters = values; + + return PendingQueryInternal(*lock, std::move(statement), params, true); } catch (std::exception &ex) { - return ErrorResult(ErrorData(ex)); + return make_uniq(ErrorData(ex)); } - - PendingQueryParameters parameters; - parameters.allow_stream_result = allow_stream_result; - return PendingQueryInternal(*lock, std::move(statement), parameters); } unique_ptr ClientContext::PendingQueryInternal(ClientContextLock &lock, @@ -1107,19 +1141,20 @@ void ClientContext::RunFunctionInTransaction(const std::function &fu RunFunctionInTransactionInternal(*lock, fun, requires_valid_transaction); } -unique_ptr ClientContext::TableInfo(const string &schema_name, const string &table_name) { +unique_ptr ClientContext::TableInfo(const string &database_name, const string &schema_name, + const string &table_name) { unique_ptr result; RunFunctionInTransaction([&]() { - // obtain the table info - auto table = Catalog::GetEntry(*this, INVALID_CATALOG, schema_name, table_name, + // Obtain the table from the catalog. + auto table = Catalog::GetEntry(*this, database_name, schema_name, table_name, OnEntryNotFound::RETURN_NULL); if (!table) { return; } - // write the table info to the result - result = make_uniq(); - result->schema = schema_name; - result->table = table_name; + // Create the table description. + result = make_uniq(database_name, schema_name, table_name); + auto &catalog = Catalog::GetCatalog(*this, database_name); + result->readonly = catalog.GetAttached().IsReadOnly(); for (auto &column : table->GetColumns().Logical()) { result->columns.emplace_back(column.Copy()); } @@ -1127,42 +1162,56 @@ unique_ptr ClientContext::TableInfo(const string &schema_name, return result; } -void ClientContext::Append(TableDescription &description, ColumnDataCollection &collection) { +unique_ptr ClientContext::TableInfo(const string &schema_name, const string &table_name) { + return TableInfo(INVALID_CATALOG, schema_name, table_name); +} + +void ClientContext::Append(TableDescription &description, ColumnDataCollection &collection, + optional_ptr> column_ids) { + RunFunctionInTransaction([&]() { auto &table_entry = - Catalog::GetEntry(*this, INVALID_CATALOG, description.schema, description.table); + Catalog::GetEntry(*this, description.database, description.schema, description.table); // verify that the table columns and types match up - if (description.columns.size() != table_entry.GetColumns().PhysicalColumnCount()) { + if (description.PhysicalColumnCount() != table_entry.GetColumns().PhysicalColumnCount()) { throw InvalidInputException("Failed to append: table entry has different number of columns!"); } + idx_t table_entry_col_idx = 0; for (idx_t i = 0; i < description.columns.size(); i++) { - if (description.columns[i].Type() != table_entry.GetColumns().GetColumn(PhysicalIndex(i)).Type()) { + auto &column = description.columns[i]; + if (column.Generated()) { + continue; + } + if (column.Type() != table_entry.GetColumns().GetColumn(PhysicalIndex(table_entry_col_idx)).Type()) { throw InvalidInputException("Failed to append: table entry has different number of columns!"); } + table_entry_col_idx++; } auto binder = Binder::CreateBinder(*this); auto bound_constraints = binder->BindConstraints(table_entry); MetaTransaction::Get(*this).ModifyDatabase(table_entry.ParentCatalog().GetAttached()); - table_entry.GetStorage().LocalAppend(table_entry, *this, collection, bound_constraints); + table_entry.GetStorage().LocalAppend(table_entry, *this, collection, bound_constraints, column_ids); }); } +void ClientContext::InternalTryBindRelation(Relation &relation, vector &result_columns) { + // bind the expressions + auto binder = Binder::CreateBinder(*this); + auto result = relation.Bind(*binder); + D_ASSERT(result.names.size() == result.types.size()); + + result_columns.reserve(result_columns.size() + result.names.size()); + for (idx_t i = 0; i < result.names.size(); i++) { + result_columns.emplace_back(result.names[i], result.types[i]); + } +} + void ClientContext::TryBindRelation(Relation &relation, vector &result_columns) { #ifdef DEBUG D_ASSERT(!relation.GetAlias().empty()); D_ASSERT(!relation.ToString().empty()); #endif - RunFunctionInTransaction([&]() { - // bind the expressions - auto binder = Binder::CreateBinder(*this); - auto result = relation.Bind(*binder); - D_ASSERT(result.names.size() == result.types.size()); - - result_columns.reserve(result_columns.size() + result.names.size()); - for (idx_t i = 0; i < result.names.size(); i++) { - result_columns.emplace_back(result.names[i], result.types[i]); - } - }); + RunFunctionInTransaction([&]() { InternalTryBindRelation(relation, result_columns); }); } unordered_set ClientContext::GetTableNames(const string &query) { @@ -1198,7 +1247,7 @@ unique_ptr ClientContext::PendingQueryInternal(ClientContext // verify read only statements by running a select statement auto select = make_uniq(); select->node = relation->GetQueryNode(); - RunStatementInternal(lock, query, std::move(select), false); + RunStatementInternal(lock, query, std::move(select), false, nullptr); } } @@ -1298,7 +1347,7 @@ ClientProperties ClientContext::GetClientProperties() const { timezone = result.ToString(); } return {timezone, db->config.options.arrow_offset_size, db->config.options.arrow_use_list_view, - db->config.options.produce_arrow_string_views, db->config.options.arrow_arrow_lossless_conversion}; + db->config.options.produce_arrow_string_views, db->config.options.arrow_lossless_conversion}; } bool ClientContext::ExecutionIsFinished() { diff --git a/src/duckdb/src/main/client_context_wrapper.cpp b/src/duckdb/src/main/client_context_wrapper.cpp index d79b0930..74783c79 100644 --- a/src/duckdb/src/main/client_context_wrapper.cpp +++ b/src/duckdb/src/main/client_context_wrapper.cpp @@ -19,4 +19,8 @@ shared_ptr ClientContextWrapper::GetContext() { return actual_context; } +void ClientContextWrapper::TryBindRelation(Relation &relation, vector &columns) { + GetContext()->TryBindRelation(relation, columns); +} + } // namespace duckdb diff --git a/src/duckdb/src/main/client_data.cpp b/src/duckdb/src/main/client_data.cpp index 50e460b6..fb07894c 100644 --- a/src/duckdb/src/main/client_data.cpp +++ b/src/duckdb/src/main/client_data.cpp @@ -42,7 +42,7 @@ ClientData::ClientData(ClientContext &context) : catalog_search_path(make_uniq(); file_opener = make_uniq(context); client_file_system = make_uniq(context); - temporary_objects->Initialize(DEFAULT_BLOCK_ALLOC_SIZE); + temporary_objects->Initialize(); } ClientData::~ClientData() { diff --git a/src/duckdb/src/main/client_verify.cpp b/src/duckdb/src/main/client_verify.cpp index f31a6fc5..d3fb4f38 100644 --- a/src/duckdb/src/main/client_verify.cpp +++ b/src/duckdb/src/main/client_verify.cpp @@ -21,7 +21,8 @@ static void ThrowIfExceptionIsInternal(StatementVerifier &verifier) { } } -ErrorData ClientContext::VerifyQuery(ClientContextLock &lock, const string &query, unique_ptr statement) { +ErrorData ClientContext::VerifyQuery(ClientContextLock &lock, const string &query, unique_ptr statement, + optional_ptr> parameters) { D_ASSERT(statement->type == StatementType::SELECT_STATEMENT); // Aggressive query verification @@ -45,30 +46,36 @@ ErrorData ClientContext::VerifyQuery(ClientContextLock &lock, const string &quer // Base Statement verifiers: these are the verifiers we enable for regular builds if (config.query_verification_enabled) { - statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::COPIED, stmt)); - statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::DESERIALIZED, stmt)); - statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::UNOPTIMIZED, stmt)); - prepared_statement_verifier = StatementVerifier::Create(VerificationType::PREPARED, stmt); + statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::COPIED, stmt, parameters)); + statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::DESERIALIZED, stmt, parameters)); + statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::UNOPTIMIZED, stmt, parameters)); + + // FIXME: Prepared parameter verifier is broken for queries with parameters + if (!parameters || parameters->empty()) { + prepared_statement_verifier = StatementVerifier::Create(VerificationType::PREPARED, stmt, parameters); + } } // This verifier is enabled explicitly OR by enabling run_slow_verifiers if (config.verify_fetch_row || (run_slow_verifiers && config.query_verification_enabled)) { - statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::FETCH_ROW_AS_SCAN, stmt)); + statement_verifiers.emplace_back( + StatementVerifier::Create(VerificationType::FETCH_ROW_AS_SCAN, stmt, parameters)); } // For the DEBUG_ASYNC build we enable this extra verifier #ifdef DUCKDB_DEBUG_ASYNC_SINK_SOURCE if (config.query_verification_enabled) { - statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::NO_OPERATOR_CACHING, stmt)); + statement_verifiers.emplace_back( + StatementVerifier::Create(VerificationType::NO_OPERATOR_CACHING, stmt, parameters)); } #endif // Verify external always needs to be explicitly enabled and is never part of default verifier set if (config.verify_external) { - statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::EXTERNAL, stmt)); + statement_verifiers.emplace_back(StatementVerifier::Create(VerificationType::EXTERNAL, stmt, parameters)); } - auto original = make_uniq(std::move(statement)); + auto original = make_uniq(std::move(statement), parameters); for (auto &verifier : statement_verifiers) { original->CheckExpressions(*verifier); } @@ -88,26 +95,33 @@ ErrorData ClientContext::VerifyQuery(ClientContextLock &lock, const string &quer } // Execute the original statement - bool any_failed = original->Run(*this, query, [&](const string &q, unique_ptr s) { - return RunStatementInternal(lock, q, std::move(s), false, false); - }); + bool any_failed = original->Run(*this, query, + [&](const string &q, unique_ptr s, + optional_ptr> params) { + return RunStatementInternal(lock, q, std::move(s), false, params, false); + }); if (!any_failed) { statement_verifiers.emplace_back( - StatementVerifier::Create(VerificationType::PARSED, *statement_copy_for_explain)); + StatementVerifier::Create(VerificationType::PARSED, *statement_copy_for_explain, parameters)); } // Execute the verifiers for (auto &verifier : statement_verifiers) { - bool failed = verifier->Run(*this, query, [&](const string &q, unique_ptr s) { - return RunStatementInternal(lock, q, std::move(s), false, false); - }); + bool failed = verifier->Run(*this, query, + [&](const string &q, unique_ptr s, + optional_ptr> params) { + return RunStatementInternal(lock, q, std::move(s), false, params, false); + }); any_failed = any_failed || failed; } if (!any_failed && prepared_statement_verifier) { // If none failed, we execute the prepared statement verifier - bool failed = prepared_statement_verifier->Run(*this, query, [&](const string &q, unique_ptr s) { - return RunStatementInternal(lock, q, std::move(s), false, false); - }); + bool failed = prepared_statement_verifier->Run( + *this, query, + [&](const string &q, unique_ptr s, + optional_ptr> params) { + return RunStatementInternal(lock, q, std::move(s), false, params, false); + }); if (!failed) { // PreparedStatementVerifier fails if it runs into a ParameterNotAllowedException, which is OK statement_verifiers.push_back(std::move(prepared_statement_verifier)); @@ -119,6 +133,9 @@ ErrorData ClientContext::VerifyQuery(ClientContextLock &lock, const string &quer if (ValidChecker::IsInvalidated(*db)) { return original->materialized_result->GetErrorObject(); } + if (transaction.HasActiveTransaction() && ValidChecker::IsInvalidated(ActiveTransaction())) { + return original->materialized_result->GetErrorObject(); + } } // Restore config setting @@ -128,9 +145,11 @@ ErrorData ClientContext::VerifyQuery(ClientContextLock &lock, const string &quer // Check explain, only if q does not already contain EXPLAIN if (original->materialized_result->success) { auto explain_q = "EXPLAIN " + query; + auto original_named_param_map = statement_copy_for_explain->named_param_map; auto explain_stmt = make_uniq(std::move(statement_copy_for_explain)); + explain_stmt->named_param_map = original_named_param_map; try { - RunStatementInternal(lock, explain_q, std::move(explain_stmt), false, false); + RunStatementInternal(lock, explain_q, std::move(explain_stmt), false, parameters, false); } catch (std::exception &ex) { // LCOV_EXCL_START ErrorData error(ex); interrupted = false; diff --git a/src/duckdb/src/main/config.cpp b/src/duckdb/src/main/config.cpp index 6921cb49..5788d296 100644 --- a/src/duckdb/src/main/config.cpp +++ b/src/duckdb/src/main/config.cpp @@ -54,109 +54,113 @@ bool DBConfigOptions::debug_print_bindings = false; _PARAM::ResetLocal, _PARAM::GetSetting \ } #define FINAL_SETTING \ - { nullptr, nullptr, LogicalTypeId::INVALID, nullptr, nullptr, nullptr, nullptr, nullptr } + { nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr } static const ConfigurationOption internal_options[] = { DUCKDB_GLOBAL(AccessModeSetting), - DUCKDB_GLOBAL(AllowPersistentSecrets), - DUCKDB_GLOBAL(CatalogErrorMaxSchema), + DUCKDB_GLOBAL(AllocatorBackgroundThreadsSetting), + DUCKDB_GLOBAL(AllocatorBulkDeallocationFlushThresholdSetting), + DUCKDB_GLOBAL(AllocatorFlushThresholdSetting), + DUCKDB_GLOBAL(AllowCommunityExtensionsSetting), + DUCKDB_GLOBAL(AllowExtensionsMetadataMismatchSetting), + DUCKDB_GLOBAL(AllowPersistentSecretsSetting), + DUCKDB_GLOBAL(AllowUnredactedSecretsSetting), + DUCKDB_GLOBAL(AllowUnsignedExtensionsSetting), + DUCKDB_GLOBAL(AllowedDirectoriesSetting), + DUCKDB_GLOBAL(AllowedPathsSetting), + DUCKDB_GLOBAL(ArrowLargeBufferSizeSetting), + DUCKDB_GLOBAL(ArrowLosslessConversionSetting), + DUCKDB_GLOBAL(ArrowOutputListViewSetting), + DUCKDB_GLOBAL(AutoinstallExtensionRepositorySetting), + DUCKDB_GLOBAL(AutoinstallKnownExtensionsSetting), + DUCKDB_GLOBAL(AutoloadKnownExtensionsSetting), + DUCKDB_GLOBAL(CatalogErrorMaxSchemasSetting), DUCKDB_GLOBAL(CheckpointThresholdSetting), - DUCKDB_GLOBAL(DebugCheckpointAbort), - DUCKDB_GLOBAL(DebugSkipCheckpointOnCommit), - DUCKDB_GLOBAL(StorageCompatibilityVersion), - DUCKDB_LOCAL(DebugForceExternal), - DUCKDB_LOCAL(DebugForceNoCrossProduct), - DUCKDB_LOCAL(DebugAsOfIEJoin), - DUCKDB_LOCAL(PreferRangeJoins), - DUCKDB_GLOBAL(DebugWindowMode), + DUCKDB_GLOBAL_ALIAS("wal_autocheckpoint", CheckpointThresholdSetting), + DUCKDB_GLOBAL(CustomExtensionRepositorySetting), + DUCKDB_LOCAL(CustomProfilingSettingsSetting), + DUCKDB_GLOBAL(CustomUserAgentSetting), + DUCKDB_LOCAL(DebugAsofIejoinSetting), + DUCKDB_GLOBAL(DebugCheckpointAbortSetting), + DUCKDB_LOCAL(DebugForceExternalSetting), + DUCKDB_LOCAL(DebugForceNoCrossProductSetting), + DUCKDB_GLOBAL(DebugSkipCheckpointOnCommitSetting), + DUCKDB_GLOBAL(DebugWindowModeSetting), + DUCKDB_GLOBAL(DefaultBlockSizeSetting), DUCKDB_GLOBAL_LOCAL(DefaultCollationSetting), - DUCKDB_GLOBAL(DefaultOrderSetting), DUCKDB_GLOBAL(DefaultNullOrderSetting), - DUCKDB_GLOBAL(DisabledFileSystemsSetting), + DUCKDB_GLOBAL_ALIAS("null_order", DefaultNullOrderSetting), + DUCKDB_GLOBAL(DefaultOrderSetting), + DUCKDB_GLOBAL(DefaultSecretStorageSetting), + DUCKDB_GLOBAL(DisabledFilesystemsSetting), DUCKDB_GLOBAL(DisabledOptimizersSetting), + DUCKDB_GLOBAL(DuckDBAPISetting), + DUCKDB_LOCAL(DynamicOrFilterThresholdSetting), DUCKDB_GLOBAL(EnableExternalAccessSetting), - DUCKDB_GLOBAL(EnableFSSTVectors), - DUCKDB_GLOBAL(AllowUnsignedExtensionsSetting), - DUCKDB_GLOBAL(AllowCommunityExtensionsSetting), - DUCKDB_GLOBAL(AllowExtensionsMetadataMismatchSetting), - DUCKDB_GLOBAL(AllowUnredactedSecretsSetting), - DUCKDB_GLOBAL(CustomExtensionRepository), - DUCKDB_GLOBAL(AutoloadExtensionRepository), - DUCKDB_GLOBAL(AutoinstallKnownExtensions), - DUCKDB_GLOBAL(AutoloadKnownExtensions), - DUCKDB_GLOBAL(EnableObjectCacheSetting), + DUCKDB_GLOBAL(EnableFSSTVectorsSetting), + DUCKDB_LOCAL(EnableHTTPLoggingSetting), DUCKDB_GLOBAL(EnableHTTPMetadataCacheSetting), + DUCKDB_GLOBAL(EnableMacroDependenciesSetting), + DUCKDB_GLOBAL(EnableObjectCacheSetting), DUCKDB_LOCAL(EnableProfilingSetting), DUCKDB_LOCAL(EnableProgressBarSetting), DUCKDB_LOCAL(EnableProgressBarPrintSetting), - DUCKDB_LOCAL(ErrorsAsJsonSetting), + DUCKDB_GLOBAL(EnableViewDependenciesSetting), + DUCKDB_LOCAL(ErrorsAsJSONSetting), DUCKDB_LOCAL(ExplainOutputSetting), DUCKDB_GLOBAL(ExtensionDirectorySetting), DUCKDB_GLOBAL(ExternalThreadsSetting), DUCKDB_LOCAL(FileSearchPathSetting), - DUCKDB_GLOBAL(ForceCompressionSetting), DUCKDB_GLOBAL(ForceBitpackingModeSetting), + DUCKDB_GLOBAL(ForceCompressionSetting), DUCKDB_LOCAL(HomeDirectorySetting), - DUCKDB_GLOBAL(HTTPProxy), - DUCKDB_GLOBAL(HTTPProxyUsername), - DUCKDB_GLOBAL(HTTPProxyPassword), - DUCKDB_LOCAL(LogQueryPathSetting), - DUCKDB_GLOBAL(EnableMacrosDependencies), - DUCKDB_GLOBAL(EnableViewDependencies), - DUCKDB_GLOBAL(LockConfigurationSetting), + DUCKDB_LOCAL(HTTPLoggingOutputSetting), + DUCKDB_GLOBAL(HTTPProxySetting), + DUCKDB_GLOBAL(HTTPProxyPasswordSetting), + DUCKDB_GLOBAL(HTTPProxyUsernameSetting), DUCKDB_LOCAL(IEEEFloatingPointOpsSetting), DUCKDB_GLOBAL(ImmediateTransactionModeSetting), + DUCKDB_GLOBAL(IndexScanMaxCountSetting), + DUCKDB_GLOBAL(IndexScanPercentageSetting), DUCKDB_LOCAL(IntegerDivisionSetting), - DUCKDB_LOCAL(MaximumExpressionDepthSetting), - DUCKDB_LOCAL(StreamingBufferSize), - DUCKDB_GLOBAL(MaximumMemorySetting), - DUCKDB_GLOBAL(MaximumTempDirectorySize), - DUCKDB_GLOBAL(MaximumVacuumTasks), - DUCKDB_LOCAL(MergeJoinThreshold), - DUCKDB_LOCAL(NestedLoopJoinThreshold), - DUCKDB_GLOBAL(OldImplicitCasting), - DUCKDB_GLOBAL_ALIAS("memory_limit", MaximumMemorySetting), - DUCKDB_GLOBAL_ALIAS("null_order", DefaultNullOrderSetting), - DUCKDB_LOCAL(OrderByNonIntegerLiteral), - DUCKDB_LOCAL(OrderedAggregateThreshold), + DUCKDB_GLOBAL(LockConfigurationSetting), + DUCKDB_LOCAL(LogQueryPathSetting), + DUCKDB_LOCAL(MaxExpressionDepthSetting), + DUCKDB_GLOBAL(MaxMemorySetting), + DUCKDB_GLOBAL_ALIAS("memory_limit", MaxMemorySetting), + DUCKDB_GLOBAL(MaxTempDirectorySizeSetting), + DUCKDB_GLOBAL(MaxVacuumTasksSetting), + DUCKDB_LOCAL(MergeJoinThresholdSetting), + DUCKDB_LOCAL(NestedLoopJoinThresholdSetting), + DUCKDB_GLOBAL(OldImplicitCastingSetting), + DUCKDB_LOCAL(OrderByNonIntegerLiteralSetting), + DUCKDB_LOCAL(OrderedAggregateThresholdSetting), + DUCKDB_LOCAL(PartitionedWriteFlushThresholdSetting), + DUCKDB_LOCAL(PartitionedWriteMaxOpenFilesSetting), DUCKDB_GLOBAL(PasswordSetting), - DUCKDB_LOCAL(PerfectHashThresholdSetting), - DUCKDB_LOCAL(PivotFilterThreshold), + DUCKDB_LOCAL(PerfectHtThresholdSetting), + DUCKDB_LOCAL(PivotFilterThresholdSetting), DUCKDB_LOCAL(PivotLimitSetting), - DUCKDB_LOCAL(PreserveIdentifierCase), - DUCKDB_GLOBAL(PreserveInsertionOrder), + DUCKDB_LOCAL(PreferRangeJoinsSetting), + DUCKDB_LOCAL(PreserveIdentifierCaseSetting), + DUCKDB_GLOBAL(PreserveInsertionOrderSetting), + DUCKDB_GLOBAL(ProduceArrowStringViewSetting), DUCKDB_LOCAL(ProfileOutputSetting), - DUCKDB_LOCAL(ProfilingModeSetting), DUCKDB_LOCAL_ALIAS("profiling_output", ProfileOutputSetting), - DUCKDB_LOCAL(CustomProfilingSettings), + DUCKDB_LOCAL(ProfilingModeSetting), DUCKDB_LOCAL(ProgressBarTimeSetting), + DUCKDB_LOCAL(ScalarSubqueryErrorOnMultipleRowsSetting), DUCKDB_LOCAL(SchemaSetting), DUCKDB_LOCAL(SearchPathSetting), - DUCKDB_LOCAL(ScalarSubqueryErrorOnMultipleRows), DUCKDB_GLOBAL(SecretDirectorySetting), - DUCKDB_GLOBAL(DefaultSecretStorage), + DUCKDB_GLOBAL(StorageCompatibilityVersionSetting), + DUCKDB_LOCAL(StreamingBufferSizeSetting), DUCKDB_GLOBAL(TempDirectorySetting), DUCKDB_GLOBAL(ThreadsSetting), + DUCKDB_GLOBAL_ALIAS("worker_threads", ThreadsSetting), DUCKDB_GLOBAL(UsernameSetting), - DUCKDB_GLOBAL(ExportLargeBufferArrow), - DUCKDB_GLOBAL(ArrowOutputListView), - DUCKDB_GLOBAL(LosslessConversionArrow), - DUCKDB_GLOBAL(ProduceArrowStringView), DUCKDB_GLOBAL_ALIAS("user", UsernameSetting), - DUCKDB_GLOBAL_ALIAS("wal_autocheckpoint", CheckpointThresholdSetting), - DUCKDB_GLOBAL_ALIAS("worker_threads", ThreadsSetting), - DUCKDB_GLOBAL(AllocatorFlushThreshold), - DUCKDB_GLOBAL(AllocatorBulkDeallocationFlushThreshold), - DUCKDB_GLOBAL(AllocatorBackgroundThreadsSetting), - DUCKDB_GLOBAL(DuckDBApiSetting), - DUCKDB_GLOBAL(CustomUserAgentSetting), - DUCKDB_LOCAL(PartitionedWriteFlushThreshold), - DUCKDB_LOCAL(PartitionedWriteMaxOpenFiles), - DUCKDB_GLOBAL(DefaultBlockAllocSize), - DUCKDB_GLOBAL(IndexScanPercentage), - DUCKDB_GLOBAL(IndexScanMaxCount), - DUCKDB_LOCAL(EnableHTTPLoggingSetting), - DUCKDB_LOCAL(HTTPLoggingOutputSetting), + DUCKDB_GLOBAL(ZstdMinStringLengthSetting), FINAL_SETTING}; vector DBConfig::GetOptions() { @@ -241,7 +245,7 @@ void DBConfig::SetOption(DatabaseInstance *db, const ConfigurationOption &option throw InvalidInputException("Could not set option \"%s\" as a global option", option.name); } D_ASSERT(option.reset_global); - Value input = value.DefaultCastAs(option.parameter_type); + Value input = value.DefaultCastAs(ParseLogicalType(option.parameter_type)); option.set_global(db, *this, input); } @@ -273,6 +277,96 @@ void DBConfig::ResetOption(const string &name) { } } +LogicalType DBConfig::ParseLogicalType(const string &type) { + if (StringUtil::EndsWith(type, "[]")) { + // list - recurse + auto child_type = ParseLogicalType(type.substr(0, type.size() - 2)); + return LogicalType::LIST(child_type); + } + + if (StringUtil::EndsWith(type, "]")) { + // array - recurse + auto bracket_open_idx = type.rfind('['); + if (bracket_open_idx == DConstants::INVALID_INDEX || bracket_open_idx == 0) { + throw InternalException("Ill formatted type: '%s'", type); + } + idx_t array_size = 0; + for (auto length_idx = bracket_open_idx + 1; length_idx < type.size() - 1; length_idx++) { + if (!isdigit(type[length_idx])) { + throw InternalException("Ill formatted array type: '%s'", type); + } + array_size = array_size * 10 + static_cast(type[length_idx] - '0'); + } + if (array_size == 0 || array_size > ArrayType::MAX_ARRAY_SIZE) { + throw InternalException("Invalid array size: '%s'", type); + } + auto child_type = ParseLogicalType(type.substr(0, bracket_open_idx)); + return LogicalType::ARRAY(child_type, array_size); + } + + if (StringUtil::StartsWith(type, "MAP(") && StringUtil::EndsWith(type, ")")) { + // map - recurse + string map_args = type.substr(4, type.size() - 5); + vector map_args_vect = StringUtil::SplitWithParentheses(map_args); + if (map_args_vect.size() != 2) { + throw InternalException("Ill formatted map type: '%s'", type); + } + StringUtil::Trim(map_args_vect[0]); + StringUtil::Trim(map_args_vect[1]); + auto key_type = ParseLogicalType(map_args_vect[0]); + auto value_type = ParseLogicalType(map_args_vect[1]); + return LogicalType::MAP(key_type, value_type); + } + + if (StringUtil::StartsWith(type, "UNION(") && StringUtil::EndsWith(type, ")")) { + // union - recurse + string union_members_str = type.substr(6, type.size() - 7); + vector union_members_vect = StringUtil::SplitWithParentheses(union_members_str); + child_list_t union_members; + for (idx_t member_idx = 0; member_idx < union_members_vect.size(); member_idx++) { + StringUtil::Trim(union_members_vect[member_idx]); + vector union_member_parts = StringUtil::SplitWithParentheses(union_members_vect[member_idx], ' '); + if (union_member_parts.size() != 2) { + throw InternalException("Ill formatted union type: %s", type); + } + StringUtil::Trim(union_member_parts[0]); + StringUtil::Trim(union_member_parts[1]); + auto value_type = ParseLogicalType(union_member_parts[1]); + union_members.emplace_back(make_pair(union_member_parts[0], value_type)); + } + if (union_members.empty() || union_members.size() > UnionType::MAX_UNION_MEMBERS) { + throw InternalException("Invalid number of union members: '%s'", type); + } + return LogicalType::UNION(union_members); + } + + if (StringUtil::StartsWith(type, "STRUCT(") && StringUtil::EndsWith(type, ")")) { + // struct - recurse + string struct_members_str = type.substr(7, type.size() - 8); + vector struct_members_vect = StringUtil::SplitWithParentheses(struct_members_str); + child_list_t struct_members; + for (idx_t member_idx = 0; member_idx < struct_members_vect.size(); member_idx++) { + StringUtil::Trim(struct_members_vect[member_idx]); + vector struct_member_parts = StringUtil::SplitWithParentheses(struct_members_vect[member_idx], ' '); + if (struct_member_parts.size() != 2) { + throw InternalException("Ill formatted struct type: %s", type); + } + StringUtil::Trim(struct_member_parts[0]); + StringUtil::Trim(struct_member_parts[1]); + auto value_type = ParseLogicalType(struct_member_parts[1]); + struct_members.emplace_back(make_pair(struct_member_parts[0], value_type)); + } + return LogicalType::STRUCT(struct_members); + } + + LogicalType type_id = StringUtil::CIEquals(type, "ANY") ? LogicalType::ANY : TransformStringToLogicalTypeId(type); + if (type_id == LogicalTypeId::USER) { + throw InternalException("Error while generating extension function overloads - unrecognized logical type %s", + type); + } + return type_id; +} + void DBConfig::AddExtensionOption(const string &name, string description, LogicalType parameter, const Value &default_value, set_option_callback_t function) { extension_parameters.insert( @@ -322,7 +416,9 @@ void DBConfig::SetDefaultMaxMemory() { } void DBConfig::SetDefaultTempDirectory() { - if (DBConfig::IsInMemoryDatabase(options.database_path.c_str())) { + if (!options.use_temporary_directory) { + options.temporary_directory = string(); + } else if (DBConfig::IsInMemoryDatabase(options.database_path.c_str())) { options.temporary_directory = ".tmp"; } else { options.temporary_directory = options.database_path + ".tmp"; @@ -548,6 +644,94 @@ const string DBConfig::UserAgent() const { return user_agent; } +string DBConfig::SanitizeAllowedPath(const string &path) const { + auto path_sep = file_system->PathSeparator(path); + if (path_sep != "/") { + // allowed_directories/allowed_path always uses forward slashes regardless of the OS + return StringUtil::Replace(path, path_sep, "/"); + } + return path; +} + +void DBConfig::AddAllowedDirectory(const string &path) { + auto allowed_directory = SanitizeAllowedPath(path); + if (allowed_directory.empty()) { + throw InvalidInputException("Cannot provide an empty string for allowed_directory"); + } + // ensure the directory ends with a path separator + if (!StringUtil::EndsWith(allowed_directory, "/")) { + allowed_directory += "/"; + } + options.allowed_directories.insert(allowed_directory); +} + +void DBConfig::AddAllowedPath(const string &path) { + auto allowed_path = SanitizeAllowedPath(path); + options.allowed_paths.insert(allowed_path); +} + +bool DBConfig::CanAccessFile(const string &input_path, FileType type) { + if (options.enable_external_access) { + // all external access is allowed + return true; + } + string path = SanitizeAllowedPath(input_path); + if (options.allowed_paths.count(path) > 0) { + // path is explicitly allowed + return true; + } + if (options.allowed_directories.empty()) { + // no prefix directories specified + return false; + } + if (type == FileType::FILE_TYPE_DIR) { + // make sure directories end with a / + if (!StringUtil::EndsWith(path, "/")) { + path += "/"; + } + } + auto start_bound = options.allowed_directories.lower_bound(path); + if (start_bound != options.allowed_directories.begin()) { + --start_bound; + } + auto end_bound = options.allowed_directories.upper_bound(path); + + string prefix; + for (auto it = start_bound; it != end_bound; ++it) { + if (StringUtil::StartsWith(path, *it)) { + prefix = *it; + break; + } + } + if (prefix.empty()) { + // no common prefix found - path is not inside an allowed directory + return false; + } + D_ASSERT(StringUtil::EndsWith(prefix, "/")); + // path is inside an allowed directory - HOWEVER, we could still exit the allowed directory using ".." + // we check if we ever exit the allowed directory using ".." by looking at the path fragments + idx_t directory_level = 0; + idx_t current_pos = prefix.size(); + for (; current_pos < path.size(); current_pos++) { + idx_t dir_begin = current_pos; + // find either the end of the path or the directory separator + for (; path[current_pos] != '/' && current_pos < path.size(); current_pos++) { + } + idx_t path_length = current_pos - dir_begin; + if (path_length == 2 && path[dir_begin] == '.' && path[dir_begin + 1] == '.') { + // go up a directory + if (directory_level == 0) { + // we cannot go up past the prefix + return false; + } + --directory_level; + } else if (path_length > 0) { + directory_level++; + } + } + return true; +} + SerializationCompatibility SerializationCompatibility::FromString(const string &input) { if (input.empty()) { throw InvalidInputException("Version string can not be empty"); diff --git a/src/duckdb/src/main/connection.cpp b/src/duckdb/src/main/connection.cpp index 65f5f255..119b39c8 100644 --- a/src/duckdb/src/main/connection.cpp +++ b/src/duckdb/src/main/connection.cpp @@ -19,7 +19,7 @@ namespace duckdb { Connection::Connection(DatabaseInstance &database) - : context(make_shared_ptr(database.shared_from_this())) { + : context(make_shared_ptr(database.shared_from_this())), warning_cb(nullptr) { ConnectionManager::Get(database).AddConnection(*context); #ifdef DEBUG EnableProfiling(); @@ -50,11 +50,7 @@ Connection::~Connection() { string Connection::GetProfilingInformation(ProfilerPrintFormat format) { auto &profiler = QueryProfiler::Get(*context); - if (format == ProfilerPrintFormat::JSON) { - return profiler.ToJSON(); - } else { - return profiler.QueryTreeToString(); - } + return profiler.ToString(format); } optional_ptr Connection::GetProfilingTree() { @@ -144,6 +140,39 @@ unique_ptr Connection::PendingQuery(unique_ptr return context->PendingQuery(std::move(statement), allow_stream_result); } +unique_ptr Connection::PendingQuery(const string &query, + case_insensitive_map_t &named_values, + bool allow_stream_result) { + return context->PendingQuery(query, named_values, allow_stream_result); +} + +unique_ptr Connection::PendingQuery(unique_ptr statement, + case_insensitive_map_t &named_values, + bool allow_stream_result) { + return context->PendingQuery(std::move(statement), named_values, allow_stream_result); +} + +static case_insensitive_map_t ConvertParamListToMap(vector ¶m_list) { + case_insensitive_map_t named_values; + for (idx_t i = 0; i < param_list.size(); i++) { + auto &val = param_list[i]; + named_values[std::to_string(i + 1)] = BoundParameterData(val); + } + return named_values; +} + +unique_ptr Connection::PendingQuery(const string &query, vector &values, + bool allow_stream_result) { + auto named_params = ConvertParamListToMap(values); + return context->PendingQuery(query, named_params, allow_stream_result); +} + +unique_ptr Connection::PendingQuery(unique_ptr statement, vector &values, + bool allow_stream_result) { + auto named_params = ConvertParamListToMap(values); + return context->PendingQuery(std::move(statement), named_params, allow_stream_result); +} + unique_ptr Connection::Prepare(const string &query) { return context->Prepare(query); } @@ -153,19 +182,25 @@ unique_ptr Connection::Prepare(unique_ptr state } unique_ptr Connection::QueryParamsRecursive(const string &query, vector &values) { - auto statement = Prepare(query); - if (statement->HasError()) { - return make_uniq(statement->error); + auto named_params = ConvertParamListToMap(values); + auto pending = PendingQuery(query, named_params, false); + if (pending->HasError()) { + return make_uniq(pending->GetErrorObject()); } - return statement->Execute(values, false); + return pending->Execute(); } -unique_ptr Connection::TableInfo(const string &table_name) { - return TableInfo(INVALID_SCHEMA, table_name); +unique_ptr Connection::TableInfo(const string &database_name, const string &schema_name, + const string &table_name) { + return context->TableInfo(database_name, schema_name, table_name); } unique_ptr Connection::TableInfo(const string &schema_name, const string &table_name) { - return context->TableInfo(schema_name, table_name); + return TableInfo(INVALID_CATALOG, schema_name, table_name); +} + +unique_ptr Connection::TableInfo(const string &table_name) { + return TableInfo(INVALID_CATALOG, DEFAULT_SCHEMA, table_name); } vector> Connection::ExtractStatements(const string &query) { @@ -194,7 +229,7 @@ shared_ptr Connection::Table(const string &table_name) { } shared_ptr Connection::Table(const string &schema_name, const string &table_name) { - auto table_info = TableInfo(schema_name, table_name); + auto table_info = TableInfo(INVALID_CATALOG, schema_name, table_name); if (!table_info) { throw CatalogException("Table '%s' does not exist!", table_name); } @@ -229,6 +264,11 @@ shared_ptr Connection::Values(const vector> &values) { return Values(values, column_names); } +shared_ptr Connection::Values(vector>> &&expressions) { + vector column_names; + return make_shared_ptr(context, std::move(expressions), column_names); +} + shared_ptr Connection::Values(const vector> &values, const vector &column_names, const string &alias) { return make_shared_ptr(context, values, column_names, alias); diff --git a/src/duckdb/src/main/database.cpp b/src/duckdb/src/main/database.cpp index 4308c4a0..1a391f41 100644 --- a/src/duckdb/src/main/database.cpp +++ b/src/duckdb/src/main/database.cpp @@ -25,6 +25,7 @@ #include "duckdb/storage/storage_extension.hpp" #include "duckdb/storage/storage_manager.hpp" #include "duckdb/transaction/transaction_manager.hpp" +#include "duckdb/main/capi/extension_api.hpp" #ifndef DUCKDB_NO_THREADS #include "duckdb/common/thread.hpp" @@ -34,6 +35,8 @@ namespace duckdb { DBConfig::DBConfig() { compression_functions = make_uniq(); + encoding_functions = make_uniq(); + encoding_functions->Initialize(*this); cast_functions = make_uniq(*this); collation_bindings = make_uniq(); index_types = make_uniq(); @@ -56,6 +59,7 @@ DBConfig::~DBConfig() { DatabaseInstance::DatabaseInstance() { config.is_user_config = false; + create_api_v0 = nullptr; } DatabaseInstance::~DatabaseInstance() { @@ -258,6 +262,10 @@ void DatabaseInstance::LoadExtensionSettings() { } } +static duckdb_ext_api_v0 CreateAPIv0Wrapper() { + return CreateAPIv0(); +} + void DatabaseInstance::Initialize(const char *database_path, DBConfig *user_config) { DBConfig default_config; DBConfig *config_ptr = &default_config; @@ -267,10 +275,7 @@ void DatabaseInstance::Initialize(const char *database_path, DBConfig *user_conf Configure(*config_ptr, database_path); - if (user_config && !user_config->options.use_temporary_directory) { - // temporary directories explicitly disabled - config.options.temporary_directory = string(); - } + create_api_v0 = CreateAPIv0Wrapper; db_file_system = make_uniq(*this); db_manager = make_uniq(*this); @@ -410,6 +415,13 @@ void DatabaseInstance::Configure(DBConfig &new_config, const char *database_path } else { config.file_system = make_uniq(); } + if (database_path && !config.options.enable_external_access) { + config.AddAllowedPath(database_path); + config.AddAllowedPath(database_path + string(".wal")); + if (!config.options.temporary_directory.empty()) { + config.AddAllowedDirectory(config.options.temporary_directory); + } + } if (new_config.secret_manager) { config.secret_manager = std::move(new_config.secret_manager); } @@ -504,6 +516,11 @@ ValidChecker &DatabaseInstance::GetValidChecker() { return db_validity; } +const duckdb_ext_api_v0 DatabaseInstance::GetExtensionAPIV0() { + D_ASSERT(create_api_v0); + return create_api_v0(); +} + ValidChecker &ValidChecker::Get(DatabaseInstance &db) { return db.GetValidChecker(); } diff --git a/src/duckdb/src/main/database_manager.cpp b/src/duckdb/src/main/database_manager.cpp index 5750ab9f..b2039402 100644 --- a/src/duckdb/src/main/database_manager.cpp +++ b/src/duckdb/src/main/database_manager.cpp @@ -134,17 +134,21 @@ void DatabaseManager::EraseDatabasePath(const string &path) { } } +vector DatabaseManager::GetAttachedDatabasePaths() { + lock_guard path_lock(db_paths_lock); + vector paths; + for (auto &path : db_paths) { + paths.push_back(path); + } + return paths; +} + void DatabaseManager::GetDatabaseType(ClientContext &context, AttachInfo &info, const DBConfig &config, AttachOptions &options) { // Test if the database is a DuckDB database file. if (StringUtil::CIEquals(options.db_type, "DUCKDB")) { options.db_type = ""; - - // The DuckDB format does not allow unrecognized options. - if (!options.unrecognized_option.empty()) { - throw BinderException("Unrecognized option for attach \"%s\"", options.unrecognized_option); - } return; } @@ -166,12 +170,6 @@ void DatabaseManager::GetDatabaseType(ClientContext &context, AttachInfo &info, } return; } - - // The DuckDB file format does not allow unrecognized options, except for the block_size option, - // which is specific to DuckDB files. - if (!options.unrecognized_option.empty() && options.unrecognized_option != "block_size") { - throw BinderException("Unrecognized option for attach \"%s\"", options.unrecognized_option); - } } const string &DatabaseManager::GetDefaultDatabase(ClientContext &context) { diff --git a/src/duckdb/src/main/extension/extension_helper.cpp b/src/duckdb/src/main/extension/extension_helper.cpp index 49483241..2eb5e419 100644 --- a/src/duckdb/src/main/extension/extension_helper.cpp +++ b/src/duckdb/src/main/extension/extension_helper.cpp @@ -12,6 +12,10 @@ // Note that c++ preprocessor doesn't have a nice way to clean this up so we need to set the defines we use to false // explicitly when they are undefined +#ifndef DUCKDB_EXTENSION_CORE_FUNCTIONS_LINKED +#define DUCKDB_EXTENSION_CORE_FUNCTIONS_LINKED false +#endif + #ifndef DUCKDB_EXTENSION_ICU_LINKED #define DUCKDB_EXTENSION_ICU_LINKED false #endif @@ -32,10 +36,6 @@ #define DUCKDB_EXTENSION_TPCDS_LINKED false #endif -#ifndef DUCKDB_EXTENSION_FTS_LINKED -#define DUCKDB_EXTENSION_FTS_LINKED false -#endif - #ifndef DUCKDB_EXTENSION_HTTPFS_LINKED #define DUCKDB_EXTENSION_HTTPFS_LINKED false #endif @@ -58,6 +58,10 @@ #else // TODO: rewrite package_build.py to allow also loading out-of-tree extensions in non-cmake builds, after that // these can be removed +#if DUCKDB_EXTENSION_CORE_FUNCTIONS_LINKED +#include "core_functions_extension.hpp" +#endif + #if DUCKDB_EXTENSION_ICU_LINKED #include "icu_extension.hpp" #endif @@ -74,14 +78,6 @@ #include "tpcds_extension.hpp" #endif -#if DUCKDB_EXTENSION_FTS_LINKED -#include "fts_extension.hpp" -#endif - -#if DUCKDB_EXTENSION_HTTPFS_LINKED -#include "httpfs_extension.hpp" -#endif - #if DUCKDB_EXTENSION_JSON_LINKED #include "json_extension.hpp" #endif @@ -93,6 +89,7 @@ #if DUCKDB_EXTENSION_AUTOCOMPLETE_LINKED #include "autocomplete_extension.hpp" #endif + #endif namespace duckdb { @@ -101,12 +98,12 @@ namespace duckdb { // Default Extensions //===--------------------------------------------------------------------===// static const DefaultExtension internal_extensions[] = { + {"core_functions", "Core function library", DUCKDB_EXTENSION_CORE_FUNCTIONS_LINKED}, {"icu", "Adds support for time zones and collations using the ICU library", DUCKDB_EXTENSION_ICU_LINKED}, {"excel", "Adds support for Excel-like format strings", DUCKDB_EXTENSION_EXCEL_LINKED}, {"parquet", "Adds support for reading and writing parquet files", DUCKDB_EXTENSION_PARQUET_LINKED}, {"tpch", "Adds TPC-H data generation and query support", DUCKDB_EXTENSION_TPCH_LINKED}, {"tpcds", "Adds TPC-DS data generation and query support", DUCKDB_EXTENSION_TPCDS_LINKED}, - {"fts", "Adds support for Full-Text Search Indexes", DUCKDB_EXTENSION_FTS_LINKED}, {"httpfs", "Adds support for reading and writing files over a HTTP(S) connection", DUCKDB_EXTENSION_HTTPFS_LINKED}, {"json", "Adds support for JSON operations", DUCKDB_EXTENSION_JSON_LINKED}, {"jemalloc", "Overwrites system allocator with JEMalloc", DUCKDB_EXTENSION_JEMALLOC_LINKED}, @@ -124,6 +121,7 @@ static const DefaultExtension internal_extensions[] = { {"iceberg", "Adds support for Apache Iceberg", false}, {"vss", "Adds indexing support to accelerate Vector Similarity Search", false}, {"delta", "Adds support for Delta Lake", false}, + {"fts", "Adds support for Full-Text Search Indexes", false}, {nullptr, nullptr, false}}; idx_t ExtensionHelper::DefaultExtensionCount() { @@ -212,7 +210,8 @@ bool ExtensionHelper::TryAutoLoadExtension(ClientContext &context, const string try { if (dbconfig.options.autoinstall_known_extensions) { auto &config = DBConfig::GetConfig(context); - auto autoinstall_repo = ExtensionRepository::GetRepositoryByUrl(config.options.autoinstall_extension_repo); + auto autoinstall_repo = ExtensionRepository::GetRepositoryByUrl( + StringValue::Get(config.GetSetting(context))); ExtensionInstallOptions options; options.repository = autoinstall_repo; ExtensionHelper::InstallExtension(context, extension_name, options); @@ -363,7 +362,7 @@ ExtensionUpdateResult ExtensionHelper::UpdateExtension(ClientContext &context, c throw InvalidInputException("Failed to update the extension '%s', the extension is not installed!", extension_name); } else if (update_result.tag == ExtensionUpdateResultTag::UNKNOWN) { - throw InternalException("Failed to update extension '%s', an unknown error ocurred", extension_name); + throw InternalException("Failed to update extension '%s', an unknown error occurred", extension_name); } return update_result; } @@ -403,8 +402,8 @@ void ExtensionHelper::LoadAllExtensions(DuckDB &db) { // The in-tree extensions that we check. Non-cmake builds are currently limited to these for static linking // TODO: rewrite package_build.py to allow also loading out-of-tree extensions in non-cmake builds, after that // these can be removed - unordered_set extensions {"parquet", "icu", "tpch", "tpcds", "fts", "httpfs", - "json", "excel", "inet", "jemalloc", "autocomplete"}; + vector extensions {"parquet", "icu", "tpch", "tpcds", "httpfs", "json", + "excel", "inet", "jemalloc", "autocomplete", "core_functions"}; for (auto &ext : extensions) { LoadExtensionInternal(db, ext, true); } @@ -491,13 +490,6 @@ ExtensionLoadResult ExtensionHelper::LoadExtensionInternal(DuckDB &db, const std #else // icu extension required but not build: skip this test return ExtensionLoadResult::NOT_LOADED; -#endif - } else if (extension == "fts") { -#if DUCKDB_EXTENSION_FTS_LINKED -// db.LoadStaticExtension(); -#else - // fts extension required but not build: skip this test - return ExtensionLoadResult::NOT_LOADED; #endif } else if (extension == "httpfs") { #if DUCKDB_EXTENSION_HTTPFS_LINKED @@ -539,6 +531,13 @@ ExtensionLoadResult ExtensionHelper::LoadExtensionInternal(DuckDB &db, const std #else // inet extension required but not build: skip this test return ExtensionLoadResult::NOT_LOADED; +#endif + } else if (extension == "core_functions") { +#if DUCKDB_EXTENSION_CORE_FUNCTIONS_LINKED + db.LoadStaticExtension(); +#else + // core_functions extension required but not build: skip this test + return ExtensionLoadResult::NOT_LOADED; #endif } diff --git a/src/duckdb/src/main/extension/extension_install.cpp b/src/duckdb/src/main/extension/extension_install.cpp index b0ca9fb7..1258d95e 100644 --- a/src/duckdb/src/main/extension/extension_install.cpp +++ b/src/duckdb/src/main/extension/extension_install.cpp @@ -358,7 +358,15 @@ static unique_ptr InstallFromHttpUrl(DatabaseInstance &db, { auto fs = FileSystem::CreateLocal(); if (fs->FileExists(local_extension_path + ".info")) { - install_info = ExtensionInstallInfo::TryReadInfoFile(*fs, local_extension_path + ".info", extension_name); + try { + install_info = + ExtensionInstallInfo::TryReadInfoFile(*fs, local_extension_path + ".info", extension_name); + } catch (...) { + if (!options.force_install) { + // We are going to rewrite the file anyhow, so this is fine + throw; + } + } } } diff --git a/src/duckdb/src/main/extension/extension_load.cpp b/src/duckdb/src/main/extension/extension_load.cpp index c0a37ea9..bb2a8957 100644 --- a/src/duckdb/src/main/extension/extension_load.cpp +++ b/src/duckdb/src/main/extension/extension_load.cpp @@ -67,8 +67,15 @@ struct ExtensionAccess { static void SetError(duckdb_extension_info info, const char *error) { auto &load_state = DuckDBExtensionLoadState::Get(info); - load_state.has_error = true; - load_state.error_data = ErrorData(ExceptionType::UNKNOWN_TYPE, error); + if (error) { + load_state.has_error = true; + load_state.error_data = ErrorData(error); + } else { + load_state.has_error = true; + load_state.error_data = ErrorData( + ExceptionType::UNKNOWN_TYPE, + "Extension has indicated an error occured during initialization, but did not set an error message."); + } } //! Called by the extension get a pointer to the database that is loading it @@ -91,7 +98,7 @@ struct ExtensionAccess { } //! Called by the extension get a pointer the correctly versioned extension C API struct. - static void *GetAPI(duckdb_extension_info info, const char *version) { + static const void *GetAPI(duckdb_extension_info info, const char *version) { string version_string = version; idx_t major, minor, patch; @@ -106,7 +113,8 @@ struct ExtensionAccess { "Unsupported C CAPI version detected during extension initialization: " + string(version)); return nullptr; } - load_state.api_struct = CreateAPIv0(); + + load_state.api_struct = load_state.db.GetExtensionAPIV0(); return &load_state.api_struct; } }; @@ -118,7 +126,7 @@ struct ExtensionAccess { // The C++ init function typedef void (*ext_init_fun_t)(DatabaseInstance &); // The C init function -typedef void (*ext_init_c_api_fun_t)(duckdb_extension_info info, duckdb_extension_access *access); +typedef bool (*ext_init_c_api_fun_t)(duckdb_extension_info info, duckdb_extension_access *access); typedef const char *(*ext_version_fun_t)(void); typedef bool (*ext_is_storage_t)(void); @@ -531,13 +539,23 @@ void ExtensionHelper::LoadExternalExtension(DatabaseInstance &db, FileSystem &fs DuckDBExtensionLoadState load_state(db); auto access = ExtensionAccess::CreateAccessStruct(); - (*init_fun_capi)(load_state.ToCStruct(), &access); + auto result = (*init_fun_capi)(load_state.ToCStruct(), &access); // Throw any error that the extension might have encountered if (load_state.has_error) { load_state.error_data.Throw("An error was thrown during initialization of the extension '" + extension + "': "); } + // Extensions are expected to either set an error or return true indicating successful initialization + if (result == false) { + throw FatalException( + "Extension '%s' failed to initialize but did not return an error. This indicates an " + "error in the extension: C API extensions should return a boolean `true` to indicate succesful " + "initialization. " + "This means that the Extension may be partially initialized resulting in an inconsistent state of DuckDB.", + extension); + } + D_ASSERT(res.install_info); db.SetExtensionLoaded(extension, *res.install_info); diff --git a/src/duckdb/src/main/extension/extension_util.cpp b/src/duckdb/src/main/extension/extension_util.cpp index bcad3146..609fd4b7 100644 --- a/src/duckdb/src/main/extension/extension_util.cpp +++ b/src/duckdb/src/main/extension/extension_util.cpp @@ -24,31 +24,39 @@ void ExtensionUtil::RegisterExtension(DatabaseInstance &db, const string &name, db.AddExtensionInfo(name, description); } +void ExtensionUtil::RegisterFunction(DatabaseInstance &db, ScalarFunction function) { + ScalarFunctionSet set(function.name); + set.AddFunction(std::move(function)); + RegisterFunction(db, std::move(set)); +} + void ExtensionUtil::RegisterFunction(DatabaseInstance &db, ScalarFunctionSet set) { - D_ASSERT(!set.name.empty()); CreateScalarFunctionInfo info(std::move(set)); + info.on_conflict = OnCreateConflict::ALTER_ON_CONFLICT; + RegisterFunction(db, std::move(info)); +} + +void ExtensionUtil::RegisterFunction(DatabaseInstance &db, CreateScalarFunctionInfo info) { + D_ASSERT(!info.functions.name.empty()); auto &system_catalog = Catalog::GetSystemCatalog(db); auto data = CatalogTransaction::GetSystemTransaction(db); system_catalog.CreateFunction(data, info); } -void ExtensionUtil::RegisterFunction(DatabaseInstance &db, ScalarFunction function) { - D_ASSERT(!function.name.empty()); - ScalarFunctionSet set(function.name); - set.AddFunction(std::move(function)); - RegisterFunction(db, std::move(set)); -} - void ExtensionUtil::RegisterFunction(DatabaseInstance &db, AggregateFunction function) { - D_ASSERT(!function.name.empty()); AggregateFunctionSet set(function.name); set.AddFunction(std::move(function)); RegisterFunction(db, std::move(set)); } void ExtensionUtil::RegisterFunction(DatabaseInstance &db, AggregateFunctionSet set) { - D_ASSERT(!set.name.empty()); CreateAggregateFunctionInfo info(std::move(set)); + info.on_conflict = OnCreateConflict::ALTER_ON_CONFLICT; + RegisterFunction(db, std::move(info)); +} + +void ExtensionUtil::RegisterFunction(DatabaseInstance &db, CreateAggregateFunctionInfo info) { + D_ASSERT(!info.functions.name.empty()); auto &system_catalog = Catalog::GetSystemCatalog(db); auto data = CatalogTransaction::GetSystemTransaction(db); system_catalog.CreateFunction(data, info); @@ -61,7 +69,6 @@ void ExtensionUtil::RegisterFunction(DatabaseInstance &db, CreateSecretFunction } void ExtensionUtil::RegisterFunction(DatabaseInstance &db, TableFunction function) { - D_ASSERT(!function.name.empty()); TableFunctionSet set(function.name); set.AddFunction(std::move(function)); RegisterFunction(db, std::move(set)); @@ -70,6 +77,12 @@ void ExtensionUtil::RegisterFunction(DatabaseInstance &db, TableFunction functio void ExtensionUtil::RegisterFunction(DatabaseInstance &db, TableFunctionSet function) { D_ASSERT(!function.name.empty()); CreateTableFunctionInfo info(std::move(function)); + info.on_conflict = OnCreateConflict::ALTER_ON_CONFLICT; + RegisterFunction(db, std::move(info)); +} + +void ExtensionUtil::RegisterFunction(DatabaseInstance &db, CreateTableFunctionInfo info) { + D_ASSERT(!info.functions.name.empty()); auto &system_catalog = Catalog::GetSystemCatalog(db); auto data = CatalogTransaction::GetSystemTransaction(db); system_catalog.CreateFunction(data, info); @@ -138,24 +151,32 @@ void ExtensionUtil::AddFunctionOverload(DatabaseInstance &db, TableFunctionSet f } } -ScalarFunctionCatalogEntry &ExtensionUtil::GetFunction(DatabaseInstance &db, const string &name) { +optional_ptr TryGetEntry(DatabaseInstance &db, const string &name, CatalogType type) { D_ASSERT(!name.empty()); auto &system_catalog = Catalog::GetSystemCatalog(db); auto data = CatalogTransaction::GetSystemTransaction(db); auto &schema = system_catalog.GetSchema(data, DEFAULT_SCHEMA); - auto catalog_entry = schema.GetEntry(data, CatalogType::SCALAR_FUNCTION_ENTRY, name); + return schema.GetEntry(data, type, name); +} + +optional_ptr ExtensionUtil::TryGetFunction(DatabaseInstance &db, const string &name) { + return TryGetEntry(db, name, CatalogType::SCALAR_FUNCTION_ENTRY); +} + +ScalarFunctionCatalogEntry &ExtensionUtil::GetFunction(DatabaseInstance &db, const string &name) { + auto catalog_entry = TryGetFunction(db, name); if (!catalog_entry) { throw InvalidInputException("Function with name \"%s\" not found in ExtensionUtil::GetFunction", name); } return catalog_entry->Cast(); } +optional_ptr ExtensionUtil::TryGetTableFunction(DatabaseInstance &db, const string &name) { + return TryGetEntry(db, name, CatalogType::TABLE_FUNCTION_ENTRY); +} + TableFunctionCatalogEntry &ExtensionUtil::GetTableFunction(DatabaseInstance &db, const string &name) { - D_ASSERT(!name.empty()); - auto &system_catalog = Catalog::GetSystemCatalog(db); - auto data = CatalogTransaction::GetSystemTransaction(db); - auto &schema = system_catalog.GetSchema(data, DEFAULT_SCHEMA); - auto catalog_entry = schema.GetEntry(data, CatalogType::TABLE_FUNCTION_ENTRY, name); + auto catalog_entry = TryGetTableFunction(db, name); if (!catalog_entry) { throw InvalidInputException("Function with name \"%s\" not found in ExtensionUtil::GetTableFunction", name); } diff --git a/src/duckdb/src/main/extension_install_info.cpp b/src/duckdb/src/main/extension_install_info.cpp index 933a4a96..8c9e69e0 100644 --- a/src/duckdb/src/main/extension_install_info.cpp +++ b/src/duckdb/src/main/extension_install_info.cpp @@ -100,7 +100,7 @@ unique_ptr ExtensionInstallInfo::TryReadInfoFile(FileSyste } catch (std::exception &ex) { ErrorData error(ex); throw IOException( - "Failed to read info file for '%s' extension: '%s'.\nA serialization error occured: '%s'\n%s", + "Failed to read info file for '%s' extension: '%s'.\nA serialization error occurred: '%s'\n%s", extension_name, info_file_path, error.RawMessage(), hint); } } diff --git a/src/duckdb/src/main/profiling_info.cpp b/src/duckdb/src/main/profiling_info.cpp index 53645782..4ce68b76 100644 --- a/src/duckdb/src/main/profiling_info.cpp +++ b/src/duckdb/src/main/profiling_info.cpp @@ -9,44 +9,63 @@ using namespace duckdb_yyjson; // NOLINT namespace duckdb { -profiler_settings_t ProfilingInfo::DefaultSettings() { - return {MetricsType::QUERY_NAME, MetricsType::BLOCKED_THREAD_TIME, MetricsType::CPU_TIME, - MetricsType::EXTRA_INFO, MetricsType::CUMULATIVE_CARDINALITY, MetricsType::OPERATOR_TYPE, - MetricsType::OPERATOR_CARDINALITY, MetricsType::CUMULATIVE_ROWS_SCANNED, MetricsType::OPERATOR_ROWS_SCANNED, - MetricsType::OPERATOR_TIMING, MetricsType::RESULT_SET_SIZE}; -} +ProfilingInfo::ProfilingInfo(const profiler_settings_t &n_settings, const idx_t depth) : settings(n_settings) { + // Expand. + if (depth == 0) { + settings.insert(MetricsType::QUERY_NAME); + } else { + settings.insert(MetricsType::OPERATOR_NAME); + settings.insert(MetricsType::OPERATOR_TYPE); + } + for (const auto &metric : settings) { + Expand(expanded_settings, metric); + } -profiler_settings_t ProfilingInfo::DefaultOperatorSettings() { - return {MetricsType::OPERATOR_CARDINALITY, MetricsType::OPERATOR_ROWS_SCANNED, MetricsType::OPERATOR_TIMING, - MetricsType::RESULT_SET_SIZE}; + // Reduce. + if (depth == 0) { + auto op_metrics = DefaultOperatorSettings(); + for (const auto metric : op_metrics) { + settings.erase(metric); + } + } else { + auto root_metrics = DefaultRootSettings(); + for (const auto metric : root_metrics) { + settings.erase(metric); + } + } + ResetMetrics(); } -profiler_settings_t ProfilingInfo::AllSettings() { - auto all_settings = DefaultSettings(); - auto optimizer_settings = MetricsUtils::GetOptimizerMetrics(); - auto phase_timings = MetricsUtils::GetPhaseTimingMetrics(); - - for (auto &setting : optimizer_settings) { - all_settings.insert(setting); - } +profiler_settings_t ProfilingInfo::DefaultSettings() { + return {MetricsType::QUERY_NAME, + MetricsType::BLOCKED_THREAD_TIME, + MetricsType::CPU_TIME, + MetricsType::EXTRA_INFO, + MetricsType::CUMULATIVE_CARDINALITY, + MetricsType::OPERATOR_NAME, + MetricsType::OPERATOR_TYPE, + MetricsType::OPERATOR_CARDINALITY, + MetricsType::CUMULATIVE_ROWS_SCANNED, + MetricsType::OPERATOR_ROWS_SCANNED, + MetricsType::OPERATOR_TIMING, + MetricsType::RESULT_SET_SIZE, + MetricsType::LATENCY, + MetricsType::ROWS_RETURNED}; +} - for (auto &setting : phase_timings) { - all_settings.insert(setting); - } +profiler_settings_t ProfilingInfo::DefaultRootSettings() { + return {MetricsType::QUERY_NAME, MetricsType::BLOCKED_THREAD_TIME, MetricsType::LATENCY, + MetricsType::ROWS_RETURNED}; +} - return all_settings; +profiler_settings_t ProfilingInfo::DefaultOperatorSettings() { + return {MetricsType::OPERATOR_CARDINALITY, MetricsType::OPERATOR_ROWS_SCANNED, MetricsType::OPERATOR_TIMING, + MetricsType::OPERATOR_NAME, MetricsType::OPERATOR_TYPE}; } void ProfilingInfo::ResetMetrics() { metrics.clear(); - - auto all_settings = AllSettings(); - - for (auto &metric : all_settings) { - if (!Enabled(metric)) { - continue; - } - + for (auto &metric : expanded_settings) { if (MetricsUtils::IsOptimizerMetric(metric) || MetricsUtils::IsPhaseTimingMetric(metric)) { metrics[metric] = Value::CreateValue(0.0); continue; @@ -54,24 +73,28 @@ void ProfilingInfo::ResetMetrics() { switch (metric) { case MetricsType::QUERY_NAME: + metrics[metric] = Value::CreateValue(""); + break; + case MetricsType::LATENCY: case MetricsType::BLOCKED_THREAD_TIME: case MetricsType::CPU_TIME: - case MetricsType::OPERATOR_TIMING: { + case MetricsType::OPERATOR_TIMING: metrics[metric] = Value::CreateValue(0.0); break; - } - case MetricsType::OPERATOR_TYPE: { + case MetricsType::OPERATOR_NAME: + metrics[metric] = Value::CreateValue(""); + break; + case MetricsType::OPERATOR_TYPE: metrics[metric] = Value::CreateValue(0); break; - } + case MetricsType::ROWS_RETURNED: case MetricsType::RESULT_SET_SIZE: case MetricsType::CUMULATIVE_CARDINALITY: case MetricsType::OPERATOR_CARDINALITY: case MetricsType::CUMULATIVE_ROWS_SCANNED: - case MetricsType::OPERATOR_ROWS_SCANNED: { + case MetricsType::OPERATOR_ROWS_SCANNED: metrics[metric] = Value::CreateValue(0); break; - } case MetricsType::EXTRA_INFO: break; default: @@ -80,35 +103,45 @@ void ProfilingInfo::ResetMetrics() { } } -bool ProfilingInfo::Enabled(const MetricsType setting) const { - if (settings.find(setting) != settings.end()) { +bool ProfilingInfo::Enabled(const profiler_settings_t &settings, const MetricsType metric) { + if (settings.find(metric) != settings.end()) { return true; } + return false; +} - switch (setting) { - case MetricsType::OPERATOR_TIMING: - return Enabled(MetricsType::CPU_TIME); - case MetricsType::OPERATOR_CARDINALITY: - return Enabled(MetricsType::CUMULATIVE_CARDINALITY); - case MetricsType::OPERATOR_ROWS_SCANNED: - return Enabled(MetricsType::CUMULATIVE_ROWS_SCANNED); - default: - break; +void ProfilingInfo::Expand(profiler_settings_t &settings, const MetricsType metric) { + settings.insert(metric); + + switch (metric) { + case MetricsType::CPU_TIME: + settings.insert(MetricsType::OPERATOR_TIMING); + return; + case MetricsType::CUMULATIVE_CARDINALITY: + settings.insert(MetricsType::OPERATOR_CARDINALITY); + return; + case MetricsType::CUMULATIVE_ROWS_SCANNED: + settings.insert(MetricsType::OPERATOR_ROWS_SCANNED); + return; + case MetricsType::CUMULATIVE_OPTIMIZER_TIMING: + case MetricsType::ALL_OPTIMIZERS: { + auto optimizer_metrics = MetricsUtils::GetOptimizerMetrics(); + for (const auto optimizer_metric : optimizer_metrics) { + settings.insert(optimizer_metric); + } + return; } - - if (MetricsUtils::IsOptimizerMetric(setting)) { - return Enabled(MetricsType::CUMULATIVE_OPTIMIZER_TIMING); + default: + return; } - - return false; } -string ProfilingInfo::GetMetricAsString(MetricsType setting) const { - if (!Enabled(setting)) { - throw InternalException("Metric %s not enabled", EnumUtil::ToString(setting)); +string ProfilingInfo::GetMetricAsString(const MetricsType metric) const { + if (!Enabled(settings, metric)) { + throw InternalException("Metric %s not enabled", EnumUtil::ToString(metric)); } - if (setting == MetricsType::EXTRA_INFO) { + if (metric == MetricsType::EXTRA_INFO) { string result; for (auto &it : extra_info) { if (!result.empty()) { @@ -120,14 +153,12 @@ string ProfilingInfo::GetMetricAsString(MetricsType setting) const { } // The metric cannot be NULL and must be initialized. - D_ASSERT(!metrics.at(setting).IsNull()); - - if (setting == MetricsType::OPERATOR_TYPE) { - auto type = PhysicalOperatorType(metrics.at(setting).GetValue()); + D_ASSERT(!metrics.at(metric).IsNull()); + if (metric == MetricsType::OPERATOR_TYPE) { + auto type = PhysicalOperatorType(metrics.at(metric).GetValue()); return EnumUtil::ToString(type); } - - return metrics.at(setting).ToString(); + return metrics.at(metric).ToString(); } void ProfilingInfo::WriteMetricsToJSON(yyjson_mut_doc *doc, yyjson_mut_val *dest) { @@ -167,8 +198,10 @@ void ProfilingInfo::WriteMetricsToJSON(yyjson_mut_doc *doc, yyjson_mut_val *dest switch (metric) { case MetricsType::QUERY_NAME: + case MetricsType::OPERATOR_NAME: yyjson_mut_obj_add_strcpy(doc, dest, key_ptr, metrics[metric].GetValue().c_str()); break; + case MetricsType::LATENCY: case MetricsType::BLOCKED_THREAD_TIME: case MetricsType::CPU_TIME: case MetricsType::OPERATOR_TIMING: { @@ -179,6 +212,7 @@ void ProfilingInfo::WriteMetricsToJSON(yyjson_mut_doc *doc, yyjson_mut_val *dest yyjson_mut_obj_add_strcpy(doc, dest, key_ptr, GetMetricAsString(metric).c_str()); break; } + case MetricsType::ROWS_RETURNED: case MetricsType::RESULT_SET_SIZE: case MetricsType::CUMULATIVE_CARDINALITY: case MetricsType::OPERATOR_CARDINALITY: diff --git a/src/duckdb/src/main/query_profiler.cpp b/src/duckdb/src/main/query_profiler.cpp index 98b3bd10..99f7a40a 100644 --- a/src/duckdb/src/main/query_profiler.cpp +++ b/src/duckdb/src/main/query_profiler.cpp @@ -8,13 +8,12 @@ #include "duckdb/common/tree_renderer/text_tree_renderer.hpp" #include "duckdb/execution/expression_executor.hpp" #include "duckdb/execution/operator/helper/physical_execute.hpp" +#include "duckdb/execution/operator/scan/physical_table_scan.hpp" #include "duckdb/execution/physical_operator.hpp" #include "duckdb/main/client_config.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/main/client_data.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/execution/operator/scan/physical_table_scan.hpp" - #include "yyjson.hpp" #include @@ -46,12 +45,35 @@ ProfilerPrintFormat QueryProfiler::GetPrintFormat(ExplainFormat format) const { return ProfilerPrintFormat::QUERY_TREE; case ExplainFormat::JSON: return ProfilerPrintFormat::JSON; + case ExplainFormat::HTML: + return ProfilerPrintFormat::HTML; + case ExplainFormat::GRAPHVIZ: + return ProfilerPrintFormat::GRAPHVIZ; default: throw NotImplementedException("No mapping from ExplainFormat::%s to ProfilerPrintFormat", EnumUtil::ToString(format)); } } +ExplainFormat QueryProfiler::GetExplainFormat(ProfilerPrintFormat format) const { + switch (format) { + case ProfilerPrintFormat::QUERY_TREE: + case ProfilerPrintFormat::QUERY_TREE_OPTIMIZER: + return ExplainFormat::TEXT; + case ProfilerPrintFormat::JSON: + return ExplainFormat::JSON; + case ProfilerPrintFormat::HTML: + return ExplainFormat::HTML; + case ProfilerPrintFormat::GRAPHVIZ: + return ExplainFormat::GRAPHVIZ; + case ProfilerPrintFormat::NO_OUTPUT: + throw InternalException("Should not attempt to get ExplainFormat for ProfilerPrintFormat::NO_OUTPUT"); + default: + throw NotImplementedException("No mapping from ProfilePrintFormat::%s to ExplainFormat", + EnumUtil::ToString(format)); + } +} + bool QueryProfiler::PrintOptimizerOutput() const { return GetPrintFormat() == ProfilerPrintFormat::QUERY_TREE_OPTIMIZER || IsDetailedEnabled(); } @@ -65,6 +87,7 @@ QueryProfiler &QueryProfiler::Get(ClientContext &context) { } void QueryProfiler::StartQuery(string query, bool is_explain_analyze_p, bool start_at_optimizer) { + lock_guard guard(lock); if (is_explain_analyze_p) { StartExplainAnalyze(); } @@ -121,6 +144,7 @@ bool QueryProfiler::OperatorRequiresProfiling(PhysicalOperatorType op_type) { case PhysicalOperatorType::UNION: case PhysicalOperatorType::RECURSIVE_CTE: case PhysicalOperatorType::EMPTY_RESULT: + case PhysicalOperatorType::EXTENSION: return true; default: return false; @@ -134,9 +158,12 @@ void QueryProfiler::Finalize(ProfilingNode &node) { auto &info = node.GetProfilingInfo(); auto type = PhysicalOperatorType(info.GetMetricValue(MetricsType::OPERATOR_TYPE)); - if (type == PhysicalOperatorType::UNION && info.Enabled(MetricsType::OPERATOR_CARDINALITY)) { - info.AddToMetric(MetricsType::OPERATOR_CARDINALITY, - child->GetProfilingInfo().metrics[MetricsType::OPERATOR_CARDINALITY].GetValue()); + if (type == PhysicalOperatorType::UNION && + info.Enabled(info.expanded_settings, MetricsType::OPERATOR_CARDINALITY)) { + + auto &child_info = child->GetProfilingInfo(); + auto value = child_info.metrics[MetricsType::OPERATOR_CARDINALITY].GetValue(); + info.AddToMetric(MetricsType::OPERATOR_CARDINALITY, value); } } } @@ -147,12 +174,14 @@ void QueryProfiler::StartExplainAnalyze() { template static void GetCumulativeMetric(ProfilingNode &node, MetricsType cumulative_metric, MetricsType child_metric) { - node.GetProfilingInfo().metrics[cumulative_metric] = node.GetProfilingInfo().metrics[child_metric]; + auto &info = node.GetProfilingInfo(); + info.metrics[cumulative_metric] = info.metrics[child_metric]; + for (idx_t i = 0; i < node.GetChildCount(); i++) { auto child = node.GetChild(i); GetCumulativeMetric(*child, cumulative_metric, child_metric); - node.GetProfilingInfo().AddToMetric( - cumulative_metric, child->GetProfilingInfo().metrics[cumulative_metric].GetValue()); + auto value = child->GetProfilingInfo().metrics[cumulative_metric].GetValue(); + info.AddToMetric(cumulative_metric, value); } } @@ -168,77 +197,92 @@ Value GetCumulativeOptimizers(ProfilingNode &node) { } void QueryProfiler::EndQuery() { - lock_guard guard(flush_lock); + unique_lock guard(lock); if (!IsEnabled() || !running) { return; } main_query.End(); - if (root && root->GetProfilingInfo().Enabled(MetricsType::OPERATOR_CARDINALITY)) { - Finalize(*root->GetChild(0)); + if (root) { + auto &info = root->GetProfilingInfo(); + if (info.Enabled(info.expanded_settings, MetricsType::OPERATOR_CARDINALITY)) { + Finalize(*root->GetChild(0)); + } } running = false; + bool emit_output = false; + // Print or output the query profiling after query termination. // EXPLAIN ANALYZE output is not written by the profiler. if (IsEnabled() && !is_explain_analyze) { - // Expand the query info. if (root) { auto &info = root->GetProfilingInfo(); info = ProfilingInfo(ClientConfig::GetConfig(context).profiler_settings); + auto &child_info = root->children[0]->GetProfilingInfo(); info.metrics[MetricsType::QUERY_NAME] = query_info.query_name; - if (info.Enabled(MetricsType::BLOCKED_THREAD_TIME)) { + auto &settings = info.expanded_settings; + if (info.Enabled(settings, MetricsType::BLOCKED_THREAD_TIME)) { info.metrics[MetricsType::BLOCKED_THREAD_TIME] = query_info.blocked_thread_time; } - if (info.Enabled(MetricsType::OPERATOR_TIMING)) { - info.metrics[MetricsType::OPERATOR_TIMING] = main_query.Elapsed(); + if (info.Enabled(settings, MetricsType::LATENCY)) { + info.metrics[MetricsType::LATENCY] = main_query.Elapsed(); + } + if (info.Enabled(settings, MetricsType::ROWS_RETURNED)) { + info.metrics[MetricsType::ROWS_RETURNED] = child_info.metrics[MetricsType::OPERATOR_CARDINALITY]; } - if (info.Enabled(MetricsType::CPU_TIME)) { + if (info.Enabled(settings, MetricsType::CPU_TIME)) { GetCumulativeMetric(*root, MetricsType::CPU_TIME, MetricsType::OPERATOR_TIMING); } - if (info.Enabled(MetricsType::CUMULATIVE_CARDINALITY)) { + if (info.Enabled(settings, MetricsType::CUMULATIVE_CARDINALITY)) { GetCumulativeMetric(*root, MetricsType::CUMULATIVE_CARDINALITY, MetricsType::OPERATOR_CARDINALITY); } - if (info.Enabled(MetricsType::CUMULATIVE_ROWS_SCANNED)) { + if (info.Enabled(settings, MetricsType::CUMULATIVE_ROWS_SCANNED)) { GetCumulativeMetric(*root, MetricsType::CUMULATIVE_ROWS_SCANNED, MetricsType::OPERATOR_ROWS_SCANNED); } + if (info.Enabled(settings, MetricsType::RESULT_SET_SIZE)) { + info.metrics[MetricsType::RESULT_SET_SIZE] = child_info.metrics[MetricsType::RESULT_SET_SIZE]; + } MoveOptimizerPhasesToRoot(); - if (info.Enabled(MetricsType::CUMULATIVE_OPTIMIZER_TIMING)) { + if (info.Enabled(settings, MetricsType::CUMULATIVE_OPTIMIZER_TIMING)) { info.metrics.at(MetricsType::CUMULATIVE_OPTIMIZER_TIMING) = GetCumulativeOptimizers(*root); } + } - if (info.Enabled(MetricsType::OPERATOR_TYPE)) { - info.settings.erase(MetricsType::OPERATOR_TYPE); - } - - if (info.Enabled(MetricsType::RESULT_SET_SIZE)) { - info.metrics[MetricsType::RESULT_SET_SIZE] = - root->children[0]->GetProfilingInfo().metrics[MetricsType::RESULT_SET_SIZE]; - } + if (ClientConfig::GetConfig(context).emit_profiler_output) { + emit_output = true; } + } + + is_explain_analyze = false; + guard.unlock(); + + if (emit_output) { string tree = ToString(); auto save_location = GetSaveLocation(); - if (!ClientConfig::GetConfig(context).emit_profiler_output) { - // disable output - } else if (save_location.empty()) { + if (save_location.empty()) { Printer::Print(tree); Printer::Print("\n"); } else { WriteToFile(save_location.c_str(), tree); } } - - is_explain_analyze = false; } string QueryProfiler::ToString(ExplainFormat explain_format) const { - const auto format = GetPrintFormat(explain_format); + return ToString(GetPrintFormat(explain_format)); +} + +string QueryProfiler::ToString(ProfilerPrintFormat format) const { + if (!IsEnabled()) { + return RenderDisabledMessage(format); + } switch (format) { case ProfilerPrintFormat::QUERY_TREE: case ProfilerPrintFormat::QUERY_TREE_OPTIMIZER: @@ -247,12 +291,30 @@ string QueryProfiler::ToString(ExplainFormat explain_format) const { return ToJSON(); case ProfilerPrintFormat::NO_OUTPUT: return ""; + case ProfilerPrintFormat::HTML: + case ProfilerPrintFormat::GRAPHVIZ: { + lock_guard guard(lock); + // checking the tree to ensure the query is really empty + // the query string is empty when a logical plan is deserialized + if (query_info.query_name.empty() && !root) { + return ""; + } + auto renderer = TreeRenderer::CreateRenderer(GetExplainFormat(format)); + std::stringstream str; + auto &info = root->GetProfilingInfo(); + if (info.Enabled(info.expanded_settings, MetricsType::OPERATOR_TIMING)) { + info.metrics[MetricsType::OPERATOR_TIMING] = main_query.Elapsed(); + } + renderer->Render(*root, str); + return str.str(); + } default: throw InternalException("Unknown ProfilerPrintFormat \"%s\"", EnumUtil::ToString(format)); } } void QueryProfiler::StartPhase(MetricsType phase_metric) { + lock_guard guard(lock); if (!IsEnabled() || !running) { return; } @@ -264,6 +326,7 @@ void QueryProfiler::StartPhase(MetricsType phase_metric) { } void QueryProfiler::EndPhase() { + lock_guard guard(lock); if (!IsEnabled() || !running) { return; } @@ -283,34 +346,20 @@ void QueryProfiler::EndPhase() { } } -bool SettingIsEnabled(const profiler_settings_t &settings, MetricsType metric) { - if (settings.find(metric) != settings.end()) { - return true; - } - - switch (metric) { - case MetricsType::OPERATOR_TIMING: - return SettingIsEnabled(settings, MetricsType::CPU_TIME); - case MetricsType::OPERATOR_CARDINALITY: - return SettingIsEnabled(settings, MetricsType::CUMULATIVE_CARDINALITY); - case MetricsType::OPERATOR_ROWS_SCANNED: - return SettingIsEnabled(settings, MetricsType::CUMULATIVE_ROWS_SCANNED); - default: - break; - } - - return false; -} - OperatorProfiler::OperatorProfiler(ClientContext &context) : context(context) { enabled = QueryProfiler::Get(context).IsEnabled(); - auto &settings = ClientConfig::GetConfig(context).profiler_settings; + auto &context_metrics = ClientConfig::GetConfig(context).profiler_settings; - profiler_settings_t op_metrics = ProfilingInfo::DefaultOperatorSettings(); - for (auto &metric : op_metrics) { - if (SettingIsEnabled(settings, metric)) { - operator_settings.insert(metric); - } + // Expand. + for (const auto metric : context_metrics) { + settings.insert(metric); + ProfilingInfo::Expand(settings, metric); + } + + // Reduce. + auto root_metrics = ProfilingInfo::DefaultRootSettings(); + for (const auto metric : root_metrics) { + settings.erase(metric); } } @@ -318,15 +367,13 @@ void OperatorProfiler::StartOperator(optional_ptr phys_o if (!enabled) { return; } - if (active_operator) { throw InternalException("OperatorProfiler: Attempting to call StartOperator while another operator is active"); } - active_operator = phys_op; - // start timing for current element - if (HasOperatorSetting(MetricsType::OPERATOR_TIMING)) { + // Start the timing of the current operator. + if (ProfilingInfo::Enabled(settings, MetricsType::OPERATOR_TIMING)) { op.Start(); } } @@ -335,26 +382,22 @@ void OperatorProfiler::EndOperator(optional_ptr chunk) { if (!enabled) { return; } - if (!active_operator) { throw InternalException("OperatorProfiler: Attempting to call EndOperator while another operator is active"); } - if (!operator_settings.empty()) { - // get the operator info for the current element - auto &curr_operator_info = GetOperatorInfo(*active_operator); - - // finish timing for the current element - if (HasOperatorSetting(MetricsType::OPERATOR_TIMING)) { + if (!settings.empty()) { + auto &info = GetOperatorInfo(*active_operator); + if (ProfilingInfo::Enabled(settings, MetricsType::OPERATOR_TIMING)) { op.End(); - curr_operator_info.AddTime(op.Elapsed()); + info.AddTime(op.Elapsed()); } - if (HasOperatorSetting(MetricsType::OPERATOR_CARDINALITY) && chunk) { - curr_operator_info.AddReturnedElements(chunk->size()); + if (ProfilingInfo::Enabled(settings, MetricsType::OPERATOR_CARDINALITY) && chunk) { + info.AddReturnedElements(chunk->size()); } - if (HasOperatorSetting(MetricsType::RESULT_SET_SIZE) && chunk) { - idx_t result_set_size = chunk->GetAllocationSize(); - curr_operator_info.AddResultSetSize(result_set_size); + if (ProfilingInfo::Enabled(settings, MetricsType::RESULT_SET_SIZE) && chunk) { + auto result_set_size = chunk->GetAllocationSize(); + info.AddResultSetSize(result_set_size); } } active_operator = nullptr; @@ -364,11 +407,10 @@ OperatorInformation &OperatorProfiler::GetOperatorInfo(const PhysicalOperator &p auto entry = timings.find(phys_op); if (entry != timings.end()) { return entry->second; - } else { - // add new entry - timings[phys_op] = OperatorInformation(); - return timings[phys_op]; } + // Add a new entry. + timings[phys_op] = OperatorInformation(); + return timings[phys_op]; } void OperatorProfiler::Flush(const PhysicalOperator &phys_op) { @@ -381,7 +423,7 @@ void OperatorProfiler::Flush(const PhysicalOperator &phys_op) { } void QueryProfiler::Flush(OperatorProfiler &profiler) { - lock_guard guard(flush_lock); + lock_guard guard(lock); if (!IsEnabled() || !running) { return; } @@ -389,41 +431,47 @@ void QueryProfiler::Flush(OperatorProfiler &profiler) { auto &op = node.first.get(); auto entry = tree_map.find(op); D_ASSERT(entry != tree_map.end()); + auto &tree_node = entry->second.get(); + auto &info = tree_node.GetProfilingInfo(); - if (profiler.HasOperatorSetting(MetricsType::OPERATOR_TIMING)) { - tree_node.GetProfilingInfo().AddToMetric(MetricsType::OPERATOR_TIMING, node.second.time); + if (ProfilingInfo::Enabled(profiler.settings, MetricsType::OPERATOR_TIMING)) { + info.AddToMetric(MetricsType::OPERATOR_TIMING, node.second.time); } - if (profiler.HasOperatorSetting(MetricsType::OPERATOR_CARDINALITY)) { - tree_node.GetProfilingInfo().AddToMetric(MetricsType::OPERATOR_CARDINALITY, - node.second.elements_returned); + if (ProfilingInfo::Enabled(profiler.settings, MetricsType::OPERATOR_CARDINALITY)) { + info.AddToMetric(MetricsType::OPERATOR_CARDINALITY, node.second.elements_returned); } - if (profiler.HasOperatorSetting(MetricsType::OPERATOR_ROWS_SCANNED)) { + if (ProfilingInfo::Enabled(profiler.settings, MetricsType::OPERATOR_ROWS_SCANNED)) { if (op.type == PhysicalOperatorType::TABLE_SCAN) { auto &scan_op = op.Cast(); auto &bind_data = scan_op.bind_data; + if (bind_data && scan_op.function.cardinality) { auto cardinality = scan_op.function.cardinality(context, &(*bind_data)); if (cardinality && cardinality->has_estimated_cardinality) { - tree_node.GetProfilingInfo().AddToMetric(MetricsType::OPERATOR_ROWS_SCANNED, - cardinality->estimated_cardinality); + info.AddToMetric(MetricsType::OPERATOR_ROWS_SCANNED, cardinality->estimated_cardinality); } } } } - if (profiler.HasOperatorSetting(MetricsType::RESULT_SET_SIZE)) { - tree_node.GetProfilingInfo().AddToMetric(MetricsType::RESULT_SET_SIZE, node.second.result_set_size); + if (ProfilingInfo::Enabled(profiler.settings, MetricsType::RESULT_SET_SIZE)) { + info.AddToMetric(MetricsType::RESULT_SET_SIZE, node.second.result_set_size); } } profiler.timings.clear(); } void QueryProfiler::SetInfo(const double &blocked_thread_time) { - lock_guard guard(flush_lock); - if (!IsEnabled() || !running || !root->GetProfilingInfo().Enabled(MetricsType::BLOCKED_THREAD_TIME)) { + lock_guard guard(lock); + if (!IsEnabled() || !running) { return; } + auto &info = root->GetProfilingInfo(); + auto metric_enabled = info.Enabled(info.expanded_settings, MetricsType::BLOCKED_THREAD_TIME); + if (!metric_enabled) { + return; + } query_info.blocked_thread_time = blocked_thread_time; } @@ -530,10 +578,7 @@ void PrintPhaseTimingsToStream(std::ostream &ss, const ProfilingInfo &info, idx_ } void QueryProfiler::QueryTreeToStream(std::ostream &ss) const { - if (!IsEnabled()) { - ss << "Query profiling is disabled. Use 'PRAGMA enable_profiling;' to enable profiling!"; - return; - } + lock_guard guard(lock); ss << "┌─────────────────────────────────────┐\n"; ss << "│┌───────────────────────────────────┐│\n"; ss << "││ Query Profiling Information ││\n"; @@ -558,12 +603,12 @@ void QueryProfiler::QueryTreeToStream(std::ostream &ss) const { ss << "││" + DrawPadded(total_time, TOTAL_BOX_WIDTH - 4) + "││\n"; ss << "│└──────────────────────────────────────────────┘│\n"; ss << "└────────────────────────────────────────────────┘\n"; - // print phase timings - if (PrintOptimizerOutput()) { - PrintPhaseTimingsToStream(ss, root->GetProfilingInfo(), TOTAL_BOX_WIDTH); - } // render the main operator tree if (root) { + // print phase timings + if (PrintOptimizerOutput()) { + PrintPhaseTimingsToStream(ss, root->GetProfilingInfo(), TOTAL_BOX_WIDTH); + } Render(*root, ss); } } @@ -645,14 +690,11 @@ static string StringifyAndFree(yyjson_mut_doc *doc, yyjson_mut_val *object) { } string QueryProfiler::ToJSON() const { + lock_guard guard(lock); auto doc = yyjson_mut_doc_new(nullptr); auto result_obj = yyjson_mut_obj(doc); yyjson_mut_doc_set_root(doc, result_obj); - if (!IsEnabled()) { - yyjson_mut_obj_add_str(doc, result_obj, "result", "disabled"); - return StringifyAndFree(doc, result_obj); - } if (query_info.query_name.empty() && !root) { yyjson_mut_obj_add_str(doc, result_obj, "result", "empty"); return StringifyAndFree(doc, result_obj); @@ -701,8 +743,8 @@ profiler_settings_t EraseQueryRootSettings(profiler_settings_t settings) { return settings; } -unique_ptr QueryProfiler::CreateTree(const PhysicalOperator &root_p, profiler_settings_t settings, - idx_t depth) { +unique_ptr QueryProfiler::CreateTree(const PhysicalOperator &root_p, const profiler_settings_t &settings, + const idx_t depth) { if (OperatorRequiresProfiling(root_p.type)) { query_requires_profiling = true; } @@ -717,12 +759,10 @@ unique_ptr QueryProfiler::CreateTree(const PhysicalOperator &root node->depth = depth; if (depth != 0) { + info.metrics[MetricsType::OPERATOR_NAME] = root_p.GetName(); info.AddToMetric(MetricsType::OPERATOR_TYPE, static_cast(root_p.type)); - if (info.Enabled(MetricsType::QUERY_NAME)) { - info.settings.erase(MetricsType::QUERY_NAME); - } } - if (info.Enabled(MetricsType::EXTRA_INFO)) { + if (info.Enabled(info.settings, MetricsType::EXTRA_INFO)) { info.extra_info = root_p.ParamsToString(); } @@ -735,7 +775,42 @@ unique_ptr QueryProfiler::CreateTree(const PhysicalOperator &root return node; } +string QueryProfiler::RenderDisabledMessage(ProfilerPrintFormat format) const { + switch (format) { + case ProfilerPrintFormat::NO_OUTPUT: + return ""; + case ProfilerPrintFormat::QUERY_TREE: + case ProfilerPrintFormat::QUERY_TREE_OPTIMIZER: + return "Query profiling is disabled. Use 'PRAGMA enable_profiling;' to enable profiling!"; + case ProfilerPrintFormat::HTML: + return R"( + + + Query profiling is disabled. Use 'PRAGMA enable_profiling;' to enable profiling! + + )"; + case ProfilerPrintFormat::GRAPHVIZ: + return R"( + digraph G { + node [shape=box, style=rounded, fontname="Courier New", fontsize=10]; + node_0_0 [label="Query profiling is disabled. Use 'PRAGMA enable_profiling;' to enable profiling!"]; + } + )"; + case ProfilerPrintFormat::JSON: { + auto doc = yyjson_mut_doc_new(nullptr); + auto result_obj = yyjson_mut_obj(doc); + yyjson_mut_doc_set_root(doc, result_obj); + + yyjson_mut_obj_add_str(doc, result_obj, "result", "disabled"); + return StringifyAndFree(doc, result_obj); + } + default: + throw InternalException("Unknown ProfilerPrintFormat \"%s\"", EnumUtil::ToString(format)); + } +} + void QueryProfiler::Initialize(const PhysicalOperator &root_op) { + lock_guard guard(lock); if (!IsEnabled() || !running) { return; } @@ -769,10 +844,11 @@ void QueryProfiler::Print() { void QueryProfiler::MoveOptimizerPhasesToRoot() { auto &root_info = root->GetProfilingInfo(); auto &root_metrics = root_info.metrics; + for (auto &entry : phase_timings) { auto &phase = entry.first; auto &timing = entry.second; - if (root_info.Enabled(phase)) { + if (root_info.Enabled(root_info.expanded_settings, phase)) { root_metrics[phase] = Value::CreateValue(timing); } } diff --git a/src/duckdb/src/main/relation.cpp b/src/duckdb/src/main/relation.cpp index fedea03c..8ed87778 100644 --- a/src/duckdb/src/main/relation.cpp +++ b/src/duckdb/src/main/relation.cpp @@ -38,7 +38,7 @@ shared_ptr Relation::Project(const string &expression, const string &a } shared_ptr Relation::Project(const string &select_list, const vector &aliases) { - auto expressions = Parser::ParseExpressionList(select_list, context.GetContext()->GetParserOptions()); + auto expressions = Parser::ParseExpressionList(select_list, context->GetContext()->GetParserOptions()); return make_shared_ptr(shared_from_this(), std::move(expressions), aliases); } @@ -52,7 +52,7 @@ shared_ptr Relation::Project(vector> expr return make_shared_ptr(shared_from_this(), std::move(expressions), aliases); } -static vector> StringListToExpressionList(ClientContext &context, +static vector> StringListToExpressionList(const ClientContext &context, const vector &expressions) { if (expressions.empty()) { throw ParserException("Zero expressions provided"); @@ -69,12 +69,12 @@ static vector> StringListToExpressionList(ClientCon } shared_ptr Relation::Project(const vector &expressions, const vector &aliases) { - auto result_list = StringListToExpressionList(*context.GetContext(), expressions); + auto result_list = StringListToExpressionList(*context->GetContext(), expressions); return make_shared_ptr(shared_from_this(), std::move(result_list), aliases); } shared_ptr Relation::Filter(const string &expression) { - auto expression_list = Parser::ParseExpressionList(expression, context.GetContext()->GetParserOptions()); + auto expression_list = Parser::ParseExpressionList(expression, context->GetContext()->GetParserOptions()); if (expression_list.size() != 1) { throw ParserException("Expected a single expression as filter condition"); } @@ -87,7 +87,7 @@ shared_ptr Relation::Filter(unique_ptr expression) { shared_ptr Relation::Filter(const vector &expressions) { // if there are multiple expressions, we AND them together - auto expression_list = StringListToExpressionList(*context.GetContext(), expressions); + auto expression_list = StringListToExpressionList(*context->GetContext(), expressions); D_ASSERT(!expression_list.empty()); auto expr = std::move(expression_list[0]); @@ -103,7 +103,7 @@ shared_ptr Relation::Limit(int64_t limit, int64_t offset) { } shared_ptr Relation::Order(const string &expression) { - auto order_list = Parser::ParseOrderList(expression, context.GetContext()->GetParserOptions()); + auto order_list = Parser::ParseOrderList(expression, context->GetContext()->GetParserOptions()); return Order(std::move(order_list)); } @@ -117,7 +117,7 @@ shared_ptr Relation::Order(const vector &expressions) { } vector order_list; for (auto &expression : expressions) { - auto inner_list = Parser::ParseOrderList(expression, context.GetContext()->GetParserOptions()); + auto inner_list = Parser::ParseOrderList(expression, context->GetContext()->GetParserOptions()); if (inner_list.size() != 1) { throw ParserException("Expected a single ORDER BY expression in the expression list"); } @@ -128,7 +128,7 @@ shared_ptr Relation::Order(const vector &expressions) { shared_ptr Relation::Join(const shared_ptr &other, const string &condition, JoinType type, JoinRefType ref_type) { - auto expression_list = Parser::ParseExpressionList(condition, context.GetContext()->GetParserOptions()); + auto expression_list = Parser::ParseExpressionList(condition, context->GetContext()->GetParserOptions()); D_ASSERT(!expression_list.empty()); return Join(other, std::move(expression_list), type, ref_type); } @@ -181,7 +181,7 @@ shared_ptr Relation::Alias(const string &alias) { } shared_ptr Relation::Aggregate(const string &aggregate_list) { - auto expression_list = Parser::ParseExpressionList(aggregate_list, context.GetContext()->GetParserOptions()); + auto expression_list = Parser::ParseExpressionList(aggregate_list, context->GetContext()->GetParserOptions()); return make_shared_ptr(shared_from_this(), std::move(expression_list)); } @@ -190,13 +190,13 @@ shared_ptr Relation::Aggregate(vector> ex } shared_ptr Relation::Aggregate(const string &aggregate_list, const string &group_list) { - auto expression_list = Parser::ParseExpressionList(aggregate_list, context.GetContext()->GetParserOptions()); - auto groups = Parser::ParseGroupByList(group_list, context.GetContext()->GetParserOptions()); + auto expression_list = Parser::ParseExpressionList(aggregate_list, context->GetContext()->GetParserOptions()); + auto groups = Parser::ParseGroupByList(group_list, context->GetContext()->GetParserOptions()); return make_shared_ptr(shared_from_this(), std::move(expression_list), std::move(groups)); } shared_ptr Relation::Aggregate(const vector &aggregates) { - auto aggregate_list = StringListToExpressionList(*context.GetContext(), aggregates); + auto aggregate_list = StringListToExpressionList(*context->GetContext(), aggregates); return make_shared_ptr(shared_from_this(), std::move(aggregate_list)); } @@ -207,12 +207,12 @@ shared_ptr Relation::Aggregate(const vector &aggregates, const } shared_ptr Relation::Aggregate(vector> expressions, const string &group_list) { - auto groups = Parser::ParseGroupByList(group_list, context.GetContext()->GetParserOptions()); + auto groups = Parser::ParseGroupByList(group_list, context->GetContext()->GetParserOptions()); return make_shared_ptr(shared_from_this(), std::move(expressions), std::move(groups)); } string Relation::GetAlias() { - return "relation"; + return alias; } unique_ptr Relation::GetTableRef() { @@ -222,7 +222,7 @@ unique_ptr Relation::GetTableRef() { } unique_ptr Relation::Execute() { - return context.GetContext()->Execute(shared_from_this()); + return context->GetContext()->Execute(shared_from_this()); } unique_ptr Relation::ExecuteOrThrow() { @@ -259,7 +259,14 @@ void Relation::Insert(const string &schema_name, const string &table_name) { void Relation::Insert(const vector> &values) { vector column_names; - auto rel = make_shared_ptr(context.GetContext(), values, std::move(column_names), "values"); + auto rel = make_shared_ptr(context->GetContext(), values, std::move(column_names), "values"); + rel->Insert(GetAlias()); +} + +void Relation::Insert(vector>> &&expressions) { + vector column_names; + auto rel = make_shared_ptr(context->GetContext(), std::move(expressions), std::move(column_names), + "values"); rel->Insert(GetAlias()); } @@ -323,8 +330,8 @@ shared_ptr Relation::CreateView(const string &schema_name, const strin return shared_from_this(); } -unique_ptr Relation::Query(const string &sql) { - return context.GetContext()->Query(sql, false); +unique_ptr Relation::Query(const string &sql) const { + return context->GetContext()->Query(sql, false); } unique_ptr Relation::Query(const string &name, const string &sql) { @@ -337,22 +344,34 @@ unique_ptr Relation::Explain(ExplainType type, ExplainFormat format return explain->Execute(); } +void Relation::TryBindRelation(vector &columns) { + context->TryBindRelation(*this, columns); +} + void Relation::Update(const string &update, const string &condition) { throw InvalidInputException("UPDATE can only be used on base tables!"); } +void Relation::Update(vector, // NOLINT: unused variable / copied on every invocation ... + vector> &&update, // NOLINT: unused variable + unique_ptr condition) { // NOLINT: unused variable + (void)std::move(update); + (void)std::move(condition); + throw InvalidInputException("UPDATE can only be used on base tables!"); +} + void Relation::Delete(const string &condition) { throw InvalidInputException("DELETE can only be used on base tables!"); } shared_ptr Relation::TableFunction(const std::string &fname, const vector &values, const named_parameter_map_t &named_parameters) { - return make_shared_ptr(context.GetContext(), fname, values, named_parameters, + return make_shared_ptr(context->GetContext(), fname, values, named_parameters, shared_from_this()); } shared_ptr Relation::TableFunction(const std::string &fname, const vector &values) { - return make_shared_ptr(context.GetContext(), fname, values, shared_from_this()); + return make_shared_ptr(context->GetContext(), fname, values, shared_from_this()); } string Relation::ToString() { diff --git a/src/duckdb/src/main/relation/aggregate_relation.cpp b/src/duckdb/src/main/relation/aggregate_relation.cpp index c84036ad..daf663e3 100644 --- a/src/duckdb/src/main/relation/aggregate_relation.cpp +++ b/src/duckdb/src/main/relation/aggregate_relation.cpp @@ -10,7 +10,7 @@ AggregateRelation::AggregateRelation(shared_ptr child_p, : Relation(child_p->context, RelationType::AGGREGATE_RELATION), expressions(std::move(parsed_expressions)), child(std::move(child_p)) { // bind the expressions - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } AggregateRelation::AggregateRelation(shared_ptr child_p, @@ -18,7 +18,7 @@ AggregateRelation::AggregateRelation(shared_ptr child_p, : Relation(child_p->context, RelationType::AGGREGATE_RELATION), expressions(std::move(parsed_expressions)), groups(std::move(groups_p)), child(std::move(child_p)) { // bind the expressions - context.GetContext()->TryBindRelation(*this, this->columns); + Relation::TryBindRelation(columns); } AggregateRelation::AggregateRelation(shared_ptr child_p, @@ -36,7 +36,7 @@ AggregateRelation::AggregateRelation(shared_ptr child_p, groups.grouping_sets.push_back(std::move(grouping_set)); } // bind the expressions - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr AggregateRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/create_table_relation.cpp b/src/duckdb/src/main/relation/create_table_relation.cpp index bff69e3a..7ff390e0 100644 --- a/src/duckdb/src/main/relation/create_table_relation.cpp +++ b/src/duckdb/src/main/relation/create_table_relation.cpp @@ -10,7 +10,7 @@ CreateTableRelation::CreateTableRelation(shared_ptr child_p, string sc bool temporary_p) : Relation(child_p->context, RelationType::CREATE_TABLE_RELATION), child(std::move(child_p)), schema_name(std::move(schema_name)), table_name(std::move(table_name)), temporary(temporary_p) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement CreateTableRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/relation/create_view_relation.cpp b/src/duckdb/src/main/relation/create_view_relation.cpp index b9c80c07..c00deef3 100644 --- a/src/duckdb/src/main/relation/create_view_relation.cpp +++ b/src/duckdb/src/main/relation/create_view_relation.cpp @@ -9,7 +9,7 @@ CreateViewRelation::CreateViewRelation(shared_ptr child_p, string view bool temporary_p) : Relation(child_p->context, RelationType::CREATE_VIEW_RELATION), child(std::move(child_p)), view_name(std::move(view_name_p)), replace(replace_p), temporary(temporary_p) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } CreateViewRelation::CreateViewRelation(shared_ptr child_p, string schema_name_p, string view_name_p, @@ -17,7 +17,7 @@ CreateViewRelation::CreateViewRelation(shared_ptr child_p, string sche : Relation(child_p->context, RelationType::CREATE_VIEW_RELATION), child(std::move(child_p)), schema_name(std::move(schema_name_p)), view_name(std::move(view_name_p)), replace(replace_p), temporary(temporary_p) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement CreateViewRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/relation/cross_product_relation.cpp b/src/duckdb/src/main/relation/cross_product_relation.cpp index ca3abfbe..e0645fae 100644 --- a/src/duckdb/src/main/relation/cross_product_relation.cpp +++ b/src/duckdb/src/main/relation/cross_product_relation.cpp @@ -10,10 +10,10 @@ CrossProductRelation::CrossProductRelation(shared_ptr left_p, shared_p JoinRefType ref_type) : Relation(left_p->context, RelationType::CROSS_PRODUCT_RELATION), left(std::move(left_p)), right(std::move(right_p)), ref_type(ref_type) { - if (left->context.GetContext() != right->context.GetContext()) { + if (left->context->GetContext() != right->context->GetContext()) { throw InvalidInputException("Cannot combine LEFT and RIGHT relations of different connections!"); } - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr CrossProductRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/delete_relation.cpp b/src/duckdb/src/main/relation/delete_relation.cpp index 8afc8226..bbc0d58e 100644 --- a/src/duckdb/src/main/relation/delete_relation.cpp +++ b/src/duckdb/src/main/relation/delete_relation.cpp @@ -6,11 +6,11 @@ namespace duckdb { -DeleteRelation::DeleteRelation(ClientContextWrapper &context, unique_ptr condition_p, +DeleteRelation::DeleteRelation(shared_ptr &context, unique_ptr condition_p, string schema_name_p, string table_name_p) : Relation(context, RelationType::DELETE_RELATION), condition(std::move(condition_p)), schema_name(std::move(schema_name_p)), table_name(std::move(table_name_p)) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement DeleteRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/relation/delim_get_relation.cpp b/src/duckdb/src/main/relation/delim_get_relation.cpp index 6613c60d..3f1b9cbc 100644 --- a/src/duckdb/src/main/relation/delim_get_relation.cpp +++ b/src/duckdb/src/main/relation/delim_get_relation.cpp @@ -8,7 +8,7 @@ namespace duckdb { DelimGetRelation::DelimGetRelation(const shared_ptr &context, vector chunk_types_p) : Relation(context, RelationType::DELIM_GET_RELATION), chunk_types(std::move(chunk_types_p)) { - context->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr DelimGetRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/distinct_relation.cpp b/src/duckdb/src/main/relation/distinct_relation.cpp index 0f96d458..16bb5382 100644 --- a/src/duckdb/src/main/relation/distinct_relation.cpp +++ b/src/duckdb/src/main/relation/distinct_relation.cpp @@ -8,7 +8,7 @@ DistinctRelation::DistinctRelation(shared_ptr child_p) : Relation(child_p->context, RelationType::DISTINCT_RELATION), child(std::move(child_p)) { D_ASSERT(child.get() != this); vector dummy_columns; - context.GetContext()->TryBindRelation(*this, dummy_columns); + TryBindRelation(dummy_columns); } unique_ptr DistinctRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/explain_relation.cpp b/src/duckdb/src/main/relation/explain_relation.cpp index 9b8ed1ed..f91e1d29 100644 --- a/src/duckdb/src/main/relation/explain_relation.cpp +++ b/src/duckdb/src/main/relation/explain_relation.cpp @@ -10,7 +10,7 @@ namespace duckdb { ExplainRelation::ExplainRelation(shared_ptr child_p, ExplainType type, ExplainFormat format) : Relation(child_p->context, RelationType::EXPLAIN_RELATION), child(std::move(child_p)), type(type), format(format) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement ExplainRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/relation/filter_relation.cpp b/src/duckdb/src/main/relation/filter_relation.cpp index 2abaa41a..738e8357 100644 --- a/src/duckdb/src/main/relation/filter_relation.cpp +++ b/src/duckdb/src/main/relation/filter_relation.cpp @@ -12,7 +12,7 @@ FilterRelation::FilterRelation(shared_ptr child_p, unique_ptr dummy_columns; - context.GetContext()->TryBindRelation(*this, dummy_columns); + TryBindRelation(dummy_columns); } unique_ptr FilterRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/insert_relation.cpp b/src/duckdb/src/main/relation/insert_relation.cpp index c6738d48..9728570a 100644 --- a/src/duckdb/src/main/relation/insert_relation.cpp +++ b/src/duckdb/src/main/relation/insert_relation.cpp @@ -10,7 +10,7 @@ namespace duckdb { InsertRelation::InsertRelation(shared_ptr child_p, string schema_name, string table_name) : Relation(child_p->context, RelationType::INSERT_RELATION), child(std::move(child_p)), schema_name(std::move(schema_name)), table_name(std::move(table_name)) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement InsertRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/relation/join_relation.cpp b/src/duckdb/src/main/relation/join_relation.cpp index 3d9572f7..b3701ea3 100644 --- a/src/duckdb/src/main/relation/join_relation.cpp +++ b/src/duckdb/src/main/relation/join_relation.cpp @@ -4,6 +4,7 @@ #include "duckdb/parser/expression/star_expression.hpp" #include "duckdb/parser/tableref/joinref.hpp" #include "duckdb/common/enum_util.hpp" +#include "duckdb/main/client_context_wrapper.hpp" namespace duckdb { @@ -11,20 +12,20 @@ JoinRelation::JoinRelation(shared_ptr left_p, shared_ptr rig unique_ptr condition_p, JoinType type, JoinRefType join_ref_type) : Relation(left_p->context, RelationType::JOIN_RELATION), left(std::move(left_p)), right(std::move(right_p)), condition(std::move(condition_p)), join_type(type), join_ref_type(join_ref_type) { - if (left->context.GetContext() != right->context.GetContext()) { + if (left->context->GetContext() != right->context->GetContext()) { throw InvalidInputException("Cannot combine LEFT and RIGHT relations of different connections!"); } - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } JoinRelation::JoinRelation(shared_ptr left_p, shared_ptr right_p, vector using_columns_p, JoinType type, JoinRefType join_ref_type) : Relation(left_p->context, RelationType::JOIN_RELATION), left(std::move(left_p)), right(std::move(right_p)), using_columns(std::move(using_columns_p)), join_type(type), join_ref_type(join_ref_type) { - if (left->context.GetContext() != right->context.GetContext()) { + if (left->context->GetContext() != right->context->GetContext()) { throw InvalidInputException("Cannot combine LEFT and RIGHT relations of different connections!"); } - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr JoinRelation::GetQueryNode() { @@ -47,7 +48,6 @@ unique_ptr JoinRelation::GetTableRef() { for (auto &col : duplicate_eliminated_columns) { join_ref->duplicate_eliminated_columns.emplace_back(col->Copy()); } - return std::move(join_ref); } diff --git a/src/duckdb/src/main/relation/order_relation.cpp b/src/duckdb/src/main/relation/order_relation.cpp index 7a9c16dc..ac97d1c5 100644 --- a/src/duckdb/src/main/relation/order_relation.cpp +++ b/src/duckdb/src/main/relation/order_relation.cpp @@ -10,7 +10,7 @@ OrderRelation::OrderRelation(shared_ptr child_p, vector o : Relation(child_p->context, RelationType::ORDER_RELATION), orders(std::move(orders)), child(std::move(child_p)) { D_ASSERT(child.get() != this); // bind the expressions - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr OrderRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/projection_relation.cpp b/src/duckdb/src/main/relation/projection_relation.cpp index eb1f57fd..651bbd99 100644 --- a/src/duckdb/src/main/relation/projection_relation.cpp +++ b/src/duckdb/src/main/relation/projection_relation.cpp @@ -18,7 +18,7 @@ ProjectionRelation::ProjectionRelation(shared_ptr child_p, } } // bind the expressions - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr ProjectionRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/query_relation.cpp b/src/duckdb/src/main/relation/query_relation.cpp index bc0b5150..bc0bfd4e 100644 --- a/src/duckdb/src/main/relation/query_relation.cpp +++ b/src/duckdb/src/main/relation/query_relation.cpp @@ -20,7 +20,7 @@ QueryRelation::QueryRelation(const shared_ptr &context, unique_pt if (query.empty()) { query = select_stmt->ToString(); } - context->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } QueryRelation::~QueryRelation() { diff --git a/src/duckdb/src/main/relation/read_csv_relation.cpp b/src/duckdb/src/main/relation/read_csv_relation.cpp index a23091ee..25421a60 100644 --- a/src/duckdb/src/main/relation/read_csv_relation.cpp +++ b/src/duckdb/src/main/relation/read_csv_relation.cpp @@ -1,7 +1,7 @@ #include "duckdb/main/relation/read_csv_relation.hpp" #include "duckdb/execution/operator/csv_scanner/csv_buffer_manager.hpp" -#include "duckdb/execution/operator/csv_scanner/csv_sniffer.hpp" +#include "duckdb/execution/operator/csv_scanner/sniffer/csv_sniffer.hpp" #include "duckdb/parser/expression/columnref_expression.hpp" #include "duckdb/parser/expression/comparison_expression.hpp" #include "duckdb/parser/expression/constant_expression.hpp" @@ -47,16 +47,23 @@ ReadCSVRelation::ReadCSVRelation(const shared_ptr &context, const // Run the auto-detect, populating the options with the detected settings shared_ptr buffer_manager; - context->RunFunctionInTransaction([&]() { - buffer_manager = make_shared_ptr(*context, csv_options, files[0], 0); - CSVSniffer sniffer(csv_options, buffer_manager, CSVStateMachineCache::Get(*context)); - auto sniffer_result = sniffer.SniffCSV(); - auto &types = sniffer_result.return_types; - auto &names = sniffer_result.names; - for (idx_t i = 0; i < types.size(); i++) { - columns.emplace_back(names[i], types[i]); + if (csv_options.auto_detect) { + context->RunFunctionInTransaction([&]() { + buffer_manager = make_shared_ptr(*context, csv_options, files[0], 0); + CSVSniffer sniffer(csv_options, buffer_manager, CSVStateMachineCache::Get(*context)); + auto sniffer_result = sniffer.SniffCSV(); + auto &types = sniffer_result.return_types; + auto &names = sniffer_result.names; + for (idx_t i = 0; i < types.size(); i++) { + columns.emplace_back(names[i], types[i]); + } + }); + } else { + for (idx_t i = 0; i < csv_options.sql_type_list.size(); i++) { + D_ASSERT(csv_options.name_list.size() == csv_options.sql_type_list.size()); + columns.emplace_back(csv_options.name_list[i], csv_options.sql_type_list[i]); } - }); + } // After sniffing we can consider these set, so they are exported as named parameters // FIXME: This is horribly hacky, should be refactored at some point diff --git a/src/duckdb/src/main/relation/setop_relation.cpp b/src/duckdb/src/main/relation/setop_relation.cpp index 4023099c..a0253df3 100644 --- a/src/duckdb/src/main/relation/setop_relation.cpp +++ b/src/duckdb/src/main/relation/setop_relation.cpp @@ -9,10 +9,10 @@ SetOpRelation::SetOpRelation(shared_ptr left_p, shared_ptr r bool setop_all) : Relation(left_p->context, RelationType::SET_OPERATION_RELATION), left(std::move(left_p)), right(std::move(right_p)), setop_type(setop_type_p), setop_all(setop_all) { - if (left->context.GetContext() != right->context.GetContext()) { + if (left->context->GetContext() != right->context->GetContext()) { throw InvalidInputException("Cannot combine LEFT and RIGHT relations of different connections!"); } - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr SetOpRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/subquery_relation.cpp b/src/duckdb/src/main/relation/subquery_relation.cpp index 5ee1e032..2e83ed12 100644 --- a/src/duckdb/src/main/relation/subquery_relation.cpp +++ b/src/duckdb/src/main/relation/subquery_relation.cpp @@ -4,22 +4,17 @@ namespace duckdb { -SubqueryRelation::SubqueryRelation(shared_ptr child_p, string alias_p) - : Relation(child_p->context, RelationType::SUBQUERY_RELATION), child(std::move(child_p)), - alias(std::move(alias_p)) { +SubqueryRelation::SubqueryRelation(shared_ptr child_p, const string &alias_p) + : Relation(child_p->context, RelationType::SUBQUERY_RELATION, alias_p), child(std::move(child_p)) { D_ASSERT(child.get() != this); vector dummy_columns; - context.GetContext()->TryBindRelation(*this, dummy_columns); + Relation::TryBindRelation(dummy_columns); } unique_ptr SubqueryRelation::GetQueryNode() { return child->GetQueryNode(); } -string SubqueryRelation::GetAlias() { - return alias; -} - const vector &SubqueryRelation::Columns() { return child->Columns(); } diff --git a/src/duckdb/src/main/relation/table_function_relation.cpp b/src/duckdb/src/main/relation/table_function_relation.cpp index 7d0b2d9b..5111752e 100644 --- a/src/duckdb/src/main/relation/table_function_relation.cpp +++ b/src/duckdb/src/main/relation/table_function_relation.cpp @@ -37,6 +37,15 @@ TableFunctionRelation::TableFunctionRelation(const shared_ptr &co InitializeColumns(); } +TableFunctionRelation::TableFunctionRelation(const shared_ptr &context, string name_p, + vector parameters_p, named_parameter_map_t named_parameters, + shared_ptr input_relation_p, bool auto_init) + : Relation(context, RelationType::TABLE_FUNCTION_RELATION), name(std::move(name_p)), + parameters(std::move(parameters_p)), named_parameters(std::move(named_parameters)), + input_relation(std::move(input_relation_p)), auto_initialize(auto_init) { + InitializeColumns(); +} + TableFunctionRelation::TableFunctionRelation(const shared_ptr &context, string name_p, vector parameters_p, shared_ptr input_relation_p, bool auto_init) @@ -49,7 +58,7 @@ void TableFunctionRelation::InitializeColumns() { if (!auto_initialize) { return; } - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } unique_ptr TableFunctionRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/table_relation.cpp b/src/duckdb/src/main/relation/table_relation.cpp index 4a0ff6e0..1b790a69 100644 --- a/src/duckdb/src/main/relation/table_relation.cpp +++ b/src/duckdb/src/main/relation/table_relation.cpp @@ -13,6 +13,11 @@ TableRelation::TableRelation(const shared_ptr &context, unique_pt : Relation(context, RelationType::TABLE_RELATION), description(std::move(description)) { } +TableRelation::TableRelation(const shared_ptr &context, + unique_ptr description) + : Relation(context, RelationType::TABLE_RELATION), description(std::move(description)) { +} + unique_ptr TableRelation::GetQueryNode() { auto result = make_uniq(); result->select_list.push_back(make_uniq()); @@ -51,18 +56,29 @@ static unique_ptr ParseCondition(ClientContext &context, const } } +void TableRelation::Update(vector names, vector> &&update, + unique_ptr condition) { + vector update_columns = std::move(names); + vector> expressions = std::move(update); + + auto update_relation = + make_shared_ptr(context, std::move(condition), description->schema, description->table, + std::move(update_columns), std::move(expressions)); + update_relation->Execute(); +} + void TableRelation::Update(const string &update_list, const string &condition) { vector update_columns; vector> expressions; - auto cond = ParseCondition(*context.GetContext(), condition); - Parser::ParseUpdateList(update_list, update_columns, expressions, context.GetContext()->GetParserOptions()); + auto cond = ParseCondition(*context->GetContext(), condition); + Parser::ParseUpdateList(update_list, update_columns, expressions, context->GetContext()->GetParserOptions()); auto update = make_shared_ptr(context, std::move(cond), description->schema, description->table, std::move(update_columns), std::move(expressions)); update->Execute(); } void TableRelation::Delete(const string &condition) { - auto cond = ParseCondition(*context.GetContext(), condition); + auto cond = ParseCondition(*context->GetContext(), condition); auto del = make_shared_ptr(context, std::move(cond), description->schema, description->table); del->Execute(); } diff --git a/src/duckdb/src/main/relation/update_relation.cpp b/src/duckdb/src/main/relation/update_relation.cpp index 152d04af..6dd34dfc 100644 --- a/src/duckdb/src/main/relation/update_relation.cpp +++ b/src/duckdb/src/main/relation/update_relation.cpp @@ -6,14 +6,14 @@ namespace duckdb { -UpdateRelation::UpdateRelation(ClientContextWrapper &context, unique_ptr condition_p, +UpdateRelation::UpdateRelation(shared_ptr &context, unique_ptr condition_p, string schema_name_p, string table_name_p, vector update_columns_p, vector> expressions_p) : Relation(context, RelationType::UPDATE_RELATION), condition(std::move(condition_p)), schema_name(std::move(schema_name_p)), table_name(std::move(table_name_p)), update_columns(std::move(update_columns_p)), expressions(std::move(expressions_p)) { D_ASSERT(update_columns.size() == expressions.size()); - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement UpdateRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/relation/value_relation.cpp b/src/duckdb/src/main/relation/value_relation.cpp index 3e11ed6b..bd9adf99 100644 --- a/src/duckdb/src/main/relation/value_relation.cpp +++ b/src/duckdb/src/main/relation/value_relation.cpp @@ -21,7 +21,14 @@ ValueRelation::ValueRelation(const shared_ptr &context, const vec this->expressions.push_back(std::move(expressions)); } QueryResult::DeduplicateColumns(names); - context->TryBindRelation(*this, this->columns); + TryBindRelation(columns); +} + +ValueRelation::ValueRelation(const shared_ptr &context, + vector>> &&expressions_p, vector names_p, + string alias_p) + : ValueRelation(make_shared_ptr(context), std::move(expressions_p), std::move(names_p), + std::move(alias_p)) { } ValueRelation::ValueRelation(const shared_ptr &context, const string &values_list, @@ -29,7 +36,40 @@ ValueRelation::ValueRelation(const shared_ptr &context, const str : Relation(context, RelationType::VALUE_LIST_RELATION), names(std::move(names_p)), alias(std::move(alias_p)) { this->expressions = Parser::ParseValuesList(values_list, context->GetParserOptions()); QueryResult::DeduplicateColumns(names); - context->TryBindRelation(*this, this->columns); + TryBindRelation(columns); +} + +ValueRelation::ValueRelation(const shared_ptr &context, const vector> &values, + vector names_p, string alias_p) + : Relation(context, RelationType::VALUE_LIST_RELATION), names(std::move(names_p)), alias(std::move(alias_p)) { + // create constant expressions for the values + for (idx_t row_idx = 0; row_idx < values.size(); row_idx++) { + auto &list = values[row_idx]; + vector> expressions; + for (idx_t col_idx = 0; col_idx < list.size(); col_idx++) { + expressions.push_back(make_uniq(list[col_idx])); + } + this->expressions.push_back(std::move(expressions)); + } + QueryResult::DeduplicateColumns(names); + TryBindRelation(columns); +} + +ValueRelation::ValueRelation(const shared_ptr &context, + vector>> &&expressions_p, vector names_p, + string alias_p) + : Relation(context, RelationType::VALUE_LIST_RELATION), alias(std::move(alias_p)) { + D_ASSERT(!expressions_p.empty()); + if (names_p.empty()) { + auto &first_list = expressions_p[0]; + for (auto &expr : first_list) { + names_p.push_back(expr->GetName()); + } + } + names = std::move(names_p); + expressions = std::move(expressions_p); + QueryResult::DeduplicateColumns(names); + TryBindRelation(columns); } unique_ptr ValueRelation::GetQueryNode() { diff --git a/src/duckdb/src/main/relation/view_relation.cpp b/src/duckdb/src/main/relation/view_relation.cpp index 7b6b73c5..16c1bdc3 100644 --- a/src/duckdb/src/main/relation/view_relation.cpp +++ b/src/duckdb/src/main/relation/view_relation.cpp @@ -10,12 +10,18 @@ namespace duckdb { ViewRelation::ViewRelation(const shared_ptr &context, string schema_name_p, string view_name_p) : Relation(context, RelationType::VIEW_RELATION), schema_name(std::move(schema_name_p)), view_name(std::move(view_name_p)) { - context->TryBindRelation(*this, this->columns); + TryBindRelation(columns); +} + +ViewRelation::ViewRelation(const shared_ptr &context, string schema_name_p, string view_name_p) + : Relation(context, RelationType::VIEW_RELATION), schema_name(std::move(schema_name_p)), + view_name(std::move(view_name_p)) { + TryBindRelation(columns); } ViewRelation::ViewRelation(const shared_ptr &context, unique_ptr ref, const string &view_name) : Relation(context, RelationType::VIEW_RELATION), view_name(view_name), premade_tableref(std::move(ref)) { - context->TryBindRelation(*this, this->columns); + TryBindRelation(columns); premade_tableref->alias = view_name; } diff --git a/src/duckdb/src/main/relation/write_csv_relation.cpp b/src/duckdb/src/main/relation/write_csv_relation.cpp index a521f8ca..4795c7a5 100644 --- a/src/duckdb/src/main/relation/write_csv_relation.cpp +++ b/src/duckdb/src/main/relation/write_csv_relation.cpp @@ -10,7 +10,7 @@ WriteCSVRelation::WriteCSVRelation(shared_ptr child_p, string csv_file case_insensitive_map_t> options_p) : Relation(child_p->context, RelationType::WRITE_CSV_RELATION), child(std::move(child_p)), csv_file(std::move(csv_file_p)), options(std::move(options_p)) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement WriteCSVRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/relation/write_parquet_relation.cpp b/src/duckdb/src/main/relation/write_parquet_relation.cpp index c2d937a2..d6e40361 100644 --- a/src/duckdb/src/main/relation/write_parquet_relation.cpp +++ b/src/duckdb/src/main/relation/write_parquet_relation.cpp @@ -10,7 +10,7 @@ WriteParquetRelation::WriteParquetRelation(shared_ptr child_p, string case_insensitive_map_t> options_p) : Relation(child_p->context, RelationType::WRITE_PARQUET_RELATION), child(std::move(child_p)), parquet_file(std::move(parquet_file_p)), options(std::move(options_p)) { - context.GetContext()->TryBindRelation(*this, this->columns); + TryBindRelation(columns); } BoundStatement WriteParquetRelation::Bind(Binder &binder) { diff --git a/src/duckdb/src/main/secret/secret.cpp b/src/duckdb/src/main/secret/secret.cpp index 8535ef63..9a39b717 100644 --- a/src/duckdb/src/main/secret/secret.cpp +++ b/src/duckdb/src/main/secret/secret.cpp @@ -87,7 +87,8 @@ void KeyValueSecret::Serialize(Serializer &serializer) const { map_values.push_back(Value::STRUCT(map_struct)); } - auto map_type = LogicalType::MAP(LogicalType::VARCHAR, LogicalType::VARCHAR); + // Warning: the secret map is serialized into a single MAP value with type ANY + auto map_type = LogicalType::MAP(LogicalType::VARCHAR, LogicalType::ANY); auto map = Value::MAP(ListType::GetChildType(map_type), map_values); serializer.WriteProperty(201, "secret_map", map); diff --git a/src/duckdb/src/main/secret/secret_manager.cpp b/src/duckdb/src/main/secret/secret_manager.cpp index 72f5b924..045d1efe 100644 --- a/src/duckdb/src/main/secret/secret_manager.cpp +++ b/src/duckdb/src/main/secret/secret_manager.cpp @@ -97,6 +97,20 @@ unique_ptr SecretManager::DeserializeSecret(Deserializer &deserializ vector scope; deserializer.ReadList(103, "scope", [&](Deserializer::List &list, idx_t i) { scope.push_back(list.ReadElement()); }); + auto serialization_type = + deserializer.ReadPropertyWithExplicitDefault(104, "serialization_type", SecretSerializationType::CUSTOM); + + switch (serialization_type) { + // This allows us to skip looking up the secret type for deserialization altogether + case SecretSerializationType::KEY_VALUE_SECRET: + return KeyValueSecret::Deserialize(deserializer, {scope, type, provider, name}); + // Continues below: we need to do a type lookup to find the secret deserialize method + case SecretSerializationType::CUSTOM: + break; + default: + throw IOException("Unrecognized secret serialization type found in secret '%s': %s", secret_path, + EnumUtil::ToString(serialization_type)); + } SecretType deserialized_type; if (!TryLookupTypeInternal(type, deserialized_type)) { diff --git a/src/duckdb/src/main/settings/autogenerated_settings.cpp b/src/duckdb/src/main/settings/autogenerated_settings.cpp new file mode 100644 index 00000000..6a710696 --- /dev/null +++ b/src/duckdb/src/main/settings/autogenerated_settings.cpp @@ -0,0 +1,1085 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// This code is autogenerated from 'scripts/settings_scripts/update_settings_src_code.py'. +// Please do not make any changes directly here, as they will be overwritten. +// If you need to implement a custom function for a new setting, enable the +// 'custom_implementation' in 'src/common/settings.json' for this setting. +// +//===----------------------------------------------------------------------===// + +#include "duckdb/main/settings.hpp" +#include "duckdb/common/enum_util.hpp" +#include "duckdb/main/client_context.hpp" +#include "duckdb/main/config.hpp" + +namespace duckdb { + +//===----------------------------------------------------------------------===// +// Access Mode +//===----------------------------------------------------------------------===// +void AccessModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + auto str_input = StringUtil::Upper(input.GetValue()); + config.options.access_mode = EnumUtil::FromString(str_input); +} + +void AccessModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.access_mode = DBConfig().options.access_mode; +} + +Value AccessModeSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::Lower(EnumUtil::ToString(config.options.access_mode))); +} + +//===----------------------------------------------------------------------===// +// Allocator Background Threads +//===----------------------------------------------------------------------===// +void AllocatorBackgroundThreadsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + config.options.allocator_background_threads = input.GetValue(); +} + +void AllocatorBackgroundThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!OnGlobalReset(db, config)) { + return; + } + config.options.allocator_background_threads = DBConfig().options.allocator_background_threads; +} + +Value AllocatorBackgroundThreadsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.allocator_background_threads); +} + +//===----------------------------------------------------------------------===// +// Allow Community Extensions +//===----------------------------------------------------------------------===// +void AllowCommunityExtensionsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + config.options.allow_community_extensions = input.GetValue(); +} + +void AllowCommunityExtensionsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!OnGlobalReset(db, config)) { + return; + } + config.options.allow_community_extensions = DBConfig().options.allow_community_extensions; +} + +Value AllowCommunityExtensionsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.allow_community_extensions); +} + +//===----------------------------------------------------------------------===// +// Allow Extensions Metadata Mismatch +//===----------------------------------------------------------------------===// +void AllowExtensionsMetadataMismatchSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.allow_extensions_metadata_mismatch = input.GetValue(); +} + +void AllowExtensionsMetadataMismatchSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.allow_extensions_metadata_mismatch = DBConfig().options.allow_extensions_metadata_mismatch; +} + +Value AllowExtensionsMetadataMismatchSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.allow_extensions_metadata_mismatch); +} + +//===----------------------------------------------------------------------===// +// Allow Unredacted Secrets +//===----------------------------------------------------------------------===// +void AllowUnredactedSecretsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + config.options.allow_unredacted_secrets = input.GetValue(); +} + +void AllowUnredactedSecretsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!OnGlobalReset(db, config)) { + return; + } + config.options.allow_unredacted_secrets = DBConfig().options.allow_unredacted_secrets; +} + +Value AllowUnredactedSecretsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.allow_unredacted_secrets); +} + +//===----------------------------------------------------------------------===// +// Allow Unsigned Extensions +//===----------------------------------------------------------------------===// +void AllowUnsignedExtensionsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + config.options.allow_unsigned_extensions = input.GetValue(); +} + +void AllowUnsignedExtensionsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!OnGlobalReset(db, config)) { + return; + } + config.options.allow_unsigned_extensions = DBConfig().options.allow_unsigned_extensions; +} + +Value AllowUnsignedExtensionsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.allow_unsigned_extensions); +} + +//===----------------------------------------------------------------------===// +// Arrow Large Buffer Size +//===----------------------------------------------------------------------===// +void ArrowLargeBufferSizeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.arrow_offset_size = DBConfig().options.arrow_offset_size; +} + +//===----------------------------------------------------------------------===// +// Arrow Lossless Conversion +//===----------------------------------------------------------------------===// +void ArrowLosslessConversionSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.arrow_lossless_conversion = input.GetValue(); +} + +void ArrowLosslessConversionSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.arrow_lossless_conversion = DBConfig().options.arrow_lossless_conversion; +} + +Value ArrowLosslessConversionSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.arrow_lossless_conversion); +} + +//===----------------------------------------------------------------------===// +// Arrow Output List View +//===----------------------------------------------------------------------===// +void ArrowOutputListViewSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.arrow_use_list_view = input.GetValue(); +} + +void ArrowOutputListViewSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.arrow_use_list_view = DBConfig().options.arrow_use_list_view; +} + +Value ArrowOutputListViewSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.arrow_use_list_view); +} + +//===----------------------------------------------------------------------===// +// Autoinstall Extension Repository +//===----------------------------------------------------------------------===// +void AutoinstallExtensionRepositorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.autoinstall_extension_repo = input.GetValue(); +} + +void AutoinstallExtensionRepositorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.autoinstall_extension_repo = DBConfig().options.autoinstall_extension_repo; +} + +Value AutoinstallExtensionRepositorySetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.autoinstall_extension_repo); +} + +//===----------------------------------------------------------------------===// +// Autoinstall Known Extensions +//===----------------------------------------------------------------------===// +void AutoinstallKnownExtensionsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.autoinstall_known_extensions = input.GetValue(); +} + +void AutoinstallKnownExtensionsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.autoinstall_known_extensions = DBConfig().options.autoinstall_known_extensions; +} + +Value AutoinstallKnownExtensionsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.autoinstall_known_extensions); +} + +//===----------------------------------------------------------------------===// +// Autoload Known Extensions +//===----------------------------------------------------------------------===// +void AutoloadKnownExtensionsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.autoload_known_extensions = input.GetValue(); +} + +void AutoloadKnownExtensionsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.autoload_known_extensions = DBConfig().options.autoload_known_extensions; +} + +Value AutoloadKnownExtensionsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.autoload_known_extensions); +} + +//===----------------------------------------------------------------------===// +// Catalog Error Max Schemas +//===----------------------------------------------------------------------===// +void CatalogErrorMaxSchemasSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.catalog_error_max_schemas = input.GetValue(); +} + +void CatalogErrorMaxSchemasSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.catalog_error_max_schemas = DBConfig().options.catalog_error_max_schemas; +} + +Value CatalogErrorMaxSchemasSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::UBIGINT(config.options.catalog_error_max_schemas); +} + +//===----------------------------------------------------------------------===// +// Checkpoint Threshold +//===----------------------------------------------------------------------===// +void CheckpointThresholdSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.checkpoint_wal_size = DBConfig().options.checkpoint_wal_size; +} + +//===----------------------------------------------------------------------===// +// Custom Extension Repository +//===----------------------------------------------------------------------===// +void CustomExtensionRepositorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.custom_extension_repo = input.GetValue(); +} + +void CustomExtensionRepositorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.custom_extension_repo = DBConfig().options.custom_extension_repo; +} + +Value CustomExtensionRepositorySetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.custom_extension_repo); +} + +//===----------------------------------------------------------------------===// +// Custom User Agent +//===----------------------------------------------------------------------===// +Value CustomUserAgentSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.custom_user_agent); +} + +//===----------------------------------------------------------------------===// +// Debug Asof Iejoin +//===----------------------------------------------------------------------===// +void DebugAsofIejoinSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.force_asof_iejoin = input.GetValue(); +} + +void DebugAsofIejoinSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).force_asof_iejoin = ClientConfig().force_asof_iejoin; +} + +Value DebugAsofIejoinSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.force_asof_iejoin); +} + +//===----------------------------------------------------------------------===// +// Debug Checkpoint Abort +//===----------------------------------------------------------------------===// +void DebugCheckpointAbortSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto str_input = StringUtil::Upper(input.GetValue()); + config.options.checkpoint_abort = EnumUtil::FromString(str_input); +} + +void DebugCheckpointAbortSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.checkpoint_abort = DBConfig().options.checkpoint_abort; +} + +Value DebugCheckpointAbortSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::Lower(EnumUtil::ToString(config.options.checkpoint_abort))); +} + +//===----------------------------------------------------------------------===// +// Debug Force External +//===----------------------------------------------------------------------===// +void DebugForceExternalSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.force_external = input.GetValue(); +} + +void DebugForceExternalSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).force_external = ClientConfig().force_external; +} + +Value DebugForceExternalSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.force_external); +} + +//===----------------------------------------------------------------------===// +// Debug Force No Cross Product +//===----------------------------------------------------------------------===// +void DebugForceNoCrossProductSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.force_no_cross_product = input.GetValue(); +} + +void DebugForceNoCrossProductSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).force_no_cross_product = ClientConfig().force_no_cross_product; +} + +Value DebugForceNoCrossProductSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.force_no_cross_product); +} + +//===----------------------------------------------------------------------===// +// Debug Skip Checkpoint On Commit +//===----------------------------------------------------------------------===// +void DebugSkipCheckpointOnCommitSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.debug_skip_checkpoint_on_commit = input.GetValue(); +} + +void DebugSkipCheckpointOnCommitSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.debug_skip_checkpoint_on_commit = DBConfig().options.debug_skip_checkpoint_on_commit; +} + +Value DebugSkipCheckpointOnCommitSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.debug_skip_checkpoint_on_commit); +} + +//===----------------------------------------------------------------------===// +// Debug Window Mode +//===----------------------------------------------------------------------===// +void DebugWindowModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto str_input = StringUtil::Upper(input.GetValue()); + config.options.window_mode = EnumUtil::FromString(str_input); +} + +void DebugWindowModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.window_mode = DBConfig().options.window_mode; +} + +Value DebugWindowModeSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::Lower(EnumUtil::ToString(config.options.window_mode))); +} + +//===----------------------------------------------------------------------===// +// Default Null Order +//===----------------------------------------------------------------------===// +void DefaultNullOrderSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.default_null_order = DBConfig().options.default_null_order; +} + +Value DefaultNullOrderSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::Lower(EnumUtil::ToString(config.options.default_null_order))); +} + +//===----------------------------------------------------------------------===// +// Default Order +//===----------------------------------------------------------------------===// +void DefaultOrderSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.default_order_type = DBConfig().options.default_order_type; +} + +//===----------------------------------------------------------------------===// +// Dynamic Or Filter Threshold +//===----------------------------------------------------------------------===// +void DynamicOrFilterThresholdSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.dynamic_or_filter_threshold = input.GetValue(); +} + +void DynamicOrFilterThresholdSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).dynamic_or_filter_threshold = ClientConfig().dynamic_or_filter_threshold; +} + +Value DynamicOrFilterThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.dynamic_or_filter_threshold); +} + +//===----------------------------------------------------------------------===// +// Enable External Access +//===----------------------------------------------------------------------===// +void EnableExternalAccessSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + config.options.enable_external_access = input.GetValue(); +} + +void EnableExternalAccessSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!OnGlobalReset(db, config)) { + return; + } + config.options.enable_external_access = DBConfig().options.enable_external_access; +} + +Value EnableExternalAccessSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.enable_external_access); +} + +//===----------------------------------------------------------------------===// +// Enable F S S T Vectors +//===----------------------------------------------------------------------===// +void EnableFSSTVectorsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.enable_fsst_vectors = input.GetValue(); +} + +void EnableFSSTVectorsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.enable_fsst_vectors = DBConfig().options.enable_fsst_vectors; +} + +Value EnableFSSTVectorsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.enable_fsst_vectors); +} + +//===----------------------------------------------------------------------===// +// Enable H T T P Logging +//===----------------------------------------------------------------------===// +void EnableHTTPLoggingSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.enable_http_logging = input.GetValue(); +} + +void EnableHTTPLoggingSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).enable_http_logging = ClientConfig().enable_http_logging; +} + +Value EnableHTTPLoggingSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.enable_http_logging); +} + +//===----------------------------------------------------------------------===// +// Enable H T T P Metadata Cache +//===----------------------------------------------------------------------===// +void EnableHTTPMetadataCacheSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.http_metadata_cache_enable = input.GetValue(); +} + +void EnableHTTPMetadataCacheSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.http_metadata_cache_enable = DBConfig().options.http_metadata_cache_enable; +} + +Value EnableHTTPMetadataCacheSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.http_metadata_cache_enable); +} + +//===----------------------------------------------------------------------===// +// Enable Macro Dependencies +//===----------------------------------------------------------------------===// +void EnableMacroDependenciesSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.enable_macro_dependencies = input.GetValue(); +} + +void EnableMacroDependenciesSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.enable_macro_dependencies = DBConfig().options.enable_macro_dependencies; +} + +Value EnableMacroDependenciesSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.enable_macro_dependencies); +} + +//===----------------------------------------------------------------------===// +// Enable Progress Bar +//===----------------------------------------------------------------------===// +void EnableProgressBarSetting::SetLocal(ClientContext &context, const Value &input) { + if (!OnLocalSet(context, input)) { + return; + } + auto &config = ClientConfig::GetConfig(context); + config.enable_progress_bar = input.GetValue(); +} + +void EnableProgressBarSetting::ResetLocal(ClientContext &context) { + if (!OnLocalReset(context)) { + return; + } + ClientConfig::GetConfig(context).enable_progress_bar = ClientConfig().enable_progress_bar; +} + +Value EnableProgressBarSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.enable_progress_bar); +} + +//===----------------------------------------------------------------------===// +// Enable View Dependencies +//===----------------------------------------------------------------------===// +void EnableViewDependenciesSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.enable_view_dependencies = input.GetValue(); +} + +void EnableViewDependenciesSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.enable_view_dependencies = DBConfig().options.enable_view_dependencies; +} + +Value EnableViewDependenciesSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.enable_view_dependencies); +} + +//===----------------------------------------------------------------------===// +// Errors As J S O N +//===----------------------------------------------------------------------===// +void ErrorsAsJSONSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.errors_as_json = input.GetValue(); +} + +void ErrorsAsJSONSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).errors_as_json = ClientConfig().errors_as_json; +} + +Value ErrorsAsJSONSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.errors_as_json); +} + +//===----------------------------------------------------------------------===// +// Explain Output +//===----------------------------------------------------------------------===// +void ExplainOutputSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + auto str_input = StringUtil::Upper(input.GetValue()); + config.explain_output_type = EnumUtil::FromString(str_input); +} + +void ExplainOutputSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).explain_output_type = ClientConfig().explain_output_type; +} + +Value ExplainOutputSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value(StringUtil::Lower(EnumUtil::ToString(config.explain_output_type))); +} + +//===----------------------------------------------------------------------===// +// Extension Directory +//===----------------------------------------------------------------------===// +void ExtensionDirectorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.extension_directory = input.GetValue(); +} + +void ExtensionDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.extension_directory = DBConfig().options.extension_directory; +} + +Value ExtensionDirectorySetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.extension_directory); +} + +//===----------------------------------------------------------------------===// +// External Threads +//===----------------------------------------------------------------------===// +void ExternalThreadsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + config.options.external_threads = input.GetValue(); +} + +void ExternalThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!OnGlobalReset(db, config)) { + return; + } + config.options.external_threads = DBConfig().options.external_threads; +} + +Value ExternalThreadsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::UBIGINT(config.options.external_threads); +} + +//===----------------------------------------------------------------------===// +// Home Directory +//===----------------------------------------------------------------------===// +void HomeDirectorySetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).home_directory = ClientConfig().home_directory; +} + +Value HomeDirectorySetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value(config.home_directory); +} + +//===----------------------------------------------------------------------===// +// H T T P Logging Output +//===----------------------------------------------------------------------===// +void HTTPLoggingOutputSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.http_logging_output = input.GetValue(); +} + +void HTTPLoggingOutputSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).http_logging_output = ClientConfig().http_logging_output; +} + +Value HTTPLoggingOutputSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value(config.http_logging_output); +} + +//===----------------------------------------------------------------------===// +// H T T P Proxy +//===----------------------------------------------------------------------===// +void HTTPProxySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.http_proxy = input.GetValue(); +} + +void HTTPProxySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.http_proxy = DBConfig().options.http_proxy; +} + +Value HTTPProxySetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.http_proxy); +} + +//===----------------------------------------------------------------------===// +// H T T P Proxy Password +//===----------------------------------------------------------------------===// +void HTTPProxyPasswordSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.http_proxy_password = input.GetValue(); +} + +void HTTPProxyPasswordSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.http_proxy_password = DBConfig().options.http_proxy_password; +} + +Value HTTPProxyPasswordSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.http_proxy_password); +} + +//===----------------------------------------------------------------------===// +// H T T P Proxy Username +//===----------------------------------------------------------------------===// +void HTTPProxyUsernameSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.http_proxy_username = input.GetValue(); +} + +void HTTPProxyUsernameSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.http_proxy_username = DBConfig().options.http_proxy_username; +} + +Value HTTPProxyUsernameSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.http_proxy_username); +} + +//===----------------------------------------------------------------------===// +// I E E E Floating Point Ops +//===----------------------------------------------------------------------===// +void IEEEFloatingPointOpsSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.ieee_floating_point_ops = input.GetValue(); +} + +void IEEEFloatingPointOpsSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).ieee_floating_point_ops = ClientConfig().ieee_floating_point_ops; +} + +Value IEEEFloatingPointOpsSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.ieee_floating_point_ops); +} + +//===----------------------------------------------------------------------===// +// Immediate Transaction Mode +//===----------------------------------------------------------------------===// +void ImmediateTransactionModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.immediate_transaction_mode = input.GetValue(); +} + +void ImmediateTransactionModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.immediate_transaction_mode = DBConfig().options.immediate_transaction_mode; +} + +Value ImmediateTransactionModeSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.immediate_transaction_mode); +} + +//===----------------------------------------------------------------------===// +// Index Scan Max Count +//===----------------------------------------------------------------------===// +void IndexScanMaxCountSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.index_scan_max_count = input.GetValue(); +} + +void IndexScanMaxCountSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.index_scan_max_count = DBConfig().options.index_scan_max_count; +} + +Value IndexScanMaxCountSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::UBIGINT(config.options.index_scan_max_count); +} + +//===----------------------------------------------------------------------===// +// Index Scan Percentage +//===----------------------------------------------------------------------===// +void IndexScanPercentageSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!OnGlobalSet(db, config, input)) { + return; + } + config.options.index_scan_percentage = input.GetValue(); +} + +void IndexScanPercentageSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.index_scan_percentage = DBConfig().options.index_scan_percentage; +} + +Value IndexScanPercentageSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::DOUBLE(config.options.index_scan_percentage); +} + +//===----------------------------------------------------------------------===// +// Integer Division +//===----------------------------------------------------------------------===// +void IntegerDivisionSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.integer_division = input.GetValue(); +} + +void IntegerDivisionSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).integer_division = ClientConfig().integer_division; +} + +Value IntegerDivisionSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.integer_division); +} + +//===----------------------------------------------------------------------===// +// Lock Configuration +//===----------------------------------------------------------------------===// +void LockConfigurationSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.lock_configuration = input.GetValue(); +} + +void LockConfigurationSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.lock_configuration = DBConfig().options.lock_configuration; +} + +Value LockConfigurationSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.lock_configuration); +} + +//===----------------------------------------------------------------------===// +// Max Expression Depth +//===----------------------------------------------------------------------===// +void MaxExpressionDepthSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.max_expression_depth = input.GetValue(); +} + +void MaxExpressionDepthSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).max_expression_depth = ClientConfig().max_expression_depth; +} + +Value MaxExpressionDepthSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.max_expression_depth); +} + +//===----------------------------------------------------------------------===// +// Max Vacuum Tasks +//===----------------------------------------------------------------------===// +void MaxVacuumTasksSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.max_vacuum_tasks = input.GetValue(); +} + +void MaxVacuumTasksSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.max_vacuum_tasks = DBConfig().options.max_vacuum_tasks; +} + +Value MaxVacuumTasksSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::UBIGINT(config.options.max_vacuum_tasks); +} + +//===----------------------------------------------------------------------===// +// Merge Join Threshold +//===----------------------------------------------------------------------===// +void MergeJoinThresholdSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.merge_join_threshold = input.GetValue(); +} + +void MergeJoinThresholdSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).merge_join_threshold = ClientConfig().merge_join_threshold; +} + +Value MergeJoinThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.merge_join_threshold); +} + +//===----------------------------------------------------------------------===// +// Nested Loop Join Threshold +//===----------------------------------------------------------------------===// +void NestedLoopJoinThresholdSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.nested_loop_join_threshold = input.GetValue(); +} + +void NestedLoopJoinThresholdSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).nested_loop_join_threshold = ClientConfig().nested_loop_join_threshold; +} + +Value NestedLoopJoinThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.nested_loop_join_threshold); +} + +//===----------------------------------------------------------------------===// +// Old Implicit Casting +//===----------------------------------------------------------------------===// +void OldImplicitCastingSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.old_implicit_casting = input.GetValue(); +} + +void OldImplicitCastingSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.old_implicit_casting = DBConfig().options.old_implicit_casting; +} + +Value OldImplicitCastingSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.old_implicit_casting); +} + +//===----------------------------------------------------------------------===// +// Order By Non Integer Literal +//===----------------------------------------------------------------------===// +void OrderByNonIntegerLiteralSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.order_by_non_integer_literal = input.GetValue(); +} + +void OrderByNonIntegerLiteralSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).order_by_non_integer_literal = ClientConfig().order_by_non_integer_literal; +} + +Value OrderByNonIntegerLiteralSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.order_by_non_integer_literal); +} + +//===----------------------------------------------------------------------===// +// Ordered Aggregate Threshold +//===----------------------------------------------------------------------===// +void OrderedAggregateThresholdSetting::SetLocal(ClientContext &context, const Value &input) { + if (!OnLocalSet(context, input)) { + return; + } + auto &config = ClientConfig::GetConfig(context); + config.ordered_aggregate_threshold = input.GetValue(); +} + +void OrderedAggregateThresholdSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).ordered_aggregate_threshold = ClientConfig().ordered_aggregate_threshold; +} + +Value OrderedAggregateThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.ordered_aggregate_threshold); +} + +//===----------------------------------------------------------------------===// +// Partitioned Write Flush Threshold +//===----------------------------------------------------------------------===// +void PartitionedWriteFlushThresholdSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.partitioned_write_flush_threshold = input.GetValue(); +} + +void PartitionedWriteFlushThresholdSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).partitioned_write_flush_threshold = + ClientConfig().partitioned_write_flush_threshold; +} + +Value PartitionedWriteFlushThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.partitioned_write_flush_threshold); +} + +//===----------------------------------------------------------------------===// +// Partitioned Write Max Open Files +//===----------------------------------------------------------------------===// +void PartitionedWriteMaxOpenFilesSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.partitioned_write_max_open_files = input.GetValue(); +} + +void PartitionedWriteMaxOpenFilesSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).partitioned_write_max_open_files = ClientConfig().partitioned_write_max_open_files; +} + +Value PartitionedWriteMaxOpenFilesSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.partitioned_write_max_open_files); +} + +//===----------------------------------------------------------------------===// +// Perfect Ht Threshold +//===----------------------------------------------------------------------===// +void PerfectHtThresholdSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).perfect_ht_threshold = ClientConfig().perfect_ht_threshold; +} + +//===----------------------------------------------------------------------===// +// Pivot Filter Threshold +//===----------------------------------------------------------------------===// +void PivotFilterThresholdSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.pivot_filter_threshold = input.GetValue(); +} + +void PivotFilterThresholdSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).pivot_filter_threshold = ClientConfig().pivot_filter_threshold; +} + +Value PivotFilterThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.pivot_filter_threshold); +} + +//===----------------------------------------------------------------------===// +// Pivot Limit +//===----------------------------------------------------------------------===// +void PivotLimitSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.pivot_limit = input.GetValue(); +} + +void PivotLimitSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).pivot_limit = ClientConfig().pivot_limit; +} + +Value PivotLimitSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::UBIGINT(config.pivot_limit); +} + +//===----------------------------------------------------------------------===// +// Prefer Range Joins +//===----------------------------------------------------------------------===// +void PreferRangeJoinsSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.prefer_range_joins = input.GetValue(); +} + +void PreferRangeJoinsSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).prefer_range_joins = ClientConfig().prefer_range_joins; +} + +Value PreferRangeJoinsSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.prefer_range_joins); +} + +//===----------------------------------------------------------------------===// +// Preserve Identifier Case +//===----------------------------------------------------------------------===// +void PreserveIdentifierCaseSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.preserve_identifier_case = input.GetValue(); +} + +void PreserveIdentifierCaseSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).preserve_identifier_case = ClientConfig().preserve_identifier_case; +} + +Value PreserveIdentifierCaseSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.preserve_identifier_case); +} + +//===----------------------------------------------------------------------===// +// Preserve Insertion Order +//===----------------------------------------------------------------------===// +void PreserveInsertionOrderSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.preserve_insertion_order = input.GetValue(); +} + +void PreserveInsertionOrderSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.preserve_insertion_order = DBConfig().options.preserve_insertion_order; +} + +Value PreserveInsertionOrderSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.preserve_insertion_order); +} + +//===----------------------------------------------------------------------===// +// Produce Arrow String View +//===----------------------------------------------------------------------===// +void ProduceArrowStringViewSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.produce_arrow_string_views = input.GetValue(); +} + +void ProduceArrowStringViewSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.produce_arrow_string_views = DBConfig().options.produce_arrow_string_views; +} + +Value ProduceArrowStringViewSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.options.produce_arrow_string_views); +} + +//===----------------------------------------------------------------------===// +// Scalar Subquery Error On Multiple Rows +//===----------------------------------------------------------------------===// +void ScalarSubqueryErrorOnMultipleRowsSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.scalar_subquery_error_on_multiple_rows = input.GetValue(); +} + +void ScalarSubqueryErrorOnMultipleRowsSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).scalar_subquery_error_on_multiple_rows = + ClientConfig().scalar_subquery_error_on_multiple_rows; +} + +Value ScalarSubqueryErrorOnMultipleRowsSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value::BOOLEAN(config.scalar_subquery_error_on_multiple_rows); +} + +//===----------------------------------------------------------------------===// +// Zstd Min String Length +//===----------------------------------------------------------------------===// +void ZstdMinStringLengthSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.zstd_min_string_length = input.GetValue(); +} + +void ZstdMinStringLengthSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.zstd_min_string_length = DBConfig().options.zstd_min_string_length; +} + +Value ZstdMinStringLengthSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::UBIGINT(config.options.zstd_min_string_length); +} + +} // namespace duckdb diff --git a/src/duckdb/src/main/settings/custom_settings.cpp b/src/duckdb/src/main/settings/custom_settings.cpp new file mode 100644 index 00000000..e8de192a --- /dev/null +++ b/src/duckdb/src/main/settings/custom_settings.cpp @@ -0,0 +1,1233 @@ +//===----------------------------------------------------------------------===// +// DuckDB +// This file will not be overwritten. To implement a custom function for +// a new setting, enable 'custom_implementation' in 'src/common/settings.json' +// for this setting. The 'update_settings_definitions.py' may include new +// setting methods' signatures that need to be implemented in this file. You +// can check the functions declaration in 'settings.hpp' and what is +// autogenerated in 'autogenerated_settings.cpp'. +// +//===----------------------------------------------------------------------===// + +#include "duckdb/main/settings.hpp" + +#include "duckdb/common/enums/access_mode.hpp" +#include "duckdb/catalog/catalog_search_path.hpp" +#include "duckdb/common/string_util.hpp" +#include "duckdb/main/attached_database.hpp" +#include "duckdb/main/client_context.hpp" +#include "duckdb/main/client_data.hpp" +#include "duckdb/main/config.hpp" +#include "duckdb/main/database.hpp" +#include "duckdb/main/database_manager.hpp" +#include "duckdb/main/query_profiler.hpp" +#include "duckdb/main/secret/secret_manager.hpp" +#include "duckdb/parallel/task_scheduler.hpp" +#include "duckdb/parser/parser.hpp" +#include "duckdb/planner/expression_binder.hpp" +#include "duckdb/storage/buffer/buffer_pool.hpp" +#include "duckdb/storage/buffer_manager.hpp" +#include "duckdb/storage/storage_manager.hpp" + +namespace duckdb { + +const string GetDefaultUserAgent() { + return StringUtil::Format("duckdb/%s(%s)", DuckDB::LibraryVersion(), DuckDB::Platform()); +} + +//===----------------------------------------------------------------------===// +// Access Mode +//===----------------------------------------------------------------------===// +bool AccessModeSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (db) { + throw InvalidInputException("Cannot change access_mode setting while database is running - it must be set when " + "opening or attaching the database"); + } + return true; +} + +//===----------------------------------------------------------------------===// +// Allocator Background Threads +//===----------------------------------------------------------------------===// +bool AllocatorBackgroundThreadsSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (db) { + TaskScheduler::GetScheduler(*db).SetAllocatorBackgroundThreads(input.GetValue()); + } + return true; +} + +bool AllocatorBackgroundThreadsSetting::OnGlobalReset(DatabaseInstance *db, DBConfig &config) { + if (db) { + TaskScheduler::GetScheduler(*db).SetAllocatorBackgroundThreads(DBConfig().options.allocator_background_threads); + } + return true; +} + +//===----------------------------------------------------------------------===// +// Allocator Bulk Deallocation Flush Threshold +//===----------------------------------------------------------------------===// +void AllocatorBulkDeallocationFlushThresholdSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, + const Value &input) { + config.options.allocator_bulk_deallocation_flush_threshold = DBConfig::ParseMemoryLimit(input.ToString()); + if (db) { + BufferManager::GetBufferManager(*db).GetBufferPool().SetAllocatorBulkDeallocationFlushThreshold( + config.options.allocator_bulk_deallocation_flush_threshold); + } +} + +void AllocatorBulkDeallocationFlushThresholdSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.allocator_bulk_deallocation_flush_threshold = + DBConfig().options.allocator_bulk_deallocation_flush_threshold; + if (db) { + BufferManager::GetBufferManager(*db).GetBufferPool().SetAllocatorBulkDeallocationFlushThreshold( + config.options.allocator_bulk_deallocation_flush_threshold); + } +} + +Value AllocatorBulkDeallocationFlushThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::BytesToHumanReadableString(config.options.allocator_bulk_deallocation_flush_threshold)); +} + +//===----------------------------------------------------------------------===// +// Allocator Flush Threshold +//===----------------------------------------------------------------------===// +void AllocatorFlushThresholdSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.allocator_flush_threshold = DBConfig::ParseMemoryLimit(input.ToString()); + if (db) { + TaskScheduler::GetScheduler(*db).SetAllocatorFlushTreshold(config.options.allocator_flush_threshold); + } +} + +void AllocatorFlushThresholdSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.allocator_flush_threshold = DBConfig().options.allocator_flush_threshold; + if (db) { + TaskScheduler::GetScheduler(*db).SetAllocatorFlushTreshold(config.options.allocator_flush_threshold); + } +} + +Value AllocatorFlushThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::BytesToHumanReadableString(config.options.allocator_flush_threshold)); +} + +//===----------------------------------------------------------------------===// +// Allow Community Extensions +//===----------------------------------------------------------------------===// +bool AllowCommunityExtensionsSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (db && !config.options.allow_community_extensions) { + auto new_value = input.GetValue(); + if (new_value) { + throw InvalidInputException("Cannot upgrade allow_community_extensions setting while database is running"); + } + return false; + } + return true; +} + +bool AllowCommunityExtensionsSetting::OnGlobalReset(DatabaseInstance *db, DBConfig &config) { + if (db && !config.options.allow_community_extensions) { + if (DBConfig().options.allow_community_extensions) { + throw InvalidInputException("Cannot upgrade allow_community_extensions setting while database is running"); + } + return false; + } + return true; +} + +//===----------------------------------------------------------------------===// +// Allow Persistent Secrets +//===----------------------------------------------------------------------===// +void AllowPersistentSecretsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto value = input.DefaultCastAs(LogicalType::BOOLEAN); + config.secret_manager->SetEnablePersistentSecrets(value.GetValue()); +} + +void AllowPersistentSecretsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.secret_manager->ResetEnablePersistentSecrets(); +} + +Value AllowPersistentSecretsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BOOLEAN(config.secret_manager->PersistentSecretsEnabled()); +} + +//===----------------------------------------------------------------------===// +// Allow Unredacted Secrets +//===----------------------------------------------------------------------===// +bool AllowUnredactedSecretsSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (db && input.GetValue()) { + throw InvalidInputException("Cannot change allow_unredacted_secrets setting while database is running"); + } + return true; +} + +bool AllowUnredactedSecretsSetting::OnGlobalReset(DatabaseInstance *db, DBConfig &config) { + if (db) { + throw InvalidInputException("Cannot change allow_unredacted_secrets setting while database is running"); + } + return true; +} + +//===----------------------------------------------------------------------===// +// Allow Unsigned Extensions +//===----------------------------------------------------------------------===// +bool AllowUnsignedExtensionsSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (db && input.GetValue()) { + throw InvalidInputException("Cannot change allow_unsigned_extensions setting while database is running"); + } + return true; +} + +bool AllowUnsignedExtensionsSetting::OnGlobalReset(DatabaseInstance *db, DBConfig &config) { + if (db) { + throw InvalidInputException("Cannot change allow_unsigned_extensions setting while database is running"); + } + return true; +} + +//===----------------------------------------------------------------------===// +// Allowed Directories +//===----------------------------------------------------------------------===// +void AllowedDirectoriesSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!config.options.enable_external_access) { + throw InvalidInputException("Cannot change allowed_directories when enable_external_access is disabled"); + } + config.options.allowed_directories.clear(); + auto &list = ListValue::GetChildren(input); + for (auto &val : list) { + config.AddAllowedDirectory(val.GetValue()); + } +} + +void AllowedDirectoriesSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!config.options.enable_external_access) { + throw InvalidInputException("Cannot change allowed_directories when enable_external_access is disabled"); + } + config.options.allowed_directories = DBConfig().options.allowed_directories; +} + +Value AllowedDirectoriesSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + vector allowed_directories; + for (auto &dir : config.options.allowed_directories) { + allowed_directories.emplace_back(dir); + } + return Value::LIST(LogicalType::VARCHAR, std::move(allowed_directories)); +} + +//===----------------------------------------------------------------------===// +// Allowed Paths +//===----------------------------------------------------------------------===//void +void AllowedPathsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!config.options.enable_external_access) { + throw InvalidInputException("Cannot change allowed_paths when enable_external_access is disabled"); + } + config.options.allowed_paths.clear(); + auto &list = ListValue::GetChildren(input); + for (auto &val : list) { + config.AddAllowedPath(val.GetValue()); + } +} + +void AllowedPathsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!config.options.enable_external_access) { + throw InvalidInputException("Cannot change allowed_paths when enable_external_access is disabled"); + } + config.options.allowed_paths = DBConfig().options.allowed_paths; +} + +Value AllowedPathsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + vector allowed_paths; + for (auto &dir : config.options.allowed_paths) { + allowed_paths.emplace_back(dir); + } + return Value::LIST(LogicalType::VARCHAR, std::move(allowed_paths)); +} + +//===----------------------------------------------------------------------===// +// Arrow Large Buffer Size +//===----------------------------------------------------------------------===// +void ArrowLargeBufferSizeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto export_large_buffers_arrow = input.GetValue(); + config.options.arrow_offset_size = export_large_buffers_arrow ? ArrowOffsetSize::LARGE : ArrowOffsetSize::REGULAR; +} + +Value ArrowLargeBufferSizeSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + bool export_large_buffers_arrow = config.options.arrow_offset_size == ArrowOffsetSize::LARGE; + return Value::BOOLEAN(export_large_buffers_arrow); +} + +//===----------------------------------------------------------------------===// +// Checkpoint Threshold +//===----------------------------------------------------------------------===// +void CheckpointThresholdSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + idx_t new_limit = DBConfig::ParseMemoryLimit(input.ToString()); + config.options.checkpoint_wal_size = new_limit; +} + +Value CheckpointThresholdSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::BytesToHumanReadableString(config.options.checkpoint_wal_size)); +} + +//===----------------------------------------------------------------------===// +// Custom Profiling Settings +//===----------------------------------------------------------------------===// +bool IsEnabledOptimizer(MetricsType metric, const set &disabled_optimizers) { + auto matching_optimizer_type = MetricsUtils::GetOptimizerTypeByMetric(metric); + if (matching_optimizer_type != OptimizerType::INVALID && + disabled_optimizers.find(matching_optimizer_type) == disabled_optimizers.end()) { + return true; + } + return false; +} + +static profiler_settings_t FillTreeNodeSettings(unordered_map &json, + const set &disabled_optimizers) { + profiler_settings_t metrics; + + string invalid_settings; + for (auto &entry : json) { + MetricsType setting; + try { + setting = EnumUtil::FromString(StringUtil::Upper(entry.first)); + } catch (std::exception &ex) { + if (!invalid_settings.empty()) { + invalid_settings += ", "; + } + invalid_settings += entry.first; + continue; + } + if (StringUtil::Lower(entry.second) == "true" && + (!MetricsUtils::IsOptimizerMetric(setting) || IsEnabledOptimizer(setting, disabled_optimizers))) { + metrics.insert(setting); + } + } + + if (!invalid_settings.empty()) { + throw IOException("Invalid custom profiler settings: \"%s\"", invalid_settings); + } + return metrics; +} + +void AddOptimizerMetrics(profiler_settings_t &settings, const set &disabled_optimizers) { + if (settings.find(MetricsType::ALL_OPTIMIZERS) != settings.end()) { + auto optimizer_metrics = MetricsUtils::GetOptimizerMetrics(); + for (auto &metric : optimizer_metrics) { + if (IsEnabledOptimizer(metric, disabled_optimizers)) { + settings.insert(metric); + } + } + } +} + +void CustomProfilingSettingsSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + + // parse the file content + unordered_map json; + try { + json = StringUtil::ParseJSONMap(input.ToString()); + } catch (std::exception &ex) { + throw IOException("Could not parse the custom profiler settings file due to incorrect JSON: \"%s\". Make sure " + "all the keys and values start with a quote. ", + input.ToString()); + } + + config.enable_profiler = true; + auto &db_config = DBConfig::GetConfig(context); + auto &disabled_optimizers = db_config.options.disabled_optimizers; + + auto settings = FillTreeNodeSettings(json, disabled_optimizers); + AddOptimizerMetrics(settings, disabled_optimizers); + config.profiler_settings = settings; +} + +void CustomProfilingSettingsSetting::ResetLocal(ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + config.enable_profiler = ClientConfig().enable_profiler; + config.profiler_settings = ProfilingInfo::DefaultSettings(); +} + +Value CustomProfilingSettingsSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + + string profiling_settings_str; + for (auto &entry : config.profiler_settings) { + if (!profiling_settings_str.empty()) { + profiling_settings_str += ", "; + } + profiling_settings_str += StringUtil::Format("\"%s\": \"true\"", EnumUtil::ToString(entry)); + } + return Value(StringUtil::Format("{%s}", profiling_settings_str)); +} + +//===----------------------------------------------------------------------===// +// Custom User Agent +//===----------------------------------------------------------------------===// +void CustomUserAgentSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto new_value = input.GetValue(); + if (db) { + throw InvalidInputException("Cannot change custom_user_agent setting while database is running"); + } + config.options.custom_user_agent = + config.options.custom_user_agent.empty() ? new_value : config.options.custom_user_agent + " " + new_value; +} + +void CustomUserAgentSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (db) { + throw InvalidInputException("Cannot change custom_user_agent setting while database is running"); + } + config.options.custom_user_agent = DBConfig().options.custom_user_agent; +} + +//===----------------------------------------------------------------------===// +// Default Block Size +//===----------------------------------------------------------------------===// +void DefaultBlockSizeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto block_alloc_size = input.GetValue(); + Storage::VerifyBlockAllocSize(block_alloc_size); + config.options.default_block_alloc_size = block_alloc_size; +} + +void DefaultBlockSizeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.default_block_alloc_size = DBConfig().options.default_block_alloc_size; +} + +Value DefaultBlockSizeSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::UBIGINT(config.options.default_block_alloc_size); +} + +//===----------------------------------------------------------------------===// +// Default Collation +//===----------------------------------------------------------------------===// +void DefaultCollationSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto parameter = StringUtil::Lower(input.ToString()); + config.options.collation = parameter; +} + +void DefaultCollationSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.collation = DBConfig().options.collation; +} + +void DefaultCollationSetting::SetLocal(ClientContext &context, const Value &input) { + auto parameter = input.ToString(); + // bind the collation to verify that it exists + ExpressionBinder::TestCollation(context, parameter); + auto &config = DBConfig::GetConfig(context); + config.options.collation = parameter; +} + +void DefaultCollationSetting::ResetLocal(ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + config.options.collation = DBConfig().options.collation; +} + +Value DefaultCollationSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.collation); +} + +//===----------------------------------------------------------------------===// +// Default Null Order +//===----------------------------------------------------------------------===// +void DefaultNullOrderSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto parameter = StringUtil::Lower(input.ToString()); + + if (parameter == "nulls_first" || parameter == "nulls first" || parameter == "null first" || parameter == "first") { + config.options.default_null_order = DefaultOrderByNullType::NULLS_FIRST; + } else if (parameter == "nulls_last" || parameter == "nulls last" || parameter == "null last" || + parameter == "last") { + config.options.default_null_order = DefaultOrderByNullType::NULLS_LAST; + } else if (parameter == "nulls_first_on_asc_last_on_desc" || parameter == "sqlite" || parameter == "mysql") { + config.options.default_null_order = DefaultOrderByNullType::NULLS_FIRST_ON_ASC_LAST_ON_DESC; + } else if (parameter == "nulls_last_on_asc_first_on_desc" || parameter == "postgres") { + config.options.default_null_order = DefaultOrderByNullType::NULLS_LAST_ON_ASC_FIRST_ON_DESC; + } else { + throw ParserException("Unrecognized parameter for option NULL_ORDER \"%s\", expected either NULLS FIRST, NULLS " + "LAST, SQLite, MySQL or Postgres", + parameter); + } +} + +//===----------------------------------------------------------------------===// +// Default Order +//===----------------------------------------------------------------------===// +void DefaultOrderSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto parameter = StringUtil::Lower(input.ToString()); + if (parameter == "ascending" || parameter == "asc") { + config.options.default_order_type = OrderType::ASCENDING; + } else if (parameter == "descending" || parameter == "desc") { + config.options.default_order_type = OrderType::DESCENDING; + } else { + throw InvalidInputException("Unrecognized parameter for option DEFAULT_ORDER \"%s\". Expected ASC or DESC.", + parameter); + } +} + +Value DefaultOrderSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + switch (config.options.default_order_type) { + case OrderType::ASCENDING: + return "asc"; + case OrderType::DESCENDING: + return "desc"; + default: + throw InternalException("Unknown order type setting"); + } +} + +//===----------------------------------------------------------------------===// +// Default Secret Storage +//===----------------------------------------------------------------------===// +void DefaultSecretStorageSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.secret_manager->SetDefaultStorage(input.ToString()); +} + +void DefaultSecretStorageSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.secret_manager->ResetDefaultStorage(); +} + +Value DefaultSecretStorageSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return config.secret_manager->DefaultStorage(); +} + +//===----------------------------------------------------------------------===// +// Disabled Filesystems +//===----------------------------------------------------------------------===// +void DisabledFilesystemsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!db) { + throw InternalException("disabled_filesystems can only be set in an active database"); + } + auto &fs = FileSystem::GetFileSystem(*db); + auto list = StringUtil::Split(input.ToString(), ","); + fs.SetDisabledFileSystems(list); +} + +void DisabledFilesystemsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!db) { + throw InternalException("disabled_filesystems can only be set in an active database"); + } + auto &fs = FileSystem::GetFileSystem(*db); + fs.SetDisabledFileSystems(vector()); +} + +Value DisabledFilesystemsSetting::GetSetting(const ClientContext &context) { + return Value(""); +} + +//===----------------------------------------------------------------------===// +// Disabled Optimizers +//===----------------------------------------------------------------------===// +void DisabledOptimizersSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto list = StringUtil::Split(input.ToString(), ","); + set disabled_optimizers; + for (auto &entry : list) { + auto param = StringUtil::Lower(entry); + StringUtil::Trim(param); + if (param.empty()) { + continue; + } + disabled_optimizers.insert(OptimizerTypeFromString(param)); + } + config.options.disabled_optimizers = std::move(disabled_optimizers); +} + +void DisabledOptimizersSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.disabled_optimizers = DBConfig().options.disabled_optimizers; +} + +Value DisabledOptimizersSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + string result; + for (auto &optimizer : config.options.disabled_optimizers) { + if (!result.empty()) { + result += ","; + } + result += OptimizerTypeToString(optimizer); + } + return Value(result); +} + +//===----------------------------------------------------------------------===// +// Duckdb Api +//===----------------------------------------------------------------------===// +void DuckDBAPISetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto new_value = input.GetValue(); + if (db) { + throw InvalidInputException("Cannot change duckdb_api setting while database is running"); + } + config.options.duckdb_api = new_value; +} + +void DuckDBAPISetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (db) { + throw InvalidInputException("Cannot change duckdb_api setting while database is running"); + } + config.options.duckdb_api = GetDefaultUserAgent(); +} + +Value DuckDBAPISetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(config.options.duckdb_api); +} + +//===----------------------------------------------------------------------===// +// Enable External Access +//===----------------------------------------------------------------------===// +bool EnableExternalAccessSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!db) { + return true; + } + if (input.GetValue()) { + throw InvalidInputException("Cannot change enable_external_access setting while database is running"); + } + if (db && config.options.enable_external_access) { + // we are turning off external access - add any already attached databases to the list of accepted paths + auto &db_manager = DatabaseManager::Get(*db); + auto attached_paths = db_manager.GetAttachedDatabasePaths(); + for (auto &path : attached_paths) { + config.AddAllowedPath(path); + config.AddAllowedPath(path + ".wal"); + } + } + if (config.options.use_temporary_directory && !config.options.temporary_directory.empty()) { + // if temp directory is enabled we can also write there + config.AddAllowedDirectory(config.options.temporary_directory); + } + return true; +} + +bool EnableExternalAccessSetting::OnGlobalReset(DatabaseInstance *db, DBConfig &config) { + if (db) { + throw InvalidInputException("Cannot change enable_external_access setting while database is running"); + } + return true; +} + +//===----------------------------------------------------------------------===// +// Enable Object Cache +//===----------------------------------------------------------------------===// +void EnableObjectCacheSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { +} + +void EnableObjectCacheSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { +} + +Value EnableObjectCacheSetting::GetSetting(const ClientContext &context) { + return Value(); +} + +//===----------------------------------------------------------------------===// +// Enable Profiling +//===----------------------------------------------------------------------===// +void EnableProfilingSetting::SetLocal(ClientContext &context, const Value &input) { + auto parameter = StringUtil::Lower(input.ToString()); + + auto &config = ClientConfig::GetConfig(context); + config.enable_profiler = true; + config.emit_profiler_output = true; + config.profiler_settings = ClientConfig().profiler_settings; + + if (parameter == "json") { + config.profiler_print_format = ProfilerPrintFormat::JSON; + } else if (parameter == "query_tree") { + config.profiler_print_format = ProfilerPrintFormat::QUERY_TREE; + } else if (parameter == "query_tree_optimizer") { + config.profiler_print_format = ProfilerPrintFormat::QUERY_TREE_OPTIMIZER; + + // add optimizer settings to the profiler settings + auto optimizer_settings = MetricsUtils::GetOptimizerMetrics(); + for (auto &setting : optimizer_settings) { + config.profiler_settings.insert(setting); + } + + // add the phase timing settings to the profiler settings + auto phase_timing_settings = MetricsUtils::GetPhaseTimingMetrics(); + for (auto &setting : phase_timing_settings) { + config.profiler_settings.insert(setting); + } + } else if (parameter == "no_output") { + config.profiler_print_format = ProfilerPrintFormat::NO_OUTPUT; + config.emit_profiler_output = false; + } else if (parameter == "html") { + config.profiler_print_format = ProfilerPrintFormat::HTML; + } else if (parameter == "graphviz") { + config.profiler_print_format = ProfilerPrintFormat::GRAPHVIZ; + } else { + throw ParserException( + "Unrecognized print format %s, supported formats: [json, query_tree, query_tree_optimizer, no_output]", + parameter); + } +} + +void EnableProfilingSetting::ResetLocal(ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + config.profiler_print_format = ClientConfig().profiler_print_format; + config.enable_profiler = ClientConfig().enable_profiler; + config.emit_profiler_output = ClientConfig().emit_profiler_output; + config.profiler_settings = ClientConfig().profiler_settings; +} + +Value EnableProfilingSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + if (!config.enable_profiler) { + return Value(); + } + switch (config.profiler_print_format) { + case ProfilerPrintFormat::JSON: + return Value("json"); + case ProfilerPrintFormat::QUERY_TREE: + return Value("query_tree"); + case ProfilerPrintFormat::QUERY_TREE_OPTIMIZER: + return Value("query_tree_optimizer"); + case ProfilerPrintFormat::NO_OUTPUT: + return Value("no_output"); + case ProfilerPrintFormat::HTML: + return Value("html"); + case ProfilerPrintFormat::GRAPHVIZ: + return Value("graphviz"); + default: + throw InternalException("Unsupported profiler print format"); + } +} + +//===----------------------------------------------------------------------===// +// Enable Progress Bar Print +//===----------------------------------------------------------------------===// +void EnableProgressBarPrintSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + ProgressBar::SystemOverrideCheck(config); + config.print_progress_bar = input.GetValue(); +} + +void EnableProgressBarPrintSetting::ResetLocal(ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + ProgressBar::SystemOverrideCheck(config); + config.print_progress_bar = ClientConfig().print_progress_bar; +} + +Value EnableProgressBarPrintSetting::GetSetting(const ClientContext &context) { + return Value::BOOLEAN(ClientConfig::GetConfig(context).print_progress_bar); +} + +//===----------------------------------------------------------------------===// +// Enable Progress Bar +//===----------------------------------------------------------------------===// +bool EnableProgressBarSetting::OnLocalSet(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + ProgressBar::SystemOverrideCheck(config); + return true; +} + +bool EnableProgressBarSetting::OnLocalReset(ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + ProgressBar::SystemOverrideCheck(config); + return true; +} + +//===----------------------------------------------------------------------===// +// External Threads +//===----------------------------------------------------------------------===// +bool ExternalThreadsSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto new_val = input.GetValue(); + if (new_val < 0) { + throw SyntaxException("Must have a non-negative number of external threads!"); + } + auto new_external_threads = NumericCast(new_val); + if (db) { + TaskScheduler::GetScheduler(*db).SetThreads(config.options.maximum_threads, new_external_threads); + } + return true; +} + +bool ExternalThreadsSetting::OnGlobalReset(DatabaseInstance *db, DBConfig &config) { + idx_t new_external_threads = DBConfig().options.external_threads; + if (db) { + TaskScheduler::GetScheduler(*db).SetThreads(config.options.maximum_threads, new_external_threads); + } + return true; +} + +//===----------------------------------------------------------------------===// +// File Search Path +//===----------------------------------------------------------------------===// +void FileSearchPathSetting::SetLocal(ClientContext &context, const Value &input) { + auto parameter = input.ToString(); + auto &client_data = ClientData::Get(context); + client_data.file_search_path = parameter; +} + +void FileSearchPathSetting::ResetLocal(ClientContext &context) { + auto &client_data = ClientData::Get(context); + client_data.file_search_path.clear(); +} + +Value FileSearchPathSetting::GetSetting(const ClientContext &context) { + auto &client_data = ClientData::Get(context); + return Value(client_data.file_search_path); +} + +//===----------------------------------------------------------------------===// +// Force Bitpacking Mode +//===----------------------------------------------------------------------===// +void ForceBitpackingModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto mode_str = StringUtil::Lower(input.ToString()); + auto mode = BitpackingModeFromString(mode_str); + if (mode == BitpackingMode::INVALID) { + throw ParserException("Unrecognized option for force_bitpacking_mode, expected none, constant, constant_delta, " + "delta_for, or for"); + } + config.options.force_bitpacking_mode = mode; +} + +void ForceBitpackingModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.force_bitpacking_mode = DBConfig().options.force_bitpacking_mode; +} + +Value ForceBitpackingModeSetting::GetSetting(const ClientContext &context) { + return Value(BitpackingModeToString(context.db->config.options.force_bitpacking_mode)); +} + +//===----------------------------------------------------------------------===// +// Force Compression +//===----------------------------------------------------------------------===// +void ForceCompressionSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto compression = StringUtil::Lower(input.ToString()); + if (compression == "none" || compression == "auto") { + config.options.force_compression = CompressionType::COMPRESSION_AUTO; + } else { + auto compression_type = CompressionTypeFromString(compression); + if (CompressionTypeIsDeprecated(compression_type)) { + throw ParserException("Attempted to force a deprecated compression type (%s)", + CompressionTypeToString(compression_type)); + } + if (compression_type == CompressionType::COMPRESSION_AUTO) { + auto compression_types = StringUtil::Join(ListCompressionTypes(), ", "); + throw ParserException("Unrecognized option for PRAGMA force_compression, expected %s", compression_types); + } + config.options.force_compression = compression_type; + } +} + +void ForceCompressionSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.force_compression = DBConfig().options.force_compression; +} + +Value ForceCompressionSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(*context.db); + return CompressionTypeToString(config.options.force_compression); +} + +//===----------------------------------------------------------------------===// +// Home Directory +//===----------------------------------------------------------------------===// +void HomeDirectorySetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + if (!input.IsNull() && FileSystem::GetFileSystem(context).IsRemoteFile(input.ToString())) { + throw InvalidInputException("Cannot set the home directory to a remote path"); + } + config.home_directory = input.IsNull() ? string() : input.ToString(); +} + +//===----------------------------------------------------------------------===// +// Index Scan Percentage +//===----------------------------------------------------------------------===// +bool IndexScanPercentageSetting::OnGlobalSet(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto index_scan_percentage = input.GetValue(); + if (index_scan_percentage < 0 || index_scan_percentage > 1.0) { + throw InvalidInputException("the index scan percentage must be within [0, 1]"); + } + return true; +} + +//===----------------------------------------------------------------------===// +// Log Query Path +//===----------------------------------------------------------------------===// +void LogQueryPathSetting::SetLocal(ClientContext &context, const Value &input) { + auto &client_data = ClientData::Get(context); + auto path = input.ToString(); + if (path.empty()) { + // empty path: clean up query writer + client_data.log_query_writer = nullptr; + } else { + client_data.log_query_writer = make_uniq(FileSystem::GetFileSystem(context), path, + BufferedFileWriter::DEFAULT_OPEN_FLAGS); + } +} + +void LogQueryPathSetting::ResetLocal(ClientContext &context) { + auto &client_data = ClientData::Get(context); + // TODO: verify that this does the right thing + client_data.log_query_writer = std::move(ClientData(context).log_query_writer); +} + +Value LogQueryPathSetting::GetSetting(const ClientContext &context) { + auto &client_data = ClientData::Get(context); + return client_data.log_query_writer ? Value(client_data.log_query_writer->path) : Value(); +} + +//===----------------------------------------------------------------------===// +// Max Memory +//===----------------------------------------------------------------------===// +void MaxMemorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.options.maximum_memory = DBConfig::ParseMemoryLimit(input.ToString()); + if (db) { + BufferManager::GetBufferManager(*db).SetMemoryLimit(config.options.maximum_memory); + } +} + +void MaxMemorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.SetDefaultMaxMemory(); +} + +Value MaxMemorySetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value(StringUtil::BytesToHumanReadableString(config.options.maximum_memory)); +} + +//===----------------------------------------------------------------------===// +// Max Temp Directory Size +//===----------------------------------------------------------------------===// +void MaxTempDirectorySizeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto maximum_swap_space = DBConfig::ParseMemoryLimit(input.ToString()); + if (maximum_swap_space == DConstants::INVALID_INDEX) { + // We use INVALID_INDEX to indicate that the value is not set by the user + // use one lower to indicate 'unlimited' + maximum_swap_space--; + } + if (!db) { + config.options.maximum_swap_space = maximum_swap_space; + return; + } + auto &buffer_manager = BufferManager::GetBufferManager(*db); + buffer_manager.SetSwapLimit(maximum_swap_space); + config.options.maximum_swap_space = maximum_swap_space; +} + +void MaxTempDirectorySizeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.maximum_swap_space = DConstants::INVALID_INDEX; + if (!db) { + return; + } + auto &buffer_manager = BufferManager::GetBufferManager(*db); + buffer_manager.SetSwapLimit(); +} + +Value MaxTempDirectorySizeSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + if (config.options.maximum_swap_space != DConstants::INVALID_INDEX) { + // Explicitly set by the user + return Value(StringUtil::BytesToHumanReadableString(config.options.maximum_swap_space)); + } + auto &buffer_manager = BufferManager::GetBufferManager(context); + // Database is initialized, use the setting from the temporary directory + auto max_swap = buffer_manager.GetMaxSwap(); + if (max_swap.IsValid()) { + return Value(StringUtil::BytesToHumanReadableString(max_swap.GetIndex())); + } else { + // The temp directory has not been used yet + return Value("90% of available disk space"); + } +} + +//===----------------------------------------------------------------------===// +// Ordered Aggregate Threshold +//===----------------------------------------------------------------------===// +bool OrderedAggregateThresholdSetting::OnLocalSet(ClientContext &context, const Value &input) { + const auto param = input.GetValue(); + if (param <= 0) { + throw ParserException("Invalid option for PRAGMA ordered_aggregate_threshold, value must be positive"); + } + return true; +} + +//===----------------------------------------------------------------------===// +// Password +//===----------------------------------------------------------------------===// +void PasswordSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + // nop +} + +void PasswordSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + // nop +} + +Value PasswordSetting::GetSetting(const ClientContext &context) { + return Value(); +} + +//===----------------------------------------------------------------------===// +// Perfect Ht Threshold +//===----------------------------------------------------------------------===// +void PerfectHtThresholdSetting::SetLocal(ClientContext &context, const Value &input) { + auto bits = input.GetValue(); + if (bits < 0 || bits > 32) { + throw ParserException("Perfect HT threshold out of range: should be within range 0 - 32"); + } + ClientConfig::GetConfig(context).perfect_ht_threshold = NumericCast(bits); +} + +Value PerfectHtThresholdSetting::GetSetting(const ClientContext &context) { + return Value::BIGINT(NumericCast(ClientConfig::GetConfig(context).perfect_ht_threshold)); +} + +//===----------------------------------------------------------------------===// +// Profile Output +//===----------------------------------------------------------------------===// +void ProfileOutputSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + auto parameter = input.ToString(); + config.profiler_save_location = parameter; +} + +void ProfileOutputSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).profiler_save_location = ClientConfig().profiler_save_location; +} + +Value ProfileOutputSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value(config.profiler_save_location); +} + +//===----------------------------------------------------------------------===// +// Profiling Mode +//===----------------------------------------------------------------------===// +void ProfilingModeSetting::SetLocal(ClientContext &context, const Value &input) { + auto parameter = StringUtil::Lower(input.ToString()); + auto &config = ClientConfig::GetConfig(context); + if (parameter == "standard") { + config.enable_profiler = true; + config.enable_detailed_profiling = false; + } else if (parameter == "detailed") { + config.enable_profiler = true; + config.enable_detailed_profiling = true; + + // add optimizer settings to the profiler settings + auto optimizer_settings = MetricsUtils::GetOptimizerMetrics(); + for (auto &setting : optimizer_settings) { + config.profiler_settings.insert(setting); + } + + // add the phase timing settings to the profiler settings + auto phase_timing_settings = MetricsUtils::GetPhaseTimingMetrics(); + for (auto &setting : phase_timing_settings) { + config.profiler_settings.insert(setting); + } + } else { + throw ParserException("Unrecognized profiling mode \"%s\", supported formats: [standard, detailed]", parameter); + } +} + +void ProfilingModeSetting::ResetLocal(ClientContext &context) { + ClientConfig::GetConfig(context).enable_profiler = ClientConfig().enable_profiler; + ClientConfig::GetConfig(context).enable_detailed_profiling = ClientConfig().enable_detailed_profiling; + ClientConfig::GetConfig(context).emit_profiler_output = ClientConfig().emit_profiler_output; + ClientConfig::GetConfig(context).profiler_settings = ClientConfig().profiler_settings; +} + +Value ProfilingModeSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + if (!config.enable_profiler) { + return Value(); + } + return Value(config.enable_detailed_profiling ? "detailed" : "standard"); +} + +//===----------------------------------------------------------------------===// +// Progress Bar Time +//===----------------------------------------------------------------------===// +void ProgressBarTimeSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + ProgressBar::SystemOverrideCheck(config); + config.wait_time = input.GetValue(); + config.enable_progress_bar = true; +} + +void ProgressBarTimeSetting::ResetLocal(ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + ProgressBar::SystemOverrideCheck(config); + config.wait_time = ClientConfig().wait_time; + config.enable_progress_bar = ClientConfig().enable_progress_bar; +} + +Value ProgressBarTimeSetting::GetSetting(const ClientContext &context) { + return Value::BIGINT(ClientConfig::GetConfig(context).wait_time); +} + +//===----------------------------------------------------------------------===// +// Schema +//===----------------------------------------------------------------------===// +void SchemaSetting::SetLocal(ClientContext &context, const Value &input) { + auto parameter = input.ToString(); + auto &client_data = ClientData::Get(context); + client_data.catalog_search_path->Set(CatalogSearchEntry::Parse(parameter), CatalogSetPathType::SET_SCHEMA); +} + +void SchemaSetting::ResetLocal(ClientContext &context) { + // FIXME: catalog_search_path is controlled by both SchemaSetting and SearchPathSetting + auto &client_data = ClientData::Get(context); + client_data.catalog_search_path->Reset(); +} + +Value SchemaSetting::GetSetting(const ClientContext &context) { + auto &client_data = ClientData::Get(context); + return client_data.catalog_search_path->GetDefault().schema; +} + +//===----------------------------------------------------------------------===// +// Search Path +//===----------------------------------------------------------------------===// +void SearchPathSetting::SetLocal(ClientContext &context, const Value &input) { + auto parameter = input.ToString(); + auto &client_data = ClientData::Get(context); + client_data.catalog_search_path->Set(CatalogSearchEntry::ParseList(parameter), CatalogSetPathType::SET_SCHEMAS); +} + +void SearchPathSetting::ResetLocal(ClientContext &context) { + // FIXME: catalog_search_path is controlled by both SchemaSetting and SearchPathSetting + auto &client_data = ClientData::Get(context); + client_data.catalog_search_path->Reset(); +} + +Value SearchPathSetting::GetSetting(const ClientContext &context) { + auto &client_data = ClientData::Get(context); + auto &set_paths = client_data.catalog_search_path->GetSetPaths(); + return Value(CatalogSearchEntry::ListToString(set_paths)); +} + +//===----------------------------------------------------------------------===// +// Secret Directory +//===----------------------------------------------------------------------===// +void SecretDirectorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + config.secret_manager->SetPersistentSecretPath(input.ToString()); +} + +void SecretDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.secret_manager->ResetPersistentSecretPath(); +} + +Value SecretDirectorySetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return config.secret_manager->PersistentSecretPath(); +} + +//===----------------------------------------------------------------------===// +// Storage Compatibility Version +//===----------------------------------------------------------------------===// +void StorageCompatibilityVersionSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto version_string = input.GetValue(); + auto serialization_compatibility = SerializationCompatibility::FromString(version_string); + config.options.serialization_compatibility = serialization_compatibility; +} + +void StorageCompatibilityVersionSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + config.options.serialization_compatibility = DBConfig().options.serialization_compatibility; +} + +Value StorageCompatibilityVersionSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + + auto &version_name = config.options.serialization_compatibility.duckdb_version; + return Value(version_name); +} + +//===----------------------------------------------------------------------===// +// Streaming Buffer Size +//===----------------------------------------------------------------------===// +void StreamingBufferSizeSetting::SetLocal(ClientContext &context, const Value &input) { + auto &config = ClientConfig::GetConfig(context); + config.streaming_buffer_size = DBConfig::ParseMemoryLimit(input.ToString()); +} + +void StreamingBufferSizeSetting::ResetLocal(ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + config.SetDefaultStreamingBufferSize(); +} + +Value StreamingBufferSizeSetting::GetSetting(const ClientContext &context) { + auto &config = ClientConfig::GetConfig(context); + return Value(StringUtil::BytesToHumanReadableString(config.streaming_buffer_size)); +} + +//===----------------------------------------------------------------------===// +// Temp Directory +//===----------------------------------------------------------------------===// +void TempDirectorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + if (!config.options.enable_external_access) { + throw PermissionException("Modifying the temp_directory has been disabled by configuration"); + } + config.options.temporary_directory = input.IsNull() ? "" : input.ToString(); + config.options.use_temporary_directory = !config.options.temporary_directory.empty(); + if (db) { + auto &buffer_manager = BufferManager::GetBufferManager(*db); + buffer_manager.SetTemporaryDirectory(config.options.temporary_directory); + } +} + +void TempDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + if (!config.options.enable_external_access) { + throw PermissionException("Modifying the temp_directory has been disabled by configuration"); + } + config.SetDefaultTempDirectory(); + config.options.use_temporary_directory = DBConfig().options.use_temporary_directory; + if (db) { + auto &buffer_manager = BufferManager::GetBufferManager(*db); + buffer_manager.SetTemporaryDirectory(config.options.temporary_directory); + } +} + +Value TempDirectorySetting::GetSetting(const ClientContext &context) { + auto &buffer_manager = BufferManager::GetBufferManager(context); + return Value(buffer_manager.GetTemporaryDirectory()); +} + +//===----------------------------------------------------------------------===// +// Threads +//===----------------------------------------------------------------------===// +void ThreadsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + auto new_val = input.GetValue(); + if (new_val < 1) { + throw SyntaxException("Must have at least 1 thread!"); + } + auto new_maximum_threads = NumericCast(new_val); + if (db) { + TaskScheduler::GetScheduler(*db).SetThreads(new_maximum_threads, config.options.external_threads); + } + config.options.maximum_threads = new_maximum_threads; +} + +void ThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + idx_t new_maximum_threads = config.GetSystemMaxThreads(*config.file_system); + if (db) { + TaskScheduler::GetScheduler(*db).SetThreads(new_maximum_threads, config.options.external_threads); + } + config.options.maximum_threads = new_maximum_threads; +} + +Value ThreadsSetting::GetSetting(const ClientContext &context) { + auto &config = DBConfig::GetConfig(context); + return Value::BIGINT(NumericCast(config.options.maximum_threads)); +} + +//===----------------------------------------------------------------------===// +// Username +//===----------------------------------------------------------------------===// +void UsernameSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { + // nop +} + +void UsernameSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { + // nop +} + +Value UsernameSetting::GetSetting(const ClientContext &context) { + return Value(); +} + +} // namespace duckdb diff --git a/src/duckdb/src/main/settings/settings.cpp b/src/duckdb/src/main/settings/settings.cpp deleted file mode 100644 index 8cdcf42e..00000000 --- a/src/duckdb/src/main/settings/settings.cpp +++ /dev/null @@ -1,2056 +0,0 @@ -#include "duckdb/main/settings.hpp" - -#include "duckdb/catalog/catalog_search_path.hpp" -#include "duckdb/common/string_util.hpp" -#include "duckdb/main/attached_database.hpp" -#include "duckdb/main/client_context.hpp" -#include "duckdb/main/client_data.hpp" -#include "duckdb/main/config.hpp" -#include "duckdb/main/database.hpp" -#include "duckdb/main/database_manager.hpp" -#include "duckdb/main/query_profiler.hpp" -#include "duckdb/main/secret/secret_manager.hpp" -#include "duckdb/parallel/task_scheduler.hpp" -#include "duckdb/parser/parser.hpp" -#include "duckdb/planner/expression_binder.hpp" -#include "duckdb/storage/buffer/buffer_pool.hpp" -#include "duckdb/storage/buffer_manager.hpp" -#include "duckdb/storage/storage_manager.hpp" - -namespace duckdb { - -const string GetDefaultUserAgent() { - return StringUtil::Format("duckdb/%s(%s)", DuckDB::LibraryVersion(), DuckDB::Platform()); -} - -//===--------------------------------------------------------------------===// -// Access Mode -//===--------------------------------------------------------------------===// -void AccessModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - if (db) { - throw InvalidInputException("Cannot change access_mode setting while database is running - it must be set when " - "opening or attaching the database"); - } - auto parameter = StringUtil::Lower(input.ToString()); - if (parameter == "automatic") { - config.options.access_mode = AccessMode::AUTOMATIC; - } else if (parameter == "read_only") { - config.options.access_mode = AccessMode::READ_ONLY; - } else if (parameter == "read_write") { - config.options.access_mode = AccessMode::READ_WRITE; - } else { - throw InvalidInputException( - "Unrecognized parameter for option ACCESS_MODE \"%s\". Expected READ_ONLY or READ_WRITE.", parameter); - } -} - -void AccessModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.access_mode = DBConfig().options.access_mode; -} - -Value AccessModeSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - switch (config.options.access_mode) { - case AccessMode::AUTOMATIC: - return "automatic"; - case AccessMode::READ_ONLY: - return "read_only"; - case AccessMode::READ_WRITE: - return "read_write"; - default: - throw InternalException("Unknown access mode setting"); - } -} - -//===--------------------------------------------------------------------===// -// Allow Persistent Secrets -//===--------------------------------------------------------------------===// -void AllowPersistentSecrets::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto value = input.DefaultCastAs(LogicalType::BOOLEAN); - config.secret_manager->SetEnablePersistentSecrets(value.GetValue()); -} - -void AllowPersistentSecrets::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.secret_manager->ResetEnablePersistentSecrets(); -} - -Value AllowPersistentSecrets::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.secret_manager->PersistentSecretsEnabled()); -} - -//===--------------------------------------------------------------------===// -// Access Mode -//===--------------------------------------------------------------------===// -void CatalogErrorMaxSchema::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.catalog_error_max_schemas = UBigIntValue::Get(input); -} - -void CatalogErrorMaxSchema::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.catalog_error_max_schemas = DBConfig().options.catalog_error_max_schemas; -} - -Value CatalogErrorMaxSchema::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::UBIGINT(config.options.catalog_error_max_schemas); -} - -//===--------------------------------------------------------------------===// -// Checkpoint Threshold -//===--------------------------------------------------------------------===// -void CheckpointThresholdSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - idx_t new_limit = DBConfig::ParseMemoryLimit(input.ToString()); - config.options.checkpoint_wal_size = new_limit; -} - -void CheckpointThresholdSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.checkpoint_wal_size = DBConfig().options.checkpoint_wal_size; -} - -Value CheckpointThresholdSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(StringUtil::BytesToHumanReadableString(config.options.checkpoint_wal_size)); -} - -//===--------------------------------------------------------------------===// -// Debug Checkpoint Abort -//===--------------------------------------------------------------------===// -void DebugCheckpointAbort::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto checkpoint_abort = StringUtil::Lower(input.ToString()); - if (checkpoint_abort == "none") { - config.options.checkpoint_abort = CheckpointAbort::NO_ABORT; - } else if (checkpoint_abort == "before_truncate") { - config.options.checkpoint_abort = CheckpointAbort::DEBUG_ABORT_BEFORE_TRUNCATE; - } else if (checkpoint_abort == "before_header") { - config.options.checkpoint_abort = CheckpointAbort::DEBUG_ABORT_BEFORE_HEADER; - } else if (checkpoint_abort == "after_free_list_write") { - config.options.checkpoint_abort = CheckpointAbort::DEBUG_ABORT_AFTER_FREE_LIST_WRITE; - } else { - throw ParserException( - "Unrecognized option for PRAGMA debug_checkpoint_abort, expected none, before_truncate or before_header"); - } -} - -void DebugCheckpointAbort::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.checkpoint_abort = DBConfig().options.checkpoint_abort; -} - -Value DebugCheckpointAbort::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(*context.db); - auto setting = config.options.checkpoint_abort; - switch (setting) { - case CheckpointAbort::NO_ABORT: - return "none"; - case CheckpointAbort::DEBUG_ABORT_BEFORE_TRUNCATE: - return "before_truncate"; - case CheckpointAbort::DEBUG_ABORT_BEFORE_HEADER: - return "before_header"; - case CheckpointAbort::DEBUG_ABORT_AFTER_FREE_LIST_WRITE: - return "after_free_list_write"; - default: - throw InternalException("Type not implemented for CheckpointAbort"); - } -} - -//===--------------------------------------------------------------------===// -// Debug Force External -//===--------------------------------------------------------------------===// -void DebugForceExternal::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).force_external = ClientConfig().force_external; -} - -void DebugForceExternal::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).force_external = input.GetValue(); -} - -Value DebugForceExternal::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).force_external); -} - -//===--------------------------------------------------------------------===// -// Debug Force NoCrossProduct -//===--------------------------------------------------------------------===// -void DebugForceNoCrossProduct::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).force_no_cross_product = ClientConfig().force_no_cross_product; -} - -void DebugForceNoCrossProduct::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).force_no_cross_product = input.GetValue(); -} - -Value DebugForceNoCrossProduct::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).force_no_cross_product); -} - -//===--------------------------------------------------------------------===// -// Debug Skip Checkpoint On Commit -//===--------------------------------------------------------------------===// -void DebugSkipCheckpointOnCommit::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter) { - config.options.debug_skip_checkpoint_on_commit = BooleanValue::Get(parameter); -} - -void DebugSkipCheckpointOnCommit::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.debug_skip_checkpoint_on_commit = DBConfig().options.debug_skip_checkpoint_on_commit; -} - -Value DebugSkipCheckpointOnCommit::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(*context.db); - return Value::BOOLEAN(config.options.debug_skip_checkpoint_on_commit); -} - -//===--------------------------------------------------------------------===// -// Ordered Aggregate Threshold -//===--------------------------------------------------------------------===// -void OrderedAggregateThreshold::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).ordered_aggregate_threshold = ClientConfig().ordered_aggregate_threshold; -} - -void OrderedAggregateThreshold::SetLocal(ClientContext &context, const Value &input) { - const auto param = input.GetValue(); - if (param <= 0) { - throw ParserException("Invalid option for PRAGMA ordered_aggregate_threshold, value must be positive"); - } - ClientConfig::GetConfig(context).ordered_aggregate_threshold = param; -} - -Value OrderedAggregateThreshold::GetSetting(const ClientContext &context) { - return Value::UBIGINT(ClientConfig::GetConfig(context).ordered_aggregate_threshold); -} - -//===--------------------------------------------------------------------===// -// Debug Window Mode -//===--------------------------------------------------------------------===// -void DebugWindowMode::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto param = StringUtil::Lower(input.ToString()); - if (param == "window") { - config.options.window_mode = WindowAggregationMode::WINDOW; - } else if (param == "combine") { - config.options.window_mode = WindowAggregationMode::COMBINE; - } else if (param == "separate") { - config.options.window_mode = WindowAggregationMode::SEPARATE; - } else { - throw ParserException("Unrecognized option for PRAGMA debug_window_mode, expected window, combine or separate"); - } -} - -void DebugWindowMode::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.window_mode = DBConfig().options.window_mode; -} - -Value DebugWindowMode::GetSetting(const ClientContext &context) { - return Value(); -} - -//===--------------------------------------------------------------------===// -// Debug AsOf Join -//===--------------------------------------------------------------------===// -void DebugAsOfIEJoin::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).force_asof_iejoin = ClientConfig().force_asof_iejoin; -} - -void DebugAsOfIEJoin::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).force_asof_iejoin = input.GetValue(); -} - -Value DebugAsOfIEJoin::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).force_asof_iejoin); -} - -//===--------------------------------------------------------------------===// -// Prefer Range Joins -//===--------------------------------------------------------------------===// -void PreferRangeJoins::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).prefer_range_joins = ClientConfig().prefer_range_joins; -} - -void PreferRangeJoins::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).prefer_range_joins = input.GetValue(); -} - -Value PreferRangeJoins::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).prefer_range_joins); -} - -//===--------------------------------------------------------------------===// -// Default Collation -//===--------------------------------------------------------------------===// -void DefaultCollationSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto parameter = StringUtil::Lower(input.ToString()); - config.options.collation = parameter; -} - -void DefaultCollationSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.collation = DBConfig().options.collation; -} - -void DefaultCollationSetting::ResetLocal(ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - config.options.collation = DBConfig().options.collation; -} - -void DefaultCollationSetting::SetLocal(ClientContext &context, const Value &input) { - auto parameter = input.ToString(); - // bind the collation to verify that it exists - ExpressionBinder::TestCollation(context, parameter); - auto &config = DBConfig::GetConfig(context); - config.options.collation = parameter; -} - -Value DefaultCollationSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(config.options.collation); -} - -//===--------------------------------------------------------------------===// -// Default Order -//===--------------------------------------------------------------------===// -void DefaultOrderSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto parameter = StringUtil::Lower(input.ToString()); - if (parameter == "ascending" || parameter == "asc") { - config.options.default_order_type = OrderType::ASCENDING; - } else if (parameter == "descending" || parameter == "desc") { - config.options.default_order_type = OrderType::DESCENDING; - } else { - throw InvalidInputException("Unrecognized parameter for option DEFAULT_ORDER \"%s\". Expected ASC or DESC.", - parameter); - } -} - -void DefaultOrderSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.default_order_type = DBConfig().options.default_order_type; -} - -Value DefaultOrderSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - switch (config.options.default_order_type) { - case OrderType::ASCENDING: - return "asc"; - case OrderType::DESCENDING: - return "desc"; - default: - throw InternalException("Unknown order type setting"); - } -} - -//===--------------------------------------------------------------------===// -// Default Null Order -//===--------------------------------------------------------------------===// -void DefaultNullOrderSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto parameter = StringUtil::Lower(input.ToString()); - - if (parameter == "nulls_first" || parameter == "nulls first" || parameter == "null first" || parameter == "first") { - config.options.default_null_order = DefaultOrderByNullType::NULLS_FIRST; - } else if (parameter == "nulls_last" || parameter == "nulls last" || parameter == "null last" || - parameter == "last") { - config.options.default_null_order = DefaultOrderByNullType::NULLS_LAST; - } else if (parameter == "nulls_first_on_asc_last_on_desc" || parameter == "sqlite" || parameter == "mysql") { - config.options.default_null_order = DefaultOrderByNullType::NULLS_FIRST_ON_ASC_LAST_ON_DESC; - } else if (parameter == "nulls_last_on_asc_first_on_desc" || parameter == "postgres") { - config.options.default_null_order = DefaultOrderByNullType::NULLS_LAST_ON_ASC_FIRST_ON_DESC; - } else { - throw ParserException("Unrecognized parameter for option NULL_ORDER \"%s\", expected either NULLS FIRST, NULLS " - "LAST, SQLite, MySQL or Postgres", - parameter); - } -} - -void DefaultNullOrderSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.default_null_order = DBConfig().options.default_null_order; -} - -Value DefaultNullOrderSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - switch (config.options.default_null_order) { - case DefaultOrderByNullType::NULLS_FIRST: - return "nulls_first"; - case DefaultOrderByNullType::NULLS_LAST: - return "nulls_last"; - case DefaultOrderByNullType::NULLS_FIRST_ON_ASC_LAST_ON_DESC: - return "nulls_first_on_asc_last_on_desc"; - case DefaultOrderByNullType::NULLS_LAST_ON_ASC_FIRST_ON_DESC: - return "nulls_last_on_asc_first_on_desc"; - default: - throw InternalException("Unknown null order setting"); - } -} - -//===--------------------------------------------------------------------===// -// Default Secret Storage -//===--------------------------------------------------------------------===// -void DefaultSecretStorage::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.secret_manager->SetDefaultStorage(input.ToString()); -} - -void DefaultSecretStorage::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.secret_manager->ResetDefaultStorage(); -} - -Value DefaultSecretStorage::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return config.secret_manager->DefaultStorage(); -} - -//===--------------------------------------------------------------------===// -// Disabled File Systems -//===--------------------------------------------------------------------===// -void DisabledFileSystemsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - if (!db) { - throw InternalException("disabled_filesystems can only be set in an active database"); - } - auto &fs = FileSystem::GetFileSystem(*db); - auto list = StringUtil::Split(input.ToString(), ","); - fs.SetDisabledFileSystems(list); -} - -void DisabledFileSystemsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - if (!db) { - throw InternalException("disabled_filesystems can only be set in an active database"); - } - auto &fs = FileSystem::GetFileSystem(*db); - fs.SetDisabledFileSystems(vector()); -} - -Value DisabledFileSystemsSetting::GetSetting(const ClientContext &context) { - return Value(""); -} - -//===--------------------------------------------------------------------===// -// Disabled Optimizer -//===--------------------------------------------------------------------===// -void DisabledOptimizersSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto list = StringUtil::Split(input.ToString(), ","); - set disabled_optimizers; - for (auto &entry : list) { - auto param = StringUtil::Lower(entry); - StringUtil::Trim(param); - if (param.empty()) { - continue; - } - disabled_optimizers.insert(OptimizerTypeFromString(param)); - } - config.options.disabled_optimizers = std::move(disabled_optimizers); -} - -void DisabledOptimizersSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.disabled_optimizers = DBConfig().options.disabled_optimizers; -} - -Value DisabledOptimizersSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - string result; - for (auto &optimizer : config.options.disabled_optimizers) { - if (!result.empty()) { - result += ","; - } - result += OptimizerTypeToString(optimizer); - } - return Value(result); -} - -//===--------------------------------------------------------------------===// -// Enable External Access -//===--------------------------------------------------------------------===// -void EnableExternalAccessSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_value = input.GetValue(); - if (db && new_value) { - throw InvalidInputException("Cannot change enable_external_access setting while database is running"); - } - config.options.enable_external_access = new_value; -} - -void EnableExternalAccessSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - if (db) { - throw InvalidInputException("Cannot change enable_external_access setting while database is running"); - } - config.options.enable_external_access = DBConfig().options.enable_external_access; -} - -Value EnableExternalAccessSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.enable_external_access); -} - -//===--------------------------------------------------------------------===// -// Enable Macro Dependencies -//===--------------------------------------------------------------------===// -void EnableMacrosDependencies::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.enable_macro_dependencies = input.GetValue(); -} - -void EnableMacrosDependencies::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.enable_macro_dependencies = DBConfig().options.enable_macro_dependencies; -} - -Value EnableMacrosDependencies::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.enable_macro_dependencies); -} - -//===--------------------------------------------------------------------===// -// Enable View Dependencies -//===--------------------------------------------------------------------===// -void EnableViewDependencies::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.enable_view_dependencies = input.GetValue(); -} - -void EnableViewDependencies::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.enable_view_dependencies = DBConfig().options.enable_view_dependencies; -} - -Value EnableViewDependencies::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.enable_view_dependencies); -} - -//===--------------------------------------------------------------------===// -// Enable FSST Vectors -//===--------------------------------------------------------------------===// -void EnableFSSTVectors::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.enable_fsst_vectors = input.GetValue(); -} - -void EnableFSSTVectors::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.enable_fsst_vectors = DBConfig().options.enable_fsst_vectors; -} - -Value EnableFSSTVectors::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.enable_fsst_vectors); -} - -//===--------------------------------------------------------------------===// -// Allow Unsigned Extensions -//===--------------------------------------------------------------------===// -void AllowUnsignedExtensionsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_value = input.GetValue(); - if (db && new_value) { - throw InvalidInputException("Cannot change allow_unsigned_extensions setting while database is running"); - } - config.options.allow_unsigned_extensions = new_value; -} - -void AllowUnsignedExtensionsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - if (db) { - throw InvalidInputException("Cannot change allow_unsigned_extensions setting while database is running"); - } - config.options.allow_unsigned_extensions = DBConfig().options.allow_unsigned_extensions; -} - -Value AllowUnsignedExtensionsSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.allow_unsigned_extensions); -} - -//===--------------------------------------------------------------------===// -// Allow Community Extensions -//===--------------------------------------------------------------------===// -void AllowCommunityExtensionsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - if (db && !config.options.allow_community_extensions) { - auto new_value = input.GetValue(); - if (new_value) { - throw InvalidInputException("Cannot upgrade allow_community_extensions setting while database is running"); - } - return; - } - auto new_value = input.GetValue(); - config.options.allow_community_extensions = new_value; -} - -void AllowCommunityExtensionsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - if (db && !config.options.allow_community_extensions) { - if (DBConfig().options.allow_community_extensions) { - throw InvalidInputException("Cannot upgrade allow_community_extensions setting while database is running"); - } - return; - } - config.options.allow_community_extensions = DBConfig().options.allow_community_extensions; -} - -Value AllowCommunityExtensionsSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.allow_community_extensions); -} - -//===--------------------------------------------------------------------===// -// Allow Extensions Metadata Mismatch -//===--------------------------------------------------------------------===// -void AllowExtensionsMetadataMismatchSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_value = input.GetValue(); - config.options.allow_extensions_metadata_mismatch = new_value; -} - -void AllowExtensionsMetadataMismatchSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.allow_extensions_metadata_mismatch = DBConfig().options.allow_extensions_metadata_mismatch; -} - -Value AllowExtensionsMetadataMismatchSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.allow_extensions_metadata_mismatch); -} - -//===--------------------------------------------------------------------===// -// Allow Unredacted Secrets -//===--------------------------------------------------------------------===// -void AllowUnredactedSecretsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_value = input.GetValue(); - if (db && new_value) { - throw InvalidInputException("Cannot change allow_unredacted_secrets setting while database is running"); - } - config.options.allow_unredacted_secrets = new_value; -} - -void AllowUnredactedSecretsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - if (db) { - throw InvalidInputException("Cannot change allow_unredacted_secrets setting while database is running"); - } - config.options.allow_unredacted_secrets = DBConfig().options.allow_unredacted_secrets; -} - -Value AllowUnredactedSecretsSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.allow_unredacted_secrets); -} - -//===--------------------------------------------------------------------===// -// Enable Object Cache -//===--------------------------------------------------------------------===// -void EnableObjectCacheSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.object_cache_enable = input.GetValue(); -} - -void EnableObjectCacheSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.object_cache_enable = DBConfig().options.object_cache_enable; -} - -Value EnableObjectCacheSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.object_cache_enable); -} - -//===--------------------------------------------------------------------===// -// Storage Compatibility Version (for serialization) -//===--------------------------------------------------------------------===// -void StorageCompatibilityVersion::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto version_string = input.GetValue(); - auto serialization_compatibility = SerializationCompatibility::FromString(version_string); - config.options.serialization_compatibility = serialization_compatibility; -} - -void StorageCompatibilityVersion::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.serialization_compatibility = DBConfig().options.serialization_compatibility; -} - -Value StorageCompatibilityVersion::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - - auto &version_name = config.options.serialization_compatibility.duckdb_version; - return Value(version_name); -} - -//===--------------------------------------------------------------------===// -// Enable HTTP Metadata Cache -//===--------------------------------------------------------------------===// -void EnableHTTPMetadataCacheSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.http_metadata_cache_enable = input.GetValue(); -} - -void EnableHTTPMetadataCacheSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.http_metadata_cache_enable = DBConfig().options.http_metadata_cache_enable; -} - -Value EnableHTTPMetadataCacheSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.http_metadata_cache_enable); -} - -//===--------------------------------------------------------------------===// -// Enable Profiling -//===--------------------------------------------------------------------===// -void EnableProfilingSetting::ResetLocal(ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - config.profiler_print_format = ClientConfig().profiler_print_format; - config.enable_profiler = ClientConfig().enable_profiler; - config.emit_profiler_output = ClientConfig().emit_profiler_output; - config.profiler_settings = ClientConfig().profiler_settings; -} - -void EnableProfilingSetting::SetLocal(ClientContext &context, const Value &input) { - auto parameter = StringUtil::Lower(input.ToString()); - - auto &config = ClientConfig::GetConfig(context); - config.enable_profiler = true; - config.emit_profiler_output = true; - config.profiler_settings = ClientConfig().profiler_settings; - - if (parameter == "json") { - config.profiler_print_format = ProfilerPrintFormat::JSON; - } else if (parameter == "query_tree") { - config.profiler_print_format = ProfilerPrintFormat::QUERY_TREE; - } else if (parameter == "query_tree_optimizer") { - config.profiler_print_format = ProfilerPrintFormat::QUERY_TREE_OPTIMIZER; - - // add optimizer settings to the profiler settings - auto optimizer_settings = MetricsUtils::GetOptimizerMetrics(); - for (auto &setting : optimizer_settings) { - config.profiler_settings.insert(setting); - } - - // add the phase timing settings to the profiler settings - auto phase_timing_settings = MetricsUtils::GetPhaseTimingMetrics(); - for (auto &setting : phase_timing_settings) { - config.profiler_settings.insert(setting); - } - } else if (parameter == "no_output") { - config.profiler_print_format = ProfilerPrintFormat::NO_OUTPUT; - config.emit_profiler_output = false; - } else { - throw ParserException( - "Unrecognized print format %s, supported formats: [json, query_tree, query_tree_optimizer, no_output]", - parameter); - } -} - -Value EnableProfilingSetting::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - if (!config.enable_profiler) { - return Value(); - } - switch (config.profiler_print_format) { - case ProfilerPrintFormat::JSON: - return Value("json"); - case ProfilerPrintFormat::QUERY_TREE: - return Value("query_tree"); - case ProfilerPrintFormat::QUERY_TREE_OPTIMIZER: - return Value("query_tree_optimizer"); - case ProfilerPrintFormat::NO_OUTPUT: - return Value("no_output"); - default: - throw InternalException("Unsupported profiler print format"); - } -} - -//===--------------------------------------------------------------------===// -// Custom Profiling Settings -//===--------------------------------------------------------------------===// - -bool IsEnabledOptimizer(MetricsType metric, const set &disabled_optimizers) { - auto matching_optimizer_type = MetricsUtils::GetOptimizerTypeByMetric(metric); - if (matching_optimizer_type != OptimizerType::INVALID && - disabled_optimizers.find(matching_optimizer_type) == disabled_optimizers.end()) { - return true; - } - return false; -} - -static profiler_settings_t FillTreeNodeSettings(unordered_map &json, - const set &disabled_optimizers) { - profiler_settings_t metrics; - - string invalid_settings; - for (auto &entry : json) { - MetricsType setting; - try { - setting = EnumUtil::FromString(StringUtil::Upper(entry.first)); - } catch (std::exception &ex) { - if (!invalid_settings.empty()) { - invalid_settings += ", "; - } - invalid_settings += entry.first; - continue; - } - if (StringUtil::Lower(entry.second) == "true" && - (!MetricsUtils::IsOptimizerMetric(setting) || IsEnabledOptimizer(setting, disabled_optimizers))) { - metrics.insert(setting); - } - } - - if (!invalid_settings.empty()) { - throw IOException("Invalid custom profiler settings: \"%s\"", invalid_settings); - } - return metrics; -} - -void AddOptimizerMetrics(profiler_settings_t &settings, const set &disabled_optimizers) { - if (settings.find(MetricsType::ALL_OPTIMIZERS) != settings.end()) { - auto optimizer_metrics = MetricsUtils::GetOptimizerMetrics(); - for (auto &metric : optimizer_metrics) { - if (IsEnabledOptimizer(metric, disabled_optimizers)) { - settings.insert(metric); - } - } - } -} - -void CustomProfilingSettings::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - - // parse the file content - unordered_map json; - try { - json = StringUtil::ParseJSONMap(input.ToString()); - } catch (std::exception &ex) { - throw IOException("Could not parse the custom profiler settings file due to incorrect JSON: \"%s\". Make sure " - "all the keys and values start with a quote. ", - input.ToString()); - } - - config.enable_profiler = true; - auto &db_config = DBConfig::GetConfig(context); - auto &disabled_optimizers = db_config.options.disabled_optimizers; - - auto settings = FillTreeNodeSettings(json, disabled_optimizers); - AddOptimizerMetrics(settings, disabled_optimizers); - config.profiler_settings = settings; -} - -void CustomProfilingSettings::ResetLocal(ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - config.enable_profiler = ClientConfig().enable_profiler; - config.profiler_settings = ProfilingInfo::DefaultSettings(); -} - -Value CustomProfilingSettings::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - - string profiling_settings_str; - for (auto &entry : config.profiler_settings) { - if (!profiling_settings_str.empty()) { - profiling_settings_str += ", "; - } - profiling_settings_str += StringUtil::Format("\"%s\": \"true\"", EnumUtil::ToString(entry)); - } - return Value(StringUtil::Format("{%s}", profiling_settings_str)); -} - -//===--------------------------------------------------------------------===// -// Custom Extension Repository -//===--------------------------------------------------------------------===// -void CustomExtensionRepository::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.custom_extension_repo = DBConfig().options.custom_extension_repo; -} - -void CustomExtensionRepository::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.custom_extension_repo = input.ToString(); -} - -Value CustomExtensionRepository::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(config.options.custom_extension_repo); -} - -//===--------------------------------------------------------------------===// -// Autoload Extension Repository -//===--------------------------------------------------------------------===// -void AutoloadExtensionRepository::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.autoinstall_extension_repo = DBConfig().options.autoinstall_extension_repo; -} - -void AutoloadExtensionRepository::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.autoinstall_extension_repo = input.ToString(); -} - -Value AutoloadExtensionRepository::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(config.options.autoinstall_extension_repo); -} - -//===--------------------------------------------------------------------===// -// Autoinstall Known Extensions -//===--------------------------------------------------------------------===// -void AutoinstallKnownExtensions::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.autoinstall_known_extensions = input.GetValue(); -} - -void AutoinstallKnownExtensions::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.autoinstall_known_extensions = DBConfig().options.autoinstall_known_extensions; -} - -Value AutoinstallKnownExtensions::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.autoinstall_known_extensions); -} -//===--------------------------------------------------------------------===// -// Autoload Known Extensions -//===--------------------------------------------------------------------===// -void AutoloadKnownExtensions::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.autoload_known_extensions = input.GetValue(); -} - -void AutoloadKnownExtensions::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.autoload_known_extensions = DBConfig().options.autoload_known_extensions; -} - -Value AutoloadKnownExtensions::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.autoload_known_extensions); -} - -//===--------------------------------------------------------------------===// -// Enable Progress Bar -//===--------------------------------------------------------------------===// -void EnableProgressBarSetting::ResetLocal(ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - ProgressBar::SystemOverrideCheck(config); - config.enable_progress_bar = ClientConfig().enable_progress_bar; -} - -void EnableProgressBarSetting::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - ProgressBar::SystemOverrideCheck(config); - config.enable_progress_bar = input.GetValue(); -} - -Value EnableProgressBarSetting::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).enable_progress_bar); -} - -//===--------------------------------------------------------------------===// -// Enable Progress Bar Print -//===--------------------------------------------------------------------===// -void EnableProgressBarPrintSetting::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - ProgressBar::SystemOverrideCheck(config); - config.print_progress_bar = input.GetValue(); -} - -void EnableProgressBarPrintSetting::ResetLocal(ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - ProgressBar::SystemOverrideCheck(config); - config.print_progress_bar = ClientConfig().print_progress_bar; -} - -Value EnableProgressBarPrintSetting::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).print_progress_bar); -} - -//===--------------------------------------------------------------------===// -// Errors As JSON -//===--------------------------------------------------------------------===// -void ErrorsAsJsonSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).errors_as_json = ClientConfig().errors_as_json; -} - -void ErrorsAsJsonSetting::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).errors_as_json = BooleanValue::Get(input); -} - -Value ErrorsAsJsonSetting::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).errors_as_json); -} - -//===--------------------------------------------------------------------===// -// Explain Output -//===--------------------------------------------------------------------===// -void ExplainOutputSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).explain_output_type = ClientConfig().explain_output_type; -} - -void ExplainOutputSetting::SetLocal(ClientContext &context, const Value &input) { - auto parameter = StringUtil::Lower(input.ToString()); - if (parameter == "all") { - ClientConfig::GetConfig(context).explain_output_type = ExplainOutputType::ALL; - } else if (parameter == "optimized_only") { - ClientConfig::GetConfig(context).explain_output_type = ExplainOutputType::OPTIMIZED_ONLY; - } else if (parameter == "physical_only") { - ClientConfig::GetConfig(context).explain_output_type = ExplainOutputType::PHYSICAL_ONLY; - } else { - throw ParserException("Unrecognized output type \"%s\", expected either ALL, OPTIMIZED_ONLY or PHYSICAL_ONLY", - parameter); - } -} - -Value ExplainOutputSetting::GetSetting(const ClientContext &context) { - switch (ClientConfig::GetConfig(context).explain_output_type) { - case ExplainOutputType::ALL: - return "all"; - case ExplainOutputType::OPTIMIZED_ONLY: - return "optimized_only"; - case ExplainOutputType::PHYSICAL_ONLY: - return "physical_only"; - default: - throw InternalException("Unrecognized explain output type"); - } -} - -//===--------------------------------------------------------------------===// -// Extension Directory Setting -//===--------------------------------------------------------------------===// -void ExtensionDirectorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.extension_directory = input.ToString(); -} - -void ExtensionDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.extension_directory = DBConfig().options.extension_directory; -} - -Value ExtensionDirectorySetting::GetSetting(const ClientContext &context) { - return Value(DBConfig::GetConfig(context).options.extension_directory); -} - -//===--------------------------------------------------------------------===// -// External Threads Setting -//===--------------------------------------------------------------------===// -void ExternalThreadsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_val = input.GetValue(); - if (new_val < 0) { - throw SyntaxException("Must have a non-negative number of external threads!"); - } - auto new_external_threads = NumericCast(new_val); - if (db) { - TaskScheduler::GetScheduler(*db).SetThreads(config.options.maximum_threads, new_external_threads); - } - config.options.external_threads = new_external_threads; -} - -void ExternalThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - idx_t new_external_threads = DBConfig().options.external_threads; - if (db) { - TaskScheduler::GetScheduler(*db).SetThreads(config.options.maximum_threads, new_external_threads); - } - config.options.external_threads = new_external_threads; -} - -Value ExternalThreadsSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BIGINT(NumericCast(config.options.external_threads)); -} - -//===--------------------------------------------------------------------===// -// File Search Path -//===--------------------------------------------------------------------===// -void FileSearchPathSetting::ResetLocal(ClientContext &context) { - auto &client_data = ClientData::Get(context); - client_data.file_search_path.clear(); -} - -void FileSearchPathSetting::SetLocal(ClientContext &context, const Value &input) { - auto parameter = input.ToString(); - auto &client_data = ClientData::Get(context); - client_data.file_search_path = parameter; -} - -Value FileSearchPathSetting::GetSetting(const ClientContext &context) { - auto &client_data = ClientData::Get(context); - return Value(client_data.file_search_path); -} - -//===--------------------------------------------------------------------===// -// Force Compression -//===--------------------------------------------------------------------===// -void ForceCompressionSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto compression = StringUtil::Lower(input.ToString()); - if (compression == "none" || compression == "auto") { - config.options.force_compression = CompressionType::COMPRESSION_AUTO; - } else { - auto compression_type = CompressionTypeFromString(compression); - if (CompressionTypeIsDeprecated(compression_type)) { - throw ParserException("Attempted to force a deprecated compression type (%s)", - CompressionTypeToString(compression_type)); - } - if (compression_type == CompressionType::COMPRESSION_AUTO) { - auto compression_types = StringUtil::Join(ListCompressionTypes(), ", "); - throw ParserException("Unrecognized option for PRAGMA force_compression, expected %s", compression_types); - } - config.options.force_compression = compression_type; - } -} - -void ForceCompressionSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.force_compression = DBConfig().options.force_compression; -} - -Value ForceCompressionSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(*context.db); - return CompressionTypeToString(config.options.force_compression); -} - -//===--------------------------------------------------------------------===// -// Force Bitpacking mode -//===--------------------------------------------------------------------===// -void ForceBitpackingModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto mode_str = StringUtil::Lower(input.ToString()); - auto mode = BitpackingModeFromString(mode_str); - if (mode == BitpackingMode::INVALID) { - throw ParserException("Unrecognized option for force_bitpacking_mode, expected none, constant, constant_delta, " - "delta_for, or for"); - } - config.options.force_bitpacking_mode = mode; -} - -void ForceBitpackingModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.force_bitpacking_mode = DBConfig().options.force_bitpacking_mode; -} - -Value ForceBitpackingModeSetting::GetSetting(const ClientContext &context) { - return Value(BitpackingModeToString(context.db->config.options.force_bitpacking_mode)); -} - -//===--------------------------------------------------------------------===// -// Home Directory -//===--------------------------------------------------------------------===// -void HomeDirectorySetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).home_directory = ClientConfig().home_directory; -} - -void HomeDirectorySetting::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - - if (!input.IsNull() && FileSystem::GetFileSystem(context).IsRemoteFile(input.ToString())) { - throw InvalidInputException("Cannot set the home directory to a remote path"); - } - - config.home_directory = input.IsNull() ? string() : input.ToString(); -} - -Value HomeDirectorySetting::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value(config.home_directory); -} - -//===--------------------------------------------------------------------===// -// HTTP Proxy -//===--------------------------------------------------------------------===// -void HTTPProxy::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.http_proxy = DBConfig().options.http_proxy; -} - -void HTTPProxy::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter) { - config.options.http_proxy = parameter.GetValue(); -} - -Value HTTPProxy::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return config.options.http_proxy; -} - -//===--------------------------------------------------------------------===// -// HTTP Proxy Username -//===--------------------------------------------------------------------===// -void HTTPProxyUsername::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.http_proxy_username = DBConfig().options.http_proxy_username; -} - -void HTTPProxyUsername::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter) { - config.options.http_proxy_username = parameter.GetValue(); -} - -Value HTTPProxyUsername::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return config.options.http_proxy_username; -} - -//===--------------------------------------------------------------------===// -// HTTP Proxy Password -//===--------------------------------------------------------------------===// -void HTTPProxyPassword::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.http_proxy_password = DBConfig().options.http_proxy_password; -} - -void HTTPProxyPassword::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value ¶meter) { - config.options.http_proxy_password = parameter.GetValue(); -} - -Value HTTPProxyPassword::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return config.options.http_proxy_password; -} - -//===--------------------------------------------------------------------===// -// Integer Division -//===--------------------------------------------------------------------===// -void IntegerDivisionSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).integer_division = ClientConfig().integer_division; -} - -void IntegerDivisionSetting::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - config.integer_division = input.GetValue(); -} - -Value IntegerDivisionSetting::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value(config.integer_division); -} - -//===--------------------------------------------------------------------===// -// Log Query Path -//===--------------------------------------------------------------------===// -void LogQueryPathSetting::ResetLocal(ClientContext &context) { - auto &client_data = ClientData::Get(context); - // TODO: verify that this does the right thing - client_data.log_query_writer = std::move(ClientData(context).log_query_writer); -} - -void LogQueryPathSetting::SetLocal(ClientContext &context, const Value &input) { - auto &client_data = ClientData::Get(context); - auto path = input.ToString(); - if (path.empty()) { - // empty path: clean up query writer - client_data.log_query_writer = nullptr; - } else { - client_data.log_query_writer = make_uniq(FileSystem::GetFileSystem(context), path, - BufferedFileWriter::DEFAULT_OPEN_FLAGS); - } -} - -Value LogQueryPathSetting::GetSetting(const ClientContext &context) { - auto &client_data = ClientData::Get(context); - return client_data.log_query_writer ? Value(client_data.log_query_writer->path) : Value(); -} - -//===--------------------------------------------------------------------===// -// Lock Configuration -//===--------------------------------------------------------------------===// -void LockConfigurationSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_value = input.GetValue(); - config.options.lock_configuration = new_value; -} - -void LockConfigurationSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.lock_configuration = DBConfig().options.lock_configuration; -} - -Value LockConfigurationSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.lock_configuration); -} - -//===--------------------------------------------------------------------===// -// IEEE Floating Points -//===--------------------------------------------------------------------===// -void IEEEFloatingPointOpsSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).ieee_floating_point_ops = ClientConfig().ieee_floating_point_ops; -} - -void IEEEFloatingPointOpsSetting::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).ieee_floating_point_ops = input.GetValue(); -} - -Value IEEEFloatingPointOpsSetting::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value::BOOLEAN(config.ieee_floating_point_ops); -} - -//===--------------------------------------------------------------------===// -// Immediate Transaction Mode -//===--------------------------------------------------------------------===// -void ImmediateTransactionModeSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.immediate_transaction_mode = BooleanValue::Get(input); -} - -void ImmediateTransactionModeSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.immediate_transaction_mode = DBConfig().options.immediate_transaction_mode; -} - -Value ImmediateTransactionModeSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.immediate_transaction_mode); -} - -//===--------------------------------------------------------------------===// -// Maximum Expression Depth -//===--------------------------------------------------------------------===// -void MaximumExpressionDepthSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).max_expression_depth = ClientConfig().max_expression_depth; -} - -void MaximumExpressionDepthSetting::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).max_expression_depth = input.GetValue(); -} - -Value MaximumExpressionDepthSetting::GetSetting(const ClientContext &context) { - return Value::UBIGINT(ClientConfig::GetConfig(context).max_expression_depth); -} - -//===--------------------------------------------------------------------===// -// Maximum Memory -//===--------------------------------------------------------------------===// -void MaximumMemorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.maximum_memory = DBConfig::ParseMemoryLimit(input.ToString()); - if (db) { - BufferManager::GetBufferManager(*db).SetMemoryLimit(config.options.maximum_memory); - } -} - -void MaximumMemorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.SetDefaultMaxMemory(); -} - -Value MaximumMemorySetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(StringUtil::BytesToHumanReadableString(config.options.maximum_memory)); -} - -//===--------------------------------------------------------------------===// -// Streaming Buffer Size -//===--------------------------------------------------------------------===// -void StreamingBufferSize::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - config.streaming_buffer_size = DBConfig::ParseMemoryLimit(input.ToString()); -} - -void StreamingBufferSize::ResetLocal(ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - config.SetDefaultStreamingBufferSize(); -} - -Value StreamingBufferSize::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value(StringUtil::BytesToHumanReadableString(config.streaming_buffer_size)); -} - -//===--------------------------------------------------------------------===// -// Maximum Temp Directory Size -//===--------------------------------------------------------------------===// -void MaximumTempDirectorySize::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto maximum_swap_space = DBConfig::ParseMemoryLimit(input.ToString()); - if (maximum_swap_space == DConstants::INVALID_INDEX) { - // We use INVALID_INDEX to indicate that the value is not set by the user - // use one lower to indicate 'unlimited' - maximum_swap_space--; - } - if (!db) { - config.options.maximum_swap_space = maximum_swap_space; - return; - } - auto &buffer_manager = BufferManager::GetBufferManager(*db); - buffer_manager.SetSwapLimit(maximum_swap_space); - config.options.maximum_swap_space = maximum_swap_space; -} - -void MaximumTempDirectorySize::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.maximum_swap_space = DConstants::INVALID_INDEX; - if (!db) { - return; - } - auto &buffer_manager = BufferManager::GetBufferManager(*db); - buffer_manager.SetSwapLimit(); -} - -Value MaximumTempDirectorySize::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - if (config.options.maximum_swap_space != DConstants::INVALID_INDEX) { - // Explicitly set by the user - return Value(StringUtil::BytesToHumanReadableString(config.options.maximum_swap_space)); - } - auto &buffer_manager = BufferManager::GetBufferManager(context); - // Database is initialized, use the setting from the temporary directory - auto max_swap = buffer_manager.GetMaxSwap(); - if (max_swap.IsValid()) { - return Value(StringUtil::BytesToHumanReadableString(max_swap.GetIndex())); - } else { - // The temp directory has not been used yet - return Value(StringUtil::BytesToHumanReadableString(0)); - } -} - -//===--------------------------------------------------------------------===// -// Maximum Vacuum Size -//===--------------------------------------------------------------------===// -void MaximumVacuumTasks::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.max_vacuum_tasks = input.GetValue(); -} - -void MaximumVacuumTasks::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.max_vacuum_tasks = DBConfig().options.max_vacuum_tasks; -} - -Value MaximumVacuumTasks::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::UBIGINT(config.options.max_vacuum_tasks); -} - -//===--------------------------------------------------------------------===// -// Merge Join Threshold -//===--------------------------------------------------------------------===// -void MergeJoinThreshold::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - config.merge_join_threshold = input.GetValue(); -} - -void MergeJoinThreshold::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).merge_join_threshold = ClientConfig().merge_join_threshold; -} - -Value MergeJoinThreshold::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value::UBIGINT(config.merge_join_threshold); -} - -//===--------------------------------------------------------------------===// -// Nested Loop Join Threshold -//===--------------------------------------------------------------------===// -void NestedLoopJoinThreshold::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - config.nested_loop_join_threshold = input.GetValue(); -} - -void NestedLoopJoinThreshold::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).nested_loop_join_threshold = ClientConfig().nested_loop_join_threshold; -} - -Value NestedLoopJoinThreshold::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value::UBIGINT(config.nested_loop_join_threshold); -} - -//===--------------------------------------------------------------------===// -// Old Implicit Casting -//===--------------------------------------------------------------------===// -void OldImplicitCasting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.old_implicit_casting = input.GetValue(); -} - -void OldImplicitCasting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.old_implicit_casting = DBConfig().options.old_implicit_casting; -} - -Value OldImplicitCasting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.old_implicit_casting); -} - -//===--------------------------------------------------------------------===// -// Old Implicit Casting -//===--------------------------------------------------------------------===// -void OrderByNonIntegerLiteral::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).order_by_non_integer_literal = ClientConfig().order_by_non_integer_literal; -} - -void OrderByNonIntegerLiteral::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).order_by_non_integer_literal = input.GetValue(); -} - -Value OrderByNonIntegerLiteral::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value::BOOLEAN(config.order_by_non_integer_literal); -} - -//===--------------------------------------------------------------------===// -// Partitioned Write Flush Threshold -//===--------------------------------------------------------------------===// -void PartitionedWriteFlushThreshold::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).partitioned_write_flush_threshold = - ClientConfig().partitioned_write_flush_threshold; -} - -void PartitionedWriteFlushThreshold::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).partitioned_write_flush_threshold = input.GetValue(); -} - -Value PartitionedWriteFlushThreshold::GetSetting(const ClientContext &context) { - return Value::UBIGINT(ClientConfig::GetConfig(context).partitioned_write_flush_threshold); -} - -//===--------------------------------------------------------------------===// -// Partitioned Write Flush Threshold -//===--------------------------------------------------------------------===// -void PartitionedWriteMaxOpenFiles::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).partitioned_write_max_open_files = ClientConfig().partitioned_write_max_open_files; -} - -void PartitionedWriteMaxOpenFiles::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).partitioned_write_max_open_files = input.GetValue(); -} - -Value PartitionedWriteMaxOpenFiles::GetSetting(const ClientContext &context) { - return Value::UBIGINT(ClientConfig::GetConfig(context).partitioned_write_max_open_files); -} - -//===--------------------------------------------------------------------===// -// Preferred block allocation size -//===--------------------------------------------------------------------===// -void DefaultBlockAllocSize::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto block_alloc_size = input.GetValue(); - Storage::VerifyBlockAllocSize(block_alloc_size); - config.options.default_block_alloc_size = block_alloc_size; -} - -void DefaultBlockAllocSize::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.default_block_alloc_size = DBConfig().options.default_block_alloc_size; -} - -Value DefaultBlockAllocSize::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::UBIGINT(config.options.default_block_alloc_size); -} - -//===--------------------------------------------------------------------===// -// Index scan percentage -//===--------------------------------------------------------------------===// -void IndexScanPercentage::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto index_scan_percentage = input.GetValue(); - if (index_scan_percentage < 0 || index_scan_percentage > 1.0) { - throw InvalidInputException("the index scan percentage must be within [0, 1]"); - } - config.options.index_scan_percentage = index_scan_percentage; -} - -void IndexScanPercentage::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.index_scan_percentage = DBConfig().options.index_scan_percentage; -} - -Value IndexScanPercentage::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::DOUBLE(config.options.index_scan_percentage); -} - -//===--------------------------------------------------------------------===// -// Index scan max count -//===--------------------------------------------------------------------===// -void IndexScanMaxCount::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto index_scan_max_count = input.GetValue(); - config.options.index_scan_max_count = index_scan_max_count; -} - -void IndexScanMaxCount::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.index_scan_max_count = DBConfig().options.index_scan_max_count; -} - -Value IndexScanMaxCount::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::UBIGINT(config.options.index_scan_max_count); -} - -//===--------------------------------------------------------------------===// -// Password Setting -//===--------------------------------------------------------------------===// -void PasswordSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - // nop -} - -void PasswordSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - // nop -} - -Value PasswordSetting::GetSetting(const ClientContext &context) { - return Value(); -} - -//===--------------------------------------------------------------------===// -// Perfect Hash Threshold -//===--------------------------------------------------------------------===// -void PerfectHashThresholdSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).perfect_ht_threshold = ClientConfig().perfect_ht_threshold; -} - -void PerfectHashThresholdSetting::SetLocal(ClientContext &context, const Value &input) { - auto bits = input.GetValue(); - if (bits < 0 || bits > 32) { - throw ParserException("Perfect HT threshold out of range: should be within range 0 - 32"); - } - ClientConfig::GetConfig(context).perfect_ht_threshold = NumericCast(bits); -} - -Value PerfectHashThresholdSetting::GetSetting(const ClientContext &context) { - return Value::BIGINT(NumericCast(ClientConfig::GetConfig(context).perfect_ht_threshold)); -} - -//===--------------------------------------------------------------------===// -// Pivot Filter Threshold -//===--------------------------------------------------------------------===// -void PivotFilterThreshold::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).pivot_filter_threshold = ClientConfig().pivot_filter_threshold; -} - -void PivotFilterThreshold::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).pivot_filter_threshold = input.GetValue(); -} - -Value PivotFilterThreshold::GetSetting(const ClientContext &context) { - return Value::BIGINT(NumericCast(ClientConfig::GetConfig(context).pivot_filter_threshold)); -} - -//===--------------------------------------------------------------------===// -// Pivot Limit -//===--------------------------------------------------------------------===// -void PivotLimitSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).pivot_limit = ClientConfig().pivot_limit; -} - -void PivotLimitSetting::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).pivot_limit = input.GetValue(); -} - -Value PivotLimitSetting::GetSetting(const ClientContext &context) { - return Value::BIGINT(NumericCast(ClientConfig::GetConfig(context).pivot_limit)); -} - -//===--------------------------------------------------------------------===// -// PreserveIdentifierCase -//===--------------------------------------------------------------------===// -void PreserveIdentifierCase::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).preserve_identifier_case = ClientConfig().preserve_identifier_case; -} - -void PreserveIdentifierCase::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).preserve_identifier_case = input.GetValue(); -} - -Value PreserveIdentifierCase::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).preserve_identifier_case); -} - -//===--------------------------------------------------------------------===// -// PreserveInsertionOrder -//===--------------------------------------------------------------------===// -void PreserveInsertionOrder::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.preserve_insertion_order = input.GetValue(); -} - -void PreserveInsertionOrder::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.preserve_insertion_order = DBConfig().options.preserve_insertion_order; -} - -Value PreserveInsertionOrder::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BOOLEAN(config.options.preserve_insertion_order); -} - -//===--------------------------------------------------------------------===// -// ExportLargeBufferArrow -//===--------------------------------------------------------------------===// -void ExportLargeBufferArrow::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto export_large_buffers_arrow = input.GetValue(); - - config.options.arrow_offset_size = export_large_buffers_arrow ? ArrowOffsetSize::LARGE : ArrowOffsetSize::REGULAR; -} - -void ExportLargeBufferArrow::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.arrow_offset_size = DBConfig().options.arrow_offset_size; -} - -Value ExportLargeBufferArrow::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - bool export_large_buffers_arrow = config.options.arrow_offset_size == ArrowOffsetSize::LARGE; - return Value::BOOLEAN(export_large_buffers_arrow); -} - -//===--------------------------------------------------------------------===// -// ArrowOutputListView -//===--------------------------------------------------------------------===// -void ArrowOutputListView::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto arrow_output_list_view = input.GetValue(); - - config.options.arrow_use_list_view = arrow_output_list_view; -} - -void ArrowOutputListView::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.arrow_use_list_view = DBConfig().options.arrow_use_list_view; -} - -Value ArrowOutputListView::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - bool arrow_output_list_view = config.options.arrow_use_list_view; - return Value::BOOLEAN(arrow_output_list_view); -} - -//===--------------------------------------------------------------------===// -// LosslessConversionArrow -//===--------------------------------------------------------------------===// -void LosslessConversionArrow::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto arrow_arrow_lossless_conversion = input.GetValue(); - - config.options.arrow_arrow_lossless_conversion = arrow_arrow_lossless_conversion; -} - -void LosslessConversionArrow::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.arrow_arrow_lossless_conversion = DBConfig().options.arrow_arrow_lossless_conversion; -} - -Value LosslessConversionArrow::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - bool arrow_arrow_lossless_conversion = config.options.arrow_arrow_lossless_conversion; - return Value::BOOLEAN(arrow_arrow_lossless_conversion); -} - -//===--------------------------------------------------------------------===// -// ProduceArrowStringView -//===--------------------------------------------------------------------===// -void ProduceArrowStringView::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.produce_arrow_string_views = input.GetValue(); -} - -void ProduceArrowStringView::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.produce_arrow_string_views = DBConfig().options.produce_arrow_string_views; -} - -Value ProduceArrowStringView::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(DBConfig::GetConfig(context).options.produce_arrow_string_views); -} - -//===--------------------------------------------------------------------===// -// ScalarSubqueryErrorOnMultipleRows -//===--------------------------------------------------------------------===// -void ScalarSubqueryErrorOnMultipleRows::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).scalar_subquery_error_on_multiple_rows = - ClientConfig().scalar_subquery_error_on_multiple_rows; -} - -void ScalarSubqueryErrorOnMultipleRows::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).scalar_subquery_error_on_multiple_rows = input.GetValue(); -} - -Value ScalarSubqueryErrorOnMultipleRows::GetSetting(const ClientContext &context) { - return Value::BOOLEAN(ClientConfig::GetConfig(context).scalar_subquery_error_on_multiple_rows); -} - -//===--------------------------------------------------------------------===// -// Profile Output -//===--------------------------------------------------------------------===// -void ProfileOutputSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).profiler_save_location = ClientConfig().profiler_save_location; -} - -void ProfileOutputSetting::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - auto parameter = input.ToString(); - config.profiler_save_location = parameter; -} - -Value ProfileOutputSetting::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - return Value(config.profiler_save_location); -} - -//===--------------------------------------------------------------------===// -// Profiling Mode -//===--------------------------------------------------------------------===// -void ProfilingModeSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).enable_profiler = ClientConfig().enable_profiler; - ClientConfig::GetConfig(context).enable_detailed_profiling = ClientConfig().enable_detailed_profiling; - ClientConfig::GetConfig(context).emit_profiler_output = ClientConfig().emit_profiler_output; - ClientConfig::GetConfig(context).profiler_settings = ClientConfig().profiler_settings; -} - -void ProfilingModeSetting::SetLocal(ClientContext &context, const Value &input) { - auto parameter = StringUtil::Lower(input.ToString()); - auto &config = ClientConfig::GetConfig(context); - if (parameter == "standard") { - config.enable_profiler = true; - config.enable_detailed_profiling = false; - } else if (parameter == "detailed") { - config.enable_profiler = true; - config.enable_detailed_profiling = true; - - // add optimizer settings to the profiler settings - auto optimizer_settings = MetricsUtils::GetOptimizerMetrics(); - for (auto &setting : optimizer_settings) { - config.profiler_settings.insert(setting); - } - - // add the phase timing settings to the profiler settings - auto phase_timing_settings = MetricsUtils::GetPhaseTimingMetrics(); - for (auto &setting : phase_timing_settings) { - config.profiler_settings.insert(setting); - } - } else { - throw ParserException("Unrecognized profiling mode \"%s\", supported formats: [standard, detailed]", parameter); - } -} - -Value ProfilingModeSetting::GetSetting(const ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - if (!config.enable_profiler) { - return Value(); - } - return Value(config.enable_detailed_profiling ? "detailed" : "standard"); -} - -//===--------------------------------------------------------------------===// -// Progress Bar Time -//===--------------------------------------------------------------------===// -void ProgressBarTimeSetting::ResetLocal(ClientContext &context) { - auto &config = ClientConfig::GetConfig(context); - ProgressBar::SystemOverrideCheck(config); - config.wait_time = ClientConfig().wait_time; - config.enable_progress_bar = ClientConfig().enable_progress_bar; -} - -void ProgressBarTimeSetting::SetLocal(ClientContext &context, const Value &input) { - auto &config = ClientConfig::GetConfig(context); - ProgressBar::SystemOverrideCheck(config); - config.wait_time = input.GetValue(); - config.enable_progress_bar = true; -} - -Value ProgressBarTimeSetting::GetSetting(const ClientContext &context) { - return Value::BIGINT(ClientConfig::GetConfig(context).wait_time); -} - -//===--------------------------------------------------------------------===// -// Schema -//===--------------------------------------------------------------------===// -void SchemaSetting::ResetLocal(ClientContext &context) { - // FIXME: catalog_search_path is controlled by both SchemaSetting and SearchPathSetting - auto &client_data = ClientData::Get(context); - client_data.catalog_search_path->Reset(); -} - -void SchemaSetting::SetLocal(ClientContext &context, const Value &input) { - auto parameter = input.ToString(); - auto &client_data = ClientData::Get(context); - client_data.catalog_search_path->Set(CatalogSearchEntry::Parse(parameter), CatalogSetPathType::SET_SCHEMA); -} - -Value SchemaSetting::GetSetting(const ClientContext &context) { - auto &client_data = ClientData::Get(context); - return client_data.catalog_search_path->GetDefault().schema; -} - -//===--------------------------------------------------------------------===// -// Search Path -//===--------------------------------------------------------------------===// -void SearchPathSetting::ResetLocal(ClientContext &context) { - // FIXME: catalog_search_path is controlled by both SchemaSetting and SearchPathSetting - auto &client_data = ClientData::Get(context); - client_data.catalog_search_path->Reset(); -} - -void SearchPathSetting::SetLocal(ClientContext &context, const Value &input) { - auto parameter = input.ToString(); - auto &client_data = ClientData::Get(context); - client_data.catalog_search_path->Set(CatalogSearchEntry::ParseList(parameter), CatalogSetPathType::SET_SCHEMAS); -} - -Value SearchPathSetting::GetSetting(const ClientContext &context) { - auto &client_data = ClientData::Get(context); - auto &set_paths = client_data.catalog_search_path->GetSetPaths(); - return Value(CatalogSearchEntry::ListToString(set_paths)); -} - -//===--------------------------------------------------------------------===// -// Secret Directory -//===--------------------------------------------------------------------===// -void SecretDirectorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.secret_manager->SetPersistentSecretPath(input.ToString()); -} - -void SecretDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.secret_manager->ResetPersistentSecretPath(); -} - -Value SecretDirectorySetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return config.secret_manager->PersistentSecretPath(); -} - -//===--------------------------------------------------------------------===// -// Temp Directory -//===--------------------------------------------------------------------===// -void TempDirectorySetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.temporary_directory = input.ToString(); - config.options.use_temporary_directory = !config.options.temporary_directory.empty(); - if (db) { - auto &buffer_manager = BufferManager::GetBufferManager(*db); - buffer_manager.SetTemporaryDirectory(config.options.temporary_directory); - } -} - -void TempDirectorySetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.SetDefaultTempDirectory(); - - config.options.use_temporary_directory = DBConfig().options.use_temporary_directory; - if (db) { - auto &buffer_manager = BufferManager::GetBufferManager(*db); - buffer_manager.SetTemporaryDirectory(config.options.temporary_directory); - } -} - -Value TempDirectorySetting::GetSetting(const ClientContext &context) { - auto &buffer_manager = BufferManager::GetBufferManager(context); - return Value(buffer_manager.GetTemporaryDirectory()); -} - -//===--------------------------------------------------------------------===// -// Threads Setting -//===--------------------------------------------------------------------===// -void ThreadsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_val = input.GetValue(); - if (new_val < 1) { - throw SyntaxException("Must have at least 1 thread!"); - } - auto new_maximum_threads = NumericCast(new_val); - if (db) { - TaskScheduler::GetScheduler(*db).SetThreads(new_maximum_threads, config.options.external_threads); - } - config.options.maximum_threads = new_maximum_threads; -} - -void ThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - idx_t new_maximum_threads = config.GetSystemMaxThreads(*config.file_system); - if (db) { - TaskScheduler::GetScheduler(*db).SetThreads(new_maximum_threads, config.options.external_threads); - } - config.options.maximum_threads = new_maximum_threads; -} - -Value ThreadsSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value::BIGINT(NumericCast(config.options.maximum_threads)); -} - -//===--------------------------------------------------------------------===// -// Username Setting -//===--------------------------------------------------------------------===// -void UsernameSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - // nop -} - -void UsernameSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - // nop -} - -Value UsernameSetting::GetSetting(const ClientContext &context) { - return Value(); -} - -//===--------------------------------------------------------------------===// -// Allocator Flush Threshold -//===--------------------------------------------------------------------===// -void AllocatorFlushThreshold::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.allocator_flush_threshold = DBConfig::ParseMemoryLimit(input.ToString()); - if (db) { - TaskScheduler::GetScheduler(*db).SetAllocatorFlushTreshold(config.options.allocator_flush_threshold); - } -} - -void AllocatorFlushThreshold::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.allocator_flush_threshold = DBConfig().options.allocator_flush_threshold; - if (db) { - TaskScheduler::GetScheduler(*db).SetAllocatorFlushTreshold(config.options.allocator_flush_threshold); - } -} - -Value AllocatorFlushThreshold::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(StringUtil::BytesToHumanReadableString(config.options.allocator_flush_threshold)); -} - -//===--------------------------------------------------------------------===// -// Allocator Bulk Deallocation Flush Threshold -//===--------------------------------------------------------------------===// -void AllocatorBulkDeallocationFlushThreshold::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.allocator_bulk_deallocation_flush_threshold = DBConfig::ParseMemoryLimit(input.ToString()); - if (db) { - BufferManager::GetBufferManager(*db).GetBufferPool().SetAllocatorBulkDeallocationFlushThreshold( - config.options.allocator_bulk_deallocation_flush_threshold); - } -} - -void AllocatorBulkDeallocationFlushThreshold::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.allocator_bulk_deallocation_flush_threshold = - DBConfig().options.allocator_bulk_deallocation_flush_threshold; - if (db) { - BufferManager::GetBufferManager(*db).GetBufferPool().SetAllocatorBulkDeallocationFlushThreshold( - config.options.allocator_bulk_deallocation_flush_threshold); - } -} - -Value AllocatorBulkDeallocationFlushThreshold::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(StringUtil::BytesToHumanReadableString(config.options.allocator_bulk_deallocation_flush_threshold)); -} - -//===--------------------------------------------------------------------===// -// Allocator Background Threads -//===--------------------------------------------------------------------===// -void AllocatorBackgroundThreadsSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - config.options.allocator_background_threads = input.GetValue(); - if (db) { - TaskScheduler::GetScheduler(*db).SetAllocatorBackgroundThreads(config.options.allocator_background_threads); - } -} - -void AllocatorBackgroundThreadsSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - config.options.allocator_background_threads = DBConfig().options.allocator_background_threads; - if (db) { - TaskScheduler::GetScheduler(*db).SetAllocatorBackgroundThreads(config.options.allocator_background_threads); - } -} - -Value AllocatorBackgroundThreadsSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(config.options.allocator_background_threads); -} - -//===--------------------------------------------------------------------===// -// DuckDBApi Setting -//===--------------------------------------------------------------------===// - -void DuckDBApiSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_value = input.GetValue(); - if (db) { - throw InvalidInputException("Cannot change duckdb_api setting while database is running"); - } - config.options.duckdb_api = new_value; -} - -void DuckDBApiSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - if (db) { - throw InvalidInputException("Cannot change duckdb_api setting while database is running"); - } - config.options.duckdb_api = GetDefaultUserAgent(); -} - -Value DuckDBApiSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(config.options.duckdb_api); -} - -//===--------------------------------------------------------------------===// -// CustomUserAgent Setting -//===--------------------------------------------------------------------===// - -void CustomUserAgentSetting::SetGlobal(DatabaseInstance *db, DBConfig &config, const Value &input) { - auto new_value = input.GetValue(); - if (db) { - throw InvalidInputException("Cannot change custom_user_agent setting while database is running"); - } - config.options.custom_user_agent = - config.options.custom_user_agent.empty() ? new_value : config.options.custom_user_agent + " " + new_value; -} - -void CustomUserAgentSetting::ResetGlobal(DatabaseInstance *db, DBConfig &config) { - if (db) { - throw InvalidInputException("Cannot change custom_user_agent setting while database is running"); - } - config.options.custom_user_agent = DBConfig().options.custom_user_agent; -} - -Value CustomUserAgentSetting::GetSetting(const ClientContext &context) { - auto &config = DBConfig::GetConfig(context); - return Value(config.options.custom_user_agent); -} - -//===--------------------------------------------------------------------===// -// EnableHTTPLogging Setting -//===--------------------------------------------------------------------===// -void EnableHTTPLoggingSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).enable_http_logging = ClientConfig().enable_http_logging; -} - -void EnableHTTPLoggingSetting::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).enable_http_logging = input.GetValue(); -} - -Value EnableHTTPLoggingSetting::GetSetting(const ClientContext &context) { - return Value(ClientConfig::GetConfig(context).enable_http_logging); -} - -//===--------------------------------------------------------------------===// -// HTTPLoggingOutput Setting -//===--------------------------------------------------------------------===// -void HTTPLoggingOutputSetting::ResetLocal(ClientContext &context) { - ClientConfig::GetConfig(context).http_logging_output = ClientConfig().http_logging_output; -} - -void HTTPLoggingOutputSetting::SetLocal(ClientContext &context, const Value &input) { - ClientConfig::GetConfig(context).http_logging_output = input.GetValue(); -} - -Value HTTPLoggingOutputSetting::GetSetting(const ClientContext &context) { - return Value(ClientConfig::GetConfig(context).http_logging_output); -} - -} // namespace duckdb diff --git a/src/duckdb/src/optimizer/build_probe_side_optimizer.cpp b/src/duckdb/src/optimizer/build_probe_side_optimizer.cpp index 91ba551a..0ff8169d 100644 --- a/src/duckdb/src/optimizer/build_probe_side_optimizer.cpp +++ b/src/duckdb/src/optimizer/build_probe_side_optimizer.cpp @@ -3,11 +3,11 @@ #include "duckdb/common/enums/join_type.hpp" #include "duckdb/common/type_visitor.hpp" #include "duckdb/common/types/row/tuple_data_layout.hpp" -#include "duckdb/execution/physical_plan_generator.hpp" #include "duckdb/planner/operator/logical_any_join.hpp" #include "duckdb/planner/operator/logical_comparison_join.hpp" #include "duckdb/planner/operator/logical_get.hpp" #include "duckdb/planner/operator/logical_join.hpp" +#include "duckdb/planner/operator/logical_order.hpp" namespace duckdb { @@ -16,7 +16,14 @@ static void GetRowidBindings(LogicalOperator &op, vector &binding auto &get = op.Cast(); auto get_bindings = get.GetColumnBindings(); auto &column_ids = get.GetColumnIds(); - if (std::find(column_ids.begin(), column_ids.end(), DConstants::INVALID_INDEX) != column_ids.end()) { + bool has_row_id = false; + for (auto &col_id : column_ids) { + if (col_id.IsRowIdColumn()) { + has_row_id = true; + break; + } + } + if (has_row_id) { for (auto &binding : get_bindings) { bindings.push_back(binding); } @@ -38,6 +45,7 @@ BuildProbeSideOptimizer::BuildProbeSideOptimizer(ClientContext &context, Logical GetRowidBindings(op, preferred_on_probe_side); op.ResolveOperatorTypes(); } + static void FlipChildren(LogicalOperator &op) { std::swap(op.children[0], op.children[1]); if (op.type == LogicalOperatorType::LOGICAL_COMPARISON_JOIN || op.type == LogicalOperatorType::LOGICAL_DELIM_JOIN) { @@ -132,7 +140,7 @@ idx_t BuildProbeSideOptimizer::ChildHasJoins(LogicalOperator &op) { return ChildHasJoins(*op.children[0]); } -void BuildProbeSideOptimizer::TryFlipJoinChildren(LogicalOperator &op) { +void BuildProbeSideOptimizer::TryFlipJoinChildren(LogicalOperator &op) const { auto &left_child = *op.children[0]; auto &right_child = *op.children[1]; const auto lhs_cardinality = left_child.has_estimated_cardinality ? left_child.estimated_cardinality @@ -188,60 +196,60 @@ void BuildProbeSideOptimizer::TryFlipJoinChildren(LogicalOperator &op) { void BuildProbeSideOptimizer::VisitOperator(LogicalOperator &op) { switch (op.type) { + case LogicalOperatorType::LOGICAL_DELIM_JOIN: { + auto &join = op.Cast(); + if (HasInverseJoinType(join.join_type)) { + FlipChildren(join); + join.delim_flipped = true; + } + break; + } case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: { auto &join = op.Cast(); - switch (join.join_type) { - case JoinType::INNER: - case JoinType::OUTER: - TryFlipJoinChildren(join); - break; - case JoinType::LEFT: - case JoinType::RIGHT: - if (join.right_projection_map.empty()) { - TryFlipJoinChildren(join); - } - break; case JoinType::SEMI: case JoinType::ANTI: { + // if the conditions have no equality, do not flip the children. + // There is no physical join operator (yet) that can do an inequality right_semi/anti join. idx_t has_range = 0; - if (!PhysicalPlanGenerator::HasEquality(join.conditions, has_range)) { - // if the conditions have no equality, do not flip the children. - // There is no physical join operator (yet) that can do a right_semi/anti join. - break; + if (op.type == LogicalOperatorType::LOGICAL_ANY_JOIN || + (op.Cast().HasEquality(has_range) && !context.config.prefer_range_joins)) { + TryFlipJoinChildren(join); } - TryFlipJoinChildren(join); break; } default: - break; + if (HasInverseJoinType(join.join_type)) { + TryFlipJoinChildren(op); + } } break; } - case LogicalOperatorType::LOGICAL_CROSS_PRODUCT: { - TryFlipJoinChildren(op); - break; - } - case LogicalOperatorType::LOGICAL_ANY_JOIN: { - auto &join = op.Cast(); - if (join.join_type == JoinType::LEFT && join.right_projection_map.empty()) { - TryFlipJoinChildren(join); - } else if (join.join_type == JoinType::INNER) { - TryFlipJoinChildren(join); + case LogicalOperatorType::LOGICAL_ANY_JOIN: + case LogicalOperatorType::LOGICAL_ASOF_JOIN: { + auto &join = op.Cast(); + // We do not yet support the RIGHT_SEMI or RIGHT_ANTI join types for these, so don't try to flip + switch (join.join_type) { + case JoinType::SEMI: + case JoinType::ANTI: + break; // RIGHT_SEMI/RIGHT_ANTI not supported yet for ANY/ASOF + default: + // We cannot flip projection maps are set (YET), but not flipping is worse than just clearing them + // They will be set in the 2nd round of ColumnLifetimeAnalyzer + join.left_projection_map.clear(); + join.right_projection_map.clear(); + TryFlipJoinChildren(op); } break; } - case LogicalOperatorType::LOGICAL_DELIM_JOIN: { - auto &join = op.Cast(); - if (HasInverseJoinType(join.join_type) && join.right_projection_map.empty()) { - FlipChildren(join); - join.delim_flipped = true; - } + case LogicalOperatorType::LOGICAL_CROSS_PRODUCT: { + TryFlipJoinChildren(op); break; } default: break; } + VisitOperatorChildren(op); } diff --git a/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp b/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp index 4df51ba7..f84225ea 100644 --- a/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp +++ b/src/duckdb/src/optimizer/column_lifetime_analyzer.cpp @@ -1,14 +1,20 @@ #include "duckdb/optimizer/column_lifetime_analyzer.hpp" +#include "duckdb/main/client_context.hpp" +#include "duckdb/optimizer/column_binding_replacer.hpp" +#include "duckdb/optimizer/optimizer.hpp" +#include "duckdb/optimizer/topn_optimizer.hpp" #include "duckdb/planner/expression/bound_columnref_expression.hpp" +#include "duckdb/planner/expression/bound_constant_expression.hpp" +#include "duckdb/planner/expression_iterator.hpp" #include "duckdb/planner/operator/logical_comparison_join.hpp" -#include "duckdb/planner/operator/logical_order.hpp" #include "duckdb/planner/operator/logical_filter.hpp" -#include "duckdb/planner/expression_iterator.hpp" +#include "duckdb/planner/operator/logical_order.hpp" +#include "duckdb/planner/operator/logical_projection.hpp" namespace duckdb { -void ColumnLifetimeAnalyzer::ExtractUnusedColumnBindings(vector bindings, +void ColumnLifetimeAnalyzer::ExtractUnusedColumnBindings(const vector &bindings, column_binding_set_t &unused_bindings) { for (idx_t i = 0; i < bindings.size(); i++) { if (column_references.find(bindings[i]) == column_references.end()) { @@ -37,15 +43,8 @@ void ColumnLifetimeAnalyzer::GenerateProjectionMap(vector binding } void ColumnLifetimeAnalyzer::StandardVisitOperator(LogicalOperator &op) { - LogicalOperatorVisitor::VisitOperatorExpressions(op); - if (op.type == LogicalOperatorType::LOGICAL_DELIM_JOIN) { - // visit the duplicate eliminated columns on the LHS, if any - auto &delim_join = op.Cast(); - for (auto &expr : delim_join.duplicate_eliminated_columns) { - VisitExpression(&expr); - } - } - LogicalOperatorVisitor::VisitOperatorChildren(op); + VisitOperatorExpressions(op); + VisitOperatorChildren(op); } void ExtractColumnBindings(Expression &expr, vector &bindings) { @@ -53,92 +52,87 @@ void ExtractColumnBindings(Expression &expr, vector &bindings) { auto &bound_ref = expr.Cast(); bindings.push_back(bound_ref.binding); } - ExpressionIterator::EnumerateChildren(expr, [&](Expression &expr) { ExtractColumnBindings(expr, bindings); }); + ExpressionIterator::EnumerateChildren(expr, [&](Expression &child) { ExtractColumnBindings(child, bindings); }); } void ColumnLifetimeAnalyzer::VisitOperator(LogicalOperator &op) { + Verify(op); + if (TopN::CanOptimize(op) && op.children[0]->type == LogicalOperatorType::LOGICAL_ORDER_BY) { + // Let's not mess with this, TopN is more important than projection maps + // TopN does not support a projection map like Order does + VisitOperatorExpressions(op); // Visit LIMIT + VisitOperatorExpressions(*op.children[0]); // Visit ORDER + StandardVisitOperator(*op.children[0]->children[0]); // Recurse into child of ORDER + return; + } switch (op.type) { case LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY: { // FIXME: groups that are not referenced can be removed from projection // recurse into the children of the aggregate - ColumnLifetimeAnalyzer analyzer; - analyzer.VisitOperatorExpressions(op); - analyzer.VisitOperator(*op.children[0]); + ColumnLifetimeAnalyzer analyzer(optimizer, root); + analyzer.StandardVisitOperator(op); return; } case LogicalOperatorType::LOGICAL_ASOF_JOIN: case LogicalOperatorType::LOGICAL_DELIM_JOIN: case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: { + auto &comp_join = op.Cast(); if (everything_referenced) { break; } - auto &comp_join = op.Cast(); - // FIXME for now, we only push into the projection map for equality (hash) joins - // FIXME: add projection to LHS as well - bool has_equality = false; - for (auto &cond : comp_join.conditions) { - if (cond.comparison == ExpressionType::COMPARE_EQUAL) { - has_equality = true; - break; - } - } - if (!has_equality) { - break; + + // FIXME: for now, we only push into the projection map for equality (hash) joins + idx_t has_range = 0; + if (!comp_join.HasEquality(has_range) || optimizer.context.config.prefer_range_joins) { + return; } - // visit current operator expressions so they are added to the referenced_columns - LogicalOperatorVisitor::VisitOperatorExpressions(op); - column_binding_set_t unused_bindings; - auto old_bindings = op.GetColumnBindings(); - ExtractUnusedColumnBindings(op.children[1]->GetColumnBindings(), unused_bindings); + column_binding_set_t lhs_unused; + column_binding_set_t rhs_unused; + ExtractUnusedColumnBindings(op.children[0]->GetColumnBindings(), lhs_unused); + ExtractUnusedColumnBindings(op.children[1]->GetColumnBindings(), rhs_unused); - // now recurse into the filter and its children - LogicalOperatorVisitor::VisitOperatorChildren(op); + StandardVisitOperator(op); // then generate the projection map - GenerateProjectionMap(op.children[1]->GetColumnBindings(), unused_bindings, comp_join.right_projection_map); - auto new_bindings = op.GetColumnBindings(); + if (op.type != LogicalOperatorType::LOGICAL_ASOF_JOIN) { + // FIXME: left_projection_map in ASOF join + GenerateProjectionMap(op.children[0]->GetColumnBindings(), lhs_unused, comp_join.left_projection_map); + } + GenerateProjectionMap(op.children[1]->GetColumnBindings(), rhs_unused, comp_join.right_projection_map); return; } case LogicalOperatorType::LOGICAL_UNION: case LogicalOperatorType::LOGICAL_EXCEPT: case LogicalOperatorType::LOGICAL_INTERSECT: - case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE: + case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE: { // for set operations/materialized CTEs we don't remove anything, just recursively visit the children // FIXME: for UNION we can remove unreferenced columns as long as everything_referenced is false (i.e. we // encounter a UNION node that is not preceded by a DISTINCT) - for (auto &child : op.children) { - ColumnLifetimeAnalyzer analyzer(true); - analyzer.VisitOperator(*child); - } + ColumnLifetimeAnalyzer analyzer(optimizer, root, true); + analyzer.StandardVisitOperator(op); return; + } case LogicalOperatorType::LOGICAL_PROJECTION: { // then recurse into the children of this projection - ColumnLifetimeAnalyzer analyzer; - analyzer.VisitOperatorExpressions(op); - analyzer.VisitOperator(*op.children[0]); + ColumnLifetimeAnalyzer analyzer(optimizer, root); + analyzer.StandardVisitOperator(op); return; } - case LogicalOperatorType::LOGICAL_ORDER_BY: - if (!everything_referenced) { - auto &order = op.Cast(); + case LogicalOperatorType::LOGICAL_ORDER_BY: { + auto &order = op.Cast(); + if (everything_referenced) { + break; + } - column_binding_set_t unused_bindings; - ExtractUnusedColumnBindings(op.children[0]->GetColumnBindings(), unused_bindings); + column_binding_set_t unused_bindings; + ExtractUnusedColumnBindings(op.children[0]->GetColumnBindings(), unused_bindings); - // now recurse into the order and its children - LogicalOperatorVisitor::VisitOperatorExpressions(op); - LogicalOperatorVisitor::VisitOperatorChildren(op); + StandardVisitOperator(op); - // then generate the projection map - GenerateProjectionMap(op.children[0]->GetColumnBindings(), unused_bindings, order.projections); - return; - } - // order by, for now reference all columns - // FIXME: for ORDER BY we remove columns below an ORDER BY, we just need to make sure that the projections are - // updated - everything_referenced = true; - break; + GenerateProjectionMap(op.children[0]->GetColumnBindings(), unused_bindings, order.projection_map); + return; + } case LogicalOperatorType::LOGICAL_DISTINCT: { // distinct, all projected columns are used for the DISTINCT computation // mark all columns as used and continue to the children @@ -151,22 +145,15 @@ void ColumnLifetimeAnalyzer::VisitOperator(LogicalOperator &op) { if (everything_referenced) { break; } - // first visit operator expressions to populate referenced columns - LogicalOperatorVisitor::VisitOperatorExpressions(op); + // filter, figure out which columns are not needed after the filter column_binding_set_t unused_bindings; ExtractUnusedColumnBindings(op.children[0]->GetColumnBindings(), unused_bindings); - // now recurse into the filter and its children - LogicalOperatorVisitor::VisitOperatorChildren(op); + StandardVisitOperator(op); // then generate the projection map GenerateProjectionMap(op.children[0]->GetColumnBindings(), unused_bindings, filter.projection_map); - auto bindings = filter.GetColumnBindings(); - - if (bindings.empty()) { - return; - } return; } @@ -176,6 +163,73 @@ void ColumnLifetimeAnalyzer::VisitOperator(LogicalOperator &op) { StandardVisitOperator(op); } +void ColumnLifetimeAnalyzer::Verify(LogicalOperator &op) { +#ifdef DEBUG + if (everything_referenced) { + return; + } + switch (op.type) { + case LogicalOperatorType::LOGICAL_ASOF_JOIN: + case LogicalOperatorType::LOGICAL_DELIM_JOIN: + case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: + AddVerificationProjection(op.children[0]); + if (op.Cast().join_type != JoinType::MARK) { // Can't mess up the mark_index + AddVerificationProjection(op.children[1]); + } + break; + case LogicalOperatorType::LOGICAL_ORDER_BY: + case LogicalOperatorType::LOGICAL_FILTER: + AddVerificationProjection(op.children[0]); + break; + default: + break; + } +#endif +} + +void ColumnLifetimeAnalyzer::AddVerificationProjection(unique_ptr &child) { + child->ResolveOperatorTypes(); + const auto child_types = child->types; + const auto child_bindings = child->GetColumnBindings(); + const auto column_count = child_bindings.size(); + + // If our child has columns [i, j], we will generate a projection like so [NULL, j, NULL, i, NULL] + const auto projection_column_count = column_count * 2 + 1; + vector> expressions; + expressions.reserve(projection_column_count); + + // First fill with all NULLs + for (idx_t col_idx = 0; col_idx < projection_column_count; col_idx++) { + expressions.emplace_back(make_uniq(Value(LogicalType::UTINYINT))); + } + + // Now place the "real" columns in their respective positions, while keeping track of which column becomes which + const auto table_index = optimizer.binder.GenerateTableIndex(); + ColumnBindingReplacer replacer; + for (idx_t col_idx = 0; col_idx < column_count; col_idx++) { + const auto &old_binding = child_bindings[col_idx]; + const auto new_col_idx = projection_column_count - 2 - col_idx * 2; + expressions[new_col_idx] = make_uniq(child_types[col_idx], old_binding); + replacer.replacement_bindings.emplace_back(old_binding, ColumnBinding(table_index, new_col_idx)); + } + + // Create a projection and swap the operators accordingly + auto projection = make_uniq(table_index, std::move(expressions)); + projection->children.emplace_back(std::move(child)); + child = std::move(projection); + + // Replace references to the old binding (higher up in the plan) with references to the new binding + replacer.stop_operator = child.get(); + replacer.VisitOperator(root); + + // Add new bindings to column_references, else they are considered "unused" + for (const auto &replacement_binding : replacer.replacement_bindings) { + if (column_references.find(replacement_binding.old_binding) != column_references.end()) { + column_references.insert(replacement_binding.new_binding); + } + } +} + unique_ptr ColumnLifetimeAnalyzer::VisitReplace(BoundColumnRefExpression &expr, unique_ptr *expr_ptr) { column_references.insert(expr.binding); diff --git a/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp b/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp index 435b94cd..991c12d8 100644 --- a/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp +++ b/src/duckdb/src/optimizer/common_aggregate_optimizer.cpp @@ -1,21 +1,37 @@ #include "duckdb/optimizer/common_aggregate_optimizer.hpp" +#include "duckdb/parser/expression_map.hpp" #include "duckdb/planner/expression/bound_columnref_expression.hpp" #include "duckdb/planner/operator/logical_aggregate.hpp" -#include "duckdb/parser/expression_map.hpp" -#include "duckdb/planner/column_binding_map.hpp" namespace duckdb { +void CommonAggregateOptimizer::StandardVisitOperator(LogicalOperator &op) { + VisitOperatorChildren(op); + if (!aggregate_map.empty()) { + VisitOperatorExpressions(op); + } +} + void CommonAggregateOptimizer::VisitOperator(LogicalOperator &op) { - LogicalOperatorVisitor::VisitOperator(op); switch (op.type) { - case LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY: - ExtractCommonAggregates(op.Cast()); - break; + case LogicalOperatorType::LOGICAL_UNION: + case LogicalOperatorType::LOGICAL_EXCEPT: + case LogicalOperatorType::LOGICAL_INTERSECT: + case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE: + case LogicalOperatorType::LOGICAL_PROJECTION: { + CommonAggregateOptimizer common_aggregate; + common_aggregate.StandardVisitOperator(op); + return; + } default: break; } + + StandardVisitOperator(op); + if (op.type == LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY) { + ExtractCommonAggregates(op.Cast()); + } } unique_ptr CommonAggregateOptimizer::VisitReplace(BoundColumnRefExpression &expr, diff --git a/src/duckdb/src/optimizer/compressed_materialization.cpp b/src/duckdb/src/optimizer/compressed_materialization.cpp index 3a819807..5e6c3076 100644 --- a/src/duckdb/src/optimizer/compressed_materialization.cpp +++ b/src/duckdb/src/optimizer/compressed_materialization.cpp @@ -1,7 +1,7 @@ #include "duckdb/optimizer/compressed_materialization.hpp" #include "duckdb/execution/expression_executor.hpp" -#include "duckdb/function/scalar/compressed_materialization_functions.hpp" +#include "duckdb/function/scalar/compressed_materialization_utils.hpp" #include "duckdb/function/scalar/operators.hpp" #include "duckdb/optimizer/column_binding_replacer.hpp" #include "duckdb/optimizer/optimizer.hpp" @@ -333,7 +333,7 @@ static Value GetIntegralRangeValue(ClientContext &context, const LogicalType &ty vector> arguments; arguments.emplace_back(make_uniq(max)); arguments.emplace_back(make_uniq(min)); - BoundFunctionExpression sub(type, SubtractFun::GetFunction(type, type), std::move(arguments), nullptr); + BoundFunctionExpression sub(type, SubtractFunction::GetFunction(type, type), std::move(arguments), nullptr); Value result; if (ExpressionExecutor::TryEvaluateScalar(context, sub, result)) { @@ -401,7 +401,7 @@ unique_ptr CompressedMaterialization::GetStringCompress(uniq const auto max_string_length = StringStats::MaxStringLength(stats); LogicalType cast_type = LogicalType::INVALID; - for (const auto &compressed_type : CompressedMaterializationFunctions::StringTypes()) { + for (const auto &compressed_type : CMUtils::StringTypes()) { if (max_string_length < GetTypeIdSize(compressed_type.InternalType())) { cast_type = compressed_type; break; diff --git a/src/duckdb/src/optimizer/cte_filter_pusher.cpp b/src/duckdb/src/optimizer/cte_filter_pusher.cpp index 01063caa..b930cae0 100644 --- a/src/duckdb/src/optimizer/cte_filter_pusher.cpp +++ b/src/duckdb/src/optimizer/cte_filter_pusher.cpp @@ -39,8 +39,10 @@ unique_ptr CTEFilterPusher::Optimize(unique_ptr().table_index), - make_uniq(op)); + auto key = to_string(op.Cast().table_index); + auto value = make_uniq(op); + + cte_info_map.insert(key, std::move(value)); } else if (op.type == LogicalOperatorType::LOGICAL_FILTER && op.children[0]->type == LogicalOperatorType::LOGICAL_CTE_REF) { // We encountered a filtered CTE ref, update the according CTE info diff --git a/src/duckdb/src/optimizer/deliminator.cpp b/src/duckdb/src/optimizer/deliminator.cpp index 2771222e..805e5660 100644 --- a/src/duckdb/src/optimizer/deliminator.cpp +++ b/src/duckdb/src/optimizer/deliminator.cpp @@ -81,13 +81,6 @@ unique_ptr Deliminator::Optimize(unique_ptr op if (candidate.joins.size() == candidate.delim_get_count && all_removed) { delim_join.type = LogicalOperatorType::LOGICAL_COMPARISON_JOIN; delim_join.duplicate_eliminated_columns.clear(); - if (all_equality_conditions) { - for (auto &cond : delim_join.conditions) { - if (IsEqualityJoinCondition(cond)) { - cond.comparison = ExpressionType::COMPARE_NOT_DISTINCT_FROM; - } - } - } } // Only DelimJoins are ever created as SINGLE joins, diff --git a/src/duckdb/src/optimizer/empty_result_pullup.cpp b/src/duckdb/src/optimizer/empty_result_pullup.cpp new file mode 100644 index 00000000..12b80963 --- /dev/null +++ b/src/duckdb/src/optimizer/empty_result_pullup.cpp @@ -0,0 +1,96 @@ +#include "duckdb/optimizer/empty_result_pullup.hpp" +#include "duckdb/common/enums/logical_operator_type.hpp" +#include "duckdb/planner/operator/logical_comparison_join.hpp" +#include "duckdb/planner/operator/logical_empty_result.hpp" +#include "duckdb/planner/operator/logical_any_join.hpp" + +namespace duckdb { + +unique_ptr EmptyResultPullup::PullUpEmptyJoinChildren(unique_ptr op) { + JoinType join_type = JoinType::INVALID; + D_ASSERT(op->type == LogicalOperatorType::LOGICAL_COMPARISON_JOIN || + op->type == LogicalOperatorType::LOGICAL_ANY_JOIN || op->type == LogicalOperatorType::LOGICAL_DELIM_JOIN || + op->type == LogicalOperatorType::LOGICAL_EXCEPT); + switch (op->type) { + case LogicalOperatorType::LOGICAL_DELIM_JOIN: + case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: + join_type = op->Cast().join_type; + break; + case LogicalOperatorType::LOGICAL_ANY_JOIN: + join_type = op->Cast().join_type; + break; + case LogicalOperatorType::LOGICAL_EXCEPT: + join_type = JoinType::ANTI; + break; + case LogicalOperatorType::LOGICAL_INTERSECT: + join_type = JoinType::SEMI; + break; + default: + break; + } + + switch (join_type) { + case JoinType::SEMI: + case JoinType::INNER: { + for (auto &child : op->children) { + if (child->type == LogicalOperatorType::LOGICAL_EMPTY_RESULT) { + op = make_uniq(std::move(op)); + break; + } + } + break; + } + // TODO: For ANTI joins, if the right child is empty, you can replace the whole join with + // the left child + case JoinType::ANTI: + case JoinType::MARK: + case JoinType::SINGLE: + case JoinType::LEFT: { + if (op->children[0]->type == LogicalOperatorType::LOGICAL_EMPTY_RESULT) { + op = make_uniq(std::move(op)); + } + break; + } + default: + break; + } + return op; +} + +unique_ptr EmptyResultPullup::Optimize(unique_ptr op) { + for (idx_t i = 0; i < op->children.size(); i++) { + op->children[i] = Optimize(std::move(op->children[i])); + } + switch (op->type) { + case LogicalOperatorType::LOGICAL_PROJECTION: + case LogicalOperatorType::LOGICAL_FILTER: + case LogicalOperatorType::LOGICAL_DISTINCT: + case LogicalOperatorType::LOGICAL_WINDOW: + case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE: + case LogicalOperatorType::LOGICAL_GET: + case LogicalOperatorType::LOGICAL_INTERSECT: + case LogicalOperatorType::LOGICAL_PIVOT: + case LogicalOperatorType::LOGICAL_ASOF_JOIN: + case LogicalOperatorType::LOGICAL_CROSS_PRODUCT: { + for (auto &child : op->children) { + if (child->type == LogicalOperatorType::LOGICAL_EMPTY_RESULT) { + op = make_uniq(std::move(op)); + break; + } + } + return op; + } + case LogicalOperatorType::LOGICAL_EXCEPT: + case LogicalOperatorType::LOGICAL_ANY_JOIN: + case LogicalOperatorType::LOGICAL_DELIM_JOIN: + case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: { + op = PullUpEmptyJoinChildren(std::move(op)); + break; + } + default: + break; + } + return op; +} + +} // namespace duckdb diff --git a/src/duckdb/src/optimizer/expression_heuristics.cpp b/src/duckdb/src/optimizer/expression_heuristics.cpp index e334db4b..72ae34b8 100644 --- a/src/duckdb/src/optimizer/expression_heuristics.cpp +++ b/src/duckdb/src/optimizer/expression_heuristics.cpp @@ -1,4 +1,5 @@ #include "duckdb/optimizer/expression_heuristics.hpp" + #include "duckdb/planner/expression/list.hpp" namespace duckdb { @@ -41,6 +42,13 @@ void ExpressionHeuristics::ReorderExpressions(vector> &ex } }; + for (idx_t i = 0; i < expressions.size(); i++) { + if (expressions[i]->CanThrow()) { + // do not allow reordering if an expression can throw + return; + } + } + vector expression_costs; expression_costs.reserve(expressions.size()); // iterate expressions, get cost for each one diff --git a/src/duckdb/src/optimizer/expression_rewriter.cpp b/src/duckdb/src/optimizer/expression_rewriter.cpp index fea861e9..a8ab2835 100644 --- a/src/duckdb/src/optimizer/expression_rewriter.cpp +++ b/src/duckdb/src/optimizer/expression_rewriter.cpp @@ -4,6 +4,7 @@ #include "duckdb/planner/expression_iterator.hpp" #include "duckdb/planner/operator/logical_filter.hpp" #include "duckdb/function/scalar/generic_functions.hpp" +#include "duckdb/function/scalar/generic_common.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" @@ -48,9 +49,11 @@ unique_ptr ExpressionRewriter::ConstantOrNull(unique_ptr unique_ptr ExpressionRewriter::ConstantOrNull(vector> children, Value value) { auto type = value.type(); + auto func = ConstantOrNullFun::GetFunction(); + func.arguments[0] = type; + func.return_type = type; children.insert(children.begin(), make_uniq(value)); - return make_uniq(type, ConstantOrNull::GetFunction(type), std::move(children), - ConstantOrNull::Bind(std::move(value))); + return make_uniq(type, func, std::move(children), ConstantOrNull::Bind(std::move(value))); } void ExpressionRewriter::VisitOperator(LogicalOperator &op) { diff --git a/src/duckdb/src/optimizer/filter_combiner.cpp b/src/duckdb/src/optimizer/filter_combiner.cpp index 91b512f8..e0a442dc 100644 --- a/src/duckdb/src/optimizer/filter_combiner.cpp +++ b/src/duckdb/src/optimizer/filter_combiner.cpp @@ -1,6 +1,7 @@ #include "duckdb/optimizer/filter_combiner.hpp" #include "duckdb/execution/expression_executor.hpp" +#include "duckdb/optimizer/optimizer.hpp" #include "duckdb/planner/expression.hpp" #include "duckdb/planner/expression/bound_between_expression.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" @@ -10,11 +11,13 @@ #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression/bound_operator_expression.hpp" -#include "duckdb/planner/table_filter.hpp" #include "duckdb/planner/filter/constant_filter.hpp" +#include "duckdb/planner/filter/in_filter.hpp" #include "duckdb/planner/filter/null_filter.hpp" +#include "duckdb/planner/filter/optional_filter.hpp" #include "duckdb/planner/filter/struct_filter.hpp" -#include "duckdb/optimizer/optimizer.hpp" +#include "duckdb/planner/table_filter.hpp" +#include "duckdb/common/operator/subtract.hpp" namespace duckdb { @@ -398,7 +401,7 @@ bool FilterCombiner::HasFilters() { // Try to extract a column index from a bound column ref expression, or a column ref recursively nested // inside of a struct_extract call. If the expression is not a column ref (or nested column ref), return false. -static bool TryGetBoundColumnIndex(const vector &column_ids, const Expression &expr, idx_t &result) { +static bool TryGetBoundColumnIndex(const vector &column_ids, const Expression &expr, ColumnIndex &result) { switch (expr.type) { case ExpressionType::BOUND_COLUMN_REF: { auto &ref = expr.Cast(); @@ -435,7 +438,45 @@ static unique_ptr PushDownFilterIntoExpr(const Expression &expr, un return inner_filter; } -TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &column_ids) { +bool FilterCombiner::ContainsNull(vector &in_list) { + for (idx_t i = 0; i < in_list.size(); i++) { + if (in_list[i].IsNull()) { + return true; + } + } + return false; +} + +bool FilterCombiner::IsDenseRange(vector &in_list) { + if (in_list.empty()) { + return true; + } + if (!in_list[0].type().IsIntegral()) { + return false; + } + // sort the input list + sort(in_list.begin(), in_list.end()); + + // check if the gap between each value is exactly one + hugeint_t prev_value = in_list[0].GetValue(); + for (idx_t i = 1; i < in_list.size(); i++) { + hugeint_t current_value = in_list[i].GetValue(); + hugeint_t diff; + if (!TrySubtractOperator::Operation(current_value, prev_value, diff)) { + // if subtract would overflow then it's certainly not 1 + return false; + } + if (diff != 1) { + // gap is not 1 - this is not a dense range + return false; + } + prev_value = current_value; + } + // dense range + return true; +} + +TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &column_ids) { TableFilterSet table_filters; //! First, we figure the filters that have constant expressions that we can push down to the table scan for (auto &constant_value : constant_values) { @@ -445,7 +486,8 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col constant_value.second[0].comparison_type == ExpressionType::COMPARE_GREATERTHAN || constant_value.second[0].comparison_type == ExpressionType::COMPARE_GREATERTHANOREQUALTO || constant_value.second[0].comparison_type == ExpressionType::COMPARE_LESSTHAN || - constant_value.second[0].comparison_type == ExpressionType::COMPARE_LESSTHANOREQUALTO) && + constant_value.second[0].comparison_type == ExpressionType::COMPARE_LESSTHANOREQUALTO || + constant_value.second[0].comparison_type == ExpressionType::COMPARE_NOTEQUAL) && (TypeIsNumeric(constant_value.second[0].constant.type().InternalType()) || constant_value.second[0].constant.type().InternalType() == PhysicalType::VARCHAR || constant_value.second[0].constant.type().InternalType() == PhysicalType::BOOL)) { @@ -461,13 +503,10 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col // Try to get the column index, either from bound column ref, or a column ref nested inside of a // struct_extract call - idx_t column_index; + ColumnIndex column_index; if (!TryGetBoundColumnIndex(column_ids, expr, column_index)) { continue; } - if (column_index == COLUMN_IDENTIFIER_ROW_ID) { - break; - } auto &constant_list = constant_values.find(equiv_set)->second; for (auto &constant_cmp : constant_list) { @@ -475,10 +514,6 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col make_uniq(constant_cmp.comparison_type, constant_cmp.constant); table_filters.PushFilter(column_index, PushDownFilterIntoExpr(expr, std::move(constant_filter))); } - // We need to apply a IS NOT NULL filter to the column expression because any comparison with NULL - // is always false. - table_filters.PushFilter(column_index, PushDownFilterIntoExpr(expr, make_uniq())); - equivalence_map.erase(filter_exp); } } @@ -498,7 +533,7 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col if (like_string.empty()) { continue; } - auto column_index = column_ids[column_ref.binding.column_index]; + auto &column_index = column_ids[column_ref.binding.column_index]; //! Here the like must be transformed to a BOUND COMPARISON geq le auto lower_bound = make_uniq(ExpressionType::COMPARE_GREATERTHANOREQUALTO, Value(like_string)); @@ -506,14 +541,13 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col auto upper_bound = make_uniq(ExpressionType::COMPARE_LESSTHAN, Value(like_string)); table_filters.PushFilter(column_index, std::move(lower_bound)); table_filters.PushFilter(column_index, std::move(upper_bound)); - table_filters.PushFilter(column_index, make_uniq()); } if (func.function.name == "~~" && func.children[0]->expression_class == ExpressionClass::BOUND_COLUMN_REF && func.children[1]->type == ExpressionType::VALUE_CONSTANT) { //! This is a like function. auto &column_ref = func.children[0]->Cast(); auto &constant_value_expr = func.children[1]->Cast(); - auto column_index = column_ids[column_ref.binding.column_index]; + auto &column_index = column_ids[column_ref.binding.column_index]; // constant value expr can sometimes be null. if so, push is not null filter, which will // make the filter unsatisfiable and return no results. if (constant_value_expr.value.IsNull()) { @@ -539,7 +573,6 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col //! Here the like can be transformed to an equality query auto equal_filter = make_uniq(ExpressionType::COMPARE_EQUAL, Value(prefix)); table_filters.PushFilter(column_index, std::move(equal_filter)); - table_filters.PushFilter(column_index, make_uniq()); } else { //! Here the like must be transformed to a BOUND COMPARISON geq le auto lower_bound = @@ -548,19 +581,17 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col auto upper_bound = make_uniq(ExpressionType::COMPARE_LESSTHAN, Value(prefix)); table_filters.PushFilter(column_index, std::move(lower_bound)); table_filters.PushFilter(column_index, std::move(upper_bound)); - table_filters.PushFilter(column_index, make_uniq()); } } } else if (remaining_filter->type == ExpressionType::COMPARE_IN) { auto &func = remaining_filter->Cast(); - vector in_values; D_ASSERT(func.children.size() > 1); if (func.children[0]->expression_class != ExpressionClass::BOUND_COLUMN_REF) { continue; } auto &column_ref = func.children[0]->Cast(); - auto column_index = column_ids[column_ref.binding.column_index]; - if (column_index == COLUMN_IDENTIFIER_ROW_ID) { + auto &column_index = column_ids[column_ref.binding.column_index]; + if (column_index.IsRowIdColumn()) { break; } //! check if all children are const expr @@ -588,47 +619,99 @@ TableFilterSet FilterCombiner::GenerateTableScanFilters(const vector &col auto bound_eq_comparison = make_uniq(ExpressionType::COMPARE_EQUAL, fst_const_value_expr.value); table_filters.PushFilter(column_index, std::move(bound_eq_comparison)); - table_filters.PushFilter(column_index, make_uniq()); - remaining_filters.erase_at(rem_fil_idx); + remaining_filters.erase_at(rem_fil_idx--); // decrement to stay on the same idx next iteration continue; } - //! Check if values are consecutive, if yes transform them to >= <= (only for integers) - // e.g. if we have x IN (1, 2, 3, 4, 5) we transform this into x >= 1 AND x <= 5 if (!type.IsIntegral()) { continue; } - + //! Check if values are consecutive, if yes transform them to >= <= (only for integers) + // e.g. if we have x IN (1, 2, 3, 4, 5) we transform this into x >= 1 AND x <= 5 + vector in_list; for (idx_t i = 1; i < func.children.size(); i++) { auto &const_value_expr = func.children[i]->Cast(); D_ASSERT(!const_value_expr.value.IsNull()); - in_values.push_back(const_value_expr.value.GetValue()); + in_list.push_back(const_value_expr.value); } - if (in_values.empty()) { - continue; + if (IsDenseRange(in_list)) { + // dense range! turn this into x >= min AND x <= max + // IsDenseRange sorts in_list, so the front element is the min and the back element is the max + auto lower_bound = + make_uniq(ExpressionType::COMPARE_GREATERTHANOREQUALTO, std::move(in_list.front())); + auto upper_bound = + make_uniq(ExpressionType::COMPARE_LESSTHANOREQUALTO, std::move(in_list.back())); + table_filters.PushFilter(column_index, std::move(lower_bound)); + table_filters.PushFilter(column_index, std::move(upper_bound)); + + remaining_filters.erase_at(rem_fil_idx--); // decrement to stay on the same idx next iteration + } else { + // if this is not a dense range we can push a zone-map filter + auto optional_filter = make_uniq(); + auto in_filter = make_uniq(std::move(in_list)); + optional_filter->child_filter = std::move(in_filter); + table_filters.PushFilter(column_index, std::move(optional_filter)); } + } + } - sort(in_values.begin(), in_values.end()); + for (idx_t rem_fil_idx = 0; rem_fil_idx < remaining_filters.size(); rem_fil_idx++) { + auto &remaining_filter = remaining_filters[rem_fil_idx]; + if (remaining_filter->expression_class == ExpressionClass::BOUND_CONJUNCTION) { + auto &conj = remaining_filter->Cast(); + if (conj.type == ExpressionType::CONJUNCTION_OR) { + optional_idx column_id; + auto optional_filter = make_uniq(); + auto conj_filter = make_uniq(); + for (auto &child : conj.children) { + if (child->GetExpressionClass() != ExpressionClass::BOUND_COMPARISON) { + column_id.SetInvalid(); + break; + } + optional_ptr column_ref; + optional_ptr const_val; + auto &comp = child->Cast(); + bool invert = false; + if (comp.left->expression_class == ExpressionClass::BOUND_COLUMN_REF && + comp.right->expression_class == ExpressionClass::BOUND_CONSTANT) { + column_ref = comp.left->Cast(); + const_val = comp.right->Cast(); + } else if (comp.left->expression_class == ExpressionClass::BOUND_CONSTANT && + comp.right->expression_class == ExpressionClass::BOUND_COLUMN_REF) { + column_ref = comp.right->Cast(); + const_val = comp.left->Cast(); + invert = true; + } else { + // child of OR filter is not simple so we do not push the or filter down at all + column_id.SetInvalid(); + break; + } - bool can_simplify_in_clause = true; - for (idx_t in_val_idx = 1; in_val_idx < in_values.size(); in_val_idx++) { - if (in_values[in_val_idx] - in_values[in_val_idx - 1] > 1) { - can_simplify_in_clause = false; - break; + if (!column_id.IsValid()) { + auto &col_id = column_ids[column_ref->binding.column_index]; + if (col_id.IsRowIdColumn()) { + break; + } + column_id = col_id.GetPrimaryIndex(); + } else if (column_id.GetIndex() != column_ids[column_ref->binding.column_index].GetPrimaryIndex()) { + column_id.SetInvalid(); + break; + } + + if (const_val->value.type().IsTemporal() || + const_val->value.type().id() == LogicalTypeId::VARCHAR) { + column_id.SetInvalid(); + break; + } + auto comparison_type = invert ? FlipComparisonExpression(comp.type) : comp.type; + auto const_filter = make_uniq(comparison_type, const_val->value); + conj_filter->child_filters.push_back(std::move(const_filter)); + } + if (column_id.IsValid()) { + optional_filter->child_filter = std::move(conj_filter); + table_filters.PushFilter(ColumnIndex(column_id.GetIndex()), std::move(optional_filter)); } } - if (!can_simplify_in_clause) { - continue; - } - auto lower_bound = make_uniq(ExpressionType::COMPARE_GREATERTHANOREQUALTO, - Value::Numeric(type, in_values.front())); - auto upper_bound = make_uniq(ExpressionType::COMPARE_LESSTHANOREQUALTO, - Value::Numeric(type, in_values.back())); - table_filters.PushFilter(column_index, std::move(lower_bound)); - table_filters.PushFilter(column_index, std::move(upper_bound)); - table_filters.PushFilter(column_index, make_uniq()); - - remaining_filters.erase_at(rem_fil_idx); } } diff --git a/src/duckdb/src/optimizer/filter_pushdown.cpp b/src/duckdb/src/optimizer/filter_pushdown.cpp index 0744c670..3440e657 100644 --- a/src/duckdb/src/optimizer/filter_pushdown.cpp +++ b/src/duckdb/src/optimizer/filter_pushdown.cpp @@ -1,5 +1,4 @@ #include "duckdb/optimizer/filter_pushdown.hpp" - #include "duckdb/optimizer/filter_combiner.hpp" #include "duckdb/optimizer/optimizer.hpp" #include "duckdb/planner/expression_iterator.hpp" @@ -15,6 +14,7 @@ using Filter = FilterPushdown::Filter; void FilterPushdown::CheckMarkToSemi(LogicalOperator &op, unordered_set &table_bindings) { switch (op.type) { + case LogicalOperatorType::LOGICAL_DELIM_JOIN: case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: { auto &join = op.Cast(); if (join.join_type != JoinType::MARK) { @@ -32,7 +32,6 @@ void FilterPushdown::CheckMarkToSemi(LogicalOperator &op, unordered_set & case LogicalOperatorType::LOGICAL_PROJECTION: { // when we encounter a projection, replace the table_bindings with // the tables in the projection - auto plan_bindings = op.GetColumnBindings(); auto &proj = op.Cast(); auto proj_bindings = proj.GetColumnBindings(); unordered_set new_table_bindings; @@ -41,8 +40,8 @@ void FilterPushdown::CheckMarkToSemi(LogicalOperator &op, unordered_set & auto &expr = proj.expressions.at(col_index); vector bindings_to_keep; ExpressionIterator::EnumerateExpression(expr, [&](Expression &child) { - if (expr->expression_class == ExpressionClass::BOUND_COLUMN_REF) { - auto &col_ref = expr->Cast(); + if (child.expression_class == ExpressionClass::BOUND_COLUMN_REF) { + auto &col_ref = child.Cast(); bindings_to_keep.push_back(col_ref.binding); } }); @@ -93,15 +92,22 @@ unique_ptr FilterPushdown::Rewrite(unique_ptr // we can just push directly through these operations without any rewriting op->children[0] = Rewrite(std::move(op->children[0])); return op; - case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE: + case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE: { + // we can't push filters into the materialized CTE (LHS), but we do want to recurse into it + FilterPushdown pushdown(optimizer, convert_mark_joins); + op->children[0] = pushdown.Rewrite(std::move(op->children[0])); + // we can push filters into the rest of the query plan (RHS) op->children[1] = Rewrite(std::move(op->children[1])); return op; + } case LogicalOperatorType::LOGICAL_GET: return PushdownGet(std::move(op)); case LogicalOperatorType::LOGICAL_LIMIT: return PushdownLimit(std::move(op)); case LogicalOperatorType::LOGICAL_WINDOW: return PushdownWindow(std::move(op)); + case LogicalOperatorType::LOGICAL_UNNEST: + return PushdownUnnest(std::move(op)); default: return FinishPushdown(std::move(op)); } @@ -116,7 +122,7 @@ unique_ptr FilterPushdown::PushdownJoin(unique_ptrtype == LogicalOperatorType::LOGICAL_ASOF_JOIN || op->type == LogicalOperatorType::LOGICAL_ANY_JOIN || op->type == LogicalOperatorType::LOGICAL_DELIM_JOIN); auto &join = op->Cast(); - if (!join.left_projection_map.empty() || !join.right_projection_map.empty()) { + if (join.HasProjectionMap()) { // cannot push down further otherwise the projection maps won't be preserved return FinishPushdown(std::move(op)); } @@ -127,6 +133,10 @@ unique_ptr FilterPushdown::PushdownJoin(unique_ptrtype == LogicalOperatorType::LOGICAL_ASOF_JOIN) { + return PushdownLeftJoin(std::move(op), left_bindings, right_bindings); + } return PushdownInnerJoin(std::move(op), left_bindings, right_bindings); case JoinType::LEFT: return PushdownLeftJoin(std::move(op), left_bindings, right_bindings); diff --git a/src/duckdb/src/optimizer/in_clause_rewriter.cpp b/src/duckdb/src/optimizer/in_clause_rewriter.cpp index 36ddb11b..260179af 100644 --- a/src/duckdb/src/optimizer/in_clause_rewriter.cpp +++ b/src/duckdb/src/optimizer/in_clause_rewriter.cpp @@ -6,15 +6,24 @@ #include "duckdb/planner/expression/bound_operator_expression.hpp" #include "duckdb/planner/operator/logical_column_data_get.hpp" #include "duckdb/planner/operator/logical_comparison_join.hpp" +#include "duckdb/planner/operator/logical_filter.hpp" +#include "duckdb/planner/operator/logical_get.hpp" #include "duckdb/execution/expression_executor.hpp" namespace duckdb { unique_ptr InClauseRewriter::Rewrite(unique_ptr op) { - if (op->children.size() == 1) { + switch (op->type) { + case LogicalOperatorType::LOGICAL_PROJECTION: + case LogicalOperatorType::LOGICAL_FILTER: { + current_op = op.get(); root = std::move(op->children[0]); VisitOperatorExpressions(*op); op->children[0] = std::move(root); + break; + } + default: + break; } for (auto &child : op->children) { @@ -104,6 +113,19 @@ unique_ptr InClauseRewriter::VisitReplace(BoundOperatorExpression &e join->conditions.push_back(std::move(cond)); root = std::move(join); + if (current_op->type == LogicalOperatorType::LOGICAL_FILTER) { + // project out the mark index again + auto &filter = current_op->Cast(); + if (filter.projection_map.empty()) { + auto child_bindings = root->GetColumnBindings(); + for (idx_t i = 0; i < child_bindings.size(); i++) { + if (child_bindings[i].table_index != chunk_index) { + filter.projection_map.push_back(i); + } + } + } + } + // we replace the original subquery with a BoundColumnRefExpression referring to the mark column unique_ptr result = make_uniq("IN (...)", LogicalType::BOOLEAN, ColumnBinding(chunk_index, 0)); diff --git a/src/duckdb/src/optimizer/join_filter_pushdown_optimizer.cpp b/src/duckdb/src/optimizer/join_filter_pushdown_optimizer.cpp index a023121d..8a68c9ca 100644 --- a/src/duckdb/src/optimizer/join_filter_pushdown_optimizer.cpp +++ b/src/duckdb/src/optimizer/join_filter_pushdown_optimizer.cpp @@ -1,20 +1,151 @@ #include "duckdb/optimizer/join_filter_pushdown_optimizer.hpp" -#include "duckdb/planner/operator/logical_comparison_join.hpp" -#include "duckdb/planner/operator/logical_get.hpp" -#include "duckdb/planner/operator/logical_projection.hpp" + #include "duckdb/execution/operator/join/join_filter_pushdown.hpp" -#include "duckdb/planner/expression/bound_columnref_expression.hpp" -#include "duckdb/core_functions/aggregate/distributive_functions.hpp" -#include "duckdb/optimizer/optimizer.hpp" -#include "duckdb/function/function_binder.hpp" #include "duckdb/execution/operator/join/physical_comparison_join.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" +#include "duckdb/function/function_binder.hpp" +#include "duckdb/optimizer/optimizer.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" +#include "duckdb/planner/expression/bound_columnref_expression.hpp" +#include "duckdb/planner/operator/logical_aggregate.hpp" +#include "duckdb/planner/operator/logical_comparison_join.hpp" +#include "duckdb/planner/operator/logical_get.hpp" +#include "duckdb/planner/operator/logical_projection.hpp" +#include "duckdb/planner/operator/logical_set_operation.hpp" +#include "duckdb/planner/operator/logical_unnest.hpp" namespace duckdb { JoinFilterPushdownOptimizer::JoinFilterPushdownOptimizer(Optimizer &optimizer) : optimizer(optimizer) { } +bool PushdownJoinFilterExpression(Expression &expr, JoinFilterPushdownColumn &filter) { + if (expr.type != ExpressionType::BOUND_COLUMN_REF) { + // not a simple column ref - bail-out + return false; + } + // column-ref - pass through the new column binding + auto &colref = expr.Cast(); + filter.probe_column_index = colref.binding; + return true; +} + +void JoinFilterPushdownOptimizer::GetPushdownFilterTargets(LogicalOperator &op, + vector columns, + vector &targets) { + auto &probe_child = op; + switch (probe_child.type) { + case LogicalOperatorType::LOGICAL_LIMIT: + case LogicalOperatorType::LOGICAL_FILTER: + case LogicalOperatorType::LOGICAL_ORDER_BY: + case LogicalOperatorType::LOGICAL_TOP_N: + case LogicalOperatorType::LOGICAL_DISTINCT: + case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: + case LogicalOperatorType::LOGICAL_CROSS_PRODUCT: + // does not affect probe side - recurse into left child + // FIXME: we can probably recurse into more operators here (e.g. window, unnest) + GetPushdownFilterTargets(*probe_child.children[0], std::move(columns), targets); + break; + case LogicalOperatorType::LOGICAL_UNNEST: { + auto &unnest = probe_child.Cast(); + // check if the filters apply to the unnest index + for (auto &filter : columns) { + if (filter.probe_column_index.table_index == unnest.unnest_index) { + // the filter applies to the unnest index - bail out + return; + } + } + GetPushdownFilterTargets(*probe_child.children[0], std::move(columns), targets); + break; + } + case LogicalOperatorType::LOGICAL_EXCEPT: + case LogicalOperatorType::LOGICAL_INTERSECT: + case LogicalOperatorType::LOGICAL_UNION: { + auto &setop = probe_child.Cast(); + // union + // check if the filters apply to this table index + for (auto &filter : columns) { + if (filter.probe_column_index.table_index != setop.table_index) { + // the filter does not apply to the union - bail-out + return; + } + } + for (auto &child : probe_child.children) { + // rewrite the filters for each of the children of the union + vector child_columns; + auto child_bindings = child->GetColumnBindings(); + child_columns.reserve(columns.size()); + for (auto &child_column : columns) { + JoinFilterPushdownColumn new_col; + new_col.probe_column_index = child_bindings[child_column.probe_column_index.column_index]; + child_columns.push_back(new_col); + } + // then recurse into the child + GetPushdownFilterTargets(*child, std::move(child_columns), targets); + + // for EXCEPT we can only recurse into the first (left) child + if (probe_child.type == LogicalOperatorType::LOGICAL_EXCEPT) { + break; + } + } + break; + } + case LogicalOperatorType::LOGICAL_GET: { + // found LogicalGet + auto &get = probe_child.Cast(); + if (!get.function.filter_pushdown) { + // filter pushdown is not supported - no need to consider this node + return; + } + for (auto &filter : columns) { + if (filter.probe_column_index.table_index != get.table_index) { + // the filter does not apply to the probe side here - bail-out + return; + } + } + targets.emplace_back(get, std::move(columns)); + break; + } + case LogicalOperatorType::LOGICAL_PROJECTION: { + // projection - check if we all of the expressions are only column references + auto &proj = probe_child.Cast(); + for (auto &filter : columns) { + if (filter.probe_column_index.table_index != proj.table_index) { + // index does not belong to this projection - bail-out + return; + } + auto &expr = *proj.expressions[filter.probe_column_index.column_index]; + if (!PushdownJoinFilterExpression(expr, filter)) { + // cannot push through this expression - bail-out + return; + } + } + GetPushdownFilterTargets(*probe_child.children[0], std::move(columns), targets); + break; + } + case LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY: { + // we can push filters through aggregates IF they all point to groups + auto &aggr = probe_child.Cast(); + for (auto &filter : columns) { + if (filter.probe_column_index.table_index != aggr.group_index) { + // index does not refer to a group - bail-out + return; + } + auto &expr = *aggr.groups[filter.probe_column_index.column_index]; + if (!PushdownJoinFilterExpression(expr, filter)) { + // cannot push through this expression - bail-out + return; + } + } + GetPushdownFilterTargets(*probe_child.children[0], std::move(columns), targets); + break; + } + default: + // unsupported child type + break; + } +} + void JoinFilterPushdownOptimizer::GenerateJoinFilters(LogicalComparisonJoin &join) { switch (join.join_type) { case JoinType::MARK: @@ -35,6 +166,8 @@ void JoinFilterPushdownOptimizer::GenerateJoinFilters(LogicalComparisonJoin &joi // re-order conditions here - otherwise this will happen later on and invalidate the indexes we generate PhysicalComparisonJoin::ReorderConditions(join.conditions); auto pushdown_info = make_uniq(); + + vector pushdown_columns; for (idx_t cond_idx = 0; cond_idx < join.conditions.size(); cond_idx++) { auto &cond = join.conditions[cond_idx]; if (cond.comparison != ExpressionType::COMPARE_EQUAL) { @@ -54,91 +187,60 @@ void JoinFilterPushdownOptimizer::GenerateJoinFilters(LogicalComparisonJoin &joi continue; } JoinFilterPushdownColumn pushdown_col; - pushdown_col.join_condition = cond_idx; - auto &colref = cond.left->Cast(); pushdown_col.probe_column_index = colref.binding; - pushdown_info->filters.push_back(pushdown_col); + pushdown_columns.push_back(pushdown_col); + + pushdown_info->join_condition.push_back(cond_idx); } - if (pushdown_info->filters.empty()) { + if (pushdown_columns.empty()) { // could not generate any filters - bail-out return; } - // find the child LogicalGet (if possible) - reference probe_source(*join.children[0]); - while (probe_source.get().type != LogicalOperatorType::LOGICAL_GET) { - auto &probe_child = probe_source.get(); - switch (probe_child.type) { - case LogicalOperatorType::LOGICAL_LIMIT: - case LogicalOperatorType::LOGICAL_FILTER: - case LogicalOperatorType::LOGICAL_ORDER_BY: - case LogicalOperatorType::LOGICAL_TOP_N: - case LogicalOperatorType::LOGICAL_DISTINCT: - case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: - case LogicalOperatorType::LOGICAL_CROSS_PRODUCT: - // does not affect probe side - continue into left child - // FIXME: we can probably recurse into more operators here (e.g. window, set operation, unnest) - probe_source = *probe_child.children[0]; - break; - case LogicalOperatorType::LOGICAL_PROJECTION: { - // projection - check if we all of the expressions are only column references - auto &proj = probe_source.get().Cast(); - for (auto &filter : pushdown_info->filters) { - if (filter.probe_column_index.table_index != proj.table_index) { - // index does not belong to this projection - bail-out - return; - } - auto &expr = *proj.expressions[filter.probe_column_index.column_index]; - if (expr.type != ExpressionType::BOUND_COLUMN_REF) { - // not a simple column ref - bail-out - return; - } - // column-ref - pass through the new column binding - auto &colref = expr.Cast(); - filter.probe_column_index = colref.binding; - } - probe_source = *probe_child.children[0]; - break; - } - default: - // unsupported child type - return; + // recurse the query tree to find the LogicalGets in which we can push the filter info + vector pushdown_filter_targets; + GetPushdownFilterTargets(*join.children[0], pushdown_columns, pushdown_filter_targets); + for (auto &target : pushdown_filter_targets) { + auto &get = target.get; + // pushdown info can be applied to this LogicalGet - push the dynamic table filter set + if (!get.dynamic_filters) { + get.dynamic_filters = make_shared_ptr(); } + + JoinFilterPushdownFilter get_filter; + get_filter.dynamic_filters = get.dynamic_filters; + get_filter.columns = std::move(target.columns); + pushdown_info->probe_info.push_back(std::move(get_filter)); } - // found the LogicalGet - auto &get = probe_source.get().Cast(); - if (!get.function.filter_pushdown) { - // filter pushdown is not supported - bail-out + + // Even if we cannot find any table sources in which we can push down filters, + // we still initialize the aggregate states so that we have the possibility of doing a perfect hash join + const auto compute_aggregates_anyway = join.join_type == JoinType::INNER && join.conditions.size() == 1 && + pushdown_info->join_condition.size() == 1 && + TypeIsIntegral(join.conditions[0].right->return_type.InternalType()); + if (pushdown_info->probe_info.empty() && !compute_aggregates_anyway) { + // no table sources found in which we can push down filters return; } - for (auto &filter : pushdown_info->filters) { - if (filter.probe_column_index.table_index != get.table_index) { - // the filter does not apply to the probe side here - bail-out - return; - } - } - // pushdown can be performed - // set up the dynamic filters (if we don't have any yet) - if (!get.dynamic_filters) { - get.dynamic_filters = make_shared_ptr(); - } - pushdown_info->dynamic_filters = get.dynamic_filters; // set up the min/max aggregates for each of the filters vector aggr_functions; - aggr_functions.push_back(MinFun::GetFunction()); - aggr_functions.push_back(MaxFun::GetFunction()); - for (auto &filter : pushdown_info->filters) { + aggr_functions.push_back(MinFunction::GetFunction()); + aggr_functions.push_back(MaxFunction::GetFunction()); + for (auto &join_condition : pushdown_info->join_condition) { for (auto &aggr : aggr_functions) { FunctionBinder function_binder(optimizer.GetContext()); vector> aggr_children; - aggr_children.push_back(join.conditions[filter.join_condition].right->Copy()); + aggr_children.push_back(join.conditions[join_condition].right->Copy()); auto aggr_expr = function_binder.BindAggregateFunction(aggr, std::move(aggr_children), nullptr, AggregateType::NON_DISTINCT); + if (aggr_expr->children.size() != 1) { + // min/max with collation - not supported + return; + } pushdown_info->min_max_aggregates.push_back(std::move(aggr_expr)); } } - // set up the filter pushdown in the join itself join.filter_pushdown = std::move(pushdown_info); } diff --git a/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp b/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp index 7b3151d4..fb65c0ba 100644 --- a/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp +++ b/src/duckdb/src/optimizer/join_order/cardinality_estimator.cpp @@ -2,10 +2,10 @@ #include "duckdb/common/enums/join_type.hpp" #include "duckdb/common/limits.hpp" #include "duckdb/common/printer.hpp" -#include "duckdb/planner/expression_iterator.hpp" #include "duckdb/function/table/table_scan.hpp" #include "duckdb/optimizer/join_order/join_node.hpp" #include "duckdb/optimizer/join_order/query_graph_manager.hpp" +#include "duckdb/planner/expression_iterator.hpp" #include "duckdb/planner/operator/logical_comparison_join.hpp" #include "duckdb/storage/data_table.hpp" @@ -291,10 +291,18 @@ DenomInfo CardinalityEstimator::GetDenominator(JoinRelationSet &set) { // and we start to choose the filters that join relations in the set. // edges are guaranteed to be in order of largest tdom to smallest tdom. + unordered_set unused_edge_tdoms; auto edges = GetEdges(relations_to_tdoms, set); for (auto &edge : edges) { - auto subgraph_connections = SubgraphsConnectedByEdge(edge, subgraphs); + if (subgraphs.size() == 1 && subgraphs.at(0).relations->ToString() == set.ToString()) { + // the first subgraph has connected all the desired relations, just skip the rest of the edges + if (edge.has_tdom_hll) { + unused_edge_tdoms.insert(edge.tdom_hll); + } + continue; + } + auto subgraph_connections = SubgraphsConnectedByEdge(edge, subgraphs); if (subgraph_connections.empty()) { // create a subgraph out of left and right, then merge right into left and add left to subgraphs. // this helps cover a case where there are no subgraphs yet, and the only join filter is a SEMI JOIN @@ -342,13 +350,11 @@ DenomInfo CardinalityEstimator::GetDenominator(JoinRelationSet &set) { [](Subgraph2Denominator &s) { return !s.relations; }); subgraphs.erase(remove_start, subgraphs.end()); } - if (subgraphs.size() == 1 && subgraphs.at(0).relations->ToString() == set.ToString()) { - // the first subgraph has connected all the desired relations, no need to iterate - // through the rest of the edges. - break; - } } + // Slight penalty to cardinality for unused edges + auto denom_multiplier = 1.0 + static_cast(unused_edge_tdoms.size()); + // It's possible cross-products were added and are not present in the filters in the relation_2_tdom // structures. When that's the case, merge all remaining subgraphs. if (subgraphs.size() > 1) { @@ -367,7 +373,7 @@ DenomInfo CardinalityEstimator::GetDenominator(JoinRelationSet &set) { // denominator is 1 and numerators are a cross product of cardinalities. return DenomInfo(set, 1, 1); } - return DenomInfo(*subgraphs.at(0).numerator_relations, 1, subgraphs.at(0).denom); + return DenomInfo(*subgraphs.at(0).numerator_relations, 1, subgraphs.at(0).denom * denom_multiplier); } template <> diff --git a/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp b/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp index 014181b2..04b396b9 100644 --- a/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp +++ b/src/duckdb/src/optimizer/join_order/plan_enumerator.cpp @@ -472,7 +472,9 @@ void PlanEnumerator::InitLeafPlans() { void PlanEnumerator::SolveJoinOrder() { bool force_no_cross_product = query_graph_manager.context.config.force_no_cross_product; // first try to solve the join order exactly - if (!SolveJoinOrderExactly()) { + if (query_graph_manager.relation_manager.NumRelations() >= THRESHOLD_TO_SWAP_TO_APPROXIMATE) { + SolveJoinOrderApproximately(); + } else if (!SolveJoinOrderExactly()) { // otherwise, if that times out we resort to a greedy algorithm SolveJoinOrderApproximately(); } diff --git a/src/duckdb/src/optimizer/join_order/relation_manager.cpp b/src/duckdb/src/optimizer/join_order/relation_manager.cpp index 0cc72024..de75659b 100644 --- a/src/duckdb/src/optimizer/join_order/relation_manager.cpp +++ b/src/duckdb/src/optimizer/join_order/relation_manager.cpp @@ -89,6 +89,7 @@ static bool OperatorNeedsRelation(LogicalOperatorType op_type) { case LogicalOperatorType::LOGICAL_DELIM_GET: case LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY: case LogicalOperatorType::LOGICAL_WINDOW: + case LogicalOperatorType::LOGICAL_SAMPLE: return true; default: return false; diff --git a/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp b/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp index 32d2b432..aa20b033 100644 --- a/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp +++ b/src/duckdb/src/optimizer/join_order/relation_statistics_helper.cpp @@ -79,14 +79,15 @@ RelationStats RelationStatisticsHelper::ExtractGetStats(LogicalGet &get, ClientC // first push back basic distinct counts for each column (if we have them). auto &column_ids = get.GetColumnIds(); for (idx_t i = 0; i < column_ids.size(); i++) { + auto column_id = column_ids[i].GetPrimaryIndex(); bool have_distinct_count_stats = false; if (get.function.statistics) { - column_statistics = get.function.statistics(context, get.bind_data.get(), column_ids[i]); + column_statistics = get.function.statistics(context, get.bind_data.get(), column_id); if (column_statistics && have_catalog_table_statistics) { - auto distinct_count = MaxValue((idx_t)1, column_statistics->GetDistinctCount()); + auto distinct_count = MaxValue(1, column_statistics->GetDistinctCount()); auto column_distinct_count = DistinctCount({distinct_count, true}); return_stats.column_distinct_count.push_back(column_distinct_count); - return_stats.column_names.push_back(name + "." + get.names.at(column_ids.at(i))); + return_stats.column_names.push_back(name + "." + get.names.at(column_id)); have_distinct_count_stats = true; } } @@ -97,8 +98,8 @@ RelationStats RelationStatisticsHelper::ExtractGetStats(LogicalGet &get, ClientC auto column_distinct_count = DistinctCount({cardinality_after_filters, false}); return_stats.column_distinct_count.push_back(column_distinct_count); auto column_name = string("column"); - if (column_ids.at(i) < get.names.size()) { - column_name = get.names.at(column_ids.at(i)); + if (column_id < get.names.size()) { + column_name = get.names.at(column_id); } return_stats.column_names.push_back(get.GetName() + "." + column_name); } diff --git a/src/duckdb/src/optimizer/limit_pushdown.cpp b/src/duckdb/src/optimizer/limit_pushdown.cpp index d6f2b66b..e47f0093 100644 --- a/src/duckdb/src/optimizer/limit_pushdown.cpp +++ b/src/duckdb/src/optimizer/limit_pushdown.cpp @@ -30,6 +30,7 @@ unique_ptr LimitPushdown::Optimize(unique_ptr if (CanOptimize(*op)) { auto projection = std::move(op->children[0]); op->children[0] = std::move(projection->children[0]); + projection->SetEstimatedCardinality(op->estimated_cardinality); projection->children[0] = std::move(op); swap(projection, op); } diff --git a/src/duckdb/src/optimizer/matcher/expression_matcher.cpp b/src/duckdb/src/optimizer/matcher/expression_matcher.cpp index 1d8ca93c..e7fe3a6b 100644 --- a/src/duckdb/src/optimizer/matcher/expression_matcher.cpp +++ b/src/duckdb/src/optimizer/matcher/expression_matcher.cpp @@ -91,6 +91,24 @@ bool FunctionExpressionMatcher::Match(Expression &expr_p, vector> &bindings) { + if (!ExpressionMatcher::Match(expr_p, bindings)) { + return false; + } + auto &expr = expr_p.Cast(); + if (!FunctionMatcher::Match(function, expr.function.name)) { + return false; + } + // we should create matchers for these in the future + if (expr.filter || expr.order_bys || expr.aggr_type != AggregateType::NON_DISTINCT) { + return false; + } + if (!SetMatcher::Match(matchers, expr.children, bindings, policy)) { + return false; + } + return true; +} + bool FoldableConstantMatcher::Match(Expression &expr, vector> &bindings) { // we match on ANY expression that is a scalar expression if (!expr.IsFoldable()) { @@ -100,4 +118,13 @@ bool FoldableConstantMatcher::Match(Expression &expr, vector> &bindings) { + // we match on ANY expression that is a stable expression + if (expr.IsVolatile()) { + return false; + } + bindings.push_back(expr); + return true; +} + } // namespace duckdb diff --git a/src/duckdb/src/optimizer/optimizer.cpp b/src/duckdb/src/optimizer/optimizer.cpp index a32c1917..d5c46621 100644 --- a/src/duckdb/src/optimizer/optimizer.cpp +++ b/src/duckdb/src/optimizer/optimizer.cpp @@ -1,6 +1,7 @@ #include "duckdb/optimizer/optimizer.hpp" #include "duckdb/execution/column_binding_resolver.hpp" +#include "duckdb/function/function_binder.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/main/config.hpp" #include "duckdb/main/query_profiler.hpp" @@ -10,23 +11,27 @@ #include "duckdb/optimizer/cse_optimizer.hpp" #include "duckdb/optimizer/cte_filter_pusher.hpp" #include "duckdb/optimizer/deliminator.hpp" +#include "duckdb/optimizer/empty_result_pullup.hpp" #include "duckdb/optimizer/expression_heuristics.hpp" #include "duckdb/optimizer/filter_pullup.hpp" #include "duckdb/optimizer/filter_pushdown.hpp" #include "duckdb/optimizer/in_clause_rewriter.hpp" +#include "duckdb/optimizer/join_filter_pushdown_optimizer.hpp" #include "duckdb/optimizer/join_order/join_order_optimizer.hpp" #include "duckdb/optimizer/limit_pushdown.hpp" #include "duckdb/optimizer/regex_range_filter.hpp" #include "duckdb/optimizer/remove_duplicate_groups.hpp" #include "duckdb/optimizer/remove_unused_columns.hpp" +#include "duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp" #include "duckdb/optimizer/rule/equal_or_null_simplification.hpp" #include "duckdb/optimizer/rule/in_clause_simplification.hpp" #include "duckdb/optimizer/rule/join_dependent_filter.hpp" #include "duckdb/optimizer/rule/list.hpp" +#include "duckdb/optimizer/sampling_pushdown.hpp" #include "duckdb/optimizer/statistics_propagator.hpp" +#include "duckdb/optimizer/sum_rewriter.hpp" #include "duckdb/optimizer/topn_optimizer.hpp" #include "duckdb/optimizer/unnest_rewriter.hpp" -#include "duckdb/optimizer/join_filter_pushdown_optimizer.hpp" #include "duckdb/planner/binder.hpp" #include "duckdb/planner/planner.hpp" @@ -45,6 +50,8 @@ Optimizer::Optimizer(Binder &binder, ClientContext &context) : context(context), rewriter.rules.push_back(make_uniq(rewriter)); rewriter.rules.push_back(make_uniq(rewriter)); rewriter.rules.push_back(make_uniq(rewriter)); + rewriter.rules.push_back(make_uniq(rewriter)); + rewriter.rules.push_back(make_uniq(rewriter)); rewriter.rules.push_back(make_uniq(rewriter)); rewriter.rules.push_back(make_uniq(rewriter)); rewriter.rules.push_back(make_uniq(rewriter)); @@ -64,7 +71,11 @@ ClientContext &Optimizer::GetContext() { } bool Optimizer::OptimizerDisabled(OptimizerType type) { - auto &config = DBConfig::GetConfig(context); + return OptimizerDisabled(context, type); +} + +bool Optimizer::OptimizerDisabled(ClientContext &context_p, OptimizerType type) { + auto &config = DBConfig::GetConfig(context_p); return config.options.disabled_optimizers.find(type) != config.options.disabled_optimizers.end(); } @@ -95,7 +106,10 @@ void Optimizer::RunBuiltInOptimizers() { case LogicalOperatorType::LOGICAL_CREATE_SECRET: case LogicalOperatorType::LOGICAL_EXTENSION_OPERATOR: // skip optimizing simple & often-occurring plans unaffected by rewrites - return; + if (plan->children.empty()) { + return; + } + break; default: break; } @@ -103,6 +117,12 @@ void Optimizer::RunBuiltInOptimizers() { // this does not change the logical plan structure, but only simplifies the expression trees RunOptimizer(OptimizerType::EXPRESSION_REWRITER, [&]() { rewriter.VisitOperator(*plan); }); + // transform ORDER BY + LIMIT to TopN + RunOptimizer(OptimizerType::SUM_REWRITER, [&]() { + SumRewriterOptimizer optimizer(*this); + optimizer.Optimize(plan); + }); + // perform filter pullup RunOptimizer(OptimizerType::FILTER_PULLUP, [&]() { FilterPullup filter_pullup; @@ -139,6 +159,12 @@ void Optimizer::RunBuiltInOptimizers() { plan = deliminator.Optimize(std::move(plan)); }); + // Pulls up empty results + RunOptimizer(OptimizerType::EMPTY_RESULT_PULLUP, [&]() { + EmptyResultPullup empty_result_pullup; + plan = empty_result_pullup.Optimize(std::move(plan)); + }); + // then we perform the join ordering optimization // this also rewrites cross products + filters into joins and performs filter pushdowns RunOptimizer(OptimizerType::JOIN_ORDER, [&]() { @@ -170,6 +196,12 @@ void Optimizer::RunBuiltInOptimizers() { cse_optimizer.VisitOperator(*plan); }); + // creates projection maps so unused columns are projected out early + RunOptimizer(OptimizerType::COLUMN_LIFETIME, [&]() { + ColumnLifetimeAnalyzer column_lifetime(*this, *plan, true); + column_lifetime.VisitOperator(*plan); + }); + // Once we know the column lifetime, we have more information regarding // what relations should be the build side/probe side. RunOptimizer(OptimizerType::BUILD_SIDE_PROBE_SIDE, [&]() { @@ -183,18 +215,18 @@ void Optimizer::RunBuiltInOptimizers() { plan = limit_pushdown.Optimize(std::move(plan)); }); + // perform sampling pushdown + RunOptimizer(OptimizerType::SAMPLING_PUSHDOWN, [&]() { + SamplingPushdown sampling_pushdown; + plan = sampling_pushdown.Optimize(std::move(plan)); + }); + // transform ORDER BY + LIMIT to TopN RunOptimizer(OptimizerType::TOP_N, [&]() { TopN topn; plan = topn.Optimize(std::move(plan)); }); - // creates projection maps so unused columns are projected out early - RunOptimizer(OptimizerType::COLUMN_LIFETIME, [&]() { - ColumnLifetimeAnalyzer column_lifetime(true); - column_lifetime.VisitOperator(*plan); - }); - // perform statistics propagation column_binding_map_t> statistics_map; RunOptimizer(OptimizerType::STATISTICS_PROPAGATION, [&]() { @@ -211,7 +243,7 @@ void Optimizer::RunBuiltInOptimizers() { // creates projection maps so unused columns are projected out early RunOptimizer(OptimizerType::COLUMN_LIFETIME, [&]() { - ColumnLifetimeAnalyzer column_lifetime(true); + ColumnLifetimeAnalyzer column_lifetime(*this, *plan, true); column_lifetime.VisitOperator(*plan); }); @@ -247,4 +279,28 @@ unique_ptr Optimizer::Optimize(unique_ptr plan return std::move(plan); } +unique_ptr Optimizer::BindScalarFunction(const string &name, unique_ptr c1) { + vector> children; + children.push_back(std::move(c1)); + return BindScalarFunction(name, std::move(children)); +} + +unique_ptr Optimizer::BindScalarFunction(const string &name, unique_ptr c1, + unique_ptr c2) { + vector> children; + children.push_back(std::move(c1)); + children.push_back(std::move(c2)); + return BindScalarFunction(name, std::move(children)); +} + +unique_ptr Optimizer::BindScalarFunction(const string &name, vector> children) { + FunctionBinder binder(context); + ErrorData error; + auto expr = binder.BindScalarFunction(DEFAULT_SCHEMA, name, std::move(children), error); + if (error.HasError()) { + throw InternalException("Optimizer exception - failed to bind function %s: %s", name, error.Message()); + } + return expr; +} + } // namespace duckdb diff --git a/src/duckdb/src/optimizer/pullup/pullup_filter.cpp b/src/duckdb/src/optimizer/pullup/pullup_filter.cpp index 96395a97..95fd7f7b 100644 --- a/src/duckdb/src/optimizer/pullup/pullup_filter.cpp +++ b/src/duckdb/src/optimizer/pullup/pullup_filter.cpp @@ -1,8 +1,8 @@ #include "duckdb/optimizer/filter_pullup.hpp" -#include "duckdb/planner/operator/logical_filter.hpp" +#include "duckdb/planner/expression/bound_between_expression.hpp" #include "duckdb/planner/expression/bound_comparison_expression.hpp" #include "duckdb/planner/expression_iterator.hpp" -#include "duckdb/planner/expression/bound_between_expression.hpp" +#include "duckdb/planner/operator/logical_filter.hpp" namespace duckdb { @@ -10,7 +10,7 @@ unique_ptr FilterPullup::PullupFilter(unique_ptrtype == LogicalOperatorType::LOGICAL_FILTER); auto &filter = op->Cast(); - if (can_pullup && filter.projection_map.empty()) { + if (can_pullup && !filter.HasProjectionMap()) { unique_ptr child = std::move(op->children[0]); child = Rewrite(std::move(child)); // moving filter's expressions diff --git a/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp b/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp index a05da2c2..40ff4dc3 100644 --- a/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp +++ b/src/duckdb/src/optimizer/pushdown/pushdown_cross_product.cpp @@ -14,9 +14,6 @@ unique_ptr FilterPushdown::PushdownCrossProduct(unique_ptrtype) { case LogicalOperatorType::LOGICAL_CROSS_PRODUCT: break; - case LogicalOperatorType::LOGICAL_ASOF_JOIN: - join_ref_type = JoinRefType::ASOF; - break; default: throw InternalException("Unsupported join type for cross product push down"); } @@ -33,14 +30,7 @@ unique_ptr FilterPushdown::PushdownCrossProduct(unique_ptrfilter)); - } else { - right_pushdown.filters.push_back(std::move(f)); - } + right_pushdown.filters.push_back(std::move(f)); } else { D_ASSERT(side == JoinSide::BOTH || side == JoinSide::NONE); // bindings match both: turn into join condition diff --git a/src/duckdb/src/optimizer/pushdown/pushdown_filter.cpp b/src/duckdb/src/optimizer/pushdown/pushdown_filter.cpp index 9f3a6b5a..fdf6fbe6 100644 --- a/src/duckdb/src/optimizer/pushdown/pushdown_filter.cpp +++ b/src/duckdb/src/optimizer/pushdown/pushdown_filter.cpp @@ -9,7 +9,7 @@ using Filter = FilterPushdown::Filter; unique_ptr FilterPushdown::PushdownFilter(unique_ptr op) { D_ASSERT(op->type == LogicalOperatorType::LOGICAL_FILTER); auto &filter = op->Cast(); - if (!filter.projection_map.empty()) { + if (filter.HasProjectionMap()) { return FinishPushdown(std::move(op)); } // filter: gather the filters and remove the filter from the set of operations diff --git a/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp b/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp index 791bbb9d..8370f4ca 100644 --- a/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp +++ b/src/duckdb/src/optimizer/pushdown/pushdown_inner_join.cpp @@ -26,8 +26,7 @@ unique_ptr FilterPushdown::PushdownInnerJoin(unique_ptrtype == LogicalOperatorType::LOGICAL_COMPARISON_JOIN || - op->type == LogicalOperatorType::LOGICAL_ASOF_JOIN); + D_ASSERT(op->type == LogicalOperatorType::LOGICAL_COMPARISON_JOIN); auto &comp_join = join.Cast(); // turn the conditions into filters for (auto &i : comp_join.conditions) { @@ -40,11 +39,6 @@ unique_ptr FilterPushdown::PushdownInnerJoin(unique_ptrtype == LogicalOperatorType::LOGICAL_ASOF_JOIN) { - return PushdownCrossProduct(std::move(op)); - } - // turn the inner join into a cross product auto cross_product = make_uniq(std::move(op->children[0]), std::move(op->children[1])); diff --git a/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp b/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp index fae4b3f6..e142a1d7 100644 --- a/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp +++ b/src/duckdb/src/optimizer/pushdown/pushdown_left_join.cpp @@ -31,7 +31,7 @@ static bool FilterRemovesNull(ClientContext &context, ExpressionRewriter &rewrit unordered_set &right_bindings) { // make a copy of the expression auto copy = expr->Copy(); - // replace all BoundColumnRef expressions frmo the RHS with NULL constants in the copied expression + // replace all BoundColumnRef expressions from the RHS with NULL constants in the copied expression copy = ReplaceColRefWithNull(std::move(copy), right_bindings); // attempt to flatten the expression by running the expression rewriter on it @@ -93,10 +93,13 @@ unique_ptr FilterPushdown::PushdownLeftJoin(unique_ptrtype != LogicalOperatorType::LOGICAL_ASOF_JOIN) { // bindings match right side or both sides: we cannot directly push it into the right // however, if the filter removes rows with null values from the RHS we can turn the left outer join // in an inner join, and then push down as we would push down an inner join + // Edit: This is only possible if the bindings match BOTH sides, so the filter can be pushed down to both + // children. If the filter can only be applied to the right side, and the filter filters + // all tuples, then the inner join cannot be converted. if (FilterRemovesNull(optimizer.context, optimizer.rewriter, filters[i]->filter.get(), right_bindings)) { // the filter removes NULL values, turn it into an inner join join.join_type = JoinType::INNER; diff --git a/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp b/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp index ec82b39c..f66ce66f 100644 --- a/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp +++ b/src/duckdb/src/optimizer/pushdown/pushdown_projection.cpp @@ -3,6 +3,8 @@ #include "duckdb/planner/expression_iterator.hpp" #include "duckdb/planner/operator/logical_empty_result.hpp" #include "duckdb/planner/operator/logical_projection.hpp" +#include "duckdb/planner/expression/bound_cast_expression.hpp" +#include "duckdb/common/types.hpp" namespace duckdb { @@ -51,7 +53,7 @@ unique_ptr FilterPushdown::PushdownProjection(unique_ptrCanThrow()) { // We can't push down related expressions if the column in the // expression is generated by the functions which have side effects remain_expressions.push_back(std::move(f.filter)); diff --git a/src/duckdb/src/optimizer/pushdown/pushdown_unnest.cpp b/src/duckdb/src/optimizer/pushdown/pushdown_unnest.cpp new file mode 100644 index 00000000..9bdeb256 --- /dev/null +++ b/src/duckdb/src/optimizer/pushdown/pushdown_unnest.cpp @@ -0,0 +1,52 @@ +#include "duckdb/optimizer/filter_pushdown.hpp" +#include "duckdb/planner/expression/bound_columnref_expression.hpp" +#include "duckdb/planner/expression_iterator.hpp" +#include "duckdb/planner/operator/logical_empty_result.hpp" +#include "duckdb/planner/operator/logical_unnest.hpp" + +namespace duckdb { + +unique_ptr FilterPushdown::PushdownUnnest(unique_ptr op) { + D_ASSERT(op->type == LogicalOperatorType::LOGICAL_UNNEST); + auto &unnest = op->Cast(); + // push filter through logical projection + // all the BoundColumnRefExpressions in the filter should refer to the LogicalProjection + // we can rewrite them by replacing those references with the expression of the LogicalProjection node + FilterPushdown child_pushdown(optimizer, convert_mark_joins); + // There are some expressions can not be pushed down. We should keep them + // and add an extra filter operator. + vector> remain_expressions; + for (auto &filter : filters) { + auto &f = *filter; + auto can_push = true; + for (auto &binding : f.bindings) { + if (binding == unnest.unnest_index) { + can_push = false; + break; + } + } + // if the expression index table index is the unnest index, then the filter is on the + // unnest, and it should not be pushed down. + if (!can_push) { + // We can't push down related expressions if the column in the + // expression is generated by the functions which have side effects + remain_expressions.push_back(std::move(f.filter)); + } else { + // add the filter to the child pushdown + if (child_pushdown.AddFilter(std::move(f.filter)) == FilterResult::UNSATISFIABLE) { + // filter statically evaluates to false, strip tree + return make_uniq(std::move(op)); + } + } + } + child_pushdown.GenerateFilters(); + // now push into children + op->children[0] = child_pushdown.Rewrite(std::move(op->children[0])); + if (op->children[0]->type == LogicalOperatorType::LOGICAL_EMPTY_RESULT) { + // child returns an empty result: generate an empty result here too + return make_uniq(std::move(op)); + } + return AddLogicalFilter(std::move(op), std::move(remain_expressions)); +} + +} // namespace duckdb diff --git a/src/duckdb/src/optimizer/remove_unused_columns.cpp b/src/duckdb/src/optimizer/remove_unused_columns.cpp index 8425050b..db906e76 100644 --- a/src/duckdb/src/optimizer/remove_unused_columns.cpp +++ b/src/duckdb/src/optimizer/remove_unused_columns.cpp @@ -8,6 +8,7 @@ #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/planner/expression/bound_columnref_expression.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" +#include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression_iterator.hpp" #include "duckdb/planner/operator/logical_aggregate.hpp" #include "duckdb/planner/operator/logical_comparison_join.hpp" @@ -18,15 +19,17 @@ #include "duckdb/planner/operator/logical_projection.hpp" #include "duckdb/planner/operator/logical_set_operation.hpp" #include "duckdb/planner/operator/logical_simple.hpp" +#include "duckdb/function/scalar/struct_utils.hpp" namespace duckdb { void RemoveUnusedColumns::ReplaceBinding(ColumnBinding current_binding, ColumnBinding new_binding) { auto colrefs = column_references.find(current_binding); if (colrefs != column_references.end()) { - for (auto &colref : colrefs->second) { - D_ASSERT(colref->binding == current_binding); - colref->binding = new_binding; + for (auto &colref_p : colrefs->second.bindings) { + auto &colref = colref_p.get(); + D_ASSERT(colref.binding == current_binding); + colref.binding = new_binding; } } } @@ -95,9 +98,10 @@ void RemoveUnusedColumns::VisitOperator(LogicalOperator &op) { // if there are any columns that refer to the RHS, auto colrefs = column_references.find(rhs_col.binding); if (colrefs != column_references.end()) { - for (auto &entry : colrefs->second) { - entry->binding = lhs_col.binding; - column_references[lhs_col.binding].push_back(entry); + for (auto &entry : colrefs->second.bindings) { + auto &colref = entry.get(); + colref.binding = lhs_col.binding; + AddBinding(colref); } column_references.erase(rhs_col.binding); } @@ -209,7 +213,7 @@ void RemoveUnusedColumns::VisitOperator(LogicalOperator &op) { return; } - auto &final_column_ids = get.GetColumnIds(); + auto final_column_ids = get.GetColumnIds(); // Create "selection vector" of all column ids vector proj_sel; @@ -221,12 +225,13 @@ void RemoveUnusedColumns::VisitOperator(LogicalOperator &op) { // Clear unused ids, exclude filter columns that are projected out immediately ClearUnusedExpressions(proj_sel, get.table_index, false); + vector> filter_expressions; // for every table filter, push a column binding into the column references map to prevent the column from // being projected out for (auto &filter : get.table_filters.filters) { optional_idx index; for (idx_t i = 0; i < final_column_ids.size(); i++) { - if (final_column_ids[i] == filter.first) { + if (final_column_ids[i].GetPrimaryIndex() == filter.first) { index = i; break; } @@ -234,20 +239,39 @@ void RemoveUnusedColumns::VisitOperator(LogicalOperator &op) { if (!index.IsValid()) { throw InternalException("Could not find column index for table filter"); } + + auto column_type = + filter.first == COLUMN_IDENTIFIER_ROW_ID ? LogicalType::ROW_TYPE : get.returned_types[filter.first]; + ColumnBinding filter_binding(get.table_index, index.GetIndex()); - if (column_references.find(filter_binding) == column_references.end()) { - column_references.insert(make_pair(filter_binding, vector())); - } + auto column_ref = make_uniq(std::move(column_type), filter_binding); + auto filter_expr = filter.second->ToExpression(*column_ref); + VisitExpression(&filter_expr); + filter_expressions.push_back(std::move(filter_expr)); } // Clear unused ids, include filter columns that are projected out immediately ClearUnusedExpressions(col_sel, get.table_index); // Now set the column ids in the LogicalGet using the "selection vector" - vector column_ids; + vector column_ids; column_ids.reserve(col_sel.size()); for (auto col_sel_idx : col_sel) { - column_ids.push_back(final_column_ids[col_sel_idx]); + auto entry = column_references.find(ColumnBinding(get.table_index, col_sel_idx)); + if (entry == column_references.end()) { + throw InternalException("RemoveUnusedColumns - could not find referenced column"); + } + if (final_column_ids[col_sel_idx].HasChildren()) { + throw InternalException("RemoveUnusedColumns - LogicalGet::column_ids already has children"); + } + ColumnIndex new_index(final_column_ids[col_sel_idx].GetPrimaryIndex(), entry->second.child_columns); + column_ids.emplace_back(new_index); + } + if (column_ids.empty()) { + // this generally means we are only interested in whether or not anything exists in the table (e.g. + // EXISTS(SELECT * FROM tbl)) in this case, we just scan the row identifier column as it means we do not + // need to read any of the columns + column_ids.emplace_back(COLUMN_IDENTIFIER_ROW_ID); } get.SetColumnIds(std::move(column_ids)); @@ -264,24 +288,8 @@ void RemoveUnusedColumns::VisitOperator(LogicalOperator &op) { } } } - - if (final_column_ids.empty()) { - // this generally means we are only interested in whether or not anything exists in the table (e.g. - // EXISTS(SELECT * FROM tbl)) in this case, we just scan the row identifier column as it means we do not - // need to read any of the columns - get.AddColumnId(COLUMN_IDENTIFIER_ROW_ID); - } } return; - case LogicalOperatorType::LOGICAL_FILTER: { - auto &filter = op.Cast(); - if (!filter.projection_map.empty()) { - // if we have any entries in the filter projection map don't prune any columns - // FIXME: we can do something more clever here - everything_referenced = true; - } - break; - } case LogicalOperatorType::LOGICAL_DISTINCT: { auto &distinct = op.Cast(); if (distinct.distinct_type == DistinctType::DISTINCT_ON) { @@ -339,10 +347,130 @@ void RemoveUnusedColumns::VisitOperator(LogicalOperator &op) { } } +bool RemoveUnusedColumns::HandleStructExtractRecursive(Expression &expr, optional_ptr &colref, + vector &indexes) { + if (expr.GetExpressionClass() != ExpressionClass::BOUND_FUNCTION) { + return false; + } + auto &function = expr.Cast(); + if (function.function.name != "struct_extract" && function.function.name != "array_extract") { + return false; + } + if (!function.bind_info) { + return false; + } + if (function.children[0]->return_type.id() != LogicalTypeId::STRUCT) { + return false; + } + auto &bind_data = function.bind_info->Cast(); + indexes.push_back(bind_data.index); + // struct extract, check if left child is a bound column ref + if (function.children[0]->GetExpressionClass() == ExpressionClass::BOUND_COLUMN_REF) { + // column reference - check if it is a struct + auto &ref = function.children[0]->Cast(); + if (ref.return_type.id() != LogicalTypeId::STRUCT) { + return false; + } + colref = &ref; + return true; + } + // not a column reference - try to handle this recursively + if (!HandleStructExtractRecursive(*function.children[0], colref, indexes)) { + return false; + } + return true; +} + +bool RemoveUnusedColumns::HandleStructExtract(Expression &expr) { + optional_ptr colref; + vector indexes; + if (!HandleStructExtractRecursive(expr, colref, indexes)) { + return false; + } + D_ASSERT(!indexes.empty()); + // construct the ColumnIndex + ColumnIndex index = ColumnIndex(indexes[0]); + for (idx_t i = 1; i < indexes.size(); i++) { + ColumnIndex new_index(indexes[i]); + new_index.AddChildIndex(std::move(index)); + index = std::move(new_index); + } + AddBinding(*colref, std::move(index)); + return true; +} + +void MergeChildColumns(vector ¤t_child_columns, ColumnIndex &new_child_column) { + if (current_child_columns.empty()) { + // there's already a reference to the full column - we can't extract only a subfield + // skip struct projection pushdown + return; + } + // if we are already extract sub-fields, add it (if it is not there yet) + for (auto &binding : current_child_columns) { + if (binding.GetPrimaryIndex() != new_child_column.GetPrimaryIndex()) { + continue; + } + // found a match: sub-field is already projected + // check if we have child columns + auto &nested_child_columns = binding.GetChildIndexesMutable(); + if (!new_child_column.HasChildren()) { + // new child is a reference to a full column - clear any existing bindings (if any) + nested_child_columns.clear(); + } else { + // new child has a sub-reference - merge recursively + D_ASSERT(new_child_column.ChildIndexCount() == 1); + MergeChildColumns(nested_child_columns, new_child_column.GetChildIndex(0)); + } + return; + } + // this child column is not projected yet - add it in + current_child_columns.push_back(std::move(new_child_column)); +} + +void RemoveUnusedColumns::AddBinding(BoundColumnRefExpression &col, ColumnIndex child_column) { + auto entry = column_references.find(col.binding); + if (entry == column_references.end()) { + // column not referenced yet - add a binding to it entirely + ReferencedColumn column; + column.bindings.push_back(col); + column.child_columns.push_back(std::move(child_column)); + column_references.insert(make_pair(col.binding, std::move(column))); + } else { + // column reference already exists - check add the binding + auto &column = entry->second; + column.bindings.push_back(col); + + MergeChildColumns(column.child_columns, child_column); + } +} + +void RemoveUnusedColumns::AddBinding(BoundColumnRefExpression &col) { + auto entry = column_references.find(col.binding); + if (entry == column_references.end()) { + // column not referenced yet - add a binding to it entirely + column_references[col.binding].bindings.push_back(col); + } else { + // column reference already exists - add the binding and clear any sub-references + auto &column = entry->second; + column.bindings.push_back(col); + column.child_columns.clear(); + } +} + +void RemoveUnusedColumns::VisitExpression(unique_ptr *expression) { + auto &expr = **expression; + if (HandleStructExtract(expr)) { + // already handled + return; + } + // recurse + LogicalOperatorVisitor::VisitExpression(expression); +} + unique_ptr RemoveUnusedColumns::VisitReplace(BoundColumnRefExpression &expr, unique_ptr *expr_ptr) { - // add a column reference - column_references[expr.binding].push_back(&expr); + // add a reference to the entire column + AddBinding(expr); return nullptr; } diff --git a/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp b/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp index bd4e0821..367731fe 100644 --- a/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp +++ b/src/duckdb/src/optimizer/rule/arithmetic_simplification.cpp @@ -1,9 +1,10 @@ #include "duckdb/optimizer/rule/arithmetic_simplification.hpp" #include "duckdb/common/exception.hpp" +#include "duckdb/function/function_binder.hpp" +#include "duckdb/optimizer/expression_rewriter.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" -#include "duckdb/optimizer/expression_rewriter.hpp" namespace duckdb { diff --git a/src/duckdb/src/optimizer/rule/comparison_simplification.cpp b/src/duckdb/src/optimizer/rule/comparison_simplification.cpp index 467d235a..026228da 100644 --- a/src/duckdb/src/optimizer/rule/comparison_simplification.cpp +++ b/src/duckdb/src/optimizer/rule/comparison_simplification.cpp @@ -3,6 +3,7 @@ #include "duckdb/execution/expression_executor.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" +#include "duckdb/optimizer/expression_rewriter.hpp" namespace duckdb { @@ -46,7 +47,8 @@ unique_ptr ComparisonSimplificationRule::Apply(LogicalOperator &op, // Can we cast the constant at all? string error_message; Value cast_constant; - auto new_constant = constant_value.DefaultTryCastAs(target_type, cast_constant, &error_message, true); + auto new_constant = + constant_value.TryCastAs(rewriter.context, target_type, cast_constant, &error_message, true); if (!new_constant) { return nullptr; } @@ -56,7 +58,8 @@ unique_ptr ComparisonSimplificationRule::Apply(LogicalOperator &op, !BoundCastExpression::CastIsInvertible(cast_expression.return_type, target_type)) { // Is it actually invertible? Value uncast_constant; - if (!cast_constant.DefaultTryCastAs(constant_value.type(), uncast_constant, &error_message, true) || + if (!cast_constant.TryCastAs(rewriter.context, constant_value.type(), uncast_constant, &error_message, + true) || uncast_constant != constant_value) { return nullptr; } diff --git a/src/duckdb/src/optimizer/rule/distinct_aggregate_optimizer.cpp b/src/duckdb/src/optimizer/rule/distinct_aggregate_optimizer.cpp new file mode 100644 index 00000000..7eeae1d3 --- /dev/null +++ b/src/duckdb/src/optimizer/rule/distinct_aggregate_optimizer.cpp @@ -0,0 +1,65 @@ +#include "duckdb/optimizer/rule/distinct_aggregate_optimizer.hpp" +#include "duckdb/optimizer/expression_rewriter.hpp" +#include "duckdb/planner/expression/bound_aggregate_expression.hpp" +#include "duckdb/planner/expression/bound_window_expression.hpp" +#include "duckdb/planner/operator/logical_aggregate.hpp" + +namespace duckdb { + +DistinctAggregateOptimizer::DistinctAggregateOptimizer(ExpressionRewriter &rewriter) : Rule(rewriter) { + root = make_uniq(); + root->expr_class = ExpressionClass::BOUND_AGGREGATE; +} + +unique_ptr DistinctAggregateOptimizer::Apply(ClientContext &context, BoundAggregateExpression &aggr, + bool &changes_made) { + if (!aggr.IsDistinct()) { + // no DISTINCT defined + return nullptr; + } + if (aggr.function.distinct_dependent == AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT) { + // not a distinct-sensitive aggregate but we have an DISTINCT modifier - remove it + aggr.aggr_type = AggregateType::NON_DISTINCT; + changes_made = true; + return nullptr; + } + return nullptr; +} + +unique_ptr DistinctAggregateOptimizer::Apply(LogicalOperator &op, vector> &bindings, + bool &changes_made, bool is_root) { + auto &aggr = bindings[0].get().Cast(); + return Apply(rewriter.context, aggr, changes_made); +} + +DistinctWindowedOptimizer::DistinctWindowedOptimizer(ExpressionRewriter &rewriter) : Rule(rewriter) { + root = make_uniq(); + root->expr_class = ExpressionClass::BOUND_WINDOW; +} + +unique_ptr DistinctWindowedOptimizer::Apply(ClientContext &context, BoundWindowExpression &wexpr, + bool &changes_made) { + if (!wexpr.distinct) { + // no DISTINCT defined + return nullptr; + } + if (!wexpr.aggregate) { + // not an aggregate + return nullptr; + } + if (wexpr.aggregate->distinct_dependent == AggregateDistinctDependent::NOT_DISTINCT_DEPENDENT) { + // not a distinct-sensitive aggregate but we have an DISTINCT modifier - remove it + wexpr.distinct = false; + changes_made = true; + return nullptr; + } + return nullptr; +} + +unique_ptr DistinctWindowedOptimizer::Apply(LogicalOperator &op, vector> &bindings, + bool &changes_made, bool is_root) { + auto &wexpr = bindings[0].get().Cast(); + return Apply(rewriter.context, wexpr, changes_made); +} + +} // namespace duckdb diff --git a/src/duckdb/src/optimizer/rule/like_optimizations.cpp b/src/duckdb/src/optimizer/rule/like_optimizations.cpp index 067dfd79..a8398c99 100644 --- a/src/duckdb/src/optimizer/rule/like_optimizations.cpp +++ b/src/duckdb/src/optimizer/rule/like_optimizations.cpp @@ -1,6 +1,8 @@ #include "duckdb/optimizer/rule/like_optimizations.hpp" #include "duckdb/execution/expression_executor.hpp" +#include "duckdb/function/scalar/string_functions.hpp" +#include "duckdb/function/scalar/string_common.hpp" #include "duckdb/planner/expression/bound_function_expression.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_operator_expression.hpp" @@ -132,7 +134,7 @@ unique_ptr LikeOptimizationRule::Apply(LogicalOperator &op, vector RegexOptimizationRule::Apply(LogicalOperator &op, vector< return nullptr; } auto parameter = make_uniq(Value(std::move(escaped_like_string.like_string))); - auto contains = make_uniq(root.return_type, ContainsFun::GetStringContains(), + auto contains = make_uniq(root.return_type, GetStringContains(), std::move(root.children), nullptr); contains->children[1] = std::move(parameter); @@ -205,8 +206,8 @@ unique_ptr RegexOptimizationRule::Apply(LogicalOperator &op, vector< D_ASSERT(root.children.size() == 2); } - auto like_expression = make_uniq(root.return_type, LikeFun::GetLikeFunction(), - std::move(root.children), nullptr); + auto like_expression = + make_uniq(root.return_type, LikeFun::GetFunction(), std::move(root.children), nullptr); auto parameter = make_uniq(Value(std::move(like_string.like_string))); like_expression->children[1] = std::move(parameter); return std::move(like_expression); diff --git a/src/duckdb/src/optimizer/sampling_pushdown.cpp b/src/duckdb/src/optimizer/sampling_pushdown.cpp new file mode 100644 index 00000000..ca805e64 --- /dev/null +++ b/src/duckdb/src/optimizer/sampling_pushdown.cpp @@ -0,0 +1,24 @@ +#include "duckdb/optimizer/sampling_pushdown.hpp" +#include "duckdb/planner/operator/logical_get.hpp" +#include "duckdb/planner/operator/logical_sample.hpp" +#include "duckdb/common/types/value.hpp" +namespace duckdb { + +unique_ptr SamplingPushdown::Optimize(unique_ptr op) { + if (op->type == LogicalOperatorType::LOGICAL_SAMPLE && + op->Cast().sample_options->method == SampleMethod::SYSTEM_SAMPLE && + op->Cast().sample_options->is_percentage && !op->children.empty() && + op->children[0]->type == LogicalOperatorType::LOGICAL_GET && + op->children[0]->Cast().function.sampling_pushdown && op->children[0]->children.empty()) { + auto &get = op->children[0]->Cast(); + // set sampling option + get.extra_info.sample_options = std::move(op->Cast().sample_options); + op = std::move(op->children[0]); + } + for (auto &child : op->children) { + child = Optimize(std::move(child)); + } + return op; +} + +} // namespace duckdb diff --git a/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp b/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp index 9cb59082..b5fcc8ce 100644 --- a/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp +++ b/src/duckdb/src/optimizer/statistics/expression/propagate_cast.cpp @@ -27,6 +27,9 @@ static unique_ptr StatisticsNumericCastSwitch(const BaseStatisti case LogicalTypeId::TIME: { switch (input.GetType().id()) { case LogicalTypeId::TIMESTAMP: + case LogicalTypeId::TIMESTAMP_SEC: + case LogicalTypeId::TIMESTAMP_MS: + case LogicalTypeId::TIMESTAMP_NS: case LogicalTypeId::TIMESTAMP_TZ: return nullptr; default: diff --git a/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp b/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp index 7dbdc6da..1cb37da9 100644 --- a/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp +++ b/src/duckdb/src/optimizer/statistics/operator/propagate_filter.cpp @@ -1,5 +1,5 @@ #include "duckdb/execution/expression_executor.hpp" -#include "duckdb/function/scalar/generic_functions.hpp" +#include "duckdb/function/scalar/generic_common.hpp" #include "duckdb/optimizer/statistics_propagator.hpp" #include "duckdb/planner/expression/bound_between_expression.hpp" #include "duckdb/planner/expression/bound_columnref_expression.hpp" diff --git a/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp b/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp index 962ad8f9..dc2390db 100644 --- a/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp +++ b/src/duckdb/src/optimizer/statistics/operator/propagate_get.cpp @@ -41,7 +41,7 @@ unique_ptr StatisticsPropagator::PropagateStatistics(LogicalGet } auto &column_ids = get.GetColumnIds(); for (idx_t i = 0; i < column_ids.size(); i++) { - auto stats = get.function.statistics(context, get.bind_data.get(), column_ids[i]); + auto stats = get.function.statistics(context, get.bind_data.get(), column_ids[i].GetPrimaryIndex()); if (stats) { ColumnBinding binding(get.table_index, i); statistics_map.insert(make_pair(binding, std::move(stats))); @@ -57,12 +57,12 @@ unique_ptr StatisticsPropagator::PropagateStatistics(LogicalGet for (auto &table_filter_column : column_indexes) { idx_t column_index; for (column_index = 0; column_index < column_ids.size(); column_index++) { - if (column_ids[column_index] == table_filter_column) { + if (column_ids[column_index].GetPrimaryIndex() == table_filter_column) { break; } } D_ASSERT(column_index < column_ids.size()); - D_ASSERT(column_ids[column_index] == table_filter_column); + D_ASSERT(column_ids[column_index].GetPrimaryIndex() == table_filter_column); // find the stats ColumnBinding stats_binding(get.table_index, column_index); diff --git a/src/duckdb/src/optimizer/sum_rewriter.cpp b/src/duckdb/src/optimizer/sum_rewriter.cpp new file mode 100644 index 00000000..3c73b506 --- /dev/null +++ b/src/duckdb/src/optimizer/sum_rewriter.cpp @@ -0,0 +1,174 @@ +#include "duckdb/optimizer/sum_rewriter.hpp" + +#include "duckdb/planner/expression/bound_aggregate_expression.hpp" +#include "duckdb/planner/expression/bound_cast_expression.hpp" +#include "duckdb/planner/expression/bound_columnref_expression.hpp" +#include "duckdb/planner/expression/bound_function_expression.hpp" +#include "duckdb/planner/operator/logical_aggregate.hpp" +#include "duckdb/planner/operator/logical_projection.hpp" +#include "duckdb/optimizer/matcher/expression_matcher.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" +#include "duckdb/function/function_binder.hpp" +#include "duckdb/planner/binder.hpp" +#include "duckdb/optimizer/optimizer.hpp" + +namespace duckdb { + +unique_ptr GetSmallIntegerTypesMatcher() { + vector types {LogicalTypeId::TINYINT, LogicalTypeId::SMALLINT, LogicalTypeId::INTEGER, + LogicalTypeId::BIGINT, LogicalTypeId::UTINYINT, LogicalTypeId::USMALLINT, + LogicalTypeId::UINTEGER, LogicalTypeId::UBIGINT}; + return make_uniq(std::move(types)); +} + +SumRewriterOptimizer::SumRewriterOptimizer(Optimizer &optimizer) : optimizer(optimizer) { + // set up an expression matcher that detects SUM(x + C) or SUM(C + x) + auto op = make_uniq(); + op->function = make_uniq("sum"); + op->policy = SetMatcher::Policy::UNORDERED; + + auto arithmetic = make_uniq(); + // handle X + C where + arithmetic->function = make_uniq("+"); + // we match only on integral numeric types + arithmetic->type = make_uniq(); + auto child_constant_matcher = make_uniq(); + auto child_expression_matcher = make_uniq(); + child_constant_matcher->type = GetSmallIntegerTypesMatcher(); + child_expression_matcher->type = GetSmallIntegerTypesMatcher(); + arithmetic->matchers.push_back(std::move(child_constant_matcher)); + arithmetic->matchers.push_back(std::move(child_expression_matcher)); + arithmetic->policy = SetMatcher::Policy::SOME; + op->matchers.push_back(std::move(arithmetic)); + + sum_matcher = std::move(op); +} + +SumRewriterOptimizer::~SumRewriterOptimizer() { +} + +void SumRewriterOptimizer::Optimize(unique_ptr &op) { + if (op->type == LogicalOperatorType::LOGICAL_AGGREGATE_AND_GROUP_BY) { + RewriteSums(op); + } + VisitOperator(*op); +} + +void SumRewriterOptimizer::StandardVisitOperator(LogicalOperator &op) { + for (auto &child : op.children) { + Optimize(child); + } + if (!aggregate_map.empty()) { + VisitOperatorExpressions(op); + } +} + +void SumRewriterOptimizer::VisitOperator(LogicalOperator &op) { + switch (op.type) { + case LogicalOperatorType::LOGICAL_UNION: + case LogicalOperatorType::LOGICAL_EXCEPT: + case LogicalOperatorType::LOGICAL_INTERSECT: + case LogicalOperatorType::LOGICAL_MATERIALIZED_CTE: + case LogicalOperatorType::LOGICAL_PROJECTION: { + SumRewriterOptimizer sum_rewriter(optimizer); + sum_rewriter.StandardVisitOperator(op); + return; + } + default: + break; + } + + StandardVisitOperator(op); +} + +unique_ptr SumRewriterOptimizer::VisitReplace(BoundColumnRefExpression &expr, + unique_ptr *expr_ptr) { + // check if this column ref points to an aggregate that was remapped; if it does we remap it + auto entry = aggregate_map.find(expr.binding); + if (entry != aggregate_map.end()) { + expr.binding = entry->second; + } + return nullptr; +} + +void SumRewriterOptimizer::RewriteSums(unique_ptr &op) { + auto &aggr = op->Cast(); + if (!aggr.groups.empty()) { + return; + } + + unordered_set rewrote_map; + vector> constants; + idx_t aggr_count = aggr.expressions.size(); + for (idx_t i = 0; i < aggr_count; ++i) { + auto &expr = aggr.expressions[i]; + vector> bindings; + if (!sum_matcher->Match(*expr, bindings)) { + continue; + } + // found SUM(x + C) + auto &sum = bindings[0].get().Cast(); + auto &addition = bindings[1].get().Cast(); + idx_t const_idx = addition.children[0]->type == ExpressionType::VALUE_CONSTANT ? 0 : 1; + auto const_expr = std::move(addition.children[const_idx]); + auto main_expr = std::move(addition.children[1 - const_idx]); + + // turn this into SUM(x) + sum.children[0] = main_expr->Copy(); + + // push a new aggregate - COUNT(x) + FunctionBinder function_binder(optimizer.context); + + auto count_fun = CountFunctionBase::GetFunction(); + vector> children; + children.push_back(std::move(main_expr)); + auto count_aggr = + function_binder.BindAggregateFunction(count_fun, std::move(children), nullptr, AggregateType::NON_DISTINCT); + aggr.expressions.push_back(std::move(count_aggr)); + constants.push_back(std::move(const_expr)); + rewrote_map.insert(i); + } + if (rewrote_map.empty()) { + return; + } + vector> projection_expressions; + // we rewrote aggregates - we need to push a projection in which we re-compute the original result + idx_t rewritten_index = 0; + auto proj_index = optimizer.binder.GenerateTableIndex(); + for (idx_t i = 0; i < aggr_count; i++) { + ColumnBinding aggregate_binding(aggr.aggregate_index, i); + aggregate_map[aggregate_binding] = ColumnBinding(proj_index, i); + auto &aggr_type = aggr.expressions[i]->return_type; + auto aggr_ref = make_uniq(aggr_type, aggregate_binding); + if (rewrote_map.find(i) == rewrote_map.end()) { + // not rewritten - just push a reference + projection_expressions.push_back(std::move(aggr_ref)); + continue; + } + // rewritten - need to compute the final result + idx_t count_idx = aggr_count + rewritten_index; + ColumnBinding count_binding(aggr.aggregate_index, count_idx); + auto count_ref = make_uniq(aggr.expressions[count_idx]->return_type, count_binding); + + // cast the count to the sum type + auto cast_count = BoundCastExpression::AddCastToType(optimizer.context, std::move(count_ref), aggr_type); + auto const_expr = + BoundCastExpression::AddCastToType(optimizer.context, std::move(constants[rewritten_index]), aggr_type); + + // bind the multiplication + auto multiply = optimizer.BindScalarFunction("*", std::move(cast_count), std::move(const_expr)); + + // add it to the sum + auto final_result = optimizer.BindScalarFunction("+", std::move(aggr_ref), std::move(multiply)); + projection_expressions.push_back(std::move(final_result)); + + rewritten_index++; + } + + // push the projection to replace the aggregate + auto proj = make_uniq(proj_index, std::move(projection_expressions)); + proj->children.push_back(std::move(op)); + op = std::move(proj); +} + +} // namespace duckdb diff --git a/src/duckdb/src/optimizer/topn_optimizer.cpp b/src/duckdb/src/optimizer/topn_optimizer.cpp index 81b2aa09..b700a49e 100644 --- a/src/duckdb/src/optimizer/topn_optimizer.cpp +++ b/src/duckdb/src/optimizer/topn_optimizer.cpp @@ -1,9 +1,16 @@ #include "duckdb/optimizer/topn_optimizer.hpp" #include "duckdb/common/limits.hpp" +#include "duckdb/planner/operator/logical_get.hpp" #include "duckdb/planner/operator/logical_limit.hpp" #include "duckdb/planner/operator/logical_order.hpp" #include "duckdb/planner/operator/logical_top_n.hpp" +#include "duckdb/planner/filter/constant_filter.hpp" +#include "duckdb/planner/filter/dynamic_filter.hpp" +#include "duckdb/planner/filter/optional_filter.hpp" +#include "duckdb/execution/operator/join/join_filter_pushdown.hpp" +#include "duckdb/optimizer/join_filter_pushdown_optimizer.hpp" +#include "duckdb/planner/expression/bound_columnref_expression.hpp" namespace duckdb { @@ -32,6 +39,69 @@ bool TopN::CanOptimize(LogicalOperator &op) { return false; } +void TopN::PushdownDynamicFilters(LogicalTopN &op) { + // pushdown dynamic filters through the Top-N operator + if (op.orders[0].null_order == OrderByNullType::NULLS_FIRST) { + // FIXME: not supported for NULLS FIRST quite yet + // we can support NULLS FIRST by doing (x IS NULL) OR [boundary value] + return; + } + auto &type = op.orders[0].expression->return_type; + if (!TypeIsIntegral(type.InternalType()) && type.id() != LogicalTypeId::VARCHAR) { + // only supported for integral types currently + return; + } + if (op.orders[0].expression->type != ExpressionType::BOUND_COLUMN_REF) { + // we can only pushdown on ORDER BY [col] currently + return; + } + auto &colref = op.orders[0].expression->Cast(); + vector columns; + JoinFilterPushdownColumn column; + column.probe_column_index = colref.binding; + columns.emplace_back(column); + vector pushdown_targets; + JoinFilterPushdownOptimizer::GetPushdownFilterTargets(*op.children[0], std::move(columns), pushdown_targets); + if (pushdown_targets.empty()) { + // no pushdown targets + return; + } + // found pushdown targets! generate dynamic filters + ExpressionType comparison_type; + if (op.orders[0].type == OrderType::ASCENDING) { + // for ascending order, we want the lowest N elements, so we filter on C <= [boundary] + // if we only have a single order clause, we can filter on C < boundary + comparison_type = + op.orders.size() == 1 ? ExpressionType::COMPARE_LESSTHAN : ExpressionType::COMPARE_LESSTHANOREQUALTO; + } else { + // for descending order, we want the highest N elements, so we filter on C >= [boundary] + // if we only have a single order clause, we can filter on C > boundary + comparison_type = + op.orders.size() == 1 ? ExpressionType::COMPARE_GREATERTHAN : ExpressionType::COMPARE_GREATERTHANOREQUALTO; + } + Value minimum_value = type.InternalType() == PhysicalType::VARCHAR ? Value("") : Value::MinimumValue(type); + auto base_filter = make_uniq(comparison_type, std::move(minimum_value)); + auto filter_data = make_shared_ptr(); + filter_data->filter = std::move(base_filter); + + // put the filter into the Top-N clause + op.dynamic_filter = filter_data; + + for (auto &target : pushdown_targets) { + auto &get = target.get; + D_ASSERT(target.columns.size() == 1); + auto col_idx = target.columns[0].probe_column_index.column_index; + + // create the actual dynamic filter + auto dynamic_filter = make_uniq(filter_data); + auto optional_filter = make_uniq(std::move(dynamic_filter)); + + // push the filter into the table scan + auto &column_index = get.GetColumnIds()[col_idx]; + get.table_filters.PushFilter(column_index, std::move(optional_filter)); + } +} + unique_ptr TopN::Optimize(unique_ptr op) { if (CanOptimize(*op)) { @@ -66,6 +136,7 @@ unique_ptr TopN::Optimize(unique_ptr op) { if (topn->children[0]->has_estimated_cardinality && topn->children[0]->estimated_cardinality < limit_val) { cardinality = topn->children[0]->estimated_cardinality; } + PushdownDynamicFilters(*topn); topn->SetEstimatedCardinality(cardinality); op = std::move(topn); diff --git a/src/duckdb/src/optimizer/unnest_rewriter.cpp b/src/duckdb/src/optimizer/unnest_rewriter.cpp index f5d91061..e5f9ccf4 100644 --- a/src/duckdb/src/optimizer/unnest_rewriter.cpp +++ b/src/duckdb/src/optimizer/unnest_rewriter.cpp @@ -1,13 +1,13 @@ #include "duckdb/optimizer/unnest_rewriter.hpp" #include "duckdb/common/pair.hpp" -#include "duckdb/planner/operator/logical_delim_get.hpp" +#include "duckdb/planner/expression/bound_columnref_expression.hpp" +#include "duckdb/planner/expression/bound_unnest_expression.hpp" #include "duckdb/planner/operator/logical_comparison_join.hpp" -#include "duckdb/planner/operator/logical_unnest.hpp" +#include "duckdb/planner/operator/logical_delim_get.hpp" #include "duckdb/planner/operator/logical_projection.hpp" +#include "duckdb/planner/operator/logical_unnest.hpp" #include "duckdb/planner/operator/logical_window.hpp" -#include "duckdb/planner/expression/bound_unnest_expression.hpp" -#include "duckdb/planner/expression/bound_columnref_expression.hpp" namespace duckdb { @@ -35,8 +35,8 @@ void UnnestRewriterPlanUpdater::VisitExpression(unique_ptr *expressi unique_ptr UnnestRewriter::Optimize(unique_ptr op) { UnnestRewriterPlanUpdater updater; - vector *> candidates; - FindCandidates(&op, candidates); + vector>> candidates; + FindCandidates(op, candidates); // rewrite the plan and update the bindings for (auto &candidate : candidates) { @@ -47,7 +47,7 @@ unique_ptr UnnestRewriter::Optimize(unique_ptr // update the bindings of the BOUND_UNNEST expression UpdateBoundUnnestBindings(updater, candidate); // update the sequence of LOGICAL_PROJECTION(s) - UpdateRHSBindings(&op, candidate, updater); + UpdateRHSBindings(op, candidate, updater); // reset delim_columns.clear(); lhs_bindings.clear(); @@ -57,12 +57,11 @@ unique_ptr UnnestRewriter::Optimize(unique_ptr return op; } -void UnnestRewriter::FindCandidates(unique_ptr *op_ptr, - vector *> &candidates) { - auto op = op_ptr->get(); +void UnnestRewriter::FindCandidates(unique_ptr &op, + vector>> &candidates) { // search children before adding, so that we add candidates bottom-up for (auto &child : op->children) { - FindCandidates(&child, candidates); + FindCandidates(child, candidates); } // search for operator that has a LOGICAL_DELIM_JOIN as its child @@ -100,14 +99,15 @@ void UnnestRewriter::FindCandidates(unique_ptr *op_ptr, curr_op = &curr_op->get()->children[0]; } - if (curr_op->get()->type == LogicalOperatorType::LOGICAL_UNNEST) { - candidates.push_back(op_ptr); + if (curr_op->get()->type == LogicalOperatorType::LOGICAL_UNNEST && + curr_op->get()->children[0]->type == LogicalOperatorType::LOGICAL_DELIM_GET) { + candidates.push_back(op); } } -bool UnnestRewriter::RewriteCandidate(unique_ptr *candidate) { +bool UnnestRewriter::RewriteCandidate(unique_ptr &candidate) { - auto &topmost_op = (LogicalOperator &)**candidate; + auto &topmost_op = *candidate; if (topmost_op.type != LogicalOperatorType::LOGICAL_PROJECTION && topmost_op.type != LogicalOperatorType::LOGICAL_WINDOW && topmost_op.type != LogicalOperatorType::LOGICAL_FILTER && @@ -122,7 +122,7 @@ bool UnnestRewriter::RewriteCandidate(unique_ptr *candidate) { D_ASSERT(delim_join.type == LogicalOperatorType::LOGICAL_DELIM_JOIN); GetDelimColumns(delim_join); - // LHS of the LOGICAL_DELIM_JOIN is a LOGICAL_WINDOW that contains a LOGICAL_PROJECTION + // LHS of the LOGICAL_DELIM_JOIN is a LOGICAL_WINDOW that contains a LOGICAL_PROJECTION/LOGICAL_CROSS_JOIN // this lhs_proj later becomes the child of the UNNEST idx_t delim_idx = delim_join.delim_flipped ? 1 : 0; @@ -158,10 +158,10 @@ bool UnnestRewriter::RewriteCandidate(unique_ptr *candidate) { return true; } -void UnnestRewriter::UpdateRHSBindings(unique_ptr *plan_ptr, unique_ptr *candidate, +void UnnestRewriter::UpdateRHSBindings(unique_ptr &plan, unique_ptr &candidate, UnnestRewriterPlanUpdater &updater) { - auto &topmost_op = (LogicalOperator &)**candidate; + auto &topmost_op = *candidate; idx_t shift = lhs_bindings.size(); vector *> path_to_unnest; @@ -189,7 +189,7 @@ void UnnestRewriter::UpdateRHSBindings(unique_ptr *plan_ptr, un } // update all bindings by shifting them - updater.VisitOperator(*plan_ptr->get()); + updater.VisitOperator(*plan); updater.replace_bindings.clear(); // update all bindings coming from the LHS to RHS bindings @@ -212,7 +212,7 @@ void UnnestRewriter::UpdateRHSBindings(unique_ptr *plan_ptr, un unnest.expressions.clear(); unnest.children.clear(); // update the bindings of the plan - updater.VisitOperator(*plan_ptr->get()); + updater.VisitOperator(*plan); updater.replace_bindings.clear(); // add the children again for (auto &temp_bound_unnest : temp_bound_unnests) { @@ -253,9 +253,9 @@ void UnnestRewriter::UpdateRHSBindings(unique_ptr *plan_ptr, un } void UnnestRewriter::UpdateBoundUnnestBindings(UnnestRewriterPlanUpdater &updater, - unique_ptr *candidate) { + unique_ptr &candidate) { - auto &topmost_op = (LogicalOperator &)**candidate; + auto &topmost_op = *candidate; // traverse LOGICAL_PROJECTION(s) auto curr_op = &topmost_op.children[0]; @@ -279,7 +279,7 @@ void UnnestRewriter::UpdateBoundUnnestBindings(UnnestRewriterPlanUpdater &update if (delim_binding.table_index == unnest_binding.table_index) { unnest_binding.table_index = overwritten_tbl_idx; - unnest_binding.column_index++; + unnest_binding.column_index = i; updater.replace_bindings.emplace_back(unnest_binding, delim_binding); unnest_cols.erase(unnest_it); break; diff --git a/src/duckdb/src/parallel/executor.cpp b/src/duckdb/src/parallel/executor.cpp index 9655c33a..44db75f1 100644 --- a/src/duckdb/src/parallel/executor.cpp +++ b/src/duckdb/src/parallel/executor.cpp @@ -684,39 +684,21 @@ void Executor::Flush(ThreadContext &thread_context) { } } -bool Executor::GetPipelinesProgress(double ¤t_progress, uint64_t ¤t_cardinality, - uint64_t &total_cardinality) { // LCOV_EXCL_START +idx_t Executor::GetPipelinesProgress(ProgressData &progress) { // LCOV_EXCL_START lock_guard elock(executor_lock); - vector progress; - vector cardinality; - total_cardinality = 0; - current_cardinality = 0; + progress.done = 0; + progress.total = 0; + idx_t count_invalid = 0; for (auto &pipeline : pipelines) { - double child_percentage; - idx_t child_cardinality; - - if (!pipeline->GetProgress(child_percentage, child_cardinality)) { - return false; + ProgressData p; + if (!pipeline->GetProgress(p)) { + count_invalid++; + } else { + progress.Add(p); } - progress.push_back(child_percentage); - cardinality.push_back(child_cardinality); - total_cardinality += child_cardinality; - } - if (total_cardinality == 0) { - return true; } - current_progress = 0; - - for (size_t i = 0; i < progress.size(); i++) { - progress[i] = MaxValue(0.0, MinValue(100.0, progress[i])); - current_cardinality = LossyNumericCast(static_cast( - static_cast(current_cardinality) + - static_cast(progress[i]) * static_cast(cardinality[i]) / static_cast(100))); - current_progress += progress[i] * double(cardinality[i]) / double(total_cardinality); - D_ASSERT(current_cardinality <= total_cardinality); - } - return true; + return count_invalid; } // LCOV_EXCL_STOP bool Executor::HasResultCollector() { diff --git a/src/duckdb/src/parallel/executor_task.cpp b/src/duckdb/src/parallel/executor_task.cpp index a1395f2f..ebd462f9 100644 --- a/src/duckdb/src/parallel/executor_task.cpp +++ b/src/duckdb/src/parallel/executor_task.cpp @@ -36,9 +36,14 @@ void ExecutorTask::Reschedule() { TaskExecutionResult ExecutorTask::Execute(TaskExecutionMode mode) { try { if (thread_context) { - thread_context->profiler.StartOperator(op); - auto result = ExecuteTask(mode); - thread_context->profiler.EndOperator(nullptr); + TaskExecutionResult result; + do { + thread_context->profiler.StartOperator(op); + // to allow continuous profiling, always execute in small steps + result = ExecuteTask(TaskExecutionMode::PROCESS_PARTIAL); + thread_context->profiler.EndOperator(nullptr); + executor.Flush(*thread_context); + } while (mode == TaskExecutionMode::PROCESS_ALL && result == TaskExecutionResult::TASK_NOT_FINISHED); return result; } else { return ExecuteTask(mode); diff --git a/src/duckdb/src/parallel/pipeline.cpp b/src/duckdb/src/parallel/pipeline.cpp index ca0443b9..4e15068f 100644 --- a/src/duckdb/src/parallel/pipeline.cpp +++ b/src/duckdb/src/parallel/pipeline.cpp @@ -72,17 +72,23 @@ ClientContext &Pipeline::GetClientContext() { return executor.context; } -bool Pipeline::GetProgress(double ¤t_percentage, idx_t &source_cardinality) { +bool Pipeline::GetProgress(ProgressData &progress) { D_ASSERT(source); - source_cardinality = MinValue(source->estimated_cardinality, 1ULL << 48ULL); + idx_t source_cardinality = MinValue(source->estimated_cardinality, 1ULL << 48ULL); + if (source_cardinality < 1) { + source_cardinality = 1; + } if (!initialized) { - current_percentage = 0; + progress.done = 0; + progress.total = double(source_cardinality); return true; } auto &client = executor.context; - current_percentage = source->GetProgress(client, *source_state); - current_percentage = sink->GetSinkProgress(client, *sink->sink_state, current_percentage); - return current_percentage >= 0; + + progress = source->GetProgress(client, *source_state); + progress.Normalize(double(source_cardinality)); + progress = sink->GetSinkProgress(client, *sink->sink_state, progress); + return progress.IsValid(); } void Pipeline::ScheduleSequentialTask(shared_ptr &event) { @@ -105,8 +111,9 @@ bool Pipeline::ScheduleParallel(shared_ptr &event) { return false; } } - if (sink->RequiresBatchIndex()) { - if (!source->SupportsBatchIndex()) { + auto partition_info = sink->RequiredPartitionInfo(); + if (partition_info.batch_index) { + if (!source->SupportsPartitioning(OperatorPartitionInfo::BatchIndex())) { throw InternalException( "Attempting to schedule a pipeline where the sink requires batch index but source does not support it"); } diff --git a/src/duckdb/src/parallel/pipeline_executor.cpp b/src/duckdb/src/parallel/pipeline_executor.cpp index 105d4629..4b32c99d 100644 --- a/src/duckdb/src/parallel/pipeline_executor.cpp +++ b/src/duckdb/src/parallel/pipeline_executor.cpp @@ -15,8 +15,9 @@ PipelineExecutor::PipelineExecutor(ClientContext &context_p, Pipeline &pipeline_ D_ASSERT(pipeline.source_state); if (pipeline.sink) { local_sink_state = pipeline.sink->GetLocalSinkState(context); - requires_batch_index = pipeline.sink->RequiresBatchIndex() && pipeline.source->SupportsBatchIndex(); - if (requires_batch_index) { + required_partition_info = pipeline.sink->RequiredPartitionInfo(); + if (required_partition_info.AnyRequired()) { + D_ASSERT(pipeline.source->SupportsPartitioning(OperatorPartitionInfo::BatchIndex())); auto &partition_info = local_sink_state->partition_info; D_ASSERT(!partition_info.batch_index.IsValid()); // batch index is not set yet - initialize before fetching anything @@ -48,7 +49,7 @@ PipelineExecutor::PipelineExecutor(ClientContext &context_p, Pipeline &pipeline_ InitializeChunk(final_chunk); } -bool PipelineExecutor::TryFlushCachingOperators() { +bool PipelineExecutor::TryFlushCachingOperators(ExecutionBudget &chunk_budget) { if (!started_flushing) { // Remainder of this method assumes any in process operators are from flushing D_ASSERT(in_process_operators.empty()); @@ -56,7 +57,9 @@ bool PipelineExecutor::TryFlushCachingOperators() { flushing_idx = IsFinished() ? idx_t(finished_processing_idx) : 0; } - // Go over each operator and keep flushing them using `FinalExecute` until empty + // For each operator that supports FinalExecute, + // extract every chunk from it and push it through the rest of the pipeline + // before moving onto the next operators' FinalExecute while (flushing_idx < pipeline.operators.size()) { if (!pipeline.operators[flushing_idx].get().RequiresFinalExecute()) { flushing_idx++; @@ -76,7 +79,6 @@ bool PipelineExecutor::TryFlushCachingOperators() { auto ¤t_operator = pipeline.operators[flushing_idx].get(); OperatorFinalizeResultType finalize_result; - OperatorResultType push_result; if (in_process_operators.empty()) { curr_chunk.Reset(); @@ -89,7 +91,7 @@ bool PipelineExecutor::TryFlushCachingOperators() { finalize_result = OperatorFinalizeResultType::HAVE_MORE_OUTPUT; } - push_result = ExecutePushInternal(curr_chunk, flushing_idx + 1); + auto push_result = ExecutePushInternal(curr_chunk, chunk_budget, flushing_idx + 1); if (finalize_result == OperatorFinalizeResultType::HAVE_MORE_OUTPUT) { should_flush_current_idx = true; @@ -97,43 +99,58 @@ bool PipelineExecutor::TryFlushCachingOperators() { should_flush_current_idx = false; } - if (push_result == OperatorResultType::BLOCKED) { + switch (push_result) { + case OperatorResultType::BLOCKED: { remaining_sink_chunk = true; return false; - } else if (push_result == OperatorResultType::FINISHED) { + } + case OperatorResultType::HAVE_MORE_OUTPUT: { + D_ASSERT(chunk_budget.IsDepleted()); + // The chunk budget was used up, pushing the chunk through the pipeline created more chunks + // we need to continue this the next time Execute is called. + return false; + } + case OperatorResultType::NEED_MORE_INPUT: + continue; + case OperatorResultType::FINISHED: break; + default: + throw InternalException("Unexpected OperatorResultType (%s) in TryFlushCachingOperators", + EnumUtil::ToString(push_result)); } + break; } return true; } -SinkNextBatchType PipelineExecutor::NextBatch(duckdb::DataChunk &source_chunk) { - D_ASSERT(requires_batch_index); - idx_t next_batch_index; +SinkNextBatchType PipelineExecutor::NextBatch(DataChunk &source_chunk) { + D_ASSERT(required_partition_info.AnyRequired()); auto max_batch_index = pipeline.base_batch_index + PipelineBuildState::BATCH_INCREMENT - 1; - if (source_chunk.size() == 0) { - // set it to the maximum valid batch index value for the current pipeline - next_batch_index = max_batch_index; - } else { - auto batch_index = - pipeline.source->GetBatchIndex(context, source_chunk, *pipeline.source_state, *local_source_state); + // by default set it to the maximum valid batch index value for the current pipeline + OperatorPartitionData next_data(max_batch_index); + if (source_chunk.size() > 0) { + // if we retrieved data - initialize the next batch index + auto partition_data = pipeline.source->GetPartitionData(context, source_chunk, *pipeline.source_state, + *local_source_state, required_partition_info); + auto batch_index = partition_data.batch_index; // we start with the base_batch_index as a valid starting value. Make sure that next batch is called below - next_batch_index = pipeline.base_batch_index + batch_index + 1; - if (next_batch_index >= max_batch_index) { + next_data = std::move(partition_data); + next_data.batch_index = pipeline.base_batch_index + batch_index + 1; + if (next_data.batch_index >= max_batch_index) { throw InternalException("Pipeline batch index - invalid batch index %llu returned by source operator", batch_index); } } auto &partition_info = local_sink_state->partition_info; - if (next_batch_index == partition_info.batch_index.GetIndex()) { + if (next_data.batch_index == partition_info.batch_index.GetIndex()) { // no changes, return return SinkNextBatchType::READY; } // batch index has changed - update it - if (partition_info.batch_index.GetIndex() > next_batch_index) { + if (partition_info.batch_index.GetIndex() > next_data.batch_index) { throw InternalException( "Pipeline batch index - gotten lower batch index %llu (down from previous batch index of %llu)", - next_batch_index, partition_info.batch_index.GetIndex()); + next_data.batch_index, partition_info.batch_index.GetIndex()); } #ifdef DUCKDB_DEBUG_ASYNC_SINK_SOURCE if (debug_blocked_next_batch_count < debug_blocked_target_count) { @@ -150,7 +167,8 @@ SinkNextBatchType PipelineExecutor::NextBatch(duckdb::DataChunk &source_chunk) { } #endif auto current_batch = partition_info.batch_index.GetIndex(); - partition_info.batch_index = next_batch_index; + partition_info.batch_index = next_data.batch_index; + partition_info.partition_data = std::move(next_data.partition_data); OperatorSinkNextBatchInput next_batch_input {*pipeline.sink->sink_state, *local_sink_state, interrupt_state}; // call NextBatch before updating min_batch_index to provide the opportunity to flush the previous batch auto next_batch_result = pipeline.sink->NextBatch(context, next_batch_input); @@ -160,7 +178,7 @@ SinkNextBatchType PipelineExecutor::NextBatch(duckdb::DataChunk &source_chunk) { return SinkNextBatchType::BLOCKED; } - partition_info.min_batch_index = pipeline.UpdateBatchIndex(current_batch, next_batch_index); + partition_info.min_batch_index = pipeline.UpdateBatchIndex(current_batch, next_data.batch_index); return SinkNextBatchType::READY; } @@ -168,7 +186,8 @@ SinkNextBatchType PipelineExecutor::NextBatch(duckdb::DataChunk &source_chunk) { PipelineExecuteResult PipelineExecutor::Execute(idx_t max_chunks) { D_ASSERT(pipeline.sink); auto &source_chunk = pipeline.operators.empty() ? final_chunk : *intermediate_chunks[0]; - for (idx_t i = 0; i < max_chunks; i++) { + ExecutionBudget chunk_budget(max_chunks); + do { if (context.client.interrupted) { throw InterruptException(); } @@ -179,22 +198,27 @@ PipelineExecuteResult PipelineExecutor::Execute(idx_t max_chunks) { break; } else if (remaining_sink_chunk) { // The pipeline was interrupted by the Sink. We should retry sinking the final chunk. - result = ExecutePushInternal(final_chunk); + result = ExecutePushInternal(final_chunk, chunk_budget); + D_ASSERT(result != OperatorResultType::HAVE_MORE_OUTPUT); remaining_sink_chunk = false; } else if (!in_process_operators.empty() && !started_flushing) { - // The pipeline was interrupted by the Sink when pushing a source chunk through the pipeline. We need to - // re-push the same source chunk through the pipeline because there are in_process operators, meaning that - // the result for the pipeline + // Operator(s) in the pipeline have returned `HAVE_MORE_OUTPUT` in the last Execute call + // the operators have to be called with the same input chunk to produce the rest of the output D_ASSERT(source_chunk.size() > 0); - result = ExecutePushInternal(source_chunk); + result = ExecutePushInternal(source_chunk, chunk_budget); } else if (exhausted_source && !next_batch_blocked && !done_flushing) { // The source was exhausted, try flushing all operators - auto flush_completed = TryFlushCachingOperators(); + auto flush_completed = TryFlushCachingOperators(chunk_budget); if (flush_completed) { done_flushing = true; break; } else { - return PipelineExecuteResult::INTERRUPTED; + if (remaining_sink_chunk) { + return PipelineExecuteResult::INTERRUPTED; + } else { + D_ASSERT(chunk_budget.IsDepleted()); + return PipelineExecuteResult::NOT_FINISHED; + } } } else if (!exhausted_source || next_batch_blocked) { SourceResultType source_result; @@ -210,7 +234,7 @@ PipelineExecuteResult PipelineExecutor::Execute(idx_t max_chunks) { } } - if (requires_batch_index) { + if (required_partition_info.AnyRequired()) { auto next_batch_result = NextBatch(source_chunk); next_batch_blocked = next_batch_result == SinkNextBatchType::BLOCKED; if (next_batch_blocked) { @@ -223,7 +247,7 @@ PipelineExecuteResult PipelineExecutor::Execute(idx_t max_chunks) { continue; } - result = ExecutePushInternal(source_chunk); + result = ExecutePushInternal(source_chunk, chunk_budget); } else { throw InternalException("Unexpected state reached in pipeline executor"); } @@ -237,7 +261,7 @@ PipelineExecuteResult PipelineExecutor::Execute(idx_t max_chunks) { if (result == OperatorResultType::FINISHED) { break; } - } + } while (chunk_budget.Next()); if ((!exhausted_source || !done_flushing) && !IsFinished()) { return PipelineExecuteResult::NOT_FINISHED; @@ -254,10 +278,6 @@ PipelineExecuteResult PipelineExecutor::Execute() { return Execute(NumericLimits::Maximum()); } -OperatorResultType PipelineExecutor::ExecutePush(DataChunk &input) { // LCOV_EXCL_START - return ExecutePushInternal(input); -} // LCOV_EXCL_STOP - void PipelineExecutor::FinishProcessing(int32_t operator_idx) { finished_processing_idx = operator_idx < 0 ? NumericLimits::Maximum() : operator_idx; in_process_operators = stack(); @@ -278,7 +298,8 @@ bool PipelineExecutor::IsFinished() { return finished_processing_idx >= 0; } -OperatorResultType PipelineExecutor::ExecutePushInternal(DataChunk &input, idx_t initial_idx) { +OperatorResultType PipelineExecutor::ExecutePushInternal(DataChunk &input, ExecutionBudget &chunk_budget, + idx_t initial_idx) { D_ASSERT(pipeline.sink); if (input.size() == 0) { // LCOV_EXCL_START return OperatorResultType::NEED_MORE_INPUT; @@ -287,11 +308,13 @@ OperatorResultType PipelineExecutor::ExecutePushInternal(DataChunk &input, idx_t // this loop will continuously push the input chunk through the pipeline as long as: // - the OperatorResultType for the Execute is HAVE_MORE_OUTPUT // - the Sink doesn't block - while (true) { - OperatorResultType result; + // - the ExecutionBudget has not been depleted + OperatorResultType result = OperatorResultType::HAVE_MORE_OUTPUT; + do { // Note: if input is the final_chunk, we don't do any executing, the chunk just needs to be sinked if (&input != &final_chunk) { final_chunk.Reset(); + // Execute and put the result into 'final_chunk' result = Execute(input, final_chunk, initial_idx); if (result == OperatorResultType::FINISHED) { return OperatorResultType::FINISHED; @@ -320,7 +343,8 @@ OperatorResultType PipelineExecutor::ExecutePushInternal(DataChunk &input, idx_t if (result == OperatorResultType::NEED_MORE_INPUT) { return OperatorResultType::NEED_MORE_INPUT; } - } + } while (chunk_budget.Next()); + return result; } PipelineExecuteResult PipelineExecutor::PushFinalize() { diff --git a/src/duckdb/src/parallel/task_scheduler.cpp b/src/duckdb/src/parallel/task_scheduler.cpp index 743a52e5..fd6671a3 100644 --- a/src/duckdb/src/parallel/task_scheduler.cpp +++ b/src/duckdb/src/parallel/task_scheduler.cpp @@ -335,8 +335,13 @@ idx_t TaskScheduler::GetEstimatedCPUId() { #elif defined(_GNU_SOURCE) auto cpu = sched_getcpu(); if (cpu < 0) { +#ifndef DUCKDB_NO_THREADS // fallback to thread id return (idx_t)std::hash()(std::this_thread::get_id()); +#else + + return 0; +#endif } return (idx_t)cpu; #elif defined(__aarch64__) && defined(__APPLE__) @@ -345,8 +350,12 @@ idx_t TaskScheduler::GetEstimatedCPUId() { asm volatile("mrs %x0, tpidrro_el0" : "=r"(c)::"memory"); return (idx_t)(c & (1 << 3) - 1); #else +#ifndef DUCKDB_NO_THREADS // fallback to thread id return (idx_t)std::hash()(std::this_thread::get_id()); +#else + return 0; +#endif #endif #endif } diff --git a/src/duckdb/src/parser/constraints/unique_constraint.cpp b/src/duckdb/src/parser/constraints/unique_constraint.cpp index 8613231e..51c4631b 100644 --- a/src/duckdb/src/parser/constraints/unique_constraint.cpp +++ b/src/duckdb/src/parser/constraints/unique_constraint.cpp @@ -1,6 +1,5 @@ #include "duckdb/parser/constraints/unique_constraint.hpp" -#include "duckdb/common/limits.hpp" #include "duckdb/parser/keyword_helper.hpp" namespace duckdb { @@ -8,10 +7,11 @@ namespace duckdb { UniqueConstraint::UniqueConstraint() : Constraint(ConstraintType::UNIQUE), index(DConstants::INVALID_INDEX) { } -UniqueConstraint::UniqueConstraint(LogicalIndex index, bool is_primary_key) +UniqueConstraint::UniqueConstraint(const LogicalIndex index, const bool is_primary_key) : Constraint(ConstraintType::UNIQUE), index(index), is_primary_key(is_primary_key) { } -UniqueConstraint::UniqueConstraint(vector columns, bool is_primary_key) + +UniqueConstraint::UniqueConstraint(vector columns, const bool is_primary_key) : Constraint(ConstraintType::UNIQUE), index(DConstants::INVALID_INDEX), columns(std::move(columns)), is_primary_key(is_primary_key) { } @@ -30,13 +30,76 @@ string UniqueConstraint::ToString() const { unique_ptr UniqueConstraint::Copy() const { if (!HasIndex()) { return make_uniq(columns, is_primary_key); - } else { - auto result = make_uniq(index, is_primary_key); - if (!columns.empty()) { - result->columns.push_back(columns[0]); - } - return std::move(result); } + + auto result = make_uniq(index, is_primary_key); + if (!columns.empty()) { + result->columns.push_back(columns[0]); + } + return std::move(result); +} + +bool UniqueConstraint::IsPrimaryKey() const { + return is_primary_key; +} + +bool UniqueConstraint::HasIndex() const { + return index.index != DConstants::INVALID_INDEX; +} + +LogicalIndex UniqueConstraint::GetIndex() const { + if (!HasIndex()) { + throw InternalException("UniqueConstraint::GetIndex called on a unique constraint without an index"); + } + return index; +} + +void UniqueConstraint::SetIndex(const LogicalIndex new_index) { + D_ASSERT(new_index.index != DConstants::INVALID_INDEX); + index = new_index; +} + +const vector &UniqueConstraint::GetColumnNames() const { + D_ASSERT(!columns.empty()); + return columns; +} + +vector &UniqueConstraint::GetColumnNamesMutable() { + D_ASSERT(!columns.empty()); + return columns; +} + +vector UniqueConstraint::GetLogicalIndexes(const ColumnList &column_list) const { + if (HasIndex()) { + return {GetIndex()}; + } + + vector indexes; + for (auto &col_name : GetColumnNames()) { + D_ASSERT(column_list.ColumnExists(col_name)); + auto &col = column_list.GetColumn(col_name); + D_ASSERT(!col.Generated()); + indexes.push_back(col.Logical()); + } + return indexes; +} + +string UniqueConstraint::GetName(const string &table_name) const { + auto type = IsPrimaryKey() ? IndexConstraintType::PRIMARY : IndexConstraintType::UNIQUE; + auto type_name = EnumUtil::ToString(type); + + string name; + for (const auto &column_name : GetColumnNames()) { + name += "_" + column_name; + } + return type_name + "_" + table_name + name; +} + +void UniqueConstraint::SetColumnName(const string &column_name) { + if (!columns.empty()) { + return; + } + columns.push_back(column_name); } } // namespace duckdb diff --git a/src/duckdb/src/parser/expression/columnref_expression.cpp b/src/duckdb/src/parser/expression/columnref_expression.cpp index 70720f97..c1eb6e9c 100644 --- a/src/duckdb/src/parser/expression/columnref_expression.cpp +++ b/src/duckdb/src/parser/expression/columnref_expression.cpp @@ -3,9 +3,7 @@ #include "duckdb/common/types/hash.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/parser/qualified_name.hpp" - -#include "duckdb/common/serializer/serializer.hpp" -#include "duckdb/common/serializer/deserializer.hpp" +#include "duckdb/planner/binding_alias.hpp" namespace duckdb { @@ -17,6 +15,20 @@ ColumnRefExpression::ColumnRefExpression(string column_name, string table_name) : vector {std::move(table_name), std::move(column_name)}) { } +ColumnRefExpression::ColumnRefExpression(string column_name, const BindingAlias &alias) + : ParsedExpression(ExpressionType::COLUMN_REF, ExpressionClass::COLUMN_REF) { + if (alias.IsSet()) { + if (!alias.GetCatalog().empty()) { + column_names.push_back(alias.GetCatalog()); + } + if (!alias.GetSchema().empty()) { + column_names.push_back(alias.GetSchema()); + } + column_names.push_back(alias.GetAlias()); + } + column_names.push_back(std::move(column_name)); +} + ColumnRefExpression::ColumnRefExpression(string column_name) : ColumnRefExpression(vector {std::move(column_name)}) { } diff --git a/src/duckdb/src/parser/expression/lambdaref_expression.cpp b/src/duckdb/src/parser/expression/lambdaref_expression.cpp index 786d1091..fed844fe 100644 --- a/src/duckdb/src/parser/expression/lambdaref_expression.cpp +++ b/src/duckdb/src/parser/expression/lambdaref_expression.cpp @@ -47,7 +47,7 @@ LambdaRefExpression::FindMatchingBinding(optional_ptr> &lam if (lambda_bindings) { for (idx_t i = lambda_bindings->size(); i > 0; i--) { if ((*lambda_bindings)[i - 1].HasMatchingBinding(column_name)) { - D_ASSERT(!(*lambda_bindings)[i - 1].alias.empty()); + D_ASSERT((*lambda_bindings)[i - 1].alias.IsSet()); return make_uniq(i - 1, column_name); } } diff --git a/src/duckdb/src/parser/expression/star_expression.cpp b/src/duckdb/src/parser/expression/star_expression.cpp index 3589b953..22279f12 100644 --- a/src/duckdb/src/parser/expression/star_expression.cpp +++ b/src/duckdb/src/parser/expression/star_expression.cpp @@ -33,7 +33,7 @@ string StarExpression::ToString() const { if (!first_entry) { result += ", "; } - result += KeywordHelper::WriteOptionallyQuoted(entry); + result += entry.ToString(); first_entry = false; } result += ")"; @@ -52,6 +52,20 @@ string StarExpression::ToString() const { } result += ")"; } + if (!rename_list.empty()) { + result += " RENAME ("; + bool first_entry = true; + for (auto &entry : rename_list) { + if (!first_entry) { + result += ", "; + } + result += entry.first.ToString(); + result += " AS "; + result += KeywordHelper::WriteOptionallyQuoted(entry.second); + first_entry = false; + } + result += ")"; + } if (columns) { result += ")"; } @@ -59,7 +73,7 @@ string StarExpression::ToString() const { } bool StarExpression::Equal(const StarExpression &a, const StarExpression &b) { - if (a.relation_name != b.relation_name || a.exclude_list != b.exclude_list) { + if (a.relation_name != b.relation_name || a.exclude_list != b.exclude_list || a.rename_list != b.rename_list) { return false; } if (a.columns != b.columns) { @@ -116,6 +130,7 @@ unique_ptr StarExpression::Copy() const { for (auto &entry : replace_list) { copy->replace_list[entry.first] = entry.second->Copy(); } + copy->rename_list = rename_list; copy->columns = columns; copy->expr = expr ? expr->Copy() : nullptr; copy->CopyProperties(*this); @@ -123,4 +138,33 @@ unique_ptr StarExpression::Copy() const { return std::move(copy); } +StarExpression::StarExpression(const case_insensitive_set_t &exclude_list_p, qualified_column_set_t qualified_set) + : ParsedExpression(ExpressionType::STAR, ExpressionClass::STAR), exclude_list(std::move(qualified_set)) { + for (auto &entry : exclude_list_p) { + exclude_list.insert(QualifiedColumnName(entry)); + } +} + +case_insensitive_set_t StarExpression::SerializedExcludeList() const { + // we serialize non-qualified elements in a separate list of only column names for backwards compatibility + case_insensitive_set_t result; + for (auto &entry : exclude_list) { + if (!entry.IsQualified()) { + result.insert(entry.column); + } + } + return result; +} + +qualified_column_set_t StarExpression::SerializedQualifiedExcludeList() const { + // we serialize only qualified elements in the qualified list for backwards compatibility + qualified_column_set_t result; + for (auto &entry : exclude_list) { + if (entry.IsQualified()) { + result.insert(entry); + } + } + return result; +} + } // namespace duckdb diff --git a/src/duckdb/src/parser/parsed_data/alter_info.cpp b/src/duckdb/src/parser/parsed_data/alter_info.cpp index e4a78ba9..2f90d0ab 100644 --- a/src/duckdb/src/parser/parsed_data/alter_info.cpp +++ b/src/duckdb/src/parser/parsed_data/alter_info.cpp @@ -1,7 +1,8 @@ #include "duckdb/parser/parsed_data/alter_info.hpp" -#include "duckdb/parser/parsed_data/alter_table_info.hpp" + #include "duckdb/parser/parsed_data/alter_scalar_function_info.hpp" -#include "duckdb/parser/parsed_data/alter_table_function_info.hpp" +#include "duckdb/parser/parsed_data/alter_table_info.hpp" +#include "duckdb/parser/constraints/unique_constraint.hpp" namespace duckdb { @@ -25,4 +26,27 @@ AlterEntryData AlterInfo::GetAlterEntryData() const { return data; } +bool AlterInfo::IsAddPrimaryKey() const { + if (type != AlterType::ALTER_TABLE) { + return false; + } + + auto &table_info = Cast(); + if (table_info.alter_table_type != AlterTableType::ADD_CONSTRAINT) { + return false; + } + + auto &constraint_info = table_info.Cast(); + if (constraint_info.constraint->type != ConstraintType::UNIQUE) { + return false; + } + + auto &unique_info = constraint_info.constraint->Cast(); + if (!unique_info.IsPrimaryKey()) { + return false; + } + + return true; +} + } // namespace duckdb diff --git a/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp b/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp index 269a87d6..3de4fc52 100644 --- a/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp +++ b/src/duckdb/src/parser/parsed_data/alter_scalar_function_info.cpp @@ -1,5 +1,5 @@ #include "duckdb/parser/parsed_data/alter_scalar_function_info.hpp" - +#include "duckdb/parser/parsed_data/create_scalar_function_info.hpp" #include "duckdb/parser/constraint.hpp" namespace duckdb { @@ -22,7 +22,8 @@ CatalogType AlterScalarFunctionInfo::GetCatalogType() const { //===--------------------------------------------------------------------===// // AddScalarFunctionOverloadInfo //===--------------------------------------------------------------------===// -AddScalarFunctionOverloadInfo::AddScalarFunctionOverloadInfo(AlterEntryData data, ScalarFunctionSet new_overloads_p) +AddScalarFunctionOverloadInfo::AddScalarFunctionOverloadInfo(AlterEntryData data, + unique_ptr new_overloads_p) : AlterScalarFunctionInfo(AlterScalarFunctionType::ADD_FUNCTION_OVERLOADS, std::move(data)), new_overloads(std::move(new_overloads_p)) { this->allow_internal = true; @@ -32,7 +33,8 @@ AddScalarFunctionOverloadInfo::~AddScalarFunctionOverloadInfo() { } unique_ptr AddScalarFunctionOverloadInfo::Copy() const { - return make_uniq_base(GetAlterEntryData(), new_overloads); + return make_uniq_base( + GetAlterEntryData(), unique_ptr_cast(new_overloads->Copy())); } string AddScalarFunctionOverloadInfo::ToString() const { diff --git a/src/duckdb/src/parser/parsed_data/alter_table_info.cpp b/src/duckdb/src/parser/parsed_data/alter_table_info.cpp index 1a82ca1f..ddf7db07 100644 --- a/src/duckdb/src/parser/parsed_data/alter_table_info.cpp +++ b/src/duckdb/src/parser/parsed_data/alter_table_info.cpp @@ -261,7 +261,9 @@ string ChangeColumnTypeInfo::ToString() const { result += " ALTER COLUMN "; result += KeywordHelper::WriteOptionallyQuoted(column_name); result += " TYPE "; - result += target_type.ToString(); // FIXME: ToSQLString ? + if (target_type.IsValid()) { + result += target_type.ToString(); + } auto extra_type_info = target_type.AuxInfo(); if (extra_type_info && extra_type_info->type == ExtraTypeInfoType::STRING_TYPE_INFO) { auto &string_info = extra_type_info->Cast(); @@ -445,4 +447,30 @@ string RenameViewInfo::ToString() const { return result; } +//===--------------------------------------------------------------------===// +// AddConstraintInfo +//===--------------------------------------------------------------------===// +AddConstraintInfo::AddConstraintInfo() : AlterTableInfo(AlterTableType::ADD_CONSTRAINT) { +} + +AddConstraintInfo::AddConstraintInfo(AlterEntryData data, unique_ptr constraint_p) + : AlterTableInfo(AlterTableType::ADD_CONSTRAINT, std::move(data)), constraint(std::move(constraint_p)) { +} + +AddConstraintInfo::~AddConstraintInfo() { +} + +unique_ptr AddConstraintInfo::Copy() const { + return make_uniq_base(GetAlterEntryData(), constraint->Copy()); +} + +string AddConstraintInfo::ToString() const { + string result = "ALTER TABLE "; + result += QualifierToString(catalog, schema, name); + result += " ADD "; + result += constraint->ToString(); + result += ";"; + return result; +} + } // namespace duckdb diff --git a/src/duckdb/src/parser/parsed_data/attach_info.cpp b/src/duckdb/src/parser/parsed_data/attach_info.cpp index 63cf8b66..3ad50d8b 100644 --- a/src/duckdb/src/parser/parsed_data/attach_info.cpp +++ b/src/duckdb/src/parser/parsed_data/attach_info.cpp @@ -6,18 +6,18 @@ namespace duckdb { -optional_idx AttachInfo::GetBlockAllocSize() const { - +StorageOptions AttachInfo::GetStorageOptions() const { + StorageOptions storage_options; for (auto &entry : options) { if (entry.first == "block_size") { // Extract the block allocation size. This is NOT the actual memory available on a block (block_size), // even though the corresponding option we expose to the user is called "block_size". - idx_t block_alloc_size = UBigIntValue::Get(entry.second.DefaultCastAs(LogicalType::UBIGINT)); - Storage::VerifyBlockAllocSize(block_alloc_size); - return block_alloc_size; + storage_options.block_alloc_size = entry.second.GetValue(); + } else if (entry.first == "row_group_size") { + storage_options.row_group_size = entry.second.GetValue(); } } - return optional_idx(); + return storage_options; } unique_ptr AttachInfo::Copy() const { diff --git a/src/duckdb/src/parser/parsed_data/create_aggregate_function_info.cpp b/src/duckdb/src/parser/parsed_data/create_aggregate_function_info.cpp index 8e4f31e2..4e7476b8 100644 --- a/src/duckdb/src/parser/parsed_data/create_aggregate_function_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_aggregate_function_info.cpp @@ -20,7 +20,7 @@ CreateAggregateFunctionInfo::CreateAggregateFunctionInfo(AggregateFunctionSet se unique_ptr CreateAggregateFunctionInfo::Copy() const { auto result = make_uniq(functions); - CopyProperties(*result); + CopyFunctionProperties(*result); return std::move(result); } diff --git a/src/duckdb/src/parser/parsed_data/create_function_info.cpp b/src/duckdb/src/parser/parsed_data/create_function_info.cpp new file mode 100644 index 00000000..2c3dde83 --- /dev/null +++ b/src/duckdb/src/parser/parsed_data/create_function_info.cpp @@ -0,0 +1,17 @@ +#include "duckdb/parser/parsed_data/create_function_info.hpp" + +namespace duckdb { + +CreateFunctionInfo::CreateFunctionInfo(CatalogType type, string schema) : CreateInfo(type, std::move(schema)) { + D_ASSERT(type == CatalogType::SCALAR_FUNCTION_ENTRY || type == CatalogType::AGGREGATE_FUNCTION_ENTRY || + type == CatalogType::TABLE_FUNCTION_ENTRY || type == CatalogType::PRAGMA_FUNCTION_ENTRY || + type == CatalogType::MACRO_ENTRY || type == CatalogType::TABLE_MACRO_ENTRY); +} + +void CreateFunctionInfo::CopyFunctionProperties(CreateFunctionInfo &other) const { + CopyProperties(other); + other.name = name; + other.descriptions = descriptions; +} + +} // namespace duckdb diff --git a/src/duckdb/src/parser/parsed_data/create_index_info.cpp b/src/duckdb/src/parser/parsed_data/create_index_info.cpp index 01e2840f..7fd3a220 100644 --- a/src/duckdb/src/parser/parsed_data/create_index_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_index_info.cpp @@ -1,6 +1,7 @@ #include "duckdb/parser/parsed_data/create_index_info.hpp" -#include "duckdb/parser/parsed_expression_iterator.hpp" + #include "duckdb/parser/expression/columnref_expression.hpp" +#include "duckdb/parser/parsed_expression_iterator.hpp" namespace duckdb { @@ -14,16 +15,17 @@ CreateIndexInfo::CreateIndexInfo(const duckdb::CreateIndexInfo &info) } static void RemoveTableQualificationRecursive(unique_ptr &expr, const string &table_name) { - if (expr->GetExpressionType() == ExpressionType::COLUMN_REF) { - auto &col_ref = expr->Cast(); - auto &col_names = col_ref.column_names; - if (col_ref.IsQualified() && col_ref.GetTableName() == table_name) { - col_names.erase(col_names.begin()); - } - } else { + if (expr->GetExpressionType() != ExpressionType::COLUMN_REF) { ParsedExpressionIterator::EnumerateChildren(*expr, [&table_name](unique_ptr &child) { RemoveTableQualificationRecursive(child, table_name); }); + return; + } + + auto &col_ref = expr->Cast(); + auto &col_names = col_ref.column_names; + if (col_ref.IsQualified() && col_ref.GetTableName() == table_name) { + col_names.erase(col_names.begin()); } } @@ -33,18 +35,19 @@ vector CreateIndexInfo::ExpressionsToList() const { for (idx_t i = 0; i < parsed_expressions.size(); i++) { auto &expr = parsed_expressions[i]; auto copy = expr->Copy(); - // column ref expressions are qualified with the table name - // we need to remove them to reproduce the original query + + // Column reference expressions are qualified with the table name. + // We need to remove them to reproduce the original query. RemoveTableQualificationRecursive(copy, table); bool add_parenthesis = true; if (copy->type == ExpressionType::COLUMN_REF) { auto &column_ref = copy->Cast(); if (!column_ref.IsQualified()) { - // Only when column references are not qualified, i.e (col1, col2) - // then these expressions do not need to be wrapped in parenthesis + // Only not qualified references like (col1, col2) don't need parenthesis. add_parenthesis = false; } } + if (add_parenthesis) { list.push_back(StringUtil::Format("(%s)", copy->ToString())); } else { @@ -99,7 +102,6 @@ string CreateIndexInfo::ToString() const { } unique_ptr CreateIndexInfo::Copy() const { - auto result = make_uniq(*this); CopyProperties(*result); @@ -109,7 +111,6 @@ unique_ptr CreateIndexInfo::Copy() const { for (auto &expr : parsed_expressions) { result->parsed_expressions.push_back(expr->Copy()); } - return std::move(result); } diff --git a/src/duckdb/src/parser/parsed_data/create_macro_info.cpp b/src/duckdb/src/parser/parsed_data/create_macro_info.cpp index a732eac5..0891b32d 100644 --- a/src/duckdb/src/parser/parsed_data/create_macro_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_macro_info.cpp @@ -46,7 +46,7 @@ unique_ptr CreateMacroInfo::Copy() const { result->macros.push_back(macro->Copy()); } result->name = name; - CopyProperties(*result); + CopyFunctionProperties(*result); return std::move(result); } diff --git a/src/duckdb/src/parser/parsed_data/create_pragma_function_info.cpp b/src/duckdb/src/parser/parsed_data/create_pragma_function_info.cpp index 6d2c8a15..7e38ee88 100644 --- a/src/duckdb/src/parser/parsed_data/create_pragma_function_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_pragma_function_info.cpp @@ -16,7 +16,7 @@ CreatePragmaFunctionInfo::CreatePragmaFunctionInfo(string name, PragmaFunctionSe unique_ptr CreatePragmaFunctionInfo::Copy() const { auto result = make_uniq(functions.name, functions); - CopyProperties(*result); + CopyFunctionProperties(*result); return std::move(result); } diff --git a/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp b/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp index 6d01bcfb..51598a72 100644 --- a/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_scalar_function_info.cpp @@ -22,13 +22,14 @@ unique_ptr CreateScalarFunctionInfo::Copy() const { ScalarFunctionSet set(name); set.functions = functions.functions; auto result = make_uniq(std::move(set)); - CopyProperties(*result); + CopyFunctionProperties(*result); return std::move(result); } unique_ptr CreateScalarFunctionInfo::GetAlterInfo() const { return make_uniq_base( - AlterEntryData(catalog, schema, name, OnEntryNotFound::RETURN_NULL), functions); + AlterEntryData(catalog, schema, name, OnEntryNotFound::RETURN_NULL), + unique_ptr_cast(Copy())); } } // namespace duckdb diff --git a/src/duckdb/src/parser/parsed_data/create_schema_info.cpp b/src/duckdb/src/parser/parsed_data/create_schema_info.cpp index 36796b95..e7c7f3f8 100644 --- a/src/duckdb/src/parser/parsed_data/create_schema_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_schema_info.cpp @@ -22,7 +22,7 @@ string CreateSchemaInfo::ToString() const { break; } case OnCreateConflict::IGNORE_ON_CONFLICT: { - ret += "CREATE SCHEMA " + qualified + " IF NOT EXISTS;"; + ret += "CREATE SCHEMA IF NOT EXISTS " + qualified + ";"; break; } case OnCreateConflict::REPLACE_ON_CONFLICT: { diff --git a/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp b/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp index c2d297b5..3e774fba 100644 --- a/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_table_function_info.cpp @@ -22,7 +22,7 @@ unique_ptr CreateTableFunctionInfo::Copy() const { TableFunctionSet set(name); set.functions = functions.functions; auto result = make_uniq(std::move(set)); - CopyProperties(*result); + CopyFunctionProperties(*result); return std::move(result); } diff --git a/src/duckdb/src/parser/parsed_data/create_table_info.cpp b/src/duckdb/src/parser/parsed_data/create_table_info.cpp index c9df2578..0568a8fd 100644 --- a/src/duckdb/src/parser/parsed_data/create_table_info.cpp +++ b/src/duckdb/src/parser/parsed_data/create_table_info.cpp @@ -47,6 +47,7 @@ string CreateTableInfo::ToString() const { ret += QualifierToString(temporary ? "" : catalog, schema, table); if (query != nullptr) { + ret += TableCatalogEntry::ColumnNamesToSQL(columns); ret += " AS " + query->ToString(); } else { ret += TableCatalogEntry::ColumnsToSQL(columns, constraints) + ";"; diff --git a/src/duckdb/src/parser/parsed_data/exported_table_data.cpp b/src/duckdb/src/parser/parsed_data/exported_table_data.cpp new file mode 100644 index 00000000..d3573bc0 --- /dev/null +++ b/src/duckdb/src/parser/parsed_data/exported_table_data.cpp @@ -0,0 +1,22 @@ +#include "duckdb/parser/parsed_data/exported_table_data.hpp" +#include "duckdb/catalog/catalog.hpp" + +namespace duckdb { + +ExportedTableInfo::ExportedTableInfo(TableCatalogEntry &entry, ExportedTableData table_data_p, + vector ¬_null_columns_p) + : entry(entry), table_data(std::move(table_data_p)) { + table_data.not_null_columns = not_null_columns_p; +} + +ExportedTableInfo::ExportedTableInfo(ClientContext &context, ExportedTableData table_data_p) + : entry(GetEntry(context, table_data_p)), table_data(std::move(table_data_p)) { +} + +TableCatalogEntry &ExportedTableInfo::GetEntry(ClientContext &context, const ExportedTableData &table_data) { + return Catalog::GetEntry(context, CatalogType::TABLE_ENTRY, table_data.database_name, table_data.schema_name, + table_data.table_name) + .Cast(); +} + +} // namespace duckdb diff --git a/src/duckdb/src/parser/parsed_data/load_info.cpp b/src/duckdb/src/parser/parsed_data/load_info.cpp index 30142961..ea1fae14 100644 --- a/src/duckdb/src/parser/parsed_data/load_info.cpp +++ b/src/duckdb/src/parser/parsed_data/load_info.cpp @@ -11,6 +11,7 @@ unique_ptr LoadInfo::Copy() const { result->repository = repository; result->load_type = load_type; result->repo_is_alias = repo_is_alias; + result->version = version; return result; } diff --git a/src/duckdb/src/parser/parsed_data/sample_options.cpp b/src/duckdb/src/parser/parsed_data/sample_options.cpp index 03c8b322..54be9d1c 100644 --- a/src/duckdb/src/parser/parsed_data/sample_options.cpp +++ b/src/duckdb/src/parser/parsed_data/sample_options.cpp @@ -9,15 +9,30 @@ string SampleMethodToString(SampleMethod method) { return EnumUtil::ToString(method); } +SampleOptions::SampleOptions(int64_t seed_) { + repeatable = false; + if (seed_ >= 0) { + seed = static_cast(seed_); + } + sample_size = 0; + is_percentage = false; + method = SampleMethod::INVALID; +} + unique_ptr SampleOptions::Copy() { auto result = make_uniq(); result->sample_size = sample_size; result->is_percentage = is_percentage; result->method = method; result->seed = seed; + result->repeatable = repeatable; return result; } +void SampleOptions::SetSeed(idx_t new_seed) { + seed = new_seed; +} + bool SampleOptions::Equals(SampleOptions *a, SampleOptions *b) { if (a == b) { return true; @@ -25,11 +40,26 @@ bool SampleOptions::Equals(SampleOptions *a, SampleOptions *b) { if (!a || !b) { return false; } + // if only one is valid, they are not equal + if (a->seed.IsValid() != b->seed.IsValid()) { + return false; + } + // if both are invalid, then they are technically the same + if (!a->seed.IsValid() && !b->seed.IsValid()) { + return true; + } if (a->sample_size != b->sample_size || a->is_percentage != b->is_percentage || a->method != b->method || - a->seed != b->seed) { + a->seed.GetIndex() != b->seed.GetIndex()) { return false; } return true; } +int64_t SampleOptions::GetSeed() const { + if (seed.IsValid()) { + return static_cast(seed.GetIndex()); + } + return -1; +} + } // namespace duckdb diff --git a/src/duckdb/src/parser/parsed_expression_iterator.cpp b/src/duckdb/src/parser/parsed_expression_iterator.cpp index 6d807800..8b29ed7f 100644 --- a/src/duckdb/src/parser/parsed_expression_iterator.cpp +++ b/src/duckdb/src/parser/parsed_expression_iterator.cpp @@ -102,6 +102,9 @@ void ParsedExpressionIterator::EnumerateChildren( if (star_expr.expr) { callback(star_expr.expr); } + for (auto &item : star_expr.replace_list) { + callback(item.second); + } break; } case ExpressionClass::SUBQUERY: { diff --git a/src/duckdb/src/parser/parser.cpp b/src/duckdb/src/parser/parser.cpp index 0feef2aa..ca7e1a71 100644 --- a/src/duckdb/src/parser/parser.cpp +++ b/src/duckdb/src/parser/parser.cpp @@ -1,5 +1,6 @@ #include "duckdb/parser/parser.hpp" +#include "duckdb/parser/expression/cast_expression.hpp" #include "duckdb/parser/group_by_node.hpp" #include "duckdb/parser/parsed_data/create_table_info.hpp" #include "duckdb/parser/parser_extension.hpp" @@ -339,6 +340,123 @@ vector Parser::Tokenize(const string &query) { return result; } +vector Parser::TokenizeError(const string &error_msg) { + idx_t error_start = 0; + idx_t error_end = error_msg.size(); + + vector tokens; + // find "XXX Error:" - this marks the start of the error message + auto error = StringUtil::Find(error_msg, "Error: "); + if (error.IsValid()) { + SimplifiedToken token; + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_ERROR; + token.start = 0; + tokens.push_back(token); + + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_IDENTIFIER; + token.start = error.GetIndex() + 6; + tokens.push_back(token); + + error_start = error.GetIndex() + 7; + } + + // find "LINE (number)" - this marks the end of the message + auto line_pos = StringUtil::Find(error_msg, "\nLINE "); + if (line_pos.IsValid()) { + // tokenize between + error_end = line_pos.GetIndex(); + } + + // now iterate over the + bool in_quotes = false; + for (idx_t i = error_start; i < error_end; i++) { + if (error_msg[i] == '"' || error_msg[i] == '\'') { + SimplifiedToken token; + token.start = i; + if (!in_quotes) { + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_STRING_CONSTANT; + token.start++; + } else { + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_IDENTIFIER; + } + tokens.push_back(token); + in_quotes = !in_quotes; + } + } + if (in_quotes && error_end < error_msg.size()) { + SimplifiedToken token; + token.start = error_end; + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_IDENTIFIER; + tokens.push_back(token); + } + if (line_pos.IsValid()) { + SimplifiedToken token; + token.start = line_pos.GetIndex() + 1; + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_COMMENT; + tokens.push_back(token); + + // tokenize the LINE part + idx_t query_start; + for (query_start = line_pos.GetIndex() + 6; query_start < error_msg.size(); query_start++) { + if (error_msg[query_start] != ':' && !StringUtil::CharacterIsDigit(error_msg[query_start])) { + break; + } + } + if (query_start < error_msg.size()) { + token.start = query_start; + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_IDENTIFIER; + tokens.push_back(token); + + idx_t query_end; + for (query_end = query_start; query_end < error_msg.size(); query_end++) { + if (error_msg[query_end] == '\n') { + break; + } + } + // after LINE XXX: comes a caret - look for it + idx_t caret_position = error_msg.size(); + bool place_caret = false; + idx_t caret_start = query_end + 1; + if (caret_start < error_msg.size()) { + for (idx_t i = caret_start; i < error_msg.size(); i++) { + if (error_msg[i] == '^') { + // found the caret + // to get the caret position in the query we need to + caret_position = i - caret_start - ((query_start - line_pos.GetIndex()) - 1); + place_caret = true; + break; + } + } + } + // tokenize the actual query + string query = error_msg.substr(query_start, query_end - query_start); + auto query_tokens = Tokenize(query); + for (auto &query_token : query_tokens) { + if (place_caret) { + if (query_token.start >= caret_position) { + // we need to place the caret here + query_token.start = query_start + caret_position; + query_token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_ERROR; + tokens.push_back(query_token); + + place_caret = false; + continue; + } + } + query_token.start += query_start; + tokens.push_back(query_token); + } + // FIXME: find the caret position and highlight/bold the identifier it points to + if (query_end < error_msg.size()) { + token.start = query_end; + token.type = SimplifiedTokenType::SIMPLIFIED_TOKEN_ERROR; + tokens.push_back(token); + } + } + } + return tokens; +} + KeywordCategory ToKeywordCategory(duckdb_libpgquery::PGKeywordCategory type) { switch (type) { case duckdb_libpgquery::PGKeywordCategory::PG_KEYWORD_RESERVED: diff --git a/src/duckdb/src/parser/qualified_name.cpp b/src/duckdb/src/parser/qualified_name.cpp new file mode 100644 index 00000000..c4567ede --- /dev/null +++ b/src/duckdb/src/parser/qualified_name.cpp @@ -0,0 +1,99 @@ +#include "duckdb/parser/qualified_name.hpp" +#include "duckdb/parser/parsed_data/parse_info.hpp" + +namespace duckdb { + +string QualifiedName::ToString() const { + return ParseInfo::QualifierToString(catalog, schema, name); +} + +QualifiedName QualifiedName::Parse(const string &input) { + string catalog; + string schema; + string name; + idx_t idx = 0; + vector entries; + string entry; +normal: + //! quote + for (; idx < input.size(); idx++) { + if (input[idx] == '"') { + idx++; + goto quoted; + } else if (input[idx] == '.') { + goto separator; + } + entry += input[idx]; + } + goto end; +separator: + entries.push_back(entry); + entry = ""; + idx++; + goto normal; +quoted: + //! look for another quote + for (; idx < input.size(); idx++) { + if (input[idx] == '"') { + //! unquote + idx++; + goto normal; + } + entry += input[idx]; + } + throw ParserException("Unterminated quote in qualified name!"); +end: + if (entries.empty()) { + catalog = INVALID_CATALOG; + schema = INVALID_SCHEMA; + name = entry; + } else if (entries.size() == 1) { + catalog = INVALID_CATALOG; + schema = entries[0]; + name = entry; + } else if (entries.size() == 2) { + catalog = entries[0]; + schema = entries[1]; + name = entry; + } else { + throw ParserException("Expected catalog.entry, schema.entry or entry: too many entries found"); + } + return QualifiedName {catalog, schema, name}; +} + +QualifiedColumnName::QualifiedColumnName() { +} +QualifiedColumnName::QualifiedColumnName(string column_p) : column(std::move(column_p)) { +} +QualifiedColumnName::QualifiedColumnName(string table_p, string column_p) + : table(std::move(table_p)), column(std::move(column_p)) { +} +QualifiedColumnName::QualifiedColumnName(const BindingAlias &alias, string column_p) + : catalog(alias.GetCatalog()), schema(alias.GetSchema()), table(alias.GetAlias()), column(std::move(column_p)) { +} + +string QualifiedColumnName::ToString() const { + string result; + if (!catalog.empty()) { + result += KeywordHelper::WriteOptionallyQuoted(catalog) + "."; + } + if (!schema.empty()) { + result += KeywordHelper::WriteOptionallyQuoted(schema) + "."; + } + if (!table.empty()) { + result += KeywordHelper::WriteOptionallyQuoted(table) + "."; + } + result += KeywordHelper::WriteOptionallyQuoted(column); + return result; +} + +bool QualifiedColumnName::IsQualified() const { + return !catalog.empty() || !schema.empty() || !table.empty(); +} + +bool QualifiedColumnName::operator==(const QualifiedColumnName &rhs) const { + return StringUtil::CIEquals(catalog, rhs.catalog) && StringUtil::CIEquals(schema, rhs.schema) && + StringUtil::CIEquals(table, rhs.table) && StringUtil::CIEquals(column, rhs.column); +} + +} // namespace duckdb diff --git a/src/duckdb/src/parser/query_error_context.cpp b/src/duckdb/src/parser/query_error_context.cpp index 5dd54478..f8545714 100644 --- a/src/duckdb/src/parser/query_error_context.cpp +++ b/src/duckdb/src/parser/query_error_context.cpp @@ -9,6 +9,7 @@ namespace duckdb { string QueryErrorContext::Format(const string &query, const string &error_message, optional_idx error_loc, bool add_line_indicator) { + static constexpr idx_t MAX_LINE_RENDER_WIDTH = 120; if (!error_loc.IsValid()) { // no location in query provided return error_message; @@ -58,6 +59,7 @@ string QueryErrorContext::Format(const string &query, const string &error_messag idx_t len = end_pos - start_pos; vector render_widths; vector positions; + vector natural_break; if (Utf8Proc::IsValid(buf, len)) { // for unicode awareness, we traverse the graphemes of the current line and keep track of their render widths // and of their position in the string @@ -65,6 +67,8 @@ string QueryErrorContext::Format(const string &query, const string &error_messag auto char_render_width = Utf8Proc::RenderWidth(buf, len, cpos); positions.push_back(cpos); render_widths.push_back(char_render_width); + natural_break.push_back(StringUtil::CharacterIsOperator(buf[cpos]) || + StringUtil::CharacterIsSpace(buf[cpos])); cpos = Utf8Proc::NextGraphemeCluster(buf, len, cpos); } } else { // LCOV_EXCL_START @@ -73,6 +77,8 @@ string QueryErrorContext::Format(const string &query, const string &error_messag for (idx_t cpos = 0; cpos < len; cpos++) { positions.push_back(cpos); render_widths.push_back(1); + natural_break.push_back(StringUtil::CharacterIsOperator(buf[cpos]) || + StringUtil::CharacterIsSpace(buf[cpos])); } } // LCOV_EXCL_STOP // now we want to find the (unicode aware) start and end position @@ -88,13 +94,25 @@ string QueryErrorContext::Format(const string &query, const string &error_messag bool truncate_end = false; idx_t spos = 0; // now we iterate backwards from the error location - // we show max 40 render width before the error location + // we show max 60 render width before the error location + idx_t error_line_start = start_pos; idx_t current_render_width = 0; for (idx_t i = epos; i > 0; i--) { current_render_width += render_widths[i]; - if (current_render_width >= 40) { + if (current_render_width >= MAX_LINE_RENDER_WIDTH / 2) { + // we're exceeding the render width - truncate the beginning + // try to break at a "nice" point (i.e. a space, bracket, etc) + // try to find a natural break that is within 4 bytes of here + idx_t start_scan = i > 4 ? i - 4 : 0; + idx_t end_scan = MinValue(i + 4, epos); + for (idx_t k = start_scan; k < end_scan; k++) { + if (natural_break[k]) { + i = k; + break; + } + } truncate_beginning = true; - start_pos = positions[i]; + start_pos += positions[i]; spos = i; break; } @@ -103,9 +121,20 @@ string QueryErrorContext::Format(const string &query, const string &error_messag current_render_width = 0; for (idx_t i = epos; i < positions.size(); i++) { current_render_width += render_widths[i]; - if (current_render_width >= 40) { + if (current_render_width >= MAX_LINE_RENDER_WIDTH / 2) { + // we're exceeding the render width - truncate the end + // try to break at a "nice" point (i.e. a space, bracket, etc) + // try to find a natural break that is within 4 bytes of here + idx_t start_scan = i > epos + 4 ? i - 4 : epos; + idx_t end_scan = MinValue(i + 4, positions.size()); + for (idx_t k = start_scan; k < end_scan; k++) { + if (natural_break[k]) { + i = k; + break; + } + } truncate_end = true; - end_pos = positions[i]; + end_pos = error_line_start + positions[i]; break; } } @@ -125,7 +154,7 @@ string QueryErrorContext::Format(const string &query, const string &error_messag // now first print the error message plus the current line (or a subset of the line) string result = error_message; - result += "\n" + line_indicator + begin_trunc + query.substr(start_pos, end_pos - start_pos) + end_trunc; + result += "\n\n" + line_indicator + begin_trunc + query.substr(start_pos, end_pos - start_pos) + end_trunc; // print an arrow pointing at the error location result += "\n" + string(error_render_width, ' ') + "^"; return result; diff --git a/src/duckdb/src/parser/query_node/select_node.cpp b/src/duckdb/src/parser/query_node/select_node.cpp index 66ad5dc7..f42dafdc 100644 --- a/src/duckdb/src/parser/query_node/select_node.cpp +++ b/src/duckdb/src/parser/query_node/select_node.cpp @@ -101,8 +101,8 @@ string SelectNode::ToString() const { result += "%"; } result += " (" + EnumUtil::ToString(sample->method); - if (sample->seed >= 0) { - result += ", " + std::to_string(sample->seed); + if (sample->seed.IsValid()) { + result += ", " + std::to_string(sample->seed.GetIndex()); } result += ")"; } diff --git a/src/duckdb/src/parser/statement/delete_statement.cpp b/src/duckdb/src/parser/statement/delete_statement.cpp index 1de2767c..0d97068e 100644 --- a/src/duckdb/src/parser/statement/delete_statement.cpp +++ b/src/duckdb/src/parser/statement/delete_statement.cpp @@ -43,7 +43,11 @@ string DeleteStatement::ToString() const { if (i > 0) { result += ", "; } - result += returning_list[i]->ToString(); + auto column = returning_list[i]->ToString(); + if (!returning_list[i]->alias.empty()) { + column += StringUtil::Format(" AS %s", KeywordHelper::WriteOptionallyQuoted(returning_list[i]->alias)); + } + result += column; } } return result; diff --git a/src/duckdb/src/parser/statement/insert_statement.cpp b/src/duckdb/src/parser/statement/insert_statement.cpp index 4255ebb9..fc384232 100644 --- a/src/duckdb/src/parser/statement/insert_statement.cpp +++ b/src/duckdb/src/parser/statement/insert_statement.cpp @@ -98,8 +98,10 @@ string InsertStatement::ToString() const { auto values_list = GetValuesList(); if (values_list) { D_ASSERT(!default_values); + auto saved_alias = values_list->alias; values_list->alias = string(); result += values_list->ToString(); + values_list->alias = saved_alias; } else if (select_statement) { D_ASSERT(!default_values); result += select_statement->ToString(); @@ -154,7 +156,11 @@ string InsertStatement::ToString() const { if (i > 0) { result += ", "; } - result += returning_list[i]->ToString(); + auto column = returning_list[i]->ToString(); + if (!returning_list[i]->alias.empty()) { + column += StringUtil::Format(" AS %s", KeywordHelper::WriteOptionallyQuoted(returning_list[i]->alias)); + } + result += column; } } return result; diff --git a/src/duckdb/src/parser/statement/update_statement.cpp b/src/duckdb/src/parser/statement/update_statement.cpp index 6c0c7991..83520094 100644 --- a/src/duckdb/src/parser/statement/update_statement.cpp +++ b/src/duckdb/src/parser/statement/update_statement.cpp @@ -65,7 +65,11 @@ string UpdateStatement::ToString() const { if (i > 0) { result += ", "; } - result += returning_list[i]->ToString(); + auto column = returning_list[i]->ToString(); + if (!returning_list[i]->alias.empty()) { + column += StringUtil::Format(" AS %s", KeywordHelper::WriteOptionallyQuoted(returning_list[i]->alias)); + } + result += column; } } return result; diff --git a/src/duckdb/src/parser/tableref.cpp b/src/duckdb/src/parser/tableref.cpp index f8b8db70..9ce29023 100644 --- a/src/duckdb/src/parser/tableref.cpp +++ b/src/duckdb/src/parser/tableref.cpp @@ -31,8 +31,8 @@ string TableRef::BaseToString(string result, const vector &column_name_a if (sample) { result += " TABLESAMPLE " + EnumUtil::ToString(sample->method); result += "(" + sample->sample_size.ToString() + " " + string(sample->is_percentage ? "PERCENT" : "ROWS") + ")"; - if (sample->seed >= 0) { - result += "REPEATABLE (" + to_string(sample->seed) + ")"; + if (sample->seed.IsValid()) { + result += "REPEATABLE (" + to_string(sample->seed.GetIndex()) + ")"; } } diff --git a/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp b/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp index dcb467e9..8439fc86 100644 --- a/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp +++ b/src/duckdb/src/parser/transform/constraint/transform_constraint.cpp @@ -68,50 +68,42 @@ TransformForeignKeyConstraint(duckdb_libpgquery::PGConstraint &constraint, return make_uniq(pk_columns, fk_columns, std::move(fk_info)); } -unique_ptr Transformer::TransformConstraint(duckdb_libpgquery::PGListCell &cell) { - - auto constraint = PGPointerCast(cell.data.ptr_value); - D_ASSERT(constraint); - - switch (constraint->contype) { +unique_ptr Transformer::TransformConstraint(duckdb_libpgquery::PGConstraint &constraint) { + switch (constraint.contype) { case duckdb_libpgquery::PG_CONSTR_UNIQUE: case duckdb_libpgquery::PG_CONSTR_PRIMARY: { - bool is_primary_key = constraint->contype == duckdb_libpgquery::PG_CONSTR_PRIMARY; - if (!constraint->keys) { + bool is_primary_key = constraint.contype == duckdb_libpgquery::PG_CONSTR_PRIMARY; + if (!constraint.keys) { throw ParserException("UNIQUE USING INDEX is not supported"); } vector columns; - for (auto kc = constraint->keys->head; kc; kc = kc->next) { + for (auto kc = constraint.keys->head; kc; kc = kc->next) { auto value = PGPointerCast(kc->data.ptr_value); columns.emplace_back(value->val.str); } return make_uniq(columns, is_primary_key); } case duckdb_libpgquery::PG_CONSTR_CHECK: { - auto expression = TransformExpression(constraint->raw_expr); + auto expression = TransformExpression(constraint.raw_expr); if (expression->HasSubquery()) { throw ParserException("subqueries prohibited in CHECK constraints"); } - return make_uniq(TransformExpression(constraint->raw_expr)); + return make_uniq(TransformExpression(constraint.raw_expr)); } case duckdb_libpgquery::PG_CONSTR_FOREIGN: - return TransformForeignKeyConstraint(*constraint.get()); + return TransformForeignKeyConstraint(constraint); default: throw NotImplementedException("Constraint type not handled yet!"); } } -unique_ptr Transformer::TransformConstraint(duckdb_libpgquery::PGListCell &cell, ColumnDefinition &column, - idx_t index) { - - auto constraint = PGPointerCast(cell.data.ptr_value); - D_ASSERT(constraint); - - switch (constraint->contype) { +unique_ptr Transformer::TransformConstraint(duckdb_libpgquery::PGConstraint &constraint, + ColumnDefinition &column, idx_t index) { + switch (constraint.contype) { case duckdb_libpgquery::PG_CONSTR_NOTNULL: return make_uniq(LogicalIndex(index)); case duckdb_libpgquery::PG_CONSTR_CHECK: - return TransformConstraint(cell); + return TransformConstraint(constraint); case duckdb_libpgquery::PG_CONSTR_PRIMARY: return make_uniq(LogicalIndex(index), true); case duckdb_libpgquery::PG_CONSTR_UNIQUE: @@ -123,23 +115,23 @@ unique_ptr Transformer::TransformConstraint(duckdb_libpgquery::PGLis throw InvalidInputException("\"%s\" has a DEFAULT value set, it can not become a GENERATED column", column.Name()); } - column.SetGeneratedExpression(TransformExpression(constraint->raw_expr)); + column.SetGeneratedExpression(TransformExpression(constraint.raw_expr)); return nullptr; } case duckdb_libpgquery::PG_CONSTR_GENERATED_STORED: throw InvalidInputException("Can not create a STORED generated column!"); case duckdb_libpgquery::PG_CONSTR_DEFAULT: - column.SetDefaultValue(TransformExpression(constraint->raw_expr)); + column.SetDefaultValue(TransformExpression(constraint.raw_expr)); return nullptr; case duckdb_libpgquery::PG_CONSTR_COMPRESSION: - column.SetCompressionType(CompressionTypeFromString(constraint->compression_name)); + column.SetCompressionType(CompressionTypeFromString(constraint.compression_name)); if (column.CompressionType() == CompressionType::COMPRESSION_AUTO) { throw ParserException("Unrecognized option for column compression, expected none, uncompressed, rle, " "dictionary, pfor, bitpacking or fsst"); } return nullptr; case duckdb_libpgquery::PG_CONSTR_FOREIGN: - return TransformForeignKeyConstraint(*constraint.get(), &column.Name()); + return TransformForeignKeyConstraint(constraint, &column.Name()); default: throw NotImplementedException("Constraint not implemented!"); } diff --git a/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp b/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp index 3c96f4da..8a7e2341 100644 --- a/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp +++ b/src/duckdb/src/parser/transform/expression/transform_boolean_test.cpp @@ -11,7 +11,7 @@ static unique_ptr TransformBooleanTestInternal(unique_ptr(Value::BOOLEAN(comparison_value)); Transformer::SetQueryLocation(*bool_value, query_location); - // we cast the argument to bool to remove ambiguity wrt function binding on the comparision + // we cast the argument to bool to remove ambiguity wrt function binding on the comparison auto cast_argument = make_uniq(LogicalType::BOOLEAN, std::move(argument)); auto result = make_uniq(comparison_type, std::move(cast_argument), std::move(bool_value)); diff --git a/src/duckdb/src/parser/transform/expression/transform_columnref.cpp b/src/duckdb/src/parser/transform/expression/transform_columnref.cpp index 7137169f..5a8e0c90 100644 --- a/src/duckdb/src/parser/transform/expression/transform_columnref.cpp +++ b/src/duckdb/src/parser/transform/expression/transform_columnref.cpp @@ -6,17 +6,44 @@ namespace duckdb { +QualifiedColumnName TransformQualifiedColumnName(duckdb_libpgquery::PGList &list) { + QualifiedColumnName result; + switch (list.length) { + case 1: + result.column = const_char_ptr_cast(list.head->data.ptr_value); + break; + case 2: + result.table = const_char_ptr_cast(list.head->data.ptr_value); + result.column = const_char_ptr_cast(list.head->next->data.ptr_value); + break; + case 3: + result.schema = const_char_ptr_cast(list.head->data.ptr_value); + result.table = const_char_ptr_cast(list.head->next->data.ptr_value); + result.column = const_char_ptr_cast(list.head->next->next->data.ptr_value); + break; + case 4: + result.catalog = const_char_ptr_cast(list.head->data.ptr_value); + result.schema = const_char_ptr_cast(list.head->next->data.ptr_value); + result.table = const_char_ptr_cast(list.head->next->next->data.ptr_value); + result.column = const_char_ptr_cast(list.head->next->next->next->data.ptr_value); + break; + default: + throw ParserException("Qualified column name must have between 1 and 4 elements"); + } + return result; +} + unique_ptr Transformer::TransformStarExpression(duckdb_libpgquery::PGAStar &star) { auto result = make_uniq(star.relation ? star.relation : string()); if (star.except_list) { for (auto head = star.except_list->head; head; head = head->next) { - auto value = PGPointerCast(head->data.ptr_value); - D_ASSERT(value->type == duckdb_libpgquery::T_PGString); - string exclude_entry = value->val.str; - if (result->exclude_list.find(exclude_entry) != result->exclude_list.end()) { - throw ParserException("Duplicate entry \"%s\" in EXCLUDE list", exclude_entry); + auto exclude_column_list = PGPointerCast(head->data.ptr_value); + auto exclude_column = TransformQualifiedColumnName(*exclude_column_list); + // qualified - add to exclude list + if (result->exclude_list.find(exclude_column) != result->exclude_list.end()) { + throw ParserException("Duplicate entry \"%s\" in EXCLUDE list", exclude_column.ToString()); } - result->exclude_list.insert(std::move(exclude_entry)); + result->exclude_list.insert(std::move(exclude_column)); } } if (star.replace_list) { @@ -27,14 +54,35 @@ unique_ptr Transformer::TransformStarExpression(duckdb_libpgqu TransformExpression(PGPointerCast(list->head->data.ptr_value)); auto value = PGPointerCast(list->tail->data.ptr_value); D_ASSERT(value->type == duckdb_libpgquery::T_PGString); - string exclude_entry = value->val.str; - if (result->replace_list.find(exclude_entry) != result->replace_list.end()) { - throw ParserException("Duplicate entry \"%s\" in REPLACE list", exclude_entry); + string replace_entry = value->val.str; + if (result->replace_list.find(replace_entry) != result->replace_list.end()) { + throw ParserException("Duplicate entry \"%s\" in REPLACE list", replace_entry); + } + if (result->exclude_list.find(QualifiedColumnName(replace_entry)) != result->exclude_list.end()) { + throw ParserException("Column \"%s\" cannot occur in both EXCLUDE and REPLACE list", replace_entry); + } + result->replace_list.insert(make_pair(std::move(replace_entry), std::move(replace_expression))); + } + } + if (star.rename_list) { + for (auto head = star.rename_list->head; head; head = head->next) { + auto list = PGPointerCast(head->data.ptr_value); + D_ASSERT(list->length == 2); + auto rename_column_list = PGPointerCast(list->head->data.ptr_value); + auto rename_column = TransformQualifiedColumnName(*rename_column_list); + string new_name = char_ptr_cast(list->tail->data.ptr_value); + if (result->rename_list.find(rename_column) != result->rename_list.end()) { + throw ParserException("Duplicate entry \"%s\" in EXCLUDE list", rename_column.ToString()); + } + if (result->exclude_list.find(rename_column) != result->exclude_list.end()) { + throw ParserException("Column \"%s\" cannot occur in both EXCLUDE and RENAME list", + rename_column.ToString()); } - if (result->exclude_list.find(exclude_entry) != result->exclude_list.end()) { - throw ParserException("Column \"%s\" cannot occur in both EXCEPT and REPLACE list", exclude_entry); + if (result->replace_list.find(rename_column.column) != result->replace_list.end()) { + throw ParserException("Column \"%s\" cannot occur in both REPLACE and RENAME list", + rename_column.ToString()); } - result->replace_list.insert(make_pair(std::move(exclude_entry), std::move(replace_expression))); + result->rename_list.insert(make_pair(std::move(rename_column), std::move(new_name))); } } if (star.expr) { diff --git a/src/duckdb/src/parser/transform/helpers/transform_sample.cpp b/src/duckdb/src/parser/transform/helpers/transform_sample.cpp index 0cffebfe..65f66927 100644 --- a/src/duckdb/src/parser/transform/helpers/transform_sample.cpp +++ b/src/duckdb/src/parser/transform/helpers/transform_sample.cpp @@ -25,7 +25,13 @@ unique_ptr Transformer::TransformSampleOptions(optional_ptr(); auto &sample_options = PGCast(*options); auto &sample_size = *PGPointerCast(sample_options.sample_size); - auto sample_value = TransformValue(sample_size.sample_size)->value; + auto sample_expression = TransformExpression(sample_size.sample_size); + if (sample_expression->type != ExpressionType::VALUE_CONSTANT) { + throw ParserException(sample_expression->query_location, + "Only constants are supported in sample clause currently"); + } + auto &const_expr = sample_expression->Cast(); + auto &sample_value = const_expr.value; result->is_percentage = sample_size.is_percentage; if (sample_size.is_percentage) { // sample size is given in sample_size: use system sampling @@ -47,8 +53,9 @@ unique_ptr Transformer::TransformSampleOptions(optional_ptrmethod = GetSampleMethod(sample_options.method); } - if (sample_options.has_seed) { - result->seed = sample_options.seed; + if (sample_options.has_seed && sample_options.seed >= 0) { + result->seed = static_cast(sample_options.seed); + result->repeatable = true; } return result; } diff --git a/src/duckdb/src/parser/transform/helpers/transform_typename.cpp b/src/duckdb/src/parser/transform/helpers/transform_typename.cpp index e3cab920..bd6b97a1 100644 --- a/src/duckdb/src/parser/transform/helpers/transform_typename.cpp +++ b/src/duckdb/src/parser/transform/helpers/transform_typename.cpp @@ -71,12 +71,7 @@ vector Transformer::TransformTypeModifiers(duckdb_libpgquery::PGTypeName return type_mods; } -LogicalType Transformer::TransformTypeName(duckdb_libpgquery::PGTypeName &type_name) { - if (type_name.type != duckdb_libpgquery::T_PGTypeName) { - throw ParserException("Expected a type"); - } - auto stack_checker = StackCheck(); - +LogicalType Transformer::TransformTypeNameInternal(duckdb_libpgquery::PGTypeName &type_name) { if (type_name.names->length > 1) { // qualified typename vector names; @@ -85,24 +80,27 @@ LogicalType Transformer::TransformTypeName(duckdb_libpgquery::PGTypeName &type_n } vector type_mods = TransformTypeModifiers(type_name); switch (type_name.names->length) { - case 2: + case 2: { return LogicalType::USER(INVALID_CATALOG, std::move(names[0]), std::move(names[1]), std::move(type_mods)); - case 3: + } + case 3: { return LogicalType::USER(std::move(names[0]), std::move(names[1]), std::move(names[2]), std::move(type_mods)); + } default: throw ParserException( "Too many qualifications for type name - expected [catalog.schema.name] or [schema.name]"); } } + auto name = PGPointerCast(type_name.names->tail->data.ptr_value)->val.str; // transform it to the SQL type LogicalTypeId base_type = TransformStringToLogicalTypeId(name); - LogicalType result_type; if (base_type == LogicalTypeId::LIST) { throw ParserException("LIST is not valid as a stand-alone type"); - } else if (base_type == LogicalTypeId::ENUM) { + } + if (base_type == LogicalTypeId::ENUM) { if (!type_name.typmods || type_name.typmods->length == 0) { throw ParserException("Enum needs a set of entries"); } @@ -118,7 +116,8 @@ LogicalType Transformer::TransformTypeName(duckdb_libpgquery::PGTypeName &type_n string_data[pos++] = StringVector::AddString(enum_vector, constant_value->val.val.str); } return LogicalType::ENUM(enum_vector, NumericCast(type_name.typmods->length)); - } else if (base_type == LogicalTypeId::STRUCT) { + } + if (base_type == LogicalTypeId::STRUCT) { if (!type_name.typmods || type_name.typmods->length == 0) { throw ParserException("Struct needs a name and entries"); } @@ -148,9 +147,9 @@ LogicalType Transformer::TransformTypeName(duckdb_libpgquery::PGTypeName &type_n children.push_back(make_pair(entry_name, entry_type)); } D_ASSERT(!children.empty()); - result_type = LogicalType::STRUCT(children); - - } else if (base_type == LogicalTypeId::MAP) { + return LogicalType::STRUCT(children); + } + if (base_type == LogicalTypeId::MAP) { if (!type_name.typmods || type_name.typmods->length != 2) { throw ParserException("Map type needs exactly two entries, key and value type"); } @@ -159,8 +158,9 @@ LogicalType Transformer::TransformTypeName(duckdb_libpgquery::PGTypeName &type_n auto value_type = TransformTypeName(*PGPointerCast(type_name.typmods->tail->data.ptr_value)); - result_type = LogicalType::MAP(std::move(key_type), std::move(value_type)); - } else if (base_type == LogicalTypeId::UNION) { + return LogicalType::MAP(std::move(key_type), std::move(value_type)); + } + if (base_type == LogicalTypeId::UNION) { if (!type_name.typmods || type_name.typmods->length == 0) { throw ParserException("Union type needs at least one member"); } @@ -195,81 +195,83 @@ LogicalType Transformer::TransformTypeName(duckdb_libpgquery::PGTypeName &type_n children.push_back(make_pair(entry_name, entry_type)); } D_ASSERT(!children.empty()); - result_type = LogicalType::UNION(std::move(children)); - } else if (base_type == LogicalTypeId::USER) { + return LogicalType::UNION(std::move(children)); + } + if (base_type == LogicalTypeId::USER) { string user_type_name {name}; vector type_mods = TransformTypeModifiers(type_name); - result_type = LogicalType::USER(user_type_name, type_mods); - } else { - SizeModifiers modifiers = GetSizeModifiers(type_name, base_type); - switch (base_type) { - case LogicalTypeId::VARCHAR: - if (modifiers.count > 1) { - throw ParserException("VARCHAR only supports a single modifier"); - } - // FIXME: create CHECK constraint based on varchar width - modifiers.width = 0; - result_type = LogicalType::VARCHAR; - break; - case LogicalTypeId::DECIMAL: - if (modifiers.count > 2) { - throw ParserException("DECIMAL only supports a maximum of two modifiers"); - } - if (modifiers.count == 1) { - // only width is provided: set scale to 0 - modifiers.scale = 0; - } - if (modifiers.width <= 0 || modifiers.width > Decimal::MAX_WIDTH_DECIMAL) { - throw ParserException("Width must be between 1 and %d!", (int)Decimal::MAX_WIDTH_DECIMAL); - } - if (modifiers.scale > modifiers.width) { - throw ParserException("Scale cannot be bigger than width"); - } - result_type = - LogicalType::DECIMAL(NumericCast(modifiers.width), NumericCast(modifiers.scale)); - break; - case LogicalTypeId::INTERVAL: - if (modifiers.count > 1) { - throw ParserException("INTERVAL only supports a single modifier"); - } - modifiers.width = 0; - result_type = LogicalType::INTERVAL; - break; - case LogicalTypeId::BIT: - if (!modifiers.width && type_name.typmods) { - throw ParserException("Type %s does not support any modifiers!", LogicalType(base_type).ToString()); - } - result_type = LogicalType(base_type); - break; - case LogicalTypeId::TIMESTAMP: - if (modifiers.count == 0) { - result_type = LogicalType::TIMESTAMP; - } else { - if (modifiers.count > 1) { - throw ParserException("TIMESTAMP only supports a single modifier"); - } - if (modifiers.width > 10) { - throw ParserException("TIMESTAMP only supports until nano-second precision (9)"); - } - if (modifiers.width == 0) { - result_type = LogicalType::TIMESTAMP_S; - } else if (modifiers.width <= 3) { - result_type = LogicalType::TIMESTAMP_MS; - } else if (modifiers.width <= 6) { - result_type = LogicalType::TIMESTAMP; - } else { - result_type = LogicalType::TIMESTAMP_NS; - } - } - break; - default: - if (modifiers.count > 0) { - throw ParserException("Type %s does not support any modifiers!", LogicalType(base_type).ToString()); - } - result_type = LogicalType(base_type); - break; + return LogicalType::USER(user_type_name, type_mods); + } + + SizeModifiers modifiers = GetSizeModifiers(type_name, base_type); + switch (base_type) { + case LogicalTypeId::VARCHAR: + if (modifiers.count > 1) { + throw ParserException("VARCHAR only supports a single modifier"); + } + // FIXME: create CHECK constraint based on varchar width + modifiers.width = 0; + return LogicalType::VARCHAR; + case LogicalTypeId::DECIMAL: + if (modifiers.count > 2) { + throw ParserException("DECIMAL only supports a maximum of two modifiers"); + } + if (modifiers.count == 1) { + // only width is provided: set scale to 0 + modifiers.scale = 0; + } + if (modifiers.width <= 0 || modifiers.width > Decimal::MAX_WIDTH_DECIMAL) { + throw ParserException("Width must be between 1 and %d!", (int)Decimal::MAX_WIDTH_DECIMAL); + } + if (modifiers.scale > modifiers.width) { + throw ParserException("Scale cannot be bigger than width"); + } + return LogicalType::DECIMAL(NumericCast(modifiers.width), NumericCast(modifiers.scale)); + case LogicalTypeId::INTERVAL: + if (modifiers.count > 1) { + throw ParserException("INTERVAL only supports a single modifier"); + } + modifiers.width = 0; + return LogicalType::INTERVAL; + case LogicalTypeId::BIT: + if (!modifiers.width && type_name.typmods) { + throw ParserException("Type %s does not support any modifiers!", LogicalType(base_type).ToString()); + } + return LogicalType(base_type); + case LogicalTypeId::TIMESTAMP: + if (modifiers.count == 0) { + return LogicalType::TIMESTAMP; + } + if (modifiers.count > 1) { + throw ParserException("TIMESTAMP only supports a single modifier"); } + if (modifiers.width > 10) { + throw ParserException("TIMESTAMP only supports until nano-second precision (9)"); + } + if (modifiers.width == 0) { + return LogicalType::TIMESTAMP_S; + } + if (modifiers.width <= 3) { + return LogicalType::TIMESTAMP_MS; + } + if (modifiers.width <= 6) { + return LogicalType::TIMESTAMP; + } + return LogicalType::TIMESTAMP_NS; + default: + if (modifiers.count > 0) { + throw ParserException("Type %s does not support any modifiers!", LogicalType(base_type).ToString()); + } + return LogicalType(base_type); + } +} + +LogicalType Transformer::TransformTypeName(duckdb_libpgquery::PGTypeName &type_name) { + if (type_name.type != duckdb_libpgquery::T_PGTypeName) { + throw ParserException("Expected a type"); } + auto stack_checker = StackCheck(); + auto result_type = TransformTypeNameInternal(type_name); if (type_name.arrayBounds) { // array bounds: turn the type into a list idx_t extra_stack = 0; diff --git a/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp b/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp index d3b57c8e..2537daae 100644 --- a/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp +++ b/src/duckdb/src/parser/transform/statement/transform_alter_table.cpp @@ -39,8 +39,9 @@ unique_ptr Transformer::TransformAlter(duckdb_libpgquery::PGAlte auto column_entry = TransformColumnDefinition(*column_def); if (column_def->constraints) { - for (auto constr = column_def->constraints->head; constr != nullptr; constr = constr->next) { - auto constraint = TransformConstraint(*constr, column_entry, 0); + for (auto cell = column_def->constraints->head; cell != nullptr; cell = cell->next) { + auto pg_constraint = PGPointerCast(cell->data.ptr_value); + auto constraint = TransformConstraint(*pg_constraint, column_entry, 0); if (!constraint) { continue; } @@ -74,6 +75,11 @@ unique_ptr Transformer::TransformAlter(duckdb_libpgquery::PGAlte if (stmt.relkind != duckdb_libpgquery::PG_OBJECT_TABLE) { throw ParserException("Alter column's type is only supported for tables"); } + + if (column_entry.GetType() == LogicalType::UNKNOWN && !column_def->raw_default) { + throw ParserException("Omitting the type is only possible in combination with USING"); + } + if (column_def->raw_default) { expr = TransformExpression(column_def->raw_default); } else { @@ -92,7 +98,16 @@ unique_ptr Transformer::TransformAlter(duckdb_libpgquery::PGAlte result->info = make_uniq(std::move(data), command->name); break; } - case duckdb_libpgquery::PG_AT_DropConstraint: + case duckdb_libpgquery::PG_AT_AddConstraint: { + auto pg_constraint = PGCast(*command->def); + if (pg_constraint.contype != duckdb_libpgquery::PGConstrType::PG_CONSTR_PRIMARY) { + throw NotImplementedException("No support for that ALTER TABLE option yet!"); + } + + auto constraint = TransformConstraint(pg_constraint); + result->info = make_uniq(std::move(data), std::move(constraint)); + break; + } default: throw NotImplementedException("No support for that ALTER TABLE option yet!"); } diff --git a/src/duckdb/src/parser/transform/statement/transform_copy.cpp b/src/duckdb/src/parser/transform/statement/transform_copy.cpp index 1fa2464f..7c199ac5 100644 --- a/src/duckdb/src/parser/transform/statement/transform_copy.cpp +++ b/src/duckdb/src/parser/transform/statement/transform_copy.cpp @@ -1,6 +1,5 @@ #include "duckdb/common/string_util.hpp" #include "duckdb/common/types/value.hpp" -#include "duckdb/core_functions/scalar/struct_functions.hpp" #include "duckdb/function/replacement_scan.hpp" #include "duckdb/parser/expression/constant_expression.hpp" #include "duckdb/parser/expression/function_expression.hpp" diff --git a/src/duckdb/src/parser/transform/statement/transform_create_table.cpp b/src/duckdb/src/parser/transform/statement/transform_create_table.cpp index e0177e4f..412a73cd 100644 --- a/src/duckdb/src/parser/transform/statement/transform_create_table.cpp +++ b/src/duckdb/src/parser/transform/statement/transform_create_table.cpp @@ -47,12 +47,22 @@ unique_ptr Transformer::TransformCollateExpr(duckdb_libpgquery } ColumnDefinition Transformer::TransformColumnDefinition(duckdb_libpgquery::PGColumnDef &cdef) { - string colname; + string name; if (cdef.colname) { - colname = cdef.colname; + name = cdef.colname; } - bool optional_type = cdef.category == duckdb_libpgquery::COL_GENERATED; - LogicalType target_type = (optional_type && !cdef.typeName) ? LogicalType::ANY : TransformTypeName(*cdef.typeName); + + auto optional_type = cdef.category == duckdb_libpgquery::COL_GENERATED; + LogicalType target_type; + if (optional_type && !cdef.typeName) { + target_type = LogicalType::ANY; + } else if (!cdef.typeName) { + // ALTER TABLE tbl ALTER TYPE USING ... + target_type = LogicalType::UNKNOWN; + } else { + target_type = TransformTypeName(*cdef.typeName); + } + if (cdef.collClause) { if (cdef.category == duckdb_libpgquery::COL_GENERATED) { throw ParserException("Collations are not supported on generated columns"); @@ -63,7 +73,7 @@ ColumnDefinition Transformer::TransformColumnDefinition(duckdb_libpgquery::PGCol target_type = LogicalType::VARCHAR_COLLATION(TransformCollation(cdef.collClause)); } - return ColumnDefinition(colname, target_type); + return ColumnDefinition(name, target_type); } unique_ptr Transformer::TransformCreateTable(duckdb_libpgquery::PGCreateStmt &stmt) { @@ -97,22 +107,26 @@ unique_ptr Transformer::TransformCreateTable(duckdb_libpgquery: auto node = PGPointerCast(c->data.ptr_value); switch (node->type) { case duckdb_libpgquery::T_PGColumnDef: { - auto cdef = PGPointerCast(c->data.ptr_value); - auto centry = TransformColumnDefinition(*cdef); - if (cdef->constraints) { - for (auto constr = cdef->constraints->head; constr != nullptr; constr = constr->next) { - auto constraint = TransformConstraint(*constr, centry, info->columns.LogicalColumnCount()); + auto pg_col_def = PGPointerCast(c->data.ptr_value); + auto col_def = TransformColumnDefinition(*pg_col_def); + + if (pg_col_def->constraints) { + for (auto cell = pg_col_def->constraints->head; cell != nullptr; cell = cell->next) { + auto pg_constraint = PGPointerCast(cell->data.ptr_value); + auto constraint = TransformConstraint(*pg_constraint, col_def, info->columns.LogicalColumnCount()); if (constraint) { info->constraints.push_back(std::move(constraint)); } } } - info->columns.AddColumn(std::move(centry)); + + info->columns.AddColumn(std::move(col_def)); column_count++; break; } case duckdb_libpgquery::T_PGConstraint: { - info->constraints.push_back(TransformConstraint(*c)); + auto pg_constraint = PGPointerCast(c->data.ptr_value); + info->constraints.push_back(TransformConstraint(*pg_constraint)); break; } default: diff --git a/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp b/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp index 6af7fe4e..3770194a 100644 --- a/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp +++ b/src/duckdb/src/parser/transform/statement/transform_create_table_as.cpp @@ -8,17 +8,25 @@ unique_ptr Transformer::TransformCreateTableAs(duckdb_libpgquer if (stmt.relkind == duckdb_libpgquery::PG_OBJECT_MATVIEW) { throw NotImplementedException("Materialized view not implemented"); } - if (stmt.is_select_into || stmt.into->colNames || stmt.into->options) { + if (stmt.is_select_into || stmt.into->options) { throw NotImplementedException("Unimplemented features for CREATE TABLE as"); } - auto qname = TransformQualifiedName(*stmt.into->rel); if (stmt.query->type != duckdb_libpgquery::T_PGSelectStmt) { throw ParserException("CREATE TABLE AS requires a SELECT clause"); } - auto query = TransformSelectStmt(*stmt.query, false); auto result = make_uniq(); auto info = make_uniq(); + auto qname = TransformQualifiedName(*stmt.into->rel); + auto query = TransformSelectStmt(*stmt.query, false); + + if (stmt.into->colNames) { + auto cols = TransformStringList(stmt.into->colNames); + for (idx_t i = 0; i < cols.size(); i++) { + // We really don't know the type of the columns during parsing, so we just use UNKNOWN + info->columns.AddColumn(ColumnDefinition(cols[i], LogicalType::UNKNOWN)); + } + } info->catalog = qname.catalog; info->schema = qname.schema; info->table = qname.name; diff --git a/src/duckdb/src/parser/transform/statement/transform_create_view.cpp b/src/duckdb/src/parser/transform/statement/transform_create_view.cpp index 8504ecfc..24a26c02 100644 --- a/src/duckdb/src/parser/transform/statement/transform_create_view.cpp +++ b/src/duckdb/src/parser/transform/statement/transform_create_view.cpp @@ -21,7 +21,7 @@ unique_ptr Transformer::TransformCreateView(duckdb_libpgquery:: } info->on_conflict = TransformOnConflict(stmt.onconflict); - info->query = TransformSelectStmt(*PGPointerCast(stmt.query), false); + info->query = TransformSelectStmt(*stmt.query, false); PivotEntryCheck("view"); diff --git a/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp b/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp index fee41aad..94bafd72 100644 --- a/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp +++ b/src/duckdb/src/parser/transform/statement/transform_pivot_stmt.cpp @@ -15,6 +15,7 @@ #include "duckdb/parser/expression/function_expression.hpp" #include "duckdb/parser/result_modifier.hpp" #include "duckdb/parser/tableref/subqueryref.hpp" +#include "duckdb/common/types/uuid.hpp" namespace duckdb { @@ -162,13 +163,14 @@ unique_ptr Transformer::TransformPivotStatement(duckdb_libpgquery::PG if (pivot->aggrs) { TransformExpressionList(*pivot->aggrs, select_node->select_list); } + // transform order by/limit modifiers + TransformModifiers(select, *select_node); return std::move(select_node); } // generate CREATE TYPE statements for each of the columns that do not have an IN list bool is_pivot = !pivot->unpivots; auto columns = TransformPivotList(*pivot->columns, is_pivot); - auto pivot_idx = PivotEntryCount(); for (idx_t c = 0; c < columns.size(); c++) { auto &col = columns[c]; if (!col.pivot_enum.empty() || !col.entries.empty()) { @@ -177,7 +179,7 @@ unique_ptr Transformer::TransformPivotStatement(duckdb_libpgquery::PG if (col.pivot_expressions.size() != 1) { throw InternalException("PIVOT statement with multiple names in pivot entry!?"); } - auto enum_name = "__pivot_enum_" + std::to_string(pivot_idx) + "_" + std::to_string(c); + auto enum_name = "__pivot_enum_" + UUID::ToString(UUID::GenerateRandomUUID()); auto new_select = make_uniq(); ExtractCTEsRecursive(new_select->cte_map); diff --git a/src/duckdb/src/parser/transform/statement/transform_show.cpp b/src/duckdb/src/parser/transform/statement/transform_show.cpp index 12e6d686..648dbb9b 100644 --- a/src/duckdb/src/parser/transform/statement/transform_show.cpp +++ b/src/duckdb/src/parser/transform/statement/transform_show.cpp @@ -10,12 +10,30 @@ namespace duckdb { unique_ptr Transformer::TransformShow(duckdb_libpgquery::PGVariableShowStmt &stmt) { - string name = stmt.name; - + // create the query that holds the show statement auto select_node = make_uniq(); select_node->select_list.push_back(make_uniq()); auto showref = make_uniq(); - showref->table_name = std::move(name); + if (stmt.set) { + // describing a set (e.g. SHOW ALL TABLES) - push it in the table name + showref->table_name = stmt.set; + } else if (!stmt.relation->schemaname) { + // describing an unqualified relation - check if this is a "special" relation + string table_name = StringUtil::Lower(stmt.relation->relname); + if (table_name == "databases" || table_name == "tables" || table_name == "variables") { + showref->table_name = "\"" + std::move(table_name) + "\""; + } + } + if (showref->table_name.empty()) { + // describing a single relation + // wrap the relation in a "SELECT * FROM [table_name]" query + auto show_select_node = make_uniq(); + show_select_node->select_list.push_back(make_uniq()); + auto tableref = TransformRangeVar(*stmt.relation); + show_select_node->from_table = std::move(tableref); + showref->query = std::move(show_select_node); + } + showref->show_type = stmt.is_summary ? ShowType::SUMMARY : ShowType::DESCRIBE; select_node->from_table = std::move(showref); return std::move(select_node); diff --git a/src/duckdb/src/planner/bind_context.cpp b/src/duckdb/src/planner/bind_context.cpp index d446f3cf..bb7786f9 100644 --- a/src/duckdb/src/planner/bind_context.cpp +++ b/src/duckdb/src/planner/bind_context.cpp @@ -24,21 +24,32 @@ namespace duckdb { BindContext::BindContext(Binder &binder) : binder(binder) { } -string BindContext::GetMatchingBinding(const string &column_name) { - string result; - for (auto &kv : bindings) { - auto binding = kv.second.get(); - auto is_using_binding = GetUsingBinding(column_name, kv.first); +string MinimumUniqueAlias(const BindingAlias &alias, const BindingAlias &other) { + if (!StringUtil::CIEquals(alias.GetAlias(), other.GetAlias())) { + return alias.GetAlias(); + } + if (!StringUtil::CIEquals(alias.GetSchema(), other.GetSchema())) { + return alias.GetSchema() + "." + alias.GetAlias(); + } + return alias.ToString(); +} + +optional_ptr BindContext::GetMatchingBinding(const string &column_name) { + optional_ptr result; + for (auto &binding_ptr : bindings_list) { + auto &binding = *binding_ptr; + auto is_using_binding = GetUsingBinding(column_name, binding.alias); if (is_using_binding) { continue; } - if (binding->HasMatchingBinding(column_name)) { - if (!result.empty() || is_using_binding) { + if (binding.HasMatchingBinding(column_name)) { + if (result || is_using_binding) { throw BinderException("Ambiguous reference to column name \"%s\" (use: \"%s.%s\" " "or \"%s.%s\")", - column_name, result, column_name, kv.first, column_name); + column_name, MinimumUniqueAlias(result->alias, binding.alias), column_name, + MinimumUniqueAlias(binding.alias, result->alias), column_name); } - result = kv.first; + result = &binding; } } return result; @@ -46,11 +57,17 @@ string BindContext::GetMatchingBinding(const string &column_name) { vector BindContext::GetSimilarBindings(const string &column_name) { vector> scores; - for (auto &kv : bindings) { - auto binding = kv.second.get(); - for (auto &name : binding->names) { + for (auto &binding_ptr : bindings_list) { + auto binding = *binding_ptr; + for (auto &name : binding.names) { double distance = StringUtil::SimilarityRating(name, column_name); - scores.emplace_back(binding->alias + "." + name, distance); + // check if we need to qualify the column + auto matching_bindings = GetMatchingBindings(name); + if (matching_bindings.size() > 1) { + scores.emplace_back(binding.GetAlias() + "." + name, distance); + } else { + scores.emplace_back(name, distance); + } } } return StringUtil::TopNStrings(scores); @@ -81,7 +98,7 @@ optional_ptr BindContext::GetUsingBinding(const string &column_n } else { result_bindings += ", "; } - result_bindings += binding; + result_bindings += binding.GetAlias(); result_bindings += "."; result_bindings += GetActualColumnName(binding, column_name); } @@ -95,8 +112,8 @@ optional_ptr BindContext::GetUsingBinding(const string &column_n throw InternalException("Using binding found but no entries"); } -optional_ptr BindContext::GetUsingBinding(const string &column_name, const string &binding_name) { - if (binding_name.empty()) { +optional_ptr BindContext::GetUsingBinding(const string &column_name, const BindingAlias &binding) { + if (!binding.IsSet()) { throw InternalException("GetUsingBinding: expected non-empty binding_name"); } auto entry = using_columns.find(column_name); @@ -107,8 +124,10 @@ optional_ptr BindContext::GetUsingBinding(const string &column_n for (auto &using_set_ref : using_bindings) { auto &using_set = using_set_ref.get(); auto &bindings = using_set.bindings; - if (bindings.find(binding_name) != bindings.end()) { - return &using_set; + for (auto &using_binding : bindings) { + if (using_binding == binding) { + return &using_set; + } } } return nullptr; @@ -129,52 +148,59 @@ void BindContext::RemoveUsingBinding(const string &column_name, UsingColumnSet & } void BindContext::TransferUsingBinding(BindContext ¤t_context, optional_ptr current_set, - UsingColumnSet &new_set, const string &binding, const string &using_column) { + UsingColumnSet &new_set, const string &using_column) { AddUsingBinding(using_column, new_set); if (current_set) { current_context.RemoveUsingBinding(using_column, *current_set); } } -string BindContext::GetActualColumnName(const string &binding_name, const string &column_name) { - ErrorData error; - auto binding = GetBinding(binding_name, error); - if (!binding) { - throw InternalException("No binding with name \"%s\": %s", binding_name, error.RawMessage()); - } +string BindContext::GetActualColumnName(Binding &binding, const string &column_name) { column_t binding_index; - if (!binding->TryGetBindingIndex(column_name, binding_index)) { // LCOV_EXCL_START - throw InternalException("Binding with name \"%s\" does not have a column named \"%s\"", binding_name, + if (!binding.TryGetBindingIndex(column_name, binding_index)) { // LCOV_EXCL_START + throw InternalException("Binding with name \"%s\" does not have a column named \"%s\"", binding.GetAlias(), column_name); } // LCOV_EXCL_STOP - return binding->names[binding_index]; + return binding.names[binding_index]; } -unordered_set BindContext::GetMatchingBindings(const string &column_name) { - unordered_set result; - for (auto &kv : bindings) { - auto binding = kv.second.get(); - if (binding->HasMatchingBinding(column_name)) { - result.insert(kv.first); +string BindContext::GetActualColumnName(const BindingAlias &binding_alias, const string &column_name) { + ErrorData error; + auto binding = GetBinding(binding_alias, error); + if (!binding) { + throw InternalException("No binding with name \"%s\": %s", binding_alias.GetAlias(), error.RawMessage()); + } + return GetActualColumnName(*binding, column_name); +} + +vector> BindContext::GetMatchingBindings(const string &column_name) { + vector> result; + for (auto &binding_ptr : bindings_list) { + auto &binding = *binding_ptr; + if (binding.HasMatchingBinding(column_name)) { + result.push_back(binding); } } return result; } -unique_ptr BindContext::ExpandGeneratedColumn(const string &table_name, const string &column_name) { - ErrorData error; - - auto binding = GetBinding(table_name, error); - D_ASSERT(binding && !error.HasError()); - auto &table_binding = binding->Cast(); +unique_ptr BindContext::ExpandGeneratedColumn(TableBinding &table_binding, + const string &column_name) { auto result = table_binding.ExpandGeneratedColumn(column_name); result->alias = column_name; return result; } -unique_ptr BindContext::CreateColumnReference(const string &table_name, const string &column_name) { +unique_ptr BindContext::CreateColumnReference(const BindingAlias &table_alias, + const string &column_name, ColumnBindType bind_type) { + return CreateColumnReference(table_alias.GetCatalog(), table_alias.GetSchema(), table_alias.GetAlias(), column_name, + bind_type); +} + +unique_ptr BindContext::CreateColumnReference(const string &table_name, const string &column_name, + ColumnBindType bind_type) { string schema_name; - return CreateColumnReference(schema_name, table_name, column_name); + return CreateColumnReference(schema_name, table_name, column_name, bind_type); } static bool ColumnIsGenerated(Binding &binding, column_t index) { @@ -195,7 +221,8 @@ static bool ColumnIsGenerated(Binding &binding, column_t index) { } unique_ptr BindContext::CreateColumnReference(const string &catalog_name, const string &schema_name, - const string &table_name, const string &column_name) { + const string &table_name, const string &column_name, + ColumnBindType bind_type) { ErrorData error; vector names; if (!catalog_name.empty()) { @@ -207,14 +234,15 @@ unique_ptr BindContext::CreateColumnReference(const string &ca names.push_back(table_name); names.push_back(column_name); + BindingAlias alias(catalog_name, schema_name, table_name); auto result = make_uniq(std::move(names)); - auto binding = GetBinding(table_name, error); + auto binding = GetBinding(alias, column_name, error); if (!binding) { return std::move(result); } auto column_index = binding->GetBindingIndex(column_name); - if (ColumnIsGenerated(*binding, column_index)) { - return ExpandGeneratedColumn(table_name, column_name); + if (bind_type == ColumnBindType::EXPAND_GENERATED_COLUMNS && ColumnIsGenerated(*binding, column_index)) { + return ExpandGeneratedColumn(binding->Cast(), column_name); } else if (column_index < binding->names.size() && binding->names[column_index] != column_name) { // because of case insensitivity in the binder we rename the column to the original name // as it appears in the binding itself @@ -224,9 +252,9 @@ unique_ptr BindContext::CreateColumnReference(const string &ca } unique_ptr BindContext::CreateColumnReference(const string &schema_name, const string &table_name, - const string &column_name) { + const string &column_name, ColumnBindType bind_type) { string catalog_name; - return CreateColumnReference(catalog_name, schema_name, table_name, column_name); + return CreateColumnReference(catalog_name, schema_name, table_name, column_name, bind_type); } optional_ptr BindContext::GetCTEBinding(const string &ctename) { @@ -237,21 +265,128 @@ optional_ptr BindContext::GetCTEBinding(const string &ctename) { return match->second.get(); } -optional_ptr BindContext::GetBinding(const string &name, ErrorData &out_error) { - auto match = bindings.find(name); - if (match == bindings.end()) { +vector> BindContext::GetBindings(const BindingAlias &alias, ErrorData &out_error) { + if (!alias.IsSet()) { + throw InternalException("BindingAlias is not set"); + } + vector> matching_bindings; + for (auto &binding : bindings_list) { + if (binding->alias.Matches(alias)) { + matching_bindings.push_back(*binding); + } + } + if (matching_bindings.empty()) { // alias not found in this BindContext vector candidates; - for (auto &kv : bindings) { - candidates.push_back(kv.first); + for (auto &binding : bindings_list) { + candidates.push_back(binding->alias.GetAlias()); + } + string candidate_str = StringUtil::CandidatesMessage(StringUtil::TopNJaroWinkler(candidates, alias.GetAlias()), + "Candidate tables"); + out_error = ErrorData(ExceptionType::BINDER, StringUtil::Format("Referenced table \"%s\" not found!%s", + alias.GetAlias(), candidate_str)); + } + return matching_bindings; +} + +string BindContext::AmbiguityException(const BindingAlias &alias, const vector> &bindings) { + D_ASSERT(bindings.size() > 1); + // found multiple matching aliases + string result = "(use: "; + for (idx_t i = 0; i < bindings.size(); i++) { + if (i > 0) { + if (i + 1 == bindings.size()) { + result += " or "; + } else { + result += ", "; + } + } + // find the minimum alias that uniquely describes this table reference + auto ¤t_alias = bindings[i].get().alias; + string minimum_alias; + bool duplicate_alias = false; + for (idx_t k = 0; k < bindings.size(); k++) { + if (k == i) { + continue; + } + auto &other_alias = bindings[k].get().alias; + if (current_alias == other_alias) { + duplicate_alias = true; + } + string new_minimum_alias = MinimumUniqueAlias(current_alias, other_alias); + if (new_minimum_alias.size() > minimum_alias.size()) { + minimum_alias = std::move(new_minimum_alias); + } + } + if (duplicate_alias) { + result = "(duplicate alias \"" + alias.ToString() + + "\", explicitly alias one of the tables using \"AS my_alias\""; + } else { + result += minimum_alias; } - string candidate_str = - StringUtil::CandidatesMessage(StringUtil::TopNJaroWinkler(candidates, name), "Candidate tables"); - out_error = ErrorData(ExceptionType::BINDER, - StringUtil::Format("Referenced table \"%s\" not found!%s", name, candidate_str)); + } + result += ")"; + return result; +} + +optional_ptr BindContext::GetBinding(const BindingAlias &alias, const string &column_name, + ErrorData &out_error) { + auto matching_bindings = GetBindings(alias, out_error); + if (matching_bindings.empty()) { + // no bindings found return nullptr; } - return match->second.get(); + + optional_ptr result; + // find the binding that this column name belongs to + for (auto &binding_ref : matching_bindings) { + auto &binding = binding_ref.get(); + if (!binding.HasMatchingBinding(column_name)) { + continue; + } + if (result) { + // we found multiple bindings that this column name belongs to - ambiguity + string helper_message = AmbiguityException(alias, matching_bindings); + throw BinderException("Ambiguous reference to table \"%s\" %s", alias.ToString(), helper_message); + } else { + result = &binding; + } + } + if (!result) { + // found the table binding - but could not find the column + out_error = matching_bindings[0].get().ColumnNotFoundError(column_name); + } + return result; +} + +optional_ptr BindContext::GetBinding(const BindingAlias &alias, ErrorData &out_error) { + auto matching_bindings = GetBindings(alias, out_error); + if (matching_bindings.empty()) { + return nullptr; + } + if (matching_bindings.size() > 1) { + string helper_message = AmbiguityException(alias, matching_bindings); + throw BinderException("Ambiguous reference to table \"%s\" %s", alias.ToString(), helper_message); + } + // found a single matching alias + return &matching_bindings[0].get(); +} + +optional_ptr BindContext::GetBinding(const string &name, ErrorData &out_error) { + return GetBinding(BindingAlias(name), out_error); +} + +BindingAlias GetBindingAlias(ColumnRefExpression &colref) { + if (colref.column_names.size() <= 1 || colref.column_names.size() > 4) { + throw InternalException("Cannot get binding alias from column ref unless it has 2..4 entries"); + } + if (colref.column_names.size() >= 4) { + return BindingAlias(colref.column_names[0], colref.column_names[1], colref.column_names[2]); + } + if (colref.column_names.size() == 3) { + return BindingAlias(colref.column_names[0], colref.column_names[1]); + } + return BindingAlias(colref.column_names[0]); } BindResult BindContext::BindColumn(ColumnRefExpression &colref, idx_t depth) { @@ -260,7 +395,8 @@ BindResult BindContext::BindColumn(ColumnRefExpression &colref, idx_t depth) { } ErrorData error; - auto binding = GetBinding(colref.GetTableName(), error); + BindingAlias alias; + auto binding = GetBinding(GetBindingAlias(colref), colref.GetColumnName(), error); if (!binding) { return BindResult(std::move(error)); } @@ -271,16 +407,16 @@ string BindContext::BindColumn(PositionalReferenceExpression &ref, string &table idx_t total_columns = 0; idx_t current_position = ref.index - 1; for (auto &entry : bindings_list) { - auto &binding = entry.get(); + auto &binding = *entry; idx_t entry_column_count = binding.names.size(); if (ref.index == 0) { // this is a row id - table_name = binding.alias; + table_name = binding.alias.GetAlias(); column_name = "rowid"; return string(); } if (current_position < entry_column_count) { - table_name = binding.alias; + table_name = binding.alias.GetAlias(); column_name = binding.names[current_position]; return string(); } else { @@ -301,38 +437,54 @@ unique_ptr BindContext::PositionToColumn(PositionalReferenc return make_uniq(column_name, table_name); } -bool BindContext::CheckExclusionList(StarExpression &expr, const string &column_name, - vector> &new_select_list, - case_insensitive_set_t &excluded_columns) { - if (expr.exclude_list.find(column_name) != expr.exclude_list.end()) { - excluded_columns.insert(column_name); +struct ExclusionListInfo { + explicit ExclusionListInfo(vector> &new_select_list) + : new_select_list(new_select_list) { + } + + vector> &new_select_list; + case_insensitive_set_t excluded_columns; + qualified_column_set_t excluded_qualified_columns; +}; + +bool CheckExclusionList(StarExpression &expr, const QualifiedColumnName &qualified_name, ExclusionListInfo &info) { + if (expr.exclude_list.find(qualified_name) != expr.exclude_list.end()) { + info.excluded_qualified_columns.insert(qualified_name); return true; } - auto entry = expr.replace_list.find(column_name); + auto entry = expr.replace_list.find(qualified_name.column); if (entry != expr.replace_list.end()) { auto new_entry = entry->second->Copy(); new_entry->alias = entry->first; - excluded_columns.insert(entry->first); - new_select_list.push_back(std::move(new_entry)); + info.excluded_columns.insert(entry->first); + info.new_select_list.push_back(std::move(new_entry)); return true; } return false; } +void HandleRename(StarExpression &expr, const QualifiedColumnName &qualified_name, ParsedExpression &new_expr) { + auto rename_entry = expr.rename_list.find(qualified_name); + if (rename_entry != expr.rename_list.end()) { + new_expr.alias = rename_entry->second; + } +} + void BindContext::GenerateAllColumnExpressions(StarExpression &expr, vector> &new_select_list) { if (bindings_list.empty()) { throw BinderException("* expression without FROM clause!"); } - case_insensitive_set_t excluded_columns; + ExclusionListInfo exclusion_info(new_select_list); if (expr.relation_name.empty()) { // SELECT * case // bind all expressions of each table in-order reference_set_t handled_using_columns; for (auto &entry : bindings_list) { - auto &binding = entry.get(); + auto &binding = *entry; for (auto &column_name : binding.names) { - if (CheckExclusionList(expr, column_name, new_select_list, excluded_columns)) { + QualifiedColumnName qualified_column(binding.alias, column_name); + if (CheckExclusionList(expr, qualified_column, exclusion_info)) { continue; } // check if this column is a USING column @@ -346,23 +498,28 @@ void BindContext::GenerateAllColumnExpressions(StarExpression &expr, continue; } // we have not! output the using column - if (using_binding.primary_binding.empty()) { + if (!using_binding.primary_binding.IsSet()) { // no primary binding: output a coalesce auto coalesce = make_uniq(ExpressionType::OPERATOR_COALESCE); for (auto &child_binding : using_binding.bindings) { coalesce->children.push_back(make_uniq(column_name, child_binding)); } coalesce->alias = column_name; + HandleRename(expr, qualified_column, *coalesce); new_select_list.push_back(std::move(coalesce)); } else { // primary binding: output the qualified column ref - new_select_list.push_back( - make_uniq(column_name, using_binding.primary_binding)); + auto new_expr = make_uniq(column_name, using_binding.primary_binding); + HandleRename(expr, qualified_column, *new_expr); + new_select_list.push_back(std::move(new_expr)); } handled_using_columns.insert(using_binding); continue; } - new_select_list.push_back(make_uniq(column_name, binding.alias)); + auto new_expr = + CreateColumnReference(binding.alias, column_name, ColumnBindType::DO_NOT_EXPAND_GENERATED_COLUMNS); + HandleRename(expr, qualified_column, *new_expr); + new_select_list.push_back(std::move(new_expr)); } } } else { @@ -372,11 +529,10 @@ void BindContext::GenerateAllColumnExpressions(StarExpression &expr, auto binding = GetBinding(expr.relation_name, error); bool is_struct_ref = false; if (!binding) { - auto binding_name = GetMatchingBinding(expr.relation_name); - if (binding_name.empty()) { + binding = GetMatchingBinding(expr.relation_name); + if (!binding) { error.Throw(); } - binding = bindings[binding_name].get(); is_struct_ref = true; } @@ -389,22 +545,28 @@ void BindContext::GenerateAllColumnExpressions(StarExpression &expr, } auto &struct_children = StructType::GetChildTypes(col_type); vector column_names(3); - column_names[0] = binding->alias; + column_names[0] = binding->alias.GetAlias(); column_names[1] = expr.relation_name; for (auto &child : struct_children) { - if (CheckExclusionList(expr, child.first, new_select_list, excluded_columns)) { + QualifiedColumnName qualified_name(child.first); + if (CheckExclusionList(expr, qualified_name, exclusion_info)) { continue; } column_names[2] = child.first; - new_select_list.push_back(make_uniq(column_names)); + auto new_expr = make_uniq(column_names); + HandleRename(expr, qualified_name, *new_expr); + new_select_list.push_back(std::move(new_expr)); } } else { for (auto &column_name : binding->names) { - if (CheckExclusionList(expr, column_name, new_select_list, excluded_columns)) { + QualifiedColumnName qualified_name(binding->alias, column_name); + if (CheckExclusionList(expr, qualified_name, exclusion_info)) { continue; } - - new_select_list.push_back(make_uniq(column_name, binding->alias)); + auto new_expr = + CreateColumnReference(binding->alias, column_name, ColumnBindType::DO_NOT_EXPAND_GENERATED_COLUMNS); + HandleRename(expr, qualified_name, *new_expr); + new_select_list.push_back(std::move(new_expr)); } } } @@ -413,13 +575,14 @@ void BindContext::GenerateAllColumnExpressions(StarExpression &expr, expr.replace_list.clear(); } for (auto &excluded : expr.exclude_list) { - if (excluded_columns.find(excluded) == excluded_columns.end()) { - throw BinderException("Column \"%s\" in EXCLUDE list not found in %s", excluded, + if (exclusion_info.excluded_qualified_columns.find(excluded) == + exclusion_info.excluded_qualified_columns.end()) { + throw BinderException("Column \"%s\" in EXCLUDE list not found in %s", excluded.ToString(), expr.relation_name.empty() ? "FROM clause" : expr.relation_name.c_str()); } } for (auto &entry : expr.replace_list) { - if (excluded_columns.find(entry.first) == excluded_columns.end()) { + if (exclusion_info.excluded_columns.find(entry.first) == exclusion_info.excluded_columns.end()) { throw BinderException("Column \"%s\" in REPLACE list not found in %s", entry.first, expr.relation_name.empty() ? "FROM clause" : expr.relation_name.c_str()); } @@ -428,7 +591,7 @@ void BindContext::GenerateAllColumnExpressions(StarExpression &expr, void BindContext::GetTypesAndNames(vector &result_names, vector &result_types) { for (auto &binding_entry : bindings_list) { - auto &binding = binding_entry.get(); + auto &binding = *binding_entry; D_ASSERT(binding.names.size() == binding.types.size()); for (idx_t i = 0; i < binding.names.size(); i++) { result_names.push_back(binding.names[i]); @@ -437,24 +600,27 @@ void BindContext::GetTypesAndNames(vector &result_names, vector binding) { - if (bindings.find(alias) != bindings.end()) { - throw BinderException("Duplicate alias \"%s\" in query!", alias); - } - bindings_list.push_back(*binding); - bindings[alias] = std::move(binding); +void BindContext::AddBinding(unique_ptr binding) { + bindings_list.push_back(std::move(binding)); +} + +void BindContext::AddBaseTable(idx_t index, const string &alias, const vector &names, + const vector &types, vector &bound_column_ids, + StandardEntry &entry, bool add_row_id) { + AddBinding(make_uniq(alias, types, names, bound_column_ids, &entry, index, add_row_id)); } void BindContext::AddBaseTable(idx_t index, const string &alias, const vector &names, - const vector &types, vector &bound_column_ids, - StandardEntry *entry, bool add_row_id) { - AddBinding(alias, make_uniq(alias, types, names, bound_column_ids, entry, index, add_row_id)); + const vector &types, vector &bound_column_ids, + const string &table_name) { + AddBinding(make_uniq(alias.empty() ? table_name : alias, types, names, bound_column_ids, nullptr, + index, true)); } void BindContext::AddTableFunction(idx_t index, const string &alias, const vector &names, - const vector &types, vector &bound_column_ids, - StandardEntry *entry) { - AddBinding(alias, make_uniq(alias, types, names, bound_column_ids, entry, index)); + const vector &types, vector &bound_column_ids, + optional_ptr entry) { + AddBinding(make_uniq(alias, types, names, bound_column_ids, entry, index)); } static string AddColumnNameToBinding(const string &base_name, case_insensitive_set_t ¤t_names) { @@ -493,13 +659,13 @@ void BindContext::AddSubquery(idx_t index, const string &alias, SubqueryRef &ref void BindContext::AddEntryBinding(idx_t index, const string &alias, const vector &names, const vector &types, StandardEntry &entry) { - AddBinding(alias, make_uniq(alias, types, names, index, entry)); + AddBinding(make_uniq(alias, types, names, index, entry)); } void BindContext::AddView(idx_t index, const string &alias, SubqueryRef &ref, BoundQueryNode &subquery, - ViewCatalogEntry *view) { + ViewCatalogEntry &view) { auto names = AliasColumnNames(alias, subquery.names, ref.column_name_alias); - AddEntryBinding(index, alias, names, subquery.types, view->Cast()); + AddEntryBinding(index, alias, names, subquery.types, view.Cast()); } void BindContext::AddSubquery(idx_t index, const string &alias, TableFunctionRef &ref, BoundQueryNode &subquery) { @@ -509,36 +675,31 @@ void BindContext::AddSubquery(idx_t index, const string &alias, TableFunctionRef void BindContext::AddGenericBinding(idx_t index, const string &alias, const vector &names, const vector &types) { - AddBinding(alias, make_uniq(BindingType::BASE, alias, types, names, index)); + AddBinding(make_uniq(BindingType::BASE, BindingAlias(alias), types, names, index)); } void BindContext::AddCTEBinding(idx_t index, const string &alias, const vector &names, const vector &types) { - auto binding = make_shared_ptr(BindingType::BASE, alias, types, names, index); + auto binding = make_shared_ptr(BindingType::BASE, BindingAlias(alias), types, names, index); if (cte_bindings.find(alias) != cte_bindings.end()) { - throw BinderException("Duplicate alias \"%s\" in query!", alias); + throw BinderException("Duplicate CTE binding \"%s\" in query!", alias); } cte_bindings[alias] = std::move(binding); cte_references[alias] = make_shared_ptr(0); } void BindContext::AddContext(BindContext other) { - for (auto &binding : other.bindings) { - if (bindings.find(binding.first) != bindings.end()) { - throw BinderException("Duplicate alias \"%s\" in query!", binding.first); - } - bindings[binding.first] = std::move(binding.second); - } for (auto &binding : other.bindings_list) { - bindings_list.push_back(binding); + AddBinding(std::move(binding)); } for (auto &entry : other.using_columns) { for (auto &alias : entry.second) { #ifdef DEBUG for (auto &other_alias : using_columns[entry.first]) { for (auto &col : alias.get().bindings) { - D_ASSERT(other_alias.get().bindings.find(col) == other_alias.get().bindings.end()); + D_ASSERT(std::find(other_alias.get().bindings.begin(), other_alias.get().bindings.end(), col) == + other_alias.get().bindings.end()); } } #endif @@ -547,19 +708,38 @@ void BindContext::AddContext(BindContext other) { } } -void BindContext::RemoveContext(vector> &other_bindings_list) { - for (auto &other_binding : other_bindings_list) { - auto it = std::remove_if(bindings_list.begin(), bindings_list.end(), [other_binding](reference x) { - return x.get().alias == other_binding.get().alias; - }); - bindings_list.erase(it, bindings_list.end()); +vector BindContext::GetBindingAliases() { + vector result; + for (auto &binding : bindings_list) { + result.push_back(BindingAlias(binding->alias)); } + return result; +} - for (auto &other_binding : other_bindings_list) { - auto &alias = other_binding.get().alias; - if (bindings.find(alias) != bindings.end()) { - bindings.erase(alias); +void BindContext::RemoveContext(const vector &aliases) { + for (auto &alias : aliases) { + // remove the binding from any USING columns + for (auto &using_sets : using_columns) { + for (auto &using_set_ref : using_sets.second) { + auto &using_set = using_set_ref.get(); + auto it = std::remove_if(using_set.bindings.begin(), using_set.bindings.end(), + [&](const BindingAlias &using_alias) { return using_alias == alias; }); + using_set.bindings.erase(it, using_set.bindings.end()); + if (using_set.bindings.empty()) { + throw InternalException( + "BindContext::RemoveContext - no more tables that refer to this using binding"); + } + if (using_set.primary_binding == alias) { + throw InternalException( + "BindContext::RemoveContext - cannot remove primary binding from using binding"); + } + } } + + // remove the binding from the list of bindings + auto it = std::remove_if(bindings_list.begin(), bindings_list.end(), + [&](unique_ptr &x) { return x->alias == alias; }); + bindings_list.erase(it, bindings_list.end()); } } diff --git a/src/duckdb/src/planner/binder.cpp b/src/duckdb/src/planner/binder.cpp index ea751bad..d1f24003 100644 --- a/src/duckdb/src/planner/binder.cpp +++ b/src/duckdb/src/planner/binder.cpp @@ -7,6 +7,7 @@ #include "duckdb/common/helper.hpp" #include "duckdb/main/config.hpp" #include "duckdb/main/database.hpp" +#include "duckdb/optimizer/optimizer.hpp" #include "duckdb/parser/expression/function_expression.hpp" #include "duckdb/parser/expression/subquery_expression.hpp" #include "duckdb/parser/parsed_expression_iterator.hpp" @@ -59,7 +60,7 @@ Binder::Binder(ClientContext &context, shared_ptr parent_p, BinderType b : context(context), bind_context(*this), parent(std::move(parent_p)), bound_tables(0), binder_type(binder_type), entry_retriever(context) { if (parent) { - entry_retriever.SetCallback(parent->entry_retriever.GetCallback()); + entry_retriever.Inherit(parent->entry_retriever); // We have to inherit macro and lambda parameter bindings and from the parent binder, if there is a parent. macro_binding = parent->macro_binding; @@ -237,7 +238,7 @@ static bool ParsedExpressionIsAggregate(Binder &binder, const ParsedExpression & if (expr.GetExpressionClass() == ExpressionClass::FUNCTION) { auto &function = expr.Cast(); QueryErrorContext error_context; - auto entry = binder.GetCatalogEntry(CatalogType::SCALAR_FUNCTION_ENTRY, function.catalog, function.schema, + auto entry = binder.GetCatalogEntry(CatalogType::AGGREGATE_FUNCTION_ENTRY, function.catalog, function.schema, function.function_name, OnEntryNotFound::RETURN_NULL, error_context); if (entry && entry->type == CatalogType::AGGREGATE_FUNCTION_ENTRY) { return true; @@ -342,9 +343,9 @@ unique_ptr Binder::BindNode(QueryNode &node) { BoundStatement Binder::Bind(QueryNode &node) { BoundStatement result; - if (context.db->config.options.disabled_optimizers.find(OptimizerType::MATERIALIZED_CTE) == - context.db->config.options.disabled_optimizers.end() && - context.config.enable_optimizer && OptimizeCTEs(node)) { + if (node.type != QueryNodeType::CTE_NODE && // Issue #13850 - Don't auto-materialize if users materialize (for now) + !Optimizer::OptimizerDisabled(context, OptimizerType::MATERIALIZED_CTE) && context.config.enable_optimizer && + OptimizeCTEs(node)) { switch (node.type) { case QueryNodeType::SELECT_NODE: result = BindWithCTE(node.Cast()); @@ -583,51 +584,30 @@ void Binder::AddCorrelatedColumn(const CorrelatedColumnInfo &info) { } } -bool Binder::HasMatchingBinding(const string &table_name, const string &column_name, ErrorData &error) { +optional_ptr Binder::GetMatchingBinding(const string &table_name, const string &column_name, + ErrorData &error) { string empty_schema; - return HasMatchingBinding(empty_schema, table_name, column_name, error); + return GetMatchingBinding(empty_schema, table_name, column_name, error); } -bool Binder::HasMatchingBinding(const string &schema_name, const string &table_name, const string &column_name, - ErrorData &error) { +optional_ptr Binder::GetMatchingBinding(const string &schema_name, const string &table_name, + const string &column_name, ErrorData &error) { string empty_catalog; - return HasMatchingBinding(empty_catalog, schema_name, table_name, column_name, error); + return GetMatchingBinding(empty_catalog, schema_name, table_name, column_name, error); } -bool Binder::HasMatchingBinding(const string &catalog_name, const string &schema_name, const string &table_name, - const string &column_name, ErrorData &error) { +optional_ptr Binder::GetMatchingBinding(const string &catalog_name, const string &schema_name, + const string &table_name, const string &column_name, + ErrorData &error) { optional_ptr binding; D_ASSERT(!lambda_bindings); - if (macro_binding && table_name == macro_binding->alias) { + if (macro_binding && table_name == macro_binding->GetAlias()) { binding = optional_ptr(macro_binding.get()); } else { - binding = bind_context.GetBinding(table_name, error); + BindingAlias alias(catalog_name, schema_name, table_name); + binding = bind_context.GetBinding(alias, column_name, error); } - - if (!binding) { - return false; - } - if (!catalog_name.empty() || !schema_name.empty()) { - auto catalog_entry = binding->GetStandardEntry(); - if (!catalog_entry) { - return false; - } - if (!catalog_name.empty() && catalog_entry->catalog.GetName() != catalog_name) { - return false; - } - if (!schema_name.empty() && catalog_entry->schema.name != schema_name) { - return false; - } - if (catalog_entry->name != table_name) { - return false; - } - } - bool binding_found; - binding_found = binding->HasMatchingBinding(column_name); - if (!binding_found) { - error = binding->ColumnNotFoundError(column_name); - } - return binding_found; + return binding; } void Binder::SetBindingMode(BindingMode mode) { @@ -702,19 +682,18 @@ BoundStatement Binder::BindReturning(vector> return auto binder = Binder::CreateBinder(context); - vector bound_columns; + vector bound_columns; idx_t column_count = 0; for (auto &col : table.GetColumns().Logical()) { names.push_back(col.Name()); types.push_back(col.Type()); if (!col.Generated()) { - bound_columns.push_back(column_count); + bound_columns.emplace_back(column_count); } column_count++; } - binder->bind_context.AddBaseTable(update_table_index, alias.empty() ? table.name : alias, names, types, - bound_columns, &table, false); + binder->bind_context.AddBaseTable(update_table_index, alias, names, types, bound_columns, table, false); ReturningBinder returning_binder(*binder, context); vector> projection_expressions; diff --git a/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp index 2051bb1e..4ab4d1a7 100644 --- a/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_aggregate_expression.cpp @@ -4,6 +4,7 @@ #include "duckdb/execution/expression_executor.hpp" #include "duckdb/function/function_binder.hpp" #include "duckdb/function/scalar/generic_functions.hpp" +#include "duckdb/function/scalar/generic_common.hpp" #include "duckdb/main/config.hpp" #include "duckdb/parser/expression/constant_expression.hpp" #include "duckdb/parser/expression/function_expression.hpp" @@ -20,16 +21,31 @@ namespace duckdb { -static bool ExtractFunctionalDependencies(column_binding_set_t &deps, const unique_ptr &expr) { - if (expr->type == ExpressionType::BOUND_COLUMN_REF) { - auto &colref = expr->Cast(); - deps.insert(colref.binding); +static bool IsFunctionallyDependent(const unique_ptr &expr, const vector> &deps) { + // Volatile expressions can't depend on anything else + if (expr->IsVolatile()) { + return false; + } + // Constant expressions are always FD + if (expr->IsFoldable()) { + return true; + } + // If the expression matches ANY of the dependencies, then it is FD on them + for (const auto &dep : deps) { + // We don't need to check volatility of the dependencies because we checked it for the expression. + if (expr->Equals(*dep)) { + return true; + } } - bool is_volatile = expr->IsVolatile(); - ExpressionIterator::EnumerateChildren( - *expr, [&](unique_ptr &child) { is_volatile |= ExtractFunctionalDependencies(deps, child); }); - return is_volatile; + // The expression doesn't match any dependency, so check ALL children. + bool has_children = false; + bool are_dependent = true; + ExpressionIterator::EnumerateChildren(*expr, [&](unique_ptr &child) { + has_children = true; + are_dependent &= IsFunctionallyDependent(child, deps); + }); + return has_children && are_dependent; } static Value NegatePercentileValue(const Value &v, const bool desc) { @@ -239,7 +255,7 @@ BindResult BaseSelectBinder::BindAggregate(FunctionExpression &aggr, AggregateFu } // bind the aggregate - FunctionBinder function_binder(context); + FunctionBinder function_binder(binder); auto best_function = function_binder.BindFunction(func.name, func.functions, types, error); if (!best_function.IsValid()) { error.AddQueryLocation(aggr); @@ -264,26 +280,9 @@ BindResult BaseSelectBinder::BindAggregate(FunctionExpression &aggr, AggregateFu // If the aggregate is DISTINCT then the ORDER BYs need to be functional dependencies of the arguments. if (aggr.distinct && order_bys) { - column_binding_set_t child_dependencies; - bool children_volatile = false; - for (const auto &child : children) { - children_volatile |= ExtractFunctionalDependencies(child_dependencies, child); - } - - column_binding_set_t order_dependencies; - bool order_volatile = false; + bool in_args = true; for (const auto &order_by : order_bys->orders) { - order_volatile |= ExtractFunctionalDependencies(order_dependencies, order_by.expression); - } - - bool in_args = !children_volatile && !order_volatile; - if (in_args) { - for (const auto &binding : order_dependencies) { - if (!child_dependencies.count(binding)) { - in_args = false; - break; - } - } + in_args &= IsFunctionallyDependent(order_by.expression, children); } if (!in_args) { diff --git a/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp index 03a6fdbd..473bd213 100644 --- a/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_columnref_expression.cpp @@ -60,7 +60,7 @@ unique_ptr ExpressionBinder::QualifyColumnName(const string &c // we are referencing a USING column // check if we can refer to one of the base columns directly unique_ptr expression; - if (!using_binding->primary_binding.empty()) { + if (using_binding->primary_binding.IsSet()) { // we can! just assign the table name and re-bind return binder.bind_context.CreateColumnReference(using_binding->primary_binding, column_name); } else { @@ -81,26 +81,25 @@ unique_ptr ExpressionBinder::QualifyColumnName(const string &c } // find a table binding that contains this column name - string table_name = binder.bind_context.GetMatchingBinding(column_name); + auto table_binding = binder.bind_context.GetMatchingBinding(column_name); // throw an error if a macro parameter name conflicts with a column name auto is_macro_column = false; if (binder.macro_binding && binder.macro_binding->HasMatchingBinding(column_name)) { is_macro_column = true; - if (!table_name.empty()) { + if (table_binding) { throw BinderException("Conflicting column names for column " + column_name + "!"); } } // bind as a macro column if (is_macro_column) { - D_ASSERT(!binder.macro_binding->alias.empty()); - return make_uniq(column_name, binder.macro_binding->alias); + return binder.bind_context.CreateColumnReference(binder.macro_binding->alias, column_name); } // bind as a regular column - if (!table_name.empty()) { - return binder.bind_context.CreateColumnReference(table_name, column_name); + if (table_binding) { + return binder.bind_context.CreateColumnReference(table_binding->alias, column_name); } // it's not, find candidates and error @@ -116,7 +115,6 @@ void ExpressionBinder::QualifyColumnNames(unique_ptr &expr, bool next_within_function_expression = false; switch (expr->type) { case ExpressionType::COLUMN_REF: { - auto &col_ref = expr->Cast(); // don't qualify lambda parameters @@ -220,6 +218,11 @@ void ExpressionBinder::QualifyColumnNames(Binder &binder, unique_ptr &expr) { + vector> lambda_params; + expression_binder.QualifyColumnNames(expr, lambda_params); +} + unique_ptr ExpressionBinder::CreateStructExtract(unique_ptr base, const string &field_name) { @@ -231,59 +234,57 @@ unique_ptr ExpressionBinder::CreateStructExtract(unique_ptr ExpressionBinder::CreateStructPack(ColumnRefExpression &col_ref) { - - D_ASSERT(col_ref.column_names.size() <= 3); + if (col_ref.column_names.size() > 3) { + return nullptr; + } + D_ASSERT(!col_ref.column_names.empty()); // get a matching binding ErrorData error; - auto &table_name = col_ref.column_names.back(); - auto binding = binder.bind_context.GetBinding(table_name, error); - - if (!binding) { - return nullptr; + optional_ptr binding; + switch (col_ref.column_names.size()) { + case 1: { + // single entry - this must be the table name + BindingAlias alias(col_ref.column_names[0]); + binding = binder.bind_context.GetBinding(alias, error); + break; } - - if (col_ref.column_names.size() >= 2) { - // "schema_name.table_name" - auto catalog_entry = binding->GetStandardEntry(); - if (!catalog_entry) { - return nullptr; - } - - if (catalog_entry->name != table_name) { - return nullptr; - } - - if (col_ref.column_names.size() == 2) { - auto &qualifier = col_ref.column_names[0]; - if (catalog_entry->catalog.GetName() != qualifier && catalog_entry->schema.name != qualifier) { - return nullptr; - } - - } else if (col_ref.column_names.size() == 3) { - auto &catalog_name = col_ref.column_names[0]; - auto &schema_name = col_ref.column_names[1]; - if (catalog_entry->catalog.GetName() != catalog_name || catalog_entry->schema.name != schema_name) { - return nullptr; - } - - } else { - throw InternalException("Expected 2 or 3 column names for CreateStructPack"); + case 2: { + // two entries - this can either be "catalog.table" or "schema.table" - try both + BindingAlias alias(col_ref.column_names[0], col_ref.column_names[1]); + binding = binder.bind_context.GetBinding(alias, error); + if (!binding) { + alias = BindingAlias(col_ref.column_names[0], INVALID_SCHEMA, col_ref.column_names[1]); + binding = binder.bind_context.GetBinding(alias, error); } + break; + } + case 3: { + // three entries - this must be "catalog.schema.table" + BindingAlias alias(col_ref.column_names[0], col_ref.column_names[1], col_ref.column_names[2]); + binding = binder.bind_context.GetBinding(alias, error); + break; + } + default: + throw InternalException("Expected 1, 2 or 3 column names for CreateStructPack"); + } + if (!binding) { + return nullptr; } // We found the table, now create the struct_pack expression vector> child_expressions; child_expressions.reserve(binding->names.size()); for (const auto &column_name : binding->names) { - child_expressions.push_back(make_uniq(column_name, table_name)); + child_expressions.push_back(binder.bind_context.CreateColumnReference( + binding->alias, column_name, ColumnBindType::DO_NOT_EXPAND_GENERATED_COLUMNS)); } return make_uniq("struct_pack", std::move(child_expressions)); } -unique_ptr ExpressionBinder::QualifyColumnNameWithManyDots(ColumnRefExpression &col_ref, - ErrorData &error) { - +unique_ptr ExpressionBinder::QualifyColumnNameWithManyDotsInternal(ColumnRefExpression &col_ref, + ErrorData &error, + idx_t &struct_extract_start) { // two or more dots (i.e. "part1.part2.part3.part4...") // -> part1 is a catalog, part2 is a schema, part3 is a table, part4 is a column name, part 5 and beyond are // struct fields @@ -299,50 +300,56 @@ unique_ptr ExpressionBinder::QualifyColumnNameWithManyDots(Col // -> 3. resolve "part1" as a table // -> 4. resolve "part1" as a column - unique_ptr result_expr; - idx_t struct_extract_start; - // first check if part1 is a catalog - if (col_ref.column_names.size() > 3 && - binder.HasMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], col_ref.column_names[2], - col_ref.column_names[3], error)) { - // part1 is a catalog - the column reference is "catalog.schema.table.column" - result_expr = binder.bind_context.CreateColumnReference(col_ref.column_names[0], col_ref.column_names[1], - col_ref.column_names[2], col_ref.column_names[3]); - struct_extract_start = 4; - - } else if (binder.HasMatchingBinding(col_ref.column_names[0], INVALID_SCHEMA, col_ref.column_names[1], - col_ref.column_names[2], error)) { + optional_ptr binding; + if (col_ref.column_names.size() > 3) { + binding = binder.GetMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], col_ref.column_names[2], + col_ref.column_names[3], error); + if (binding) { + // part1 is a catalog - the column reference is "catalog.schema.table.column" + struct_extract_start = 4; + return binder.bind_context.CreateColumnReference(binding->alias, col_ref.column_names[3]); + } + } + binding = binder.GetMatchingBinding(col_ref.column_names[0], INVALID_SCHEMA, col_ref.column_names[1], + col_ref.column_names[2], error); + if (binding) { // part1 is a catalog - the column reference is "catalog.table.column" - result_expr = binder.bind_context.CreateColumnReference(col_ref.column_names[0], INVALID_SCHEMA, - col_ref.column_names[1], col_ref.column_names[2]); struct_extract_start = 3; - - } else if (binder.HasMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], col_ref.column_names[2], - error)) { + return binder.bind_context.CreateColumnReference(binding->alias, col_ref.column_names[2]); + } + binding = + binder.GetMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], col_ref.column_names[2], error); + if (binding) { // part1 is a schema - the column reference is "schema.table.column" // any additional fields are turned into struct_extract calls - result_expr = binder.bind_context.CreateColumnReference(col_ref.column_names[0], col_ref.column_names[1], - col_ref.column_names[2]); struct_extract_start = 3; - - } else if (binder.HasMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], error)) { + return binder.bind_context.CreateColumnReference(binding->alias, col_ref.column_names[2]); + } + binding = binder.GetMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], error); + if (binding) { // part1 is a table // the column reference is "table.column" // any additional fields are turned into struct_extract calls - result_expr = binder.bind_context.CreateColumnReference(col_ref.column_names[0], col_ref.column_names[1]); struct_extract_start = 2; - - } else { - // part1 could be a column - ErrorData col_error; - result_expr = QualifyColumnName(col_ref.column_names[0], col_error); - if (!result_expr) { - // it is not! Try creating an implicit struct_pack - return CreateStructPack(col_ref); - } + return binder.bind_context.CreateColumnReference(binding->alias, col_ref.column_names[1]); + } + // part1 could be a column + ErrorData col_error; + auto result_expr = QualifyColumnName(col_ref.column_names[0], col_error); + if (result_expr) { // it is! add the struct extract calls struct_extract_start = 1; + return result_expr; + } + return CreateStructPack(col_ref); +} +unique_ptr ExpressionBinder::QualifyColumnNameWithManyDots(ColumnRefExpression &col_ref, + ErrorData &error) { + idx_t struct_extract_start = col_ref.column_names.size(); + auto result_expr = QualifyColumnNameWithManyDotsInternal(col_ref, error, struct_extract_start); + if (!result_expr) { + return nullptr; } // create a struct extract with all remaining column names @@ -387,9 +394,10 @@ unique_ptr ExpressionBinder::QualifyColumnName(ColumnRefExpres // -> part1 is a column, part2 is a property of that column (i.e. struct_extract) // first check if part1 is a table, and part2 is a standard column name - if (binder.HasMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], error)) { + auto binding = binder.GetMatchingBinding(col_ref.column_names[0], col_ref.column_names[1], error); + if (binding) { // it is! return the column reference directly - return binder.bind_context.CreateColumnReference(col_ref.column_names[0], col_ref.column_names[1]); + return binder.bind_context.CreateColumnReference(binding->alias, col_ref.GetColumnName()); } // otherwise check if we can turn this into a struct extract @@ -461,7 +469,7 @@ BindResult ExpressionBinder::BindExpression(ColumnRefExpression &col_ref_p, idx_ D_ASSERT(col_ref.IsQualified()); auto &table_name = col_ref.GetTableName(); - if (binder.macro_binding && table_name == binder.macro_binding->alias) { + if (binder.macro_binding && table_name == binder.macro_binding->GetAlias()) { result = binder.macro_binding->Bind(col_ref, depth); } else { result = binder.bind_context.BindColumn(col_ref, depth); diff --git a/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp index 2ec1611a..d66c76ff 100644 --- a/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_comparison_expression.cpp @@ -16,9 +16,9 @@ namespace duckdb { bool ExpressionBinder::PushCollation(ClientContext &context, unique_ptr &source, - const LogicalType &sql_type) { + const LogicalType &sql_type, CollationType type) { auto &collation_binding = CollationBinding::Get(context); - return collation_binding.PushCollation(context, source, sql_type); + return collation_binding.PushCollation(context, source, sql_type, type); } void ExpressionBinder::TestCollation(ClientContext &context, const string &collation) { diff --git a/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp index e550c9d1..6af70584 100644 --- a/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_function_expression.cpp @@ -125,7 +125,7 @@ BindResult ExpressionBinder::BindFunction(FunctionExpression &function, ScalarFu children.push_back(std::move(child)); } - FunctionBinder function_binder(context); + FunctionBinder function_binder(binder); auto result = function_binder.BindScalarFunction(func, std::move(children), error, function.is_operator, &binder); if (!result) { error.AddQueryLocation(function); @@ -218,7 +218,7 @@ BindResult ExpressionBinder::BindLambdaFunction(FunctionExpression &function, Sc auto &bound_lambda_expr = children.back()->Cast(); CaptureLambdaColumns(bound_lambda_expr, bound_lambda_expr.lambda_expr, &bind_lambda_function, list_child_type); - FunctionBinder function_binder(context); + FunctionBinder function_binder(binder); unique_ptr result = function_binder.BindScalarFunction(func, std::move(children), error, function.is_operator, &binder); if (!result) { @@ -270,6 +270,9 @@ BindResult ExpressionBinder::BindUnnest(FunctionExpression &expr, idx_t depth, b return BindUnsupportedExpression(expr, depth, UnsupportedUnnestMessage()); } +void ExpressionBinder::ThrowIfUnnestInLambda(const ColumnBinding &column_binding) { +} + string ExpressionBinder::UnsupportedAggregateMessage() { return "Aggregate functions are not supported here"; } diff --git a/src/duckdb/src/planner/binder/expression/bind_lambda.cpp b/src/duckdb/src/planner/binder/expression/bind_lambda.cpp index 7dd9b737..7da2c592 100644 --- a/src/duckdb/src/planner/binder/expression/bind_lambda.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_lambda.cpp @@ -178,7 +178,7 @@ void ExpressionBinder::CaptureLambdaColumns(BoundLambdaExpression &bound_lambda_ const LogicalType &list_child_type) { if (expr->expression_class == ExpressionClass::BOUND_SUBQUERY) { - throw InvalidInputException("Subqueries are not supported in lambda expressions!"); + throw BinderException("subqueries in lambda expressions are not supported"); } // these are bound depth-first @@ -195,6 +195,12 @@ void ExpressionBinder::CaptureLambdaColumns(BoundLambdaExpression &bound_lambda_ expr->expression_class == ExpressionClass::BOUND_PARAMETER || expr->expression_class == ExpressionClass::BOUND_LAMBDA_REF) { + if (expr->expression_class == ExpressionClass::BOUND_COLUMN_REF) { + // Search for UNNEST. + auto &column_binding = expr->Cast().binding; + ThrowIfUnnestInLambda(column_binding); + } + // move the expr because we are going to replace it auto original = std::move(expr); unique_ptr replacement; diff --git a/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp index caa6ba77..151eadf9 100644 --- a/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_macro_expression.cpp @@ -1,6 +1,5 @@ #include "duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp" -#include "duckdb/common/reference_map.hpp" -#include "duckdb/common/string_util.hpp" +#include "duckdb/common/enums/expression_type.hpp" #include "duckdb/function/scalar_macro_function.hpp" #include "duckdb/parser/expression/function_expression.hpp" #include "duckdb/parser/expression/subquery_expression.hpp" @@ -26,12 +25,8 @@ void ExpressionBinder::ReplaceMacroParametersInLambda(FunctionExpression &functi if (!error_message.empty()) { // Possibly a JSON function, replace both LHS and RHS. - ParsedExpressionIterator::EnumerateChildren(*lambda_expr.lhs, [&](unique_ptr &child) { - ReplaceMacroParameters(child, lambda_params); - }); - ParsedExpressionIterator::EnumerateChildren(*lambda_expr.expr, [&](unique_ptr &child) { - ReplaceMacroParameters(child, lambda_params); - }); + ReplaceMacroParameters(lambda_expr.lhs, lambda_params); + ReplaceMacroParameters(lambda_expr.expr, lambda_params); continue; } @@ -43,9 +38,7 @@ void ExpressionBinder::ReplaceMacroParametersInLambda(FunctionExpression &functi } // Only replace in the RHS of the expression. - ParsedExpressionIterator::EnumerateChildren(*lambda_expr.expr, [&](unique_ptr &child) { - ReplaceMacroParameters(child, lambda_params); - }); + ReplaceMacroParameters(lambda_expr.expr, lambda_params); lambda_params.pop_back(); } @@ -117,13 +110,13 @@ void ExpressionBinder::UnfoldMacroExpression(FunctionExpression &function, Scala vector names; // positional parameters for (idx_t i = 0; i < macro_def.parameters.size(); i++) { - types.emplace_back(LogicalType::SQLNULL); + types.emplace_back(LogicalTypeId::UNKNOWN); auto ¶m = macro_def.parameters[i]->Cast(); names.push_back(param.GetColumnName()); } // default parameters for (auto it = macro_def.default_parameters.begin(); it != macro_def.default_parameters.end(); it++) { - types.emplace_back(LogicalType::SQLNULL); + types.emplace_back(LogicalTypeId::UNKNOWN); names.push_back(it->first); // now push the defaults into the positionals positionals.push_back(std::move(defaults[it->first])); diff --git a/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp index 572e0bb2..7738d9fb 100644 --- a/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_operator_expression.cpp @@ -1,9 +1,9 @@ #include "duckdb/parser/expression/function_expression.hpp" #include "duckdb/parser/expression/operator_expression.hpp" +#include "duckdb/planner/binder.hpp" #include "duckdb/planner/expression/bound_case_expression.hpp" #include "duckdb/planner/expression/bound_cast_expression.hpp" #include "duckdb/planner/expression/bound_comparison_expression.hpp" -#include "duckdb/planner/binder.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_operator_expression.hpp" #include "duckdb/planner/expression/bound_parameter_expression.hpp" @@ -135,13 +135,16 @@ BindResult ExpressionBinder::BindExpression(OperatorExpression &op, idx_t depth) auto &name_exp = BoundExpression::GetExpression(*op.children[1]); const auto &extract_expr_type = extract_exp->return_type; if (extract_expr_type.id() != LogicalTypeId::STRUCT && extract_expr_type.id() != LogicalTypeId::UNION && - extract_expr_type.id() != LogicalTypeId::SQLNULL && !extract_expr_type.IsJSONType()) { + extract_expr_type.id() != LogicalTypeId::MAP && extract_expr_type.id() != LogicalTypeId::SQLNULL && + !extract_expr_type.IsJSONType()) { return BindResult(StringUtil::Format( - "Cannot extract field %s from expression \"%s\" because it is not a struct, union, or json", + "Cannot extract field %s from expression \"%s\" because it is not a struct, union, map, or json", name_exp->ToString(), extract_exp->ToString())); } if (extract_expr_type.id() == LogicalTypeId::UNION) { function_name = "union_extract"; + } else if (extract_expr_type.id() == LogicalTypeId::MAP) { + function_name = "map_extract"; } else if (extract_expr_type.IsJSONType()) { function_name = "json_extract"; // Make sure we only extract fields, not array elements, by adding $. syntax diff --git a/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp index e25c69c1..2a15d0c8 100644 --- a/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_star_expression.cpp @@ -134,8 +134,77 @@ static string ReplaceColumnsAlias(const string &alias, const string &column_name return result; } +void TryTransformStarLike(unique_ptr &root) { + // detect "* LIKE [literal]" and similar expressions + if (root->expression_class != ExpressionClass::FUNCTION) { + return; + } + auto &function = root->Cast(); + if (function.children.size() != 2) { + return; + } + auto &left = function.children[0]; + // expression must have a star on the LHS, and a literal on the RHS + if (left->expression_class != ExpressionClass::STAR) { + return; + } + auto &star = left->Cast(); + if (star.columns) { + // COLUMNS(*) has different semantics + return; + } + unordered_set supported_ops {"~~", "!~~", "~~~", "!~~~", "~~*", "!~~*", "regexp_full_match"}; + if (supported_ops.count(function.function_name) == 0) { + // unsupported op for * expression + throw BinderException(*root, "Function \"%s\" cannot be applied to a star expression", function.function_name); + } + auto &right = function.children[1]; + if (right->expression_class != ExpressionClass::CONSTANT) { + throw BinderException(*root, "Pattern applied to a star expression must be a constant"); + } + if (!star.replace_list.empty()) { + throw BinderException(*root, "Replace list cannot be combined with a filtering operation"); + } + // generate a columns expression + // "* LIKE '%literal%' + // -> COLUMNS(list_filter(*, x -> x LIKE '%literal%')) + auto star_expr = std::move(left); + + auto lhs = make_uniq("__lambda_col"); + function.children[0] = lhs->Copy(); + + auto lambda = make_uniq(std::move(lhs), std::move(root)); + vector> filter_children; + filter_children.push_back(std::move(star_expr)); + filter_children.push_back(std::move(lambda)); + auto list_filter = make_uniq("list_filter", std::move(filter_children)); + + auto columns_expr = make_uniq(); + columns_expr->columns = true; + columns_expr->expr = std::move(list_filter); + root = std::move(columns_expr); +} + +optional_ptr Binder::GetResolvedColumnExpression(ParsedExpression &root_expr) { + optional_ptr expr = &root_expr; + while (expr) { + if (expr->type == ExpressionType::COLUMN_REF) { + break; + } + if (expr->type == ExpressionType::OPERATOR_COALESCE) { + expr = expr->Cast().children[0].get(); + } else { + // unknown expression + return nullptr; + } + } + return expr; +} + void Binder::ExpandStarExpression(unique_ptr expr, vector> &new_select_list) { + TryTransformStarLike(expr); + StarExpression *star = nullptr; if (!FindStarExpression(expr, &star, true, false)) { // no star expression: add it as-is @@ -179,7 +248,11 @@ void Binder::ExpandStarExpression(unique_ptr expr, } vector> new_list; for (idx_t i = 0; i < star_list.size(); i++) { - auto &colref = star_list[i]->Cast(); + auto child_expr = GetResolvedColumnExpression(*star_list[i]); + if (!child_expr) { + continue; + } + auto &colref = child_expr->Cast(); if (!RE2::PartialMatch(colref.GetColumnName(), *regex)) { continue; } @@ -244,18 +317,7 @@ void Binder::ExpandStarExpression(unique_ptr expr, auto new_expr = expr->Copy(); ReplaceStarExpression(new_expr, star_list[i]); if (StarExpression::IsColumns(*star)) { - optional_ptr expr = star_list[i].get(); - while (expr) { - if (expr->type == ExpressionType::COLUMN_REF) { - break; - } - if (expr->type == ExpressionType::OPERATOR_COALESCE) { - expr = expr->Cast().children[0].get(); - } else { - // unknown expression - expr = nullptr; - } - } + auto expr = GetResolvedColumnExpression(*star_list[i]); if (expr) { auto &colref = expr->Cast(); if (new_expr->alias.empty()) { diff --git a/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp b/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp index 56ddd8dd..0f9ecc8b 100644 --- a/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp +++ b/src/duckdb/src/planner/binder/expression/bind_unnest_expression.cpp @@ -21,7 +21,7 @@ unique_ptr CreateBoundStructExtract(ClientContext &context, unique_p vector> arguments; arguments.push_back(std::move(expr)); arguments.push_back(make_uniq(Value(key))); - auto extract_function = StructExtractFun::KeyExtractFunction(); + auto extract_function = GetKeyExtractFunction(); auto bind_info = extract_function.bind(context, extract_function, arguments); auto return_type = extract_function.return_type; auto result = make_uniq(return_type, std::move(extract_function), std::move(arguments), @@ -34,7 +34,7 @@ unique_ptr CreateBoundStructExtractIndex(ClientContext &context, uni vector> arguments; arguments.push_back(std::move(expr)); arguments.push_back(make_uniq(Value::BIGINT(int64_t(key)))); - auto extract_function = StructExtractFun::IndexExtractFunction(); + auto extract_function = GetIndexExtractFunction(); auto bind_info = extract_function.bind(context, extract_function, arguments); auto return_type = extract_function.return_type; auto result = make_uniq(return_type, std::move(extract_function), std::move(arguments), @@ -43,6 +43,19 @@ unique_ptr CreateBoundStructExtractIndex(ClientContext &context, uni return std::move(result); } +void SelectBinder::ThrowIfUnnestInLambda(const ColumnBinding &column_binding) { + // Extract the unnests and check if any match the column index. + for (auto &node_pair : node.unnests) { + auto &unnest_node = node_pair.second; + + if (unnest_node.index == column_binding.table_index) { + if (column_binding.column_index < unnest_node.expressions.size()) { + throw BinderException("UNNEST in lambda expressions is not supported"); + } + } + } +} + BindResult SelectBinder::BindUnnest(FunctionExpression &function, idx_t depth, bool root_expression) { // bind the children of the function expression if (depth > 0) { diff --git a/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp b/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp index f1bad4c3..590da7ae 100644 --- a/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp +++ b/src/duckdb/src/planner/binder/query_node/bind_select_node.cpp @@ -1,7 +1,7 @@ #include "duckdb/common/limits.hpp" #include "duckdb/common/string_util.hpp" #include "duckdb/execution/expression_executor.hpp" -#include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" #include "duckdb/function/function_binder.hpp" #include "duckdb/main/config.hpp" #include "duckdb/parser/expression/columnref_expression.hpp" @@ -140,6 +140,7 @@ void Binder::PrepareModifiers(OrderBinder &order_binder, QueryNode &statement, B make_uniq(Value::INTEGER(UnsafeNumericCast(1 + i)))); } } + order_binder.SetQueryComponent("DISTINCT ON"); for (auto &distinct_on_target : distinct.distinct_on_targets) { auto expr = BindOrderExpression(order_binder, std::move(distinct_on_target)); if (!expr) { @@ -147,10 +148,13 @@ void Binder::PrepareModifiers(OrderBinder &order_binder, QueryNode &statement, B } bound_distinct->target_distincts.push_back(std::move(expr)); } + order_binder.SetQueryComponent(); + bound_modifier = std::move(bound_distinct); break; } case ResultModifierType::ORDER_MODIFIER: { + auto &order = mod->Cast(); auto bound_order = make_uniq(); auto &config = DBConfig::GetConfig(context); @@ -306,7 +310,6 @@ void Binder::BindModifiers(BoundQueryNode &result, idx_t table_index, const vect switch (bound_mod->type) { case ResultModifierType::DISTINCT_MODIFIER: { auto &distinct = bound_mod->Cast(); - D_ASSERT(!distinct.target_distincts.empty()); // set types of distinct targets for (auto &expr : distinct.target_distincts) { expr = FinalizeBindOrderExpression(std::move(expr), table_index, names, sql_types, bind_state); @@ -488,12 +491,12 @@ unique_ptr Binder::BindSelectNode(SelectNode &statement, unique_ // but also push a first(x) aggregate in case x is selected (uncollated) info.collated_groups[i] = result->aggregates.size(); - auto first_fun = FirstFun::GetFunction(bound_expr_ref.return_type); + auto first_fun = FirstFunctionGetter::GetFunction(bound_expr_ref.return_type); vector> first_children; // FIXME: would be better to just refer to this expression, but for now we copy first_children.push_back(bound_expr_ref.Copy()); - FunctionBinder function_binder(context); + FunctionBinder function_binder(*this); auto function = function_binder.BindAggregateFunction(first_fun, std::move(first_children)); function->alias = "__collated_group"; result->aggregates.push_back(std::move(function)); @@ -514,7 +517,7 @@ unique_ptr Binder::BindSelectNode(SelectNode &statement, unique_ // bind the HAVING clause, if any if (statement.having) { HavingBinder having_binder(*this, context, *result, info, statement.aggregate_handling); - ExpressionBinder::QualifyColumnNames(*this, statement.having); + ExpressionBinder::QualifyColumnNames(having_binder, statement.having); result->having = having_binder.Bind(statement.having); } @@ -612,6 +615,7 @@ unique_ptr Binder::BindSelectNode(SelectNode &statement, unique_ } // push the GROUP BY ALL expressions into the group set + for (auto &group_by_all_index : group_by_all_indexes) { auto &expr = result->select_list[group_by_all_index]; auto group_ref = make_uniq( @@ -619,6 +623,15 @@ unique_ptr Binder::BindSelectNode(SelectNode &statement, unique_ result->groups.group_expressions.push_back(std::move(expr)); expr = std::move(group_ref); } + set group_by_all_indexes_set; + if (!group_by_all_indexes.empty()) { + idx_t num_set_indexes = result->groups.group_expressions.size(); + for (idx_t i = 0; i < num_set_indexes; i++) { + group_by_all_indexes_set.insert(i); + } + D_ASSERT(result->groups.grouping_sets.empty()); + result->groups.grouping_sets.push_back(group_by_all_indexes_set); + } result->column_count = new_names.size(); result->names = std::move(new_names); result->need_prune = result->select_list.size() > result->column_count; diff --git a/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp b/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp index 66ffede4..82d6c754 100644 --- a/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp +++ b/src/duckdb/src/planner/binder/query_node/bind_setop_node.cpp @@ -88,14 +88,18 @@ static void BuildUnionByNameInfo(ClientContext &context, BoundSetOperationNode & // We throw a binder exception if two same name in the SELECT list for (idx_t i = 0; i < left_node.names.size(); ++i) { if (left_names_map.find(left_node.names[i]) != left_names_map.end()) { - throw BinderException("UNION(ALL) BY NAME operation doesn't support same name in SELECT list"); + throw BinderException("UNION (ALL) BY NAME operation doesn't support duplicate names in the SELECT list - " + "the name \"%s\" occurs multiple times in the left-hand side", + left_node.names[i]); } left_names_map[left_node.names[i]] = i; } for (idx_t i = 0; i < right_node.names.size(); ++i) { if (right_names_map.find(right_node.names[i]) != right_names_map.end()) { - throw BinderException("UNION(ALL) BY NAME operation doesn't support same name in SELECT list"); + throw BinderException("UNION (ALL) BY NAME operation doesn't support duplicate names in the SELECT list - " + "the name \"%s\" occurs multiple times in the right-hand side", + right_node.names[i]); } if (left_names_map.find(right_node.names[i]) == left_names_map.end()) { result.names.push_back(right_node.names[i]); @@ -182,6 +186,16 @@ static void BuildUnionByNameInfo(ClientContext &context, BoundSetOperationNode & } } +static void GatherSetOpBinders(BoundQueryNode &node, Binder &binder, vector> &binders) { + if (node.type != QueryNodeType::SET_OPERATION_NODE) { + binders.push_back(binder); + return; + } + auto &setop_node = node.Cast(); + GatherSetOpBinders(*setop_node.left, *setop_node.left_binder, binders); + GatherSetOpBinders(*setop_node.right, *setop_node.right_binder, binders); +} + unique_ptr Binder::BindNode(SetOperationNode &statement) { auto result = make_uniq(); result->setop_type = statement.setop_type; @@ -247,7 +261,10 @@ unique_ptr Binder::BindNode(SetOperationNode &statement) { GatherAliases(*result, bind_state, reorder_idx); } // now we perform the actual resolution of the ORDER BY/DISTINCT expressions - OrderBinder order_binder({*result->left_binder, *result->right_binder}, bind_state); + vector> binders; + GatherSetOpBinders(*result->left, *result->left_binder, binders); + GatherSetOpBinders(*result->right, *result->right_binder, binders); + OrderBinder order_binder(binders, bind_state); PrepareModifiers(order_binder, statement, *result); } diff --git a/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp b/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp index df896704..0f90c115 100644 --- a/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp +++ b/src/duckdb/src/planner/binder/query_node/bind_table_macro_node.cpp @@ -36,13 +36,13 @@ unique_ptr Binder::BindTableMacro(FunctionExpression &function, Table vector names; // positional parameters for (idx_t i = 0; i < macro_def.parameters.size(); i++) { - types.emplace_back(LogicalType::SQLNULL); + types.emplace_back(LogicalTypeId::UNKNOWN); auto ¶m = macro_def.parameters[i]->Cast(); names.push_back(param.GetColumnName()); } // default parameters for (auto it = macro_def.default_parameters.begin(); it != macro_def.default_parameters.end(); it++) { - types.emplace_back(LogicalType::SQLNULL); + types.emplace_back(LogicalTypeId::UNKNOWN); names.push_back(it->first); // now push the defaults into the positionals positionals.push_back(std::move(defaults[it->first])); diff --git a/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp b/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp index 97678d22..c448f2f1 100644 --- a/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp +++ b/src/duckdb/src/planner/binder/query_node/plan_query_node.cpp @@ -13,6 +13,9 @@ unique_ptr Binder::VisitQueryNode(BoundQueryNode &node, unique_ switch (mod->type) { case ResultModifierType::DISTINCT_MODIFIER: { auto &bound = mod->Cast(); + if (bound.target_distincts.empty()) { + break; + } auto distinct = make_uniq(std::move(bound.target_distincts), bound.distinct_type); distinct->AddChild(std::move(root)); root = std::move(distinct); diff --git a/src/duckdb/src/planner/binder/query_node/plan_setop.cpp b/src/duckdb/src/planner/binder/query_node/plan_setop.cpp index 12e1dcb0..41988bbe 100644 --- a/src/duckdb/src/planner/binder/query_node/plan_setop.cpp +++ b/src/duckdb/src/planner/binder/query_node/plan_setop.cpp @@ -35,12 +35,13 @@ unique_ptr Binder::CastLogicalOperatorToTypes(vectorexpressions.size(); i++) { if (op->expressions[i]->type == ExpressionType::BOUND_COLUMN_REF) { auto &col_ref = op->expressions[i]->Cast(); - if (new_column_types.find(column_ids[col_ref.binding.column_index]) != new_column_types.end()) { + auto column_id = column_ids[col_ref.binding.column_index].GetPrimaryIndex(); + if (new_column_types.find(column_id) != new_column_types.end()) { // Only one reference per column is accepted do_pushdown = false; break; } - new_column_types[column_ids[col_ref.binding.column_index]] = target_types[i]; + new_column_types[column_id] = target_types[i]; } else { do_pushdown = false; break; @@ -52,7 +53,7 @@ unique_ptr Binder::CastLogicalOperatorToTypes(vectorchildren[0]); } } } @@ -132,7 +133,7 @@ unique_ptr Binder::CreatePlan(BoundSetOperationNode &node) { node.right_binder->has_unplanned_dependent_joins; // create actual logical ops for setops - LogicalOperatorType logical_type; + LogicalOperatorType logical_type = LogicalOperatorType::LOGICAL_INVALID; switch (node.setop_type) { case SetOperationType::UNION: case SetOperationType::UNION_BY_NAME: diff --git a/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp b/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp index d020d539..4b5857f5 100644 --- a/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp +++ b/src/duckdb/src/planner/binder/query_node/plan_subquery.cpp @@ -1,4 +1,5 @@ #include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" #include "duckdb/main/client_config.hpp" #include "duckdb/planner/binder.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" @@ -17,7 +18,7 @@ #include "duckdb/common/enums/logical_operator_type.hpp" #include "duckdb/planner/operator/logical_dependent_join.hpp" #include "duckdb/planner/subquery/recursive_dependent_join_planner.hpp" -#include "duckdb/core_functions/scalar/generic_functions.hpp" +#include "duckdb/function/scalar/generic_functions.hpp" namespace duckdb { @@ -36,7 +37,7 @@ static unique_ptr PlanUncorrelatedSubquery(Binder &binder, BoundSubq // now we push a COUNT(*) aggregate onto the limit, this will be either 0 or 1 (EXISTS or NOT EXISTS) auto count_star_fun = CountStarFun::GetFunction(); - FunctionBinder function_binder(binder.context); + FunctionBinder function_binder(binder); auto count_star = function_binder.BindAggregateFunction(count_star_fun, {}, nullptr, AggregateType::NON_DISTINCT); auto idx_type = count_star->return_type; @@ -86,9 +87,10 @@ static unique_ptr PlanUncorrelatedSubquery(Binder &binder, BoundSubq vector> first_children; first_children.push_back(std::move(bound)); - FunctionBinder function_binder(binder.context); - auto first_agg = function_binder.BindAggregateFunction( - FirstFun::GetFunction(expr.return_type), std::move(first_children), nullptr, AggregateType::NON_DISTINCT); + FunctionBinder function_binder(binder); + auto first_agg = + function_binder.BindAggregateFunction(FirstFunctionGetter::GetFunction(expr.return_type), + std::move(first_children), nullptr, AggregateType::NON_DISTINCT); expressions.push_back(std::move(first_agg)); if (error_on_multiple_rows) { diff --git a/src/duckdb/src/planner/binder/statement/bind_copy.cpp b/src/duckdb/src/planner/binder/statement/bind_copy.cpp index d95db2e0..ce2f93ad 100644 --- a/src/duckdb/src/planner/binder/statement/bind_copy.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_copy.cpp @@ -29,12 +29,6 @@ static bool GetBooleanArg(ClientContext &context, const vector &arg) { } BoundStatement Binder::BindCopyTo(CopyStatement &stmt, CopyToType copy_to_type) { - // COPY TO a file - auto &config = DBConfig::GetConfig(context); - if (!config.options.enable_external_access) { - throw PermissionException("COPY TO is disabled by configuration"); - } - // lookup the format in the catalog auto ©_function = Catalog::GetEntry(context, INVALID_CATALOG, DEFAULT_SCHEMA, stmt.info->format); @@ -128,7 +122,7 @@ BoundStatement Binder::BindCopyTo(CopyStatement &stmt, CopyToType copy_to_type) return_type = CopyFunctionReturnType::CHANGED_ROWS_AND_FILE_LIST; } } else if (loption == "write_partition_columns") { - write_partition_columns = true; + write_partition_columns = GetBooleanArg(context, option.second); } else { stmt.info->options[option.first] = option.second; } @@ -272,10 +266,6 @@ BoundStatement Binder::BindCopyTo(CopyStatement &stmt, CopyToType copy_to_type) } BoundStatement Binder::BindCopyFrom(CopyStatement &stmt) { - auto &config = DBConfig::GetConfig(context); - if (!config.options.enable_external_access) { - throw PermissionException("COPY FROM is disabled by configuration"); - } BoundStatement result; result.types = {LogicalType::BIGINT}; result.names = {"Count"}; @@ -284,7 +274,7 @@ BoundStatement Binder::BindCopyFrom(CopyStatement &stmt) { throw ParserException("COPY FROM requires a table name to be specified"); } // COPY FROM a file - // generate an insert statement for the the to-be-inserted table + // generate an insert statement for the to-be-inserted table InsertStatement insert; insert.table = stmt.info->table; insert.schema = stmt.info->schema; diff --git a/src/duckdb/src/planner/binder/statement/bind_create.cpp b/src/duckdb/src/planner/binder/statement/bind_create.cpp index f03f260c..9c494787 100644 --- a/src/duckdb/src/planner/binder/statement/bind_create.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_create.cpp @@ -1,48 +1,45 @@ #include "duckdb/catalog/catalog.hpp" -#include "duckdb/catalog/catalog_search_path.hpp" #include "duckdb/catalog/catalog_entry/duck_table_entry.hpp" #include "duckdb/catalog/catalog_entry/schema_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/type_catalog_entry.hpp" -#include "duckdb/main/secret/secret_manager.hpp" +#include "duckdb/catalog/catalog_search_path.hpp" +#include "duckdb/catalog/duck_catalog.hpp" +#include "duckdb/function/scalar_macro_function.hpp" +#include "duckdb/function/table/table_scan.hpp" +#include "duckdb/main/attached_database.hpp" #include "duckdb/main/client_context.hpp" +#include "duckdb/main/client_data.hpp" #include "duckdb/main/database.hpp" +#include "duckdb/main/database_manager.hpp" +#include "duckdb/main/secret/secret_manager.hpp" +#include "duckdb/parser/constraints/foreign_key_constraint.hpp" +#include "duckdb/parser/constraints/list.hpp" +#include "duckdb/parser/constraints/unique_constraint.hpp" #include "duckdb/parser/expression/constant_expression.hpp" #include "duckdb/parser/expression/function_expression.hpp" #include "duckdb/parser/expression/subquery_expression.hpp" -#include "duckdb/planner/expression/bound_cast_expression.hpp" -#include "duckdb/planner/expression/bound_columnref_expression.hpp" #include "duckdb/parser/parsed_data/create_index_info.hpp" #include "duckdb/parser/parsed_data/create_macro_info.hpp" -#include "duckdb/parser/parsed_data/create_view_info.hpp" -#include "duckdb/parser/tableref/table_function_ref.hpp" #include "duckdb/parser/parsed_data/create_secret_info.hpp" +#include "duckdb/parser/parsed_data/create_view_info.hpp" #include "duckdb/parser/parsed_expression_iterator.hpp" #include "duckdb/parser/statement/create_statement.hpp" +#include "duckdb/parser/tableref/basetableref.hpp" +#include "duckdb/parser/tableref/table_function_ref.hpp" #include "duckdb/planner/binder.hpp" #include "duckdb/planner/bound_query_node.hpp" +#include "duckdb/planner/expression/bound_cast_expression.hpp" +#include "duckdb/planner/expression/bound_columnref_expression.hpp" #include "duckdb/planner/expression_binder/index_binder.hpp" #include "duckdb/planner/expression_binder/select_binder.hpp" #include "duckdb/planner/operator/logical_create.hpp" -#include "duckdb/planner/operator/logical_create_index.hpp" #include "duckdb/planner/operator/logical_create_table.hpp" #include "duckdb/planner/operator/logical_get.hpp" #include "duckdb/planner/operator/logical_projection.hpp" #include "duckdb/planner/parsed_data/bound_create_table_info.hpp" #include "duckdb/planner/query_node/bound_select_node.hpp" #include "duckdb/planner/tableref/bound_basetableref.hpp" -#include "duckdb/parser/constraints/foreign_key_constraint.hpp" -#include "duckdb/function/scalar_macro_function.hpp" -#include "duckdb/storage/data_table.hpp" #include "duckdb/storage/storage_extension.hpp" -#include "duckdb/main/client_data.hpp" -#include "duckdb/parser/constraints/unique_constraint.hpp" -#include "duckdb/parser/constraints/list.hpp" -#include "duckdb/main/database_manager.hpp" -#include "duckdb/main/attached_database.hpp" -#include "duckdb/catalog/duck_catalog.hpp" -#include "duckdb/function/table/table_scan.hpp" -#include "duckdb/parser/tableref/basetableref.hpp" -#include "duckdb/planner/expression_binder/select_bind_state.hpp" namespace duckdb { @@ -147,8 +144,7 @@ void Binder::BindCreateViewInfo(CreateViewInfo &base) { auto &catalog = Catalog::GetCatalog(context, base.catalog); auto &db_config = DBConfig::GetConfig(context); - auto should_create_dependencies = db_config.options.enable_view_dependencies; - + bool should_create_dependencies = db_config.GetSetting(context); if (should_create_dependencies) { view_binder->SetCatalogLookupCallback([&dependencies, &catalog](CatalogEntry &entry) { if (&catalog != &entry.ParentCatalog()) { @@ -219,7 +215,7 @@ SchemaCatalogEntry &Binder::BindCreateFunctionInfo(CreateInfo &info) { BoundSelectNode sel_node; BoundGroupInformation group_info; SelectBinder binder(*this, context, sel_node, group_info); - auto should_create_dependencies = db_config.options.enable_macro_dependencies; + bool should_create_dependencies = db_config.GetSetting(context); if (should_create_dependencies) { binder.SetCatalogLookupCallback([&dependencies, &catalog](CatalogEntry &entry) { @@ -249,6 +245,13 @@ SchemaCatalogEntry &Binder::BindCreateFunctionInfo(CreateInfo &info) { return BindCreateSchema(info); } +static bool IsValidUserType(optional_ptr entry) { + if (!entry) { + return false; + } + return entry->Cast().user_type.id() != LogicalTypeId::INVALID; +} + void Binder::BindLogicalType(LogicalType &type, optional_ptr catalog, const string &schema) { if (type.id() == LogicalTypeId::LIST || type.id() == LogicalTypeId::MAP) { auto child_type = ListType::GetChildType(type); @@ -297,24 +300,34 @@ void Binder::BindLogicalType(LogicalType &type, optional_ptr catalog, c type.SetModifiers(modifiers); } else if (type.id() == LogicalTypeId::USER) { auto user_type_name = UserType::GetTypeName(type); + auto user_type_schema = UserType::GetSchema(type); auto user_type_mods = UserType::GetTypeModifiers(type); bind_type_modifiers_function_t user_bind_modifiers_func = nullptr; if (catalog) { // The search order is: - // 1) In the same schema as the table - // 2) In the same catalog - // 3) System catalog - auto entry = entry_retriever.GetEntry(CatalogType::TYPE_ENTRY, *catalog, schema, user_type_name, - OnEntryNotFound::RETURN_NULL); - if (!entry || entry->Cast().user_type.id() == LogicalTypeId::INVALID) { + // 1) In the explicitly set schema (my_schema.my_type) + // 2) In the same schema as the table + // 3) In the same catalog + // 4) System catalog + + optional_ptr entry = nullptr; + if (!user_type_schema.empty()) { + entry = entry_retriever.GetEntry(CatalogType::TYPE_ENTRY, *catalog, user_type_schema, user_type_name, + OnEntryNotFound::RETURN_NULL); + } + if (!IsValidUserType(entry)) { + entry = entry_retriever.GetEntry(CatalogType::TYPE_ENTRY, *catalog, schema, user_type_name, + OnEntryNotFound::RETURN_NULL); + } + if (!IsValidUserType(entry)) { entry = entry_retriever.GetEntry(CatalogType::TYPE_ENTRY, *catalog, INVALID_SCHEMA, user_type_name, OnEntryNotFound::RETURN_NULL); - if (!entry || entry->Cast().user_type.id() == LogicalTypeId::INVALID) { - entry = entry_retriever.GetEntry(CatalogType::TYPE_ENTRY, INVALID_CATALOG, INVALID_SCHEMA, - user_type_name, OnEntryNotFound::THROW_EXCEPTION); - } + } + if (!IsValidUserType(entry)) { + entry = entry_retriever.GetEntry(CatalogType::TYPE_ENTRY, INVALID_CATALOG, INVALID_SCHEMA, + user_type_name, OnEntryNotFound::THROW_EXCEPTION); } auto &type_entry = entry->Cast(); type = type_entry.user_type; @@ -557,46 +570,9 @@ static bool AnyConstraintReferencesGeneratedColumn(CreateTableInfo &table_info) unique_ptr DuckCatalog::BindCreateIndex(Binder &binder, CreateStatement &stmt, TableCatalogEntry &table, unique_ptr plan) { D_ASSERT(plan->type == LogicalOperatorType::LOGICAL_GET); - auto &base = stmt.info->Cast(); - - auto &get = plan->Cast(); - // bind the index expressions - IndexBinder index_binder(binder, binder.context); - auto &dependencies = base.dependencies; - auto &catalog = Catalog::GetCatalog(binder.context, base.catalog); - index_binder.SetCatalogLookupCallback([&dependencies, &catalog](CatalogEntry &entry) { - if (&catalog != &entry.ParentCatalog()) { - // Don't register any cross-catalog dependencies - return; - } - dependencies.AddDependency(entry); - }); - vector> expressions; - expressions.reserve(base.expressions.size()); - for (auto &expr : base.expressions) { - expressions.push_back(index_binder.Bind(expr)); - } - auto create_index_info = unique_ptr_cast(std::move(stmt.info)); - auto &column_ids = get.GetColumnIds(); - for (auto &column_id : column_ids) { - if (column_id == COLUMN_IDENTIFIER_ROW_ID) { - throw BinderException("Cannot create an index on the rowid!"); - } - create_index_info->scan_types.push_back(get.returned_types[column_id]); - } - create_index_info->scan_types.emplace_back(LogicalType::ROW_TYPE); - create_index_info->names = get.names; - create_index_info->column_ids = column_ids; - create_index_info->schema = table.schema.name; - auto &bind_data = get.bind_data->Cast(); - bind_data.is_create_index = true; - get.AddColumnId(COLUMN_IDENTIFIER_ROW_ID); - - // the logical CREATE INDEX also needs all fields to scan the referenced table - auto result = make_uniq(std::move(create_index_info), std::move(expressions), table); - result->children.push_back(std::move(plan)); - return std::move(result); + IndexBinder index_binder(binder, binder.context); + return index_binder.BindCreateIndex(binder.context, std::move(create_index_info), table, std::move(plan), nullptr); } BoundStatement Binder::Bind(CreateStatement &stmt) { @@ -642,18 +618,17 @@ BoundStatement Binder::Bind(CreateStatement &stmt) { break; } case CatalogType::INDEX_ENTRY: { - auto &base = stmt.info->Cast(); - - // visit the table reference - auto table_ref = make_uniq(); - table_ref->catalog_name = base.catalog; - table_ref->schema_name = base.schema; - table_ref->table_name = base.table; + auto &create_index_info = stmt.info->Cast(); + // Plan the table scan. + TableDescription table_description(create_index_info.catalog, create_index_info.schema, + create_index_info.table); + auto table_ref = make_uniq(table_description); auto bound_table = Bind(*table_ref); if (bound_table->type != TableReferenceType::BASE_TABLE) { - throw BinderException("Can only create an index over a base table!"); + throw BinderException("can only create an index on a base table"); } + auto &table_binding = bound_table->Cast(); auto &table = table_binding.table; if (table.temporary) { @@ -666,6 +641,7 @@ BoundStatement Binder::Bind(CreateStatement &stmt) { if (plan->type != LogicalOperatorType::LOGICAL_GET) { throw BinderException("Cannot create index on a view!"); } + result.plan = table.catalog.BindCreateIndex(*this, stmt, table, std::move(plan)); break; } @@ -685,30 +661,37 @@ BoundStatement Binder::Bind(CreateStatement &stmt) { D_ASSERT(fk.info.pk_keys.empty()); D_ASSERT(fk.info.fk_keys.empty()); FindForeignKeyIndexes(create_info.columns, fk.fk_columns, fk.info.fk_keys); + + // Resolve the self-reference. if (StringUtil::CIEquals(create_info.table, fk.info.table)) { - // self-referential foreign key constraint fk.info.type = ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE; FindMatchingPrimaryKeyColumns(create_info.columns, create_info.constraints, fk); FindForeignKeyIndexes(create_info.columns, fk.pk_columns, fk.info.pk_keys); CheckForeignKeyTypes(create_info.columns, create_info.columns, fk); - } else { - // have to resolve referenced table - auto table_entry = - entry_retriever.GetEntry(CatalogType::TABLE_ENTRY, INVALID_CATALOG, fk.info.schema, fk.info.table); - auto &pk_table_entry_ptr = table_entry->Cast(); - fk_schemas.insert(pk_table_entry_ptr.schema); - FindMatchingPrimaryKeyColumns(pk_table_entry_ptr.GetColumns(), pk_table_entry_ptr.GetConstraints(), fk); - FindForeignKeyIndexes(pk_table_entry_ptr.GetColumns(), fk.pk_columns, fk.info.pk_keys); - CheckForeignKeyTypes(pk_table_entry_ptr.GetColumns(), create_info.columns, fk); - auto &storage = pk_table_entry_ptr.GetStorage(); - - if (!storage.HasForeignKeyIndex(fk.info.pk_keys, ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE)) { - auto fk_column_names = StringUtil::Join(fk.pk_columns, ","); - throw BinderException("Failed to create foreign key on %s(%s): no UNIQUE or PRIMARY KEY constraint " - "present on these columns", - pk_table_entry_ptr.name, fk_column_names); - } + continue; + } + + // Resolve the table reference. + auto table_entry = + entry_retriever.GetEntry(CatalogType::TABLE_ENTRY, INVALID_CATALOG, fk.info.schema, fk.info.table); + if (table_entry->type == CatalogType::VIEW_ENTRY) { + throw BinderException("cannot reference a VIEW with a FOREIGN KEY"); } + + auto &pk_table_entry_ptr = table_entry->Cast(); + fk_schemas.insert(pk_table_entry_ptr.schema); + FindMatchingPrimaryKeyColumns(pk_table_entry_ptr.GetColumns(), pk_table_entry_ptr.GetConstraints(), fk); + FindForeignKeyIndexes(pk_table_entry_ptr.GetColumns(), fk.pk_columns, fk.info.pk_keys); + CheckForeignKeyTypes(pk_table_entry_ptr.GetColumns(), create_info.columns, fk); + auto &storage = pk_table_entry_ptr.GetStorage(); + + if (!storage.HasForeignKeyIndex(fk.info.pk_keys, ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE)) { + auto fk_column_names = StringUtil::Join(fk.pk_columns, ","); + throw BinderException("Failed to create foreign key on %s(%s): no UNIQUE or PRIMARY KEY constraint " + "present on these columns", + pk_table_entry_ptr.name, fk_column_names); + } + D_ASSERT(fk.info.pk_keys.size() == fk.info.fk_keys.size()); D_ASSERT(fk.info.pk_keys.size() == fk.pk_columns.size()); D_ASSERT(fk.info.fk_keys.size() == fk.fk_columns.size()); diff --git a/src/duckdb/src/planner/binder/statement/bind_create_table.cpp b/src/duckdb/src/planner/binder/statement/bind_create_table.cpp index 01881508..6a6bd564 100644 --- a/src/duckdb/src/planner/binder/statement/bind_create_table.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_create_table.cpp @@ -11,7 +11,6 @@ #include "duckdb/catalog/dependency_manager.hpp" #include "duckdb/function/table/table_scan.hpp" #include "duckdb/planner/operator/logical_get.hpp" -#include "duckdb/parser/parsed_expression_iterator.hpp" #include "duckdb/common/string.hpp" #include "duckdb/common/queue.hpp" #include "duckdb/parser/expression/list.hpp" @@ -21,8 +20,6 @@ #include "duckdb/parser/parsed_data/create_index_info.hpp" #include "duckdb/catalog/catalog_entry/schema_catalog_entry.hpp" -#include - namespace duckdb { static void CreateColumnDependencyManager(BoundCreateTableInfo &info) { @@ -35,19 +32,6 @@ static void CreateColumnDependencyManager(BoundCreateTableInfo &info) { } } -static unique_ptr BindCheckConstraint(Binder &binder, const string &table_name, - const ColumnList &columns, const unique_ptr &cond) { - auto bound_constraint = make_uniq(); - // check constraint: bind the expression - CheckBinder check_binder(binder, binder.context, table_name, columns, bound_constraint->bound_columns); - auto &check = cond->Cast(); - // create a copy of the unbound expression because the binding destroys the constraint - auto unbound_expression = check.expression->Copy(); - // now bind the constraint and create a new BoundCheckConstraint - bound_constraint->expression = check_binder.Bind(unbound_expression); - return std::move(bound_constraint); -} - vector> Binder::BindConstraints(ClientContext &context, const vector> &constraints, const string &table_name, const ColumnList &columns) { @@ -62,76 +46,8 @@ vector> Binder::BindConstraints(const TableCatalogEn vector> Binder::BindConstraints(const vector> &constraints, const string &table_name, const ColumnList &columns) { vector> bound_constraints; - for (auto &constr : constraints) { - switch (constr->type) { - case ConstraintType::CHECK: { - bound_constraints.push_back(BindCheckConstraint(*this, table_name, columns, constr)); - break; - } - case ConstraintType::NOT_NULL: { - auto ¬_null = constr->Cast(); - auto &col = columns.GetColumn(LogicalIndex(not_null.index)); - bound_constraints.push_back(make_uniq(PhysicalIndex(col.StorageOid()))); - break; - } - case ConstraintType::UNIQUE: { - auto &unique = constr->Cast(); - // have to resolve columns of the unique constraint - vector keys; - logical_index_set_t key_set; - if (unique.HasIndex()) { - D_ASSERT(unique.GetIndex().index < columns.LogicalColumnCount()); - // unique constraint is given by single index - unique.SetColumnName(columns.GetColumn(unique.GetIndex()).Name()); - keys.push_back(unique.GetIndex()); - key_set.insert(unique.GetIndex()); - } else { - // unique constraint is given by list of names - // have to resolve names - for (auto &keyname : unique.GetColumnNames()) { - if (!columns.ColumnExists(keyname)) { - throw ParserException("column \"%s\" named in key does not exist", keyname); - } - auto &column = columns.GetColumn(keyname); - auto column_index = column.Logical(); - if (key_set.find(column_index) != key_set.end()) { - throw ParserException("column \"%s\" appears twice in " - "primary key constraint", - keyname); - } - keys.push_back(column_index); - key_set.insert(column_index); - } - } - bound_constraints.push_back( - make_uniq(std::move(keys), std::move(key_set), unique.IsPrimaryKey())); - break; - } - case ConstraintType::FOREIGN_KEY: { - auto &fk = constr->Cast(); - D_ASSERT((fk.info.type == ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE && !fk.info.pk_keys.empty()) || - (fk.info.type == ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE && !fk.info.pk_keys.empty()) || - fk.info.type == ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE); - physical_index_set_t fk_key_set, pk_key_set; - for (auto &pk_key : fk.info.pk_keys) { - if (pk_key_set.find(pk_key) != pk_key_set.end()) { - throw BinderException("Duplicate primary key referenced in FOREIGN KEY constraint"); - } - pk_key_set.insert(pk_key); - } - for (auto &fk_key : fk.info.fk_keys) { - if (fk_key_set.find(fk_key) != fk_key_set.end()) { - throw BinderException("Duplicate key specified in FOREIGN KEY constraint"); - } - fk_key_set.insert(fk_key); - } - bound_constraints.push_back( - make_uniq(fk.info, std::move(pk_key_set), std::move(fk_key_set))); - break; - } - default: - throw NotImplementedException("unrecognized constraint type in bind"); - } + for (const auto &constr : constraints) { + bound_constraints.push_back(BindConstraint(*constr, table_name, columns)); } return bound_constraints; } @@ -140,30 +56,26 @@ vector> Binder::BindNewConstraints(vector primary_keys; - for (idx_t c = 0; c < constraints.size(); c++) { - auto &constr = constraints[c]; - switch (constr->type) { + physical_index_set_t not_null_columns; + vector primary_keys; + + for (const auto &bound_constr : bound_constraints) { + switch (bound_constr->type) { case ConstraintType::NOT_NULL: { - auto ¬_null = constr->Cast(); - auto &col = columns.GetColumn(LogicalIndex(not_null.index)); - bound_constraints.push_back(make_uniq(PhysicalIndex(col.StorageOid()))); + auto ¬_null = bound_constr->Cast(); not_null_columns.insert(not_null.index); break; } case ConstraintType::UNIQUE: { - auto &unique = constr->Cast(); - auto &bound_unique = bound_constraints[c]->Cast(); - if (unique.IsPrimaryKey()) { - // we can only have one primary key per table + const auto &unique = bound_constr->Cast(); + if (unique.is_primary_key) { if (has_primary_key) { throw ParserException("table \"%s\" has more than one primary key", table_name); } has_primary_key = true; - primary_keys = bound_unique.keys; + primary_keys = unique.keys; } break; } @@ -171,21 +83,127 @@ vector> Binder::BindNewConstraints(vector(column_index)); - bound_constraints.push_back(make_uniq(physical_index)); + + auto logical_index = columns.PhysicalToLogical(column_index); + constraints.push_back(make_uniq(logical_index)); + bound_constraints.push_back(make_uniq(column_index)); } } + return bound_constraints; } +unique_ptr BindCheckConstraint(Binder &binder, Constraint &constraint, const string &table, + const ColumnList &columns) { + auto bound_constraint = make_uniq(); + auto &bound_check = bound_constraint->Cast(); + + // Bind the CHECK expression. + CheckBinder check_binder(binder, binder.context, table, columns, bound_check.bound_columns); + auto &check = constraint.Cast(); + + // Create a copy of the unbound expression because binding can invalidate it. + auto unbound_expression = check.expression->Copy(); + + // Bind the constraint and reset the original expression. + bound_check.expression = check_binder.Bind(check.expression); + check.expression = std::move(unbound_expression); + return std::move(bound_constraint); +} + +unique_ptr Binder::BindUniqueConstraint(Constraint &constraint, const string &table, + const ColumnList &columns) { + auto &unique = constraint.Cast(); + + // Resolve the columns. + vector indexes; + physical_index_set_t index_set; + + // HasIndex refers to a column index, not an index(-structure). + // If set, then the UNIQUE constraint is defined on a single column. + if (unique.HasIndex()) { + auto &col = columns.GetColumn(unique.GetIndex()); + unique.SetColumnName(col.Name()); + indexes.push_back(col.Physical()); + index_set.insert(col.Physical()); + return make_uniq(std::move(indexes), std::move(index_set), unique.IsPrimaryKey()); + } + + // The UNIQUE constraint is defined on a list of columns. + for (auto &col_name : unique.GetColumnNames()) { + if (!columns.ColumnExists(col_name)) { + throw CatalogException("table \"%s\" does not have a column named \"%s\"", table, col_name); + } + auto &col = columns.GetColumn(col_name); + if (col.Generated()) { + throw BinderException("cannot create a PRIMARY KEY on a generated column: %s", col.GetName()); + } + + auto physical_index = col.Physical(); + if (index_set.find(physical_index) != index_set.end()) { + throw ParserException("column \"%s\" appears twice in primary key constraint", col_name); + } + indexes.push_back(physical_index); + index_set.insert(physical_index); + } + + return make_uniq(std::move(indexes), std::move(index_set), unique.IsPrimaryKey()); +} + +unique_ptr BindForeignKey(Constraint &constraint) { + auto &fk = constraint.Cast(); + D_ASSERT((fk.info.type == ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE && !fk.info.pk_keys.empty()) || + (fk.info.type == ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE && !fk.info.pk_keys.empty()) || + fk.info.type == ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE); + + physical_index_set_t pk_key_set; + for (auto &pk_key : fk.info.pk_keys) { + if (pk_key_set.find(pk_key) != pk_key_set.end()) { + throw ParserException("duplicate primary key referenced in FOREIGN KEY constraint"); + } + pk_key_set.insert(pk_key); + } + + physical_index_set_t fk_key_set; + for (auto &fk_key : fk.info.fk_keys) { + if (fk_key_set.find(fk_key) != fk_key_set.end()) { + throw ParserException("duplicate key specified in FOREIGN KEY constraint"); + } + fk_key_set.insert(fk_key); + } + + return make_uniq(fk.info, std::move(pk_key_set), std::move(fk_key_set)); +} + +unique_ptr Binder::BindConstraint(Constraint &constraint, const string &table, + const ColumnList &columns) { + switch (constraint.type) { + case ConstraintType::CHECK: { + return BindCheckConstraint(*this, constraint, table, columns); + } + case ConstraintType::NOT_NULL: { + auto ¬_null = constraint.Cast(); + auto &col = columns.GetColumn(not_null.index); + return make_uniq(col.Physical()); + } + case ConstraintType::UNIQUE: { + return BindUniqueConstraint(constraint, table, columns); + } + case ConstraintType::FOREIGN_KEY: { + return BindForeignKey(constraint); + } + default: + throw NotImplementedException("unrecognized constraint type in bind"); + } +} + void Binder::BindGeneratedColumns(BoundCreateTableInfo &info) { auto &base = info.base->Cast(); @@ -228,7 +246,10 @@ void Binder::BindGeneratedColumns(BoundCreateTableInfo &info) { auto bound_expression = expr_binder.Bind(expression); D_ASSERT(bound_expression); - D_ASSERT(!bound_expression->HasSubquery()); + if (bound_expression->HasSubquery()) { + throw BinderException("Failed to bind generated column '%s' because the expression contains a subquery", + col.Name()); + } if (col.Type().id() == LogicalTypeId::ANY) { // Do this before changing the type, so we know it's the first time the type is set col.ChangeGeneratedExpressionType(bound_expression->return_type); @@ -241,7 +262,21 @@ void Binder::BindGeneratedColumns(BoundCreateTableInfo &info) { } } -void Binder::BindDefaultValues(const ColumnList &columns, vector> &bound_defaults) { +void Binder::BindDefaultValues(const ColumnList &columns, vector> &bound_defaults, + const string &catalog_name, const string &schema_p) { + string schema_name = schema_p; + if (schema_p.empty()) { + schema_name = DEFAULT_SCHEMA; + } + + // FIXME: We might want to save the existing search path of the binder + vector defaults_search_path; + defaults_search_path.emplace_back(catalog_name, schema_name); + if (schema_name != DEFAULT_SCHEMA) { + defaults_search_path.emplace_back(catalog_name, DEFAULT_SCHEMA); + } + entry_retriever.SetSearchPath(std::move(defaults_search_path)); + for (auto &column : columns.Physical()) { unique_ptr bound_default; if (column.HasDefaultValue()) { @@ -262,32 +297,6 @@ void Binder::BindDefaultValues(const ColumnList &columns, vector(); - if (function.function.dependency) { - function.function.dependency(function, dependencies); - } - } - ExpressionIterator::EnumerateChildren( - expr, [&](Expression &child) { ExtractExpressionDependencies(child, dependencies); }); -} - -static void ExtractDependencies(BoundCreateTableInfo &info, vector> &defaults, - vector> &constraints) { - for (auto &default_value : defaults) { - if (default_value) { - ExtractExpressionDependencies(*default_value, info.dependencies); - } - } - for (auto &constraint : constraints) { - if (constraint->type == ConstraintType::CHECK) { - auto &bound_check = constraint->Cast(); - ExtractExpressionDependencies(*bound_check.expression, info.dependencies); - } - } -} - unique_ptr Binder::BindCreateTableInfo(unique_ptr info, SchemaCatalogEntry &schema) { vector> bound_defaults; return BindCreateTableInfo(std::move(info), schema, bound_defaults); @@ -316,10 +325,30 @@ unique_ptr Binder::BindCreateTableInfo(unique_ptr sql_types.size()) { + throw BinderException("Target table has more colum names than query result."); + } else if (target_col_names.size() < sql_types.size()) { + // filled the target_col_names with the name of query names + for (idx_t i = target_col_names.size(); i < sql_types.size(); i++) { + target_col_names.push_back(names[i]); + } + } + ColumnList new_colums; + for (idx_t i = 0; i < target_col_names.size(); i++) { + new_colums.AddColumn(ColumnDefinition(target_col_names[i], sql_types[i])); + } + base.columns = std::move(new_colums); + } else { + for (idx_t i = 0; i < names.size(); i++) { + base.columns.AddColumn(ColumnDefinition(names[i], sql_types[i])); + } } } else { SetCatalogLookupCallback([&dependencies, &schema](CatalogEntry &entry) { @@ -335,10 +364,10 @@ unique_ptr Binder::BindCreateTableInfo(unique_ptrcatalog, stmt.info->schema); + auto catalog = Catalog::GetCatalogEntry(context, stmt.info->catalog); + if (catalog) { + // mark catalog as accessed + properties.RegisterDBRead(*catalog, context); + } auto entry = Catalog::GetEntry(context, stmt.info->type, stmt.info->catalog, stmt.info->schema, stmt.info->name, stmt.info->if_not_found); if (!entry) { diff --git a/src/duckdb/src/planner/binder/statement/bind_export.cpp b/src/duckdb/src/planner/binder/statement/bind_export.cpp index a183738a..68b5b80d 100644 --- a/src/duckdb/src/planner/binder/statement/bind_export.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_export.cpp @@ -159,10 +159,6 @@ unique_ptr Binder::UnionOperators(vector(); unordered_set table_name_index; vector> export_nodes; @@ -245,7 +241,7 @@ BoundStatement Binder::Bind(ExportStatement &stmt) { exported_data.file_path = info->file_path; ExportedTableInfo table_info(table, std::move(exported_data), not_null_columns); - exported_tables.data.push_back(table_info); + exported_tables->data.push_back(table_info); id++; // generate the copy statement and bind it @@ -270,7 +266,8 @@ BoundStatement Binder::Bind(ExportStatement &stmt) { stmt.info->catalog = catalog; // create the export node - auto export_node = make_uniq(copy_function.function, std::move(stmt.info), exported_tables); + auto export_node = + make_uniq(copy_function.function, std::move(stmt.info), std::move(exported_tables)); if (child_operator) { export_node->children.push_back(std::move(child_operator)); diff --git a/src/duckdb/src/planner/binder/statement/bind_insert.cpp b/src/duckdb/src/planner/binder/statement/bind_insert.cpp index f02be800..5e390304 100644 --- a/src/duckdb/src/planner/binder/statement/bind_insert.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_insert.cpp @@ -148,7 +148,6 @@ void ReplaceColumnBindings(Expression &expr, idx_t source, idx_t dest) { void Binder::BindDoUpdateSetExpressions(const string &table_alias, LogicalInsert &insert, UpdateSetInfo &set_info, TableCatalogEntry &table, TableStorageInfo &storage_info) { D_ASSERT(insert.children.size() == 1); - D_ASSERT(insert.children[0]->type == LogicalOperatorType::LOGICAL_PROJECTION); vector logical_column_ids; vector column_names; @@ -251,6 +250,15 @@ unique_ptr CreateSetInfoForReplace(TableCatalogEntry &table, Inse return set_info; } +vector GetColumnsToFetch(const TableBinding &binding) { + auto &bound_columns = binding.GetBoundColumnIds(); + vector result; + for (auto &col : bound_columns) { + result.push_back(col.GetPrimaryIndex()); + } + return result; +} + void Binder::BindOnConflictClause(LogicalInsert &insert, TableCatalogEntry &table, InsertStatement &stmt) { if (!stmt.on_conflict_info) { insert.action_type = OnConflictAction::THROW; @@ -422,7 +430,7 @@ void Binder::BindOnConflictClause(LogicalInsert &insert, TableCatalogEntry &tabl // of the original table, to execute the expressions D_ASSERT(original_binding->binding_type == BindingType::TABLE); auto &table_binding = original_binding->Cast(); - insert.columns_to_fetch = table_binding.GetBoundColumnIds(); + insert.columns_to_fetch = GetColumnsToFetch(table_binding); return; } @@ -448,7 +456,7 @@ void Binder::BindOnConflictClause(LogicalInsert &insert, TableCatalogEntry &tabl // of the original table, to execute the expressions D_ASSERT(original_binding->binding_type == BindingType::TABLE); auto &table_binding = original_binding->Cast(); - insert.columns_to_fetch = table_binding.GetBoundColumnIds(); + insert.columns_to_fetch = GetColumnsToFetch(table_binding); // Replace the column bindings to refer to the child operator for (auto &expr : insert.expressions) { @@ -486,6 +494,9 @@ BoundStatement Binder::Bind(InsertStatement &stmt) { if (values_list) { throw BinderException("INSERT BY NAME can only be used when inserting from a SELECT statement"); } + if (stmt.default_values) { + throw BinderException("INSERT BY NAME cannot be combined with with DEFAULT VALUES"); + } if (!stmt.columns.empty()) { throw BinderException("INSERT BY NAME cannot be combined with an explicit column list"); } @@ -540,7 +551,9 @@ BoundStatement Binder::Bind(InsertStatement &stmt) { } // bind the default values - BindDefaultValues(table.GetColumns(), insert->bound_defaults); + auto &catalog_name = table.ParentCatalog().GetName(); + auto &schema_name = table.ParentSchema().name; + BindDefaultValues(table.GetColumns(), insert->bound_defaults, catalog_name, schema_name); insert->bound_constraints = BindConstraints(table); if (!stmt.select_statement && !stmt.default_values) { result.plan = std::move(insert); diff --git a/src/duckdb/src/planner/binder/statement/bind_pragma.cpp b/src/duckdb/src/planner/binder/statement/bind_pragma.cpp index 8f89dec5..3955cf89 100644 --- a/src/duckdb/src/planner/binder/statement/bind_pragma.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_pragma.cpp @@ -29,7 +29,7 @@ unique_ptr Binder::BindPragma(PragmaInfo &info, QueryErrorConte // bind the pragma function auto &entry = Catalog::GetEntry(context, INVALID_CATALOG, DEFAULT_SCHEMA, info.name); - FunctionBinder function_binder(context); + FunctionBinder function_binder(*this); ErrorData error; auto bound_idx = function_binder.BindFunction(entry.name, entry.functions, params, error); if (!bound_idx.IsValid()) { diff --git a/src/duckdb/src/planner/binder/statement/bind_simple.cpp b/src/duckdb/src/planner/binder/statement/bind_simple.cpp index 70e11af3..1dc795c8 100644 --- a/src/duckdb/src/planner/binder/statement/bind_simple.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_simple.cpp @@ -1,58 +1,117 @@ -#include "duckdb/parser/statement/alter_statement.hpp" -#include "duckdb/parser/statement/transaction_statement.hpp" -#include "duckdb/planner/operator/logical_simple.hpp" #include "duckdb/catalog/catalog.hpp" -#include "duckdb/catalog/catalog_entry/schema_catalog_entry.hpp" -#include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp" +#include "duckdb/catalog/catalog_entry/duck_table_entry.hpp" #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp" +#include "duckdb/execution/index/art/art.hpp" +#include "duckdb/function/table/table_scan.hpp" +#include "duckdb/parser/constraints/unique_constraint.hpp" #include "duckdb/parser/parsed_data/comment_on_column_info.hpp" +#include "duckdb/parser/statement/alter_statement.hpp" +#include "duckdb/parser/statement/transaction_statement.hpp" +#include "duckdb/parser/tableref/basetableref.hpp" #include "duckdb/planner/binder.hpp" - -//! This file contains the binder definitions for statements that do not need to be bound at all and only require a -//! straightforward conversion +#include "duckdb/planner/constraints/bound_unique_constraint.hpp" +#include "duckdb/planner/expression_binder/index_binder.hpp" +#include "duckdb/planner/operator/logical_create_index.hpp" +#include "duckdb/planner/operator/logical_get.hpp" +#include "duckdb/planner/operator/logical_simple.hpp" namespace duckdb { +BoundStatement Binder::BindAlterAddIndex(BoundStatement &result, CatalogEntry &entry, + unique_ptr alter_info) { + auto &table_info = alter_info->Cast(); + auto &constraint_info = table_info.Cast(); + auto &table = entry.Cast(); + auto &column_list = table.GetColumns(); + + auto bound_constraint = BindUniqueConstraint(*constraint_info.constraint, table_info.name, column_list); + auto &bound_unique = bound_constraint->Cast(); + + // Create the CreateIndexInfo. + auto create_index_info = make_uniq(); + create_index_info->table = table_info.name; + create_index_info->index_type = ART::TYPE_NAME; + create_index_info->constraint_type = IndexConstraintType::PRIMARY; + + for (const auto &physical_index : bound_unique.keys) { + auto &col = column_list.GetColumn(physical_index); + unique_ptr parsed = make_uniq(col.GetName(), table_info.name); + create_index_info->expressions.push_back(parsed->Copy()); + create_index_info->parsed_expressions.push_back(parsed->Copy()); + } + + auto unique_constraint = constraint_info.constraint->Cast(); + auto index_name = unique_constraint.GetName(table_info.name); + create_index_info->index_name = index_name; + D_ASSERT(!create_index_info->index_name.empty()); + + // Plan the table scan. + TableDescription table_description(table_info.catalog, table_info.schema, table_info.name); + auto table_ref = make_uniq(table_description); + auto bound_table = Bind(*table_ref); + if (bound_table->type != TableReferenceType::BASE_TABLE) { + throw BinderException("can only add an index to a base table"); + } + auto plan = CreatePlan(*bound_table); + auto &get = plan->Cast(); + get.names = column_list.GetColumnNames(); + + IndexBinder index_binder(*this, context); + auto op = index_binder.BindCreateIndex(context, std::move(create_index_info), table, std::move(plan), + unique_ptr_cast(std::move(alter_info))); + result.plan = std::move(op); + return std::move(result); +} + BoundStatement Binder::Bind(AlterStatement &stmt) { BoundStatement result; result.names = {"Success"}; result.types = {LogicalType::BOOLEAN}; - BindSchemaOrCatalog(stmt.info->catalog, stmt.info->schema); optional_ptr entry; if (stmt.info->type == AlterType::SET_COLUMN_COMMENT) { - // for column comments we need to an extra step: they can alter a table or a view, we resolve that here. + // Extra step for column comments: They can alter a table or a view, and we resolve that here. auto &info = stmt.info->Cast(); entry = info.TryResolveCatalogEntry(entry_retriever); + } else { - // All other AlterTypes + // For any other ALTER, we retrieve the catalog entry directly. entry = entry_retriever.GetEntry(stmt.info->GetCatalogType(), stmt.info->catalog, stmt.info->schema, stmt.info->name, stmt.info->if_not_found); } auto &properties = GetStatementProperties(); - if (entry) { - D_ASSERT(!entry->deleted); - auto &catalog = entry->ParentCatalog(); - if (catalog.IsSystemCatalog()) { - throw BinderException("Can not comment on System Catalog entries"); - } - if (!entry->temporary) { - // we can only alter temporary tables/views in read-only mode - properties.RegisterDBModify(catalog, context); - } - stmt.info->catalog = catalog.GetName(); - stmt.info->schema = entry->ParentSchema().name; - } - result.plan = make_uniq(LogicalOperatorType::LOGICAL_ALTER, std::move(stmt.info)); properties.return_type = StatementReturnType::NOTHING; - return result; + if (!entry) { + result.plan = make_uniq(LogicalOperatorType::LOGICAL_ALTER, std::move(stmt.info)); + return result; + } + + D_ASSERT(!entry->deleted); + auto &catalog = entry->ParentCatalog(); + if (catalog.IsSystemCatalog()) { + throw BinderException("Can not comment on System Catalog entries"); + } + if (!entry->temporary) { + // We can only alter temporary tables and views in read-only mode. + properties.RegisterDBModify(catalog, context); + } + stmt.info->catalog = catalog.GetName(); + stmt.info->schema = entry->ParentSchema().name; + + if (!stmt.info->IsAddPrimaryKey()) { + result.plan = make_uniq(LogicalOperatorType::LOGICAL_ALTER, std::move(stmt.info)); + return result; + } + + return BindAlterAddIndex(result, *entry, std::move(stmt.info)); } BoundStatement Binder::Bind(TransactionStatement &stmt) { auto &properties = GetStatementProperties(); - // transaction statements do not require a valid transaction + + // Transaction statements do not require a valid transaction. properties.requires_valid_transaction = stmt.info->type == TransactionType::BEGIN_TRANSACTION; BoundStatement result; diff --git a/src/duckdb/src/planner/binder/statement/bind_update.cpp b/src/duckdb/src/planner/binder/statement/bind_update.cpp index 4e27e161..83afa5a8 100644 --- a/src/duckdb/src/planner/binder/statement/bind_update.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_update.cpp @@ -106,7 +106,9 @@ BoundStatement Binder::Bind(UpdateStatement &stmt) { update->return_chunk = true; } // bind the default values - BindDefaultValues(table.GetColumns(), update->bound_defaults); + auto &catalog_name = table.ParentCatalog().GetName(); + auto &schema_name = table.ParentSchema().name; + BindDefaultValues(table.GetColumns(), update->bound_defaults, catalog_name, schema_name); update->bound_constraints = BindConstraints(table); // project any additional columns required for the condition/expressions diff --git a/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp b/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp index 6ef9446e..34b0ec56 100644 --- a/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp +++ b/src/duckdb/src/planner/binder/statement/bind_vacuum.cpp @@ -68,7 +68,7 @@ void Binder::BindVacuumTable(LogicalVacuum &vacuum, unique_ptr D_ASSERT(select_list.size() == column_ids.size()); D_ASSERT(info.columns.size() == column_ids.size()); for (idx_t i = 0; i < column_ids.size(); i++) { - vacuum.column_id_map[i] = table.GetColumns().LogicalToPhysical(LogicalIndex(column_ids[i])).index; + vacuum.column_id_map[i] = table.GetColumns().LogicalToPhysical(column_ids[i].ToLogical()).index; } auto projection = make_uniq(GenerateTableIndex(), std::move(select_list)); diff --git a/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp b/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp index 40f2662d..ba41b051 100644 --- a/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp +++ b/src/duckdb/src/planner/binder/tableref/bind_basetableref.cpp @@ -15,6 +15,7 @@ #include "duckdb/planner/tableref/bound_cteref.hpp" #include "duckdb/planner/tableref/bound_dummytableref.hpp" #include "duckdb/planner/tableref/bound_subqueryref.hpp" +#include "duckdb/catalog/catalog_search_path.hpp" namespace duckdb { @@ -202,6 +203,17 @@ unique_ptr Binder::Bind(BaseTableRef &ref) { return replacement_scan_bind_result; } } + auto &config = DBConfig::GetConfig(context); + if (context.config.use_replacement_scans && config.options.enable_external_access && + ExtensionHelper::IsFullPath(full_path)) { + auto &fs = FileSystem::GetFileSystem(context); + if (fs.FileExists(full_path)) { + throw BinderException( + "No extension found that is capable of reading the file \"%s\"\n* If this file is a supported file " + "format you can explicitly use the reader functions, such as read_csv, read_json or read_parquet", + full_path); + } + } // could not find an alternative: bind again to get the error (void)entry_retriever.GetEntry(CatalogType::TABLE_ENTRY, ref.catalog_name, ref.schema_name, ref.table_name, @@ -220,7 +232,6 @@ unique_ptr Binder::Bind(BaseTableRef &ref) { unique_ptr bind_data; auto scan_function = table.GetScanFunction(context, bind_data); - auto alias = ref.alias.empty() ? ref.table_name : ref.alias; // TODO: bundle the type and name vector in a struct (e.g PackedColumnMetadata) vector table_types; vector table_names; @@ -234,12 +245,17 @@ unique_ptr Binder::Bind(BaseTableRef &ref) { return_types.push_back(col.Type()); return_names.push_back(col.Name()); } - table_names = BindContext::AliasColumnNames(alias, table_names, ref.column_name_alias); + table_names = BindContext::AliasColumnNames(ref.table_name, table_names, ref.column_name_alias); auto logical_get = make_uniq(table_index, scan_function, std::move(bind_data), std::move(return_types), std::move(return_names)); - bind_context.AddBaseTable(table_index, alias, table_names, table_types, logical_get->GetMutableColumnIds(), - logical_get->GetTable().get()); + auto table_entry = logical_get->GetTable(); + auto &col_ids = logical_get->GetMutableColumnIds(); + if (!table_entry) { + bind_context.AddBaseTable(table_index, ref.alias, table_names, table_types, col_ids, ref.table_name); + } else { + bind_context.AddBaseTable(table_index, ref.alias, table_names, table_types, col_ids, *table_entry); + } return make_uniq_base(table, std::move(logical_get)); } case CatalogType::VIEW_ENTRY: { @@ -251,14 +267,24 @@ unique_ptr Binder::Bind(BaseTableRef &ref) { auto view_binder = Binder::CreateBinder(context, this, BinderType::VIEW_BINDER); view_binder->can_contain_nulls = true; SubqueryRef subquery(unique_ptr_cast(view_catalog_entry.query->Copy())); - subquery.alias = ref.alias.empty() ? ref.table_name : ref.alias; + subquery.alias = ref.alias; // construct view names by first (1) taking the view aliases, (2) adding the view names, then (3) applying // subquery aliases vector view_names = view_catalog_entry.aliases; for (idx_t n = view_names.size(); n < view_catalog_entry.names.size(); n++) { view_names.push_back(view_catalog_entry.names[n]); } - subquery.column_name_alias = BindContext::AliasColumnNames(subquery.alias, view_names, ref.column_name_alias); + subquery.column_name_alias = BindContext::AliasColumnNames(ref.table_name, view_names, ref.column_name_alias); + + // when binding a view, we always look into the catalog/schema where the view is stored first + vector view_search_path; + auto &catalog_name = view_catalog_entry.ParentCatalog().GetName(); + auto &schema_name = view_catalog_entry.ParentSchema().name; + view_search_path.emplace_back(catalog_name, schema_name); + if (schema_name != DEFAULT_SCHEMA) { + view_search_path.emplace_back(view_catalog_entry.ParentCatalog().GetName(), DEFAULT_SCHEMA); + } + view_binder->entry_retriever.SetSearchPath(std::move(view_search_path)); // bind the child subquery view_binder->AddBoundView(view_catalog_entry); auto bound_child = view_binder->Bind(subquery); @@ -287,7 +313,7 @@ unique_ptr Binder::Bind(BaseTableRef &ref) { } } bind_context.AddView(bound_subquery.subquery->GetRootIndex(), subquery.alias, subquery, - *bound_subquery.subquery, &view_catalog_entry); + *bound_subquery.subquery, view_catalog_entry); return bound_child; } default: diff --git a/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp b/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp index c07c6424..257e275b 100644 --- a/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp +++ b/src/duckdb/src/planner/binder/tableref/bind_joinref.cpp @@ -15,7 +15,7 @@ namespace duckdb { -static unique_ptr BindColumn(Binder &binder, ClientContext &context, const string &alias, +static unique_ptr BindColumn(Binder &binder, ClientContext &context, const BindingAlias &alias, const string &column_name) { auto expr = make_uniq_base(column_name, alias); ExpressionBinder expr_binder(binder, context); @@ -24,7 +24,7 @@ static unique_ptr BindColumn(Binder &binder, ClientContext &co } static unique_ptr AddCondition(ClientContext &context, Binder &left_binder, Binder &right_binder, - const string &left_alias, const string &right_alias, + const BindingAlias &left_alias, const BindingAlias &right_alias, const string &column_name, ExpressionType type) { ExpressionBinder expr_binder(left_binder, context); auto left = BindColumn(left_binder, context, left_alias, column_name); @@ -32,7 +32,7 @@ static unique_ptr AddCondition(ClientContext &context, Binder return make_uniq(type, std::move(left), std::move(right)); } -bool Binder::TryFindBinding(const string &using_column, const string &join_side, string &result) { +bool Binder::TryFindBinding(const string &using_column, const string &join_side, BindingAlias &result) { // for each using column, get the matching binding auto bindings = bind_context.GetMatchingBindings(using_column); if (bindings.empty()) { @@ -40,46 +40,48 @@ bool Binder::TryFindBinding(const string &using_column, const string &join_side, } // find the join binding for (auto &binding : bindings) { - if (!result.empty()) { + if (result.IsSet()) { string error = "Column name \""; error += using_column; error += "\" is ambiguous: it exists more than once on "; error += join_side; error += " side of join.\nCandidates:"; - for (auto &binding : bindings) { + for (auto &binding_ref : bindings) { + auto &other_binding = binding_ref.get(); error += "\n\t"; - error += binding; + error += other_binding.GetAlias(); error += "."; - error += bind_context.GetActualColumnName(binding, using_column); + error += bind_context.GetActualColumnName(other_binding, using_column); } throw BinderException(error); } else { - result = binding; + result = binding.get().alias; } } return true; } -string Binder::FindBinding(const string &using_column, const string &join_side) { - string result; +BindingAlias Binder::FindBinding(const string &using_column, const string &join_side) { + BindingAlias result; if (!TryFindBinding(using_column, join_side, result)) { throw BinderException("Column \"%s\" does not exist on %s side of join!", using_column, join_side); } return result; } -static void AddUsingBindings(UsingColumnSet &set, optional_ptr input_set, const string &input_binding) { +static void AddUsingBindings(UsingColumnSet &set, optional_ptr input_set, + const BindingAlias &input_binding) { if (input_set) { for (auto &entry : input_set->bindings) { - set.bindings.insert(entry); + set.bindings.push_back(entry); } } else { - set.bindings.insert(input_binding); + set.bindings.push_back(input_binding); } } -static void SetPrimaryBinding(UsingColumnSet &set, JoinType join_type, const string &left_binding, - const string &right_binding) { +static void SetPrimaryBinding(UsingColumnSet &set, JoinType join_type, const BindingAlias &left_binding, + const BindingAlias &right_binding) { switch (join_type) { case JoinType::LEFT: case JoinType::INNER: @@ -97,9 +99,9 @@ static void SetPrimaryBinding(UsingColumnSet &set, JoinType join_type, const str } } -string Binder::RetrieveUsingBinding(Binder ¤t_binder, optional_ptr current_set, - const string &using_column, const string &join_side) { - string binding; +BindingAlias Binder::RetrieveUsingBinding(Binder ¤t_binder, optional_ptr current_set, + const string &using_column, const string &join_side) { + BindingAlias binding; if (!current_set) { binding = current_binder.FindBinding(using_column, join_side); } else { @@ -186,7 +188,7 @@ unique_ptr Binder::Bind(JoinRef &ref) { case_insensitive_set_t lhs_columns; auto &lhs_binding_list = left_binder.bind_context.GetBindingsList(); for (auto &binding : lhs_binding_list) { - for (auto &column_name : binding.get().names) { + for (auto &column_name : binding->names) { lhs_columns.insert(column_name); } } @@ -194,7 +196,7 @@ unique_ptr Binder::Bind(JoinRef &ref) { for (auto &column_name : lhs_columns) { auto right_using_binding = right_binder.bind_context.GetUsingBinding(column_name); - string right_binding; + BindingAlias right_binding; // loop over the set of lhs columns, and figure out if there is a table in the rhs with the same name if (!right_using_binding) { if (!right_binder.TryFindBinding(column_name, "right", right_binding)) { @@ -212,21 +214,21 @@ unique_ptr Binder::Bind(JoinRef &ref) { string left_candidates, right_candidates; auto &rhs_binding_list = right_binder.bind_context.GetBindingsList(); for (auto &binding_ref : lhs_binding_list) { - auto &binding = binding_ref.get(); + auto &binding = *binding_ref; for (auto &column_name : binding.names) { if (!left_candidates.empty()) { left_candidates += ", "; } - left_candidates += binding.alias + "." + column_name; + left_candidates += binding.GetAlias() + "." + column_name; } } for (auto &binding_ref : rhs_binding_list) { - auto &binding = binding_ref.get(); + auto &binding = *binding_ref; for (auto &column_name : binding.names) { if (!right_candidates.empty()) { right_candidates += ", "; } - right_candidates += binding.alias + "." + column_name; + right_candidates += binding.GetAlias() + "." + column_name; } } error_msg += "\n Left candidates: " + left_candidates; @@ -273,8 +275,8 @@ unique_ptr Binder::Bind(JoinRef &ref) { for (idx_t i = 0; i < extra_using_columns.size(); i++) { auto &using_column = extra_using_columns[i]; - string left_binding; - string right_binding; + BindingAlias left_binding; + BindingAlias right_binding; auto set = make_uniq(); auto &left_using_binding = left_using_bindings[i]; @@ -293,16 +295,14 @@ unique_ptr Binder::Bind(JoinRef &ref) { AddUsingBindings(*set, left_using_binding, left_binding); AddUsingBindings(*set, right_using_binding, right_binding); SetPrimaryBinding(*set, ref.type, left_binding, right_binding); - bind_context.TransferUsingBinding(left_binder.bind_context, left_using_binding, *set, left_binding, - using_column); - bind_context.TransferUsingBinding(right_binder.bind_context, right_using_binding, *set, right_binding, - using_column); + bind_context.TransferUsingBinding(left_binder.bind_context, left_using_binding, *set, using_column); + bind_context.TransferUsingBinding(right_binder.bind_context, right_using_binding, *set, using_column); AddUsingBindingSet(std::move(set)); } } - auto right_bindings_list_copy = right_binder.bind_context.GetBindingsList(); - auto left_bindings_list_copy = left_binder.bind_context.GetBindingsList(); + auto right_bindings = right_binder.bind_context.GetBindingAliases(); + auto left_bindings = left_binder.bind_context.GetBindingAliases(); bind_context.AddContext(std::move(left_binder.bind_context)); bind_context.AddContext(std::move(right_binder.bind_context)); @@ -338,7 +338,7 @@ unique_ptr Binder::Bind(JoinRef &ref) { } if (result->type == JoinType::SEMI || result->type == JoinType::ANTI || result->type == JoinType::MARK) { - bind_context.RemoveContext(right_bindings_list_copy); + bind_context.RemoveContext(right_bindings); if (result->type == JoinType::MARK) { auto mark_join_idx = GenerateTableIndex(); string mark_join_alias = "__internal_mark_join_ref" + to_string(mark_join_idx); @@ -348,7 +348,7 @@ unique_ptr Binder::Bind(JoinRef &ref) { } } if (result->type == JoinType::RIGHT_SEMI || result->type == JoinType::RIGHT_ANTI) { - bind_context.RemoveContext(left_bindings_list_copy); + bind_context.RemoveContext(left_bindings); } return std::move(result); diff --git a/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp b/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp index 17469855..a1b9789a 100644 --- a/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp +++ b/src/duckdb/src/planner/binder/tableref/bind_pivot.cpp @@ -69,6 +69,27 @@ static void ExtractPivotExpressions(ParsedExpression &expr, case_insensitive_set expr, [&](ParsedExpression &child) { ExtractPivotExpressions(child, handled_columns); }); } +void ExtractPivotAggregateExpression(ClientContext &context, ParsedExpression &expr, + vector> &aggregates) { + if (expr.type == ExpressionType::FUNCTION) { + auto &aggr_function = expr.Cast(); + + // check if this is an aggregate to ensure it is an aggregate and not a scalar function + auto &entry = Catalog::GetEntry(context, CatalogType::SCALAR_FUNCTION_ENTRY, aggr_function.catalog, + aggr_function.schema, aggr_function.function_name); + if (entry.type == CatalogType::AGGREGATE_FUNCTION_ENTRY) { + // aggregate + aggregates.push_back(aggr_function); + return; + } + } + if (expr.type == ExpressionType::COLUMN_REF) { + throw BinderException(expr, "Columns can only be referenced within the aggregate of a PIVOT expression"); + } + ParsedExpressionIterator::EnumerateChildren( + expr, [&](ParsedExpression &child) { ExtractPivotAggregateExpression(context, child, aggregates); }); +} + static unique_ptr ConstructInitialGrouping(PivotRef &ref, vector> all_columns, const case_insensitive_set_t &handled_columns) { auto subquery = make_uniq(); @@ -76,10 +97,11 @@ static unique_ptr ConstructInitialGrouping(PivotRef &ref, vectortype != ExpressionType::COLUMN_REF) { + auto column_entry = Binder::GetResolvedColumnExpression(*entry); + if (!column_entry) { throw InternalException("Unexpected child of pivot source - not a ColumnRef"); } - auto &columnref = entry->Cast(); + auto &columnref = column_entry->Cast(); if (handled_columns.find(columnref.GetColumnName()) == handled_columns.end()) { // not handled - add to grouping set subquery->groups.group_expressions.push_back(make_uniq( @@ -98,7 +120,8 @@ static unique_ptr ConstructInitialGrouping(PivotRef &ref, vector PivotFilteredAggregate(PivotRef &ref, vector> all_columns, +static unique_ptr PivotFilteredAggregate(ClientContext &context, PivotRef &ref, + vector> all_columns, const case_insensitive_set_t &handled_columns, vector pivot_values) { auto subquery = ConstructInitialGrouping(ref, std::move(all_columns), handled_columns); @@ -124,7 +147,12 @@ static unique_ptr PivotFilteredAggregate(PivotRef &ref, vectorCopy(); - auto &aggr = copied_aggr->Cast(); + + vector> aggregates; + ExtractPivotAggregateExpression(context, *copied_aggr, aggregates); + D_ASSERT(aggregates.size() == 1); + + auto &aggr = aggregates[0].get().Cast(); aggr.filter = filter->Copy(); auto &aggr_name = aggregate->alias; auto name = pivot_value.name; @@ -132,7 +160,7 @@ static unique_ptr PivotFilteredAggregate(PivotRef &ref, vectorGetName() : aggr_name); } - aggr.alias = name; + copied_aggr->alias = name; subquery->select_list.push_back(std::move(copied_aggr)); } } @@ -360,22 +388,27 @@ unique_ptr Binder::BindPivot(PivotRef &ref, vector> pivot_aggregates; // parse the aggregate, and extract the referenced columns from the aggregate for (auto &aggr : ref.aggregates) { - if (aggr->type != ExpressionType::FUNCTION) { - throw BinderException(*aggr, "Pivot expression must be an aggregate"); - } if (aggr->HasSubquery()) { throw BinderException(*aggr, "Pivot expression cannot contain subqueries"); } if (aggr->IsWindow()) { throw BinderException(*aggr, "Pivot expression cannot contain window functions"); } - // bind the function as an aggregate to ensure it is an aggregate and not a scalar function - auto &aggr_function = aggr->Cast(); - (void)Catalog::GetEntry(context, aggr_function.catalog, aggr_function.schema, - aggr_function.function_name); - ExtractPivotExpressions(*aggr, handled_columns); + idx_t aggregate_count = pivot_aggregates.size(); + ExtractPivotAggregateExpression(context, *aggr, pivot_aggregates); + if (pivot_aggregates.size() != aggregate_count + 1) { + string error_str = pivot_aggregates.size() == aggregate_count + ? "but no aggregates were found" + : "but " + to_string(pivot_aggregates.size() - aggregate_count) + " were found"; + throw BinderException(*aggr, "Pivot expression must contain exactly one aggregate, %s", error_str); + } + } + for (auto &aggr : pivot_aggregates) { + ExtractPivotExpressions(aggr.get(), handled_columns); } // first add all pivots to the set of handled columns, and check for duplicates @@ -448,7 +481,8 @@ unique_ptr Binder::BindPivot(PivotRef &ref, vector table; + optional_ptr column; +}; + +BaseTableColumnInfo FindBaseTableColumn(LogicalOperator &op, ColumnBinding binding) { + BaseTableColumnInfo result; + switch (op.type) { + case LogicalOperatorType::LOGICAL_GET: { + auto &get = op.Cast(); + if (get.table_index != binding.table_index) { + return result; + } + auto table = get.GetTable(); + if (!table) { + break; + } + if (!get.projection_ids.empty()) { + throw InternalException("Projection ids should not exist here"); + } + result.table = table; + auto base_column_id = get.GetColumnIds()[binding.column_index]; + result.column = &table->GetColumn(LogicalIndex(base_column_id.GetPrimaryIndex())); + return result; + } + case LogicalOperatorType::LOGICAL_PROJECTION: { + auto &projection = op.Cast(); + if (binding.table_index != projection.table_index) { + break; + } + auto &expr = projection.expressions[binding.column_index]; + if (expr->type == ExpressionType::BOUND_COLUMN_REF) { + // if the projection at this index only has a column reference we can directly trace it to the base table + auto &bound_colref = expr->Cast(); + return FindBaseTableColumn(*projection.children[0], bound_colref.binding); + } + break; + } + case LogicalOperatorType::LOGICAL_LIMIT: + case LogicalOperatorType::LOGICAL_ORDER_BY: + case LogicalOperatorType::LOGICAL_TOP_N: + case LogicalOperatorType::LOGICAL_SAMPLE: + case LogicalOperatorType::LOGICAL_DISTINCT: + case LogicalOperatorType::LOGICAL_FILTER: + case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: + case LogicalOperatorType::LOGICAL_JOIN: + case LogicalOperatorType::LOGICAL_ANY_JOIN: + case LogicalOperatorType::LOGICAL_ASOF_JOIN: + case LogicalOperatorType::LOGICAL_CROSS_PRODUCT: + // for any "pass-through" operators - search in children directly + for (auto &child : op.children) { + result = FindBaseTableColumn(*child, binding); + if (result.table) { + return result; + } + } + break; + default: + // unsupported operator + break; + } + return result; +} + +BaseTableColumnInfo FindBaseTableColumn(LogicalOperator &op, idx_t column_index) { + auto bindings = op.GetColumnBindings(); + return FindBaseTableColumn(op, bindings[column_index]); +} + unique_ptr Binder::BindShowQuery(ShowRef &ref) { // bind the child plan of the DESCRIBE statement auto child_binder = Binder::CreateBinder(context, this); @@ -24,21 +97,29 @@ unique_ptr Binder::BindShowQuery(ShowRef &ref) { ColumnDataAppendState append_state; collection->InitializeAppend(append_state); for (idx_t column_idx = 0; column_idx < plan.types.size(); column_idx++) { - auto type = plan.types[column_idx]; - auto &name = plan.names[column_idx]; + // check if we can trace the column to a base table so that we can figure out constraint information + auto result = FindBaseTableColumn(*plan.plan, column_idx); + if (result.table) { + // we can! emit the information from the base table directly + PragmaTableInfo::GetColumnInfo(*result.table, *result.column, output, output.size()); + } else { + // we cannot - read the type/name from the plan instead + auto type = plan.types[column_idx]; + auto &name = plan.names[column_idx]; - // "name", TypeId::VARCHAR - output.SetValue(0, output.size(), Value(name)); - // "type", TypeId::VARCHAR - output.SetValue(1, output.size(), Value(type.ToString())); - // "null", TypeId::VARCHAR - output.SetValue(2, output.size(), Value("YES")); - // "pk", TypeId::BOOL - output.SetValue(3, output.size(), Value()); - // "dflt_value", TypeId::VARCHAR - output.SetValue(4, output.size(), Value()); - // "extra", TypeId::VARCHAR - output.SetValue(5, output.size(), Value()); + // "name", TypeId::VARCHAR + output.SetValue(0, output.size(), Value(name)); + // "type", TypeId::VARCHAR + output.SetValue(1, output.size(), Value(type.ToString())); + // "null", TypeId::VARCHAR + output.SetValue(2, output.size(), Value("YES")); + // "pk", TypeId::BOOL + output.SetValue(3, output.size(), Value()); + // "dflt_value", TypeId::VARCHAR + output.SetValue(4, output.size(), Value()); + // "extra", TypeId::VARCHAR + output.SetValue(5, output.size(), Value()); + } output.SetCardinality(output.size() + 1); if (output.size() == STANDARD_VECTOR_SIZE) { diff --git a/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp b/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp index 79972fef..e82baf63 100644 --- a/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp +++ b/src/duckdb/src/planner/binder/tableref/bind_table_function.cpp @@ -265,9 +265,13 @@ unique_ptr Binder::Bind(TableFunctionRef &ref) { D_ASSERT(ref.function->type == ExpressionType::FUNCTION); auto &fexpr = ref.function->Cast(); + string catalog = fexpr.catalog; + string schema = fexpr.schema; + Binder::BindSchemaOrCatalog(context, catalog, schema); + // fetch the function from the catalog - auto &func_catalog = *GetCatalogEntry(CatalogType::TABLE_FUNCTION_ENTRY, fexpr.catalog, fexpr.schema, - fexpr.function_name, OnEntryNotFound::THROW_EXCEPTION, error_context); + auto &func_catalog = *GetCatalogEntry(CatalogType::TABLE_FUNCTION_ENTRY, catalog, schema, fexpr.function_name, + OnEntryNotFound::THROW_EXCEPTION, error_context); if (func_catalog.type == CatalogType::TABLE_MACRO_ENTRY) { auto ¯o_func = func_catalog.Cast(); @@ -306,7 +310,7 @@ unique_ptr Binder::Bind(TableFunctionRef &ref) { } // select the function based on the input parameters - FunctionBinder function_binder(context); + FunctionBinder function_binder(*this); auto best_function_idx = function_binder.BindFunction(function.name, function.functions, arguments, error); if (!best_function_idx.IsValid()) { error.AddQueryLocation(ref); diff --git a/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp b/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp index 7285e643..86638d5c 100644 --- a/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp +++ b/src/duckdb/src/planner/binder/tableref/plan_joinref.cpp @@ -1,22 +1,23 @@ +#include "duckdb/execution/expression_executor.hpp" +#include "duckdb/main/client_context.hpp" +#include "duckdb/optimizer/optimizer.hpp" +#include "duckdb/planner/binder.hpp" #include "duckdb/planner/expression/bound_columnref_expression.hpp" #include "duckdb/planner/expression/bound_comparison_expression.hpp" #include "duckdb/planner/expression/bound_conjunction_expression.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" #include "duckdb/planner/expression/bound_operator_expression.hpp" #include "duckdb/planner/expression/bound_subquery_expression.hpp" +#include "duckdb/planner/expression_binder/lateral_binder.hpp" #include "duckdb/planner/expression_iterator.hpp" -#include "duckdb/planner/binder.hpp" #include "duckdb/planner/operator/logical_any_join.hpp" #include "duckdb/planner/operator/logical_comparison_join.hpp" #include "duckdb/planner/operator/logical_cross_product.hpp" #include "duckdb/planner/operator/logical_dependent_join.hpp" #include "duckdb/planner/operator/logical_filter.hpp" #include "duckdb/planner/operator/logical_positional_join.hpp" -#include "duckdb/planner/tableref/bound_joinref.hpp" -#include "duckdb/main/client_context.hpp" -#include "duckdb/planner/expression_binder/lateral_binder.hpp" #include "duckdb/planner/subquery/recursive_dependent_join_planner.hpp" -#include "duckdb/execution/expression_executor.hpp" +#include "duckdb/planner/tableref/bound_joinref.hpp" namespace duckdb { @@ -76,9 +77,7 @@ void LogicalComparisonJoin::ExtractJoinConditions( auto total_side = JoinSide::GetJoinSide(*expr, left_bindings, right_bindings); if (total_side != JoinSide::BOTH) { // join condition does not reference both sides, add it as filter under the join - // BUT don't push right side filters into AsOf because it is really a table lookup - // and we shouldn't remove anything from the table. - if (type == JoinType::LEFT && total_side == JoinSide::RIGHT && ref_type != JoinRefType::ASOF) { + if ((type == JoinType::LEFT || ref_type == JoinRefType::ASOF) && total_side == JoinSide::RIGHT) { // filter is on RHS and the join is a LEFT OUTER join, we can push it in the right child if (right_child->type != LogicalOperatorType::LOGICAL_FILTER) { // not a filter yet, push a new empty filter @@ -294,7 +293,8 @@ unique_ptr Binder::CreatePlan(BoundJoinRef &ref) { } if (ref.type == JoinType::RIGHT && ref.ref_type != JoinRefType::ASOF && - ClientConfig::GetConfig(context).enable_optimizer) { + ClientConfig::GetConfig(context).enable_optimizer && + !Optimizer::OptimizerDisabled(context, OptimizerType::BUILD_SIDE_PROBE_SIDE)) { // we turn any right outer joins into left outer joins for optimization purposes // they are the same but with sides flipped, so treating them the same simplifies life ref.type = JoinType::LEFT; diff --git a/src/duckdb/src/planner/binding_alias.cpp b/src/duckdb/src/planner/binding_alias.cpp new file mode 100644 index 00000000..62f60dfa --- /dev/null +++ b/src/duckdb/src/planner/binding_alias.cpp @@ -0,0 +1,69 @@ +#include "duckdb/planner/binding_alias.hpp" +#include "duckdb/catalog/catalog_entry/schema_catalog_entry.hpp" +#include "duckdb/catalog/catalog.hpp" + +namespace duckdb { + +BindingAlias::BindingAlias() { +} + +BindingAlias::BindingAlias(string alias_p) : alias(std::move(alias_p)) { +} + +BindingAlias::BindingAlias(string schema_p, string alias_p) : schema(std::move(schema_p)), alias(std::move(alias_p)) { +} + +BindingAlias::BindingAlias(const StandardEntry &entry) + : catalog(entry.ParentCatalog().GetName()), schema(entry.schema.name), alias(entry.name) { +} + +BindingAlias::BindingAlias(string catalog_p, string schema_p, string alias_p) + : catalog(std::move(catalog_p)), schema(std::move(schema_p)), alias(std::move(alias_p)) { +} + +bool BindingAlias::IsSet() const { + return !alias.empty(); +} + +const string &BindingAlias::GetAlias() const { + if (!IsSet()) { + throw InternalException("Calling BindingAlias::GetAlias on a non-set alias"); + } + return alias; +} + +string BindingAlias::ToString() const { + string result; + if (!catalog.empty()) { + result += KeywordHelper::WriteOptionallyQuoted(catalog) + "."; + } + if (!schema.empty()) { + result += KeywordHelper::WriteOptionallyQuoted(schema) + "."; + } + result += KeywordHelper::WriteOptionallyQuoted(alias); + return result; +} + +bool BindingAlias::Matches(const BindingAlias &other) const { + // we match based on the specificity of the other entry + // i.e. "tbl" matches "catalog.schema.tbl" + // but "schema2.tbl" does not match "schema.tbl" + if (!other.catalog.empty()) { + if (!StringUtil::CIEquals(catalog, other.catalog)) { + return false; + } + } + if (!other.schema.empty()) { + if (!StringUtil::CIEquals(schema, other.schema)) { + return false; + } + } + return StringUtil::CIEquals(alias, other.alias); +} + +bool BindingAlias::operator==(const BindingAlias &other) const { + return StringUtil::CIEquals(catalog, other.catalog) && StringUtil::CIEquals(schema, other.schema) && + StringUtil::CIEquals(alias, other.alias); +} + +} // namespace duckdb diff --git a/src/duckdb/src/planner/collation_binding.cpp b/src/duckdb/src/planner/collation_binding.cpp index d68ffc60..aabde7f5 100644 --- a/src/duckdb/src/planner/collation_binding.cpp +++ b/src/duckdb/src/planner/collation_binding.cpp @@ -8,7 +8,8 @@ namespace duckdb { -bool PushVarcharCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type) { +bool PushVarcharCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type, + CollationType type) { if (sql_type.id() != LogicalTypeId::VARCHAR) { // only VARCHAR columns require collation return false; @@ -30,7 +31,12 @@ bool PushVarcharCollation(ClientContext &context, unique_ptr &source auto &catalog = Catalog::GetSystemCatalog(context); auto splits = StringUtil::Split(StringUtil::Lower(collation), "."); vector> entries; + unordered_set collations; for (auto &collation_argument : splits) { + if (collations.count(collation_argument)) { + // we already applied this collation + continue; + } auto &collation_entry = catalog.GetEntry(context, DEFAULT_SCHEMA, collation_argument); if (collation_entry.combinable) { entries.insert(entries.begin(), collation_entry); @@ -41,9 +47,14 @@ bool PushVarcharCollation(ClientContext &context, unique_ptr &source } entries.push_back(collation_entry); } + collations.insert(collation_argument); } for (auto &entry : entries) { auto &collation_entry = entry.get(); + if (!collation_entry.combinable && type == CollationType::COMBINABLE_COLLATIONS) { + // not a combinable collation - ignore + return false; + } vector> children; children.push_back(std::move(source)); @@ -54,7 +65,8 @@ bool PushVarcharCollation(ClientContext &context, unique_ptr &source return true; } -bool PushTimeTZCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type) { +bool PushTimeTZCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type, + CollationType) { if (sql_type.id() != LogicalTypeId::TIME_TZ) { return false; } @@ -75,10 +87,32 @@ bool PushTimeTZCollation(ClientContext &context, unique_ptr &source, return true; } +bool PushIntervalCollation(ClientContext &context, unique_ptr &source, const LogicalType &sql_type, + CollationType) { + if (sql_type.id() != LogicalTypeId::INTERVAL) { + return false; + } + + auto &catalog = Catalog::GetSystemCatalog(context); + auto &function_entry = catalog.GetEntry(context, DEFAULT_SCHEMA, "normalized_interval"); + if (function_entry.functions.Size() != 1) { + throw InternalException("normalized_interval should only have a single overload"); + } + auto &scalar_function = function_entry.functions.GetFunctionReferenceByOffset(0); + vector> children; + children.push_back(std::move(source)); + + FunctionBinder function_binder(context); + auto function = function_binder.BindScalarFunction(scalar_function, std::move(children)); + source = std::move(function); + return true; +} + // timetz_byte_comparable CollationBinding::CollationBinding() { RegisterCollation(CollationCallback(PushVarcharCollation)); RegisterCollation(CollationCallback(PushTimeTZCollation)); + RegisterCollation(CollationCallback(PushIntervalCollation)); } void CollationBinding::RegisterCollation(CollationCallback callback) { @@ -86,9 +120,9 @@ void CollationBinding::RegisterCollation(CollationCallback callback) { } bool CollationBinding::PushCollation(ClientContext &context, unique_ptr &source, - const LogicalType &sql_type) const { + const LogicalType &sql_type, CollationType type) const { for (auto &collation : collations) { - if (collation.try_push_collation(context, source, sql_type)) { + if (collation.try_push_collation(context, source, sql_type, type)) { // successfully pushed a collation return true; } diff --git a/src/duckdb/src/planner/expression.cpp b/src/duckdb/src/planner/expression.cpp index 9fa426b8..3e9539b0 100644 --- a/src/duckdb/src/planner/expression.cpp +++ b/src/duckdb/src/planner/expression.cpp @@ -58,6 +58,12 @@ bool Expression::IsConsistent() const { return is_consistent; } +bool Expression::CanThrow() const { + bool can_throw = false; + ExpressionIterator::EnumerateChildren(*this, [&](const Expression &child) { can_throw |= child.CanThrow(); }); + return can_throw; +} + bool Expression::PropagatesNullValues() const { if (type == ExpressionType::OPERATOR_IS_NULL || type == ExpressionType::OPERATOR_IS_NOT_NULL || type == ExpressionType::COMPARE_NOT_DISTINCT_FROM || type == ExpressionType::COMPARE_DISTINCT_FROM || diff --git a/src/duckdb/src/planner/expression/bound_cast_expression.cpp b/src/duckdb/src/planner/expression/bound_cast_expression.cpp index 1c8dc951..2cd3869d 100644 --- a/src/duckdb/src/planner/expression/bound_cast_expression.cpp +++ b/src/duckdb/src/planner/expression/bound_cast_expression.cpp @@ -2,6 +2,7 @@ #include "duckdb/planner/expression/bound_default_expression.hpp" #include "duckdb/planner/expression/bound_parameter_expression.hpp" #include "duckdb/planner/expression/bound_constant_expression.hpp" +#include "duckdb/planner/expression_iterator.hpp" #include "duckdb/function/cast_rules.hpp" #include "duckdb/function/cast/cast_function_set.hpp" #include "duckdb/main/config.hpp" @@ -217,4 +218,15 @@ unique_ptr BoundCastExpression::Copy() const { return std::move(copy); } +bool BoundCastExpression::CanThrow() const { + const auto child_type = child->return_type; + if (return_type.id() != child_type.id() && + LogicalType::ForceMaxLogicalType(return_type, child_type) == child_type.id()) { + return true; + } + bool changes_type = false; + ExpressionIterator::EnumerateChildren(*this, [&](const Expression &child) { changes_type |= child.CanThrow(); }); + return changes_type; +} + } // namespace duckdb diff --git a/src/duckdb/src/planner/expression/bound_function_expression.cpp b/src/duckdb/src/planner/expression/bound_function_expression.cpp index f31df271..aa00288a 100644 --- a/src/duckdb/src/planner/expression/bound_function_expression.cpp +++ b/src/duckdb/src/planner/expression/bound_function_expression.cpp @@ -5,7 +5,7 @@ #include "duckdb/function/function_serialization.hpp" #include "duckdb/common/serializer/serializer.hpp" #include "duckdb/common/serializer/deserializer.hpp" -#include "duckdb/core_functions/lambda_functions.hpp" +#include "duckdb/function/lambda_functions.hpp" namespace duckdb { diff --git a/src/duckdb/src/planner/expression_binder.cpp b/src/duckdb/src/planner/expression_binder.cpp index 146f1790..7d36654e 100644 --- a/src/duckdb/src/planner/expression_binder.cpp +++ b/src/duckdb/src/planner/expression_binder.cpp @@ -169,7 +169,7 @@ static bool CombineMissingColumns(ErrorData ¤t, ErrorData new_error) { // get query location QueryErrorContext context; current_entry = current_info.find("position"); - new_entry = current_info.find("position"); + new_entry = new_info.find("position"); uint64_t position; if (current_entry != current_info.end() && TryCast::Operation(current_entry->second, position)) { diff --git a/src/duckdb/src/planner/expression_binder/having_binder.cpp b/src/duckdb/src/planner/expression_binder/having_binder.cpp index 27b0124b..6f0c96a0 100644 --- a/src/duckdb/src/planner/expression_binder/having_binder.cpp +++ b/src/duckdb/src/planner/expression_binder/having_binder.cpp @@ -22,6 +22,22 @@ BindResult HavingBinder::BindLambdaReference(LambdaRefExpression &expr, idx_t de return (*lambda_bindings)[expr.lambda_idx].Bind(lambda_ref, depth); } +unique_ptr HavingBinder::QualifyColumnName(ColumnRefExpression &colref, ErrorData &error) { + auto qualified_colref = ExpressionBinder::QualifyColumnName(colref, error); + if (!qualified_colref) { + return nullptr; + } + + auto group_index = TryBindGroup(*qualified_colref); + if (group_index != DConstants::INVALID_INDEX) { + return qualified_colref; + } + if (column_alias_binder.QualifyColumnAlias(colref)) { + return nullptr; + } + return qualified_colref; +} + BindResult HavingBinder::BindColumnRef(unique_ptr &expr_ptr, idx_t depth, bool root_expression) { // Keep the original column name to return a meaningful error message. diff --git a/src/duckdb/src/planner/expression_binder/index_binder.cpp b/src/duckdb/src/planner/expression_binder/index_binder.cpp index e0138ecb..a890ffd5 100644 --- a/src/duckdb/src/planner/expression_binder/index_binder.cpp +++ b/src/duckdb/src/planner/expression_binder/index_binder.cpp @@ -8,6 +8,9 @@ #include "duckdb/execution/index/unbound_index.hpp" #include "duckdb/main/config.hpp" #include "duckdb/main/database.hpp" +#include "duckdb/planner/operator/logical_get.hpp" +#include "duckdb/function/table/table_scan.hpp" +#include "duckdb/planner/operator/logical_create_index.hpp" namespace duckdb { @@ -45,6 +48,52 @@ unique_ptr IndexBinder::BindIndex(const UnboundIndex &unbound_index) return index_type->create_instance(input); } +unique_ptr IndexBinder::BindCreateIndex(ClientContext &context, + unique_ptr create_index_info, + TableCatalogEntry &table_entry, + unique_ptr plan, + unique_ptr alter_table_info) { + // Add the dependencies. + auto &dependencies = create_index_info->dependencies; + auto &catalog = Catalog::GetCatalog(context, create_index_info->catalog); + SetCatalogLookupCallback([&dependencies, &catalog](CatalogEntry &entry) { + if (&catalog != &entry.ParentCatalog()) { + return; + } + dependencies.AddDependency(entry); + }); + + // Bind the index expressions. + vector> expressions; + for (auto &expr : create_index_info->expressions) { + expressions.push_back(Bind(expr)); + } + + auto &get = plan->Cast(); + auto &column_ids = get.GetColumnIds(); + for (auto &column_id : column_ids) { + if (column_id.IsRowIdColumn()) { + throw BinderException("cannot create an index on the rowid"); + } + auto col_id = column_id.GetPrimaryIndex(); + create_index_info->column_ids.push_back(col_id); + create_index_info->scan_types.push_back(get.returned_types[col_id]); + } + + create_index_info->scan_types.emplace_back(LogicalType::ROW_TYPE); + create_index_info->names = get.names; + create_index_info->schema = table_entry.schema.name; + + auto &bind_data = get.bind_data->Cast(); + bind_data.is_create_index = true; + get.AddColumnId(COLUMN_IDENTIFIER_ROW_ID); + + auto result = make_uniq(std::move(create_index_info), std::move(expressions), table_entry, + std::move(alter_table_info)); + result->children.push_back(std::move(plan)); + return std::move(result); +} + BindResult IndexBinder::BindExpression(unique_ptr &expr_ptr, idx_t depth, bool root_expression) { auto &expr = *expr_ptr; switch (expr.expression_class) { diff --git a/src/duckdb/src/planner/expression_binder/order_binder.cpp b/src/duckdb/src/planner/expression_binder/order_binder.cpp index 4516df44..ff864bbb 100644 --- a/src/duckdb/src/planner/expression_binder/order_binder.cpp +++ b/src/duckdb/src/planner/expression_binder/order_binder.cpp @@ -61,8 +61,10 @@ optional_idx OrderBinder::TryGetProjectionReference(ParsedExpression &expr) cons // this is disabled by default (matching Postgres) - but we can control this with a setting auto &config = ClientConfig::GetConfig(binders[0].get().context); if (!config.order_by_non_integer_literal) { - throw BinderException(expr, "ORDER BY non-integer literal has no effect.\n* SET " - "order_by_non_integer_literal=true to allow this behavior."); + throw BinderException(expr, + "%s non-integer literal has no effect.\n* SET " + "order_by_non_integer_literal=true to allow this behavior.", + query_component); } break; } @@ -94,6 +96,14 @@ optional_idx OrderBinder::TryGetProjectionReference(ParsedExpression &expr) cons return optional_idx(); } +void OrderBinder::SetQueryComponent(string component) { + if (component.empty()) { + query_component = "ORDER BY"; + } else { + query_component = std::move(component); + } +} + unique_ptr OrderBinder::BindConstant(ParsedExpression &expr) { auto index = TryGetProjectionReference(expr); if (!index.IsValid()) { @@ -130,7 +140,7 @@ unique_ptr OrderBinder::Bind(unique_ptr expr) { break; } case ExpressionClass::PARAMETER: { - throw ParameterNotAllowedException("Parameter not supported in ORDER BY clause"); + throw ParameterNotAllowedException("Parameter not supported in %s clause", query_component); } case ExpressionClass::COLLATE: { auto &collation = expr->Cast(); diff --git a/src/duckdb/src/planner/filter/constant_filter.cpp b/src/duckdb/src/planner/filter/constant_filter.cpp index 34e16100..9384cd20 100644 --- a/src/duckdb/src/planner/filter/constant_filter.cpp +++ b/src/duckdb/src/planner/filter/constant_filter.cpp @@ -14,6 +14,11 @@ ConstantFilter::ConstantFilter(ExpressionType comparison_type_p, Value constant_ } FilterPropagateResult ConstantFilter::CheckStatistics(BaseStatistics &stats) { + if (!stats.CanHaveNoNull()) { + // no non-null values are possible: always false + return FilterPropagateResult::FILTER_ALWAYS_FALSE; + } + FilterPropagateResult result; D_ASSERT(constant.type().id() == stats.GetType().id()); switch (constant.type().InternalType()) { case PhysicalType::UINT8: @@ -28,12 +33,22 @@ FilterPropagateResult ConstantFilter::CheckStatistics(BaseStatistics &stats) { case PhysicalType::INT128: case PhysicalType::FLOAT: case PhysicalType::DOUBLE: - return NumericStats::CheckZonemap(stats, comparison_type, constant); + result = NumericStats::CheckZonemap(stats, comparison_type, array_ptr(&constant, 1)); + break; case PhysicalType::VARCHAR: - return StringStats::CheckZonemap(stats, comparison_type, StringValue::Get(constant)); + result = StringStats::CheckZonemap(stats, comparison_type, array_ptr(&constant, 1)); + break; default: return FilterPropagateResult::NO_PRUNING_POSSIBLE; } + if (result == FilterPropagateResult::FILTER_ALWAYS_TRUE) { + // the numeric filter is always true, but the column can have NULL values + // we can't prune the filter + if (stats.CanHaveNull()) { + return FilterPropagateResult::NO_PRUNING_POSSIBLE; + } + } + return result; } string ConstantFilter::ToString(const string &column_name) { diff --git a/src/duckdb/src/planner/filter/dynamic_filter.cpp b/src/duckdb/src/planner/filter/dynamic_filter.cpp new file mode 100644 index 00000000..23de4bf4 --- /dev/null +++ b/src/duckdb/src/planner/filter/dynamic_filter.cpp @@ -0,0 +1,68 @@ +#include "duckdb/planner/filter/dynamic_filter.hpp" +#include "duckdb/planner/filter/constant_filter.hpp" +#include "duckdb/planner/expression/bound_constant_expression.hpp" + +namespace duckdb { + +DynamicFilter::DynamicFilter() : TableFilter(TableFilterType::DYNAMIC_FILTER) { +} + +DynamicFilter::DynamicFilter(shared_ptr filter_data_p) + : TableFilter(TableFilterType::DYNAMIC_FILTER), filter_data(std::move(filter_data_p)) { +} + +FilterPropagateResult DynamicFilter::CheckStatistics(BaseStatistics &stats) { + if (!filter_data) { + return FilterPropagateResult::NO_PRUNING_POSSIBLE; + } + lock_guard l(filter_data->lock); + if (!filter_data->initialized) { + return FilterPropagateResult::NO_PRUNING_POSSIBLE; + } + return filter_data->filter->CheckStatistics(stats); +} + +string DynamicFilter::ToString(const string &column_name) { + if (filter_data) { + return "Dynamic Filter (" + column_name + ")"; + } else { + return "Empty Dynamic Filter (" + column_name + ")"; + } +} + +unique_ptr DynamicFilter::ToExpression(const Expression &column) const { + if (!filter_data || !filter_data->initialized) { + auto bound_constant = make_uniq(Value(true)); + return std::move(bound_constant); + } + lock_guard l(filter_data->lock); + return filter_data->filter->ToExpression(column); +} + +bool DynamicFilter::Equals(const TableFilter &other_p) const { + if (!TableFilter::Equals(other_p)) { + return false; + } + auto &other = other_p.Cast(); + return other.filter_data.get() == filter_data.get(); +} + +unique_ptr DynamicFilter::Copy() const { + return make_uniq(filter_data); +} + +void DynamicFilterData::SetValue(Value val) { + if (val.IsNull()) { + return; + } + lock_guard l(lock); + filter->Cast().constant = std::move(val); + initialized = true; +} + +void DynamicFilterData::Reset() { + lock_guard l(lock); + initialized = false; +} + +} // namespace duckdb diff --git a/src/duckdb/src/planner/filter/in_filter.cpp b/src/duckdb/src/planner/filter/in_filter.cpp new file mode 100644 index 00000000..ed8cde82 --- /dev/null +++ b/src/duckdb/src/planner/filter/in_filter.cpp @@ -0,0 +1,80 @@ +#include "duckdb/planner/filter/in_filter.hpp" +#include "duckdb/storage/statistics/base_statistics.hpp" +#include "duckdb/planner/expression/bound_constant_expression.hpp" +#include "duckdb/planner/expression/bound_operator_expression.hpp" + +namespace duckdb { + +InFilter::InFilter(vector values_p) : TableFilter(TableFilterType::IN_FILTER), values(std::move(values_p)) { + for (auto &val : values) { + if (val.IsNull()) { + throw InternalException("InFilter constant cannot be NULL - use IsNullFilter instead"); + } + } + for (idx_t i = 1; i < values.size(); i++) { + if (values[0].type() != values[i].type()) { + throw InternalException("InFilter constants must all have the same type"); + } + } + if (values.empty()) { + throw InternalException("InFilter constants cannot be empty"); + } +} + +FilterPropagateResult InFilter::CheckStatistics(BaseStatistics &stats) { + switch (values[0].type().InternalType()) { + case PhysicalType::UINT8: + case PhysicalType::UINT16: + case PhysicalType::UINT32: + case PhysicalType::UINT64: + case PhysicalType::UINT128: + case PhysicalType::INT8: + case PhysicalType::INT16: + case PhysicalType::INT32: + case PhysicalType::INT64: + case PhysicalType::INT128: + case PhysicalType::FLOAT: + case PhysicalType::DOUBLE: + return NumericStats::CheckZonemap(stats, ExpressionType::COMPARE_EQUAL, + array_ptr(values.data(), values.size())); + case PhysicalType::VARCHAR: + return StringStats::CheckZonemap(stats, ExpressionType::COMPARE_EQUAL, + array_ptr(values.data(), values.size())); + default: + return FilterPropagateResult::NO_PRUNING_POSSIBLE; + } +} + +string InFilter::ToString(const string &column_name) { + string in_list; + for (auto &val : values) { + if (in_list.empty()) { + in_list += ", "; + } + in_list += val.ToSQLString(); + } + return column_name + " IN (" + in_list + ")"; +} + +unique_ptr InFilter::ToExpression(const Expression &column) const { + auto result = make_uniq(ExpressionType::COMPARE_IN, LogicalType::BOOLEAN); + result->children.push_back(column.Copy()); + for (auto &val : values) { + result->children.push_back(make_uniq(val)); + } + return std::move(result); +} + +bool InFilter::Equals(const TableFilter &other_p) const { + if (!TableFilter::Equals(other_p)) { + return false; + } + auto &other = other_p.Cast(); + return other.values == values; +} + +unique_ptr InFilter::Copy() const { + return make_uniq(values); +} + +} // namespace duckdb diff --git a/src/duckdb/src/planner/filter/null_filter.cpp b/src/duckdb/src/planner/filter/null_filter.cpp index a451c8a7..6848191e 100644 --- a/src/duckdb/src/planner/filter/null_filter.cpp +++ b/src/duckdb/src/planner/filter/null_filter.cpp @@ -1,5 +1,4 @@ #include "duckdb/planner/filter/null_filter.hpp" - #include "duckdb/planner/expression/bound_operator_expression.hpp" #include "duckdb/storage/statistics/base_statistics.hpp" @@ -21,7 +20,7 @@ FilterPropagateResult IsNullFilter::CheckStatistics(BaseStatistics &stats) { } string IsNullFilter::ToString(const string &column_name) { - return column_name + "IS NULL"; + return column_name + " IS NULL"; } unique_ptr IsNullFilter::Copy() const { diff --git a/src/duckdb/src/planner/filter/optional_filter.cpp b/src/duckdb/src/planner/filter/optional_filter.cpp new file mode 100644 index 00000000..891e9014 --- /dev/null +++ b/src/duckdb/src/planner/filter/optional_filter.cpp @@ -0,0 +1,29 @@ +#include "duckdb/planner/table_filter.hpp" +#include "duckdb/planner/filter/optional_filter.hpp" +#include "duckdb/planner/expression.hpp" + +namespace duckdb { + +OptionalFilter::OptionalFilter(unique_ptr filter) + : TableFilter(TableFilterType::OPTIONAL_FILTER), child_filter(std::move(filter)) { +} + +FilterPropagateResult OptionalFilter::CheckStatistics(BaseStatistics &stats) { + return child_filter->CheckStatistics(stats); +} + +string OptionalFilter::ToString(const string &column_name) { + return string("optional: ") + child_filter->ToString(column_name); +} + +unique_ptr OptionalFilter::ToExpression(const Expression &column) const { + return child_filter->ToExpression(column); +} + +unique_ptr OptionalFilter::Copy() const { + auto copy = make_uniq(); + copy->child_filter = child_filter->Copy(); + return duckdb::unique_ptr_cast(std::move(copy)); +} + +} // namespace duckdb diff --git a/src/duckdb/src/planner/filter/struct_filter.cpp b/src/duckdb/src/planner/filter/struct_filter.cpp index 2c9c3541..15c09803 100644 --- a/src/duckdb/src/planner/filter/struct_filter.cpp +++ b/src/duckdb/src/planner/filter/struct_filter.cpp @@ -42,8 +42,8 @@ unique_ptr StructFilter::ToExpression(const Expression &column) cons vector> arguments; arguments.push_back(column.Copy()); arguments.push_back(make_uniq(Value::BIGINT(NumericCast(child_idx)))); - auto child = make_uniq(child_type, StructExtractFun::IndexExtractFunction(), - std::move(arguments), StructExtractFun::GetBindData(child_idx)); + auto child = make_uniq(child_type, GetIndexExtractFunction(), std::move(arguments), + GetBindData(child_idx)); return child_filter->ToExpression(*child); } } // namespace duckdb diff --git a/src/duckdb/src/planner/logical_operator.cpp b/src/duckdb/src/planner/logical_operator.cpp index 17cd2d98..c8e73a1f 100644 --- a/src/duckdb/src/planner/logical_operator.cpp +++ b/src/duckdb/src/planner/logical_operator.cpp @@ -1,5 +1,6 @@ #include "duckdb/planner/logical_operator.hpp" +#include "duckdb/common/enum_util.hpp" #include "duckdb/common/printer.hpp" #include "duckdb/common/serializer/binary_deserializer.hpp" #include "duckdb/common/serializer/binary_serializer.hpp" @@ -8,6 +9,9 @@ #include "duckdb/common/tree_renderer.hpp" #include "duckdb/parser/parser.hpp" #include "duckdb/planner/operator/list.hpp" +#include "duckdb/planner/operator/logical_filter.hpp" +#include "duckdb/planner/operator/logical_join.hpp" +#include "duckdb/planner/operator/logical_order.hpp" namespace duckdb { @@ -73,7 +77,6 @@ InsertionOrderPreservingMap LogicalOperator::ParamsToString() const { } void LogicalOperator::ResolveOperatorTypes() { - types.clear(); // first resolve child types for (auto &child : children) { diff --git a/src/duckdb/src/planner/logical_operator_visitor.cpp b/src/duckdb/src/planner/logical_operator_visitor.cpp index 367fb5f2..7ebf3151 100644 --- a/src/duckdb/src/planner/logical_operator_visitor.cpp +++ b/src/duckdb/src/planner/logical_operator_visitor.cpp @@ -12,9 +12,75 @@ void LogicalOperatorVisitor::VisitOperator(LogicalOperator &op) { } void LogicalOperatorVisitor::VisitOperatorChildren(LogicalOperator &op) { - for (auto &child : op.children) { - VisitOperator(*child); + if (op.HasProjectionMap()) { + VisitOperatorWithProjectionMapChildren(op); + } else { + for (auto &child : op.children) { + VisitOperator(*child); + } + } +} + +void LogicalOperatorVisitor::VisitOperatorWithProjectionMapChildren(LogicalOperator &op) { + D_ASSERT(op.HasProjectionMap()); + switch (op.type) { + case LogicalOperatorType::LOGICAL_ANY_JOIN: + case LogicalOperatorType::LOGICAL_COMPARISON_JOIN: + case LogicalOperatorType::LOGICAL_DELIM_JOIN: + case LogicalOperatorType::LOGICAL_ASOF_JOIN: { + auto &join = op.Cast(); + VisitChildOfOperatorWithProjectionMap(*op.children[0], join.left_projection_map); + VisitChildOfOperatorWithProjectionMap(*op.children[1], join.right_projection_map); + break; + } + case LogicalOperatorType::LOGICAL_ORDER_BY: { + auto &order = op.Cast(); + VisitChildOfOperatorWithProjectionMap(*op.children[0], order.projection_map); + break; + } + case LogicalOperatorType::LOGICAL_FILTER: { + auto &filter = op.Cast(); + VisitChildOfOperatorWithProjectionMap(*op.children[0], filter.projection_map); + break; + } + default: + throw NotImplementedException("VisitOperatorWithProjectionMapChildren for %s", EnumUtil::ToString(op.type)); + } +} + +void LogicalOperatorVisitor::VisitChildOfOperatorWithProjectionMap(LogicalOperator &child, + vector &projection_map) { + const auto child_bindings_before = child.GetColumnBindings(); + VisitOperator(child); + if (projection_map.empty()) { + return; // Nothing to fix here + } + // Child binding order may have changed due to 'fun'. + const auto child_bindings_after = child.GetColumnBindings(); + if (child_bindings_before == child_bindings_after) { + return; // Nothing changed + } + // The desired order is 'projection_map' applied to 'child_bindings_before' + // We create 'new_projection_map', which ensures this order even if 'child_bindings_after' is different + vector new_projection_map; + new_projection_map.reserve(projection_map.size()); + for (const auto proj_idx_before : projection_map) { + auto &desired_binding = child_bindings_before[proj_idx_before]; + idx_t proj_idx_after; + for (proj_idx_after = 0; proj_idx_after < child_bindings_after.size(); proj_idx_after++) { + if (child_bindings_after[proj_idx_after] == desired_binding) { + break; + } + } + if (proj_idx_after == child_bindings_after.size()) { + // VisitOperator has removed this binding, e.g., by replacing one binding with another + // Inside here we don't know how it has been replaced, and projection maps are positional: bail + new_projection_map.clear(); + break; + } + new_projection_map.push_back(proj_idx_after); } + projection_map = std::move(new_projection_map); } void LogicalOperatorVisitor::EnumerateExpressions(LogicalOperator &op, diff --git a/src/duckdb/src/planner/operator/logical_comparison_join.cpp b/src/duckdb/src/planner/operator/logical_comparison_join.cpp index f844b182..48efe625 100644 --- a/src/duckdb/src/planner/operator/logical_comparison_join.cpp +++ b/src/duckdb/src/planner/operator/logical_comparison_join.cpp @@ -28,4 +28,27 @@ InsertionOrderPreservingMap LogicalComparisonJoin::ParamsToString() cons return result; } +bool LogicalComparisonJoin::HasEquality(idx_t &range_count) const { + for (size_t c = 0; c < conditions.size(); ++c) { + auto &cond = conditions[c]; + switch (cond.comparison) { + case ExpressionType::COMPARE_EQUAL: + case ExpressionType::COMPARE_NOT_DISTINCT_FROM: + return true; + case ExpressionType::COMPARE_LESSTHAN: + case ExpressionType::COMPARE_GREATERTHAN: + case ExpressionType::COMPARE_LESSTHANOREQUALTO: + case ExpressionType::COMPARE_GREATERTHANOREQUALTO: + ++range_count; + break; + case ExpressionType::COMPARE_NOTEQUAL: + case ExpressionType::COMPARE_DISTINCT_FROM: + break; + default: + throw NotImplementedException("Unimplemented comparison join"); + } + } + return false; +} + } // namespace duckdb diff --git a/src/duckdb/src/planner/operator/logical_copy_to_file.cpp b/src/duckdb/src/planner/operator/logical_copy_to_file.cpp index 62f2434c..1b4f88f6 100644 --- a/src/duckdb/src/planner/operator/logical_copy_to_file.cpp +++ b/src/duckdb/src/planner/operator/logical_copy_to_file.cpp @@ -65,7 +65,7 @@ void LogicalCopyToFile::Serialize(Serializer &serializer) const { serializer.WriteProperty(213, "file_extension", file_extension); serializer.WriteProperty(214, "rotate", rotate); serializer.WriteProperty(215, "return_type", return_type); - serializer.WriteProperty(216, "write_partition_columns", write_partition_columns); + serializer.WritePropertyWithDefault(216, "write_partition_columns", write_partition_columns, true); } unique_ptr LogicalCopyToFile::Deserialize(Deserializer &deserializer) { @@ -109,7 +109,7 @@ unique_ptr LogicalCopyToFile::Deserialize(Deserializer &deseria auto rotate = deserializer.ReadPropertyWithExplicitDefault(214, "rotate", false); auto return_type = deserializer.ReadPropertyWithExplicitDefault(215, "return_type", CopyFunctionReturnType::CHANGED_ROWS); - auto write_partition_columns = deserializer.ReadProperty(216, "write_partition_columns"); + auto write_partition_columns = deserializer.ReadPropertyWithExplicitDefault(216, "write_partition_columns", true); if (!has_serialize) { // If not serialized, re-bind with the copy info diff --git a/src/duckdb/src/planner/operator/logical_create_index.cpp b/src/duckdb/src/planner/operator/logical_create_index.cpp index 65e36069..e1bc0f0e 100644 --- a/src/duckdb/src/planner/operator/logical_create_index.cpp +++ b/src/duckdb/src/planner/operator/logical_create_index.cpp @@ -7,13 +7,14 @@ namespace duckdb { LogicalCreateIndex::LogicalCreateIndex(unique_ptr info_p, vector> expressions_p, - TableCatalogEntry &table_p) - : LogicalOperator(LogicalOperatorType::LOGICAL_CREATE_INDEX), info(std::move(info_p)), table(table_p) { + TableCatalogEntry &table_p, unique_ptr alter_table_info) + : LogicalOperator(LogicalOperatorType::LOGICAL_CREATE_INDEX), info(std::move(info_p)), table(table_p), + alter_table_info(std::move(alter_table_info)) { for (auto &expr : expressions_p) { - this->unbound_expressions.push_back(expr->Copy()); + unbound_expressions.push_back(expr->Copy()); } - this->expressions = std::move(expressions_p); + expressions = std::move(expressions_p); if (info->column_ids.empty()) { throw BinderException("CREATE INDEX does not refer to any columns in the base table!"); @@ -21,23 +22,26 @@ LogicalCreateIndex::LogicalCreateIndex(unique_ptr info_p, vecto } LogicalCreateIndex::LogicalCreateIndex(ClientContext &context, unique_ptr info_p, - vector> expressions_p) + vector> expressions_p, + unique_ptr alter_table_info) : LogicalOperator(LogicalOperatorType::LOGICAL_CREATE_INDEX), - info(unique_ptr_cast(std::move(info_p))), table(BindTable(context, *info)) { + info(unique_ptr_cast(std::move(info_p))), table(BindTable(context, *info)), + alter_table_info(unique_ptr_cast(std::move(alter_table_info))) { + for (auto &expr : expressions_p) { - this->unbound_expressions.push_back(expr->Copy()); + unbound_expressions.push_back(expr->Copy()); } - this->expressions = std::move(expressions_p); + expressions = std::move(expressions_p); } void LogicalCreateIndex::ResolveTypes() { types.emplace_back(LogicalType::BIGINT); } -TableCatalogEntry &LogicalCreateIndex::BindTable(ClientContext &context, CreateIndexInfo &info) { - auto &catalog = info.catalog; - auto &schema = info.schema; - auto &table_name = info.table; +TableCatalogEntry &LogicalCreateIndex::BindTable(ClientContext &context, CreateIndexInfo &info_p) { + auto &catalog = info_p.catalog; + auto &schema = info_p.schema; + auto &table_name = info_p.table; return Catalog::GetEntry(context, catalog, schema, table_name); } diff --git a/src/duckdb/src/planner/operator/logical_export.cpp b/src/duckdb/src/planner/operator/logical_export.cpp new file mode 100644 index 00000000..046aff3e --- /dev/null +++ b/src/duckdb/src/planner/operator/logical_export.cpp @@ -0,0 +1,28 @@ +#include "duckdb/planner/operator/logical_export.hpp" +#include "duckdb/common/serializer/serializer.hpp" +#include "duckdb/catalog/catalog.hpp" +#include "duckdb/catalog/catalog_entry/copy_function_catalog_entry.hpp" + +namespace duckdb { + +LogicalExport::LogicalExport(CopyFunction function, unique_ptr copy_info, + unique_ptr exported_tables) + : LogicalOperator(LogicalOperatorType::LOGICAL_EXPORT), copy_info(std::move(copy_info)), + function(std::move(function)), exported_tables(std::move(exported_tables)) { +} + +LogicalExport::LogicalExport(ClientContext &context, unique_ptr copy_info_p, + unique_ptr exported_tables_p) + : LogicalOperator(LogicalOperatorType::LOGICAL_EXPORT), + copy_info(unique_ptr_cast(std::move(copy_info_p))), + function(GetCopyFunction(context, *copy_info)), + exported_tables(unique_ptr_cast(std::move(exported_tables_p))) { +} + +CopyFunction LogicalExport::GetCopyFunction(ClientContext &context, CopyInfo &info) { + auto ©_entry = + Catalog::GetEntry(context, INVALID_CATALOG, DEFAULT_SCHEMA, info.format); + return copy_entry.function; +} + +} // namespace duckdb diff --git a/src/duckdb/src/planner/operator/logical_get.cpp b/src/duckdb/src/planner/operator/logical_get.cpp index d6e9fda9..97dbe3f6 100644 --- a/src/duckdb/src/planner/operator/logical_get.cpp +++ b/src/duckdb/src/planner/operator/logical_get.cpp @@ -48,6 +48,10 @@ InsertionOrderPreservingMap LogicalGet::ParamsToString() const { } result["Filters"] = filters_info; + if (extra_info.sample_options) { + result["Sample Method"] = "System: " + extra_info.sample_options->sample_size.ToString() + "%"; + } + if (!extra_info.file_filters.empty()) { result["File Filters"] = extra_info.file_filters; if (extra_info.filtered_files.IsValid() && extra_info.total_files.IsValid()) { @@ -57,29 +61,33 @@ InsertionOrderPreservingMap LogicalGet::ParamsToString() const { } if (function.to_string) { - result["__text__"] = function.to_string(bind_data.get()); + TableFunctionToStringInput input(function, bind_data.get()); + auto to_string_result = function.to_string(input); + for (const auto &it : to_string_result) { + result[it.first] = it.second; + } } SetParamsEstimatedCardinality(result); return result; } -void LogicalGet::SetColumnIds(vector &&column_ids) { +void LogicalGet::SetColumnIds(vector &&column_ids) { this->column_ids = std::move(column_ids); } void LogicalGet::AddColumnId(column_t column_id) { - column_ids.push_back(column_id); + column_ids.emplace_back(column_id); } void LogicalGet::ClearColumnIds() { column_ids.clear(); } -const vector &LogicalGet::GetColumnIds() const { +const vector &LogicalGet::GetColumnIds() const { return column_ids; } -vector &LogicalGet::GetMutableColumnIds() { +vector &LogicalGet::GetMutableColumnIds() { return column_ids; } @@ -112,24 +120,24 @@ vector LogicalGet::GetColumnBindings() { void LogicalGet::ResolveTypes() { if (column_ids.empty()) { - column_ids.push_back(COLUMN_IDENTIFIER_ROW_ID); + column_ids.emplace_back(COLUMN_IDENTIFIER_ROW_ID); } types.clear(); if (projection_ids.empty()) { for (auto &index : column_ids) { - if (index == COLUMN_IDENTIFIER_ROW_ID) { + if (index.IsRowIdColumn()) { types.emplace_back(LogicalType::ROW_TYPE); } else { - types.push_back(returned_types[index]); + types.push_back(returned_types[index.GetPrimaryIndex()]); } } } else { for (auto &proj_index : projection_ids) { auto &index = column_ids[proj_index]; - if (index == COLUMN_IDENTIFIER_ROW_ID) { + if (index.IsRowIdColumn()) { types.emplace_back(LogicalType::ROW_TYPE); } else { - types.push_back(returned_types[index]); + types.push_back(returned_types[index.GetPrimaryIndex()]); } } } @@ -166,7 +174,7 @@ void LogicalGet::Serialize(Serializer &serializer) const { serializer.WriteProperty(200, "table_index", table_index); serializer.WriteProperty(201, "returned_types", returned_types); serializer.WriteProperty(202, "names", names); - serializer.WriteProperty(203, "column_ids", column_ids); + /* [Deleted] (vector) "column_ids" */ serializer.WriteProperty(204, "projection_ids", projection_ids); serializer.WriteProperty(205, "table_filters", table_filters); FunctionSerializer::Serialize(serializer, function, bind_data.get()); @@ -179,14 +187,17 @@ void LogicalGet::Serialize(Serializer &serializer) const { serializer.WriteProperty(209, "input_table_names", input_table_names); } serializer.WriteProperty(210, "projected_input", projected_input); + serializer.WritePropertyWithDefault(211, "column_indexes", column_ids); } unique_ptr LogicalGet::Deserialize(Deserializer &deserializer) { + vector legacy_column_ids; + auto result = unique_ptr(new LogicalGet()); deserializer.ReadProperty(200, "table_index", result->table_index); deserializer.ReadProperty(201, "returned_types", result->returned_types); deserializer.ReadProperty(202, "names", result->names); - deserializer.ReadProperty(203, "column_ids", result->column_ids); + deserializer.ReadPropertyWithDefault(203, "column_ids", legacy_column_ids); deserializer.ReadProperty(204, "projection_ids", result->projection_ids); deserializer.ReadProperty(205, "table_filters", result->table_filters); auto entry = FunctionSerializer::DeserializeBase( @@ -194,13 +205,27 @@ unique_ptr LogicalGet::Deserialize(Deserializer &deserializer) result->function = entry.first; auto &function = result->function; auto has_serialize = entry.second; - unique_ptr bind_data; if (!has_serialize) { deserializer.ReadProperty(206, "parameters", result->parameters); deserializer.ReadProperty(207, "named_parameters", result->named_parameters); deserializer.ReadProperty(208, "input_table_types", result->input_table_types); deserializer.ReadProperty(209, "input_table_names", result->input_table_names); + } else { + bind_data = FunctionSerializer::FunctionDeserialize(deserializer, function); + } + deserializer.ReadProperty(210, "projected_input", result->projected_input); + deserializer.ReadPropertyWithDefault(211, "column_indexes", result->column_ids); + if (!legacy_column_ids.empty()) { + if (!result->column_ids.empty()) { + throw SerializationException( + "LogicalGet::Deserialize - either column_ids or column_indexes should be set - not both"); + } + for (auto &col_id : legacy_column_ids) { + result->column_ids.emplace_back(col_id); + } + } + if (!has_serialize) { TableFunctionRef empty_ref; TableFunctionBindInput input(result->parameters, result->named_parameters, result->input_table_types, result->input_table_names, function.function_info.get(), nullptr, result->function, @@ -214,24 +239,22 @@ unique_ptr LogicalGet::Deserialize(Deserializer &deserializer) bind_data = function.bind(deserializer.Get(), input, bind_return_types, bind_names); for (auto &col_id : result->column_ids) { - if (IsRowIdColumnId(col_id)) { + if (col_id.IsRowIdColumn()) { // rowid continue; } - auto &ret_type = result->returned_types[col_id]; - auto &col_name = result->names[col_id]; - if (bind_return_types[col_id] != ret_type) { + auto idx = col_id.GetPrimaryIndex(); + auto &ret_type = result->returned_types[idx]; + auto &col_name = result->names[idx]; + if (bind_return_types[idx] != ret_type) { throw SerializationException("Table function deserialization failure in function \"%s\" - column with " "name %s was serialized with type %s, but now has type %s", - function.name, col_name, ret_type, bind_return_types[col_id]); + function.name, col_name, ret_type, bind_return_types[idx]); } } result->returned_types = std::move(bind_return_types); - } else { - bind_data = FunctionSerializer::FunctionDeserialize(deserializer, function); } result->bind_data = std::move(bind_data); - deserializer.ReadProperty(210, "projected_input", result->projected_input); return std::move(result); } diff --git a/src/duckdb/src/planner/operator/logical_order.cpp b/src/duckdb/src/planner/operator/logical_order.cpp index 78a0c357..bf904c3f 100644 --- a/src/duckdb/src/planner/operator/logical_order.cpp +++ b/src/duckdb/src/planner/operator/logical_order.cpp @@ -8,15 +8,10 @@ LogicalOrder::LogicalOrder(vector orders) vector LogicalOrder::GetColumnBindings() { auto child_bindings = children[0]->GetColumnBindings(); - if (projections.empty()) { + if (!HasProjectionMap()) { return child_bindings; } - - vector result; - for (auto &col_idx : projections) { - result.push_back(child_bindings[col_idx]); - } - return result; + return MapBindings(child_bindings, projection_map); } InsertionOrderPreservingMap LogicalOrder::ParamsToString() const { @@ -35,12 +30,10 @@ InsertionOrderPreservingMap LogicalOrder::ParamsToString() const { void LogicalOrder::ResolveTypes() { const auto child_types = children[0]->types; - if (projections.empty()) { + if (!HasProjectionMap()) { types = child_types; } else { - for (auto &col_idx : projections) { - types.push_back(child_types[col_idx]); - } + types = MapTypes(child_types, projection_map); } } diff --git a/src/duckdb/src/planner/operator/logical_top_n.cpp b/src/duckdb/src/planner/operator/logical_top_n.cpp index 53cb1272..098fcf1b 100644 --- a/src/duckdb/src/planner/operator/logical_top_n.cpp +++ b/src/duckdb/src/planner/operator/logical_top_n.cpp @@ -2,6 +2,13 @@ namespace duckdb { +LogicalTopN::LogicalTopN(vector orders, idx_t limit, idx_t offset) + : LogicalOperator(LogicalOperatorType::LOGICAL_TOP_N), orders(std::move(orders)), limit(limit), offset(offset) { +} + +LogicalTopN::~LogicalTopN() { +} + idx_t LogicalTopN::EstimateCardinality(ClientContext &context) { auto child_cardinality = LogicalOperator::EstimateCardinality(context); if (child_cardinality < limit) { diff --git a/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp b/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp index ac36e9ea..d6070a6e 100644 --- a/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp +++ b/src/duckdb/src/planner/subquery/flatten_dependent_join.cpp @@ -3,6 +3,7 @@ #include "duckdb/catalog/catalog_entry/aggregate_function_catalog_entry.hpp" #include "duckdb/common/operator/add.hpp" #include "duckdb/function/aggregate/distributive_functions.hpp" +#include "duckdb/function/aggregate/distributive_function_utils.hpp" #include "duckdb/planner/binder.hpp" #include "duckdb/planner/expression/bound_aggregate_expression.hpp" #include "duckdb/planner/expression/list.hpp" @@ -240,7 +241,7 @@ unique_ptr FlattenDependentJoins::PushDownDependentJoinInternal delim_data_offset = aggr.groups.size(); for (idx_t i = 0; i < correlated_columns.size(); i++) { auto &col = correlated_columns[i]; - auto first_aggregate = FirstFun::GetFunction(col.type); + auto first_aggregate = FirstFunctionGetter::GetFunction(col.type); auto colref = make_uniq( col.name, col.type, ColumnBinding(base_binding.table_index, base_binding.column_index + i)); vector> aggr_children; @@ -300,7 +301,8 @@ unique_ptr FlattenDependentJoins::PushDownDependentJoinInternal D_ASSERT(aggr.expressions[i]->GetExpressionClass() == ExpressionClass::BOUND_AGGREGATE); auto &bound = aggr.expressions[i]->Cast(); vector arguments; - if (bound.function == CountFun::GetFunction() || bound.function == CountStarFun::GetFunction()) { + if (bound.function == CountFunctionBase::GetFunction() || + bound.function == CountStarFun::GetFunction()) { // have to replace this ColumnBinding with the CASE expression replacement_map[ColumnBinding(aggr.aggregate_index, i)] = i; } @@ -748,6 +750,8 @@ unique_ptr FlattenDependentJoins::PushDownDependentJoinInternal } case LogicalOperatorType::LOGICAL_SAMPLE: throw BinderException("Sampling in correlated subqueries is not (yet) supported"); + case LogicalOperatorType::LOGICAL_POSITIONAL_JOIN: + throw BinderException("Positional join in correlated subqueries is not (yet) supported"); default: throw InternalException("Logical operator type \"%s\" for dependent join", LogicalOperatorToString(plan->type)); } diff --git a/src/duckdb/src/planner/table_binding.cpp b/src/duckdb/src/planner/table_binding.cpp index dff3de59..92ae84d2 100644 --- a/src/duckdb/src/planner/table_binding.cpp +++ b/src/duckdb/src/planner/table_binding.cpp @@ -15,20 +15,25 @@ namespace duckdb { -Binding::Binding(BindingType binding_type, const string &alias, vector coltypes, vector colnames, +Binding::Binding(BindingType binding_type, BindingAlias alias_p, vector coltypes, vector colnames, idx_t index) - : binding_type(binding_type), alias(alias), index(index), types(std::move(coltypes)), names(std::move(colnames)) { + : binding_type(binding_type), alias(std::move(alias_p)), index(index), types(std::move(coltypes)), + names(std::move(colnames)) { D_ASSERT(types.size() == names.size()); for (idx_t i = 0; i < names.size(); i++) { auto &name = names[i]; D_ASSERT(!name.empty()); if (name_map.find(name) != name_map.end()) { - throw BinderException("table \"%s\" has duplicate column name \"%s\"", alias, name); + throw BinderException("table \"%s\" has duplicate column name \"%s\"", alias.GetAlias(), name); } name_map[name] = i; } } +string Binding::GetAlias() const { + return alias.GetAlias(); +} + bool Binding::TryGetBindingIndex(const string &column_name, column_t &result) { auto entry = name_map.find(column_name); if (entry == name_map.end()) { @@ -53,8 +58,8 @@ bool Binding::HasMatchingBinding(const string &column_name) { } ErrorData Binding::ColumnNotFoundError(const string &column_name) const { - return ErrorData(ExceptionType::BINDER, - StringUtil::Format("Values list \"%s\" does not have a column named \"%s\"", alias, column_name)); + return ErrorData(ExceptionType::BINDER, StringUtil::Format("Values list \"%s\" does not have a column named \"%s\"", + GetAlias(), column_name)); } BindResult Binding::Bind(ColumnRefExpression &colref, idx_t depth) { @@ -78,9 +83,29 @@ optional_ptr Binding::GetStandardEntry() { return nullptr; } +BindingAlias Binding::GetAlias(const string &explicit_alias, const StandardEntry &entry) { + if (!explicit_alias.empty()) { + return BindingAlias(explicit_alias); + } + // no explicit alias provided - generate from entry + return BindingAlias(entry); +} + +BindingAlias Binding::GetAlias(const string &explicit_alias, optional_ptr entry) { + if (!explicit_alias.empty()) { + return BindingAlias(explicit_alias); + } + if (!entry) { + throw InternalException("Binding::GetAlias called - but neither an alias nor an entry was provided"); + } + // no explicit alias provided - generate from entry + return BindingAlias(*entry); +} + EntryBinding::EntryBinding(const string &alias, vector types_p, vector names_p, idx_t index, StandardEntry &entry) - : Binding(BindingType::CATALOG_ENTRY, alias, std::move(types_p), std::move(names_p), index), entry(entry) { + : Binding(BindingType::CATALOG_ENTRY, GetAlias(alias, entry), std::move(types_p), std::move(names_p), index), + entry(entry) { } optional_ptr EntryBinding::GetStandardEntry() { @@ -88,9 +113,9 @@ optional_ptr EntryBinding::GetStandardEntry() { } TableBinding::TableBinding(const string &alias, vector types_p, vector names_p, - vector &bound_column_ids, optional_ptr entry, idx_t index, + vector &bound_column_ids, optional_ptr entry, idx_t index, bool add_row_id) - : Binding(BindingType::TABLE, alias, std::move(types_p), std::move(names_p), index), + : Binding(BindingType::TABLE, GetAlias(alias, entry), std::move(types_p), std::move(names_p), index), bound_column_ids(bound_column_ids), entry(entry) { if (add_row_id) { if (name_map.find("rowid") == name_map.end()) { @@ -111,18 +136,24 @@ static void ReplaceAliases(ParsedExpression &expr, const ColumnList &list, col_names = {alias}; } ParsedExpressionIterator::EnumerateChildren( - expr, [&](const ParsedExpression &child) { ReplaceAliases((ParsedExpression &)child, list, alias_map); }); + expr, [&](ParsedExpression &child) { ReplaceAliases(child, list, alias_map); }); } -static void BakeTableName(ParsedExpression &expr, const string &table_name) { +static void BakeTableName(ParsedExpression &expr, const BindingAlias &binding_alias) { if (expr.type == ExpressionType::COLUMN_REF) { auto &colref = expr.Cast(); D_ASSERT(!colref.IsQualified()); auto &col_names = colref.column_names; - col_names.insert(col_names.begin(), table_name); + col_names.insert(col_names.begin(), binding_alias.GetAlias()); + if (!binding_alias.GetSchema().empty()) { + col_names.insert(col_names.begin(), binding_alias.GetSchema()); + } + if (!binding_alias.GetCatalog().empty()) { + col_names.insert(col_names.begin(), binding_alias.GetCatalog()); + } } - ParsedExpressionIterator::EnumerateChildren( - expr, [&](const ParsedExpression &child) { BakeTableName((ParsedExpression &)child, table_name); }); + ParsedExpressionIterator::EnumerateChildren(expr, + [&](ParsedExpression &child) { BakeTableName(child, binding_alias); }); } unique_ptr TableBinding::ExpandGeneratedColumn(const string &column_name) { @@ -146,15 +177,16 @@ unique_ptr TableBinding::ExpandGeneratedColumn(const string &c return (expression); } -const vector &TableBinding::GetBoundColumnIds() const { +const vector &TableBinding::GetBoundColumnIds() const { #ifdef DEBUG - unordered_set column_ids; - for (auto &id : bound_column_ids) { + unordered_set column_ids; + for (auto &col_id : bound_column_ids) { + idx_t id = col_id.IsRowIdColumn() ? DConstants::INVALID_INDEX : col_id.GetPrimaryIndex(); auto result = column_ids.insert(id); // assert that all entries in the bound_column_ids are unique D_ASSERT(result.second); auto it = std::find_if(name_map.begin(), name_map.end(), - [&](const std::pair &it) { return it.second == id; }); + [&](const std::pair &it) { return it.second == id; }); // assert that every id appears in the name_map D_ASSERT(it != name_map.end()); // the order that they appear in is not guaranteed to be sequential @@ -168,13 +200,17 @@ ColumnBinding TableBinding::GetColumnBinding(column_t column_index) { ColumnBinding binding; // Locate the column_id that matches the 'column_index' - auto it = std::find_if(column_ids.begin(), column_ids.end(), - [&](const column_t &id) -> bool { return id == column_index; }); - // Get the index of it - binding.column_index = NumericCast(std::distance(column_ids.begin(), it)); + binding.column_index = column_ids.size(); + for (idx_t i = 0; i < column_ids.size(); ++i) { + auto &col_id = column_ids[i]; + if (col_id.GetPrimaryIndex() == column_index) { + binding.column_index = i; + break; + } + } // If it wasn't found, add it - if (it == column_ids.end()) { - column_ids.push_back(column_index); + if (binding.column_index == column_ids.size()) { + column_ids.emplace_back(column_index); } binding.table_index = index; @@ -202,8 +238,7 @@ BindResult TableBinding::Bind(ColumnRefExpression &colref, idx_t depth) { // fetch the type of the column LogicalType col_type; if (column_index == COLUMN_IDENTIFIER_ROW_ID) { - // row id: BIGINT type - col_type = LogicalType::BIGINT; + col_type = LogicalType::ROW_TYPE; } else { // normal column: fetch type from base column col_type = types[column_index]; @@ -220,13 +255,14 @@ optional_ptr TableBinding::GetStandardEntry() { } ErrorData TableBinding::ColumnNotFoundError(const string &column_name) const { - return ErrorData(ExceptionType::BINDER, - StringUtil::Format("Table \"%s\" does not have a column named \"%s\"", alias, column_name)); + auto candidate_message = StringUtil::CandidatesErrorMessage(names, column_name, "Candidate bindings: "); + return ErrorData(ExceptionType::BINDER, StringUtil::Format("Table \"%s\" does not have a column named \"%s\"\n%s", + alias.GetAlias(), column_name, candidate_message)); } DummyBinding::DummyBinding(vector types, vector names, string dummy_name) - : Binding(BindingType::DUMMY, DummyBinding::DUMMY_NAME + dummy_name, std::move(types), std::move(names), - DConstants::INVALID_INDEX), + : Binding(BindingType::DUMMY, BindingAlias(DummyBinding::DUMMY_NAME + dummy_name), std::move(types), + std::move(names), DConstants::INVALID_INDEX), dummy_name(std::move(dummy_name)) { } diff --git a/src/duckdb/src/planner/table_filter.cpp b/src/duckdb/src/planner/table_filter.cpp index 00559f39..f8544102 100644 --- a/src/duckdb/src/planner/table_filter.cpp +++ b/src/duckdb/src/planner/table_filter.cpp @@ -7,7 +7,8 @@ namespace duckdb { -void TableFilterSet::PushFilter(idx_t column_index, unique_ptr filter) { +void TableFilterSet::PushFilter(const ColumnIndex &col_idx, unique_ptr filter) { + auto column_index = col_idx.GetPrimaryIndex(); auto entry = filters.find(column_index); if (entry == filters.end()) { // no filter yet: push the filter directly @@ -26,6 +27,10 @@ void TableFilterSet::PushFilter(idx_t column_index, unique_ptr filt } } +string TableFilter::DebugToString() { + return ToString("c0"); +} + void DynamicTableFilterSet::ClearFilters(const PhysicalOperator &op) { lock_guard l(lock); filters.erase(op); @@ -42,7 +47,7 @@ void DynamicTableFilterSet::PushFilter(const PhysicalOperator &op, idx_t column_ } else { filter_ptr = entry->second.get(); } - filter_ptr->PushFilter(column_index, std::move(filter)); + filter_ptr->PushFilter(ColumnIndex(column_index), std::move(filter)); } bool DynamicTableFilterSet::HasFilters() const { @@ -57,16 +62,12 @@ DynamicTableFilterSet::GetFinalTableFilters(const PhysicalTableScan &scan, auto result = make_uniq(); if (existing_filters) { for (auto &entry : existing_filters->filters) { - result->filters[entry.first] = entry.second->Copy(); + result->PushFilter(ColumnIndex(entry.first), entry.second->Copy()); } } for (auto &entry : filters) { for (auto &filter : entry.second->filters) { - if (IsRowIdColumnId(scan.column_ids[filter.first])) { - // skip row id filters - continue; - } - result->filters[filter.first] = filter.second->Copy(); + result->PushFilter(ColumnIndex(filter.first), filter.second->Copy()); } } if (result->filters.empty()) { diff --git a/src/duckdb/src/storage/buffer/block_handle.cpp b/src/duckdb/src/storage/buffer/block_handle.cpp index 9523b296..1d1c333b 100644 --- a/src/duckdb/src/storage/buffer/block_handle.cpp +++ b/src/duckdb/src/storage/buffer/block_handle.cpp @@ -10,9 +10,10 @@ namespace duckdb { BlockHandle::BlockHandle(BlockManager &block_manager, block_id_t block_id_p, MemoryTag tag) - : block_manager(block_manager), readers(0), block_id(block_id_p), tag(tag), buffer(nullptr), eviction_seq_num(0), - destroy_buffer_upon(DestroyBufferUpon::BLOCK), memory_charge(tag, block_manager.buffer_manager.GetBufferPool()), - unswizzled(nullptr) { + : block_manager(block_manager), readers(0), block_id(block_id_p), tag(tag), buffer_type(FileBufferType::BLOCK), + buffer(nullptr), eviction_seq_num(0), destroy_buffer_upon(DestroyBufferUpon::BLOCK), + memory_charge(tag, block_manager.buffer_manager.GetBufferPool()), unswizzled(nullptr), + eviction_queue_idx(DConstants::INVALID_INDEX) { eviction_seq_num = 0; state = BlockState::BLOCK_UNLOADED; memory_usage = block_manager.GetBlockAllocSize(); @@ -21,9 +22,10 @@ BlockHandle::BlockHandle(BlockManager &block_manager, block_id_t block_id_p, Mem BlockHandle::BlockHandle(BlockManager &block_manager, block_id_t block_id_p, MemoryTag tag, unique_ptr buffer_p, DestroyBufferUpon destroy_buffer_upon_p, idx_t block_size, BufferPoolReservation &&reservation) - : block_manager(block_manager), readers(0), block_id(block_id_p), tag(tag), eviction_seq_num(0), - destroy_buffer_upon(destroy_buffer_upon_p), memory_charge(tag, block_manager.buffer_manager.GetBufferPool()), - unswizzled(nullptr) { + : block_manager(block_manager), readers(0), block_id(block_id_p), tag(tag), buffer_type(buffer_p->GetBufferType()), + eviction_seq_num(0), destroy_buffer_upon(destroy_buffer_upon_p), + memory_charge(tag, block_manager.buffer_manager.GetBufferPool()), unswizzled(nullptr), + eviction_queue_idx(DConstants::INVALID_INDEX) { buffer = std::move(buffer_p); state = BlockState::BLOCK_LOADED; memory_usage = block_size; @@ -33,10 +35,11 @@ BlockHandle::BlockHandle(BlockManager &block_manager, block_id_t block_id_p, Mem BlockHandle::~BlockHandle() { // NOLINT: allow internal exceptions // being destroyed, so any unswizzled pointers are just binary junk now. unswizzled = nullptr; - if (buffer && buffer->type != FileBufferType::TINY_BUFFER) { + D_ASSERT(!buffer || buffer->GetBufferType() == buffer_type); + if (buffer && buffer_type != FileBufferType::TINY_BUFFER) { // we kill the latest version in the eviction queue auto &buffer_manager = block_manager.buffer_manager; - buffer_manager.GetBufferPool().IncrementDeadNodes(buffer->type); + buffer_manager.GetBufferPool().IncrementDeadNodes(*this); } // no references remain to this block: erase @@ -56,7 +59,7 @@ unique_ptr AllocateBlock(BlockManager &block_manager, unique_ptrtype == FileBufferType::BLOCK) { + if (reusable_buffer->GetBufferType() == FileBufferType::BLOCK) { // we can reuse the buffer entirely auto &block = reinterpret_cast(*reusable_buffer); block.id = block_id; @@ -71,21 +74,71 @@ unique_ptr AllocateBlock(BlockManager &block_manager, unique_ptr reusable_buffer) { +void BlockHandle::ChangeMemoryUsage(BlockLock &l, int64_t delta) { + VerifyMutex(l); + + D_ASSERT(delta < 0); + memory_usage += static_cast(delta); + memory_charge.Resize(memory_usage); +} + +unique_ptr &BlockHandle::GetBuffer(BlockLock &l) { + VerifyMutex(l); + return buffer; +} + +void BlockHandle::VerifyMutex(BlockLock &l) const { + D_ASSERT(l.owns_lock()); + D_ASSERT(l.mutex() == &lock); +} + +BufferPoolReservation &BlockHandle::GetMemoryCharge(BlockLock &l) { + VerifyMutex(l); + return memory_charge; +} + +void BlockHandle::MergeMemoryReservation(BlockLock &l, BufferPoolReservation reservation) { + VerifyMutex(l); + memory_charge.Merge(std::move(reservation)); +} + +void BlockHandle::ResizeMemory(BlockLock &l, idx_t alloc_size) { + VerifyMutex(l); + memory_charge.Resize(alloc_size); +} + +void BlockHandle::ResizeBuffer(BlockLock &l, idx_t block_size, int64_t memory_delta) { + VerifyMutex(l); + + D_ASSERT(buffer); + // resize and adjust current memory + buffer->Resize(block_size); + memory_usage = NumericCast(NumericCast(memory_usage.load()) + memory_delta); + D_ASSERT(memory_usage == buffer->AllocSize()); +} + +BufferHandle BlockHandle::LoadFromBuffer(BlockLock &l, data_ptr_t data, unique_ptr reusable_buffer, + BufferPoolReservation reservation) { + VerifyMutex(l); + D_ASSERT(state != BlockState::BLOCK_LOADED); + D_ASSERT(readers == 0); // copy over the data into the block from the file buffer auto block = AllocateBlock(block_manager, std::move(reusable_buffer), block_id); memcpy(block->InternalBuffer(), data, block->AllocSize()); buffer = std::move(block); state = BlockState::BLOCK_LOADED; - return BufferHandle(shared_from_this()); + readers = 1; + memory_charge = std::move(reservation); + return BufferHandle(shared_from_this(), buffer.get()); } BufferHandle BlockHandle::Load(unique_ptr reusable_buffer) { if (state == BlockState::BLOCK_LOADED) { // already loaded D_ASSERT(buffer); - return BufferHandle(shared_from_this()); + ++readers; + return BufferHandle(shared_from_this(), buffer.get()); } if (block_id < MAXIMUM_BLOCK) { @@ -100,10 +153,13 @@ BufferHandle BlockHandle::Load(unique_ptr reusable_buffer) { } } state = BlockState::BLOCK_LOADED; - return BufferHandle(shared_from_this()); + readers = 1; + return BufferHandle(shared_from_this(), buffer.get()); } -unique_ptr BlockHandle::UnloadAndTakeBlock() { +unique_ptr BlockHandle::UnloadAndTakeBlock(BlockLock &lock) { + VerifyMutex(lock); + if (state == BlockState::BLOCK_UNLOADED) { // already unloaded: nothing to do return nullptr; @@ -120,12 +176,12 @@ unique_ptr BlockHandle::UnloadAndTakeBlock() { return std::move(buffer); } -void BlockHandle::Unload() { - auto block = UnloadAndTakeBlock(); +void BlockHandle::Unload(BlockLock &lock) { + auto block = UnloadAndTakeBlock(lock); block.reset(); } -bool BlockHandle::CanUnload() { +bool BlockHandle::CanUnload() const { if (state == BlockState::BLOCK_UNLOADED) { // already unloaded return false; @@ -145,4 +201,19 @@ bool BlockHandle::CanUnload() { return true; } +void BlockHandle::ConvertToPersistent(BlockLock &l, BlockHandle &new_block, unique_ptr new_buffer) { + VerifyMutex(l); + + // move the data from the old block into data for the new block + new_block.state = BlockState::BLOCK_LOADED; + new_block.buffer = std::move(new_buffer); + new_block.memory_usage = memory_usage.load(); + new_block.memory_charge = std::move(memory_charge); + + // clear out the buffer data from this block + buffer.reset(); + state = BlockState::BLOCK_UNLOADED; + memory_usage = 0; +} + } // namespace duckdb diff --git a/src/duckdb/src/storage/buffer/block_manager.cpp b/src/duckdb/src/storage/buffer/block_manager.cpp index 22cb54d1..1ee4fb6d 100644 --- a/src/duckdb/src/storage/buffer/block_manager.cpp +++ b/src/duckdb/src/storage/buffer/block_manager.cpp @@ -30,46 +30,54 @@ shared_ptr BlockManager::RegisterBlock(block_id_t block_id) { return result; } -shared_ptr BlockManager::ConvertToPersistent(block_id_t block_id, shared_ptr old_block) { - // pin the old block to ensure we have it loaded in memory - auto old_handle = buffer_manager.Pin(old_block); - D_ASSERT(old_block->state == BlockState::BLOCK_LOADED); - D_ASSERT(old_block->buffer); +shared_ptr BlockManager::ConvertToPersistent(block_id_t block_id, shared_ptr old_block, + BufferHandle old_handle) { + // register a block with the new block id + auto new_block = RegisterBlock(block_id); + D_ASSERT(new_block->GetState() == BlockState::BLOCK_UNLOADED); + D_ASSERT(new_block->Readers() == 0); + + auto lock = old_block->GetLock(); + D_ASSERT(old_block->GetState() == BlockState::BLOCK_LOADED); + D_ASSERT(old_block->GetBuffer(lock)); + if (old_block->Readers() > 1) { + throw InternalException("BlockManager::ConvertToPersistent - cannot be called for block %d as old_block has " + "multiple readers active", + block_id); + } // Temp buffers can be larger than the storage block size. // But persistent buffers cannot. - D_ASSERT(old_block->buffer->AllocSize() <= GetBlockAllocSize()); + D_ASSERT(old_block->GetBuffer(lock)->AllocSize() <= GetBlockAllocSize()); - // register a block with the new block id - auto new_block = RegisterBlock(block_id); - D_ASSERT(new_block->state == BlockState::BLOCK_UNLOADED); - D_ASSERT(new_block->readers == 0); - - // move the data from the old block into data for the new block - new_block->state = BlockState::BLOCK_LOADED; - new_block->buffer = ConvertBlock(block_id, *old_block->buffer); - new_block->memory_usage = old_block->memory_usage; - new_block->memory_charge = std::move(old_block->memory_charge); - - // clear the old buffer and unload it - old_block->buffer.reset(); - old_block->state = BlockState::BLOCK_UNLOADED; - old_block->memory_usage = 0; - old_handle.Destroy(); - old_block.reset(); + // convert the buffer to a block + auto converted_buffer = ConvertBlock(block_id, *old_block->GetBuffer(lock)); // persist the new block to disk - Write(*new_block->buffer, block_id); + Write(*converted_buffer, block_id); + + // now convert the actual block + old_block->ConvertToPersistent(lock, *new_block, std::move(converted_buffer)); + + // destroy the old buffer + lock.unlock(); + old_handle.Destroy(); + old_block.reset(); // potentially purge the queue auto purge_queue = buffer_manager.GetBufferPool().AddToEvictionQueue(new_block); if (purge_queue) { - buffer_manager.GetBufferPool().PurgeQueue(new_block->buffer->type); + buffer_manager.GetBufferPool().PurgeQueue(*new_block); } - return new_block; } +shared_ptr BlockManager::ConvertToPersistent(block_id_t block_id, shared_ptr old_block) { + // pin the old block to ensure we have it loaded in memory + auto handle = buffer_manager.Pin(old_block); + return ConvertToPersistent(block_id, std::move(old_block), std::move(handle)); +} + void BlockManager::UnregisterBlock(block_id_t id) { D_ASSERT(id < MAXIMUM_BLOCK); lock_guard lock(blocks_lock); diff --git a/src/duckdb/src/storage/buffer/buffer_handle.cpp b/src/duckdb/src/storage/buffer/buffer_handle.cpp index 29c80e07..a0a5d20c 100644 --- a/src/duckdb/src/storage/buffer/buffer_handle.cpp +++ b/src/duckdb/src/storage/buffer/buffer_handle.cpp @@ -7,8 +7,8 @@ namespace duckdb { BufferHandle::BufferHandle() : handle(nullptr), node(nullptr) { } -BufferHandle::BufferHandle(shared_ptr handle_p) - : handle(std::move(handle_p)), node(handle ? handle->buffer.get() : nullptr) { +BufferHandle::BufferHandle(shared_ptr handle_p, optional_ptr node_p) + : handle(std::move(handle_p)), node(node_p) { } BufferHandle::BufferHandle(BufferHandle &&other) noexcept : node(nullptr) { diff --git a/src/duckdb/src/storage/buffer/buffer_pool.cpp b/src/duckdb/src/storage/buffer/buffer_pool.cpp index 3e7e11c4..867e88ec 100644 --- a/src/duckdb/src/storage/buffer/buffer_pool.cpp +++ b/src/duckdb/src/storage/buffer/buffer_pool.cpp @@ -16,7 +16,7 @@ BufferEvictionNode::BufferEvictionNode(weak_ptr handle_p, idx_t evi } bool BufferEvictionNode::CanUnload(BlockHandle &handle_p) { - if (handle_sequence_number != handle_p.eviction_seq_num) { + if (handle_sequence_number != handle_p.EvictionSequenceNumber()) { // handle was used in between return false; } @@ -41,7 +41,8 @@ typedef duckdb_moodycamel::ConcurrentQueue eviction_queue_t; struct EvictionQueue { public: - EvictionQueue() : evict_queue_insertions(0), total_dead_nodes(0) { + explicit EvictionQueue(const FileBufferType file_buffer_type_p) + : file_buffer_type(file_buffer_type_p), evict_queue_insertions(0), total_dead_nodes(0) { } public: @@ -69,6 +70,8 @@ struct EvictionQueue { void PurgeIteration(const idx_t purge_size); public: + //! The type of the buffers in this queue + const FileBufferType file_buffer_type; //! The concurrent queue eviction_queue_t q; @@ -196,30 +199,34 @@ void EvictionQueue::PurgeIteration(const idx_t purge_size) { BufferPool::BufferPool(idx_t maximum_memory, bool track_eviction_timestamps, idx_t allocator_bulk_deallocation_flush_threshold) - : maximum_memory(maximum_memory), + : eviction_queue_sizes({BLOCK_QUEUE_SIZE, MANAGED_BUFFER_QUEUE_SIZE, TINY_BUFFER_QUEUE_SIZE}), + maximum_memory(maximum_memory), allocator_bulk_deallocation_flush_threshold(allocator_bulk_deallocation_flush_threshold), track_eviction_timestamps(track_eviction_timestamps), temporary_memory_manager(make_uniq()) { - queues.reserve(FILE_BUFFER_TYPE_COUNT); - for (idx_t i = 0; i < FILE_BUFFER_TYPE_COUNT; i++) { - queues.push_back(make_uniq()); + for (uint8_t type_idx = 0; type_idx < FILE_BUFFER_TYPE_COUNT; type_idx++) { + const auto type = static_cast(type_idx + 1); + const auto &type_queue_size = eviction_queue_sizes[type_idx]; + for (idx_t queue_idx = 0; queue_idx < type_queue_size; queue_idx++) { + queues.push_back(make_uniq(type)); + } } } BufferPool::~BufferPool() { } bool BufferPool::AddToEvictionQueue(shared_ptr &handle) { - auto &queue = GetEvictionQueueForType(handle->buffer->type); + auto &queue = GetEvictionQueueForBlockHandle(*handle); // The block handle is locked during this operation (Unpin), // or the block handle is still a local variable (ConvertToPersistent) - D_ASSERT(handle->readers == 0); - auto ts = ++handle->eviction_seq_num; + D_ASSERT(handle->Readers() == 0); + auto ts = handle->NextEvictionSequenceNumber(); if (track_eviction_timestamps) { - handle->lru_timestamp_msec = + handle->SetLRUTimestamp( std::chrono::time_point_cast(std::chrono::steady_clock::now()) .time_since_epoch() - .count(); + .count()); } if (ts != 1) { @@ -227,16 +234,37 @@ bool BufferPool::AddToEvictionQueue(shared_ptr &handle) { queue.IncrementDeadNodes(); } - // Get the eviction queue for the buffer type and add it + // Get the eviction queue for the block and add it return queue.AddToEvictionQueue(BufferEvictionNode(weak_ptr(handle), ts)); } -EvictionQueue &BufferPool::GetEvictionQueueForType(FileBufferType type) { - return *queues[uint8_t(type) - 1]; +EvictionQueue &BufferPool::GetEvictionQueueForBlockHandle(const BlockHandle &handle) { + const auto &handle_buffer_type = handle.GetBufferType(); + + // Get offset into eviction queues for this FileBufferType + idx_t queue_index = 0; + for (uint8_t type_idx = 0; type_idx < FILE_BUFFER_TYPE_COUNT; type_idx++) { + const auto queue_buffer_type = static_cast(type_idx + 1); + if (handle_buffer_type == queue_buffer_type) { + break; + } + const auto &type_queue_size = eviction_queue_sizes[type_idx]; + queue_index += type_queue_size; + } + + const auto &queue_size = eviction_queue_sizes[static_cast(handle_buffer_type) - 1]; + // Adjust if eviction_queue_idx is set (idx == 0 -> add at back, idx >= queue_size -> add at front) + auto eviction_queue_idx = handle.GetEvictionQueueIndex(); + if (eviction_queue_idx < queue_size) { + queue_index += queue_size - eviction_queue_idx - 1; + } + + D_ASSERT(queues[queue_index]->file_buffer_type == handle_buffer_type); + return *queues[queue_index]; } -void BufferPool::IncrementDeadNodes(FileBufferType type) { - GetEvictionQueueForType(type).IncrementDeadNodes(); +void BufferPool::IncrementDeadNodes(const BlockHandle &handle) { + GetEvictionQueueForBlockHandle(handle).IncrementDeadNodes(); } void BufferPool::UpdateUsedMemory(MemoryTag tag, int64_t size) { @@ -261,23 +289,14 @@ TemporaryMemoryManager &BufferPool::GetTemporaryMemoryManager() { BufferPool::EvictionResult BufferPool::EvictBlocks(MemoryTag tag, idx_t extra_memory, idx_t memory_limit, unique_ptr *buffer) { - // First, we try to evict persistent table data - auto block_result = - EvictBlocksInternal(GetEvictionQueueForType(FileBufferType::BLOCK), tag, extra_memory, memory_limit, buffer); - if (block_result.success) { - return block_result; - } - - // If that does not succeed, we try to evict temporary data - auto managed_buffer_result = EvictBlocksInternal(GetEvictionQueueForType(FileBufferType::MANAGED_BUFFER), tag, - extra_memory, memory_limit, buffer); - if (managed_buffer_result.success) { - return managed_buffer_result; + for (auto &queue : queues) { + auto block_result = EvictBlocksInternal(*queue, tag, extra_memory, memory_limit, buffer); + if (block_result.success || RefersToSameObject(*queue, *queues.back())) { + return block_result; // Return upon success or upon last queue + } } - - // Finally, we try to evict tiny buffers - return EvictBlocksInternal(GetEvictionQueueForType(FileBufferType::TINY_BUFFER), tag, extra_memory, memory_limit, - buffer); + // This can never happen since we always return when i == 1. Exception to silence compiler warning + throw InternalException("Exited BufferPool::EvictBlocksInternal without obtaining BufferPool::EvictionResult"); } BufferPool::EvictionResult BufferPool::EvictBlocksInternal(EvictionQueue &queue, MemoryTag tag, idx_t extra_memory, @@ -292,17 +311,17 @@ BufferPool::EvictionResult BufferPool::EvictBlocksInternal(EvictionQueue &queue, return {true, std::move(r)}; } - queue.IterateUnloadableBlocks([&](BufferEvictionNode &, const shared_ptr &handle) { + queue.IterateUnloadableBlocks([&](BufferEvictionNode &, const shared_ptr &handle, BlockLock &lock) { // hooray, we can unload the block - if (buffer && handle->buffer->AllocSize() == extra_memory) { + if (buffer && handle->GetBuffer(lock)->AllocSize() == extra_memory) { // we can re-use the memory directly - *buffer = handle->UnloadAndTakeBlock(); + *buffer = handle->UnloadAndTakeBlock(lock); found = true; return false; } // release the memory and mark the block as unloaded - handle->Unload(); + handle->Unload(lock); if (memory_usage.GetUsedMemory(MemoryUsageCaches::NO_FLUSH) <= memory_limit) { found = true; @@ -336,14 +355,17 @@ idx_t BufferPool::PurgeAgedBlocks(uint32_t max_age_sec) { idx_t BufferPool::PurgeAgedBlocksInternal(EvictionQueue &queue, uint32_t max_age_sec, int64_t now, int64_t limit) { idx_t purged_bytes = 0; - queue.IterateUnloadableBlocks([&](BufferEvictionNode &node, const shared_ptr &handle) { - // We will unload this block regardless. But stop the iteration immediately afterward if this - // block is younger than the age threshold. - bool is_fresh = handle->lru_timestamp_msec >= limit && handle->lru_timestamp_msec <= now; - purged_bytes += handle->GetMemoryUsage(); - handle->Unload(); - return is_fresh; - }); + queue.IterateUnloadableBlocks( + [&](BufferEvictionNode &node, const shared_ptr &handle, BlockLock &lock) { + // We will unload this block regardless. But stop the iteration immediately afterward if this + // block is younger than the age threshold. + auto lru_timestamp_msec = handle->GetLRUTimestamp(); + bool is_fresh = lru_timestamp_msec >= limit && lru_timestamp_msec <= now; + purged_bytes += handle->GetMemoryUsage(); + handle->Unload(lock); + // Return false to stop iterating if the current block is_fresh + return !is_fresh; + }); return purged_bytes; } @@ -368,21 +390,21 @@ void EvictionQueue::IterateUnloadableBlocks(FN fn) { } // we might be able to free this block: grab the mutex and check if we can free it - lock_guard lock(handle->lock); + auto lock = handle->GetLock(); if (!node.CanUnload(*handle)) { // something changed in the mean-time, bail out DecrementDeadNodes(); continue; } - if (!fn(node, handle)) { + if (!fn(node, handle, lock)) { break; } } } -void BufferPool::PurgeQueue(FileBufferType type) { - GetEvictionQueueForType(type).Purge(); +void BufferPool::PurgeQueue(const BlockHandle &block) { + GetEvictionQueueForBlockHandle(block).Purge(); } void BufferPool::SetLimit(idx_t limit, const char *exception_postscript) { @@ -413,6 +435,10 @@ void BufferPool::SetAllocatorBulkDeallocationFlushThreshold(idx_t threshold) { allocator_bulk_deallocation_flush_threshold = threshold; } +idx_t BufferPool::GetAllocatorBulkDeallocationFlushThreshold() { + return allocator_bulk_deallocation_flush_threshold; +} + BufferPool::MemoryUsage::MemoryUsage() { for (auto &v : memory_usage) { v = 0; diff --git a/src/duckdb/src/storage/buffer_manager.cpp b/src/duckdb/src/storage/buffer_manager.cpp index c758fae8..1ff33caa 100644 --- a/src/duckdb/src/storage/buffer_manager.cpp +++ b/src/duckdb/src/storage/buffer_manager.cpp @@ -13,6 +13,10 @@ shared_ptr BufferManager::RegisterTransientMemory(const idx_t size, } shared_ptr BufferManager::RegisterSmallMemory(const idx_t size) { + return RegisterSmallMemory(MemoryTag::BASE_TABLE, size); +} + +shared_ptr BufferManager::RegisterSmallMemory(MemoryTag tag, const idx_t size) { throw NotImplementedException("This type of BufferManager can not create 'small-memory' blocks"); } diff --git a/src/duckdb/src/storage/checkpoint_manager.cpp b/src/duckdb/src/storage/checkpoint_manager.cpp index 9be59051..ca329552 100644 --- a/src/duckdb/src/storage/checkpoint_manager.cpp +++ b/src/duckdb/src/storage/checkpoint_manager.cpp @@ -30,6 +30,7 @@ #include "duckdb/storage/table/column_checkpoint_state.hpp" #include "duckdb/transaction/meta_transaction.hpp" #include "duckdb/transaction/transaction_manager.hpp" +#include "duckdb/catalog/dependency_manager.hpp" namespace duckdb { @@ -149,6 +150,14 @@ void SingleFileCheckpointWriter::CreateCheckpoint() { // we scan the set of committed schemas auto &catalog = Catalog::GetCatalog(db).Cast(); catalog.ScanSchemas([&](SchemaCatalogEntry &entry) { schemas.push_back(entry); }); + + catalog_entry_vector_t catalog_entries; + D_ASSERT(catalog.IsDuckCatalog()); + + auto &dependency_manager = *catalog.GetDependencyManager(); + catalog_entries = GetCatalogEntries(schemas); + dependency_manager.ReorderEntries(catalog_entries); + // write the actual data into the database // Create a serializer to write the checkpoint data @@ -169,7 +178,6 @@ void SingleFileCheckpointWriter::CreateCheckpoint() { ] } */ - auto catalog_entries = GetCatalogEntries(schemas); SerializationOptions serialization_options; serialization_options.serialization_compatibility = config.options.serialization_compatibility; @@ -445,7 +453,7 @@ void CheckpointReader::ReadIndex(CatalogTransaction transaction, Deserializer &d auto &table = schema.GetEntry(transaction, CatalogType::TABLE_ENTRY, info.table)->Cast(); // we also need to make sure the index type is loaded - // backwards compatability: + // backwards compatibility: // if the index type is not specified, we default to ART if (info.index_type.empty()) { info.index_type = ART::TYPE_NAME; @@ -538,6 +546,10 @@ void CheckpointReader::ReadTable(CatalogTransaction transaction, Deserializer &d auto &schema = catalog.GetSchema(transaction, info->schema); auto bound_info = Binder::BindCreateTableCheckpoint(std::move(info), schema); + for (auto &dep : bound_info->Base().dependencies.Set()) { + bound_info->dependencies.AddDependency(dep); + } + // now read the actual table data and place it into the CreateTableInfo ReadTableData(transaction, deserializer, *bound_info); diff --git a/src/duckdb/src/storage/compression/bitpacking.cpp b/src/duckdb/src/storage/compression/bitpacking.cpp index aa1fd079..0d5cd171 100644 --- a/src/duckdb/src/storage/compression/bitpacking.cpp +++ b/src/duckdb/src/storage/compression/bitpacking.cpp @@ -264,10 +264,14 @@ struct BitpackingState { delta_required_bitwidth, static_cast(minimum_delta), delta_offset, compression_buffer, compression_buffer_idx, data_ptr); + // FOR (frame of reference). + total_size += sizeof(T); + // Aligned bitpacking width. + total_size += AlignValue(sizeof(bitpacking_width_t)); + // Delta offset. + total_size += sizeof(T); + // Compressed data size. total_size += BitpackingPrimitives::GetRequiredSize(compression_buffer_idx, delta_required_bitwidth); - total_size += sizeof(T); // FOR value - total_size += sizeof(T); // Delta offset value - total_size += AlignValue(sizeof(bitpacking_width_t)); // FOR value return true; } @@ -494,8 +498,8 @@ struct BitpackingCompressState : public CompressionState { auto &db = checkpointer.GetDatabase(); auto &type = checkpointer.GetType(); - auto compressed_segment = - ColumnSegment::CreateTransientSegment(db, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + auto compressed_segment = ColumnSegment::CreateTransientSegment(db, function, type, row_start, + info.GetBlockSize(), info.GetBlockSize()); compressed_segment->function = function; current_segment = std::move(compressed_segment); @@ -548,9 +552,8 @@ struct BitpackingCompressState : public CompressionState { // Store the offset of the metadata of the first group (which is at the highest address). Store(metadata_offset + metadata_size, base_ptr); - handle.Destroy(); - state.FlushSegment(std::move(current_segment), total_segment_size); + state.FlushSegment(std::move(current_segment), std::move(handle), total_segment_size); } void Finalize() { diff --git a/src/duckdb/src/storage/compression/dictionary_compression.cpp b/src/duckdb/src/storage/compression/dictionary_compression.cpp index 5fd859f7..a531d12e 100644 --- a/src/duckdb/src/storage/compression/dictionary_compression.cpp +++ b/src/duckdb/src/storage/compression/dictionary_compression.cpp @@ -127,7 +127,7 @@ struct DictionaryCompressionStorage { // contains the offsets into the dictionary which are also used to determine the string lengths. Each value in the // dictionary gets a single unique index in the index buffer. Secondly, the selection buffer maps the tuples to an index // in the index buffer. The selection buffer is compressed with bitpacking. Finally, the dictionary contains simply all -// the unique strings without lenghts or null termination as we can deduce the lengths from the index buffer. The +// the unique strings without lengths or null termination as we can deduce the lengths from the index buffer. The // addition of the selection buffer is done for two reasons: firstly, to allow the scan to emit dictionary vectors by // scanning the whole dictionary at once and then scanning the selection buffer for each emitted vector. Secondly, it // allows for efficient bitpacking compression as the selection values should remain relatively small. @@ -165,8 +165,8 @@ struct DictionaryCompressionCompressState : public DictionaryCompressionState { auto &db = checkpointer.GetDatabase(); auto &type = checkpointer.GetType(); - auto compressed_segment = - ColumnSegment::CreateTransientSegment(db, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + auto compressed_segment = ColumnSegment::CreateTransientSegment(db, function, type, row_start, + info.GetBlockSize(), info.GetBlockSize()); current_segment = std::move(compressed_segment); current_segment->function = function; @@ -259,7 +259,7 @@ struct DictionaryCompressionCompressState : public DictionaryCompressionState { auto segment_size = Finalize(); auto &state = checkpointer.GetCheckpointState(); - state.FlushSegment(std::move(current_segment), segment_size); + state.FlushSegment(std::move(current_segment), std::move(current_handle), segment_size); if (!final) { CreateEmptySegment(next_start); @@ -441,6 +441,7 @@ void DictionaryCompressionStorage::FinalizeCompress(CompressionState &state_p) { struct CompressedStringScanState : public StringScanState { BufferHandle handle; buffer_ptr dictionary; + idx_t dictionary_size; bitpacking_width_t current_width; buffer_ptr sel_vec; idx_t sel_vec_size = 0; @@ -459,10 +460,16 @@ unique_ptr DictionaryCompressionStorage::StringInitScan(Column auto index_buffer_offset = Load(data_ptr_cast(&header_ptr->index_buffer_offset)); auto index_buffer_count = Load(data_ptr_cast(&header_ptr->index_buffer_count)); state->current_width = (bitpacking_width_t)(Load(data_ptr_cast(&header_ptr->bitpacking_width))); + if (segment.GetBlockOffset() + index_buffer_offset + sizeof(uint32_t) * index_buffer_count > + segment.GetBlockManager().GetBlockSize()) { + throw IOException( + "Failed to scan dictionary string - index was out of range. Database file appears to be corrupted."); + } auto index_buffer_ptr = reinterpret_cast(baseptr + index_buffer_offset); state->dictionary = make_buffer(segment.type, index_buffer_count); + state->dictionary_size = index_buffer_count; auto dict_child_data = FlatVector::GetData(*(state->dictionary)); for (uint32_t i = 0; i < index_buffer_count; i++) { @@ -539,13 +546,14 @@ void DictionaryCompressionStorage::StringScanPartial(ColumnSegment &segment, Col scan_state.sel_vec = make_buffer(decompress_count); } - // Scanning 1024 values, emitting a dict vector + // Scanning 2048 values, emitting a dict vector data_ptr_t dst = data_ptr_cast(scan_state.sel_vec->data()); data_ptr_t src = data_ptr_cast(&base_data[(start * scan_state.current_width) / 8]); BitpackingPrimitives::UnPackBuffer(dst, src, scan_count, scan_state.current_width); - result.Slice(*(scan_state.dictionary), *scan_state.sel_vec, scan_count); + result.Dictionary(*(scan_state.dictionary), scan_state.dictionary_size, *scan_state.sel_vec, scan_count); + DictionaryVector::SetDictionaryId(result, to_string(CastPointerToValue(&segment))); } } @@ -657,7 +665,8 @@ CompressionFunction DictionaryCompressionFun::GetFunction(PhysicalType data_type DictionaryCompressionStorage::InitCompression, DictionaryCompressionStorage::Compress, DictionaryCompressionStorage::FinalizeCompress, DictionaryCompressionStorage::StringInitScan, DictionaryCompressionStorage::StringScan, DictionaryCompressionStorage::StringScanPartial, - DictionaryCompressionStorage::StringFetchRow, UncompressedFunctions::EmptySkip); + DictionaryCompressionStorage::StringFetchRow, UncompressedFunctions::EmptySkip, + UncompressedStringStorage::StringInitSegment); } bool DictionaryCompressionFun::TypeIsSupported(const PhysicalType physical_type) { diff --git a/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp b/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp index 3b4a09ce..f694a13f 100644 --- a/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp +++ b/src/duckdb/src/storage/compression/fixed_size_uncompressed.cpp @@ -42,19 +42,24 @@ idx_t FixedSizeFinalAnalyze(AnalyzeState &state_p) { // Compress //===--------------------------------------------------------------------===// struct UncompressedCompressState : public CompressionState { +public: UncompressedCompressState(ColumnDataCheckpointer &checkpointer, const CompressionInfo &info); - ColumnDataCheckpointer &checkpointer; - unique_ptr current_segment; - ColumnAppendState append_state; - +public: virtual void CreateEmptySegment(idx_t row_start); void FlushSegment(idx_t segment_size); void Finalize(idx_t segment_size); + +public: + ColumnDataCheckpointer &checkpointer; + CompressionFunction &function; + unique_ptr current_segment; + ColumnAppendState append_state; }; UncompressedCompressState::UncompressedCompressState(ColumnDataCheckpointer &checkpointer, const CompressionInfo &info) - : CompressionState(info), checkpointer(checkpointer) { + : CompressionState(info), checkpointer(checkpointer), + function(checkpointer.GetCompressionFunction(CompressionType::COMPRESSION_UNCOMPRESSED)) { UncompressedCompressState::CreateEmptySegment(checkpointer.GetRowGroup().start); } @@ -63,7 +68,7 @@ void UncompressedCompressState::CreateEmptySegment(idx_t row_start) { auto &type = checkpointer.GetType(); auto compressed_segment = - ColumnSegment::CreateTransientSegment(db, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + ColumnSegment::CreateTransientSegment(db, function, type, row_start, info.GetBlockSize(), info.GetBlockSize()); if (type.InternalType() == PhysicalType::VARCHAR) { auto &state = compressed_segment->GetSegmentState()->Cast(); state.overflow_writer = @@ -80,7 +85,10 @@ void UncompressedCompressState::FlushSegment(idx_t segment_size) { segment_state.overflow_writer->Flush(); segment_state.overflow_writer.reset(); } - state.FlushSegment(std::move(current_segment), segment_size); + append_state.child_appends.clear(); + append_state.append_state.reset(); + append_state.lock.reset(); + state.FlushSegmentInternal(std::move(current_segment), segment_size); } void UncompressedCompressState::Finalize(idx_t segment_size) { diff --git a/src/duckdb/src/storage/compression/fsst.cpp b/src/duckdb/src/storage/compression/fsst.cpp index 8492aabf..bad01783 100644 --- a/src/duckdb/src/storage/compression/fsst.cpp +++ b/src/duckdb/src/storage/compression/fsst.cpp @@ -13,6 +13,7 @@ #include "miniz_wrapper.hpp" namespace duckdb { +struct FSSTScanState; typedef struct { uint32_t dict_size; @@ -54,6 +55,8 @@ struct FSSTStorage { static void StringScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result); static void StringFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row_id, Vector &result, idx_t result_idx); + static void Select(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + const SelectionVector &sel, idx_t sel_count); static void SetDictionary(ColumnSegment &segment, BufferHandle &handle, StringDictionaryContainer container); static StringDictionaryContainer GetDictionary(ColumnSegment &segment, BufferHandle &handle); @@ -62,6 +65,9 @@ struct FSSTStorage { static bp_delta_offsets_t CalculateBpDeltaOffsets(int64_t last_known_row, idx_t start, idx_t scan_count); static bool ParseFSSTSegmentHeader(data_ptr_t base_ptr, duckdb_fsst_decoder_t *decoder_out, bitpacking_width_t *width_out); + static bp_delta_offsets_t StartScan(FSSTScanState &scan_state, data_ptr_t base_data, idx_t start, + idx_t vector_count); + static void EndScan(FSSTScanState &scan_state, bp_delta_offsets_t &offsets, idx_t start, idx_t scan_count); }; //===--------------------------------------------------------------------===// @@ -231,8 +237,8 @@ class FSSTCompressionState : public CompressionState { auto &db = checkpointer.GetDatabase(); auto &type = checkpointer.GetType(); - auto compressed_segment = - ColumnSegment::CreateTransientSegment(db, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + auto compressed_segment = ColumnSegment::CreateTransientSegment(db, function, type, row_start, + info.GetBlockSize(), info.GetBlockSize()); current_segment = std::move(compressed_segment); current_segment->function = function; Reset(); @@ -314,7 +320,7 @@ class FSSTCompressionState : public CompressionState { auto segment_size = Finalize(); auto &state = checkpointer.GetCheckpointState(); - state.FlushSegment(std::move(current_segment), segment_size); + state.FlushSegment(std::move(current_segment), std::move(current_handle), segment_size); if (!final) { CreateEmptySegment(next_start); @@ -515,6 +521,11 @@ struct FSSTScanState : public StringScanState { uint32_t last_known_index; int64_t last_known_row; + unsafe_unique_array bitunpack_buffer; + idx_t bitunpack_buffer_capacity = 0; + unsafe_unique_array delta_decode_buffer; + idx_t delta_decode_capacity = 0; + void StoreLastDelta(uint32_t value, int64_t row) { last_known_index = value; last_known_row = row; @@ -523,6 +534,18 @@ struct FSSTScanState : public StringScanState { last_known_index = 0; last_known_row = -1; } + inline string_t DecompressString(StringDictionaryContainer dict, data_ptr_t baseptr, + const bp_delta_offsets_t &offsets, idx_t index, Vector &result) { + uint32_t str_len = bitunpack_buffer[offsets.scan_offset + index]; + auto str_ptr = FSSTStorage::FetchStringPointer( + dict, baseptr, + UnsafeNumericCast(delta_decode_buffer[index + offsets.unused_delta_decoded_values])); + + if (str_len == 0) { + return string_t(nullptr, 0); + } + return FSSTPrimitives::DecompressValue(duckdb_fsst_decoder.get(), result, str_ptr, str_len, decompress_buffer); + } }; unique_ptr FSSTStorage::StringInitScan(ColumnSegment &segment) { @@ -558,6 +581,35 @@ void BitUnpackRange(data_ptr_t src_ptr, data_ptr_t dst_ptr, idx_t count, idx_t r //===--------------------------------------------------------------------===// // Scan base data //===--------------------------------------------------------------------===// +bp_delta_offsets_t FSSTStorage::StartScan(FSSTScanState &scan_state, data_ptr_t base_data, idx_t start, + idx_t scan_count) { + if (start == 0 || scan_state.last_known_row >= (int64_t)start) { + scan_state.ResetStoredDelta(); + } + + auto offsets = CalculateBpDeltaOffsets(scan_state.last_known_row, start, scan_count); + + if (scan_state.bitunpack_buffer_capacity < offsets.total_bitunpack_count) { + scan_state.bitunpack_buffer = make_unsafe_uniq_array(offsets.total_bitunpack_count); + scan_state.bitunpack_buffer_capacity = offsets.total_bitunpack_count; + } + BitUnpackRange(base_data, data_ptr_cast(scan_state.bitunpack_buffer.get()), offsets.total_bitunpack_count, + offsets.bitunpack_start_row, scan_state.current_width); + if (scan_state.delta_decode_capacity < offsets.total_delta_decode_count) { + scan_state.delta_decode_buffer = make_unsafe_uniq_array(offsets.total_delta_decode_count); + scan_state.delta_decode_capacity = offsets.total_delta_decode_count; + } + DeltaDecodeIndices(scan_state.bitunpack_buffer.get() + offsets.bitunpack_alignment_offset, + scan_state.delta_decode_buffer.get(), offsets.total_delta_decode_count, + scan_state.last_known_index); + return offsets; +} + +void FSSTStorage::EndScan(FSSTScanState &scan_state, bp_delta_offsets_t &offsets, idx_t start, idx_t scan_count) { + scan_state.StoreLastDelta(scan_state.delta_decode_buffer[scan_count + offsets.unused_delta_decoded_values - 1], + UnsafeNumericCast(start + scan_count - 1)); +} + template void FSSTStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, idx_t result_offset) { @@ -599,19 +651,9 @@ void FSSTStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &sta result_data = FlatVector::GetData(result); } - if (start == 0 || scan_state.last_known_row >= (int64_t)start) { - scan_state.ResetStoredDelta(); - } - - auto offsets = CalculateBpDeltaOffsets(scan_state.last_known_row, start, scan_count); - - auto bitunpack_buffer = unsafe_unique_ptr(new uint32_t[offsets.total_bitunpack_count]); - BitUnpackRange(base_data, data_ptr_cast(bitunpack_buffer.get()), offsets.total_bitunpack_count, - offsets.bitunpack_start_row, scan_state.current_width); - auto delta_decode_buffer = unsafe_unique_ptr(new uint32_t[offsets.total_delta_decode_count]); - DeltaDecodeIndices(bitunpack_buffer.get() + offsets.bitunpack_alignment_offset, delta_decode_buffer.get(), - offsets.total_delta_decode_count, scan_state.last_known_index); - + auto offsets = StartScan(scan_state, base_data, start, scan_count); + auto &bitunpack_buffer = scan_state.bitunpack_buffer; + auto &delta_decode_buffer = scan_state.delta_decode_buffer; if (enable_fsst_vectors) { // Lookup decompressed offsets in dict for (idx_t i = 0; i < scan_count; i++) { @@ -625,28 +667,39 @@ void FSSTStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &sta } else { // Just decompress for (idx_t i = 0; i < scan_count; i++) { - uint32_t str_len = bitunpack_buffer[i + offsets.scan_offset]; - auto str_ptr = FSSTStorage::FetchStringPointer( - dict, baseptr, - UnsafeNumericCast(delta_decode_buffer[i + offsets.unused_delta_decoded_values])); - - if (str_len > 0) { - result_data[i + result_offset] = FSSTPrimitives::DecompressValue( - scan_state.duckdb_fsst_decoder.get(), result, str_ptr, str_len, scan_state.decompress_buffer); - } else { - result_data[i + result_offset] = string_t(nullptr, 0); - } + result_data[i + result_offset] = scan_state.DecompressString(dict, baseptr, offsets, i, result); } } - - scan_state.StoreLastDelta(delta_decode_buffer[scan_count + offsets.unused_delta_decoded_values - 1], - UnsafeNumericCast(start + scan_count - 1)); + EndScan(scan_state, offsets, start, scan_count); } void FSSTStorage::StringScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result) { StringScanPartial(segment, state, scan_count, result, 0); } +//===--------------------------------------------------------------------===// +// Select +//===--------------------------------------------------------------------===// +void FSSTStorage::Select(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + const SelectionVector &sel, idx_t sel_count) { + auto &scan_state = state.scan_state->Cast(); + auto start = segment.GetRelativeIndex(state.row_index); + + auto baseptr = scan_state.handle.Ptr() + segment.GetBlockOffset(); + auto dict = GetDictionary(segment, scan_state.handle); + auto base_data = data_ptr_cast(baseptr + sizeof(fsst_compression_header_t)); + + D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR); + + auto offsets = StartScan(scan_state, base_data, start, vector_count); + auto result_data = FlatVector::GetData(result); + for (idx_t i = 0; i < sel_count; i++) { + idx_t index = sel.get_index(i); + result_data[i] = scan_state.DecompressString(dict, baseptr, offsets, index, result); + } + EndScan(scan_state, offsets, start, vector_count); +} + //===--------------------------------------------------------------------===// // Fetch //===--------------------------------------------------------------------===// @@ -699,11 +752,13 @@ void FSSTStorage::StringFetchRow(ColumnSegment &segment, ColumnFetchState &state //===--------------------------------------------------------------------===// CompressionFunction FSSTFun::GetFunction(PhysicalType data_type) { D_ASSERT(data_type == PhysicalType::VARCHAR); - return CompressionFunction( - CompressionType::COMPRESSION_FSST, data_type, FSSTStorage::StringInitAnalyze, FSSTStorage::StringAnalyze, - FSSTStorage::StringFinalAnalyze, FSSTStorage::InitCompression, FSSTStorage::Compress, - FSSTStorage::FinalizeCompress, FSSTStorage::StringInitScan, FSSTStorage::StringScan, - FSSTStorage::StringScanPartial, FSSTStorage::StringFetchRow, UncompressedFunctions::EmptySkip); + return CompressionFunction(CompressionType::COMPRESSION_FSST, data_type, FSSTStorage::StringInitAnalyze, + FSSTStorage::StringAnalyze, FSSTStorage::StringFinalAnalyze, + FSSTStorage::InitCompression, FSSTStorage::Compress, FSSTStorage::FinalizeCompress, + FSSTStorage::StringInitScan, FSSTStorage::StringScan, + FSSTStorage::StringScanPartial, FSSTStorage::StringFetchRow, + UncompressedFunctions::EmptySkip, UncompressedStringStorage::StringInitSegment, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, FSSTStorage::Select); } bool FSSTFun::TypeIsSupported(const PhysicalType physical_type) { diff --git a/src/duckdb/src/storage/compression/numeric_constant.cpp b/src/duckdb/src/storage/compression/numeric_constant.cpp index 599c0682..097ab906 100644 --- a/src/duckdb/src/storage/compression/numeric_constant.cpp +++ b/src/duckdb/src/storage/compression/numeric_constant.cpp @@ -87,6 +87,93 @@ void ConstantFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row ConstantFillFunction(segment, result, result_idx, 1); } +//===--------------------------------------------------------------------===// +// Select +//===--------------------------------------------------------------------===// +void ConstantSelectValidity(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + const SelectionVector &sel, idx_t sel_count) { + ConstantScanFunctionValidity(segment, state, vector_count, result); +} + +template +void ConstantSelect(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + const SelectionVector &sel, idx_t sel_count) { + ConstantScanFunction(segment, state, vector_count, result); +} + +//===--------------------------------------------------------------------===// +// Filter +//===--------------------------------------------------------------------===// +void FiltersNullValues(const TableFilter &filter, bool &filters_nulls, bool &filters_valid_values) { + filters_nulls = false; + filters_valid_values = false; + + switch (filter.filter_type) { + case TableFilterType::OPTIONAL_FILTER: + break; + case TableFilterType::CONJUNCTION_OR: { + auto &conjunction_or = filter.Cast(); + filters_nulls = true; + filters_valid_values = true; + for (auto &child_filter : conjunction_or.child_filters) { + bool child_filters_nulls, child_filters_valid_values; + FiltersNullValues(*child_filter, child_filters_nulls, child_filters_valid_values); + filters_nulls = filters_nulls && child_filters_nulls; + filters_valid_values = filters_valid_values && child_filters_valid_values; + } + break; + } + case TableFilterType::CONJUNCTION_AND: { + auto &conjunction_and = filter.Cast(); + filters_nulls = false; + filters_valid_values = false; + for (auto &child_filter : conjunction_and.child_filters) { + bool child_filters_nulls, child_filters_valid_values; + FiltersNullValues(*child_filter, child_filters_nulls, child_filters_valid_values); + filters_nulls = filters_nulls || child_filters_nulls; + filters_valid_values = filters_valid_values || child_filters_valid_values; + } + break; + } + case TableFilterType::CONSTANT_COMPARISON: + filters_nulls = true; + break; + case TableFilterType::IS_NULL: + filters_valid_values = true; + break; + case TableFilterType::IS_NOT_NULL: + filters_nulls = true; + break; + default: + throw InternalException("FIXME: unsupported type for filter selection in validity select"); + } +} + +void ConstantFilterValidity(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + SelectionVector &sel, idx_t &sel_count, const TableFilter &filter) { + // check what effect the filter has on NULL values + bool filters_nulls, filters_valid_values; + FiltersNullValues(filter, filters_nulls, filters_valid_values); + + auto &stats = segment.stats.statistics; + if (stats.CanHaveNull()) { + // all values are NULL + if (filters_nulls) { + // ... and the filter removes NULL values + sel_count = 0; + return; + } + } else { + // all values are valid + if (filters_valid_values) { + // ... and the filter removes valid values + sel_count = 0; + return; + } + } + ConstantScanFunctionValidity(segment, state, vector_count, result); +} + //===--------------------------------------------------------------------===// // Get Function //===--------------------------------------------------------------------===// @@ -94,14 +181,17 @@ CompressionFunction ConstantGetFunctionValidity(PhysicalType data_type) { D_ASSERT(data_type == PhysicalType::BIT); return CompressionFunction(CompressionType::COMPRESSION_CONSTANT, data_type, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, ConstantInitScan, ConstantScanFunctionValidity, - ConstantScanPartialValidity, ConstantFetchRowValidity, UncompressedFunctions::EmptySkip); + ConstantScanPartialValidity, ConstantFetchRowValidity, UncompressedFunctions::EmptySkip, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, + ConstantSelectValidity, ConstantFilterValidity); } template CompressionFunction ConstantGetFunction(PhysicalType data_type) { return CompressionFunction(CompressionType::COMPRESSION_CONSTANT, data_type, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, ConstantInitScan, ConstantScanFunction, ConstantScanPartial, - ConstantFetchRow, UncompressedFunctions::EmptySkip); + ConstantFetchRow, UncompressedFunctions::EmptySkip, nullptr, nullptr, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, ConstantSelect); } CompressionFunction ConstantFun::GetFunction(PhysicalType data_type) { diff --git a/src/duckdb/src/storage/compression/rle.cpp b/src/duckdb/src/storage/compression/rle.cpp index f845baad..d7ea929a 100644 --- a/src/duckdb/src/storage/compression/rle.cpp +++ b/src/duckdb/src/storage/compression/rle.cpp @@ -57,11 +57,14 @@ struct RLEState { } else { // the values are different // issue the callback on the last value - Flush(); + // edge case: if a value has exactly 2^16 repeated values, we can end up here with last_seen_count = 0 + if (last_seen_count > 0) { + Flush(); + seen_count++; + } // increment the seen_count and put the new value into the RLE slot last_value = data[idx]; - seen_count++; last_seen_count = 1; } } else { @@ -147,8 +150,8 @@ struct RLECompressState : public CompressionState { auto &db = checkpointer.GetDatabase(); auto &type = checkpointer.GetType(); - auto column_segment = - ColumnSegment::CreateTransientSegment(db, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + auto column_segment = ColumnSegment::CreateTransientSegment(db, function, type, row_start, info.GetBlockSize(), + info.GetBlockSize()); column_segment->function = function; current_segment = std::move(column_segment); @@ -202,7 +205,7 @@ struct RLECompressState : public CompressionState { handle.Destroy(); auto &state = checkpointer.GetCheckpointState(); - state.FlushSegment(std::move(current_segment), total_segment_size); + state.FlushSegment(std::move(current_segment), std::move(handle), total_segment_size); } void Finalize() { @@ -256,26 +259,43 @@ struct RLEScanState : public SegmentScanState { D_ASSERT(rle_count_offset <= segment.GetBlockManager().GetBlockSize()); } + inline void SkipInternal(rle_count_t *index_pointer, idx_t skip_count) { + while (skip_count > 0) { + rle_count_t run_end = index_pointer[entry_pos]; + idx_t skip_amount = MinValue(skip_count, run_end - position_in_entry); + + skip_count -= skip_amount; + position_in_entry += skip_amount; + if (ExhaustedRun(index_pointer)) { + ForwardToNextRun(); + } + } + } + void Skip(ColumnSegment &segment, idx_t skip_count) { auto data = handle.Ptr() + segment.GetBlockOffset(); auto index_pointer = reinterpret_cast(data + rle_count_offset); + SkipInternal(index_pointer, skip_count); + } - for (idx_t i = 0; i < skip_count; i++) { - // assign the current value - position_in_entry++; - if (position_in_entry >= index_pointer[entry_pos]) { - // handled all entries in this RLE value - // move to the next entry - entry_pos++; - position_in_entry = 0; - } - } + inline void ForwardToNextRun() { + // handled all entries in this RLE value + // move to the next entry + entry_pos++; + position_in_entry = 0; + } + + inline bool ExhaustedRun(rle_count_t *index_pointer) { + return position_in_entry >= index_pointer[entry_pos]; } BufferHandle handle; idx_t entry_pos; idx_t position_in_entry; uint32_t rle_count_offset; + //! If we are running a filter over the column - the runs that match the filter + unsafe_unique_array matching_runs; + idx_t matching_run_count = 0; }; template @@ -309,19 +329,6 @@ static bool CanEmitConstantVector(idx_t position, idx_t run_length, idx_t scan_c return remaining_in_run >= scan_count; } -template -inline static void ForwardToNextRun(RLEScanState &scan_state) { - // handled all entries in this RLE value - // move to the next entry - scan_state.entry_pos++; - scan_state.position_in_entry = 0; -} - -template -inline static bool ExhaustedRun(RLEScanState &scan_state, rle_count_t *index_pointer) { - return scan_state.position_in_entry >= index_pointer[scan_state.entry_pos]; -} - template static void RLEScanConstant(RLEScanState &scan_state, rle_count_t *index_pointer, T *data_pointer, idx_t scan_count, Vector &result) { @@ -329,8 +336,8 @@ static void RLEScanConstant(RLEScanState &scan_state, rle_count_t *index_poin auto result_data = ConstantVector::GetData(result); result_data[0] = data_pointer[scan_state.entry_pos]; scan_state.position_in_entry += scan_count; - if (ExhaustedRun(scan_state, index_pointer)) { - ForwardToNextRun(scan_state); + if (scan_state.ExhaustedRun(index_pointer)) { + scan_state.ForwardToNextRun(); } return; } @@ -353,13 +360,27 @@ void RLEScanPartialInternal(ColumnSegment &segment, ColumnScanState &state, idx_ auto result_data = FlatVector::GetData(result); result.SetVectorType(VectorType::FLAT_VECTOR); - for (idx_t i = 0; i < scan_count; i++) { - // assign the current value - result_data[result_offset + i] = data_pointer[scan_state.entry_pos]; - scan_state.position_in_entry++; - if (ExhaustedRun(scan_state, index_pointer)) { - ForwardToNextRun(scan_state); + + idx_t result_end = result_offset + scan_count; + while (result_offset < result_end) { + rle_count_t run_end = index_pointer[scan_state.entry_pos]; + idx_t run_count = run_end - scan_state.position_in_entry; + idx_t remaining_scan_count = result_end - result_offset; + T element = data_pointer[scan_state.entry_pos]; + if (DUCKDB_UNLIKELY(run_count > remaining_scan_count)) { + for (idx_t i = 0; i < remaining_scan_count; i++) { + result_data[result_offset + i] = element; + } + scan_state.position_in_entry += remaining_scan_count; + break; + } + + for (idx_t i = 0; i < run_count; i++) { + result_data[result_offset + i] = element; } + + result_offset += run_count; + scan_state.ForwardToNextRun(); } } @@ -374,6 +395,156 @@ void RLEScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, V RLEScanPartialInternal(segment, state, scan_count, result, 0); } +//===--------------------------------------------------------------------===// +// Select +//===--------------------------------------------------------------------===// +template +void RLESelect(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, + const SelectionVector &sel, idx_t sel_count) { + auto &scan_state = state.scan_state->Cast>(); + + auto data = scan_state.handle.Ptr() + segment.GetBlockOffset(); + auto data_pointer = reinterpret_cast(data + RLEConstants::RLE_HEADER_SIZE); + auto index_pointer = reinterpret_cast(data + scan_state.rle_count_offset); + + // If we are scanning an entire Vector and it contains only a single run we don't need to select at all + if (CanEmitConstantVector(scan_state.position_in_entry, index_pointer[scan_state.entry_pos], vector_count)) { + RLEScanConstant(scan_state, index_pointer, data_pointer, vector_count, result); + return; + } + + auto result_data = FlatVector::GetData(result); + result.SetVectorType(VectorType::FLAT_VECTOR); + + idx_t prev_idx = 0; + for (idx_t i = 0; i < sel_count; i++) { + auto next_idx = sel.get_index(i); + if (next_idx < prev_idx) { + throw InternalException("Error in RLESelect - selection vector indices are not ordered"); + } + // skip forward to the next index + scan_state.SkipInternal(index_pointer, next_idx - prev_idx); + // read the element + result_data[i] = data_pointer[scan_state.entry_pos]; + // move the next to the prev + prev_idx = next_idx; + } + // skip the tail + scan_state.SkipInternal(index_pointer, vector_count - prev_idx); +} + +//===--------------------------------------------------------------------===// +// Filter +//===--------------------------------------------------------------------===// +template +void RLEFilter(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, Vector &result, SelectionVector &sel, + idx_t &sel_count, const TableFilter &filter) { + auto &scan_state = state.scan_state->Cast>(); + + auto data = scan_state.handle.Ptr() + segment.GetBlockOffset(); + auto data_pointer = reinterpret_cast(data + RLEConstants::RLE_HEADER_SIZE); + auto index_pointer = reinterpret_cast(data + scan_state.rle_count_offset); + + auto total_run_count = (scan_state.rle_count_offset - RLEConstants::RLE_HEADER_SIZE) / sizeof(T); + if (!scan_state.matching_runs) { + // we haven't applied the filter yet + // apply the filter to all RLE values at once + + // initialize the filter set to all false (all runs are filtered out) + scan_state.matching_runs = make_unsafe_uniq_array(total_run_count); + memset(scan_state.matching_runs.get(), 0, sizeof(bool) * total_run_count); + + // execute the filter over all runs at once + Vector run_vector(result.GetType(), data_ptr_cast(data_pointer)); + + UnifiedVectorFormat run_format; + run_vector.ToUnifiedFormat(total_run_count, run_format); + + SelectionVector run_matches; + scan_state.matching_run_count = total_run_count; + ColumnSegment::FilterSelection(run_matches, run_vector, run_format, filter, total_run_count, + scan_state.matching_run_count); + + // for any runs that pass the filter - set the matches to true + for (idx_t i = 0; i < scan_state.matching_run_count; i++) { + auto idx = run_matches.get_index(i); + scan_state.matching_runs[idx] = true; + } + } + if (scan_state.matching_run_count == 0) { + // early-out, no runs match the filter so the filter can never pass + sel_count = 0; + return; + } + // scan (the subset of) the matching runs AND set the output selection vector with the rows that match + auto result_data = FlatVector::GetData(result); + result.SetVectorType(VectorType::FLAT_VECTOR); + + idx_t matching_count = 0; + SelectionVector matching_sel(sel_count); + if (!sel.IsSet()) { + // no selection vector yet - fast path + // this is essentially the normal scan, but we apply the filter and fill the selection vector + idx_t result_offset = 0; + idx_t result_end = sel_count; + while (result_offset < result_end) { + rle_count_t run_end = index_pointer[scan_state.entry_pos]; + idx_t run_count = run_end - scan_state.position_in_entry; + idx_t remaining_scan_count = result_end - result_offset; + // the run is scanned - scan it + T element = data_pointer[scan_state.entry_pos]; + if (DUCKDB_UNLIKELY(run_count > remaining_scan_count)) { + if (scan_state.matching_runs[scan_state.entry_pos]) { + for (idx_t i = 0; i < remaining_scan_count; i++) { + result_data[result_offset + i] = element; + matching_sel.set_index(matching_count++, result_offset + i); + } + } + scan_state.position_in_entry += remaining_scan_count; + break; + } + + if (scan_state.matching_runs[scan_state.entry_pos]) { + for (idx_t i = 0; i < run_count; i++) { + result_data[result_offset + i] = element; + matching_sel.set_index(matching_count++, result_offset + i); + } + } + + result_offset += run_count; + scan_state.ForwardToNextRun(); + } + } else { + // we already have a selection applied - this is more complex since we need to merge it with our filter + // use a simpler (but slower) approach + idx_t prev_idx = 0; + for (idx_t i = 0; i < sel_count; i++) { + auto read_idx = sel.get_index(i); + if (read_idx < prev_idx) { + throw InternalException("Error in RLEFilter - selection vector indices are not ordered"); + } + // skip forward to the next index + scan_state.SkipInternal(index_pointer, read_idx - prev_idx); + prev_idx = read_idx; + if (!scan_state.matching_runs[scan_state.entry_pos]) { + // this run is filtered out - we don't need to scan it + continue; + } + // the run is not filtered out - read the element + result_data[read_idx] = data_pointer[scan_state.entry_pos]; + matching_sel.set_index(matching_count++, read_idx); + } + // skip the tail + scan_state.SkipInternal(index_pointer, vector_count - prev_idx); + } + + // set up the filter result + if (matching_count != sel_count) { + sel.Initialize(matching_sel); + sel_count = matching_count; + } +} + //===--------------------------------------------------------------------===// // Fetch //===--------------------------------------------------------------------===// @@ -396,7 +567,9 @@ CompressionFunction GetRLEFunction(PhysicalType data_type) { return CompressionFunction(CompressionType::COMPRESSION_RLE, data_type, RLEInitAnalyze, RLEAnalyze, RLEFinalAnalyze, RLEInitCompression, RLECompress, RLEFinalizeCompress, - RLEInitScan, RLEScan, RLEScanPartial, RLEFetchRow, RLESkip); + RLEInitScan, RLEScan, RLEScanPartial, RLEFetchRow, RLESkip, nullptr, + nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, RLESelect, + RLEFilter); } CompressionFunction RLEFun::GetFunction(PhysicalType type) { diff --git a/src/duckdb/src/storage/compression/roaring/analyze.cpp b/src/duckdb/src/storage/compression/roaring/analyze.cpp new file mode 100644 index 00000000..f5a49eb2 --- /dev/null +++ b/src/duckdb/src/storage/compression/roaring/analyze.cpp @@ -0,0 +1,177 @@ +#include "duckdb/storage/compression/roaring/roaring.hpp" +#include "duckdb/storage/compression/roaring/appender.hpp" + +#include "duckdb/common/limits.hpp" +#include "duckdb/common/likely.hpp" +#include "duckdb/common/numeric_utils.hpp" +#include "duckdb/function/compression/compression.hpp" +#include "duckdb/function/compression_function.hpp" +#include "duckdb/main/config.hpp" +#include "duckdb/storage/buffer_manager.hpp" +#include "duckdb/storage/table/column_data_checkpointer.hpp" +#include "duckdb/storage/table/column_segment.hpp" +#include "duckdb/storage/table/scan_state.hpp" +#include "duckdb/storage/segment/uncompressed.hpp" +#include "duckdb/common/fast_mem.hpp" +#include "duckdb/common/bitpacking.hpp" + +namespace duckdb { + +namespace roaring { + +static unsafe_unique_array CreateBitmaskTable() { + unsafe_unique_array result; + result = make_unsafe_uniq_array_uninitialized(NumericLimits::Maximum() + 1); + + for (uint16_t val = 0; val < NumericLimits::Maximum() + 1; val++) { + bool previous_bit; + auto &entry = result[val]; + entry.valid_count = 0; + entry.run_count = 0; + for (uint8_t i = 0; i < 8; i++) { + const bool bit_set = val & (1 << i); + if (!i) { + entry.first_bit_set = bit_set; + } else if (i == 7) { + entry.last_bit_set = bit_set; + } + entry.valid_count += bit_set; + + if (i && !bit_set && previous_bit == true) { + entry.run_count++; + } + previous_bit = bit_set; + } + } + + return result; +} + +//===--------------------------------------------------------------------===// +// Analyze +//===--------------------------------------------------------------------===// +RoaringAnalyzeState::RoaringAnalyzeState(const CompressionInfo &info) + : AnalyzeState(info), bitmask_table(CreateBitmaskTable()) { +} + +void RoaringAnalyzeState::HandleByte(RoaringAnalyzeState &state, uint8_t array_index) { + auto bit_info = state.bitmask_table[static_cast(array_index)]; + + state.run_count += + bit_info.run_count + (bit_info.first_bit_set == false && (!state.count || state.last_bit_set == true)); + state.one_count += bit_info.valid_count; + D_ASSERT(bit_info.valid_count <= 8); + state.zero_count += 8 - bit_info.valid_count; + state.last_bit_set = bit_info.last_bit_set; + state.count += 8; +} + +static inline void HandleBit(RoaringAnalyzeState &state, bool bit_set) { + if (!bit_set && (state.count == 0 || state.last_bit_set == true)) { + state.run_count++; + } + state.one_count += bit_set; + state.zero_count += !bit_set; + state.last_bit_set = bit_set; + state.count++; +} + +void RoaringAnalyzeState::HandleRaggedByte(RoaringAnalyzeState &state, uint8_t array_index, idx_t relevant_bits) { + D_ASSERT(relevant_bits <= 8); + for (idx_t i = 0; i < relevant_bits; i++) { + const bool bit_set = array_index & (1 << i); + HandleBit(state, bit_set); + } +} + +void RoaringAnalyzeState::HandleAllValid(RoaringAnalyzeState &state, idx_t amount) { + state.one_count += amount; + state.last_bit_set = true; + state.count += amount; +} + +void RoaringAnalyzeState::HandleNoneValid(RoaringAnalyzeState &state, idx_t amount) { + if (!state.count || (state.last_bit_set != false)) { + state.run_count++; + } + state.zero_count += amount; + state.last_bit_set = false; + state.count += amount; +} + +idx_t RoaringAnalyzeState::Count(RoaringAnalyzeState &state) { + return state.count; +} + +void RoaringAnalyzeState::Flush(RoaringAnalyzeState &state) { + state.FlushContainer(); +} + +bool RoaringAnalyzeState::HasEnoughSpaceInSegment(idx_t required_space) { + D_ASSERT(space_used <= info.GetBlockSize()); + idx_t remaining_space = info.GetBlockSize() - space_used; + if (required_space > remaining_space) { + return false; + } + return true; +} + +void RoaringAnalyzeState::FlushSegment() { + if (!current_count) { + D_ASSERT(!space_used); + return; + } + metadata_collection.FlushSegment(); + total_size += space_used; + space_used = 0; + current_count = 0; + segment_count++; +} + +ContainerMetadata RoaringAnalyzeState::GetResult() { + return ContainerMetadata::CreateMetadata(count, zero_count, one_count, run_count); +} + +void RoaringAnalyzeState::FlushContainer() { + if (!count) { + return; + } + auto metadata = GetResult(); + idx_t runs_count = metadata_collection.GetRunContainerCount(); + idx_t arrays_count = metadata_collection.GetArrayAndBitsetContainerCount(); + + if (metadata.IsRun()) { + runs_count++; + } else { + arrays_count++; + } + + idx_t required_space = metadata_collection.GetMetadataSize(runs_count + arrays_count, runs_count, arrays_count); + + required_space += metadata.GetDataSizeInBytes(count); + if (!HasEnoughSpaceInSegment(required_space)) { + FlushSegment(); + } + container_metadata.push_back(metadata); + metadata_collection.AddMetadata(metadata); + space_used += required_space; + current_count += count; + + // Reset the container analyze state + one_count = 0; + zero_count = 0; + run_count = 0; + last_bit_set = false; + count = 0; +} + +void RoaringAnalyzeState::Analyze(Vector &input, idx_t count) { + auto &self = *this; + + RoaringStateAppender::AppendVector(self, input, count); + total_count += count; +} + +} // namespace roaring + +} // namespace duckdb diff --git a/src/duckdb/src/storage/compression/roaring/common.cpp b/src/duckdb/src/storage/compression/roaring/common.cpp new file mode 100644 index 00000000..709b13f3 --- /dev/null +++ b/src/duckdb/src/storage/compression/roaring/common.cpp @@ -0,0 +1,282 @@ +#include "duckdb/storage/compression/roaring/roaring.hpp" + +#include "duckdb/common/limits.hpp" +#include "duckdb/common/likely.hpp" +#include "duckdb/common/numeric_utils.hpp" +#include "duckdb/function/compression/compression.hpp" +#include "duckdb/function/compression_function.hpp" +#include "duckdb/main/config.hpp" +#include "duckdb/storage/buffer_manager.hpp" +#include "duckdb/storage/table/column_data_checkpointer.hpp" +#include "duckdb/storage/table/column_segment.hpp" +#include "duckdb/storage/table/scan_state.hpp" +#include "duckdb/storage/segment/uncompressed.hpp" +#include "duckdb/common/fast_mem.hpp" +#include "duckdb/common/bitpacking.hpp" + +/* +Data layout per segment: + + Offsets ++--------------------------------------+ +| +------------------------------+ | +| | uint64_t metadata_offset | | +| +------------------------------+ | ++--------------------------------------+ + + [Container Data]+ ++------------------------------------------------------+ +| Uncompressed Array Container | +| +----------------------------------------------+ | +| | uint16_t values[] | | +| +----------------------------------------------+ | +| | +| Compressed Array Container | +| +----------------------------------------------+ | +| | uint8_t counts[COMPRESSED_SEGMENT_COUNT] | | +| | uint8_t values[] | | +| +----------------------------------------------+ | ++------------------------------------------------------+ +| Bitset Container | +| +----------------------------------------------+ | +| | uint32_t page_offset[] | | +| | uint64_t uncompressed_size[] | | +| | uint64_t compressed_size[] | | +| +----------------------------------------------+ | +| | ++------------------------------------------------------+ +| Uncompressed Run Container | +| +----------------------------------------------+ | +| | (uint16_t, uint16_t) runs[] | | +| +----------------------------------------------+ | +| | +| Compressed Run Container | +| +----------------------------------------------+ | +| | uint8_t counts[COMPRESSED_SEGMENT_COUNT] | | +| | (uint8_t, uint8_t) runs[] | | +| +----------------------------------------------+ | ++------------------------------------------------------+ + + Container Metadata ++--------------------------------------------+ +| Container Types | +| +------------------------------------+ | +| | uint8_t:1 is_run | | +| | uint8_t:1 is_inverted | | +| +------------------------------------+ | +| | +| Run Container Sizes | +| +------------------------------------+ | +| | uint8_t:7 size | | +| +------------------------------------+ | +| | +| Array/Bitset Container Sizes | +| +------------------------------------+ | +| | uint8_t:8 size | | +| +------------------------------------+ | ++--------------------------------------------+ +*/ + +namespace duckdb { + +namespace roaring { + +// Set all the bits from start (inclusive) to end (exclusive) to 0 +void SetInvalidRange(ValidityMask &result, idx_t start, idx_t end) { + if (end <= start) { + throw InternalException("SetInvalidRange called with end (%d) <= start (%d)", end, start); + } + result.EnsureWritable(); + auto result_data = (validity_t *)result.GetData(); + +#ifdef DEBUG + ValidityMask copy_for_verification(result.Capacity()); + copy_for_verification.EnsureWritable(); + for (idx_t i = 0; + i < AlignValue(result.Capacity()) / ValidityMask::BITS_PER_VALUE; i++) { + copy_for_verification.GetData()[i] = result.GetData()[i]; + } +#endif + idx_t index = start; + + if ((index % ValidityMask::BITS_PER_VALUE) != 0) { + // Adjust the high bits of the first entry + + // +======================================+ + // |xxxxxxxxxxxxxxxxxxxxxxxxx| | + // +======================================+ + // + // 'x': bits to set to 0 in the result + + idx_t right_bits = index % ValidityMask::BITS_PER_VALUE; + idx_t bits_to_set = ValidityMask::BITS_PER_VALUE - right_bits; + idx_t left_bits = 0; + if (index + bits_to_set > end) { + // Limit the amount of bits to set + left_bits = (index + bits_to_set) - end; + bits_to_set = end - index; + } + + // Prepare the mask + validity_t mask = ValidityUncompressed::LOWER_MASKS[right_bits]; + if (left_bits) { + // Mask off the part that we don't want to touch (if the range doesn't fully cover the bits) + mask |= ValidityUncompressed::UPPER_MASKS[left_bits]; + } + + idx_t entry_idx = index / ValidityMask::BITS_PER_VALUE; + index += bits_to_set; + result_data[entry_idx] &= mask; + } + + idx_t remaining_bits = end - index; + idx_t full_entries = remaining_bits / ValidityMask::BITS_PER_VALUE; + idx_t entry_idx = index / ValidityMask::BITS_PER_VALUE; + // Set all the entries that are fully covered by the range to 0 + for (idx_t i = 0; i < full_entries; i++) { + result_data[entry_idx + i] = (validity_t)0; + } + + if ((remaining_bits % ValidityMask::BITS_PER_VALUE) != 0) { + // The last entry touched by the range is only partially covered + + // +======================================+ + // | |xxxxxxxxxxxx| + // +======================================+ + // + // 'x': bits to set to 0 in the result + + idx_t bits_to_set = end % ValidityMask::BITS_PER_VALUE; + idx_t left_bits = ValidityMask::BITS_PER_VALUE - bits_to_set; + validity_t mask = ValidityUncompressed::UPPER_MASKS[left_bits]; + idx_t entry_idx = end / ValidityMask::BITS_PER_VALUE; + result_data[entry_idx] &= mask; + } + +#ifdef DEBUG + D_ASSERT(end <= result.Capacity()); + for (idx_t i = 0; i < result.Capacity(); i++) { + if (i >= start && i < end) { + D_ASSERT(!result.RowIsValidUnsafe(i)); + } else { + // Ensure no others bits are touched by this method + D_ASSERT(copy_for_verification.RowIsValidUnsafe(i) == result.RowIsValidUnsafe(i)); + } + } +#endif +} + +unique_ptr RoaringInitAnalyze(ColumnData &col_data, PhysicalType type) { + CompressionInfo info(col_data.GetBlockManager().GetBlockSize()); + auto state = make_uniq(info); + + return std::move(state); +} + +bool RoaringAnalyze(AnalyzeState &state, Vector &input, idx_t count) { + auto &analyze_state = state.Cast(); + analyze_state.Analyze(input, count); + return true; +} + +idx_t RoaringFinalAnalyze(AnalyzeState &state) { + auto &roaring_state = state.Cast(); + roaring_state.FlushContainer(); + roaring_state.FlushSegment(); + + constexpr const double ROARING_COMPRESS_PENALTY = 2.0; + return LossyNumericCast((double)roaring_state.total_size * ROARING_COMPRESS_PENALTY); +} + +unique_ptr RoaringInitCompression(ColumnDataCheckpointer &checkpointer, + unique_ptr state) { + return make_uniq(checkpointer, std::move(state)); +} + +void RoaringCompress(CompressionState &state_p, Vector &scan_vector, idx_t count) { + auto &state = state_p.Cast(); + state.Compress(scan_vector, count); +} + +void RoaringFinalizeCompress(CompressionState &state_p) { + auto &state = state_p.Cast(); + state.Finalize(); +} + +unique_ptr RoaringInitScan(ColumnSegment &segment) { + auto result = make_uniq(segment); + return std::move(result); +} + +//===--------------------------------------------------------------------===// +// Scan base data +//===--------------------------------------------------------------------===// +void RoaringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, + idx_t result_offset) { + auto &scan_state = state.scan_state->Cast(); + auto start = segment.GetRelativeIndex(state.row_index); + + scan_state.ScanPartial(start, result, result_offset, scan_count); +} + +void RoaringScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result) { + RoaringScanPartial(segment, state, scan_count, result, 0); +} + +//===--------------------------------------------------------------------===// +// Fetch +//===--------------------------------------------------------------------===// +void RoaringFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row_id, Vector &result, idx_t result_idx) { + RoaringScanState scan_state(segment); + + idx_t internal_offset; + idx_t container_idx = scan_state.GetContainerIndex(static_cast(row_id), internal_offset); + auto &container_state = scan_state.LoadContainer(container_idx, internal_offset); + + scan_state.ScanInternal(container_state, 1, result, result_idx); +} + +void RoaringSkip(ColumnSegment &segment, ColumnScanState &state, idx_t skip_count) { + // NO OP + // We skip inside scan instead, if the container boundary gets crossed we can avoid a bunch of work anyways + return; +} + +} // namespace roaring + +unique_ptr RoaringInitSegment(ColumnSegment &segment, block_id_t block_id, + optional_ptr segment_state) { + // 'ValidityInitSegment' is used normally, which memsets the page to all bits set. + return nullptr; +} + +//===--------------------------------------------------------------------===// +// Get Function +//===--------------------------------------------------------------------===// +CompressionFunction GetCompressionFunction(PhysicalType data_type) { + return CompressionFunction(CompressionType::COMPRESSION_ROARING, data_type, roaring::RoaringInitAnalyze, + roaring::RoaringAnalyze, roaring::RoaringFinalAnalyze, roaring::RoaringInitCompression, + roaring::RoaringCompress, roaring::RoaringFinalizeCompress, roaring::RoaringInitScan, + roaring::RoaringScan, roaring::RoaringScanPartial, roaring::RoaringFetchRow, + roaring::RoaringSkip, RoaringInitSegment); +} + +CompressionFunction RoaringCompressionFun::GetFunction(PhysicalType type) { + switch (type) { + case PhysicalType::BIT: + return GetCompressionFunction(type); + default: + throw InternalException("Unsupported type for Roaring"); + } +} + +bool RoaringCompressionFun::TypeIsSupported(const PhysicalType physical_type) { + switch (physical_type) { + case PhysicalType::BIT: + return true; + default: + return false; + } +} + +} // namespace duckdb diff --git a/src/duckdb/src/storage/compression/roaring/compress.cpp b/src/duckdb/src/storage/compression/roaring/compress.cpp new file mode 100644 index 00000000..1430178d --- /dev/null +++ b/src/duckdb/src/storage/compression/roaring/compress.cpp @@ -0,0 +1,479 @@ +#include "duckdb/storage/compression/roaring/roaring.hpp" +#include "duckdb/storage/compression/roaring/appender.hpp" + +#include "duckdb/common/limits.hpp" +#include "duckdb/common/likely.hpp" +#include "duckdb/common/numeric_utils.hpp" +#include "duckdb/function/compression/compression.hpp" +#include "duckdb/function/compression_function.hpp" +#include "duckdb/main/config.hpp" +#include "duckdb/storage/buffer_manager.hpp" +#include "duckdb/storage/table/column_data_checkpointer.hpp" +#include "duckdb/storage/table/column_segment.hpp" +#include "duckdb/storage/table/scan_state.hpp" +#include "duckdb/storage/segment/uncompressed.hpp" +#include "duckdb/common/fast_mem.hpp" +#include "duckdb/common/bitpacking.hpp" + +namespace duckdb { + +namespace roaring { + +ContainerCompressionState::ContainerCompressionState() { + Reset(); +} + +inline void AppendBitset(ContainerCompressionState &state, bool null, uint16_t amount) { + D_ASSERT(state.uncompressed); + if (null) { + ValidityMask mask(state.uncompressed, ROARING_CONTAINER_SIZE); + SetInvalidRange(mask, state.appended_count, state.appended_count + amount); + } +} + +inline void AppendRun(ContainerCompressionState &state, bool null, uint16_t amount) { + // Adjust the run + auto run_idx = state.run_idx; + auto appended_count = state.appended_count; + if (!null && run_idx < MAX_RUN_IDX && appended_count && (null != state.last_is_null)) { + if (run_idx < COMPRESSED_RUN_THRESHOLD) { + auto &last_run = state.runs[run_idx]; + // End the last run + last_run.length = (appended_count - last_run.start) - 1; + } + state.compressed_runs[(run_idx * 2) + 1] = static_cast(appended_count & (COMPRESSED_SEGMENT_SIZE - 1)); + state.run_counts[appended_count >> COMPRESSED_SEGMENT_SHIFT_AMOUNT]++; + state.run_idx++; + } else if (null && run_idx < MAX_RUN_IDX && (!appended_count || null != state.last_is_null)) { + if (run_idx < COMPRESSED_RUN_THRESHOLD) { + auto ¤t_run = state.runs[run_idx]; + // Initialize a new run + current_run.start = appended_count; + } + state.compressed_runs[(run_idx * 2) + 0] = static_cast(appended_count & (COMPRESSED_SEGMENT_SIZE - 1)); + state.run_counts[appended_count >> COMPRESSED_SEGMENT_SHIFT_AMOUNT]++; + } +} + +template +inline void AppendToArray(ContainerCompressionState &state, bool null, uint16_t amount) { + if (DUCKDB_LIKELY(INVERTED != null)) { + return; + } + + auto current_array_idx = state.array_idx[null]; + if (current_array_idx + amount > MAX_ARRAY_IDX) { + return; + } + auto appended_count = state.appended_count; + auto array_count = state.array_counts[null]; + auto compressed_array = state.compressed_arrays[null]; + uint16_t appended = 0; + while (appended < amount) { + uint16_t remaining = amount - appended; + uint8_t segment_offset = appended ? 0 : (appended_count + appended) & (COMPRESSED_SEGMENT_SIZE - 1); + uint8_t to_append = + static_cast(MinValue(remaining, COMPRESSED_SEGMENT_SIZE - segment_offset)); + for (uint8_t i = 0; i < to_append; i++) { + auto index = current_array_idx + appended + i; + compressed_array[index] = segment_offset + i; + } + + idx_t segment_index = (appended_count + appended) / COMPRESSED_SEGMENT_SIZE; + array_count[segment_index] += to_append; + appended += to_append; + } + + if (current_array_idx + amount < COMPRESSED_ARRAY_THRESHOLD) { + auto &array = state.arrays[null]; + for (uint16_t i = 0; i < amount; i++) { + array[current_array_idx + i] = appended_count + i; + } + } + state.array_idx[null] += amount; +} + +void ContainerCompressionState::Append(bool null, uint16_t amount) { + append_function(*this, null, amount); + last_is_null = null; + null_count += null * amount; + appended_count += amount; +} + +void ContainerCompressionState::OverrideArray(data_ptr_t destination, bool nulls, idx_t count) { + if (nulls) { + append_function = AppendToArray; + } else { + append_function = AppendToArray; + } + + if (count >= COMPRESSED_ARRAY_THRESHOLD) { + memset(destination, 0, sizeof(uint8_t) * COMPRESSED_SEGMENT_COUNT); + array_counts[nulls] = reinterpret_cast(destination); + destination += sizeof(uint8_t) * COMPRESSED_SEGMENT_COUNT; + compressed_arrays[nulls] = reinterpret_cast(destination); + } else { + arrays[nulls] = reinterpret_cast(destination); + } +} + +void ContainerCompressionState::OverrideRun(data_ptr_t destination, idx_t count) { + append_function = AppendRun; + + if (count >= COMPRESSED_RUN_THRESHOLD) { + memset(destination, 0, sizeof(uint8_t) * COMPRESSED_SEGMENT_COUNT); + run_counts = reinterpret_cast(destination); + destination += sizeof(uint8_t) * COMPRESSED_SEGMENT_COUNT; + compressed_runs = reinterpret_cast(destination); + } else { + runs = reinterpret_cast(destination); + } +} + +void ContainerCompressionState::OverrideUncompressed(data_ptr_t destination) { + append_function = AppendBitset; + uncompressed = reinterpret_cast(destination); +} + +void ContainerCompressionState::Finalize() { + D_ASSERT(!finalized); + if (appended_count && last_is_null && run_idx < MAX_RUN_IDX) { + if (run_idx < COMPRESSED_RUN_THRESHOLD) { + auto &last_run = runs[run_idx]; + // End the last run + last_run.length = (appended_count - last_run.start); + } + compressed_runs[(run_idx * 2) + 1] = static_cast(appended_count % COMPRESSED_SEGMENT_SIZE); + if (appended_count != ROARING_CONTAINER_SIZE) { + run_counts[appended_count >> COMPRESSED_SEGMENT_SHIFT_AMOUNT]++; + } + run_idx++; + } + finalized = true; +} + +ContainerMetadata ContainerCompressionState::GetResult() { + if (uncompressed) { + return ContainerMetadata::BitsetContainer(appended_count); + } + D_ASSERT(finalized); + return ContainerMetadata::CreateMetadata(appended_count, array_idx[NULLS], array_idx[NON_NULLS], run_idx); +} + +void ContainerCompressionState::Reset() { + length = 0; + + appended_count = 0; + null_count = 0; + run_idx = 0; + array_idx[NON_NULLS] = 0; + array_idx[NULLS] = 0; + finalized = false; + last_is_null = false; + + // Reset the arrays + runs + arrays[NULLS] = base_arrays[NULLS]; + arrays[NON_NULLS] = base_arrays[NON_NULLS]; + runs = base_runs; + + compressed_arrays[NULLS] = base_compressed_arrays[NULLS]; + compressed_arrays[NON_NULLS] = base_compressed_arrays[NON_NULLS]; + compressed_runs = base_compressed_runs; + + array_counts[NULLS] = base_array_counts[NULLS]; + array_counts[NON_NULLS] = base_array_counts[NON_NULLS]; + run_counts = base_run_counts; + + memset(array_counts[NULLS], 0, sizeof(uint8_t) * COMPRESSED_SEGMENT_COUNT); + memset(array_counts[NON_NULLS], 0, sizeof(uint8_t) * COMPRESSED_SEGMENT_COUNT); + memset(run_counts, 0, sizeof(uint8_t) * COMPRESSED_SEGMENT_COUNT); + uncompressed = nullptr; +} + +//===--------------------------------------------------------------------===// +// Compress +//===--------------------------------------------------------------------===// +RoaringCompressState::RoaringCompressState(ColumnDataCheckpointer &checkpointer, + unique_ptr analyze_state_p) + : CompressionState(analyze_state_p->info), owned_analyze_state(std::move(analyze_state_p)), + analyze_state(owned_analyze_state->Cast()), container_state(), + container_metadata(analyze_state.container_metadata), checkpointer(checkpointer), + function(checkpointer.GetCompressionFunction(CompressionType::COMPRESSION_ROARING)) { + CreateEmptySegment(checkpointer.GetRowGroup().start); + total_count = 0; + InitializeContainer(); +} + +idx_t RoaringCompressState::GetContainerIndex() { + idx_t index = total_count / ROARING_CONTAINER_SIZE; + return index; +} + +idx_t RoaringCompressState::GetRemainingSpace() { + return static_cast(metadata_ptr - data_ptr); +} + +bool RoaringCompressState::CanStore(idx_t container_size, const ContainerMetadata &metadata) { + idx_t required_space = 0; + if (metadata.IsUncompressed()) { + // Account for the alignment we might need for this container + required_space += (AlignValue(reinterpret_cast(data_ptr))) - reinterpret_cast(data_ptr); + } + required_space += metadata.GetDataSizeInBytes(container_size); + + idx_t runs_count = metadata_collection.GetRunContainerCount(); + idx_t arrays_count = metadata_collection.GetArrayAndBitsetContainerCount(); +#ifdef DEBUG + idx_t current_size = metadata_collection.GetMetadataSize(runs_count + arrays_count, runs_count, arrays_count); + (void)current_size; + D_ASSERT(required_space + current_size <= GetRemainingSpace()); +#endif + if (metadata.IsRun()) { + runs_count++; + } else { + arrays_count++; + } + idx_t metadata_size = metadata_collection.GetMetadataSize(runs_count + arrays_count, runs_count, arrays_count); + required_space += metadata_size; + + if (required_space > GetRemainingSpace()) { + return false; + } + return true; +} + +void RoaringCompressState::InitializeContainer() { + if (total_count == analyze_state.total_count) { + // No more containers left + return; + } + auto container_index = GetContainerIndex(); + D_ASSERT(container_index < container_metadata.size()); + auto metadata = container_metadata[container_index]; + + idx_t container_size = AlignValue( + MinValue(analyze_state.total_count - container_state.appended_count, ROARING_CONTAINER_SIZE)); + if (!CanStore(container_size, metadata)) { + idx_t row_start = current_segment->start + current_segment->count; + FlushSegment(); + CreateEmptySegment(row_start); + } + + // Override the pointer to write directly into the block + if (metadata.IsUncompressed()) { + data_ptr = reinterpret_cast(AlignValue(reinterpret_cast(data_ptr))); + FastMemset(data_ptr, ~0, sizeof(validity_t) * (container_size / ValidityMask::BITS_PER_VALUE)); + container_state.OverrideUncompressed(data_ptr); + } else if (metadata.IsRun()) { + auto number_of_runs = metadata.NumberOfRuns(); + container_state.OverrideRun(data_ptr, number_of_runs); + } else { + auto cardinality = metadata.Cardinality(); + container_state.OverrideArray(data_ptr, metadata.IsInverted(), cardinality); + } + data_ptr += metadata.GetDataSizeInBytes(container_size); + metadata_collection.AddMetadata(metadata); +} + +void RoaringCompressState::CreateEmptySegment(idx_t row_start) { + auto &db = checkpointer.GetDatabase(); + auto &type = checkpointer.GetType(); + + auto compressed_segment = + ColumnSegment::CreateTransientSegment(db, function, type, row_start, info.GetBlockSize(), info.GetBlockSize()); + compressed_segment->function = function; + current_segment = std::move(compressed_segment); + + auto &buffer_manager = BufferManager::GetBufferManager(db); + handle = buffer_manager.Pin(current_segment->block); + data_ptr = handle.Ptr(); + data_ptr += sizeof(idx_t); + metadata_ptr = handle.Ptr() + info.GetBlockSize(); +} + +void RoaringCompressState::FlushSegment() { + auto &state = checkpointer.GetCheckpointState(); + auto base_ptr = handle.Ptr(); + // +======================================+ + // |x|ddddddddddddddd||mmm| | + // +======================================+ + + // x: metadata_offset (to the "right" of it) + // d: data of the containers + // m: metadata of the containers + + // This is after 'x' + base_ptr += sizeof(idx_t); + + // Size of the 'd' part + idx_t data_size = NumericCast(data_ptr - base_ptr); + data_size = AlignValue(data_size); + + // Size of the 'm' part + idx_t metadata_size = metadata_collection.GetMetadataSizeForSegment(); + + if (current_segment->count.load() == 0) { + D_ASSERT(metadata_size == 0); + return; + } + + idx_t serialized_metadata_size = metadata_collection.Serialize(data_ptr); + metadata_collection.FlushSegment(); + (void)serialized_metadata_size; + D_ASSERT(metadata_size == serialized_metadata_size); + idx_t metadata_start = static_cast(data_ptr - base_ptr); + Store(metadata_start, handle.Ptr()); + idx_t total_segment_size = sizeof(idx_t) + data_size + metadata_size; + state.FlushSegment(std::move(current_segment), std::move(handle), total_segment_size); +} + +void RoaringCompressState::Finalize() { + FlushContainer(); + FlushSegment(); + current_segment.reset(); +} + +void RoaringCompressState::FlushContainer() { + if (container_state.length) { + container_state.Append(!container_state.last_bit_set, container_state.length); + container_state.length = 0; + } + + if (!container_state.appended_count) { + return; + } + container_state.Finalize(); +#ifdef DEBUG + auto container_index = GetContainerIndex(); + auto metadata = container_metadata[container_index]; + + idx_t container_size = container_state.appended_count; + if (!metadata.IsUncompressed()) { + unique_ptr scan_state; + if (metadata.IsRun()) { + D_ASSERT(metadata.IsInverted()); + auto number_of_runs = metadata.NumberOfRuns(); + if (number_of_runs >= COMPRESSED_RUN_THRESHOLD) { + auto segments = container_state.run_counts; + auto data_ptr = container_state.compressed_runs; + scan_state = make_uniq(container_index, container_size, number_of_runs, + segments, data_ptr); + } else { + auto data_ptr = reinterpret_cast(container_state.runs); + scan_state = + make_uniq(container_index, container_size, number_of_runs, data_ptr); + } + } else { + auto cardinality = metadata.Cardinality(); + if (cardinality >= COMPRESSED_ARRAY_THRESHOLD) { + if (metadata.IsInverted()) { + auto segments = reinterpret_cast(container_state.array_counts[NULLS]); + auto data_ptr = reinterpret_cast(container_state.compressed_arrays[NULLS]); + scan_state = make_uniq>(container_index, container_size, + cardinality, segments, data_ptr); + } else { + auto segments = reinterpret_cast(container_state.array_counts[NON_NULLS]); + auto data_ptr = reinterpret_cast(container_state.compressed_arrays[NON_NULLS]); + scan_state = make_uniq>( + container_index, container_size, cardinality, segments, data_ptr); + } + } else { + if (metadata.IsInverted()) { + auto data_ptr = reinterpret_cast(container_state.arrays[NULLS]); + scan_state = make_uniq>(container_index, container_size, cardinality, + data_ptr); + } else { + auto data_ptr = reinterpret_cast(container_state.arrays[NON_NULLS]); + scan_state = make_uniq>(container_index, container_size, + cardinality, data_ptr); + } + } + } + scan_state->Verify(); + } + +#endif + total_count += container_state.appended_count; + bool has_nulls = container_state.null_count != 0; + bool has_non_nulls = container_state.null_count != container_state.appended_count; + if (has_nulls || container_state.uncompressed) { + current_segment->stats.statistics.SetHasNullFast(); + } + if (has_non_nulls || container_state.uncompressed) { + current_segment->stats.statistics.SetHasNoNullFast(); + } + current_segment->count += container_state.appended_count; + container_state.Reset(); +} + +void RoaringCompressState::NextContainer() { + FlushContainer(); + InitializeContainer(); +} + +void RoaringCompressState::HandleByte(RoaringCompressState &state, uint8_t array_index) { + if (array_index == NumericLimits::Maximum()) { + HandleAllValid(state, 8); + } else if (array_index == 0) { + HandleNoneValid(state, 8); + } else { + HandleRaggedByte(state, array_index, 8); + } +} + +static inline void HandleBit(RoaringCompressState &state, bool bit_set) { + auto &container_state = state.container_state; + if (container_state.length && container_state.last_bit_set != bit_set) { + container_state.Append(!container_state.last_bit_set, container_state.length); + container_state.length = 0; + } + container_state.length += 1; + container_state.last_bit_set = bit_set; +} + +void RoaringCompressState::HandleRaggedByte(RoaringCompressState &state, uint8_t array_index, idx_t relevant_bits) { + D_ASSERT(relevant_bits <= 8); + for (idx_t i = 0; i < relevant_bits; i++) { + const bool bit_set = array_index & (1 << i); + HandleBit(state, bit_set); + } +} + +void RoaringCompressState::HandleAllValid(RoaringCompressState &state, idx_t amount) { + auto &container_state = state.container_state; + if (container_state.length && container_state.last_bit_set == false) { + container_state.Append(!container_state.last_bit_set, container_state.length); + container_state.length = 0; + } + container_state.length += amount; + container_state.last_bit_set = true; +} + +void RoaringCompressState::HandleNoneValid(RoaringCompressState &state, idx_t amount) { + auto &container_state = state.container_state; + if (container_state.length && container_state.last_bit_set == true) { + container_state.Append(!container_state.last_bit_set, container_state.length); + container_state.length = 0; + } + container_state.length += amount; + container_state.last_bit_set = false; +} + +idx_t RoaringCompressState::Count(RoaringCompressState &state) { + auto &container_state = state.container_state; + // How much is appended and waiting to be appended + return container_state.appended_count + container_state.length; +} + +void RoaringCompressState::Flush(RoaringCompressState &state) { + state.NextContainer(); +} + +void RoaringCompressState::Compress(Vector &input, idx_t count) { + auto &self = *this; + RoaringStateAppender::AppendVector(self, input, count); +} + +} // namespace roaring + +} // namespace duckdb diff --git a/src/duckdb/src/storage/compression/roaring/metadata.cpp b/src/duckdb/src/storage/compression/roaring/metadata.cpp new file mode 100644 index 00000000..9322f5a3 --- /dev/null +++ b/src/duckdb/src/storage/compression/roaring/metadata.cpp @@ -0,0 +1,262 @@ +#include "duckdb/storage/compression/roaring/roaring.hpp" + +#include "duckdb/common/limits.hpp" +#include "duckdb/common/likely.hpp" +#include "duckdb/common/numeric_utils.hpp" +#include "duckdb/function/compression/compression.hpp" +#include "duckdb/function/compression_function.hpp" +#include "duckdb/main/config.hpp" +#include "duckdb/storage/buffer_manager.hpp" +#include "duckdb/storage/table/column_data_checkpointer.hpp" +#include "duckdb/storage/table/column_segment.hpp" +#include "duckdb/storage/table/scan_state.hpp" +#include "duckdb/storage/segment/uncompressed.hpp" +#include "duckdb/common/fast_mem.hpp" +#include "duckdb/common/bitpacking.hpp" + +namespace duckdb { + +namespace roaring { + +ContainerMetadata ContainerMetadata::CreateMetadata(uint16_t count, uint16_t array_null, uint16_t array_non_null, + uint16_t runs) { + const bool can_use_null_array = array_null < MAX_ARRAY_IDX; + const bool can_use_non_null_array = array_non_null < MAX_ARRAY_IDX; + + const bool can_use_run = runs < MAX_RUN_IDX; + + const bool can_use_array = can_use_null_array || can_use_non_null_array; + if (!can_use_array && !can_use_run) { + // Can not efficiently encode at all, write it as bitset + return ContainerMetadata::BitsetContainer(count); + } + uint16_t null_array_cost = array_null < COMPRESSED_ARRAY_THRESHOLD + ? array_null * sizeof(uint16_t) + : COMPRESSED_SEGMENT_COUNT + (array_null * sizeof(uint8_t)); + uint16_t non_null_array_cost = array_non_null < COMPRESSED_ARRAY_THRESHOLD + ? array_non_null * sizeof(uint16_t) + : COMPRESSED_SEGMENT_COUNT + (array_non_null * sizeof(uint8_t)); + + uint16_t lowest_array_cost = MinValue(null_array_cost, non_null_array_cost); + uint16_t lowest_run_cost = runs < COMPRESSED_RUN_THRESHOLD ? runs * sizeof(uint32_t) + : COMPRESSED_SEGMENT_COUNT + (runs * sizeof(uint16_t)); + uint16_t bitset_cost = + (AlignValue(count) / ValidityMask::BITS_PER_VALUE) * sizeof(validity_t); + if (MinValue(lowest_array_cost, lowest_run_cost) > bitset_cost) { + // The amount of values is too small, better off using bitset + // we can detect this at decompression because we know how many values are left + return ContainerMetadata::BitsetContainer(count); + } + + if (lowest_array_cost <= lowest_run_cost) { + if (array_null <= array_non_null) { + return ContainerMetadata::ArrayContainer(array_null, NULLS); + } else { + return ContainerMetadata::ArrayContainer(array_non_null, NON_NULLS); + } + } else { + return ContainerMetadata::RunContainer(runs); + } +} + +idx_t ContainerMetadata::GetDataSizeInBytes(idx_t container_size) const { + if (IsUncompressed()) { + return (container_size / ValidityMask::BITS_PER_VALUE) * sizeof(validity_t); + } + if (IsRun()) { + auto number_of_runs = NumberOfRuns(); + if (number_of_runs >= COMPRESSED_RUN_THRESHOLD) { + return COMPRESSED_SEGMENT_COUNT + (sizeof(uint8_t) * number_of_runs * 2); + } else { + return sizeof(RunContainerRLEPair) * number_of_runs; + } + } else { + auto cardinality = Cardinality(); + if (cardinality >= COMPRESSED_ARRAY_THRESHOLD) { + return COMPRESSED_SEGMENT_COUNT + (sizeof(uint8_t) * cardinality); + } else { + return sizeof(uint16_t) * cardinality; + } + } +} + +ContainerMetadataCollection::ContainerMetadataCollection() { +} + +void ContainerMetadataCollection::AddMetadata(ContainerMetadata metadata) { + if (metadata.IsRun()) { + AddRunContainer(metadata.NumberOfRuns(), metadata.IsInverted()); + } else if (metadata.IsUncompressed()) { + AddBitsetContainer(); + } else { + AddArrayContainer(metadata.Cardinality(), metadata.IsInverted()); + } +} + +idx_t ContainerMetadataCollection::GetMetadataSizeForSegment() const { + idx_t runs_count = GetRunContainerCount(); + idx_t arrays_count = GetArrayAndBitsetContainerCount(); + return GetMetadataSize(runs_count + arrays_count, runs_count, arrays_count); +} + +idx_t ContainerMetadataCollection::GetMetadataSize(idx_t container_count, idx_t run_containers, + idx_t array_containers) const { + idx_t types_size = BitpackingPrimitives::GetRequiredSize(container_count, CONTAINER_TYPE_BITWIDTH); + idx_t runs_size = BitpackingPrimitives::GetRequiredSize(run_containers, RUN_CONTAINER_SIZE_BITWIDTH); + idx_t arrays_size = sizeof(uint8_t) * array_containers; + return types_size + runs_size + arrays_size; +} + +idx_t ContainerMetadataCollection::GetRunContainerCount() const { + return runs_in_segment; +} +idx_t ContainerMetadataCollection::GetArrayAndBitsetContainerCount() const { + return arrays_in_segment; +} + +void ContainerMetadataCollection::FlushSegment() { + runs_in_segment = 0; + count_in_segment = 0; + arrays_in_segment = 0; +} + +void ContainerMetadataCollection::Reset() { + FlushSegment(); + container_type.clear(); + number_of_runs.clear(); + cardinality.clear(); +} + +// Write the metadata for the current segment +idx_t ContainerMetadataCollection::Serialize(data_ptr_t dest) const { + // Element sizes (in bits) for written metadata + // +======================================+ + // |mmmmmm|rrrrrr|aaaaaaa| | + // +======================================+ + // + // m: 2: (1: is_run, 1: is_inverted) + // r: 7: number_of_runs + // a: 8: cardinality + + idx_t types_size = BitpackingPrimitives::GetRequiredSize(count_in_segment, CONTAINER_TYPE_BITWIDTH); + idx_t runs_size = BitpackingPrimitives::GetRequiredSize(runs_in_segment, RUN_CONTAINER_SIZE_BITWIDTH); + idx_t arrays_size = sizeof(uint8_t) * arrays_in_segment; + + idx_t types_offset = container_type.size() - count_in_segment; + data_ptr_t types_data = (data_ptr_t)(container_type.data()); // NOLINT: c-style cast (for const) + BitpackingPrimitives::PackBuffer(dest, types_data + types_offset, count_in_segment, + CONTAINER_TYPE_BITWIDTH); + dest += types_size; + + if (!number_of_runs.empty()) { + idx_t runs_offset = number_of_runs.size() - runs_in_segment; + data_ptr_t run_data = (data_ptr_t)(number_of_runs.data()); // NOLINT: c-style cast (for const) + BitpackingPrimitives::PackBuffer(dest, run_data + runs_offset, runs_in_segment, + RUN_CONTAINER_SIZE_BITWIDTH); + dest += runs_size; + } + + if (!cardinality.empty()) { + idx_t arrays_offset = cardinality.size() - arrays_in_segment; + data_ptr_t arrays_data = (data_ptr_t)(cardinality.data()); // NOLINT: c-style cast (for const) + memcpy(dest, arrays_data + arrays_offset, sizeof(uint8_t) * arrays_in_segment); + } + return types_size + runs_size + arrays_size; +} + +void ContainerMetadataCollection::Deserialize(data_ptr_t src, idx_t container_count) { + container_type.resize(AlignValue(container_count)); + count_in_segment = container_count; + + // Load the types of the containers + idx_t types_size = BitpackingPrimitives::GetRequiredSize(container_type.size(), 2); + BitpackingPrimitives::UnPackBuffer(container_type.data(), src, container_count, 2, true); + src += types_size; + + // Figure out how many are run containers + idx_t runs_count = 0; + for (idx_t i = 0; i < container_count; i++) { + auto type = container_type[i]; + runs_count += ((type >> 1) & 1) == 1; + } + runs_in_segment = runs_count; + number_of_runs.resize(AlignValue(runs_count)); + cardinality.resize(container_count - runs_count); + + // Load the run containers + if (runs_count) { + idx_t runs_size = BitpackingPrimitives::GetRequiredSize(runs_count, RUN_CONTAINER_SIZE_BITWIDTH); + BitpackingPrimitives::UnPackBuffer(number_of_runs.data(), src, runs_count, RUN_CONTAINER_SIZE_BITWIDTH, + true); + src += runs_size; + } + + // Load the array/bitset containers + if (!cardinality.empty()) { + idx_t arrays_size = sizeof(uint8_t) * cardinality.size(); + arrays_in_segment = arrays_size; + memcpy(cardinality.data(), src, arrays_size); + } +} + +void ContainerMetadataCollection::AddBitsetContainer() { + AddContainerType(false, false); + cardinality.push_back(BITSET_CONTAINER_SENTINEL_VALUE); + arrays_in_segment++; + count_in_segment++; +} + +void ContainerMetadataCollection::AddArrayContainer(idx_t amount, bool is_inverted) { + AddContainerType(false, is_inverted); + D_ASSERT(amount < MAX_ARRAY_IDX); + cardinality.push_back(NumericCast(amount)); + arrays_in_segment++; + count_in_segment++; +} + +void ContainerMetadataCollection::AddRunContainer(idx_t amount, bool is_inverted) { + AddContainerType(true, is_inverted); + D_ASSERT(amount < MAX_RUN_IDX); + number_of_runs.push_back(NumericCast(amount)); + runs_in_segment++; + count_in_segment++; +} + +void ContainerMetadataCollection::AddContainerType(bool is_run, bool is_inverted) { + uint8_t type = 0; + if (is_run) { + type |= IS_RUN_FLAG; + } + if (is_inverted) { + type |= IS_INVERTED_FLAG; + } + container_type.push_back(type); +} + +ContainerMetadataCollectionScanner::ContainerMetadataCollectionScanner(ContainerMetadataCollection &collection) + : collection(collection) { +} + +ContainerMetadata ContainerMetadataCollectionScanner::GetNext() { + D_ASSERT(idx < collection.count_in_segment); + auto type = collection.container_type[idx++]; + const bool is_inverted = (type & 1) == 1; + const bool is_run = ((type >> 1) & 1) == 1; + uint8_t amount; + if (is_run) { + amount = collection.number_of_runs[run_idx++]; + } else { + amount = collection.cardinality[array_idx++]; + } + if (is_run) { + return ContainerMetadata::RunContainer(amount); + } + if (amount == BITSET_CONTAINER_SENTINEL_VALUE) { + return ContainerMetadata::BitsetContainer(amount); + } + return ContainerMetadata::ArrayContainer(amount, is_inverted); +} + +} // namespace roaring + +} // namespace duckdb diff --git a/src/duckdb/src/storage/compression/roaring/scan.cpp b/src/duckdb/src/storage/compression/roaring/scan.cpp new file mode 100644 index 00000000..73ef83bf --- /dev/null +++ b/src/duckdb/src/storage/compression/roaring/scan.cpp @@ -0,0 +1,358 @@ +#include "duckdb/storage/compression/roaring/roaring.hpp" + +#include "duckdb/common/limits.hpp" +#include "duckdb/common/likely.hpp" +#include "duckdb/common/numeric_utils.hpp" +#include "duckdb/function/compression/compression.hpp" +#include "duckdb/function/compression_function.hpp" +#include "duckdb/main/config.hpp" +#include "duckdb/storage/buffer_manager.hpp" +#include "duckdb/storage/table/column_data_checkpointer.hpp" +#include "duckdb/storage/table/column_segment.hpp" +#include "duckdb/storage/table/scan_state.hpp" +#include "duckdb/storage/segment/uncompressed.hpp" +#include "duckdb/common/fast_mem.hpp" +#include "duckdb/common/bitpacking.hpp" + +namespace duckdb { + +namespace roaring { + +//===--------------------------------------------------------------------===// +// Scan +//===--------------------------------------------------------------------===// + +ContainerSegmentScan::ContainerSegmentScan(data_ptr_t data) + : segments(reinterpret_cast(data)), index(0), count(0) { +} + +// Returns the base of the current segment, forwarding the index if the segment is depleted of values +uint16_t ContainerSegmentScan::operator++(int) { + while (index < COMPRESSED_SEGMENT_COUNT && count >= segments[index]) { + count = 0; + index++; + } + count++; + + // index == COMPRESSED_SEGMENT_COUNT is allowed for runs, as the last run could end at ROARING_CONTAINER_SIZE + D_ASSERT(index <= COMPRESSED_SEGMENT_COUNT); + if (index < COMPRESSED_SEGMENT_COUNT) { + D_ASSERT(segments[index] != 0); + } + uint16_t base = static_cast(index) * COMPRESSED_SEGMENT_SIZE; + return base; +} + +//===--------------------------------------------------------------------===// +// ContainerScanState +//===--------------------------------------------------------------------===// + +//! RunContainer + +RunContainerScanState::RunContainerScanState(idx_t container_index, idx_t container_size, idx_t count, + data_ptr_t data_p) + : ContainerScanState(container_index, container_size), count(count), data(data_p) { +} + +void RunContainerScanState::ScanPartial(Vector &result, idx_t result_offset, idx_t to_scan) { + auto &result_mask = FlatVector::Validity(result); + + // This method assumes that the validity mask starts off as having all bits set for the entries that are being + // scanned. + + idx_t result_idx = 0; + if (!run_index) { + LoadNextRun(); + } + while (!finished && result_idx < to_scan) { + // Either we are already inside a run, then 'start_of_run' will be scanned_count + // or we're skipping values until the run begins + auto start_of_run = + MaxValue(MinValue(run.start, scanned_count + to_scan), scanned_count + result_idx); + result_idx = start_of_run - scanned_count; + + // How much of the run are we covering? + idx_t run_end = run.start + 1 + run.length; + auto run_or_scan_end = MinValue(run_end, scanned_count + to_scan); + + // Process the run + D_ASSERT(run_or_scan_end >= start_of_run); + if (run_or_scan_end > start_of_run) { + idx_t amount = run_or_scan_end - start_of_run; + idx_t start = result_offset + result_idx; + idx_t end = start + amount; + SetInvalidRange(result_mask, start, end); + } + + result_idx += run_or_scan_end - start_of_run; + if (scanned_count + result_idx == run_end) { + // Fully processed the current run + LoadNextRun(); + } + } + scanned_count += to_scan; +} + +void RunContainerScanState::Skip(idx_t to_skip) { + idx_t end = scanned_count + to_skip; + if (!run_index) { + LoadNextRun(); + } + while (scanned_count < end && !finished) { + idx_t run_end = run.start + 1 + run.length; + scanned_count = MinValue(run_end, end); + if (scanned_count == run_end) { + LoadNextRun(); + } + } + // In case run_index has already reached count + scanned_count = end; +} + +void RunContainerScanState::Verify() const { +#ifdef DEBUG + uint16_t index = 0; + for (idx_t i = 0; i < count; i++) { + auto run = reinterpret_cast(data)[i]; + D_ASSERT(run.start >= index); + index = run.start + 1 + run.length; + } +#endif +} + +void RunContainerScanState::LoadNextRun() { + if (run_index >= count) { + finished = true; + return; + } + run = reinterpret_cast(data)[run_index]; + run_index++; +} + +CompressedRunContainerScanState::CompressedRunContainerScanState(idx_t container_index, idx_t container_size, + idx_t count, data_ptr_t segments, data_ptr_t data) + : RunContainerScanState(container_index, container_size, count, data), segments(segments), segment(segments) { + D_ASSERT(count >= COMPRESSED_RUN_THRESHOLD); + //! Used by Verify, have to use it to avoid a compiler warning/error + (void)this->segments; +} + +void CompressedRunContainerScanState::LoadNextRun() { + if (run_index >= count) { + finished = true; + return; + } + uint16_t start = segment++; + start += reinterpret_cast(data)[(run_index * 2) + 0]; + + uint16_t end = segment++; + end += reinterpret_cast(data)[(run_index * 2) + 1]; + + D_ASSERT(end > start); + run = RunContainerRLEPair {start, static_cast(end - 1 - start)}; + run_index++; +} + +void CompressedRunContainerScanState::Verify() const { +#ifdef DEBUG + uint16_t index = 0; + ContainerSegmentScan verify_segment(segments); + for (idx_t i = 0; i < count; i++) { + // Get the start index of the run + uint16_t start = verify_segment++; + start += reinterpret_cast(data)[(i * 2) + 0]; + + // Get the end index of the run + uint16_t end = verify_segment++; + end += reinterpret_cast(data)[(i * 2) + 1]; + + D_ASSERT(!i || start >= index); + D_ASSERT(end > start); + index = end; + } +#endif +} + +//! BitsetContainer + +BitsetContainerScanState::BitsetContainerScanState(idx_t container_index, idx_t count, validity_t *bitset) + : ContainerScanState(container_index, count), bitset(bitset) { +} + +void BitsetContainerScanState::ScanPartial(Vector &result, idx_t result_offset, idx_t to_scan) { + if (!result_offset && (to_scan % ValidityMask::BITS_PER_VALUE) == 0 && + (scanned_count % ValidityMask::BITS_PER_VALUE) == 0) { + ValidityUncompressed::AlignedScan(reinterpret_cast(bitset), scanned_count, result, to_scan); + } else { + ValidityUncompressed::UnalignedScan(reinterpret_cast(bitset), container_size, scanned_count, result, + result_offset, to_scan); + } + scanned_count += to_scan; +} + +void BitsetContainerScanState::Skip(idx_t to_skip) { + // NO OP: we only need to forward scanned_count + scanned_count += to_skip; +} + +void BitsetContainerScanState::Verify() const { + // uncompressed, nothing to verify + return; +} + +RoaringScanState::RoaringScanState(ColumnSegment &segment) : segment(segment) { + auto &buffer_manager = BufferManager::GetBufferManager(segment.db); + handle = buffer_manager.Pin(segment.block); + auto base_ptr = handle.Ptr() + segment.GetBlockOffset(); + data_ptr = base_ptr + sizeof(idx_t); + + // Deserialize the container metadata for this segment + auto metadata_offset = Load(base_ptr); + auto metadata_ptr = data_ptr + metadata_offset; + + auto segment_count = segment.count.load(); + auto container_count = segment_count / ROARING_CONTAINER_SIZE; + if (segment_count % ROARING_CONTAINER_SIZE != 0) { + container_count++; + } + metadata_collection.Deserialize(metadata_ptr, container_count); + ContainerMetadataCollectionScanner scanner(metadata_collection); + data_start_position.reserve(container_count); + idx_t position = 0; + for (idx_t i = 0; i < container_count; i++) { + auto metadata = scanner.GetNext(); + container_metadata.push_back(metadata); + if (metadata.IsUncompressed()) { + position = AlignValue(position); + } + data_start_position.push_back(position); + position += SkipVector(metadata); + } +} + +idx_t RoaringScanState::SkipVector(const ContainerMetadata &metadata) { + // NOTE: this doesn't care about smaller containers, since only the last container can be smaller + return metadata.GetDataSizeInBytes(ROARING_CONTAINER_SIZE); +} + +bool RoaringScanState::UseContainerStateCache(idx_t container_index, idx_t internal_offset) { + if (!current_container) { + // No container loaded yet + return false; + } + if (current_container->container_index != container_index) { + // Not the same container + return false; + } + if (current_container->scanned_count != internal_offset) { + // Not the same scan offset + return false; + } + return true; +} + +ContainerMetadata RoaringScanState::GetContainerMetadata(idx_t container_index) { + return container_metadata[container_index]; +} + +data_ptr_t RoaringScanState::GetStartOfContainerData(idx_t container_index) { + return data_ptr + data_start_position[container_index]; +} + +ContainerScanState &RoaringScanState::LoadContainer(idx_t container_index, idx_t internal_offset) { + if (UseContainerStateCache(container_index, internal_offset)) { + return *current_container; + } + auto metadata = GetContainerMetadata(container_index); + auto data_ptr = GetStartOfContainerData(container_index); + + auto segment_count = segment.count.load(); + auto start_of_container = container_index * ROARING_CONTAINER_SIZE; + auto container_size = MinValue(segment_count - start_of_container, ROARING_CONTAINER_SIZE); + if (metadata.IsUncompressed()) { + current_container = make_uniq(container_index, container_size, + reinterpret_cast(data_ptr)); + } else if (metadata.IsRun()) { + D_ASSERT(metadata.IsInverted()); + auto number_of_runs = metadata.NumberOfRuns(); + if (number_of_runs >= COMPRESSED_RUN_THRESHOLD) { + auto segments = data_ptr; + data_ptr = segments + COMPRESSED_SEGMENT_COUNT; + current_container = make_uniq(container_index, container_size, + number_of_runs, segments, data_ptr); + } else { + current_container = + make_uniq(container_index, container_size, number_of_runs, data_ptr); + } + } else { + auto cardinality = metadata.Cardinality(); + if (cardinality >= COMPRESSED_ARRAY_THRESHOLD) { + auto segments = data_ptr; + data_ptr = segments + COMPRESSED_SEGMENT_COUNT; + if (metadata.IsInverted()) { + current_container = make_uniq>( + container_index, container_size, cardinality, segments, data_ptr); + } else { + current_container = make_uniq>( + container_index, container_size, cardinality, segments, data_ptr); + } + } else { + if (metadata.IsInverted()) { + current_container = + make_uniq>(container_index, container_size, cardinality, data_ptr); + } else { + current_container = make_uniq>(container_index, container_size, + cardinality, data_ptr); + } + } + } + + current_container->Verify(); + + auto &scan_state = *current_container; + if (internal_offset) { + Skip(scan_state, internal_offset); + } + return *current_container; +} + +void RoaringScanState::ScanInternal(ContainerScanState &scan_state, idx_t to_scan, Vector &result, idx_t offset) { + scan_state.ScanPartial(result, offset, to_scan); +} + +idx_t RoaringScanState::GetContainerIndex(idx_t start_index, idx_t &offset) { + idx_t container_index = start_index / ROARING_CONTAINER_SIZE; + offset = start_index % ROARING_CONTAINER_SIZE; + return container_index; +} + +void RoaringScanState::ScanPartial(idx_t start_idx, Vector &result, idx_t offset, idx_t count) { + result.Flatten(count); + idx_t remaining = count; + idx_t scanned = 0; + while (remaining) { + idx_t internal_offset; + idx_t container_idx = GetContainerIndex(start_idx + scanned, internal_offset); + auto &scan_state = LoadContainer(container_idx, internal_offset); + idx_t remaining_in_container = scan_state.container_size - scan_state.scanned_count; + idx_t to_scan = MinValue(remaining, remaining_in_container); + ScanInternal(scan_state, to_scan, result, offset + scanned); + remaining -= to_scan; + scanned += to_scan; + } + D_ASSERT(scanned == count); +} + +void RoaringScanState::Skip(ContainerScanState &scan_state, idx_t skip_count) { + D_ASSERT(scan_state.scanned_count + skip_count <= scan_state.container_size); + if (scan_state.scanned_count + skip_count == scan_state.container_size) { + scan_state.scanned_count = scan_state.container_size; + // This skips all remaining values covered by this container + return; + } + scan_state.Skip(skip_count); +} + +} // namespace roaring + +} // namespace duckdb diff --git a/src/duckdb/src/storage/compression/string_uncompressed.cpp b/src/duckdb/src/storage/compression/string_uncompressed.cpp index aa340f78..a2279529 100644 --- a/src/duckdb/src/storage/compression/string_uncompressed.cpp +++ b/src/duckdb/src/storage/compression/string_uncompressed.cpp @@ -102,9 +102,10 @@ void UncompressedStringStorage::StringScanPartial(ColumnSegment &segment, Column for (idx_t i = 0; i < scan_count; i++) { // std::abs used since offsets can be negative to indicate big strings - auto string_length = UnsafeNumericCast(std::abs(base_data[start + i]) - std::abs(previous_offset)); + auto current_offset = base_data[start + i]; + auto string_length = UnsafeNumericCast(std::abs(current_offset) - std::abs(previous_offset)); result_data[result_offset + i] = - FetchStringFromDict(segment, dict, result, baseptr, base_data[start + i], string_length); + FetchStringFromDict(segment, dict, result, baseptr, current_offset, string_length); previous_offset = base_data[start + i]; } } @@ -114,6 +115,29 @@ void UncompressedStringStorage::StringScan(ColumnSegment &segment, ColumnScanSta StringScanPartial(segment, state, scan_count, result, 0); } +//===--------------------------------------------------------------------===// +// Select +//===--------------------------------------------------------------------===// +void UncompressedStringStorage::Select(ColumnSegment &segment, ColumnScanState &state, idx_t vector_count, + Vector &result, const SelectionVector &sel, idx_t sel_count) { + // clear any previously locked buffers and get the primary buffer handle + auto &scan_state = state.scan_state->Cast(); + auto start = segment.GetRelativeIndex(state.row_index); + + auto baseptr = scan_state.handle.Ptr() + segment.GetBlockOffset(); + auto dict = GetDictionary(segment, scan_state.handle); + auto base_data = reinterpret_cast(baseptr + DICTIONARY_HEADER_SIZE); + auto result_data = FlatVector::GetData(result); + + for (idx_t i = 0; i < sel_count; i++) { + idx_t index = start + sel.get_index(i); + auto current_offset = base_data[index]; + auto prev_offset = index > 0 ? base_data[index - 1] : 0; + auto string_length = UnsafeNumericCast(std::abs(current_offset) - std::abs(prev_offset)); + result_data[i] = FetchStringFromDict(segment, dict, result, baseptr, current_offset, string_length); + } +} + //===--------------------------------------------------------------------===// // Fetch //===--------------------------------------------------------------------===// @@ -146,7 +170,7 @@ void UncompressedStringStorage::StringFetchRow(ColumnSegment &segment, ColumnFet auto dict_offset = base_data[row_id]; uint32_t string_length; - if ((idx_t)row_id == 0) { + if (DUCKDB_UNLIKELY(row_id == 0LL)) { // edge case where this is the first string in the dict string_length = NumericCast(std::abs(dict_offset)); } else { @@ -158,17 +182,16 @@ void UncompressedStringStorage::StringFetchRow(ColumnSegment &segment, ColumnFet //===--------------------------------------------------------------------===// // Append //===--------------------------------------------------------------------===// -struct SerializedStringSegmentState : public ColumnSegmentState { - SerializedStringSegmentState() { - } - explicit SerializedStringSegmentState(vector blocks_p) { - blocks = std::move(blocks_p); - } +SerializedStringSegmentState::SerializedStringSegmentState() { +} - void Serialize(Serializer &serializer) const override { - serializer.WriteProperty(1, "overflow_blocks", blocks); - } -}; +SerializedStringSegmentState::SerializedStringSegmentState(vector blocks_p) { + blocks = std::move(blocks_p); +} + +void SerializedStringSegmentState::Serialize(Serializer &serializer) const { + serializer.WriteProperty(1, "overflow_blocks", blocks); +} unique_ptr UncompressedStringStorage::StringInitSegment(ColumnSegment &segment, block_id_t block_id, @@ -247,17 +270,17 @@ void UncompressedStringStorage::CleanupState(ColumnSegment &segment) { //===--------------------------------------------------------------------===// CompressionFunction StringUncompressed::GetFunction(PhysicalType data_type) { D_ASSERT(data_type == PhysicalType::VARCHAR); - return CompressionFunction(CompressionType::COMPRESSION_UNCOMPRESSED, data_type, - UncompressedStringStorage::StringInitAnalyze, UncompressedStringStorage::StringAnalyze, - UncompressedStringStorage::StringFinalAnalyze, UncompressedFunctions::InitCompression, - UncompressedFunctions::Compress, UncompressedFunctions::FinalizeCompress, - UncompressedStringStorage::StringInitScan, UncompressedStringStorage::StringScan, - UncompressedStringStorage::StringScanPartial, UncompressedStringStorage::StringFetchRow, - UncompressedFunctions::EmptySkip, UncompressedStringStorage::StringInitSegment, - UncompressedStringStorage::StringInitAppend, UncompressedStringStorage::StringAppend, - UncompressedStringStorage::FinalizeAppend, nullptr, - UncompressedStringStorage::SerializeState, UncompressedStringStorage::DeserializeState, - UncompressedStringStorage::CleanupState, UncompressedStringInitPrefetch); + return CompressionFunction( + CompressionType::COMPRESSION_UNCOMPRESSED, data_type, UncompressedStringStorage::StringInitAnalyze, + UncompressedStringStorage::StringAnalyze, UncompressedStringStorage::StringFinalAnalyze, + UncompressedFunctions::InitCompression, UncompressedFunctions::Compress, + UncompressedFunctions::FinalizeCompress, UncompressedStringStorage::StringInitScan, + UncompressedStringStorage::StringScan, UncompressedStringStorage::StringScanPartial, + UncompressedStringStorage::StringFetchRow, UncompressedFunctions::EmptySkip, + UncompressedStringStorage::StringInitSegment, UncompressedStringStorage::StringInitAppend, + UncompressedStringStorage::StringAppend, UncompressedStringStorage::FinalizeAppend, nullptr, + UncompressedStringStorage::SerializeState, UncompressedStringStorage::DeserializeState, + UncompressedStringStorage::CleanupState, UncompressedStringInitPrefetch, UncompressedStringStorage::Select); } //===--------------------------------------------------------------------===// @@ -421,45 +444,4 @@ void UncompressedStringStorage::ReadStringMarker(data_ptr_t target, block_id_t & memcpy(&offset, target, sizeof(int32_t)); } -string_location_t UncompressedStringStorage::FetchStringLocation(StringDictionaryContainer dict, data_ptr_t base_ptr, - int32_t dict_offset, const idx_t block_size) { - D_ASSERT(dict_offset + NumericCast(block_size) >= 0 && dict_offset <= NumericCast(block_size)); - if (dict_offset >= 0) { - return string_location_t(INVALID_BLOCK, dict_offset); - } - - string_location_t result; - ReadStringMarker(base_ptr + dict.end - NumericCast(-1 * dict_offset), result.block_id, result.offset); - return result; -} - -string_t UncompressedStringStorage::FetchStringFromDict(ColumnSegment &segment, StringDictionaryContainer dict, - Vector &result, data_ptr_t base_ptr, int32_t dict_offset, - uint32_t string_length) { - // Fetch the base data. - auto block_size = segment.GetBlockManager().GetBlockSize(); - D_ASSERT(dict_offset <= NumericCast(block_size)); - string_location_t location = FetchStringLocation(dict, base_ptr, dict_offset, block_size); - return FetchString(segment, dict, result, base_ptr, location, string_length); -} - -string_t UncompressedStringStorage::FetchString(ColumnSegment &segment, StringDictionaryContainer dict, Vector &result, - data_ptr_t base_ptr, string_location_t location, - uint32_t string_length) { - if (location.block_id != INVALID_BLOCK) { - // big string marker: read from separate block - return ReadOverflowString(segment, result, location.block_id, location.offset); - } - if (location.offset == 0) { - return string_t(nullptr, 0); - } - - // normal string: read string from this block - auto dict_end = base_ptr + dict.end; - auto dict_pos = dict_end - location.offset; - - auto str_ptr = char_ptr_cast(dict_pos); - return string_t(str_ptr, string_length); -} - } // namespace duckdb diff --git a/src/duckdb/src/storage/compression/validity_uncompressed.cpp b/src/duckdb/src/storage/compression/validity_uncompressed.cpp index 96271da1..8fa4acca 100644 --- a/src/duckdb/src/storage/compression/validity_uncompressed.cpp +++ b/src/duckdb/src/storage/compression/validity_uncompressed.cpp @@ -218,17 +218,12 @@ unique_ptr ValidityInitScan(ColumnSegment &segment) { //===--------------------------------------------------------------------===// // Scan base data //===--------------------------------------------------------------------===// -void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, - idx_t result_offset) { - auto start = segment.GetRelativeIndex(state.row_index); - - static_assert(sizeof(validity_t) == sizeof(uint64_t), "validity_t should be 64-bit"); - auto &scan_state = state.scan_state->Cast(); +void ValidityUncompressed::UnalignedScan(data_ptr_t input, idx_t input_size, idx_t input_start, Vector &result, + idx_t result_offset, idx_t scan_count) { + D_ASSERT(input_start < input_size); auto &result_mask = FlatVector::Validity(result); - auto buffer_ptr = scan_state.handle.Ptr() + segment.GetBlockOffset(); - D_ASSERT(scan_state.block_id == segment.block->BlockId()); - auto input_data = reinterpret_cast(buffer_ptr); + auto input_data = reinterpret_cast(input); #ifdef DEBUG // this method relies on all the bits we are going to write to being set to valid @@ -239,11 +234,11 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s #if STANDARD_VECTOR_SIZE < 128 // fallback for tiny vector sizes // the bitwise ops we use below don't work if the vector size is too small - ValidityMask source_mask(input_data); + ValidityMask source_mask(input_data, input_size); for (idx_t i = 0; i < scan_count; i++) { - if (!source_mask.RowIsValid(start + i)) { + if (!source_mask.RowIsValid(input_start + i)) { if (result_mask.AllValid()) { - result_mask.Initialize(result_mask.TargetCount()); + result_mask.Initialize(); } result_mask.SetInvalid(result_offset + i); } @@ -258,8 +253,8 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s idx_t result_idx = result_offset - result_entry * ValidityMask::BITS_PER_VALUE; // same for the input: find the validity_entry we are pulling from, together with the bit-index WITHIN that entry - idx_t input_entry = start / ValidityMask::BITS_PER_VALUE; - idx_t input_idx = start - input_entry * ValidityMask::BITS_PER_VALUE; + idx_t input_entry = input_start / ValidityMask::BITS_PER_VALUE; + idx_t input_idx = input_start - input_entry * ValidityMask::BITS_PER_VALUE; // now start the bit games idx_t pos = 0; @@ -271,6 +266,16 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s // construct the mask to AND together with the result if (result_idx < input_idx) { + // +======================================+ + // input: |xxxxxxxxx| | + // +======================================+ + // + // +======================================+ + // result: | xxxxxxxxx| | + // +======================================+ + // 1. We shift (>>) 'input' to line up with 'result' + // 2. We set the bits we shifted to 1 + // we have to shift the input RIGHT if the result_idx is smaller than the input_idx auto shift_amount = input_idx - result_idx; D_ASSERT(shift_amount > 0 && shift_amount <= ValidityMask::BITS_PER_VALUE); @@ -288,6 +293,17 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s input_idx = 0; result_idx += offset; } else if (result_idx > input_idx) { + // +======================================+ + // input: | xxxxxxxxx| | + // +======================================+ + // + // +======================================+ + // result: |xxxxxxxxx| | + // +======================================+ + // 1. We set the bits to the left of the relevant bits (x) to 0 + // 1. We shift (<<) 'input' to line up with 'result' + // 2. We set the bits that we zeroed to the right of the relevant bits (x) to 1 + // we have to shift the input LEFT if the result_idx is bigger than the input_idx auto shift_amount = result_idx - input_idx; D_ASSERT(shift_amount > 0 && shift_amount <= ValidityMask::BITS_PER_VALUE); @@ -317,6 +333,13 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s // OR if we need to mask from the right side pos += offset; if (pos > scan_count) { + // +======================================+ + // mask: | |xxxxxxxxxxxxxxxxxxxxxxxxx| + // +======================================+ + // + // The bits on the right side of the relevant bits (x) need to stay 1, to be adjusted by later scans + // so we adjust the mask to clear out any 0s that might be present on the right side. + // we need to set any bits that are past the scan_count on the right-side to 1 // this is required so we don't influence any bits that are not part of the scan input_mask |= ValidityUncompressed::UPPER_MASKS[pos - scan_count]; @@ -324,7 +347,7 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s // now finally we can merge the input mask with the result mask if (input_mask != ValidityMask::ValidityBuffer::MAX_ENTRY) { if (!result_data) { - result_mask.Initialize(result_mask.TargetCount()); + result_mask.Initialize(); result_data = (validity_t *)result_mask.GetData(); } result_data[current_result_idx] &= input_mask; @@ -334,13 +357,49 @@ void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t s #ifdef DEBUG // verify that we actually accomplished the bitwise ops equivalent that we wanted to do - ValidityMask input_mask(input_data); + ValidityMask input_mask(input_data, input_size); for (idx_t i = 0; i < scan_count; i++) { - D_ASSERT(result_mask.RowIsValid(result_offset + i) == input_mask.RowIsValid(start + i)); + D_ASSERT(result_mask.RowIsValid(result_offset + i) == input_mask.RowIsValid(input_start + i)); } #endif } +void ValidityUncompressed::AlignedScan(data_ptr_t input, idx_t input_start, Vector &result, idx_t scan_count) { + D_ASSERT(input_start % ValidityMask::BITS_PER_VALUE == 0); + + // aligned scan: no need to do anything fancy + // note: this is only an optimization which avoids having to do messy bitshifting in the common case + // it is not required for correctness + auto &result_mask = FlatVector::Validity(result); + auto input_data = reinterpret_cast(input); + auto result_data = result_mask.GetData(); + idx_t start_offset = input_start / ValidityMask::BITS_PER_VALUE; + idx_t entry_scan_count = (scan_count + ValidityMask::BITS_PER_VALUE - 1) / ValidityMask::BITS_PER_VALUE; + for (idx_t i = 0; i < entry_scan_count; i++) { + auto input_entry = input_data[start_offset + i]; + if (!result_data && input_entry == ValidityMask::ValidityBuffer::MAX_ENTRY) { + continue; + } + if (!result_data) { + result_mask.Initialize(); + result_data = result_mask.GetData(); + } + result_data[i] = input_entry; + } +} + +void ValidityScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, + idx_t result_offset) { + auto start = segment.GetRelativeIndex(state.row_index); + + static_assert(sizeof(validity_t) == sizeof(uint64_t), "validity_t should be 64-bit"); + auto &scan_state = state.scan_state->Cast(); + + auto buffer_ptr = scan_state.handle.Ptr() + segment.GetBlockOffset(); + D_ASSERT(scan_state.block_id == segment.block->BlockId()); + ValidityUncompressed::UnalignedScan(buffer_ptr, segment.count, start, result, result_offset, scan_count); +} + void ValidityScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result) { result.Flatten(scan_count); @@ -348,33 +407,37 @@ void ValidityScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_cou if (start % ValidityMask::BITS_PER_VALUE == 0) { auto &scan_state = state.scan_state->Cast(); - // aligned scan: no need to do anything fancy - // note: this is only an optimization which avoids having to do messy bitshifting in the common case - // it is not required for correctness - auto &result_mask = FlatVector::Validity(result); auto buffer_ptr = scan_state.handle.Ptr() + segment.GetBlockOffset(); D_ASSERT(scan_state.block_id == segment.block->BlockId()); - auto input_data = reinterpret_cast(buffer_ptr); - auto result_data = result_mask.GetData(); - idx_t start_offset = start / ValidityMask::BITS_PER_VALUE; - idx_t entry_scan_count = (scan_count + ValidityMask::BITS_PER_VALUE - 1) / ValidityMask::BITS_PER_VALUE; - for (idx_t i = 0; i < entry_scan_count; i++) { - auto input_entry = input_data[start_offset + i]; - if (!result_data && input_entry == ValidityMask::ValidityBuffer::MAX_ENTRY) { - continue; - } - if (!result_data) { - result_mask.Initialize(result_mask.TargetCount()); - result_data = result_mask.GetData(); - } - result_data[i] = input_entry; - } + ValidityUncompressed::AlignedScan(buffer_ptr, start, result, scan_count); } else { // unaligned scan: fall back to scan_partial which does bitshift tricks ValidityScanPartial(segment, state, scan_count, result, 0); } } +//===--------------------------------------------------------------------===// +// Select +//===--------------------------------------------------------------------===// +void ValiditySelect(ColumnSegment &segment, ColumnScanState &state, idx_t, Vector &result, const SelectionVector &sel, + idx_t sel_count) { + result.Flatten(sel_count); + + auto &scan_state = state.scan_state->Cast(); + auto buffer_ptr = scan_state.handle.Ptr() + segment.GetBlockOffset(); + auto &result_mask = FlatVector::Validity(result); + auto input_data = reinterpret_cast(buffer_ptr); + + auto start = segment.GetRelativeIndex(state.row_index); + ValidityMask source_mask(input_data, segment.count); + for (idx_t i = 0; i < sel_count; i++) { + auto source_idx = start + sel.get_index(i); + if (!source_mask.RowIsValidUnsafe(source_idx)) { + result_mask.SetInvalid(i); + } + } +} + //===--------------------------------------------------------------------===// // Fetch //===--------------------------------------------------------------------===// @@ -383,7 +446,7 @@ void ValidityFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row auto &buffer_manager = BufferManager::GetBufferManager(segment.db); auto handle = buffer_manager.Pin(segment.block); auto dataptr = handle.Ptr() + segment.GetBlockOffset(); - ValidityMask mask(reinterpret_cast(dataptr)); + ValidityMask mask(reinterpret_cast(dataptr), segment.count); auto &result_mask = FlatVector::Validity(result); if (!mask.RowIsValidUnsafe(NumericCast(row_id))) { result_mask.SetInvalid(result_idx); @@ -423,7 +486,7 @@ idx_t ValidityAppend(CompressionAppendState &append_state, ColumnSegment &segmen return append_count; } - ValidityMask mask(reinterpret_cast(append_state.handle.Ptr())); + ValidityMask mask(reinterpret_cast(append_state.handle.Ptr()), max_tuples); for (idx_t i = 0; i < append_count; i++) { auto idx = data.sel->get_index(offset + i); if (!data.validity.RowIsValidUnsafe(idx)) { @@ -451,7 +514,7 @@ void ValidityRevertAppend(ColumnSegment &segment, idx_t start_row) { // handle sub-bit stuff (yay) idx_t byte_pos = start_bit / 8; idx_t bit_end = (byte_pos + 1) * 8; - ValidityMask mask(reinterpret_cast(handle.Ptr())); + ValidityMask mask(reinterpret_cast(handle.Ptr()), segment.count); for (idx_t i = start_bit; i < bit_end; i++) { mask.SetValid(i); } diff --git a/src/duckdb/src/storage/compression/zstd.cpp b/src/duckdb/src/storage/compression/zstd.cpp new file mode 100644 index 00000000..4ac798a5 --- /dev/null +++ b/src/duckdb/src/storage/compression/zstd.cpp @@ -0,0 +1,1048 @@ +#include "duckdb/common/bitpacking.hpp" +#include "duckdb/storage/string_uncompressed.hpp" +#include "duckdb/function/compression/compression.hpp" +#include "duckdb/storage/table/column_data_checkpointer.hpp" +#include "duckdb/storage/block_manager.hpp" +#include "duckdb/main/config.hpp" +#include "duckdb/common/constants.hpp" +#include "duckdb/common/allocator.hpp" +#include "duckdb/common/serializer/deserializer.hpp" +#include "duckdb/storage/segment/uncompressed.hpp" + +#include "zstd.h" + +/* +Data layout per segment: ++--------------------------------------------+ +| Vector Metadata | +| +------------------------------------+ | +| | int64_t page_id[] | | +| | uint32_t page_offset[] | | +| | uint64_t uncompressed_size[] | | +| | uint64_t compressed_size[] | | +| +------------------------------------+ | +| | ++--------------------------------------------+ +| [Vector Data]+ | +| +------------------------------------+ | +| | uint32_t lengths[] | | +| | void *compressed_data | | +| +------------------------------------+ | +| | ++--------------------------------------------+ +*/ + +using page_id_t = int64_t; +using page_offset_t = uint32_t; +using uncompressed_size_t = uint64_t; +using compressed_size_t = uint64_t; +using string_length_t = uint32_t; + +static int32_t GetCompressionLevel() { + return duckdb_zstd::ZSTD_defaultCLevel(); +} + +static constexpr idx_t ZSTD_VECTOR_SIZE = STANDARD_VECTOR_SIZE > 2048 ? STANDARD_VECTOR_SIZE : 2048; + +namespace duckdb { + +static idx_t GetWritableSpace(const CompressionInfo &info) { + return info.GetBlockSize() - sizeof(block_id_t); +} + +static idx_t GetVectorCount(idx_t count) { + idx_t vector_count = count / ZSTD_VECTOR_SIZE; + vector_count += (count % ZSTD_VECTOR_SIZE) != 0; + return vector_count; +} + +static idx_t GetVectorMetadataSize(idx_t vector_count) { + idx_t vector_metadata_size = 0; + vector_metadata_size += sizeof(page_id_t) * vector_count; + + vector_metadata_size = AlignValue(vector_metadata_size); + vector_metadata_size += sizeof(page_offset_t) * vector_count; + + vector_metadata_size = AlignValue(vector_metadata_size); + vector_metadata_size += sizeof(uncompressed_size_t) * vector_count; + + vector_metadata_size = AlignValue(vector_metadata_size); + vector_metadata_size += sizeof(compressed_size_t) * vector_count; + return vector_metadata_size; +} + +struct ZSTDStorage { + static unique_ptr StringInitAnalyze(ColumnData &col_data, PhysicalType type); + static bool StringAnalyze(AnalyzeState &state_p, Vector &input, idx_t count); + static idx_t StringFinalAnalyze(AnalyzeState &state_p); + + static unique_ptr InitCompression(ColumnDataCheckpointer &checkpointer, + unique_ptr analyze_state_p); + static void Compress(CompressionState &state_p, Vector &scan_vector, idx_t count); + static void FinalizeCompress(CompressionState &state_p); + + static unique_ptr StringInitScan(ColumnSegment &segment); + static void StringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, + idx_t result_offset); + static void StringScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result); + static void StringFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row_id, Vector &result, + idx_t result_idx); + static void StringSkip(ColumnSegment &segment, ColumnScanState &state, idx_t skip_count) { + // NO OP + } + + // Segment state metadata + // Required because we are creating additional pages that have to be cleaned up + + static unique_ptr StringInitSegment(ColumnSegment &segment, block_id_t block_id, + optional_ptr segment_state); + static unique_ptr SerializeState(ColumnSegment &segment); + static unique_ptr DeserializeState(Deserializer &deserializer); + static void CleanupState(ColumnSegment &segment); +}; + +//===--------------------------------------------------------------------===// +// Analyze +//===--------------------------------------------------------------------===// + +struct ZSTDAnalyzeState : public AnalyzeState { +public: + ZSTDAnalyzeState(CompressionInfo &info, DBConfig &config) : AnalyzeState(info), config(config), context(nullptr) { + context = duckdb_zstd::ZSTD_createCCtx(); + } + ~ZSTDAnalyzeState() override { + duckdb_zstd::ZSTD_freeCCtx(context); + } + +public: + inline void AppendString(const string_t &str) { + auto string_size = str.GetSize(); + total_size += string_size; + } + +public: + DBConfig &config; + + duckdb_zstd::ZSTD_CCtx *context; + //! The combined string lengths for all values in the segment + idx_t total_size = 0; + //! The total amount of values in the segment + idx_t count = 0; + + //! The amount of vectors per filled segment + idx_t vectors_per_segment = 0; + //! The total amount of segments we will create + idx_t segment_count = 0; + //! Current vector in the segment + idx_t vectors_in_segment = 0; + //! Current amount of values in the vector + idx_t values_in_vector = 0; +}; + +unique_ptr ZSTDStorage::StringInitAnalyze(ColumnData &col_data, PhysicalType type) { + CompressionInfo info(col_data.GetBlockManager().GetBlockSize()); + auto &data_table_info = col_data.info; + auto &attached_db = data_table_info.GetDB(); + auto &config = DBConfig::Get(attached_db); + + return make_uniq(info, config); +} + +bool ZSTDStorage::StringAnalyze(AnalyzeState &state_p, Vector &input, idx_t count) { + auto &state = state_p.Cast(); + UnifiedVectorFormat vdata; + input.ToUnifiedFormat(count, vdata); + + auto data = UnifiedVectorFormat::GetData(vdata); + for (idx_t i = 0; i < count; i++) { + auto idx = vdata.sel->get_index(i); + if (!vdata.validity.RowIsValid(idx)) { + continue; + } + auto &str = data[idx]; + auto string_size = str.GetSize(); + state.total_size += string_size; + } + state.values_in_vector += count; + while (state.values_in_vector >= ZSTD_VECTOR_SIZE) { + if (GetVectorMetadataSize(state.vectors_in_segment + 1) > GetWritableSpace(state.info)) { + state.vectors_per_segment = state.vectors_in_segment; + state.segment_count++; + state.vectors_in_segment = 0; + } else { + state.vectors_in_segment++; + } + state.values_in_vector -= ZSTD_VECTOR_SIZE; + } + state.count += count; + return true; +} + +// Compression score to determine which compression to use +idx_t ZSTDStorage::StringFinalAnalyze(AnalyzeState &state_p) { + auto &state = state_p.Cast(); + + if (!state.count) { + return NumericLimits::Maximum(); + } + + if (state.values_in_vector) { + D_ASSERT(state.values_in_vector < ZSTD_VECTOR_SIZE); + state.segment_count++; + } + + double penalty; + idx_t average_length = state.total_size / state.count; + auto threshold = state.config.options.zstd_min_string_length; + if (average_length >= threshold) { + penalty = 1.0; + } else { + // Inbetween these two points you're better off using uncompressed or a different compression algorithm. + return NumericLimits::Maximum(); + } + + auto expected_compressed_size = (double)state.total_size / 2.0; + + idx_t estimated_size = 0; + estimated_size += LossyNumericCast(expected_compressed_size); + + estimated_size += state.count * sizeof(string_length_t); + estimated_size += GetVectorMetadataSize(GetVectorCount(state.count)); + + return LossyNumericCast((double)estimated_size * penalty); +} + +//===--------------------------------------------------------------------===// +// Compress +//===--------------------------------------------------------------------===// + +class ZSTDCompressionState : public CompressionState { +public: + explicit ZSTDCompressionState(ColumnDataCheckpointer &checkpointer, unique_ptr &&analyze_state_p) + : CompressionState(analyze_state_p->info), analyze_state(std::move(analyze_state_p)), + checkpointer(checkpointer), partial_block_manager(checkpointer.GetCheckpointState().GetPartialBlockManager()), + function(checkpointer.GetCompressionFunction(CompressionType::COMPRESSION_ZSTD)) { + + total_vector_count = GetVectorCount(analyze_state->count); + total_segment_count = analyze_state->segment_count; + vectors_per_segment = analyze_state->vectors_per_segment; + + segment_count = 0; + vector_count = 0; + vector_in_segment_count = 0; + tuple_count = 0; + + idx_t offset = NewSegment(); + SetCurrentBuffer(segment_handle); + current_buffer_ptr = segment_handle.Ptr() + offset; + D_ASSERT(GetCurrentOffset() <= GetWritableSpace(info)); + } + +public: + void ResetOutBuffer() { + out_buffer.dst = current_buffer_ptr; + out_buffer.pos = 0; + + auto remaining_space = info.GetBlockSize() - GetCurrentOffset() - sizeof(block_id_t); + out_buffer.size = remaining_space; + } + + void SetCurrentBuffer(BufferHandle &handle) { + current_buffer = &handle; + current_buffer_ptr = handle.Ptr(); + } + + BufferHandle &GetExtraPageBuffer(block_id_t current_block_id) { + auto &block_manager = partial_block_manager.GetBlockManager(); + auto &buffer_manager = block_manager.buffer_manager; + + optional_ptr to_use; + + if (in_vector) { + // Currently in a Vector, we have to be mindful of the buffer that the string_lengths lives on + // as that will have to stay writable until the Vector is finished + bool already_separated = current_buffer != vector_lengths_buffer; + if (already_separated) { + // Already separated, can keep using the other buffer (flush it first) + FlushPage(*current_buffer, current_block_id); + to_use = current_buffer; + } else { + // Not already separated, have to use the other page + to_use = current_buffer == &extra_pages[0] ? &extra_pages[1] : &extra_pages[0]; + } + } else { + // Start of a new Vector, the string_lengths did not fit on the previous page + bool previous_page_is_segment = current_buffer == &segment_handle; + if (!previous_page_is_segment) { + // We're asking for a fresh buffer to start the vectors data + // that means the previous vector is finished - so we can flush the current page and reuse it + D_ASSERT(current_block_id != INVALID_BLOCK); + FlushPage(*current_buffer, current_block_id); + to_use = current_buffer; + } else { + // Previous buffer was the segment, take the first extra page in this case + to_use = &extra_pages[0]; + } + } + + if (!to_use->IsValid()) { + *to_use = buffer_manager.Allocate(MemoryTag::OVERFLOW_STRINGS, block_manager.GetBlockSize()); + } + return *to_use; + } + + idx_t NewSegment() { + if (current_buffer == &segment_handle) { + // This should never happen, the string lengths + vector metadata size should always exceed a page size, + // even if the strings are all empty + throw InternalException("We are asking for a new segment, but somehow we're still writing vector data onto " + "the initial (segment) page"); + } + idx_t row_start; + if (segment) { + row_start = segment->start + segment->count; + FlushSegment(); + } else { + row_start = checkpointer.GetRowGroup().start; + } + CreateEmptySegment(row_start); + + // Figure out how many vectors we are storing in this segment + idx_t vectors_in_segment; + if (segment_count + 1 >= total_segment_count) { + vectors_in_segment = total_vector_count - vector_count; + } else { + vectors_in_segment = vectors_per_segment; + } + + idx_t offset = 0; + page_ids = reinterpret_cast(segment_handle.Ptr() + offset); + offset += (sizeof(page_id_t) * vectors_in_segment); + + offset = AlignValue(offset); + page_offsets = reinterpret_cast(segment_handle.Ptr() + offset); + offset += (sizeof(page_offset_t) * vectors_in_segment); + + offset = AlignValue(offset); + uncompressed_sizes = reinterpret_cast(segment_handle.Ptr() + offset); + offset += (sizeof(uncompressed_size_t) * vectors_in_segment); + + offset = AlignValue(offset); + compressed_sizes = reinterpret_cast(segment_handle.Ptr() + offset); + offset += (sizeof(compressed_size_t) * vectors_in_segment); + + D_ASSERT(offset == GetVectorMetadataSize(vectors_in_segment)); + return offset; + } + + void InitializeVector() { + D_ASSERT(!in_vector); + if (vector_count + 1 >= total_vector_count) { + vector_size = analyze_state->count - (ZSTD_VECTOR_SIZE * vector_count); + } else { + vector_size = ZSTD_VECTOR_SIZE; + } + auto current_offset = GetCurrentOffset(); + current_offset = UnsafeNumericCast( + AlignValue(UnsafeNumericCast(current_offset))); + current_buffer_ptr = current_buffer->Ptr() + current_offset; + compressed_size = 0; + uncompressed_size = 0; + + if (GetVectorMetadataSize(vector_in_segment_count + 1) > GetWritableSpace(info)) { + D_ASSERT(vector_in_segment_count <= vectors_per_segment); + // Can't fit this vector on this segment anymore, have to flush and a grab new one + NewSegment(); + } + + if (current_offset + (vector_size * sizeof(string_length_t)) >= GetWritableSpace(info)) { + // Check if there is room on the current page for the vector data + NewPage(); + } + current_offset = GetCurrentOffset(); + starting_offset = current_offset; + starting_page = GetCurrentId(); + + vector_lengths_buffer = current_buffer; + string_lengths = reinterpret_cast(current_buffer->Ptr() + current_offset); + current_buffer_ptr = reinterpret_cast(string_lengths); + current_buffer_ptr += vector_size * sizeof(string_length_t); + // 'out_buffer' should be set to point directly after the string_lengths + ResetOutBuffer(); + + // Initialize the context for streaming compression + duckdb_zstd::ZSTD_CCtx_reset(analyze_state->context, duckdb_zstd::ZSTD_reset_session_only); + duckdb_zstd::ZSTD_CCtx_refCDict(analyze_state->context, nullptr); + duckdb_zstd::ZSTD_CCtx_setParameter(analyze_state->context, duckdb_zstd::ZSTD_c_compressionLevel, + GetCompressionLevel()); + in_vector = true; + } + + void CompressString(const string_t &string, bool end_of_vector) { + duckdb_zstd::ZSTD_inBuffer in_buffer = {/*data = */ string.GetData(), + /*length = */ size_t(string.GetSize()), + /*pos = */ 0}; + + if (!end_of_vector && string.GetSize() == 0) { + return; + } + uncompressed_size += string.GetSize(); + const auto end_mode = end_of_vector ? duckdb_zstd::ZSTD_e_end : duckdb_zstd::ZSTD_e_continue; + + size_t compress_result; + while (true) { + idx_t old_pos = out_buffer.pos; + + compress_result = + duckdb_zstd::ZSTD_compressStream2(analyze_state->context, &out_buffer, &in_buffer, end_mode); + D_ASSERT(out_buffer.pos >= old_pos); + auto diff = out_buffer.pos - old_pos; + compressed_size += diff; + current_buffer_ptr += diff; + + if (duckdb_zstd::ZSTD_isError(compress_result)) { + throw InvalidInputException("ZSTD Compression failed: %s", + duckdb_zstd::ZSTD_getErrorName(compress_result)); + } + if (compress_result == 0) { + // Finished + break; + } + if (out_buffer.pos != out_buffer.size) { + throw InternalException("Expected ZSTD_compressStream2 to fully utilize the current buffer, but pos is " + "%d, while size is %d", + out_buffer.pos, out_buffer.size); + } + NewPage(); + } + } + + void AddString(const string_t &string) { + if (!tuple_count) { + InitializeVector(); + } + + string_lengths[tuple_count] = UnsafeNumericCast(string.GetSize()); + bool final_tuple = tuple_count + 1 >= vector_size; + CompressString(string, final_tuple); + + tuple_count++; + if (tuple_count == vector_size) { + // Reached the end of this vector + FlushVector(); + } + + UncompressedStringStorage::UpdateStringStats(segment->stats, string); + } + + void NewPage(bool additional_data_page = false) { + block_id_t new_id = FinalizePage(); + block_id_t current_block_id = block_id; + auto &buffer = GetExtraPageBuffer(current_block_id); + block_id = new_id; + SetCurrentBuffer(buffer); + ResetOutBuffer(); + } + + block_id_t FinalizePage() { + auto &block_manager = partial_block_manager.GetBlockManager(); + auto new_id = block_manager.GetFreeBlockId(); + auto &state = segment->GetSegmentState()->Cast(); + state.RegisterBlock(block_manager, new_id); + + D_ASSERT(GetCurrentOffset() <= GetWritableSpace(info)); + + // Write the new id at the end of the last page + Store(new_id, current_buffer_ptr); + current_buffer_ptr += sizeof(block_id_t); + return new_id; + } + + void FlushPage(BufferHandle &buffer, block_id_t block_id) { + if (block_id == INVALID_BLOCK) { + return; + } + + // Write the current page to disk + auto &block_manager = partial_block_manager.GetBlockManager(); + block_manager.Write(buffer.GetFileBuffer(), block_id); + { + auto lock = partial_block_manager.GetLock(); + partial_block_manager.AddWrittenBlock(block_id); + } + } + + void FlushVector() { + // Write the metadata for this Vector + page_ids[vector_in_segment_count] = starting_page; + page_offsets[vector_in_segment_count] = starting_offset; + compressed_sizes[vector_in_segment_count] = compressed_size; + uncompressed_sizes[vector_in_segment_count] = uncompressed_size; + vector_count++; + vector_in_segment_count++; + in_vector = false; + segment->count += tuple_count; + + const bool is_last_vector = vector_count == total_vector_count; + tuple_count = 0; + if (is_last_vector) { + FlushPage(*current_buffer, block_id); + if (starting_page != block_id) { + FlushPage(*vector_lengths_buffer, starting_page); + } + } else { + if (vector_lengths_buffer == current_buffer) { + // We did not cross a page boundary writing this vector + return; + } + // Flush the page that holds the vector lengths + FlushPage(*vector_lengths_buffer, starting_page); + } + } + + page_id_t GetCurrentId() { + if (&segment_handle == current_buffer.get()) { + return INVALID_BLOCK; + } + return block_id; + } + + page_offset_t GetCurrentOffset() { + auto &handle = *current_buffer; + auto start_of_buffer = handle.Ptr(); + D_ASSERT(current_buffer_ptr >= start_of_buffer); + auto res = (page_offset_t)(current_buffer_ptr - start_of_buffer); + D_ASSERT(res <= GetWritableSpace(info)); + return res; + } + + void CreateEmptySegment(idx_t row_start) { + auto &db = checkpointer.GetDatabase(); + auto &type = checkpointer.GetType(); + auto compressed_segment = ColumnSegment::CreateTransientSegment(db, function, type, row_start, + info.GetBlockSize(), info.GetBlockSize()); + segment = std::move(compressed_segment); + segment->function = function; + + auto &buffer_manager = BufferManager::GetBufferManager(checkpointer.GetDatabase()); + segment_handle = buffer_manager.Pin(segment->block); + } + + void FlushSegment() { + auto &state = checkpointer.GetCheckpointState(); + idx_t segment_block_size; + + if (current_buffer.get() == &segment_handle) { + segment_block_size = GetCurrentOffset(); + } else { + // Block is fully used + segment_block_size = info.GetBlockSize(); + } + + state.FlushSegment(std::move(segment), std::move(segment_handle), segment_block_size); + segment_count++; + vector_in_segment_count = 0; + } + + void Finalize() { + D_ASSERT(!tuple_count); + FlushSegment(); + segment.reset(); + } + + void AddNull() { + AddString(""); + } + +public: + unique_ptr analyze_state; + ColumnDataCheckpointer &checkpointer; + PartialBlockManager &partial_block_manager; + CompressionFunction &function; + + // The segment state + //! Current segment index we're at + idx_t segment_count = 0; + //! The total amount of segments we're writing + idx_t total_segment_count = 0; + //! The vectors to store in the last segment + idx_t vectors_in_last_segment = 0; + //! The vectors to store in a segment (not the last one) + idx_t vectors_per_segment = 0; + unique_ptr segment; + BufferHandle segment_handle; + + // Non-segment buffers + BufferHandle extra_pages[2]; + block_id_t block_id = INVALID_BLOCK; + + // Current block state + optional_ptr current_buffer; + //! The buffer that contains the vector lengths + optional_ptr vector_lengths_buffer; + data_ptr_t current_buffer_ptr; + + //===--------------------------------------------------------------------===// + // Vector metadata + //===--------------------------------------------------------------------===// + page_id_t starting_page; + page_offset_t starting_offset; + + page_id_t *page_ids; + page_offset_t *page_offsets; + uncompressed_size_t *uncompressed_sizes; + compressed_size_t *compressed_sizes; + //! The amount of vectors we've seen so far + idx_t vector_count = 0; + //! The amount of vectors we've seen in the current segment + idx_t vector_in_segment_count = 0; + //! The amount of vectors we're writing + idx_t total_vector_count = 0; + //! Whether we are currently in a Vector + bool in_vector = false; + //! The compression context indicating where we are in the output buffer + duckdb_zstd::ZSTD_outBuffer out_buffer; + idx_t uncompressed_size = 0; + idx_t compressed_size = 0; + string_length_t *string_lengths; + + //! Amount of tuples we have seen for the current vector + idx_t tuple_count = 0; + //! The expected size of this vector (ZSTD_VECTOR_SIZE except for the last one) + idx_t vector_size; +}; + +unique_ptr ZSTDStorage::InitCompression(ColumnDataCheckpointer &checkpointer, + unique_ptr analyze_state_p) { + return make_uniq(checkpointer, + unique_ptr_cast(std::move(analyze_state_p))); +} + +void ZSTDStorage::Compress(CompressionState &state_p, Vector &input, idx_t count) { + auto &state = state_p.Cast(); + + // Get vector data + UnifiedVectorFormat vdata; + input.ToUnifiedFormat(count, vdata); + auto data = UnifiedVectorFormat::GetData(vdata); + + for (idx_t i = 0; i < count; i++) { + auto idx = vdata.sel->get_index(i); + // Note: we treat nulls and empty strings the same + if (!vdata.validity.RowIsValid(idx) || data[idx].GetSize() == 0) { + state.AddNull(); + continue; + } + state.AddString(data[idx]); + } +} + +void ZSTDStorage::FinalizeCompress(CompressionState &state_p) { + auto &state = state_p.Cast(); + state.Finalize(); +} + +struct ZSTDVectorScanMetadata { + //! The index of the (internal) vector being read + idx_t vector_idx; + block_id_t block_id; + page_offset_t block_offset; + + uncompressed_size_t uncompressed_size; + compressed_size_t compressed_size; + + //! The amount of tuples that are in this Vector + idx_t count; +}; + +struct ZSTDVectorScanState { +public: + ZSTDVectorScanState() { + } + ZSTDVectorScanState(ZSTDVectorScanState &&other) = default; + ZSTDVectorScanState(const ZSTDVectorScanState &other) = delete; + +public: + //! The metadata of the vector + ZSTDVectorScanMetadata metadata; + //! The (pinned) buffer handle(s) for this vectors data + vector buffer_handles; + //! The current pointer at which we're reading the vectors data + data_ptr_t current_buffer_ptr; + //! The (uncompressed) string lengths for this vector + string_length_t *string_lengths; + //! The amount of values already consumed from the state + idx_t scanned_count = 0; + //! The amount of compressed data read + idx_t compressed_scan_count = 0; + //! The inBuffer that ZSTD_decompressStream reads the compressed data from + duckdb_zstd::ZSTD_inBuffer in_buffer; +}; + +//===--------------------------------------------------------------------===// +// Scan +//===--------------------------------------------------------------------===// +struct ZSTDScanState : public SegmentScanState { +public: + explicit ZSTDScanState(ColumnSegment &segment) + : state(segment.GetSegmentState()->Cast()), + block_manager(segment.GetBlockManager()), buffer_manager(BufferManager::GetBufferManager(segment.db)), + segment_block_offset(segment.GetBlockOffset()) { + decompression_context = duckdb_zstd::ZSTD_createDCtx(); + segment_handle = buffer_manager.Pin(segment.block); + + auto data = segment_handle.Ptr() + segment.GetBlockOffset(); + idx_t offset = 0; + + segment_count = segment.count.load(); + idx_t amount_of_vectors = (segment_count / ZSTD_VECTOR_SIZE) + ((segment_count % ZSTD_VECTOR_SIZE) != 0); + + // Set pointers to the Vector Metadata + offset = AlignValue(offset); + page_ids = reinterpret_cast(data + offset); + offset += (sizeof(page_id_t) * amount_of_vectors); + + offset = AlignValue(offset); + page_offsets = reinterpret_cast(data + offset); + offset += (sizeof(page_offset_t) * amount_of_vectors); + + offset = AlignValue(offset); + uncompressed_sizes = reinterpret_cast(data + offset); + offset += (sizeof(uncompressed_size_t) * amount_of_vectors); + + offset = AlignValue(offset); + compressed_sizes = reinterpret_cast(data + offset); + offset += (sizeof(compressed_size_t) * amount_of_vectors); + + scanned_count = 0; + } + ~ZSTDScanState() override { + duckdb_zstd::ZSTD_freeDCtx(decompression_context); + } + +public: + idx_t GetVectorIndex(idx_t start_index, idx_t &offset) { + idx_t vector_idx = start_index / ZSTD_VECTOR_SIZE; + offset = start_index % ZSTD_VECTOR_SIZE; + return vector_idx; + } + + ZSTDVectorScanMetadata GetVectorMetadata(idx_t vector_idx) { + idx_t previous_value_count = vector_idx * ZSTD_VECTOR_SIZE; + idx_t value_count = MinValue(segment_count - previous_value_count, ZSTD_VECTOR_SIZE); + + return ZSTDVectorScanMetadata {/* vector_idx = */ vector_idx, + /* block_id = */ page_ids[vector_idx], + /* block_offset = */ page_offsets[vector_idx], + /* uncompressed_size = */ uncompressed_sizes[vector_idx], + /* compressed_size = */ compressed_sizes[vector_idx], + /* count = */ value_count}; + } + + shared_ptr LoadPage(block_id_t block_id) { + return state.GetHandle(block_manager, block_id); + } + + bool UseVectorStateCache(idx_t vector_idx, idx_t internal_offset) { + if (!current_vector) { + // No vector loaded yet + return false; + } + if (current_vector->metadata.vector_idx != vector_idx) { + // Not the same vector + return false; + } + if (current_vector->scanned_count != internal_offset) { + // Not the same scan offset + return false; + } + return true; + } + + ZSTDVectorScanState &LoadVector(idx_t vector_idx, idx_t internal_offset) { + if (UseVectorStateCache(vector_idx, internal_offset)) { + return *current_vector; + } + current_vector = make_uniq(); + current_vector->metadata = GetVectorMetadata(vector_idx); + auto &metadata = current_vector->metadata; + auto &scan_state = *current_vector; + data_ptr_t handle_start; + idx_t ptr_offset = 0; + if (metadata.block_id == INVALID_BLOCK) { + // Data lives on the segment's page + handle_start = segment_handle.Ptr(); + ptr_offset += segment_block_offset; + } else { + // Data lives on an extra page, have to load the block first + auto block = LoadPage(metadata.block_id); + auto data_handle = buffer_manager.Pin(block); + handle_start = data_handle.Ptr(); + scan_state.buffer_handles.push_back(std::move(data_handle)); + } + + ptr_offset += metadata.block_offset; + ptr_offset = AlignValue(ptr_offset); + scan_state.current_buffer_ptr = handle_start + ptr_offset; + + auto vector_size = metadata.count; + + scan_state.string_lengths = reinterpret_cast(scan_state.current_buffer_ptr); + scan_state.current_buffer_ptr += (sizeof(string_length_t) * vector_size); + + // Update the in_buffer to point to the start of the compressed data frame + idx_t current_offset = UnsafeNumericCast(scan_state.current_buffer_ptr - handle_start); + scan_state.in_buffer.src = scan_state.current_buffer_ptr; + scan_state.in_buffer.pos = 0; + scan_state.in_buffer.size = block_manager.GetBlockSize() - sizeof(block_id_t) - current_offset; + + // Initialize the context for streaming decompression + duckdb_zstd::ZSTD_DCtx_reset(decompression_context, duckdb_zstd::ZSTD_reset_session_only); + duckdb_zstd::ZSTD_DCtx_refDDict(decompression_context, nullptr); + + if (internal_offset) { + Skip(scan_state, internal_offset); + } + return scan_state; + } + + void LoadNextPageForVector(ZSTDVectorScanState &scan_state) { + if (scan_state.in_buffer.pos != scan_state.in_buffer.size) { + throw InternalException( + "(ZSTDScanState::LoadNextPageForVector) Trying to load the next page before consuming the current one"); + } + // Read the next block id from the end of the page + auto base_ptr = + reinterpret_cast(const_cast(scan_state.in_buffer.src)); // NOLINT: const cast + auto next_id_ptr = base_ptr + scan_state.in_buffer.size; + block_id_t next_id = Load(next_id_ptr); + + // Load the next page + auto block = LoadPage(next_id); + auto handle = buffer_manager.Pin(block); + auto ptr = handle.Ptr(); + scan_state.buffer_handles.push_back(std::move(handle)); + scan_state.current_buffer_ptr = ptr; + + // Update the in_buffer to point to the new page + scan_state.in_buffer.src = ptr; + scan_state.in_buffer.pos = 0; + + idx_t page_size = block_manager.GetBlockSize() - sizeof(block_id_t); + idx_t remaining_compressed_data = scan_state.metadata.compressed_size - scan_state.compressed_scan_count; + scan_state.in_buffer.size = MinValue(page_size, remaining_compressed_data); + } + + void DecompressString(ZSTDVectorScanState &scan_state, data_ptr_t destination, idx_t uncompressed_length) { + if (uncompressed_length == 0) { + return; + } + + duckdb_zstd::ZSTD_outBuffer out_buffer; + + out_buffer.dst = destination; + out_buffer.pos = 0; + out_buffer.size = uncompressed_length; + + while (true) { + idx_t old_pos = scan_state.in_buffer.pos; + size_t res = duckdb_zstd::ZSTD_decompressStream( + /* zds = */ decompression_context, + /* output =*/&out_buffer, + /* input =*/&scan_state.in_buffer); + scan_state.compressed_scan_count += scan_state.in_buffer.pos - old_pos; + if (duckdb_zstd::ZSTD_isError(res)) { + throw InvalidInputException("ZSTD Decompression failed: %s", duckdb_zstd::ZSTD_getErrorName(res)); + } + if (out_buffer.pos == out_buffer.size) { + break; + } + // Did not fully decompress, it needs a new page to read from + LoadNextPageForVector(scan_state); + } + } + + void Skip(ZSTDVectorScanState &scan_state, idx_t count) { + if (!skip_buffer) { + skip_buffer = Allocator::DefaultAllocator().Allocate(duckdb_zstd::ZSTD_DStreamOutSize()); + } + + D_ASSERT(scan_state.scanned_count + count <= scan_state.metadata.count); + + // Figure out how much we need to skip + string_length_t *string_lengths = &scan_state.string_lengths[scan_state.scanned_count]; + idx_t uncompressed_length = 0; + for (idx_t i = 0; i < count; i++) { + uncompressed_length += string_lengths[i]; + } + + // Skip that many bytes by decompressing into the skip_buffer + idx_t remaining = uncompressed_length; + while (remaining) { + idx_t to_scan = MinValue(skip_buffer.GetSize(), remaining); + DecompressString(scan_state, skip_buffer.get(), to_scan); + remaining -= to_scan; + } + scan_state.scanned_count += count; + scanned_count += count; + } + + void ScanInternal(ZSTDVectorScanState &scan_state, idx_t count, Vector &result, idx_t result_offset) { + D_ASSERT(scan_state.scanned_count + count <= scan_state.metadata.count); + D_ASSERT(result.GetType().id() == LogicalTypeId::VARCHAR); + + string_length_t *string_lengths = &scan_state.string_lengths[scan_state.scanned_count]; + idx_t uncompressed_length = 0; + for (idx_t i = 0; i < count; i++) { + uncompressed_length += string_lengths[i]; + } + auto empty_string = StringVector::EmptyString(result, uncompressed_length); + auto uncompressed_data = empty_string.GetDataWriteable(); + auto string_data = FlatVector::GetData(result); + + DecompressString(scan_state, reinterpret_cast(uncompressed_data), uncompressed_length); + + idx_t offset = 0; + auto uncompressed_data_const = empty_string.GetData(); + for (idx_t i = 0; i < count; i++) { + string_data[result_offset + i] = string_t(uncompressed_data_const + offset, string_lengths[i]); + offset += string_lengths[i]; + } + scan_state.scanned_count += count; + scanned_count += count; + } + + void ScanPartial(idx_t start_idx, Vector &result, idx_t offset, idx_t count) { + idx_t remaining = count; + idx_t scanned = 0; + while (remaining) { + idx_t internal_offset; + idx_t vector_idx = GetVectorIndex(start_idx + scanned, internal_offset); + auto &scan_state = LoadVector(vector_idx, internal_offset); + idx_t remaining_in_vector = scan_state.metadata.count - scan_state.scanned_count; + idx_t to_scan = MinValue(remaining, remaining_in_vector); + ScanInternal(scan_state, to_scan, result, offset + scanned); + remaining -= to_scan; + scanned += to_scan; + } + D_ASSERT(scanned == count); + } + +public: + UncompressedStringSegmentState &state; + BlockManager &block_manager; + BufferManager &buffer_manager; + + duckdb_zstd::ZSTD_DCtx *decompression_context = nullptr; + + idx_t segment_block_offset; + BufferHandle segment_handle; + + //===--------------------------------------------------------------------===// + // Vector metadata + //===--------------------------------------------------------------------===// + page_id_t *page_ids; + page_offset_t *page_offsets; + uncompressed_size_t *uncompressed_sizes; + compressed_size_t *compressed_sizes; + + //! Cache of (the scan state of) the current vector being read + unique_ptr current_vector; + + //! The amount of tuples stored in the segment + idx_t segment_count; + //! The amount of tuples consumed + idx_t scanned_count = 0; + + //! Buffer for skipping data + AllocatedData skip_buffer; +}; + +unique_ptr ZSTDStorage::StringInitScan(ColumnSegment &segment) { + auto result = make_uniq(segment); + return std::move(result); +} + +//===--------------------------------------------------------------------===// +// Scan base data +//===--------------------------------------------------------------------===// +void ZSTDStorage::StringScanPartial(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result, + idx_t result_offset) { + auto &scan_state = state.scan_state->template Cast(); + auto start = segment.GetRelativeIndex(state.row_index); + + scan_state.ScanPartial(start, result, result_offset, scan_count); +} + +void ZSTDStorage::StringScan(ColumnSegment &segment, ColumnScanState &state, idx_t scan_count, Vector &result) { + StringScanPartial(segment, state, scan_count, result, 0); +} + +//===--------------------------------------------------------------------===// +// Fetch +//===--------------------------------------------------------------------===// +void ZSTDStorage::StringFetchRow(ColumnSegment &segment, ColumnFetchState &state, row_t row_id, Vector &result, + idx_t result_idx) { + ZSTDScanState scan_state(segment); + scan_state.ScanPartial(UnsafeNumericCast(row_id), result, result_idx, 1); +} + +//===--------------------------------------------------------------------===// +// Serialization & Cleanup +//===--------------------------------------------------------------------===// + +unique_ptr ZSTDStorage::StringInitSegment(ColumnSegment &segment, block_id_t block_id, + optional_ptr segment_state) { + auto result = make_uniq(); + if (segment_state) { + auto &serialized_state = segment_state->Cast(); + result->on_disk_blocks = std::move(serialized_state.blocks); + } + return std::move(result); +} + +unique_ptr ZSTDStorage::SerializeState(ColumnSegment &segment) { + auto &state = segment.GetSegmentState()->Cast(); + if (state.on_disk_blocks.empty()) { + // no on-disk blocks - nothing to write + return nullptr; + } + return make_uniq(state.on_disk_blocks); +} + +unique_ptr ZSTDStorage::DeserializeState(Deserializer &deserializer) { + auto result = make_uniq(); + deserializer.ReadProperty(1, "overflow_blocks", result->blocks); + return std::move(result); +} + +void ZSTDStorage::CleanupState(ColumnSegment &segment) { + auto &state = segment.GetSegmentState()->Cast(); + auto &block_manager = segment.GetBlockManager(); + for (auto &block_id : state.on_disk_blocks) { + block_manager.MarkBlockAsModified(block_id); + } +} + +//===--------------------------------------------------------------------===// +// Get Function +//===--------------------------------------------------------------------===// +CompressionFunction ZSTDFun::GetFunction(PhysicalType data_type) { + D_ASSERT(data_type == PhysicalType::VARCHAR); + auto zstd = CompressionFunction( + CompressionType::COMPRESSION_ZSTD, data_type, ZSTDStorage::StringInitAnalyze, ZSTDStorage::StringAnalyze, + ZSTDStorage::StringFinalAnalyze, ZSTDStorage::InitCompression, ZSTDStorage::Compress, + ZSTDStorage::FinalizeCompress, ZSTDStorage::StringInitScan, ZSTDStorage::StringScan, + ZSTDStorage::StringScanPartial, ZSTDStorage::StringFetchRow, ZSTDStorage::StringSkip); + zstd.init_segment = ZSTDStorage::StringInitSegment; + zstd.serialize_state = ZSTDStorage::SerializeState; + zstd.deserialize_state = ZSTDStorage::DeserializeState; + zstd.cleanup_state = ZSTDStorage::CleanupState; + return zstd; +} + +bool ZSTDFun::TypeIsSupported(PhysicalType type) { + return type == PhysicalType::VARCHAR; +} + +} // namespace duckdb diff --git a/src/duckdb/src/storage/data_table.cpp b/src/duckdb/src/storage/data_table.cpp index 3e7b63da..1fe64396 100644 --- a/src/duckdb/src/storage/data_table.cpp +++ b/src/duckdb/src/storage/data_table.cpp @@ -3,30 +3,32 @@ #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp" #include "duckdb/common/chrono.hpp" #include "duckdb/common/exception.hpp" +#include "duckdb/common/exception/transaction_exception.hpp" #include "duckdb/common/helper.hpp" +#include "duckdb/common/types/conflict_manager.hpp" +#include "duckdb/common/types/constraint_conflict_info.hpp" #include "duckdb/common/vector_operations/vector_operations.hpp" #include "duckdb/execution/expression_executor.hpp" +#include "duckdb/main/attached_database.hpp" #include "duckdb/main/client_context.hpp" #include "duckdb/parser/constraints/list.hpp" #include "duckdb/planner/constraints/list.hpp" +#include "duckdb/planner/expression/bound_constant_expression.hpp" +#include "duckdb/planner/expression/bound_reference_expression.hpp" #include "duckdb/planner/expression_binder/check_binder.hpp" +#include "duckdb/planner/expression_binder/constant_binder.hpp" #include "duckdb/planner/table_filter.hpp" #include "duckdb/storage/checkpoint/table_data_writer.hpp" #include "duckdb/storage/storage_manager.hpp" -#include "duckdb/storage/table_storage_info.hpp" -#include "duckdb/storage/table/persistent_table_data.hpp" -#include "duckdb/storage/table/row_group.hpp" -#include "duckdb/storage/table/standard_column_data.hpp" -#include "duckdb/transaction/duck_transaction.hpp" -#include "duckdb/transaction/transaction_manager.hpp" -#include "duckdb/main/attached_database.hpp" -#include "duckdb/common/types/conflict_manager.hpp" -#include "duckdb/common/types/constraint_conflict_info.hpp" #include "duckdb/storage/table/append_state.hpp" #include "duckdb/storage/table/delete_state.hpp" +#include "duckdb/storage/table/persistent_table_data.hpp" +#include "duckdb/storage/table/row_group.hpp" #include "duckdb/storage/table/scan_state.hpp" +#include "duckdb/storage/table/standard_column_data.hpp" #include "duckdb/storage/table/update_state.hpp" -#include "duckdb/common/exception/transaction_exception.hpp" +#include "duckdb/storage/table_storage_info.hpp" +#include "duckdb/transaction/duck_transaction.hpp" namespace duckdb { @@ -50,8 +52,8 @@ DataTable::DataTable(AttachedDatabase &db, shared_ptr table_io_m column_definitions(std::move(column_definitions_p)), is_root(true) { // initialize the table with the existing data from disk, if any auto types = GetTypes(); - this->row_groups = - make_shared_ptr(info, TableIOManager::Get(*this).GetBlockManagerForRowData(), types, 0); + auto &io_manager = TableIOManager::Get(*this); + this->row_groups = make_shared_ptr(info, io_manager, types, 0); if (data && data->row_group_count > 0) { this->row_groups->Initialize(*data); } else { @@ -134,29 +136,32 @@ DataTable::DataTable(ClientContext &context, DataTable &parent, idx_t removed_co parent.is_root = false; } -// Alter column to add new constraint -DataTable::DataTable(ClientContext &context, DataTable &parent, unique_ptr constraint) +DataTable::DataTable(ClientContext &context, DataTable &parent, BoundConstraint &constraint) : db(parent.db), info(parent.info), row_groups(parent.row_groups), is_root(true) { + // ALTER COLUMN to add a new constraint. + + // Clone the storage info vector or the table. + for (const auto &index_info : parent.info->index_storage_infos) { + info->index_storage_infos.push_back(IndexStorageInfo(index_info.name)); + } + info->InitializeIndexes(context); + auto &local_storage = LocalStorage::Get(context, db); lock_guard parent_lock(parent.append_lock); for (auto &column_def : parent.column_definitions) { column_definitions.emplace_back(column_def.Copy()); } - info->InitializeIndexes(context); - - // Verify the new constraint against current persistent/local data - VerifyNewConstraint(local_storage, parent, *constraint); - - // Get the local data ownership from old dt + if (constraint.type != ConstraintType::UNIQUE) { + VerifyNewConstraint(local_storage, parent, constraint); + } local_storage.MoveStorage(parent, *this); - // this table replaces the previous table, hence the parent is no longer the root DataTable parent.is_root = false; } DataTable::DataTable(ClientContext &context, DataTable &parent, idx_t changed_idx, const LogicalType &target_type, - const vector &bound_columns, Expression &cast_expr) + const vector &bound_columns, Expression &cast_expr) : db(parent.db), info(parent.info), is_root(true) { auto &local_storage = LocalStorage::Get(context, db); // prevent any tuples from being added to the parent @@ -223,34 +228,29 @@ TableIOManager &TableIOManager::Get(DataTable &table) { //===--------------------------------------------------------------------===// // Scan //===--------------------------------------------------------------------===// -void DataTable::InitializeScan(TableScanState &state, const vector &column_ids, - TableFilterSet *table_filters) { - if (!state.checkpoint_lock) { - state.checkpoint_lock = make_shared_ptr(info->checkpoint_lock.GetSharedLock()); - } - state.Initialize(column_ids, table_filters); - row_groups->InitializeScan(state.table_state, column_ids, table_filters); -} - -void DataTable::InitializeScan(DuckTransaction &transaction, TableScanState &state, const vector &column_ids, - TableFilterSet *table_filters) { +void DataTable::InitializeScan(DuckTransaction &transaction, TableScanState &state, + const vector &column_ids, TableFilterSet *table_filters) { state.checkpoint_lock = transaction.SharedLockTable(*info); auto &local_storage = LocalStorage::Get(transaction); - InitializeScan(state, column_ids, table_filters); + state.Initialize(column_ids, table_filters); + row_groups->InitializeScan(state.table_state, column_ids, table_filters); local_storage.InitializeScan(*this, state.local_state, table_filters); } -void DataTable::InitializeScanWithOffset(TableScanState &state, const vector &column_ids, idx_t start_row, - idx_t end_row) { - if (!state.checkpoint_lock) { - state.checkpoint_lock = make_shared_ptr(info->checkpoint_lock.GetSharedLock()); - } +void DataTable::InitializeScanWithOffset(DuckTransaction &transaction, TableScanState &state, + const vector &column_ids, idx_t start_row, idx_t end_row) { + state.checkpoint_lock = transaction.SharedLockTable(*info); state.Initialize(column_ids); row_groups->InitializeScanWithOffset(state.table_state, column_ids, start_row, end_row); } -idx_t DataTable::MaxThreads(ClientContext &context) { - idx_t parallel_scan_vector_count = Storage::ROW_GROUP_VECTOR_COUNT; +idx_t DataTable::GetRowGroupSize() const { + return row_groups->GetRowGroupSize(); +} + +idx_t DataTable::MaxThreads(ClientContext &context) const { + idx_t row_group_size = GetRowGroupSize(); + idx_t parallel_scan_vector_count = row_group_size / STANDARD_VECTOR_SIZE; if (ClientConfig::GetConfig(context).verify_parallelism) { parallel_scan_vector_count = 1; } @@ -380,7 +380,7 @@ TableStorageInfo DataTable::GetStorageInfo() { //===--------------------------------------------------------------------===// // Fetch //===--------------------------------------------------------------------===// -void DataTable::Fetch(DuckTransaction &transaction, DataChunk &result, const vector &column_ids, +void DataTable::Fetch(DuckTransaction &transaction, DataChunk &result, const vector &column_ids, const Vector &row_identifiers, idx_t fetch_count, ColumnFetchState &state) { auto lock = info->checkpoint_lock.GetSharedLock(); row_groups->Fetch(transaction, result, column_ids, row_identifiers, fetch_count, state); @@ -424,7 +424,8 @@ static void VerifyCheckConstraint(ClientContext &context, TableCatalogEntry &tab } catch (std::exception &ex) { ErrorData error(ex); throw ConstraintException("CHECK constraint failed: %s (Error: %s)", table.name, error.RawMessage()); - } catch (...) { // LCOV_EXCL_START + } catch (...) { + // LCOV_EXCL_START throw ConstraintException("CHECK constraint failed: %s (Unknown Error)", table.name); } // LCOV_EXCL_STOP UnifiedVectorFormat vdata; @@ -688,29 +689,24 @@ void DataTable::VerifyUniqueIndexes(TableIndexList &indexes, ClientContext &cont D_ASSERT(conflict_manager); // The conflict manager is only provided when a ON CONFLICT clause was provided to the INSERT statement - idx_t matching_indexes = 0; auto &conflict_info = conflict_manager->GetConflictInfo(); // First we figure out how many indexes match our conflict target // So we can optimize accordingly - indexes.Scan([&](Index &index) { - matching_indexes += conflict_info.ConflictTargetMatches(index); - return false; - }); - conflict_manager->SetMode(ConflictManagerMode::SCAN); - conflict_manager->SetIndexCount(matching_indexes); - // First we verify only the indexes that match our conflict target - unordered_set checked_indexes; indexes.Scan([&](Index &index) { if (!index.IsUnique()) { return false; } if (conflict_info.ConflictTargetMatches(index)) { D_ASSERT(index.IsBound()); - index.Cast().VerifyAppend(chunk, *conflict_manager); - checked_indexes.insert(&index); + conflict_manager->AddIndex(index.Cast()); } return false; }); + conflict_manager->SetMode(ConflictManagerMode::SCAN); + // First we verify only the indexes that match our conflict target + for (auto index : conflict_manager->MatchedIndexes()) { + index->VerifyAppend(chunk, *conflict_manager); + } conflict_manager->SetMode(ConflictManagerMode::THROW); // Then we scan the other indexes, throwing if they cause conflicts on tuples that were not found during @@ -719,12 +715,13 @@ void DataTable::VerifyUniqueIndexes(TableIndexList &indexes, ClientContext &cont if (!index.IsUnique()) { return false; } - if (checked_indexes.count(&index)) { + D_ASSERT(index.IsBound()); + auto &bound_index = index.Cast(); + if (conflict_manager->MatchedIndex(bound_index)) { // Already checked this constraint return false; } - D_ASSERT(index.IsBound()); - index.Cast().VerifyAppend(chunk, *conflict_manager); + bound_index.VerifyAppend(chunk, *conflict_manager); return false; }); } @@ -759,14 +756,14 @@ void DataTable::VerifyAppendConstraints(ConstraintState &state, ClientContext &c auto &constraint = state.bound_constraints[i]; switch (base_constraint->type) { case ConstraintType::NOT_NULL: { - auto &bound_not_null = *reinterpret_cast(constraint.get()); - auto ¬_null = *reinterpret_cast(base_constraint.get()); + auto &bound_not_null = constraint->Cast(); + auto ¬_null = base_constraint->Cast(); auto &col = table.GetColumns().GetColumn(LogicalIndex(not_null.index)); VerifyNotNullConstraint(table, chunk.data[bound_not_null.index.index], chunk.size(), col.Name()); break; } case ConstraintType::CHECK: { - auto &check = *reinterpret_cast(constraint.get()); + auto &check = constraint->Cast(); VerifyCheckConstraint(context, table, *check.expression, chunk); break; } @@ -775,7 +772,7 @@ void DataTable::VerifyAppendConstraints(ConstraintState &state, ClientContext &c break; } case ConstraintType::FOREIGN_KEY: { - auto &bfk = *reinterpret_cast(constraint.get()); + auto &bfk = constraint->Cast(); if (bfk.info.type == ForeignKeyType::FK_TYPE_FOREIGN_KEY_TABLE || bfk.info.type == ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE) { VerifyAppendForeignKeyConstraint(bfk, context, chunk); @@ -855,12 +852,60 @@ void DataTable::LocalAppend(TableCatalogEntry &table, ClientContext &context, Da } void DataTable::LocalAppend(TableCatalogEntry &table, ClientContext &context, ColumnDataCollection &collection, - const vector> &bound_constraints) { + const vector> &bound_constraints, + optional_ptr> column_ids) { + LocalAppendState append_state; auto &storage = table.GetStorage(); storage.InitializeLocalAppend(append_state, table, context, bound_constraints); + + if (!column_ids || column_ids->empty()) { + for (auto &chunk : collection.Chunks()) { + storage.LocalAppend(append_state, table, context, chunk); + } + storage.FinalizeLocalAppend(append_state); + return; + } + + auto &column_list = table.GetColumns(); + map> active_expressions; + for (idx_t i = 0; i < column_ids->size(); i++) { + auto &col = column_list.GetColumn((*column_ids)[i]); + auto expr = make_uniq(col.Name(), col.Type(), i); + active_expressions[col.Physical()] = std::move(expr); + } + + auto binder = Binder::CreateBinder(context); + ConstantBinder default_binder(*binder, context, "DEFAULT value"); + vector> expressions; + for (idx_t i = 0; i < column_list.PhysicalColumnCount(); i++) { + auto expr = active_expressions.find(PhysicalIndex(i)); + if (expr != active_expressions.end()) { + expressions.push_back(std::move(expr->second)); + continue; + } + + auto &col = column_list.GetColumn(PhysicalIndex(i)); + if (!col.HasDefaultValue()) { + auto null_expr = make_uniq(Value(col.Type())); + expressions.push_back(std::move(null_expr)); + continue; + } + + auto default_copy = col.DefaultValue().Copy(); + default_binder.target_type = col.Type(); + auto bound_default = default_binder.Bind(default_copy); + expressions.push_back(std::move(bound_default)); + } + + ExpressionExecutor expression_executor(context, expressions); + DataChunk result; + result.Initialize(context, table.GetTypes()); + for (auto &chunk : collection.Chunks()) { - storage.LocalAppend(append_state, table, context, chunk); + expression_executor.Execute(chunk, result); + storage.LocalAppend(append_state, table, context, result); + result.Reset(); } storage.FinalizeLocalAppend(append_state); } @@ -891,17 +936,18 @@ void DataTable::FinalizeAppend(DuckTransaction &transaction, TableAppendState &s row_groups->FinalizeAppend(transaction, state); } -void DataTable::ScanTableSegment(idx_t row_start, idx_t count, const std::function &function) { +void DataTable::ScanTableSegment(DuckTransaction &transaction, idx_t row_start, idx_t count, + const std::function &function) { if (count == 0) { return; } idx_t end = row_start + count; - vector column_ids; + vector column_ids; vector types; for (idx_t i = 0; i < this->column_definitions.size(); i++) { auto &col = this->column_definitions[i]; - column_ids.push_back(i); + column_ids.emplace_back(i); types.push_back(col.Type()); } DataChunk chunk; @@ -909,7 +955,7 @@ void DataTable::ScanTableSegment(idx_t row_start, idx_t count, const std::functi CreateIndexScanState state; - InitializeScanWithOffset(state, column_ids, row_start, row_start + count); + InitializeScanWithOffset(transaction, state, column_ids, row_start, row_start + count); auto row_start_aligned = state.table_state.row_group->start + state.table_state.vector_index * STANDARD_VECTOR_SIZE; idx_t current_row = row_start_aligned; @@ -951,7 +997,7 @@ void DataTable::MergeStorage(RowGroupCollection &data, TableIndexList &, row_groups->Verify(); } -void DataTable::WriteToLog(WriteAheadLog &log, idx_t row_start, idx_t count, +void DataTable::WriteToLog(DuckTransaction &transaction, WriteAheadLog &log, idx_t row_start, idx_t count, optional_ptr commit_state) { log.WriteSetTable(info->schema, info->table); if (commit_state) { @@ -973,7 +1019,7 @@ void DataTable::WriteToLog(WriteAheadLog &log, idx_t row_start, idx_t count, } } } - ScanTableSegment(row_start, count, [&](DataChunk &chunk) { log.WriteInsert(chunk); }); + ScanTableSegment(transaction, row_start, count, [&](DataChunk &chunk) { log.WriteInsert(chunk); }); } void DataTable::CommitAppend(transaction_t commit_id, idx_t row_start, idx_t count) { @@ -987,7 +1033,7 @@ void DataTable::RevertAppendInternal(idx_t start_row) { row_groups->RevertAppendInternal(start_row); } -void DataTable::RevertAppend(idx_t start_row, idx_t count) { +void DataTable::RevertAppend(DuckTransaction &transaction, idx_t start_row, idx_t count) { lock_guard lock(append_lock); // revert any appends to indexes @@ -996,7 +1042,7 @@ void DataTable::RevertAppend(idx_t start_row, idx_t count) { row_t row_data[STANDARD_VECTOR_SIZE]; Vector row_identifiers(LogicalType::ROW_TYPE, data_ptr_cast(row_data)); idx_t scan_count = MinValue(count, row_groups->GetTotalRows() - start_row); - ScanTableSegment(start_row, scan_count, [&](DataChunk &chunk) { + ScanTableSegment(transaction, start_row, scan_count, [&](DataChunk &chunk) { for (idx_t i = 0; i < chunk.size(); i++) { row_data[i] = NumericCast(current_row_base + i); } @@ -1137,7 +1183,7 @@ void DataTable::VerifyDeleteConstraints(TableDeleteState &state, ClientContext & case ConstraintType::UNIQUE: break; case ConstraintType::FOREIGN_KEY: { - auto &bfk = *reinterpret_cast(constraint.get()); + auto &bfk = constraint->Cast(); if (bfk.info.type == ForeignKeyType::FK_TYPE_PRIMARY_KEY_TABLE || bfk.info.type == ForeignKeyType::FK_TYPE_SELF_REFERENCE_TABLE) { VerifyDeleteForeignKeyConstraint(bfk, context, chunk); @@ -1162,7 +1208,7 @@ unique_ptr DataTable::InitializeDelete(TableCatalogEntry &tabl if (result->has_delete_constraints) { // initialize the chunk if there are any constraints to verify for (idx_t i = 0; i < column_definitions.size(); i++) { - result->col_ids.push_back(column_definitions[i].StorageOid()); + result->col_ids.emplace_back(column_definitions[i].StorageOid()); types.emplace_back(column_definitions[i].Type()); } result->verify_chunk.Initialize(Allocator::Get(context), types); @@ -1270,8 +1316,8 @@ void DataTable::VerifyUpdateConstraints(ConstraintState &state, ClientContext &c auto &constraint = bound_constraints[constr_idx]; switch (constraint->type) { case ConstraintType::NOT_NULL: { - auto &bound_not_null = *reinterpret_cast(constraint.get()); - auto ¬_null = *reinterpret_cast(base_constraint.get()); + auto &bound_not_null = constraint->Cast(); + auto ¬_null = base_constraint->Cast(); // check if the constraint is in the list of column_ids for (idx_t col_idx = 0; col_idx < column_ids.size(); col_idx++) { if (column_ids[col_idx] == bound_not_null.index) { @@ -1284,7 +1330,7 @@ void DataTable::VerifyUpdateConstraints(ConstraintState &state, ClientContext &c break; } case ConstraintType::CHECK: { - auto &check = *reinterpret_cast(constraint.get()); + auto &check = constraint->Cast(); DataChunk mock_chunk; if (CreateMockChunk(table, column_ids, check.bound_columns, chunk, mock_chunk)) { @@ -1459,11 +1505,39 @@ void DataTable::CommitDropTable() { } //===--------------------------------------------------------------------===// -// GetColumnSegmentInfo +// Column Segment Info //===--------------------------------------------------------------------===// vector DataTable::GetColumnSegmentInfo() { auto lock = GetSharedCheckpointLock(); return row_groups->GetColumnSegmentInfo(); } +//===--------------------------------------------------------------------===// +// Index Constraint Creation +//===--------------------------------------------------------------------===// +void DataTable::AddIndex(const ColumnList &columns, const vector &column_indexes, + const IndexConstraintType type, const IndexStorageInfo &index_info) { + if (!IsRoot()) { + throw TransactionException("cannot add an index to a table that has been altered!"); + } + + // Fetch the column types and create bound column reference expressions. + vector physical_ids; + vector> expressions; + + for (const auto column_index : column_indexes) { + auto binding = ColumnBinding(0, physical_ids.size()); + auto &col = columns.GetColumn(column_index); + auto ref = make_uniq(col.Name(), col.Type(), binding); + expressions.push_back(std::move(ref)); + physical_ids.push_back(col.Physical().index); + } + + // Create an ART around the expressions. + auto &io_manager = TableIOManager::Get(*this); + auto art = make_uniq(index_info.name, type, physical_ids, io_manager, std::move(expressions), db, nullptr, + index_info); + info->indexes.AddIndex(std::move(art)); +} + } // namespace duckdb diff --git a/src/duckdb/src/storage/local_storage.cpp b/src/duckdb/src/storage/local_storage.cpp index 282eb349..a702af82 100644 --- a/src/duckdb/src/storage/local_storage.cpp +++ b/src/duckdb/src/storage/local_storage.cpp @@ -19,8 +19,8 @@ LocalTableStorage::LocalTableStorage(ClientContext &context, DataTable &table) merged_storage(false) { auto types = table.GetTypes(); auto data_table_info = table.GetDataTableInfo(); - row_groups = make_shared_ptr( - data_table_info, TableIOManager::Get(table).GetBlockManagerForRowData(), types, MAX_ROW_ID, 0); + auto &io_manager = TableIOManager::Get(table); + row_groups = make_shared_ptr(data_table_info, io_manager, types, MAX_ROW_ID, 0); row_groups->InitializeEmpty(); data_table_info->GetIndexes().BindAndScan(context, *data_table_info, [&](ART &art) { @@ -40,7 +40,7 @@ LocalTableStorage::LocalTableStorage(ClientContext &context, DataTable &table) LocalTableStorage::LocalTableStorage(ClientContext &context, DataTable &new_dt, LocalTableStorage &parent, idx_t changed_idx, const LogicalType &target_type, - const vector &bound_columns, Expression &cast_expr) + const vector &bound_columns, Expression &cast_expr) : table_ref(new_dt), allocator(Allocator::Get(new_dt.db)), deleted_rows(parent.deleted_rows), optimistic_writer(new_dt, parent.optimistic_writer), optimistic_writers(std::move(parent.optimistic_writers)), merged_storage(parent.merged_storage) { @@ -110,7 +110,8 @@ void LocalTableStorage::WriteNewRowGroup() { } void LocalTableStorage::FlushBlocks() { - if (!merged_storage && row_groups->GetTotalRows() > Storage::ROW_GROUP_SIZE) { + const idx_t row_group_size = row_groups->GetRowGroupSize(); + if (!merged_storage && row_groups->GetTotalRows() > row_group_size) { optimistic_writer.WriteLastRowGroup(*row_groups); } optimistic_writer.FinalFlush(); @@ -121,15 +122,20 @@ ErrorData LocalTableStorage::AppendToIndexes(DuckTransaction &transaction, RowGr row_t &start_row) { // only need to scan for index append // figure out which columns we need to scan for the set of indexes - auto columns = index_list.GetRequiredColumns(); + auto index_columns = index_list.GetRequiredColumns(); + vector required_columns; + for (auto &col : index_columns) { + required_columns.emplace_back(col); + } // create an empty mock chunk that contains all the correct types for the table DataChunk mock_chunk; mock_chunk.InitializeEmpty(table_types); ErrorData error; - source.Scan(transaction, columns, [&](DataChunk &chunk) -> bool { + source.Scan(transaction, required_columns, [&](DataChunk &chunk) -> bool { // construct the mock chunk by referencing the required columns - for (idx_t i = 0; i < columns.size(); i++) { - mock_chunk.data[columns[i]].Reference(chunk.data[i]); + for (idx_t i = 0; i < required_columns.size(); i++) { + auto col_id = required_columns[i].GetPrimaryIndex(); + mock_chunk.data[col_id].Reference(chunk.data[i]); } mock_chunk.SetCardinality(chunk); // append this chunk to the indexes of the table @@ -323,7 +329,7 @@ void LocalStorage::InitializeScan(DataTable &table, CollectionScanState &state, storage->InitializeScan(state, table_filters); } -void LocalStorage::Scan(CollectionScanState &state, const vector &column_ids, DataChunk &result) { +void LocalStorage::Scan(CollectionScanState &state, const vector &, DataChunk &result) { state.Scan(transaction, result); } @@ -446,13 +452,14 @@ void LocalStorage::Flush(DataTable &table, LocalTableStorage &storage, optional_ return; } idx_t append_count = storage.row_groups->GetTotalRows() - storage.deleted_rows; - table.InitializeIndexes(context); + const idx_t row_group_size = storage.row_groups->GetRowGroupSize(); + TableAppendState append_state; table.AppendLock(append_state); transaction.PushAppend(table, NumericCast(append_state.row_start), append_count); - if ((append_state.row_start == 0 || storage.row_groups->GetTotalRows() >= MERGE_THRESHOLD) && + if ((append_state.row_start == 0 || storage.row_groups->GetTotalRows() >= row_group_size) && storage.deleted_rows == 0) { // table is currently empty OR we are bulk appending: move over the storage directly // first flush any outstanding blocks @@ -555,7 +562,7 @@ void LocalStorage::DropColumn(DataTable &old_dt, DataTable &new_dt, idx_t remove } void LocalStorage::ChangeType(DataTable &old_dt, DataTable &new_dt, idx_t changed_idx, const LogicalType &target_type, - const vector &bound_columns, Expression &cast_expr) { + const vector &bound_columns, Expression &cast_expr) { // check if there are any pending appends for the old version of the table auto storage = table_manager.MoveEntry(old_dt); if (!storage) { @@ -566,7 +573,7 @@ void LocalStorage::ChangeType(DataTable &old_dt, DataTable &new_dt, idx_t change table_manager.InsertEntry(new_dt, std::move(new_storage)); } -void LocalStorage::FetchChunk(DataTable &table, Vector &row_ids, idx_t count, const vector &col_ids, +void LocalStorage::FetchChunk(DataTable &table, Vector &row_ids, idx_t count, const vector &col_ids, DataChunk &chunk, ColumnFetchState &fetch_state) { auto storage = table_manager.GetStorage(table); if (!storage) { diff --git a/src/duckdb/src/storage/metadata/metadata_manager.cpp b/src/duckdb/src/storage/metadata/metadata_manager.cpp index f29b61df..04987e65 100644 --- a/src/duckdb/src/storage/metadata/metadata_manager.cpp +++ b/src/duckdb/src/storage/metadata/metadata_manager.cpp @@ -50,7 +50,7 @@ MetadataHandle MetadataManager::AllocateHandle() { return Pin(pointer); } -MetadataHandle MetadataManager::Pin(MetadataPointer pointer) { +MetadataHandle MetadataManager::Pin(const MetadataPointer &pointer) { D_ASSERT(pointer.index < METADATA_BLOCK_COUNT); auto &block = blocks[UnsafeNumericCast(pointer.block_index)]; @@ -111,7 +111,7 @@ void MetadataManager::AddAndRegisterBlock(MetadataBlock block) { AddBlock(std::move(block), true); } -MetaBlockPointer MetadataManager::GetDiskPointer(MetadataPointer pointer, uint32_t offset) { +MetaBlockPointer MetadataManager::GetDiskPointer(const MetadataPointer &pointer, uint32_t offset) { idx_t block_pointer = idx_t(pointer.block_index); block_pointer |= idx_t(pointer.index) << 56ULL; return MetaBlockPointer(block_pointer, offset); @@ -185,7 +185,7 @@ void MetadataManager::Flush() { D_ASSERT(kv.first == block.block_id); if (block.block->BlockId() >= MAXIMUM_BLOCK) { // temporary block - convert to persistent - block.block = block_manager.ConvertToPersistent(kv.first, std::move(block.block)); + block.block = block_manager.ConvertToPersistent(kv.first, std::move(block.block), std::move(handle)); } else { // already a persistent block - only need to write it D_ASSERT(block.block->BlockId() == block.block_id); diff --git a/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp b/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp index 5bec4819..e5df17d5 100644 --- a/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp +++ b/src/duckdb/src/storage/serialization/serialize_logical_operator.cpp @@ -106,6 +106,9 @@ unique_ptr LogicalOperator::Deserialize(Deserializer &deseriali case LogicalOperatorType::LOGICAL_EXPLAIN: result = LogicalExplain::Deserialize(deserializer); break; + case LogicalOperatorType::LOGICAL_EXPORT: + result = LogicalExport::Deserialize(deserializer); + break; case LogicalOperatorType::LOGICAL_EXPRESSION_GET: result = LogicalExpressionGet::Deserialize(deserializer); break; @@ -327,12 +330,14 @@ void LogicalCreateIndex::Serialize(Serializer &serializer) const { LogicalOperator::Serialize(serializer); serializer.WritePropertyWithDefault>(200, "info", info); serializer.WritePropertyWithDefault>>(201, "unbound_expressions", unbound_expressions); + serializer.WritePropertyWithDefault>(202, "alter_table_info", alter_table_info); } unique_ptr LogicalCreateIndex::Deserialize(Deserializer &deserializer) { auto info = deserializer.ReadPropertyWithDefault>(200, "info"); auto unbound_expressions = deserializer.ReadPropertyWithDefault>>(201, "unbound_expressions"); - auto result = duckdb::unique_ptr(new LogicalCreateIndex(deserializer.Get(), std::move(info), std::move(unbound_expressions))); + auto alter_table_info = deserializer.ReadPropertyWithDefault>(202, "alter_table_info"); + auto result = duckdb::unique_ptr(new LogicalCreateIndex(deserializer.Get(), std::move(info), std::move(unbound_expressions), std::move(alter_table_info))); return std::move(result); } @@ -442,6 +447,19 @@ unique_ptr LogicalExplain::Deserialize(Deserializer &deserializ return std::move(result); } +void LogicalExport::Serialize(Serializer &serializer) const { + LogicalOperator::Serialize(serializer); + serializer.WritePropertyWithDefault>(200, "copy_info", copy_info); + serializer.WritePropertyWithDefault>(201, "exported_tables", exported_tables); +} + +unique_ptr LogicalExport::Deserialize(Deserializer &deserializer) { + auto copy_info = deserializer.ReadPropertyWithDefault>(200, "copy_info"); + auto exported_tables = deserializer.ReadPropertyWithDefault>(201, "exported_tables"); + auto result = duckdb::unique_ptr(new LogicalExport(deserializer.Get(), std::move(copy_info), std::move(exported_tables))); + return std::move(result); +} + void LogicalExpressionGet::Serialize(Serializer &serializer) const { LogicalOperator::Serialize(serializer); serializer.WritePropertyWithDefault(200, "table_index", table_index); @@ -546,13 +564,13 @@ unique_ptr LogicalMaterializedCTE::Deserialize(Deserializer &de void LogicalOrder::Serialize(Serializer &serializer) const { LogicalOperator::Serialize(serializer); serializer.WritePropertyWithDefault>(200, "orders", orders); - serializer.WritePropertyWithDefault>(201, "projections", projections); + serializer.WritePropertyWithDefault>(201, "projections", projection_map); } unique_ptr LogicalOrder::Deserialize(Deserializer &deserializer) { auto orders = deserializer.ReadPropertyWithDefault>(200, "orders"); auto result = duckdb::unique_ptr(new LogicalOrder(std::move(orders))); - deserializer.ReadPropertyWithDefault>(201, "projections", result->projections); + deserializer.ReadPropertyWithDefault>(201, "projections", result->projection_map); return std::move(result); } diff --git a/src/duckdb/src/storage/serialization/serialize_nodes.cpp b/src/duckdb/src/storage/serialization/serialize_nodes.cpp index 872e3a5b..440976e8 100644 --- a/src/duckdb/src/storage/serialization/serialize_nodes.cpp +++ b/src/duckdb/src/storage/serialization/serialize_nodes.cpp @@ -32,6 +32,9 @@ #include "duckdb/function/scalar/strftime_format.hpp" #include "duckdb/function/table/read_csv.hpp" #include "duckdb/common/types/interval.hpp" +#include "duckdb/parser/qualified_name.hpp" +#include "duckdb/parser/parsed_data/exported_table_data.hpp" +#include "duckdb/common/column_index.hpp" namespace duckdb { @@ -187,14 +190,14 @@ void CSVReaderOptions::Serialize(Serializer &serializer) const { serializer.WritePropertyWithDefault(118, "rejects_limit", rejects_limit); /* [Deleted] (vector) "rejects_recovery_columns" */ /* [Deleted] (vector) "rejects_recovery_column_ids" */ - serializer.WriteProperty>(121, "dialect_options.state_machine_options.delimiter", dialect_options.state_machine_options.delimiter); - serializer.WriteProperty>(122, "dialect_options.state_machine_options.quote", dialect_options.state_machine_options.quote); - serializer.WriteProperty>(123, "dialect_options.state_machine_options.escape", dialect_options.state_machine_options.escape); - serializer.WriteProperty>(124, "dialect_options.header", dialect_options.header); - serializer.WritePropertyWithDefault(125, "dialect_options.num_cols", dialect_options.num_cols); - serializer.WriteProperty>(126, "dialect_options.state_machine_options.new_line", dialect_options.state_machine_options.new_line); - serializer.WriteProperty>(127, "dialect_options.skip_rows", dialect_options.skip_rows); - serializer.WriteProperty>>(128, "dialect_options.date_format", dialect_options.date_format); + serializer.WriteProperty>(121, "delimiter", GetSingleByteDelimiter()); + serializer.WriteProperty>(122, "quote", dialect_options.state_machine_options.quote); + serializer.WriteProperty>(123, "escape", dialect_options.state_machine_options.escape); + serializer.WriteProperty>(124, "header", dialect_options.header); + serializer.WritePropertyWithDefault(125, "num_cols", dialect_options.num_cols); + serializer.WriteProperty>(126, "new_line", dialect_options.state_machine_options.new_line); + serializer.WriteProperty>(127, "skip_rows", dialect_options.skip_rows); + serializer.WriteProperty>>(128, "date_format", dialect_options.date_format); serializer.WritePropertyWithDefault(129, "sniffer_user_mismatch_error", sniffer_user_mismatch_error); serializer.WritePropertyWithDefault(130, "parallel", parallel); serializer.WritePropertyWithDefault>(131, "was_type_manually_set", was_type_manually_set); @@ -203,51 +206,95 @@ void CSVReaderOptions::Serialize(Serializer &serializer) const { serializer.WritePropertyWithDefault>(134, "sql_type_list", sql_type_list); serializer.WritePropertyWithDefault>(135, "sql_types_per_column", sql_types_per_column); serializer.WritePropertyWithDefault(136, "columns_set", columns_set, false); - serializer.WritePropertyWithDefault>(137, "dialect_options.state_machine_options.comment", dialect_options.state_machine_options.comment, CSVOption('\0')); - serializer.WritePropertyWithDefault(138, "dialect_options.rows_until_header", dialect_options.rows_until_header); + serializer.WritePropertyWithDefault>(137, "comment", dialect_options.state_machine_options.comment, CSVOption('\0')); + serializer.WritePropertyWithDefault(138, "rows_until_header", dialect_options.rows_until_header); + serializer.WritePropertyWithDefault(139, "encoding", encoding); + serializer.WriteProperty>(140, "rfc_4180", dialect_options.state_machine_options.rfc_4180); + serializer.WriteProperty>(141, "multi_byte_delimiter", GetMultiByteDelimiter()); } CSVReaderOptions CSVReaderOptions::Deserialize(Deserializer &deserializer) { - CSVReaderOptions result; - deserializer.ReadPropertyWithExplicitDefault(100, "ignore_errors", result.ignore_errors, false); - deserializer.ReadPropertyWithDefault(101, "buffer_sample_size", result.buffer_sample_size); - deserializer.ReadPropertyWithDefault>(102, "null_str", result.null_str); - deserializer.ReadProperty(103, "compression", result.compression); - deserializer.ReadPropertyWithDefault(104, "allow_quoted_nulls", result.allow_quoted_nulls); - deserializer.ReadPropertyWithDefault(105, "maximum_line_size", result.maximum_line_size); - deserializer.ReadPropertyWithDefault(106, "normalize_names", result.normalize_names); - deserializer.ReadPropertyWithDefault>(107, "force_not_null", result.force_not_null); - deserializer.ReadPropertyWithDefault(108, "all_varchar", result.all_varchar); - deserializer.ReadPropertyWithDefault(109, "sample_size_chunks", result.sample_size_chunks); - deserializer.ReadPropertyWithDefault(110, "auto_detect", result.auto_detect); - deserializer.ReadPropertyWithDefault(111, "file_path", result.file_path); - deserializer.ReadPropertyWithDefault(112, "decimal_separator", result.decimal_separator); - deserializer.ReadPropertyWithDefault(113, "null_padding", result.null_padding); - deserializer.ReadPropertyWithDefault(114, "buffer_size", result.buffer_size); - deserializer.ReadProperty(115, "file_options", result.file_options); - deserializer.ReadPropertyWithDefault>(116, "force_quote", result.force_quote); - deserializer.ReadPropertyWithExplicitDefault(117, "rejects_table_name", result.rejects_table_name, "reject_errors"); - deserializer.ReadPropertyWithDefault(118, "rejects_limit", result.rejects_limit); + auto ignore_errors = deserializer.ReadPropertyWithExplicitDefault(100, "ignore_errors", false); + auto buffer_sample_size = deserializer.ReadPropertyWithDefault(101, "buffer_sample_size"); + auto null_str = deserializer.ReadPropertyWithDefault>(102, "null_str"); + auto compression = deserializer.ReadProperty(103, "compression"); + auto allow_quoted_nulls = deserializer.ReadPropertyWithDefault(104, "allow_quoted_nulls"); + auto maximum_line_size = deserializer.ReadPropertyWithDefault(105, "maximum_line_size"); + auto normalize_names = deserializer.ReadPropertyWithDefault(106, "normalize_names"); + auto force_not_null = deserializer.ReadPropertyWithDefault>(107, "force_not_null"); + auto all_varchar = deserializer.ReadPropertyWithDefault(108, "all_varchar"); + auto sample_size_chunks = deserializer.ReadPropertyWithDefault(109, "sample_size_chunks"); + auto auto_detect = deserializer.ReadPropertyWithDefault(110, "auto_detect"); + auto file_path = deserializer.ReadPropertyWithDefault(111, "file_path"); + auto decimal_separator = deserializer.ReadPropertyWithDefault(112, "decimal_separator"); + auto null_padding = deserializer.ReadPropertyWithDefault(113, "null_padding"); + auto buffer_size = deserializer.ReadPropertyWithDefault(114, "buffer_size"); + auto file_options = deserializer.ReadProperty(115, "file_options"); + auto force_quote = deserializer.ReadPropertyWithDefault>(116, "force_quote"); + auto rejects_table_name = deserializer.ReadPropertyWithExplicitDefault(117, "rejects_table_name", "reject_errors"); + auto rejects_limit = deserializer.ReadPropertyWithDefault(118, "rejects_limit"); deserializer.ReadDeletedProperty>(119, "rejects_recovery_columns"); deserializer.ReadDeletedProperty>(120, "rejects_recovery_column_ids"); - deserializer.ReadProperty>(121, "dialect_options.state_machine_options.delimiter", result.dialect_options.state_machine_options.delimiter); - deserializer.ReadProperty>(122, "dialect_options.state_machine_options.quote", result.dialect_options.state_machine_options.quote); - deserializer.ReadProperty>(123, "dialect_options.state_machine_options.escape", result.dialect_options.state_machine_options.escape); - deserializer.ReadProperty>(124, "dialect_options.header", result.dialect_options.header); - deserializer.ReadPropertyWithDefault(125, "dialect_options.num_cols", result.dialect_options.num_cols); - deserializer.ReadProperty>(126, "dialect_options.state_machine_options.new_line", result.dialect_options.state_machine_options.new_line); - deserializer.ReadProperty>(127, "dialect_options.skip_rows", result.dialect_options.skip_rows); - deserializer.ReadProperty>>(128, "dialect_options.date_format", result.dialect_options.date_format); - deserializer.ReadPropertyWithDefault(129, "sniffer_user_mismatch_error", result.sniffer_user_mismatch_error); - deserializer.ReadPropertyWithDefault(130, "parallel", result.parallel); - deserializer.ReadPropertyWithDefault>(131, "was_type_manually_set", result.was_type_manually_set); - deserializer.ReadPropertyWithExplicitDefault>(132, "rejects_scan_name", result.rejects_scan_name, {"reject_scans"}); - deserializer.ReadPropertyWithDefault>(133, "name_list", result.name_list); - deserializer.ReadPropertyWithDefault>(134, "sql_type_list", result.sql_type_list); - deserializer.ReadPropertyWithDefault>(135, "sql_types_per_column", result.sql_types_per_column); - deserializer.ReadPropertyWithExplicitDefault(136, "columns_set", result.columns_set, false); - deserializer.ReadPropertyWithExplicitDefault>(137, "dialect_options.state_machine_options.comment", result.dialect_options.state_machine_options.comment, CSVOption('\0')); - deserializer.ReadPropertyWithDefault(138, "dialect_options.rows_until_header", result.dialect_options.rows_until_header); + auto dialect_options_state_machine_options_delimiter = deserializer.ReadProperty>(121, "delimiter"); + auto dialect_options_state_machine_options_quote = deserializer.ReadProperty>(122, "quote"); + auto dialect_options_state_machine_options_escape = deserializer.ReadProperty>(123, "escape"); + auto dialect_options_header = deserializer.ReadProperty>(124, "header"); + auto dialect_options_num_cols = deserializer.ReadPropertyWithDefault(125, "num_cols"); + auto dialect_options_state_machine_options_new_line = deserializer.ReadProperty>(126, "new_line"); + auto dialect_options_skip_rows = deserializer.ReadProperty>(127, "skip_rows"); + auto dialect_options_date_format = deserializer.ReadProperty>>(128, "date_format"); + auto sniffer_user_mismatch_error = deserializer.ReadPropertyWithDefault(129, "sniffer_user_mismatch_error"); + auto parallel = deserializer.ReadPropertyWithDefault(130, "parallel"); + auto was_type_manually_set = deserializer.ReadPropertyWithDefault>(131, "was_type_manually_set"); + auto rejects_scan_name = deserializer.ReadPropertyWithExplicitDefault>(132, "rejects_scan_name", {"reject_scans"}); + auto name_list = deserializer.ReadPropertyWithDefault>(133, "name_list"); + auto sql_type_list = deserializer.ReadPropertyWithDefault>(134, "sql_type_list"); + auto sql_types_per_column = deserializer.ReadPropertyWithDefault>(135, "sql_types_per_column"); + auto columns_set = deserializer.ReadPropertyWithExplicitDefault(136, "columns_set", false); + auto dialect_options_state_machine_options_comment = deserializer.ReadPropertyWithExplicitDefault>(137, "comment", CSVOption('\0')); + auto dialect_options_rows_until_header = deserializer.ReadPropertyWithDefault(138, "rows_until_header"); + auto encoding = deserializer.ReadPropertyWithDefault(139, "encoding"); + auto dialect_options_state_machine_options_rfc_4180 = deserializer.ReadProperty>(140, "rfc_4180"); + auto multi_byte_delimiter = deserializer.ReadProperty>(141, "multi_byte_delimiter"); + CSVReaderOptions result(dialect_options_state_machine_options_delimiter, multi_byte_delimiter); + result.ignore_errors = ignore_errors; + result.buffer_sample_size = buffer_sample_size; + result.null_str = std::move(null_str); + result.compression = compression; + result.allow_quoted_nulls = allow_quoted_nulls; + result.maximum_line_size = maximum_line_size; + result.normalize_names = normalize_names; + result.force_not_null = std::move(force_not_null); + result.all_varchar = all_varchar; + result.sample_size_chunks = sample_size_chunks; + result.auto_detect = auto_detect; + result.file_path = std::move(file_path); + result.decimal_separator = std::move(decimal_separator); + result.null_padding = null_padding; + result.buffer_size = buffer_size; + result.file_options = file_options; + result.force_quote = std::move(force_quote); + result.rejects_table_name = std::move(rejects_table_name); + result.rejects_limit = rejects_limit; + result.dialect_options.state_machine_options.quote = dialect_options_state_machine_options_quote; + result.dialect_options.state_machine_options.escape = dialect_options_state_machine_options_escape; + result.dialect_options.header = dialect_options_header; + result.dialect_options.num_cols = dialect_options_num_cols; + result.dialect_options.state_machine_options.new_line = dialect_options_state_machine_options_new_line; + result.dialect_options.skip_rows = dialect_options_skip_rows; + result.dialect_options.date_format = dialect_options_date_format; + result.sniffer_user_mismatch_error = std::move(sniffer_user_mismatch_error); + result.parallel = parallel; + result.was_type_manually_set = std::move(was_type_manually_set); + result.rejects_scan_name = rejects_scan_name; + result.name_list = std::move(name_list); + result.sql_type_list = std::move(sql_type_list); + result.sql_types_per_column = std::move(sql_types_per_column); + result.columns_set = columns_set; + result.dialect_options.state_machine_options.comment = dialect_options_state_machine_options_comment; + result.dialect_options.rows_until_header = dialect_options_rows_until_header; + result.encoding = std::move(encoding); + result.dialect_options.state_machine_options.rfc_4180 = dialect_options_state_machine_options_rfc_4180; return result; } @@ -297,6 +344,18 @@ ColumnDefinition ColumnDefinition::Deserialize(Deserializer &deserializer) { return result; } +void ColumnIndex::Serialize(Serializer &serializer) const { + serializer.WritePropertyWithDefault(1, "index", index); + serializer.WritePropertyWithDefault>(2, "child_indexes", child_indexes); +} + +ColumnIndex ColumnIndex::Deserialize(Deserializer &deserializer) { + ColumnIndex result; + deserializer.ReadPropertyWithDefault(1, "index", result.index); + deserializer.ReadPropertyWithDefault>(2, "child_indexes", result.child_indexes); + return result; +} + void ColumnInfo::Serialize(Serializer &serializer) const { serializer.WritePropertyWithDefault>(100, "names", names); serializer.WritePropertyWithDefault>(101, "types", types); @@ -343,6 +402,34 @@ CommonTableExpressionMap CommonTableExpressionMap::Deserialize(Deserializer &des return result; } +void ExportedTableData::Serialize(Serializer &serializer) const { + serializer.WritePropertyWithDefault(1, "table_name", table_name); + serializer.WritePropertyWithDefault(2, "schema_name", schema_name); + serializer.WritePropertyWithDefault(3, "database_name", database_name); + serializer.WritePropertyWithDefault(4, "file_path", file_path); + serializer.WritePropertyWithDefault>(5, "not_null_columns", not_null_columns); +} + +ExportedTableData ExportedTableData::Deserialize(Deserializer &deserializer) { + ExportedTableData result; + deserializer.ReadPropertyWithDefault(1, "table_name", result.table_name); + deserializer.ReadPropertyWithDefault(2, "schema_name", result.schema_name); + deserializer.ReadPropertyWithDefault(3, "database_name", result.database_name); + deserializer.ReadPropertyWithDefault(4, "file_path", result.file_path); + deserializer.ReadPropertyWithDefault>(5, "not_null_columns", result.not_null_columns); + return result; +} + +void ExportedTableInfo::Serialize(Serializer &serializer) const { + serializer.WriteProperty(1, "table_data", table_data); +} + +ExportedTableInfo ExportedTableInfo::Deserialize(Deserializer &deserializer) { + auto table_data = deserializer.ReadProperty(1, "table_data"); + ExportedTableInfo result(deserializer.Get(), table_data); + return result; +} + void HivePartitioningIndex::Serialize(Serializer &serializer) const { serializer.WritePropertyWithDefault(100, "value", value); serializer.WritePropertyWithDefault(101, "index", index); @@ -459,6 +546,22 @@ PivotColumnEntry PivotColumnEntry::Deserialize(Deserializer &deserializer) { return result; } +void QualifiedColumnName::Serialize(Serializer &serializer) const { + serializer.WritePropertyWithDefault(100, "catalog", catalog); + serializer.WritePropertyWithDefault(101, "schema", schema); + serializer.WritePropertyWithDefault(102, "table", table); + serializer.WritePropertyWithDefault(103, "column", column); +} + +QualifiedColumnName QualifiedColumnName::Deserialize(Deserializer &deserializer) { + QualifiedColumnName result; + deserializer.ReadPropertyWithDefault(100, "catalog", result.catalog); + deserializer.ReadPropertyWithDefault(101, "schema", result.schema); + deserializer.ReadPropertyWithDefault(102, "table", result.table); + deserializer.ReadPropertyWithDefault(103, "column", result.column); + return result; +} + void ReadCSVData::Serialize(Serializer &serializer) const { serializer.WritePropertyWithDefault>(100, "files", files); serializer.WritePropertyWithDefault>(101, "csv_types", csv_types); @@ -515,15 +618,18 @@ void SampleOptions::Serialize(Serializer &serializer) const { serializer.WriteProperty(100, "sample_size", sample_size); serializer.WritePropertyWithDefault(101, "is_percentage", is_percentage); serializer.WriteProperty(102, "method", method); - serializer.WritePropertyWithDefault(103, "seed", seed); + serializer.WritePropertyWithDefault(103, "seed", GetSeed()); } unique_ptr SampleOptions::Deserialize(Deserializer &deserializer) { - auto result = duckdb::unique_ptr(new SampleOptions()); - deserializer.ReadProperty(100, "sample_size", result->sample_size); - deserializer.ReadPropertyWithDefault(101, "is_percentage", result->is_percentage); - deserializer.ReadProperty(102, "method", result->method); - deserializer.ReadPropertyWithDefault(103, "seed", result->seed); + auto sample_size = deserializer.ReadProperty(100, "sample_size"); + auto is_percentage = deserializer.ReadPropertyWithDefault(101, "is_percentage"); + auto method = deserializer.ReadProperty(102, "method"); + auto seed = deserializer.ReadPropertyWithDefault(103, "seed"); + auto result = duckdb::unique_ptr(new SampleOptions(seed)); + result->sample_size = sample_size; + result->is_percentage = is_percentage; + result->method = method; return result; } diff --git a/src/duckdb/src/storage/serialization/serialize_parse_info.cpp b/src/duckdb/src/storage/serialization/serialize_parse_info.cpp index 590c0954..ccf98a0c 100644 --- a/src/duckdb/src/storage/serialization/serialize_parse_info.cpp +++ b/src/duckdb/src/storage/serialization/serialize_parse_info.cpp @@ -19,6 +19,7 @@ #include "duckdb/parser/parsed_data/pragma_info.hpp" #include "duckdb/parser/parsed_data/transaction_info.hpp" #include "duckdb/parser/parsed_data/vacuum_info.hpp" +#include "duckdb/parser/parsed_data/exported_table_data.hpp" namespace duckdb { @@ -36,6 +37,9 @@ unique_ptr ParseInfo::Deserialize(Deserializer &deserializer) { case ParseInfoType::ATTACH_INFO: result = AttachInfo::Deserialize(deserializer); break; + case ParseInfoType::BOUND_EXPORT_DATA: + result = BoundExportData::Deserialize(deserializer); + break; case ParseInfoType::COPY_DATABASE_INFO: result = CopyDatabaseInfo::Deserialize(deserializer); break; @@ -126,6 +130,9 @@ unique_ptr AlterTableInfo::Deserialize(Deserializer &deserializer) { case AlterTableType::ADD_COLUMN: result = AddColumnInfo::Deserialize(deserializer); break; + case AlterTableType::ADD_CONSTRAINT: + result = AddConstraintInfo::Deserialize(deserializer); + break; case AlterTableType::ALTER_COLUMN_TYPE: result = ChangeColumnTypeInfo::Deserialize(deserializer); break; @@ -187,6 +194,17 @@ unique_ptr AddColumnInfo::Deserialize(Deserializer &deserializer return std::move(result); } +void AddConstraintInfo::Serialize(Serializer &serializer) const { + AlterTableInfo::Serialize(serializer); + serializer.WritePropertyWithDefault>(400, "constraint", constraint); +} + +unique_ptr AddConstraintInfo::Deserialize(Deserializer &deserializer) { + auto result = duckdb::unique_ptr(new AddConstraintInfo()); + deserializer.ReadPropertyWithDefault>(400, "constraint", result->constraint); + return std::move(result); +} + void AlterForeignKeyInfo::Serialize(Serializer &serializer) const { AlterTableInfo::Serialize(serializer); serializer.WritePropertyWithDefault(400, "fk_table", fk_table); @@ -225,6 +243,17 @@ unique_ptr AttachInfo::Deserialize(Deserializer &deserializer) { return std::move(result); } +void BoundExportData::Serialize(Serializer &serializer) const { + ParseInfo::Serialize(serializer); + serializer.WritePropertyWithDefault>(200, "data", data); +} + +unique_ptr BoundExportData::Deserialize(Deserializer &deserializer) { + auto result = duckdb::unique_ptr(new BoundExportData()); + deserializer.ReadPropertyWithDefault>(200, "data", result->data); + return std::move(result); +} + void ChangeColumnTypeInfo::Serialize(Serializer &serializer) const { AlterTableInfo::Serialize(serializer); serializer.WritePropertyWithDefault(400, "column_name", column_name); diff --git a/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp b/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp index 146aa7fe..3ae8fe29 100644 --- a/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp +++ b/src/duckdb/src/storage/serialization/serialize_parsed_expression.cpp @@ -288,21 +288,30 @@ unique_ptr PositionalReferenceExpression::Deserialize(Deserial void StarExpression::Serialize(Serializer &serializer) const { ParsedExpression::Serialize(serializer); serializer.WritePropertyWithDefault(200, "relation_name", relation_name); - serializer.WriteProperty(201, "exclude_list", exclude_list); + serializer.WriteProperty(201, "exclude_list", SerializedExcludeList()); serializer.WritePropertyWithDefault>>(202, "replace_list", replace_list); serializer.WritePropertyWithDefault(203, "columns", columns); serializer.WritePropertyWithDefault>(204, "expr", expr); serializer.WritePropertyWithDefault(205, "unpacked", unpacked, false); + serializer.WritePropertyWithDefault(206, "qualified_exclude_list", SerializedQualifiedExcludeList(), qualified_column_set_t()); + serializer.WritePropertyWithDefault>(207, "rename_list", rename_list, qualified_column_map_t()); } unique_ptr StarExpression::Deserialize(Deserializer &deserializer) { - auto result = duckdb::unique_ptr(new StarExpression()); - deserializer.ReadPropertyWithDefault(200, "relation_name", result->relation_name); - deserializer.ReadProperty(201, "exclude_list", result->exclude_list); - deserializer.ReadPropertyWithDefault>>(202, "replace_list", result->replace_list); - deserializer.ReadPropertyWithDefault(203, "columns", result->columns); - deserializer.ReadPropertyWithDefault>(204, "expr", result->expr); - deserializer.ReadPropertyWithExplicitDefault(205, "unpacked", result->unpacked, false); + auto relation_name = deserializer.ReadPropertyWithDefault(200, "relation_name"); + auto exclude_list = deserializer.ReadProperty(201, "exclude_list"); + auto replace_list = deserializer.ReadPropertyWithDefault>>(202, "replace_list"); + auto columns = deserializer.ReadPropertyWithDefault(203, "columns"); + auto expr = deserializer.ReadPropertyWithDefault>(204, "expr"); + auto unpacked = deserializer.ReadPropertyWithExplicitDefault(205, "unpacked", false); + auto qualified_exclude_list = deserializer.ReadPropertyWithExplicitDefault(206, "qualified_exclude_list", qualified_column_set_t()); + auto result = duckdb::unique_ptr(new StarExpression(exclude_list, qualified_exclude_list)); + result->relation_name = std::move(relation_name); + result->replace_list = std::move(replace_list); + result->columns = columns; + result->expr = std::move(expr); + result->unpacked = unpacked; + deserializer.ReadPropertyWithExplicitDefault>(207, "rename_list", result->rename_list, qualified_column_map_t()); return std::move(result); } diff --git a/src/duckdb/src/storage/serialization/serialize_statement.cpp b/src/duckdb/src/storage/serialization/serialize_statement.cpp index 235ffd1e..9c61db6e 100644 --- a/src/duckdb/src/storage/serialization/serialize_statement.cpp +++ b/src/duckdb/src/storage/serialization/serialize_statement.cpp @@ -11,11 +11,13 @@ namespace duckdb { void SelectStatement::Serialize(Serializer &serializer) const { serializer.WritePropertyWithDefault>(100, "node", node); + serializer.WritePropertyWithDefault>(101, "named_param_map", named_param_map); } unique_ptr SelectStatement::Deserialize(Deserializer &deserializer) { auto result = duckdb::unique_ptr(new SelectStatement()); deserializer.ReadPropertyWithDefault>(100, "node", result->node); + deserializer.ReadPropertyWithDefault>(101, "named_param_map", result->named_param_map); return result; } diff --git a/src/duckdb/src/storage/serialization/serialize_table_filter.cpp b/src/duckdb/src/storage/serialization/serialize_table_filter.cpp index 550905ee..24682aec 100644 --- a/src/duckdb/src/storage/serialization/serialize_table_filter.cpp +++ b/src/duckdb/src/storage/serialization/serialize_table_filter.cpp @@ -10,6 +10,9 @@ #include "duckdb/planner/filter/constant_filter.hpp" #include "duckdb/planner/filter/conjunction_filter.hpp" #include "duckdb/planner/filter/struct_filter.hpp" +#include "duckdb/planner/filter/optional_filter.hpp" +#include "duckdb/planner/filter/in_filter.hpp" +#include "duckdb/planner/filter/dynamic_filter.hpp" namespace duckdb { @@ -30,12 +33,21 @@ unique_ptr TableFilter::Deserialize(Deserializer &deserializer) { case TableFilterType::CONSTANT_COMPARISON: result = ConstantFilter::Deserialize(deserializer); break; + case TableFilterType::DYNAMIC_FILTER: + result = DynamicFilter::Deserialize(deserializer); + break; + case TableFilterType::IN_FILTER: + result = InFilter::Deserialize(deserializer); + break; case TableFilterType::IS_NOT_NULL: result = IsNotNullFilter::Deserialize(deserializer); break; case TableFilterType::IS_NULL: result = IsNullFilter::Deserialize(deserializer); break; + case TableFilterType::OPTIONAL_FILTER: + result = OptionalFilter::Deserialize(deserializer); + break; case TableFilterType::STRUCT_EXTRACT: result = StructFilter::Deserialize(deserializer); break; @@ -80,6 +92,26 @@ unique_ptr ConstantFilter::Deserialize(Deserializer &deserializer) return std::move(result); } +void DynamicFilter::Serialize(Serializer &serializer) const { + TableFilter::Serialize(serializer); +} + +unique_ptr DynamicFilter::Deserialize(Deserializer &deserializer) { + auto result = duckdb::unique_ptr(new DynamicFilter()); + return std::move(result); +} + +void InFilter::Serialize(Serializer &serializer) const { + TableFilter::Serialize(serializer); + serializer.WritePropertyWithDefault>(200, "values", values); +} + +unique_ptr InFilter::Deserialize(Deserializer &deserializer) { + auto values = deserializer.ReadPropertyWithDefault>(200, "values"); + auto result = duckdb::unique_ptr(new InFilter(std::move(values))); + return std::move(result); +} + void IsNotNullFilter::Serialize(Serializer &serializer) const { TableFilter::Serialize(serializer); } @@ -98,6 +130,17 @@ unique_ptr IsNullFilter::Deserialize(Deserializer &deserializer) { return std::move(result); } +void OptionalFilter::Serialize(Serializer &serializer) const { + TableFilter::Serialize(serializer); + serializer.WritePropertyWithDefault>(200, "child_filter", child_filter); +} + +unique_ptr OptionalFilter::Deserialize(Deserializer &deserializer) { + auto result = duckdb::unique_ptr(new OptionalFilter()); + deserializer.ReadPropertyWithDefault>(200, "child_filter", result->child_filter); + return std::move(result); +} + void StructFilter::Serialize(Serializer &serializer) const { TableFilter::Serialize(serializer); serializer.WritePropertyWithDefault(200, "child_idx", child_idx); diff --git a/src/duckdb/src/storage/single_file_block_manager.cpp b/src/duckdb/src/storage/single_file_block_manager.cpp index 6939c72e..20f97ea9 100644 --- a/src/duckdb/src/storage/single_file_block_manager.cpp +++ b/src/duckdb/src/storage/single_file_block_manager.cpp @@ -376,8 +376,9 @@ void SingleFileBlockManager::MarkBlockAsUsed(block_id_t block_id) { } max_block++; } else if (free_list.find(block_id) != free_list.end()) { - // block is currently int he free list - erase + // block is currently in the free list - erase free_list.erase(block_id); + newly_freed_list.erase(block_id); } else { // block is already in use - increase reference count IncreaseBlockReferenceCountInternal(block_id); diff --git a/src/duckdb/src/storage/standard_buffer_manager.cpp b/src/duckdb/src/storage/standard_buffer_manager.cpp index da10afce..28d82754 100644 --- a/src/duckdb/src/storage/standard_buffer_manager.cpp +++ b/src/duckdb/src/storage/standard_buffer_manager.cpp @@ -15,8 +15,14 @@ namespace duckdb { #ifdef DUCKDB_DEBUG_DESTROY_BLOCKS -static void WriteGarbageIntoBuffer(FileBuffer &buffer) { - memset(buffer.buffer, 0xa5, buffer.size); // 0xa5 is default memory in debug mode +static void WriteGarbageIntoBuffer(BlockLock &lock, BlockHandle &block) { + auto &buffer = block.GetBuffer(lock); + memset(buffer->buffer, 0xa5, buffer->size); // 0xa5 is default memory in debug mode +} + +static void WriteGarbageIntoBuffer(BlockHandle &block) { + auto lock = block.GetLock(); + WriteGarbageIntoBuffer(lock, block); } #endif @@ -30,6 +36,9 @@ struct BufferAllocatorData : PrivateAllocatorData { unique_ptr StandardBufferManager::ConstructManagedBuffer(idx_t size, unique_ptr &&source, FileBufferType type) { unique_ptr result; + if (type == FileBufferType::BLOCK) { + throw InternalException("ConstructManagedBuffer cannot be used to construct blocks"); + } if (source) { auto tmp = std::move(source); D_ASSERT(tmp->AllocSize() == BufferManager::GetAllocSize(size)); @@ -123,27 +132,26 @@ shared_ptr StandardBufferManager::RegisterTransientMemory(const idx // Otherwise, any non-default block size would register as small memory, causing problems when // trying to convert that memory to consistent blocks later on. if (size < block_size) { - return RegisterSmallMemory(size); + return RegisterSmallMemory(MemoryTag::IN_MEMORY_TABLE, size); } auto buffer_handle = Allocate(MemoryTag::IN_MEMORY_TABLE, size, false); return buffer_handle.GetBlockHandle(); } -shared_ptr StandardBufferManager::RegisterSmallMemory(const idx_t size) { +shared_ptr StandardBufferManager::RegisterSmallMemory(MemoryTag tag, const idx_t size) { D_ASSERT(size < GetBlockSize()); - auto reservation = EvictBlocksOrThrow(MemoryTag::BASE_TABLE, size, nullptr, "could not allocate block of size %s%s", + auto reservation = EvictBlocksOrThrow(tag, size, nullptr, "could not allocate block of size %s%s", StringUtil::BytesToHumanReadableString(size)); auto buffer = ConstructManagedBuffer(size, nullptr, FileBufferType::TINY_BUFFER); // Create a new block pointer for this block. - auto result = - make_shared_ptr(*temp_block_manager, ++temporary_id, MemoryTag::BASE_TABLE, std::move(buffer), - DestroyBufferUpon::BLOCK, size, std::move(reservation)); + auto result = make_shared_ptr(*temp_block_manager, ++temporary_id, tag, std::move(buffer), + DestroyBufferUpon::BLOCK, size, std::move(reservation)); #ifdef DUCKDB_DEBUG_DESTROY_BLOCKS // Initialize the memory with garbage data - WriteGarbageIntoBuffer(*result->buffer); + WriteGarbageIntoBuffer(*result); #endif return result; } @@ -168,20 +176,22 @@ BufferHandle StandardBufferManager::Allocate(MemoryTag tag, idx_t block_size, bo #ifdef DUCKDB_DEBUG_DESTROY_BLOCKS // Initialize the memory with garbage data - WriteGarbageIntoBuffer(*block->buffer); + WriteGarbageIntoBuffer(*block); #endif return Pin(block); } void StandardBufferManager::ReAllocate(shared_ptr &handle, idx_t block_size) { D_ASSERT(block_size >= GetBlockSize()); - unique_lock lock(handle->lock); - D_ASSERT(handle->state == BlockState::BLOCK_LOADED); - D_ASSERT(handle->memory_usage == handle->buffer->AllocSize()); - D_ASSERT(handle->memory_usage == handle->memory_charge.size); + auto lock = handle->GetLock(); - auto req = handle->buffer->CalculateMemory(block_size); - int64_t memory_delta = NumericCast(req.alloc_size) - NumericCast(handle->memory_usage); + auto handle_memory_usage = handle->GetMemoryUsage(); + D_ASSERT(handle->GetState() == BlockState::BLOCK_LOADED); + D_ASSERT(handle_memory_usage == handle->GetBuffer(lock)->AllocSize()); + D_ASSERT(handle_memory_usage == handle->GetMemoryCharge(lock).size); + + auto req = handle->GetBuffer(lock)->CalculateMemory(block_size); + int64_t memory_delta = NumericCast(req.alloc_size) - NumericCast(handle_memory_usage); if (memory_delta == 0) { return; @@ -189,20 +199,20 @@ void StandardBufferManager::ReAllocate(shared_ptr &handle, idx_t bl // evict blocks until we have space to resize this block // unlock the handle lock during the call to EvictBlocksOrThrow lock.unlock(); - auto reservation = EvictBlocksOrThrow(handle->tag, NumericCast(memory_delta), nullptr, + auto reservation = EvictBlocksOrThrow(handle->GetMemoryTag(), NumericCast(memory_delta), nullptr, "failed to resize block from %s to %s%s", - StringUtil::BytesToHumanReadableString(handle->memory_usage), + StringUtil::BytesToHumanReadableString(handle_memory_usage), StringUtil::BytesToHumanReadableString(req.alloc_size)); lock.lock(); // EvictBlocks decrements 'current_memory' for us. - handle->memory_charge.Merge(std::move(reservation)); + handle->MergeMemoryReservation(lock, std::move(reservation)); } else { // no need to evict blocks, but we do need to decrement 'current_memory'. - handle->memory_charge.Resize(req.alloc_size); + handle->ResizeMemory(lock, req.alloc_size); } - handle->ResizeBuffer(block_size, memory_delta); + handle->ResizeBuffer(lock, block_size, memory_delta); } void StandardBufferManager::BatchRead(vector> &handles, const map &load_map, @@ -231,27 +241,25 @@ void StandardBufferManager::BatchRead(vector> &handles, auto &handle = handles[entry->second]; // reserve memory for the block - idx_t required_memory = handle->memory_usage; + idx_t required_memory = handle->GetMemoryUsage(); unique_ptr reusable_buffer; - auto reservation = - EvictBlocksOrThrow(handle->tag, required_memory, &reusable_buffer, "failed to pin block of size %s%s", - StringUtil::BytesToHumanReadableString(required_memory)); + auto reservation = EvictBlocksOrThrow(handle->GetMemoryTag(), required_memory, &reusable_buffer, + "failed to pin block of size %s%s", + StringUtil::BytesToHumanReadableString(required_memory)); // now load the block from the buffer // note that we discard the buffer handle - we do not keep it around // the prefetching relies on the block handle being pinned again during the actual read before it is evicted BufferHandle buf; { - lock_guard lock(handle->lock); - if (handle->state == BlockState::BLOCK_LOADED) { + auto lock = handle->GetLock(); + if (handle->GetState() == BlockState::BLOCK_LOADED) { // the block is loaded already by another thread - free up the reservation and continue reservation.Resize(0); continue; } auto block_ptr = intermediate_buffer.GetFileBuffer().InternalBuffer() + block_idx * block_manager.GetBlockAllocSize(); - buf = handle->LoadFromBuffer(block_ptr, std::move(reusable_buffer)); - handle->readers = 1; - handle->memory_charge = std::move(reservation); + buf = handle->LoadFromBuffer(lock, block_ptr, std::move(reusable_buffer), std::move(reservation)); } } } @@ -261,8 +269,7 @@ void StandardBufferManager::Prefetch(vector> &handles) { map to_be_loaded; for (idx_t block_idx = 0; block_idx < handles.size(); block_idx++) { auto &handle = handles[block_idx]; - lock_guard lock(handle->lock); - if (handle->state != BlockState::BLOCK_LOADED) { + if (handle->GetState() != BlockState::BLOCK_LOADED) { // need to load this block - add it to the map to_be_loaded.insert(make_pair(handle->BlockId(), block_idx)); } @@ -305,14 +312,13 @@ BufferHandle StandardBufferManager::Pin(shared_ptr &handle) { idx_t required_memory; { // lock the block - lock_guard lock(handle->lock); + auto lock = handle->GetLock(); // check if the block is already loaded - if (handle->state == BlockState::BLOCK_LOADED) { + if (handle->GetState() == BlockState::BLOCK_LOADED) { // the block is loaded, increment the reader count and set the BufferHandle - handle->readers++; buf = handle->Load(); } - required_memory = handle->memory_usage; + required_memory = handle->GetMemoryUsage(); } if (buf.IsValid()) { @@ -320,33 +326,30 @@ BufferHandle StandardBufferManager::Pin(shared_ptr &handle) { } else { // evict blocks until we have space for the current block unique_ptr reusable_buffer; - auto reservation = - EvictBlocksOrThrow(handle->tag, required_memory, &reusable_buffer, "failed to pin block of size %s%s", - StringUtil::BytesToHumanReadableString(required_memory)); + auto reservation = EvictBlocksOrThrow(handle->GetMemoryTag(), required_memory, &reusable_buffer, + "failed to pin block of size %s%s", + StringUtil::BytesToHumanReadableString(required_memory)); // lock the handle again and repeat the check (in case anybody loaded in the meantime) - lock_guard lock(handle->lock); + auto lock = handle->GetLock(); // check if the block is already loaded - if (handle->state == BlockState::BLOCK_LOADED) { + if (handle->GetState() == BlockState::BLOCK_LOADED) { // the block is loaded, increment the reader count and return a pointer to the handle - handle->readers++; reservation.Resize(0); buf = handle->Load(); } else { // now we can actually load the current block - D_ASSERT(handle->readers == 0); + D_ASSERT(handle->Readers() == 0); buf = handle->Load(std::move(reusable_buffer)); - handle->readers = 1; - handle->memory_charge = std::move(reservation); + auto &memory_charge = handle->GetMemoryCharge(lock); + memory_charge = std::move(reservation); // in the case of a variable sized block, the buffer may be smaller than a full block. - int64_t delta = - NumericCast(handle->buffer->AllocSize()) - NumericCast(handle->memory_usage); + int64_t delta = NumericCast(handle->GetBuffer(lock)->AllocSize()) - + NumericCast(handle->GetMemoryUsage()); if (delta) { - D_ASSERT(delta < 0); - handle->memory_usage += static_cast(delta); - handle->memory_charge.Resize(handle->memory_usage); + handle->ChangeMemoryUsage(lock, delta); } - D_ASSERT(handle->memory_usage == handle->buffer->AllocSize()); + D_ASSERT(handle->GetMemoryUsage() == handle->GetBuffer(lock)->AllocSize()); } } @@ -356,46 +359,54 @@ BufferHandle StandardBufferManager::Pin(shared_ptr &handle) { return buf; } -void StandardBufferManager::PurgeQueue(FileBufferType type) { - buffer_pool.PurgeQueue(type); +void StandardBufferManager::PurgeQueue(const BlockHandle &handle) { + buffer_pool.PurgeQueue(handle); } void StandardBufferManager::AddToEvictionQueue(shared_ptr &handle) { buffer_pool.AddToEvictionQueue(handle); } -void StandardBufferManager::VerifyZeroReaders(shared_ptr &handle) { +void StandardBufferManager::VerifyZeroReaders(BlockLock &lock, shared_ptr &handle) { #ifdef DUCKDB_DEBUG_DESTROY_BLOCKS - auto replacement_buffer = make_uniq(Allocator::Get(db), handle->buffer->type, - handle->memory_usage - Storage::DEFAULT_BLOCK_HEADER_SIZE); - memcpy(replacement_buffer->buffer, handle->buffer->buffer, handle->buffer->size); - WriteGarbageIntoBuffer(*handle->buffer); - handle->buffer = std::move(replacement_buffer); + unique_ptr replacement_buffer; + auto &allocator = Allocator::Get(db); + auto alloc_size = handle->GetMemoryUsage() - Storage::DEFAULT_BLOCK_HEADER_SIZE; + auto &buffer = handle->GetBuffer(lock); + if (handle->GetBufferType() == FileBufferType::BLOCK) { + auto block = reinterpret_cast(buffer.get()); + replacement_buffer = make_uniq(allocator, block->id, alloc_size); + } else { + replacement_buffer = make_uniq(allocator, buffer->GetBufferType(), alloc_size); + } + memcpy(replacement_buffer->buffer, buffer->buffer, buffer->size); + WriteGarbageIntoBuffer(lock, *handle); + buffer = std::move(replacement_buffer); #endif } void StandardBufferManager::Unpin(shared_ptr &handle) { bool purge = false; { - lock_guard lock(handle->lock); - if (!handle->buffer || handle->buffer->type == FileBufferType::TINY_BUFFER) { + auto lock = handle->GetLock(); + if (!handle->GetBuffer(lock) || handle->GetBufferType() == FileBufferType::TINY_BUFFER) { return; } - D_ASSERT(handle->readers > 0); - handle->readers--; - if (handle->readers == 0) { - VerifyZeroReaders(handle); + D_ASSERT(handle->Readers() > 0); + auto new_readers = handle->DecrementReaders(); + if (new_readers == 0) { + VerifyZeroReaders(lock, handle); if (handle->MustAddToEvictionQueue()) { purge = buffer_pool.AddToEvictionQueue(handle); } else { - handle->Unload(); + handle->Unload(lock); } } } // We do not have to keep the handle locked while purging. if (purge) { - PurgeQueue(handle->buffer->type); + PurgeQueue(*handle); } } diff --git a/src/duckdb/src/storage/statistics/column_statistics.cpp b/src/duckdb/src/storage/statistics/column_statistics.cpp index ebc58242..19784bc9 100644 --- a/src/duckdb/src/storage/statistics/column_statistics.cpp +++ b/src/duckdb/src/storage/statistics/column_statistics.cpp @@ -20,8 +20,7 @@ shared_ptr ColumnStatistics::CreateEmptyStats(const LogicalTyp void ColumnStatistics::Merge(ColumnStatistics &other) { stats.Merge(other.stats); - if (distinct_stats) { - D_ASSERT(other.distinct_stats); + if (distinct_stats && other.distinct_stats) { distinct_stats->Merge(*other.distinct_stats); } } @@ -45,12 +44,12 @@ void ColumnStatistics::SetDistinct(unique_ptr distinct) { this->distinct_stats = std::move(distinct); } -void ColumnStatistics::UpdateDistinctStatistics(Vector &v, idx_t count) { +void ColumnStatistics::UpdateDistinctStatistics(Vector &v, idx_t count, Vector &hashes) { if (!distinct_stats) { return; } - // We sample for non-integral types to save cost, and because integers are more likely to be join keys - distinct_stats->Update(v, count); + // we use a sample to update the distinct statistics for performance reasons + distinct_stats->UpdateSample(v, count, hashes); } shared_ptr ColumnStatistics::Copy() const { diff --git a/src/duckdb/src/storage/statistics/distinct_statistics.cpp b/src/duckdb/src/storage/statistics/distinct_statistics.cpp index 50098a32..ddadc997 100644 --- a/src/duckdb/src/storage/statistics/distinct_statistics.cpp +++ b/src/duckdb/src/storage/statistics/distinct_statistics.cpp @@ -7,18 +7,14 @@ namespace duckdb { -DistinctStatistics::DistinctStatistics() - : log(make_uniq()), sample_count(0), total_count(0), - hash_vec(LogicalType::HASH, STANDARD_VECTOR_SIZE) { +DistinctStatistics::DistinctStatistics() : log(make_uniq()), sample_count(0), total_count(0) { } DistinctStatistics::DistinctStatistics(unique_ptr log, idx_t sample_count, idx_t total_count) - : log(std::move(log)), sample_count(sample_count), total_count(total_count), - hash_vec(LogicalType::HASH, STANDARD_VECTOR_SIZE) { + : log(std::move(log)), sample_count(sample_count), total_count(total_count) { } unique_ptr DistinctStatistics::Copy() const { - lock_guard guard(lock); return make_uniq(log->Copy(), sample_count, total_count); } @@ -28,25 +24,28 @@ void DistinctStatistics::Merge(const DistinctStatistics &other) { total_count += other.total_count; } -void DistinctStatistics::Update(Vector &v, idx_t count, bool sample) { +void DistinctStatistics::UpdateSample(Vector &new_data, idx_t count, Vector &hashes) { total_count += count; - if (sample) { - const auto original_count = count; - const auto sample_rate = v.GetType().IsIntegral() ? INTEGRAL_SAMPLE_RATE : BASE_SAMPLE_RATE; - // Sample up to 'sample_rate' of STANDARD_VECTOR_SIZE of this vector (at least 1) - count = MaxValue(LossyNumericCast(sample_rate * static_cast(STANDARD_VECTOR_SIZE)), 1); - // But never more than the original count - count = MinValue(count, original_count); - } - sample_count += count; + const auto original_count = count; + const auto sample_rate = new_data.GetType().IsIntegral() ? INTEGRAL_SAMPLE_RATE : BASE_SAMPLE_RATE; + // Sample up to 'sample_rate' of STANDARD_VECTOR_SIZE of this vector (at least 1) + count = MaxValue(LossyNumericCast(sample_rate * static_cast(STANDARD_VECTOR_SIZE)), 1); + // But never more than the original count + count = MinValue(count, original_count); + + UpdateInternal(new_data, count, hashes); +} - lock_guard guard(lock); - VectorOperations::Hash(v, hash_vec, count); +void DistinctStatistics::Update(Vector &new_data, idx_t count, Vector &hashes) { + total_count += count; + UpdateInternal(new_data, count, hashes); +} - UnifiedVectorFormat vdata; - v.ToUnifiedFormat(count, vdata); +void DistinctStatistics::UpdateInternal(Vector &new_data, idx_t count, Vector &hashes) { + sample_count += count; + VectorOperations::Hash(new_data, hashes, count); - log->Update(v, hash_vec, count); + log->Update(new_data, hashes, count); } string DistinctStatistics::ToString() const { diff --git a/src/duckdb/src/storage/statistics/numeric_stats.cpp b/src/duckdb/src/storage/statistics/numeric_stats.cpp index 29d89a51..a9379812 100644 --- a/src/duckdb/src/storage/statistics/numeric_stats.cpp +++ b/src/duckdb/src/storage/statistics/numeric_stats.cpp @@ -143,11 +143,8 @@ bool ConstantValueInRange(T min, T max, T constant) { } template -FilterPropagateResult CheckZonemapTemplated(const BaseStatistics &stats, ExpressionType comparison_type, - const Value &constant_value) { - T min_value = NumericStats::GetMinUnsafe(stats); - T max_value = NumericStats::GetMaxUnsafe(stats); - T constant = constant_value.GetValueUnsafe(); +FilterPropagateResult CheckZonemapTemplated(const BaseStatistics &stats, ExpressionType comparison_type, T min_value, + T max_value, T constant) { switch (comparison_type) { case ExpressionType::COMPARE_EQUAL: if (ConstantExactRange(min_value, max_value, constant)) { @@ -214,40 +211,55 @@ FilterPropagateResult CheckZonemapTemplated(const BaseStatistics &stats, Express } } -FilterPropagateResult NumericStats::CheckZonemap(const BaseStatistics &stats, ExpressionType comparison_type, - const Value &constant) { - D_ASSERT(constant.type() == stats.GetType()); - if (constant.IsNull()) { - return FilterPropagateResult::FILTER_ALWAYS_FALSE; +template +FilterPropagateResult CheckZonemapTemplated(const BaseStatistics &stats, ExpressionType comparison_type, + array_ptr constants) { + T min_value = NumericStats::GetMinUnsafe(stats); + T max_value = NumericStats::GetMaxUnsafe(stats); + for (auto &constant_value : constants) { + D_ASSERT(constant_value.type() == stats.GetType()); + D_ASSERT(!constant_value.IsNull()); + T constant = constant_value.GetValueUnsafe(); + auto prune_result = CheckZonemapTemplated(stats, comparison_type, min_value, max_value, constant); + if (prune_result == FilterPropagateResult::NO_PRUNING_POSSIBLE) { + return FilterPropagateResult::NO_PRUNING_POSSIBLE; + } else if (prune_result == FilterPropagateResult::FILTER_ALWAYS_TRUE) { + return FilterPropagateResult::FILTER_ALWAYS_TRUE; + } } + return FilterPropagateResult::FILTER_ALWAYS_FALSE; +} + +FilterPropagateResult NumericStats::CheckZonemap(const BaseStatistics &stats, ExpressionType comparison_type, + array_ptr constants) { if (!NumericStats::HasMinMax(stats)) { return FilterPropagateResult::NO_PRUNING_POSSIBLE; } switch (stats.GetType().InternalType()) { case PhysicalType::INT8: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::INT16: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::INT32: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::INT64: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::UINT8: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::UINT16: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::UINT32: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::UINT64: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::INT128: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::UINT128: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::FLOAT: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); case PhysicalType::DOUBLE: - return CheckZonemapTemplated(stats, comparison_type, constant); + return CheckZonemapTemplated(stats, comparison_type, constants); default: throw InternalException("Unsupported type for NumericStats::CheckZonemap"); } diff --git a/src/duckdb/src/storage/statistics/string_stats.cpp b/src/duckdb/src/storage/statistics/string_stats.cpp index c3994b54..691bae09 100644 --- a/src/duckdb/src/storage/statistics/string_stats.cpp +++ b/src/duckdb/src/storage/statistics/string_stats.cpp @@ -184,10 +184,21 @@ void StringStats::Merge(BaseStatistics &stats, const BaseStatistics &other) { } FilterPropagateResult StringStats::CheckZonemap(const BaseStatistics &stats, ExpressionType comparison_type, - const string &constant) { + array_ptr constants) { auto &string_data = StringStats::GetDataUnsafe(stats); - return CheckZonemap(string_data.min, StringStatsData::MAX_STRING_MINMAX_SIZE, string_data.max, - StringStatsData::MAX_STRING_MINMAX_SIZE, comparison_type, constant); + for (auto &constant_value : constants) { + D_ASSERT(constant_value.type() == stats.GetType()); + D_ASSERT(!constant_value.IsNull()); + auto &constant = StringValue::Get(constant_value); + auto prune_result = CheckZonemap(string_data.min, StringStatsData::MAX_STRING_MINMAX_SIZE, string_data.max, + StringStatsData::MAX_STRING_MINMAX_SIZE, comparison_type, constant); + if (prune_result == FilterPropagateResult::NO_PRUNING_POSSIBLE) { + return FilterPropagateResult::NO_PRUNING_POSSIBLE; + } else if (prune_result == FilterPropagateResult::FILTER_ALWAYS_TRUE) { + return FilterPropagateResult::FILTER_ALWAYS_TRUE; + } + } + return FilterPropagateResult::FILTER_ALWAYS_FALSE; } FilterPropagateResult StringStats::CheckZonemap(const_data_ptr_t min_data, idx_t min_len, const_data_ptr_t max_data, diff --git a/src/duckdb/src/storage/storage_info.cpp b/src/duckdb/src/storage/storage_info.cpp index e2b606b1..b814fdc3 100644 --- a/src/duckdb/src/storage/storage_info.cpp +++ b/src/duckdb/src/storage/storage_info.cpp @@ -19,23 +19,85 @@ struct SerializationVersionInfo { // These sections are automatically generated by scripts/generate_storage_info.py // Do not edit them manually, your changes will be overwritten - +// clang-format off // START OF STORAGE VERSION INFO +const uint64_t DEFAULT_STORAGE_VERSION_INFO = 64; static const StorageVersionInfo storage_version_info[] = { - {"v0.0.4", 1}, {"v0.1.0", 1}, {"v0.1.1", 1}, {"v0.1.2", 1}, {"v0.1.3", 1}, {"v0.1.4", 1}, {"v0.1.5", 1}, - {"v0.1.6", 1}, {"v0.1.7", 1}, {"v0.1.8", 1}, {"v0.1.9", 1}, {"v0.2.0", 1}, {"v0.2.1", 1}, {"v0.2.2", 4}, - {"v0.2.3", 6}, {"v0.2.4", 11}, {"v0.2.5", 13}, {"v0.2.6", 15}, {"v0.2.7", 17}, {"v0.2.8", 18}, {"v0.2.9", 21}, - {"v0.3.0", 25}, {"v0.3.1", 27}, {"v0.3.2", 31}, {"v0.3.3", 33}, {"v0.3.4", 33}, {"v0.3.5", 33}, {"v0.4.0", 33}, - {"v0.5.0", 38}, {"v0.5.1", 38}, {"v0.6.0", 39}, {"v0.6.1", 39}, {"v0.7.0", 43}, {"v0.7.1", 43}, {"v0.8.0", 51}, - {"v0.8.1", 51}, {"v0.9.0", 64}, {"v0.9.1", 64}, {"v0.9.2", 64}, {"v0.10.0", 64}, {"v0.10.1", 64}, {"v0.10.2", 64}, - {"v0.10.3", 64}, {"v1.0.0", 64}, {"v1.1.0", 64}, {nullptr, 0}}; + {"v0.0.4", 1}, + {"v0.1.0", 1}, + {"v0.1.1", 1}, + {"v0.1.2", 1}, + {"v0.1.3", 1}, + {"v0.1.4", 1}, + {"v0.1.5", 1}, + {"v0.1.6", 1}, + {"v0.1.7", 1}, + {"v0.1.8", 1}, + {"v0.1.9", 1}, + {"v0.2.0", 1}, + {"v0.2.1", 1}, + {"v0.2.2", 4}, + {"v0.2.3", 6}, + {"v0.2.4", 11}, + {"v0.2.5", 13}, + {"v0.2.6", 15}, + {"v0.2.7", 17}, + {"v0.2.8", 18}, + {"v0.2.9", 21}, + {"v0.3.0", 25}, + {"v0.3.1", 27}, + {"v0.3.2", 31}, + {"v0.3.3", 33}, + {"v0.3.4", 33}, + {"v0.3.5", 33}, + {"v0.4.0", 33}, + {"v0.5.0", 38}, + {"v0.5.1", 38}, + {"v0.6.0", 39}, + {"v0.6.1", 39}, + {"v0.7.0", 43}, + {"v0.7.1", 43}, + {"v0.8.0", 51}, + {"v0.8.1", 51}, + {"v0.9.0", 64}, + {"v0.9.1", 64}, + {"v0.9.2", 64}, + {"v0.10.0", 64}, + {"v0.10.1", 64}, + {"v0.10.2", 64}, + {"v0.10.3", 64}, + {"v1.0.0", 64}, + {"v1.1.0", 64}, + {"v1.1.1", 64}, + {"v1.1.2", 64}, + {"v1.1.3", 64}, + {nullptr, 0} +}; // END OF STORAGE VERSION INFO +static_assert(DEFAULT_STORAGE_VERSION_INFO == VERSION_NUMBER, "Check on VERSION_INFO"); // START OF SERIALIZATION VERSION INFO -static const SerializationVersionInfo serialization_version_info[] = {{"v0.10.0", 1}, {"v0.10.1", 1}, {"v0.10.2", 1}, - {"v0.10.3", 2}, {"v1.0.0", 2}, {"v1.1.0", 3}, - {"latest", 3}, {nullptr, 0}}; +const uint64_t LATEST_SERIALIZATION_VERSION_INFO = 4; +const uint64_t DEFAULT_SERIALIZATION_VERSION_INFO = 1; +static const SerializationVersionInfo serialization_version_info[] = { + {"v0.10.0", 1}, + {"v0.10.1", 1}, + {"v0.10.2", 1}, + {"v0.10.3", 2}, + {"v1.0.0", 2}, + {"v1.1.0", 3}, + {"v1.1.1", 3}, + {"v1.1.2", 3}, + {"v1.1.3", 3}, + {"v1.2.0", 4}, + {"latest", 4}, + {nullptr, 0} +}; // END OF SERIALIZATION VERSION INFO +// clang-format on + +static_assert(DEFAULT_SERIALIZATION_VERSION_INFO <= LATEST_SERIALIZATION_VERSION_INFO, + "Check on SERIALIZATION_VERSION_INFO"); optional_idx GetStorageVersion(const char *version_string) { for (idx_t i = 0; storage_version_info[i].version_name; i++) { diff --git a/src/duckdb/src/storage/storage_manager.cpp b/src/duckdb/src/storage/storage_manager.cpp index 456cd226..2f340251 100644 --- a/src/duckdb/src/storage/storage_manager.cpp +++ b/src/duckdb/src/storage/storage_manager.cpp @@ -56,36 +56,19 @@ ObjectCache &ObjectCache::GetObjectCache(ClientContext &context) { return context.db->GetObjectCache(); } -bool ObjectCache::ObjectCacheEnabled(ClientContext &context) { - return context.db->config.options.object_cache_enable; -} - idx_t StorageManager::GetWALSize() { - auto wal_ptr = GetWAL(); - if (!wal_ptr) { - return 0; - } - return wal_ptr->GetWALSize(); + return wal->GetWALSize(); } optional_ptr StorageManager::GetWAL() { if (InMemory() || read_only || !load_complete) { return nullptr; } - - if (!wal) { - auto wal_path = GetWALPath(); - wal = make_uniq(db, wal_path); - } return wal.get(); } void StorageManager::ResetWAL() { - auto wal_ptr = GetWAL(); - if (wal_ptr) { - wal_ptr->Delete(); - } - wal.reset(); + wal->Delete(); } string StorageManager::GetWALPath() { @@ -109,23 +92,25 @@ bool StorageManager::InMemory() { return path == IN_MEMORY_PATH; } -void StorageManager::Initialize(const optional_idx block_alloc_size) { +void StorageManager::Initialize(StorageOptions options) { bool in_memory = InMemory(); if (in_memory && read_only) { throw CatalogException("Cannot launch in-memory database in read-only mode!"); } // Create or load the database from disk, if not in-memory mode. - LoadDatabase(block_alloc_size); + LoadDatabase(options); } /////////////////////////////////////////////////////////////////////////// class SingleFileTableIOManager : public TableIOManager { public: - explicit SingleFileTableIOManager(BlockManager &block_manager) : block_manager(block_manager) { + explicit SingleFileTableIOManager(BlockManager &block_manager, idx_t row_group_size) + : block_manager(block_manager), row_group_size(row_group_size) { } BlockManager &block_manager; + idx_t row_group_size; public: BlockManager &GetIndexBlockManager() override { @@ -137,32 +122,43 @@ class SingleFileTableIOManager : public TableIOManager { MetadataManager &GetMetadataManager() override { return block_manager.GetMetadataManager(); } + idx_t GetRowGroupSize() const override { + return row_group_size; + } }; SingleFileStorageManager::SingleFileStorageManager(AttachedDatabase &db, string path, bool read_only) : StorageManager(db, std::move(path), read_only) { } -void SingleFileStorageManager::LoadDatabase(const optional_idx block_alloc_size) { +void SingleFileStorageManager::LoadDatabase(StorageOptions storage_options) { if (InMemory()) { block_manager = make_uniq(BufferManager::GetBufferManager(db), DEFAULT_BLOCK_ALLOC_SIZE); - table_io_manager = make_uniq(*block_manager); + table_io_manager = make_uniq(*block_manager, DEFAULT_ROW_GROUP_SIZE); return; } auto &fs = FileSystem::Get(db); auto &config = DBConfig::Get(db); - if (!config.options.enable_external_access) { - if (!db.IsInitialDatabase()) { - throw PermissionException("Attaching on-disk databases is disabled through configuration"); - } - } StorageManagerOptions options; options.read_only = read_only; options.use_direct_io = config.options.use_direct_io; options.debug_initialize = config.options.debug_initialize; + idx_t row_group_size = DEFAULT_ROW_GROUP_SIZE; + if (storage_options.row_group_size.IsValid()) { + row_group_size = storage_options.row_group_size.GetIndex(); + if (row_group_size == 0) { + throw NotImplementedException("Invalid row group size: %llu - row group size must be bigger than 0", + row_group_size); + } + if (row_group_size % STANDARD_VECTOR_SIZE != 0) { + throw NotImplementedException( + "Invalid row group size: %llu - row group size must be divisible by the vector size (%llu)", + row_group_size, STANDARD_VECTOR_SIZE); + } + } // Check if the database file already exists. // Note: a file can also exist if there was a ROLLBACK on a previous transaction creating that file. if (!read_only && !fs.FileExists(path)) { @@ -178,9 +174,10 @@ void SingleFileStorageManager::LoadDatabase(const optional_idx block_alloc_size) } // Set the block allocation size for the new database file. - if (block_alloc_size.IsValid()) { + if (storage_options.block_alloc_size.IsValid()) { // Use the option provided by the user. - options.block_alloc_size = block_alloc_size; + Storage::VerifyBlockAllocSize(storage_options.block_alloc_size.GetIndex()); + options.block_alloc_size = storage_options.block_alloc_size; } else { // No explicit option provided: use the default option. options.block_alloc_size = config.options.default_block_alloc_size; @@ -190,8 +187,8 @@ void SingleFileStorageManager::LoadDatabase(const optional_idx block_alloc_size) auto sf_block_manager = make_uniq(db, path, options); sf_block_manager->CreateNewDatabase(); block_manager = std::move(sf_block_manager); - table_io_manager = make_uniq(*block_manager); - + table_io_manager = make_uniq(*block_manager, row_group_size); + wal = make_uniq(db, wal_path); } else { // Either the file exists, or we are in read-only mode, so we // try to read the existing file on disk. @@ -202,27 +199,24 @@ void SingleFileStorageManager::LoadDatabase(const optional_idx block_alloc_size) auto sf_block_manager = make_uniq(db, path, options); sf_block_manager->LoadExistingDatabase(); block_manager = std::move(sf_block_manager); - table_io_manager = make_uniq(*block_manager); - - if (block_alloc_size.IsValid() && block_alloc_size.GetIndex() != block_manager->GetBlockAllocSize()) { - throw InvalidInputException( - "block size parameter does not match the file's block size, got %llu, expected %llu", - block_alloc_size.GetIndex(), block_manager->GetBlockAllocSize()); + table_io_manager = make_uniq(*block_manager, row_group_size); + + if (storage_options.block_alloc_size.IsValid()) { + // user-provided block alloc size + idx_t block_alloc_size = storage_options.block_alloc_size.GetIndex(); + if (block_alloc_size != block_manager->GetBlockAllocSize()) { + throw InvalidInputException( + "block size parameter does not match the file's block size, got %llu, expected %llu", + storage_options.block_alloc_size.GetIndex(), block_manager->GetBlockAllocSize()); + } } // load the db from storage auto checkpoint_reader = SingleFileCheckpointReader(*this); checkpoint_reader.LoadFromStorage(); - // check if the WAL file exists auto wal_path = GetWALPath(); - auto handle = fs.OpenFile(wal_path, FileFlags::FILE_FLAGS_READ | FileFlags::FILE_FLAGS_NULL_IF_NOT_EXISTS); - if (handle) { - // replay the WAL - if (WriteAheadLog::Replay(db, std::move(handle))) { - fs.RemoveFile(wal_path); - } - } + wal = WriteAheadLog::Replay(fs, db, wal_path); } load_complete = true; diff --git a/src/duckdb/src/storage/table/array_column_data.cpp b/src/duckdb/src/storage/table/array_column_data.cpp index 95ba4df3..148f3fd8 100644 --- a/src/duckdb/src/storage/table/array_column_data.cpp +++ b/src/duckdb/src/storage/table/array_column_data.cpp @@ -114,7 +114,13 @@ void ArrayColumnData::InitializeAppend(ColumnAppendState &state) { } void ArrayColumnData::Append(BaseStatistics &stats, ColumnAppendState &state, Vector &vector, idx_t count) { - vector.Flatten(count); + if (vector.GetVectorType() != VectorType::FLAT_VECTOR) { + Vector append_vector(vector); + append_vector.Flatten(count); + Append(stats, state, append_vector, count); + return; + } + // Append validity validity.Append(stats, state.child_appends[0], vector, count); // Append child column diff --git a/src/duckdb/src/storage/table/column_checkpoint_state.cpp b/src/duckdb/src/storage/table/column_checkpoint_state.cpp index 7bb1d5a9..b6c1da0a 100644 --- a/src/duckdb/src/storage/table/column_checkpoint_state.cpp +++ b/src/duckdb/src/storage/table/column_checkpoint_state.cpp @@ -112,7 +112,12 @@ void PartialBlockForCheckpoint::Clear() { segments.clear(); } -void ColumnCheckpointState::FlushSegment(unique_ptr segment, idx_t segment_size) { +void ColumnCheckpointState::FlushSegment(unique_ptr segment, BufferHandle handle, idx_t segment_size) { + handle.Destroy(); + FlushSegmentInternal(std::move(segment), segment_size); +} + +void ColumnCheckpointState::FlushSegmentInternal(unique_ptr segment, idx_t segment_size) { auto block_size = partial_block_manager.GetBlockManager().GetBlockSize(); D_ASSERT(segment_size <= block_size); diff --git a/src/duckdb/src/storage/table/column_data.cpp b/src/duckdb/src/storage/table/column_data.cpp index 7e778b86..56b74a67 100644 --- a/src/duckdb/src/storage/table/column_data.cpp +++ b/src/duckdb/src/storage/table/column_data.cpp @@ -136,10 +136,7 @@ void ColumnData::InitializePrefetch(PrefetchState &prefetch_state, ColumnScanSta } } -idx_t ColumnData::ScanVector(ColumnScanState &state, Vector &result, idx_t remaining, ScanVectorType scan_type) { - if (scan_type == ScanVectorType::SCAN_FLAT_VECTOR && result.GetVectorType() != VectorType::FLAT_VECTOR) { - throw InternalException("ScanVector called with SCAN_FLAT_VECTOR but result is not a flat vector"); - } +void ColumnData::BeginScanVectorInternal(ColumnScanState &state) { state.previous_states.clear(); if (!state.initialized) { D_ASSERT(state.current); @@ -153,6 +150,13 @@ idx_t ColumnData::ScanVector(ColumnScanState &state, Vector &result, idx_t remai state.current->Skip(state); } D_ASSERT(state.current->type == type); +} + +idx_t ColumnData::ScanVector(ColumnScanState &state, Vector &result, idx_t remaining, ScanVectorType scan_type) { + if (scan_type == ScanVectorType::SCAN_FLAT_VECTOR && result.GetVectorType() != VectorType::FLAT_VECTOR) { + throw InternalException("ScanVector called with SCAN_FLAT_VECTOR but result is not a flat vector"); + } + BeginScanVectorInternal(state); idx_t initial_remaining = remaining; while (remaining > 0) { D_ASSERT(state.row_index >= state.current->start && @@ -191,6 +195,36 @@ idx_t ColumnData::ScanVector(ColumnScanState &state, Vector &result, idx_t remai return initial_remaining - remaining; } +void ColumnData::SelectVector(ColumnScanState &state, Vector &result, idx_t target_count, const SelectionVector &sel, + idx_t sel_count) { + BeginScanVectorInternal(state); + if (state.current->start + state.current->count - state.row_index < target_count) { + throw InternalException("ColumnData::SelectVector should be able to fetch everything from one segment"); + } + if (state.scan_options && state.scan_options->force_fetch_row) { + for (idx_t i = 0; i < sel_count; i++) { + auto source_idx = sel.get_index(i); + ColumnFetchState fetch_state; + state.current->FetchRow(fetch_state, UnsafeNumericCast(state.row_index + source_idx), result, i); + } + } else { + state.current->Select(state, target_count, result, sel, sel_count); + } + state.row_index += target_count; + state.internal_index = state.row_index; +} + +void ColumnData::FilterVector(ColumnScanState &state, Vector &result, idx_t target_count, SelectionVector &sel, + idx_t &sel_count, const TableFilter &filter) { + BeginScanVectorInternal(state); + if (state.current->start + state.current->count - state.row_index < target_count) { + throw InternalException("ColumnData::Filter should be able to fetch everything from one segment"); + } + state.current->Filter(state, target_count, result, sel, sel_count, filter); + state.row_index += target_count; + state.internal_index = state.row_index; +} + unique_ptr ColumnData::GetUpdateStatistics() { lock_guard update_guard(update_lock); return updates ? updates->GetStatistics() : nullptr; @@ -230,26 +264,23 @@ void ColumnData::UpdateInternal(TransactionData transaction, idx_t column_index, updates->Update(transaction, column_index, update_vector, row_ids, update_count, base_vector); } -template idx_t ColumnData::ScanVector(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, - idx_t target_scan) { - auto scan_type = GetVectorScanType(state, target_scan, result); + idx_t target_scan, ScanVectorType scan_type, ScanVectorMode mode) { auto scan_count = ScanVector(state, result, target_scan, scan_type); if (scan_type != ScanVectorType::SCAN_ENTIRE_VECTOR) { // if we are scanning an entire vector we cannot have updates - FetchUpdates(transaction, vector_index, result, scan_count, ALLOW_UPDATES, SCAN_COMMITTED); + bool allow_updates = mode != ScanVectorMode::SCAN_COMMITTED_NO_UPDATES; + bool scan_committed = mode != ScanVectorMode::REGULAR_SCAN; + FetchUpdates(transaction, vector_index, result, scan_count, allow_updates, scan_committed); } return scan_count; } -template idx_t ColumnData::ScanVector(TransactionData transaction, idx_t vector_index, - ColumnScanState &state, Vector &result, idx_t target_scan); -template idx_t ColumnData::ScanVector(TransactionData transaction, idx_t vector_index, - ColumnScanState &state, Vector &result, idx_t target_scan); -template idx_t ColumnData::ScanVector(TransactionData transaction, idx_t vector_index, - ColumnScanState &state, Vector &result, idx_t target_scan); -template idx_t ColumnData::ScanVector(TransactionData transaction, idx_t vector_index, - ColumnScanState &state, Vector &result, idx_t target_scan); +idx_t ColumnData::ScanVector(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + idx_t target_scan, ScanVectorMode mode) { + auto scan_type = GetVectorScanType(state, target_scan, result); + return ScanVector(transaction, vector_index, state, result, target_scan, scan_type, mode); +} idx_t ColumnData::Scan(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result) { auto target_count = GetVectorCount(vector_index); @@ -263,16 +294,14 @@ idx_t ColumnData::ScanCommitted(idx_t vector_index, ColumnScanState &state, Vect idx_t ColumnData::Scan(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, idx_t scan_count) { - return ScanVector(transaction, vector_index, state, result, scan_count); + return ScanVector(transaction, vector_index, state, result, scan_count, ScanVectorMode::REGULAR_SCAN); } idx_t ColumnData::ScanCommitted(idx_t vector_index, ColumnScanState &state, Vector &result, bool allow_updates, idx_t scan_count) { - if (allow_updates) { - return ScanVector(TransactionData(0, 0), vector_index, state, result, scan_count); - } else { - return ScanVector(TransactionData(0, 0), vector_index, state, result, scan_count); - } + auto mode = allow_updates ? ScanVectorMode::SCAN_COMMITTED : ScanVectorMode::SCAN_COMMITTED_NO_UPDATES; + TransactionData commit_transaction(0, 0); + return ScanVector(commit_transaction, vector_index, state, result, scan_count, mode); } idx_t ColumnData::GetVectorCount(idx_t vector_index) const { @@ -301,7 +330,7 @@ idx_t ColumnData::ScanCount(ColumnScanState &state, Vector &result, idx_t scan_c return ScanVector(state, result, scan_count, ScanVectorType::SCAN_FLAT_VECTOR); } -void ColumnData::Select(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, +void ColumnData::Filter(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, idx_t &s_count, const TableFilter &filter) { idx_t scan_count = Scan(transaction, vector_index, state, result); @@ -310,14 +339,14 @@ void ColumnData::Select(TransactionData transaction, idx_t vector_index, ColumnS ColumnSegment::FilterSelection(sel, result, vdata, filter, scan_count, s_count); } -void ColumnData::FilterScan(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, - SelectionVector &sel, idx_t s_count) { +void ColumnData::Select(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + SelectionVector &sel, idx_t s_count) { Scan(transaction, vector_index, state, result); result.Slice(sel, s_count); } -void ColumnData::FilterScanCommitted(idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, - idx_t s_count, bool allow_updates) { +void ColumnData::SelectCommitted(idx_t vector_index, ColumnScanState &state, Vector &result, SelectionVector &sel, + idx_t s_count, bool allow_updates) { ScanCommitted(vector_index, state, result, allow_updates); result.Slice(sel, s_count); } @@ -527,8 +556,33 @@ void ColumnData::AppendTransientSegment(SegmentLock &l, idx_t start_row) { // The segment size is bound by the block size, but can be smaller. idx_t segment_size = block_size < vector_segment_size ? block_size : vector_segment_size; allocation_size += segment_size; - auto new_segment = ColumnSegment::CreateTransientSegment(GetDatabase(), type, start_row, segment_size, block_size); - data.AppendSegment(l, std::move(new_segment)); + + auto &db = GetDatabase(); + auto &config = DBConfig::GetConfig(db); + auto function = config.GetCompressionFunction(CompressionType::COMPRESSION_UNCOMPRESSED, type.InternalType()); + + auto new_segment = ColumnSegment::CreateTransientSegment(db, *function, type, start_row, segment_size, block_size); + AppendSegment(l, std::move(new_segment)); +} + +void ColumnData::UpdateCompressionFunction(SegmentLock &l, CompressionFunction &function) { + if (!compression) { + // compression is empty... + // if we have no segments - we have not set it yet, so assign it + // if we have segments, the compression is mixed, so ignore it + if (data.GetSegmentCount(l) == 0) { + compression = function; + } + } else if (compression->type != function.type) { + // we already have compression set - and we are adding a segment with a different compression + // compression in the segment is mixed - clear the compression pointer + compression = nullptr; + } +} + +void ColumnData::AppendSegment(SegmentLock &l, unique_ptr segment) { + UpdateCompressionFunction(l, segment->function); + data.AppendSegment(l, std::move(segment)); } void ColumnData::CommitDropColumn() { @@ -576,8 +630,13 @@ unique_ptr ColumnData::Checkpoint(RowGroup &row_group, Co ColumnDataCheckpointer checkpointer(*this, row_group, *checkpoint_state, checkpoint_info); checkpointer.Checkpoint(std::move(nodes)); + // reset the compression function + compression = nullptr; // replace the old tree with the new one - data.Replace(l, checkpoint_state->new_tree); + auto new_segments = checkpoint_state->new_tree.MoveSegments(); + for (auto &new_segment : new_segments) { + AppendSegment(l, std::move(new_segment.node)); + } ClearUpdates(); return checkpoint_state; @@ -606,7 +665,8 @@ void ColumnData::InitializeColumn(PersistentColumnData &column_data, BaseStatist data_pointer.row_start, data_pointer.tuple_count, data_pointer.compression_type, std::move(data_pointer.statistics), std::move(data_pointer.segment_state)); - data.AppendSegment(std::move(segment)); + auto l = data.Lock(); + AppendSegment(l, std::move(segment)); } } @@ -833,6 +893,7 @@ void ColumnData::GetColumnSegmentInfo(idx_t row_group_index, vector col_p auto segment_state = segment->GetSegmentState(); if (segment_state) { column_info.segment_info = segment_state->GetSegmentInfo(); + column_info.additional_blocks = segment_state->GetAdditionalBlocks(); } result.emplace_back(column_info); diff --git a/src/duckdb/src/storage/table/column_segment.cpp b/src/duckdb/src/storage/table/column_segment.cpp index ae73eef9..491096b7 100644 --- a/src/duckdb/src/storage/table/column_segment.cpp +++ b/src/duckdb/src/storage/table/column_segment.cpp @@ -4,6 +4,7 @@ #include "duckdb/common/types/null_value.hpp" #include "duckdb/common/types/vector.hpp" #include "duckdb/main/config.hpp" +#include "duckdb/main/database.hpp" #include "duckdb/planner/filter/conjunction_filter.hpp" #include "duckdb/planner/filter/constant_filter.hpp" #include "duckdb/planner/filter/struct_filter.hpp" @@ -44,19 +45,15 @@ unique_ptr ColumnSegment::CreatePersistentSegment(DatabaseInstanc std::move(statistics), block_id, offset, segment_size, std::move(segment_state)); } -unique_ptr ColumnSegment::CreateTransientSegment(DatabaseInstance &db, const LogicalType &type, - const idx_t start, const idx_t segment_size, - const idx_t block_size) { +unique_ptr ColumnSegment::CreateTransientSegment(DatabaseInstance &db, CompressionFunction &function, + const LogicalType &type, const idx_t start, + const idx_t segment_size, const idx_t block_size) { // Allocate a buffer for the uncompressed segment. auto &buffer_manager = BufferManager::GetBufferManager(db); auto block = buffer_manager.RegisterTransientMemory(segment_size, block_size); - // Get the segment compression function. - auto &config = DBConfig::GetConfig(db); - auto function = config.GetCompressionFunction(CompressionType::COMPRESSION_UNCOMPRESSED, type.InternalType()); - - return make_uniq(db, std::move(block), type, ColumnSegmentType::TRANSIENT, start, 0U, *function, + return make_uniq(db, std::move(block), type, ColumnSegmentType::TRANSIENT, start, 0U, function, BaseStatistics::CreateEmpty(type), INVALID_BLOCK, 0U, segment_size); } @@ -126,6 +123,22 @@ void ColumnSegment::Scan(ColumnScanState &state, idx_t scan_count, Vector &resul } } +void ColumnSegment::Select(ColumnScanState &state, idx_t scan_count, Vector &result, const SelectionVector &sel, + idx_t sel_count) { + if (!function.get().select) { + throw InternalException("ColumnSegment::Select not implemented for this compression method"); + } + function.get().select(*this, state, scan_count, result, sel, sel_count); +} + +void ColumnSegment::Filter(ColumnScanState &state, idx_t scan_count, Vector &result, SelectionVector &sel, + idx_t &sel_count, const TableFilter &filter) { + if (!function.get().filter) { + throw InternalException("ColumnSegment::Filter not implemented for this compression method"); + } + function.get().filter(*this, state, scan_count, result, sel, sel_count, filter); +} + void ColumnSegment::Skip(ColumnScanState &state) { function.get().skip(*this, state, state.row_index - state.internal_index); state.internal_index = state.row_index; @@ -392,6 +405,9 @@ static idx_t TemplatedNullSelection(UnifiedVectorFormat &vdata, SelectionVector idx_t ColumnSegment::FilterSelection(SelectionVector &sel, Vector &vector, UnifiedVectorFormat &vdata, const TableFilter &filter, idx_t scan_count, idx_t &approved_tuple_count) { switch (filter.filter_type) { + case TableFilterType::OPTIONAL_FILTER: { + return scan_count; + } case TableFilterType::CONJUNCTION_OR: { // similar to the CONJUNCTION_AND, but we need to take care of the SelectionVectors (OR all of them) idx_t count_total = 0; @@ -430,7 +446,6 @@ idx_t ColumnSegment::FilterSelection(SelectionVector &sel, Vector &vector, Unifi } case TableFilterType::CONSTANT_COMPARISON: { auto &constant_filter = filter.Cast(); - // the inplace loops take the result as the last parameter switch (vector.GetType().InternalType()) { case PhysicalType::UINT8: { auto predicate = UTinyIntValue::Get(constant_filter.constant); diff --git a/src/duckdb/src/storage/table/list_column_data.cpp b/src/duckdb/src/storage/table/list_column_data.cpp index e95b3caa..03d8de08 100644 --- a/src/duckdb/src/storage/table/list_column_data.cpp +++ b/src/duckdb/src/storage/table/list_column_data.cpp @@ -233,15 +233,15 @@ void ListColumnData::Append(BaseStatistics &stats, ColumnAppendState &state, Vec vdata.sel = FlatVector::IncrementalSelectionVector(); vdata.data = data_ptr_cast(append_offsets.get()); + // append the child vector + if (child_count > 0) { + child_column->Append(ListStats::GetChildStats(stats), state.child_appends[1], child_vector, child_count); + } // append the list offsets ColumnData::AppendData(stats, state, vdata, count); // append the validity data vdata.validity = append_mask; validity.AppendData(stats, state.child_appends[0], vdata, count); - // append the child vector - if (child_count > 0) { - child_column->Append(ListStats::GetChildStats(stats), state.child_appends[1], child_vector, child_count); - } } void ListColumnData::RevertAppend(row_t start_row) { diff --git a/src/duckdb/src/storage/table/row_group.cpp b/src/duckdb/src/storage/table/row_group.cpp index f05edb99..ef5ac5f8 100644 --- a/src/duckdb/src/storage/table/row_group.cpp +++ b/src/duckdb/src/storage/table/row_group.cpp @@ -21,6 +21,7 @@ #include "duckdb/common/serializer/binary_serializer.hpp" #include "duckdb/planner/filter/conjunction_filter.hpp" #include "duckdb/planner/filter/struct_filter.hpp" +#include "duckdb/planner/filter/optional_filter.hpp" #include "duckdb/execution/adaptive_filter.hpp" namespace duckdb { @@ -94,6 +95,14 @@ idx_t RowGroup::GetColumnCount() const { return columns.size(); } +idx_t RowGroup::GetRowGroupSize() const { + return collection.get().GetRowGroupSize(); +} + +ColumnData &RowGroup::GetColumn(const StorageIndex &c) { + return GetColumn(c.GetPrimaryIndex()); +} + ColumnData &RowGroup::GetColumn(storage_t c) { D_ASSERT(c < columns.size()); if (!is_loaded) { @@ -144,7 +153,8 @@ void RowGroup::InitializeEmpty(const vector &types) { } } -void ColumnScanState::Initialize(const LogicalType &type, optional_ptr options) { +void ColumnScanState::Initialize(const LogicalType &type, const vector &children, + optional_ptr options) { // Register the options in the state scan_options = options; @@ -156,8 +166,23 @@ void ColumnScanState::Initialize(const LogicalType &type, optional_ptr options) { + vector children; + Initialize(type, children, options); +} + void CollectionScanState::Initialize(const vector &types) { auto &column_ids = GetColumnIds(); column_scans = make_unsafe_uniq_array(column_ids.size()); for (idx_t i = 0; i < column_ids.size(); i++) { - if (column_ids[i] == COLUMN_IDENTIFIER_ROW_ID) { + if (column_ids[i].IsRowIdColumn()) { continue; } - column_scans[i].Initialize(types[column_ids[i]], &GetOptions()); + auto col_id = column_ids[i].GetPrimaryIndex(); + column_scans[i].Initialize(types[col_id], column_ids[i].GetChildIndexes(), &GetOptions()); } } @@ -207,7 +238,7 @@ bool RowGroup::InitializeScanWithOffset(CollectionScanState &state, idx_t vector D_ASSERT(state.column_scans); for (idx_t i = 0; i < column_ids.size(); i++) { const auto &column = column_ids[i]; - if (column != COLUMN_IDENTIFIER_ROW_ID) { + if (!column.IsRowIdColumn()) { auto &column_data = GetColumn(column); column_data.InitializeScanWithOffset(state.column_scans[i], row_number); state.column_scans[i].scan_options = &state.GetOptions(); @@ -234,7 +265,7 @@ bool RowGroup::InitializeScan(CollectionScanState &state) { D_ASSERT(state.column_scans); for (idx_t i = 0; i < column_ids.size(); i++) { auto column = column_ids[i]; - if (column != COLUMN_IDENTIFIER_ROW_ID) { + if (!column.IsRowIdColumn()) { auto &column_data = GetColumn(column); column_data.InitializeScan(state.column_scans[i]); state.column_scans[i].scan_options = &state.GetOptions(); @@ -363,14 +394,22 @@ void RowGroup::NextVector(CollectionScanState &state) { const auto &column_ids = state.GetColumnIds(); for (idx_t i = 0; i < column_ids.size(); i++) { const auto &column = column_ids[i]; - if (column == COLUMN_IDENTIFIER_ROW_ID) { + if (column.IsRowIdColumn()) { continue; } - D_ASSERT(column < columns.size()); GetColumn(column).Skip(state.column_scans[i]); } } +static FilterPropagateResult CheckRowIdFilter(TableFilter &filter, idx_t beg_row, idx_t end_row) { + // RowId columns dont have a zonemap, but we can trivially create stats to check the filter against. + BaseStatistics dummy_stats = NumericStats::CreateEmpty(LogicalType::ROW_TYPE); + NumericStats::SetMin(dummy_stats, UnsafeNumericCast(beg_row)); + NumericStats::SetMax(dummy_stats, UnsafeNumericCast(end_row)); + + return filter.CheckStatistics(dummy_stats); +} + bool RowGroup::CheckZonemap(ScanFilterInfo &filters) { auto &filter_list = filters.GetFilterList(); // new row group - label all filters as up for grabs again @@ -379,7 +418,15 @@ bool RowGroup::CheckZonemap(ScanFilterInfo &filters) { auto &entry = filter_list[i]; auto &filter = entry.filter; auto base_column_index = entry.table_column_index; - auto prune_result = GetColumn(base_column_index).CheckZonemap(filter); + + FilterPropagateResult prune_result; + + if (base_column_index == COLUMN_IDENTIFIER_ROW_ID) { + prune_result = CheckRowIdFilter(filter, this->start, this->start + this->count); + } else { + prune_result = GetColumn(base_column_index).CheckZonemap(filter); + } + if (prune_result == FilterPropagateResult::FILTER_ALWAYS_FALSE) { return false; } @@ -392,40 +439,6 @@ bool RowGroup::CheckZonemap(ScanFilterInfo &filters) { return true; } -static idx_t GetFilterScanCount(ColumnScanState &state, TableFilter &filter) { - switch (filter.filter_type) { - case TableFilterType::STRUCT_EXTRACT: { - auto &struct_filter = filter.Cast(); - auto &child_state = state.child_states[1 + struct_filter.child_idx]; // +1 for validity - auto &child_filter = struct_filter.child_filter; - return GetFilterScanCount(child_state, *child_filter); - } - case TableFilterType::CONJUNCTION_AND: { - auto &conjunction_state = filter.Cast(); - idx_t max_count = 0; - for (auto &child_filter : conjunction_state.child_filters) { - max_count = std::max(GetFilterScanCount(state, *child_filter), max_count); - } - return max_count; - } - case TableFilterType::CONJUNCTION_OR: { - auto &conjunction_state = filter.Cast(); - idx_t max_count = 0; - for (auto &child_filter : conjunction_state.child_filters) { - max_count = std::max(GetFilterScanCount(state, *child_filter), max_count); - } - return max_count; - } - case TableFilterType::IS_NULL: - case TableFilterType::IS_NOT_NULL: - case TableFilterType::CONSTANT_COMPARISON: - return state.current->start + state.current->count; - default: { - throw NotImplementedException("Unimplemented filter type for zonemap"); - } - } -} - bool RowGroup::CheckZonemapSegments(CollectionScanState &state) { auto &filters = state.GetFilterInfo(); for (auto &entry : filters.GetFilterList()) { @@ -437,11 +450,25 @@ bool RowGroup::CheckZonemapSegments(CollectionScanState &state) { auto base_column_idx = entry.table_column_index; auto &filter = entry.filter; - auto prune_result = GetColumn(base_column_idx).CheckZonemap(state.column_scans[column_idx], filter); + FilterPropagateResult prune_result; + if (base_column_idx == COLUMN_IDENTIFIER_ROW_ID) { + prune_result = CheckRowIdFilter(filter, this->start, this->start + this->count); + } else { + prune_result = GetColumn(base_column_idx).CheckZonemap(state.column_scans[column_idx], filter); + } + if (prune_result != FilterPropagateResult::FILTER_ALWAYS_FALSE) { continue; } - idx_t target_row = GetFilterScanCount(state.column_scans[column_idx], filter); + + // check zone map segment. + auto &column_scan_state = state.column_scans[column_idx]; + auto current_segment = column_scan_state.current; + if (!current_segment) { + // no segment to skip + continue; + } + idx_t target_row = current_segment->start + current_segment->count; if (target_row >= state.max_row) { target_row = state.max_row; } @@ -481,6 +508,13 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s idx_t current_row = state.vector_index * STANDARD_VECTOR_SIZE; auto max_count = MinValue(STANDARD_VECTOR_SIZE, state.max_row_group_row - current_row); + // check the sampling info if we have to sample this chunk + if (state.GetSamplingInfo().do_system_sample && + state.random.NextRandom() > state.GetSamplingInfo().sample_rate) { + NextVector(state); + continue; + } + //! first check the zonemap if we have to scan this partition if (!CheckZonemapSegments(state)) { continue; @@ -518,7 +552,7 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s PrefetchState prefetch_state; for (idx_t i = 0; i < column_ids.size(); i++) { const auto &column = column_ids[i]; - if (column != COLUMN_IDENTIFIER_ROW_ID) { + if (!column.IsRowIdColumn()) { GetColumn(column).InitializePrefetch(prefetch_state, state.column_scans[i], max_count); } } @@ -531,7 +565,7 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s // scan all vectors completely: full scan without deletions or table filters for (idx_t i = 0; i < column_ids.size(); i++) { const auto &column = column_ids[i]; - if (column == COLUMN_IDENTIFIER_ROW_ID) { + if (column.IsRowIdColumn()) { // scan row id D_ASSERT(result.data[i].GetType().InternalType() == ROW_TYPE); result.data[i].Sequence(UnsafeNumericCast(this->start + current_row), 1, count); @@ -568,10 +602,48 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s // this filter is always true - skip it continue; } - auto scan_idx = filter.scan_column_index; - auto &col_data = GetColumn(filter.table_column_index); - col_data.Select(transaction, state.vector_index, state.column_scans[scan_idx], - result.data[scan_idx], sel, approved_tuple_count, filter.filter); + + const auto scan_idx = filter.scan_column_index; + const auto column_idx = filter.table_column_index; + + if (column_idx == COLUMN_IDENTIFIER_ROW_ID) { + + // We do another quick statistics scan for row ids here + const auto rowid_start = this->start + current_row; + const auto rowid_end = this->start + current_row + max_count; + const auto prune_result = CheckRowIdFilter(filter.filter, rowid_start, rowid_end); + if (prune_result == FilterPropagateResult::FILTER_ALWAYS_FALSE) { + // We can just break out of the loop here. + approved_tuple_count = 0; + break; + } + + // Generate row ids + // Create sequence for row ids + D_ASSERT(result.data[i].GetType().InternalType() == ROW_TYPE); + result.data[i].SetVectorType(VectorType::FLAT_VECTOR); + auto result_data = FlatVector::GetData(result.data[i]); + for (size_t sel_idx = 0; sel_idx < approved_tuple_count; sel_idx++) { + result_data[sel.get_index(sel_idx)] = + UnsafeNumericCast(this->start + current_row + sel.get_index(sel_idx)); + } + + // Was this filter always true? If so, we dont need to apply it + if (prune_result == FilterPropagateResult::FILTER_ALWAYS_TRUE) { + continue; + } + + // Now apply the filter + UnifiedVectorFormat vdata; + result.data[i].ToUnifiedFormat(approved_tuple_count, vdata); + ColumnSegment::FilterSelection(sel, result.data[i], vdata, filter.filter, approved_tuple_count, + approved_tuple_count); + + } else { + auto &col_data = GetColumn(filter.table_column_index); + col_data.Filter(transaction, state.vector_index, state.column_scans[scan_idx], + result.data[scan_idx], sel, approved_tuple_count, filter.filter); + } } for (auto &table_filter : filter_list) { if (table_filter.IsAlwaysTrue()) { @@ -586,8 +658,8 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s result.Reset(); // skip this vector in all the scans that were not scanned yet for (idx_t i = 0; i < column_ids.size(); i++) { - auto col_idx = column_ids[i]; - if (col_idx == COLUMN_IDENTIFIER_ROW_ID) { + auto &col_idx = column_ids[i]; + if (col_idx.IsRowIdColumn()) { continue; } if (has_filters && filter_info.ColumnHasFilters(i)) { @@ -605,9 +677,9 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s // column has already been scanned as part of the filtering process continue; } - auto column = column_ids[i]; - if (column == COLUMN_IDENTIFIER_ROW_ID) { - D_ASSERT(result.data[i].GetType().InternalType() == PhysicalType::INT64); + auto &column = column_ids[i]; + if (column.IsRowIdColumn()) { + D_ASSERT(result.data[i].GetType().InternalType() == ROW_TYPE); result.data[i].SetVectorType(VectorType::FLAT_VECTOR); auto result_data = FlatVector::GetData(result.data[i]); for (size_t sel_idx = 0; sel_idx < approved_tuple_count; sel_idx++) { @@ -617,11 +689,11 @@ void RowGroup::TemplatedScan(TransactionData transaction, CollectionScanState &s } else { auto &col_data = GetColumn(column); if (TYPE == TableScanType::TABLE_SCAN_REGULAR) { - col_data.FilterScan(transaction, state.vector_index, state.column_scans[i], result.data[i], sel, - approved_tuple_count); + col_data.Select(transaction, state.vector_index, state.column_scans[i], result.data[i], sel, + approved_tuple_count); } else { - col_data.FilterScanCommitted(state.vector_index, state.column_scans[i], result.data[i], sel, - approved_tuple_count, ALLOW_UPDATES); + col_data.SelectCommitted(state.vector_index, state.column_scans[i], result.data[i], sel, + approved_tuple_count, ALLOW_UPDATES); } } } @@ -747,14 +819,14 @@ bool RowGroup::Fetch(TransactionData transaction, idx_t row) { return vinfo->Fetch(transaction, row); } -void RowGroup::FetchRow(TransactionData transaction, ColumnFetchState &state, const vector &column_ids, +void RowGroup::FetchRow(TransactionData transaction, ColumnFetchState &state, const vector &column_ids, row_t row_id, DataChunk &result, idx_t result_idx) { for (idx_t col_idx = 0; col_idx < column_ids.size(); col_idx++) { - auto column = column_ids[col_idx]; + auto &column = column_ids[col_idx]; auto &result_vector = result.data[col_idx]; D_ASSERT(result_vector.GetVectorType() == VectorType::FLAT_VECTOR); D_ASSERT(!FlatVector::IsNull(result_vector, result_idx)); - if (column == COLUMN_IDENTIFIER_ROW_ID) { + if (column.IsRowIdColumn()) { // row id column: fill in the row ids D_ASSERT(result_vector.GetType().InternalType() == PhysicalType::INT64); result_vector.SetVectorType(VectorType::FLAT_VECTOR); @@ -769,10 +841,11 @@ void RowGroup::FetchRow(TransactionData transaction, ColumnFetchState &state, co } void RowGroup::AppendVersionInfo(TransactionData transaction, idx_t count) { + const idx_t row_group_size = GetRowGroupSize(); idx_t row_group_start = this->count.load(); idx_t row_group_end = row_group_start + count; - if (row_group_end > Storage::ROW_GROUP_SIZE) { - row_group_end = Storage::ROW_GROUP_SIZE; + if (row_group_end > row_group_size) { + row_group_end = row_group_size; } // create the version_info if it doesn't exist yet auto &vinfo = GetOrCreateVersionInfo(); diff --git a/src/duckdb/src/storage/table/row_group_collection.cpp b/src/duckdb/src/storage/table/row_group_collection.cpp index b0eb5022..1a3f8a24 100644 --- a/src/duckdb/src/storage/table/row_group_collection.cpp +++ b/src/duckdb/src/storage/table/row_group_collection.cpp @@ -53,10 +53,17 @@ unique_ptr RowGroupSegmentTree::LoadSegment() { //===--------------------------------------------------------------------===// // Row Group Collection //===--------------------------------------------------------------------===// +RowGroupCollection::RowGroupCollection(shared_ptr info_p, TableIOManager &io_manager, + vector types_p, idx_t row_start, idx_t total_rows) + : RowGroupCollection(std::move(info_p), io_manager.GetBlockManagerForRowData(), std::move(types_p), row_start, + total_rows, io_manager.GetRowGroupSize()) { +} + RowGroupCollection::RowGroupCollection(shared_ptr info_p, BlockManager &block_manager, - vector types_p, idx_t row_start_p, idx_t total_rows_p) - : block_manager(block_manager), total_rows(total_rows_p), info(std::move(info_p)), types(std::move(types_p)), - row_start(row_start_p), allocation_size(0) { + vector types_p, idx_t row_start_p, idx_t total_rows_p, + idx_t row_group_size_p) + : block_manager(block_manager), row_group_size(row_group_size_p), total_rows(total_rows_p), info(std::move(info_p)), + types(std::move(types_p)), row_start(row_start_p), allocation_size(0) { row_groups = make_shared_ptr(*this); } @@ -134,7 +141,7 @@ void RowGroupCollection::Verify() { //===--------------------------------------------------------------------===// // Scan //===--------------------------------------------------------------------===// -void RowGroupCollection::InitializeScan(CollectionScanState &state, const vector &column_ids, +void RowGroupCollection::InitializeScan(CollectionScanState &state, const vector &column_ids, TableFilterSet *table_filters) { auto row_group = row_groups->GetRootSegment(); D_ASSERT(row_group); @@ -150,7 +157,7 @@ void RowGroupCollection::InitializeCreateIndexScan(CreateIndexScanState &state) state.segment_lock = row_groups->Lock(); } -void RowGroupCollection::InitializeScanWithOffset(CollectionScanState &state, const vector &column_ids, +void RowGroupCollection::InitializeScanWithOffset(CollectionScanState &state, const vector &column_ids, idx_t start_row, idx_t end_row) { auto row_group = row_groups->GetSegment(start_row); D_ASSERT(row_group); @@ -235,11 +242,11 @@ bool RowGroupCollection::NextParallelScan(ClientContext &context, ParallelCollec return false; } -bool RowGroupCollection::Scan(DuckTransaction &transaction, const vector &column_ids, +bool RowGroupCollection::Scan(DuckTransaction &transaction, const vector &column_ids, const std::function &fun) { vector scan_types; for (idx_t i = 0; i < column_ids.size(); i++) { - scan_types.push_back(types[column_ids[i]]); + scan_types.push_back(types[column_ids[i].GetPrimaryIndex()]); } DataChunk chunk; chunk.Initialize(GetAllocator(), scan_types); @@ -262,10 +269,10 @@ bool RowGroupCollection::Scan(DuckTransaction &transaction, const vector &fun) { - vector column_ids; + vector column_ids; column_ids.reserve(types.size()); for (idx_t i = 0; i < types.size(); i++) { - column_ids.push_back(i); + column_ids.emplace_back(i); } return Scan(transaction, column_ids, fun); } @@ -273,7 +280,7 @@ bool RowGroupCollection::Scan(DuckTransaction &transaction, const std::function< //===--------------------------------------------------------------------===// // Fetch //===--------------------------------------------------------------------===// -void RowGroupCollection::Fetch(TransactionData transaction, DataChunk &result, const vector &column_ids, +void RowGroupCollection::Fetch(TransactionData transaction, DataChunk &result, const vector &column_ids, const Vector &row_identifiers, idx_t fetch_count, ColumnFetchState &state) { // figure out which row_group to fetch from auto row_ids = FlatVector::GetData(row_identifiers); @@ -303,7 +310,8 @@ void RowGroupCollection::Fetch(TransactionData transaction, DataChunk &result, c // Append //===--------------------------------------------------------------------===// TableAppendState::TableAppendState() - : row_group_append_state(*this), total_append_count(0), start_row_group(nullptr), transaction(0, 0) { + : row_group_append_state(*this), total_append_count(0), start_row_group(nullptr), transaction(0, 0), + hashes(LogicalType::HASH) { } TableAppendState::~TableAppendState() { @@ -345,6 +353,7 @@ void RowGroupCollection::InitializeAppend(TableAppendState &state) { } bool RowGroupCollection::Append(DataChunk &chunk, TableAppendState &state) { + const idx_t row_group_size = GetRowGroupSize(); D_ASSERT(chunk.ColumnCount() == types.size()); chunk.Verify(); @@ -356,7 +365,7 @@ bool RowGroupCollection::Append(DataChunk &chunk, TableAppendState &state) { auto current_row_group = state.row_group_append_state.row_group; // check how much we can fit into the current row_group idx_t append_count = - MinValue(remaining, Storage::ROW_GROUP_SIZE - state.row_group_append_state.offset_in_row_group); + MinValue(remaining, row_group_size - state.row_group_append_state.offset_in_row_group); if (append_count > 0) { auto previous_allocation_size = current_row_group->GetAllocationSize(); current_row_group->Append(state.row_group_append_state, chunk, append_count); @@ -390,16 +399,19 @@ bool RowGroupCollection::Append(DataChunk &chunk, TableAppendState &state) { state.current_row += row_t(total_append_count); auto local_stats_lock = state.stats.GetLock(); for (idx_t col_idx = 0; col_idx < types.size(); col_idx++) { - state.stats.GetStats(*local_stats_lock, col_idx).UpdateDistinctStatistics(chunk.data[col_idx], chunk.size()); + auto &column_stats = state.stats.GetStats(*local_stats_lock, col_idx); + column_stats.UpdateDistinctStatistics(chunk.data[col_idx], chunk.size(), state.hashes); } return new_row_group; } void RowGroupCollection::FinalizeAppend(TransactionData transaction, TableAppendState &state) { + const idx_t row_group_size = GetRowGroupSize(); + auto remaining = state.total_append_count; auto row_group = state.start_row_group; while (remaining > 0) { - auto append_count = MinValue(remaining, Storage::ROW_GROUP_SIZE - row_group->count); + auto append_count = MinValue(remaining, row_group_size - row_group->count); row_group->AppendVersionInfo(transaction, append_count); remaining -= append_count; row_group = row_groups->GetNextSegment(row_group); @@ -615,10 +627,10 @@ void RowGroupCollection::RemoveFromIndexes(TableIndexList &indexes, Vector &row_ // initialize the fetch state // FIXME: we do not need to fetch all columns, only the columns required by the indices! TableScanState state; - vector column_ids; + vector column_ids; column_ids.reserve(types.size()); for (idx_t i = 0; i < types.size(); i++) { - column_ids.push_back(i); + column_ids.emplace_back(i); } state.Initialize(std::move(column_ids)); state.table_state.max_row = row_start + total_rows; @@ -758,6 +770,7 @@ class VacuumTask : public BaseCheckpointTask { void ExecuteTask() override { auto &collection = checkpoint_state.collection; + const idx_t row_group_size = collection.GetRowGroupSize(); auto &types = collection.GetTypes(); // create the new set of target row groups (initially empty) vector> new_row_groups; @@ -765,7 +778,7 @@ class VacuumTask : public BaseCheckpointTask { idx_t row_group_rows = merge_rows; idx_t start = row_start; for (idx_t target_idx = 0; target_idx < target_count; target_idx++) { - idx_t current_row_group_rows = MinValue(row_group_rows, Storage::ROW_GROUP_SIZE); + idx_t current_row_group_rows = MinValue(row_group_rows, row_group_size); auto new_row_group = make_uniq(collection, start, current_row_group_rows); new_row_group->InitializeEmpty(types); new_row_groups.push_back(std::move(new_row_group)); @@ -778,9 +791,9 @@ class VacuumTask : public BaseCheckpointTask { DataChunk scan_chunk; scan_chunk.Initialize(Allocator::DefaultAllocator(), types); - vector column_ids; + vector column_ids; for (idx_t c = 0; c < types.size(); c++) { - column_ids.push_back(c); + column_ids.emplace_back(c); } idx_t current_append_idx = 0; @@ -815,13 +828,12 @@ class VacuumTask : public BaseCheckpointTask { scan_chunk.Flatten(); idx_t remaining = scan_chunk.size(); while (remaining > 0) { - idx_t append_count = - MinValue(remaining, Storage::ROW_GROUP_SIZE - append_counts[current_append_idx]); + idx_t append_count = MinValue(remaining, row_group_size - append_counts[current_append_idx]); new_row_groups[current_append_idx]->Append(append_state.row_group_append_state, scan_chunk, append_count); append_counts[current_append_idx] += append_count; remaining -= append_count; - const bool row_group_full = append_counts[current_append_idx] == Storage::ROW_GROUP_SIZE; + const bool row_group_full = append_counts[current_append_idx] == row_group_size; const bool last_row_group = current_append_idx + 1 >= new_row_groups.size(); if (remaining > 0 || (row_group_full && !last_row_group)) { // move to the next row group @@ -917,8 +929,9 @@ bool RowGroupCollection::ScheduleVacuumTasks(CollectionCheckpointState &checkpoi // hence we target_count should be less than merge_count for a marge to be worth it // we greedily prefer to merge to the lowest target_count // i.e. we prefer to merge 2 row groups into 1, than 3 row groups into 2 + const idx_t row_group_size = GetRowGroupSize(); for (target_count = 1; target_count <= MAX_MERGE_COUNT; target_count++) { - auto total_target_size = target_count * Storage::ROW_GROUP_SIZE; + auto total_target_size = target_count * row_group_size; merge_count = 0; merge_rows = 0; for (next_idx = segment_idx; next_idx < checkpoint_state.segments.size(); next_idx++) { @@ -962,36 +975,45 @@ unique_ptr RowGroupCollection::GetCheckpointTask(CollectionCheck } void RowGroupCollection::Checkpoint(TableDataWriter &writer, TableStatistics &global_stats) { - auto segments = row_groups->MoveSegments(); auto l = row_groups->Lock(); + auto segments = row_groups->MoveSegments(l); CollectionCheckpointState checkpoint_state(*this, writer, segments, global_stats); VacuumState vacuum_state; InitializeVacuumState(checkpoint_state, vacuum_state, segments); - // schedule tasks - idx_t total_vacuum_tasks = 0; - auto &config = DBConfig::GetConfig(writer.GetDatabase()); - for (idx_t segment_idx = 0; segment_idx < segments.size(); segment_idx++) { - auto &entry = segments[segment_idx]; - auto vacuum_tasks = ScheduleVacuumTasks(checkpoint_state, vacuum_state, segment_idx, - total_vacuum_tasks < config.options.max_vacuum_tasks); - if (vacuum_tasks) { - // vacuum tasks were scheduled - don't schedule a checkpoint task yet - total_vacuum_tasks++; - continue; - } - if (!entry.node) { - // row group was vacuumed/dropped - skip - continue; + + try { + // schedule tasks + idx_t total_vacuum_tasks = 0; + auto &config = DBConfig::GetConfig(writer.GetDatabase()); + + for (idx_t segment_idx = 0; segment_idx < segments.size(); segment_idx++) { + auto &entry = segments[segment_idx]; + auto vacuum_tasks = ScheduleVacuumTasks(checkpoint_state, vacuum_state, segment_idx, + total_vacuum_tasks < config.options.max_vacuum_tasks); + if (vacuum_tasks) { + // vacuum tasks were scheduled - don't schedule a checkpoint task yet + total_vacuum_tasks++; + continue; + } + if (!entry.node) { + // row group was vacuumed/dropped - skip + continue; + } + // schedule a checkpoint task for this row group + entry.node->MoveToCollection(*this, vacuum_state.row_start); + auto checkpoint_task = GetCheckpointTask(checkpoint_state, segment_idx); + checkpoint_state.executor.ScheduleTask(std::move(checkpoint_task)); + vacuum_state.row_start += entry.node->count; } - // schedule a checkpoint task for this row group - entry.node->MoveToCollection(*this, vacuum_state.row_start); - auto checkpoint_task = GetCheckpointTask(checkpoint_state, segment_idx); - checkpoint_state.executor.ScheduleTask(std::move(checkpoint_task)); - vacuum_state.row_start += entry.node->count; + } catch (const std::exception &e) { + ErrorData error(e); + checkpoint_state.executor.PushError(std::move(error)); + checkpoint_state.executor.WorkOnTasks(); // ensure all tasks have completed first before rethrowing + throw; } - // all tasks have been scheduled - execute tasks until we are done + // all tasks have been successfully scheduled - execute tasks until we are done checkpoint_state.executor.WorkOnTasks(); // no errors - finalize the row groups @@ -1050,8 +1072,8 @@ shared_ptr RowGroupCollection::AddColumn(ClientContext &cont idx_t new_column_idx = types.size(); auto new_types = types; new_types.push_back(new_column.GetType()); - auto result = - make_shared_ptr(info, block_manager, std::move(new_types), row_start, total_rows.load()); + auto result = make_shared_ptr(info, block_manager, std::move(new_types), row_start, + total_rows.load(), row_group_size); DataChunk dummy_chunk; Vector default_vector(new_column.GetType()); @@ -1077,8 +1099,8 @@ shared_ptr RowGroupCollection::RemoveColumn(idx_t col_idx) { auto new_types = types; new_types.erase_at(col_idx); - auto result = - make_shared_ptr(info, block_manager, std::move(new_types), row_start, total_rows.load()); + auto result = make_shared_ptr(info, block_manager, std::move(new_types), row_start, + total_rows.load(), row_group_size); result->stats.InitializeRemoveColumn(stats, col_idx); for (auto ¤t_row_group : row_groups->Segments()) { @@ -1090,21 +1112,22 @@ shared_ptr RowGroupCollection::RemoveColumn(idx_t col_idx) { shared_ptr RowGroupCollection::AlterType(ClientContext &context, idx_t changed_idx, const LogicalType &target_type, - vector bound_columns, Expression &cast_expr) { + vector bound_columns, + Expression &cast_expr) { D_ASSERT(changed_idx < types.size()); auto new_types = types; new_types[changed_idx] = target_type; - auto result = - make_shared_ptr(info, block_manager, std::move(new_types), row_start, total_rows.load()); + auto result = make_shared_ptr(info, block_manager, std::move(new_types), row_start, + total_rows.load(), row_group_size); result->stats.InitializeAlterType(stats, changed_idx, target_type); vector scan_types; for (idx_t i = 0; i < bound_columns.size(); i++) { - if (bound_columns[i] == COLUMN_IDENTIFIER_ROW_ID) { + if (bound_columns[i].IsRowIdColumn()) { scan_types.emplace_back(LogicalType::ROW_TYPE); } else { - scan_types.push_back(types[bound_columns[i]]); + scan_types.push_back(types[bound_columns[i].GetPrimaryIndex()]); } } DataChunk scan_chunk; @@ -1134,33 +1157,39 @@ void RowGroupCollection::VerifyNewConstraint(DataTable &parent, const BoundConst if (total_rows == 0) { return; } - // scan the original table, check if there's any null value + + // Scan the original table for NULL values. auto ¬_null_constraint = constraint.Cast(); vector scan_types; auto physical_index = not_null_constraint.index.index; D_ASSERT(physical_index < types.size()); + scan_types.push_back(types[physical_index]); DataChunk scan_chunk; scan_chunk.Initialize(GetAllocator(), scan_types); + vector column_ids; + column_ids.emplace_back(physical_index); + + // Use SCAN_COMMITTED to scan the latest data. CreateIndexScanState state; - vector cids; - cids.push_back(physical_index); - // Use ScanCommitted to scan the latest committed data - state.Initialize(cids, nullptr); - InitializeScan(state.table_state, cids, nullptr); + auto scan_type = TableScanType::TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED; + state.Initialize(column_ids, nullptr); + InitializeScan(state.table_state, column_ids, nullptr); + InitializeCreateIndexScan(state); + while (true) { scan_chunk.Reset(); - state.table_state.ScanCommitted(scan_chunk, state.segment_lock, - TableScanType::TABLE_SCAN_COMMITTED_ROWS_OMIT_PERMANENTLY_DELETED); + state.table_state.ScanCommitted(scan_chunk, state.segment_lock, scan_type); if (scan_chunk.size() == 0) { break; } - // Check constraint + + // Verify the NOT NULL constraint. if (VectorOperations::HasNull(scan_chunk.data[0], scan_chunk.size())) { - throw ConstraintException("NOT NULL constraint failed: %s.%s", info->GetTableName(), - parent.Columns()[physical_index].GetName()); + auto name = parent.Columns()[physical_index].GetName(); + throw ConstraintException("NOT NULL constraint failed: %s.%s", info->GetTableName(), name); } } } diff --git a/src/duckdb/src/storage/table/row_version_manager.cpp b/src/duckdb/src/storage/table/row_version_manager.cpp index eebbc083..a3b47a56 100644 --- a/src/duckdb/src/storage/table/row_version_manager.cpp +++ b/src/duckdb/src/storage/table/row_version_manager.cpp @@ -14,9 +14,9 @@ void RowVersionManager::SetStart(idx_t new_start) { lock_guard l(version_lock); this->start = new_start; idx_t current_start = start; - for (idx_t i = 0; i < Storage::ROW_GROUP_VECTOR_COUNT; i++) { - if (vector_info[i]) { - vector_info[i]->start = current_start; + for (auto &info : vector_info) { + if (info) { + info->start = current_start; } current_start += STANDARD_VECTOR_SIZE; } @@ -26,7 +26,7 @@ idx_t RowVersionManager::GetCommittedDeletedCount(idx_t count) { lock_guard l(version_lock); idx_t deleted_count = 0; for (idx_t r = 0, i = 0; r < count; r += STANDARD_VECTOR_SIZE, i++) { - if (!vector_info[i]) { + if (i >= vector_info.size() || !vector_info[i]) { continue; } idx_t max_count = MinValue(STANDARD_VECTOR_SIZE, count - r); @@ -39,6 +39,9 @@ idx_t RowVersionManager::GetCommittedDeletedCount(idx_t count) { } optional_ptr RowVersionManager::GetChunkInfo(idx_t vector_idx) { + if (vector_idx >= vector_info.size()) { + return nullptr; + } return vector_info[vector_idx].get(); } @@ -72,12 +75,27 @@ bool RowVersionManager::Fetch(TransactionData transaction, idx_t row) { return info->Fetch(transaction, UnsafeNumericCast(row - vector_index * STANDARD_VECTOR_SIZE)); } +void RowVersionManager::FillVectorInfo(idx_t vector_idx) { + if (vector_idx < vector_info.size()) { + return; + } + vector_info.reserve(vector_idx + 1); + for (idx_t i = vector_info.size(); i <= vector_idx; i++) { + vector_info.emplace_back(); + } +} + void RowVersionManager::AppendVersionInfo(TransactionData transaction, idx_t count, idx_t row_group_start, idx_t row_group_end) { lock_guard lock(version_lock); has_changes = true; idx_t start_vector_idx = row_group_start / STANDARD_VECTOR_SIZE; idx_t end_vector_idx = (row_group_end - 1) / STANDARD_VECTOR_SIZE; + + // fill-up vector_info + FillVectorInfo(end_vector_idx); + + // insert the version info nodes for (idx_t vector_idx = start_vector_idx; vector_idx <= end_vector_idx; vector_idx++) { idx_t vector_start = vector_idx == start_vector_idx ? row_group_start - start_vector_idx * STANDARD_VECTOR_SIZE : 0; @@ -139,11 +157,15 @@ void RowVersionManager::CleanupAppend(transaction_t lowest_active_transaction, i for (idx_t vector_idx = start_vector_idx; vector_idx <= end_vector_idx; vector_idx++) { idx_t vcount = vector_idx == end_vector_idx ? row_group_end - end_vector_idx * STANDARD_VECTOR_SIZE : STANDARD_VECTOR_SIZE; - auto &info = *vector_info[vector_idx]; if (vcount != STANDARD_VECTOR_SIZE) { // not written fully - skip continue; } + if (vector_idx >= vector_info.size() || !vector_info[vector_idx]) { + // already vacuumed - skip + continue; + } + auto &info = *vector_info[vector_idx]; // if we wrote the entire chunk info try to compress it unique_ptr new_info; auto cleanup = info.Cleanup(lowest_active_transaction, new_info); @@ -156,12 +178,14 @@ void RowVersionManager::CleanupAppend(transaction_t lowest_active_transaction, i void RowVersionManager::RevertAppend(idx_t start_row) { lock_guard lock(version_lock); idx_t start_vector_idx = (start_row + (STANDARD_VECTOR_SIZE - 1)) / STANDARD_VECTOR_SIZE; - for (idx_t vector_idx = start_vector_idx; vector_idx < Storage::ROW_GROUP_VECTOR_COUNT; vector_idx++) { + for (idx_t vector_idx = start_vector_idx; vector_idx < vector_info.size(); vector_idx++) { vector_info[vector_idx].reset(); } } ChunkVectorInfo &RowVersionManager::GetVectorInfo(idx_t vector_idx) { + FillVectorInfo(vector_idx); + if (!vector_info[vector_idx]) { // no info yet: create it vector_info[vector_idx] = make_uniq(start + vector_idx * STANDARD_VECTOR_SIZE); @@ -202,7 +226,7 @@ vector RowVersionManager::Checkpoint(MetadataManager &manager) } // first count how many ChunkInfo's we need to deserialize vector>> to_serialize; - for (idx_t vector_idx = 0; vector_idx < Storage::ROW_GROUP_VECTOR_COUNT; vector_idx++) { + for (idx_t vector_idx = 0; vector_idx < vector_info.size(); vector_idx++) { auto chunk_info = vector_info[vector_idx].get(); if (!chunk_info) { continue; @@ -244,10 +268,13 @@ shared_ptr RowVersionManager::Deserialize(MetaBlockPointer de D_ASSERT(chunk_count > 0); for (idx_t i = 0; i < chunk_count; i++) { idx_t vector_index = source.Read(); - if (vector_index >= Storage::ROW_GROUP_VECTOR_COUNT) { - throw InternalException( - "In DeserializeDeletes, vector_index is out of range for the row group. Corrupted file?"); + if (vector_index * STANDARD_VECTOR_SIZE >= Storage::MAX_ROW_GROUP_SIZE) { + throw IOException("In DeserializeDeletes, vector_index %llu is out of range for the max row group size of " + "%llu. Corrupted file?", + vector_index, Storage::MAX_ROW_GROUP_SIZE); } + + version_info->FillVectorInfo(vector_index); version_info->vector_info[vector_index] = ChunkInfo::Read(source); } version_info->has_changes = false; diff --git a/src/duckdb/src/storage/table/scan_state.cpp b/src/duckdb/src/storage/table/scan_state.cpp index 5eb0adf7..adeccde9 100644 --- a/src/duckdb/src/storage/table/scan_state.cpp +++ b/src/duckdb/src/storage/table/scan_state.cpp @@ -16,14 +16,19 @@ TableScanState::TableScanState() : table_state(*this), local_state(*this) { TableScanState::~TableScanState() { } -void TableScanState::Initialize(vector column_ids_p, optional_ptr table_filters) { +void TableScanState::Initialize(vector column_ids_p, optional_ptr table_filters, + optional_ptr table_sampling) { this->column_ids = std::move(column_ids_p); if (table_filters) { filters.Initialize(*table_filters, column_ids); } + if (table_sampling) { + sampling_info.do_system_sample = table_sampling->method == SampleMethod::SYSTEM_SAMPLE; + sampling_info.sample_rate = table_sampling->sample_size.GetValue() / 100.0; + } } -const vector &TableScanState::GetColumnIds() { +const vector &TableScanState::GetColumnIds() { D_ASSERT(!column_ids.empty()); return column_ids; } @@ -35,11 +40,16 @@ ScanFilterInfo &TableScanState::GetFilterInfo() { return filters; } -ScanFilter::ScanFilter(idx_t index, const vector &column_ids, TableFilter &filter) - : scan_column_index(index), table_column_index(column_ids[index]), filter(filter), always_true(false) { +ScanSamplingInfo &TableScanState::GetSamplingInfo() { + return sampling_info; +} + +ScanFilter::ScanFilter(idx_t index, const vector &column_ids, TableFilter &filter) + : scan_column_index(index), table_column_index(column_ids[index].GetPrimaryIndex()), filter(filter), + always_true(false) { } -void ScanFilterInfo::Initialize(TableFilterSet &filters, const vector &column_ids) { +void ScanFilterInfo::Initialize(TableFilterSet &filters, const vector &column_ids) { D_ASSERT(!filters.filters.empty()); table_filters = &filters; adaptive_filter = make_uniq(filters); @@ -133,7 +143,7 @@ void ColumnScanState::Next(idx_t count) { } } -const vector &CollectionScanState::GetColumnIds() { +const vector &CollectionScanState::GetColumnIds() { return parent.GetColumnIds(); } @@ -143,6 +153,10 @@ ScanFilterInfo &CollectionScanState::GetFilterInfo() { return parent.GetFilterInfo(); } +ScanSamplingInfo &CollectionScanState::GetSamplingInfo() { + return parent.GetSamplingInfo(); +} + TableScanOptions &CollectionScanState::GetOptions() { return parent.options; } @@ -153,7 +167,7 @@ ParallelCollectionScanState::ParallelCollectionScanState() CollectionScanState::CollectionScanState(TableScanState &parent_p) : row_group(nullptr), vector_index(0), max_row_group_row(0), row_groups(nullptr), max_row(0), batch_index(0), - valid_sel(STANDARD_VECTOR_SIZE), parent(parent_p) { + valid_sel(STANDARD_VECTOR_SIZE), random(-1), parent(parent_p) { } bool CollectionScanState::Scan(DuckTransaction &transaction, DataChunk &result) { diff --git a/src/duckdb/src/storage/table/standard_column_data.cpp b/src/duckdb/src/storage/table/standard_column_data.cpp index 1ef5da3c..671d3a65 100644 --- a/src/duckdb/src/storage/table/standard_column_data.cpp +++ b/src/duckdb/src/storage/table/standard_column_data.cpp @@ -57,8 +57,10 @@ void StandardColumnData::InitializeScanWithOffset(ColumnScanState &state, idx_t idx_t StandardColumnData::Scan(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, idx_t target_count) { D_ASSERT(state.row_index == state.child_states[0].row_index); - auto scan_count = ColumnData::Scan(transaction, vector_index, state, result, target_count); - validity.Scan(transaction, vector_index, state.child_states[0], result, target_count); + auto scan_type = GetVectorScanType(state, target_count, result); + auto mode = ScanVectorMode::REGULAR_SCAN; + auto scan_count = ScanVector(transaction, vector_index, state, result, target_count, scan_type, mode); + validity.ScanVector(transaction, vector_index, state.child_states[0], result, target_count, scan_type, mode); return scan_count; } @@ -76,6 +78,43 @@ idx_t StandardColumnData::ScanCount(ColumnScanState &state, Vector &result, idx_ return scan_count; } +void StandardColumnData::Filter(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + SelectionVector &sel, idx_t &count, const TableFilter &filter) { + // check if we can do a specialized select + // the compression functions need to support this + bool has_select = compression && compression->filter; + bool validity_has_select = validity.compression && validity.compression->filter; + auto target_count = GetVectorCount(vector_index); + auto scan_type = GetVectorScanType(state, target_count, result); + bool scan_entire_vector = scan_type == ScanVectorType::SCAN_ENTIRE_VECTOR; + bool verify_fetch_row = state.scan_options && state.scan_options->force_fetch_row; + if (!has_select || !validity_has_select || !scan_entire_vector || verify_fetch_row) { + // we are not scanning an entire vector - this can have several causes (updates, etc) + ColumnData::Filter(transaction, vector_index, state, result, sel, count, filter); + return; + } + FilterVector(state, result, target_count, sel, count, filter); + validity.FilterVector(state.child_states[0], result, target_count, sel, count, filter); +} + +void StandardColumnData::Select(TransactionData transaction, idx_t vector_index, ColumnScanState &state, Vector &result, + SelectionVector &sel, idx_t sel_count) { + // check if we can do a specialized select + // the compression functions need to support this + bool has_select = compression && compression->select; + bool validity_has_select = validity.compression && validity.compression->select; + auto target_count = GetVectorCount(vector_index); + auto scan_type = GetVectorScanType(state, target_count, result); + bool scan_entire_vector = scan_type == ScanVectorType::SCAN_ENTIRE_VECTOR; + if (!has_select || !validity_has_select || !scan_entire_vector) { + // we are not scanning an entire vector - this can have several causes (updates, etc) + ColumnData::Select(transaction, vector_index, state, result, sel, sel_count); + return; + } + SelectVector(state, result, target_count, sel, sel_count); + validity.SelectVector(state.child_states[0], result, target_count, sel, sel_count); +} + void StandardColumnData::InitializeAppend(ColumnAppendState &state) { ColumnData::InitializeAppend(state); ColumnAppendState child_append; diff --git a/src/duckdb/src/storage/table/struct_column_data.cpp b/src/duckdb/src/storage/table/struct_column_data.cpp index 9ac2b0c0..5d1506b5 100644 --- a/src/duckdb/src/storage/table/struct_column_data.cpp +++ b/src/duckdb/src/storage/table/struct_column_data.cpp @@ -43,6 +43,9 @@ idx_t StructColumnData::GetMaxEntry() { void StructColumnData::InitializePrefetch(PrefetchState &prefetch_state, ColumnScanState &scan_state, idx_t rows) { validity.InitializePrefetch(prefetch_state, scan_state.child_states[0], rows); for (idx_t i = 0; i < sub_columns.size(); i++) { + if (!scan_state.scan_child_column[i]) { + continue; + } sub_columns[i]->InitializePrefetch(prefetch_state, scan_state.child_states[i + 1], rows); } } @@ -57,6 +60,9 @@ void StructColumnData::InitializeScan(ColumnScanState &state) { // initialize the sub-columns for (idx_t i = 0; i < sub_columns.size(); i++) { + if (!state.scan_child_column[i]) { + continue; + } sub_columns[i]->InitializeScan(state.child_states[i + 1]); } } @@ -71,6 +77,9 @@ void StructColumnData::InitializeScanWithOffset(ColumnScanState &state, idx_t ro // initialize the sub-columns for (idx_t i = 0; i < sub_columns.size(); i++) { + if (!state.scan_child_column[i]) { + continue; + } sub_columns[i]->InitializeScanWithOffset(state.child_states[i + 1], row_idx); } } @@ -80,7 +89,14 @@ idx_t StructColumnData::Scan(TransactionData transaction, idx_t vector_index, Co auto scan_count = validity.Scan(transaction, vector_index, state.child_states[0], result, target_count); auto &child_entries = StructVector::GetEntries(result); for (idx_t i = 0; i < sub_columns.size(); i++) { - sub_columns[i]->Scan(transaction, vector_index, state.child_states[i + 1], *child_entries[i], target_count); + auto &target_vector = *child_entries[i]; + if (!state.scan_child_column[i]) { + // if we are not scanning this vector - set it to NULL + target_vector.SetVectorType(VectorType::CONSTANT_VECTOR); + ConstantVector::SetNull(target_vector, true); + continue; + } + sub_columns[i]->Scan(transaction, vector_index, state.child_states[i + 1], target_vector, target_count); } return scan_count; } @@ -90,7 +106,14 @@ idx_t StructColumnData::ScanCommitted(idx_t vector_index, ColumnScanState &state auto scan_count = validity.ScanCommitted(vector_index, state.child_states[0], result, allow_updates, target_count); auto &child_entries = StructVector::GetEntries(result); for (idx_t i = 0; i < sub_columns.size(); i++) { - sub_columns[i]->ScanCommitted(vector_index, state.child_states[i + 1], *child_entries[i], allow_updates, + auto &target_vector = *child_entries[i]; + if (!state.scan_child_column[i]) { + // if we are not scanning this vector - set it to NULL + target_vector.SetVectorType(VectorType::CONSTANT_VECTOR); + ConstantVector::SetNull(target_vector, true); + continue; + } + sub_columns[i]->ScanCommitted(vector_index, state.child_states[i + 1], target_vector, allow_updates, target_count); } return scan_count; @@ -100,7 +123,14 @@ idx_t StructColumnData::ScanCount(ColumnScanState &state, Vector &result, idx_t auto scan_count = validity.ScanCount(state.child_states[0], result, count); auto &child_entries = StructVector::GetEntries(result); for (idx_t i = 0; i < sub_columns.size(); i++) { - sub_columns[i]->ScanCount(state.child_states[i + 1], *child_entries[i], count); + auto &target_vector = *child_entries[i]; + if (!state.scan_child_column[i]) { + // if we are not scanning this vector - set it to NULL + target_vector.SetVectorType(VectorType::CONSTANT_VECTOR); + ConstantVector::SetNull(target_vector, true); + continue; + } + sub_columns[i]->ScanCount(state.child_states[i + 1], target_vector, count); } return scan_count; } @@ -110,6 +140,9 @@ void StructColumnData::Skip(ColumnScanState &state, idx_t count) { // skip inside the sub-columns for (idx_t child_idx = 0; child_idx < sub_columns.size(); child_idx++) { + if (!state.scan_child_column[child_idx]) { + continue; + } sub_columns[child_idx]->Skip(state.child_states[child_idx + 1], count); } } @@ -127,7 +160,12 @@ void StructColumnData::InitializeAppend(ColumnAppendState &state) { } void StructColumnData::Append(BaseStatistics &stats, ColumnAppendState &state, Vector &vector, idx_t count) { - vector.Flatten(count); + if (vector.GetVectorType() != VectorType::FLAT_VECTOR) { + Vector append_vector(vector); + append_vector.Flatten(count); + Append(stats, state, append_vector, count); + return; + } // append the null values validity.Append(stats, state.child_appends[0], vector, count); diff --git a/src/duckdb/src/storage/table/update_segment.cpp b/src/duckdb/src/storage/table/update_segment.cpp index 1c7518b2..ddee92ce 100644 --- a/src/duckdb/src/storage/table/update_segment.cpp +++ b/src/duckdb/src/storage/table/update_segment.cpp @@ -6,6 +6,7 @@ #include "duckdb/storage/table/column_data.hpp" #include "duckdb/transaction/duck_transaction.hpp" #include "duckdb/transaction/update_info.hpp" +#include "duckdb/transaction/undo_buffer.hpp" #include @@ -46,6 +47,7 @@ UpdateSegment::~UpdateSegment() { Value UpdateInfo::GetValue(idx_t index) { auto &type = segment->column_data.type; + auto tuple_data = GetValues(); switch (type.id()) { case LogicalTypeId::VALIDITY: return Value::BOOLEAN(reinterpret_cast(tuple_data)[index]); @@ -64,17 +66,53 @@ string UpdateInfo::ToString() { auto &type = segment->column_data.type; string result = "Update Info [" + type.ToString() + ", Count: " + to_string(N) + ", Transaction Id: " + to_string(version_number) + "]\n"; + auto tuples = GetTuples(); for (idx_t i = 0; i < N; i++) { result += to_string(tuples[i]) + ": " + GetValue(i).ToString() + "\n"; } - if (next) { - result += "\nChild Segment: " + next->ToString(); + if (HasNext()) { + auto next_pin = next.Pin(); + result += "\nChild Segment: " + Get(next_pin).ToString(); } return result; } +sel_t *UpdateInfo::GetTuples() { + return reinterpret_cast(data_ptr_cast(this) + sizeof(UpdateInfo)); +} + +data_ptr_t UpdateInfo::GetValues() { + return reinterpret_cast(data_ptr_cast(this) + sizeof(UpdateInfo) + sizeof(sel_t) * max); +} + +UpdateInfo &UpdateInfo::Get(UndoBufferReference &entry) { + auto update_info = reinterpret_cast(entry.Ptr()); + return *update_info; +} + +bool UpdateInfo::HasPrev() const { + return prev.entry; +} + +bool UpdateInfo::HasNext() const { + return next.entry; +} + +idx_t UpdateInfo::GetAllocSize(idx_t type_size) { + return AlignValue(sizeof(UpdateInfo) + (sizeof(sel_t) + type_size) * STANDARD_VECTOR_SIZE); +} + +void UpdateInfo::Initialize(UpdateInfo &info, transaction_t transaction_id) { + info.max = STANDARD_VECTOR_SIZE; + info.version_number = transaction_id; + info.segment = nullptr; + info.prev.entry = nullptr; + info.next.entry = nullptr; +} + void UpdateInfo::Verify() { #ifdef DEBUG + auto tuples = GetTuples(); for (idx_t i = 1; i < N; i++) { D_ASSERT(tuples[i] > tuples[i - 1] && tuples[i] < STANDARD_VECTOR_SIZE); } @@ -84,40 +122,42 @@ void UpdateInfo::Verify() { //===--------------------------------------------------------------------===// // Update Fetch //===--------------------------------------------------------------------===// -static void MergeValidityInfo(UpdateInfo *current, ValidityMask &result_mask) { - auto info_data = reinterpret_cast(current->tuple_data); - for (idx_t i = 0; i < current->N; i++) { - result_mask.Set(current->tuples[i], info_data[i]); +static void MergeValidityInfo(UpdateInfo ¤t, ValidityMask &result_mask) { + auto tuples = current.GetTuples(); + auto info_data = current.GetData(); + for (idx_t i = 0; i < current.N; i++) { + result_mask.Set(tuples[i], info_data[i]); } } -static void UpdateMergeValidity(transaction_t start_time, transaction_t transaction_id, UpdateInfo *info, +static void UpdateMergeValidity(transaction_t start_time, transaction_t transaction_id, UpdateInfo &info, Vector &result) { auto &result_mask = FlatVector::Validity(result); UpdateInfo::UpdatesForTransaction(info, start_time, transaction_id, - [&](UpdateInfo *current) { MergeValidityInfo(current, result_mask); }); + [&](UpdateInfo ¤t) { MergeValidityInfo(current, result_mask); }); } template -static void MergeUpdateInfo(UpdateInfo *current, T *result_data) { - auto info_data = reinterpret_cast(current->tuple_data); - if (current->N == STANDARD_VECTOR_SIZE) { +static void MergeUpdateInfo(UpdateInfo ¤t, T *result_data) { + auto tuples = current.GetTuples(); + auto info_data = current.GetData(); + if (current.N == STANDARD_VECTOR_SIZE) { // special case: update touches ALL tuples of this vector // in this case we can just memcpy the data // since the layout of the update info is guaranteed to be [0, 1, 2, 3, ...] - memcpy(result_data, info_data, sizeof(T) * current->N); + memcpy(result_data, info_data, sizeof(T) * current.N); } else { - for (idx_t i = 0; i < current->N; i++) { - result_data[current->tuples[i]] = info_data[i]; + for (idx_t i = 0; i < current.N; i++) { + result_data[tuples[i]] = info_data[i]; } } } template -static void UpdateMergeFetch(transaction_t start_time, transaction_t transaction_id, UpdateInfo *info, Vector &result) { +static void UpdateMergeFetch(transaction_t start_time, transaction_t transaction_id, UpdateInfo &info, Vector &result) { auto result_data = FlatVector::GetData(result); UpdateInfo::UpdatesForTransaction(info, start_time, transaction_id, - [&](UpdateInfo *current) { MergeUpdateInfo(current, result_data); }); + [&](UpdateInfo ¤t) { MergeUpdateInfo(current, result_data); }); } static UpdateSegment::fetch_update_function_t GetFetchUpdateFunction(PhysicalType type) { @@ -158,31 +198,44 @@ static UpdateSegment::fetch_update_function_t GetFetchUpdateFunction(PhysicalTyp } } -void UpdateSegment::FetchUpdates(TransactionData transaction, idx_t vector_index, Vector &result) { - auto lock_handle = lock.GetSharedLock(); +UndoBufferPointer UpdateSegment::GetUpdateNode(idx_t vector_idx) const { if (!root) { - return; + return UndoBufferPointer(); } - if (!root->info[vector_index]) { + if (vector_idx >= root->info.size()) { + return UndoBufferPointer(); + } + return root->info[vector_idx]; +} + +void UpdateSegment::FetchUpdates(TransactionData transaction, idx_t vector_index, Vector &result) { + auto lock_handle = lock.GetSharedLock(); + auto node = GetUpdateNode(vector_index); + if (!node.IsSet()) { return; } // FIXME: normalify if this is not the case... need to pass in count? D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR); + auto pin = node.Pin(); + fetch_update_function(transaction.start_time, transaction.transaction_id, UpdateInfo::Get(pin), result); +} + +UpdateNode::UpdateNode(BufferManager &manager) : allocator(manager) { +} - fetch_update_function(transaction.start_time, transaction.transaction_id, root->info[vector_index]->info.get(), - result); +UpdateNode::~UpdateNode() { } //===--------------------------------------------------------------------===// // Fetch Committed //===--------------------------------------------------------------------===// -static void FetchCommittedValidity(UpdateInfo *info, Vector &result) { +static void FetchCommittedValidity(UpdateInfo &info, Vector &result) { auto &result_mask = FlatVector::Validity(result); MergeValidityInfo(info, result_mask); } template -static void TemplatedFetchCommitted(UpdateInfo *info, Vector &result) { +static void TemplatedFetchCommitted(UpdateInfo &info, Vector &result) { auto result_data = FlatVector::GetData(result); MergeUpdateInfo(info, result_data); } @@ -227,27 +280,25 @@ static UpdateSegment::fetch_committed_function_t GetFetchCommittedFunction(Physi void UpdateSegment::FetchCommitted(idx_t vector_index, Vector &result) { auto lock_handle = lock.GetSharedLock(); - - if (!root) { - return; - } - if (!root->info[vector_index]) { + auto node = GetUpdateNode(vector_index); + if (!node.IsSet()) { return; } // FIXME: normalify if this is not the case... need to pass in count? D_ASSERT(result.GetVectorType() == VectorType::FLAT_VECTOR); - - fetch_committed_function(root->info[vector_index]->info.get(), result); + auto pin = node.Pin(); + fetch_committed_function(UpdateInfo::Get(pin), result); } //===--------------------------------------------------------------------===// // Fetch Range //===--------------------------------------------------------------------===// -static void MergeUpdateInfoRangeValidity(UpdateInfo *current, idx_t start, idx_t end, idx_t result_offset, +static void MergeUpdateInfoRangeValidity(UpdateInfo ¤t, idx_t start, idx_t end, idx_t result_offset, ValidityMask &result_mask) { - auto info_data = reinterpret_cast(current->tuple_data); - for (idx_t i = 0; i < current->N; i++) { - auto tuple_idx = current->tuples[i]; + auto tuples = current.GetTuples(); + auto info_data = current.GetData(); + for (idx_t i = 0; i < current.N; i++) { + auto tuple_idx = tuples[i]; if (tuple_idx < start) { continue; } else if (tuple_idx >= end) { @@ -258,16 +309,17 @@ static void MergeUpdateInfoRangeValidity(UpdateInfo *current, idx_t start, idx_t } } -static void FetchCommittedRangeValidity(UpdateInfo *info, idx_t start, idx_t end, idx_t result_offset, Vector &result) { +static void FetchCommittedRangeValidity(UpdateInfo &info, idx_t start, idx_t end, idx_t result_offset, Vector &result) { auto &result_mask = FlatVector::Validity(result); MergeUpdateInfoRangeValidity(info, start, end, result_offset, result_mask); } template -static void MergeUpdateInfoRange(UpdateInfo *current, idx_t start, idx_t end, idx_t result_offset, T *result_data) { - auto info_data = reinterpret_cast(current->tuple_data); - for (idx_t i = 0; i < current->N; i++) { - auto tuple_idx = current->tuples[i]; +static void MergeUpdateInfoRange(UpdateInfo ¤t, idx_t start, idx_t end, idx_t result_offset, T *result_data) { + auto tuples = current.GetTuples(); + auto info_data = current.GetData(); + for (idx_t i = 0; i < current.N; i++) { + auto tuple_idx = tuples[i]; if (tuple_idx < start) { continue; } else if (tuple_idx >= end) { @@ -279,7 +331,7 @@ static void MergeUpdateInfoRange(UpdateInfo *current, idx_t start, idx_t end, id } template -static void TemplatedFetchCommittedRange(UpdateInfo *info, idx_t start, idx_t end, idx_t result_offset, +static void TemplatedFetchCommittedRange(UpdateInfo &info, idx_t start, idx_t end, idx_t result_offset, Vector &result) { auto result_data = FlatVector::GetData(result); MergeUpdateInfoRange(info, start, end, result_offset, result_data); @@ -334,37 +386,38 @@ void UpdateSegment::FetchCommittedRange(idx_t start_row, idx_t count, Vector &re idx_t start_vector = start_row / STANDARD_VECTOR_SIZE; idx_t end_vector = (end_row - 1) / STANDARD_VECTOR_SIZE; D_ASSERT(start_vector <= end_vector); - D_ASSERT(end_vector < Storage::ROW_GROUP_VECTOR_COUNT); for (idx_t vector_idx = start_vector; vector_idx <= end_vector; vector_idx++) { - if (!root->info[vector_idx]) { + auto entry = GetUpdateNode(vector_idx); + if (!entry.IsSet()) { continue; } + auto pin = entry.Pin(); idx_t start_in_vector = vector_idx == start_vector ? start_row - start_vector * STANDARD_VECTOR_SIZE : 0; idx_t end_in_vector = vector_idx == end_vector ? end_row - end_vector * STANDARD_VECTOR_SIZE : STANDARD_VECTOR_SIZE; D_ASSERT(start_in_vector < end_in_vector); D_ASSERT(end_in_vector > 0 && end_in_vector <= STANDARD_VECTOR_SIZE); idx_t result_offset = ((vector_idx * STANDARD_VECTOR_SIZE) + start_in_vector) - start_row; - fetch_committed_range(root->info[vector_idx]->info.get(), start_in_vector, end_in_vector, result_offset, - result); + fetch_committed_range(UpdateInfo::Get(pin), start_in_vector, end_in_vector, result_offset, result); } } //===--------------------------------------------------------------------===// // Fetch Row //===--------------------------------------------------------------------===// -static void FetchRowValidity(transaction_t start_time, transaction_t transaction_id, UpdateInfo *info, idx_t row_idx, +static void FetchRowValidity(transaction_t start_time, transaction_t transaction_id, UpdateInfo &info, idx_t row_idx, Vector &result, idx_t result_idx) { auto &result_mask = FlatVector::Validity(result); - UpdateInfo::UpdatesForTransaction(info, start_time, transaction_id, [&](UpdateInfo *current) { - auto info_data = reinterpret_cast(current->tuple_data); + UpdateInfo::UpdatesForTransaction(info, start_time, transaction_id, [&](UpdateInfo ¤t) { + auto info_data = current.GetData(); + auto tuples = current.GetTuples(); // FIXME: we could do a binary search in here - for (idx_t i = 0; i < current->N; i++) { - if (current->tuples[i] == row_idx) { + for (idx_t i = 0; i < current.N; i++) { + if (tuples[i] == row_idx) { result_mask.Set(result_idx, info_data[i]); break; - } else if (current->tuples[i] > row_idx) { + } else if (tuples[i] > row_idx) { break; } } @@ -372,17 +425,18 @@ static void FetchRowValidity(transaction_t start_time, transaction_t transaction } template -static void TemplatedFetchRow(transaction_t start_time, transaction_t transaction_id, UpdateInfo *info, idx_t row_idx, +static void TemplatedFetchRow(transaction_t start_time, transaction_t transaction_id, UpdateInfo &info, idx_t row_idx, Vector &result, idx_t result_idx) { auto result_data = FlatVector::GetData(result); - UpdateInfo::UpdatesForTransaction(info, start_time, transaction_id, [&](UpdateInfo *current) { - auto info_data = (T *)current->tuple_data; + UpdateInfo::UpdatesForTransaction(info, start_time, transaction_id, [&](UpdateInfo ¤t) { + auto info_data = current.GetData(); + auto tuples = current.GetTuples(); // FIXME: we could do a binary search in here - for (idx_t i = 0; i < current->N; i++) { - if (current->tuples[i] == row_idx) { + for (idx_t i = 0; i < current.N; i++) { + if (tuples[i] == row_idx) { result_data[result_idx] = info_data[i]; break; - } else if (current->tuples[i] > row_idx) { + } else if (tuples[i] > row_idx) { break; } } @@ -428,16 +482,15 @@ static UpdateSegment::fetch_row_function_t GetFetchRowFunction(PhysicalType type } void UpdateSegment::FetchRow(TransactionData transaction, idx_t row_id, Vector &result, idx_t result_idx) { - if (!root) { - return; - } idx_t vector_index = (row_id - column_data.start) / STANDARD_VECTOR_SIZE; - if (!root->info[vector_index]) { + auto entry = GetUpdateNode(vector_index); + if (!entry.IsSet()) { return; } idx_t row_in_vector = (row_id - column_data.start) - vector_index * STANDARD_VECTOR_SIZE; - fetch_row_function(transaction.start_time, transaction.transaction_id, root->info[vector_index]->info.get(), - row_in_vector, result, result_idx); + auto pin = entry.Pin(); + fetch_row_function(transaction.start_time, transaction.transaction_id, UpdateInfo::Get(pin), row_in_vector, result, + result_idx); } //===--------------------------------------------------------------------===// @@ -445,12 +498,14 @@ void UpdateSegment::FetchRow(TransactionData transaction, idx_t row_id, Vector & //===--------------------------------------------------------------------===// template static void RollbackUpdate(UpdateInfo &base_info, UpdateInfo &rollback_info) { - auto base_data = (T *)base_info.tuple_data; - auto rollback_data = (T *)rollback_info.tuple_data; + auto base_data = base_info.GetData(); + auto base_tuples = base_info.GetTuples(); + auto rollback_data = rollback_info.GetData(); + auto rollback_tuples = rollback_info.GetTuples(); idx_t base_offset = 0; for (idx_t i = 0; i < rollback_info.N; i++) { - auto id = rollback_info.tuples[i]; - while (base_info.tuples[base_offset] < id) { + auto id = rollback_tuples[i]; + while (base_tuples[base_offset] < id) { base_offset++; D_ASSERT(base_offset < base_info.N); } @@ -501,10 +556,12 @@ void UpdateSegment::RollbackUpdate(UpdateInfo &info) { auto lock_handle = lock.GetExclusiveLock(); // move the data from the UpdateInfo back into the base info - if (!root->info[info.vector_index]) { + auto entry = GetUpdateNode(info.vector_index); + if (!entry.IsSet()) { return; } - rollback_update_function(*root->info[info.vector_index]->info, info); + auto pin = entry.Pin(); + rollback_update_function(UpdateInfo::Get(pin), info); // clean up the update chain CleanupUpdateInternal(*lock_handle, info); @@ -514,11 +571,18 @@ void UpdateSegment::RollbackUpdate(UpdateInfo &info) { // Cleanup Update //===--------------------------------------------------------------------===// void UpdateSegment::CleanupUpdateInternal(const StorageLockKey &lock, UpdateInfo &info) { - D_ASSERT(info.prev); + D_ASSERT(info.HasPrev()); auto prev = info.prev; - prev->next = info.next; - if (prev->next) { - prev->next->prev = prev; + { + auto pin = prev.Pin(); + auto &prev_info = UpdateInfo::Get(pin); + prev_info.next = info.next; + } + if (info.HasNext()) { + auto next = info.next; + auto next_pin = next.Pin(); + auto &next_info = UpdateInfo::Get(next_pin); + next_info.prev = prev; } } @@ -531,38 +595,40 @@ void UpdateSegment::CleanupUpdate(UpdateInfo &info) { //===--------------------------------------------------------------------===// // Check for conflicts in update //===--------------------------------------------------------------------===// -static void CheckForConflicts(UpdateInfo *info, TransactionData transaction, row_t *ids, const SelectionVector &sel, - idx_t count, row_t offset, UpdateInfo *&node) { - if (!info) { - return; - } - if (info->version_number == transaction.transaction_id) { - // this UpdateInfo belongs to the current transaction, set it in the node - node = info; - } else if (info->version_number > transaction.start_time) { - // potential conflict, check that tuple ids do not conflict - // as both ids and info->tuples are sorted, this is similar to a merge join - idx_t i = 0, j = 0; - while (true) { - auto id = ids[sel.get_index(i)] - offset; - if (id == info->tuples[j]) { - throw TransactionException("Conflict on update!"); - } else if (id < info->tuples[j]) { - // id < the current tuple in info, move to next id - i++; - if (i == count) { - break; - } - } else { - // id > the current tuple, move to next tuple in info - j++; - if (j == info->N) { - break; +static void CheckForConflicts(UndoBufferPointer next_ptr, TransactionData transaction, row_t *ids, + const SelectionVector &sel, idx_t count, row_t offset, UndoBufferReference &node_ref) { + while (next_ptr.IsSet()) { + auto pin = next_ptr.Pin(); + auto &info = UpdateInfo::Get(pin); + if (info.version_number == transaction.transaction_id) { + // this UpdateInfo belongs to the current transaction, set it in the node + node_ref = std::move(pin); + } else if (info.version_number > transaction.start_time) { + // potential conflict, check that tuple ids do not conflict + // as both ids and info->tuples are sorted, this is similar to a merge join + idx_t i = 0, j = 0; + auto tuples = info.GetTuples(); + while (true) { + auto id = ids[sel.get_index(i)] - offset; + if (id == tuples[j]) { + throw TransactionException("Conflict on update!"); + } else if (id < tuples[j]) { + // id < the current tuple in info, move to next id + i++; + if (i == count) { + break; + } + } else { + // id > the current tuple, move to next tuple in info + j++; + if (j == info.N) { + break; + } } } } + next_ptr = info.next; } - CheckForConflicts(info->next, transaction, ids, sel, count, offset, node); } //===--------------------------------------------------------------------===// @@ -572,43 +638,45 @@ void UpdateSegment::InitializeUpdateInfo(UpdateInfo &info, row_t *ids, const Sel idx_t vector_index, idx_t vector_offset) { info.segment = this; info.vector_index = vector_index; - info.prev = nullptr; - info.next = nullptr; + info.prev = UndoBufferPointer(); + info.next = UndoBufferPointer(); // set up the tuple ids info.N = UnsafeNumericCast(count); + auto tuples = info.GetTuples(); for (idx_t i = 0; i < count; i++) { auto idx = sel.get_index(i); auto id = ids[idx]; D_ASSERT(idx_t(id) >= vector_offset && idx_t(id) < vector_offset + STANDARD_VECTOR_SIZE); - info.tuples[i] = NumericCast(NumericCast(id) - vector_offset); + tuples[i] = NumericCast(NumericCast(id) - vector_offset); }; } -static void InitializeUpdateValidity(UpdateInfo *base_info, Vector &base_data, UpdateInfo *update_info, Vector &update, +static void InitializeUpdateValidity(UpdateInfo &base_info, Vector &base_data, UpdateInfo &update_info, Vector &update, const SelectionVector &sel) { auto &update_mask = FlatVector::Validity(update); - auto tuple_data = reinterpret_cast(update_info->tuple_data); + auto tuple_data = update_info.GetData(); if (!update_mask.AllValid()) { - for (idx_t i = 0; i < update_info->N; i++) { + for (idx_t i = 0; i < update_info.N; i++) { auto idx = sel.get_index(i); tuple_data[i] = update_mask.RowIsValidUnsafe(idx); } } else { - for (idx_t i = 0; i < update_info->N; i++) { + for (idx_t i = 0; i < update_info.N; i++) { tuple_data[i] = true; } } auto &base_mask = FlatVector::Validity(base_data); - auto base_tuple_data = reinterpret_cast(base_info->tuple_data); + auto base_tuple_data = base_info.GetData(); + auto base_tuples = base_info.GetTuples(); if (!base_mask.AllValid()) { - for (idx_t i = 0; i < base_info->N; i++) { - base_tuple_data[i] = base_mask.RowIsValidUnsafe(base_info->tuples[i]); + for (idx_t i = 0; i < base_info.N; i++) { + base_tuple_data[i] = base_mask.RowIsValidUnsafe(base_tuples[i]); } } else { - for (idx_t i = 0; i < base_info->N; i++) { + for (idx_t i = 0; i < base_info.N; i++) { base_tuple_data[i] = true; } } @@ -616,36 +684,37 @@ static void InitializeUpdateValidity(UpdateInfo *base_info, Vector &base_data, U struct UpdateSelectElement { template - static T Operation(UpdateSegment *segment, T element) { + static T Operation(UpdateSegment &segment, T element) { return element; } }; template <> -string_t UpdateSelectElement::Operation(UpdateSegment *segment, string_t element) { - return element.IsInlined() ? element : segment->GetStringHeap().AddBlob(element); +string_t UpdateSelectElement::Operation(UpdateSegment &segment, string_t element) { + return element.IsInlined() ? element : segment.GetStringHeap().AddBlob(element); } template -static void InitializeUpdateData(UpdateInfo *base_info, Vector &base_data, UpdateInfo *update_info, Vector &update, +static void InitializeUpdateData(UpdateInfo &base_info, Vector &base_data, UpdateInfo &update_info, Vector &update, const SelectionVector &sel) { auto update_data = FlatVector::GetData(update); - auto tuple_data = (T *)update_info->tuple_data; + auto tuple_data = update_info.GetData(); - for (idx_t i = 0; i < update_info->N; i++) { + for (idx_t i = 0; i < update_info.N; i++) { auto idx = sel.get_index(i); tuple_data[i] = update_data[idx]; } auto base_array_data = FlatVector::GetData(base_data); auto &base_validity = FlatVector::Validity(base_data); - auto base_tuple_data = (T *)base_info->tuple_data; - for (idx_t i = 0; i < base_info->N; i++) { - auto base_idx = base_info->tuples[i]; + auto base_tuple_data = base_info.GetData(); + auto base_tuples = base_info.GetTuples(); + for (idx_t i = 0; i < base_info.N; i++) { + auto base_idx = base_tuples[i]; if (!base_validity.RowIsValid(base_idx)) { continue; } - base_tuple_data[i] = UpdateSelectElement::Operation(base_info->segment, base_array_data[base_idx]); + base_tuple_data[i] = UpdateSelectElement::Operation(*base_info.segment, base_array_data[base_idx]); } } @@ -741,9 +810,9 @@ struct ExtractValidityEntry { }; template -static void MergeUpdateLoopInternal(UpdateInfo *base_info, V *base_table_data, UpdateInfo *update_info, +static void MergeUpdateLoopInternal(UpdateInfo &base_info, V *base_table_data, UpdateInfo &update_info, V *update_vector_data, row_t *ids, idx_t count, const SelectionVector &sel) { - auto base_id = base_info->segment->column_data.start + base_info->vector_index * STANDARD_VECTOR_SIZE; + auto base_id = base_info.segment->column_data.start + base_info.vector_index * STANDARD_VECTOR_SIZE; #ifdef DEBUG // all of these should be sorted, otherwise the below algorithm does not work for (idx_t i = 1; i < count; i++) { @@ -759,8 +828,10 @@ static void MergeUpdateLoopInternal(UpdateInfo *base_info, V *base_table_data, U // and potentially, this transaction already has updates present (update_info) // we need to merge these all together so that the latest updates get merged into base_info // and the "old" values (fetched from EITHER base_info OR from base_data) get placed into update_info - auto base_info_data = (T *)base_info->tuple_data; - auto update_info_data = (T *)update_info->tuple_data; + auto base_info_data = base_info.GetData(); + auto base_tuples = base_info.GetTuples(); + auto update_info_data = update_info.GetData(); + auto update_tuples = update_info.GetTuples(); // we first do the merging of the old values // what we are trying to do here is update the "update_info" of this transaction with all the old data we require @@ -779,45 +850,45 @@ static void MergeUpdateLoopInternal(UpdateInfo *base_info, V *base_table_data, U // we have to merge the info for "ids[i]" auto update_id = UnsafeNumericCast(ids[idx]) - base_id; - while (update_info_offset < update_info->N && update_info->tuples[update_info_offset] < update_id) { + while (update_info_offset < update_info.N && update_tuples[update_info_offset] < update_id) { // old id comes before the current id: write it result_values[result_offset] = update_info_data[update_info_offset]; - result_ids[result_offset++] = update_info->tuples[update_info_offset]; + result_ids[result_offset++] = update_tuples[update_info_offset]; update_info_offset++; } // write the new id - if (update_info_offset < update_info->N && update_info->tuples[update_info_offset] == update_id) { + if (update_info_offset < update_info.N && update_tuples[update_info_offset] == update_id) { // we have an id that is equivalent in the current update info: write the update info result_values[result_offset] = update_info_data[update_info_offset]; - result_ids[result_offset++] = update_info->tuples[update_info_offset]; + result_ids[result_offset++] = update_tuples[update_info_offset]; update_info_offset++; continue; } /// now check if we have the current update_id in the base_info, or if we should fetch it from the base data - while (base_info_offset < base_info->N && base_info->tuples[base_info_offset] < update_id) { + while (base_info_offset < base_info.N && base_tuples[base_info_offset] < update_id) { base_info_offset++; } - if (base_info_offset < base_info->N && base_info->tuples[base_info_offset] == update_id) { + if (base_info_offset < base_info.N && base_tuples[base_info_offset] == update_id) { // it is! we have to move the tuple from base_info->ids[base_info_offset] to update_info result_values[result_offset] = base_info_data[base_info_offset]; } else { // it is not! we have to move base_table_data[update_id] to update_info result_values[result_offset] = UpdateSelectElement::Operation( - base_info->segment, OP::template Extract(base_table_data, update_id)); + *base_info.segment, OP::template Extract(base_table_data, update_id)); } result_ids[result_offset++] = UnsafeNumericCast(update_id); } // write any remaining entries from the old updates - while (update_info_offset < update_info->N) { + while (update_info_offset < update_info.N) { result_values[result_offset] = update_info_data[update_info_offset]; - result_ids[result_offset++] = update_info->tuples[update_info_offset]; + result_ids[result_offset++] = update_tuples[update_info_offset]; update_info_offset++; } // now copy them back - update_info->N = UnsafeNumericCast(result_offset); + update_info.N = UnsafeNumericCast(result_offset); memcpy(update_info_data, result_values, result_offset * sizeof(T)); - memcpy(update_info->tuples, result_ids, result_offset * sizeof(sel_t)); + memcpy(update_tuples, result_ids, result_offset * sizeof(sel_t)); // now we merge the new values into the base_info result_offset = 0; @@ -835,14 +906,14 @@ static void MergeUpdateLoopInternal(UpdateInfo *base_info, V *base_table_data, U auto merge = [&](idx_t id, idx_t aidx, idx_t bidx, idx_t count) { pick_new(id, aidx, count); }; - MergeLoop(ids, base_info->tuples, count, base_info->N, base_id, merge, pick_new, pick_old, sel); + MergeLoop(ids, base_tuples, count, base_info.N, base_id, merge, pick_new, pick_old, sel); - base_info->N = UnsafeNumericCast(result_offset); + base_info.N = UnsafeNumericCast(result_offset); memcpy(base_info_data, result_values, result_offset * sizeof(T)); - memcpy(base_info->tuples, result_ids, result_offset * sizeof(sel_t)); + memcpy(base_tuples, result_ids, result_offset * sizeof(sel_t)); } -static void MergeValidityLoop(UpdateInfo *base_info, Vector &base_data, UpdateInfo *update_info, Vector &update, +static void MergeValidityLoop(UpdateInfo &base_info, Vector &base_data, UpdateInfo &update_info, Vector &update, row_t *ids, idx_t count, const SelectionVector &sel) { auto &base_validity = FlatVector::Validity(base_data); auto &update_validity = FlatVector::Validity(update); @@ -851,7 +922,7 @@ static void MergeValidityLoop(UpdateInfo *base_info, Vector &base_data, UpdateIn } template -static void MergeUpdateLoop(UpdateInfo *base_info, Vector &base_data, UpdateInfo *update_info, Vector &update, +static void MergeUpdateLoop(UpdateInfo &base_info, Vector &base_data, UpdateInfo &update_info, Vector &update, row_t *ids, idx_t count, const SelectionVector &sel) { auto base_table_data = FlatVector::GetData(base_data); auto update_vector_data = FlatVector::GetData(update); @@ -1062,16 +1133,26 @@ static idx_t SortSelectionVector(SelectionVector &sel, idx_t count, row_t *ids) UpdateInfo *CreateEmptyUpdateInfo(TransactionData transaction, idx_t type_size, idx_t count, unsafe_unique_array &data) { - data = make_unsafe_uniq_array_uninitialized(sizeof(UpdateInfo) + - (sizeof(sel_t) + type_size) * STANDARD_VECTOR_SIZE); + data = make_unsafe_uniq_array_uninitialized(UpdateInfo::GetAllocSize(type_size)); auto update_info = reinterpret_cast(data.get()); - update_info->max = STANDARD_VECTOR_SIZE; - update_info->tuples = reinterpret_cast((data_ptr_cast(update_info)) + sizeof(UpdateInfo)); - update_info->tuple_data = (data_ptr_cast(update_info)) + sizeof(UpdateInfo) + sizeof(sel_t) * update_info->max; - update_info->version_number = transaction.transaction_id; + UpdateInfo::Initialize(*update_info, transaction.transaction_id); return update_info; } +void UpdateSegment::InitializeUpdateInfo(idx_t vector_idx) { + // create the versions for this segment, if there are none yet + if (!root) { + root = make_uniq(column_data.block_manager.buffer_manager); + } + if (vector_idx < root->info.size()) { + return; + } + root->info.reserve(vector_idx + 1); + for (idx_t i = root->info.size(); i <= vector_idx; i++) { + root->info.emplace_back(); + } +} + void UpdateSegment::Update(TransactionData transaction, idx_t column_index, Vector &update, row_t *ids, idx_t count, Vector &base_data) { // obtain an exclusive lock @@ -1096,45 +1177,35 @@ void UpdateSegment::Update(TransactionData transaction, idx_t column_index, Vect count = SortSelectionVector(sel, count, ids); D_ASSERT(count > 0); - // create the versions for this segment, if there are none yet - if (!root) { - root = make_uniq(); - } - // get the vector index based on the first id // we assert that all updates must be part of the same vector auto first_id = ids[sel.get_index(0)]; idx_t vector_index = (UnsafeNumericCast(first_id) - column_data.start) / STANDARD_VECTOR_SIZE; idx_t vector_offset = column_data.start + vector_index * STANDARD_VECTOR_SIZE; + InitializeUpdateInfo(vector_index); D_ASSERT(idx_t(first_id) >= column_data.start); - D_ASSERT(vector_index < Storage::ROW_GROUP_VECTOR_COUNT); - - // first check the version chain - UpdateInfo *node = nullptr; - if (root->info[vector_index]) { + if (root->info[vector_index].IsSet()) { // there is already a version here, check if there are any conflicts and search for the node that belongs to // this transaction in the version chain - auto base_info = root->info[vector_index]->info.get(); - CheckForConflicts(base_info->next, transaction, ids, sel, count, UnsafeNumericCast(vector_offset), node); - - // there are no conflicts - // first, check if this thread has already done any updates - auto node = base_info->next; - while (node) { - if (node->version_number == transaction.transaction_id) { - // it has! use this node - break; - } - node = node->next; - } + auto root_pointer = root->info[vector_index]; + auto root_pin = root_pointer.Pin(); + auto &base_info = UpdateInfo::Get(root_pin); + + UndoBufferReference node_ref; + CheckForConflicts(base_info.next, transaction, ids, sel, count, UnsafeNumericCast(vector_offset), + node_ref); + + // there are no conflicts - continue with the update unsafe_unique_array update_info_data; - if (!node) { + optional_ptr node; + if (!node_ref.IsSet()) { // no updates made yet by this transaction: initially the update info to empty if (transaction.transaction) { auto &dtransaction = transaction.transaction->Cast(); - node = dtransaction.CreateUpdateInfo(type_size, count); + node_ref = dtransaction.CreateUpdateInfo(type_size, count); + node = &UpdateInfo::Get(node_ref); } else { node = CreateEmptyUpdateInfo(transaction, type_size, count, update_info_data); } @@ -1144,39 +1215,44 @@ void UpdateSegment::Update(TransactionData transaction, idx_t column_index, Vect node->column_index = column_index; // insert the new node into the chain - node->next = base_info->next; - if (node->next) { - node->next->prev = node; + node->next = base_info.next; + if (node->next.IsSet()) { + auto next_pin = node->next.Pin(); + auto &next_info = UpdateInfo::Get(next_pin); + next_info.prev = node_ref.GetBufferPointer(); } - node->prev = base_info; - base_info->next = transaction.transaction ? node : nullptr; + node->prev = root_pointer; + base_info.next = transaction.transaction ? node_ref.GetBufferPointer() : UndoBufferPointer(); + } else { + // we already had updates made to this transaction + node = &UpdateInfo::Get(node_ref); } - base_info->Verify(); + base_info.Verify(); node->Verify(); // now we are going to perform the merge - merge_update_function(base_info, base_data, node, update, ids, count, sel); + merge_update_function(base_info, base_data, *node, update, ids, count, sel); - base_info->Verify(); + base_info.Verify(); node->Verify(); } else { // there is no version info yet: create the top level update info and fill it with the updates - auto result = make_uniq(); + // allocate space for the UpdateInfo in the allocator + idx_t alloc_size = UpdateInfo::GetAllocSize(type_size); + auto handle = root->allocator.Allocate(alloc_size); + auto &update_info = UpdateInfo::Get(handle); + UpdateInfo::Initialize(update_info, TRANSACTION_ID_START - 1); + update_info.column_index = column_index; - result->info = make_uniq(); - result->tuples = make_unsafe_uniq_array_uninitialized(STANDARD_VECTOR_SIZE); - result->tuple_data = make_unsafe_uniq_array_uninitialized(STANDARD_VECTOR_SIZE * type_size); - result->info->tuples = result->tuples.get(); - result->info->tuple_data = result->tuple_data.get(); - result->info->version_number = TRANSACTION_ID_START - 1; - result->info->column_index = column_index; - InitializeUpdateInfo(*result->info, ids, sel, count, vector_index, vector_offset); + InitializeUpdateInfo(update_info, ids, sel, count, vector_index, vector_offset); // now create the transaction level update info in the undo log unsafe_unique_array update_info_data; - UpdateInfo *transaction_node; + UndoBufferReference node_ref; + optional_ptr transaction_node; if (transaction.transaction) { - transaction_node = transaction.transaction->CreateUpdateInfo(type_size, count); + node_ref = transaction.transaction->CreateUpdateInfo(type_size, count); + transaction_node = &UpdateInfo::Get(node_ref); } else { transaction_node = CreateEmptyUpdateInfo(transaction, type_size, count, update_info_data); } @@ -1184,18 +1260,18 @@ void UpdateSegment::Update(TransactionData transaction, idx_t column_index, Vect InitializeUpdateInfo(*transaction_node, ids, sel, count, vector_index, vector_offset); // we write the updates in the update node data, and write the updates in the info - initialize_update_function(transaction_node, base_data, result->info.get(), update, sel); + initialize_update_function(*transaction_node, base_data, update_info, update, sel); - result->info->next = transaction.transaction ? transaction_node : nullptr; - result->info->prev = nullptr; - transaction_node->next = nullptr; - transaction_node->prev = result->info.get(); + update_info.next = transaction.transaction ? node_ref.GetBufferPointer() : UndoBufferPointer(); + update_info.prev = UndoBufferPointer(); + transaction_node->next = UndoBufferPointer(); + transaction_node->prev = handle.GetBufferPointer(); transaction_node->column_index = column_index; transaction_node->Verify(); - result->info->Verify(); + update_info.Verify(); - root->info[vector_index] = std::move(result); + root->info[vector_index] = handle.GetBufferPointer(); } } @@ -1204,33 +1280,34 @@ bool UpdateSegment::HasUpdates() const { } bool UpdateSegment::HasUpdates(idx_t vector_index) const { - if (!HasUpdates()) { - return false; - } - return root->info[vector_index].get(); + auto read_lock = lock.GetSharedLock(); + return GetUpdateNode(vector_index).IsSet(); } bool UpdateSegment::HasUncommittedUpdates(idx_t vector_index) { - if (!HasUpdates(vector_index)) { + auto read_lock = lock.GetSharedLock(); + auto entry = GetUpdateNode(vector_index); + if (!entry.IsSet()) { return false; } - auto read_lock = lock.GetSharedLock(); - auto entry = root->info[vector_index].get(); - if (entry->info->next) { + auto pin = entry.Pin(); + auto &info = UpdateInfo::Get(pin); + if (info.HasNext()) { return true; } return false; } bool UpdateSegment::HasUpdates(idx_t start_row_index, idx_t end_row_index) { - if (!HasUpdates()) { + auto read_lock = lock.GetSharedLock(); + if (!root) { return false; } - auto read_lock = lock.GetSharedLock(); idx_t base_vector_index = start_row_index / STANDARD_VECTOR_SIZE; idx_t end_vector_index = end_row_index / STANDARD_VECTOR_SIZE; for (idx_t i = base_vector_index; i <= end_vector_index; i++) { - if (root->info[i]) { + auto entry = GetUpdateNode(i); + if (entry.IsSet()) { return true; } } diff --git a/src/duckdb/src/storage/table_index_list.cpp b/src/duckdb/src/storage/table_index_list.cpp index c505d0a0..4e7ecdd3 100644 --- a/src/duckdb/src/storage/table_index_list.cpp +++ b/src/duckdb/src/storage/table_index_list.cpp @@ -22,7 +22,6 @@ void TableIndexList::RemoveIndex(const string &name) { for (idx_t index_idx = 0; index_idx < indexes.size(); index_idx++) { auto &index_entry = indexes[index_idx]; - if (index_entry->GetIndexName() == name) { indexes.erase_at(index_idx); break; @@ -93,9 +92,8 @@ void TableIndexList::InitializeIndexes(ClientContext &context, DataTableInfo &ta // Add the table to the binder // We're not interested in the column_ids here, so just pass a dummy vector - vector dummy_column_ids; - binder->bind_context.AddBaseTable(0, table_info.GetTableName(), column_names, column_types, - dummy_column_ids, &table); + vector dummy_column_ids; + binder->bind_context.AddBaseTable(0, string(), column_names, column_types, dummy_column_ids, table); // Create an IndexBinder to bind the index IndexBinder idx_binder(*binder, context); @@ -147,7 +145,6 @@ void TableIndexList::VerifyForeignKey(const vector &fk_keys, Data if (!index->IsBound()) { throw InternalException("Internal Foreign Key error: trying to verify an unbound index..."); } - conflict_manager.SetIndexCount(1); index->Cast().CheckConstraintsForChunk(chunk, conflict_manager); } diff --git a/src/duckdb/src/storage/temporary_file_manager.cpp b/src/duckdb/src/storage/temporary_file_manager.cpp index 29cf1cf4..4b6bc2cf 100644 --- a/src/duckdb/src/storage/temporary_file_manager.cpp +++ b/src/duckdb/src/storage/temporary_file_manager.cpp @@ -1,26 +1,104 @@ #include "duckdb/storage/temporary_file_manager.hpp" + +#include "duckdb/common/chrono.hpp" +#include "duckdb/common/enum_util.hpp" +#include "duckdb/parallel/task_scheduler.hpp" #include "duckdb/storage/buffer/temporary_file_information.hpp" #include "duckdb/storage/standard_buffer_manager.hpp" +#include "zstd.h" namespace duckdb { //===--------------------------------------------------------------------===// -// BlockIndexManager +// TemporaryBufferSize //===--------------------------------------------------------------------===// +bool TemporaryBufferSizeIsValid(const TemporaryBufferSize size) { + switch (size) { + case TemporaryBufferSize::S32K: + case TemporaryBufferSize::S64K: + case TemporaryBufferSize::S96K: + case TemporaryBufferSize::S128K: + case TemporaryBufferSize::S160K: + case TemporaryBufferSize::S192K: + case TemporaryBufferSize::S224K: + case TemporaryBufferSize::DEFAULT: + return true; + default: + return false; + } +} -BlockIndexManager::BlockIndexManager(TemporaryFileManager &manager) : max_index(0), manager(&manager) { +static TemporaryBufferSize SizeToTemporaryBufferSize(const idx_t size) { + D_ASSERT(size != 0 && size % TEMPORARY_BUFFER_SIZE_GRANULARITY == 0); + const auto res = static_cast(size); + D_ASSERT(TemporaryBufferSizeIsValid(res)); + return res; +} + +static idx_t TemporaryBufferSizeToSize(const TemporaryBufferSize size) { + D_ASSERT(TemporaryBufferSizeIsValid(size)); + return static_cast(size); +} + +static TemporaryBufferSize RoundUpSizeToTemporaryBufferSize(const idx_t size) { + return SizeToTemporaryBufferSize(AlignValue(size)); +} + +static const vector TemporaryBufferSizes() { + return {TemporaryBufferSize::S32K, TemporaryBufferSize::S64K, TemporaryBufferSize::S96K, + TemporaryBufferSize::S128K, TemporaryBufferSize::S160K, TemporaryBufferSize::S192K, + TemporaryBufferSize::S224K, TemporaryBufferSize::DEFAULT}; +} + +static TemporaryBufferSize MinimumCompressedTemporaryBufferSize() { + return TemporaryBufferSize::S32K; +} + +static TemporaryBufferSize MaximumCompressedTemporaryBufferSize() { + return TemporaryBufferSize::S224K; +} + +//===--------------------------------------------------------------------===// +// TemporaryFileIdentifier/TemporaryFileIndex +//===--------------------------------------------------------------------===// +TemporaryFileIdentifier::TemporaryFileIdentifier() : size(TemporaryBufferSize::INVALID) { +} + +TemporaryFileIdentifier::TemporaryFileIdentifier(TemporaryBufferSize size_p, idx_t file_index_p) + : size(size_p), file_index(file_index_p) { +} + +bool TemporaryFileIdentifier::IsValid() const { + return size != TemporaryBufferSize::INVALID && file_index.IsValid(); +} + +TemporaryFileIndex::TemporaryFileIndex() { +} + +TemporaryFileIndex::TemporaryFileIndex(TemporaryFileIdentifier identifier_p, idx_t block_index_p) + : identifier(identifier_p), block_index(block_index_p) { +} + +bool TemporaryFileIndex::IsValid() const { + return identifier.IsValid() && block_index.IsValid(); } +//===--------------------------------------------------------------------===// +// BlockIndexManager +//===--------------------------------------------------------------------===// BlockIndexManager::BlockIndexManager() : max_index(0), manager(nullptr) { } -idx_t BlockIndexManager::GetNewBlockIndex() { - auto index = GetNewBlockIndexInternal(); +BlockIndexManager::BlockIndexManager(TemporaryFileManager &manager) : max_index(0), manager(&manager) { +} + +idx_t BlockIndexManager::GetNewBlockIndex(const TemporaryBufferSize size) { + auto index = GetNewBlockIndexInternal(size); indexes_in_use.insert(index); return index; } -bool BlockIndexManager::RemoveIndex(idx_t index) { +bool BlockIndexManager::RemoveIndex(idx_t index, const TemporaryBufferSize size) { // remove this block from the set of blocks auto entry = indexes_in_use.find(index); if (entry == indexes_in_use.end()) { @@ -35,9 +113,9 @@ bool BlockIndexManager::RemoveIndex(idx_t index) { if (max_index_in_use < max_index) { // max index in use is lower than the max_index // reduce the max_index - SetMaxIndex(max_index_in_use); + SetMaxIndex(max_index_in_use, size); // we can remove any free_indexes that are larger than the current max_index - while (!free_indexes.empty()) { + while (HasFreeBlocks()) { auto max_entry = *free_indexes.rbegin(); if (max_entry < max_index) { break; @@ -49,56 +127,55 @@ bool BlockIndexManager::RemoveIndex(idx_t index) { return false; } -idx_t BlockIndexManager::GetMaxIndex() { +idx_t BlockIndexManager::GetMaxIndex() const { return max_index; } -bool BlockIndexManager::HasFreeBlocks() { +bool BlockIndexManager::HasFreeBlocks() const { return !free_indexes.empty(); } -void BlockIndexManager::SetMaxIndex(idx_t new_index) { - static constexpr idx_t TEMP_FILE_BLOCK_SIZE = DEFAULT_BLOCK_ALLOC_SIZE; +idx_t BlockIndexManager::GetNewBlockIndexInternal(const TemporaryBufferSize size) { + if (!HasFreeBlocks()) { + auto new_index = max_index; + SetMaxIndex(max_index + 1, size); + return new_index; + } + auto entry = free_indexes.begin(); + auto index = *entry; + free_indexes.erase(entry); + return index; +} + +void BlockIndexManager::SetMaxIndex(const idx_t new_index, const TemporaryBufferSize size) { + const auto temp_file_block_size = + size == TemporaryBufferSize::DEFAULT ? DEFAULT_BLOCK_ALLOC_SIZE : TemporaryBufferSizeToSize(size); if (!manager) { max_index = new_index; } else { auto old = max_index; if (new_index < old) { max_index = new_index; - auto difference = old - new_index; - auto size_on_disk = difference * TEMP_FILE_BLOCK_SIZE; + const auto difference = old - new_index; + const auto size_on_disk = difference * temp_file_block_size; manager->DecreaseSizeOnDisk(size_on_disk); } else if (new_index > old) { - auto difference = new_index - old; - auto size_on_disk = difference * TEMP_FILE_BLOCK_SIZE; + const auto difference = new_index - old; + const auto size_on_disk = difference * temp_file_block_size; manager->IncreaseSizeOnDisk(size_on_disk); - // Increase can throw, so this is only updated after it was succesfully updated + // Increase can throw, so this is only updated after it was successfully updated max_index = new_index; } } } -idx_t BlockIndexManager::GetNewBlockIndexInternal() { - if (free_indexes.empty()) { - auto new_index = max_index; - SetMaxIndex(max_index + 1); - return new_index; - } - auto entry = free_indexes.begin(); - auto index = *entry; - free_indexes.erase(entry); - return index; -} - //===--------------------------------------------------------------------===// // TemporaryFileHandle //===--------------------------------------------------------------------===// - -TemporaryFileHandle::TemporaryFileHandle(idx_t temp_file_count, DatabaseInstance &db, const string &temp_directory, - idx_t index, TemporaryFileManager &manager) - : max_allowed_index((1 << temp_file_count) * MAX_ALLOWED_INDEX_BASE), db(db), file_index(index), - path(FileSystem::GetFileSystem(db).JoinPath(temp_directory, "duckdb_temp_storage-" + to_string(index) + ".tmp")), - index_manager(manager) { +TemporaryFileHandle::TemporaryFileHandle(TemporaryFileManager &manager, TemporaryFileIdentifier identifier_p, + idx_t temp_file_count) + : db(manager.db), identifier(identifier_p), max_allowed_index((1 << temp_file_count) * MAX_ALLOWED_INDEX_BASE), + path(manager.CreateTemporaryFileName(identifier)), index_manager(manager) { } TemporaryFileHandle::TemporaryFileLock::TemporaryFileLock(mutex &mutex) : lock(mutex) { @@ -113,21 +190,47 @@ TemporaryFileIndex TemporaryFileHandle::TryGetBlockIndex() { // open the file handle if it does not yet exist CreateFileIfNotExists(lock); // fetch a new block index to write to - auto block_index = index_manager.GetNewBlockIndex(); - return TemporaryFileIndex(file_index, block_index); + auto block_index = index_manager.GetNewBlockIndex(identifier.size); + return TemporaryFileIndex(identifier, block_index); } -void TemporaryFileHandle::WriteTemporaryFile(FileBuffer &buffer, TemporaryFileIndex index) { - // We group DEFAULT_BLOCK_ALLOC_SIZE blocks into the same file. - D_ASSERT(buffer.size == BufferManager::GetBufferManager(db).GetBlockSize()); - buffer.Write(*handle, GetPositionInFile(index.block_index)); +unique_ptr TemporaryFileHandle::ReadTemporaryBuffer(idx_t block_index, + unique_ptr reusable_buffer) const { + auto &buffer_manager = BufferManager::GetBufferManager(db); + if (identifier.size == TemporaryBufferSize::DEFAULT) { + return StandardBufferManager::ReadTemporaryBufferInternal( + buffer_manager, *handle, GetPositionInFile(block_index), buffer_manager.GetBlockSize(), + std::move(reusable_buffer)); + } + + // Read compressed buffer + auto compressed_buffer = Allocator::Get(db).Allocate(TemporaryBufferSizeToSize(identifier.size)); + handle->Read(compressed_buffer.get(), compressed_buffer.GetSize(), GetPositionInFile(block_index)); + + // Decompress into buffer + auto buffer = buffer_manager.ConstructManagedBuffer(buffer_manager.GetBlockSize(), std::move(reusable_buffer)); + + const auto compressed_size = Load(compressed_buffer.get()); + D_ASSERT(!duckdb_zstd::ZSTD_isError(compressed_size)); + const auto decompressed_size = duckdb_zstd::ZSTD_decompress( + buffer->InternalBuffer(), buffer->AllocSize(), compressed_buffer.get() + sizeof(idx_t), compressed_size); + (void)decompressed_size; + D_ASSERT(!duckdb_zstd::ZSTD_isError(decompressed_size)); + + D_ASSERT(decompressed_size == buffer->AllocSize()); + return buffer; } -unique_ptr TemporaryFileHandle::ReadTemporaryBuffer(idx_t block_index, - unique_ptr reusable_buffer) { - return StandardBufferManager::ReadTemporaryBufferInternal( - BufferManager::GetBufferManager(db), *handle, GetPositionInFile(block_index), - BufferManager::GetBufferManager(db).GetBlockSize(), std::move(reusable_buffer)); +void TemporaryFileHandle::WriteTemporaryBuffer(FileBuffer &buffer, const idx_t block_index, + AllocatedData &compressed_buffer) const { + // We group DEFAULT_BLOCK_ALLOC_SIZE blocks into the same file. + D_ASSERT(buffer.size == BufferManager::GetBufferManager(db).GetBlockSize()); + if (identifier.size == TemporaryBufferSize::DEFAULT) { + buffer.Write(*handle, GetPositionInFile(block_index)); + } else { + handle->Write(compressed_buffer.get(), TemporaryBufferSizeToSize(identifier.size), + GetPositionInFile(block_index)); + } } void TemporaryFileHandle::EraseBlockIndex(block_id_t block_index) { @@ -169,7 +272,7 @@ void TemporaryFileHandle::CreateFileIfNotExists(TemporaryFileLock &) { void TemporaryFileHandle::RemoveTempBlockIndex(TemporaryFileLock &, idx_t index) { // remove the block index from the index manager - if (index_manager.RemoveIndex(index)) { + if (index_manager.RemoveIndex(index, identifier.size)) { // the max_index that is currently in use has decreased // as a result we can truncate the file #ifndef WIN32 // this ended up causing issues when sorting @@ -180,113 +283,165 @@ void TemporaryFileHandle::RemoveTempBlockIndex(TemporaryFileLock &, idx_t index) } } -idx_t TemporaryFileHandle::GetPositionInFile(idx_t index) { - return index * BufferManager::GetBufferManager(db).GetBlockAllocSize(); +idx_t TemporaryFileHandle::GetPositionInFile(const idx_t index) const { + return index * static_cast(identifier.size); } //===--------------------------------------------------------------------===// -// TemporaryDirectoryHandle +// TemporaryFileMap //===--------------------------------------------------------------------===// +TemporaryFileMap::TemporaryFileMap(TemporaryFileManager &manager_p) : manager(manager_p) { +} -TemporaryDirectoryHandle::TemporaryDirectoryHandle(DatabaseInstance &db, string path_p, optional_idx max_swap_space) - : db(db), temp_directory(std::move(path_p)), temp_file(make_uniq(db, temp_directory)) { - auto &fs = FileSystem::GetFileSystem(db); - D_ASSERT(!temp_directory.empty()); - if (!fs.DirectoryExists(temp_directory)) { - fs.CreateDirectory(temp_directory); - created_directory = true; - } - temp_file->SetMaxSwapSpace(max_swap_space); +void TemporaryFileMap::Clear() { + files.clear(); } -TemporaryDirectoryHandle::~TemporaryDirectoryHandle() { - // first release any temporary files - temp_file.reset(); - // then delete the temporary file directory - auto &fs = FileSystem::GetFileSystem(db); - if (!temp_directory.empty()) { - bool delete_directory = created_directory; - vector files_to_delete; - if (!created_directory) { - bool deleted_everything = true; - fs.ListFiles(temp_directory, [&](const string &path, bool isdir) { - if (isdir) { - deleted_everything = false; - return; - } - if (!StringUtil::StartsWith(path, "duckdb_temp_")) { - deleted_everything = false; - return; - } - files_to_delete.push_back(path); - }); - } - if (delete_directory) { - // we want to remove all files in the directory - fs.RemoveDirectory(temp_directory); - } else { - for (auto &file : files_to_delete) { - fs.RemoveFile(fs.JoinPath(temp_directory, file)); - } - } - } +TemporaryFileMap::temporary_file_map_t &TemporaryFileMap::GetMapForSize(const TemporaryBufferSize size) { + D_ASSERT(TemporaryBufferSizeIsValid(size)); + return files[size]; } -TemporaryFileManager &TemporaryDirectoryHandle::GetTempFile() { - return *temp_file; +optional_ptr TemporaryFileMap::GetFile(const TemporaryFileIdentifier &identifier) { + D_ASSERT(identifier.IsValid()); + auto &map = GetMapForSize(identifier.size); + const auto it = map.find(identifier.file_index.GetIndex()); + return it == map.end() ? nullptr : it->second.get(); +} + +TemporaryFileHandle &TemporaryFileMap::CreateFile(const TemporaryFileIdentifier &identifier) { + D_ASSERT(identifier.IsValid()); + D_ASSERT(!GetFile(identifier)); + auto &map = GetMapForSize(identifier.size); + const auto res = + map.emplace(identifier.file_index.GetIndex(), make_uniq(manager, identifier, map.size())); + D_ASSERT(res.second); + return *res.first->second; +} + +void TemporaryFileMap::EraseFile(const TemporaryFileIdentifier &identifier) { + D_ASSERT(identifier.IsValid()); + D_ASSERT(GetFile(identifier)); + GetMapForSize(identifier.size).erase(identifier.file_index.GetIndex()); } //===--------------------------------------------------------------------===// -// TemporaryFileIndex +// TemporaryFileCompressionLevel/TemporaryFileCompressionAdaptivity //===--------------------------------------------------------------------===// +TemporaryFileCompressionAdaptivity::TemporaryFileCompressionAdaptivity() : last_uncompressed_write_ns(INITIAL_NS) { + for (idx_t i = 0; i < LEVELS; i++) { + last_compressed_writes_ns[i] = INITIAL_NS; + } +} -TemporaryFileIndex::TemporaryFileIndex(idx_t file_index, idx_t block_index) - : file_index(file_index), block_index(block_index) { +int64_t TemporaryFileCompressionAdaptivity::GetCurrentTimeNanos() { + return duration_cast(high_resolution_clock::now().time_since_epoch()).count(); } -bool TemporaryFileIndex::IsValid() const { - return block_index != DConstants::INVALID_INDEX; +TemporaryCompressionLevel TemporaryFileCompressionAdaptivity::IndexToLevel(const idx_t index) { + return static_cast(NumericCast(index) * 2 - 5); } -//===--------------------------------------------------------------------===// -// TemporaryFileManager -//===--------------------------------------------------------------------===// +idx_t TemporaryFileCompressionAdaptivity::LevelToIndex(const TemporaryCompressionLevel level) { + return NumericCast((static_cast(level) + 5) / 2); +} -static idx_t GetDefaultMax(const string &path) { - D_ASSERT(!path.empty()); - auto disk_space = FileSystem::GetAvailableDiskSpace(path); - // Use the available disk space - // We have made sure that the file exists before we call this, it shouldn't fail - if (!disk_space.IsValid()) { - // But if it does (i.e because the system call is not implemented) - // we don't cap the available swap space - return DConstants::INVALID_INDEX - 1; +TemporaryCompressionLevel TemporaryFileCompressionAdaptivity::MinimumCompressionLevel() { + return IndexToLevel(0); +} + +TemporaryCompressionLevel TemporaryFileCompressionAdaptivity::MaximumCompressionLevel() { + return IndexToLevel(LEVELS - 1); +} + +TemporaryCompressionLevel TemporaryFileCompressionAdaptivity::GetCompressionLevel() { + idx_t min_compression_idx = 0; + TemporaryCompressionLevel level; + + double ratio; + bool should_compress; + + bool should_deviate; + bool deviate_uncompressed; + { + lock_guard guard(random_engine.lock); + + auto min_compressed_time = last_compressed_writes_ns[min_compression_idx]; + for (idx_t compression_idx = 1; compression_idx < LEVELS; compression_idx++) { + const auto time = last_compressed_writes_ns[compression_idx]; + if (time < min_compressed_time) { + min_compression_idx = compression_idx; + min_compressed_time = time; + } + } + level = IndexToLevel(min_compression_idx); + + ratio = static_cast(min_compressed_time) / static_cast(last_uncompressed_write_ns); + should_compress = ratio < DURATION_RATIO_THRESHOLD; + + should_deviate = random_engine.NextRandom() < COMPRESSION_DEVIATION; + deviate_uncompressed = random_engine.NextRandom() < 0.5; // Coin flip to deviate with just uncompressed } - // Only use 90% of the available disk space - return static_cast(static_cast(disk_space.GetIndex()) * 0.9); + + TemporaryCompressionLevel result; + if (!should_deviate) { + result = should_compress ? level : TemporaryCompressionLevel::UNCOMPRESSED; // Don't deviate + } else if (!should_compress) { + result = MinimumCompressionLevel(); // Deviate from uncompressed -> go to fastest level + } else if (deviate_uncompressed) { + result = TemporaryCompressionLevel::UNCOMPRESSED; + } else if (level == MaximumCompressionLevel()) { + result = IndexToLevel(min_compression_idx - 1); // At highest level, go down one + } else if (ratio < 1.0) { // Compressed writes are faster, try increasing the compression level + result = IndexToLevel(min_compression_idx + 1); + } else { // Compressed writes are slower, try decreasing the compression level + result = level == MinimumCompressionLevel() + ? TemporaryCompressionLevel::UNCOMPRESSED // Already lowest level, go to uncompressed + : IndexToLevel(min_compression_idx - 1); + } + return result; +} + +void TemporaryFileCompressionAdaptivity::Update(const TemporaryCompressionLevel level, const int64_t time_before_ns) { + const auto duration = GetCurrentTimeNanos() - time_before_ns; + auto &last_write_ns = level == TemporaryCompressionLevel::UNCOMPRESSED + ? last_uncompressed_write_ns + : last_compressed_writes_ns[LevelToIndex(level)]; + lock_guard guard(random_engine.lock); + last_write_ns = (last_write_ns * (WEIGHT - 1) + duration) / WEIGHT; } +//===--------------------------------------------------------------------===// +// TemporaryFileManager +//===--------------------------------------------------------------------===// TemporaryFileManager::TemporaryFileManager(DatabaseInstance &db, const string &temp_directory_p) - : db(db), temp_directory(temp_directory_p), size_on_disk(0), max_swap_space(0) { + : db(db), temp_directory(temp_directory_p), files(*this), size_on_disk(0), max_swap_space(0) { } TemporaryFileManager::~TemporaryFileManager() { - files.clear(); + files.Clear(); } -TemporaryFileManager::TemporaryManagerLock::TemporaryManagerLock(mutex &mutex) : lock(mutex) { +TemporaryFileManager::TemporaryFileManagerLock::TemporaryFileManagerLock(mutex &mutex) : lock(mutex) { } void TemporaryFileManager::WriteTemporaryBuffer(block_id_t block_id, FileBuffer &buffer) { // We group DEFAULT_BLOCK_ALLOC_SIZE blocks into the same file. D_ASSERT(buffer.size == BufferManager::GetBufferManager(db).GetBlockSize()); - TemporaryFileIndex index; - TemporaryFileHandle *handle = nullptr; + const auto adaptivity_idx = TaskScheduler::GetEstimatedCPUId() % COMPRESSION_ADAPTIVITIES; + auto &compression_adaptivity = compression_adaptivities[adaptivity_idx]; + + const auto time_before_ns = TemporaryFileCompressionAdaptivity::GetCurrentTimeNanos(); + AllocatedData compressed_buffer; + const auto compression_result = CompressBuffer(compression_adaptivity, buffer, compressed_buffer); + + TemporaryFileIndex index; + optional_ptr handle; { - TemporaryManagerLock lock(manager_lock); + TemporaryFileManagerLock lock(manager_lock); // first check if we can write to an open existing file - for (auto &entry : files) { + for (auto &entry : files.GetMapForSize(compression_result.size)) { auto &temp_file = entry.second; index = temp_file->TryGetBlockIndex(); if (index.IsValid()) { @@ -296,19 +451,51 @@ void TemporaryFileManager::WriteTemporaryBuffer(block_id_t block_id, FileBuffer } if (!handle) { // no existing handle to write to; we need to create & open a new file - auto new_file_index = index_manager.GetNewBlockIndex(); - auto new_file = make_uniq(files.size(), db, temp_directory, new_file_index, *this); - handle = new_file.get(); - files[new_file_index] = std::move(new_file); - - index = handle->TryGetBlockIndex(); + auto &size = compression_result.size; + const TemporaryFileIdentifier identifier(size, index_managers[size].GetNewBlockIndex(size)); + auto &new_file = files.CreateFile(identifier); + index = new_file.TryGetBlockIndex(); + handle = &new_file; } D_ASSERT(used_blocks.find(block_id) == used_blocks.end()); used_blocks[block_id] = index; } D_ASSERT(handle); D_ASSERT(index.IsValid()); - handle->WriteTemporaryFile(buffer, index); + + handle->WriteTemporaryBuffer(buffer, index.block_index.GetIndex(), compressed_buffer); + + compression_adaptivity.Update(compression_result.level, time_before_ns); +} + +TemporaryFileManager::CompressionResult +TemporaryFileManager::CompressBuffer(TemporaryFileCompressionAdaptivity &compression_adaptivity, FileBuffer &buffer, + AllocatedData &compressed_buffer) { + if (buffer.AllocSize() <= TemporaryBufferSizeToSize(MinimumCompressedTemporaryBufferSize())) { + // Buffer size is less or equal to the minimum compressed size - no point compressing + return {TemporaryBufferSize::DEFAULT, TemporaryCompressionLevel::UNCOMPRESSED}; + } + + const auto level = compression_adaptivity.GetCompressionLevel(); + if (level == TemporaryCompressionLevel::UNCOMPRESSED) { + return {TemporaryBufferSize::DEFAULT, TemporaryCompressionLevel::UNCOMPRESSED}; + } + + const auto compression_level = static_cast(level); + D_ASSERT(compression_level >= duckdb_zstd::ZSTD_minCLevel() && compression_level <= duckdb_zstd::ZSTD_maxCLevel()); + const auto zstd_bound = duckdb_zstd::ZSTD_compressBound(buffer.AllocSize()); + compressed_buffer = Allocator::Get(db).Allocate(sizeof(idx_t) + zstd_bound); + const auto zstd_size = duckdb_zstd::ZSTD_compress(compressed_buffer.get() + sizeof(idx_t), zstd_bound, + buffer.InternalBuffer(), buffer.AllocSize(), compression_level); + D_ASSERT(!duckdb_zstd::ZSTD_isError(zstd_size)); + Store(zstd_size, compressed_buffer.get()); + const auto compressed_size = sizeof(idx_t) + zstd_size; + + if (compressed_size > TemporaryBufferSizeToSize(MaximumCompressedTemporaryBufferSize())) { + return {TemporaryBufferSize::DEFAULT, level}; // Use default size if compression ratio is bad + } + + return {RoundUpSizeToTemporaryBufferSize(compressed_size), level}; } bool TemporaryFileManager::HasTemporaryBuffer(block_id_t block_id) { @@ -316,7 +503,7 @@ bool TemporaryFileManager::HasTemporaryBuffer(block_id_t block_id) { return used_blocks.find(block_id) != used_blocks.end(); } -idx_t TemporaryFileManager::GetTotalUsedSpaceInBytes() { +idx_t TemporaryFileManager::GetTotalUsedSpaceInBytes() const { return size_on_disk.load(); } @@ -324,6 +511,20 @@ optional_idx TemporaryFileManager::GetMaxSwapSpace() const { return max_swap_space; } +static idx_t GetDefaultMax(const string &path) { + D_ASSERT(!path.empty()); + auto disk_space = FileSystem::GetAvailableDiskSpace(path); + // Use the available disk space + // We have made sure that the file exists before we call this, it shouldn't fail + if (!disk_space.IsValid()) { + // But if it does (i.e because the system call is not implemented) + // we don't cap the available swap space + return DConstants::INVALID_INDEX - 1; + } + // Only use 90% of the available disk space + return static_cast(static_cast(disk_space.GetIndex()) * 0.9); +} + void TemporaryFileManager::SetMaxSwapSpace(optional_idx limit) { idx_t new_limit; if (limit.IsValid()) { @@ -332,7 +533,7 @@ void TemporaryFileManager::SetMaxSwapSpace(optional_idx limit) { new_limit = GetDefaultMax(temp_directory); } - auto current_size_on_disk = size_on_disk.load(); + auto current_size_on_disk = GetTotalUsedSpaceInBytes(); if (current_size_on_disk > new_limit) { auto used = StringUtil::BytesToHumanReadableString(current_size_on_disk); auto max = StringUtil::BytesToHumanReadableString(new_limit); @@ -347,7 +548,7 @@ To get usage information of the temp_directory, use 'CALL duckdb_temporary_files } void TemporaryFileManager::IncreaseSizeOnDisk(idx_t bytes) { - auto current_size_on_disk = size_on_disk.load(); + auto current_size_on_disk = GetTotalUsedSpaceInBytes(); if (current_size_on_disk + bytes > max_swap_space) { auto used = StringUtil::BytesToHumanReadableString(current_size_on_disk); auto max = StringUtil::BytesToHumanReadableString(max_swap_space); @@ -368,63 +569,125 @@ void TemporaryFileManager::DecreaseSizeOnDisk(idx_t bytes) { unique_ptr TemporaryFileManager::ReadTemporaryBuffer(block_id_t id, unique_ptr reusable_buffer) { TemporaryFileIndex index; - TemporaryFileHandle *handle; + optional_ptr handle; { - TemporaryManagerLock lock(manager_lock); + TemporaryFileManagerLock lock(manager_lock); index = GetTempBlockIndex(lock, id); - handle = GetFileHandle(lock, index.file_index); + handle = GetFileHandle(lock, index.identifier); } - auto buffer = handle->ReadTemporaryBuffer(index.block_index, std::move(reusable_buffer)); + + auto buffer = handle->ReadTemporaryBuffer(index.block_index.GetIndex(), std::move(reusable_buffer)); { // remove the block (and potentially erase the temp file) - TemporaryManagerLock lock(manager_lock); - EraseUsedBlock(lock, id, handle, index); + TemporaryFileManagerLock lock(manager_lock); + EraseUsedBlock(lock, id, *handle, index); } return buffer; } void TemporaryFileManager::DeleteTemporaryBuffer(block_id_t id) { - TemporaryManagerLock lock(manager_lock); + TemporaryFileManagerLock lock(manager_lock); auto index = GetTempBlockIndex(lock, id); - auto handle = GetFileHandle(lock, index.file_index); - EraseUsedBlock(lock, id, handle, index); + auto handle = GetFileHandle(lock, index.identifier); + EraseUsedBlock(lock, id, *handle, index); } vector TemporaryFileManager::GetTemporaryFiles() { lock_guard lock(manager_lock); vector result; - for (auto &file : files) { - result.push_back(file.second->GetTemporaryFile()); + for (auto &size : TemporaryBufferSizes()) { + for (const auto &file : files.GetMapForSize(size)) { + result.push_back(file.second->GetTemporaryFile()); + } } return result; } -void TemporaryFileManager::EraseUsedBlock(TemporaryManagerLock &lock, block_id_t id, TemporaryFileHandle *handle, +void TemporaryFileManager::EraseUsedBlock(TemporaryFileManagerLock &lock, block_id_t id, TemporaryFileHandle &handle, TemporaryFileIndex index) { auto entry = used_blocks.find(id); if (entry == used_blocks.end()) { throw InternalException("EraseUsedBlock - Block %llu not found in used blocks", id); } used_blocks.erase(entry); - handle->EraseBlockIndex(NumericCast(index.block_index)); - if (handle->DeleteIfEmpty()) { - EraseFileHandle(lock, index.file_index); + handle.EraseBlockIndex(NumericCast(index.block_index.GetIndex())); + if (handle.DeleteIfEmpty()) { + EraseFileHandle(lock, index.identifier); } } -// FIXME: returning a raw pointer??? -TemporaryFileHandle *TemporaryFileManager::GetFileHandle(TemporaryManagerLock &, idx_t index) { - return files[index].get(); +string TemporaryFileManager::CreateTemporaryFileName(const TemporaryFileIdentifier &identifier) const { + return FileSystem::GetFileSystem(db).JoinPath( + temp_directory, StringUtil::Format("duckdb_temp_storage_%s-%llu.tmp", EnumUtil::ToString(identifier.size), + identifier.file_index.GetIndex())); } -TemporaryFileIndex TemporaryFileManager::GetTempBlockIndex(TemporaryManagerLock &, block_id_t id) { +optional_ptr TemporaryFileManager::GetFileHandle(TemporaryFileManagerLock &, + const TemporaryFileIdentifier &identifier) { + D_ASSERT(identifier.IsValid()); + return files.GetFile(identifier); +} + +TemporaryFileIndex TemporaryFileManager::GetTempBlockIndex(TemporaryFileManagerLock &, block_id_t id) { D_ASSERT(used_blocks.find(id) != used_blocks.end()); return used_blocks[id]; } -void TemporaryFileManager::EraseFileHandle(TemporaryManagerLock &, idx_t file_index) { - files.erase(file_index); - index_manager.RemoveIndex(file_index); +void TemporaryFileManager::EraseFileHandle(TemporaryFileManagerLock &, const TemporaryFileIdentifier &identifier) { + D_ASSERT(identifier.IsValid()); + files.EraseFile(identifier); + index_managers[identifier.size].RemoveIndex(identifier.file_index.GetIndex(), identifier.size); +} + +//===--------------------------------------------------------------------===// +// TemporaryDirectoryHandle +//===--------------------------------------------------------------------===// +TemporaryDirectoryHandle::TemporaryDirectoryHandle(DatabaseInstance &db, string path_p, optional_idx max_swap_space) + : db(db), temp_directory(std::move(path_p)), temp_file(make_uniq(db, temp_directory)) { + auto &fs = FileSystem::GetFileSystem(db); + D_ASSERT(!temp_directory.empty()); + if (!fs.DirectoryExists(temp_directory)) { + fs.CreateDirectory(temp_directory); + created_directory = true; + } + temp_file->SetMaxSwapSpace(max_swap_space); +} + +TemporaryDirectoryHandle::~TemporaryDirectoryHandle() { + // first release any temporary files + temp_file.reset(); + // then delete the temporary file directory + auto &fs = FileSystem::GetFileSystem(db); + if (!temp_directory.empty()) { + bool delete_directory = created_directory; + vector files_to_delete; + if (!created_directory) { + bool deleted_everything = true; + fs.ListFiles(temp_directory, [&](const string &path, bool isdir) { + if (isdir) { + deleted_everything = false; + return; + } + if (!StringUtil::StartsWith(path, "duckdb_temp_")) { + deleted_everything = false; + return; + } + files_to_delete.push_back(path); + }); + } + if (delete_directory) { + // we want to remove all files in the directory + fs.RemoveDirectory(temp_directory); + } else { + for (auto &file : files_to_delete) { + fs.RemoveFile(fs.JoinPath(temp_directory, file)); + } + } + } +} + +TemporaryFileManager &TemporaryDirectoryHandle::GetTempFile() const { + return *temp_file; } } // namespace duckdb diff --git a/src/duckdb/src/storage/wal_replay.cpp b/src/duckdb/src/storage/wal_replay.cpp index 6d77b071..bac2cf04 100644 --- a/src/duckdb/src/storage/wal_replay.cpp +++ b/src/duckdb/src/storage/wal_replay.cpp @@ -162,13 +162,29 @@ class WriteAheadLogDeserializer { //===--------------------------------------------------------------------===// // Replay //===--------------------------------------------------------------------===// -bool WriteAheadLog::Replay(AttachedDatabase &database, unique_ptr handle) { +unique_ptr WriteAheadLog::Replay(FileSystem &fs, AttachedDatabase &db, const string &wal_path) { + auto handle = fs.OpenFile(wal_path, FileFlags::FILE_FLAGS_READ | FileFlags::FILE_FLAGS_NULL_IF_NOT_EXISTS); + if (!handle) { + // WAL does not exist - instantiate an empty WAL + return make_uniq(db, wal_path); + } + auto wal_handle = ReplayInternal(db, std::move(handle)); + if (wal_handle) { + return wal_handle; + } + // replay returning NULL indicates we can nuke the WAL entirely - but only if this is not a read-only connection + if (!db.IsReadOnly()) { + fs.RemoveFile(wal_path); + } + return make_uniq(db, wal_path); +} +unique_ptr WriteAheadLog::ReplayInternal(AttachedDatabase &database, unique_ptr handle) { Connection con(database.GetDatabase()); auto wal_path = handle->GetPath(); BufferedFileReader reader(FileSystem::Get(database), std::move(handle)); if (reader.Finished()) { - // WAL is empty - return false; + // WAL file exists but it is empty - we can delete the file + return nullptr; } con.BeginTransaction(); @@ -203,7 +219,7 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, unique_ptr ha if (manager.IsCheckpointClean(checkpoint_state.checkpoint_id)) { // the contents of the WAL have already been checkpointed // we can safely truncate the WAL and ignore its contents - return true; + return nullptr; } } @@ -216,15 +232,19 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, unique_ptr ha // replay the WAL // note that everything is wrapped inside a try/catch block here // there can be errors in WAL replay because of a corrupt WAL file + idx_t successful_offset = 0; + bool all_succeeded = false; try { while (true) { // read the current entry auto deserializer = WriteAheadLogDeserializer::Open(state, reader); if (deserializer.ReplayEntry()) { con.Commit(); + successful_offset = reader.offset; // check if the file is exhausted if (reader.Finished()) { // we finished reading the file: break + all_succeeded = true; break; } con.BeginTransaction(); @@ -246,7 +266,8 @@ bool WriteAheadLog::Replay(AttachedDatabase &database, unique_ptr ha con.Query("ROLLBACK"); throw; } // LCOV_EXCL_STOP - return false; + auto init_state = all_succeeded ? WALInitState::UNINITIALIZED : WALInitState::UNINITIALIZED_REQUIRES_TRUNCATE; + return make_uniq(database, wal_path, successful_offset, init_state); } //===--------------------------------------------------------------------===// @@ -370,12 +391,103 @@ void WriteAheadLogDeserializer::ReplayDropTable() { catalog.DropEntry(context, info); } +void ReplayWithoutIndex(ClientContext &context, Catalog &catalog, AlterInfo &info, const bool only_deserialize) { + if (only_deserialize) { + return; + } + catalog.Alter(context, info); +} + +void ReplayIndexData(AttachedDatabase &db, BinaryDeserializer &deserializer, IndexStorageInfo &info, + const bool deserialize_only) { + D_ASSERT(info.IsValid() && !info.name.empty()); + + auto &storage_manager = db.GetStorageManager(); + auto &single_file_sm = storage_manager.Cast(); + auto &block_manager = single_file_sm.block_manager; + auto &buffer_manager = block_manager->buffer_manager; + + deserializer.ReadList(103, "index_storage", [&](Deserializer::List &list, idx_t i) { + auto &data_info = info.allocator_infos[i]; + + // Read the data into buffer handles and convert them to blocks on disk. + for (idx_t j = 0; j < data_info.allocation_sizes.size(); j++) { + + // Read the data into a buffer handle. + auto buffer_handle = buffer_manager.Allocate(MemoryTag::ART_INDEX, block_manager->GetBlockSize(), false); + auto block_handle = buffer_handle.GetBlockHandle(); + auto data_ptr = buffer_handle.Ptr(); + + list.ReadElement(data_ptr, data_info.allocation_sizes[j]); + + // Convert the buffer handle to a persistent block and store the block id. + if (!deserialize_only) { + auto block_id = block_manager->GetFreeBlockId(); + block_manager->ConvertToPersistent(block_id, std::move(block_handle), std::move(buffer_handle)); + data_info.block_pointers[j].block_id = block_id; + } + } + }); +} + void WriteAheadLogDeserializer::ReplayAlter() { auto info = deserializer.ReadProperty>(101, "info"); auto &alter_info = info->Cast(); + if (!alter_info.IsAddPrimaryKey()) { + return ReplayWithoutIndex(context, catalog, alter_info, DeserializeOnly()); + } + + auto index_storage_info = deserializer.ReadProperty(102, "index_storage_info"); + ReplayIndexData(db, deserializer, index_storage_info, DeserializeOnly()); if (DeserializeOnly()) { return; } + + auto &table_info = alter_info.Cast(); + auto &constraint_info = table_info.Cast(); + auto &unique_info = constraint_info.constraint->Cast(); + + auto &table = + catalog.GetEntry(context, table_info.schema, table_info.name).Cast(); + auto &column_list = table.GetColumns(); + + // Add the table to the bind context to bind the parsed expressions. + auto binder = Binder::CreateBinder(context); + vector column_types; + vector column_names; + for (auto &col : column_list.Logical()) { + column_types.push_back(col.Type()); + column_names.push_back(col.Name()); + } + + // Create a binder to bind the parsed expressions. + vector column_indexes; + binder->bind_context.AddBaseTable(0, string(), column_names, column_types, column_indexes, table); + IndexBinder idx_binder(*binder, context); + + // Bind the parsed expressions to create unbound expressions. + vector> unbound_expressions; + auto logical_indexes = unique_info.GetLogicalIndexes(column_list); + for (const auto &logical_index : logical_indexes) { + auto &col = column_list.GetColumn(logical_index); + unique_ptr parsed = make_uniq(col.GetName(), table_info.name); + unbound_expressions.push_back(idx_binder.Bind(parsed)); + } + + vector column_ids; + for (auto &column_index : column_indexes) { + column_ids.push_back(column_index.GetPrimaryIndex()); + } + + auto &storage = table.GetStorage(); + CreateIndexInput input(TableIOManager::Get(storage), storage.db, IndexConstraintType::PRIMARY, + index_storage_info.name, column_ids, unbound_expressions, index_storage_info, + index_storage_info.options); + + auto index_type = context.db->config.GetIndexTypes().FindByName(ART::TYPE_NAME); + auto index_instance = index_type->create_instance(input); + storage.AddIndex(std::move(index_instance)); + catalog.Alter(context, alter_info); } @@ -539,40 +651,15 @@ void WriteAheadLogDeserializer::ReplayDropTableMacro() { void WriteAheadLogDeserializer::ReplayCreateIndex() { auto create_info = deserializer.ReadProperty>(101, "index_catalog_entry"); auto index_info = deserializer.ReadProperty(102, "index_storage_info"); - D_ASSERT(index_info.IsValid() && !index_info.name.empty()); - - auto &storage_manager = db.GetStorageManager(); - auto &single_file_sm = storage_manager.Cast(); - auto &block_manager = single_file_sm.block_manager; - auto &buffer_manager = block_manager->buffer_manager; - - deserializer.ReadList(103, "index_storage", [&](Deserializer::List &list, idx_t i) { - auto &data_info = index_info.allocator_infos[i]; - - // read the data into buffer handles and convert them to blocks on disk - // then, update the block pointer - for (idx_t j = 0; j < data_info.allocation_sizes.size(); j++) { - - // read the data into a buffer handle - auto buffer_handle = buffer_manager.Allocate(MemoryTag::ART_INDEX, block_manager->GetBlockSize(), false); - auto block_handle = buffer_handle.GetBlockHandle(); - auto data_ptr = buffer_handle.Ptr(); - - list.ReadElement(data_ptr, data_info.allocation_sizes[j]); - - // now convert the buffer handle to a persistent block and remember the block id - auto block_id = block_manager->GetFreeBlockId(); - block_manager->ConvertToPersistent(block_id, std::move(block_handle)); - data_info.block_pointers[j].block_id = block_id; - } - }); + ReplayIndexData(db, deserializer, index_info, DeserializeOnly()); if (DeserializeOnly()) { return; } + auto &info = create_info->Cast(); - // Ensure the index type exists + // Ensure that the index type exists. if (info.index_type.empty()) { info.index_type = ART::TYPE_NAME; } @@ -582,11 +669,11 @@ void WriteAheadLogDeserializer::ReplayCreateIndex() { throw InternalException("Index type \"%s\" not recognized", info.index_type); } - // create the index in the catalog + // Create the index in the catalog. auto &table = catalog.GetEntry(context, create_info->schema, info.table).Cast(); auto &index = table.schema.CreateIndex(context, info, table)->Cast(); - // add the table to the bind context to bind the parsed expressions + // Add the table to the bind context to bind the parsed expressions. auto binder = Binder::CreateBinder(context); vector column_types; vector column_names; @@ -596,25 +683,22 @@ void WriteAheadLogDeserializer::ReplayCreateIndex() { } // create a binder to bind the parsed expressions - vector column_ids; - binder->bind_context.AddBaseTable(0, info.table, column_names, column_types, column_ids, &table); + vector column_ids; + binder->bind_context.AddBaseTable(0, string(), column_names, column_types, column_ids, table); IndexBinder idx_binder(*binder, context); - // bind the parsed expressions to create unbound expressions + // Bind the parsed expressions to create unbound expressions. vector> unbound_expressions; - unbound_expressions.reserve(index.parsed_expressions.size()); for (auto &expr : index.parsed_expressions) { auto copy = expr->Copy(); unbound_expressions.push_back(idx_binder.Bind(copy)); } - auto &data_table = table.GetStorage(); - - CreateIndexInput input(TableIOManager::Get(data_table), data_table.db, info.constraint_type, info.index_name, + auto &storage = table.GetStorage(); + CreateIndexInput input(TableIOManager::Get(storage), storage.db, info.constraint_type, info.index_name, info.column_ids, unbound_expressions, index_info, info.options); - auto index_instance = index_type->create_instance(input); - data_table.AddIndex(std::move(index_instance)); + storage.AddIndex(std::move(index_instance)); } void WriteAheadLogDeserializer::ReplayDropIndex() { @@ -699,7 +783,7 @@ void WriteAheadLogDeserializer::ReplayRowGroupData() { } auto &storage = state.current_table->GetStorage(); auto &table_info = storage.GetDataTableInfo(); - RowGroupCollection new_row_groups(table_info, block_manager, storage.GetTypes(), 0); + RowGroupCollection new_row_groups(table_info, table_info->GetIOManager(), storage.GetTypes(), 0); new_row_groups.Initialize(data); TableIndexList index_list; storage.MergeStorage(new_row_groups, index_list, nullptr); diff --git a/src/duckdb/src/storage/write_ahead_log.cpp b/src/duckdb/src/storage/write_ahead_log.cpp index ba9db9ee..1a1b4250 100644 --- a/src/duckdb/src/storage/write_ahead_log.cpp +++ b/src/duckdb/src/storage/write_ahead_log.cpp @@ -1,35 +1,39 @@ #include "duckdb/storage/write_ahead_log.hpp" #include "duckdb/catalog/catalog_entry/duck_index_entry.hpp" +#include "duckdb/catalog/catalog_entry/duck_table_entry.hpp" #include "duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/schema_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/table_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/type_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp" +#include "duckdb/common/checksum.hpp" #include "duckdb/common/serializer/binary_serializer.hpp" +#include "duckdb/common/serializer/memory_stream.hpp" +#include "duckdb/execution/index/bound_index.hpp" #include "duckdb/main/database.hpp" +#include "duckdb/parser/constraints/unique_constraint.hpp" #include "duckdb/parser/parsed_data/alter_table_info.hpp" +#include "duckdb/storage/data_table.hpp" #include "duckdb/storage/index.hpp" -#include "duckdb/execution/index/bound_index.hpp" +#include "duckdb/storage/table/column_data.hpp" #include "duckdb/storage/table/data_table_info.hpp" #include "duckdb/storage/table_io_manager.hpp" -#include "duckdb/common/checksum.hpp" -#include "duckdb/common/serializer/memory_stream.hpp" -#include "duckdb/storage/table/column_data.hpp" namespace duckdb { -const uint64_t WAL_VERSION_NUMBER = 2; +constexpr uint64_t WAL_VERSION_NUMBER = 2; -WriteAheadLog::WriteAheadLog(AttachedDatabase &database, const string &wal_path) - : database(database), wal_path(wal_path), wal_size(0), initialized(false) { +WriteAheadLog::WriteAheadLog(AttachedDatabase &database, const string &wal_path, idx_t wal_size, + WALInitState init_state) + : database(database), wal_path(wal_path), wal_size(wal_size), init_state(init_state) { } WriteAheadLog::~WriteAheadLog() { } BufferedFileWriter &WriteAheadLog::Initialize() { - if (initialized) { + if (Initialized()) { return *writer; } lock_guard lock(wal_lock); @@ -37,25 +41,22 @@ BufferedFileWriter &WriteAheadLog::Initialize() { writer = make_uniq(FileSystem::Get(database), wal_path, FileFlags::FILE_FLAGS_WRITE | FileFlags::FILE_FLAGS_FILE_CREATE | FileFlags::FILE_FLAGS_APPEND); + if (init_state == WALInitState::UNINITIALIZED_REQUIRES_TRUNCATE) { + writer->Truncate(wal_size); + } wal_size = writer->GetFileSize(); - initialized = true; + init_state = WALInitState::INITIALIZED; } return *writer; } //! Gets the total bytes written to the WAL since startup -idx_t WriteAheadLog::GetWALSize() { - if (!Initialized()) { - auto &fs = FileSystem::Get(database); - if (!fs.FileExists(wal_path)) { - return 0; - } - Initialize(); - } +idx_t WriteAheadLog::GetWALSize() const { + D_ASSERT(init_state != WALInitState::NO_WAL || wal_size == 0); return wal_size; } -idx_t WriteAheadLog::GetTotalWritten() { +idx_t WriteAheadLog::GetTotalWritten() const { if (!Initialized()) { return 0; } @@ -63,20 +64,32 @@ idx_t WriteAheadLog::GetTotalWritten() { } void WriteAheadLog::Truncate(idx_t size) { + if (init_state == WALInitState::NO_WAL) { + // no WAL to truncate + return; + } if (!Initialized()) { + init_state = WALInitState::UNINITIALIZED_REQUIRES_TRUNCATE; + wal_size = size; return; } writer->Truncate(size); wal_size = writer->GetFileSize(); } +bool WriteAheadLog::Initialized() const { + return init_state == WALInitState::INITIALIZED; +} + void WriteAheadLog::Delete() { - if (!Initialized()) { + if (init_state == WALInitState::NO_WAL) { + // no WAL to delete return; } writer.reset(); auto &fs = FileSystem::Get(database); fs.RemoveFile(wal_path); + init_state = WALInitState::NO_WAL; wal_size = 0; } @@ -259,44 +272,42 @@ void WriteAheadLog::WriteDropTableMacro(const TableMacroCatalogEntry &entry) { // Indexes //===--------------------------------------------------------------------===// -void SerializeIndexToWAL(WriteAheadLogSerializer &serializer, Index &index, - const case_insensitive_map_t &options) { - - // We will never write an index to the WAL that is not bound - D_ASSERT(index.IsBound()); - const auto index_storage_info = index.Cast().GetStorageInfo(options, true); - serializer.WriteProperty(102, "index_storage_info", index_storage_info); - - serializer.WriteList(103, "index_storage", index_storage_info.buffers.size(), [&](Serializer::List &list, idx_t i) { - auto &buffers = index_storage_info.buffers[i]; - for (auto buffer : buffers) { - list.WriteElement(buffer.buffer_ptr, buffer.allocation_size); - } - }); -} - -void WriteAheadLog::WriteCreateIndex(const IndexCatalogEntry &entry) { - WriteAheadLogSerializer serializer(*this, WALType::CREATE_INDEX); - serializer.WriteProperty(101, "index_catalog_entry", &entry); - - auto db_options = database.GetDatabase().config.options; +void SerializeIndex(AttachedDatabase &db, WriteAheadLogSerializer &serializer, TableIndexList &list, + const string &name) { + const auto &db_options = db.GetDatabase().config.options; auto v1_0_0_storage = db_options.serialization_compatibility.serialization_version < 3; case_insensitive_map_t options; if (!v1_0_0_storage) { options.emplace("v1_0_0_storage", v1_0_0_storage); } - // now serialize the index data to the persistent storage and write the index metadata - auto &duck_index_entry = entry.Cast(); - auto &table_idx_list = duck_index_entry.GetDataTableInfo().GetIndexes(); - - table_idx_list.Scan([&](Index &index) { - if (duck_index_entry.name == index.GetIndexName()) { - SerializeIndexToWAL(serializer, index, options); + list.Scan([&](Index &index) { + if (name == index.GetIndexName()) { + // We never write an unbound index to the WAL. + D_ASSERT(index.IsBound()); + + const auto &info = index.Cast().GetStorageInfo(options, true); + serializer.WriteProperty(102, "index_storage_info", info); + serializer.WriteList(103, "index_storage", info.buffers.size(), [&](Serializer::List &list, idx_t i) { + auto &buffers = info.buffers[i]; + for (auto buffer : buffers) { + list.WriteElement(buffer.buffer_ptr, buffer.allocation_size); + } + }); return true; } return false; }); +} + +void WriteAheadLog::WriteCreateIndex(const IndexCatalogEntry &entry) { + WriteAheadLogSerializer serializer(*this, WALType::CREATE_INDEX); + serializer.WriteProperty(101, "index_catalog_entry", &entry); + + // Serialize the index data to the persistent storage and write the metadata. + auto &index_entry = entry.Cast(); + auto &list = index_entry.GetDataTableInfo().GetIndexes(); + SerializeIndex(database, serializer, list, index_entry.name); serializer.End(); } @@ -400,9 +411,25 @@ void WriteAheadLog::WriteUpdate(DataChunk &chunk, const vector &column //===--------------------------------------------------------------------===// // Write ALTER Statement //===--------------------------------------------------------------------===// -void WriteAheadLog::WriteAlter(const AlterInfo &info) { +void WriteAheadLog::WriteAlter(CatalogEntry &entry, const AlterInfo &info) { WriteAheadLogSerializer serializer(*this, WALType::ALTER_INFO); serializer.WriteProperty(101, "info", &info); + + if (!info.IsAddPrimaryKey()) { + return serializer.End(); + } + + auto &table_info = info.Cast(); + auto &constraint_info = table_info.Cast(); + auto &unique = constraint_info.constraint->Cast(); + + auto &table_entry = entry.Cast(); + auto &parent = table_entry.Parent().Cast(); + auto &parent_info = parent.GetStorage().GetDataTableInfo(); + auto &list = parent_info->GetIndexes(); + + auto name = unique.GetName(parent.name); + SerializeIndex(database, serializer, list, name); serializer.End(); } diff --git a/src/duckdb/src/transaction/cleanup_state.cpp b/src/duckdb/src/transaction/cleanup_state.cpp index 2b2c33bb..f9a17f26 100644 --- a/src/duckdb/src/transaction/cleanup_state.cpp +++ b/src/duckdb/src/transaction/cleanup_state.cpp @@ -54,7 +54,6 @@ void CleanupState::CleanupEntry(UndoFlags type, data_ptr_t data) { void CleanupState::CleanupUpdate(UpdateInfo &info) { // remove the update info from the update chain - // first obtain an exclusive lock on the segment info.segment->CleanupUpdate(info); } diff --git a/src/duckdb/src/transaction/commit_state.cpp b/src/duckdb/src/transaction/commit_state.cpp index 821522cb..d4b934d5 100644 --- a/src/duckdb/src/transaction/commit_state.cpp +++ b/src/duckdb/src/transaction/commit_state.cpp @@ -5,6 +5,7 @@ #include "duckdb/catalog/catalog_entry/scalar_macro_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/type_catalog_entry.hpp" #include "duckdb/catalog/catalog_entry/view_catalog_entry.hpp" +#include "duckdb/catalog/catalog_entry/dependency/dependency_entry.hpp" #include "duckdb/catalog/duck_catalog.hpp" #include "duckdb/common/serializer/binary_deserializer.hpp" #include "duckdb/common/serializer/memory_stream.hpp" @@ -16,10 +17,12 @@ #include "duckdb/transaction/append_info.hpp" #include "duckdb/transaction/delete_info.hpp" #include "duckdb/transaction/update_info.hpp" +#include "duckdb/transaction/duck_transaction.hpp" namespace duckdb { -CommitState::CommitState(transaction_t commit_id) : commit_id(commit_id) { +CommitState::CommitState(DuckTransaction &transaction_p, transaction_t commit_id) + : transaction(transaction_p), commit_id(commit_id) { } void CommitState::CommitEntryDrop(CatalogEntry &entry, data_ptr_t dataptr) { @@ -133,24 +136,30 @@ void CommitState::CommitEntryDrop(CatalogEntry &entry, data_ptr_t dataptr) { void CommitState::CommitEntry(UndoFlags type, data_ptr_t data) { switch (type) { case UndoFlags::CATALOG_ENTRY: { - // set the commit timestamp of the catalog entry to the given id - auto catalog_entry = Load(data); - D_ASSERT(catalog_entry->HasParent()); + auto &old_entry = *Load(data); + D_ASSERT(old_entry.HasParent()); - auto &catalog = catalog_entry->ParentCatalog(); + auto &catalog = old_entry.ParentCatalog(); D_ASSERT(catalog.IsDuckCatalog()); + auto &new_entry = old_entry.Parent(); + if (new_entry.type == CatalogType::DEPENDENCY_ENTRY) { + auto &dep = new_entry.Cast(); + if (dep.Side() == DependencyEntryType::SUBJECT) { + new_entry.set->VerifyExistenceOfDependency(commit_id, new_entry); + } + } else if (new_entry.type == CatalogType::DELETED_ENTRY && old_entry.set) { + old_entry.set->CommitDrop(commit_id, transaction.start_time, old_entry); + } // Grab a write lock on the catalog auto &duck_catalog = catalog.Cast(); lock_guard write_lock(duck_catalog.GetWriteLock()); - lock_guard read_lock(catalog_entry->set->GetCatalogLock()); - catalog_entry->set->UpdateTimestamp(catalog_entry->Parent(), commit_id); - if (!StringUtil::CIEquals(catalog_entry->name, catalog_entry->Parent().name)) { - catalog_entry->set->UpdateTimestamp(*catalog_entry, commit_id); - } + lock_guard read_lock(old_entry.set->GetCatalogLock()); + // Set the timestamp of the catalog entry to the given commit_id, marking it as committed + CatalogSet::UpdateTimestamp(old_entry.Parent(), commit_id); // drop any blocks associated with the catalog entry if possible (e.g. in case of a DROP or ALTER) - CommitEntryDrop(*catalog_entry, data + sizeof(CatalogEntry *)); + CommitEntryDrop(old_entry, data + sizeof(CatalogEntry *)); break; } case UndoFlags::INSERT_TUPLE: { @@ -188,16 +197,16 @@ void CommitState::RevertCommit(UndoFlags type, data_ptr_t data) { // set the commit timestamp of the catalog entry to the given id auto catalog_entry = Load(data); D_ASSERT(catalog_entry->HasParent()); - catalog_entry->set->UpdateTimestamp(catalog_entry->Parent(), transaction_id); + CatalogSet::UpdateTimestamp(catalog_entry->Parent(), transaction_id); if (catalog_entry->name != catalog_entry->Parent().name) { - catalog_entry->set->UpdateTimestamp(*catalog_entry, transaction_id); + CatalogSet::UpdateTimestamp(*catalog_entry, transaction_id); } break; } case UndoFlags::INSERT_TUPLE: { auto info = reinterpret_cast(data); // revert this append - info->table->RevertAppend(info->start_row, info->count); + info->table->RevertAppend(transaction, info->start_row, info->count); break; } case UndoFlags::DELETE_TUPLE: { diff --git a/src/duckdb/src/transaction/duck_transaction.cpp b/src/duckdb/src/transaction/duck_transaction.cpp index 21e7b58d..273f256b 100644 --- a/src/duckdb/src/transaction/duck_transaction.cpp +++ b/src/duckdb/src/transaction/duck_transaction.cpp @@ -32,8 +32,8 @@ TransactionData::TransactionData(transaction_t transaction_id_p, transaction_t s DuckTransaction::DuckTransaction(DuckTransactionManager &manager, ClientContext &context_p, transaction_t start_time, transaction_t transaction_id, idx_t catalog_version_p) : Transaction(manager, context_p), start_time(start_time), transaction_id(transaction_id), commit_id(0), - highest_active_query(0), catalog_version(catalog_version_p), transaction_manager(manager), undo_buffer(context_p), - storage(make_uniq(context_p, *this)) { + highest_active_query(0), catalog_version(catalog_version_p), transaction_manager(manager), + undo_buffer(*this, context_p), storage(make_uniq(context_p, *this)) { } DuckTransaction::~DuckTransaction() { @@ -61,17 +61,18 @@ void DuckTransaction::PushCatalogEntry(CatalogEntry &entry, data_ptr_t extra_dat alloc_size += extra_data_size + sizeof(idx_t); } - auto baseptr = undo_buffer.CreateEntry(UndoFlags::CATALOG_ENTRY, alloc_size); + auto undo_entry = undo_buffer.CreateEntry(UndoFlags::CATALOG_ENTRY, alloc_size); + auto ptr = undo_entry.Ptr(); // store the pointer to the catalog entry - Store(&entry, baseptr); + Store(&entry, ptr); if (extra_data_size > 0) { // copy the extra data behind the catalog entry pointer (if any) - baseptr += sizeof(CatalogEntry *); + ptr += sizeof(CatalogEntry *); // first store the extra data size - Store(extra_data_size, baseptr); - baseptr += sizeof(idx_t); + Store(extra_data_size, ptr); + ptr += sizeof(idx_t); // then copy over the actual data - memcpy(baseptr, extra_data, extra_data_size); + memcpy(ptr, extra_data, extra_data_size); } } @@ -91,7 +92,8 @@ void DuckTransaction::PushDelete(DataTable &table, RowVersionManager &info, idx_ alloc_size += sizeof(uint16_t) * count; } - auto delete_info = reinterpret_cast(undo_buffer.CreateEntry(UndoFlags::DELETE_TUPLE, alloc_size)); + auto undo_entry = undo_buffer.CreateEntry(UndoFlags::DELETE_TUPLE, alloc_size); + auto delete_info = reinterpret_cast(undo_entry.Ptr()); delete_info->version_info = &info; delete_info->vector_idx = vector_idx; delete_info->table = &table; @@ -108,30 +110,27 @@ void DuckTransaction::PushDelete(DataTable &table, RowVersionManager &info, idx_ } void DuckTransaction::PushAppend(DataTable &table, idx_t start_row, idx_t row_count) { - auto append_info = - reinterpret_cast(undo_buffer.CreateEntry(UndoFlags::INSERT_TUPLE, sizeof(AppendInfo))); + auto undo_entry = undo_buffer.CreateEntry(UndoFlags::INSERT_TUPLE, sizeof(AppendInfo)); + auto append_info = reinterpret_cast(undo_entry.Ptr()); append_info->table = &table; append_info->start_row = start_row; append_info->count = row_count; } -UpdateInfo *DuckTransaction::CreateUpdateInfo(idx_t type_size, idx_t entries) { - data_ptr_t base_info = undo_buffer.CreateEntry( - UndoFlags::UPDATE_TUPLE, sizeof(UpdateInfo) + (sizeof(sel_t) + type_size) * STANDARD_VECTOR_SIZE); - auto update_info = reinterpret_cast(base_info); - update_info->max = STANDARD_VECTOR_SIZE; - update_info->tuples = reinterpret_cast(base_info + sizeof(UpdateInfo)); - update_info->tuple_data = base_info + sizeof(UpdateInfo) + sizeof(sel_t) * update_info->max; - update_info->version_number = transaction_id; - return update_info; +UndoBufferReference DuckTransaction::CreateUpdateInfo(idx_t type_size, idx_t entries) { + idx_t alloc_size = UpdateInfo::GetAllocSize(type_size); + auto undo_entry = undo_buffer.CreateEntry(UndoFlags::UPDATE_TUPLE, alloc_size); + auto &update_info = UpdateInfo::Get(undo_entry); + UpdateInfo::Initialize(update_info, transaction_id); + return undo_entry; } void DuckTransaction::PushSequenceUsage(SequenceCatalogEntry &sequence, const SequenceData &data) { lock_guard l(sequence_lock); auto entry = sequence_usage.find(sequence); if (entry == sequence_usage.end()) { - auto sequence_ptr = undo_buffer.CreateEntry(UndoFlags::SEQUENCE_VALUE, sizeof(SequenceValue)); - auto sequence_info = reinterpret_cast(sequence_ptr); + auto undo_entry = undo_buffer.CreateEntry(UndoFlags::SEQUENCE_VALUE, sizeof(SequenceValue)); + auto sequence_info = reinterpret_cast(undo_entry.Ptr()); sequence_info->entry = &sequence; sequence_info->usage_count = data.usage_count; sequence_info->counter = data.counter; @@ -248,9 +247,14 @@ ErrorData DuckTransaction::Commit(AttachedDatabase &db, transaction_t new_commit } } -void DuckTransaction::Rollback() noexcept { - storage->Rollback(); - undo_buffer.Rollback(); +ErrorData DuckTransaction::Rollback() { + try { + storage->Rollback(); + undo_buffer.Rollback(); + return ErrorData(); + } catch (std::exception &ex) { + return ErrorData(ex); + } } void DuckTransaction::Cleanup(transaction_t lowest_active_transaction) { @@ -271,23 +275,24 @@ unique_ptr DuckTransaction::TryGetCheckpointLock() { } shared_ptr DuckTransaction::SharedLockTable(DataTableInfo &info) { - lock_guard l(active_locks_lock); + unique_lock transaction_lock(active_locks_lock); auto entry = active_locks.find(info); - if (entry != active_locks.end()) { - // found an existing lock - auto lock_weak_ptr = entry->second; - // check if it is expired - auto lock = lock_weak_ptr.lock(); - if (lock) { - // not expired - return it - return lock; - } + if (entry == active_locks.end()) { + entry = active_locks.insert(entry, make_pair(std::ref(info), make_uniq())); + } + auto &active_table_lock = *entry->second; + transaction_lock.unlock(); // release transaction-level lock before acquiring table-level lock + lock_guard table_lock(active_table_lock.checkpoint_lock_mutex); + auto checkpoint_lock = active_table_lock.checkpoint_lock.lock(); + // check if it is expired (or has never been acquired yet) + if (checkpoint_lock) { + // not expired - return it + return checkpoint_lock; } // no existing lock - obtain it - auto table_lock = info.GetSharedLock(); - auto checkpoint_lock = make_shared_ptr(std::move(table_lock)); - // insert it into the active locks and return it - active_locks.insert(make_pair(std::ref(info), checkpoint_lock)); + checkpoint_lock = make_shared_ptr(info.GetSharedLock()); + // store it for future reference + active_table_lock.checkpoint_lock = checkpoint_lock; return checkpoint_lock; } diff --git a/src/duckdb/src/transaction/duck_transaction_manager.cpp b/src/duckdb/src/transaction/duck_transaction_manager.cpp index 83558ffa..15248dab 100644 --- a/src/duckdb/src/transaction/duck_transaction_manager.cpp +++ b/src/duckdb/src/transaction/duck_transaction_manager.cpp @@ -173,9 +173,8 @@ void DuckTransactionManager::Checkpoint(ClientContext &context, bool force) { lock = checkpoint_lock.TryGetExclusiveLock(); if (!lock) { // we could not manage to get the lock - cancel - throw TransactionException( - "Cannot CHECKPOINT: there are other write transactions active. Use FORCE CHECKPOINT to abort " - "the other transactions and force a checkpoint"); + throw TransactionException("Cannot CHECKPOINT: there are other write transactions active. Try using FORCE " + "CHECKPOINT to wait until all active transactions are finished"); } } else { @@ -262,7 +261,11 @@ ErrorData DuckTransactionManager::CommitTransaction(ClientContext &context, Tran // commit unsuccessful: rollback the transaction instead checkpoint_decision = CheckpointDecision(error.Message()); transaction.commit_id = 0; - transaction.Rollback(); + auto rollback_error = transaction.Rollback(); + if (rollback_error.HasError()) { + throw FatalException("Failed to rollback transaction. Cannot continue operation.\nError: %s", + rollback_error.Message()); + } } else { // check if catalog changes were made if (transaction.catalog_version >= TRANSACTION_ID_START) { @@ -278,7 +281,8 @@ ErrorData DuckTransactionManager::CommitTransaction(ClientContext &context, Tran // commit successful: remove the transaction id from the list of active transactions // potentially resulting in garbage collection - bool store_transaction = undo_properties.has_updates || undo_properties.has_catalog_changes || error.HasError(); + bool store_transaction = undo_properties.has_updates || undo_properties.has_index_deletes || + undo_properties.has_catalog_changes || error.HasError(); RemoveTransaction(transaction, store_transaction); // now perform a checkpoint if (1) we are able to checkpoint, and (2) the WAL has reached sufficient size to // checkpoint @@ -302,11 +306,15 @@ void DuckTransactionManager::RollbackTransaction(Transaction &transaction_p) { lock_guard lock(transaction_lock); // rollback the transaction - transaction.Rollback(); + auto error = transaction.Rollback(); // remove the transaction id from the list of active transactions // potentially resulting in garbage collection RemoveTransaction(transaction); + + if (error.HasError()) { + throw FatalException("Failed to rollback transaction. Cannot continue operation.\nError: %s", error.Message()); + } } void DuckTransactionManager::RemoveTransaction(DuckTransaction &transaction) noexcept { @@ -414,6 +422,10 @@ idx_t DuckTransactionManager::GetCatalogVersion(Transaction &transaction_p) { void DuckTransactionManager::PushCatalogEntry(Transaction &transaction_p, duckdb::CatalogEntry &entry, duckdb::data_ptr_t extra_data, duckdb::idx_t extra_data_size) { auto &transaction = transaction_p.Cast(); + if (!db.IsSystem() && !db.IsTemporary() && transaction.IsReadOnly()) { + throw InternalException("Attempting to do catalog changes on a transaction that is read-only - " + "this should not be possible"); + } transaction.catalog_version = ++last_uncommitted_catalog_version; transaction.PushCatalogEntry(entry, extra_data, extra_data_size); } diff --git a/src/duckdb/src/transaction/rollback_state.cpp b/src/duckdb/src/transaction/rollback_state.cpp index f7d1410c..335c35ef 100644 --- a/src/duckdb/src/transaction/rollback_state.cpp +++ b/src/duckdb/src/transaction/rollback_state.cpp @@ -13,10 +13,13 @@ namespace duckdb { +RollbackState::RollbackState(DuckTransaction &transaction_p) : transaction(transaction_p) { +} + void RollbackState::RollbackEntry(UndoFlags type, data_ptr_t data) { switch (type) { case UndoFlags::CATALOG_ENTRY: { - // undo this catalog entry + // Load and undo the catalog entry. auto catalog_entry = Load(data); D_ASSERT(catalog_entry->set); catalog_entry->set->Undo(*catalog_entry); @@ -25,7 +28,7 @@ void RollbackState::RollbackEntry(UndoFlags type, data_ptr_t data) { case UndoFlags::INSERT_TUPLE: { auto info = reinterpret_cast(data); // revert the append in the base table - info->table->RevertAppend(info->start_row, info->count); + info->table->RevertAppend(transaction, info->start_row, info->count); break; } case UndoFlags::DELETE_TUPLE: { diff --git a/src/duckdb/src/transaction/transaction_context.cpp b/src/duckdb/src/transaction/transaction_context.cpp index 9fc36814..67f8cfec 100644 --- a/src/duckdb/src/transaction/transaction_context.cpp +++ b/src/duckdb/src/transaction/transaction_context.cpp @@ -74,11 +74,19 @@ void TransactionContext::Rollback(optional_ptr error) { } auto transaction = std::move(current_transaction); ClearTransaction(); - transaction->Rollback(); + ErrorData rollback_error; + try { + transaction->Rollback(); + } catch (std::exception &ex) { + rollback_error = ErrorData(ex); + } // Notify any registered state of transaction rollback for (auto const &s : context.registered_state->States()) { s->TransactionRollback(*transaction, context, error); } + if (rollback_error.HasError()) { + rollback_error.Throw(); + } } void TransactionContext::ClearTransaction() { diff --git a/src/duckdb/src/transaction/undo_buffer.cpp b/src/duckdb/src/transaction/undo_buffer.cpp index 1e61bd9c..e352ff47 100644 --- a/src/duckdb/src/transaction/undo_buffer.cpp +++ b/src/duckdb/src/transaction/undo_buffer.cpp @@ -13,32 +13,36 @@ #include "duckdb/execution/index/bound_index.hpp" #include "duckdb/transaction/wal_write_state.hpp" #include "duckdb/transaction/delete_info.hpp" +#include "duckdb/storage/buffer_manager.hpp" namespace duckdb { constexpr uint32_t UNDO_ENTRY_HEADER_SIZE = sizeof(UndoFlags) + sizeof(uint32_t); -UndoBuffer::UndoBuffer(ClientContext &context_p) : allocator(BufferAllocator::Get(context_p)) { +UndoBuffer::UndoBuffer(DuckTransaction &transaction_p, ClientContext &context_p) + : transaction(transaction_p), allocator(BufferManager::GetBufferManager(context_p)) { } -data_ptr_t UndoBuffer::CreateEntry(UndoFlags type, idx_t len) { - D_ASSERT(len <= NumericLimits::Maximum()); - len = AlignValue(len); - idx_t needed_space = len + UNDO_ENTRY_HEADER_SIZE; - auto data = allocator.Allocate(needed_space); +UndoBufferReference UndoBuffer::CreateEntry(UndoFlags type, idx_t len) { + idx_t alloc_len = AlignValue(len + UNDO_ENTRY_HEADER_SIZE); + auto handle = allocator.Allocate(alloc_len); + auto data = handle.Ptr(); + // write the undo entry metadata Store(type, data); data += sizeof(UndoFlags); - Store(UnsafeNumericCast(len), data); - data += sizeof(uint32_t); - return data; + Store(UnsafeNumericCast(alloc_len - UNDO_ENTRY_HEADER_SIZE), data); + // increment the position of the header past the undo entry metadata + handle.position += UNDO_ENTRY_HEADER_SIZE; + return handle; } template void UndoBuffer::IterateEntries(UndoBuffer::IteratorState &state, T &&callback) { // iterate in insertion order: start with the tail - state.current = allocator.GetTail(); + state.current = allocator.tail.get(); while (state.current) { - state.start = state.current->data.get(); - state.end = state.start + state.current->current_position; + state.handle = allocator.buffer_manager.Pin(state.current->block); + state.start = state.handle.Ptr(); + state.end = state.start + state.current->position; while (state.start < state.end) { UndoFlags type = Load(state.start); state.start += sizeof(UndoFlags); @@ -55,11 +59,11 @@ void UndoBuffer::IterateEntries(UndoBuffer::IteratorState &state, T &&callback) template void UndoBuffer::IterateEntries(UndoBuffer::IteratorState &state, UndoBuffer::IteratorState &end_state, T &&callback) { // iterate in insertion order: start with the tail - state.current = allocator.GetTail(); + state.current = allocator.tail.get(); while (state.current) { - state.start = state.current->data.get(); - state.end = - state.current == end_state.current ? end_state.start : state.start + state.current->current_position; + state.handle = allocator.buffer_manager.Pin(state.current->block); + state.start = state.handle.Ptr(); + state.end = state.current == end_state.current ? end_state.start : state.start + state.current->position; while (state.start < state.end) { auto type = Load(state.start); state.start += sizeof(UndoFlags); @@ -79,10 +83,11 @@ void UndoBuffer::IterateEntries(UndoBuffer::IteratorState &state, UndoBuffer::It template void UndoBuffer::ReverseIterateEntries(T &&callback) { // iterate in reverse insertion order: start with the head - auto current = allocator.GetHead(); + auto current = allocator.head.get(); while (current) { - data_ptr_t start = current->data.get(); - data_ptr_t end = start + current->current_position; + auto handle = allocator.buffer_manager.Pin(current->block); + data_ptr_t start = handle.Ptr(); + data_ptr_t end = start + current->position; // create a vector with all nodes in this chunk vector> nodes; while (start < end) { @@ -103,7 +108,7 @@ void UndoBuffer::ReverseIterateEntries(T &&callback) { bool UndoBuffer::ChangesMade() { // we need to search for any index creation entries - return !allocator.IsEmpty(); + return allocator.head.get(); } UndoBufferProperties UndoBuffer::GetProperties() { @@ -111,9 +116,9 @@ UndoBufferProperties UndoBuffer::GetProperties() { if (!ChangesMade()) { return properties; } - auto node = allocator.GetHead(); + auto node = allocator.head.get(); while (node) { - properties.estimated_size += node->current_position; + properties.estimated_size += node->position; node = node->next.get(); } @@ -129,6 +134,9 @@ UndoBufferProperties UndoBuffer::GetProperties() { if (info->is_consecutive) { properties.estimated_size += sizeof(row_t) * info->count; } + if (info->table->HasIndexes()) { + properties.has_index_deletes = true; + } properties.has_deletes = true; break; } @@ -178,25 +186,25 @@ void UndoBuffer::Cleanup(transaction_t lowest_active_transaction) { } void UndoBuffer::WriteToWAL(WriteAheadLog &wal, optional_ptr commit_state) { - WALWriteState state(wal, commit_state); + WALWriteState state(transaction, wal, commit_state); UndoBuffer::IteratorState iterator_state; IterateEntries(iterator_state, [&](UndoFlags type, data_ptr_t data) { state.CommitEntry(type, data); }); } void UndoBuffer::Commit(UndoBuffer::IteratorState &iterator_state, transaction_t commit_id) { - CommitState state(commit_id); + CommitState state(transaction, commit_id); IterateEntries(iterator_state, [&](UndoFlags type, data_ptr_t data) { state.CommitEntry(type, data); }); } void UndoBuffer::RevertCommit(UndoBuffer::IteratorState &end_state, transaction_t transaction_id) { - CommitState state(transaction_id); + CommitState state(transaction, transaction_id); UndoBuffer::IteratorState start_state; IterateEntries(start_state, end_state, [&](UndoFlags type, data_ptr_t data) { state.RevertCommit(type, data); }); } -void UndoBuffer::Rollback() noexcept { +void UndoBuffer::Rollback() { // rollback needs to be performed in reverse - RollbackState state; + RollbackState state(transaction); ReverseIterateEntries([&](UndoFlags type, data_ptr_t data) { state.RollbackEntry(type, data); }); } } // namespace duckdb diff --git a/src/duckdb/src/transaction/undo_buffer_allocator.cpp b/src/duckdb/src/transaction/undo_buffer_allocator.cpp new file mode 100644 index 00000000..20e3bdf1 --- /dev/null +++ b/src/duckdb/src/transaction/undo_buffer_allocator.cpp @@ -0,0 +1,72 @@ +#include "duckdb/transaction/undo_buffer_allocator.hpp" +#include "duckdb/storage/buffer_manager.hpp" + +namespace duckdb { + +UndoBufferEntry::~UndoBufferEntry() { + if (next) { + auto current_next = std::move(next); + while (current_next) { + current_next = std::move(current_next->next); + } + } +} +UndoBufferPointer UndoBufferReference::GetBufferPointer() { + return UndoBufferPointer(*entry, position); +} + +UndoBufferReference UndoBufferPointer::Pin() const { + if (!entry) { + throw InternalException("UndoBufferPointer::Pin called but no entry was found"); + } + D_ASSERT(entry->capacity >= position); + auto handle = entry->buffer_manager.Pin(entry->block); + return UndoBufferReference(*entry, std::move(handle), position); +} + +UndoBufferAllocator::UndoBufferAllocator(BufferManager &buffer_manager) : buffer_manager(buffer_manager) { +} + +UndoBufferReference UndoBufferAllocator::Allocate(idx_t alloc_len) { + D_ASSERT(!head || head->position <= head->capacity); + BufferHandle handle; + if (!head || head->position + alloc_len > head->capacity) { + // no space in current head - allocate a new block + auto block_size = buffer_manager.GetBlockSize(); + ; + idx_t capacity; + if (!head && alloc_len <= 4096) { + capacity = 4096; + } else { + capacity = block_size; + } + if (capacity < alloc_len) { + capacity = NextPowerOfTwo(alloc_len); + } + auto entry = make_uniq(buffer_manager); + if (capacity < block_size) { + entry->block = buffer_manager.RegisterSmallMemory(MemoryTag::TRANSACTION, capacity); + handle = buffer_manager.Pin(entry->block); + } else { + handle = buffer_manager.Allocate(MemoryTag::TRANSACTION, capacity, false); + entry->block = handle.GetBlockHandle(); + } + entry->capacity = capacity; + entry->position = 0; + // add block to the chain + if (head) { + head->prev = entry.get(); + entry->next = std::move(head); + } else { + tail = entry.get(); + } + head = std::move(entry); + } else { + handle = buffer_manager.Pin(head->block); + } + idx_t current_position = head->position; + head->position += alloc_len; + return UndoBufferReference(*head, std::move(handle), current_position); +} + +} // namespace duckdb diff --git a/src/duckdb/src/transaction/wal_write_state.cpp b/src/duckdb/src/transaction/wal_write_state.cpp index b700005e..8bb1702a 100644 --- a/src/duckdb/src/transaction/wal_write_state.cpp +++ b/src/duckdb/src/transaction/wal_write_state.cpp @@ -22,8 +22,9 @@ namespace duckdb { -WALWriteState::WALWriteState(WriteAheadLog &log, optional_ptr commit_state) - : log(log), commit_state(commit_state), current_table_info(nullptr) { +WALWriteState::WALWriteState(DuckTransaction &transaction_p, WriteAheadLog &log, + optional_ptr commit_state) + : transaction(transaction_p), log(log), commit_state(commit_state), current_table_info(nullptr) { } void WALWriteState::SwitchTable(DataTableInfo *table_info, UndoFlags new_op) { @@ -63,7 +64,7 @@ void WALWriteState::WriteCatalogEntry(CatalogEntry &entry, data_ptr_t dataptr) { deserializer.End(); auto &alter_info = parse_info->Cast(); - log.WriteAlter(alter_info); + log.WriteAlter(entry, alter_info); } else { switch (parent.type) { case CatalogType::TABLE_ENTRY: @@ -217,19 +218,20 @@ void WALWriteState::WriteUpdate(UpdateInfo &info) { // write the row ids into the chunk auto row_ids = FlatVector::GetData(update_chunk->data[1]); idx_t start = column_data.start + info.vector_index * STANDARD_VECTOR_SIZE; + auto tuples = info.GetTuples(); for (idx_t i = 0; i < info.N; i++) { - row_ids[info.tuples[i]] = UnsafeNumericCast(start + info.tuples[i]); + row_ids[tuples[i]] = UnsafeNumericCast(start + tuples[i]); } if (column_data.type.id() == LogicalTypeId::VALIDITY) { // zero-initialize the booleans // FIXME: this is only required because of NullValue in Vector::Serialize... auto booleans = FlatVector::GetData(update_chunk->data[0]); for (idx_t i = 0; i < info.N; i++) { - auto idx = info.tuples[i]; + auto idx = tuples[i]; booleans[idx] = false; } } - SelectionVector sel(info.tuples); + SelectionVector sel(tuples); update_chunk->Slice(sel, info.N); // construct the column index path @@ -259,7 +261,7 @@ void WALWriteState::CommitEntry(UndoFlags type, data_ptr_t data) { // append: auto info = reinterpret_cast(data); if (!info->table->IsTemporary()) { - info->table->WriteToLog(log, info->start_row, info->count, commit_state.get()); + info->table->WriteToLog(transaction, log, info->start_row, info->count, commit_state.get()); } break; } diff --git a/src/duckdb/src/verification/copied_statement_verifier.cpp b/src/duckdb/src/verification/copied_statement_verifier.cpp index 6b603f3b..ff7825bd 100644 --- a/src/duckdb/src/verification/copied_statement_verifier.cpp +++ b/src/duckdb/src/verification/copied_statement_verifier.cpp @@ -2,12 +2,15 @@ namespace duckdb { -CopiedStatementVerifier::CopiedStatementVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::COPIED, "Copied", std::move(statement_p)) { +CopiedStatementVerifier::CopiedStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters) + : StatementVerifier(VerificationType::COPIED, "Copied", std::move(statement_p), parameters) { } -unique_ptr CopiedStatementVerifier::Create(const SQLStatement &statement) { - return make_uniq(statement.Copy()); +unique_ptr +CopiedStatementVerifier::Create(const SQLStatement &statement, + optional_ptr> parameters) { + return make_uniq(statement.Copy(), parameters); } } // namespace duckdb diff --git a/src/duckdb/src/verification/deserialized_statement_verifier.cpp b/src/duckdb/src/verification/deserialized_statement_verifier.cpp index dcbc1780..a841d64b 100644 --- a/src/duckdb/src/verification/deserialized_statement_verifier.cpp +++ b/src/duckdb/src/verification/deserialized_statement_verifier.cpp @@ -5,20 +5,22 @@ #include "duckdb/common/serializer/memory_stream.hpp" namespace duckdb { -DeserializedStatementVerifier::DeserializedStatementVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::DESERIALIZED, "Deserialized", std::move(statement_p)) { +DeserializedStatementVerifier::DeserializedStatementVerifier( + unique_ptr statement_p, optional_ptr> parameters) + : StatementVerifier(VerificationType::DESERIALIZED, "Deserialized", std::move(statement_p), parameters) { } -unique_ptr DeserializedStatementVerifier::Create(const SQLStatement &statement) { +unique_ptr +DeserializedStatementVerifier::Create(const SQLStatement &statement, + optional_ptr> parameters) { auto &select_stmt = statement.Cast(); - MemoryStream stream; BinarySerializer::Serialize(select_stmt, stream); stream.Rewind(); auto result = BinaryDeserializer::Deserialize(stream); - return make_uniq(std::move(result)); + return make_uniq(std::move(result), parameters); } } // namespace duckdb diff --git a/src/duckdb/src/verification/external_statement_verifier.cpp b/src/duckdb/src/verification/external_statement_verifier.cpp index 5e9655d5..0d3e40da 100644 --- a/src/duckdb/src/verification/external_statement_verifier.cpp +++ b/src/duckdb/src/verification/external_statement_verifier.cpp @@ -2,12 +2,15 @@ namespace duckdb { -ExternalStatementVerifier::ExternalStatementVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::EXTERNAL, "External", std::move(statement_p)) { +ExternalStatementVerifier::ExternalStatementVerifier( + unique_ptr statement_p, optional_ptr> parameters) + : StatementVerifier(VerificationType::EXTERNAL, "External", std::move(statement_p), parameters) { } -unique_ptr ExternalStatementVerifier::Create(const SQLStatement &statement) { - return make_uniq(statement.Copy()); +unique_ptr +ExternalStatementVerifier::Create(const SQLStatement &statement, + optional_ptr> parameters) { + return make_uniq(statement.Copy(), parameters); } } // namespace duckdb diff --git a/src/duckdb/src/verification/fetch_row_verifier.cpp b/src/duckdb/src/verification/fetch_row_verifier.cpp index a3be8111..5a4d4ba2 100644 --- a/src/duckdb/src/verification/fetch_row_verifier.cpp +++ b/src/duckdb/src/verification/fetch_row_verifier.cpp @@ -2,12 +2,15 @@ namespace duckdb { -FetchRowVerifier::FetchRowVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::FETCH_ROW_AS_SCAN, "FetchRow as Scan", std::move(statement_p)) { +FetchRowVerifier::FetchRowVerifier(unique_ptr statement_p, + optional_ptr> parameters) + : StatementVerifier(VerificationType::FETCH_ROW_AS_SCAN, "FetchRow as Scan", std::move(statement_p), parameters) { } -unique_ptr FetchRowVerifier::Create(const SQLStatement &statement_p) { - return make_uniq(statement_p.Copy()); +unique_ptr +FetchRowVerifier::Create(const SQLStatement &statement_p, + optional_ptr> parameters) { + return make_uniq(statement_p.Copy(), parameters); } } // namespace duckdb diff --git a/src/duckdb/src/verification/no_operator_caching_verifier.cpp b/src/duckdb/src/verification/no_operator_caching_verifier.cpp index 10540931..0ca57036 100644 --- a/src/duckdb/src/verification/no_operator_caching_verifier.cpp +++ b/src/duckdb/src/verification/no_operator_caching_verifier.cpp @@ -2,12 +2,16 @@ namespace duckdb { -NoOperatorCachingVerifier::NoOperatorCachingVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::NO_OPERATOR_CACHING, "No operator caching", std::move(statement_p)) { +NoOperatorCachingVerifier::NoOperatorCachingVerifier( + unique_ptr statement_p, optional_ptr> parameters) + : StatementVerifier(VerificationType::NO_OPERATOR_CACHING, "No operator caching", std::move(statement_p), + parameters) { } -unique_ptr NoOperatorCachingVerifier::Create(const SQLStatement &statement_p) { - return make_uniq(statement_p.Copy()); +unique_ptr +NoOperatorCachingVerifier::Create(const SQLStatement &statement_p, + optional_ptr> parameters) { + return make_uniq(statement_p.Copy(), parameters); } } // namespace duckdb diff --git a/src/duckdb/src/verification/parsed_statement_verifier.cpp b/src/duckdb/src/verification/parsed_statement_verifier.cpp index a47141f9..ff9075dc 100644 --- a/src/duckdb/src/verification/parsed_statement_verifier.cpp +++ b/src/duckdb/src/verification/parsed_statement_verifier.cpp @@ -4,11 +4,14 @@ namespace duckdb { -ParsedStatementVerifier::ParsedStatementVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::PARSED, "Parsed", std::move(statement_p)) { +ParsedStatementVerifier::ParsedStatementVerifier(unique_ptr statement_p, + optional_ptr> parameters) + : StatementVerifier(VerificationType::PARSED, "Parsed", std::move(statement_p), parameters) { } -unique_ptr ParsedStatementVerifier::Create(const SQLStatement &statement) { +unique_ptr +ParsedStatementVerifier::Create(const SQLStatement &statement, + optional_ptr> parameters) { auto query_str = statement.ToString(); Parser parser; try { @@ -18,7 +21,7 @@ unique_ptr ParsedStatementVerifier::Create(const SQLStatement } D_ASSERT(parser.statements.size() == 1); D_ASSERT(parser.statements[0]->type == StatementType::SELECT_STATEMENT); - return make_uniq(std::move(parser.statements[0])); + return make_uniq(std::move(parser.statements[0]), parameters); } } // namespace duckdb diff --git a/src/duckdb/src/verification/prepared_statement_verifier.cpp b/src/duckdb/src/verification/prepared_statement_verifier.cpp index 15a11d56..9199bed5 100644 --- a/src/duckdb/src/verification/prepared_statement_verifier.cpp +++ b/src/duckdb/src/verification/prepared_statement_verifier.cpp @@ -9,12 +9,15 @@ namespace duckdb { -PreparedStatementVerifier::PreparedStatementVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::PREPARED, "Prepared", std::move(statement_p)) { +PreparedStatementVerifier::PreparedStatementVerifier( + unique_ptr statement_p, optional_ptr> parameters) + : StatementVerifier(VerificationType::PREPARED, "Prepared", std::move(statement_p), parameters) { } -unique_ptr PreparedStatementVerifier::Create(const SQLStatement &statement) { - return make_uniq(statement.Copy()); +unique_ptr +PreparedStatementVerifier::Create(const SQLStatement &statement, + optional_ptr> parameters) { + return make_uniq(statement.Copy(), parameters); } void PreparedStatementVerifier::Extract() { @@ -76,18 +79,19 @@ void PreparedStatementVerifier::ConvertConstants(unique_ptr &c bool PreparedStatementVerifier::Run( ClientContext &context, const string &query, - const std::function(const string &, unique_ptr)> &run) { + const std::function(const string &, unique_ptr, + optional_ptr>)> &run) { bool failed = false; // verify that we can extract all constants from the query and run the query as a prepared statement // create the PREPARE and EXECUTE statements Extract(); // execute the prepared statements try { - auto prepare_result = run(string(), std::move(prepare_statement)); + auto prepare_result = run(string(), std::move(prepare_statement), parameters); if (prepare_result->HasError()) { prepare_result->ThrowError("Failed prepare during verify: "); } - auto execute_result = run(string(), std::move(execute_statement)); + auto execute_result = run(string(), std::move(execute_statement), parameters); if (execute_result->HasError()) { execute_result->ThrowError("Failed execute during verify: "); } @@ -99,7 +103,7 @@ bool PreparedStatementVerifier::Run( } failed = true; } - run(string(), std::move(dealloc_statement)); + run(string(), std::move(dealloc_statement), parameters); context.interrupted = false; return failed; diff --git a/src/duckdb/src/verification/statement_verifier.cpp b/src/duckdb/src/verification/statement_verifier.cpp index c3c97158..fb8fc71a 100644 --- a/src/duckdb/src/verification/statement_verifier.cpp +++ b/src/duckdb/src/verification/statement_verifier.cpp @@ -14,37 +14,41 @@ namespace duckdb { -StatementVerifier::StatementVerifier(VerificationType type, string name, unique_ptr statement_p) +StatementVerifier::StatementVerifier(VerificationType type, string name, unique_ptr statement_p, + optional_ptr> parameters_p) : type(type), name(std::move(name)), - statement(unique_ptr_cast(std::move(statement_p))), + statement(unique_ptr_cast(std::move(statement_p))), parameters(parameters_p), select_list(statement->node->GetSelectList()) { } -StatementVerifier::StatementVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::ORIGINAL, "Original", std::move(statement_p)) { +StatementVerifier::StatementVerifier(unique_ptr statement_p, + optional_ptr> parameters) + : StatementVerifier(VerificationType::ORIGINAL, "Original", std::move(statement_p), parameters) { } StatementVerifier::~StatementVerifier() noexcept { } -unique_ptr StatementVerifier::Create(VerificationType type, const SQLStatement &statement_p) { +unique_ptr +StatementVerifier::Create(VerificationType type, const SQLStatement &statement_p, + optional_ptr> parameters) { switch (type) { case VerificationType::COPIED: - return CopiedStatementVerifier::Create(statement_p); + return CopiedStatementVerifier::Create(statement_p, parameters); case VerificationType::DESERIALIZED: - return DeserializedStatementVerifier::Create(statement_p); + return DeserializedStatementVerifier::Create(statement_p, parameters); case VerificationType::PARSED: - return ParsedStatementVerifier::Create(statement_p); + return ParsedStatementVerifier::Create(statement_p, parameters); case VerificationType::UNOPTIMIZED: - return UnoptimizedStatementVerifier::Create(statement_p); + return UnoptimizedStatementVerifier::Create(statement_p, parameters); case VerificationType::NO_OPERATOR_CACHING: - return NoOperatorCachingVerifier::Create(statement_p); + return NoOperatorCachingVerifier::Create(statement_p, parameters); case VerificationType::PREPARED: - return PreparedStatementVerifier::Create(statement_p); + return PreparedStatementVerifier::Create(statement_p, parameters); case VerificationType::EXTERNAL: - return ExternalStatementVerifier::Create(statement_p); + return ExternalStatementVerifier::Create(statement_p, parameters); case VerificationType::FETCH_ROW_AS_SCAN: - return FetchRowVerifier::Create(statement_p); + return FetchRowVerifier::Create(statement_p, parameters); case VerificationType::INVALID: default: throw InternalException("Invalid statement verification type!"); @@ -104,7 +108,8 @@ void StatementVerifier::CheckExpressions() const { bool StatementVerifier::Run( ClientContext &context, const string &query, - const std::function(const string &, unique_ptr)> &run) { + const std::function(const string &, unique_ptr, + optional_ptr>)> &run) { bool failed = false; context.interrupted = false; @@ -113,7 +118,7 @@ bool StatementVerifier::Run( context.config.force_external = ForceExternal(); context.config.force_fetch_row = ForceFetchRow(); try { - auto result = run(query, std::move(statement)); + auto result = run(query, std::move(statement), parameters); if (result->HasError()) { failed = true; } diff --git a/src/duckdb/src/verification/unoptimized_statement_verifier.cpp b/src/duckdb/src/verification/unoptimized_statement_verifier.cpp index b0f27402..fd2dd1f7 100644 --- a/src/duckdb/src/verification/unoptimized_statement_verifier.cpp +++ b/src/duckdb/src/verification/unoptimized_statement_verifier.cpp @@ -2,12 +2,15 @@ namespace duckdb { -UnoptimizedStatementVerifier::UnoptimizedStatementVerifier(unique_ptr statement_p) - : StatementVerifier(VerificationType::UNOPTIMIZED, "Unoptimized", std::move(statement_p)) { +UnoptimizedStatementVerifier::UnoptimizedStatementVerifier( + unique_ptr statement_p, optional_ptr> parameters) + : StatementVerifier(VerificationType::UNOPTIMIZED, "Unoptimized", std::move(statement_p), parameters) { } -unique_ptr UnoptimizedStatementVerifier::Create(const SQLStatement &statement_p) { - return make_uniq(statement_p.Copy()); +unique_ptr +UnoptimizedStatementVerifier::Create(const SQLStatement &statement_p, + optional_ptr> parameters) { + return make_uniq(statement_p.Copy(), parameters); } } // namespace duckdb diff --git a/src/duckdb/third_party/brotli/common/brotli_platform.h b/src/duckdb/third_party/brotli/common/brotli_platform.h index e5fa77b4..b24bef2d 100644 --- a/src/duckdb/third_party/brotli/common/brotli_platform.h +++ b/src/duckdb/third_party/brotli/common/brotli_platform.h @@ -540,4 +540,4 @@ T __brotli_swap_tmp = (A)[(I)]; \ #endif } } -#endif /* BROTLI_COMMON_PLATFORM_H_ */ \ No newline at end of file +#endif /* BROTLI_COMMON_PLATFORM_H_ */ diff --git a/src/duckdb/third_party/brotli/dec/decode.cpp b/src/duckdb/third_party/brotli/dec/decode.cpp index 1ad9ac1a..2ee17d69 100644 --- a/src/duckdb/third_party/brotli/dec/decode.cpp +++ b/src/duckdb/third_party/brotli/dec/decode.cpp @@ -2755,4 +2755,4 @@ void InverseMoveToFrontTransformForTest(uint8_t *v, brotli_reg_t l, BrotliDecode } #endif -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/brotli/enc/memory.cpp b/src/duckdb/third_party/brotli/enc/memory.cpp index a4c8b8db..8a5c6712 100644 --- a/src/duckdb/third_party/brotli/enc/memory.cpp +++ b/src/duckdb/third_party/brotli/enc/memory.cpp @@ -64,7 +64,7 @@ void duckdb_brotli::BrotliWipeOutMemoryManager(MemoryManager* m) { #else /* BROTLI_ENCODER_EXIT_ON_OOM */ -static void SortPointers(void** items, const size_t n) { +void SortPointers(void** items, const size_t n) { /* Shell sort. */ /* TODO(eustas): fine-tune for "many slots" case */ static const size_t gaps[] = {23, 10, 4, 1}; @@ -135,7 +135,7 @@ static void CollectGarbagePointers(MemoryManager* m) { } } -void* BrotliAllocate(MemoryManager* m, size_t n) { +void* duckdb_brotli::BrotliAllocate(MemoryManager* m, size_t n) { void* result = m->alloc_func(m->opaque, n); if (!result) { m->is_oom = BROTLI_TRUE; @@ -146,14 +146,14 @@ void* BrotliAllocate(MemoryManager* m, size_t n) { return result; } -void BrotliFree(MemoryManager* m, void* p) { +void duckdb_brotli::BrotliFree(MemoryManager* m, void* p) { if (!p) return; m->free_func(m->opaque, p); if (m->new_freed == MAX_NEW_FREED) CollectGarbagePointers(m); m->pointers[NEW_FREED_OFFSET + (m->new_freed++)] = p; } -void BrotliWipeOutMemoryManager(MemoryManager* m) { +void duckdb_brotli::BrotliWipeOutMemoryManager(MemoryManager* m) { size_t i; CollectGarbagePointers(m); /* Now all unfreed pointers are in perm-allocated list. */ diff --git a/src/duckdb/third_party/fsst/libfsst.cpp b/src/duckdb/third_party/fsst/libfsst.cpp index 684471de..802aff55 100644 --- a/src/duckdb/third_party/fsst/libfsst.cpp +++ b/src/duckdb/third_party/fsst/libfsst.cpp @@ -503,4 +503,4 @@ extern "C" duckdb_fsst_decoder_t duckdb_fsst_decoder(duckdb_fsst_encoder_t *enco u32 cnt2 = duckdb_fsst_import(&decoder, buf); assert(cnt1 == cnt2); (void) cnt1; (void) cnt2; return decoder; -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/hyperloglog/sds.cpp b/src/duckdb/third_party/hyperloglog/sds.cpp index fa402a69..4bb827ea 100644 --- a/src/duckdb/third_party/hyperloglog/sds.cpp +++ b/src/duckdb/third_party/hyperloglog/sds.cpp @@ -1112,4 +1112,4 @@ void *sdmalloc(size_t size) { return malloc(size); } void *sdrealloc(void *ptr, size_t size) { return realloc(ptr,size); } void sdfree(void *ptr) { free(ptr); } -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/hyperloglog/sds.hpp b/src/duckdb/third_party/hyperloglog/sds.hpp index 274e4b1c..69d6be7a 100644 --- a/src/duckdb/third_party/hyperloglog/sds.hpp +++ b/src/duckdb/third_party/hyperloglog/sds.hpp @@ -281,4 +281,4 @@ int sdsTest(int argc, char *argv[]); } -#endif \ No newline at end of file +#endif diff --git a/src/duckdb/third_party/libpg_query/include/common/keywords.hpp b/src/duckdb/third_party/libpg_query/include/common/keywords.hpp index ba5f6095..bfd13c5b 100644 --- a/src/duckdb/third_party/libpg_query/include/common/keywords.hpp +++ b/src/duckdb/third_party/libpg_query/include/common/keywords.hpp @@ -31,4 +31,4 @@ typedef struct PGScanKeyword { } PGScanKeyword; const PGScanKeyword *ScanKeywordLookup(const char *text, const PGScanKeyword *keywords, int num_keywords); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/datatype/timestamp.hpp b/src/duckdb/third_party/libpg_query/include/datatype/timestamp.hpp index caba3137..f05071b0 100644 --- a/src/duckdb/third_party/libpg_query/include/datatype/timestamp.hpp +++ b/src/duckdb/third_party/libpg_query/include/datatype/timestamp.hpp @@ -48,4 +48,4 @@ typedef struct { int32_t day; /* days, after time for alignment */ int32_t month; /* months and years, after time for alignment */ } PGInterval; -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/mb/pg_wchar.hpp b/src/duckdb/third_party/libpg_query/include/mb/pg_wchar.hpp index fc17c61b..8110dd7f 100644 --- a/src/duckdb/third_party/libpg_query/include/mb/pg_wchar.hpp +++ b/src/duckdb/third_party/libpg_query/include/mb/pg_wchar.hpp @@ -25,4 +25,4 @@ */ namespace duckdb_libpgquery { typedef unsigned int pg_wchar; -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/nodes/bitmapset.hpp b/src/duckdb/third_party/libpg_query/include/nodes/bitmapset.hpp index 3f5859d4..109171bc 100644 --- a/src/duckdb/third_party/libpg_query/include/nodes/bitmapset.hpp +++ b/src/duckdb/third_party/libpg_query/include/nodes/bitmapset.hpp @@ -99,4 +99,4 @@ int bms_next_member(const PGBitmapset *a, int prevbit); /* support for hashtables using Bitmapsets as keys: */ uint32_t bms_hash_value(const PGBitmapset *a); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/nodes/lockoptions.hpp b/src/duckdb/third_party/libpg_query/include/nodes/lockoptions.hpp index 4c878839..2058e94d 100644 --- a/src/duckdb/third_party/libpg_query/include/nodes/lockoptions.hpp +++ b/src/duckdb/third_party/libpg_query/include/nodes/lockoptions.hpp @@ -41,4 +41,4 @@ typedef enum PGLockWaitPolicy { LockWaitError } PGLockWaitPolicy; -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/nodes/makefuncs.hpp b/src/duckdb/third_party/libpg_query/include/nodes/makefuncs.hpp index 09b99283..b2aeeebf 100644 --- a/src/duckdb/third_party/libpg_query/include/nodes/makefuncs.hpp +++ b/src/duckdb/third_party/libpg_query/include/nodes/makefuncs.hpp @@ -66,4 +66,4 @@ PGDefElem *makeDefElemExtended(const char *nameSpace, const char *name, PGNode * PGGroupingSet *makeGroupingSet(GroupingSetKind kind, PGList *content, int location); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp b/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp index a5aa55c3..2fbf2cf7 100644 --- a/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp +++ b/src/duckdb/third_party/libpg_query/include/nodes/parsenodes.hpp @@ -317,6 +317,7 @@ typedef struct PGAStar { PGNode *expr; /* optional: the expression (regex or list) to select columns */ PGList *except_list; /* optional: EXCLUDE list */ PGList *replace_list; /* optional: REPLACE list */ + PGList *rename_list; /* optional: RENAME list */ bool columns; /* whether or not this is a columns list */ bool unpacked; /* whether or not the columns list is unpacked */ int location; @@ -1574,7 +1575,8 @@ typedef struct PGVariableSetStmt { */ typedef struct PGVariableShowStmt { PGNodeTag type; - char *name; + PGRangeVar *relation; /* relation to describe (if any) */ + char *set; /* set to describe (e.g. set when using SHOW ALL TABLES) */ int is_summary; // whether or not this is a DESCRIBE or a SUMMARIZE } PGVariableShowStmt; @@ -2101,7 +2103,7 @@ typedef struct PGIntervalConstant { typedef struct PGSampleSize { PGNodeTag type; bool is_percentage; /* whether or not the sample size is expressed in row numbers or a percentage */ - PGValue sample_size; /* sample size */ + PGNode *sample_size; /* sample size */ } PGSampleSize; typedef struct PGSampleOptions { diff --git a/src/duckdb/third_party/libpg_query/include/nodes/pg_list.hpp b/src/duckdb/third_party/libpg_query/include/nodes/pg_list.hpp index 80ec889f..4d06c853 100644 --- a/src/duckdb/third_party/libpg_query/include/nodes/pg_list.hpp +++ b/src/duckdb/third_party/libpg_query/include/nodes/pg_list.hpp @@ -336,4 +336,4 @@ PGList *list_copy_tail(const PGList *list, int nskip); int length(PGList *list); #endif /* ENABLE_LIST_COMPAT */ -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/nodes/value.hpp b/src/duckdb/third_party/libpg_query/include/nodes/value.hpp index 18f74aea..45feca2e 100644 --- a/src/duckdb/third_party/libpg_query/include/nodes/value.hpp +++ b/src/duckdb/third_party/libpg_query/include/nodes/value.hpp @@ -57,4 +57,4 @@ PGValue *makeFloat(char *numericStr); PGValue *makeString(const char *str); PGValue *makeBitString(char *str); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/parser/gramparse.hpp b/src/duckdb/third_party/libpg_query/include/parser/gramparse.hpp index d50f7df7..e374dcf8 100644 --- a/src/duckdb/third_party/libpg_query/include/parser/gramparse.hpp +++ b/src/duckdb/third_party/libpg_query/include/parser/gramparse.hpp @@ -65,4 +65,4 @@ int base_yylex(YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner); void parser_init(base_yy_extra_type *yyext); int base_yyparse(core_yyscan_t yyscanner); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/parser/parser.hpp b/src/duckdb/third_party/libpg_query/include/parser/parser.hpp index 4aa29a89..3c3bf24c 100644 --- a/src/duckdb/third_party/libpg_query/include/parser/parser.hpp +++ b/src/duckdb/third_party/libpg_query/include/parser/parser.hpp @@ -37,4 +37,4 @@ std::vector tokenize(const char *str); PGList *SystemFuncName(const char *name); PGTypeName *SystemTypeName(const char *name); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/parser/scanner.hpp b/src/duckdb/third_party/libpg_query/include/parser/scanner.hpp index 3c4224d0..2813b1b6 100644 --- a/src/duckdb/third_party/libpg_query/include/parser/scanner.hpp +++ b/src/duckdb/third_party/libpg_query/include/parser/scanner.hpp @@ -124,4 +124,4 @@ int core_yylex(core_YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner); int scanner_errposition(int location, core_yyscan_t yyscanner); void scanner_yyerror(const char *message, core_yyscan_t yyscanner); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/parser/scansup.hpp b/src/duckdb/third_party/libpg_query/include/parser/scansup.hpp index 4c87ad44..d449e863 100644 --- a/src/duckdb/third_party/libpg_query/include/parser/scansup.hpp +++ b/src/duckdb/third_party/libpg_query/include/parser/scansup.hpp @@ -27,4 +27,4 @@ bool scanner_isspace(char ch); void set_preserve_identifier_case(bool downcase); bool get_preserve_identifier_case(); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/include/pg_functions.hpp b/src/duckdb/third_party/libpg_query/include/pg_functions.hpp index 5c4a2c68..bb591f75 100644 --- a/src/duckdb/third_party/libpg_query/include/pg_functions.hpp +++ b/src/duckdb/third_party/libpg_query/include/pg_functions.hpp @@ -60,4 +60,4 @@ PGDefElem *defWithOids(bool value); typedef unsigned int pg_wchar; unsigned char *unicode_to_utf8(pg_wchar c, unsigned char *utf8string); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/pg_functions.cpp b/src/duckdb/third_party/libpg_query/pg_functions.cpp index d3af77cf..3b7a7515 100644 --- a/src/duckdb/third_party/libpg_query/pg_functions.cpp +++ b/src/duckdb/third_party/libpg_query/pg_functions.cpp @@ -111,9 +111,8 @@ void pg_parser_parse(const char *query, parse_result *res) { } catch (std::exception &ex) { res->success = false; res->error_message = ex.what(); + res->error_location = pg_parser_state.pg_err_pos; } - res->error_message = pg_parser_state.pg_err_msg; - res->error_location = pg_parser_state.pg_err_pos; } void pg_parser_cleanup() { @@ -128,8 +127,7 @@ void pg_parser_cleanup() { } int ereport(int code, ...) { - std::string err = "parser error : " + std::string(pg_parser_state.pg_err_msg); - throw std::runtime_error(err); + throw std::runtime_error(pg_parser_state.pg_err_msg); } void elog(int code, const char *fmt, ...) { throw std::runtime_error("elog NOT IMPLEMENTED"); @@ -274,4 +272,4 @@ PGNode *newNode(size_t size, PGNodeTag type) { result->type = type; return result; } -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp b/src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp index 424075d1..0de79132 100644 --- a/src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp +++ b/src/duckdb/third_party/libpg_query/src_backend_nodes_list.cpp @@ -537,4 +537,4 @@ list_copy_tail(const PGList *oldlist, int nskip) int length(const PGList *list); -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp b/src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp index f5299bdb..b19b40d7 100644 --- a/src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp +++ b/src/duckdb/third_party/libpg_query/src_backend_nodes_makefuncs.cpp @@ -302,4 +302,4 @@ PGGroupingSet *makeGroupingSet(GroupingSetKind kind, PGList *content, int locati n->location = location; return n; } -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp b/src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp index e8674275..487103fd 100644 --- a/src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp +++ b/src/duckdb/third_party/libpg_query/src_backend_nodes_value.cpp @@ -71,4 +71,4 @@ PGValue *makeString(const char *str) { * Caller is responsible for passing a palloc'd string. */ -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp b/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp index 32b6aa4d..598fd18d 100644 --- a/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp +++ b/src/duckdb/third_party/libpg_query/src_backend_parser_gram.cpp @@ -1277,7 +1277,7 @@ static PGNode *makeStringConstCast(char *str, int location, PGTypeName *tpname); static PGNode *makeIntervalNode(char *str, int location, PGList *typmods); static PGNode *makeIntervalNode(int val, int location, PGList *typmods); static PGNode *makeIntervalNode(PGNode *arg, int location, PGList *typmods); -static PGNode *makeSampleSize(PGValue *sample_size, bool is_percentage); +static PGNode *makeSampleSize(PGNode *sample_size, bool is_percentage); static PGNode *makeSampleOptions(PGNode *sample_size, char *method, int *seed, int location); static PGNode *makeIntConst(int val, int location); static PGNode *makeFloatConst(char *str, int location); @@ -1624,18 +1624,18 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 873 +#define YYFINAL 874 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 72916 +#define YYLAST 74581 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 529 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 474 +#define YYNNTS 483 /* YYNRULES -- Number of rules. */ -#define YYNRULES 2156 +#define YYNRULES 2175 /* YYNRULES -- Number of states. */ -#define YYNSTATES 3579 +#define YYNSTATES 3614 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 @@ -1650,16 +1650,16 @@ static const yytype_uint16 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 524, 525, 513, 2, 2, + 2, 2, 2, 2, 2, 526, 525, 513, 2, 2, 518, 519, 511, 509, 522, 510, 520, 512, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 528, 521, - 505, 507, 506, 523, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 523, 521, + 505, 507, 506, 524, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 516, 2, 517, 514, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 526, 2, 527, 2, 2, 2, 2, + 2, 2, 2, 527, 2, 528, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1794,179 +1794,181 @@ static const yytype_uint16 yyprhs[] = 2138, 2141, 2143, 2149, 2151, 2152, 2155, 2158, 2159, 2161, 2162, 2166, 2172, 2174, 2178, 2183, 2187, 2189, 2191, 2192, 2195, 2198, 2199, 2202, 2205, 2207, 2209, 2211, 2212, 2215, - 2220, 2226, 2231, 2234, 2238, 2241, 2244, 2247, 2250, 2252, - 2255, 2259, 2260, 2262, 2263, 2269, 2271, 2276, 2283, 2286, - 2288, 2289, 2294, 2295, 2297, 2299, 2302, 2305, 2308, 2310, - 2312, 2315, 2318, 2320, 2322, 2324, 2326, 2328, 2330, 2334, - 2338, 2339, 2341, 2345, 2347, 2350, 2352, 2354, 2356, 2358, - 2360, 2363, 2368, 2373, 2379, 2381, 2383, 2386, 2387, 2390, - 2391, 2393, 2397, 2399, 2400, 2402, 2405, 2409, 2412, 2417, - 2420, 2424, 2427, 2428, 2430, 2433, 2434, 2439, 2445, 2447, - 2450, 2453, 2454, 2456, 2460, 2462, 2465, 2469, 2473, 2477, - 2481, 2485, 2489, 2491, 2496, 2506, 2516, 2520, 2521, 2524, - 2527, 2528, 2534, 2538, 2539, 2541, 2543, 2547, 2553, 2557, - 2559, 2562, 2564, 2568, 2574, 2576, 2579, 2583, 2588, 2594, - 2599, 2605, 2610, 2617, 2623, 2628, 2634, 2640, 2646, 2649, - 2654, 2656, 2658, 2659, 2661, 2666, 2672, 2677, 2678, 2681, - 2684, 2687, 2689, 2691, 2693, 2695, 2696, 2701, 2704, 2706, - 2709, 2712, 2717, 2720, 2727, 2730, 2732, 2736, 2741, 2742, - 2745, 2746, 2749, 2750, 2752, 2756, 2760, 2763, 2764, 2767, - 2772, 2774, 2776, 2778, 2779, 2782, 2786, 2792, 2799, 2802, - 2806, 2808, 2814, 2820, 2826, 2830, 2834, 2838, 2843, 2844, - 2846, 2848, 2850, 2852, 2854, 2857, 2862, 2864, 2866, 2868, - 2870, 2873, 2877, 2878, 2880, 2882, 2884, 2886, 2888, 2891, - 2894, 2897, 2900, 2903, 2905, 2909, 2910, 2912, 2914, 2916, - 2918, 2924, 2927, 2929, 2931, 2933, 2935, 2940, 2942, 2945, - 2948, 2950, 2954, 2958, 2961, 2963, 2964, 2970, 2973, 2979, - 2982, 2984, 2988, 2992, 2993, 2995, 2997, 2999, 3001, 3003, - 3005, 3007, 3009, 3011, 3013, 3015, 3017, 3019, 3021, 3023, - 3025, 3027, 3029, 3031, 3033, 3035, 3037, 3039, 3041, 3043, - 3045, 3047, 3049, 3051, 3053, 3055, 3057, 3059, 3061, 3063, - 3065, 3067, 3069, 3071, 3075, 3079, 3083, 3087, 3091, 3095, - 3099, 3100, 3102, 3106, 3110, 3116, 3119, 3122, 3126, 3130, - 3134, 3138, 3142, 3146, 3150, 3154, 3158, 3162, 3166, 3170, - 3174, 3178, 3182, 3185, 3188, 3192, 3196, 3199, 3202, 3206, - 3210, 3216, 3221, 3228, 3232, 3238, 3243, 3250, 3255, 3262, - 3268, 3276, 3280, 3283, 3288, 3292, 3295, 3299, 3303, 3307, - 3311, 3316, 3320, 3325, 3329, 3334, 3340, 3347, 3354, 3362, - 3369, 3377, 3384, 3392, 3396, 3401, 3406, 3413, 3415, 3421, - 3426, 3430, 3436, 3438, 3442, 3445, 3448, 3452, 3456, 3460, - 3464, 3468, 3472, 3476, 3480, 3484, 3488, 3492, 3496, 3500, - 3504, 3508, 3511, 3514, 3520, 3527, 3534, 3542, 3544, 3547, - 3549, 3551, 3553, 3556, 3559, 3564, 3568, 3570, 3572, 3574, - 3576, 3578, 3580, 3582, 3584, 3586, 3588, 3591, 3596, 3599, - 3602, 3606, 3610, 3615, 3619, 3626, 3634, 3644, 3652, 3660, - 3666, 3668, 3670, 3672, 3678, 3685, 3692, 3697, 3702, 3707, - 3712, 3719, 3725, 3731, 3737, 3742, 3749, 3754, 3756, 3764, - 3774, 3780, 3781, 3787, 3792, 3793, 3795, 3796, 3799, 3800, - 3802, 3806, 3810, 3813, 3816, 3817, 3824, 3826, 3827, 3831, - 3832, 3836, 3840, 3844, 3845, 3847, 3852, 3855, 3858, 3861, - 3864, 3867, 3871, 3874, 3877, 3881, 3882, 3887, 3891, 3893, - 3899, 3903, 3905, 3909, 3911, 3914, 3918, 3920, 3924, 3926, - 3929, 3931, 3932, 3934, 3936, 3938, 3940, 3942, 3944, 3946, - 3948, 3950, 3952, 3954, 3956, 3958, 3960, 3962, 3964, 3966, - 3968, 3970, 3972, 3977, 3979, 3984, 3986, 3991, 3993, 3996, - 3998, 4001, 4003, 4006, 4008, 4012, 4014, 4018, 4020, 4023, - 4025, 4029, 4031, 4034, 4036, 4037, 4039, 4043, 4045, 4049, - 4053, 4055, 4059, 4063, 4064, 4066, 4068, 4070, 4072, 4074, - 4076, 4078, 4080, 4082, 4084, 4086, 4088, 4090, 4092, 4094, - 4099, 4103, 4106, 4110, 4111, 4115, 4119, 4122, 4125, 4127, - 4128, 4131, 4134, 4138, 4141, 4143, 4145, 4149, 4151, 4153, - 4159, 4161, 4164, 4169, 4172, 4173, 4175, 4176, 4178, 4182, - 4184, 4186, 4189, 4193, 4199, 4207, 4215, 4217, 4218, 4219, - 4222, 4223, 4226, 4230, 4234, 4238, 4244, 4252, 4260, 4261, - 4264, 4266, 4267, 4269, 4270, 4272, 4276, 4278, 4281, 4285, - 4288, 4290, 4295, 4298, 4300, 4301, 4305, 4307, 4311, 4313, - 4316, 4321, 4324, 4325, 4327, 4331, 4333, 4337, 4339, 4342, - 4344, 4348, 4350, 4352, 4355, 4357, 4359, 4362, 4364, 4366, - 4369, 4377, 4380, 4386, 4390, 4394, 4396, 4398, 4400, 4402, - 4404, 4406, 4408, 4410, 4412, 4414, 4416, 4418, 4420, 4422, - 4425, 4428, 4432, 4436, 4437, 4439, 4441, 4443, 4449, 4453, - 4454, 4456, 4458, 4460, 4462, 4464, 4466, 4471, 4479, 4486, - 4489, 4490, 4492, 4494, 4496, 4498, 4512, 4529, 4531, 4534, - 4535, 4537, 4538, 4540, 4541, 4544, 4545, 4547, 4548, 4555, - 4564, 4571, 4580, 4587, 4596, 4600, 4603, 4605, 4606, 4613, - 4620, 4622, 4624, 4626, 4628, 4630, 4632, 4635, 4637, 4639, - 4641, 4643, 4645, 4650, 4657, 4661, 4664, 4669, 4673, 4679, - 4681, 4682, 4684, 4686, 4687, 4689, 4691, 4693, 4695, 4697, - 4699, 4701, 4703, 4705, 4707, 4709, 4711, 4713, 4715, 4717, - 4719, 4721, 4723, 4725, 4727, 4729, 4731, 4733, 4735, 4737, - 4739, 4741, 4743, 4745, 4747, 4749, 4751, 4753, 4755, 4757, - 4759, 4761, 4765, 4767, 4769, 4771, 4773, 4775, 4777, 4780, - 4782, 4784, 4787, 4791, 4795, 4799, 4803, 4805, 4809, 4813, - 4816, 4820, 4824, 4826, 4828, 4830, 4834, 4840, 4842, 4844, - 4846, 4848, 4852, 4855, 4860, 4867, 4874, 4875, 4877, 4879, - 4881, 4882, 4885, 4888, 4893, 4900, 4906, 4911, 4918, 4920, - 4922, 4924, 4926, 4928, 4930, 4931, 4933, 4937, 4939, 4940, - 4948, 4952, 4954, 4957, 4961, 4964, 4965, 4968, 4969, 4972, - 4977, 4983, 4992, 4995, 4999, 5005, 5007, 5008, 5011, 5012, - 5015, 5019, 5023, 5027, 5031, 5033, 5035, 5037, 5040, 5044, - 5047, 5050, 5053, 5056, 5060, 5065, 5069, 5071, 5073, 5075, - 5077, 5079, 5081, 5082, 5084, 5088, 5090, 5094, 5097, 5107, - 5120, 5132, 5145, 5160, 5164, 5169, 5174, 5175, 5183, 5194, - 5204, 5207, 5211, 5212, 5217, 5219, 5221, 5223, 5225, 5227, - 5229, 5231, 5233, 5235, 5237, 5239, 5241, 5243, 5245, 5247, - 5249, 5251, 5253, 5255, 5257, 5259, 5261, 5263, 5265, 5267, - 5269, 5271, 5273, 5275, 5277, 5279, 5281, 5283, 5285, 5287, - 5289, 5291, 5293, 5295, 5297, 5299, 5301, 5303, 5305, 5307, - 5309, 5311, 5313, 5315, 5317, 5319, 5321, 5323, 5325, 5327, - 5329, 5331, 5333, 5335, 5337, 5339, 5341, 5343, 5345, 5347, - 5349, 5351, 5353, 5355, 5357, 5359, 5361, 5363, 5365, 5367, - 5369, 5371, 5373, 5375, 5377, 5379, 5381, 5383, 5385, 5387, - 5389, 5391, 5393, 5395, 5397, 5399, 5401, 5403, 5405, 5407, - 5409, 5411, 5413, 5415, 5417, 5419, 5421, 5423, 5425, 5427, - 5429, 5431, 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, - 5449, 5451, 5453, 5455, 5457, 5459, 5461, 5463, 5465, 5467, - 5469, 5471, 5473, 5475, 5477, 5479, 5481, 5483, 5485, 5487, - 5489, 5491, 5493, 5495, 5497, 5499, 5501, 5503, 5505, 5507, - 5509, 5511, 5513, 5515, 5517, 5519, 5521, 5523, 5525, 5527, - 5529, 5531, 5533, 5535, 5537, 5539, 5541, 5543, 5545, 5547, - 5549, 5551, 5553, 5555, 5557, 5559, 5561, 5563, 5565, 5567, - 5569, 5571, 5573, 5575, 5577, 5579, 5581, 5583, 5585, 5587, - 5589, 5591, 5593, 5595, 5597, 5599, 5601, 5603, 5605, 5607, - 5609, 5611, 5613, 5615, 5617, 5619, 5621, 5623, 5625, 5627, - 5629, 5631, 5633, 5635, 5637, 5639, 5641, 5643, 5645, 5647, - 5649, 5651, 5653, 5655, 5657, 5659, 5661, 5663, 5665, 5667, - 5669, 5671, 5673, 5675, 5677, 5679, 5681, 5683, 5685, 5687, - 5689, 5691, 5693, 5695, 5697, 5699, 5701, 5703, 5705, 5707, - 5709, 5711, 5713, 5715, 5717, 5719, 5721, 5723, 5725, 5727, - 5729, 5731, 5733, 5735, 5737, 5739, 5741, 5743, 5745, 5747, - 5749, 5751, 5753, 5755, 5757, 5759, 5761, 5763, 5765, 5767, - 5769, 5771, 5773, 5775, 5777, 5779, 5781, 5783, 5785, 5787, - 5789, 5791, 5793, 5795, 5797, 5799, 5801, 5803, 5805, 5807, - 5809, 5811, 5813, 5815, 5817, 5819, 5821, 5823, 5825, 5827, - 5829, 5831, 5833, 5835, 5837, 5839, 5841, 5843, 5845, 5847, - 5849, 5851, 5853, 5855, 5857, 5859, 5861, 5863, 5865, 5867, - 5869, 5871, 5873, 5875, 5877, 5879, 5881, 5883, 5885, 5887, - 5889, 5891, 5893, 5895, 5897, 5899, 5901, 5903, 5905, 5907, - 5909, 5911, 5913, 5915, 5917, 5919, 5921, 5923, 5925, 5927, - 5929, 5931, 5933, 5935, 5937, 5939, 5941, 5943, 5945, 5947, - 5949, 5951, 5953, 5955, 5957, 5959, 5961, 5963, 5965, 5967, - 5969, 5971, 5973, 5975, 5977, 5979, 5981, 5983, 5985, 5987, - 5989, 5991, 5993, 5995, 5997, 5999, 6001, 6003, 6005, 6007, - 6009, 6011, 6013, 6015, 6017, 6019, 6021, 6023, 6025, 6027, - 6029, 6031, 6033, 6035, 6037, 6039, 6041, 6043, 6045, 6047, - 6049, 6051, 6053, 6055, 6057, 6059, 6061, 6063, 6065, 6067, - 6069, 6071, 6073, 6075, 6077, 6079, 6081, 6083, 6085, 6087, - 6089, 6091, 6093, 6095, 6097, 6099, 6101, 6103, 6105, 6107, - 6109, 6111, 6113, 6115, 6117, 6119, 6121, 6123, 6125, 6127, - 6129, 6131, 6133, 6135, 6137, 6139, 6141, 6143, 6145, 6147, - 6149, 6151, 6153, 6155, 6157, 6159, 6161, 6163, 6165, 6167, - 6169, 6171, 6173, 6175, 6177, 6179, 6181, 6183, 6185, 6187, - 6189, 6191, 6193, 6195, 6197, 6199, 6201, 6203, 6205, 6207, - 6209, 6211, 6213, 6215, 6217, 6219, 6221, 6223, 6225, 6227, - 6229, 6231, 6233, 6235, 6237, 6239, 6241, 6243, 6245, 6247, - 6249, 6251, 6253, 6255, 6257, 6259, 6261, 6263, 6265, 6267, - 6269, 6271, 6273, 6275, 6277, 6279, 6281, 6283, 6285, 6287, - 6289, 6291, 6293, 6295, 6297, 6299, 6301, 6303, 6305, 6307, - 6309, 6311, 6313, 6315, 6317, 6319, 6321, 6323, 6325, 6327, - 6329, 6331, 6333, 6335, 6337, 6339, 6341, 6343, 6345, 6347, - 6349, 6351, 6353, 6355, 6357, 6359, 6361, 6363, 6365, 6367, - 6369, 6371, 6373, 6375, 6377, 6379, 6381, 6383, 6385, 6387, - 6389, 6391, 6393, 6395, 6397, 6399, 6401, 6403, 6405, 6407, - 6409, 6411, 6413, 6415, 6417, 6419, 6421, 6423, 6425, 6427, - 6429, 6431, 6433, 6435, 6437, 6439, 6441, 6443, 6445, 6447, - 6449, 6451, 6453, 6455, 6457, 6459, 6461 + 2220, 2226, 2231, 2234, 2238, 2240, 2242, 2244, 2247, 2250, + 2252, 2255, 2259, 2260, 2262, 2263, 2269, 2271, 2276, 2283, + 2286, 2288, 2289, 2294, 2295, 2297, 2299, 2302, 2305, 2308, + 2310, 2312, 2315, 2318, 2320, 2322, 2324, 2326, 2328, 2330, + 2334, 2338, 2339, 2341, 2345, 2347, 2350, 2352, 2354, 2356, + 2358, 2360, 2363, 2368, 2373, 2379, 2381, 2383, 2386, 2387, + 2390, 2391, 2393, 2397, 2399, 2400, 2402, 2405, 2409, 2412, + 2417, 2420, 2424, 2427, 2428, 2430, 2433, 2434, 2439, 2445, + 2447, 2450, 2453, 2454, 2456, 2460, 2462, 2465, 2468, 2472, + 2476, 2480, 2484, 2488, 2492, 2496, 2500, 2504, 2506, 2511, + 2516, 2526, 2536, 2540, 2541, 2544, 2547, 2548, 2554, 2558, + 2560, 2562, 2566, 2572, 2576, 2578, 2581, 2583, 2587, 2593, + 2595, 2598, 2602, 2607, 2613, 2618, 2624, 2629, 2636, 2642, + 2647, 2653, 2659, 2665, 2668, 2673, 2675, 2677, 2678, 2680, + 2685, 2691, 2696, 2697, 2700, 2703, 2706, 2708, 2710, 2712, + 2714, 2715, 2720, 2723, 2725, 2728, 2731, 2736, 2739, 2746, + 2749, 2751, 2755, 2760, 2761, 2764, 2765, 2768, 2769, 2771, + 2775, 2779, 2782, 2783, 2786, 2791, 2793, 2795, 2797, 2798, + 2801, 2805, 2811, 2818, 2821, 2825, 2827, 2833, 2839, 2845, + 2849, 2853, 2857, 2862, 2863, 2865, 2867, 2869, 2871, 2873, + 2876, 2881, 2883, 2885, 2887, 2889, 2892, 2896, 2897, 2899, + 2901, 2903, 2905, 2907, 2910, 2913, 2916, 2919, 2922, 2924, + 2928, 2929, 2931, 2933, 2935, 2937, 2943, 2946, 2948, 2950, + 2952, 2954, 2959, 2961, 2964, 2967, 2969, 2973, 2977, 2980, + 2982, 2983, 2989, 2992, 2998, 3001, 3003, 3007, 3011, 3012, + 3014, 3016, 3018, 3020, 3022, 3024, 3026, 3028, 3030, 3032, + 3034, 3036, 3038, 3040, 3042, 3044, 3046, 3048, 3050, 3052, + 3054, 3056, 3058, 3060, 3062, 3064, 3066, 3068, 3070, 3072, + 3074, 3076, 3078, 3080, 3082, 3084, 3086, 3088, 3090, 3094, + 3098, 3102, 3106, 3110, 3114, 3118, 3119, 3121, 3125, 3129, + 3135, 3138, 3141, 3145, 3149, 3153, 3157, 3161, 3165, 3169, + 3173, 3177, 3181, 3185, 3189, 3193, 3197, 3201, 3204, 3207, + 3211, 3215, 3218, 3221, 3225, 3229, 3235, 3240, 3247, 3251, + 3257, 3262, 3269, 3274, 3281, 3287, 3295, 3299, 3302, 3307, + 3311, 3314, 3318, 3322, 3326, 3330, 3335, 3339, 3344, 3348, + 3353, 3359, 3366, 3373, 3381, 3388, 3396, 3403, 3411, 3415, + 3420, 3425, 3432, 3434, 3440, 3445, 3450, 3457, 3459, 3463, + 3466, 3469, 3473, 3477, 3481, 3485, 3489, 3493, 3497, 3501, + 3505, 3509, 3513, 3517, 3521, 3525, 3529, 3532, 3535, 3541, + 3548, 3555, 3563, 3565, 3568, 3570, 3572, 3574, 3577, 3580, + 3585, 3589, 3591, 3593, 3595, 3597, 3600, 3602, 3604, 3606, + 3608, 3610, 3612, 3614, 3617, 3622, 3625, 3629, 3633, 3638, + 3642, 3649, 3657, 3667, 3675, 3683, 3689, 3691, 3693, 3695, + 3701, 3708, 3715, 3720, 3725, 3730, 3735, 3742, 3748, 3754, + 3760, 3765, 3772, 3777, 3779, 3787, 3797, 3803, 3804, 3810, + 3815, 3816, 3818, 3819, 3822, 3823, 3825, 3829, 3833, 3836, + 3839, 3840, 3847, 3849, 3850, 3854, 3855, 3859, 3863, 3867, + 3868, 3870, 3875, 3878, 3881, 3884, 3887, 3890, 3894, 3897, + 3900, 3904, 3905, 3910, 3914, 3916, 3922, 3926, 3928, 3932, + 3934, 3937, 3941, 3943, 3947, 3949, 3952, 3954, 3955, 3957, + 3959, 3961, 3963, 3965, 3967, 3969, 3971, 3973, 3975, 3977, + 3979, 3981, 3983, 3985, 3987, 3989, 3991, 3993, 3995, 4000, + 4002, 4007, 4009, 4014, 4016, 4019, 4021, 4024, 4026, 4029, + 4031, 4035, 4037, 4041, 4043, 4046, 4048, 4052, 4054, 4057, + 4059, 4060, 4062, 4066, 4068, 4072, 4076, 4078, 4082, 4086, + 4087, 4089, 4091, 4093, 4095, 4097, 4099, 4101, 4103, 4105, + 4107, 4109, 4111, 4113, 4115, 4117, 4122, 4126, 4129, 4133, + 4134, 4138, 4142, 4145, 4148, 4150, 4151, 4154, 4157, 4161, + 4164, 4166, 4168, 4172, 4174, 4176, 4182, 4184, 4187, 4192, + 4195, 4196, 4198, 4199, 4201, 4205, 4207, 4209, 4212, 4216, + 4222, 4230, 4238, 4240, 4241, 4242, 4245, 4246, 4249, 4253, + 4257, 4261, 4267, 4275, 4283, 4284, 4287, 4289, 4290, 4292, + 4293, 4295, 4299, 4301, 4304, 4308, 4311, 4313, 4317, 4322, + 4325, 4327, 4331, 4333, 4337, 4339, 4342, 4344, 4345, 4349, + 4351, 4355, 4357, 4360, 4365, 4368, 4369, 4373, 4375, 4379, + 4381, 4384, 4389, 4392, 4393, 4395, 4399, 4401, 4405, 4407, + 4410, 4412, 4416, 4418, 4420, 4423, 4425, 4427, 4430, 4432, + 4434, 4437, 4445, 4448, 4454, 4458, 4462, 4464, 4466, 4468, + 4470, 4472, 4474, 4476, 4478, 4480, 4482, 4484, 4486, 4488, + 4490, 4493, 4496, 4500, 4504, 4505, 4507, 4509, 4511, 4517, + 4521, 4522, 4524, 4526, 4528, 4530, 4532, 4534, 4539, 4547, + 4554, 4557, 4558, 4560, 4562, 4564, 4566, 4580, 4597, 4599, + 4602, 4603, 4605, 4606, 4608, 4609, 4612, 4613, 4615, 4616, + 4623, 4632, 4639, 4648, 4655, 4664, 4668, 4671, 4673, 4674, + 4681, 4688, 4690, 4692, 4694, 4696, 4698, 4700, 4703, 4705, + 4707, 4709, 4711, 4713, 4718, 4725, 4729, 4732, 4737, 4741, + 4747, 4749, 4750, 4752, 4754, 4755, 4757, 4759, 4761, 4763, + 4765, 4767, 4769, 4771, 4773, 4775, 4777, 4779, 4781, 4783, + 4785, 4787, 4789, 4791, 4793, 4795, 4797, 4799, 4801, 4803, + 4805, 4807, 4809, 4811, 4813, 4815, 4817, 4819, 4821, 4823, + 4825, 4827, 4829, 4833, 4835, 4837, 4839, 4841, 4843, 4845, + 4848, 4850, 4852, 4855, 4859, 4863, 4867, 4871, 4873, 4877, + 4881, 4884, 4888, 4892, 4894, 4896, 4898, 4902, 4908, 4910, + 4912, 4914, 4916, 4920, 4923, 4928, 4935, 4942, 4943, 4945, + 4947, 4949, 4950, 4953, 4956, 4961, 4968, 4974, 4979, 4986, + 4988, 4990, 4992, 4994, 4996, 4998, 4999, 5001, 5005, 5007, + 5008, 5016, 5020, 5022, 5025, 5029, 5032, 5033, 5036, 5037, + 5040, 5045, 5051, 5060, 5063, 5067, 5073, 5075, 5076, 5079, + 5080, 5083, 5087, 5091, 5095, 5099, 5101, 5103, 5105, 5108, + 5112, 5115, 5118, 5121, 5124, 5128, 5133, 5137, 5139, 5141, + 5143, 5145, 5147, 5149, 5150, 5152, 5156, 5159, 5169, 5182, + 5194, 5207, 5222, 5226, 5231, 5236, 5237, 5245, 5256, 5266, + 5269, 5273, 5274, 5279, 5281, 5283, 5285, 5287, 5289, 5291, + 5293, 5295, 5297, 5299, 5301, 5303, 5305, 5307, 5309, 5311, + 5313, 5315, 5317, 5319, 5321, 5323, 5325, 5327, 5329, 5331, + 5333, 5335, 5337, 5339, 5341, 5343, 5345, 5347, 5349, 5351, + 5353, 5355, 5357, 5359, 5361, 5363, 5365, 5367, 5369, 5371, + 5373, 5375, 5377, 5379, 5381, 5383, 5385, 5387, 5389, 5391, + 5393, 5395, 5397, 5399, 5401, 5403, 5405, 5407, 5409, 5411, + 5413, 5415, 5417, 5419, 5421, 5423, 5425, 5427, 5429, 5431, + 5433, 5435, 5437, 5439, 5441, 5443, 5445, 5447, 5449, 5451, + 5453, 5455, 5457, 5459, 5461, 5463, 5465, 5467, 5469, 5471, + 5473, 5475, 5477, 5479, 5481, 5483, 5485, 5487, 5489, 5491, + 5493, 5495, 5497, 5499, 5501, 5503, 5505, 5507, 5509, 5511, + 5513, 5515, 5517, 5519, 5521, 5523, 5525, 5527, 5529, 5531, + 5533, 5535, 5537, 5539, 5541, 5543, 5545, 5547, 5549, 5551, + 5553, 5555, 5557, 5559, 5561, 5563, 5565, 5567, 5569, 5571, + 5573, 5575, 5577, 5579, 5581, 5583, 5585, 5587, 5589, 5591, + 5593, 5595, 5597, 5599, 5601, 5603, 5605, 5607, 5609, 5611, + 5613, 5615, 5617, 5619, 5621, 5623, 5625, 5627, 5629, 5631, + 5633, 5635, 5637, 5639, 5641, 5643, 5645, 5647, 5649, 5651, + 5653, 5655, 5657, 5659, 5661, 5663, 5665, 5667, 5669, 5671, + 5673, 5675, 5677, 5679, 5681, 5683, 5685, 5687, 5689, 5691, + 5693, 5695, 5697, 5699, 5701, 5703, 5705, 5707, 5709, 5711, + 5713, 5715, 5717, 5719, 5721, 5723, 5725, 5727, 5729, 5731, + 5733, 5735, 5737, 5739, 5741, 5743, 5745, 5747, 5749, 5751, + 5753, 5755, 5757, 5759, 5761, 5763, 5765, 5767, 5769, 5771, + 5773, 5775, 5777, 5779, 5781, 5783, 5785, 5787, 5789, 5791, + 5793, 5795, 5797, 5799, 5801, 5803, 5805, 5807, 5809, 5811, + 5813, 5815, 5817, 5819, 5821, 5823, 5825, 5827, 5829, 5831, + 5833, 5835, 5837, 5839, 5841, 5843, 5845, 5847, 5849, 5851, + 5853, 5855, 5857, 5859, 5861, 5863, 5865, 5867, 5869, 5871, + 5873, 5875, 5877, 5879, 5881, 5883, 5885, 5887, 5889, 5891, + 5893, 5895, 5897, 5899, 5901, 5903, 5905, 5907, 5909, 5911, + 5913, 5915, 5917, 5919, 5921, 5923, 5925, 5927, 5929, 5931, + 5933, 5935, 5937, 5939, 5941, 5943, 5945, 5947, 5949, 5951, + 5953, 5955, 5957, 5959, 5961, 5963, 5965, 5967, 5969, 5971, + 5973, 5975, 5977, 5979, 5981, 5983, 5985, 5987, 5989, 5991, + 5993, 5995, 5997, 5999, 6001, 6003, 6005, 6007, 6009, 6011, + 6013, 6015, 6017, 6019, 6021, 6023, 6025, 6027, 6029, 6031, + 6033, 6035, 6037, 6039, 6041, 6043, 6045, 6047, 6049, 6051, + 6053, 6055, 6057, 6059, 6061, 6063, 6065, 6067, 6069, 6071, + 6073, 6075, 6077, 6079, 6081, 6083, 6085, 6087, 6089, 6091, + 6093, 6095, 6097, 6099, 6101, 6103, 6105, 6107, 6109, 6111, + 6113, 6115, 6117, 6119, 6121, 6123, 6125, 6127, 6129, 6131, + 6133, 6135, 6137, 6139, 6141, 6143, 6145, 6147, 6149, 6151, + 6153, 6155, 6157, 6159, 6161, 6163, 6165, 6167, 6169, 6171, + 6173, 6175, 6177, 6179, 6181, 6183, 6185, 6187, 6189, 6191, + 6193, 6195, 6197, 6199, 6201, 6203, 6205, 6207, 6209, 6211, + 6213, 6215, 6217, 6219, 6221, 6223, 6225, 6227, 6229, 6231, + 6233, 6235, 6237, 6239, 6241, 6243, 6245, 6247, 6249, 6251, + 6253, 6255, 6257, 6259, 6261, 6263, 6265, 6267, 6269, 6271, + 6273, 6275, 6277, 6279, 6281, 6283, 6285, 6287, 6289, 6291, + 6293, 6295, 6297, 6299, 6301, 6303, 6305, 6307, 6309, 6311, + 6313, 6315, 6317, 6319, 6321, 6323, 6325, 6327, 6329, 6331, + 6333, 6335, 6337, 6339, 6341, 6343, 6345, 6347, 6349, 6351, + 6353, 6355, 6357, 6359, 6361, 6363, 6365, 6367, 6369, 6371, + 6373, 6375, 6377, 6379, 6381, 6383, 6385, 6387, 6389, 6391, + 6393, 6395, 6397, 6399, 6401, 6403, 6405, 6407, 6409, 6411, + 6413, 6415, 6417, 6419, 6421, 6423, 6425, 6427, 6429, 6431, + 6433, 6435, 6437, 6439, 6441, 6443, 6445, 6447, 6449, 6451, + 6453, 6455, 6457, 6459, 6461, 6463, 6465, 6467, 6469, 6471, + 6473, 6475, 6477, 6479, 6481, 6483, 6485, 6487, 6489, 6491, + 6493, 6495, 6497, 6499, 6501, 6503, 6505, 6507, 6509, 6511, + 6513, 6515, 6517, 6519, 6521, 6523 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { 530, 0, -1, 531, -1, 531, 521, 532, -1, 532, - -1, 938, -1, 591, -1, 533, -1, 976, -1, 977, - -1, 990, -1, 939, -1, 941, -1, 668, -1, 993, - -1, 658, -1, 928, -1, 582, -1, 580, -1, 604, - -1, 576, -1, 544, -1, 972, -1, 978, -1, 598, - -1, 652, -1, 587, -1, 946, -1, 944, -1, 945, - -1, 931, -1, 555, -1, 963, -1, 579, -1, 925, + -1, 948, -1, 591, -1, 533, -1, 986, -1, 987, + -1, 999, -1, 949, -1, 951, -1, 668, -1, 1002, + -1, 658, -1, 938, -1, 582, -1, 580, -1, 604, + -1, 576, -1, 544, -1, 982, -1, 988, -1, 598, + -1, 652, -1, 587, -1, 956, -1, 954, -1, 955, + -1, 941, -1, 555, -1, 973, -1, 579, -1, 935, -1, 553, -1, 686, -1, 600, -1, 586, -1, 667, - -1, 603, -1, 967, -1, 981, -1, 957, -1, 984, - -1, 991, -1, -1, 32, 419, 773, 541, -1, 32, - 419, 192, 152, 773, 541, -1, 32, 203, 545, 541, + -1, 603, -1, 977, -1, 991, -1, 967, -1, 994, + -1, 1000, -1, -1, 32, 419, 775, 541, -1, 32, + 419, 192, 152, 775, 541, -1, 32, 203, 545, 541, -1, 32, 203, 192, 152, 545, 541, -1, 32, 384, 545, 541, -1, 32, 384, 192, 152, 545, 541, -1, 32, 470, 545, 541, -1, 32, 470, 192, 152, 545, - 541, -1, 536, -1, 534, 536, -1, 389, 117, 822, + 541, -1, 536, -1, 534, 536, -1, 389, 117, 824, -1, 137, 117, -1, 359, -1, 359, 593, 594, -1, 389, 595, -1, 389, 176, 651, -1, 540, -1, 537, 522, 540, -1, 26, 631, -1, 26, 192, 275, 152, @@ -1980,72 +1982,72 @@ static const yytype_int16 yyrhs[] = 546, 534, -1, 32, 554, 546, 137, 191, -1, 32, 554, 546, 137, 191, 192, 152, -1, 137, 554, 192, 152, 546, 656, -1, 137, 554, 546, 656, -1, 32, - 554, 546, 543, 442, 786, 782, 539, -1, 32, 554, - 546, 542, -1, 26, 621, -1, 32, 93, 913, 605, - -1, 460, 93, 913, -1, 137, 93, 192, 152, 913, - 656, -1, 137, 93, 913, 656, -1, 389, 245, -1, + 554, 546, 543, 442, 787, 784, 539, -1, 32, 554, + 546, 542, -1, 26, 621, -1, 32, 93, 923, 605, + -1, 460, 93, 923, -1, 137, 93, 192, 152, 923, + 656, -1, 137, 93, 923, 656, -1, 389, 245, -1, 389, 451, -1, 389, 619, -1, 357, 619, -1, 542, - -1, 457, 822, -1, -1, 615, -1, 389, 615, -1, + -1, 457, 824, -1, -1, 615, -1, 389, 615, -1, 26, 615, -1, 137, 629, -1, 538, -1, 541, 522, 538, -1, 294, 518, 537, 519, -1, 389, 107, -1, - 389, -1, -1, 111, 913, -1, 111, 326, 913, -1, + 389, -1, -1, 111, 923, -1, 111, 326, 923, -1, 111, 30, -1, 111, 326, 30, -1, 547, -1, 546, - 549, -1, 3, -1, 996, -1, 997, -1, 546, -1, + 549, -1, 3, -1, 1005, -1, 1006, -1, 546, -1, 5, -1, 5, -1, 550, -1, 549, 550, -1, 520, - 551, -1, 552, -1, 3, -1, 1000, -1, 996, -1, - 1002, -1, 32, 373, 913, 353, 431, 913, -1, 32, - 419, 773, 353, 431, 913, -1, 32, 419, 192, 152, - 773, 353, 431, 913, -1, 32, 384, 545, 353, 431, - 913, -1, 32, 384, 192, 152, 545, 353, 431, 913, - -1, 32, 470, 545, 353, 431, 913, -1, 32, 470, - 192, 152, 545, 353, 431, 913, -1, 32, 203, 545, - 353, 431, 913, -1, 32, 203, 192, 152, 545, 353, - 431, 913, -1, 32, 419, 773, 353, 554, 913, 431, - 913, -1, 32, 419, 192, 152, 773, 353, 554, 913, - 431, 913, -1, 32, 419, 773, 353, 93, 913, 431, - 913, -1, 32, 419, 192, 152, 773, 353, 93, 913, - 431, 913, -1, 82, -1, -1, 560, 213, 563, 220, + 551, -1, 552, -1, 3, -1, 1009, -1, 1005, -1, + 1011, -1, 32, 373, 923, 353, 431, 923, -1, 32, + 419, 775, 353, 431, 923, -1, 32, 419, 192, 152, + 775, 353, 431, 923, -1, 32, 384, 545, 353, 431, + 923, -1, 32, 384, 192, 152, 545, 353, 431, 923, + -1, 32, 470, 545, 353, 431, 923, -1, 32, 470, + 192, 152, 545, 353, 431, 923, -1, 32, 203, 545, + 353, 431, 923, -1, 32, 203, 192, 152, 545, 353, + 431, 923, -1, 32, 419, 775, 353, 554, 923, 431, + 923, -1, 32, 419, 192, 152, 775, 353, 554, 923, + 431, 923, -1, 32, 419, 775, 353, 93, 923, 431, + 923, -1, 32, 419, 192, 152, 775, 353, 93, 923, + 431, 923, -1, 82, -1, -1, 560, 213, 563, 220, 557, 558, 556, 564, 566, -1, 686, -1, 304, 567, 462, 686, -1, 518, 571, 519, 686, -1, 518, 571, 519, 304, 567, 462, 686, -1, 117, 463, -1, 545, -1, 545, 40, 546, -1, 59, 266, -1, 59, 321, - -1, -1, 518, 574, 519, 779, -1, 290, 93, 913, - -1, -1, 698, -1, -1, 546, 894, -1, 575, 507, - 822, -1, 518, 568, 519, 507, 822, -1, 295, 355, + -1, -1, 518, 574, 519, 781, -1, 290, 93, 923, + -1, -1, 698, -1, -1, 546, 897, -1, 575, 507, + 824, -1, 518, 568, 519, 507, 824, -1, 295, 355, -1, 295, 193, -1, -1, 290, 91, 559, 133, 454, - 389, 573, 779, -1, 290, 91, 559, 133, 276, -1, - -1, 546, 569, 570, 714, 715, -1, 833, 569, 570, - 714, 715, -1, 518, 822, 519, 569, 570, 714, 715, - -1, 361, 900, -1, -1, 456, -1, 418, -1, 575, - -1, 568, 522, 575, -1, 80, 920, -1, -1, 920, + 389, 573, 781, -1, 290, 91, 559, 133, 276, -1, + -1, 546, 569, 570, 714, 715, -1, 836, 569, 570, + 714, 715, -1, 518, 824, 519, 569, 570, 714, 715, + -1, 361, 903, -1, -1, 456, -1, 418, -1, 575, + -1, 568, 522, 575, -1, 80, 930, -1, -1, 930, -1, -1, 561, -1, 571, 522, 561, -1, 562, -1, 572, 522, 562, -1, 572, -1, 572, 522, -1, 565, - -1, 574, 522, 565, -1, 546, 894, -1, 100, 442, + -1, 574, 522, 565, -1, 546, 897, -1, 100, 442, 545, 40, 144, 687, -1, 100, 442, 545, 40, 144, - 518, 577, 519, -1, 100, 442, 545, 40, 786, -1, + 518, 577, 519, -1, 100, 442, 545, 40, 788, -1, 578, -1, -1, 548, -1, 578, 522, 548, -1, 323, - 546, -1, 323, 546, 507, 962, -1, 323, 546, 518, - 872, 519, -1, 100, 650, 384, 545, 581, -1, 100, + 546, -1, 323, 546, 507, 972, -1, 323, 546, 518, + 875, 519, -1, 100, 650, 384, 545, 581, -1, 100, 650, 384, 192, 275, 152, 545, 581, -1, 100, 295, 355, 650, 384, 545, 581, -1, 592, -1, -1, 100, 584, 380, 583, 585, 518, 685, 519, -1, 100, 584, 380, 192, 275, 152, 583, 585, 518, 685, 519, -1, 100, 295, 355, 584, 380, 583, 585, 518, 685, 519, -1, -1, 546, -1, -1, 425, -1, 314, -1, -1, - 199, 3, -1, 560, 454, 157, 639, -1, 151, 913, - 590, -1, 100, 650, 419, 995, 40, 151, 913, 590, - 994, -1, 100, 650, 419, 192, 275, 152, 995, 40, - 151, 913, 590, 994, -1, 822, -1, 923, 13, 822, + 199, 3, -1, 560, 454, 157, 639, -1, 151, 923, + 590, -1, 100, 650, 419, 1004, 40, 151, 923, 590, + 1003, -1, 100, 650, 419, 192, 275, 152, 1004, 40, + 151, 923, 590, 1003, -1, 824, -1, 933, 13, 824, -1, 588, -1, 589, 522, 588, -1, 518, 589, 519, -1, -1, 32, 384, 545, 592, -1, 32, 384, 192, 152, 545, 592, -1, 595, -1, 592, 595, -1, 480, -1, 504, -1, -1, 4, -1, 509, 4, -1, 510, - 4, -1, 597, -1, 40, 789, -1, 60, 594, -1, + 4, -1, 597, -1, 40, 791, -1, 60, 594, -1, 106, -1, 273, 106, -1, 202, 596, 594, -1, 251, 594, -1, 261, 594, -1, 273, 251, -1, 273, 261, - -1, 305, 59, 920, -1, 384, 266, 920, -1, 403, + -1, 305, 59, 930, -1, 384, 266, 930, -1, 403, 593, 594, -1, 359, -1, 359, 593, 594, -1, 59, - -1, -1, 916, -1, 509, 916, -1, 510, 916, -1, + -1, -1, 926, -1, 509, 926, -1, 510, 926, -1, 137, 584, 380, 546, 599, -1, 137, 584, 380, 192, 152, 546, 599, -1, -1, 172, 3, -1, 22, 601, -1, 52, 601, 602, -1, 403, 601, 602, -1, 86, @@ -2055,21 +2057,21 @@ static const yytype_int16 yyrhs[] = 626, 618, -1, 100, 650, 419, 192, 275, 152, 545, 518, 637, 519, 626, 618, -1, 100, 295, 355, 650, 419, 545, 518, 637, 519, 626, 618, -1, -1, 605, - 630, -1, 645, -1, 1002, -1, 864, -1, 594, -1, + 630, -1, 645, -1, 1011, -1, 867, -1, 594, -1, 548, -1, 274, -1, 518, 592, 519, -1, -1, 548, -1, 273, 25, -1, 360, -1, 63, -1, 389, 280, - -1, 389, 117, -1, 93, 913, 611, -1, 611, -1, - 625, -1, 80, 920, -1, 275, 280, -1, 280, -1, - 448, 636, -1, 329, 227, 636, -1, 74, 518, 822, - 519, 620, -1, 457, 88, 913, -1, 117, 823, -1, + -1, 389, 117, -1, 93, 923, 611, -1, 611, -1, + 625, -1, 80, 930, -1, 275, 280, -1, 280, -1, + 448, 636, -1, 329, 227, 636, -1, 74, 518, 824, + 519, 620, -1, 457, 88, 923, -1, 117, 825, -1, 347, 545, 639, 648, 617, -1, 472, -1, 409, -1, 612, -1, -1, 176, 651, 40, 191, 607, -1, 176, - 651, 40, 518, 822, 519, 613, -1, 40, 518, 822, + 651, 40, 518, 824, 519, 613, -1, 40, 518, 824, 519, 613, -1, 629, 608, -1, 290, 454, 609, -1, 616, -1, 641, -1, 616, 641, -1, 641, 616, -1, -1, 290, 86, 137, -1, 290, 86, 122, 369, -1, 290, 86, 328, 369, -1, -1, 518, 623, 519, -1, - 273, 205, -1, -1, 93, 913, 646, -1, 646, -1, + 273, 205, -1, -1, 93, 923, 646, -1, 646, -1, 85, -1, 94, -1, 118, -1, 191, -1, 204, -1, 405, -1, 408, -1, 30, -1, 642, -1, 623, 522, 642, -1, 457, 203, 633, -1, 119, -1, 275, 119, @@ -2078,7 +2080,7 @@ static const yytype_int16 yyrhs[] = -1, 628, 201, 622, -1, 628, 149, 622, -1, -1, 552, -1, 275, 119, -1, 119, -1, 207, 195, -1, 207, 120, -1, 275, 459, -1, 273, 205, -1, 546, - 786, 640, -1, 546, 785, 614, 640, -1, 635, -1, + 788, 640, -1, 546, 787, 614, 640, -1, 635, -1, 632, 522, 635, -1, 546, -1, 631, -1, 649, -1, 621, -1, 552, 507, 606, -1, 552, -1, 480, 627, -1, -1, 647, -1, 647, 522, -1, -1, 546, -1, @@ -2086,8 +2088,8 @@ static const yytype_int16 yyrhs[] = 122, 609, -1, 552, 507, 606, -1, 552, -1, 552, 520, 552, 507, 606, -1, 552, 520, 552, -1, 638, -1, 643, 522, 638, -1, 643, -1, 643, 522, -1, - 786, -1, 917, 921, 513, 442, -1, 390, 917, 921, - 513, 442, -1, 74, 518, 822, 519, 605, -1, 448, + 788, -1, 927, 931, 513, 442, -1, 390, 927, 931, + 513, 442, -1, 74, 518, 824, 519, 605, -1, 448, 518, 644, 519, 636, 605, -1, 448, 624, 605, -1, 329, 227, 518, 644, 519, 636, 605, -1, 329, 227, 624, 605, -1, 169, 227, 518, 644, 519, 347, 545, @@ -2097,16 +2099,16 @@ static const yytype_int16 yyrhs[] = 425, -1, 241, 423, -1, 178, 425, -1, 178, 423, -1, 451, -1, -1, 33, -1, 59, 117, -1, 137, 653, 192, 152, 655, 656, -1, 137, 653, 655, 656, - -1, 137, 654, 192, 152, 910, 656, -1, 137, 654, - 910, 656, -1, 137, 657, 913, 290, 920, 656, -1, - 137, 657, 192, 152, 913, 290, 920, 656, -1, 419, + -1, 137, 654, 192, 152, 920, 656, -1, 137, 654, + 920, 656, -1, 137, 657, 923, 290, 930, 656, -1, + 137, 657, 192, 152, 923, 290, 930, 656, -1, 419, -1, 384, -1, 174, -1, 246, -1, 246, 419, -1, 470, -1, 250, 470, -1, 203, -1, 169, 419, -1, 81, -1, 97, -1, 373, -1, 405, -1, 426, 377, 308, -1, 426, 377, 129, -1, 426, 377, 424, -1, 426, 377, 90, -1, 442, -1, 24, 252, -1, 146, 436, -1, 156, -1, 169, 107, 484, -1, 335, -1, - 387, -1, 920, -1, 655, 522, 920, -1, 63, -1, + 387, -1, 930, -1, 655, 522, 930, -1, 63, -1, 360, -1, -1, 320, -1, 370, -1, 436, -1, 100, 650, 665, 545, 662, -1, 100, 650, 665, 192, 275, 152, 545, 662, -1, 100, 295, 355, 650, 665, 545, @@ -2114,501 +2116,507 @@ static const yytype_int16 yyrhs[] = 665, 192, 275, 152, 545, 664, -1, 100, 295, 355, 650, 665, 545, 664, -1, 666, 40, 419, 688, -1, 666, 40, 419, 687, -1, 660, -1, 661, 522, 660, - -1, 659, -1, 661, -1, 666, 40, 822, -1, 663, + -1, 659, -1, 661, -1, 666, 40, 824, -1, 663, -1, 664, 522, 663, -1, 174, -1, 246, -1, 518, - 519, -1, 518, 872, 519, -1, 560, 454, 973, 389, - 573, 753, 974, 566, -1, 98, 681, 545, 639, 679, + 519, -1, 518, 875, 519, -1, 560, 454, 983, 389, + 573, 754, 984, 566, -1, 98, 681, 545, 639, 679, 670, 675, 684, 671, 593, 676, -1, 98, 518, 686, 519, 431, 675, 684, 593, 676, -1, 98, 172, 108, 546, 431, 546, 669, -1, -1, 518, 373, 519, -1, 518, 107, 519, -1, 172, -1, 431, -1, 673, 124, 548, -1, -1, 683, -1, 672, 522, 683, -1, 457, -1, -1, 40, -1, -1, 334, -1, -1, 680, -1, - 518, 685, 519, -1, 954, -1, 594, -1, 828, -1, - 511, -1, 518, 672, 519, -1, 829, -1, 830, -1, + 518, 685, 519, -1, 964, -1, 594, -1, 831, -1, + 511, -1, 518, 672, 519, -1, 832, -1, 833, -1, -1, 552, 677, -1, 480, 288, -1, -1, 680, 682, -1, -1, 55, -1, -1, 55, -1, 288, -1, 171, -1, 123, 674, 548, -1, 280, 674, 548, -1, 102, -1, 187, -1, 339, 674, 548, -1, 145, 674, 548, -1, 168, 339, 643, -1, 168, 339, 511, -1, 310, 59, 643, -1, 310, 59, 511, -1, 168, 275, 280, - 643, -1, 168, 280, 643, -1, 141, 548, -1, 954, + 643, -1, 168, 280, 643, -1, 141, 548, -1, 964, -1, 548, -1, 406, -1, 407, -1, 3, 520, 546, -1, 3, -1, 678, -1, 685, 522, 678, -1, 688, -1, 687, -1, 518, 688, 519, -1, 518, 687, 519, - -1, 518, 984, 519, -1, 691, -1, 689, 711, -1, - 689, 710, 744, 717, -1, 689, 710, 716, 745, -1, + -1, 518, 994, 519, -1, 691, -1, 689, 711, -1, + 689, 710, 745, 717, -1, 689, 710, 716, 746, -1, 698, 689, -1, 698, 689, 711, -1, 698, 689, 710, - 744, 717, -1, 698, 689, 710, 716, 745, -1, 691, - -1, 687, -1, 382, 708, 899, -1, -1, 382, 708, - 899, 702, 753, 779, 733, 742, 840, 743, 721, -1, - 382, 707, 901, 702, 753, 779, 733, 742, 840, 743, - 721, -1, 172, 754, 690, 702, 779, 733, 742, 840, - 743, 721, -1, 172, 754, 382, 707, 901, 702, 779, - 733, 742, 840, 743, 721, -1, 752, -1, 419, 773, + 745, 717, -1, 698, 689, 710, 716, 746, -1, 691, + -1, 687, -1, 382, 708, 902, -1, -1, 382, 708, + 902, 702, 754, 781, 734, 743, 843, 744, 722, -1, + 382, 707, 904, 702, 754, 781, 734, 743, 843, 744, + 722, -1, 172, 755, 690, 702, 781, 734, 743, 843, + 744, 722, -1, 172, 755, 382, 707, 904, 702, 781, + 734, 743, 843, 744, 722, -1, 753, -1, 419, 775, -1, 689, 447, 705, 706, 689, -1, 689, 447, 705, 689, -1, 689, 218, 705, 689, -1, 689, 147, 705, - 689, -1, 693, 756, 457, 901, -1, 693, 756, 457, - 901, 181, 59, 912, -1, 693, 756, 181, 59, 912, - -1, 693, 756, 290, 697, -1, 693, 756, 290, 697, - 181, 59, 912, -1, 693, 756, 290, 697, 457, 901, - -1, 693, 756, 290, 697, 457, 901, 181, 59, 912, - -1, 694, 756, 290, 901, 220, 266, 913, 692, 912, - -1, 694, 756, 290, 901, -1, 462, -1, 463, -1, - 315, -1, 317, -1, 452, -1, 316, -1, 823, -1, - 823, 199, 518, 688, 519, -1, 759, -1, 695, -1, + 689, -1, 693, 758, 457, 904, -1, 693, 758, 457, + 904, 181, 59, 922, -1, 693, 758, 181, 59, 922, + -1, 693, 758, 290, 697, -1, 693, 758, 290, 697, + 181, 59, 922, -1, 693, 758, 290, 697, 457, 904, + -1, 693, 758, 290, 697, 457, 904, 181, 59, 922, + -1, 694, 758, 290, 904, 220, 266, 923, 692, 922, + -1, 694, 758, 290, 904, -1, 462, -1, 463, -1, + 315, -1, 317, -1, 452, -1, 316, -1, 825, -1, + 825, 199, 518, 688, 519, -1, 761, -1, 695, -1, 696, 522, 695, -1, 696, -1, 696, 522, -1, 480, 699, -1, 504, 699, -1, 480, 345, 699, -1, 700, - -1, 699, 522, 700, -1, 913, 922, 40, 701, 518, - 927, 519, -1, 250, -1, 275, 250, -1, -1, 220, + -1, 699, 522, 700, -1, 923, 932, 40, 701, 518, + 937, 519, -1, 250, -1, 275, 250, -1, -1, 220, 703, -1, -1, 425, 704, 545, -1, 423, 704, 545, -1, 241, 425, 704, 545, -1, 241, 423, 704, 545, -1, 178, 425, 704, 545, -1, 178, 423, 704, 545, -1, 451, 704, 545, -1, 419, 545, -1, 545, -1, 419, -1, -1, 30, -1, 132, -1, -1, 59, 266, - -1, 132, -1, 132, 290, 518, 870, 519, -1, 30, + -1, 132, -1, 132, 290, 518, 873, 519, -1, 30, -1, -1, 193, 282, -1, 358, 282, -1, -1, 711, -1, -1, 296, 59, 712, -1, 296, 59, 30, 714, - 715, -1, 713, -1, 712, 522, 713, -1, 822, 457, - 864, 715, -1, 822, 714, 715, -1, 41, -1, 126, + 715, -1, 713, -1, 712, 522, 713, -1, 824, 457, + 867, 715, -1, 824, 714, 715, -1, 41, -1, 126, -1, -1, 503, 164, -1, 503, 231, -1, -1, 718, 719, -1, 719, 718, -1, 718, -1, 719, -1, 716, - -1, -1, 238, 727, -1, 238, 727, 522, 728, -1, - 162, 732, 729, 731, 291, -1, 162, 732, 731, 291, - -1, 287, 728, -1, 287, 729, 731, -1, 4, 513, - -1, 9, 513, -1, 4, 313, -1, 9, 313, -1, - 9, -1, 9, 369, -1, 457, 371, 723, -1, -1, - 546, -1, -1, 722, 518, 720, 519, 726, -1, 720, - -1, 720, 518, 546, 519, -1, 720, 518, 546, 522, - 9, 519, -1, 421, 723, -1, 724, -1, -1, 354, - 518, 9, 519, -1, -1, 822, -1, 30, -1, 822, - 513, -1, 4, 313, -1, 9, 313, -1, 822, -1, - 824, -1, 509, 730, -1, 510, 730, -1, 916, -1, + -1, -1, 238, 728, -1, 238, 728, 522, 729, -1, + 162, 733, 730, 732, 291, -1, 162, 733, 732, 291, + -1, 287, 729, -1, 287, 730, 732, -1, 4, -1, + 9, -1, 829, -1, 720, 513, -1, 720, 313, -1, + 720, -1, 720, 369, -1, 457, 371, 724, -1, -1, + 546, -1, -1, 723, 518, 721, 519, 727, -1, 721, + -1, 721, 518, 546, 519, -1, 721, 518, 546, 522, + 9, 519, -1, 421, 724, -1, 725, -1, -1, 354, + 518, 9, 519, -1, -1, 824, -1, 30, -1, 824, + 513, -1, 4, 313, -1, 9, 313, -1, 824, -1, + 826, -1, 509, 731, -1, 510, 731, -1, 926, -1, 4, -1, 368, -1, 369, -1, 164, -1, 272, -1, - 181, 59, 735, -1, 181, 59, 30, -1, -1, 736, - -1, 734, 522, 736, -1, 734, -1, 734, 522, -1, - 822, -1, 737, -1, 739, -1, 738, -1, 740, -1, - 518, 519, -1, 367, 518, 870, 519, -1, 103, 518, - 870, 519, -1, 182, 391, 518, 735, 519, -1, 182, - -1, 183, -1, 186, 822, -1, -1, 336, 822, -1, - -1, 746, -1, 167, 341, 291, -1, 744, -1, -1, - 747, -1, 746, 747, -1, 748, 749, 750, -1, 167, + 181, 59, 736, -1, 181, 59, 30, -1, -1, 737, + -1, 735, 522, 737, -1, 735, -1, 735, 522, -1, + 824, -1, 738, -1, 740, -1, 739, -1, 741, -1, + 518, 519, -1, 367, 518, 873, 519, -1, 103, 518, + 873, 519, -1, 182, 391, 518, 736, 519, -1, 182, + -1, 183, -1, 186, 824, -1, -1, 336, 824, -1, + -1, 747, -1, 167, 341, 291, -1, 745, -1, -1, + 748, -1, 747, 748, -1, 749, 750, 751, -1, 167, 454, -1, 167, 273, 227, 454, -1, 167, 392, -1, - 167, 227, 392, -1, 285, 909, -1, -1, 279, -1, - 396, 244, -1, -1, 463, 518, 870, 519, -1, 751, - 522, 518, 870, 519, -1, 751, -1, 751, 522, -1, - 172, 755, -1, -1, 756, -1, 754, 522, 756, -1, - 754, -1, 754, 522, -1, 773, 768, 725, -1, 774, - 769, 725, -1, 752, 767, 725, -1, 232, 774, 769, - -1, 687, 768, 725, -1, 232, 687, 768, -1, 766, - -1, 518, 766, 519, 767, -1, 756, 315, 518, 901, - 167, 762, 757, 519, 768, -1, 756, 452, 758, 518, - 763, 167, 765, 519, 768, -1, 181, 59, 911, -1, - -1, 200, 282, -1, 148, 282, -1, -1, 823, 199, - 518, 901, 519, -1, 823, 199, 547, -1, -1, 825, - -1, 827, -1, 518, 868, 519, -1, 760, 199, 518, - 901, 519, -1, 760, 199, 547, -1, 761, -1, 762, - 761, -1, 547, -1, 518, 911, 519, -1, 763, 199, - 518, 901, 519, -1, 764, -1, 765, 764, -1, 518, - 766, 519, -1, 756, 101, 225, 756, -1, 756, 770, - 225, 756, 772, -1, 756, 225, 756, 772, -1, 756, - 269, 770, 225, 756, -1, 756, 269, 225, 756, -1, - 756, 42, 770, 225, 756, 772, -1, 756, 42, 225, - 756, 772, -1, 756, 322, 225, 756, -1, 756, 37, - 225, 756, 772, -1, 756, 383, 225, 756, 772, -1, - 40, 547, 518, 911, 519, -1, 40, 547, -1, 546, - 518, 911, 519, -1, 546, -1, 767, -1, -1, 767, - -1, 40, 518, 780, 519, -1, 40, 547, 518, 780, - 519, -1, 546, 518, 780, 519, -1, -1, 173, 771, - -1, 235, 771, -1, 364, 771, -1, 383, -1, 37, - -1, 209, -1, 300, -1, -1, 457, 518, 911, 519, - -1, 290, 822, -1, 545, -1, 545, 511, -1, 291, - 545, -1, 291, 518, 545, 519, -1, 833, 778, -1, - 369, 172, 518, 776, 519, 778, -1, 833, 777, -1, - 775, -1, 776, 522, 775, -1, 40, 518, 780, 519, - -1, -1, 504, 297, -1, -1, 477, 822, -1, -1, - 781, -1, 780, 522, 781, -1, 547, 786, 782, -1, - 80, 920, -1, -1, 546, 786, -1, 783, 522, 546, - 786, -1, 368, -1, 412, -1, 786, -1, -1, 789, - 788, -1, 390, 789, 788, -1, 789, 39, 516, 916, - 517, -1, 390, 789, 39, 516, 916, 517, -1, 789, - 39, -1, 390, 789, 39, -1, 787, -1, 784, 518, - 783, 519, 788, -1, 247, 518, 874, 519, 788, -1, - 447, 518, 783, 519, 788, -1, 3, 520, 3, -1, - 787, 520, 3, -1, 788, 516, 517, -1, 788, 516, - 916, 517, -1, -1, 791, -1, 793, -1, 795, -1, - 799, -1, 805, -1, 806, 821, -1, 806, 518, 916, - 519, -1, 793, -1, 796, -1, 800, -1, 805, -1, - 919, 792, -1, 518, 871, 519, -1, -1, 216, -1, - 217, -1, 397, -1, 54, -1, 342, -1, 165, 794, - -1, 136, 325, -1, 115, 792, -1, 112, 792, -1, - 283, 792, -1, 57, -1, 518, 916, 519, -1, -1, - 797, -1, 798, -1, 797, -1, 798, -1, 56, 804, - 518, 870, 519, -1, 56, 804, -1, 801, -1, 802, - -1, 801, -1, 802, -1, 803, 518, 916, 519, -1, - 803, -1, 72, 804, -1, 71, 804, -1, 464, -1, - 268, 72, 804, -1, 268, 71, 804, -1, 270, 804, - -1, 467, -1, -1, 430, 518, 916, 519, 807, -1, - 430, 807, -1, 429, 518, 916, 519, 807, -1, 429, - 807, -1, 219, -1, 504, 429, 501, -1, 482, 429, - 501, -1, -1, 498, -1, 499, -1, 263, -1, 264, - -1, 109, -1, 110, -1, 189, -1, 190, -1, 259, - -1, 260, -1, 378, -1, 379, -1, 257, -1, 258, - -1, 253, -1, 254, -1, 474, -1, 475, -1, 337, - -1, 338, -1, 113, -1, 114, -1, 69, -1, 68, - -1, 256, -1, 255, -1, 808, -1, 809, -1, 810, + 167, 227, 392, -1, 285, 919, -1, -1, 279, -1, + 396, 244, -1, -1, 463, 518, 873, 519, -1, 752, + 522, 518, 873, 519, -1, 752, -1, 752, 522, -1, + 172, 756, -1, -1, 758, -1, 755, 522, 758, -1, + 755, -1, 755, 522, -1, 547, 523, -1, 775, 770, + 726, -1, 757, 775, 726, -1, 776, 771, 726, -1, + 757, 776, 726, -1, 753, 769, 726, -1, 232, 776, + 771, -1, 687, 770, 726, -1, 757, 687, 726, -1, + 232, 687, 770, -1, 768, -1, 518, 768, 519, 769, + -1, 757, 518, 768, 519, -1, 758, 315, 518, 904, + 167, 764, 759, 519, 770, -1, 758, 452, 760, 518, + 765, 167, 767, 519, 770, -1, 181, 59, 921, -1, + -1, 200, 282, -1, 148, 282, -1, -1, 825, 199, + 518, 904, 519, -1, 825, 199, 547, -1, 827, -1, + 830, -1, 518, 871, 519, -1, 762, 199, 518, 904, + 519, -1, 762, 199, 547, -1, 763, -1, 764, 763, + -1, 547, -1, 518, 921, 519, -1, 765, 199, 518, + 904, 519, -1, 766, -1, 767, 766, -1, 518, 768, + 519, -1, 758, 101, 225, 758, -1, 758, 772, 225, + 758, 774, -1, 758, 225, 758, 774, -1, 758, 269, + 772, 225, 758, -1, 758, 269, 225, 758, -1, 758, + 42, 772, 225, 758, 774, -1, 758, 42, 225, 758, + 774, -1, 758, 322, 225, 758, -1, 758, 37, 225, + 758, 774, -1, 758, 383, 225, 758, 774, -1, 40, + 547, 518, 921, 519, -1, 40, 547, -1, 546, 518, + 921, 519, -1, 546, -1, 769, -1, -1, 769, -1, + 40, 518, 782, 519, -1, 40, 547, 518, 782, 519, + -1, 546, 518, 782, 519, -1, -1, 173, 773, -1, + 235, 773, -1, 364, 773, -1, 383, -1, 37, -1, + 209, -1, 300, -1, -1, 457, 518, 921, 519, -1, + 290, 824, -1, 545, -1, 545, 511, -1, 291, 545, + -1, 291, 518, 545, 519, -1, 836, 780, -1, 369, + 172, 518, 778, 519, 780, -1, 836, 779, -1, 777, + -1, 778, 522, 777, -1, 40, 518, 782, 519, -1, + -1, 504, 297, -1, -1, 477, 824, -1, -1, 783, + -1, 782, 522, 783, -1, 547, 788, 784, -1, 80, + 930, -1, -1, 546, 788, -1, 785, 522, 546, 788, + -1, 368, -1, 412, -1, 788, -1, -1, 791, 790, + -1, 390, 791, 790, -1, 791, 39, 516, 926, 517, + -1, 390, 791, 39, 516, 926, 517, -1, 791, 39, + -1, 390, 791, 39, -1, 789, -1, 786, 518, 785, + 519, 790, -1, 247, 518, 877, 519, 790, -1, 447, + 518, 785, 519, 790, -1, 3, 520, 3, -1, 789, + 520, 3, -1, 790, 516, 517, -1, 790, 516, 926, + 517, -1, -1, 793, -1, 795, -1, 797, -1, 801, + -1, 807, -1, 808, 823, -1, 808, 518, 926, 519, + -1, 795, -1, 798, -1, 802, -1, 807, -1, 929, + 794, -1, 518, 874, 519, -1, -1, 216, -1, 217, + -1, 397, -1, 54, -1, 342, -1, 165, 796, -1, + 136, 325, -1, 115, 794, -1, 112, 794, -1, 283, + 794, -1, 57, -1, 518, 926, 519, -1, -1, 799, + -1, 800, -1, 799, -1, 800, -1, 56, 806, 518, + 873, 519, -1, 56, 806, -1, 803, -1, 804, -1, + 803, -1, 804, -1, 805, 518, 926, 519, -1, 805, + -1, 72, 806, -1, 71, 806, -1, 464, -1, 268, + 72, 806, -1, 268, 71, 806, -1, 270, 806, -1, + 467, -1, -1, 430, 518, 926, 519, 809, -1, 430, + 809, -1, 429, 518, 926, 519, 809, -1, 429, 809, + -1, 219, -1, 504, 429, 501, -1, 482, 429, 501, + -1, -1, 498, -1, 499, -1, 263, -1, 264, -1, + 109, -1, 110, -1, 189, -1, 190, -1, 259, -1, + 260, -1, 378, -1, 379, -1, 257, -1, 258, -1, + 253, -1, 254, -1, 474, -1, 475, -1, 337, -1, + 338, -1, 113, -1, 114, -1, 69, -1, 68, -1, + 256, -1, 255, -1, 810, -1, 811, -1, 812, -1, + 813, -1, 814, -1, 815, -1, 816, -1, 817, -1, + 818, -1, 819, -1, 820, -1, 821, -1, 822, -1, + 810, 431, 811, -1, 812, 431, 813, -1, 812, 431, + 814, -1, 812, 431, 815, -1, 813, 431, 814, -1, + 813, 431, 815, -1, 814, 431, 815, -1, -1, 826, + -1, 824, 11, 788, -1, 824, 80, 930, -1, 824, + 46, 429, 501, 824, -1, 509, 824, -1, 510, 824, + -1, 824, 509, 824, -1, 824, 510, 824, -1, 824, + 511, 824, -1, 824, 512, 824, -1, 824, 15, 824, + -1, 824, 513, 824, -1, 824, 514, 824, -1, 824, + 16, 824, -1, 824, 505, 824, -1, 824, 506, 824, + -1, 824, 507, 824, -1, 824, 19, 824, -1, 824, + 20, 824, -1, 824, 21, 824, -1, 824, 866, 824, + -1, 866, 824, -1, 824, 866, -1, 824, 36, 824, + -1, 824, 295, 824, -1, 275, 824, -1, 502, 824, + -1, 824, 177, 824, -1, 824, 237, 824, -1, 824, + 237, 824, 145, 824, -1, 824, 502, 237, 824, -1, + 824, 502, 237, 824, 145, 824, -1, 824, 194, 824, + -1, 824, 194, 824, 145, 824, -1, 824, 502, 194, + 824, -1, 824, 502, 194, 824, 145, 824, -1, 824, + 394, 431, 824, -1, 824, 394, 431, 824, 145, 824, + -1, 824, 502, 394, 431, 824, -1, 824, 502, 394, + 431, 824, 145, 824, -1, 824, 222, 280, -1, 824, + 223, -1, 824, 222, 275, 280, -1, 824, 275, 280, + -1, 824, 278, -1, 824, 17, 824, -1, 824, 18, + 824, -1, 855, 302, 855, -1, 824, 222, 438, -1, + 824, 222, 275, 438, -1, 824, 222, 160, -1, 824, + 222, 275, 160, -1, 824, 222, 449, -1, 824, 222, + 275, 449, -1, 824, 222, 132, 172, 824, -1, 824, + 222, 275, 132, 172, 824, -1, 824, 222, 285, 518, + 877, 519, -1, 824, 222, 275, 285, 518, 877, 519, + -1, 824, 53, 901, 825, 36, 824, -1, 824, 502, + 53, 901, 825, 36, 824, -1, 824, 53, 416, 825, + 36, 824, -1, 824, 502, 53, 416, 825, 36, 824, + -1, 824, 199, 887, -1, 824, 502, 199, 887, -1, + 824, 868, 863, 687, -1, 824, 868, 863, 518, 824, + 519, -1, 117, -1, 511, 83, 518, 824, 519, -1, + 83, 518, 824, 519, -1, 511, 910, 914, 918, -1, + 546, 520, 511, 910, 914, 918, -1, 826, -1, 825, + 11, 788, -1, 509, 825, -1, 510, 825, -1, 825, + 509, 825, -1, 825, 510, 825, -1, 825, 511, 825, + -1, 825, 512, 825, -1, 825, 15, 825, -1, 825, + 513, 825, -1, 825, 514, 825, -1, 825, 16, 825, + -1, 825, 505, 825, -1, 825, 506, 825, -1, 825, + 507, 825, -1, 825, 19, 825, -1, 825, 20, 825, + -1, 825, 21, 825, -1, 825, 866, 825, -1, 866, + 825, -1, 825, 866, -1, 825, 222, 132, 172, 825, + -1, 825, 222, 275, 132, 172, 825, -1, 825, 222, + 285, 518, 877, 519, -1, 825, 222, 275, 285, 518, + 877, 519, -1, 827, -1, 828, 900, -1, 895, -1, + 925, -1, 687, -1, 687, 549, -1, 152, 687, -1, + 742, 518, 873, 519, -1, 518, 824, 519, -1, 830, + -1, 855, -1, 524, -1, 10, -1, 525, 552, -1, + 829, -1, 832, -1, 833, -1, 835, -1, 888, -1, + 831, -1, 839, -1, 39, 687, -1, 39, 516, 874, + 517, -1, 526, 9, -1, 516, 874, 517, -1, 527, + 858, 528, -1, 247, 527, 862, 528, -1, 924, 518, + 519, -1, 924, 518, 875, 710, 709, 519, -1, 924, + 518, 466, 876, 710, 709, 519, -1, 924, 518, 875, + 522, 466, 876, 710, 709, 519, -1, 924, 518, 30, + 875, 710, 709, 519, -1, 924, 518, 132, 875, 710, + 709, 519, -1, 834, 840, 841, 842, 846, -1, 837, + -1, 834, -1, 837, -1, 81, 167, 518, 824, 519, + -1, 66, 518, 824, 40, 788, 519, -1, 441, 518, + 824, 40, 788, 519, -1, 159, 518, 878, 519, -1, + 303, 518, 880, 519, -1, 321, 518, 882, 519, -1, + 414, 518, 883, 519, -1, 435, 518, 824, 40, 788, + 519, -1, 437, 518, 58, 886, 519, -1, 437, 518, + 233, 886, 519, -1, 437, 518, 432, 886, 519, -1, + 437, 518, 886, 519, -1, 281, 518, 824, 522, 824, + 519, -1, 79, 518, 873, 519, -1, 893, -1, 516, + 824, 167, 838, 199, 824, 517, -1, 516, 824, 167, + 838, 199, 826, 192, 824, 517, -1, 481, 181, 518, + 711, 519, -1, -1, 163, 518, 477, 824, 519, -1, + 163, 518, 824, 519, -1, -1, 155, -1, -1, 479, + 844, -1, -1, 845, -1, 844, 522, 845, -1, 546, + 40, 847, -1, 301, 847, -1, 301, 546, -1, -1, + 518, 848, 849, 710, 850, 519, -1, 546, -1, -1, + 310, 59, 872, -1, -1, 340, 851, 853, -1, 369, + 851, 853, -1, 184, 851, 853, -1, -1, 852, -1, + 53, 852, 36, 852, -1, 444, 324, -1, 444, 166, + -1, 104, 368, -1, 824, 324, -1, 824, 166, -1, + 148, 104, 368, -1, 148, 181, -1, 148, 428, -1, + 148, 273, 298, -1, -1, 368, 518, 873, 519, -1, + 368, 518, 519, -1, 854, -1, 518, 872, 522, 824, + 519, -1, 547, 523, 824, -1, 856, -1, 857, 522, + 856, -1, 857, -1, 857, 522, -1, 824, 523, 824, + -1, 859, -1, 860, 522, 859, -1, 860, -1, 860, + 522, -1, 861, -1, -1, 38, -1, 399, -1, 30, + -1, 8, -1, 865, -1, 509, -1, 510, -1, 511, + -1, 512, -1, 15, -1, 513, -1, 514, -1, 16, + -1, 505, -1, 506, -1, 507, -1, 19, -1, 20, + -1, 21, -1, 8, -1, 292, 518, 869, 519, -1, + 864, -1, 292, 518, 869, 519, -1, 864, -1, 292, + 518, 869, 519, -1, 237, -1, 502, 237, -1, 177, + -1, 502, 177, -1, 194, -1, 502, 194, -1, 864, + -1, 546, 520, 869, -1, 826, -1, 870, 522, 826, + -1, 870, -1, 870, 522, -1, 824, -1, 872, 522, + 824, -1, 872, -1, 872, 522, -1, 873, -1, -1, + 876, -1, 875, 522, 876, -1, 824, -1, 933, 13, + 824, -1, 933, 14, 824, -1, 788, -1, 877, 522, + 788, -1, 879, 172, 824, -1, -1, 3, -1, 810, -1, 811, -1, 812, -1, 813, -1, 814, -1, 815, -1, 816, -1, 817, -1, 818, -1, 819, -1, 820, - -1, 808, 431, 809, -1, 810, 431, 811, -1, 810, - 431, 812, -1, 810, 431, 813, -1, 811, 431, 812, - -1, 811, 431, 813, -1, 812, 431, 813, -1, -1, - 824, -1, 822, 11, 786, -1, 822, 80, 920, -1, - 822, 46, 429, 501, 822, -1, 509, 822, -1, 510, - 822, -1, 822, 509, 822, -1, 822, 510, 822, -1, - 822, 511, 822, -1, 822, 512, 822, -1, 822, 15, - 822, -1, 822, 513, 822, -1, 822, 514, 822, -1, - 822, 16, 822, -1, 822, 505, 822, -1, 822, 506, - 822, -1, 822, 507, 822, -1, 822, 19, 822, -1, - 822, 20, 822, -1, 822, 21, 822, -1, 822, 863, - 822, -1, 863, 822, -1, 822, 863, -1, 822, 36, - 822, -1, 822, 295, 822, -1, 275, 822, -1, 502, - 822, -1, 822, 177, 822, -1, 822, 237, 822, -1, - 822, 237, 822, 145, 822, -1, 822, 502, 237, 822, - -1, 822, 502, 237, 822, 145, 822, -1, 822, 194, - 822, -1, 822, 194, 822, 145, 822, -1, 822, 502, - 194, 822, -1, 822, 502, 194, 822, 145, 822, -1, - 822, 394, 431, 822, -1, 822, 394, 431, 822, 145, - 822, -1, 822, 502, 394, 431, 822, -1, 822, 502, - 394, 431, 822, 145, 822, -1, 822, 222, 280, -1, - 822, 223, -1, 822, 222, 275, 280, -1, 822, 275, - 280, -1, 822, 278, -1, 822, 17, 822, -1, 822, - 18, 822, -1, 852, 302, 852, -1, 822, 222, 438, - -1, 822, 222, 275, 438, -1, 822, 222, 160, -1, - 822, 222, 275, 160, -1, 822, 222, 449, -1, 822, - 222, 275, 449, -1, 822, 222, 132, 172, 822, -1, - 822, 222, 275, 132, 172, 822, -1, 822, 222, 285, - 518, 874, 519, -1, 822, 222, 275, 285, 518, 874, - 519, -1, 822, 53, 898, 823, 36, 822, -1, 822, - 502, 53, 898, 823, 36, 822, -1, 822, 53, 416, - 823, 36, 822, -1, 822, 502, 53, 416, 823, 36, - 822, -1, 822, 199, 884, -1, 822, 502, 199, 884, - -1, 822, 865, 860, 687, -1, 822, 865, 860, 518, - 822, 519, -1, 117, -1, 511, 83, 518, 822, 519, - -1, 83, 518, 822, 519, -1, 511, 904, 908, -1, - 546, 520, 511, 904, 908, -1, 824, -1, 823, 11, - 786, -1, 509, 823, -1, 510, 823, -1, 823, 509, - 823, -1, 823, 510, 823, -1, 823, 511, 823, -1, - 823, 512, 823, -1, 823, 15, 823, -1, 823, 513, - 823, -1, 823, 514, 823, -1, 823, 16, 823, -1, - 823, 505, 823, -1, 823, 506, 823, -1, 823, 507, - 823, -1, 823, 19, 823, -1, 823, 20, 823, -1, - 823, 21, 823, -1, 823, 863, 823, -1, 863, 823, - -1, 823, 863, -1, 823, 222, 132, 172, 823, -1, - 823, 222, 275, 132, 172, 823, -1, 823, 222, 285, - 518, 874, 519, -1, 823, 222, 275, 285, 518, 874, - 519, -1, 825, -1, 826, 897, -1, 892, -1, 915, - -1, 687, -1, 687, 549, -1, 152, 687, -1, 741, - 518, 870, 519, -1, 518, 822, 519, -1, 827, -1, - 852, -1, 523, -1, 10, -1, 829, -1, 830, -1, - 832, -1, 885, -1, 828, -1, 836, -1, 39, 687, - -1, 39, 516, 871, 517, -1, 524, 9, -1, 525, - 552, -1, 516, 871, 517, -1, 526, 855, 527, -1, - 247, 526, 859, 527, -1, 914, 518, 519, -1, 914, - 518, 872, 710, 709, 519, -1, 914, 518, 466, 873, - 710, 709, 519, -1, 914, 518, 872, 522, 466, 873, - 710, 709, 519, -1, 914, 518, 30, 872, 710, 709, - 519, -1, 914, 518, 132, 872, 710, 709, 519, -1, - 831, 837, 838, 839, 843, -1, 834, -1, 831, -1, - 834, -1, 81, 167, 518, 822, 519, -1, 66, 518, - 822, 40, 786, 519, -1, 441, 518, 822, 40, 786, - 519, -1, 159, 518, 875, 519, -1, 303, 518, 877, - 519, -1, 321, 518, 879, 519, -1, 414, 518, 880, - 519, -1, 435, 518, 822, 40, 786, 519, -1, 437, - 518, 58, 883, 519, -1, 437, 518, 233, 883, 519, - -1, 437, 518, 432, 883, 519, -1, 437, 518, 883, - 519, -1, 281, 518, 822, 522, 822, 519, -1, 79, - 518, 870, 519, -1, 890, -1, 516, 822, 167, 835, - 199, 822, 517, -1, 516, 822, 167, 835, 199, 824, - 192, 822, 517, -1, 481, 181, 518, 711, 519, -1, - -1, 163, 518, 477, 822, 519, -1, 163, 518, 822, - 519, -1, -1, 155, -1, -1, 479, 841, -1, -1, - 842, -1, 841, 522, 842, -1, 546, 40, 844, -1, - 301, 844, -1, 301, 546, -1, -1, 518, 845, 846, - 710, 847, 519, -1, 546, -1, -1, 310, 59, 869, - -1, -1, 340, 848, 850, -1, 369, 848, 850, -1, - 184, 848, 850, -1, -1, 849, -1, 53, 849, 36, - 849, -1, 444, 324, -1, 444, 166, -1, 104, 368, - -1, 822, 324, -1, 822, 166, -1, 148, 104, 368, - -1, 148, 181, -1, 148, 428, -1, 148, 273, 298, - -1, -1, 368, 518, 870, 519, -1, 368, 518, 519, - -1, 851, -1, 518, 869, 522, 822, 519, -1, 547, - 528, 822, -1, 853, -1, 854, 522, 853, -1, 854, - -1, 854, 522, -1, 822, 528, 822, -1, 856, -1, - 857, 522, 856, -1, 857, -1, 857, 522, -1, 858, - -1, -1, 38, -1, 399, -1, 30, -1, 8, -1, - 862, -1, 509, -1, 510, -1, 511, -1, 512, -1, - 15, -1, 513, -1, 514, -1, 16, -1, 505, -1, - 506, -1, 507, -1, 19, -1, 20, -1, 21, -1, - 8, -1, 292, 518, 866, 519, -1, 861, -1, 292, - 518, 866, 519, -1, 861, -1, 292, 518, 866, 519, - -1, 237, -1, 502, 237, -1, 177, -1, 502, 177, - -1, 194, -1, 502, 194, -1, 861, -1, 546, 520, - 866, -1, 824, -1, 867, 522, 824, -1, 867, -1, - 867, 522, -1, 822, -1, 869, 522, 822, -1, 869, - -1, 869, 522, -1, 870, -1, -1, 873, -1, 872, - 522, 873, -1, 822, -1, 923, 13, 822, -1, 923, - 14, 822, -1, 786, -1, 874, 522, 786, -1, 876, - 172, 822, -1, -1, 3, -1, 808, -1, 809, -1, - 810, -1, 811, -1, 812, -1, 813, -1, 814, -1, - 815, -1, 816, -1, 817, -1, 818, -1, 819, -1, - 820, -1, 548, -1, 822, 878, 881, 882, -1, 822, - 878, 881, -1, 318, 822, -1, 823, 199, 823, -1, - -1, 822, 881, 882, -1, 822, 882, 881, -1, 822, - 881, -1, 822, 882, -1, 869, -1, -1, 172, 822, - -1, 167, 822, -1, 822, 172, 870, -1, 172, 870, - -1, 870, -1, 687, -1, 518, 870, 519, -1, 892, - -1, 827, -1, 65, 889, 886, 888, 143, -1, 887, - -1, 886, 887, -1, 476, 822, 427, 822, -1, 139, - 822, -1, -1, 822, -1, -1, 891, -1, 890, 522, - 891, -1, 546, -1, 546, -1, 546, 549, -1, 516, - 822, 517, -1, 516, 893, 528, 893, 517, -1, 516, - 893, 528, 893, 528, 893, 517, -1, 516, 893, 528, - 510, 528, 893, 517, -1, 822, -1, -1, -1, 894, - 550, -1, -1, 518, 519, -1, 518, 872, 519, -1, - 520, 551, 895, -1, 516, 822, 517, -1, 516, 893, - 528, 893, 517, -1, 516, 893, 528, 893, 528, 893, - 517, -1, 516, 893, 528, 510, 528, 893, 517, -1, - -1, 897, 896, -1, 45, -1, -1, 901, -1, -1, - 902, -1, 900, 522, 902, -1, 900, -1, 900, 522, - -1, 822, 40, 924, -1, 822, 3, -1, 822, -1, - 148, 518, 911, 519, -1, 148, 546, -1, 903, -1, - -1, 822, 40, 546, -1, 905, -1, 906, 522, 905, - -1, 906, -1, 906, 522, -1, 355, 518, 907, 519, - -1, 355, 905, -1, -1, 545, -1, 909, 522, 545, - -1, 913, -1, 910, 522, 913, -1, 910, -1, 910, - 522, -1, 911, -1, 518, 911, 519, -1, 547, -1, - 918, -1, 546, 549, -1, 916, -1, 4, -1, 548, - 894, -1, 6, -1, 7, -1, 914, 548, -1, 914, - 518, 872, 710, 709, 519, 548, -1, 790, 548, -1, - 806, 518, 822, 519, 821, -1, 806, 916, 821, -1, - 806, 548, 821, -1, 438, -1, 160, -1, 280, -1, - 9, -1, 3, -1, 996, -1, 1001, -1, 3, -1, - 996, -1, 998, -1, 3, -1, 996, -1, 999, -1, - 546, -1, 546, 921, -1, 520, 551, -1, 921, 520, - 551, -1, 518, 911, 519, -1, -1, 917, -1, 552, - -1, 5, -1, 326, 913, 926, 40, 927, -1, 518, - 874, 519, -1, -1, 686, -1, 555, -1, 667, -1, - 668, -1, 972, -1, 984, -1, 100, 373, 545, 929, - -1, 100, 373, 192, 275, 152, 545, 929, -1, 100, - 295, 355, 373, 545, 929, -1, 929, 930, -1, -1, - 604, -1, 931, -1, 580, -1, 991, -1, 100, 937, - 203, 934, 935, 290, 545, 933, 518, 574, 519, 936, - 779, -1, 100, 937, 203, 934, 192, 275, 152, 633, - 290, 545, 933, 518, 574, 519, 936, 779, -1, 546, - -1, 457, 932, -1, -1, 89, -1, -1, 633, -1, - -1, 480, 619, -1, -1, 448, -1, -1, 32, 419, - 773, 389, 373, 913, -1, 32, 419, 192, 152, 773, - 389, 373, 913, -1, 32, 384, 545, 389, 373, 913, - -1, 32, 384, 192, 152, 545, 389, 373, 913, -1, - 32, 470, 545, 389, 373, 913, -1, 32, 470, 192, - 152, 545, 389, 373, 913, -1, 168, 75, 940, -1, - 75, 940, -1, 546, -1, -1, 84, 290, 943, 545, - 222, 942, -1, 84, 290, 82, 822, 222, 942, -1, - 548, -1, 280, -1, 419, -1, 384, -1, 174, -1, - 246, -1, 246, 419, -1, 470, -1, 108, -1, 203, - -1, 373, -1, 442, -1, 154, 108, 548, 676, -1, - 154, 108, 546, 431, 548, 676, -1, 198, 108, 548, - -1, 153, 949, -1, 153, 953, 947, 949, -1, 153, - 468, 949, -1, 153, 518, 952, 519, 949, -1, 468, - -1, -1, 954, -1, 594, -1, -1, 938, -1, 591, - -1, 533, -1, 990, -1, 939, -1, 668, -1, 993, - -1, 658, -1, 928, -1, 580, -1, 604, -1, 576, - -1, 544, -1, 972, -1, 652, -1, 587, -1, 931, - -1, 555, -1, 963, -1, 579, -1, 925, -1, 553, - -1, 686, -1, 600, -1, 667, -1, 586, -1, 967, - -1, 981, -1, 957, -1, 984, -1, 991, -1, 3, - -1, 996, -1, 1000, -1, 950, -1, 548, -1, 955, - -1, 952, 522, 955, -1, 35, -1, 34, -1, 438, - -1, 160, -1, 290, -1, 951, -1, 956, 948, -1, - 950, -1, 953, -1, 389, 958, -1, 389, 241, 958, - -1, 389, 388, 958, -1, 389, 178, 958, -1, 389, - 465, 958, -1, 959, -1, 988, 172, 104, -1, 429, - 501, 961, -1, 373, 548, -1, 988, 431, 962, -1, - 988, 507, 962, -1, 822, -1, 548, -1, 3, -1, - 806, 548, 821, -1, 806, 518, 916, 519, 548, -1, - 594, -1, 117, -1, 241, -1, 960, -1, 962, 522, - 960, -1, 240, 965, -1, 964, 214, 965, 966, -1, - 964, 214, 965, 172, 546, 966, -1, 964, 214, 965, - 172, 548, 966, -1, -1, 168, -1, 548, -1, 546, - -1, -1, 469, 548, -1, 469, 546, -1, 458, 969, - 971, 947, -1, 458, 969, 971, 947, 545, 922, -1, - 458, 969, 971, 947, 976, -1, 458, 518, 970, 519, - -1, 458, 518, 970, 519, 545, 922, -1, 953, -1, - 468, -1, 171, -1, 173, -1, 3, -1, 173, -1, - -1, 968, -1, 970, 522, 968, -1, 171, -1, -1, - 560, 122, 172, 973, 975, 974, 566, -1, 439, 704, - 973, -1, 773, -1, 773, 546, -1, 773, 40, 546, - -1, 477, 822, -1, -1, 457, 755, -1, -1, 953, - 947, -1, 953, 947, 545, 922, -1, 47, 979, 548, - 980, 676, -1, 47, 192, 275, 152, 979, 548, 980, - 676, -1, 128, 552, -1, 128, 108, 552, -1, 128, - 108, 192, 152, 552, -1, 108, -1, -1, 40, 546, - -1, -1, 357, 983, -1, 357, 241, 983, -1, 357, - 388, 983, -1, 357, 178, 983, -1, 357, 465, 983, - -1, 988, -1, 30, -1, 982, -1, 429, 501, -1, - 433, 224, 236, -1, 986, 686, -1, 415, 686, -1, - 415, 989, -1, 986, 989, -1, 986, 429, 501, -1, - 986, 433, 224, 236, -1, 986, 30, 987, -1, 986, - -1, 127, -1, 126, -1, 393, -1, 985, -1, 420, - -1, -1, 546, -1, 988, 520, 546, -1, 546, -1, - 989, 520, 546, -1, 61, 831, -1, 100, 650, 470, - 545, 639, 936, 40, 686, 992, -1, 100, 650, 470, - 192, 275, 152, 545, 639, 936, 40, 686, 992, -1, - 100, 295, 355, 650, 470, 545, 639, 936, 40, 686, - 992, -1, 100, 650, 345, 470, 545, 518, 643, 519, - 936, 40, 686, 992, -1, 100, 295, 355, 650, 345, - 470, 545, 518, 643, 519, 936, 40, 686, 992, -1, - 480, 74, 293, -1, 480, 64, 74, 293, -1, 480, - 241, 74, 293, -1, -1, 100, 650, 419, 995, 40, - 686, 994, -1, 100, 650, 419, 192, 275, 152, 995, - 40, 686, 994, -1, 100, 295, 355, 650, 419, 995, - 40, 686, 994, -1, 480, 107, -1, 480, 273, 107, - -1, -1, 545, 639, 626, 618, -1, 22, -1, 23, - -1, 24, -1, 25, -1, 26, -1, 27, -1, 28, - -1, 29, -1, 31, -1, 32, -1, 33, -1, 43, - -1, 44, -1, 46, -1, 47, -1, 48, -1, 50, - -1, 51, -1, 52, -1, 59, -1, 60, -1, 61, - -1, 62, -1, 63, -1, 64, -1, 67, -1, 68, - -1, 69, -1, 70, -1, 73, -1, 75, -1, 76, - -1, 77, -1, 78, -1, 84, -1, 85, -1, 86, - -1, 87, -1, 88, -1, 90, -1, 91, -1, 92, - -1, 94, -1, 95, -1, 96, -1, 97, -1, 98, - -1, 99, -1, 102, -1, 103, -1, 104, -1, 105, - -1, 106, -1, 107, -1, 108, -1, 109, -1, 110, - -1, 111, -1, 113, -1, 114, -1, 116, -1, 118, - -1, 120, -1, 121, -1, 122, -1, 123, -1, 124, - -1, 125, -1, 128, -1, 129, -1, 130, -1, 131, - -1, 134, -1, 135, -1, 136, -1, 137, -1, 138, - -1, 140, -1, 141, -1, 142, -1, 144, -1, 145, - -1, 146, -1, 148, -1, 149, -1, 150, -1, 151, - -1, 153, -1, 154, -1, 155, -1, 156, -1, 157, - -1, 158, -1, 161, -1, 163, -1, 164, -1, 166, - -1, 168, -1, 170, -1, 174, -1, 175, -1, 178, - -1, 180, -1, 184, -1, 185, -1, 187, -1, 188, - -1, 189, -1, 190, -1, 191, -1, 192, -1, 193, - -1, 195, -1, 196, -1, 197, -1, 198, -1, 200, - -1, 201, -1, 202, -1, 203, -1, 204, -1, 205, - -1, 206, -1, 208, -1, 211, -1, 212, -1, 213, - -1, 214, -1, 215, -1, 221, -1, 224, -1, 226, - -1, 227, -1, 228, -1, 229, -1, 230, -1, 231, - -1, 234, -1, 236, -1, 239, -1, 240, -1, 241, - -1, 242, -1, 243, -1, 244, -1, 245, -1, 246, - -1, 248, -1, 249, -1, 250, -1, 251, -1, 252, - -1, 253, -1, 254, -1, 255, -1, 256, -1, 257, - -1, 258, -1, 259, -1, 260, -1, 261, -1, 262, - -1, 263, -1, 264, -1, 265, -1, 266, -1, 267, - -1, 271, -1, 272, -1, 273, -1, 276, -1, 277, - -1, 279, -1, 282, -1, 284, -1, 285, -1, 286, - -1, 288, -1, 289, -1, 292, -1, 293, -1, 294, - -1, 297, -1, 298, -1, 301, -1, 304, -1, 305, - -1, 306, -1, 307, -1, 308, -1, 309, -1, 310, - -1, 311, -1, 312, -1, 313, -1, 314, -1, 319, - -1, 320, -1, 323, -1, 324, -1, 326, -1, 327, - -1, 328, -1, 330, -1, 331, -1, 332, -1, 333, - -1, 334, -1, 335, -1, 337, -1, 338, -1, 339, - -1, 340, -1, 341, -1, 343, -1, 344, -1, 345, - -1, 346, -1, 348, -1, 349, -1, 350, -1, 351, - -1, 352, -1, 353, -1, 354, -1, 355, -1, 356, - -1, 357, -1, 358, -1, 359, -1, 360, -1, 362, - -1, 363, -1, 365, -1, 366, -1, 367, -1, 369, - -1, 370, -1, 371, -1, 372, -1, 373, -1, 374, - -1, 375, -1, 376, -1, 377, -1, 378, -1, 379, - -1, 380, -1, 381, -1, 384, -1, 385, -1, 386, - -1, 387, -1, 388, -1, 389, -1, 391, -1, 392, - -1, 395, -1, 396, -1, 398, -1, 400, -1, 401, - -1, 402, -1, 403, -1, 404, -1, 405, -1, 406, - -1, 407, -1, 408, -1, 409, -1, 410, -1, 411, - -1, 413, -1, 417, -1, 418, -1, 420, -1, 422, - -1, 423, -1, 424, -1, 425, -1, 426, -1, 428, - -1, 433, -1, 434, -1, 436, -1, 439, -1, 440, - -1, 442, -1, 443, -1, 444, -1, 445, -1, 446, - -1, 449, -1, 450, -1, 451, -1, 453, -1, 454, - -1, 455, -1, 456, -1, 458, -1, 459, -1, 460, - -1, 461, -1, 462, -1, 465, -1, 467, -1, 469, - -1, 470, -1, 471, -1, 472, -1, 473, -1, 474, - -1, 475, -1, 478, -1, 481, -1, 482, -1, 483, - -1, 484, -1, 485, -1, 486, -1, 498, -1, 499, - -1, 500, -1, 501, -1, 53, -1, 54, -1, 56, - -1, 57, -1, 71, -1, 72, -1, 79, -1, 83, - -1, 112, -1, 115, -1, 152, -1, 159, -1, 165, - -1, 176, -1, 182, -1, 183, -1, 210, -1, 216, - -1, 217, -1, 219, -1, 247, -1, 268, -1, 270, - -1, 274, -1, 281, -1, 283, -1, 299, -1, 303, - -1, 321, -1, 325, -1, 342, -1, 368, -1, 390, - -1, 397, -1, 412, -1, 414, -1, 429, -1, 430, - -1, 435, -1, 437, -1, 441, -1, 463, -1, 464, - -1, 487, -1, 488, -1, 489, -1, 490, -1, 491, - -1, 492, -1, 493, -1, 494, -1, 495, -1, 496, - -1, 497, -1, 42, -1, 49, -1, 55, -1, 81, - -1, 89, -1, 101, -1, 171, -1, 173, -1, 176, + -1, 821, -1, 822, -1, 548, -1, 824, 881, 884, + 885, -1, 824, 881, 884, -1, 318, 824, -1, 825, + 199, 825, -1, -1, 824, 884, 885, -1, 824, 885, + 884, -1, 824, 884, -1, 824, 885, -1, 872, -1, + -1, 172, 824, -1, 167, 824, -1, 824, 172, 873, + -1, 172, 873, -1, 873, -1, 687, -1, 518, 873, + 519, -1, 895, -1, 830, -1, 65, 892, 889, 891, + 143, -1, 890, -1, 889, 890, -1, 476, 824, 427, + 824, -1, 139, 824, -1, -1, 824, -1, -1, 894, + -1, 893, 522, 894, -1, 546, -1, 546, -1, 546, + 549, -1, 516, 824, 517, -1, 516, 896, 523, 896, + 517, -1, 516, 896, 523, 896, 523, 896, 517, -1, + 516, 896, 523, 510, 523, 896, 517, -1, 824, -1, + -1, -1, 897, 550, -1, -1, 518, 519, -1, 518, + 875, 519, -1, 520, 551, 898, -1, 516, 824, 517, + -1, 516, 896, 523, 896, 517, -1, 516, 896, 523, + 896, 523, 896, 517, -1, 516, 896, 523, 510, 523, + 896, 517, -1, -1, 900, 899, -1, 45, -1, -1, + 904, -1, -1, 905, -1, 903, 522, 905, -1, 903, + -1, 903, 522, -1, 824, 40, 934, -1, 824, 3, + -1, 824, -1, 546, 523, 824, -1, 148, 518, 909, + 519, -1, 148, 907, -1, 547, -1, 907, 520, 547, + -1, 907, -1, 908, 522, 907, -1, 908, -1, 908, + 522, -1, 906, -1, -1, 824, 40, 546, -1, 911, + -1, 912, 522, 911, -1, 912, -1, 912, 522, -1, + 355, 518, 913, 519, -1, 355, 911, -1, -1, 907, + 40, 546, -1, 915, -1, 916, 522, 915, -1, 916, + -1, 916, 522, -1, 353, 518, 917, 519, -1, 353, + 915, -1, -1, 545, -1, 919, 522, 545, -1, 923, + -1, 920, 522, 923, -1, 920, -1, 920, 522, -1, + 921, -1, 518, 921, 519, -1, 547, -1, 928, -1, + 546, 549, -1, 926, -1, 4, -1, 548, 897, -1, + 6, -1, 7, -1, 924, 548, -1, 924, 518, 875, + 710, 709, 519, 548, -1, 792, 548, -1, 808, 518, + 824, 519, 823, -1, 808, 926, 823, -1, 808, 548, + 823, -1, 438, -1, 160, -1, 280, -1, 9, -1, + 3, -1, 1005, -1, 1010, -1, 3, -1, 1005, -1, + 1007, -1, 3, -1, 1005, -1, 1008, -1, 546, -1, + 546, 931, -1, 520, 551, -1, 931, 520, 551, -1, + 518, 921, 519, -1, -1, 927, -1, 552, -1, 5, + -1, 326, 923, 936, 40, 937, -1, 518, 877, 519, + -1, -1, 686, -1, 555, -1, 667, -1, 668, -1, + 982, -1, 994, -1, 100, 373, 545, 939, -1, 100, + 373, 192, 275, 152, 545, 939, -1, 100, 295, 355, + 373, 545, 939, -1, 939, 940, -1, -1, 604, -1, + 941, -1, 580, -1, 1000, -1, 100, 947, 203, 944, + 945, 290, 545, 943, 518, 574, 519, 946, 781, -1, + 100, 947, 203, 944, 192, 275, 152, 633, 290, 545, + 943, 518, 574, 519, 946, 781, -1, 546, -1, 457, + 942, -1, -1, 89, -1, -1, 633, -1, -1, 480, + 619, -1, -1, 448, -1, -1, 32, 419, 775, 389, + 373, 923, -1, 32, 419, 192, 152, 775, 389, 373, + 923, -1, 32, 384, 545, 389, 373, 923, -1, 32, + 384, 192, 152, 545, 389, 373, 923, -1, 32, 470, + 545, 389, 373, 923, -1, 32, 470, 192, 152, 545, + 389, 373, 923, -1, 168, 75, 950, -1, 75, 950, + -1, 546, -1, -1, 84, 290, 953, 545, 222, 952, + -1, 84, 290, 82, 824, 222, 952, -1, 548, -1, + 280, -1, 419, -1, 384, -1, 174, -1, 246, -1, + 246, 419, -1, 470, -1, 108, -1, 203, -1, 373, + -1, 442, -1, 154, 108, 548, 676, -1, 154, 108, + 546, 431, 548, 676, -1, 198, 108, 548, -1, 153, + 959, -1, 153, 963, 957, 959, -1, 153, 468, 959, + -1, 153, 518, 962, 519, 959, -1, 468, -1, -1, + 964, -1, 594, -1, -1, 948, -1, 591, -1, 533, + -1, 999, -1, 949, -1, 668, -1, 1002, -1, 658, + -1, 938, -1, 580, -1, 604, -1, 576, -1, 544, + -1, 982, -1, 652, -1, 587, -1, 941, -1, 555, + -1, 973, -1, 579, -1, 935, -1, 553, -1, 686, + -1, 600, -1, 667, -1, 586, -1, 977, -1, 991, + -1, 967, -1, 994, -1, 1000, -1, 3, -1, 1005, + -1, 1009, -1, 960, -1, 548, -1, 965, -1, 962, + 522, 965, -1, 35, -1, 34, -1, 438, -1, 160, + -1, 290, -1, 961, -1, 966, 958, -1, 960, -1, + 963, -1, 389, 968, -1, 389, 241, 968, -1, 389, + 388, 968, -1, 389, 178, 968, -1, 389, 465, 968, + -1, 969, -1, 998, 172, 104, -1, 429, 501, 971, + -1, 373, 548, -1, 998, 431, 972, -1, 998, 507, + 972, -1, 824, -1, 548, -1, 3, -1, 808, 548, + 823, -1, 808, 518, 926, 519, 548, -1, 594, -1, + 117, -1, 241, -1, 970, -1, 972, 522, 970, -1, + 240, 975, -1, 974, 214, 975, 976, -1, 974, 214, + 975, 172, 546, 976, -1, 974, 214, 975, 172, 548, + 976, -1, -1, 168, -1, 548, -1, 546, -1, -1, + 469, 548, -1, 469, 546, -1, 458, 979, 981, 957, + -1, 458, 979, 981, 957, 545, 932, -1, 458, 979, + 981, 957, 986, -1, 458, 518, 980, 519, -1, 458, + 518, 980, 519, 545, 932, -1, 963, -1, 468, -1, + 171, -1, 173, -1, 3, -1, 173, -1, -1, 978, + -1, 980, 522, 978, -1, 171, -1, -1, 560, 122, + 172, 983, 985, 984, 566, -1, 439, 704, 983, -1, + 775, -1, 775, 546, -1, 775, 40, 546, -1, 477, + 824, -1, -1, 457, 756, -1, -1, 963, 957, -1, + 963, 957, 545, 932, -1, 47, 989, 548, 990, 676, + -1, 47, 192, 275, 152, 989, 548, 990, 676, -1, + 128, 552, -1, 128, 108, 552, -1, 128, 108, 192, + 152, 552, -1, 108, -1, -1, 40, 546, -1, -1, + 357, 993, -1, 357, 241, 993, -1, 357, 388, 993, + -1, 357, 178, 993, -1, 357, 465, 993, -1, 998, + -1, 30, -1, 992, -1, 429, 501, -1, 433, 224, + 236, -1, 996, 686, -1, 415, 686, -1, 415, 545, + -1, 996, 545, -1, 996, 429, 501, -1, 996, 433, + 224, 236, -1, 996, 30, 997, -1, 996, -1, 127, + -1, 126, -1, 393, -1, 995, -1, 420, -1, -1, + 546, -1, 998, 520, 546, -1, 61, 834, -1, 100, + 650, 470, 545, 639, 946, 40, 686, 1001, -1, 100, + 650, 470, 192, 275, 152, 545, 639, 946, 40, 686, + 1001, -1, 100, 295, 355, 650, 470, 545, 639, 946, + 40, 686, 1001, -1, 100, 650, 345, 470, 545, 518, + 643, 519, 946, 40, 686, 1001, -1, 100, 295, 355, + 650, 345, 470, 545, 518, 643, 519, 946, 40, 686, + 1001, -1, 480, 74, 293, -1, 480, 64, 74, 293, + -1, 480, 241, 74, 293, -1, -1, 100, 650, 419, + 1004, 40, 686, 1003, -1, 100, 650, 419, 192, 275, + 152, 1004, 40, 686, 1003, -1, 100, 295, 355, 650, + 419, 1004, 40, 686, 1003, -1, 480, 107, -1, 480, + 273, 107, -1, -1, 545, 639, 626, 618, -1, 22, + -1, 23, -1, 24, -1, 25, -1, 26, -1, 27, + -1, 28, -1, 29, -1, 31, -1, 32, -1, 33, + -1, 43, -1, 44, -1, 46, -1, 47, -1, 48, + -1, 50, -1, 51, -1, 52, -1, 59, -1, 60, + -1, 61, -1, 62, -1, 63, -1, 64, -1, 67, + -1, 68, -1, 69, -1, 70, -1, 73, -1, 75, + -1, 76, -1, 77, -1, 78, -1, 84, -1, 85, + -1, 86, -1, 87, -1, 88, -1, 90, -1, 91, + -1, 92, -1, 94, -1, 95, -1, 96, -1, 97, + -1, 98, -1, 99, -1, 102, -1, 103, -1, 104, + -1, 105, -1, 106, -1, 107, -1, 108, -1, 109, + -1, 110, -1, 111, -1, 113, -1, 114, -1, 116, + -1, 118, -1, 120, -1, 121, -1, 122, -1, 123, + -1, 124, -1, 125, -1, 128, -1, 129, -1, 130, + -1, 131, -1, 134, -1, 135, -1, 136, -1, 137, + -1, 138, -1, 140, -1, 141, -1, 142, -1, 144, + -1, 145, -1, 146, -1, 148, -1, 149, -1, 150, + -1, 151, -1, 153, -1, 154, -1, 155, -1, 156, + -1, 157, -1, 158, -1, 161, -1, 163, -1, 164, + -1, 166, -1, 168, -1, 170, -1, 174, -1, 175, + -1, 178, -1, 180, -1, 184, -1, 185, -1, 187, + -1, 188, -1, 189, -1, 190, -1, 191, -1, 192, + -1, 193, -1, 195, -1, 196, -1, 197, -1, 198, + -1, 200, -1, 201, -1, 202, -1, 203, -1, 204, + -1, 205, -1, 206, -1, 208, -1, 211, -1, 212, + -1, 213, -1, 214, -1, 215, -1, 221, -1, 224, + -1, 226, -1, 227, -1, 228, -1, 229, -1, 230, + -1, 231, -1, 234, -1, 236, -1, 239, -1, 240, + -1, 241, -1, 242, -1, 243, -1, 244, -1, 245, + -1, 246, -1, 248, -1, 249, -1, 250, -1, 251, + -1, 252, -1, 253, -1, 254, -1, 255, -1, 256, + -1, 257, -1, 258, -1, 259, -1, 260, -1, 261, + -1, 262, -1, 263, -1, 264, -1, 265, -1, 266, + -1, 267, -1, 271, -1, 272, -1, 273, -1, 276, + -1, 277, -1, 279, -1, 282, -1, 284, -1, 285, + -1, 286, -1, 288, -1, 289, -1, 292, -1, 293, + -1, 294, -1, 297, -1, 298, -1, 301, -1, 304, + -1, 305, -1, 306, -1, 307, -1, 308, -1, 309, + -1, 310, -1, 311, -1, 312, -1, 313, -1, 314, + -1, 319, -1, 320, -1, 323, -1, 324, -1, 326, + -1, 327, -1, 328, -1, 330, -1, 331, -1, 332, + -1, 333, -1, 334, -1, 335, -1, 337, -1, 338, + -1, 339, -1, 340, -1, 341, -1, 343, -1, 344, + -1, 345, -1, 346, -1, 348, -1, 349, -1, 350, + -1, 351, -1, 352, -1, 353, -1, 354, -1, 355, + -1, 356, -1, 357, -1, 358, -1, 359, -1, 360, + -1, 362, -1, 363, -1, 365, -1, 366, -1, 367, + -1, 369, -1, 370, -1, 371, -1, 372, -1, 373, + -1, 374, -1, 375, -1, 376, -1, 377, -1, 378, + -1, 379, -1, 380, -1, 381, -1, 384, -1, 385, + -1, 386, -1, 387, -1, 388, -1, 389, -1, 391, + -1, 392, -1, 395, -1, 396, -1, 398, -1, 400, + -1, 401, -1, 402, -1, 403, -1, 404, -1, 405, + -1, 406, -1, 407, -1, 408, -1, 409, -1, 410, + -1, 411, -1, 413, -1, 417, -1, 418, -1, 420, + -1, 422, -1, 423, -1, 424, -1, 425, -1, 426, + -1, 428, -1, 433, -1, 434, -1, 436, -1, 439, + -1, 440, -1, 442, -1, 443, -1, 444, -1, 445, + -1, 446, -1, 449, -1, 450, -1, 451, -1, 453, + -1, 454, -1, 455, -1, 456, -1, 458, -1, 459, + -1, 460, -1, 461, -1, 462, -1, 465, -1, 467, + -1, 469, -1, 470, -1, 471, -1, 472, -1, 473, + -1, 474, -1, 475, -1, 478, -1, 481, -1, 482, + -1, 483, -1, 484, -1, 485, -1, 486, -1, 498, + -1, 499, -1, 500, -1, 501, -1, 53, -1, 54, + -1, 56, -1, 57, -1, 71, -1, 72, -1, 79, + -1, 83, -1, 112, -1, 115, -1, 152, -1, 159, + -1, 165, -1, 176, -1, 182, -1, 183, -1, 210, + -1, 216, -1, 217, -1, 219, -1, 247, -1, 268, + -1, 270, -1, 274, -1, 281, -1, 283, -1, 299, + -1, 303, -1, 321, -1, 325, -1, 342, -1, 368, + -1, 390, -1, 397, -1, 412, -1, 414, -1, 429, + -1, 430, -1, 435, -1, 437, -1, 441, -1, 463, + -1, 464, -1, 487, -1, 488, -1, 489, -1, 490, + -1, 491, -1, 492, -1, 493, -1, 494, -1, 495, + -1, 496, -1, 497, -1, 42, -1, 49, -1, 55, + -1, 81, -1, 89, -1, 101, -1, 171, -1, 173, + -1, 176, -1, 177, -1, 194, -1, 209, -1, 222, + -1, 223, -1, 225, -1, 235, -1, 237, -1, 247, + -1, 269, -1, 278, -1, 300, -1, 302, -1, 322, + -1, 364, -1, 394, -1, 412, -1, 421, -1, 468, + -1, 37, -1, 42, -1, 49, -1, 55, -1, 81, + -1, 83, -1, 89, -1, 101, -1, 171, -1, 173, -1, 177, -1, 194, -1, 209, -1, 222, -1, 223, - -1, 225, -1, 235, -1, 237, -1, 247, -1, 269, - -1, 278, -1, 300, -1, 302, -1, 322, -1, 364, - -1, 394, -1, 412, -1, 421, -1, 468, -1, 37, - -1, 42, -1, 49, -1, 55, -1, 81, -1, 83, - -1, 89, -1, 101, -1, 171, -1, 173, -1, 177, - -1, 194, -1, 209, -1, 222, -1, 223, -1, 225, - -1, 235, -1, 237, -1, 269, -1, 278, -1, 300, - -1, 302, -1, 322, -1, 364, -1, 383, -1, 394, - -1, 421, -1, 441, -1, 468, -1, 37, -1, 42, - -1, 49, -1, 53, -1, 54, -1, 55, -1, 56, - -1, 57, -1, 72, -1, 71, -1, 79, -1, 81, - -1, 83, -1, 89, -1, 101, -1, 112, -1, 115, - -1, 152, -1, 159, -1, 165, -1, 171, -1, 173, - -1, 176, -1, 177, -1, 182, -1, 183, -1, 194, - -1, 209, -1, 210, -1, 217, -1, 219, -1, 216, - -1, 222, -1, 223, -1, 225, -1, 235, -1, 237, - -1, 247, -1, 268, -1, 269, -1, 270, -1, 274, - -1, 278, -1, 281, -1, 283, -1, 300, -1, 299, - -1, 302, -1, 303, -1, 321, -1, 322, -1, 325, - -1, 342, -1, 364, -1, 368, -1, 383, -1, 390, - -1, 394, -1, 397, -1, 412, -1, 414, -1, 421, - -1, 429, -1, 430, -1, 435, -1, 437, -1, 441, - -1, 463, -1, 464, -1, 468, -1, 487, -1, 488, - -1, 489, -1, 490, -1, 491, -1, 492, -1, 493, - -1, 494, -1, 495, -1, 496, -1, 497, -1, 37, - -1, 42, -1, 49, -1, 55, -1, 81, -1, 83, - -1, 89, -1, 101, -1, 171, -1, 173, -1, 176, - -1, 177, -1, 194, -1, 209, -1, 222, -1, 223, - -1, 225, -1, 235, -1, 237, -1, 247, -1, 269, - -1, 278, -1, 300, -1, 302, -1, 322, -1, 364, - -1, 383, -1, 394, -1, 412, -1, 421, -1, 441, - -1, 468, -1, 30, -1, 34, -1, 35, -1, 36, - -1, 38, -1, 39, -1, 40, -1, 41, -1, 45, - -1, 58, -1, 65, -1, 66, -1, 74, -1, 80, - -1, 82, -1, 93, -1, 100, -1, 117, -1, 119, - -1, 126, -1, 127, -1, 132, -1, 133, -1, 139, - -1, 143, -1, 147, -1, 160, -1, 162, -1, 167, - -1, 169, -1, 172, -1, 179, -1, 181, -1, 186, - -1, 199, -1, 207, -1, 218, -1, 220, -1, 232, - -1, 233, -1, 238, -1, 275, -1, 280, -1, 287, - -1, 290, -1, 291, -1, 295, -1, 296, -1, 315, - -1, 316, -1, 317, -1, 318, -1, 329, -1, 336, - -1, 347, -1, 361, -1, 382, -1, 393, -1, 399, - -1, 415, -1, 416, -1, 419, -1, 427, -1, 431, - -1, 432, -1, 438, -1, 447, -1, 448, -1, 452, - -1, 457, -1, 466, -1, 476, -1, 477, -1, 479, - -1, 480, -1 + -1, 225, -1, 235, -1, 237, -1, 269, -1, 278, + -1, 300, -1, 302, -1, 322, -1, 364, -1, 383, + -1, 394, -1, 421, -1, 441, -1, 468, -1, 37, + -1, 42, -1, 49, -1, 53, -1, 54, -1, 55, + -1, 56, -1, 57, -1, 72, -1, 71, -1, 79, + -1, 81, -1, 83, -1, 89, -1, 101, -1, 112, + -1, 115, -1, 152, -1, 159, -1, 165, -1, 171, + -1, 173, -1, 176, -1, 177, -1, 182, -1, 183, + -1, 194, -1, 209, -1, 210, -1, 217, -1, 219, + -1, 216, -1, 222, -1, 223, -1, 225, -1, 235, + -1, 237, -1, 247, -1, 268, -1, 269, -1, 270, + -1, 274, -1, 278, -1, 281, -1, 283, -1, 300, + -1, 299, -1, 302, -1, 303, -1, 321, -1, 322, + -1, 325, -1, 342, -1, 364, -1, 368, -1, 383, + -1, 390, -1, 394, -1, 397, -1, 412, -1, 414, + -1, 421, -1, 429, -1, 430, -1, 435, -1, 437, + -1, 441, -1, 463, -1, 464, -1, 468, -1, 487, + -1, 488, -1, 489, -1, 490, -1, 491, -1, 492, + -1, 493, -1, 494, -1, 495, -1, 496, -1, 497, + -1, 37, -1, 42, -1, 49, -1, 55, -1, 81, + -1, 83, -1, 89, -1, 101, -1, 171, -1, 173, + -1, 176, -1, 177, -1, 194, -1, 209, -1, 222, + -1, 223, -1, 225, -1, 235, -1, 237, -1, 247, + -1, 269, -1, 278, -1, 300, -1, 302, -1, 322, + -1, 364, -1, 383, -1, 394, -1, 412, -1, 421, + -1, 441, -1, 468, -1, 30, -1, 34, -1, 35, + -1, 36, -1, 38, -1, 39, -1, 40, -1, 41, + -1, 45, -1, 58, -1, 65, -1, 66, -1, 74, + -1, 80, -1, 82, -1, 93, -1, 100, -1, 117, + -1, 119, -1, 126, -1, 127, -1, 132, -1, 133, + -1, 139, -1, 143, -1, 147, -1, 160, -1, 162, + -1, 167, -1, 169, -1, 172, -1, 179, -1, 181, + -1, 186, -1, 199, -1, 207, -1, 218, -1, 220, + -1, 232, -1, 233, -1, 238, -1, 275, -1, 280, + -1, 287, -1, 290, -1, 291, -1, 295, -1, 296, + -1, 315, -1, 316, -1, 317, -1, 318, -1, 329, + -1, 336, -1, 347, -1, 361, -1, 382, -1, 393, + -1, 399, -1, 415, -1, 416, -1, 419, -1, 427, + -1, 431, -1, 432, -1, 438, -1, 447, -1, 448, + -1, 452, -1, 457, -1, 466, -1, 476, -1, 477, + -1, 479, -1, 480, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 508, 508, 524, 536, 545, 546, 547, 548, 549, - 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, - 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, - 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, - 580, 581, 582, 583, 584, 585, 587, 9, 18, 27, + 0, 509, 509, 525, 537, 546, 547, 548, 549, 550, + 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, + 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 585, 586, 588, 9, 18, 27, 36, 45, 54, 63, 72, 85, 87, 93, 94, 99, 103, 107, 118, 126, 130, 139, 148, 157, 166, 175, 184, 192, 200, 209, 218, 227, 236, 253, 262, 271, @@ -2667,97 +2675,99 @@ static const yytype_uint16 yyrline[] = 563, 570, 571, 575, 576, 580, 581, 582, 586, 587, 591, 592, 608, 609, 612, 621, 632, 633, 634, 637, 638, 639, 643, 644, 645, 646, 650, 651, 655, 657, - 673, 675, 680, 683, 691, 695, 699, 703, 707, 711, - 718, 723, 730, 731, 735, 740, 744, 748, 756, 763, - 764, 769, 770, 774, 775, 780, 782, 784, 789, 809, - 810, 812, 817, 818, 822, 823, 826, 827, 852, 853, - 858, 862, 863, 867, 868, 872, 873, 874, 875, 876, - 880, 893, 900, 907, 914, 915, 919, 920, 924, 925, - 929, 930, 934, 935, 939, 940, 944, 955, 956, 957, - 958, 962, 963, 968, 969, 970, 979, 985, 994, 995, - 1008, 1009, 1013, 1014, 1018, 1019, 1025, 1031, 1039, 1048, - 1056, 1065, 1074, 1078, 1083, 1094, 1108, 1109, 1112, 1113, - 1114, 1117, 1125, 1134, 1135, 1136, 1137, 1140, 1148, 1157, - 1161, 1168, 1169, 1173, 1182, 1186, 1211, 1215, 1228, 1242, - 1257, 1269, 1282, 1296, 1310, 1323, 1338, 1357, 1363, 1368, - 1374, 1381, 1382, 1390, 1394, 1398, 1404, 1411, 1416, 1417, - 1418, 1419, 1420, 1421, 1425, 1426, 1438, 1439, 1444, 1451, - 1458, 1465, 1497, 1508, 1521, 1526, 1527, 1530, 1531, 1534, - 1535, 1540, 1541, 1546, 1550, 1556, 1577, 1585, 1598, 1601, - 1605, 1605, 1608, 1609, 1611, 1616, 1623, 1628, 1634, 1639, - 1645, 1649, 1656, 1663, 1673, 1674, 1678, 1680, 1683, 1687, - 1688, 1689, 1690, 1691, 1692, 1697, 1717, 1718, 1719, 1720, - 1731, 1745, 1746, 1752, 1757, 1762, 1767, 1772, 1777, 1782, - 1787, 1793, 1799, 1805, 1812, 1834, 1843, 1847, 1855, 1859, - 1867, 1879, 1900, 1904, 1910, 1914, 1927, 1935, 1945, 1947, - 1949, 1951, 1953, 1955, 1960, 1961, 1968, 1977, 1985, 1994, - 2005, 2013, 2014, 2015, 2019, 2019, 2022, 2022, 2025, 2025, - 2028, 2028, 2031, 2031, 2034, 2034, 2037, 2037, 2040, 2040, - 2043, 2043, 2046, 2046, 2049, 2049, 2052, 2052, 2055, 2055, - 2058, 2060, 2062, 2064, 2066, 2068, 2070, 2072, 2074, 2076, - 2078, 2080, 2082, 2084, 2089, 2094, 2100, 2107, 2112, 2118, - 2124, 2155, 2157, 2159, 2167, 2182, 2184, 2186, 2188, 2190, - 2192, 2194, 2196, 2198, 2200, 2202, 2204, 2206, 2208, 2210, - 2212, 2215, 2217, 2219, 2222, 2224, 2226, 2228, 2230, 2235, - 2240, 2247, 2252, 2259, 2264, 2271, 2276, 2284, 2292, 2300, - 2308, 2326, 2334, 2342, 2350, 2358, 2366, 2374, 2378, 2394, - 2402, 2410, 2418, 2426, 2434, 2442, 2446, 2450, 2454, 2458, - 2466, 2474, 2482, 2490, 2510, 2532, 2543, 2550, 2564, 2573, - 2581, 2589, 2609, 2611, 2613, 2615, 2617, 2619, 2621, 2623, - 2625, 2627, 2629, 2631, 2633, 2635, 2637, 2639, 2641, 2643, - 2645, 2647, 2649, 2651, 2655, 2659, 2663, 2677, 2678, 2692, - 2693, 2694, 2705, 2729, 2740, 2750, 2754, 2758, 2765, 2769, - 2776, 2780, 2784, 2788, 2790, 2793, 2796, 2807, 2812, 2819, - 2825, 2831, 2838, 2858, 2862, 2869, 2877, 2885, 2896, 2916, - 2952, 2963, 2964, 2971, 2977, 2979, 2981, 2985, 2994, 2999, - 3006, 3021, 3028, 3032, 3036, 3040, 3044, 3054, 3062, 3071, - 3093, 3094, 3098, 3099, 3100, 3104, 3105, 3112, 3113, 3117, - 3118, 3123, 3131, 3133, 3147, 3150, 3177, 3178, 3181, 3182, - 3190, 3198, 3206, 3215, 3225, 3243, 3289, 3298, 3307, 3316, - 3325, 3337, 3338, 3339, 3340, 3341, 3355, 3356, 3359, 3360, - 3364, 3374, 3375, 3379, 3380, 3384, 3391, 3392, 3397, 3398, - 3403, 3404, 3407, 3408, 3409, 3412, 3413, 3416, 3417, 3418, - 3419, 3420, 3421, 3422, 3423, 3424, 3425, 3426, 3427, 3428, - 3429, 3432, 3434, 3439, 3441, 3446, 3448, 3450, 3452, 3454, - 3456, 3458, 3460, 3474, 3476, 3481, 3485, 3492, 3497, 3503, - 3507, 3514, 3519, 3526, 3531, 3539, 3543, 3549, 3553, 3562, - 3573, 3574, 3578, 3582, 3589, 3590, 3591, 3592, 3593, 3594, - 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3613, - 3617, 3624, 3631, 3632, 3648, 3652, 3657, 3661, 3676, 3681, - 3685, 3688, 3691, 3692, 3693, 3696, 3703, 3704, 3705, 3715, - 3729, 3730, 3734, 3745, 3746, 3749, 3750, 3754, 3755, 3758, - 3764, 3768, 3775, 3783, 3791, 3799, 3809, 3810, 3815, 3816, - 3820, 3821, 3822, 3826, 3835, 3843, 3851, 3860, 3875, 3876, - 3881, 3882, 3892, 3893, 3897, 3898, 3902, 3903, 3906, 3922, - 3930, 3940, 3941, 3944, 3945, 3948, 3952, 3953, 3957, 3958, - 3961, 3962, 3963, 3973, 3974, 3978, 3980, 3986, 3987, 3991, - 3992, 3995, 4006, 4009, 4020, 4024, 4028, 4040, 4044, 4053, - 4060, 4098, 4102, 4106, 4110, 4114, 4118, 4122, 4128, 4145, - 4146, 4147, 4150, 4151, 4152, 4155, 4156, 4157, 4160, 4161, - 4164, 4166, 4171, 4172, 4175, 4179, 4180, 7, 18, 19, - 23, 24, 25, 26, 27, 28, 7, 26, 50, 73, - 80, 85, 86, 87, 88, 8, 33, 62, 66, 67, - 72, 73, 78, 79, 83, 84, 89, 90, 7, 16, - 25, 34, 43, 52, 5, 12, 22, 23, 7, 15, - 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 39, 7, 19, 33, 9, 16, 26, 33, 44, - 45, 50, 51, 52, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 91, 92, 93, 98, 99, - 104, 108, 116, 117, 122, 123, 124, 130, 135, 143, - 144, 10, 16, 22, 28, 34, 44, 45, 53, 64, - 76, 84, 95, 101, 105, 109, 124, 131, 132, 133, - 137, 138, 7, 17, 26, 35, 46, 47, 49, 50, - 53, 54, 55, 8, 22, 36, 48, 56, 70, 71, - 72, 73, 74, 87, 88, 93, 94, 98, 99, 7, - 18, 31, 35, 42, 53, 54, 60, 61, 9, 19, - 7, 16, 28, 35, 42, 51, 52, 56, 57, 2, - 7, 12, 17, 22, 31, 38, 48, 49, 56, 3, - 10, 17, 24, 31, 38, 45, 52, 61, 61, 63, - 63, 65, 65, 67, 68, 72, 73, 6, 8, 21, - 34, 47, 65, 87, 88, 89, 90, 11, 24, 37, - 54, 55, 56, 61, 74, 74, 74, 74, 74, 74, + 673, 675, 680, 683, 688, 692, 696, 703, 707, 711, + 715, 722, 727, 734, 735, 739, 744, 748, 752, 760, + 767, 768, 773, 774, 778, 779, 784, 786, 788, 793, + 813, 814, 816, 821, 822, 826, 827, 830, 831, 856, + 857, 862, 866, 867, 871, 872, 876, 877, 878, 879, + 880, 884, 897, 904, 911, 918, 919, 923, 924, 928, + 929, 933, 934, 938, 939, 943, 944, 948, 959, 960, + 961, 962, 966, 967, 972, 973, 974, 983, 989, 998, + 999, 1012, 1013, 1017, 1018, 1022, 1023, 1027, 1038, 1044, + 1050, 1058, 1066, 1076, 1084, 1093, 1102, 1111, 1115, 1120, + 1125, 1136, 1150, 1151, 1154, 1155, 1156, 1159, 1167, 1177, + 1178, 1179, 1182, 1190, 1199, 1203, 1210, 1211, 1215, 1224, + 1228, 1253, 1257, 1270, 1284, 1299, 1311, 1324, 1338, 1352, + 1365, 1380, 1399, 1405, 1410, 1416, 1423, 1424, 1432, 1436, + 1440, 1446, 1453, 1458, 1459, 1460, 1461, 1462, 1463, 1467, + 1468, 1480, 1481, 1486, 1493, 1500, 1507, 1539, 1550, 1563, + 1568, 1569, 1572, 1573, 1576, 1577, 1582, 1583, 1588, 1592, + 1598, 1619, 1627, 1641, 1644, 1648, 1648, 1651, 1652, 1654, + 1659, 1666, 1671, 1677, 1682, 1688, 1692, 1699, 1706, 1716, + 1717, 1721, 1723, 1726, 1730, 1731, 1732, 1733, 1734, 1735, + 1740, 1760, 1761, 1762, 1763, 1774, 1788, 1789, 1795, 1800, + 1805, 1810, 1815, 1820, 1825, 1830, 1836, 1842, 1848, 1855, + 1877, 1886, 1890, 1898, 1902, 1910, 1922, 1943, 1947, 1953, + 1957, 1970, 1978, 1988, 1990, 1992, 1994, 1996, 1998, 2003, + 2004, 2011, 2020, 2028, 2037, 2048, 2056, 2057, 2058, 2062, + 2062, 2065, 2065, 2068, 2068, 2071, 2071, 2074, 2074, 2077, + 2077, 2080, 2080, 2083, 2083, 2086, 2086, 2089, 2089, 2092, + 2092, 2095, 2095, 2098, 2098, 2101, 2103, 2105, 2107, 2109, + 2111, 2113, 2115, 2117, 2119, 2121, 2123, 2125, 2127, 2132, + 2137, 2143, 2150, 2155, 2161, 2167, 2198, 2200, 2202, 2210, + 2225, 2227, 2229, 2231, 2233, 2235, 2237, 2239, 2241, 2243, + 2245, 2247, 2249, 2251, 2253, 2255, 2258, 2260, 2262, 2265, + 2267, 2269, 2271, 2273, 2278, 2283, 2290, 2295, 2302, 2307, + 2314, 2319, 2327, 2335, 2343, 2351, 2369, 2377, 2385, 2393, + 2401, 2409, 2417, 2421, 2437, 2445, 2453, 2461, 2469, 2477, + 2485, 2489, 2493, 2497, 2501, 2509, 2517, 2525, 2533, 2553, + 2575, 2586, 2593, 2607, 2616, 2624, 2633, 2654, 2656, 2658, + 2660, 2662, 2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, + 2680, 2682, 2684, 2686, 2688, 2690, 2692, 2694, 2696, 2700, + 2704, 2708, 2722, 2723, 2737, 2738, 2739, 2750, 2774, 2785, + 2795, 2799, 2803, 2810, 2814, 2821, 2828, 2829, 2830, 2831, + 2832, 2833, 2834, 2835, 2846, 2851, 2860, 2866, 2873, 2893, + 2897, 2904, 2912, 2920, 2931, 2951, 2987, 2998, 2999, 3006, + 3012, 3014, 3016, 3020, 3029, 3034, 3041, 3056, 3063, 3067, + 3071, 3075, 3079, 3089, 3097, 3106, 3128, 3129, 3133, 3134, + 3135, 3139, 3140, 3147, 3148, 3152, 3153, 3158, 3166, 3168, + 3182, 3185, 3212, 3213, 3216, 3217, 3225, 3233, 3241, 3250, + 3260, 3278, 3324, 3333, 3342, 3351, 3360, 3372, 3373, 3374, + 3375, 3376, 3390, 3391, 3394, 3395, 3399, 3409, 3410, 3414, + 3415, 3419, 3426, 3427, 3432, 3433, 3438, 3439, 3442, 3443, + 3444, 3447, 3448, 3451, 3452, 3453, 3454, 3455, 3456, 3457, + 3458, 3459, 3460, 3461, 3462, 3463, 3464, 3467, 3469, 3474, + 3476, 3481, 3483, 3485, 3487, 3489, 3491, 3493, 3495, 3509, + 3511, 3516, 3520, 3527, 3532, 3538, 3542, 3549, 3554, 3561, + 3566, 3574, 3578, 3584, 3588, 3597, 3608, 3609, 3613, 3617, + 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3633, + 3634, 3635, 3636, 3637, 3638, 3648, 3652, 3659, 3666, 3667, + 3683, 3687, 3692, 3696, 3711, 3716, 3720, 3723, 3726, 3727, + 3728, 3731, 3738, 3739, 3740, 3750, 3764, 3765, 3769, 3780, + 3781, 3784, 3785, 3789, 3790, 3793, 3799, 3803, 3810, 3818, + 3826, 3834, 3844, 3845, 3850, 3851, 3855, 3856, 3857, 3861, + 3870, 3878, 3886, 3895, 3910, 3911, 3916, 3917, 3927, 3928, + 3932, 3933, 3937, 3938, 3941, 3957, 3965, 3973, 3983, 3984, + 3988, 3992, 3998, 4000, 4005, 4006, 4010, 4011, 4014, 4018, + 4019, 4023, 4024, 4027, 4028, 4029, 4032, 4036, 4037, 4041, + 4042, 4044, 4045, 4046, 4056, 4057, 4061, 4063, 4069, 4070, + 4074, 4075, 4078, 4089, 4092, 4103, 4107, 4111, 4123, 4127, + 4136, 4143, 4181, 4185, 4189, 4193, 4197, 4201, 4205, 4211, + 4228, 4229, 4230, 4233, 4234, 4235, 4238, 4239, 4240, 4243, + 4244, 4247, 4249, 4254, 4255, 4258, 4262, 4263, 7, 18, + 19, 23, 24, 25, 26, 27, 28, 7, 26, 50, + 73, 80, 85, 86, 87, 88, 8, 33, 62, 66, + 67, 72, 73, 78, 79, 83, 84, 89, 90, 7, + 16, 25, 34, 43, 52, 5, 12, 22, 23, 7, + 15, 26, 27, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 7, 19, 33, 9, 16, 26, 33, + 44, 45, 50, 51, 52, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 82, 83, 84, 85, 86, 87, 91, 92, 93, 98, + 99, 104, 108, 116, 117, 122, 123, 124, 130, 135, + 143, 144, 10, 16, 22, 28, 34, 44, 45, 53, + 64, 76, 84, 95, 101, 105, 109, 124, 131, 132, + 133, 137, 138, 7, 17, 26, 35, 46, 47, 49, + 50, 53, 54, 55, 8, 22, 36, 48, 56, 70, + 71, 72, 73, 74, 87, 88, 93, 94, 98, 99, + 7, 18, 31, 35, 42, 53, 54, 60, 61, 9, + 19, 7, 16, 28, 35, 42, 51, 52, 56, 57, + 2, 7, 12, 17, 22, 31, 38, 48, 49, 56, + 3, 10, 17, 24, 31, 38, 45, 52, 61, 61, + 63, 63, 65, 65, 67, 68, 6, 8, 21, 34, + 47, 65, 87, 88, 89, 90, 11, 24, 37, 54, + 55, 56, 61, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, @@ -2789,19 +2799,18 @@ static const yytype_uint16 yyrline[] = 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, + 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, - 75, 75, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 75, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, + 76, 76, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, - 77, 77, 77, 77, 77, 77, 77, 77, 77, 78, - 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 77, 77, 77, 77, 77, 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, @@ -2809,17 +2818,18 @@ static const yytype_uint16 yyrline[] = 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 80, 80, 80, 80, 80, 80, 80, 80, + 79, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80 + 80, 80, 80, 80, 80, 80 }; #endif @@ -2910,8 +2920,8 @@ static const char *const yytname[] = "XMLROOT", "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YEARS_P", "YES_P", "ZONE", "NOT_LA", "NULLS_LA", "WITH_LA", "'<'", "'>'", "'='", "POSTFIXOP", "'+'", "'-'", "'*'", "'/'", "'%'", "'^'", "UMINUS", "'['", - "']'", "'('", "')'", "'.'", "';'", "','", "'?'", "'#'", "'$'", "'{'", - "'}'", "':'", "$accept", "stmtblock", "stmtmulti", "stmt", + "']'", "'('", "')'", "'.'", "';'", "','", "':'", "'?'", "'$'", "'#'", + "'{'", "'}'", "$accept", "stmtblock", "stmtmulti", "stmt", "AlterTableStmt", "alter_identity_column_option_list", "alter_column_default", "alter_identity_column_option", "alter_generic_option_list", "alter_table_cmd", "alter_using", @@ -2965,18 +2975,19 @@ static const char *const yytname[] = "by_name", "distinct_clause", "opt_all_clause", "opt_ignore_nulls", "opt_sort_clause", "sort_clause", "sortby_list", "sortby", "opt_asc_desc", "opt_nulls_order", "select_limit", "opt_select_limit", - "limit_clause", "offset_clause", "sample_count", "sample_clause", - "opt_sample_func", "tablesample_entry", "tablesample_clause", - "opt_tablesample_clause", "opt_repeatable_clause", "select_limit_value", - "select_offset_value", "select_fetch_first_value", "I_or_F_const", - "row_or_rows", "first_or_next", "group_clause", "group_by_list", - "group_by_list_opt_comma", "group_by_item", "empty_grouping_set", - "rollup_clause", "cube_clause", "grouping_sets_clause", - "grouping_or_grouping_id", "having_clause", "qualify_clause", - "for_locking_clause", "opt_for_locking_clause", "for_locking_items", - "for_locking_item", "for_locking_strength", "locked_rels_list", - "opt_nowait_or_skip", "values_clause", "values_clause_opt_comma", - "from_clause", "from_list", "from_list_opt_comma", "table_ref", + "limit_clause", "offset_clause", "sample_value", "sample_count", + "sample_clause", "opt_sample_func", "tablesample_entry", + "tablesample_clause", "opt_tablesample_clause", "opt_repeatable_clause", + "select_limit_value", "select_offset_value", "select_fetch_first_value", + "I_or_F_const", "row_or_rows", "first_or_next", "group_clause", + "group_by_list", "group_by_list_opt_comma", "group_by_item", + "empty_grouping_set", "rollup_clause", "cube_clause", + "grouping_sets_clause", "grouping_or_grouping_id", "having_clause", + "qualify_clause", "for_locking_clause", "opt_for_locking_clause", + "for_locking_items", "for_locking_item", "for_locking_strength", + "locked_rels_list", "opt_nowait_or_skip", "values_clause", + "values_clause_opt_comma", "from_clause", "from_list", + "from_list_opt_comma", "alias_prefix_colon_clause", "table_ref", "opt_pivot_group_by", "opt_include_nulls", "single_pivot_value", "pivot_header", "pivot_value", "pivot_value_list", "unpivot_header", "unpivot_value", "unpivot_value_list", "joined_table", "alias_clause", @@ -2995,8 +3006,8 @@ static const char *const yytname[] = "millisecond_keyword", "microsecond_keyword", "week_keyword", "quarter_keyword", "decade_keyword", "century_keyword", "millennium_keyword", "opt_interval", "a_expr", "b_expr", "c_expr", - "d_expr", "indirection_expr_or_a_expr", "indirection_expr", "list_expr", - "struct_expr", "map_expr", "func_application", "func_expr", + "d_expr", "indirection_expr_or_a_expr", "param_expr", "indirection_expr", + "list_expr", "struct_expr", "map_expr", "func_application", "func_expr", "func_expr_windowless", "func_expr_common_subexpr", "list_comprehension_lhs", "list_comprehension", "within_group_clause", "filter_clause", "export_clause", "window_clause", @@ -3018,13 +3029,16 @@ static const char *const yytname[] = "opt_func_arguments", "extended_indirection_el", "opt_extended_indirection", "opt_asymmetric", "opt_target_list_opt_comma", "target_list", "target_list_opt_comma", - "target_el", "except_list", "opt_except_list", "replace_list_el", + "target_el", "except_list", "except_name", "except_name_list", + "except_name_list_opt_comma", "opt_except_list", "replace_list_el", "replace_list", "replace_list_opt_comma", "opt_replace_list", - "qualified_name_list", "name_list", "name_list_opt_comma", - "name_list_opt_comma_opt_bracket", "name", "func_name", "AexprConst", - "Iconst", "type_function_name", "function_name_token", "type_name_token", - "any_name", "attrs", "opt_name_list", "param_name", "ColLabelOrString", - "PrepareStmt", "prep_type_clause", "PreparableStmt", "CreateSchemaStmt", + "rename_list_el", "rename_list", "rename_list_opt_comma", + "opt_rename_list", "qualified_name_list", "name_list", + "name_list_opt_comma", "name_list_opt_comma_opt_bracket", "name", + "func_name", "AexprConst", "Iconst", "type_function_name", + "function_name_token", "type_name_token", "any_name", "attrs", + "opt_name_list", "param_name", "ColLabelOrString", "PrepareStmt", + "prep_type_clause", "PreparableStmt", "CreateSchemaStmt", "OptSchemaEltList", "schema_stmt", "IndexStmt", "access_method", "access_method_clause", "opt_concurrently", "opt_index_name", "opt_reloptions", "opt_unique", "AlterObjectSchemaStmt", @@ -3041,11 +3055,10 @@ static const char *const yytname[] = "AnalyzeStmt", "AttachStmt", "DetachStmt", "opt_database", "opt_database_alias", "VariableResetStmt", "generic_reset", "reset_rest", "VariableShowStmt", "describe_or_desc", "show_or_describe", "opt_tables", - "var_name", "table_id", "CallStmt", "ViewStmt", "opt_check_option", - "CreateAsStmt", "opt_with_data", "create_as_target", - "unreserved_keyword", "col_name_keyword", "func_name_keyword", - "type_name_keyword", "other_keyword", "type_func_name_keyword", - "reserved_keyword", 0 + "var_name", "CallStmt", "ViewStmt", "opt_check_option", "CreateAsStmt", + "opt_with_data", "create_as_target", "unreserved_keyword", + "col_name_keyword", "func_name_keyword", "type_name_keyword", + "other_keyword", "type_func_name_keyword", "reserved_keyword", 0 }; #endif @@ -3106,7 +3119,7 @@ static const yytype_uint16 yytoknum[] = 745, 746, 747, 748, 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, 759, 60, 62, 61, 760, 43, 45, 42, 47, 37, 94, 761, 91, 93, 40, 41, - 46, 59, 44, 63, 35, 36, 123, 125, 58 + 46, 59, 44, 58, 63, 36, 35, 123, 125 }; # endif @@ -3176,159 +3189,161 @@ static const yytype_uint16 yyr1[] = 706, 707, 707, 708, 708, 709, 709, 709, 710, 710, 711, 711, 712, 712, 713, 713, 714, 714, 714, 715, 715, 715, 716, 716, 716, 716, 717, 717, 718, 718, - 718, 718, 719, 719, 720, 720, 720, 720, 720, 720, - 721, 721, 722, 722, 723, 723, 723, 723, 724, 725, - 725, 726, 726, 727, 727, 727, 727, 727, 728, 729, - 729, 729, 730, 730, 731, 731, 732, 732, 733, 733, - 733, 734, 734, 735, 735, 736, 736, 736, 736, 736, - 737, 738, 739, 740, 741, 741, 742, 742, 743, 743, - 744, 744, 745, 745, 746, 746, 747, 748, 748, 748, - 748, 749, 749, 750, 750, 750, 751, 751, 752, 752, - 753, 753, 754, 754, 755, 755, 756, 756, 756, 756, - 756, 756, 756, 756, 756, 756, 757, 757, 758, 758, - 758, 759, 759, 760, 760, 760, 760, 761, 761, 762, - 762, 763, 763, 764, 765, 765, 766, 766, 766, 766, - 766, 766, 766, 766, 766, 766, 766, 767, 767, 767, - 767, 768, 768, 769, 769, 769, 769, 769, 770, 770, - 770, 770, 770, 770, 771, 771, 772, 772, 773, 773, - 773, 773, 774, 774, 775, 776, 776, 777, 777, 778, - 778, 779, 779, 780, 780, 781, 782, 782, 783, 783, - 784, 784, 785, 785, 786, 786, 786, 786, 786, 786, - 786, 786, 786, 786, 787, 787, 788, 788, 788, 789, - 789, 789, 789, 789, 789, 789, 790, 790, 790, 790, - 791, 792, 792, 793, 793, 793, 793, 793, 793, 793, - 793, 793, 793, 793, 794, 794, 795, 795, 796, 796, - 797, 798, 799, 799, 800, 800, 801, 802, 803, 803, - 803, 803, 803, 803, 804, 804, 805, 805, 805, 805, - 806, 807, 807, 807, 808, 808, 809, 809, 810, 810, - 811, 811, 812, 812, 813, 813, 814, 814, 815, 815, - 816, 816, 817, 817, 818, 818, 819, 819, 820, 820, - 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, - 821, 821, 821, 821, 821, 821, 821, 821, 821, 821, - 821, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 822, 822, 822, 822, 822, - 822, 822, 823, 823, 823, 823, 823, 823, 823, 823, + 718, 718, 719, 719, 720, 720, 720, 721, 721, 721, + 721, 722, 722, 723, 723, 724, 724, 724, 724, 725, + 726, 726, 727, 727, 728, 728, 728, 728, 728, 729, + 730, 730, 730, 731, 731, 732, 732, 733, 733, 734, + 734, 734, 735, 735, 736, 736, 737, 737, 737, 737, + 737, 738, 739, 740, 741, 742, 742, 743, 743, 744, + 744, 745, 745, 746, 746, 747, 747, 748, 749, 749, + 749, 749, 750, 750, 751, 751, 751, 752, 752, 753, + 753, 754, 754, 755, 755, 756, 756, 757, 758, 758, + 758, 758, 758, 758, 758, 758, 758, 758, 758, 758, + 758, 758, 759, 759, 760, 760, 760, 761, 761, 762, + 762, 762, 763, 763, 764, 764, 765, 765, 766, 767, + 767, 768, 768, 768, 768, 768, 768, 768, 768, 768, + 768, 768, 769, 769, 769, 769, 770, 770, 771, 771, + 771, 771, 771, 772, 772, 772, 772, 772, 772, 773, + 773, 774, 774, 775, 775, 775, 775, 776, 776, 777, + 778, 778, 779, 779, 780, 780, 781, 781, 782, 782, + 783, 784, 784, 785, 785, 786, 786, 787, 787, 788, + 788, 788, 788, 788, 788, 788, 788, 788, 788, 789, + 789, 790, 790, 790, 791, 791, 791, 791, 791, 791, + 791, 792, 792, 792, 792, 793, 794, 794, 795, 795, + 795, 795, 795, 795, 795, 795, 795, 795, 795, 796, + 796, 797, 797, 798, 798, 799, 800, 801, 801, 802, + 802, 803, 804, 805, 805, 805, 805, 805, 805, 806, + 806, 807, 807, 807, 807, 808, 809, 809, 809, 810, + 810, 811, 811, 812, 812, 813, 813, 814, 814, 815, + 815, 816, 816, 817, 817, 818, 818, 819, 819, 820, + 820, 821, 821, 822, 822, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, - 823, 823, 823, 823, 823, 823, 823, 824, 824, 825, - 825, 825, 825, 825, 825, 826, 826, 826, 827, 827, - 827, 827, 827, 827, 827, 827, 827, 827, 827, 827, - 828, 829, 830, 831, 831, 831, 831, 831, 831, 832, - 832, 833, 833, 834, 834, 834, 834, 834, 834, 834, - 834, 834, 834, 834, 834, 834, 834, 835, 836, 836, - 837, 837, 838, 838, 838, 839, 839, 840, 840, 841, - 841, 842, 843, 843, 843, 844, 845, 845, 846, 846, - 847, 847, 847, 847, 848, 848, 849, 849, 849, 849, - 849, 850, 850, 850, 850, 850, 851, 851, 852, 852, - 853, 854, 854, 855, 855, 856, 857, 857, 858, 858, - 859, 859, 860, 860, 860, 861, 861, 862, 862, 862, - 862, 862, 862, 862, 862, 862, 862, 862, 862, 862, - 862, 863, 863, 864, 864, 865, 865, 865, 865, 865, - 865, 865, 865, 866, 866, 867, 867, 868, 868, 869, - 869, 870, 870, 871, 871, 872, 872, 873, 873, 873, - 874, 874, 875, 875, 876, 876, 876, 876, 876, 876, - 876, 876, 876, 876, 876, 876, 876, 876, 876, 877, - 877, 878, 879, 879, 880, 880, 880, 880, 880, 880, - 881, 882, 883, 883, 883, 884, 884, 884, 884, 885, - 886, 886, 887, 888, 888, 889, 889, 890, 890, 891, - 892, 892, 550, 550, 550, 550, 893, 893, 894, 894, - 895, 895, 895, 896, 896, 896, 896, 896, 897, 897, - 898, 898, 899, 899, 900, 900, 901, 901, 902, 902, - 902, 903, 903, 904, 904, 905, 906, 906, 907, 907, - 908, 908, 908, 909, 909, 910, 910, 911, 911, 912, - 912, 913, 914, 914, 915, 915, 915, 915, 915, 915, - 915, 915, 915, 915, 915, 915, 915, 915, 916, 917, - 917, 917, 918, 918, 918, 919, 919, 919, 920, 920, - 921, 921, 922, 922, 923, 924, 924, 925, 926, 926, - 927, 927, 927, 927, 927, 927, 928, 928, 928, 929, - 929, 930, 930, 930, 930, 931, 931, 932, 933, 933, - 934, 934, 935, 935, 936, 936, 937, 937, 938, 938, - 938, 938, 938, 938, 939, 939, 940, 940, 941, 941, - 942, 942, 943, 943, 943, 943, 943, 943, 943, 943, - 943, 943, 944, 944, 945, 946, 946, 946, 946, 947, - 947, 948, 948, 948, 949, 949, 949, 949, 949, 949, - 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, - 949, 949, 949, 949, 949, 949, 949, 949, 949, 949, - 949, 949, 949, 949, 949, 950, 950, 950, 951, 951, - 952, 952, 953, 953, 954, 954, 954, 954, 955, 956, - 956, 957, 957, 957, 957, 957, 958, 958, 958, 958, - 959, 959, 960, 961, 961, 961, 961, 961, 961, 961, - 962, 962, 963, 963, 963, 963, 964, 964, 965, 965, - 966, 966, 966, 967, 967, 967, 967, 967, 968, 968, - 968, 968, 968, 969, 969, 970, 970, 971, 971, 972, - 972, 973, 973, 973, 974, 974, 975, 975, 976, 976, - 977, 977, 978, 978, 978, 979, 979, 980, 980, 981, - 981, 981, 981, 981, 982, 982, 983, 983, 983, 984, - 984, 984, 984, 984, 984, 984, 984, 985, 985, 986, - 986, 987, 987, 988, 988, 989, 989, 990, 991, 991, - 991, 991, 991, 992, 992, 992, 992, 993, 993, 993, - 994, 994, 994, 995, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, - 996, 996, 996, 996, 996, 996, 996, 996, 997, 997, - 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - 997, 997, 997, 997, 997, 997, 997, 997, 997, 997, - 997, 997, 998, 998, 998, 998, 998, 998, 998, 998, - 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, - 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, - 999, 999, 999, 999, 999, 999, 999, 999, 999, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, - 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, - 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, - 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, - 1001, 1001, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, - 1002, 1002, 1002, 1002, 1002, 1002, 1002 + 823, 823, 823, 823, 823, 823, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 824, 824, 824, 824, 824, 824, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 825, + 825, 825, 826, 826, 827, 827, 827, 827, 827, 827, + 828, 828, 828, 829, 829, 829, 830, 830, 830, 830, + 830, 830, 830, 830, 830, 830, 831, 832, 833, 834, + 834, 834, 834, 834, 834, 835, 835, 836, 836, 837, + 837, 837, 837, 837, 837, 837, 837, 837, 837, 837, + 837, 837, 837, 838, 839, 839, 840, 840, 841, 841, + 841, 842, 842, 843, 843, 844, 844, 845, 846, 846, + 846, 847, 848, 848, 849, 849, 850, 850, 850, 850, + 851, 851, 852, 852, 852, 852, 852, 853, 853, 853, + 853, 853, 854, 854, 855, 855, 856, 857, 857, 858, + 858, 859, 860, 860, 861, 861, 862, 862, 863, 863, + 863, 864, 864, 865, 865, 865, 865, 865, 865, 865, + 865, 865, 865, 865, 865, 865, 865, 866, 866, 867, + 867, 868, 868, 868, 868, 868, 868, 868, 868, 869, + 869, 870, 870, 871, 871, 872, 872, 873, 873, 874, + 874, 875, 875, 876, 876, 876, 877, 877, 878, 878, + 879, 879, 879, 879, 879, 879, 879, 879, 879, 879, + 879, 879, 879, 879, 879, 880, 880, 881, 882, 882, + 883, 883, 883, 883, 883, 883, 884, 885, 886, 886, + 886, 887, 887, 887, 887, 888, 889, 889, 890, 891, + 891, 892, 892, 893, 893, 894, 895, 895, 550, 550, + 550, 550, 896, 896, 897, 897, 898, 898, 898, 899, + 899, 899, 899, 899, 900, 900, 901, 901, 902, 902, + 903, 903, 904, 904, 905, 905, 905, 905, 906, 906, + 907, 907, 908, 908, 909, 909, 910, 910, 911, 912, + 912, 913, 913, 914, 914, 914, 915, 916, 916, 917, + 917, 918, 918, 918, 919, 919, 920, 920, 921, 921, + 922, 922, 923, 924, 924, 925, 925, 925, 925, 925, + 925, 925, 925, 925, 925, 925, 925, 925, 925, 926, + 927, 927, 927, 928, 928, 928, 929, 929, 929, 930, + 930, 931, 931, 932, 932, 933, 934, 934, 935, 936, + 936, 937, 937, 937, 937, 937, 937, 938, 938, 938, + 939, 939, 940, 940, 940, 940, 941, 941, 942, 943, + 943, 944, 944, 945, 945, 946, 946, 947, 947, 948, + 948, 948, 948, 948, 948, 949, 949, 950, 950, 951, + 951, 952, 952, 953, 953, 953, 953, 953, 953, 953, + 953, 953, 953, 954, 954, 955, 956, 956, 956, 956, + 957, 957, 958, 958, 958, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 959, 959, 959, 959, + 959, 959, 959, 959, 959, 959, 960, 960, 960, 961, + 961, 962, 962, 963, 963, 964, 964, 964, 964, 965, + 966, 966, 967, 967, 967, 967, 967, 968, 968, 968, + 968, 969, 969, 970, 971, 971, 971, 971, 971, 971, + 971, 972, 972, 973, 973, 973, 973, 974, 974, 975, + 975, 976, 976, 976, 977, 977, 977, 977, 977, 978, + 978, 978, 978, 978, 979, 979, 980, 980, 981, 981, + 982, 982, 983, 983, 983, 984, 984, 985, 985, 986, + 986, 987, 987, 988, 988, 988, 989, 989, 990, 990, + 991, 991, 991, 991, 991, 992, 992, 993, 993, 993, + 994, 994, 994, 994, 994, 994, 994, 994, 995, 995, + 996, 996, 997, 997, 998, 998, 999, 1000, 1000, 1000, + 1000, 1000, 1001, 1001, 1001, 1001, 1002, 1002, 1002, 1003, + 1003, 1003, 1004, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, + 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1006, 1006, 1006, + 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, + 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, + 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, + 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, + 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, + 1006, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, + 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, + 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1008, + 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, + 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, + 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, + 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1010, + 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, + 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, + 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, + 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, + 1011, 1011, 1011, 1011, 1011, 1011 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -3397,98 +3412,99 @@ static const yytype_uint8 yyr2[] = 2, 1, 5, 1, 0, 2, 2, 0, 1, 0, 3, 5, 1, 3, 4, 3, 1, 1, 0, 2, 2, 0, 2, 2, 1, 1, 1, 0, 2, 4, - 5, 4, 2, 3, 2, 2, 2, 2, 1, 2, - 3, 0, 1, 0, 5, 1, 4, 6, 2, 1, - 0, 4, 0, 1, 1, 2, 2, 2, 1, 1, - 2, 2, 1, 1, 1, 1, 1, 1, 3, 3, - 0, 1, 3, 1, 2, 1, 1, 1, 1, 1, - 2, 4, 4, 5, 1, 1, 2, 0, 2, 0, - 1, 3, 1, 0, 1, 2, 3, 2, 4, 2, - 3, 2, 0, 1, 2, 0, 4, 5, 1, 2, - 2, 0, 1, 3, 1, 2, 3, 3, 3, 3, - 3, 3, 1, 4, 9, 9, 3, 0, 2, 2, - 0, 5, 3, 0, 1, 1, 3, 5, 3, 1, - 2, 1, 3, 5, 1, 2, 3, 4, 5, 4, - 5, 4, 6, 5, 4, 5, 5, 5, 2, 4, - 1, 1, 0, 1, 4, 5, 4, 0, 2, 2, - 2, 1, 1, 1, 1, 0, 4, 2, 1, 2, - 2, 4, 2, 6, 2, 1, 3, 4, 0, 2, - 0, 2, 0, 1, 3, 3, 2, 0, 2, 4, - 1, 1, 1, 0, 2, 3, 5, 6, 2, 3, - 1, 5, 5, 5, 3, 3, 3, 4, 0, 1, - 1, 1, 1, 1, 2, 4, 1, 1, 1, 1, - 2, 3, 0, 1, 1, 1, 1, 1, 2, 2, - 2, 2, 2, 1, 3, 0, 1, 1, 1, 1, - 5, 2, 1, 1, 1, 1, 4, 1, 2, 2, - 1, 3, 3, 2, 1, 0, 5, 2, 5, 2, - 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, + 5, 4, 2, 3, 1, 1, 1, 2, 2, 1, + 2, 3, 0, 1, 0, 5, 1, 4, 6, 2, + 1, 0, 4, 0, 1, 1, 2, 2, 2, 1, + 1, 2, 2, 1, 1, 1, 1, 1, 1, 3, + 3, 0, 1, 3, 1, 2, 1, 1, 1, 1, + 1, 2, 4, 4, 5, 1, 1, 2, 0, 2, + 0, 1, 3, 1, 0, 1, 2, 3, 2, 4, + 2, 3, 2, 0, 1, 2, 0, 4, 5, 1, + 2, 2, 0, 1, 3, 1, 2, 2, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 1, 4, 4, + 9, 9, 3, 0, 2, 2, 0, 5, 3, 1, + 1, 3, 5, 3, 1, 2, 1, 3, 5, 1, + 2, 3, 4, 5, 4, 5, 4, 6, 5, 4, + 5, 5, 5, 2, 4, 1, 1, 0, 1, 4, + 5, 4, 0, 2, 2, 2, 1, 1, 1, 1, + 0, 4, 2, 1, 2, 2, 4, 2, 6, 2, + 1, 3, 4, 0, 2, 0, 2, 0, 1, 3, + 3, 2, 0, 2, 4, 1, 1, 1, 0, 2, + 3, 5, 6, 2, 3, 1, 5, 5, 5, 3, + 3, 3, 4, 0, 1, 1, 1, 1, 1, 2, + 4, 1, 1, 1, 1, 2, 3, 0, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 2, 1, 3, + 0, 1, 1, 1, 1, 5, 2, 1, 1, 1, + 1, 4, 1, 2, 2, 1, 3, 3, 2, 1, + 0, 5, 2, 5, 2, 1, 3, 3, 0, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, + 3, 3, 3, 3, 3, 0, 1, 3, 3, 5, + 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 2, 2, 3, + 3, 2, 2, 3, 3, 5, 4, 6, 3, 5, + 4, 6, 4, 6, 5, 7, 3, 2, 4, 3, + 2, 3, 3, 3, 3, 4, 3, 4, 3, 4, + 5, 6, 6, 7, 6, 7, 6, 7, 3, 4, + 4, 6, 1, 5, 4, 4, 6, 1, 3, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 2, 2, 5, 6, + 6, 7, 1, 2, 1, 1, 1, 2, 2, 4, + 3, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 2, 4, 2, 3, 3, 4, 3, + 6, 7, 9, 7, 7, 5, 1, 1, 1, 5, + 6, 6, 4, 4, 4, 4, 6, 5, 5, 5, + 4, 6, 4, 1, 7, 9, 5, 0, 5, 4, + 0, 1, 0, 2, 0, 1, 3, 3, 2, 2, + 0, 6, 1, 0, 3, 0, 3, 3, 3, 0, + 1, 4, 2, 2, 2, 2, 2, 3, 2, 2, + 3, 0, 4, 3, 1, 5, 3, 1, 3, 1, + 2, 3, 1, 3, 1, 2, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, - 0, 1, 3, 3, 5, 2, 2, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 3, 3, 2, 2, 3, 3, - 5, 4, 6, 3, 5, 4, 6, 4, 6, 5, - 7, 3, 2, 4, 3, 2, 3, 3, 3, 3, - 4, 3, 4, 3, 4, 5, 6, 6, 7, 6, - 7, 6, 7, 3, 4, 4, 6, 1, 5, 4, - 3, 5, 1, 3, 2, 2, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 5, 6, 6, 7, 1, 2, 1, - 1, 1, 2, 2, 4, 3, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 4, 2, 2, - 3, 3, 4, 3, 6, 7, 9, 7, 7, 5, - 1, 1, 1, 5, 6, 6, 4, 4, 4, 4, - 6, 5, 5, 5, 4, 6, 4, 1, 7, 9, - 5, 0, 5, 4, 0, 1, 0, 2, 0, 1, - 3, 3, 2, 2, 0, 6, 1, 0, 3, 0, - 3, 3, 3, 0, 1, 4, 2, 2, 2, 2, - 2, 3, 2, 2, 3, 0, 4, 3, 1, 5, - 3, 1, 3, 1, 2, 3, 1, 3, 1, 2, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, + 4, 1, 4, 1, 2, 1, 2, 1, 2, 1, + 3, 1, 3, 1, 2, 1, 3, 1, 2, 1, + 0, 1, 3, 1, 3, 3, 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 1, 4, 1, 4, 1, 2, 1, - 2, 1, 2, 1, 3, 1, 3, 1, 2, 1, - 3, 1, 2, 1, 0, 1, 3, 1, 3, 3, - 1, 3, 3, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 3, 2, 3, 0, 3, 3, 2, 2, 1, 0, - 2, 2, 3, 2, 1, 1, 3, 1, 1, 5, - 1, 2, 4, 2, 0, 1, 0, 1, 3, 1, - 1, 2, 3, 5, 7, 7, 1, 0, 0, 2, - 0, 2, 3, 3, 3, 5, 7, 7, 0, 2, - 1, 0, 1, 0, 1, 3, 1, 2, 3, 2, - 1, 4, 2, 1, 0, 3, 1, 3, 1, 2, - 4, 2, 0, 1, 3, 1, 3, 1, 2, 1, - 3, 1, 1, 2, 1, 1, 2, 1, 1, 2, - 7, 2, 5, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 3, 3, 0, 1, 1, 1, 5, 3, 0, - 1, 1, 1, 1, 1, 1, 4, 7, 6, 2, - 0, 1, 1, 1, 1, 13, 16, 1, 2, 0, - 1, 0, 1, 0, 2, 0, 1, 0, 6, 8, - 6, 8, 6, 8, 3, 2, 1, 0, 6, 6, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 1, 1, 4, 6, 3, 2, 4, 3, 5, 1, - 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 4, 3, 2, 3, 0, + 3, 3, 2, 2, 1, 0, 2, 2, 3, 2, + 1, 1, 3, 1, 1, 5, 1, 2, 4, 2, + 0, 1, 0, 1, 3, 1, 1, 2, 3, 5, + 7, 7, 1, 0, 0, 2, 0, 2, 3, 3, + 3, 5, 7, 7, 0, 2, 1, 0, 1, 0, + 1, 3, 1, 2, 3, 2, 1, 3, 4, 2, + 1, 3, 1, 3, 1, 2, 1, 0, 3, 1, + 3, 1, 2, 4, 2, 0, 3, 1, 3, 1, + 2, 4, 2, 0, 1, 3, 1, 3, 1, 2, + 1, 3, 1, 1, 2, 1, 1, 2, 1, 1, + 2, 7, 2, 5, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 2, 2, 3, 3, 0, 1, 1, 1, 5, 3, + 0, 1, 1, 1, 1, 1, 1, 4, 7, 6, + 2, 0, 1, 1, 1, 1, 13, 16, 1, 2, + 0, 1, 0, 1, 0, 2, 0, 1, 0, 6, + 8, 6, 8, 6, 8, 3, 2, 1, 0, 6, + 6, 1, 1, 1, 1, 1, 1, 2, 1, 1, + 1, 1, 1, 4, 6, 3, 2, 4, 3, 5, + 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 1, 1, 1, 1, 1, 2, 1, - 1, 2, 3, 3, 3, 3, 1, 3, 3, 2, - 3, 3, 1, 1, 1, 3, 5, 1, 1, 1, - 1, 3, 2, 4, 6, 6, 0, 1, 1, 1, - 0, 2, 2, 4, 6, 5, 4, 6, 1, 1, - 1, 1, 1, 1, 0, 1, 3, 1, 0, 7, - 3, 1, 2, 3, 2, 0, 2, 0, 2, 4, - 5, 8, 2, 3, 5, 1, 0, 2, 0, 2, - 3, 3, 3, 3, 1, 1, 1, 2, 3, 2, - 2, 2, 2, 3, 4, 3, 1, 1, 1, 1, - 1, 1, 0, 1, 3, 1, 3, 2, 9, 12, - 11, 12, 14, 3, 4, 4, 0, 7, 10, 9, - 2, 3, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 2, 3, 3, 3, 3, 1, 3, 3, + 2, 3, 3, 1, 1, 1, 3, 5, 1, 1, + 1, 1, 3, 2, 4, 6, 6, 0, 1, 1, + 1, 0, 2, 2, 4, 6, 5, 4, 6, 1, + 1, 1, 1, 1, 1, 0, 1, 3, 1, 0, + 7, 3, 1, 2, 3, 2, 0, 2, 0, 2, + 4, 5, 8, 2, 3, 5, 1, 0, 2, 0, + 2, 3, 3, 3, 3, 1, 1, 1, 2, 3, + 2, 2, 2, 2, 3, 4, 3, 1, 1, 1, + 1, 1, 1, 0, 1, 3, 2, 9, 12, 11, + 12, 14, 3, 4, 4, 0, 7, 10, 9, 2, + 3, 0, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -3549,7 +3565,8 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -3557,3849 +3574,4519 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint16 yydefact[] = { - 156, 265, 0, 1413, 1412, 1486, 265, 0, 1347, 0, - 265, 501, 406, 0, 1508, 1507, 0, 208, 265, 0, - 156, 0, 1447, 0, 0, 0, 564, 567, 565, 0, - 0, 0, 265, 604, 0, 1509, 265, 0, 0, 596, - 566, 0, 1464, 0, 0, 0, 0, 0, 2, 4, + 156, 265, 0, 1434, 1433, 1507, 265, 0, 1368, 0, + 265, 501, 406, 0, 1529, 1528, 0, 208, 265, 0, + 156, 0, 1468, 0, 0, 0, 564, 567, 565, 0, + 0, 0, 265, 604, 0, 1530, 265, 0, 0, 596, + 566, 0, 1485, 0, 0, 0, 0, 0, 2, 4, 7, 21, 35, 31, 0, 20, 33, 18, 17, 38, 26, 6, 24, 37, 40, 19, 25, 15, 39, 13, - 36, 540, 526, 609, 539, 0, 0, 155, 708, 547, - 34, 16, 30, 5, 11, 12, 28, 29, 27, 1370, + 36, 540, 526, 609, 539, 0, 0, 155, 709, 547, + 34, 16, 30, 5, 11, 12, 28, 29, 27, 1391, 43, 32, 0, 41, 22, 8, 9, 23, 42, 44, - 1510, 1506, 10, 45, 14, 264, 263, 257, 0, 0, - 0, 0, 0, 1485, 0, 0, 268, 112, 1534, 1535, - 1536, 1537, 1538, 1539, 1540, 1541, 1542, 1543, 1544, 1912, - 1545, 1546, 1547, 1548, 1549, 1913, 1550, 1551, 1552, 1858, - 1859, 1914, 1860, 1861, 1553, 1554, 1555, 1556, 1557, 1558, - 1559, 1560, 1561, 1562, 1862, 1863, 1563, 1564, 1565, 1566, - 1567, 1864, 1915, 1865, 1568, 1569, 1570, 1571, 1572, 1916, - 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1917, - 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, - 1866, 1592, 1593, 1867, 1594, 1595, 1596, 1597, 1598, 1599, - 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, - 1610, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, - 1620, 1868, 1621, 1622, 1623, 1624, 1625, 1626, 1869, 1627, - 1628, 1629, 1870, 1630, 1631, 1632, 1918, 1919, 1633, 1634, - 1871, 1921, 1635, 1636, 1872, 1873, 1637, 1638, 1639, 1640, - 1641, 1642, 1643, 1644, 1645, 1922, 1646, 1647, 1648, 1649, - 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1923, 1874, - 1658, 1659, 1660, 1661, 1662, 1875, 1876, 1877, 1663, 1924, - 1925, 1664, 1926, 1665, 1666, 1667, 1668, 1669, 1670, 1671, - 1927, 1672, 1928, 1673, 1674, 1675, 1676, 1677, 1678, 1679, - 1680, 1878, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, - 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, - 1699, 1700, 1879, 1930, 1880, 1701, 1702, 1703, 1881, 1704, - 1705, 1931, 1706, 1882, 1707, 1883, 1708, 1709, 1710, 1711, - 1712, 1713, 1714, 1715, 1716, 1717, 1884, 1932, 1718, 1933, - 1885, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, - 1728, 1729, 1730, 1731, 1886, 1934, 1732, 1733, 1887, 1734, - 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, - 1745, 1746, 1747, 1888, 1748, 1749, 1750, 1751, 1752, 1753, + 1531, 1527, 10, 45, 14, 264, 263, 257, 0, 0, + 0, 0, 0, 1506, 0, 0, 268, 112, 1553, 1554, + 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1563, 1931, + 1564, 1565, 1566, 1567, 1568, 1932, 1569, 1570, 1571, 1877, + 1878, 1933, 1879, 1880, 1572, 1573, 1574, 1575, 1576, 1577, + 1578, 1579, 1580, 1581, 1881, 1882, 1582, 1583, 1584, 1585, + 1586, 1883, 1934, 1884, 1587, 1588, 1589, 1590, 1591, 1935, + 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1936, + 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, + 1885, 1611, 1612, 1886, 1613, 1614, 1615, 1616, 1617, 1618, + 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, + 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, 1637, 1638, + 1639, 1887, 1640, 1641, 1642, 1643, 1644, 1645, 1888, 1646, + 1647, 1648, 1889, 1649, 1650, 1651, 1937, 1938, 1652, 1653, + 1890, 1940, 1654, 1655, 1891, 1892, 1656, 1657, 1658, 1659, + 1660, 1661, 1662, 1663, 1664, 1941, 1665, 1666, 1667, 1668, + 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1942, 1893, + 1677, 1678, 1679, 1680, 1681, 1894, 1895, 1896, 1682, 1943, + 1944, 1683, 1945, 1684, 1685, 1686, 1687, 1688, 1689, 1690, + 1946, 1691, 1947, 1692, 1693, 1694, 1695, 1696, 1697, 1698, + 1699, 1897, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, + 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, + 1718, 1719, 1898, 1949, 1899, 1720, 1721, 1722, 1900, 1723, + 1724, 1950, 1725, 1901, 1726, 1902, 1727, 1728, 1729, 1730, + 1731, 1732, 1733, 1734, 1735, 1736, 1903, 1951, 1737, 1952, + 1904, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, + 1747, 1748, 1749, 1750, 1905, 1953, 1751, 1752, 1906, 1753, 1754, 1755, 1756, 1757, 1758, 1759, 1760, 1761, 1762, 1763, - 1764, 1765, 1766, 1935, 1767, 1768, 1769, 1889, 1770, 1771, - 1772, 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, - 1782, 1783, 1784, 1785, 1786, 1787, 1788, 1890, 1789, 1790, - 1936, 1791, 1792, 1891, 1793, 1794, 1795, 1796, 1797, 1798, - 1799, 1800, 1801, 1802, 1803, 1804, 1805, 1892, 1806, 1893, - 1807, 1808, 1809, 1938, 1810, 1811, 1812, 1813, 1814, 1815, - 1894, 1895, 1816, 1817, 1896, 1818, 1897, 1819, 1820, 1898, - 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, - 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1899, 1900, 1838, - 1839, 1939, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, - 1848, 1849, 1850, 1851, 1852, 1853, 1901, 1902, 1903, 1904, - 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1854, 1855, 1856, - 1857, 0, 1517, 0, 1272, 113, 114, 1294, 112, 1871, - 1878, 1892, 1346, 1345, 113, 0, 260, 500, 0, 0, - 0, 0, 0, 0, 210, 0, 400, 399, 0, 1336, - 405, 0, 0, 0, 116, 108, 1734, 115, 1271, 106, - 122, 2082, 2083, 2084, 2085, 1969, 2086, 2087, 2088, 2089, - 1970, 2090, 1971, 1972, 1973, 1974, 1975, 1976, 2091, 2092, - 2093, 1978, 1977, 2094, 1979, 2095, 1980, 2096, 1981, 1982, - 2097, 2098, 1983, 1588, 1984, 1985, 2099, 2100, 2101, 2102, - 2103, 2104, 2105, 2106, 2107, 1986, 1987, 2108, 2109, 1988, - 2110, 2111, 1989, 2112, 1990, 1991, 1992, 2113, 2114, 1993, - 1994, 2115, 1995, 2116, 2117, 1996, 1997, 2000, 1998, 2118, - 1999, 2119, 2001, 2002, 2003, 2120, 2121, 2004, 2005, 2122, - 2006, 2007, 2008, 2009, 2010, 2123, 2011, 2124, 2012, 2013, - 2125, 2126, 2127, 2128, 2129, 2015, 2014, 2016, 2017, 2130, - 2131, 2132, 2133, 2018, 2019, 2020, 2134, 2135, 2021, 2136, - 2137, 2022, 2023, 2138, 2024, 2025, 2139, 2026, 2027, 2140, - 2028, 2029, 2141, 2142, 2143, 2030, 2144, 2031, 2032, 2145, - 2146, 2033, 2034, 2147, 2035, 2148, 2149, 2150, 2151, 2036, - 2037, 2152, 2038, 2153, 2154, 2155, 2156, 2039, 2040, 2041, - 2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 1482, 124, + 1764, 1765, 1766, 1907, 1767, 1768, 1769, 1770, 1771, 1772, + 1773, 1774, 1775, 1776, 1777, 1778, 1779, 1780, 1781, 1782, + 1783, 1784, 1785, 1954, 1786, 1787, 1788, 1908, 1789, 1790, + 1791, 1792, 1793, 1794, 1795, 1796, 1797, 1798, 1799, 1800, + 1801, 1802, 1803, 1804, 1805, 1806, 1807, 1909, 1808, 1809, + 1955, 1810, 1811, 1910, 1812, 1813, 1814, 1815, 1816, 1817, + 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1911, 1825, 1912, + 1826, 1827, 1828, 1957, 1829, 1830, 1831, 1832, 1833, 1834, + 1913, 1914, 1835, 1836, 1915, 1837, 1916, 1838, 1839, 1917, + 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, + 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1918, 1919, 1857, + 1858, 1958, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, + 1867, 1868, 1869, 1870, 1871, 1872, 1920, 1921, 1922, 1923, + 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1873, 1874, 1875, + 1876, 0, 1536, 0, 1293, 113, 114, 1315, 112, 1890, + 1897, 1911, 1367, 1366, 113, 0, 260, 500, 0, 0, + 0, 0, 0, 0, 210, 0, 400, 399, 0, 1357, + 405, 0, 0, 0, 116, 108, 1753, 115, 1292, 106, + 122, 2101, 2102, 2103, 2104, 1988, 2105, 2106, 2107, 2108, + 1989, 2109, 1990, 1991, 1992, 1993, 1994, 1995, 2110, 2111, + 2112, 1997, 1996, 2113, 1998, 2114, 1999, 2115, 2000, 2001, + 2116, 2117, 2002, 1607, 2003, 2004, 2118, 2119, 2120, 2121, + 2122, 2123, 2124, 2125, 2126, 2005, 2006, 2127, 2128, 2007, + 2129, 2130, 2008, 2131, 2009, 2010, 2011, 2132, 2133, 2012, + 2013, 2134, 2014, 2135, 2136, 2015, 2016, 2019, 2017, 2137, + 2018, 2138, 2020, 2021, 2022, 2139, 2140, 2023, 2024, 2141, + 2025, 2026, 2027, 2028, 2029, 2142, 2030, 2143, 2031, 2032, + 2144, 2145, 2146, 2147, 2148, 2034, 2033, 2035, 2036, 2149, + 2150, 2151, 2152, 2037, 2038, 2039, 2153, 2154, 2040, 2155, + 2156, 2041, 2042, 2157, 2043, 2044, 2158, 2045, 2046, 2159, + 2047, 2048, 2160, 2161, 2162, 2049, 2163, 2050, 2051, 2164, + 2165, 2052, 2053, 2166, 2054, 2167, 2168, 2169, 2170, 2055, + 2056, 2171, 2057, 2172, 2173, 2174, 2175, 2058, 2059, 2060, + 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 1503, 124, 123, 125, 0, 424, 425, 0, 435, 0, 417, 422, 418, 0, 444, 437, 445, 426, 416, 438, 427, 415, 209, 0, 446, 432, 420, 0, 0, 0, 0, 261, - 222, 406, 0, 156, 0, 1376, 1386, 1395, 1391, 1385, - 1393, 1383, 1399, 1389, 1375, 1397, 1384, 1388, 1381, 1398, - 1379, 1396, 1394, 1382, 1390, 1374, 1378, 1365, 1370, 1402, - 1392, 1400, 1387, 1401, 1403, 1377, 1404, 1380, 0, 1347, - 0, 1864, 1915, 1869, 0, 1882, 0, 1885, 1886, 1770, - 1893, 1896, 1897, 1898, 1899, 0, 778, 115, 110, 762, - 0, 542, 712, 722, 762, 767, 1051, 790, 1052, 0, - 117, 1449, 1448, 1442, 195, 1309, 1495, 1635, 1675, 1787, - 1894, 1816, 1838, 1513, 1496, 1489, 1494, 262, 603, 601, - 0, 1243, 1635, 1675, 1774, 1787, 1894, 1838, 1421, 1426, - 0, 268, 1515, 1500, 0, 1501, 115, 548, 595, 0, - 269, 1463, 0, 1468, 0, 1750, 575, 578, 1303, 576, - 540, 0, 0, 1, 156, 0, 162, 0, 599, 599, - 0, 599, 0, 532, 0, 0, 540, 535, 539, 709, - 1369, 1478, 0, 1512, 1894, 1816, 1499, 1502, 1644, 0, - 0, 1644, 0, 1644, 0, 1644, 0, 0, 1488, 0, - 258, 1227, 0, 1273, 118, 0, 0, 1358, 1354, 1359, - 1355, 1360, 1353, 1352, 1361, 1357, 0, 0, 0, 371, - 404, 403, 402, 401, 406, 1644, 1320, 0, 206, 462, - 463, 0, 0, 0, 0, 0, 1331, 109, 107, 1644, - 1483, 433, 434, 0, 423, 419, 421, 0, 0, 1644, - 1298, 443, 439, 1644, 443, 1265, 1644, 0, 0, 214, - 0, 399, 1367, 1405, 2036, 1419, 0, 1420, 1410, 1373, - 1406, 1407, 156, 0, 499, 1344, 0, 0, 0, 1173, - 762, 767, 0, 0, 780, 0, 1193, 0, 1199, 0, - 0, 0, 762, 547, 0, 722, 779, 111, 0, 760, - 761, 650, 650, 604, 0, 585, 772, 0, 0, 775, - 773, 0, 775, 0, 0, 0, 775, 771, 730, 0, - 650, 0, 760, 763, 650, 0, 782, 1364, 0, 0, - 0, 0, 1492, 1490, 1491, 1497, 0, 1493, 0, 0, - 1275, 1277, 1278, 1141, 1288, 1029, 0, 1859, 1860, 1861, - 1216, 1862, 1863, 1865, 1866, 1867, 987, 1608, 1868, 1286, - 1870, 1872, 1873, 1875, 1876, 1877, 1878, 1879, 1880, 0, - 1287, 1883, 1713, 1888, 1889, 1891, 1894, 1895, 1285, 1900, - 0, 0, 0, 1254, 1164, 0, 1028, 0, 0, 0, - 1220, 1228, 1021, 0, 0, 826, 827, 848, 849, 828, - 854, 855, 857, 829, 0, 1250, 921, 1017, 1238, 1026, - 1034, 1030, 1031, 1071, 1032, 1050, 1035, 1108, 1027, 0, - 1033, 1019, 1246, 585, 1244, 0, 1020, 1274, 585, 1242, - 1424, 1422, 1429, 1423, 0, 1425, 0, 0, 0, 259, - 0, 111, 1471, 1470, 1462, 1460, 1461, 1459, 1458, 1465, - 0, 1467, 1370, 1159, 1161, 0, 577, 0, 0, 0, - 529, 528, 530, 3, 0, 0, 0, 1625, 0, 597, - 598, 0, 0, 0, 0, 0, 0, 0, 0, 693, - 624, 625, 627, 690, 694, 702, 0, 0, 0, 0, - 0, 536, 0, 1303, 1450, 1511, 1505, 1503, 0, 0, - 0, 140, 140, 0, 0, 0, 0, 0, 100, 49, - 93, 0, 0, 0, 0, 236, 249, 0, 0, 0, - 0, 0, 246, 0, 0, 229, 51, 223, 225, 0, - 140, 0, 47, 0, 0, 0, 53, 1486, 0, 499, - 266, 267, 1226, 0, 120, 121, 119, 112, 0, 2050, - 1912, 1913, 1914, 1915, 1865, 1916, 1917, 0, 1918, 1919, - 1871, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1878, - 1930, 1931, 1932, 1933, 1934, 1935, 2076, 1936, 1892, 1938, - 1898, 0, 1939, 1043, 1167, 609, 1165, 1304, 0, 113, - 1291, 0, 1356, 0, 0, 0, 0, 497, 0, 0, - 0, 0, 1316, 0, 1644, 207, 211, 0, 1644, 202, - 1644, 371, 0, 1644, 371, 1644, 0, 1330, 1333, 0, - 436, 431, 429, 428, 430, 1644, 255, 0, 0, 1299, - 441, 442, 0, 410, 0, 0, 412, 0, 0, 219, - 0, 217, 0, 406, 156, 0, 230, 1415, 1416, 1414, - 0, 0, 1409, 1372, 233, 250, 1418, 1408, 1417, 1371, - 1366, 0, 0, 1362, 485, 0, 0, 0, 1174, 897, - 896, 878, 879, 894, 895, 880, 881, 888, 889, 899, - 898, 886, 887, 882, 883, 876, 877, 892, 893, 884, - 885, 890, 891, 874, 875, 1188, 1175, 1176, 1177, 1178, - 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 0, - 0, 721, 719, 0, 0, 0, 0, 0, 0, 1220, - 0, 992, 1027, 0, 0, 0, 1159, 1198, 0, 0, - 0, 0, 0, 0, 1159, 1204, 0, 0, 746, 758, - 0, 643, 649, 720, 718, 0, 1243, 713, 0, 792, - 0, 772, 0, 771, 0, 0, 774, 768, 0, 769, - 0, 0, 0, 0, 770, 0, 0, 0, 0, 0, - 716, 0, 758, 0, 717, 789, 1432, 1440, 196, 0, - 1295, 1940, 1941, 1942, 836, 1943, 865, 843, 865, 865, - 1944, 1945, 1946, 1947, 832, 832, 845, 1948, 1949, 1950, - 1951, 1952, 833, 834, 870, 1953, 1954, 1955, 1956, 1957, - 0, 0, 1958, 865, 1959, 832, 1960, 1961, 1962, 837, - 1963, 800, 1964, 0, 1965, 835, 801, 1966, 873, 873, - 1967, 0, 860, 1968, 0, 1170, 810, 818, 819, 820, - 821, 846, 847, 822, 852, 853, 823, 920, 0, 832, - 1296, 1297, 156, 1498, 1514, 0, 1164, 1036, 864, 851, - 1215, 0, 859, 858, 0, 1164, 841, 840, 839, 1023, - 0, 838, 1121, 865, 865, 863, 946, 842, 0, 0, - 0, 0, 0, 869, 0, 867, 947, 925, 926, 0, - 0, 1253, 1262, 1159, 1163, 0, 1021, 1159, 0, 1038, - 1039, 0, 1111, 1113, 0, 0, 1221, 1276, 1022, 0, - 1281, 0, 0, 920, 920, 1249, 1141, 0, 1131, 1134, - 0, 0, 1138, 1139, 1140, 0, 0, 0, 1241, 0, - 1149, 1151, 0, 0, 962, 1147, 0, 965, 0, 0, - 0, 0, 1135, 1136, 1137, 1127, 1128, 1129, 1130, 1132, - 1133, 1145, 1126, 943, 0, 1018, 0, 1074, 0, 942, - 1247, 711, 0, 1279, 711, 1434, 1438, 1439, 1433, 1437, - 0, 1428, 1427, 1430, 1431, 1516, 0, 1472, 1456, 0, - 1453, 1162, 706, 579, 1267, 0, 583, 1477, 161, 160, - 0, 213, 0, 552, 551, 618, 610, 612, 618, 0, - 550, 0, 666, 667, 0, 0, 0, 0, 699, 697, - 1275, 1288, 654, 628, 653, 0, 0, 632, 0, 658, - 921, 692, 534, 622, 623, 626, 533, 0, 695, 0, - 705, 0, 571, 573, 556, 570, 568, 553, 561, 693, - 627, 0, 1479, 0, 0, 1443, 1504, 0, 0, 0, - 0, 0, 1644, 0, 0, 803, 84, 65, 323, 139, - 0, 0, 0, 0, 0, 0, 0, 92, 89, 90, - 91, 0, 0, 0, 0, 1295, 234, 235, 248, 0, - 239, 240, 237, 241, 242, 0, 0, 227, 228, 0, - 0, 0, 0, 226, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1487, 1480, 1222, 1227, 609, 609, 609, - 0, 607, 608, 0, 0, 0, 0, 0, 484, 369, - 379, 0, 0, 0, 1320, 206, 0, 0, 0, 0, - 0, 0, 406, 1323, 1321, 1319, 1322, 1324, 1614, 190, - 0, 0, 0, 0, 0, 198, 201, 0, 368, 342, - 0, 0, 1335, 0, 0, 457, 455, 458, 447, 460, - 450, 0, 1644, 358, 1332, 0, 1484, 0, 0, 253, - 443, 1300, 0, 440, 443, 1266, 0, 443, 221, 0, - 0, 1368, 1411, 231, 251, 232, 252, 499, 494, 524, - 0, 502, 507, 482, 0, 482, 0, 504, 508, 482, - 503, 0, 482, 498, 0, 1066, 0, 1056, 0, 0, - 781, 0, 0, 1057, 994, 995, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1012, 1011, 1058, 785, 0, 788, - 0, 0, 1196, 1197, 0, 1059, 0, 0, 1203, 0, - 0, 0, 1064, 0, 723, 0, 0, 0, 638, 642, - 645, 0, 648, 585, 541, 1635, 1675, 0, 596, 596, - 596, 594, 584, 0, 670, 0, 0, 0, 747, 0, - 0, 749, 751, 0, 0, 754, 0, 729, 728, 0, - 0, 0, 0, 793, 0, 1271, 0, 0, 197, 0, - 0, 0, 818, 0, 0, 0, 808, 804, 0, 900, - 901, 902, 903, 904, 905, 906, 907, 908, 909, 910, - 911, 912, 824, 1308, 0, 830, 1311, 0, 1312, 1313, - 1310, 1307, 1314, 1315, 0, 0, 0, 0, 1214, 1210, - 0, 0, 0, 0, 1116, 1118, 1120, 0, 862, 861, - 1125, 1131, 1134, 1138, 1139, 1140, 1135, 1136, 1137, 1127, - 1128, 1129, 1130, 1132, 1133, 0, 1153, 0, 1107, 0, - 0, 0, 0, 0, 0, 0, 1252, 0, 990, 0, - 1040, 1025, 0, 0, 1114, 1041, 1254, 1229, 0, 0, - 0, 1284, 1283, 922, 931, 934, 966, 967, 938, 939, - 940, 944, 1306, 1305, 1248, 0, 1240, 0, 0, 923, - 948, 953, 0, 1205, 1208, 983, 1207, 0, 971, 0, - 961, 0, 969, 973, 949, 964, 0, 945, 0, 1241, - 1150, 1152, 0, 1148, 0, 935, 936, 937, 927, 928, - 929, 930, 932, 933, 941, 1124, 1122, 1123, 0, 1227, - 0, 1239, 0, 0, 1076, 0, 0, 968, 1245, 0, - 792, 609, 792, 0, 920, 1473, 1303, 1466, 1303, 1455, - 1160, 1268, 1302, 581, 0, 0, 0, 1475, 147, 151, - 0, 1228, 181, 183, 711, 0, 616, 617, 621, 0, - 0, 621, 600, 549, 1889, 1770, 0, 0, 0, 0, - 659, 700, 0, 691, 656, 657, 0, 655, 1275, 660, - 1274, 661, 664, 665, 633, 1263, 701, 703, 0, 696, - 0, 1269, 555, 574, 0, 0, 0, 0, 0, 538, - 537, 707, 1450, 1450, 1452, 1451, 0, 50, 0, 1644, - 67, 0, 0, 0, 0, 0, 0, 273, 0, 373, - 273, 105, 1644, 443, 1644, 443, 1538, 1609, 1788, 0, - 63, 347, 96, 0, 133, 376, 0, 332, 86, 101, - 126, 0, 0, 52, 224, 238, 243, 129, 247, 244, - 1340, 245, 140, 0, 48, 0, 127, 0, 1338, 0, - 0, 54, 131, 1342, 1488, 0, 1226, 0, 607, 607, - 607, 0, 1166, 0, 0, 0, 1168, 1169, 961, 1350, - 1349, 1351, 1348, 470, 483, 0, 370, 0, 496, 473, - 474, 484, 1318, 211, 0, 202, 371, 0, 371, 0, - 1320, 0, 0, 192, 188, 206, 212, 0, 0, 0, - 0, 0, 369, 361, 359, 392, 0, 366, 360, 0, - 0, 318, 0, 1532, 0, 0, 0, 0, 464, 0, - 0, 0, 0, 0, 0, 255, 256, 409, 1301, 411, - 0, 413, 220, 218, 1363, 2006, 490, 1164, 0, 488, - 495, 489, 492, 493, 487, 486, 0, 481, 0, 517, - 0, 0, 0, 0, 0, 0, 0, 0, 1053, 1172, - 0, 1191, 1190, 993, 1000, 1003, 1007, 1008, 1009, 1192, - 0, 0, 0, 1004, 1005, 1006, 996, 997, 998, 999, - 1001, 1002, 1010, 790, 0, 0, 784, 1201, 1200, 1194, - 1195, 0, 1061, 1062, 1063, 1202, 0, 0, 759, 636, - 634, 637, 639, 635, 0, 0, 792, 596, 596, 596, - 596, 593, 0, 0, 0, 791, 0, 687, 755, 753, - 0, 777, 0, 750, 733, 756, 0, 741, 0, 748, - 797, 764, 0, 0, 766, 1441, 814, 0, 809, 805, - 0, 0, 0, 815, 0, 0, 0, 0, 0, 0, - 0, 1171, 0, 602, 1037, 0, 0, 0, 1211, 0, - 989, 831, 844, 0, 1119, 1042, 0, 1142, 1106, 872, - 871, 873, 873, 0, 0, 0, 0, 1261, 1219, 0, - 1067, 1217, 1160, 1110, 1112, 1262, 1024, 856, 920, 0, - 0, 0, 0, 0, 0, 0, 972, 963, 0, 970, - 974, 0, 0, 0, 957, 0, 0, 955, 984, 951, - 0, 0, 985, 1226, 0, 1230, 0, 0, 1075, 1084, - 714, 710, 670, 607, 670, 0, 1435, 1457, 1454, 582, - 156, 1476, 0, 170, 0, 0, 0, 0, 173, 187, - 184, 1475, 0, 0, 611, 613, 0, 1143, 621, 615, - 663, 662, 0, 631, 698, 629, 0, 704, 0, 572, - 0, 558, 0, 732, 0, 0, 1444, 1445, 0, 0, - 0, 322, 0, 0, 0, 273, 0, 381, 0, 388, - 0, 0, 373, 354, 85, 0, 0, 0, 59, 104, - 77, 69, 55, 83, 0, 0, 88, 0, 81, 98, - 99, 97, 102, 0, 283, 308, 0, 0, 319, 0, + 222, 406, 0, 156, 0, 1397, 1407, 1416, 1412, 1406, + 1414, 1404, 1420, 1410, 1396, 1418, 1405, 1409, 1402, 1419, + 1400, 1417, 1415, 1403, 1411, 1395, 1399, 1386, 1391, 1423, + 1413, 1421, 1408, 1422, 1424, 1398, 1425, 1401, 0, 1368, + 0, 1883, 1934, 1888, 0, 1901, 0, 1904, 1905, 1789, + 1912, 1915, 1916, 1917, 1918, 0, 783, 115, 110, 767, + 0, 542, 0, 713, 727, 767, 772, 1057, 795, 1058, + 0, 117, 1470, 1469, 1463, 195, 1330, 1516, 1654, 1694, + 1806, 1913, 1835, 1857, 1534, 1517, 1510, 1515, 262, 603, + 601, 0, 1249, 1654, 1694, 1793, 1806, 1913, 1857, 1442, + 1447, 0, 268, 1522, 115, 110, 1521, 0, 548, 595, + 0, 269, 1484, 0, 1489, 0, 1769, 575, 578, 1324, + 576, 540, 0, 0, 1, 156, 0, 162, 0, 599, + 599, 0, 599, 0, 532, 0, 0, 540, 535, 539, + 710, 1390, 1499, 0, 1533, 1913, 1835, 1523, 1520, 1663, + 0, 0, 1663, 0, 1663, 0, 1663, 0, 0, 1509, + 0, 258, 1233, 0, 1294, 118, 0, 0, 1379, 1375, + 1380, 1376, 1381, 1374, 1373, 1382, 1378, 0, 0, 0, + 371, 404, 403, 402, 401, 406, 1663, 1341, 0, 206, + 462, 463, 0, 0, 0, 0, 0, 1352, 109, 107, + 1663, 1504, 433, 434, 0, 423, 419, 421, 0, 0, + 1663, 1319, 443, 439, 1663, 443, 1286, 1663, 0, 0, + 214, 0, 399, 1388, 1426, 2055, 1440, 0, 1441, 1431, + 1394, 1427, 1428, 156, 0, 499, 1365, 0, 0, 0, + 1179, 767, 772, 0, 0, 785, 0, 1199, 0, 1205, + 0, 0, 0, 767, 547, 0, 727, 784, 111, 717, + 0, 765, 766, 651, 651, 604, 0, 585, 0, 651, + 651, 651, 777, 0, 0, 780, 778, 0, 780, 0, + 0, 0, 780, 776, 736, 0, 651, 0, 765, 768, + 651, 0, 787, 1385, 0, 0, 0, 0, 1513, 1511, + 1512, 1518, 0, 1514, 0, 0, 1296, 1298, 1299, 1147, + 1309, 1034, 0, 1878, 1879, 1880, 1222, 1881, 1882, 1884, + 1885, 1886, 992, 1627, 1887, 1307, 1889, 1891, 1892, 1894, + 1895, 1896, 1897, 1898, 1899, 0, 1308, 1902, 1732, 1907, + 1908, 1910, 1913, 1914, 1306, 1919, 0, 0, 0, 1267, + 1170, 0, 1033, 0, 0, 0, 1226, 1234, 1026, 0, + 0, 831, 832, 853, 854, 833, 859, 860, 862, 834, + 0, 1256, 926, 1022, 1244, 1036, 1031, 1041, 1037, 1038, + 1077, 1039, 1056, 1042, 1114, 1032, 0, 1040, 1024, 1252, + 585, 1250, 0, 1025, 1295, 585, 1248, 1445, 1443, 1450, + 1444, 0, 1446, 0, 0, 0, 259, 111, 1492, 1491, + 1483, 1481, 1482, 1480, 1479, 1486, 0, 1488, 1391, 1226, + 1165, 1167, 0, 577, 0, 0, 0, 529, 528, 530, + 3, 0, 0, 0, 1644, 0, 597, 598, 0, 0, + 0, 0, 0, 0, 0, 0, 694, 624, 625, 627, + 691, 695, 703, 0, 0, 0, 0, 0, 536, 0, + 1324, 1471, 1532, 1526, 1524, 0, 0, 0, 140, 140, + 0, 0, 0, 0, 0, 100, 49, 93, 0, 0, + 0, 0, 236, 249, 0, 0, 0, 0, 0, 246, + 0, 0, 229, 51, 223, 225, 0, 140, 0, 47, + 0, 0, 0, 53, 1507, 0, 499, 266, 267, 1232, + 0, 120, 121, 119, 112, 0, 2069, 1931, 1932, 1933, + 1934, 1884, 1935, 1936, 0, 1937, 1938, 1890, 1940, 1941, + 1942, 1943, 1944, 1945, 1946, 1947, 1897, 1949, 1950, 1951, + 1952, 1953, 1954, 2095, 1955, 1911, 1957, 1917, 0, 1958, + 1049, 1173, 609, 1171, 1325, 0, 113, 1312, 0, 1377, + 0, 0, 0, 0, 497, 0, 0, 0, 0, 1337, + 0, 1663, 207, 211, 0, 1663, 202, 1663, 371, 0, + 1663, 371, 1663, 0, 1351, 1354, 0, 436, 431, 429, + 428, 430, 1663, 255, 0, 0, 1320, 441, 442, 0, + 410, 0, 0, 412, 0, 0, 219, 0, 217, 0, + 406, 156, 0, 230, 1436, 1437, 1435, 0, 0, 1430, + 1393, 233, 250, 1439, 1429, 1438, 1392, 1387, 0, 0, + 1383, 485, 0, 0, 0, 1180, 902, 901, 883, 884, + 899, 900, 885, 886, 893, 894, 904, 903, 891, 892, + 887, 888, 881, 882, 897, 898, 889, 890, 895, 896, + 879, 880, 1194, 1181, 1182, 1183, 1184, 1185, 1186, 1187, + 1188, 1189, 1190, 1191, 1192, 1193, 0, 0, 726, 723, + 0, 0, 0, 0, 0, 0, 1226, 0, 997, 1032, + 0, 0, 0, 1165, 1204, 0, 0, 0, 0, 0, + 0, 1165, 1210, 0, 0, 751, 763, 0, 644, 650, + 724, 722, 0, 1249, 714, 0, 797, 727, 725, 719, + 721, 0, 777, 0, 776, 0, 0, 779, 773, 0, + 774, 0, 0, 0, 0, 775, 0, 0, 0, 0, + 0, 718, 0, 763, 0, 720, 794, 1453, 1461, 196, + 0, 1316, 1959, 1960, 1961, 841, 1962, 870, 848, 870, + 870, 1963, 1964, 1965, 1966, 837, 837, 850, 1967, 1968, + 1969, 1970, 1971, 838, 839, 875, 1972, 1973, 1974, 1975, + 1976, 0, 0, 1977, 870, 1978, 837, 1979, 1980, 1981, + 842, 1982, 805, 1983, 0, 1984, 840, 806, 1985, 878, + 878, 1986, 0, 865, 1987, 0, 1176, 815, 823, 824, + 825, 826, 851, 852, 827, 857, 858, 828, 925, 0, + 837, 1317, 1318, 156, 1519, 1535, 0, 1170, 1043, 869, + 856, 1221, 0, 864, 863, 0, 1170, 846, 845, 844, + 1028, 0, 843, 1127, 870, 870, 868, 951, 847, 0, + 0, 0, 0, 0, 874, 0, 872, 952, 930, 931, + 0, 0, 1266, 1275, 1165, 1169, 0, 1026, 1165, 0, + 1035, 1045, 0, 1117, 1119, 0, 0, 0, 1227, 1297, + 1027, 0, 1302, 0, 0, 925, 925, 1255, 1147, 0, + 1137, 1140, 0, 0, 1144, 1145, 1146, 0, 0, 0, + 1247, 0, 1155, 1157, 0, 0, 967, 1153, 0, 970, + 0, 0, 0, 0, 1141, 1142, 1143, 1133, 1134, 1135, + 1136, 1138, 1139, 1151, 1132, 948, 0, 1023, 0, 1080, + 0, 947, 1253, 712, 0, 1300, 712, 1455, 1459, 1460, + 1454, 1458, 0, 1449, 1448, 1451, 1452, 0, 1493, 1477, + 0, 1474, 1168, 707, 579, 1288, 0, 583, 1498, 161, + 160, 0, 213, 0, 552, 551, 618, 610, 612, 618, + 0, 550, 0, 667, 668, 0, 0, 0, 0, 700, + 698, 1296, 1309, 655, 628, 654, 0, 0, 632, 0, + 659, 926, 693, 534, 622, 623, 626, 533, 0, 696, + 0, 706, 0, 571, 573, 556, 570, 568, 553, 561, + 694, 627, 0, 1500, 0, 0, 1464, 1525, 0, 0, + 0, 0, 0, 1663, 0, 0, 808, 84, 65, 323, + 139, 0, 0, 0, 0, 0, 0, 0, 92, 89, + 90, 91, 0, 0, 0, 0, 1316, 234, 235, 248, + 0, 239, 240, 237, 241, 242, 0, 0, 227, 228, + 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1508, 1501, 1228, 1233, 609, 609, + 609, 0, 607, 608, 0, 0, 0, 0, 0, 484, + 369, 379, 0, 0, 0, 1341, 206, 0, 0, 0, + 0, 0, 0, 406, 1344, 1342, 1340, 1343, 1345, 1633, + 190, 0, 0, 0, 0, 0, 198, 201, 0, 368, + 342, 0, 0, 1356, 0, 0, 457, 455, 458, 447, + 460, 450, 0, 1663, 358, 1353, 0, 1505, 0, 0, + 253, 443, 1321, 0, 440, 443, 1287, 0, 443, 221, + 0, 0, 1389, 1432, 231, 251, 232, 252, 499, 494, + 524, 0, 502, 507, 482, 0, 482, 0, 504, 508, + 482, 503, 0, 482, 498, 0, 1072, 0, 1062, 0, + 0, 786, 0, 0, 1063, 999, 1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 499, 1227, 1223, 1227, 0, 0, 0, 609, 605, 606, - 1044, 0, 469, 523, 520, 521, 519, 229, 380, 0, - 0, 0, 200, 368, 0, 1335, 449, 452, 1317, 406, - 0, 193, 0, 191, 211, 0, 0, 202, 371, 0, - 346, 342, 367, 340, 339, 341, 0, 1533, 222, 0, - 1527, 371, 1334, 0, 0, 465, 456, 0, 461, 0, - 0, 459, 0, 1329, 254, 443, 0, 477, 518, 525, - 505, 510, 0, 516, 512, 511, 506, 514, 513, 509, - 1054, 1065, 1189, 0, 0, 0, 0, 783, 786, 0, - 1060, 1055, 757, 0, 0, 670, 0, 0, 0, 0, - 587, 586, 592, 0, 0, 1078, 752, 0, 0, 0, - 739, 727, 734, 735, 0, 0, 0, 795, 794, 765, - 818, 0, 798, 818, 0, 818, 0, 816, 0, 825, - 913, 914, 915, 916, 917, 918, 919, 850, 0, 1213, - 1209, 1115, 1117, 1154, 868, 866, 988, 1251, 1159, 1256, - 1258, 0, 0, 0, 0, 1109, 991, 1282, 924, 0, - 0, 954, 1206, 975, 0, 0, 0, 950, 1142, 0, - 0, 0, 0, 0, 959, 0, 1234, 1227, 0, 1233, - 0, 0, 0, 0, 1049, 715, 687, 0, 687, 0, - 0, 1474, 0, 1469, 148, 149, 150, 0, 0, 0, - 165, 142, 0, 0, 182, 170, 158, 619, 620, 0, - 614, 630, 1264, 1270, 557, 0, 1021, 0, 0, 554, - 0, 134, 273, 0, 0, 66, 0, 390, 334, 382, - 365, 349, 0, 0, 0, 274, 0, 407, 0, 0, - 355, 0, 0, 0, 0, 335, 0, 0, 294, 0, - 0, 365, 0, 372, 290, 291, 0, 58, 78, 0, - 74, 0, 103, 0, 0, 0, 0, 0, 61, 73, - 0, 56, 0, 443, 443, 64, 1295, 1940, 1941, 1942, - 1943, 1944, 1945, 1946, 1947, 1948, 1949, 2060, 1950, 1951, - 1952, 1953, 1954, 1955, 1956, 1957, 2069, 1958, 280, 1959, - 1713, 1960, 1961, 1962, 1963, 1964, 0, 1965, 801, 1966, - 1967, 2148, 1968, 1127, 1128, 279, 278, 375, 275, 383, - 277, 0, 1296, 276, 378, 333, 130, 1341, 0, 128, - 0, 1339, 137, 135, 132, 1343, 1481, 0, 0, 1047, - 1048, 1045, 607, 0, 0, 0, 499, 476, 0, 0, - 0, 1532, 0, 0, 1644, 0, 189, 0, 0, 203, - 1335, 199, 368, 0, 398, 318, 393, 0, 1532, 1530, - 0, 1335, 1526, 448, 451, 0, 0, 540, 453, 0, - 0, 0, 414, 491, 0, 515, 1013, 0, 0, 0, - 0, 646, 0, 652, 687, 591, 590, 589, 588, 669, - 1583, 1872, 1769, 0, 673, 668, 671, 676, 678, 677, - 679, 675, 686, 0, 689, 776, 1155, 1157, 0, 0, - 0, 0, 740, 742, 0, 744, 0, 796, 812, 0, - 813, 0, 811, 806, 817, 1212, 1259, 1260, 1255, 0, - 921, 1218, 981, 979, 976, 0, 977, 958, 0, 0, - 956, 952, 0, 986, 0, 0, 1231, 0, 1070, 0, - 1073, 1087, 1083, 1082, 1078, 1044, 1078, 1436, 580, 169, - 146, 172, 171, 0, 1228, 179, 0, 0, 170, 0, - 174, 466, 0, 0, 569, 731, 562, 563, 0, 386, + 0, 0, 0, 0, 0, 1017, 1016, 1064, 790, 0, + 793, 0, 0, 1202, 1203, 0, 1065, 0, 0, 1209, + 0, 0, 0, 1070, 0, 728, 0, 0, 634, 635, + 643, 639, 646, 0, 649, 636, 585, 541, 1654, 1694, + 0, 596, 596, 596, 594, 584, 0, 671, 729, 0, + 0, 0, 752, 0, 0, 754, 756, 0, 0, 759, + 0, 735, 734, 0, 0, 0, 0, 798, 0, 1292, + 0, 0, 197, 0, 0, 0, 823, 0, 0, 0, + 813, 809, 0, 905, 906, 907, 908, 909, 910, 911, + 912, 913, 914, 915, 916, 917, 829, 1329, 0, 835, + 1332, 0, 1333, 1334, 1331, 1328, 1335, 1336, 0, 0, + 0, 0, 1220, 1216, 0, 0, 0, 0, 1122, 1124, + 1126, 0, 867, 866, 1131, 1137, 1140, 1144, 1145, 1146, + 1141, 1142, 1143, 1133, 1134, 1135, 1136, 1138, 1139, 0, + 1159, 0, 1113, 0, 0, 0, 0, 0, 0, 0, + 1260, 1259, 0, 1283, 0, 1046, 1030, 0, 0, 1120, + 1047, 1267, 1257, 1235, 0, 0, 0, 1305, 1304, 927, + 936, 939, 971, 972, 943, 944, 945, 949, 1327, 1326, + 1254, 0, 1246, 0, 0, 928, 953, 958, 0, 1211, + 1214, 988, 1213, 0, 976, 0, 966, 0, 974, 978, + 954, 969, 0, 950, 0, 1247, 1156, 1158, 0, 1154, + 0, 940, 941, 942, 932, 933, 934, 935, 937, 938, + 946, 1130, 1128, 1129, 0, 1233, 0, 1245, 0, 0, + 1082, 0, 0, 973, 1251, 0, 797, 609, 797, 0, + 925, 1494, 1324, 1487, 1324, 1476, 1166, 1289, 1323, 581, + 0, 0, 0, 1496, 147, 151, 0, 1234, 181, 183, + 712, 0, 616, 617, 621, 0, 0, 621, 600, 549, + 1908, 1789, 0, 0, 0, 0, 660, 701, 0, 692, + 657, 658, 0, 656, 1296, 661, 1295, 662, 665, 666, + 633, 1284, 702, 704, 0, 697, 0, 1290, 555, 574, + 0, 0, 0, 0, 0, 538, 537, 708, 1471, 1471, + 1473, 1472, 0, 50, 0, 1663, 67, 0, 0, 0, + 0, 0, 0, 273, 0, 373, 273, 105, 1663, 443, + 1663, 443, 1557, 1628, 1807, 0, 63, 347, 96, 0, + 133, 376, 0, 332, 86, 101, 126, 0, 0, 52, + 224, 238, 243, 129, 247, 244, 1361, 245, 140, 0, + 48, 0, 127, 0, 1359, 0, 0, 54, 131, 1363, + 1509, 0, 1232, 0, 607, 607, 607, 0, 1172, 0, + 0, 0, 1174, 1175, 966, 1371, 1370, 1372, 1369, 470, + 483, 0, 370, 0, 496, 473, 474, 484, 1339, 211, + 0, 202, 371, 0, 371, 0, 1341, 0, 0, 192, + 188, 206, 212, 0, 0, 0, 0, 0, 369, 361, + 359, 392, 0, 366, 360, 0, 0, 318, 0, 1551, + 0, 0, 0, 0, 464, 0, 0, 0, 0, 0, + 0, 255, 256, 409, 1322, 411, 0, 413, 220, 218, + 1384, 2025, 490, 1170, 0, 488, 495, 489, 492, 493, + 487, 486, 0, 481, 0, 517, 0, 0, 0, 0, + 0, 0, 0, 0, 1059, 1178, 0, 1197, 1196, 998, + 1005, 1008, 1012, 1013, 1014, 1198, 0, 0, 0, 1009, + 1010, 1011, 1001, 1002, 1003, 1004, 1006, 1007, 1015, 795, + 0, 0, 789, 1207, 1206, 1200, 1201, 0, 1067, 1068, + 1069, 1208, 0, 0, 764, 638, 640, 637, 0, 0, + 797, 596, 596, 596, 596, 593, 0, 0, 0, 796, + 0, 688, 760, 758, 0, 782, 0, 755, 0, 761, + 0, 746, 0, 753, 802, 769, 0, 0, 771, 1462, + 819, 0, 814, 810, 0, 0, 0, 820, 0, 0, + 0, 0, 0, 0, 0, 1177, 0, 602, 1044, 0, + 0, 0, 1217, 0, 994, 836, 849, 0, 1125, 1048, + 0, 1148, 1112, 877, 876, 878, 878, 0, 1262, 1264, + 0, 0, 0, 0, 1274, 0, 995, 1225, 0, 1073, + 1223, 1166, 1116, 1118, 1275, 1029, 861, 925, 0, 0, + 0, 0, 0, 0, 0, 977, 968, 0, 975, 979, + 0, 0, 0, 962, 0, 0, 960, 989, 956, 0, + 0, 990, 1232, 0, 1236, 0, 0, 1081, 1090, 715, + 711, 671, 607, 671, 0, 1456, 1478, 1475, 582, 156, + 1497, 0, 170, 0, 0, 0, 0, 173, 187, 184, + 1496, 0, 0, 611, 613, 0, 1149, 621, 615, 664, + 663, 0, 631, 699, 629, 0, 705, 0, 572, 0, + 558, 0, 738, 0, 0, 1465, 1466, 0, 0, 0, + 322, 0, 0, 0, 273, 0, 381, 0, 388, 0, + 0, 373, 354, 85, 0, 0, 0, 59, 104, 77, + 69, 55, 83, 0, 0, 88, 0, 81, 98, 99, + 97, 102, 0, 283, 308, 0, 0, 319, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 499, + 1233, 1229, 1233, 0, 0, 0, 609, 605, 606, 1050, + 0, 469, 523, 520, 521, 519, 229, 380, 0, 0, + 0, 200, 368, 0, 1356, 449, 452, 1338, 406, 0, + 193, 0, 191, 211, 0, 0, 202, 371, 0, 346, + 342, 367, 340, 339, 341, 0, 1552, 222, 0, 1546, + 371, 1355, 0, 0, 465, 456, 0, 461, 0, 0, + 459, 0, 1350, 254, 443, 0, 477, 518, 525, 505, + 510, 0, 516, 512, 511, 506, 514, 513, 509, 1060, + 1071, 1195, 0, 0, 0, 0, 788, 791, 0, 1066, + 1061, 762, 0, 0, 671, 0, 0, 0, 0, 587, + 586, 592, 0, 0, 1084, 757, 0, 0, 0, 744, + 733, 739, 740, 0, 0, 0, 800, 799, 770, 823, + 0, 803, 823, 0, 823, 0, 821, 0, 830, 918, + 919, 920, 921, 922, 923, 924, 855, 0, 1219, 1215, + 1121, 1123, 1160, 873, 871, 993, 1265, 1258, 1261, 1165, + 1269, 1271, 0, 0, 0, 0, 1282, 0, 0, 1115, + 1283, 1303, 929, 0, 0, 959, 1212, 980, 0, 0, + 0, 955, 1148, 0, 0, 0, 0, 0, 964, 0, + 1240, 1233, 0, 1239, 0, 0, 0, 0, 1055, 716, + 688, 0, 688, 0, 0, 1495, 0, 1490, 148, 149, + 150, 0, 0, 0, 165, 142, 0, 0, 182, 170, + 158, 619, 620, 0, 614, 630, 1285, 1291, 557, 0, + 1026, 0, 0, 554, 0, 134, 273, 0, 0, 66, + 0, 390, 334, 382, 365, 349, 0, 0, 0, 274, + 0, 407, 0, 0, 355, 0, 0, 0, 0, 335, + 0, 0, 294, 0, 0, 365, 0, 372, 290, 291, + 0, 58, 78, 0, 74, 0, 103, 0, 0, 0, + 0, 0, 61, 73, 0, 56, 808, 443, 443, 64, + 1316, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, + 1968, 2079, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, + 2088, 1977, 280, 1978, 1732, 1979, 1980, 1981, 1982, 1983, + 0, 1984, 806, 1985, 1986, 2167, 1987, 1133, 1134, 279, + 278, 375, 275, 383, 277, 0, 1317, 276, 378, 333, + 130, 1362, 0, 128, 0, 1360, 137, 135, 132, 1364, + 1502, 0, 0, 1053, 1054, 1051, 607, 0, 0, 0, + 499, 476, 0, 0, 0, 1551, 0, 0, 1663, 0, + 189, 0, 0, 203, 1356, 199, 368, 0, 398, 318, + 393, 0, 1551, 1549, 0, 1356, 1545, 448, 451, 0, + 0, 540, 453, 0, 0, 0, 414, 491, 0, 515, + 1018, 0, 0, 0, 0, 647, 0, 653, 688, 591, + 590, 589, 588, 670, 1602, 1891, 1788, 0, 674, 669, + 672, 677, 679, 678, 680, 676, 687, 0, 690, 781, + 1161, 1163, 0, 0, 0, 0, 745, 747, 0, 749, + 0, 801, 817, 0, 818, 0, 816, 811, 822, 1218, + 1263, 1272, 1273, 1268, 1277, 1279, 0, 0, 0, 926, + 1224, 996, 986, 984, 981, 0, 982, 963, 0, 0, + 961, 957, 0, 991, 0, 0, 1237, 0, 1076, 0, + 1079, 1093, 1089, 1088, 1084, 1050, 1084, 1457, 580, 169, + 146, 172, 171, 0, 1234, 179, 0, 0, 170, 0, + 174, 466, 0, 0, 569, 737, 562, 563, 0, 386, 68, 0, 365, 0, 273, 351, 350, 353, 348, 352, 0, 408, 0, 0, 292, 0, 299, 337, 338, 336, 293, 365, 371, 295, 0, 0, 0, 70, 60, 57, - 62, 71, 0, 0, 72, 75, 797, 87, 80, 1295, - 2069, 2078, 0, 0, 0, 0, 0, 1225, 1224, 0, - 472, 471, 522, 468, 479, 229, 0, 0, 0, 342, - 1529, 0, 0, 0, 368, 194, 0, 0, 0, 0, - 1532, 0, 0, 270, 0, 315, 0, 215, 1531, 0, - 0, 1518, 0, 0, 1327, 1328, 0, 478, 1014, 0, - 1015, 787, 0, 0, 644, 1078, 0, 0, 0, 680, - 674, 0, 1077, 1079, 0, 641, 1158, 736, 0, 738, - 0, 762, 0, 762, 745, 807, 799, 1257, 1068, 0, - 978, 982, 980, 960, 1227, 1235, 1227, 1232, 1072, 1086, - 1089, 689, 1280, 689, 0, 0, 157, 0, 0, 154, - 141, 159, 1144, 559, 560, 0, 273, 0, 364, 387, - 304, 282, 0, 0, 0, 289, 296, 397, 298, 0, - 79, 95, 0, 0, 377, 138, 136, 1046, 499, 0, - 205, 1335, 318, 1526, 0, 0, 0, 0, 342, 222, - 1528, 331, 324, 325, 326, 327, 328, 329, 330, 345, - 344, 316, 317, 0, 0, 0, 0, 454, 1329, 0, - 176, 185, 0, 176, 1016, 647, 0, 689, 0, 0, - 0, 672, 0, 0, 688, 0, 545, 1156, 0, 726, - 724, 0, 725, 0, 0, 0, 0, 609, 641, 641, - 143, 0, 144, 180, 0, 0, 0, 371, 389, 363, - 0, 356, 302, 301, 303, 307, 0, 305, 0, 321, - 0, 314, 282, 0, 82, 0, 384, 467, 475, 0, - 272, 1520, 368, 0, 204, 1526, 318, 1532, 1526, 0, - 1523, 0, 0, 0, 0, 178, 1335, 0, 178, 0, - 641, 682, 0, 681, 1081, 1080, 643, 737, 0, 1069, - 1237, 1236, 0, 1093, 544, 543, 0, 0, 0, 0, - 397, 0, 343, 0, 0, 304, 0, 297, 394, 395, - 396, 0, 310, 300, 311, 76, 94, 385, 0, 368, - 1521, 271, 216, 1519, 1524, 1525, 0, 176, 175, 618, - 177, 792, 186, 618, 651, 546, 683, 640, 743, 1088, - 0, 0, 0, 0, 0, 153, 792, 164, 0, 314, - 362, 357, 281, 306, 320, 0, 0, 0, 312, 0, - 313, 1526, 0, 178, 621, 1325, 621, 1858, 1584, 1823, - 0, 1105, 1094, 1105, 1105, 1085, 145, 152, 0, 273, - 286, 0, 285, 0, 374, 309, 1522, 1335, 618, 166, - 167, 0, 1098, 1097, 1096, 1100, 1099, 0, 1092, 1090, - 1091, 792, 391, 284, 288, 287, 792, 621, 0, 0, - 1102, 0, 1103, 163, 1326, 168, 1095, 1101, 1104 + 62, 71, 0, 0, 72, 75, 802, 807, 87, 80, + 1316, 2088, 2097, 0, 0, 0, 0, 0, 1231, 1230, + 0, 472, 471, 522, 468, 479, 229, 0, 0, 0, + 342, 1548, 0, 0, 0, 368, 194, 0, 0, 0, + 0, 1551, 0, 0, 270, 0, 315, 0, 215, 1550, + 0, 0, 1537, 0, 0, 1348, 1349, 0, 478, 1019, + 0, 1020, 792, 0, 0, 645, 1084, 0, 0, 0, + 681, 675, 0, 1083, 1085, 0, 642, 1164, 741, 0, + 743, 0, 767, 0, 767, 750, 812, 804, 1270, 1280, + 1281, 1276, 1074, 0, 983, 987, 985, 965, 1233, 1241, + 1233, 1238, 1078, 1092, 1095, 690, 1301, 690, 0, 0, + 157, 0, 0, 154, 141, 159, 1150, 559, 560, 0, + 273, 0, 364, 387, 304, 282, 0, 0, 0, 289, + 296, 397, 298, 0, 79, 95, 0, 0, 377, 138, + 136, 1052, 499, 0, 205, 1356, 318, 1545, 0, 0, + 0, 0, 342, 222, 1547, 331, 324, 325, 326, 327, + 328, 329, 330, 345, 344, 316, 317, 0, 0, 0, + 0, 454, 1350, 0, 176, 185, 0, 176, 1021, 648, + 0, 690, 0, 0, 0, 673, 0, 0, 689, 0, + 545, 1162, 0, 732, 730, 0, 731, 1278, 0, 0, + 0, 0, 609, 642, 642, 143, 0, 144, 180, 0, + 0, 0, 371, 389, 363, 0, 356, 302, 301, 303, + 307, 0, 305, 0, 321, 0, 314, 282, 0, 82, + 0, 384, 467, 475, 0, 272, 1539, 368, 0, 204, + 1545, 318, 1551, 1545, 0, 1542, 0, 0, 0, 0, + 178, 1356, 0, 178, 0, 642, 683, 0, 682, 1087, + 1086, 644, 742, 0, 1075, 1243, 1242, 0, 1099, 544, + 543, 0, 0, 0, 0, 397, 0, 343, 0, 0, + 304, 0, 297, 394, 395, 396, 0, 310, 300, 311, + 76, 94, 385, 0, 368, 1540, 271, 216, 1538, 1543, + 1544, 0, 176, 175, 618, 177, 797, 186, 618, 652, + 546, 684, 641, 748, 1094, 0, 0, 0, 0, 0, + 153, 797, 164, 0, 314, 362, 357, 281, 306, 320, + 0, 0, 0, 312, 0, 313, 1545, 0, 178, 621, + 1346, 621, 1877, 1603, 1842, 0, 1111, 1100, 1111, 1111, + 1091, 145, 152, 0, 273, 286, 0, 285, 0, 374, + 309, 1541, 1356, 618, 166, 167, 0, 1104, 1103, 1102, + 1106, 1105, 0, 1098, 1096, 1097, 797, 391, 284, 288, + 287, 797, 621, 0, 0, 1108, 0, 1109, 163, 1347, + 168, 1101, 1107, 1110 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 47, 48, 49, 755, 2640, 2641, 2642, 2269, 1218, - 3414, 2270, 1219, 1220, 2644, 756, 806, 1100, 808, 1101, - 1618, 914, 1254, 1255, 757, 1771, 758, 2870, 2189, 2586, - 3396, 54, 3145, 2192, 1176, 3148, 3361, 2863, 3143, 2587, - 3435, 3489, 3146, 2193, 2194, 3362, 2195, 759, 2702, 2703, - 760, 761, 1855, 58, 1316, 551, 1852, 762, 763, 1349, - 1350, 969, 764, 1856, 1799, 2986, 1238, 1789, 1364, 62, - 1879, 765, 107, 910, 64, 766, 2629, 2987, 3407, 2655, - 3544, 2923, 2924, 3404, 3405, 2632, 2272, 3472, 3473, 2717, - 1780, 3467, 2353, 3349, 2276, 2257, 2925, 2361, 3308, 3034, - 2273, 2905, 2354, 3400, 1874, 2355, 3401, 3164, 2356, 1830, - 1859, 2633, 3474, 2277, 1831, 2628, 2988, 1768, 2357, 3411, - 2358, 552, 2909, 767, 746, 747, 961, 1343, 748, 768, - 1865, 1866, 1867, 1868, 1869, 1870, 945, 1871, 769, 770, - 2682, 2331, 3215, 2736, 3216, 2398, 2325, 1373, 2390, 1899, - 1833, 1374, 540, 1913, 2737, 2687, 1900, 771, 1102, 72, - 73, 1015, 74, 3158, 75, 76, 1742, 1743, 1744, 854, - 866, 867, 2185, 1459, 1982, 859, 1181, 1711, 840, 841, - 2315, 882, 1822, 1706, 1707, 2198, 2594, 1735, 1736, 1190, - 1191, 1970, 3376, 1971, 1972, 1452, 1453, 3254, 1723, 1727, - 1728, 2219, 2209, 1714, 2467, 3074, 3075, 3076, 3077, 3078, - 3079, 3080, 1103, 2775, 3265, 1731, 1732, 1193, 1194, 1195, - 1740, 2229, 78, 79, 2170, 2570, 2571, 812, 3091, 1478, - 1745, 2779, 2780, 2781, 3094, 3095, 3096, 813, 1010, 1011, - 1034, 1029, 1467, 1991, 814, 815, 1947, 1948, 2436, 1036, - 1984, 2002, 2003, 2787, 2491, 1544, 2258, 1545, 1546, 2017, - 1547, 1104, 1548, 1576, 1105, 1581, 1550, 1106, 1107, 1108, - 1553, 1109, 1110, 1111, 1112, 1569, 1113, 1114, 1593, 2019, - 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, - 2030, 2031, 2032, 1163, 1746, 1116, 1117, 1118, 1119, 1120, - 1121, 1122, 1123, 1124, 817, 1125, 2529, 1126, 1667, 2164, - 2569, 3084, 3262, 3263, 2854, 3133, 3290, 3387, 3503, 3531, - 3532, 3558, 1127, 1128, 1612, 1613, 1614, 2054, 2055, 2056, - 2057, 2158, 1661, 1662, 1129, 2990, 1664, 2077, 3087, 3088, - 1164, 1445, 1605, 1295, 1296, 1558, 1419, 1420, 1426, 1922, - 1434, 1438, 1952, 1953, 1446, 2125, 1130, 2048, 2049, 2509, - 1571, 2530, 2531, 1131, 1253, 1617, 2849, 2161, 1665, 2118, - 1138, 1132, 1139, 1134, 1601, 1602, 2527, 2820, 2821, 2088, - 2226, 1694, 2231, 2232, 965, 1135, 1136, 1137, 1297, 524, - 1559, 3490, 1339, 1169, 1298, 2114, 772, 1041, 2041, 773, - 1312, 1845, 774, 3245, 3051, 1328, 1875, 2366, 553, 775, - 776, 533, 85, 2320, 926, 86, 87, 88, 891, 1366, - 777, 1367, 1368, 976, 89, 2738, 978, 979, 779, 848, - 849, 1487, 1681, 1488, 780, 92, 823, 1755, 781, 1159, - 863, 1160, 1162, 782, 1178, 2583, 2187, 95, 96, 97, - 115, 1249, 783, 834, 835, 872, 100, 101, 1206, 836, - 855, 785, 786, 3241, 787, 2720, 1322, 534, 526, 527, - 1561, 720, 1300, 721 + -1, 47, 48, 49, 755, 2659, 2660, 2661, 2285, 1225, + 3449, 2286, 1226, 1227, 2663, 756, 806, 1169, 855, 1107, + 1628, 915, 1261, 1262, 757, 1782, 758, 2894, 2205, 2605, + 3431, 54, 3175, 2208, 1183, 3178, 3395, 2887, 3173, 2606, + 3470, 3524, 3176, 2209, 2210, 3396, 2211, 759, 2721, 2722, + 760, 761, 1866, 58, 1323, 551, 1863, 762, 763, 1356, + 1357, 970, 764, 1867, 1810, 3010, 1245, 1800, 1371, 62, + 1890, 765, 107, 911, 64, 766, 2648, 3011, 3442, 2674, + 3579, 2947, 2948, 3439, 3440, 2651, 2288, 3507, 3508, 2736, + 1791, 3502, 2369, 3383, 2292, 2273, 2949, 2377, 3342, 3058, + 2289, 2929, 2370, 3435, 1885, 2371, 3436, 3194, 2372, 1841, + 1870, 2652, 3509, 2293, 1842, 2647, 3012, 1779, 2373, 3446, + 2374, 552, 2933, 767, 746, 747, 962, 1350, 748, 768, + 1876, 1877, 1878, 1879, 1880, 1881, 946, 1882, 769, 770, + 2701, 2347, 3246, 2755, 3247, 2414, 2341, 1380, 2406, 1910, + 1844, 1381, 540, 1924, 2756, 2706, 1911, 771, 1108, 72, + 73, 1017, 74, 3188, 75, 76, 1753, 1754, 1755, 857, + 867, 868, 2201, 1466, 1995, 860, 1188, 1722, 841, 842, + 2331, 883, 1833, 1717, 1718, 2214, 2613, 1746, 1747, 1197, + 1198, 1981, 1982, 3410, 1983, 1984, 1459, 1460, 3285, 1734, + 1738, 1739, 2235, 2225, 1725, 2481, 3098, 3099, 3100, 3101, + 3102, 3103, 3104, 1109, 2794, 3296, 1742, 1743, 1200, 1201, + 1202, 1751, 2245, 78, 79, 2186, 2589, 2590, 812, 813, + 3115, 1489, 1756, 2798, 2799, 2800, 3118, 3119, 3120, 814, + 1012, 1013, 1040, 1035, 1478, 2005, 815, 816, 1958, 1959, + 2452, 1042, 1997, 2016, 2017, 2806, 2505, 1555, 2274, 1556, + 1557, 2031, 1558, 1110, 1559, 1587, 1111, 1592, 1561, 1112, + 1113, 1114, 1564, 1115, 1116, 1117, 1118, 1580, 1119, 1120, + 1604, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041, + 2042, 2043, 2044, 2045, 2046, 1170, 1757, 1122, 1123, 1124, + 1125, 1126, 1127, 1128, 1129, 1130, 1131, 818, 1132, 2548, + 1133, 1679, 2180, 2588, 3108, 3293, 3294, 2878, 3163, 3324, + 3422, 3538, 3566, 3567, 3593, 1134, 1135, 1623, 1624, 1625, + 2068, 2069, 2070, 2071, 2174, 1673, 1674, 1136, 3014, 1676, + 2091, 3111, 3112, 1171, 1452, 1616, 1302, 1303, 1569, 1426, + 1427, 1433, 1933, 1441, 1445, 1963, 1964, 1453, 2141, 1137, + 2062, 2063, 2523, 1582, 2549, 2550, 1138, 1260, 1629, 2873, + 2177, 1677, 2134, 1145, 1139, 1146, 1141, 1612, 2845, 2539, + 2540, 1613, 2544, 2841, 2842, 2103, 2846, 3135, 3136, 2546, + 2242, 1705, 2247, 2248, 966, 1142, 1143, 1144, 1304, 524, + 1570, 3525, 1346, 1176, 1305, 2130, 772, 1047, 2055, 773, + 1319, 1856, 774, 3276, 3075, 1335, 1886, 2382, 553, 775, + 776, 533, 85, 2336, 927, 86, 87, 88, 892, 1373, + 777, 1374, 1375, 977, 89, 2757, 979, 980, 779, 849, + 850, 1498, 1693, 1499, 780, 92, 824, 1766, 781, 1165, + 864, 1166, 1168, 782, 1185, 2602, 2203, 95, 96, 97, + 115, 1256, 783, 835, 836, 873, 100, 101, 1213, 837, + 785, 786, 3272, 787, 2739, 1329, 534, 526, 527, 1572, + 720, 1307, 721 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -3017 +#define YYPACT_NINF -3072 static const int yypact[] = { - 6596, -26, 739, -3017, -3017, 275, -26, 49530, 64984, 350, - -26, 136, 2383, 51526, -3017, -3017, 46037, 3819, -26, 55019, - 72380, 321, 582, 31527, 552, 55518, -3017, -3017, -3017, 64984, - 55019, 56017, -26, 345, 65483, -3017, -26, 34022, 52025, 337, - -3017, 55019, 67, 313, 56516, 55019, 2833, 854, 346, -3017, - -3017, -3017, -3017, -3017, 168, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, 156, -3017, 200, 166, 31527, 31527, 53, 376, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, 396, - -3017, -3017, 709, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, 33523, -3017, -3017, -3017, -3017, -3017, -3017, 57015, 55019, - 57514, 52524, 58013, -3017, 672, 936, 612, 194, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - 204, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, 459, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, 206, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, 666, -3017, 516, -3017, 209, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, 870, -3017, -3017, 998, 2691, - 55019, 950, 986, 775, -3017, 58512, -3017, 756, 55019, -3017, - -3017, 819, 741, 999, -3017, -3017, 53023, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, 46536, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, 1004, -3017, -3017, 831, -3017, 148, -3017, -3017, - 875, 820, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, 923, -3017, -3017, -3017, 959, 65982, 59011, 59510, -3017, - 827, 1658, 7978, 72398, 30527, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, 396, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, 55518, 64984, - 833, 841, 1137, 850, 32026, 866, 34522, 873, 879, 1244, - 912, 919, 932, 957, 313, 31027, 935, 666, -3017, 60009, - 60009, -28, 3241, -3017, 60009, 60508, -3017, 992, -3017, 936, - -3017, -3017, -3017, -3017, 342, 970, -3017, 61007, 61007, 61007, - 1033, 1283, 61007, -3017, -3017, -3017, 1025, -3017, -3017, 1280, - 19682, 19682, 66481, 66481, 936, 66481, 1073, 66481, -3017, -3017, - 54, 612, -3017, -3017, 53, 1059, 666, -3017, -3017, 52025, - -3017, -3017, 316, 1423, 19682, 55019, 1076, -3017, 1086, 1076, - 1091, 1097, 1099, -3017, 6596, 1464, 1344, 53522, 724, 724, - 1582, 724, 1006, 1008, 5405, 2999, -3017, 196, -3017, 1125, - -3017, 55019, 55518, 1237, 1161, 1454, -3017, 1059, 1528, 147, - 1334, 1571, 6090, 1594, 184, 1601, 483, 1602, 1676, 40, - -3017, 19682, 47035, 666, -3017, 11841, 19682, -3017, -3017, -3017, - 1307, -3017, -3017, -3017, -3017, -3017, 55019, 64984, 1233, 1238, - -3017, -3017, -3017, -3017, 956, 1482, -3017, 1719, 66980, -3017, - -3017, 1290, 61506, 62005, 62504, 63003, 1674, -3017, -3017, 1609, - -3017, -3017, -3017, 1281, -3017, -3017, -3017, 195, 67479, 1612, - 1246, 119, -3017, 1616, 198, -3017, 1619, 1480, 15490, -3017, - 1417, -3017, -3017, -3017, 313, -3017, 284, -3017, -3017, 43138, - -3017, -3017, 72398, 1345, 1256, -3017, 19682, 19682, 1259, 8514, - 60009, 60508, 19682, 55019, -3017, 19682, 24398, 1260, 19682, 19682, - 12870, 19682, 29529, 60009, 3241, 1261, -3017, 791, 55019, 1264, - -3017, 1358, 1358, 345, 31527, 1561, -3017, 212, 1558, 1484, - -3017, 31527, 1484, 1030, 1268, 1562, 1484, -3017, 514, 1563, - 1358, 35021, 1273, -3017, 1358, 1493, -3017, -3017, 19682, 15490, - 69974, 1752, -3017, -3017, -3017, -3017, 1557, -3017, 64984, 1276, - -3017, -3017, -3017, -3017, -3017, -3017, 671, 1790, 175, 1791, - 19682, 175, 175, 1279, 210, 210, -3017, 1474, 1288, -3017, - 214, 1289, 1292, 1806, 1807, 176, 164, 1136, 175, 19682, - -3017, 210, 1296, 1810, 1302, 1816, 188, 222, -3017, 215, - 19682, 19682, 19682, 310, 19682, 10793, -3017, 1818, 47035, 55019, - 697, -3017, 666, 1310, 936, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, 1312, -3017, 179, 6769, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, 1351, -3017, -3017, -3017, -3017, 1523, 19682, - -3017, -3017, 1316, 1561, -3017, 218, -3017, -3017, 1561, -3017, - -3017, -3017, -3017, -3017, 249, -3017, 1731, 19682, 19682, -3017, - 64984, 666, 67978, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - 395, -3017, 396, 44856, 1319, 1318, 1076, 55019, 55019, 1803, - -3017, -3017, -3017, -3017, 52025, 118, 1626, 158, 1460, -3017, - -3017, 53, 53, 16014, 812, 216, 491, 16538, 20206, 1684, - 1565, 599, 614, 1686, -3017, 1573, 1800, 24398, 19682, 19682, - 1006, 1008, 19682, 1086, 135, -3017, -3017, -3017, 1627, 55019, - 50029, 787, 928, 1354, 1431, 1355, 262, 1775, -3017, 1352, - -3017, 1445, 55019, 71925, 273, -3017, 1819, 273, 273, 768, - 1821, 1453, 258, 1615, 30, 371, 1352, 3469, -3017, 52025, - 146, 141, 1352, 55019, 1456, 560, 1352, 1777, 64984, 1256, - -3017, -3017, 40704, 1360, -3017, -3017, -3017, 181, 15490, -3017, - 1105, 1272, 1313, 387, 189, 1443, 1466, 15490, 1502, 1539, - 187, 1564, 1572, 1574, 1576, 1579, 1583, 1586, 1589, 162, - 1593, 1600, 1618, 1641, 1647, 1653, -3017, 1657, 191, 1662, - 199, 15490, 1669, -3017, 44856, 24, -3017, -3017, 1672, 193, - -3017, 44956, -3017, 1667, 1459, 1461, 64984, 1413, 55019, 1514, - 843, 1744, 1797, 70458, 1623, -3017, 1701, 55019, 1629, 3469, - 1630, 1383, 1862, 1631, 1238, 1634, 1392, -3017, 68477, 47035, - -3017, -3017, -3017, -3017, -3017, 1766, 1755, 64984, 47035, 1420, - -3017, -3017, 64984, -3017, 55019, 55019, -3017, 55019, 64984, -3017, - 576, 44856, 1935, 937, 72398, 48532, -3017, -3017, -3017, -3017, - 1047, 1062, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, 936, 47035, -3017, 3598, 43759, 1438, 19682, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, 1439, - 1793, -3017, -3017, 5541, 1447, 44054, 1448, 24398, 24398, 666, - 3938, -3017, -3017, 24398, 1449, 49031, 43673, 1428, 1451, 44239, - 17062, 19682, 17062, 17062, 44305, -3017, 1452, 44394, 60009, 1444, - 55019, 54021, -3017, -3017, -3017, 19682, 19682, 3241, 54520, 1492, - 31527, -3017, 31527, -3017, 1747, 31527, -3017, -3017, 6913, -3017, - 31527, 1750, 19682, 31527, -3017, 31527, 1697, 1699, 1465, 31527, - -3017, 55019, 1467, 55019, -3017, -3017, 44856, -3017, 1469, 632, - 1468, -3017, -3017, -3017, -3017, -3017, 1520, -3017, 1520, 1520, - -3017, -3017, -3017, -3017, 1475, 1475, 1477, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - 1481, 1136, -3017, 1520, -3017, 1475, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, 71925, -3017, -3017, -3017, -3017, 418, 620, - -3017, 1487, -3017, -3017, 1488, -3017, 1472, 1968, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, 41013, 644, 1475, - -3017, -3017, 5290, -3017, -3017, 19682, 19682, -3017, -3017, 1490, - 44856, 1534, -3017, -3017, 19682, 19682, -3017, -3017, -3017, -3017, - 2002, -3017, 19682, 1520, 1520, -3017, 43691, -3017, 39514, 17586, - 1587, 1588, 2002, -3017, 2002, -3017, 43691, 2001, 2001, 1500, - 37516, -3017, 1665, 44603, -3017, 1504, 1677, 7335, 1503, -3017, - -3017, 1494, -3017, 1506, 1499, 41641, 182, 666, 666, 19682, - -3017, 2002, 19682, 44045, 44045, -3017, 235, 69974, 19682, 19682, - 19682, 19682, 19682, 19682, 19682, 19682, 45538, 1604, 177, 64984, - 19682, 19682, 29024, 1239, -3017, 19682, 1749, -3017, 1512, 19682, - 1603, 902, 19682, 19682, 19682, 19682, 19682, 19682, 19682, 19682, - 19682, -3017, -3017, 28009, 240, 702, 1855, 1874, -12, 302, - 19682, 1870, 11841, -3017, 1870, -3017, -3017, -3017, -3017, -3017, - 219, -3017, -3017, 1469, 1469, -3017, 64984, -3017, 55019, 316, - 51027, 19682, -3017, -3017, 1521, 1533, 169, 1598, -3017, -3017, - 55019, -3017, 38015, 1838, -3017, 356, 1536, -3017, 43634, 1794, - 1838, 53, -3017, -3017, 25446, 1670, 1832, 1770, -3017, -3017, - 1751, 1753, -3017, 1543, 45045, 20730, 20730, -3017, 1332, 44856, - 1337, -3017, -3017, -3017, -3017, -3017, -3017, 528, -3017, 55019, - 117, 35520, -3017, 1545, 106, -3017, 4724, 1887, 1850, 1684, - 614, 1552, -3017, 55518, 55518, -3017, -3017, 1116, 1554, 68976, - 55019, 1846, 1799, 1848, 328, 69974, -3017, -3017, -3017, -3017, - 55019, 64984, 63502, 69475, 47534, 55019, 47035, -3017, -3017, -3017, - -3017, 55019, 1315, 55019, 7055, -3017, -3017, -3017, -3017, 273, - -3017, -3017, -3017, -3017, -3017, 64984, 55019, -3017, -3017, 273, - 64984, 55019, 273, -3017, 1248, 55019, 55019, 55019, 55019, 1585, - 55019, 55019, 936, -3017, -3017, -3017, 21254, 103, 103, 1780, - 13394, 160, -3017, 19682, 19682, 304, 263, 64984, 1745, -3017, - -3017, 706, 1796, 114, -3017, 64984, 1608, 55019, 55019, 55019, - 55019, 55019, 1854, -3017, -3017, -3017, -3017, -3017, 1570, -3017, - 1938, 2090, 1578, 1580, 1942, -3017, 3469, 1945, 50528, 786, - 1812, 1947, 1621, 1950, 13918, -3017, -3017, 1591, -3017, -3017, - 1592, 2064, 1830, -3017, -3017, 1826, -3017, 64984, 2105, -3017, - 119, -3017, 47035, -3017, 198, -3017, 1827, 220, -3017, 15490, - 19682, -3017, -3017, -3017, -3017, -3017, -3017, 1256, 28519, -3017, - 723, -3017, -3017, 2078, 936, 2078, 593, -3017, -3017, 2078, - -3017, 2060, 2078, -3017, 69974, -3017, 7532, -3017, 19682, 19682, - -3017, 19682, 1948, -3017, 2111, 2111, 69974, 24398, 24398, 24398, - 24398, 24398, 24398, 524, 1296, 24398, 24398, 24398, 24398, 24398, - 24398, 24398, 24398, 24398, 25970, 513, -3017, -3017, 779, 2083, - 19682, 19682, 1958, 1948, 19682, -3017, 69974, 1607, -3017, 1611, - 1613, 19682, -3017, 69974, -3017, 55019, 1620, 17, 26, -3017, - 1622, 1628, -3017, 1561, -3017, 1018, 1022, 55019, 3231, 3817, - 4493, -3017, -3017, 19682, 1956, 6913, 6913, 31527, -3017, 19682, - 1632, -3017, -3017, 31527, 1974, -3017, 6913, -3017, -3017, 36019, - 6913, 69974, 796, -3017, 55019, 69974, 801, 19682, -3017, 15490, - 2141, 69974, 2106, 64984, 64984, 2144, 1635, 1638, 2002, 1725, - -3017, 1726, 1729, 1730, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, 69974, -3017, -3017, 174, -3017, -3017, - -3017, -3017, -3017, -3017, 1644, 1648, 19682, 19682, 112, -3017, - 7927, 1645, 1650, 4610, -3017, 1649, -3017, 1643, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, -3017, -3017, 1654, -3017, 1656, -3017, 1659, - 1679, 1681, 1664, 1671, 19682, 55019, -3017, 21778, -3017, 64984, - -3017, -3017, 19682, 19682, 55019, -3017, 2025, -3017, 1680, 1682, - 8232, -3017, -3017, -3017, 230, 404, 7582, 302, 5399, 5399, - 5399, 43691, -3017, -3017, -3017, 1683, -3017, 24398, 24398, -3017, - 1225, 1709, 10793, -3017, -3017, -3017, -3017, 2005, -3017, 774, - -3017, 1668, -3017, -3017, 1944, -3017, 39514, 44153, 19682, 190, - -3017, 19682, 29024, 19682, 1764, 5399, 5399, 5399, 277, 277, - 230, 230, 230, 404, 302, -3017, -3017, -3017, 1685, 19682, - 47035, -3017, 1687, 1688, 2043, 1302, 19682, -3017, -3017, 31527, - 1492, 24, 1492, 2002, 44045, -3017, 1086, -3017, 1086, -3017, - 44856, 55019, -3017, -3017, 1954, 1689, 31527, 1723, 2172, 2154, - 64984, -3017, -3017, 1692, 1870, 1708, -3017, -3017, 1721, 19682, - 1185, 1721, -3017, 1838, 15, 1934, 1158, 1158, 1332, 1936, - -3017, -3017, 1776, -3017, -3017, -3017, 19682, 14442, 1341, -3017, - 1343, -3017, -3017, -3017, -3017, -3017, 1710, -3017, 1991, -3017, - 55019, -3017, -3017, 24398, 2179, 19682, 36518, 2180, 1977, -3017, - -3017, -3017, 1779, 1779, -3017, -3017, 1820, 1352, 19682, 1972, - -3017, 157, 1732, 2097, 343, 2050, 64984, -3017, 332, 344, - -3017, 776, 2103, 220, 2104, 220, 47035, 47035, 47035, 806, - -3017, -3017, -3017, 936, -3017, -87, 815, -3017, -3017, -3017, - -3017, 1834, 692, 1352, 3469, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, 221, 720, 1352, 1836, -3017, 1840, -3017, 1841, - 764, 1352, -3017, -3017, 1676, 9217, 44856, 535, 160, 160, - 160, 15490, -3017, 1976, 1981, 1754, 44856, 44856, 165, -3017, - -3017, -3017, -3017, 1758, -3017, 231, -3017, 64984, -3017, -3017, - -3017, 1745, 1797, 1701, 55019, 3469, 1760, 2240, 1238, 1392, - -3017, 1927, 913, 1851, -3017, 64984, -3017, 47035, 64984, 55019, - 55019, 55019, 64001, -3017, -3017, -3017, 1767, 1763, -3017, 13, - 2000, 1999, 55019, 1813, 55019, 1355, 2250, 55019, -3017, 824, - 1392, 1392, 18110, 2145, 55019, 1755, -3017, -3017, -3017, -3017, - 64984, -3017, -3017, 44856, -3017, 1773, -3017, 19682, 48033, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, 47035, -3017, 936, -3017, - 936, 2020, 64984, 42140, 936, 42639, 936, 1782, -3017, 44856, - 8322, 44856, 1958, -3017, 232, 2111, 536, 536, 536, 5906, - 2134, 363, 1789, 536, 536, 536, 283, 283, 232, 232, - 232, 2111, 513, 992, 49031, 1801, -3017, 44856, 44856, -3017, - -3017, 1798, -3017, -3017, -3017, -3017, 1802, 1804, -3017, -3017, - -3017, -3017, -3017, -3017, 64984, 1168, 1492, 337, 337, 337, - 337, -3017, 55019, 55019, 55019, 44856, 2249, 2123, -3017, -3017, - 6913, 44856, 55019, -3017, 26999, -3017, 55019, -3017, 2148, -3017, - 2238, -3017, 55019, 830, -3017, -3017, -3017, 834, 1817, 1638, - 69974, 836, 842, -3017, 2002, 151, 1809, 1450, 924, 570, - 1350, -3017, 52025, -3017, -3017, 1822, 44660, 19682, -3017, 2183, - -3017, -3017, -3017, 19682, 19682, -3017, 39514, -3017, -3017, -3017, - -3017, -55, -55, 8455, 1823, 10793, 44747, -3017, -3017, 2130, - 1824, -3017, 8678, 44856, -3017, 1665, -3017, -3017, 44045, 19682, - 2547, 5060, 19682, 1828, 19682, 2150, -3017, -3017, 1814, -3017, - -3017, 69974, 19682, 1829, 3859, 24398, 24398, 4710, -3017, 5386, - 19682, 10793, -3017, 40791, 1811, 1825, 1780, 18634, -3017, 2048, - 1831, -3017, 1956, 160, 1956, 1835, -3017, -3017, -3017, -3017, - 5290, -3017, 19682, 1989, 64984, 542, 1872, 844, -3017, 666, - 38015, 1723, 19682, 608, -3017, -3017, 1833, -3017, 1721, -3017, - -3017, -3017, 2065, -3017, -3017, -3017, 55019, -3017, 1839, -3017, - 35520, 2176, 11317, -3017, 35520, 55019, -3017, -3017, 55019, 40021, - 2207, -3017, 64984, 64984, 64984, -3017, 64984, 1842, 1843, 248, - 1845, 389, -3017, 2194, 248, 2184, 247, 1355, 258, 2907, - 461, -3017, -3017, -3017, 1919, 55019, -3017, 64984, -3017, -3017, - -3017, -3017, -3017, 47534, -3017, -3017, 39014, 47035, -3017, 47035, - 55019, 55019, 55019, 55019, 55019, 55019, 55019, 55019, 55019, 55019, - 1256, 19682, -3017, 19682, 1847, 1849, 1852, 1780, -3017, -3017, - -3017, 282, -3017, 1859, -3017, -3017, -3017, 371, -3017, 231, - 1864, 1865, -3017, 50528, 2691, 1621, -3017, 1592, 1797, 680, - 64485, -3017, 1866, 1869, 1701, 855, 867, 3469, 1868, 2330, - -3017, 786, 50528, -3017, -3017, -3017, 2298, -3017, 827, 228, - -3017, 1238, -3017, 2691, 1392, -3017, -3017, 2347, -3017, 2348, - 2691, 44856, 64984, 1937, -3017, 220, 871, -3017, -3017, -3017, - -3017, -3017, 64984, 1871, -3017, 1871, -3017, -3017, 1871, -3017, - -3017, -3017, -3017, 24398, 2220, 1877, 69974, -3017, -3017, 55019, - -3017, -3017, -3017, 876, 1878, 1956, 55019, 55019, 55019, 55019, - -3017, -3017, -3017, 19158, 19682, 1917, -3017, 1881, 12365, 2203, - -3017, 26494, -3017, -3017, 1884, 36019, 64984, -3017, -3017, -3017, - -3017, 2002, -3017, -3017, 64984, -3017, 1888, -3017, 1894, -3017, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, 19682, 44856, - -3017, 44856, -3017, -3017, -3017, -3017, -3017, -3017, 7206, -3017, - 1882, 1893, 64984, 19682, 64984, -3017, -3017, -3017, 391, 19682, - 19682, 1225, -3017, 6514, 19682, 69974, 886, 1225, 267, 19682, - 5646, 6346, 19682, 19682, 5456, 40060, -3017, 22302, 14966, -3017, - 1897, 19682, 40099, 38514, -3017, 31527, 2123, 1898, 2123, 936, - 1899, 44856, 19682, -3017, -3017, -3017, -3017, 1957, -5, 33024, - 2129, -3017, 1906, 64984, -3017, 1989, 44856, -3017, -3017, 39514, - -3017, -3017, -3017, -3017, -3017, 2363, 1012, 1904, 1907, -3017, - 1269, -3017, -3017, 64984, 1909, -3017, 1912, 248, -3017, 64984, - 1952, -3017, 271, 2228, 111, -3017, 19682, -3017, 2308, 2394, - 2194, 1918, 64984, 55019, 24398, -3017, 285, 183, -3017, 2208, - 55019, 1952, 2349, -3017, -3017, -3017, 389, -3017, 2246, 2159, - -3017, 273, -3017, 19682, 389, 2160, 154, 64984, -3017, -3017, - 2370, -3017, 69974, 220, 220, -3017, 1468, 1921, 1922, 1923, - 1924, 1925, 1928, 1929, 1931, 1932, 1939, -3017, 1940, 1941, - 1943, 1946, 1953, 1955, 1961, 1966, 1481, 1967, -3017, 1970, - 1833, 1973, 1975, 1978, 1982, 1983, 70942, 1984, 1985, 1992, - 1993, 1487, 1994, 1047, 1062, -3017, -3017, -3017, -3017, -3017, - -3017, 1246, 1995, -3017, 1990, -3017, -3017, -3017, 2016, -3017, - 2031, -3017, -3017, -3017, -3017, -3017, -3017, 1951, 1960, -3017, - -3017, -3017, 160, 1997, 2003, 64984, 1256, 121, 47035, 64984, - 2006, 1813, 2425, 1211, 2217, 2008, -3017, 936, 2009, -3017, - 1621, -3017, 50528, 2482, 268, 1999, -3017, 323, 1813, -3017, - 2389, 1621, 2021, -3017, 1592, 2100, 19682, 150, -3017, 2219, - 64984, 2010, -3017, -3017, 48033, 1871, 6153, 24398, 69974, 896, - 920, -3017, 2511, 2167, 2123, -3017, -3017, -3017, -3017, -3017, - 2011, 20, 2013, 10269, 2012, -3017, -3017, -3017, -3017, -3017, - -3017, 44856, 44856, 64984, 2188, -3017, -3017, 2014, 2019, 37017, - 2474, 2024, -3017, -3017, 2340, -3017, 30028, -3017, 1638, 2023, - 1638, 69974, 1638, -3017, -3017, 44856, 19682, -3017, -3017, 41088, - 2358, -3017, 1225, 1225, 6514, 942, -3017, 1225, 19682, 19682, - 1225, 1225, 19682, -3017, 9743, 540, -3017, 948, -3017, 40147, - -3017, 71426, -3017, -3017, 1917, 936, 1917, -3017, -3017, 2029, - -3017, -3017, -3017, 2094, -3017, -3017, 952, 2461, 1989, 19682, - -3017, -3017, 2038, 35520, -3017, -3017, -3017, -3017, 35520, 248, - -3017, 2212, 1952, 2046, -3017, -3017, -3017, -3017, -3017, -3017, - 40186, -3017, 113, 19682, -3017, 944, 5906, -3017, -3017, -3017, - -3017, 1952, 1238, -3017, 55019, 2525, 2417, -3017, -3017, 44856, - -3017, -3017, 2002, 2002, -3017, -3017, 2238, -3017, -3017, 2051, - -3017, -3017, 1246, 587, 39014, 55019, 55019, -3017, -3017, 2054, - -3017, -3017, -3017, -3017, -3017, 371, 2446, 971, 978, 786, - -3017, 2691, 55019, 2422, 50528, -3017, 47035, 2536, 2058, 55019, - 1813, 358, 358, -3017, 2209, -3017, 2210, -3017, -3017, 2540, - 291, -3017, 1288, 55019, -3017, -3017, 32525, -3017, 6153, 979, - -3017, -3017, 2063, 2066, -3017, 1917, 19682, 2074, 19682, -3017, - 22826, 2553, 2073, -3017, 19682, 2139, 27504, -3017, 19682, -3017, - 55019, 60009, 2085, 60009, -3017, -3017, -3017, -3017, -3017, 19682, - -3017, 1225, 1225, 1225, 19682, -3017, 19682, -3017, -3017, -3017, - 2297, 2188, -3017, 2188, 19682, 2691, 666, 3519, 64984, 35, - -3017, 44856, -3017, -3017, -3017, 55019, -3017, 47035, -3017, 248, - -11, 2095, 19682, 40539, 2328, -3017, -3017, 2365, -3017, 2426, - -3017, 2163, 597, 2174, -3017, -3017, -3017, -3017, 1256, 936, - -3017, 1621, 1999, 2021, 2109, 55019, 984, 2691, 786, 827, - -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, -3017, - -3017, -3017, -3017, 2691, 2549, 2335, 2555, -3017, 1937, 19682, - 94, -3017, 990, 2550, -3017, -3017, 2623, 2188, 2116, 22826, - 2117, -3017, 2119, 64984, 44856, 2267, -3017, -3017, 2120, -3017, - -3017, 19682, -3017, 41145, 2127, 2128, 2588, 1780, 2139, 2139, - -3017, -5, -3017, -3017, 2560, 32525, 2507, 1238, 248, 2151, - 1021, -3017, -3017, -3017, -3017, -3017, 3469, -3017, 40626, 2375, - 217, 2371, 2095, 19682, -3017, 2213, -3017, -3017, -3017, 2620, - -3017, -3017, 50528, 2147, -3017, 2021, 1999, 1813, 2021, 2369, - -3017, 2374, 2152, 40665, 64984, 64984, 1621, 32525, 64984, 2149, - 2139, -3017, 2153, -3017, -3017, -3017, 54021, -3017, 2157, -3017, - -3017, -3017, 19682, 735, -3017, -3017, 2201, 55019, 1028, 65, - 2365, 39014, -3017, 47035, 1442, -11, 2464, -3017, -3017, -3017, - -3017, 115, 2381, -3017, 2390, -3017, 44856, -3017, 2691, 50528, - -3017, -3017, -3017, -3017, -3017, -3017, 32525, 2550, -3017, 356, - -3017, 1492, -3017, 356, -3017, -3017, -3017, -3017, -3017, 1428, - 23350, 23350, 23350, 2164, 2691, -3017, 1492, -3017, 2284, 2371, - -3017, -3017, -3017, -3017, -3017, 269, 269, 2557, -3017, 2232, - -3017, 2021, 1035, 64984, 1721, -3017, 1721, 24922, 2320, 293, - 43712, 2548, -3017, 2548, 2548, -3017, -3017, -3017, 38015, -3017, - -3017, 2670, -3017, 260, -3017, -3017, -3017, 1621, 356, -3017, - -3017, 2662, -3017, -3017, -3017, -3017, -3017, 159, -3017, -3017, - -3017, 1492, 248, -3017, -3017, -3017, 1492, 1721, 23874, 2333, - -3017, 2408, -3017, -3017, -3017, -3017, -3017, -3017, -3017 + 7355, -34, 651, -3072, -3072, 286, -34, 51694, 66649, 129, + -34, 186, 2535, 53690, -3072, -3072, 48201, 2849, -34, 56684, + 74045, 397, 475, 33132, 457, 57183, -3072, -3072, -3072, 66649, + 56684, 57682, -34, 327, 67148, -3072, -34, 36128, 54189, 387, + -3072, 56684, 58, 136, 58181, 56684, 5695, 752, 331, -3072, + -3072, -3072, -3072, -3072, 118, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, 150, -3072, 263, 167, 33132, 33132, 1044, 373, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 450, + -3072, -3072, 740, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, 35628, -3072, -3072, -3072, -3072, -3072, -3072, 58680, 56684, + 59179, 54688, 59678, -3072, 704, 1014, 690, 147, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + 184, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, 532, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, 189, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, 533, -3072, 581, -3072, 194, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, 966, -3072, -3072, 1020, 2993, + 56684, 458, 542, 794, -3072, 60177, -3072, 780, 56684, -3072, + -3072, 785, 911, 970, -3072, -3072, 55187, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, 48700, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, 973, -3072, -3072, 741, -3072, 158, -3072, -3072, + 765, 733, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, 859, -3072, -3072, -3072, 831, 67647, 60676, 61175, -3072, + 734, 2559, 8055, 74063, 32132, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 450, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 57183, 66649, + 742, 756, 1097, 802, 34130, 809, 36628, 813, 851, 1139, + 866, 914, 935, 962, 136, 32632, 758, 533, 841, 61674, + 61674, -36, 33631, 192, -3072, 61674, 62173, -3072, 981, -3072, + 1014, -3072, -3072, -3072, -3072, -98, 975, -3072, 62672, 62672, + 62672, 1002, 1264, 62672, -3072, -3072, -3072, 995, -3072, -3072, + 1257, 20701, 20701, 68146, 68146, 1014, 68146, 1054, 68146, -3072, + -3072, 72, 690, -3072, 533, -3072, -3072, 1044, -3072, -3072, + 54189, -3072, -3072, 285, 1394, 20701, 56684, 1060, -3072, 1074, + 1060, 1076, 1099, 1107, -3072, 7355, 1444, 1326, 55686, 337, + 337, 1589, 337, 906, 953, 2653, 4581, -3072, 1578, -3072, + 1126, -3072, 56684, 57183, 1231, 1152, 1431, -3072, -3072, 1517, + 1385, 1318, 1524, 7326, 1526, 1617, 1532, 1736, 1565, 1684, + 24, -3072, 20701, 49199, 533, -3072, 11776, 20701, -3072, -3072, + -3072, 1300, -3072, -3072, -3072, -3072, -3072, 56684, 66649, 1209, + 1215, -3072, -3072, -3072, -3072, 2080, 1462, -3072, 1699, 68645, + -3072, -3072, 1271, 63171, 63670, 64169, 64668, 1664, -3072, -3072, + 1603, -3072, -3072, -3072, 1273, -3072, -3072, -3072, 185, 69144, + 1608, 1250, 117, -3072, 1620, 140, -3072, 1625, 1489, 15451, + -3072, 1434, -3072, -3072, -3072, 136, -3072, 511, -3072, -3072, + 45302, -3072, -3072, 74063, 1359, 1276, -3072, 20701, 20701, 1280, + 8290, 61674, 62173, 20701, 56684, -3072, 20701, 25426, 1281, 20701, + 20701, 12826, 20701, 31134, 61674, 192, 1272, -3072, 728, -3072, + 56684, 1282, -3072, 1371, 1371, 327, 33132, 1577, 32632, 1371, + 1371, 1371, -3072, 1213, 1576, 1504, -3072, 33132, 1504, 1388, + 1288, 1582, 1504, -3072, 265, 1586, 1371, 37127, 1291, -3072, + 1371, 1518, -3072, -3072, 20701, 15451, 71639, 1774, -3072, -3072, + -3072, -3072, 1581, -3072, 66649, 1303, -3072, -3072, -3072, -3072, + -3072, -3072, 678, 1813, 169, 1814, 20701, 169, 169, 1304, + 203, 203, -3072, 1507, 1307, -3072, 204, 1311, 1315, 1829, + 1830, 182, 152, 709, 169, 20701, -3072, 203, 1319, 1831, + 1338, 1839, 209, 212, -3072, 206, 20701, 20701, 20701, 689, + 20701, 10726, -3072, 49199, 1849, 56684, 403, -3072, 533, 1345, + 1014, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 1351, -3072, + 187, 6462, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + 1389, -3072, -3072, -3072, -3072, 1569, 20701, -3072, -3072, 1350, + 1577, -3072, 213, -3072, -3072, 1577, -3072, -3072, -3072, -3072, + -3072, 234, -3072, 1775, 20701, 20701, -3072, 533, 69643, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, 667, -3072, 450, 592, + 47020, 1356, 1362, 1060, 56684, 56684, 1840, -3072, -3072, -3072, + -3072, 54189, 170, 1663, 171, 1496, -3072, -3072, 1044, 1044, + 15976, 1104, 225, 103, 16501, 21226, 1721, 1602, 229, 660, + 1724, -3072, 1610, 1837, 25426, 20701, 20701, 906, 953, 20701, + 1074, 94, -3072, -3072, -3072, 1669, 56684, 52193, 325, 738, + 1390, 1475, 1391, 207, 1819, -3072, 1392, -3072, 1476, 56684, + 73590, 226, -3072, 1856, 226, 226, 238, 1860, 1490, 259, + 1654, 62, -72, 1392, 1857, -3072, 54189, 143, 97, 1392, + 56684, 1493, 654, 1392, 1818, 66649, 1276, -3072, -3072, 43144, + 1404, -3072, -3072, -3072, 165, 15451, -3072, 1274, 1279, 1340, + 368, 145, 1361, 1380, 15451, 1400, 1522, 188, 1585, 1588, + 1601, 1615, 1653, 1660, 1674, 1679, 149, 1685, 1690, 1692, + 1695, 1700, 1702, -3072, 1709, 193, 1713, 202, 15451, 1718, + -3072, 47020, 25, -3072, -3072, 1722, 199, -3072, 47120, -3072, + 1706, 1498, 1506, 66649, 1458, 56684, 1570, 987, 1797, 1851, + 72123, 1677, -3072, 1754, 56684, 1682, 1857, 1686, 1441, 1922, + 1689, 1215, 1693, 1451, -3072, 70142, 49199, -3072, -3072, -3072, + -3072, -3072, 1820, 1799, 66649, 49199, 1455, -3072, -3072, 66649, + -3072, 56684, 56684, -3072, 56684, 66649, -3072, 712, 47020, 1965, + 1102, 74063, 50696, -3072, -3072, -3072, -3072, 916, 1067, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 1014, 49199, + -3072, 3606, 45923, 1460, 20701, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, 1461, 1809, -3072, -3072, + 5765, 1463, 46218, 1464, 25426, 25426, 533, 2790, -3072, -3072, + 25426, 1465, 51195, 45837, 1466, 1467, 46403, 17026, 20701, 17026, + 17026, 46469, -3072, 1471, 46558, 61674, 1473, 56684, 30630, -3072, + -3072, -3072, 20701, 20701, 192, 56185, 1508, 1474, -3072, -3072, + -3072, 33132, -3072, 33132, -3072, 1767, 33132, -3072, -3072, 2036, + -3072, 33132, 1770, 20701, 33132, -3072, 33132, 1716, 1719, 1484, + 33132, -3072, 56684, 1487, 56684, -3072, -3072, 47020, -3072, 1485, + 746, 1491, -3072, -3072, -3072, -3072, -3072, 1542, -3072, 1542, + 1542, -3072, -3072, -3072, -3072, 1492, 1492, 1495, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, 1503, 709, -3072, 1542, -3072, 1492, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, 73590, -3072, -3072, -3072, -3072, 565, + 677, -3072, 1509, -3072, -3072, 1510, -3072, 1502, 1985, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 6072, 751, + 1492, -3072, -3072, 6514, -3072, -3072, 20701, 20701, -3072, -3072, + 1513, 47020, 1550, -3072, -3072, 20701, 20701, -3072, -3072, -3072, + -3072, 2023, -3072, 20701, 1542, 1542, -3072, 43180, -3072, 42119, + 17551, 1609, 1611, 2023, -3072, 2023, -3072, 43180, 2026, 2026, + 1521, 37626, -3072, 1687, 46767, -3072, 1529, 1918, 6712, 1528, + -3072, -3072, 1520, -3072, 1530, 1533, 43805, 20701, 183, 533, + 533, 20701, -3072, 2023, 20701, 8317, 8317, -3072, 241, 71639, + 20701, 20701, 20701, 20701, 20701, 20701, 20701, 20701, 47702, 1619, + 179, 66649, 20701, 20701, 30120, 1082, -3072, 20701, 1778, -3072, + 1538, 20701, 1629, 302, 20701, 20701, 20701, 20701, 20701, 20701, + 20701, 20701, 20701, -3072, -3072, 29101, 251, 646, 1882, 1903, + -2, 358, 20701, 1895, 11776, -3072, 1895, -3072, -3072, -3072, + -3072, -3072, 214, -3072, -3072, 1485, 1485, 66649, -3072, 56684, + 285, 53191, 20701, -3072, -3072, 1546, 1552, 155, 1622, -3072, + -3072, 56684, -3072, 40620, 1854, -3072, 345, 1554, -3072, 45798, + 1808, 1854, 1044, -3072, -3072, 26476, 1694, 1855, 1793, -3072, + -3072, 1777, 1779, -3072, 1572, 47209, 21751, 21751, -3072, 1262, + 47020, 1375, -3072, -3072, -3072, -3072, -3072, -3072, 574, -3072, + 56684, 459, 38125, -3072, 1574, 164, -3072, 2878, 1906, 1879, + 1721, 660, 1587, -3072, 57183, 57183, -3072, -3072, 1776, 1591, + 70641, 56684, 1876, 1832, 1877, 300, 71639, -3072, -3072, -3072, + -3072, 56684, 66649, 65167, 71140, 49698, 56684, 49199, -3072, -3072, + -3072, -3072, 56684, 456, 56684, 7343, -3072, -3072, -3072, -3072, + 226, -3072, -3072, -3072, -3072, -3072, 66649, 56684, -3072, -3072, + 226, 66649, 56684, 226, -3072, 1850, 56684, 56684, 56684, 56684, + 1878, 56684, 56684, 1014, -3072, -3072, -3072, 22276, 32, 32, + 1816, 13351, 163, -3072, 20701, 20701, 792, 271, 66649, 1771, + -3072, -3072, 760, 1822, 127, -3072, 66649, 1643, 56684, 56684, + 56684, 56684, 56684, 1439, -3072, -3072, -3072, -3072, -3072, 1596, + -3072, 1963, 2113, 1599, 1614, 1967, -3072, 1857, 1968, 52692, + 735, 2657, 1969, 1648, 1983, 13876, -3072, -3072, 1618, -3072, + -3072, 1621, 2099, 1866, -3072, -3072, 1852, -3072, 66649, 2142, + -3072, 117, -3072, 49199, -3072, 140, -3072, 1858, 243, -3072, + 15451, 20701, -3072, -3072, -3072, -3072, -3072, -3072, 1276, 29611, + -3072, 762, -3072, -3072, 2106, 1014, 2106, 761, -3072, -3072, + 2106, -3072, 2094, 2106, -3072, 71639, -3072, 7266, -3072, 20701, + 20701, -3072, 20701, 1982, -3072, 2144, 2144, 71639, 25426, 25426, + 25426, 25426, 25426, 25426, 252, 1319, 25426, 25426, 25426, 25426, + 25426, 25426, 25426, 25426, 25426, 27001, 432, -3072, -3072, 764, + 2118, 20701, 20701, 1992, 1982, 20701, -3072, 71639, 1641, -3072, + 1642, 1644, 20701, -3072, 71639, -3072, 56684, 1645, -3072, -3072, + -3072, 115, 1649, 1652, -3072, -3072, 1577, -3072, 875, 984, + 56684, 2254, 3554, 4652, -3072, -3072, 20701, 1990, -3072, 2036, + 2036, 33132, -3072, 20701, 1655, -3072, -3072, 33132, 1999, -3072, + 2036, -3072, -3072, 38624, 2036, 71639, 775, -3072, 56684, 71639, + 793, 20701, -3072, 15451, 2173, 71639, 2138, 66649, 66649, 2176, + 1666, 1667, 2023, 1749, -3072, 1753, 1755, 1756, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 71639, -3072, + -3072, 124, -3072, -3072, -3072, -3072, -3072, -3072, 1670, 1668, + 20701, 20701, 93, -3072, 7606, 1671, 1672, 5691, -3072, 1675, + -3072, 1665, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 1678, + -3072, 1673, -3072, 1680, 1701, 1703, 1681, 1691, 20701, 56684, + -3072, 1704, 22801, 1835, 66649, -3072, -3072, 20701, 20701, 56684, + -3072, 2046, 47020, -3072, 1696, 1708, 7829, -3072, -3072, -3072, + 231, 903, 8732, 358, 4270, 4270, 4270, 43180, -3072, -3072, + -3072, 1705, -3072, 25426, 25426, -3072, 3699, 3070, 10726, -3072, + -3072, -3072, -3072, 2047, -3072, 1125, -3072, 1710, -3072, -3072, + 3493, -3072, 42119, 9450, 20701, 200, -3072, 20701, 30120, 20701, + 1789, 4270, 4270, 4270, 280, 280, 231, 231, 231, 903, + 358, -3072, -3072, -3072, 1711, 20701, 49199, -3072, 1714, 1720, + 2066, 1338, 20701, -3072, -3072, 33132, 1508, 25, 1508, 2023, + 8317, -3072, 1074, -3072, 1074, -3072, 47020, 56684, -3072, -3072, + 1972, 1725, 33132, 1757, 2200, 2187, 66649, -3072, -3072, 1726, + 1895, 1740, -3072, -3072, 1746, 20701, 1098, 1746, -3072, 1854, + 31, 1960, 1137, 1137, 1262, 1961, -3072, -3072, 1802, -3072, + -3072, -3072, 20701, 14401, 1379, -3072, 1381, -3072, -3072, -3072, + -3072, -3072, 1731, -3072, 2015, -3072, 56684, -3072, -3072, 25426, + 2203, 20701, 39123, 2204, 2000, -3072, -3072, -3072, 1800, 1800, + -3072, -3072, 1841, 1392, 20701, 1993, -3072, 154, 1760, 2121, + 357, 2071, 66649, -3072, 343, 350, -3072, 468, 2127, 243, + 2132, 243, 49199, 49199, 49199, 800, -3072, -3072, -3072, 1014, + -3072, 279, 806, -3072, -3072, -3072, -3072, 1862, 656, 1392, + 1857, -3072, -3072, -3072, -3072, -3072, -3072, -3072, 177, 692, + 1392, 1865, -3072, 1867, -3072, 1868, 781, 1392, -3072, -3072, + 1684, 18076, 47020, 333, 163, 163, 163, 15451, -3072, 2003, + 2004, 1768, 47020, 47020, 156, -3072, -3072, -3072, -3072, 1783, + -3072, 367, -3072, 66649, -3072, -3072, -3072, 1771, 1851, 1754, + 56684, 1857, 1785, 2249, 1215, 1451, -3072, 1942, 808, 1584, + -3072, 66649, -3072, 49199, 66649, 56684, 56684, 56684, 65666, -3072, + -3072, -3072, 1788, 1786, -3072, 22, 2024, 2021, 56684, 1833, + 56684, 1391, 2276, 56684, -3072, 814, 1451, 1451, 18601, 2166, + 56684, 1799, -3072, -3072, -3072, -3072, 66649, -3072, -3072, 47020, + -3072, 1796, -3072, 20701, 50197, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, 49199, -3072, 1014, -3072, 1014, 2044, 66649, 44304, + 1014, 44803, 1014, 1806, -3072, 47020, 8173, 47020, 1992, -3072, + 244, 2144, 796, 796, 796, 3353, 2155, 247, 1811, 796, + 796, 796, 377, 377, 244, 244, 244, 2144, 432, 981, + 51195, 1815, -3072, 47020, 47020, -3072, -3072, 1812, -3072, -3072, + -3072, -3072, 1817, 1824, -3072, -3072, -3072, -3072, 66649, 173, + 1508, 387, 387, 387, 387, -3072, 56684, 56684, 56684, 47020, + 2273, 2148, -3072, -3072, 2036, 47020, 56684, -3072, 28051, -3072, + 56684, -3072, 2170, -3072, 2266, -3072, 56684, 826, -3072, -3072, + -3072, 830, 1844, 1667, 71639, 844, 846, -3072, 2023, 211, + 1828, 817, 274, 797, 1397, -3072, 54189, -3072, -3072, 1838, + 46824, 20701, -3072, 2206, -3072, -3072, -3072, 20701, 20701, -3072, + 42119, -3072, -3072, -3072, -3072, 344, 344, 8692, 1704, 1842, + 1843, 56684, 10726, 46911, -3072, 39622, -3072, -3072, 2164, 1845, + -3072, 8884, 47020, -3072, 1687, -3072, -3072, 8317, 20701, 3648, + 3670, 20701, 1847, 20701, 2197, -3072, -3072, 1859, -3072, -3072, + 71639, 20701, 1853, 5327, 25426, 25426, 6012, -3072, 6179, 20701, + 10726, -3072, 43231, 1861, 1864, 1816, 19126, -3072, 2069, 1869, + -3072, 1990, 163, 1990, 1870, -3072, -3072, -3072, -3072, 6514, + -3072, 20701, 2012, 66649, 530, 1966, 869, -3072, 533, 40620, + 1757, 20701, 267, -3072, -3072, 1874, -3072, 1746, -3072, -3072, + -3072, 2085, -3072, -3072, -3072, 56684, -3072, 1880, -3072, 38125, + 2202, 11251, -3072, 38125, 56684, -3072, -3072, 56684, 9298, 2228, + -3072, 66649, 66649, 66649, -3072, 66649, 1871, 1883, 657, 1885, + 744, -3072, 2294, 657, 2210, 245, 1391, 259, 2665, 53, + -3072, -3072, -3072, 1946, 56684, -3072, 66649, -3072, -3072, -3072, + -3072, -3072, 49698, -3072, -3072, 41619, 49199, -3072, 49199, 56684, + 56684, 56684, 56684, 56684, 56684, 56684, 56684, 56684, 56684, 1276, + 20701, -3072, 20701, 1887, 1888, 1889, 1816, -3072, -3072, -3072, + 240, -3072, 1890, -3072, -3072, -3072, -72, -3072, 367, 1891, + 1896, -3072, 52692, 2993, 1648, -3072, 1621, 1851, 120, 66150, + -3072, 1898, 1900, 1754, 873, 880, 1857, 1905, 2358, -3072, + 735, 52692, -3072, -3072, -3072, 2338, -3072, 734, 233, -3072, + 1215, -3072, 2993, 1451, -3072, -3072, 2387, -3072, 2388, 2993, + 47020, 66649, 1973, -3072, 243, 881, -3072, -3072, -3072, -3072, + -3072, 66649, 1909, -3072, 1909, -3072, -3072, 1909, -3072, -3072, + -3072, -3072, 25426, 2260, 1915, 71639, -3072, -3072, 56684, -3072, + -3072, -3072, 882, 1917, 1990, 56684, 56684, 56684, 56684, -3072, + -3072, -3072, 19651, 20701, 1970, -3072, 1920, 12301, 2245, -3072, + 27526, -3072, -3072, 1926, 38624, 66649, -3072, -3072, -3072, -3072, + 2023, -3072, -3072, 66649, -3072, 1933, -3072, 1934, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, 20701, 47020, -3072, + 47020, -3072, -3072, -3072, -3072, -3072, 56684, -3072, -3072, 6584, + -3072, 1930, 1935, 66649, 56684, 121, -3072, 20701, 66649, -3072, + 1835, -3072, 405, 20701, 20701, 3699, -3072, 45855, 20701, 71639, + 896, 3699, 262, 20701, 3927, 4601, 20701, 20701, 6599, 9393, + -3072, 23326, 14926, -3072, 1936, 20701, 9432, 41119, -3072, 33132, + 2148, 1937, 2148, 1014, 1938, 47020, 20701, -3072, -3072, -3072, + -3072, 1995, -23, 35128, 2169, -3072, 1955, 66649, -3072, 2012, + 47020, -3072, -3072, 42119, -3072, -3072, -3072, -3072, -3072, 2410, + 2301, 1954, 1957, -3072, 1301, -3072, -3072, 66649, 1958, -3072, + 1964, 657, -3072, 66649, 2002, -3072, 255, 2274, 153, -3072, + 20701, -3072, 2363, 2445, 2294, 1971, 66649, 56684, 25426, -3072, + 277, 224, -3072, 2259, 56684, 2002, 2402, -3072, -3072, -3072, + 744, -3072, 2299, 2214, -3072, 226, -3072, 20701, 744, 2215, + 239, 66649, -3072, -3072, 2582, -3072, 71639, 243, 243, -3072, + 1491, 1976, 1980, 1984, 1987, 1989, 2005, 2007, 2008, 2009, + 2010, -3072, 2013, 2014, 2016, 2017, 2018, 2027, 2028, 2032, + 1503, 2033, -3072, 2038, 1874, 2039, 2040, 2041, 2042, 2045, + 72607, 2050, 2051, 2055, 2056, 1509, 2058, 916, 1067, -3072, + -3072, -3072, -3072, -3072, -3072, 1250, 2060, -3072, 2025, -3072, + -3072, -3072, 2079, -3072, 2084, -3072, -3072, -3072, -3072, -3072, + -3072, 2006, 2049, -3072, -3072, -3072, 163, 2062, 2063, 66649, + 1276, 125, 49199, 66649, 2064, 1833, 2484, 834, 2268, 2067, + -3072, 1014, 2074, -3072, 1648, -3072, 52692, 2875, 618, 2021, + -3072, 196, 1833, -3072, 2477, 1648, 2109, -3072, 1621, 2174, + 20701, 160, -3072, 2305, 66649, 2078, -3072, -3072, 50197, 1909, + 4715, 25426, 71639, 915, 930, -3072, 2589, 2246, 2148, -3072, + -3072, -3072, -3072, -3072, 2081, -38, 2083, 10201, 2086, -3072, + -3072, -3072, -3072, -3072, -3072, 47020, 47020, 66649, 2267, -3072, + -3072, 2090, 2087, 40121, 2546, 2088, -3072, -3072, 2419, -3072, + 31633, -3072, 1667, 2103, 1667, 71639, 1667, -3072, -3072, 47020, + 1704, 20701, -3072, -3072, -3072, 2105, 2102, 66649, 43270, 2436, + -3072, -3072, 3699, 3699, 45855, 932, -3072, 3699, 20701, 20701, + 3699, 3699, 20701, -3072, 20176, 446, -3072, 946, -3072, 42626, + -3072, 73091, -3072, -3072, 1970, 1014, 1970, -3072, -3072, 2108, + -3072, -3072, -3072, 2171, -3072, -3072, 951, 2543, 2012, 20701, + -3072, -3072, 2119, 38125, -3072, -3072, -3072, -3072, 38125, 657, + -3072, 2292, 2002, 2128, -3072, -3072, -3072, -3072, -3072, -3072, + 42665, -3072, 65, 20701, -3072, 925, 3353, -3072, -3072, -3072, + -3072, 2002, 1215, -3072, 56684, 2605, 2496, -3072, -3072, 47020, + -3072, -3072, 2023, 2023, -3072, -3072, 2266, -3072, -3072, -3072, + 2129, -3072, -3072, 1250, 310, 41619, 56684, 56684, -3072, -3072, + 2133, -3072, -3072, -3072, -3072, -3072, -72, 2529, 959, 976, + 735, -3072, 2993, 56684, 2502, 52692, -3072, 49199, 2615, 2137, + 56684, 1833, 1086, 1086, -3072, 2288, -3072, 2289, -3072, -3072, + 2619, 261, -3072, 1307, 56684, -3072, -3072, 34629, -3072, 4715, + 986, -3072, -3072, 2143, 2145, -3072, 1970, 20701, 2146, 20701, + -3072, 23851, 2621, 2152, -3072, 20701, 2209, 28576, -3072, 20701, + -3072, 56684, 61674, 2149, 61674, -3072, -3072, -3072, -3072, 56684, + -3072, -3072, -3072, 20701, -3072, 3699, 3699, 3699, 20701, -3072, + 20701, -3072, -3072, -3072, 2360, 2267, -3072, 2267, 20701, 2993, + 533, 3911, 66649, 26, -3072, 47020, -3072, -3072, -3072, 56684, + -3072, 49199, -3072, 657, -6, 2157, 20701, 42704, 2396, -3072, + -3072, 2428, -3072, 2487, -3072, 2222, 538, 2247, -3072, -3072, + -3072, -3072, 1276, 1014, -3072, 1648, 2021, 2109, 2175, 56684, + 991, 2993, 735, 734, -3072, -3072, -3072, -3072, -3072, -3072, + -3072, -3072, -3072, -3072, -3072, -3072, -3072, 2993, 2613, 2398, + 2618, -3072, 1973, 20701, 217, -3072, 1011, 2614, -3072, -3072, + 2687, 2267, 2179, 23851, 2180, -3072, 2182, 66649, 47020, 2331, + -3072, -3072, 2184, -3072, -3072, 20701, -3072, -3072, 43309, 2189, + 2191, 2645, 1816, 2209, 2209, -3072, -23, -3072, -3072, 2617, + 34629, 2579, 1215, 657, 2216, 1023, -3072, -3072, -3072, -3072, + -3072, 1857, -3072, 42752, 2453, 151, 2437, 2157, 20701, -3072, + 2286, -3072, -3072, -3072, 2689, -3072, -3072, 52692, 2212, -3072, + 2109, 2021, 1833, 2109, 2439, -3072, 2443, 2221, 42791, 66649, + 66649, 1648, 34629, 66649, 2224, 2209, -3072, 2225, -3072, -3072, + -3072, 30630, -3072, 2227, -3072, -3072, -3072, 20701, 439, -3072, + -3072, 2279, 56684, 1024, 56, 2428, 41619, -3072, 49199, 1500, + -6, 2545, -3072, -3072, -3072, -3072, 168, 2462, -3072, 2463, + -3072, 47020, -3072, 2993, 52692, -3072, -3072, -3072, -3072, -3072, + -3072, 34629, 2614, -3072, 345, -3072, 1508, -3072, 345, -3072, + -3072, -3072, -3072, -3072, 1466, 24376, 24376, 24376, 2236, 2993, + -3072, 1508, -3072, 2367, 2437, -3072, -3072, -3072, -3072, -3072, + 195, 195, 2637, -3072, 2306, -3072, 2109, 1029, 66649, 1746, + -3072, 1746, 25951, 2393, 198, 45876, 2616, -3072, 2616, 2616, + -3072, -3072, -3072, 40620, -3072, -3072, 2738, -3072, 235, -3072, + -3072, -3072, 1648, 345, -3072, -3072, 2730, -3072, -3072, -3072, + -3072, -3072, 178, -3072, -3072, -3072, 1508, 657, -3072, -3072, + -3072, 1508, 1746, 24901, 2399, -3072, 2480, -3072, -3072, -3072, + -3072, -3072, -3072, -3072 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -3017, -3017, -3017, 1837, 82, -3017, -3017, 68, -3017, 930, - -3017, 61, -789, 452, -3017, 86, 2920, 2581, 3525, 1263, - -518, -887, -1258, 28, 88, -1146, 10, -3017, -3017, -3017, - -3017, -1498, -583, 126, -3017, -3017, -720, -2539, -673, -3017, - -2953, -2678, -3017, -3017, -808, -3016, -2069, 90, -3017, -3017, - 95, 2, -2117, -3017, -1676, 64, -2104, 96, 97, 846, - -3017, -2620, 100, -895, -1200, -912, -1207, -3017, -205, -3017, - 357, 101, 1251, 1885, -3017, 4, -2197, -2867, -679, -3017, - -779, -3017, -437, -3017, -726, -3017, -947, -734, -768, -2858, - -1145, -3017, 1532, -489, -3017, 490, -3017, -2589, -3017, -3017, - 478, -3017, -1163, -3017, -2234, 36, -713, -2411, -2567, -2178, - -898, 120, -721, 98, -2131, -1255, -3017, 502, -3017, -705, - -3017, -891, -2495, 102, -3017, -3017, 1421, -930, -3017, 109, - -3017, 390, -3017, -2149, 388, -2106, 1455, -630, 19, 21, - -3017, -3017, -3017, -3017, -3017, -748, 430, -1216, -3017, 366, - -3017, -3017, -3017, -3017, -290, 79, -2268, 11, 3003, -31, - -37, -3017, -32, -3017, -3017, -3017, 537, -3017, -3017, 18, - 42, 1605, -3017, -1027, -3017, -1634, 690, -3017, 1762, 1768, - -2165, -879, -49, -3017, 577, -1671, -2144, -640, 1027, 1595, - 1590, 327, -2965, -3017, -663, -3017, 46, -3017, -3017, 568, - 1071, -1562, -1558, -3017, -2201, -3017, -582, -472, -3017, -3017, - -3017, -3017, -3017, -2529, -2138, -635, 1040, -3017, 1597, -3017, - -3017, -3017, -3017, 60, -1503, 2768, 606, -48, -3017, -3017, - -3017, -3017, 14, -3017, 794, -302, -3017, 2004, -669, -801, - 1805, -611, 237, -1705, -18, 2017, 368, -3017, -3017, 367, - -2062, -1421, 322, -391, 798, -3017, -3017, -1253, -3017, -1865, - -1191, -3017, -3017, -732, 1014, -3017, -3017, -3017, 1151, 1778, - -3017, -3017, 2774, 2790, -3017, -900, 3151, 1176, -1037, 1844, - -931, 1856, -933, -935, -938, 1857, 1858, 1860, 1861, 1863, - 1867, 1876, -1539, 4950, 1052, 945, -2215, -3017, -1583, 915, - 916, 917, 48, -3017, -1399, 76, -3017, -3017, -3017, -3017, - -3017, -2758, -3017, -563, -3017, -555, -3017, -3017, -3017, -1759, - -2749, -1789, -3017, 4393, 725, -3017, -3017, 306, -3017, -3017, - -3017, -3017, -1535, -3017, 5761, 621, -3017, -2017, -3017, -3017, - -981, -850, -731, -998, -1217, -1938, -3017, -3017, -3017, -3017, - -3017, -3017, -1513, -1780, -208, 682, -3017, -3017, 778, -3017, - -3017, -3017, 6, -1434, -1755, -2116, -3017, -3017, -3017, 698, - 1373, -19, -839, -1621, -3017, 755, -2371, -3017, -3017, 318, - -3017, -599, -1122, -2457, 59, 16, -3017, 689, -2551, -3017, - -3017, -740, -2691, -1138, -892, -3017, 116, -3017, 274, 127, - -1651, -3017, 5, -3017, -501, -3017, -3017, -2588, -3017, 128, - 129, 2069, -3017, 1034, -3017, -3017, -3017, -3017, -581, -3017, - -620, -614, -3017, -3017, 32, -902, 1511, -3017, 131, 434, - -3017, 852, -3017, 601, 132, -3017, 1969, -492, 134, 1178, - -3017, -3017, -3017, 29, -602, 278, -3017, 1180, -3017, -3017, - 1646, 564, 138, -3017, 420, 22, -3017, -3017, -3017, 84, - 2777, 139, 12, -2389, 142, -2800, -1683, -7, -3017, -3017, - -3017, -729, -3017, -2526 + -3072, -3072, -3072, 1904, 75, -3072, -3072, 128, -3072, 988, + -3072, 108, -797, 506, -3072, 84, 4198, 2606, 4642, 1435, + -520, -888, -1248, 8, 85, -1157, 3, -3072, -3072, -3072, + -3072, -1496, -544, 180, -3072, -3072, -681, -2591, -634, -3072, + -2874, -3071, -3072, -3072, -779, -3059, -2095, 89, -3072, -3072, + 95, 2, -2128, -3072, -1677, 70, -2123, 99, 102, 895, + -3072, -2622, 107, -895, -1195, -951, -1199, -3072, -164, -3072, + 406, 109, 1203, 1947, -3072, 4, -2198, -2926, -645, -3072, + -748, -3072, -401, -3072, -693, -3072, -837, -697, -730, -2854, + -1174, -3072, 1598, -447, -3072, 549, -3072, -2613, -3072, -3072, + 539, -3072, -1171, -3072, -2260, 96, -675, -2651, -2611, -2214, + -910, 174, -683, 157, -2167, -1115, -3072, 561, -3072, -664, + -3072, -905, -2054, 112, -3072, -3072, 1488, -923, -3072, 113, + -3072, 451, -3072, -2170, 449, -2133, 1525, -620, 10, 11, + -3072, -3072, -3072, -3072, -3072, -738, 492, -1228, -3072, 436, + -3072, -3072, -3072, -3072, -234, 161, -2281, 27, 2441, -40, + -33, -3072, -21, -3072, -3072, -3072, 596, -3072, -3072, 17, + 55, 1676, -3072, -1047, -3072, -1689, 684, -3072, 1846, 1848, + -2192, -873, -59, -3072, 642, -1667, -2163, -626, 1105, 1698, + 1661, -3072, 401, -2490, -3072, -606, -3072, 410, -3072, -3072, + 639, 1151, -1572, -1567, -3072, -2255, -3072, -526, -409, -3072, + -3072, -3072, -3072, -3072, -2484, -2486, -610, 1123, -3072, 1712, + -3072, -3072, -3072, -3072, 28, -1537, 2861, 683, -3072, 68, + -3072, -3072, -3072, -3072, 90, -3072, 878, -228, -3072, -456, + -665, -796, 1908, 220, 223, -1824, -17, -304, 452, -3072, + -3072, 454, -2129, -1427, 408, -321, 883, -3072, -60, -1259, + -3072, -1901, -1190, -3072, -3072, -770, 2093, -3072, -3072, -3072, + 2199, 2330, -3072, -3072, 2558, 2796, -3072, -920, 2991, -678, + -1019, 1919, -917, 1923, -937, -925, -941, 1924, 1927, 1928, + 1929, 1931, 1939, 1943, -1555, 5403, -816, 3645, -2183, -3072, + -1424, -1594, 1001, 1015, 1016, 48, -3072, -1410, 210, -3072, + -3072, -3072, -3072, -3072, -2725, -3072, -487, -3072, -478, -3072, + -3072, -3072, -1755, -2650, -1785, -3072, -100, 825, -3072, -3072, + 407, -3072, -3072, -3072, -3072, -1523, -3072, 6710, 720, -3072, + -2038, -3072, -3072, -974, -822, -1162, -1012, -1235, -1937, -3072, + -3072, -3072, -3072, -3072, -3072, -1527, -1790, -387, 779, -3072, + -3072, 877, -3072, -3072, -3072, 100, -1499, -1761, -2149, -3072, + -3072, -3072, 787, 1482, 63, -828, -1646, -3072, -1561, -3072, + -3072, 840, -2412, -3072, -3072, 398, -2660, -3072, -3072, 105, + -3072, -628, -1144, -2493, 523, 16, -3072, 1144, -2589, -3072, + -3072, -724, -2703, -1140, -897, -3072, 116, -3072, 354, 122, + -1692, -3072, 5, -3072, -436, -3072, -3072, -2631, -3072, 131, + 135, 2172, -3072, 1127, -3072, -3072, -3072, -3072, -557, -3072, + -635, -633, -3072, -3072, 21, -901, 1600, -3072, 137, 376, + -3072, 942, -3072, 631, 138, -3072, 2072, -471, 139, 1267, + -3072, -3072, -3072, 12, -596, 359, -3072, 1270, -3072, -3072, + 1733, 658, 141, -3072, 433, 18, -3072, -3072, -3072, 92, + 142, 7, -3038, 146, -2835, -1681, -7, -3072, -3072, -3072, + -719, -3072, -2579 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -2082 +#define YYTABLE_NINF -2101 static const yytype_int16 yytable[] = { - 525, 1133, 57, 913, 65, 82, 962, 1237, 1200, 719, - 53, 70, 103, 1030, 1165, 871, 525, 1437, 77, 68, - 857, 69, 99, 523, 883, 981, 1256, 884, 885, 94, - 1803, 1307, 1786, 1814, 1346, 1802, 1949, 2201, 77, 523, - 887, 1489, 784, 1310, 718, 888, 1695, 1767, 853, 2168, - 1595, 1411, 778, 2076, 1410, 522, 1409, 2599, 1407, 2124, - 1849, 2307, 2006, 2634, 2037, 1752, 1773, 1363, 525, 525, - 1777, 816, 559, 2487, 1819, 2589, 1352, 1369, 750, 2705, - 1881, 745, 50, 810, 2101, 2102, 51, 869, 52, 825, - 55, 523, 523, 904, 1807, 56, 59, 60, 3038, 818, - 61, 63, 66, 868, 868, 2991, 1671, 3022, 2572, 67, - 2574, 1674, 896, 1236, 1608, 1242, 80, 1246, 850, 2553, - 1256, 2588, 3035, 816, 816, 2627, 3020, 81, 83, 84, - 2993, 90, 91, 972, 93, 810, 810, 1376, 98, 102, - 975, 1012, 104, 2674, 2675, 2676, 1033, 2489, 964, 2688, - -454, 818, 818, 2884, 2819, 2337, -527, 2889, -371, 2333, - 1054, 1572, 1573, 1054, 2221, -1351, -531, -1929, 900, -1929, - 2224, 2172, 2439, 1210, 3434, -2069, -2069, 3233, 1585, 1211, - -865, -870, 1340, 2332, 820, -870, -1292, -1273, 1054, 1421, - 2696, 537, -1920, -873, -1289, -1289, -1937, 982, -1293, -1292, - -2060, -2060, -2055, -2055, -2078, -2078, -1290, -1290, 2126, -1920, - 1210, -1937, -2080, -2080, -1293, -832, 1211, 2706, 2692, -845, - -860, 3220, 2116, 820, 820, 23, 1146, -873, 1769, 2690, - 3168, 1758, 1679, 2697, 2683, 2116, 820, 3515, 3237, 1805, - 861, 1627, 1189, 1926, 1604, -480, 1629, 1192, 1928, 1461, - 981, 2507, 1675, 1356, 820, 953, -527, 1153, 1054, 2782, - 1817, 1340, -229, 3569, 1256, -1125, -531, -229, 820, 1818, - 2155, 2743, 2745, -1125, 2748, 1778, 1637, 1356, 2156, 1701, - 2468, 2469, 1054, 1340, 1212, 1331, 2329, 2234, 1627, 1007, - 875, 2475, 1628, 1629, 1926, 2479, 875, -1146, 1927, 1928, - 3203, 2713, 3179, 1769, 3311, -1146, -664, 1753, 538, 820, - 1639, 1698, 1787, 1627, 2662, 1790, 1791, 1628, 1629, 1154, - 880, 1212, 1033, 1637, 1332, 3394, 1761, 3134, 1966, 3136, - 2449, 1250, 3540, 1577, 1012, 3039, 3151, 3324, 1151, 2451, - 3570, 3507, 2012, 878, 2462, 2463, 2464, 878, 1637, 1587, - 3, 4, 1751, 2313, 1013, 3354, 2165, 1639, -609, 1747, - 1748, 1966, 1370, -609, 2927, 3355, 1676, 2901, 26, 27, - 28, 2856, 2630, 2858, 2103, 838, 3291, 3564, 3293, 3458, - 1712, 876, 1639, 113, -802, 1019, 1778, 876, 3341, 3013, - 3468, 3165, 2898, 1599, 2765, 2452, 2227, 2196, 3402, 880, - -2054, -2054, 1627, 1801, 2564, 3177, 1464, 105, 2857, 2412, - 3438, 3257, 1471, 3141, 879, 1627, 1821, 3231, 879, 2183, - 2656, 1020, 2907, 3454, 3455, 3202, 1862, 1590, 2897, 788, - 3340, 3185, 3571, 2657, -609, 33, 2127, 1462, 2928, 3190, - 2440, 1213, 3227, 3342, 2184, 3234, -527, 1022, 2908, 1591, - 1637, 3142, 3343, 3239, 2880, 2902, -531, 106, 1600, 3553, - 3235, 3403, 1310, 3180, 2128, 3228, 3166, 114, 1514, 3232, - 3522, 1639, 38, 1699, 3420, 3495, 3344, 839, 1213, 1341, - 3178, 1779, 2197, -609, 1639, 1147, 1763, 1155, 1713, 1156, - 1677, 2627, 880, 2627, 1014, 2754, 880, 3367, 3049, 2813, - 1214, 3040, 1595, 1333, 1215, 40, 2166, 1778, 2631, 1210, - 3183, 3322, 2259, 2228, 1808, 1211, 43, -527, 2314, 3508, - -802, 2903, 2929, 2904, 1926, 1251, 3469, -531, 1927, 1928, - 2450, 1776, 3356, 1589, 3523, 3255, 1216, 1240, -684, 2453, - 3565, 1215, 3541, 2321, 1053, 2330, 1820, 1926, 1776, 3345, - 928, 1927, 1928, 3395, 988, -2082, -2082, -2082, 1341, 2124, - 1749, 1148, 3346, 2235, 3064, 1750, 2782, 954, 3481, 3516, - 3169, 46, 1697, 1241, 1048, 3043, 1026, 1806, 3214, 2129, - 1341, 1690, 1616, 2483, 2318, 862, 719, 3572, 2047, 2131, - 3031, 1958, 1779, 2117, 3510, 1463, 2250, 962, 1572, 1573, - 3028, 2076, 1883, 2312, 1754, 1764, 2555, 1217, 1887, 3300, - 911, 3055, 3470, 2836, 912, 948, 1973, 3554, 3044, 1334, - 1212, 950, 877, 1585, 2378, 2009, 981, 3482, 2502, 3542, - 3332, 3312, 2752, 1994, -1125, 2576, -527, 2684, 2685, 2157, - 535, 1342, 1568, 881, 1217, 2221, -531, 881, 2755, 1803, - 2602, 3236, 2663, 2991, 539, 3014, 2420, 789, 3543, 1776, - 819, 2407, 1476, 3192, 3193, 2597, -1146, 2709, 2797, 2704, - 1590, -454, -454, 2413, 2171, -527, 1306, -527, 2993, -371, - -1929, 2384, -1929, 2058, 2059, -531, -1351, -531, 1582, 2698, - 1582, 2591, 1591, -865, -870, 3159, 3303, 1622, 911, -1292, - -1273, 3304, 912, 2441, 1590, -1920, 1592, 1574, 2126, -1937, - 2446, -1293, -1292, 1779, 1477, 2044, 1604, 1001, 1715, 3427, - 1345, 2688, -1920, 871, -1937, 1604, 1591, -1293, 1575, 1256, - 2097, 1256, 1580, -860, 1891, 3277, 1672, 2173, 1797, 2079, - 1594, 975, 2132, 3419, 1660, 1884, 1943, 980, 2480, 3426, - 3217, 3306, 2480, 2133, 1179, 1715, 858, 1004, 1360, 1361, - 3493, 1185, 1798, 3347, 1716, 2776, 3348, -229, -229, 2098, - 3316, 77, 2877, 1577, 871, 784, 1185, 1213, 3551, 1964, - 1776, 2501, 1360, 1361, 1157, 2255, 977, 525, 1657, 1658, - 1659, 1660, 2312, 1587, 1940, 1941, 1942, 1943, 525, 2421, - 2255, 1716, 2635, 1354, 3150, 1778, 1355, 967, 2865, 2422, - 523, 1655, 1656, 1657, 1658, 1659, 1660, 887, 3059, 3576, - 2638, 523, 888, 2766, 2767, 2768, 2769, 2035, 1934, 1393, - 1394, 864, 1717, 525, 525, 2045, 1244, 1187, 1201, 2878, - 1215, 1152, 816, 2447, 2051, 3548, 2256, 3209, 3491, 1038, - 2940, 1797, 1187, 816, 873, 3020, 1180, 525, 541, 1152, - 1039, 2624, 3152, 2866, 890, 1003, 2369, 874, 2401, 1769, - 818, 1709, 1245, 2402, 1792, 1798, 57, 2285, 65, 82, - 1770, 818, 2447, 1718, 53, 70, 103, 2288, 3218, 2284, - 2291, 2783, 77, 68, 1158, 69, 99, 3115, 889, 2119, - 1590, 1188, 2565, 94, 525, 719, 2545, 1166, 1299, 525, - 2991, 1616, 3228, 2636, 1688, 939, 3007, 1689, 3008, 3500, - 1718, 542, 1591, 892, 868, 3098, 850, 850, 3100, 850, - 3102, 850, 2403, 1811, 2546, 2993, 1592, 1778, 2308, 2309, - 2310, 820, 108, 1217, 3421, 1719, 2456, 907, 1399, 1400, - 2377, 2342, 916, 909, 2379, 2139, 50, 2381, 3336, 3566, - 51, 1299, 52, 2524, 55, 1778, 1457, 3309, 2247, 56, - 59, 60, 980, 1468, 61, 63, 66, -1929, 917, 525, - 525, 2076, 1719, 67, 23, 525, 2389, 940, 525, 525, - 80, 525, 525, 525, 525, 2283, 2394, 1352, 1309, 2827, - 77, 81, 83, 84, 784, 90, 91, 525, 93, 1778, - 1769, 1779, 98, 102, 525, 2294, 104, 939, 2911, 1793, - 2301, 1772, 1938, 1939, 1940, 1941, 1942, 1943, 3296, 1794, - 523, 525, 1299, 1560, 915, 1949, 3480, 523, 2577, 3483, - 2578, -2082, -2082, -2082, 918, 1938, 1939, 1940, 1941, 1942, - 1943, 1893, 2672, 525, 2547, 2286, 1054, 3285, 1454, 2548, - 2289, 2914, 816, 2673, 871, 2661, 1895, 1461, 3286, 816, - 1213, 1054, 525, 919, 810, 3501, 1480, 1803, 1776, 2140, - 1484, 810, 2037, 525, 525, 525, 941, 525, 525, 940, - 818, 719, 3125, 2665, 2677, 1888, 2141, 818, 1889, 2259, - 3323, 2142, 1590, 546, 3502, 971, 927, 1882, 2608, 3398, - 3415, 2445, 109, 1385, 1386, 541, 920, 1882, -2051, -2051, - 3249, 2597, 525, 110, 1591, 942, 1610, 26, 27, 28, - 934, 550, 3546, 2637, 541, 2638, -209, 2669, 1594, 2143, - 525, 525, 1210, 1779, 1703, 1704, 2664, 1710, 1211, 888, - 888, 2008, 888, 3388, 2009, 3389, 1152, 2400, 111, -540, - 943, 2404, 2600, 2033, 2406, 2639, 2034, 1054, 1185, 981, - -608, 1779, 1967, 1186, -540, -608, 525, 1968, 542, -540, - 525, 525, 911, 1393, 1394, 1608, 912, 1566, 1836, 46, - 525, 525, 525, 2060, 33, 525, 2505, 542, 2783, 938, - 2061, 2062, 946, 1019, 2063, 2064, 2065, 1583, 1584, 112, - 1776, 944, 2549, 911, 2714, 1779, 1560, 1615, 2159, 3314, - 2722, 1804, 2160, 2550, 2918, 2326, 868, 1837, 2327, 3440, - -540, 38, 1957, 1626, 1959, 1960, 1627, 2792, 1776, 1020, - 1628, 1629, 2395, 921, 1187, 2396, -608, 1042, 1043, 1044, - -540, 1299, 1047, 1212, 922, 1470, 951, 116, 941, 1469, - 1299, 536, 1838, 1474, 40, 1022, 2359, 952, 2360, 749, - 544, 1637, 2543, 2919, 1210, 43, 1140, 1141, -2082, 1143, - 1211, 1145, 1776, 837, 1299, -2052, -2052, 851, 822, 923, - 956, 2920, 2573, 1188, 955, -608, 2144, 942, 2433, -540, - 957, 2434, 1399, 1400, 988, 1639, 1560, 911, -540, -1273, - 1308, 912, 924, 1839, 1843, 2481, 1844, 1846, 2482, 2649, - 2484, 2651, 719, 2482, 1847, 2652, -2053, -2053, 2653, 1308, - 46, 719, 2700, 2646, 2658, 2648, -208, 2659, 3060, 958, - 925, 1210, 3562, 2725, 2076, 968, 2009, 1211, 980, 2789, - 2777, 986, 2482, 2790, 2784, 2793, 2034, 1876, 2794, 987, - 546, 2795, 971, 2872, 2794, 719, 2873, 2894, 989, 2896, - 525, 2127, 77, 930, 3029, 931, 784, 2396, 908, 546, - 3549, 547, 3550, 944, 992, 1212, 3030, 977, 550, 2327, - 3053, 995, 2921, 3054, 1026, 3061, 2611, 996, 3062, 2128, - 1898, 2922, -2082, 2989, 1885, 3116, 1886, 550, 2034, 932, - 1213, 933, 1985, 1463, 1986, 3250, 997, 1988, 2034, -2082, - 525, 525, 1992, 3575, -2082, 1995, 525, 1996, 525, 3525, - 998, 2000, 2938, 525, 525, 525, 525, 999, 2931, 3251, - 2695, 2457, 2482, 2458, 3537, 2459, 1006, 2460, 525, 525, - 1000, 523, 1212, 525, 3006, 525, -2056, -2056, 525, -540, - 2895, 3280, -2082, 525, 2034, 525, 525, 3287, 525, 2246, - 2009, 3297, 525, 1215, 3298, 1001, 523, 2596, 523, -2057, - -2057, 523, 1223, 816, 2814, 2815, 523, 3016, 1040, 523, - 3330, 523, 2930, 2396, 2939, 523, 1035, 3331, 3364, 3573, - 2327, 2034, 1224, 3424, 3574, 1216, 2396, 1046, 816, 3436, - 816, 818, 3437, 816, 2129, -2058, -2058, 1648, 816, 2130, - 810, 816, 810, 816, 2131, 810, 1560, 816, 911, 3384, - 810, 3385, 912, 810, 1045, 810, 818, 1604, 818, 810, - 3462, 818, 1213, 3463, 1608, 1048, 818, 3506, 1225, 818, - 3437, 818, -2059, -2059, 3547, 818, 1836, 3437, 525, 525, - 2803, 2805, 2806, 2802, 2804, 2801, 2800, 525, 525, 1182, - 1049, 1184, 2036, 2040, 1144, 525, 1217, -2061, -2061, 1150, - 77, 2038, 525, 2039, 2043, -2062, -2062, -2063, -2063, -2064, - -2064, 2042, -2065, -2065, 1161, 1837, -2066, -2066, 1167, -2067, - -2067, 2292, -2068, -2068, 1168, 1215, -2070, -2070, 719, 1213, - 1170, 1210, 525, -2071, -2071, 525, 1171, 1211, 1172, -2082, - 1560, 525, 525, 525, 525, 525, 525, 525, 525, 719, - 3222, -2072, -2072, 525, 525, 525, 1174, 2293, 525, 1175, - 2735, 1183, 525, 1202, 1226, 525, 525, 525, 525, 525, - 525, 525, 525, 525, -2073, -2073, 525, 1205, 523, 981, - -2074, -2074, 1207, 525, 2113, 1299, -2075, -2075, 1365, 2597, - -2077, -2077, 1215, 2168, 2203, -2079, -2079, 2132, 1208, 888, - 1209, 1839, -2081, -2081, 525, 1823, 1824, 1221, 2133, 3196, - 2066, 2067, 2068, 1227, 2069, 2070, 2071, 2072, 2073, 2074, - 2222, 2223, 2097, 1228, 1216, -659, -659, 525, 1217, -663, - -663, -662, -662, 1395, 1396, 1229, 1248, 1626, 525, 525, - 1627, 1158, 1212, 1222, 1628, 1629, 1302, -2082, 1399, 1400, - 3160, 3156, 3157, 2938, 1655, 1656, 1657, 1658, 1659, 1660, - 2727, 2729, 3533, 3534, 3559, 3560, 1239, 1230, 1683, 1684, - 2616, 2617, 1305, 1243, 1247, 1637, 1306, 1311, 1560, 1313, - 1317, 1329, -2082, 1327, 1337, 1330, 1338, 719, 1344, 719, - 1348, 1347, 1353, 2888, 1372, 1217, 1371, 1377, 1435, 1451, - 1448, 1458, 1450, 1465, 1466, 2012, 1472, 1473, 1479, 1639, - 1485, 1483, 1562, 1563, 1565, -836, -843, 1574, 3012, 1578, - 3213, 1232, 2271, 1624, 2275, 3052, 46, -684, 3023, 525, - -685, -833, -834, 1299, 1588, -837, 525, 525, 3524, 2251, - 1589, -835, 3526, 3041, -540, 1668, 1233, 1609, 1619, 2260, - 1621, 2263, 1666, 1365, 2274, 1682, 541, 1692, 1670, -540, - 2278, 1691, 2280, 1696, -540, 1235, 1700, 3363, 3276, 1702, - 3127, 1186, 1188, 1737, 2542, 2287, 820, 1299, 1739, 1741, - 2290, -1337, 1775, 1756, 2295, 2296, 2297, 2298, 1781, 2302, - 2303, 2363, 1774, 1776, 1782, 719, 1783, 3567, 1788, 1213, - 1795, 1800, 1299, 525, 1796, 113, -2082, 1810, 1816, 1826, - 1827, 980, 1828, 1832, 1835, -540, 1841, 1842, 1850, 542, - 1851, 1858, 1860, -2082, 1854, 1857, 1861, 1560, -2082, 1863, - 1864, 525, 525, 1365, 525, -540, 1365, 1365, 1877, 1560, - 525, 525, 525, 525, 525, 525, 2597, 1878, 525, 525, - 525, 525, 525, 525, 525, 525, 525, 525, 2299, 2470, - 1882, 1431, 1215, 525, 525, 2473, -2082, 525, 1890, 1560, - 1954, 2989, 1626, 970, 525, 1627, 1560, 1915, 1917, 1628, - 1629, 3512, 1965, 2362, -540, 1918, 1920, 1923, 1946, 1983, - 1955, 1962, 1987, -540, 2300, 1993, 525, 14, 15, 1997, - 525, 1998, 525, 1999, 23, 2004, 525, 1568, 2010, 2867, - 1637, 2007, 2015, 1575, 1560, 1580, 3363, -2082, 1560, 2011, - 525, 1648, 1299, 523, 1560, 2013, 2014, 2016, 2046, 523, - 2047, 1054, 1627, 3197, 3198, 3328, 2080, 2081, 2084, 3188, - 2087, 2090, 2093, 23, 1639, 2092, 2095, 1560, 2094, 2135, - 2136, 545, 541, 2115, 2138, 816, 2162, 2163, 3363, 525, - 525, 816, 2169, 2181, 23, 1217, 3097, 810, 1430, 1894, - 1896, 984, 2182, 810, 1549, 2186, 879, -1337, 2199, 2212, - 2202, 2213, 2211, 818, 2214, 2216, 2215, 2233, 2237, 818, - 2238, 2241, 2248, 2252, 2253, 2254, 880, 525, 2334, 2324, - 525, 546, 1037, 971, 2328, 525, 525, 3363, 2343, 2552, - 2345, 871, 1608, 2346, 2349, 542, 2347, 2350, 2348, 2364, - 548, 2365, 2367, -2082, 2372, 2373, 549, 1142, 2376, 550, - 525, 525, 3417, 2370, 2371, 525, 2374, 2380, 2397, 2405, - 1951, -2082, 1926, 2435, -540, 1950, 2442, 26, 27, 28, - 2443, 525, 2444, 1730, 525, 525, 525, 2466, -2082, 2448, - 2454, 2474, 1431, -2082, 2486, 2488, 2455, 2493, 3379, 2341, - 2472, 2494, 525, 719, 2495, 822, 2497, 2498, 523, 525, - 2499, 2500, 525, 2503, 2511, 2504, 26, 27, 28, 2512, - 2515, 2514, 3174, 1600, 2516, 2517, 2868, 2544, 2518, 525, - 2519, -2082, 2520, 2521, 2539, 523, 2551, 26, 27, 28, - 2522, 1551, 525, 911, 33, 2560, 1170, 912, 2568, 2536, - 2582, 2537, 523, 2561, 2579, 2566, 2567, 2580, 2989, 525, - 525, -2082, 2584, 2585, 2590, 2592, 1557, 816, 1655, 1656, - 1657, 1658, 1659, 1660, 2593, -665, 525, 2603, 525, 810, - 2604, 38, 2606, 33, 816, 2607, 1648, 1549, 2610, 2614, - 1885, 525, 1362, 2615, 35, 818, 810, 2620, 1754, 2623, - 2622, 2618, 1405, 2626, 33, 2645, 2647, 1803, 2678, 719, - 719, 719, 818, 2679, 40, 2660, 37, 2666, 2911, 2052, - 38, 2667, 2668, 2680, 2912, 43, 2681, 546, 2693, 971, - 2694, 2082, 2699, 2083, 3317, 2712, 2711, 2913, 2715, 2716, - 2723, 38, 44, 2719, 2271, 2271, 2271, 2732, 525, 1582, - 2742, 2750, 549, 40, 1299, 550, 2753, 2756, 2773, 2774, - 2099, 2914, 871, 2915, 43, 2785, 45, 2760, 2786, 2759, - 1680, 2761, 2834, 2762, 40, 981, 2810, 1549, 2799, 2823, - 46, 44, 2835, 2791, 1843, 43, 1844, 1846, -2082, 2847, - 719, 2807, 2817, 2848, 1847, 1560, 2824, 2832, 2838, 2853, - 2862, 2879, 44, 2855, 2859, 45, 2881, 2885, 2883, 2893, - 2926, 2942, 2900, 2906, 2899, 525, 3009, 1620, 3010, 46, - 3033, 3011, 1431, 1431, 1551, 1898, 45, 1623, 1431, 3015, - 525, 980, 3018, 3019, 3037, 3026, 3032, 3045, 3046, 719, - 2869, 3027, 3057, 2327, 3050, 3058, 3083, 3063, 1673, 1557, - 3085, 2916, 3089, 3093, 3106, 3103, 3368, 1678, 3370, 2097, - 1223, 3104, 3107, 3149, 2220, 2220, 3128, 3135, 3138, 3147, - 3140, 2718, 3153, 3154, 1898, 3171, 3155, 525, 3161, 3378, - 1224, 3162, 3163, 3167, 3172, 3181, 3173, 3184, 3186, 3187, - 3191, -2050, -2051, -2052, -2053, -2054, -2082, 3205, -2055, -2056, - 523, -2057, -2058, 1655, 1656, 1657, 1658, 1659, 1660, -2059, - -2061, -2062, 3206, -2063, 1551, 3221, -2064, 525, 3207, 2917, - 3380, 3499, 3382, -2065, 2918, -2066, 1225, 3208, 1365, 1924, - 1925, -2067, 816, 1560, 1152, 1945, -2068, -2070, 1365, 1557, - -2071, 1365, 3223, -2072, 871, -2073, 3238, 3204, -2074, 3460, - 525, 3240, -2075, -2076, -2077, -2078, 525, 525, 3453, 3243, - 818, 3464, -2079, -2080, -2081, -1290, 3210, 2850, 525, 3242, - 3252, 3253, 3211, 2919, 3264, 3219, 3224, 3226, 3246, 3256, - 871, 3258, 525, 3270, 3260, 525, 3266, 525, 3267, 3272, - 3275, 2920, 3448, 3271, 1560, 525, 2934, 1549, 525, 525, - 3279, 3294, 3299, 525, 525, 1053, 3295, 3302, 1926, 3305, - 525, 541, 1927, 1928, 3307, 3319, 1929, 1930, 1931, 3320, - 3329, -1289, 1226, 3327, 3335, 525, 3337, 3338, 3351, 3352, - 3353, 2887, 3365, 2829, 3366, 525, -1337, 1365, 521, 532, - 2036, 2040, 3369, 3372, 557, 3373, 3375, 2871, 77, 2038, - 557, 2039, 2043, 3381, 807, 525, 821, 3386, 3180, 2042, - 824, 557, 833, 3406, 3410, 833, 3416, 3412, 852, 856, - 3413, 1227, 856, 3429, 542, 557, 557, 3422, 3430, 3431, - 3434, 1228, 3439, 3229, 1897, 3441, 3443, 3131, 3446, 3447, - 3459, 1549, 2921, 1229, 3450, 3451, 719, 3452, 3466, 2992, - 719, 2922, 719, 3457, 23, 3477, 807, 807, 3461, 2210, - 3478, 3471, 3484, 3504, 525, 3479, 525, 3485, 3494, 3514, - 3486, 3517, 3496, 3538, 2890, 1230, 3498, 2891, 543, 3515, - 3519, 2271, 852, 3535, 1551, 2994, 3516, 2275, 3552, 856, - 557, 856, 856, 856, 3488, 3563, 3557, 544, 3568, 3048, - 1843, 3577, 1844, 1846, 2943, 3021, 3578, 2496, 2941, 1557, - 1847, 1173, 2279, 2643, 2945, 3393, 2874, 3492, 3456, 2996, - 2997, 2998, 2999, 3000, 3001, 3002, 3003, 3004, 3005, 1232, - 3561, 3194, 2734, 3475, 3042, 2382, 1149, 3545, 3315, 3513, - 3520, 3539, 1766, 3350, 2625, 2650, 525, 871, 3036, 1560, - 3511, 3518, 2910, 2621, 1233, 3509, 545, 2995, 1880, 2728, - 2726, 2689, 2739, -208, 3247, 1840, 525, 525, 3017, 1933, - 2609, 525, 1693, 1235, 525, 1455, 2595, 2240, 1551, 1549, - 1733, 1456, 2764, 3497, 2605, 2208, 1734, 3442, 3371, 2239, - 1738, 811, 2581, 2478, 3274, 3092, 1422, 26, 27, 28, - 2757, 525, 2758, 1557, 2788, 3321, 546, 1457, 547, 1005, - 3445, 991, 2492, 2391, 2392, 2393, 525, 3444, 1552, 2534, - 2812, 2598, 525, 525, 2558, 548, 2508, 525, 1560, 1974, - 3111, 549, 525, 1406, 550, 525, 525, 2556, 871, 1934, - 525, 1299, 913, 3139, 525, 1408, 1412, 1413, 525, 1414, - 1415, 2535, 1416, 2826, 2860, 525, 1417, 3432, 985, 2485, - 2322, 1204, 2575, 23, 33, 1418, 1892, 2177, 2670, 2875, - 2179, 523, 1431, 1431, 1431, 1431, 1431, 1431, 897, 0, - 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, 1431, - 0, 0, 0, 1812, 0, 2601, 2601, 0, 0, 525, - 0, 38, 0, 816, 0, 0, 0, 525, 0, 0, - 0, 0, 0, 0, 0, 810, 1551, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 525, 0, 1549, 0, - 0, 818, 0, 0, 40, 1560, 0, 0, 0, 0, - 1549, 1557, 0, 2174, 0, 43, 0, 1223, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, - 15, 860, 44, 0, 0, 0, 0, 1224, 0, 2992, - 1549, 0, 3175, 0, 0, 0, 0, 1549, 0, 2414, - 2415, 2416, 2417, 2418, 2419, 0, 45, 2423, 2424, 2425, - 2426, 2427, 2428, 2429, 2430, 2431, 2432, 0, 0, 0, - 46, 1552, 0, 71, 0, 23, 26, 27, 28, 0, - 0, 719, 0, 1225, 2932, 1549, 2243, 2245, 0, 1549, - 0, 0, 0, 71, 2933, 1549, 809, 0, 899, 0, - 902, 0, 906, 0, 0, 0, 1016, 0, 0, 525, - 71, 1017, 871, 0, 3230, 0, 1898, 980, 1549, 870, - 525, 1560, 1935, 1936, 1937, 0, 1938, 1939, 1940, 1941, - 1942, 1943, 1431, 1431, 0, 1551, 525, 0, 0, 0, - 0, 0, 0, 33, 0, 2304, 0, 1551, 809, 809, - 886, 0, 0, 2934, 0, 0, 0, 0, 2319, 2319, - 1557, 1552, 0, 0, 1560, 0, 0, 0, 0, 525, - 1018, 0, 1557, 0, 71, 0, 0, 1551, 0, 1226, - 38, 525, 525, 0, 1551, 525, 0, 525, 0, 0, - 0, 856, 0, 0, 0, 0, 856, 0, 0, 856, - 0, 0, 1557, 0, 0, 0, 0, 557, 0, 1557, - 0, 0, 525, 40, 0, 0, 0, 0, 26, 27, - 28, 0, 1551, 0, 43, 0, 1551, 0, 1227, 0, - 0, 1362, 1551, 0, 0, 0, 525, 2399, 1228, 2540, - 2541, 44, 1019, 0, 0, 0, 0, 1557, 1431, 0, - 1229, 1557, 2935, 2796, 2798, 1551, 0, 1557, 0, 0, - 0, 0, 0, 0, 0, 45, 0, 2992, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1020, 46, - 1557, 0, 1230, 0, 0, 33, 0, 0, 0, 719, - 0, 0, 0, 0, 1021, 0, 35, 0, 0, 0, - 0, -1811, 3333, 0, 1022, 0, 0, 0, 0, 525, - 0, 0, 0, 3318, 0, 0, 0, 0, 37, 525, - 0, 525, 38, 525, 1898, 0, 0, 525, 0, 525, - 0, 525, 523, 0, 3325, 3326, 1232, 0, 1023, 0, - 0, 0, 525, 0, 0, 0, 0, 525, 1016, 525, - 0, 0, 0, 1017, 0, 40, 0, 525, 3339, 1199, - 0, 1233, 0, 0, 816, 0, 43, 0, 0, 0, - 719, 0, 0, 0, 0, 525, 3390, 0, 3392, 0, - 1235, 1552, 2936, 44, 1024, 2937, 0, 0, 0, 0, - 0, 1025, 818, 0, 0, 0, 0, 960, 557, 557, - 0, -1811, 0, 0, 0, 3399, 0, 45, 0, 0, - 0, 0, 1018, 0, 0, 1365, 0, 0, 3425, 0, - 0, 46, 525, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 525, 1026, 3428, 0, 1549, 0, 0, 983, - 532, 0, 0, 0, 525, 521, 0, 856, -1811, 0, - 0, 0, 1027, 0, 0, 0, 807, 0, 525, 0, - 1009, 1009, 0, -1811, 0, 1009, 1032, 0, -1811, 0, - 0, 0, 0, -1811, 0, 1552, 525, 0, 833, 833, - 833, 523, -1811, 833, 1019, 0, 0, -1811, 0, 0, - 0, 0, 0, 833, 833, 1776, 833, 0, 833, 0, - 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 856, 0, 0, 816, 0, 525, 557, 0, 0, -1811, - 1020, 1028, 0, 523, 2992, 0, 719, 0, 856, 0, - 929, 0, 0, 0, 0, 936, 1021, 0, 937, -1811, - 0, 818, 856, 821, 0, 0, 1022, 0, 0, 525, - 3099, 0, 0, 0, 0, 816, 0, 0, 0, 3521, - 0, 3399, 0, 525, 525, 525, 0, 0, 0, 0, - 1431, 1431, 523, 1551, 1549, 0, 0, 856, 1304, 1223, - 1023, 0, 0, 818, 0, 3536, 3505, 0, -1811, 1315, - 525, -1811, 0, 856, 856, 856, 856, -1811, 1557, 1224, - 0, 0, 0, 0, 816, 0, 2654, 0, 558, 1336, - 0, 0, 71, 1552, 558, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 558, 1024, 0, 0, 0, - 0, 525, 818, 1025, 0, 1549, 0, -1811, 0, 558, - 558, 1009, 1032, 0, 856, 1225, 0, 1429, 0, 0, - 0, 0, 0, 1009, 1009, 0, 0, 0, 2686, 557, - 0, 0, -1811, 0, 0, 807, 0, 0, 0, 0, - 0, 0, 807, 0, 0, 1026, 2701, 2840, 2841, 0, - 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 1365, 0, 0, 0, 1027, 1365, 0, 0, 0, 1564, - 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, - 0, 1551, 0, 0, 0, 0, 0, 0, 0, 0, - 858, 1362, 0, 1901, 0, 0, 0, 0, 0, 0, - 0, 2740, 0, 2741, 0, 0, 1557, 2746, 0, 2749, - 1549, 1226, 1894, 1896, 0, 0, 0, 0, -1811, 0, - 557, 0, 0, 0, 0, 0, 0, 0, -1811, 0, - 0, 23, 1552, 1028, 0, 0, 0, 0, 1431, 0, - 1902, 0, 1551, 0, 1552, 0, 0, 0, -1811, 0, - -1811, -1811, 0, 0, 0, 0, 994, 0, 0, 0, - 1227, 1903, 0, 3086, 0, 0, 0, 1557, 0, 0, - 1228, 1685, 0, 1687, 1552, 0, 0, 0, 0, 1904, - 0, 1552, 1229, 1905, 0, 0, 0, -1811, 557, 557, - -1811, -1811, -1811, 0, 0, 856, 71, 870, 0, 0, - 0, 0, 0, 0, 0, 0, 1906, 0, 3110, 1907, - 1549, 0, 0, 0, 1230, 0, 0, 0, 1429, 1552, - 0, 0, 0, 1552, 0, 1908, 0, 0, 0, 1552, - 856, 1765, 0, 0, 0, 0, 0, 990, 0, 0, - 0, 0, 0, 856, 0, 3056, 0, 1551, 1002, 0, - 0, 1203, 1552, 0, 1554, 0, 0, -1813, 0, 0, - 856, 0, 0, 3391, 856, 0, 0, 0, 1232, 1813, - 1555, 0, 1557, 0, 26, 27, 28, 0, 0, 0, - 0, 0, 0, 722, 0, 0, 1303, 0, 0, 1549, - 0, 0, 0, 1233, 0, 0, 0, 886, 0, 1431, - 0, 0, 1319, 1321, 1324, 1326, 0, 1626, 0, 0, - 1627, 0, 1235, 0, 1628, 1629, 0, 71, 1909, 0, - 0, 1894, 1896, 0, 0, 0, 1910, 1829, 0, 856, - 0, 0, 0, 1365, 0, 0, 0, 0, 856, 0, - 723, 33, 0, 0, 0, 1637, 0, 1551, 1911, 1873, - 0, 0, -2082, 1424, 0, 0, 724, -1813, 960, 2985, - 0, 0, 0, 960, 0, 557, 557, 0, 557, 960, - 0, 0, 1557, 0, 0, 0, 0, 1912, 38, 1639, - 0, 0, 0, 0, 0, 0, 1053, 0, 0, 1926, - 0, 0, 2686, 1927, 1928, 0, 1549, 1929, 1930, 1931, - 0, 0, 0, 0, -1813, 725, 3176, 0, 0, 0, - 0, 40, 0, 0, 0, 726, 0, 0, 0, -1813, - 0, 0, 43, 0, -1813, 71, 1551, 0, 727, -1813, - 1549, 0, 0, 728, 0, 0, 0, 1554, -1813, 44, - 0, 0, 1431, -1813, 2839, 0, 0, 0, 1429, 1429, - 0, 1557, 0, 1555, 1429, 0, 521, 809, 0, 0, - 0, 0, 729, 45, 809, 0, 0, 0, 0, 1009, - 0, 557, 1969, 0, 0, -1813, -2082, 46, 0, 856, - 0, 807, 0, 807, 0, 0, 807, 0, 0, 0, - 0, 807, 0, -2082, 807, -1813, 807, 0, -2082, 1567, - 807, 0, 557, 0, 557, 730, 0, 0, 0, 731, - 0, 1579, 1549, 0, 0, 0, 0, 0, 0, 0, - 0, 558, 0, 0, 0, 0, 0, 1554, 0, 0, - 0, 0, 0, 1551, 0, 0, -2082, 0, 1606, 0, - 0, 0, 0, 1555, -1813, 0, 0, -1813, 0, 3248, - 0, 0, 0, -1813, 0, 1549, 0, 0, 1557, 0, - 0, 0, 3137, 0, 0, 0, 0, 1551, 0, 1757, - 1552, 0, 0, 544, 0, 0, 0, 1932, 0, 732, - 0, 0, 1784, 0, 0, 0, 0, 0, 0, 0, - 1365, 1648, 1557, -1813, 733, 0, 0, 0, 0, 0, - 1933, 0, 0, 1809, 0, 0, 0, 0, 0, 2075, - 0, 0, 0, 0, 0, 0, 0, 0, -1813, 0, - 0, 2086, 0, 0, 886, 886, 0, 886, 0, 734, - 0, 1556, 735, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 736, 0, 0, 737, 0, 0, 1551, - 0, 3377, 0, 0, 0, 0, 0, 0, 1549, 0, - 960, 0, 0, 1429, 738, 0, 0, 0, 1834, 0, - 1934, 0, 0, 0, 1557, 0, 858, 1853, 739, 0, - 0, 0, 0, 0, 740, 741, 0, 0, 0, 0, - 0, 0, 1551, -2082, 0, 742, 0, 0, 0, 0, - 0, 743, 0, 0, -1813, 0, 0, 2175, 1552, 856, - 0, 856, 558, 558, -1813, 0, 0, 1557, 0, 0, - 0, 856, 0, 2191, 0, 0, 0, 0, 0, 744, - 3225, 0, 0, 0, -1813, 1429, -1813, -1813, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1554, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1362, 0, 0, - 856, 0, 557, 1555, 0, 0, 0, 0, 0, 1552, - 0, 0, 0, -1813, 2242, 2244, -1813, -1813, -1813, 0, - 1765, 557, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 557, 2261, 557, 2265, 1551, 557, 71, 0, 0, - 0, -2082, 557, 0, 557, 0, 0, 0, 1655, 1656, - 1657, 1658, 1659, 1660, 1556, 0, 960, 557, 1981, 0, - 1557, 960, 557, 0, 0, 0, 557, 557, 557, 557, - 558, 557, 557, 0, 0, 0, 0, 0, 3292, 0, - 0, 1554, 0, 0, 0, 0, 0, 0, 2323, 0, - 0, 0, 0, 0, 0, 0, 1315, 1555, 856, 856, - 856, 856, 856, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1552, 0, 0, 0, 0, 2352, - 0, 0, 0, 1935, 1936, 1937, 0, 1938, 1939, 1940, - 1941, 1942, 1943, 0, 0, 0, 0, 0, 2375, 0, - 0, 0, 0, 809, 1556, 809, 0, 2985, 809, 0, - 0, 0, 0, 809, 0, 1549, 809, 0, 809, 0, - 0, 0, 809, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -1828, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1429, 1429, - 1429, 1429, 1429, 1429, 0, 0, 1429, 1429, 1429, 1429, - 1429, 1429, 1429, 1429, 1429, 1429, 0, 0, 0, 0, - 0, 0, 0, 1449, 1552, 0, 0, 0, 0, 1554, - 0, 0, 0, 0, 0, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 1555, 1482, 0, 856, 0, - 0, 0, 0, 0, 0, 71, 0, 0, 807, 0, - 0, 0, 0, 0, 807, 0, 0, 0, 0, 0, - 557, 0, 0, 0, 0, 557, 0, 0, 0, 0, - 0, 0, 3418, -1828, 2490, 2490, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2176, 0, - 2178, 0, 1551, 1552, 0, 0, 0, 0, 1626, 0, - 2188, 1627, 0, 0, 1611, 1628, 1629, 1630, 1631, 1632, - 1633, 1634, 0, 0, 0, 0, 0, 1557, 0, 0, - -1828, 0, 0, 0, 0, 2123, 1635, 0, 0, 0, - 0, 0, 0, 0, 0, -1828, 1637, 0, 0, 2225, - -1828, 0, 0, 1638, 0, -1828, 557, 0, 0, 0, - 2528, 0, 0, 0, -1828, 557, 0, 0, 0, -1828, - 0, 0, 0, 0, 1556, 0, 0, 0, 1554, 0, - 1639, 0, 558, 558, 0, 0, 0, 0, 1429, 1429, - 1554, 0, 0, 0, 1555, 0, 0, 0, 0, 0, - 0, -1828, 0, 0, 886, 0, 1555, 2075, 1626, 0, - 1552, 1627, 0, 1429, 2985, 1628, 1629, 0, 0, 0, - 1554, -1828, 1053, 0, 0, 1926, 0, 1554, 0, 1927, - 1928, 0, 0, 1929, 1930, 1931, 1555, 0, 0, 0, - 807, 0, 0, 1555, 1552, 0, 1637, 2335, 2336, 2338, - 2339, 2340, 557, -2082, 0, 0, 0, 807, 0, 0, - 0, 2191, 0, 0, 0, 1554, 0, 0, 1556, 1554, - -1828, 0, 0, -1828, 0, 1554, 0, 1640, 0, -1828, - 1639, 1555, 0, 0, 0, 1555, 0, 0, 0, 0, - 0, 1555, 0, 0, 1641, 0, 0, 0, 1554, 1642, - 0, 557, 0, 0, 1429, 0, 0, 557, 0, 0, - 0, 0, 0, 0, 1555, 0, 0, 0, 0, -1828, - 0, 0, 1643, 1644, 0, 0, 1552, 1829, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1645, 0, 0, - 0, 2344, 0, 0, -1828, 2842, 0, 0, 0, 0, - 0, 0, 0, 71, 0, 0, 0, 0, 0, 558, - 558, 0, 558, 0, 0, 0, 0, 0, 0, 1552, - 0, 0, 0, 0, 0, 1646, 0, -2082, 1647, 0, - 0, 0, 0, 0, 0, 0, 0, 2461, 0, 0, - 0, 0, 1648, 0, -2082, 1649, 0, 0, 1829, -2082, - 0, 0, 858, 0, 0, 856, 1556, 0, 0, 0, - 0, 0, 0, 2236, 0, 0, 1315, 0, 0, 1829, - 856, 856, 856, 0, 0, 0, 0, 0, 0, 0, - -1828, 0, 0, 557, 0, 856, 1933, -2082, 856, 0, - -1828, 0, 0, 0, 0, 856, 0, 0, 0, 0, - 0, 960, 0, 0, 0, 0, 0, 0, 0, 0, - -1828, 0, -1828, -1828, 0, 558, 0, 0, 0, 0, - 0, 0, 1552, 1829, 1829, 0, 1829, 0, 0, 0, - 809, 0, 0, 0, 0, 0, 809, 0, 0, 0, - 0, 0, 1648, 0, 1650, 0, 2001, 0, 2005, -1828, - 0, 0, -1828, -1828, -1828, 521, 1934, 0, 0, 0, + 525, 914, 57, 53, 65, 82, 872, 103, 1244, 719, + 68, 69, 94, 1140, 884, 1207, 525, 77, 99, 1036, + 1314, 858, 963, 523, 718, 1444, 1263, 70, 1825, 1370, + 1317, 1706, 1960, 1500, 1985, 982, 2184, 77, 784, 523, + 1797, 778, 1353, 1172, 888, 1814, 1778, 1813, 1788, 1418, + 2101, 810, 2217, 1416, 2618, 522, 889, 2591, 2608, 2593, + 2140, 1860, 1784, 1830, 856, 1417, 2323, 2020, 525, 525, + 1763, 817, 1359, 1414, 1606, 50, 2090, 2051, 2653, 1376, + 2117, 2118, 2724, 3046, 51, 52, 3015, 745, 2501, 55, + 1818, 523, 523, 1683, 905, 56, 3017, 1892, 1686, 59, + 870, 3044, 60, 810, 810, 2646, 1243, 61, 1249, 63, + 1253, 2607, 66, 67, 2572, 3062, 80, 3059, 973, 965, + 1263, 976, 81, 817, 817, 2503, 851, 1619, 898, 2707, + 2840, 83, 2693, 2694, 2695, 84, 2908, 90, 91, 93, + 2913, 98, 102, 885, 886, 1014, 104, 1583, 1584, 2188, + -527, 1039, -1313, 2348, -1948, 2142, -1372, -1948, -2074, -2074, + -454, 3137, -2088, -2088, 1596, 2237, 1383, -531, 2353, 2349, + -1313, -371, 2240, 2455, -870, 2482, 2483, 1978, -1310, -1310, + 1347, 1437, 1979, 1061, 3134, 2715, 2489, -875, -1294, -1939, + 2493, -875, 821, -1939, -1956, 1428, 1060, 2725, -1956, -1314, + 1691, -2079, -2079, 1347, -1314, 3264, -2097, -2097, -837, -850, + 3251, -865, -1311, -1311, -878, -2099, -2099, -878, 821, 821, + 1060, 983, 2716, 2711, 2132, 1780, 2709, 3268, 1769, 1022, + 1363, 862, 2521, 819, 1023, 1060, 1816, 1687, 1363, 821, + 876, 537, 1639, 1060, 1153, 2132, 876, 1641, 1060, -480, + -527, 2762, 2764, 1828, 2767, 1937, 3345, 1196, 3575, 1780, + 1939, 982, 1829, -229, 1159, 954, 1764, -531, -229, 1263, + 2681, -1131, 3198, 1199, 1712, 1338, 821, 1649, 1615, -1131, + 1798, 2171, 3604, 1801, 1802, 819, 819, 1008, 1160, 2172, + 3550, 1639, -1152, 1024, 3213, 1640, 1641, 3469, 541, 2345, + -1152, 1588, 2476, 2477, 2478, 2801, 1347, 1789, 3181, 3358, + 2732, 1651, 3234, 1977, 1339, 1257, 3429, 1598, 3265, 3, + 4, 881, -665, 1772, 3503, 3388, 1649, 1039, 881, 3456, + 1726, 877, 3542, 3266, 1157, 3389, 2880, 877, 2882, 1014, + 3063, 2784, 1789, 3209, 1803, 2250, 1015, 3037, 1377, 1006, + 1977, 1688, 3599, 3288, 2026, 2155, 2329, 839, 538, 3605, + 1651, 542, 2951, 1709, 3588, 1025, 2181, 1186, 1568, 1639, + 2702, 3493, 821, 1640, 1641, 3195, 1727, 1758, 1759, 2773, + 2119, -2073, -2073, 2649, 2436, 2922, 2212, 1762, 1937, 1723, + -807, 1192, 1938, 1939, 113, 3171, 3164, 3207, 3166, 105, + 2881, 1026, 3528, 3437, 1649, 2199, 2428, 1780, 1808, 1044, + 879, 3233, 2657, 1487, 2583, 2059, 1639, 1027, 1781, 535, + 1045, 1873, 3515, 3258, 2065, 3518, 3374, 1028, 2465, 1832, + 2200, 2901, 1809, 3172, 3270, 1812, 2952, 2456, 1651, 3325, + -527, 3327, 2964, 1937, 1728, 3259, 2921, 1938, 1939, 106, + 3196, 3606, 1789, 1525, 2904, 1317, 1161, -531, 1162, 840, + 3504, 1029, 3557, 1392, 1393, 1488, 3438, 1194, 3576, 1187, + 1819, 2213, 3208, 1692, 2646, 1689, 2646, 1348, 114, 2156, + -685, 880, 1217, 1774, 2466, 1651, 1016, 3583, 1218, 1804, + 992, 3073, 2832, 1340, 2654, 1729, 2157, 1724, 2902, 1805, + 1348, 2158, 3390, 1154, 3210, 788, 3064, 1030, 1021, 1258, + 3543, -527, 3455, 1790, 1031, 3600, 2182, 2275, 3581, 2650, + 2953, 2330, 3589, 3473, 3267, 1710, -807, 2437, -531, 3088, + 3356, 1606, 2774, 1400, 1401, 989, 559, 2438, 2538, 2159, + 1787, 3340, 750, 546, 3430, 972, 3505, 1831, 1790, 1600, + 789, 2337, 1568, 826, 2023, 3577, 1032, 1730, 2346, 881, + 3350, 3401, 1467, 1765, 2140, 820, 929, 869, 869, 2061, + 3545, 550, 878, 3067, 1817, 1033, 863, 955, 2516, 1155, + 1787, 1760, 3245, 3346, 3578, 1708, 719, 3334, 1630, 1583, + 1584, 2497, 1054, 1219, 3079, 2133, 2328, 1761, 3055, 2266, + 3052, 951, 1775, 1348, 3286, 2655, 3607, 3516, 2682, 1341, + 3068, 1701, 3199, 3038, 1596, 1787, 2574, 2801, 1935, 1936, + 963, 2251, 3551, 3535, 1956, 1894, 1969, 3517, 2467, 2090, + -527, 1898, 901, 2860, 1986, 2595, 1579, 3366, 2771, 1349, + -1131, 2541, 1568, 982, 1034, 2394, 3015, -531, 3558, 3417, + 2173, 2237, 1406, 1407, 865, 2008, 3017, 2621, 1790, 2142, + 2795, -1152, 1352, 1585, 2717, -1313, 2423, -1948, 1814, -527, + -1948, -527, 2187, 2610, 2072, 2073, 1593, -1372, 2429, 1593, + 2400, -454, -454, -1313, 2723, 2728, -531, -870, -531, 1313, + 3337, 1601, -371, 2616, 1601, 3338, 2160, 1102, 1103, 912, + -875, -1294, -1939, 913, 539, 1634, -1939, -1956, 2457, 2707, + 882, -1956, -1314, 1602, 872, 2462, 1602, -1314, 3189, 3308, + 1002, 1586, 1591, 1895, -865, 1787, 1902, 1603, 2816, 976, + 1605, 1684, 2189, 912, 3454, 1367, 1368, 913, 2243, 1808, + 1263, 2113, 1263, 1367, 1368, 1672, 1588, 981, 3222, 3223, + 1220, 3462, 874, 1163, 2058, 1615, 2494, 2271, 1954, 3461, + 2494, 3248, 1220, 1809, 1615, 872, 1598, 3262, -229, -229, + 77, 784, 1610, 2703, 2704, 978, 2925, 2931, 2093, 3536, + 1594, 1595, 2785, 2786, 2787, 2788, 2675, 525, 2328, 2515, + 1975, 1669, 1670, 1671, 1672, 1020, 2889, 821, 525, 2676, + 2049, 1726, 3180, 2932, 1059, 525, 859, 1937, 3537, 2114, + 523, 1938, 1939, 1222, 2271, -2101, -2101, -2101, 2272, 3263, + 1780, 523, 1192, 3357, 888, 2656, 1601, 2657, 523, 1208, + 1893, 1783, 2463, 1004, 525, 525, 889, 1611, 3083, 3423, + 3526, 3424, 817, 1158, 3240, 1223, 3044, 1727, 1602, 2301, + 2691, 2890, 875, 817, 108, 2244, 2692, 2658, 525, 2304, + 817, 1158, 2307, 2385, 2926, 3182, 1568, 1667, 1668, 1669, + 1670, 1671, 1672, 1005, 2463, 2643, 3249, 57, 53, 65, + 82, 931, 103, 932, 1164, 68, 69, 94, 1951, 1952, + 1953, 1954, 77, 99, 2802, 890, 3215, 1439, 1194, 1789, + 2300, 1789, 70, 3259, 3220, 525, 719, 3015, 3122, 1306, + 525, 3124, 3586, 3126, 1639, 3475, 1224, 3017, 891, 912, + 1904, 1173, 3145, 1626, 2143, 1060, 1627, 2135, 2584, 3031, + 2927, 3032, 2928, 3489, 3490, 851, 851, 1789, 851, 2470, + 851, 1949, 1950, 1951, 1952, 1953, 1954, 1195, 2358, 1649, + 50, 3601, 2144, 3611, 893, 2324, 2325, 2326, 2405, 51, + 52, 1568, 1306, 3319, 55, 933, 1729, 934, 2393, 3320, + 56, 2263, 2395, 981, 59, 2397, 3370, 60, 872, 908, + 525, 525, 61, 1651, 63, 3530, 525, 66, 67, 525, + 525, 80, 525, 525, 525, 525, 3343, 81, 2299, 2935, + 77, 784, 2851, 1359, 819, 1316, 83, 2090, 2410, 525, + 84, 525, 90, 91, 93, 819, 98, 102, 2310, 821, + 525, 104, 819, 2317, 109, 3330, 1789, 1822, 1730, 2680, + 1361, 910, 523, 1362, 523, 110, 2417, 525, 1306, 1571, + 1960, 2418, 2938, 523, 810, 1985, 1004, 1601, 917, 912, + -1948, 3450, 2596, 913, 2597, 810, 1400, 1401, 1893, 525, + 1968, 872, 1970, 1971, 817, 2684, 817, 2145, 1192, 1602, + 111, 1906, 2334, 1193, 918, 817, 1060, 2147, 525, 949, + 1402, 1403, 2302, 1603, 1464, 940, 1005, 2305, 1945, 525, + 525, 525, 2696, 525, 525, 1479, 719, 1630, 1568, 916, + 2419, 1814, 2627, 2051, 1439, 1790, 2074, 1790, 912, 2275, + 3155, 1620, 1626, 2075, 2076, -608, 3375, 2077, 2078, 2079, + -608, 112, 2430, 2431, 2432, 2433, 2434, 2435, 928, 525, + 2439, 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, + 919, 2619, 3433, 1790, 1194, 3280, 1060, 525, 525, 935, + 2461, 2683, 2616, 942, 2688, 1714, 1715, 941, 1721, 1601, + -209, 940, 2175, 1720, 1158, 939, 2176, 889, 889, 920, + 889, 3376, 1787, 947, 1787, 1406, 1407, 953, 2416, 1847, + 3377, 1602, 2420, 525, 956, 2422, 1699, 525, 525, 1700, + 982, -608, 943, 1195, 1577, 1605, 46, 525, 525, 525, + 3348, 2733, 525, 957, 3378, 2942, 2802, 2741, 1619, 116, + 1787, 959, 921, 536, 2143, 2375, 23, 2376, 1848, 1147, + 1148, 749, 1150, 1571, 1152, 952, 819, 2719, 819, 1815, + 2148, 1899, 1790, 941, 1900, 838, 958, 819, 2519, 852, + -608, 2149, 2144, 1475, 912, 2811, -1294, 1568, 913, 1482, + 1472, 1480, 969, 3253, 2943, 1485, 942, 2564, 1306, 1568, + 987, 1048, 1049, 1050, 989, 2022, 1053, 1306, 2023, 1007, + 2047, 968, 2944, 2048, 988, 3130, 23, 3379, 945, 2342, + 541, 2411, 2343, 2449, 2412, 2565, 2450, -2070, -2070, 1568, + 3380, 1306, -2071, -2071, 2495, 943, 1568, 2496, 2471, 1787, + 2472, -2101, -2101, -2101, 1850, 1949, 1950, 1951, 1952, 1953, + 1954, 998, 2498, 1571, 2592, 2496, 2562, 2559, 2560, 2671, + 990, 1854, 2672, 1855, 1857, 2677, 1858, 993, 2678, 719, + 944, 996, 1847, 2744, 1439, 1439, 2023, 1568, 719, 922, + 1439, 1568, 2796, 542, 1887, 2808, 2803, 1568, 2496, 2809, + 923, 3084, 2048, -2072, -2072, 981, 2665, 2145, 2667, 26, + 27, 28, 2146, 2812, 1009, 2814, 2813, 2147, 2813, 997, + 1568, 1848, 719, 2945, -2075, -2075, 3597, 525, 77, 784, + 2090, 945, 2946, 978, 999, 924, 1025, 1909, 2896, 869, + 2615, 2897, 3053, -2076, -2076, 2412, 3584, 3560, 3585, 3054, + 3077, 3085, 2343, 3078, 3086, 2566, 1849, 2473, 925, 2474, + 2567, 1217, 3572, -2077, -2077, 3146, 3013, 1218, 2048, 26, + 27, 28, 1026, 2630, 1461, 1472, 33, 525, 525, 1468, + 1469, 1470, 1000, 525, 3281, 525, 926, 2048, 1473, 3610, + 525, 525, 525, 525, 2714, 2668, 1491, 2670, 1028, 3282, + 1495, 3314, 2496, 1001, 2048, 525, 525, 1850, 523, 2962, + 823, 3030, 2955, 38, 525, 3321, 525, 3608, 2023, 525, + 3331, 2919, 3609, 3332, 525, 1315, 525, 525, 3364, 525, + 1002, 2412, 2954, 525, 2963, 1041, 33, 523, 1052, 523, + 817, 3381, 523, 1046, 3382, 3365, 40, 523, 2343, 810, + 523, 810, 523, 1051, 810, 3398, 523, 43, 2048, 810, + 3459, 3040, 810, 2412, 810, 1054, 2833, 2834, 810, 817, + 2148, 817, 1219, 38, 817, 546, 2918, 972, 2920, 817, + 3471, 2149, 817, 3472, 817, -2078, -2078, 1571, 817, 1999, + 1230, 2000, 3497, 3541, 2002, 3498, 3472, 1055, 3582, 2006, + 909, 3472, 2009, 550, 2010, 1151, 40, 3419, 2014, 3420, + 1231, 1025, 46, 2568, 1189, 1167, 1191, 43, 1619, 525, + 525, 2822, 2824, 2825, 2569, 2820, 2050, 1032, 525, 525, + 2183, 1615, 1174, 2052, 2053, 2056, 525, 2821, 2823, 821, + 77, 2057, 1175, 525, 2819, 1177, 1474, 1026, -2080, -2080, + 2054, -2081, -2081, 2080, 2081, 2082, 1232, 2083, 2084, 2085, + 2086, 2087, 2088, 1481, -2082, -2082, 1181, 541, 1178, 719, + 525, 1182, 46, 1028, 525, 1439, 1179, 525, -2083, -2083, + 2238, 2239, 1571, 525, 525, 525, 525, 525, 525, 525, + 525, 719, -1358, 1217, 1209, 525, 525, 525, 1190, 1218, + 525, 1212, 819, 1214, 525, 1215, 2129, 525, 525, 525, + 525, 525, 525, 525, 525, 525, -2084, -2084, 525, 1216, + 523, 1228, 2754, -2085, -2085, 525, 1229, 1306, 1246, 1220, + 542, 819, 2184, 819, 1250, 982, 819, -2086, -2086, 2219, + 1568, 819, -2087, -2087, 819, 525, 819, 869, -2089, -2089, + 819, 889, 1233, -2090, -2090, -2091, -2091, 3227, -2092, -2092, + 14, 15, 2616, -2093, -2093, -2094, -2094, 1254, 525, 1309, + 2113, 1164, -2096, -2096, 1255, 879, -2098, -2098, 1312, 525, + 525, -2100, -2100, 1313, 2357, 1834, 1835, 1318, 1221, 1320, + -609, 1324, 1222, -660, -660, -609, 3190, -664, -664, -663, + -663, 1234, 1032, 1334, 1219, 1336, 23, 1337, 2864, 2865, + 1344, 1235, 1217, 3186, 3187, 2962, 2746, 2748, 1218, 1571, + 1345, 1474, 1351, 1236, 1223, 1406, 1407, 1354, 719, 1355, + 719, 3568, 3569, 3594, 3595, 1695, 1696, 2635, 2636, 1360, + 1378, 1455, 1458, 2287, 1379, 2291, 880, 1465, 1384, 1442, + 1457, 1476, 1217, 2912, 1477, 1237, 1483, 1484, 1218, 1494, + 2026, 1490, 3244, 3047, 1573, 1496, -609, 1574, -841, -848, + 525, 1576, 1585, 3036, 1306, 46, 1568, 525, 525, -685, + 3065, 3076, 1589, -686, -838, -839, -842, 1599, 1439, 1439, + 1439, 1439, 1439, 1439, -840, 1224, 1439, 1439, 1439, 1439, + 1439, 1439, 1439, 1439, 1439, 1439, 1600, 3559, 1621, 1239, + 3157, 3561, 546, 1631, 972, -609, 3307, 3397, 1306, 1633, + 1678, 1680, 1682, 1219, 881, 1896, 1217, 1897, 1702, 1694, + 1707, 1703, 1218, 1711, 1240, 1713, 719, 549, 1193, 1195, + 550, 1748, 1568, 1306, 525, 1750, 1752, 1230, 2379, 26, + 27, 28, 981, 1242, 1217, 1767, 1786, 1794, 1785, 1787, + 1218, 1220, 1792, 1219, 1793, 1799, 3602, 1231, 1571, 1806, + 1811, 1807, 525, 525, 1821, 525, 113, 1827, 1837, 1838, + 1571, 525, 525, 525, 525, 525, 525, 1839, 1843, 525, + 525, 525, 525, 525, 525, 525, 525, 525, 525, 1852, + 1846, 1853, 1861, 1862, 525, 525, 3080, 1865, 525, 1869, + 1571, 1868, 1871, 1232, 1872, 525, 33, 1571, 1874, 1875, + 1247, 1889, 1888, 2616, 1222, 1893, 3013, 35, 1901, 1926, + 1928, 1929, 1931, 1934, 1957, 1996, 1966, 1219, 1965, 525, + 1973, 1976, 2001, 1998, 525, 2007, 525, 1568, 2011, 37, + 525, 2012, 2013, 38, 3218, 2018, 1248, 2021, 1571, 1579, + 1586, 2024, 1571, 1591, 525, 1219, 1306, 523, 1571, 3547, + 3397, 2025, 2029, 523, 2030, 882, 2061, 2027, 2028, 810, + 1220, 2060, 1060, 1439, 1439, 810, 40, 1639, 2094, 2098, + 2095, 1571, 2102, 2108, 3228, 3229, 2105, 43, 2131, 817, + 2107, 3362, 2109, 525, 525, 817, 2152, 1985, 2151, 1233, + 2154, 2110, 3397, 2178, 44, -540, 2179, 2185, 2197, 2484, + 1220, 2198, 880, 1022, 2218, 2487, 2215, 1224, 1023, 2202, + -540, 3121, 2228, 2891, 2229, -540, 2227, 2253, 45, 1251, + 2230, 525, 2231, 1222, 2232, 525, 2249, 1568, 872, 2254, + 525, 525, 46, 2268, 2270, 2340, 2257, 2269, 1234, 2264, + 2344, 3397, 881, 2350, 2359, 2361, 2362, 2363, 1235, 2365, + 2366, 2380, 3206, 1619, 1372, 1252, 525, 525, 2381, 2262, + 1236, 525, 2364, 1222, 3452, 2383, -540, 1024, 23, 2388, + 2386, 2389, 2390, 2387, 1220, 2392, 2413, 525, 2396, 1439, + 525, 525, 525, 2421, 1962, 1937, -540, 3413, 2451, 1961, + 2458, 2459, 1237, 2460, 2464, 1223, 2488, 2468, 525, 719, + 2469, 2480, 1220, 2486, 523, 525, 2500, 2502, 525, 2507, + 2511, 1568, 2508, 2509, 2512, 2518, 2513, 2514, 2545, 2517, + 2525, 2526, 2531, 2529, 1611, 525, 1224, 2528, 2530, 2532, + 2535, 523, 2533, 2308, 2534, -540, 2558, 1222, 525, 1025, + 2536, 819, 3204, 810, -540, 2555, 1239, 819, 523, 2563, + 2579, 2587, 2598, 985, 2541, 525, 525, 2556, 2570, 2580, + 810, 2315, 2585, 817, 2601, 1222, 1224, 3013, 2586, 2309, + 2603, 1240, 525, 2599, 525, 1026, 2604, 2611, 2609, 2612, + 817, -666, 2622, 2625, -1830, 1043, 2623, 525, 541, 2626, + 1242, 1027, 2629, 2633, 1636, 3279, 2634, 2316, 2639, 1765, + 2892, 1028, 2637, 2642, 2645, 719, 719, 719, 2641, 2664, + 1149, 26, 27, 28, 2666, 2697, 2698, 2699, 1568, 2713, + 2287, 2287, 2287, 2679, 2267, 1372, 2685, 2718, 2686, 2687, + 1814, 2700, 3351, 2712, 2276, 1029, 2279, 2730, 2731, 2290, + 1224, 2735, 2734, 2738, 525, 2294, 2742, 2296, 2751, 872, + 1306, 542, 1568, 1593, 2761, 2769, 2003, 2772, 823, 2775, + 2303, 2779, 2792, 2778, 2793, 2306, 2780, 2804, 1224, 2311, + 2312, 2313, 2314, 2781, 2318, 2319, 2805, 2818, 33, 2829, + 1854, 1030, 1855, 1857, -1830, 1858, 719, 2826, 1031, 982, + 2810, 1571, 2837, 2847, 2836, -540, 2856, 2848, 2935, 2858, + 2877, 1909, 2862, 2886, 2936, 1372, 2905, 2859, 1372, 1372, + 2917, 525, 2872, 2909, 2871, 38, 2950, 2937, 2966, 2883, + 1630, 2879, 2903, 2923, 544, 819, 525, 981, 3057, 2907, + 1032, -1830, 2924, 2930, 1568, 719, 3033, 3034, 3035, 3042, + 3039, 2938, 819, 2939, 3043, 1369, -1830, 3050, 40, 1033, + 1909, -1830, 3051, 3056, 3061, 1412, -1830, 3069, 3070, 43, + 3074, 2343, 3081, 3082, 912, -1830, 3087, 1177, 913, 3109, + -1830, 71, 2113, 525, 3113, 3117, 44, 1568, -540, 3107, + 3127, 3128, 3131, 1315, 3132, 3158, 3165, 3168, 3170, 3177, + -208, 71, 3179, -540, 809, 3402, 523, 3404, -540, 3183, + 45, 3412, -1830, 3184, 1439, 1439, 3185, 3191, 71, 3197, + 3201, 525, 3193, 3192, 2893, 3202, 3211, 871, 1034, 3203, + 3214, 3216, -1830, 2004, 3217, 3221, -2069, 1571, 817, 1158, + -2070, 2940, 872, 546, -2071, 547, 3414, -2072, 3416, -2073, + 3236, 1905, 1907, 3534, 525, 3237, 809, 809, 887, -540, + 525, 525, 3495, 3238, 3252, -2074, 2874, -2075, -2076, -2077, + -2078, 550, 3235, -2080, -2081, 525, -2082, -2083, -2084, -540, + 872, -1830, 71, 3254, -1830, 1632, 3499, -2085, -2086, 3488, + -1830, 525, -2087, -2089, 525, 1635, 525, 1568, -2090, -2091, + -2092, -2093, -2094, 1571, 525, -2095, 3239, 525, 525, 2941, + -2096, -2097, 525, 525, 2942, -2098, -2099, 1685, -2100, 525, + -1311, 3241, 3242, 3250, 3269, 3255, 1690, 3483, -540, 3271, + -1830, 2911, 3257, 3273, 525, 3274, 3277, -540, 3283, 3287, + 3284, 3289, 2050, 3295, 525, 3301, 3298, 3302, 3291, 2052, + 2053, 2056, 3297, 521, 532, -1830, 77, 2057, 3303, 557, + 3306, 3310, 1230, 2943, 525, 557, 2054, 3309, 3313, 807, + 3328, 822, 2895, 3329, 3333, 825, 557, 834, 3336, 3339, + 834, 2944, 1231, 854, 854, 3353, 3341, 854, 3354, -1310, + 557, 557, 3361, 3363, 3369, 3371, 3372, 3385, 3386, 3387, + 819, 3406, 3399, 3400, 3403, 719, 3409, 3415, 3016, 719, + 3421, 719, 1439, 859, 3407, 3441, 3210, 3445, 3447, 3448, + 2287, 807, 807, 525, 3018, 525, 2291, 3464, 1232, 3451, + 1022, 3465, 3466, 3457, 3469, 1023, 3474, 1439, 3476, 3478, + 3161, -1830, 3481, 3482, 3487, 1230, 3485, 854, 3486, 3072, + 3492, -1830, 3494, 541, 854, 557, 854, 854, 854, 1854, + 1896, 1855, 1857, 3496, 1858, 1231, 3501, 3506, 3512, 3513, + 3514, -1830, 3519, -1830, -1830, 2066, 3520, 541, -1358, 3521, + 3045, 3539, 2945, 3529, 3531, 3523, 3533, 2096, -540, 2097, + 3549, 2946, 3552, 3554, 1024, 3570, 3573, 872, 2958, 3550, + 3551, 3587, -1358, 3598, 3592, 525, 3603, 3612, 1571, 3066, + -1830, 1232, 2956, -1830, -1830, -1830, 542, 2115, 3613, 1180, + 2969, 2295, 2957, 2662, 1233, 525, 525, 2965, 3428, 2898, + 525, 3527, 3491, 525, 3596, 2398, 3224, 2753, 1059, 1156, + 542, 1937, 3510, 3580, 3349, 1938, 1939, 3548, 2378, 1940, + 1941, 1942, 3555, 1908, 3574, 1777, 3384, 912, 1568, 2644, + 525, 913, 2669, 3546, 3553, 2934, 1025, 3060, 2640, 23, + 543, 3544, 1891, 1234, 1203, 3019, 2747, 2745, 1439, 2708, + 525, 2958, 1851, 1235, 3278, 2628, 525, 525, 2758, 544, + 1704, 525, 1571, 872, 971, 1236, 525, 2614, 1744, 525, + 525, 1462, 1026, 1463, 525, 1306, 2256, 1233, 525, 3041, + 2783, 2624, 525, 722, 914, 3532, 2224, 3477, 1027, 525, + 2236, 2236, 3405, 2255, 811, 2600, 1059, 1237, 1028, 1937, + 3116, 2492, 3305, 1938, 1939, 523, 1745, 1940, 1941, 1942, + 1429, 2737, 2777, 2776, 2807, 3355, 3226, 810, 545, 1413, + 2407, 2506, 1749, 1415, 1419, -208, 1234, 1420, 1421, 1422, + 3480, 1423, 1029, 525, 2408, 2409, 1235, 817, 3479, 1424, + 723, 525, 545, 1425, 2553, 2831, 2617, 2577, 1236, 2522, + 2959, 1239, 2575, 1204, 1372, 1987, 724, 1464, 3140, 3169, + 525, 2554, 2850, 2884, 1372, 3141, 3467, 1372, 546, 1571, + 547, 986, 1903, 2499, 2338, 1211, 1240, 2193, 1030, 2899, + 1237, 2195, 26, 27, 28, 1031, 0, 548, 2689, 0, + 71, 1439, 546, 549, 972, 1242, 550, 1823, 0, 1943, + 0, 0, 0, 3016, 0, 725, 0, 0, 0, 0, + 0, 548, 0, 0, 0, 726, 0, 549, 0, 0, + 550, 0, 1944, 0, 0, 0, 0, 1032, 727, 0, + 0, 0, 0, 728, 1239, 0, 3260, 0, 0, 0, + 0, 0, 0, 0, 0, 719, 1033, 0, 0, 33, + 0, 0, 0, 0, 0, 0, 0, 23, 0, 1240, + 1909, 0, 729, 1372, 0, 0, 0, 872, 0, 0, + 0, 0, 0, 525, 0, 0, 0, 0, 1242, 0, + 2960, 981, 0, 2961, 525, 1571, 38, 2252, 1638, 0, + 0, 1639, 1945, 0, 3261, 1640, 1641, 0, 0, 819, + 525, 0, 0, 0, 0, 730, 0, 0, 0, 731, + 1944, 0, 0, 0, 0, 1034, 0, 0, 0, 40, + 1205, 0, 0, 0, 0, 0, 1649, 0, 1571, 0, + 43, 0, 0, -2101, 525, 0, 0, 2190, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 44, 0, 1560, + 0, 525, 525, 0, 0, 525, 854, 525, 0, 0, + 1651, 854, 0, 0, 854, 0, 0, 2914, 0, 0, + 2915, 45, 557, 544, 0, 23, 0, 0, 0, 732, + 1945, 0, 525, 0, 0, 46, 2510, 0, 0, 0, + 0, 0, 0, 1787, 733, 0, 0, 2967, 0, 0, + 26, 27, 28, 0, 71, 871, 525, 1439, 0, 2259, + 2261, 0, 3020, 3021, 3022, 3023, 3024, 3025, 3026, 3027, + 3028, 3029, 0, 0, 0, 2561, 0, 0, 0, 734, + 0, 0, 735, 0, 0, 0, 0, 0, 3016, 0, + 0, 0, 0, 736, 0, 991, 737, 0, 0, 0, + 0, 0, 0, 0, 0, 1562, 1003, -2101, 0, 0, + 719, 0, 0, 1019, 738, 0, 0, 33, 2320, 0, + 0, 0, 0, 0, -2101, 1909, 0, 0, 739, -2101, + 525, 2335, 2335, 0, 740, 741, 0, 0, 0, 3367, + 525, 0, 525, 0, 525, 742, 0, 0, 525, 0, + 525, 743, 525, 523, 38, 1946, 1947, 1948, 887, 1949, + 1950, 1951, 1952, 1953, 1954, 0, 525, -2101, 26, 27, + 28, 525, 0, 525, 0, 0, 71, 0, 0, 744, + 0, 525, 0, 1560, 0, 817, 0, 40, 0, 0, + 0, 0, 0, 2594, 719, 0, 0, 0, 43, 525, + 0, 0, 0, 0, 1369, 0, 0, 0, 0, 3434, + 2415, 0, 961, 557, 557, 44, 3425, 0, 3427, 0, + 0, 1059, 1660, 0, 1937, 0, 2620, 2620, 1938, 1939, + 0, 0, 1940, 1941, 1942, 33, 1563, 0, 0, 45, + 0, 0, 0, 1946, 1947, 1948, 525, 1949, 1950, 1951, + 1952, 1953, 1954, 46, 984, 532, 525, 0, 3460, 0, + 521, 0, 854, 0, 0, 0, 0, 0, 525, 0, + 0, 807, 38, 1560, 3463, 1011, 1011, 0, 807, 0, + 0, 1011, 1038, 525, 71, 0, 0, 0, 0, 1562, + 0, 0, 0, 0, 834, 834, 834, 0, 0, 834, + 0, 525, 0, 0, 0, 40, 523, 1106, 1106, 834, + 834, 0, 834, 0, 834, 0, 43, 809, 0, 1003, + 3205, 0, 0, 0, -2101, 525, 854, 0, 809, 0, + 0, 0, 557, 44, 0, 0, 0, 0, 817, 0, + 525, 0, 0, 0, 854, 0, 0, 819, 523, 3016, + 0, 719, 0, 0, 0, 0, 0, 45, 854, 822, + 0, 1638, 0, 1578, 1639, 0, 3434, 0, 1640, 1641, + 0, 46, 0, 0, 525, 1590, 0, 0, 0, 1562, + 817, 0, 0, 0, 0, 0, 0, 0, 525, 525, + 525, 0, 0, 854, 1311, 0, 0, 523, 0, 1649, + 3556, 0, 1617, 0, 0, 1322, -2101, 0, 0, 854, + 854, 854, 854, 0, -1832, 525, 0, 0, 0, 0, + 1563, 0, 0, 0, 0, 1343, 3571, 0, 0, 817, + 0, 0, -2101, 1651, 0, 1944, 0, 0, 0, 1667, + 1668, 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 525, 1011, 1038, 0, + 854, 0, 0, 1436, 1565, 0, 0, 0, 0, 1011, + 1011, 0, 0, 0, 0, 0, 557, 0, 0, 0, + 0, 0, 807, 0, 807, 0, 0, 0, 0, 887, + 887, 0, 887, 807, 0, 0, 0, 1560, 2571, 0, + 819, 0, 0, 557, 0, 1945, 0, 0, 0, 0, + 1563, 0, 2815, 2817, -1832, 0, 1059, 0, 0, 1937, + 1575, 1912, 0, 1938, 1939, 0, 0, 1940, 1941, 1942, + -2101, 0, 0, 0, 0, 0, 0, 0, 1059, 0, + 0, 1937, 819, 0, 2853, 1938, 1939, -2101, 0, 1940, + 1941, 1942, -2101, 0, 0, 0, 0, 0, 0, 0, + 0, -1832, 0, 0, 0, 0, 2854, 1638, 1913, 0, + 1639, 557, 0, 0, 1640, 1641, -1832, 0, 0, 0, + 0, -1832, 0, 0, 2673, 0, -1832, 0, 0, 1914, + -2101, 819, 1560, 0, 0, -1832, 0, 3352, 0, 0, + -1832, 0, 0, 1562, 0, 1649, 0, 1915, 0, 0, + 0, 1916, -2101, 0, 0, 0, 0, 0, 0, 3359, + 3360, 0, 0, 0, 1698, 0, 0, 0, 0, 0, + 0, 0, -1832, 0, 1917, 0, 2705, 1918, 0, 1651, + 557, 557, 0, 3373, 0, 1660, 0, 854, 1565, 0, + 0, 0, -1832, 1919, 2720, 0, 0, 0, 0, 0, + 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, + 1436, 1106, 1106, 0, 0, 0, 0, 0, 0, 1372, + 0, 0, 854, 1776, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 854, 0, 0, 1562, 1369, + 0, -1832, 1566, 0, -1832, 0, 0, 0, 0, 2759, + -1832, 2760, 854, 0, 0, 2765, 854, 2768, 1946, 1947, + 1948, 1824, 1949, 1950, 1951, 1952, 1953, 1954, 0, 1560, + 1944, 0, 0, 0, 1563, 0, -2101, 0, 1565, 0, + 0, 0, 0, 0, 0, 0, 1920, -2101, 0, 0, + -1832, 0, 1944, -2101, 1921, 0, 0, 0, -2101, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 809, 0, 809, -1832, 1922, 809, 0, 1840, + 0, 854, 809, 0, 0, 809, 0, 809, 0, 0, + 854, 809, 0, 0, 0, 1059, -2101, 0, 1937, 0, + 1945, 1884, 1938, 1939, 0, 1923, 1940, 1941, 1942, 0, + 961, 0, 0, 0, 3123, 961, 0, 557, 557, 0, + 557, 961, 1945, 3148, 0, 0, 0, 0, 0, 1563, + 0, 0, 0, 859, 0, 1562, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1660, 0, 0, 0, -2101, 0, 0, 0, 0, + 0, -1832, 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, + 0, -1832, 0, 0, 71, 3540, 0, 0, 1560, 0, + 0, 0, 0, 0, 0, 0, 1566, 0, 0, 0, + 1560, -1832, 0, -1832, -1832, 0, 0, 1567, 0, 0, + 1436, 1436, 0, 0, 0, 0, 1436, 0, 521, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1560, 1011, 0, 557, 1980, 0, 0, 1560, 1106, 1106, + -1832, 854, 0, -1832, -1832, -1832, 0, 807, 0, 807, + 0, 0, 807, 23, 0, 0, 0, 807, 0, 1106, + 807, 0, 807, -2101, 0, 2139, 807, 0, 557, 1372, + 557, 0, 1565, 0, 1372, 0, 1563, 0, 1560, 0, + 3009, 0, 1560, 0, 0, 0, 1566, 0, 1560, 0, + 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1562, 0, 0, 0, + 0, 1560, 0, 2705, 0, 0, 0, 0, 0, 1944, + 0, 1905, 1907, 1946, 1947, 1948, 0, 1949, 1950, 1951, + 1952, 1953, 1954, 887, 0, 0, 1562, 0, 0, 0, + 0, 0, 0, 1562, 0, 1946, 1947, 1948, 0, 1949, + 1950, 1951, 1952, 1953, 1954, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1565, 0, 0, + 0, -2101, 0, 0, 0, 2089, 0, 0, 1667, 1668, + 1669, 1670, 1671, 1672, 1562, 3426, 0, 557, 1562, 1945, + 0, 1567, 0, 0, 1562, 0, 26, 27, 28, 0, + 0, 0, 0, 0, 0, 853, 0, 0, 0, 861, + 0, 0, 0, 0, 0, 0, 0, 1562, 0, 0, + 0, 0, 0, 0, 0, 1563, 0, 961, 0, 0, + 1436, 0, 0, 0, 0, 0, 0, 1563, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1638, 0, + 0, 1639, 0, 0, 0, 1640, 1641, 0, 1106, -2101, + -2101, -2101, 0, 33, 0, 0, 0, 1563, 0, 897, + 2360, 0, 0, 2191, 1563, 854, 900, 854, 903, 0, + 907, 1567, 71, 0, 0, 0, 1649, 854, 3167, 2207, + 0, 0, 0, 1650, 0, 0, 0, 0, 0, 0, + 38, 1436, 0, 0, 1565, 0, 0, 0, 0, 0, + 1566, 0, 0, 0, 0, 1563, 0, 0, 0, 1563, + 1651, 0, 0, 0, 0, 1563, 854, 0, 557, 0, + 0, 0, 0, 40, 0, 0, 1905, 1907, 0, 0, + 2258, 2260, 0, 0, 43, 0, 1776, 557, 1563, 1372, + 0, 0, 0, 0, 0, 0, 0, 557, 2277, 557, + 2281, 44, 557, 0, 0, 0, 0, 0, 557, 0, + 557, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 961, 557, 0, 45, 0, 961, 557, 0, + 0, 0, 557, 557, 557, 557, 0, 557, 557, 46, + 0, 0, 1946, 1947, 1948, 1566, 1949, 1950, 1951, 1952, + 1953, 1954, 809, 0, 2339, 0, 0, 1652, 809, 0, + 0, 0, 1322, 0, 854, 854, 854, 854, 854, 0, + 0, 1560, 0, 0, 1653, 0, 0, 0, 0, 1654, + 0, 0, 0, 0, 0, 2368, 0, 0, 0, 0, + 0, 0, 0, 1565, 0, 0, 3256, 0, 0, 0, + 0, 0, 0, 0, 2391, 1565, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1657, 0, 0, + 0, 0, 0, 1369, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1565, 0, 0, 0, 0, + 0, 0, 1565, 0, 0, 1567, 0, 0, 0, 0, + 0, 0, 0, 0, 1436, 1436, 1436, 1436, 1436, 1436, + 0, 0, 1436, 1436, 1436, 1436, 1436, 1436, 1436, 1436, + 1436, 1436, 1660, 0, 0, 0, 0, 1562, 0, 0, + 0, 0, 1566, 1565, 0, 0, 0, 1565, 0, 1617, + 0, 0, 557, 1565, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 854, 1560, 0, 2139, + 3326, 0, 0, 0, 0, 0, 1565, 807, 0, 1059, + 0, 0, 1937, 807, 0, 2581, 1938, 1939, 1022, 557, + 1940, 1941, 1942, 1023, 557, 0, 809, 0, 0, 0, + 1567, 0, 0, 2504, 2504, 0, 0, 3149, 0, 0, + 1372, 0, 1438, 809, 0, 0, 0, 0, 0, 0, + 0, 0, -1847, 0, 0, 558, 0, 0, 0, 0, + 0, 558, 0, 1560, 1662, 808, 0, 0, 0, 0, + 3009, 0, 558, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1024, 0, 0, 0, 558, 558, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1563, 0, + 0, 0, 0, 1562, 0, 557, 0, 0, 0, 0, + 2547, 0, 0, 0, 0, 557, 0, 808, 808, 0, + 0, 1566, 0, 1059, 0, 0, 1937, 0, 0, 0, + 1938, 1939, 0, 1566, 1940, 1941, 1942, 0, 930, 1436, + 1436, 0, 0, 937, 0, 0, 938, 0, 0, 0, + 0, 558, -1847, 0, 1025, 0, 0, 0, 2089, 0, + 0, 0, 0, 1566, 1436, 0, 0, 1567, 1560, 1562, + 1566, 0, 1663, 0, 0, -2101, -2101, -2101, 0, 1667, + 1668, 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, + 1026, 807, 0, 0, 0, 0, 0, 0, 3453, -1847, + 871, 0, 0, 557, 0, 0, 1027, 0, 807, 0, + 0, 1566, 2207, 0, -1847, 1566, 1028, 0, 0, -1847, + 0, 1566, 0, 1944, -1847, 0, 0, 0, 0, 0, + 0, 0, 0, -1847, 1563, 0, 0, 0, -1847, 0, + 1741, 0, 0, 0, 1566, 0, 0, 0, 0, 1438, + 1029, 0, 557, 0, 0, 1436, 0, 1106, 557, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1560, 0, + -1847, 1206, 0, 0, 1562, 0, 0, 0, 1840, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + -1847, 0, 0, 1945, 0, 0, 1030, 0, 0, 0, + 1563, 0, 0, 1031, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1567, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1565, 0, 1567, 0, + 0, 3009, 0, 0, 0, 0, 0, -2101, 0, -1847, + 0, 0, -1847, 0, 0, 1032, 0, 0, -1847, 1840, + 0, 0, 1560, 0, 0, 0, 854, 0, 1567, 0, + 0, 0, 0, 0, 1033, 1567, 0, 1322, 0, 0, + 1840, 854, 854, 854, 1562, 0, 0, 0, 0, 0, + 0, 0, 0, 1617, 557, 0, 854, 0, -1847, 854, + 0, 0, 0, 0, 995, 0, 854, 0, 0, 0, + 0, 0, 961, 0, 0, 1563, 1567, 1945, 0, 0, + 1567, 0, 0, -1847, 0, 0, 1567, 0, 0, 0, + 0, 1617, 0, 0, 1840, 1840, 0, 1840, 0, 0, + 0, 0, 0, 1034, 0, 0, 0, 0, 0, 1567, + 71, 0, 0, 0, 0, 0, 71, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 521, 0, 1562, 1560, + 0, 0, 1565, 0, 0, 0, 0, 0, 0, 0, + 0, 859, 2910, 0, 2782, 0, 0, 0, 0, 1438, + 1438, 0, 854, 854, 854, 1438, 0, 0, 0, 0, + 1210, 0, 557, 1560, 1436, 0, 557, 0, 0, -1847, + 0, 0, 557, 0, 0, 1563, 1946, 1947, 1948, -1847, + 1949, 1950, 1951, 1952, 1953, 1954, 0, 0, 0, 0, + 0, 0, 854, 0, 0, 1310, 0, 0, 1565, -1847, + 0, -1847, -1847, 0, 0, 0, 2089, 0, 0, 0, + 0, 1326, 1328, 1331, 1333, 0, 0, 557, 0, 0, + 0, 557, 0, 0, 71, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1566, 1562, 0, 0, -1847, 0, + 0, -1847, -1847, -1847, 0, 1560, 0, 0, 0, 0, + 1436, 1436, 0, 71, 0, 0, 0, 0, 0, 1563, + 3071, 0, 1431, 0, 0, 0, 0, 0, 558, 1562, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2888, + 0, 0, 0, 0, 0, 2207, 0, 0, 1560, 0, + 1946, 1947, 1948, 0, 1949, 1950, 1951, 1952, 1953, 1954, + 0, 854, 0, 1565, 0, 557, 0, 1106, 1617, 557, + 557, 0, 0, 557, 0, 0, 0, 1840, 1776, 1840, + 0, 1884, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 557, 0, 2968, 0, 0, 0, 0, 0, 0, 0, + 0, 1562, 0, 0, 0, 557, 557, 557, 557, 557, + 557, 557, 557, 557, 557, 0, 1563, 0, 0, 0, + 1566, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2368, 0, + 809, 0, 0, 0, 1562, 854, 0, 0, 1560, 0, + 1563, 0, 0, 1565, 871, 1638, 0, 1776, 1639, 0, + 0, 0, 1640, 1641, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1884, 0, 1567, + 0, 0, 0, 0, 0, 0, 1566, 1840, 0, 0, + 2226, 0, 0, 1649, 0, 0, 0, 0, 1436, 0, + -2101, 0, 0, 0, 557, 0, 0, 0, 0, 558, + 558, 854, 854, 854, 854, 0, 0, 0, 0, 0, + 0, 0, 0, 1436, 0, 0, 1436, 1651, 0, 0, + 557, 961, 1563, 0, 1768, 0, 0, 1565, 0, 3125, + 0, 0, 0, 0, 0, 0, 0, 1795, 0, 0, + 0, 0, 0, 0, 1562, 0, 0, 0, 0, 0, + 0, 0, 557, 0, 0, 0, 0, 808, 1820, 3133, + 557, 0, 0, 0, 2547, 1563, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1566, 2863, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 3162, 0, 807, 0, 0, 0, 0, + 0, 0, 1106, 0, 0, 1567, 0, 0, 71, 3174, + 0, 0, 0, 2207, -2101, 0, 0, 0, 558, 2089, + 0, 0, 0, 1845, 0, 0, 0, 0, 0, 0, + 0, -2101, 1864, 1776, 1565, 0, -2101, 0, 0, 1840, + 0, 0, 0, 0, 0, 0, 0, 0, 1617, 0, + 0, 0, 961, 557, 1436, 0, 0, 0, 0, 0, + 854, 0, 0, 0, 0, 0, 0, 0, 1565, 0, + 0, 1567, 0, 0, -2101, 1563, 0, 3225, 0, 0, + 0, 1566, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1438, 1438, 1438, 1438, 1438, 1438, 1560, + 0, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, 1438, + 1438, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2763, 0, 0, 0, 0, - 0, 0, 0, 856, 856, 856, 0, 0, 0, 0, - 0, 0, 0, 557, 0, 1429, 0, 557, 0, 0, - 0, 0, 0, 557, 0, 1556, 0, 0, 1053, 0, - 0, 1926, 0, 0, 0, 1927, 1928, 1556, 0, 1929, - 1930, 1931, 0, 856, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2830, 2075, 0, 0, - 0, 0, 0, 0, -2082, 0, 0, 1556, 0, 0, - 0, 0, 1651, 0, 1556, 1652, 1653, 1654, 0, 1655, - 1656, 1657, 1658, 1659, 1660, 1606, 1554, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1429, 1429, 2513, 0, - 0, 0, 1555, 0, 0, 2123, 0, 0, 0, 0, - 0, 0, 1556, 0, 0, 0, 1556, 0, 0, 0, - 0, 2562, 1556, 0, 0, 2864, 0, 0, 0, 0, - 0, 2191, 809, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1556, 0, 856, 0, 809, - 0, 557, 0, 0, 0, 557, 557, 0, 0, 557, - 0, 0, 0, 1829, 1765, 1829, 0, 1873, 0, 0, - 0, 0, -2082, 0, 0, 0, 0, 0, 0, 1655, - 1656, 1657, 1658, 1659, 1660, 0, 557, 0, 2944, 1935, - 1936, 1937, 0, 1938, 1939, 1940, 1941, 1942, 1943, 1552, - 0, 557, 557, 557, 557, 557, 557, 557, 557, 557, - 557, 0, 0, 0, 2691, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1554, 0, 558, 0, 0, 2707, - 2708, 2710, 0, 0, 2352, 0, 0, 0, 0, 0, - 1555, 856, 1933, 0, 2721, 558, 0, 2724, 0, 0, - 0, 0, 0, 1765, 2733, 558, 0, 558, 0, 0, - 558, 0, 0, 0, 0, 0, 558, 0, 558, 0, - 0, 0, 0, 1873, 0, 0, 0, 0, 0, 0, - 0, 558, 0, 1829, 0, 1554, 558, 0, 0, 0, - 558, 558, 558, 558, 1429, 558, 558, 0, 0, 0, - 557, 1555, 0, 0, 0, 0, 870, 856, 856, 856, - 856, 0, 1934, 0, 0, 0, 0, 0, 0, 1429, - 0, 0, 1429, 0, 0, 0, 557, 960, 0, 0, - 0, 0, 0, 0, 0, 3101, 0, 0, 0, 0, - 0, 0, 2770, 2771, 2772, 0, 0, 0, 11, 1432, - 0, 0, 0, 0, 1626, 0, 0, 1627, 0, 0, - 0, 1628, 1629, 3108, 0, 2528, 0, 1626, 0, 0, - 1627, 0, 0, 0, 1628, 1629, 14, 15, -2082, -2082, - -2082, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1554, 0, 1637, 0, 3132, 0, 807, 0, 0, -2082, - 0, 0, 1016, 0, 0, 1637, 1555, 1017, 0, 0, - 3144, 0, 1638, 0, 2191, 0, 0, 0, 0, 0, - 2075, 0, 23, 0, 1626, 0, 1639, 1627, 0, 0, - 0, 1628, 1629, 0, 1765, 0, 0, 0, 0, 1639, - 1829, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 558, 0, 0, 960, 557, 1429, 0, 0, 0, 0, - 0, 856, 1637, 1556, 0, 0, 1018, 0, 0, -2082, - 0, 0, 0, 0, 0, 0, 0, 0, 3195, 0, - 0, 0, 0, 0, 2477, 0, 2882, 0, 1606, 2005, - 1554, 2843, 0, 0, 0, 0, 1639, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1555, 0, 0, 1626, - 0, 0, 1627, 0, 0, 0, 1628, 1629, 1630, 1631, - 1632, 1633, 1634, -2082, 1606, 1935, 1936, 1937, 0, 1938, - 1939, 1940, 1941, 1942, 1943, 0, 1640, 1635, 1019, 0, - -2082, 0, 0, 71, 0, -2082, 1196, 1637, 0, 71, - 1432, 0, 0, 1641, 1638, 0, 3212, 0, 1642, 0, - 1829, 3122, 0, 0, 0, 26, 27, 28, 0, 1554, - 558, 0, 0, 2352, 1020, 2886, 0, 0, 0, 1611, - 3025, 1639, 0, -2082, 0, 1555, 0, 0, 0, 0, - 1021, 3244, 0, -2082, 0, 0, 1645, 0, 1429, 0, - 1022, 1556, 0, 0, 0, 0, 0, 0, 0, 0, - -2082, 0, 0, 0, 1053, -2082, 0, 1926, 0, 0, - 0, 1927, 1928, 0, 3261, 1929, 1930, 1931, 0, 0, - 557, 0, 33, 0, 1023, 0, 0, 557, 1648, 0, - 0, 0, 3118, 35, 0, 0, 3065, 3066, 3067, 3068, - 0, 1648, 0, -2082, 0, 1197, 0, 71, 0, 0, - 0, 0, 1556, 0, 0, 37, 558, 0, 0, 38, - 0, 0, 3289, 0, 0, 0, 1554, 0, 1640, 0, - 1024, 0, 0, 0, 0, 0, 71, 1025, 0, 39, - 0, 0, 1555, 3047, 557, 1641, 0, 0, 0, 557, - 1642, 0, 40, 0, 0, 0, 0, 0, 1648, 0, - 1554, 0, 0, 43, 0, 558, 0, 0, 0, 0, - 0, 2613, 0, 1643, 1644, 557, 1555, 0, 0, 1026, - 44, 0, 0, 0, 0, 0, 0, 0, 1645, 0, - -2082, 1606, 0, 0, 0, 0, 557, 557, 1027, 0, - 1115, 1115, 0, 1650, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 856, 0, 1765, 0, 1556, 46, 0, - 557, 0, 0, 0, 0, 0, 1646, 0, 0, 1647, - 1432, 1432, 0, 0, 856, 0, 1432, 3360, 0, 0, - 0, 0, 1554, 1648, 0, 0, 1649, 0, 0, 0, - 3182, 0, 0, 0, 0, 0, 0, 1429, 1555, 0, - -2082, 557, 1009, 0, 1009, 0, 0, 1028, 809, 0, - 0, 1252, 1198, 0, 0, 1294, 1301, 0, 1933, 0, - 0, 0, 870, 0, 0, 1554, 0, 0, 0, 3144, - 0, 0, 0, 0, 0, 0, 856, 558, -2082, 0, - 0, 1555, 0, 0, 0, 1655, 1656, 1657, 1658, 1659, - 1660, 1651, 0, 0, -2082, -2082, -2082, 1556, 1655, 1656, - 1657, 1658, 1659, 1660, 1053, 0, 856, 1926, 1351, 0, - 0, 1927, 1928, 0, 0, 1929, 1930, 1931, 0, 0, - 0, 0, 0, 0, 0, 1650, 1375, 0, 1934, 0, - 0, 0, 1423, 0, 0, 1425, 0, 0, 1436, 1439, - 1444, 1447, 0, 0, 3261, 0, 0, 0, -2082, 0, - 0, 0, 0, 0, 0, 1655, 1656, 1657, 1658, 1659, - 1660, 0, 0, 0, 0, 0, 3360, 0, 1554, 0, - 0, 0, 0, 0, 0, 0, 1556, 0, 1486, 1294, - 0, 0, 0, 0, 1555, 0, 0, 558, 0, 0, - 0, 558, 0, 1765, 0, 0, 0, 2001, 0, 0, - 1570, 0, 0, 0, 0, 960, 960, 0, 3360, 960, - 0, 0, 0, 0, 0, 0, 0, 1969, 0, 1586, - 0, 0, 0, 0, 0, 0, 71, 0, 557, 0, - 1596, 1597, 1598, 1651, 1603, 1607, 1652, 1653, 1654, 0, - 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, 0, 0, - 1765, 2167, 0, 1919, 0, 0, 0, 3360, 0, 0, - 0, 0, 0, 0, 0, 0, 1606, 0, 0, 1669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1556, 0, 0, 0, 1486, 1486, 0, - 0, 0, 0, 0, 960, 0, 0, 1432, 0, 0, - 0, 0, 0, 0, 0, 0, 1210, 0, 0, 2191, - 0, 0, 1211, 0, 0, 0, 0, 1556, 1933, 0, - 1223, 0, 0, 1708, 0, 558, 0, 1724, 1729, 558, - 558, 0, 3334, 558, 0, 0, 0, 0, 1115, 1115, - 1224, 1935, 1936, 1937, 0, 1938, 1939, 1940, 1941, 1942, - 1943, 1053, 0, 3358, 1926, 0, 0, 0, 1927, 1928, - 558, 0, 1929, 1930, 1931, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 558, 558, 558, 558, 558, - 558, 558, 558, 558, 558, 0, 1225, 0, 1934, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1294, 1556, - 0, 0, 0, 0, 0, 0, 0, 1294, 0, 0, - 0, 0, 0, 0, 71, 3397, 0, 1212, 0, 0, - 0, 0, 0, 0, 0, 1554, 0, 0, 0, 0, - 0, 1294, 0, 0, 0, 3357, 0, 0, 0, 0, - 0, 1555, 1556, 0, 0, 3423, 0, 0, 0, 0, + 1565, 0, 0, 0, 0, 3243, 0, 0, 0, 1840, + 0, 0, 1456, 0, 0, 1566, 0, 0, 808, 0, + 808, 0, 2368, 1994, 0, 0, 1567, 0, 0, 808, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1493, + 3275, 0, 0, 1565, 0, 0, 0, 1436, 0, 0, + 0, 0, 0, 71, 0, 1562, 0, 0, 0, 1638, + 0, 0, 1639, 0, 0, 0, 1640, 1641, 1642, 1643, + 1644, 1645, 1646, 3292, 3391, 0, 0, 0, 0, 557, + 0, -2101, 0, 0, 0, 0, 557, 1647, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1649, 0, 0, + 0, 0, 0, 3311, 1650, 0, 0, 1622, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1566, 0, 0, 0, 1567, 3323, 0, 0, + 71, 1651, 71, 1638, 0, 0, 1639, 0, 1438, 1438, + 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, 557, + 0, 0, 0, 1565, 557, 0, 1566, 0, 0, 0, + 0, 1647, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1649, 71, 0, 0, 0, 558, 558, 1650, 0, + 557, 14, 15, 0, 0, 0, 1563, 0, 71, -2101, + 0, 0, 0, 0, 0, 0, 1667, 1668, 1669, 1670, + 1671, 1672, 557, 557, 0, 1651, 0, 0, 0, 0, + 1567, 0, 0, 0, 0, 0, 0, 0, 0, 854, + 0, 1776, 0, 0, 0, 0, 557, 23, 1652, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1566, 0, + 854, 0, 0, 3394, 0, 1653, 0, 0, 0, 0, + 1654, 0, 0, 0, 1438, 0, 0, 2192, 0, 2194, + 0, 0, 0, 1436, 0, 1106, 0, 557, 1011, 2204, + 1011, 0, 0, 1655, 1656, 557, 0, 0, 0, 0, + 0, 1566, 0, 0, 0, 0, 0, 0, 1657, 0, + 0, 0, 0, 0, 1106, 0, 0, 0, 3174, 0, + 0, 0, 1652, 0, 0, 854, 0, 0, 2241, 0, + 0, 0, 0, 0, 71, 0, 0, 1567, 0, 1653, + 0, 0, 0, 0, 1654, 0, 1658, 0, 0, 1659, + 0, 0, 0, 0, 0, 854, 0, 0, 0, 0, + 71, 0, 0, 1660, 0, 0, 1661, 1655, 1656, 0, + 0, 1567, 0, 558, 558, 0, 558, 0, 0, 0, + 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, + 26, 27, 28, 3292, 0, 0, 0, 0, 0, 0, + 1638, 1106, 0, 1639, 0, 0, 0, 1640, 1641, 0, + 0, 1566, 0, 0, 0, 0, 3394, 0, 0, 0, + 1658, 0, 0, 1659, 0, 0, 2351, 2352, 2354, 2355, + 2356, 0, 0, 0, 1565, 0, 0, 1660, 1649, 0, + 1661, 0, 0, 1776, 0, -2101, 0, 0, 0, 0, + 0, 0, 0, 1567, 0, 961, 961, 33, 3394, 961, + 0, 0, 0, 0, 0, 1662, 0, 1980, 35, 0, + 0, 0, 1651, 0, 0, 0, 0, 0, 557, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2001, 0, 0, 0, 0, 0, - 0, 0, 1226, 0, 0, 0, 0, 0, 71, 0, - 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2477, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1432, 1432, 1432, 1432, 1432, 1432, 0, 1916, 1432, 1432, - 1432, 1432, 1432, 1432, 1432, 1432, 1432, 1432, 0, 0, - 71, 1227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1228, 0, 0, 1053, 1556, 71, 1926, 0, 0, - 0, 1927, 1928, 1229, 0, 1929, 1930, 1931, 0, 0, - 0, 0, 0, 0, 0, -2082, 0, 0, 0, 0, - 0, 0, 3119, 0, 1213, 0, 0, 0, 0, 0, - 1444, 0, 1444, 1444, 0, 1230, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1115, 1115, 0, 0, 0, - 0, 1935, 1936, 1937, 0, 1938, 1939, 1940, 1941, 1942, - 1943, 0, 1115, 0, 0, 0, 0, 0, 0, 0, + 37, 0, 0, 808, 38, 808, 1567, 0, 808, 0, + 1776, 0, 0, 808, 0, 0, 808, 3394, 808, 0, + 0, 0, 808, 0, 2015, 0, 2019, 0, 0, 0, + 1386, 1387, 0, 0, 0, 0, 0, 40, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2866, 43, 1662, + 0, 0, 0, 0, 961, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 44, 0, 0, 0, 2207, + 0, 1388, 1389, 0, 0, 1390, 1391, 1638, 2475, -2101, + 1639, 0, 0, 1663, 1640, 1641, 1664, 1665, 1666, 45, + 1667, 1668, 1669, 1670, 1671, 1672, -2101, 0, 0, 0, + 0, -2101, 0, 46, 2527, 0, 0, 0, 0, 1438, + 1438, 0, 0, 0, 0, 1649, 1567, 0, 0, 0, + 0, 0, -2101, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1121, 1121, 0, 0, 0, -2101, + 0, 0, 0, 2100, 0, 0, 0, 0, 0, 1651, + 0, 1392, 1393, 0, 0, 0, 0, 1663, 0, 0, + 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, + 0, 0, 0, 0, 0, 0, 0, 1930, 0, 0, + 0, 0, 1566, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1660, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1259, 0, 0, 0, 1301, + 1308, 0, 0, 0, 2867, 1394, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 0, 0, 1402, 1403, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -2101, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1358, -2101, 0, 0, 0, 0, -2101, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1382, 0, 0, 0, 558, 0, 1430, 0, 0, 1432, + 0, 0, 1443, 1446, 1451, 1454, -2101, 0, 0, 1404, + 1405, 0, 0, 558, 0, 0, -2101, 1438, 0, 0, + 0, 0, 0, 558, 0, 558, 0, 0, 558, 0, + 0, 0, 0, 0, 558, 0, 558, 0, 0, 0, + 0, 0, 3110, 0, 0, 0, 0, 1497, 1301, 558, + 1406, 1407, 0, 0, 558, 0, 0, 0, 558, 558, + 558, 558, 0, 558, 558, 1637, 0, 0, 0, 1581, + 1638, 1660, 0, 1639, 0, 0, 0, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 0, 0, 0, 1567, 1597, 0, + 0, 0, 3139, 0, 0, 0, 0, 0, 1647, 1607, + 1608, 1609, 1648, 1614, 1618, 0, 0, 0, 1649, 0, + 0, 0, 0, 0, -2101, 1650, 0, 0, 0, 0, + 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1681, + 0, 0, 1651, 0, 0, 0, 1408, 1409, 2710, 0, + 0, 0, 0, 0, 0, 0, 0, 1497, 1497, 0, + 0, 0, 0, 2726, 2727, 2729, 0, 0, 0, 0, + 1410, 1411, 0, -2101, 0, 0, 0, 0, 2740, 0, + 0, 2743, 0, 1438, 0, 0, 0, 0, 2752, 0, + 2032, 0, 1638, 1719, 0, 1639, 0, 1735, 1740, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 0, 1638, 1121, 1121, + 1639, 0, 11, 0, 1640, 1641, 0, 0, 558, 0, + 1647, 0, 0, 0, 2843, 0, 0, 0, 0, 0, + 1649, 0, 0, 0, 0, 0, 0, 1650, 0, 1652, + 14, 15, 0, 808, 0, 1649, 0, 0, 0, 808, + 0, 0, -2101, 0, 0, 2491, 1653, 0, 0, 0, + 2019, 1654, 0, 0, 1651, 0, 0, 0, 1301, 0, + 0, 0, 0, 0, 2789, 2790, 2791, 1301, 0, 1651, + 0, -2101, 0, 0, 1655, 1656, 23, 0, 1667, 1668, + 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, 1657, + 0, 1301, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1638, 0, 0, 1639, 0, 0, 1438, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 0, 0, 0, 1658, 0, 0, + 1659, 2100, 0, 0, 3152, 0, 0, 0, 1647, 0, + 0, 1622, 0, 0, 1660, 0, 0, 1661, 1649, 0, + 0, 1652, 0, 0, 0, 1650, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -2101, 0, 1653, 0, + 0, 0, 0, 1654, 0, 0, 0, 1927, 0, 0, + 0, 0, 1651, -2101, 0, 0, 0, 0, -2101, 0, + 0, 0, 0, 0, 0, 0, 1655, 1656, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1657, 0, 2906, 0, 0, 0, 808, 0, 26, + 27, 28, 0, 0, 0, 0, -2101, 0, 0, 558, + 0, 0, 0, 0, 808, 0, 0, 0, 0, 0, + 1451, 0, 1451, 1451, 0, 0, 1662, 0, 0, 1658, + 0, 0, 1659, 0, 0, 1121, 1121, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1660, 0, 0, 1661, + 0, 0, 0, 0, 0, 0, 1121, 0, 558, 1652, + 0, 1660, 0, 0, 2632, 0, 33, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1653, 35, 0, 0, + 0, 1654, 0, 0, 0, 0, 0, 3049, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 37, + 0, 0, 0, 38, 1655, 1656, 0, 0, 0, 0, + 0, 0, 3411, 0, 0, 0, 0, 0, 0, 1657, + 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1663, 0, 40, 1664, 1665, 1666, + 0, 1667, 1668, 1669, 1670, 1671, 1672, 43, 1662, 0, + 0, 0, 0, 3089, 3090, 3091, 3092, 1658, 2064, 0, + 1659, 0, 0, -2101, 44, 0, 2067, 0, 0, 0, + 0, 0, 0, 0, 1660, 0, 0, 1661, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 45, 0, + 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2112, 0, 46, 0, 0, 0, 0, 2116, 0, 0, + 0, 0, 0, 2120, 2121, 2122, 2123, 2124, 2125, 2126, + 2127, 0, 0, 0, 0, 2136, 2137, 0, 0, 0, + 2150, 0, 0, 0, 2153, 0, 0, 2161, 2162, 2163, + 2164, 2165, 2166, 2167, 2168, 2169, 0, 0, 2170, 0, + 0, 0, 0, 0, 0, 1121, 1663, 1301, 0, 1664, + 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, + 0, -2101, 0, 2106, 0, 2196, 1662, 0, 1667, 1668, + 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, - 0, 0, 0, 1231, 0, 1934, 0, 1215, 0, 1232, + 0, 0, 558, 0, 0, 0, 0, 0, 2015, 1608, + 1609, 0, 3212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1233, 0, 0, 0, 0, 1234, - 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1235, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 71, 0, 0, - 1432, 1432, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1626, 0, 2050, 1627, 0, 0, 0, 1628, - 1629, 0, 2053, 1632, 1633, 1634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1637, 0, 0, 0, 0, 0, 0, 1638, 1933, 0, - 0, 0, 2100, 0, 0, 0, 0, 0, 2104, 2105, - 2106, 2107, 2108, 2109, 2110, 2111, 0, 0, 0, 0, - 2120, 2121, 0, 0, 1639, 2134, -46, 0, 0, 2137, - 0, 0, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, - 2153, 0, 1556, 2154, 3269, 0, 0, 0, 1, 0, - 1115, 2477, 1294, 0, 0, 0, 1432, 0, 2, 0, - 3, 4, 0, 0, 0, 0, 0, 0, 1934, 0, - 0, 2180, 0, 5, 0, 0, 0, 0, 6, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 1935, 1936, - 1937, 0, 1938, 1939, 1940, 1941, 1942, 1943, 0, 0, - 0, 8, 0, 0, 0, 1597, 1598, 0, 558, 0, - 9, 0, 10, 558, 0, 0, 0, 0, 0, 0, - 0, 1640, 0, 0, 11, 0, 12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 13, 1641, 558, - 0, 0, 0, 1642, 0, 0, 0, 0, 0, 0, - 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, - 558, 558, 0, 17, 0, 0, -2082, -2082, 0, 18, - 0, 0, 0, 0, 0, 0, 0, 19, 0, 20, - 21, 1645, 0, 0, 558, 0, 0, 1433, 0, 0, - 0, 0, 0, 0, 22, 0, 2306, 0, 23, 0, - 1294, 0, 1625, 2316, 2317, 0, 0, 1626, 0, 0, - 1627, 0, 0, 0, 1628, 1629, 1630, 1631, 1632, 1633, - 1634, 0, -2082, 0, 24, 558, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1635, 1648, 0, 0, 1636, - -1446, 0, 0, 0, 1294, 1637, 0, 0, 0, 0, - 0, 0, 1638, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 25, 0, 0, 1351, - 2383, 0, 0, 0, 0, 0, 0, 0, 0, 1639, - 0, 1935, 1936, 1937, 0, 1938, 1939, 1940, 1941, 1942, - 1943, 0, 0, 0, 0, 0, 0, 0, 2409, 2410, - 0, 2411, 0, 0, 0, 0, 1663, 0, 0, 0, + 0, 0, 0, 2838, 0, 0, 0, 2100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2437, 2438, 0, 0, 2180, 0, 0, 0, 1650, 0, - 0, 26, 27, 28, 0, 0, 0, 0, 0, 29, - 0, 0, 30, 0, 1663, 0, 0, 0, 0, 0, - 0, 0, 0, 2465, 0, 0, 0, 0, 0, 2471, - 0, 0, 0, 0, 0, 0, 1640, 0, 1432, 1432, - 1016, 0, 0, 31, 0, 1017, 0, 1486, 1433, 1294, - 0, 0, 32, 1641, 0, 0, 0, 0, 1642, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, - 0, 0, 558, 0, 0, 34, 0, 0, 0, 35, - 0, 1643, 1644, 0, 0, 0, 0, 2506, 0, 36, - 0, 0, 0, 0, 0, 0, 1645, 0, 0, 0, - 0, 37, 0, 1663, 1018, 38, 1651, 0, 0, 1652, - 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, - 0, 0, 0, 0, 2523, 39, 0, 2526, 0, 0, - 0, 0, 2532, 2533, 1646, 0, 0, 1647, 40, 0, - 0, 41, 0, 0, 42, 1663, 0, 0, 0, 43, - 0, 1648, 1663, 0, 1649, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, - 0, 1210, 0, 0, 0, 0, 1019, 1211, 2554, 0, - 0, 2557, 0, 2559, 0, 1223, 0, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 0, 0, 0, 2563, - 0, 0, 1663, 0, 46, 1224, 0, -46, 0, 0, - 0, 0, 1020, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1663, 0, 1021, 0, - 0, 0, 0, 0, 0, 0, 1432, 0, 1022, 1708, + 0, 0, 0, 0, 1663, 0, 0, 1664, 1665, 1666, + 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, 0, + 2322, 2106, 0, 0, 1301, 0, 0, 2332, 2333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1225, 0, 1650, 0, 0, 1729, 2152, 0, 0, - 0, 1432, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1023, 0, 1663, 1115, 1663, 0, 1433, 1433, - 0, 1944, 1212, 0, 1433, 0, 0, 1663, 2619, 0, - 1663, 0, 0, 1989, 0, 1663, 0, 0, 1663, 0, - 0, 0, 0, 0, 1626, 0, 0, 1627, 0, 0, - 0, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1024, 0, - 0, 0, 0, 0, 0, 1025, 0, 0, 0, 0, - 0, 0, 1635, 0, 0, 0, 2822, 1663, 0, 0, - 0, 0, 1637, 0, 0, 1598, 0, 1226, 0, 1638, - 0, 1294, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1651, 0, 0, 1652, 1653, 1654, 1026, 1655, 1656, - 1657, 1658, 1659, 1660, 0, 0, 1639, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1027, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1227, 1432, 0, 0, - 0, 0, 0, 0, 0, 0, 1228, 0, 0, 0, - 0, 0, 2731, 0, 0, 0, 0, 0, 1229, 0, - 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1626, 0, 0, 1627, 1663, 0, 1213, - 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1663, 1663, 1663, - 1230, 0, 0, 0, 1663, 1028, 0, 0, 1663, 0, - 1990, 1635, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1637, 0, 1640, 0, 0, 0, 0, 1638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1641, 0, 0, 0, 0, 1642, 0, 0, 2281, 0, - 0, 0, 1215, 0, 1232, 1639, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1643, 1644, - 1663, 0, 0, 0, 0, 0, 0, 0, 0, 1233, - 0, 0, 0, 1645, 2282, 0, 0, 0, 0, 0, - 1432, 0, 0, 0, 0, 0, 0, 2809, 1235, 0, - 0, 0, 0, 2811, 2053, 0, 0, 0, 0, 1663, - 0, 0, 0, 0, 0, 2818, 0, 0, 0, 0, - 0, 1646, 0, 0, 1647, 1663, 0, 0, 0, 2828, - 1663, 0, 2831, 0, 2833, 0, 0, 0, 1648, 0, - 0, 1649, 2837, 0, 0, 0, 0, 1944, 0, 0, - 2844, 2845, 1640, 0, 0, 1217, 0, 2852, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1641, - 0, 0, 2861, 0, 1642, 0, 0, 0, 0, 0, - 1626, 0, 2876, 1627, 0, 0, 0, 1628, 1629, 1630, - 1631, 1632, 1633, 1634, 0, 0, 0, 1643, 1644, 0, - 0, 0, 1115, 0, 0, 0, 0, 0, 1635, 0, - 0, 0, 1645, 0, 0, 0, 0, 0, 1637, 0, - 0, 0, 0, 0, 0, 1638, 0, 0, 0, 0, - 1626, 0, 0, 1627, 0, 0, 0, 1628, 1629, 0, - 1650, 1632, 1633, 1634, 0, 0, 0, 0, 0, 0, - 1646, 0, 1639, 1647, 0, 0, 0, 0, 1635, 0, - 0, 2306, 0, 2306, 0, 0, 0, 1648, 1637, 0, - 1649, 0, 0, 0, 0, 1638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1432, - 0, 0, 1639, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, - 0, 0, 0, 0, 0, 1944, 1944, 0, 1433, 1433, - 1433, 1433, 1433, 1433, 0, 0, 1433, 1433, 1433, 1433, - 1433, 1433, 1433, 1433, 1433, 1433, 1944, 0, 1651, 1640, - 0, 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, - 1660, 0, 0, 3081, 3082, 2091, 1641, 0, 0, 1650, - 0, 1642, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 558, 0, 0, 1638, 558, 558, 1639, 1301, 558, + 0, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1643, 1644, 0, 0, 3105, 1640, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1645, - 0, 0, 0, 3109, 0, 0, 1641, 0, 0, 3112, - 3113, 1642, 0, 0, 3114, 0, 0, 0, 0, 3117, - 0, 0, 3120, 3121, 0, 0, 0, 2306, 1294, 0, - 0, 3129, 0, 0, 1643, 1644, 0, 1646, 0, 0, - 1647, 1663, 1115, 0, 1663, 0, 0, 0, 0, 1645, - 0, 0, 0, 0, 1648, 0, 0, 1649, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1651, 0, 0, - 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, - 0, 0, 0, 0, 2091, 0, 3170, 1646, 0, 0, - 1647, 1663, 0, 0, 0, 1663, 1663, 1663, 1663, 1663, - 1663, 1663, 1663, 0, 1648, 0, 0, 1649, 1433, 1433, - 0, 1663, 1663, 3189, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1663, 0, 0, 1663, 0, - 0, 0, 0, 0, 0, 0, 1663, 1663, 1663, 1663, - 1663, 1663, 1663, 1663, 1663, 1663, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1650, 0, 0, 0, - 0, 0, 0, 0, 0, 1626, 0, 0, 1627, 0, - 0, 1663, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, + 0, 0, 1647, 1358, 2399, 0, 558, 0, 0, 0, + 0, 0, 1649, 0, 0, 0, 0, 0, 0, 1650, + 0, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 558, 0, 2425, 2426, 0, 2427, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1651, 0, 0, 0, + 0, 0, 1217, 0, 0, -46, 0, 0, 1218, 0, + 0, 0, 0, 0, 2453, 2454, 1230, 0, 2196, 1217, + 0, 0, 0, 0, 0, 1218, 0, 1, 0, 0, + 0, 0, 0, 1230, 0, 0, 1231, 2, 0, 3, + 4, 0, 0, 0, 0, 0, 0, 0, 0, 2479, + 0, 0, 5, 1231, 0, 0, 2485, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 2015, 0, 0, 0, 1497, 0, 1301, 0, 0, 0, + 8, 0, 1232, 0, 0, 0, 0, 0, 0, 9, + 0, 10, 0, 1652, 0, 0, 2491, 0, 0, 1232, + 0, 3368, 0, 11, 0, 12, 0, 0, 0, 0, + 1653, 0, 0, 1219, 2520, 1654, 13, 0, 0, 0, + 0, 0, 3392, 0, 0, 0, 0, 0, 2100, 0, + 1219, 14, 15, 16, 0, 0, 2100, 0, 1655, 1656, + 0, 0, 17, 0, 0, 0, 0, 0, 18, 0, + 0, 2537, 0, 1657, 0, 2543, 19, 0, 20, 21, + 2551, 2552, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 808, 0, 22, 0, 0, 0, 23, 1233, 0, + 0, 0, 0, 0, 0, 0, 0, 3432, 0, 0, + 0, 1658, 0, 0, 1659, 1233, 0, 0, 0, 0, + 0, 0, 0, 24, 0, 0, 0, 2573, 1660, 0, + 2576, 1661, 2578, 0, 0, 0, 0, 3458, 0, -1467, + 0, 0, 0, 0, 0, 0, 0, 1234, 2582, 558, + 0, 0, 0, 0, 0, 0, 0, 1235, 0, 0, + 0, 0, 0, 0, 1234, 25, 0, 0, 0, 1236, + 0, 0, 0, 0, 1235, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1638, 0, 1236, 1639, 1719, 0, + 1220, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, + 0, 1237, 0, 0, 0, 1740, 2168, 1220, 0, 0, + 0, 0, 1647, 0, 0, 0, 0, 0, 1237, 0, + 0, 0, 1649, 0, 1121, 0, 0, 0, 0, 1650, + 1662, 0, 0, 0, 0, 0, 0, 2638, 0, 0, + 26, 27, 28, 0, 0, 0, 0, 0, 29, 1238, + 0, 30, 0, 1222, 0, 1239, 1651, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2297, 0, 0, 0, + 1222, 0, 1239, 0, 0, 0, 0, 1440, 0, 0, + 1240, 0, 31, 0, 0, 1241, 0, 0, 0, 0, + 0, 32, 0, 0, 1609, 0, 0, 1240, 0, 1242, + 1301, 0, 2298, 0, 0, 0, 0, 33, 0, 0, + 0, 0, 0, 0, 34, 0, 1242, 0, 35, 0, + 0, 0, 0, 0, 0, 3300, 0, 0, 36, 0, + 0, 0, 2491, 0, 0, 0, 0, 0, 1663, 0, + 37, 1664, 1665, 1666, 38, 1667, 1668, 1669, 1670, 1671, + 1672, 0, 0, 1652, 0, 2424, 1224, 0, 0, 0, + 0, 2750, 0, 0, 39, 0, 0, 0, 0, 0, + 1653, 0, 0, 1224, 0, 1654, 0, 40, 0, 0, + 41, 0, 0, 42, 0, 0, 0, 0, 43, 0, + 0, 0, 0, 0, 0, 558, 0, 0, 1655, 1656, + 558, 1675, 0, 0, 0, 44, 0, 1638, 0, 0, + 1639, 0, 0, 1657, 1640, 1641, 1642, 1643, 1644, 1645, + 1646, 0, 0, 0, 0, 0, 558, 0, 0, 45, + 0, 0, 0, 0, 0, 1647, 0, 0, 0, 0, + 0, 0, 0, 46, 0, 1649, -46, 0, 558, 558, + 1675, 1658, 1650, 0, 1659, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1660, 0, + 0, 1661, 558, 0, 0, 0, 0, 0, 0, 1651, + 0, 0, 0, 0, 1440, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2828, 0, 0, 0, 0, 0, + 2830, 2067, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 558, 0, 2839, 0, 0, 0, 0, + 0, 2100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2852, 0, 0, 2855, 0, 2857, 0, 0, 1675, + 0, 0, 0, 0, 2861, 0, 0, 0, 0, 0, + 0, 0, 2868, 2869, 0, 0, 0, 0, 0, 2876, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1635, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1637, 0, 0, 1650, 0, 0, 0, - 1638, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1433, 0, 2731, 0, 0, 0, - 0, 0, 722, 0, 0, 0, 0, 1639, 0, 0, + 1662, 0, 0, 0, 2885, 0, 1652, 0, 0, 0, + 0, 1675, 0, 0, 2900, 0, 0, 0, 1675, 0, + 0, 0, 0, 1653, 0, 0, 0, 0, 1654, 0, + 0, 0, 0, 0, 1121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1607, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1651, 0, 0, 1652, 1653, 1654, - 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, 0, - 0, 2408, 0, 0, 0, 0, 2526, 0, 0, 723, - 0, 0, 0, 0, 0, 0, 0, 1663, 3281, 3282, - 0, 0, 3283, 0, 1598, 724, 0, 1663, 1663, 0, - 0, 0, 0, 0, 1651, 0, 0, 1652, 1653, 1654, - 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, 3301, - 0, 0, 0, 0, 1640, 0, 0, 0, 0, 0, + 0, 1655, 1656, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1657, 0, 1675, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 722, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1641, 0, 3313, 725, 0, 1642, 0, 0, 0, - 0, 0, 0, 0, 726, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1663, 0, 0, 727, 0, 1643, - 1644, 0, 728, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1645, 0, 0, 0, 0, 0, - 1663, 1663, 1663, 0, 0, 1944, 1944, 1944, 1944, 1944, - 1944, 729, 0, 0, 1944, 1944, 1944, 1944, 1944, 1944, - 1944, 1944, 1944, 1944, 0, 0, 0, 0, 1663, 1663, - 0, 0, 1646, 0, 0, 1647, 0, 0, 0, 0, - 3081, 0, 0, 0, 3374, 0, 0, 0, 1115, 1648, - 0, 0, 1649, 0, 730, 0, 1663, 0, 731, 3383, - 0, 0, 1663, 0, 2306, 0, 2306, 0, 0, 0, - 1626, 0, 0, 1627, 1115, 0, 0, 1628, 1629, 1630, - 1631, 1632, 1633, 1634, 0, 0, 0, 0, 0, 0, - 0, 0, 3408, 0, 0, 0, 0, 1663, 1635, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1637, 0, - 0, 0, 0, 0, 1663, 1638, 0, 1663, 0, 0, - 0, 0, 0, 1663, 1663, 0, 0, 0, 732, 0, - 0, 1944, 1944, 0, 0, 0, 0, 0, 0, 3433, - 0, 0, 1639, 733, 0, 1663, 1433, 1433, 1663, 3081, - 1663, 1650, 0, 0, 1663, 0, 0, 0, 0, 0, - 1626, 1115, 0, 1627, 0, 0, 0, 1628, 1629, 1630, - 1631, 1632, 1633, 1634, 0, 0, 0, 0, 734, 0, - 0, 735, 0, 0, 0, 0, 0, 0, 1635, 0, - 0, 0, 736, 3476, 0, 737, 0, 0, 1637, 0, - 0, 0, 0, 0, 0, 1638, 0, 0, 0, 0, - 1663, 0, 0, 738, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 739, 0, 0, - 0, 0, 1639, 0, 741, 0, 0, 0, 0, 1640, - 0, 0, 0, 0, 742, 0, 0, 0, 0, 0, - 743, 0, 0, 0, 0, 0, 1641, 0, 0, 1651, - 0, 1642, 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, - 1659, 1660, 0, 0, 0, 0, 2510, 0, 744, 0, - 3530, 3530, 3530, 0, 1643, 1644, 0, 0, 0, 0, - 0, 0, 0, 1626, 0, 0, 1627, 0, 0, 1645, - 1628, 1629, 1630, 1631, 1632, 1633, 1634, 3530, 0, 0, + 0, 0, 1675, 2322, 0, 2322, 0, 0, 0, 0, + 0, 0, 0, 0, 1658, 0, 0, 1659, 1663, 0, + 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, + 1672, 1660, 0, 0, 1661, 2524, 0, 0, 0, 0, + 0, 0, 0, 0, 558, 0, 723, 0, 0, 0, + 1675, 0, 1675, 0, 1440, 1440, 0, 1955, 0, 0, + 1440, 0, 724, 1675, 0, 0, 1675, 0, 0, 0, + 0, 1675, 0, 0, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1635, 1663, 0, 0, 0, 0, 0, 0, 1640, - 0, 1637, 0, 0, 0, 0, 0, 1646, 1638, 0, - 1647, 0, 0, 0, 1433, 0, 1641, 1378, 3530, 820, - 0, 1642, 0, 0, 1648, 0, 0, 1649, 0, 0, - 0, 0, 0, 0, 0, 1639, 0, 0, 0, 0, - 0, 0, 0, 0, 1643, 1644, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1645, + 0, 1638, 0, 0, 1639, 0, 0, 0, 1640, 1641, + 1642, 1643, 1644, 1645, 1646, 3105, 3106, 0, 0, 0, + 0, 725, 0, 0, 0, 0, 0, 1675, 0, 1647, + 0, 726, 0, 0, 0, 0, 0, 0, 0, 1649, + 0, 0, 0, 1662, 727, 0, 1650, 0, 0, 728, + 3129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1663, 0, 1663, 0, 0, 0, 0, 0, 0, 1663, - 0, 0, 1379, 1380, 0, 0, 0, 0, 0, 1663, - 0, 0, 1663, 0, 1663, 0, 0, 1646, 1663, 0, - 1647, 1944, 1944, 0, 0, 1663, 1663, 0, 0, 0, - 0, 0, 0, 1663, 1648, 0, 0, 1649, 0, 0, - 0, 0, 1663, 1381, 1382, 0, 1650, 1383, 1384, 0, - 0, 0, 1640, 0, 0, 0, 0, 1663, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1641, - 0, 0, 0, 0, 1642, 0, 0, 0, 0, 0, + 3138, 0, 0, 1651, 0, 0, 3142, 3143, 729, 0, + 0, 3144, 0, 0, 0, 0, 3147, 0, 0, 3150, + 3151, 0, 0, 0, 2322, 1301, 0, 0, 3159, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1121, + 0, 1675, 0, 1385, 0, 821, 0, 0, 0, 0, + 0, 730, 0, 0, 0, 731, 0, 1675, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1675, 1675, 1675, + 0, 0, 0, 0, 1675, 0, 0, 0, 1675, 0, + 0, 1663, 0, 3200, 1664, 1665, 1666, 0, 1667, 1668, + 1669, 1670, 1671, 1672, 0, 0, 0, 0, 2557, 0, + 1652, 0, 0, 0, 0, 0, 0, 0, 1386, 1387, + 3219, 0, 0, 0, 0, 0, 0, 1653, 0, 0, + 0, 0, 1654, 0, 0, 732, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1386, 1387, 0, 0, 0, + 733, 1675, 0, 0, 0, 1655, 1656, 0, 0, 1388, + 1389, 0, 0, 1390, 1391, 0, 0, 0, 0, 0, + 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 734, 1388, 1389, 735, 1675, + 1390, 1391, 0, 0, 0, 0, 0, 0, 0, 736, + 0, 0, 737, 0, 0, 1675, 0, 0, 1658, 0, + 1675, 1659, 0, 0, 0, 0, 0, 0, 0, 0, + 738, 0, 0, 0, 0, 1660, 0, 1955, 1661, 0, + 0, 0, 0, 2750, 739, 0, 0, 0, 0, 1392, + 1393, 741, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 742, 0, 0, 0, 0, 0, 743, 0, 0, + 1618, 0, 0, 0, 0, 0, 1392, 1393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1433, 0, 1643, 1644, 0, - 0, 0, 0, 0, 0, 0, 1626, 0, 0, 1627, - 0, 0, 1645, 1628, 1629, 1630, 1631, 1632, 1633, 1634, - 0, 0, 0, 1385, 1386, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1635, 0, 1650, 0, 0, 0, - 0, 0, 0, 0, 1637, 0, 0, 0, 0, 0, - 1646, 1638, 0, 1647, 1651, 0, 0, 1652, 1653, 1654, - 0, 1655, 1656, 1657, 1658, 1659, 1660, 1648, 0, 0, - 1649, 2538, 0, 0, 0, 0, 0, 0, 1639, 0, - 0, 0, 0, 0, 0, 0, 0, 1387, 1388, 1389, - 1390, 1391, 1392, 1393, 1394, 0, 0, 1395, 1396, 0, + 0, 0, 0, 0, 0, 744, 0, 0, 0, 0, + 0, 0, 0, 0, 2543, 0, 0, 0, 0, 0, + 0, 0, 0, 1394, 1395, 1396, 1397, 1398, 1399, 1400, + 1401, 3315, 3316, 1402, 1403, 3317, 0, 1609, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1662, 0, 0, + 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 0, 0, + 1402, 1403, 3335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3347, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1404, 1405, 0, + 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, + 0, 0, 0, 0, 0, 1955, 1955, 0, 1440, 1440, + 1440, 1440, 1440, 1440, 1404, 1405, 1440, 1440, 1440, 1440, + 1440, 1440, 1440, 1440, 1440, 1440, 1955, 0, 1406, 1407, + 0, 0, 0, 0, 0, 1663, 0, 0, 1664, 1665, + 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, + 0, 0, 2770, 0, 3105, 1406, 1407, 0, 3408, 0, + 1638, 0, 1121, 1639, 0, 0, 0, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 0, 0, 3418, 0, 0, 0, + 0, 2322, 0, 2322, 0, 0, 0, 0, 1647, 0, + 0, 1121, 0, 0, 0, 0, 0, 0, 1649, 0, + 1638, 0, 0, 1639, 0, 1650, 0, 1640, 1641, 3443, + 0, 1644, 1645, 1646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1408, 1409, 0, 0, 1647, 0, + 0, 0, 1651, 0, 1675, 0, 0, 1675, 1649, 0, + 0, 0, 0, 0, 0, 1650, 0, 0, 1410, 1411, + 0, 1408, 1409, 0, 0, 0, 3468, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3105, 0, 0, 0, + 0, 0, 1651, 0, 0, 1410, 1411, 0, 1121, 0, + 0, 0, 1675, 0, 0, 0, 1675, 0, 0, 0, + 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 0, 0, + 0, 0, 0, 1440, 1440, 0, 1675, 1675, 0, 0, + 0, 3511, 0, 0, 0, 0, 0, 0, 0, 0, + 1675, 0, 0, 1675, 0, 0, 0, 0, 0, 1652, + 0, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, 1675, + 1675, 0, 0, 0, 0, 0, 1653, 0, 0, 0, + 0, 1654, 1638, 0, 0, 1639, 0, 0, 0, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 1675, 0, 0, 1652, + 0, 0, 0, 0, 1655, 1656, 0, 0, 0, 0, + 1647, 0, 0, 0, 0, 0, 1653, 0, 0, 1657, + 1649, 1654, 0, 0, 0, 0, 0, 1650, 3565, 3565, + 3565, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1655, 1656, 0, 0, 0, 1440, + 0, 0, 0, 0, 1651, 3565, 0, 1658, 0, 1657, + 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1660, 0, 0, 1661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1944, 1433, 0, - 0, 0, 0, 0, 1651, 0, 0, 1652, 1653, 1654, - 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, 0, - 0, 2751, 1663, 1663, 0, 0, 0, 0, 0, 1650, - 0, 1397, 1398, 0, 0, 1640, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1663, 0, 0, 0, - 1663, 0, 1641, 1663, 1663, 1663, 0, 1642, 1663, 0, - 0, 1663, 1663, 0, 0, 0, 0, 0, 0, 0, - 1663, 0, 1399, 1400, 0, 0, 0, 0, 0, 0, - 1643, 1644, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1645, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3565, 1658, 0, 0, + 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1660, 0, 0, 1661, 0, 0, + 0, 0, 1675, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1675, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1663, 0, 0, 0, 0, 0, 1944, 0, 0, + 0, 1652, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1653, 0, + 0, 0, 0, 1654, 0, 0, 1662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1663, 0, 0, 1646, 0, 0, 1647, 1651, 0, 0, - 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, - 1648, 0, 0, 1649, 2816, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1401, 1402, + 0, 0, 0, 0, 0, 0, 1655, 1656, 0, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1944, - 0, 0, 1403, 1404, 0, 0, 0, 0, 0, 0, + 0, 1657, 0, 0, 0, 0, 1662, 0, 0, 0, + 0, 0, 0, 0, 0, 1675, 1675, 1675, 0, 0, + 1955, 1955, 1955, 1955, 1955, 1955, 0, 0, 0, 1955, + 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1955, 1658, + 0, 0, 1659, 1675, 1675, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1660, 0, 0, 1661, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1675, + 0, 0, 0, 0, 1663, 1675, 0, 1664, 1665, 1666, + 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, 0, + 0, 2835, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1675, 0, 0, 0, 1663, 0, 0, 1664, 1665, 1666, + 0, 1667, 1668, 1669, 1670, 1671, 1672, 1675, 0, 0, + 0, 0, 0, 1675, 0, 0, 0, 0, 0, 0, + 0, 1675, 1675, 0, 0, 0, 0, 0, 0, 1955, + 1955, 0, 0, 0, 0, 0, 0, 0, 1662, 0, + 0, 0, 0, 1675, 1440, 1440, 1675, 0, 1675, 0, + 0, 0, 1675, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1638, 0, 0, 1639, + 0, 0, 0, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1663, 1663, 1663, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1647, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1649, 0, 0, 0, 1675, 0, + 0, 1650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1650, 0, 1663, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1651, 0, + 0, 0, 0, 0, 0, 0, 1663, 0, 0, 1664, + 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, + 0, 1638, 0, 2849, 1639, 0, 0, 0, 1640, 1641, + 1642, 1643, 1644, 1645, 1646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1647, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1649, + 1638, 0, 0, 1639, 0, 0, 1650, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 0, 0, 0, 0, 1638, 0, + 1675, 1639, 0, 0, 0, 1640, 1641, 0, 1647, 1644, + 1645, 1646, 0, 1651, 0, 1652, 0, 0, 1649, 0, + 0, 0, 1440, 0, 0, 1650, 1647, 0, 0, 0, + 0, 0, 1653, 0, 0, 0, 1649, 1654, 0, 0, + 0, 0, 0, 1650, 0, 0, 0, 0, 0, 0, + 0, 0, 1651, 0, 0, 0, 0, 0, 0, 0, + 1655, 1656, 0, 0, 0, 0, 0, 0, 0, 0, + 1651, 0, 0, 0, 0, 1657, 0, 0, 1675, 0, + 1675, 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1675, 0, 0, 1675, 0, 1675, 0, 0, + 1652, 1675, 0, 1658, 1955, 1955, 1659, 0, 1675, 1675, + 0, 0, 0, 0, 0, 0, 1675, 1653, 0, 0, + 1660, 0, 1654, 1661, 0, 1675, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1652, + 1675, 0, 0, 0, 0, 1655, 1656, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1653, 1652, 0, 0, + 1657, 1654, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1653, 0, 0, 0, 1440, 1654, + 0, 0, 0, 0, 1655, 1656, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1658, 1657, + 0, 1659, 1655, 1656, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1660, 0, 1657, 1661, 0, + 0, 0, 1662, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1658, 0, 0, + 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1660, 1658, 0, 1661, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, - 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1662, 0, 0, + 1955, 1440, 0, 0, 0, 0, 0, 0, 0, 0, + 1663, 0, 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, + 1670, 1671, 1672, 0, 0, 1675, 1675, 2916, 0, 0, + 0, 0, 0, 0, 0, 0, 1662, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1675, + 0, 0, 0, 0, 1662, 0, 0, 0, 1675, 0, + 0, 0, 1675, 1675, 1675, 0, 0, 1675, 0, 0, + 1675, 1675, 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1663, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1651, 0, 0, 1652, 1653, 1654, 0, 1655, 1656, 1657, - 1658, 1659, 1660, 0, 1663, 0, 0, 2825, 0, 0, + 0, 0, 0, 0, 0, 1663, 0, 0, 1664, 1665, + 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, + 1675, 0, 3153, 0, 0, 0, 1955, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1675, + 0, 0, 0, 0, 1663, 0, 0, 1664, 1665, 1666, + 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, 0, + 0, 3160, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, + 1668, 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 117, 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1663, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 0, 0, 0, 0, 0, 1056, 0, 0, 129, - 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, - 139, 1057, 141, 1058, 1059, 0, 144, 145, 146, 147, - 148, 149, 1060, 790, 150, 151, 152, 153, 1061, 1062, - 156, 1663, 157, 158, 159, 160, 791, 0, 792, 0, - 1063, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 1064, - 191, 192, 1065, 194, 1066, 195, 0, 196, 197, 198, - 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, - 0, 206, 207, 1067, 209, 210, 0, 211, 212, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 1068, - 222, 223, 224, 225, 226, 227, 793, 1069, 229, 0, - 230, 231, 1070, 233, 0, 234, 0, 235, 236, 0, - 237, 238, 239, 240, 241, 242, 0, 243, 0, 1071, - 1072, 246, 247, 0, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, - 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, - 272, 273, 274, 1073, 1074, 0, 1075, 0, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, - 0, 289, 290, 291, 292, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 1076, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 1077, 323, 1078, 325, 326, - 327, 328, 1079, 329, 330, 331, 332, 1080, 795, 334, - 1081, 336, 337, 338, 0, 339, 340, 0, 0, 1082, - 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, - 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 0, 0, 0, 0, 362, 363, 798, 365, - 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, - 375, 376, 377, 0, 378, 379, 380, 381, 382, 1083, - 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, - 402, 403, 404, 405, 406, 1084, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 0, 430, 431, 432, 1085, 434, 0, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 800, 0, 0, 450, 451, 0, 452, 453, 454, - 455, 456, 457, 458, 0, 459, 1086, 1087, 0, 0, - 462, 463, 801, 465, 802, 1088, 467, 468, 803, 470, - 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, - 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 487, 1089, 489, 0, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 1090, - 0, 0, 0, 0, 0, 0, 1091, 1092, 1093, 0, - 0, 0, 0, 1094, 0, 1095, 0, 0, 0, 0, - 1096, 1097, 1098, 1099, 0, 2671, 117, 1050, 820, 1051, - 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, - 0, 0, 1056, 0, 0, 129, 130, 131, 0, 132, - 133, 134, 135, 136, 137, 138, 139, 1057, 141, 1058, - 1059, 0, 144, 145, 146, 147, 148, 149, 1060, 790, - 150, 151, 152, 153, 1061, 1062, 156, 0, 157, 158, - 159, 160, 791, 0, 792, 0, 1063, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 1064, 191, 192, 1065, 194, - 1066, 195, 0, 196, 197, 198, 199, 200, 201, 0, - 0, 202, 203, 204, 205, 0, 0, 206, 207, 1067, - 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 1068, 222, 223, 224, 225, - 226, 227, 793, 1069, 229, 0, 230, 231, 1070, 233, - 0, 234, 0, 235, 236, 0, 237, 238, 239, 240, - 241, 242, 0, 243, 0, 1071, 1072, 246, 247, 0, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, - 0, 267, 268, 269, 270, 271, 272, 273, 274, 1073, - 1074, 0, 1075, 0, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 0, 0, 289, 290, 291, - 292, 0, 293, 294, 295, 296, 297, 298, 299, 300, - 1076, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 1077, 323, 1078, 325, 326, 327, 328, 1079, 329, - 330, 331, 332, 1080, 795, 334, 1081, 336, 337, 338, - 0, 339, 340, 0, 0, 1082, 342, 343, 0, 0, - 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, - 0, 0, 362, 363, 798, 365, 366, 367, 368, 369, - 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, - 378, 379, 380, 381, 382, 1083, 384, 385, 386, 387, - 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 0, 401, 402, 403, 404, 405, - 406, 1084, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 0, 430, 431, 432, - 1085, 434, 0, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 800, 0, 0, - 450, 451, 0, 452, 453, 454, 455, 456, 457, 458, - 0, 459, 1086, 1087, 0, 0, 462, 463, 801, 465, - 802, 1088, 467, 468, 803, 470, 471, 472, 473, 474, - 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, - 0, 482, 483, 484, 485, 486, 487, 1089, 489, 0, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, - 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 1090, 0, 0, 0, 0, - 0, 0, 1091, 1092, 1093, 0, 0, 0, 0, 1094, - 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, 1099, - 0, 3284, 117, 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 0, 0, 1056, 0, - 0, 129, 130, 131, 0, 132, 133, 134, 135, 136, - 137, 138, 139, 1057, 141, 1058, 1059, 0, 144, 145, - 146, 147, 148, 149, 1060, 790, 150, 151, 152, 153, - 1061, 1062, 156, 0, 157, 158, 159, 160, 791, 0, - 792, 0, 1063, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 1064, 191, 192, 1065, 194, 1066, 195, 0, 196, - 197, 198, 199, 200, 201, 14, 15, 202, 203, 204, - 205, 0, 0, 206, 207, 1067, 209, 210, 0, 211, - 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 1068, 222, 223, 224, 225, 226, 227, 793, 1069, - 229, 0, 230, 231, 1070, 233, 0, 234, 0, 235, - 236, 23, 237, 238, 239, 240, 241, 242, 0, 243, - 0, 1071, 1072, 246, 247, 0, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, - 261, 262, 263, 264, 265, 266, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, - 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, - 288, 0, 0, 289, 290, 291, 292, 0, 293, 294, - 295, 296, 297, 298, 299, 300, 1076, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 1077, 323, 1078, - 325, 326, 327, 328, 1079, 329, 330, 331, 332, 1080, - 795, 334, 1081, 336, 337, 338, 0, 339, 340, 0, - 0, 1082, 342, 343, 0, 0, 344, 345, 346, 347, - 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 26, 27, 28, 0, 362, 363, - 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, - 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, - 382, 1083, 384, 385, 386, 387, 0, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 0, 401, 402, 403, 404, 405, 406, 1084, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 33, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 35, 430, 431, 432, 1085, 434, 0, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 800, 37, 0, 450, 451, 38, 452, - 453, 454, 455, 456, 457, 458, 0, 459, 1086, 1087, - 0, 0, 462, 463, 801, 465, 802, 1088, 467, 468, - 803, 470, 471, 472, 473, 474, 0, 0, 475, 476, - 477, 40, 478, 479, 480, 481, 0, 482, 483, 484, - 485, 486, 804, 1089, 489, 0, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 0, 0, 499, 0, 44, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 1090, 0, 45, 0, 0, 0, 0, 1091, 1092, - 1093, 0, 0, 0, 0, 1094, 0, 1095, 3259, 0, - 0, 0, 1096, 1097, 1098, 1099, 117, 1050, 820, 1051, - 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, - 0, 0, 1056, 0, 0, 129, 130, 131, 0, 132, - 133, 134, 135, 136, 137, 138, 139, 1057, 141, 1058, - 1059, 0, 144, 145, 146, 147, 148, 149, 1060, 790, - 150, 151, 152, 153, 1061, 1062, 156, 0, 157, 158, - 159, 160, 791, 0, 792, 0, 1063, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 1064, 191, 192, 1065, 194, - 1066, 195, 0, 196, 197, 198, 199, 200, 201, 14, - 15, 202, 203, 204, 205, 0, 0, 206, 207, 1067, - 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 1068, 222, 223, 224, 225, - 226, 227, 793, 1069, 229, 0, 230, 231, 1070, 233, - 0, 234, 0, 235, 236, 23, 237, 238, 239, 240, - 241, 242, 0, 243, 0, 1071, 1072, 246, 247, 0, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, - 0, 267, 268, 269, 270, 271, 272, 273, 274, 1073, - 1074, 0, 1075, 0, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 0, 0, 289, 290, 291, - 292, 0, 293, 294, 295, 296, 297, 298, 299, 300, - 1076, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 1077, 323, 1078, 325, 326, 327, 328, 1079, 329, - 330, 331, 332, 1080, 795, 334, 1081, 336, 337, 338, - 0, 339, 340, 0, 0, 1082, 342, 343, 0, 0, - 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 26, 27, - 28, 0, 362, 363, 798, 365, 366, 367, 368, 369, - 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, - 378, 379, 380, 381, 382, 1083, 384, 385, 386, 387, - 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 0, 401, 402, 403, 404, 405, - 406, 1084, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 33, 0, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 35, 430, 431, 432, - 1085, 434, 0, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 447, 448, 800, 37, 0, - 450, 451, 38, 452, 453, 454, 455, 456, 457, 458, - 0, 459, 1086, 1087, 0, 0, 462, 463, 801, 465, - 802, 1088, 467, 468, 803, 470, 471, 472, 473, 474, - 0, 0, 475, 476, 477, 40, 478, 479, 480, 481, - 0, 482, 483, 484, 485, 486, 804, 1089, 489, 0, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, - 0, 499, 0, 44, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 1090, 0, 45, 0, 0, - 0, 0, 1091, 1092, 1093, 0, 0, 0, 0, 1094, - 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, 1099, - 117, 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 0, 0, 0, 0, 0, 1056, 0, 0, 129, - 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, - 139, 1057, 141, 1058, 1059, 0, 144, 145, 146, 147, - 148, 149, 1060, 790, 150, 151, 152, 153, 1061, 1062, - 156, 0, 157, 158, 159, 160, 791, 0, 792, 0, - 1063, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 1064, - 191, 192, 1065, 194, 1066, 195, 0, 196, 197, 198, - 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, - 0, 206, 207, 1067, 209, 210, 0, 211, 212, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 1068, - 222, 223, 224, 225, 226, 227, 793, 1069, 229, 0, - 230, 231, 1070, 233, 0, 234, 0, 235, 236, 23, - 237, 238, 239, 240, 241, 242, 0, 243, 0, 1071, - 1072, 246, 247, 0, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, - 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, - 272, 273, 274, 1073, 1074, 0, 1075, 0, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, - 0, 289, 290, 291, 292, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 1076, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 1077, 323, 1078, 325, 326, - 327, 328, 1079, 329, 330, 331, 332, 1080, 795, 334, - 1081, 336, 337, 338, 0, 339, 340, 0, 0, 1082, - 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, - 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 26, 27, 28, 0, 362, 363, 798, 365, - 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, - 375, 376, 377, 0, 378, 379, 380, 381, 382, 1083, - 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, - 402, 403, 404, 405, 406, 1084, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 33, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 0, 430, 431, 432, 1085, 434, 0, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 800, 0, 0, 450, 451, 38, 452, 453, 454, - 455, 456, 457, 458, 0, 459, 1086, 1087, 0, 0, - 462, 463, 801, 465, 802, 1088, 467, 468, 803, 470, - 471, 472, 473, 474, 0, 0, 475, 476, 477, 40, - 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 804, 1089, 489, 0, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 0, 0, 499, 0, 44, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 1090, - 0, 45, 0, 0, 0, 0, 1091, 1092, 1093, 0, - 0, 0, 0, 1094, 0, 1095, 0, 0, 0, 0, - 1096, 1097, 1098, 1099, 1257, 1050, 820, 1051, 1052, 1053, - 1054, 1055, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1675, 1675, 1675, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1675, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1675, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1675, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1675, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1675, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 1675, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 14, 15, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 23, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 26, 27, 28, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 33, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 35, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 37, 0, 450, 451, + 38, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 40, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 804, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 44, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 45, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 3290, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 14, 15, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 23, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 26, 27, 28, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 33, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 35, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 37, 0, 450, 451, 38, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 40, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 804, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 44, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 45, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, - 125, 1258, 126, 127, 128, 0, 0, 0, 1259, 0, - 1056, 0, 0, 1260, 130, 131, 0, 132, 133, 134, - 1261, 136, 137, 138, 139, 1057, 1262, 1058, 1059, 0, - 144, 145, 146, 147, 148, 149, 1060, 790, 150, 151, - 152, 153, 1061, 1062, 156, 0, 157, 158, 159, 160, - 791, 0, 1263, 0, 1264, 164, 165, 166, 167, 168, - 1265, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 178, 0, 1266, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 1064, 191, 192, 1065, 194, 1066, 195, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, - 203, 204, 205, 1267, 0, 206, 207, 1067, 209, 210, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 1068, 222, 223, 224, 225, 226, 227, - 793, 1069, 229, 0, 230, 231, 1070, 233, 0, 234, - 0, 235, 1268, 0, 1269, 238, 239, 1270, 1271, 242, - 0, 243, 0, 1071, 1072, 246, 247, 0, 248, 249, - 250, 251, 252, 253, 254, 1272, 256, 257, 258, 259, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 23, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, - 1273, 269, 270, 271, 272, 273, 274, 1073, 1074, 0, - 1075, 0, 278, 1274, 1275, 281, 1276, 283, 284, 285, - 286, 287, 288, 0, 0, 289, 1277, 291, 1278, 0, - 293, 294, 295, 296, 297, 298, 299, 300, 1279, 302, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 1077, - 1280, 1078, 325, 326, 327, 328, 1079, 329, 330, 1281, - 332, 1080, 795, 334, 1081, 336, 337, 338, 0, 339, - 340, 0, 0, 1082, 342, 343, 0, 0, 344, 345, - 346, 1282, 348, 1283, 797, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, - 362, 363, 798, 1284, 366, 367, 368, 369, 370, 371, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 26, 27, 28, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, - 380, 381, 382, 1083, 384, 385, 386, 387, 0, 388, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 0, 401, 402, 1285, 404, 405, 406, 1084, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 0, 1286, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 0, 1287, 431, 432, 1085, 434, + 418, 419, 420, 33, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 1288, 448, 800, 0, 0, 450, 451, - 0, 452, 1289, 454, 455, 456, 457, 458, 0, 459, - 1086, 1087, 0, 0, 462, 463, 801, 465, 802, 1088, - 467, 468, 1290, 470, 471, 472, 473, 474, 0, 0, - 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, - 483, 484, 485, 486, 487, 1089, 489, 1291, 490, 1292, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 38, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 40, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 804, 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, - 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 0, 44, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 1090, 0, 0, 0, 0, 0, 0, - 1091, 1092, 1093, 0, 0, 0, 0, 1094, 0, 1095, - 1293, 0, 0, 0, 1096, 1097, 1098, 1099, 117, 1050, - 820, 1051, 1052, 0, 1054, 1055, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, - 0, 0, 0, 0, 1056, 0, 0, 129, 130, 131, - 0, 132, 133, 134, 135, 136, 137, 138, 139, 1057, - 141, 1058, 1059, 0, 144, 145, 146, 147, 148, 149, - 1060, 790, 150, 151, 152, 153, 1061, 1062, 156, 0, - 157, 158, 159, 160, 791, 0, 792, 0, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 1064, 191, 192, - 1065, 194, 0, 195, 0, 196, 197, 198, 199, 200, - 201, 14, 15, 202, 203, 204, 205, 0, 0, 206, - 207, 1067, 209, 210, 0, 211, 212, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 1068, 222, 223, - 224, 225, 226, 227, 793, 1069, 229, 0, 230, 231, - 1070, 233, 0, 234, 0, 235, 236, 23, 237, 238, - 239, 240, 241, 242, 0, 243, 0, 1071, 1072, 246, - 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, - 265, 266, 0, 267, 268, 269, 270, 271, 272, 273, - 274, 1073, 1074, 0, 1075, 0, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 0, 0, 289, - 290, 291, 292, 0, 293, 294, 295, 296, 297, 298, - 299, 300, 1076, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 1077, 323, 1078, 325, 326, 327, 328, - 0, 329, 330, 331, 332, 1080, 795, 334, 1081, 336, - 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, - 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 26, 27, 28, 0, 362, 363, 798, 365, 366, 367, - 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, - 377, 0, 378, 379, 380, 381, 382, 1083, 384, 385, - 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 0, 401, 402, 403, - 404, 405, 406, 1084, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 33, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 35, 430, - 431, 432, 1085, 434, 0, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, - 37, 0, 450, 451, 38, 452, 453, 454, 455, 456, - 457, 458, 0, 459, 1086, 1087, 0, 0, 462, 463, - 801, 465, 802, 1088, 467, 468, 803, 470, 471, 472, - 473, 474, 0, 0, 475, 476, 477, 40, 478, 479, - 480, 481, 0, 482, 483, 484, 485, 486, 804, 1089, - 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 0, 0, 499, 0, 44, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 0, 0, 45, - 0, 0, 0, 117, 1050, 820, 1051, 1052, 1053, 1054, - 1055, 1094, 0, 1095, 0, 0, 0, 0, 1096, 1097, - 1098, 1099, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 0, 0, 1056, - 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 1057, 141, 1058, 1059, 1440, 144, - 145, 146, 147, 148, 149, 1060, 790, 150, 151, 152, - 153, 1061, 1062, 156, 0, 157, 158, 159, 160, 791, - 0, 792, 0, 1063, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 1064, 191, 192, 1065, 194, 1066, 195, 0, - 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 206, 207, 1067, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 1068, 222, 223, 224, 225, 226, 227, 793, - 1069, 229, 0, 230, 231, 1070, 233, 0, 234, 0, - 235, 236, 1441, 237, 238, 239, 240, 241, 242, 0, - 243, 0, 1071, 1072, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, - 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 0, 1442, 289, 290, 291, 292, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 1076, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 1077, 323, - 1078, 325, 326, 327, 328, 1079, 329, 330, 331, 332, - 1080, 795, 334, 1081, 336, 337, 338, 0, 339, 340, - 0, 0, 1082, 342, 343, 0, 0, 344, 345, 346, - 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, - 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, - 381, 382, 1083, 384, 385, 386, 387, 0, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 403, 404, 405, 406, 1084, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 430, 431, 432, 1085, 434, 0, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, - 452, 453, 454, 455, 456, 457, 458, 0, 459, 1086, - 1087, 0, 1443, 462, 463, 801, 465, 802, 1088, 467, - 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, - 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 1089, 489, 0, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, - 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 1090, 0, 0, 0, 0, 0, 0, 1091, - 1092, 1093, 0, 0, 0, 0, 1094, 0, 1095, 0, - 0, 0, 0, 1096, 1097, 1098, 1099, 1257, 1050, 820, - 1051, 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 1259, 0, 1056, 0, 0, 1260, 130, 131, 0, - 132, 133, 134, 1261, 136, 137, 138, 139, 1057, 1262, - 1058, 1059, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 1061, 1062, 156, 0, 157, - 158, 159, 160, 791, 0, 1263, 0, 1264, 164, 165, - 166, 167, 168, 1265, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 1266, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1064, 191, 192, 1065, - 194, 1066, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 1068, 222, 223, 224, - 225, 226, 227, 793, 1069, 229, 0, 230, 231, 1070, - 233, 0, 234, 0, 235, 1268, 0, 1269, 238, 239, - 1270, 1271, 242, 0, 243, 0, 1071, 1072, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 1272, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 1273, 269, 270, 271, 272, 273, 274, - 1073, 1074, 0, 1075, 0, 278, 1274, 1275, 281, 1276, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 1277, - 291, 1278, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1279, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1077, 1280, 1078, 325, 326, 327, 328, 1079, - 329, 330, 1281, 332, 1080, 795, 334, 1081, 336, 337, - 338, 0, 339, 340, 0, 0, 1082, 342, 343, 0, - 0, 344, 345, 346, 1282, 348, 1283, 797, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 1284, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1083, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 1285, 404, - 405, 406, 1084, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 1286, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 1287, 431, - 432, 1085, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 1288, 448, 800, 0, - 0, 450, 451, 0, 452, 1289, 454, 455, 456, 457, - 458, 0, 459, 1086, 1087, 0, 0, 462, 463, 801, - 465, 802, 1088, 467, 468, 1290, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 1089, 489, - 2311, 490, 1292, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 1090, 0, 0, 0, - 0, 0, 0, 1091, 1092, 1093, 0, 0, 0, 0, - 1094, 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 1257, 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 1259, 0, 1056, 0, 0, - 1260, 130, 131, 0, 132, 133, 134, 1261, 136, 137, - 138, 139, 1057, 1262, 1058, 1059, 0, 144, 145, 146, - 147, 148, 149, 1060, 790, 150, 151, 152, 153, 1061, - 1062, 156, 0, 157, 158, 159, 160, 791, 0, 1263, - 0, 1264, 164, 165, 166, 167, 168, 1265, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 1266, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 1064, 191, 192, 1065, 194, 1066, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 1067, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 1068, 222, 223, 224, 225, 226, 227, 793, 1069, 229, - 0, 230, 231, 1070, 233, 0, 234, 0, 235, 1268, - 0, 1269, 238, 239, 1270, 1271, 242, 0, 243, 0, - 1071, 1072, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 1272, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 1273, 269, 270, - 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, 278, - 1274, 1275, 281, 1276, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 1277, 291, 1278, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 1279, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 1077, 1280, 1078, 325, - 326, 327, 328, 1079, 329, 330, 1281, 332, 1080, 795, - 334, 1081, 336, 337, 338, 0, 339, 340, 0, 0, - 1082, 342, 343, 0, 0, 344, 345, 346, 1282, 348, - 1283, 797, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, - 1284, 366, 367, 368, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 1083, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 1285, 404, 405, 406, 1084, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 1286, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 0, 1287, 431, 432, 1085, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 1288, 448, 800, 0, 0, 450, 451, 0, 452, 1289, - 454, 455, 456, 457, 458, 0, 459, 1086, 1087, 0, - 0, 462, 463, 801, 465, 802, 1088, 467, 468, 1290, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 487, 1089, 489, 0, 490, 1292, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 1090, 0, 0, 0, 0, 0, 0, 1091, 1092, 1093, - 0, 0, 0, 0, 1094, 0, 1095, 2368, 0, 0, - 0, 1096, 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, - 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, -1132, 126, 127, 128, 0, 0, 0, 0, - -1132, 1056, 0, 0, 129, 130, 131, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 1057, 141, 1058, 1059, - 0, 144, 145, 146, 147, 148, 149, 1060, 790, 150, - 151, 152, 153, 1061, 1062, 156, 0, 157, 158, 159, - 160, 791, 0, 792, 0, 1063, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 1064, 191, 192, 1065, 194, 1066, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 1067, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 1068, 222, 223, 224, 225, 226, - 227, 793, 1069, 229, 0, 230, 231, 1070, 233, 0, - 234, 0, 235, 236, 0, 237, 238, 239, 240, 241, - 242, 0, 243, 0, 1071, 1072, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 1073, 1074, - 0, 1075, 0, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 1076, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 1077, 323, 1078, 325, 326, 327, 328, 1079, 329, 330, - 331, 332, 1080, 795, 334, 1081, 336, 337, 338, 0, - 339, 340, 0, 0, 1082, 342, 343, 0, 0, 344, - 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 1083, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, - 1084, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, 430, 431, 432, 1085, - 434, -1132, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, - 451, 0, 452, 453, 454, 455, 456, 457, 458, 0, - 459, 1086, 1087, 0, 0, 462, 463, 801, 465, 802, - 1088, 467, 468, 803, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 487, 1089, 489, 0, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 1090, 0, 0, 0, 0, 0, - 0, 1091, 1092, 1093, 0, 0, 0, 0, 1094, 0, - 1095, 0, 0, 0, 0, 1096, 1097, 1098, 1099, 1257, - 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, 0, 0, + 518, 519, 520, 1096, 0, 45, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 1264, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 1259, 0, 1056, 0, 0, 1260, 130, - 131, 0, 132, 133, 134, 1261, 136, 137, 138, 139, - 1057, 1262, 1058, 1059, 0, 144, 145, 146, 147, 148, - 149, 1060, 790, 150, 151, 152, 153, 1061, 1062, 156, - 0, 157, 158, 159, 160, 791, 0, 1263, 0, 1264, - 164, 165, 166, 167, 168, 1265, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 178, 0, 1266, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 1064, 191, - 192, 1065, 194, 1066, 195, 0, 196, 197, 198, 199, - 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 1067, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 1068, 222, - 223, 224, 225, 226, 227, 793, 1069, 229, 0, 230, - 231, 1070, 233, 0, 234, 0, 235, 1268, 0, 1269, - 238, 239, 1270, 1271, 242, 0, 243, 0, 1071, 1072, + 120, 121, 122, 123, 124, 125, 1265, 126, 127, 128, + 0, 0, 0, 1266, 0, 1062, 0, 0, 1267, 130, + 131, 0, 132, 133, 134, 1268, 136, 137, 138, 139, + 1063, 1269, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 1270, 0, 1271, + 164, 165, 166, 167, 168, 1272, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 1273, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 1274, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 1275, 0, 1276, + 238, 239, 1277, 1278, 242, 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, - 1272, 256, 257, 258, 259, 0, 260, 261, 262, 263, - 264, 265, 266, 0, 267, 1273, 269, 270, 271, 272, - 273, 274, 1073, 1074, 0, 1075, 0, 278, 1274, 1275, - 281, 1276, 283, 284, 285, 286, 287, 288, 0, 0, - 289, 1277, 291, 1278, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 1279, 302, 303, 304, 305, 306, 307, + 1279, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 1280, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 1281, 1282, + 281, 1283, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 1284, 291, 1285, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1286, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 1077, 1280, 1078, 325, 326, 327, - 328, 1079, 329, 330, 1281, 332, 1080, 795, 334, 1081, - 336, 337, 338, 0, 339, 340, 0, 0, 1082, 342, - 343, 0, 0, 344, 345, 346, 1282, 348, 1283, 797, + 318, 319, 320, 321, 1083, 1287, 1084, 325, 326, 327, + 328, 1085, 329, 330, 1288, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 1289, 348, 1290, 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 0, 0, 0, 0, 362, 363, 798, 1284, 366, + 361, 0, 0, 0, 0, 362, 363, 798, 1291, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 1083, 384, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 1285, 404, 405, 406, 1084, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 0, 1286, + 1292, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 1293, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 1287, 431, 432, 1085, 434, 0, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 1288, 448, - 800, 0, 0, 450, 451, 0, 452, 1289, 454, 455, - 456, 457, 458, 0, 459, 1086, 1087, 0, 0, 462, - 463, 801, 465, 802, 1088, 467, 468, 1290, 470, 471, + 1294, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 1295, 448, + 800, 0, 0, 450, 451, 0, 452, 1296, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 1297, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 1089, 489, 0, 490, 1292, 492, 493, 494, 495, 496, + 1095, 489, 1298, 490, 1299, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 1090, 0, - 0, 0, 0, 0, 0, 1091, 1092, 1093, 0, 0, - 0, 0, 1094, 0, 1095, 3126, 0, 0, 0, 1096, - 1097, 1098, 1099, 1257, 1050, 820, 1051, 1052, 1053, 1054, - 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 1259, 0, 1056, - 0, 0, 1260, 130, 131, 0, 132, 133, 134, 1261, - 136, 137, 138, 139, 1057, 1262, 1058, 1059, 0, 144, - 145, 146, 147, 148, 149, 1060, 790, 150, 151, 152, - 153, 1061, 1062, 156, 0, 157, 158, 159, 160, 791, - 0, 1263, 0, 1264, 164, 165, 166, 167, 168, 1265, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 1266, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 1064, 191, 192, 1065, 194, 1066, 195, 0, - 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 206, 207, 1067, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 1068, 222, 223, 224, 225, 226, 227, 793, - 1069, 229, 0, 230, 231, 1070, 233, 0, 234, 0, - 235, 1268, 0, 1269, 238, 239, 1270, 1271, 242, 0, - 243, 0, 1071, 1072, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 1272, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 1273, - 269, 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, - 0, 278, 1274, 1275, 281, 1276, 283, 284, 285, 286, - 287, 288, 0, 0, 289, 1277, 291, 1278, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 1279, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 1077, 1280, - 1078, 325, 326, 327, 328, 1079, 329, 330, 1281, 332, - 1080, 795, 334, 1081, 336, 337, 338, 0, 339, 340, - 0, 0, 1082, 342, 343, 0, 0, 344, 345, 346, - 1282, 348, 1283, 797, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 798, 1284, 366, 367, 368, 369, 370, 371, 0, - 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, - 381, 382, 1083, 384, 385, 386, 387, 0, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 1285, 404, 405, 406, 1084, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 0, 1286, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 1287, 431, 432, 1085, 434, 0, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 1288, 448, 800, 0, 0, 450, 451, 0, - 452, 1289, 454, 455, 456, 457, 458, 0, 459, 1086, - 1087, 0, 0, 462, 463, 801, 465, 802, 1088, 467, - 468, 1290, 470, 471, 472, 473, 474, 0, 0, 475, - 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 1089, 489, 0, 490, 1292, 492, - 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, - 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 1090, 0, 0, 0, 0, 0, 0, 1091, - 1092, 1093, 0, 0, 0, 0, 1094, 0, 1095, 0, - 0, 0, 0, 1096, 1097, 1098, 1099, 117, 1050, 820, - 1051, 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 1705, 126, 127, 128, 0, 0, - 0, 0, 0, 1056, 0, 0, 129, 130, 131, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 1057, 141, - 1058, 1059, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 1061, 1062, 156, 0, 157, - 158, 159, 160, 791, 0, 792, 0, 1063, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1064, 191, 192, 1065, - 194, 1066, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 1068, 222, 223, 224, - 225, 226, 227, 793, 1069, 229, 0, 230, 231, 1070, - 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, - 240, 241, 242, 0, 243, 0, 1071, 1072, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 1073, 1074, 0, 1075, 0, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, - 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1076, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1077, 323, 1078, 325, 326, 327, 328, 1079, - 329, 330, 331, 332, 1080, 795, 334, 1081, 336, 337, - 338, 0, 339, 340, 0, 0, 1082, 342, 343, 0, - 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1083, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, - 405, 406, 1084, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, - 432, 1085, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, - 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, - 458, 0, 459, 1086, 1087, 0, 0, 462, 463, 801, - 465, 802, 1088, 467, 468, 803, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 1089, 489, - 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 1090, 0, 0, 0, - 0, 0, 0, 1091, 1092, 1093, 0, 0, 0, 0, - 1094, 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 117, 1720, 820, 1051, 1052, 1053, 1721, 1055, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 1722, 126, - 127, 128, 0, 0, 0, 0, 0, 1056, 0, 0, - 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 1057, 141, 1058, 1059, 0, 144, 145, 146, - 147, 148, 149, 1060, 790, 150, 151, 152, 153, 1061, - 1062, 156, 0, 157, 158, 159, 160, 791, 0, 792, - 0, 1063, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 1064, 191, 192, 1065, 194, 1066, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 1067, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 1068, 222, 223, 224, 225, 226, 227, 793, 1069, 229, - 0, 230, 231, 1070, 233, 0, 234, 0, 235, 236, - 0, 237, 238, 239, 240, 241, 242, 0, 243, 0, - 1071, 1072, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 290, 291, 292, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 1076, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 1077, 323, 1078, 325, - 326, 327, 328, 1079, 329, 330, 331, 332, 1080, 795, - 334, 1081, 336, 337, 338, 0, 339, 340, 0, 0, - 1082, 342, 343, 0, 0, 344, 345, 346, 347, 348, - 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, - 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 1083, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 403, 404, 405, 406, 1084, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 0, 430, 431, 432, 1085, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, - 454, 455, 456, 457, 458, 0, 459, 1086, 1087, 0, - 0, 462, 463, 801, 465, 802, 1088, 467, 468, 803, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 487, 1089, 489, 0, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 1090, 0, 0, 0, 0, 0, 0, 1091, 1092, 1093, - 0, 0, 0, 0, 1094, 0, 1095, 0, 0, 0, - 0, 1096, 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, - 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, - 0, 1056, 0, 0, 129, 130, 131, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 1057, 141, 1058, 1059, - 0, 144, 145, 146, 147, 148, 149, 1060, 790, 150, - 151, 152, 153, 1061, 1062, 156, 0, 157, 158, 159, - 160, 791, 0, 792, 0, 1063, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 1064, 191, 192, 1065, 194, 1066, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 1067, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 1068, 222, 223, 224, 225, 226, - 227, 793, 1069, 229, 0, 230, 231, 1070, 233, 0, - 234, 0, 235, 236, 1441, 237, 238, 239, 240, 241, - 242, 0, 243, 0, 1071, 1072, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 1073, 1074, - 0, 1075, 0, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 1076, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 1077, 323, 1078, 325, 326, 327, 328, 1079, 329, 330, - 331, 332, 1080, 795, 334, 1081, 336, 337, 338, 0, - 339, 340, 0, 0, 1082, 342, 343, 0, 0, 344, - 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 1083, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, - 1084, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, 430, 431, 432, 1085, - 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, - 451, 0, 452, 453, 454, 455, 456, 457, 458, 0, - 459, 1086, 1087, 0, 0, 462, 463, 801, 465, 802, - 1088, 467, 468, 803, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 487, 1089, 489, 0, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 1090, 0, 0, 0, 0, 0, - 0, 1091, 1092, 1093, 0, 0, 0, 0, 1094, 0, - 1095, 0, 0, 0, 0, 1096, 1097, 1098, 1099, 117, - 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, 0, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 1300, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 0, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 0, 195, + 0, 196, 197, 198, 199, 200, 201, 14, 15, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 23, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 0, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 26, 27, 28, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 33, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 35, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 37, 0, 450, 451, + 38, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 40, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 804, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 44, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 0, 0, 45, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 1056, 0, 0, 129, 130, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 1057, 141, 1058, 1059, 0, 144, 145, 146, 147, 148, - 149, 1060, 790, 150, 151, 152, 153, 1061, 1062, 156, - 0, 157, 158, 159, 160, 791, 0, 792, 0, 1063, + 1063, 141, 1064, 1065, 1447, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 1064, 191, - 192, 1065, 194, 1066, 195, 0, 196, 197, 198, 199, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 1067, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 1068, 222, - 223, 224, 225, 226, 227, 793, 1069, 229, 0, 230, - 231, 1070, 233, 0, 234, 0, 235, 236, 0, 237, - 238, 239, 240, 241, 242, 0, 243, 0, 1071, 1072, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 1448, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 1073, 1074, 0, 1075, 0, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 1449, 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 1076, 302, 303, 304, 305, 306, 307, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 1077, 323, 1078, 325, 326, 327, - 328, 1079, 329, 330, 331, 332, 1080, 795, 334, 1081, - 336, 337, 338, 0, 339, 340, 0, 0, 1082, 342, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 1083, 384, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 403, 404, 405, 406, 1084, 408, 409, 410, 411, 412, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 430, 431, 432, 1085, 434, 0, 435, 436, 437, 438, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, - 456, 457, 458, 0, 459, 1086, 1087, 0, 0, 462, - 463, 801, 465, 802, 1088, 467, 468, 803, 470, 471, + 456, 457, 458, 0, 459, 1092, 1093, 0, 1450, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 1089, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 1090, 0, - 0, 0, 0, 0, 0, 1091, 1092, 1093, 0, 0, - 0, 0, 1094, 0, 1095, 2078, 0, 0, 0, 1096, - 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, 1053, 1054, - 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 0, 0, 1056, - 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 1057, 141, 1058, 1059, 0, 144, - 145, 146, 147, 148, 149, 1060, 790, 150, 151, 152, - 153, 1061, 1062, 156, 0, 157, 158, 159, 160, 791, - 0, 792, 0, 1063, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 1064, 191, 192, 1065, 194, 1066, 195, 0, - 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 206, 207, 1067, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 1068, 222, 223, 224, 225, 226, 227, 793, - 1069, 229, 0, 230, 231, 1070, 233, 0, 234, 0, - 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, - 243, 0, 1071, 1072, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, - 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 1076, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 1077, 323, - 1078, 325, 326, 327, 328, 1079, 329, 330, 331, 332, - 1080, 795, 334, 1081, 336, 337, 338, 0, 339, 340, - 0, 0, 1082, 342, 343, 0, 0, 344, 345, 346, - 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, - 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, - 381, 382, 1083, 384, 385, 386, 387, 0, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 403, 404, 405, 406, 1084, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 430, 431, 432, 1085, 434, 0, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 800, 0, 0, 450, 451, 2730, - 452, 453, 454, 455, 456, 457, 458, 0, 459, 1086, - 1087, 0, 0, 462, 463, 801, 465, 802, 1088, 467, - 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, - 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 1089, 489, 0, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, - 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 1090, 0, 0, 0, 0, 0, 0, 1091, - 1092, 1093, 0, 0, 0, 0, 1094, 0, 1095, 0, - 0, 0, 0, 1096, 1097, 1098, 1099, 117, 1050, 820, - 1051, 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 1056, 0, 0, 129, 130, 131, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 1057, 141, - 1058, 1059, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 1061, 1062, 156, 0, 157, - 158, 159, 160, 791, 0, 792, 0, 1063, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1064, 191, 192, 1065, - 194, 1066, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 1068, 222, 223, 224, - 225, 226, 227, 793, 1069, 229, 0, 230, 231, 1070, - 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, - 240, 241, 242, 0, 243, 0, 1071, 1072, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 1073, 1074, 0, 1075, 0, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, - 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1076, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1077, 323, 1078, 325, 326, 327, 328, 1079, - 329, 330, 331, 332, 1080, 795, 334, 1081, 336, 337, - 338, 0, 339, 340, 0, 0, 1082, 342, 343, 0, - 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1083, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, - 405, 406, 1084, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, - 432, 1085, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, - 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, - 458, 0, 459, 1086, 1087, 0, 0, 462, 463, 801, - 465, 802, 1088, 467, 468, 803, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 1089, 489, - 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 0, 2851, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 1090, 0, 0, 0, - 0, 0, 0, 1091, 1092, 1093, 0, 0, 0, 0, - 1094, 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 117, 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 3069, 126, - 127, 128, 0, 0, 0, 0, 0, 1056, 0, 0, - 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 1057, 141, 1058, 1059, 0, 144, 145, 146, - 147, 148, 149, 1060, 790, 150, 151, 152, 153, 1061, - 1062, 156, 0, 157, 158, 159, 160, 791, 0, 792, - 0, 1063, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, - 180, 3070, 182, 183, 184, 185, 186, 187, 188, 189, - 1064, 191, 192, 1065, 194, 1066, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 1067, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 1068, 222, 223, 224, 225, 226, 227, 793, 1069, 229, - 0, 230, 231, 1070, 233, 0, 234, 0, 235, 236, - 0, 237, 238, 239, 240, 241, 242, 0, 243, 0, - 3071, 1072, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 290, 291, 292, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 1076, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 1077, 323, 1078, 325, - 326, 327, 328, 1079, 329, 330, 331, 332, 1080, 795, - 334, 1081, 336, 337, 338, 0, 339, 340, 0, 0, - 1082, 342, 343, 0, 0, 344, 345, 346, 347, 348, - 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, - 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 1083, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 403, 404, 405, 3072, 1084, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 0, 430, 431, 432, 1085, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, - 454, 455, 456, 457, 458, 0, 459, 1086, 1087, 0, - 0, 462, 463, 801, 465, 802, 1088, 467, 468, 803, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 487, 1089, 489, 0, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 1090, 0, 0, 0, 0, 0, 0, 1091, 1092, 1093, - 0, 0, 0, 0, 1094, 0, 3073, 0, 0, 0, - 0, 1096, 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, - 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, - 0, 1056, 0, 0, 129, 130, 131, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 1057, 141, 1058, 1059, - 0, 144, 145, 146, 147, 148, 149, 1060, 790, 150, - 151, 152, 153, 1061, 1062, 156, 0, 157, 158, 159, - 160, 791, 0, 792, 0, 1063, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 1064, 191, 192, 1065, 194, 1066, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 1067, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 1068, 222, 223, 224, 225, 226, - 227, 793, 1069, 229, 0, 230, 231, 1070, 233, 0, - 234, 0, 235, 236, 0, 237, 238, 239, 240, 241, - 242, 0, 243, 0, 1071, 1072, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 1073, 1074, - 0, 1075, 0, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 1076, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 1077, 323, 1078, 325, 326, 327, 328, 1079, 329, 330, - 331, 332, 1080, 795, 334, 1081, 336, 337, 338, 0, - 339, 340, 0, 0, 1082, 342, 343, 0, 0, 344, - 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 1083, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, - 1084, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, 430, 431, 432, 1085, - 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, - 451, 0, 452, 453, 454, 455, 456, 457, 458, 0, - 459, 1086, 1087, 0, 0, 462, 463, 801, 465, 802, - 1088, 467, 468, 803, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 487, 1089, 489, 0, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 1090, 0, 0, 0, 0, 0, - 0, 1091, 1092, 1093, 0, 0, 0, 0, 1094, 0, - 1095, 0, 0, 0, 0, 1096, 1097, 1098, 1099, 117, - 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, 0, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 1264, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 1266, 0, + 1062, 0, 0, 1267, 130, 131, 0, 132, 133, 134, + 1268, 136, 137, 138, 139, 1063, 1269, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 1270, 0, 1271, 164, 165, 166, 167, 168, + 1272, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 1273, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 1275, 0, 1276, 238, 239, 1277, 1278, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 1279, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 1280, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 1281, 1282, 281, 1283, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 1284, 291, 1285, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1286, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 1287, 1084, 325, 326, 327, 328, 1085, 329, 330, 1288, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 1289, 348, 1290, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 1291, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 1292, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 1293, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 1294, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 1295, 448, 800, 0, 0, 450, 451, + 0, 452, 1296, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 1297, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 2327, 490, 1299, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 1264, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 1266, 0, 1062, 0, 0, 1267, 130, + 131, 0, 132, 133, 134, 1268, 136, 137, 138, 139, + 1063, 1269, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 1270, 0, 1271, + 164, 165, 166, 167, 168, 1272, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 1273, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 1275, 0, 1276, + 238, 239, 1277, 1278, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 1279, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 1280, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 1281, 1282, + 281, 1283, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 1284, 291, 1285, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1286, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 1287, 1084, 325, 326, 327, + 328, 1085, 329, 330, 1288, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 1289, 348, 1290, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 1291, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 1292, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 1293, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 1294, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 1295, 448, + 800, 0, 0, 450, 451, 0, 452, 1296, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 1297, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 1299, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 2384, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, -1138, 126, 127, 128, 0, 0, 0, 0, -1138, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + -1138, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 1264, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 1056, 0, 0, 129, 130, + 0, 0, 0, 1266, 0, 1062, 0, 0, 1267, 130, + 131, 0, 132, 133, 134, 1268, 136, 137, 138, 139, + 1063, 1269, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 1270, 0, 1271, + 164, 165, 166, 167, 168, 1272, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 1273, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 1275, 0, 1276, + 238, 239, 1277, 1278, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 1279, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 1280, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 1281, 1282, + 281, 1283, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 1284, 291, 1285, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1286, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 1287, 1084, 325, 326, 327, + 328, 1085, 329, 330, 1288, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 1289, 348, 1290, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 1291, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 1292, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 1293, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 1294, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 1295, 448, + 800, 0, 0, 450, 451, 0, 452, 1296, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 1297, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 1299, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 3156, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 1264, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 1266, 0, + 1062, 0, 0, 1267, 130, 131, 0, 132, 133, 134, + 1268, 136, 137, 138, 139, 1063, 1269, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 1270, 0, 1271, 164, 165, 166, 167, 168, + 1272, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 1273, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 1275, 0, 1276, 238, 239, 1277, 1278, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 1279, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 1280, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 1281, 1282, 281, 1283, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 1284, 291, 1285, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1286, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 1287, 1084, 325, 326, 327, 328, 1085, 329, 330, 1288, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 1289, 348, 1290, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 1291, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 1292, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 1293, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 1294, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 1295, 448, 800, 0, 0, 450, 451, + 0, 452, 1296, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 1297, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 1299, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 1716, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 1057, 141, 1058, 1059, 0, 144, 145, 146, 147, 148, - 149, 1060, 790, 150, 151, 152, 153, 1061, 1062, 156, - 0, 157, 158, 159, 160, 791, 0, 792, 0, 1063, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 1064, 191, - 192, 1065, 194, 1066, 195, 0, 196, 197, 198, 199, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 1067, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 1068, 222, - 223, 224, 225, 226, 227, 793, 1069, 229, 0, 230, - 231, 1070, 233, 0, 234, 0, 235, 236, 0, 237, - 238, 239, 240, 241, 242, 0, 243, 0, 1071, 1072, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 1073, 1074, 0, 1075, 0, 278, 279, 280, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 1076, 302, 303, 304, 305, 306, 307, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 1077, 323, 1078, 325, 326, 327, - 328, 1079, 329, 330, 331, 332, 1080, 795, 334, 1081, - 336, 337, 338, 0, 339, 340, 0, 0, 1082, 342, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 1083, 384, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 403, 404, 405, 406, 1084, 408, 409, 410, 411, 412, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 430, 431, 432, 1085, 434, 0, 435, 436, 437, 438, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, - 456, 457, 458, 0, 459, 1086, 1087, 0, 0, 462, - 463, 801, 465, 802, 1088, 467, 468, 803, 470, 471, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 1089, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 1090, 0, - 0, 0, 0, 0, 0, 1725, 1726, 1093, 0, 0, - 0, 0, 1094, 0, 1095, 0, 0, 0, 0, 1096, - 1097, 1098, 1099, 117, 2218, 820, 1051, 1052, 1053, 1054, - 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 0, 0, 1056, - 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 1057, 141, 1058, 1059, 0, 144, - 145, 146, 147, 148, 149, 1060, 790, 150, 151, 152, - 153, 1061, 1062, 156, 0, 157, 158, 159, 160, 791, - 0, 792, 0, 1063, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 1064, 191, 192, 1065, 194, 1066, 195, 0, - 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 206, 207, 1067, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 1068, 222, 223, 224, 225, 226, 227, 793, - 1069, 229, 0, 230, 231, 1070, 233, 0, 234, 0, - 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, - 243, 0, 1071, 1072, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, - 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 1076, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 1077, 323, - 1078, 325, 326, 327, 328, 1079, 329, 330, 331, 332, - 1080, 795, 334, 1081, 336, 337, 338, 0, 339, 340, - 0, 0, 1082, 342, 343, 0, 0, 344, 345, 346, - 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, - 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, - 381, 382, 1083, 384, 385, 386, 387, 0, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 403, 404, 405, 406, 1084, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 430, 431, 432, 1085, 434, 0, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, - 452, 453, 454, 455, 456, 457, 458, 0, 459, 1086, - 1087, 0, 0, 462, 463, 801, 465, 802, 1088, 467, - 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, - 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 1089, 489, 0, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, - 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 1090, 0, 0, 0, 0, 0, 0, 1091, - 1092, 1093, 0, 0, 0, 0, 1094, 0, 1095, 0, - 0, 0, 0, 1096, 1097, 1098, 1099, 117, 1050, 820, - 1051, 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 1056, 0, 0, 129, 130, 131, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 1057, 141, - 1058, 1059, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 1061, 1062, 156, 0, 157, - 158, 159, 160, 791, 0, 792, 0, 1063, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1064, 191, 192, 1065, - 194, 1066, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 1068, 222, 223, 224, - 225, 226, 227, 793, 1069, 229, 0, 230, 231, 1070, - 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, - 240, 241, 242, 0, 243, 0, 1071, 1072, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 1073, 1074, 0, 1075, 0, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, - 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1076, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1077, 323, 1078, 325, 326, 327, 328, 1079, - 329, 330, 331, 332, 1080, 795, 334, 1081, 336, 337, - 338, 0, 339, 340, 0, 0, 1082, 342, 343, 0, - 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1083, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, - 405, 406, 1084, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, - 432, 1085, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, - 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, - 458, 0, 459, 1086, 1087, 0, 0, 462, 463, 801, - 465, 802, 1088, 467, 468, 803, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 1089, 489, - 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 1090, 0, 0, 0, - 0, 0, 0, 1091, 2305, 1093, 0, 0, 0, 0, - 1094, 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 117, 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 0, 0, 1056, 0, 0, - 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 1057, 141, 1058, 1059, 0, 144, 145, 146, - 147, 148, 149, 1060, 790, 150, 151, 152, 153, 1061, - 1062, 156, 0, 157, 158, 159, 160, 791, 0, 792, - 0, 1063, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 1064, 191, 192, 1065, 194, 1066, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 1067, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 1068, 222, 223, 224, 225, 226, 227, 793, 1069, 229, - 0, 230, 231, 1070, 233, 0, 234, 0, 235, 236, - 0, 237, 238, 239, 240, 241, 242, 0, 243, 0, - 1071, 1072, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 290, 291, 292, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 1076, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 1077, 323, 1078, 325, - 326, 327, 328, 1079, 329, 330, 331, 332, 1080, 795, - 334, 1081, 336, 337, 338, 0, 339, 340, 0, 0, - 1082, 342, 343, 0, 0, 344, 345, 346, 347, 348, - 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, - 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 1083, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 403, 404, 405, 406, 1084, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 0, 430, 431, 432, 1085, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, - 454, 455, 456, 457, 458, 0, 459, 1086, 1087, 0, - 0, 462, 463, 801, 465, 802, 1088, 467, 468, 803, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 487, 1089, 489, 0, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 1090, 0, 0, 0, 0, 0, 0, 1091, 1092, 1093, - 0, 0, 0, 0, 1094, 0, 2525, 0, 0, 0, - 0, 1096, 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, - 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, - 0, 1056, 0, 0, 129, 130, 131, 0, 132, 133, - 134, 135, 136, 137, 138, 139, 1057, 141, 1058, 1059, - 0, 144, 145, 146, 147, 148, 149, 1060, 790, 150, - 151, 152, 153, 1061, 1062, 156, 0, 157, 158, 159, - 160, 791, 0, 792, 0, 1063, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 1064, 191, 192, 1065, 194, 1066, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 1067, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 1068, 222, 223, 224, 225, 226, - 227, 793, 1069, 229, 0, 230, 231, 1070, 233, 0, - 234, 0, 235, 236, 0, 237, 238, 239, 240, 241, - 242, 0, 243, 0, 1071, 1072, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 1073, 1074, - 0, 1075, 0, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 1076, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 1077, 323, 1078, 325, 326, 327, 328, 1079, 329, 330, - 331, 332, 1080, 795, 334, 1081, 336, 337, 338, 0, - 339, 340, 0, 0, 1082, 342, 343, 0, 0, 344, - 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 1083, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, - 1084, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, 430, 431, 432, 1085, - 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, - 451, 0, 452, 453, 454, 455, 456, 457, 458, 0, - 459, 1086, 1087, 0, 0, 462, 463, 801, 465, 802, - 1088, 467, 468, 803, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 487, 1089, 489, 0, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 1090, 0, 0, 0, 0, 0, - 0, 1091, 3124, 1093, 0, 0, 0, 0, 1094, 0, - 1095, 0, 0, 0, 0, 1096, 1097, 1098, 1099, 117, - 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, 0, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1731, 821, 1057, 1058, 1059, + 1732, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 1733, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 1056, 0, 0, 129, 130, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 1057, 141, 1058, 1059, 0, 144, 145, 146, 147, 148, - 149, 1060, 790, 150, 151, 152, 153, 1061, 1062, 156, - 0, 157, 158, 159, 160, 791, 0, 792, 0, 1063, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 178, 0, 179, 180, 3070, - 182, 183, 184, 185, 186, 187, 188, 189, 1064, 191, - 192, 1065, 194, 1066, 195, 0, 196, 197, 198, 199, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 1067, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 1068, 222, - 223, 224, 225, 226, 227, 793, 1069, 229, 0, 230, - 231, 1070, 233, 0, 234, 0, 235, 236, 0, 237, - 238, 239, 240, 241, 242, 0, 243, 0, 3071, 1072, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 1448, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 1073, 1074, 0, 1075, 0, 278, 279, 280, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 1076, 302, 303, 304, 305, 306, 307, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 1077, 323, 1078, 325, 326, 327, - 328, 1079, 329, 330, 331, 332, 1080, 795, 334, 1081, - 336, 337, 338, 0, 339, 340, 0, 0, 1082, 342, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 1083, 384, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 403, 404, 405, 3072, 1084, 408, 409, 410, 411, 412, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 430, 431, 432, 1085, 434, 0, 435, 436, 437, 438, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, - 456, 457, 458, 0, 459, 1086, 1087, 0, 0, 462, - 463, 801, 465, 802, 1088, 467, 468, 803, 470, 471, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 1089, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 1090, 0, - 0, 0, 0, 0, 0, 1091, 1092, 1093, 0, 0, - 0, 0, 1094, 0, 3073, 0, 0, 0, 0, 1096, - 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, 1053, 1054, - 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 0, 0, 1056, - 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, - 136, 137, 138, 3527, 1057, 141, 1058, 1059, 0, 144, - 145, 146, 147, 148, 149, 1060, 790, 150, 151, 152, - 153, 1061, 1062, 156, 0, 157, 158, 159, 160, 791, - 0, 792, 0, 1063, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 179, 180, 181, 3528, 183, 184, 185, 186, 187, - 188, 189, 1064, 191, 192, 1065, 194, 1066, 195, 0, - 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 206, 207, 1067, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 1068, 222, 223, 224, 225, 226, 227, 793, - 1069, 229, 0, 230, 231, 1070, 233, 0, 234, 0, - 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, - 243, 0, 1071, 1072, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, - 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 1076, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 1077, 323, - 1078, 325, 326, 327, 328, 1079, 329, 330, 331, 332, - 1080, 795, 334, 1081, 336, 337, 338, 0, 339, 340, - 0, 0, 1082, 342, 343, 0, 0, 344, 345, 346, - 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, - 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, - 381, 382, 1083, 384, 385, 386, 387, 0, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 403, 404, 405, 406, 1084, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 430, 431, 432, 1085, 434, 0, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, - 452, 453, 454, 455, 456, 457, 458, 0, 459, 1086, - 1087, 0, 0, 462, 463, 801, 465, 802, 1088, 467, - 468, 803, 470, 471, 3529, 473, 474, 0, 0, 475, - 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 1089, 489, 0, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, - 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 1090, 0, 0, 0, 0, 0, 0, 1091, - 1092, 1093, 0, 0, 0, 0, 1094, 0, 1095, 0, - 0, 0, 0, 1096, 1097, 1098, 1099, 117, 1050, 820, - 1051, 1052, 1053, 1054, 1055, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 1056, 0, 0, 129, 130, 131, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 1057, 141, - 1058, 1059, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 1061, 1062, 156, 0, 157, - 158, 159, 160, 791, 0, 792, 0, 1063, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 179, 180, 181, 3528, 183, - 184, 185, 186, 187, 188, 189, 1064, 191, 192, 1065, - 194, 1066, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 1068, 222, 223, 224, - 225, 226, 227, 793, 1069, 229, 0, 230, 231, 1070, - 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, - 240, 241, 242, 0, 243, 0, 1071, 1072, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 1073, 1074, 0, 1075, 0, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, - 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1076, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1077, 323, 1078, 325, 326, 327, 328, 1079, - 329, 330, 331, 332, 1080, 795, 334, 1081, 336, 337, - 338, 0, 339, 340, 0, 0, 1082, 342, 343, 0, - 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1083, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, - 405, 406, 1084, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, - 432, 1085, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, - 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, - 458, 0, 459, 1086, 1087, 0, 0, 462, 463, 801, - 465, 802, 1088, 467, 468, 803, 470, 471, 3529, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 1089, 489, - 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 1090, 0, 0, 0, - 0, 0, 0, 1091, 1092, 1093, 0, 0, 0, 0, - 1094, 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 117, 1050, 820, 1051, 1052, 1053, 1054, 1055, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 0, 0, 1056, 0, 0, - 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, - 138, 139, 1057, 141, 1058, 1059, 0, 144, 145, 146, - 147, 148, 149, 1060, 790, 150, 151, 152, 153, 1061, - 1062, 156, 0, 157, 158, 159, 160, 791, 0, 792, - 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 1064, 191, 192, 1065, 194, 0, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 1067, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 1068, 222, 223, 224, 225, 226, 227, 793, 1069, 229, - 0, 230, 231, 1070, 233, 0, 234, 0, 235, 236, - 0, 237, 238, 239, 240, 241, 242, 0, 243, 0, - 1071, 1072, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, - 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 290, 291, 292, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 1076, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 1077, 323, 1078, 325, - 326, 327, 328, 0, 329, 330, 331, 332, 1080, 795, - 334, 1081, 336, 337, 338, 0, 339, 340, 0, 0, - 1082, 342, 343, 0, 0, 344, 345, 346, 347, 348, - 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, - 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 1083, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 403, 404, 405, 406, 1084, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 0, 430, 431, 432, 1085, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, - 454, 455, 456, 457, 458, 0, 459, 1086, 1087, 0, - 0, 462, 463, 801, 465, 802, 1088, 467, 468, 803, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 487, 1089, 489, 0, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 0, 0, 0, 0, 0, 0, 0, 1427, 1428, 0, - 0, 0, 0, 0, 1094, 0, 1095, 0, 0, 0, - 0, 1096, 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, - 1053, 1054, 1055, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, - 0, 1056, 0, 0, 129, 130, 131, 0, 132, 133, - 134, 135, 136, 137, 138, -2082, 1057, 141, 1058, 1059, - 0, 144, 145, 146, 147, 148, 149, 1060, 790, 150, - 151, 152, 153, 1061, 1062, 156, 0, 157, 158, 159, - 160, 791, 0, 792, 0, 1063, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 179, 180, 181, 3528, 183, 184, 185, - 186, 187, 188, 189, 1064, 191, 192, 1065, 194, 1066, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 1067, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 1068, 222, 223, 224, 225, 226, - 227, 793, 1069, 229, 0, 230, 231, 1070, 233, 0, - 234, 0, 235, 236, 0, 237, 238, 239, 240, -2082, - 242, 0, 243, 0, 1071, 1072, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, -2082, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 268, 269, 270, 271, 272, 273, 274, 1073, 1074, - 0, 1075, 0, 278, 0, 0, 281, 282, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 290, 291, -2082, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 1076, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 1077, 323, 1078, 325, 326, 327, 328, 0, 329, 330, - 0, 332, 1080, 795, 334, 1081, 336, 337, 338, 0, - 339, 340, 0, 0, 1082, 342, 343, 0, 0, 344, - 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 1083, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, - 1084, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, -2082, 431, 432, 1085, - 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, - 451, 0, 452, 453, 454, 455, 456, 457, 458, 0, - 459, 1086, 1087, 0, 0, 462, 463, 801, 465, 802, - 1088, 467, 468, 803, 470, 471, 3529, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 487, 1089, 489, 0, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, -2082, 0, 0, 0, 0, 0, - 0, 1091, 1092, 1093, 0, 0, 0, 0, 1094, 0, - 1095, 0, 0, 0, 0, 1096, 1097, 1098, 1099, 117, - 1050, 820, 1051, 1052, 0, 1054, 1055, 0, 0, 0, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 2092, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 1056, 0, 0, 129, 130, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 1057, 141, 1058, 1059, 0, 144, 145, 146, 147, 148, - 149, 1060, 790, 150, 151, 152, 153, 1061, 1062, 156, - 0, 157, 158, 159, 160, 791, 0, 792, 0, 163, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 1064, 191, - 192, 1065, 194, 0, 195, 0, 196, 197, 198, 199, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 1067, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 1068, 222, - 223, 224, 225, 226, 227, 793, 1069, 229, 0, 230, - 231, 1070, 233, 0, 234, 0, 235, 236, 0, 237, - 238, 239, 240, 241, 242, 0, 243, 0, 1071, 1072, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 1073, 1074, 0, 1075, 0, 278, 279, 280, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 1076, 302, 303, 304, 305, 306, 307, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 1077, 323, 1078, 325, 326, 327, - 328, 0, 329, 330, 331, 332, 1080, 795, 334, 1081, - 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 1083, 384, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 403, 404, 405, 406, 2204, 2205, 409, 410, 411, 412, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 430, 431, 432, 1085, 434, 0, 435, 436, 437, 438, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, - 456, 457, 458, 0, 459, 1086, 1087, 0, 0, 462, - 463, 801, 465, 802, 1088, 467, 468, 803, 470, 471, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 1089, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 0, 0, - 0, 0, 0, 0, 0, 2206, 2207, 0, 0, 0, - 0, 0, 1094, 0, 1095, 0, 0, 0, 0, 1096, - 1097, 1098, 1099, 117, 1050, 820, 1051, 1052, 1053, 1054, - 1055, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 0, 0, 1056, - 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 1057, 141, 1058, 1059, 0, 144, - 145, 146, 147, 148, 149, 1060, 790, 150, 151, 152, - 153, 1061, 1062, 156, 0, 157, 158, 159, 160, 791, - 0, 792, 0, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 1064, 191, 192, 1065, 194, 0, 195, 0, - 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 206, 207, 1067, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 1068, 222, 223, 224, 225, 226, 227, 793, - 1069, 229, 0, 230, 231, 1070, 233, 0, 234, 0, - 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, - 243, 0, 1071, 1072, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, - 269, 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, - 0, 278, 0, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 1076, 302, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 1077, 323, - 1078, 325, 326, 327, 328, 0, 329, 330, 331, 332, - 1080, 795, 334, 1081, 336, 337, 338, 0, 339, 340, - 0, 0, 1082, 342, 343, 0, 0, 344, 345, 346, - 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, - 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, - 381, 382, 1083, 384, 385, 386, 387, 0, 388, 389, - 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 403, 404, 405, 406, 1084, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 430, 431, 432, 1085, 434, 0, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, - 452, 453, 454, 455, 456, 457, 458, 0, 459, 1086, - 1087, 0, 0, 462, 463, 801, 465, 802, 1088, 467, - 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, - 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 1089, 489, 0, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, - 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 0, 0, 0, 0, 0, 0, 0, 1427, - 1428, 0, 0, 0, 0, 0, 1094, 0, 1095, 0, - 0, 0, 0, 1096, 1097, 1098, 1099, 117, 1050, 820, - 1051, 1052, 0, 1054, 1055, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 1056, 0, 0, 129, 130, 131, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 1057, 141, - 1058, 1059, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 1061, 1062, 156, 0, 157, - 158, 159, 160, 791, 0, 792, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1064, 191, 192, 1065, - 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 1068, 222, 223, 224, - 225, 226, 227, 793, 1069, 229, 0, 230, 231, 1070, - 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, - 240, 241, 242, 0, 243, 3090, 1071, 1072, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, -733, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 1073, 1074, 0, 1075, 0, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, - 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1076, 302, 303, 304, 305, 306, 307, 308, 309, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 2690, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 2749, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 2875, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 3093, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 3094, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 3095, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 3096, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 3097, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 3318, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1736, 1737, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 2234, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 2321, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 2542, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 3154, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 3094, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 3095, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 3096, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 3097, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 3562, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 1069, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 3563, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 1072, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 1085, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 3564, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 1096, 0, + 0, 0, 0, 0, 0, 1097, 1098, 1099, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 3563, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 1085, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 3564, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1096, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 1059, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 0, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 0, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 1088, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 0, 0, + 0, 0, 0, 0, 0, 1434, 1435, 0, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, -2101, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 3563, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, -2101, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, -2101, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 0, 0, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, -2101, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 0, 329, 330, 0, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, -2101, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 3564, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, -2101, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 0, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 0, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 0, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 2220, 2221, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 0, 0, + 0, 0, 0, 0, 0, 2222, 2223, 0, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 0, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 0, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 0, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 0, 0, 0, 0, 0, 0, 0, + 1434, 1435, 0, 0, 0, 0, 0, 1100, 0, 1101, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 0, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 0, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 3114, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 0, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1100, 0, 2797, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 0, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 0, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 0, 329, 330, 331, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1100, 0, 2797, + 0, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 117, + 1056, 821, 1057, 1058, 0, 1060, 1061, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 1062, 0, 0, 129, 130, + 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, + 1063, 141, 1064, 1065, 0, 144, 145, 146, 147, 148, + 149, 1066, 790, 150, 151, 152, 153, 1067, 1068, 156, + 0, 157, 158, 159, 160, 791, 0, 792, 0, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1070, 191, + 192, 1071, 194, 0, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 1074, 222, + 223, 224, 225, 226, 227, 793, 1075, 229, 0, 230, + 231, 1076, 233, 0, 234, 0, 235, 236, 0, 237, + 238, 239, 240, 241, 242, 0, 243, 0, 1077, 1078, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, + 273, 274, 1079, 1080, 0, 1081, 0, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1082, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 1083, 323, 1084, 325, 326, 327, + 328, 0, 329, 330, 331, 332, 1086, 795, 334, 1087, + 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, + 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1089, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 403, 404, 405, 406, 1090, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 430, 431, 432, 1091, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 456, 457, 458, 0, 459, 1092, 1093, 0, 0, 462, + 463, 801, 465, 802, 1094, 467, 468, 803, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 1095, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1100, 0, 1101, 0, 0, 0, 0, 0, + 1102, 1103, 1104, 1105, 117, 1056, 821, 1057, 1058, 1059, + 1060, 1061, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 1062, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 0, 1063, 141, 1064, 1065, 0, + 144, 145, 146, 147, 148, 149, 1066, 790, 150, 151, + 152, 153, 1067, 1068, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 1069, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 1070, 191, 192, 1071, 194, 1072, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 1073, 209, 210, + 0, 211, 212, 213, 0, 214, 0, 216, 0, 217, + 218, 219, 220, 1074, 222, 223, 224, 225, 226, 227, + 793, 1075, 229, 0, 230, 231, 1076, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 0, 242, + 0, 243, 0, 1077, 1078, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 1079, 1080, 0, + 1081, 0, 278, 0, 0, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 0, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 1082, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 1083, + 323, 1084, 325, 326, 327, 328, 0, 329, 330, 0, + 332, 1086, 795, 334, 1087, 336, 337, 338, 0, 339, + 340, 0, 0, 1088, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 1089, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 1090, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 0, 431, 432, 1091, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 1092, 1093, 0, 0, 462, 463, 801, 465, 802, 1094, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 1095, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 0, 0, 0, 0, 0, 0, 0, + 1097, 1098, 1099, 0, 974, 1363, 821, 1100, 0, 1101, + 1060, 0, 0, 0, 0, 1102, 1103, 1104, 1105, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 565, 0, + 0, 0, 0, 570, 130, 131, 0, 132, 133, 134, + 572, 136, 137, 138, 573, 574, 575, 576, 577, 0, + 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, + 152, 153, 581, 582, 156, 0, 157, 158, 159, 160, + 584, 0, 586, 0, 588, 164, 165, 166, 167, 168, + 589, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 592, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 594, 191, 192, 595, 194, 0, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 605, 222, 223, 224, 225, 226, 227, + 606, 1364, 229, 0, 230, 231, 609, 233, 0, 234, + 0, 235, 612, 0, 614, 238, 239, 615, 616, 242, + 0, 243, 0, 619, 620, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 622, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 625, 626, 270, 271, 272, 273, 274, 627, 628, 0, + 630, 0, 278, 632, 633, 281, 634, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 637, 291, 638, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 2401, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 641, + 642, 643, 325, 326, 327, 644, 0, 329, 330, 646, + 332, 0, 648, 334, 649, 336, 337, 338, 0, 339, + 340, 1365, 0, 341, 342, 343, 0, 0, 344, 345, + 655, 656, 348, 657, 658, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 663, 664, 366, 367, 665, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 668, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 671, 404, 405, 406, 672, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 674, 421, 422, 423, 424, 425, + 426, 675, 428, 429, 0, 677, 431, 432, 678, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 680, 448, 681, 0, 0, 450, 451, + 0, 452, 685, 454, 455, 456, 457, 458, 0, 459, + 687, 688, 0, 0, 462, 463, 691, 465, 692, 1366, + 467, 468, 694, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 699, 700, 489, 0, 490, 702, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 707, 708, + 709, 710, 711, 712, 713, 714, 715, 716, 717, 517, + 518, 519, 520, 0, 0, 0, 0, 0, 0, 0, + 1367, 1368, 2402, 117, 0, 0, 0, 2403, 0, 2404, + 1061, 0, 0, 0, 0, 0, 0, 0, 1105, 0, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 0, 126, 127, 128, 0, 0, 0, 0, 0, 1062, + 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 0, 144, + 145, 146, 147, 148, 149, 1066, 790, 150, 151, 152, + 153, 154, 155, 156, 0, 157, 158, 159, 160, 791, + 0, 792, 0, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, + 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, + 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, + 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, + 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 793, + 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, + 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, + 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, + 294, 295, 296, 297, 298, 299, 300, 1082, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, + 0, 795, 334, 335, 336, 337, 338, 0, 339, 340, + 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, + 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, + 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, + 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 0, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 0, 430, 431, 432, 433, 434, 0, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, + 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, + 461, 0, 0, 462, 463, 801, 465, 802, 0, 467, + 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, + 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, + 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 528, 1978, 0, 1100, 0, 2138, 1979, + 1061, 0, 0, 0, 1102, 1103, 1104, 1105, 0, 0, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, + 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, + 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, + 153, 154, 155, 156, 0, 157, 158, 159, 160, 161, + 0, 0, 0, 163, 164, 165, 166, 167, 168, 0, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, + 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, + 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, + 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, + 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, + 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, + 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, + 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, + 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, + 287, 288, 0, 0, 289, 0, 291, 0, 0, 293, + 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, + 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, + 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, + 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, + 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, + 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, + 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, + 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, + 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, + 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, + 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, + 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, + 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 0, 0, 0, 0, 0, 528, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1102, 1103, 118, 119, 120, 121, + 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, + 0, 0, 0, 0, 1010, 0, 0, 130, 131, 0, + 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, + 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, + 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 163, 164, 165, + 166, 167, 168, 0, 170, 171, 172, 0, 173, 174, + 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, + 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, + 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, + 216, -540, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 0, 229, -540, 230, 231, 232, + 233, -540, 234, 0, 235, 0, 0, 0, 238, 239, + 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, + 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, + 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, + 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, + 275, 276, -540, 277, 0, 278, 0, 0, 281, 0, + 283, 284, 285, 286, 287, 288, 0, 0, 289, 0, + 291, 0, -540, 293, 294, 295, 296, 297, 298, 299, + 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1077, 323, 1078, 325, 326, 327, 328, 0, - 329, 330, 331, 332, 1080, 795, 334, 1081, 336, 337, - 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, - 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, + 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, + 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, + 338, -540, 339, 340, 0, 0, 341, 342, 343, 0, + -540, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, + 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1083, 384, 385, 386, + 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, + 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, - 432, 1085, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, - 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, - 458, 0, 459, 1086, 1087, 0, 0, 462, 463, 801, - 465, 802, 1088, 467, 468, 803, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 1089, 489, - 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, + 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, + 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, + 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, + 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, + 474, -540, 0, 475, 476, 477, 0, 478, 479, 480, + 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 0, 0, 0, 0, - 0, 0, 117, 1050, 820, 1051, 1052, 0, 1054, 1055, - 1094, 0, 2778, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 0, 0, 1056, 0, + 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1177, 0, 118, 119, 120, 121, 122, + 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, + 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, + 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, + 150, 151, 152, 153, 154, 155, 156, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 163, 164, 165, 166, + 167, 168, 0, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, + 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, + 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, + 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, + 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, + 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, + 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, + 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, + 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, + 284, 285, 286, 287, 288, 0, 0, 289, 0, 291, + 0, 0, 293, 294, 295, 296, 297, 298, 299, 300, + 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, + 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, + 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, + 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, + 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, + 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, + 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, + 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, + 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, + 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, + 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, + 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, + 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 974, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2490, 3304, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 0, 126, 127, 128, 3, 4, 0, 565, + 0, 0, 0, 0, 570, 130, 131, 0, 132, 133, + 134, 572, 136, 137, 138, 573, 574, 575, 576, 577, + 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, + 151, 152, 153, 581, 582, 156, 0, 157, 158, 159, + 160, 584, 0, 586, 0, 588, 164, 165, 166, 167, + 168, 589, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 178, 0, 592, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 594, 191, 192, 595, 194, 0, + 195, 0, 196, 197, 198, 199, 200, 201, 14, 15, + 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, + 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 605, 222, 223, 224, 225, 226, + 227, 606, 0, 229, 0, 230, 231, 609, 233, 0, + 234, 0, 235, 612, 23, 614, 238, 239, 615, 616, + 242, 0, 243, 0, 619, 620, 246, 247, 0, 248, + 249, 250, 251, 252, 253, 254, 622, 256, 257, 258, + 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 625, 626, 270, 271, 272, 273, 274, 627, 628, + 0, 630, 0, 278, 632, 633, 281, 634, 283, 284, + 285, 286, 287, 288, 0, 0, 289, 637, 291, 638, + 0, 293, 294, 295, 296, 297, 298, 299, 300, 640, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 641, 642, 643, 325, 326, 327, 644, 0, 329, 330, + 646, 332, 0, 648, 334, 649, 336, 337, 338, 0, + 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, + 345, 655, 656, 348, 657, 658, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 26, 27, 28, + 0, 362, 363, 663, 664, 366, 367, 665, 369, 370, + 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, + 379, 380, 381, 382, 668, 384, 385, 386, 387, 0, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 0, 401, 402, 671, 404, 405, 406, + 672, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 33, 674, 421, 422, 423, 424, + 425, 426, 675, 428, 429, 35, 677, 431, 432, 678, + 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 680, 448, 681, 37, 0, 450, + 451, 38, 452, 685, 454, 455, 456, 457, 458, 0, + 459, 687, 688, 0, 0, 462, 463, 691, 465, 692, + 0, 467, 468, 694, 470, 471, 472, 473, 474, 0, + 0, 475, 476, 477, 40, 478, 479, 480, 481, 0, + 482, 483, 484, 485, 486, 975, 700, 489, 0, 490, + 702, 492, 493, 494, 495, 496, 497, 498, 0, 0, + 499, 0, 44, 500, 501, 502, 503, 504, 505, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 517, 518, 519, 520, 0, 117, 45, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 0, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 129, 130, 131, 0, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 0, 144, 145, 146, 147, 148, 149, 0, 790, 150, + 151, 152, 153, 154, 155, 156, 0, 157, 158, 159, + 160, 791, 0, 792, 0, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, + 195, 0, 196, 197, 198, 199, 200, 201, 14, 15, + 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, + 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 793, 0, 229, 0, 230, 231, 232, 233, 0, + 234, 0, 235, 236, 23, 237, 238, 239, 240, 241, + 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 0, 277, 0, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 794, 0, 289, 290, 291, 292, + 0, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 0, 329, 330, + 331, 332, 0, 795, 334, 335, 336, 337, 338, 0, + 339, 340, 0, 796, 341, 342, 343, 0, 0, 344, + 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 26, 27, 28, + 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, + 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, + 407, 799, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 33, 0, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 35, 430, 431, 432, 433, + 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 800, 37, 0, 450, + 451, 38, 452, 453, 454, 455, 456, 457, 458, 0, + 459, 460, 461, 0, 0, 462, 463, 801, 465, 802, + 0, 467, 468, 803, 470, 471, 472, 473, 474, 0, + 0, 475, 476, 477, 40, 478, 479, 480, 481, 0, + 482, 483, 484, 485, 486, 804, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, + 499, 0, 44, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 0, 117, 45, 554, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 805, 0, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 129, 130, 131, 0, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 0, 144, 145, 146, 147, 148, 149, 0, 790, 150, + 151, 152, 153, 154, 155, 156, 0, 157, 158, 159, + 160, 791, 0, 792, 0, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, + 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, + 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, + 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 793, 0, 229, 0, 230, 231, 232, 233, 0, + 234, 0, 235, 236, 0, 237, 238, 239, 240, 241, + 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, + 0, 277, 0, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 794, 0, 289, 290, 291, 292, + 0, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 0, 329, 330, + 331, 332, 0, 795, 334, 335, 336, 337, 338, 0, + 339, 340, 0, 796, 341, 342, 343, 0, 0, 344, + 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, + 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, + 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, + 407, 799, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 0, 430, 431, 432, 433, + 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, + 451, 0, 452, 453, 454, 455, 456, 457, 458, 0, + 459, 460, 461, 0, 0, 462, 463, 801, 465, 802, + 0, 467, 468, 803, 470, 471, 472, 473, 474, 0, + 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, + 482, 483, 484, 485, 486, 804, 488, 489, 0, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, + 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 117, 0, 554, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 805, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 129, 130, 131, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, + 144, 145, 146, 147, 148, 149, 0, 790, 150, 151, + 152, 153, 154, 155, 156, 0, 157, 158, 159, 160, + 791, 0, 792, 0, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 793, 0, 229, 0, 230, 231, 232, 233, 0, 234, + 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 0, + 277, 0, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, + 332, 0, 795, 334, 335, 336, 337, 338, 0, 339, + 340, 0, 796, 341, 342, 343, 0, 0, 344, 345, + 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 403, 404, 405, 406, 407, + 799, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 430, 431, 432, 433, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, + 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, + 460, 461, 0, 0, 462, 463, 801, 465, 802, 0, + 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1018, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 0, 144, + 145, 146, 147, 148, 149, 0, 790, 150, 151, 152, + 153, 154, 155, 156, 0, 157, 158, 159, 160, 791, + 0, 792, 0, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, + 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, + 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, + 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, + 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 793, + 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, + 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, + 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, + 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, + 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, + 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, + 0, 795, 334, 335, 336, 337, 338, 0, 339, 340, + 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, + 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, + 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, + 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 0, 401, 402, 403, 404, 405, 406, 407, 799, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 0, 430, 431, 432, 433, 434, 0, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, + 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, + 461, 0, 0, 462, 463, 801, 465, 802, 0, 467, + 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, + 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, + 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 117, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 46, 0, + 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, 136, - 137, 138, 139, 1057, 141, 1058, 1059, 0, 144, 145, - 146, 147, 148, 149, 1060, 790, 150, 151, 152, 153, - 1061, 1062, 156, 0, 157, 158, 159, 160, 791, 0, + 137, 138, 139, 140, 141, 142, 143, 0, 144, 145, + 146, 147, 148, 149, 0, 790, 150, 151, 152, 153, + 154, 155, 156, 0, 157, 158, 159, 160, 791, 0, 792, 0, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 1064, 191, 192, 1065, 194, 0, 195, 0, 196, + 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, - 205, 0, 0, 206, 207, 1067, 209, 210, 0, 211, + 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 1068, 222, 223, 224, 225, 226, 227, 793, 1069, - 229, 0, 230, 231, 1070, 233, 0, 234, 0, 235, + 220, 221, 222, 223, 224, 225, 226, 227, 793, 0, + 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, 243, - 0, 1071, 1072, 246, 247, 0, 248, 249, 250, 251, + 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, + 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, 294, - 295, 296, 297, 298, 299, 300, 1076, 302, 303, 304, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 1077, 323, 1078, - 325, 326, 327, 328, 0, 329, 330, 331, 332, 1080, - 795, 334, 1081, 336, 337, 338, 0, 339, 340, 0, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 0, 329, 330, 331, 332, 0, + 795, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, - 382, 1083, 384, 385, 386, 387, 0, 388, 389, 390, + 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 0, 430, 431, 432, 1085, 434, 0, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 800, 0, 0, 450, 451, 0, 452, - 453, 454, 455, 456, 457, 458, 0, 459, 1086, 1087, - 0, 0, 462, 463, 801, 465, 802, 1088, 467, 468, - 803, 470, 471, 472, 473, 474, 0, 0, 475, 476, - 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, - 485, 486, 487, 1089, 489, 0, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 0, 0, 0, 0, 0, 0, 117, 1050, 820, - 1051, 1052, 0, 1054, 1055, 1094, 0, 2778, 0, 0, - 0, 0, 1096, 1097, 1098, 1099, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 1056, 0, 0, 129, 130, 131, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 1057, 141, - 1058, 1059, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 1061, 1062, 156, 0, 157, - 158, 159, 160, 791, 0, 792, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1064, 191, 192, 1065, - 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 1068, 222, 223, 224, - 225, 226, 227, 793, 1069, 229, 0, 230, 231, 1070, - 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, - 240, 241, 242, 0, 243, 0, 1071, 1072, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 1073, 1074, 0, 1075, 0, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, - 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1076, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1077, 323, 1078, 325, 326, 327, 328, 0, - 329, 330, 331, 332, 1080, 795, 334, 1081, 336, 337, - 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, - 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1083, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, - 405, 406, 1084, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, - 432, 1085, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, - 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, - 458, 0, 459, 1086, 1087, 0, 0, 462, 463, 801, - 465, 802, 1088, 467, 468, 803, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 1089, 489, - 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 0, 0, 0, 0, - 0, 0, 117, 1050, 820, 1051, 1052, 1053, 1054, 1055, - 1094, 0, 1095, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 0, 0, 1056, 0, - 0, 129, 130, 131, 0, 132, 133, 134, 135, 136, - 137, 138, 0, 1057, 141, 1058, 1059, 0, 144, 145, - 146, 147, 148, 149, 1060, 790, 150, 151, 152, 153, - 1061, 1062, 156, 0, 157, 158, 159, 160, 791, 0, - 792, 0, 1063, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 1064, 191, 192, 1065, 194, 1066, 195, 0, 196, - 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, - 205, 0, 0, 206, 207, 1067, 209, 210, 0, 211, - 212, 213, 0, 214, 0, 216, 0, 217, 218, 219, - 220, 1068, 222, 223, 224, 225, 226, 227, 793, 1069, - 229, 0, 230, 231, 1070, 233, 0, 234, 0, 235, - 236, 0, 237, 238, 239, 240, 0, 242, 0, 243, - 0, 1071, 1072, 246, 247, 0, 248, 249, 250, 251, - 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, - 261, 262, 263, 264, 265, 266, 0, 267, 268, 269, - 270, 271, 272, 273, 274, 1073, 1074, 0, 1075, 0, - 278, 0, 0, 281, 282, 283, 284, 285, 286, 287, - 288, 0, 0, 289, 290, 291, 0, 0, 293, 294, - 295, 296, 297, 298, 299, 300, 1076, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 1077, 323, 1078, - 325, 326, 327, 328, 0, 329, 330, 0, 332, 1080, - 795, 334, 1081, 336, 337, 338, 0, 339, 340, 0, - 0, 1082, 342, 343, 0, 0, 344, 345, 346, 347, - 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, - 798, 365, 366, 367, 368, 369, 370, 371, 0, 372, - 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, - 382, 1083, 384, 385, 386, 387, 0, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 0, 401, 402, 403, 404, 405, 406, 1084, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 0, 0, 431, 432, 1085, 434, 0, 435, + 428, 429, 0, 430, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, 0, 452, - 453, 454, 455, 456, 457, 458, 0, 459, 1086, 1087, - 0, 0, 462, 463, 801, 465, 802, 1088, 467, 468, + 453, 454, 455, 456, 457, 458, 0, 459, 460, 461, + 0, 0, 462, 463, 801, 465, 802, 0, 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, - 485, 486, 487, 1089, 489, 0, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 0, 0, 0, 0, 0, 0, 0, 1091, 1092, - 1093, 0, 973, 1356, 820, 1094, 0, 1095, 1054, 0, - 0, 0, 1096, 1097, 1098, 1099, 0, 0, 0, 0, - 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 565, 0, 0, 0, - 0, 570, 130, 131, 0, 132, 133, 134, 572, 136, - 137, 138, 573, 574, 575, 576, 577, 0, 144, 145, - 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, - 581, 582, 156, 0, 157, 158, 159, 160, 584, 0, - 586, 0, 588, 164, 165, 166, 167, 168, 589, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, - 592, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 594, 191, 192, 595, 194, 0, 195, 0, 196, - 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, - 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, - 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 605, 222, 223, 224, 225, 226, 227, 606, 1357, - 229, 0, 230, 231, 609, 233, 0, 234, 0, 235, - 612, 0, 614, 238, 239, 615, 616, 242, 0, 243, - 0, 619, 620, 246, 247, 0, 248, 249, 250, 251, - 252, 253, 254, 622, 256, 257, 258, 259, 0, 260, - 261, 262, 263, 264, 265, 266, 0, 267, 625, 626, - 270, 271, 272, 273, 274, 627, 628, 0, 630, 0, - 278, 632, 633, 281, 634, 283, 284, 285, 286, 287, - 288, 0, 0, 289, 637, 291, 638, 0, 293, 294, - 295, 296, 297, 298, 299, 300, 2385, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 641, 642, 643, - 325, 326, 327, 644, 0, 329, 330, 646, 332, 0, - 648, 334, 649, 336, 337, 338, 0, 339, 340, 1358, - 0, 341, 342, 343, 0, 0, 344, 345, 655, 656, - 348, 657, 658, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, - 663, 664, 366, 367, 665, 369, 370, 371, 0, 372, - 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, - 382, 668, 384, 385, 386, 387, 0, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 0, 401, 402, 671, 404, 405, 406, 672, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 0, 674, 421, 422, 423, 424, 425, 426, 675, - 428, 429, 0, 677, 431, 432, 678, 434, 0, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 680, 448, 681, 0, 0, 450, 451, 0, 452, - 685, 454, 455, 456, 457, 458, 0, 459, 687, 688, - 0, 0, 462, 463, 691, 465, 692, 1359, 467, 468, - 694, 470, 471, 472, 473, 474, 0, 0, 475, 476, - 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, - 485, 486, 699, 700, 489, 0, 490, 702, 492, 493, - 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, - 500, 501, 502, 503, 504, 505, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 716, 717, 517, 518, 519, - 520, 0, 0, 0, 0, 0, 0, 117, 1360, 1361, - 2386, 0, 0, 0, 1055, 2387, 0, 2388, 0, 0, - 0, 0, 0, 0, 0, 1099, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 1056, 0, 0, 129, 130, 131, 0, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 0, 144, 145, 146, 147, 148, 149, 1060, - 790, 150, 151, 152, 153, 154, 155, 156, 0, 157, - 158, 159, 160, 791, 0, 792, 0, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 793, 0, 229, 0, 230, 231, 232, - 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, - 240, 241, 242, 0, 243, 0, 244, 245, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 0, 277, 0, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, - 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1076, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, - 329, 330, 331, 332, 0, 795, 334, 335, 336, 337, - 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, - 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 798, 365, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, - 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 447, 448, 800, 0, - 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, - 458, 0, 459, 460, 461, 0, 0, 462, 463, 801, - 465, 802, 0, 467, 468, 803, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, - 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 0, 0, 0, 0, - 0, 0, 528, 0, 0, 0, 0, 0, 0, 0, - 1094, 0, 2122, 0, 0, 0, 0, 1096, 1097, 1098, - 1099, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 0, 0, 0, 1008, - 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, - 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, - 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, - 154, 155, 156, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, - 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, - 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, - 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, - 212, 213, 0, 214, 215, 216, -540, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, - 229, -540, 230, 231, 232, 233, -540, 234, 0, 235, - 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, - 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, - 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, - 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, - 270, 271, 272, 273, 274, 275, 276, -540, 277, 0, - 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, - 288, 0, 0, 289, 0, 291, 0, -540, 293, 294, - 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, - 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, - 333, 334, 335, 336, 337, 338, -540, 339, 340, 0, - 0, 341, 342, 343, 0, -540, 344, 345, 346, 0, - 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, - 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, - 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, - 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, - 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, - 469, 470, 471, 472, 473, 474, -540, 0, 475, 476, - 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, - 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, + 485, 486, 487, 488, 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1170, 0, + 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 3393, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, + 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, + 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, + 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, + 155, 156, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, + 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, + 198, 199, 200, 201, 14, 15, 202, 203, 204, 205, + 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, + 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, + 23, 0, 238, 239, 529, 0, 242, 0, 243, 0, + 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, + 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, + 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, + 0, 0, 289, 0, 291, 0, 0, 293, 294, 295, + 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, + 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, + 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, + 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 26, 27, 28, 0, 362, 363, 364, + 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, + 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, + 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 33, 0, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 35, 0, 431, 432, 433, 434, 0, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 531, 448, 449, 37, 0, 450, 451, 38, 452, 0, + 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, + 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, + 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, + 40, 478, 479, 480, 481, 0, 482, 483, 484, 485, + 486, 804, 488, 489, 0, 490, 0, 492, 493, 494, + 495, 496, 497, 498, 0, 0, 499, 0, 44, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 0, 528, 45, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 894, 126, + 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, + 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, + 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, + 155, 156, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, + 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, + 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, + 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, + 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, + 23, 0, 238, 239, 529, 0, 242, 0, 243, 0, + 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, + 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, + 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, + 0, 0, 289, 0, 291, 0, 0, 293, 294, 295, + 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, + 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, + 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, + 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 26, 27, 28, 0, 362, 363, 364, + 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, + 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, + 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 33, 0, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 531, 448, 449, 0, 0, 450, 451, 38, 452, 0, + 454, 455, 456, 457, 458, 0, 459, 895, 461, 0, + 0, 896, 463, 464, 465, 466, 0, 467, 468, 469, + 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, + 40, 478, 479, 480, 481, 0, 482, 483, 484, 485, + 486, 804, 488, 489, 0, 490, 0, 492, 493, 494, + 495, 496, 497, 498, 0, 0, 499, 0, 44, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 0, 528, 45, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, + 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, + 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, + 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, + 155, 156, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, + 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, + 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, + 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, + 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, + 23, 0, 238, 239, 529, 0, 242, 0, 243, 0, + 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, + 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, + 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, + 0, 0, 289, 0, 291, 0, 0, 293, 294, 295, + 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, + 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, + 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, + 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 26, 27, 28, 0, 362, 363, 364, + 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, + 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, + 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 33, 0, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 531, 448, 449, 0, 0, 450, 451, 38, 452, 0, + 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, + 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, + 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, + 40, 478, 479, 480, 481, 0, 482, 483, 484, 485, + 486, 804, 488, 489, 0, 490, 0, 492, 493, 494, + 495, 496, 497, 498, 0, 0, 499, 0, 44, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 0, 528, 45, 554, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 46, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, @@ -7448,258 +8135,158 @@ static const yytype_int16 yytable[] = 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 973, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2476, 3273, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 3, 4, 0, 565, 0, 0, 0, 0, 570, - 130, 131, 0, 132, 133, 134, 572, 136, 137, 138, - 573, 574, 575, 576, 577, 0, 144, 145, 146, 147, - 148, 149, 0, 0, 150, 151, 152, 153, 581, 582, - 156, 0, 157, 158, 159, 160, 584, 0, 586, 0, - 588, 164, 165, 166, 167, 168, 589, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 0, 592, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 594, - 191, 192, 595, 194, 0, 195, 0, 196, 197, 198, - 199, 200, 201, 14, 15, 202, 203, 204, 205, 0, - 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 605, - 222, 223, 224, 225, 226, 227, 606, 0, 229, 0, - 230, 231, 609, 233, 0, 234, 0, 235, 612, 23, - 614, 238, 239, 615, 616, 242, 0, 243, 0, 619, - 620, 246, 247, 0, 248, 249, 250, 251, 252, 253, - 254, 622, 256, 257, 258, 259, 0, 260, 261, 262, - 263, 264, 265, 266, 0, 267, 625, 626, 270, 271, - 272, 273, 274, 627, 628, 0, 630, 0, 278, 632, - 633, 281, 634, 283, 284, 285, 286, 287, 288, 0, - 0, 289, 637, 291, 638, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 640, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 641, 642, 643, 325, 326, - 327, 644, 0, 329, 330, 646, 332, 0, 648, 334, - 649, 336, 337, 338, 0, 339, 340, 0, 0, 341, - 342, 343, 0, 0, 344, 345, 655, 656, 348, 657, - 658, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 26, 27, 28, 0, 362, 363, 663, 664, - 366, 367, 665, 369, 370, 371, 0, 372, 373, 374, - 375, 376, 377, 0, 378, 379, 380, 381, 382, 668, - 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, - 402, 671, 404, 405, 406, 672, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 33, - 674, 421, 422, 423, 424, 425, 426, 675, 428, 429, - 35, 677, 431, 432, 678, 434, 0, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 680, - 448, 681, 37, 0, 450, 451, 38, 452, 685, 454, - 455, 456, 457, 458, 0, 459, 687, 688, 0, 0, - 462, 463, 691, 465, 692, 0, 467, 468, 694, 470, - 471, 472, 473, 474, 0, 0, 475, 476, 477, 40, - 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 974, 700, 489, 0, 490, 702, 492, 493, 494, 495, - 496, 497, 498, 0, 0, 499, 0, 44, 500, 501, - 502, 503, 504, 505, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 517, 518, 519, 520, 0, - 117, 45, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 46, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 0, 144, 145, 146, 147, - 148, 149, 0, 790, 150, 151, 152, 153, 154, 155, - 156, 0, 157, 158, 159, 160, 791, 0, 792, 0, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, - 199, 200, 201, 14, 15, 202, 203, 204, 205, 0, - 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 793, 0, 229, 0, - 230, 231, 232, 233, 0, 234, 0, 235, 236, 23, - 237, 238, 239, 240, 241, 242, 0, 243, 0, 244, - 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, - 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 0, 277, 0, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 794, - 0, 289, 290, 291, 292, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 329, 330, 331, 332, 0, 795, 334, - 335, 336, 337, 338, 0, 339, 340, 0, 796, 341, - 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, - 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 26, 27, 28, 0, 362, 363, 798, 365, - 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, - 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, - 402, 403, 404, 405, 406, 407, 799, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 33, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 35, 430, 431, 432, 433, 434, 0, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 800, 37, 0, 450, 451, 38, 452, 453, 454, - 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, - 462, 463, 801, 465, 802, 0, 467, 468, 803, 470, - 471, 472, 473, 474, 0, 0, 475, 476, 477, 40, - 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 804, 488, 489, 0, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 0, 0, 499, 0, 44, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 0, - 117, 45, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 805, 0, 0, 0, 118, + 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 994, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 129, - 130, 131, 0, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 0, 144, 145, 146, 147, - 148, 149, 0, 790, 150, 151, 152, 153, 154, 155, - 156, 0, 157, 158, 159, 160, 791, 0, 792, 0, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 0, 179, 180, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, + 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, + 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, + 156, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 163, 164, 165, 166, 167, 168, 0, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 793, 0, 229, 0, - 230, 231, 232, 233, 0, 234, 0, 235, 236, 0, - 237, 238, 239, 240, 241, 242, 0, 243, 0, 244, + 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, + 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, + 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 0, 260, 261, 262, - 263, 264, 265, 266, 0, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 0, 277, 0, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 794, - 0, 289, 290, 291, 292, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, + 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, + 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, + 0, 289, 0, 291, 0, 0, 293, 294, 295, 296, + 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 0, 329, 330, 331, 332, 0, 795, 334, - 335, 336, 337, 338, 0, 339, 340, 0, 796, 341, - 342, 343, 0, 0, 344, 345, 346, 347, 348, 349, - 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 0, 0, 0, 0, 362, 363, 798, 365, + 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, + 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, + 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, + 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, - 402, 403, 404, 405, 406, 407, 799, 409, 410, 411, + 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 0, 430, 431, 432, 433, 434, 0, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, - 448, 800, 0, 0, 450, 451, 0, 452, 453, 454, + 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, + 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, - 462, 463, 801, 465, 802, 0, 467, 468, 803, 470, + 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 804, 488, 489, 0, 490, 491, 492, 493, 494, 495, + 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 117, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 805, 0, 0, 118, 119, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, + 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1492, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 129, 130, - 131, 0, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 0, 144, 145, 146, 147, 148, - 149, 0, 790, 150, 151, 152, 153, 154, 155, 156, - 0, 157, 158, 159, 160, 791, 0, 792, 0, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, + 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, + 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, + 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, + 0, 157, 158, 159, 160, 161, 0, 0, 0, 163, + 164, 165, 166, 167, 168, 0, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 793, 0, 229, 0, 230, - 231, 232, 233, 0, 234, 0, 235, 236, 0, 237, - 238, 239, 240, 241, 242, 0, 243, 0, 244, 245, + 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, + 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, + 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 0, 260, 261, 262, 263, - 264, 265, 266, 0, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 0, 277, 0, 278, 279, 280, - 281, 282, 283, 284, 285, 286, 287, 288, 0, 0, - 289, 290, 291, 292, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, + 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, 0, 329, 330, 331, 332, 0, 795, 334, 335, + 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, + 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, - 343, 0, 0, 344, 345, 346, 347, 348, 349, 797, + 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 0, 0, 0, 0, 362, 363, 798, 365, 366, + 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 403, 404, 405, 406, 407, 799, 409, 410, 411, 412, + 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 430, 431, 432, 433, 434, 0, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 800, 0, 0, 450, 451, 0, 452, 453, 454, 455, + 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, + 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, - 463, 801, 465, 802, 0, 467, 468, 803, 470, 471, + 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 488, 489, 0, 490, 491, 492, 493, 494, 495, 496, + 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 117, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 46, 0, 0, 118, 119, 120, + 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, + 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2099, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, - 0, 132, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 0, 144, 145, 146, 147, 148, 149, - 0, 790, 150, 151, 152, 153, 154, 155, 156, 0, - 157, 158, 159, 160, 791, 0, 792, 0, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, + 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, + 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, + 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, + 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 163, 164, + 165, 166, 167, 168, 0, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 793, 0, 229, 0, 230, 231, - 232, 233, 0, 234, 0, 235, 236, 0, 237, 238, - 239, 240, 241, 242, 0, 243, 0, 244, 245, 246, - 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, + 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, + 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, + 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, + 247, 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, - 265, 266, 0, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 0, 277, 0, 278, 279, 280, 281, - 282, 283, 284, 285, 286, 287, 288, 0, 0, 289, - 290, 291, 292, 0, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, + 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, + 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, + 0, 291, 0, 0, 293, 294, 295, 296, 297, 298, + 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 0, 329, 330, 331, 332, 0, 795, 334, 335, 336, + 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, + 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, - 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, + 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 0, 0, 0, 0, 362, 363, 798, 365, 366, 367, + 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 0, 401, 402, 403, + 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 0, 430, + 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, - 0, 0, 450, 451, 0, 452, 453, 454, 455, 456, + 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, + 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, - 801, 465, 802, 0, 467, 468, 803, 470, 471, 472, + 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, - 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 528, 0, 0, + 514, 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3359, 0, 0, 118, 119, 120, 121, + 0, 0, 0, 2246, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, @@ -7710,11 +8297,11 @@ static const yytype_int16 yytable[] = 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, - 14, 15, 202, 203, 204, 205, 0, 0, 206, 207, + 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, - 233, 0, 234, 0, 235, 0, 23, 0, 238, 239, + 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, @@ -7728,29 +8315,29 @@ static const yytype_int16 yytable[] = 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 26, - 27, 28, 0, 362, 363, 364, 0, 366, 367, 368, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, + 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 33, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 35, 0, 431, + 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 531, 448, 449, 37, - 0, 450, 451, 38, 452, 0, 454, 455, 456, 457, + 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, + 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 40, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 804, 488, 489, + 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, + 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 44, 500, 501, 502, 503, 504, + 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 528, 0, 45, 0, + 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 46, 0, 0, 118, 119, 120, 121, 122, - 123, 124, 125, 893, 126, 127, 128, 0, 0, 0, + 0, 0, 2490, 0, 0, 118, 119, 120, 121, 122, + 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, @@ -7764,7 +8351,7 @@ static const yytype_int16 yytable[] = 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, - 0, 234, 0, 235, 0, 23, 0, 238, 239, 529, + 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, @@ -7778,78 +8365,28 @@ static const yytype_int16 yytable[] = 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 26, 27, - 28, 0, 362, 363, 364, 0, 366, 367, 368, 369, + 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, + 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 33, 0, 421, 422, 423, + 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, - 450, 451, 38, 452, 0, 454, 455, 456, 457, 458, - 0, 459, 894, 461, 0, 0, 895, 463, 464, 465, + 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, + 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, - 0, 0, 475, 476, 477, 40, 478, 479, 480, 481, - 0, 482, 483, 484, 485, 486, 804, 488, 489, 0, + 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, + 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, - 0, 499, 0, 44, 500, 501, 502, 503, 504, 505, + 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 528, 0, 45, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 46, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, - 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, - 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, - 151, 152, 153, 154, 155, 156, 0, 157, 158, 159, - 160, 161, 0, 0, 0, 163, 164, 165, 166, 167, - 168, 0, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, - 234, 0, 235, 0, 23, 0, 238, 239, 529, 0, - 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, - 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 0, 291, 0, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 530, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, - 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, - 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, - 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 26, 27, 28, - 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 33, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, - 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, - 451, 38, 452, 0, 454, 455, 456, 457, 458, 0, - 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, - 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 40, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 804, 488, 489, 0, 490, - 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 44, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 0, 528, 45, 554, 0, 0, + 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 46, 0, 0, 0, 118, 119, 120, 121, 122, 123, + 0, 2631, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, @@ -7899,7 +8436,7 @@ static const yytype_int16 yytable[] = 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 993, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 2844, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, @@ -7947,8 +8484,8 @@ static const yytype_int16 yytable[] = 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1481, + 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 3299, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, @@ -7997,8 +8534,8 @@ static const yytype_int16 yytable[] = 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2230, 0, + 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2206, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, @@ -8047,308 +8584,277 @@ static const yytype_int16 yytable[] = 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2476, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, - 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, - 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, - 155, 156, 0, 157, 158, 159, 160, 161, 0, 0, - 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, - 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, - 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, - 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, - 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, - 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 0, 291, 0, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, - 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, - 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, - 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, - 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, - 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, - 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, - 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2612, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, - 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, - 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, - 156, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 163, 164, 165, 166, 167, 168, 0, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 0, 0, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, - 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, - 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, - 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, - 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, - 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, - 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, - 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, - 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, - 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, - 0, 289, 0, 291, 0, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, - 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, - 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, - 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, - 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, - 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, - 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, - 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, - 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, - 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, - 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, - 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, - 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 3268, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, - 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, - 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, - 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, - 0, 157, 158, 159, 160, 161, 0, 0, 0, 163, - 164, 165, 166, 167, 168, 0, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, - 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, - 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, - 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, - 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, - 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, - 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, - 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, - 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, - 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, - 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, - 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, - 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, - 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, - 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, - 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, - 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, - 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, - 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, - 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, + 520, 0, 2970, 1363, 821, 0, 0, 2074, 1060, 0, + 0, 0, 0, 0, 2075, 2076, 0, 3161, 2077, 2078, + 2079, 118, 119, 120, 121, 122, 123, 124, 125, 561, + 126, 127, 128, 562, 563, 564, 2971, 566, 567, 568, + 569, 2972, 130, 131, 571, 132, 133, 134, 2973, 136, + 137, 138, 0, 1505, 2974, 1507, 1508, 578, 144, 145, + 146, 147, 148, 149, 579, 580, 150, 151, 152, 153, + 1509, 1510, 156, 583, 157, 158, 159, 160, 0, 585, + 2975, 587, 2976, 164, 165, 166, 167, 168, 2977, 170, + 171, 172, 590, 173, 174, 175, 176, 177, 178, 591, + 2978, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 1515, 191, 192, 1516, 194, 596, 195, 597, 196, + 197, 198, 199, 200, 201, 598, 599, 202, 203, 204, + 205, 600, 601, 206, 207, 1073, 209, 210, 602, 211, + 212, 213, 603, 214, 215, 216, 604, 217, 218, 219, + 220, 0, 222, 223, 224, 225, 226, 227, 0, 607, + 229, 608, 230, 231, 1517, 233, 610, 234, 611, 235, + 2979, 613, 2980, 238, 239, 2981, 2982, 242, 617, 243, + 618, 0, 0, 246, 247, 621, 248, 249, 250, 251, + 252, 253, 254, 2983, 256, 257, 258, 259, 623, 260, + 261, 262, 263, 264, 265, 266, 624, 267, 2984, 0, + 270, 271, 272, 273, 274, 1523, 1524, 629, 1525, 631, + 278, 2985, 2986, 281, 2987, 283, 284, 285, 286, 287, + 288, 635, 636, 289, 2988, 291, 2989, 639, 293, 294, + 295, 296, 297, 298, 299, 300, 2990, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 1532, 2991, 1534, + 325, 326, 327, 2992, 645, 329, 330, 2993, 332, 647, + 0, 334, 1536, 336, 337, 338, 650, 339, 340, 651, + 652, 2994, 342, 343, 653, 654, 344, 345, 0, 2995, + 348, 2996, 0, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 659, 660, 661, 662, 362, 363, + 0, 2997, 366, 367, 0, 369, 370, 371, 666, 372, + 373, 374, 375, 376, 377, 667, 378, 379, 380, 381, + 382, 1540, 384, 385, 386, 387, 669, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 670, 401, 402, 2998, 404, 405, 406, 1542, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 673, 2999, 421, 422, 423, 424, 425, 426, 3000, + 428, 429, 676, 3001, 431, 432, 1546, 434, 679, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 3002, 448, 0, 682, 683, 450, 451, 684, 452, + 3003, 454, 455, 456, 457, 458, 686, 459, 1549, 1550, + 689, 690, 462, 463, 0, 465, 0, 693, 467, 468, + 3004, 470, 471, 472, 473, 474, 3005, 696, 475, 476, + 477, 697, 478, 479, 480, 481, 698, 482, 483, 484, + 485, 486, 0, 1553, 489, 701, 490, 3006, 492, 493, + 494, 495, 496, 497, 498, 703, 704, 499, 705, 706, + 500, 501, 502, 503, 504, 505, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 517, 518, 519, + 520, 0, 528, 0, 2080, 2081, 2082, 2074, 3007, 3008, + 2085, 2086, 2087, 2088, 2075, 2076, 0, 0, 2077, 2078, + 2079, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, + 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, + 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, + 154, 155, 156, 0, 157, 158, 159, 160, 161, 0, + 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, + 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, + 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, + 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, + 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, + 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, + 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, + 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, + 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, + 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, + 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, + 288, 0, 0, 289, 0, 291, 0, 0, 293, 294, + 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, + 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, + 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, + 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, + 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, + 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, + 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, + 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, + 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, + 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, + 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, + 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 0, 0, 0, 2080, 2081, 2082, 0, 2083, 2084, + 2085, 2086, 2087, 2088, 1638, 0, 0, 1639, 0, 0, + 0, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2085, 0, 0, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, - 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, - 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, - 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 163, 164, - 165, 166, 167, 168, 0, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, - 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, - 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, - 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, - 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, - 247, 0, 248, 249, 250, 251, 252, 253, 254, 0, - 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, - 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, - 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, - 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, - 0, 291, 0, 0, 293, 294, 295, 296, 297, 298, - 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, + 0, 0, 1647, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1649, 1638, 0, 0, 1639, 0, 0, 1650, + 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1647, 0, 0, 0, 0, 1651, 0, 0, 0, + 0, 1649, 1638, 0, 0, 1639, 0, 0, 1650, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1647, 0, 0, 0, 0, 1651, 0, 0, 0, 0, + 1649, 0, 0, 0, 0, 0, 0, 1650, 0, 0, + 1638, 0, 0, 1639, 0, 0, 0, 1640, 1641, 1642, + 1643, 1644, 1645, 1646, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1651, 0, 0, 0, 1647, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1649, 1638, + 0, 0, 1639, 1652, 0, 1650, 1640, 1641, 1642, 1643, + 1644, 1645, 1646, 0, 0, 0, 0, 0, 0, 0, + 1653, 0, 0, 0, 0, 1654, 0, 1647, 0, 0, + 0, 0, 1651, 0, 0, 0, 0, 1649, 0, 0, + 0, 0, 1652, 0, 1650, 0, 0, 0, 1655, 1656, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1653, + 0, 0, 0, 1657, 1654, 0, 0, 0, 0, 0, + 0, 1651, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1652, 0, 0, 0, 0, 0, 1655, 1656, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1653, 0, + 0, 1658, 1657, 1654, 1659, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1660, 0, + 0, 1661, 0, 0, 0, 0, 1655, 1656, 0, 1652, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1658, 1657, 0, 1659, 0, 0, 1653, 0, 0, 0, + 0, 1654, 0, 0, 0, 0, 0, 1660, 0, 0, + 1661, 0, 0, 0, 0, 0, 0, 0, 1652, 0, + 0, 0, 0, 0, 1655, 1656, 0, 0, 0, 1658, + 0, 0, 1659, 0, 0, 1653, 0, 0, 0, 1657, + 1654, 0, 0, 0, 0, 0, 1660, 0, 0, 1661, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1655, 1656, 0, 0, 0, 0, 0, + 1662, 0, 0, 0, 0, 0, 0, 1658, 1657, 0, + 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1660, 0, 0, 1661, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1662, + 0, 0, 0, 0, 0, 0, 1658, 0, 0, 1659, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1660, 0, 0, 1661, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1662, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1663, 0, + 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, + 1672, 0, 0, 0, 0, 3322, 1662, 0, 0, 0, + 0, 0, 1638, 0, 0, 1639, 0, 0, 0, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 0, 1663, 0, 0, + 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, + 1647, 0, 0, 0, 3344, 1662, 0, 0, 1638, 0, + 1649, 1639, 0, 0, 0, 1640, 1641, 1650, 0, 1644, + 1645, 1646, 0, 0, 0, 0, 1663, 0, 0, 1664, + 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, + 0, 0, 0, 3444, 1651, 0, 1649, 0, 0, 0, + 0, 0, 0, 1650, 0, 0, 0, 0, 0, 1638, + 0, 0, 1639, 0, 0, 0, 1640, 1641, 1642, 1643, + 1644, 1645, 1646, 0, 1663, 0, 0, 1664, 1665, 1666, + 1651, 1667, 1668, 1669, 1670, 1671, 1672, 1647, 0, 0, + 0, 3500, 0, 0, 0, 0, 0, 1649, 1638, 0, + 0, 1639, 0, 0, 1650, 1640, 1641, 1642, 1643, 1644, + 1645, 1646, 0, 1663, 0, 0, 1664, 1665, 1666, 0, + 1667, 1668, 1669, 1670, 1671, 1672, 1647, 0, 0, 0, + 3522, 1651, 0, 0, 0, 0, 1649, 1638, 0, 0, + 1639, 1652, 0, 1650, 1640, 1641, 1642, 1643, 1644, 1645, + 1646, 0, 0, 0, 0, 0, 0, 0, 1653, 0, + 0, 0, 0, 1654, 0, 1647, 0, 0, 0, 0, + 1651, 0, 0, 0, 0, 1649, 0, 1652, 0, 0, + 0, 0, 1650, 0, 0, 0, 1655, 1656, 0, 0, + 0, 0, 0, 0, 1653, 0, 0, 0, 0, 1654, + 0, 1657, 0, 0, 0, 0, 0, 0, 0, 1651, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1655, 1656, 0, 0, 0, 0, 1652, 0, + 0, 0, 0, 0, 0, 0, 0, 1657, 0, 1658, + 0, 0, 1659, 0, 0, 1653, 0, 0, 0, 0, + 1654, 0, 0, 0, 0, 0, 1660, 0, 0, 1661, + 0, 0, 0, 0, 0, 0, 0, 1652, 0, 0, + 0, 0, 0, 1655, 1656, 1658, 0, 0, 1659, 0, + 0, 0, 0, 0, 1653, 0, 0, 0, 1657, 1654, + 0, 0, 1660, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1652, 0, 0, 0, + 0, 0, 1655, 1656, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1653, 0, 0, 1658, 1657, 1654, 1659, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1660, 0, 0, 1661, 0, 0, 0, + 0, 1655, 1656, 0, 0, 0, 0, 0, 1662, 0, + 0, 0, 0, 0, 0, 1658, 1657, 0, 1659, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1660, 0, 0, 1661, 0, 0, 0, 0, + 0, 0, 0, 0, 1662, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1658, 0, 0, 1659, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1660, 0, 0, 1661, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1662, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1663, 0, 0, 1664, + 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, + 0, 1826, 0, 0, 1662, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, + 1668, 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, + 0, 0, 0, 1662, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1663, 0, 0, 1664, 1665, 1666, 0, + 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, 2870, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, + 1668, 1669, 1670, 1671, 1672, 0, 0, 3312, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, + 0, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, 1668, + 1669, 1670, 1671, 1672, 0, 0, 3484, 118, 119, 120, + 121, 122, 123, 124, 125, 561, 126, 127, 128, 562, + 563, 564, 565, 566, 567, 568, 569, 570, 130, 131, + 571, 132, 133, 134, 572, 136, 137, 138, 573, 574, + 575, 576, 577, 578, 144, 145, 146, 147, 148, 149, + 579, 580, 150, 151, 152, 153, 581, 582, 156, 583, + 157, 158, 159, 160, 584, 585, 586, 587, 588, 164, + 165, 166, 167, 168, 589, 170, 171, 172, 590, 173, + 174, 175, 176, 177, 178, 591, 592, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 594, 191, 192, + 595, 194, 596, 195, 597, 196, 197, 198, 199, 200, + 201, 598, 599, 202, 203, 204, 205, 600, 601, 206, + 207, 208, 209, 210, 602, 211, 212, 213, 603, 214, + 215, 216, 604, 217, 218, 219, 220, 605, 222, 223, + 224, 225, 226, 227, 606, 607, 229, 608, 230, 231, + 609, 233, 610, 234, 611, 235, 612, 613, 614, 238, + 239, 615, 616, 242, 617, 243, 618, 619, 620, 246, + 247, 621, 248, 249, 250, 251, 252, 253, 254, 622, + 256, 257, 258, 259, 623, 260, 261, 262, 263, 264, + 265, 266, 624, 267, 625, 626, 270, 271, 272, 273, + 274, 627, 628, 629, 630, 631, 278, 632, 633, 281, + 634, 283, 284, 285, 286, 287, 288, 635, 636, 289, + 637, 291, 638, 639, 293, 294, 295, 296, 297, 298, + 299, 300, 640, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, - 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, - 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, - 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, + 319, 320, 321, 641, 642, 643, 325, 326, 327, 644, + 645, 329, 330, 646, 332, 647, 648, 334, 649, 336, + 337, 338, 650, 339, 340, 651, 652, 341, 342, 343, + 653, 654, 344, 345, 655, 656, 348, 657, 658, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, - 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, - 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, - 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, - 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, - 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, - 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, - 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, - 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, - 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, - 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 528, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2190, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, - 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, - 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, - 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 163, 164, 165, - 166, 167, 168, 0, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, - 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, - 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, - 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 0, - 291, 0, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, - 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, - 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, - 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, - 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, - 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, - 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, - 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, - 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 0, 2946, 1356, 820, - 0, 0, 2060, 1054, 0, 0, 0, 0, 0, 2061, - 2062, 0, 3131, 2063, 2064, 2065, 118, 119, 120, 121, - 122, 123, 124, 125, 561, 126, 127, 128, 562, 563, - 564, 2947, 566, 567, 568, 569, 2948, 130, 131, 571, - 132, 133, 134, 2949, 136, 137, 138, 0, 1494, 2950, - 1496, 1497, 578, 144, 145, 146, 147, 148, 149, 579, - 580, 150, 151, 152, 153, 1498, 1499, 156, 583, 157, - 158, 159, 160, 0, 585, 2951, 587, 2952, 164, 165, - 166, 167, 168, 2953, 170, 171, 172, 590, 173, 174, - 175, 176, 177, 178, 591, 2954, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1504, 191, 192, 1505, - 194, 596, 195, 597, 196, 197, 198, 199, 200, 201, - 598, 599, 202, 203, 204, 205, 600, 601, 206, 207, - 1067, 209, 210, 602, 211, 212, 213, 603, 214, 215, - 216, 604, 217, 218, 219, 220, 0, 222, 223, 224, - 225, 226, 227, 0, 607, 229, 608, 230, 231, 1506, - 233, 610, 234, 611, 235, 2955, 613, 2956, 238, 239, - 2957, 2958, 242, 617, 243, 618, 0, 0, 246, 247, - 621, 248, 249, 250, 251, 252, 253, 254, 2959, 256, - 257, 258, 259, 623, 260, 261, 262, 263, 264, 265, - 266, 624, 267, 2960, 0, 270, 271, 272, 273, 274, - 1512, 1513, 629, 1514, 631, 278, 2961, 2962, 281, 2963, - 283, 284, 285, 286, 287, 288, 635, 636, 289, 2964, - 291, 2965, 639, 293, 294, 295, 296, 297, 298, 299, - 300, 2966, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1521, 2967, 1523, 325, 326, 327, 2968, 645, - 329, 330, 2969, 332, 647, 0, 334, 1525, 336, 337, - 338, 650, 339, 340, 651, 652, 2970, 342, 343, 653, - 654, 344, 345, 0, 2971, 348, 2972, 0, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 659, - 660, 661, 662, 362, 363, 0, 2973, 366, 367, 0, - 369, 370, 371, 666, 372, 373, 374, 375, 376, 377, - 667, 378, 379, 380, 381, 382, 1529, 384, 385, 386, - 387, 669, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 670, 401, 402, 2974, 404, - 405, 406, 1531, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 673, 2975, 421, 422, - 423, 424, 425, 426, 2976, 428, 429, 676, 2977, 431, - 432, 1535, 434, 679, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 2978, 448, 0, 682, - 683, 450, 451, 684, 452, 2979, 454, 455, 456, 457, - 458, 686, 459, 1538, 1539, 689, 690, 462, 463, 0, - 465, 0, 693, 467, 468, 2980, 470, 471, 472, 473, - 474, 2981, 696, 475, 476, 477, 697, 478, 479, 480, - 481, 698, 482, 483, 484, 485, 486, 0, 1542, 489, - 701, 490, 2982, 492, 493, 494, 495, 496, 497, 498, - 703, 704, 499, 705, 706, 500, 501, 502, 503, 504, - 505, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 517, 518, 519, 520, 0, 528, 0, 2066, - 2067, 2068, 2060, 2983, 2984, 2071, 2072, 2073, 2074, 2061, - 2062, 0, 0, 2063, 2064, 2065, 118, 119, 120, 121, + 659, 660, 661, 662, 362, 363, 663, 664, 366, 367, + 665, 369, 370, 371, 666, 372, 373, 374, 375, 376, + 377, 667, 378, 379, 380, 381, 382, 668, 384, 385, + 386, 387, 669, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 670, 401, 402, 671, + 404, 405, 406, 672, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 673, 674, 421, + 422, 423, 424, 425, 426, 675, 428, 429, 676, 677, + 431, 432, 678, 434, 679, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 680, 448, 681, + 682, 683, 450, 451, 684, 452, 685, 454, 455, 456, + 457, 458, 686, 459, 687, 688, 689, 690, 462, 463, + 691, 465, 692, 693, 467, 468, 694, 470, 471, 472, + 473, 474, 695, 696, 475, 476, 477, 697, 478, 479, + 480, 481, 698, 482, 483, 484, 485, 486, 699, 700, + 489, 701, 490, 702, 492, 493, 494, 495, 496, 497, + 498, 703, 704, 499, 705, 706, 500, 501, 502, 503, + 504, 505, 707, 708, 709, 710, 711, 712, 713, 714, + 715, 716, 717, 517, 518, 519, 520, 528, 0, 0, + 0, 0, 0, 0, 0, 0, 2111, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, @@ -8396,172 +8902,349 @@ static const yytype_int16 yytable[] = 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 0, 0, 0, 2066, - 2067, 2068, 0, 2069, 2070, 2071, 2072, 2073, 2074, 1626, - 0, 0, 1627, 0, 0, 0, 1628, 1629, 1630, 1631, - 1632, 1633, 1634, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1635, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1637, 1626, 0, - 0, 1627, 0, 0, 1638, 1628, 1629, 1630, 1631, 1632, - 1633, 1634, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1635, 0, 0, 0, - 0, 1639, 0, 0, 0, 0, 1637, 1626, 0, 0, - 1627, 0, 0, 1638, 1628, 1629, 1630, 1631, 1632, 1633, - 1634, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1635, 0, 0, 0, 0, - 1639, 0, 0, 0, 0, 1637, 0, 0, 0, 0, - 0, 0, 1638, 0, 0, 1626, 0, 0, 1627, 0, - 0, 0, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1639, - 0, 0, 0, 1635, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1637, 1626, 0, 0, 1627, 1640, 0, - 1638, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, - 0, 0, 0, 0, 0, 1641, 0, 0, 0, 0, - 1642, 0, 1635, 0, 0, 0, 0, 1639, 0, 0, - 0, 0, 1637, 0, 0, 0, 0, 1640, 0, 1638, - 0, 0, 0, 1643, 1644, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1641, 0, 0, 0, 1645, 1642, - 0, 0, 0, 0, 0, 0, 1639, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1640, 0, 0, 0, - 0, 0, 1643, 1644, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1641, 0, 0, 1646, 1645, 1642, 1647, + 515, 516, 517, 518, 519, 520, 528, 0, 0, 0, + 0, 0, 0, 0, 0, 2763, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, + 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, + 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, + 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, + 150, 151, 152, 153, 154, 155, 156, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 163, 164, 165, 166, + 167, 168, 0, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, + 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, + 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, + 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, + 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, + 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, + 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, + 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, + 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, + 284, 285, 286, 287, 288, 0, 0, 289, 0, 291, + 0, 0, 293, 294, 295, 296, 297, 298, 299, 300, + 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, + 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, + 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, + 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, + 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, + 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, + 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, + 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, + 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, + 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, + 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, + 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, + 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 974, 1363, 821, 0, 0, + 0, 1060, 0, 0, 2766, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, + 124, 125, 0, 126, 127, 128, 0, 0, 0, 565, + 0, 0, 0, 0, 570, 130, 131, 0, 132, 133, + 134, 572, 136, 137, 138, 573, 574, 575, 576, 577, + 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, + 151, 152, 153, 581, 582, 156, 0, 157, 158, 159, + 160, 584, 0, 586, 0, 588, 164, 165, 166, 167, + 168, 589, 170, 171, 172, 0, 173, 174, 175, 176, + 177, 178, 0, 592, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 594, 191, 192, 595, 194, 0, + 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, + 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, + 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, + 217, 218, 219, 220, 605, 222, 223, 224, 225, 226, + 227, 606, 1364, 229, 0, 230, 231, 609, 233, 0, + 234, 0, 235, 612, 0, 614, 238, 239, 615, 616, + 242, 0, 243, 0, 619, 620, 246, 247, 0, 248, + 249, 250, 251, 252, 253, 254, 622, 256, 257, 258, + 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, + 267, 625, 626, 270, 271, 272, 273, 274, 627, 628, + 0, 630, 0, 278, 632, 633, 281, 634, 283, 284, + 285, 286, 287, 288, 0, 0, 289, 637, 291, 638, + 0, 293, 294, 295, 296, 297, 298, 299, 300, 640, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 641, 642, 643, 325, 326, 327, 644, 0, 329, 330, + 646, 332, 0, 648, 334, 649, 336, 337, 338, 0, + 339, 340, 1365, 0, 341, 342, 343, 0, 0, 344, + 345, 655, 656, 348, 657, 658, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, + 0, 362, 363, 663, 664, 366, 367, 665, 369, 370, + 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, + 379, 380, 381, 382, 668, 384, 385, 386, 387, 0, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 0, 401, 402, 671, 404, 405, 406, + 672, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 0, 674, 421, 422, 423, 424, + 425, 426, 675, 428, 429, 0, 677, 431, 432, 678, + 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 680, 448, 681, 0, 0, 450, + 451, 0, 452, 685, 454, 455, 456, 457, 458, 0, + 459, 687, 688, 0, 0, 462, 463, 691, 465, 692, + 1366, 467, 468, 694, 470, 471, 472, 473, 474, 0, + 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, + 482, 483, 484, 485, 486, 699, 700, 489, 0, 490, + 702, 492, 493, 494, 495, 496, 497, 498, 0, 0, + 499, 0, 0, 500, 501, 502, 503, 504, 505, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 517, 518, 519, 520, 0, 0, 1638, 0, 0, 1639, + 0, 1367, 1368, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1648, 0, 0, 1649, 0, 0, 0, - 0, 1643, 1644, 0, 1640, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1646, 1645, 0, 1647, 0, - 0, 1641, 0, 0, 0, 0, 1642, 0, 0, 0, - 0, 0, 1648, 0, 0, 1649, 0, 0, 0, 0, - 0, 0, 0, 1640, 0, 0, 0, 0, 0, 1643, - 1644, 0, 0, 0, 1646, 0, 0, 1647, 0, 0, - 1641, 0, 0, 0, 1645, 1642, 0, 0, 0, 0, - 0, 1648, 0, 0, 1649, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1643, 1644, - 0, 0, 0, 0, 0, 1650, 0, 0, 0, 0, - 0, 0, 1646, 1645, 0, 1647, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1648, - 0, 0, 1649, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1650, 0, 0, 0, 0, 0, - 0, 1646, 0, 0, 1647, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1648, 0, - 0, 1649, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1650, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1647, 0, 0, 0, 0, 2212, + 0, 0, 0, 0, 1649, 1638, 0, 0, 1639, 0, + 0, 1650, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, + 0, 0, 0, 1638, 0, 0, 1639, 0, 0, 0, + 1640, 1641, 0, 1647, 1644, 1645, 1646, 0, 1651, 0, + 0, 0, 0, 1649, 1638, 0, 0, 1639, 0, 0, + 1650, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, 0, + 0, 1649, 0, 0, 0, 0, 0, 0, 1650, 0, + 0, 0, 1647, 0, 0, 0, 0, 1651, 0, 0, + 0, 0, 1649, 0, 2213, 0, 0, 0, 0, 1650, + 0, 1638, 0, 0, 1639, 1651, 0, 0, 1640, 1641, + 1642, 1643, 1644, 1645, 1646, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1651, 0, 0, 1647, + 0, 0, 0, 1925, 0, 0, 0, 0, 0, 1649, + 0, 0, 0, 0, 0, 1652, 1650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1653, 0, 0, 0, 0, 1654, 0, 0, + 0, 0, 0, 1651, 1961, 0, 0, 0, 0, 1962, + 0, 0, 0, 0, 1652, 0, 0, 0, 0, 0, + 1655, 1656, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1653, 1652, 0, 0, 1657, 1654, 0, 0, 0, + 0, 0, 3590, 0, 0, 0, 0, 0, 0, 1653, + 0, 0, 0, 1652, 1654, 0, 0, 0, 0, 1655, + 1656, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1653, 0, 0, 1658, 1657, 1654, 1659, -2101, -2101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1651, 0, 0, 1652, 1653, 1654, 0, - 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, 0, 0, - 2892, 1650, 0, 0, 0, 0, 0, 1626, 0, 0, - 1627, 0, 0, 0, 1628, 1629, 1630, 1631, 1632, 1633, - 1634, 0, 1651, 0, 0, 1652, 1653, 1654, 0, 1655, - 1656, 1657, 1658, 1659, 1660, 1635, 0, 0, 0, 3123, - 1650, 0, 0, 0, 0, 1637, 0, 0, 0, 0, - 0, 0, 1638, 0, 0, 0, 0, 0, 0, 0, - 0, 1651, 0, 0, 1652, 1653, 1654, 0, 1655, 1656, - 1657, 1658, 1659, 1660, 0, 0, 0, 0, 3130, 1639, + 1660, 0, 1657, 1661, 0, 0, 0, 0, 1655, 1656, + 1652, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1658, 1657, 0, 1659, 0, 1653, 0, 0, + 0, 0, 1654, 0, 0, 0, 0, 0, 0, 1660, + 0, 0, 1661, -2101, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1655, 1656, 1660, 0, 0, + 0, 1658, 0, 0, 1659, 0, 0, 0, 0, 0, + 1657, 0, 0, 0, 0, 0, 0, 0, 1660, 0, + 0, 1661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1626, 0, 0, 1627, 0, 0, - 0, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, 1651, - 0, 0, 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, - 1659, 1660, 1635, 0, 0, 0, 3288, 0, 0, 0, - 0, 0, 1637, 1626, 0, 0, 1627, 0, 0, 1638, - 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, 1651, 0, - 0, 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, - 1660, 1635, 0, 0, 0, 3310, 1639, 0, 0, 0, - 0, 1637, 1626, 0, 0, 1627, 1640, 0, 1638, 1628, - 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, 0, 0, - 0, 0, 0, 1641, 0, 0, 0, 0, 1642, 0, - 1635, 0, 0, 0, 0, 1639, 0, 0, 0, 0, - 1637, 0, 0, 0, 0, 0, 0, 1638, 0, 0, - 0, 1643, 1644, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1645, 0, 0, 0, - 0, 0, 0, 0, 1639, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1626, - 0, 0, 1627, 1640, 0, 0, 1628, 1629, 1630, 1631, - 1632, 1633, 1634, 0, 1646, 0, 0, 1647, 0, 0, - 1641, 0, 0, 0, 0, 1642, 0, 1635, 0, 0, - 0, 1648, 0, 0, 1649, 0, 0, 1637, 0, 0, - 0, 0, 1640, 0, 1638, 0, 0, 0, 1643, 1644, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1641, - 0, 0, 0, 1645, 1642, 0, 0, 0, 0, 0, - 0, 1639, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1640, 0, 0, 0, 0, 0, 1643, 1644, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1641, 0, - 0, 1646, 1645, 1642, 1647, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1648, 0, - 0, 1649, 0, 0, 0, 0, 1643, 1644, 0, 0, - 0, 0, 0, 1650, 0, 0, 0, 0, 0, 0, - 1646, 1645, 0, 1647, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1648, 0, 0, - 1649, 0, 0, 0, 0, 0, 0, 0, 1640, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1646, - 0, 0, 1647, 0, 0, 1641, 0, 0, 0, 0, - 1642, 0, 0, 0, 0, 0, 1648, 0, 0, 1649, + 0, 0, 1662, 0, 0, 0, 0, 0, 1658, 0, + 3591, 1659, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1660, 0, 0, 1661, 0, + 0, 0, 0, 0, 0, 0, 1638, 0, 0, 1639, + 0, 1662, 0, 1640, 1641, 1642, 1643, 1644, 1645, 1646, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1662, + 0, 0, 0, 0, 1647, 2216, 0, 0, 0, 0, + 0, 0, 0, 0, 1649, 0, 0, 0, 0, 0, + 1662, 1650, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1651, 0, + 1663, 0, 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, + 1670, 1671, 1672, 0, 0, 0, 0, 1662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1643, 1644, 0, 0, 0, 0, 0, - 1650, 0, 0, 0, 0, 0, 0, 0, 1645, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1663, + 0, 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, + 1671, 1672, 0, 0, 0, 0, 0, 1663, 0, 0, + 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, + 0, 0, 0, 0, 0, 0, 0, 0, 1663, 0, + 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, + 1672, 0, 0, 0, 0, 1652, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1638, 1653, 0, 1639, 0, 0, 1654, 1640, 1641, + 1642, 1643, 1644, 1645, 1646, 1663, 0, 0, 1664, 1665, + 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 1647, + 1655, 1656, 0, 1967, 0, 0, 0, 0, 0, 1649, + 0, 0, 0, 0, 0, 1657, 1650, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1638, 0, 0, + 1639, 0, 0, 1651, 1640, 1641, 1642, 1643, 1644, 1645, + 1646, 0, 0, 1658, 0, 0, 1659, 0, 0, 0, + 0, 0, 0, 0, 0, 1647, 0, 0, 0, 0, + 1660, 0, 0, 1661, 0, 1649, 0, 0, 0, 0, + 0, 0, 1650, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1932, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1651, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1638, 0, 0, 1639, + 0, 0, 0, 1640, 1641, 1642, 1643, 1644, 1645, 1646, + 1652, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1647, 0, 0, 1653, 1974, 0, + 0, 0, 1654, 0, 1649, 0, 0, 0, 0, 0, + 0, 1650, 1662, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1655, 1656, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1651, 0, + 1657, 1972, 0, 0, 0, 0, 1652, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1653, 0, 0, 0, 0, 1654, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1658, 0, + 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1655, 1656, 0, 0, 1660, 0, 0, 1661, 0, + 0, 0, 0, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1651, 0, 0, 1652, 1653, 1654, 0, 1655, 1656, - 1657, 1658, 1659, 1660, 0, 0, 0, 0, 3409, 1650, - 0, 0, 0, 0, 0, 0, 1646, 0, 0, 1647, + 1663, 0, 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, + 1670, 1671, 1672, 0, 0, 1652, 0, 0, 0, 0, + 0, 0, 0, 0, 1658, 0, 0, 1659, 0, 0, + 0, 0, 1653, 0, 0, 0, 0, 1654, 0, 0, + 0, 1660, 0, 0, 1661, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1638, 0, 0, 1639, 0, + 1655, 1656, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 0, + 0, 0, 0, 0, 0, 1657, 0, 1662, 0, 0, + 0, 0, 0, 1647, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1649, 0, 0, 0, 0, 0, 0, + 1650, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1638, 1658, 0, 1639, 1659, 0, 0, 1640, + 1641, 1642, 1643, 1644, 1645, 1646, 0, 1651, 0, 0, + 1660, 0, 0, 1661, 0, 0, 0, 0, 0, 0, + 1647, 0, 0, 1662, 0, 0, 0, 0, 0, 0, + 1649, 0, 0, 0, 0, 0, 0, 1650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1379, 1380, 1648, 0, 0, 1649, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1626, 0, 1650, 1627, - 0, 0, 0, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1381, 1382, 1635, 0, 1383, 1384, 1651, 0, - 0, 1652, 1653, 1654, 1637, 1655, 1656, 1657, 1658, 1659, - 1660, 1638, 0, 0, 0, 3465, 0, 0, 0, 0, - 0, 0, 0, 1626, 0, 0, 1627, 0, 0, 0, - 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1651, 1639, 0, - 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, - 0, 1635, 0, 0, 3487, 1650, 0, 0, 0, 0, - 0, 1637, 0, 0, 0, 0, 0, 0, 1638, 0, - 0, 0, 1385, 1386, 0, 0, 1651, 0, 0, 1652, - 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, - 0, 1815, 0, 0, 0, 1639, 0, 0, 0, 0, + 0, 0, 0, 0, 1651, 1663, 0, 0, 1664, 1665, + 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, 1638, + 0, 0, 1639, 0, 0, 0, 1640, 1641, 1642, 1643, + 1644, 1645, 1646, 0, 2104, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1652, 0, 0, 1647, 0, 0, + 0, 2843, 1662, 0, 0, 0, 0, 1649, 0, 0, + 0, 1653, 0, 0, 1650, 0, 1654, 0, 0, 0, + 0, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, 1668, + 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, 1655, + 1656, 1651, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1652, 0, 0, 1657, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1653, 0, + 0, 0, 0, 1654, 0, 0, 0, 0, 1638, 0, + 0, 1639, 0, 0, 0, 1640, 1641, 1642, 1643, 1644, + 1645, 1646, 1658, 0, 0, 1659, 1655, 1656, 0, 0, + 0, 0, 0, 0, 0, 0, 1647, 0, 0, 1660, + 1663, 1657, 1661, 1664, 1665, 1666, 1649, 1667, 1668, 1669, + 1670, 1671, 1672, 1650, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1652, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1658, + 1651, 0, 1659, 0, 0, 1653, 0, 0, 0, 0, + 1654, 0, 0, 0, 0, 0, 1660, 0, 0, 1661, + 0, 0, 0, 0, 0, 0, 0, 0, 1638, 0, + 0, 1639, 0, 1655, 1656, 1640, 1641, 1642, 1643, 1644, + 1645, 1646, 0, 0, 0, 0, 0, 0, 1657, 0, + 0, 0, 0, 0, 0, 0, 1647, 0, 0, 0, + 0, 1662, 0, 0, 0, 0, 1649, 0, 0, 0, + 0, 0, 0, 1650, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1658, 0, 0, 1659, + 0, 0, 0, 0, 0, 0, 0, 1652, 0, 0, + 1651, 0, 0, 1660, 0, 0, 1661, 0, 0, 0, + 0, 0, 0, 0, 1653, 0, 0, 1638, 1662, 1654, + 1639, 0, 0, 0, 1640, 1641, 1642, 1643, 1644, 1645, + 1646, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1655, 1656, 0, 1647, 0, 0, 0, 0, + 0, 2827, 0, 0, 0, 1649, 0, 1657, 0, 0, + 0, 0, 1650, 0, 0, 0, 0, 0, 0, 1663, + 0, 0, 1664, 1665, 1666, 0, 1667, 1668, 1669, 1670, + 1671, 1672, 0, 0, 0, 0, 0, 0, 0, 1651, + 0, 0, 0, 0, 0, 1658, 0, 1652, 1659, 0, + 0, 0, 0, 0, 0, 1662, 0, 0, 0, 0, + 0, 0, 1660, 0, 1653, 1661, 0, 0, 0, 1654, + 0, 0, 0, 0, 0, 0, 1663, 0, 0, 1664, + 1665, 1666, 0, 1667, 1668, 1669, 1670, 1671, 1672, 0, + 0, 0, 1836, 1656, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1652, 0, 0, 0, + 0, 0, 0, 0, 0, 1658, 0, 0, 1659, 0, + 0, 0, 0, 1653, 0, 0, 0, 0, 1654, 0, + 0, 0, 1660, 1663, 1662, 1661, 1664, 1665, 1666, 0, + 1667, 1668, 1669, 1670, 1671, 1672, 0, 0, 0, 0, + 0, 1655, 1656, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1640, 1387, 1388, 1389, 1390, - 1391, 1392, 1393, 1394, 0, 0, 1395, 1396, 0, 0, - 0, 0, 1641, 0, 0, 0, 0, 1642, 0, 0, - 0, 0, 0, 1651, 0, 0, 1652, 1653, 1654, 0, - 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, 2846, 0, - 1643, 1644, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1640, 0, 0, 1645, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1641, - 0, 0, 0, 0, 1642, 0, 0, 0, 0, 0, - 1397, 1398, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1646, 0, 0, 1647, 1643, 1644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1648, 0, 1645, 1649, 0, 0, 0, 0, 0, 0, - 0, 1399, 1400, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1658, 0, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1646, 0, 0, 1647, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1648, 0, 0, - 1649, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1660, 0, 0, 1661, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1662, 0, 0, 0, 0, 0, + 0, 0, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, + 1668, 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1650, 0, 0, 0, 0, 1401, 1402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1403, 1404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2018, 0, 0, 0, 0, 0, 0, 0, 1650, + 0, 0, 0, 1662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, + 1668, 1669, 1670, 1671, 1672, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1651, 0, 0, 1652, 1653, 1654, 0, 1655, 1656, 1657, - 1658, 1659, 1660, 0, 0, 3278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 560, 0, 2128, 0, 0, + 0, 1663, 0, 0, 1664, 1665, 1666, 0, 1667, 1668, + 1669, 1670, 2233, 1672, 118, 119, 120, 121, 122, 123, + 124, 125, 561, 126, 127, 128, 562, 563, 564, 565, + 566, 567, 568, 569, 570, 130, 131, 571, 132, 133, + 134, 572, 136, 137, 138, 573, 574, 575, 576, 577, + 578, 144, 145, 146, 147, 148, 149, 579, 580, 150, + 151, 152, 153, 581, 582, 156, 583, 157, 158, 159, + 160, 584, 585, 586, 587, 588, 164, 165, 166, 167, + 168, 589, 170, 171, 172, 590, 173, 174, 175, 176, + 177, 178, 591, 592, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 594, 191, 192, 595, 194, 596, + 195, 597, 196, 197, 198, 199, 200, 201, 598, 599, + 202, 203, 204, 205, 600, 601, 206, 207, 208, 209, + 210, 602, 211, 212, 213, 603, 214, 215, 216, 604, + 217, 218, 219, 220, 605, 222, 223, 224, 225, 226, + 227, 606, 607, 229, 608, 230, 231, 609, 233, 610, + 234, 611, 235, 612, 613, 614, 238, 239, 615, 616, + 242, 617, 243, 618, 619, 620, 246, 247, 621, 248, + 249, 250, 251, 252, 253, 254, 622, 256, 257, 258, + 259, 623, 260, 261, 262, 263, 264, 265, 266, 624, + 267, 625, 626, 270, 271, 272, 273, 274, 627, 628, + 629, 630, 631, 278, 632, 633, 281, 634, 283, 284, + 285, 286, 287, 288, 635, 636, 289, 637, 291, 638, + 639, 293, 294, 295, 296, 297, 298, 299, 300, 640, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 641, 642, 643, 325, 326, 327, 644, 645, 329, 330, + 646, 332, 647, 648, 334, 649, 336, 337, 338, 650, + 339, 340, 651, 652, 341, 342, 343, 653, 654, 344, + 345, 655, 656, 348, 657, 658, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 659, 660, 661, + 662, 362, 363, 663, 664, 366, 367, 665, 369, 370, + 371, 666, 372, 373, 374, 375, 376, 377, 667, 378, + 379, 380, 381, 382, 668, 384, 385, 386, 387, 669, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 670, 401, 402, 671, 404, 405, 406, + 672, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 673, 674, 421, 422, 423, 424, + 425, 426, 675, 428, 429, 676, 677, 431, 432, 678, + 434, 679, 435, 436, 437, 438, 439, 440, 441, 442, + 443, 444, 445, 446, 680, 448, 681, 682, 683, 450, + 451, 684, 452, 685, 454, 455, 456, 457, 458, 686, + 459, 687, 688, 689, 690, 462, 463, 691, 465, 692, + 693, 467, 468, 694, 470, 471, 472, 473, 474, 695, + 696, 475, 476, 477, 697, 478, 479, 480, 481, 698, + 482, 483, 484, 485, 486, 699, 700, 489, 701, 490, + 702, 492, 493, 494, 495, 496, 497, 498, 703, 704, + 499, 705, 706, 500, 501, 502, 503, 504, 505, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 517, 518, 519, 520, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 560, 0, 0, 1651, 0, 0, - 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, - 0, 0, 3449, 118, 119, 120, 121, 122, 123, 124, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 561, 126, 127, 128, 562, 563, 564, 565, 566, 567, 568, 569, 570, 130, 131, 571, 132, 133, 134, 572, 136, 137, 138, 573, 574, 575, 576, 577, 578, @@ -8569,7 +9252,7 @@ static const yytype_int16 yytable[] = 152, 153, 581, 582, 156, 583, 157, 158, 159, 160, 584, 585, 586, 587, 588, 164, 165, 166, 167, 168, 589, 170, 171, 172, 590, 173, 174, 175, 176, 177, - 178, 591, 592, 180, 181, 182, 183, 184, 185, 186, + 178, 591, 592, 180, 181, 182, 183, 184, 185, 593, 187, 188, 189, 594, 191, 192, 595, 194, 596, 195, 597, 196, 197, 198, 199, 200, 201, 598, 599, 202, 203, 204, 205, 600, 601, 206, 207, 208, 209, 210, @@ -8609,349 +9292,109 @@ static const yytype_int16 yytable[] = 492, 493, 494, 495, 496, 497, 498, 703, 704, 499, 705, 706, 500, 501, 502, 503, 504, 505, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 517, - 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, - 0, 0, 2096, 0, 0, 0, 0, 0, 0, 0, + 518, 519, 520, 560, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, - 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, - 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, - 153, 154, 155, 156, 0, 157, 158, 159, 160, 161, - 0, 0, 0, 163, 164, 165, 166, 167, 168, 0, - 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, - 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, - 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, - 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, - 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, - 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, - 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, - 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, - 287, 288, 0, 0, 289, 0, 291, 0, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, + 561, 126, 127, 128, 562, 563, 564, 565, 566, 567, + 568, 569, 570, 130, 131, 571, 132, 133, 134, 572, + 136, 137, 138, 573, 574, 575, 576, 577, 578, 144, + 145, 146, 147, 148, 149, 579, 580, 150, 151, 152, + 153, 581, 582, 156, 583, 157, 158, 159, 160, 584, + 585, 586, 587, 588, 164, 165, 166, 167, 168, 589, + 170, 171, 172, 590, 173, 174, 175, 176, 177, 178, + 591, 592, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 594, 191, 192, 595, 194, 596, 195, 597, + 196, 197, 198, 199, 200, 201, 598, 599, 202, 203, + 204, 205, 600, 601, 206, 207, 208, 209, 210, 602, + 211, 212, 213, 603, 214, 215, 216, 604, 217, 218, + 219, 220, 605, 222, 223, 224, 225, 226, 227, 606, + 607, 229, 608, 230, 231, 609, 233, 610, 234, 611, + 235, 612, 613, 614, 238, 239, 615, 616, 242, 617, + 243, 618, 619, 620, 246, 247, 621, 248, 249, 250, + 251, 252, 950, 254, 622, 256, 257, 258, 259, 623, + 260, 261, 262, 263, 264, 265, 266, 624, 267, 625, + 626, 270, 271, 272, 273, 274, 627, 628, 629, 630, + 631, 278, 632, 633, 281, 634, 283, 284, 285, 286, + 287, 288, 635, 636, 289, 637, 291, 638, 639, 293, + 294, 295, 296, 297, 298, 299, 300, 640, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, - 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, - 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, - 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, - 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, - 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, - 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, + 314, 315, 316, 317, 318, 319, 320, 321, 641, 642, + 643, 325, 326, 327, 644, 645, 329, 330, 646, 332, + 647, 648, 334, 649, 336, 337, 338, 650, 339, 340, + 651, 652, 341, 342, 343, 653, 654, 344, 345, 655, + 656, 348, 657, 658, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 659, 660, 661, 662, 362, + 363, 663, 664, 366, 367, 665, 369, 370, 371, 666, + 372, 373, 374, 375, 376, 377, 667, 378, 379, 380, + 381, 382, 668, 384, 385, 386, 387, 669, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, + 400, 670, 401, 402, 671, 404, 405, 406, 672, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, + 419, 420, 673, 674, 421, 422, 423, 424, 425, 426, + 675, 428, 429, 676, 677, 431, 432, 678, 434, 679, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, - 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, - 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, - 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, - 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, - 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, - 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, - 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, - 0, 2744, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, - 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, - 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, - 154, 155, 156, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, - 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, - 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, - 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, - 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, - 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, - 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, - 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, - 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, - 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, - 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, - 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, - 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, - 288, 0, 0, 289, 0, 291, 0, 0, 293, 294, - 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, + 445, 446, 680, 448, 681, 682, 683, 450, 451, 684, + 452, 685, 454, 455, 456, 457, 458, 686, 459, 687, + 688, 689, 690, 462, 463, 691, 465, 692, 693, 467, + 468, 694, 470, 471, 472, 473, 474, 695, 696, 475, + 476, 477, 697, 478, 479, 480, 481, 698, 482, 483, + 484, 485, 486, 699, 700, 489, 701, 490, 702, 492, + 493, 494, 495, 496, 497, 498, 703, 704, 499, 705, + 706, 500, 501, 502, 503, 504, 505, 707, 708, 709, + 710, 711, 712, 713, 714, 715, 716, 717, 517, 518, + 519, 520, 560, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 118, 119, 120, 121, 122, 123, 124, 125, 561, + 126, 127, 128, 562, 563, 564, 565, 566, 567, 568, + 569, 570, 130, 131, 571, 132, 133, 134, 572, 136, + 137, 138, 573, 574, 575, 576, 577, 578, 144, 145, + 146, 147, 148, 149, 579, 580, 150, 151, 152, 153, + 581, 582, 156, 583, 157, 158, 159, 160, 584, 585, + 586, 587, 588, 164, 165, 166, 167, 168, 589, 170, + 171, 172, 590, 173, 174, 175, 176, 177, 178, 591, + 592, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 594, 191, 192, 595, 194, 596, 195, 597, 196, + 197, 198, 199, 200, 201, 598, 599, 202, 203, 204, + 205, 600, 601, 206, 207, 208, 209, 210, 602, 211, + 212, 213, 603, 214, 215, 216, 604, 217, 218, 219, + 220, 605, 222, 223, 224, 225, 226, 227, 606, 607, + 229, 608, 230, 231, 609, 233, 610, 234, 611, 235, + 612, 613, 614, 238, 239, 615, 616, 242, 617, 243, + 618, 619, 620, 246, 247, 621, 248, 249, 250, 251, + 252, 253, 254, 622, 256, 257, 258, 259, 623, 260, + 261, 262, 263, 264, 265, 266, 624, 267, 625, 626, + 270, 271, 272, 273, 274, 627, 628, 629, 630, 631, + 278, 632, 633, 281, 634, 283, 284, 285, 286, 287, + 288, 635, 636, 289, 637, 291, 638, 639, 293, 294, + 295, 296, 297, 298, 299, 300, 640, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, - 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, - 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, - 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, - 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, - 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, - 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, + 315, 316, 317, 318, 319, 320, 321, 641, 642, 643, + 325, 326, 327, 644, 645, 329, 330, 646, 332, 647, + 648, 334, 649, 336, 337, 338, 650, 339, 340, 651, + 652, 341, 342, 343, 653, 654, 344, 345, 655, 656, + 348, 657, 658, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 659, 660, 661, 662, 362, 363, + 663, 664, 366, 367, 665, 369, 370, 371, 666, 372, + 373, 374, 375, 376, 377, 667, 378, 379, 380, 381, + 382, 668, 384, 385, 386, 387, 669, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, + 670, 401, 402, 671, 404, 405, 406, 672, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, + 420, 673, 674, 421, 422, 423, 424, 425, 426, 675, + 428, 429, 676, 677, 431, 432, 678, 434, 679, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, - 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, - 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, - 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, - 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, - 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, - 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 973, 1356, 820, 0, 0, 0, 1054, 0, 0, - 2747, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 565, 0, 0, 0, 0, - 570, 130, 131, 0, 132, 133, 134, 572, 136, 137, - 138, 573, 574, 575, 576, 577, 0, 144, 145, 146, - 147, 148, 149, 0, 0, 150, 151, 152, 153, 581, - 582, 156, 0, 157, 158, 159, 160, 584, 0, 586, - 0, 588, 164, 165, 166, 167, 168, 589, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 592, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 594, 191, 192, 595, 194, 0, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 605, 222, 223, 224, 225, 226, 227, 606, 1357, 229, - 0, 230, 231, 609, 233, 0, 234, 0, 235, 612, - 0, 614, 238, 239, 615, 616, 242, 0, 243, 0, - 619, 620, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 622, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 625, 626, 270, - 271, 272, 273, 274, 627, 628, 0, 630, 0, 278, - 632, 633, 281, 634, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 637, 291, 638, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 640, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 641, 642, 643, 325, - 326, 327, 644, 0, 329, 330, 646, 332, 0, 648, - 334, 649, 336, 337, 338, 0, 339, 340, 1358, 0, - 341, 342, 343, 0, 0, 344, 345, 655, 656, 348, - 657, 658, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 663, - 664, 366, 367, 665, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 668, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 671, 404, 405, 406, 672, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 674, 421, 422, 423, 424, 425, 426, 675, 428, - 429, 0, 677, 431, 432, 678, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 680, 448, 681, 0, 0, 450, 451, 0, 452, 685, - 454, 455, 456, 457, 458, 0, 459, 687, 688, 0, - 0, 462, 463, 691, 465, 692, 1359, 467, 468, 694, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 699, 700, 489, 0, 490, 702, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 707, 708, 709, 710, 711, - 712, 713, 714, 715, 716, 717, 517, 518, 519, 520, - 0, 0, 1626, 0, 0, 1627, 0, 1360, 1361, 1628, - 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1635, 0, 0, 0, 0, 2196, 0, 0, 0, 0, - 1637, 1626, 0, 0, 1627, 0, 0, 1638, 1628, 1629, - 1630, 1631, 1632, 1633, 1634, 0, 0, 0, 0, 1626, - 0, 0, 1627, 0, 0, 0, 1628, 1629, 0, 1635, - 1632, 1633, 1634, 0, 1639, 0, 0, 0, 0, 1637, - 1626, 0, 0, 1627, 0, 0, 1638, 1628, 1629, 1630, - 1631, 1632, 1633, 1634, 0, 0, 0, 1637, 0, 0, - 0, 0, 0, 0, 1638, 0, 0, 0, 1635, 0, - 0, 0, 0, 1639, 0, 0, 0, 0, 1637, 0, - 2197, 0, 0, 0, 0, 1638, 0, 1626, 0, 0, - 1627, 1639, 0, 0, 1628, 1629, 1630, 1631, 1632, 1633, - 1634, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1639, 0, 0, 1635, 0, 0, 0, 1914, - 0, 0, 0, 0, 0, 1637, 0, 0, 0, 0, - 0, 1640, 1638, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1641, 0, - 0, 0, 0, 1642, 0, 0, 0, 0, 0, 1639, - 1950, 0, 0, 0, 0, 1951, 0, 0, 0, 0, - 1640, 0, 0, 0, 0, 0, 1643, 1644, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1641, 1640, 0, - 0, 1645, 1642, 0, 0, 0, 0, 0, 3555, 0, - 0, 0, 0, 0, 0, 1641, 0, 0, 0, 1640, - 1642, 0, 0, 0, 0, 1643, 1644, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1641, 0, 0, 1646, - 1645, 1642, 1647, 1643, 1644, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1648, 0, 1645, 1649, - 0, 0, 0, 0, 1643, 1644, 1640, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1646, 1645, - 0, 1647, 0, 1641, 0, 0, 0, 0, 1642, 0, - 0, 0, 0, 0, 0, 1648, 1646, 0, 1649, 1647, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1643, 1644, 1648, 0, 0, 0, 1646, 0, 0, - 1647, 0, 0, 0, 0, 0, 1645, 0, 0, 0, - 0, 0, 0, 0, 1648, 0, 0, 1649, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1650, 0, - 0, 0, 0, 0, 1646, 0, 3556, 1647, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1648, 0, 0, 1649, 0, 0, 0, 0, 0, - 0, 0, 1626, 0, 0, 1627, 0, 1650, 0, 1628, - 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1650, 0, 0, 0, 0, - 1635, 2200, 0, 0, 0, 0, 0, 0, 0, 0, - 1637, 0, 0, 0, 0, 0, 1650, 1638, 0, 0, - 0, 0, 0, 1379, 1380, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1639, 0, 1651, 0, 0, 1652, - 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, - 0, 0, 0, 1650, 1381, 1382, 0, 0, 1383, 1384, - 0, 1626, 0, 0, 1627, 0, 0, 0, 1628, 1629, - 0, 0, 1632, 1633, 1634, 1651, 0, 0, 1652, 1653, - 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, 1635, - 0, 0, 0, 1651, 0, 0, 1652, 1653, 1654, 1637, - 1655, 1656, 1657, 1658, 1659, 1660, 1638, 0, 0, 0, - 0, 0, 0, 0, 1651, 0, 0, 1652, 1653, 1654, - 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, 0, - 0, 1640, 0, 1639, 1385, 1386, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1626, 1641, 0, - 1627, 0, 0, 1642, 1628, 1629, 1630, 1631, 1632, 1633, - 1634, 1651, 0, 0, 1652, 1653, 1654, 0, 1655, 1656, - 1657, 1658, 1659, 1660, 0, 1635, 1643, 1644, 0, 1956, - 0, 0, 0, 0, 0, 1637, 0, 0, 0, 0, - 0, 1645, 1638, 0, 0, 0, 0, 0, 1387, 1388, - 1389, 1390, 1391, 1392, 1393, 1394, 0, 0, 1395, 1396, - 0, 0, 0, 1626, 0, 0, 1627, 0, 0, 1639, - 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, 1646, - 1640, 0, 1647, 0, 0, 0, 0, 0, 0, 0, - 0, 1635, 0, 0, 0, 0, 1648, 1641, 0, 1649, - 0, 1637, 1642, 0, 0, 0, 0, 0, 1638, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1921, 0, 0, 1643, 1644, 0, 0, 0, - 0, 0, 1397, 1398, 0, 1639, 0, 0, 0, 0, - 1645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1626, 0, 0, 1627, 0, 0, 0, 1628, - 1629, 1630, 1631, 1632, 1633, 1634, 1640, 0, 0, 0, - 0, 0, 0, 1399, 1400, 0, 0, 0, 1646, 0, - 1635, 1647, 0, 1641, 1963, 0, 0, 0, 1642, 0, - 1637, 0, 0, 0, 0, 1648, 0, 1638, 1650, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1643, 1644, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1639, 0, 1645, 1961, 0, 0, - 0, 0, 1640, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1641, - 0, 0, 0, 0, 1642, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1646, 0, 0, 1647, 0, 1401, - 1402, 0, 0, 0, 0, 0, 0, 1643, 1644, 0, - 0, 1648, 0, 0, 1649, 0, 0, 0, 0, 0, - 0, 0, 1645, 1403, 1404, 0, 0, 1650, 0, 0, - 0, 0, 0, 0, 0, 0, 1651, 0, 0, 1652, - 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, - 0, 1640, 0, 0, 0, 0, 0, 0, 0, 0, - 1646, 0, 0, 1647, 0, 0, 0, 0, 1641, 0, - 0, 0, 0, 1642, 0, 0, 0, 1648, 0, 0, - 1649, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1626, 0, 0, 1627, 0, 1643, 1644, 1628, 1629, - 1630, 1631, 1632, 1633, 1634, 0, 0, 0, 0, 0, - 0, 1645, 0, 1650, 0, 0, 0, 0, 0, 1635, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1637, - 0, 0, 0, 0, 0, 1651, 1638, 0, 1652, 1653, - 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, 1626, 1646, - 0, 1627, 1647, 0, 0, 1628, 1629, 1630, 1631, 1632, - 1633, 1634, 0, 1639, 0, 0, 1648, 0, 0, 1649, - 0, 0, 0, 0, 0, 0, 1635, 0, 0, 1650, - 0, 0, 0, 0, 0, 0, 1637, 0, 0, 0, - 0, 0, 0, 1638, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1639, 1651, 0, 0, 1652, 1653, 1654, 0, 1655, 1656, - 1657, 1658, 1659, 1660, 0, 1626, 0, 0, 1627, 0, - 0, 0, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, - 2089, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1640, 0, 0, 1635, 0, 0, 0, 2822, 1650, 0, - 0, 0, 0, 1637, 0, 0, 0, 1641, 0, 0, - 1638, 0, 1642, 0, 0, 0, 0, 1651, 0, 0, - 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, - 0, 0, 0, 0, 0, 1643, 1644, 1639, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1640, 0, 0, - 1645, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1641, 0, 0, 0, 0, 1642, - 0, 0, 0, 0, 1626, 0, 0, 1627, 0, 0, - 0, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1646, 0, - 0, 1647, 1643, 1644, 0, 0, 0, 0, 0, 0, - 0, 0, 1635, 0, 0, 1648, 1651, 1645, 1649, 1652, - 1653, 1654, 1637, 1655, 1656, 1657, 1658, 1659, 1660, 1638, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1640, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1646, 1639, 0, 1647, 0, - 0, 1641, 0, 0, 0, 0, 1642, 0, 0, 0, - 0, 0, 1648, 0, 0, 1649, 0, 0, 0, 0, - 0, 0, 0, 0, 1626, 0, 0, 1627, 0, 1643, - 1644, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, - 0, 0, 0, 0, 1645, 0, 0, 0, 0, 0, - 0, 0, 1635, 0, 0, 0, 0, 1650, 0, 0, - 0, 0, 1637, 0, 0, 0, 0, 0, 0, 1638, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1646, 0, 0, 1647, 0, 0, 0, 0, - 0, 0, 0, 1640, 0, 0, 1639, 0, 0, 1648, - 0, 0, 1649, 0, 0, 0, 0, 0, 0, 0, - 1641, 0, 0, 1626, 1650, 1642, 1627, 0, 0, 0, - 1628, 1629, 1630, 1631, 1632, 1633, 1634, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1643, 1644, - 0, 1635, 0, 0, 0, 0, 0, 2808, 0, 0, - 0, 1637, 0, 1645, 0, 0, 0, 0, 1638, 0, - 0, 0, 0, 0, 0, 1651, 0, 0, 1652, 1653, - 1654, 0, 1655, 1656, 1657, 1658, 1659, 1660, 0, 0, - 0, 0, 0, 0, 0, 1639, 0, 0, 0, 0, - 0, 1646, 0, 1640, 1647, 0, 0, 0, 0, 0, - 0, 1650, 0, 0, 0, 0, 0, 0, 1648, 0, - 1641, 1649, 0, 0, 0, 1642, 0, 0, 0, 0, - 0, 0, 1651, 0, 0, 1652, 1653, 1654, 0, 1655, - 1656, 1657, 1658, 1659, 1660, 0, 0, 0, 1825, 1644, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1645, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1640, 0, 0, 0, 0, 0, 0, 0, - 0, 1646, 0, 0, 1647, 0, 0, 0, 0, 1641, - 0, 0, 0, 0, 1642, 0, 0, 0, 1648, 1651, - 1650, 1649, 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, - 1659, 1660, 0, 0, 0, 0, 0, 1643, 1644, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1645, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1646, 0, 0, 1647, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1648, 0, 0, - 1649, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1650, 0, 0, 0, 0, 0, 0, 0, 1651, 0, - 0, 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, - 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1650, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1651, 0, - 0, 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 1659, - 1660, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 446, 680, 448, 681, 682, 683, 450, 451, 684, 452, + 685, 454, 455, 456, 457, 458, 686, 459, 687, 688, + 689, 690, 462, 463, 691, 465, 692, 693, 467, 468, + 694, 470, 471, 472, 473, 474, 695, 696, 475, 476, + 477, 697, 478, 479, 480, 481, 698, 482, 483, 484, + 485, 486, 699, 700, 489, 701, 490, 702, 492, 493, + 494, 495, 496, 497, 498, 703, 704, 499, 705, 706, + 500, 501, 502, 503, 504, 505, 707, 708, 709, 710, + 711, 712, 713, 714, 715, 716, 717, 517, 518, 519, + 520, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 560, 0, 2112, 0, 0, 0, 1651, 0, 0, - 1652, 1653, 1654, 0, 1655, 1656, 1657, 1658, 2217, 1660, - 118, 119, 120, 121, 122, 123, 124, 125, 561, 126, + 118, 119, 120, 121, 2282, 123, 124, 125, 561, 126, 127, 128, 562, 563, 564, 565, 566, 567, 568, 569, 570, 130, 131, 571, 132, 133, 134, 572, 136, 137, 138, 573, 574, 575, 576, 577, 578, 144, 145, 146, @@ -8962,7 +9405,7 @@ static const yytype_int16 yytable[] = 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 594, 191, 192, 595, 194, 596, 195, 597, 196, 197, 198, 199, 200, 201, 598, 599, 202, 203, 204, 205, - 600, 601, 206, 207, 208, 209, 210, 602, 211, 212, + 600, 601, 206, 207, 208, 2283, 210, 602, 211, 212, 213, 603, 214, 215, 216, 604, 217, 218, 219, 220, 605, 222, 223, 224, 225, 226, 227, 606, 607, 229, 608, 230, 231, 609, 233, 610, 234, 611, 235, 612, @@ -8987,7 +9430,7 @@ static const yytype_int16 yytable[] = 392, 393, 394, 395, 396, 397, 398, 399, 400, 670, 401, 402, 671, 404, 405, 406, 672, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 673, 674, 421, 422, 423, 424, 425, 426, 675, 428, + 673, 674, 421, 422, 423, 424, 425, 2284, 675, 428, 429, 676, 677, 431, 432, 678, 434, 679, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 680, 448, 681, 682, 683, 450, 451, 684, 452, 685, @@ -8999,425 +9442,425 @@ static const yytype_int16 yytable[] = 495, 496, 497, 498, 703, 704, 499, 705, 706, 500, 501, 502, 503, 504, 505, 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, 517, 518, 519, 520, - 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 974, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 561, 126, 127, - 128, 562, 563, 564, 565, 566, 567, 568, 569, 570, - 130, 131, 571, 132, 133, 134, 572, 136, 137, 138, - 573, 574, 575, 576, 577, 578, 144, 145, 146, 147, - 148, 149, 579, 580, 150, 151, 152, 153, 581, 582, - 156, 583, 157, 158, 159, 160, 584, 585, 586, 587, + 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, + 128, 0, 0, 0, 565, 0, 0, 0, 0, 570, + 130, 131, 0, 132, 133, 134, 572, 136, 137, 138, + 573, 574, 575, 576, 577, 0, 144, 145, 146, 147, + 148, 149, 0, 0, 150, 151, 152, 153, 581, 582, + 156, 0, 157, 158, 159, 160, 584, 0, 586, 0, 588, 164, 165, 166, 167, 168, 589, 170, 171, 172, - 590, 173, 174, 175, 176, 177, 178, 591, 592, 180, - 181, 182, 183, 184, 185, 593, 187, 188, 189, 594, - 191, 192, 595, 194, 596, 195, 597, 196, 197, 198, - 199, 200, 201, 598, 599, 202, 203, 204, 205, 600, - 601, 206, 207, 208, 209, 210, 602, 211, 212, 213, - 603, 214, 215, 216, 604, 217, 218, 219, 220, 605, - 222, 223, 224, 225, 226, 227, 606, 607, 229, 608, - 230, 231, 609, 233, 610, 234, 611, 235, 612, 613, - 614, 238, 239, 615, 616, 242, 617, 243, 618, 619, - 620, 246, 247, 621, 248, 249, 250, 251, 252, 253, - 254, 622, 256, 257, 258, 259, 623, 260, 261, 262, - 263, 264, 265, 266, 624, 267, 625, 626, 270, 271, - 272, 273, 274, 627, 628, 629, 630, 631, 278, 632, - 633, 281, 634, 283, 284, 285, 286, 287, 288, 635, - 636, 289, 637, 291, 638, 639, 293, 294, 295, 296, + 0, 173, 174, 175, 176, 177, 178, 0, 592, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 594, + 191, 192, 595, 194, 0, 195, 0, 196, 197, 198, + 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, + 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 0, 214, 215, 216, 0, 217, 218, 219, 220, 605, + 222, 223, 224, 225, 226, 227, 606, 1364, 229, 0, + 230, 231, 609, 233, 0, 234, 0, 235, 612, 0, + 614, 238, 239, 615, 616, 242, 0, 243, 0, 619, + 620, 246, 247, 0, 248, 249, 250, 251, 252, 253, + 254, 622, 256, 257, 258, 259, 0, 260, 261, 262, + 263, 264, 265, 266, 0, 267, 625, 626, 270, 271, + 272, 273, 274, 627, 628, 0, 630, 0, 278, 632, + 633, 281, 634, 283, 284, 285, 286, 287, 288, 0, + 0, 289, 637, 291, 638, 0, 293, 294, 295, 296, 297, 298, 299, 300, 640, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 641, 642, 643, 325, 326, - 327, 644, 645, 329, 330, 646, 332, 647, 648, 334, - 649, 336, 337, 338, 650, 339, 340, 651, 652, 341, - 342, 343, 653, 654, 344, 345, 655, 656, 348, 657, + 327, 644, 0, 329, 330, 646, 332, 0, 648, 334, + 649, 336, 337, 338, 0, 339, 340, 1365, 0, 341, + 342, 343, 0, 0, 344, 345, 655, 656, 348, 657, 658, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 659, 660, 661, 662, 362, 363, 663, 664, - 366, 367, 665, 369, 370, 371, 666, 372, 373, 374, - 375, 376, 377, 667, 378, 379, 380, 381, 382, 668, - 384, 385, 386, 387, 669, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 670, 401, + 360, 361, 0, 0, 0, 0, 362, 363, 663, 664, + 366, 367, 665, 369, 370, 371, 0, 372, 373, 374, + 375, 376, 377, 0, 378, 379, 380, 381, 382, 668, + 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 671, 404, 405, 406, 672, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 673, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 674, 421, 422, 423, 424, 425, 426, 675, 428, 429, - 676, 677, 431, 432, 678, 434, 679, 435, 436, 437, + 0, 677, 431, 432, 678, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 680, - 448, 681, 682, 683, 450, 451, 684, 452, 685, 454, - 455, 456, 457, 458, 686, 459, 687, 688, 689, 690, - 462, 463, 691, 465, 692, 693, 467, 468, 694, 470, - 471, 472, 473, 474, 695, 696, 475, 476, 477, 697, - 478, 479, 480, 481, 698, 482, 483, 484, 485, 486, - 699, 700, 489, 701, 490, 702, 492, 493, 494, 495, - 496, 497, 498, 703, 704, 499, 705, 706, 500, 501, + 448, 681, 0, 0, 450, 451, 0, 452, 685, 454, + 455, 456, 457, 458, 0, 459, 687, 688, 0, 0, + 462, 463, 691, 465, 692, 1366, 467, 468, 694, 470, + 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, + 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, + 699, 700, 489, 0, 490, 702, 492, 493, 494, 495, + 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 707, 708, 709, 710, 711, 712, - 713, 714, 715, 716, 717, 517, 518, 519, 520, 560, + 713, 714, 715, 716, 717, 517, 518, 519, 520, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 561, 126, 127, 128, - 562, 563, 564, 565, 566, 567, 568, 569, 570, 130, - 131, 571, 132, 133, 134, 572, 136, 137, 138, 573, - 574, 575, 576, 577, 578, 144, 145, 146, 147, 148, - 149, 579, 580, 150, 151, 152, 153, 581, 582, 156, - 583, 157, 158, 159, 160, 584, 585, 586, 587, 588, - 164, 165, 166, 167, 168, 589, 170, 171, 172, 590, - 173, 174, 175, 176, 177, 178, 591, 592, 180, 181, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 3, 4, 0, 565, 0, 0, 0, 0, 570, 130, + 131, 0, 132, 133, 134, 572, 136, 137, 138, 573, + 574, 575, 576, 577, 0, 144, 145, 146, 147, 148, + 149, 0, 0, 150, 151, 152, 153, 581, 582, 156, + 0, 157, 158, 159, 160, 584, 0, 586, 0, 588, + 164, 165, 166, 167, 168, 589, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 592, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 594, 191, - 192, 595, 194, 596, 195, 597, 196, 197, 198, 199, - 200, 201, 598, 599, 202, 203, 204, 205, 600, 601, - 206, 207, 208, 209, 210, 602, 211, 212, 213, 603, - 214, 215, 216, 604, 217, 218, 219, 220, 605, 222, - 223, 224, 225, 226, 227, 606, 607, 229, 608, 230, - 231, 609, 233, 610, 234, 611, 235, 612, 613, 614, - 238, 239, 615, 616, 242, 617, 243, 618, 619, 620, - 246, 247, 621, 248, 249, 250, 251, 252, 949, 254, - 622, 256, 257, 258, 259, 623, 260, 261, 262, 263, - 264, 265, 266, 624, 267, 625, 626, 270, 271, 272, - 273, 274, 627, 628, 629, 630, 631, 278, 632, 633, - 281, 634, 283, 284, 285, 286, 287, 288, 635, 636, - 289, 637, 291, 638, 639, 293, 294, 295, 296, 297, + 192, 595, 194, 0, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 605, 222, + 223, 224, 225, 226, 227, 606, 0, 229, 0, 230, + 231, 609, 233, 0, 234, 0, 235, 612, 0, 614, + 238, 239, 615, 616, 242, 0, 243, 0, 619, 620, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 622, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 625, 626, 270, 271, 272, + 273, 274, 627, 628, 0, 630, 0, 278, 632, 633, + 281, 634, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 637, 291, 638, 0, 293, 294, 295, 296, 297, 298, 299, 300, 640, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 641, 642, 643, 325, 326, 327, - 644, 645, 329, 330, 646, 332, 647, 648, 334, 649, - 336, 337, 338, 650, 339, 340, 651, 652, 341, 342, - 343, 653, 654, 344, 345, 655, 656, 348, 657, 658, + 644, 0, 329, 330, 646, 332, 0, 648, 334, 649, + 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, + 343, 0, 0, 344, 345, 655, 656, 348, 657, 658, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 659, 660, 661, 662, 362, 363, 663, 664, 366, - 367, 665, 369, 370, 371, 666, 372, 373, 374, 375, - 376, 377, 667, 378, 379, 380, 381, 382, 668, 384, - 385, 386, 387, 669, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 670, 401, 402, + 361, 0, 0, 0, 0, 362, 363, 663, 664, 366, + 367, 665, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 668, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 671, 404, 405, 406, 672, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 673, 674, - 421, 422, 423, 424, 425, 426, 675, 428, 429, 676, - 677, 431, 432, 678, 434, 679, 435, 436, 437, 438, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 674, + 421, 422, 423, 424, 425, 426, 675, 428, 429, 0, + 677, 431, 432, 678, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 680, 448, - 681, 682, 683, 450, 451, 684, 452, 685, 454, 455, - 456, 457, 458, 686, 459, 687, 688, 689, 690, 462, - 463, 691, 465, 692, 693, 467, 468, 694, 470, 471, - 472, 473, 474, 695, 696, 475, 476, 477, 697, 478, - 479, 480, 481, 698, 482, 483, 484, 485, 486, 699, - 700, 489, 701, 490, 702, 492, 493, 494, 495, 496, - 497, 498, 703, 704, 499, 705, 706, 500, 501, 502, + 681, 0, 0, 450, 451, 0, 452, 685, 454, 455, + 456, 457, 458, 0, 459, 687, 688, 0, 0, 462, + 463, 691, 465, 692, 0, 467, 468, 694, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 699, + 700, 489, 0, 490, 702, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 707, 708, 709, 710, 711, 712, 713, - 714, 715, 716, 717, 517, 518, 519, 520, 560, 0, + 714, 715, 716, 717, 517, 518, 519, 520, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, - 121, 122, 123, 124, 125, 561, 126, 127, 128, 562, - 563, 564, 565, 566, 567, 568, 569, 570, 130, 131, - 571, 132, 133, 134, 572, 136, 137, 138, 573, 574, - 575, 576, 577, 578, 144, 145, 146, 147, 148, 149, - 579, 580, 150, 151, 152, 153, 581, 582, 156, 583, - 157, 158, 159, 160, 584, 585, 586, 587, 588, 164, - 165, 166, 167, 168, 589, 170, 171, 172, 590, 173, - 174, 175, 176, 177, 178, 591, 592, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 594, 191, 192, - 595, 194, 596, 195, 597, 196, 197, 198, 199, 200, - 201, 598, 599, 202, 203, 204, 205, 600, 601, 206, - 207, 208, 209, 210, 602, 211, 212, 213, 603, 214, - 215, 216, 604, 217, 218, 219, 220, 605, 222, 223, - 224, 225, 226, 227, 606, 607, 229, 608, 230, 231, - 609, 233, 610, 234, 611, 235, 612, 613, 614, 238, - 239, 615, 616, 242, 617, 243, 618, 619, 620, 246, - 247, 621, 248, 249, 250, 251, 252, 253, 254, 622, - 256, 257, 258, 259, 623, 260, 261, 262, 263, 264, - 265, 266, 624, 267, 625, 626, 270, 271, 272, 273, - 274, 627, 628, 629, 630, 631, 278, 632, 633, 281, - 634, 283, 284, 285, 286, 287, 288, 635, 636, 289, - 637, 291, 638, 639, 293, 294, 295, 296, 297, 298, - 299, 300, 640, 302, 303, 304, 305, 306, 307, 308, + 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, + 0, 0, 0, 0, 0, 0, 0, 129, 130, 131, + 0, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 0, 144, 145, 146, 147, 148, 149, + 0, 790, 150, 151, 152, 153, 154, 155, 156, 0, + 157, 158, 159, 160, 791, 0, 792, 0, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 0, 173, + 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, + 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, + 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, + 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 793, 0, 229, 0, 230, 231, + 232, 233, 0, 234, 0, 235, 236, 0, 237, 238, + 239, 240, 241, 242, 0, 243, 0, 244, 245, 246, + 247, 0, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, + 265, 266, 0, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 0, 277, 0, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 0, 0, 289, + 290, 291, 292, 0, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 641, 642, 643, 325, 326, 327, 644, - 645, 329, 330, 646, 332, 647, 648, 334, 649, 336, - 337, 338, 650, 339, 340, 651, 652, 341, 342, 343, - 653, 654, 344, 345, 655, 656, 348, 657, 658, 351, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 0, 329, 330, 331, 332, 0, 795, 334, 335, 336, + 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, + 0, 0, 344, 345, 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 659, 660, 661, 662, 362, 363, 663, 664, 366, 367, - 665, 369, 370, 371, 666, 372, 373, 374, 375, 376, - 377, 667, 378, 379, 380, 381, 382, 668, 384, 385, - 386, 387, 669, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 670, 401, 402, 671, - 404, 405, 406, 672, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 673, 674, 421, - 422, 423, 424, 425, 426, 675, 428, 429, 676, 677, - 431, 432, 678, 434, 679, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 680, 448, 681, - 682, 683, 450, 451, 684, 452, 685, 454, 455, 456, - 457, 458, 686, 459, 687, 688, 689, 690, 462, 463, - 691, 465, 692, 693, 467, 468, 694, 470, 471, 472, - 473, 474, 695, 696, 475, 476, 477, 697, 478, 479, - 480, 481, 698, 482, 483, 484, 485, 486, 699, 700, - 489, 701, 490, 702, 492, 493, 494, 495, 496, 497, - 498, 703, 704, 499, 705, 706, 500, 501, 502, 503, - 504, 505, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 717, 517, 518, 519, 520, 560, 0, 0, + 0, 0, 0, 0, 362, 363, 798, 365, 366, 367, + 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, + 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 0, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, + 422, 423, 424, 425, 426, 427, 428, 429, 0, 430, + 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 800, + 0, 0, 450, 451, 0, 452, 453, 454, 455, 456, + 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, + 801, 465, 802, 0, 467, 468, 803, 470, 471, 472, + 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, + 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, + 489, 0, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, + 514, 515, 516, 517, 518, 519, 520, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 2266, 123, 124, 125, 561, 126, 127, 128, 562, 563, - 564, 565, 566, 567, 568, 569, 570, 130, 131, 571, - 132, 133, 134, 572, 136, 137, 138, 573, 574, 575, - 576, 577, 578, 144, 145, 146, 147, 148, 149, 579, - 580, 150, 151, 152, 153, 581, 582, 156, 583, 157, - 158, 159, 160, 584, 585, 586, 587, 588, 164, 165, - 166, 167, 168, 589, 170, 171, 172, 590, 173, 174, - 175, 176, 177, 178, 591, 592, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 594, 191, 192, 595, - 194, 596, 195, 597, 196, 197, 198, 199, 200, 201, - 598, 599, 202, 203, 204, 205, 600, 601, 206, 207, - 208, 2267, 210, 602, 211, 212, 213, 603, 214, 215, - 216, 604, 217, 218, 219, 220, 605, 222, 223, 224, - 225, 226, 227, 606, 607, 229, 608, 230, 231, 609, - 233, 610, 234, 611, 235, 612, 613, 614, 238, 239, - 615, 616, 242, 617, 243, 618, 619, 620, 246, 247, - 621, 248, 249, 250, 251, 252, 253, 254, 622, 256, - 257, 258, 259, 623, 260, 261, 262, 263, 264, 265, - 266, 624, 267, 625, 626, 270, 271, 272, 273, 274, - 627, 628, 629, 630, 631, 278, 632, 633, 281, 634, - 283, 284, 285, 286, 287, 288, 635, 636, 289, 637, - 291, 638, 639, 293, 294, 295, 296, 297, 298, 299, - 300, 640, 302, 303, 304, 305, 306, 307, 308, 309, + 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 130, 131, 0, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, + 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, + 158, 159, 160, 161, 0, 162, 0, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 0, 173, 174, + 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, + 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, + 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, + 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, + 233, 0, 234, 0, 235, 236, 0, 237, 238, 239, + 240, 241, 242, 0, 243, 0, 244, 245, 246, 247, + 0, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, + 266, 0, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 0, 277, 0, 278, 279, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 0, 0, 289, 290, + 291, 292, 0, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 641, 642, 643, 325, 326, 327, 644, 645, - 329, 330, 646, 332, 647, 648, 334, 649, 336, 337, - 338, 650, 339, 340, 651, 652, 341, 342, 343, 653, - 654, 344, 345, 655, 656, 348, 657, 658, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 659, - 660, 661, 662, 362, 363, 663, 664, 366, 367, 665, - 369, 370, 371, 666, 372, 373, 374, 375, 376, 377, - 667, 378, 379, 380, 381, 382, 668, 384, 385, 386, - 387, 669, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 670, 401, 402, 671, 404, - 405, 406, 672, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 673, 674, 421, 422, - 423, 424, 425, 2268, 675, 428, 429, 676, 677, 431, - 432, 678, 434, 679, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 680, 448, 681, 682, - 683, 450, 451, 684, 452, 685, 454, 455, 456, 457, - 458, 686, 459, 687, 688, 689, 690, 462, 463, 691, - 465, 692, 693, 467, 468, 694, 470, 471, 472, 473, - 474, 695, 696, 475, 476, 477, 697, 478, 479, 480, - 481, 698, 482, 483, 484, 485, 486, 699, 700, 489, - 701, 490, 702, 492, 493, 494, 495, 496, 497, 498, - 703, 704, 499, 705, 706, 500, 501, 502, 503, 504, - 505, 707, 708, 709, 710, 711, 712, 713, 714, 715, - 716, 717, 517, 518, 519, 520, 973, 0, 820, 0, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 0, + 329, 330, 331, 332, 0, 333, 334, 335, 336, 337, + 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, + 0, 344, 345, 346, 347, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, + 0, 0, 0, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, + 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, + 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 0, 401, 402, 403, 404, + 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, + 423, 424, 425, 426, 427, 428, 429, 0, 430, 431, + 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 0, + 0, 450, 451, 0, 452, 453, 454, 455, 456, 457, + 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, + 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, + 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, + 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, + 0, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, + 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, + 515, 516, 517, 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, - 565, 0, 0, 0, 0, 570, 130, 131, 0, 132, - 133, 134, 572, 136, 137, 138, 573, 574, 575, 576, - 577, 0, 144, 145, 146, 147, 148, 149, 0, 0, - 150, 151, 152, 153, 581, 582, 156, 0, 157, 158, - 159, 160, 584, 0, 586, 0, 588, 164, 165, 166, - 167, 168, 589, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 178, 0, 592, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 594, 191, 192, 595, 194, + 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, + 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, + 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, + 150, 151, 152, 153, 154, 155, 156, 1769, 157, 158, + 159, 160, 161, 0, 0, 1770, 163, 164, 165, 166, + 167, 168, 0, 170, 171, 172, 1771, 173, 174, 175, + 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 605, 222, 223, 224, 225, - 226, 227, 606, 1357, 229, 0, 230, 231, 609, 233, - 0, 234, 0, 235, 612, 0, 614, 238, 239, 615, - 616, 242, 0, 243, 0, 619, 620, 246, 247, 0, - 248, 249, 250, 251, 252, 253, 254, 622, 256, 257, + 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, + 0, 234, 1772, 235, 0, 0, 0, 238, 239, 529, + 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, + 248, 249, 250, 251, 252, 1773, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, - 0, 267, 625, 626, 270, 271, 272, 273, 274, 627, - 628, 0, 630, 0, 278, 632, 633, 281, 634, 283, - 284, 285, 286, 287, 288, 0, 0, 289, 637, 291, - 638, 0, 293, 294, 295, 296, 297, 298, 299, 300, - 640, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, + 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, + 284, 285, 286, 287, 288, 0, 0, 289, 0, 291, + 0, 0, 293, 294, 295, 296, 297, 298, 299, 300, + 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 641, 642, 643, 325, 326, 327, 644, 0, 329, - 330, 646, 332, 0, 648, 334, 649, 336, 337, 338, - 0, 339, 340, 1358, 0, 341, 342, 343, 0, 0, - 344, 345, 655, 656, 348, 657, 658, 351, 352, 353, + 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, + 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, + 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, + 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, - 0, 0, 362, 363, 663, 664, 366, 367, 665, 369, - 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, - 378, 379, 380, 381, 382, 668, 384, 385, 386, 387, + 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, + 370, 371, 1774, 372, 373, 374, 375, 376, 377, 0, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 0, 401, 402, 671, 404, 405, - 406, 672, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 0, 674, 421, 422, 423, - 424, 425, 426, 675, 428, 429, 0, 677, 431, 432, - 678, 434, 0, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 680, 448, 681, 0, 0, - 450, 451, 0, 452, 685, 454, 455, 456, 457, 458, - 0, 459, 687, 688, 0, 0, 462, 463, 691, 465, - 692, 1359, 467, 468, 694, 470, 471, 472, 473, 474, - 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, - 0, 482, 483, 484, 485, 486, 699, 700, 489, 0, - 490, 702, 492, 493, 494, 495, 496, 497, 498, 0, + 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, + 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, + 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, + 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, + 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, + 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, + 0, 1775, 475, 476, 477, 0, 478, 479, 480, 481, + 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, + 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, - 707, 708, 709, 710, 711, 712, 713, 714, 715, 716, - 717, 517, 518, 519, 520, 973, 0, 0, 0, 0, + 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, + 516, 517, 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 3, 4, 0, 565, - 0, 0, 0, 0, 570, 130, 131, 0, 132, 133, - 134, 572, 136, 137, 138, 573, 574, 575, 576, 577, + 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, + 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, - 151, 152, 153, 581, 582, 156, 0, 157, 158, 159, - 160, 584, 0, 586, 0, 588, 164, 165, 166, 167, - 168, 589, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 592, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 594, 191, 192, 595, 194, 0, + 151, 152, 153, 154, 155, 156, 1769, 157, 158, 159, + 160, 161, 0, 0, 0, 163, 164, 165, 166, 167, + 168, 0, 170, 171, 172, 1771, 173, 174, 175, 176, + 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 605, 222, 223, 224, 225, 226, - 227, 606, 0, 229, 0, 230, 231, 609, 233, 0, - 234, 0, 235, 612, 0, 614, 238, 239, 615, 616, - 242, 0, 243, 0, 619, 620, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, 622, 256, 257, 258, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, + 234, 1772, 235, 0, 0, 0, 238, 239, 529, 0, + 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, + 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 625, 626, 270, 271, 272, 273, 274, 627, 628, - 0, 630, 0, 278, 632, 633, 281, 634, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 637, 291, 638, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 640, + 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, + 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, + 285, 286, 287, 288, 0, 0, 289, 0, 291, 2367, + 0, 293, 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 641, 642, 643, 325, 326, 327, 644, 0, 329, 330, - 646, 332, 0, 648, 334, 649, 336, 337, 338, 0, + 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, + 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, - 345, 655, 656, 348, 657, 658, 351, 352, 353, 354, + 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 663, 664, 366, 367, 665, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 668, 384, 385, 386, 387, 0, + 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, + 371, 1774, 372, 373, 374, 375, 376, 377, 0, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 671, 404, 405, 406, - 672, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 674, 421, 422, 423, 424, - 425, 426, 675, 428, 429, 0, 677, 431, 432, 678, + 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, + 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 680, 448, 681, 0, 0, 450, - 451, 0, 452, 685, 454, 455, 456, 457, 458, 0, - 459, 687, 688, 0, 0, 462, 463, 691, 465, 692, - 0, 467, 468, 694, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 699, 700, 489, 0, 490, - 702, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, - 517, 518, 519, 520, 117, 0, 0, 0, 0, 0, + 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, + 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, + 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, + 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, + 1775, 475, 476, 477, 0, 478, 479, 480, 481, 0, + 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, + 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, + 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, + 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, - 0, 0, 0, 129, 130, 131, 0, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 0, - 144, 145, 146, 147, 148, 149, 0, 790, 150, 151, + 125, 0, 126, 127, 128, 3, 4, 0, 0, 0, + 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, + 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, + 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, 158, 159, 160, - 791, 0, 792, 0, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 178, 0, 179, 180, 181, 182, 183, 184, 185, 186, + 161, 0, 0, 0, 163, 164, 165, 166, 167, 168, + 0, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, - 793, 0, 229, 0, 230, 231, 232, 233, 0, 234, - 0, 235, 236, 0, 237, 238, 239, 240, 241, 242, + 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, + 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 0, - 277, 0, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 0, 0, 289, 290, 291, 292, 0, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, + 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 0, 291, 0, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 0, 329, 330, 331, - 332, 0, 795, 334, 335, 336, 337, 338, 0, 339, + 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, + 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, - 346, 347, 348, 349, 797, 351, 352, 353, 354, 355, + 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, - 362, 363, 798, 365, 366, 367, 368, 369, 370, 371, + 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 0, 401, 402, 403, 404, 405, 406, 407, + 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 0, 430, 431, 432, 433, 434, + 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 800, 0, 0, 450, 451, - 0, 452, 453, 454, 455, 456, 457, 458, 0, 459, - 460, 461, 0, 0, 462, 463, 801, 465, 802, 0, - 467, 468, 803, 470, 471, 472, 473, 474, 0, 0, + 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, + 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, + 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, + 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, - 483, 484, 485, 486, 487, 488, 489, 0, 490, 491, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 117, 0, 0, 0, 0, 0, 0, + 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, - 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 129, 130, 131, 0, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 0, 144, + 555, 126, 127, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, + 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, 158, 159, 160, 161, - 0, 162, 0, 163, 164, 165, 166, 167, 168, 169, + 0, 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, - 0, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, - 235, 236, 0, 237, 238, 239, 240, 241, 242, 0, + 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 0, - 260, 261, 262, 263, 264, 265, 266, 0, 267, 268, + 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, - 0, 278, 279, 280, 281, 282, 283, 284, 285, 286, - 287, 288, 0, 0, 289, 290, 291, 292, 0, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, + 287, 288, 0, 0, 289, 0, 291, 0, 0, 293, + 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 0, 329, 330, 331, 332, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, + 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, - 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 0, + 363, 364, 0, 366, 367, 368, 556, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 0, 401, 402, 403, 404, 405, 406, 407, 408, + 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, - 427, 428, 429, 0, 430, 431, 432, 433, 434, 0, + 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 0, 0, 450, 451, 0, - 452, 453, 454, 455, 456, 457, 458, 0, 459, 460, + 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, + 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, - 484, 485, 486, 487, 488, 489, 0, 490, 491, 492, + 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, + 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, - 154, 155, 156, 1758, 157, 158, 159, 160, 161, 0, - 0, 1759, 163, 164, 165, 166, 167, 168, 0, 170, - 171, 172, 1760, 173, 174, 175, 176, 177, 178, 0, + 154, 155, 156, 0, 157, 158, 159, 160, 161, 0, + 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, - 229, 0, 230, 231, 232, 233, 0, 234, 1761, 235, + 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, - 252, 1762, 254, 0, 256, 257, 258, 259, 0, 260, + 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, @@ -9427,10 +9870,10 @@ static const yytype_int16 yytable[] = 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, - 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, + 796, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, - 364, 0, 366, 367, 368, 369, 370, 371, 1763, 372, + 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, @@ -9442,45 +9885,45 @@ static const yytype_int16 yytable[] = 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, - 469, 470, 471, 472, 473, 474, 0, 1764, 475, 476, + 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, + 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, - 155, 156, 1758, 157, 158, 159, 160, 161, 0, 0, + 155, 156, 0, 157, 158, 159, 160, 161, 0, 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, - 172, 1760, 173, 174, 175, 176, 177, 178, 0, 0, + 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, - 0, 230, 231, 232, 233, 0, 234, 1761, 235, 0, + 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, + 904, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 0, 291, 2351, 0, 293, 294, 295, + 0, 0, 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, - 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, + 334, 335, 336, 337, 338, 0, 339, 340, 0, 796, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, - 0, 366, 367, 368, 369, 370, 371, 1763, 372, 373, + 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, @@ -9492,7 +9935,7 @@ static const yytype_int16 yytable[] = 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, - 470, 471, 472, 473, 474, 0, 1764, 475, 476, 477, + 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, @@ -9500,8 +9943,8 @@ static const yytype_int16 yytable[] = 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 3, 4, 0, 0, 0, 0, 0, 0, 0, + 119, 120, 121, 122, 123, 124, 125, 948, 126, 127, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, @@ -9550,7 +9993,7 @@ static const yytype_int16 yytable[] = 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 555, 126, 127, 128, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, @@ -9563,7 +10006,7 @@ static const yytype_int16 yytable[] = 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, + 223, 224, 225, 1184, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, @@ -9576,11 +10019,11 @@ static const yytype_int16 yytable[] = 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, - 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, + 336, 337, 338, 0, 339, 340, 0, 796, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, - 367, 368, 556, 370, 371, 0, 372, 373, 374, 375, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, @@ -9615,18 +10058,18 @@ static const yytype_int16 yytable[] = 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, - 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, + 239, 529, 0, 1988, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, - 0, 291, 0, 0, 293, 294, 295, 296, 297, 298, + 0, 291, 0, 0, 293, 294, 1989, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, - 337, 338, 0, 339, 340, 0, 796, 341, 342, 343, + 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, @@ -9639,10 +10082,10 @@ static const yytype_int16 yytable[] = 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, - 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, - 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, + 0, 0, 450, 451, 1990, 452, 0, 454, 1991, 456, + 1992, 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, - 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, + 473, 474, 0, 0, 475, 476, 1993, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, @@ -9666,7 +10109,7 @@ static const yytype_int16 yytable[] = 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, - 0, 248, 249, 250, 251, 252, 903, 254, 0, 256, + 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, @@ -9676,7 +10119,7 @@ static const yytype_int16 yytable[] = 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, - 338, 0, 339, 340, 0, 796, 341, 342, 343, 0, + 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, @@ -9697,10 +10140,10 @@ static const yytype_int16 yytable[] = 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, + 515, 516, 517, 518, 519, 520, 528, 0, 821, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, - 123, 124, 125, 947, 126, 127, 128, 0, 0, 0, + 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, @@ -9747,10 +10190,10 @@ static const yytype_int16 yytable[] = 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, + 516, 517, 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, + 124, 125, 827, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, @@ -9762,21 +10205,21 @@ static const yytype_int16 yytable[] = 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 1177, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, - 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, + 828, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, 0, 291, 0, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 530, + 0, 293, 294, 829, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, - 339, 340, 0, 796, 341, 342, 343, 0, 0, 344, + 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, @@ -9786,19 +10229,19 @@ static const yytype_int16 yytable[] = 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, + 830, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, - 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, + 459, 831, 461, 0, 0, 832, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, + 482, 483, 484, 485, 486, 487, 488, 833, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 528, 1967, 0, 0, 0, 0, - 1968, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 517, 518, 519, 520, 528, 0, 554, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, @@ -9831,7 +10274,7 @@ static const yytype_int16 yytable[] = 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, - 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, + 380, 381, 382, 383, 384, 385, 866, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, @@ -9864,14 +10307,14 @@ static const yytype_int16 yytable[] = 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, - 235, 0, 0, 0, 238, 239, 529, 0, 1975, 0, + 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, - 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, + 251, 252, 899, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, 0, 291, 0, 0, 293, - 294, 1976, 296, 297, 298, 299, 300, 530, 302, 303, + 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, @@ -9888,11 +10331,11 @@ static const yytype_int16 yytable[] = 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 531, 448, 449, 0, 0, 450, 451, 1977, - 452, 0, 454, 1978, 456, 1979, 458, 0, 459, 460, + 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, + 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, - 476, 1980, 0, 478, 479, 480, 481, 0, 482, 483, + 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, @@ -9916,7 +10359,7 @@ static const yytype_int16 yytable[] = 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, - 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, + 252, 902, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, @@ -9947,7 +10390,7 @@ static const yytype_int16 yytable[] = 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 528, 0, 820, 0, 0, 0, 0, 0, 0, + 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, @@ -9966,7 +10409,7 @@ static const yytype_int16 yytable[] = 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, + 906, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, @@ -9997,9 +10440,9 @@ static const yytype_int16 yytable[] = 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 826, 126, 127, + 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, @@ -10014,13 +10457,13 @@ static const yytype_int16 yytable[] = 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, - 0, 238, 239, 529, 0, 827, 0, 243, 0, 244, - 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, + 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, + 245, 246, 247, 0, 248, 249, 250, 251, 252, 936, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, - 0, 289, 0, 291, 0, 0, 293, 294, 828, 296, + 0, 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, @@ -10035,15 +10478,15 @@ static const yytype_int16 yytable[] = 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, - 0, 421, 422, 423, 424, 829, 426, 427, 428, 429, + 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, - 455, 456, 457, 458, 0, 459, 830, 461, 0, 0, - 831, 463, 464, 465, 466, 0, 467, 468, 469, 470, + 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, + 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 487, 488, 832, 0, 490, 0, 492, 493, 494, 495, + 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, @@ -10065,7 +10508,7 @@ static const yytype_int16 yytable[] = 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, - 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 246, 247, 0, 248, 249, 250, 251, 252, 964, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, @@ -10081,7 +10524,7 @@ static const yytype_int16 yytable[] = 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, - 385, 865, 387, 0, 388, 389, 390, 391, 392, 393, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, @@ -10115,7 +10558,7 @@ static const yytype_int16 yytable[] = 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, - 247, 0, 248, 249, 250, 251, 252, 898, 254, 0, + 247, 0, 248, 249, 250, 251, 252, 967, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, @@ -10146,11 +10589,11 @@ static const yytype_int16 yytable[] = 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 528, 0, 554, + 514, 515, 516, 517, 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, + 0, 0, 0, 0, 1010, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, @@ -10165,7 +10608,7 @@ static const yytype_int16 yytable[] = 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, - 0, 248, 249, 250, 251, 252, 901, 254, 0, 256, + 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, @@ -10196,11 +10639,11 @@ static const yytype_int16 yytable[] = 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, + 515, 516, 517, 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, + 0, 0, 0, 1037, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, 158, @@ -10215,7 +10658,7 @@ static const yytype_int16 yytable[] = 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, - 248, 249, 250, 251, 252, 905, 254, 0, 256, 257, + 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, @@ -10246,10 +10689,10 @@ static const yytype_int16 yytable[] = 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, + 516, 517, 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, + 124, 125, 827, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, @@ -10265,7 +10708,7 @@ static const yytype_int16 yytable[] = 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, - 249, 250, 251, 252, 935, 254, 0, 256, 257, 258, + 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, @@ -10289,7 +10732,7 @@ static const yytype_int16 yytable[] = 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, - 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, + 459, 831, 461, 0, 0, 832, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, @@ -10315,7 +10758,7 @@ static const yytype_int16 yytable[] = 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, - 250, 251, 252, 963, 254, 0, 256, 257, 258, 259, + 250, 251, 252, 1325, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, @@ -10365,7 +10808,7 @@ static const yytype_int16 yytable[] = 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, - 251, 252, 966, 254, 0, 256, 257, 258, 259, 0, + 251, 252, 1327, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, @@ -10396,10 +10839,10 @@ static const yytype_int16 yytable[] = 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, + 519, 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 0, 0, 0, 1008, + 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, @@ -10415,7 +10858,7 @@ static const yytype_int16 yytable[] = 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, - 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, + 252, 1330, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, @@ -10446,10 +10889,10 @@ static const yytype_int16 yytable[] = 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, + 520, 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 0, 0, 0, 1031, 0, + 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, @@ -10465,7 +10908,7 @@ static const yytype_int16 yytable[] = 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, + 1332, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, @@ -10496,9 +10939,9 @@ static const yytype_int16 yytable[] = 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 528, 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, - 119, 120, 121, 122, 123, 124, 125, 826, 126, 127, + 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, @@ -10514,7 +10957,7 @@ static const yytype_int16 yytable[] = 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, - 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, + 245, 246, 247, 0, 248, 249, 250, 251, 252, 2278, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, @@ -10538,314 +10981,314 @@ static const yytype_int16 yytable[] = 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, - 455, 456, 457, 458, 0, 459, 830, 461, 0, 0, - 831, 463, 464, 465, 466, 0, 467, 468, 469, 470, + 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, + 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, - 0, 554, 0, 0, 0, 0, 0, 0, 0, 0, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 1501, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, - 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, - 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, - 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, - 0, 157, 158, 159, 160, 161, 0, 0, 0, 163, - 164, 165, 166, 167, 168, 0, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, + 0, 0, 0, 1502, 0, 0, -808, 0, 1503, 130, + 131, 0, 132, 133, 134, 1504, 136, 137, 138, 0, + 1505, 1506, 1507, 1508, 0, 144, 145, 146, 147, 148, + 149, 0, 0, 150, 151, 152, 153, 1509, 1510, 156, + 0, 157, 158, 159, 160, 0, 0, 1511, 0, 1512, + 164, 165, 166, 167, 168, 1513, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 1514, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 1515, 191, + 192, 1516, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, - 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, - 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, - 246, 247, 0, 248, 249, 250, 251, 252, 1318, 254, - 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, - 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, - 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, - 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, - 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, + 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 0, 222, + 223, 224, 225, 226, 227, 0, 0, 229, 0, 230, + 231, 1517, 233, 0, 234, 0, 235, 1518, 0, 1519, + 238, 239, -808, 1520, 242, 0, 243, 0, 0, 0, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 1521, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 1522, 0, 270, 271, 272, + 273, 274, 1523, 1524, 0, 1525, 0, 278, 1526, 1527, + 281, 1528, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 1529, 291, 1530, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 1531, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, - 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, + 318, 319, 320, 321, 1532, 1533, 1534, 325, 326, 327, + 0, 0, 329, 330, 1535, 332, 0, 0, 334, 1536, 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, - 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, + 343, 0, 0, 344, 345, 0, 1537, 348, 1538, 0, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, - 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, + 361, 0, 0, 0, 0, 362, 363, 0, 1539, 366, + 367, 0, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 1540, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, - 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, - 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, - 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, - 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, - 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, + 1541, 404, 405, 406, 1542, 408, 409, 410, 411, 412, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 1543, + 421, 422, 423, 424, 425, 426, 1544, 428, 429, 0, + 1545, 431, 432, 1546, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 1547, 448, + 0, 0, 0, 450, 451, 0, 452, 1548, 454, 455, + 456, 457, 458, 0, 459, 1549, 1550, 0, 0, 462, + 463, 0, 465, 0, 0, 467, 468, 1551, 470, 471, + 472, 473, 474, 1552, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 0, + 1553, 489, 0, 490, 1554, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, - 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, - 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, - 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 163, 164, - 165, 166, 167, 168, 0, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, - 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, - 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, - 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, - 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, - 247, 0, 248, 249, 250, 251, 252, 1320, 254, 0, - 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, - 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, - 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, - 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, - 0, 291, 0, 0, 293, 294, 295, 296, 297, 298, - 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, - 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, - 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, - 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, - 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, - 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, - 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, - 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, - 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, - 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, - 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, - 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, - 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, - 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 528, 0, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, - 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, - 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, - 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 163, 164, 165, - 166, 167, 168, 0, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 0, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 208, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, - 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, - 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, - 0, 248, 249, 250, 251, 252, 1323, 254, 0, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, - 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 0, - 291, 0, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, - 329, 330, 0, 332, 0, 333, 334, 335, 336, 337, - 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, - 0, 344, 345, 346, 0, 348, 0, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 364, 0, 366, 367, 368, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 383, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, - 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, - 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, - 458, 0, 459, 460, 461, 0, 0, 462, 463, 464, - 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, - 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, - 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, - 515, 516, 517, 518, 519, 520, 528, 0, 554, 0, + 503, 504, 505, 528, 0, 554, 0, 0, 0, 0, + 0, 0, 0, 0, 517, 518, 519, 520, 0, 0, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, + 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, + 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, + 153, 154, 155, 156, 0, 157, 158, 159, 160, 161, + 0, 0, 0, 163, 164, 165, 166, 167, 168, 0, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, + 0, 0, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 0, 195, 0, + 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, + 204, 205, 0, 0, 206, 207, 208, 209, 210, 0, + 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, + 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, + 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, + 251, 252, 3048, 254, 0, 256, 257, 258, 259, 0, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, + 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, + 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, + 287, 288, 0, 0, 289, 0, 291, 0, 0, 293, + 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, + 324, 325, 326, 327, 328, 0, 329, 330, 0, 332, + 0, 333, 334, 335, 336, 337, 338, 0, 339, 340, + 0, 0, 341, 342, 343, 0, 0, 344, 345, 346, + 0, 348, 0, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, + 363, 364, 0, 366, 367, 368, 369, 370, 371, 0, + 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 0, 401, 402, 0, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, + 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, + 452, 0, 454, 455, 456, 457, 458, 0, 459, 460, + 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, + 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, + 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, + 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, + 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, + 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, + 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, - 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, - 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, - 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, - 150, 151, 152, 153, 154, 155, 156, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 163, 164, 165, 166, - 167, 168, 0, 170, 171, 172, 0, 173, 174, 175, - 176, 177, 178, 0, 0, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, - 0, 202, 203, 204, 205, 0, 0, 206, 207, 208, - 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, - 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, - 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, - 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, - 248, 249, 250, 251, 252, 1325, 254, 0, 256, 257, - 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, - 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, - 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, - 284, 285, 286, 287, 288, 0, 0, 289, 0, 291, - 0, 0, 293, 294, 295, 296, 297, 298, 299, 300, - 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, - 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, - 330, 0, 332, 0, 333, 334, 335, 336, 337, 338, - 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, - 344, 345, 346, 0, 348, 0, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, - 0, 0, 362, 363, 364, 0, 366, 367, 368, 369, - 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, - 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, - 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, - 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, - 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, - 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, - 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, - 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, - 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, - 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 528, 0, 554, 0, 0, + 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, + 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, + 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, + 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, + 154, 155, 156, 0, 157, 158, 159, 160, 161, 0, + 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, + 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, + 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, + 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, + 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, + 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, + 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, + 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, + 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, + 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, + 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, + 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, + 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, + 288, 0, 0, 289, 0, 291, 0, 0, 293, 294, + 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, + 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, + 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, + 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, + 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, + 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, + 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, + 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, + 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, + 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, + 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, + 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, + 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, + 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, + 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, + 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, + 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, - 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, - 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, - 151, 152, 153, 154, 155, 156, 0, 157, 158, 159, - 160, 161, 0, 0, 0, 163, 164, 165, 166, 167, - 168, 0, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 0, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 0, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 208, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, - 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, - 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, - 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, - 249, 250, 251, 252, 2262, 254, 0, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, - 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 0, 291, 0, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 530, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 322, 0, 324, 325, 326, 327, 328, 0, 329, 330, - 0, 332, 0, 333, 334, 335, 336, 337, 338, 0, - 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, - 345, 346, 0, 348, 0, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 364, 0, 366, 367, 368, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, - 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, - 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, - 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, - 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, - 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, - 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, - 517, 518, 519, 520, 1490, 0, 0, 0, 0, 0, + 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, + 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, + 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, + 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, + 155, 156, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, + 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, + 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, + 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, + 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, + 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, + 0, 0, 238, 239, 529, 0, 843, 0, 243, 0, + 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, + 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, + 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, + 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, + 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, + 0, 0, 289, 0, 291, 0, 0, 293, 294, 844, + 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, + 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, + 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, + 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, + 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, + 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, + 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, + 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, + 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, + 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, + 411, 845, 413, 414, 415, 416, 417, 418, 419, 420, + 0, 0, 421, 422, 423, 424, 846, 426, 427, 428, + 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, + 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, + 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, + 454, 455, 456, 457, 458, 0, 459, 847, 461, 0, + 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, + 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, + 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, + 486, 487, 488, 848, 0, 490, 0, 492, 493, 494, + 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, + 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, + 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, + 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, + 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, + 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, + 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, + 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, + 156, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 163, 164, 165, 166, 167, 168, 0, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 178, 0, 0, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, + 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, + 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, + 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, + 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, + 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, + 245, 246, 247, 0, 248, 249, 250, 251, 252, 960, + 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, + 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, + 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, + 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, + 0, 289, 0, 291, 0, 0, 293, 294, 295, 296, + 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, + 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, + 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, + 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, + 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, + 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, + 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, + 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, + 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, + 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, + 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, + 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, + 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, + 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, + 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, + 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, + 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, + 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, - 125, 0, 126, 127, 128, 0, 0, 0, 1491, 0, - 0, -803, 0, 1492, 130, 131, 0, 132, 133, 134, - 1493, 136, 137, 138, 0, 1494, 1495, 1496, 1497, 0, - 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, - 152, 153, 1498, 1499, 156, 0, 157, 158, 159, 160, - 0, 0, 1500, 0, 1501, 164, 165, 166, 167, 168, - 1502, 170, 171, 172, 0, 173, 174, 175, 176, 177, - 178, 0, 1503, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 1504, 191, 192, 1505, 194, 0, 195, - 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, - 203, 204, 205, 0, 0, 206, 207, 1067, 209, 210, - 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, - 218, 219, 220, 0, 222, 223, 224, 225, 226, 227, - 0, 0, 229, 0, 230, 231, 1506, 233, 0, 234, - 0, 235, 1507, 0, 1508, 238, 239, -803, 1509, 242, - 0, 243, 0, 0, 0, 246, 247, 0, 248, 249, - 250, 251, 252, 253, 254, 1510, 256, 257, 258, 259, - 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, - 1511, 0, 270, 271, 272, 273, 274, 1512, 1513, 0, - 1514, 0, 278, 1515, 1516, 281, 1517, 283, 284, 285, - 286, 287, 288, 0, 0, 289, 1518, 291, 1519, 0, - 293, 294, 295, 296, 297, 298, 299, 300, 1520, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 1521, - 1522, 1523, 325, 326, 327, 0, 0, 329, 330, 1524, - 332, 0, 0, 334, 1525, 336, 337, 338, 0, 339, - 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, - 0, 1526, 348, 1527, 0, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, - 362, 363, 0, 1528, 366, 367, 0, 369, 370, 371, - 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, - 380, 381, 382, 1529, 384, 385, 386, 387, 0, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 0, 401, 402, 1530, 404, 405, 406, 1531, - 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 420, 0, 1532, 421, 422, 423, 424, 425, - 426, 1533, 428, 429, 0, 1534, 431, 432, 1535, 434, - 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 1536, 448, 0, 0, 0, 450, 451, - 0, 452, 1537, 454, 455, 456, 457, 458, 0, 459, - 1538, 1539, 0, 0, 462, 463, 0, 465, 0, 0, - 467, 468, 1540, 470, 471, 472, 473, 474, 1541, 0, - 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, - 483, 484, 485, 486, 0, 1542, 489, 0, 490, 1543, - 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, - 0, 0, 500, 501, 502, 503, 504, 505, 528, 0, - 554, 0, 0, 0, 0, 0, 0, 0, 0, 517, - 518, 519, 520, 0, 0, 0, 0, 118, 119, 120, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, + 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, + 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, + 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, + 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, + 0, 157, 158, 159, 160, 161, 0, 0, 0, 163, + 164, 165, 166, 167, 168, 0, 170, 171, 172, 0, + 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, + 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, + 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, + 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, + 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, + 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, + 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, + 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, + 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, + 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, + 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, + 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, + 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, + 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, + 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, + 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, + 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, + 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, + 0, 404, 405, 406, 407, 408, 409, 410, 411, 845, + 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, + 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, + 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, + 456, 457, 458, 0, 459, 847, 461, 0, 0, 462, + 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, + 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, + 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, + 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, + 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, + 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, @@ -10862,7 +11305,7 @@ static const yytype_int16 yytable[] = 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, - 247, 0, 248, 249, 250, 251, 252, 3024, 254, 0, + 247, 0, 248, 249, 250, 251, 252, 1321, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, @@ -10912,7 +11355,7 @@ static const yytype_int16 yytable[] = 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, + 0, 248, 249, 250, 251, 252, 1342, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, @@ -10947,7 +11390,7 @@ static const yytype_int16 yytable[] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 130, 131, 0, 132, + 0, 0, 0, 1697, 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, 157, 158, @@ -10961,13 +11404,13 @@ static const yytype_int16 yytable[] = 0, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, - 0, 842, 0, 243, 0, 244, 245, 246, 247, 0, + 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, 0, 291, - 0, 0, 293, 294, 843, 296, 297, 298, 299, 300, + 0, 0, 293, 294, 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, 0, 329, @@ -10980,16 +11423,16 @@ static const yytype_int16 yytable[] = 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, - 406, 407, 408, 409, 410, 411, 844, 413, 414, 415, + 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, - 424, 845, 426, 427, 428, 429, 0, 0, 431, 432, + 424, 425, 0, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, - 0, 459, 846, 461, 0, 0, 462, 463, 464, 465, + 0, 459, 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, - 0, 482, 483, 484, 485, 486, 487, 488, 847, 0, + 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, @@ -11012,7 +11455,7 @@ static const yytype_int16 yytable[] = 227, 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, - 249, 250, 251, 252, 959, 254, 0, 256, 257, 258, + 249, 250, 251, 252, 1883, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, @@ -11062,7 +11505,7 @@ static const yytype_int16 yytable[] = 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, - 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, + 250, 251, 252, 2265, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, @@ -11080,13 +11523,13 @@ static const yytype_int16 yytable[] = 380, 381, 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, - 408, 409, 410, 411, 844, 413, 414, 415, 416, 417, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, - 846, 461, 0, 0, 462, 463, 464, 465, 466, 0, + 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, @@ -11112,7 +11555,7 @@ static const yytype_int16 yytable[] = 0, 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, 247, 0, 248, 249, 250, - 251, 252, 1314, 254, 0, 256, 257, 258, 259, 0, + 251, 252, 2280, 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, 286, @@ -11143,1742 +11586,2484 @@ static const yytype_int16 yytable[] = 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 528, 0, 0, 0, 0, 0, 0, 0, + 519, 520, 1501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, - 126, 127, 128, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 130, 131, 0, 132, 133, 134, 0, 136, - 137, 138, 139, 140, 0, 142, 143, 0, 144, 145, + 126, 127, 128, 0, 0, 0, 1502, 0, 0, 0, + 0, 1503, 130, 131, 0, 132, 133, 134, 1504, 136, + 137, 138, 0, 1505, 1506, 1507, 1508, 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, 153, - 154, 155, 156, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 163, 164, 165, 166, 167, 168, 0, 170, + 1509, 1510, 156, 0, 157, 158, 159, 160, 0, 0, + 1511, 0, 1512, 164, 165, 166, 167, 168, 1513, 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, 0, - 0, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 0, 195, 0, 196, + 1514, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 1515, 191, 192, 1516, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, - 205, 0, 0, 206, 207, 208, 209, 210, 0, 211, + 205, 0, 0, 206, 207, 1073, 209, 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, 219, - 220, 221, 222, 223, 224, 225, 226, 227, 228, 0, - 229, 0, 230, 231, 232, 233, 0, 234, 0, 235, - 0, 0, 0, 238, 239, 529, 0, 242, 0, 243, - 0, 244, 245, 246, 247, 0, 248, 249, 250, 251, - 252, 1335, 254, 0, 256, 257, 258, 259, 0, 260, - 261, 262, 263, 264, 265, 266, 0, 267, 0, 269, - 270, 271, 272, 273, 274, 275, 276, 0, 277, 0, - 278, 0, 0, 281, 0, 283, 284, 285, 286, 287, - 288, 0, 0, 289, 0, 291, 0, 0, 293, 294, - 295, 296, 297, 298, 299, 300, 530, 302, 303, 304, + 220, 0, 222, 223, 224, 225, 226, 227, 0, 0, + 229, 0, 230, 231, 1517, 233, 0, 234, 0, 235, + 1518, 0, 1519, 238, 239, 0, 1520, 242, 0, 243, + 0, 0, 0, 246, 247, 0, 248, 249, 250, 251, + 252, 253, 254, 1521, 256, 257, 258, 259, 0, 260, + 261, 262, 263, 264, 265, 266, 0, 267, 1522, 0, + 270, 271, 272, 273, 274, 1523, 1524, 0, 1525, 0, + 278, 1526, 1527, 281, 1528, 283, 284, 285, 286, 287, + 288, 0, 0, 289, 1529, 291, 1530, 0, 293, 294, + 295, 296, 297, 298, 299, 300, 1531, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 0, 324, - 325, 326, 327, 328, 0, 329, 330, 0, 332, 0, - 333, 334, 335, 336, 337, 338, 0, 339, 340, 0, - 0, 341, 342, 343, 0, 0, 344, 345, 346, 0, - 348, 0, 350, 351, 352, 353, 354, 355, 356, 357, + 315, 316, 317, 318, 319, 320, 321, 1532, 1533, 1534, + 325, 326, 327, 0, 0, 329, 330, 1535, 332, 0, + 0, 334, 1536, 336, 337, 338, 0, 339, 340, 0, + 0, 341, 342, 343, 0, 0, 344, 345, 0, 1537, + 348, 1538, 0, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, 363, - 364, 0, 366, 367, 368, 369, 370, 371, 0, 372, + 0, 1539, 366, 367, 0, 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 0, 388, 389, 390, + 382, 1540, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, - 0, 401, 402, 0, 404, 405, 406, 407, 408, 409, + 0, 401, 402, 1541, 404, 405, 406, 1542, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, - 420, 0, 0, 421, 422, 423, 424, 425, 426, 427, - 428, 429, 0, 0, 431, 432, 433, 434, 0, 435, + 420, 0, 1543, 421, 422, 423, 424, 425, 426, 1544, + 428, 429, 0, 1545, 431, 432, 1546, 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 531, 448, 449, 0, 0, 450, 451, 0, 452, - 0, 454, 455, 456, 457, 458, 0, 459, 460, 461, - 0, 0, 462, 463, 464, 465, 466, 0, 467, 468, - 469, 470, 471, 472, 473, 474, 0, 0, 475, 476, + 446, 1547, 448, 0, 0, 0, 450, 451, 0, 452, + 1548, 454, 455, 456, 457, 458, 0, 459, 1549, 1550, + 0, 0, 462, 463, 0, 465, 0, 0, 467, 468, + 1551, 470, 471, 472, 473, 474, 1552, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, - 485, 486, 487, 488, 489, 0, 490, 0, 492, 493, + 485, 486, 0, 1553, 489, 0, 490, 1554, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, - 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, - 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 528, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 0, 0, 0, 1686, 0, - 0, 130, 131, 0, 132, 133, 134, 0, 136, 137, - 138, 139, 140, 0, 142, 143, 0, 144, 145, 146, - 147, 148, 149, 0, 0, 150, 151, 152, 153, 154, - 155, 156, 0, 157, 158, 159, 160, 161, 0, 0, - 0, 163, 164, 165, 166, 167, 168, 0, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 0, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 0, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 208, 209, 210, 0, 211, 212, - 213, 0, 214, 215, 216, 0, 217, 218, 219, 220, - 221, 222, 223, 224, 225, 226, 227, 228, 0, 229, - 0, 230, 231, 232, 233, 0, 234, 0, 235, 0, - 0, 0, 238, 239, 529, 0, 242, 0, 243, 0, - 244, 245, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 0, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 0, 269, 270, - 271, 272, 273, 274, 275, 276, 0, 277, 0, 278, - 0, 0, 281, 0, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 0, 291, 0, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 530, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 0, 324, 325, - 326, 327, 328, 0, 329, 330, 0, 332, 0, 333, - 334, 335, 336, 337, 338, 0, 339, 340, 0, 0, - 341, 342, 343, 0, 0, 344, 345, 346, 0, 348, - 0, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 364, - 0, 366, 367, 368, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 0, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 0, 421, 422, 423, 424, 425, 0, 427, 428, - 429, 0, 0, 431, 432, 433, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 531, 448, 449, 0, 0, 450, 451, 0, 452, 0, - 454, 455, 456, 457, 458, 0, 459, 460, 461, 0, - 0, 462, 463, 464, 465, 466, 0, 467, 468, 469, - 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 487, 488, 489, 0, 490, 0, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, - 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, - 528, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, + 500, 501, 502, 503, 504, 505, 1501, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 517, 518, 519, + 520, 0, 0, 0, 0, 118, 119, 120, 121, 122, + 123, 124, 125, 0, 126, 127, 128, 0, 0, 0, + 1502, 0, 0, 0, 0, 1503, 130, 131, 0, 132, + 133, 134, 1504, 136, 137, 138, 0, 1505, 1506, 1507, + 1508, 0, 144, 145, 146, 147, 148, 149, 0, 0, + 150, 151, 152, 153, 1509, 1510, 156, 0, 157, 158, + 159, 160, 0, 0, 1511, 0, 1512, 164, 165, 166, + 167, 168, 1513, 170, 171, 172, 0, 173, 174, 175, + 176, 177, 178, 0, 1514, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 1515, 191, 192, 1516, 194, + 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, + 0, 202, 203, 204, 205, 0, 0, 206, 207, 1073, + 209, 210, 0, 211, 212, 213, 0, 1859, 215, 216, + 0, 217, 218, 219, 220, 0, 222, 223, 224, 225, + 226, 227, 0, 0, 229, 0, 230, 231, 1517, 233, + 0, 234, 0, 235, 1518, 0, 1519, 238, 239, 0, + 1520, 242, 0, 243, 0, 0, 0, 246, 247, 0, + 248, 249, 250, 251, 252, 253, 254, 1521, 256, 257, + 258, 259, 0, 260, 261, 262, 263, 264, 265, 266, + 0, 267, 1522, 0, 270, 271, 272, 273, 274, 1523, + 1524, 0, 1525, 0, 278, 1526, 1527, 281, 1528, 283, + 284, 285, 286, 287, 288, 0, 0, 289, 1529, 291, + 1530, 0, 293, 294, 295, 296, 297, 298, 299, 300, + 1531, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 1532, 1533, 1534, 325, 326, 327, 0, 0, 329, + 330, 1535, 332, 0, 0, 334, 1536, 336, 337, 338, + 0, 339, 340, 0, 0, 341, 342, 343, 0, 0, + 344, 345, 0, 1537, 348, 1538, 0, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, 361, 0, 0, + 0, 0, 362, 363, 0, 1539, 366, 367, 0, 369, + 370, 371, 0, 372, 373, 374, 375, 376, 377, 0, + 378, 379, 380, 381, 382, 1540, 384, 385, 386, 387, + 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, + 397, 398, 399, 400, 0, 401, 402, 1541, 404, 405, + 406, 1542, 408, 409, 410, 411, 412, 413, 414, 415, + 416, 417, 418, 419, 420, 0, 1543, 421, 422, 423, + 424, 425, 426, 1544, 428, 429, 0, 1545, 431, 432, + 1546, 434, 0, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 444, 445, 446, 1547, 448, 0, 0, 0, + 450, 451, 0, 452, 1548, 454, 455, 456, 457, 458, + 0, 459, 1549, 1550, 0, 0, 462, 463, 0, 465, + 0, 0, 467, 468, 1551, 470, 471, 472, 473, 474, + 1552, 0, 475, 476, 477, 0, 478, 479, 480, 481, + 0, 482, 483, 484, 485, 486, 0, 1553, 489, 0, + 490, 1554, 492, 493, 494, 495, 496, 497, 498, 0, + 0, 499, 0, 0, 500, 501, 502, 503, 504, 505, + 3230, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 517, 518, 519, 520, 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, 127, - 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 130, 131, 0, 132, 133, 134, 0, 136, 137, 138, - 139, 140, 0, 142, 143, 0, 144, 145, 146, 147, - 148, 149, 0, 0, 150, 151, 152, 153, 154, 155, - 156, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 163, 164, 165, 166, 167, 168, 0, 170, 171, 172, - 0, 173, 174, 175, 176, 177, 178, 0, 0, 180, - 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, - 191, 192, 193, 194, 0, 195, 0, 196, 197, 198, + 128, 0, 0, 0, 2971, 0, 0, 0, 0, 2972, + 130, 131, 0, 132, 133, 134, 2973, 136, 137, 138, + 0, 1505, 2974, 1507, 1508, 0, 144, 145, 146, 147, + 148, 149, 0, 0, 150, 151, 152, 153, 1509, 1510, + 156, 0, 157, 158, 159, 160, 0, 0, 2975, 0, + 2976, 164, 165, 166, 167, 168, 2977, 170, 171, 172, + 0, 173, 174, 175, 176, 177, 178, 0, 2978, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 1515, + 191, 192, 1516, 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, 0, - 0, 206, 207, 208, 209, 210, 0, 211, 212, 213, - 0, 214, 215, 216, 0, 217, 218, 219, 220, 221, - 222, 223, 224, 225, 226, 227, 228, 0, 229, 0, - 230, 231, 232, 233, 0, 234, 0, 235, 0, 0, - 0, 238, 239, 529, 0, 242, 0, 243, 0, 244, - 245, 246, 247, 0, 248, 249, 250, 251, 252, 1872, - 254, 0, 256, 257, 258, 259, 0, 260, 261, 262, - 263, 264, 265, 266, 0, 267, 0, 269, 270, 271, - 272, 273, 274, 275, 276, 0, 277, 0, 278, 0, - 0, 281, 0, 283, 284, 285, 286, 287, 288, 0, - 0, 289, 0, 291, 0, 0, 293, 294, 295, 296, - 297, 298, 299, 300, 530, 302, 303, 304, 305, 306, + 0, 206, 207, 1073, 209, 210, 0, 211, 212, 213, + 0, 214, 215, 216, 0, 217, 218, 219, 220, 0, + 222, 223, 224, 225, 226, 227, 0, 0, 229, 0, + 230, 231, 1517, 233, 0, 234, 0, 235, 2979, 0, + 2980, 238, 239, 2981, 2982, 242, 0, 243, 0, 0, + 0, 246, 247, 0, 248, 249, 250, 251, 252, 253, + 254, 2983, 256, 257, 258, 259, 0, 260, 261, 262, + 263, 264, 265, 266, 0, 267, 2984, 0, 270, 271, + 272, 273, 274, 1523, 1524, 0, 1525, 0, 278, 2985, + 2986, 281, 2987, 283, 284, 285, 286, 287, 288, 0, + 0, 289, 2988, 291, 2989, 0, 293, 294, 295, 296, + 297, 298, 299, 300, 3231, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, 318, 319, 320, 321, 322, 0, 324, 325, 326, - 327, 328, 0, 329, 330, 0, 332, 0, 333, 334, - 335, 336, 337, 338, 0, 339, 340, 0, 0, 341, - 342, 343, 0, 0, 344, 345, 346, 0, 348, 0, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, 361, 0, 0, 0, 0, 362, 363, 364, 0, - 366, 367, 368, 369, 370, 371, 0, 372, 373, 374, - 375, 376, 377, 0, 378, 379, 380, 381, 382, 383, + 317, 318, 319, 320, 321, 1532, 2991, 1534, 325, 326, + 327, 0, 0, 329, 330, 2993, 332, 0, 0, 334, + 1536, 336, 337, 338, 0, 339, 340, 0, 0, 341, + 342, 343, 0, 0, 344, 345, 0, 2995, 348, 2996, + 0, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 0, 0, 0, 0, 362, 363, 0, 2997, + 366, 367, 0, 369, 370, 371, 0, 372, 373, 374, + 375, 376, 377, 0, 378, 379, 380, 381, 382, 1540, 384, 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, 401, - 402, 0, 404, 405, 406, 407, 408, 409, 410, 411, + 402, 2998, 404, 405, 406, 0, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 0, - 0, 421, 422, 423, 424, 425, 426, 427, 428, 429, - 0, 0, 431, 432, 433, 434, 0, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, 531, - 448, 449, 0, 0, 450, 451, 0, 452, 0, 454, - 455, 456, 457, 458, 0, 459, 460, 461, 0, 0, - 462, 463, 464, 465, 466, 0, 467, 468, 469, 470, + 2999, 421, 422, 423, 424, 425, 426, 0, 428, 429, + 0, 3001, 431, 432, 1546, 434, 0, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 3232, + 448, 0, 0, 0, 450, 451, 0, 452, 3003, 454, + 455, 456, 457, 458, 0, 459, 1549, 1550, 0, 0, + 462, 463, 0, 465, 0, 0, 467, 468, 3004, 470, 471, 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, 486, - 487, 488, 489, 0, 490, 0, 492, 493, 494, 495, + 0, 1553, 489, 0, 490, 3006, 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, 501, - 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 528, + 502, 503, 504, 505, 528, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 517, 518, 519, 520, 0, + 0, 0, 0, 118, 119, 120, 121, 122, 123, 124, + 125, 0, 126, 127, 128, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 130, 131, 0, 132, 133, 134, + 0, 136, 137, 138, 139, 140, 0, 142, 143, 0, + 144, 145, 146, 147, 148, 149, 0, 0, 150, 151, + 152, 153, 154, 155, 156, 0, 157, 158, 159, 160, + 161, 0, 0, 0, 163, 164, 165, 166, 167, 168, + 0, 170, 171, 172, 0, 173, 174, 175, 176, 177, + 178, 0, 0, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 0, 195, + 0, 196, 197, 198, 199, 200, 201, 0, 0, 202, + 203, 204, 205, 0, 0, 206, 207, 208, 209, 210, + 0, 211, 212, 213, 0, 214, 215, 216, 0, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 0, 229, 0, 230, 231, 232, 233, 0, 234, + 0, 235, 0, 0, 0, 238, 239, 529, 0, 242, + 0, 243, 0, 244, 245, 0, 247, 0, 248, 249, + 250, 251, 252, 253, 254, 0, 256, 257, 258, 259, + 0, 260, 261, 262, 263, 264, 265, 266, 0, 267, + 0, 269, 270, 271, 272, 273, 274, 275, 276, 0, + 277, 0, 278, 0, 0, 281, 0, 283, 284, 285, + 286, 287, 288, 0, 0, 289, 0, 291, 0, 0, + 293, 294, 295, 296, 297, 298, 299, 300, 530, 302, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, + 0, 324, 325, 326, 327, 328, 0, 329, 330, 0, + 332, 0, 333, 334, 335, 336, 337, 338, 0, 339, + 340, 0, 0, 341, 342, 343, 0, 0, 344, 345, + 346, 0, 348, 0, 350, 351, 352, 353, 354, 355, + 356, 0, 358, 359, 360, 361, 0, 0, 0, 0, + 362, 363, 364, 0, 366, 367, 368, 369, 370, 371, + 0, 372, 373, 374, 375, 376, 377, 0, 378, 379, + 380, 0, 382, 383, 384, 385, 386, 387, 0, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 0, 401, 402, 0, 404, 405, 406, 407, + 0, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 0, 0, 421, 422, 423, 424, 425, + 426, 427, 428, 429, 0, 0, 431, 432, 433, 434, + 0, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, 531, 448, 449, 0, 0, 450, 451, + 0, 452, 0, 454, 455, 456, 457, 458, 0, 459, + 460, 461, 0, 0, 462, 463, 464, 465, 466, 0, + 467, 468, 469, 470, 471, 472, 473, 474, 0, 0, + 475, 476, 477, 0, 478, 479, 480, 481, 0, 482, + 483, 484, 485, 486, 487, 488, 489, 0, 490, 0, + 492, 493, 494, 495, 496, 497, 498, 0, 0, 499, + 0, 0, 500, 501, 502, 503, 504, 505, 506, 507, + 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, + 518, 519, 520, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, - 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, - 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, - 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, - 0, 157, 158, 159, 160, 161, 0, 0, 0, 163, - 164, 165, 166, 167, 168, 0, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, - 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, - 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, - 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, - 246, 247, 0, 248, 249, 250, 251, 252, 2249, 254, - 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, - 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, - 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, - 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, - 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, - 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, - 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, - 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, - 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 0, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, - 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, - 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, - 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, - 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, - 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, - 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 528, 0, + 0, 0, 118, 119, 120, 121, 122, 123, 124, 125, + 0, 126, 127, 128, 0, 0, 0, 1502, 0, 0, + 0, 0, 1503, 130, 131, 0, 132, 133, 134, 1504, + 136, 137, 138, 0, 1505, 1506, 1507, 1508, 0, 144, + 145, 146, 147, 148, 149, 0, 0, 150, 151, 152, + 153, 1509, 1510, 156, 0, 157, 158, 159, 160, 0, + 0, 1511, 0, 1512, 164, 165, 166, 167, 168, 1513, + 170, 171, 172, 0, 173, 174, 175, 176, 177, 178, + 0, 1514, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 1515, 191, 192, 1516, 194, 0, 195, 0, + 196, 197, 198, 199, 200, 201, 0, 0, 202, 203, + 204, 205, 0, 0, 206, 207, 1073, 209, 210, 0, + 211, 212, 213, 0, 214, 215, 216, 0, 217, 218, + 219, 220, 0, 222, 223, 224, 225, 226, 227, 0, + 0, 229, 0, 230, 231, 1517, 233, 0, 234, 0, + 235, 1518, 0, 1519, 238, 239, 0, 1520, 242, 0, + 243, 0, 0, 0, 246, 247, 0, 248, 249, 250, + 251, 252, 253, 254, 1521, 256, 257, 258, 259, 0, + 260, 261, 262, 263, 264, 265, 266, 0, 267, 1522, + 0, 270, 271, 272, 273, 274, 1523, 1524, 0, 1525, + 0, 278, 1526, 1527, 281, 1528, 283, 284, 285, 286, + 287, 288, 0, 0, 289, 1529, 291, 1530, 0, 293, + 294, 295, 296, 297, 298, 299, 300, 0, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, 318, 319, 320, 321, 1532, 1533, + 1534, 325, 326, 327, 0, 0, 329, 330, 1535, 332, + 0, 0, 334, 1536, 336, 337, 338, 0, 339, 340, + 0, 0, 341, 342, 343, 0, 0, 344, 345, 0, + 1537, 348, 1538, 0, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 0, 0, 0, 0, 362, + 363, 0, 1539, 366, 367, 0, 369, 370, 371, 0, + 372, 373, 374, 375, 376, 377, 0, 378, 379, 380, + 381, 382, 1540, 384, 385, 386, 387, 0, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 0, 401, 402, 1541, 404, 405, 406, 0, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 0, 1543, 421, 422, 423, 424, 425, 426, + 0, 428, 429, 0, 1545, 431, 432, 1546, 434, 0, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 0, 448, 0, 0, 0, 450, 451, 0, + 452, 1548, 454, 455, 456, 457, 458, 0, 459, 1549, + 1550, 0, 0, 462, 463, 0, 465, 0, 0, 467, + 468, 1551, 470, 471, 472, 473, 474, 0, 0, 475, + 476, 477, 0, 478, 479, 480, 481, 0, 482, 483, + 484, 485, 486, 0, 1553, 489, 0, 490, 1554, 492, + 493, 494, 495, 496, 497, 498, 0, 1, 499, 0, + 0, 500, 501, 502, 503, 504, 505, 2, 0, 3, + 4, 0, 0, 0, 0, 1, 0, 0, 517, 518, + 519, 520, 0, 0, 0, 2, 0, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, + 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, + 8, 0, 0, 0, 7, 0, 0, 0, 0, 0, + 0, 10, 0, 0, 0, 0, 0, 0, 8, 0, + 0, 0, 0, 11, 0, 751, 0, 0, 0, 10, + 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, + 0, 11, 0, 751, 0, 0, 0, 0, 0, 0, + 0, 14, 15, 0, 13, 0, 0, 0, 0, 0, + 0, 0, 752, 0, 0, 0, 0, 0, 18, 14, + 15, 0, 0, 0, 0, 0, 19, 0, 0, 0, + 752, 0, 0, 0, 0, 0, 18, 0, 0, 0, + 0, 0, 0, 22, 19, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 130, 131, - 0, 132, 133, 134, 0, 136, 137, 138, 139, 140, - 0, 142, 143, 0, 144, 145, 146, 147, 148, 149, - 0, 0, 150, 151, 152, 153, 154, 155, 156, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 163, 164, - 165, 166, 167, 168, 0, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 0, 0, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 0, 195, 0, 196, 197, 198, 199, 200, - 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, - 207, 208, 209, 210, 0, 211, 212, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 0, 229, 0, 230, 231, - 232, 233, 0, 234, 0, 235, 0, 0, 0, 238, - 239, 529, 0, 242, 0, 243, 0, 244, 245, 246, - 247, 0, 248, 249, 250, 251, 252, 2264, 254, 0, - 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, - 265, 266, 0, 267, 0, 269, 270, 271, 272, 273, - 274, 275, 276, 0, 277, 0, 278, 0, 0, 281, - 0, 283, 284, 285, 286, 287, 288, 0, 0, 289, - 0, 291, 0, 0, 293, 294, 295, 296, 297, 298, - 299, 300, 530, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 0, 324, 325, 326, 327, 328, - 0, 329, 330, 0, 332, 0, 333, 334, 335, 336, - 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, - 0, 0, 344, 345, 346, 0, 348, 0, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 0, 0, 0, 0, 362, 363, 364, 0, 366, 367, - 368, 369, 370, 371, 0, 372, 373, 374, 375, 376, - 377, 0, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 0, 401, 402, 0, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 0, 0, 421, - 422, 423, 424, 425, 426, 427, 428, 429, 0, 0, - 431, 432, 433, 434, 0, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 531, 448, 449, - 0, 0, 450, 451, 0, 452, 0, 454, 455, 456, - 457, 458, 0, 459, 460, 461, 0, 0, 462, 463, - 464, 465, 466, 0, 467, 468, 469, 470, 471, 472, - 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, - 480, 481, 0, 482, 483, 484, 485, 486, 487, 488, - 489, 0, 490, 0, 492, 493, 494, 495, 496, 497, - 498, 0, 0, 499, 0, 0, 500, 501, 502, 503, - 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 1490, 0, 0, + 0, 22, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 118, 119, 120, 121, - 122, 123, 124, 125, 0, 126, 127, 128, 0, 0, - 0, 1491, 0, 0, 0, 0, 1492, 130, 131, 0, - 132, 133, 134, 1493, 136, 137, 138, 0, 1494, 1495, - 1496, 1497, 0, 144, 145, 146, 147, 148, 149, 0, - 0, 150, 151, 152, 153, 1498, 1499, 156, 0, 157, - 158, 159, 160, 0, 0, 1500, 0, 1501, 164, 165, - 166, 167, 168, 1502, 170, 171, 172, 0, 173, 174, - 175, 176, 177, 178, 0, 1503, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 1504, 191, 192, 1505, - 194, 0, 195, 0, 196, 197, 198, 199, 200, 201, - 0, 0, 202, 203, 204, 205, 0, 0, 206, 207, - 1067, 209, 210, 0, 211, 212, 213, 0, 214, 215, - 216, 0, 217, 218, 219, 220, 0, 222, 223, 224, - 225, 226, 227, 0, 0, 229, 0, 230, 231, 1506, - 233, 0, 234, 0, 235, 1507, 0, 1508, 238, 239, - 0, 1509, 242, 0, 243, 0, 0, 0, 246, 247, - 0, 248, 249, 250, 251, 252, 253, 254, 1510, 256, - 257, 258, 259, 0, 260, 261, 262, 263, 264, 265, - 266, 0, 267, 1511, 0, 270, 271, 272, 273, 274, - 1512, 1513, 0, 1514, 0, 278, 1515, 1516, 281, 1517, - 283, 284, 285, 286, 287, 288, 0, 0, 289, 1518, - 291, 1519, 0, 293, 294, 295, 296, 297, 298, 299, - 300, 1520, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 320, 321, 1521, 1522, 1523, 325, 326, 327, 0, 0, - 329, 330, 1524, 332, 0, 0, 334, 1525, 336, 337, - 338, 0, 339, 340, 0, 0, 341, 342, 343, 0, - 0, 344, 345, 0, 1526, 348, 1527, 0, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 0, - 0, 0, 0, 362, 363, 0, 1528, 366, 367, 0, - 369, 370, 371, 0, 372, 373, 374, 375, 376, 377, - 0, 378, 379, 380, 381, 382, 1529, 384, 385, 386, - 387, 0, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 0, 401, 402, 1530, 404, - 405, 406, 1531, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 0, 1532, 421, 422, - 423, 424, 425, 426, 1533, 428, 429, 0, 1534, 431, - 432, 1535, 434, 0, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, 1536, 448, 0, 0, - 0, 450, 451, 0, 452, 1537, 454, 455, 456, 457, - 458, 0, 459, 1538, 1539, 0, 0, 462, 463, 0, - 465, 0, 0, 467, 468, 1540, 470, 471, 472, 473, - 474, 1541, 0, 475, 476, 477, 0, 478, 479, 480, - 481, 0, 482, 483, 484, 485, 486, 0, 1542, 489, - 0, 490, 1543, 492, 493, 494, 495, 496, 497, 498, - 0, 0, 499, 0, 0, 500, 501, 502, 503, 504, - 505, 1490, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 517, 518, 519, 520, 0, 0, 0, 0, - 118, 119, 120, 121, 122, 123, 124, 125, 0, 126, - 127, 128, 0, 0, 0, 1491, 0, 0, 0, 0, - 1492, 130, 131, 0, 132, 133, 134, 1493, 136, 137, - 138, 0, 1494, 1495, 1496, 1497, 0, 144, 145, 146, - 147, 148, 149, 0, 0, 150, 151, 152, 153, 1498, - 1499, 156, 0, 157, 158, 159, 160, 0, 0, 1500, - 0, 1501, 164, 165, 166, 167, 168, 1502, 170, 171, - 172, 0, 173, 174, 175, 176, 177, 178, 0, 1503, - 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, - 1504, 191, 192, 1505, 194, 0, 195, 0, 196, 197, - 198, 199, 200, 201, 0, 0, 202, 203, 204, 205, - 0, 0, 206, 207, 1067, 209, 210, 0, 211, 212, - 213, 0, 1848, 215, 216, 0, 217, 218, 219, 220, - 0, 222, 223, 224, 225, 226, 227, 0, 0, 229, - 0, 230, 231, 1506, 233, 0, 234, 0, 235, 1507, - 0, 1508, 238, 239, 0, 1509, 242, 0, 243, 0, - 0, 0, 246, 247, 0, 248, 249, 250, 251, 252, - 253, 254, 1510, 256, 257, 258, 259, 0, 260, 261, - 262, 263, 264, 265, 266, 0, 267, 1511, 0, 270, - 271, 272, 273, 274, 1512, 1513, 0, 1514, 0, 278, - 1515, 1516, 281, 1517, 283, 284, 285, 286, 287, 288, - 0, 0, 289, 1518, 291, 1519, 0, 293, 294, 295, - 296, 297, 298, 299, 300, 1520, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 1521, 1522, 1523, 325, - 326, 327, 0, 0, 329, 330, 1524, 332, 0, 0, - 334, 1525, 336, 337, 338, 0, 339, 340, 0, 0, - 341, 342, 343, 0, 0, 344, 345, 0, 1526, 348, - 1527, 0, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 0, 0, 0, 0, 362, 363, 0, - 1528, 366, 367, 0, 369, 370, 371, 0, 372, 373, - 374, 375, 376, 377, 0, 378, 379, 380, 381, 382, - 1529, 384, 385, 386, 387, 0, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 399, 400, 0, - 401, 402, 1530, 404, 405, 406, 1531, 408, 409, 410, - 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, - 0, 1532, 421, 422, 423, 424, 425, 426, 1533, 428, - 429, 0, 1534, 431, 432, 1535, 434, 0, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - 1536, 448, 0, 0, 0, 450, 451, 0, 452, 1537, - 454, 455, 456, 457, 458, 0, 459, 1538, 1539, 0, - 0, 462, 463, 0, 465, 0, 0, 467, 468, 1540, - 470, 471, 472, 473, 474, 1541, 0, 475, 476, 477, - 0, 478, 479, 480, 481, 0, 482, 483, 484, 485, - 486, 0, 1542, 489, 0, 490, 1543, 492, 493, 494, - 495, 496, 497, 498, 0, 0, 499, 0, 0, 500, - 501, 502, 503, 504, 505, 3199, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 517, 518, 519, 520, - 0, 0, 0, 0, 118, 119, 120, 121, 122, 123, - 124, 125, 0, 126, 127, 128, 0, 0, 0, 2947, - 0, 0, 0, 0, 2948, 130, 131, 0, 132, 133, - 134, 2949, 136, 137, 138, 0, 1494, 2950, 1496, 1497, - 0, 144, 145, 146, 147, 148, 149, 0, 0, 150, - 151, 152, 153, 1498, 1499, 156, 0, 157, 158, 159, - 160, 0, 0, 2951, 0, 2952, 164, 165, 166, 167, - 168, 2953, 170, 171, 172, 0, 173, 174, 175, 176, - 177, 178, 0, 2954, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 1504, 191, 192, 1505, 194, 0, - 195, 0, 196, 197, 198, 199, 200, 201, 0, 0, - 202, 203, 204, 205, 0, 0, 206, 207, 1067, 209, - 210, 0, 211, 212, 213, 0, 214, 215, 216, 0, - 217, 218, 219, 220, 0, 222, 223, 224, 225, 226, - 227, 0, 0, 229, 0, 230, 231, 1506, 233, 0, - 234, 0, 235, 2955, 0, 2956, 238, 239, 2957, 2958, - 242, 0, 243, 0, 0, 0, 246, 247, 0, 248, - 249, 250, 251, 252, 253, 254, 2959, 256, 257, 258, - 259, 0, 260, 261, 262, 263, 264, 265, 266, 0, - 267, 2960, 0, 270, 271, 272, 273, 274, 1512, 1513, - 0, 1514, 0, 278, 2961, 2962, 281, 2963, 283, 284, - 285, 286, 287, 288, 0, 0, 289, 2964, 291, 2965, - 0, 293, 294, 295, 296, 297, 298, 299, 300, 3200, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, - 1521, 2967, 1523, 325, 326, 327, 0, 0, 329, 330, - 2969, 332, 0, 0, 334, 1525, 336, 337, 338, 0, - 339, 340, 0, 0, 341, 342, 343, 0, 0, 344, - 345, 0, 2971, 348, 2972, 0, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 0, 0, 0, - 0, 362, 363, 0, 2973, 366, 367, 0, 369, 370, - 371, 0, 372, 373, 374, 375, 376, 377, 0, 378, - 379, 380, 381, 382, 1529, 384, 385, 386, 387, 0, - 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, - 398, 399, 400, 0, 401, 402, 2974, 404, 405, 406, - 0, 408, 409, 410, 411, 412, 413, 414, 415, 416, - 417, 418, 419, 420, 0, 2975, 421, 422, 423, 424, - 425, 426, 0, 428, 429, 0, 2977, 431, 432, 1535, - 434, 0, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 3201, 448, 0, 0, 0, 450, - 451, 0, 452, 2979, 454, 455, 456, 457, 458, 0, - 459, 1538, 1539, 0, 0, 462, 463, 0, 465, 0, - 0, 467, 468, 2980, 470, 471, 472, 473, 474, 0, - 0, 475, 476, 477, 0, 478, 479, 480, 481, 0, - 482, 483, 484, 485, 486, 0, 1542, 489, 0, 490, - 2982, 492, 493, 494, 495, 496, 497, 498, 0, 0, - 499, 0, 0, 500, 501, 502, 503, 504, 505, 528, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -1467, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 517, 518, 519, 520, 0, 0, 0, 0, 118, 119, - 120, 121, 122, 123, 124, 125, 0, 126, 127, 128, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 130, - 131, 0, 132, 133, 134, 0, 136, 137, 138, 139, - 140, 0, 142, 143, 0, 144, 145, 146, 147, 148, - 149, 0, 0, 150, 151, 152, 153, 154, 155, 156, - 0, 157, 158, 159, 160, 161, 0, 0, 0, 163, - 164, 165, 166, 167, 168, 0, 170, 171, 172, 0, - 173, 174, 175, 176, 177, 178, 0, 0, 180, 181, - 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, - 192, 193, 194, 0, 195, 0, 196, 197, 198, 199, - 200, 201, 0, 0, 202, 203, 204, 205, 0, 0, - 206, 207, 208, 209, 210, 0, 211, 212, 213, 0, - 214, 215, 216, 0, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 0, 229, 0, 230, - 231, 232, 233, 0, 234, 0, 235, 0, 0, 0, - 238, 239, 529, 0, 242, 0, 243, 0, 244, 245, - 0, 247, 0, 248, 249, 250, 251, 252, 253, 254, - 0, 256, 257, 258, 259, 0, 260, 261, 262, 263, - 264, 265, 266, 0, 267, 0, 269, 270, 271, 272, - 273, 274, 275, 276, 0, 277, 0, 278, 0, 0, - 281, 0, 283, 284, 285, 286, 287, 288, 0, 0, - 289, 0, 291, 0, 0, 293, 294, 295, 296, 297, - 298, 299, 300, 530, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - 318, 319, 320, 321, 322, 0, 324, 325, 326, 327, - 328, 0, 329, 330, 0, 332, 0, 333, 334, 335, - 336, 337, 338, 0, 339, 340, 0, 0, 341, 342, - 343, 0, 0, 344, 345, 346, 0, 348, 0, 350, - 351, 352, 353, 354, 355, 356, 0, 358, 359, 360, - 361, 0, 0, 0, 0, 362, 363, 364, 0, 366, - 367, 368, 369, 370, 371, 0, 372, 373, 374, 375, - 376, 377, 0, 378, 379, 380, 0, 382, 383, 384, - 385, 386, 387, 0, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 0, 401, 402, - 0, 404, 405, 406, 407, 0, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 0, 0, - 421, 422, 423, 424, 425, 426, 427, 428, 429, 0, - 0, 431, 432, 433, 434, 0, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 531, 448, - 449, 0, 0, 450, 451, 0, 452, 0, 454, 455, - 456, 457, 458, 0, 459, 460, 461, 0, 0, 462, - 463, 464, 465, 466, 0, 467, 468, 469, 470, 471, - 472, 473, 474, 0, 0, 475, 476, 477, 0, 478, - 479, 480, 481, 0, 482, 483, 484, 485, 486, 487, - 488, 489, 0, 490, 0, 492, 493, 494, 495, 496, - 497, 498, 0, 0, 499, 0, 0, 500, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 515, 516, 517, 518, 519, 520, 1785, 0, + 0, 0, 0, 0, 0, 0, 0, -1467, 0, 0, + 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 118, 119, 120, - 121, 122, 123, 124, 125, 0, 126, 127, 128, 0, - 0, 0, 1491, 0, 0, 0, 0, 1492, 130, 131, - 0, 132, 133, 134, 1493, 136, 137, 138, 0, 1494, - 1495, 1496, 1497, 0, 144, 145, 146, 147, 148, 149, - 0, 0, 150, 151, 152, 153, 1498, 1499, 156, 0, - 157, 158, 159, 160, 0, 0, 1500, 0, 1501, 164, - 165, 166, 167, 168, 1502, 170, 171, 172, 0, 173, - 174, 175, 176, 177, 178, 0, 1503, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 1504, 191, 192, - 1505, 194, 0, 195, 0, 196, 197, 198, 199, 200, - 201, 0, 0, 202, 203, 204, 205, 0, 0, 206, - 207, 1067, 209, 210, 0, 211, 212, 213, 0, 214, - 215, 216, 0, 217, 218, 219, 220, 0, 222, 223, - 224, 225, 226, 227, 0, 0, 229, 0, 230, 231, - 1506, 233, 0, 234, 0, 235, 1507, 0, 1508, 238, - 239, 0, 1509, 242, 0, 243, 0, 0, 0, 246, - 247, 0, 248, 249, 250, 251, 252, 253, 254, 1510, - 256, 257, 258, 259, 0, 260, 261, 262, 263, 264, - 265, 266, 0, 267, 1511, 0, 270, 271, 272, 273, - 274, 1512, 1513, 0, 1514, 0, 278, 1515, 1516, 281, - 1517, 283, 284, 285, 286, 287, 288, 0, 0, 289, - 1518, 291, 1519, 0, 293, 294, 295, 296, 297, 298, - 299, 300, 0, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 1521, 1522, 1523, 325, 326, 327, 0, - 0, 329, 330, 1524, 332, 0, 0, 334, 1525, 336, - 337, 338, 0, 339, 340, 0, 0, 341, 342, 343, - 0, 0, 344, 345, 0, 1526, 348, 1527, 0, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, - 0, 0, 0, 0, 362, 363, 0, 1528, 366, 367, - 0, 369, 370, 371, 0, 372, 373, 374, 375, 376, - 377, 0, 378, 379, 380, 381, 382, 1529, 384, 385, - 386, 387, 0, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 0, 401, 402, 1530, - 404, 405, 406, 0, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 0, 1532, 421, - 422, 423, 424, 425, 426, 0, 428, 429, 0, 1534, - 431, 432, 1535, 434, 0, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, 0, 448, 0, - 0, 0, 450, 451, 0, 452, 1537, 454, 455, 456, - 457, 458, 0, 459, 1538, 1539, 0, 0, 462, 463, - 0, 465, 0, 0, 467, 468, 1540, 470, 471, 472, - 473, 474, 0, 0, 475, 476, 477, 0, 478, 479, - 480, 481, 0, 482, 483, 484, 485, 486, 0, 1542, - 489, 0, 490, 1543, 492, 493, 494, 495, 496, 497, - 498, 0, 1, 499, 0, 0, 500, 501, 502, 503, - 504, 505, 2, 0, 3, 4, 0, 0, 0, 0, - 1, 0, 0, 517, 518, 519, 520, 0, 0, 0, - 2, 0, 6, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 0, 0, 0, 0, 8, 0, 0, 0, 7, - 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, - 0, 0, 0, 8, 0, 0, 0, 0, 11, 0, - 751, 0, 0, 0, 10, 0, 0, 0, 0, 0, - 0, 13, 0, 0, 0, 0, 11, 0, 751, 0, - 0, 0, 0, 0, 0, 0, 14, 15, 0, 13, - 0, 0, 0, 0, 0, 0, 0, 752, 0, 0, - 0, 0, 0, 18, 14, 15, 0, 0, 0, 0, - 0, 19, 0, 0, 0, 752, 0, 0, 0, 0, - 0, 18, 0, 0, 0, 0, 0, 0, 22, 19, - 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, - 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -1446, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, -1446, 0, 0, 0, 0, 0, 0, 0, - 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 26, 27, 28, 0, 0, 0, 0, 0, 29, 0, + 0, 30, 0, 0, 0, 0, 0, 0, 26, 27, + 28, 0, 0, 0, 0, 0, 29, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, + 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, + 31, 0, 0, 0, 0, 0, 0, 33, 0, 32, + 0, 0, 0, 0, 34, 0, 0, 0, 35, 0, + 0, 0, 0, 0, 0, 33, 0, 0, 36, 0, + 0, 0, 34, 0, 0, 0, 35, 0, 0, 0, + 37, 0, 0, 0, 38, 0, 36, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 37, 0, + 0, 0, 38, 0, 39, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, + 0, 0, 39, 42, 0, 0, 0, 0, 43, 0, + 0, 0, 0, 753, 0, 40, 0, 0, 0, 0, + 0, 42, 0, 0, 0, 44, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 26, 27, 28, 0, 0, - 0, 0, 0, 29, 0, 0, 30, 0, 0, 0, - 0, 0, 0, 26, 27, 28, 0, 0, 0, 0, - 0, 29, 0, 0, 30, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, - 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, - 0, 0, 0, 0, 0, 31, 0, 0, 0, 0, - 0, 0, 33, 0, 32, 0, 0, 0, 0, 34, - 0, 0, 0, 35, 0, 0, 0, 0, 0, 0, - 33, 0, 0, 36, 0, 0, 0, 34, 0, 0, - 0, 35, 0, 0, 0, 37, 0, 0, 0, 38, - 0, 36, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37, 0, 0, 0, 38, 0, 39, + 0, 0, 0, 44, 0, 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 40, 0, 0, 0, 0, 39, 42, 0, - 0, 0, 0, 43, 0, 0, 0, 0, 753, 0, - 40, 0, 0, 0, 0, 0, 42, 0, 0, 0, - 44, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, - 0, 0, 0, 0, 45, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 754, 0, - 0, 0, 45, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 46 + 0, 0, 0, 754, 0, 0, 0, 45, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 46 }; static const yytype_int16 yycheck[] = { - 7, 840, 0, 521, 0, 0, 746, 902, 887, 16, - 0, 0, 0, 814, 864, 46, 23, 998, 0, 0, - 38, 0, 0, 7, 73, 754, 913, 75, 76, 0, - 1237, 929, 1223, 1249, 964, 1235, 1435, 1708, 20, 23, - 77, 1039, 20, 934, 16, 77, 1168, 1210, 37, 1670, - 1087, 989, 20, 1588, 989, 7, 989, 2201, 989, 1642, - 1313, 1816, 1483, 2260, 1562, 1203, 1212, 979, 75, 76, - 1215, 23, 13, 2011, 1291, 2191, 968, 979, 19, 2347, - 1338, 17, 0, 23, 1623, 1624, 0, 45, 0, 30, - 0, 75, 76, 111, 1240, 0, 0, 0, 2718, 23, - 0, 0, 0, 44, 45, 2656, 1133, 2695, 2170, 0, - 2172, 1138, 101, 902, 1095, 904, 0, 906, 34, 2136, - 1007, 2190, 2711, 75, 76, 2256, 2693, 0, 0, 0, - 2656, 0, 0, 753, 0, 75, 76, 987, 0, 0, - 754, 810, 0, 2308, 2309, 2310, 815, 2012, 747, 2327, - 0, 75, 76, 2610, 2525, 1838, 0, 2614, 0, 1835, - 9, 1061, 1062, 9, 1726, 0, 0, 5, 109, 5, - 1728, 1674, 1952, 26, 80, 13, 14, 3035, 1078, 32, - 5, 5, 63, 1834, 5, 9, 5, 5, 9, 990, - 2339, 55, 5, 5, 13, 14, 5, 778, 5, 5, - 13, 14, 13, 14, 13, 14, 13, 14, 1642, 5, - 26, 5, 13, 14, 5, 5, 32, 2348, 2335, 5, - 5, 3021, 45, 5, 5, 172, 172, 5, 82, 2333, - 119, 74, 1144, 2339, 3, 45, 5, 122, 3038, 93, - 173, 11, 882, 11, 1094, 124, 16, 882, 16, 37, - 979, 139, 3, 4, 5, 107, 100, 859, 9, 2474, - 1258, 63, 4, 104, 1151, 30, 100, 9, 5, 1267, - 30, 2402, 2403, 38, 2405, 245, 46, 4, 38, 1177, - 1985, 1986, 9, 63, 137, 90, 172, 181, 11, 807, - 122, 1996, 15, 16, 11, 2000, 122, 30, 15, 16, - 2991, 288, 119, 82, 191, 38, 291, 172, 172, 5, - 80, 193, 1224, 11, 93, 1227, 1228, 15, 16, 3, - 296, 137, 991, 46, 129, 290, 169, 2856, 1450, 2858, - 313, 291, 63, 1065, 1003, 107, 2875, 3204, 856, 313, - 181, 276, 1533, 147, 1978, 1979, 1980, 147, 46, 1081, - 34, 35, 1202, 193, 382, 64, 368, 80, 162, 1198, - 1199, 1483, 982, 167, 117, 74, 117, 119, 315, 316, - 317, 2572, 40, 2574, 1627, 30, 3134, 117, 3136, 3395, - 164, 213, 80, 108, 40, 173, 245, 213, 30, 107, - 173, 120, 2626, 83, 2456, 369, 279, 41, 409, 296, - 13, 14, 11, 373, 2159, 120, 1017, 433, 2573, 1922, - 3363, 391, 1023, 418, 218, 11, 1295, 149, 218, 250, - 507, 209, 33, 3388, 3389, 2976, 1324, 482, 2625, 108, - 3230, 2926, 273, 520, 238, 382, 132, 225, 191, 2934, - 1953, 294, 3030, 85, 275, 122, 290, 235, 59, 504, - 46, 456, 94, 3041, 2598, 207, 290, 483, 148, 166, - 137, 472, 1353, 280, 160, 3032, 195, 192, 219, 201, - 3486, 80, 419, 355, 3332, 3440, 118, 132, 294, 360, - 195, 451, 126, 287, 80, 431, 329, 171, 272, 173, - 241, 2622, 296, 2624, 522, 132, 296, 3255, 2732, 2516, - 353, 273, 1539, 308, 357, 452, 518, 245, 176, 26, - 2921, 3202, 1765, 396, 373, 32, 463, 361, 358, 454, - 176, 273, 275, 275, 11, 485, 309, 361, 15, 16, - 513, 518, 241, 518, 3487, 3064, 389, 353, 518, 513, - 280, 357, 273, 280, 8, 431, 522, 11, 518, 191, - 539, 15, 16, 518, 167, 19, 20, 21, 360, 2142, - 1200, 507, 204, 457, 2765, 1200, 2781, 419, 3426, 454, - 459, 518, 1174, 389, 520, 2724, 364, 431, 457, 275, - 360, 1162, 1100, 2004, 280, 518, 593, 428, 476, 285, - 2707, 1441, 451, 416, 3461, 383, 1759, 1337, 1498, 1499, - 2704, 2136, 1342, 1820, 469, 448, 416, 460, 1348, 3148, - 516, 2742, 395, 2551, 520, 556, 1455, 324, 2724, 424, - 137, 593, 454, 1523, 1882, 522, 1355, 3427, 454, 360, - 3219, 518, 2412, 1472, 399, 2174, 480, 406, 407, 399, - 290, 522, 467, 447, 460, 2207, 480, 447, 285, 1856, - 2208, 328, 431, 3204, 518, 373, 132, 75, 389, 518, - 108, 1914, 148, 509, 510, 2200, 399, 2350, 517, 2345, - 482, 521, 522, 1926, 1672, 519, 518, 521, 3204, 521, - 518, 1897, 518, 1583, 1584, 519, 521, 521, 526, 2340, - 526, 2194, 504, 518, 518, 2892, 3153, 518, 516, 518, - 518, 3158, 520, 1956, 482, 518, 518, 518, 2142, 518, - 1963, 518, 518, 451, 200, 1565, 1566, 518, 227, 3339, - 522, 2899, 518, 754, 518, 1575, 504, 518, 518, 1616, - 1617, 1618, 518, 518, 1354, 3106, 518, 518, 480, 1589, - 518, 1355, 438, 3331, 514, 1344, 514, 754, 2001, 3338, - 3018, 3162, 2005, 449, 30, 227, 419, 805, 509, 510, - 3438, 162, 504, 405, 273, 2470, 408, 509, 510, 1619, - 3181, 753, 164, 1505, 805, 753, 162, 294, 3527, 1448, - 518, 2034, 509, 510, 468, 457, 754, 794, 511, 512, - 513, 514, 2009, 1525, 511, 512, 513, 514, 805, 275, - 457, 273, 26, 519, 2873, 245, 522, 748, 266, 285, - 794, 509, 510, 511, 512, 513, 514, 854, 2756, 3568, - 359, 805, 854, 2457, 2458, 2459, 2460, 1559, 292, 259, - 260, 518, 341, 840, 841, 1566, 353, 238, 887, 231, - 357, 859, 794, 1965, 1575, 3523, 518, 3012, 3436, 507, - 389, 480, 238, 805, 0, 3422, 132, 864, 178, 877, - 518, 518, 2879, 321, 468, 805, 1864, 521, 275, 82, - 794, 59, 389, 280, 106, 504, 874, 1789, 874, 874, - 93, 805, 2004, 392, 874, 874, 874, 1799, 3019, 1784, - 1802, 2474, 874, 874, 862, 874, 874, 2835, 522, 1639, - 482, 287, 2160, 874, 911, 912, 132, 865, 915, 916, - 3461, 1429, 3479, 137, 519, 174, 2671, 522, 2673, 184, - 392, 241, 504, 214, 865, 2790, 842, 843, 2793, 845, - 2795, 847, 339, 373, 160, 3461, 518, 245, 1817, 1818, - 1819, 5, 203, 460, 3333, 454, 1973, 275, 378, 379, - 1880, 1842, 82, 341, 1884, 53, 874, 1887, 3226, 3547, - 874, 968, 874, 2085, 874, 245, 1014, 3164, 1757, 874, - 874, 874, 979, 1021, 874, 874, 874, 518, 108, 986, - 987, 2516, 454, 874, 172, 992, 1898, 246, 995, 996, - 874, 998, 999, 1000, 1001, 1784, 1898, 1889, 934, 2538, - 982, 874, 874, 874, 982, 874, 874, 1014, 874, 245, - 82, 451, 874, 874, 1021, 1804, 874, 174, 74, 251, - 1809, 93, 509, 510, 511, 512, 513, 514, 3144, 261, - 1014, 1038, 1039, 1040, 518, 2434, 3425, 1021, 2176, 3428, - 2178, 505, 506, 507, 174, 509, 510, 511, 512, 513, - 514, 4, 517, 1060, 280, 1795, 9, 517, 1012, 285, - 1800, 117, 1014, 528, 1095, 373, 4, 37, 528, 1021, - 294, 9, 1079, 203, 1014, 340, 1030, 2284, 518, 177, - 1034, 1021, 2580, 1090, 1091, 1092, 345, 1094, 1095, 246, - 1014, 1098, 2847, 373, 2311, 519, 194, 1021, 522, 2352, - 513, 199, 482, 423, 369, 425, 108, 520, 2230, 3306, - 513, 1961, 373, 189, 190, 178, 246, 520, 13, 14, - 3058, 2656, 1129, 384, 504, 384, 1098, 315, 316, 317, - 355, 451, 3521, 357, 178, 359, 380, 373, 518, 237, - 1147, 1148, 26, 451, 1181, 1182, 2292, 1184, 32, 1181, - 1182, 519, 1184, 3291, 522, 3293, 1174, 1905, 419, 147, - 419, 1909, 4, 519, 1912, 389, 522, 9, 162, 1898, - 162, 451, 4, 167, 162, 167, 1183, 9, 241, 167, - 1187, 1188, 516, 259, 260, 2166, 520, 516, 345, 518, - 1197, 1198, 1199, 8, 382, 1202, 2046, 241, 2781, 380, - 15, 16, 203, 173, 19, 20, 21, 71, 72, 470, - 518, 470, 438, 516, 2359, 451, 1223, 520, 516, 275, - 2365, 1239, 520, 449, 280, 519, 1167, 384, 522, 3367, - 218, 419, 1440, 8, 1442, 1443, 11, 2490, 518, 209, - 15, 16, 519, 373, 238, 522, 238, 827, 828, 829, - 238, 1258, 832, 137, 384, 225, 252, 6, 345, 1022, - 1267, 10, 419, 1026, 452, 235, 480, 436, 482, 18, - 314, 46, 2122, 329, 26, 463, 842, 843, 53, 845, - 32, 847, 518, 32, 1291, 13, 14, 36, 25, 419, - 470, 347, 2171, 287, 419, 287, 394, 384, 519, 287, - 377, 522, 378, 379, 167, 80, 1313, 516, 296, 518, - 373, 520, 442, 470, 1312, 519, 1312, 1312, 522, 2266, - 519, 2268, 1329, 522, 1312, 519, 13, 14, 522, 373, - 518, 1338, 419, 2263, 519, 2265, 380, 522, 2759, 380, - 470, 26, 3539, 519, 2879, 518, 522, 32, 1355, 519, - 2472, 518, 522, 519, 2476, 519, 522, 1329, 522, 518, - 423, 519, 425, 519, 522, 1372, 522, 2622, 518, 2624, - 1377, 132, 1354, 423, 519, 425, 1354, 522, 115, 423, - 3524, 425, 3526, 470, 518, 137, 519, 1355, 451, 522, - 519, 518, 448, 522, 364, 519, 2235, 518, 522, 160, - 1372, 457, 177, 2656, 1345, 519, 1347, 451, 522, 423, - 294, 425, 1460, 383, 1462, 519, 172, 1465, 522, 194, - 1427, 1428, 1470, 3567, 199, 1473, 1433, 1475, 1435, 3491, - 518, 1479, 2639, 1440, 1441, 1442, 1443, 518, 2638, 519, - 2338, 423, 522, 425, 3506, 423, 511, 425, 1455, 1456, - 518, 1435, 137, 1460, 2670, 1462, 13, 14, 1465, 447, - 2623, 519, 237, 1470, 522, 1472, 1473, 519, 1475, 353, - 522, 519, 1479, 357, 522, 518, 1460, 292, 1462, 13, - 14, 1465, 40, 1435, 2521, 2522, 1470, 2687, 518, 1473, - 519, 1475, 2637, 522, 2639, 1479, 504, 519, 519, 3561, - 522, 522, 60, 519, 3566, 389, 522, 224, 1460, 519, - 1462, 1435, 522, 1465, 275, 13, 14, 292, 1470, 280, - 1460, 1473, 1462, 1475, 285, 1465, 1533, 1479, 516, 3284, - 1470, 3286, 520, 1473, 501, 1475, 1460, 2387, 1462, 1479, - 519, 1465, 294, 522, 2525, 520, 1470, 519, 106, 1473, - 522, 1475, 13, 14, 519, 1479, 345, 522, 1565, 1566, - 2498, 2499, 2500, 2498, 2499, 2498, 2497, 1574, 1575, 879, - 290, 881, 1562, 1562, 501, 1582, 460, 13, 14, 520, - 1562, 1562, 1589, 1562, 1562, 13, 14, 13, 14, 13, - 14, 1562, 13, 14, 171, 384, 13, 14, 522, 13, - 14, 353, 13, 14, 518, 357, 13, 14, 1615, 294, - 519, 26, 1619, 13, 14, 1622, 519, 32, 519, 394, - 1627, 1628, 1629, 1630, 1631, 1632, 1633, 1634, 1635, 1636, - 419, 13, 14, 1640, 1641, 1642, 172, 389, 1645, 295, - 2380, 59, 1649, 518, 202, 1652, 1653, 1654, 1655, 1656, - 1657, 1658, 1659, 1660, 13, 14, 1663, 420, 1642, 2388, - 13, 14, 501, 1670, 1636, 1672, 13, 14, 979, 3204, - 13, 14, 357, 3294, 1711, 13, 14, 438, 224, 1711, - 152, 470, 13, 14, 1691, 13, 14, 353, 449, 2942, - 505, 506, 507, 251, 509, 510, 511, 512, 513, 514, - 368, 369, 2589, 261, 389, 368, 369, 1714, 460, 368, - 369, 368, 369, 263, 264, 273, 40, 8, 1725, 1726, - 11, 1689, 137, 152, 15, 16, 419, 502, 378, 379, - 2893, 462, 463, 2940, 509, 510, 511, 512, 513, 514, - 2370, 2371, 3501, 3502, 3533, 3534, 152, 305, 1147, 1148, - 2242, 2243, 519, 152, 152, 46, 518, 275, 1765, 40, - 470, 152, 53, 89, 152, 484, 520, 1774, 152, 1776, - 290, 152, 355, 2612, 518, 460, 431, 518, 518, 421, - 519, 220, 518, 225, 300, 2976, 518, 225, 225, 80, - 297, 518, 40, 236, 518, 5, 5, 518, 2677, 325, - 3016, 359, 1774, 1114, 1776, 2735, 518, 518, 2699, 1816, - 518, 5, 5, 1820, 518, 5, 1823, 1824, 3489, 1760, - 518, 5, 3493, 2721, 147, 302, 384, 9, 518, 1770, - 518, 1772, 481, 1144, 1775, 104, 178, 519, 522, 162, - 1781, 522, 1783, 40, 167, 403, 220, 3246, 3101, 389, - 2848, 167, 287, 167, 145, 1796, 5, 1864, 285, 59, - 1801, 203, 431, 236, 1805, 1806, 1807, 1808, 93, 1810, - 1811, 1860, 518, 518, 522, 1882, 431, 3548, 59, 294, - 59, 266, 1889, 1890, 431, 108, 177, 431, 528, 222, - 431, 1898, 431, 480, 380, 218, 152, 100, 275, 241, - 199, 518, 40, 194, 275, 275, 275, 1914, 199, 275, - 518, 1918, 1919, 1224, 1921, 238, 1227, 1228, 152, 1926, - 1927, 1928, 1929, 1930, 1931, 1932, 3461, 172, 1935, 1936, - 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 353, 1987, - 520, 996, 357, 1950, 1951, 1993, 237, 1954, 13, 1956, - 522, 3204, 8, 295, 1961, 11, 1963, 519, 519, 15, - 16, 519, 518, 151, 287, 172, 519, 519, 519, 477, - 519, 519, 225, 296, 389, 225, 1983, 126, 127, 282, - 1987, 282, 1989, 518, 172, 518, 1993, 467, 520, 117, - 46, 522, 520, 518, 2001, 518, 3395, 53, 2005, 518, - 2007, 292, 2009, 1987, 2011, 518, 518, 39, 518, 1993, - 476, 9, 11, 2943, 2944, 3215, 429, 429, 518, 2931, - 355, 517, 528, 172, 80, 522, 527, 2034, 522, 280, - 518, 373, 178, 429, 431, 1987, 181, 163, 3437, 2046, - 2047, 1993, 172, 522, 172, 460, 2786, 1987, 996, 1360, - 1361, 788, 519, 1993, 1040, 457, 218, 203, 522, 227, - 266, 291, 392, 1987, 313, 522, 313, 522, 181, 1993, - 220, 519, 518, 227, 275, 227, 296, 2084, 470, 334, - 2087, 423, 819, 425, 288, 2092, 2093, 3486, 518, 145, - 152, 2122, 3073, 3, 152, 241, 518, 152, 518, 152, - 442, 480, 152, 394, 40, 275, 448, 844, 3, 451, - 2117, 2118, 3328, 522, 522, 2122, 290, 290, 40, 59, - 172, 177, 11, 40, 447, 167, 519, 315, 316, 317, - 519, 2138, 519, 1188, 2141, 2142, 2143, 181, 194, 519, - 518, 167, 1197, 199, 3, 39, 518, 3, 3270, 295, - 518, 516, 2159, 2160, 516, 892, 431, 431, 2142, 2166, - 431, 431, 2169, 519, 519, 517, 315, 316, 317, 519, - 527, 522, 2912, 148, 520, 519, 304, 172, 519, 2186, - 501, 237, 501, 519, 501, 2169, 518, 315, 316, 317, - 519, 1040, 2199, 516, 382, 431, 519, 520, 155, 519, - 477, 519, 2186, 518, 250, 518, 518, 518, 3461, 2216, - 2217, 502, 40, 59, 522, 507, 1040, 2169, 509, 510, - 511, 512, 513, 514, 503, 291, 2233, 291, 2235, 2169, - 454, 419, 522, 382, 2186, 244, 292, 1223, 59, 59, - 2181, 2248, 979, 266, 393, 2169, 2186, 275, 469, 152, - 518, 431, 989, 203, 382, 152, 152, 3464, 282, 2266, - 2267, 2268, 2186, 282, 452, 431, 415, 431, 74, 1580, - 419, 431, 431, 519, 80, 463, 518, 423, 518, 425, - 40, 1592, 355, 1594, 3182, 522, 519, 93, 288, 290, - 40, 419, 480, 480, 2266, 2267, 2268, 152, 2305, 526, - 280, 519, 448, 452, 2311, 451, 172, 518, 59, 186, - 1621, 117, 2343, 119, 463, 167, 504, 519, 80, 518, - 1144, 519, 172, 519, 452, 3054, 143, 1313, 519, 199, - 518, 480, 518, 516, 2332, 463, 2332, 2332, 394, 528, - 2347, 519, 519, 518, 2332, 2352, 522, 519, 519, 301, - 361, 518, 480, 522, 519, 504, 291, 181, 519, 152, - 176, 442, 519, 518, 522, 2372, 519, 1104, 519, 518, - 40, 519, 1427, 1428, 1223, 2347, 504, 1114, 1433, 520, - 2387, 2388, 518, 518, 86, 519, 518, 40, 40, 2396, - 518, 522, 172, 522, 457, 518, 479, 519, 1135, 1223, - 519, 207, 199, 519, 522, 517, 3256, 1144, 3258, 3296, - 40, 517, 519, 507, 1725, 1726, 519, 519, 519, 290, - 463, 2362, 59, 519, 2396, 117, 519, 2434, 519, 3268, - 60, 519, 480, 205, 40, 227, 518, 88, 192, 280, - 280, 520, 520, 520, 520, 520, 502, 431, 520, 520, - 2434, 520, 520, 509, 510, 511, 512, 513, 514, 520, - 520, 520, 431, 520, 1313, 40, 520, 2474, 517, 275, - 3271, 3452, 3273, 520, 280, 520, 106, 517, 1789, 1427, - 1428, 520, 2434, 2490, 2502, 1433, 520, 520, 1799, 1313, - 520, 1802, 275, 520, 2525, 520, 107, 507, 520, 3397, - 2507, 480, 520, 520, 520, 520, 2513, 2514, 3387, 290, - 2434, 3406, 520, 520, 520, 520, 519, 2566, 2525, 419, - 9, 354, 519, 329, 336, 519, 518, 518, 518, 518, - 2561, 518, 2539, 59, 522, 2542, 522, 2544, 519, 199, - 517, 347, 3381, 519, 2551, 2552, 176, 1533, 2555, 2556, - 192, 522, 91, 2560, 2561, 8, 462, 519, 11, 347, - 2567, 178, 15, 16, 518, 40, 19, 20, 21, 152, - 124, 520, 202, 519, 152, 2582, 40, 519, 369, 369, - 40, 2612, 519, 36, 518, 2592, 203, 1898, 7, 8, - 2580, 2580, 518, 40, 13, 522, 457, 2586, 2580, 2580, - 19, 2580, 2580, 518, 23, 2612, 25, 310, 280, 2580, - 29, 30, 31, 518, 249, 34, 442, 191, 37, 38, - 457, 251, 41, 74, 241, 44, 45, 518, 293, 74, - 80, 261, 9, 151, 1371, 519, 519, 518, 371, 519, - 133, 1627, 448, 273, 517, 517, 2653, 59, 273, 2656, - 2657, 457, 2659, 93, 172, 442, 75, 76, 507, 1714, - 40, 290, 293, 462, 2671, 518, 2673, 293, 519, 205, - 518, 290, 519, 389, 2615, 305, 519, 2618, 295, 122, - 290, 2653, 101, 519, 1533, 2657, 454, 2659, 368, 108, - 109, 110, 111, 112, 3434, 25, 148, 314, 36, 2730, - 2698, 368, 2698, 2698, 2645, 2694, 298, 2018, 2640, 1533, - 2698, 874, 1782, 2261, 2653, 3298, 2590, 3437, 3391, 2660, - 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 359, - 3538, 2936, 2375, 3412, 2723, 1889, 851, 3516, 3175, 3465, - 3474, 3509, 1210, 3232, 2254, 2267, 2753, 2778, 2712, 2756, - 3463, 3472, 2632, 2251, 384, 3460, 373, 2659, 1337, 2371, - 2370, 2331, 2396, 380, 3054, 1310, 2773, 2774, 2689, 222, - 2233, 2778, 1167, 403, 2781, 1013, 2199, 1750, 1627, 1765, - 1190, 1013, 2455, 3446, 2216, 1714, 1191, 3369, 3260, 1749, - 1193, 23, 2186, 1999, 3096, 2781, 991, 315, 316, 317, - 2433, 2808, 2434, 1627, 2482, 3196, 423, 2855, 425, 805, - 3373, 794, 2014, 1898, 1898, 1898, 2823, 3372, 1040, 2094, - 2514, 2200, 2829, 2830, 2142, 442, 2048, 2834, 2835, 1456, - 2824, 448, 2839, 989, 451, 2842, 2843, 2139, 2869, 292, - 2847, 2848, 3360, 2862, 2851, 989, 989, 989, 2855, 989, - 989, 2096, 989, 2535, 2580, 2862, 989, 3358, 789, 2007, - 1826, 892, 2173, 172, 382, 989, 1355, 1689, 2304, 2591, - 1690, 2855, 1927, 1928, 1929, 1930, 1931, 1932, 101, -1, - 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, - -1, -1, -1, 1247, -1, 2206, 2207, -1, -1, 2906, - -1, 419, -1, 2855, -1, -1, -1, 2914, -1, -1, - -1, -1, -1, -1, -1, 2855, 1765, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2933, -1, 1914, -1, - -1, 2855, -1, -1, 452, 2942, -1, -1, -1, -1, - 1926, 1765, -1, 1680, -1, 463, -1, 40, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, - 127, 41, 480, -1, -1, -1, -1, 60, -1, 2976, - 1956, -1, 2913, -1, -1, -1, -1, 1963, -1, 1927, - 1928, 1929, 1930, 1931, 1932, -1, 504, 1935, 1936, 1937, - 1938, 1939, 1940, 1941, 1942, 1943, 1944, -1, -1, -1, - 518, 1223, -1, 0, -1, 172, 315, 316, 317, -1, - -1, 3018, -1, 106, 107, 2001, 1753, 1754, -1, 2005, - -1, -1, -1, 20, 117, 2011, 23, -1, 108, -1, - 110, -1, 112, -1, -1, -1, 37, -1, -1, 3046, - 37, 42, 3073, -1, 3033, -1, 3018, 3054, 2034, 46, - 3057, 3058, 505, 506, 507, -1, 509, 510, 511, 512, - 513, 514, 2117, 2118, -1, 1914, 3073, -1, -1, -1, - -1, -1, -1, 382, -1, 1812, -1, 1926, 75, 76, - 77, -1, -1, 176, -1, -1, -1, -1, 1825, 1826, - 1914, 1313, -1, -1, 3101, -1, -1, -1, -1, 3106, - 101, -1, 1926, -1, 101, -1, -1, 1956, -1, 202, - 419, 3118, 3119, -1, 1963, 3122, -1, 3124, -1, -1, - -1, 540, -1, -1, -1, -1, 545, -1, -1, 548, - -1, -1, 1956, -1, -1, -1, -1, 556, -1, 1963, - -1, -1, 3149, 452, -1, -1, -1, -1, 315, 316, - 317, -1, 2001, -1, 463, -1, 2005, -1, 251, -1, - -1, 1898, 2011, -1, -1, -1, 3173, 1904, 261, 2117, - 2118, 480, 173, -1, -1, -1, -1, 2001, 2233, -1, - 273, 2005, 275, 2494, 2495, 2034, -1, 2011, -1, -1, - -1, -1, -1, -1, -1, 504, -1, 3204, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 209, 518, - 2034, -1, 305, -1, -1, 382, -1, -1, -1, 3226, - -1, -1, -1, -1, 225, -1, 393, -1, -1, -1, - -1, 0, 3221, -1, 235, -1, -1, -1, -1, 3246, - -1, -1, -1, 3184, -1, -1, -1, -1, 415, 3256, - -1, 3258, 419, 3260, 3226, -1, -1, 3264, -1, 3266, - -1, 3268, 3246, -1, 3205, 3206, 359, -1, 269, -1, - -1, -1, 3279, -1, -1, -1, -1, 3284, 37, 3286, - -1, -1, -1, 42, -1, 452, -1, 3294, 3229, 290, - -1, 384, -1, -1, 3246, -1, 463, -1, -1, -1, - 3307, -1, -1, -1, -1, 3312, 3295, -1, 3297, -1, - 403, 1533, 405, 480, 315, 408, -1, -1, -1, -1, - -1, 322, 3246, -1, -1, -1, -1, 746, 747, 748, - -1, 100, -1, -1, -1, 3307, -1, 504, -1, -1, - -1, -1, 101, -1, -1, 2656, -1, -1, 3337, -1, - -1, 518, 3359, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3369, 364, 3353, -1, 2352, -1, -1, 788, - 789, -1, -1, -1, 3381, 794, -1, 796, 147, -1, - -1, -1, 383, -1, -1, -1, 805, -1, 3395, -1, - 809, 810, -1, 162, -1, 814, 815, -1, 167, -1, - -1, -1, -1, 172, -1, 1627, 3413, -1, 827, 828, - 829, 3395, 181, 832, 173, -1, -1, 186, -1, -1, - -1, -1, -1, 842, 843, 518, 845, -1, 847, -1, - 3437, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 859, -1, -1, 3395, -1, 3452, 865, -1, -1, 218, - 209, 452, -1, 3437, 3461, -1, 3463, -1, 877, -1, - 540, -1, -1, -1, -1, 545, 225, -1, 548, 238, - -1, 3395, 891, 892, -1, -1, 235, -1, -1, 3486, - 2791, -1, -1, -1, -1, 3437, -1, -1, -1, 3478, - -1, 3463, -1, 3500, 3501, 3502, -1, -1, -1, -1, - 2555, 2556, 3486, 2352, 2490, -1, -1, 926, 927, 40, - 269, -1, -1, 3437, -1, 3504, 3457, -1, 287, 938, - 3527, 290, -1, 942, 943, 944, 945, 296, 2352, 60, - -1, -1, -1, -1, 3486, -1, 2273, -1, 13, 958, - -1, -1, 539, 1765, 19, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 30, 315, -1, -1, -1, - -1, 3568, 3486, 322, -1, 2551, -1, 336, -1, 44, - 45, 990, 991, -1, 993, 106, -1, 996, -1, -1, - -1, -1, -1, 1002, 1003, -1, -1, -1, 2325, 1008, - -1, -1, 361, -1, -1, 1014, -1, -1, -1, -1, - -1, -1, 1021, -1, -1, 364, 2343, 2555, 2556, -1, - -1, -1, 1031, -1, -1, -1, -1, -1, -1, -1, - 2931, -1, -1, -1, 383, 2936, -1, -1, -1, 1048, - -1, -1, -1, -1, 109, -1, -1, -1, -1, -1, - -1, 2490, -1, -1, -1, -1, -1, -1, -1, -1, - 419, 2388, -1, 55, -1, -1, -1, -1, -1, -1, - -1, 2398, -1, 2400, -1, -1, 2490, 2404, -1, 2406, - 2656, 202, 2983, 2984, -1, -1, -1, -1, 447, -1, - 1099, -1, -1, -1, -1, -1, -1, -1, 457, -1, - -1, 172, 1914, 452, -1, -1, -1, -1, 2753, -1, - 102, -1, 2551, -1, 1926, -1, -1, -1, 477, -1, - 479, 480, -1, -1, -1, -1, 796, -1, -1, -1, - 251, 123, -1, 2778, -1, -1, -1, 2551, -1, -1, - 261, 1150, -1, 1152, 1956, -1, -1, -1, -1, 141, - -1, 1963, 273, 145, -1, -1, -1, 516, 1167, 1168, - 519, 520, 521, -1, -1, 1174, 753, 754, -1, -1, - -1, -1, -1, -1, -1, -1, 168, -1, 2823, 171, - 2756, -1, -1, -1, 305, -1, -1, -1, 1197, 2001, - -1, -1, -1, 2005, -1, 187, -1, -1, -1, 2011, - 1209, 1210, -1, -1, -1, -1, -1, 794, -1, -1, - -1, -1, -1, 1222, -1, 2753, -1, 2656, 805, -1, - -1, 891, 2034, -1, 1040, -1, -1, 0, -1, -1, - 1239, -1, -1, 304, 1243, -1, -1, -1, 359, 1248, - 1040, -1, 2656, -1, 315, 316, 317, -1, -1, -1, - -1, -1, -1, 24, -1, -1, 926, -1, -1, 2835, - -1, -1, -1, 384, -1, -1, -1, 854, -1, 2914, - -1, -1, 942, 943, 944, 945, -1, 8, -1, -1, - 11, -1, 403, -1, 15, 16, -1, 874, 280, -1, - -1, 3192, 3193, -1, -1, -1, 288, 1306, -1, 1308, - -1, -1, -1, 3204, -1, -1, -1, -1, 1317, -1, - 81, 382, -1, -1, -1, 46, -1, 2756, 310, 1328, - -1, -1, 53, 993, -1, -1, 97, 100, 1337, 2656, - -1, -1, -1, 1342, -1, 1344, 1345, -1, 1347, 1348, - -1, -1, 2756, -1, -1, -1, -1, 339, 419, 80, - -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, - -1, -1, 2689, 15, 16, -1, 2942, 19, 20, 21, - -1, -1, -1, -1, 147, 146, 2914, -1, -1, -1, - -1, 452, -1, -1, -1, 156, -1, -1, -1, 162, - -1, -1, 463, -1, 167, 982, 2835, -1, 169, 172, - 2976, -1, -1, 174, -1, -1, -1, 1223, 181, 480, - -1, -1, 3057, 186, 145, -1, -1, -1, 1427, 1428, - -1, 2835, -1, 1223, 1433, -1, 1435, 1014, -1, -1, - -1, -1, 203, 504, 1021, -1, -1, -1, -1, 1448, - -1, 1450, 1451, -1, -1, 218, 177, 518, -1, 1458, - -1, 1460, -1, 1462, -1, -1, 1465, -1, -1, -1, - -1, 1470, -1, 194, 1473, 238, 1475, -1, 199, 1056, - 1479, -1, 1481, -1, 1483, 246, -1, -1, -1, 250, - -1, 1068, 3058, -1, -1, -1, -1, -1, -1, -1, - -1, 556, -1, -1, -1, -1, -1, 1313, -1, -1, - -1, -1, -1, 2942, -1, -1, 237, -1, 1095, -1, - -1, -1, -1, 1313, 287, -1, -1, 290, -1, 3057, - -1, -1, -1, 296, -1, 3101, -1, -1, 2942, -1, - -1, -1, 2859, -1, -1, -1, -1, 2976, -1, 1209, - 2352, -1, -1, 314, -1, -1, -1, 199, -1, 320, - -1, -1, 1222, -1, -1, -1, -1, -1, -1, -1, - 3461, 292, 2976, 336, 335, -1, -1, -1, -1, -1, - 222, -1, -1, 1243, -1, -1, -1, -1, -1, 1588, - -1, -1, -1, -1, -1, -1, -1, -1, 361, -1, - -1, 1600, -1, -1, 1181, 1182, -1, 1184, -1, 370, - -1, 1040, 373, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 384, -1, -1, 387, -1, -1, 3058, - -1, 3266, -1, -1, -1, -1, -1, -1, 3204, -1, - 1639, -1, -1, 1642, 405, -1, -1, -1, 1308, -1, - 292, -1, -1, -1, 3058, -1, 419, 1317, 419, -1, - -1, -1, -1, -1, 425, 426, -1, -1, -1, -1, - -1, -1, 3101, 394, -1, 436, -1, -1, -1, -1, - -1, 442, -1, -1, 447, -1, -1, 1686, 2490, 1688, - -1, 1690, 747, 748, 457, -1, -1, 3101, -1, -1, - -1, 1700, -1, 1702, -1, -1, -1, -1, -1, 470, - 3027, -1, -1, -1, 477, 1714, 479, 480, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1533, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3054, -1, -1, - 1739, -1, 1741, 1533, -1, -1, -1, -1, -1, 2551, - -1, -1, -1, 516, 1753, 1754, 519, 520, 521, -1, - 1759, 1760, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1770, 1771, 1772, 1773, 3204, 1775, 1354, -1, -1, - -1, 502, 1781, -1, 1783, -1, -1, -1, 509, 510, - 511, 512, 513, 514, 1223, -1, 1795, 1796, 1458, -1, - 3204, 1800, 1801, -1, -1, -1, 1805, 1806, 1807, 1808, - 865, 1810, 1811, -1, -1, -1, -1, -1, 3135, -1, - -1, 1627, -1, -1, -1, -1, -1, -1, 1827, -1, - -1, -1, -1, -1, -1, -1, 1835, 1627, 1837, 1838, - 1839, 1840, 1841, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2656, -1, -1, -1, -1, 1858, - -1, -1, -1, 505, 506, 507, -1, 509, 510, 511, - 512, 513, 514, -1, -1, -1, -1, -1, 1877, -1, - -1, -1, -1, 1460, 1313, 1462, -1, 3204, 1465, -1, - -1, -1, -1, 1470, -1, 3461, 1473, -1, 1475, -1, - -1, -1, 1479, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1927, 1928, - 1929, 1930, 1931, 1932, -1, -1, 1935, 1936, 1937, 1938, - 1939, 1940, 1941, 1942, 1943, 1944, -1, -1, -1, -1, - -1, -1, -1, 1008, 2756, -1, -1, -1, -1, 1765, - -1, -1, -1, -1, -1, -1, 1965, -1, -1, -1, - -1, -1, -1, -1, -1, 1765, 1031, -1, 1977, -1, - -1, -1, -1, -1, -1, 1562, -1, -1, 1987, -1, - -1, -1, -1, -1, 1993, -1, -1, -1, -1, -1, - 1999, -1, -1, -1, -1, 2004, -1, -1, -1, -1, - -1, -1, 3329, 100, 2013, 2014, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1688, -1, - 1690, -1, 3461, 2835, -1, -1, -1, -1, 8, -1, - 1700, 11, -1, -1, 1099, 15, 16, 17, 18, 19, - 20, 21, -1, -1, -1, -1, -1, 3461, -1, -1, - 147, -1, -1, -1, -1, 1642, 36, -1, -1, -1, - -1, -1, -1, -1, -1, 162, 46, -1, -1, 1739, - 167, -1, -1, 53, -1, 172, 2085, -1, -1, -1, - 2089, -1, -1, -1, 181, 2094, -1, -1, -1, 186, - -1, -1, -1, -1, 1533, -1, -1, -1, 1914, -1, - 80, -1, 1167, 1168, -1, -1, -1, -1, 2117, 2118, - 1926, -1, -1, -1, 1914, -1, -1, -1, -1, -1, - -1, 218, -1, -1, 1711, -1, 1926, 2136, 8, -1, - 2942, 11, -1, 2142, 3461, 15, 16, -1, -1, -1, - 1956, 238, 8, -1, -1, 11, -1, 1963, -1, 15, - 16, -1, -1, 19, 20, 21, 1956, -1, -1, -1, - 2169, -1, -1, 1963, 2976, -1, 46, 1837, 1838, 1839, - 1840, 1841, 2181, 53, -1, -1, -1, 2186, -1, -1, - -1, 2190, -1, -1, -1, 2001, -1, -1, 1627, 2005, - 287, -1, -1, 290, -1, 2011, -1, 177, -1, 296, - 80, 2001, -1, -1, -1, 2005, -1, -1, -1, -1, - -1, 2011, -1, -1, 194, -1, -1, -1, 2034, 199, - -1, 2230, -1, -1, 2233, -1, -1, 2236, -1, -1, - -1, -1, -1, -1, 2034, -1, -1, -1, -1, 336, - -1, -1, 222, 223, -1, -1, 3058, 2256, -1, -1, + 7, 521, 0, 0, 0, 0, 46, 0, 903, 16, + 0, 0, 0, 841, 73, 888, 23, 0, 0, 815, + 930, 38, 746, 7, 16, 999, 914, 0, 1256, 980, + 935, 1175, 1442, 1045, 1458, 754, 1682, 20, 20, 23, + 1230, 20, 965, 865, 77, 1244, 1217, 1242, 1222, 990, + 1611, 23, 1719, 990, 2217, 7, 77, 2186, 2207, 2188, + 1654, 1320, 1219, 1298, 37, 990, 1827, 1494, 75, 76, + 1210, 23, 969, 990, 1093, 0, 1599, 1573, 2276, 980, + 1635, 1636, 2363, 2714, 0, 0, 2675, 17, 2025, 0, + 1247, 75, 76, 1140, 111, 0, 2675, 1345, 1145, 0, + 45, 2712, 0, 75, 76, 2272, 903, 0, 905, 0, + 907, 2206, 0, 0, 2152, 2737, 0, 2730, 753, 747, + 1008, 754, 0, 75, 76, 2026, 34, 1101, 101, 2343, + 2542, 0, 2324, 2325, 2326, 0, 2629, 0, 0, 0, + 2633, 0, 0, 75, 76, 810, 0, 1067, 1068, 1686, + 0, 816, 5, 1845, 5, 1654, 0, 5, 13, 14, + 0, 40, 13, 14, 1084, 1737, 988, 0, 1849, 1846, + 5, 0, 1739, 1963, 5, 1999, 2000, 4, 13, 14, + 63, 997, 9, 10, 2844, 2355, 2010, 5, 5, 5, + 2014, 9, 5, 5, 5, 991, 9, 2364, 5, 5, + 1151, 13, 14, 63, 5, 3059, 13, 14, 5, 5, + 3045, 5, 13, 14, 5, 13, 14, 5, 5, 5, + 9, 778, 2355, 2351, 45, 82, 2349, 3062, 74, 37, + 4, 173, 139, 23, 42, 9, 93, 3, 4, 5, + 122, 55, 11, 9, 172, 45, 122, 16, 9, 124, + 100, 2418, 2419, 1265, 2421, 11, 191, 883, 63, 82, + 16, 980, 1274, 4, 860, 107, 172, 100, 9, 1157, + 93, 30, 119, 883, 1184, 90, 5, 46, 1100, 38, + 1231, 30, 104, 1234, 1235, 75, 76, 807, 3, 38, + 122, 11, 30, 101, 2945, 15, 16, 80, 178, 172, + 38, 1071, 1991, 1992, 1993, 2488, 63, 245, 2899, 3235, + 288, 80, 3015, 1457, 129, 291, 290, 1087, 122, 34, + 35, 296, 291, 169, 173, 64, 46, 992, 296, 3367, + 227, 213, 276, 137, 854, 74, 2591, 213, 2593, 1004, + 107, 2470, 245, 119, 106, 181, 382, 107, 983, 805, + 1494, 117, 117, 391, 1544, 53, 193, 30, 172, 181, + 80, 241, 117, 193, 166, 173, 368, 30, 1046, 11, + 3, 3430, 5, 15, 16, 120, 273, 1205, 1206, 132, + 1639, 13, 14, 40, 132, 2645, 41, 1209, 11, 164, + 40, 162, 15, 16, 108, 418, 2880, 120, 2882, 433, + 2592, 209, 3473, 409, 46, 250, 1933, 82, 480, 507, + 147, 3000, 359, 148, 2175, 1577, 11, 225, 93, 290, + 518, 1331, 3460, 3054, 1586, 3463, 3261, 235, 313, 1302, + 275, 164, 504, 456, 3065, 373, 191, 1964, 80, 3164, + 290, 3166, 389, 11, 341, 3056, 2644, 15, 16, 483, + 195, 273, 245, 219, 2617, 1360, 171, 290, 173, 132, + 309, 269, 3521, 189, 190, 200, 472, 238, 273, 132, + 373, 126, 195, 1151, 2641, 241, 2643, 360, 192, 177, + 518, 218, 26, 329, 369, 80, 522, 3558, 32, 251, + 794, 2751, 2530, 308, 26, 392, 194, 272, 231, 261, + 360, 199, 241, 431, 280, 108, 273, 315, 812, 485, + 454, 361, 3366, 451, 322, 280, 518, 1776, 3556, 176, + 275, 358, 324, 3397, 328, 355, 176, 275, 361, 2784, + 3233, 1550, 285, 259, 260, 167, 13, 285, 2099, 237, + 518, 3192, 19, 423, 518, 425, 395, 522, 451, 518, + 75, 280, 1230, 30, 522, 360, 364, 454, 431, 296, + 3211, 3286, 1018, 469, 2158, 108, 539, 44, 45, 476, + 3496, 451, 454, 2743, 431, 383, 518, 419, 454, 507, + 518, 1207, 457, 518, 389, 1181, 593, 3178, 1108, 1509, + 1510, 2018, 520, 137, 2761, 416, 1831, 1207, 2726, 1770, + 2723, 593, 448, 360, 3088, 137, 428, 3461, 431, 424, + 2743, 1168, 459, 373, 1534, 518, 416, 2800, 1434, 1435, + 1344, 457, 454, 184, 1440, 1349, 1448, 3462, 513, 2152, + 480, 1355, 109, 2570, 1462, 2190, 467, 3250, 2428, 522, + 399, 520, 1320, 1362, 452, 1893, 3235, 480, 3522, 3309, + 399, 2223, 378, 379, 518, 1483, 3235, 2224, 451, 2158, + 2484, 399, 522, 518, 2356, 518, 1925, 518, 1867, 519, + 518, 521, 1684, 2210, 1594, 1595, 527, 521, 1937, 527, + 1908, 521, 522, 518, 2361, 2366, 519, 518, 521, 518, + 3183, 482, 521, 2216, 482, 3188, 394, 524, 525, 516, + 518, 518, 518, 520, 518, 518, 518, 518, 1967, 2923, + 447, 518, 518, 504, 754, 1974, 504, 518, 2916, 3131, + 518, 518, 518, 1351, 518, 518, 1361, 518, 517, 1362, + 518, 518, 518, 516, 3365, 509, 510, 520, 279, 480, + 1628, 1629, 1630, 509, 510, 514, 1516, 754, 509, 510, + 294, 3373, 0, 468, 1576, 1577, 2015, 457, 514, 3372, + 2019, 3042, 294, 504, 1586, 805, 1536, 149, 509, 510, + 753, 753, 83, 406, 407, 754, 119, 33, 1600, 340, + 71, 72, 2471, 2472, 2473, 2474, 507, 794, 2023, 2048, + 1455, 511, 512, 513, 514, 812, 266, 5, 805, 520, + 1570, 227, 2897, 59, 8, 812, 419, 11, 369, 1631, + 794, 15, 16, 357, 457, 19, 20, 21, 518, 201, + 82, 805, 162, 513, 857, 357, 482, 359, 812, 888, + 520, 93, 1976, 805, 841, 842, 857, 148, 2775, 3325, + 3471, 3327, 794, 860, 3036, 389, 3457, 273, 504, 1800, + 517, 321, 521, 805, 203, 396, 523, 389, 865, 1810, + 812, 878, 1813, 1875, 207, 2903, 1544, 509, 510, 511, + 512, 513, 514, 805, 2018, 518, 3043, 875, 875, 875, + 875, 423, 875, 425, 863, 875, 875, 875, 511, 512, + 513, 514, 875, 875, 2488, 522, 2950, 997, 238, 245, + 1795, 245, 875, 3514, 2958, 912, 913, 3496, 2809, 916, + 917, 2812, 3562, 2814, 11, 3401, 460, 3496, 468, 516, + 4, 866, 2859, 520, 132, 9, 523, 1651, 2176, 2690, + 273, 2692, 275, 3423, 3424, 843, 844, 245, 846, 1986, + 848, 509, 510, 511, 512, 513, 514, 287, 1853, 46, + 875, 3582, 160, 3603, 214, 1828, 1829, 1830, 1909, 875, + 875, 1639, 969, 517, 875, 423, 392, 425, 1891, 523, + 875, 1768, 1895, 980, 875, 1898, 3257, 875, 1018, 275, + 987, 988, 875, 80, 875, 3475, 993, 875, 875, 996, + 997, 875, 999, 1000, 1001, 1002, 3194, 875, 1795, 74, + 983, 983, 2557, 1900, 794, 935, 875, 2530, 1909, 1016, + 875, 1018, 875, 875, 875, 805, 875, 875, 1815, 5, + 1027, 875, 812, 1820, 373, 3174, 245, 373, 454, 373, + 519, 341, 1016, 522, 1018, 384, 275, 1044, 1045, 1046, + 2450, 280, 117, 1027, 1016, 2469, 1018, 482, 82, 516, + 518, 513, 2192, 520, 2194, 1027, 259, 260, 520, 1066, + 1447, 1101, 1449, 1450, 1016, 373, 1018, 275, 162, 504, + 419, 4, 280, 167, 108, 1027, 9, 285, 1085, 556, + 263, 264, 1806, 518, 1016, 174, 1018, 1811, 292, 1096, + 1097, 1098, 2327, 1100, 1101, 1027, 1103, 1617, 1776, 518, + 339, 2300, 2246, 2599, 1204, 451, 8, 451, 516, 2368, + 2871, 1103, 520, 15, 16, 162, 30, 19, 20, 21, + 167, 470, 1938, 1939, 1940, 1941, 1942, 1943, 108, 1136, + 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, + 174, 4, 3340, 451, 238, 3082, 9, 1154, 1155, 355, + 1972, 2308, 2675, 345, 373, 1188, 1189, 246, 1191, 482, + 380, 174, 516, 59, 1181, 380, 520, 1188, 1189, 203, + 1191, 85, 518, 203, 518, 378, 379, 436, 1916, 345, + 94, 504, 1920, 1190, 419, 1923, 519, 1194, 1195, 522, + 1909, 238, 384, 287, 516, 518, 518, 1204, 1205, 1206, + 275, 2375, 1209, 470, 118, 280, 2800, 2381, 2182, 6, + 518, 380, 246, 10, 132, 480, 172, 482, 384, 843, + 844, 18, 846, 1230, 848, 252, 1016, 419, 1018, 1246, + 438, 519, 451, 246, 522, 32, 377, 1027, 2060, 36, + 287, 449, 160, 1023, 516, 2504, 518, 1925, 520, 1029, + 37, 1028, 518, 419, 329, 1032, 345, 132, 1265, 1937, + 518, 828, 829, 830, 167, 519, 833, 1274, 522, 511, + 519, 748, 347, 522, 518, 2836, 172, 191, 470, 519, + 178, 519, 522, 519, 522, 160, 522, 13, 14, 1967, + 204, 1298, 13, 14, 519, 384, 1974, 522, 423, 518, + 425, 505, 506, 507, 470, 509, 510, 511, 512, 513, + 514, 172, 519, 1320, 2187, 522, 2138, 2133, 2134, 519, + 518, 1319, 522, 1319, 1319, 519, 1319, 518, 522, 1336, + 419, 518, 345, 519, 1434, 1435, 522, 2015, 1345, 373, + 1440, 2019, 2486, 241, 1336, 519, 2490, 2025, 522, 519, + 384, 2778, 522, 13, 14, 1362, 2279, 275, 2281, 315, + 316, 317, 280, 519, 523, 519, 522, 285, 522, 518, + 2048, 384, 1379, 448, 13, 14, 3574, 1384, 1361, 1361, + 2903, 470, 457, 1362, 518, 419, 173, 1379, 519, 866, + 292, 522, 519, 13, 14, 522, 3559, 3526, 3561, 519, + 519, 519, 522, 522, 522, 280, 419, 423, 442, 425, + 285, 26, 3541, 13, 14, 519, 2675, 32, 522, 315, + 316, 317, 209, 2251, 1014, 37, 382, 1434, 1435, 1019, + 1020, 1021, 518, 1440, 519, 1442, 470, 522, 225, 3602, + 1447, 1448, 1449, 1450, 2354, 2282, 1036, 2284, 235, 519, + 1040, 519, 522, 518, 522, 1462, 1463, 470, 1442, 2658, + 25, 2689, 2657, 419, 1471, 519, 1473, 3596, 522, 1476, + 519, 2642, 3601, 522, 1481, 373, 1483, 1484, 519, 1486, + 518, 522, 2656, 1490, 2658, 504, 382, 1471, 224, 1473, + 1442, 405, 1476, 518, 408, 519, 452, 1481, 522, 1471, + 1484, 1473, 1486, 501, 1476, 519, 1490, 463, 522, 1481, + 519, 2706, 1484, 522, 1486, 520, 2535, 2536, 1490, 1471, + 438, 1473, 137, 419, 1476, 423, 2641, 425, 2643, 1481, + 519, 449, 1484, 522, 1486, 13, 14, 1544, 1490, 1471, + 40, 1473, 519, 519, 1476, 522, 522, 290, 519, 1481, + 115, 522, 1484, 451, 1486, 501, 452, 3318, 1490, 3320, + 60, 173, 518, 438, 880, 171, 882, 463, 2542, 1576, + 1577, 2512, 2513, 2514, 449, 2512, 1573, 364, 1585, 1586, + 1680, 2403, 522, 1573, 1573, 1573, 1593, 2512, 2513, 5, + 1573, 1573, 518, 1600, 2511, 519, 383, 209, 13, 14, + 1573, 13, 14, 505, 506, 507, 106, 509, 510, 511, + 512, 513, 514, 225, 13, 14, 172, 178, 519, 1626, + 1627, 295, 518, 235, 1631, 1725, 519, 1634, 13, 14, + 368, 369, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, + 1647, 1648, 203, 26, 518, 1652, 1653, 1654, 59, 32, + 1657, 420, 1442, 501, 1661, 224, 1648, 1664, 1665, 1666, + 1667, 1668, 1669, 1670, 1671, 1672, 13, 14, 1675, 152, + 1654, 353, 2396, 13, 14, 1682, 152, 1684, 152, 294, + 241, 1471, 3328, 1473, 152, 2404, 1476, 13, 14, 1722, + 2368, 1481, 13, 14, 1484, 1702, 1486, 1174, 13, 14, + 1490, 1722, 202, 13, 14, 13, 14, 2966, 13, 14, + 126, 127, 3235, 13, 14, 13, 14, 152, 1725, 419, + 2608, 1700, 13, 14, 40, 147, 13, 14, 519, 1736, + 1737, 13, 14, 518, 295, 13, 14, 275, 353, 40, + 162, 470, 357, 368, 369, 167, 2917, 368, 369, 368, + 369, 251, 364, 89, 137, 152, 172, 484, 2574, 2575, + 152, 261, 26, 462, 463, 2964, 2386, 2387, 32, 1776, + 520, 383, 152, 273, 389, 378, 379, 152, 1785, 290, + 1787, 3536, 3537, 3568, 3569, 1154, 1155, 2258, 2259, 355, + 431, 519, 421, 1785, 518, 1787, 218, 220, 518, 518, + 518, 225, 26, 2631, 300, 305, 518, 225, 32, 518, + 3000, 225, 3040, 2718, 40, 297, 238, 236, 5, 5, + 1827, 518, 518, 2696, 1831, 518, 2504, 1834, 1835, 518, + 2740, 2754, 325, 518, 5, 5, 5, 518, 1938, 1939, + 1940, 1941, 1942, 1943, 5, 460, 1946, 1947, 1948, 1949, + 1950, 1951, 1952, 1953, 1954, 1955, 518, 3524, 9, 359, + 2872, 3528, 423, 518, 425, 287, 3125, 3277, 1875, 518, + 481, 302, 522, 137, 296, 1352, 26, 1354, 522, 104, + 40, 519, 32, 220, 384, 389, 1893, 448, 167, 287, + 451, 167, 2570, 1900, 1901, 285, 59, 40, 1871, 315, + 316, 317, 1909, 403, 26, 236, 431, 431, 518, 518, + 32, 294, 93, 137, 522, 59, 3583, 60, 1925, 59, + 266, 431, 1929, 1930, 431, 1932, 108, 523, 222, 431, + 1937, 1938, 1939, 1940, 1941, 1942, 1943, 431, 480, 1946, + 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 152, + 380, 100, 275, 199, 1961, 1962, 2772, 275, 1965, 518, + 1967, 275, 40, 106, 275, 1972, 382, 1974, 275, 518, + 353, 172, 152, 3496, 357, 520, 3235, 393, 13, 519, + 519, 172, 519, 519, 519, 477, 519, 137, 522, 1996, + 519, 518, 225, 519, 2001, 225, 2003, 2675, 282, 415, + 2007, 282, 518, 419, 2955, 518, 389, 522, 2015, 467, + 518, 520, 2019, 518, 2021, 137, 2023, 2001, 2025, 519, + 3430, 518, 520, 2007, 39, 447, 476, 518, 518, 2001, + 294, 518, 9, 2133, 2134, 2007, 452, 11, 429, 518, + 429, 2048, 355, 523, 2967, 2968, 517, 463, 429, 2001, + 522, 3246, 522, 2060, 2061, 2007, 518, 3481, 280, 202, + 431, 528, 3472, 181, 480, 147, 163, 172, 522, 2001, + 294, 519, 218, 37, 266, 2007, 522, 460, 42, 457, + 162, 2805, 227, 117, 291, 167, 392, 181, 504, 353, + 313, 2098, 313, 357, 522, 2102, 522, 2775, 2138, 220, + 2107, 2108, 518, 227, 227, 334, 519, 275, 251, 518, + 288, 3521, 296, 470, 518, 152, 3, 518, 261, 152, + 152, 152, 2938, 3097, 980, 389, 2133, 2134, 480, 353, + 273, 2138, 518, 357, 3362, 152, 218, 101, 172, 40, + 522, 275, 290, 522, 294, 3, 40, 2154, 290, 2249, + 2157, 2158, 2159, 59, 172, 11, 238, 3301, 40, 167, + 519, 519, 305, 519, 519, 389, 167, 518, 2175, 2176, + 518, 181, 294, 518, 2158, 2182, 3, 39, 2185, 3, + 431, 2859, 516, 516, 431, 517, 431, 431, 353, 519, + 519, 519, 519, 528, 148, 2202, 460, 522, 520, 519, + 519, 2185, 501, 353, 501, 287, 501, 357, 2215, 173, + 519, 2001, 2936, 2185, 296, 519, 359, 2007, 2202, 172, + 431, 155, 250, 788, 520, 2232, 2233, 519, 518, 518, + 2202, 353, 518, 2185, 477, 357, 460, 3496, 518, 389, + 40, 384, 2249, 518, 2251, 209, 59, 507, 522, 503, + 2202, 291, 291, 522, 0, 820, 454, 2264, 178, 244, + 403, 225, 59, 59, 1120, 3081, 266, 389, 275, 469, + 304, 235, 431, 152, 203, 2282, 2283, 2284, 518, 152, + 845, 315, 316, 317, 152, 282, 282, 519, 2966, 40, + 2282, 2283, 2284, 431, 1771, 1151, 431, 355, 431, 431, + 3499, 518, 3212, 518, 1781, 269, 1783, 519, 522, 1786, + 460, 290, 288, 480, 2321, 1792, 40, 1794, 152, 2359, + 2327, 241, 3000, 527, 280, 519, 290, 172, 893, 518, + 1807, 519, 59, 518, 186, 1812, 519, 167, 460, 1816, + 1817, 1818, 1819, 519, 1821, 1822, 80, 519, 382, 143, + 2348, 315, 2348, 2348, 100, 2348, 2363, 519, 322, 3078, + 516, 2368, 519, 199, 522, 447, 519, 522, 74, 172, + 301, 2363, 519, 361, 80, 1231, 291, 518, 1234, 1235, + 152, 2388, 518, 181, 523, 419, 176, 93, 442, 519, + 2910, 522, 518, 522, 314, 2185, 2403, 2404, 40, 519, + 364, 147, 519, 518, 3082, 2412, 519, 519, 519, 518, + 520, 117, 2202, 119, 518, 980, 162, 519, 452, 383, + 2412, 167, 522, 518, 86, 990, 172, 40, 40, 463, + 457, 522, 172, 518, 516, 181, 519, 519, 520, 519, + 186, 0, 3330, 2450, 199, 519, 480, 3125, 147, 479, + 517, 517, 522, 373, 519, 519, 519, 519, 463, 290, + 380, 20, 507, 162, 23, 3287, 2450, 3289, 167, 59, + 504, 3299, 218, 519, 2574, 2575, 519, 519, 37, 205, + 117, 2488, 480, 519, 518, 40, 227, 46, 452, 518, + 88, 192, 238, 457, 280, 280, 520, 2504, 2450, 2516, + 520, 207, 2542, 423, 520, 425, 3302, 520, 3304, 520, + 431, 1367, 1368, 3487, 2521, 431, 75, 76, 77, 218, + 2527, 2528, 3432, 517, 40, 520, 2585, 520, 520, 520, + 520, 451, 507, 520, 520, 2542, 520, 520, 520, 238, + 2580, 287, 101, 275, 290, 1110, 3441, 520, 520, 3422, + 296, 2558, 520, 520, 2561, 1120, 2563, 3235, 520, 520, + 520, 520, 520, 2570, 2571, 520, 517, 2574, 2575, 275, + 520, 520, 2579, 2580, 280, 520, 520, 1142, 520, 2586, + 520, 519, 519, 519, 107, 518, 1151, 3415, 287, 480, + 336, 2631, 518, 419, 2601, 290, 518, 296, 9, 518, + 354, 518, 2599, 336, 2611, 59, 519, 519, 522, 2599, + 2599, 2599, 522, 7, 8, 361, 2599, 2599, 199, 13, + 517, 519, 40, 329, 2631, 19, 2599, 522, 192, 23, + 522, 25, 2605, 462, 91, 29, 30, 31, 519, 347, + 34, 347, 60, 37, 38, 40, 518, 41, 152, 520, + 44, 45, 519, 124, 152, 40, 519, 369, 369, 40, + 2450, 40, 519, 518, 518, 2672, 457, 518, 2675, 2676, + 310, 2678, 2772, 419, 522, 518, 280, 249, 191, 457, + 2672, 75, 76, 2690, 2676, 2692, 2678, 74, 106, 442, + 37, 293, 74, 518, 80, 42, 9, 2797, 519, 519, + 518, 447, 371, 519, 59, 40, 517, 101, 517, 2749, + 93, 457, 133, 178, 108, 109, 110, 111, 112, 2717, + 2197, 2717, 2717, 507, 2717, 60, 273, 290, 442, 40, + 518, 477, 293, 479, 480, 1591, 293, 178, 203, 518, + 2713, 462, 448, 519, 519, 3469, 519, 1603, 447, 1605, + 205, 457, 290, 290, 101, 519, 389, 2797, 176, 122, + 454, 368, 203, 25, 148, 2772, 36, 368, 2775, 2742, + 516, 106, 107, 519, 520, 521, 241, 1633, 298, 875, + 2672, 1793, 117, 2277, 202, 2792, 2793, 2659, 3332, 2609, + 2797, 3472, 3426, 2800, 3573, 1900, 2960, 2391, 8, 852, + 241, 11, 3447, 3551, 3205, 15, 16, 3500, 151, 19, + 20, 21, 3509, 1378, 3544, 1217, 3263, 516, 3496, 2270, + 2827, 520, 2283, 3498, 3507, 2651, 173, 2731, 2267, 172, + 295, 3495, 1344, 251, 181, 2678, 2387, 2386, 2938, 2347, + 2847, 176, 1317, 261, 3078, 2249, 2853, 2854, 2412, 314, + 1174, 2858, 2859, 2893, 295, 273, 2863, 2215, 1197, 2866, + 2867, 1015, 209, 1015, 2871, 2872, 1761, 202, 2875, 2708, + 2469, 2232, 2879, 24, 3394, 3481, 1725, 3403, 225, 2886, + 1736, 1737, 3291, 1760, 23, 2202, 8, 305, 235, 11, + 2800, 2013, 3120, 15, 16, 2879, 1198, 19, 20, 21, + 992, 2378, 2450, 2449, 2496, 3226, 2966, 2879, 373, 990, + 1909, 2028, 1200, 990, 990, 380, 251, 990, 990, 990, + 3407, 990, 269, 2930, 1909, 1909, 261, 2879, 3406, 990, + 81, 2938, 373, 990, 2109, 2528, 2216, 2158, 273, 2062, + 275, 359, 2155, 290, 1800, 1463, 97, 2879, 2848, 2886, + 2957, 2111, 2554, 2599, 1810, 2850, 3392, 1813, 423, 2966, + 425, 789, 1362, 2021, 1837, 893, 384, 1700, 315, 2610, + 305, 1701, 315, 316, 317, 322, -1, 442, 2320, -1, + 539, 3081, 423, 448, 425, 403, 451, 1254, -1, 199, + -1, -1, -1, 3000, -1, 146, -1, -1, -1, -1, + -1, 442, -1, -1, -1, 156, -1, 448, -1, -1, + 451, -1, 222, -1, -1, -1, -1, 364, 169, -1, + -1, -1, -1, 174, 359, -1, 151, -1, -1, -1, + -1, -1, -1, -1, -1, 3042, 383, -1, -1, 382, + -1, -1, -1, -1, -1, -1, -1, 172, -1, 384, + 3042, -1, 203, 1909, -1, -1, -1, 3097, -1, -1, + -1, -1, -1, 3070, -1, -1, -1, -1, 403, -1, + 405, 3078, -1, 408, 3081, 3082, 419, 199, 8, -1, + -1, 11, 292, -1, 3057, 15, 16, -1, -1, 2879, + 3097, -1, -1, -1, -1, 246, -1, -1, -1, 250, + 222, -1, -1, -1, -1, 452, -1, -1, -1, 452, + 457, -1, -1, -1, -1, -1, 46, -1, 3125, -1, + 463, -1, -1, 53, 3131, -1, -1, 1692, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 480, -1, 1046, + -1, 3148, 3149, -1, -1, 3152, 540, 3154, -1, -1, + 80, 545, -1, -1, 548, -1, -1, 2634, -1, -1, + 2637, 504, 556, 314, -1, 172, -1, -1, -1, 320, + 292, -1, 3179, -1, -1, 518, 2032, -1, -1, -1, + -1, -1, -1, 518, 335, -1, -1, 2664, -1, -1, + 315, 316, 317, -1, 753, 754, 3203, 3297, -1, 1764, + 1765, -1, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, + 2687, 2688, -1, -1, -1, 145, -1, -1, -1, 370, + -1, -1, 373, -1, -1, -1, -1, -1, 3235, -1, + -1, -1, -1, 384, -1, 794, 387, -1, -1, -1, + -1, -1, -1, -1, -1, 1046, 805, 177, -1, -1, + 3257, -1, -1, 812, 405, -1, -1, 382, 1823, -1, + -1, -1, -1, -1, 194, 3257, -1, -1, 419, 199, + 3277, 1836, 1837, -1, 425, 426, -1, -1, -1, 3252, + 3287, -1, 3289, -1, 3291, 436, -1, -1, 3295, -1, + 3297, 442, 3299, 3277, 419, 505, 506, 507, 857, 509, + 510, 511, 512, 513, 514, -1, 3313, 237, 315, 316, + 317, 3318, -1, 3320, -1, -1, 875, -1, -1, 470, + -1, 3328, -1, 1230, -1, 3277, -1, 452, -1, -1, + -1, -1, -1, 2189, 3341, -1, -1, -1, 463, 3346, + -1, -1, -1, -1, 1909, -1, -1, -1, -1, 3341, + 1915, -1, 746, 747, 748, 480, 3329, -1, 3331, -1, + -1, 8, 292, -1, 11, -1, 2222, 2223, 15, 16, + -1, -1, 19, 20, 21, 382, 1046, -1, -1, 504, + -1, -1, -1, 505, 506, 507, 3393, 509, 510, 511, + 512, 513, 514, 518, 788, 789, 3403, -1, 3371, -1, + 794, -1, 796, -1, -1, -1, -1, -1, 3415, -1, + -1, 805, 419, 1320, 3387, 809, 810, -1, 812, -1, + -1, 815, 816, 3430, 983, -1, -1, -1, -1, 1230, + -1, -1, -1, -1, 828, 829, 830, -1, -1, 833, + -1, 3448, -1, -1, -1, 452, 3430, 841, 842, 843, + 844, -1, 846, -1, 848, -1, 463, 1016, -1, 1018, + 2937, -1, -1, -1, 394, 3472, 860, -1, 1027, -1, + -1, -1, 866, 480, -1, -1, -1, -1, 3430, -1, + 3487, -1, -1, -1, 878, -1, -1, 3277, 3472, 3496, + -1, 3498, -1, -1, -1, -1, -1, 504, 892, 893, + -1, 8, -1, 1062, 11, -1, 3498, -1, 15, 16, + -1, 518, -1, -1, 3521, 1074, -1, -1, -1, 1320, + 3472, -1, -1, -1, -1, -1, -1, -1, 3535, 3536, + 3537, -1, -1, 927, 928, -1, -1, 3521, -1, 46, + 3513, -1, 1101, -1, -1, 939, 53, -1, -1, 943, + 944, 945, 946, -1, 0, 3562, -1, -1, -1, -1, + 1230, -1, -1, -1, -1, 959, 3539, -1, -1, 3521, + -1, -1, 502, 80, -1, 222, -1, -1, -1, 509, + 510, 511, 512, 513, 514, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3603, 991, 992, -1, + 994, -1, -1, 997, 1046, -1, -1, -1, -1, 1003, + 1004, -1, -1, -1, -1, -1, 1010, -1, -1, -1, + -1, -1, 1016, -1, 1018, -1, -1, -1, -1, 1188, + 1189, -1, 1191, 1027, -1, -1, -1, 1544, 145, -1, + 3430, -1, -1, 1037, -1, 292, -1, -1, -1, -1, + 1320, -1, 2508, 2509, 100, -1, 8, -1, -1, 11, + 1054, 55, -1, 15, 16, -1, -1, 19, 20, 21, + 177, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, 3472, -1, 36, 15, 16, 194, -1, 19, + 20, 21, 199, -1, -1, -1, -1, -1, -1, -1, + -1, 147, -1, -1, -1, -1, 36, 8, 102, -1, + 11, 1105, -1, -1, 15, 16, 162, -1, -1, -1, + -1, 167, -1, -1, 2289, -1, 172, -1, -1, 123, + 237, 3521, 1639, -1, -1, 181, -1, 3214, -1, -1, + 186, -1, -1, 1544, -1, 46, -1, 141, -1, -1, + -1, 145, 53, -1, -1, -1, -1, -1, -1, 3236, + 3237, -1, -1, -1, 1158, -1, -1, -1, -1, -1, + -1, -1, 218, -1, 168, -1, 2341, 171, -1, 80, + 1174, 1175, -1, 3260, -1, 292, -1, 1181, 1230, -1, + -1, -1, 238, 187, 2359, -1, -1, -1, -1, -1, + -1, -1, 1361, -1, -1, -1, -1, -1, -1, -1, + 1204, 1205, 1206, -1, -1, -1, -1, -1, -1, 2675, + -1, -1, 1216, 1217, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1229, -1, -1, 1639, 2404, + -1, 287, 1046, -1, 290, -1, -1, -1, -1, 2414, + 296, 2416, 1246, -1, -1, 2420, 1250, 2422, 505, 506, + 507, 1255, 509, 510, 511, 512, 513, 514, -1, 1776, + 222, -1, -1, -1, 1544, -1, 177, -1, 1320, -1, + -1, -1, -1, -1, -1, -1, 280, 394, -1, -1, + 336, -1, 222, 194, 288, -1, -1, -1, 199, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1471, -1, 1473, 361, 310, 1476, -1, 1313, + -1, 1315, 1481, -1, -1, 1484, -1, 1486, -1, -1, + 1324, 1490, -1, -1, -1, 8, 237, -1, 11, -1, + 292, 1335, 15, 16, -1, 339, 19, 20, 21, -1, + 1344, -1, -1, -1, 2810, 1349, -1, 1351, 1352, -1, + 1354, 1355, 292, 36, -1, -1, -1, -1, -1, 1639, + -1, -1, -1, 419, -1, 1776, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 292, -1, -1, -1, 502, -1, -1, -1, -1, + -1, 447, 509, 510, 511, 512, 513, 514, -1, -1, + -1, 457, -1, -1, 1573, 3492, -1, -1, 1925, -1, + -1, -1, -1, -1, -1, -1, 1230, -1, -1, -1, + 1937, 477, -1, 479, 480, -1, -1, 1046, -1, -1, + 1434, 1435, -1, -1, -1, -1, 1440, -1, 1442, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1967, 1455, -1, 1457, 1458, -1, -1, 1974, 1462, 1463, + 516, 1465, -1, 519, 520, 521, -1, 1471, -1, 1473, + -1, -1, 1476, 172, -1, -1, -1, 1481, -1, 1483, + 1484, -1, 1486, 394, -1, 1654, 1490, -1, 1492, 2955, + 1494, -1, 1544, -1, 2960, -1, 1776, -1, 2015, -1, + 2675, -1, 2019, -1, -1, -1, 1320, -1, 2025, -1, + -1, -1, -1, -1, 1925, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1937, -1, -1, -1, + -1, 2048, -1, 2708, -1, -1, -1, -1, -1, 222, + -1, 3007, 3008, 505, 506, 507, -1, 509, 510, 511, + 512, 513, 514, 1722, -1, -1, 1967, -1, -1, -1, + -1, -1, -1, 1974, -1, 505, 506, 507, -1, 509, + 510, 511, 512, 513, 514, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1639, -1, -1, + -1, 502, -1, -1, -1, 1599, -1, -1, 509, 510, + 511, 512, 513, 514, 2015, 304, -1, 1611, 2019, 292, + -1, 1230, -1, -1, 2025, -1, 315, 316, 317, -1, + -1, -1, -1, -1, -1, 37, -1, -1, -1, 41, + -1, -1, -1, -1, -1, -1, -1, 2048, -1, -1, + -1, -1, -1, -1, -1, 1925, -1, 1651, -1, -1, + 1654, -1, -1, -1, -1, -1, -1, 1937, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, -1, -1, -1, 15, 16, -1, 1682, 19, + 20, 21, -1, 382, -1, -1, -1, 1967, -1, 101, + 1859, -1, -1, 1697, 1974, 1699, 108, 1701, 110, -1, + 112, 1320, 1871, -1, -1, -1, 46, 1711, 2883, 1713, + -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, + 419, 1725, -1, -1, 1776, -1, -1, -1, -1, -1, + 1544, -1, -1, -1, -1, 2015, -1, -1, -1, 2019, + 80, -1, -1, -1, -1, 2025, 1750, -1, 1752, -1, + -1, -1, -1, 452, -1, -1, 3222, 3223, -1, -1, + 1764, 1765, -1, -1, 463, -1, 1770, 1771, 2048, 3235, + -1, -1, -1, -1, -1, -1, -1, 1781, 1782, 1783, + 1784, 480, 1786, -1, -1, -1, -1, -1, 1792, -1, + 1794, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 1806, 1807, -1, 504, -1, 1811, 1812, -1, + -1, -1, 1816, 1817, 1818, 1819, -1, 1821, 1822, 518, + -1, -1, 505, 506, 507, 1639, 509, 510, 511, 512, + 513, 514, 2001, -1, 1838, -1, -1, 177, 2007, -1, + -1, -1, 1846, -1, 1848, 1849, 1850, 1851, 1852, -1, + -1, 2368, -1, -1, 194, -1, -1, -1, -1, 199, + -1, -1, -1, -1, -1, 1869, -1, -1, -1, -1, + -1, -1, -1, 1925, -1, -1, 3051, -1, -1, -1, + -1, -1, -1, -1, 1888, 1937, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, - -1, 1848, -1, -1, 361, 145, -1, -1, -1, -1, - -1, -1, -1, 1860, -1, -1, -1, -1, -1, 1344, - 1345, -1, 1347, -1, -1, -1, -1, -1, -1, 3101, - -1, -1, -1, -1, -1, 275, -1, 177, 278, -1, - -1, -1, -1, -1, -1, -1, -1, 1977, -1, -1, - -1, -1, 292, -1, 194, 295, -1, -1, 2327, 199, - -1, -1, 419, -1, -1, 2334, 1765, -1, -1, -1, - -1, -1, -1, 199, -1, -1, 2345, -1, -1, 2348, - 2349, 2350, 2351, -1, -1, -1, -1, -1, -1, -1, - 447, -1, -1, 2362, -1, 2364, 222, 237, 2367, -1, - 457, -1, -1, -1, -1, 2374, -1, -1, -1, -1, - -1, 2380, -1, -1, -1, -1, -1, -1, -1, -1, - 477, -1, 479, 480, -1, 1450, -1, -1, -1, -1, - -1, -1, 3204, 2402, 2403, -1, 2405, -1, -1, -1, - 1987, -1, -1, -1, -1, -1, 1993, -1, -1, -1, - -1, -1, 292, -1, 394, -1, 1481, -1, 1483, 516, - -1, -1, 519, 520, 521, 2434, 292, -1, -1, -1, + -1, -1, -1, 3078, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1967, -1, -1, -1, -1, + -1, -1, 1974, -1, -1, 1544, -1, -1, -1, -1, + -1, -1, -1, -1, 1938, 1939, 1940, 1941, 1942, 1943, + -1, -1, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, + 1954, 1955, 292, -1, -1, -1, -1, 2368, -1, -1, + -1, -1, 1776, 2015, -1, -1, -1, 2019, -1, 2138, + -1, -1, 1976, 2025, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1990, 2504, -1, 2158, + 3165, -1, -1, -1, -1, -1, 2048, 2001, -1, 8, + -1, -1, 11, 2007, -1, 2174, 15, 16, 37, 2013, + 19, 20, 21, 42, 2018, -1, 2185, -1, -1, -1, + 1639, -1, -1, 2027, 2028, -1, -1, 36, -1, -1, + 3496, -1, 997, 2202, -1, -1, -1, -1, -1, -1, + -1, -1, 0, -1, -1, 13, -1, -1, -1, -1, + -1, 19, -1, 2570, 394, 23, -1, -1, -1, -1, + 3235, -1, 30, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 101, -1, -1, -1, 44, 45, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2368, -1, + -1, -1, -1, 2504, -1, 2099, -1, -1, -1, -1, + 2104, -1, -1, -1, -1, 2109, -1, 75, 76, -1, + -1, 1925, -1, 8, -1, -1, 11, -1, -1, -1, + 15, 16, -1, 1937, 19, 20, 21, -1, 540, 2133, + 2134, -1, -1, 545, -1, -1, 548, -1, -1, -1, + -1, 109, 100, -1, 173, -1, -1, -1, 2152, -1, + -1, -1, -1, 1967, 2158, -1, -1, 1776, 2675, 2570, + 1974, -1, 502, -1, -1, 505, 506, 507, -1, 509, + 510, 511, 512, 513, 514, -1, -1, -1, -1, -1, + 209, 2185, -1, -1, -1, -1, -1, -1, 3363, 147, + 2359, -1, -1, 2197, -1, -1, 225, -1, 2202, -1, + -1, 2015, 2206, -1, 162, 2019, 235, -1, -1, 167, + -1, 2025, -1, 222, 172, -1, -1, -1, -1, -1, + -1, -1, -1, 181, 2504, -1, -1, -1, 186, -1, + 1195, -1, -1, -1, 2048, -1, -1, -1, -1, 1204, + 269, -1, 2246, -1, -1, 2249, -1, 2251, 2252, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2775, -1, + 218, 290, -1, -1, 2675, -1, -1, -1, 2272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2454, -1, -1, -1, -1, - -1, -1, -1, 2462, 2463, 2464, -1, -1, -1, -1, - -1, -1, -1, 2472, -1, 2474, -1, 2476, -1, -1, - -1, -1, -1, 2482, -1, 1914, -1, -1, 8, -1, - -1, 11, -1, -1, -1, 15, 16, 1926, -1, 19, - 20, 21, -1, 2502, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 36, 2516, -1, -1, - -1, -1, -1, -1, 394, -1, -1, 1956, -1, -1, - -1, -1, 502, -1, 1963, 505, 506, 507, -1, 509, - 510, 511, 512, 513, 514, 2122, 2352, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2555, 2556, 528, -1, - -1, -1, 2352, -1, -1, 2142, -1, -1, -1, -1, - -1, -1, 2001, -1, -1, -1, 2005, -1, -1, -1, - -1, 2158, 2011, -1, -1, 2584, -1, -1, -1, -1, - -1, 2590, 2169, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2034, -1, 2606, -1, 2186, - -1, 2610, -1, -1, -1, 2614, 2615, -1, -1, 2618, - -1, -1, -1, 2622, 2623, 2624, -1, 2626, -1, -1, - -1, -1, 502, -1, -1, -1, -1, -1, -1, 509, - 510, 511, 512, 513, 514, -1, 2645, -1, 2647, 505, - 506, 507, -1, 509, 510, 511, 512, 513, 514, 3461, - -1, 2660, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, - 2669, -1, -1, -1, 2334, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2490, -1, 1741, -1, -1, 2349, - 2350, 2351, -1, -1, 2693, -1, -1, -1, -1, -1, - 2490, 2700, 222, -1, 2364, 1760, -1, 2367, -1, -1, - -1, -1, -1, 2712, 2374, 1770, -1, 1772, -1, -1, - 1775, -1, -1, -1, -1, -1, 1781, -1, 1783, -1, - -1, -1, -1, 2732, -1, -1, -1, -1, -1, -1, - -1, 1796, -1, 2742, -1, 2551, 1801, -1, -1, -1, - 1805, 1806, 1807, 1808, 2753, 1810, 1811, -1, -1, -1, - 2759, 2551, -1, -1, -1, -1, 2343, 2766, 2767, 2768, - 2769, -1, 292, -1, -1, -1, -1, -1, -1, 2778, - -1, -1, 2781, -1, -1, -1, 2785, 2786, -1, -1, - -1, -1, -1, -1, -1, 2794, -1, -1, -1, -1, - -1, -1, 2462, 2463, 2464, -1, -1, -1, 98, 996, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - -1, 15, 16, 2822, -1, 2824, -1, 8, -1, -1, - 11, -1, -1, -1, 15, 16, 126, 127, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2656, -1, 46, -1, 2853, -1, 2855, -1, -1, 53, - -1, -1, 37, -1, -1, 46, 2656, 42, -1, -1, - 2869, -1, 53, -1, 2873, -1, -1, -1, -1, -1, - 2879, -1, 172, -1, 8, -1, 80, 11, -1, -1, - -1, 15, 16, -1, 2893, -1, -1, -1, -1, 80, - 2899, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1965, -1, -1, 2912, 2913, 2914, -1, -1, -1, -1, - -1, 2920, 46, 2352, -1, -1, 101, -1, -1, 53, - -1, -1, -1, -1, -1, -1, -1, -1, 2937, -1, - -1, -1, -1, -1, 1999, -1, 2606, -1, 2525, 2004, - 2756, 145, -1, -1, -1, -1, 80, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 2756, -1, -1, 8, - -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, - 19, 20, 21, 177, 2561, 505, 506, 507, -1, 509, - 510, 511, 512, 513, 514, -1, 177, 36, 173, -1, - 194, -1, -1, 2580, -1, 199, 181, 46, -1, 2586, - 1197, -1, -1, 194, 53, -1, 3015, -1, 199, -1, - 3019, 145, -1, -1, -1, 315, 316, 317, -1, 2835, - 2085, -1, -1, 3032, 209, 2612, -1, -1, -1, 2094, - 2700, 80, -1, 237, -1, 2835, -1, -1, -1, -1, - 225, 3050, -1, 177, -1, -1, 237, -1, 3057, -1, - 235, 2490, -1, -1, -1, -1, -1, -1, -1, -1, - 194, -1, -1, -1, 8, 199, -1, 11, -1, -1, - -1, 15, 16, -1, 3083, 19, 20, 21, -1, -1, - 3089, -1, 382, -1, 269, -1, -1, 3096, 292, -1, - -1, -1, 36, 393, -1, -1, 2766, 2767, 2768, 2769, - -1, 292, -1, 237, -1, 290, -1, 2694, -1, -1, - -1, -1, 2551, -1, -1, 415, 2181, -1, -1, 419, - -1, -1, 3131, -1, -1, -1, 2942, -1, 177, -1, - 315, -1, -1, -1, -1, -1, 2723, 322, -1, 439, - -1, -1, 2942, 2730, 3153, 194, -1, -1, -1, 3158, - 199, -1, 452, -1, -1, -1, -1, -1, 292, -1, - 2976, -1, -1, 463, -1, 2230, -1, -1, -1, -1, - -1, 2236, -1, 222, 223, 3184, 2976, -1, -1, 364, - 480, -1, -1, -1, -1, -1, -1, -1, 237, -1, - 394, 2778, -1, -1, -1, -1, 3205, 3206, 383, -1, - 840, 841, -1, 394, 504, -1, -1, -1, -1, -1, - -1, -1, -1, 3222, -1, 3224, -1, 2656, 518, -1, - 3229, -1, -1, -1, -1, -1, 275, -1, -1, 278, - 1427, 1428, -1, -1, 3243, -1, 1433, 3246, -1, -1, - -1, -1, 3058, 292, -1, -1, 295, -1, -1, -1, - 2920, -1, -1, -1, -1, -1, -1, 3266, 3058, -1, - 394, 3270, 3271, -1, 3273, -1, -1, 452, 2855, -1, - -1, 911, 457, -1, -1, 915, 916, -1, 222, -1, - -1, -1, 2869, -1, -1, 3101, -1, -1, -1, 3298, - -1, -1, -1, -1, -1, -1, 3305, 2362, 502, -1, - -1, 3101, -1, -1, -1, 509, 510, 511, 512, 513, - 514, 502, -1, -1, 505, 506, 507, 2756, 509, 510, - 511, 512, 513, 514, 8, -1, 3335, 11, 968, -1, - -1, 15, 16, -1, -1, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, 394, 986, -1, 292, -1, - -1, -1, 992, -1, -1, 995, -1, -1, 998, 999, - 1000, 1001, -1, -1, 3373, -1, -1, -1, 502, -1, - -1, -1, -1, -1, -1, 509, 510, 511, 512, 513, - 514, -1, -1, -1, -1, -1, 3395, -1, 3204, -1, - -1, -1, -1, -1, -1, -1, 2835, -1, 1038, 1039, - -1, -1, -1, -1, 3204, -1, -1, 2472, -1, -1, - -1, 2476, -1, 3422, -1, -1, -1, 2482, -1, -1, - 1060, -1, -1, -1, -1, 3434, 3435, -1, 3437, 3438, - -1, -1, -1, -1, -1, -1, -1, 3446, -1, 1079, - -1, -1, -1, -1, -1, -1, 3033, -1, 3457, -1, - 1090, 1091, 1092, 502, 1094, 1095, 505, 506, 507, -1, + 238, -1, -1, 292, -1, -1, 315, -1, -1, -1, + 2570, -1, -1, 322, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 1925, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2368, -1, 1937, -1, + -1, 3496, -1, -1, -1, -1, -1, 222, -1, 287, + -1, -1, 290, -1, -1, 364, -1, -1, 296, 2343, + -1, -1, 2859, -1, -1, -1, 2350, -1, 1967, -1, + -1, -1, -1, -1, 383, 1974, -1, 2361, -1, -1, + 2364, 2365, 2366, 2367, 2775, -1, -1, -1, -1, -1, + -1, -1, -1, 2542, 2378, -1, 2380, -1, 336, 2383, + -1, -1, -1, -1, 796, -1, 2390, -1, -1, -1, + -1, -1, 2396, -1, -1, 2675, 2015, 292, -1, -1, + 2019, -1, -1, 361, -1, -1, 2025, -1, -1, -1, + -1, 2580, -1, -1, 2418, 2419, -1, 2421, -1, -1, + -1, -1, -1, 452, -1, -1, -1, -1, -1, 2048, + 2599, -1, -1, -1, -1, -1, 2605, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 2450, -1, 2859, 2966, + -1, -1, 2504, -1, -1, -1, -1, -1, -1, -1, + -1, 419, 2631, -1, 2468, -1, -1, -1, -1, 1434, + 1435, -1, 2476, 2477, 2478, 1440, -1, -1, -1, -1, + 892, -1, 2486, 3000, 2488, -1, 2490, -1, -1, 447, + -1, -1, 2496, -1, -1, 2775, 505, 506, 507, 457, 509, 510, 511, 512, 513, 514, -1, -1, -1, -1, - 3479, 1668, -1, 522, -1, -1, -1, 3486, -1, -1, - -1, -1, -1, -1, -1, -1, 3073, -1, -1, 1129, + -1, -1, 2516, -1, -1, 927, -1, -1, 2570, 477, + -1, 479, 480, -1, -1, -1, 2530, -1, -1, -1, + -1, 943, 944, 945, 946, -1, -1, 2541, -1, -1, + -1, 2545, -1, -1, 2713, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2368, 2966, -1, -1, 516, -1, + -1, 519, 520, 521, -1, 3082, -1, -1, -1, -1, + 2574, 2575, -1, 2742, -1, -1, -1, -1, -1, 2859, + 2749, -1, 994, -1, -1, -1, -1, -1, 556, 3000, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2603, + -1, -1, -1, -1, -1, 2609, -1, -1, 3125, -1, + 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, + -1, 2625, -1, 2675, -1, 2629, -1, 2631, 2797, 2633, + 2634, -1, -1, 2637, -1, -1, -1, 2641, 2642, 2643, + -1, 2645, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 2664, -1, 2666, -1, -1, -1, -1, -1, -1, -1, + -1, 3082, -1, -1, -1, 2679, 2680, 2681, 2682, 2683, + 2684, 2685, 2686, 2687, 2688, -1, 2966, -1, -1, -1, + 2504, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2712, -1, + 2879, -1, -1, -1, 3125, 2719, -1, -1, 3235, -1, + 3000, -1, -1, 2775, 2893, 8, -1, 2731, 11, -1, + -1, -1, 15, 16, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 2751, -1, 2368, + -1, -1, -1, -1, -1, -1, 2570, 2761, -1, -1, + 1725, -1, -1, 46, -1, -1, -1, -1, 2772, -1, + 53, -1, -1, -1, 2778, -1, -1, -1, -1, 747, + 748, 2785, 2786, 2787, 2788, -1, -1, -1, -1, -1, + -1, -1, -1, 2797, -1, -1, 2800, 80, -1, -1, + 2804, 2805, 3082, -1, 1216, -1, -1, 2859, -1, 2813, + -1, -1, -1, -1, -1, -1, -1, 1229, -1, -1, + -1, -1, -1, -1, 3235, -1, -1, -1, -1, -1, + -1, -1, 2836, -1, -1, -1, -1, 805, 1250, 2843, + 2844, -1, -1, -1, 2848, 3125, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2675, 145, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2877, -1, 2879, -1, -1, -1, -1, + -1, -1, 2886, -1, -1, 2504, -1, -1, 3057, 2893, + -1, -1, -1, 2897, 177, -1, -1, -1, 866, 2903, + -1, -1, -1, 1315, -1, -1, -1, -1, -1, -1, + -1, 194, 1324, 2917, 2966, -1, 199, -1, -1, 2923, + -1, -1, -1, -1, -1, -1, -1, -1, 3097, -1, + -1, -1, 2936, 2937, 2938, -1, -1, -1, -1, -1, + 2944, -1, -1, -1, -1, -1, -1, -1, 3000, -1, + -1, 2570, -1, -1, 237, 3235, -1, 2961, -1, -1, + -1, 2775, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1938, 1939, 1940, 1941, 1942, 1943, 3496, + -1, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, + 1955, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3082, -1, -1, -1, -1, 3039, -1, -1, -1, 3043, + -1, -1, 1010, -1, -1, 2859, -1, -1, 1016, -1, + 1018, -1, 3056, 1465, -1, -1, 2675, -1, -1, 1027, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1037, + 3074, -1, -1, 3125, -1, -1, -1, 3081, -1, -1, + -1, -1, -1, 3252, -1, 3496, -1, -1, -1, 8, + -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, + 19, 20, 21, 3107, 3273, -1, -1, -1, -1, 3113, + -1, 394, -1, -1, -1, -1, 3120, 36, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 46, -1, -1, + -1, -1, -1, 3137, 53, -1, -1, 1105, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2966, -1, -1, -1, 2775, 3161, -1, -1, + 3329, 80, 3331, 8, -1, -1, 11, -1, 2133, 2134, + 15, 16, 17, 18, 19, 20, 21, -1, -1, 3183, + -1, -1, -1, 3235, 3188, -1, 3000, -1, -1, -1, + -1, 36, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 46, 3371, -1, -1, -1, 1174, 1175, 53, -1, + 3214, 126, 127, -1, -1, -1, 3496, -1, 3387, 502, + -1, -1, -1, -1, -1, -1, 509, 510, 511, 512, + 513, 514, 3236, 3237, -1, 80, -1, -1, -1, -1, + 2859, -1, -1, -1, -1, -1, -1, -1, -1, 3253, + -1, 3255, -1, -1, -1, -1, 3260, 172, 177, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3082, -1, + 3274, -1, -1, 3277, -1, 194, -1, -1, -1, -1, + 199, -1, -1, -1, 2249, -1, -1, 1699, -1, 1701, + -1, -1, -1, 3297, -1, 3299, -1, 3301, 3302, 1711, + 3304, -1, -1, 222, 223, 3309, -1, -1, -1, -1, + -1, 3125, -1, -1, -1, -1, -1, -1, 237, -1, + -1, -1, -1, -1, 3328, -1, -1, -1, 3332, -1, + -1, -1, 177, -1, -1, 3339, -1, -1, 1750, -1, + -1, -1, -1, -1, 3513, -1, -1, 2966, -1, 194, + -1, -1, -1, -1, 199, -1, 275, -1, -1, 278, + -1, -1, -1, -1, -1, 3369, -1, -1, -1, -1, + 3539, -1, -1, 292, -1, -1, 295, 222, 223, -1, + -1, 3000, -1, 1351, 1352, -1, 1354, -1, -1, -1, + -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, + 315, 316, 317, 3407, -1, -1, -1, -1, -1, -1, + 8, 3415, -1, 11, -1, -1, -1, 15, 16, -1, + -1, 3235, -1, -1, -1, -1, 3430, -1, -1, -1, + 275, -1, -1, 278, -1, -1, 1848, 1849, 1850, 1851, + 1852, -1, -1, -1, 3496, -1, -1, 292, 46, -1, + 295, -1, -1, 3457, -1, 53, -1, -1, -1, -1, + -1, -1, -1, 3082, -1, 3469, 3470, 382, 3472, 3473, + -1, -1, -1, -1, -1, 394, -1, 3481, 393, -1, + -1, -1, 80, -1, -1, -1, -1, -1, 3492, 1457, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 415, -1, -1, 1471, 419, 1473, 3125, -1, 1476, -1, + 3514, -1, -1, 1481, -1, -1, 1484, 3521, 1486, -1, + -1, -1, 1490, -1, 1492, -1, 1494, -1, -1, -1, + 68, 69, -1, -1, -1, -1, -1, 452, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 145, 463, 394, + -1, -1, -1, -1, 3558, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 480, -1, -1, -1, 3573, + -1, 109, 110, -1, -1, 113, 114, 8, 1990, 177, + 11, -1, -1, 502, 15, 16, 505, 506, 507, 504, + 509, 510, 511, 512, 513, 514, 194, -1, -1, -1, + -1, 199, -1, 518, 523, -1, -1, -1, -1, 2574, + 2575, -1, -1, -1, -1, 46, 3235, -1, -1, -1, + -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 841, 842, -1, -1, -1, 237, + -1, -1, -1, 1611, -1, -1, -1, -1, -1, 80, + -1, 189, 190, -1, -1, -1, -1, 502, -1, -1, + 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, + -1, -1, -1, -1, -1, -1, -1, 522, -1, -1, + -1, -1, 3496, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 292, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 912, -1, -1, -1, 916, + 917, -1, -1, -1, 145, 253, 254, 255, 256, 257, + 258, 259, 260, -1, -1, 263, 264, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 969, 194, -1, -1, -1, -1, 199, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 987, -1, -1, -1, 1752, -1, 993, -1, -1, 996, + -1, -1, 999, 1000, 1001, 1002, 394, -1, -1, 337, + 338, -1, -1, 1771, -1, -1, 237, 2772, -1, -1, + -1, -1, -1, 1781, -1, 1783, -1, -1, 1786, -1, + -1, -1, -1, -1, 1792, -1, 1794, -1, -1, -1, + -1, -1, 2797, -1, -1, -1, -1, 1044, 1045, 1807, + 378, 379, -1, -1, 1812, -1, -1, -1, 1816, 1817, + 1818, 1819, -1, 1821, 1822, 3, -1, -1, -1, 1066, + 8, 292, -1, 11, -1, -1, -1, 15, 16, 17, + 18, 19, 20, 21, -1, -1, -1, 3496, 1085, -1, + -1, -1, 2847, -1, -1, -1, -1, -1, 36, 1096, + 1097, 1098, 40, 1100, 1101, -1, -1, -1, 46, -1, + -1, -1, -1, -1, 502, 53, -1, -1, -1, -1, + -1, 509, 510, 511, 512, 513, 514, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1136, + -1, -1, 80, -1, -1, -1, 474, 475, 2350, -1, + -1, -1, -1, -1, -1, -1, -1, 1154, 1155, -1, + -1, -1, -1, 2365, 2366, 2367, -1, -1, -1, -1, + 498, 499, -1, 394, -1, -1, -1, -1, 2380, -1, + -1, 2383, -1, 2938, -1, -1, -1, -1, 2390, -1, + 518, -1, 8, 1190, -1, 11, -1, 1194, 1195, 15, + 16, 17, 18, 19, 20, 21, -1, 8, 1205, 1206, + 11, -1, 98, -1, 15, 16, -1, -1, 1976, -1, + 36, -1, -1, -1, 40, -1, -1, -1, -1, -1, + 46, -1, -1, -1, -1, -1, -1, 53, -1, 177, + 126, 127, -1, 2001, -1, 46, -1, -1, -1, 2007, + -1, -1, 53, -1, -1, 2013, 194, -1, -1, -1, + 2018, 199, -1, -1, 80, -1, -1, -1, 1265, -1, + -1, -1, -1, -1, 2476, 2477, 2478, 1274, -1, 80, + -1, 502, -1, -1, 222, 223, 172, -1, 509, 510, + 511, 512, 513, 514, -1, -1, -1, -1, -1, 237, + -1, 1298, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 8, -1, -1, 11, -1, -1, 3081, 15, 16, 17, + 18, 19, 20, 21, -1, -1, -1, 275, -1, -1, + 278, 2099, -1, -1, 145, -1, -1, -1, 36, -1, + -1, 2109, -1, -1, 292, -1, -1, 295, 46, -1, + -1, 177, -1, -1, -1, 53, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 177, -1, 194, -1, + -1, -1, -1, 199, -1, -1, -1, 1384, -1, -1, + -1, -1, 80, 194, -1, -1, -1, -1, 199, -1, + -1, -1, -1, -1, -1, -1, 222, 223, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 237, -1, 2625, -1, -1, -1, 2185, -1, 315, + 316, 317, -1, -1, -1, -1, 237, -1, -1, 2197, + -1, -1, -1, -1, 2202, -1, -1, -1, -1, -1, + 1447, -1, 1449, 1450, -1, -1, 394, -1, -1, 275, + -1, -1, 278, -1, -1, 1462, 1463, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 292, -1, -1, 295, + -1, -1, -1, -1, -1, -1, 1483, -1, 2246, 177, + -1, 292, -1, -1, 2252, -1, 382, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 194, 393, -1, -1, + -1, 199, -1, -1, -1, -1, -1, 2719, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 415, + -1, -1, -1, 419, 222, 223, -1, -1, -1, -1, + -1, -1, 3297, -1, -1, -1, -1, -1, -1, 237, + -1, -1, -1, 439, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 502, -1, 452, 505, 506, 507, + -1, 509, 510, 511, 512, 513, 514, 463, 394, -1, + -1, -1, -1, 2785, 2786, 2787, 2788, 275, 1585, -1, + 278, -1, -1, 394, 480, -1, 1593, -1, -1, -1, + -1, -1, -1, -1, 292, -1, -1, 295, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 504, -1, + 2378, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 1627, -1, 518, -1, -1, -1, -1, 1634, -1, -1, + -1, -1, -1, 1640, 1641, 1642, 1643, 1644, 1645, 1646, + 1647, -1, -1, -1, -1, 1652, 1653, -1, -1, -1, + 1657, -1, -1, -1, 1661, -1, -1, 1664, 1665, 1666, + 1667, 1668, 1669, 1670, 1671, 1672, -1, -1, 1675, -1, + -1, -1, -1, -1, -1, 1682, 502, 1684, -1, 505, + 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, + -1, 502, -1, 519, -1, 1702, 394, -1, 509, 510, + 511, 512, 513, 514, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 2486, -1, + -1, -1, 2490, -1, -1, -1, -1, -1, 2496, 1736, + 1737, -1, 2944, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 2541, -1, -1, -1, 2545, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 502, -1, -1, 505, 506, 507, + -1, 509, 510, 511, 512, 513, 514, -1, -1, -1, + 1827, 519, -1, -1, 1831, -1, -1, 1834, 1835, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2629, -1, -1, 8, 2633, 2634, 11, 1875, 2637, + -1, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 36, 1900, 1901, -1, 2664, -1, -1, -1, + -1, -1, 46, -1, -1, -1, -1, -1, -1, 53, + -1, 2679, 2680, 2681, 2682, 2683, 2684, 2685, 2686, 2687, + 2688, -1, 1929, 1930, -1, 1932, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, + -1, -1, 26, -1, -1, 0, -1, -1, 32, -1, + -1, -1, -1, -1, 1961, 1962, 40, -1, 1965, 26, + -1, -1, -1, -1, -1, 32, -1, 22, -1, -1, + -1, -1, -1, 40, -1, -1, 60, 32, -1, 34, + 35, -1, -1, -1, -1, -1, -1, -1, -1, 1996, + -1, -1, 47, 60, -1, -1, 2003, 52, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, + 2778, -1, -1, -1, 2021, -1, 2023, -1, -1, -1, + 75, -1, 106, -1, -1, -1, -1, -1, -1, 84, + -1, 86, -1, 177, -1, -1, 2804, -1, -1, 106, + -1, 3253, -1, 98, -1, 100, -1, -1, -1, -1, + 194, -1, -1, 137, 2061, 199, 111, -1, -1, -1, + -1, -1, 3274, -1, -1, -1, -1, -1, 2836, -1, + 137, 126, 127, 128, -1, -1, 2844, -1, 222, 223, + -1, -1, 137, -1, -1, -1, -1, -1, 143, -1, + -1, 2098, -1, 237, -1, 2102, 151, -1, 153, 154, + 2107, 2108, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2879, -1, 168, -1, -1, -1, 172, 202, -1, + -1, -1, -1, -1, -1, -1, -1, 3339, -1, -1, + -1, 275, -1, -1, 278, 202, -1, -1, -1, -1, + -1, -1, -1, 198, -1, -1, -1, 2154, 292, -1, + 2157, 295, 2159, -1, -1, -1, -1, 3369, -1, 214, + -1, -1, -1, -1, -1, -1, -1, 251, 2175, 2937, + -1, -1, -1, -1, -1, -1, -1, 261, -1, -1, + -1, -1, -1, -1, 251, 240, -1, -1, -1, 273, + -1, -1, -1, -1, 261, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 8, -1, 273, 11, 2215, -1, + 294, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, 305, -1, -1, -1, 2232, 2233, 294, -1, -1, + -1, -1, 36, -1, -1, -1, -1, -1, 305, -1, + -1, -1, 46, -1, 2251, -1, -1, -1, -1, 53, + 394, -1, -1, -1, -1, -1, -1, 2264, -1, -1, + 315, 316, 317, -1, -1, -1, -1, -1, 323, 353, + -1, 326, -1, 357, -1, 359, 80, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 353, -1, -1, -1, + 357, -1, 359, -1, -1, -1, -1, 997, -1, -1, + 384, -1, 357, -1, -1, 389, -1, -1, -1, -1, + -1, 366, -1, -1, 2321, -1, -1, 384, -1, 403, + 2327, -1, 389, -1, -1, -1, -1, 382, -1, -1, + -1, -1, -1, -1, 389, -1, 403, -1, 393, -1, + -1, -1, -1, -1, -1, 3113, -1, -1, 403, -1, + -1, -1, 3120, -1, -1, -1, -1, -1, 502, -1, + 415, 505, 506, 507, 419, 509, 510, 511, 512, 513, + 514, -1, -1, 177, -1, 519, 460, -1, -1, -1, + -1, 2388, -1, -1, 439, -1, -1, -1, -1, -1, + 194, -1, -1, 460, -1, 199, -1, 452, -1, -1, + 455, -1, -1, 458, -1, -1, -1, -1, 463, -1, + -1, -1, -1, -1, -1, 3183, -1, -1, 222, 223, + 3188, 1121, -1, -1, -1, 480, -1, 8, -1, -1, + 11, -1, -1, 237, 15, 16, 17, 18, 19, 20, + 21, -1, -1, -1, -1, -1, 3214, -1, -1, 504, + -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, + -1, -1, -1, 518, -1, 46, 521, -1, 3236, 3237, + 1170, 275, 53, -1, 278, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 292, -1, + -1, 295, 3260, -1, -1, -1, -1, -1, -1, 80, + -1, -1, -1, -1, 1204, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 2521, -1, -1, -1, -1, -1, + 2527, 2528, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3301, -1, 2542, -1, -1, -1, -1, + -1, 3309, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 2558, -1, -1, 2561, -1, 2563, -1, -1, 1259, + -1, -1, -1, -1, 2571, -1, -1, -1, -1, -1, + -1, -1, 2579, 2580, -1, -1, -1, -1, -1, 2586, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 2942, -1, -1, -1, 1147, 1148, -1, - -1, -1, -1, -1, 3523, -1, -1, 1714, -1, -1, - -1, -1, -1, -1, -1, -1, 26, -1, -1, 3538, - -1, -1, 32, -1, -1, -1, -1, 2976, 222, -1, - 40, -1, -1, 1183, -1, 2610, -1, 1187, 1188, 2614, - 2615, -1, 3222, 2618, -1, -1, -1, -1, 1198, 1199, - 60, 505, 506, 507, -1, 509, 510, 511, 512, 513, - 514, 8, -1, 3243, 11, -1, -1, -1, 15, 16, - 2645, -1, 19, 20, 21, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2660, 2661, 2662, 2663, 2664, - 2665, 2666, 2667, 2668, 2669, -1, 106, -1, 292, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1258, 3058, - -1, -1, -1, -1, -1, -1, -1, 1267, -1, -1, - -1, -1, -1, -1, 3221, 3305, -1, 137, -1, -1, - -1, -1, -1, -1, -1, 3461, -1, -1, -1, -1, - -1, 1291, -1, -1, -1, 3242, -1, -1, -1, -1, - -1, 3461, 3101, -1, -1, 3335, -1, -1, -1, -1, + 394, -1, -1, -1, 2601, -1, 177, -1, -1, -1, + -1, 1301, -1, -1, 2611, -1, -1, -1, 1308, -1, + -1, -1, -1, 194, -1, -1, -1, -1, 199, -1, + -1, -1, -1, -1, 2631, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 222, 223, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 237, -1, 1358, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2759, -1, -1, -1, -1, -1, - -1, -1, 202, -1, -1, -1, -1, -1, 3295, -1, - 3297, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2785, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1927, 1928, 1929, 1930, 1931, 1932, -1, 1377, 1935, 1936, - 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, -1, -1, - 3337, 251, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 261, -1, -1, 8, 3204, 3353, 11, -1, -1, - -1, 15, 16, 273, -1, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, 222, -1, -1, -1, -1, - -1, -1, 36, -1, 294, -1, -1, -1, -1, -1, - 1440, -1, 1442, 1443, -1, 305, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 1455, 1456, -1, -1, -1, + -1, -1, 1382, 2690, -1, 2692, -1, -1, -1, -1, + -1, -1, -1, -1, 275, -1, -1, 278, 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, - 514, -1, 1472, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 2913, -1, - -1, -1, -1, 353, -1, 292, -1, 357, -1, 359, + 514, 292, -1, -1, 295, 519, -1, -1, -1, -1, + -1, -1, -1, -1, 3492, -1, 81, -1, -1, -1, + 1430, -1, 1432, -1, 1434, 1435, -1, 1437, -1, -1, + 1440, -1, 97, 1443, -1, -1, 1446, -1, -1, -1, + -1, 1451, -1, -1, 1454, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, + 17, 18, 19, 20, 21, 2792, 2793, -1, -1, -1, + -1, 146, -1, -1, -1, -1, -1, 1497, -1, 36, + -1, 156, -1, -1, -1, -1, -1, -1, -1, 46, + -1, -1, -1, 394, 169, -1, 53, -1, -1, 174, + 2827, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 384, -1, -1, -1, -1, 389, - -1, 3478, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 403, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3504, -1, -1, - 2117, 2118, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8, -1, 1574, 11, -1, -1, -1, 15, - 16, -1, 1582, 19, 20, 21, -1, -1, -1, -1, + 2847, -1, -1, 80, -1, -1, 2853, 2854, 203, -1, + -1, 2858, -1, -1, -1, -1, 2863, -1, -1, 2866, + 2867, -1, -1, -1, 2871, 2872, -1, -1, 2875, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2886, + -1, 1581, -1, 3, -1, 5, -1, -1, -1, -1, + -1, 246, -1, -1, -1, 250, -1, 1597, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1607, 1608, 1609, + -1, -1, -1, -1, 1614, -1, -1, -1, 1618, -1, + -1, 502, -1, 2930, 505, 506, 507, -1, 509, 510, + 511, 512, 513, 514, -1, -1, -1, -1, 519, -1, + 177, -1, -1, -1, -1, -1, -1, -1, 68, 69, + 2957, -1, -1, -1, -1, -1, -1, 194, -1, -1, + -1, -1, 199, -1, -1, 320, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 68, 69, -1, -1, -1, + 335, 1681, -1, -1, -1, 222, 223, -1, -1, 109, + 110, -1, -1, 113, 114, -1, -1, -1, -1, -1, + 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 370, 109, 110, 373, 1719, + 113, 114, -1, -1, -1, -1, -1, -1, -1, 384, + -1, -1, 387, -1, -1, 1735, -1, -1, 275, -1, + 1740, 278, -1, -1, -1, -1, -1, -1, -1, -1, + 405, -1, -1, -1, -1, 292, -1, 1757, 295, -1, + -1, -1, -1, 3070, 419, -1, -1, -1, -1, 189, + 190, 426, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 436, -1, -1, -1, -1, -1, 442, -1, -1, + 3097, -1, -1, -1, -1, -1, 189, 190, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 46, -1, -1, -1, -1, -1, -1, 53, 222, -1, - -1, -1, 1622, -1, -1, -1, -1, -1, 1628, 1629, - 1630, 1631, 1632, 1633, 1634, 1635, -1, -1, -1, -1, - 1640, 1641, -1, -1, 80, 1645, 0, -1, -1, 1649, - -1, -1, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, - 1660, -1, 3461, 1663, 3089, -1, -1, -1, 22, -1, - 1670, 3096, 1672, -1, -1, -1, 2233, -1, 32, -1, - 34, 35, -1, -1, -1, -1, -1, -1, 292, -1, - -1, 1691, -1, 47, -1, -1, -1, -1, 52, -1, - -1, -1, -1, -1, -1, -1, -1, 61, 505, 506, - 507, -1, 509, 510, 511, 512, 513, 514, -1, -1, - -1, 75, -1, -1, -1, 1725, 1726, -1, 3153, -1, - 84, -1, 86, 3158, -1, -1, -1, -1, -1, -1, - -1, 177, -1, -1, 98, -1, 100, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 111, 194, 3184, - -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, - -1, -1, 126, 127, 128, -1, -1, -1, -1, -1, - 3205, 3206, -1, 137, -1, -1, 222, 223, -1, 143, - -1, -1, -1, -1, -1, -1, -1, 151, -1, 153, - 154, 237, -1, -1, 3229, -1, -1, 996, -1, -1, - -1, -1, -1, -1, 168, -1, 1816, -1, 172, -1, - 1820, -1, 3, 1823, 1824, -1, -1, 8, -1, -1, - 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, - 21, -1, 278, -1, 198, 3270, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 36, 292, -1, -1, 40, - 214, -1, -1, -1, 1864, 46, -1, -1, -1, -1, - -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 240, -1, -1, 1889, - 1890, -1, -1, -1, -1, -1, -1, -1, -1, 80, - -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, - 514, -1, -1, -1, -1, -1, -1, -1, 1918, 1919, - -1, 1921, -1, -1, -1, -1, 1115, -1, -1, -1, + -1, -1, -1, -1, -1, 470, -1, -1, -1, -1, + -1, -1, -1, -1, 3131, -1, -1, -1, -1, -1, + -1, -1, -1, 253, 254, 255, 256, 257, 258, 259, + 260, 3148, 3149, 263, 264, 3152, -1, 3154, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, + 253, 254, 255, 256, 257, 258, 259, 260, -1, -1, + 263, 264, 3179, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3203, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 1950, 1951, -1, -1, 1954, -1, -1, -1, 394, -1, - -1, 315, 316, 317, -1, -1, -1, -1, -1, 323, - -1, -1, 326, -1, 1163, -1, -1, -1, -1, -1, - -1, -1, -1, 1983, -1, -1, -1, -1, -1, 1989, - -1, -1, -1, -1, -1, -1, 177, -1, 2555, 2556, - 37, -1, -1, 357, -1, 42, -1, 2007, 1197, 2009, - -1, -1, 366, 194, -1, -1, -1, -1, 199, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 382, -1, - -1, -1, 3457, -1, -1, 389, -1, -1, -1, 393, - -1, 222, 223, -1, -1, -1, -1, 2047, -1, 403, - -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, - -1, 415, -1, 1252, 101, 419, 502, -1, -1, 505, - 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, - -1, -1, -1, -1, 2084, 439, -1, 2087, -1, -1, - -1, -1, 2092, 2093, 275, -1, -1, 278, 452, -1, - -1, 455, -1, -1, 458, 1294, -1, -1, -1, 463, - -1, 292, 1301, -1, 295, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, - -1, 26, -1, -1, -1, -1, 173, 32, 2138, -1, - -1, 2141, -1, 2143, -1, 40, -1, -1, -1, -1, - 504, -1, -1, -1, -1, -1, -1, -1, -1, 2159, - -1, -1, 1351, -1, 518, 60, -1, 521, -1, -1, - -1, -1, 209, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 1375, -1, 225, -1, - -1, -1, -1, -1, -1, -1, 2753, -1, 235, 2199, + -1, -1, -1, -1, -1, -1, -1, 337, 338, -1, + -1, -1, -1, -1, -1, -1, -1, 1927, -1, -1, + -1, -1, -1, -1, -1, 1935, 1936, -1, 1938, 1939, + 1940, 1941, 1942, 1943, 337, 338, 1946, 1947, 1948, 1949, + 1950, 1951, 1952, 1953, 1954, 1955, 1956, -1, 378, 379, + -1, -1, -1, -1, -1, 502, -1, -1, 505, 506, + 507, -1, 509, 510, 511, 512, 513, 514, -1, -1, + -1, -1, 519, -1, 3291, 378, 379, -1, 3295, -1, + 8, -1, 3299, 11, -1, -1, -1, 15, 16, 17, + 18, 19, 20, 21, -1, -1, 3313, -1, -1, -1, + -1, 3318, -1, 3320, -1, -1, -1, -1, 36, -1, + -1, 3328, -1, -1, -1, -1, -1, -1, 46, -1, + 8, -1, -1, 11, -1, 53, -1, 15, 16, 3346, + -1, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 474, 475, -1, -1, 36, -1, + -1, -1, 80, -1, 2064, -1, -1, 2067, 46, -1, + -1, -1, -1, -1, -1, 53, -1, -1, 498, 499, + -1, 474, 475, -1, -1, -1, 3393, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 3403, -1, -1, -1, + -1, -1, 80, -1, -1, 498, 499, -1, 3415, -1, + -1, -1, 2112, -1, -1, -1, 2116, -1, -1, -1, + 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, -1, -1, + -1, -1, -1, 2133, 2134, -1, 2136, 2137, -1, -1, + -1, 3448, -1, -1, -1, -1, -1, -1, -1, -1, + 2150, -1, -1, 2153, -1, -1, -1, -1, -1, 177, + -1, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169, + 2170, -1, -1, -1, -1, -1, 194, -1, -1, -1, + -1, 199, 8, -1, -1, 11, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, 2196, -1, -1, 177, + -1, -1, -1, -1, 222, 223, -1, -1, -1, -1, + 36, -1, -1, -1, -1, -1, 194, -1, -1, 237, + 46, 199, -1, -1, -1, -1, -1, 53, 3535, 3536, + 3537, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 222, 223, -1, -1, -1, 2249, + -1, -1, -1, -1, 80, 3562, -1, 275, -1, 237, + 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 292, -1, -1, 295, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 106, -1, 394, -1, -1, 2216, 2217, -1, -1, - -1, 2778, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 269, -1, 1423, 2235, 1425, -1, 1427, 1428, - -1, 1430, 137, -1, 1433, -1, -1, 1436, 2248, -1, - 1439, -1, -1, 290, -1, 1444, -1, -1, 1447, -1, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - -1, 15, 16, 17, 18, 19, 20, 21, 315, -1, - -1, -1, -1, -1, -1, 322, -1, -1, -1, -1, - -1, -1, 36, -1, -1, -1, 40, 1486, -1, -1, - -1, -1, 46, -1, -1, 2305, -1, 202, -1, 53, - -1, 2311, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 502, -1, -1, 505, 506, 507, 364, 509, 510, - 511, 512, 513, 514, -1, -1, 80, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 383, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 251, 2914, -1, -1, - -1, -1, -1, -1, -1, -1, 261, -1, -1, -1, - -1, -1, 2372, -1, -1, -1, -1, -1, 273, -1, - -1, 1570, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, 1586, -1, 294, - 15, 16, 17, 18, 19, 20, 21, 1596, 1597, 1598, - 305, -1, -1, -1, 1603, 452, -1, -1, 1607, -1, - 457, 36, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 46, -1, 177, -1, -1, -1, -1, 53, -1, + -1, -1, -1, -1, -1, -1, 3603, 275, -1, -1, + 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 292, -1, -1, 295, -1, -1, + -1, -1, 2322, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 2332, 2333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 194, -1, -1, -1, -1, 199, -1, -1, 353, -1, - -1, -1, 357, -1, 359, 80, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 222, 223, - 1669, -1, -1, -1, -1, -1, -1, -1, -1, 384, - -1, -1, -1, 237, 389, -1, -1, -1, -1, -1, - 3057, -1, -1, -1, -1, -1, -1, 2507, 403, -1, - -1, -1, -1, 2513, 2514, -1, -1, -1, -1, 1708, - -1, -1, -1, -1, -1, 2525, -1, -1, -1, -1, - -1, 275, -1, -1, 278, 1724, -1, -1, -1, 2539, - 1729, -1, 2542, -1, 2544, -1, -1, -1, 292, -1, - -1, 295, 2552, -1, -1, -1, -1, 1746, -1, -1, - 2560, 2561, 177, -1, -1, 460, -1, 2567, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, - -1, -1, 2582, -1, 199, -1, -1, -1, -1, -1, - 8, -1, 2592, 11, -1, -1, -1, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, 222, 223, -1, - -1, -1, 2612, -1, -1, -1, -1, -1, 36, -1, - -1, -1, 237, -1, -1, -1, -1, -1, 46, -1, - -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, - 8, -1, -1, 11, -1, -1, -1, 15, 16, -1, - 394, 19, 20, 21, -1, -1, -1, -1, -1, -1, - 275, -1, 80, 278, -1, -1, -1, -1, 36, -1, - -1, 2671, -1, 2673, -1, -1, -1, 292, 46, -1, - 295, -1, -1, -1, -1, 53, -1, -1, -1, -1, + -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, + -1, -1, -1, 199, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3266, - -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 1916, -1, -1, - -1, -1, -1, -1, -1, 1924, 1925, -1, 1927, 1928, - 1929, 1930, 1931, 1932, -1, -1, 1935, 1936, 1937, 1938, - 1939, 1940, 1941, 1942, 1943, 1944, 1945, -1, 502, 177, - -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, - 514, -1, -1, 2773, 2774, 519, 194, -1, -1, 394, - -1, 199, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 222, 223, -1, 2399, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 222, 223, -1, -1, 2808, 177, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 237, - -1, -1, -1, 2823, -1, -1, 194, -1, -1, 2829, - 2830, 199, -1, -1, 2834, -1, -1, -1, -1, 2839, - -1, -1, 2842, 2843, -1, -1, -1, 2847, 2848, -1, - -1, 2851, -1, -1, 222, 223, -1, 275, -1, -1, - 278, 2050, 2862, -1, 2053, -1, -1, -1, -1, 237, - -1, -1, -1, -1, 292, -1, -1, 295, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 502, -1, -1, - 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, - -1, -1, -1, -1, 519, -1, 2906, 275, -1, -1, - 278, 2100, -1, -1, -1, 2104, 2105, 2106, 2107, 2108, - 2109, 2110, 2111, -1, 292, -1, -1, 295, 2117, 2118, - -1, 2120, 2121, 2933, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2134, -1, -1, 2137, -1, - -1, -1, -1, -1, -1, -1, 2145, 2146, 2147, 2148, - 2149, 2150, 2151, 2152, 2153, 2154, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, - -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, - -1, 2180, 15, 16, 17, 18, 19, 20, 21, -1, + -1, 237, -1, -1, -1, -1, 394, -1, -1, -1, + -1, -1, -1, -1, -1, 2425, 2426, 2427, -1, -1, + 2430, 2431, 2432, 2433, 2434, 2435, -1, -1, -1, 2439, + 2440, 2441, 2442, 2443, 2444, 2445, 2446, 2447, 2448, 275, + -1, -1, 278, 2453, 2454, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 292, -1, -1, 295, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 2479, + -1, -1, -1, -1, 502, 2485, -1, 505, 506, 507, + -1, 509, 510, 511, 512, 513, 514, -1, -1, -1, + -1, 519, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 46, -1, -1, 394, -1, -1, -1, - 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2233, -1, 3046, -1, -1, -1, - -1, -1, 24, -1, -1, -1, -1, 80, -1, -1, + 2520, -1, -1, -1, 502, -1, -1, 505, 506, 507, + -1, 509, 510, 511, 512, 513, 514, 2537, -1, -1, + -1, -1, -1, 2543, -1, -1, -1, -1, -1, -1, + -1, 2551, 2552, -1, -1, -1, -1, -1, -1, 2559, + 2560, -1, -1, -1, -1, -1, -1, -1, 394, -1, + -1, -1, -1, 2573, 2574, 2575, 2576, -1, 2578, -1, + -1, -1, 2582, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, + -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 3073, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 502, -1, -1, 505, 506, 507, - -1, 509, 510, 511, 512, 513, 514, -1, -1, -1, - -1, 519, -1, -1, -1, -1, 3106, -1, -1, 81, - -1, -1, -1, -1, -1, -1, -1, 2306, 3118, 3119, - -1, -1, 3122, -1, 3124, 97, -1, 2316, 2317, -1, - -1, -1, -1, -1, 502, -1, -1, 505, 506, 507, - -1, 509, 510, 511, 512, 513, 514, -1, -1, 3149, - -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 36, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 46, -1, -1, -1, 2638, -1, + -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 194, -1, 3173, 146, -1, 199, -1, -1, -1, - -1, -1, -1, -1, 156, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 2383, -1, -1, 169, -1, 222, - 223, -1, 174, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, - 2409, 2410, 2411, -1, -1, 2414, 2415, 2416, 2417, 2418, - 2419, 203, -1, -1, 2423, 2424, 2425, 2426, 2427, 2428, - 2429, 2430, 2431, 2432, -1, -1, -1, -1, 2437, 2438, - -1, -1, 275, -1, -1, 278, -1, -1, -1, -1, - 3260, -1, -1, -1, 3264, -1, -1, -1, 3268, 292, - -1, -1, 295, -1, 246, -1, 2465, -1, 250, 3279, - -1, -1, 2471, -1, 3284, -1, 3286, -1, -1, -1, - 8, -1, -1, 11, 3294, -1, -1, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, - -1, -1, 3312, -1, -1, -1, -1, 2506, 36, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 46, -1, - -1, -1, -1, -1, 2523, 53, -1, 2526, -1, -1, - -1, -1, -1, 2532, 2533, -1, -1, -1, 320, -1, - -1, 2540, 2541, -1, -1, -1, -1, -1, -1, 3359, - -1, -1, 80, 335, -1, 2554, 2555, 2556, 2557, 3369, - 2559, 394, -1, -1, 2563, -1, -1, -1, -1, -1, - 8, 3381, -1, 11, -1, -1, -1, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, -1, 370, -1, - -1, 373, -1, -1, -1, -1, -1, -1, 36, -1, - -1, -1, 384, 3413, -1, 387, -1, -1, 46, -1, - -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, - 2619, -1, -1, 405, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 419, -1, -1, - -1, -1, 80, -1, 426, -1, -1, -1, -1, 177, - -1, -1, -1, -1, 436, -1, -1, -1, -1, -1, - 442, -1, -1, -1, -1, -1, 194, -1, -1, 502, - -1, 199, 505, 506, 507, -1, 509, 510, 511, 512, - 513, 514, -1, -1, -1, -1, 519, -1, 470, -1, - 3500, 3501, 3502, -1, 222, 223, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, -1, -1, 237, - 15, 16, 17, 18, 19, 20, 21, 3527, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, + -1, -1, -1, -1, -1, -1, 502, -1, -1, 505, + 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, + -1, 8, -1, 519, 11, -1, -1, -1, 15, 16, + 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, + 8, -1, -1, 11, -1, -1, 53, 15, 16, 17, + 18, 19, 20, 21, -1, -1, -1, -1, 8, -1, + 2750, 11, -1, -1, -1, 15, 16, -1, 36, 19, + 20, 21, -1, 80, -1, 177, -1, -1, 46, -1, + -1, -1, 2772, -1, -1, 53, 36, -1, -1, -1, + -1, -1, 194, -1, -1, -1, 46, 199, -1, -1, + -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, + -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, + 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, + 80, -1, -1, -1, -1, 237, -1, -1, 2828, -1, + 2830, -1, -1, -1, -1, -1, -1, -1, -1, 2839, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 36, 2731, -1, -1, -1, -1, -1, -1, 177, - -1, 46, -1, -1, -1, -1, -1, 275, 53, -1, - 278, -1, -1, -1, 2753, -1, 194, 3, 3568, 5, - -1, 199, -1, -1, 292, -1, -1, 295, -1, -1, - -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, + -1, -1, 2852, -1, -1, 2855, -1, 2857, -1, -1, + 177, 2861, -1, 275, 2864, 2865, 278, -1, 2868, 2869, + -1, -1, -1, -1, -1, -1, 2876, 194, -1, -1, + 292, -1, 199, 295, -1, 2885, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 177, + 2900, -1, -1, -1, -1, 222, 223, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 194, 177, -1, -1, + 237, 199, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 194, -1, -1, -1, 2938, 199, -1, -1, -1, -1, 222, 223, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 237, + -1, -1, -1, -1, -1, -1, -1, -1, 275, 237, + -1, 278, 222, 223, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 292, -1, 237, 295, -1, + -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 275, -1, -1, + 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 292, 275, -1, 295, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 2809, -1, 2811, -1, -1, -1, -1, -1, -1, 2818, - -1, -1, 68, 69, -1, -1, -1, -1, -1, 2828, - -1, -1, 2831, -1, 2833, -1, -1, 275, 2837, -1, - 278, 2840, 2841, -1, -1, 2844, 2845, -1, -1, -1, - -1, -1, -1, 2852, 292, -1, -1, 295, -1, -1, - -1, -1, 2861, 109, 110, -1, 394, 113, 114, -1, - -1, -1, 177, -1, -1, -1, -1, 2876, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, - -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, + -1, -1, 292, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 2914, -1, 222, 223, -1, - -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, - -1, -1, 237, 15, 16, 17, 18, 19, 20, 21, - -1, -1, -1, 189, 190, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 36, -1, 394, -1, -1, -1, - -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, - 275, 53, -1, 278, 502, -1, -1, 505, 506, 507, - -1, 509, 510, 511, 512, 513, 514, 292, -1, -1, - 295, 519, -1, -1, -1, -1, -1, -1, 80, -1, - -1, -1, -1, -1, -1, -1, -1, 253, 254, 255, - 256, 257, 258, 259, 260, -1, -1, 263, 264, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, + 3080, 3081, -1, -1, -1, -1, -1, -1, -1, -1, + 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, + 512, 513, 514, -1, -1, 3105, 3106, 519, -1, -1, + -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3129, + -1, -1, -1, -1, 394, -1, -1, -1, 3138, -1, + -1, -1, 3142, 3143, 3144, -1, -1, 3147, -1, -1, + 3150, 3151, -1, -1, -1, -1, -1, -1, -1, 3159, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3056, 3057, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 502, -1, -1, 505, 506, + 507, -1, 509, 510, 511, 512, 513, 514, -1, -1, + 3200, -1, 519, -1, -1, -1, 3206, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3219, -1, -1, -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, -1, -1, - -1, 519, 3081, 3082, -1, -1, -1, -1, -1, 394, - -1, 337, 338, -1, -1, 177, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 3105, -1, -1, -1, - 3109, -1, 194, 3112, 3113, 3114, -1, 199, 3117, -1, - -1, 3120, 3121, -1, -1, -1, -1, -1, -1, -1, - 3129, -1, 378, 379, -1, -1, -1, -1, -1, -1, - 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, + -1, 519, 502, -1, -1, 505, 506, 507, -1, 509, + 510, 511, 512, 513, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3170, -1, -1, -1, -1, -1, 3176, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3189, -1, -1, 275, -1, -1, 278, 502, -1, -1, - 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, - 292, -1, -1, 295, 519, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 474, 475, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 3279, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3248, - -1, -1, 498, 499, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3281, 3282, 3283, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3315, 3316, 3317, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 3301, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 394, -1, 3313, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3335, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 3347, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 3374, -1, -1, -1, -1, - -1, -1, -1, -1, 3383, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3408, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3418, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 3408, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, - 512, 513, 514, -1, 3433, -1, -1, 519, -1, -1, + -1, -1, -1, 3443, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3468, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 3476, -1, 22, - 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, -1, -1, -1, -1, -1, 39, -1, -1, 42, - 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 3530, 75, 76, 77, 78, 79, -1, 81, -1, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, -1, 120, 121, 122, - 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, - -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, - -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, - 163, 164, 165, 166, -1, 168, -1, 170, 171, -1, - 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, - 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, - 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, -1, 219, -1, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, - -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, - 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, -1, -1, -1, -1, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, - 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, - -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, - -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, 417, 418, -1, 420, 421, 422, - 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, - 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, - 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, - 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - -1, -1, -1, -1, -1, -1, 509, 510, 511, -1, - -1, -1, -1, 516, -1, 518, -1, -1, -1, -1, - 523, 524, 525, 526, -1, 528, 3, 4, 5, 6, - 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, - 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, - -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, - 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, - 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, - -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, - 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, - -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, 164, 165, 166, - -1, 168, -1, 170, 171, -1, 173, 174, 175, 176, - 177, 178, -1, 180, -1, 182, 183, 184, 185, -1, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, - -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, -1, 219, -1, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, -1, -1, 234, 235, 236, - 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, - -1, -1, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, - 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - 417, 418, -1, 420, 421, 422, 423, 424, 425, 426, - -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, - -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, - 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, - -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, -1, -1, -1, -1, - -1, -1, 509, 510, 511, -1, -1, -1, -1, 516, - -1, 518, -1, -1, -1, -1, 523, 524, 525, 526, - -1, 528, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, 39, -1, - -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, - 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, - 171, 172, 173, 174, 175, 176, 177, 178, -1, 180, - -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, -1, 200, - 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, -1, -1, 234, 235, 236, 237, -1, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, - -1, 292, 293, 294, -1, -1, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, 382, -1, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, 415, -1, 417, 418, 419, 420, - 421, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, - 451, 452, 453, 454, 455, 456, -1, 458, 459, 460, - 461, 462, 463, 464, 465, -1, 467, 468, 469, 470, - 471, 472, 473, 474, 475, -1, -1, 478, -1, 480, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 502, -1, 504, -1, -1, -1, -1, 509, 510, - 511, -1, -1, -1, -1, 516, -1, 518, 519, -1, - -1, -1, 523, 524, 525, 526, 3, 4, 5, 6, - 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, - 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, - -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, - 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, - 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, -1, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, -1, -1, 134, 135, 136, - 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, - -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, 164, 165, 166, - -1, 168, -1, 170, 171, 172, 173, 174, 175, 176, - 177, 178, -1, 180, -1, 182, 183, 184, 185, -1, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, - -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, -1, 219, -1, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, -1, -1, 234, 235, 236, - 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, - 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, - -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, -1, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, -1, 384, 385, 386, - 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, 415, -1, - 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, - -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - -1, -1, 449, 450, 451, 452, 453, 454, 455, 456, - -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, - 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, - -1, 478, -1, 480, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 502, -1, 504, -1, -1, - -1, -1, 509, 510, 511, -1, -1, -1, -1, 516, - -1, 518, -1, -1, -1, -1, 523, 524, 525, 526, - 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, -1, -1, -1, -1, -1, 39, -1, -1, 42, - 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, -1, 120, 121, 122, - 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, - -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, - -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, - 163, 164, 165, 166, -1, 168, -1, 170, 171, 172, - 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, - 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, - 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, -1, 219, -1, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, - -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, - 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, - 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, - -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, - 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, -1, -1, 449, 450, 451, 452, - 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, - 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, - 473, 474, 475, -1, -1, 478, -1, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, - -1, 504, -1, -1, -1, -1, 509, 510, 511, -1, - -1, -1, -1, 516, -1, 518, -1, -1, -1, -1, - 523, 524, 525, 526, 3, 4, 5, 6, 7, 8, + -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 3511, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 3565, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, 452, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, 504, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + 519, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, 172, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, 315, 316, 317, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, 382, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, 415, -1, 417, 418, 419, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, 452, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, 480, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + 504, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, 452, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, 504, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + -1, -1, -1, 37, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, 132, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, 519, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, -1, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, 172, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, 452, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, -1, -1, 504, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, 172, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, 233, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, 432, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, 37, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, 37, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, 519, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, -1, -1, -1, -1, 38, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, 37, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, 519, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, 37, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, 172, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + 519, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, 523, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, 477, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, 523, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, -1, -1, -1, 37, -1, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, @@ -12888,7 +14073,7 @@ static const yytype_int16 yycheck[] = 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, - 129, 130, 131, 132, -1, 134, 135, 136, 137, 138, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, @@ -12903,295 +14088,35 @@ static const yytype_int16 yycheck[] = 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, - 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, - -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, - 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, - 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, - -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, - 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, - 519, -1, -1, -1, 523, 524, 525, 526, 3, 4, - 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, - 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, - -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, -1, - 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, - 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, -1, 163, 164, - 165, 166, -1, 168, -1, 170, 171, 172, 173, 174, - 175, 176, 177, 178, -1, 180, -1, 182, 183, 184, - 185, -1, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, - 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, -1, 219, -1, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, -1, -1, 234, - 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, - -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, -1, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, -1, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, -1, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, -1, -1, 449, 450, 451, 452, 453, 454, - 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, - 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, - 475, -1, -1, 478, -1, 480, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, -1, -1, 504, - -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, - 10, 516, -1, 518, -1, -1, -1, -1, 523, 524, - 525, 526, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, 39, - -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, 171, 172, 173, 174, 175, 176, 177, 178, -1, - 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, -1, 233, 234, 235, 236, 237, -1, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, - -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, - 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, 432, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, - 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, - -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, -1, -1, -1, -1, -1, -1, 509, - 510, 511, -1, -1, -1, -1, 516, -1, 518, -1, - -1, -1, -1, 523, 524, 525, 526, 3, 4, 5, - 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, 37, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, -1, -1, -1, - -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, 37, -1, 39, -1, -1, - 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, - -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, - -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, -1, -1, -1, -1, -1, -1, 509, 510, 511, - -1, -1, -1, -1, 516, -1, 518, 519, -1, -1, - -1, 523, 524, 525, 526, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, -1, -1, -1, -1, - 38, 39, -1, -1, 42, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, - 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, -1, -1, -1, -1, -1, - -1, 509, 510, 511, -1, -1, -1, -1, 516, -1, - 518, -1, -1, -1, -1, 523, 524, 525, 526, 3, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, - -1, -1, -1, 37, -1, 39, -1, -1, 42, 43, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, @@ -13225,7 +14150,7 @@ static const yytype_int16 yycheck[] = 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, @@ -13239,217 +14164,165 @@ static const yytype_int16 yycheck[] = 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, - -1, -1, 516, -1, 518, 519, -1, -1, -1, 523, - 524, 525, 526, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, 37, -1, 39, - -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, - 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, - -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, - 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, -1, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, - 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, - -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, -1, -1, -1, -1, -1, -1, 509, - 510, 511, -1, -1, -1, -1, 516, -1, 518, -1, - -1, -1, -1, 523, 524, 525, 526, 3, 4, 5, - 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, -1, -1, - -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, -1, -1, -1, - -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, -1, -1, -1, -1, -1, 39, -1, -1, - 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, - -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, - -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, -1, -1, -1, -1, -1, -1, 509, 510, 511, - -1, -1, -1, -1, 516, -1, 518, -1, -1, -1, - -1, 523, 524, 525, 526, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, - -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, - 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, -1, -1, -1, -1, -1, - -1, 509, 510, 511, -1, -1, -1, -1, 516, -1, - 518, -1, -1, -1, -1, 523, 524, 525, 526, 3, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, + -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, @@ -13501,217 +14374,60 @@ static const yytype_int16 yycheck[] = 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, - -1, -1, 516, -1, 518, 519, -1, -1, -1, 523, - 524, 525, 526, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, 39, - -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, - 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, - -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, 419, - 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, -1, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, - 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, - -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, -1, -1, -1, -1, -1, -1, 509, - 510, 511, -1, -1, -1, -1, 516, -1, 518, -1, - -1, -1, -1, 523, 524, 525, 526, 3, 4, 5, - 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, 477, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, -1, -1, -1, - -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, -1, -1, -1, -1, -1, 39, -1, -1, - 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, - -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, - -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, -1, -1, -1, -1, -1, -1, 509, 510, 511, - -1, -1, -1, -1, 516, -1, 518, -1, -1, -1, - -1, 523, 524, 525, 526, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, - -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, - 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, -1, -1, -1, -1, -1, - -1, 509, 510, 511, -1, -1, -1, -1, 516, -1, - 518, -1, -1, -1, -1, 523, 524, 525, 526, 3, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, @@ -13723,7 +14439,7 @@ static const yytype_int16 yycheck[] = 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, @@ -13739,7 +14455,7 @@ static const yytype_int16 yycheck[] = 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, @@ -13761,220 +14477,63 @@ static const yytype_int16 yycheck[] = 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, - -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, - -1, -1, 516, -1, 518, -1, -1, -1, -1, 523, - 524, 525, 526, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, 39, - -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, - 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, - -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, - 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, -1, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, - 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, - -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, -1, -1, -1, -1, -1, -1, 509, - 510, 511, -1, -1, -1, -1, 516, -1, 518, -1, - -1, -1, -1, 523, 524, 525, 526, 3, 4, 5, - 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, -1, -1, -1, - -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, -1, -1, 39, -1, -1, - 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, - -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, - -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 502, -1, -1, -1, -1, -1, -1, 509, 510, 511, - -1, -1, -1, -1, 516, -1, 518, -1, -1, -1, - -1, 523, 524, 525, 526, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, - -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, - 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, - 278, 279, 280, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, -1, -1, -1, -1, -1, - -1, 509, 510, 511, -1, -1, -1, -1, 516, -1, - 518, -1, -1, -1, -1, 523, 524, 525, 526, 3, - 4, 5, 6, 7, 8, 9, 10, -1, -1, -1, + 494, 495, 496, 497, 498, 499, 500, 501, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, -1, -1, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 502, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, @@ -13985,7 +14544,7 @@ static const yytype_int16 yycheck[] = 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, -1, 120, 121, 122, 123, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, @@ -14001,7 +14560,7 @@ static const yytype_int16 yycheck[] = 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, + 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, @@ -14023,219 +14582,167 @@ static const yytype_int16 yycheck[] = 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 502, -1, - -1, -1, -1, -1, -1, 509, 510, 511, -1, -1, - -1, -1, 516, -1, 518, -1, -1, -1, -1, 523, - 524, 525, 526, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, 39, - -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, - 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, - 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, - -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, - 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, -1, 433, 434, 435, 436, 437, 438, 439, - 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, - 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, - -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 502, -1, -1, -1, -1, -1, -1, 509, - 510, 511, -1, -1, -1, -1, 516, -1, 518, -1, - -1, -1, -1, 523, 524, 525, 526, 3, 4, 5, - 6, 7, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 502, -1, -1, -1, - -1, -1, -1, 509, 510, 511, -1, -1, -1, -1, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 3, 4, 5, 6, 7, 8, 9, 10, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, -1, -1, 39, -1, -1, - 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, - -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, - -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, -1, 276, 277, 278, 279, 280, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - -1, -1, -1, -1, -1, -1, -1, 509, 510, -1, - -1, -1, -1, -1, 516, -1, 518, -1, -1, -1, - -1, 523, 524, 525, 526, 3, 4, 5, 6, 7, - 8, 9, 10, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, - -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, - 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, -1, -1, 224, 225, 226, 227, - 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, - -1, 279, 280, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, - 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 502, -1, -1, -1, -1, -1, - -1, 509, 510, 511, -1, -1, -1, -1, 516, -1, - 518, -1, -1, -1, -1, 523, 524, 525, 526, 3, + 494, 495, 496, 497, 498, 499, 500, 501, -1, -1, + -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, -1, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, -1, -1, -1, -1, -1, -1, -1, + 509, 510, -1, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, + 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, 181, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + 274, -1, 276, 277, 278, 279, 280, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, -1, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 516, -1, 518, + -1, -1, -1, -1, -1, 524, 525, 526, 527, 3, 4, 5, 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, @@ -14286,10 +14793,112 @@ static const yytype_int16 yycheck[] = 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, -1, -1, - -1, -1, -1, -1, -1, 509, 510, -1, -1, -1, - -1, -1, 516, -1, 518, -1, -1, -1, -1, 523, - 524, 525, 526, 3, 4, 5, 6, 7, 8, 9, - 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 516, -1, 518, -1, -1, -1, -1, -1, + 524, 525, 526, 527, 3, 4, 5, 6, 7, 8, + 9, 10, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, -1, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, -1, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, -1, -1, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, -1, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, -1, + 279, 280, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, -1, -1, -1, -1, -1, -1, -1, + 509, 510, 511, -1, 3, 4, 5, 516, -1, 518, + 9, -1, -1, -1, -1, 524, 525, 526, 527, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, 37, -1, + -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, + 289, 290, -1, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, -1, -1, -1, -1, -1, -1, -1, + 509, 510, 511, 3, -1, -1, -1, 516, -1, 518, + 10, -1, -1, -1, -1, -1, -1, -1, 527, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, @@ -14304,19 +14913,19 @@ static const yytype_int16 yycheck[] = 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, -1, 163, 164, 165, 166, -1, 168, -1, + -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, -1, 223, 224, 225, 226, 227, 228, 229, + -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, -1, 288, 289, + -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, @@ -14331,225 +14940,421 @@ static const yytype_int16 yycheck[] = 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, -1, 433, 434, 435, 436, 437, 438, 439, + 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, -1, -1, -1, -1, -1, -1, -1, 509, - 510, -1, -1, -1, -1, -1, 516, -1, 518, -1, - -1, -1, -1, 523, 524, 525, 526, 3, 4, 5, - 6, 7, -1, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, 181, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, -1, 9, 10, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, 39, -1, - -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, - 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, - 171, -1, 173, 174, 175, 176, 177, 178, -1, 180, - -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, - 191, 192, 193, 194, 195, 196, 197, 198, -1, 200, - 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, - 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, - 231, -1, -1, 234, 235, 236, 237, -1, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, -1, 276, 277, 278, 279, 280, - 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, - -1, 292, 293, 294, -1, -1, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, - 391, 392, -1, 394, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, - 421, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, - 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, - 461, 462, 463, 464, 465, -1, 467, 468, 469, 470, - 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, -1, -1, -1, -1, -1, -1, 3, 4, 5, - 6, 7, -1, 9, 10, 516, -1, 518, -1, -1, - -1, -1, 523, 524, 525, 526, 22, 23, 24, 25, + 500, 501, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 3, 4, -1, 516, -1, 518, 9, + 10, -1, -1, -1, 524, 525, 526, 527, -1, -1, + -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, + -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, + 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, + 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, + 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, + 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, + 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, + 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, + 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, + 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, + -1, 221, -1, -1, 224, -1, 226, 227, 228, 229, + 230, 231, -1, -1, 234, -1, 236, -1, -1, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, + 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, + -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, + -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, + -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, + 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, + 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, + 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, + 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, + 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, + 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, + -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, -1, -1, -1, -1, -1, 3, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 524, 525, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, + -1, -1, -1, -1, 40, -1, -1, 43, 44, -1, + 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, + 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, + -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, + 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, + 86, 87, 88, -1, 90, 91, 92, -1, 94, 95, + 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, 161, 162, 163, 164, 165, + 166, 167, 168, -1, 170, -1, -1, -1, 174, 175, + 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, + -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, + 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, -1, 221, -1, -1, 224, -1, + 226, 227, 228, 229, 230, 231, -1, -1, 234, -1, + 236, -1, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, + 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, + 286, 287, 288, 289, -1, -1, 292, 293, 294, -1, + 296, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, + -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, + 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, + 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, + -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, + 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, + 446, 447, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, + -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, -1, -1, -1, -1, - -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, 39, -1, - -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, - 51, 52, -1, 54, 55, 56, 57, -1, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, - 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, - 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, - 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, - 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, -1, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, - 171, -1, 173, 174, 175, 176, -1, 178, -1, 180, - -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, - 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, - 201, 202, 203, 204, 205, 206, -1, 208, 209, 210, - 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, - 221, -1, -1, 224, 225, 226, 227, 228, 229, 230, - 231, -1, -1, 234, 235, 236, -1, -1, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, -1, 276, 277, -1, 279, 280, - 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, - -1, 292, 293, 294, -1, -1, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, - 321, 322, 323, 324, 325, 326, 327, 328, -1, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, - 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, - 421, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, 438, 439, 440, - 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, - 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, - 461, 462, 463, 464, 465, -1, 467, 468, 469, 470, - 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, -1, -1, -1, -1, -1, -1, -1, 509, 510, - 511, -1, 3, 4, 5, 516, -1, 518, 9, -1, - -1, -1, 523, 524, 525, 526, -1, -1, -1, -1, + 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 519, -1, 22, 23, 24, 25, 26, + 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, + 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, + 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, + 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, + 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, + 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, + -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, + -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, + -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, + 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, + 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, + -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, + 217, -1, 219, -1, 221, -1, -1, 224, -1, 226, + 227, 228, 229, 230, 231, -1, -1, 234, -1, 236, + -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, + 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, + -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, + 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, + -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, + 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, + 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, + -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, + 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, + -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, + -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, + 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, + -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 518, 519, -1, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, 34, 35, -1, 37, + -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, + 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, + 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, + -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 285, 286, -1, + 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, + 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, + -1, 449, 450, 451, 452, 453, 454, 455, 456, -1, + 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, + 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, + 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, -1, 3, 504, 5, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 518, -1, -1, -1, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, + -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + -1, 59, 60, 61, 62, 63, 64, -1, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, + 168, -1, 170, 171, 172, 173, 174, 175, 176, 177, + 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, + -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 285, 286, -1, + 288, 289, -1, 291, 292, 293, 294, -1, -1, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, -1, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, -1, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, -1, + 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, + -1, 449, 450, 451, 452, 453, 454, 455, 456, -1, + 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, + 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, + 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, -1, 3, 504, 5, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 518, -1, -1, -1, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, + -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + -1, 59, 60, 61, 62, 63, 64, -1, 66, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, + 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, + 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, -1, 234, 235, 236, 237, + -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 285, 286, -1, + 288, 289, -1, 291, 292, 293, 294, -1, -1, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, + -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, + 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, + 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, + -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, + -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, + 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, + 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, + 59, 60, 61, 62, 63, 64, -1, 66, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, 291, 292, 293, 294, -1, -1, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, + -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, + -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, + -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, + 60, 61, 62, 63, 64, -1, 66, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, + 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, + 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, + 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, + 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, + -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, -1, 276, 277, 278, 279, + -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, + -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, + 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, + 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, + 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, + 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, + -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, 37, -1, -1, -1, + 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, 60, - 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, + 61, 62, 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, @@ -14558,7 +15363,7 @@ static const yytype_int16 yycheck[] = 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, @@ -14571,7 +15376,7 @@ static const yytype_int16 yycheck[] = 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, 279, -1, - 281, 282, 283, 284, 285, 286, -1, 288, 289, 290, + 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, @@ -14581,121 +15386,170 @@ static const yytype_int16 yycheck[] = 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, + 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, 438, 439, 440, + -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, -1, -1, -1, -1, -1, -1, 3, 509, 510, - 511, -1, -1, -1, 10, 516, -1, 518, -1, -1, - -1, -1, -1, -1, -1, 526, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, 39, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, - 276, 277, 278, 279, -1, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, -1, -1, -1, -1, - -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, - 516, -1, 518, -1, -1, -1, -1, 523, 524, 525, - 526, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, -1, 40, - -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, - 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, - 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, - 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, - -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, - 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, - 161, 162, 163, 164, 165, 166, 167, 168, -1, 170, - -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, - -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, - 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, - 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, - 211, 212, 213, 214, 215, 216, 217, 218, 219, -1, - 221, -1, -1, 224, -1, 226, 227, 228, 229, 230, - 231, -1, -1, 234, -1, 236, -1, 238, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, - 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, - 281, 282, 283, 284, 285, 286, 287, 288, 289, -1, - -1, 292, 293, 294, -1, 296, 297, 298, 299, -1, - 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, - 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, - 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, - -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, - 441, 442, 443, 444, 445, 446, 447, -1, 449, 450, - 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, - 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, - 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 519, -1, + 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, + 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, + 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, + 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, + 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, + -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, + 172, -1, 174, 175, 176, -1, 178, -1, 180, -1, + 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, + 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, + 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, + 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, + -1, -1, 224, -1, 226, 227, 228, 229, 230, 231, + -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, + 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, + 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, + 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, + -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, + -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, -1, 384, 385, 386, 387, 388, 389, 390, 391, + 392, 393, -1, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, -1, 417, 418, 419, 420, -1, + 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, + -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, + 452, 453, 454, 455, 456, -1, 458, 459, 460, 461, + 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, + 472, 473, 474, 475, -1, -1, 478, -1, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + -1, 3, 504, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, + 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, + 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, + 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, + -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, + 172, -1, 174, 175, 176, -1, 178, -1, 180, -1, + 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, + 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, + 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, + 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, + -1, -1, 224, -1, 226, 227, 228, 229, 230, 231, + -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, + 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, + 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, + 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, + -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, + -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, -1, 384, 385, 386, 387, 388, 389, 390, 391, + 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, 417, 418, 419, 420, -1, + 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, + -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, + 452, 453, 454, 455, 456, -1, 458, 459, 460, 461, + 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, + 472, 473, 474, 475, -1, -1, 478, -1, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + -1, 3, 504, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, + 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, + 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, + 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, + 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, + -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, + 172, -1, 174, 175, 176, -1, 178, -1, 180, -1, + 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, + 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, + 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, + 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, + -1, -1, 224, -1, 226, 227, 228, 229, 230, 231, + -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, + 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, + 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, + 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, + -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, + -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, -1, 384, 385, 386, 387, 388, 389, 390, 391, + 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, 417, 418, 419, 420, -1, + 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, + -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, + 452, 453, 454, 455, 456, -1, 458, 459, 460, 461, + 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, + 472, 473, 474, 475, -1, -1, 478, -1, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + -1, 3, 504, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 518, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, @@ -14744,256 +15598,156 @@ static const yytype_int16 yycheck[] = 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 518, 519, -1, 22, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, 34, 35, -1, 37, -1, -1, -1, -1, 42, - 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, + 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, - -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, - -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, - 163, 164, 165, 166, -1, 168, -1, 170, 171, 172, - 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, - 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, - 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, -1, 219, -1, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, - -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, -1, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, - 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, - 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, - 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, - 443, 444, 445, 446, -1, -1, 449, 450, 451, 452, - 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, - 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, - 473, 474, 475, -1, -1, 478, -1, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, -1, - 3, 504, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 518, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, -1, -1, -1, -1, -1, -1, -1, -1, 42, - 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, - 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, -1, - -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, - -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, - 163, 164, 165, 166, -1, 168, -1, 170, 171, 172, - 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, - 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, - 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, -1, 219, -1, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, -1, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 285, 286, -1, 288, 289, -1, 291, 292, - 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, - 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, -1, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, - 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, - 443, 444, 445, 446, -1, -1, 449, 450, 451, 452, - 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, - 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, - 473, 474, 475, -1, -1, 478, -1, 480, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, -1, - 3, 504, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 518, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, -1, -1, -1, -1, -1, -1, -1, -1, 42, - 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, - 63, 64, -1, 66, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, - 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, + 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, + 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, - 163, 164, 165, 166, -1, 168, -1, 170, 171, -1, - 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, + 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, + -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, - 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, -1, 219, -1, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, + 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, + 203, 204, 205, 206, -1, 208, -1, 210, 211, 212, + 213, 214, 215, 216, 217, -1, 219, -1, 221, -1, + -1, 224, -1, 226, 227, 228, 229, 230, 231, -1, + -1, 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, -1, 276, 277, 278, 279, -1, 281, 282, - 283, 284, 285, 286, -1, 288, 289, -1, 291, 292, - 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, + 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, + 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, + 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, + 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, -1, -1, -1, -1, 319, 320, 321, 322, + 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, + 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, - -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, + -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, 417, 418, -1, 420, 421, 422, + 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, - 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, + 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, - -1, -1, -1, -1, -1, -1, -1, -1, 42, 43, - 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, - 64, -1, 66, 67, 68, 69, 70, 71, 72, 73, - -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, + 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, + 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, + 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, - 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, - 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, + 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, - 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, - 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, -1, -1, + 224, -1, 226, 227, 228, 229, 230, 231, -1, -1, + 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, -1, 276, 277, 278, 279, -1, 281, 282, 283, + 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, + 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, - 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, + 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, - 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, - 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, - -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, - -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, - -1, 66, 67, 68, 69, 70, 71, 72, 73, -1, - 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, - 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, + -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, + -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, + -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, + -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, + 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, - 165, 166, -1, 168, -1, 170, 171, -1, 173, 174, - 175, 176, 177, 178, -1, 180, -1, 182, 183, 184, - 185, -1, 187, 188, 189, 190, 191, 192, 193, 194, + 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, + 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, + 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, - 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, -1, 219, -1, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, -1, -1, 234, - 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, + 205, 206, -1, 208, -1, 210, 211, 212, 213, 214, + 215, 216, 217, -1, 219, -1, 221, -1, -1, 224, + -1, 226, 227, 228, 229, 230, 231, -1, -1, 234, + -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, + 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, + -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, - -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, + -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - -1, -1, -1, -1, 319, 320, 321, 322, 323, 324, + -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, + 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, - 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, + 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, 417, 418, -1, 420, 421, 422, 423, 424, + -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, - 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, + 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, + 495, 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, @@ -15006,11 +15760,11 @@ static const yytype_int16 yycheck[] = 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, -1, -1, 134, 135, + -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, -1, 172, -1, 174, 175, + 166, -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, @@ -15024,29 +15778,29 @@ static const yytype_int16 yycheck[] = 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, -1, 319, 320, 321, -1, 323, 324, 325, + 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, + -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, -1, 395, + 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, + 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - -1, 417, 418, 419, 420, -1, 422, 423, 424, 425, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, 452, 453, 454, 455, + 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, 480, 481, 482, 483, 484, 485, + -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 3, -1, 504, -1, + 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, -1, -1, -1, + 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, @@ -15060,7 +15814,7 @@ static const yytype_int16 yycheck[] = 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, - -1, 168, -1, 170, -1, 172, -1, 174, 175, 176, + -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, @@ -15074,26 +15828,26 @@ static const yytype_int16 yycheck[] = 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, - 317, -1, 319, 320, 321, -1, 323, 324, 325, 326, + 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, + -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, 382, -1, 384, 385, 386, + 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - 417, 418, 419, 420, -1, 422, 423, 424, 425, 426, + 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, - -1, -1, 449, 450, 451, 452, 453, 454, 455, 456, + -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, - -1, 478, -1, 480, 481, 482, 483, 484, 485, 486, + -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 3, -1, 504, -1, -1, + 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, @@ -15110,56 +15864,6 @@ static const yytype_int16 yycheck[] = 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, -1, 172, -1, 174, 175, 176, -1, - 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, -1, -1, 224, -1, 226, 227, - 228, 229, 230, 231, -1, -1, 234, -1, 236, -1, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, - -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, - -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, 382, -1, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, 419, 420, -1, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, - -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, 452, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, 480, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, -1, 3, 504, 5, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 518, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, - 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, - -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, - 88, -1, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, @@ -15243,7 +15947,7 @@ static const yytype_int16 yycheck[] = 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, + 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, @@ -15293,7 +15997,7 @@ static const yytype_int16 yycheck[] = 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, + 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, @@ -15331,320 +16035,289 @@ static const yytype_int16 yycheck[] = 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, - 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, - -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, - 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, - 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, - 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, - 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 518, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, - 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, - 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, - -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, - -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - -1, -1, 224, -1, 226, 227, 228, 229, 230, 231, - -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, - 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, - -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, -1, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 518, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, - 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, - 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, - 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, - 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, - -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, - -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, - 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, - -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, - 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, - 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, - 203, 204, 205, 206, -1, 208, -1, 210, 211, 212, - 213, 214, 215, 216, 217, -1, 219, -1, 221, -1, - -1, 224, -1, 226, 227, 228, 229, 230, 231, -1, - -1, 234, -1, 236, -1, -1, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, - 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, - 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, - 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, - 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, - 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, - 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, - -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, - -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, - 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, - 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, - 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, - 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, - 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, - 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, + 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, + 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, + -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, + -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, + 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, + 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, + 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, -1, 3, 4, 5, -1, -1, 8, 9, -1, + -1, -1, -1, -1, 15, 16, -1, 518, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, -1, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, -1, 153, 154, 155, 156, 157, 158, -1, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, -1, -1, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + -1, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, -1, 300, + 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + -1, 322, 323, 324, -1, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, -1, 436, -1, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, -1, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 498, 499, 500, + 501, -1, 3, -1, 505, 506, 507, 8, 509, 510, + 511, 512, 513, 514, 15, 16, -1, -1, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, + 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, + 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, + -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, + -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, + -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, + -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, + 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, + 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, + 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, + 221, -1, -1, 224, -1, 226, 227, 228, 229, 230, + 231, -1, -1, 234, -1, 236, -1, -1, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, + 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, + 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, + -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, + 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, + 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, + 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, + -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, + -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, + 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, + 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, + 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, -1, -1, -1, 505, 506, 507, -1, 509, 510, + 511, 512, 513, 514, 8, -1, -1, 11, -1, -1, + -1, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 518, -1, -1, 22, 23, - 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, - 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, - 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, - 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, - -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, - 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, - 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, - 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, - 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, - 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, - 214, 215, 216, 217, -1, 219, -1, 221, -1, -1, - 224, -1, 226, 227, 228, 229, 230, 231, -1, -1, - 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, - 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, - 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, - 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, - 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, - -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, - 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, - -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, - 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, - 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, - 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, - 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, - 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, - 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, + -1, -1, 36, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 46, 8, -1, -1, 11, -1, -1, 53, + 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 518, -1, -1, 22, 23, 24, - 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, - -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, - -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, - -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, - 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, - 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, - 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, + -1, 36, -1, -1, -1, -1, 80, -1, -1, -1, + -1, 46, 8, -1, -1, 11, -1, -1, 53, 15, + 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 36, -1, -1, -1, -1, 80, -1, -1, -1, -1, + 46, -1, -1, -1, -1, -1, -1, 53, -1, -1, + 8, -1, -1, 11, -1, -1, -1, 15, 16, 17, + 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 80, -1, -1, -1, 36, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 46, 8, + -1, -1, 11, 177, -1, 53, 15, 16, 17, 18, + 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, + 194, -1, -1, -1, -1, 199, -1, 36, -1, -1, + -1, -1, 80, -1, -1, -1, -1, 46, -1, -1, + -1, -1, 177, -1, 53, -1, -1, -1, 222, 223, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, + -1, -1, -1, 237, 199, -1, -1, -1, -1, -1, + -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 177, -1, -1, -1, -1, -1, 222, 223, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, + -1, 275, 237, 199, 278, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 292, -1, + -1, 295, -1, -1, -1, -1, 222, 223, -1, 177, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 275, 237, -1, 278, -1, -1, 194, -1, -1, -1, + -1, 199, -1, -1, -1, -1, -1, 292, -1, -1, + 295, -1, -1, -1, -1, -1, -1, -1, 177, -1, + -1, -1, -1, -1, 222, 223, -1, -1, -1, 275, + -1, -1, 278, -1, -1, 194, -1, -1, -1, 237, + 199, -1, -1, -1, -1, -1, 292, -1, -1, 295, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 222, 223, -1, -1, -1, -1, -1, + 394, -1, -1, -1, -1, -1, -1, 275, 237, -1, + 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 292, -1, -1, 295, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, + -1, -1, -1, -1, -1, -1, 275, -1, -1, 278, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 292, -1, -1, 295, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 502, -1, + -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, + 514, -1, -1, -1, -1, 519, 394, -1, -1, -1, + -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, + 16, 17, 18, 19, 20, 21, -1, 502, -1, -1, + 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, + 36, -1, -1, -1, 519, 394, -1, -1, 8, -1, + 46, 11, -1, -1, -1, 15, 16, 53, -1, 19, + 20, 21, -1, -1, -1, -1, 502, -1, -1, 505, + 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, + -1, -1, -1, 519, 80, -1, 46, -1, -1, -1, + -1, -1, -1, 53, -1, -1, -1, -1, -1, 8, + -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, + 19, 20, 21, -1, 502, -1, -1, 505, 506, 507, + 80, 509, 510, 511, 512, 513, 514, 36, -1, -1, + -1, 519, -1, -1, -1, -1, -1, 46, 8, -1, + -1, 11, -1, -1, 53, 15, 16, 17, 18, 19, + 20, 21, -1, 502, -1, -1, 505, 506, 507, -1, + 509, 510, 511, 512, 513, 514, 36, -1, -1, -1, + 519, 80, -1, -1, -1, -1, 46, 8, -1, -1, + 11, 177, -1, 53, 15, 16, 17, 18, 19, 20, + 21, -1, -1, -1, -1, -1, -1, -1, 194, -1, + -1, -1, -1, 199, -1, 36, -1, -1, -1, -1, + 80, -1, -1, -1, -1, 46, -1, 177, -1, -1, + -1, -1, 53, -1, -1, -1, 222, 223, -1, -1, + -1, -1, -1, -1, 194, -1, -1, -1, -1, 199, + -1, 237, -1, -1, -1, -1, -1, -1, -1, 80, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 222, 223, -1, -1, -1, -1, 177, -1, + -1, -1, -1, -1, -1, -1, -1, 237, -1, 275, + -1, -1, 278, -1, -1, 194, -1, -1, -1, -1, + 199, -1, -1, -1, -1, -1, 292, -1, -1, 295, + -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, + -1, -1, -1, 222, 223, 275, -1, -1, 278, -1, + -1, -1, -1, -1, 194, -1, -1, -1, 237, 199, + -1, -1, 292, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, + -1, -1, 222, 223, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 194, -1, -1, 275, 237, 199, 278, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 292, -1, -1, 295, -1, -1, -1, + -1, 222, 223, -1, -1, -1, -1, -1, 394, -1, + -1, -1, -1, -1, -1, 275, 237, -1, 278, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 292, -1, -1, 295, -1, -1, -1, -1, + -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 275, -1, -1, 278, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 292, -1, -1, 295, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 502, -1, -1, 505, + 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, + -1, 517, -1, -1, 394, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, + 510, 511, 512, 513, 514, -1, -1, -1, -1, -1, + -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 502, -1, -1, 505, 506, 507, -1, + 509, 510, 511, 512, 513, 514, -1, -1, 517, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, + 510, 511, 512, 513, 514, -1, -1, 517, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, + -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, + 511, 512, 513, 514, -1, -1, 517, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, - 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, - 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, - 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, - 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, - 205, 206, -1, 208, -1, 210, 211, 212, 213, 214, - 215, 216, 217, -1, 219, -1, 221, -1, -1, 224, - -1, 226, 227, 228, 229, 230, 231, -1, -1, 234, - -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, - -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, - 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, - -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, - 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, - 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, + 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, + 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, + 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, - 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, - 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, - 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, - 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, - 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, - 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, + 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, + 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, + 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, + 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 518, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, - 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, - 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, - -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, - 86, 87, 88, -1, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, -1, -1, -1, 174, 175, - 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, -1, -1, 224, -1, - 226, 227, 228, 229, 230, 231, -1, -1, 234, -1, - 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, - 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, -1, 3, 4, 5, - -1, -1, 8, 9, -1, -1, -1, -1, -1, 15, - 16, -1, 518, 19, 20, 21, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, -1, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, -1, 153, 154, 155, - 156, 157, 158, -1, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, -1, -1, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, -1, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, -1, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, -1, 300, 301, 302, -1, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, -1, 322, 323, 324, -1, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, -1, - 436, -1, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, -1, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, - 486, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 498, 499, 500, 501, -1, 3, -1, 505, - 506, 507, 8, 509, 510, 511, 512, 513, 514, 15, - 16, -1, -1, 19, 20, 21, 22, 23, 24, 25, + -1, -1, -1, -1, -1, -1, 511, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, @@ -15692,561 +16365,498 @@ static const yytype_int16 yycheck[] = -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, -1, -1, -1, 505, - 506, 507, -1, 509, 510, 511, 512, 513, 514, 8, - -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, - 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 36, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 46, 8, -1, - -1, 11, -1, -1, 53, 15, 16, 17, 18, 19, - 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, - -1, 80, -1, -1, -1, -1, 46, 8, -1, -1, - 11, -1, -1, 53, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, - 80, -1, -1, -1, -1, 46, -1, -1, -1, -1, - -1, -1, 53, -1, -1, 8, -1, -1, 11, -1, - -1, -1, 15, 16, 17, 18, 19, 20, 21, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, - -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 46, 8, -1, -1, 11, 177, -1, - 53, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, -1, 194, -1, -1, -1, -1, - 199, -1, 36, -1, -1, -1, -1, 80, -1, -1, - -1, -1, 46, -1, -1, -1, -1, 177, -1, 53, - -1, -1, -1, 222, 223, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 194, -1, -1, -1, 237, 199, - -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, - -1, -1, 222, 223, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 194, -1, -1, 275, 237, 199, 278, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 292, -1, -1, 295, -1, -1, -1, - -1, 222, 223, -1, 177, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 275, 237, -1, 278, -1, - -1, 194, -1, -1, -1, -1, 199, -1, -1, -1, - -1, -1, 292, -1, -1, 295, -1, -1, -1, -1, - -1, -1, -1, 177, -1, -1, -1, -1, -1, 222, - 223, -1, -1, -1, 275, -1, -1, 278, -1, -1, - 194, -1, -1, -1, 237, 199, -1, -1, -1, -1, - -1, 292, -1, -1, 295, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 222, 223, - -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, - -1, -1, 275, 237, -1, 278, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 292, - -1, -1, 295, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, - -1, 275, -1, -1, 278, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 292, -1, - -1, 295, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 502, -1, -1, 505, 506, 507, -1, - 509, 510, 511, 512, 513, 514, -1, -1, -1, -1, - 519, 394, -1, -1, -1, -1, -1, 8, -1, -1, - 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, - 21, -1, 502, -1, -1, 505, 506, 507, -1, 509, - 510, 511, 512, 513, 514, 36, -1, -1, -1, 519, - 394, -1, -1, -1, -1, 46, -1, -1, -1, -1, - -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, - -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, - 511, 512, 513, 514, -1, -1, -1, -1, 519, 80, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - -1, 15, 16, 17, 18, 19, 20, 21, -1, 502, - -1, -1, 505, 506, 507, -1, 509, 510, 511, 512, - 513, 514, 36, -1, -1, -1, 519, -1, -1, -1, - -1, -1, 46, 8, -1, -1, 11, -1, -1, 53, - 15, 16, 17, 18, 19, 20, 21, -1, 502, -1, - -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, - 514, 36, -1, -1, -1, 519, 80, -1, -1, -1, - -1, 46, 8, -1, -1, 11, 177, -1, 53, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - -1, -1, -1, 194, -1, -1, -1, -1, 199, -1, - 36, -1, -1, -1, -1, 80, -1, -1, -1, -1, - 46, -1, -1, -1, -1, -1, -1, 53, -1, -1, - -1, 222, 223, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, - -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 8, - -1, -1, 11, 177, -1, -1, 15, 16, 17, 18, - 19, 20, 21, -1, 275, -1, -1, 278, -1, -1, - 194, -1, -1, -1, -1, 199, -1, 36, -1, -1, - -1, 292, -1, -1, 295, -1, -1, 46, -1, -1, - -1, -1, 177, -1, 53, -1, -1, -1, 222, 223, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, - -1, -1, -1, 237, 199, -1, -1, -1, -1, -1, - -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 177, -1, -1, -1, -1, -1, 222, 223, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, - -1, 275, 237, 199, 278, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 292, -1, - -1, 295, -1, -1, -1, -1, 222, 223, -1, -1, - -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, - 275, 237, -1, 278, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 292, -1, -1, - 295, -1, -1, -1, -1, -1, -1, -1, 177, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 275, - -1, -1, 278, -1, -1, 194, -1, -1, -1, -1, - 199, -1, -1, -1, -1, -1, 292, -1, -1, 295, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 222, 223, -1, -1, -1, -1, -1, - 394, -1, -1, -1, -1, -1, -1, -1, 237, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, - 511, 512, 513, 514, -1, -1, -1, -1, 519, 394, - -1, -1, -1, -1, -1, -1, 275, -1, -1, 278, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 68, 69, 292, -1, -1, 295, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 8, -1, 394, 11, - -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 109, 110, 36, -1, 113, 114, 502, -1, - -1, 505, 506, 507, 46, 509, 510, 511, 512, 513, - 514, 53, -1, -1, -1, 519, -1, -1, -1, -1, - -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, - 15, 16, 17, 18, 19, 20, 21, 502, 80, -1, - 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, - -1, 36, -1, -1, 519, 394, -1, -1, -1, -1, - -1, 46, -1, -1, -1, -1, -1, -1, 53, -1, - -1, -1, 189, 190, -1, -1, 502, -1, -1, 505, - 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, - -1, 517, -1, -1, -1, 80, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 177, 253, 254, 255, 256, - 257, 258, 259, 260, -1, -1, 263, 264, -1, -1, - -1, -1, 194, -1, -1, -1, -1, 199, -1, -1, - -1, -1, -1, 502, -1, -1, 505, 506, 507, -1, - 509, 510, 511, 512, 513, 514, -1, -1, 517, -1, - 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 177, -1, -1, 237, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, - -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, - 337, 338, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 275, -1, -1, 278, 222, 223, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 292, -1, 237, 295, -1, -1, -1, -1, -1, -1, - -1, 378, 379, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 275, -1, -1, 278, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 292, -1, -1, - 295, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 394, -1, -1, -1, -1, 474, 475, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 498, 499, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 518, -1, -1, -1, -1, -1, -1, -1, 394, + 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, + -1, -1, -1, -1, -1, 511, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, + 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, + 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, + 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, + 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, + 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, + 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, + -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, + -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, + -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, + 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, + 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, + -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, + 217, -1, 219, -1, 221, -1, -1, 224, -1, 226, + 227, 228, 229, 230, 231, -1, -1, 234, -1, 236, + -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, + 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, + -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, + 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, + -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, + 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, + 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, + 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, + -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, + 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, + -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, + -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, + 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, + -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, + 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, + 497, 498, 499, 500, 501, 3, 4, 5, -1, -1, + -1, 9, -1, -1, 511, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, + 28, 29, -1, 31, 32, 33, -1, -1, -1, 37, + -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, + 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, + 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, + 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, + 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, + 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, + 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, -1, 163, 164, 165, 166, -1, + 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, + 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, + -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, + 278, 279, -1, 281, 282, 283, 284, 285, 286, -1, + 288, 289, 290, -1, 292, 293, 294, -1, -1, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, + -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, + 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, + 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, + 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, -1, + -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, + 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, + 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, -1, -1, 8, -1, -1, 11, + -1, 509, 510, 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 36, -1, -1, -1, -1, 41, + -1, -1, -1, -1, 46, 8, -1, -1, 11, -1, + -1, 53, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, -1, 8, -1, -1, 11, -1, -1, -1, + 15, 16, -1, 36, 19, 20, 21, -1, 80, -1, + -1, -1, -1, 46, 8, -1, -1, 11, -1, -1, + 53, 15, 16, 17, 18, 19, 20, 21, -1, -1, + -1, 46, -1, -1, -1, -1, -1, -1, 53, -1, + -1, -1, 36, -1, -1, -1, -1, 80, -1, -1, + -1, -1, 46, -1, 126, -1, -1, -1, -1, 53, + -1, 8, -1, -1, 11, 80, -1, -1, 15, 16, + 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 80, -1, -1, 36, + -1, -1, -1, 40, -1, -1, -1, -1, -1, 46, + -1, -1, -1, -1, -1, 177, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 194, -1, -1, -1, -1, 199, -1, -1, + -1, -1, -1, 80, 167, -1, -1, -1, -1, 172, + -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, + 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 194, 177, -1, -1, 237, 199, -1, -1, -1, + -1, -1, 166, -1, -1, -1, -1, -1, -1, 194, + -1, -1, -1, 177, 199, -1, -1, -1, -1, 222, + 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 194, -1, -1, 275, 237, 199, 278, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 292, -1, 237, 295, -1, -1, -1, -1, 222, 223, + 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 275, 237, -1, 278, -1, 194, -1, -1, + -1, -1, 199, -1, -1, -1, -1, -1, -1, 292, + -1, -1, 295, 278, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 222, 223, 292, -1, -1, + -1, 275, -1, -1, 278, -1, -1, -1, -1, -1, + 237, -1, -1, -1, -1, -1, -1, -1, 292, -1, + -1, 295, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 394, -1, -1, -1, -1, -1, 275, -1, + 324, 278, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 292, -1, -1, 295, -1, + -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, + -1, 394, -1, 15, 16, 17, 18, 19, 20, 21, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, + -1, -1, -1, -1, 36, 457, -1, -1, -1, -1, + -1, -1, -1, -1, 46, -1, -1, -1, -1, -1, + 394, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, - 512, 513, 514, -1, -1, 517, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 512, 513, 514, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 3, -1, -1, 502, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 502, + -1, -1, 505, 506, 507, -1, 509, 510, 511, 512, + 513, 514, -1, -1, -1, -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, - -1, -1, 517, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, - 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, - 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, - 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, - 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, - 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, - 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, - 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, - -1, -1, 511, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, - 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, - 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, - 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, - 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, - 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, - 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, - 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, - 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, -1, -1, 224, -1, 226, 227, 228, 229, - 230, 231, -1, -1, 234, -1, 236, -1, -1, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, - 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, - 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, - -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, - -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, - 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, - 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, - 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, - 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, - 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, - 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, - 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, - -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, - -1, 511, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, - 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, - 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, - 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, - -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, - 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, - 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, - -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, - -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, - 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, - 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, - 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, - 221, -1, -1, 224, -1, 226, 227, 228, 229, 230, - 231, -1, -1, 234, -1, 236, -1, -1, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, - 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, - 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, - -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, - 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, - 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, - 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, - -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, - 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, - 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, - 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, - 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 3, 4, 5, -1, -1, -1, 9, -1, -1, - 511, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, 37, -1, -1, -1, -1, - 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, 81, - -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, - -1, 173, 174, 175, 176, 177, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, 274, -1, 276, 277, 278, 279, -1, 281, - 282, 283, 284, 285, 286, -1, 288, 289, 290, -1, - 292, 293, 294, -1, -1, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - 322, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, 421, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - -1, -1, 8, -1, -1, 11, -1, 509, 510, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 502, -1, + -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, + 514, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 36, -1, -1, -1, -1, 41, -1, -1, -1, -1, - 46, 8, -1, -1, 11, -1, -1, 53, 15, 16, - 17, 18, 19, 20, 21, -1, -1, -1, -1, 8, - -1, -1, 11, -1, -1, -1, 15, 16, -1, 36, - 19, 20, 21, -1, 80, -1, -1, -1, -1, 46, - 8, -1, -1, 11, -1, -1, 53, 15, 16, 17, - 18, 19, 20, 21, -1, -1, -1, 46, -1, -1, - -1, -1, -1, -1, 53, -1, -1, -1, 36, -1, - -1, -1, -1, 80, -1, -1, -1, -1, 46, -1, - 126, -1, -1, -1, -1, 53, -1, 8, -1, -1, - 11, 80, -1, -1, 15, 16, 17, 18, 19, 20, - 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 80, -1, -1, 36, -1, -1, -1, 40, - -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, - -1, 177, 53, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, - -1, -1, -1, 199, -1, -1, -1, -1, -1, 80, - 167, -1, -1, -1, -1, 172, -1, -1, -1, -1, - 177, -1, -1, -1, -1, -1, 222, 223, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 194, 177, -1, - -1, 237, 199, -1, -1, -1, -1, -1, 166, -1, - -1, -1, -1, -1, -1, 194, -1, -1, -1, 177, - 199, -1, -1, -1, -1, 222, 223, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 194, -1, -1, 275, - 237, 199, 278, 222, 223, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 292, -1, 237, 295, - -1, -1, -1, -1, 222, 223, 177, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 275, 237, - -1, 278, -1, 194, -1, -1, -1, -1, 199, -1, - -1, -1, -1, -1, -1, 292, 275, -1, 295, 278, + -1, 8, 194, -1, 11, -1, -1, 199, 15, 16, + 17, 18, 19, 20, 21, 502, -1, -1, 505, 506, + 507, -1, 509, 510, 511, 512, 513, 514, -1, 36, + 222, 223, -1, 40, -1, -1, -1, -1, -1, 46, + -1, -1, -1, -1, -1, 237, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 222, 223, 292, -1, -1, -1, 275, -1, -1, - 278, -1, -1, -1, -1, -1, 237, -1, -1, -1, - -1, -1, -1, -1, 292, -1, -1, 295, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 8, -1, -1, + 11, -1, -1, 80, 15, 16, 17, 18, 19, 20, + 21, -1, -1, 275, -1, -1, 278, -1, -1, -1, + -1, -1, -1, -1, -1, 36, -1, -1, -1, -1, + 292, -1, -1, 295, -1, 46, -1, -1, -1, -1, + -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 318, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, - -1, -1, -1, -1, 275, -1, 324, 278, -1, -1, + -1, -1, -1, -1, -1, -1, 8, -1, -1, 11, + -1, -1, -1, 15, 16, 17, 18, 19, 20, 21, + 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 36, -1, -1, 194, 40, -1, + -1, -1, 199, -1, 46, -1, -1, -1, -1, -1, + -1, 53, 394, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 222, 223, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 80, -1, + 237, 172, -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 292, -1, -1, 295, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, -1, 394, -1, 15, - 16, 17, 18, 19, 20, 21, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, - 36, 457, -1, -1, -1, -1, -1, -1, -1, -1, - 46, -1, -1, -1, -1, -1, 394, 53, -1, -1, - -1, -1, -1, 68, 69, -1, -1, -1, -1, -1, + -1, -1, -1, 194, -1, -1, -1, -1, 199, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 275, -1, + -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 222, 223, -1, -1, 292, -1, -1, 295, -1, + -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 80, -1, 502, -1, -1, 505, - 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, - -1, -1, -1, 394, 109, 110, -1, -1, 113, 114, - -1, 8, -1, -1, 11, -1, -1, -1, 15, 16, - -1, -1, 19, 20, 21, 502, -1, -1, 505, 506, - 507, -1, 509, 510, 511, 512, 513, 514, -1, 36, - -1, -1, -1, 502, -1, -1, 505, 506, 507, 46, - 509, 510, 511, 512, 513, 514, 53, -1, -1, -1, - -1, -1, -1, -1, 502, -1, -1, 505, 506, 507, - -1, 509, 510, 511, 512, 513, 514, -1, -1, -1, - -1, 177, -1, 80, 189, 190, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 8, 194, -1, - 11, -1, -1, 199, 15, 16, 17, 18, 19, 20, - 21, 502, -1, -1, 505, 506, 507, -1, 509, 510, - 511, 512, 513, 514, -1, 36, 222, 223, -1, 40, - -1, -1, -1, -1, -1, 46, -1, -1, -1, -1, - -1, 237, 53, -1, -1, -1, -1, -1, 253, 254, - 255, 256, 257, 258, 259, 260, -1, -1, 263, 264, - -1, -1, -1, 8, -1, -1, 11, -1, -1, 80, - 15, 16, 17, 18, 19, 20, 21, -1, -1, 275, - 177, -1, 278, -1, -1, -1, -1, -1, -1, -1, - -1, 36, -1, -1, -1, -1, 292, 194, -1, 295, - -1, 46, 199, -1, -1, -1, -1, -1, 53, -1, + 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, + 512, 513, 514, -1, -1, 177, -1, -1, -1, -1, + -1, -1, -1, -1, 275, -1, -1, 278, -1, -1, + -1, -1, 194, -1, -1, -1, -1, 199, -1, -1, + -1, 292, -1, -1, 295, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 8, -1, -1, 11, -1, + 222, 223, 15, 16, 17, 18, 19, 20, 21, -1, + -1, -1, -1, -1, -1, 237, -1, 394, -1, -1, + -1, -1, -1, 36, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 46, -1, -1, -1, -1, -1, -1, + 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 8, 275, -1, 11, 278, -1, -1, 15, + 16, 17, 18, 19, 20, 21, -1, 80, -1, -1, + 292, -1, -1, 295, -1, -1, -1, -1, -1, -1, + 36, -1, -1, 394, -1, -1, -1, -1, -1, -1, + 46, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 318, -1, -1, 222, 223, -1, -1, -1, - -1, -1, 337, 338, -1, 80, -1, -1, -1, -1, - 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 8, -1, -1, 11, -1, -1, -1, 15, - 16, 17, 18, 19, 20, 21, 177, -1, -1, -1, - -1, -1, -1, 378, 379, -1, -1, -1, 275, -1, - 36, 278, -1, 194, 40, -1, -1, -1, 199, -1, - 46, -1, -1, -1, -1, 292, -1, 53, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 222, 223, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 80, -1, 237, 172, -1, -1, - -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 194, - -1, -1, -1, -1, 199, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 275, -1, -1, 278, -1, 474, - 475, -1, -1, -1, -1, -1, -1, 222, 223, -1, - -1, 292, -1, -1, 295, -1, -1, -1, -1, -1, - -1, -1, 237, 498, 499, -1, -1, 394, -1, -1, + -1, -1, -1, -1, 80, 502, -1, -1, 505, 506, + 507, -1, 509, 510, 511, 512, 513, 514, -1, 8, + -1, -1, 11, -1, -1, -1, 15, 16, 17, 18, + 19, 20, 21, -1, 167, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 177, -1, -1, 36, -1, -1, + -1, 40, 394, -1, -1, -1, -1, 46, -1, -1, + -1, 194, -1, -1, 53, -1, 199, -1, -1, -1, + -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, + 511, 512, 513, 514, -1, -1, -1, -1, -1, 222, + 223, 80, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 177, -1, -1, 237, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 194, -1, + -1, -1, -1, 199, -1, -1, -1, -1, 8, -1, + -1, 11, -1, -1, -1, 15, 16, 17, 18, 19, + 20, 21, 275, -1, -1, 278, 222, 223, -1, -1, + -1, -1, -1, -1, -1, -1, 36, -1, -1, 292, + 502, 237, 295, 505, 506, 507, 46, 509, 510, 511, + 512, 513, 514, 53, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 177, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 275, + 80, -1, 278, -1, -1, 194, -1, -1, -1, -1, + 199, -1, -1, -1, -1, -1, 292, -1, -1, 295, + -1, -1, -1, -1, -1, -1, -1, -1, 8, -1, + -1, 11, -1, 222, 223, 15, 16, 17, 18, 19, + 20, 21, -1, -1, -1, -1, -1, -1, 237, -1, + -1, -1, -1, -1, -1, -1, 36, -1, -1, -1, + -1, 394, -1, -1, -1, -1, 46, -1, -1, -1, + -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 275, -1, -1, 278, + -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, + 80, -1, -1, 292, -1, -1, 295, -1, -1, -1, + -1, -1, -1, -1, 194, -1, -1, 8, 394, 199, + 11, -1, -1, -1, 15, 16, 17, 18, 19, 20, + 21, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 222, 223, -1, 36, -1, -1, -1, -1, + -1, 427, -1, -1, -1, 46, -1, 237, -1, -1, + -1, -1, 53, -1, -1, -1, -1, -1, -1, 502, + -1, -1, 505, 506, 507, -1, 509, 510, 511, 512, + 513, 514, -1, -1, -1, -1, -1, -1, -1, 80, + -1, -1, -1, -1, -1, 275, -1, 177, 278, -1, + -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, + -1, -1, 292, -1, 194, 295, -1, -1, -1, 199, -1, -1, -1, -1, -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, -1, - -1, 177, -1, -1, -1, -1, -1, -1, -1, -1, - 275, -1, -1, 278, -1, -1, -1, -1, 194, -1, - -1, -1, -1, 199, -1, -1, -1, 292, -1, -1, - 295, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 8, -1, -1, 11, -1, 222, 223, 15, 16, - 17, 18, 19, 20, 21, -1, -1, -1, -1, -1, - -1, 237, -1, 394, -1, -1, -1, -1, -1, 36, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 46, - -1, -1, -1, -1, -1, 502, 53, -1, 505, 506, - 507, -1, 509, 510, 511, 512, 513, 514, 8, 275, - -1, 11, 278, -1, -1, 15, 16, 17, 18, 19, - 20, 21, -1, 80, -1, -1, 292, -1, -1, 295, - -1, -1, -1, -1, -1, -1, 36, -1, -1, 394, - -1, -1, -1, -1, -1, -1, 46, -1, -1, -1, - -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, + -1, -1, 222, 223, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 80, 502, -1, -1, 505, 506, 507, -1, 509, 510, - 511, 512, 513, 514, -1, 8, -1, -1, 11, -1, - -1, -1, 15, 16, 17, 18, 19, 20, 21, -1, - 167, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 177, -1, -1, 36, -1, -1, -1, 40, 394, -1, - -1, -1, -1, 46, -1, -1, -1, 194, -1, -1, - 53, -1, 199, -1, -1, -1, -1, 502, -1, -1, - 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, - -1, -1, -1, -1, -1, 222, 223, 80, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 177, -1, -1, - 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 194, -1, -1, -1, -1, 199, - -1, -1, -1, -1, 8, -1, -1, 11, -1, -1, - -1, 15, 16, 17, 18, 19, 20, 21, 275, -1, - -1, 278, 222, 223, -1, -1, -1, -1, -1, -1, - -1, -1, 36, -1, -1, 292, 502, 237, 295, 505, - 506, 507, 46, 509, 510, 511, 512, 513, 514, 53, + -1, -1, -1, -1, -1, -1, 177, -1, -1, -1, + -1, -1, -1, -1, -1, 275, -1, -1, 278, -1, + -1, -1, -1, 194, -1, -1, -1, -1, 199, -1, + -1, -1, 292, 502, 394, 295, 505, 506, 507, -1, + 509, 510, 511, 512, 513, 514, -1, -1, -1, -1, + -1, 222, 223, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 177, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 275, 80, -1, 278, -1, - -1, 194, -1, -1, -1, -1, 199, -1, -1, -1, - -1, -1, 292, -1, -1, 295, -1, -1, -1, -1, - -1, -1, -1, -1, 8, -1, -1, 11, -1, 222, - 223, 15, 16, 17, 18, 19, 20, 21, -1, -1, - -1, -1, -1, -1, 237, -1, -1, -1, -1, -1, - -1, -1, 36, -1, -1, -1, -1, 394, -1, -1, - -1, -1, 46, -1, -1, -1, -1, -1, -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 275, -1, -1, 278, -1, -1, -1, -1, - -1, -1, -1, 177, -1, -1, 80, -1, -1, 292, - -1, -1, 295, -1, -1, -1, -1, -1, -1, -1, - 194, -1, -1, 8, 394, 199, 11, -1, -1, -1, - 15, 16, 17, 18, 19, 20, 21, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 222, 223, - -1, 36, -1, -1, -1, -1, -1, 427, -1, -1, - -1, 46, -1, 237, -1, -1, -1, -1, 53, -1, - -1, -1, -1, -1, -1, 502, -1, -1, 505, 506, - 507, -1, 509, 510, 511, 512, 513, 514, -1, -1, - -1, -1, -1, -1, -1, 80, -1, -1, -1, -1, - -1, 275, -1, 177, 278, -1, -1, -1, -1, -1, - -1, 394, -1, -1, -1, -1, -1, -1, 292, -1, - 194, 295, -1, -1, -1, 199, -1, -1, -1, -1, - -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, - 510, 511, 512, 513, 514, -1, -1, -1, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 237, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 275, -1, -1, 278, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 292, -1, -1, 295, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, + -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, + 510, 511, 512, 513, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 177, -1, -1, -1, -1, -1, -1, -1, - -1, 275, -1, -1, 278, -1, -1, -1, -1, 194, - -1, -1, -1, -1, 199, -1, -1, -1, 292, 502, - 394, 295, 505, 506, 507, -1, 509, 510, 511, 512, - 513, 514, -1, -1, -1, -1, -1, 222, 223, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 237, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 275, -1, -1, 278, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 292, -1, -1, - 295, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 394, -1, -1, -1, -1, -1, -1, -1, 502, -1, - -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, - 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 502, -1, -1, 505, 506, 507, -1, 509, + 510, 511, 512, 513, 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 502, -1, - -1, 505, 506, 507, -1, 509, 510, 511, 512, 513, - 514, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 3, -1, 5, -1, -1, + -1, 502, -1, -1, 505, 506, 507, -1, 509, 510, + 511, 512, 513, 514, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, + 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, + 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, + 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, + 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, + 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, + 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, + 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, + 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, + 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, + 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, + 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, + 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, + 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, + 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, + 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, + 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, + 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, + 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, + 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, + 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, + 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, + 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, + 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, + 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, + 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, + 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, + 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, + 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, + 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, + 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, + 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, + 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, + 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, + 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, + 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, + 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 3, -1, 5, -1, -1, -1, 502, -1, -1, - 505, 506, 507, -1, 509, 510, 511, 512, 513, 514, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, @@ -16295,422 +16905,422 @@ static const yytype_int16 yycheck[] = 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, -1, -1, -1, 37, -1, -1, -1, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, -1, 59, 60, 61, 62, + 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, - 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, - 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, - 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, -1, + 163, 164, 165, 166, -1, 168, -1, 170, 171, -1, + 173, 174, 175, 176, 177, 178, -1, 180, -1, 182, + 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, + 203, 204, 205, 206, -1, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, -1, 219, -1, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, + -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, - 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, - 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, + 273, 274, -1, 276, 277, 278, 279, -1, 281, 282, + 283, 284, 285, 286, -1, 288, 289, 290, -1, 292, + 293, 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, - 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, + 313, 314, -1, -1, -1, -1, 319, 320, 321, 322, + 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, + 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, + -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, - 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, + 413, 414, -1, -1, 417, 418, -1, 420, 421, 422, + 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, - 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, - 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, + 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, + 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, + 463, 464, 465, -1, 467, 468, 469, 470, 471, 472, + 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, - 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, - 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + 34, 35, -1, 37, -1, -1, -1, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, 79, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, - 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, - 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, - 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, - 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, - 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, + 274, -1, 276, 277, 278, 279, -1, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, - 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, - 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 314, -1, -1, -1, -1, 319, 320, 321, 322, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, - 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, - 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, - 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, - 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, - 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, + 414, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, + -1, -1, -1, -1, -1, -1, -1, 42, 43, 44, + -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, + -1, 66, 67, 68, 69, 70, 71, 72, 73, -1, + 75, 76, 77, 78, 79, -1, 81, -1, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, + 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, - 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, - 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, - 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, + 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, + 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, + 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, + 165, 166, -1, 168, -1, 170, 171, -1, 173, 174, + 175, 176, 177, 178, -1, 180, -1, 182, 183, 184, + 185, -1, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, + 205, 206, -1, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, -1, 219, -1, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, -1, -1, 234, + 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, - 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + -1, 276, 277, 278, 279, -1, 281, 282, 283, 284, + 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, + -1, -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, - 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, + -1, -1, -1, -1, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, + 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, - 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, - 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, + 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, + 385, 386, 387, 388, 389, 390, 391, 392, -1, 394, + 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, - 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, - 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, - 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, + -1, -1, 417, 418, -1, 420, 421, 422, 423, 424, + 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, + 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, + 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, + 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, + 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, + 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, + -1, -1, -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, - 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, + -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, + 76, 77, 78, 79, -1, 81, -1, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, + 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, - 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, - 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, + -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, + 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, + 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, + 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, + 176, 177, 178, -1, 180, -1, 182, 183, 184, 185, + -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, + 206, -1, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, + 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, - 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, - 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, + 266, 267, 268, 269, 270, 271, 272, 273, 274, -1, + 276, 277, 278, 279, -1, 281, 282, 283, 284, 285, + 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, + -1, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, + -1, -1, -1, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, + -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, + 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, - 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, - 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, - 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, - 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, - 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, - 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, - 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, + 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, + 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, + 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, + 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, + -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, + 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, + 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, + 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, + 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, + -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, + -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, + 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, - 37, -1, -1, -1, -1, 42, 43, 44, -1, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, + 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, - 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, - 77, 78, 79, -1, 81, -1, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, - 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, + 77, 78, 79, -1, -1, 82, 83, 84, 85, 86, + 87, 88, -1, 90, 91, 92, 93, 94, 95, 96, + 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, -1, 163, 164, 165, 166, - -1, 168, -1, 170, 171, -1, 173, 174, 175, 176, - 177, 178, -1, 180, -1, 182, 183, 184, 185, -1, - 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, + -1, 168, 169, 170, -1, -1, -1, 174, 175, 176, + -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, + 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, - -1, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, -1, 219, -1, 221, 222, 223, 224, 225, 226, - 227, 228, 229, 230, 231, -1, -1, 234, 235, 236, - 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, + -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, + 217, -1, 219, -1, 221, -1, -1, 224, -1, 226, + 227, 228, 229, 230, 231, -1, -1, 234, -1, 236, + -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, -1, 276, - 277, 278, 279, -1, 281, 282, 283, 284, 285, 286, - -1, 288, 289, 290, -1, 292, 293, 294, -1, -1, - 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, + 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, + 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, + -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, + 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, - -1, -1, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, + -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, + 327, 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, + 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, - 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, + 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, + 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - 417, 418, -1, 420, 421, 422, 423, 424, 425, 426, + 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, - 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, - -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, + 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, + -1, 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, - 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, + 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, 34, 35, -1, 37, - -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, + 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, + 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, + 88, -1, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, + 168, 169, 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, + 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, + -1, 219, -1, 221, -1, -1, 224, -1, 226, 227, + 228, 229, 230, 231, -1, -1, 234, -1, 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, 274, -1, 276, 277, - 278, 279, -1, 281, 282, 283, 284, 285, 286, -1, + 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, + -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, + 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, + -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, + 328, 329, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, + 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, 394, 395, 396, 397, + 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, + 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, + 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, + 448, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, + -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, + 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, - 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, - -1, -1, -1, 42, 43, 44, -1, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, -1, - 59, 60, 61, 62, 63, 64, -1, 66, 67, 68, + 29, -1, 31, 32, 33, 34, 35, -1, -1, -1, + -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, + -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, + 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, - 79, -1, 81, -1, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, - 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, + 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, + -1, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, 168, - -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, + -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, -1, - 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, + -1, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, -1, -1, 224, -1, 226, 227, 228, + 229, 230, 231, -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, -1, 276, 277, 278, + -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, - 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, - 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, + 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, + 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, - 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, + 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, - -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, + -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, - 459, 460, 461, 462, 463, 464, 465, -1, 467, 468, + 459, 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, - 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, + 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, - -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, - 50, 51, 52, 53, 54, 55, 56, 57, -1, 59, + 30, 31, 32, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, + 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, + -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, 171, -1, 173, 174, 175, 176, 177, 178, -1, + 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, + 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, + 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, - 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, + -1, 221, -1, -1, 224, -1, 226, 227, 228, 229, + 230, 231, -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 274, -1, 276, 277, 278, 279, + 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, + 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, -1, + 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, 364, 365, 366, 367, 368, 369, + 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, 394, 395, 396, 397, 398, -1, + 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, - 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, + 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, 468, 469, + 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, + 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 76, 77, 78, 79, -1, - -1, 82, 83, 84, 85, 86, 87, 88, -1, 90, - 91, 92, 93, 94, 95, 96, 97, 98, 99, -1, + 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, + -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, - 161, -1, 163, 164, 165, 166, -1, 168, 169, 170, + 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, @@ -16723,10 +17333,10 @@ static const yytype_int16 yycheck[] = 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, - -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, + 291, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, - 321, -1, 323, 324, 325, 326, 327, 328, 329, 330, + 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, @@ -16738,45 +17348,45 @@ static const yytype_int16 yycheck[] = 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, - 441, 442, 443, 444, 445, 446, -1, 448, 449, 450, + 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, + 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, -1, -1, + 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, - 92, 93, 94, 95, 96, 97, 98, 99, -1, -1, + 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, - -1, 163, 164, 165, 166, -1, 168, 169, 170, -1, + -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, -1, -1, 224, -1, 226, 227, 228, 229, 230, 231, - -1, -1, 234, -1, 236, 237, -1, 239, 240, 241, + -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, + 282, 283, 284, 285, 286, -1, 288, 289, -1, 291, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - -1, 323, 324, 325, 326, 327, 328, 329, 330, 331, + -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, @@ -16788,7 +17398,7 @@ static const yytype_int16 yycheck[] = 412, 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, - 442, 443, 444, 445, 446, -1, 448, 449, 450, 451, + 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, @@ -16796,8 +17406,8 @@ static const yytype_int16 yycheck[] = 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, 34, 35, -1, -1, -1, -1, -1, -1, -1, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, @@ -16846,7 +17456,7 @@ static const yytype_int16 yycheck[] = 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, @@ -16872,7 +17482,7 @@ static const yytype_int16 yycheck[] = 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, - 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 284, 285, 286, -1, 288, 289, -1, 291, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, @@ -16922,7 +17532,7 @@ static const yytype_int16 yycheck[] = 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, - 285, 286, -1, 288, 289, -1, 291, 292, 293, 294, + 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, @@ -16935,7 +17545,7 @@ static const yytype_int16 yycheck[] = 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, + -1, -1, 417, 418, 419, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, @@ -16972,7 +17582,7 @@ static const yytype_int16 yycheck[] = 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, 291, 292, 293, 294, -1, + 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, @@ -16996,7 +17606,7 @@ static const yytype_int16 yycheck[] = 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, -1, -1, -1, + 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, @@ -17043,10 +17653,10 @@ static const yytype_int16 yycheck[] = 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, + 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, + 28, 29, 30, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, @@ -17072,7 +17682,7 @@ static const yytype_int16 yycheck[] = 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, 291, 292, 293, 294, -1, -1, 297, + 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, @@ -17093,8 +17703,8 @@ static const yytype_int16 yycheck[] = -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 3, 4, -1, -1, -1, -1, - 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 498, 499, 500, 501, 3, -1, 5, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, @@ -17184,7 +17794,7 @@ static const yytype_int16 yycheck[] = 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, 419, + 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, @@ -17293,9 +17903,9 @@ static const yytype_int16 yycheck[] = 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, @@ -17442,11 +18052,11 @@ static const yytype_int16 yycheck[] = 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 3, -1, 5, + 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, + -1, -1, -1, -1, 40, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, @@ -17492,11 +18102,11 @@ static const yytype_int16 yycheck[] = -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, + 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, + -1, -1, -1, 40, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, @@ -17542,10 +18152,10 @@ static const yytype_int16 yycheck[] = 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, + 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, + 28, 29, 30, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, @@ -17692,10 +18302,258 @@ static const yytype_int16 yycheck[] = 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 3, -1, 5, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, + 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, + 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, + -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, + -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, + 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, + -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, + -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, + 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, + 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, + 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, + 221, -1, -1, 224, -1, 226, 227, 228, 229, 230, + 231, -1, -1, 234, -1, 236, -1, -1, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, + 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, + 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, + -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, + 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, + 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, + 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, + -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, + -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, + 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, + 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, + 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, + 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, + 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, + 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 501, 3, -1, 5, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, + 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, + 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, + 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, + 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, + -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, + 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, + 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, + -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, + 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, + -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, + -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, + 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, + 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, + 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, + 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, + -1, -1, 224, -1, 226, 227, 228, 229, 230, 231, + -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, + 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, + 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, + 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, + -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, + -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, + 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, + 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, + 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, + 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, + 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, -1, -1, 417, 418, -1, 420, -1, + 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, + -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, + 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, + -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, + 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, + 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, + 3, -1, 5, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, + 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, + 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, + 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, + 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, + 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, + -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, + 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, + 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, + 203, 204, 205, 206, -1, 208, -1, 210, 211, 212, + 213, 214, 215, 216, 217, -1, 219, -1, 221, -1, + -1, 224, -1, 226, 227, 228, 229, 230, 231, -1, + -1, 234, -1, 236, -1, -1, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, + 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, + 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, + 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, + 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, + 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, + 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, + -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, + -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, + 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, + 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, + 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, + 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, + 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, + 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, + 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, + -1, -1, -1, 37, -1, -1, 40, -1, 42, 43, + 44, -1, 46, 47, 48, 49, 50, 51, 52, -1, + 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, + 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, + -1, 75, 76, 77, 78, -1, -1, 81, -1, 83, + 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, + 94, 95, 96, 97, 98, 99, -1, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, -1, 153, + 154, 155, 156, 157, 158, -1, -1, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, 171, -1, 173, + 174, 175, 176, 177, 178, -1, 180, -1, -1, -1, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, 209, -1, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, -1, -1, + 234, 235, 236, 237, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, + -1, -1, 276, 277, 278, 279, -1, -1, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, -1, 300, 301, 302, -1, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, -1, 322, 323, + 324, -1, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, 383, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + -1, -1, -1, 417, 418, -1, 420, 421, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, -1, 436, -1, -1, 439, 440, 441, 442, 443, + 444, 445, 446, 447, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, -1, + 464, 465, -1, 467, 468, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 3, -1, 5, -1, -1, -1, -1, + -1, -1, -1, -1, 498, 499, 500, 501, -1, -1, + -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, + -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, + 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, + 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, + 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, + 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, + 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, + 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, + 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, + 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, + -1, 221, -1, -1, 224, -1, 226, 227, 228, 229, + 230, 231, -1, -1, 234, -1, 236, -1, -1, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, + 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, + -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, + -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, + -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, + 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, + 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, + 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, + 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, + 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, + 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, + -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, -1, 40, + 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, @@ -17745,7 +18603,7 @@ static const yytype_int16 yycheck[] = 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, -1, -1, -1, 40, -1, + 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, @@ -17794,7 +18652,7 @@ static const yytype_int16 yycheck[] = 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, @@ -17842,7 +18700,7 @@ static const yytype_int16 yycheck[] = 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, - -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, @@ -17851,297 +18709,49 @@ static const yytype_int16 yycheck[] = 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, - 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, - 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, - 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, - 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, - 214, 215, 216, 217, -1, 219, -1, 221, -1, -1, - 224, -1, 226, 227, 228, 229, 230, 231, -1, -1, - 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, - 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, - 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, - 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, - 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, - -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, - 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, - -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, - 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, - 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, - 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, - 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, - 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, - 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, - 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, - -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, - -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, - -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, - 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, - 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, - 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, - 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, - 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, - 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, - 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, - 205, 206, -1, 208, -1, 210, 211, 212, 213, 214, - 215, 216, 217, -1, 219, -1, 221, -1, -1, 224, - -1, 226, 227, 228, 229, 230, 231, -1, -1, 234, - -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, - -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, - 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, - -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, - 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, - 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, - 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, - 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, - 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, - 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, - 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, - 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 3, -1, 5, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, - 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, - 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, - -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, 79, -1, -1, -1, 83, 84, 85, - 86, 87, 88, -1, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, -1, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, -1, -1, -1, 174, 175, - 176, -1, 178, -1, 180, -1, 182, 183, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, -1, -1, 224, -1, - 226, 227, 228, 229, 230, 231, -1, -1, 234, -1, - 236, -1, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, -1, 270, 271, 272, 273, 274, -1, - 276, 277, -1, 279, -1, 281, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, - -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, 435, - 436, 437, -1, 439, 440, 441, 442, 443, 444, 445, - 446, -1, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, 463, 464, 465, - -1, 467, -1, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, - 496, 497, 498, 499, 500, 501, 3, -1, 5, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, - 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, - 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, - 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, - 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, - 77, 78, 79, -1, -1, -1, 83, 84, 85, 86, - 87, 88, -1, 90, 91, 92, -1, 94, 95, 96, - 97, 98, 99, -1, -1, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, - -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, - 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, - -1, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, - -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, - -1, 178, -1, 180, -1, 182, 183, 184, 185, -1, - 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, - 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, - -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, - 217, -1, 219, -1, 221, -1, -1, 224, -1, 226, - 227, 228, 229, 230, 231, -1, -1, 234, -1, 236, - -1, -1, 239, 240, 241, 242, 243, 244, 245, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, - 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, -1, 270, 271, 272, 273, 274, -1, 276, - 277, -1, 279, -1, 281, 282, 283, 284, 285, 286, - -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, - 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, - 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, - -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, - 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, - 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, - -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, - 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, - 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, - 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, - 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, - 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, - 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, - 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, - -1, 428, 429, 430, -1, -1, 433, 434, 435, 436, - 437, -1, 439, 440, 441, 442, 443, 444, 445, 446, - -1, -1, 449, 450, 451, -1, 453, 454, 455, 456, - -1, 458, 459, 460, 461, 462, 463, 464, 465, -1, - 467, -1, 469, 470, 471, 472, 473, 474, 475, -1, - -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, - 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, - 497, 498, 499, 500, 501, 3, -1, 5, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, - 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, - -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, 79, -1, -1, -1, 83, 84, 85, 86, 87, - 88, -1, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, -1, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, -1, -1, -1, 174, 175, 176, -1, - 178, -1, 180, -1, 182, 183, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, -1, -1, 224, -1, 226, 227, - 228, 229, 230, 231, -1, -1, 234, -1, 236, -1, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, -1, 270, 271, 272, 273, 274, -1, 276, 277, - -1, 279, -1, 281, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, - 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, - 418, -1, 420, -1, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, 435, 436, 437, - -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, 463, 464, 465, -1, 467, - -1, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, -1, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, - 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, + 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, + 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, + 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, + 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, + 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, + 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, + 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, + -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, + 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, + 214, 215, 216, 217, -1, 219, -1, 221, -1, -1, + 224, -1, 226, 227, 228, 229, 230, 231, -1, -1, + 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, + 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, + 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, + 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, + 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, + 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, + 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, + 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, + 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, + 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, + -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, + 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, + 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, + -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, + 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, + 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, + 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, + 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, + 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, + 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, + 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, + 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, + 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, - 29, -1, 31, 32, 33, -1, -1, -1, 37, -1, - -1, 40, -1, 42, 43, 44, -1, 46, 47, 48, - 49, 50, 51, 52, -1, 54, 55, 56, 57, -1, - 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, - 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, - -1, -1, 81, -1, 83, 84, 85, 86, 87, 88, - 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, - 99, -1, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, - -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, - 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, - -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, - 149, 150, 151, -1, 153, 154, 155, 156, 157, 158, - -1, -1, 161, -1, 163, 164, 165, 166, -1, 168, - -1, 170, 171, -1, 173, 174, 175, 176, 177, 178, - -1, 180, -1, -1, -1, 184, 185, -1, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, - 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, - 219, -1, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, -1, -1, 234, 235, 236, 237, -1, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, -1, -1, 276, 277, 278, - 279, -1, -1, 282, 283, 284, 285, 286, -1, 288, - 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, - -1, 300, 301, 302, -1, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, - 319, 320, -1, 322, 323, 324, -1, 326, 327, 328, - -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, -1, 362, 363, 364, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, - 379, 380, 381, -1, 383, 384, 385, 386, 387, 388, - 389, 390, 391, 392, -1, 394, 395, 396, 397, 398, - -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, - 409, 410, 411, 412, 413, -1, -1, -1, 417, 418, - -1, 420, 421, 422, 423, 424, 425, 426, -1, 428, - 429, 430, -1, -1, 433, 434, -1, 436, -1, -1, - 439, 440, 441, 442, 443, 444, 445, 446, 447, -1, - 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, - 459, 460, 461, 462, -1, 464, 465, -1, 467, 468, - 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, - -1, -1, 481, 482, 483, 484, 485, 486, 3, -1, - 5, -1, -1, -1, -1, -1, -1, -1, -1, 498, - 499, 500, 501, -1, -1, -1, -1, 22, 23, 24, + -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, @@ -18243,7 +18853,7 @@ static const yytype_int16 yycheck[] = -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 43, 44, -1, 46, + -1, -1, -1, 40, -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, @@ -18278,7 +18888,7 @@ static const yytype_int16 yycheck[] = 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, - 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, + 387, 388, -1, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, 425, 426, @@ -18357,7 +18967,252 @@ static const yytype_int16 yycheck[] = 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, - -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + -1, 180, -1, 182, 183, 184, 185, -1, 187, 188, + 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, + -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, + -1, 210, 211, 212, 213, 214, 215, 216, 217, -1, + 219, -1, 221, -1, -1, 224, -1, 226, 227, 228, + 229, 230, 231, -1, -1, 234, -1, 236, -1, -1, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + -1, 270, 271, 272, 273, 274, -1, 276, 277, -1, + 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, + 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, + 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, + -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, + 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, + 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, + 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, + 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, + -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 411, 412, 413, 414, -1, -1, 417, 418, + -1, 420, -1, 422, 423, 424, 425, 426, -1, 428, + 429, 430, -1, -1, 433, 434, 435, 436, 437, -1, + 439, 440, 441, 442, 443, 444, 445, 446, -1, -1, + 449, 450, 451, -1, 453, 454, 455, 456, -1, 458, + 459, 460, 461, 462, 463, 464, 465, -1, 467, -1, + 469, 470, 471, 472, 473, 474, 475, -1, -1, 478, + -1, -1, 481, 482, 483, 484, 485, 486, 487, 488, + 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, + 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, + -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, + 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, + 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, + 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, + -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, + 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, + -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, + 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, + 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, + 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, + 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, + 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, + 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, + 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, + 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, + -1, 221, -1, -1, 224, -1, 226, 227, 228, 229, + 230, 231, -1, -1, 234, -1, 236, -1, -1, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, + 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, + -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, + -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, + -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, + 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, + 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, + 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, + 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, + 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, + 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, + 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, + 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, + 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, + 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, + 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, + 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, + -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, + 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, + 31, 32, 33, -1, -1, -1, 37, -1, -1, -1, + -1, 42, 43, 44, -1, 46, 47, 48, 49, 50, + 51, 52, -1, 54, 55, 56, 57, -1, 59, 60, + 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, + 71, 72, 73, -1, 75, 76, 77, 78, -1, -1, + 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, + 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, + 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, + 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, + 151, -1, 153, 154, 155, 156, 157, 158, -1, -1, + 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, + 171, -1, 173, 174, 175, -1, 177, 178, -1, 180, + -1, -1, -1, 184, 185, -1, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, -1, 200, + 201, 202, 203, 204, 205, 206, -1, 208, 209, -1, + 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, -1, -1, 234, 235, 236, 237, -1, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, -1, -1, 276, 277, 278, 279, -1, + -1, 282, 283, 284, 285, 286, -1, 288, 289, -1, + -1, 292, 293, 294, -1, -1, 297, 298, -1, 300, + 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, + 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, + -1, 322, 323, 324, -1, 326, 327, 328, -1, 330, + 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, + 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, + 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, + -1, 362, 363, 364, 365, 366, 367, 368, 369, 370, + 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, + 381, -1, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, -1, 394, 395, 396, 397, 398, -1, 400, + 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, + 411, 412, 413, -1, -1, -1, 417, 418, -1, 420, + 421, 422, 423, 424, 425, 426, -1, 428, 429, 430, + -1, -1, 433, 434, -1, 436, -1, -1, 439, 440, + 441, 442, 443, 444, 445, 446, 447, -1, 449, 450, + 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, + 461, 462, -1, 464, 465, -1, 467, 468, 469, 470, + 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, + 481, 482, 483, 484, 485, 486, 3, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 498, 499, 500, + 501, -1, -1, -1, -1, 22, 23, 24, 25, 26, + 27, 28, 29, -1, 31, 32, 33, -1, -1, -1, + 37, -1, -1, -1, -1, 42, 43, 44, -1, 46, + 47, 48, 49, 50, 51, 52, -1, 54, 55, 56, + 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, + 67, 68, 69, 70, 71, 72, 73, -1, 75, 76, + 77, 78, -1, -1, 81, -1, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, + 97, 98, 99, -1, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, + -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, + -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, + 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, + -1, 148, 149, 150, 151, -1, 153, 154, 155, 156, + 157, 158, -1, -1, 161, -1, 163, 164, 165, 166, + -1, 168, -1, 170, 171, -1, 173, 174, 175, -1, + 177, 178, -1, 180, -1, -1, -1, 184, 185, -1, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, + -1, 208, 209, -1, 211, 212, 213, 214, 215, 216, + 217, -1, 219, -1, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, -1, -1, 234, 235, 236, + 237, -1, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, -1, -1, 276, + 277, 278, 279, -1, -1, 282, 283, 284, 285, 286, + -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, + 297, 298, -1, 300, 301, 302, -1, 304, 305, 306, + 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, + -1, -1, 319, 320, -1, 322, 323, 324, -1, 326, + 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, + 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, + -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, -1, 362, 363, 364, 365, 366, + 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, + 377, 378, 379, 380, 381, -1, 383, 384, 385, 386, + 387, 388, 389, 390, 391, 392, -1, 394, 395, 396, + 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 413, -1, -1, -1, + 417, 418, -1, 420, 421, 422, 423, 424, 425, 426, + -1, 428, 429, 430, -1, -1, 433, 434, -1, 436, + -1, -1, 439, 440, 441, 442, 443, 444, 445, 446, + 447, -1, 449, 450, 451, -1, 453, 454, 455, 456, + -1, 458, 459, 460, 461, 462, -1, 464, 465, -1, + 467, 468, 469, 470, 471, 472, 473, 474, 475, -1, + -1, 478, -1, -1, 481, 482, 483, 484, 485, 486, + 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 498, 499, 500, 501, -1, -1, -1, -1, 22, + 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, + 33, -1, -1, -1, 37, -1, -1, -1, -1, 42, + 43, 44, -1, 46, 47, 48, 49, 50, 51, 52, + -1, 54, 55, 56, 57, -1, 59, 60, 61, 62, + 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, + 73, -1, 75, 76, 77, 78, -1, -1, 81, -1, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + -1, 94, 95, 96, 97, 98, 99, -1, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, + 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, + -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, + -1, 144, 145, 146, -1, 148, 149, 150, 151, -1, + 153, 154, 155, 156, 157, 158, -1, -1, 161, -1, + 163, 164, 165, 166, -1, 168, -1, 170, 171, -1, + 173, 174, 175, 176, 177, 178, -1, 180, -1, -1, + -1, 184, 185, -1, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, -1, 200, 201, 202, + 203, 204, 205, 206, -1, 208, 209, -1, 211, 212, + 213, 214, 215, 216, 217, -1, 219, -1, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, -1, + -1, 234, 235, 236, 237, -1, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, + 273, -1, -1, 276, 277, 278, 279, -1, -1, 282, + 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, + 293, 294, -1, -1, 297, 298, -1, 300, 301, 302, + -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, + 313, 314, -1, -1, -1, -1, 319, 320, -1, 322, + 323, 324, -1, 326, 327, 328, -1, 330, 331, 332, + 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, + 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, + 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, + 363, 364, 365, 366, 367, -1, 369, 370, 371, 372, + 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, + 383, 384, 385, 386, 387, 388, 389, -1, 391, 392, + -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, + 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, + 413, -1, -1, -1, 417, 418, -1, 420, 421, 422, + 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, + 433, 434, -1, 436, -1, -1, 439, 440, 441, 442, + 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, + 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, + -1, 464, 465, -1, 467, 468, 469, 470, 471, 472, + 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, + 483, 484, 485, 486, 3, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 498, 499, 500, 501, -1, + -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, + 29, -1, 31, 32, 33, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 43, 44, -1, 46, 47, 48, + -1, 50, 51, 52, 53, 54, -1, 56, 57, -1, + 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, + 69, 70, 71, 72, 73, -1, 75, 76, 77, 78, + 79, -1, -1, -1, 83, 84, 85, 86, 87, 88, + -1, 90, 91, 92, -1, 94, 95, 96, 97, 98, + 99, -1, -1, 102, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, + -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, + 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, + -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, -1, 161, -1, 163, 164, 165, 166, -1, 168, + -1, 170, -1, -1, -1, 174, 175, 176, -1, 178, + -1, 180, -1, 182, 183, -1, 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, 214, 215, 216, 217, -1, @@ -18370,13 +19225,13 @@ static const yytype_int16 yycheck[] = 279, -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, + 309, -1, 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, - 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, + 339, -1, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, 365, 366, 367, 368, - 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, + -1, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, @@ -18392,597 +19247,103 @@ static const yytype_int16 yycheck[] = 499, 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, 28, 29, - -1, 31, 32, 33, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 43, 44, -1, 46, 47, 48, -1, - 50, 51, 52, 53, 54, -1, 56, 57, -1, 59, + -1, 31, 32, 33, -1, -1, -1, 37, -1, -1, + -1, -1, 42, 43, 44, -1, 46, 47, 48, 49, + 50, 51, 52, -1, 54, 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, 68, 69, - 70, 71, 72, 73, -1, 75, 76, 77, 78, 79, - -1, -1, -1, 83, 84, 85, 86, 87, 88, -1, + 70, 71, 72, 73, -1, 75, 76, 77, 78, -1, + -1, 81, -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, 98, 99, - -1, -1, 102, 103, 104, 105, 106, 107, 108, 109, + -1, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 150, 151, -1, 153, 154, 155, 156, 157, 158, -1, -1, 161, -1, 163, 164, 165, 166, -1, 168, -1, - 170, -1, -1, -1, 174, 175, 176, -1, 178, -1, - 180, -1, 182, 183, 184, 185, -1, 187, 188, 189, - 190, 191, 192, 193, -1, 195, 196, 197, 198, -1, - 200, 201, 202, 203, 204, 205, 206, -1, 208, -1, - 210, 211, 212, 213, 214, 215, 216, 217, -1, 219, - -1, 221, -1, -1, 224, -1, 226, 227, 228, 229, - 230, 231, -1, -1, 234, -1, 236, -1, -1, 239, - 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 170, 171, -1, 173, 174, 175, -1, 177, 178, -1, + 180, -1, -1, -1, 184, 185, -1, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, -1, + 200, 201, 202, 203, 204, 205, 206, -1, 208, 209, + -1, 211, 212, 213, 214, 215, 216, 217, -1, 219, + -1, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, -1, -1, 234, 235, 236, 237, -1, 239, + 240, 241, 242, 243, 244, 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, -1, - 270, 271, 272, 273, 274, -1, 276, 277, -1, 279, - -1, 281, 282, 283, 284, 285, 286, -1, 288, 289, - -1, -1, 292, 293, 294, -1, -1, 297, 298, 299, - -1, 301, -1, 303, 304, 305, 306, 307, 308, 309, + 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + 270, 271, 272, 273, -1, -1, 276, 277, 278, 279, + -1, -1, 282, 283, 284, 285, 286, -1, 288, 289, + -1, -1, 292, 293, 294, -1, -1, 297, 298, -1, + 300, 301, 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, -1, 319, - 320, 321, -1, 323, 324, 325, 326, 327, 328, -1, + 320, -1, 322, 323, 324, -1, 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, - 360, -1, 362, 363, -1, 365, 366, 367, 368, 369, + 360, -1, 362, 363, 364, 365, 366, 367, -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, - 380, 381, -1, -1, 384, 385, 386, 387, 388, 389, - 390, 391, 392, -1, -1, 395, 396, 397, 398, -1, + 380, 381, -1, 383, 384, 385, 386, 387, 388, 389, + -1, 391, 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, - 410, 411, 412, 413, 414, -1, -1, 417, 418, -1, - 420, -1, 422, 423, 424, 425, 426, -1, 428, 429, - 430, -1, -1, 433, 434, 435, 436, 437, -1, 439, - 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, - 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, - 460, 461, 462, 463, 464, 465, -1, 467, -1, 469, - 470, 471, 472, 473, 474, 475, -1, -1, 478, -1, - -1, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, - 500, 501, 3, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 22, 23, 24, 25, 26, 27, 28, 29, -1, - 31, 32, 33, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 43, 44, -1, 46, 47, 48, -1, 50, - 51, 52, 53, 54, -1, 56, 57, -1, 59, 60, - 61, 62, 63, 64, -1, -1, 67, 68, 69, 70, - 71, 72, 73, -1, 75, 76, 77, 78, 79, -1, - -1, -1, 83, 84, 85, 86, 87, 88, -1, 90, - 91, 92, -1, 94, 95, 96, 97, 98, 99, -1, - -1, 102, 103, 104, 105, 106, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, -1, 118, -1, 120, - 121, 122, 123, 124, 125, -1, -1, 128, 129, 130, - 131, -1, -1, 134, 135, 136, 137, 138, -1, 140, - 141, 142, -1, 144, 145, 146, -1, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, -1, - 161, -1, 163, 164, 165, 166, -1, 168, -1, 170, - -1, -1, -1, 174, 175, 176, -1, 178, -1, 180, - -1, 182, 183, 184, 185, -1, 187, 188, 189, 190, - 191, 192, 193, -1, 195, 196, 197, 198, -1, 200, - 201, 202, 203, 204, 205, 206, -1, 208, -1, 210, - 211, 212, 213, 214, 215, 216, 217, -1, 219, -1, - 221, -1, -1, 224, -1, 226, 227, 228, 229, 230, - 231, -1, -1, 234, -1, 236, -1, -1, 239, 240, - 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, - 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 263, 264, 265, 266, 267, 268, -1, 270, - 271, 272, 273, 274, -1, 276, 277, -1, 279, -1, - 281, 282, 283, 284, 285, 286, -1, 288, 289, -1, - -1, 292, 293, 294, -1, -1, 297, 298, 299, -1, - 301, -1, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, -1, -1, -1, -1, 319, 320, - 321, -1, 323, 324, 325, 326, 327, 328, -1, 330, - 331, 332, 333, 334, 335, -1, 337, 338, 339, 340, - 341, 342, 343, 344, 345, 346, -1, 348, 349, 350, - 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, - -1, 362, 363, -1, 365, 366, 367, 368, 369, 370, - 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, - 381, -1, -1, 384, 385, 386, 387, 388, 389, 390, - 391, 392, -1, -1, 395, 396, 397, 398, -1, 400, - 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, - 411, 412, 413, 414, -1, -1, 417, 418, -1, 420, - -1, 422, 423, 424, 425, 426, -1, 428, 429, 430, - -1, -1, 433, 434, 435, 436, 437, -1, 439, 440, - 441, 442, 443, 444, 445, 446, -1, -1, 449, 450, - 451, -1, 453, 454, 455, 456, -1, 458, 459, 460, - 461, 462, 463, 464, 465, -1, 467, -1, 469, 470, - 471, 472, 473, 474, 475, -1, -1, 478, -1, -1, - 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, - 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 3, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, -1, -1, -1, 40, -1, - -1, 43, 44, -1, 46, 47, 48, -1, 50, 51, - 52, 53, 54, -1, 56, 57, -1, 59, 60, 61, - 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, 79, -1, -1, - -1, 83, 84, 85, 86, 87, 88, -1, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, -1, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, -1, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, -1, - -1, -1, 174, 175, 176, -1, 178, -1, 180, -1, - 182, 183, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, -1, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, -1, 210, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - -1, -1, 224, -1, 226, 227, 228, 229, 230, 231, - -1, -1, 234, -1, 236, -1, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, -1, 270, 271, - 272, 273, 274, -1, 276, 277, -1, 279, -1, 281, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, 299, -1, 301, - -1, 303, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, 321, - -1, 323, 324, 325, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, -1, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, -1, 384, 385, 386, 387, 388, -1, 390, 391, - 392, -1, -1, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, -1, -1, 417, 418, -1, 420, -1, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, 435, 436, 437, -1, 439, 440, 441, - 442, 443, 444, 445, 446, -1, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, 463, 464, 465, -1, 467, -1, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, - 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 22, - 23, 24, 25, 26, 27, 28, 29, -1, 31, 32, - 33, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 43, 44, -1, 46, 47, 48, -1, 50, 51, 52, - 53, 54, -1, 56, 57, -1, 59, 60, 61, 62, - 63, 64, -1, -1, 67, 68, 69, 70, 71, 72, - 73, -1, 75, 76, 77, 78, 79, -1, -1, -1, - 83, 84, 85, 86, 87, 88, -1, 90, 91, 92, - -1, 94, 95, 96, 97, 98, 99, -1, -1, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, 116, -1, 118, -1, 120, 121, 122, - 123, 124, 125, -1, -1, 128, 129, 130, 131, -1, - -1, 134, 135, 136, 137, 138, -1, 140, 141, 142, - -1, 144, 145, 146, -1, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, -1, 161, -1, - 163, 164, 165, 166, -1, 168, -1, 170, -1, -1, - -1, 174, 175, 176, -1, 178, -1, 180, -1, 182, - 183, 184, 185, -1, 187, 188, 189, 190, 191, 192, - 193, -1, 195, 196, 197, 198, -1, 200, 201, 202, - 203, 204, 205, 206, -1, 208, -1, 210, 211, 212, - 213, 214, 215, 216, 217, -1, 219, -1, 221, -1, - -1, 224, -1, 226, 227, 228, 229, 230, 231, -1, - -1, 234, -1, 236, -1, -1, 239, 240, 241, 242, - 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, - 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, - 263, 264, 265, 266, 267, 268, -1, 270, 271, 272, - 273, 274, -1, 276, 277, -1, 279, -1, 281, 282, - 283, 284, 285, 286, -1, 288, 289, -1, -1, 292, - 293, 294, -1, -1, 297, 298, 299, -1, 301, -1, - 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, - 313, 314, -1, -1, -1, -1, 319, 320, 321, -1, - 323, 324, 325, 326, 327, 328, -1, 330, 331, 332, - 333, 334, 335, -1, 337, 338, 339, 340, 341, 342, - 343, 344, 345, 346, -1, 348, 349, 350, 351, 352, - 353, 354, 355, 356, 357, 358, 359, 360, -1, 362, - 363, -1, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, -1, - -1, 384, 385, 386, 387, 388, 389, 390, 391, 392, - -1, -1, 395, 396, 397, 398, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, -1, -1, 417, 418, -1, 420, -1, 422, - 423, 424, 425, 426, -1, 428, 429, 430, -1, -1, - 433, 434, 435, 436, 437, -1, 439, 440, 441, 442, - 443, 444, 445, 446, -1, -1, 449, 450, 451, -1, - 453, 454, 455, 456, -1, 458, 459, 460, 461, 462, - 463, 464, 465, -1, 467, -1, 469, 470, 471, 472, - 473, 474, 475, -1, -1, 478, -1, -1, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, - 493, 494, 495, 496, 497, 498, 499, 500, 501, 3, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 22, 23, - 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, - 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, - 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, - 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, - -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, - 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, - 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, - 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, - 184, 185, -1, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, - 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, - 214, 215, 216, 217, -1, 219, -1, 221, -1, -1, - 224, -1, 226, 227, 228, 229, 230, 231, -1, -1, - 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, - 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, - 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, - 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, - 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, - 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, - 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, 340, 341, 342, 343, - 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, - -1, 365, 366, 367, 368, 369, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, - 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, - -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, - 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, - 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, - 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, - 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, - 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, - 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, + 410, 411, -1, 413, -1, -1, -1, 417, 418, -1, + 420, 421, 422, 423, 424, 425, 426, -1, 428, 429, + 430, -1, -1, 433, 434, -1, 436, -1, -1, 439, + 440, 441, 442, 443, 444, 445, 446, -1, -1, 449, + 450, 451, -1, 453, 454, 455, 456, -1, 458, 459, + 460, 461, 462, -1, 464, 465, -1, 467, 468, 469, + 470, 471, 472, 473, 474, 475, -1, 22, 478, -1, + -1, 481, 482, 483, 484, 485, 486, 32, -1, 34, + 35, -1, -1, -1, -1, 22, -1, -1, 498, 499, + 500, 501, -1, -1, -1, 32, -1, 52, -1, -1, + -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, + -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, + 75, -1, -1, -1, 61, -1, -1, -1, -1, -1, + -1, 86, -1, -1, -1, -1, -1, -1, 75, -1, + -1, -1, -1, 98, -1, 100, -1, -1, -1, 86, + -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, + -1, 98, -1, 100, -1, -1, -1, -1, -1, -1, + -1, 126, 127, -1, 111, -1, -1, -1, -1, -1, + -1, -1, 137, -1, -1, -1, -1, -1, 143, 126, + 127, -1, -1, -1, -1, -1, 151, -1, -1, -1, + 137, -1, -1, -1, -1, -1, 143, -1, -1, -1, + -1, -1, -1, 168, 151, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, - 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 43, 44, - -1, 46, 47, 48, -1, 50, 51, 52, 53, 54, - -1, 56, 57, -1, 59, 60, 61, 62, 63, 64, - -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, - 75, 76, 77, 78, 79, -1, -1, -1, 83, 84, - 85, 86, 87, 88, -1, 90, 91, 92, -1, 94, - 95, 96, 97, 98, 99, -1, -1, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, -1, 161, -1, 163, 164, - 165, 166, -1, 168, -1, 170, -1, -1, -1, 174, - 175, 176, -1, 178, -1, 180, -1, 182, 183, 184, - 185, -1, 187, 188, 189, 190, 191, 192, 193, -1, - 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, - 205, 206, -1, 208, -1, 210, 211, 212, 213, 214, - 215, 216, 217, -1, 219, -1, 221, -1, -1, 224, - -1, 226, 227, 228, 229, 230, 231, -1, -1, 234, - -1, 236, -1, -1, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, -1, 270, 271, 272, 273, 274, - -1, 276, 277, -1, 279, -1, 281, 282, 283, 284, - 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, - -1, -1, 297, 298, 299, -1, 301, -1, 303, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - -1, -1, -1, -1, 319, 320, 321, -1, 323, 324, - 325, 326, 327, 328, -1, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, -1, 362, 363, -1, - 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, -1, -1, 384, - 385, 386, 387, 388, 389, 390, 391, 392, -1, -1, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, - -1, -1, 417, 418, -1, 420, -1, 422, 423, 424, - 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, - 435, 436, 437, -1, 439, 440, 441, 442, 443, 444, - 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, - 455, 456, -1, 458, 459, 460, 461, 462, 463, 464, - 465, -1, 467, -1, 469, 470, 471, 472, 473, 474, - 475, -1, -1, 478, -1, -1, 481, 482, 483, 484, - 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, - 495, 496, 497, 498, 499, 500, 501, 3, -1, -1, + -1, 168, -1, -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 22, 23, 24, 25, - 26, 27, 28, 29, -1, 31, 32, 33, -1, -1, - -1, 37, -1, -1, -1, -1, 42, 43, 44, -1, - 46, 47, 48, 49, 50, 51, 52, -1, 54, 55, - 56, 57, -1, 59, 60, 61, 62, 63, 64, -1, - -1, 67, 68, 69, 70, 71, 72, 73, -1, 75, - 76, 77, 78, -1, -1, 81, -1, 83, 84, 85, - 86, 87, 88, 89, 90, 91, 92, -1, 94, 95, - 96, 97, 98, 99, -1, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, -1, 118, -1, 120, 121, 122, 123, 124, 125, - -1, -1, 128, 129, 130, 131, -1, -1, 134, 135, - 136, 137, 138, -1, 140, 141, 142, -1, 144, 145, - 146, -1, 148, 149, 150, 151, -1, 153, 154, 155, - 156, 157, 158, -1, -1, 161, -1, 163, 164, 165, - 166, -1, 168, -1, 170, 171, -1, 173, 174, 175, - -1, 177, 178, -1, 180, -1, -1, -1, 184, 185, - -1, 187, 188, 189, 190, 191, 192, 193, 194, 195, - 196, 197, 198, -1, 200, 201, 202, 203, 204, 205, - 206, -1, 208, 209, -1, 211, 212, 213, 214, 215, - 216, 217, -1, 219, -1, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, -1, -1, 234, 235, - 236, 237, -1, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, -1, -1, - 276, 277, 278, 279, -1, -1, 282, 283, 284, 285, - 286, -1, 288, 289, -1, -1, 292, 293, 294, -1, - -1, 297, 298, -1, 300, 301, 302, -1, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, -1, - -1, -1, -1, 319, 320, -1, 322, 323, 324, -1, - 326, 327, 328, -1, 330, 331, 332, 333, 334, 335, - -1, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, - 356, 357, 358, 359, 360, -1, 362, 363, 364, 365, - 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, - 376, 377, 378, 379, 380, 381, -1, 383, 384, 385, - 386, 387, 388, 389, 390, 391, 392, -1, 394, 395, - 396, 397, 398, -1, 400, 401, 402, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 412, 413, -1, -1, - -1, 417, 418, -1, 420, 421, 422, 423, 424, 425, - 426, -1, 428, 429, 430, -1, -1, 433, 434, -1, - 436, -1, -1, 439, 440, 441, 442, 443, 444, 445, - 446, 447, -1, 449, 450, 451, -1, 453, 454, 455, - 456, -1, 458, 459, 460, 461, 462, -1, 464, 465, - -1, 467, 468, 469, 470, 471, 472, 473, 474, 475, - -1, -1, 478, -1, -1, 481, 482, 483, 484, 485, - 486, 3, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 498, 499, 500, 501, -1, -1, -1, -1, - 22, 23, 24, 25, 26, 27, 28, 29, -1, 31, - 32, 33, -1, -1, -1, 37, -1, -1, -1, -1, - 42, 43, 44, -1, 46, 47, 48, 49, 50, 51, - 52, -1, 54, 55, 56, 57, -1, 59, 60, 61, - 62, 63, 64, -1, -1, 67, 68, 69, 70, 71, - 72, 73, -1, 75, 76, 77, 78, -1, -1, 81, - -1, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 92, -1, 94, 95, 96, 97, 98, 99, -1, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, -1, 118, -1, 120, 121, - 122, 123, 124, 125, -1, -1, 128, 129, 130, 131, - -1, -1, 134, 135, 136, 137, 138, -1, 140, 141, - 142, -1, 144, 145, 146, -1, 148, 149, 150, 151, - -1, 153, 154, 155, 156, 157, 158, -1, -1, 161, - -1, 163, 164, 165, 166, -1, 168, -1, 170, 171, - -1, 173, 174, 175, -1, 177, 178, -1, 180, -1, - -1, -1, 184, 185, -1, 187, 188, 189, 190, 191, - 192, 193, 194, 195, 196, 197, 198, -1, 200, 201, - 202, 203, 204, 205, 206, -1, 208, 209, -1, 211, - 212, 213, 214, 215, 216, 217, -1, 219, -1, 221, - 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, - -1, -1, 234, 235, 236, 237, -1, 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, - 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, - 272, 273, -1, -1, 276, 277, 278, 279, -1, -1, - 282, 283, 284, 285, 286, -1, 288, 289, -1, -1, - 292, 293, 294, -1, -1, 297, 298, -1, 300, 301, - 302, -1, 304, 305, 306, 307, 308, 309, 310, 311, - 312, 313, 314, -1, -1, -1, -1, 319, 320, -1, - 322, 323, 324, -1, 326, 327, 328, -1, 330, 331, - 332, 333, 334, 335, -1, 337, 338, 339, 340, 341, - 342, 343, 344, 345, 346, -1, 348, 349, 350, 351, - 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, - 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, - 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - -1, 383, 384, 385, 386, 387, 388, 389, 390, 391, - 392, -1, 394, 395, 396, 397, 398, -1, 400, 401, - 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, -1, -1, -1, 417, 418, -1, 420, 421, - 422, 423, 424, 425, 426, -1, 428, 429, 430, -1, - -1, 433, 434, -1, 436, -1, -1, 439, 440, 441, - 442, 443, 444, 445, 446, 447, -1, 449, 450, 451, - -1, 453, 454, 455, 456, -1, 458, 459, 460, 461, - 462, -1, 464, 465, -1, 467, 468, 469, 470, 471, - 472, 473, 474, 475, -1, -1, 478, -1, -1, 481, - 482, 483, 484, 485, 486, 3, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 498, 499, 500, 501, - -1, -1, -1, -1, 22, 23, 24, 25, 26, 27, - 28, 29, -1, 31, 32, 33, -1, -1, -1, 37, - -1, -1, -1, -1, 42, 43, 44, -1, 46, 47, - 48, 49, 50, 51, 52, -1, 54, 55, 56, 57, - -1, 59, 60, 61, 62, 63, 64, -1, -1, 67, - 68, 69, 70, 71, 72, 73, -1, 75, 76, 77, - 78, -1, -1, 81, -1, 83, 84, 85, 86, 87, - 88, 89, 90, 91, 92, -1, 94, 95, 96, 97, - 98, 99, -1, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 114, 115, 116, -1, - 118, -1, 120, 121, 122, 123, 124, 125, -1, -1, - 128, 129, 130, 131, -1, -1, 134, 135, 136, 137, - 138, -1, 140, 141, 142, -1, 144, 145, 146, -1, - 148, 149, 150, 151, -1, 153, 154, 155, 156, 157, - 158, -1, -1, 161, -1, 163, 164, 165, 166, -1, - 168, -1, 170, 171, -1, 173, 174, 175, 176, 177, - 178, -1, 180, -1, -1, -1, 184, 185, -1, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, - 198, -1, 200, 201, 202, 203, 204, 205, 206, -1, - 208, 209, -1, 211, 212, 213, 214, 215, 216, 217, - -1, 219, -1, 221, 222, 223, 224, 225, 226, 227, - 228, 229, 230, 231, -1, -1, 234, 235, 236, 237, - -1, 239, 240, 241, 242, 243, 244, 245, 246, 247, - 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 268, 269, 270, 271, 272, 273, -1, -1, 276, 277, - 278, 279, -1, -1, 282, 283, 284, 285, 286, -1, - 288, 289, -1, -1, 292, 293, 294, -1, -1, 297, - 298, -1, 300, 301, 302, -1, 304, 305, 306, 307, - 308, 309, 310, 311, 312, 313, 314, -1, -1, -1, - -1, 319, 320, -1, 322, 323, 324, -1, 326, 327, - 328, -1, 330, 331, 332, 333, 334, 335, -1, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, -1, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, -1, 362, 363, 364, 365, 366, 367, - -1, 369, 370, 371, 372, 373, 374, 375, 376, 377, - 378, 379, 380, 381, -1, 383, 384, 385, 386, 387, - 388, 389, -1, 391, 392, -1, 394, 395, 396, 397, - 398, -1, 400, 401, 402, 403, 404, 405, 406, 407, - 408, 409, 410, 411, 412, 413, -1, -1, -1, 417, - 418, -1, 420, 421, 422, 423, 424, 425, 426, -1, - 428, 429, 430, -1, -1, 433, 434, -1, 436, -1, - -1, 439, 440, 441, 442, 443, 444, 445, 446, -1, - -1, 449, 450, 451, -1, 453, 454, 455, 456, -1, - 458, 459, 460, 461, 462, -1, 464, 465, -1, 467, - 468, 469, 470, 471, 472, 473, 474, 475, -1, -1, - 478, -1, -1, 481, 482, 483, 484, 485, 486, 3, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 498, 499, 500, 501, -1, -1, -1, -1, 22, 23, - 24, 25, 26, 27, 28, 29, -1, 31, 32, 33, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 43, - 44, -1, 46, 47, 48, -1, 50, 51, 52, 53, - 54, -1, 56, 57, -1, 59, 60, 61, 62, 63, - 64, -1, -1, 67, 68, 69, 70, 71, 72, 73, - -1, 75, 76, 77, 78, 79, -1, -1, -1, 83, - 84, 85, 86, 87, 88, -1, 90, 91, 92, -1, - 94, 95, 96, 97, 98, 99, -1, -1, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, -1, 118, -1, 120, 121, 122, 123, - 124, 125, -1, -1, 128, 129, 130, 131, -1, -1, - 134, 135, 136, 137, 138, -1, 140, 141, 142, -1, - 144, 145, 146, -1, 148, 149, 150, 151, 152, 153, - 154, 155, 156, 157, 158, 159, -1, 161, -1, 163, - 164, 165, 166, -1, 168, -1, 170, -1, -1, -1, - 174, 175, 176, -1, 178, -1, 180, -1, 182, 183, - -1, 185, -1, 187, 188, 189, 190, 191, 192, 193, - -1, 195, 196, 197, 198, -1, 200, 201, 202, 203, - 204, 205, 206, -1, 208, -1, 210, 211, 212, 213, - 214, 215, 216, 217, -1, 219, -1, 221, -1, -1, - 224, -1, 226, 227, 228, 229, 230, 231, -1, -1, - 234, -1, 236, -1, -1, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, - 264, 265, 266, 267, 268, -1, 270, 271, 272, 273, - 274, -1, 276, 277, -1, 279, -1, 281, 282, 283, - 284, 285, 286, -1, 288, 289, -1, -1, 292, 293, - 294, -1, -1, 297, 298, 299, -1, 301, -1, 303, - 304, 305, 306, 307, 308, 309, -1, 311, 312, 313, - 314, -1, -1, -1, -1, 319, 320, 321, -1, 323, - 324, 325, 326, 327, 328, -1, 330, 331, 332, 333, - 334, 335, -1, 337, 338, 339, -1, 341, 342, 343, - 344, 345, 346, -1, 348, 349, 350, 351, 352, 353, - 354, 355, 356, 357, 358, 359, 360, -1, 362, 363, - -1, 365, 366, 367, 368, -1, 370, 371, 372, 373, - 374, 375, 376, 377, 378, 379, 380, 381, -1, -1, - 384, 385, 386, 387, 388, 389, 390, 391, 392, -1, - -1, 395, 396, 397, 398, -1, 400, 401, 402, 403, - 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, - 414, -1, -1, 417, 418, -1, 420, -1, 422, 423, - 424, 425, 426, -1, 428, 429, 430, -1, -1, 433, - 434, 435, 436, 437, -1, 439, 440, 441, 442, 443, - 444, 445, 446, -1, -1, 449, 450, 451, -1, 453, - 454, 455, 456, -1, 458, 459, 460, 461, 462, 463, - 464, 465, -1, 467, -1, 469, 470, 471, 472, 473, - 474, 475, -1, -1, 478, -1, -1, 481, 482, 483, - 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, - 494, 495, 496, 497, 498, 499, 500, 501, 3, -1, + -1, -1, -1, -1, -1, -1, -1, 214, -1, -1, + -1, -1, -1, -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 22, 23, 24, - 25, 26, 27, 28, 29, -1, 31, 32, 33, -1, - -1, -1, 37, -1, -1, -1, -1, 42, 43, 44, - -1, 46, 47, 48, 49, 50, 51, 52, -1, 54, - 55, 56, 57, -1, 59, 60, 61, 62, 63, 64, - -1, -1, 67, 68, 69, 70, 71, 72, 73, -1, - 75, 76, 77, 78, -1, -1, 81, -1, 83, 84, - 85, 86, 87, 88, 89, 90, 91, 92, -1, 94, - 95, 96, 97, 98, 99, -1, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, -1, 118, -1, 120, 121, 122, 123, 124, - 125, -1, -1, 128, 129, 130, 131, -1, -1, 134, - 135, 136, 137, 138, -1, 140, 141, 142, -1, 144, - 145, 146, -1, 148, 149, 150, 151, -1, 153, 154, - 155, 156, 157, 158, -1, -1, 161, -1, 163, 164, - 165, 166, -1, 168, -1, 170, 171, -1, 173, 174, - 175, -1, 177, 178, -1, 180, -1, -1, -1, 184, - 185, -1, 187, 188, 189, 190, 191, 192, 193, 194, - 195, 196, 197, 198, -1, 200, 201, 202, 203, 204, - 205, 206, -1, 208, 209, -1, 211, 212, 213, 214, - 215, 216, 217, -1, 219, -1, 221, 222, 223, 224, - 225, 226, 227, 228, 229, 230, 231, -1, -1, 234, - 235, 236, 237, -1, 239, 240, 241, 242, 243, 244, - 245, 246, -1, 248, 249, 250, 251, 252, 253, 254, - 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, -1, - -1, 276, 277, 278, 279, -1, -1, 282, 283, 284, - 285, 286, -1, 288, 289, -1, -1, 292, 293, 294, - -1, -1, 297, 298, -1, 300, 301, 302, -1, 304, - 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - -1, -1, -1, -1, 319, 320, -1, 322, 323, 324, - -1, 326, 327, 328, -1, 330, 331, 332, 333, 334, - 335, -1, 337, 338, 339, 340, 341, 342, 343, 344, - 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, - 355, 356, 357, 358, 359, 360, -1, 362, 363, 364, - 365, 366, 367, -1, 369, 370, 371, 372, 373, 374, - 375, 376, 377, 378, 379, 380, 381, -1, 383, 384, - 385, 386, 387, 388, 389, -1, 391, 392, -1, 394, - 395, 396, 397, 398, -1, 400, 401, 402, 403, 404, - 405, 406, 407, 408, 409, 410, 411, -1, 413, -1, - -1, -1, 417, 418, -1, 420, 421, 422, 423, 424, - 425, 426, -1, 428, 429, 430, -1, -1, 433, 434, - -1, 436, -1, -1, 439, 440, 441, 442, 443, 444, - 445, 446, -1, -1, 449, 450, 451, -1, 453, 454, - 455, 456, -1, 458, 459, 460, 461, 462, -1, 464, - 465, -1, 467, 468, 469, 470, 471, 472, 473, 474, - 475, -1, 22, 478, -1, -1, 481, 482, 483, 484, - 485, 486, 32, -1, 34, 35, -1, -1, -1, -1, - 22, -1, -1, 498, 499, 500, 501, -1, -1, -1, - 32, -1, 52, -1, -1, -1, -1, -1, -1, -1, - -1, 61, -1, -1, -1, -1, -1, -1, -1, -1, - 52, -1, -1, -1, -1, 75, -1, -1, -1, 61, - -1, -1, -1, -1, -1, -1, 86, -1, -1, -1, - -1, -1, -1, 75, -1, -1, -1, -1, 98, -1, - 100, -1, -1, -1, 86, -1, -1, -1, -1, -1, - -1, 111, -1, -1, -1, -1, 98, -1, 100, -1, - -1, -1, -1, -1, -1, -1, 126, 127, -1, 111, - -1, -1, -1, -1, -1, -1, -1, 137, -1, -1, - -1, -1, -1, 143, 126, 127, -1, -1, -1, -1, - -1, 151, -1, -1, -1, 137, -1, -1, -1, -1, - -1, 143, -1, -1, -1, -1, -1, -1, 168, 151, - -1, -1, 172, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 168, -1, -1, -1, - 172, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 214, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 214, -1, -1, -1, -1, -1, -1, -1, - 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 240, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 315, 316, 317, -1, -1, -1, -1, -1, 323, -1, + -1, 326, -1, -1, -1, -1, -1, -1, 315, 316, + 317, -1, -1, -1, -1, -1, 323, -1, -1, 326, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 357, -1, -1, -1, -1, -1, -1, -1, + -1, 366, -1, -1, -1, -1, -1, -1, -1, -1, + 357, -1, -1, -1, -1, -1, -1, 382, -1, 366, + -1, -1, -1, -1, 389, -1, -1, -1, 393, -1, + -1, -1, -1, -1, -1, 382, -1, -1, 403, -1, + -1, -1, 389, -1, -1, -1, 393, -1, -1, -1, + 415, -1, -1, -1, 419, -1, 403, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 415, -1, + -1, -1, 419, -1, 439, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 452, -1, -1, + -1, -1, 439, 458, -1, -1, -1, -1, 463, -1, + -1, -1, -1, 468, -1, 452, -1, -1, -1, -1, + -1, 458, -1, -1, -1, 480, 463, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 315, 316, 317, -1, -1, - -1, -1, -1, 323, -1, -1, 326, -1, -1, -1, - -1, -1, -1, 315, 316, 317, -1, -1, -1, -1, - -1, 323, -1, -1, 326, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 357, -1, -1, - -1, -1, -1, -1, -1, -1, 366, -1, -1, -1, - -1, -1, -1, -1, -1, 357, -1, -1, -1, -1, - -1, -1, 382, -1, 366, -1, -1, -1, -1, 389, - -1, -1, -1, 393, -1, -1, -1, -1, -1, -1, - 382, -1, -1, 403, -1, -1, -1, 389, -1, -1, - -1, 393, -1, -1, -1, 415, -1, -1, -1, 419, - -1, 403, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 415, -1, -1, -1, 419, -1, 439, + -1, -1, -1, 480, -1, -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 452, -1, -1, -1, -1, 439, 458, -1, - -1, -1, -1, 463, -1, -1, -1, -1, 468, -1, - 452, -1, -1, -1, -1, -1, 458, -1, -1, -1, - 480, 463, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 480, -1, - -1, -1, -1, -1, 504, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 518, -1, - -1, -1, 504, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 518 + -1, -1, -1, 518, -1, -1, -1, 504, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 518 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -18996,11 +19357,11 @@ static const yytype_uint16 yystos[] = 452, 455, 458, 463, 480, 504, 518, 530, 531, 532, 533, 544, 553, 555, 560, 576, 579, 580, 582, 586, 587, 591, 598, 600, 603, 604, 652, 658, 667, 668, - 686, 687, 688, 689, 691, 693, 694, 698, 751, 752, - 925, 928, 931, 938, 939, 941, 944, 945, 946, 953, - 957, 963, 964, 967, 972, 976, 977, 978, 981, 984, - 985, 986, 990, 991, 993, 433, 483, 601, 203, 373, - 384, 419, 470, 108, 192, 979, 601, 3, 22, 23, + 686, 687, 688, 689, 691, 693, 694, 698, 752, 753, + 935, 938, 941, 948, 949, 951, 954, 955, 956, 963, + 967, 973, 974, 977, 982, 986, 987, 988, 991, 994, + 995, 996, 999, 1000, 1002, 433, 483, 601, 203, 373, + 384, 419, 470, 108, 192, 989, 601, 3, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32, 33, 42, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, 60, 61, 62, 63, 64, @@ -19041,10 +19402,10 @@ static const yytype_uint16 yystos[] = 467, 468, 469, 470, 471, 472, 473, 474, 475, 478, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, - 501, 546, 831, 914, 918, 996, 997, 998, 3, 176, - 247, 412, 546, 940, 996, 290, 601, 55, 172, 518, + 501, 546, 834, 924, 928, 1005, 1006, 1007, 3, 176, + 247, 412, 546, 950, 1005, 290, 601, 55, 172, 518, 681, 178, 241, 295, 314, 373, 423, 425, 442, 448, - 451, 584, 650, 937, 5, 30, 326, 546, 547, 913, + 451, 584, 650, 947, 5, 30, 326, 546, 547, 923, 3, 30, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 49, 53, 54, 55, 56, 57, 58, 65, 66, 71, 72, 74, 79, 80, 81, 82, 83, 89, @@ -19060,293 +19421,297 @@ static const yytype_uint16 yystos[] = 412, 414, 415, 416, 419, 421, 427, 429, 430, 431, 432, 435, 437, 438, 441, 447, 448, 452, 457, 463, 464, 466, 468, 476, 477, 479, 480, 487, 488, 489, - 490, 491, 492, 493, 494, 495, 496, 497, 552, 996, - 1000, 1002, 24, 81, 97, 146, 156, 169, 174, 203, + 490, 491, 492, 493, 494, 495, 496, 497, 552, 1005, + 1009, 1011, 24, 81, 97, 146, 156, 169, 174, 203, 246, 250, 320, 335, 370, 373, 384, 387, 405, 419, 425, 426, 436, 442, 470, 584, 653, 654, 657, 601, - 913, 100, 137, 468, 518, 533, 544, 553, 555, 576, + 923, 100, 137, 468, 518, 533, 544, 553, 555, 576, 579, 580, 586, 587, 591, 600, 604, 652, 658, 667, - 668, 686, 925, 928, 931, 938, 939, 949, 953, 957, - 963, 967, 972, 981, 984, 990, 991, 993, 108, 75, + 668, 686, 935, 938, 941, 948, 949, 959, 963, 967, + 973, 977, 982, 991, 994, 999, 1000, 1002, 108, 75, 66, 79, 81, 159, 232, 281, 291, 303, 321, 369, 414, 435, 437, 441, 463, 518, 545, 546, 547, 687, - 752, 754, 756, 766, 773, 774, 831, 833, 834, 108, - 5, 546, 548, 965, 546, 913, 30, 178, 241, 388, - 429, 433, 465, 546, 982, 983, 988, 601, 30, 132, - 707, 708, 178, 241, 373, 388, 429, 465, 958, 959, - 988, 601, 546, 686, 698, 989, 546, 773, 419, 704, - 545, 173, 518, 969, 518, 345, 699, 700, 913, 699, - 687, 688, 984, 0, 521, 122, 213, 454, 147, 218, - 296, 447, 710, 711, 756, 756, 687, 689, 691, 522, - 468, 947, 214, 30, 429, 433, 686, 989, 192, 545, - 913, 192, 545, 192, 773, 192, 545, 275, 548, 341, - 602, 516, 520, 549, 550, 518, 82, 108, 174, 203, - 246, 373, 384, 419, 442, 470, 943, 108, 686, 545, - 423, 425, 423, 425, 355, 192, 545, 545, 380, 174, - 246, 345, 384, 419, 470, 665, 203, 30, 913, 192, - 552, 252, 436, 107, 419, 419, 470, 377, 380, 192, - 546, 655, 920, 192, 910, 913, 192, 913, 518, 590, - 295, 425, 949, 3, 463, 950, 952, 953, 955, 956, - 996, 1000, 947, 546, 548, 940, 518, 518, 167, 518, - 687, 774, 518, 518, 545, 518, 518, 172, 518, 518, - 518, 518, 687, 752, 756, 766, 511, 549, 40, 546, - 767, 768, 767, 382, 522, 690, 37, 42, 101, 173, - 209, 225, 235, 269, 315, 322, 364, 383, 452, 770, - 768, 40, 546, 767, 769, 504, 778, 548, 507, 518, - 518, 926, 983, 983, 983, 501, 224, 983, 520, 290, - 4, 6, 7, 8, 9, 10, 39, 54, 56, 57, - 65, 71, 72, 83, 112, 115, 117, 136, 152, 160, - 165, 182, 183, 216, 217, 219, 247, 268, 270, 275, - 280, 283, 292, 342, 368, 397, 429, 430, 438, 464, - 502, 509, 510, 511, 516, 518, 523, 524, 525, 526, - 546, 548, 687, 741, 790, 793, 796, 797, 798, 800, - 801, 802, 803, 805, 806, 822, 824, 825, 826, 827, - 828, 829, 830, 831, 832, 834, 836, 851, 852, 863, - 885, 892, 900, 901, 902, 914, 915, 916, 899, 901, - 958, 958, 548, 958, 501, 958, 172, 431, 507, 602, - 520, 549, 773, 973, 3, 171, 173, 468, 953, 968, - 970, 171, 971, 822, 869, 870, 699, 522, 518, 922, - 519, 519, 519, 532, 172, 295, 563, 157, 973, 30, - 132, 705, 705, 59, 705, 162, 167, 238, 287, 716, - 718, 719, 744, 746, 747, 748, 181, 290, 457, 290, - 710, 711, 518, 545, 965, 420, 987, 501, 224, 152, - 26, 32, 137, 294, 353, 357, 389, 460, 538, 541, - 542, 353, 152, 40, 60, 106, 202, 251, 261, 273, - 305, 353, 359, 384, 389, 403, 541, 592, 595, 152, - 353, 389, 541, 152, 353, 389, 541, 152, 40, 980, - 291, 485, 822, 893, 551, 552, 550, 3, 30, 37, - 42, 49, 55, 81, 83, 89, 101, 132, 171, 173, - 176, 177, 194, 209, 222, 223, 225, 235, 237, 247, - 269, 278, 300, 302, 322, 364, 383, 394, 412, 421, - 441, 466, 468, 519, 822, 872, 873, 917, 923, 996, - 1001, 822, 419, 545, 546, 519, 518, 639, 373, 584, - 650, 275, 929, 40, 192, 546, 583, 470, 192, 545, - 192, 545, 995, 192, 545, 192, 545, 89, 934, 152, - 484, 90, 129, 308, 424, 192, 546, 152, 520, 921, - 63, 360, 522, 656, 152, 522, 656, 152, 290, 588, - 589, 822, 923, 355, 519, 522, 4, 160, 290, 438, - 509, 510, 548, 594, 597, 916, 948, 950, 951, 954, - 949, 431, 518, 676, 680, 822, 870, 518, 3, 68, - 69, 109, 110, 113, 114, 189, 190, 253, 254, 255, - 256, 257, 258, 259, 260, 263, 264, 337, 338, 378, - 379, 474, 475, 498, 499, 548, 808, 809, 810, 811, - 812, 813, 814, 815, 816, 817, 818, 819, 820, 875, - 876, 768, 769, 822, 545, 822, 877, 509, 510, 546, - 823, 824, 852, 863, 879, 518, 822, 869, 880, 822, - 58, 172, 233, 432, 822, 870, 883, 822, 519, 547, - 518, 421, 724, 725, 725, 707, 708, 756, 220, 702, - 225, 37, 225, 383, 770, 225, 300, 771, 756, 771, - 225, 770, 518, 225, 771, 225, 148, 200, 758, 225, - 725, 518, 547, 518, 725, 297, 822, 960, 962, 872, - 3, 37, 42, 49, 54, 55, 56, 57, 71, 72, - 81, 83, 89, 101, 112, 115, 165, 171, 173, 177, - 194, 209, 216, 217, 219, 222, 223, 225, 235, 237, - 247, 268, 269, 270, 278, 283, 300, 302, 322, 342, - 364, 368, 383, 390, 394, 397, 412, 421, 429, 430, - 441, 447, 464, 468, 784, 786, 787, 789, 791, 793, - 795, 797, 798, 799, 801, 802, 805, 806, 874, 919, - 996, 999, 40, 236, 546, 518, 516, 687, 467, 804, - 822, 889, 804, 804, 518, 518, 792, 792, 325, 687, - 518, 794, 526, 71, 72, 804, 822, 792, 518, 518, - 482, 504, 518, 807, 518, 807, 822, 822, 822, 83, - 148, 903, 904, 822, 870, 871, 687, 822, 869, 9, - 552, 547, 853, 854, 855, 520, 549, 894, 549, 518, - 548, 518, 518, 548, 916, 3, 8, 11, 15, 16, - 17, 18, 19, 20, 21, 36, 40, 46, 53, 80, - 177, 194, 199, 222, 223, 237, 275, 278, 292, 295, - 394, 502, 505, 506, 507, 509, 510, 511, 512, 513, - 514, 861, 862, 863, 865, 897, 481, 837, 302, 822, - 522, 702, 518, 548, 702, 3, 117, 241, 548, 594, - 806, 961, 104, 962, 962, 546, 40, 546, 519, 522, - 947, 522, 519, 700, 910, 911, 40, 973, 193, 355, - 220, 639, 389, 689, 689, 30, 712, 713, 822, 59, - 689, 706, 164, 272, 732, 227, 273, 341, 392, 454, - 4, 9, 30, 727, 822, 509, 510, 728, 729, 822, - 824, 744, 745, 719, 718, 716, 717, 167, 747, 285, - 749, 59, 695, 696, 697, 759, 823, 901, 901, 716, - 744, 870, 922, 172, 469, 966, 236, 545, 74, 82, - 93, 169, 192, 329, 448, 546, 621, 631, 646, 82, - 93, 554, 93, 554, 518, 431, 518, 619, 245, 451, - 619, 93, 522, 431, 545, 3, 789, 594, 59, 596, - 594, 594, 106, 251, 261, 59, 431, 480, 504, 593, - 266, 373, 593, 595, 773, 93, 431, 554, 373, 545, - 431, 373, 979, 546, 676, 517, 528, 872, 872, 873, - 522, 710, 711, 13, 14, 222, 222, 431, 431, 546, - 638, 643, 480, 679, 545, 380, 345, 384, 419, 470, - 665, 152, 100, 580, 604, 930, 931, 991, 144, 786, - 275, 199, 585, 545, 275, 581, 592, 275, 518, 639, - 40, 275, 639, 275, 518, 659, 660, 661, 662, 663, - 664, 666, 192, 546, 633, 935, 552, 152, 172, 599, - 655, 551, 520, 920, 910, 913, 913, 920, 519, 522, - 13, 949, 955, 4, 916, 4, 916, 548, 552, 678, - 685, 55, 102, 123, 141, 145, 168, 171, 187, 280, - 288, 310, 339, 682, 40, 519, 822, 519, 172, 522, - 519, 318, 878, 519, 823, 823, 11, 15, 16, 19, - 20, 21, 199, 222, 292, 505, 506, 507, 509, 510, - 511, 512, 513, 514, 863, 823, 519, 775, 776, 833, - 167, 172, 881, 882, 522, 519, 40, 883, 870, 883, - 883, 172, 519, 40, 767, 518, 911, 4, 9, 546, - 720, 722, 723, 901, 899, 178, 241, 419, 423, 425, - 451, 545, 703, 477, 779, 756, 756, 225, 756, 290, - 457, 772, 756, 225, 901, 756, 756, 282, 282, 518, - 756, 547, 780, 781, 518, 547, 780, 522, 519, 522, - 520, 518, 789, 518, 518, 520, 39, 788, 518, 808, - 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, - 819, 820, 821, 519, 522, 792, 555, 560, 667, 668, - 686, 927, 972, 984, 870, 871, 518, 476, 886, 887, - 822, 871, 916, 822, 856, 857, 858, 859, 804, 804, - 8, 15, 16, 19, 20, 21, 505, 506, 507, 509, - 510, 511, 512, 513, 514, 546, 861, 866, 519, 870, - 429, 429, 916, 916, 518, 518, 546, 355, 908, 167, - 517, 519, 522, 528, 522, 527, 511, 550, 870, 916, - 822, 821, 821, 786, 822, 822, 822, 822, 822, 822, - 822, 822, 5, 552, 924, 429, 45, 416, 898, 920, - 822, 822, 518, 687, 827, 884, 892, 132, 160, 275, - 280, 285, 438, 449, 822, 280, 518, 822, 431, 53, - 177, 194, 199, 237, 394, 822, 822, 822, 822, 822, - 822, 822, 822, 822, 822, 30, 38, 399, 860, 516, - 520, 896, 181, 163, 838, 368, 518, 852, 902, 172, - 753, 872, 753, 518, 548, 546, 545, 968, 545, 976, - 822, 522, 519, 250, 275, 701, 457, 975, 545, 557, - 518, 546, 562, 572, 573, 575, 41, 126, 714, 522, - 457, 714, 266, 689, 368, 369, 509, 510, 729, 731, - 824, 392, 227, 291, 313, 313, 522, 513, 4, 730, - 916, 730, 368, 369, 731, 545, 909, 279, 396, 750, - 518, 911, 912, 522, 181, 457, 199, 181, 220, 745, - 717, 519, 546, 548, 546, 548, 353, 541, 518, 192, - 631, 913, 227, 275, 227, 457, 518, 624, 785, 786, - 913, 546, 192, 913, 192, 546, 26, 137, 389, 537, - 540, 552, 615, 629, 913, 552, 623, 642, 913, 538, - 913, 353, 389, 541, 592, 594, 920, 913, 594, 920, - 913, 594, 353, 389, 541, 913, 913, 913, 913, 353, - 389, 541, 913, 913, 548, 510, 822, 893, 710, 710, - 710, 466, 873, 193, 358, 709, 822, 822, 280, 548, - 942, 280, 942, 546, 334, 675, 519, 522, 288, 172, - 431, 670, 929, 583, 470, 545, 545, 995, 545, 545, - 545, 295, 650, 518, 687, 152, 3, 518, 518, 152, - 152, 237, 546, 621, 631, 634, 637, 647, 649, 480, - 482, 626, 151, 686, 152, 480, 936, 152, 519, 872, - 522, 522, 40, 275, 290, 546, 3, 656, 551, 656, - 290, 656, 588, 822, 676, 247, 511, 516, 518, 594, - 677, 828, 829, 830, 954, 519, 522, 40, 674, 548, - 674, 275, 280, 339, 674, 59, 674, 786, 519, 822, - 822, 822, 881, 786, 823, 823, 823, 823, 823, 823, - 132, 275, 285, 823, 823, 823, 823, 823, 823, 823, - 823, 823, 823, 519, 522, 40, 777, 822, 822, 882, - 881, 786, 519, 519, 519, 870, 786, 911, 519, 313, - 513, 313, 369, 513, 518, 518, 702, 423, 425, 423, - 425, 545, 704, 704, 704, 822, 181, 733, 772, 772, - 756, 822, 518, 756, 167, 772, 518, 547, 763, 772, - 786, 519, 522, 780, 519, 960, 3, 874, 39, 788, - 546, 783, 783, 3, 516, 516, 916, 431, 431, 431, - 431, 786, 454, 519, 517, 870, 822, 139, 887, 888, - 519, 519, 519, 528, 522, 527, 520, 519, 519, 501, - 501, 519, 519, 822, 911, 518, 822, 905, 546, 835, - 890, 891, 822, 822, 853, 904, 519, 519, 519, 501, - 823, 823, 145, 870, 172, 132, 160, 280, 285, 438, - 449, 518, 145, 866, 822, 416, 898, 822, 884, 822, - 431, 518, 687, 822, 893, 551, 518, 518, 155, 839, - 754, 755, 779, 710, 779, 916, 821, 922, 922, 250, - 518, 755, 477, 974, 40, 59, 558, 568, 575, 894, - 522, 753, 507, 503, 715, 713, 292, 861, 864, 715, - 4, 916, 731, 291, 454, 728, 522, 244, 911, 695, - 59, 901, 518, 547, 59, 266, 966, 966, 431, 822, - 275, 646, 518, 152, 518, 624, 203, 643, 644, 605, - 40, 176, 614, 640, 605, 26, 137, 357, 359, 389, - 534, 535, 536, 542, 543, 152, 656, 152, 656, 615, - 629, 615, 519, 522, 548, 608, 507, 520, 519, 522, - 431, 373, 93, 431, 554, 373, 431, 431, 431, 373, - 980, 528, 517, 528, 709, 709, 709, 873, 282, 282, - 519, 518, 669, 3, 406, 407, 548, 684, 638, 675, - 585, 545, 581, 518, 40, 639, 662, 664, 929, 355, - 419, 548, 577, 578, 583, 685, 643, 545, 545, 995, - 545, 519, 522, 288, 619, 288, 290, 618, 913, 480, - 994, 545, 619, 40, 545, 519, 660, 666, 663, 666, - 419, 822, 152, 545, 599, 920, 672, 683, 954, 678, - 548, 548, 280, 643, 511, 643, 548, 511, 643, 548, - 519, 519, 882, 172, 132, 285, 518, 778, 775, 518, - 519, 519, 519, 546, 720, 779, 704, 704, 704, 704, - 545, 545, 545, 59, 186, 742, 772, 911, 518, 760, - 761, 762, 825, 827, 911, 167, 80, 782, 781, 519, - 519, 516, 786, 519, 522, 519, 916, 517, 916, 519, - 809, 811, 812, 813, 812, 813, 813, 519, 427, 822, - 143, 822, 856, 866, 807, 807, 519, 519, 822, 905, - 906, 907, 40, 199, 522, 519, 908, 821, 822, 36, - 36, 822, 519, 822, 172, 518, 874, 822, 519, 145, - 823, 823, 145, 145, 822, 822, 517, 528, 518, 895, - 711, 477, 822, 301, 843, 522, 733, 709, 733, 519, - 927, 822, 361, 566, 546, 266, 321, 117, 304, 518, - 556, 686, 519, 522, 562, 974, 822, 164, 231, 518, - 715, 291, 545, 519, 912, 181, 687, 688, 901, 912, - 913, 913, 519, 152, 644, 631, 644, 605, 633, 522, - 519, 119, 207, 273, 275, 630, 518, 33, 59, 651, - 640, 74, 80, 93, 117, 119, 207, 275, 280, 329, - 347, 448, 457, 610, 611, 625, 176, 117, 191, 275, - 619, 593, 107, 117, 176, 275, 405, 408, 595, 619, - 389, 536, 442, 913, 546, 540, 3, 37, 42, 49, - 55, 81, 83, 89, 101, 171, 173, 176, 177, 194, - 209, 222, 223, 225, 235, 237, 247, 269, 274, 278, - 292, 300, 302, 322, 364, 383, 390, 394, 412, 421, - 441, 447, 468, 509, 510, 548, 594, 606, 645, 786, - 864, 917, 996, 1002, 552, 642, 913, 913, 913, 913, - 913, 913, 913, 913, 913, 913, 676, 893, 893, 519, - 519, 519, 710, 107, 373, 520, 593, 684, 518, 518, - 637, 686, 936, 650, 192, 545, 519, 522, 585, 519, - 519, 581, 518, 40, 628, 626, 634, 86, 590, 107, - 273, 639, 686, 662, 664, 40, 40, 687, 688, 633, - 457, 933, 656, 519, 522, 643, 823, 172, 518, 874, - 780, 519, 522, 519, 733, 545, 545, 545, 545, 30, - 103, 182, 367, 518, 734, 735, 736, 737, 738, 739, - 740, 822, 822, 479, 840, 519, 824, 867, 868, 199, - 181, 757, 761, 519, 763, 764, 765, 920, 788, 916, - 788, 546, 788, 517, 517, 822, 522, 519, 546, 822, - 824, 891, 822, 822, 822, 874, 519, 822, 36, 36, - 822, 822, 145, 519, 510, 893, 519, 872, 519, 822, - 519, 518, 546, 844, 742, 519, 742, 548, 519, 900, + 753, 755, 757, 758, 768, 775, 776, 834, 836, 837, + 108, 5, 546, 548, 975, 546, 923, 30, 178, 241, + 388, 429, 433, 465, 546, 992, 993, 998, 601, 30, + 132, 707, 708, 178, 241, 373, 388, 429, 465, 968, + 969, 998, 601, 545, 546, 547, 686, 698, 775, 419, + 704, 545, 173, 518, 979, 518, 345, 699, 700, 923, + 699, 687, 688, 994, 0, 521, 122, 213, 454, 147, + 218, 296, 447, 710, 711, 758, 758, 687, 689, 691, + 522, 468, 957, 214, 30, 429, 433, 545, 686, 192, + 545, 923, 192, 545, 192, 775, 192, 545, 275, 548, + 341, 602, 516, 520, 549, 550, 518, 82, 108, 174, + 203, 246, 373, 384, 419, 442, 470, 953, 108, 686, + 545, 423, 425, 423, 425, 355, 192, 545, 545, 380, + 174, 246, 345, 384, 419, 470, 665, 203, 30, 923, + 192, 552, 252, 436, 107, 419, 419, 470, 377, 380, + 192, 546, 655, 930, 192, 920, 923, 192, 923, 518, + 590, 295, 425, 959, 3, 463, 960, 962, 963, 965, + 966, 1005, 1009, 957, 546, 548, 950, 518, 518, 167, + 518, 687, 776, 518, 518, 545, 518, 518, 172, 518, + 518, 518, 518, 687, 753, 758, 768, 511, 549, 523, + 40, 546, 769, 770, 769, 382, 522, 690, 518, 687, + 775, 776, 37, 42, 101, 173, 209, 225, 235, 269, + 315, 322, 364, 383, 452, 772, 770, 40, 546, 769, + 771, 504, 780, 548, 507, 518, 518, 936, 993, 993, + 993, 501, 224, 993, 520, 290, 4, 6, 7, 8, + 9, 10, 39, 54, 56, 57, 65, 71, 72, 83, + 112, 115, 117, 136, 152, 160, 165, 182, 183, 216, + 217, 219, 247, 268, 270, 275, 280, 283, 292, 342, + 368, 397, 429, 430, 438, 464, 502, 509, 510, 511, + 516, 518, 524, 525, 526, 527, 546, 548, 687, 742, + 792, 795, 798, 799, 800, 802, 803, 804, 805, 807, + 808, 824, 826, 827, 828, 829, 830, 831, 832, 833, + 834, 835, 837, 839, 854, 855, 866, 888, 895, 903, + 904, 905, 924, 925, 926, 902, 904, 968, 968, 548, + 968, 501, 968, 172, 431, 507, 602, 549, 775, 983, + 3, 171, 173, 468, 963, 978, 980, 171, 981, 546, + 824, 872, 873, 699, 522, 518, 932, 519, 519, 519, + 532, 172, 295, 563, 157, 983, 30, 132, 705, 705, + 59, 705, 162, 167, 238, 287, 716, 718, 719, 745, + 747, 748, 749, 181, 290, 457, 290, 710, 711, 518, + 545, 975, 420, 997, 501, 224, 152, 26, 32, 137, + 294, 353, 357, 389, 460, 538, 541, 542, 353, 152, + 40, 60, 106, 202, 251, 261, 273, 305, 353, 359, + 384, 389, 403, 541, 592, 595, 152, 353, 389, 541, + 152, 353, 389, 541, 152, 40, 990, 291, 485, 824, + 896, 551, 552, 550, 3, 30, 37, 42, 49, 55, + 81, 83, 89, 101, 132, 171, 173, 176, 177, 194, + 209, 222, 223, 225, 235, 237, 247, 269, 278, 300, + 302, 322, 364, 383, 394, 412, 421, 441, 466, 468, + 519, 824, 875, 876, 927, 933, 1005, 1010, 824, 419, + 545, 546, 519, 518, 639, 373, 584, 650, 275, 939, + 40, 192, 546, 583, 470, 192, 545, 192, 545, 1004, + 192, 545, 192, 545, 89, 944, 152, 484, 90, 129, + 308, 424, 192, 546, 152, 520, 931, 63, 360, 522, + 656, 152, 522, 656, 152, 290, 588, 589, 824, 933, + 355, 519, 522, 4, 160, 290, 438, 509, 510, 548, + 594, 597, 926, 958, 960, 961, 964, 959, 431, 518, + 676, 680, 824, 873, 518, 3, 68, 69, 109, 110, + 113, 114, 189, 190, 253, 254, 255, 256, 257, 258, + 259, 260, 263, 264, 337, 338, 378, 379, 474, 475, + 498, 499, 548, 810, 811, 812, 813, 814, 815, 816, + 817, 818, 819, 820, 821, 822, 878, 879, 770, 771, + 824, 545, 824, 880, 509, 510, 546, 825, 826, 855, + 866, 882, 518, 824, 872, 883, 824, 58, 172, 233, + 432, 824, 873, 886, 824, 519, 547, 518, 421, 725, + 726, 726, 707, 708, 758, 220, 702, 768, 726, 726, + 726, 225, 37, 225, 383, 772, 225, 300, 773, 758, + 773, 225, 772, 518, 225, 773, 225, 148, 200, 760, + 225, 726, 518, 547, 518, 726, 297, 824, 970, 972, + 875, 3, 37, 42, 49, 54, 55, 56, 57, 71, + 72, 81, 83, 89, 101, 112, 115, 165, 171, 173, + 177, 194, 209, 216, 217, 219, 222, 223, 225, 235, + 237, 247, 268, 269, 270, 278, 283, 300, 302, 322, + 342, 364, 368, 383, 390, 394, 397, 412, 421, 429, + 430, 441, 447, 464, 468, 786, 788, 789, 791, 793, + 795, 797, 799, 800, 801, 803, 804, 807, 808, 877, + 929, 1005, 1008, 40, 236, 546, 518, 516, 687, 467, + 806, 824, 892, 806, 806, 518, 518, 794, 794, 325, + 687, 518, 796, 527, 71, 72, 806, 824, 794, 518, + 518, 482, 504, 518, 809, 518, 809, 824, 824, 824, + 83, 148, 906, 910, 824, 873, 874, 687, 824, 872, + 552, 9, 547, 856, 857, 858, 520, 523, 549, 897, + 549, 518, 548, 518, 518, 548, 926, 3, 8, 11, + 15, 16, 17, 18, 19, 20, 21, 36, 40, 46, + 53, 80, 177, 194, 199, 222, 223, 237, 275, 278, + 292, 295, 394, 502, 505, 506, 507, 509, 510, 511, + 512, 513, 514, 864, 865, 866, 868, 900, 481, 840, + 302, 824, 522, 702, 518, 548, 702, 3, 117, 241, + 548, 594, 808, 971, 104, 972, 972, 40, 546, 519, + 522, 957, 522, 519, 700, 920, 921, 40, 983, 193, + 355, 220, 639, 389, 689, 689, 30, 712, 713, 824, + 59, 689, 706, 164, 272, 733, 227, 273, 341, 392, + 454, 4, 9, 30, 728, 824, 509, 510, 729, 730, + 824, 826, 745, 746, 719, 718, 716, 717, 167, 748, + 285, 750, 59, 695, 696, 697, 761, 825, 904, 904, + 716, 745, 873, 932, 172, 469, 976, 236, 545, 74, + 82, 93, 169, 192, 329, 448, 546, 621, 631, 646, + 82, 93, 554, 93, 554, 518, 431, 518, 619, 245, + 451, 619, 93, 522, 431, 545, 3, 791, 594, 59, + 596, 594, 594, 106, 251, 261, 59, 431, 480, 504, + 593, 266, 373, 593, 595, 775, 93, 431, 554, 373, + 545, 431, 373, 989, 546, 676, 517, 523, 875, 875, + 876, 522, 710, 711, 13, 14, 222, 222, 431, 431, + 546, 638, 643, 480, 679, 545, 380, 345, 384, 419, + 470, 665, 152, 100, 580, 604, 940, 941, 1000, 144, + 788, 275, 199, 585, 545, 275, 581, 592, 275, 518, + 639, 40, 275, 639, 275, 518, 659, 660, 661, 662, + 663, 664, 666, 192, 546, 633, 945, 552, 152, 172, + 599, 655, 551, 520, 930, 920, 923, 923, 930, 519, + 522, 13, 959, 965, 4, 926, 4, 926, 548, 552, + 678, 685, 55, 102, 123, 141, 145, 168, 171, 187, + 280, 288, 310, 339, 682, 40, 519, 824, 519, 172, + 522, 519, 318, 881, 519, 825, 825, 11, 15, 16, + 19, 20, 21, 199, 222, 292, 505, 506, 507, 509, + 510, 511, 512, 513, 514, 866, 825, 519, 777, 778, + 836, 167, 172, 884, 885, 522, 519, 40, 886, 873, + 886, 886, 172, 519, 40, 769, 518, 921, 4, 9, + 546, 720, 721, 723, 724, 829, 904, 902, 178, 241, + 419, 423, 425, 451, 545, 703, 477, 781, 519, 758, + 758, 225, 758, 290, 457, 774, 758, 225, 904, 758, + 758, 282, 282, 518, 758, 547, 782, 783, 518, 547, + 782, 522, 519, 522, 520, 518, 791, 518, 518, 520, + 39, 790, 518, 810, 811, 812, 813, 814, 815, 816, + 817, 818, 819, 820, 821, 822, 823, 519, 522, 794, + 555, 560, 667, 668, 686, 937, 982, 994, 873, 874, + 518, 476, 889, 890, 824, 874, 926, 824, 859, 860, + 861, 862, 806, 806, 8, 15, 16, 19, 20, 21, + 505, 506, 507, 509, 510, 511, 512, 513, 514, 546, + 864, 869, 519, 873, 429, 429, 926, 926, 518, 518, + 547, 907, 355, 914, 167, 517, 519, 522, 523, 522, + 528, 511, 824, 550, 873, 926, 824, 823, 823, 788, + 824, 824, 824, 824, 824, 824, 824, 824, 5, 552, + 934, 429, 45, 416, 901, 930, 824, 824, 518, 687, + 830, 887, 895, 132, 160, 275, 280, 285, 438, 449, + 824, 280, 518, 824, 431, 53, 177, 194, 199, 237, + 394, 824, 824, 824, 824, 824, 824, 824, 824, 824, + 824, 30, 38, 399, 863, 516, 520, 899, 181, 163, + 841, 368, 518, 855, 905, 172, 754, 875, 754, 518, + 548, 546, 545, 978, 545, 986, 824, 522, 519, 250, + 275, 701, 457, 985, 545, 557, 518, 546, 562, 572, + 573, 575, 41, 126, 714, 522, 457, 714, 266, 689, + 368, 369, 509, 510, 730, 732, 826, 392, 227, 291, + 313, 313, 522, 513, 4, 731, 926, 731, 368, 369, + 732, 545, 919, 279, 396, 751, 518, 921, 922, 522, + 181, 457, 199, 181, 220, 746, 717, 519, 546, 548, + 546, 548, 353, 541, 518, 192, 631, 923, 227, 275, + 227, 457, 518, 624, 787, 788, 923, 546, 192, 923, + 192, 546, 26, 137, 389, 537, 540, 552, 615, 629, + 923, 552, 623, 642, 923, 538, 923, 353, 389, 541, + 592, 594, 930, 923, 594, 930, 923, 594, 353, 389, + 541, 923, 923, 923, 923, 353, 389, 541, 923, 923, + 548, 510, 824, 896, 710, 710, 710, 466, 876, 193, + 358, 709, 824, 824, 280, 548, 952, 280, 952, 546, + 334, 675, 519, 522, 288, 172, 431, 670, 939, 583, + 470, 545, 545, 1004, 545, 545, 545, 295, 650, 518, + 687, 152, 3, 518, 518, 152, 152, 237, 546, 621, + 631, 634, 637, 647, 649, 480, 482, 626, 151, 686, + 152, 480, 946, 152, 519, 875, 522, 522, 40, 275, + 290, 546, 3, 656, 551, 656, 290, 656, 588, 824, + 676, 247, 511, 516, 518, 594, 677, 831, 832, 833, + 964, 519, 522, 40, 674, 548, 674, 275, 280, 339, + 674, 59, 674, 788, 519, 824, 824, 824, 884, 788, + 825, 825, 825, 825, 825, 825, 132, 275, 285, 825, + 825, 825, 825, 825, 825, 825, 825, 825, 825, 519, + 522, 40, 779, 824, 824, 885, 884, 788, 519, 519, + 519, 873, 788, 921, 519, 313, 369, 513, 518, 518, + 702, 423, 425, 423, 425, 545, 704, 704, 704, 824, + 181, 734, 774, 774, 758, 824, 518, 758, 167, 774, + 518, 547, 765, 774, 788, 519, 522, 782, 519, 970, + 3, 877, 39, 790, 546, 785, 785, 3, 516, 516, + 926, 431, 431, 431, 431, 788, 454, 519, 517, 873, + 824, 139, 890, 891, 519, 519, 519, 523, 522, 528, + 520, 519, 519, 501, 501, 519, 519, 824, 907, 908, + 909, 520, 518, 824, 911, 353, 918, 546, 838, 893, + 894, 824, 824, 856, 910, 519, 519, 519, 501, 825, + 825, 145, 873, 172, 132, 160, 280, 285, 438, 449, + 518, 145, 869, 824, 416, 901, 824, 887, 824, 431, + 518, 687, 824, 896, 551, 518, 518, 155, 842, 755, + 756, 781, 710, 781, 926, 823, 932, 932, 250, 518, + 756, 477, 984, 40, 59, 558, 568, 575, 897, 522, + 754, 507, 503, 715, 713, 292, 864, 867, 715, 4, + 926, 732, 291, 454, 729, 522, 244, 921, 695, 59, + 904, 518, 547, 59, 266, 976, 976, 431, 824, 275, + 646, 518, 152, 518, 624, 203, 643, 644, 605, 40, + 176, 614, 640, 605, 26, 137, 357, 359, 389, 534, + 535, 536, 542, 543, 152, 656, 152, 656, 615, 629, + 615, 519, 522, 548, 608, 507, 520, 519, 522, 431, + 373, 93, 431, 554, 373, 431, 431, 431, 373, 990, + 523, 517, 523, 709, 709, 709, 876, 282, 282, 519, + 518, 669, 3, 406, 407, 548, 684, 638, 675, 585, + 545, 581, 518, 40, 639, 662, 664, 939, 355, 419, + 548, 577, 578, 583, 685, 643, 545, 545, 1004, 545, + 519, 522, 288, 619, 288, 290, 618, 923, 480, 1003, + 545, 619, 40, 545, 519, 660, 666, 663, 666, 419, + 824, 152, 545, 599, 930, 672, 683, 964, 678, 548, + 548, 280, 643, 511, 643, 548, 511, 643, 548, 519, + 519, 885, 172, 132, 285, 518, 780, 777, 518, 519, + 519, 519, 546, 721, 781, 704, 704, 704, 704, 545, + 545, 545, 59, 186, 743, 774, 921, 518, 762, 763, + 764, 827, 830, 921, 167, 80, 784, 783, 519, 519, + 516, 788, 519, 522, 519, 926, 517, 926, 519, 811, + 813, 814, 815, 814, 815, 815, 519, 427, 824, 143, + 824, 859, 869, 809, 809, 519, 522, 519, 547, 824, + 911, 912, 913, 40, 518, 907, 915, 199, 522, 519, + 914, 823, 824, 36, 36, 824, 519, 824, 172, 518, + 877, 824, 519, 145, 825, 825, 145, 145, 824, 824, + 517, 523, 518, 898, 711, 477, 824, 301, 846, 522, + 734, 709, 734, 519, 937, 824, 361, 566, 546, 266, + 321, 117, 304, 518, 556, 686, 519, 522, 562, 984, + 824, 164, 231, 518, 715, 291, 545, 519, 922, 181, + 687, 688, 904, 922, 923, 923, 519, 152, 644, 631, + 644, 605, 633, 522, 519, 119, 207, 273, 275, 630, + 518, 33, 59, 651, 640, 74, 80, 93, 117, 119, + 207, 275, 280, 329, 347, 448, 457, 610, 611, 625, + 176, 117, 191, 275, 619, 593, 107, 117, 176, 275, + 405, 408, 595, 619, 389, 536, 442, 923, 546, 540, + 3, 37, 42, 49, 55, 81, 83, 89, 101, 171, + 173, 176, 177, 194, 209, 222, 223, 225, 235, 237, + 247, 269, 274, 278, 292, 300, 302, 322, 364, 383, + 390, 394, 412, 421, 441, 447, 468, 509, 510, 548, + 594, 606, 645, 788, 867, 927, 1005, 1011, 552, 642, + 923, 923, 923, 923, 923, 923, 923, 923, 923, 923, + 676, 896, 896, 519, 519, 519, 710, 107, 373, 520, + 593, 684, 518, 518, 637, 686, 946, 650, 192, 545, + 519, 522, 585, 519, 519, 581, 518, 40, 628, 626, + 634, 86, 590, 107, 273, 639, 686, 662, 664, 40, + 40, 687, 688, 633, 457, 943, 656, 519, 522, 643, + 825, 172, 518, 877, 782, 519, 522, 519, 734, 545, + 545, 545, 545, 30, 103, 182, 367, 518, 735, 736, + 737, 738, 739, 740, 741, 824, 824, 479, 843, 519, + 826, 870, 871, 199, 181, 759, 763, 519, 765, 766, + 767, 930, 790, 926, 790, 546, 790, 517, 517, 824, + 907, 522, 519, 546, 915, 916, 917, 40, 824, 826, + 894, 918, 824, 824, 824, 877, 519, 824, 36, 36, + 824, 824, 145, 519, 510, 896, 519, 875, 519, 824, + 519, 518, 546, 847, 743, 519, 743, 548, 519, 903, 463, 418, 456, 567, 546, 561, 571, 290, 564, 507, - 575, 566, 866, 59, 519, 519, 462, 463, 692, 605, + 575, 566, 869, 59, 519, 519, 462, 463, 692, 605, 631, 519, 519, 480, 636, 120, 195, 205, 119, 459, - 822, 117, 40, 518, 920, 913, 823, 120, 195, 119, - 280, 227, 545, 636, 88, 651, 192, 280, 594, 822, - 651, 280, 509, 510, 597, 546, 786, 656, 656, 3, - 247, 412, 917, 921, 507, 431, 431, 517, 517, 709, - 519, 519, 546, 676, 457, 671, 673, 685, 643, 519, - 994, 40, 419, 275, 518, 548, 518, 936, 637, 151, - 686, 149, 201, 618, 122, 137, 328, 994, 107, 936, - 480, 992, 419, 290, 546, 932, 518, 683, 823, 874, - 519, 519, 9, 354, 726, 742, 518, 391, 518, 519, - 522, 546, 841, 842, 336, 743, 522, 519, 518, 547, - 59, 519, 199, 519, 764, 517, 786, 905, 517, 192, - 519, 822, 822, 822, 528, 517, 528, 519, 519, 546, - 845, 840, 548, 840, 522, 462, 894, 519, 522, 91, - 566, 822, 519, 912, 912, 347, 636, 518, 627, 605, - 519, 191, 518, 822, 275, 611, 636, 639, 913, 40, - 152, 782, 921, 513, 606, 913, 913, 519, 593, 124, - 519, 519, 626, 686, 545, 152, 685, 40, 519, 913, - 994, 30, 85, 94, 118, 191, 204, 405, 408, 622, - 622, 369, 369, 40, 64, 74, 241, 687, 545, 518, - 546, 565, 574, 833, 519, 519, 518, 840, 870, 518, - 870, 736, 40, 522, 822, 457, 721, 824, 901, 911, - 768, 518, 768, 822, 893, 893, 310, 846, 743, 743, - 686, 304, 686, 561, 290, 518, 559, 545, 605, 552, - 632, 635, 409, 472, 612, 613, 518, 607, 822, 519, - 249, 648, 191, 457, 539, 513, 442, 676, 548, 936, - 618, 992, 518, 545, 519, 686, 626, 590, 686, 74, - 293, 74, 933, 822, 80, 569, 519, 522, 569, 9, - 743, 519, 735, 519, 844, 842, 371, 519, 901, 517, - 517, 517, 59, 710, 721, 721, 567, 93, 574, 133, - 639, 507, 519, 522, 592, 519, 273, 620, 173, 309, - 395, 290, 616, 617, 641, 607, 822, 442, 40, 518, - 992, 618, 994, 992, 293, 293, 518, 519, 920, 570, - 920, 936, 565, 570, 519, 721, 519, 723, 519, 869, - 184, 340, 369, 847, 462, 913, 519, 276, 454, 648, - 606, 635, 519, 613, 205, 122, 454, 290, 641, 290, - 616, 686, 574, 569, 714, 779, 714, 53, 104, 444, - 822, 848, 849, 848, 848, 519, 686, 779, 389, 617, - 63, 273, 360, 389, 609, 609, 992, 519, 570, 715, - 715, 849, 368, 166, 324, 166, 324, 148, 850, 850, - 850, 573, 605, 25, 117, 280, 936, 714, 36, 104, - 181, 273, 428, 779, 779, 715, 849, 368, 298 + 824, 117, 40, 518, 930, 923, 825, 120, 195, 119, + 280, 227, 545, 636, 88, 651, 192, 280, 594, 824, + 651, 280, 509, 510, 597, 546, 787, 788, 656, 656, + 3, 247, 412, 927, 931, 507, 431, 431, 517, 517, + 709, 519, 519, 546, 676, 457, 671, 673, 685, 643, + 519, 1003, 40, 419, 275, 518, 548, 518, 946, 637, + 151, 686, 149, 201, 618, 122, 137, 328, 1003, 107, + 946, 480, 1001, 419, 290, 546, 942, 518, 683, 825, + 877, 519, 519, 9, 354, 727, 743, 518, 391, 518, + 519, 522, 546, 844, 845, 336, 744, 522, 519, 518, + 547, 59, 519, 199, 519, 766, 517, 788, 911, 522, + 519, 546, 517, 192, 519, 824, 824, 824, 523, 517, + 523, 519, 519, 546, 848, 843, 548, 843, 522, 462, + 897, 519, 522, 91, 566, 824, 519, 922, 922, 347, + 636, 518, 627, 605, 519, 191, 518, 824, 275, 611, + 636, 639, 923, 40, 152, 784, 931, 513, 606, 923, + 923, 519, 593, 124, 519, 519, 626, 686, 545, 152, + 685, 40, 519, 923, 1003, 30, 85, 94, 118, 191, + 204, 405, 408, 622, 622, 369, 369, 40, 64, 74, + 241, 687, 545, 518, 546, 565, 574, 836, 519, 519, + 518, 843, 873, 518, 873, 737, 40, 522, 824, 457, + 722, 826, 904, 921, 770, 518, 770, 915, 824, 896, + 896, 310, 849, 744, 744, 686, 304, 686, 561, 290, + 518, 559, 545, 605, 552, 632, 635, 409, 472, 612, + 613, 518, 607, 824, 519, 249, 648, 191, 457, 539, + 513, 442, 676, 548, 946, 618, 1001, 518, 545, 519, + 686, 626, 590, 686, 74, 293, 74, 943, 824, 80, + 569, 519, 522, 569, 9, 744, 519, 736, 519, 847, + 845, 371, 519, 904, 517, 517, 517, 59, 710, 722, + 722, 567, 93, 574, 133, 639, 507, 519, 522, 592, + 519, 273, 620, 173, 309, 395, 290, 616, 617, 641, + 607, 824, 442, 40, 518, 1001, 618, 1003, 1001, 293, + 293, 518, 519, 930, 570, 930, 946, 565, 570, 519, + 722, 519, 724, 519, 872, 184, 340, 369, 850, 462, + 923, 519, 276, 454, 648, 606, 635, 519, 613, 205, + 122, 454, 290, 641, 290, 616, 686, 574, 569, 714, + 781, 714, 53, 104, 444, 824, 851, 852, 851, 851, + 519, 686, 781, 389, 617, 63, 273, 360, 389, 609, + 609, 1001, 519, 570, 715, 715, 852, 368, 166, 324, + 166, 324, 148, 853, 853, 853, 573, 605, 25, 117, + 280, 946, 714, 36, 104, 181, 273, 428, 781, 781, + 715, 852, 368, 298 }; #define yyerrok (yyerrstatus = 0) @@ -20189,14 +20554,14 @@ YYLTYPE yylloc; switch (yyn) { case 2: -#line 509 "third_party/libpg_query/grammar/grammar.y" +#line 510 "third_party/libpg_query/grammar/grammar.y" { pg_yyget_extra(yyscanner)->parsetree = (yyvsp[(1) - (1)].list); ;} break; case 3: -#line 525 "third_party/libpg_query/grammar/grammar.y" +#line 526 "third_party/libpg_query/grammar/grammar.y" { if ((yyvsp[(1) - (3)].list) != NIL) { @@ -20211,7 +20576,7 @@ YYLTYPE yylloc; break; case 4: -#line 537 "third_party/libpg_query/grammar/grammar.y" +#line 538 "third_party/libpg_query/grammar/grammar.y" { if ((yyvsp[(1) - (1)].node) != NULL) (yyval.list) = list_make1(makeRawStmt((yyvsp[(1) - (1)].node), 0)); @@ -20221,7 +20586,7 @@ YYLTYPE yylloc; break; case 46: -#line 587 "third_party/libpg_query/grammar/grammar.y" +#line 588 "third_party/libpg_query/grammar/grammar.y" { (yyval.node) = NULL; ;} break; @@ -24817,357 +25182,357 @@ YYLTYPE yylloc; break; case 634: -#line 692 "third_party/libpg_query/grammar/statements/select.y" +#line 689 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); - ;} + (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); + ;} break; case 635: -#line 696 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); - ;} - break; - - case 636: -#line 700 "third_party/libpg_query/grammar/statements/select.y" +#line 693 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeSampleSize(makeFloat((yyvsp[(1) - (2)].str)), true); - ;} + (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); + ;} break; case 637: #line 704 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), true); + (yyval.node) = makeSampleSize((yyvsp[(1) - (2)].node), true); ;} break; case 638: #line 708 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (1)].ival)), false); + (yyval.node) = makeSampleSize((yyvsp[(1) - (2)].node), true); ;} break; case 639: #line 712 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = makeSampleSize(makeInteger((yyvsp[(1) - (2)].ival)), false); + (yyval.node) = makeSampleSize((yyvsp[(1) - (1)].node), false); ;} break; case 640: -#line 719 "third_party/libpg_query/grammar/statements/select.y" +#line 716 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = (yyvsp[(3) - (3)].node); - ;} + (yyval.node) = makeSampleSize((yyvsp[(1) - (2)].node), false); + ;} break; case 641: #line 723 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} + { + (yyval.node) = (yyvsp[(3) - (3)].node); + ;} break; case 642: -#line 730 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = (yyvsp[(1) - (1)].str); ;} +#line 727 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = NULL; ;} break; case 643: -#line 731 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.str) = NULL; ;} +#line 734 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; case 644: -#line 736 "third_party/libpg_query/grammar/statements/select.y" +#line 735 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.str) = NULL; ;} + break; + + case 645: +#line 740 "third_party/libpg_query/grammar/statements/select.y" { int seed = (yyvsp[(5) - (5)].ival); (yyval.node) = makeSampleOptions((yyvsp[(3) - (5)].node), (yyvsp[(1) - (5)].str), &seed, (yylsp[(1) - (5)])); ;} break; - case 645: -#line 741 "third_party/libpg_query/grammar/statements/select.y" + case 646: +#line 745 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleOptions((yyvsp[(1) - (1)].node), NULL, NULL, (yylsp[(1) - (1)])); ;} break; - case 646: -#line 745 "third_party/libpg_query/grammar/statements/select.y" + case 647: +#line 749 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeSampleOptions((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].str), NULL, (yylsp[(1) - (4)])); ;} break; - case 647: -#line 749 "third_party/libpg_query/grammar/statements/select.y" + case 648: +#line 753 "third_party/libpg_query/grammar/statements/select.y" { int seed = (yyvsp[(5) - (6)].ival); (yyval.node) = makeSampleOptions((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].str), &seed, (yylsp[(1) - (6)])); ;} break; - case 648: -#line 757 "third_party/libpg_query/grammar/statements/select.y" + case 649: +#line 761 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 649: -#line 763 "third_party/libpg_query/grammar/statements/select.y" + case 650: +#line 767 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 650: -#line 764 "third_party/libpg_query/grammar/statements/select.y" + case 651: +#line 768 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 651: -#line 769 "third_party/libpg_query/grammar/statements/select.y" + case 652: +#line 773 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = (yyvsp[(3) - (4)].ival); ;} break; - case 652: -#line 770 "third_party/libpg_query/grammar/statements/select.y" + case 653: +#line 774 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = -1; ;} break; - case 653: -#line 774 "third_party/libpg_query/grammar/statements/select.y" + case 654: +#line 778 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 654: -#line 776 "third_party/libpg_query/grammar/statements/select.y" + case 655: +#line 780 "third_party/libpg_query/grammar/statements/select.y" { /* LIMIT ALL is represented as a NULL constant */ (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; - case 655: -#line 781 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent((yyvsp[(1) - (2)].node)); ;} - break; - case 656: -#line 783 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[(1) - (2)].str),(yylsp[(1) - (2)]))); ;} +#line 785 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent((yyvsp[(1) - (2)].node)); ;} break; case 657: -#line 785 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[(1) - (2)].ival),(yylsp[(1) - (2)]))); ;} +#line 787 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeLimitPercent(makeFloatConst((yyvsp[(1) - (2)].str),(yylsp[(1) - (2)]))); ;} break; case 658: #line 789 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + { (yyval.node) = makeLimitPercent(makeIntConst((yyvsp[(1) - (2)].ival),(yylsp[(1) - (2)]))); ;} break; case 659: -#line 809 "third_party/libpg_query/grammar/statements/select.y" +#line 793 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 660: -#line 811 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 813 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 661: -#line 813 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} +#line 815 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 662: #line 817 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} + { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; case 663: -#line 818 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} +#line 821 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival),(yylsp[(1) - (1)])); ;} break; case 664: #line 822 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.ival) = 0; ;} + { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str),(yylsp[(1) - (1)])); ;} break; case 665: -#line 823 "third_party/libpg_query/grammar/statements/select.y" +#line 826 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; ;} break; case 666: -#line 826 "third_party/libpg_query/grammar/statements/select.y" +#line 827 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; ;} break; case 667: -#line 827 "third_party/libpg_query/grammar/statements/select.y" +#line 830 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; ;} break; case 668: -#line 852 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(3) - (3)].list); ;} +#line 831 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.ival) = 0; ;} break; case 669: -#line 854 "third_party/libpg_query/grammar/statements/select.y" - { - PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[(3) - (3)])); - (yyval.list) = list_make1(node); - ;} +#line 856 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; case 670: #line 858 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} + { + PGNode *node = (PGNode *) makeGroupingSet(GROUPING_SET_ALL, NIL, (yylsp[(3) - (3)])); + (yyval.list) = list_make1(node); + ;} break; case 671: #line 862 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} + { (yyval.list) = NIL; ;} break; case 672: -#line 863 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} +#line 866 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 673: #line 867 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + { (yyval.list) = lappend((yyvsp[(1) - (3)].list),(yyvsp[(3) - (3)].node)); ;} break; case 674: -#line 868 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 871 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 675: #line 872 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} + { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; case 676: -#line 873 "third_party/libpg_query/grammar/statements/select.y" +#line 876 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 677: -#line 874 "third_party/libpg_query/grammar/statements/select.y" +#line 877 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 678: -#line 875 "third_party/libpg_query/grammar/statements/select.y" +#line 878 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 679: -#line 876 "third_party/libpg_query/grammar/statements/select.y" +#line 879 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 680: -#line 881 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); - ;} +#line 880 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 681: -#line 894 "third_party/libpg_query/grammar/statements/select.y" +#line 885 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[(1) - (2)])); ;} break; case 682: -#line 901 "third_party/libpg_query/grammar/statements/select.y" +#line 898 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 683: -#line 908 "third_party/libpg_query/grammar/statements/select.y" +#line 905 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; case 684: -#line 914 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 912 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.node) = (PGNode *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); + ;} break; case 685: -#line 915 "third_party/libpg_query/grammar/statements/select.y" +#line 918 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; case 686: #line 919 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} + { (yyval.node) = NULL; ;} break; case 687: -#line 920 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 923 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 688: #line 924 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(2) - (2)].node); ;} + { (yyval.node) = NULL; ;} break; case 689: -#line 925 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = NULL; ;} +#line 928 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; case 690: #line 929 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + { (yyval.node) = NULL; ;} break; case 691: -#line 930 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 933 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 692: #line 934 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + { (yyval.list) = NIL; ;} break; case 693: -#line 935 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 938 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 694: #line 939 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} + { (yyval.list) = NIL; ;} break; case 695: -#line 940 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} +#line 943 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 696: -#line 945 "third_party/libpg_query/grammar/statements/select.y" +#line 944 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} + break; + + case 697: +#line 949 "third_party/libpg_query/grammar/statements/select.y" { PGLockingClause *n = makeNode(PGLockingClause); n->lockedRels = (yyvsp[(2) - (3)].list); @@ -25177,53 +25542,53 @@ YYLTYPE yylloc; ;} break; - case 697: -#line 955 "third_party/libpg_query/grammar/statements/select.y" + case 698: +#line 959 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = LCS_FORUPDATE; ;} break; - case 698: -#line 956 "third_party/libpg_query/grammar/statements/select.y" + case 699: +#line 960 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = PG_LCS_FORNOKEYUPDATE; ;} break; - case 699: -#line 957 "third_party/libpg_query/grammar/statements/select.y" + case 700: +#line 961 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = PG_LCS_FORSHARE; ;} break; - case 700: -#line 958 "third_party/libpg_query/grammar/statements/select.y" + case 701: +#line 962 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockstrength) = PG_LCS_FORKEYSHARE; ;} break; - case 701: -#line 962 "third_party/libpg_query/grammar/statements/select.y" + case 702: +#line 966 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 702: -#line 963 "third_party/libpg_query/grammar/statements/select.y" + case 703: +#line 967 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 703: -#line 968 "third_party/libpg_query/grammar/statements/select.y" + case 704: +#line 972 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockwaitpolicy) = LockWaitError; ;} break; - case 704: -#line 969 "third_party/libpg_query/grammar/statements/select.y" + case 705: +#line 973 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockwaitpolicy) = PGLockWaitSkip; ;} break; - case 705: -#line 970 "third_party/libpg_query/grammar/statements/select.y" + case 706: +#line 974 "third_party/libpg_query/grammar/statements/select.y" { (yyval.lockwaitpolicy) = PGLockWaitBlock; ;} break; - case 706: -#line 980 "third_party/libpg_query/grammar/statements/select.y" + case 707: +#line 984 "third_party/libpg_query/grammar/statements/select.y" { PGSelectStmt *n = makeNode(PGSelectStmt); n->valuesLists = list_make1((yyvsp[(3) - (4)].list)); @@ -25231,8 +25596,8 @@ YYLTYPE yylloc; ;} break; - case 707: -#line 986 "third_party/libpg_query/grammar/statements/select.y" + case 708: +#line 990 "third_party/libpg_query/grammar/statements/select.y" { PGSelectStmt *n = (PGSelectStmt *) (yyvsp[(1) - (5)].node); n->valuesLists = lappend(n->valuesLists, (yyvsp[(4) - (5)].list)); @@ -25240,48 +25605,56 @@ YYLTYPE yylloc; ;} break; - case 708: -#line 994 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} - break; - case 709: -#line 995 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (2)].node); ;} +#line 998 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; case 710: -#line 1008 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(2) - (2)].list); ;} +#line 999 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.node) = (yyvsp[(1) - (2)].node); ;} break; case 711: -#line 1009 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = NIL; ;} +#line 1012 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; case 712: #line 1013 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} + { (yyval.list) = NIL; ;} break; case 713: -#line 1014 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} +#line 1017 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; case 714: #line 1018 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; case 715: -#line 1019 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = (yyvsp[(1) - (2)].list); ;} +#line 1022 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; case 716: -#line 1026 "third_party/libpg_query/grammar/statements/select.y" +#line 1023 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (2)].list); ;} + break; + + case 717: +#line 1028 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.alias) = makeNode(PGAlias); + (yyval.alias)->aliasname = (yyvsp[(1) - (2)].str); + ;} + break; + + case 718: +#line 1039 "third_party/libpg_query/grammar/statements/select.y" { (yyvsp[(1) - (3)].range)->alias = (yyvsp[(2) - (3)].alias); (yyvsp[(1) - (3)].range)->sample = (yyvsp[(3) - (3)].node); @@ -25289,8 +25662,17 @@ YYLTYPE yylloc; ;} break; - case 717: -#line 1032 "third_party/libpg_query/grammar/statements/select.y" + case 719: +#line 1045 "third_party/libpg_query/grammar/statements/select.y" + { + (yyvsp[(2) - (3)].range)->alias = (yyvsp[(1) - (3)].alias); + (yyvsp[(2) - (3)].range)->sample = (yyvsp[(3) - (3)].node); + (yyval.node) = (PGNode *) (yyvsp[(2) - (3)].range); + ;} + break; + + case 720: +#line 1051 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(1) - (3)].node); n->alias = (PGAlias*) linitial((yyvsp[(2) - (3)].list)); @@ -25300,20 +25682,30 @@ YYLTYPE yylloc; ;} break; - case 718: -#line 1040 "third_party/libpg_query/grammar/statements/select.y" + case 721: +#line 1059 "third_party/libpg_query/grammar/statements/select.y" { - PGRangeSubselect *n = makeNode(PGRangeSubselect); - n->lateral = false; - n->subquery = (yyvsp[(1) - (3)].node); - n->alias = (yyvsp[(2) - (3)].alias); - n->sample = (yyvsp[(3) - (3)].node); - (yyval.node) = (PGNode *) n; - ;} + PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node); + n->alias = (yyvsp[(1) - (3)].alias); + n->sample = (yyvsp[(3) - (3)].node); + (yyval.node) = (PGNode *) n; + ;} break; - case 719: -#line 1049 "third_party/libpg_query/grammar/statements/select.y" + case 722: +#line 1067 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeSubselect *n = makeNode(PGRangeSubselect); + n->lateral = false; + n->subquery = (yyvsp[(1) - (3)].node); + n->alias = (yyvsp[(2) - (3)].alias); + n->sample = (yyvsp[(3) - (3)].node); + (yyval.node) = (PGNode *) n; + ;} + break; + + case 723: +#line 1077 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = (PGRangeFunction *) (yyvsp[(2) - (3)].node); n->lateral = true; @@ -25323,8 +25715,8 @@ YYLTYPE yylloc; ;} break; - case 720: -#line 1057 "third_party/libpg_query/grammar/statements/select.y" + case 724: +#line 1085 "third_party/libpg_query/grammar/statements/select.y" { PGRangeSubselect *n = makeNode(PGRangeSubselect); n->lateral = false; @@ -25335,8 +25727,20 @@ YYLTYPE yylloc; ;} break; - case 721: -#line 1066 "third_party/libpg_query/grammar/statements/select.y" + case 725: +#line 1094 "third_party/libpg_query/grammar/statements/select.y" + { + PGRangeSubselect *n = makeNode(PGRangeSubselect); + n->lateral = false; + n->subquery = (yyvsp[(2) - (3)].node); + n->alias = (yyvsp[(1) - (3)].alias); + n->sample = (yyvsp[(3) - (3)].node); + (yyval.node) = (PGNode *) n; + ;} + break; + + case 726: +#line 1103 "third_party/libpg_query/grammar/statements/select.y" { PGRangeSubselect *n = makeNode(PGRangeSubselect); n->lateral = true; @@ -25347,23 +25751,31 @@ YYLTYPE yylloc; ;} break; - case 722: -#line 1075 "third_party/libpg_query/grammar/statements/select.y" + case 727: +#line 1112 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].jexpr); ;} break; - case 723: -#line 1079 "third_party/libpg_query/grammar/statements/select.y" + case 728: +#line 1116 "third_party/libpg_query/grammar/statements/select.y" { (yyvsp[(2) - (4)].jexpr)->alias = (yyvsp[(4) - (4)].alias); (yyval.node) = (PGNode *) (yyvsp[(2) - (4)].jexpr); ;} break; - case 724: -#line 1084 "third_party/libpg_query/grammar/statements/select.y" + case 729: +#line 1121 "third_party/libpg_query/grammar/statements/select.y" + { + (yyvsp[(3) - (4)].jexpr)->alias = (yyvsp[(1) - (4)].alias); + (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].jexpr); + ;} + break; + + case 730: +#line 1126 "third_party/libpg_query/grammar/statements/select.y" { PGPivotExpr *n = makeNode(PGPivotExpr); n->source = (yyvsp[(1) - (9)].node); @@ -25376,8 +25788,8 @@ YYLTYPE yylloc; ;} break; - case 725: -#line 1095 "third_party/libpg_query/grammar/statements/select.y" + case 731: +#line 1137 "third_party/libpg_query/grammar/statements/select.y" { PGPivotExpr *n = makeNode(PGPivotExpr); n->source = (yyvsp[(1) - (9)].node); @@ -25390,33 +25802,33 @@ YYLTYPE yylloc; ;} break; - case 726: -#line 1108 "third_party/libpg_query/grammar/statements/select.y" + case 732: +#line 1150 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; - case 727: -#line 1109 "third_party/libpg_query/grammar/statements/select.y" + case 733: +#line 1151 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; ;} break; - case 728: -#line 1112 "third_party/libpg_query/grammar/statements/select.y" + case 734: +#line 1154 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; ;} break; - case 729: -#line 1113 "third_party/libpg_query/grammar/statements/select.y" + case 735: +#line 1155 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 730: -#line 1114 "third_party/libpg_query/grammar/statements/select.y" + case 736: +#line 1156 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 731: -#line 1118 "third_party/libpg_query/grammar/statements/select.y" + case 737: +#line 1160 "third_party/libpg_query/grammar/statements/select.y" { PGPivot *n = makeNode(PGPivot); n->pivot_columns = list_make1((yyvsp[(1) - (5)].node)); @@ -25425,8 +25837,8 @@ YYLTYPE yylloc; ;} break; - case 732: -#line 1126 "third_party/libpg_query/grammar/statements/select.y" + case 738: +#line 1168 "third_party/libpg_query/grammar/statements/select.y" { PGPivot *n = makeNode(PGPivot); n->pivot_columns = list_make1((yyvsp[(1) - (3)].node)); @@ -25435,23 +25847,23 @@ YYLTYPE yylloc; ;} break; - case 734: -#line 1135 "third_party/libpg_query/grammar/statements/select.y" + case 739: +#line 1177 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 735: -#line 1136 "third_party/libpg_query/grammar/statements/select.y" + case 740: +#line 1178 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 736: -#line 1137 "third_party/libpg_query/grammar/statements/select.y" + case 741: +#line 1179 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; - case 737: -#line 1141 "third_party/libpg_query/grammar/statements/select.y" + case 742: +#line 1183 "third_party/libpg_query/grammar/statements/select.y" { PGPivot *n = makeNode(PGPivot); n->pivot_columns = (yyvsp[(1) - (5)].list); @@ -25460,8 +25872,8 @@ YYLTYPE yylloc; ;} break; - case 738: -#line 1149 "third_party/libpg_query/grammar/statements/select.y" + case 743: +#line 1191 "third_party/libpg_query/grammar/statements/select.y" { PGPivot *n = makeNode(PGPivot); n->pivot_columns = (yyvsp[(1) - (3)].list); @@ -25470,32 +25882,32 @@ YYLTYPE yylloc; ;} break; - case 739: -#line 1158 "third_party/libpg_query/grammar/statements/select.y" + case 744: +#line 1200 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 740: -#line 1162 "third_party/libpg_query/grammar/statements/select.y" + case 745: +#line 1204 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; - case 741: -#line 1168 "third_party/libpg_query/grammar/statements/select.y" + case 746: +#line 1210 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 742: -#line 1169 "third_party/libpg_query/grammar/statements/select.y" + case 747: +#line 1211 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; - case 743: -#line 1174 "third_party/libpg_query/grammar/statements/select.y" + case 748: +#line 1216 "third_party/libpg_query/grammar/statements/select.y" { PGPivot *n = makeNode(PGPivot); n->unpivot_columns = (yyvsp[(1) - (5)].list); @@ -25504,29 +25916,29 @@ YYLTYPE yylloc; ;} break; - case 744: -#line 1183 "third_party/libpg_query/grammar/statements/select.y" + case 749: +#line 1225 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 745: -#line 1187 "third_party/libpg_query/grammar/statements/select.y" + case 750: +#line 1229 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; - case 746: -#line 1212 "third_party/libpg_query/grammar/statements/select.y" + case 751: +#line 1254 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jexpr) = (yyvsp[(2) - (3)].jexpr); ;} break; - case 747: -#line 1216 "third_party/libpg_query/grammar/statements/select.y" + case 752: +#line 1258 "third_party/libpg_query/grammar/statements/select.y" { /* CROSS JOIN is same as unqualified inner join */ PGJoinExpr *n = makeNode(PGJoinExpr); @@ -25541,8 +25953,8 @@ YYLTYPE yylloc; ;} break; - case 748: -#line 1229 "third_party/libpg_query/grammar/statements/select.y" + case 753: +#line 1271 "third_party/libpg_query/grammar/statements/select.y" { PGJoinExpr *n = makeNode(PGJoinExpr); n->jointype = (yyvsp[(2) - (5)].jtype); @@ -25558,8 +25970,8 @@ YYLTYPE yylloc; ;} break; - case 749: -#line 1243 "third_party/libpg_query/grammar/statements/select.y" + case 754: +#line 1285 "third_party/libpg_query/grammar/statements/select.y" { /* letting join_type reduce to empty doesn't work */ PGJoinExpr *n = makeNode(PGJoinExpr); @@ -25576,8 +25988,8 @@ YYLTYPE yylloc; ;} break; - case 750: -#line 1258 "third_party/libpg_query/grammar/statements/select.y" + case 755: +#line 1300 "third_party/libpg_query/grammar/statements/select.y" { PGJoinExpr *n = makeNode(PGJoinExpr); n->jointype = (yyvsp[(3) - (5)].jtype); @@ -25591,8 +26003,8 @@ YYLTYPE yylloc; ;} break; - case 751: -#line 1270 "third_party/libpg_query/grammar/statements/select.y" + case 756: +#line 1312 "third_party/libpg_query/grammar/statements/select.y" { /* letting join_type reduce to empty doesn't work */ PGJoinExpr *n = makeNode(PGJoinExpr); @@ -25607,8 +26019,8 @@ YYLTYPE yylloc; ;} break; - case 752: -#line 1283 "third_party/libpg_query/grammar/statements/select.y" + case 757: +#line 1325 "third_party/libpg_query/grammar/statements/select.y" { PGJoinExpr *n = makeNode(PGJoinExpr); n->jointype = (yyvsp[(3) - (6)].jtype); @@ -25624,8 +26036,8 @@ YYLTYPE yylloc; ;} break; - case 753: -#line 1297 "third_party/libpg_query/grammar/statements/select.y" + case 758: +#line 1339 "third_party/libpg_query/grammar/statements/select.y" { PGJoinExpr *n = makeNode(PGJoinExpr); n->jointype = PG_JOIN_INNER; @@ -25641,8 +26053,8 @@ YYLTYPE yylloc; ;} break; - case 754: -#line 1311 "third_party/libpg_query/grammar/statements/select.y" + case 759: +#line 1353 "third_party/libpg_query/grammar/statements/select.y" { /* POSITIONAL JOIN is a coordinated scan */ PGJoinExpr *n = makeNode(PGJoinExpr); @@ -25657,8 +26069,8 @@ YYLTYPE yylloc; ;} break; - case 755: -#line 1324 "third_party/libpg_query/grammar/statements/select.y" + case 760: +#line 1366 "third_party/libpg_query/grammar/statements/select.y" { /* ANTI JOIN is a filter */ PGJoinExpr *n = makeNode(PGJoinExpr); @@ -25675,8 +26087,8 @@ YYLTYPE yylloc; ;} break; - case 756: -#line 1339 "third_party/libpg_query/grammar/statements/select.y" + case 761: +#line 1381 "third_party/libpg_query/grammar/statements/select.y" { /* SEMI JOIN is also a filter */ PGJoinExpr *n = makeNode(PGJoinExpr); @@ -25694,8 +26106,8 @@ YYLTYPE yylloc; ;} break; - case 757: -#line 1358 "third_party/libpg_query/grammar/statements/select.y" + case 762: +#line 1400 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[(2) - (5)].str); @@ -25703,16 +26115,16 @@ YYLTYPE yylloc; ;} break; - case 758: -#line 1364 "third_party/libpg_query/grammar/statements/select.y" + case 763: +#line 1406 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[(2) - (2)].str); ;} break; - case 759: -#line 1369 "third_party/libpg_query/grammar/statements/select.y" + case 764: +#line 1411 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[(1) - (4)].str); @@ -25720,40 +26132,40 @@ YYLTYPE yylloc; ;} break; - case 760: -#line 1375 "third_party/libpg_query/grammar/statements/select.y" + case 765: +#line 1417 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = makeNode(PGAlias); (yyval.alias)->aliasname = (yyvsp[(1) - (1)].str); ;} break; - case 761: -#line 1381 "third_party/libpg_query/grammar/statements/select.y" + case 766: +#line 1423 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = (yyvsp[(1) - (1)].alias); ;} break; - case 762: -#line 1382 "third_party/libpg_query/grammar/statements/select.y" + case 767: +#line 1424 "third_party/libpg_query/grammar/statements/select.y" { (yyval.alias) = NULL; ;} break; - case 763: -#line 1391 "third_party/libpg_query/grammar/statements/select.y" + case 768: +#line 1433 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[(1) - (1)].alias), NIL); ;} break; - case 764: -#line 1395 "third_party/libpg_query/grammar/statements/select.y" + case 769: +#line 1437 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(NULL, (yyvsp[(3) - (4)].list)); ;} break; - case 765: -#line 1399 "third_party/libpg_query/grammar/statements/select.y" + case 770: +#line 1441 "third_party/libpg_query/grammar/statements/select.y" { PGAlias *a = makeNode(PGAlias); a->aliasname = (yyvsp[(2) - (5)].str); @@ -25761,8 +26173,8 @@ YYLTYPE yylloc; ;} break; - case 766: -#line 1405 "third_party/libpg_query/grammar/statements/select.y" + case 771: +#line 1447 "third_party/libpg_query/grammar/statements/select.y" { PGAlias *a = makeNode(PGAlias); a->aliasname = (yyvsp[(1) - (4)].str); @@ -25770,65 +26182,65 @@ YYLTYPE yylloc; ;} break; - case 767: -#line 1411 "third_party/libpg_query/grammar/statements/select.y" + case 772: +#line 1453 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(NULL, NIL); ;} break; - case 768: -#line 1416 "third_party/libpg_query/grammar/statements/select.y" + case 773: +#line 1458 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_FULL; ;} break; - case 769: -#line 1417 "third_party/libpg_query/grammar/statements/select.y" + case 774: +#line 1459 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_LEFT; ;} break; - case 770: -#line 1418 "third_party/libpg_query/grammar/statements/select.y" + case 775: +#line 1460 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_RIGHT; ;} break; - case 771: -#line 1419 "third_party/libpg_query/grammar/statements/select.y" + case 776: +#line 1461 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_SEMI; ;} break; - case 772: -#line 1420 "third_party/libpg_query/grammar/statements/select.y" + case 777: +#line 1462 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_ANTI; ;} break; - case 773: -#line 1421 "third_party/libpg_query/grammar/statements/select.y" + case 778: +#line 1463 "third_party/libpg_query/grammar/statements/select.y" { (yyval.jtype) = PG_JOIN_INNER; ;} break; - case 774: -#line 1425 "third_party/libpg_query/grammar/statements/select.y" + case 779: +#line 1467 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 775: -#line 1426 "third_party/libpg_query/grammar/statements/select.y" + case 780: +#line 1468 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 776: -#line 1438 "third_party/libpg_query/grammar/statements/select.y" + case 781: +#line 1480 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) (yyvsp[(3) - (4)].list); ;} break; - case 777: -#line 1439 "third_party/libpg_query/grammar/statements/select.y" + case 782: +#line 1481 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 778: -#line 1445 "third_party/libpg_query/grammar/statements/select.y" + case 783: +#line 1487 "third_party/libpg_query/grammar/statements/select.y" { /* inheritance query, implicitly */ (yyval.range) = (yyvsp[(1) - (1)].range); @@ -25837,8 +26249,8 @@ YYLTYPE yylloc; ;} break; - case 779: -#line 1452 "third_party/libpg_query/grammar/statements/select.y" + case 784: +#line 1494 "third_party/libpg_query/grammar/statements/select.y" { /* inheritance query, explicitly */ (yyval.range) = (yyvsp[(1) - (2)].range); @@ -25847,8 +26259,8 @@ YYLTYPE yylloc; ;} break; - case 780: -#line 1459 "third_party/libpg_query/grammar/statements/select.y" + case 785: +#line 1501 "third_party/libpg_query/grammar/statements/select.y" { /* no inheritance */ (yyval.range) = (yyvsp[(2) - (2)].range); @@ -25857,8 +26269,8 @@ YYLTYPE yylloc; ;} break; - case 781: -#line 1466 "third_party/libpg_query/grammar/statements/select.y" + case 786: +#line 1508 "third_party/libpg_query/grammar/statements/select.y" { /* no inheritance, SQL99-style syntax */ (yyval.range) = (yyvsp[(3) - (4)].range); @@ -25867,8 +26279,8 @@ YYLTYPE yylloc; ;} break; - case 782: -#line 1498 "third_party/libpg_query/grammar/statements/select.y" + case 787: +#line 1540 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = makeNode(PGRangeFunction); n->lateral = false; @@ -25881,8 +26293,8 @@ YYLTYPE yylloc; ;} break; - case 783: -#line 1509 "third_party/libpg_query/grammar/statements/select.y" + case 788: +#line 1551 "third_party/libpg_query/grammar/statements/select.y" { PGRangeFunction *n = makeNode(PGRangeFunction); n->lateral = false; @@ -25895,67 +26307,67 @@ YYLTYPE yylloc; ;} break; - case 784: -#line 1522 "third_party/libpg_query/grammar/statements/select.y" + case 789: +#line 1564 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].list)); ;} break; - case 785: -#line 1526 "third_party/libpg_query/grammar/statements/select.y" + case 790: +#line 1568 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; - case 786: -#line 1527 "third_party/libpg_query/grammar/statements/select.y" + case 791: +#line 1569 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; - case 787: -#line 1530 "third_party/libpg_query/grammar/statements/select.y" + case 792: +#line 1572 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 788: -#line 1531 "third_party/libpg_query/grammar/statements/select.y" + case 793: +#line 1573 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 789: -#line 1534 "third_party/libpg_query/grammar/statements/select.y" + case 794: +#line 1576 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; ;} break; - case 790: -#line 1535 "third_party/libpg_query/grammar/statements/select.y" + case 795: +#line 1577 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 791: -#line 1540 "third_party/libpg_query/grammar/statements/select.y" + case 796: +#line 1582 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 792: -#line 1541 "third_party/libpg_query/grammar/statements/select.y" + case 797: +#line 1583 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 793: -#line 1547 "third_party/libpg_query/grammar/statements/select.y" + case 798: +#line 1589 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 794: -#line 1551 "third_party/libpg_query/grammar/statements/select.y" + case 799: +#line 1593 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 795: -#line 1557 "third_party/libpg_query/grammar/statements/select.y" + case 800: +#line 1599 "third_party/libpg_query/grammar/statements/select.y" { PGColumnDef *n = makeNode(PGColumnDef); n->colname = (yyvsp[(1) - (3)].str); @@ -25975,8 +26387,8 @@ YYLTYPE yylloc; ;} break; - case 796: -#line 1578 "third_party/libpg_query/grammar/statements/select.y" + case 801: +#line 1620 "third_party/libpg_query/grammar/statements/select.y" { PGCollateClause *n = makeNode(PGCollateClause); n->arg = NULL; @@ -25986,45 +26398,45 @@ YYLTYPE yylloc; ;} break; - case 797: -#line 1585 "third_party/libpg_query/grammar/statements/select.y" + case 802: +#line 1627 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 798: -#line 1598 "third_party/libpg_query/grammar/statements/select.y" + case 803: +#line 1641 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(list_make2(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].typnam))); ;} break; - case 799: -#line 1601 "third_party/libpg_query/grammar/statements/select.y" + case 804: +#line 1644 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (4)].list), list_make2(makeString((yyvsp[(3) - (4)].str)), (yyvsp[(4) - (4)].typnam))); ;} break; - case 802: -#line 1608 "third_party/libpg_query/grammar/statements/select.y" + case 807: +#line 1651 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 803: -#line 1609 "third_party/libpg_query/grammar/statements/select.y" + case 808: +#line 1652 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = NULL; ;} break; - case 804: -#line 1612 "third_party/libpg_query/grammar/statements/select.y" + case 809: +#line 1655 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(2) - (2)].list); ;} break; - case 805: -#line 1617 "third_party/libpg_query/grammar/statements/select.y" + case 810: +#line 1660 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = (yyvsp[(3) - (3)].list); @@ -26032,16 +26444,16 @@ YYLTYPE yylloc; ;} break; - case 806: -#line 1624 "third_party/libpg_query/grammar/statements/select.y" + case 811: +#line 1667 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (5)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(4) - (5)].ival))); ;} break; - case 807: -#line 1629 "third_party/libpg_query/grammar/statements/select.y" + case 812: +#line 1672 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(2) - (6)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[(5) - (6)].ival))); @@ -26049,16 +26461,16 @@ YYLTYPE yylloc; ;} break; - case 808: -#line 1635 "third_party/libpg_query/grammar/statements/select.y" + case 813: +#line 1678 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); ;} break; - case 809: -#line 1640 "third_party/libpg_query/grammar/statements/select.y" + case 814: +#line 1683 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(2) - (3)].typnam); (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1)); @@ -26066,15 +26478,15 @@ YYLTYPE yylloc; ;} break; - case 810: -#line 1646 "third_party/libpg_query/grammar/statements/select.y" + case 815: +#line 1689 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = makeTypeNameFromNameList((yyvsp[(1) - (1)].list)); ;} break; - case 811: -#line 1650 "third_party/libpg_query/grammar/statements/select.y" + case 816: +#line 1693 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("struct"); (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); @@ -26083,8 +26495,8 @@ YYLTYPE yylloc; ;} break; - case 812: -#line 1657 "third_party/libpg_query/grammar/statements/select.y" + case 817: +#line 1700 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("map"); (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); @@ -26093,8 +26505,8 @@ YYLTYPE yylloc; ;} break; - case 813: -#line 1664 "third_party/libpg_query/grammar/statements/select.y" + case 818: +#line 1707 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("union"); (yyval.typnam)->arrayBounds = (yyvsp[(5) - (5)].list); @@ -26103,66 +26515,66 @@ YYLTYPE yylloc; ;} break; - case 814: -#line 1673 "third_party/libpg_query/grammar/statements/select.y" + case 819: +#line 1716 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(makeString((yyvsp[(1) - (3)].str)), makeString((yyvsp[(3) - (3)].str))); ;} break; - case 815: -#line 1674 "third_party/libpg_query/grammar/statements/select.y" + case 820: +#line 1717 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; - case 816: -#line 1679 "third_party/libpg_query/grammar/statements/select.y" + case 821: +#line 1722 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeInteger(-1)); ;} break; - case 817: -#line 1681 "third_party/libpg_query/grammar/statements/select.y" + case 822: +#line 1724 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (4)].list), makeInteger((yyvsp[(3) - (4)].ival))); ;} break; - case 818: -#line 1683 "third_party/libpg_query/grammar/statements/select.y" + case 823: +#line 1726 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 819: -#line 1687 "third_party/libpg_query/grammar/statements/select.y" + case 824: +#line 1730 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 820: -#line 1688 "third_party/libpg_query/grammar/statements/select.y" + case 825: +#line 1731 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 821: -#line 1689 "third_party/libpg_query/grammar/statements/select.y" + case 826: +#line 1732 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 822: -#line 1690 "third_party/libpg_query/grammar/statements/select.y" + case 827: +#line 1733 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 823: -#line 1691 "third_party/libpg_query/grammar/statements/select.y" + case 828: +#line 1734 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 824: -#line 1693 "third_party/libpg_query/grammar/statements/select.y" + case 829: +#line 1736 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (2)].typnam); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); ;} break; - case 825: -#line 1698 "third_party/libpg_query/grammar/statements/select.y" + case 830: +#line 1741 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (4)].typnam); (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1), @@ -26170,28 +26582,28 @@ YYLTYPE yylloc; ;} break; - case 826: -#line 1717 "third_party/libpg_query/grammar/statements/select.y" + case 831: +#line 1760 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 827: -#line 1718 "third_party/libpg_query/grammar/statements/select.y" + case 832: +#line 1761 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 828: -#line 1719 "third_party/libpg_query/grammar/statements/select.y" + case 833: +#line 1762 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 829: -#line 1720 "third_party/libpg_query/grammar/statements/select.y" + case 834: +#line 1763 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 830: -#line 1732 "third_party/libpg_query/grammar/statements/select.y" + case 835: +#line 1775 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = makeTypeName((yyvsp[(1) - (2)].str)); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); @@ -26199,74 +26611,74 @@ YYLTYPE yylloc; ;} break; - case 831: -#line 1745 "third_party/libpg_query/grammar/statements/select.y" + case 836: +#line 1788 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; - case 832: -#line 1746 "third_party/libpg_query/grammar/statements/select.y" + case 837: +#line 1789 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 833: -#line 1753 "third_party/libpg_query/grammar/statements/select.y" + case 838: +#line 1796 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 834: -#line 1758 "third_party/libpg_query/grammar/statements/select.y" + case 839: +#line 1801 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 835: -#line 1763 "third_party/libpg_query/grammar/statements/select.y" + case 840: +#line 1806 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int2"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 836: -#line 1768 "third_party/libpg_query/grammar/statements/select.y" + case 841: +#line 1811 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("int8"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 837: -#line 1773 "third_party/libpg_query/grammar/statements/select.y" + case 842: +#line 1816 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("float4"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 838: -#line 1778 "third_party/libpg_query/grammar/statements/select.y" + case 843: +#line 1821 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(2) - (2)].typnam); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; - case 839: -#line 1783 "third_party/libpg_query/grammar/statements/select.y" + case 844: +#line 1826 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("float8"); (yyval.typnam)->location = (yylsp[(1) - (2)]); ;} break; - case 840: -#line 1788 "third_party/libpg_query/grammar/statements/select.y" + case 845: +#line 1831 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); @@ -26274,8 +26686,8 @@ YYLTYPE yylloc; ;} break; - case 841: -#line 1794 "third_party/libpg_query/grammar/statements/select.y" + case 846: +#line 1837 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); @@ -26283,8 +26695,8 @@ YYLTYPE yylloc; ;} break; - case 842: -#line 1800 "third_party/libpg_query/grammar/statements/select.y" + case 847: +#line 1843 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("numeric"); (yyval.typnam)->typmods = (yyvsp[(2) - (2)].list); @@ -26292,16 +26704,16 @@ YYLTYPE yylloc; ;} break; - case 843: -#line 1806 "third_party/libpg_query/grammar/statements/select.y" + case 848: +#line 1849 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("bool"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 844: -#line 1813 "third_party/libpg_query/grammar/statements/select.y" + case 849: +#line 1856 "third_party/libpg_query/grammar/statements/select.y" { /* * Check FLOAT() precision limits assuming IEEE floating @@ -26324,44 +26736,44 @@ YYLTYPE yylloc; ;} break; - case 845: -#line 1834 "third_party/libpg_query/grammar/statements/select.y" + case 850: +#line 1877 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("float4"); ;} break; - case 846: -#line 1844 "third_party/libpg_query/grammar/statements/select.y" + case 851: +#line 1887 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 847: -#line 1848 "third_party/libpg_query/grammar/statements/select.y" + case 852: +#line 1891 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 848: -#line 1856 "third_party/libpg_query/grammar/statements/select.y" + case 853: +#line 1899 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 849: -#line 1860 "third_party/libpg_query/grammar/statements/select.y" + case 854: +#line 1903 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); (yyval.typnam)->typmods = NIL; ;} break; - case 850: -#line 1868 "third_party/libpg_query/grammar/statements/select.y" + case 855: +#line 1911 "third_party/libpg_query/grammar/statements/select.y" { const char *typname; @@ -26372,8 +26784,8 @@ YYLTYPE yylloc; ;} break; - case 851: -#line 1880 "third_party/libpg_query/grammar/statements/select.y" + case 856: +#line 1923 "third_party/libpg_query/grammar/statements/select.y" { /* bit defaults to bit(1), varbit to no limit */ if ((yyvsp[(2) - (2)].boolean)) @@ -26389,29 +26801,29 @@ YYLTYPE yylloc; ;} break; - case 852: -#line 1901 "third_party/libpg_query/grammar/statements/select.y" + case 857: +#line 1944 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 853: -#line 1905 "third_party/libpg_query/grammar/statements/select.y" + case 858: +#line 1948 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 854: -#line 1911 "third_party/libpg_query/grammar/statements/select.y" + case 859: +#line 1954 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = (yyvsp[(1) - (1)].typnam); ;} break; - case 855: -#line 1915 "third_party/libpg_query/grammar/statements/select.y" + case 860: +#line 1958 "third_party/libpg_query/grammar/statements/select.y" { /* Length was not specified so allow to be unrestricted. * This handles problems with fixed-length (bpchar) strings @@ -26424,8 +26836,8 @@ YYLTYPE yylloc; ;} break; - case 856: -#line 1928 "third_party/libpg_query/grammar/statements/select.y" + case 861: +#line 1971 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName((yyvsp[(1) - (4)].conststr)); (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[(3) - (4)].ival), (yylsp[(3) - (4)]))); @@ -26433,8 +26845,8 @@ YYLTYPE yylloc; ;} break; - case 857: -#line 1936 "third_party/libpg_query/grammar/statements/select.y" + case 862: +#line 1979 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName((yyvsp[(1) - (1)].conststr)); /* char defaults to char(1), varchar to no limit */ @@ -26444,48 +26856,48 @@ YYLTYPE yylloc; ;} break; - case 858: -#line 1946 "third_party/libpg_query/grammar/statements/select.y" + case 863: +#line 1989 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; - case 859: -#line 1948 "third_party/libpg_query/grammar/statements/select.y" + case 864: +#line 1991 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; - case 860: -#line 1950 "third_party/libpg_query/grammar/statements/select.y" + case 865: +#line 1993 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "varchar"; ;} break; - case 861: -#line 1952 "third_party/libpg_query/grammar/statements/select.y" + case 866: +#line 1995 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; - case 862: -#line 1954 "third_party/libpg_query/grammar/statements/select.y" + case 867: +#line 1997 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[(3) - (3)].boolean) ? "varchar": "bpchar"; ;} break; - case 863: -#line 1956 "third_party/libpg_query/grammar/statements/select.y" + case 868: +#line 1999 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = (yyvsp[(2) - (2)].boolean) ? "varchar": "bpchar"; ;} break; - case 864: -#line 1960 "third_party/libpg_query/grammar/statements/select.y" + case 869: +#line 2003 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; ;} break; - case 865: -#line 1961 "third_party/libpg_query/grammar/statements/select.y" + case 870: +#line 2004 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 866: -#line 1969 "third_party/libpg_query/grammar/statements/select.y" + case 871: +#line 2012 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(5) - (5)].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); @@ -26496,8 +26908,8 @@ YYLTYPE yylloc; ;} break; - case 867: -#line 1978 "third_party/libpg_query/grammar/statements/select.y" + case 872: +#line 2021 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timestamptz"); @@ -26507,8 +26919,8 @@ YYLTYPE yylloc; ;} break; - case 868: -#line 1986 "third_party/libpg_query/grammar/statements/select.y" + case 873: +#line 2029 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(5) - (5)].boolean)) (yyval.typnam) = SystemTypeName("timetz"); @@ -26518,9 +26930,9 @@ YYLTYPE yylloc; (yyval.typnam)->location = (yylsp[(1) - (5)]); ;} break; - - case 869: -#line 1995 "third_party/libpg_query/grammar/statements/select.y" + + case 874: +#line 2038 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(2) - (2)].boolean)) (yyval.typnam) = SystemTypeName("timetz"); @@ -26530,112 +26942,112 @@ YYLTYPE yylloc; ;} break; - case 870: -#line 2006 "third_party/libpg_query/grammar/statements/select.y" + case 875: +#line 2049 "third_party/libpg_query/grammar/statements/select.y" { (yyval.typnam) = SystemTypeName("interval"); (yyval.typnam)->location = (yylsp[(1) - (1)]); ;} break; - case 871: -#line 2013 "third_party/libpg_query/grammar/statements/select.y" + case 876: +#line 2056 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; ;} break; - case 872: -#line 2014 "third_party/libpg_query/grammar/statements/select.y" + case 877: +#line 2057 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 873: -#line 2015 "third_party/libpg_query/grammar/statements/select.y" + case 878: +#line 2058 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 900: -#line 2059 "third_party/libpg_query/grammar/statements/select.y" + case 905: +#line 2102 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[(1) - (1)]))); ;} break; - case 901: -#line 2061 "third_party/libpg_query/grammar/statements/select.y" + case 906: +#line 2104 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[(1) - (1)]))); ;} break; - case 902: -#line 2063 "third_party/libpg_query/grammar/statements/select.y" + case 907: +#line 2106 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[(1) - (1)]))); ;} break; - case 903: -#line 2065 "third_party/libpg_query/grammar/statements/select.y" + case 908: +#line 2108 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[(1) - (1)]))); ;} break; - case 904: -#line 2067 "third_party/libpg_query/grammar/statements/select.y" + case 909: +#line 2110 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[(1) - (1)]))); ;} break; - case 905: -#line 2069 "third_party/libpg_query/grammar/statements/select.y" + case 910: +#line 2112 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[(1) - (1)]))); ;} break; - case 906: -#line 2071 "third_party/libpg_query/grammar/statements/select.y" + case 911: +#line 2114 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLISECOND), (yylsp[(1) - (1)]))); ;} break; - case 907: -#line 2073 "third_party/libpg_query/grammar/statements/select.y" + case 912: +#line 2116 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MICROSECOND), (yylsp[(1) - (1)]))); ;} break; - case 908: -#line 2075 "third_party/libpg_query/grammar/statements/select.y" + case 913: +#line 2118 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(WEEK), (yylsp[(1) - (1)]))); ;} break; - case 909: -#line 2077 "third_party/libpg_query/grammar/statements/select.y" + case 914: +#line 2120 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(QUARTER), (yylsp[(1) - (1)]))); ;} break; - case 910: -#line 2079 "third_party/libpg_query/grammar/statements/select.y" + case 915: +#line 2122 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DECADE), (yylsp[(1) - (1)]))); ;} break; - case 911: -#line 2081 "third_party/libpg_query/grammar/statements/select.y" + case 916: +#line 2124 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(CENTURY), (yylsp[(1) - (1)]))); ;} break; - case 912: -#line 2083 "third_party/libpg_query/grammar/statements/select.y" + case 917: +#line 2126 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MILLENNIUM), (yylsp[(1) - (1)]))); ;} break; - case 913: -#line 2085 "third_party/libpg_query/grammar/statements/select.y" + case 918: +#line 2128 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) | INTERVAL_MASK(MONTH), (yylsp[(1) - (3)]))); ;} break; - case 914: -#line 2090 "third_party/libpg_query/grammar/statements/select.y" + case 919: +#line 2133 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR), (yylsp[(1) - (3)]))); ;} break; - case 915: -#line 2095 "third_party/libpg_query/grammar/statements/select.y" + case 920: +#line 2138 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | @@ -26643,8 +27055,8 @@ YYLTYPE yylloc; ;} break; - case 916: -#line 2101 "third_party/libpg_query/grammar/statements/select.y" + case 921: +#line 2144 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) | INTERVAL_MASK(HOUR) | @@ -26653,16 +27065,16 @@ YYLTYPE yylloc; ;} break; - case 917: -#line 2108 "third_party/libpg_query/grammar/statements/select.y" + case 922: +#line 2151 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE), (yylsp[(1) - (3)]))); ;} break; - case 918: -#line 2113 "third_party/libpg_query/grammar/statements/select.y" + case 923: +#line 2156 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE) | @@ -26670,31 +27082,31 @@ YYLTYPE yylloc; ;} break; - case 919: -#line 2119 "third_party/libpg_query/grammar/statements/select.y" + case 924: +#line 2162 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) | INTERVAL_MASK(SECOND), (yylsp[(1) - (3)]))); ;} break; - case 920: -#line 2124 "third_party/libpg_query/grammar/statements/select.y" + case 925: +#line 2167 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 921: -#line 2155 "third_party/libpg_query/grammar/statements/select.y" + case 926: +#line 2198 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 922: -#line 2158 "third_party/libpg_query/grammar/statements/select.y" + case 927: +#line 2201 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} break; - case 923: -#line 2160 "third_party/libpg_query/grammar/statements/select.y" + case 928: +#line 2203 "third_party/libpg_query/grammar/statements/select.y" { PGCollateClause *n = makeNode(PGCollateClause); n->arg = (yyvsp[(1) - (3)].node); @@ -26704,8 +27116,8 @@ YYLTYPE yylloc; ;} break; - case 924: -#line 2168 "third_party/libpg_query/grammar/statements/select.y" + case 929: +#line 2211 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("timezone"), list_make2((yyvsp[(5) - (5)].node), (yyvsp[(1) - (5)].node)), @@ -26713,139 +27125,139 @@ YYLTYPE yylloc; ;} break; - case 925: -#line 2183 "third_party/libpg_query/grammar/statements/select.y" + case 930: +#line 2226 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 926: -#line 2185 "third_party/libpg_query/grammar/statements/select.y" + case 931: +#line 2228 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 927: -#line 2187 "third_party/libpg_query/grammar/statements/select.y" + case 932: +#line 2230 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 928: -#line 2189 "third_party/libpg_query/grammar/statements/select.y" + case 933: +#line 2232 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 929: -#line 2191 "third_party/libpg_query/grammar/statements/select.y" + case 934: +#line 2234 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 930: -#line 2193 "third_party/libpg_query/grammar/statements/select.y" + case 935: +#line 2236 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 931: -#line 2195 "third_party/libpg_query/grammar/statements/select.y" + case 936: +#line 2238 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "//", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 932: -#line 2197 "third_party/libpg_query/grammar/statements/select.y" + case 937: +#line 2240 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 933: -#line 2199 "third_party/libpg_query/grammar/statements/select.y" + case 938: +#line 2242 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 934: -#line 2201 "third_party/libpg_query/grammar/statements/select.y" + case 939: +#line 2244 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 935: -#line 2203 "third_party/libpg_query/grammar/statements/select.y" + case 940: +#line 2246 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 936: -#line 2205 "third_party/libpg_query/grammar/statements/select.y" + case 941: +#line 2248 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 937: -#line 2207 "third_party/libpg_query/grammar/statements/select.y" + case 942: +#line 2250 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 938: -#line 2209 "third_party/libpg_query/grammar/statements/select.y" + case 943: +#line 2252 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 939: -#line 2211 "third_party/libpg_query/grammar/statements/select.y" + case 944: +#line 2254 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 940: -#line 2213 "third_party/libpg_query/grammar/statements/select.y" + case 945: +#line 2256 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 941: -#line 2216 "third_party/libpg_query/grammar/statements/select.y" + case 946: +#line 2259 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 942: -#line 2218 "third_party/libpg_query/grammar/statements/select.y" + case 947: +#line 2261 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 943: -#line 2220 "third_party/libpg_query/grammar/statements/select.y" + case 948: +#line 2263 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; - case 944: -#line 2223 "third_party/libpg_query/grammar/statements/select.y" + case 949: +#line 2266 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeAndExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 945: -#line 2225 "third_party/libpg_query/grammar/statements/select.y" + case 950: +#line 2268 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeOrExpr((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 946: -#line 2227 "third_party/libpg_query/grammar/statements/select.y" + case 951: +#line 2270 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 947: -#line 2229 "third_party/libpg_query/grammar/statements/select.y" + case 952: +#line 2272 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeNotExpr((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 948: -#line 2231 "third_party/libpg_query/grammar/statements/select.y" + case 953: +#line 2274 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_GLOB, "~~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 949: -#line 2236 "third_party/libpg_query/grammar/statements/select.y" + case 954: +#line 2279 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "~~", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 950: -#line 2241 "third_party/libpg_query/grammar/statements/select.y" + case 955: +#line 2284 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("like_escape"), list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), @@ -26854,16 +27266,16 @@ YYLTYPE yylloc; ;} break; - case 951: -#line 2248 "third_party/libpg_query/grammar/statements/select.y" + case 956: +#line 2291 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_LIKE, "!~~", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; - case 952: -#line 2253 "third_party/libpg_query/grammar/statements/select.y" + case 957: +#line 2296 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("not_like_escape"), list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), @@ -26872,16 +27284,16 @@ YYLTYPE yylloc; ;} break; - case 953: -#line 2260 "third_party/libpg_query/grammar/statements/select.y" + case 958: +#line 2303 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "~~*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 954: -#line 2265 "third_party/libpg_query/grammar/statements/select.y" + case 959: +#line 2308 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("ilike_escape"), list_make3((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node)), @@ -26890,16 +27302,16 @@ YYLTYPE yylloc; ;} break; - case 955: -#line 2272 "third_party/libpg_query/grammar/statements/select.y" + case 960: +#line 2315 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_ILIKE, "!~~*", (yyvsp[(1) - (4)].node), (yyvsp[(4) - (4)].node), (yylsp[(2) - (4)])); ;} break; - case 956: -#line 2277 "third_party/libpg_query/grammar/statements/select.y" + case 961: +#line 2320 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("not_ilike_escape"), list_make3((yyvsp[(1) - (6)].node), (yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), @@ -26908,8 +27320,8 @@ YYLTYPE yylloc; ;} break; - case 957: -#line 2285 "third_party/libpg_query/grammar/statements/select.y" + case 962: +#line 2328 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(4) - (4)].node), makeNullAConst(-1)), @@ -26919,8 +27331,8 @@ YYLTYPE yylloc; ;} break; - case 958: -#line 2293 "third_party/libpg_query/grammar/statements/select.y" + case 963: +#line 2336 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(4) - (6)].node), (yyvsp[(6) - (6)].node)), @@ -26930,8 +27342,8 @@ YYLTYPE yylloc; ;} break; - case 959: -#line 2301 "third_party/libpg_query/grammar/statements/select.y" + case 964: +#line 2344 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(5) - (5)].node), makeNullAConst(-1)), @@ -26941,8 +27353,8 @@ YYLTYPE yylloc; ;} break; - case 960: -#line 2309 "third_party/libpg_query/grammar/statements/select.y" + case 965: +#line 2352 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("similar_escape"), list_make2((yyvsp[(5) - (7)].node), (yyvsp[(7) - (7)].node)), @@ -26952,8 +27364,8 @@ YYLTYPE yylloc; ;} break; - case 961: -#line 2327 "third_party/libpg_query/grammar/statements/select.y" + case 966: +#line 2370 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); @@ -26963,8 +27375,8 @@ YYLTYPE yylloc; ;} break; - case 962: -#line 2335 "third_party/libpg_query/grammar/statements/select.y" + case 967: +#line 2378 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); @@ -26974,8 +27386,8 @@ YYLTYPE yylloc; ;} break; - case 963: -#line 2343 "third_party/libpg_query/grammar/statements/select.y" + case 968: +#line 2386 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); n->arg = (PGExpr *) (yyvsp[(1) - (4)].node); @@ -26985,8 +27397,8 @@ YYLTYPE yylloc; ;} break; - case 964: -#line 2351 "third_party/libpg_query/grammar/statements/select.y" + case 969: +#line 2394 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); n->arg = (PGExpr *) (yyvsp[(1) - (3)].node); @@ -26996,8 +27408,8 @@ YYLTYPE yylloc; ;} break; - case 965: -#line 2359 "third_party/libpg_query/grammar/statements/select.y" + case 970: +#line 2402 "third_party/libpg_query/grammar/statements/select.y" { PGNullTest *n = makeNode(PGNullTest); n->arg = (PGExpr *) (yyvsp[(1) - (2)].node); @@ -27007,8 +27419,8 @@ YYLTYPE yylloc; ;} break; - case 966: -#line 2367 "third_party/libpg_query/grammar/statements/select.y" + case 971: +#line 2410 "third_party/libpg_query/grammar/statements/select.y" { PGLambdaFunction *n = makeNode(PGLambdaFunction); n->lhs = (yyvsp[(1) - (3)].node); @@ -27018,15 +27430,15 @@ YYLTYPE yylloc; ;} break; - case 967: -#line 2375 "third_party/libpg_query/grammar/statements/select.y" + case 972: +#line 2418 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "->>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 968: -#line 2379 "third_party/libpg_query/grammar/statements/select.y" + case 973: +#line 2422 "third_party/libpg_query/grammar/statements/select.y" { if (list_length((yyvsp[(1) - (3)].list)) != 2) ereport(ERROR, @@ -27044,8 +27456,8 @@ YYLTYPE yylloc; ;} break; - case 969: -#line 2395 "third_party/libpg_query/grammar/statements/select.y" + case 974: +#line 2438 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); @@ -27055,8 +27467,8 @@ YYLTYPE yylloc; ;} break; - case 970: -#line 2403 "third_party/libpg_query/grammar/statements/select.y" + case 975: +#line 2446 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); @@ -27066,8 +27478,8 @@ YYLTYPE yylloc; ;} break; - case 971: -#line 2411 "third_party/libpg_query/grammar/statements/select.y" + case 976: +#line 2454 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); @@ -27077,8 +27489,8 @@ YYLTYPE yylloc; ;} break; - case 972: -#line 2419 "third_party/libpg_query/grammar/statements/select.y" + case 977: +#line 2462 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); @@ -27088,8 +27500,8 @@ YYLTYPE yylloc; ;} break; - case 973: -#line 2427 "third_party/libpg_query/grammar/statements/select.y" + case 978: +#line 2470 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); b->arg = (PGExpr *) (yyvsp[(1) - (3)].node); @@ -27099,8 +27511,8 @@ YYLTYPE yylloc; ;} break; - case 974: -#line 2435 "third_party/libpg_query/grammar/statements/select.y" + case 979: +#line 2478 "third_party/libpg_query/grammar/statements/select.y" { PGBooleanTest *b = makeNode(PGBooleanTest); b->arg = (PGExpr *) (yyvsp[(1) - (4)].node); @@ -27110,36 +27522,36 @@ YYLTYPE yylloc; ;} break; - case 975: -#line 2443 "third_party/libpg_query/grammar/statements/select.y" + case 980: +#line 2486 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; - case 976: -#line 2447 "third_party/libpg_query/grammar/statements/select.y" + case 981: +#line 2490 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); ;} break; - case 977: -#line 2451 "third_party/libpg_query/grammar/statements/select.y" + case 982: +#line 2494 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); ;} break; - case 978: -#line 2455 "third_party/libpg_query/grammar/statements/select.y" + case 983: +#line 2498 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); ;} break; - case 979: -#line 2459 "third_party/libpg_query/grammar/statements/select.y" + case 984: +#line 2502 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN, "BETWEEN", @@ -27149,8 +27561,8 @@ YYLTYPE yylloc; ;} break; - case 980: -#line 2467 "third_party/libpg_query/grammar/statements/select.y" + case 985: +#line 2510 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN, "NOT BETWEEN", @@ -27160,8 +27572,8 @@ YYLTYPE yylloc; ;} break; - case 981: -#line 2475 "third_party/libpg_query/grammar/statements/select.y" + case 986: +#line 2518 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_BETWEEN_SYM, "BETWEEN SYMMETRIC", @@ -27171,8 +27583,8 @@ YYLTYPE yylloc; ;} break; - case 982: -#line 2483 "third_party/libpg_query/grammar/statements/select.y" + case 987: +#line 2526 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_BETWEEN_SYM, "NOT BETWEEN SYMMETRIC", @@ -27182,8 +27594,8 @@ YYLTYPE yylloc; ;} break; - case 983: -#line 2491 "third_party/libpg_query/grammar/statements/select.y" + case 988: +#line 2534 "third_party/libpg_query/grammar/statements/select.y" { /* in_expr returns a PGSubLink or a list of a_exprs */ if (IsA((yyvsp[(3) - (3)].node), PGSubLink)) @@ -27205,8 +27617,8 @@ YYLTYPE yylloc; ;} break; - case 984: -#line 2511 "third_party/libpg_query/grammar/statements/select.y" + case 989: +#line 2554 "third_party/libpg_query/grammar/statements/select.y" { /* in_expr returns a PGSubLink or a list of a_exprs */ if (IsA((yyvsp[(4) - (4)].node), PGSubLink)) @@ -27230,8 +27642,8 @@ YYLTYPE yylloc; ;} break; - case 985: -#line 2533 "third_party/libpg_query/grammar/statements/select.y" + case 990: +#line 2576 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); n->subLinkType = (yyvsp[(3) - (4)].subquerytype); @@ -27244,8 +27656,8 @@ YYLTYPE yylloc; ;} break; - case 986: -#line 2544 "third_party/libpg_query/grammar/statements/select.y" + case 991: +#line 2587 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(3) - (6)].subquerytype) == PG_ANY_SUBLINK) (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP_ANY, (yyvsp[(2) - (6)].list), (yyvsp[(1) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(2) - (6)])); @@ -27254,8 +27666,8 @@ YYLTYPE yylloc; ;} break; - case 987: -#line 2551 "third_party/libpg_query/grammar/statements/select.y" + case 992: +#line 2594 "third_party/libpg_query/grammar/statements/select.y" { /* * The SQL spec only allows DEFAULT in "contextually typed @@ -27271,8 +27683,8 @@ YYLTYPE yylloc; ;} break; - case 988: -#line 2565 "third_party/libpg_query/grammar/statements/select.y" + case 993: +#line 2608 "third_party/libpg_query/grammar/statements/select.y" { PGAStar *star = makeNode(PGAStar); star->expr = (yyvsp[(4) - (5)].node); @@ -27283,8 +27695,8 @@ YYLTYPE yylloc; ;} break; - case 989: -#line 2574 "third_party/libpg_query/grammar/statements/select.y" + case 994: +#line 2617 "third_party/libpg_query/grammar/statements/select.y" { PGAStar *star = makeNode(PGAStar); star->expr = (yyvsp[(3) - (4)].node); @@ -27294,164 +27706,166 @@ YYLTYPE yylloc; ;} break; - case 990: -#line 2582 "third_party/libpg_query/grammar/statements/select.y" + case 995: +#line 2625 "third_party/libpg_query/grammar/statements/select.y" { PGAStar *star = makeNode(PGAStar); - star->except_list = (yyvsp[(2) - (3)].list); - star->replace_list = (yyvsp[(3) - (3)].list); - star->location = (yylsp[(1) - (3)]); + star->except_list = (yyvsp[(2) - (4)].list); + star->replace_list = (yyvsp[(3) - (4)].list); + star->rename_list = (yyvsp[(4) - (4)].list); + star->location = (yylsp[(1) - (4)]); (yyval.node) = (PGNode *) star; ;} break; - case 991: -#line 2590 "third_party/libpg_query/grammar/statements/select.y" + case 996: +#line 2634 "third_party/libpg_query/grammar/statements/select.y" { PGAStar *star = makeNode(PGAStar); - star->relation = (yyvsp[(1) - (5)].str); - star->except_list = (yyvsp[(4) - (5)].list); - star->replace_list = (yyvsp[(5) - (5)].list); - star->location = (yylsp[(1) - (5)]); + star->relation = (yyvsp[(1) - (6)].str); + star->except_list = (yyvsp[(4) - (6)].list); + star->replace_list = (yyvsp[(5) - (6)].list); + star->rename_list = (yyvsp[(6) - (6)].list); + star->location = (yylsp[(1) - (6)]); (yyval.node) = (PGNode *) star; ;} break; - case 992: -#line 2610 "third_party/libpg_query/grammar/statements/select.y" + case 997: +#line 2655 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 993: -#line 2612 "third_party/libpg_query/grammar/statements/select.y" + case 998: +#line 2657 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].typnam), 0, (yylsp[(2) - (3)])); ;} break; - case 994: -#line 2614 "third_party/libpg_query/grammar/statements/select.y" + case 999: +#line 2659 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 995: -#line 2616 "third_party/libpg_query/grammar/statements/select.y" + case 1000: +#line 2661 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = doNegate((yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 996: -#line 2618 "third_party/libpg_query/grammar/statements/select.y" + case 1001: +#line 2663 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "+", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 997: -#line 2620 "third_party/libpg_query/grammar/statements/select.y" + case 1002: +#line 2665 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "-", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 998: -#line 2622 "third_party/libpg_query/grammar/statements/select.y" + case 1003: +#line 2667 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "*", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 999: -#line 2624 "third_party/libpg_query/grammar/statements/select.y" + case 1004: +#line 2669 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "/", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1000: -#line 2626 "third_party/libpg_query/grammar/statements/select.y" + case 1005: +#line 2671 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "//", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1001: -#line 2628 "third_party/libpg_query/grammar/statements/select.y" + case 1006: +#line 2673 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "%", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1002: -#line 2630 "third_party/libpg_query/grammar/statements/select.y" + case 1007: +#line 2675 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "^", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1003: -#line 2632 "third_party/libpg_query/grammar/statements/select.y" + case 1008: +#line 2677 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "**", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1004: -#line 2634 "third_party/libpg_query/grammar/statements/select.y" + case 1009: +#line 2679 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1005: -#line 2636 "third_party/libpg_query/grammar/statements/select.y" + case 1010: +#line 2681 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1006: -#line 2638 "third_party/libpg_query/grammar/statements/select.y" + case 1011: +#line 2683 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1007: -#line 2640 "third_party/libpg_query/grammar/statements/select.y" + case 1012: +#line 2685 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1008: -#line 2642 "third_party/libpg_query/grammar/statements/select.y" + case 1013: +#line 2687 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, ">=", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1009: -#line 2644 "third_party/libpg_query/grammar/statements/select.y" + case 1014: +#line 2689 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OP, "<>", (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1010: -#line 2646 "third_party/libpg_query/grammar/statements/select.y" + case 1015: +#line 2691 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (3)].list), (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yylsp[(2) - (3)])); ;} break; - case 1011: -#line 2648 "third_party/libpg_query/grammar/statements/select.y" + case 1016: +#line 2693 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(1) - (2)].list), NULL, (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 1012: -#line 2650 "third_party/libpg_query/grammar/statements/select.y" + case 1017: +#line 2695 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeAExpr(PG_AEXPR_OP, (yyvsp[(2) - (2)].list), (yyvsp[(1) - (2)].node), NULL, (yylsp[(2) - (2)])); ;} break; - case 1013: -#line 2652 "third_party/libpg_query/grammar/statements/select.y" + case 1018: +#line 2697 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_DISTINCT, "=", (yyvsp[(1) - (5)].node), (yyvsp[(5) - (5)].node), (yylsp[(2) - (5)])); ;} break; - case 1014: -#line 2656 "third_party/libpg_query/grammar/statements/select.y" + case 1019: +#line 2701 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NOT_DISTINCT, "=", (yyvsp[(1) - (6)].node), (yyvsp[(6) - (6)].node), (yylsp[(2) - (6)])); ;} break; - case 1015: -#line 2660 "third_party/libpg_query/grammar/statements/select.y" + case 1020: +#line 2705 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "=", (yyvsp[(1) - (6)].node), (PGNode *) (yyvsp[(5) - (6)].list), (yylsp[(2) - (6)])); ;} break; - case 1016: -#line 2664 "third_party/libpg_query/grammar/statements/select.y" + case 1021: +#line 2709 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_OF, "<>", (yyvsp[(1) - (7)].node), (PGNode *) (yyvsp[(6) - (7)].list), (yylsp[(2) - (7)])); ;} break; - case 1018: -#line 2679 "third_party/libpg_query/grammar/statements/select.y" + case 1023: +#line 2724 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(2) - (2)].list)) { @@ -27465,18 +27879,18 @@ YYLTYPE yylloc; ;} break; - case 1019: -#line 2692 "third_party/libpg_query/grammar/statements/select.y" + case 1024: +#line 2737 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1020: -#line 2693 "third_party/libpg_query/grammar/statements/select.y" + case 1025: +#line 2738 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1021: -#line 2695 "third_party/libpg_query/grammar/statements/select.y" + case 1026: +#line 2740 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); n->subLinkType = PG_EXPR_SUBLINK; @@ -27489,8 +27903,8 @@ YYLTYPE yylloc; ;} break; - case 1022: -#line 2706 "third_party/libpg_query/grammar/statements/select.y" + case 1027: +#line 2751 "third_party/libpg_query/grammar/statements/select.y" { /* * Because the select_with_parens nonterminal is designed @@ -27516,8 +27930,8 @@ YYLTYPE yylloc; ;} break; - case 1023: -#line 2730 "third_party/libpg_query/grammar/statements/select.y" + case 1028: +#line 2775 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); n->subLinkType = PG_EXISTS_SUBLINK; @@ -27530,8 +27944,8 @@ YYLTYPE yylloc; ;} break; - case 1024: -#line 2741 "third_party/libpg_query/grammar/statements/select.y" + case 1029: +#line 2786 "third_party/libpg_query/grammar/statements/select.y" { PGGroupingFunc *g = makeNode(PGGroupingFunc); g->args = (yyvsp[(3) - (4)].list); @@ -27540,37 +27954,37 @@ YYLTYPE yylloc; ;} break; - case 1025: -#line 2751 "third_party/libpg_query/grammar/statements/select.y" + case 1030: +#line 2796 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (3)].node); ;} break; - case 1026: -#line 2755 "third_party/libpg_query/grammar/statements/select.y" + case 1031: +#line 2800 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1027: -#line 2758 "third_party/libpg_query/grammar/statements/select.y" + case 1032: +#line 2803 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[(1) - (1)].list), (yylsp[(1) - (1)])); (yyval.node) = (PGNode *) n; ;} break; - case 1028: -#line 2766 "third_party/libpg_query/grammar/statements/select.y" + case 1033: +#line 2811 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeParamRef(0, (yylsp[(1) - (1)])); ;} break; - case 1029: -#line 2770 "third_party/libpg_query/grammar/statements/select.y" + case 1034: +#line 2815 "third_party/libpg_query/grammar/statements/select.y" { PGParamRef *p = makeNode(PGParamRef); p->number = (yyvsp[(1) - (1)].ival); @@ -27579,48 +27993,15 @@ YYLTYPE yylloc; ;} break; - case 1030: -#line 2777 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(1) - (1)].node); - ;} - break; - - case 1031: -#line 2781 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(1) - (1)].node); - ;} - break; - - case 1032: -#line 2785 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(1) - (1)].node); - ;} - break; - - case 1033: -#line 2789 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.node) = (yyvsp[(1) - (1)].node); ;} - break; - - case 1034: -#line 2790 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = (yyvsp[(1) - (1)].node); - ;} - break; - case 1035: -#line 2793 "third_party/libpg_query/grammar/statements/select.y" +#line 2822 "third_party/libpg_query/grammar/statements/select.y" { - (yyval.node) = (yyvsp[(1) - (1)].node); - ;} + (yyval.node) = makeNamedParamRef((yyvsp[(2) - (2)].str), (yylsp[(1) - (2)])); + ;} break; - case 1036: -#line 2797 "third_party/libpg_query/grammar/statements/select.y" + case 1043: +#line 2836 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); n->subLinkType = PG_ARRAY_SUBLINK; @@ -27633,8 +28014,8 @@ YYLTYPE yylloc; ;} break; - case 1037: -#line 2807 "third_party/libpg_query/grammar/statements/select.y" + case 1044: +#line 2846 "third_party/libpg_query/grammar/statements/select.y" { PGList *func_name = list_make1(makeString("construct_array")); PGFuncCall *n = makeFuncCall(func_name, (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); @@ -27642,8 +28023,8 @@ YYLTYPE yylloc; ;} break; - case 1038: -#line 2813 "third_party/libpg_query/grammar/statements/select.y" + case 1045: +#line 2852 "third_party/libpg_query/grammar/statements/select.y" { PGPositionalReference *n = makeNode(PGPositionalReference); n->position = (yyvsp[(2) - (2)].ival); @@ -27652,31 +28033,24 @@ YYLTYPE yylloc; ;} break; - case 1039: -#line 2820 "third_party/libpg_query/grammar/statements/select.y" - { - (yyval.node) = makeNamedParamRef((yyvsp[(2) - (2)].str), (yylsp[(1) - (2)])); - ;} - break; - - case 1040: -#line 2825 "third_party/libpg_query/grammar/statements/select.y" + case 1046: +#line 2860 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("list_value"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); (yyval.node) = (PGNode *) n; ;} break; - case 1041: -#line 2832 "third_party/libpg_query/grammar/statements/select.y" + case 1047: +#line 2867 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *f = makeFuncCall(SystemFuncName("struct_pack"), (yyvsp[(2) - (3)].list), (yylsp[(2) - (3)])); (yyval.node) = (PGNode *) f; ;} break; - case 1042: -#line 2839 "third_party/libpg_query/grammar/statements/select.y" + case 1048: +#line 2874 "third_party/libpg_query/grammar/statements/select.y" { PGList *key_list = NULL; PGList *value_list = NULL; @@ -27695,15 +28069,15 @@ YYLTYPE yylloc; ;} break; - case 1043: -#line 2859 "third_party/libpg_query/grammar/statements/select.y" + case 1049: +#line 2894 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall((yyvsp[(1) - (3)].list), NIL, (yylsp[(1) - (3)])); ;} break; - case 1044: -#line 2863 "third_party/libpg_query/grammar/statements/select.y" + case 1050: +#line 2898 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[(1) - (6)].list), (yyvsp[(3) - (6)].list), (yylsp[(1) - (6)])); n->agg_order = (yyvsp[(4) - (6)].list); @@ -27712,8 +28086,8 @@ YYLTYPE yylloc; ;} break; - case 1045: -#line 2870 "third_party/libpg_query/grammar/statements/select.y" + case 1051: +#line 2905 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), list_make1((yyvsp[(4) - (7)].node)), (yylsp[(1) - (7)])); n->func_variadic = true; @@ -27723,8 +28097,8 @@ YYLTYPE yylloc; ;} break; - case 1046: -#line 2878 "third_party/libpg_query/grammar/statements/select.y" + case 1052: +#line 2913 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[(1) - (9)].list), lappend((yyvsp[(3) - (9)].list), (yyvsp[(6) - (9)].node)), (yylsp[(1) - (9)])); n->func_variadic = true; @@ -27734,8 +28108,8 @@ YYLTYPE yylloc; ;} break; - case 1047: -#line 2886 "third_party/libpg_query/grammar/statements/select.y" + case 1053: +#line 2921 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); n->agg_order = (yyvsp[(5) - (7)].list); @@ -27748,8 +28122,8 @@ YYLTYPE yylloc; ;} break; - case 1048: -#line 2897 "third_party/libpg_query/grammar/statements/select.y" + case 1054: +#line 2932 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall((yyvsp[(1) - (7)].list), (yyvsp[(4) - (7)].list), (yylsp[(1) - (7)])); n->agg_order = (yyvsp[(5) - (7)].list); @@ -27759,8 +28133,8 @@ YYLTYPE yylloc; ;} break; - case 1049: -#line 2917 "third_party/libpg_query/grammar/statements/select.y" + case 1055: +#line 2952 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = (PGFuncCall *) (yyvsp[(1) - (5)].node); /* @@ -27798,23 +28172,23 @@ YYLTYPE yylloc; ;} break; - case 1050: -#line 2953 "third_party/libpg_query/grammar/statements/select.y" + case 1056: +#line 2988 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1051: -#line 2963 "third_party/libpg_query/grammar/statements/select.y" + case 1057: +#line 2998 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1052: -#line 2964 "third_party/libpg_query/grammar/statements/select.y" + case 1058: +#line 2999 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1053: -#line 2972 "third_party/libpg_query/grammar/statements/select.y" + case 1059: +#line 3007 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("pg_collation_for"), list_make1((yyvsp[(4) - (5)].node)), @@ -27822,25 +28196,25 @@ YYLTYPE yylloc; ;} break; - case 1054: -#line 2978 "third_party/libpg_query/grammar/statements/select.y" + case 1060: +#line 3013 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 0, (yylsp[(1) - (6)])); ;} break; - case 1055: -#line 2980 "third_party/libpg_query/grammar/statements/select.y" + case 1061: +#line 3015 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeTypeCast((yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].typnam), 1, (yylsp[(1) - (6)])); ;} break; - case 1056: -#line 2982 "third_party/libpg_query/grammar/statements/select.y" + case 1062: +#line 3017 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("date_part"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; - case 1057: -#line 2986 "third_party/libpg_query/grammar/statements/select.y" + case 1063: +#line 3021 "third_party/libpg_query/grammar/statements/select.y" { /* overlay(A PLACING B FROM C FOR D) is converted to * overlay(A, B, C, D) @@ -27851,16 +28225,16 @@ YYLTYPE yylloc; ;} break; - case 1058: -#line 2995 "third_party/libpg_query/grammar/statements/select.y" + case 1064: +#line 3030 "third_party/libpg_query/grammar/statements/select.y" { /* position(A in B) is converted to position_inverse(A, B) */ (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("__internal_position_operator"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; - case 1059: -#line 3000 "third_party/libpg_query/grammar/statements/select.y" + case 1065: +#line 3035 "third_party/libpg_query/grammar/statements/select.y" { /* substring(A from B for C) is converted to * substring(A, B, C) - thomas 2000-11-28 @@ -27869,8 +28243,8 @@ YYLTYPE yylloc; ;} break; - case 1060: -#line 3007 "third_party/libpg_query/grammar/statements/select.y" + case 1066: +#line 3042 "third_party/libpg_query/grammar/statements/select.y" { /* TREAT(expr AS target) converts expr of a particular type to target, * which is defined to be a subtype of the original expression. @@ -27887,8 +28261,8 @@ YYLTYPE yylloc; ;} break; - case 1061: -#line 3022 "third_party/libpg_query/grammar/statements/select.y" + case 1067: +#line 3057 "third_party/libpg_query/grammar/statements/select.y" { /* various trim expressions are defined in SQL * - thomas 1997-07-19 @@ -27897,36 +28271,36 @@ YYLTYPE yylloc; ;} break; - case 1062: -#line 3029 "third_party/libpg_query/grammar/statements/select.y" + case 1068: +#line 3064 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("ltrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; - case 1063: -#line 3033 "third_party/libpg_query/grammar/statements/select.y" + case 1069: +#line 3068 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("rtrim"), (yyvsp[(4) - (5)].list), (yylsp[(1) - (5)])); ;} break; - case 1064: -#line 3037 "third_party/libpg_query/grammar/statements/select.y" + case 1070: +#line 3072 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeFuncCall(SystemFuncName("trim"), (yyvsp[(3) - (4)].list), (yylsp[(1) - (4)])); ;} break; - case 1065: -#line 3041 "third_party/libpg_query/grammar/statements/select.y" + case 1071: +#line 3076 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *) makeSimpleAExpr(PG_AEXPR_NULLIF, "=", (yyvsp[(3) - (6)].node), (yyvsp[(5) - (6)].node), (yylsp[(1) - (6)])); ;} break; - case 1066: -#line 3045 "third_party/libpg_query/grammar/statements/select.y" + case 1072: +#line 3080 "third_party/libpg_query/grammar/statements/select.y" { PGCoalesceExpr *c = makeNode(PGCoalesceExpr); c->args = (yyvsp[(3) - (4)].list); @@ -27935,16 +28309,16 @@ YYLTYPE yylloc; ;} break; - case 1067: -#line 3055 "third_party/libpg_query/grammar/statements/select.y" + case 1073: +#line 3090 "third_party/libpg_query/grammar/statements/select.y" { PGFuncCall *n = makeFuncCall(SystemFuncName("row"), (yyvsp[(1) - (1)].list), (yylsp[(1) - (1)])); (yyval.node) = (PGNode *) n; ;} break; - case 1068: -#line 3063 "third_party/libpg_query/grammar/statements/select.y" + case 1074: +#line 3098 "third_party/libpg_query/grammar/statements/select.y" { PGLambdaFunction *lambda = makeNode(PGLambdaFunction); lambda->lhs = (yyvsp[(4) - (7)].node); @@ -27955,8 +28329,8 @@ YYLTYPE yylloc; ;} break; - case 1069: -#line 3072 "third_party/libpg_query/grammar/statements/select.y" + case 1075: +#line 3107 "third_party/libpg_query/grammar/statements/select.y" { PGLambdaFunction *lambda = makeNode(PGLambdaFunction); lambda->lhs = (yyvsp[(4) - (9)].node); @@ -27973,63 +28347,63 @@ YYLTYPE yylloc; ;} break; - case 1070: -#line 3093 "third_party/libpg_query/grammar/statements/select.y" + case 1076: +#line 3128 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(4) - (5)].list); ;} break; - case 1071: -#line 3094 "third_party/libpg_query/grammar/statements/select.y" + case 1077: +#line 3129 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1072: -#line 3098 "third_party/libpg_query/grammar/statements/select.y" + case 1078: +#line 3133 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(4) - (5)].node); ;} break; - case 1073: -#line 3099 "third_party/libpg_query/grammar/statements/select.y" + case 1079: +#line 3134 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(3) - (4)].node); ;} break; - case 1074: -#line 3100 "third_party/libpg_query/grammar/statements/select.y" + case 1080: +#line 3135 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 1075: -#line 3104 "third_party/libpg_query/grammar/statements/select.y" + case 1081: +#line 3139 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = true; ;} break; - case 1076: -#line 3105 "third_party/libpg_query/grammar/statements/select.y" + case 1082: +#line 3140 "third_party/libpg_query/grammar/statements/select.y" { (yyval.boolean) = false; ;} break; - case 1077: -#line 3112 "third_party/libpg_query/grammar/statements/select.y" + case 1083: +#line 3147 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 1078: -#line 3113 "third_party/libpg_query/grammar/statements/select.y" + case 1084: +#line 3148 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1079: -#line 3117 "third_party/libpg_query/grammar/statements/select.y" + case 1085: +#line 3152 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].windef)); ;} break; - case 1080: -#line 3119 "third_party/libpg_query/grammar/statements/select.y" + case 1086: +#line 3154 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].windef)); ;} break; - case 1081: -#line 3124 "third_party/libpg_query/grammar/statements/select.y" + case 1087: +#line 3159 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[(3) - (3)].windef); n->name = (yyvsp[(1) - (3)].str); @@ -28037,13 +28411,13 @@ YYLTYPE yylloc; ;} break; - case 1082: -#line 3132 "third_party/libpg_query/grammar/statements/select.y" + case 1088: +#line 3167 "third_party/libpg_query/grammar/statements/select.y" { (yyval.windef) = (yyvsp[(2) - (2)].windef); ;} break; - case 1083: -#line 3134 "third_party/libpg_query/grammar/statements/select.y" + case 1089: +#line 3169 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); n->name = (yyvsp[(2) - (2)].str); @@ -28058,13 +28432,13 @@ YYLTYPE yylloc; ;} break; - case 1084: -#line 3147 "third_party/libpg_query/grammar/statements/select.y" + case 1090: +#line 3182 "third_party/libpg_query/grammar/statements/select.y" { (yyval.windef) = NULL; ;} break; - case 1085: -#line 3152 "third_party/libpg_query/grammar/statements/select.y" + case 1091: +#line 3187 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); n->name = NULL; @@ -28080,28 +28454,28 @@ YYLTYPE yylloc; ;} break; - case 1086: -#line 3177 "third_party/libpg_query/grammar/statements/select.y" + case 1092: +#line 3212 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1087: -#line 3178 "third_party/libpg_query/grammar/statements/select.y" + case 1093: +#line 3213 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = NULL; ;} break; - case 1088: -#line 3181 "third_party/libpg_query/grammar/statements/select.y" + case 1094: +#line 3216 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (3)].list); ;} break; - case 1089: -#line 3182 "third_party/libpg_query/grammar/statements/select.y" + case 1095: +#line 3217 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1090: -#line 3191 "third_party/libpg_query/grammar/statements/select.y" + case 1096: +#line 3226 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[(2) - (3)].windef); @@ -28111,8 +28485,8 @@ YYLTYPE yylloc; ;} break; - case 1091: -#line 3199 "third_party/libpg_query/grammar/statements/select.y" + case 1097: +#line 3234 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[(2) - (3)].windef); @@ -28122,8 +28496,8 @@ YYLTYPE yylloc; ;} break; - case 1092: -#line 3207 "third_party/libpg_query/grammar/statements/select.y" + case 1098: +#line 3242 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[(2) - (3)].windef); @@ -28133,8 +28507,8 @@ YYLTYPE yylloc; ;} break; - case 1093: -#line 3215 "third_party/libpg_query/grammar/statements/select.y" + case 1099: +#line 3250 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -28145,8 +28519,8 @@ YYLTYPE yylloc; ;} break; - case 1094: -#line 3226 "third_party/libpg_query/grammar/statements/select.y" + case 1100: +#line 3261 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = (yyvsp[(1) - (1)].windef); @@ -28166,8 +28540,8 @@ YYLTYPE yylloc; ;} break; - case 1095: -#line 3244 "third_party/libpg_query/grammar/statements/select.y" + case 1101: +#line 3279 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n1 = (yyvsp[(2) - (4)].windef); PGWindowDef *n2 = (yyvsp[(4) - (4)].windef); @@ -28207,8 +28581,8 @@ YYLTYPE yylloc; ;} break; - case 1096: -#line 3290 "third_party/libpg_query/grammar/statements/select.y" + case 1102: +#line 3325 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -28219,8 +28593,8 @@ YYLTYPE yylloc; ;} break; - case 1097: -#line 3299 "third_party/libpg_query/grammar/statements/select.y" + case 1103: +#line 3334 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -28231,8 +28605,8 @@ YYLTYPE yylloc; ;} break; - case 1098: -#line 3308 "third_party/libpg_query/grammar/statements/select.y" + case 1104: +#line 3343 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -28243,8 +28617,8 @@ YYLTYPE yylloc; ;} break; - case 1099: -#line 3317 "third_party/libpg_query/grammar/statements/select.y" + case 1105: +#line 3352 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -28255,8 +28629,8 @@ YYLTYPE yylloc; ;} break; - case 1100: -#line 3326 "third_party/libpg_query/grammar/statements/select.y" + case 1106: +#line 3361 "third_party/libpg_query/grammar/statements/select.y" { PGWindowDef *n = makeNode(PGWindowDef); @@ -28267,53 +28641,53 @@ YYLTYPE yylloc; ;} break; - case 1101: -#line 3337 "third_party/libpg_query/grammar/statements/select.y" + case 1107: +#line 3372 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; ;} break; - case 1102: -#line 3338 "third_party/libpg_query/grammar/statements/select.y" + case 1108: +#line 3373 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; ;} break; - case 1103: -#line 3339 "third_party/libpg_query/grammar/statements/select.y" + case 1109: +#line 3374 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; ;} break; - case 1104: -#line 3340 "third_party/libpg_query/grammar/statements/select.y" + case 1110: +#line 3375 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; ;} break; - case 1105: -#line 3341 "third_party/libpg_query/grammar/statements/select.y" + case 1111: +#line 3376 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = 0; ;} break; - case 1106: -#line 3355 "third_party/libpg_query/grammar/statements/select.y" + case 1112: +#line 3390 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 1107: -#line 3356 "third_party/libpg_query/grammar/statements/select.y" + case 1113: +#line 3391 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1108: -#line 3359 "third_party/libpg_query/grammar/statements/select.y" + case 1114: +#line 3394 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list);;} break; - case 1109: -#line 3360 "third_party/libpg_query/grammar/statements/select.y" + case 1115: +#line 3395 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(2) - (5)].list), (yyvsp[(4) - (5)].node)); ;} break; - case 1110: -#line 3364 "third_party/libpg_query/grammar/statements/select.y" + case 1116: +#line 3399 "third_party/libpg_query/grammar/statements/select.y" { PGNamedArgExpr *na = makeNode(PGNamedArgExpr); na->name = (yyvsp[(1) - (3)].str); @@ -28324,321 +28698,321 @@ YYLTYPE yylloc; ;} break; - case 1111: -#line 3374 "third_party/libpg_query/grammar/statements/select.y" + case 1117: +#line 3409 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 1112: -#line 3375 "third_party/libpg_query/grammar/statements/select.y" + case 1118: +#line 3410 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 1113: -#line 3379 "third_party/libpg_query/grammar/statements/select.y" + case 1119: +#line 3414 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1114: -#line 3380 "third_party/libpg_query/grammar/statements/select.y" + case 1120: +#line 3415 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; - case 1115: -#line 3385 "third_party/libpg_query/grammar/statements/select.y" + case 1121: +#line 3420 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; - case 1116: -#line 3391 "third_party/libpg_query/grammar/statements/select.y" + case 1122: +#line 3426 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; - case 1117: -#line 3392 "third_party/libpg_query/grammar/statements/select.y" + case 1123: +#line 3427 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; - case 1118: -#line 3397 "third_party/libpg_query/grammar/statements/select.y" + case 1124: +#line 3432 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1119: -#line 3398 "third_party/libpg_query/grammar/statements/select.y" + case 1125: +#line 3433 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; - case 1120: -#line 3403 "third_party/libpg_query/grammar/statements/select.y" + case 1126: +#line 3438 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1121: -#line 3404 "third_party/libpg_query/grammar/statements/select.y" + case 1127: +#line 3439 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; ;} break; - case 1122: -#line 3407 "third_party/libpg_query/grammar/statements/select.y" + case 1128: +#line 3442 "third_party/libpg_query/grammar/statements/select.y" { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} break; - case 1123: -#line 3408 "third_party/libpg_query/grammar/statements/select.y" + case 1129: +#line 3443 "third_party/libpg_query/grammar/statements/select.y" { (yyval.subquerytype) = PG_ANY_SUBLINK; ;} break; - case 1124: -#line 3409 "third_party/libpg_query/grammar/statements/select.y" + case 1130: +#line 3444 "third_party/libpg_query/grammar/statements/select.y" { (yyval.subquerytype) = PG_ALL_SUBLINK; ;} break; - case 1125: -#line 3412 "third_party/libpg_query/grammar/statements/select.y" + case 1131: +#line 3447 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1126: -#line 3413 "third_party/libpg_query/grammar/statements/select.y" + case 1132: +#line 3448 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) (yyvsp[(1) - (1)].conststr); ;} break; - case 1127: -#line 3416 "third_party/libpg_query/grammar/statements/select.y" + case 1133: +#line 3451 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "+"; ;} break; - case 1128: -#line 3417 "third_party/libpg_query/grammar/statements/select.y" + case 1134: +#line 3452 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "-"; ;} break; - case 1129: -#line 3418 "third_party/libpg_query/grammar/statements/select.y" + case 1135: +#line 3453 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "*"; ;} break; - case 1130: -#line 3419 "third_party/libpg_query/grammar/statements/select.y" + case 1136: +#line 3454 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "/"; ;} break; - case 1131: -#line 3420 "third_party/libpg_query/grammar/statements/select.y" + case 1137: +#line 3455 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "//"; ;} break; - case 1132: -#line 3421 "third_party/libpg_query/grammar/statements/select.y" + case 1138: +#line 3456 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "%"; ;} break; - case 1133: -#line 3422 "third_party/libpg_query/grammar/statements/select.y" + case 1139: +#line 3457 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "^"; ;} break; - case 1134: -#line 3423 "third_party/libpg_query/grammar/statements/select.y" + case 1140: +#line 3458 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "**"; ;} break; - case 1135: -#line 3424 "third_party/libpg_query/grammar/statements/select.y" + case 1141: +#line 3459 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "<"; ;} break; - case 1136: -#line 3425 "third_party/libpg_query/grammar/statements/select.y" + case 1142: +#line 3460 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = ">"; ;} break; - case 1137: -#line 3426 "third_party/libpg_query/grammar/statements/select.y" + case 1143: +#line 3461 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "="; ;} break; - case 1138: -#line 3427 "third_party/libpg_query/grammar/statements/select.y" + case 1144: +#line 3462 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "<="; ;} break; - case 1139: -#line 3428 "third_party/libpg_query/grammar/statements/select.y" + case 1145: +#line 3463 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = ">="; ;} break; - case 1140: -#line 3429 "third_party/libpg_query/grammar/statements/select.y" + case 1146: +#line 3464 "third_party/libpg_query/grammar/statements/select.y" { (yyval.conststr) = "<>"; ;} break; - case 1141: -#line 3433 "third_party/libpg_query/grammar/statements/select.y" + case 1147: +#line 3468 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 1142: -#line 3435 "third_party/libpg_query/grammar/statements/select.y" + case 1148: +#line 3470 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 1143: -#line 3440 "third_party/libpg_query/grammar/statements/select.y" + case 1149: +#line 3475 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 1144: -#line 3442 "third_party/libpg_query/grammar/statements/select.y" + case 1150: +#line 3477 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 1145: -#line 3447 "third_party/libpg_query/grammar/statements/select.y" + case 1151: +#line 3482 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 1146: -#line 3449 "third_party/libpg_query/grammar/statements/select.y" + case 1152: +#line 3484 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 1147: -#line 3451 "third_party/libpg_query/grammar/statements/select.y" + case 1153: +#line 3486 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("~~")); ;} break; - case 1148: -#line 3453 "third_party/libpg_query/grammar/statements/select.y" + case 1154: +#line 3488 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("!~~")); ;} break; - case 1149: -#line 3455 "third_party/libpg_query/grammar/statements/select.y" + case 1155: +#line 3490 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("~~~")); ;} break; - case 1150: -#line 3457 "third_party/libpg_query/grammar/statements/select.y" + case 1156: +#line 3492 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("!~~~")); ;} break; - case 1151: -#line 3459 "third_party/libpg_query/grammar/statements/select.y" + case 1157: +#line 3494 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("~~*")); ;} break; - case 1152: -#line 3461 "third_party/libpg_query/grammar/statements/select.y" + case 1158: +#line 3496 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString("!~~*")); ;} break; - case 1153: -#line 3475 "third_party/libpg_query/grammar/statements/select.y" + case 1159: +#line 3510 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 1154: -#line 3477 "third_party/libpg_query/grammar/statements/select.y" + case 1160: +#line 3512 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (3)].str)), (yyvsp[(3) - (3)].list)); ;} break; - case 1155: -#line 3482 "third_party/libpg_query/grammar/statements/select.y" + case 1161: +#line 3517 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 1156: -#line 3486 "third_party/libpg_query/grammar/statements/select.y" + case 1162: +#line 3521 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 1157: -#line 3493 "third_party/libpg_query/grammar/statements/select.y" + case 1163: +#line 3528 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1158: -#line 3498 "third_party/libpg_query/grammar/statements/select.y" + case 1164: +#line 3533 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; - case 1159: -#line 3504 "third_party/libpg_query/grammar/statements/select.y" + case 1165: +#line 3539 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 1160: -#line 3508 "third_party/libpg_query/grammar/statements/select.y" + case 1166: +#line 3543 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 1161: -#line 3515 "third_party/libpg_query/grammar/statements/select.y" + case 1167: +#line 3550 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1162: -#line 3520 "third_party/libpg_query/grammar/statements/select.y" + case 1168: +#line 3555 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; - case 1163: -#line 3527 "third_party/libpg_query/grammar/statements/select.y" + case 1169: +#line 3562 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1164: -#line 3531 "third_party/libpg_query/grammar/statements/select.y" + case 1170: +#line 3566 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; ;} break; - case 1165: -#line 3540 "third_party/libpg_query/grammar/statements/select.y" + case 1171: +#line 3575 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 1166: -#line 3544 "third_party/libpg_query/grammar/statements/select.y" + case 1172: +#line 3579 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 1167: -#line 3550 "third_party/libpg_query/grammar/statements/select.y" + case 1173: +#line 3585 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1168: -#line 3554 "third_party/libpg_query/grammar/statements/select.y" + case 1174: +#line 3589 "third_party/libpg_query/grammar/statements/select.y" { PGNamedArgExpr *na = makeNode(PGNamedArgExpr); na->name = (yyvsp[(1) - (3)].str); @@ -28649,8 +29023,8 @@ YYLTYPE yylloc; ;} break; - case 1169: -#line 3563 "third_party/libpg_query/grammar/statements/select.y" + case 1175: +#line 3598 "third_party/libpg_query/grammar/statements/select.y" { PGNamedArgExpr *na = makeNode(PGNamedArgExpr); na->name = (yyvsp[(1) - (3)].str); @@ -28661,156 +29035,156 @@ YYLTYPE yylloc; ;} break; - case 1170: -#line 3573 "third_party/libpg_query/grammar/statements/select.y" + case 1176: +#line 3608 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].typnam)); ;} break; - case 1171: -#line 3574 "third_party/libpg_query/grammar/statements/select.y" + case 1177: +#line 3609 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].typnam)); ;} break; - case 1172: -#line 3579 "third_party/libpg_query/grammar/statements/select.y" + case 1178: +#line 3614 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2(makeStringConst((yyvsp[(1) - (3)].str), (yylsp[(1) - (3)])), (yyvsp[(3) - (3)].node)); ;} break; - case 1173: -#line 3582 "third_party/libpg_query/grammar/statements/select.y" + case 1179: +#line 3617 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1174: -#line 3589 "third_party/libpg_query/grammar/statements/select.y" + case 1180: +#line 3624 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1175: -#line 3590 "third_party/libpg_query/grammar/statements/select.y" + case 1181: +#line 3625 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "year"; ;} break; - case 1176: -#line 3591 "third_party/libpg_query/grammar/statements/select.y" + case 1182: +#line 3626 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "month"; ;} break; - case 1177: -#line 3592 "third_party/libpg_query/grammar/statements/select.y" + case 1183: +#line 3627 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "day"; ;} break; - case 1178: -#line 3593 "third_party/libpg_query/grammar/statements/select.y" + case 1184: +#line 3628 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "hour"; ;} break; - case 1179: -#line 3594 "third_party/libpg_query/grammar/statements/select.y" + case 1185: +#line 3629 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "minute"; ;} break; - case 1180: -#line 3595 "third_party/libpg_query/grammar/statements/select.y" + case 1186: +#line 3630 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "second"; ;} break; - case 1181: -#line 3596 "third_party/libpg_query/grammar/statements/select.y" + case 1187: +#line 3631 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "millisecond"; ;} break; - case 1182: -#line 3597 "third_party/libpg_query/grammar/statements/select.y" + case 1188: +#line 3632 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "microsecond"; ;} break; - case 1183: -#line 3598 "third_party/libpg_query/grammar/statements/select.y" + case 1189: +#line 3633 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "week"; ;} break; - case 1184: -#line 3599 "third_party/libpg_query/grammar/statements/select.y" + case 1190: +#line 3634 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "quarter"; ;} break; - case 1185: -#line 3600 "third_party/libpg_query/grammar/statements/select.y" + case 1191: +#line 3635 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "decade"; ;} break; - case 1186: -#line 3601 "third_party/libpg_query/grammar/statements/select.y" + case 1192: +#line 3636 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "century"; ;} break; - case 1187: -#line 3602 "third_party/libpg_query/grammar/statements/select.y" + case 1193: +#line 3637 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (char*) "millennium"; ;} break; - case 1188: -#line 3603 "third_party/libpg_query/grammar/statements/select.y" + case 1194: +#line 3638 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1189: -#line 3614 "third_party/libpg_query/grammar/statements/select.y" + case 1195: +#line 3649 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make4((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].node), (yyvsp[(3) - (4)].node), (yyvsp[(4) - (4)].node)); ;} break; - case 1190: -#line 3618 "third_party/libpg_query/grammar/statements/select.y" + case 1196: +#line 3653 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; - case 1191: -#line 3625 "third_party/libpg_query/grammar/statements/select.y" + case 1197: +#line 3660 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 1192: -#line 3631 "third_party/libpg_query/grammar/statements/select.y" + case 1198: +#line 3666 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; - case 1193: -#line 3632 "third_party/libpg_query/grammar/statements/select.y" + case 1199: +#line 3667 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1194: -#line 3649 "third_party/libpg_query/grammar/statements/select.y" + case 1200: +#line 3684 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(2) - (3)].node), (yyvsp[(3) - (3)].node)); ;} break; - case 1195: -#line 3653 "third_party/libpg_query/grammar/statements/select.y" + case 1201: +#line 3688 "third_party/libpg_query/grammar/statements/select.y" { /* not legal per SQL99, but might as well allow it */ (yyval.list) = list_make3((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node), (yyvsp[(2) - (3)].node)); ;} break; - case 1196: -#line 3658 "third_party/libpg_query/grammar/statements/select.y" + case 1202: +#line 3693 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[(1) - (2)].node), (yyvsp[(2) - (2)].node)); ;} break; - case 1197: -#line 3662 "third_party/libpg_query/grammar/statements/select.y" + case 1203: +#line 3697 "third_party/libpg_query/grammar/statements/select.y" { /* * Since there are no cases where this syntax allows @@ -28827,45 +29201,45 @@ YYLTYPE yylloc; ;} break; - case 1198: -#line 3677 "third_party/libpg_query/grammar/statements/select.y" + case 1204: +#line 3712 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1199: -#line 3681 "third_party/libpg_query/grammar/statements/select.y" + case 1205: +#line 3716 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1200: -#line 3685 "third_party/libpg_query/grammar/statements/select.y" + case 1206: +#line 3720 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 1201: -#line 3688 "third_party/libpg_query/grammar/statements/select.y" + case 1207: +#line 3723 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 1202: -#line 3691 "third_party/libpg_query/grammar/statements/select.y" + case 1208: +#line 3726 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(3) - (3)].list), (yyvsp[(1) - (3)].node)); ;} break; - case 1203: -#line 3692 "third_party/libpg_query/grammar/statements/select.y" + case 1209: +#line 3727 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 1204: -#line 3693 "third_party/libpg_query/grammar/statements/select.y" + case 1210: +#line 3728 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1205: -#line 3697 "third_party/libpg_query/grammar/statements/select.y" + case 1211: +#line 3732 "third_party/libpg_query/grammar/statements/select.y" { PGSubLink *n = makeNode(PGSubLink); n->subselect = (yyvsp[(1) - (1)].node); @@ -28874,18 +29248,18 @@ YYLTYPE yylloc; ;} break; - case 1206: -#line 3703 "third_party/libpg_query/grammar/statements/select.y" + case 1212: +#line 3738 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *)(yyvsp[(2) - (3)].list); ;} break; - case 1208: -#line 3705 "third_party/libpg_query/grammar/statements/select.y" + case 1214: +#line 3740 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (PGNode *)(yyvsp[(1) - (1)].node); ;} break; - case 1209: -#line 3716 "third_party/libpg_query/grammar/statements/select.y" + case 1215: +#line 3751 "third_party/libpg_query/grammar/statements/select.y" { PGCaseExpr *c = makeNode(PGCaseExpr); c->casetype = InvalidOid; /* not analyzed yet */ @@ -28897,18 +29271,18 @@ YYLTYPE yylloc; ;} break; - case 1210: -#line 3729 "third_party/libpg_query/grammar/statements/select.y" + case 1216: +#line 3764 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 1211: -#line 3730 "third_party/libpg_query/grammar/statements/select.y" + case 1217: +#line 3765 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; - case 1212: -#line 3735 "third_party/libpg_query/grammar/statements/select.y" + case 1218: +#line 3770 "third_party/libpg_query/grammar/statements/select.y" { PGCaseWhen *w = makeNode(PGCaseWhen); w->expr = (PGExpr *) (yyvsp[(2) - (4)].node); @@ -28918,59 +29292,59 @@ YYLTYPE yylloc; ;} break; - case 1213: -#line 3745 "third_party/libpg_query/grammar/statements/select.y" + case 1219: +#line 3780 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 1214: -#line 3746 "third_party/libpg_query/grammar/statements/select.y" + case 1220: +#line 3781 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 1215: -#line 3749 "third_party/libpg_query/grammar/statements/select.y" + case 1221: +#line 3784 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1216: -#line 3750 "third_party/libpg_query/grammar/statements/select.y" + case 1222: +#line 3785 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 1217: -#line 3754 "third_party/libpg_query/grammar/statements/select.y" + case 1223: +#line 3789 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 1218: -#line 3755 "third_party/libpg_query/grammar/statements/select.y" + case 1224: +#line 3790 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 1219: -#line 3759 "third_party/libpg_query/grammar/statements/select.y" + case 1225: +#line 3794 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); ;} break; - case 1220: -#line 3765 "third_party/libpg_query/grammar/statements/select.y" + case 1226: +#line 3800 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (1)].str), NIL, (yylsp[(1) - (1)]), yyscanner); ;} break; - case 1221: -#line 3769 "third_party/libpg_query/grammar/statements/select.y" + case 1227: +#line 3804 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeColumnRef((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].list), (yylsp[(1) - (2)]), yyscanner); ;} break; - case 1222: -#line 3776 "third_party/libpg_query/grammar/statements/select.y" + case 1228: +#line 3811 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = false; @@ -28980,8 +29354,8 @@ YYLTYPE yylloc; ;} break; - case 1223: -#line 3784 "third_party/libpg_query/grammar/statements/select.y" + case 1229: +#line 3819 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = true; @@ -28991,8 +29365,8 @@ YYLTYPE yylloc; ;} break; - case 1224: -#line 3791 "third_party/libpg_query/grammar/statements/select.y" + case 1230: +#line 3826 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = true; @@ -29003,8 +29377,8 @@ YYLTYPE yylloc; ;} break; - case 1225: -#line 3799 "third_party/libpg_query/grammar/statements/select.y" + case 1231: +#line 3834 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = true; @@ -29014,43 +29388,43 @@ YYLTYPE yylloc; ;} break; - case 1226: -#line 3809 "third_party/libpg_query/grammar/statements/select.y" + case 1232: +#line 3844 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1227: -#line 3810 "third_party/libpg_query/grammar/statements/select.y" + case 1233: +#line 3845 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = NULL; ;} break; - case 1228: -#line 3815 "third_party/libpg_query/grammar/statements/select.y" + case 1234: +#line 3850 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1229: -#line 3816 "third_party/libpg_query/grammar/statements/select.y" + case 1235: +#line 3851 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; - case 1230: -#line 3820 "third_party/libpg_query/grammar/statements/select.y" + case 1236: +#line 3855 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; ;} break; - case 1231: -#line 3821 "third_party/libpg_query/grammar/statements/select.y" + case 1237: +#line 3856 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(NULL); ;} break; - case 1232: -#line 3822 "third_party/libpg_query/grammar/statements/select.y" + case 1238: +#line 3857 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; - case 1233: -#line 3827 "third_party/libpg_query/grammar/statements/select.y" + case 1239: +#line 3862 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(3) - (3)].list)) { PGFuncCall *n = makeFuncCall(list_make1(makeString((yyvsp[(2) - (3)].str))), (yyvsp[(3) - (3)].list)->head->data.ptr_value ? (yyvsp[(3) - (3)].list) : NULL, (yylsp[(2) - (3)])); @@ -29061,8 +29435,8 @@ YYLTYPE yylloc; ;} break; - case 1234: -#line 3836 "third_party/libpg_query/grammar/statements/select.y" + case 1240: +#line 3871 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = false; @@ -29072,8 +29446,8 @@ YYLTYPE yylloc; ;} break; - case 1235: -#line 3844 "third_party/libpg_query/grammar/statements/select.y" + case 1241: +#line 3879 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = true; @@ -29083,8 +29457,8 @@ YYLTYPE yylloc; ;} break; - case 1236: -#line 3851 "third_party/libpg_query/grammar/statements/select.y" + case 1242: +#line 3886 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = true; @@ -29095,8 +29469,8 @@ YYLTYPE yylloc; ;} break; - case 1237: -#line 3860 "third_party/libpg_query/grammar/statements/select.y" + case 1243: +#line 3895 "third_party/libpg_query/grammar/statements/select.y" { PGAIndices *ai = makeNode(PGAIndices); ai->is_slice = true; @@ -29106,48 +29480,48 @@ YYLTYPE yylloc; ;} break; - case 1238: -#line 3875 "third_party/libpg_query/grammar/statements/select.y" + case 1244: +#line 3910 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1239: -#line 3876 "third_party/libpg_query/grammar/statements/select.y" + case 1245: +#line 3911 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (2)].list), (yyvsp[(2) - (2)].node)); ;} break; - case 1242: -#line 3892 "third_party/libpg_query/grammar/statements/select.y" + case 1248: +#line 3927 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1243: -#line 3893 "third_party/libpg_query/grammar/statements/select.y" + case 1249: +#line 3928 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1244: -#line 3897 "third_party/libpg_query/grammar/statements/select.y" + case 1250: +#line 3932 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].target)); ;} break; - case 1245: -#line 3898 "third_party/libpg_query/grammar/statements/select.y" + case 1251: +#line 3933 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].target)); ;} break; - case 1246: -#line 3902 "third_party/libpg_query/grammar/statements/select.y" + case 1252: +#line 3937 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1247: -#line 3903 "third_party/libpg_query/grammar/statements/select.y" + case 1253: +#line 3938 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; - case 1248: -#line 3907 "third_party/libpg_query/grammar/statements/select.y" + case 1254: +#line 3942 "third_party/libpg_query/grammar/statements/select.y" { (yyval.target) = makeNode(PGResTarget); (yyval.target)->name = (yyvsp[(3) - (3)].str); @@ -29157,8 +29531,8 @@ YYLTYPE yylloc; ;} break; - case 1249: -#line 3923 "third_party/libpg_query/grammar/statements/select.y" + case 1255: +#line 3958 "third_party/libpg_query/grammar/statements/select.y" { (yyval.target) = makeNode(PGResTarget); (yyval.target)->name = (yyvsp[(2) - (2)].str); @@ -29168,8 +29542,8 @@ YYLTYPE yylloc; ;} break; - case 1250: -#line 3931 "third_party/libpg_query/grammar/statements/select.y" + case 1256: +#line 3966 "third_party/libpg_query/grammar/statements/select.y" { (yyval.target) = makeNode(PGResTarget); (yyval.target)->name = NULL; @@ -29179,140 +29553,225 @@ YYLTYPE yylloc; ;} break; - case 1251: -#line 3940 "third_party/libpg_query/grammar/statements/select.y" + case 1257: +#line 3974 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.target) = makeNode(PGResTarget); + (yyval.target)->name = (yyvsp[(1) - (3)].str); + (yyval.target)->indirection = NIL; + (yyval.target)->val = (PGNode *)(yyvsp[(3) - (3)].node); + (yyval.target)->location = (yylsp[(1) - (3)]); + ;} + break; + + case 1258: +#line 3983 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 1252: -#line 3941 "third_party/libpg_query/grammar/statements/select.y" - { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} + case 1259: +#line 3984 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;} break; - case 1253: -#line 3944 "third_party/libpg_query/grammar/statements/select.y" + case 1260: +#line 3989 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = list_make1((yyvsp[(1) - (1)].str)); + ;} + break; + + case 1261: +#line 3993 "third_party/libpg_query/grammar/statements/select.y" + { + (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].str)); + ;} + break; + + case 1262: +#line 3999 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} + break; + + case 1263: +#line 4001 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} + break; + + case 1264: +#line 4005 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1254: -#line 3945 "third_party/libpg_query/grammar/statements/select.y" + case 1265: +#line 4006 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (2)].list); ;} + break; + + case 1266: +#line 4010 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + break; + + case 1267: +#line 4011 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; ;} break; - case 1255: -#line 3948 "third_party/libpg_query/grammar/statements/select.y" + case 1268: +#line 4014 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make2((yyvsp[(1) - (3)].node), makeString((yyvsp[(3) - (3)].str))); ;} break; - case 1256: -#line 3952 "third_party/libpg_query/grammar/statements/select.y" + case 1269: +#line 4018 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} break; - case 1257: -#line 3953 "third_party/libpg_query/grammar/statements/select.y" + case 1270: +#line 4019 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} break; - case 1258: -#line 3957 "third_party/libpg_query/grammar/statements/select.y" + case 1271: +#line 4023 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1259: -#line 3958 "third_party/libpg_query/grammar/statements/select.y" + case 1272: +#line 4024 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; - case 1260: -#line 3961 "third_party/libpg_query/grammar/statements/select.y" + case 1273: +#line 4027 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(3) - (4)].list); ;} break; - case 1261: -#line 3962 "third_party/libpg_query/grammar/statements/select.y" + case 1274: +#line 4028 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;} break; - case 1262: -#line 3963 "third_party/libpg_query/grammar/statements/select.y" + case 1275: +#line 4029 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NULL; ;} break; - case 1263: -#line 3973 "third_party/libpg_query/grammar/statements/select.y" + case 1276: +#line 4032 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make2((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].str)); ;} + break; + + case 1277: +#line 4036 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(1) - (1)].list)); ;} + break; + + case 1278: +#line 4037 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].list)); ;} + break; + + case 1279: +#line 4041 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (1)].list); ;} + break; + + case 1280: +#line 4042 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(1) - (2)].list); ;} + break; + + case 1281: +#line 4044 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = (yyvsp[(3) - (4)].list); ;} + break; + + case 1282: +#line 4045 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = list_make1((yyvsp[(2) - (2)].list)); ;} + break; + + case 1283: +#line 4046 "third_party/libpg_query/grammar/statements/select.y" + { (yyval.list) = NULL; ;} + break; + + case 1284: +#line 4056 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].range)); ;} break; - case 1264: -#line 3974 "third_party/libpg_query/grammar/statements/select.y" + case 1285: +#line 4057 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].range)); ;} break; - case 1265: -#line 3979 "third_party/libpg_query/grammar/statements/select.y" + case 1286: +#line 4062 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 1266: -#line 3981 "third_party/libpg_query/grammar/statements/select.y" + case 1287: +#line 4064 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; - case 1267: -#line 3986 "third_party/libpg_query/grammar/statements/select.y" + case 1288: +#line 4069 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1268: -#line 3987 "third_party/libpg_query/grammar/statements/select.y" + case 1289: +#line 4070 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (2)].list); ;} break; - case 1269: -#line 3991 "third_party/libpg_query/grammar/statements/select.y" + case 1290: +#line 4074 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(1) - (1)].list); ;} break; - case 1270: -#line 3992 "third_party/libpg_query/grammar/statements/select.y" + case 1291: +#line 4075 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; - case 1271: -#line 3995 "third_party/libpg_query/grammar/statements/select.y" + case 1292: +#line 4078 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1272: -#line 4007 "third_party/libpg_query/grammar/statements/select.y" + case 1293: +#line 4090 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 1273: -#line 4010 "third_party/libpg_query/grammar/statements/select.y" + case 1294: +#line 4093 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = check_func_name(lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)), yyscanner); ;} break; - case 1274: -#line 4021 "third_party/libpg_query/grammar/statements/select.y" + case 1295: +#line 4104 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntConst((yyvsp[(1) - (1)].ival), (yylsp[(1) - (1)])); ;} break; - case 1275: -#line 4025 "third_party/libpg_query/grammar/statements/select.y" + case 1296: +#line 4108 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeFloatConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; - case 1276: -#line 4029 "third_party/libpg_query/grammar/statements/select.y" + case 1297: +#line 4112 "third_party/libpg_query/grammar/statements/select.y" { if ((yyvsp[(2) - (2)].list)) { @@ -29326,15 +29785,15 @@ YYLTYPE yylloc; ;} break; - case 1277: -#line 4041 "third_party/libpg_query/grammar/statements/select.y" + case 1298: +#line 4124 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeBitStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; - case 1278: -#line 4045 "third_party/libpg_query/grammar/statements/select.y" + case 1299: +#line 4128 "third_party/libpg_query/grammar/statements/select.y" { /* This is a bit constant per SQL99: * Without Feature F511, "BIT data type", @@ -29345,8 +29804,8 @@ YYLTYPE yylloc; ;} break; - case 1279: -#line 4054 "third_party/libpg_query/grammar/statements/select.y" + case 1300: +#line 4137 "third_party/libpg_query/grammar/statements/select.y" { /* generic type 'literal' syntax */ PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (2)].list)); @@ -29355,8 +29814,8 @@ YYLTYPE yylloc; ;} break; - case 1280: -#line 4061 "third_party/libpg_query/grammar/statements/select.y" + case 1301: +#line 4144 "third_party/libpg_query/grammar/statements/select.y" { /* generic syntax with a type modifier */ PGTypeName *t = makeTypeNameFromNameList((yyvsp[(1) - (7)].list)); @@ -29396,146 +29855,146 @@ YYLTYPE yylloc; ;} break; - case 1281: -#line 4099 "third_party/libpg_query/grammar/statements/select.y" + case 1302: +#line 4182 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeStringConstCast((yyvsp[(2) - (2)].str), (yylsp[(2) - (2)]), (yyvsp[(1) - (2)].typnam)); ;} break; - case 1282: -#line 4103 "third_party/libpg_query/grammar/statements/select.y" + case 1303: +#line 4186 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntervalNode((yyvsp[(3) - (5)].node), (yylsp[(3) - (5)]), (yyvsp[(5) - (5)].list)); ;} break; - case 1283: -#line 4107 "third_party/libpg_query/grammar/statements/select.y" + case 1304: +#line 4190 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].ival), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); ;} break; - case 1284: -#line 4111 "third_party/libpg_query/grammar/statements/select.y" + case 1305: +#line 4194 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeIntervalNode((yyvsp[(2) - (3)].str), (yylsp[(2) - (3)]), (yyvsp[(3) - (3)].list)); ;} break; - case 1285: -#line 4115 "third_party/libpg_query/grammar/statements/select.y" + case 1306: +#line 4198 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeBoolAConst(true, (yylsp[(1) - (1)])); ;} break; - case 1286: -#line 4119 "third_party/libpg_query/grammar/statements/select.y" + case 1307: +#line 4202 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeBoolAConst(false, (yylsp[(1) - (1)])); ;} break; - case 1287: -#line 4123 "third_party/libpg_query/grammar/statements/select.y" + case 1308: +#line 4206 "third_party/libpg_query/grammar/statements/select.y" { (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; - case 1288: -#line 4128 "third_party/libpg_query/grammar/statements/select.y" + case 1309: +#line 4211 "third_party/libpg_query/grammar/statements/select.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; - case 1289: -#line 4145 "third_party/libpg_query/grammar/statements/select.y" + case 1310: +#line 4228 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1290: -#line 4146 "third_party/libpg_query/grammar/statements/select.y" + case 1311: +#line 4229 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1291: -#line 4147 "third_party/libpg_query/grammar/statements/select.y" + case 1312: +#line 4230 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1292: -#line 4150 "third_party/libpg_query/grammar/statements/select.y" + case 1313: +#line 4233 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1293: -#line 4151 "third_party/libpg_query/grammar/statements/select.y" + case 1314: +#line 4234 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1294: -#line 4152 "third_party/libpg_query/grammar/statements/select.y" + case 1315: +#line 4235 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1295: -#line 4155 "third_party/libpg_query/grammar/statements/select.y" + case 1316: +#line 4238 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1296: -#line 4156 "third_party/libpg_query/grammar/statements/select.y" + case 1317: +#line 4239 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1297: -#line 4157 "third_party/libpg_query/grammar/statements/select.y" + case 1318: +#line 4240 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1298: -#line 4160 "third_party/libpg_query/grammar/statements/select.y" + case 1319: +#line 4243 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(1) - (1)].str))); ;} break; - case 1299: -#line 4161 "third_party/libpg_query/grammar/statements/select.y" + case 1320: +#line 4244 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lcons(makeString((yyvsp[(1) - (2)].str)), (yyvsp[(2) - (2)].list)); ;} break; - case 1300: -#line 4165 "third_party/libpg_query/grammar/statements/select.y" + case 1321: +#line 4248 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = list_make1(makeString((yyvsp[(2) - (2)].str))); ;} break; - case 1301: -#line 4167 "third_party/libpg_query/grammar/statements/select.y" + case 1322: +#line 4250 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), makeString((yyvsp[(3) - (3)].str))); ;} break; - case 1302: -#line 4171 "third_party/libpg_query/grammar/statements/select.y" + case 1323: +#line 4254 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; - case 1303: -#line 4172 "third_party/libpg_query/grammar/statements/select.y" + case 1324: +#line 4255 "third_party/libpg_query/grammar/statements/select.y" { (yyval.list) = NIL; ;} break; - case 1305: -#line 4179 "third_party/libpg_query/grammar/statements/select.y" + case 1326: +#line 4262 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1306: -#line 4180 "third_party/libpg_query/grammar/statements/select.y" + case 1327: +#line 4263 "third_party/libpg_query/grammar/statements/select.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1307: + case 1328: #line 8 "third_party/libpg_query/grammar/statements/prepare.y" { PGPrepareStmt *n = makeNode(PGPrepareStmt); @@ -29546,17 +30005,17 @@ YYLTYPE yylloc; ;} break; - case 1308: + case 1329: #line 18 "third_party/libpg_query/grammar/statements/prepare.y" { (yyval.list) = (yyvsp[(2) - (3)].list); ;} break; - case 1309: + case 1330: #line 19 "third_party/libpg_query/grammar/statements/prepare.y" { (yyval.list) = NIL; ;} break; - case 1316: + case 1337: #line 8 "third_party/libpg_query/grammar/statements/create_schema.y" { PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); @@ -29578,7 +30037,7 @@ YYLTYPE yylloc; ;} break; - case 1317: + case 1338: #line 27 "third_party/libpg_query/grammar/statements/create_schema.y" { PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); @@ -29605,7 +30064,7 @@ YYLTYPE yylloc; ;} break; - case 1318: + case 1339: #line 51 "third_party/libpg_query/grammar/statements/create_schema.y" { PGCreateSchemaStmt *n = makeNode(PGCreateSchemaStmt); @@ -29627,7 +30086,7 @@ YYLTYPE yylloc; ;} break; - case 1319: + case 1340: #line 74 "third_party/libpg_query/grammar/statements/create_schema.y" { if ((yyloc) < 0) /* see comments for YYLLOC_DEFAULT */ @@ -29636,12 +30095,12 @@ YYLTYPE yylloc; ;} break; - case 1320: + case 1341: #line 80 "third_party/libpg_query/grammar/statements/create_schema.y" { (yyval.list) = NIL; ;} break; - case 1325: + case 1346: #line 11 "third_party/libpg_query/grammar/statements/index.y" { PGIndexStmt *n = makeNode(PGIndexStmt); @@ -29667,7 +30126,7 @@ YYLTYPE yylloc; ;} break; - case 1326: + case 1347: #line 36 "third_party/libpg_query/grammar/statements/index.y" { PGIndexStmt *n = makeNode(PGIndexStmt); @@ -29693,62 +30152,62 @@ YYLTYPE yylloc; ;} break; - case 1327: + case 1348: #line 62 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1328: + case 1349: #line 66 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; - case 1329: + case 1350: #line 67 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (char*) DEFAULT_INDEX_TYPE; ;} break; - case 1330: + case 1351: #line 72 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = true; ;} break; - case 1331: + case 1352: #line 73 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = false; ;} break; - case 1332: + case 1353: #line 78 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1333: + case 1354: #line 79 "third_party/libpg_query/grammar/statements/index.y" { (yyval.str) = NULL; ;} break; - case 1334: + case 1355: #line 83 "third_party/libpg_query/grammar/statements/index.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 1335: + case 1356: #line 84 "third_party/libpg_query/grammar/statements/index.y" { (yyval.list) = NIL; ;} break; - case 1336: + case 1357: #line 89 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = true; ;} break; - case 1337: + case 1358: #line 90 "third_party/libpg_query/grammar/statements/index.y" { (yyval.boolean) = false; ;} break; - case 1338: + case 1359: #line 8 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -29760,7 +30219,7 @@ YYLTYPE yylloc; ;} break; - case 1339: + case 1360: #line 17 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -29772,7 +30231,7 @@ YYLTYPE yylloc; ;} break; - case 1340: + case 1361: #line 26 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -29784,7 +30243,7 @@ YYLTYPE yylloc; ;} break; - case 1341: + case 1362: #line 35 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -29796,7 +30255,7 @@ YYLTYPE yylloc; ;} break; - case 1342: + case 1363: #line 44 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -29808,7 +30267,7 @@ YYLTYPE yylloc; ;} break; - case 1343: + case 1364: #line 53 "third_party/libpg_query/grammar/statements/alter_schema.y" { PGAlterObjectSchemaStmt *n = makeNode(PGAlterObjectSchemaStmt); @@ -29820,7 +30279,7 @@ YYLTYPE yylloc; ;} break; - case 1344: + case 1365: #line 6 "third_party/libpg_query/grammar/statements/checkpoint.y" { PGCheckPointStmt *n = makeNode(PGCheckPointStmt); @@ -29830,7 +30289,7 @@ YYLTYPE yylloc; ;} break; - case 1345: + case 1366: #line 13 "third_party/libpg_query/grammar/statements/checkpoint.y" { PGCheckPointStmt *n = makeNode(PGCheckPointStmt); @@ -29840,17 +30299,17 @@ YYLTYPE yylloc; ;} break; - case 1346: + case 1367: #line 22 "third_party/libpg_query/grammar/statements/checkpoint.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1347: + case 1368: #line 23 "third_party/libpg_query/grammar/statements/checkpoint.y" { (yyval.str) = NULL; ;} break; - case 1348: + case 1369: #line 8 "third_party/libpg_query/grammar/statements/comment_on.y" { PGCommentOnStmt *n = makeNode(PGCommentOnStmt); @@ -29861,7 +30320,7 @@ YYLTYPE yylloc; ;} break; - case 1349: + case 1370: #line 16 "third_party/libpg_query/grammar/statements/comment_on.y" { PGCommentOnStmt *n = makeNode(PGCommentOnStmt); @@ -29872,67 +30331,67 @@ YYLTYPE yylloc; ;} break; - case 1350: + case 1371: #line 26 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; - case 1351: + case 1372: #line 27 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.node) = makeNullAConst((yylsp[(1) - (1)])); ;} break; - case 1352: + case 1373: #line 30 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_TABLE; ;} break; - case 1353: + case 1374: #line 31 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_SEQUENCE; ;} break; - case 1354: + case 1375: #line 32 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} break; - case 1355: + case 1376: #line 33 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_FUNCTION; ;} break; - case 1356: + case 1377: #line 34 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_TABLE_MACRO; ;} break; - case 1357: + case 1378: #line 35 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_VIEW; ;} break; - case 1358: + case 1379: #line 36 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_DATABASE; ;} break; - case 1359: + case 1380: #line 37 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_INDEX; ;} break; - case 1360: + case 1381: #line 38 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_SCHEMA; ;} break; - case 1361: + case 1382: #line 39 "third_party/libpg_query/grammar/statements/comment_on.y" { (yyval.objtype) = PG_OBJECT_TYPE; ;} break; - case 1362: + case 1383: #line 8 "third_party/libpg_query/grammar/statements/export.y" { PGExportStmt *n = makeNode(PGExportStmt); @@ -29946,7 +30405,7 @@ YYLTYPE yylloc; ;} break; - case 1363: + case 1384: #line 20 "third_party/libpg_query/grammar/statements/export.y" { PGExportStmt *n = makeNode(PGExportStmt); @@ -29960,7 +30419,7 @@ YYLTYPE yylloc; ;} break; - case 1364: + case 1385: #line 34 "third_party/libpg_query/grammar/statements/export.y" { PGImportStmt *n = makeNode(PGImportStmt); @@ -29969,7 +30428,7 @@ YYLTYPE yylloc; ;} break; - case 1365: + case 1386: #line 10 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -29979,7 +30438,7 @@ YYLTYPE yylloc; ;} break; - case 1366: + case 1387: #line 17 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -29992,7 +30451,7 @@ YYLTYPE yylloc; ;} break; - case 1367: + case 1388: #line 27 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -30002,7 +30461,7 @@ YYLTYPE yylloc; ;} break; - case 1368: + case 1389: #line 34 "third_party/libpg_query/grammar/statements/explain.y" { PGExplainStmt *n = makeNode(PGExplainStmt); @@ -30012,118 +30471,118 @@ YYLTYPE yylloc; ;} break; - case 1369: + case 1390: #line 44 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.boolean) = true; ;} break; - case 1370: + case 1391: #line 45 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.boolean) = false; ;} break; - case 1371: + case 1392: #line 50 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = (PGNode *) makeString((yyvsp[(1) - (1)].str)); ;} break; - case 1372: + case 1393: #line 51 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = (PGNode *) (yyvsp[(1) - (1)].value); ;} break; - case 1373: + case 1394: #line 52 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.node) = NULL; ;} break; - case 1405: + case 1426: #line 91 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1406: + case 1427: #line 92 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1407: + case 1428: #line 93 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = pstrdup((yyvsp[(1) - (1)].keyword)); ;} break; - case 1408: + case 1429: #line 98 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1409: + case 1430: #line 99 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1410: + case 1431: #line 105 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].defelt)); ;} break; - case 1411: + case 1432: #line 109 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].defelt)); ;} break; - case 1412: + case 1433: #line 116 "third_party/libpg_query/grammar/statements/explain.y" {;} break; - case 1413: + case 1434: #line 117 "third_party/libpg_query/grammar/statements/explain.y" {;} break; - case 1414: + case 1435: #line 122 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "true"; ;} break; - case 1415: + case 1436: #line 123 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "false"; ;} break; - case 1416: + case 1437: #line 124 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "on"; ;} break; - case 1417: + case 1438: #line 130 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1418: + case 1439: #line 136 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.defelt) = makeDefElem((yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].node), (yylsp[(1) - (2)])); ;} break; - case 1419: + case 1440: #line 143 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1420: + case 1441: #line 144 "third_party/libpg_query/grammar/statements/explain.y" { (yyval.str) = (char*) "analyze"; ;} break; - case 1421: + case 1442: #line 11 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[(2) - (2)].vsetstmt); @@ -30132,7 +30591,7 @@ YYLTYPE yylloc; ;} break; - case 1422: + case 1443: #line 17 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); @@ -30141,7 +30600,7 @@ YYLTYPE yylloc; ;} break; - case 1423: + case 1444: #line 23 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); @@ -30150,7 +30609,7 @@ YYLTYPE yylloc; ;} break; - case 1424: + case 1445: #line 29 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); @@ -30159,7 +30618,7 @@ YYLTYPE yylloc; ;} break; - case 1425: + case 1446: #line 35 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = (yyvsp[(3) - (3)].vsetstmt); @@ -30168,12 +30627,12 @@ YYLTYPE yylloc; ;} break; - case 1426: + case 1447: #line 44 "third_party/libpg_query/grammar/statements/variable_set.y" {(yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt);;} break; - case 1427: + case 1448: #line 46 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30183,7 +30642,7 @@ YYLTYPE yylloc; ;} break; - case 1428: + case 1449: #line 54 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30197,7 +30656,7 @@ YYLTYPE yylloc; ;} break; - case 1429: + case 1450: #line 65 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30208,7 +30667,7 @@ YYLTYPE yylloc; ;} break; - case 1430: + case 1451: #line 77 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30219,7 +30678,7 @@ YYLTYPE yylloc; ;} break; - case 1431: + case 1452: #line 85 "third_party/libpg_query/grammar/statements/variable_set.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30230,26 +30689,26 @@ YYLTYPE yylloc; ;} break; - case 1432: + case 1453: #line 96 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = (yyvsp[(1) - (1)].node); ;} break; - case 1433: + case 1454: #line 102 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; - case 1434: + case 1455: #line 106 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeStringConst((yyvsp[(1) - (1)].str), (yylsp[(1) - (1)])); ;} break; - case 1435: + case 1456: #line 110 "third_party/libpg_query/grammar/statements/variable_set.y" { PGTypeName *t = (yyvsp[(1) - (3)].typnam); @@ -30267,7 +30726,7 @@ YYLTYPE yylloc; ;} break; - case 1436: + case 1457: #line 125 "third_party/libpg_query/grammar/statements/variable_set.y" { PGTypeName *t = (yyvsp[(1) - (5)].typnam); @@ -30277,32 +30736,32 @@ YYLTYPE yylloc; ;} break; - case 1437: + case 1458: #line 131 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = makeAConst((yyvsp[(1) - (1)].value), (yylsp[(1) - (1)])); ;} break; - case 1438: + case 1459: #line 132 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = NULL; ;} break; - case 1439: + case 1460: #line 133 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.node) = NULL; ;} break; - case 1440: + case 1461: #line 137 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.list) = list_make1((yyvsp[(1) - (1)].node)); ;} break; - case 1441: + case 1462: #line 138 "third_party/libpg_query/grammar/statements/variable_set.y" { (yyval.list) = lappend((yyvsp[(1) - (3)].list), (yyvsp[(3) - (3)].node)); ;} break; - case 1442: + case 1463: #line 8 "third_party/libpg_query/grammar/statements/load.y" { PGLoadStmt *n = makeNode(PGLoadStmt); @@ -30315,7 +30774,7 @@ YYLTYPE yylloc; ;} break; - case 1443: + case 1464: #line 17 "third_party/libpg_query/grammar/statements/load.y" { PGLoadStmt *n = makeNode(PGLoadStmt); @@ -30328,7 +30787,7 @@ YYLTYPE yylloc; ;} break; - case 1444: + case 1465: #line 26 "third_party/libpg_query/grammar/statements/load.y" { PGLoadStmt *n = makeNode(PGLoadStmt); @@ -30341,7 +30800,7 @@ YYLTYPE yylloc; ;} break; - case 1445: + case 1466: #line 35 "third_party/libpg_query/grammar/statements/load.y" { PGLoadStmt *n = makeNode(PGLoadStmt); @@ -30354,42 +30813,42 @@ YYLTYPE yylloc; ;} break; - case 1446: + case 1467: #line 46 "third_party/libpg_query/grammar/statements/load.y" { (yyval.loadinstalltype) = PG_LOAD_TYPE_INSTALL; ;} break; - case 1447: + case 1468: #line 47 "third_party/libpg_query/grammar/statements/load.y" { (yyval.loadinstalltype) = PG_LOAD_TYPE_FORCE_INSTALL; ;} break; - case 1448: + case 1469: #line 49 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1449: + case 1470: #line 50 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1450: + case 1471: #line 53 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = NULL; ;} break; - case 1451: + case 1472: #line 54 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; - case 1452: + case 1473: #line 55 "third_party/libpg_query/grammar/statements/load.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; - case 1453: + case 1474: #line 9 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -30406,7 +30865,7 @@ YYLTYPE yylloc; ;} break; - case 1454: + case 1475: #line 23 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -30423,7 +30882,7 @@ YYLTYPE yylloc; ;} break; - case 1455: + case 1476: #line 37 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = (PGVacuumStmt *) (yyvsp[(5) - (5)].node); @@ -30438,7 +30897,7 @@ YYLTYPE yylloc; ;} break; - case 1456: + case 1477: #line 49 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -30449,7 +30908,7 @@ YYLTYPE yylloc; ;} break; - case 1457: + case 1478: #line 57 "third_party/libpg_query/grammar/statements/vacuum.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -30462,27 +30921,27 @@ YYLTYPE yylloc; ;} break; - case 1458: + case 1479: #line 70 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_ANALYZE; ;} break; - case 1459: + case 1480: #line 71 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_VERBOSE; ;} break; - case 1460: + case 1481: #line 72 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_FREEZE; ;} break; - case 1461: + case 1482: #line 73 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = PG_VACOPT_FULL; ;} break; - case 1462: + case 1483: #line 75 "third_party/libpg_query/grammar/statements/vacuum.y" { if (strcmp((yyvsp[(1) - (1)].str), "disable_page_skipping") == 0) @@ -30495,37 +30954,37 @@ YYLTYPE yylloc; ;} break; - case 1463: + case 1484: #line 87 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = true; ;} break; - case 1464: + case 1485: #line 88 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = false; ;} break; - case 1465: + case 1486: #line 93 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = (yyvsp[(1) - (1)].ival); ;} break; - case 1466: + case 1487: #line 94 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.ival) = (yyvsp[(1) - (3)].ival) | (yyvsp[(3) - (3)].ival); ;} break; - case 1467: + case 1488: #line 98 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = true; ;} break; - case 1468: + case 1489: #line 99 "third_party/libpg_query/grammar/statements/vacuum.y" { (yyval.boolean) = false; ;} break; - case 1469: + case 1490: #line 9 "third_party/libpg_query/grammar/statements/delete.y" { PGDeleteStmt *n = makeNode(PGDeleteStmt); @@ -30538,7 +30997,7 @@ YYLTYPE yylloc; ;} break; - case 1470: + case 1491: #line 19 "third_party/libpg_query/grammar/statements/delete.y" { PGDeleteStmt *n = makeNode(PGDeleteStmt); @@ -30551,14 +31010,14 @@ YYLTYPE yylloc; ;} break; - case 1471: + case 1492: #line 32 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.range) = (yyvsp[(1) - (1)].range); ;} break; - case 1472: + case 1493: #line 36 "third_party/libpg_query/grammar/statements/delete.y" { PGAlias *alias = makeNode(PGAlias); @@ -30568,7 +31027,7 @@ YYLTYPE yylloc; ;} break; - case 1473: + case 1494: #line 43 "third_party/libpg_query/grammar/statements/delete.y" { PGAlias *alias = makeNode(PGAlias); @@ -30578,27 +31037,27 @@ YYLTYPE yylloc; ;} break; - case 1474: + case 1495: #line 53 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.node) = (yyvsp[(2) - (2)].node); ;} break; - case 1475: + case 1496: #line 54 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.node) = NULL; ;} break; - case 1476: + case 1497: #line 60 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.list) = (yyvsp[(2) - (2)].list); ;} break; - case 1477: + case 1498: #line 61 "third_party/libpg_query/grammar/statements/delete.y" { (yyval.list) = NIL; ;} break; - case 1478: + case 1499: #line 10 "third_party/libpg_query/grammar/statements/analyze.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -30611,7 +31070,7 @@ YYLTYPE yylloc; ;} break; - case 1479: + case 1500: #line 20 "third_party/libpg_query/grammar/statements/analyze.y" { PGVacuumStmt *n = makeNode(PGVacuumStmt); @@ -30624,7 +31083,7 @@ YYLTYPE yylloc; ;} break; - case 1480: + case 1501: #line 8 "third_party/libpg_query/grammar/statements/attach.y" { PGAttachStmt *n = makeNode(PGAttachStmt); @@ -30636,7 +31095,7 @@ YYLTYPE yylloc; ;} break; - case 1481: + case 1502: #line 17 "third_party/libpg_query/grammar/statements/attach.y" { PGAttachStmt *n = makeNode(PGAttachStmt); @@ -30648,7 +31107,7 @@ YYLTYPE yylloc; ;} break; - case 1482: + case 1503: #line 29 "third_party/libpg_query/grammar/statements/attach.y" { PGDetachStmt *n = makeNode(PGDetachStmt); @@ -30658,7 +31117,7 @@ YYLTYPE yylloc; ;} break; - case 1483: + case 1504: #line 36 "third_party/libpg_query/grammar/statements/attach.y" { PGDetachStmt *n = makeNode(PGDetachStmt); @@ -30668,7 +31127,7 @@ YYLTYPE yylloc; ;} break; - case 1484: + case 1505: #line 43 "third_party/libpg_query/grammar/statements/attach.y" { PGDetachStmt *n = makeNode(PGDetachStmt); @@ -30678,27 +31137,27 @@ YYLTYPE yylloc; ;} break; - case 1485: + case 1506: #line 51 "third_party/libpg_query/grammar/statements/attach.y" {;} break; - case 1486: + case 1507: #line 52 "third_party/libpg_query/grammar/statements/attach.y" {;} break; - case 1487: + case 1508: #line 56 "third_party/libpg_query/grammar/statements/attach.y" { (yyval.str) = (yyvsp[(2) - (2)].str); ;} break; - case 1488: + case 1509: #line 57 "third_party/libpg_query/grammar/statements/attach.y" { (yyval.str) = NULL; ;} break; - case 1489: + case 1510: #line 3 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyvsp[(2) - (2)].vsetstmt)->scope = VAR_SET_SCOPE_DEFAULT; @@ -30706,7 +31165,7 @@ YYLTYPE yylloc; ;} break; - case 1490: + case 1511: #line 8 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_LOCAL; @@ -30714,7 +31173,7 @@ YYLTYPE yylloc; ;} break; - case 1491: + case 1512: #line 13 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_SESSION; @@ -30722,7 +31181,7 @@ YYLTYPE yylloc; ;} break; - case 1492: + case 1513: #line 18 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_GLOBAL; @@ -30730,7 +31189,7 @@ YYLTYPE yylloc; ;} break; - case 1493: + case 1514: #line 23 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyvsp[(3) - (3)].vsetstmt)->scope = VAR_SET_SCOPE_VARIABLE; @@ -30738,7 +31197,7 @@ YYLTYPE yylloc; ;} break; - case 1494: + case 1515: #line 32 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30748,7 +31207,7 @@ YYLTYPE yylloc; ;} break; - case 1495: + case 1516: #line 39 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30757,12 +31216,12 @@ YYLTYPE yylloc; ;} break; - case 1496: + case 1517: #line 48 "third_party/libpg_query/grammar/statements/variable_reset.y" { (yyval.vsetstmt) = (yyvsp[(1) - (1)].vsetstmt); ;} break; - case 1497: + case 1518: #line 50 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30772,7 +31231,7 @@ YYLTYPE yylloc; ;} break; - case 1498: + case 1519: #line 57 "third_party/libpg_query/grammar/statements/variable_reset.y" { PGVariableSetStmt *n = makeNode(PGVariableSetStmt); @@ -30782,7 +31241,7 @@ YYLTYPE yylloc; ;} break; - case 1499: + case 1520: #line 3 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); @@ -30793,7 +31252,7 @@ YYLTYPE yylloc; ;} break; - case 1500: + case 1521: #line 10 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowSelectStmt *n = makeNode(PGVariableShowSelectStmt); @@ -30804,87 +31263,77 @@ YYLTYPE yylloc; ;} break; - case 1501: + case 1522: #line 18 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (yyvsp[(2) - (2)].str); + n->relation = (yyvsp[(2) - (2)].range); n->is_summary = 1; (yyval.node) = (PGNode *) n; ;} break; - case 1502: + case 1523: #line 25 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (yyvsp[(2) - (2)].str); + n->relation = (yyvsp[(2) - (2)].range); n->is_summary = 0; (yyval.node) = (PGNode *) n; ;} break; - case 1503: + case 1524: #line 32 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "timezone"; + n->set = (char*) "timezone"; n->is_summary = 0; (yyval.node) = (PGNode *) n; ;} break; - case 1504: + case 1525: #line 39 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "transaction_isolation"; + n->set = (char*) "transaction_isolation"; n->is_summary = 0; (yyval.node) = (PGNode *) n; ;} break; - case 1505: + case 1526: #line 46 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "__show_tables_expanded"; + n->set = (char*) "__show_tables_expanded"; n->is_summary = 0; (yyval.node) = (PGNode *) n; ;} break; - case 1506: + case 1527: #line 53 "third_party/libpg_query/grammar/statements/variable_show.y" { PGVariableShowStmt *n = makeNode(PGVariableShowStmt); - n->name = (char*) "__show_tables_expanded"; + n->set = (char*) "__show_tables_expanded"; n->is_summary = 0; (yyval.node) = (PGNode *) n; ;} break; - case 1513: + case 1534: #line 67 "third_party/libpg_query/grammar/statements/variable_show.y" { (yyval.str) = (yyvsp[(1) - (1)].str); ;} break; - case 1514: + case 1535: #line 69 "third_party/libpg_query/grammar/statements/variable_show.y" { (yyval.str) = psprintf("%s.%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} break; - case 1515: -#line 72 "third_party/libpg_query/grammar/statements/variable_show.y" - { (yyval.str) = psprintf("\"%s\"", (yyvsp[(1) - (1)].str)); ;} - break; - - case 1516: -#line 74 "third_party/libpg_query/grammar/statements/variable_show.y" - { (yyval.str) = psprintf("%s.\"%s\"", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str)); ;} - break; - - case 1517: + case 1536: #line 7 "third_party/libpg_query/grammar/statements/call.y" { PGCallStmt *n = makeNode(PGCallStmt); @@ -30893,7 +31342,7 @@ YYLTYPE yylloc; ;} break; - case 1518: + case 1537: #line 10 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -30908,7 +31357,7 @@ YYLTYPE yylloc; ;} break; - case 1519: + case 1538: #line 23 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -30923,7 +31372,7 @@ YYLTYPE yylloc; ;} break; - case 1520: + case 1539: #line 36 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -30938,7 +31387,7 @@ YYLTYPE yylloc; ;} break; - case 1521: + case 1540: #line 49 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -30958,7 +31407,7 @@ YYLTYPE yylloc; ;} break; - case 1522: + case 1541: #line 67 "third_party/libpg_query/grammar/statements/view.y" { PGViewStmt *n = makeNode(PGViewStmt); @@ -30978,27 +31427,27 @@ YYLTYPE yylloc; ;} break; - case 1523: + case 1542: #line 87 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} break; - case 1524: + case 1543: #line 88 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = CASCADED_CHECK_OPTION; ;} break; - case 1525: + case 1544: #line 89 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = PG_LOCAL_CHECK_OPTION; ;} break; - case 1526: + case 1545: #line 90 "third_party/libpg_query/grammar/statements/view.y" { (yyval.viewcheckoption) = PG_NO_CHECK_OPTION; ;} break; - case 1527: + case 1546: #line 12 "third_party/libpg_query/grammar/statements/create_as.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -31014,7 +31463,7 @@ YYLTYPE yylloc; ;} break; - case 1528: + case 1547: #line 25 "third_party/libpg_query/grammar/statements/create_as.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -31030,7 +31479,7 @@ YYLTYPE yylloc; ;} break; - case 1529: + case 1548: #line 38 "third_party/libpg_query/grammar/statements/create_as.y" { PGCreateTableAsStmt *ctas = makeNode(PGCreateTableAsStmt); @@ -31046,22 +31495,22 @@ YYLTYPE yylloc; ;} break; - case 1530: + case 1549: #line 54 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.boolean) = true; ;} break; - case 1531: + case 1550: #line 55 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.boolean) = false; ;} break; - case 1532: + case 1551: #line 56 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.boolean) = true; ;} break; - case 1533: + case 1552: #line 62 "third_party/libpg_query/grammar/statements/create_as.y" { (yyval.into) = makeNode(PGIntoClause); @@ -31076,7 +31525,7 @@ YYLTYPE yylloc; /* Line 1267 of yacc.c. */ -#line 31080 "third_party/libpg_query/grammar/grammar_out.cpp" +#line 31529 "third_party/libpg_query/grammar/grammar_out.cpp" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -31459,10 +31908,10 @@ makeIntervalNode(PGNode *arg, int location, PGList *typmods) { } static PGNode * -makeSampleSize(PGValue *sample_size, bool is_percentage) { +makeSampleSize(PGNode *sample_size, bool is_percentage) { PGSampleSize *n = makeNode(PGSampleSize); - n->sample_size = *sample_size; + n->sample_size = sample_size; n->is_percentage = is_percentage; return (PGNode *)n; diff --git a/src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp b/src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp index 072b86b7..d9f9139d 100644 --- a/src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp +++ b/src/duckdb/third_party/libpg_query/src_backend_parser_parser.cpp @@ -286,4 +286,4 @@ int base_yylex(YYSTYPE *lvalp, YYLTYPE *llocp, core_yyscan_t yyscanner) { return cur_token; } -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp b/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp index 0a33d6f9..0c5ed684 100644 --- a/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp +++ b/src/duckdb/third_party/libpg_query/src_backend_parser_scansup.cpp @@ -130,4 +130,4 @@ bool scanner_isspace(char ch) { return true; return false; } -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/libpg_query/src_common_keywords.cpp b/src/duckdb/third_party/libpg_query/src_common_keywords.cpp index 58378409..1549a5d1 100644 --- a/src/duckdb/third_party/libpg_query/src_common_keywords.cpp +++ b/src/duckdb/third_party/libpg_query/src_common_keywords.cpp @@ -90,4 +90,4 @@ const PGScanKeyword *ScanKeywordLookup(const char *text, const PGScanKeyword *ke return NULL; } -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/lz4/lz4.cpp b/src/duckdb/third_party/lz4/lz4.cpp index b6237ae9..3d11bfca 100644 --- a/src/duckdb/third_party/lz4/lz4.cpp +++ b/src/duckdb/third_party/lz4/lz4.cpp @@ -2602,4 +2602,4 @@ char* LZ4_slideInputBuffer (void* state) } #endif /* LZ4_COMMONDEFS_ONLY */ -} \ No newline at end of file +} diff --git a/src/duckdb/third_party/mbedtls/include/des_alt.h b/src/duckdb/third_party/mbedtls/include/des_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/des_alt.h +++ b/src/duckdb/third_party/mbedtls/include/des_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h b/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/aes_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h b/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/aria_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/asn1write.h b/src/duckdb/third_party/mbedtls/include/mbedtls/asn1write.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/asn1write.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/asn1write.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h b/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/camellia_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h b/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/ccm_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h b/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/chacha20.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h b/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/chachapoly.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h b/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/cmac.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h b/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/config_psa.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h b/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/ecdsa.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/ecp.h b/src/duckdb/third_party/mbedtls/include/mbedtls/ecp.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/ecp.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/ecp.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h b/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/gcm_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h b/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/md5.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h b/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/nist_kw.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h b/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs12.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h b/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/pkcs5.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h b/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/psa_util.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h b/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/ripemd160.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h b/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/threading.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h b/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h +++ b/src/duckdb/third_party/mbedtls/include/mbedtls/timing.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/platform_alt.h b/src/duckdb/third_party/mbedtls/include/platform_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/platform_alt.h +++ b/src/duckdb/third_party/mbedtls/include/platform_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/psa/crypto.h b/src/duckdb/third_party/mbedtls/include/psa/crypto.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/psa/crypto.h +++ b/src/duckdb/third_party/mbedtls/include/psa/crypto.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/rsa_alt.h b/src/duckdb/third_party/mbedtls/include/rsa_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/rsa_alt.h +++ b/src/duckdb/third_party/mbedtls/include/rsa_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/sha1_alt.h b/src/duckdb/third_party/mbedtls/include/sha1_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/sha1_alt.h +++ b/src/duckdb/third_party/mbedtls/include/sha1_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/sha256_alt.h b/src/duckdb/third_party/mbedtls/include/sha256_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/sha256_alt.h +++ b/src/duckdb/third_party/mbedtls/include/sha256_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/sha512_alt.h b/src/duckdb/third_party/mbedtls/include/sha512_alt.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/sha512_alt.h +++ b/src/duckdb/third_party/mbedtls/include/sha512_alt.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/include/ssl_misc.h b/src/duckdb/third_party/mbedtls/include/ssl_misc.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/include/ssl_misc.h +++ b/src/duckdb/third_party/mbedtls/include/ssl_misc.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/library/aesni.h b/src/duckdb/third_party/mbedtls/library/aesni.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/library/aesni.h +++ b/src/duckdb/third_party/mbedtls/library/aesni.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/mbedtls/library/padlock.h b/src/duckdb/third_party/mbedtls/library/padlock.h index bfed62c2..6b63dc03 100644 --- a/src/duckdb/third_party/mbedtls/library/padlock.h +++ b/src/duckdb/third_party/mbedtls/library/padlock.h @@ -1 +1 @@ -// dummy file to make amalgamantion happy \ No newline at end of file +// dummy file to make amalgamantion happy diff --git a/src/duckdb/third_party/miniz/miniz.cpp b/src/duckdb/third_party/miniz/miniz.cpp index ac28284c..387573c0 100644 --- a/src/duckdb/third_party/miniz/miniz.cpp +++ b/src/duckdb/third_party/miniz/miniz.cpp @@ -7541,4 +7541,4 @@ mz_bool mz_zip_end(mz_zip_archive *pZip) #endif /*#ifndef MINIZ_NO_ARCHIVE_APIS*/ -} // namespace duckdb_miniz \ No newline at end of file +} // namespace duckdb_miniz diff --git a/src/duckdb/third_party/parquet/parquet_constants.cpp b/src/duckdb/third_party/parquet/parquet_constants.cpp deleted file mode 100644 index de4420ba..00000000 --- a/src/duckdb/third_party/parquet/parquet_constants.cpp +++ /dev/null @@ -1,17 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.11.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -#include "parquet_constants.h" - -namespace duckdb_parquet { namespace format { - -const parquetConstants g_parquet_constants; - -parquetConstants::parquetConstants() { -} - -}} // namespace - diff --git a/src/duckdb/third_party/parquet/parquet_constants.h b/src/duckdb/third_party/parquet/parquet_constants.h deleted file mode 100644 index 468309ce..00000000 --- a/src/duckdb/third_party/parquet/parquet_constants.h +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Autogenerated by Thrift Compiler (0.11.0) - * - * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING - * @generated - */ -#ifndef parquet_CONSTANTS_H -#define parquet_CONSTANTS_H - -#include "parquet_types.h" - -namespace duckdb_parquet { namespace format { - -class parquetConstants { - public: - parquetConstants(); - -}; - -extern const parquetConstants g_parquet_constants; - -}} // namespace - -#endif diff --git a/src/duckdb/third_party/parquet/parquet_types.cpp b/src/duckdb/third_party/parquet/parquet_types.cpp index e6eeb774..cd989782 100644 --- a/src/duckdb/third_party/parquet/parquet_types.cpp +++ b/src/duckdb/third_party/parquet/parquet_types.cpp @@ -1,5 +1,5 @@ /** - * Autogenerated by Thrift Compiler (0.11.0) + * Autogenerated by Thrift Compiler (0.21.0) * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated @@ -9,244 +9,812 @@ #include #include -#include "thrift/TToString.h" - -namespace duckdb_parquet { namespace format { - -std::ostream &operator<<(std::ostream &out, const Type::type &val) { - switch (val) { - case Type::BOOLEAN: - out << "BOOLEAN"; - return out; - case Type::INT32: - out << "INT32"; - return out; - case Type::INT64: - out << "INT64"; - return out; - case Type::INT96: - out << "INT96"; - return out; - case Type::FLOAT: - out << "FLOAT"; - return out; - case Type::DOUBLE: - out << "DOUBLE"; - return out; - case Type::BYTE_ARRAY: - out << "BYTE_ARRAY"; - return out; - case Type::FIXED_LEN_BYTE_ARRAY: - out << "FIXED_LEN_BYTE_ARRAY"; - return out; - // no default for compiler error on missing enum - } - out << static_cast(val); - return out; -} - -std::ostream &operator<<(std::ostream &out, const ConvertedType::type &val) { - switch (val) { - case ConvertedType::UTF8: - out << "UTF8"; - return out; - case ConvertedType::MAP: - out << "MAP"; - return out; - case ConvertedType::MAP_KEY_VALUE: - out << "MAP_KEY_VALUE"; - return out; - case ConvertedType::LIST: - out << "LIST"; - return out; - case ConvertedType::ENUM: - out << "ENUM"; - return out; - case ConvertedType::DECIMAL: - out << "DECIMAL"; - return out; - case ConvertedType::DATE: - out << "DATE"; - return out; - case ConvertedType::TIME_MILLIS: - out << "TIME_MILLIS"; - return out; - case ConvertedType::TIME_MICROS: - out << "TIME_MICROS"; - return out; - case ConvertedType::TIMESTAMP_MILLIS: - out << "TIMESTAMP_MILLIS"; - return out; - case ConvertedType::TIMESTAMP_MICROS: - out << "TIMESTAMP_MICROS"; - return out; - case ConvertedType::UINT_8: - out << "UINT_8"; - return out; - case ConvertedType::UINT_16: - out << "UINT_16"; - return out; - case ConvertedType::UINT_32: - out << "UINT_32"; - return out; - case ConvertedType::UINT_64: - out << "UINT_64"; - return out; - case ConvertedType::INT_8: - out << "INT_8"; - return out; - case ConvertedType::INT_16: - out << "INT_16"; - return out; - case ConvertedType::INT_32: - out << "INT_32"; - return out; - case ConvertedType::INT_64: - out << "INT_64"; - return out; - case ConvertedType::JSON: - out << "JSON"; - return out; - case ConvertedType::BSON: - out << "BSON"; - return out; - case ConvertedType::INTERVAL: - out << "INTERVAL"; - return out; - case ConvertedType::NULL_TYPE: - out << "NULL"; - return out; - // no default for compiler error on missing enum - } - out << static_cast(val); - return out; -} - -std::ostream &operator<<(std::ostream &out, const FieldRepetitionType::type &val) { - switch (val) { - case FieldRepetitionType::REQUIRED: - out << "REQUIRED"; - return out; - case FieldRepetitionType::OPTIONAL: - out << "OPTIONAL"; - return out; - case FieldRepetitionType::REPEATED: - out << "REPEATED"; - return out; - // no default for compiler error on missing enum - } - out << static_cast(val); - return out; -} - -std::ostream &operator<<(std::ostream &out, const Encoding::type &val) { - switch (val) { - case Encoding::PLAIN: - out << "PLAIN"; - return out; - case Encoding::PLAIN_DICTIONARY: - out << "PLAIN_DICTIONARY"; - return out; - case Encoding::RLE: - out << "RLE"; - return out; - case Encoding::BIT_PACKED: - out << "BIT_PACKED"; - return out; - case Encoding::DELTA_BINARY_PACKED: - out << "DELTA_BINARY_PACKED"; - return out; - case Encoding::DELTA_LENGTH_BYTE_ARRAY: - out << "DELTA_LENGTH_BYTE_ARRAY"; - return out; - case Encoding::DELTA_BYTE_ARRAY: - out << "DELTA_BYTE_ARRAY"; - return out; - case Encoding::RLE_DICTIONARY: - out << "RLE_DICTIONARY"; - return out; - case Encoding::BYTE_STREAM_SPLIT: - out << "BYTE_STREAM_SPLIT"; - return out; - // no default for compiler error on missing enum - } - out << static_cast(val); - return out; -} - -std::ostream &operator<<(std::ostream &out, const CompressionCodec::type &val) { - switch (val) { - case CompressionCodec::UNCOMPRESSED: - out << "UNCOMPRESSED"; - return out; - case CompressionCodec::SNAPPY: - out << "SNAPPY"; - return out; - case CompressionCodec::GZIP: - out << "GZIP"; - return out; - case CompressionCodec::LZO: - out << "LZO"; - return out; - case CompressionCodec::BROTLI: - out << "BROTLI"; - return out; - case CompressionCodec::LZ4: - out << "LZ4"; - return out; - case CompressionCodec::ZSTD: - out << "ZSTD"; - return out; - case CompressionCodec::LZ4_RAW: - out << "LZ4_RAW"; - return out; - // no default for compiler error on missing enum - } - out << static_cast(val); - return out; -} - -std::ostream &operator<<(std::ostream &out, const PageType::type &val) { - switch (val) { - case PageType::DATA_PAGE: - out << "DATA_PAGE"; - return out; - case PageType::INDEX_PAGE: - out << "INDEX_PAGE"; - return out; - case PageType::DICTIONARY_PAGE: - out << "DICTIONARY_PAGE"; - return out; - case PageType::DATA_PAGE_V2: - out << "DATA_PAGE_V2"; - return out; - // no default for compiler error on missing enum - } - out << static_cast(val); - return out; -} - -std::ostream &operator<<(std::ostream &out, const BoundaryOrder::type &val) { - switch (val) { - case BoundaryOrder::UNORDERED: - out << "UNORDERED"; - return out; - case BoundaryOrder::ASCENDING: - out << "ASCENDING"; - return out; - case BoundaryOrder::DESCENDING: - out << "DESCENDING"; - return out; - // no default for compiler error on missing enum - } - out << static_cast(val); - return out; -} - - -Statistics::~Statistics() throw() { +#include + +namespace duckdb_parquet { + +int _kTypeValues[] = { + Type::BOOLEAN, + Type::INT32, + Type::INT64, + Type::INT96, + Type::FLOAT, + Type::DOUBLE, + Type::BYTE_ARRAY, + Type::FIXED_LEN_BYTE_ARRAY +}; +const char* _kTypeNames[] = { + "BOOLEAN", + "INT32", + "INT64", + "INT96", + "FLOAT", + "DOUBLE", + "BYTE_ARRAY", + "FIXED_LEN_BYTE_ARRAY" +}; +const std::map _Type_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(8, _kTypeValues, _kTypeNames), ::apache::thrift::TEnumIterator(-1, nullptr, nullptr)); + +std::ostream& operator<<(std::ostream& out, const Type::type& val) { + std::map::const_iterator it = _Type_VALUES_TO_NAMES.find(val); + if (it != _Type_VALUES_TO_NAMES.end()) { + out << it->second; + } else { + out << static_cast(val); + } + return out; +} + +std::string to_string(const Type::type& val) { + std::map::const_iterator it = _Type_VALUES_TO_NAMES.find(val); + if (it != _Type_VALUES_TO_NAMES.end()) { + return std::string(it->second); + } else { + return std::to_string(static_cast(val)); + } +} + +int _kConvertedTypeValues[] = { + /** + * a BYTE_ARRAY actually contains UTF8 encoded chars + */ + ConvertedType::UTF8, + /** + * a map is converted as an optional field containing a repeated key/value pair + */ + ConvertedType::MAP, + /** + * a key/value pair is converted into a group of two fields + */ + ConvertedType::MAP_KEY_VALUE, + /** + * a list is converted into an optional field containing a repeated field for its + * values + */ + ConvertedType::LIST, + /** + * an enum is converted into a BYTE_ARRAY field + */ + ConvertedType::ENUM, + /** + * A decimal value. + * + * This may be used to annotate BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY primitive + * types. The underlying byte array stores the unscaled value encoded as two's + * complement using big-endian byte order (the most significant byte is the + * zeroth element). The value of the decimal is the value * 10^{-scale}. + * + * This must be accompanied by a (maximum) precision and a scale in the + * SchemaElement. The precision specifies the number of digits in the decimal + * and the scale stores the location of the decimal point. For example 1.23 + * would have precision 3 (3 total digits) and scale 2 (the decimal point is + * 2 digits over). + */ + ConvertedType::DECIMAL, + /** + * A Date + * + * Stored as days since Unix epoch, encoded as the INT32 physical type. + * + */ + ConvertedType::DATE, + /** + * A time + * + * The total number of milliseconds since midnight. The value is stored + * as an INT32 physical type. + */ + ConvertedType::TIME_MILLIS, + /** + * A time. + * + * The total number of microseconds since midnight. The value is stored as + * an INT64 physical type. + */ + ConvertedType::TIME_MICROS, + /** + * A date/time combination + * + * Date and time recorded as milliseconds since the Unix epoch. Recorded as + * a physical type of INT64. + */ + ConvertedType::TIMESTAMP_MILLIS, + /** + * A date/time combination + * + * Date and time recorded as microseconds since the Unix epoch. The value is + * stored as an INT64 physical type. + */ + ConvertedType::TIMESTAMP_MICROS, + /** + * An unsigned integer value. + * + * The number describes the maximum number of meaningful data bits in + * the stored value. 8, 16 and 32 bit values are stored using the + * INT32 physical type. 64 bit values are stored using the INT64 + * physical type. + * + */ + ConvertedType::UINT_8, + ConvertedType::UINT_16, + ConvertedType::UINT_32, + ConvertedType::UINT_64, + /** + * A signed integer value. + * + * The number describes the maximum number of meaningful data bits in + * the stored value. 8, 16 and 32 bit values are stored using the + * INT32 physical type. 64 bit values are stored using the INT64 + * physical type. + * + */ + ConvertedType::INT_8, + ConvertedType::INT_16, + ConvertedType::INT_32, + ConvertedType::INT_64, + /** + * An embedded JSON document + * + * A JSON document embedded within a single UTF8 column. + */ + ConvertedType::JSON, + /** + * An embedded BSON document + * + * A BSON document embedded within a single BYTE_ARRAY column. + */ + ConvertedType::BSON, + /** + * An interval of time + * + * This type annotates data stored as a FIXED_LEN_BYTE_ARRAY of length 12 + * This data is composed of three separate little endian unsigned + * integers. Each stores a component of a duration of time. The first + * integer identifies the number of months associated with the duration, + * the second identifies the number of days associated with the duration + * and the third identifies the number of milliseconds associated with + * the provided duration. This duration of time is independent of any + * particular timezone or date. + */ + ConvertedType::INTERVAL +}; +const char* _kConvertedTypeNames[] = { + /** + * a BYTE_ARRAY actually contains UTF8 encoded chars + */ + "UTF8", + /** + * a map is converted as an optional field containing a repeated key/value pair + */ + "MAP", + /** + * a key/value pair is converted into a group of two fields + */ + "MAP_KEY_VALUE", + /** + * a list is converted into an optional field containing a repeated field for its + * values + */ + "LIST", + /** + * an enum is converted into a BYTE_ARRAY field + */ + "ENUM", + /** + * A decimal value. + * + * This may be used to annotate BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY primitive + * types. The underlying byte array stores the unscaled value encoded as two's + * complement using big-endian byte order (the most significant byte is the + * zeroth element). The value of the decimal is the value * 10^{-scale}. + * + * This must be accompanied by a (maximum) precision and a scale in the + * SchemaElement. The precision specifies the number of digits in the decimal + * and the scale stores the location of the decimal point. For example 1.23 + * would have precision 3 (3 total digits) and scale 2 (the decimal point is + * 2 digits over). + */ + "DECIMAL", + /** + * A Date + * + * Stored as days since Unix epoch, encoded as the INT32 physical type. + * + */ + "DATE", + /** + * A time + * + * The total number of milliseconds since midnight. The value is stored + * as an INT32 physical type. + */ + "TIME_MILLIS", + /** + * A time. + * + * The total number of microseconds since midnight. The value is stored as + * an INT64 physical type. + */ + "TIME_MICROS", + /** + * A date/time combination + * + * Date and time recorded as milliseconds since the Unix epoch. Recorded as + * a physical type of INT64. + */ + "TIMESTAMP_MILLIS", + /** + * A date/time combination + * + * Date and time recorded as microseconds since the Unix epoch. The value is + * stored as an INT64 physical type. + */ + "TIMESTAMP_MICROS", + /** + * An unsigned integer value. + * + * The number describes the maximum number of meaningful data bits in + * the stored value. 8, 16 and 32 bit values are stored using the + * INT32 physical type. 64 bit values are stored using the INT64 + * physical type. + * + */ + "UINT_8", + "UINT_16", + "UINT_32", + "UINT_64", + /** + * A signed integer value. + * + * The number describes the maximum number of meaningful data bits in + * the stored value. 8, 16 and 32 bit values are stored using the + * INT32 physical type. 64 bit values are stored using the INT64 + * physical type. + * + */ + "INT_8", + "INT_16", + "INT_32", + "INT_64", + /** + * An embedded JSON document + * + * A JSON document embedded within a single UTF8 column. + */ + "JSON", + /** + * An embedded BSON document + * + * A BSON document embedded within a single BYTE_ARRAY column. + */ + "BSON", + /** + * An interval of time + * + * This type annotates data stored as a FIXED_LEN_BYTE_ARRAY of length 12 + * This data is composed of three separate little endian unsigned + * integers. Each stores a component of a duration of time. The first + * integer identifies the number of months associated with the duration, + * the second identifies the number of days associated with the duration + * and the third identifies the number of milliseconds associated with + * the provided duration. This duration of time is independent of any + * particular timezone or date. + */ + "INTERVAL" +}; +const std::map _ConvertedType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(22, _kConvertedTypeValues, _kConvertedTypeNames), ::apache::thrift::TEnumIterator(-1, nullptr, nullptr)); + +std::ostream& operator<<(std::ostream& out, const ConvertedType::type& val) { + std::map::const_iterator it = _ConvertedType_VALUES_TO_NAMES.find(val); + if (it != _ConvertedType_VALUES_TO_NAMES.end()) { + out << it->second; + } else { + out << static_cast(val); + } + return out; +} + +std::string to_string(const ConvertedType::type& val) { + std::map::const_iterator it = _ConvertedType_VALUES_TO_NAMES.find(val); + if (it != _ConvertedType_VALUES_TO_NAMES.end()) { + return std::string(it->second); + } else { + return std::to_string(static_cast(val)); + } +} + +int _kFieldRepetitionTypeValues[] = { + /** + * This field is required (can not be null) and each row has exactly 1 value. + */ + FieldRepetitionType::REQUIRED, + /** + * The field is optional (can be null) and each row has 0 or 1 values. + */ + FieldRepetitionType::OPTIONAL, + /** + * The field is repeated and can contain 0 or more values + */ + FieldRepetitionType::REPEATED +}; +const char* _kFieldRepetitionTypeNames[] = { + /** + * This field is required (can not be null) and each row has exactly 1 value. + */ + "REQUIRED", + /** + * The field is optional (can be null) and each row has 0 or 1 values. + */ + "OPTIONAL", + /** + * The field is repeated and can contain 0 or more values + */ + "REPEATED" +}; +const std::map _FieldRepetitionType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kFieldRepetitionTypeValues, _kFieldRepetitionTypeNames), ::apache::thrift::TEnumIterator(-1, nullptr, nullptr)); + +std::ostream& operator<<(std::ostream& out, const FieldRepetitionType::type& val) { + std::map::const_iterator it = _FieldRepetitionType_VALUES_TO_NAMES.find(val); + if (it != _FieldRepetitionType_VALUES_TO_NAMES.end()) { + out << it->second; + } else { + out << static_cast(val); + } + return out; +} + +std::string to_string(const FieldRepetitionType::type& val) { + std::map::const_iterator it = _FieldRepetitionType_VALUES_TO_NAMES.find(val); + if (it != _FieldRepetitionType_VALUES_TO_NAMES.end()) { + return std::string(it->second); + } else { + return std::to_string(static_cast(val)); + } +} + +int _kEncodingValues[] = { + /** + * Default encoding. + * BOOLEAN - 1 bit per value. 0 is false; 1 is true. + * INT32 - 4 bytes per value. Stored as little-endian. + * INT64 - 8 bytes per value. Stored as little-endian. + * FLOAT - 4 bytes per value. IEEE. Stored as little-endian. + * DOUBLE - 8 bytes per value. IEEE. Stored as little-endian. + * BYTE_ARRAY - 4 byte length stored as little endian, followed by bytes. + * FIXED_LEN_BYTE_ARRAY - Just the bytes. + */ + Encoding::PLAIN, + /** + * Deprecated: Dictionary encoding. The values in the dictionary are encoded in the + * plain type. + * in a data page use RLE_DICTIONARY instead. + * in a Dictionary page use PLAIN instead + */ + Encoding::PLAIN_DICTIONARY, + /** + * Group packed run length encoding. Usable for definition/repetition levels + * encoding and Booleans (on one bit: 0 is false; 1 is true.) + */ + Encoding::RLE, + /** + * Bit packed encoding. This can only be used if the data has a known max + * width. Usable for definition/repetition levels encoding. + */ + Encoding::BIT_PACKED, + /** + * Delta encoding for integers. This can be used for int columns and works best + * on sorted data + */ + Encoding::DELTA_BINARY_PACKED, + /** + * Encoding for byte arrays to separate the length values and the data. The lengths + * are encoded using DELTA_BINARY_PACKED + */ + Encoding::DELTA_LENGTH_BYTE_ARRAY, + /** + * Incremental-encoded byte array. Prefix lengths are encoded using DELTA_BINARY_PACKED. + * Suffixes are stored as delta length byte arrays. + */ + Encoding::DELTA_BYTE_ARRAY, + /** + * Dictionary encoding: the ids are encoded using the RLE encoding + */ + Encoding::RLE_DICTIONARY, + /** + * Encoding for fixed-width data (FLOAT, DOUBLE, INT32, INT64, FIXED_LEN_BYTE_ARRAY). + * K byte-streams are created where K is the size in bytes of the data type. + * The individual bytes of a value are scattered to the corresponding stream and + * the streams are concatenated. + * This itself does not reduce the size of the data but can lead to better compression + * afterwards. + * + * Added in 2.8 for FLOAT and DOUBLE. + * Support for INT32, INT64 and FIXED_LEN_BYTE_ARRAY added in 2.11. + */ + Encoding::BYTE_STREAM_SPLIT +}; +const char* _kEncodingNames[] = { + /** + * Default encoding. + * BOOLEAN - 1 bit per value. 0 is false; 1 is true. + * INT32 - 4 bytes per value. Stored as little-endian. + * INT64 - 8 bytes per value. Stored as little-endian. + * FLOAT - 4 bytes per value. IEEE. Stored as little-endian. + * DOUBLE - 8 bytes per value. IEEE. Stored as little-endian. + * BYTE_ARRAY - 4 byte length stored as little endian, followed by bytes. + * FIXED_LEN_BYTE_ARRAY - Just the bytes. + */ + "PLAIN", + /** + * Deprecated: Dictionary encoding. The values in the dictionary are encoded in the + * plain type. + * in a data page use RLE_DICTIONARY instead. + * in a Dictionary page use PLAIN instead + */ + "PLAIN_DICTIONARY", + /** + * Group packed run length encoding. Usable for definition/repetition levels + * encoding and Booleans (on one bit: 0 is false; 1 is true.) + */ + "RLE", + /** + * Bit packed encoding. This can only be used if the data has a known max + * width. Usable for definition/repetition levels encoding. + */ + "BIT_PACKED", + /** + * Delta encoding for integers. This can be used for int columns and works best + * on sorted data + */ + "DELTA_BINARY_PACKED", + /** + * Encoding for byte arrays to separate the length values and the data. The lengths + * are encoded using DELTA_BINARY_PACKED + */ + "DELTA_LENGTH_BYTE_ARRAY", + /** + * Incremental-encoded byte array. Prefix lengths are encoded using DELTA_BINARY_PACKED. + * Suffixes are stored as delta length byte arrays. + */ + "DELTA_BYTE_ARRAY", + /** + * Dictionary encoding: the ids are encoded using the RLE encoding + */ + "RLE_DICTIONARY", + /** + * Encoding for fixed-width data (FLOAT, DOUBLE, INT32, INT64, FIXED_LEN_BYTE_ARRAY). + * K byte-streams are created where K is the size in bytes of the data type. + * The individual bytes of a value are scattered to the corresponding stream and + * the streams are concatenated. + * This itself does not reduce the size of the data but can lead to better compression + * afterwards. + * + * Added in 2.8 for FLOAT and DOUBLE. + * Support for INT32, INT64 and FIXED_LEN_BYTE_ARRAY added in 2.11. + */ + "BYTE_STREAM_SPLIT" +}; +const std::map _Encoding_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(9, _kEncodingValues, _kEncodingNames), ::apache::thrift::TEnumIterator(-1, nullptr, nullptr)); + +std::ostream& operator<<(std::ostream& out, const Encoding::type& val) { + std::map::const_iterator it = _Encoding_VALUES_TO_NAMES.find(val); + if (it != _Encoding_VALUES_TO_NAMES.end()) { + out << it->second; + } else { + out << static_cast(val); + } + return out; +} + +std::string to_string(const Encoding::type& val) { + std::map::const_iterator it = _Encoding_VALUES_TO_NAMES.find(val); + if (it != _Encoding_VALUES_TO_NAMES.end()) { + return std::string(it->second); + } else { + return std::to_string(static_cast(val)); + } +} + +int _kCompressionCodecValues[] = { + CompressionCodec::UNCOMPRESSED, + CompressionCodec::SNAPPY, + CompressionCodec::GZIP, + CompressionCodec::LZO, + CompressionCodec::BROTLI, + CompressionCodec::LZ4, + CompressionCodec::ZSTD, + CompressionCodec::LZ4_RAW +}; +const char* _kCompressionCodecNames[] = { + "UNCOMPRESSED", + "SNAPPY", + "GZIP", + "LZO", + "BROTLI", + "LZ4", + "ZSTD", + "LZ4_RAW" +}; +const std::map _CompressionCodec_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(8, _kCompressionCodecValues, _kCompressionCodecNames), ::apache::thrift::TEnumIterator(-1, nullptr, nullptr)); + +std::ostream& operator<<(std::ostream& out, const CompressionCodec::type& val) { + std::map::const_iterator it = _CompressionCodec_VALUES_TO_NAMES.find(val); + if (it != _CompressionCodec_VALUES_TO_NAMES.end()) { + out << it->second; + } else { + out << static_cast(val); + } + return out; +} + +std::string to_string(const CompressionCodec::type& val) { + std::map::const_iterator it = _CompressionCodec_VALUES_TO_NAMES.find(val); + if (it != _CompressionCodec_VALUES_TO_NAMES.end()) { + return std::string(it->second); + } else { + return std::to_string(static_cast(val)); + } +} + +int _kPageTypeValues[] = { + PageType::DATA_PAGE, + PageType::INDEX_PAGE, + PageType::DICTIONARY_PAGE, + PageType::DATA_PAGE_V2 +}; +const char* _kPageTypeNames[] = { + "DATA_PAGE", + "INDEX_PAGE", + "DICTIONARY_PAGE", + "DATA_PAGE_V2" +}; +const std::map _PageType_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(4, _kPageTypeValues, _kPageTypeNames), ::apache::thrift::TEnumIterator(-1, nullptr, nullptr)); + +std::ostream& operator<<(std::ostream& out, const PageType::type& val) { + std::map::const_iterator it = _PageType_VALUES_TO_NAMES.find(val); + if (it != _PageType_VALUES_TO_NAMES.end()) { + out << it->second; + } else { + out << static_cast(val); + } + return out; +} + +std::string to_string(const PageType::type& val) { + std::map::const_iterator it = _PageType_VALUES_TO_NAMES.find(val); + if (it != _PageType_VALUES_TO_NAMES.end()) { + return std::string(it->second); + } else { + return std::to_string(static_cast(val)); + } +} + +int _kBoundaryOrderValues[] = { + BoundaryOrder::UNORDERED, + BoundaryOrder::ASCENDING, + BoundaryOrder::DESCENDING +}; +const char* _kBoundaryOrderNames[] = { + "UNORDERED", + "ASCENDING", + "DESCENDING" +}; +const std::map _BoundaryOrder_VALUES_TO_NAMES(::apache::thrift::TEnumIterator(3, _kBoundaryOrderValues, _kBoundaryOrderNames), ::apache::thrift::TEnumIterator(-1, nullptr, nullptr)); + +std::ostream& operator<<(std::ostream& out, const BoundaryOrder::type& val) { + std::map::const_iterator it = _BoundaryOrder_VALUES_TO_NAMES.find(val); + if (it != _BoundaryOrder_VALUES_TO_NAMES.end()) { + out << it->second; + } else { + out << static_cast(val); + } + return out; +} + +std::string to_string(const BoundaryOrder::type& val) { + std::map::const_iterator it = _BoundaryOrder_VALUES_TO_NAMES.find(val); + if (it != _BoundaryOrder_VALUES_TO_NAMES.end()) { + return std::string(it->second); + } else { + return std::to_string(static_cast(val)); + } +} + + +SizeStatistics::~SizeStatistics() noexcept { +} + +SizeStatistics::SizeStatistics() noexcept + : unencoded_byte_array_data_bytes(0) { +} + +void SizeStatistics::__set_unencoded_byte_array_data_bytes(const int64_t val) { + this->unencoded_byte_array_data_bytes = val; +__isset.unencoded_byte_array_data_bytes = true; +} + +void SizeStatistics::__set_repetition_level_histogram(const duckdb::vector & val) { + this->repetition_level_histogram = val; +__isset.repetition_level_histogram = true; +} + +void SizeStatistics::__set_definition_level_histogram(const duckdb::vector & val) { + this->definition_level_histogram = val; +__isset.definition_level_histogram = true; +} +std::ostream& operator<<(std::ostream& out, const SizeStatistics& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t SizeStatistics::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == ::apache::thrift::protocol::T_I64) { + xfer += iprot->readI64(this->unencoded_byte_array_data_bytes); + this->__isset.unencoded_byte_array_data_bytes = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 2: + if (ftype == ::apache::thrift::protocol::T_LIST) { + { + this->repetition_level_histogram.clear(); + uint32_t _size0; + ::apache::thrift::protocol::TType _etype3; + xfer += iprot->readListBegin(_etype3, _size0); + this->repetition_level_histogram.resize(_size0); + uint32_t _i4; + for (_i4 = 0; _i4 < _size0; ++_i4) + { + xfer += iprot->readI64(this->repetition_level_histogram[_i4]); + } + xfer += iprot->readListEnd(); + } + this->__isset.repetition_level_histogram = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 3: + if (ftype == ::apache::thrift::protocol::T_LIST) { + { + this->definition_level_histogram.clear(); + uint32_t _size5; + ::apache::thrift::protocol::TType _etype8; + xfer += iprot->readListBegin(_etype8, _size5); + this->definition_level_histogram.resize(_size5); + uint32_t _i9; + for (_i9 = 0; _i9 < _size5; ++_i9) + { + xfer += iprot->readI64(this->definition_level_histogram[_i9]); + } + xfer += iprot->readListEnd(); + } + this->__isset.definition_level_histogram = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t SizeStatistics::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("SizeStatistics"); + + if (this->__isset.unencoded_byte_array_data_bytes) { + xfer += oprot->writeFieldBegin("unencoded_byte_array_data_bytes", ::apache::thrift::protocol::T_I64, 1); + xfer += oprot->writeI64(this->unencoded_byte_array_data_bytes); + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.repetition_level_histogram) { + xfer += oprot->writeFieldBegin("repetition_level_histogram", ::apache::thrift::protocol::T_LIST, 2); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast(this->repetition_level_histogram.size())); + duckdb::vector ::const_iterator _iter10; + for (_iter10 = this->repetition_level_histogram.begin(); _iter10 != this->repetition_level_histogram.end(); ++_iter10) + { + xfer += oprot->writeI64((*_iter10)); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.definition_level_histogram) { + xfer += oprot->writeFieldBegin("definition_level_histogram", ::apache::thrift::protocol::T_LIST, 3); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast(this->definition_level_histogram.size())); + duckdb::vector ::const_iterator _iter11; + for (_iter11 = this->definition_level_histogram.begin(); _iter11 != this->definition_level_histogram.end(); ++_iter11) + { + xfer += oprot->writeI64((*_iter11)); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(SizeStatistics &a, SizeStatistics &b) { + using ::std::swap; + swap(a.unencoded_byte_array_data_bytes, b.unencoded_byte_array_data_bytes); + swap(a.repetition_level_histogram, b.repetition_level_histogram); + swap(a.definition_level_histogram, b.definition_level_histogram); + swap(a.__isset, b.__isset); +} + +SizeStatistics::SizeStatistics(const SizeStatistics& other12) { + unencoded_byte_array_data_bytes = other12.unencoded_byte_array_data_bytes; + repetition_level_histogram = other12.repetition_level_histogram; + definition_level_histogram = other12.definition_level_histogram; + __isset = other12.__isset; +} +SizeStatistics& SizeStatistics::operator=(const SizeStatistics& other13) { + unencoded_byte_array_data_bytes = other13.unencoded_byte_array_data_bytes; + repetition_level_histogram = other13.repetition_level_histogram; + definition_level_histogram = other13.definition_level_histogram; + __isset = other13.__isset; + return *this; +} +void SizeStatistics::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "SizeStatistics("; + out << "unencoded_byte_array_data_bytes="; (__isset.unencoded_byte_array_data_bytes ? (out << to_string(unencoded_byte_array_data_bytes)) : (out << "")); + out << ", " << "repetition_level_histogram="; (__isset.repetition_level_histogram ? (out << to_string(repetition_level_histogram)) : (out << "")); + out << ", " << "definition_level_histogram="; (__isset.definition_level_histogram ? (out << to_string(definition_level_histogram)) : (out << "")); + out << ")"; +} + + +Statistics::~Statistics() noexcept { } +Statistics::Statistics() noexcept + : max(), + min(), + null_count(0), + distinct_count(0), + max_value(), + min_value(), + is_max_value_exact(0), + is_min_value_exact(0) { +} void Statistics::__set_max(const std::string& val) { this->max = val; @@ -277,6 +845,16 @@ void Statistics::__set_min_value(const std::string& val) { this->min_value = val; __isset.min_value = true; } + +void Statistics::__set_is_max_value_exact(const bool val) { + this->is_max_value_exact = val; +__isset.is_max_value_exact = true; +} + +void Statistics::__set_is_min_value_exact(const bool val) { + this->is_min_value_exact = val; +__isset.is_min_value_exact = true; +} std::ostream& operator<<(std::ostream& out, const Statistics& obj) { obj.printTo(out); @@ -284,29 +862,29 @@ std::ostream& operator<<(std::ostream& out, const Statistics& obj) } -uint32_t Statistics::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t Statistics::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->max); this->__isset.max = true; } else { @@ -314,7 +892,7 @@ uint32_t Statistics::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->min); this->__isset.min = true; } else { @@ -322,7 +900,7 @@ uint32_t Statistics::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->null_count); this->__isset.null_count = true; } else { @@ -330,7 +908,7 @@ uint32_t Statistics::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->distinct_count); this->__isset.distinct_count = true; } else { @@ -338,7 +916,7 @@ uint32_t Statistics::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->max_value); this->__isset.max_value = true; } else { @@ -346,13 +924,29 @@ uint32_t Statistics::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->min_value); this->__isset.min_value = true; } else { xfer += iprot->skip(ftype); } break; + case 7: + if (ftype == ::apache::thrift::protocol::T_BOOL) { + xfer += iprot->readBool(this->is_max_value_exact); + this->__isset.is_max_value_exact = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 8: + if (ftype == ::apache::thrift::protocol::T_BOOL) { + xfer += iprot->readBool(this->is_min_value_exact); + this->__isset.is_min_value_exact = true; + } else { + xfer += iprot->skip(ftype); + } + break; default: xfer += iprot->skip(ftype); break; @@ -365,41 +959,51 @@ uint32_t Statistics::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t Statistics::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t Statistics::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("Statistics"); if (this->__isset.max) { - xfer += oprot->writeFieldBegin("max", ::duckdb_apache::thrift::protocol::T_STRING, 1); + xfer += oprot->writeFieldBegin("max", ::apache::thrift::protocol::T_STRING, 1); xfer += oprot->writeBinary(this->max); xfer += oprot->writeFieldEnd(); } if (this->__isset.min) { - xfer += oprot->writeFieldBegin("min", ::duckdb_apache::thrift::protocol::T_STRING, 2); + xfer += oprot->writeFieldBegin("min", ::apache::thrift::protocol::T_STRING, 2); xfer += oprot->writeBinary(this->min); xfer += oprot->writeFieldEnd(); } if (this->__isset.null_count) { - xfer += oprot->writeFieldBegin("null_count", ::duckdb_apache::thrift::protocol::T_I64, 3); + xfer += oprot->writeFieldBegin("null_count", ::apache::thrift::protocol::T_I64, 3); xfer += oprot->writeI64(this->null_count); xfer += oprot->writeFieldEnd(); } if (this->__isset.distinct_count) { - xfer += oprot->writeFieldBegin("distinct_count", ::duckdb_apache::thrift::protocol::T_I64, 4); + xfer += oprot->writeFieldBegin("distinct_count", ::apache::thrift::protocol::T_I64, 4); xfer += oprot->writeI64(this->distinct_count); xfer += oprot->writeFieldEnd(); } if (this->__isset.max_value) { - xfer += oprot->writeFieldBegin("max_value", ::duckdb_apache::thrift::protocol::T_STRING, 5); + xfer += oprot->writeFieldBegin("max_value", ::apache::thrift::protocol::T_STRING, 5); xfer += oprot->writeBinary(this->max_value); xfer += oprot->writeFieldEnd(); } if (this->__isset.min_value) { - xfer += oprot->writeFieldBegin("min_value", ::duckdb_apache::thrift::protocol::T_STRING, 6); + xfer += oprot->writeFieldBegin("min_value", ::apache::thrift::protocol::T_STRING, 6); xfer += oprot->writeBinary(this->min_value); xfer += oprot->writeFieldEnd(); } + if (this->__isset.is_max_value_exact) { + xfer += oprot->writeFieldBegin("is_max_value_exact", ::apache::thrift::protocol::T_BOOL, 7); + xfer += oprot->writeBool(this->is_max_value_exact); + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.is_min_value_exact) { + xfer += oprot->writeFieldBegin("is_min_value_exact", ::apache::thrift::protocol::T_BOOL, 8); + xfer += oprot->writeBool(this->is_min_value_exact); + xfer += oprot->writeFieldEnd(); + } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; @@ -413,30 +1017,36 @@ void swap(Statistics &a, Statistics &b) { swap(a.distinct_count, b.distinct_count); swap(a.max_value, b.max_value); swap(a.min_value, b.min_value); + swap(a.is_max_value_exact, b.is_max_value_exact); + swap(a.is_min_value_exact, b.is_min_value_exact); swap(a.__isset, b.__isset); } -Statistics::Statistics(const Statistics& other0) { - max = other0.max; - min = other0.min; - null_count = other0.null_count; - distinct_count = other0.distinct_count; - max_value = other0.max_value; - min_value = other0.min_value; - __isset = other0.__isset; -} -Statistics& Statistics::operator=(const Statistics& other1) { - max = other1.max; - min = other1.min; - null_count = other1.null_count; - distinct_count = other1.distinct_count; - max_value = other1.max_value; - min_value = other1.min_value; - __isset = other1.__isset; +Statistics::Statistics(const Statistics& other14) { + max = other14.max; + min = other14.min; + null_count = other14.null_count; + distinct_count = other14.distinct_count; + max_value = other14.max_value; + min_value = other14.min_value; + is_max_value_exact = other14.is_max_value_exact; + is_min_value_exact = other14.is_min_value_exact; + __isset = other14.__isset; +} +Statistics& Statistics::operator=(const Statistics& other15) { + max = other15.max; + min = other15.min; + null_count = other15.null_count; + distinct_count = other15.distinct_count; + max_value = other15.max_value; + min_value = other15.min_value; + is_max_value_exact = other15.is_max_value_exact; + is_min_value_exact = other15.is_min_value_exact; + __isset = other15.__isset; return *this; } void Statistics::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "Statistics("; out << "max="; (__isset.max ? (out << to_string(max)) : (out << "")); out << ", " << "min="; (__isset.min ? (out << to_string(min)) : (out << "")); @@ -444,13 +1054,17 @@ void Statistics::printTo(std::ostream& out) const { out << ", " << "distinct_count="; (__isset.distinct_count ? (out << to_string(distinct_count)) : (out << "")); out << ", " << "max_value="; (__isset.max_value ? (out << to_string(max_value)) : (out << "")); out << ", " << "min_value="; (__isset.min_value ? (out << to_string(min_value)) : (out << "")); + out << ", " << "is_max_value_exact="; (__isset.is_max_value_exact ? (out << to_string(is_max_value_exact)) : (out << "")); + out << ", " << "is_min_value_exact="; (__isset.is_min_value_exact ? (out << to_string(is_min_value_exact)) : (out << "")); out << ")"; } -StringType::~StringType() throw() { +StringType::~StringType() noexcept { } +StringType::StringType() noexcept { +} std::ostream& operator<<(std::ostream& out, const StringType& obj) { obj.printTo(out); @@ -458,23 +1072,23 @@ std::ostream& operator<<(std::ostream& out, const StringType& obj) } -uint32_t StringType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t StringType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -486,9 +1100,9 @@ uint32_t StringType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t StringType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t StringType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("StringType"); xfer += oprot->writeFieldStop(); @@ -502,23 +1116,25 @@ void swap(StringType &a, StringType &b) { (void) b; } -StringType::StringType(const StringType& other2) { - (void) other2; +StringType::StringType(const StringType& other16) noexcept { + (void) other16; } -StringType& StringType::operator=(const StringType& other3) { - (void) other3; +StringType& StringType::operator=(const StringType& other17) noexcept { + (void) other17; return *this; } void StringType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "StringType("; out << ")"; } -UUIDType::~UUIDType() throw() { +UUIDType::~UUIDType() noexcept { } +UUIDType::UUIDType() noexcept { +} std::ostream& operator<<(std::ostream& out, const UUIDType& obj) { obj.printTo(out); @@ -526,23 +1142,23 @@ std::ostream& operator<<(std::ostream& out, const UUIDType& obj) } -uint32_t UUIDType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t UUIDType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -554,9 +1170,9 @@ uint32_t UUIDType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t UUIDType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t UUIDType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("UUIDType"); xfer += oprot->writeFieldStop(); @@ -570,23 +1186,25 @@ void swap(UUIDType &a, UUIDType &b) { (void) b; } -UUIDType::UUIDType(const UUIDType& other4) { - (void) other4; +UUIDType::UUIDType(const UUIDType& other18) noexcept { + (void) other18; } -UUIDType& UUIDType::operator=(const UUIDType& other5) { - (void) other5; +UUIDType& UUIDType::operator=(const UUIDType& other19) noexcept { + (void) other19; return *this; } void UUIDType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "UUIDType("; out << ")"; } -MapType::~MapType() throw() { +MapType::~MapType() noexcept { } +MapType::MapType() noexcept { +} std::ostream& operator<<(std::ostream& out, const MapType& obj) { obj.printTo(out); @@ -594,23 +1212,23 @@ std::ostream& operator<<(std::ostream& out, const MapType& obj) } -uint32_t MapType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t MapType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -622,9 +1240,9 @@ uint32_t MapType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t MapType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t MapType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("MapType"); xfer += oprot->writeFieldStop(); @@ -638,23 +1256,25 @@ void swap(MapType &a, MapType &b) { (void) b; } -MapType::MapType(const MapType& other6) { - (void) other6; +MapType::MapType(const MapType& other20) noexcept { + (void) other20; } -MapType& MapType::operator=(const MapType& other7) { - (void) other7; +MapType& MapType::operator=(const MapType& other21) noexcept { + (void) other21; return *this; } void MapType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "MapType("; out << ")"; } -ListType::~ListType() throw() { +ListType::~ListType() noexcept { } +ListType::ListType() noexcept { +} std::ostream& operator<<(std::ostream& out, const ListType& obj) { obj.printTo(out); @@ -662,23 +1282,23 @@ std::ostream& operator<<(std::ostream& out, const ListType& obj) } -uint32_t ListType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t ListType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -690,9 +1310,9 @@ uint32_t ListType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t ListType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t ListType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("ListType"); xfer += oprot->writeFieldStop(); @@ -706,23 +1326,25 @@ void swap(ListType &a, ListType &b) { (void) b; } -ListType::ListType(const ListType& other8) { - (void) other8; +ListType::ListType(const ListType& other22) noexcept { + (void) other22; } -ListType& ListType::operator=(const ListType& other9) { - (void) other9; +ListType& ListType::operator=(const ListType& other23) noexcept { + (void) other23; return *this; } void ListType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "ListType("; out << ")"; } -EnumType::~EnumType() throw() { +EnumType::~EnumType() noexcept { } +EnumType::EnumType() noexcept { +} std::ostream& operator<<(std::ostream& out, const EnumType& obj) { obj.printTo(out); @@ -730,23 +1352,23 @@ std::ostream& operator<<(std::ostream& out, const EnumType& obj) } -uint32_t EnumType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t EnumType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -758,9 +1380,9 @@ uint32_t EnumType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t EnumType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t EnumType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("EnumType"); xfer += oprot->writeFieldStop(); @@ -774,23 +1396,25 @@ void swap(EnumType &a, EnumType &b) { (void) b; } -EnumType::EnumType(const EnumType& other10) { - (void) other10; +EnumType::EnumType(const EnumType& other24) noexcept { + (void) other24; } -EnumType& EnumType::operator=(const EnumType& other11) { - (void) other11; +EnumType& EnumType::operator=(const EnumType& other25) noexcept { + (void) other25; return *this; } void EnumType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "EnumType("; out << ")"; } -DateType::~DateType() throw() { +DateType::~DateType() noexcept { } +DateType::DateType() noexcept { +} std::ostream& operator<<(std::ostream& out, const DateType& obj) { obj.printTo(out); @@ -798,23 +1422,23 @@ std::ostream& operator<<(std::ostream& out, const DateType& obj) } -uint32_t DateType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t DateType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -826,9 +1450,9 @@ uint32_t DateType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t DateType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t DateType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("DateType"); xfer += oprot->writeFieldStop(); @@ -842,23 +1466,95 @@ void swap(DateType &a, DateType &b) { (void) b; } -DateType::DateType(const DateType& other12) { - (void) other12; +DateType::DateType(const DateType& other26) noexcept { + (void) other26; } -DateType& DateType::operator=(const DateType& other13) { - (void) other13; +DateType& DateType::operator=(const DateType& other27) noexcept { + (void) other27; return *this; } void DateType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "DateType("; out << ")"; } -NullType::~NullType() throw() { +Float16Type::~Float16Type() noexcept { +} + +Float16Type::Float16Type() noexcept { +} +std::ostream& operator<<(std::ostream& out, const Float16Type& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t Float16Type::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + xfer += iprot->skip(ftype); + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t Float16Type::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("Float16Type"); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(Float16Type &a, Float16Type &b) { + using ::std::swap; + (void) a; + (void) b; +} + +Float16Type::Float16Type(const Float16Type& other28) noexcept { + (void) other28; +} +Float16Type& Float16Type::operator=(const Float16Type& other29) noexcept { + (void) other29; + return *this; +} +void Float16Type::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "Float16Type("; + out << ")"; +} + + +NullType::~NullType() noexcept { } +NullType::NullType() noexcept { +} std::ostream& operator<<(std::ostream& out, const NullType& obj) { obj.printTo(out); @@ -866,23 +1562,23 @@ std::ostream& operator<<(std::ostream& out, const NullType& obj) } -uint32_t NullType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t NullType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -894,9 +1590,9 @@ uint32_t NullType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t NullType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t NullType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("NullType"); xfer += oprot->writeFieldStop(); @@ -910,23 +1606,27 @@ void swap(NullType &a, NullType &b) { (void) b; } -NullType::NullType(const NullType& other14) { - (void) other14; +NullType::NullType(const NullType& other30) noexcept { + (void) other30; } -NullType& NullType::operator=(const NullType& other15) { - (void) other15; +NullType& NullType::operator=(const NullType& other31) noexcept { + (void) other31; return *this; } void NullType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "NullType("; out << ")"; } -DecimalType::~DecimalType() throw() { +DecimalType::~DecimalType() noexcept { } +DecimalType::DecimalType() noexcept + : scale(0), + precision(0) { +} void DecimalType::__set_scale(const int32_t val) { this->scale = val; @@ -942,17 +1642,17 @@ std::ostream& operator<<(std::ostream& out, const DecimalType& obj) } -uint32_t DecimalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t DecimalType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_scale = false; bool isset_precision = false; @@ -960,13 +1660,13 @@ uint32_t DecimalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->scale); isset_scale = true; } else { @@ -974,7 +1674,7 @@ uint32_t DecimalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->precision); isset_precision = true; } else { @@ -997,16 +1697,16 @@ uint32_t DecimalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t DecimalType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t DecimalType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("DecimalType"); - xfer += oprot->writeFieldBegin("scale", ::duckdb_apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeFieldBegin("scale", ::apache::thrift::protocol::T_I32, 1); xfer += oprot->writeI32(this->scale); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("precision", ::duckdb_apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeFieldBegin("precision", ::apache::thrift::protocol::T_I32, 2); xfer += oprot->writeI32(this->precision); xfer += oprot->writeFieldEnd(); @@ -1021,17 +1721,17 @@ void swap(DecimalType &a, DecimalType &b) { swap(a.precision, b.precision); } -DecimalType::DecimalType(const DecimalType& other16) { - scale = other16.scale; - precision = other16.precision; +DecimalType::DecimalType(const DecimalType& other32) noexcept { + scale = other32.scale; + precision = other32.precision; } -DecimalType& DecimalType::operator=(const DecimalType& other17) { - scale = other17.scale; - precision = other17.precision; +DecimalType& DecimalType::operator=(const DecimalType& other33) noexcept { + scale = other33.scale; + precision = other33.precision; return *this; } void DecimalType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "DecimalType("; out << "scale=" << to_string(scale); out << ", " << "precision=" << to_string(precision); @@ -1039,9 +1739,11 @@ void DecimalType::printTo(std::ostream& out) const { } -MilliSeconds::~MilliSeconds() throw() { +MilliSeconds::~MilliSeconds() noexcept { } +MilliSeconds::MilliSeconds() noexcept { +} std::ostream& operator<<(std::ostream& out, const MilliSeconds& obj) { obj.printTo(out); @@ -1049,23 +1751,23 @@ std::ostream& operator<<(std::ostream& out, const MilliSeconds& obj) } -uint32_t MilliSeconds::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t MilliSeconds::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -1077,9 +1779,9 @@ uint32_t MilliSeconds::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t MilliSeconds::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t MilliSeconds::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("MilliSeconds"); xfer += oprot->writeFieldStop(); @@ -1093,23 +1795,25 @@ void swap(MilliSeconds &a, MilliSeconds &b) { (void) b; } -MilliSeconds::MilliSeconds(const MilliSeconds& other18) { - (void) other18; +MilliSeconds::MilliSeconds(const MilliSeconds& other34) noexcept { + (void) other34; } -MilliSeconds& MilliSeconds::operator=(const MilliSeconds& other19) { - (void) other19; +MilliSeconds& MilliSeconds::operator=(const MilliSeconds& other35) noexcept { + (void) other35; return *this; } void MilliSeconds::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "MilliSeconds("; out << ")"; } -MicroSeconds::~MicroSeconds() throw() { +MicroSeconds::~MicroSeconds() noexcept { } +MicroSeconds::MicroSeconds() noexcept { +} std::ostream& operator<<(std::ostream& out, const MicroSeconds& obj) { obj.printTo(out); @@ -1117,23 +1821,23 @@ std::ostream& operator<<(std::ostream& out, const MicroSeconds& obj) } -uint32_t MicroSeconds::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t MicroSeconds::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -1145,9 +1849,9 @@ uint32_t MicroSeconds::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t MicroSeconds::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t MicroSeconds::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("MicroSeconds"); xfer += oprot->writeFieldStop(); @@ -1161,23 +1865,25 @@ void swap(MicroSeconds &a, MicroSeconds &b) { (void) b; } -MicroSeconds::MicroSeconds(const MicroSeconds& other20) { - (void) other20; +MicroSeconds::MicroSeconds(const MicroSeconds& other36) noexcept { + (void) other36; } -MicroSeconds& MicroSeconds::operator=(const MicroSeconds& other21) { - (void) other21; +MicroSeconds& MicroSeconds::operator=(const MicroSeconds& other37) noexcept { + (void) other37; return *this; } void MicroSeconds::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "MicroSeconds("; out << ")"; } -NanoSeconds::~NanoSeconds() throw() { +NanoSeconds::~NanoSeconds() noexcept { } +NanoSeconds::NanoSeconds() noexcept { +} std::ostream& operator<<(std::ostream& out, const NanoSeconds& obj) { obj.printTo(out); @@ -1185,23 +1891,23 @@ std::ostream& operator<<(std::ostream& out, const NanoSeconds& obj) } -uint32_t NanoSeconds::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t NanoSeconds::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -1213,9 +1919,9 @@ uint32_t NanoSeconds::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t NanoSeconds::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t NanoSeconds::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("NanoSeconds"); xfer += oprot->writeFieldStop(); @@ -1229,23 +1935,25 @@ void swap(NanoSeconds &a, NanoSeconds &b) { (void) b; } -NanoSeconds::NanoSeconds(const NanoSeconds& other22) { - (void) other22; +NanoSeconds::NanoSeconds(const NanoSeconds& other38) noexcept { + (void) other38; } -NanoSeconds& NanoSeconds::operator=(const NanoSeconds& other23) { - (void) other23; +NanoSeconds& NanoSeconds::operator=(const NanoSeconds& other39) noexcept { + (void) other39; return *this; } void NanoSeconds::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "NanoSeconds("; out << ")"; } -TimeUnit::~TimeUnit() throw() { +TimeUnit::~TimeUnit() noexcept { } +TimeUnit::TimeUnit() noexcept { +} void TimeUnit::__set_MILLIS(const MilliSeconds& val) { this->MILLIS = val; @@ -1268,29 +1976,29 @@ std::ostream& operator<<(std::ostream& out, const TimeUnit& obj) } -uint32_t TimeUnit::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t TimeUnit::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->MILLIS.read(iprot); this->__isset.MILLIS = true; } else { @@ -1298,7 +2006,7 @@ uint32_t TimeUnit::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->MICROS.read(iprot); this->__isset.MICROS = true; } else { @@ -1306,7 +2014,7 @@ uint32_t TimeUnit::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->NANOS.read(iprot); this->__isset.NANOS = true; } else { @@ -1325,23 +2033,23 @@ uint32_t TimeUnit::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t TimeUnit::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t TimeUnit::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("TimeUnit"); if (this->__isset.MILLIS) { - xfer += oprot->writeFieldBegin("MILLIS", ::duckdb_apache::thrift::protocol::T_STRUCT, 1); + xfer += oprot->writeFieldBegin("MILLIS", ::apache::thrift::protocol::T_STRUCT, 1); xfer += this->MILLIS.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.MICROS) { - xfer += oprot->writeFieldBegin("MICROS", ::duckdb_apache::thrift::protocol::T_STRUCT, 2); + xfer += oprot->writeFieldBegin("MICROS", ::apache::thrift::protocol::T_STRUCT, 2); xfer += this->MICROS.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.NANOS) { - xfer += oprot->writeFieldBegin("NANOS", ::duckdb_apache::thrift::protocol::T_STRUCT, 3); + xfer += oprot->writeFieldBegin("NANOS", ::apache::thrift::protocol::T_STRUCT, 3); xfer += this->NANOS.write(oprot); xfer += oprot->writeFieldEnd(); } @@ -1358,21 +2066,21 @@ void swap(TimeUnit &a, TimeUnit &b) { swap(a.__isset, b.__isset); } -TimeUnit::TimeUnit(const TimeUnit& other24) { - MILLIS = other24.MILLIS; - MICROS = other24.MICROS; - NANOS = other24.NANOS; - __isset = other24.__isset; +TimeUnit::TimeUnit(const TimeUnit& other40) noexcept { + MILLIS = other40.MILLIS; + MICROS = other40.MICROS; + NANOS = other40.NANOS; + __isset = other40.__isset; } -TimeUnit& TimeUnit::operator=(const TimeUnit& other25) { - MILLIS = other25.MILLIS; - MICROS = other25.MICROS; - NANOS = other25.NANOS; - __isset = other25.__isset; +TimeUnit& TimeUnit::operator=(const TimeUnit& other41) noexcept { + MILLIS = other41.MILLIS; + MICROS = other41.MICROS; + NANOS = other41.NANOS; + __isset = other41.__isset; return *this; } void TimeUnit::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "TimeUnit("; out << "MILLIS="; (__isset.MILLIS ? (out << to_string(MILLIS)) : (out << "")); out << ", " << "MICROS="; (__isset.MICROS ? (out << to_string(MICROS)) : (out << "")); @@ -1381,9 +2089,12 @@ void TimeUnit::printTo(std::ostream& out) const { } -TimestampType::~TimestampType() throw() { +TimestampType::~TimestampType() noexcept { } +TimestampType::TimestampType() noexcept + : isAdjustedToUTC(0) { +} void TimestampType::__set_isAdjustedToUTC(const bool val) { this->isAdjustedToUTC = val; @@ -1399,17 +2110,17 @@ std::ostream& operator<<(std::ostream& out, const TimestampType& obj) } -uint32_t TimestampType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t TimestampType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_isAdjustedToUTC = false; bool isset_unit = false; @@ -1417,13 +2128,13 @@ uint32_t TimestampType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->isAdjustedToUTC); isset_isAdjustedToUTC = true; } else { @@ -1431,7 +2142,7 @@ uint32_t TimestampType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->unit.read(iprot); isset_unit = true; } else { @@ -1454,16 +2165,16 @@ uint32_t TimestampType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot return xfer; } -uint32_t TimestampType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t TimestampType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("TimestampType"); - xfer += oprot->writeFieldBegin("isAdjustedToUTC", ::duckdb_apache::thrift::protocol::T_BOOL, 1); + xfer += oprot->writeFieldBegin("isAdjustedToUTC", ::apache::thrift::protocol::T_BOOL, 1); xfer += oprot->writeBool(this->isAdjustedToUTC); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("unit", ::duckdb_apache::thrift::protocol::T_STRUCT, 2); + xfer += oprot->writeFieldBegin("unit", ::apache::thrift::protocol::T_STRUCT, 2); xfer += this->unit.write(oprot); xfer += oprot->writeFieldEnd(); @@ -1478,17 +2189,17 @@ void swap(TimestampType &a, TimestampType &b) { swap(a.unit, b.unit); } -TimestampType::TimestampType(const TimestampType& other26) { - isAdjustedToUTC = other26.isAdjustedToUTC; - unit = other26.unit; +TimestampType::TimestampType(const TimestampType& other42) noexcept { + isAdjustedToUTC = other42.isAdjustedToUTC; + unit = other42.unit; } -TimestampType& TimestampType::operator=(const TimestampType& other27) { - isAdjustedToUTC = other27.isAdjustedToUTC; - unit = other27.unit; +TimestampType& TimestampType::operator=(const TimestampType& other43) noexcept { + isAdjustedToUTC = other43.isAdjustedToUTC; + unit = other43.unit; return *this; } void TimestampType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "TimestampType("; out << "isAdjustedToUTC=" << to_string(isAdjustedToUTC); out << ", " << "unit=" << to_string(unit); @@ -1496,9 +2207,12 @@ void TimestampType::printTo(std::ostream& out) const { } -TimeType::~TimeType() throw() { +TimeType::~TimeType() noexcept { } +TimeType::TimeType() noexcept + : isAdjustedToUTC(0) { +} void TimeType::__set_isAdjustedToUTC(const bool val) { this->isAdjustedToUTC = val; @@ -1514,17 +2228,17 @@ std::ostream& operator<<(std::ostream& out, const TimeType& obj) } -uint32_t TimeType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t TimeType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_isAdjustedToUTC = false; bool isset_unit = false; @@ -1532,13 +2246,13 @@ uint32_t TimeType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->isAdjustedToUTC); isset_isAdjustedToUTC = true; } else { @@ -1546,7 +2260,7 @@ uint32_t TimeType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->unit.read(iprot); isset_unit = true; } else { @@ -1569,16 +2283,16 @@ uint32_t TimeType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t TimeType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t TimeType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("TimeType"); - xfer += oprot->writeFieldBegin("isAdjustedToUTC", ::duckdb_apache::thrift::protocol::T_BOOL, 1); + xfer += oprot->writeFieldBegin("isAdjustedToUTC", ::apache::thrift::protocol::T_BOOL, 1); xfer += oprot->writeBool(this->isAdjustedToUTC); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("unit", ::duckdb_apache::thrift::protocol::T_STRUCT, 2); + xfer += oprot->writeFieldBegin("unit", ::apache::thrift::protocol::T_STRUCT, 2); xfer += this->unit.write(oprot); xfer += oprot->writeFieldEnd(); @@ -1593,17 +2307,17 @@ void swap(TimeType &a, TimeType &b) { swap(a.unit, b.unit); } -TimeType::TimeType(const TimeType& other28) { - isAdjustedToUTC = other28.isAdjustedToUTC; - unit = other28.unit; +TimeType::TimeType(const TimeType& other44) noexcept { + isAdjustedToUTC = other44.isAdjustedToUTC; + unit = other44.unit; } -TimeType& TimeType::operator=(const TimeType& other29) { - isAdjustedToUTC = other29.isAdjustedToUTC; - unit = other29.unit; +TimeType& TimeType::operator=(const TimeType& other45) noexcept { + isAdjustedToUTC = other45.isAdjustedToUTC; + unit = other45.unit; return *this; } void TimeType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "TimeType("; out << "isAdjustedToUTC=" << to_string(isAdjustedToUTC); out << ", " << "unit=" << to_string(unit); @@ -1611,9 +2325,13 @@ void TimeType::printTo(std::ostream& out) const { } -IntType::~IntType() throw() { +IntType::~IntType() noexcept { } +IntType::IntType() noexcept + : bitWidth(0), + isSigned(0) { +} void IntType::__set_bitWidth(const int8_t val) { this->bitWidth = val; @@ -1629,17 +2347,17 @@ std::ostream& operator<<(std::ostream& out, const IntType& obj) } -uint32_t IntType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t IntType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_bitWidth = false; bool isset_isSigned = false; @@ -1647,13 +2365,13 @@ uint32_t IntType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_BYTE) { + if (ftype == ::apache::thrift::protocol::T_BYTE) { xfer += iprot->readByte(this->bitWidth); isset_bitWidth = true; } else { @@ -1661,7 +2379,7 @@ uint32_t IntType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->isSigned); isset_isSigned = true; } else { @@ -1684,16 +2402,16 @@ uint32_t IntType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t IntType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t IntType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("IntType"); - xfer += oprot->writeFieldBegin("bitWidth", ::duckdb_apache::thrift::protocol::T_BYTE, 1); + xfer += oprot->writeFieldBegin("bitWidth", ::apache::thrift::protocol::T_BYTE, 1); xfer += oprot->writeByte(this->bitWidth); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("isSigned", ::duckdb_apache::thrift::protocol::T_BOOL, 2); + xfer += oprot->writeFieldBegin("isSigned", ::apache::thrift::protocol::T_BOOL, 2); xfer += oprot->writeBool(this->isSigned); xfer += oprot->writeFieldEnd(); @@ -1708,17 +2426,17 @@ void swap(IntType &a, IntType &b) { swap(a.isSigned, b.isSigned); } -IntType::IntType(const IntType& other30) { - bitWidth = other30.bitWidth; - isSigned = other30.isSigned; +IntType::IntType(const IntType& other46) noexcept { + bitWidth = other46.bitWidth; + isSigned = other46.isSigned; } -IntType& IntType::operator=(const IntType& other31) { - bitWidth = other31.bitWidth; - isSigned = other31.isSigned; +IntType& IntType::operator=(const IntType& other47) noexcept { + bitWidth = other47.bitWidth; + isSigned = other47.isSigned; return *this; } void IntType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "IntType("; out << "bitWidth=" << to_string(bitWidth); out << ", " << "isSigned=" << to_string(isSigned); @@ -1726,9 +2444,11 @@ void IntType::printTo(std::ostream& out) const { } -JsonType::~JsonType() throw() { +JsonType::~JsonType() noexcept { } +JsonType::JsonType() noexcept { +} std::ostream& operator<<(std::ostream& out, const JsonType& obj) { obj.printTo(out); @@ -1736,23 +2456,23 @@ std::ostream& operator<<(std::ostream& out, const JsonType& obj) } -uint32_t JsonType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t JsonType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -1764,9 +2484,9 @@ uint32_t JsonType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t JsonType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t JsonType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("JsonType"); xfer += oprot->writeFieldStop(); @@ -1780,23 +2500,25 @@ void swap(JsonType &a, JsonType &b) { (void) b; } -JsonType::JsonType(const JsonType& other32) { - (void) other32; +JsonType::JsonType(const JsonType& other48) noexcept { + (void) other48; } -JsonType& JsonType::operator=(const JsonType& other33) { - (void) other33; +JsonType& JsonType::operator=(const JsonType& other49) noexcept { + (void) other49; return *this; } void JsonType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "JsonType("; out << ")"; } -BsonType::~BsonType() throw() { +BsonType::~BsonType() noexcept { } +BsonType::BsonType() noexcept { +} std::ostream& operator<<(std::ostream& out, const BsonType& obj) { obj.printTo(out); @@ -1804,23 +2526,23 @@ std::ostream& operator<<(std::ostream& out, const BsonType& obj) } -uint32_t BsonType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t BsonType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -1832,9 +2554,9 @@ uint32_t BsonType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t BsonType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t BsonType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("BsonType"); xfer += oprot->writeFieldStop(); @@ -1848,23 +2570,25 @@ void swap(BsonType &a, BsonType &b) { (void) b; } -BsonType::BsonType(const BsonType& other34) { - (void) other34; +BsonType::BsonType(const BsonType& other50) noexcept { + (void) other50; } -BsonType& BsonType::operator=(const BsonType& other35) { - (void) other35; +BsonType& BsonType::operator=(const BsonType& other51) noexcept { + (void) other51; return *this; } void BsonType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "BsonType("; out << ")"; } -LogicalType::~LogicalType() throw() { +LogicalType::~LogicalType() noexcept { } +LogicalType::LogicalType() noexcept { +} void LogicalType::__set_STRING(const StringType& val) { this->STRING = val; @@ -1930,6 +2654,11 @@ void LogicalType::__set_UUID(const UUIDType& val) { this->UUID = val; __isset.UUID = true; } + +void LogicalType::__set_FLOAT16(const Float16Type& val) { + this->FLOAT16 = val; +__isset.FLOAT16 = true; +} std::ostream& operator<<(std::ostream& out, const LogicalType& obj) { obj.printTo(out); @@ -1937,29 +2666,29 @@ std::ostream& operator<<(std::ostream& out, const LogicalType& obj) } -uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t LogicalType::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->STRING.read(iprot); this->__isset.STRING = true; } else { @@ -1967,7 +2696,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->MAP.read(iprot); this->__isset.MAP = true; } else { @@ -1975,7 +2704,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->LIST.read(iprot); this->__isset.LIST = true; } else { @@ -1983,7 +2712,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->ENUM.read(iprot); this->__isset.ENUM = true; } else { @@ -1991,7 +2720,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->DECIMAL.read(iprot); this->__isset.DECIMAL = true; } else { @@ -1999,7 +2728,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->DATE.read(iprot); this->__isset.DATE = true; } else { @@ -2007,7 +2736,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->TIME.read(iprot); this->__isset.TIME = true; } else { @@ -2015,7 +2744,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 8: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->TIMESTAMP.read(iprot); this->__isset.TIMESTAMP = true; } else { @@ -2023,7 +2752,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 10: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->INTEGER.read(iprot); this->__isset.INTEGER = true; } else { @@ -2031,7 +2760,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 11: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->UNKNOWN.read(iprot); this->__isset.UNKNOWN = true; } else { @@ -2039,7 +2768,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 12: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->JSON.read(iprot); this->__isset.JSON = true; } else { @@ -2047,7 +2776,7 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 13: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->BSON.read(iprot); this->__isset.BSON = true; } else { @@ -2055,13 +2784,21 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 14: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->UUID.read(iprot); this->__isset.UUID = true; } else { xfer += iprot->skip(ftype); } break; + case 15: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->FLOAT16.read(iprot); + this->__isset.FLOAT16 = true; + } else { + xfer += iprot->skip(ftype); + } + break; default: xfer += iprot->skip(ftype); break; @@ -2074,76 +2811,81 @@ uint32_t LogicalType::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t LogicalType::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t LogicalType::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("LogicalType"); if (this->__isset.STRING) { - xfer += oprot->writeFieldBegin("STRING", ::duckdb_apache::thrift::protocol::T_STRUCT, 1); + xfer += oprot->writeFieldBegin("STRING", ::apache::thrift::protocol::T_STRUCT, 1); xfer += this->STRING.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.MAP) { - xfer += oprot->writeFieldBegin("MAP", ::duckdb_apache::thrift::protocol::T_STRUCT, 2); + xfer += oprot->writeFieldBegin("MAP", ::apache::thrift::protocol::T_STRUCT, 2); xfer += this->MAP.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.LIST) { - xfer += oprot->writeFieldBegin("LIST", ::duckdb_apache::thrift::protocol::T_STRUCT, 3); + xfer += oprot->writeFieldBegin("LIST", ::apache::thrift::protocol::T_STRUCT, 3); xfer += this->LIST.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.ENUM) { - xfer += oprot->writeFieldBegin("ENUM", ::duckdb_apache::thrift::protocol::T_STRUCT, 4); + xfer += oprot->writeFieldBegin("ENUM", ::apache::thrift::protocol::T_STRUCT, 4); xfer += this->ENUM.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.DECIMAL) { - xfer += oprot->writeFieldBegin("DECIMAL", ::duckdb_apache::thrift::protocol::T_STRUCT, 5); + xfer += oprot->writeFieldBegin("DECIMAL", ::apache::thrift::protocol::T_STRUCT, 5); xfer += this->DECIMAL.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.DATE) { - xfer += oprot->writeFieldBegin("DATE", ::duckdb_apache::thrift::protocol::T_STRUCT, 6); + xfer += oprot->writeFieldBegin("DATE", ::apache::thrift::protocol::T_STRUCT, 6); xfer += this->DATE.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.TIME) { - xfer += oprot->writeFieldBegin("TIME", ::duckdb_apache::thrift::protocol::T_STRUCT, 7); + xfer += oprot->writeFieldBegin("TIME", ::apache::thrift::protocol::T_STRUCT, 7); xfer += this->TIME.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.TIMESTAMP) { - xfer += oprot->writeFieldBegin("TIMESTAMP", ::duckdb_apache::thrift::protocol::T_STRUCT, 8); + xfer += oprot->writeFieldBegin("TIMESTAMP", ::apache::thrift::protocol::T_STRUCT, 8); xfer += this->TIMESTAMP.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.INTEGER) { - xfer += oprot->writeFieldBegin("INTEGER", ::duckdb_apache::thrift::protocol::T_STRUCT, 10); + xfer += oprot->writeFieldBegin("INTEGER", ::apache::thrift::protocol::T_STRUCT, 10); xfer += this->INTEGER.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.UNKNOWN) { - xfer += oprot->writeFieldBegin("UNKNOWN", ::duckdb_apache::thrift::protocol::T_STRUCT, 11); + xfer += oprot->writeFieldBegin("UNKNOWN", ::apache::thrift::protocol::T_STRUCT, 11); xfer += this->UNKNOWN.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.JSON) { - xfer += oprot->writeFieldBegin("JSON", ::duckdb_apache::thrift::protocol::T_STRUCT, 12); + xfer += oprot->writeFieldBegin("JSON", ::apache::thrift::protocol::T_STRUCT, 12); xfer += this->JSON.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.BSON) { - xfer += oprot->writeFieldBegin("BSON", ::duckdb_apache::thrift::protocol::T_STRUCT, 13); + xfer += oprot->writeFieldBegin("BSON", ::apache::thrift::protocol::T_STRUCT, 13); xfer += this->BSON.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.UUID) { - xfer += oprot->writeFieldBegin("UUID", ::duckdb_apache::thrift::protocol::T_STRUCT, 14); + xfer += oprot->writeFieldBegin("UUID", ::apache::thrift::protocol::T_STRUCT, 14); xfer += this->UUID.write(oprot); xfer += oprot->writeFieldEnd(); } + if (this->__isset.FLOAT16) { + xfer += oprot->writeFieldBegin("FLOAT16", ::apache::thrift::protocol::T_STRUCT, 15); + xfer += this->FLOAT16.write(oprot); + xfer += oprot->writeFieldEnd(); + } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; @@ -2164,44 +2906,47 @@ void swap(LogicalType &a, LogicalType &b) { swap(a.JSON, b.JSON); swap(a.BSON, b.BSON); swap(a.UUID, b.UUID); + swap(a.FLOAT16, b.FLOAT16); swap(a.__isset, b.__isset); } -LogicalType::LogicalType(const LogicalType& other36) { - STRING = other36.STRING; - MAP = other36.MAP; - LIST = other36.LIST; - ENUM = other36.ENUM; - DECIMAL = other36.DECIMAL; - DATE = other36.DATE; - TIME = other36.TIME; - TIMESTAMP = other36.TIMESTAMP; - INTEGER = other36.INTEGER; - UNKNOWN = other36.UNKNOWN; - JSON = other36.JSON; - BSON = other36.BSON; - UUID = other36.UUID; - __isset = other36.__isset; -} -LogicalType& LogicalType::operator=(const LogicalType& other37) { - STRING = other37.STRING; - MAP = other37.MAP; - LIST = other37.LIST; - ENUM = other37.ENUM; - DECIMAL = other37.DECIMAL; - DATE = other37.DATE; - TIME = other37.TIME; - TIMESTAMP = other37.TIMESTAMP; - INTEGER = other37.INTEGER; - UNKNOWN = other37.UNKNOWN; - JSON = other37.JSON; - BSON = other37.BSON; - UUID = other37.UUID; - __isset = other37.__isset; +LogicalType::LogicalType(const LogicalType& other52) noexcept { + STRING = other52.STRING; + MAP = other52.MAP; + LIST = other52.LIST; + ENUM = other52.ENUM; + DECIMAL = other52.DECIMAL; + DATE = other52.DATE; + TIME = other52.TIME; + TIMESTAMP = other52.TIMESTAMP; + INTEGER = other52.INTEGER; + UNKNOWN = other52.UNKNOWN; + JSON = other52.JSON; + BSON = other52.BSON; + UUID = other52.UUID; + FLOAT16 = other52.FLOAT16; + __isset = other52.__isset; +} +LogicalType& LogicalType::operator=(const LogicalType& other53) noexcept { + STRING = other53.STRING; + MAP = other53.MAP; + LIST = other53.LIST; + ENUM = other53.ENUM; + DECIMAL = other53.DECIMAL; + DATE = other53.DATE; + TIME = other53.TIME; + TIMESTAMP = other53.TIMESTAMP; + INTEGER = other53.INTEGER; + UNKNOWN = other53.UNKNOWN; + JSON = other53.JSON; + BSON = other53.BSON; + UUID = other53.UUID; + FLOAT16 = other53.FLOAT16; + __isset = other53.__isset; return *this; } void LogicalType::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "LogicalType("; out << "STRING="; (__isset.STRING ? (out << to_string(STRING)) : (out << "")); out << ", " << "MAP="; (__isset.MAP ? (out << to_string(MAP)) : (out << "")); @@ -2216,13 +2961,25 @@ void LogicalType::printTo(std::ostream& out) const { out << ", " << "JSON="; (__isset.JSON ? (out << to_string(JSON)) : (out << "")); out << ", " << "BSON="; (__isset.BSON ? (out << to_string(BSON)) : (out << "")); out << ", " << "UUID="; (__isset.UUID ? (out << to_string(UUID)) : (out << "")); + out << ", " << "FLOAT16="; (__isset.FLOAT16 ? (out << to_string(FLOAT16)) : (out << "")); out << ")"; } -SchemaElement::~SchemaElement() throw() { +SchemaElement::~SchemaElement() noexcept { } +SchemaElement::SchemaElement() noexcept + : type(static_cast(0)), + type_length(0), + repetition_type(static_cast(0)), + name(), + num_children(0), + converted_type(static_cast(0)), + scale(0), + precision(0), + field_id(0) { +} void SchemaElement::__set_type(const Type::type val) { this->type = val; @@ -2279,40 +3036,40 @@ std::ostream& operator<<(std::ostream& out, const SchemaElement& obj) } -uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t SchemaElement::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_name = false; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast38; - xfer += iprot->readI32(ecast38); - this->type = (Type::type)ecast38; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast54; + xfer += iprot->readI32(ecast54); + this->type = static_cast(ecast54); this->__isset.type = true; } else { xfer += iprot->skip(ftype); } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->type_length); this->__isset.type_length = true; } else { @@ -2320,17 +3077,17 @@ uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast39; - xfer += iprot->readI32(ecast39); - this->repetition_type = (FieldRepetitionType::type)ecast39; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast55; + xfer += iprot->readI32(ecast55); + this->repetition_type = static_cast(ecast55); this->__isset.repetition_type = true; } else { xfer += iprot->skip(ftype); } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->name); isset_name = true; } else { @@ -2338,7 +3095,7 @@ uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->num_children); this->__isset.num_children = true; } else { @@ -2346,17 +3103,17 @@ uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast40; - xfer += iprot->readI32(ecast40); - this->converted_type = (ConvertedType::type)ecast40; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast56; + xfer += iprot->readI32(ecast56); + this->converted_type = static_cast(ecast56); this->__isset.converted_type = true; } else { xfer += iprot->skip(ftype); } break; case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->scale); this->__isset.scale = true; } else { @@ -2364,7 +3121,7 @@ uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 8: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->precision); this->__isset.precision = true; } else { @@ -2372,7 +3129,7 @@ uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 9: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->field_id); this->__isset.field_id = true; } else { @@ -2380,7 +3137,7 @@ uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 10: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->logicalType.read(iprot); this->__isset.logicalType = true; } else { @@ -2401,57 +3158,57 @@ uint32_t SchemaElement::read(::duckdb_apache::thrift::protocol::TProtocol* iprot return xfer; } -uint32_t SchemaElement::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t SchemaElement::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("SchemaElement"); if (this->__isset.type) { - xfer += oprot->writeFieldBegin("type", ::duckdb_apache::thrift::protocol::T_I32, 1); - xfer += oprot->writeI32((int32_t)this->type); + xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeI32(static_cast(this->type)); xfer += oprot->writeFieldEnd(); } if (this->__isset.type_length) { - xfer += oprot->writeFieldBegin("type_length", ::duckdb_apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeFieldBegin("type_length", ::apache::thrift::protocol::T_I32, 2); xfer += oprot->writeI32(this->type_length); xfer += oprot->writeFieldEnd(); } if (this->__isset.repetition_type) { - xfer += oprot->writeFieldBegin("repetition_type", ::duckdb_apache::thrift::protocol::T_I32, 3); - xfer += oprot->writeI32((int32_t)this->repetition_type); + xfer += oprot->writeFieldBegin("repetition_type", ::apache::thrift::protocol::T_I32, 3); + xfer += oprot->writeI32(static_cast(this->repetition_type)); xfer += oprot->writeFieldEnd(); } - xfer += oprot->writeFieldBegin("name", ::duckdb_apache::thrift::protocol::T_STRING, 4); + xfer += oprot->writeFieldBegin("name", ::apache::thrift::protocol::T_STRING, 4); xfer += oprot->writeString(this->name); xfer += oprot->writeFieldEnd(); if (this->__isset.num_children) { - xfer += oprot->writeFieldBegin("num_children", ::duckdb_apache::thrift::protocol::T_I32, 5); + xfer += oprot->writeFieldBegin("num_children", ::apache::thrift::protocol::T_I32, 5); xfer += oprot->writeI32(this->num_children); xfer += oprot->writeFieldEnd(); } if (this->__isset.converted_type) { - xfer += oprot->writeFieldBegin("converted_type", ::duckdb_apache::thrift::protocol::T_I32, 6); - xfer += oprot->writeI32((int32_t)this->converted_type); + xfer += oprot->writeFieldBegin("converted_type", ::apache::thrift::protocol::T_I32, 6); + xfer += oprot->writeI32(static_cast(this->converted_type)); xfer += oprot->writeFieldEnd(); } if (this->__isset.scale) { - xfer += oprot->writeFieldBegin("scale", ::duckdb_apache::thrift::protocol::T_I32, 7); + xfer += oprot->writeFieldBegin("scale", ::apache::thrift::protocol::T_I32, 7); xfer += oprot->writeI32(this->scale); xfer += oprot->writeFieldEnd(); } if (this->__isset.precision) { - xfer += oprot->writeFieldBegin("precision", ::duckdb_apache::thrift::protocol::T_I32, 8); + xfer += oprot->writeFieldBegin("precision", ::apache::thrift::protocol::T_I32, 8); xfer += oprot->writeI32(this->precision); xfer += oprot->writeFieldEnd(); } if (this->__isset.field_id) { - xfer += oprot->writeFieldBegin("field_id", ::duckdb_apache::thrift::protocol::T_I32, 9); + xfer += oprot->writeFieldBegin("field_id", ::apache::thrift::protocol::T_I32, 9); xfer += oprot->writeI32(this->field_id); xfer += oprot->writeFieldEnd(); } if (this->__isset.logicalType) { - xfer += oprot->writeFieldBegin("logicalType", ::duckdb_apache::thrift::protocol::T_STRUCT, 10); + xfer += oprot->writeFieldBegin("logicalType", ::apache::thrift::protocol::T_STRUCT, 10); xfer += this->logicalType.write(oprot); xfer += oprot->writeFieldEnd(); } @@ -2475,35 +3232,35 @@ void swap(SchemaElement &a, SchemaElement &b) { swap(a.__isset, b.__isset); } -SchemaElement::SchemaElement(const SchemaElement& other41) { - type = other41.type; - type_length = other41.type_length; - repetition_type = other41.repetition_type; - name = other41.name; - num_children = other41.num_children; - converted_type = other41.converted_type; - scale = other41.scale; - precision = other41.precision; - field_id = other41.field_id; - logicalType = other41.logicalType; - __isset = other41.__isset; +SchemaElement::SchemaElement(const SchemaElement& other57) { + type = other57.type; + type_length = other57.type_length; + repetition_type = other57.repetition_type; + name = other57.name; + num_children = other57.num_children; + converted_type = other57.converted_type; + scale = other57.scale; + precision = other57.precision; + field_id = other57.field_id; + logicalType = other57.logicalType; + __isset = other57.__isset; } -SchemaElement& SchemaElement::operator=(const SchemaElement& other42) { - type = other42.type; - type_length = other42.type_length; - repetition_type = other42.repetition_type; - name = other42.name; - num_children = other42.num_children; - converted_type = other42.converted_type; - scale = other42.scale; - precision = other42.precision; - field_id = other42.field_id; - logicalType = other42.logicalType; - __isset = other42.__isset; +SchemaElement& SchemaElement::operator=(const SchemaElement& other58) { + type = other58.type; + type_length = other58.type_length; + repetition_type = other58.repetition_type; + name = other58.name; + num_children = other58.num_children; + converted_type = other58.converted_type; + scale = other58.scale; + precision = other58.precision; + field_id = other58.field_id; + logicalType = other58.logicalType; + __isset = other58.__isset; return *this; } void SchemaElement::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "SchemaElement("; out << "type="; (__isset.type ? (out << to_string(type)) : (out << "")); out << ", " << "type_length="; (__isset.type_length ? (out << to_string(type_length)) : (out << "")); @@ -2519,9 +3276,15 @@ void SchemaElement::printTo(std::ostream& out) const { } -DataPageHeader::~DataPageHeader() throw() { +DataPageHeader::~DataPageHeader() noexcept { } +DataPageHeader::DataPageHeader() noexcept + : num_values(0), + encoding(static_cast(0)), + definition_level_encoding(static_cast(0)), + repetition_level_encoding(static_cast(0)) { +} void DataPageHeader::__set_num_values(const int32_t val) { this->num_values = val; @@ -2550,17 +3313,17 @@ std::ostream& operator<<(std::ostream& out, const DataPageHeader& obj) } -uint32_t DataPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t DataPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_num_values = false; bool isset_encoding = false; @@ -2570,13 +3333,13 @@ uint32_t DataPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* ipro while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->num_values); isset_num_values = true; } else { @@ -2584,37 +3347,37 @@ uint32_t DataPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast43; - xfer += iprot->readI32(ecast43); - this->encoding = (Encoding::type)ecast43; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast59; + xfer += iprot->readI32(ecast59); + this->encoding = static_cast(ecast59); isset_encoding = true; } else { xfer += iprot->skip(ftype); } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast44; - xfer += iprot->readI32(ecast44); - this->definition_level_encoding = (Encoding::type)ecast44; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast60; + xfer += iprot->readI32(ecast60); + this->definition_level_encoding = static_cast(ecast60); isset_definition_level_encoding = true; } else { xfer += iprot->skip(ftype); } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast45; - xfer += iprot->readI32(ecast45); - this->repetition_level_encoding = (Encoding::type)ecast45; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast61; + xfer += iprot->readI32(ecast61); + this->repetition_level_encoding = static_cast(ecast61); isset_repetition_level_encoding = true; } else { xfer += iprot->skip(ftype); } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->statistics.read(iprot); this->__isset.statistics = true; } else { @@ -2641,29 +3404,29 @@ uint32_t DataPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* ipro return xfer; } -uint32_t DataPageHeader::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t DataPageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("DataPageHeader"); - xfer += oprot->writeFieldBegin("num_values", ::duckdb_apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I32, 1); xfer += oprot->writeI32(this->num_values); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("encoding", ::duckdb_apache::thrift::protocol::T_I32, 2); - xfer += oprot->writeI32((int32_t)this->encoding); + xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeI32(static_cast(this->encoding)); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("definition_level_encoding", ::duckdb_apache::thrift::protocol::T_I32, 3); - xfer += oprot->writeI32((int32_t)this->definition_level_encoding); + xfer += oprot->writeFieldBegin("definition_level_encoding", ::apache::thrift::protocol::T_I32, 3); + xfer += oprot->writeI32(static_cast(this->definition_level_encoding)); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("repetition_level_encoding", ::duckdb_apache::thrift::protocol::T_I32, 4); - xfer += oprot->writeI32((int32_t)this->repetition_level_encoding); + xfer += oprot->writeFieldBegin("repetition_level_encoding", ::apache::thrift::protocol::T_I32, 4); + xfer += oprot->writeI32(static_cast(this->repetition_level_encoding)); xfer += oprot->writeFieldEnd(); if (this->__isset.statistics) { - xfer += oprot->writeFieldBegin("statistics", ::duckdb_apache::thrift::protocol::T_STRUCT, 5); + xfer += oprot->writeFieldBegin("statistics", ::apache::thrift::protocol::T_STRUCT, 5); xfer += this->statistics.write(oprot); xfer += oprot->writeFieldEnd(); } @@ -2682,25 +3445,25 @@ void swap(DataPageHeader &a, DataPageHeader &b) { swap(a.__isset, b.__isset); } -DataPageHeader::DataPageHeader(const DataPageHeader& other46) { - num_values = other46.num_values; - encoding = other46.encoding; - definition_level_encoding = other46.definition_level_encoding; - repetition_level_encoding = other46.repetition_level_encoding; - statistics = other46.statistics; - __isset = other46.__isset; -} -DataPageHeader& DataPageHeader::operator=(const DataPageHeader& other47) { - num_values = other47.num_values; - encoding = other47.encoding; - definition_level_encoding = other47.definition_level_encoding; - repetition_level_encoding = other47.repetition_level_encoding; - statistics = other47.statistics; - __isset = other47.__isset; +DataPageHeader::DataPageHeader(const DataPageHeader& other62) { + num_values = other62.num_values; + encoding = other62.encoding; + definition_level_encoding = other62.definition_level_encoding; + repetition_level_encoding = other62.repetition_level_encoding; + statistics = other62.statistics; + __isset = other62.__isset; +} +DataPageHeader& DataPageHeader::operator=(const DataPageHeader& other63) { + num_values = other63.num_values; + encoding = other63.encoding; + definition_level_encoding = other63.definition_level_encoding; + repetition_level_encoding = other63.repetition_level_encoding; + statistics = other63.statistics; + __isset = other63.__isset; return *this; } void DataPageHeader::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "DataPageHeader("; out << "num_values=" << to_string(num_values); out << ", " << "encoding=" << to_string(encoding); @@ -2711,9 +3474,11 @@ void DataPageHeader::printTo(std::ostream& out) const { } -IndexPageHeader::~IndexPageHeader() throw() { +IndexPageHeader::~IndexPageHeader() noexcept { } +IndexPageHeader::IndexPageHeader() noexcept { +} std::ostream& operator<<(std::ostream& out, const IndexPageHeader& obj) { obj.printTo(out); @@ -2721,23 +3486,23 @@ std::ostream& operator<<(std::ostream& out, const IndexPageHeader& obj) } -uint32_t IndexPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t IndexPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -2749,9 +3514,9 @@ uint32_t IndexPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* ipr return xfer; } -uint32_t IndexPageHeader::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t IndexPageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("IndexPageHeader"); xfer += oprot->writeFieldStop(); @@ -2765,23 +3530,28 @@ void swap(IndexPageHeader &a, IndexPageHeader &b) { (void) b; } -IndexPageHeader::IndexPageHeader(const IndexPageHeader& other48) { - (void) other48; +IndexPageHeader::IndexPageHeader(const IndexPageHeader& other64) noexcept { + (void) other64; } -IndexPageHeader& IndexPageHeader::operator=(const IndexPageHeader& other49) { - (void) other49; +IndexPageHeader& IndexPageHeader::operator=(const IndexPageHeader& other65) noexcept { + (void) other65; return *this; } void IndexPageHeader::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "IndexPageHeader("; out << ")"; } -DictionaryPageHeader::~DictionaryPageHeader() throw() { +DictionaryPageHeader::~DictionaryPageHeader() noexcept { } +DictionaryPageHeader::DictionaryPageHeader() noexcept + : num_values(0), + encoding(static_cast(0)), + is_sorted(0) { +} void DictionaryPageHeader::__set_num_values(const int32_t val) { this->num_values = val; @@ -2802,17 +3572,17 @@ std::ostream& operator<<(std::ostream& out, const DictionaryPageHeader& obj) } -uint32_t DictionaryPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t DictionaryPageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_num_values = false; bool isset_encoding = false; @@ -2820,13 +3590,13 @@ uint32_t DictionaryPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->num_values); isset_num_values = true; } else { @@ -2834,17 +3604,17 @@ uint32_t DictionaryPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast50; - xfer += iprot->readI32(ecast50); - this->encoding = (Encoding::type)ecast50; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast66; + xfer += iprot->readI32(ecast66); + this->encoding = static_cast(ecast66); isset_encoding = true; } else { xfer += iprot->skip(ftype); } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->is_sorted); this->__isset.is_sorted = true; } else { @@ -2867,21 +3637,21 @@ uint32_t DictionaryPageHeader::read(::duckdb_apache::thrift::protocol::TProtocol return xfer; } -uint32_t DictionaryPageHeader::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t DictionaryPageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("DictionaryPageHeader"); - xfer += oprot->writeFieldBegin("num_values", ::duckdb_apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I32, 1); xfer += oprot->writeI32(this->num_values); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("encoding", ::duckdb_apache::thrift::protocol::T_I32, 2); - xfer += oprot->writeI32((int32_t)this->encoding); + xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeI32(static_cast(this->encoding)); xfer += oprot->writeFieldEnd(); if (this->__isset.is_sorted) { - xfer += oprot->writeFieldBegin("is_sorted", ::duckdb_apache::thrift::protocol::T_BOOL, 3); + xfer += oprot->writeFieldBegin("is_sorted", ::apache::thrift::protocol::T_BOOL, 3); xfer += oprot->writeBool(this->is_sorted); xfer += oprot->writeFieldEnd(); } @@ -2898,21 +3668,21 @@ void swap(DictionaryPageHeader &a, DictionaryPageHeader &b) { swap(a.__isset, b.__isset); } -DictionaryPageHeader::DictionaryPageHeader(const DictionaryPageHeader& other51) { - num_values = other51.num_values; - encoding = other51.encoding; - is_sorted = other51.is_sorted; - __isset = other51.__isset; +DictionaryPageHeader::DictionaryPageHeader(const DictionaryPageHeader& other67) noexcept { + num_values = other67.num_values; + encoding = other67.encoding; + is_sorted = other67.is_sorted; + __isset = other67.__isset; } -DictionaryPageHeader& DictionaryPageHeader::operator=(const DictionaryPageHeader& other52) { - num_values = other52.num_values; - encoding = other52.encoding; - is_sorted = other52.is_sorted; - __isset = other52.__isset; +DictionaryPageHeader& DictionaryPageHeader::operator=(const DictionaryPageHeader& other68) noexcept { + num_values = other68.num_values; + encoding = other68.encoding; + is_sorted = other68.is_sorted; + __isset = other68.__isset; return *this; } void DictionaryPageHeader::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "DictionaryPageHeader("; out << "num_values=" << to_string(num_values); out << ", " << "encoding=" << to_string(encoding); @@ -2920,140 +3690,852 @@ void DictionaryPageHeader::printTo(std::ostream& out) const { out << ")"; } - -DataPageHeaderV2::~DataPageHeaderV2() throw() { + +DataPageHeaderV2::~DataPageHeaderV2() noexcept { +} + +DataPageHeaderV2::DataPageHeaderV2() noexcept + : num_values(0), + num_nulls(0), + num_rows(0), + encoding(static_cast(0)), + definition_levels_byte_length(0), + repetition_levels_byte_length(0), + is_compressed(true) { +} + +void DataPageHeaderV2::__set_num_values(const int32_t val) { + this->num_values = val; +} + +void DataPageHeaderV2::__set_num_nulls(const int32_t val) { + this->num_nulls = val; +} + +void DataPageHeaderV2::__set_num_rows(const int32_t val) { + this->num_rows = val; +} + +void DataPageHeaderV2::__set_encoding(const Encoding::type val) { + this->encoding = val; +} + +void DataPageHeaderV2::__set_definition_levels_byte_length(const int32_t val) { + this->definition_levels_byte_length = val; +} + +void DataPageHeaderV2::__set_repetition_levels_byte_length(const int32_t val) { + this->repetition_levels_byte_length = val; +} + +void DataPageHeaderV2::__set_is_compressed(const bool val) { + this->is_compressed = val; +__isset.is_compressed = true; +} + +void DataPageHeaderV2::__set_statistics(const Statistics& val) { + this->statistics = val; +__isset.statistics = true; +} +std::ostream& operator<<(std::ostream& out, const DataPageHeaderV2& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t DataPageHeaderV2::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + bool isset_num_values = false; + bool isset_num_nulls = false; + bool isset_num_rows = false; + bool isset_encoding = false; + bool isset_definition_levels_byte_length = false; + bool isset_repetition_levels_byte_length = false; + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->num_values); + isset_num_values = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 2: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->num_nulls); + isset_num_nulls = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 3: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->num_rows); + isset_num_rows = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 4: + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast69; + xfer += iprot->readI32(ecast69); + this->encoding = static_cast(ecast69); + isset_encoding = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 5: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->definition_levels_byte_length); + isset_definition_levels_byte_length = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 6: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->repetition_levels_byte_length); + isset_repetition_levels_byte_length = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 7: + if (ftype == ::apache::thrift::protocol::T_BOOL) { + xfer += iprot->readBool(this->is_compressed); + this->__isset.is_compressed = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 8: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->statistics.read(iprot); + this->__isset.statistics = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + if (!isset_num_values) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_num_nulls) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_num_rows) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_encoding) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_definition_levels_byte_length) + throw TProtocolException(TProtocolException::INVALID_DATA); + if (!isset_repetition_levels_byte_length) + throw TProtocolException(TProtocolException::INVALID_DATA); + return xfer; +} + +uint32_t DataPageHeaderV2::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("DataPageHeaderV2"); + + xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeI32(this->num_values); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldBegin("num_nulls", ::apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeI32(this->num_nulls); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldBegin("num_rows", ::apache::thrift::protocol::T_I32, 3); + xfer += oprot->writeI32(this->num_rows); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 4); + xfer += oprot->writeI32(static_cast(this->encoding)); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldBegin("definition_levels_byte_length", ::apache::thrift::protocol::T_I32, 5); + xfer += oprot->writeI32(this->definition_levels_byte_length); + xfer += oprot->writeFieldEnd(); + + xfer += oprot->writeFieldBegin("repetition_levels_byte_length", ::apache::thrift::protocol::T_I32, 6); + xfer += oprot->writeI32(this->repetition_levels_byte_length); + xfer += oprot->writeFieldEnd(); + + if (this->__isset.is_compressed) { + xfer += oprot->writeFieldBegin("is_compressed", ::apache::thrift::protocol::T_BOOL, 7); + xfer += oprot->writeBool(this->is_compressed); + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.statistics) { + xfer += oprot->writeFieldBegin("statistics", ::apache::thrift::protocol::T_STRUCT, 8); + xfer += this->statistics.write(oprot); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b) { + using ::std::swap; + swap(a.num_values, b.num_values); + swap(a.num_nulls, b.num_nulls); + swap(a.num_rows, b.num_rows); + swap(a.encoding, b.encoding); + swap(a.definition_levels_byte_length, b.definition_levels_byte_length); + swap(a.repetition_levels_byte_length, b.repetition_levels_byte_length); + swap(a.is_compressed, b.is_compressed); + swap(a.statistics, b.statistics); + swap(a.__isset, b.__isset); +} + +DataPageHeaderV2::DataPageHeaderV2(const DataPageHeaderV2& other70) { + num_values = other70.num_values; + num_nulls = other70.num_nulls; + num_rows = other70.num_rows; + encoding = other70.encoding; + definition_levels_byte_length = other70.definition_levels_byte_length; + repetition_levels_byte_length = other70.repetition_levels_byte_length; + is_compressed = other70.is_compressed; + statistics = other70.statistics; + __isset = other70.__isset; +} +DataPageHeaderV2& DataPageHeaderV2::operator=(const DataPageHeaderV2& other71) { + num_values = other71.num_values; + num_nulls = other71.num_nulls; + num_rows = other71.num_rows; + encoding = other71.encoding; + definition_levels_byte_length = other71.definition_levels_byte_length; + repetition_levels_byte_length = other71.repetition_levels_byte_length; + is_compressed = other71.is_compressed; + statistics = other71.statistics; + __isset = other71.__isset; + return *this; +} +void DataPageHeaderV2::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "DataPageHeaderV2("; + out << "num_values=" << to_string(num_values); + out << ", " << "num_nulls=" << to_string(num_nulls); + out << ", " << "num_rows=" << to_string(num_rows); + out << ", " << "encoding=" << to_string(encoding); + out << ", " << "definition_levels_byte_length=" << to_string(definition_levels_byte_length); + out << ", " << "repetition_levels_byte_length=" << to_string(repetition_levels_byte_length); + out << ", " << "is_compressed="; (__isset.is_compressed ? (out << to_string(is_compressed)) : (out << "")); + out << ", " << "statistics="; (__isset.statistics ? (out << to_string(statistics)) : (out << "")); + out << ")"; +} + + +SplitBlockAlgorithm::~SplitBlockAlgorithm() noexcept { +} + +SplitBlockAlgorithm::SplitBlockAlgorithm() noexcept { +} +std::ostream& operator<<(std::ostream& out, const SplitBlockAlgorithm& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t SplitBlockAlgorithm::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + xfer += iprot->skip(ftype); + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t SplitBlockAlgorithm::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("SplitBlockAlgorithm"); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(SplitBlockAlgorithm &a, SplitBlockAlgorithm &b) { + using ::std::swap; + (void) a; + (void) b; +} + +SplitBlockAlgorithm::SplitBlockAlgorithm(const SplitBlockAlgorithm& other72) noexcept { + (void) other72; +} +SplitBlockAlgorithm& SplitBlockAlgorithm::operator=(const SplitBlockAlgorithm& other73) noexcept { + (void) other73; + return *this; +} +void SplitBlockAlgorithm::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "SplitBlockAlgorithm("; + out << ")"; +} + + +BloomFilterAlgorithm::~BloomFilterAlgorithm() noexcept { +} + +BloomFilterAlgorithm::BloomFilterAlgorithm() noexcept { +} + +void BloomFilterAlgorithm::__set_BLOCK(const SplitBlockAlgorithm& val) { + this->BLOCK = val; +__isset.BLOCK = true; +} +std::ostream& operator<<(std::ostream& out, const BloomFilterAlgorithm& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t BloomFilterAlgorithm::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->BLOCK.read(iprot); + this->__isset.BLOCK = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t BloomFilterAlgorithm::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("BloomFilterAlgorithm"); + + if (this->__isset.BLOCK) { + xfer += oprot->writeFieldBegin("BLOCK", ::apache::thrift::protocol::T_STRUCT, 1); + xfer += this->BLOCK.write(oprot); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(BloomFilterAlgorithm &a, BloomFilterAlgorithm &b) { + using ::std::swap; + swap(a.BLOCK, b.BLOCK); + swap(a.__isset, b.__isset); +} + +BloomFilterAlgorithm::BloomFilterAlgorithm(const BloomFilterAlgorithm& other74) noexcept { + BLOCK = other74.BLOCK; + __isset = other74.__isset; +} +BloomFilterAlgorithm& BloomFilterAlgorithm::operator=(const BloomFilterAlgorithm& other75) noexcept { + BLOCK = other75.BLOCK; + __isset = other75.__isset; + return *this; +} +void BloomFilterAlgorithm::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "BloomFilterAlgorithm("; + out << "BLOCK="; (__isset.BLOCK ? (out << to_string(BLOCK)) : (out << "")); + out << ")"; +} + + +XxHash::~XxHash() noexcept { +} + +XxHash::XxHash() noexcept { +} +std::ostream& operator<<(std::ostream& out, const XxHash& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t XxHash::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + xfer += iprot->skip(ftype); + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t XxHash::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("XxHash"); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(XxHash &a, XxHash &b) { + using ::std::swap; + (void) a; + (void) b; +} + +XxHash::XxHash(const XxHash& other76) noexcept { + (void) other76; +} +XxHash& XxHash::operator=(const XxHash& other77) noexcept { + (void) other77; + return *this; +} +void XxHash::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "XxHash("; + out << ")"; +} + + +BloomFilterHash::~BloomFilterHash() noexcept { +} + +BloomFilterHash::BloomFilterHash() noexcept { +} + +void BloomFilterHash::__set_XXHASH(const XxHash& val) { + this->XXHASH = val; +__isset.XXHASH = true; +} +std::ostream& operator<<(std::ostream& out, const BloomFilterHash& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t BloomFilterHash::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->XXHASH.read(iprot); + this->__isset.XXHASH = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t BloomFilterHash::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("BloomFilterHash"); + + if (this->__isset.XXHASH) { + xfer += oprot->writeFieldBegin("XXHASH", ::apache::thrift::protocol::T_STRUCT, 1); + xfer += this->XXHASH.write(oprot); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(BloomFilterHash &a, BloomFilterHash &b) { + using ::std::swap; + swap(a.XXHASH, b.XXHASH); + swap(a.__isset, b.__isset); +} + +BloomFilterHash::BloomFilterHash(const BloomFilterHash& other78) noexcept { + XXHASH = other78.XXHASH; + __isset = other78.__isset; +} +BloomFilterHash& BloomFilterHash::operator=(const BloomFilterHash& other79) noexcept { + XXHASH = other79.XXHASH; + __isset = other79.__isset; + return *this; +} +void BloomFilterHash::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "BloomFilterHash("; + out << "XXHASH="; (__isset.XXHASH ? (out << to_string(XXHASH)) : (out << "")); + out << ")"; +} + + +Uncompressed::~Uncompressed() noexcept { +} + +Uncompressed::Uncompressed() noexcept { +} +std::ostream& operator<<(std::ostream& out, const Uncompressed& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t Uncompressed::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + xfer += iprot->skip(ftype); + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t Uncompressed::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("Uncompressed"); + + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(Uncompressed &a, Uncompressed &b) { + using ::std::swap; + (void) a; + (void) b; +} + +Uncompressed::Uncompressed(const Uncompressed& other80) noexcept { + (void) other80; +} +Uncompressed& Uncompressed::operator=(const Uncompressed& other81) noexcept { + (void) other81; + return *this; +} +void Uncompressed::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "Uncompressed("; + out << ")"; +} + + +BloomFilterCompression::~BloomFilterCompression() noexcept { +} + +BloomFilterCompression::BloomFilterCompression() noexcept { +} + +void BloomFilterCompression::__set_UNCOMPRESSED(const Uncompressed& val) { + this->UNCOMPRESSED = val; +__isset.UNCOMPRESSED = true; +} +std::ostream& operator<<(std::ostream& out, const BloomFilterCompression& obj) +{ + obj.printTo(out); + return out; +} + + +uint32_t BloomFilterCompression::read(::apache::thrift::protocol::TProtocol* iprot) { + + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + uint32_t xfer = 0; + std::string fname; + ::apache::thrift::protocol::TType ftype; + int16_t fid; + + xfer += iprot->readStructBegin(fname); + + using ::apache::thrift::protocol::TProtocolException; + + + while (true) + { + xfer += iprot->readFieldBegin(fname, ftype, fid); + if (ftype == ::apache::thrift::protocol::T_STOP) { + break; + } + switch (fid) + { + case 1: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->UNCOMPRESSED.read(iprot); + this->__isset.UNCOMPRESSED = true; + } else { + xfer += iprot->skip(ftype); + } + break; + default: + xfer += iprot->skip(ftype); + break; + } + xfer += iprot->readFieldEnd(); + } + + xfer += iprot->readStructEnd(); + + return xfer; +} + +uint32_t BloomFilterCompression::write(::apache::thrift::protocol::TProtocol* oprot) const { + uint32_t xfer = 0; + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("BloomFilterCompression"); + + if (this->__isset.UNCOMPRESSED) { + xfer += oprot->writeFieldBegin("UNCOMPRESSED", ::apache::thrift::protocol::T_STRUCT, 1); + xfer += this->UNCOMPRESSED.write(oprot); + xfer += oprot->writeFieldEnd(); + } + xfer += oprot->writeFieldStop(); + xfer += oprot->writeStructEnd(); + return xfer; +} + +void swap(BloomFilterCompression &a, BloomFilterCompression &b) { + using ::std::swap; + swap(a.UNCOMPRESSED, b.UNCOMPRESSED); + swap(a.__isset, b.__isset); } - -void DataPageHeaderV2::__set_num_values(const int32_t val) { - this->num_values = val; +BloomFilterCompression::BloomFilterCompression(const BloomFilterCompression& other82) noexcept { + UNCOMPRESSED = other82.UNCOMPRESSED; + __isset = other82.__isset; } - -void DataPageHeaderV2::__set_num_nulls(const int32_t val) { - this->num_nulls = val; +BloomFilterCompression& BloomFilterCompression::operator=(const BloomFilterCompression& other83) noexcept { + UNCOMPRESSED = other83.UNCOMPRESSED; + __isset = other83.__isset; + return *this; +} +void BloomFilterCompression::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "BloomFilterCompression("; + out << "UNCOMPRESSED="; (__isset.UNCOMPRESSED ? (out << to_string(UNCOMPRESSED)) : (out << "")); + out << ")"; } -void DataPageHeaderV2::__set_num_rows(const int32_t val) { - this->num_rows = val; + +BloomFilterHeader::~BloomFilterHeader() noexcept { } -void DataPageHeaderV2::__set_encoding(const Encoding::type val) { - this->encoding = val; +BloomFilterHeader::BloomFilterHeader() noexcept + : numBytes(0) { } -void DataPageHeaderV2::__set_definition_levels_byte_length(const int32_t val) { - this->definition_levels_byte_length = val; +void BloomFilterHeader::__set_numBytes(const int32_t val) { + this->numBytes = val; } -void DataPageHeaderV2::__set_repetition_levels_byte_length(const int32_t val) { - this->repetition_levels_byte_length = val; +void BloomFilterHeader::__set_algorithm(const BloomFilterAlgorithm& val) { + this->algorithm = val; } -void DataPageHeaderV2::__set_is_compressed(const bool val) { - this->is_compressed = val; -__isset.is_compressed = true; +void BloomFilterHeader::__set_hash(const BloomFilterHash& val) { + this->hash = val; } -void DataPageHeaderV2::__set_statistics(const Statistics& val) { - this->statistics = val; -__isset.statistics = true; +void BloomFilterHeader::__set_compression(const BloomFilterCompression& val) { + this->compression = val; } -std::ostream& operator<<(std::ostream& out, const DataPageHeaderV2& obj) +std::ostream& operator<<(std::ostream& out, const BloomFilterHeader& obj) { obj.printTo(out); return out; } -uint32_t DataPageHeaderV2::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t BloomFilterHeader::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; - bool isset_num_values = false; - bool isset_num_nulls = false; - bool isset_num_rows = false; - bool isset_encoding = false; - bool isset_definition_levels_byte_length = false; - bool isset_repetition_levels_byte_length = false; + bool isset_numBytes = false; + bool isset_algorithm = false; + bool isset_hash = false; + bool isset_compression = false; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - xfer += iprot->readI32(this->num_values); - isset_num_values = true; + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->numBytes); + isset_numBytes = true; } else { xfer += iprot->skip(ftype); } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - xfer += iprot->readI32(this->num_nulls); - isset_num_nulls = true; + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->algorithm.read(iprot); + isset_algorithm = true; } else { xfer += iprot->skip(ftype); } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - xfer += iprot->readI32(this->num_rows); - isset_num_rows = true; + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->hash.read(iprot); + isset_hash = true; } else { xfer += iprot->skip(ftype); } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast53; - xfer += iprot->readI32(ecast53); - this->encoding = (Encoding::type)ecast53; - isset_encoding = true; - } else { - xfer += iprot->skip(ftype); - } - break; - case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - xfer += iprot->readI32(this->definition_levels_byte_length); - isset_definition_levels_byte_length = true; - } else { - xfer += iprot->skip(ftype); - } - break; - case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - xfer += iprot->readI32(this->repetition_levels_byte_length); - isset_repetition_levels_byte_length = true; - } else { - xfer += iprot->skip(ftype); - } - break; - case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { - xfer += iprot->readBool(this->is_compressed); - this->__isset.is_compressed = true; - } else { - xfer += iprot->skip(ftype); - } - break; - case 8: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { - xfer += this->statistics.read(iprot); - this->__isset.statistics = true; + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->compression.read(iprot); + isset_compression = true; } else { xfer += iprot->skip(ftype); } @@ -3067,119 +4549,84 @@ uint32_t DataPageHeaderV2::read(::duckdb_apache::thrift::protocol::TProtocol* ip xfer += iprot->readStructEnd(); - if (!isset_num_values) - throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_num_nulls) - throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_num_rows) + if (!isset_numBytes) throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_encoding) + if (!isset_algorithm) throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_definition_levels_byte_length) + if (!isset_hash) throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_repetition_levels_byte_length) + if (!isset_compression) throw TProtocolException(TProtocolException::INVALID_DATA); return xfer; } -uint32_t DataPageHeaderV2::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t BloomFilterHeader::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); - xfer += oprot->writeStructBegin("DataPageHeaderV2"); - - xfer += oprot->writeFieldBegin("num_values", ::duckdb_apache::thrift::protocol::T_I32, 1); - xfer += oprot->writeI32(this->num_values); - xfer += oprot->writeFieldEnd(); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + xfer += oprot->writeStructBegin("BloomFilterHeader"); - xfer += oprot->writeFieldBegin("num_nulls", ::duckdb_apache::thrift::protocol::T_I32, 2); - xfer += oprot->writeI32(this->num_nulls); - xfer += oprot->writeFieldEnd(); - - xfer += oprot->writeFieldBegin("num_rows", ::duckdb_apache::thrift::protocol::T_I32, 3); - xfer += oprot->writeI32(this->num_rows); + xfer += oprot->writeFieldBegin("numBytes", ::apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeI32(this->numBytes); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("encoding", ::duckdb_apache::thrift::protocol::T_I32, 4); - xfer += oprot->writeI32((int32_t)this->encoding); + xfer += oprot->writeFieldBegin("algorithm", ::apache::thrift::protocol::T_STRUCT, 2); + xfer += this->algorithm.write(oprot); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("definition_levels_byte_length", ::duckdb_apache::thrift::protocol::T_I32, 5); - xfer += oprot->writeI32(this->definition_levels_byte_length); + xfer += oprot->writeFieldBegin("hash", ::apache::thrift::protocol::T_STRUCT, 3); + xfer += this->hash.write(oprot); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("repetition_levels_byte_length", ::duckdb_apache::thrift::protocol::T_I32, 6); - xfer += oprot->writeI32(this->repetition_levels_byte_length); + xfer += oprot->writeFieldBegin("compression", ::apache::thrift::protocol::T_STRUCT, 4); + xfer += this->compression.write(oprot); xfer += oprot->writeFieldEnd(); - if (this->__isset.is_compressed) { - xfer += oprot->writeFieldBegin("is_compressed", ::duckdb_apache::thrift::protocol::T_BOOL, 7); - xfer += oprot->writeBool(this->is_compressed); - xfer += oprot->writeFieldEnd(); - } - if (this->__isset.statistics) { - xfer += oprot->writeFieldBegin("statistics", ::duckdb_apache::thrift::protocol::T_STRUCT, 8); - xfer += this->statistics.write(oprot); - xfer += oprot->writeFieldEnd(); - } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; } -void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b) { +void swap(BloomFilterHeader &a, BloomFilterHeader &b) { using ::std::swap; - swap(a.num_values, b.num_values); - swap(a.num_nulls, b.num_nulls); - swap(a.num_rows, b.num_rows); - swap(a.encoding, b.encoding); - swap(a.definition_levels_byte_length, b.definition_levels_byte_length); - swap(a.repetition_levels_byte_length, b.repetition_levels_byte_length); - swap(a.is_compressed, b.is_compressed); - swap(a.statistics, b.statistics); - swap(a.__isset, b.__isset); -} - -DataPageHeaderV2::DataPageHeaderV2(const DataPageHeaderV2& other54) { - num_values = other54.num_values; - num_nulls = other54.num_nulls; - num_rows = other54.num_rows; - encoding = other54.encoding; - definition_levels_byte_length = other54.definition_levels_byte_length; - repetition_levels_byte_length = other54.repetition_levels_byte_length; - is_compressed = other54.is_compressed; - statistics = other54.statistics; - __isset = other54.__isset; -} -DataPageHeaderV2& DataPageHeaderV2::operator=(const DataPageHeaderV2& other55) { - num_values = other55.num_values; - num_nulls = other55.num_nulls; - num_rows = other55.num_rows; - encoding = other55.encoding; - definition_levels_byte_length = other55.definition_levels_byte_length; - repetition_levels_byte_length = other55.repetition_levels_byte_length; - is_compressed = other55.is_compressed; - statistics = other55.statistics; - __isset = other55.__isset; + swap(a.numBytes, b.numBytes); + swap(a.algorithm, b.algorithm); + swap(a.hash, b.hash); + swap(a.compression, b.compression); +} + +BloomFilterHeader::BloomFilterHeader(const BloomFilterHeader& other84) noexcept { + numBytes = other84.numBytes; + algorithm = other84.algorithm; + hash = other84.hash; + compression = other84.compression; +} +BloomFilterHeader& BloomFilterHeader::operator=(const BloomFilterHeader& other85) noexcept { + numBytes = other85.numBytes; + algorithm = other85.algorithm; + hash = other85.hash; + compression = other85.compression; return *this; } -void DataPageHeaderV2::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; - out << "DataPageHeaderV2("; - out << "num_values=" << to_string(num_values); - out << ", " << "num_nulls=" << to_string(num_nulls); - out << ", " << "num_rows=" << to_string(num_rows); - out << ", " << "encoding=" << to_string(encoding); - out << ", " << "definition_levels_byte_length=" << to_string(definition_levels_byte_length); - out << ", " << "repetition_levels_byte_length=" << to_string(repetition_levels_byte_length); - out << ", " << "is_compressed="; (__isset.is_compressed ? (out << to_string(is_compressed)) : (out << "")); - out << ", " << "statistics="; (__isset.statistics ? (out << to_string(statistics)) : (out << "")); +void BloomFilterHeader::printTo(std::ostream& out) const { + using ::apache::thrift::to_string; + out << "BloomFilterHeader("; + out << "numBytes=" << to_string(numBytes); + out << ", " << "algorithm=" << to_string(algorithm); + out << ", " << "hash=" << to_string(hash); + out << ", " << "compression=" << to_string(compression); out << ")"; } -PageHeader::~PageHeader() throw() { +PageHeader::~PageHeader() noexcept { } +PageHeader::PageHeader() noexcept + : type(static_cast(0)), + uncompressed_page_size(0), + compressed_page_size(0), + crc(0) { +} void PageHeader::__set_type(const PageType::type val) { this->type = val; @@ -3224,17 +4671,17 @@ std::ostream& operator<<(std::ostream& out, const PageHeader& obj) } -uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t PageHeader::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_type = false; bool isset_uncompressed_page_size = false; @@ -3243,23 +4690,23 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast56; - xfer += iprot->readI32(ecast56); - this->type = (PageType::type)ecast56; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast86; + xfer += iprot->readI32(ecast86); + this->type = static_cast(ecast86); isset_type = true; } else { xfer += iprot->skip(ftype); } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->uncompressed_page_size); isset_uncompressed_page_size = true; } else { @@ -3267,7 +4714,7 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->compressed_page_size); isset_compressed_page_size = true; } else { @@ -3275,7 +4722,7 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->crc); this->__isset.crc = true; } else { @@ -3283,7 +4730,7 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->data_page_header.read(iprot); this->__isset.data_page_header = true; } else { @@ -3291,7 +4738,7 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->index_page_header.read(iprot); this->__isset.index_page_header = true; } else { @@ -3299,7 +4746,7 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->dictionary_page_header.read(iprot); this->__isset.dictionary_page_header = true; } else { @@ -3307,7 +4754,7 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 8: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->data_page_header_v2.read(iprot); this->__isset.data_page_header_v2 = true; } else { @@ -3332,45 +4779,45 @@ uint32_t PageHeader::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t PageHeader::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t PageHeader::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("PageHeader"); - xfer += oprot->writeFieldBegin("type", ::duckdb_apache::thrift::protocol::T_I32, 1); - xfer += oprot->writeI32((int32_t)this->type); + xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeI32(static_cast(this->type)); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("uncompressed_page_size", ::duckdb_apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeFieldBegin("uncompressed_page_size", ::apache::thrift::protocol::T_I32, 2); xfer += oprot->writeI32(this->uncompressed_page_size); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("compressed_page_size", ::duckdb_apache::thrift::protocol::T_I32, 3); + xfer += oprot->writeFieldBegin("compressed_page_size", ::apache::thrift::protocol::T_I32, 3); xfer += oprot->writeI32(this->compressed_page_size); xfer += oprot->writeFieldEnd(); if (this->__isset.crc) { - xfer += oprot->writeFieldBegin("crc", ::duckdb_apache::thrift::protocol::T_I32, 4); + xfer += oprot->writeFieldBegin("crc", ::apache::thrift::protocol::T_I32, 4); xfer += oprot->writeI32(this->crc); xfer += oprot->writeFieldEnd(); } if (this->__isset.data_page_header) { - xfer += oprot->writeFieldBegin("data_page_header", ::duckdb_apache::thrift::protocol::T_STRUCT, 5); + xfer += oprot->writeFieldBegin("data_page_header", ::apache::thrift::protocol::T_STRUCT, 5); xfer += this->data_page_header.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.index_page_header) { - xfer += oprot->writeFieldBegin("index_page_header", ::duckdb_apache::thrift::protocol::T_STRUCT, 6); + xfer += oprot->writeFieldBegin("index_page_header", ::apache::thrift::protocol::T_STRUCT, 6); xfer += this->index_page_header.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.dictionary_page_header) { - xfer += oprot->writeFieldBegin("dictionary_page_header", ::duckdb_apache::thrift::protocol::T_STRUCT, 7); + xfer += oprot->writeFieldBegin("dictionary_page_header", ::apache::thrift::protocol::T_STRUCT, 7); xfer += this->dictionary_page_header.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.data_page_header_v2) { - xfer += oprot->writeFieldBegin("data_page_header_v2", ::duckdb_apache::thrift::protocol::T_STRUCT, 8); + xfer += oprot->writeFieldBegin("data_page_header_v2", ::apache::thrift::protocol::T_STRUCT, 8); xfer += this->data_page_header_v2.write(oprot); xfer += oprot->writeFieldEnd(); } @@ -3392,31 +4839,31 @@ void swap(PageHeader &a, PageHeader &b) { swap(a.__isset, b.__isset); } -PageHeader::PageHeader(const PageHeader& other57) { - type = other57.type; - uncompressed_page_size = other57.uncompressed_page_size; - compressed_page_size = other57.compressed_page_size; - crc = other57.crc; - data_page_header = other57.data_page_header; - index_page_header = other57.index_page_header; - dictionary_page_header = other57.dictionary_page_header; - data_page_header_v2 = other57.data_page_header_v2; - __isset = other57.__isset; -} -PageHeader& PageHeader::operator=(const PageHeader& other58) { - type = other58.type; - uncompressed_page_size = other58.uncompressed_page_size; - compressed_page_size = other58.compressed_page_size; - crc = other58.crc; - data_page_header = other58.data_page_header; - index_page_header = other58.index_page_header; - dictionary_page_header = other58.dictionary_page_header; - data_page_header_v2 = other58.data_page_header_v2; - __isset = other58.__isset; +PageHeader::PageHeader(const PageHeader& other87) { + type = other87.type; + uncompressed_page_size = other87.uncompressed_page_size; + compressed_page_size = other87.compressed_page_size; + crc = other87.crc; + data_page_header = other87.data_page_header; + index_page_header = other87.index_page_header; + dictionary_page_header = other87.dictionary_page_header; + data_page_header_v2 = other87.data_page_header_v2; + __isset = other87.__isset; +} +PageHeader& PageHeader::operator=(const PageHeader& other88) { + type = other88.type; + uncompressed_page_size = other88.uncompressed_page_size; + compressed_page_size = other88.compressed_page_size; + crc = other88.crc; + data_page_header = other88.data_page_header; + index_page_header = other88.index_page_header; + dictionary_page_header = other88.dictionary_page_header; + data_page_header_v2 = other88.data_page_header_v2; + __isset = other88.__isset; return *this; } void PageHeader::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "PageHeader("; out << "type=" << to_string(type); out << ", " << "uncompressed_page_size=" << to_string(uncompressed_page_size); @@ -3430,9 +4877,13 @@ void PageHeader::printTo(std::ostream& out) const { } -KeyValue::~KeyValue() throw() { +KeyValue::~KeyValue() noexcept { } +KeyValue::KeyValue() noexcept + : key(), + value() { +} void KeyValue::__set_key(const std::string& val) { this->key = val; @@ -3449,30 +4900,30 @@ std::ostream& operator<<(std::ostream& out, const KeyValue& obj) } -uint32_t KeyValue::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t KeyValue::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_key = false; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->key); isset_key = true; } else { @@ -3480,7 +4931,7 @@ uint32_t KeyValue::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->value); this->__isset.value = true; } else { @@ -3501,17 +4952,17 @@ uint32_t KeyValue::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t KeyValue::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t KeyValue::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("KeyValue"); - xfer += oprot->writeFieldBegin("key", ::duckdb_apache::thrift::protocol::T_STRING, 1); + xfer += oprot->writeFieldBegin("key", ::apache::thrift::protocol::T_STRING, 1); xfer += oprot->writeString(this->key); xfer += oprot->writeFieldEnd(); if (this->__isset.value) { - xfer += oprot->writeFieldBegin("value", ::duckdb_apache::thrift::protocol::T_STRING, 2); + xfer += oprot->writeFieldBegin("value", ::apache::thrift::protocol::T_STRING, 2); xfer += oprot->writeString(this->value); xfer += oprot->writeFieldEnd(); } @@ -3527,19 +4978,19 @@ void swap(KeyValue &a, KeyValue &b) { swap(a.__isset, b.__isset); } -KeyValue::KeyValue(const KeyValue& other59) { - key = other59.key; - value = other59.value; - __isset = other59.__isset; +KeyValue::KeyValue(const KeyValue& other89) { + key = other89.key; + value = other89.value; + __isset = other89.__isset; } -KeyValue& KeyValue::operator=(const KeyValue& other60) { - key = other60.key; - value = other60.value; - __isset = other60.__isset; +KeyValue& KeyValue::operator=(const KeyValue& other90) { + key = other90.key; + value = other90.value; + __isset = other90.__isset; return *this; } void KeyValue::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "KeyValue("; out << "key=" << to_string(key); out << ", " << "value="; (__isset.value ? (out << to_string(value)) : (out << "")); @@ -3547,9 +4998,14 @@ void KeyValue::printTo(std::ostream& out) const { } -SortingColumn::~SortingColumn() throw() { +SortingColumn::~SortingColumn() noexcept { } +SortingColumn::SortingColumn() noexcept + : column_idx(0), + descending(0), + nulls_first(0) { +} void SortingColumn::__set_column_idx(const int32_t val) { this->column_idx = val; @@ -3569,17 +5025,17 @@ std::ostream& operator<<(std::ostream& out, const SortingColumn& obj) } -uint32_t SortingColumn::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t SortingColumn::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_column_idx = false; bool isset_descending = false; @@ -3588,13 +5044,13 @@ uint32_t SortingColumn::read(::duckdb_apache::thrift::protocol::TProtocol* iprot while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->column_idx); isset_column_idx = true; } else { @@ -3602,7 +5058,7 @@ uint32_t SortingColumn::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->descending); isset_descending = true; } else { @@ -3610,7 +5066,7 @@ uint32_t SortingColumn::read(::duckdb_apache::thrift::protocol::TProtocol* iprot } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->nulls_first); isset_nulls_first = true; } else { @@ -3635,20 +5091,20 @@ uint32_t SortingColumn::read(::duckdb_apache::thrift::protocol::TProtocol* iprot return xfer; } -uint32_t SortingColumn::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t SortingColumn::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("SortingColumn"); - xfer += oprot->writeFieldBegin("column_idx", ::duckdb_apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeFieldBegin("column_idx", ::apache::thrift::protocol::T_I32, 1); xfer += oprot->writeI32(this->column_idx); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("descending", ::duckdb_apache::thrift::protocol::T_BOOL, 2); + xfer += oprot->writeFieldBegin("descending", ::apache::thrift::protocol::T_BOOL, 2); xfer += oprot->writeBool(this->descending); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("nulls_first", ::duckdb_apache::thrift::protocol::T_BOOL, 3); + xfer += oprot->writeFieldBegin("nulls_first", ::apache::thrift::protocol::T_BOOL, 3); xfer += oprot->writeBool(this->nulls_first); xfer += oprot->writeFieldEnd(); @@ -3664,19 +5120,19 @@ void swap(SortingColumn &a, SortingColumn &b) { swap(a.nulls_first, b.nulls_first); } -SortingColumn::SortingColumn(const SortingColumn& other61) { - column_idx = other61.column_idx; - descending = other61.descending; - nulls_first = other61.nulls_first; +SortingColumn::SortingColumn(const SortingColumn& other91) noexcept { + column_idx = other91.column_idx; + descending = other91.descending; + nulls_first = other91.nulls_first; } -SortingColumn& SortingColumn::operator=(const SortingColumn& other62) { - column_idx = other62.column_idx; - descending = other62.descending; - nulls_first = other62.nulls_first; +SortingColumn& SortingColumn::operator=(const SortingColumn& other92) noexcept { + column_idx = other92.column_idx; + descending = other92.descending; + nulls_first = other92.nulls_first; return *this; } void SortingColumn::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "SortingColumn("; out << "column_idx=" << to_string(column_idx); out << ", " << "descending=" << to_string(descending); @@ -3685,9 +5141,14 @@ void SortingColumn::printTo(std::ostream& out) const { } -PageEncodingStats::~PageEncodingStats() throw() { +PageEncodingStats::~PageEncodingStats() noexcept { } +PageEncodingStats::PageEncodingStats() noexcept + : page_type(static_cast(0)), + encoding(static_cast(0)), + count(0) { +} void PageEncodingStats::__set_page_type(const PageType::type val) { this->page_type = val; @@ -3707,17 +5168,17 @@ std::ostream& operator<<(std::ostream& out, const PageEncodingStats& obj) } -uint32_t PageEncodingStats::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t PageEncodingStats::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_page_type = false; bool isset_encoding = false; @@ -3726,33 +5187,33 @@ uint32_t PageEncodingStats::read(::duckdb_apache::thrift::protocol::TProtocol* i while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast63; - xfer += iprot->readI32(ecast63); - this->page_type = (PageType::type)ecast63; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast93; + xfer += iprot->readI32(ecast93); + this->page_type = static_cast(ecast93); isset_page_type = true; } else { xfer += iprot->skip(ftype); } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast64; - xfer += iprot->readI32(ecast64); - this->encoding = (Encoding::type)ecast64; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast94; + xfer += iprot->readI32(ecast94); + this->encoding = static_cast(ecast94); isset_encoding = true; } else { xfer += iprot->skip(ftype); } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->count); isset_count = true; } else { @@ -3777,20 +5238,20 @@ uint32_t PageEncodingStats::read(::duckdb_apache::thrift::protocol::TProtocol* i return xfer; } -uint32_t PageEncodingStats::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t PageEncodingStats::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("PageEncodingStats"); - xfer += oprot->writeFieldBegin("page_type", ::duckdb_apache::thrift::protocol::T_I32, 1); - xfer += oprot->writeI32((int32_t)this->page_type); + xfer += oprot->writeFieldBegin("page_type", ::apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeI32(static_cast(this->page_type)); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("encoding", ::duckdb_apache::thrift::protocol::T_I32, 2); - xfer += oprot->writeI32((int32_t)this->encoding); + xfer += oprot->writeFieldBegin("encoding", ::apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeI32(static_cast(this->encoding)); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("count", ::duckdb_apache::thrift::protocol::T_I32, 3); + xfer += oprot->writeFieldBegin("count", ::apache::thrift::protocol::T_I32, 3); xfer += oprot->writeI32(this->count); xfer += oprot->writeFieldEnd(); @@ -3806,19 +5267,19 @@ void swap(PageEncodingStats &a, PageEncodingStats &b) { swap(a.count, b.count); } -PageEncodingStats::PageEncodingStats(const PageEncodingStats& other65) { - page_type = other65.page_type; - encoding = other65.encoding; - count = other65.count; +PageEncodingStats::PageEncodingStats(const PageEncodingStats& other95) noexcept { + page_type = other95.page_type; + encoding = other95.encoding; + count = other95.count; } -PageEncodingStats& PageEncodingStats::operator=(const PageEncodingStats& other66) { - page_type = other66.page_type; - encoding = other66.encoding; - count = other66.count; +PageEncodingStats& PageEncodingStats::operator=(const PageEncodingStats& other96) noexcept { + page_type = other96.page_type; + encoding = other96.encoding; + count = other96.count; return *this; } void PageEncodingStats::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "PageEncodingStats("; out << "page_type=" << to_string(page_type); out << ", " << "encoding=" << to_string(encoding); @@ -3827,9 +5288,21 @@ void PageEncodingStats::printTo(std::ostream& out) const { } -ColumnMetaData::~ColumnMetaData() throw() { +ColumnMetaData::~ColumnMetaData() noexcept { } +ColumnMetaData::ColumnMetaData() noexcept + : type(static_cast(0)), + codec(static_cast(0)), + num_values(0), + total_uncompressed_size(0), + total_compressed_size(0), + data_page_offset(0), + index_page_offset(0), + dictionary_page_offset(0), + bloom_filter_offset(0), + bloom_filter_length(0) { +} void ColumnMetaData::__set_type(const Type::type val) { this->type = val; @@ -3887,6 +5360,21 @@ void ColumnMetaData::__set_encoding_stats(const duckdb::vectorencoding_stats = val; __isset.encoding_stats = true; } + +void ColumnMetaData::__set_bloom_filter_offset(const int64_t val) { + this->bloom_filter_offset = val; +__isset.bloom_filter_offset = true; +} + +void ColumnMetaData::__set_bloom_filter_length(const int32_t val) { + this->bloom_filter_length = val; +__isset.bloom_filter_length = true; +} + +void ColumnMetaData::__set_size_statistics(const SizeStatistics& val) { + this->size_statistics = val; +__isset.size_statistics = true; +} std::ostream& operator<<(std::ostream& out, const ColumnMetaData& obj) { obj.printTo(out); @@ -3894,17 +5382,17 @@ std::ostream& operator<<(std::ostream& out, const ColumnMetaData& obj) } -uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t ColumnMetaData::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_type = false; bool isset_encodings = false; @@ -3918,35 +5406,35 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast67; - xfer += iprot->readI32(ecast67); - this->type = (Type::type)ecast67; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast97; + xfer += iprot->readI32(ecast97); + this->type = static_cast(ecast97); isset_type = true; } else { xfer += iprot->skip(ftype); } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->encodings.clear(); - uint32_t _size68; - ::duckdb_apache::thrift::protocol::TType _etype71; - xfer += iprot->readListBegin(_etype71, _size68); - this->encodings.resize(_size68); - uint32_t _i72; - for (_i72 = 0; _i72 < _size68; ++_i72) + uint32_t _size98; + ::apache::thrift::protocol::TType _etype101; + xfer += iprot->readListBegin(_etype101, _size98); + this->encodings.resize(_size98); + uint32_t _i102; + for (_i102 = 0; _i102 < _size98; ++_i102) { - int32_t ecast73; - xfer += iprot->readI32(ecast73); - this->encodings[_i72] = (Encoding::type)ecast73; + int32_t ecast103; + xfer += iprot->readI32(ecast103); + this->encodings[_i102] = static_cast(ecast103); } xfer += iprot->readListEnd(); } @@ -3956,17 +5444,17 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->path_in_schema.clear(); - uint32_t _size74; - ::duckdb_apache::thrift::protocol::TType _etype77; - xfer += iprot->readListBegin(_etype77, _size74); - this->path_in_schema.resize(_size74); - uint32_t _i78; - for (_i78 = 0; _i78 < _size74; ++_i78) + uint32_t _size104; + ::apache::thrift::protocol::TType _etype107; + xfer += iprot->readListBegin(_etype107, _size104); + this->path_in_schema.resize(_size104); + uint32_t _i108; + for (_i108 = 0; _i108 < _size104; ++_i108) { - xfer += iprot->readString(this->path_in_schema[_i78]); + xfer += iprot->readString(this->path_in_schema[_i108]); } xfer += iprot->readListEnd(); } @@ -3976,17 +5464,17 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast79; - xfer += iprot->readI32(ecast79); - this->codec = (CompressionCodec::type)ecast79; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast109; + xfer += iprot->readI32(ecast109); + this->codec = static_cast(ecast109); isset_codec = true; } else { xfer += iprot->skip(ftype); } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->num_values); isset_num_values = true; } else { @@ -3994,7 +5482,7 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->total_uncompressed_size); isset_total_uncompressed_size = true; } else { @@ -4002,7 +5490,7 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->total_compressed_size); isset_total_compressed_size = true; } else { @@ -4010,17 +5498,17 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 8: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->key_value_metadata.clear(); - uint32_t _size80; - ::duckdb_apache::thrift::protocol::TType _etype83; - xfer += iprot->readListBegin(_etype83, _size80); - this->key_value_metadata.resize(_size80); - uint32_t _i84; - for (_i84 = 0; _i84 < _size80; ++_i84) + uint32_t _size110; + ::apache::thrift::protocol::TType _etype113; + xfer += iprot->readListBegin(_etype113, _size110); + this->key_value_metadata.resize(_size110); + uint32_t _i114; + for (_i114 = 0; _i114 < _size110; ++_i114) { - xfer += this->key_value_metadata[_i84].read(iprot); + xfer += this->key_value_metadata[_i114].read(iprot); } xfer += iprot->readListEnd(); } @@ -4030,7 +5518,7 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 9: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->data_page_offset); isset_data_page_offset = true; } else { @@ -4038,7 +5526,7 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 10: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->index_page_offset); this->__isset.index_page_offset = true; } else { @@ -4046,7 +5534,7 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 11: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->dictionary_page_offset); this->__isset.dictionary_page_offset = true; } else { @@ -4054,7 +5542,7 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 12: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->statistics.read(iprot); this->__isset.statistics = true; } else { @@ -4062,17 +5550,17 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro } break; case 13: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->encoding_stats.clear(); - uint32_t _size85; - ::duckdb_apache::thrift::protocol::TType _etype88; - xfer += iprot->readListBegin(_etype88, _size85); - this->encoding_stats.resize(_size85); - uint32_t _i89; - for (_i89 = 0; _i89 < _size85; ++_i89) + uint32_t _size115; + ::apache::thrift::protocol::TType _etype118; + xfer += iprot->readListBegin(_etype118, _size115); + this->encoding_stats.resize(_size115); + uint32_t _i119; + for (_i119 = 0; _i119 < _size115; ++_i119) { - xfer += this->encoding_stats[_i89].read(iprot); + xfer += this->encoding_stats[_i119].read(iprot); } xfer += iprot->readListEnd(); } @@ -4081,6 +5569,30 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro xfer += iprot->skip(ftype); } break; + case 14: + if (ftype == ::apache::thrift::protocol::T_I64) { + xfer += iprot->readI64(this->bloom_filter_offset); + this->__isset.bloom_filter_offset = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 15: + if (ftype == ::apache::thrift::protocol::T_I32) { + xfer += iprot->readI32(this->bloom_filter_length); + this->__isset.bloom_filter_length = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 16: + if (ftype == ::apache::thrift::protocol::T_STRUCT) { + xfer += this->size_statistics.read(iprot); + this->__isset.size_statistics = true; + } else { + xfer += iprot->skip(ftype); + } + break; default: xfer += iprot->skip(ftype); break; @@ -4109,100 +5621,115 @@ uint32_t ColumnMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* ipro return xfer; } -uint32_t ColumnMetaData::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t ColumnMetaData::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("ColumnMetaData"); - xfer += oprot->writeFieldBegin("type", ::duckdb_apache::thrift::protocol::T_I32, 1); - xfer += oprot->writeI32((int32_t)this->type); + xfer += oprot->writeFieldBegin("type", ::apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeI32(static_cast(this->type)); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("encodings", ::duckdb_apache::thrift::protocol::T_LIST, 2); + xfer += oprot->writeFieldBegin("encodings", ::apache::thrift::protocol::T_LIST, 2); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_I32, static_cast(this->encodings.size())); - duckdb::vector ::const_iterator _iter90; - for (_iter90 = this->encodings.begin(); _iter90 != this->encodings.end(); ++_iter90) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I32, static_cast(this->encodings.size())); + duckdb::vector ::const_iterator _iter120; + for (_iter120 = this->encodings.begin(); _iter120 != this->encodings.end(); ++_iter120) { - xfer += oprot->writeI32((int32_t)(*_iter90)); + xfer += oprot->writeI32(static_cast((*_iter120))); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("path_in_schema", ::duckdb_apache::thrift::protocol::T_LIST, 3); + xfer += oprot->writeFieldBegin("path_in_schema", ::apache::thrift::protocol::T_LIST, 3); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRING, static_cast(this->path_in_schema.size())); - duckdb::vector ::const_iterator _iter91; - for (_iter91 = this->path_in_schema.begin(); _iter91 != this->path_in_schema.end(); ++_iter91) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->path_in_schema.size())); + duckdb::vector ::const_iterator _iter121; + for (_iter121 = this->path_in_schema.begin(); _iter121 != this->path_in_schema.end(); ++_iter121) { - xfer += oprot->writeString((*_iter91)); + xfer += oprot->writeString((*_iter121)); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("codec", ::duckdb_apache::thrift::protocol::T_I32, 4); - xfer += oprot->writeI32((int32_t)this->codec); + xfer += oprot->writeFieldBegin("codec", ::apache::thrift::protocol::T_I32, 4); + xfer += oprot->writeI32(static_cast(this->codec)); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("num_values", ::duckdb_apache::thrift::protocol::T_I64, 5); + xfer += oprot->writeFieldBegin("num_values", ::apache::thrift::protocol::T_I64, 5); xfer += oprot->writeI64(this->num_values); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("total_uncompressed_size", ::duckdb_apache::thrift::protocol::T_I64, 6); + xfer += oprot->writeFieldBegin("total_uncompressed_size", ::apache::thrift::protocol::T_I64, 6); xfer += oprot->writeI64(this->total_uncompressed_size); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("total_compressed_size", ::duckdb_apache::thrift::protocol::T_I64, 7); + xfer += oprot->writeFieldBegin("total_compressed_size", ::apache::thrift::protocol::T_I64, 7); xfer += oprot->writeI64(this->total_compressed_size); xfer += oprot->writeFieldEnd(); if (this->__isset.key_value_metadata) { - xfer += oprot->writeFieldBegin("key_value_metadata", ::duckdb_apache::thrift::protocol::T_LIST, 8); + xfer += oprot->writeFieldBegin("key_value_metadata", ::apache::thrift::protocol::T_LIST, 8); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->key_value_metadata.size())); - duckdb::vector ::const_iterator _iter92; - for (_iter92 = this->key_value_metadata.begin(); _iter92 != this->key_value_metadata.end(); ++_iter92) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->key_value_metadata.size())); + duckdb::vector ::const_iterator _iter122; + for (_iter122 = this->key_value_metadata.begin(); _iter122 != this->key_value_metadata.end(); ++_iter122) { - xfer += (*_iter92).write(oprot); + xfer += (*_iter122).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); } - xfer += oprot->writeFieldBegin("data_page_offset", ::duckdb_apache::thrift::protocol::T_I64, 9); + xfer += oprot->writeFieldBegin("data_page_offset", ::apache::thrift::protocol::T_I64, 9); xfer += oprot->writeI64(this->data_page_offset); xfer += oprot->writeFieldEnd(); if (this->__isset.index_page_offset) { - xfer += oprot->writeFieldBegin("index_page_offset", ::duckdb_apache::thrift::protocol::T_I64, 10); + xfer += oprot->writeFieldBegin("index_page_offset", ::apache::thrift::protocol::T_I64, 10); xfer += oprot->writeI64(this->index_page_offset); xfer += oprot->writeFieldEnd(); } if (this->__isset.dictionary_page_offset) { - xfer += oprot->writeFieldBegin("dictionary_page_offset", ::duckdb_apache::thrift::protocol::T_I64, 11); + xfer += oprot->writeFieldBegin("dictionary_page_offset", ::apache::thrift::protocol::T_I64, 11); xfer += oprot->writeI64(this->dictionary_page_offset); xfer += oprot->writeFieldEnd(); } if (this->__isset.statistics) { - xfer += oprot->writeFieldBegin("statistics", ::duckdb_apache::thrift::protocol::T_STRUCT, 12); + xfer += oprot->writeFieldBegin("statistics", ::apache::thrift::protocol::T_STRUCT, 12); xfer += this->statistics.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.encoding_stats) { - xfer += oprot->writeFieldBegin("encoding_stats", ::duckdb_apache::thrift::protocol::T_LIST, 13); + xfer += oprot->writeFieldBegin("encoding_stats", ::apache::thrift::protocol::T_LIST, 13); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->encoding_stats.size())); - duckdb::vector ::const_iterator _iter93; - for (_iter93 = this->encoding_stats.begin(); _iter93 != this->encoding_stats.end(); ++_iter93) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->encoding_stats.size())); + duckdb::vector ::const_iterator _iter123; + for (_iter123 = this->encoding_stats.begin(); _iter123 != this->encoding_stats.end(); ++_iter123) { - xfer += (*_iter93).write(oprot); + xfer += (*_iter123).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); } + if (this->__isset.bloom_filter_offset) { + xfer += oprot->writeFieldBegin("bloom_filter_offset", ::apache::thrift::protocol::T_I64, 14); + xfer += oprot->writeI64(this->bloom_filter_offset); + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.bloom_filter_length) { + xfer += oprot->writeFieldBegin("bloom_filter_length", ::apache::thrift::protocol::T_I32, 15); + xfer += oprot->writeI32(this->bloom_filter_length); + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.size_statistics) { + xfer += oprot->writeFieldBegin("size_statistics", ::apache::thrift::protocol::T_STRUCT, 16); + xfer += this->size_statistics.write(oprot); + xfer += oprot->writeFieldEnd(); + } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; @@ -4223,44 +5750,53 @@ void swap(ColumnMetaData &a, ColumnMetaData &b) { swap(a.dictionary_page_offset, b.dictionary_page_offset); swap(a.statistics, b.statistics); swap(a.encoding_stats, b.encoding_stats); + swap(a.bloom_filter_offset, b.bloom_filter_offset); + swap(a.bloom_filter_length, b.bloom_filter_length); + swap(a.size_statistics, b.size_statistics); swap(a.__isset, b.__isset); } -ColumnMetaData::ColumnMetaData(const ColumnMetaData& other94) { - type = other94.type; - encodings = other94.encodings; - path_in_schema = other94.path_in_schema; - codec = other94.codec; - num_values = other94.num_values; - total_uncompressed_size = other94.total_uncompressed_size; - total_compressed_size = other94.total_compressed_size; - key_value_metadata = other94.key_value_metadata; - data_page_offset = other94.data_page_offset; - index_page_offset = other94.index_page_offset; - dictionary_page_offset = other94.dictionary_page_offset; - statistics = other94.statistics; - encoding_stats = other94.encoding_stats; - __isset = other94.__isset; -} -ColumnMetaData& ColumnMetaData::operator=(const ColumnMetaData& other95) { - type = other95.type; - encodings = other95.encodings; - path_in_schema = other95.path_in_schema; - codec = other95.codec; - num_values = other95.num_values; - total_uncompressed_size = other95.total_uncompressed_size; - total_compressed_size = other95.total_compressed_size; - key_value_metadata = other95.key_value_metadata; - data_page_offset = other95.data_page_offset; - index_page_offset = other95.index_page_offset; - dictionary_page_offset = other95.dictionary_page_offset; - statistics = other95.statistics; - encoding_stats = other95.encoding_stats; - __isset = other95.__isset; +ColumnMetaData::ColumnMetaData(const ColumnMetaData& other124) { + type = other124.type; + encodings = other124.encodings; + path_in_schema = other124.path_in_schema; + codec = other124.codec; + num_values = other124.num_values; + total_uncompressed_size = other124.total_uncompressed_size; + total_compressed_size = other124.total_compressed_size; + key_value_metadata = other124.key_value_metadata; + data_page_offset = other124.data_page_offset; + index_page_offset = other124.index_page_offset; + dictionary_page_offset = other124.dictionary_page_offset; + statistics = other124.statistics; + encoding_stats = other124.encoding_stats; + bloom_filter_offset = other124.bloom_filter_offset; + bloom_filter_length = other124.bloom_filter_length; + size_statistics = other124.size_statistics; + __isset = other124.__isset; +} +ColumnMetaData& ColumnMetaData::operator=(const ColumnMetaData& other125) { + type = other125.type; + encodings = other125.encodings; + path_in_schema = other125.path_in_schema; + codec = other125.codec; + num_values = other125.num_values; + total_uncompressed_size = other125.total_uncompressed_size; + total_compressed_size = other125.total_compressed_size; + key_value_metadata = other125.key_value_metadata; + data_page_offset = other125.data_page_offset; + index_page_offset = other125.index_page_offset; + dictionary_page_offset = other125.dictionary_page_offset; + statistics = other125.statistics; + encoding_stats = other125.encoding_stats; + bloom_filter_offset = other125.bloom_filter_offset; + bloom_filter_length = other125.bloom_filter_length; + size_statistics = other125.size_statistics; + __isset = other125.__isset; return *this; } void ColumnMetaData::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "ColumnMetaData("; out << "type=" << to_string(type); out << ", " << "encodings=" << to_string(encodings); @@ -4275,13 +5811,18 @@ void ColumnMetaData::printTo(std::ostream& out) const { out << ", " << "dictionary_page_offset="; (__isset.dictionary_page_offset ? (out << to_string(dictionary_page_offset)) : (out << "")); out << ", " << "statistics="; (__isset.statistics ? (out << to_string(statistics)) : (out << "")); out << ", " << "encoding_stats="; (__isset.encoding_stats ? (out << to_string(encoding_stats)) : (out << "")); + out << ", " << "bloom_filter_offset="; (__isset.bloom_filter_offset ? (out << to_string(bloom_filter_offset)) : (out << "")); + out << ", " << "bloom_filter_length="; (__isset.bloom_filter_length ? (out << to_string(bloom_filter_length)) : (out << "")); + out << ", " << "size_statistics="; (__isset.size_statistics ? (out << to_string(size_statistics)) : (out << "")); out << ")"; } -EncryptionWithFooterKey::~EncryptionWithFooterKey() throw() { +EncryptionWithFooterKey::~EncryptionWithFooterKey() noexcept { } +EncryptionWithFooterKey::EncryptionWithFooterKey() noexcept { +} std::ostream& operator<<(std::ostream& out, const EncryptionWithFooterKey& obj) { obj.printTo(out); @@ -4289,23 +5830,23 @@ std::ostream& operator<<(std::ostream& out, const EncryptionWithFooterKey& obj) } -uint32_t EncryptionWithFooterKey::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t EncryptionWithFooterKey::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -4317,9 +5858,9 @@ uint32_t EncryptionWithFooterKey::read(::duckdb_apache::thrift::protocol::TProto return xfer; } -uint32_t EncryptionWithFooterKey::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t EncryptionWithFooterKey::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("EncryptionWithFooterKey"); xfer += oprot->writeFieldStop(); @@ -4333,23 +5874,26 @@ void swap(EncryptionWithFooterKey &a, EncryptionWithFooterKey &b) { (void) b; } -EncryptionWithFooterKey::EncryptionWithFooterKey(const EncryptionWithFooterKey& other96) { - (void) other96; +EncryptionWithFooterKey::EncryptionWithFooterKey(const EncryptionWithFooterKey& other126) noexcept { + (void) other126; } -EncryptionWithFooterKey& EncryptionWithFooterKey::operator=(const EncryptionWithFooterKey& other97) { - (void) other97; +EncryptionWithFooterKey& EncryptionWithFooterKey::operator=(const EncryptionWithFooterKey& other127) noexcept { + (void) other127; return *this; } void EncryptionWithFooterKey::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "EncryptionWithFooterKey("; out << ")"; } -EncryptionWithColumnKey::~EncryptionWithColumnKey() throw() { +EncryptionWithColumnKey::~EncryptionWithColumnKey() noexcept { } +EncryptionWithColumnKey::EncryptionWithColumnKey() noexcept + : key_metadata() { +} void EncryptionWithColumnKey::__set_path_in_schema(const duckdb::vector & val) { this->path_in_schema = val; @@ -4366,40 +5910,40 @@ std::ostream& operator<<(std::ostream& out, const EncryptionWithColumnKey& obj) } -uint32_t EncryptionWithColumnKey::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t EncryptionWithColumnKey::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_path_in_schema = false; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->path_in_schema.clear(); - uint32_t _size98; - ::duckdb_apache::thrift::protocol::TType _etype101; - xfer += iprot->readListBegin(_etype101, _size98); - this->path_in_schema.resize(_size98); - uint32_t _i102; - for (_i102 = 0; _i102 < _size98; ++_i102) + uint32_t _size128; + ::apache::thrift::protocol::TType _etype131; + xfer += iprot->readListBegin(_etype131, _size128); + this->path_in_schema.resize(_size128); + uint32_t _i132; + for (_i132 = 0; _i132 < _size128; ++_i132) { - xfer += iprot->readString(this->path_in_schema[_i102]); + xfer += iprot->readString(this->path_in_schema[_i132]); } xfer += iprot->readListEnd(); } @@ -4409,7 +5953,7 @@ uint32_t EncryptionWithColumnKey::read(::duckdb_apache::thrift::protocol::TProto } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->key_metadata); this->__isset.key_metadata = true; } else { @@ -4430,25 +5974,25 @@ uint32_t EncryptionWithColumnKey::read(::duckdb_apache::thrift::protocol::TProto return xfer; } -uint32_t EncryptionWithColumnKey::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t EncryptionWithColumnKey::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("EncryptionWithColumnKey"); - xfer += oprot->writeFieldBegin("path_in_schema", ::duckdb_apache::thrift::protocol::T_LIST, 1); + xfer += oprot->writeFieldBegin("path_in_schema", ::apache::thrift::protocol::T_LIST, 1); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRING, static_cast(this->path_in_schema.size())); - duckdb::vector ::const_iterator _iter103; - for (_iter103 = this->path_in_schema.begin(); _iter103 != this->path_in_schema.end(); ++_iter103) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->path_in_schema.size())); + duckdb::vector ::const_iterator _iter133; + for (_iter133 = this->path_in_schema.begin(); _iter133 != this->path_in_schema.end(); ++_iter133) { - xfer += oprot->writeString((*_iter103)); + xfer += oprot->writeString((*_iter133)); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); if (this->__isset.key_metadata) { - xfer += oprot->writeFieldBegin("key_metadata", ::duckdb_apache::thrift::protocol::T_STRING, 2); + xfer += oprot->writeFieldBegin("key_metadata", ::apache::thrift::protocol::T_STRING, 2); xfer += oprot->writeBinary(this->key_metadata); xfer += oprot->writeFieldEnd(); } @@ -4464,19 +6008,19 @@ void swap(EncryptionWithColumnKey &a, EncryptionWithColumnKey &b) { swap(a.__isset, b.__isset); } -EncryptionWithColumnKey::EncryptionWithColumnKey(const EncryptionWithColumnKey& other104) { - path_in_schema = other104.path_in_schema; - key_metadata = other104.key_metadata; - __isset = other104.__isset; +EncryptionWithColumnKey::EncryptionWithColumnKey(const EncryptionWithColumnKey& other134) { + path_in_schema = other134.path_in_schema; + key_metadata = other134.key_metadata; + __isset = other134.__isset; } -EncryptionWithColumnKey& EncryptionWithColumnKey::operator=(const EncryptionWithColumnKey& other105) { - path_in_schema = other105.path_in_schema; - key_metadata = other105.key_metadata; - __isset = other105.__isset; +EncryptionWithColumnKey& EncryptionWithColumnKey::operator=(const EncryptionWithColumnKey& other135) { + path_in_schema = other135.path_in_schema; + key_metadata = other135.key_metadata; + __isset = other135.__isset; return *this; } void EncryptionWithColumnKey::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "EncryptionWithColumnKey("; out << "path_in_schema=" << to_string(path_in_schema); out << ", " << "key_metadata="; (__isset.key_metadata ? (out << to_string(key_metadata)) : (out << "")); @@ -4484,9 +6028,11 @@ void EncryptionWithColumnKey::printTo(std::ostream& out) const { } -ColumnCryptoMetaData::~ColumnCryptoMetaData() throw() { +ColumnCryptoMetaData::~ColumnCryptoMetaData() noexcept { } +ColumnCryptoMetaData::ColumnCryptoMetaData() noexcept { +} void ColumnCryptoMetaData::__set_ENCRYPTION_WITH_FOOTER_KEY(const EncryptionWithFooterKey& val) { this->ENCRYPTION_WITH_FOOTER_KEY = val; @@ -4504,29 +6050,29 @@ std::ostream& operator<<(std::ostream& out, const ColumnCryptoMetaData& obj) } -uint32_t ColumnCryptoMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t ColumnCryptoMetaData::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->ENCRYPTION_WITH_FOOTER_KEY.read(iprot); this->__isset.ENCRYPTION_WITH_FOOTER_KEY = true; } else { @@ -4534,7 +6080,7 @@ uint32_t ColumnCryptoMetaData::read(::duckdb_apache::thrift::protocol::TProtocol } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->ENCRYPTION_WITH_COLUMN_KEY.read(iprot); this->__isset.ENCRYPTION_WITH_COLUMN_KEY = true; } else { @@ -4553,18 +6099,18 @@ uint32_t ColumnCryptoMetaData::read(::duckdb_apache::thrift::protocol::TProtocol return xfer; } -uint32_t ColumnCryptoMetaData::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t ColumnCryptoMetaData::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("ColumnCryptoMetaData"); if (this->__isset.ENCRYPTION_WITH_FOOTER_KEY) { - xfer += oprot->writeFieldBegin("ENCRYPTION_WITH_FOOTER_KEY", ::duckdb_apache::thrift::protocol::T_STRUCT, 1); + xfer += oprot->writeFieldBegin("ENCRYPTION_WITH_FOOTER_KEY", ::apache::thrift::protocol::T_STRUCT, 1); xfer += this->ENCRYPTION_WITH_FOOTER_KEY.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.ENCRYPTION_WITH_COLUMN_KEY) { - xfer += oprot->writeFieldBegin("ENCRYPTION_WITH_COLUMN_KEY", ::duckdb_apache::thrift::protocol::T_STRUCT, 2); + xfer += oprot->writeFieldBegin("ENCRYPTION_WITH_COLUMN_KEY", ::apache::thrift::protocol::T_STRUCT, 2); xfer += this->ENCRYPTION_WITH_COLUMN_KEY.write(oprot); xfer += oprot->writeFieldEnd(); } @@ -4580,19 +6126,19 @@ void swap(ColumnCryptoMetaData &a, ColumnCryptoMetaData &b) { swap(a.__isset, b.__isset); } -ColumnCryptoMetaData::ColumnCryptoMetaData(const ColumnCryptoMetaData& other106) { - ENCRYPTION_WITH_FOOTER_KEY = other106.ENCRYPTION_WITH_FOOTER_KEY; - ENCRYPTION_WITH_COLUMN_KEY = other106.ENCRYPTION_WITH_COLUMN_KEY; - __isset = other106.__isset; +ColumnCryptoMetaData::ColumnCryptoMetaData(const ColumnCryptoMetaData& other136) { + ENCRYPTION_WITH_FOOTER_KEY = other136.ENCRYPTION_WITH_FOOTER_KEY; + ENCRYPTION_WITH_COLUMN_KEY = other136.ENCRYPTION_WITH_COLUMN_KEY; + __isset = other136.__isset; } -ColumnCryptoMetaData& ColumnCryptoMetaData::operator=(const ColumnCryptoMetaData& other107) { - ENCRYPTION_WITH_FOOTER_KEY = other107.ENCRYPTION_WITH_FOOTER_KEY; - ENCRYPTION_WITH_COLUMN_KEY = other107.ENCRYPTION_WITH_COLUMN_KEY; - __isset = other107.__isset; +ColumnCryptoMetaData& ColumnCryptoMetaData::operator=(const ColumnCryptoMetaData& other137) { + ENCRYPTION_WITH_FOOTER_KEY = other137.ENCRYPTION_WITH_FOOTER_KEY; + ENCRYPTION_WITH_COLUMN_KEY = other137.ENCRYPTION_WITH_COLUMN_KEY; + __isset = other137.__isset; return *this; } void ColumnCryptoMetaData::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "ColumnCryptoMetaData("; out << "ENCRYPTION_WITH_FOOTER_KEY="; (__isset.ENCRYPTION_WITH_FOOTER_KEY ? (out << to_string(ENCRYPTION_WITH_FOOTER_KEY)) : (out << "")); out << ", " << "ENCRYPTION_WITH_COLUMN_KEY="; (__isset.ENCRYPTION_WITH_COLUMN_KEY ? (out << to_string(ENCRYPTION_WITH_COLUMN_KEY)) : (out << "")); @@ -4600,9 +6146,18 @@ void ColumnCryptoMetaData::printTo(std::ostream& out) const { } -ColumnChunk::~ColumnChunk() throw() { +ColumnChunk::~ColumnChunk() noexcept { } +ColumnChunk::ColumnChunk() noexcept + : file_path(), + file_offset(0LL), + offset_index_offset(0), + offset_index_length(0), + column_index_offset(0), + column_index_length(0), + encrypted_column_metadata() { +} void ColumnChunk::__set_file_path(const std::string& val) { this->file_path = val; @@ -4654,30 +6209,30 @@ std::ostream& operator<<(std::ostream& out, const ColumnChunk& obj) } -uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t ColumnChunk::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_file_offset = false; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->file_path); this->__isset.file_path = true; } else { @@ -4685,7 +6240,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->file_offset); isset_file_offset = true; } else { @@ -4693,7 +6248,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->meta_data.read(iprot); this->__isset.meta_data = true; } else { @@ -4701,7 +6256,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->offset_index_offset); this->__isset.offset_index_offset = true; } else { @@ -4709,7 +6264,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->offset_index_length); this->__isset.offset_index_length = true; } else { @@ -4717,7 +6272,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->column_index_offset); this->__isset.column_index_offset = true; } else { @@ -4725,7 +6280,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->column_index_length); this->__isset.column_index_length = true; } else { @@ -4733,7 +6288,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 8: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->crypto_metadata.read(iprot); this->__isset.crypto_metadata = true; } else { @@ -4741,7 +6296,7 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 9: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->encrypted_column_metadata); this->__isset.encrypted_column_metadata = true; } else { @@ -4762,52 +6317,52 @@ uint32_t ColumnChunk::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t ColumnChunk::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t ColumnChunk::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("ColumnChunk"); if (this->__isset.file_path) { - xfer += oprot->writeFieldBegin("file_path", ::duckdb_apache::thrift::protocol::T_STRING, 1); + xfer += oprot->writeFieldBegin("file_path", ::apache::thrift::protocol::T_STRING, 1); xfer += oprot->writeString(this->file_path); xfer += oprot->writeFieldEnd(); } - xfer += oprot->writeFieldBegin("file_offset", ::duckdb_apache::thrift::protocol::T_I64, 2); + xfer += oprot->writeFieldBegin("file_offset", ::apache::thrift::protocol::T_I64, 2); xfer += oprot->writeI64(this->file_offset); xfer += oprot->writeFieldEnd(); if (this->__isset.meta_data) { - xfer += oprot->writeFieldBegin("meta_data", ::duckdb_apache::thrift::protocol::T_STRUCT, 3); + xfer += oprot->writeFieldBegin("meta_data", ::apache::thrift::protocol::T_STRUCT, 3); xfer += this->meta_data.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.offset_index_offset) { - xfer += oprot->writeFieldBegin("offset_index_offset", ::duckdb_apache::thrift::protocol::T_I64, 4); + xfer += oprot->writeFieldBegin("offset_index_offset", ::apache::thrift::protocol::T_I64, 4); xfer += oprot->writeI64(this->offset_index_offset); xfer += oprot->writeFieldEnd(); } if (this->__isset.offset_index_length) { - xfer += oprot->writeFieldBegin("offset_index_length", ::duckdb_apache::thrift::protocol::T_I32, 5); + xfer += oprot->writeFieldBegin("offset_index_length", ::apache::thrift::protocol::T_I32, 5); xfer += oprot->writeI32(this->offset_index_length); xfer += oprot->writeFieldEnd(); } if (this->__isset.column_index_offset) { - xfer += oprot->writeFieldBegin("column_index_offset", ::duckdb_apache::thrift::protocol::T_I64, 6); + xfer += oprot->writeFieldBegin("column_index_offset", ::apache::thrift::protocol::T_I64, 6); xfer += oprot->writeI64(this->column_index_offset); xfer += oprot->writeFieldEnd(); } if (this->__isset.column_index_length) { - xfer += oprot->writeFieldBegin("column_index_length", ::duckdb_apache::thrift::protocol::T_I32, 7); + xfer += oprot->writeFieldBegin("column_index_length", ::apache::thrift::protocol::T_I32, 7); xfer += oprot->writeI32(this->column_index_length); xfer += oprot->writeFieldEnd(); } if (this->__isset.crypto_metadata) { - xfer += oprot->writeFieldBegin("crypto_metadata", ::duckdb_apache::thrift::protocol::T_STRUCT, 8); + xfer += oprot->writeFieldBegin("crypto_metadata", ::apache::thrift::protocol::T_STRUCT, 8); xfer += this->crypto_metadata.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.encrypted_column_metadata) { - xfer += oprot->writeFieldBegin("encrypted_column_metadata", ::duckdb_apache::thrift::protocol::T_STRING, 9); + xfer += oprot->writeFieldBegin("encrypted_column_metadata", ::apache::thrift::protocol::T_STRING, 9); xfer += oprot->writeBinary(this->encrypted_column_metadata); xfer += oprot->writeFieldEnd(); } @@ -4830,33 +6385,33 @@ void swap(ColumnChunk &a, ColumnChunk &b) { swap(a.__isset, b.__isset); } -ColumnChunk::ColumnChunk(const ColumnChunk& other108) { - file_path = other108.file_path; - file_offset = other108.file_offset; - meta_data = other108.meta_data; - offset_index_offset = other108.offset_index_offset; - offset_index_length = other108.offset_index_length; - column_index_offset = other108.column_index_offset; - column_index_length = other108.column_index_length; - crypto_metadata = other108.crypto_metadata; - encrypted_column_metadata = other108.encrypted_column_metadata; - __isset = other108.__isset; -} -ColumnChunk& ColumnChunk::operator=(const ColumnChunk& other109) { - file_path = other109.file_path; - file_offset = other109.file_offset; - meta_data = other109.meta_data; - offset_index_offset = other109.offset_index_offset; - offset_index_length = other109.offset_index_length; - column_index_offset = other109.column_index_offset; - column_index_length = other109.column_index_length; - crypto_metadata = other109.crypto_metadata; - encrypted_column_metadata = other109.encrypted_column_metadata; - __isset = other109.__isset; +ColumnChunk::ColumnChunk(const ColumnChunk& other138) { + file_path = other138.file_path; + file_offset = other138.file_offset; + meta_data = other138.meta_data; + offset_index_offset = other138.offset_index_offset; + offset_index_length = other138.offset_index_length; + column_index_offset = other138.column_index_offset; + column_index_length = other138.column_index_length; + crypto_metadata = other138.crypto_metadata; + encrypted_column_metadata = other138.encrypted_column_metadata; + __isset = other138.__isset; +} +ColumnChunk& ColumnChunk::operator=(const ColumnChunk& other139) { + file_path = other139.file_path; + file_offset = other139.file_offset; + meta_data = other139.meta_data; + offset_index_offset = other139.offset_index_offset; + offset_index_length = other139.offset_index_length; + column_index_offset = other139.column_index_offset; + column_index_length = other139.column_index_length; + crypto_metadata = other139.crypto_metadata; + encrypted_column_metadata = other139.encrypted_column_metadata; + __isset = other139.__isset; return *this; } void ColumnChunk::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "ColumnChunk("; out << "file_path="; (__isset.file_path ? (out << to_string(file_path)) : (out << "")); out << ", " << "file_offset=" << to_string(file_offset); @@ -4871,9 +6426,16 @@ void ColumnChunk::printTo(std::ostream& out) const { } -RowGroup::~RowGroup() throw() { +RowGroup::~RowGroup() noexcept { } +RowGroup::RowGroup() noexcept + : total_byte_size(0), + num_rows(0), + file_offset(0), + total_compressed_size(0), + ordinal(0) { +} void RowGroup::__set_columns(const duckdb::vector & val) { this->columns = val; @@ -4913,17 +6475,17 @@ std::ostream& operator<<(std::ostream& out, const RowGroup& obj) } -uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t RowGroup::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_columns = false; bool isset_total_byte_size = false; @@ -4932,23 +6494,23 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->columns.clear(); - uint32_t _size110; - ::duckdb_apache::thrift::protocol::TType _etype113; - xfer += iprot->readListBegin(_etype113, _size110); - this->columns.resize(_size110); - uint32_t _i114; - for (_i114 = 0; _i114 < _size110; ++_i114) + uint32_t _size140; + ::apache::thrift::protocol::TType _etype143; + xfer += iprot->readListBegin(_etype143, _size140); + this->columns.resize(_size140); + uint32_t _i144; + for (_i144 = 0; _i144 < _size140; ++_i144) { - xfer += this->columns[_i114].read(iprot); + xfer += this->columns[_i144].read(iprot); } xfer += iprot->readListEnd(); } @@ -4958,7 +6520,7 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->total_byte_size); isset_total_byte_size = true; } else { @@ -4966,7 +6528,7 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->num_rows); isset_num_rows = true; } else { @@ -4974,17 +6536,17 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->sorting_columns.clear(); - uint32_t _size115; - ::duckdb_apache::thrift::protocol::TType _etype118; - xfer += iprot->readListBegin(_etype118, _size115); - this->sorting_columns.resize(_size115); - uint32_t _i119; - for (_i119 = 0; _i119 < _size115; ++_i119) + uint32_t _size145; + ::apache::thrift::protocol::TType _etype148; + xfer += iprot->readListBegin(_etype148, _size145); + this->sorting_columns.resize(_size145); + uint32_t _i149; + for (_i149 = 0; _i149 < _size145; ++_i149) { - xfer += this->sorting_columns[_i119].read(iprot); + xfer += this->sorting_columns[_i149].read(iprot); } xfer += iprot->readListEnd(); } @@ -4994,7 +6556,7 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->file_offset); this->__isset.file_offset = true; } else { @@ -5002,7 +6564,7 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->total_compressed_size); this->__isset.total_compressed_size = true; } else { @@ -5010,7 +6572,7 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_I16) { + if (ftype == ::apache::thrift::protocol::T_I16) { xfer += iprot->readI16(this->ordinal); this->__isset.ordinal = true; } else { @@ -5035,56 +6597,56 @@ uint32_t RowGroup::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t RowGroup::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t RowGroup::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("RowGroup"); - xfer += oprot->writeFieldBegin("columns", ::duckdb_apache::thrift::protocol::T_LIST, 1); + xfer += oprot->writeFieldBegin("columns", ::apache::thrift::protocol::T_LIST, 1); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->columns.size())); - duckdb::vector ::const_iterator _iter120; - for (_iter120 = this->columns.begin(); _iter120 != this->columns.end(); ++_iter120) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->columns.size())); + duckdb::vector ::const_iterator _iter150; + for (_iter150 = this->columns.begin(); _iter150 != this->columns.end(); ++_iter150) { - xfer += (*_iter120).write(oprot); + xfer += (*_iter150).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("total_byte_size", ::duckdb_apache::thrift::protocol::T_I64, 2); + xfer += oprot->writeFieldBegin("total_byte_size", ::apache::thrift::protocol::T_I64, 2); xfer += oprot->writeI64(this->total_byte_size); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("num_rows", ::duckdb_apache::thrift::protocol::T_I64, 3); + xfer += oprot->writeFieldBegin("num_rows", ::apache::thrift::protocol::T_I64, 3); xfer += oprot->writeI64(this->num_rows); xfer += oprot->writeFieldEnd(); if (this->__isset.sorting_columns) { - xfer += oprot->writeFieldBegin("sorting_columns", ::duckdb_apache::thrift::protocol::T_LIST, 4); + xfer += oprot->writeFieldBegin("sorting_columns", ::apache::thrift::protocol::T_LIST, 4); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->sorting_columns.size())); - duckdb::vector ::const_iterator _iter121; - for (_iter121 = this->sorting_columns.begin(); _iter121 != this->sorting_columns.end(); ++_iter121) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->sorting_columns.size())); + duckdb::vector ::const_iterator _iter151; + for (_iter151 = this->sorting_columns.begin(); _iter151 != this->sorting_columns.end(); ++_iter151) { - xfer += (*_iter121).write(oprot); + xfer += (*_iter151).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); } if (this->__isset.file_offset) { - xfer += oprot->writeFieldBegin("file_offset", ::duckdb_apache::thrift::protocol::T_I64, 5); + xfer += oprot->writeFieldBegin("file_offset", ::apache::thrift::protocol::T_I64, 5); xfer += oprot->writeI64(this->file_offset); xfer += oprot->writeFieldEnd(); } if (this->__isset.total_compressed_size) { - xfer += oprot->writeFieldBegin("total_compressed_size", ::duckdb_apache::thrift::protocol::T_I64, 6); + xfer += oprot->writeFieldBegin("total_compressed_size", ::apache::thrift::protocol::T_I64, 6); xfer += oprot->writeI64(this->total_compressed_size); xfer += oprot->writeFieldEnd(); } if (this->__isset.ordinal) { - xfer += oprot->writeFieldBegin("ordinal", ::duckdb_apache::thrift::protocol::T_I16, 7); + xfer += oprot->writeFieldBegin("ordinal", ::apache::thrift::protocol::T_I16, 7); xfer += oprot->writeI16(this->ordinal); xfer += oprot->writeFieldEnd(); } @@ -5105,29 +6667,29 @@ void swap(RowGroup &a, RowGroup &b) { swap(a.__isset, b.__isset); } -RowGroup::RowGroup(const RowGroup& other122) { - columns = other122.columns; - total_byte_size = other122.total_byte_size; - num_rows = other122.num_rows; - sorting_columns = other122.sorting_columns; - file_offset = other122.file_offset; - total_compressed_size = other122.total_compressed_size; - ordinal = other122.ordinal; - __isset = other122.__isset; -} -RowGroup& RowGroup::operator=(const RowGroup& other123) { - columns = other123.columns; - total_byte_size = other123.total_byte_size; - num_rows = other123.num_rows; - sorting_columns = other123.sorting_columns; - file_offset = other123.file_offset; - total_compressed_size = other123.total_compressed_size; - ordinal = other123.ordinal; - __isset = other123.__isset; +RowGroup::RowGroup(const RowGroup& other152) { + columns = other152.columns; + total_byte_size = other152.total_byte_size; + num_rows = other152.num_rows; + sorting_columns = other152.sorting_columns; + file_offset = other152.file_offset; + total_compressed_size = other152.total_compressed_size; + ordinal = other152.ordinal; + __isset = other152.__isset; +} +RowGroup& RowGroup::operator=(const RowGroup& other153) { + columns = other153.columns; + total_byte_size = other153.total_byte_size; + num_rows = other153.num_rows; + sorting_columns = other153.sorting_columns; + file_offset = other153.file_offset; + total_compressed_size = other153.total_compressed_size; + ordinal = other153.ordinal; + __isset = other153.__isset; return *this; } void RowGroup::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "RowGroup("; out << "columns=" << to_string(columns); out << ", " << "total_byte_size=" << to_string(total_byte_size); @@ -5140,9 +6702,11 @@ void RowGroup::printTo(std::ostream& out) const { } -TypeDefinedOrder::~TypeDefinedOrder() throw() { +TypeDefinedOrder::~TypeDefinedOrder() noexcept { } +TypeDefinedOrder::TypeDefinedOrder() noexcept { +} std::ostream& operator<<(std::ostream& out, const TypeDefinedOrder& obj) { obj.printTo(out); @@ -5150,23 +6714,23 @@ std::ostream& operator<<(std::ostream& out, const TypeDefinedOrder& obj) } -uint32_t TypeDefinedOrder::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t TypeDefinedOrder::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } xfer += iprot->skip(ftype); @@ -5178,9 +6742,9 @@ uint32_t TypeDefinedOrder::read(::duckdb_apache::thrift::protocol::TProtocol* ip return xfer; } -uint32_t TypeDefinedOrder::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t TypeDefinedOrder::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("TypeDefinedOrder"); xfer += oprot->writeFieldStop(); @@ -5194,23 +6758,25 @@ void swap(TypeDefinedOrder &a, TypeDefinedOrder &b) { (void) b; } -TypeDefinedOrder::TypeDefinedOrder(const TypeDefinedOrder& other124) { - (void) other124; +TypeDefinedOrder::TypeDefinedOrder(const TypeDefinedOrder& other154) noexcept { + (void) other154; } -TypeDefinedOrder& TypeDefinedOrder::operator=(const TypeDefinedOrder& other125) { - (void) other125; +TypeDefinedOrder& TypeDefinedOrder::operator=(const TypeDefinedOrder& other155) noexcept { + (void) other155; return *this; } void TypeDefinedOrder::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "TypeDefinedOrder("; out << ")"; } -ColumnOrder::~ColumnOrder() throw() { +ColumnOrder::~ColumnOrder() noexcept { } +ColumnOrder::ColumnOrder() noexcept { +} void ColumnOrder::__set_TYPE_ORDER(const TypeDefinedOrder& val) { this->TYPE_ORDER = val; @@ -5223,29 +6789,29 @@ std::ostream& operator<<(std::ostream& out, const ColumnOrder& obj) } -uint32_t ColumnOrder::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t ColumnOrder::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->TYPE_ORDER.read(iprot); this->__isset.TYPE_ORDER = true; } else { @@ -5264,13 +6830,13 @@ uint32_t ColumnOrder::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t ColumnOrder::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t ColumnOrder::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("ColumnOrder"); if (this->__isset.TYPE_ORDER) { - xfer += oprot->writeFieldBegin("TYPE_ORDER", ::duckdb_apache::thrift::protocol::T_STRUCT, 1); + xfer += oprot->writeFieldBegin("TYPE_ORDER", ::apache::thrift::protocol::T_STRUCT, 1); xfer += this->TYPE_ORDER.write(oprot); xfer += oprot->writeFieldEnd(); } @@ -5285,26 +6851,31 @@ void swap(ColumnOrder &a, ColumnOrder &b) { swap(a.__isset, b.__isset); } -ColumnOrder::ColumnOrder(const ColumnOrder& other126) { - TYPE_ORDER = other126.TYPE_ORDER; - __isset = other126.__isset; +ColumnOrder::ColumnOrder(const ColumnOrder& other156) noexcept { + TYPE_ORDER = other156.TYPE_ORDER; + __isset = other156.__isset; } -ColumnOrder& ColumnOrder::operator=(const ColumnOrder& other127) { - TYPE_ORDER = other127.TYPE_ORDER; - __isset = other127.__isset; +ColumnOrder& ColumnOrder::operator=(const ColumnOrder& other157) noexcept { + TYPE_ORDER = other157.TYPE_ORDER; + __isset = other157.__isset; return *this; } void ColumnOrder::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "ColumnOrder("; out << "TYPE_ORDER="; (__isset.TYPE_ORDER ? (out << to_string(TYPE_ORDER)) : (out << "")); out << ")"; } -PageLocation::~PageLocation() throw() { +PageLocation::~PageLocation() noexcept { } +PageLocation::PageLocation() noexcept + : offset(0), + compressed_page_size(0), + first_row_index(0) { +} void PageLocation::__set_offset(const int64_t val) { this->offset = val; @@ -5324,17 +6895,17 @@ std::ostream& operator<<(std::ostream& out, const PageLocation& obj) } -uint32_t PageLocation::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t PageLocation::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_offset = false; bool isset_compressed_page_size = false; @@ -5343,13 +6914,13 @@ uint32_t PageLocation::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->offset); isset_offset = true; } else { @@ -5357,7 +6928,7 @@ uint32_t PageLocation::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->compressed_page_size); isset_compressed_page_size = true; } else { @@ -5365,7 +6936,7 @@ uint32_t PageLocation::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->first_row_index); isset_first_row_index = true; } else { @@ -5390,20 +6961,20 @@ uint32_t PageLocation::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t PageLocation::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t PageLocation::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("PageLocation"); - xfer += oprot->writeFieldBegin("offset", ::duckdb_apache::thrift::protocol::T_I64, 1); + xfer += oprot->writeFieldBegin("offset", ::apache::thrift::protocol::T_I64, 1); xfer += oprot->writeI64(this->offset); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("compressed_page_size", ::duckdb_apache::thrift::protocol::T_I32, 2); + xfer += oprot->writeFieldBegin("compressed_page_size", ::apache::thrift::protocol::T_I32, 2); xfer += oprot->writeI32(this->compressed_page_size); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("first_row_index", ::duckdb_apache::thrift::protocol::T_I64, 3); + xfer += oprot->writeFieldBegin("first_row_index", ::apache::thrift::protocol::T_I64, 3); xfer += oprot->writeI64(this->first_row_index); xfer += oprot->writeFieldEnd(); @@ -5419,19 +6990,19 @@ void swap(PageLocation &a, PageLocation &b) { swap(a.first_row_index, b.first_row_index); } -PageLocation::PageLocation(const PageLocation& other128) { - offset = other128.offset; - compressed_page_size = other128.compressed_page_size; - first_row_index = other128.first_row_index; +PageLocation::PageLocation(const PageLocation& other158) noexcept { + offset = other158.offset; + compressed_page_size = other158.compressed_page_size; + first_row_index = other158.first_row_index; } -PageLocation& PageLocation::operator=(const PageLocation& other129) { - offset = other129.offset; - compressed_page_size = other129.compressed_page_size; - first_row_index = other129.first_row_index; +PageLocation& PageLocation::operator=(const PageLocation& other159) noexcept { + offset = other159.offset; + compressed_page_size = other159.compressed_page_size; + first_row_index = other159.first_row_index; return *this; } void PageLocation::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "PageLocation("; out << "offset=" << to_string(offset); out << ", " << "compressed_page_size=" << to_string(compressed_page_size); @@ -5440,13 +7011,20 @@ void PageLocation::printTo(std::ostream& out) const { } -OffsetIndex::~OffsetIndex() throw() { +OffsetIndex::~OffsetIndex() noexcept { } +OffsetIndex::OffsetIndex() noexcept { +} void OffsetIndex::__set_page_locations(const duckdb::vector & val) { this->page_locations = val; } + +void OffsetIndex::__set_unencoded_byte_array_data_bytes(const duckdb::vector & val) { + this->unencoded_byte_array_data_bytes = val; +__isset.unencoded_byte_array_data_bytes = true; +} std::ostream& operator<<(std::ostream& out, const OffsetIndex& obj) { obj.printTo(out); @@ -5454,40 +7032,40 @@ std::ostream& operator<<(std::ostream& out, const OffsetIndex& obj) } -uint32_t OffsetIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t OffsetIndex::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_page_locations = false; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->page_locations.clear(); - uint32_t _size130; - ::duckdb_apache::thrift::protocol::TType _etype133; - xfer += iprot->readListBegin(_etype133, _size130); - this->page_locations.resize(_size130); - uint32_t _i134; - for (_i134 = 0; _i134 < _size130; ++_i134) + uint32_t _size160; + ::apache::thrift::protocol::TType _etype163; + xfer += iprot->readListBegin(_etype163, _size160); + this->page_locations.resize(_size160); + uint32_t _i164; + for (_i164 = 0; _i164 < _size160; ++_i164) { - xfer += this->page_locations[_i134].read(iprot); + xfer += this->page_locations[_i164].read(iprot); } xfer += iprot->readListEnd(); } @@ -5496,6 +7074,26 @@ uint32_t OffsetIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) xfer += iprot->skip(ftype); } break; + case 2: + if (ftype == ::apache::thrift::protocol::T_LIST) { + { + this->unencoded_byte_array_data_bytes.clear(); + uint32_t _size165; + ::apache::thrift::protocol::TType _etype168; + xfer += iprot->readListBegin(_etype168, _size165); + this->unencoded_byte_array_data_bytes.resize(_size165); + uint32_t _i169; + for (_i169 = 0; _i169 < _size165; ++_i169) + { + xfer += iprot->readI64(this->unencoded_byte_array_data_bytes[_i169]); + } + xfer += iprot->readListEnd(); + } + this->__isset.unencoded_byte_array_data_bytes = true; + } else { + xfer += iprot->skip(ftype); + } + break; default: xfer += iprot->skip(ftype); break; @@ -5510,23 +7108,36 @@ uint32_t OffsetIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t OffsetIndex::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t OffsetIndex::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("OffsetIndex"); - xfer += oprot->writeFieldBegin("page_locations", ::duckdb_apache::thrift::protocol::T_LIST, 1); + xfer += oprot->writeFieldBegin("page_locations", ::apache::thrift::protocol::T_LIST, 1); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->page_locations.size())); - duckdb::vector ::const_iterator _iter135; - for (_iter135 = this->page_locations.begin(); _iter135 != this->page_locations.end(); ++_iter135) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->page_locations.size())); + duckdb::vector ::const_iterator _iter170; + for (_iter170 = this->page_locations.begin(); _iter170 != this->page_locations.end(); ++_iter170) { - xfer += (*_iter135).write(oprot); + xfer += (*_iter170).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); + if (this->__isset.unencoded_byte_array_data_bytes) { + xfer += oprot->writeFieldBegin("unencoded_byte_array_data_bytes", ::apache::thrift::protocol::T_LIST, 2); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast(this->unencoded_byte_array_data_bytes.size())); + duckdb::vector ::const_iterator _iter171; + for (_iter171 = this->unencoded_byte_array_data_bytes.begin(); _iter171 != this->unencoded_byte_array_data_bytes.end(); ++_iter171) + { + xfer += oprot->writeI64((*_iter171)); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeFieldEnd(); + } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; @@ -5535,26 +7146,36 @@ uint32_t OffsetIndex::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) void swap(OffsetIndex &a, OffsetIndex &b) { using ::std::swap; swap(a.page_locations, b.page_locations); + swap(a.unencoded_byte_array_data_bytes, b.unencoded_byte_array_data_bytes); + swap(a.__isset, b.__isset); } -OffsetIndex::OffsetIndex(const OffsetIndex& other136) { - page_locations = other136.page_locations; +OffsetIndex::OffsetIndex(const OffsetIndex& other172) { + page_locations = other172.page_locations; + unencoded_byte_array_data_bytes = other172.unencoded_byte_array_data_bytes; + __isset = other172.__isset; } -OffsetIndex& OffsetIndex::operator=(const OffsetIndex& other137) { - page_locations = other137.page_locations; +OffsetIndex& OffsetIndex::operator=(const OffsetIndex& other173) { + page_locations = other173.page_locations; + unencoded_byte_array_data_bytes = other173.unencoded_byte_array_data_bytes; + __isset = other173.__isset; return *this; } void OffsetIndex::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "OffsetIndex("; out << "page_locations=" << to_string(page_locations); + out << ", " << "unencoded_byte_array_data_bytes="; (__isset.unencoded_byte_array_data_bytes ? (out << to_string(unencoded_byte_array_data_bytes)) : (out << "")); out << ")"; } -ColumnIndex::~ColumnIndex() throw() { +ColumnIndex::~ColumnIndex() noexcept { } +ColumnIndex::ColumnIndex() noexcept + : boundary_order(static_cast(0)) { +} void ColumnIndex::__set_null_pages(const duckdb::vector & val) { this->null_pages = val; @@ -5576,6 +7197,16 @@ void ColumnIndex::__set_null_counts(const duckdb::vector & val) { this->null_counts = val; __isset.null_counts = true; } + +void ColumnIndex::__set_repetition_level_histograms(const duckdb::vector & val) { + this->repetition_level_histograms = val; +__isset.repetition_level_histograms = true; +} + +void ColumnIndex::__set_definition_level_histograms(const duckdb::vector & val) { + this->definition_level_histograms = val; +__isset.definition_level_histograms = true; +} std::ostream& operator<<(std::ostream& out, const ColumnIndex& obj) { obj.printTo(out); @@ -5583,17 +7214,17 @@ std::ostream& operator<<(std::ostream& out, const ColumnIndex& obj) } -uint32_t ColumnIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t ColumnIndex::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_null_pages = false; bool isset_min_values = false; @@ -5603,23 +7234,23 @@ uint32_t ColumnIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->null_pages.clear(); - uint32_t _size138; - ::duckdb_apache::thrift::protocol::TType _etype141; - xfer += iprot->readListBegin(_etype141, _size138); - this->null_pages.resize(_size138); - uint32_t _i142; - for (_i142 = 0; _i142 < _size138; ++_i142) + uint32_t _size174; + ::apache::thrift::protocol::TType _etype177; + xfer += iprot->readListBegin(_etype177, _size174); + this->null_pages.resize(_size174); + uint32_t _i178; + for (_i178 = 0; _i178 < _size174; ++_i178) { - xfer += iprot->readBool(this->null_pages[_i142]); + xfer += iprot->readBool(this->null_pages[_i178]); } xfer += iprot->readListEnd(); } @@ -5629,17 +7260,17 @@ uint32_t ColumnIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->min_values.clear(); - uint32_t _size143; - ::duckdb_apache::thrift::protocol::TType _etype146; - xfer += iprot->readListBegin(_etype146, _size143); - this->min_values.resize(_size143); - uint32_t _i147; - for (_i147 = 0; _i147 < _size143; ++_i147) + uint32_t _size179; + ::apache::thrift::protocol::TType _etype182; + xfer += iprot->readListBegin(_etype182, _size179); + this->min_values.resize(_size179); + uint32_t _i183; + for (_i183 = 0; _i183 < _size179; ++_i183) { - xfer += iprot->readBinary(this->min_values[_i147]); + xfer += iprot->readBinary(this->min_values[_i183]); } xfer += iprot->readListEnd(); } @@ -5649,17 +7280,17 @@ uint32_t ColumnIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->max_values.clear(); - uint32_t _size148; - ::duckdb_apache::thrift::protocol::TType _etype151; - xfer += iprot->readListBegin(_etype151, _size148); - this->max_values.resize(_size148); - uint32_t _i152; - for (_i152 = 0; _i152 < _size148; ++_i152) + uint32_t _size184; + ::apache::thrift::protocol::TType _etype187; + xfer += iprot->readListBegin(_etype187, _size184); + this->max_values.resize(_size184); + uint32_t _i188; + for (_i188 = 0; _i188 < _size184; ++_i188) { - xfer += iprot->readBinary(this->max_values[_i152]); + xfer += iprot->readBinary(this->max_values[_i188]); } xfer += iprot->readListEnd(); } @@ -5669,27 +7300,27 @@ uint32_t ColumnIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { - int32_t ecast153; - xfer += iprot->readI32(ecast153); - this->boundary_order = (BoundaryOrder::type)ecast153; + if (ftype == ::apache::thrift::protocol::T_I32) { + int32_t ecast189; + xfer += iprot->readI32(ecast189); + this->boundary_order = static_cast(ecast189); isset_boundary_order = true; } else { xfer += iprot->skip(ftype); } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->null_counts.clear(); - uint32_t _size154; - ::duckdb_apache::thrift::protocol::TType _etype157; - xfer += iprot->readListBegin(_etype157, _size154); - this->null_counts.resize(_size154); - uint32_t _i158; - for (_i158 = 0; _i158 < _size154; ++_i158) + uint32_t _size190; + ::apache::thrift::protocol::TType _etype193; + xfer += iprot->readListBegin(_etype193, _size190); + this->null_counts.resize(_size190); + uint32_t _i194; + for (_i194 = 0; _i194 < _size190; ++_i194) { - xfer += iprot->readI64(this->null_counts[_i158]); + xfer += iprot->readI64(this->null_counts[_i194]); } xfer += iprot->readListEnd(); } @@ -5698,6 +7329,46 @@ uint32_t ColumnIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) xfer += iprot->skip(ftype); } break; + case 6: + if (ftype == ::apache::thrift::protocol::T_LIST) { + { + this->repetition_level_histograms.clear(); + uint32_t _size195; + ::apache::thrift::protocol::TType _etype198; + xfer += iprot->readListBegin(_etype198, _size195); + this->repetition_level_histograms.resize(_size195); + uint32_t _i199; + for (_i199 = 0; _i199 < _size195; ++_i199) + { + xfer += iprot->readI64(this->repetition_level_histograms[_i199]); + } + xfer += iprot->readListEnd(); + } + this->__isset.repetition_level_histograms = true; + } else { + xfer += iprot->skip(ftype); + } + break; + case 7: + if (ftype == ::apache::thrift::protocol::T_LIST) { + { + this->definition_level_histograms.clear(); + uint32_t _size200; + ::apache::thrift::protocol::TType _etype203; + xfer += iprot->readListBegin(_etype203, _size200); + this->definition_level_histograms.resize(_size200); + uint32_t _i204; + for (_i204 = 0; _i204 < _size200; ++_i204) + { + xfer += iprot->readI64(this->definition_level_histograms[_i204]); + } + xfer += iprot->readListEnd(); + } + this->__isset.definition_level_histograms = true; + } else { + xfer += iprot->skip(ftype); + } + break; default: xfer += iprot->skip(ftype); break; @@ -5718,59 +7389,85 @@ uint32_t ColumnIndex::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t ColumnIndex::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t ColumnIndex::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("ColumnIndex"); - xfer += oprot->writeFieldBegin("null_pages", ::duckdb_apache::thrift::protocol::T_LIST, 1); + xfer += oprot->writeFieldBegin("null_pages", ::apache::thrift::protocol::T_LIST, 1); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_BOOL, static_cast(this->null_pages.size())); - duckdb::vector ::const_iterator _iter159; - for (_iter159 = this->null_pages.begin(); _iter159 != this->null_pages.end(); ++_iter159) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_BOOL, static_cast(this->null_pages.size())); + duckdb::vector ::const_iterator _iter205; + for (_iter205 = this->null_pages.begin(); _iter205 != this->null_pages.end(); ++_iter205) { - xfer += oprot->writeBool((*_iter159)); + xfer += oprot->writeBool((*_iter205)); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("min_values", ::duckdb_apache::thrift::protocol::T_LIST, 2); + xfer += oprot->writeFieldBegin("min_values", ::apache::thrift::protocol::T_LIST, 2); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRING, static_cast(this->min_values.size())); - duckdb::vector ::const_iterator _iter160; - for (_iter160 = this->min_values.begin(); _iter160 != this->min_values.end(); ++_iter160) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->min_values.size())); + duckdb::vector ::const_iterator _iter206; + for (_iter206 = this->min_values.begin(); _iter206 != this->min_values.end(); ++_iter206) { - xfer += oprot->writeBinary((*_iter160)); + xfer += oprot->writeBinary((*_iter206)); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("max_values", ::duckdb_apache::thrift::protocol::T_LIST, 3); + xfer += oprot->writeFieldBegin("max_values", ::apache::thrift::protocol::T_LIST, 3); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRING, static_cast(this->max_values.size())); - duckdb::vector ::const_iterator _iter161; - for (_iter161 = this->max_values.begin(); _iter161 != this->max_values.end(); ++_iter161) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast(this->max_values.size())); + duckdb::vector ::const_iterator _iter207; + for (_iter207 = this->max_values.begin(); _iter207 != this->max_values.end(); ++_iter207) { - xfer += oprot->writeBinary((*_iter161)); + xfer += oprot->writeBinary((*_iter207)); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("boundary_order", ::duckdb_apache::thrift::protocol::T_I32, 4); - xfer += oprot->writeI32((int32_t)this->boundary_order); + xfer += oprot->writeFieldBegin("boundary_order", ::apache::thrift::protocol::T_I32, 4); + xfer += oprot->writeI32(static_cast(this->boundary_order)); xfer += oprot->writeFieldEnd(); if (this->__isset.null_counts) { - xfer += oprot->writeFieldBegin("null_counts", ::duckdb_apache::thrift::protocol::T_LIST, 5); + xfer += oprot->writeFieldBegin("null_counts", ::apache::thrift::protocol::T_LIST, 5); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast(this->null_counts.size())); + duckdb::vector ::const_iterator _iter208; + for (_iter208 = this->null_counts.begin(); _iter208 != this->null_counts.end(); ++_iter208) + { + xfer += oprot->writeI64((*_iter208)); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.repetition_level_histograms) { + xfer += oprot->writeFieldBegin("repetition_level_histograms", ::apache::thrift::protocol::T_LIST, 6); + { + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast(this->repetition_level_histograms.size())); + duckdb::vector ::const_iterator _iter209; + for (_iter209 = this->repetition_level_histograms.begin(); _iter209 != this->repetition_level_histograms.end(); ++_iter209) + { + xfer += oprot->writeI64((*_iter209)); + } + xfer += oprot->writeListEnd(); + } + xfer += oprot->writeFieldEnd(); + } + if (this->__isset.definition_level_histograms) { + xfer += oprot->writeFieldBegin("definition_level_histograms", ::apache::thrift::protocol::T_LIST, 7); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_I64, static_cast(this->null_counts.size())); - duckdb::vector ::const_iterator _iter162; - for (_iter162 = this->null_counts.begin(); _iter162 != this->null_counts.end(); ++_iter162) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_I64, static_cast(this->definition_level_histograms.size())); + duckdb::vector ::const_iterator _iter210; + for (_iter210 = this->definition_level_histograms.begin(); _iter210 != this->definition_level_histograms.end(); ++_iter210) { - xfer += oprot->writeI64((*_iter162)); + xfer += oprot->writeI64((*_iter210)); } xfer += oprot->writeListEnd(); } @@ -5788,41 +7485,54 @@ void swap(ColumnIndex &a, ColumnIndex &b) { swap(a.max_values, b.max_values); swap(a.boundary_order, b.boundary_order); swap(a.null_counts, b.null_counts); + swap(a.repetition_level_histograms, b.repetition_level_histograms); + swap(a.definition_level_histograms, b.definition_level_histograms); swap(a.__isset, b.__isset); } -ColumnIndex::ColumnIndex(const ColumnIndex& other163) { - null_pages = other163.null_pages; - min_values = other163.min_values; - max_values = other163.max_values; - boundary_order = other163.boundary_order; - null_counts = other163.null_counts; - __isset = other163.__isset; -} -ColumnIndex& ColumnIndex::operator=(const ColumnIndex& other164) { - null_pages = other164.null_pages; - min_values = other164.min_values; - max_values = other164.max_values; - boundary_order = other164.boundary_order; - null_counts = other164.null_counts; - __isset = other164.__isset; +ColumnIndex::ColumnIndex(const ColumnIndex& other211) { + null_pages = other211.null_pages; + min_values = other211.min_values; + max_values = other211.max_values; + boundary_order = other211.boundary_order; + null_counts = other211.null_counts; + repetition_level_histograms = other211.repetition_level_histograms; + definition_level_histograms = other211.definition_level_histograms; + __isset = other211.__isset; +} +ColumnIndex& ColumnIndex::operator=(const ColumnIndex& other212) { + null_pages = other212.null_pages; + min_values = other212.min_values; + max_values = other212.max_values; + boundary_order = other212.boundary_order; + null_counts = other212.null_counts; + repetition_level_histograms = other212.repetition_level_histograms; + definition_level_histograms = other212.definition_level_histograms; + __isset = other212.__isset; return *this; } void ColumnIndex::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "ColumnIndex("; out << "null_pages=" << to_string(null_pages); out << ", " << "min_values=" << to_string(min_values); out << ", " << "max_values=" << to_string(max_values); out << ", " << "boundary_order=" << to_string(boundary_order); out << ", " << "null_counts="; (__isset.null_counts ? (out << to_string(null_counts)) : (out << "")); + out << ", " << "repetition_level_histograms="; (__isset.repetition_level_histograms ? (out << to_string(repetition_level_histograms)) : (out << "")); + out << ", " << "definition_level_histograms="; (__isset.definition_level_histograms ? (out << to_string(definition_level_histograms)) : (out << "")); out << ")"; } -AesGcmV1::~AesGcmV1() throw() { +AesGcmV1::~AesGcmV1() noexcept { } +AesGcmV1::AesGcmV1() noexcept + : aad_prefix(), + aad_file_unique(), + supply_aad_prefix(0) { +} void AesGcmV1::__set_aad_prefix(const std::string& val) { this->aad_prefix = val; @@ -5845,29 +7555,29 @@ std::ostream& operator<<(std::ostream& out, const AesGcmV1& obj) } -uint32_t AesGcmV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t AesGcmV1::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->aad_prefix); this->__isset.aad_prefix = true; } else { @@ -5875,7 +7585,7 @@ uint32_t AesGcmV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->aad_file_unique); this->__isset.aad_file_unique = true; } else { @@ -5883,7 +7593,7 @@ uint32_t AesGcmV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->supply_aad_prefix); this->__isset.supply_aad_prefix = true; } else { @@ -5902,23 +7612,23 @@ uint32_t AesGcmV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { return xfer; } -uint32_t AesGcmV1::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t AesGcmV1::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("AesGcmV1"); if (this->__isset.aad_prefix) { - xfer += oprot->writeFieldBegin("aad_prefix", ::duckdb_apache::thrift::protocol::T_STRING, 1); + xfer += oprot->writeFieldBegin("aad_prefix", ::apache::thrift::protocol::T_STRING, 1); xfer += oprot->writeBinary(this->aad_prefix); xfer += oprot->writeFieldEnd(); } if (this->__isset.aad_file_unique) { - xfer += oprot->writeFieldBegin("aad_file_unique", ::duckdb_apache::thrift::protocol::T_STRING, 2); + xfer += oprot->writeFieldBegin("aad_file_unique", ::apache::thrift::protocol::T_STRING, 2); xfer += oprot->writeBinary(this->aad_file_unique); xfer += oprot->writeFieldEnd(); } if (this->__isset.supply_aad_prefix) { - xfer += oprot->writeFieldBegin("supply_aad_prefix", ::duckdb_apache::thrift::protocol::T_BOOL, 3); + xfer += oprot->writeFieldBegin("supply_aad_prefix", ::apache::thrift::protocol::T_BOOL, 3); xfer += oprot->writeBool(this->supply_aad_prefix); xfer += oprot->writeFieldEnd(); } @@ -5935,21 +7645,21 @@ void swap(AesGcmV1 &a, AesGcmV1 &b) { swap(a.__isset, b.__isset); } -AesGcmV1::AesGcmV1(const AesGcmV1& other165) { - aad_prefix = other165.aad_prefix; - aad_file_unique = other165.aad_file_unique; - supply_aad_prefix = other165.supply_aad_prefix; - __isset = other165.__isset; +AesGcmV1::AesGcmV1(const AesGcmV1& other213) { + aad_prefix = other213.aad_prefix; + aad_file_unique = other213.aad_file_unique; + supply_aad_prefix = other213.supply_aad_prefix; + __isset = other213.__isset; } -AesGcmV1& AesGcmV1::operator=(const AesGcmV1& other166) { - aad_prefix = other166.aad_prefix; - aad_file_unique = other166.aad_file_unique; - supply_aad_prefix = other166.supply_aad_prefix; - __isset = other166.__isset; +AesGcmV1& AesGcmV1::operator=(const AesGcmV1& other214) { + aad_prefix = other214.aad_prefix; + aad_file_unique = other214.aad_file_unique; + supply_aad_prefix = other214.supply_aad_prefix; + __isset = other214.__isset; return *this; } void AesGcmV1::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "AesGcmV1("; out << "aad_prefix="; (__isset.aad_prefix ? (out << to_string(aad_prefix)) : (out << "")); out << ", " << "aad_file_unique="; (__isset.aad_file_unique ? (out << to_string(aad_file_unique)) : (out << "")); @@ -5958,9 +7668,14 @@ void AesGcmV1::printTo(std::ostream& out) const { } -AesGcmCtrV1::~AesGcmCtrV1() throw() { +AesGcmCtrV1::~AesGcmCtrV1() noexcept { } +AesGcmCtrV1::AesGcmCtrV1() noexcept + : aad_prefix(), + aad_file_unique(), + supply_aad_prefix(0) { +} void AesGcmCtrV1::__set_aad_prefix(const std::string& val) { this->aad_prefix = val; @@ -5983,29 +7698,29 @@ std::ostream& operator<<(std::ostream& out, const AesGcmCtrV1& obj) } -uint32_t AesGcmCtrV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t AesGcmCtrV1::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->aad_prefix); this->__isset.aad_prefix = true; } else { @@ -6013,7 +7728,7 @@ uint32_t AesGcmCtrV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->aad_file_unique); this->__isset.aad_file_unique = true; } else { @@ -6021,7 +7736,7 @@ uint32_t AesGcmCtrV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_BOOL) { + if (ftype == ::apache::thrift::protocol::T_BOOL) { xfer += iprot->readBool(this->supply_aad_prefix); this->__isset.supply_aad_prefix = true; } else { @@ -6040,23 +7755,23 @@ uint32_t AesGcmCtrV1::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t AesGcmCtrV1::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t AesGcmCtrV1::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("AesGcmCtrV1"); if (this->__isset.aad_prefix) { - xfer += oprot->writeFieldBegin("aad_prefix", ::duckdb_apache::thrift::protocol::T_STRING, 1); + xfer += oprot->writeFieldBegin("aad_prefix", ::apache::thrift::protocol::T_STRING, 1); xfer += oprot->writeBinary(this->aad_prefix); xfer += oprot->writeFieldEnd(); } if (this->__isset.aad_file_unique) { - xfer += oprot->writeFieldBegin("aad_file_unique", ::duckdb_apache::thrift::protocol::T_STRING, 2); + xfer += oprot->writeFieldBegin("aad_file_unique", ::apache::thrift::protocol::T_STRING, 2); xfer += oprot->writeBinary(this->aad_file_unique); xfer += oprot->writeFieldEnd(); } if (this->__isset.supply_aad_prefix) { - xfer += oprot->writeFieldBegin("supply_aad_prefix", ::duckdb_apache::thrift::protocol::T_BOOL, 3); + xfer += oprot->writeFieldBegin("supply_aad_prefix", ::apache::thrift::protocol::T_BOOL, 3); xfer += oprot->writeBool(this->supply_aad_prefix); xfer += oprot->writeFieldEnd(); } @@ -6073,21 +7788,21 @@ void swap(AesGcmCtrV1 &a, AesGcmCtrV1 &b) { swap(a.__isset, b.__isset); } -AesGcmCtrV1::AesGcmCtrV1(const AesGcmCtrV1& other167) { - aad_prefix = other167.aad_prefix; - aad_file_unique = other167.aad_file_unique; - supply_aad_prefix = other167.supply_aad_prefix; - __isset = other167.__isset; +AesGcmCtrV1::AesGcmCtrV1(const AesGcmCtrV1& other215) { + aad_prefix = other215.aad_prefix; + aad_file_unique = other215.aad_file_unique; + supply_aad_prefix = other215.supply_aad_prefix; + __isset = other215.__isset; } -AesGcmCtrV1& AesGcmCtrV1::operator=(const AesGcmCtrV1& other168) { - aad_prefix = other168.aad_prefix; - aad_file_unique = other168.aad_file_unique; - supply_aad_prefix = other168.supply_aad_prefix; - __isset = other168.__isset; +AesGcmCtrV1& AesGcmCtrV1::operator=(const AesGcmCtrV1& other216) { + aad_prefix = other216.aad_prefix; + aad_file_unique = other216.aad_file_unique; + supply_aad_prefix = other216.supply_aad_prefix; + __isset = other216.__isset; return *this; } void AesGcmCtrV1::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "AesGcmCtrV1("; out << "aad_prefix="; (__isset.aad_prefix ? (out << to_string(aad_prefix)) : (out << "")); out << ", " << "aad_file_unique="; (__isset.aad_file_unique ? (out << to_string(aad_file_unique)) : (out << "")); @@ -6096,9 +7811,11 @@ void AesGcmCtrV1::printTo(std::ostream& out) const { } -EncryptionAlgorithm::~EncryptionAlgorithm() throw() { +EncryptionAlgorithm::~EncryptionAlgorithm() noexcept { } +EncryptionAlgorithm::EncryptionAlgorithm() noexcept { +} void EncryptionAlgorithm::__set_AES_GCM_V1(const AesGcmV1& val) { this->AES_GCM_V1 = val; @@ -6116,29 +7833,29 @@ std::ostream& operator<<(std::ostream& out, const EncryptionAlgorithm& obj) } -uint32_t EncryptionAlgorithm::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t EncryptionAlgorithm::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->AES_GCM_V1.read(iprot); this->__isset.AES_GCM_V1 = true; } else { @@ -6146,7 +7863,7 @@ uint32_t EncryptionAlgorithm::read(::duckdb_apache::thrift::protocol::TProtocol* } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->AES_GCM_CTR_V1.read(iprot); this->__isset.AES_GCM_CTR_V1 = true; } else { @@ -6165,18 +7882,18 @@ uint32_t EncryptionAlgorithm::read(::duckdb_apache::thrift::protocol::TProtocol* return xfer; } -uint32_t EncryptionAlgorithm::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t EncryptionAlgorithm::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("EncryptionAlgorithm"); if (this->__isset.AES_GCM_V1) { - xfer += oprot->writeFieldBegin("AES_GCM_V1", ::duckdb_apache::thrift::protocol::T_STRUCT, 1); + xfer += oprot->writeFieldBegin("AES_GCM_V1", ::apache::thrift::protocol::T_STRUCT, 1); xfer += this->AES_GCM_V1.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.AES_GCM_CTR_V1) { - xfer += oprot->writeFieldBegin("AES_GCM_CTR_V1", ::duckdb_apache::thrift::protocol::T_STRUCT, 2); + xfer += oprot->writeFieldBegin("AES_GCM_CTR_V1", ::apache::thrift::protocol::T_STRUCT, 2); xfer += this->AES_GCM_CTR_V1.write(oprot); xfer += oprot->writeFieldEnd(); } @@ -6192,19 +7909,19 @@ void swap(EncryptionAlgorithm &a, EncryptionAlgorithm &b) { swap(a.__isset, b.__isset); } -EncryptionAlgorithm::EncryptionAlgorithm(const EncryptionAlgorithm& other169) { - AES_GCM_V1 = other169.AES_GCM_V1; - AES_GCM_CTR_V1 = other169.AES_GCM_CTR_V1; - __isset = other169.__isset; +EncryptionAlgorithm::EncryptionAlgorithm(const EncryptionAlgorithm& other217) { + AES_GCM_V1 = other217.AES_GCM_V1; + AES_GCM_CTR_V1 = other217.AES_GCM_CTR_V1; + __isset = other217.__isset; } -EncryptionAlgorithm& EncryptionAlgorithm::operator=(const EncryptionAlgorithm& other170) { - AES_GCM_V1 = other170.AES_GCM_V1; - AES_GCM_CTR_V1 = other170.AES_GCM_CTR_V1; - __isset = other170.__isset; +EncryptionAlgorithm& EncryptionAlgorithm::operator=(const EncryptionAlgorithm& other218) { + AES_GCM_V1 = other218.AES_GCM_V1; + AES_GCM_CTR_V1 = other218.AES_GCM_CTR_V1; + __isset = other218.__isset; return *this; } void EncryptionAlgorithm::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "EncryptionAlgorithm("; out << "AES_GCM_V1="; (__isset.AES_GCM_V1 ? (out << to_string(AES_GCM_V1)) : (out << "")); out << ", " << "AES_GCM_CTR_V1="; (__isset.AES_GCM_CTR_V1 ? (out << to_string(AES_GCM_CTR_V1)) : (out << "")); @@ -6212,9 +7929,15 @@ void EncryptionAlgorithm::printTo(std::ostream& out) const { } -FileMetaData::~FileMetaData() throw() { +FileMetaData::~FileMetaData() noexcept { } +FileMetaData::FileMetaData() noexcept + : version(0), + num_rows(0), + created_by(), + footer_signing_key_metadata() { +} void FileMetaData::__set_version(const int32_t val) { this->version = val; @@ -6263,17 +7986,17 @@ std::ostream& operator<<(std::ostream& out, const FileMetaData& obj) } -uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t FileMetaData::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_version = false; bool isset_schema = false; @@ -6283,13 +8006,13 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_I32) { + if (ftype == ::apache::thrift::protocol::T_I32) { xfer += iprot->readI32(this->version); isset_version = true; } else { @@ -6297,17 +8020,17 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->schema.clear(); - uint32_t _size171; - ::duckdb_apache::thrift::protocol::TType _etype174; - xfer += iprot->readListBegin(_etype174, _size171); - this->schema.resize(_size171); - uint32_t _i175; - for (_i175 = 0; _i175 < _size171; ++_i175) + uint32_t _size219; + ::apache::thrift::protocol::TType _etype222; + xfer += iprot->readListBegin(_etype222, _size219); + this->schema.resize(_size219); + uint32_t _i223; + for (_i223 = 0; _i223 < _size219; ++_i223) { - xfer += this->schema[_i175].read(iprot); + xfer += this->schema[_i223].read(iprot); } xfer += iprot->readListEnd(); } @@ -6317,7 +8040,7 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 3: - if (ftype == ::duckdb_apache::thrift::protocol::T_I64) { + if (ftype == ::apache::thrift::protocol::T_I64) { xfer += iprot->readI64(this->num_rows); isset_num_rows = true; } else { @@ -6325,17 +8048,17 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 4: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->row_groups.clear(); - uint32_t _size176; - ::duckdb_apache::thrift::protocol::TType _etype179; - xfer += iprot->readListBegin(_etype179, _size176); - this->row_groups.resize(_size176); - uint32_t _i180; - for (_i180 = 0; _i180 < _size176; ++_i180) + uint32_t _size224; + ::apache::thrift::protocol::TType _etype227; + xfer += iprot->readListBegin(_etype227, _size224); + this->row_groups.resize(_size224); + uint32_t _i228; + for (_i228 = 0; _i228 < _size224; ++_i228) { - xfer += this->row_groups[_i180].read(iprot); + xfer += this->row_groups[_i228].read(iprot); } xfer += iprot->readListEnd(); } @@ -6345,17 +8068,17 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 5: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->key_value_metadata.clear(); - uint32_t _size181; - ::duckdb_apache::thrift::protocol::TType _etype184; - xfer += iprot->readListBegin(_etype184, _size181); - this->key_value_metadata.resize(_size181); - uint32_t _i185; - for (_i185 = 0; _i185 < _size181; ++_i185) + uint32_t _size229; + ::apache::thrift::protocol::TType _etype232; + xfer += iprot->readListBegin(_etype232, _size229); + this->key_value_metadata.resize(_size229); + uint32_t _i233; + for (_i233 = 0; _i233 < _size229; ++_i233) { - xfer += this->key_value_metadata[_i185].read(iprot); + xfer += this->key_value_metadata[_i233].read(iprot); } xfer += iprot->readListEnd(); } @@ -6365,7 +8088,7 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 6: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->created_by); this->__isset.created_by = true; } else { @@ -6373,17 +8096,17 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 7: - if (ftype == ::duckdb_apache::thrift::protocol::T_LIST) { + if (ftype == ::apache::thrift::protocol::T_LIST) { { this->column_orders.clear(); - uint32_t _size186; - ::duckdb_apache::thrift::protocol::TType _etype189; - xfer += iprot->readListBegin(_etype189, _size186); - this->column_orders.resize(_size186); - uint32_t _i190; - for (_i190 = 0; _i190 < _size186; ++_i190) + uint32_t _size234; + ::apache::thrift::protocol::TType _etype237; + xfer += iprot->readListBegin(_etype237, _size234); + this->column_orders.resize(_size234); + uint32_t _i238; + for (_i238 = 0; _i238 < _size234; ++_i238) { - xfer += this->column_orders[_i190].read(iprot); + xfer += this->column_orders[_i238].read(iprot); } xfer += iprot->readListEnd(); } @@ -6393,7 +8116,7 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 8: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->encryption_algorithm.read(iprot); this->__isset.encryption_algorithm = true; } else { @@ -6401,7 +8124,7 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) } break; case 9: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->footer_signing_key_metadata); this->__isset.footer_signing_key_metadata = true; } else { @@ -6428,81 +8151,81 @@ uint32_t FileMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) return xfer; } -uint32_t FileMetaData::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t FileMetaData::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("FileMetaData"); - xfer += oprot->writeFieldBegin("version", ::duckdb_apache::thrift::protocol::T_I32, 1); + xfer += oprot->writeFieldBegin("version", ::apache::thrift::protocol::T_I32, 1); xfer += oprot->writeI32(this->version); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("schema", ::duckdb_apache::thrift::protocol::T_LIST, 2); + xfer += oprot->writeFieldBegin("schema", ::apache::thrift::protocol::T_LIST, 2); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->schema.size())); - duckdb::vector ::const_iterator _iter191; - for (_iter191 = this->schema.begin(); _iter191 != this->schema.end(); ++_iter191) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->schema.size())); + duckdb::vector ::const_iterator _iter239; + for (_iter239 = this->schema.begin(); _iter239 != this->schema.end(); ++_iter239) { - xfer += (*_iter191).write(oprot); + xfer += (*_iter239).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("num_rows", ::duckdb_apache::thrift::protocol::T_I64, 3); + xfer += oprot->writeFieldBegin("num_rows", ::apache::thrift::protocol::T_I64, 3); xfer += oprot->writeI64(this->num_rows); xfer += oprot->writeFieldEnd(); - xfer += oprot->writeFieldBegin("row_groups", ::duckdb_apache::thrift::protocol::T_LIST, 4); + xfer += oprot->writeFieldBegin("row_groups", ::apache::thrift::protocol::T_LIST, 4); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->row_groups.size())); - duckdb::vector ::const_iterator _iter192; - for (_iter192 = this->row_groups.begin(); _iter192 != this->row_groups.end(); ++_iter192) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->row_groups.size())); + duckdb::vector ::const_iterator _iter240; + for (_iter240 = this->row_groups.begin(); _iter240 != this->row_groups.end(); ++_iter240) { - xfer += (*_iter192).write(oprot); + xfer += (*_iter240).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); if (this->__isset.key_value_metadata) { - xfer += oprot->writeFieldBegin("key_value_metadata", ::duckdb_apache::thrift::protocol::T_LIST, 5); + xfer += oprot->writeFieldBegin("key_value_metadata", ::apache::thrift::protocol::T_LIST, 5); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->key_value_metadata.size())); - duckdb::vector ::const_iterator _iter193; - for (_iter193 = this->key_value_metadata.begin(); _iter193 != this->key_value_metadata.end(); ++_iter193) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->key_value_metadata.size())); + duckdb::vector ::const_iterator _iter241; + for (_iter241 = this->key_value_metadata.begin(); _iter241 != this->key_value_metadata.end(); ++_iter241) { - xfer += (*_iter193).write(oprot); + xfer += (*_iter241).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); } if (this->__isset.created_by) { - xfer += oprot->writeFieldBegin("created_by", ::duckdb_apache::thrift::protocol::T_STRING, 6); + xfer += oprot->writeFieldBegin("created_by", ::apache::thrift::protocol::T_STRING, 6); xfer += oprot->writeString(this->created_by); xfer += oprot->writeFieldEnd(); } if (this->__isset.column_orders) { - xfer += oprot->writeFieldBegin("column_orders", ::duckdb_apache::thrift::protocol::T_LIST, 7); + xfer += oprot->writeFieldBegin("column_orders", ::apache::thrift::protocol::T_LIST, 7); { - xfer += oprot->writeListBegin(::duckdb_apache::thrift::protocol::T_STRUCT, static_cast(this->column_orders.size())); - duckdb::vector ::const_iterator _iter194; - for (_iter194 = this->column_orders.begin(); _iter194 != this->column_orders.end(); ++_iter194) + xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRUCT, static_cast(this->column_orders.size())); + duckdb::vector ::const_iterator _iter242; + for (_iter242 = this->column_orders.begin(); _iter242 != this->column_orders.end(); ++_iter242) { - xfer += (*_iter194).write(oprot); + xfer += (*_iter242).write(oprot); } xfer += oprot->writeListEnd(); } xfer += oprot->writeFieldEnd(); } if (this->__isset.encryption_algorithm) { - xfer += oprot->writeFieldBegin("encryption_algorithm", ::duckdb_apache::thrift::protocol::T_STRUCT, 8); + xfer += oprot->writeFieldBegin("encryption_algorithm", ::apache::thrift::protocol::T_STRUCT, 8); xfer += this->encryption_algorithm.write(oprot); xfer += oprot->writeFieldEnd(); } if (this->__isset.footer_signing_key_metadata) { - xfer += oprot->writeFieldBegin("footer_signing_key_metadata", ::duckdb_apache::thrift::protocol::T_STRING, 9); + xfer += oprot->writeFieldBegin("footer_signing_key_metadata", ::apache::thrift::protocol::T_STRING, 9); xfer += oprot->writeBinary(this->footer_signing_key_metadata); xfer += oprot->writeFieldEnd(); } @@ -6525,34 +8248,33 @@ void swap(FileMetaData &a, FileMetaData &b) { swap(a.__isset, b.__isset); } -FileMetaData::FileMetaData(const FileMetaData& other195) { - version = other195.version; - schema = other195.schema; - num_rows = other195.num_rows; - row_groups = other195.row_groups; - key_value_metadata = other195.key_value_metadata; - created_by = other195.created_by; - column_orders = other195.column_orders; - encryption_algorithm = other195.encryption_algorithm; - footer_signing_key_metadata = other195.footer_signing_key_metadata; - __isset = other195.__isset; -} -FileMetaData& FileMetaData::operator=(const FileMetaData& other196) { - version = other196.version; - schema = other196.schema; - num_rows = other196.num_rows; - row_groups = other196.row_groups; - key_value_metadata = other196.key_value_metadata; - created_by = other196.created_by; - column_orders = other196.column_orders; - encryption_algorithm = other196.encryption_algorithm; - footer_signing_key_metadata = other196.footer_signing_key_metadata; - __isset = other196.__isset; +FileMetaData::FileMetaData(const FileMetaData& other243) { + version = other243.version; + schema = other243.schema; + num_rows = other243.num_rows; + row_groups = other243.row_groups; + key_value_metadata = other243.key_value_metadata; + created_by = other243.created_by; + column_orders = other243.column_orders; + encryption_algorithm = other243.encryption_algorithm; + footer_signing_key_metadata = other243.footer_signing_key_metadata; + __isset = other243.__isset; +} +FileMetaData& FileMetaData::operator=(const FileMetaData& other244) { + version = other244.version; + schema = other244.schema; + num_rows = other244.num_rows; + row_groups = other244.row_groups; + key_value_metadata = other244.key_value_metadata; + created_by = other244.created_by; + column_orders = other244.column_orders; + encryption_algorithm = other244.encryption_algorithm; + footer_signing_key_metadata = other244.footer_signing_key_metadata; + __isset = other244.__isset; return *this; } - void FileMetaData::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "FileMetaData("; out << "version=" << to_string(version); out << ", " << "schema=" << to_string(schema); @@ -6567,9 +8289,12 @@ void FileMetaData::printTo(std::ostream& out) const { } -FileCryptoMetaData::~FileCryptoMetaData() throw() { +FileCryptoMetaData::~FileCryptoMetaData() noexcept { } +FileCryptoMetaData::FileCryptoMetaData() noexcept + : key_metadata() { +} void FileCryptoMetaData::__set_encryption_algorithm(const EncryptionAlgorithm& val) { this->encryption_algorithm = val; @@ -6586,30 +8311,30 @@ std::ostream& operator<<(std::ostream& out, const FileCryptoMetaData& obj) } -uint32_t FileCryptoMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* iprot) { +uint32_t FileCryptoMetaData::read(::apache::thrift::protocol::TProtocol* iprot) { - ::duckdb_apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); + ::apache::thrift::protocol::TInputRecursionTracker tracker(*iprot); uint32_t xfer = 0; std::string fname; - ::duckdb_apache::thrift::protocol::TType ftype; + ::apache::thrift::protocol::TType ftype; int16_t fid; xfer += iprot->readStructBegin(fname); - using ::duckdb_apache::thrift::protocol::TProtocolException; + using ::apache::thrift::protocol::TProtocolException; bool isset_encryption_algorithm = false; while (true) { xfer += iprot->readFieldBegin(fname, ftype, fid); - if (ftype == ::duckdb_apache::thrift::protocol::T_STOP) { + if (ftype == ::apache::thrift::protocol::T_STOP) { break; } switch (fid) { case 1: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRUCT) { + if (ftype == ::apache::thrift::protocol::T_STRUCT) { xfer += this->encryption_algorithm.read(iprot); isset_encryption_algorithm = true; } else { @@ -6617,7 +8342,7 @@ uint32_t FileCryptoMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* } break; case 2: - if (ftype == ::duckdb_apache::thrift::protocol::T_STRING) { + if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readBinary(this->key_metadata); this->__isset.key_metadata = true; } else { @@ -6638,17 +8363,17 @@ uint32_t FileCryptoMetaData::read(::duckdb_apache::thrift::protocol::TProtocol* return xfer; } -uint32_t FileCryptoMetaData::write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const { +uint32_t FileCryptoMetaData::write(::apache::thrift::protocol::TProtocol* oprot) const { uint32_t xfer = 0; - ::duckdb_apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); + ::apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot); xfer += oprot->writeStructBegin("FileCryptoMetaData"); - xfer += oprot->writeFieldBegin("encryption_algorithm", ::duckdb_apache::thrift::protocol::T_STRUCT, 1); + xfer += oprot->writeFieldBegin("encryption_algorithm", ::apache::thrift::protocol::T_STRUCT, 1); xfer += this->encryption_algorithm.write(oprot); xfer += oprot->writeFieldEnd(); if (this->__isset.key_metadata) { - xfer += oprot->writeFieldBegin("key_metadata", ::duckdb_apache::thrift::protocol::T_STRING, 2); + xfer += oprot->writeFieldBegin("key_metadata", ::apache::thrift::protocol::T_STRING, 2); xfer += oprot->writeBinary(this->key_metadata); xfer += oprot->writeFieldEnd(); } @@ -6664,24 +8389,23 @@ void swap(FileCryptoMetaData &a, FileCryptoMetaData &b) { swap(a.__isset, b.__isset); } -FileCryptoMetaData::FileCryptoMetaData(const FileCryptoMetaData& other197) { - encryption_algorithm = other197.encryption_algorithm; - key_metadata = other197.key_metadata; - __isset = other197.__isset; +FileCryptoMetaData::FileCryptoMetaData(const FileCryptoMetaData& other245) { + encryption_algorithm = other245.encryption_algorithm; + key_metadata = other245.key_metadata; + __isset = other245.__isset; } -FileCryptoMetaData& FileCryptoMetaData::operator=(const FileCryptoMetaData& other198) { - encryption_algorithm = other198.encryption_algorithm; - key_metadata = other198.key_metadata; - __isset = other198.__isset; +FileCryptoMetaData& FileCryptoMetaData::operator=(const FileCryptoMetaData& other246) { + encryption_algorithm = other246.encryption_algorithm; + key_metadata = other246.key_metadata; + __isset = other246.__isset; return *this; } void FileCryptoMetaData::printTo(std::ostream& out) const { - using ::duckdb_apache::thrift::to_string; + using ::apache::thrift::to_string; out << "FileCryptoMetaData("; out << "encryption_algorithm=" << to_string(encryption_algorithm); out << ", " << "key_metadata="; (__isset.key_metadata ? (out << to_string(key_metadata)) : (out << "")); out << ")"; } - -}} // namespace \ No newline at end of file +} // namespace diff --git a/src/duckdb/third_party/parquet/parquet_types.h b/src/duckdb/third_party/parquet/parquet_types.h index af109ee9..df8cf5f1 100644 --- a/src/duckdb/third_party/parquet/parquet_types.h +++ b/src/duckdb/third_party/parquet/parquet_types.h @@ -1,5 +1,5 @@ /** - * Autogenerated by Thrift Compiler (0.11.0) + * Autogenerated by Thrift Compiler (0.21.0) * * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING * @generated @@ -9,20 +9,27 @@ #include -#include "duckdb/common/vector.hpp" +#include +#include +#include +#include +#include -#include "thrift/Thrift.h" -#include "thrift/TApplicationException.h" -#include "thrift/TBase.h" -#include "thrift/protocol/TProtocol.h" -#include "thrift/transport/TTransport.h" +#include +#include -#include "thrift/stdcxx.h" #include "windows_compatibility.h" +namespace apache = duckdb_apache; -namespace duckdb_parquet { namespace format { +namespace duckdb_parquet { +/** + * Types supported by Parquet. These types are intended to be used in combination + * with the encodings to control the on disk storage format. + * For example INT16 is not included as a type since a good encoding of INT32 + * would handle this. + */ struct Type { enum type { BOOLEAN = 0, @@ -36,66 +43,263 @@ struct Type { }; }; +extern const std::map _Type_VALUES_TO_NAMES; + std::ostream& operator<<(std::ostream& out, const Type::type& val); +std::string to_string(const Type::type& val); + +/** + * DEPRECATED: Common types used by frameworks(e.g. hive, pig) using parquet. + * ConvertedType is superseded by LogicalType. This enum should not be extended. + * + * See LogicalTypes.md for conversion between ConvertedType and LogicalType. + */ struct ConvertedType { enum type { + /** + * a BYTE_ARRAY actually contains UTF8 encoded chars + */ UTF8 = 0, + /** + * a map is converted as an optional field containing a repeated key/value pair + */ MAP = 1, + /** + * a key/value pair is converted into a group of two fields + */ MAP_KEY_VALUE = 2, + /** + * a list is converted into an optional field containing a repeated field for its + * values + */ LIST = 3, + /** + * an enum is converted into a BYTE_ARRAY field + */ ENUM = 4, + /** + * A decimal value. + * + * This may be used to annotate BYTE_ARRAY or FIXED_LEN_BYTE_ARRAY primitive + * types. The underlying byte array stores the unscaled value encoded as two's + * complement using big-endian byte order (the most significant byte is the + * zeroth element). The value of the decimal is the value * 10^{-scale}. + * + * This must be accompanied by a (maximum) precision and a scale in the + * SchemaElement. The precision specifies the number of digits in the decimal + * and the scale stores the location of the decimal point. For example 1.23 + * would have precision 3 (3 total digits) and scale 2 (the decimal point is + * 2 digits over). + */ DECIMAL = 5, + /** + * A Date + * + * Stored as days since Unix epoch, encoded as the INT32 physical type. + * + */ DATE = 6, + /** + * A time + * + * The total number of milliseconds since midnight. The value is stored + * as an INT32 physical type. + */ TIME_MILLIS = 7, + /** + * A time. + * + * The total number of microseconds since midnight. The value is stored as + * an INT64 physical type. + */ TIME_MICROS = 8, + /** + * A date/time combination + * + * Date and time recorded as milliseconds since the Unix epoch. Recorded as + * a physical type of INT64. + */ TIMESTAMP_MILLIS = 9, + /** + * A date/time combination + * + * Date and time recorded as microseconds since the Unix epoch. The value is + * stored as an INT64 physical type. + */ TIMESTAMP_MICROS = 10, + /** + * An unsigned integer value. + * + * The number describes the maximum number of meaningful data bits in + * the stored value. 8, 16 and 32 bit values are stored using the + * INT32 physical type. 64 bit values are stored using the INT64 + * physical type. + * + */ UINT_8 = 11, UINT_16 = 12, UINT_32 = 13, UINT_64 = 14, + /** + * A signed integer value. + * + * The number describes the maximum number of meaningful data bits in + * the stored value. 8, 16 and 32 bit values are stored using the + * INT32 physical type. 64 bit values are stored using the INT64 + * physical type. + * + */ INT_8 = 15, INT_16 = 16, INT_32 = 17, INT_64 = 18, + /** + * An embedded JSON document + * + * A JSON document embedded within a single UTF8 column. + */ JSON = 19, + /** + * An embedded BSON document + * + * A BSON document embedded within a single BYTE_ARRAY column. + */ BSON = 20, - INTERVAL = 21, - NULL_TYPE = 24 + /** + * An interval of time + * + * This type annotates data stored as a FIXED_LEN_BYTE_ARRAY of length 12 + * This data is composed of three separate little endian unsigned + * integers. Each stores a component of a duration of time. The first + * integer identifies the number of months associated with the duration, + * the second identifies the number of days associated with the duration + * and the third identifies the number of milliseconds associated with + * the provided duration. This duration of time is independent of any + * particular timezone or date. + */ + INTERVAL = 21 }; }; +extern const std::map _ConvertedType_VALUES_TO_NAMES; + std::ostream& operator<<(std::ostream& out, const ConvertedType::type& val); +std::string to_string(const ConvertedType::type& val); + +/** + * Representation of Schemas + */ struct FieldRepetitionType { enum type { + /** + * This field is required (can not be null) and each row has exactly 1 value. + */ REQUIRED = 0, + /** + * The field is optional (can be null) and each row has 0 or 1 values. + */ OPTIONAL = 1, + /** + * The field is repeated and can contain 0 or more values + */ REPEATED = 2 }; }; +extern const std::map _FieldRepetitionType_VALUES_TO_NAMES; + std::ostream& operator<<(std::ostream& out, const FieldRepetitionType::type& val); +std::string to_string(const FieldRepetitionType::type& val); + +/** + * Encodings supported by Parquet. Not all encodings are valid for all types. These + * enums are also used to specify the encoding of definition and repetition levels. + * See the accompanying doc for the details of the more complicated encodings. + */ struct Encoding { enum type { + /** + * Default encoding. + * BOOLEAN - 1 bit per value. 0 is false; 1 is true. + * INT32 - 4 bytes per value. Stored as little-endian. + * INT64 - 8 bytes per value. Stored as little-endian. + * FLOAT - 4 bytes per value. IEEE. Stored as little-endian. + * DOUBLE - 8 bytes per value. IEEE. Stored as little-endian. + * BYTE_ARRAY - 4 byte length stored as little endian, followed by bytes. + * FIXED_LEN_BYTE_ARRAY - Just the bytes. + */ PLAIN = 0, + /** + * Deprecated: Dictionary encoding. The values in the dictionary are encoded in the + * plain type. + * in a data page use RLE_DICTIONARY instead. + * in a Dictionary page use PLAIN instead + */ PLAIN_DICTIONARY = 2, + /** + * Group packed run length encoding. Usable for definition/repetition levels + * encoding and Booleans (on one bit: 0 is false; 1 is true.) + */ RLE = 3, + /** + * Bit packed encoding. This can only be used if the data has a known max + * width. Usable for definition/repetition levels encoding. + */ BIT_PACKED = 4, + /** + * Delta encoding for integers. This can be used for int columns and works best + * on sorted data + */ DELTA_BINARY_PACKED = 5, + /** + * Encoding for byte arrays to separate the length values and the data. The lengths + * are encoded using DELTA_BINARY_PACKED + */ DELTA_LENGTH_BYTE_ARRAY = 6, + /** + * Incremental-encoded byte array. Prefix lengths are encoded using DELTA_BINARY_PACKED. + * Suffixes are stored as delta length byte arrays. + */ DELTA_BYTE_ARRAY = 7, + /** + * Dictionary encoding: the ids are encoded using the RLE encoding + */ RLE_DICTIONARY = 8, - BYTE_STREAM_SPLIT = 9, + /** + * Encoding for fixed-width data (FLOAT, DOUBLE, INT32, INT64, FIXED_LEN_BYTE_ARRAY). + * K byte-streams are created where K is the size in bytes of the data type. + * The individual bytes of a value are scattered to the corresponding stream and + * the streams are concatenated. + * This itself does not reduce the size of the data but can lead to better compression + * afterwards. + * + * Added in 2.8 for FLOAT and DOUBLE. + * Support for INT32, INT64 and FIXED_LEN_BYTE_ARRAY added in 2.11. + */ + BYTE_STREAM_SPLIT = 9 }; }; +extern const std::map _Encoding_VALUES_TO_NAMES; + std::ostream& operator<<(std::ostream& out, const Encoding::type& val); +std::string to_string(const Encoding::type& val); + +/** + * Supported compression algorithms. + * + * Codecs added in format version X.Y can be read by readers based on X.Y and later. + * Codec support may vary between readers based on the format version and + * libraries available at runtime. + * + * See Compression.md for a detailed specification of these algorithms. + */ struct CompressionCodec { - enum type : uint8_t { + enum type { UNCOMPRESSED = 0, SNAPPY = 1, GZIP = 2, @@ -103,12 +307,16 @@ struct CompressionCodec { BROTLI = 4, LZ4 = 5, ZSTD = 6, - LZ4_RAW = 7 + LZ4_RAW = 7 }; }; +extern const std::map _CompressionCodec_VALUES_TO_NAMES; + std::ostream& operator<<(std::ostream& out, const CompressionCodec::type& val); +std::string to_string(const CompressionCodec::type& val); + struct PageType { enum type { DATA_PAGE = 0, @@ -118,8 +326,16 @@ struct PageType { }; }; +extern const std::map _PageType_VALUES_TO_NAMES; + std::ostream& operator<<(std::ostream& out, const PageType::type& val); +std::string to_string(const PageType::type& val); + +/** + * Enum to annotate whether lists of min/max elements inside ColumnIndex + * are ordered and if so, in which direction. + */ struct BoundaryOrder { enum type { UNORDERED = 0, @@ -128,8 +344,14 @@ struct BoundaryOrder { }; }; +extern const std::map _BoundaryOrder_VALUES_TO_NAMES; + std::ostream& operator<<(std::ostream& out, const BoundaryOrder::type& val); +std::string to_string(const BoundaryOrder::type& val); + +class SizeStatistics; + class Statistics; class StringType; @@ -144,6 +366,8 @@ class EnumType; class DateType; +class Float16Type; + class NullType; class DecimalType; @@ -178,6 +402,20 @@ class DictionaryPageHeader; class DataPageHeaderV2; +class SplitBlockAlgorithm; + +class BloomFilterAlgorithm; + +class XxHash; + +class BloomFilterHash; + +class Uncompressed; + +class BloomFilterCompression; + +class BloomFilterHeader; + class PageHeader; class KeyValue; @@ -218,31 +456,159 @@ class FileMetaData; class FileCryptoMetaData; +typedef struct _SizeStatistics__isset { + _SizeStatistics__isset() : unencoded_byte_array_data_bytes(false), repetition_level_histogram(false), definition_level_histogram(false) {} + bool unencoded_byte_array_data_bytes :1; + bool repetition_level_histogram :1; + bool definition_level_histogram :1; +} _SizeStatistics__isset; + +/** + * A structure for capturing metadata for estimating the unencoded, + * uncompressed size of data written. This is useful for readers to estimate + * how much memory is needed to reconstruct data in their memory model and for + * fine grained filter pushdown on nested structures (the histograms contained + * in this structure can help determine the number of nulls at a particular + * nesting level and maximum length of lists). + */ +class SizeStatistics : public virtual ::apache::thrift::TBase { + public: + + SizeStatistics(const SizeStatistics&); + SizeStatistics& operator=(const SizeStatistics&); + SizeStatistics() noexcept; + + virtual ~SizeStatistics() noexcept; + /** + * The number of physical bytes stored for BYTE_ARRAY data values assuming + * no encoding. This is exclusive of the bytes needed to store the length of + * each byte array. In other words, this field is equivalent to the `(size + * of PLAIN-ENCODING the byte array values) - (4 bytes * number of values + * written)`. To determine unencoded sizes of other types readers can use + * schema information multiplied by the number of non-null and null values. + * The number of null/non-null values can be inferred from the histograms + * below. + * + * For example, if a column chunk is dictionary-encoded with dictionary + * ["a", "bc", "cde"], and a data page contains the indices [0, 0, 1, 2], + * then this value for that data page should be 7 (1 + 1 + 2 + 3). + * + * This field should only be set for types that use BYTE_ARRAY as their + * physical type. + */ + int64_t unencoded_byte_array_data_bytes; + /** + * When present, there is expected to be one element corresponding to each + * repetition (i.e. size=max repetition_level+1) where each element + * represents the number of times the repetition level was observed in the + * data. + * + * This field may be omitted if max_repetition_level is 0 without loss + * of information. + * + */ + duckdb::vector repetition_level_histogram; + /** + * Same as repetition_level_histogram except for definition levels. + * + * This field may be omitted if max_definition_level is 0 or 1 without + * loss of information. + * + */ + duckdb::vector definition_level_histogram; + + _SizeStatistics__isset __isset; + + void __set_unencoded_byte_array_data_bytes(const int64_t val); + + void __set_repetition_level_histogram(const duckdb::vector & val); + + void __set_definition_level_histogram(const duckdb::vector & val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(SizeStatistics &a, SizeStatistics &b); + +std::ostream& operator<<(std::ostream& out, const SizeStatistics& obj); + typedef struct _Statistics__isset { - _Statistics__isset() : max(false), min(false), null_count(false), distinct_count(false), max_value(false), min_value(false) {} + _Statistics__isset() : max(false), min(false), null_count(false), distinct_count(false), max_value(false), min_value(false), is_max_value_exact(false), is_min_value_exact(false) {} bool max :1; bool min :1; bool null_count :1; bool distinct_count :1; bool max_value :1; bool min_value :1; + bool is_max_value_exact :1; + bool is_min_value_exact :1; } _Statistics__isset; -class Statistics : public virtual ::duckdb_apache::thrift::TBase { +/** + * Statistics per row group and per page + * All fields are optional. + */ +class Statistics : public virtual ::apache::thrift::TBase { public: Statistics(const Statistics&); Statistics& operator=(const Statistics&); - Statistics() : max(), min(), null_count(0), distinct_count(0), max_value(), min_value() { - } - - virtual ~Statistics() throw(); + Statistics() noexcept; + + virtual ~Statistics() noexcept; + /** + * DEPRECATED: min and max value of the column. Use min_value and max_value. + * + * Values are encoded using PLAIN encoding, except that variable-length byte + * arrays do not include a length prefix. + * + * These fields encode min and max values determined by signed comparison + * only. New files should use the correct order for a column's logical type + * and store the values in the min_value and max_value fields. + * + * To support older readers, these may be set when the column order is + * signed. + */ std::string max; std::string min; + /** + * Count of null values in the column. + * + * Writers SHOULD always write this field even if it is zero (i.e. no null value) + * or the column is not nullable. + * Readers MUST distinguish between null_count not being present and null_count == 0. + * If null_count is not present, readers MUST NOT assume null_count == 0. + */ int64_t null_count; + /** + * count of distinct values occurring + */ int64_t distinct_count; + /** + * Lower and upper bound values for the column, determined by its ColumnOrder. + * + * These may be the actual minimum and maximum values found on a page or column + * chunk, but can also be (more compact) values that do not exist on a page or + * column chunk. For example, instead of storing "Blart Versenwald III", a writer + * may set min_value="B", max_value="C". Such more compact values must still be + * valid values within the column's logical type. + * + * Values are encoded using PLAIN encoding, except that variable-length byte + * arrays do not include a length prefix. + */ std::string max_value; std::string min_value; + /** + * If true, max_value is the actual maximum value for a column + */ + bool is_max_value_exact; + /** + * If true, min_value is the actual minimum value for a column + */ + bool is_min_value_exact; _Statistics__isset __isset; @@ -258,42 +624,12 @@ class Statistics : public virtual ::duckdb_apache::thrift::TBase { void __set_min_value(const std::string& val); - bool operator == (const Statistics & rhs) const - { - if (__isset.max != rhs.__isset.max) - return false; - else if (__isset.max && !(max == rhs.max)) - return false; - if (__isset.min != rhs.__isset.min) - return false; - else if (__isset.min && !(min == rhs.min)) - return false; - if (__isset.null_count != rhs.__isset.null_count) - return false; - else if (__isset.null_count && !(null_count == rhs.null_count)) - return false; - if (__isset.distinct_count != rhs.__isset.distinct_count) - return false; - else if (__isset.distinct_count && !(distinct_count == rhs.distinct_count)) - return false; - if (__isset.max_value != rhs.__isset.max_value) - return false; - else if (__isset.max_value && !(max_value == rhs.max_value)) - return false; - if (__isset.min_value != rhs.__isset.min_value) - return false; - else if (__isset.min_value && !(min_value == rhs.min_value)) - return false; - return true; - } - bool operator != (const Statistics &rhs) const { - return !(*this == rhs); - } - - bool operator < (const Statistics & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + void __set_is_max_value_exact(const bool val); + + void __set_is_min_value_exact(const bool val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -303,28 +639,20 @@ void swap(Statistics &a, Statistics &b); std::ostream& operator<<(std::ostream& out, const Statistics& obj); -class StringType : public virtual ::duckdb_apache::thrift::TBase { +/** + * Empty structs to use as logical type annotations + */ +class StringType : public virtual ::apache::thrift::TBase { public: - StringType(const StringType&); - StringType& operator=(const StringType&); - StringType() { - } + StringType(const StringType&) noexcept; + StringType& operator=(const StringType&) noexcept; + StringType() noexcept; - virtual ~StringType() throw(); + virtual ~StringType() noexcept; - bool operator == (const StringType & /* rhs */) const - { - return true; - } - bool operator != (const StringType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const StringType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -334,28 +662,17 @@ void swap(StringType &a, StringType &b); std::ostream& operator<<(std::ostream& out, const StringType& obj); -class UUIDType : public virtual ::duckdb_apache::thrift::TBase { +class UUIDType : public virtual ::apache::thrift::TBase { public: - UUIDType(const UUIDType&); - UUIDType& operator=(const UUIDType&); - UUIDType() { - } - - virtual ~UUIDType() throw(); - - bool operator == (const UUIDType & /* rhs */) const - { - return true; - } - bool operator != (const UUIDType &rhs) const { - return !(*this == rhs); - } + UUIDType(const UUIDType&) noexcept; + UUIDType& operator=(const UUIDType&) noexcept; + UUIDType() noexcept; - bool operator < (const UUIDType & ) const; + virtual ~UUIDType() noexcept; - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -365,28 +682,17 @@ void swap(UUIDType &a, UUIDType &b); std::ostream& operator<<(std::ostream& out, const UUIDType& obj); -class MapType : public virtual ::duckdb_apache::thrift::TBase { +class MapType : public virtual ::apache::thrift::TBase { public: - MapType(const MapType&); - MapType& operator=(const MapType&); - MapType() { - } + MapType(const MapType&) noexcept; + MapType& operator=(const MapType&) noexcept; + MapType() noexcept; - virtual ~MapType() throw(); + virtual ~MapType() noexcept; - bool operator == (const MapType & /* rhs */) const - { - return true; - } - bool operator != (const MapType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const MapType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -396,28 +702,17 @@ void swap(MapType &a, MapType &b); std::ostream& operator<<(std::ostream& out, const MapType& obj); -class ListType : public virtual ::duckdb_apache::thrift::TBase { +class ListType : public virtual ::apache::thrift::TBase { public: - ListType(const ListType&); - ListType& operator=(const ListType&); - ListType() { - } - - virtual ~ListType() throw(); - - bool operator == (const ListType & /* rhs */) const - { - return true; - } - bool operator != (const ListType &rhs) const { - return !(*this == rhs); - } + ListType(const ListType&) noexcept; + ListType& operator=(const ListType&) noexcept; + ListType() noexcept; - bool operator < (const ListType & ) const; + virtual ~ListType() noexcept; - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -427,28 +722,17 @@ void swap(ListType &a, ListType &b); std::ostream& operator<<(std::ostream& out, const ListType& obj); -class EnumType : public virtual ::duckdb_apache::thrift::TBase { +class EnumType : public virtual ::apache::thrift::TBase { public: - EnumType(const EnumType&); - EnumType& operator=(const EnumType&); - EnumType() { - } + EnumType(const EnumType&) noexcept; + EnumType& operator=(const EnumType&) noexcept; + EnumType() noexcept; - virtual ~EnumType() throw(); + virtual ~EnumType() noexcept; - bool operator == (const EnumType & /* rhs */) const - { - return true; - } - bool operator != (const EnumType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const EnumType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -458,28 +742,17 @@ void swap(EnumType &a, EnumType &b); std::ostream& operator<<(std::ostream& out, const EnumType& obj); -class DateType : public virtual ::duckdb_apache::thrift::TBase { +class DateType : public virtual ::apache::thrift::TBase { public: - DateType(const DateType&); - DateType& operator=(const DateType&); - DateType() { - } - - virtual ~DateType() throw(); - - bool operator == (const DateType & /* rhs */) const - { - return true; - } - bool operator != (const DateType &rhs) const { - return !(*this == rhs); - } + DateType(const DateType&) noexcept; + DateType& operator=(const DateType&) noexcept; + DateType() noexcept; - bool operator < (const DateType & ) const; + virtual ~DateType() noexcept; - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -489,28 +762,44 @@ void swap(DateType &a, DateType &b); std::ostream& operator<<(std::ostream& out, const DateType& obj); -class NullType : public virtual ::duckdb_apache::thrift::TBase { +class Float16Type : public virtual ::apache::thrift::TBase { public: - NullType(const NullType&); - NullType& operator=(const NullType&); - NullType() { - } + Float16Type(const Float16Type&) noexcept; + Float16Type& operator=(const Float16Type&) noexcept; + Float16Type() noexcept; - virtual ~NullType() throw(); + virtual ~Float16Type() noexcept; - bool operator == (const NullType & /* rhs */) const - { - return true; - } - bool operator != (const NullType &rhs) const { - return !(*this == rhs); - } + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; - bool operator < (const NullType & ) const; + virtual void printTo(std::ostream& out) const; +}; + +void swap(Float16Type &a, Float16Type &b); + +std::ostream& operator<<(std::ostream& out, const Float16Type& obj); + + +/** + * Logical type to annotate a column that is always null. + * + * Sometimes when discovering the schema of existing data, values are always + * null and the physical type can't be determined. This annotation signals + * the case where the physical type was guessed from all null values. + */ +class NullType : public virtual ::apache::thrift::TBase { + public: - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + NullType(const NullType&) noexcept; + NullType& operator=(const NullType&) noexcept; + NullType() noexcept; + + virtual ~NullType() noexcept; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -520,15 +809,25 @@ void swap(NullType &a, NullType &b); std::ostream& operator<<(std::ostream& out, const NullType& obj); -class DecimalType : public virtual ::duckdb_apache::thrift::TBase { +/** + * Decimal logical type annotation + * + * Scale must be zero or a positive integer less than or equal to the precision. + * Precision must be a non-zero positive integer. + * + * To maintain forward-compatibility in v1, implementations using this logical + * type must also set scale and precision on the annotated SchemaElement. + * + * Allowed for physical types: INT32, INT64, FIXED_LEN_BYTE_ARRAY, and BYTE_ARRAY. + */ +class DecimalType : public virtual ::apache::thrift::TBase { public: - DecimalType(const DecimalType&); - DecimalType& operator=(const DecimalType&); - DecimalType() : scale(0), precision(0) { - } + DecimalType(const DecimalType&) noexcept; + DecimalType& operator=(const DecimalType&) noexcept; + DecimalType() noexcept; - virtual ~DecimalType() throw(); + virtual ~DecimalType() noexcept; int32_t scale; int32_t precision; @@ -536,22 +835,8 @@ class DecimalType : public virtual ::duckdb_apache::thrift::TBase { void __set_precision(const int32_t val); - bool operator == (const DecimalType & rhs) const - { - if (!(scale == rhs.scale)) - return false; - if (!(precision == rhs.precision)) - return false; - return true; - } - bool operator != (const DecimalType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const DecimalType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -561,28 +846,20 @@ void swap(DecimalType &a, DecimalType &b); std::ostream& operator<<(std::ostream& out, const DecimalType& obj); -class MilliSeconds : public virtual ::duckdb_apache::thrift::TBase { +/** + * Time units for logical types + */ +class MilliSeconds : public virtual ::apache::thrift::TBase { public: - MilliSeconds(const MilliSeconds&); - MilliSeconds& operator=(const MilliSeconds&); - MilliSeconds() { - } + MilliSeconds(const MilliSeconds&) noexcept; + MilliSeconds& operator=(const MilliSeconds&) noexcept; + MilliSeconds() noexcept; - virtual ~MilliSeconds() throw(); + virtual ~MilliSeconds() noexcept; - bool operator == (const MilliSeconds & /* rhs */) const - { - return true; - } - bool operator != (const MilliSeconds &rhs) const { - return !(*this == rhs); - } - - bool operator < (const MilliSeconds & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -592,28 +869,17 @@ void swap(MilliSeconds &a, MilliSeconds &b); std::ostream& operator<<(std::ostream& out, const MilliSeconds& obj); -class MicroSeconds : public virtual ::duckdb_apache::thrift::TBase { +class MicroSeconds : public virtual ::apache::thrift::TBase { public: - MicroSeconds(const MicroSeconds&); - MicroSeconds& operator=(const MicroSeconds&); - MicroSeconds() { - } - - virtual ~MicroSeconds() throw(); - - bool operator == (const MicroSeconds & /* rhs */) const - { - return true; - } - bool operator != (const MicroSeconds &rhs) const { - return !(*this == rhs); - } + MicroSeconds(const MicroSeconds&) noexcept; + MicroSeconds& operator=(const MicroSeconds&) noexcept; + MicroSeconds() noexcept; - bool operator < (const MicroSeconds & ) const; + virtual ~MicroSeconds() noexcept; - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -623,28 +889,17 @@ void swap(MicroSeconds &a, MicroSeconds &b); std::ostream& operator<<(std::ostream& out, const MicroSeconds& obj); -class NanoSeconds : public virtual ::duckdb_apache::thrift::TBase { +class NanoSeconds : public virtual ::apache::thrift::TBase { public: - NanoSeconds(const NanoSeconds&); - NanoSeconds& operator=(const NanoSeconds&); - NanoSeconds() { - } + NanoSeconds(const NanoSeconds&) noexcept; + NanoSeconds& operator=(const NanoSeconds&) noexcept; + NanoSeconds() noexcept; - virtual ~NanoSeconds() throw(); + virtual ~NanoSeconds() noexcept; - bool operator == (const NanoSeconds & /* rhs */) const - { - return true; - } - bool operator != (const NanoSeconds &rhs) const { - return !(*this == rhs); - } - - bool operator < (const NanoSeconds & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -660,15 +915,14 @@ typedef struct _TimeUnit__isset { bool NANOS :1; } _TimeUnit__isset; -class TimeUnit : public virtual ::duckdb_apache::thrift::TBase { +class TimeUnit : public virtual ::apache::thrift::TBase { public: - TimeUnit(const TimeUnit&); - TimeUnit& operator=(const TimeUnit&); - TimeUnit() { - } + TimeUnit(const TimeUnit&) noexcept; + TimeUnit& operator=(const TimeUnit&) noexcept; + TimeUnit() noexcept; - virtual ~TimeUnit() throw(); + virtual ~TimeUnit() noexcept; MilliSeconds MILLIS; MicroSeconds MICROS; NanoSeconds NANOS; @@ -681,30 +935,8 @@ class TimeUnit : public virtual ::duckdb_apache::thrift::TBase { void __set_NANOS(const NanoSeconds& val); - bool operator == (const TimeUnit & rhs) const - { - if (__isset.MILLIS != rhs.__isset.MILLIS) - return false; - else if (__isset.MILLIS && !(MILLIS == rhs.MILLIS)) - return false; - if (__isset.MICROS != rhs.__isset.MICROS) - return false; - else if (__isset.MICROS && !(MICROS == rhs.MICROS)) - return false; - if (__isset.NANOS != rhs.__isset.NANOS) - return false; - else if (__isset.NANOS && !(NANOS == rhs.NANOS)) - return false; - return true; - } - bool operator != (const TimeUnit &rhs) const { - return !(*this == rhs); - } - - bool operator < (const TimeUnit & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -714,15 +946,19 @@ void swap(TimeUnit &a, TimeUnit &b); std::ostream& operator<<(std::ostream& out, const TimeUnit& obj); -class TimestampType : public virtual ::duckdb_apache::thrift::TBase { +/** + * Timestamp logical type annotation + * + * Allowed for physical types: INT64 + */ +class TimestampType : public virtual ::apache::thrift::TBase { public: - TimestampType(const TimestampType&); - TimestampType& operator=(const TimestampType&); - TimestampType() : isAdjustedToUTC(0) { - } + TimestampType(const TimestampType&) noexcept; + TimestampType& operator=(const TimestampType&) noexcept; + TimestampType() noexcept; - virtual ~TimestampType() throw(); + virtual ~TimestampType() noexcept; bool isAdjustedToUTC; TimeUnit unit; @@ -730,22 +966,8 @@ class TimestampType : public virtual ::duckdb_apache::thrift::TBase { void __set_unit(const TimeUnit& val); - bool operator == (const TimestampType & rhs) const - { - if (!(isAdjustedToUTC == rhs.isAdjustedToUTC)) - return false; - if (!(unit == rhs.unit)) - return false; - return true; - } - bool operator != (const TimestampType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const TimestampType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -755,15 +977,19 @@ void swap(TimestampType &a, TimestampType &b); std::ostream& operator<<(std::ostream& out, const TimestampType& obj); -class TimeType : public virtual ::duckdb_apache::thrift::TBase { +/** + * Time logical type annotation + * + * Allowed for physical types: INT32 (millis), INT64 (micros, nanos) + */ +class TimeType : public virtual ::apache::thrift::TBase { public: - TimeType(const TimeType&); - TimeType& operator=(const TimeType&); - TimeType() : isAdjustedToUTC(0) { - } + TimeType(const TimeType&) noexcept; + TimeType& operator=(const TimeType&) noexcept; + TimeType() noexcept; - virtual ~TimeType() throw(); + virtual ~TimeType() noexcept; bool isAdjustedToUTC; TimeUnit unit; @@ -771,22 +997,8 @@ class TimeType : public virtual ::duckdb_apache::thrift::TBase { void __set_unit(const TimeUnit& val); - bool operator == (const TimeType & rhs) const - { - if (!(isAdjustedToUTC == rhs.isAdjustedToUTC)) - return false; - if (!(unit == rhs.unit)) - return false; - return true; - } - bool operator != (const TimeType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const TimeType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -796,15 +1008,21 @@ void swap(TimeType &a, TimeType &b); std::ostream& operator<<(std::ostream& out, const TimeType& obj); -class IntType : public virtual ::duckdb_apache::thrift::TBase { +/** + * Integer logical type annotation + * + * bitWidth must be 8, 16, 32, or 64. + * + * Allowed for physical types: INT32, INT64 + */ +class IntType : public virtual ::apache::thrift::TBase { public: - IntType(const IntType&); - IntType& operator=(const IntType&); - IntType() : bitWidth(0), isSigned(0) { - } + IntType(const IntType&) noexcept; + IntType& operator=(const IntType&) noexcept; + IntType() noexcept; - virtual ~IntType() throw(); + virtual ~IntType() noexcept; int8_t bitWidth; bool isSigned; @@ -812,22 +1030,8 @@ class IntType : public virtual ::duckdb_apache::thrift::TBase { void __set_isSigned(const bool val); - bool operator == (const IntType & rhs) const - { - if (!(bitWidth == rhs.bitWidth)) - return false; - if (!(isSigned == rhs.isSigned)) - return false; - return true; - } - bool operator != (const IntType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const IntType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -837,28 +1041,22 @@ void swap(IntType &a, IntType &b); std::ostream& operator<<(std::ostream& out, const IntType& obj); -class JsonType : public virtual ::duckdb_apache::thrift::TBase { +/** + * Embedded JSON logical type annotation + * + * Allowed for physical types: BYTE_ARRAY + */ +class JsonType : public virtual ::apache::thrift::TBase { public: - JsonType(const JsonType&); - JsonType& operator=(const JsonType&); - JsonType() { - } - - virtual ~JsonType() throw(); + JsonType(const JsonType&) noexcept; + JsonType& operator=(const JsonType&) noexcept; + JsonType() noexcept; - bool operator == (const JsonType & /* rhs */) const - { - return true; - } - bool operator != (const JsonType &rhs) const { - return !(*this == rhs); - } + virtual ~JsonType() noexcept; - bool operator < (const JsonType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -868,28 +1066,22 @@ void swap(JsonType &a, JsonType &b); std::ostream& operator<<(std::ostream& out, const JsonType& obj); -class BsonType : public virtual ::duckdb_apache::thrift::TBase { +/** + * Embedded BSON logical type annotation + * + * Allowed for physical types: BYTE_ARRAY + */ +class BsonType : public virtual ::apache::thrift::TBase { public: - BsonType(const BsonType&); - BsonType& operator=(const BsonType&); - BsonType() { - } - - virtual ~BsonType() throw(); + BsonType(const BsonType&) noexcept; + BsonType& operator=(const BsonType&) noexcept; + BsonType() noexcept; - bool operator == (const BsonType & /* rhs */) const - { - return true; - } - bool operator != (const BsonType &rhs) const { - return !(*this == rhs); - } + virtual ~BsonType() noexcept; - bool operator < (const BsonType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -899,7 +1091,7 @@ void swap(BsonType &a, BsonType &b); std::ostream& operator<<(std::ostream& out, const BsonType& obj); typedef struct _LogicalType__isset { - _LogicalType__isset() : STRING(false), MAP(false), LIST(false), ENUM(false), DECIMAL(false), DATE(false), TIME(false), TIMESTAMP(false), INTEGER(false), UNKNOWN(false), JSON(false), BSON(false), UUID(false) {} + _LogicalType__isset() : STRING(false), MAP(false), LIST(false), ENUM(false), DECIMAL(false), DATE(false), TIME(false), TIMESTAMP(false), INTEGER(false), UNKNOWN(false), JSON(false), BSON(false), UUID(false), FLOAT16(false) {} bool STRING :1; bool MAP :1; bool LIST :1; @@ -913,17 +1105,24 @@ typedef struct _LogicalType__isset { bool JSON :1; bool BSON :1; bool UUID :1; + bool FLOAT16 :1; } _LogicalType__isset; -class LogicalType : public virtual ::duckdb_apache::thrift::TBase { +/** + * LogicalType annotations to replace ConvertedType. + * + * To maintain compatibility, implementations using LogicalType for a + * SchemaElement must also set the corresponding ConvertedType (if any) + * from the following table. + */ +class LogicalType : public virtual ::apache::thrift::TBase { public: - LogicalType(const LogicalType&); - LogicalType& operator=(const LogicalType&); - LogicalType() { - } + LogicalType(const LogicalType&) noexcept; + LogicalType& operator=(const LogicalType&) noexcept; + LogicalType() noexcept; - virtual ~LogicalType() throw(); + virtual ~LogicalType() noexcept; StringType STRING; MapType MAP; ListType LIST; @@ -937,6 +1136,7 @@ class LogicalType : public virtual ::duckdb_apache::thrift::TBase { JsonType JSON; BsonType BSON; UUIDType UUID; + Float16Type FLOAT16; _LogicalType__isset __isset; @@ -966,70 +1166,10 @@ class LogicalType : public virtual ::duckdb_apache::thrift::TBase { void __set_UUID(const UUIDType& val); - bool operator == (const LogicalType & rhs) const - { - if (__isset.STRING != rhs.__isset.STRING) - return false; - else if (__isset.STRING && !(STRING == rhs.STRING)) - return false; - if (__isset.MAP != rhs.__isset.MAP) - return false; - else if (__isset.MAP && !(MAP == rhs.MAP)) - return false; - if (__isset.LIST != rhs.__isset.LIST) - return false; - else if (__isset.LIST && !(LIST == rhs.LIST)) - return false; - if (__isset.ENUM != rhs.__isset.ENUM) - return false; - else if (__isset.ENUM && !(ENUM == rhs.ENUM)) - return false; - if (__isset.DECIMAL != rhs.__isset.DECIMAL) - return false; - else if (__isset.DECIMAL && !(DECIMAL == rhs.DECIMAL)) - return false; - if (__isset.DATE != rhs.__isset.DATE) - return false; - else if (__isset.DATE && !(DATE == rhs.DATE)) - return false; - if (__isset.TIME != rhs.__isset.TIME) - return false; - else if (__isset.TIME && !(TIME == rhs.TIME)) - return false; - if (__isset.TIMESTAMP != rhs.__isset.TIMESTAMP) - return false; - else if (__isset.TIMESTAMP && !(TIMESTAMP == rhs.TIMESTAMP)) - return false; - if (__isset.INTEGER != rhs.__isset.INTEGER) - return false; - else if (__isset.INTEGER && !(INTEGER == rhs.INTEGER)) - return false; - if (__isset.UNKNOWN != rhs.__isset.UNKNOWN) - return false; - else if (__isset.UNKNOWN && !(UNKNOWN == rhs.UNKNOWN)) - return false; - if (__isset.JSON != rhs.__isset.JSON) - return false; - else if (__isset.JSON && !(JSON == rhs.JSON)) - return false; - if (__isset.BSON != rhs.__isset.BSON) - return false; - else if (__isset.BSON && !(BSON == rhs.BSON)) - return false; - if (__isset.UUID != rhs.__isset.UUID) - return false; - else if (__isset.UUID && !(UUID == rhs.UUID)) - return false; - return true; - } - bool operator != (const LogicalType &rhs) const { - return !(*this == rhs); - } - - bool operator < (const LogicalType & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + void __set_FLOAT16(const Float16Type& val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1051,24 +1191,79 @@ typedef struct _SchemaElement__isset { bool logicalType :1; } _SchemaElement__isset; -class SchemaElement : public virtual ::duckdb_apache::thrift::TBase { +/** + * Represents a element inside a schema definition. + * - if it is a group (inner node) then type is undefined and num_children is defined + * - if it is a primitive type (leaf) then type is defined and num_children is undefined + * the nodes are listed in depth first traversal order. + */ +class SchemaElement : public virtual ::apache::thrift::TBase { public: SchemaElement(const SchemaElement&); SchemaElement& operator=(const SchemaElement&); - SchemaElement() : type((Type::type)0), type_length(0), repetition_type((FieldRepetitionType::type)0), name(), num_children(0), converted_type((ConvertedType::type)0), scale(0), precision(0), field_id(0) { - } - - virtual ~SchemaElement() throw(); + SchemaElement() noexcept; + + virtual ~SchemaElement() noexcept; + /** + * Data type for this field. Not set if the current element is a non-leaf node + * + * @see Type + */ Type::type type; + /** + * If type is FIXED_LEN_BYTE_ARRAY, this is the byte length of the values. + * Otherwise, if specified, this is the maximum bit length to store any of the values. + * (e.g. a low cardinality INT col could have this set to 3). Note that this is + * in the schema, and therefore fixed for the entire file. + */ int32_t type_length; + /** + * repetition of the field. The root of the schema does not have a repetition_type. + * All other nodes must have one + * + * @see FieldRepetitionType + */ FieldRepetitionType::type repetition_type; + /** + * Name of the field in the schema + */ std::string name; + /** + * Nested fields. Since thrift does not support nested fields, + * the nesting is flattened to a single list by a depth-first traversal. + * The children count is used to construct the nested relationship. + * This field is not set when the element is a primitive type + */ int32_t num_children; + /** + * DEPRECATED: When the schema is the result of a conversion from another model. + * Used to record the original type to help with cross conversion. + * + * This is superseded by logicalType. + * + * @see ConvertedType + */ ConvertedType::type converted_type; + /** + * DEPRECATED: Used when this column contains decimal data. + * See the DECIMAL converted type for more details. + * + * This is superseded by using the DecimalType annotation in logicalType. + */ int32_t scale; int32_t precision; + /** + * When the original schema supports field ids, this will save the + * original field id in the parquet schema + */ int32_t field_id; + /** + * The logical type of this SchemaElement + * + * LogicalType replaces ConvertedType, but ConvertedType is still required + * for some logical types to ensure forward-compatibility in format v1. + */ LogicalType logicalType; _SchemaElement__isset __isset; @@ -1093,56 +1288,8 @@ class SchemaElement : public virtual ::duckdb_apache::thrift::TBase { void __set_logicalType(const LogicalType& val); - bool operator == (const SchemaElement & rhs) const - { - if (__isset.type != rhs.__isset.type) - return false; - else if (__isset.type && !(type == rhs.type)) - return false; - if (__isset.type_length != rhs.__isset.type_length) - return false; - else if (__isset.type_length && !(type_length == rhs.type_length)) - return false; - if (__isset.repetition_type != rhs.__isset.repetition_type) - return false; - else if (__isset.repetition_type && !(repetition_type == rhs.repetition_type)) - return false; - if (!(name == rhs.name)) - return false; - if (__isset.num_children != rhs.__isset.num_children) - return false; - else if (__isset.num_children && !(num_children == rhs.num_children)) - return false; - if (__isset.converted_type != rhs.__isset.converted_type) - return false; - else if (__isset.converted_type && !(converted_type == rhs.converted_type)) - return false; - if (__isset.scale != rhs.__isset.scale) - return false; - else if (__isset.scale && !(scale == rhs.scale)) - return false; - if (__isset.precision != rhs.__isset.precision) - return false; - else if (__isset.precision && !(precision == rhs.precision)) - return false; - if (__isset.field_id != rhs.__isset.field_id) - return false; - else if (__isset.field_id && !(field_id == rhs.field_id)) - return false; - if (__isset.logicalType != rhs.__isset.logicalType) - return false; - else if (__isset.logicalType && !(logicalType == rhs.logicalType)) - return false; - return true; - } - bool operator != (const SchemaElement &rhs) const { - return !(*this == rhs); - } - - bool operator < (const SchemaElement & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1156,19 +1303,47 @@ typedef struct _DataPageHeader__isset { bool statistics :1; } _DataPageHeader__isset; -class DataPageHeader : public virtual ::duckdb_apache::thrift::TBase { +/** + * Data page header + */ +class DataPageHeader : public virtual ::apache::thrift::TBase { public: DataPageHeader(const DataPageHeader&); DataPageHeader& operator=(const DataPageHeader&); - DataPageHeader() : num_values(0), encoding((Encoding::type)0), definition_level_encoding((Encoding::type)0), repetition_level_encoding((Encoding::type)0) { - } - - virtual ~DataPageHeader() throw(); + DataPageHeader() noexcept; + + virtual ~DataPageHeader() noexcept; + /** + * Number of values, including NULLs, in this data page. + * + * If a OffsetIndex is present, a page must begin at a row + * boundary (repetition_level = 0). Otherwise, pages may begin + * within a row (repetition_level > 0). + * + */ int32_t num_values; + /** + * Encoding used for this data page * + * + * @see Encoding + */ Encoding::type encoding; + /** + * Encoding used for definition levels * + * + * @see Encoding + */ Encoding::type definition_level_encoding; + /** + * Encoding used for repetition levels * + * + * @see Encoding + */ Encoding::type repetition_level_encoding; + /** + * Optional statistics for the data in this page * + */ Statistics statistics; _DataPageHeader__isset __isset; @@ -1183,30 +1358,8 @@ class DataPageHeader : public virtual ::duckdb_apache::thrift::TBase { void __set_statistics(const Statistics& val); - bool operator == (const DataPageHeader & rhs) const - { - if (!(num_values == rhs.num_values)) - return false; - if (!(encoding == rhs.encoding)) - return false; - if (!(definition_level_encoding == rhs.definition_level_encoding)) - return false; - if (!(repetition_level_encoding == rhs.repetition_level_encoding)) - return false; - if (__isset.statistics != rhs.__isset.statistics) - return false; - else if (__isset.statistics && !(statistics == rhs.statistics)) - return false; - return true; - } - bool operator != (const DataPageHeader &rhs) const { - return !(*this == rhs); - } - - bool operator < (const DataPageHeader & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1216,28 +1369,17 @@ void swap(DataPageHeader &a, DataPageHeader &b); std::ostream& operator<<(std::ostream& out, const DataPageHeader& obj); -class IndexPageHeader : public virtual ::duckdb_apache::thrift::TBase { +class IndexPageHeader : public virtual ::apache::thrift::TBase { public: - IndexPageHeader(const IndexPageHeader&); - IndexPageHeader& operator=(const IndexPageHeader&); - IndexPageHeader() { - } - - virtual ~IndexPageHeader() throw(); - - bool operator == (const IndexPageHeader & /* rhs */) const - { - return true; - } - bool operator != (const IndexPageHeader &rhs) const { - return !(*this == rhs); - } + IndexPageHeader(const IndexPageHeader&) noexcept; + IndexPageHeader& operator=(const IndexPageHeader&) noexcept; + IndexPageHeader() noexcept; - bool operator < (const IndexPageHeader & ) const; + virtual ~IndexPageHeader() noexcept; - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1251,17 +1393,33 @@ typedef struct _DictionaryPageHeader__isset { bool is_sorted :1; } _DictionaryPageHeader__isset; -class DictionaryPageHeader : public virtual ::duckdb_apache::thrift::TBase { +/** + * The dictionary page must be placed at the first position of the column chunk + * if it is partly or completely dictionary encoded. At most one dictionary page + * can be placed in a column chunk. + * + */ +class DictionaryPageHeader : public virtual ::apache::thrift::TBase { public: - DictionaryPageHeader(const DictionaryPageHeader&); - DictionaryPageHeader& operator=(const DictionaryPageHeader&); - DictionaryPageHeader() : num_values(0), encoding((Encoding::type)0), is_sorted(0) { - } + DictionaryPageHeader(const DictionaryPageHeader&) noexcept; + DictionaryPageHeader& operator=(const DictionaryPageHeader&) noexcept; + DictionaryPageHeader() noexcept; - virtual ~DictionaryPageHeader() throw(); + virtual ~DictionaryPageHeader() noexcept; + /** + * Number of values in the dictionary * + */ int32_t num_values; + /** + * Encoding using this dictionary page * + * + * @see Encoding + */ Encoding::type encoding; + /** + * If true, the entries in the dictionary are sorted in ascending order * + */ bool is_sorted; _DictionaryPageHeader__isset __isset; @@ -1272,26 +1430,8 @@ class DictionaryPageHeader : public virtual ::duckdb_apache::thrift::TBase { void __set_is_sorted(const bool val); - bool operator == (const DictionaryPageHeader & rhs) const - { - if (!(num_values == rhs.num_values)) - return false; - if (!(encoding == rhs.encoding)) - return false; - if (__isset.is_sorted != rhs.__isset.is_sorted) - return false; - else if (__isset.is_sorted && !(is_sorted == rhs.is_sorted)) - return false; - return true; - } - bool operator != (const DictionaryPageHeader &rhs) const { - return !(*this == rhs); - } - - bool operator < (const DictionaryPageHeader & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1306,22 +1446,61 @@ typedef struct _DataPageHeaderV2__isset { bool statistics :1; } _DataPageHeaderV2__isset; -class DataPageHeaderV2 : public virtual ::duckdb_apache::thrift::TBase { +/** + * New page format allowing reading levels without decompressing the data + * Repetition and definition levels are uncompressed + * The remaining section containing the data is compressed if is_compressed is true + * + */ +class DataPageHeaderV2 : public virtual ::apache::thrift::TBase { public: DataPageHeaderV2(const DataPageHeaderV2&); DataPageHeaderV2& operator=(const DataPageHeaderV2&); - DataPageHeaderV2() : num_values(0), num_nulls(0), num_rows(0), encoding((Encoding::type)0), definition_levels_byte_length(0), repetition_levels_byte_length(0), is_compressed(true) { - } + DataPageHeaderV2() noexcept; - virtual ~DataPageHeaderV2() throw(); + virtual ~DataPageHeaderV2() noexcept; + /** + * Number of values, including NULLs, in this data page. * + */ int32_t num_values; + /** + * Number of NULL values, in this data page. + * Number of non-null = num_values - num_nulls which is also the number of values in the data section * + */ int32_t num_nulls; + /** + * Number of rows in this data page. Every page must begin at a + * row boundary (repetition_level = 0): rows must **not** be + * split across page boundaries when using V2 data pages. + * + */ int32_t num_rows; + /** + * Encoding used for data in this page * + * + * @see Encoding + */ Encoding::type encoding; + /** + * Length of the definition levels + */ int32_t definition_levels_byte_length; + /** + * Length of the repetition levels + */ int32_t repetition_levels_byte_length; + /** + * Whether the values are compressed. + * Which means the section of the page between + * definition_levels_byte_length + repetition_levels_byte_length + 1 and compressed_page_size (included) + * is compressed with the compression_codec. + * If missing it is considered compressed + */ bool is_compressed; + /** + * Optional statistics for the data in this page * + */ Statistics statistics; _DataPageHeaderV2__isset __isset; @@ -1342,38 +1521,8 @@ class DataPageHeaderV2 : public virtual ::duckdb_apache::thrift::TBase { void __set_statistics(const Statistics& val); - bool operator == (const DataPageHeaderV2 & rhs) const - { - if (!(num_values == rhs.num_values)) - return false; - if (!(num_nulls == rhs.num_nulls)) - return false; - if (!(num_rows == rhs.num_rows)) - return false; - if (!(encoding == rhs.encoding)) - return false; - if (!(definition_levels_byte_length == rhs.definition_levels_byte_length)) - return false; - if (!(repetition_levels_byte_length == rhs.repetition_levels_byte_length)) - return false; - if (__isset.is_compressed != rhs.__isset.is_compressed) - return false; - else if (__isset.is_compressed && !(is_compressed == rhs.is_compressed)) - return false; - if (__isset.statistics != rhs.__isset.statistics) - return false; - else if (__isset.statistics && !(statistics == rhs.statistics)) - return false; - return true; - } - bool operator != (const DataPageHeaderV2 &rhs) const { - return !(*this == rhs); - } - - bool operator < (const DataPageHeaderV2 & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1382,6 +1531,228 @@ void swap(DataPageHeaderV2 &a, DataPageHeaderV2 &b); std::ostream& operator<<(std::ostream& out, const DataPageHeaderV2& obj); + +/** + * Block-based algorithm type annotation. * + */ +class SplitBlockAlgorithm : public virtual ::apache::thrift::TBase { + public: + + SplitBlockAlgorithm(const SplitBlockAlgorithm&) noexcept; + SplitBlockAlgorithm& operator=(const SplitBlockAlgorithm&) noexcept; + SplitBlockAlgorithm() noexcept; + + virtual ~SplitBlockAlgorithm() noexcept; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(SplitBlockAlgorithm &a, SplitBlockAlgorithm &b); + +std::ostream& operator<<(std::ostream& out, const SplitBlockAlgorithm& obj); + +typedef struct _BloomFilterAlgorithm__isset { + _BloomFilterAlgorithm__isset() : BLOCK(false) {} + bool BLOCK :1; +} _BloomFilterAlgorithm__isset; + +/** + * The algorithm used in Bloom filter. * + */ +class BloomFilterAlgorithm : public virtual ::apache::thrift::TBase { + public: + + BloomFilterAlgorithm(const BloomFilterAlgorithm&) noexcept; + BloomFilterAlgorithm& operator=(const BloomFilterAlgorithm&) noexcept; + BloomFilterAlgorithm() noexcept; + + virtual ~BloomFilterAlgorithm() noexcept; + /** + * Block-based Bloom filter. * + */ + SplitBlockAlgorithm BLOCK; + + _BloomFilterAlgorithm__isset __isset; + + void __set_BLOCK(const SplitBlockAlgorithm& val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(BloomFilterAlgorithm &a, BloomFilterAlgorithm &b); + +std::ostream& operator<<(std::ostream& out, const BloomFilterAlgorithm& obj); + + +/** + * Hash strategy type annotation. xxHash is an extremely fast non-cryptographic hash + * algorithm. It uses 64 bits version of xxHash. + * + */ +class XxHash : public virtual ::apache::thrift::TBase { + public: + + XxHash(const XxHash&) noexcept; + XxHash& operator=(const XxHash&) noexcept; + XxHash() noexcept; + + virtual ~XxHash() noexcept; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(XxHash &a, XxHash &b); + +std::ostream& operator<<(std::ostream& out, const XxHash& obj); + +typedef struct _BloomFilterHash__isset { + _BloomFilterHash__isset() : XXHASH(false) {} + bool XXHASH :1; +} _BloomFilterHash__isset; + +/** + * The hash function used in Bloom filter. This function takes the hash of a column value + * using plain encoding. + * + */ +class BloomFilterHash : public virtual ::apache::thrift::TBase { + public: + + BloomFilterHash(const BloomFilterHash&) noexcept; + BloomFilterHash& operator=(const BloomFilterHash&) noexcept; + BloomFilterHash() noexcept; + + virtual ~BloomFilterHash() noexcept; + /** + * xxHash Strategy. * + */ + XxHash XXHASH; + + _BloomFilterHash__isset __isset; + + void __set_XXHASH(const XxHash& val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(BloomFilterHash &a, BloomFilterHash &b); + +std::ostream& operator<<(std::ostream& out, const BloomFilterHash& obj); + + +/** + * The compression used in the Bloom filter. + * + */ +class Uncompressed : public virtual ::apache::thrift::TBase { + public: + + Uncompressed(const Uncompressed&) noexcept; + Uncompressed& operator=(const Uncompressed&) noexcept; + Uncompressed() noexcept; + + virtual ~Uncompressed() noexcept; + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(Uncompressed &a, Uncompressed &b); + +std::ostream& operator<<(std::ostream& out, const Uncompressed& obj); + +typedef struct _BloomFilterCompression__isset { + _BloomFilterCompression__isset() : UNCOMPRESSED(false) {} + bool UNCOMPRESSED :1; +} _BloomFilterCompression__isset; + +class BloomFilterCompression : public virtual ::apache::thrift::TBase { + public: + + BloomFilterCompression(const BloomFilterCompression&) noexcept; + BloomFilterCompression& operator=(const BloomFilterCompression&) noexcept; + BloomFilterCompression() noexcept; + + virtual ~BloomFilterCompression() noexcept; + Uncompressed UNCOMPRESSED; + + _BloomFilterCompression__isset __isset; + + void __set_UNCOMPRESSED(const Uncompressed& val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(BloomFilterCompression &a, BloomFilterCompression &b); + +std::ostream& operator<<(std::ostream& out, const BloomFilterCompression& obj); + + +/** + * Bloom filter header is stored at beginning of Bloom filter data of each column + * and followed by its bitset. + * + */ +class BloomFilterHeader : public virtual ::apache::thrift::TBase { + public: + + BloomFilterHeader(const BloomFilterHeader&) noexcept; + BloomFilterHeader& operator=(const BloomFilterHeader&) noexcept; + BloomFilterHeader() noexcept; + + virtual ~BloomFilterHeader() noexcept; + /** + * The size of bitset in bytes * + */ + int32_t numBytes; + /** + * The algorithm for setting bits. * + */ + BloomFilterAlgorithm algorithm; + /** + * The hash function used for Bloom filter. * + */ + BloomFilterHash hash; + /** + * The compression used in the Bloom filter * + */ + BloomFilterCompression compression; + + void __set_numBytes(const int32_t val); + + void __set_algorithm(const BloomFilterAlgorithm& val); + + void __set_hash(const BloomFilterHash& val); + + void __set_compression(const BloomFilterCompression& val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; + + virtual void printTo(std::ostream& out) const; +}; + +void swap(BloomFilterHeader &a, BloomFilterHeader &b); + +std::ostream& operator<<(std::ostream& out, const BloomFilterHeader& obj); + typedef struct _PageHeader__isset { _PageHeader__isset() : crc(false), data_page_header(false), index_page_header(false), dictionary_page_header(false), data_page_header_v2(false) {} bool crc :1; @@ -1391,18 +1762,46 @@ typedef struct _PageHeader__isset { bool data_page_header_v2 :1; } _PageHeader__isset; -class PageHeader : public virtual ::duckdb_apache::thrift::TBase { +class PageHeader : public virtual ::apache::thrift::TBase { public: PageHeader(const PageHeader&); PageHeader& operator=(const PageHeader&); - PageHeader() : type((PageType::type)0), uncompressed_page_size(0), compressed_page_size(0), crc(0) { - } - - virtual ~PageHeader() throw(); + PageHeader() noexcept; + + virtual ~PageHeader() noexcept; + /** + * the type of the page: indicates which of the *_header fields is set * + * + * @see PageType + */ PageType::type type; + /** + * Uncompressed page size in bytes (not including this header) * + */ int32_t uncompressed_page_size; + /** + * Compressed (and potentially encrypted) page size in bytes, not including this header * + */ int32_t compressed_page_size; + /** + * The 32-bit CRC checksum for the page, to be be calculated as follows: + * + * - The standard CRC32 algorithm is used (with polynomial 0x04C11DB7, + * the same as in e.g. GZip). + * - All page types can have a CRC (v1 and v2 data pages, dictionary pages, + * etc.). + * - The CRC is computed on the serialization binary representation of the page + * (as written to disk), excluding the page header. For example, for v1 + * data pages, the CRC is computed on the concatenation of repetition levels, + * definition levels and column values (optionally compressed, optionally + * encrypted). + * - The CRC computation therefore takes place after any compression + * and encryption steps, if any. + * + * If enabled, this allows for disabling checksumming in HDFS if only a few + * pages need to be read. + */ int32_t crc; DataPageHeader data_page_header; IndexPageHeader index_page_header; @@ -1427,44 +1826,8 @@ class PageHeader : public virtual ::duckdb_apache::thrift::TBase { void __set_data_page_header_v2(const DataPageHeaderV2& val); - bool operator == (const PageHeader & rhs) const - { - if (!(type == rhs.type)) - return false; - if (!(uncompressed_page_size == rhs.uncompressed_page_size)) - return false; - if (!(compressed_page_size == rhs.compressed_page_size)) - return false; - if (__isset.crc != rhs.__isset.crc) - return false; - else if (__isset.crc && !(crc == rhs.crc)) - return false; - if (__isset.data_page_header != rhs.__isset.data_page_header) - return false; - else if (__isset.data_page_header && !(data_page_header == rhs.data_page_header)) - return false; - if (__isset.index_page_header != rhs.__isset.index_page_header) - return false; - else if (__isset.index_page_header && !(index_page_header == rhs.index_page_header)) - return false; - if (__isset.dictionary_page_header != rhs.__isset.dictionary_page_header) - return false; - else if (__isset.dictionary_page_header && !(dictionary_page_header == rhs.dictionary_page_header)) - return false; - if (__isset.data_page_header_v2 != rhs.__isset.data_page_header_v2) - return false; - else if (__isset.data_page_header_v2 && !(data_page_header_v2 == rhs.data_page_header_v2)) - return false; - return true; - } - bool operator != (const PageHeader &rhs) const { - return !(*this == rhs); - } - - bool operator < (const PageHeader & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1478,15 +1841,17 @@ typedef struct _KeyValue__isset { bool value :1; } _KeyValue__isset; -class KeyValue : public virtual ::duckdb_apache::thrift::TBase { +/** + * Wrapper struct to store key values + */ +class KeyValue : public virtual ::apache::thrift::TBase { public: KeyValue(const KeyValue&); KeyValue& operator=(const KeyValue&); - KeyValue() : key(), value() { - } + KeyValue() noexcept; - virtual ~KeyValue() throw(); + virtual ~KeyValue() noexcept; std::string key; std::string value; @@ -1496,24 +1861,8 @@ class KeyValue : public virtual ::duckdb_apache::thrift::TBase { void __set_value(const std::string& val); - bool operator == (const KeyValue & rhs) const - { - if (!(key == rhs.key)) - return false; - if (__isset.value != rhs.__isset.value) - return false; - else if (__isset.value && !(value == rhs.value)) - return false; - return true; - } - bool operator != (const KeyValue &rhs) const { - return !(*this == rhs); - } - - bool operator < (const KeyValue & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1523,17 +1872,29 @@ void swap(KeyValue &a, KeyValue &b); std::ostream& operator<<(std::ostream& out, const KeyValue& obj); -class SortingColumn : public virtual ::duckdb_apache::thrift::TBase { +/** + * Sort order within a RowGroup of a leaf column + */ +class SortingColumn : public virtual ::apache::thrift::TBase { public: - SortingColumn(const SortingColumn&); - SortingColumn& operator=(const SortingColumn&); - SortingColumn() : column_idx(0), descending(0), nulls_first(0) { - } + SortingColumn(const SortingColumn&) noexcept; + SortingColumn& operator=(const SortingColumn&) noexcept; + SortingColumn() noexcept; - virtual ~SortingColumn() throw(); + virtual ~SortingColumn() noexcept; + /** + * The ordinal position of the column (in this row group) * + */ int32_t column_idx; + /** + * If true, indicates this column is sorted in descending order. * + */ bool descending; + /** + * If true, nulls will come before non-null values, otherwise, + * nulls go at the end. + */ bool nulls_first; void __set_column_idx(const int32_t val); @@ -1542,24 +1903,8 @@ class SortingColumn : public virtual ::duckdb_apache::thrift::TBase { void __set_nulls_first(const bool val); - bool operator == (const SortingColumn & rhs) const - { - if (!(column_idx == rhs.column_idx)) - return false; - if (!(descending == rhs.descending)) - return false; - if (!(nulls_first == rhs.nulls_first)) - return false; - return true; - } - bool operator != (const SortingColumn &rhs) const { - return !(*this == rhs); - } - - bool operator < (const SortingColumn & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1569,17 +1914,32 @@ void swap(SortingColumn &a, SortingColumn &b); std::ostream& operator<<(std::ostream& out, const SortingColumn& obj); -class PageEncodingStats : public virtual ::duckdb_apache::thrift::TBase { +/** + * statistics of a given page type and encoding + */ +class PageEncodingStats : public virtual ::apache::thrift::TBase { public: - PageEncodingStats(const PageEncodingStats&); - PageEncodingStats& operator=(const PageEncodingStats&); - PageEncodingStats() : page_type((PageType::type)0), encoding((Encoding::type)0), count(0) { - } + PageEncodingStats(const PageEncodingStats&) noexcept; + PageEncodingStats& operator=(const PageEncodingStats&) noexcept; + PageEncodingStats() noexcept; - virtual ~PageEncodingStats() throw(); + virtual ~PageEncodingStats() noexcept; + /** + * the page type (data/dic/...) * + * + * @see PageType + */ PageType::type page_type; + /** + * encoding of the page * + * + * @see Encoding + */ Encoding::type encoding; + /** + * number of pages of this type with this encoding * + */ int32_t count; void __set_page_type(const PageType::type val); @@ -1588,24 +1948,8 @@ class PageEncodingStats : public virtual ::duckdb_apache::thrift::TBase { void __set_count(const int32_t val); - bool operator == (const PageEncodingStats & rhs) const - { - if (!(page_type == rhs.page_type)) - return false; - if (!(encoding == rhs.encoding)) - return false; - if (!(count == rhs.count)) - return false; - return true; - } - bool operator != (const PageEncodingStats &rhs) const { - return !(*this == rhs); - } - - bool operator < (const PageEncodingStats & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1615,36 +1959,107 @@ void swap(PageEncodingStats &a, PageEncodingStats &b); std::ostream& operator<<(std::ostream& out, const PageEncodingStats& obj); typedef struct _ColumnMetaData__isset { - _ColumnMetaData__isset() : key_value_metadata(false), index_page_offset(false), dictionary_page_offset(false), statistics(false), encoding_stats(false) {} + _ColumnMetaData__isset() : key_value_metadata(false), index_page_offset(false), dictionary_page_offset(false), statistics(false), encoding_stats(false), bloom_filter_offset(false), bloom_filter_length(false), size_statistics(false) {} bool key_value_metadata :1; bool index_page_offset :1; bool dictionary_page_offset :1; bool statistics :1; bool encoding_stats :1; + bool bloom_filter_offset :1; + bool bloom_filter_length :1; + bool size_statistics :1; } _ColumnMetaData__isset; -class ColumnMetaData : public virtual ::duckdb_apache::thrift::TBase { +/** + * Description for column metadata + */ +class ColumnMetaData : public virtual ::apache::thrift::TBase { public: ColumnMetaData(const ColumnMetaData&); ColumnMetaData& operator=(const ColumnMetaData&); - ColumnMetaData() : type((Type::type)0), codec((CompressionCodec::type)0), num_values(0), total_uncompressed_size(0), total_compressed_size(0), data_page_offset(0), index_page_offset(0), dictionary_page_offset(0) { - } - - virtual ~ColumnMetaData() throw(); + ColumnMetaData() noexcept; + + virtual ~ColumnMetaData() noexcept; + /** + * Type of this column * + * + * @see Type + */ Type::type type; + /** + * Set of all encodings used for this column. The purpose is to validate + * whether we can decode those pages. * + */ duckdb::vector encodings; + /** + * Path in schema * + */ duckdb::vector path_in_schema; + /** + * Compression codec * + * + * @see CompressionCodec + */ CompressionCodec::type codec; + /** + * Number of values in this column * + */ int64_t num_values; + /** + * total byte size of all uncompressed pages in this column chunk (including the headers) * + */ int64_t total_uncompressed_size; + /** + * total byte size of all compressed, and potentially encrypted, pages + * in this column chunk (including the headers) * + */ int64_t total_compressed_size; + /** + * Optional key/value metadata * + */ duckdb::vector key_value_metadata; + /** + * Byte offset from beginning of file to first data page * + */ int64_t data_page_offset; + /** + * Byte offset from beginning of file to root index page * + */ int64_t index_page_offset; + /** + * Byte offset from the beginning of file to first (only) dictionary page * + */ int64_t dictionary_page_offset; + /** + * optional statistics for this column chunk + */ Statistics statistics; + /** + * Set of all encodings used for pages in this column chunk. + * This information can be used to determine if all data pages are + * dictionary encoded for example * + */ duckdb::vector encoding_stats; + /** + * Byte offset from beginning of file to Bloom filter data. * + */ + int64_t bloom_filter_offset; + /** + * Size of Bloom filter data including the serialized header, in bytes. + * Added in 2.10 so readers may not read this field from old files and + * it can be obtained after the BloomFilterHeader has been deserialized. + * Writers should write this field so readers can read the bloom filter + * in a single I/O. + */ + int32_t bloom_filter_length; + /** + * Optional statistics to help estimate total memory when converted to in-memory + * representations. The histograms contained in these statistics can + * also be useful in some cases for more fine-grained nullability/list length + * filter pushdown. + */ + SizeStatistics size_statistics; _ColumnMetaData__isset __isset; @@ -1674,54 +2089,14 @@ class ColumnMetaData : public virtual ::duckdb_apache::thrift::TBase { void __set_encoding_stats(const duckdb::vector & val); - bool operator == (const ColumnMetaData & rhs) const - { - if (!(type == rhs.type)) - return false; - if (!(encodings == rhs.encodings)) - return false; - if (!(path_in_schema == rhs.path_in_schema)) - return false; - if (!(codec == rhs.codec)) - return false; - if (!(num_values == rhs.num_values)) - return false; - if (!(total_uncompressed_size == rhs.total_uncompressed_size)) - return false; - if (!(total_compressed_size == rhs.total_compressed_size)) - return false; - if (__isset.key_value_metadata != rhs.__isset.key_value_metadata) - return false; - else if (__isset.key_value_metadata && !(key_value_metadata == rhs.key_value_metadata)) - return false; - if (!(data_page_offset == rhs.data_page_offset)) - return false; - if (__isset.index_page_offset != rhs.__isset.index_page_offset) - return false; - else if (__isset.index_page_offset && !(index_page_offset == rhs.index_page_offset)) - return false; - if (__isset.dictionary_page_offset != rhs.__isset.dictionary_page_offset) - return false; - else if (__isset.dictionary_page_offset && !(dictionary_page_offset == rhs.dictionary_page_offset)) - return false; - if (__isset.statistics != rhs.__isset.statistics) - return false; - else if (__isset.statistics && !(statistics == rhs.statistics)) - return false; - if (__isset.encoding_stats != rhs.__isset.encoding_stats) - return false; - else if (__isset.encoding_stats && !(encoding_stats == rhs.encoding_stats)) - return false; - return true; - } - bool operator != (const ColumnMetaData &rhs) const { - return !(*this == rhs); - } - - bool operator < (const ColumnMetaData & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + void __set_bloom_filter_offset(const int64_t val); + + void __set_bloom_filter_length(const int32_t val); + + void __set_size_statistics(const SizeStatistics& val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1731,28 +2106,17 @@ void swap(ColumnMetaData &a, ColumnMetaData &b); std::ostream& operator<<(std::ostream& out, const ColumnMetaData& obj); -class EncryptionWithFooterKey : public virtual ::duckdb_apache::thrift::TBase { +class EncryptionWithFooterKey : public virtual ::apache::thrift::TBase { public: - EncryptionWithFooterKey(const EncryptionWithFooterKey&); - EncryptionWithFooterKey& operator=(const EncryptionWithFooterKey&); - EncryptionWithFooterKey() { - } - - virtual ~EncryptionWithFooterKey() throw(); + EncryptionWithFooterKey(const EncryptionWithFooterKey&) noexcept; + EncryptionWithFooterKey& operator=(const EncryptionWithFooterKey&) noexcept; + EncryptionWithFooterKey() noexcept; - bool operator == (const EncryptionWithFooterKey & /* rhs */) const - { - return true; - } - bool operator != (const EncryptionWithFooterKey &rhs) const { - return !(*this == rhs); - } + virtual ~EncryptionWithFooterKey() noexcept; - bool operator < (const EncryptionWithFooterKey & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1766,16 +2130,21 @@ typedef struct _EncryptionWithColumnKey__isset { bool key_metadata :1; } _EncryptionWithColumnKey__isset; -class EncryptionWithColumnKey : public virtual ::duckdb_apache::thrift::TBase { +class EncryptionWithColumnKey : public virtual ::apache::thrift::TBase { public: EncryptionWithColumnKey(const EncryptionWithColumnKey&); EncryptionWithColumnKey& operator=(const EncryptionWithColumnKey&); - EncryptionWithColumnKey() : key_metadata() { - } + EncryptionWithColumnKey() noexcept; - virtual ~EncryptionWithColumnKey() throw(); + virtual ~EncryptionWithColumnKey() noexcept; + /** + * Column path in schema * + */ duckdb::vector path_in_schema; + /** + * Retrieval metadata of column encryption key * + */ std::string key_metadata; _EncryptionWithColumnKey__isset __isset; @@ -1784,24 +2153,8 @@ class EncryptionWithColumnKey : public virtual ::duckdb_apache::thrift::TBase { void __set_key_metadata(const std::string& val); - bool operator == (const EncryptionWithColumnKey & rhs) const - { - if (!(path_in_schema == rhs.path_in_schema)) - return false; - if (__isset.key_metadata != rhs.__isset.key_metadata) - return false; - else if (__isset.key_metadata && !(key_metadata == rhs.key_metadata)) - return false; - return true; - } - bool operator != (const EncryptionWithColumnKey &rhs) const { - return !(*this == rhs); - } - - bool operator < (const EncryptionWithColumnKey & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1816,15 +2169,14 @@ typedef struct _ColumnCryptoMetaData__isset { bool ENCRYPTION_WITH_COLUMN_KEY :1; } _ColumnCryptoMetaData__isset; -class ColumnCryptoMetaData : public virtual ::duckdb_apache::thrift::TBase { +class ColumnCryptoMetaData : public virtual ::apache::thrift::TBase { public: ColumnCryptoMetaData(const ColumnCryptoMetaData&); ColumnCryptoMetaData& operator=(const ColumnCryptoMetaData&); - ColumnCryptoMetaData() { - } + ColumnCryptoMetaData() noexcept; - virtual ~ColumnCryptoMetaData() throw(); + virtual ~ColumnCryptoMetaData() noexcept; EncryptionWithFooterKey ENCRYPTION_WITH_FOOTER_KEY; EncryptionWithColumnKey ENCRYPTION_WITH_COLUMN_KEY; @@ -1834,26 +2186,8 @@ class ColumnCryptoMetaData : public virtual ::duckdb_apache::thrift::TBase { void __set_ENCRYPTION_WITH_COLUMN_KEY(const EncryptionWithColumnKey& val); - bool operator == (const ColumnCryptoMetaData & rhs) const - { - if (__isset.ENCRYPTION_WITH_FOOTER_KEY != rhs.__isset.ENCRYPTION_WITH_FOOTER_KEY) - return false; - else if (__isset.ENCRYPTION_WITH_FOOTER_KEY && !(ENCRYPTION_WITH_FOOTER_KEY == rhs.ENCRYPTION_WITH_FOOTER_KEY)) - return false; - if (__isset.ENCRYPTION_WITH_COLUMN_KEY != rhs.__isset.ENCRYPTION_WITH_COLUMN_KEY) - return false; - else if (__isset.ENCRYPTION_WITH_COLUMN_KEY && !(ENCRYPTION_WITH_COLUMN_KEY == rhs.ENCRYPTION_WITH_COLUMN_KEY)) - return false; - return true; - } - bool operator != (const ColumnCryptoMetaData &rhs) const { - return !(*this == rhs); - } - - bool operator < (const ColumnCryptoMetaData & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1874,23 +2208,62 @@ typedef struct _ColumnChunk__isset { bool encrypted_column_metadata :1; } _ColumnChunk__isset; -class ColumnChunk : public virtual ::duckdb_apache::thrift::TBase { +class ColumnChunk : public virtual ::apache::thrift::TBase { public: ColumnChunk(const ColumnChunk&); ColumnChunk& operator=(const ColumnChunk&); - ColumnChunk() : file_path(), file_offset(0), offset_index_offset(0), offset_index_length(0), column_index_offset(0), column_index_length(0), encrypted_column_metadata() { - } - - virtual ~ColumnChunk() throw(); + ColumnChunk() noexcept; + + virtual ~ColumnChunk() noexcept; + /** + * File where column data is stored. If not set, assumed to be same file as + * metadata. This path is relative to the current file. + * + */ std::string file_path; + /** + * Deprecated: Byte offset in file_path to the ColumnMetaData + * + * Past use of this field has been inconsistent, with some implementations + * using it to point to the ColumnMetaData and some using it to point to + * the first page in the column chunk. In many cases, the ColumnMetaData at this + * location is wrong. This field is now deprecated and should not be used. + * Writers should set this field to 0 if no ColumnMetaData has been written outside + * the footer. + */ int64_t file_offset; + /** + * Column metadata for this chunk. Some writers may also replicate this at the + * location pointed to by file_path/file_offset. + * Note: while marked as optional, this field is in fact required by most major + * Parquet implementations. As such, writers MUST populate this field. + * + */ ColumnMetaData meta_data; + /** + * File offset of ColumnChunk's OffsetIndex * + */ int64_t offset_index_offset; + /** + * Size of ColumnChunk's OffsetIndex, in bytes * + */ int32_t offset_index_length; + /** + * File offset of ColumnChunk's ColumnIndex * + */ int64_t column_index_offset; + /** + * Size of ColumnChunk's ColumnIndex, in bytes * + */ int32_t column_index_length; + /** + * Crypto metadata of encrypted columns * + */ ColumnCryptoMetaData crypto_metadata; + /** + * Encrypted column metadata for this chunk * + */ std::string encrypted_column_metadata; _ColumnChunk__isset __isset; @@ -1913,52 +2286,8 @@ class ColumnChunk : public virtual ::duckdb_apache::thrift::TBase { void __set_encrypted_column_metadata(const std::string& val); - bool operator == (const ColumnChunk & rhs) const - { - if (__isset.file_path != rhs.__isset.file_path) - return false; - else if (__isset.file_path && !(file_path == rhs.file_path)) - return false; - if (!(file_offset == rhs.file_offset)) - return false; - if (__isset.meta_data != rhs.__isset.meta_data) - return false; - else if (__isset.meta_data && !(meta_data == rhs.meta_data)) - return false; - if (__isset.offset_index_offset != rhs.__isset.offset_index_offset) - return false; - else if (__isset.offset_index_offset && !(offset_index_offset == rhs.offset_index_offset)) - return false; - if (__isset.offset_index_length != rhs.__isset.offset_index_length) - return false; - else if (__isset.offset_index_length && !(offset_index_length == rhs.offset_index_length)) - return false; - if (__isset.column_index_offset != rhs.__isset.column_index_offset) - return false; - else if (__isset.column_index_offset && !(column_index_offset == rhs.column_index_offset)) - return false; - if (__isset.column_index_length != rhs.__isset.column_index_length) - return false; - else if (__isset.column_index_length && !(column_index_length == rhs.column_index_length)) - return false; - if (__isset.crypto_metadata != rhs.__isset.crypto_metadata) - return false; - else if (__isset.crypto_metadata && !(crypto_metadata == rhs.crypto_metadata)) - return false; - if (__isset.encrypted_column_metadata != rhs.__isset.encrypted_column_metadata) - return false; - else if (__isset.encrypted_column_metadata && !(encrypted_column_metadata == rhs.encrypted_column_metadata)) - return false; - return true; - } - bool operator != (const ColumnChunk &rhs) const { - return !(*this == rhs); - } - - bool operator < (const ColumnChunk & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -1975,21 +2304,46 @@ typedef struct _RowGroup__isset { bool ordinal :1; } _RowGroup__isset; -class RowGroup : public virtual ::duckdb_apache::thrift::TBase { +class RowGroup : public virtual ::apache::thrift::TBase { public: RowGroup(const RowGroup&); RowGroup& operator=(const RowGroup&); - RowGroup() : total_byte_size(0), num_rows(0), file_offset(0), total_compressed_size(0), ordinal(0) { - } - - virtual ~RowGroup() throw(); + RowGroup() noexcept; + + virtual ~RowGroup() noexcept; + /** + * Metadata for each column chunk in this row group. + * This list must have the same order as the SchemaElement list in FileMetaData. + * + */ duckdb::vector columns; + /** + * Total byte size of all the uncompressed column data in this row group * + */ int64_t total_byte_size; + /** + * Number of rows in this row group * + */ int64_t num_rows; + /** + * If set, specifies a sort ordering of the rows in this RowGroup. + * The sorting columns can be a subset of all the columns. + */ duckdb::vector sorting_columns; + /** + * Byte offset from beginning of file to first page (data or dictionary) + * in this row group * + */ int64_t file_offset; + /** + * Total byte size of all compressed (and potentially encrypted) column data + * in this row group * + */ int64_t total_compressed_size; + /** + * Row group ordinal in the file * + */ int16_t ordinal; _RowGroup__isset __isset; @@ -2008,40 +2362,8 @@ class RowGroup : public virtual ::duckdb_apache::thrift::TBase { void __set_ordinal(const int16_t val); - bool operator == (const RowGroup & rhs) const - { - if (!(columns == rhs.columns)) - return false; - if (!(total_byte_size == rhs.total_byte_size)) - return false; - if (!(num_rows == rhs.num_rows)) - return false; - if (__isset.sorting_columns != rhs.__isset.sorting_columns) - return false; - else if (__isset.sorting_columns && !(sorting_columns == rhs.sorting_columns)) - return false; - if (__isset.file_offset != rhs.__isset.file_offset) - return false; - else if (__isset.file_offset && !(file_offset == rhs.file_offset)) - return false; - if (__isset.total_compressed_size != rhs.__isset.total_compressed_size) - return false; - else if (__isset.total_compressed_size && !(total_compressed_size == rhs.total_compressed_size)) - return false; - if (__isset.ordinal != rhs.__isset.ordinal) - return false; - else if (__isset.ordinal && !(ordinal == rhs.ordinal)) - return false; - return true; - } - bool operator != (const RowGroup &rhs) const { - return !(*this == rhs); - } - - bool operator < (const RowGroup & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2051,28 +2373,20 @@ void swap(RowGroup &a, RowGroup &b); std::ostream& operator<<(std::ostream& out, const RowGroup& obj); -class TypeDefinedOrder : public virtual ::duckdb_apache::thrift::TBase { +/** + * Empty struct to signal the order defined by the physical or logical type + */ +class TypeDefinedOrder : public virtual ::apache::thrift::TBase { public: - TypeDefinedOrder(const TypeDefinedOrder&); - TypeDefinedOrder& operator=(const TypeDefinedOrder&); - TypeDefinedOrder() { - } - - virtual ~TypeDefinedOrder() throw(); + TypeDefinedOrder(const TypeDefinedOrder&) noexcept; + TypeDefinedOrder& operator=(const TypeDefinedOrder&) noexcept; + TypeDefinedOrder() noexcept; - bool operator == (const TypeDefinedOrder & /* rhs */) const - { - return true; - } - bool operator != (const TypeDefinedOrder &rhs) const { - return !(*this == rhs); - } + virtual ~TypeDefinedOrder() noexcept; - bool operator < (const TypeDefinedOrder & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2086,37 +2400,84 @@ typedef struct _ColumnOrder__isset { bool TYPE_ORDER :1; } _ColumnOrder__isset; -class ColumnOrder : public virtual ::duckdb_apache::thrift::TBase { +/** + * Union to specify the order used for the min_value and max_value fields for a + * column. This union takes the role of an enhanced enum that allows rich + * elements (which will be needed for a collation-based ordering in the future). + * + * Possible values are: + * * TypeDefinedOrder - the column uses the order defined by its logical or + * physical type (if there is no logical type). + * + * If the reader does not support the value of this union, min and max stats + * for this column should be ignored. + */ +class ColumnOrder : public virtual ::apache::thrift::TBase { public: - ColumnOrder(const ColumnOrder&); - ColumnOrder& operator=(const ColumnOrder&); - ColumnOrder() { - } - - virtual ~ColumnOrder() throw(); + ColumnOrder(const ColumnOrder&) noexcept; + ColumnOrder& operator=(const ColumnOrder&) noexcept; + ColumnOrder() noexcept; + + virtual ~ColumnOrder() noexcept; + /** + * The sort orders for logical types are: + * UTF8 - unsigned byte-wise comparison + * INT8 - signed comparison + * INT16 - signed comparison + * INT32 - signed comparison + * INT64 - signed comparison + * UINT8 - unsigned comparison + * UINT16 - unsigned comparison + * UINT32 - unsigned comparison + * UINT64 - unsigned comparison + * DECIMAL - signed comparison of the represented value + * DATE - signed comparison + * TIME_MILLIS - signed comparison + * TIME_MICROS - signed comparison + * TIMESTAMP_MILLIS - signed comparison + * TIMESTAMP_MICROS - signed comparison + * INTERVAL - undefined + * JSON - unsigned byte-wise comparison + * BSON - unsigned byte-wise comparison + * ENUM - unsigned byte-wise comparison + * LIST - undefined + * MAP - undefined + * + * In the absence of logical types, the sort order is determined by the physical type: + * BOOLEAN - false, true + * INT32 - signed comparison + * INT64 - signed comparison + * INT96 (only used for legacy timestamps) - undefined + * FLOAT - signed comparison of the represented value (*) + * DOUBLE - signed comparison of the represented value (*) + * BYTE_ARRAY - unsigned byte-wise comparison + * FIXED_LEN_BYTE_ARRAY - unsigned byte-wise comparison + * + * (*) Because the sorting order is not specified properly for floating + * point values (relations vs. total ordering) the following + * compatibility rules should be applied when reading statistics: + * - If the min is a NaN, it should be ignored. + * - If the max is a NaN, it should be ignored. + * - If the min is +0, the row group may contain -0 values as well. + * - If the max is -0, the row group may contain +0 values as well. + * - When looking for NaN values, min and max should be ignored. + * + * When writing statistics the following rules should be followed: + * - NaNs should not be written to min or max statistics fields. + * - If the computed max value is zero (whether negative or positive), + * `+0.0` should be written into the max statistics field. + * - If the computed min value is zero (whether negative or positive), + * `-0.0` should be written into the min statistics field. + */ TypeDefinedOrder TYPE_ORDER; _ColumnOrder__isset __isset; void __set_TYPE_ORDER(const TypeDefinedOrder& val); - bool operator == (const ColumnOrder & rhs) const - { - if (__isset.TYPE_ORDER != rhs.__isset.TYPE_ORDER) - return false; - else if (__isset.TYPE_ORDER && !(TYPE_ORDER == rhs.TYPE_ORDER)) - return false; - return true; - } - bool operator != (const ColumnOrder &rhs) const { - return !(*this == rhs); - } - - bool operator < (const ColumnOrder & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2126,17 +2487,28 @@ void swap(ColumnOrder &a, ColumnOrder &b); std::ostream& operator<<(std::ostream& out, const ColumnOrder& obj); -class PageLocation : public virtual ::duckdb_apache::thrift::TBase { +class PageLocation : public virtual ::apache::thrift::TBase { public: - PageLocation(const PageLocation&); - PageLocation& operator=(const PageLocation&); - PageLocation() : offset(0), compressed_page_size(0), first_row_index(0) { - } + PageLocation(const PageLocation&) noexcept; + PageLocation& operator=(const PageLocation&) noexcept; + PageLocation() noexcept; - virtual ~PageLocation() throw(); + virtual ~PageLocation() noexcept; + /** + * Offset of the page in the file * + */ int64_t offset; + /** + * Size of the page, including header. Sum of compressed_page_size and header + * length + */ int32_t compressed_page_size; + /** + * Index within the RowGroup of the first row of the page. When an + * OffsetIndex is present, pages must begin on row boundaries + * (repetition_level = 0). + */ int64_t first_row_index; void __set_offset(const int64_t val); @@ -2145,24 +2517,8 @@ class PageLocation : public virtual ::duckdb_apache::thrift::TBase { void __set_first_row_index(const int64_t val); - bool operator == (const PageLocation & rhs) const - { - if (!(offset == rhs.offset)) - return false; - if (!(compressed_page_size == rhs.compressed_page_size)) - return false; - if (!(first_row_index == rhs.first_row_index)) - return false; - return true; - } - bool operator != (const PageLocation &rhs) const { - return !(*this == rhs); - } - - bool operator < (const PageLocation & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2171,34 +2527,47 @@ void swap(PageLocation &a, PageLocation &b); std::ostream& operator<<(std::ostream& out, const PageLocation& obj); +typedef struct _OffsetIndex__isset { + _OffsetIndex__isset() : unencoded_byte_array_data_bytes(false) {} + bool unencoded_byte_array_data_bytes :1; +} _OffsetIndex__isset; -class OffsetIndex : public virtual ::duckdb_apache::thrift::TBase { +/** + * Optional offsets for each data page in a ColumnChunk. + * + * Forms part of the page index, along with ColumnIndex. + * + * OffsetIndex may be present even if ColumnIndex is not. + */ +class OffsetIndex : public virtual ::apache::thrift::TBase { public: OffsetIndex(const OffsetIndex&); OffsetIndex& operator=(const OffsetIndex&); - OffsetIndex() { - } + OffsetIndex() noexcept; - virtual ~OffsetIndex() throw(); + virtual ~OffsetIndex() noexcept; + /** + * PageLocations, ordered by increasing PageLocation.offset. It is required + * that page_locations[i].first_row_index < page_locations[i+1].first_row_index. + */ duckdb::vector page_locations; + /** + * Unencoded/uncompressed size for BYTE_ARRAY types. + * + * See documention for unencoded_byte_array_data_bytes in SizeStatistics for + * more details on this field. + */ + duckdb::vector unencoded_byte_array_data_bytes; - void __set_page_locations(const duckdb::vector & val); + _OffsetIndex__isset __isset; - bool operator == (const OffsetIndex & rhs) const - { - if (!(page_locations == rhs.page_locations)) - return false; - return true; - } - bool operator != (const OffsetIndex &rhs) const { - return !(*this == rhs); - } + void __set_page_locations(const duckdb::vector & val); - bool operator < (const OffsetIndex & ) const; + void __set_unencoded_byte_array_data_bytes(const duckdb::vector & val); - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2208,24 +2577,89 @@ void swap(OffsetIndex &a, OffsetIndex &b); std::ostream& operator<<(std::ostream& out, const OffsetIndex& obj); typedef struct _ColumnIndex__isset { - _ColumnIndex__isset() : null_counts(false) {} + _ColumnIndex__isset() : null_counts(false), repetition_level_histograms(false), definition_level_histograms(false) {} bool null_counts :1; + bool repetition_level_histograms :1; + bool definition_level_histograms :1; } _ColumnIndex__isset; -class ColumnIndex : public virtual ::duckdb_apache::thrift::TBase { +/** + * Optional statistics for each data page in a ColumnChunk. + * + * Forms part the page index, along with OffsetIndex. + * + * If this structure is present, OffsetIndex must also be present. + * + * For each field in this structure, [i] refers to the page at + * OffsetIndex.page_locations[i] + */ +class ColumnIndex : public virtual ::apache::thrift::TBase { public: ColumnIndex(const ColumnIndex&); ColumnIndex& operator=(const ColumnIndex&); - ColumnIndex() : boundary_order((BoundaryOrder::type)0) { - } - - virtual ~ColumnIndex() throw(); + ColumnIndex() noexcept; + + virtual ~ColumnIndex() noexcept; + /** + * A list of Boolean values to determine the validity of the corresponding + * min and max values. If true, a page contains only null values, and writers + * have to set the corresponding entries in min_values and max_values to + * byte[0], so that all lists have the same length. If false, the + * corresponding entries in min_values and max_values must be valid. + */ duckdb::vector null_pages; + /** + * Two lists containing lower and upper bounds for the values of each page + * determined by the ColumnOrder of the column. These may be the actual + * minimum and maximum values found on a page, but can also be (more compact) + * values that do not exist on a page. For example, instead of storing ""Blart + * Versenwald III", a writer may set min_values[i]="B", max_values[i]="C". + * Such more compact values must still be valid values within the column's + * logical type. Readers must make sure that list entries are populated before + * using them by inspecting null_pages. + */ duckdb::vector min_values; duckdb::vector max_values; + /** + * Stores whether both min_values and max_values are ordered and if so, in + * which direction. This allows readers to perform binary searches in both + * lists. Readers cannot assume that max_values[i] <= min_values[i+1], even + * if the lists are ordered. + * + * @see BoundaryOrder + */ BoundaryOrder::type boundary_order; + /** + * A list containing the number of null values for each page + * + * Writers SHOULD always write this field even if no null values + * are present or the column is not nullable. + * Readers MUST distinguish between null_counts not being present + * and null_count being 0. + * If null_counts are not present, readers MUST NOT assume all + * null counts are 0. + */ duckdb::vector null_counts; + /** + * Contains repetition level histograms for each page + * concatenated together. The repetition_level_histogram field on + * SizeStatistics contains more details. + * + * When present the length should always be (number of pages * + * (max_repetition_level + 1)) elements. + * + * Element 0 is the first element of the histogram for the first page. + * Element (max_repetition_level + 1) is the first element of the histogram + * for the second page. + * + */ + duckdb::vector repetition_level_histograms; + /** + * Same as repetition_level_histograms except for definitions levels. + * + */ + duckdb::vector definition_level_histograms; _ColumnIndex__isset __isset; @@ -2239,30 +2673,12 @@ class ColumnIndex : public virtual ::duckdb_apache::thrift::TBase { void __set_null_counts(const duckdb::vector & val); - bool operator == (const ColumnIndex & rhs) const - { - if (!(null_pages == rhs.null_pages)) - return false; - if (!(min_values == rhs.min_values)) - return false; - if (!(max_values == rhs.max_values)) - return false; - if (!(boundary_order == rhs.boundary_order)) - return false; - if (__isset.null_counts != rhs.__isset.null_counts) - return false; - else if (__isset.null_counts && !(null_counts == rhs.null_counts)) - return false; - return true; - } - bool operator != (const ColumnIndex &rhs) const { - return !(*this == rhs); - } - - bool operator < (const ColumnIndex & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + void __set_repetition_level_histograms(const duckdb::vector & val); + + void __set_definition_level_histograms(const duckdb::vector & val); + + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2278,17 +2694,26 @@ typedef struct _AesGcmV1__isset { bool supply_aad_prefix :1; } _AesGcmV1__isset; -class AesGcmV1 : public virtual ::duckdb_apache::thrift::TBase { +class AesGcmV1 : public virtual ::apache::thrift::TBase { public: AesGcmV1(const AesGcmV1&); AesGcmV1& operator=(const AesGcmV1&); - AesGcmV1() : aad_prefix(), aad_file_unique(), supply_aad_prefix(0) { - } + AesGcmV1() noexcept; - virtual ~AesGcmV1() throw(); + virtual ~AesGcmV1() noexcept; + /** + * AAD prefix * + */ std::string aad_prefix; + /** + * Unique file identifier part of AAD suffix * + */ std::string aad_file_unique; + /** + * In files encrypted with AAD prefix without storing it, + * readers must supply the prefix * + */ bool supply_aad_prefix; _AesGcmV1__isset __isset; @@ -2299,30 +2724,8 @@ class AesGcmV1 : public virtual ::duckdb_apache::thrift::TBase { void __set_supply_aad_prefix(const bool val); - bool operator == (const AesGcmV1 & rhs) const - { - if (__isset.aad_prefix != rhs.__isset.aad_prefix) - return false; - else if (__isset.aad_prefix && !(aad_prefix == rhs.aad_prefix)) - return false; - if (__isset.aad_file_unique != rhs.__isset.aad_file_unique) - return false; - else if (__isset.aad_file_unique && !(aad_file_unique == rhs.aad_file_unique)) - return false; - if (__isset.supply_aad_prefix != rhs.__isset.supply_aad_prefix) - return false; - else if (__isset.supply_aad_prefix && !(supply_aad_prefix == rhs.supply_aad_prefix)) - return false; - return true; - } - bool operator != (const AesGcmV1 &rhs) const { - return !(*this == rhs); - } - - bool operator < (const AesGcmV1 & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2338,17 +2741,26 @@ typedef struct _AesGcmCtrV1__isset { bool supply_aad_prefix :1; } _AesGcmCtrV1__isset; -class AesGcmCtrV1 : public virtual ::duckdb_apache::thrift::TBase { +class AesGcmCtrV1 : public virtual ::apache::thrift::TBase { public: AesGcmCtrV1(const AesGcmCtrV1&); AesGcmCtrV1& operator=(const AesGcmCtrV1&); - AesGcmCtrV1() : aad_prefix(), aad_file_unique(), supply_aad_prefix(0) { - } + AesGcmCtrV1() noexcept; - virtual ~AesGcmCtrV1() throw(); + virtual ~AesGcmCtrV1() noexcept; + /** + * AAD prefix * + */ std::string aad_prefix; + /** + * Unique file identifier part of AAD suffix * + */ std::string aad_file_unique; + /** + * In files encrypted with AAD prefix without storing it, + * readers must supply the prefix * + */ bool supply_aad_prefix; _AesGcmCtrV1__isset __isset; @@ -2359,30 +2771,8 @@ class AesGcmCtrV1 : public virtual ::duckdb_apache::thrift::TBase { void __set_supply_aad_prefix(const bool val); - bool operator == (const AesGcmCtrV1 & rhs) const - { - if (__isset.aad_prefix != rhs.__isset.aad_prefix) - return false; - else if (__isset.aad_prefix && !(aad_prefix == rhs.aad_prefix)) - return false; - if (__isset.aad_file_unique != rhs.__isset.aad_file_unique) - return false; - else if (__isset.aad_file_unique && !(aad_file_unique == rhs.aad_file_unique)) - return false; - if (__isset.supply_aad_prefix != rhs.__isset.supply_aad_prefix) - return false; - else if (__isset.supply_aad_prefix && !(supply_aad_prefix == rhs.supply_aad_prefix)) - return false; - return true; - } - bool operator != (const AesGcmCtrV1 &rhs) const { - return !(*this == rhs); - } - - bool operator < (const AesGcmCtrV1 & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2397,15 +2787,14 @@ typedef struct _EncryptionAlgorithm__isset { bool AES_GCM_CTR_V1 :1; } _EncryptionAlgorithm__isset; -class EncryptionAlgorithm : public virtual ::duckdb_apache::thrift::TBase { +class EncryptionAlgorithm : public virtual ::apache::thrift::TBase { public: EncryptionAlgorithm(const EncryptionAlgorithm&); EncryptionAlgorithm& operator=(const EncryptionAlgorithm&); - EncryptionAlgorithm() { - } + EncryptionAlgorithm() noexcept; - virtual ~EncryptionAlgorithm() throw(); + virtual ~EncryptionAlgorithm() noexcept; AesGcmV1 AES_GCM_V1; AesGcmCtrV1 AES_GCM_CTR_V1; @@ -2415,26 +2804,8 @@ class EncryptionAlgorithm : public virtual ::duckdb_apache::thrift::TBase { void __set_AES_GCM_CTR_V1(const AesGcmCtrV1& val); - bool operator == (const EncryptionAlgorithm & rhs) const - { - if (__isset.AES_GCM_V1 != rhs.__isset.AES_GCM_V1) - return false; - else if (__isset.AES_GCM_V1 && !(AES_GCM_V1 == rhs.AES_GCM_V1)) - return false; - if (__isset.AES_GCM_CTR_V1 != rhs.__isset.AES_GCM_CTR_V1) - return false; - else if (__isset.AES_GCM_CTR_V1 && !(AES_GCM_CTR_V1 == rhs.AES_GCM_CTR_V1)) - return false; - return true; - } - bool operator != (const EncryptionAlgorithm &rhs) const { - return !(*this == rhs); - } - - bool operator < (const EncryptionAlgorithm & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2452,23 +2823,76 @@ typedef struct _FileMetaData__isset { bool footer_signing_key_metadata :1; } _FileMetaData__isset; -class FileMetaData : public virtual ::duckdb_apache::thrift::TBase { +/** + * Description for file metadata + */ +class FileMetaData : public virtual ::apache::thrift::TBase { public: FileMetaData(const FileMetaData&); FileMetaData& operator=(const FileMetaData&); - FileMetaData() : version(0), num_rows(0), created_by(), footer_signing_key_metadata() { - } + FileMetaData() noexcept; - virtual ~FileMetaData() throw(); + virtual ~FileMetaData() noexcept; + /** + * Version of this file * + */ int32_t version; + /** + * Parquet schema for this file. This schema contains metadata for all the columns. + * The schema is represented as a tree with a single root. The nodes of the tree + * are flattened to a list by doing a depth-first traversal. + * The column metadata contains the path in the schema for that column which can be + * used to map columns to nodes in the schema. + * The first element is the root * + */ duckdb::vector schema; + /** + * Number of rows in this file * + */ int64_t num_rows; + /** + * Row groups in this file * + */ duckdb::vector row_groups; + /** + * Optional key/value metadata * + */ duckdb::vector key_value_metadata; + /** + * String for application that wrote this file. This should be in the format + * version (build ). + * e.g. impala version 1.0 (build 6cf94d29b2b7115df4de2c06e2ab4326d721eb55) + * + */ std::string created_by; + /** + * Sort order used for the min_value and max_value fields in the Statistics + * objects and the min_values and max_values fields in the ColumnIndex + * objects of each column in this file. Sort orders are listed in the order + * matching the columns in the schema. The indexes are not necessary the same + * though, because only leaf nodes of the schema are represented in the list + * of sort orders. + * + * Without column_orders, the meaning of the min_value and max_value fields + * in the Statistics object and the ColumnIndex object is undefined. To ensure + * well-defined behaviour, if these fields are written to a Parquet file, + * column_orders must be written as well. + * + * The obsolete min and max fields in the Statistics object are always sorted + * by signed comparison regardless of column_orders. + */ duckdb::vector column_orders; + /** + * Encryption algorithm. This field is set only in encrypted files + * with plaintext footer. Files with encrypted footer store algorithm id + * in FileCryptoMetaData structure. + */ EncryptionAlgorithm encryption_algorithm; + /** + * Retrieval metadata of key used for signing the footer. + * Used only in encrypted files with plaintext footer. + */ std::string footer_signing_key_metadata; _FileMetaData__isset __isset; @@ -2491,46 +2915,8 @@ class FileMetaData : public virtual ::duckdb_apache::thrift::TBase { void __set_footer_signing_key_metadata(const std::string& val); - bool operator == (const FileMetaData & rhs) const - { - if (!(version == rhs.version)) - return false; - if (!(schema == rhs.schema)) - return false; - if (!(num_rows == rhs.num_rows)) - return false; - if (!(row_groups == rhs.row_groups)) - return false; - if (__isset.key_value_metadata != rhs.__isset.key_value_metadata) - return false; - else if (__isset.key_value_metadata && !(key_value_metadata == rhs.key_value_metadata)) - return false; - if (__isset.created_by != rhs.__isset.created_by) - return false; - else if (__isset.created_by && !(created_by == rhs.created_by)) - return false; - if (__isset.column_orders != rhs.__isset.column_orders) - return false; - else if (__isset.column_orders && !(column_orders == rhs.column_orders)) - return false; - if (__isset.encryption_algorithm != rhs.__isset.encryption_algorithm) - return false; - else if (__isset.encryption_algorithm && !(encryption_algorithm == rhs.encryption_algorithm)) - return false; - if (__isset.footer_signing_key_metadata != rhs.__isset.footer_signing_key_metadata) - return false; - else if (__isset.footer_signing_key_metadata && !(footer_signing_key_metadata == rhs.footer_signing_key_metadata)) - return false; - return true; - } - bool operator != (const FileMetaData &rhs) const { - return !(*this == rhs); - } - - bool operator < (const FileMetaData & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2544,16 +2930,27 @@ typedef struct _FileCryptoMetaData__isset { bool key_metadata :1; } _FileCryptoMetaData__isset; -class FileCryptoMetaData : public virtual ::duckdb_apache::thrift::TBase { +/** + * Crypto metadata for files with encrypted footer * + */ +class FileCryptoMetaData : public virtual ::apache::thrift::TBase { public: FileCryptoMetaData(const FileCryptoMetaData&); FileCryptoMetaData& operator=(const FileCryptoMetaData&); - FileCryptoMetaData() : key_metadata() { - } - - virtual ~FileCryptoMetaData() throw(); + FileCryptoMetaData() noexcept; + + virtual ~FileCryptoMetaData() noexcept; + /** + * Encryption algorithm. This field is only used for files + * with encrypted footer. Files with plaintext footer store algorithm id + * inside footer (FileMetaData structure). + */ EncryptionAlgorithm encryption_algorithm; + /** + * Retrieval metadata of key used for encryption of footer, + * and (possibly) columns * + */ std::string key_metadata; _FileCryptoMetaData__isset __isset; @@ -2562,24 +2959,8 @@ class FileCryptoMetaData : public virtual ::duckdb_apache::thrift::TBase { void __set_key_metadata(const std::string& val); - bool operator == (const FileCryptoMetaData & rhs) const - { - if (!(encryption_algorithm == rhs.encryption_algorithm)) - return false; - if (__isset.key_metadata != rhs.__isset.key_metadata) - return false; - else if (__isset.key_metadata && !(key_metadata == rhs.key_metadata)) - return false; - return true; - } - bool operator != (const FileCryptoMetaData &rhs) const { - return !(*this == rhs); - } - - bool operator < (const FileCryptoMetaData & ) const; - - uint32_t read(::duckdb_apache::thrift::protocol::TProtocol* iprot); - uint32_t write(::duckdb_apache::thrift::protocol::TProtocol* oprot) const; + uint32_t read(::apache::thrift::protocol::TProtocol* iprot) override; + uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const override; virtual void printTo(std::ostream& out) const; }; @@ -2588,6 +2969,6 @@ void swap(FileCryptoMetaData &a, FileCryptoMetaData &b); std::ostream& operator<<(std::ostream& out, const FileCryptoMetaData& obj); -}} // namespace +} // namespace #endif diff --git a/src/duckdb/third_party/parquet/windows_compatibility.h b/src/duckdb/third_party/parquet/windows_compatibility.h index 6cbe6009..89beede9 100644 --- a/src/duckdb/third_party/parquet/windows_compatibility.h +++ b/src/duckdb/third_party/parquet/windows_compatibility.h @@ -6,4 +6,4 @@ #undef Realloc #undef min #undef max -#endif \ No newline at end of file +#endif diff --git a/src/duckdb/third_party/pcg/pcg_extras.hpp b/src/duckdb/third_party/pcg/pcg_extras.hpp index 66b31d5b..27c3ed5e 100644 --- a/src/duckdb/third_party/pcg/pcg_extras.hpp +++ b/src/duckdb/third_party/pcg/pcg_extras.hpp @@ -661,4 +661,4 @@ std::ostream& operator<<(std::ostream& out, printable_typename) { } // namespace pcg_extras -#endif // PCG_EXTRAS_HPP_INCLUDED \ No newline at end of file +#endif // PCG_EXTRAS_HPP_INCLUDED diff --git a/src/duckdb/third_party/pcg/pcg_uint128.hpp b/src/duckdb/third_party/pcg/pcg_uint128.hpp index a29f77cb..faf10023 100644 --- a/src/duckdb/third_party/pcg/pcg_uint128.hpp +++ b/src/duckdb/third_party/pcg/pcg_uint128.hpp @@ -881,4 +881,4 @@ uint_x4 operator>>(const uint_x4& v, } // namespace pcg_extras -#endif // PCG_UINT128_HPP_INCLUDED \ No newline at end of file +#endif // PCG_UINT128_HPP_INCLUDED diff --git a/src/duckdb/third_party/re2/re2/bitstate.cc b/src/duckdb/third_party/re2/re2/bitstate.cc index a7ef5d88..f87effd8 100644 --- a/src/duckdb/third_party/re2/re2/bitstate.cc +++ b/src/duckdb/third_party/re2/re2/bitstate.cc @@ -24,63 +24,15 @@ #include #include "util/logging.h" +#include "re2/bitstate.h" #include "re2/pod_array.h" -#include "re2/prog.h" #include "re2/regexp.h" namespace duckdb_re2 { -struct Job { - int id; - int rle; // run length encoding - const char* p; -}; - -class BitState { - public: - explicit BitState(Prog* prog); - - // The usual Search prototype. - // Can only call Search once per BitState. - bool Search(const StringPiece& text, const StringPiece& context, - bool anchored, bool longest, - StringPiece* submatch, int nsubmatch); - - private: - inline bool ShouldVisit(int id, const char* p); - void Push(int id, const char* p); - void GrowStack(); - bool TrySearch(int id, const char* p); - - // Search parameters - Prog* prog_; // program being run - StringPiece text_; // text being searched - StringPiece context_; // greater context of text being searched - bool anchored_; // whether search is anchored at text.begin() - bool longest_; // whether search wants leftmost-longest match - bool endmatch_; // whether match must end at text.end() - StringPiece* submatch_; // submatches to fill in - int nsubmatch_; // # of submatches to fill in - - // Search state - static constexpr int kVisitedBits = 64; - PODArray visited_; // bitmap: (list ID, char*) pairs visited - PODArray cap_; // capture registers - PODArray job_; // stack of text positions to explore - int njob_; // stack size - - BitState(const BitState&) = delete; - BitState& operator=(const BitState&) = delete; -}; - BitState::BitState(Prog* prog) - : prog_(prog), - anchored_(false), - longest_(false), - endmatch_(false), - submatch_(NULL), - nsubmatch_(0), - njob_(0) { + : prog_(prog){ + Reset(); } // Given id, which *must* be a list head, we can look up its list ID. @@ -308,17 +260,23 @@ bool BitState::Search(const StringPiece& text, const StringPiece& context, // Allocate scratch space. int nvisited = prog_->list_count() * static_cast(text.size()+1); nvisited = (nvisited + kVisitedBits-1) / kVisitedBits; - visited_ = PODArray(nvisited); - memset(visited_.data(), 0, nvisited*sizeof visited_[0]); + if (visited_.size() < nvisited) { + visited_ = PODArray(nvisited); + } + memset(visited_.data(), 0, nvisited*sizeof visited_[0]); int ncap = 2*nsubmatch; if (ncap < 2) ncap = 2; - cap_ = PODArray(ncap); - memset(cap_.data(), 0, ncap*sizeof cap_[0]); + if (cap_.size() < ncap) { + cap_ = PODArray(ncap); + } + memset(cap_.data(), 0, ncap*sizeof cap_[0]); // When sizeof(Job) == 16, we start with a nice round 1KiB. :) - job_ = PODArray(64); + if (job_.size() < 64) { + job_ = PODArray(64); + } // Anchored search must start at text.begin(). if (anchored_) { @@ -372,10 +330,14 @@ bool Prog::SearchBitState(const StringPiece& text, } // Run the search. - BitState b(this); + if (!bitstate) { + bitstate = std::unique_ptr(new BitState(this)); + } else { + bitstate->Reset(); + } bool anchored = anchor == kAnchored; bool longest = kind != kFirstMatch; - if (!b.Search(text, context, anchored, longest, match, nmatch)) + if (!bitstate->Search(text, context, anchored, longest, match, nmatch)) return false; if (kind == kFullMatch && EndPtr(match[0]) != EndPtr(text)) return false; diff --git a/src/duckdb/third_party/re2/re2/bitstate.h b/src/duckdb/third_party/re2/re2/bitstate.h new file mode 100644 index 00000000..899d57d9 --- /dev/null +++ b/src/duckdb/third_party/re2/re2/bitstate.h @@ -0,0 +1,57 @@ +#include "re2/prog.h" + +namespace duckdb_re2 { + +struct Job { + int id; + int rle; // run length encoding + const char* p; +}; + +class BitState { +public: + explicit BitState(Prog* prog); + + // The usual Search prototype. + // Can only call Search once per BitState. + bool Search(const StringPiece& text, const StringPiece& context, + bool anchored, bool longest, + StringPiece* submatch, int nsubmatch); + + void Reset() { + anchored_ = false; + longest_ = false; + endmatch_ =false; + submatch_ =NULL; + nsubmatch_ =0; + njob_= 0; + } + +private: + inline bool ShouldVisit(int id, const char* p); + void Push(int id, const char* p); + void GrowStack(); + bool TrySearch(int id, const char* p); + + // Search parameters + Prog* prog_; // program being run + StringPiece text_; // text being searched + StringPiece context_; // greater context of text being searched + bool anchored_; // whether search is anchored at text.begin() + bool longest_; // whether search wants leftmost-longest match + bool endmatch_; // whether match must end at text.end() + StringPiece* submatch_; // submatches to fill in + int nsubmatch_; // # of submatches to fill in + + // Search state + static constexpr int kVisitedBits = 64; + PODArray visited_; // bitmap: (list ID, char*) pairs visited + PODArray cap_; // capture registers + PODArray job_; // stack of text positions to explore + int njob_; // stack size + + BitState(const BitState&) = delete; + BitState& operator=(const BitState&) = delete; +}; + +} diff --git a/src/duckdb/third_party/re2/re2/prog.cc b/src/duckdb/third_party/re2/re2/prog.cc index 716b6f3e..f8b25883 100644 --- a/src/duckdb/third_party/re2/re2/prog.cc +++ b/src/duckdb/third_party/re2/re2/prog.cc @@ -6,6 +6,7 @@ // Tested by compile_test.cc #include "re2/prog.h" +#include "re2/bitstate.h" #if defined(__AVX2__) #include diff --git a/src/duckdb/third_party/re2/re2/prog.h b/src/duckdb/third_party/re2/re2/prog.h index e385b59e..d90b9f71 100644 --- a/src/duckdb/third_party/re2/re2/prog.h +++ b/src/duckdb/third_party/re2/re2/prog.h @@ -24,6 +24,7 @@ #include "re2/sparse_set.h" namespace duckdb_re2 { +class BitState; // Opcodes for Inst enum InstOp { @@ -408,6 +409,7 @@ class Prog { DFA* GetDFA(MatchKind kind); void DeleteDFA(DFA* dfa); + std::unique_ptr bitstate; bool anchor_start_; // regexp has explicit start anchor bool anchor_end_; // regexp has explicit end anchor bool reversed_; // whether program runs backward over input diff --git a/src/duckdb/third_party/skiplist/Node.h b/src/duckdb/third_party/skiplist/Node.h index 93d49504..28a0aed8 100644 --- a/src/duckdb/third_party/skiplist/Node.h +++ b/src/duckdb/third_party/skiplist/Node.h @@ -488,8 +488,8 @@ Node *Node::remove(size_t call_level, } /* - * This checks the internal concistency of a Node. It returns 0 - * if succesful, non-zero on error. The tests are: + * This checks the internal consistency of a Node. It returns 0 + * if successful, non-zero on error. The tests are: * * - Height must be >= 1 * - Height must not exceed HeadNode height. @@ -497,8 +497,8 @@ Node *Node::remove(size_t call_level, * - Node pointers must not be self-referential. */ /** - * This checks the internal concistency of a Node. It returns 0 - * if succesful, non-zero on error. The tests are: + * This checks the internal consistency of a Node. It returns 0 + * if successful, non-zero on error. The tests are: * * - Height must be >= 1 * - Height must not exceed HeadNode height. diff --git a/src/duckdb/third_party/snappy/snappy-stubs-internal.h b/src/duckdb/third_party/snappy/snappy-stubs-internal.h index 6b06b6ba..d2426a74 100644 --- a/src/duckdb/third_party/snappy/snappy-stubs-internal.h +++ b/src/duckdb/third_party/snappy/snappy-stubs-internal.h @@ -31,6 +31,19 @@ #ifndef THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_INTERNAL_H_ #define THIRD_PARTY_SNAPPY_OPENSOURCE_SNAPPY_STUBS_INTERNAL_H_ +// DuckDB - LNK: define here instead of in CMake +#ifdef __GNUC__ +#define HAVE_BUILTIN_EXPECT 1 +#define HAVE_BUILTIN_CTZ 1 +#define HAVE_BUILTIN_PREFETCH 1 +#endif + +// These should always be available on aarch64, but sadly not on iOS/Android +// #if defined(__aarch64__) +// #define SNAPPY_HAVE_NEON 1 +// #define SNAPPY_HAVE_NEON_CRC32 1 +// #endif + #include "snappy_version.hpp" #if SNAPPY_NEW_VERSION @@ -47,14 +60,6 @@ #include #include -// DuckDB - LNK: define here instead of in CMake -#ifdef __GNUC__ -#define HAVE_BUILTIN_EXPECT 1 -#define HAVE_BUILTIN_CTZ 1 -#define HAVE_BUILTIN_PREFETCH 1 -#endif - - #if HAVE_SYS_MMAN_H #include #endif @@ -552,13 +557,6 @@ inline char* string_as_array(std::string* str) { #include #include -// DuckDB - LNK: define here instead of in CMake -#ifdef __GNUC__ -#define HAVE_BUILTIN_EXPECT -#define HAVE_BUILTIN_CTZ -#define HAVE_BUILTIN_PREFETCH -#endif - #ifdef HAVE_SYS_MMAN_H #include #endif diff --git a/src/duckdb/third_party/snappy/snappy.cc b/src/duckdb/third_party/snappy/snappy.cc index 23b83081..f3ebe066 100644 --- a/src/duckdb/third_party/snappy/snappy.cc +++ b/src/duckdb/third_party/snappy/snappy.cc @@ -4285,4 +4285,4 @@ bool Uncompress(Source* compressed, Sink* uncompressed) { } // namespace duckdb_snappy -#endif // #if SNAPPY_NEW_VERSION # else \ No newline at end of file +#endif // #if SNAPPY_NEW_VERSION # else diff --git a/src/duckdb/third_party/snappy/snappy_version.hpp b/src/duckdb/third_party/snappy/snappy_version.hpp index be97e820..ef8b48b3 100644 --- a/src/duckdb/third_party/snappy/snappy_version.hpp +++ b/src/duckdb/third_party/snappy/snappy_version.hpp @@ -8,4 +8,4 @@ #else #define SNAPPY_NEW_VERSION false #endif -#endif \ No newline at end of file +#endif diff --git a/src/duckdb/third_party/thrift/thrift/thrift-config.h b/src/duckdb/third_party/thrift/thrift/thrift-config.h index e4761f8d..33fdfd39 100644 --- a/src/duckdb/third_party/thrift/thrift/thrift-config.h +++ b/src/duckdb/third_party/thrift/thrift/thrift-config.h @@ -31,4 +31,4 @@ #define ARITHMETIC_RIGHT_SHIFT 1 #endif -#endif \ No newline at end of file +#endif diff --git a/src/duckdb/third_party/zstd/common/debug.cpp b/src/duckdb/third_party/zstd/common/debug.cpp new file mode 100644 index 00000000..01010e4e --- /dev/null +++ b/src/duckdb/third_party/zstd/common/debug.cpp @@ -0,0 +1,36 @@ +/* ****************************************************************** + * debug + * Part of FSE library + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * You can contact the author at : + * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. +****************************************************************** */ + + +/* + * This module only hosts one global variable + * which can be used to dynamically influence the verbosity of traces, + * such as DEBUGLOG and RAWLOG + */ + +#include "zstd/common/debug.h" + +#if !defined(ZSTD_LINUX_KERNEL) || (DEBUGLEVEL>=2) + +namespace duckdb_zstd { + +/* We only use this when DEBUGLEVEL>=2, but we get -Werror=pedantic errors if a + * translation unit is empty. So remove this from Linux kernel builds, but + * otherwise just leave it in. + */ +int g_debuglevel = DEBUGLEVEL; + +} // namespace duckdb_zstd + +#endif diff --git a/src/duckdb/third_party/zstd/common/entropy_common.cpp b/src/duckdb/third_party/zstd/common/entropy_common.cpp index bd41d220..9a33c2df 100644 --- a/src/duckdb/third_party/zstd/common/entropy_common.cpp +++ b/src/duckdb/third_party/zstd/common/entropy_common.cpp @@ -1,6 +1,6 @@ /* ****************************************************************** * Common functions of New Generation Entropy library - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -17,10 +17,10 @@ ***************************************/ #include "zstd/common/mem.h" #include "zstd/common/error_private.h" /* ERR_*, ERROR */ +#define FSE_STATIC_LINKING_ONLY /* FSE_MIN_TABLELOG */ #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" +#include "zstd/common/bits.h" /* ZSDT_highbit32, ZSTD_countTrailingZeros32 */ namespace duckdb_zstd { @@ -39,8 +39,9 @@ const char* HUF_getErrorName(size_t code) { return ERR_getErrorName(code); } /*-************************************************************** * FSE NCount encoding-decoding ****************************************************************/ -size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, - const void* headerBuffer, size_t hbSize) +FORCE_INLINE_TEMPLATE +size_t FSE_readNCount_body(short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) { const BYTE* const istart = (const BYTE*) headerBuffer; const BYTE* const iend = istart + hbSize; @@ -51,23 +52,23 @@ size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* t U32 bitStream; int bitCount; unsigned charnum = 0; + unsigned const maxSV1 = *maxSVPtr + 1; int previous0 = 0; - if (hbSize < 4) { - /* This function only works when hbSize >= 4 */ - char buffer[4]; - memset(buffer, 0, sizeof(buffer)); - memcpy(buffer, headerBuffer, hbSize); + if (hbSize < 8) { + /* This function only works when hbSize >= 8 */ + char buffer[8] = {0}; + ZSTD_memcpy(buffer, headerBuffer, hbSize); { size_t const countSize = FSE_readNCount(normalizedCounter, maxSVPtr, tableLogPtr, buffer, sizeof(buffer)); if (FSE_isError(countSize)) return countSize; if (countSize > hbSize) return ERROR(corruption_detected); return countSize; } } - assert(hbSize >= 4); + assert(hbSize >= 8); /* init */ - memset(normalizedCounter, 0, (*maxSVPtr+1) * sizeof(normalizedCounter[0])); /* all symbols not present in NCount have a frequency of 0 */ + ZSTD_memset(normalizedCounter, 0, (*maxSVPtr+1) * sizeof(normalizedCounter[0])); /* all symbols not present in NCount have a frequency of 0 */ bitStream = MEM_readLE32(ip); nbBits = (bitStream & 0xF) + FSE_MIN_TABLELOG; /* extract tableLog */ if (nbBits > FSE_TABLELOG_ABSOLUTE_MAX) return ERROR(tableLog_tooLarge); @@ -78,36 +79,58 @@ size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* t threshold = 1<1) & (charnum<=*maxSVPtr)) { + for (;;) { if (previous0) { - unsigned n0 = charnum; - while ((bitStream & 0xFFFF) == 0xFFFF) { - n0 += 24; - if (ip < iend-5) { - ip += 2; - bitStream = MEM_readLE32(ip) >> bitCount; + /* Count the number of repeats. Each time the + * 2-bit repeat code is 0b11 there is another + * repeat. + * Avoid UB by setting the high bit to 1. + */ + int repeats = ZSTD_countTrailingZeros32(~bitStream | 0x80000000) >> 1; + while (repeats >= 12) { + charnum += 3 * 12; + if (LIKELY(ip <= iend-7)) { + ip += 3; } else { - bitStream >>= 16; - bitCount += 16; - } } - while ((bitStream & 3) == 3) { - n0 += 3; - bitStream >>= 2; - bitCount += 2; + bitCount -= (int)(8 * (iend - 7 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + repeats = ZSTD_countTrailingZeros32(~bitStream | 0x80000000) >> 1; } - n0 += bitStream & 3; + charnum += 3 * repeats; + bitStream >>= 2 * repeats; + bitCount += 2 * repeats; + + /* Add the final repeat which isn't 0b11. */ + assert((bitStream & 3) < 3); + charnum += bitStream & 3; bitCount += 2; - if (n0 > *maxSVPtr) return ERROR(maxSymbolValue_tooSmall); - while (charnum < n0) normalizedCounter[charnum++] = 0; - if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { + + /* This is an error, but break and return an error + * at the end, because returning out of a loop makes + * it harder for the compiler to optimize. + */ + if (charnum >= maxSV1) break; + + /* We don't need to set the normalized count to 0 + * because we already memset the whole buffer to 0. + */ + + if (LIKELY(ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { assert((bitCount >> 3) <= 3); /* For first condition to work */ ip += bitCount>>3; bitCount &= 7; - bitStream = MEM_readLE32(ip) >> bitCount; } else { - bitStream >>= 2; - } } - { int const max = (2*threshold-1) - remaining; + bitCount -= (int)(8 * (iend - 4 - ip)); + bitCount &= 31; + ip = iend - 4; + } + bitStream = MEM_readLE32(ip) >> bitCount; + } + { + int const max = (2*threshold-1) - remaining; int count; if ((bitStream & (threshold-1)) < (U32)max) { @@ -120,24 +143,43 @@ size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* t } count--; /* extra accuracy */ - remaining -= count < 0 ? -count : count; /* -1 means +1 */ + /* When it matters (small blocks), this is a + * predictable branch, because we don't use -1. + */ + if (count >= 0) { + remaining -= count; + } else { + assert(count == -1); + remaining += count; + } normalizedCounter[charnum++] = (short)count; previous0 = !count; - while (remaining < threshold) { - nbBits--; - threshold >>= 1; + + assert(threshold > 1); + if (remaining < threshold) { + /* This branch can be folded into the + * threshold update condition because we + * know that threshold > 1. + */ + if (remaining <= 1) break; + nbBits = ZSTD_highbit32(remaining) + 1; + threshold = 1 << (nbBits - 1); } + if (charnum >= maxSV1) break; - if ((ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { + if (LIKELY(ip <= iend-7) || (ip + (bitCount>>3) <= iend-4)) { ip += bitCount>>3; bitCount &= 7; } else { bitCount -= (int)(8 * (iend - 4 - ip)); + bitCount &= 31; ip = iend - 4; } - bitStream = MEM_readLE32(ip) >> (bitCount & 31); - } } /* while ((remaining>1) & (charnum<=*maxSVPtr)) */ + bitStream = MEM_readLE32(ip) >> bitCount; + } } if (remaining != 1) return ERROR(corruption_detected); + /* Only possible when there are too many zeros. */ + if (charnum > maxSV1) return ERROR(maxSymbolValue_tooSmall); if (bitCount > 32) return ERROR(corruption_detected); *maxSVPtr = charnum-1; @@ -145,6 +187,43 @@ size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* t return ip-istart; } +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t FSE_readNCount_body_default( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_body(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} + +#if DYNAMIC_BMI2 +BMI2_TARGET_ATTRIBUTE static size_t FSE_readNCount_body_bmi2( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_body(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} +#endif + +size_t FSE_readNCount_bmi2( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize, int bmi2) +{ +#if DYNAMIC_BMI2 + if (bmi2) { + return FSE_readNCount_body_bmi2(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); + } +#endif + (void)bmi2; + return FSE_readNCount_body_default(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize); +} + +size_t FSE_readNCount( + short* normalizedCounter, unsigned* maxSVPtr, unsigned* tableLogPtr, + const void* headerBuffer, size_t hbSize) +{ + return FSE_readNCount_bmi2(normalizedCounter, maxSVPtr, tableLogPtr, headerBuffer, hbSize, /* bmi2 */ 0); +} + /*! HUF_readStats() : Read compact Huffman tree, saved by HUF_writeCTable(). @@ -156,6 +235,17 @@ size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSVPtr, unsigned* t size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, const void* src, size_t srcSize) +{ + U32 wksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; + return HUF_readStats_wksp(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, wksp, sizeof(wksp), /* flags */ 0); +} + +FORCE_INLINE_TEMPLATE size_t +HUF_readStats_body(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize, + int bmi2) { U32 weightTotal; const BYTE* ip = (const BYTE*) src; @@ -164,7 +254,7 @@ size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, if (!srcSize) return ERROR(srcSize_wrong); iSize = ip[0]; - /* memset(huffWeight, 0, hwSize); *//* is not necessary, even though some analyzer complain ... */ + /* ZSTD_memset(huffWeight, 0, hwSize); *//* is not necessary, even though some analyzer complain ... */ if (iSize >= 128) { /* special header */ oSize = iSize - 127; @@ -178,31 +268,31 @@ size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, huffWeight[n+1] = ip[n/2] & 15; } } } else { /* header compressed with FSE (normal case) */ - FSE_DTable fseWorkspace[FSE_DTABLE_SIZE_U32(6)]; /* 6 is max possible tableLog for HUF header (maybe even 5, to be tested) */ if (iSize+1 > srcSize) return ERROR(srcSize_wrong); - oSize = FSE_decompress_wksp(huffWeight, hwSize-1, ip+1, iSize, fseWorkspace, 6); /* max (hwSize-1) values decoded, as last one is implied */ + /* max (hwSize-1) values decoded, as last one is implied */ + oSize = FSE_decompress_wksp_bmi2(huffWeight, hwSize-1, ip+1, iSize, 6, workSpace, wkspSize, bmi2); if (FSE_isError(oSize)) return oSize; } /* collect weight stats */ - memset(rankStats, 0, (HUF_TABLELOG_MAX + 1) * sizeof(U32)); + ZSTD_memset(rankStats, 0, (HUF_TABLELOG_MAX + 1) * sizeof(U32)); weightTotal = 0; { U32 n; for (n=0; n= HUF_TABLELOG_MAX) return ERROR(corruption_detected); + if (huffWeight[n] > HUF_TABLELOG_MAX) return ERROR(corruption_detected); rankStats[huffWeight[n]]++; weightTotal += (1 << huffWeight[n]) >> 1; } } if (weightTotal == 0) return ERROR(corruption_detected); /* get last non-null symbol weight (implied, total must be 2^n) */ - { U32 const tableLog = BIT_highbit32(weightTotal) + 1; + { U32 const tableLog = ZSTD_highbit32(weightTotal) + 1; if (tableLog > HUF_TABLELOG_MAX) return ERROR(corruption_detected); *tableLogPtr = tableLog; /* determine last weight */ { U32 const total = 1 << tableLog; U32 const rest = total - weightTotal; - U32 const verif = 1 << BIT_highbit32(rest); - U32 const lastWeight = BIT_highbit32(rest) + 1; + U32 const verif = 1 << ZSTD_highbit32(rest); + U32 const lastWeight = ZSTD_highbit32(rest) + 1; if (verif != rest) return ERROR(corruption_detected); /* last value must be a clean power of 2 */ huffWeight[oSize] = (BYTE)lastWeight; rankStats[lastWeight]++; @@ -216,4 +306,38 @@ size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, U32* rankStats, return iSize+1; } +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t HUF_readStats_body_default(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_readStats_body(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize, 0); +} + +#if DYNAMIC_BMI2 +static BMI2_TARGET_ATTRIBUTE size_t HUF_readStats_body_bmi2(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize) +{ + return HUF_readStats_body(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize, 1); +} +#endif + +size_t HUF_readStats_wksp(BYTE* huffWeight, size_t hwSize, U32* rankStats, + U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workSpace, size_t wkspSize, + int flags) +{ +#if DYNAMIC_BMI2 + if (flags & HUF_flags_bmi2) { + return HUF_readStats_body_bmi2(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize); + } +#endif + (void)flags; + return HUF_readStats_body_default(huffWeight, hwSize, rankStats, nbSymbolsPtr, tableLogPtr, src, srcSize, workSpace, wkspSize); } + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/common/error_private.cpp b/src/duckdb/third_party/zstd/common/error_private.cpp index 207ef006..c3ba4728 100644 --- a/src/duckdb/third_party/zstd/common/error_private.cpp +++ b/src/duckdb/third_party/zstd/common/error_private.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -29,9 +29,11 @@ const char* ERR_getErrorString(ERR_enum code) case PREFIX(version_unsupported): return "Version not supported"; case PREFIX(frameParameter_unsupported): return "Unsupported frame parameter"; case PREFIX(frameParameter_windowTooLarge): return "Frame requires too much memory for decoding"; - case PREFIX(corruption_detected): return "Corrupted block detected"; + case PREFIX(corruption_detected): return "Data corruption detected"; case PREFIX(checksum_wrong): return "Restored data doesn't match checksum"; + case PREFIX(literals_headerWrong): return "Header of Literals' block doesn't respect format specification"; case PREFIX(parameter_unsupported): return "Unsupported parameter"; + case PREFIX(parameter_combination_unsupported): return "Unsupported combination of parameters"; case PREFIX(parameter_outOfBound): return "Parameter is out of bound"; case PREFIX(init_missing): return "Context should be init first"; case PREFIX(memory_allocation): return "Allocation error : not enough memory"; @@ -40,20 +42,26 @@ const char* ERR_getErrorString(ERR_enum code) case PREFIX(tableLog_tooLarge): return "tableLog requires too much memory : unsupported"; case PREFIX(maxSymbolValue_tooLarge): return "Unsupported max Symbol Value : too large"; case PREFIX(maxSymbolValue_tooSmall): return "Specified maxSymbolValue is too small"; + case PREFIX(stabilityCondition_notRespected): return "pledged buffer stability condition is not respected"; case PREFIX(dictionary_corrupted): return "Dictionary is corrupted"; case PREFIX(dictionary_wrong): return "Dictionary mismatch"; case PREFIX(dictionaryCreation_failed): return "Cannot create Dictionary from provided samples"; case PREFIX(dstSize_tooSmall): return "Destination buffer is too small"; case PREFIX(srcSize_wrong): return "Src size is incorrect"; case PREFIX(dstBuffer_null): return "Operation on NULL destination buffer"; + case PREFIX(noForwardProgress_destFull): return "Operation made no progress over multiple calls, due to output buffer being full"; + case PREFIX(noForwardProgress_inputEmpty): return "Operation made no progress over multiple calls, due to input being empty"; /* following error codes are not stable and may be removed or changed in a future version */ case PREFIX(frameIndex_tooLarge): return "Frame index is too large"; case PREFIX(seekableIO): return "An I/O error occurred when reading/seeking"; case PREFIX(dstBuffer_wrong): return "Destination buffer is wrong"; + case PREFIX(srcBuffer_wrong): return "Source buffer is wrong"; + case PREFIX(sequenceProducer_failed): return "Block-level external sequence producer returned an error code"; + case PREFIX(externalSequences_invalid): return "External sequences are not valid"; case PREFIX(maxCode): default: return notErrorCode; } #endif } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/common/fse_decompress.cpp b/src/duckdb/third_party/zstd/common/fse_decompress.cpp index 8845948e..9b695740 100644 --- a/src/duckdb/third_party/zstd/common/fse_decompress.cpp +++ b/src/duckdb/third_party/zstd/common/fse_decompress.cpp @@ -1,6 +1,6 @@ /* ****************************************************************** * FSE : Finite State Entropy decoder - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -16,19 +16,21 @@ /* ************************************************************** * Includes ****************************************************************/ -#include /* malloc, free, qsort */ -#include /* memcpy, memset */ +#include "zstd/common/debug.h" /* assert */ #include "zstd/common/bitstream.h" #include "zstd/common/compiler.h" +#define FSE_STATIC_LINKING_ONLY #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/error_private.h" +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy */ +#include "zstd/common/bits.h" /* ZSTD_highbit32 */ +namespace duckdb_zstd { /* ************************************************************** * Error Management ****************************************************************/ -// #define FSE_isError ERR_isError +#define FSE_isError ERR_isError #define FSE_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) /* use only *after* variable declarations */ @@ -54,31 +56,19 @@ #define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) #define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) -namespace duckdb_zstd { - -/* Function templates */ -FSE_DTable* FSE_createDTable (unsigned tableLog) -{ - if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; - return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); -} - -void FSE_freeDTable (FSE_DTable* dt) -{ - free(dt); -} - -size_t FSE_buildDTable(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) +static size_t FSE_buildDTable_internal(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize) { void* const tdPtr = dt+1; /* because *dt is unsigned, 32-bits aligned on 32-bits */ FSE_DECODE_TYPE* const tableDecode = (FSE_DECODE_TYPE*) (tdPtr); - U16 symbolNext[FSE_MAX_SYMBOL_VALUE+1]; + U16* symbolNext = (U16*)workSpace; + BYTE* spread = (BYTE*)(symbolNext + maxSymbolValue + 1); U32 const maxSV1 = maxSymbolValue + 1; U32 const tableSize = 1 << tableLog; U32 highThreshold = tableSize-1; /* Sanity Checks */ + if (FSE_BUILD_DTABLE_WKSP_SIZE(tableLog, maxSymbolValue) > wkspSize) return ERROR(maxSymbolValue_tooLarge); if (maxSymbolValue > FSE_MAX_SYMBOL_VALUE) return ERROR(maxSymbolValue_tooLarge); if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); @@ -94,13 +84,57 @@ size_t FSE_buildDTable(FSE_DTable* dt, const short* normalizedCounter, unsigned symbolNext[s] = 1; } else { if (normalizedCounter[s] >= largeLimit) DTableH.fastMode=0; - symbolNext[s] = normalizedCounter[s]; + symbolNext[s] = (U16)normalizedCounter[s]; } } } - memcpy(dt, &DTableH, sizeof(DTableH)); + ZSTD_memcpy(dt, &DTableH, sizeof(DTableH)); } /* Spread symbols */ - { U32 const tableMask = tableSize-1; + if (highThreshold == tableSize - 1) { + size_t const tableMask = tableSize-1; + size_t const step = FSE_TABLESTEP(tableSize); + /* First lay down the symbols in order. + * We use a uint64_t to lay down 8 bytes at a time. This reduces branch + * misses since small blocks generally have small table logs, so nearly + * all symbols have counts <= 8. We ensure we have 8 bytes at the end of + * our buffer to handle the over-write. + */ + { U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; stableLog = 0; - DTableH->fastMode = 0; - - cell->newState = 0; - cell->symbol = symbolValue; - cell->nbBits = 0; - - return 0; -} - - -size_t FSE_buildDTable_raw (FSE_DTable* dt, unsigned nbBits) -{ - void* ptr = dt; - FSE_DTableHeader* const DTableH = (FSE_DTableHeader*)ptr; - void* dPtr = dt + 1; - FSE_decode_t* const dinfo = (FSE_decode_t*)dPtr; - const unsigned tableSize = 1 << nbBits; - const unsigned tableMask = tableSize - 1; - const unsigned maxSV1 = tableMask+1; - unsigned s; - - /* Sanity checks */ - if (nbBits < 1) return ERROR(GENERIC); /* min size */ - - /* Build Decoding Table */ - DTableH->tableLog = (U16)nbBits; - DTableH->fastMode = 1; - for (s=0; s= ostart); + return (size_t)(op-ostart); } - -size_t FSE_decompress_usingDTable(void* dst, size_t originalSize, - const void* cSrc, size_t cSrcSize, - const FSE_DTable* dt) -{ - const void* ptr = dt; - const FSE_DTableHeader* DTableH = (const FSE_DTableHeader*)ptr; - const U32 fastMode = DTableH->fastMode; - - /* select fast mode (static) */ - if (fastMode) return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 1); - return FSE_decompress_usingDTable_generic(dst, originalSize, cSrc, cSrcSize, dt, 0); -} +typedef struct { + short ncount[FSE_MAX_SYMBOL_VALUE + 1]; +} FSE_DecompressWksp; -size_t FSE_decompress_wksp(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, FSE_DTable* workSpace, unsigned maxLog) +FORCE_INLINE_TEMPLATE size_t FSE_decompress_wksp_body( + void* dst, size_t dstCapacity, + const void* cSrc, size_t cSrcSize, + unsigned maxLog, void* workSpace, size_t wkspSize, + int bmi2) { const BYTE* const istart = (const BYTE*)cSrc; const BYTE* ip = istart; - short counting[FSE_MAX_SYMBOL_VALUE+1]; unsigned tableLog; unsigned maxSymbolValue = FSE_MAX_SYMBOL_VALUE; + FSE_DecompressWksp* const wksp = (FSE_DecompressWksp*)workSpace; + size_t const dtablePos = sizeof(FSE_DecompressWksp) / sizeof(FSE_DTable); + FSE_DTable* const dtable = (FSE_DTable*)workSpace + dtablePos; + + FSE_STATIC_ASSERT((FSE_MAX_SYMBOL_VALUE + 1) % 2 == 0); + if (wkspSize < sizeof(*wksp)) return ERROR(GENERIC); + + /* correct offset to dtable depends on this property */ + FSE_STATIC_ASSERT(sizeof(FSE_DecompressWksp) % sizeof(FSE_DTable) == 0); /* normal FSE decoding mode */ - size_t const NCountLength = FSE_readNCount (counting, &maxSymbolValue, &tableLog, istart, cSrcSize); - if (FSE_isError(NCountLength)) return NCountLength; - /* if (NCountLength >= cSrcSize) return ERROR(srcSize_wrong); */ /* too small input size; supposed to be already checked in NCountLength, only remaining case : NCountLength==cSrcSize */ - if (tableLog > maxLog) return ERROR(tableLog_tooLarge); - ip += NCountLength; - cSrcSize -= NCountLength; + { size_t const NCountLength = + FSE_readNCount_bmi2(wksp->ncount, &maxSymbolValue, &tableLog, istart, cSrcSize, bmi2); + if (FSE_isError(NCountLength)) return NCountLength; + if (tableLog > maxLog) return ERROR(tableLog_tooLarge); + assert(NCountLength <= cSrcSize); + ip += NCountLength; + cSrcSize -= NCountLength; + } - CHECK_F( FSE_buildDTable (workSpace, counting, maxSymbolValue, tableLog) ); + if (FSE_DECOMPRESS_WKSP_SIZE(tableLog, maxSymbolValue) > wkspSize) return ERROR(tableLog_tooLarge); + assert(sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog) <= wkspSize); + workSpace = (BYTE*)workSpace + sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog); + wkspSize -= sizeof(*wksp) + FSE_DTABLE_SIZE(tableLog); - return FSE_decompress_usingDTable (dst, dstCapacity, ip, cSrcSize, workSpace); /* always return, even if it is an error code */ -} + CHECK_F( FSE_buildDTable_internal(dtable, wksp->ncount, maxSymbolValue, tableLog, workSpace, wkspSize) ); + { + const void* ptr = dtable; + const FSE_DTableHeader* DTableH = (const FSE_DTableHeader*)ptr; + const U32 fastMode = DTableH->fastMode; -typedef FSE_DTable DTable_max_t[FSE_DTABLE_SIZE_U32(FSE_MAX_TABLELOG)]; + /* select fast mode (static) */ + if (fastMode) return FSE_decompress_usingDTable_generic(dst, dstCapacity, ip, cSrcSize, dtable, 1); + return FSE_decompress_usingDTable_generic(dst, dstCapacity, ip, cSrcSize, dtable, 0); + } +} -size_t FSE_decompress(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize) +/* Avoids the FORCE_INLINE of the _body() function. */ +static size_t FSE_decompress_wksp_body_default(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize) { - DTable_max_t dt; /* Static analyzer seems unable to understand this table will be properly initialized later */ - return FSE_decompress_wksp(dst, dstCapacity, cSrc, cSrcSize, dt, FSE_MAX_TABLELOG); + return FSE_decompress_wksp_body(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize, 0); } +#if DYNAMIC_BMI2 +BMI2_TARGET_ATTRIBUTE static size_t FSE_decompress_wksp_body_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize) +{ + return FSE_decompress_wksp_body(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize, 1); +} +#endif + +size_t FSE_decompress_wksp_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize, int bmi2) +{ +#if DYNAMIC_BMI2 + if (bmi2) { + return FSE_decompress_wksp_body_bmi2(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize); + } +#endif + (void)bmi2; + return FSE_decompress_wksp_body_default(dst, dstCapacity, cSrc, cSrcSize, maxLog, workSpace, wkspSize); } #endif /* FSE_COMMONDEFS_ONLY */ + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/common/pool.cpp b/src/duckdb/third_party/zstd/common/pool.cpp new file mode 100644 index 00000000..79df927e --- /dev/null +++ b/src/duckdb/third_party/zstd/common/pool.cpp @@ -0,0 +1,376 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* ====== Dependencies ======= */ +#include "zstd/common/allocations.h" /* ZSTD_customCalloc, ZSTD_customFree */ +#include "zstd/common/zstd_deps.h" /* size_t */ +#include "zstd/common/debug.h" /* assert */ +#include "zstd/common/pool.h" + +/* ====== Compiler specifics ====== */ +#if defined(_MSC_VER) +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +#endif + + +#ifdef ZSTD_MULTITHREAD +#include "zstd/common/threading.h" /* pthread adaptation */ +#endif + +namespace duckdb_zstd { + +#ifdef ZSTD_MULTITHREAD + +/* A job is a function and an opaque argument */ +typedef struct POOL_job_s { + POOL_function function; + void *opaque; +} POOL_job; + +struct POOL_ctx_s { + ZSTD_customMem customMem; + /* Keep track of the threads */ + ZSTD_pthread_t* threads; + size_t threadCapacity; + size_t threadLimit; + + /* The queue is a circular buffer */ + POOL_job *queue; + size_t queueHead; + size_t queueTail; + size_t queueSize; + + /* The number of threads working on jobs */ + size_t numThreadsBusy; + /* Indicates if the queue is empty */ + int queueEmpty; + + /* The mutex protects the queue */ + ZSTD_pthread_mutex_t queueMutex; + /* Condition variable for pushers to wait on when the queue is full */ + ZSTD_pthread_cond_t queuePushCond; + /* Condition variables for poppers to wait on when the queue is empty */ + ZSTD_pthread_cond_t queuePopCond; + /* Indicates if the queue is shutting down */ + int shutdown; +}; + +/* POOL_thread() : + * Work thread for the thread pool. + * Waits for jobs and executes them. + * @returns : NULL on failure else non-null. + */ +static void* POOL_thread(void* opaque) { + POOL_ctx* const ctx = (POOL_ctx*)opaque; + if (!ctx) { return NULL; } + for (;;) { + /* Lock the mutex and wait for a non-empty queue or until shutdown */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + + while ( ctx->queueEmpty + || (ctx->numThreadsBusy >= ctx->threadLimit) ) { + if (ctx->shutdown) { + /* even if !queueEmpty, (possible if numThreadsBusy >= threadLimit), + * a few threads will be shutdown while !queueEmpty, + * but enough threads will remain active to finish the queue */ + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return opaque; + } + ZSTD_pthread_cond_wait(&ctx->queuePopCond, &ctx->queueMutex); + } + /* Pop a job off the queue */ + { POOL_job const job = ctx->queue[ctx->queueHead]; + ctx->queueHead = (ctx->queueHead + 1) % ctx->queueSize; + ctx->numThreadsBusy++; + ctx->queueEmpty = (ctx->queueHead == ctx->queueTail); + /* Unlock the mutex, signal a pusher, and run the job */ + ZSTD_pthread_cond_signal(&ctx->queuePushCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + + job.function(job.opaque); + + /* If the intended queue size was 0, signal after finishing job */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + ctx->numThreadsBusy--; + ZSTD_pthread_cond_signal(&ctx->queuePushCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + } + } /* for (;;) */ + assert(0); /* Unreachable */ +} + +/* ZSTD_createThreadPool() : public access point */ +POOL_ctx* ZSTD_createThreadPool(size_t numThreads) { + return POOL_create (numThreads, 0); +} + +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) { + return POOL_create_advanced(numThreads, queueSize, ZSTD_defaultCMem); +} + +POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, + ZSTD_customMem customMem) +{ + POOL_ctx* ctx; + /* Check parameters */ + if (!numThreads) { return NULL; } + /* Allocate the context and zero initialize */ + ctx = (POOL_ctx*)ZSTD_customCalloc(sizeof(POOL_ctx), customMem); + if (!ctx) { return NULL; } + /* Initialize the job queue. + * It needs one extra space since one space is wasted to differentiate + * empty and full queues. + */ + ctx->queueSize = queueSize + 1; + ctx->queue = (POOL_job*)ZSTD_customCalloc(ctx->queueSize * sizeof(POOL_job), customMem); + ctx->queueHead = 0; + ctx->queueTail = 0; + ctx->numThreadsBusy = 0; + ctx->queueEmpty = 1; + { + int error = 0; + error |= ZSTD_pthread_mutex_init(&ctx->queueMutex, NULL); + error |= ZSTD_pthread_cond_init(&ctx->queuePushCond, NULL); + error |= ZSTD_pthread_cond_init(&ctx->queuePopCond, NULL); + if (error) { POOL_free(ctx); return NULL; } + } + ctx->shutdown = 0; + /* Allocate space for the thread handles */ + ctx->threads = (ZSTD_pthread_t*)ZSTD_customCalloc(numThreads * sizeof(ZSTD_pthread_t), customMem); + ctx->threadCapacity = 0; + ctx->customMem = customMem; + /* Check for errors */ + if (!ctx->threads || !ctx->queue) { POOL_free(ctx); return NULL; } + /* Initialize the threads */ + { size_t i; + for (i = 0; i < numThreads; ++i) { + if (ZSTD_pthread_create(&ctx->threads[i], NULL, &POOL_thread, ctx)) { + ctx->threadCapacity = i; + POOL_free(ctx); + return NULL; + } } + ctx->threadCapacity = numThreads; + ctx->threadLimit = numThreads; + } + return ctx; +} + +/*! POOL_join() : + Shutdown the queue, wake any sleeping threads, and join all of the threads. +*/ +static void POOL_join(POOL_ctx* ctx) { + /* Shut down the queue */ + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + ctx->shutdown = 1; + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + /* Wake up sleeping threads */ + ZSTD_pthread_cond_broadcast(&ctx->queuePushCond); + ZSTD_pthread_cond_broadcast(&ctx->queuePopCond); + /* Join all of the threads */ + { size_t i; + for (i = 0; i < ctx->threadCapacity; ++i) { + ZSTD_pthread_join(ctx->threads[i]); /* note : could fail */ + } } +} + +void POOL_free(POOL_ctx *ctx) { + if (!ctx) { return; } + POOL_join(ctx); + ZSTD_pthread_mutex_destroy(&ctx->queueMutex); + ZSTD_pthread_cond_destroy(&ctx->queuePushCond); + ZSTD_pthread_cond_destroy(&ctx->queuePopCond); + ZSTD_customFree(ctx->queue, ctx->customMem); + ZSTD_customFree(ctx->threads, ctx->customMem); + ZSTD_customFree(ctx, ctx->customMem); +} + +/*! POOL_joinJobs() : + * Waits for all queued jobs to finish executing. + */ +void POOL_joinJobs(POOL_ctx* ctx) { + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + while(!ctx->queueEmpty || ctx->numThreadsBusy > 0) { + ZSTD_pthread_cond_wait(&ctx->queuePushCond, &ctx->queueMutex); + } + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); +} + +void ZSTD_freeThreadPool (ZSTD_threadPool* pool) { + POOL_free (pool); +} + +size_t POOL_sizeof(const POOL_ctx* ctx) { + if (ctx==NULL) return 0; /* supports sizeof NULL */ + return sizeof(*ctx) + + ctx->queueSize * sizeof(POOL_job) + + ctx->threadCapacity * sizeof(ZSTD_pthread_t); +} + + +/* @return : 0 on success, 1 on error */ +static int POOL_resize_internal(POOL_ctx* ctx, size_t numThreads) +{ + if (numThreads <= ctx->threadCapacity) { + if (!numThreads) return 1; + ctx->threadLimit = numThreads; + return 0; + } + /* numThreads > threadCapacity */ + { ZSTD_pthread_t* const threadPool = (ZSTD_pthread_t*)ZSTD_customCalloc(numThreads * sizeof(ZSTD_pthread_t), ctx->customMem); + if (!threadPool) return 1; + /* replace existing thread pool */ + ZSTD_memcpy(threadPool, ctx->threads, ctx->threadCapacity * sizeof(ZSTD_pthread_t)); + ZSTD_customFree(ctx->threads, ctx->customMem); + ctx->threads = threadPool; + /* Initialize additional threads */ + { size_t threadId; + for (threadId = ctx->threadCapacity; threadId < numThreads; ++threadId) { + if (ZSTD_pthread_create(&threadPool[threadId], NULL, &POOL_thread, ctx)) { + ctx->threadCapacity = threadId; + return 1; + } } + } } + /* successfully expanded */ + ctx->threadCapacity = numThreads; + ctx->threadLimit = numThreads; + return 0; +} + +/* @return : 0 on success, 1 on error */ +int POOL_resize(POOL_ctx* ctx, size_t numThreads) +{ + int result; + if (ctx==NULL) return 1; + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + result = POOL_resize_internal(ctx, numThreads); + ZSTD_pthread_cond_broadcast(&ctx->queuePopCond); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return result; +} + +/** + * Returns 1 if the queue is full and 0 otherwise. + * + * When queueSize is 1 (pool was created with an intended queueSize of 0), + * then a queue is empty if there is a thread free _and_ no job is waiting. + */ +static int isQueueFull(POOL_ctx const* ctx) { + if (ctx->queueSize > 1) { + return ctx->queueHead == ((ctx->queueTail + 1) % ctx->queueSize); + } else { + return (ctx->numThreadsBusy == ctx->threadLimit) || + !ctx->queueEmpty; + } +} + + +static void +POOL_add_internal(POOL_ctx* ctx, POOL_function function, void *opaque) +{ + POOL_job job; + job.function = function; + job.opaque = opaque; + assert(ctx != NULL); + if (ctx->shutdown) return; + + ctx->queueEmpty = 0; + ctx->queue[ctx->queueTail] = job; + ctx->queueTail = (ctx->queueTail + 1) % ctx->queueSize; + ZSTD_pthread_cond_signal(&ctx->queuePopCond); +} + +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque) +{ + assert(ctx != NULL); + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + /* Wait until there is space in the queue for the new job */ + while (isQueueFull(ctx) && (!ctx->shutdown)) { + ZSTD_pthread_cond_wait(&ctx->queuePushCond, &ctx->queueMutex); + } + POOL_add_internal(ctx, function, opaque); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); +} + + +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque) +{ + assert(ctx != NULL); + ZSTD_pthread_mutex_lock(&ctx->queueMutex); + if (isQueueFull(ctx)) { + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return 0; + } + POOL_add_internal(ctx, function, opaque); + ZSTD_pthread_mutex_unlock(&ctx->queueMutex); + return 1; +} + +#else /* ZSTD_MULTITHREAD not defined */ + +/* ========================== */ +/* No multi-threading support */ +/* ========================== */ + + +/* We don't need any data, but if it is empty, malloc() might return NULL. */ +struct POOL_ctx_s { + int dummy; +}; +static POOL_ctx g_poolCtx; + +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize) { + return POOL_create_advanced(numThreads, queueSize, ZSTD_defaultCMem); +} + +POOL_ctx* +POOL_create_advanced(size_t numThreads, size_t queueSize, ZSTD_customMem customMem) +{ + (void)numThreads; + (void)queueSize; + (void)customMem; + return &g_poolCtx; +} + +void POOL_free(POOL_ctx* ctx) { + assert(!ctx || ctx == &g_poolCtx); + (void)ctx; +} + +void POOL_joinJobs(POOL_ctx* ctx){ + assert(!ctx || ctx == &g_poolCtx); + (void)ctx; +} + +int POOL_resize(POOL_ctx* ctx, size_t numThreads) { + (void)ctx; (void)numThreads; + return 0; +} + +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque) { + (void)ctx; + function(opaque); +} + +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque) { + (void)ctx; + function(opaque); + return 1; +} + +size_t POOL_sizeof(const POOL_ctx* ctx) { + if (ctx==NULL) return 0; /* supports sizeof NULL */ + assert(ctx == &g_poolCtx); + return sizeof(*ctx); +} + +#endif /* ZSTD_MULTITHREAD */ + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/common/threading.cpp b/src/duckdb/third_party/zstd/common/threading.cpp new file mode 100644 index 00000000..5c63f0af --- /dev/null +++ b/src/duckdb/third_party/zstd/common/threading.cpp @@ -0,0 +1,193 @@ +/** + * Copyright (c) 2016 Tino Reichardt + * All rights reserved. + * + * You can contact the author at: + * - zstdmt source repository: https://github.com/mcmilk/zstdmt + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/** + * This file will hold wrapper for systems, which do not support pthreads + */ + +#include "zstd/common/threading.h" + +namespace duckdb_zstd { + +/* create fake symbol to avoid empty translation unit warning */ +int g_ZSTD_threading_useless_symbol; + +} // namespace duckdb_zstd + +#if defined(ZSTD_MULTITHREAD) && defined(_WIN32) + +/** + * Windows minimalist Pthread Wrapper + */ + + +/* === Dependencies === */ +#include +#include + +namespace duckdb_zstd { + +/* === Implementation === */ + +typedef struct { + void* (*start_routine)(void*); + void* arg; + int initialized; + ZSTD_pthread_cond_t initialized_cond; + ZSTD_pthread_mutex_t initialized_mutex; +} ZSTD_thread_params_t; + +static unsigned __stdcall worker(void *arg) +{ + void* (*start_routine)(void*); + void* thread_arg; + + /* Initialized thread_arg and start_routine and signal main thread that we don't need it + * to wait any longer. + */ + { + ZSTD_thread_params_t* thread_param = (ZSTD_thread_params_t*)arg; + thread_arg = thread_param->arg; + start_routine = thread_param->start_routine; + + /* Signal main thread that we are running and do not depend on its memory anymore */ + ZSTD_pthread_mutex_lock(&thread_param->initialized_mutex); + thread_param->initialized = 1; + ZSTD_pthread_cond_signal(&thread_param->initialized_cond); + ZSTD_pthread_mutex_unlock(&thread_param->initialized_mutex); + } + + start_routine(thread_arg); + + return 0; +} + +int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused, + void* (*start_routine) (void*), void* arg) +{ + ZSTD_thread_params_t thread_param; + (void)unused; + + if (thread==NULL) return -1; + *thread = NULL; + + thread_param.start_routine = start_routine; + thread_param.arg = arg; + thread_param.initialized = 0; + + /* Setup thread initialization synchronization */ + if(ZSTD_pthread_cond_init(&thread_param.initialized_cond, NULL)) { + /* Should never happen on Windows */ + return -1; + } + if(ZSTD_pthread_mutex_init(&thread_param.initialized_mutex, NULL)) { + /* Should never happen on Windows */ + ZSTD_pthread_cond_destroy(&thread_param.initialized_cond); + return -1; + } + + /* Spawn thread */ + *thread = (HANDLE)_beginthreadex(NULL, 0, worker, &thread_param, 0, NULL); + if (*thread==NULL) { + ZSTD_pthread_mutex_destroy(&thread_param.initialized_mutex); + ZSTD_pthread_cond_destroy(&thread_param.initialized_cond); + return errno; + } + + /* Wait for thread to be initialized */ + ZSTD_pthread_mutex_lock(&thread_param.initialized_mutex); + while(!thread_param.initialized) { + ZSTD_pthread_cond_wait(&thread_param.initialized_cond, &thread_param.initialized_mutex); + } + ZSTD_pthread_mutex_unlock(&thread_param.initialized_mutex); + ZSTD_pthread_mutex_destroy(&thread_param.initialized_mutex); + ZSTD_pthread_cond_destroy(&thread_param.initialized_cond); + + return 0; +} + +int ZSTD_pthread_join(ZSTD_pthread_t thread) +{ + DWORD result; + + if (!thread) return 0; + + result = WaitForSingleObject(thread, INFINITE); + CloseHandle(thread); + + switch (result) { + case WAIT_OBJECT_0: + return 0; + case WAIT_ABANDONED: + return EINVAL; + default: + return GetLastError(); + } +} + +} // namespace duckdb_zstd + +#endif /* ZSTD_MULTITHREAD */ + +#if defined(ZSTD_MULTITHREAD) && DEBUGLEVEL >= 1 && !defined(_WIN32) + +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd/common/zstd_deps.h" + +namespace duckdb_zstd { + +int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t const* attr) +{ + assert(mutex != NULL); + *mutex = (pthread_mutex_t*)ZSTD_malloc(sizeof(pthread_mutex_t)); + if (!*mutex) + return 1; + return pthread_mutex_init(*mutex, attr); +} + +int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex) +{ + assert(mutex != NULL); + if (!*mutex) + return 0; + { + int const ret = pthread_mutex_destroy(*mutex); + ZSTD_free(*mutex); + return ret; + } +} + +int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t const* attr) +{ + assert(cond != NULL); + *cond = (pthread_cond_t*)ZSTD_malloc(sizeof(pthread_cond_t)); + if (!*cond) + return 1; + return pthread_cond_init(*cond, attr); +} + +int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond) +{ + assert(cond != NULL); + if (!*cond) + return 0; + { + int const ret = pthread_cond_destroy(*cond); + ZSTD_free(*cond); + return ret; + } +} + +} // namespace duckdb_zstd + +#endif diff --git a/src/duckdb/third_party/zstd/common/xxhash.cpp b/src/duckdb/third_party/zstd/common/xxhash.cpp index 9ec93752..fc4d18b2 100644 --- a/src/duckdb/third_party/zstd/common/xxhash.cpp +++ b/src/duckdb/third_party/zstd/common/xxhash.cpp @@ -83,8 +83,8 @@ /* for memcpy() */ #include -#include "zstd/common/xxhash.h" -#include "zstd/common/xxhash_static.h" +#include "zstd/common/xxhash.hpp" +#include "zstd/common/xxhash_static.hpp" /* ************************************* * Compiler Specific Options @@ -103,7 +103,8 @@ # define FORCE_INLINE_ATTR #endif -#define FORCE_INLINE_TEMPLATE static INLINE_KEYWORD FORCE_INLINE_ATTR +// DuckDB: prefixed with XXHASH_ to avoid name conflicts +#define XXHASH_FORCE_INLINE_TEMPLATE static INLINE_KEYWORD FORCE_INLINE_ATTR /* ************************************* @@ -169,6 +170,7 @@ static U64 XXH_read64(const void* memPtr) #endif /* XXH_FORCE_DIRECT_MEMORY_ACCESS */ +} // namespace duckdb_zstd /* **************************************** * Compiler-specific Functions and Macros @@ -189,6 +191,8 @@ static U64 XXH_read64(const void* memPtr) # define XXH_rotl64(x,r) ((x << r) | (x >> (64 - r))) #endif +namespace duckdb_zstd { + #if defined(_MSC_VER) /* Visual Studio */ # define XXH_swap32 _byteswap_ulong # define XXH_swap64 _byteswap_uint64 @@ -234,7 +238,7 @@ typedef enum { XXH_bigEndian=0, XXH_littleEndian=1 } XXH_endianess; *****************************/ typedef enum { XXH_aligned, XXH_unaligned } XXH_alignment; -FORCE_INLINE_TEMPLATE U32 XXH_readLE32_align(const void* ptr, XXH_endianess endian, XXH_alignment align) +XXHASH_FORCE_INLINE_TEMPLATE U32 XXH_readLE32_align(const void* ptr, XXH_endianess endian, XXH_alignment align) { if (align==XXH_unaligned) return endian==XXH_littleEndian ? XXH_read32(ptr) : XXH_swap32(XXH_read32(ptr)); @@ -242,7 +246,7 @@ FORCE_INLINE_TEMPLATE U32 XXH_readLE32_align(const void* ptr, XXH_endianess endi return endian==XXH_littleEndian ? *(const U32*)ptr : XXH_swap32(*(const U32*)ptr); } -FORCE_INLINE_TEMPLATE U32 XXH_readLE32(const void* ptr, XXH_endianess endian) +XXHASH_FORCE_INLINE_TEMPLATE U32 XXH_readLE32(const void* ptr, XXH_endianess endian) { return XXH_readLE32_align(ptr, endian, XXH_unaligned); } @@ -252,7 +256,7 @@ static U32 XXH_readBE32(const void* ptr) return XXH_CPU_LITTLE_ENDIAN ? XXH_swap32(XXH_read32(ptr)) : XXH_read32(ptr); } -FORCE_INLINE_TEMPLATE U64 XXH_readLE64_align(const void* ptr, XXH_endianess endian, XXH_alignment align) +XXHASH_FORCE_INLINE_TEMPLATE U64 XXH_readLE64_align(const void* ptr, XXH_endianess endian, XXH_alignment align) { if (align==XXH_unaligned) return endian==XXH_littleEndian ? XXH_read64(ptr) : XXH_swap64(XXH_read64(ptr)); @@ -260,7 +264,7 @@ FORCE_INLINE_TEMPLATE U64 XXH_readLE64_align(const void* ptr, XXH_endianess endi return endian==XXH_littleEndian ? *(const U64*)ptr : XXH_swap64(*(const U64*)ptr); } -FORCE_INLINE_TEMPLATE U64 XXH_readLE64(const void* ptr, XXH_endianess endian) +XXHASH_FORCE_INLINE_TEMPLATE U64 XXH_readLE64(const void* ptr, XXH_endianess endian) { return XXH_readLE64_align(ptr, endian, XXH_unaligned); } @@ -321,7 +325,7 @@ static U32 XXH32_round(U32 seed, U32 input) return seed; } -FORCE_INLINE_TEMPLATE U32 XXH32_endian_align(const void* input, size_t len, U32 seed, XXH_endianess endian, XXH_alignment align) +XXHASH_FORCE_INLINE_TEMPLATE U32 XXH32_endian_align(const void* input, size_t len, U32 seed, XXH_endianess endian, XXH_alignment align) { const BYTE* p = (const BYTE*)input; const BYTE* bEnd = p + len; @@ -421,7 +425,7 @@ static U64 XXH64_mergeRound(U64 acc, U64 val) return acc; } -FORCE_INLINE_TEMPLATE U64 XXH64_endian_align(const void* input, size_t len, U64 seed, XXH_endianess endian, XXH_alignment align) +XXHASH_FORCE_INLINE_TEMPLATE U64 XXH64_endian_align(const void* input, size_t len, U64 seed, XXH_endianess endian, XXH_alignment align) { const BYTE* p = (const BYTE*)input; const BYTE* const bEnd = p + len; @@ -570,7 +574,7 @@ XXH_PUBLIC_API XXH_errorcode XXH64_reset(XXH64_state_t* statePtr, unsigned long } -FORCE_INLINE_TEMPLATE XXH_errorcode XXH32_update_endian (XXH32_state_t* state, const void* input, size_t len, XXH_endianess endian) +XXHASH_FORCE_INLINE_TEMPLATE XXH_errorcode XXH32_update_endian (XXH32_state_t* state, const void* input, size_t len, XXH_endianess endian) { const BYTE* p = (const BYTE*)input; const BYTE* const bEnd = p + len; @@ -640,7 +644,7 @@ XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* state_in, const void* -FORCE_INLINE_TEMPLATE U32 XXH32_digest_endian (const XXH32_state_t* state, XXH_endianess endian) +XXHASH_FORCE_INLINE_TEMPLATE U32 XXH32_digest_endian (const XXH32_state_t* state, XXH_endianess endian) { const BYTE * p = (const BYTE*)state->mem32; const BYTE* const bEnd = (const BYTE*)(state->mem32) + state->memsize; @@ -690,7 +694,7 @@ XXH_PUBLIC_API unsigned int XXH32_digest (const XXH32_state_t* state_in) /* **** XXH64 **** */ -FORCE_INLINE_TEMPLATE XXH_errorcode XXH64_update_endian (XXH64_state_t* state, const void* input, size_t len, XXH_endianess endian) +XXHASH_FORCE_INLINE_TEMPLATE XXH_errorcode XXH64_update_endian (XXH64_state_t* state, const void* input, size_t len, XXH_endianess endian) { const BYTE* p = (const BYTE*)input; const BYTE* const bEnd = p + len; @@ -759,7 +763,7 @@ XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t* state_in, const void* -FORCE_INLINE_TEMPLATE U64 XXH64_digest_endian (const XXH64_state_t* state, XXH_endianess endian) +XXHASH_FORCE_INLINE_TEMPLATE U64 XXH64_digest_endian (const XXH64_state_t* state, XXH_endianess endian) { const BYTE * p = (const BYTE*)state->mem64; const BYTE* const bEnd = (const BYTE*)state->mem64 + state->memsize; @@ -856,4 +860,4 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src return XXH_readBE64(src); } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/common/zstd_common.cpp b/src/duckdb/third_party/zstd/common/zstd_common.cpp index d7700be3..e36727c0 100644 --- a/src/duckdb/third_party/zstd/common/zstd_common.cpp +++ b/src/duckdb/third_party/zstd/common/zstd_common.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -13,8 +13,7 @@ /*-************************************* * Dependencies ***************************************/ -#include /* malloc, calloc, free */ -#include /* memset */ +#define ZSTD_DEPS_NEED_MALLOC #include "zstd/common/error_private.h" #include "zstd/common/zstd_internal.h" @@ -49,38 +48,4 @@ ZSTD_ErrorCode ZSTD_getErrorCode(size_t code) { return ERR_getErrorCode(code); } * provides error code string from enum */ const char* ZSTD_getErrorString(ZSTD_ErrorCode code) { return ERR_getErrorString(code); } - - -/*=************************************************************** -* Custom allocator -****************************************************************/ -void* ZSTD_malloc(size_t size, ZSTD_customMem customMem) -{ - if (customMem.customAlloc) - return customMem.customAlloc(customMem.opaque, size); - return malloc(size); -} - -void* ZSTD_calloc(size_t size, ZSTD_customMem customMem) -{ - if (customMem.customAlloc) { - /* calloc implemented as malloc+memset; - * not as efficient as calloc, but next best guess for custom malloc */ - void* const ptr = customMem.customAlloc(customMem.opaque, size); - memset(ptr, 0, size); - return ptr; - } - return calloc(1, size); -} - -void ZSTD_free(void* ptr, ZSTD_customMem customMem) -{ - if (ptr!=NULL) { - if (customMem.customFree) - customMem.customFree(customMem.opaque, ptr); - else - free(ptr); - } -} - -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/fse_compress.cpp b/src/duckdb/third_party/zstd/compress/fse_compress.cpp index 378e2925..495377f9 100644 --- a/src/duckdb/third_party/zstd/compress/fse_compress.cpp +++ b/src/duckdb/third_party/zstd/compress/fse_compress.cpp @@ -1,6 +1,6 @@ /* ****************************************************************** * FSE : Finite State Entropy encoder - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -15,22 +15,25 @@ /* ************************************************************** * Includes ****************************************************************/ -#include /* malloc, free, qsort */ -#include /* memcpy, memset */ #include "zstd/common/compiler.h" #include "zstd/common/mem.h" /* U32, U16, etc. */ #include "zstd/common/debug.h" /* assert, DEBUGLOG */ #include "zstd/compress/hist.h" /* HIST_count_wksp */ #include "zstd/common/bitstream.h" +#define FSE_STATIC_LINKING_ONLY #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/error_private.h" +#define ZSTD_DEPS_NEED_MALLOC +#define ZSTD_DEPS_NEED_MATH64 +#include "zstd/common/zstd_deps.h" /* ZSTD_memset */ +#include "zstd/common/bits.h" /* ZSTD_highbit32 */ +namespace duckdb_zstd { /* ************************************************************** * Error Management ****************************************************************/ -// #define FSE_isError ERR_isError +#define FSE_isError ERR_isError /* ************************************************************** @@ -55,7 +58,6 @@ #define FSE_FUNCTION_NAME(X,Y) FSE_CAT(X,Y) #define FSE_TYPE_NAME(X,Y) FSE_CAT(X,Y) -namespace duckdb_zstd { /* Function templates */ @@ -75,41 +77,85 @@ size_t FSE_buildCTable_wksp(FSE_CTable* ct, void* const FSCT = ((U32*)ptr) + 1 /* header */ + (tableLog ? tableSize>>1 : 1) ; FSE_symbolCompressionTransform* const symbolTT = (FSE_symbolCompressionTransform*) (FSCT); U32 const step = FSE_TABLESTEP(tableSize); - U32 cumul[FSE_MAX_SYMBOL_VALUE+2]; + U32 const maxSV1 = maxSymbolValue+1; + + U16* cumul = (U16*)workSpace; /* size = maxSV1 */ + FSE_FUNCTION_TYPE* const tableSymbol = (FSE_FUNCTION_TYPE*)(cumul + (maxSV1+1)); /* size = tableSize */ - FSE_FUNCTION_TYPE* const tableSymbol = (FSE_FUNCTION_TYPE*)workSpace; U32 highThreshold = tableSize-1; + assert(((size_t)workSpace & 1) == 0); /* Must be 2 bytes-aligned */ + if (FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) > wkspSize) return ERROR(tableLog_tooLarge); /* CTable header */ - if (((size_t)1 << tableLog) * sizeof(FSE_FUNCTION_TYPE) > wkspSize) return ERROR(tableLog_tooLarge); tableU16[-2] = (U16) tableLog; tableU16[-1] = (U16) maxSymbolValue; assert(tableLog < 16); /* required for threshold strategy to work */ /* For explanations on how to distribute symbol values over the table : - * http://fastcompression.blogspot.fr/2014/02/fse-distributing-symbol-values.html */ + * https://fastcompression.blogspot.fr/2014/02/fse-distributing-symbol-values.html */ #ifdef __clang_analyzer__ - memset(tableSymbol, 0, sizeof(*tableSymbol) * tableSize); /* useless initialization, just to keep scan-build happy */ + ZSTD_memset(tableSymbol, 0, sizeof(*tableSymbol) * tableSize); /* useless initialization, just to keep scan-build happy */ #endif /* symbol start positions */ { U32 u; cumul[0] = 0; - for (u=1; u <= maxSymbolValue+1; u++) { + for (u=1; u <= maxSV1; u++) { if (normalizedCounter[u-1]==-1) { /* Low proba symbol */ cumul[u] = cumul[u-1] + 1; tableSymbol[highThreshold--] = (FSE_FUNCTION_TYPE)(u-1); } else { - cumul[u] = cumul[u-1] + normalizedCounter[u-1]; + assert(normalizedCounter[u-1] >= 0); + cumul[u] = cumul[u-1] + (U16)normalizedCounter[u-1]; + assert(cumul[u] >= cumul[u-1]); /* no overflow */ } } - cumul[maxSymbolValue+1] = tableSize+1; + cumul[maxSV1] = (U16)(tableSize+1); } /* Spread symbols */ - { U32 position = 0; + if (highThreshold == tableSize - 1) { + /* Case for no low prob count symbols. Lay down 8 bytes at a time + * to reduce branch misses since we are operating on a small block + */ + BYTE* const spread = tableSymbol + tableSize; /* size = tableSize + 8 (may write beyond tableSize) */ + { U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; s=0); + pos += (size_t)n; + } + } + /* Spread symbols across the table. Lack of lowprob symbols means that + * we don't need variable sized inner loop, so we can unroll the loop and + * reduce branch misses. + */ + { size_t position = 0; + size_t s; + size_t const unroll = 2; /* Experimentally determined optimal unroll */ + assert(tableSize % unroll == 0); /* FSE_MIN_TABLELOG is 5 */ + for (s = 0; s < (size_t)tableSize; s += unroll) { + size_t u; + for (u = 0; u < unroll; ++u) { + size_t const uPosition = (position + (u * step)) & tableMask; + tableSymbol[uPosition] = spread[s + u]; + } + position = (position + (unroll * step)) & tableMask; + } + assert(position == 0); /* Must have initialized all positions */ + } + } else { + U32 position = 0; U32 symbol; - for (symbol=0; symbol<=maxSymbolValue; symbol++) { + for (symbol=0; symbol highThreshold) position = (position + step) & tableMask; /* Low proba area */ } } - assert(position==0); /* Must have initialized all positions */ } @@ -142,16 +187,17 @@ size_t FSE_buildCTable_wksp(FSE_CTable* ct, case -1: case 1: symbolTT[s].deltaNbBits = (tableLog << 16) - (1< 1); + { U32 const maxBitsOut = tableLog - ZSTD_highbit32 ((U32)normalizedCounter[s]-1); + U32 const minStatePlus = (U32)normalizedCounter[s] << maxBitsOut; symbolTT[s].deltaNbBits = (maxBitsOut << 16) - minStatePlus; - symbolTT[s].deltaFindState = total - normalizedCounter[s]; - total += normalizedCounter[s]; + symbolTT[s].deltaFindState = (int)(total - (unsigned)normalizedCounter[s]); + total += (unsigned)normalizedCounter[s]; } } } } #if 0 /* debug : symbol costs */ @@ -162,31 +208,26 @@ size_t FSE_buildCTable_wksp(FSE_CTable* ct, symbol, normalizedCounter[symbol], FSE_getMaxNbBits(symbolTT, symbol), (double)FSE_bitCost(symbolTT, tableLog, symbol, 8) / 256); - } - } + } } #endif return 0; } -size_t FSE_buildCTable(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog) -{ - FSE_FUNCTION_TYPE tableSymbol[FSE_MAX_TABLESIZE]; /* memset() is not necessary, even if static analyzer complain about it */ - return FSE_buildCTable_wksp(ct, normalizedCounter, maxSymbolValue, tableLog, tableSymbol, sizeof(tableSymbol)); -} - - #ifndef FSE_COMMONDEFS_ONLY - /*-************************************************************** * FSE NCount encoding ****************************************************************/ size_t FSE_NCountWriteBound(unsigned maxSymbolValue, unsigned tableLog) { - size_t const maxHeaderSize = (((maxSymbolValue+1) * tableLog) >> 3) + 3; + size_t const maxHeaderSize = (((maxSymbolValue+1) * tableLog + + 4 /* bitCount initialized at 4 */ + + 2 /* first two symbols may use one additional bit each */) / 8) + + 1 /* round up to whole nb bytes */ + + 2 /* additional two bytes for bitstream flush */; return maxSymbolValue ? maxHeaderSize : FSE_NCOUNTBOUND; /* maxSymbolValue==0 ? use default */ } @@ -215,7 +256,7 @@ FSE_writeNCount_generic (void* header, size_t headerBufferSize, /* Init */ remaining = tableSize+1; /* +1 for extra accuracy */ threshold = tableSize; - nbBits = tableLog+1; + nbBits = (int)tableLog+1; while ((symbol < alphabetSize) && (remaining>1)) { /* stops at 1 */ if (previousIs0) { @@ -234,7 +275,7 @@ FSE_writeNCount_generic (void* header, size_t headerBufferSize, } while (symbol >= start+3) { start+=3; - bitStream += 3 << bitCount; + bitStream += 3U << bitCount; bitCount += 2; } bitStream += (symbol-start) << bitCount; @@ -254,7 +295,7 @@ FSE_writeNCount_generic (void* header, size_t headerBufferSize, count++; /* +1 for extra accuracy */ if (count>=threshold) count += max; /* [0..max[ [max..threshold[ (...) [threshold+max 2*threshold[ */ - bitStream += count << bitCount; + bitStream += (U32)count << bitCount; bitCount += nbBits; bitCount -= (count>8); out+= (bitCount+7) /8; - return (out-ostart); + assert(out >= ostart); + return (size_t)(out-ostart); } @@ -303,21 +345,11 @@ size_t FSE_writeNCount (void* buffer, size_t bufferSize, * FSE Compression Code ****************************************************************/ -FSE_CTable* FSE_createCTable (unsigned maxSymbolValue, unsigned tableLog) -{ - size_t size; - if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; - size = FSE_CTABLE_SIZE_U32 (tableLog, maxSymbolValue) * sizeof(U32); - return (FSE_CTable*)malloc(size); -} - -void FSE_freeCTable (FSE_CTable* ct) { free(ct); } - /* provides the minimum logSize to safely represent a distribution */ static unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue) { - U32 minBitsSrc = BIT_highbit32((U32)(srcSize)) + 1; - U32 minBitsSymbols = BIT_highbit32(maxSymbolValue) + 2; + U32 minBitsSrc = ZSTD_highbit32((U32)(srcSize)) + 1; + U32 minBitsSymbols = ZSTD_highbit32(maxSymbolValue) + 2; U32 minBits = minBitsSrc < minBitsSymbols ? minBitsSrc : minBitsSymbols; assert(srcSize > 1); /* Not supported, RLE should be used instead */ return minBits; @@ -325,7 +357,7 @@ static unsigned FSE_minTableLog(size_t srcSize, unsigned maxSymbolValue) unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, unsigned minus) { - U32 maxBitsSrc = BIT_highbit32((U32)(srcSize - 1)) - minus; + U32 maxBitsSrc = ZSTD_highbit32((U32)(srcSize - 1)) - minus; U32 tableLog = maxTableLog; U32 minBits = FSE_minTableLog(srcSize, maxSymbolValue); assert(srcSize > 1); /* Not supported, RLE should be used instead */ @@ -342,11 +374,10 @@ unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxS return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 2); } - /* Secondary normalization method. To be used when primary method fails. */ -static size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned* count, size_t total, U32 maxSymbolValue) +static size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned* count, size_t total, U32 maxSymbolValue, short lowProbCount) { short const NOT_YET_ASSIGNED = -2; U32 s; @@ -363,7 +394,7 @@ static size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned* count, continue; } if (count[s] <= lowThreshold) { - norm[s] = -1; + norm[s] = lowProbCount; distributed++; total -= count[s]; continue; @@ -415,7 +446,7 @@ static size_t FSE_normalizeM2(short* norm, U32 tableLog, const unsigned* count, { U64 const vStepLog = 62 - tableLog; U64 const mid = (1ULL << (vStepLog-1)) - 1; - U64 const rStep = ((((U64)1<> scale); @@ -471,7 +502,7 @@ size_t FSE_normalizeCount (short* normalizedCounter, unsigned tableLog, } } if (-stillToDistribute >= (normalizedCounter[largest] >> 1)) { /* corner case, need another normalization method */ - size_t const errorCode = FSE_normalizeM2(normalizedCounter, tableLog, count, total, maxSymbolValue); + size_t const errorCode = FSE_normalizeM2(normalizedCounter, tableLog, count, total, maxSymbolValue, lowProbCount); if (FSE_isError(errorCode)) return errorCode; } else normalizedCounter[largest] += (short)stillToDistribute; @@ -494,40 +525,6 @@ size_t FSE_normalizeCount (short* normalizedCounter, unsigned tableLog, return tableLog; } - -/* fake FSE_CTable, for raw (uncompressed) input */ -size_t FSE_buildCTable_raw (FSE_CTable* ct, unsigned nbBits) -{ - const unsigned tableSize = 1 << nbBits; - const unsigned tableMask = tableSize - 1; - const unsigned maxSymbolValue = tableMask; - void* const ptr = ct; - U16* const tableU16 = ( (U16*) ptr) + 2; - void* const FSCT = ((U32*)ptr) + 1 /* header */ + (tableSize>>1); /* assumption : tableLog >= 1 */ - FSE_symbolCompressionTransform* const symbolTT = (FSE_symbolCompressionTransform*) (FSCT); - unsigned s; - - /* Sanity checks */ - if (nbBits < 1) return ERROR(GENERIC); /* min size */ - - /* header */ - tableU16[-2] = (U16) nbBits; - tableU16[-1] = (U16) maxSymbolValue; - - /* Build table */ - for (s=0; s not compressible */ - if (maxCount < (srcSize >> 7)) return 0; /* Heuristic : not compressible enough */ - } - - tableLog = FSE_optimalTableLog(tableLog, srcSize, maxSymbolValue); - CHECK_F( FSE_normalizeCount(norm, tableLog, count, srcSize, maxSymbolValue) ); - - /* Write table description header */ - { CHECK_V_F(nc_err, FSE_writeNCount(op, oend-op, norm, maxSymbolValue, tableLog) ); - op += nc_err; - } - - /* Compress */ - CHECK_F( FSE_buildCTable_wksp(CTable, norm, maxSymbolValue, tableLog, scratchBuffer, scratchBufferSize) ); - { CHECK_V_F(cSize, FSE_compress_usingCTable(op, oend - op, src, srcSize, CTable) ); - if (cSize == 0) return 0; /* not enough space for compressed data */ - op += cSize; - } - - /* check compressibility */ - if ( (size_t)(op-ostart) >= srcSize-1 ) return 0; - - return op-ostart; -} - -typedef struct { - FSE_CTable CTable_max[FSE_CTABLE_SIZE_U32(FSE_MAX_TABLELOG, FSE_MAX_SYMBOL_VALUE)]; - BYTE scratchBuffer[1 << FSE_MAX_TABLELOG]; -} fseWkspMax_t; - -size_t FSE_compress2 (void* dst, size_t dstCapacity, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog) -{ - fseWkspMax_t scratchBuffer; - DEBUG_STATIC_ASSERT(sizeof(scratchBuffer) >= FSE_WKSP_SIZE_U32(FSE_MAX_TABLELOG, FSE_MAX_SYMBOL_VALUE)); /* compilation failures here means scratchBuffer is not large enough */ - if (tableLog > FSE_MAX_TABLELOG) return ERROR(tableLog_tooLarge); - return FSE_compress_wksp(dst, dstCapacity, src, srcSize, maxSymbolValue, tableLog, &scratchBuffer, sizeof(scratchBuffer)); -} - -size_t FSE_compress (void* dst, size_t dstCapacity, const void* src, size_t srcSize) -{ - return FSE_compress2(dst, dstCapacity, src, srcSize, FSE_MAX_SYMBOL_VALUE, FSE_DEFAULT_TABLELOG); -} - -} - #endif /* FSE_COMMONDEFS_ONLY */ + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/hist.cpp b/src/duckdb/third_party/zstd/compress/hist.cpp index 0a3d04a0..6b7f82c9 100644 --- a/src/duckdb/third_party/zstd/compress/hist.cpp +++ b/src/duckdb/third_party/zstd/compress/hist.cpp @@ -1,7 +1,7 @@ /* ****************************************************************** * hist : Histogram functions * part of Finite State Entropy project - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -19,7 +19,6 @@ #include "zstd/common/error_private.h" /* ERROR */ #include "zstd/compress/hist.h" - namespace duckdb_zstd { /* --- Error management --- */ @@ -36,7 +35,7 @@ unsigned HIST_count_simple(unsigned* count, unsigned* maxSymbolValuePtr, unsigned maxSymbolValue = *maxSymbolValuePtr; unsigned largestCount=0; - memset(count, 0, (maxSymbolValue+1) * sizeof(*count)); + ZSTD_memset(count, 0, (maxSymbolValue+1) * sizeof(*count)); if (srcSize==0) { *maxSymbolValuePtr = 0; return 0; } while (ip= HIST_WKSP_SIZE_U32. + * `workSpace` must be a U32 table of size >= HIST_WKSP_SIZE_U32. * @return : largest histogram frequency, - * or an error code (notably when histogram would be larger than *maxSymbolValuePtr). */ + * or an error code (notably when histogram's alphabet is larger than *maxSymbolValuePtr) */ static size_t HIST_count_parallel_wksp( unsigned* count, unsigned* maxSymbolValuePtr, const void* source, size_t sourceSize, @@ -73,22 +72,21 @@ static size_t HIST_count_parallel_wksp( { const BYTE* ip = (const BYTE*)source; const BYTE* const iend = ip+sourceSize; - unsigned maxSymbolValue = *maxSymbolValuePtr; + size_t const countSize = (*maxSymbolValuePtr + 1) * sizeof(*count); unsigned max=0; U32* const Counting1 = workSpace; U32* const Counting2 = Counting1 + 256; U32* const Counting3 = Counting2 + 256; U32* const Counting4 = Counting3 + 256; - memset(workSpace, 0, 4*256*sizeof(unsigned)); - /* safety checks */ + assert(*maxSymbolValuePtr <= 255); if (!sourceSize) { - memset(count, 0, maxSymbolValue + 1); + ZSTD_memset(count, 0, countSize); *maxSymbolValuePtr = 0; return 0; } - if (!maxSymbolValue) maxSymbolValue = 255; /* 0 == default */ + ZSTD_memset(workSpace, 0, 4*256*sizeof(unsigned)); /* by stripes of 16 bytes */ { U32 cached = MEM_read32(ip); ip += 4; @@ -120,21 +118,18 @@ static size_t HIST_count_parallel_wksp( /* finish last symbols */ while (ipmaxSymbolValue; s--) { - Counting1[s] += Counting2[s] + Counting3[s] + Counting4[s]; - if (Counting1[s]) return ERROR(maxSymbolValue_tooSmall); - } } - { U32 s; - if (maxSymbolValue > 255) maxSymbolValue = 255; - for (s=0; s<=maxSymbolValue; s++) { - count[s] = Counting1[s] + Counting2[s] + Counting3[s] + Counting4[s]; - if (count[s] > max) max = count[s]; + for (s=0; s<256; s++) { + Counting1[s] += Counting2[s] + Counting3[s] + Counting4[s]; + if (Counting1[s] > max) max = Counting1[s]; } } - while (!count[maxSymbolValue]) maxSymbolValue--; - *maxSymbolValuePtr = maxSymbolValue; + { unsigned maxSymbolValue = 255; + while (!Counting1[maxSymbolValue]) maxSymbolValue--; + if (check && maxSymbolValue > *maxSymbolValuePtr) return ERROR(maxSymbolValue_tooSmall); + *maxSymbolValuePtr = maxSymbolValue; + ZSTD_memmove(count, Counting1, countSize); /* in case count & Counting1 are overlapping */ + } return (size_t)max; } @@ -154,14 +149,6 @@ size_t HIST_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr, return HIST_count_parallel_wksp(count, maxSymbolValuePtr, source, sourceSize, trustInput, (U32*)workSpace); } -/* fast variant (unsafe : won't check if src contains values beyond count[] limit) */ -size_t HIST_countFast(unsigned* count, unsigned* maxSymbolValuePtr, - const void* source, size_t sourceSize) -{ - unsigned tmpCounters[HIST_WKSP_SIZE_U32]; - return HIST_countFast_wksp(count, maxSymbolValuePtr, source, sourceSize, tmpCounters, sizeof(tmpCounters)); -} - /* HIST_count_wksp() : * Same as HIST_count(), but using an externally provided scratch buffer. * `workSpace` size must be table of >= HIST_WKSP_SIZE_U32 unsigned */ @@ -177,11 +164,21 @@ size_t HIST_count_wksp(unsigned* count, unsigned* maxSymbolValuePtr, return HIST_countFast_wksp(count, maxSymbolValuePtr, source, sourceSize, workSpace, workSpaceSize); } +#ifndef ZSTD_NO_UNUSED_FUNCTIONS +/* fast variant (unsafe : won't check if src contains values beyond count[] limit) */ +size_t HIST_countFast(unsigned* count, unsigned* maxSymbolValuePtr, + const void* source, size_t sourceSize) +{ + unsigned tmpCounters[HIST_WKSP_SIZE_U32]; + return HIST_countFast_wksp(count, maxSymbolValuePtr, source, sourceSize, tmpCounters, sizeof(tmpCounters)); +} + size_t HIST_count(unsigned* count, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize) { unsigned tmpCounters[HIST_WKSP_SIZE_U32]; return HIST_count_wksp(count, maxSymbolValuePtr, src, srcSize, tmpCounters, sizeof(tmpCounters)); } +#endif -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/huf_compress.cpp b/src/duckdb/third_party/zstd/compress/huf_compress.cpp index a7fa092e..c0c78316 100644 --- a/src/duckdb/third_party/zstd/compress/huf_compress.cpp +++ b/src/duckdb/third_party/zstd/compress/huf_compress.cpp @@ -1,6 +1,6 @@ /* ****************************************************************** * Huffman encoder, part of New Generation Entropy library - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -23,45 +23,131 @@ /* ************************************************************** * Includes ****************************************************************/ -#include /* memcpy, memset */ -#include /* printf (debug) */ +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset */ #include "zstd/common/compiler.h" #include "zstd/common/bitstream.h" #include "zstd/compress/hist.h" +#define FSE_STATIC_LINKING_ONLY /* FSE_optimalTableLog_internal */ #include "zstd/common/fse.h" /* header compression */ -#include "zstd/common/fse_static.h" #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" #include "zstd/common/error_private.h" +#include "zstd/common/bits.h" /* ZSTD_highbit32 */ +namespace duckdb_zstd { /* ************************************************************** * Error Management ****************************************************************/ -// #define HUF_isError ERR_isError +#define HUF_isError ERR_isError #define HUF_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) /* use only *after* variable declarations */ -namespace duckdb_zstd { /* ************************************************************** -* Utils +* Required declarations +****************************************************************/ +typedef struct nodeElt_s { + U32 count; + U16 parent; + BYTE byte; + BYTE nbBits; +} nodeElt; + + +/* ************************************************************** +* Debug Traces ****************************************************************/ -unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue) + +#if DEBUGLEVEL >= 2 + +static size_t showU32(const U32* arr, size_t size) { - return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 1); + size_t u; + for (u=0; u= add) { + assert(add < align); + assert(((size_t)aligned & mask) == 0); + *workspaceSizePtr -= add; + return aligned; + } else { + *workspaceSizePtr = 0; + return NULL; + } +} + + /* HUF_compressWeights() : * Same as FSE_compress(), but dedicated to huff0's weights compression. * The use case needs much less stack memory. * Note : all elements within weightTable are supposed to be <= HUF_TABLELOG_MAX. */ #define MAX_FSE_TABLELOG_FOR_HUFF_HEADER 6 -static size_t HUF_compressWeights (void* dst, size_t dstSize, const void* weightTable, size_t wtSize) + +typedef struct { + FSE_CTable CTable[FSE_CTABLE_SIZE_U32(MAX_FSE_TABLELOG_FOR_HUFF_HEADER, HUF_TABLELOG_MAX)]; + U32 scratchBuffer[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(HUF_TABLELOG_MAX, MAX_FSE_TABLELOG_FOR_HUFF_HEADER)]; + unsigned count[HUF_TABLELOG_MAX+1]; + S16 norm[HUF_TABLELOG_MAX+1]; +} HUF_CompressWeightsWksp; + +static size_t +HUF_compressWeights(void* dst, size_t dstSize, + const void* weightTable, size_t wtSize, + void* workspace, size_t workspaceSize) { BYTE* const ostart = (BYTE*) dst; BYTE* op = ostart; @@ -69,33 +155,30 @@ static size_t HUF_compressWeights (void* dst, size_t dstSize, const void* weight unsigned maxSymbolValue = HUF_TABLELOG_MAX; U32 tableLog = MAX_FSE_TABLELOG_FOR_HUFF_HEADER; + HUF_CompressWeightsWksp* wksp = (HUF_CompressWeightsWksp*)HUF_alignUpWorkspace(workspace, &workspaceSize, ZSTD_ALIGNOF(U32)); - FSE_CTable CTable[FSE_CTABLE_SIZE_U32(MAX_FSE_TABLELOG_FOR_HUFF_HEADER, HUF_TABLELOG_MAX)]; - BYTE scratchBuffer[1<count, &maxSymbolValue, weightTable, wtSize); /* never fails */ if (maxCount == wtSize) return 1; /* only a single symbol in src : rle */ if (maxCount == 1) return 0; /* each symbol present maximum once => not compressible */ } tableLog = FSE_optimalTableLog(tableLog, wtSize, maxSymbolValue); - CHECK_F( FSE_normalizeCount(norm, tableLog, count, wtSize, maxSymbolValue) ); + CHECK_F( FSE_normalizeCount(wksp->norm, tableLog, wksp->count, wtSize, maxSymbolValue, /* useLowProbCount */ 0) ); /* Write table description header */ - { CHECK_V_F(hSize, FSE_writeNCount(op, (size_t)(oend-op), norm, maxSymbolValue, tableLog) ); + { CHECK_V_F(hSize, FSE_writeNCount(op, (size_t)(oend-op), wksp->norm, maxSymbolValue, tableLog) ); op += hSize; } /* Compress */ - CHECK_F( FSE_buildCTable_wksp(CTable, norm, maxSymbolValue, tableLog, scratchBuffer, sizeof(scratchBuffer)) ); - { CHECK_V_F(cSize, FSE_compress_usingCTable(op, (size_t)(oend - op), weightTable, wtSize, CTable) ); + CHECK_F( FSE_buildCTable_wksp(wksp->CTable, wksp->norm, maxSymbolValue, tableLog, wksp->scratchBuffer, sizeof(wksp->scratchBuffer)) ); + { CHECK_V_F(cSize, FSE_compress_usingCTable(op, (size_t)(oend - op), weightTable, wtSize, wksp->CTable) ); if (cSize == 0) return 0; /* not enough space for compressed data */ op += cSize; } @@ -103,35 +186,94 @@ static size_t HUF_compressWeights (void* dst, size_t dstSize, const void* weight return (size_t)(op-ostart); } +static size_t HUF_getNbBits(HUF_CElt elt) +{ + return elt & 0xFF; +} + +static size_t HUF_getNbBitsFast(HUF_CElt elt) +{ + return elt; +} + +static size_t HUF_getValue(HUF_CElt elt) +{ + return elt & ~(size_t)0xFF; +} + +static size_t HUF_getValueFast(HUF_CElt elt) +{ + return elt; +} + +static void HUF_setNbBits(HUF_CElt* elt, size_t nbBits) +{ + assert(nbBits <= HUF_TABLELOG_ABSOLUTEMAX); + *elt = nbBits; +} + +static void HUF_setValue(HUF_CElt* elt, size_t value) +{ + size_t const nbBits = HUF_getNbBits(*elt); + if (nbBits > 0) { + assert((value >> nbBits) == 0); + *elt |= value << (sizeof(HUF_CElt) * 8 - nbBits); + } +} -struct HUF_CElt_s { - U16 val; - BYTE nbBits; -}; /* typedef'd to HUF_CElt within "zstd/common/huf.h" */ +HUF_CTableHeader HUF_readCTableHeader(HUF_CElt const* ctable) +{ + HUF_CTableHeader header; + ZSTD_memcpy(&header, ctable, sizeof(header)); + return header; +} -/*! HUF_writeCTable() : - `CTable` : Huffman tree to save, using huf representation. - @return : size of saved CTable */ -size_t HUF_writeCTable (void* dst, size_t maxDstSize, - const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog) +static void HUF_writeCTableHeader(HUF_CElt* ctable, U32 tableLog, U32 maxSymbolValue) { + HUF_CTableHeader header; + HUF_STATIC_ASSERT(sizeof(ctable[0]) == sizeof(header)); + ZSTD_memset(&header, 0, sizeof(header)); + assert(tableLog < 256); + header.tableLog = (BYTE)tableLog; + assert(maxSymbolValue < 256); + header.maxSymbolValue = (BYTE)maxSymbolValue; + ZSTD_memcpy(ctable, &header, sizeof(header)); +} + +typedef struct { + HUF_CompressWeightsWksp wksp; BYTE bitsToWeight[HUF_TABLELOG_MAX + 1]; /* precomputed conversion table */ BYTE huffWeight[HUF_SYMBOLVALUE_MAX]; +} HUF_WriteCTableWksp; + +size_t HUF_writeCTable_wksp(void* dst, size_t maxDstSize, + const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog, + void* workspace, size_t workspaceSize) +{ + HUF_CElt const* const ct = CTable + 1; BYTE* op = (BYTE*)dst; U32 n; + HUF_WriteCTableWksp* wksp = (HUF_WriteCTableWksp*)HUF_alignUpWorkspace(workspace, &workspaceSize, ZSTD_ALIGNOF(U32)); - /* check conditions */ + HUF_STATIC_ASSERT(HUF_CTABLE_WORKSPACE_SIZE >= sizeof(HUF_WriteCTableWksp)); + + assert(HUF_readCTableHeader(CTable).maxSymbolValue == maxSymbolValue); + assert(HUF_readCTableHeader(CTable).tableLog == huffLog); + + /* check conditions */ + if (workspaceSize < sizeof(HUF_WriteCTableWksp)) return ERROR(GENERIC); if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) return ERROR(maxSymbolValue_tooLarge); /* convert to weight */ - bitsToWeight[0] = 0; + wksp->bitsToWeight[0] = 0; for (n=1; nbitsToWeight[n] = (BYTE)(huffLog + 1 - n); for (n=0; nhuffWeight[n] = wksp->bitsToWeight[HUF_getNbBits(ct[n])]; /* attempt weights compression by FSE */ - { CHECK_V_F(hSize, HUF_compressWeights(op+1, maxDstSize-1, huffWeight, maxSymbolValue) ); + if (maxDstSize < 1) return ERROR(dstSize_tooSmall); + { CHECK_V_F(hSize, HUF_compressWeights(op+1, maxDstSize-1, wksp->huffWeight, maxSymbolValue, &wksp->wksp, sizeof(wksp->wksp)) ); if ((hSize>1) & (hSize < maxSymbolValue/2)) { /* FSE compressed */ op[0] = (BYTE)hSize; return hSize+1; @@ -141,9 +283,9 @@ size_t HUF_writeCTable (void* dst, size_t maxDstSize, if (maxSymbolValue > (256-128)) return ERROR(GENERIC); /* should not happen : likely means source cannot be compressed */ if (((maxSymbolValue+1)/2) + 1 > maxDstSize) return ERROR(dstSize_tooSmall); /* not enough space within dst buffer */ op[0] = (BYTE)(128 /*special case*/ + (maxSymbolValue-1)); - huffWeight[maxSymbolValue] = 0; /* to be sure it doesn't cause msan issue in final combination */ + wksp->huffWeight[maxSymbolValue] = 0; /* to be sure it doesn't cause msan issue in final combination */ for (n=0; nhuffWeight[n] << 4) + wksp->huffWeight[n+1]); return ((maxSymbolValue+1)/2) + 1; } @@ -154,34 +296,38 @@ size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr, const void U32 rankVal[HUF_TABLELOG_ABSOLUTEMAX + 1]; /* large enough for values from 0 to 16 */ U32 tableLog = 0; U32 nbSymbols = 0; + HUF_CElt* const ct = CTable + 1; /* get symbol weights */ CHECK_V_F(readSize, HUF_readStats(huffWeight, HUF_SYMBOLVALUE_MAX+1, rankVal, &nbSymbols, &tableLog, src, srcSize)); + *hasZeroWeights = (rankVal[0] > 0); /* check result */ if (tableLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); if (nbSymbols > *maxSymbolValuePtr+1) return ERROR(maxSymbolValue_tooSmall); + *maxSymbolValuePtr = nbSymbols - 1; + + HUF_writeCTableHeader(CTable, tableLog, *maxSymbolValuePtr); + /* Prepare base value per rank */ { U32 n, nextRankStart = 0; for (n=1; n<=tableLog; n++) { - U32 current = nextRankStart; + U32 curr = nextRankStart; nextRankStart += (rankVal[n] << (n-1)); - rankVal[n] = current; + rankVal[n] = curr; } } /* fill nbBits */ - *hasZeroWeights = 0; { U32 n; for (n=0; nn=tableLog+1 */ U16 valPerRank[HUF_TABLELOG_MAX+2] = {0}; - { U32 n; for (n=0; n>= 1; } } /* assign value within rank, symbol order */ - { U32 n; for (n=0; n HUF_readCTableHeader(CTable).maxSymbolValue) + return 0; + return (U32)HUF_getNbBits(ct[symbolValue]); } -typedef struct nodeElt_s { - U32 count; - U16 parent; - BYTE byte; - BYTE nbBits; -} nodeElt; - -static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 maxNbBits) +/** + * HUF_setMaxHeight(): + * Try to enforce @targetNbBits on the Huffman tree described in @huffNode. + * + * It attempts to convert all nodes with nbBits > @targetNbBits + * to employ @targetNbBits instead. Then it adjusts the tree + * so that it remains a valid canonical Huffman tree. + * + * @pre The sum of the ranks of each symbol == 2^largestBits, + * where largestBits == huffNode[lastNonNull].nbBits. + * @post The sum of the ranks of each symbol == 2^largestBits, + * where largestBits is the return value (expected <= targetNbBits). + * + * @param huffNode The Huffman tree modified in place to enforce targetNbBits. + * It's presumed sorted, from most frequent to rarest symbol. + * @param lastNonNull The symbol with the lowest count in the Huffman tree. + * @param targetNbBits The allowed number of bits, which the Huffman tree + * may not respect. After this function the Huffman tree will + * respect targetNbBits. + * @return The maximum number of bits of the Huffman tree after adjustment. + */ +static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 targetNbBits) { const U32 largestBits = huffNode[lastNonNull].nbBits; - if (largestBits <= maxNbBits) return largestBits; /* early exit : no elt > maxNbBits */ + /* early exit : no elt > targetNbBits, so the tree is already valid. */ + if (largestBits <= targetNbBits) return largestBits; + + DEBUGLOG(5, "HUF_setMaxHeight (targetNbBits = %u)", targetNbBits); /* there are several too large elements (at least >= 2) */ { int totalCost = 0; - const U32 baseCost = 1 << (largestBits - maxNbBits); + const U32 baseCost = 1 << (largestBits - targetNbBits); int n = (int)lastNonNull; - while (huffNode[n].nbBits > maxNbBits) { + /* Adjust any ranks > targetNbBits to targetNbBits. + * Compute totalCost, which is how far the sum of the ranks is + * we are over 2^largestBits after adjust the offending ranks. + */ + while (huffNode[n].nbBits > targetNbBits) { totalCost += baseCost - (1 << (largestBits - huffNode[n].nbBits)); - huffNode[n].nbBits = (BYTE)maxNbBits; - n --; - } /* n stops at huffNode[n].nbBits <= maxNbBits */ - while (huffNode[n].nbBits == maxNbBits) n--; /* n end at index of smallest symbol using < maxNbBits */ + huffNode[n].nbBits = (BYTE)targetNbBits; + n--; + } + /* n stops at huffNode[n].nbBits <= targetNbBits */ + assert(huffNode[n].nbBits <= targetNbBits); + /* n end at index of smallest symbol using < targetNbBits */ + while (huffNode[n].nbBits == targetNbBits) --n; - /* renorm totalCost */ - totalCost >>= (largestBits - maxNbBits); /* note : totalCost is necessarily a multiple of baseCost */ + /* renorm totalCost from 2^largestBits to 2^targetNbBits + * note : totalCost is necessarily a multiple of baseCost */ + assert(((U32)totalCost & (baseCost - 1)) == 0); + totalCost >>= (largestBits - targetNbBits); + assert(totalCost > 0); /* repay normalized cost */ { U32 const noSymbol = 0xF0F0F0F0; U32 rankLast[HUF_TABLELOG_MAX+2]; - /* Get pos of last (smallest) symbol per rank */ - memset(rankLast, 0xF0, sizeof(rankLast)); - { U32 currentNbBits = maxNbBits; + /* Get pos of last (smallest = lowest cum. count) symbol per rank */ + ZSTD_memset(rankLast, 0xF0, sizeof(rankLast)); + { U32 currentNbBits = targetNbBits; int pos; for (pos=n ; pos >= 0; pos--) { if (huffNode[pos].nbBits >= currentNbBits) continue; - currentNbBits = huffNode[pos].nbBits; /* < maxNbBits */ - rankLast[maxNbBits-currentNbBits] = (U32)pos; + currentNbBits = huffNode[pos].nbBits; /* < targetNbBits */ + rankLast[targetNbBits-currentNbBits] = (U32)pos; } } while (totalCost > 0) { - U32 nBitsToDecrease = BIT_highbit32((U32)totalCost) + 1; + /* Try to reduce the next power of 2 above totalCost because we + * gain back half the rank. + */ + U32 nBitsToDecrease = ZSTD_highbit32((U32)totalCost) + 1; for ( ; nBitsToDecrease > 1; nBitsToDecrease--) { U32 const highPos = rankLast[nBitsToDecrease]; U32 const lowPos = rankLast[nBitsToDecrease-1]; if (highPos == noSymbol) continue; + /* Decrease highPos if no symbols of lowPos or if it is + * not cheaper to remove 2 lowPos than highPos. + */ if (lowPos == noSymbol) break; { U32 const highTotal = huffNode[highPos].count; U32 const lowTotal = 2 * huffNode[lowPos].count; if (highTotal <= lowTotal) break; } } /* only triggered when no more rank 1 symbol left => find closest one (note : there is necessarily at least one !) */ + assert(rankLast[nBitsToDecrease] != noSymbol || nBitsToDecrease == 1); /* HUF_MAX_TABLELOG test just to please gcc 5+; but it should not be necessary */ while ((nBitsToDecrease<=HUF_TABLELOG_MAX) && (rankLast[nBitsToDecrease] == noSymbol)) - nBitsToDecrease ++; + nBitsToDecrease++; + assert(rankLast[nBitsToDecrease] != noSymbol); + /* Increase the number of bits to gain back half the rank cost. */ totalCost -= 1 << (nBitsToDecrease-1); + huffNode[rankLast[nBitsToDecrease]].nbBits++; + + /* Fix up the new rank. + * If the new rank was empty, this symbol is now its smallest. + * Otherwise, this symbol will be the largest in the new rank so no adjustment. + */ if (rankLast[nBitsToDecrease-1] == noSymbol) - rankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease]; /* this rank is no longer empty */ - huffNode[rankLast[nBitsToDecrease]].nbBits ++; + rankLast[nBitsToDecrease-1] = rankLast[nBitsToDecrease]; + /* Fix up the old rank. + * If the symbol was at position 0, meaning it was the highest weight symbol in the tree, + * it must be the only symbol in its rank, so the old rank now has no symbols. + * Otherwise, since the Huffman nodes are sorted by count, the previous position is now + * the smallest node in the rank. If the previous position belongs to a different rank, + * then the rank is now empty. + */ if (rankLast[nBitsToDecrease] == 0) /* special case, reached largest symbol */ rankLast[nBitsToDecrease] = noSymbol; else { rankLast[nBitsToDecrease]--; - if (huffNode[rankLast[nBitsToDecrease]].nbBits != maxNbBits-nBitsToDecrease) + if (huffNode[rankLast[nBitsToDecrease]].nbBits != targetNbBits-nBitsToDecrease) rankLast[nBitsToDecrease] = noSymbol; /* this rank is now empty */ - } } /* while (totalCost > 0) */ - + } + } /* while (totalCost > 0) */ + + /* If we've removed too much weight, then we have to add it back. + * To avoid overshooting again, we only adjust the smallest rank. + * We take the largest nodes from the lowest rank 0 and move them + * to rank 1. There's guaranteed to be enough rank 0 symbols because + * TODO. + */ while (totalCost < 0) { /* Sometimes, cost correction overshoot */ - if (rankLast[1] == noSymbol) { /* special case : no rank 1 symbol (using maxNbBits-1); let's create one from largest rank 0 (using maxNbBits) */ - while (huffNode[n].nbBits == maxNbBits) n--; + /* special case : no rank 1 symbol (using targetNbBits-1); + * let's create one from largest rank 0 (using targetNbBits). + */ + if (rankLast[1] == noSymbol) { + while (huffNode[n].nbBits == targetNbBits) n--; huffNode[n+1].nbBits--; assert(n >= 0); rankLast[1] = (U32)(n+1); @@ -286,47 +491,178 @@ static U32 HUF_setMaxHeight(nodeElt* huffNode, U32 lastNonNull, U32 maxNbBits) huffNode[ rankLast[1] + 1 ].nbBits--; rankLast[1]++; totalCost ++; - } } } /* there are several too large elements (at least >= 2) */ + } + } /* repay normalized cost */ + } /* there are several too large elements (at least >= 2) */ - return maxNbBits; + return targetNbBits; } typedef struct { - U32 base; - U32 current; + U16 base; + U16 curr; } rankPos; -typedef nodeElt huffNodeTable[HUF_CTABLE_WORKSPACE_SIZE_U32]; +typedef nodeElt huffNodeTable[2 * (HUF_SYMBOLVALUE_MAX + 1)]; -#define RANK_POSITION_TABLE_SIZE 32 +/* Number of buckets available for HUF_sort() */ +#define RANK_POSITION_TABLE_SIZE 192 typedef struct { huffNodeTable huffNodeTbl; rankPos rankPosition[RANK_POSITION_TABLE_SIZE]; } HUF_buildCTable_wksp_tables; -static void HUF_sort(nodeElt* huffNode, const unsigned* count, U32 maxSymbolValue, rankPos* rankPosition) -{ +/* RANK_POSITION_DISTINCT_COUNT_CUTOFF == Cutoff point in HUF_sort() buckets for which we use log2 bucketing. + * Strategy is to use as many buckets as possible for representing distinct + * counts while using the remainder to represent all "large" counts. + * + * To satisfy this requirement for 192 buckets, we can do the following: + * Let buckets 0-166 represent distinct counts of [0, 166] + * Let buckets 166 to 192 represent all remaining counts up to RANK_POSITION_MAX_COUNT_LOG using log2 bucketing. + */ +#define RANK_POSITION_MAX_COUNT_LOG 32 +#define RANK_POSITION_LOG_BUCKETS_BEGIN ((RANK_POSITION_TABLE_SIZE - 1) - RANK_POSITION_MAX_COUNT_LOG - 1 /* == 158 */) +#define RANK_POSITION_DISTINCT_COUNT_CUTOFF (RANK_POSITION_LOG_BUCKETS_BEGIN + ZSTD_highbit32(RANK_POSITION_LOG_BUCKETS_BEGIN) /* == 166 */) + +/* Return the appropriate bucket index for a given count. See definition of + * RANK_POSITION_DISTINCT_COUNT_CUTOFF for explanation of bucketing strategy. + */ +static U32 HUF_getIndex(U32 const count) { + return (count < RANK_POSITION_DISTINCT_COUNT_CUTOFF) + ? count + : ZSTD_highbit32(count) + RANK_POSITION_LOG_BUCKETS_BEGIN; +} + +/* Helper swap function for HUF_quickSortPartition() */ +static void HUF_swapNodes(nodeElt* a, nodeElt* b) { + nodeElt tmp = *a; + *a = *b; + *b = tmp; +} + +/* Returns 0 if the huffNode array is not sorted by descending count */ +MEM_STATIC int HUF_isSorted(nodeElt huffNode[], U32 const maxSymbolValue1) { + U32 i; + for (i = 1; i < maxSymbolValue1; ++i) { + if (huffNode[i].count > huffNode[i-1].count) { + return 0; + } + } + return 1; +} + +/* Insertion sort by descending order */ +HINT_INLINE void HUF_insertionSort(nodeElt huffNode[], int const low, int const high) { + int i; + int const size = high-low+1; + huffNode += low; + for (i = 1; i < size; ++i) { + nodeElt const key = huffNode[i]; + int j = i - 1; + while (j >= 0 && huffNode[j].count < key.count) { + huffNode[j + 1] = huffNode[j]; + j--; + } + huffNode[j + 1] = key; + } +} + +/* Pivot helper function for quicksort. */ +static int HUF_quickSortPartition(nodeElt arr[], int const low, int const high) { + /* Simply select rightmost element as pivot. "Better" selectors like + * median-of-three don't experimentally appear to have any benefit. + */ + U32 const pivot = arr[high].count; + int i = low - 1; + int j = low; + for ( ; j < high; j++) { + if (arr[j].count > pivot) { + i++; + HUF_swapNodes(&arr[i], &arr[j]); + } + } + HUF_swapNodes(&arr[i + 1], &arr[high]); + return i + 1; +} + +/* Classic quicksort by descending with partially iterative calls + * to reduce worst case callstack size. + */ +static void HUF_simpleQuickSort(nodeElt arr[], int low, int high) { + int const kInsertionSortThreshold = 8; + if (high - low < kInsertionSortThreshold) { + HUF_insertionSort(arr, low, high); + return; + } + while (low < high) { + int const idx = HUF_quickSortPartition(arr, low, high); + if (idx - low < high - idx) { + HUF_simpleQuickSort(arr, low, idx - 1); + low = idx + 1; + } else { + HUF_simpleQuickSort(arr, idx + 1, high); + high = idx - 1; + } + } +} + +/** + * HUF_sort(): + * Sorts the symbols [0, maxSymbolValue] by count[symbol] in decreasing order. + * This is a typical bucket sorting strategy that uses either quicksort or insertion sort to sort each bucket. + * + * @param[out] huffNode Sorted symbols by decreasing count. Only members `.count` and `.byte` are filled. + * Must have (maxSymbolValue + 1) entries. + * @param[in] count Histogram of the symbols. + * @param[in] maxSymbolValue Maximum symbol value. + * @param rankPosition This is a scratch workspace. Must have RANK_POSITION_TABLE_SIZE entries. + */ +static void HUF_sort(nodeElt huffNode[], const unsigned count[], U32 const maxSymbolValue, rankPos rankPosition[]) { U32 n; + U32 const maxSymbolValue1 = maxSymbolValue+1; + + /* Compute base and set curr to base. + * For symbol s let lowerRank = HUF_getIndex(count[n]) and rank = lowerRank + 1. + * See HUF_getIndex to see bucketing strategy. + * We attribute each symbol to lowerRank's base value, because we want to know where + * each rank begins in the output, so for rank R we want to count ranks R+1 and above. + */ + ZSTD_memset(rankPosition, 0, sizeof(*rankPosition) * RANK_POSITION_TABLE_SIZE); + for (n = 0; n < maxSymbolValue1; ++n) { + U32 lowerRank = HUF_getIndex(count[n]); + assert(lowerRank < RANK_POSITION_TABLE_SIZE - 1); + rankPosition[lowerRank].base++; + } - memset(rankPosition, 0, sizeof(*rankPosition) * RANK_POSITION_TABLE_SIZE); - for (n=0; n<=maxSymbolValue; n++) { - U32 r = BIT_highbit32(count[n] + 1); - rankPosition[r].base ++; + assert(rankPosition[RANK_POSITION_TABLE_SIZE - 1].base == 0); + /* Set up the rankPosition table */ + for (n = RANK_POSITION_TABLE_SIZE - 1; n > 0; --n) { + rankPosition[n-1].base += rankPosition[n].base; + rankPosition[n-1].curr = rankPosition[n-1].base; } - for (n=30; n>0; n--) rankPosition[n-1].base += rankPosition[n].base; - for (n=0; n<32; n++) rankPosition[n].current = rankPosition[n].base; - for (n=0; n<=maxSymbolValue; n++) { + + /* Insert each symbol into their appropriate bucket, setting up rankPosition table. */ + for (n = 0; n < maxSymbolValue1; ++n) { U32 const c = count[n]; - U32 const r = BIT_highbit32(c+1) + 1; - U32 pos = rankPosition[r].current++; - while ((pos > rankPosition[r].base) && (c > huffNode[pos-1].count)) { - huffNode[pos] = huffNode[pos-1]; - pos--; - } + U32 const r = HUF_getIndex(c) + 1; + U32 const pos = rankPosition[r].curr++; + assert(pos < maxSymbolValue1); huffNode[pos].count = c; huffNode[pos].byte = (BYTE)n; } + + /* Sort each bucket. */ + for (n = RANK_POSITION_DISTINCT_COUNT_CUTOFF; n < RANK_POSITION_TABLE_SIZE - 1; ++n) { + int const bucketSize = rankPosition[n].curr - rankPosition[n].base; + U32 const bucketStartIdx = rankPosition[n].base; + if (bucketSize > 1) { + assert(bucketStartIdx < maxSymbolValue1); + HUF_simpleQuickSort(huffNode + bucketStartIdx, 0, bucketSize-1); + } + } + + assert(HUF_isSorted(huffNode, maxSymbolValue1)); } @@ -336,28 +672,21 @@ static void HUF_sort(nodeElt* huffNode, const unsigned* count, U32 maxSymbolValu */ #define STARTNODE (HUF_SYMBOLVALUE_MAX+1) -size_t HUF_buildCTable_wksp (HUF_CElt* tree, const unsigned* count, U32 maxSymbolValue, U32 maxNbBits, void* workSpace, size_t wkspSize) +/* HUF_buildTree(): + * Takes the huffNode array sorted by HUF_sort() and builds an unlimited-depth Huffman tree. + * + * @param huffNode The array sorted by HUF_sort(). Builds the Huffman tree in this array. + * @param maxSymbolValue The maximum symbol value. + * @return The smallest node in the Huffman tree (by count). + */ +static int HUF_buildTree(nodeElt* huffNode, U32 maxSymbolValue) { - HUF_buildCTable_wksp_tables* const wksp_tables = (HUF_buildCTable_wksp_tables*)workSpace; - nodeElt* const huffNode0 = wksp_tables->huffNodeTbl; - nodeElt* const huffNode = huffNode0+1; + nodeElt* const huffNode0 = huffNode - 1; int nonNullRank; int lowS, lowN; int nodeNb = STARTNODE; int n, nodeRoot; - - /* safety checks */ - if (((size_t)workSpace & 3) != 0) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ - if (wkspSize < sizeof(HUF_buildCTable_wksp_tables)) - return ERROR(workSpace_tooSmall); - if (maxNbBits == 0) maxNbBits = HUF_TABLELOG_DEFAULT; - if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) - return ERROR(maxSymbolValue_tooLarge); - memset(huffNode0, 0, sizeof(huffNodeTable)); - - /* sort, decreasing order */ - HUF_sort(huffNode, count, maxSymbolValue, wksp_tables->rankPosition); - + DEBUGLOG(5, "HUF_buildTree (alphabet size = %u)", maxSymbolValue + 1); /* init for parents */ nonNullRank = (int)maxSymbolValue; while(huffNode[nonNullRank].count == 0) nonNullRank--; @@ -384,127 +713,414 @@ size_t HUF_buildCTable_wksp (HUF_CElt* tree, const unsigned* count, U32 maxSymbo for (n=0; n<=nonNullRank; n++) huffNode[n].nbBits = huffNode[ huffNode[n].parent ].nbBits + 1; - /* enforce maxTableLog */ - maxNbBits = HUF_setMaxHeight(huffNode, (U32)nonNullRank, maxNbBits); + DEBUGLOG(6, "Initial distribution of bits completed (%zu sorted symbols)", showHNodeBits(huffNode, maxSymbolValue+1)); - /* fill result into tree (val, nbBits) */ - { U16 nbPerRank[HUF_TABLELOG_MAX+1] = {0}; - U16 valPerRank[HUF_TABLELOG_MAX+1] = {0}; - int const alphabetSize = (int)(maxSymbolValue + 1); - if (maxNbBits > HUF_TABLELOG_MAX) return ERROR(GENERIC); /* check fit into table */ - for (n=0; n<=nonNullRank; n++) - nbPerRank[huffNode[n].nbBits]++; - /* determine stating value per rank */ - { U16 min = 0; - for (n=(int)maxNbBits; n>0; n--) { - valPerRank[n] = min; /* get starting value within each rank */ - min += nbPerRank[n]; - min >>= 1; - } } - for (n=0; n0; n--) { + valPerRank[n] = min; /* get starting value within each rank */ + min += nbPerRank[n]; + min >>= 1; + } } + for (n=0; nhuffNodeTbl; + nodeElt* const huffNode = huffNode0+1; + int nonNullRank; + + HUF_STATIC_ASSERT(HUF_CTABLE_WORKSPACE_SIZE == sizeof(HUF_buildCTable_wksp_tables)); + + DEBUGLOG(5, "HUF_buildCTable_wksp (alphabet size = %u)", maxSymbolValue+1); + + /* safety checks */ + if (wkspSize < sizeof(HUF_buildCTable_wksp_tables)) + return ERROR(workSpace_tooSmall); + if (maxNbBits == 0) maxNbBits = HUF_TABLELOG_DEFAULT; + if (maxSymbolValue > HUF_SYMBOLVALUE_MAX) + return ERROR(maxSymbolValue_tooLarge); + ZSTD_memset(huffNode0, 0, sizeof(huffNodeTable)); + + /* sort, decreasing order */ + HUF_sort(huffNode, count, maxSymbolValue, wksp_tables->rankPosition); + DEBUGLOG(6, "sorted symbols completed (%zu symbols)", showHNodeSymbols(huffNode, maxSymbolValue+1)); + + /* build tree */ + nonNullRank = HUF_buildTree(huffNode, maxSymbolValue); + + /* determine and enforce maxTableLog */ + maxNbBits = HUF_setMaxHeight(huffNode, (U32)nonNullRank, maxNbBits); + if (maxNbBits > HUF_TABLELOG_MAX) return ERROR(GENERIC); /* check fit into table */ + + HUF_buildCTableFromTree(CTable, huffNode, nonNullRank, maxSymbolValue, maxNbBits); + + return maxNbBits; } size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue) { + HUF_CElt const* ct = CTable + 1; size_t nbBits = 0; int s; for (s = 0; s <= (int)maxSymbolValue; ++s) { - nbBits += CTable[s].nbBits * count[s]; + nbBits += HUF_getNbBits(ct[s]) * count[s]; } return nbBits >> 3; } int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue) { - int bad = 0; - int s; - for (s = 0; s <= (int)maxSymbolValue; ++s) { - bad |= (count[s] != 0) & (CTable[s].nbBits == 0); - } - return !bad; + HUF_CTableHeader header = HUF_readCTableHeader(CTable); + HUF_CElt const* ct = CTable + 1; + int bad = 0; + int s; + + assert(header.tableLog <= HUF_TABLELOG_ABSOLUTEMAX); + + if (header.maxSymbolValue < maxSymbolValue) + return 0; + + for (s = 0; s <= (int)maxSymbolValue; ++s) { + bad |= (count[s] != 0) & (HUF_getNbBits(ct[s]) == 0); + } + return !bad; } size_t HUF_compressBound(size_t size) { return HUF_COMPRESSBOUND(size); } +/** HUF_CStream_t: + * Huffman uses its own BIT_CStream_t implementation. + * There are three major differences from BIT_CStream_t: + * 1. HUF_addBits() takes a HUF_CElt (size_t) which is + * the pair (nbBits, value) in the format: + * format: + * - Bits [0, 4) = nbBits + * - Bits [4, 64 - nbBits) = 0 + * - Bits [64 - nbBits, 64) = value + * 2. The bitContainer is built from the upper bits and + * right shifted. E.g. to add a new value of N bits + * you right shift the bitContainer by N, then or in + * the new value into the N upper bits. + * 3. The bitstream has two bit containers. You can add + * bits to the second container and merge them into + * the first container. + */ + +#define HUF_BITS_IN_CONTAINER (sizeof(size_t) * 8) + +typedef struct { + size_t bitContainer[2]; + size_t bitPos[2]; + + BYTE* startPtr; + BYTE* ptr; + BYTE* endPtr; +} HUF_CStream_t; + +/**! HUF_initCStream(): + * Initializes the bitstream. + * @returns 0 or an error code. + */ +static size_t HUF_initCStream(HUF_CStream_t* bitC, + void* startPtr, size_t dstCapacity) +{ + ZSTD_memset(bitC, 0, sizeof(*bitC)); + bitC->startPtr = (BYTE*)startPtr; + bitC->ptr = bitC->startPtr; + bitC->endPtr = bitC->startPtr + dstCapacity - sizeof(bitC->bitContainer[0]); + if (dstCapacity <= sizeof(bitC->bitContainer[0])) return ERROR(dstSize_tooSmall); + return 0; +} + +/*! HUF_addBits(): + * Adds the symbol stored in HUF_CElt elt to the bitstream. + * + * @param elt The element we're adding. This is a (nbBits, value) pair. + * See the HUF_CStream_t docs for the format. + * @param idx Insert into the bitstream at this idx. + * @param kFast This is a template parameter. If the bitstream is guaranteed + * to have at least 4 unused bits after this call it may be 1, + * otherwise it must be 0. HUF_addBits() is faster when fast is set. + */ +FORCE_INLINE_TEMPLATE void HUF_addBits(HUF_CStream_t* bitC, HUF_CElt elt, int idx, int kFast) +{ + assert(idx <= 1); + assert(HUF_getNbBits(elt) <= HUF_TABLELOG_ABSOLUTEMAX); + /* This is efficient on x86-64 with BMI2 because shrx + * only reads the low 6 bits of the register. The compiler + * knows this and elides the mask. When fast is set, + * every operation can use the same value loaded from elt. + */ + bitC->bitContainer[idx] >>= HUF_getNbBits(elt); + bitC->bitContainer[idx] |= kFast ? HUF_getValueFast(elt) : HUF_getValue(elt); + /* We only read the low 8 bits of bitC->bitPos[idx] so it + * doesn't matter that the high bits have noise from the value. + */ + bitC->bitPos[idx] += HUF_getNbBitsFast(elt); + assert((bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER); + /* The last 4-bits of elt are dirty if fast is set, + * so we must not be overwriting bits that have already been + * inserted into the bit container. + */ +#if DEBUGLEVEL >= 1 + { + size_t const nbBits = HUF_getNbBits(elt); + size_t const dirtyBits = nbBits == 0 ? 0 : ZSTD_highbit32((U32)nbBits) + 1; + (void)dirtyBits; + /* Middle bits are 0. */ + assert(((elt >> dirtyBits) << (dirtyBits + nbBits)) == 0); + /* We didn't overwrite any bits in the bit container. */ + assert(!kFast || (bitC->bitPos[idx] & 0xFF) <= HUF_BITS_IN_CONTAINER); + (void)dirtyBits; + } +#endif +} + +FORCE_INLINE_TEMPLATE void HUF_zeroIndex1(HUF_CStream_t* bitC) +{ + bitC->bitContainer[1] = 0; + bitC->bitPos[1] = 0; +} + +/*! HUF_mergeIndex1() : + * Merges the bit container @ index 1 into the bit container @ index 0 + * and zeros the bit container @ index 1. + */ +FORCE_INLINE_TEMPLATE void HUF_mergeIndex1(HUF_CStream_t* bitC) +{ + assert((bitC->bitPos[1] & 0xFF) < HUF_BITS_IN_CONTAINER); + bitC->bitContainer[0] >>= (bitC->bitPos[1] & 0xFF); + bitC->bitContainer[0] |= bitC->bitContainer[1]; + bitC->bitPos[0] += bitC->bitPos[1]; + assert((bitC->bitPos[0] & 0xFF) <= HUF_BITS_IN_CONTAINER); +} + +/*! HUF_flushBits() : +* Flushes the bits in the bit container @ index 0. +* +* @post bitPos will be < 8. +* @param kFast If kFast is set then we must know a-priori that +* the bit container will not overflow. +*/ +FORCE_INLINE_TEMPLATE void HUF_flushBits(HUF_CStream_t* bitC, int kFast) +{ + /* The upper bits of bitPos are noisy, so we must mask by 0xFF. */ + size_t const nbBits = bitC->bitPos[0] & 0xFF; + size_t const nbBytes = nbBits >> 3; + /* The top nbBits bits of bitContainer are the ones we need. */ + size_t const bitContainer = bitC->bitContainer[0] >> (HUF_BITS_IN_CONTAINER - nbBits); + /* Mask bitPos to account for the bytes we consumed. */ + bitC->bitPos[0] &= 7; + assert(nbBits > 0); + assert(nbBits <= sizeof(bitC->bitContainer[0]) * 8); + assert(bitC->ptr <= bitC->endPtr); + MEM_writeLEST(bitC->ptr, bitContainer); + bitC->ptr += nbBytes; + assert(!kFast || bitC->ptr <= bitC->endPtr); + if (!kFast && bitC->ptr > bitC->endPtr) bitC->ptr = bitC->endPtr; + /* bitContainer doesn't need to be modified because the leftover + * bits are already the top bitPos bits. And we don't care about + * noise in the lower values. + */ +} + +/*! HUF_endMark() + * @returns The Huffman stream end mark: A 1-bit value = 1. + */ +static HUF_CElt HUF_endMark(void) +{ + HUF_CElt endMark; + HUF_setNbBits(&endMark, 1); + HUF_setValue(&endMark, 1); + return endMark; +} + +/*! HUF_closeCStream() : + * @return Size of CStream, in bytes, + * or 0 if it could not fit into dstBuffer */ +static size_t HUF_closeCStream(HUF_CStream_t* bitC) +{ + HUF_addBits(bitC, HUF_endMark(), /* idx */ 0, /* kFast */ 0); + HUF_flushBits(bitC, /* kFast */ 0); + { + size_t const nbBits = bitC->bitPos[0] & 0xFF; + if (bitC->ptr >= bitC->endPtr) return 0; /* overflow detected */ + return (size_t)(bitC->ptr - bitC->startPtr) + (nbBits > 0); + } +} + FORCE_INLINE_TEMPLATE void -HUF_encodeSymbol(BIT_CStream_t* bitCPtr, U32 symbol, const HUF_CElt* CTable) +HUF_encodeSymbol(HUF_CStream_t* bitCPtr, U32 symbol, const HUF_CElt* CTable, int idx, int fast) { - BIT_addBitsFast(bitCPtr, CTable[symbol].val, CTable[symbol].nbBits); + HUF_addBits(bitCPtr, CTable[symbol], idx, fast); } -#define HUF_FLUSHBITS(s) BIT_flushBits(s) +FORCE_INLINE_TEMPLATE void +HUF_compress1X_usingCTable_internal_body_loop(HUF_CStream_t* bitC, + const BYTE* ip, size_t srcSize, + const HUF_CElt* ct, + int kUnroll, int kFastFlush, int kLastFast) +{ + /* Join to kUnroll */ + int n = (int)srcSize; + int rem = n % kUnroll; + if (rem > 0) { + for (; rem > 0; --rem) { + HUF_encodeSymbol(bitC, ip[--n], ct, 0, /* fast */ 0); + } + HUF_flushBits(bitC, kFastFlush); + } + assert(n % kUnroll == 0); -#define HUF_FLUSHBITS_1(stream) \ - if (sizeof((stream)->bitContainer)*8 < HUF_TABLELOG_MAX*2+7) HUF_FLUSHBITS(stream) + /* Join to 2 * kUnroll */ + if (n % (2 * kUnroll)) { + int u; + for (u = 1; u < kUnroll; ++u) { + HUF_encodeSymbol(bitC, ip[n - u], ct, 0, 1); + } + HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, 0, kLastFast); + HUF_flushBits(bitC, kFastFlush); + n -= kUnroll; + } + assert(n % (2 * kUnroll) == 0); + + for (; n>0; n-= 2 * kUnroll) { + /* Encode kUnroll symbols into the bitstream @ index 0. */ + int u; + for (u = 1; u < kUnroll; ++u) { + HUF_encodeSymbol(bitC, ip[n - u], ct, /* idx */ 0, /* fast */ 1); + } + HUF_encodeSymbol(bitC, ip[n - kUnroll], ct, /* idx */ 0, /* fast */ kLastFast); + HUF_flushBits(bitC, kFastFlush); + /* Encode kUnroll symbols into the bitstream @ index 1. + * This allows us to start filling the bit container + * without any data dependencies. + */ + HUF_zeroIndex1(bitC); + for (u = 1; u < kUnroll; ++u) { + HUF_encodeSymbol(bitC, ip[n - kUnroll - u], ct, /* idx */ 1, /* fast */ 1); + } + HUF_encodeSymbol(bitC, ip[n - kUnroll - kUnroll], ct, /* idx */ 1, /* fast */ kLastFast); + /* Merge bitstream @ index 1 into the bitstream @ index 0 */ + HUF_mergeIndex1(bitC); + HUF_flushBits(bitC, kFastFlush); + } + assert(n == 0); + +} + +/** + * Returns a tight upper bound on the output space needed by Huffman + * with 8 bytes buffer to handle over-writes. If the output is at least + * this large we don't need to do bounds checks during Huffman encoding. + */ +static size_t HUF_tightCompressBound(size_t srcSize, size_t tableLog) +{ + return ((srcSize * tableLog) >> 3) + 8; +} -#define HUF_FLUSHBITS_2(stream) \ - if (sizeof((stream)->bitContainer)*8 < HUF_TABLELOG_MAX*4+7) HUF_FLUSHBITS(stream) FORCE_INLINE_TEMPLATE size_t HUF_compress1X_usingCTable_internal_body(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable) { + U32 const tableLog = HUF_readCTableHeader(CTable).tableLog; + HUF_CElt const* ct = CTable + 1; const BYTE* ip = (const BYTE*) src; BYTE* const ostart = (BYTE*)dst; BYTE* const oend = ostart + dstSize; - BYTE* op = ostart; - size_t n; - BIT_CStream_t bitC; + HUF_CStream_t bitC; /* init */ if (dstSize < 8) return 0; /* not enough space to compress */ - { size_t const initErr = BIT_initCStream(&bitC, op, (size_t)(oend-op)); + { BYTE* op = ostart; + size_t const initErr = HUF_initCStream(&bitC, op, (size_t)(oend-op)); if (HUF_isError(initErr)) return 0; } - n = srcSize & ~3; /* join to mod 4 */ - switch (srcSize & 3) - { - case 3 : HUF_encodeSymbol(&bitC, ip[n+ 2], CTable); - HUF_FLUSHBITS_2(&bitC); - /* fall-through */ - case 2 : HUF_encodeSymbol(&bitC, ip[n+ 1], CTable); - HUF_FLUSHBITS_1(&bitC); - /* fall-through */ - case 1 : HUF_encodeSymbol(&bitC, ip[n+ 0], CTable); - HUF_FLUSHBITS(&bitC); - /* fall-through */ - case 0 : /* fall-through */ - default: break; - } - - for (; n>0; n-=4) { /* note : n&3==0 at this stage */ - HUF_encodeSymbol(&bitC, ip[n- 1], CTable); - HUF_FLUSHBITS_1(&bitC); - HUF_encodeSymbol(&bitC, ip[n- 2], CTable); - HUF_FLUSHBITS_2(&bitC); - HUF_encodeSymbol(&bitC, ip[n- 3], CTable); - HUF_FLUSHBITS_1(&bitC); - HUF_encodeSymbol(&bitC, ip[n- 4], CTable); - HUF_FLUSHBITS(&bitC); + if (dstSize < HUF_tightCompressBound(srcSize, (size_t)tableLog) || tableLog > 11) + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ MEM_32bits() ? 2 : 4, /* kFast */ 0, /* kLastFast */ 0); + else { + if (MEM_32bits()) { + switch (tableLog) { + case 11: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 10: ZSTD_FALLTHROUGH; + case 9: ZSTD_FALLTHROUGH; + case 8: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 2, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + case 7: ZSTD_FALLTHROUGH; + default: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 3, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + } + } else { + switch (tableLog) { + case 11: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 10: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 5, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + case 9: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 6, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 8: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 7, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 7: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 8, /* kFastFlush */ 1, /* kLastFast */ 0); + break; + case 6: ZSTD_FALLTHROUGH; + default: + HUF_compress1X_usingCTable_internal_body_loop(&bitC, ip, srcSize, ct, /* kUnroll */ 9, /* kFastFlush */ 1, /* kLastFast */ 1); + break; + } + } } + assert(bitC.ptr <= bitC.endPtr); - return BIT_closeCStream(&bitC); + return HUF_closeCStream(&bitC); } #if DYNAMIC_BMI2 -static TARGET_ATTRIBUTE("bmi2") size_t +static BMI2_TARGET_ATTRIBUTE size_t HUF_compress1X_usingCTable_internal_bmi2(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable) @@ -523,9 +1139,9 @@ HUF_compress1X_usingCTable_internal_default(void* dst, size_t dstSize, static size_t HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize, const void* src, size_t srcSize, - const HUF_CElt* CTable, const int bmi2) + const HUF_CElt* CTable, const int flags) { - if (bmi2) { + if (flags & HUF_flags_bmi2) { return HUF_compress1X_usingCTable_internal_bmi2(dst, dstSize, src, srcSize, CTable); } return HUF_compress1X_usingCTable_internal_default(dst, dstSize, src, srcSize, CTable); @@ -536,24 +1152,23 @@ HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize, static size_t HUF_compress1X_usingCTable_internal(void* dst, size_t dstSize, const void* src, size_t srcSize, - const HUF_CElt* CTable, const int bmi2) + const HUF_CElt* CTable, const int flags) { - (void)bmi2; + (void)flags; return HUF_compress1X_usingCTable_internal_body(dst, dstSize, src, srcSize, CTable); } #endif -size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable) +size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags) { - return HUF_compress1X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, /* bmi2 */ 0); + return HUF_compress1X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, flags); } - static size_t HUF_compress4X_usingCTable_internal(void* dst, size_t dstSize, const void* src, size_t srcSize, - const HUF_CElt* CTable, int bmi2) + const HUF_CElt* CTable, int flags) { size_t const segmentSize = (srcSize+3)/4; /* first 3 segments */ const BYTE* ip = (const BYTE*) src; @@ -567,27 +1182,24 @@ HUF_compress4X_usingCTable_internal(void* dst, size_t dstSize, op += 6; /* jumpTable */ assert(op <= oend); - { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, bmi2) ); - if (cSize==0) return 0; - assert(cSize <= 65535); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; MEM_writeLE16(ostart, (U16)cSize); op += cSize; } ip += segmentSize; assert(op <= oend); - { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, bmi2) ); - if (cSize==0) return 0; - assert(cSize <= 65535); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; MEM_writeLE16(ostart+2, (U16)cSize); op += cSize; } ip += segmentSize; assert(op <= oend); - { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, bmi2) ); - if (cSize==0) return 0; - assert(cSize <= 65535); + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, segmentSize, CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; MEM_writeLE16(ostart+4, (U16)cSize); op += cSize; } @@ -595,17 +1207,17 @@ HUF_compress4X_usingCTable_internal(void* dst, size_t dstSize, ip += segmentSize; assert(op <= oend); assert(ip <= iend); - { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, (size_t)(iend-ip), CTable, bmi2) ); - if (cSize==0) return 0; + { CHECK_V_F(cSize, HUF_compress1X_usingCTable_internal(op, (size_t)(oend-op), ip, (size_t)(iend-ip), CTable, flags) ); + if (cSize == 0 || cSize > 65535) return 0; op += cSize; } return (size_t)(op-ostart); } -size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable) +size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags) { - return HUF_compress4X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, /* bmi2 */ 0); + return HUF_compress4X_usingCTable_internal(dst, dstSize, src, srcSize, CTable, flags); } typedef enum { HUF_singleStream, HUF_fourStreams } HUF_nbStreams_e; @@ -613,11 +1225,11 @@ typedef enum { HUF_singleStream, HUF_fourStreams } HUF_nbStreams_e; static size_t HUF_compressCTable_internal( BYTE* const ostart, BYTE* op, BYTE* const oend, const void* src, size_t srcSize, - HUF_nbStreams_e nbStreams, const HUF_CElt* CTable, const int bmi2) + HUF_nbStreams_e nbStreams, const HUF_CElt* CTable, const int flags) { size_t const cSize = (nbStreams==HUF_singleStream) ? - HUF_compress1X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, bmi2) : - HUF_compress4X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, bmi2); + HUF_compress1X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, flags) : + HUF_compress4X_usingCTable_internal(op, (size_t)(oend - op), src, srcSize, CTable, flags); if (HUF_isError(cSize)) { return cSize; } if (cSize==0) { return 0; } /* uncompressible */ op += cSize; @@ -629,31 +1241,113 @@ static size_t HUF_compressCTable_internal( typedef struct { unsigned count[HUF_SYMBOLVALUE_MAX + 1]; - HUF_CElt CTable[HUF_SYMBOLVALUE_MAX + 1]; - HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_CElt CTable[HUF_CTABLE_SIZE_ST(HUF_SYMBOLVALUE_MAX)]; + union { + HUF_buildCTable_wksp_tables buildCTable_wksp; + HUF_WriteCTableWksp writeCTable_wksp; + U32 hist_wksp[HIST_WKSP_SIZE_U32]; + } wksps; } HUF_compress_tables_t; +#define SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE 4096 +#define SUSPECT_INCOMPRESSIBLE_SAMPLE_RATIO 10 /* Must be >= 2 */ + +unsigned HUF_cardinality(const unsigned* count, unsigned maxSymbolValue) +{ + unsigned cardinality = 0; + unsigned i; + + for (i = 0; i < maxSymbolValue + 1; i++) { + if (count[i] != 0) cardinality += 1; + } + + return cardinality; +} + +unsigned HUF_minTableLog(unsigned symbolCardinality) +{ + U32 minBitsSymbols = ZSTD_highbit32(symbolCardinality) + 1; + return minBitsSymbols; +} + +unsigned HUF_optimalTableLog( + unsigned maxTableLog, + size_t srcSize, + unsigned maxSymbolValue, + void* workSpace, size_t wkspSize, + HUF_CElt* table, + const unsigned* count, + int flags) +{ + assert(srcSize > 1); /* Not supported, RLE should be used instead */ + assert(wkspSize >= sizeof(HUF_buildCTable_wksp_tables)); + + if (!(flags & HUF_flags_optimalDepth)) { + /* cheap evaluation, based on FSE */ + return FSE_optimalTableLog_internal(maxTableLog, srcSize, maxSymbolValue, 1); + } + + { BYTE* dst = (BYTE*)workSpace + sizeof(HUF_WriteCTableWksp); + size_t dstSize = wkspSize - sizeof(HUF_WriteCTableWksp); + size_t hSize, newSize; + const unsigned symbolCardinality = HUF_cardinality(count, maxSymbolValue); + const unsigned minTableLog = HUF_minTableLog(symbolCardinality); + size_t optSize = ((size_t) ~0) - 1; + unsigned optLog = maxTableLog, optLogGuess; + + DEBUGLOG(6, "HUF_optimalTableLog: probing huf depth (srcSize=%zu)", srcSize); + + /* Search until size increases */ + for (optLogGuess = minTableLog; optLogGuess <= maxTableLog; optLogGuess++) { + DEBUGLOG(7, "checking for huffLog=%u", optLogGuess); + + { size_t maxBits = HUF_buildCTable_wksp(table, count, maxSymbolValue, optLogGuess, workSpace, wkspSize); + if (ERR_isError(maxBits)) continue; + + if (maxBits < optLogGuess && optLogGuess > minTableLog) break; + + hSize = HUF_writeCTable_wksp(dst, dstSize, table, maxSymbolValue, (U32)maxBits, workSpace, wkspSize); + } + + if (ERR_isError(hSize)) continue; + + newSize = HUF_estimateCompressedSize(table, count, maxSymbolValue) + hSize; + + if (newSize > optSize + 1) { + break; + } + + if (newSize < optSize) { + optSize = newSize; + optLog = optLogGuess; + } + } + assert(optLog <= HUF_TABLELOG_MAX); + return optLog; + } +} + /* HUF_compress_internal() : - * `workSpace` must a table of at least HUF_WORKSPACE_SIZE_U32 unsigned */ + * `workSpace_align4` must be aligned on 4-bytes boundaries, + * and occupies the same space as a table of HUF_WORKSPACE_SIZE_U64 unsigned */ static size_t HUF_compress_internal (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned huffLog, HUF_nbStreams_e nbStreams, void* workSpace, size_t wkspSize, - HUF_CElt* oldHufTable, HUF_repeat* repeat, int preferRepeat, - const int bmi2) + HUF_CElt* oldHufTable, HUF_repeat* repeat, int flags) { - HUF_compress_tables_t* const table = (HUF_compress_tables_t*)workSpace; + HUF_compress_tables_t* const table = (HUF_compress_tables_t*)HUF_alignUpWorkspace(workSpace, &wkspSize, ZSTD_ALIGNOF(size_t)); BYTE* const ostart = (BYTE*)dst; BYTE* const oend = ostart + dstSize; BYTE* op = ostart; - HUF_STATIC_ASSERT(sizeof(*table) <= HUF_WORKSPACE_SIZE); + DEBUGLOG(5, "HUF_compress_internal (srcSize=%zu)", srcSize); + HUF_STATIC_ASSERT(sizeof(*table) + HUF_WORKSPACE_MAX_ALIGNMENT <= HUF_WORKSPACE_SIZE); /* checks & inits */ - if (((size_t)workSpace & 3) != 0) return ERROR(GENERIC); /* must be aligned on 4-bytes boundaries */ - if (wkspSize < HUF_WORKSPACE_SIZE) return ERROR(workSpace_tooSmall); + if (wkspSize < sizeof(*table)) return ERROR(workSpace_tooSmall); if (!srcSize) return 0; /* Uncompressed */ if (!dstSize) return 0; /* cannot fit anything within dst budget */ if (srcSize > HUF_BLOCKSIZE_MAX) return ERROR(srcSize_wrong); /* current block size limit */ @@ -663,17 +1357,34 @@ HUF_compress_internal (void* dst, size_t dstSize, if (!huffLog) huffLog = HUF_TABLELOG_DEFAULT; /* Heuristic : If old table is valid, use it for small inputs */ - if (preferRepeat && repeat && *repeat == HUF_repeat_valid) { + if ((flags & HUF_flags_preferRepeat) && repeat && *repeat == HUF_repeat_valid) { return HUF_compressCTable_internal(ostart, op, oend, src, srcSize, - nbStreams, oldHufTable, bmi2); + nbStreams, oldHufTable, flags); + } + + /* If uncompressible data is suspected, do a smaller sampling first */ + DEBUG_STATIC_ASSERT(SUSPECT_INCOMPRESSIBLE_SAMPLE_RATIO >= 2); + if ((flags & HUF_flags_suspectUncompressible) && srcSize >= (SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE * SUSPECT_INCOMPRESSIBLE_SAMPLE_RATIO)) { + size_t largestTotal = 0; + DEBUGLOG(5, "input suspected incompressible : sampling to check"); + { unsigned maxSymbolValueBegin = maxSymbolValue; + CHECK_V_F(largestBegin, HIST_count_simple (table->count, &maxSymbolValueBegin, (const BYTE*)src, SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE) ); + largestTotal += largestBegin; + } + { unsigned maxSymbolValueEnd = maxSymbolValue; + CHECK_V_F(largestEnd, HIST_count_simple (table->count, &maxSymbolValueEnd, (const BYTE*)src + srcSize - SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE, SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE) ); + largestTotal += largestEnd; + } + if (largestTotal <= ((2 * SUSPECT_INCOMPRESSIBLE_SAMPLE_SIZE) >> 7)+4) return 0; /* heuristic : probably not compressible enough */ } /* Scan input and build symbol stats */ - { CHECK_V_F(largest, HIST_count_wksp (table->count, &maxSymbolValue, (const BYTE*)src, srcSize, workSpace, wkspSize) ); + { CHECK_V_F(largest, HIST_count_wksp (table->count, &maxSymbolValue, (const BYTE*)src, srcSize, table->wksps.hist_wksp, sizeof(table->wksps.hist_wksp)) ); if (largest == srcSize) { *ostart = ((const BYTE*)src)[0]; return 1; } /* single symbol, rle */ if (largest <= (srcSize >> 7)+4) return 0; /* heuristic : probably not compressible enough */ } + DEBUGLOG(6, "histogram detail completed (%zu symbols)", showU32(table->count, maxSymbolValue+1)); /* Check validity of previous table */ if ( repeat @@ -682,26 +1393,25 @@ HUF_compress_internal (void* dst, size_t dstSize, *repeat = HUF_repeat_none; } /* Heuristic : use existing table for small inputs */ - if (preferRepeat && repeat && *repeat != HUF_repeat_none) { + if ((flags & HUF_flags_preferRepeat) && repeat && *repeat != HUF_repeat_none) { return HUF_compressCTable_internal(ostart, op, oend, src, srcSize, - nbStreams, oldHufTable, bmi2); + nbStreams, oldHufTable, flags); } /* Build Huffman Tree */ - huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue); + huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue, &table->wksps, sizeof(table->wksps), table->CTable, table->count, flags); { size_t const maxBits = HUF_buildCTable_wksp(table->CTable, table->count, maxSymbolValue, huffLog, - &table->buildCTable_wksp, sizeof(table->buildCTable_wksp)); + &table->wksps.buildCTable_wksp, sizeof(table->wksps.buildCTable_wksp)); CHECK_F(maxBits); huffLog = (U32)maxBits; - /* Zero unused symbols in CTable, so we can check it for validity */ - memset(table->CTable + (maxSymbolValue + 1), 0, - sizeof(table->CTable) - ((maxSymbolValue + 1) * sizeof(HUF_CElt))); + DEBUGLOG(6, "bit distribution completed (%zu symbols)", showCTableBits(table->CTable + 1, maxSymbolValue+1)); } /* Write table description header */ - { CHECK_V_F(hSize, HUF_writeCTable (op, dstSize, table->CTable, maxSymbolValue, huffLog) ); + { CHECK_V_F(hSize, HUF_writeCTable_wksp(op, dstSize, table->CTable, maxSymbolValue, huffLog, + &table->wksps.writeCTable_wksp, sizeof(table->wksps.writeCTable_wksp)) ); /* Check if using previous huffman table is beneficial */ if (repeat && *repeat != HUF_repeat_none) { size_t const oldSize = HUF_estimateCompressedSize(oldHufTable, table->count, maxSymbolValue); @@ -709,7 +1419,7 @@ HUF_compress_internal (void* dst, size_t dstSize, if (oldSize <= hSize + newSize || hSize + 12 >= srcSize) { return HUF_compressCTable_internal(ostart, op, oend, src, srcSize, - nbStreams, oldHufTable, bmi2); + nbStreams, oldHufTable, flags); } } /* Use the new huffman table */ @@ -717,85 +1427,41 @@ HUF_compress_internal (void* dst, size_t dstSize, op += hSize; if (repeat) { *repeat = HUF_repeat_none; } if (oldHufTable) - memcpy(oldHufTable, table->CTable, sizeof(table->CTable)); /* Save new table */ + ZSTD_memcpy(oldHufTable, table->CTable, sizeof(table->CTable)); /* Save new table */ } return HUF_compressCTable_internal(ostart, op, oend, src, srcSize, - nbStreams, table->CTable, bmi2); -} - - -size_t HUF_compress1X_wksp (void* dst, size_t dstSize, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned huffLog, - void* workSpace, size_t wkspSize) -{ - return HUF_compress_internal(dst, dstSize, src, srcSize, - maxSymbolValue, huffLog, HUF_singleStream, - workSpace, wkspSize, - NULL, NULL, 0, 0 /*bmi2*/); + nbStreams, table->CTable, flags); } size_t HUF_compress1X_repeat (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned huffLog, void* workSpace, size_t wkspSize, - HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2) + HUF_CElt* hufTable, HUF_repeat* repeat, int flags) { + DEBUGLOG(5, "HUF_compress1X_repeat (srcSize = %zu)", srcSize); return HUF_compress_internal(dst, dstSize, src, srcSize, maxSymbolValue, huffLog, HUF_singleStream, workSpace, wkspSize, hufTable, - repeat, preferRepeat, bmi2); -} - -size_t HUF_compress1X (void* dst, size_t dstSize, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned huffLog) -{ - unsigned workSpace[HUF_WORKSPACE_SIZE_U32]; - return HUF_compress1X_wksp(dst, dstSize, src, srcSize, maxSymbolValue, huffLog, workSpace, sizeof(workSpace)); + repeat, flags); } /* HUF_compress4X_repeat(): * compress input using 4 streams. - * provide workspace to generate compression tables */ -size_t HUF_compress4X_wksp (void* dst, size_t dstSize, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned huffLog, - void* workSpace, size_t wkspSize) -{ - return HUF_compress_internal(dst, dstSize, src, srcSize, - maxSymbolValue, huffLog, HUF_fourStreams, - workSpace, wkspSize, - NULL, NULL, 0, 0 /*bmi2*/); -} - -/* HUF_compress4X_repeat(): - * compress input using 4 streams. - * re-use an existing huffman compression table */ + * consider skipping quickly + * reuse an existing huffman compression table */ size_t HUF_compress4X_repeat (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned huffLog, void* workSpace, size_t wkspSize, - HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2) + HUF_CElt* hufTable, HUF_repeat* repeat, int flags) { + DEBUGLOG(5, "HUF_compress4X_repeat (srcSize = %zu)", srcSize); return HUF_compress_internal(dst, dstSize, src, srcSize, maxSymbolValue, huffLog, HUF_fourStreams, workSpace, wkspSize, - hufTable, repeat, preferRepeat, bmi2); -} - -size_t HUF_compress2 (void* dst, size_t dstSize, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned huffLog) -{ - unsigned workSpace[HUF_WORKSPACE_SIZE_U32]; - return HUF_compress4X_wksp(dst, dstSize, src, srcSize, maxSymbolValue, huffLog, workSpace, sizeof(workSpace)); + hufTable, repeat, flags); } -size_t HUF_compress (void* dst, size_t maxDstSize, const void* src, size_t srcSize) -{ - return HUF_compress2(dst, maxDstSize, src, srcSize, 255, HUF_TABLELOG_DEFAULT); -} - -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_compress.cpp b/src/duckdb/third_party/zstd/compress/zstd_compress.cpp index 649e5357..df5626e5 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_compress.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_compress.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -11,14 +11,13 @@ /*-************************************* * Dependencies ***************************************/ -#include /* INT_MAX */ -#include /* memset */ +#include "zstd/common/allocations.h" /* ZSTD_customMalloc, ZSTD_customCalloc, ZSTD_customFree */ +#include "zstd/common/zstd_deps.h" /* INT_MAX, ZSTD_memset, ZSTD_memcpy */ #include "zstd/common/mem.h" #include "zstd/compress/hist.h" /* HIST_countFast_wksp */ +#define FSE_STATIC_LINKING_ONLY /* FSE_encodeSymbol */ #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" #include "zstd/compress/zstd_compress_internal.h" #include "zstd/compress/zstd_compress_sequences.h" #include "zstd/compress/zstd_compress_literals.h" @@ -28,24 +27,51 @@ #include "zstd/compress/zstd_opt.h" #include "zstd/compress/zstd_ldm.h" #include "zstd/compress/zstd_compress_superblock.h" +#include "zstd/common/bits.h" /* ZSTD_highbit32, ZSTD_rotateRight_U64 */ + +/* *************************************************************** +* Tuning parameters +*****************************************************************/ +/*! + * COMPRESS_HEAPMODE : + * Select how default decompression function ZSTD_compress() allocates its context, + * on stack (0, default), or into heap (1). + * Note that functions with explicit context such as ZSTD_compressCCtx() are unaffected. + */ +#ifndef ZSTD_COMPRESS_HEAPMODE +# define ZSTD_COMPRESS_HEAPMODE 0 +#endif -#if defined (MEMORY_SANITIZER) -#include +/*! + * ZSTD_HASHLOG3_MAX : + * Maximum size of the hash table dedicated to find 3-bytes matches, + * in log format, aka 17 => 1 << 17 == 128Ki positions. + * This structure is only used in zstd_opt. + * Since allocation is centralized for all strategies, it has to be known here. + * The actual (selected) size of the hash table is then stored in ZSTD_matchState_t.hashLog3, + * so that zstd_opt.c doesn't need to know about this constant. + */ +#ifndef ZSTD_HASHLOG3_MAX +# define ZSTD_HASHLOG3_MAX 17 #endif namespace duckdb_zstd { + /*-************************************* * Helper functions ***************************************/ /* ZSTD_compressBound() - * Note that the result from this function is only compatible with the "normal" - * full-block strategy. - * When there are a lot of small blocks due to frequent flush in streaming mode - * the overhead of headers can make the compressed data to be larger than the - * return value of ZSTD_compressBound(). + * Note that the result from this function is only valid for + * the one-pass compression functions. + * When employing the streaming mode, + * if flushes are frequently altering the size of blocks, + * the overhead from block headers can make the compressed data larger + * than the return value of ZSTD_compressBound(). */ size_t ZSTD_compressBound(size_t srcSize) { - return ZSTD_COMPRESSBOUND(srcSize); + size_t const r = ZSTD_COMPRESSBOUND(srcSize); + if (r==0) return ERROR(srcSize_wrong); + return r; } @@ -55,6 +81,7 @@ size_t ZSTD_compressBound(size_t srcSize) { struct ZSTD_CDict_s { const void* dictContent; size_t dictContentSize; + ZSTD_dictContentType_e dictContentType; /* The dictContentType the CDict was created with */ U32* entropyWorkspace; /* entropy workspace of HUF_WORKSPACE_SIZE bytes */ ZSTD_cwksp workspace; ZSTD_matchState_t matchState; @@ -62,19 +89,23 @@ struct ZSTD_CDict_s { ZSTD_customMem customMem; U32 dictID; int compressionLevel; /* 0 indicates that advanced API was used to select CDict params */ + ZSTD_paramSwitch_e useRowMatchFinder; /* Indicates whether the CDict was created with params that would use + * row-based matchfinder. Unless the cdict is reloaded, we will use + * the same greedy/lazy matchfinder at compression time. + */ }; /* typedef'd to ZSTD_CDict within "zstd.h" */ ZSTD_CCtx* ZSTD_createCCtx(void) { - return ZSTD_createCCtx_advanced({NULL, NULL, NULL}); + return ZSTD_createCCtx_advanced(ZSTD_defaultCMem); } static void ZSTD_initCCtx(ZSTD_CCtx* cctx, ZSTD_customMem memManager) { assert(cctx != NULL); - memset(cctx, 0, sizeof(*cctx)); + ZSTD_memset(cctx, 0, sizeof(*cctx)); cctx->customMem = memManager; - cctx->bmi2 = 0; + cctx->bmi2 = ZSTD_cpuSupportsBmi2(); { size_t const err = ZSTD_CCtx_reset(cctx, ZSTD_reset_parameters); assert(!ZSTD_isError(err)); (void)err; @@ -85,8 +116,8 @@ ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem) { ZSTD_STATIC_ASSERT(zcss_init==0); ZSTD_STATIC_ASSERT(ZSTD_CONTENTSIZE_UNKNOWN==(0ULL - 1)); - if (!customMem.customAlloc ^ !customMem.customFree) return NULL; - { ZSTD_CCtx* const cctx = (ZSTD_CCtx*)ZSTD_malloc(sizeof(ZSTD_CCtx), customMem); + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + { ZSTD_CCtx* const cctx = (ZSTD_CCtx*)ZSTD_customMalloc(sizeof(ZSTD_CCtx), customMem); if (!cctx) return NULL; ZSTD_initCCtx(cctx, customMem); return cctx; @@ -99,21 +130,21 @@ ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize) ZSTD_CCtx* cctx; if (workspaceSize <= sizeof(ZSTD_CCtx)) return NULL; /* minimum size */ if ((size_t)workspace & 7) return NULL; /* must be 8-aligned */ - ZSTD_cwksp_init(&ws, workspace, workspaceSize); + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_static_alloc); cctx = (ZSTD_CCtx*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CCtx)); if (cctx == NULL) return NULL; - memset(cctx, 0, sizeof(ZSTD_CCtx)); + ZSTD_memset(cctx, 0, sizeof(ZSTD_CCtx)); ZSTD_cwksp_move(&cctx->workspace, &ws); cctx->staticSize = workspaceSize; /* statically sized space. entropyWorkspace never moves (but prev/next block swap places) */ - if (!ZSTD_cwksp_check_available(&cctx->workspace, HUF_WORKSPACE_SIZE + 2 * sizeof(ZSTD_compressedBlockState_t))) return NULL; + if (!ZSTD_cwksp_check_available(&cctx->workspace, ENTROPY_WORKSPACE_SIZE + 2 * sizeof(ZSTD_compressedBlockState_t))) return NULL; cctx->blockState.prevCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t)); cctx->blockState.nextCBlock = (ZSTD_compressedBlockState_t*)ZSTD_cwksp_reserve_object(&cctx->workspace, sizeof(ZSTD_compressedBlockState_t)); - cctx->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cctx->workspace, HUF_WORKSPACE_SIZE); - cctx->bmi2 = 0; + cctx->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cctx->workspace, ENTROPY_WORKSPACE_SIZE); + cctx->bmi2 = ZSTD_cpuid_bmi2(ZSTD_cpuid()); return cctx; } @@ -122,10 +153,10 @@ ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize) */ static void ZSTD_clearAllDicts(ZSTD_CCtx* cctx) { - ZSTD_free(cctx->localDict.dictBuffer, cctx->customMem); + ZSTD_customFree(cctx->localDict.dictBuffer, cctx->customMem); ZSTD_freeCDict(cctx->localDict.cdict); - memset(&cctx->localDict, 0, sizeof(cctx->localDict)); - memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); + ZSTD_memset(&cctx->localDict, 0, sizeof(cctx->localDict)); + ZSTD_memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); cctx->cdict = NULL; } @@ -149,15 +180,13 @@ static void ZSTD_freeCCtxContent(ZSTD_CCtx* cctx) size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx) { + DEBUGLOG(3, "ZSTD_freeCCtx (address: %p)", (void*)cctx); if (cctx==NULL) return 0; /* support free on NULL */ RETURN_ERROR_IF(cctx->staticSize, memory_allocation, "not compatible with static CCtx"); - { - int cctxInWorkspace = ZSTD_cwksp_owns_buffer(&cctx->workspace, cctx); + { int cctxInWorkspace = ZSTD_cwksp_owns_buffer(&cctx->workspace, cctx); ZSTD_freeCCtxContent(cctx); - if (!cctxInWorkspace) { - ZSTD_free(cctx, cctx->customMem); - } + if (!cctxInWorkspace) ZSTD_customFree(cctx, cctx->customMem); } return 0; } @@ -192,15 +221,116 @@ size_t ZSTD_sizeof_CStream(const ZSTD_CStream* zcs) /* private API call, for dictBuilder only */ const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx) { return &(ctx->seqStore); } +/* Returns true if the strategy supports using a row based matchfinder */ +static int ZSTD_rowMatchFinderSupported(const ZSTD_strategy strategy) { + return (strategy >= ZSTD_greedy && strategy <= ZSTD_lazy2); +} + +/* Returns true if the strategy and useRowMatchFinder mode indicate that we will use the row based matchfinder + * for this compression. + */ +static int ZSTD_rowMatchFinderUsed(const ZSTD_strategy strategy, const ZSTD_paramSwitch_e mode) { + assert(mode != ZSTD_ps_auto); + return ZSTD_rowMatchFinderSupported(strategy) && (mode == ZSTD_ps_enable); +} + +/* Returns row matchfinder usage given an initial mode and cParams */ +static ZSTD_paramSwitch_e ZSTD_resolveRowMatchFinderMode(ZSTD_paramSwitch_e mode, + const ZSTD_compressionParameters* const cParams) { +#if defined(ZSTD_ARCH_X86_SSE2) || defined(ZSTD_ARCH_ARM_NEON) + int const kHasSIMD128 = 1; +#else + int const kHasSIMD128 = 0; +#endif + if (mode != ZSTD_ps_auto) return mode; /* if requested enabled, but no SIMD, we still will use row matchfinder */ + mode = ZSTD_ps_disable; + if (!ZSTD_rowMatchFinderSupported(cParams->strategy)) return mode; + if (kHasSIMD128) { + if (cParams->windowLog > 14) mode = ZSTD_ps_enable; + } else { + if (cParams->windowLog > 17) mode = ZSTD_ps_enable; + } + return mode; +} + +/* Returns block splitter usage (generally speaking, when using slower/stronger compression modes) */ +static ZSTD_paramSwitch_e ZSTD_resolveBlockSplitterMode(ZSTD_paramSwitch_e mode, + const ZSTD_compressionParameters* const cParams) { + if (mode != ZSTD_ps_auto) return mode; + return (cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 17) ? ZSTD_ps_enable : ZSTD_ps_disable; +} + +/* Returns 1 if the arguments indicate that we should allocate a chainTable, 0 otherwise */ +static int ZSTD_allocateChainTable(const ZSTD_strategy strategy, + const ZSTD_paramSwitch_e useRowMatchFinder, + const U32 forDDSDict) { + assert(useRowMatchFinder != ZSTD_ps_auto); + /* We always should allocate a chaintable if we are allocating a matchstate for a DDS dictionary matchstate. + * We do not allocate a chaintable if we are using ZSTD_fast, or are using the row-based matchfinder. + */ + return forDDSDict || ((strategy != ZSTD_fast) && !ZSTD_rowMatchFinderUsed(strategy, useRowMatchFinder)); +} + +/* Returns ZSTD_ps_enable if compression parameters are such that we should + * enable long distance matching (wlog >= 27, strategy >= btopt). + * Returns ZSTD_ps_disable otherwise. + */ +static ZSTD_paramSwitch_e ZSTD_resolveEnableLdm(ZSTD_paramSwitch_e mode, + const ZSTD_compressionParameters* const cParams) { + if (mode != ZSTD_ps_auto) return mode; + return (cParams->strategy >= ZSTD_btopt && cParams->windowLog >= 27) ? ZSTD_ps_enable : ZSTD_ps_disable; +} + +static int ZSTD_resolveExternalSequenceValidation(int mode) { + return mode; +} + +/* Resolves maxBlockSize to the default if no value is present. */ +static size_t ZSTD_resolveMaxBlockSize(size_t maxBlockSize) { + if (maxBlockSize == 0) { + return ZSTD_BLOCKSIZE_MAX; + } else { + return maxBlockSize; + } +} + +static ZSTD_paramSwitch_e ZSTD_resolveExternalRepcodeSearch(ZSTD_paramSwitch_e value, int cLevel) { + if (value != ZSTD_ps_auto) return value; + if (cLevel < 10) { + return ZSTD_ps_disable; + } else { + return ZSTD_ps_enable; + } +} + +/* Returns 1 if compression parameters are such that CDict hashtable and chaintable indices are tagged. + * If so, the tags need to be removed in ZSTD_resetCCtx_byCopyingCDict. */ +static int ZSTD_CDictIndicesAreTagged(const ZSTD_compressionParameters* const cParams) { + return cParams->strategy == ZSTD_fast || cParams->strategy == ZSTD_dfast; +} + static ZSTD_CCtx_params ZSTD_makeCCtxParamsFromCParams( ZSTD_compressionParameters cParams) { ZSTD_CCtx_params cctxParams; - memset(&cctxParams, 0, sizeof(cctxParams)); + /* should not matter, as all cParams are presumed properly defined */ + ZSTD_CCtxParams_init(&cctxParams, ZSTD_CLEVEL_DEFAULT); cctxParams.cParams = cParams; - cctxParams.compressionLevel = ZSTD_CLEVEL_DEFAULT; /* should not matter, as all cParams are presumed properly defined */ + + /* Adjust advanced params according to cParams */ + cctxParams.ldmParams.enableLdm = ZSTD_resolveEnableLdm(cctxParams.ldmParams.enableLdm, &cParams); + if (cctxParams.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_ldm_adjustParameters(&cctxParams.ldmParams, &cParams); + assert(cctxParams.ldmParams.hashLog >= cctxParams.ldmParams.bucketSizeLog); + assert(cctxParams.ldmParams.hashRateLog < 32); + } + cctxParams.useBlockSplitter = ZSTD_resolveBlockSplitterMode(cctxParams.useBlockSplitter, &cParams); + cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams); + cctxParams.validateSequences = ZSTD_resolveExternalSequenceValidation(cctxParams.validateSequences); + cctxParams.maxBlockSize = ZSTD_resolveMaxBlockSize(cctxParams.maxBlockSize); + cctxParams.searchForExternalRepcodes = ZSTD_resolveExternalRepcodeSearch(cctxParams.searchForExternalRepcodes, + cctxParams.compressionLevel); assert(!ZSTD_checkCParams(cParams)); - cctxParams.fParams.contentSizeFlag = 1; return cctxParams; } @@ -208,25 +338,24 @@ static ZSTD_CCtx_params* ZSTD_createCCtxParams_advanced( ZSTD_customMem customMem) { ZSTD_CCtx_params* params; - if (!customMem.customAlloc ^ !customMem.customFree) return NULL; - params = (ZSTD_CCtx_params*)ZSTD_calloc( + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; + params = (ZSTD_CCtx_params*)ZSTD_customCalloc( sizeof(ZSTD_CCtx_params), customMem); if (!params) { return NULL; } + ZSTD_CCtxParams_init(params, ZSTD_CLEVEL_DEFAULT); params->customMem = customMem; - params->compressionLevel = ZSTD_CLEVEL_DEFAULT; - params->fParams.contentSizeFlag = 1; return params; } ZSTD_CCtx_params* ZSTD_createCCtxParams(void) { - return ZSTD_createCCtxParams_advanced(ZSTDInternalConstants::ZSTD_defaultCMem); + return ZSTD_createCCtxParams_advanced(ZSTD_defaultCMem); } size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params) { if (params == NULL) { return 0; } - ZSTD_free(params, params->customMem); + ZSTD_customFree(params, params->customMem); return 0; } @@ -237,35 +366,63 @@ size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params) size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel) { RETURN_ERROR_IF(!cctxParams, GENERIC, "NULL pointer!"); - memset(cctxParams, 0, sizeof(*cctxParams)); + ZSTD_memset(cctxParams, 0, sizeof(*cctxParams)); cctxParams->compressionLevel = compressionLevel; cctxParams->fParams.contentSizeFlag = 1; return 0; } +#define ZSTD_NO_CLEVEL 0 + +/** + * Initializes `cctxParams` from `params` and `compressionLevel`. + * @param compressionLevel If params are derived from a compression level then that compression level, otherwise ZSTD_NO_CLEVEL. + */ +static void +ZSTD_CCtxParams_init_internal(ZSTD_CCtx_params* cctxParams, + const ZSTD_parameters* params, + int compressionLevel) +{ + assert(!ZSTD_checkCParams(params->cParams)); + ZSTD_memset(cctxParams, 0, sizeof(*cctxParams)); + cctxParams->cParams = params->cParams; + cctxParams->fParams = params->fParams; + /* Should not matter, as all cParams are presumed properly defined. + * But, set it for tracing anyway. + */ + cctxParams->compressionLevel = compressionLevel; + cctxParams->useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams->useRowMatchFinder, ¶ms->cParams); + cctxParams->useBlockSplitter = ZSTD_resolveBlockSplitterMode(cctxParams->useBlockSplitter, ¶ms->cParams); + cctxParams->ldmParams.enableLdm = ZSTD_resolveEnableLdm(cctxParams->ldmParams.enableLdm, ¶ms->cParams); + cctxParams->validateSequences = ZSTD_resolveExternalSequenceValidation(cctxParams->validateSequences); + cctxParams->maxBlockSize = ZSTD_resolveMaxBlockSize(cctxParams->maxBlockSize); + cctxParams->searchForExternalRepcodes = ZSTD_resolveExternalRepcodeSearch(cctxParams->searchForExternalRepcodes, compressionLevel); + DEBUGLOG(4, "ZSTD_CCtxParams_init_internal: useRowMatchFinder=%d, useBlockSplitter=%d ldm=%d", + cctxParams->useRowMatchFinder, cctxParams->useBlockSplitter, cctxParams->ldmParams.enableLdm); +} + size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params) { RETURN_ERROR_IF(!cctxParams, GENERIC, "NULL pointer!"); FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , ""); - memset(cctxParams, 0, sizeof(*cctxParams)); - assert(!ZSTD_checkCParams(params.cParams)); - cctxParams->cParams = params.cParams; - cctxParams->fParams = params.fParams; - cctxParams->compressionLevel = ZSTD_CLEVEL_DEFAULT; /* should not matter, as all cParams are presumed properly defined */ + ZSTD_CCtxParams_init_internal(cctxParams, ¶ms, ZSTD_NO_CLEVEL); return 0; } -/* ZSTD_assignParamsToCCtxParams() : - * params is presumed valid at this stage */ -static ZSTD_CCtx_params ZSTD_assignParamsToCCtxParams( - const ZSTD_CCtx_params* cctxParams, const ZSTD_parameters* params) +/** + * Sets cctxParams' cParams and fParams from params, but otherwise leaves them alone. + * @param params Validated zstd parameters. + */ +static void ZSTD_CCtxParams_setZstdParams( + ZSTD_CCtx_params* cctxParams, const ZSTD_parameters* params) { - ZSTD_CCtx_params ret = *cctxParams; assert(!ZSTD_checkCParams(params->cParams)); - ret.cParams = params->cParams; - ret.fParams = params->fParams; - ret.compressionLevel = ZSTD_CLEVEL_DEFAULT; /* should not matter, as all cParams are presumed properly defined */ - return ret; + cctxParams->cParams = params->cParams; + cctxParams->fParams = params->fParams; + /* Should not matter, as all cParams are presumed properly defined. + * But, set it for tracing anyway. + */ + cctxParams->compressionLevel = ZSTD_NO_CLEVEL; } ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param) @@ -357,11 +514,16 @@ ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param) #endif return bounds; - case ZSTD_c_enableLongDistanceMatching: + case ZSTD_c_enableDedicatedDictSearch: bounds.lowerBound = 0; bounds.upperBound = 1; return bounds; + case ZSTD_c_enableLongDistanceMatching: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + case ZSTD_c_ldmHashLog: bounds.lowerBound = ZSTD_LDM_HASHLOG_MIN; bounds.upperBound = ZSTD_LDM_HASHLOG_MAX; @@ -400,15 +562,15 @@ ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param) return bounds; case ZSTD_c_forceAttachDict: - ZSTD_STATIC_ASSERT(ZSTD_dictDefaultAttach < ZSTD_dictForceCopy); + ZSTD_STATIC_ASSERT(ZSTD_dictDefaultAttach < ZSTD_dictForceLoad); bounds.lowerBound = ZSTD_dictDefaultAttach; bounds.upperBound = ZSTD_dictForceLoad; /* note : how to ensure at compile time that this is the highest value enum ? */ return bounds; case ZSTD_c_literalCompressionMode: - ZSTD_STATIC_ASSERT(ZSTD_lcm_auto < ZSTD_lcm_huffman && ZSTD_lcm_huffman < ZSTD_lcm_uncompressed); - bounds.lowerBound = ZSTD_lcm_auto; - bounds.upperBound = ZSTD_lcm_uncompressed; + ZSTD_STATIC_ASSERT(ZSTD_ps_auto < ZSTD_ps_enable && ZSTD_ps_enable < ZSTD_ps_disable); + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; return bounds; case ZSTD_c_targetCBlockSize: @@ -421,6 +583,57 @@ ZSTD_bounds ZSTD_cParam_getBounds(ZSTD_cParameter param) bounds.upperBound = ZSTD_SRCSIZEHINT_MAX; return bounds; + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + bounds.lowerBound = (int)ZSTD_bm_buffered; + bounds.upperBound = (int)ZSTD_bm_stable; + return bounds; + + case ZSTD_c_blockDelimiters: + bounds.lowerBound = (int)ZSTD_sf_noBlockDelimiters; + bounds.upperBound = (int)ZSTD_sf_explicitBlockDelimiters; + return bounds; + + case ZSTD_c_validateSequences: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_useBlockSplitter: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_useRowMatchFinder: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_deterministicRefPrefix: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_prefetchCDictTables: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + + case ZSTD_c_enableSeqProducerFallback: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + + case ZSTD_c_maxBlockSize: + bounds.lowerBound = ZSTD_BLOCKSIZE_MAX_MIN; + bounds.upperBound = ZSTD_BLOCKSIZE_MAX; + return bounds; + + case ZSTD_c_searchForExternalRepcodes: + bounds.lowerBound = (int)ZSTD_ps_auto; + bounds.upperBound = (int)ZSTD_ps_disable; + return bounds; + default: bounds.error = ERROR(parameter_unsupported); return bounds; @@ -439,10 +652,11 @@ static size_t ZSTD_cParam_clampBounds(ZSTD_cParameter cParam, int* value) return 0; } -#define BOUNDCHECK(cParam, val) { \ - RETURN_ERROR_IF(!ZSTD_cParam_withinBounds(cParam,val), \ - parameter_outOfBound, "Param out of bounds"); \ -} +#define BOUNDCHECK(cParam, val) \ + do { \ + RETURN_ERROR_IF(!ZSTD_cParam_withinBounds(cParam,val), \ + parameter_outOfBound, "Param out of bounds"); \ + } while (0) static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param) @@ -468,6 +682,7 @@ static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param) case ZSTD_c_jobSize: case ZSTD_c_overlapLog: case ZSTD_c_rsyncable: + case ZSTD_c_enableDedicatedDictSearch: case ZSTD_c_enableLongDistanceMatching: case ZSTD_c_ldmHashLog: case ZSTD_c_ldmMinMatch: @@ -477,6 +692,17 @@ static int ZSTD_isUpdateAuthorized(ZSTD_cParameter param) case ZSTD_c_literalCompressionMode: case ZSTD_c_targetCBlockSize: case ZSTD_c_srcSizeHint: + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + case ZSTD_c_blockDelimiters: + case ZSTD_c_validateSequences: + case ZSTD_c_useBlockSplitter: + case ZSTD_c_useRowMatchFinder: + case ZSTD_c_deterministicRefPrefix: + case ZSTD_c_prefetchCDictTables: + case ZSTD_c_enableSeqProducerFallback: + case ZSTD_c_maxBlockSize: + case ZSTD_c_searchForExternalRepcodes: default: return 0; } @@ -489,7 +715,7 @@ size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value) if (ZSTD_isUpdateAuthorized(param)) { cctx->cParamsChanged = 1; } else { - RETURN_ERROR(stage_wrong, "can only set params in ctx init stage"); + RETURN_ERROR(stage_wrong, "can only set params in cctx init stage"); } } switch(param) @@ -518,12 +744,24 @@ size_t ZSTD_CCtx_setParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int value) case ZSTD_c_jobSize: case ZSTD_c_overlapLog: case ZSTD_c_rsyncable: + case ZSTD_c_enableDedicatedDictSearch: case ZSTD_c_enableLongDistanceMatching: case ZSTD_c_ldmHashLog: case ZSTD_c_ldmMinMatch: case ZSTD_c_ldmBucketSizeLog: case ZSTD_c_targetCBlockSize: case ZSTD_c_srcSizeHint: + case ZSTD_c_stableInBuffer: + case ZSTD_c_stableOutBuffer: + case ZSTD_c_blockDelimiters: + case ZSTD_c_validateSequences: + case ZSTD_c_useBlockSplitter: + case ZSTD_c_useRowMatchFinder: + case ZSTD_c_deterministicRefPrefix: + case ZSTD_c_prefetchCDictTables: + case ZSTD_c_enableSeqProducerFallback: + case ZSTD_c_maxBlockSize: + case ZSTD_c_searchForExternalRepcodes: break; default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); @@ -544,9 +782,10 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, case ZSTD_c_compressionLevel : { FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); - if (value) { /* 0 : does not change current level */ + if (value == 0) + CCtxParams->compressionLevel = ZSTD_CLEVEL_DEFAULT; /* 0 == default */ + else CCtxParams->compressionLevel = value; - } if (CCtxParams->compressionLevel >= 0) return (size_t)CCtxParams->compressionLevel; return 0; /* return type (size_t) cannot represent negative values */ } @@ -578,12 +817,12 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, case ZSTD_c_minMatch : if (value!=0) /* 0 => use default */ BOUNDCHECK(ZSTD_c_minMatch, value); - CCtxParams->cParams.minMatch = value; + CCtxParams->cParams.minMatch = (U32)value; return CCtxParams->cParams.minMatch; case ZSTD_c_targetLength : BOUNDCHECK(ZSTD_c_targetLength, value); - CCtxParams->cParams.targetLength = value; + CCtxParams->cParams.targetLength = (U32)value; return CCtxParams->cParams.targetLength; case ZSTD_c_strategy : @@ -596,12 +835,12 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, /* Content size written in frame header _when known_ (default:1) */ DEBUGLOG(4, "set content size flag = %u", (value!=0)); CCtxParams->fParams.contentSizeFlag = value != 0; - return CCtxParams->fParams.contentSizeFlag; + return (size_t)CCtxParams->fParams.contentSizeFlag; case ZSTD_c_checksumFlag : /* A 32-bits content checksum will be calculated and written at end of frame (default:0) */ CCtxParams->fParams.checksumFlag = value != 0; - return CCtxParams->fParams.checksumFlag; + return (size_t)CCtxParams->fParams.checksumFlag; case ZSTD_c_dictIDFlag : /* When applicable, dictionary's dictID is provided in frame header (default:1) */ DEBUGLOG(4, "set dictIDFlag = %u", (value!=0)); @@ -610,18 +849,18 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, case ZSTD_c_forceMaxWindow : CCtxParams->forceWindow = (value != 0); - return CCtxParams->forceWindow; + return (size_t)CCtxParams->forceWindow; case ZSTD_c_forceAttachDict : { const ZSTD_dictAttachPref_e pref = (ZSTD_dictAttachPref_e)value; - BOUNDCHECK(ZSTD_c_forceAttachDict, pref); + BOUNDCHECK(ZSTD_c_forceAttachDict, (int)pref); CCtxParams->attachDictPref = pref; return CCtxParams->attachDictPref; } case ZSTD_c_literalCompressionMode : { - const ZSTD_literalCompressionMode_e lcm = (ZSTD_literalCompressionMode_e)value; - BOUNDCHECK(ZSTD_c_literalCompressionMode, lcm); + const ZSTD_paramSwitch_e lcm = (ZSTD_paramSwitch_e)value; + BOUNDCHECK(ZSTD_c_literalCompressionMode, (int)lcm); CCtxParams->literalCompressionMode = lcm; return CCtxParams->literalCompressionMode; } @@ -633,7 +872,7 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, #else FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(param, &value), ""); CCtxParams->nbWorkers = value; - return CCtxParams->nbWorkers; + return (size_t)(CCtxParams->nbWorkers); #endif case ZSTD_c_jobSize : @@ -657,7 +896,7 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, #else FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(ZSTD_c_overlapLog, &value), ""); CCtxParams->overlapLog = value; - return CCtxParams->overlapLog; + return (size_t)CCtxParams->overlapLog; #endif case ZSTD_c_rsyncable : @@ -667,60 +906,123 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams, #else FORWARD_IF_ERROR(ZSTD_cParam_clampBounds(ZSTD_c_overlapLog, &value), ""); CCtxParams->rsyncable = value; - return CCtxParams->rsyncable; + return (size_t)CCtxParams->rsyncable; #endif + case ZSTD_c_enableDedicatedDictSearch : + CCtxParams->enableDedicatedDictSearch = (value!=0); + return (size_t)CCtxParams->enableDedicatedDictSearch; + case ZSTD_c_enableLongDistanceMatching : - CCtxParams->ldmParams.enableLdm = (value!=0); + BOUNDCHECK(ZSTD_c_enableLongDistanceMatching, value); + CCtxParams->ldmParams.enableLdm = (ZSTD_paramSwitch_e)value; return CCtxParams->ldmParams.enableLdm; case ZSTD_c_ldmHashLog : if (value!=0) /* 0 ==> auto */ BOUNDCHECK(ZSTD_c_ldmHashLog, value); - CCtxParams->ldmParams.hashLog = value; + CCtxParams->ldmParams.hashLog = (U32)value; return CCtxParams->ldmParams.hashLog; case ZSTD_c_ldmMinMatch : if (value!=0) /* 0 ==> default */ BOUNDCHECK(ZSTD_c_ldmMinMatch, value); - CCtxParams->ldmParams.minMatchLength = value; + CCtxParams->ldmParams.minMatchLength = (U32)value; return CCtxParams->ldmParams.minMatchLength; case ZSTD_c_ldmBucketSizeLog : if (value!=0) /* 0 ==> default */ BOUNDCHECK(ZSTD_c_ldmBucketSizeLog, value); - CCtxParams->ldmParams.bucketSizeLog = value; + CCtxParams->ldmParams.bucketSizeLog = (U32)value; return CCtxParams->ldmParams.bucketSizeLog; case ZSTD_c_ldmHashRateLog : - RETURN_ERROR_IF(value > ZSTD_WINDOWLOG_MAX - ZSTD_HASHLOG_MIN, - parameter_outOfBound, "Param out of bounds!"); - CCtxParams->ldmParams.hashRateLog = value; + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_ldmHashRateLog, value); + CCtxParams->ldmParams.hashRateLog = (U32)value; return CCtxParams->ldmParams.hashRateLog; case ZSTD_c_targetCBlockSize : - if (value!=0) /* 0 ==> default */ + if (value!=0) { /* 0 ==> default */ + value = MAX(value, ZSTD_TARGETCBLOCKSIZE_MIN); BOUNDCHECK(ZSTD_c_targetCBlockSize, value); - CCtxParams->targetCBlockSize = value; + } + CCtxParams->targetCBlockSize = (U32)value; return CCtxParams->targetCBlockSize; case ZSTD_c_srcSizeHint : if (value!=0) /* 0 ==> default */ BOUNDCHECK(ZSTD_c_srcSizeHint, value); CCtxParams->srcSizeHint = value; - return CCtxParams->srcSizeHint; + return (size_t)CCtxParams->srcSizeHint; + + case ZSTD_c_stableInBuffer: + BOUNDCHECK(ZSTD_c_stableInBuffer, value); + CCtxParams->inBufferMode = (ZSTD_bufferMode_e)value; + return CCtxParams->inBufferMode; + + case ZSTD_c_stableOutBuffer: + BOUNDCHECK(ZSTD_c_stableOutBuffer, value); + CCtxParams->outBufferMode = (ZSTD_bufferMode_e)value; + return CCtxParams->outBufferMode; + + case ZSTD_c_blockDelimiters: + BOUNDCHECK(ZSTD_c_blockDelimiters, value); + CCtxParams->blockDelimiters = (ZSTD_sequenceFormat_e)value; + return CCtxParams->blockDelimiters; + + case ZSTD_c_validateSequences: + BOUNDCHECK(ZSTD_c_validateSequences, value); + CCtxParams->validateSequences = value; + return (size_t)CCtxParams->validateSequences; + + case ZSTD_c_useBlockSplitter: + BOUNDCHECK(ZSTD_c_useBlockSplitter, value); + CCtxParams->useBlockSplitter = (ZSTD_paramSwitch_e)value; + return CCtxParams->useBlockSplitter; + + case ZSTD_c_useRowMatchFinder: + BOUNDCHECK(ZSTD_c_useRowMatchFinder, value); + CCtxParams->useRowMatchFinder = (ZSTD_paramSwitch_e)value; + return CCtxParams->useRowMatchFinder; + + case ZSTD_c_deterministicRefPrefix: + BOUNDCHECK(ZSTD_c_deterministicRefPrefix, value); + CCtxParams->deterministicRefPrefix = !!value; + return (size_t)CCtxParams->deterministicRefPrefix; + + case ZSTD_c_prefetchCDictTables: + BOUNDCHECK(ZSTD_c_prefetchCDictTables, value); + CCtxParams->prefetchCDictTables = (ZSTD_paramSwitch_e)value; + return CCtxParams->prefetchCDictTables; + + case ZSTD_c_enableSeqProducerFallback: + BOUNDCHECK(ZSTD_c_enableSeqProducerFallback, value); + CCtxParams->enableMatchFinderFallback = value; + return (size_t)CCtxParams->enableMatchFinderFallback; + + case ZSTD_c_maxBlockSize: + if (value!=0) /* 0 ==> default */ + BOUNDCHECK(ZSTD_c_maxBlockSize, value); + CCtxParams->maxBlockSize = value; + return CCtxParams->maxBlockSize; + + case ZSTD_c_searchForExternalRepcodes: + BOUNDCHECK(ZSTD_c_searchForExternalRepcodes, value); + CCtxParams->searchForExternalRepcodes = (ZSTD_paramSwitch_e)value; + return CCtxParams->searchForExternalRepcodes; default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); } } -size_t ZSTD_CCtx_getParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int* value) +size_t ZSTD_CCtx_getParameter(ZSTD_CCtx const* cctx, ZSTD_cParameter param, int* value) { return ZSTD_CCtxParams_getParameter(&cctx->requestedParams, param, value); } size_t ZSTD_CCtxParams_getParameter( - ZSTD_CCtx_params* CCtxParams, ZSTD_cParameter param, int* value) + ZSTD_CCtx_params const* CCtxParams, ZSTD_cParameter param, int* value) { switch(param) { @@ -797,6 +1099,9 @@ size_t ZSTD_CCtxParams_getParameter( *value = CCtxParams->rsyncable; break; #endif + case ZSTD_c_enableDedicatedDictSearch : + *value = CCtxParams->enableDedicatedDictSearch; + break; case ZSTD_c_enableLongDistanceMatching : *value = CCtxParams->ldmParams.enableLdm; break; @@ -818,6 +1123,39 @@ size_t ZSTD_CCtxParams_getParameter( case ZSTD_c_srcSizeHint : *value = (int)CCtxParams->srcSizeHint; break; + case ZSTD_c_stableInBuffer : + *value = (int)CCtxParams->inBufferMode; + break; + case ZSTD_c_stableOutBuffer : + *value = (int)CCtxParams->outBufferMode; + break; + case ZSTD_c_blockDelimiters : + *value = (int)CCtxParams->blockDelimiters; + break; + case ZSTD_c_validateSequences : + *value = (int)CCtxParams->validateSequences; + break; + case ZSTD_c_useBlockSplitter : + *value = (int)CCtxParams->useBlockSplitter; + break; + case ZSTD_c_useRowMatchFinder : + *value = (int)CCtxParams->useRowMatchFinder; + break; + case ZSTD_c_deterministicRefPrefix: + *value = (int)CCtxParams->deterministicRefPrefix; + break; + case ZSTD_c_prefetchCDictTables: + *value = (int)CCtxParams->prefetchCDictTables; + break; + case ZSTD_c_enableSeqProducerFallback: + *value = CCtxParams->enableMatchFinderFallback; + break; + case ZSTD_c_maxBlockSize: + *value = (int)CCtxParams->maxBlockSize; + break; + case ZSTD_c_searchForExternalRepcodes: + *value = (int)CCtxParams->searchForExternalRepcodes; + break; default: RETURN_ERROR(parameter_unsupported, "unknown parameter"); } return 0; @@ -844,25 +1182,69 @@ size_t ZSTD_CCtx_setParametersUsingCCtxParams( return 0; } -ZSTDLIB_API size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize) +size_t ZSTD_CCtx_setCParams(ZSTD_CCtx* cctx, ZSTD_compressionParameters cparams) +{ + ZSTD_STATIC_ASSERT(sizeof(cparams) == 7 * 4 /* all params are listed below */); + DEBUGLOG(4, "ZSTD_CCtx_setCParams"); + /* only update if all parameters are valid */ + FORWARD_IF_ERROR(ZSTD_checkCParams(cparams), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_windowLog, cparams.windowLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_chainLog, cparams.chainLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_hashLog, cparams.hashLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_searchLog, cparams.searchLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_minMatch, cparams.minMatch), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_targetLength, cparams.targetLength), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_strategy, cparams.strategy), ""); + return 0; +} + +size_t ZSTD_CCtx_setFParams(ZSTD_CCtx* cctx, ZSTD_frameParameters fparams) +{ + ZSTD_STATIC_ASSERT(sizeof(fparams) == 3 * 4 /* all params are listed below */); + DEBUGLOG(4, "ZSTD_CCtx_setFParams"); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_contentSizeFlag, fparams.contentSizeFlag != 0), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_checksumFlag, fparams.checksumFlag != 0), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(cctx, ZSTD_c_dictIDFlag, fparams.noDictIDFlag == 0), ""); + return 0; +} + +size_t ZSTD_CCtx_setParams(ZSTD_CCtx* cctx, ZSTD_parameters params) +{ + DEBUGLOG(4, "ZSTD_CCtx_setParams"); + /* First check cParams, because we want to update all or none. */ + FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); + /* Next set fParams, because this could fail if the cctx isn't in init stage. */ + FORWARD_IF_ERROR(ZSTD_CCtx_setFParams(cctx, params.fParams), ""); + /* Finally set cParams, which should succeed. */ + FORWARD_IF_ERROR(ZSTD_CCtx_setCParams(cctx, params.cParams), ""); + return 0; +} + +size_t ZSTD_CCtx_setPledgedSrcSize(ZSTD_CCtx* cctx, unsigned long long pledgedSrcSize) { - DEBUGLOG(4, "ZSTD_CCtx_setPledgedSrcSize to %u bytes", (U32)pledgedSrcSize); + DEBUGLOG(4, "ZSTD_CCtx_setPledgedSrcSize to %llu bytes", pledgedSrcSize); RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, "Can't set pledgedSrcSize when not in init stage."); cctx->pledgedSrcSizePlusOne = pledgedSrcSize+1; return 0; } +static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams( + int const compressionLevel, + size_t const dictSize); +static int ZSTD_dedicatedDictSearch_isSupported( + const ZSTD_compressionParameters* cParams); +static void ZSTD_dedicatedDictSearch_revertCParams( + ZSTD_compressionParameters* cParams); + /** - * Initializes the local dict using the requested parameters. - * NOTE: This does not use the pledged src size, because it may be used for more - * than one compression. + * Initializes the local dictionary using requested parameters. + * NOTE: Initialization does not employ the pledged src size, + * because the dictionary may be used for multiple compressions. */ static size_t ZSTD_initLocalDict(ZSTD_CCtx* cctx) { ZSTD_localDict* const dl = &cctx->localDict; - ZSTD_compressionParameters const cParams = ZSTD_getCParamsFromCCtxParams( - &cctx->requestedParams, ZSTD_CONTENTSIZE_UNKNOWN, dl->dictSize); if (dl->dict == NULL) { /* No local dictionary. */ assert(dl->dictBuffer == NULL); @@ -871,20 +1253,20 @@ static size_t ZSTD_initLocalDict(ZSTD_CCtx* cctx) return 0; } if (dl->cdict != NULL) { - assert(cctx->cdict == dl->cdict); /* Local dictionary already initialized. */ + assert(cctx->cdict == dl->cdict); return 0; } assert(dl->dictSize > 0); assert(cctx->cdict == NULL); assert(cctx->prefixDict.dict == NULL); - dl->cdict = ZSTD_createCDict_advanced( + dl->cdict = ZSTD_createCDict_advanced2( dl->dict, dl->dictSize, ZSTD_dlm_byRef, dl->dictContentType, - cParams, + &cctx->requestedParams, cctx->customMem); RETURN_ERROR_IF(!dl->cdict, memory_allocation, "ZSTD_createCDict_advanced failed"); cctx->cdict = dl->cdict; @@ -892,39 +1274,44 @@ static size_t ZSTD_initLocalDict(ZSTD_CCtx* cctx) } size_t ZSTD_CCtx_loadDictionary_advanced( - ZSTD_CCtx* cctx, const void* dict, size_t dictSize, - ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType) + ZSTD_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType) { - RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, - "Can't load a dictionary when ctx is not in init stage."); - RETURN_ERROR_IF(cctx->staticSize, memory_allocation, - "no malloc for static CCtx"); DEBUGLOG(4, "ZSTD_CCtx_loadDictionary_advanced (size: %u)", (U32)dictSize); - ZSTD_clearAllDicts(cctx); /* in case one already exists */ - if (dict == NULL || dictSize == 0) /* no dictionary mode */ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't load a dictionary when cctx is not in init stage."); + ZSTD_clearAllDicts(cctx); /* erase any previously set dictionary */ + if (dict == NULL || dictSize == 0) /* no dictionary */ return 0; if (dictLoadMethod == ZSTD_dlm_byRef) { cctx->localDict.dict = dict; } else { - void* dictBuffer = ZSTD_malloc(dictSize, cctx->customMem); - RETURN_ERROR_IF(!dictBuffer, memory_allocation, "NULL pointer!"); - memcpy(dictBuffer, dict, dictSize); - cctx->localDict.dictBuffer = dictBuffer; - cctx->localDict.dict = dictBuffer; + /* copy dictionary content inside CCtx to own its lifetime */ + void* dictBuffer; + RETURN_ERROR_IF(cctx->staticSize, memory_allocation, + "static CCtx can't allocate for an internal copy of dictionary"); + dictBuffer = ZSTD_customMalloc(dictSize, cctx->customMem); + RETURN_ERROR_IF(dictBuffer==NULL, memory_allocation, + "allocation failed for dictionary content"); + ZSTD_memcpy(dictBuffer, dict, dictSize); + cctx->localDict.dictBuffer = dictBuffer; /* owned ptr to free */ + cctx->localDict.dict = dictBuffer; /* read-only reference */ } cctx->localDict.dictSize = dictSize; cctx->localDict.dictContentType = dictContentType; return 0; } -ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary_byReference( +size_t ZSTD_CCtx_loadDictionary_byReference( ZSTD_CCtx* cctx, const void* dict, size_t dictSize) { return ZSTD_CCtx_loadDictionary_advanced( cctx, dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto); } -ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, size_t dictSize) +size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, size_t dictSize) { return ZSTD_CCtx_loadDictionary_advanced( cctx, dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto); @@ -941,6 +1328,14 @@ size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) return 0; } +size_t ZSTD_CCtx_refThreadPool(ZSTD_CCtx* cctx, ZSTD_threadPool* pool) +{ + RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, + "Can't ref a pool when ctx not in init stage."); + cctx->pool = pool; + return 0; +} + size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize) { return ZSTD_CCtx_refPrefix_advanced(cctx, prefix, prefixSize, ZSTD_dct_rawContent); @@ -972,7 +1367,7 @@ size_t ZSTD_CCtx_reset(ZSTD_CCtx* cctx, ZSTD_ResetDirective reset) if ( (reset == ZSTD_reset_parameters) || (reset == ZSTD_reset_session_and_parameters) ) { RETURN_ERROR_IF(cctx->streamStage != zcss_init, stage_wrong, - "Can't reset parameters only when not in init stage."); + "Reset parameters is only possible during init stage."); ZSTD_clearAllDicts(cctx); return ZSTD_CCtxParams_reset(&cctx->requestedParams); } @@ -1001,11 +1396,12 @@ size_t ZSTD_checkCParams(ZSTD_compressionParameters cParams) static ZSTD_compressionParameters ZSTD_clampCParams(ZSTD_compressionParameters cParams) { -# define CLAMP_TYPE(cParam, val, type) { \ - ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); \ - if ((int)valbounds.upperBound) val=(type)bounds.upperBound; \ - } +# define CLAMP_TYPE(cParam, val, type) \ + do { \ + ZSTD_bounds const bounds = ZSTD_cParam_getBounds(cParam); \ + if ((int)valbounds.upperBound) val=(type)bounds.upperBound; \ + } while (0) # define CLAMP(cParam, val) CLAMP_TYPE(cParam, val, unsigned) CLAMP(ZSTD_c_windowLog, cParams.windowLog); CLAMP(ZSTD_c_chainLog, cParams.chainLog); @@ -1025,42 +1421,183 @@ U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat) return hashLog - btScale; } +/** ZSTD_dictAndWindowLog() : + * Returns an adjusted window log that is large enough to fit the source and the dictionary. + * The zstd format says that the entire dictionary is valid if one byte of the dictionary + * is within the window. So the hashLog and chainLog should be large enough to reference both + * the dictionary and the window. So we must use this adjusted dictAndWindowLog when downsizing + * the hashLog and windowLog. + * NOTE: srcSize must not be ZSTD_CONTENTSIZE_UNKNOWN. + */ +static U32 ZSTD_dictAndWindowLog(U32 windowLog, U64 srcSize, U64 dictSize) +{ + const U64 maxWindowSize = 1ULL << ZSTD_WINDOWLOG_MAX; + /* No dictionary ==> No change */ + if (dictSize == 0) { + return windowLog; + } + assert(windowLog <= ZSTD_WINDOWLOG_MAX); + assert(srcSize != ZSTD_CONTENTSIZE_UNKNOWN); /* Handled in ZSTD_adjustCParams_internal() */ + { + U64 const windowSize = 1ULL << windowLog; + U64 const dictAndWindowSize = dictSize + windowSize; + /* If the window size is already large enough to fit both the source and the dictionary + * then just use the window size. Otherwise adjust so that it fits the dictionary and + * the window. + */ + if (windowSize >= dictSize + srcSize) { + return windowLog; /* Window size large enough already */ + } else if (dictAndWindowSize >= maxWindowSize) { + return ZSTD_WINDOWLOG_MAX; /* Larger than max window log */ + } else { + return ZSTD_highbit32((U32)dictAndWindowSize - 1) + 1; + } + } +} + /** ZSTD_adjustCParams_internal() : * optimize `cPar` for a specified input (`srcSize` and `dictSize`). * mostly downsize to reduce memory consumption and initialization latency. * `srcSize` can be ZSTD_CONTENTSIZE_UNKNOWN when not known. + * `mode` is the mode for parameter adjustment. See docs for `ZSTD_cParamMode_e`. * note : `srcSize==0` means 0! * condition : cPar is presumed validated (can be checked using ZSTD_checkCParams()). */ static ZSTD_compressionParameters ZSTD_adjustCParams_internal(ZSTD_compressionParameters cPar, unsigned long long srcSize, - size_t dictSize) + size_t dictSize, + ZSTD_cParamMode_e mode, + ZSTD_paramSwitch_e useRowMatchFinder) { - static const U64 minSrcSize = 513; /* (1<<9) + 1 */ - static const U64 maxWindowResize = 1ULL << (ZSTD_WINDOWLOG_MAX-1); + const U64 minSrcSize = 513; /* (1<<9) + 1 */ + const U64 maxWindowResize = 1ULL << (ZSTD_WINDOWLOG_MAX-1); assert(ZSTD_checkCParams(cPar)==0); - if (dictSize && srcSize == ZSTD_CONTENTSIZE_UNKNOWN) - srcSize = minSrcSize; + /* Cascade the selected strategy down to the next-highest one built into + * this binary. */ +#ifdef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_btultra2) { + cPar.strategy = ZSTD_btultra; + } + if (cPar.strategy == ZSTD_btultra) { + cPar.strategy = ZSTD_btopt; + } +#endif +#ifdef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_btopt) { + cPar.strategy = ZSTD_btlazy2; + } +#endif +#ifdef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_btlazy2) { + cPar.strategy = ZSTD_lazy2; + } +#endif +#ifdef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_lazy2) { + cPar.strategy = ZSTD_lazy; + } +#endif +#ifdef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_lazy) { + cPar.strategy = ZSTD_greedy; + } +#endif +#ifdef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_greedy) { + cPar.strategy = ZSTD_dfast; + } +#endif +#ifdef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + if (cPar.strategy == ZSTD_dfast) { + cPar.strategy = ZSTD_fast; + cPar.targetLength = 0; + } +#endif + + switch (mode) { + case ZSTD_cpm_unknown: + case ZSTD_cpm_noAttachDict: + /* If we don't know the source size, don't make any + * assumptions about it. We will already have selected + * smaller parameters if a dictionary is in use. + */ + break; + case ZSTD_cpm_createCDict: + /* Assume a small source size when creating a dictionary + * with an unknown source size. + */ + if (dictSize && srcSize == ZSTD_CONTENTSIZE_UNKNOWN) + srcSize = minSrcSize; + break; + case ZSTD_cpm_attachDict: + /* Dictionary has its own dedicated parameters which have + * already been selected. We are selecting parameters + * for only the source. + */ + dictSize = 0; + break; + default: + assert(0); + break; + } /* resize windowLog if input is small enough, to use less memory */ - if ( (srcSize < maxWindowResize) - && (dictSize < maxWindowResize) ) { + if ( (srcSize <= maxWindowResize) + && (dictSize <= maxWindowResize) ) { U32 const tSize = (U32)(srcSize + dictSize); static U32 const hashSizeMin = 1 << ZSTD_HASHLOG_MIN; U32 const srcLog = (tSize < hashSizeMin) ? ZSTD_HASHLOG_MIN : ZSTD_highbit32(tSize-1) + 1; if (cPar.windowLog > srcLog) cPar.windowLog = srcLog; } - if (cPar.hashLog > cPar.windowLog+1) cPar.hashLog = cPar.windowLog+1; - { U32 const cycleLog = ZSTD_cycleLog(cPar.chainLog, cPar.strategy); - if (cycleLog > cPar.windowLog) - cPar.chainLog -= (cycleLog - cPar.windowLog); + if (srcSize != ZSTD_CONTENTSIZE_UNKNOWN) { + U32 const dictAndWindowLog = ZSTD_dictAndWindowLog(cPar.windowLog, (U64)srcSize, (U64)dictSize); + U32 const cycleLog = ZSTD_cycleLog(cPar.chainLog, cPar.strategy); + if (cPar.hashLog > dictAndWindowLog+1) cPar.hashLog = dictAndWindowLog+1; + if (cycleLog > dictAndWindowLog) + cPar.chainLog -= (cycleLog - dictAndWindowLog); } if (cPar.windowLog < ZSTD_WINDOWLOG_ABSOLUTEMIN) cPar.windowLog = ZSTD_WINDOWLOG_ABSOLUTEMIN; /* minimum wlog required for valid frame header */ + /* We can't use more than 32 bits of hash in total, so that means that we require: + * (hashLog + 8) <= 32 && (chainLog + 8) <= 32 + */ + if (mode == ZSTD_cpm_createCDict && ZSTD_CDictIndicesAreTagged(&cPar)) { + U32 const maxShortCacheHashLog = 32 - ZSTD_SHORT_CACHE_TAG_BITS; + if (cPar.hashLog > maxShortCacheHashLog) { + cPar.hashLog = maxShortCacheHashLog; + } + if (cPar.chainLog > maxShortCacheHashLog) { + cPar.chainLog = maxShortCacheHashLog; + } + } + + + /* At this point, we aren't 100% sure if we are using the row match finder. + * Unless it is explicitly disabled, conservatively assume that it is enabled. + * In this case it will only be disabled for small sources, so shrinking the + * hash log a little bit shouldn't result in any ratio loss. + */ + if (useRowMatchFinder == ZSTD_ps_auto) + useRowMatchFinder = ZSTD_ps_enable; + + /* We can't hash more than 32-bits in total. So that means that we require: + * (hashLog - rowLog + 8) <= 32 + */ + if (ZSTD_rowMatchFinderUsed(cPar.strategy, useRowMatchFinder)) { + /* Switch to 32-entry rows if searchLog is 5 (or more) */ + U32 const rowLog = BOUNDED(4, cPar.searchLog, 6); + U32 const maxRowHashLog = 32 - ZSTD_ROW_HASH_TAG_BITS; + U32 const maxHashLog = maxRowHashLog + rowLog; + assert(cPar.hashLog >= rowLog); + if (cPar.hashLog > maxHashLog) { + cPar.hashLog = maxHashLog; + } + } + return cPar; } @@ -1071,38 +1608,50 @@ ZSTD_adjustCParams(ZSTD_compressionParameters cPar, { cPar = ZSTD_clampCParams(cPar); /* resulting cPar is necessarily valid (all parameters within range) */ if (srcSize == 0) srcSize = ZSTD_CONTENTSIZE_UNKNOWN; - return ZSTD_adjustCParams_internal(cPar, srcSize, dictSize); + return ZSTD_adjustCParams_internal(cPar, srcSize, dictSize, ZSTD_cpm_unknown, ZSTD_ps_auto); } -static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize); -static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize); +static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); +static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); + +static void ZSTD_overrideCParams( + ZSTD_compressionParameters* cParams, + const ZSTD_compressionParameters* overrides) +{ + if (overrides->windowLog) cParams->windowLog = overrides->windowLog; + if (overrides->hashLog) cParams->hashLog = overrides->hashLog; + if (overrides->chainLog) cParams->chainLog = overrides->chainLog; + if (overrides->searchLog) cParams->searchLog = overrides->searchLog; + if (overrides->minMatch) cParams->minMatch = overrides->minMatch; + if (overrides->targetLength) cParams->targetLength = overrides->targetLength; + if (overrides->strategy) cParams->strategy = overrides->strategy; +} ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams( - const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize) + const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) { ZSTD_compressionParameters cParams; if (srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN && CCtxParams->srcSizeHint > 0) { srcSizeHint = CCtxParams->srcSizeHint; } - cParams = ZSTD_getCParams_internal(CCtxParams->compressionLevel, srcSizeHint, dictSize); - if (CCtxParams->ldmParams.enableLdm) cParams.windowLog = ZSTD_LDM_DEFAULT_WINDOW_LOG; - if (CCtxParams->cParams.windowLog) cParams.windowLog = CCtxParams->cParams.windowLog; - if (CCtxParams->cParams.hashLog) cParams.hashLog = CCtxParams->cParams.hashLog; - if (CCtxParams->cParams.chainLog) cParams.chainLog = CCtxParams->cParams.chainLog; - if (CCtxParams->cParams.searchLog) cParams.searchLog = CCtxParams->cParams.searchLog; - if (CCtxParams->cParams.minMatch) cParams.minMatch = CCtxParams->cParams.minMatch; - if (CCtxParams->cParams.targetLength) cParams.targetLength = CCtxParams->cParams.targetLength; - if (CCtxParams->cParams.strategy) cParams.strategy = CCtxParams->cParams.strategy; + cParams = ZSTD_getCParams_internal(CCtxParams->compressionLevel, srcSizeHint, dictSize, mode); + if (CCtxParams->ldmParams.enableLdm == ZSTD_ps_enable) cParams.windowLog = ZSTD_LDM_DEFAULT_WINDOW_LOG; + ZSTD_overrideCParams(&cParams, &CCtxParams->cParams); assert(!ZSTD_checkCParams(cParams)); /* srcSizeHint == 0 means 0 */ - return ZSTD_adjustCParams_internal(cParams, srcSizeHint, dictSize); + return ZSTD_adjustCParams_internal(cParams, srcSizeHint, dictSize, mode, CCtxParams->useRowMatchFinder); } static size_t ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams, + const ZSTD_paramSwitch_e useRowMatchFinder, + const U32 enableDedicatedDictSearch, const U32 forCCtx) { - size_t const chainSize = (cParams->strategy == ZSTD_fast) ? 0 : ((size_t)1 << cParams->chainLog); + /* chain table size should be 0 for fast or row-hash strategies */ + size_t const chainSize = ZSTD_allocateChainTable(cParams->strategy, useRowMatchFinder, enableDedicatedDictSearch && !forCCtx) + ? ((size_t)1 << cParams->chainLog) + : 0; size_t const hSize = ((size_t)1) << cParams->hashLog; U32 const hashLog3 = (forCCtx && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0; size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0; @@ -1112,71 +1661,131 @@ ZSTD_sizeof_matchState(const ZSTD_compressionParameters* const cParams, + hSize * sizeof(U32) + h3Size * sizeof(U32); size_t const optPotentialSpace = - ZSTD_cwksp_alloc_size((MaxML+1) * sizeof(U32)) - + ZSTD_cwksp_alloc_size((MaxLL+1) * sizeof(U32)) - + ZSTD_cwksp_alloc_size((MaxOff+1) * sizeof(U32)) - + ZSTD_cwksp_alloc_size((1<strategy, useRowMatchFinder) + ? ZSTD_cwksp_aligned_alloc_size(hSize) + : 0; size_t const optSpace = (forCCtx && (cParams->strategy >= ZSTD_btopt)) ? optPotentialSpace : 0; + size_t const slackSpace = ZSTD_cwksp_slack_space_required(); + + /* tables are guaranteed to be sized in multiples of 64 bytes (or 16 uint32_t) */ + ZSTD_STATIC_ASSERT(ZSTD_HASHLOG_MIN >= 4 && ZSTD_WINDOWLOG_MIN >= 4 && ZSTD_CHAINLOG_MIN >= 4); + assert(useRowMatchFinder != ZSTD_ps_auto); + DEBUGLOG(4, "chainSize: %u - hSize: %u - h3Size: %u", (U32)chainSize, (U32)hSize, (U32)h3Size); - return tableSpace + optSpace; + return tableSpace + optSpace + slackSpace + lazyAdditionalSpace; +} + +/* Helper function for calculating memory requirements. + * Gives a tighter bound than ZSTD_sequenceBound() by taking minMatch into account. */ +static size_t ZSTD_maxNbSeq(size_t blockSize, unsigned minMatch, int useSequenceProducer) { + U32 const divider = (minMatch==3 || useSequenceProducer) ? 3 : 4; + return blockSize / divider; +} + +static size_t ZSTD_estimateCCtxSize_usingCCtxParams_internal( + const ZSTD_compressionParameters* cParams, + const ldmParams_t* ldmParams, + const int isStatic, + const ZSTD_paramSwitch_e useRowMatchFinder, + const size_t buffInSize, + const size_t buffOutSize, + const U64 pledgedSrcSize, + int useSequenceProducer, + size_t maxBlockSize) +{ + size_t const windowSize = (size_t) BOUNDED(1ULL, 1ULL << cParams->windowLog, pledgedSrcSize); + size_t const blockSize = MIN(ZSTD_resolveMaxBlockSize(maxBlockSize), windowSize); + size_t const maxNbSeq = ZSTD_maxNbSeq(blockSize, cParams->minMatch, useSequenceProducer); + size_t const tokenSpace = ZSTD_cwksp_alloc_size(WILDCOPY_OVERLENGTH + blockSize) + + ZSTD_cwksp_aligned_alloc_size(maxNbSeq * sizeof(seqDef)) + + 3 * ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(BYTE)); + size_t const entropySpace = ZSTD_cwksp_alloc_size(ENTROPY_WORKSPACE_SIZE); + size_t const blockStateSpace = 2 * ZSTD_cwksp_alloc_size(sizeof(ZSTD_compressedBlockState_t)); + size_t const matchStateSize = ZSTD_sizeof_matchState(cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 0, /* forCCtx */ 1); + + size_t const ldmSpace = ZSTD_ldm_getTableSize(*ldmParams); + size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(*ldmParams, blockSize); + size_t const ldmSeqSpace = ldmParams->enableLdm == ZSTD_ps_enable ? + ZSTD_cwksp_aligned_alloc_size(maxNbLdmSeq * sizeof(rawSeq)) : 0; + + + size_t const bufferSpace = ZSTD_cwksp_alloc_size(buffInSize) + + ZSTD_cwksp_alloc_size(buffOutSize); + + size_t const cctxSpace = isStatic ? ZSTD_cwksp_alloc_size(sizeof(ZSTD_CCtx)) : 0; + + size_t const maxNbExternalSeq = ZSTD_sequenceBound(blockSize); + size_t const externalSeqSpace = useSequenceProducer + ? ZSTD_cwksp_aligned_alloc_size(maxNbExternalSeq * sizeof(ZSTD_Sequence)) + : 0; + + size_t const neededSpace = + cctxSpace + + entropySpace + + blockStateSpace + + ldmSpace + + ldmSeqSpace + + matchStateSize + + tokenSpace + + bufferSpace + + externalSeqSpace; + + DEBUGLOG(5, "estimate workspace : %u", (U32)neededSpace); + return neededSpace; } size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params) { - RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only."); - { ZSTD_compressionParameters const cParams = - ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0); - size_t const blockSize = MIN(ZSTD_BLOCKSIZE_MAX, (size_t)1 << cParams.windowLog); - U32 const divider = (cParams.minMatch==3) ? 3 : 4; - size_t const maxNbSeq = blockSize / divider; - size_t const tokenSpace = ZSTD_cwksp_alloc_size(WILDCOPY_OVERLENGTH + blockSize) - + ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(seqDef)) - + 3 * ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(BYTE)); - size_t const entropySpace = ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE); - size_t const blockStateSpace = 2 * ZSTD_cwksp_alloc_size(sizeof(ZSTD_compressedBlockState_t)); - size_t const matchStateSize = ZSTD_sizeof_matchState(&cParams, /* forCCtx */ 1); - - size_t const ldmSpace = ZSTD_ldm_getTableSize(params->ldmParams); - size_t const ldmSeqSpace = ZSTD_cwksp_alloc_size(ZSTD_ldm_getMaxNbSeq(params->ldmParams, blockSize) * sizeof(rawSeq)); - - /* estimateCCtxSize is for one-shot compression. So no buffers should - * be needed. However, we still allocate two 0-sized buffers, which can - * take space under ASAN. */ - size_t const bufferSpace = ZSTD_cwksp_alloc_size(0) - + ZSTD_cwksp_alloc_size(0); - - size_t const cctxSpace = ZSTD_cwksp_alloc_size(sizeof(ZSTD_CCtx)); - - size_t const neededSpace = - cctxSpace + - entropySpace + - blockStateSpace + - ldmSpace + - ldmSeqSpace + - matchStateSize + - tokenSpace + - bufferSpace; + ZSTD_compressionParameters const cParams = + ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, + &cParams); - DEBUGLOG(5, "estimate workspace : %u", (U32)neededSpace); - return neededSpace; - } + RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only."); + /* estimateCCtxSize is for one-shot compression. So no buffers should + * be needed. However, we still allocate two 0-sized buffers, which can + * take space under ASAN. */ + return ZSTD_estimateCCtxSize_usingCCtxParams_internal( + &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, 0, 0, ZSTD_CONTENTSIZE_UNKNOWN, ZSTD_hasExtSeqProd(params), params->maxBlockSize); } size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams) { - ZSTD_CCtx_params const params = ZSTD_makeCCtxParamsFromCParams(cParams); - return ZSTD_estimateCCtxSize_usingCCtxParams(¶ms); + ZSTD_CCtx_params initialParams = ZSTD_makeCCtxParamsFromCParams(cParams); + if (ZSTD_rowMatchFinderSupported(cParams.strategy)) { + /* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */ + size_t noRowCCtxSize; + size_t rowCCtxSize; + initialParams.useRowMatchFinder = ZSTD_ps_disable; + noRowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + initialParams.useRowMatchFinder = ZSTD_ps_enable; + rowCCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + return MAX(noRowCCtxSize, rowCCtxSize); + } else { + return ZSTD_estimateCCtxSize_usingCCtxParams(&initialParams); + } } static size_t ZSTD_estimateCCtxSize_internal(int compressionLevel) { - ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, 0); - return ZSTD_estimateCCtxSize_usingCParams(cParams); + int tier = 0; + size_t largestSize = 0; + static const unsigned long long srcSizeTiers[4] = {16 KB, 128 KB, 256 KB, ZSTD_CONTENTSIZE_UNKNOWN}; + for (; tier < 4; ++tier) { + /* Choose the set of cParams for a given level across all srcSizes that give the largest cctxSize */ + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, srcSizeTiers[tier], 0, ZSTD_cpm_noAttachDict); + largestSize = MAX(ZSTD_estimateCCtxSize_usingCParams(cParams), largestSize); + } + return largestSize; } size_t ZSTD_estimateCCtxSize(int compressionLevel) @@ -1184,6 +1793,7 @@ size_t ZSTD_estimateCCtxSize(int compressionLevel) int level; size_t memBudget = 0; for (level=MIN(compressionLevel, 1); level<=compressionLevel; level++) { + /* Ensure monotonically increasing memory usage as compression level increases */ size_t const newMB = ZSTD_estimateCCtxSize_internal(level); if (newMB > memBudget) memBudget = newMB; } @@ -1194,27 +1804,42 @@ size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params) { RETURN_ERROR_IF(params->nbWorkers > 0, GENERIC, "Estimate CCtx size is supported for single-threaded compression only."); { ZSTD_compressionParameters const cParams = - ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0); - size_t const CCtxSize = ZSTD_estimateCCtxSize_usingCCtxParams(params); - size_t const blockSize = MIN(ZSTD_BLOCKSIZE_MAX, (size_t)1 << cParams.windowLog); - size_t const inBuffSize = ((size_t)1 << cParams.windowLog) + blockSize; - size_t const outBuffSize = ZSTD_compressBound(blockSize) + 1; - size_t const streamingSize = ZSTD_cwksp_alloc_size(inBuffSize) - + ZSTD_cwksp_alloc_size(outBuffSize); - - return CCtxSize + streamingSize; + ZSTD_getCParamsFromCCtxParams(params, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + size_t const blockSize = MIN(ZSTD_resolveMaxBlockSize(params->maxBlockSize), (size_t)1 << cParams.windowLog); + size_t const inBuffSize = (params->inBufferMode == ZSTD_bm_buffered) + ? ((size_t)1 << cParams.windowLog) + blockSize + : 0; + size_t const outBuffSize = (params->outBufferMode == ZSTD_bm_buffered) + ? ZSTD_compressBound(blockSize) + 1 + : 0; + ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params->useRowMatchFinder, ¶ms->cParams); + + return ZSTD_estimateCCtxSize_usingCCtxParams_internal( + &cParams, ¶ms->ldmParams, 1, useRowMatchFinder, inBuffSize, outBuffSize, + ZSTD_CONTENTSIZE_UNKNOWN, ZSTD_hasExtSeqProd(params), params->maxBlockSize); } } size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams) { - ZSTD_CCtx_params const params = ZSTD_makeCCtxParamsFromCParams(cParams); - return ZSTD_estimateCStreamSize_usingCCtxParams(¶ms); + ZSTD_CCtx_params initialParams = ZSTD_makeCCtxParamsFromCParams(cParams); + if (ZSTD_rowMatchFinderSupported(cParams.strategy)) { + /* Pick bigger of not using and using row-based matchfinder for greedy and lazy strategies */ + size_t noRowCCtxSize; + size_t rowCCtxSize; + initialParams.useRowMatchFinder = ZSTD_ps_disable; + noRowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + initialParams.useRowMatchFinder = ZSTD_ps_enable; + rowCCtxSize = ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + return MAX(noRowCCtxSize, rowCCtxSize); + } else { + return ZSTD_estimateCStreamSize_usingCCtxParams(&initialParams); + } } static size_t ZSTD_estimateCStreamSize_internal(int compressionLevel) { - ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, 0); + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); return ZSTD_estimateCStreamSize_usingCParams(cParams); } @@ -1286,7 +1911,7 @@ void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs) { int i; for (i = 0; i < ZSTD_REP_NUM; ++i) - bs->rep[i] = ZSTDInternalConstants::repStartValue[i]; + bs->rep[i] = repStartValue[i]; bs->entropy.huf.repeatMode = HUF_repeat_none; bs->entropy.fse.offcode_repeatMode = FSE_repeat_none; bs->entropy.fse.matchlength_repeatMode = FSE_repeat_none; @@ -1307,16 +1932,6 @@ static void ZSTD_invalidateMatchState(ZSTD_matchState_t* ms) ms->dictMatchState = NULL; } -/** - * Indicates whether this compression proceeds directly from user-provided - * source buffer to user-provided destination buffer (ZSTDb_not_buffered), or - * whether the context needs to buffer the input/output (ZSTDb_buffered). - */ -typedef enum { - ZSTDb_not_buffered, - ZSTDb_buffered -} ZSTD_buffered_policy_e; - /** * Controls, for this matchState reset, whether the tables need to be cleared / * prepared for the coming compression (ZSTDcrp_makeClean), or whether the @@ -1344,26 +1959,47 @@ typedef enum { ZSTD_resetTarget_CCtx } ZSTD_resetTarget_e; +/* Mixes bits in a 64 bits in a value, based on XXH3_rrmxmx */ +static U64 ZSTD_bitmix(U64 val, U64 len) { + val ^= ZSTD_rotateRight_U64(val, 49) ^ ZSTD_rotateRight_U64(val, 24); + val *= 0x9FB21C651E98DF25ULL; + val ^= (val >> 35) + len ; + val *= 0x9FB21C651E98DF25ULL; + return val ^ (val >> 28); +} + +/* Mixes in the hashSalt and hashSaltEntropy to create a new hashSalt */ +static void ZSTD_advanceHashSalt(ZSTD_matchState_t* ms) { + ms->hashSalt = ZSTD_bitmix(ms->hashSalt, 8) ^ ZSTD_bitmix((U64) ms->hashSaltEntropy, 4); +} + static size_t ZSTD_reset_matchState(ZSTD_matchState_t* ms, ZSTD_cwksp* ws, const ZSTD_compressionParameters* cParams, + const ZSTD_paramSwitch_e useRowMatchFinder, const ZSTD_compResetPolicy_e crp, const ZSTD_indexResetPolicy_e forceResetIndex, const ZSTD_resetTarget_e forWho) { - size_t const chainSize = (cParams->strategy == ZSTD_fast) ? 0 : ((size_t)1 << cParams->chainLog); + /* disable chain table allocation for fast or row-based strategies */ + size_t const chainSize = ZSTD_allocateChainTable(cParams->strategy, useRowMatchFinder, + ms->dedicatedDictSearch && (forWho == ZSTD_resetTarget_CDict)) + ? ((size_t)1 << cParams->chainLog) + : 0; size_t const hSize = ((size_t)1) << cParams->hashLog; U32 const hashLog3 = ((forWho == ZSTD_resetTarget_CCtx) && cParams->minMatch==3) ? MIN(ZSTD_HASHLOG3_MAX, cParams->windowLog) : 0; size_t const h3Size = hashLog3 ? ((size_t)1) << hashLog3 : 0; DEBUGLOG(4, "reset indices : %u", forceResetIndex == ZSTDirp_reset); + assert(useRowMatchFinder != ZSTD_ps_auto); if (forceResetIndex == ZSTDirp_reset) { ZSTD_window_init(&ms->window); ZSTD_cwksp_mark_tables_dirty(ws); } ms->hashLog3 = hashLog3; + ms->lazySkipping = 0; ZSTD_invalidateMatchState(ms); @@ -1385,6 +2021,27 @@ ZSTD_reset_matchState(ZSTD_matchState_t* ms, ZSTD_cwksp_clean_tables(ws); } + if (ZSTD_rowMatchFinderUsed(cParams->strategy, useRowMatchFinder)) { + /* Row match finder needs an additional table of hashes ("tags") */ + size_t const tagTableSize = hSize; + /* We want to generate a new salt in case we reset a Cctx, but we always want to use + * 0 when we reset a Cdict */ + if(forWho == ZSTD_resetTarget_CCtx) { + ms->tagTable = (BYTE*) ZSTD_cwksp_reserve_aligned_init_once(ws, tagTableSize); + ZSTD_advanceHashSalt(ms); + } else { + /* When we are not salting we want to always memset the memory */ + ms->tagTable = (BYTE*) ZSTD_cwksp_reserve_aligned(ws, tagTableSize); + ZSTD_memset(ms->tagTable, 0, tagTableSize); + ms->hashSalt = 0; + } + { /* Switch to 32-entry rows if searchLog is 5 (or more) */ + U32 const rowLog = BOUNDED(4, cParams->searchLog, 6); + assert(cParams->hashLog >= rowLog); + ms->rowHashLog = cParams->hashLog - rowLog; + } + } + /* opt parser space */ if ((forWho == ZSTD_resetTarget_CCtx) && (cParams->strategy >= ZSTD_btopt)) { DEBUGLOG(4, "reserving optimal parser space"); @@ -1392,15 +2049,14 @@ ZSTD_reset_matchState(ZSTD_matchState_t* ms, ms->opt.litLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxLL+1) * sizeof(unsigned)); ms->opt.matchLengthFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxML+1) * sizeof(unsigned)); ms->opt.offCodeFreq = (unsigned*)ZSTD_cwksp_reserve_aligned(ws, (MaxOff+1) * sizeof(unsigned)); - ms->opt.matchTable = (ZSTD_match_t*)ZSTD_cwksp_reserve_aligned(ws, (ZSTD_OPT_NUM+1) * sizeof(ZSTD_match_t)); - ms->opt.priceTable = (ZSTD_optimal_t*)ZSTD_cwksp_reserve_aligned(ws, (ZSTD_OPT_NUM+1) * sizeof(ZSTD_optimal_t)); + ms->opt.matchTable = (ZSTD_match_t*)ZSTD_cwksp_reserve_aligned(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_match_t)); + ms->opt.priceTable = (ZSTD_optimal_t*)ZSTD_cwksp_reserve_aligned(ws, ZSTD_OPT_SIZE * sizeof(ZSTD_optimal_t)); } ms->cParams = *cParams; RETURN_ERROR_IF(ZSTD_cwksp_reserve_failed(ws), memory_allocation, "failed a workspace allocation in ZSTD_reset_matchState"); - return 0; } @@ -1417,75 +2073,86 @@ static int ZSTD_indexTooCloseToMax(ZSTD_window_t w) return (size_t)(w.nextSrc - w.base) > (ZSTD_CURRENT_MAX - ZSTD_INDEXOVERFLOW_MARGIN); } +/** ZSTD_dictTooBig(): + * When dictionaries are larger than ZSTD_CHUNKSIZE_MAX they can't be loaded in + * one go generically. So we ensure that in that case we reset the tables to zero, + * so that we can load as much of the dictionary as possible. + */ +static int ZSTD_dictTooBig(size_t const loadedDictSize) +{ + return loadedDictSize > ZSTD_CHUNKSIZE_MAX; +} + /*! ZSTD_resetCCtx_internal() : - note : `params` are assumed fully validated at this stage */ + * @param loadedDictSize The size of the dictionary to be loaded + * into the context, if any. If no dictionary is used, or the + * dictionary is being attached / copied, then pass 0. + * note : `params` are assumed fully validated at this stage. + */ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc, - ZSTD_CCtx_params params, + ZSTD_CCtx_params const* params, U64 const pledgedSrcSize, + size_t const loadedDictSize, ZSTD_compResetPolicy_e const crp, ZSTD_buffered_policy_e const zbuff) { ZSTD_cwksp* const ws = &zc->workspace; - DEBUGLOG(4, "ZSTD_resetCCtx_internal: pledgedSrcSize=%u, wlog=%u", - (U32)pledgedSrcSize, params.cParams.windowLog); - assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); + DEBUGLOG(4, "ZSTD_resetCCtx_internal: pledgedSrcSize=%u, wlog=%u, useRowMatchFinder=%d useBlockSplitter=%d", + (U32)pledgedSrcSize, params->cParams.windowLog, (int)params->useRowMatchFinder, (int)params->useBlockSplitter); + assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); zc->isFirstBlock = 1; - if (params.ldmParams.enableLdm) { + /* Set applied params early so we can modify them for LDM, + * and point params at the applied params. + */ + zc->appliedParams = *params; + params = &zc->appliedParams; + + assert(params->useRowMatchFinder != ZSTD_ps_auto); + assert(params->useBlockSplitter != ZSTD_ps_auto); + assert(params->ldmParams.enableLdm != ZSTD_ps_auto); + assert(params->maxBlockSize != 0); + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { /* Adjust long distance matching parameters */ - ZSTD_ldm_adjustParameters(¶ms.ldmParams, ¶ms.cParams); - assert(params.ldmParams.hashLog >= params.ldmParams.bucketSizeLog); - assert(params.ldmParams.hashRateLog < 32); - zc->ldmState.hashPower = ZSTD_rollingHash_primePower(params.ldmParams.minMatchLength); - } - - { size_t const windowSize = MAX(1, (size_t)MIN(((U64)1 << params.cParams.windowLog), pledgedSrcSize)); - size_t const blockSize = MIN(ZSTD_BLOCKSIZE_MAX, windowSize); - U32 const divider = (params.cParams.minMatch==3) ? 3 : 4; - size_t const maxNbSeq = blockSize / divider; - size_t const tokenSpace = ZSTD_cwksp_alloc_size(WILDCOPY_OVERLENGTH + blockSize) - + ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(seqDef)) - + 3 * ZSTD_cwksp_alloc_size(maxNbSeq * sizeof(BYTE)); - size_t const buffOutSize = (zbuff==ZSTDb_buffered) ? ZSTD_compressBound(blockSize)+1 : 0; - size_t const buffInSize = (zbuff==ZSTDb_buffered) ? windowSize + blockSize : 0; - size_t const matchStateSize = ZSTD_sizeof_matchState(¶ms.cParams, /* forCCtx */ 1); - size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(params.ldmParams, blockSize); - - ZSTD_indexResetPolicy_e needsIndexReset = zc->initialized ? ZSTDirp_continue : ZSTDirp_reset; - - if (ZSTD_indexTooCloseToMax(zc->blockState.matchState.window)) { - needsIndexReset = ZSTDirp_reset; - } + ZSTD_ldm_adjustParameters(&zc->appliedParams.ldmParams, ¶ms->cParams); + assert(params->ldmParams.hashLog >= params->ldmParams.bucketSizeLog); + assert(params->ldmParams.hashRateLog < 32); + } - if (!zc->staticSize) ZSTD_cwksp_bump_oversized_duration(ws, 0); + { size_t const windowSize = MAX(1, (size_t)MIN(((U64)1 << params->cParams.windowLog), pledgedSrcSize)); + size_t const blockSize = MIN(params->maxBlockSize, windowSize); + size_t const maxNbSeq = ZSTD_maxNbSeq(blockSize, params->cParams.minMatch, ZSTD_hasExtSeqProd(params)); + size_t const buffOutSize = (zbuff == ZSTDb_buffered && params->outBufferMode == ZSTD_bm_buffered) + ? ZSTD_compressBound(blockSize) + 1 + : 0; + size_t const buffInSize = (zbuff == ZSTDb_buffered && params->inBufferMode == ZSTD_bm_buffered) + ? windowSize + blockSize + : 0; + size_t const maxNbLdmSeq = ZSTD_ldm_getMaxNbSeq(params->ldmParams, blockSize); + + int const indexTooClose = ZSTD_indexTooCloseToMax(zc->blockState.matchState.window); + int const dictTooBig = ZSTD_dictTooBig(loadedDictSize); + ZSTD_indexResetPolicy_e needsIndexReset = + (indexTooClose || dictTooBig || !zc->initialized) ? ZSTDirp_reset : ZSTDirp_continue; + + size_t const neededSpace = + ZSTD_estimateCCtxSize_usingCCtxParams_internal( + ¶ms->cParams, ¶ms->ldmParams, zc->staticSize != 0, params->useRowMatchFinder, + buffInSize, buffOutSize, pledgedSrcSize, ZSTD_hasExtSeqProd(params), params->maxBlockSize); + + FORWARD_IF_ERROR(neededSpace, "cctx size estimate failed!"); - /* Check if workspace is large enough, alloc a new one if needed */ - { size_t const cctxSpace = zc->staticSize ? ZSTD_cwksp_alloc_size(sizeof(ZSTD_CCtx)) : 0; - size_t const entropySpace = ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE); - size_t const blockStateSpace = 2 * ZSTD_cwksp_alloc_size(sizeof(ZSTD_compressedBlockState_t)); - size_t const bufferSpace = ZSTD_cwksp_alloc_size(buffInSize) + ZSTD_cwksp_alloc_size(buffOutSize); - size_t const ldmSpace = ZSTD_ldm_getTableSize(params.ldmParams); - size_t const ldmSeqSpace = ZSTD_cwksp_alloc_size(maxNbLdmSeq * sizeof(rawSeq)); - - size_t const neededSpace = - cctxSpace + - entropySpace + - blockStateSpace + - ldmSpace + - ldmSeqSpace + - matchStateSize + - tokenSpace + - bufferSpace; + if (!zc->staticSize) ZSTD_cwksp_bump_oversized_duration(ws, 0); + { /* Check if workspace is large enough, alloc a new one if needed */ int const workspaceTooSmall = ZSTD_cwksp_sizeof(ws) < neededSpace; int const workspaceWasteful = ZSTD_cwksp_check_wasteful(ws, neededSpace); - - DEBUGLOG(4, "Need %zuKB workspace, including %zuKB for match state, and %zuKB for buffers", - neededSpace>>10, matchStateSize>>10, bufferSpace>>10); + int resizeWorkspace = workspaceTooSmall || workspaceWasteful; + DEBUGLOG(4, "Need %zu B workspace", neededSpace); DEBUGLOG(4, "windowSize: %zu - blockSize: %zu", windowSize, blockSize); - if (workspaceTooSmall || workspaceWasteful) { + if (resizeWorkspace) { DEBUGLOG(4, "Resize workspaceSize from %zuKB to %zuKB", ZSTD_cwksp_sizeof(ws) >> 10, neededSpace >> 10); @@ -1506,15 +2173,15 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc, RETURN_ERROR_IF(zc->blockState.prevCBlock == NULL, memory_allocation, "couldn't allocate prevCBlock"); zc->blockState.nextCBlock = (ZSTD_compressedBlockState_t*) ZSTD_cwksp_reserve_object(ws, sizeof(ZSTD_compressedBlockState_t)); RETURN_ERROR_IF(zc->blockState.nextCBlock == NULL, memory_allocation, "couldn't allocate nextCBlock"); - zc->entropyWorkspace = (U32*) ZSTD_cwksp_reserve_object(ws, HUF_WORKSPACE_SIZE); - RETURN_ERROR_IF(zc->blockState.nextCBlock == NULL, memory_allocation, "couldn't allocate entropyWorkspace"); + zc->entropyWorkspace = (U32*) ZSTD_cwksp_reserve_object(ws, ENTROPY_WORKSPACE_SIZE); + RETURN_ERROR_IF(zc->entropyWorkspace == NULL, memory_allocation, "couldn't allocate entropyWorkspace"); } } ZSTD_cwksp_clear(ws); /* init params */ - zc->appliedParams = params; - zc->blockState.matchState.cParams = params.cParams; + zc->blockState.matchState.cParams = params->cParams; + zc->blockState.matchState.prefetchCDictTables = params->prefetchCDictTables == ZSTD_ps_enable; zc->pledgedSrcSizePlusOne = pledgedSrcSize+1; zc->consumedSrcSize = 0; zc->producedCSize = 0; @@ -1527,29 +2194,64 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc, XXH64_reset(&zc->xxhState, 0); zc->stage = ZSTDcs_init; zc->dictID = 0; + zc->dictContentSize = 0; ZSTD_reset_compressedBlockState(zc->blockState.prevCBlock); + FORWARD_IF_ERROR(ZSTD_reset_matchState( + &zc->blockState.matchState, + ws, + ¶ms->cParams, + params->useRowMatchFinder, + crp, + needsIndexReset, + ZSTD_resetTarget_CCtx), ""); + + zc->seqStore.sequencesStart = (seqDef*)ZSTD_cwksp_reserve_aligned(ws, maxNbSeq * sizeof(seqDef)); + + /* ldm hash table */ + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* TODO: avoid memset? */ + size_t const ldmHSize = ((size_t)1) << params->ldmParams.hashLog; + zc->ldmState.hashTable = (ldmEntry_t*)ZSTD_cwksp_reserve_aligned(ws, ldmHSize * sizeof(ldmEntry_t)); + ZSTD_memset(zc->ldmState.hashTable, 0, ldmHSize * sizeof(ldmEntry_t)); + zc->ldmSequences = (rawSeq*)ZSTD_cwksp_reserve_aligned(ws, maxNbLdmSeq * sizeof(rawSeq)); + zc->maxNbLdmSequences = maxNbLdmSeq; + + ZSTD_window_init(&zc->ldmState.window); + zc->ldmState.loadedDictEnd = 0; + } + + /* reserve space for block-level external sequences */ + if (ZSTD_hasExtSeqProd(params)) { + size_t const maxNbExternalSeq = ZSTD_sequenceBound(blockSize); + zc->extSeqBufCapacity = maxNbExternalSeq; + zc->extSeqBuf = + (ZSTD_Sequence*)ZSTD_cwksp_reserve_aligned(ws, maxNbExternalSeq * sizeof(ZSTD_Sequence)); + } + + /* buffers */ + /* ZSTD_wildcopy() is used to copy into the literals buffer, * so we have to oversize the buffer by WILDCOPY_OVERLENGTH bytes. */ zc->seqStore.litStart = ZSTD_cwksp_reserve_buffer(ws, blockSize + WILDCOPY_OVERLENGTH); zc->seqStore.maxNbLit = blockSize; - /* buffers */ + zc->bufferedPolicy = zbuff; zc->inBuffSize = buffInSize; zc->inBuff = (char*)ZSTD_cwksp_reserve_buffer(ws, buffInSize); zc->outBuffSize = buffOutSize; zc->outBuff = (char*)ZSTD_cwksp_reserve_buffer(ws, buffOutSize); /* ldm bucketOffsets table */ - if (params.ldmParams.enableLdm) { + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { /* TODO: avoid memset? */ - size_t const ldmBucketSize = - ((size_t)1) << (params.ldmParams.hashLog - - params.ldmParams.bucketSizeLog); - zc->ldmState.bucketOffsets = ZSTD_cwksp_reserve_buffer(ws, ldmBucketSize); - memset(zc->ldmState.bucketOffsets, 0, ldmBucketSize); + size_t const numBuckets = + ((size_t)1) << (params->ldmParams.hashLog - + params->ldmParams.bucketSizeLog); + zc->ldmState.bucketOffsets = ZSTD_cwksp_reserve_buffer(ws, numBuckets); + ZSTD_memset(zc->ldmState.bucketOffsets, 0, numBuckets); } /* sequences storage */ @@ -1558,32 +2260,11 @@ static size_t ZSTD_resetCCtx_internal(ZSTD_CCtx* zc, zc->seqStore.llCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); zc->seqStore.mlCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); zc->seqStore.ofCode = ZSTD_cwksp_reserve_buffer(ws, maxNbSeq * sizeof(BYTE)); - zc->seqStore.sequencesStart = (seqDef*)ZSTD_cwksp_reserve_aligned(ws, maxNbSeq * sizeof(seqDef)); - FORWARD_IF_ERROR(ZSTD_reset_matchState( - &zc->blockState.matchState, - ws, - ¶ms.cParams, - crp, - needsIndexReset, - ZSTD_resetTarget_CCtx), ""); + DEBUGLOG(3, "wksp: finished allocating, %zd bytes remain available", ZSTD_cwksp_available_space(ws)); + assert(ZSTD_cwksp_estimated_space_within_bounds(ws, neededSpace)); - /* ldm hash table */ - if (params.ldmParams.enableLdm) { - /* TODO: avoid memset? */ - size_t const ldmHSize = ((size_t)1) << params.ldmParams.hashLog; - zc->ldmState.hashTable = (ldmEntry_t*)ZSTD_cwksp_reserve_aligned(ws, ldmHSize * sizeof(ldmEntry_t)); - memset(zc->ldmState.hashTable, 0, ldmHSize * sizeof(ldmEntry_t)); - zc->ldmSequences = (rawSeq*)ZSTD_cwksp_reserve_aligned(ws, maxNbLdmSeq * sizeof(rawSeq)); - zc->maxNbLdmSequences = maxNbLdmSeq; - - ZSTD_window_init(&zc->ldmState.window); - ZSTD_window_clear(&zc->ldmState.window); - zc->ldmState.loadedDictEnd = 0; - } - - DEBUGLOG(3, "wksp: finished allocating, %zd bytes remain available", ZSTD_cwksp_available_space(ws)); - zc->initialized = 1; + zc->initialized = 1; return 0; } @@ -1621,12 +2302,14 @@ static int ZSTD_shouldAttachDict(const ZSTD_CDict* cdict, U64 pledgedSrcSize) { size_t cutoff = attachDictSizeCutoffs[cdict->matchState.cParams.strategy]; - return ( pledgedSrcSize <= cutoff - || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN - || params->attachDictPref == ZSTD_dictForceAttach ) - && params->attachDictPref != ZSTD_dictForceCopy - && !params->forceWindow; /* dictMatchState isn't correctly - * handled in _enforceMaxDist */ + int const dedicatedDictSearch = cdict->matchState.dedicatedDictSearch; + return dedicatedDictSearch + || ( ( pledgedSrcSize <= cutoff + || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN + || params->attachDictPref == ZSTD_dictForceAttach ) + && params->attachDictPref != ZSTD_dictForceCopy + && !params->forceWindow ); /* dictMatchState isn't correctly + * handled in _enforceMaxDist */ } static size_t @@ -1636,17 +2319,29 @@ ZSTD_resetCCtx_byAttachingCDict(ZSTD_CCtx* cctx, U64 pledgedSrcSize, ZSTD_buffered_policy_e zbuff) { - { const ZSTD_compressionParameters* const cdict_cParams = &cdict->matchState.cParams; + DEBUGLOG(4, "ZSTD_resetCCtx_byAttachingCDict() pledgedSrcSize=%llu", + (unsigned long long)pledgedSrcSize); + { + ZSTD_compressionParameters adjusted_cdict_cParams = cdict->matchState.cParams; unsigned const windowLog = params.cParams.windowLog; assert(windowLog != 0); /* Resize working context table params for input only, since the dict * has its own tables. */ - /* pledgeSrcSize == 0 means 0! */ - params.cParams = ZSTD_adjustCParams_internal(*cdict_cParams, pledgedSrcSize, 0); + /* pledgedSrcSize == 0 means 0! */ + + if (cdict->matchState.dedicatedDictSearch) { + ZSTD_dedicatedDictSearch_revertCParams(&adjusted_cdict_cParams); + } + + params.cParams = ZSTD_adjustCParams_internal(adjusted_cdict_cParams, pledgedSrcSize, + cdict->dictContentSize, ZSTD_cpm_attachDict, + params.useRowMatchFinder); params.cParams.windowLog = windowLog; - FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize, + params.useRowMatchFinder = cdict->useRowMatchFinder; /* cdict overrides */ + FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, ZSTDcrp_makeClean, zbuff), ""); - assert(cctx->appliedParams.cParams.strategy == cdict_cParams->strategy); + assert(cctx->appliedParams.cParams.strategy == adjusted_cdict_cParams.strategy); } { const U32 cdictEnd = (U32)( cdict->matchState.window.nextSrc @@ -1671,13 +2366,30 @@ ZSTD_resetCCtx_byAttachingCDict(ZSTD_CCtx* cctx, } } cctx->dictID = cdict->dictID; + cctx->dictContentSize = cdict->dictContentSize; /* copy block state */ - memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); + ZSTD_memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); return 0; } +static void ZSTD_copyCDictTableIntoCCtx(U32* dst, U32 const* src, size_t tableSize, + ZSTD_compressionParameters const* cParams) { + if (ZSTD_CDictIndicesAreTagged(cParams)){ + /* Remove tags from the CDict table if they are present. + * See docs on "short cache" in zstd_compress_internal.h for context. */ + size_t i; + for (i = 0; i < tableSize; i++) { + U32 const taggedIndex = src[i]; + U32 const index = taggedIndex >> ZSTD_SHORT_CACHE_TAG_BITS; + dst[i] = index; + } + } else { + ZSTD_memcpy(dst, src, tableSize * sizeof(U32)); + } +} + static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict, ZSTD_CCtx_params params, @@ -1686,14 +2398,18 @@ static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx, { const ZSTD_compressionParameters *cdict_cParams = &cdict->matchState.cParams; - DEBUGLOG(4, "copying dictionary into context"); + assert(!cdict->matchState.dedicatedDictSearch); + DEBUGLOG(4, "ZSTD_resetCCtx_byCopyingCDict() pledgedSrcSize=%llu", + (unsigned long long)pledgedSrcSize); { unsigned const windowLog = params.cParams.windowLog; assert(windowLog != 0); /* Copy only compression parameters related to tables. */ params.cParams = *cdict_cParams; params.cParams.windowLog = windowLog; - FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize, + params.useRowMatchFinder = cdict->useRowMatchFinder; + FORWARD_IF_ERROR(ZSTD_resetCCtx_internal(cctx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, ZSTDcrp_leaveDirty, zbuff), ""); assert(cctx->appliedParams.cParams.strategy == cdict_cParams->strategy); assert(cctx->appliedParams.cParams.hashLog == cdict_cParams->hashLog); @@ -1701,24 +2417,39 @@ static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx, } ZSTD_cwksp_mark_tables_dirty(&cctx->workspace); + assert(params.useRowMatchFinder != ZSTD_ps_auto); /* copy tables */ - { size_t const chainSize = (cdict_cParams->strategy == ZSTD_fast) ? 0 : ((size_t)1 << cdict_cParams->chainLog); + { size_t const chainSize = ZSTD_allocateChainTable(cdict_cParams->strategy, cdict->useRowMatchFinder, 0 /* DDS guaranteed disabled */) + ? ((size_t)1 << cdict_cParams->chainLog) + : 0; size_t const hSize = (size_t)1 << cdict_cParams->hashLog; - memcpy(cctx->blockState.matchState.hashTable, - cdict->matchState.hashTable, - hSize * sizeof(U32)); - memcpy(cctx->blockState.matchState.chainTable, - cdict->matchState.chainTable, - chainSize * sizeof(U32)); + ZSTD_copyCDictTableIntoCCtx(cctx->blockState.matchState.hashTable, + cdict->matchState.hashTable, + hSize, cdict_cParams); + + /* Do not copy cdict's chainTable if cctx has parameters such that it would not use chainTable */ + if (ZSTD_allocateChainTable(cctx->appliedParams.cParams.strategy, cctx->appliedParams.useRowMatchFinder, 0 /* forDDSDict */)) { + ZSTD_copyCDictTableIntoCCtx(cctx->blockState.matchState.chainTable, + cdict->matchState.chainTable, + chainSize, cdict_cParams); + } + /* copy tag table */ + if (ZSTD_rowMatchFinderUsed(cdict_cParams->strategy, cdict->useRowMatchFinder)) { + size_t const tagTableSize = hSize; + ZSTD_memcpy(cctx->blockState.matchState.tagTable, + cdict->matchState.tagTable, + tagTableSize); + cctx->blockState.matchState.hashSalt = cdict->matchState.hashSalt; + } } /* Zero the hashTable3, since the cdict never fills it */ { int const h3log = cctx->blockState.matchState.hashLog3; size_t const h3Size = h3log ? ((size_t)1 << h3log) : 0; assert(cdict->matchState.hashLog3 == 0); - memset(cctx->blockState.matchState.hashTable3, 0, h3Size * sizeof(U32)); + ZSTD_memset(cctx->blockState.matchState.hashTable3, 0, h3Size * sizeof(U32)); } ZSTD_cwksp_mark_tables_clean(&cctx->workspace); @@ -1732,9 +2463,10 @@ static size_t ZSTD_resetCCtx_byCopyingCDict(ZSTD_CCtx* cctx, } cctx->dictID = cdict->dictID; + cctx->dictContentSize = cdict->dictContentSize; /* copy block state */ - memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); + ZSTD_memcpy(cctx->blockState.prevCBlock, &cdict->cBlockState, sizeof(cdict->cBlockState)); return 0; } @@ -1774,16 +2506,23 @@ static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx, U64 pledgedSrcSize, ZSTD_buffered_policy_e zbuff) { - DEBUGLOG(5, "ZSTD_copyCCtx_internal"); RETURN_ERROR_IF(srcCCtx->stage!=ZSTDcs_init, stage_wrong, "Can't copy a ctx that's not in init stage."); - - memcpy(&dstCCtx->customMem, &srcCCtx->customMem, sizeof(ZSTD_customMem)); + DEBUGLOG(5, "ZSTD_copyCCtx_internal"); + ZSTD_memcpy(&dstCCtx->customMem, &srcCCtx->customMem, sizeof(ZSTD_customMem)); { ZSTD_CCtx_params params = dstCCtx->requestedParams; /* Copy only compression parameters related to tables. */ params.cParams = srcCCtx->appliedParams.cParams; + assert(srcCCtx->appliedParams.useRowMatchFinder != ZSTD_ps_auto); + assert(srcCCtx->appliedParams.useBlockSplitter != ZSTD_ps_auto); + assert(srcCCtx->appliedParams.ldmParams.enableLdm != ZSTD_ps_auto); + params.useRowMatchFinder = srcCCtx->appliedParams.useRowMatchFinder; + params.useBlockSplitter = srcCCtx->appliedParams.useBlockSplitter; + params.ldmParams = srcCCtx->appliedParams.ldmParams; params.fParams = fParams; - ZSTD_resetCCtx_internal(dstCCtx, params, pledgedSrcSize, + params.maxBlockSize = srcCCtx->appliedParams.maxBlockSize; + ZSTD_resetCCtx_internal(dstCCtx, ¶ms, pledgedSrcSize, + /* loadedDictSize */ 0, ZSTDcrp_leaveDirty, zbuff); assert(dstCCtx->appliedParams.cParams.windowLog == srcCCtx->appliedParams.cParams.windowLog); assert(dstCCtx->appliedParams.cParams.strategy == srcCCtx->appliedParams.cParams.strategy); @@ -1795,18 +2534,22 @@ static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx, ZSTD_cwksp_mark_tables_dirty(&dstCCtx->workspace); /* copy tables */ - { size_t const chainSize = (srcCCtx->appliedParams.cParams.strategy == ZSTD_fast) ? 0 : ((size_t)1 << srcCCtx->appliedParams.cParams.chainLog); + { size_t const chainSize = ZSTD_allocateChainTable(srcCCtx->appliedParams.cParams.strategy, + srcCCtx->appliedParams.useRowMatchFinder, + 0 /* forDDSDict */) + ? ((size_t)1 << srcCCtx->appliedParams.cParams.chainLog) + : 0; size_t const hSize = (size_t)1 << srcCCtx->appliedParams.cParams.hashLog; int const h3log = srcCCtx->blockState.matchState.hashLog3; size_t const h3Size = h3log ? ((size_t)1 << h3log) : 0; - memcpy(dstCCtx->blockState.matchState.hashTable, + ZSTD_memcpy(dstCCtx->blockState.matchState.hashTable, srcCCtx->blockState.matchState.hashTable, hSize * sizeof(U32)); - memcpy(dstCCtx->blockState.matchState.chainTable, + ZSTD_memcpy(dstCCtx->blockState.matchState.chainTable, srcCCtx->blockState.matchState.chainTable, chainSize * sizeof(U32)); - memcpy(dstCCtx->blockState.matchState.hashTable3, + ZSTD_memcpy(dstCCtx->blockState.matchState.hashTable3, srcCCtx->blockState.matchState.hashTable3, h3Size * sizeof(U32)); } @@ -1822,9 +2565,10 @@ static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx, dstMatchState->loadedDictEnd= srcMatchState->loadedDictEnd; } dstCCtx->dictID = srcCCtx->dictID; + dstCCtx->dictContentSize = srcCCtx->dictContentSize; /* copy block state */ - memcpy(dstCCtx->blockState.prevCBlock, srcCCtx->blockState.prevCBlock, sizeof(*srcCCtx->blockState.prevCBlock)); + ZSTD_memcpy(dstCCtx->blockState.prevCBlock, srcCCtx->blockState.prevCBlock, sizeof(*srcCCtx->blockState.prevCBlock)); return 0; } @@ -1837,7 +2581,7 @@ static size_t ZSTD_copyCCtx_internal(ZSTD_CCtx* dstCCtx, size_t ZSTD_copyCCtx(ZSTD_CCtx* dstCCtx, const ZSTD_CCtx* srcCCtx, unsigned long long pledgedSrcSize) { ZSTD_frameParameters fParams = { 1 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; - ZSTD_buffered_policy_e const zbuff = (ZSTD_buffered_policy_e)(srcCCtx->inBuffSize>0); + ZSTD_buffered_policy_e const zbuff = srcCCtx->bufferedPolicy; ZSTD_STATIC_ASSERT((U32)ZSTDb_buffered==1); if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; fParams.contentSizeFlag = (pledgedSrcSize != ZSTD_CONTENTSIZE_UNKNOWN); @@ -1861,31 +2605,25 @@ ZSTD_reduceTable_internal (U32* const table, U32 const size, U32 const reducerVa int const nbRows = (int)size / ZSTD_ROWSIZE; int cellNb = 0; int rowNb; + /* Protect special index values < ZSTD_WINDOW_START_INDEX. */ + U32 const reducerThreshold = reducerValue + ZSTD_WINDOW_START_INDEX; assert((size & (ZSTD_ROWSIZE-1)) == 0); /* multiple of ZSTD_ROWSIZE */ assert(size < (1U<<31)); /* can be casted to int */ -#if defined (MEMORY_SANITIZER) && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) - /* To validate that the table re-use logic is sound, and that we don't - * access table space that we haven't cleaned, we re-"poison" the table - * space every time we mark it dirty. - * - * This function however is intended to operate on those dirty tables and - * re-clean them. So when this function is used correctly, we can unpoison - * the memory it operated on. This introduces a blind spot though, since - * if we now try to operate on __actually__ poisoned memory, we will not - * detect that. */ - __msan_unpoison(table, size * sizeof(U32)); -#endif - for (rowNb=0 ; rowNb < nbRows ; rowNb++) { int column; for (column=0; columnhashTable, hSize, reducerValue); } - if (params->cParams.strategy != ZSTD_fast) { + if (ZSTD_allocateChainTable(params->cParams.strategy, params->useRowMatchFinder, (U32)ms->dedicatedDictSearch)) { U32 const chainSize = (U32)1 << params->cParams.chainLog; if (params->cParams.strategy == ZSTD_btlazy2) ZSTD_reduceTable_btlazy2(ms->chainTable, chainSize, reducerValue); @@ -1929,7 +2667,7 @@ static void ZSTD_reduceIndex (ZSTD_matchState_t* ms, ZSTD_CCtx_params const* par /* See doc/zstd_compression_format.md for detailed format description */ -void ZSTD_seqToCodes(const seqStore_t* seqStorePtr) +int ZSTD_seqToCodes(const seqStore_t* seqStorePtr) { const seqDef* const sequences = seqStorePtr->sequencesStart; BYTE* const llCodeTable = seqStorePtr->llCode; @@ -1937,18 +2675,24 @@ void ZSTD_seqToCodes(const seqStore_t* seqStorePtr) BYTE* const mlCodeTable = seqStorePtr->mlCode; U32 const nbSeq = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); U32 u; + int longOffsets = 0; assert(nbSeq <= seqStorePtr->maxNbSeq); for (u=0; u= STREAM_ACCUMULATOR_MIN)); + if (MEM_32bits() && ofCode >= STREAM_ACCUMULATOR_MIN) + longOffsets = 1; } - if (seqStorePtr->longLengthID==1) + if (seqStorePtr->longLengthType==ZSTD_llt_literalLength) llCodeTable[seqStorePtr->longLengthPos] = MaxLL; - if (seqStorePtr->longLengthID==2) + if (seqStorePtr->longLengthType==ZSTD_llt_matchLength) mlCodeTable[seqStorePtr->longLengthPos] = MaxML; + return longOffsets; } /* ZSTD_useTargetCBlockSize(): @@ -1961,49 +2705,211 @@ static int ZSTD_useTargetCBlockSize(const ZSTD_CCtx_params* cctxParams) return (cctxParams->targetCBlockSize != 0); } -/* ZSTD_compressSequences_internal(): - * actually compresses both literals and sequences */ +/* ZSTD_blockSplitterEnabled(): + * Returns if block splitting param is being used + * If used, compression will do best effort to split a block in order to improve compression ratio. + * At the time this function is called, the parameter must be finalized. + * Returns 1 if true, 0 otherwise. */ +static int ZSTD_blockSplitterEnabled(ZSTD_CCtx_params* cctxParams) +{ + DEBUGLOG(5, "ZSTD_blockSplitterEnabled (useBlockSplitter=%d)", cctxParams->useBlockSplitter); + assert(cctxParams->useBlockSplitter != ZSTD_ps_auto); + return (cctxParams->useBlockSplitter == ZSTD_ps_enable); +} + +/* Type returned by ZSTD_buildSequencesStatistics containing finalized symbol encoding types + * and size of the sequences statistics + */ +typedef struct { + U32 LLtype; + U32 Offtype; + U32 MLtype; + size_t size; + size_t lastCountSize; /* Accounts for bug in 1.3.4. More detail in ZSTD_entropyCompressSeqStore_internal() */ + int longOffsets; +} ZSTD_symbolEncodingTypeStats_t; + +/* ZSTD_buildSequencesStatistics(): + * Returns a ZSTD_symbolEncodingTypeStats_t, or a zstd error code in the `size` field. + * Modifies `nextEntropy` to have the appropriate values as a side effect. + * nbSeq must be greater than 0. + * + * entropyWkspSize must be of size at least ENTROPY_WORKSPACE_SIZE - (MaxSeq + 1)*sizeof(U32) + */ +static ZSTD_symbolEncodingTypeStats_t +ZSTD_buildSequencesStatistics( + const seqStore_t* seqStorePtr, size_t nbSeq, + const ZSTD_fseCTables_t* prevEntropy, ZSTD_fseCTables_t* nextEntropy, + BYTE* dst, const BYTE* const dstEnd, + ZSTD_strategy strategy, unsigned* countWorkspace, + void* entropyWorkspace, size_t entropyWkspSize) +{ + BYTE* const ostart = dst; + const BYTE* const oend = dstEnd; + BYTE* op = ostart; + FSE_CTable* CTable_LitLength = nextEntropy->litlengthCTable; + FSE_CTable* CTable_OffsetBits = nextEntropy->offcodeCTable; + FSE_CTable* CTable_MatchLength = nextEntropy->matchlengthCTable; + const BYTE* const ofCodeTable = seqStorePtr->ofCode; + const BYTE* const llCodeTable = seqStorePtr->llCode; + const BYTE* const mlCodeTable = seqStorePtr->mlCode; + ZSTD_symbolEncodingTypeStats_t stats; + + stats.lastCountSize = 0; + /* convert length/distances into codes */ + stats.longOffsets = ZSTD_seqToCodes(seqStorePtr); + assert(op <= oend); + assert(nbSeq != 0); /* ZSTD_selectEncodingType() divides by nbSeq */ + /* build CTable for Literal Lengths */ + { unsigned max = MaxLL; + size_t const mostFrequent = HIST_countFast_wksp(countWorkspace, &max, llCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + DEBUGLOG(5, "Building LL table"); + nextEntropy->litlength_repeatMode = prevEntropy->litlength_repeatMode; + stats.LLtype = ZSTD_selectEncodingType(&nextEntropy->litlength_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + LLFSELog, prevEntropy->litlengthCTable, + LL_defaultNorm, LL_defaultNormLog, + ZSTD_defaultAllowed, strategy); + assert(set_basic < set_compressed && set_rle < set_compressed); + assert(!(stats.LLtype < set_compressed && nextEntropy->litlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_LitLength, LLFSELog, (symbolEncodingType_e)stats.LLtype, + countWorkspace, max, llCodeTable, nbSeq, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + prevEntropy->litlengthCTable, + sizeof(prevEntropy->litlengthCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for LitLens failed"); + stats.size = countSize; + return stats; + } + if (stats.LLtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + /* build CTable for Offsets */ + { unsigned max = MaxOff; + size_t const mostFrequent = HIST_countFast_wksp( + countWorkspace, &max, ofCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + /* We can only use the basic table if max <= DefaultMaxOff, otherwise the offsets are too large */ + ZSTD_defaultPolicy_e const defaultPolicy = (max <= DefaultMaxOff) ? ZSTD_defaultAllowed : ZSTD_defaultDisallowed; + DEBUGLOG(5, "Building OF table"); + nextEntropy->offcode_repeatMode = prevEntropy->offcode_repeatMode; + stats.Offtype = ZSTD_selectEncodingType(&nextEntropy->offcode_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + OffFSELog, prevEntropy->offcodeCTable, + OF_defaultNorm, OF_defaultNormLog, + defaultPolicy, strategy); + assert(!(stats.Offtype < set_compressed && nextEntropy->offcode_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_OffsetBits, OffFSELog, (symbolEncodingType_e)stats.Offtype, + countWorkspace, max, ofCodeTable, nbSeq, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + prevEntropy->offcodeCTable, + sizeof(prevEntropy->offcodeCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for Offsets failed"); + stats.size = countSize; + return stats; + } + if (stats.Offtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + /* build CTable for MatchLengths */ + { unsigned max = MaxML; + size_t const mostFrequent = HIST_countFast_wksp( + countWorkspace, &max, mlCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ + DEBUGLOG(5, "Building ML table (remaining space : %i)", (int)(oend-op)); + nextEntropy->matchlength_repeatMode = prevEntropy->matchlength_repeatMode; + stats.MLtype = ZSTD_selectEncodingType(&nextEntropy->matchlength_repeatMode, + countWorkspace, max, mostFrequent, nbSeq, + MLFSELog, prevEntropy->matchlengthCTable, + ML_defaultNorm, ML_defaultNormLog, + ZSTD_defaultAllowed, strategy); + assert(!(stats.MLtype < set_compressed && nextEntropy->matchlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ + { size_t const countSize = ZSTD_buildCTable( + op, (size_t)(oend - op), + CTable_MatchLength, MLFSELog, (symbolEncodingType_e)stats.MLtype, + countWorkspace, max, mlCodeTable, nbSeq, + ML_defaultNorm, ML_defaultNormLog, MaxML, + prevEntropy->matchlengthCTable, + sizeof(prevEntropy->matchlengthCTable), + entropyWorkspace, entropyWkspSize); + if (ZSTD_isError(countSize)) { + DEBUGLOG(3, "ZSTD_buildCTable for MatchLengths failed"); + stats.size = countSize; + return stats; + } + if (stats.MLtype == set_compressed) + stats.lastCountSize = countSize; + op += countSize; + assert(op <= oend); + } } + stats.size = (size_t)(op-ostart); + return stats; +} + +/* ZSTD_entropyCompressSeqStore_internal(): + * compresses both literals and sequences + * Returns compressed size of block, or a zstd error. + */ +#define SUSPECT_UNCOMPRESSIBLE_LITERAL_RATIO 20 MEM_STATIC size_t -ZSTD_compressSequences_internal(seqStore_t* seqStorePtr, - const ZSTD_entropyCTables_t* prevEntropy, - ZSTD_entropyCTables_t* nextEntropy, - const ZSTD_CCtx_params* cctxParams, - void* dst, size_t dstCapacity, - void* entropyWorkspace, size_t entropyWkspSize, - const int bmi2) +ZSTD_entropyCompressSeqStore_internal( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + void* entropyWorkspace, size_t entropyWkspSize, + const int bmi2) { - const int longOffsets = cctxParams->cParams.windowLog > STREAM_ACCUMULATOR_MIN; ZSTD_strategy const strategy = cctxParams->cParams.strategy; - unsigned count[MaxSeq+1]; + unsigned* count = (unsigned*)entropyWorkspace; FSE_CTable* CTable_LitLength = nextEntropy->fse.litlengthCTable; FSE_CTable* CTable_OffsetBits = nextEntropy->fse.offcodeCTable; FSE_CTable* CTable_MatchLength = nextEntropy->fse.matchlengthCTable; - U32 LLtype, Offtype, MLtype; /* compressed, raw or rle */ const seqDef* const sequences = seqStorePtr->sequencesStart; + const size_t nbSeq = (size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart); const BYTE* const ofCodeTable = seqStorePtr->ofCode; const BYTE* const llCodeTable = seqStorePtr->llCode; const BYTE* const mlCodeTable = seqStorePtr->mlCode; BYTE* const ostart = (BYTE*)dst; BYTE* const oend = ostart + dstCapacity; BYTE* op = ostart; - size_t const nbSeq = (size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart); - BYTE* seqHead; - BYTE* lastNCount = NULL; + size_t lastCountSize; + int longOffsets = 0; + + entropyWorkspace = count + (MaxSeq + 1); + entropyWkspSize -= (MaxSeq + 1) * sizeof(*count); - DEBUGLOG(5, "ZSTD_compressSequences_internal (nbSeq=%zu)", nbSeq); + DEBUGLOG(5, "ZSTD_entropyCompressSeqStore_internal (nbSeq=%zu, dstCapacity=%zu)", nbSeq, dstCapacity); ZSTD_STATIC_ASSERT(HUF_WORKSPACE_SIZE >= (1<= HUF_WORKSPACE_SIZE); /* Compress literals */ { const BYTE* const literals = seqStorePtr->litStart; + size_t const numSequences = (size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + size_t const numLiterals = (size_t)(seqStorePtr->lit - seqStorePtr->litStart); + /* Base suspicion of uncompressibility on ratio of literals to sequences */ + unsigned const suspectUncompressible = (numSequences == 0) || (numLiterals / numSequences >= SUSPECT_UNCOMPRESSIBLE_LITERAL_RATIO); size_t const litSize = (size_t)(seqStorePtr->lit - literals); + size_t const cSize = ZSTD_compressLiterals( - &prevEntropy->huf, &nextEntropy->huf, - cctxParams->cParams.strategy, - ZSTD_disableLiteralsCompression(cctxParams), op, dstCapacity, literals, litSize, entropyWorkspace, entropyWkspSize, - bmi2); + &prevEntropy->huf, &nextEntropy->huf, + cctxParams->cParams.strategy, + ZSTD_literalsCompressionIsDisabled(cctxParams), + suspectUncompressible, bmi2); FORWARD_IF_ERROR(cSize, "ZSTD_compressLiterals failed"); assert(cSize <= dstCapacity); op += cSize; @@ -2026,98 +2932,23 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr, assert(op <= oend); if (nbSeq==0) { /* Copy the old tables over as if we repeated them */ - memcpy(&nextEntropy->fse, &prevEntropy->fse, sizeof(prevEntropy->fse)); + ZSTD_memcpy(&nextEntropy->fse, &prevEntropy->fse, sizeof(prevEntropy->fse)); return (size_t)(op - ostart); } - - /* seqHead : flags for FSE encoding type */ - seqHead = op++; - assert(op <= oend); - - /* convert length/distances into codes */ - ZSTD_seqToCodes(seqStorePtr); - /* build CTable for Literal Lengths */ - { unsigned max = MaxLL; - size_t const mostFrequent = HIST_countFast_wksp(count, &max, llCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ - DEBUGLOG(5, "Building LL table"); - nextEntropy->fse.litlength_repeatMode = prevEntropy->fse.litlength_repeatMode; - LLtype = ZSTD_selectEncodingType(&nextEntropy->fse.litlength_repeatMode, - count, max, mostFrequent, nbSeq, - LLFSELog, prevEntropy->fse.litlengthCTable, - ZSTDInternalConstants::LL_defaultNorm, ZSTDInternalConstants::LL_defaultNormLog, - ZSTD_defaultAllowed, strategy); - assert(set_basic < set_compressed && set_rle < set_compressed); - assert(!(LLtype < set_compressed && nextEntropy->fse.litlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ - { size_t const countSize = ZSTD_buildCTable( - op, (size_t)(oend - op), - CTable_LitLength, LLFSELog, (symbolEncodingType_e)LLtype, - count, max, llCodeTable, nbSeq, - ZSTDInternalConstants::LL_defaultNorm, ZSTDInternalConstants::LL_defaultNormLog, MaxLL, - prevEntropy->fse.litlengthCTable, - sizeof(prevEntropy->fse.litlengthCTable), - entropyWorkspace, entropyWkspSize); - FORWARD_IF_ERROR(countSize, "ZSTD_buildCTable for LitLens failed"); - if (LLtype == set_compressed) - lastNCount = op; - op += countSize; - assert(op <= oend); - } } - /* build CTable for Offsets */ - { unsigned max = MaxOff; - size_t const mostFrequent = HIST_countFast_wksp( - count, &max, ofCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ - /* We can only use the basic table if max <= DefaultMaxOff, otherwise the offsets are too large */ - ZSTD_defaultPolicy_e const defaultPolicy = (max <= DefaultMaxOff) ? ZSTD_defaultAllowed : ZSTD_defaultDisallowed; - DEBUGLOG(5, "Building OF table"); - nextEntropy->fse.offcode_repeatMode = prevEntropy->fse.offcode_repeatMode; - Offtype = ZSTD_selectEncodingType(&nextEntropy->fse.offcode_repeatMode, - count, max, mostFrequent, nbSeq, - OffFSELog, prevEntropy->fse.offcodeCTable, - ZSTDInternalConstants::OF_defaultNorm, ZSTDInternalConstants::OF_defaultNormLog, - defaultPolicy, strategy); - assert(!(Offtype < set_compressed && nextEntropy->fse.offcode_repeatMode != FSE_repeat_none)); /* We don't copy tables */ - { size_t const countSize = ZSTD_buildCTable( - op, (size_t)(oend - op), - CTable_OffsetBits, OffFSELog, (symbolEncodingType_e)Offtype, - count, max, ofCodeTable, nbSeq, - ZSTDInternalConstants::OF_defaultNorm, ZSTDInternalConstants::OF_defaultNormLog, DefaultMaxOff, - prevEntropy->fse.offcodeCTable, - sizeof(prevEntropy->fse.offcodeCTable), - entropyWorkspace, entropyWkspSize); - FORWARD_IF_ERROR(countSize, "ZSTD_buildCTable for Offsets failed"); - if (Offtype == set_compressed) - lastNCount = op; - op += countSize; - assert(op <= oend); - } } - /* build CTable for MatchLengths */ - { unsigned max = MaxML; - size_t const mostFrequent = HIST_countFast_wksp( - count, &max, mlCodeTable, nbSeq, entropyWorkspace, entropyWkspSize); /* can't fail */ - DEBUGLOG(5, "Building ML table (remaining space : %i)", (int)(oend-op)); - nextEntropy->fse.matchlength_repeatMode = prevEntropy->fse.matchlength_repeatMode; - MLtype = ZSTD_selectEncodingType(&nextEntropy->fse.matchlength_repeatMode, - count, max, mostFrequent, nbSeq, - MLFSELog, prevEntropy->fse.matchlengthCTable, - ZSTDInternalConstants::ML_defaultNorm, ZSTDInternalConstants::ML_defaultNormLog, - ZSTD_defaultAllowed, strategy); - assert(!(MLtype < set_compressed && nextEntropy->fse.matchlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ - { size_t const countSize = ZSTD_buildCTable( - op, (size_t)(oend - op), - CTable_MatchLength, MLFSELog, (symbolEncodingType_e)MLtype, - count, max, mlCodeTable, nbSeq, - ZSTDInternalConstants::ML_defaultNorm, ZSTDInternalConstants::ML_defaultNormLog, MaxML, - prevEntropy->fse.matchlengthCTable, - sizeof(prevEntropy->fse.matchlengthCTable), - entropyWorkspace, entropyWkspSize); - FORWARD_IF_ERROR(countSize, "ZSTD_buildCTable for MatchLengths failed"); - if (MLtype == set_compressed) - lastNCount = op; - op += countSize; - assert(op <= oend); - } } - - *seqHead = (BYTE)((LLtype<<6) + (Offtype<<4) + (MLtype<<2)); + { BYTE* const seqHead = op++; + /* build stats for sequences */ + const ZSTD_symbolEncodingTypeStats_t stats = + ZSTD_buildSequencesStatistics(seqStorePtr, nbSeq, + &prevEntropy->fse, &nextEntropy->fse, + op, oend, + strategy, count, + entropyWorkspace, entropyWkspSize); + FORWARD_IF_ERROR(stats.size, "ZSTD_buildSequencesStatistics failed!"); + *seqHead = (BYTE)((stats.LLtype<<6) + (stats.Offtype<<4) + (stats.MLtype<<2)); + lastCountSize = stats.lastCountSize; + op += stats.size; + longOffsets = stats.longOffsets; + } { size_t const bitstreamSize = ZSTD_encodeSequences( op, (size_t)(oend - op), @@ -2137,9 +2968,9 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr, * In this exceedingly rare case, we will simply emit an uncompressed * block, since it isn't worth optimizing. */ - if (lastNCount && (op - lastNCount) < 4) { - /* NCountSize >= 2 && bitstreamSize > 0 ==> lastCountSize == 3 */ - assert(op - lastNCount == 3); + if (lastCountSize && (lastCountSize + bitstreamSize) < 4) { + /* lastCountSize >= 2 && bitstreamSize > 0 ==> lastCountSize == 3 */ + assert(lastCountSize + bitstreamSize == 3); DEBUGLOG(5, "Avoiding bug in zstd decoder in versions <= 1.3.4 by " "emitting an uncompressed block."); return 0; @@ -2151,16 +2982,17 @@ ZSTD_compressSequences_internal(seqStore_t* seqStorePtr, } MEM_STATIC size_t -ZSTD_compressSequences(seqStore_t* seqStorePtr, - const ZSTD_entropyCTables_t* prevEntropy, - ZSTD_entropyCTables_t* nextEntropy, - const ZSTD_CCtx_params* cctxParams, - void* dst, size_t dstCapacity, - size_t srcSize, - void* entropyWorkspace, size_t entropyWkspSize, - int bmi2) -{ - size_t const cSize = ZSTD_compressSequences_internal( +ZSTD_entropyCompressSeqStore( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + void* dst, size_t dstCapacity, + size_t srcSize, + void* entropyWorkspace, size_t entropyWkspSize, + int bmi2) +{ + size_t const cSize = ZSTD_entropyCompressSeqStore_internal( seqStorePtr, prevEntropy, nextEntropy, cctxParams, dst, dstCapacity, entropyWorkspace, entropyWkspSize, bmi2); @@ -2168,60 +3000,108 @@ ZSTD_compressSequences(seqStore_t* seqStorePtr, /* When srcSize <= dstCapacity, there is enough space to write a raw uncompressed block. * Since we ran out of space, block must be not compressible, so fall back to raw uncompressed block. */ - if ((cSize == ERROR(dstSize_tooSmall)) & (srcSize <= dstCapacity)) + if ((cSize == ERROR(dstSize_tooSmall)) & (srcSize <= dstCapacity)) { + DEBUGLOG(4, "not enough dstCapacity (%zu) for ZSTD_entropyCompressSeqStore_internal()=> do not compress block", dstCapacity); return 0; /* block not compressed */ - FORWARD_IF_ERROR(cSize, "ZSTD_compressSequences_internal failed"); + } + FORWARD_IF_ERROR(cSize, "ZSTD_entropyCompressSeqStore_internal failed"); /* Check compressibility */ { size_t const maxCSize = srcSize - ZSTD_minGain(srcSize, cctxParams->cParams.strategy); if (cSize >= maxCSize) return 0; /* block not compressed */ } - + DEBUGLOG(5, "ZSTD_entropyCompressSeqStore() cSize: %zu", cSize); + /* libzstd decoder before > v1.5.4 is not compatible with compressed blocks of size ZSTD_BLOCKSIZE_MAX exactly. + * This restriction is indirectly already fulfilled by respecting ZSTD_minGain() condition above. + */ + assert(cSize < ZSTD_BLOCKSIZE_MAX); return cSize; } /* ZSTD_selectBlockCompressor() : * Not static, but internal use only (used by long distance matcher) * assumption : strat is a valid strategy */ -ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_dictMode_e dictMode) +ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_paramSwitch_e useRowMatchFinder, ZSTD_dictMode_e dictMode) { - static const ZSTD_blockCompressor blockCompressor[3][ZSTD_STRATEGY_MAX+1] = { + static const ZSTD_blockCompressor blockCompressor[4][ZSTD_STRATEGY_MAX+1] = { { ZSTD_compressBlock_fast /* default for 0 */, ZSTD_compressBlock_fast, - ZSTD_compressBlock_doubleFast, - ZSTD_compressBlock_greedy, - ZSTD_compressBlock_lazy, - ZSTD_compressBlock_lazy2, - ZSTD_compressBlock_btlazy2, - ZSTD_compressBlock_btopt, - ZSTD_compressBlock_btultra, - ZSTD_compressBlock_btultra2 }, + ZSTD_COMPRESSBLOCK_DOUBLEFAST, + ZSTD_COMPRESSBLOCK_GREEDY, + ZSTD_COMPRESSBLOCK_LAZY, + ZSTD_COMPRESSBLOCK_LAZY2, + ZSTD_COMPRESSBLOCK_BTLAZY2, + ZSTD_COMPRESSBLOCK_BTOPT, + ZSTD_COMPRESSBLOCK_BTULTRA, + ZSTD_COMPRESSBLOCK_BTULTRA2 + }, { ZSTD_compressBlock_fast_extDict /* default for 0 */, ZSTD_compressBlock_fast_extDict, - ZSTD_compressBlock_doubleFast_extDict, - ZSTD_compressBlock_greedy_extDict, - ZSTD_compressBlock_lazy_extDict, - ZSTD_compressBlock_lazy2_extDict, - ZSTD_compressBlock_btlazy2_extDict, - ZSTD_compressBlock_btopt_extDict, - ZSTD_compressBlock_btultra_extDict, - ZSTD_compressBlock_btultra_extDict }, + ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT, + ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT, + ZSTD_COMPRESSBLOCK_LAZY_EXTDICT, + ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT, + ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT, + ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT, + ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT, + ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT + }, { ZSTD_compressBlock_fast_dictMatchState /* default for 0 */, ZSTD_compressBlock_fast_dictMatchState, - ZSTD_compressBlock_doubleFast_dictMatchState, - ZSTD_compressBlock_greedy_dictMatchState, - ZSTD_compressBlock_lazy_dictMatchState, - ZSTD_compressBlock_lazy2_dictMatchState, - ZSTD_compressBlock_btlazy2_dictMatchState, - ZSTD_compressBlock_btopt_dictMatchState, - ZSTD_compressBlock_btultra_dictMatchState, - ZSTD_compressBlock_btultra_dictMatchState } + ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE, + ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE + }, + { NULL /* default for 0 */, + NULL, + NULL, + ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH, + ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH, + ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH, + NULL, + NULL, + NULL, + NULL } }; ZSTD_blockCompressor selectedCompressor; ZSTD_STATIC_ASSERT((unsigned)ZSTD_fast == 1); assert(ZSTD_cParam_withinBounds(ZSTD_c_strategy, strat)); - selectedCompressor = blockCompressor[(int)dictMode][(int)strat]; + DEBUGLOG(4, "Selected block compressor: dictMode=%d strat=%d rowMatchfinder=%d", (int)dictMode, (int)strat, (int)useRowMatchFinder); + if (ZSTD_rowMatchFinderUsed(strat, useRowMatchFinder)) { + static const ZSTD_blockCompressor rowBasedBlockCompressors[4][3] = { + { + ZSTD_COMPRESSBLOCK_GREEDY_ROW, + ZSTD_COMPRESSBLOCK_LAZY_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_ROW + }, + { + ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW, + ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW + }, + { + ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW, + ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW + }, + { + ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW, + ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW, + ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW + } + }; + DEBUGLOG(4, "Selecting a row-based matchfinder"); + assert(useRowMatchFinder != ZSTD_ps_auto); + selectedCompressor = rowBasedBlockCompressors[(int)dictMode][(int)strat - (int)ZSTD_greedy]; + } else { + selectedCompressor = blockCompressor[(int)dictMode][(int)strat]; + } assert(selectedCompressor != NULL); return selectedCompressor; } @@ -2229,7 +3109,7 @@ ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_dictMo static void ZSTD_storeLastLiterals(seqStore_t* seqStorePtr, const BYTE* anchor, size_t lastLLSize) { - memcpy(seqStorePtr->lit, anchor, lastLLSize); + ZSTD_memcpy(seqStorePtr->lit, anchor, lastLLSize); seqStorePtr->lit += lastLLSize; } @@ -2237,7 +3117,73 @@ void ZSTD_resetSeqStore(seqStore_t* ssPtr) { ssPtr->lit = ssPtr->litStart; ssPtr->sequences = ssPtr->sequencesStart; - ssPtr->longLengthID = 0; + ssPtr->longLengthType = ZSTD_llt_none; +} + +/* ZSTD_postProcessSequenceProducerResult() : + * Validates and post-processes sequences obtained through the external matchfinder API: + * - Checks whether nbExternalSeqs represents an error condition. + * - Appends a block delimiter to outSeqs if one is not already present. + * See zstd.h for context regarding block delimiters. + * Returns the number of sequences after post-processing, or an error code. */ +static size_t ZSTD_postProcessSequenceProducerResult( + ZSTD_Sequence* outSeqs, size_t nbExternalSeqs, size_t outSeqsCapacity, size_t srcSize +) { + RETURN_ERROR_IF( + nbExternalSeqs > outSeqsCapacity, + sequenceProducer_failed, + "External sequence producer returned error code %lu", + (unsigned long)nbExternalSeqs + ); + + RETURN_ERROR_IF( + nbExternalSeqs == 0 && srcSize > 0, + sequenceProducer_failed, + "Got zero sequences from external sequence producer for a non-empty src buffer!" + ); + + if (srcSize == 0) { + ZSTD_memset(&outSeqs[0], 0, sizeof(ZSTD_Sequence)); + return 1; + } + + { + ZSTD_Sequence const lastSeq = outSeqs[nbExternalSeqs - 1]; + + /* We can return early if lastSeq is already a block delimiter. */ + if (lastSeq.offset == 0 && lastSeq.matchLength == 0) { + return nbExternalSeqs; + } + + /* This error condition is only possible if the external matchfinder + * produced an invalid parse, by definition of ZSTD_sequenceBound(). */ + RETURN_ERROR_IF( + nbExternalSeqs == outSeqsCapacity, + sequenceProducer_failed, + "nbExternalSeqs == outSeqsCapacity but lastSeq is not a block delimiter!" + ); + + /* lastSeq is not a block delimiter, so we need to append one. */ + ZSTD_memset(&outSeqs[nbExternalSeqs], 0, sizeof(ZSTD_Sequence)); + return nbExternalSeqs + 1; + } +} + +/* ZSTD_fastSequenceLengthSum() : + * Returns sum(litLen) + sum(matchLen) + lastLits for *seqBuf*. + * Similar to another function in zstd_compress.c (determine_blockSize), + * except it doesn't check for a block delimiter to end summation. + * Removing the early exit allows the compiler to auto-vectorize (https://godbolt.org/z/cY1cajz9P). + * This function can be deleted and replaced by determine_blockSize after we resolve issue #3456. */ +static size_t ZSTD_fastSequenceLengthSum(ZSTD_Sequence const* seqBuf, size_t seqBufSize) { + size_t matchLenSum, litLenSum, i; + matchLenSum = 0; + litLenSum = 0; + for (i = 0; i < seqBufSize; i++) { + litLenSum += seqBuf[i].litLength; + matchLenSum += seqBuf[i].matchLength; + } + return litLenSum + matchLenSum; } typedef enum { ZSTDbss_compress, ZSTDbss_noCompress } ZSTD_buildSeqStore_e; @@ -2249,8 +3195,14 @@ static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) assert(srcSize <= ZSTD_BLOCKSIZE_MAX); /* Assert that we have correctly flushed the ctx params into the ms's copy */ ZSTD_assertEqualCParams(zc->appliedParams.cParams, ms->cParams); - if (srcSize < MIN_CBLOCK_SIZE+ZSTDInternalConstants::ZSTD_blockHeaderSize+1) { - ZSTD_ldm_skipSequences(&zc->externSeqStore, srcSize, zc->appliedParams.cParams.minMatch); + /* TODO: See 3090. We reduced MIN_CBLOCK_SIZE from 3 to 2 so to compensate we are adding + * additional 1. We need to revisit and change this logic to be more consistent */ + if (srcSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1+1) { + if (zc->appliedParams.cParams.strategy >= ZSTD_btopt) { + ZSTD_ldm_skipRawSeqStoreBytes(&zc->externSeqStore, srcSize); + } else { + ZSTD_ldm_skipSequences(&zc->externSeqStore, srcSize, zc->appliedParams.cParams.minMatch); + } return ZSTDbss_noCompress; /* don't even attempt compression below a certain srcSize */ } ZSTD_resetSeqStore(&(zc->seqStore)); @@ -2266,10 +3218,10 @@ static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) /* limited update after a very long match */ { const BYTE* const base = ms->window.base; const BYTE* const istart = (const BYTE*)src; - const U32 current = (U32)(istart-base); + const U32 curr = (U32)(istart-base); if (sizeof(ptrdiff_t)==8) assert(istart - base < (ptrdiff_t)(U32)(-1)); /* ensure no overflow */ - if (current > ms->nextToUpdate + 384) - ms->nextToUpdate = current - MIN(192, (U32)(current - ms->nextToUpdate - 384)); + if (curr > ms->nextToUpdate + 384) + ms->nextToUpdate = curr - MIN(192, (U32)(curr - ms->nextToUpdate - 384)); } /* select and store sequences */ @@ -2280,16 +3232,34 @@ static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) zc->blockState.nextCBlock->rep[i] = zc->blockState.prevCBlock->rep[i]; } if (zc->externSeqStore.pos < zc->externSeqStore.size) { - assert(!zc->appliedParams.ldmParams.enableLdm); + assert(zc->appliedParams.ldmParams.enableLdm == ZSTD_ps_disable); + + /* External matchfinder + LDM is technically possible, just not implemented yet. + * We need to revisit soon and implement it. */ + RETURN_ERROR_IF( + ZSTD_hasExtSeqProd(&zc->appliedParams), + parameter_combination_unsupported, + "Long-distance matching with external sequence producer enabled is not currently supported." + ); + /* Updates ldmSeqStore.pos */ lastLLSize = ZSTD_ldm_blockCompress(&zc->externSeqStore, ms, &zc->seqStore, zc->blockState.nextCBlock->rep, + zc->appliedParams.useRowMatchFinder, src, srcSize); assert(zc->externSeqStore.pos <= zc->externSeqStore.size); - } else if (zc->appliedParams.ldmParams.enableLdm) { - rawSeqStore_t ldmSeqStore = {NULL, 0, 0, 0}; + } else if (zc->appliedParams.ldmParams.enableLdm == ZSTD_ps_enable) { + rawSeqStore_t ldmSeqStore = kNullRawSeqStore; + + /* External matchfinder + LDM is technically possible, just not implemented yet. + * We need to revisit soon and implement it. */ + RETURN_ERROR_IF( + ZSTD_hasExtSeqProd(&zc->appliedParams), + parameter_combination_unsupported, + "Long-distance matching with external sequence producer enabled is not currently supported." + ); ldmSeqStore.seq = zc->ldmSequences; ldmSeqStore.capacity = zc->maxNbLdmSequences; @@ -2302,10 +3272,78 @@ static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) ZSTD_ldm_blockCompress(&ldmSeqStore, ms, &zc->seqStore, zc->blockState.nextCBlock->rep, + zc->appliedParams.useRowMatchFinder, src, srcSize); assert(ldmSeqStore.pos == ldmSeqStore.size); - } else { /* not long range mode */ - ZSTD_blockCompressor const blockCompressor = ZSTD_selectBlockCompressor(zc->appliedParams.cParams.strategy, dictMode); + } else if (ZSTD_hasExtSeqProd(&zc->appliedParams)) { + assert( + zc->extSeqBufCapacity >= ZSTD_sequenceBound(srcSize) + ); + assert(zc->appliedParams.extSeqProdFunc != NULL); + + { U32 const windowSize = (U32)1 << zc->appliedParams.cParams.windowLog; + + size_t const nbExternalSeqs = (zc->appliedParams.extSeqProdFunc)( + zc->appliedParams.extSeqProdState, + zc->extSeqBuf, + zc->extSeqBufCapacity, + src, srcSize, + NULL, 0, /* dict and dictSize, currently not supported */ + zc->appliedParams.compressionLevel, + windowSize + ); + + size_t const nbPostProcessedSeqs = ZSTD_postProcessSequenceProducerResult( + zc->extSeqBuf, + nbExternalSeqs, + zc->extSeqBufCapacity, + srcSize + ); + + /* Return early if there is no error, since we don't need to worry about last literals */ + if (!ZSTD_isError(nbPostProcessedSeqs)) { + ZSTD_sequencePosition seqPos = {0,0,0}; + size_t const seqLenSum = ZSTD_fastSequenceLengthSum(zc->extSeqBuf, nbPostProcessedSeqs); + RETURN_ERROR_IF(seqLenSum > srcSize, externalSequences_invalid, "External sequences imply too large a block!"); + FORWARD_IF_ERROR( + ZSTD_copySequencesToSeqStoreExplicitBlockDelim( + zc, &seqPos, + zc->extSeqBuf, nbPostProcessedSeqs, + src, srcSize, + zc->appliedParams.searchForExternalRepcodes + ), + "Failed to copy external sequences to seqStore!" + ); + ms->ldmSeqStore = NULL; + DEBUGLOG(5, "Copied %lu sequences from external sequence producer to internal seqStore.", (unsigned long)nbExternalSeqs); + return ZSTDbss_compress; + } + + /* Propagate the error if fallback is disabled */ + if (!zc->appliedParams.enableMatchFinderFallback) { + return nbPostProcessedSeqs; + } + + /* Fallback to software matchfinder */ + { ZSTD_blockCompressor const blockCompressor = + ZSTD_selectBlockCompressor( + zc->appliedParams.cParams.strategy, + zc->appliedParams.useRowMatchFinder, + dictMode); + ms->ldmSeqStore = NULL; + DEBUGLOG( + 5, + "External sequence producer returned error code %lu. Falling back to internal parser.", + (unsigned long)nbExternalSeqs + ); + lastLLSize = blockCompressor(ms, &zc->seqStore, zc->blockState.nextCBlock->rep, src, srcSize); + } } + } else { /* not long range mode and no external matchfinder */ + ZSTD_blockCompressor const blockCompressor = ZSTD_selectBlockCompressor( + zc->appliedParams.cParams.strategy, + zc->appliedParams.useRowMatchFinder, + dictMode); + ms->ldmSeqStore = NULL; lastLLSize = blockCompressor(ms, &zc->seqStore, zc->blockState.nextCBlock->rep, src, srcSize); } { const BYTE* const lastLiterals = (const BYTE*)src + srcSize - lastLLSize; @@ -2314,63 +3352,113 @@ static size_t ZSTD_buildSeqStore(ZSTD_CCtx* zc, const void* src, size_t srcSize) return ZSTDbss_compress; } -static void ZSTD_copyBlockSequences(ZSTD_CCtx* zc) +static size_t ZSTD_copyBlockSequences(SeqCollector* seqCollector, const seqStore_t* seqStore, const U32 prevRepcodes[ZSTD_REP_NUM]) { - const seqStore_t* seqStore = ZSTD_getSeqStore(zc); - const seqDef* seqs = seqStore->sequencesStart; - size_t seqsSize = seqStore->sequences - seqs; - - ZSTD_Sequence* outSeqs = &zc->seqCollector.seqStart[zc->seqCollector.seqIndex]; - size_t i; size_t position; int repIdx; + const seqDef* inSeqs = seqStore->sequencesStart; + const size_t nbInSequences = seqStore->sequences - inSeqs; + const size_t nbInLiterals = (size_t)(seqStore->lit - seqStore->litStart); - assert(zc->seqCollector.seqIndex + 1 < zc->seqCollector.maxSequences); - for (i = 0, position = 0; i < seqsSize; ++i) { - outSeqs[i].offset = seqs[i].offset; - outSeqs[i].litLength = seqs[i].litLength; - outSeqs[i].matchLength = seqs[i].matchLength + MINMATCH; + ZSTD_Sequence* outSeqs = seqCollector->seqIndex == 0 ? seqCollector->seqStart : seqCollector->seqStart + seqCollector->seqIndex; + const size_t nbOutSequences = nbInSequences + 1; + size_t nbOutLiterals = 0; + repcodes_t repcodes; + size_t i; + /* Bounds check that we have enough space for every input sequence + * and the block delimiter + */ + assert(seqCollector->seqIndex <= seqCollector->maxSequences); + RETURN_ERROR_IF( + nbOutSequences > (size_t)(seqCollector->maxSequences - seqCollector->seqIndex), + dstSize_tooSmall, + "Not enough space to copy sequences"); + + ZSTD_memcpy(&repcodes, prevRepcodes, sizeof(repcodes)); + for (i = 0; i < nbInSequences; ++i) { + U32 rawOffset; + outSeqs[i].litLength = inSeqs[i].litLength; + outSeqs[i].matchLength = inSeqs[i].mlBase + MINMATCH; + outSeqs[i].rep = 0; + + /* Handle the possible single length >= 64K + * There can only be one because we add MINMATCH to every match length, + * and blocks are at most 128K. + */ if (i == seqStore->longLengthPos) { - if (seqStore->longLengthID == 1) { + if (seqStore->longLengthType == ZSTD_llt_literalLength) { outSeqs[i].litLength += 0x10000; - } else if (seqStore->longLengthID == 2) { + } else if (seqStore->longLengthType == ZSTD_llt_matchLength) { outSeqs[i].matchLength += 0x10000; } } - if (outSeqs[i].offset <= ZSTD_REP_NUM) { - outSeqs[i].rep = outSeqs[i].offset; - repIdx = (unsigned int)i - outSeqs[i].offset; - - if (outSeqs[i].litLength == 0) { - if (outSeqs[i].offset < 3) { - --repIdx; + /* Determine the raw offset given the offBase, which may be a repcode. */ + if (OFFBASE_IS_REPCODE(inSeqs[i].offBase)) { + const U32 repcode = OFFBASE_TO_REPCODE(inSeqs[i].offBase); + assert(repcode > 0); + outSeqs[i].rep = repcode; + if (outSeqs[i].litLength != 0) { + rawOffset = repcodes.rep[repcode - 1]; + } else { + if (repcode == 3) { + assert(repcodes.rep[0] > 1); + rawOffset = repcodes.rep[0] - 1; } else { - repIdx = (unsigned int)i - 1; + rawOffset = repcodes.rep[repcode]; } - ++outSeqs[i].rep; - } - assert(repIdx >= -3); - outSeqs[i].offset = repIdx >= 0 ? outSeqs[repIdx].offset : ZSTDInternalConstants::repStartValue[-repIdx - 1]; - if (outSeqs[i].rep == 4) { - --outSeqs[i].offset; } } else { - outSeqs[i].offset -= ZSTD_REP_NUM; + rawOffset = OFFBASE_TO_OFFSET(inSeqs[i].offBase); } + outSeqs[i].offset = rawOffset; - position += outSeqs[i].litLength; - outSeqs[i].matchPos = (unsigned int)position; - position += outSeqs[i].matchLength; + /* Update repcode history for the sequence */ + ZSTD_updateRep(repcodes.rep, + inSeqs[i].offBase, + inSeqs[i].litLength == 0); + + nbOutLiterals += outSeqs[i].litLength; + } + /* Insert last literals (if any exist) in the block as a sequence with ml == off == 0. + * If there are no last literals, then we'll emit (of: 0, ml: 0, ll: 0), which is a marker + * for the block boundary, according to the API. + */ + assert(nbInLiterals >= nbOutLiterals); + { + const size_t lastLLSize = nbInLiterals - nbOutLiterals; + outSeqs[nbInSequences].litLength = (U32)lastLLSize; + outSeqs[nbInSequences].matchLength = 0; + outSeqs[nbInSequences].offset = 0; + assert(nbOutSequences == nbInSequences + 1); } - zc->seqCollector.seqIndex += seqsSize; + seqCollector->seqIndex += nbOutSequences; + assert(seqCollector->seqIndex <= seqCollector->maxSequences); + + return 0; } -size_t ZSTD_getSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, - size_t outSeqsSize, const void* src, size_t srcSize) +size_t ZSTD_sequenceBound(size_t srcSize) { + const size_t maxNbSeq = (srcSize / ZSTD_MINMATCH_MIN) + 1; + const size_t maxNbDelims = (srcSize / ZSTD_BLOCKSIZE_MAX_MIN) + 1; + return maxNbSeq + maxNbDelims; +} + +size_t ZSTD_generateSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, + size_t outSeqsSize, const void* src, size_t srcSize) { const size_t dstCapacity = ZSTD_compressBound(srcSize); - void* dst = ZSTD_malloc(dstCapacity, ZSTDInternalConstants::ZSTD_defaultCMem); + void* dst = ZSTD_customMalloc(dstCapacity, ZSTD_defaultCMem); SeqCollector seqCollector; + { + int targetCBlockSize; + FORWARD_IF_ERROR(ZSTD_CCtx_getParameter(zc, ZSTD_c_targetCBlockSize, &targetCBlockSize), ""); + RETURN_ERROR_IF(targetCBlockSize != 0, parameter_unsupported, "targetCBlockSize != 0"); + } + { + int nbWorkers; + FORWARD_IF_ERROR(ZSTD_CCtx_getParameter(zc, ZSTD_c_nbWorkers, &nbWorkers), ""); + RETURN_ERROR_IF(nbWorkers != 0, parameter_unsupported, "nbWorkers != 0"); + } RETURN_ERROR_IF(dst == NULL, memory_allocation, "NULL pointer!"); @@ -2380,18 +3468,51 @@ size_t ZSTD_getSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, seqCollector.maxSequences = outSeqsSize; zc->seqCollector = seqCollector; - ZSTD_compress2(zc, dst, dstCapacity, src, srcSize); - ZSTD_free(dst, ZSTDInternalConstants::ZSTD_defaultCMem); + { + const size_t ret = ZSTD_compress2(zc, dst, dstCapacity, src, srcSize); + ZSTD_customFree(dst, ZSTD_defaultCMem); + FORWARD_IF_ERROR(ret, "ZSTD_compress2 failed"); + } + assert(zc->seqCollector.seqIndex <= ZSTD_sequenceBound(srcSize)); return zc->seqCollector.seqIndex; } -/* Returns true if the given block is a RLE block */ -static int ZSTD_isRLE(const BYTE *ip, size_t length) { +size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize) { + size_t in = 0; + size_t out = 0; + for (; in < seqsSize; ++in) { + if (sequences[in].offset == 0 && sequences[in].matchLength == 0) { + if (in != seqsSize - 1) { + sequences[in+1].litLength += sequences[in].litLength; + } + } else { + sequences[out] = sequences[in]; + ++out; + } + } + return out; +} + +/* Unrolled loop to read four size_ts of input at a time. Returns 1 if is RLE, 0 if not. */ +static int ZSTD_isRLE(const BYTE* src, size_t length) { + const BYTE* ip = src; + const BYTE value = ip[0]; + const size_t valueST = (size_t)((U64)value * 0x0101010101010101ULL); + const size_t unrollSize = sizeof(size_t) * 4; + const size_t unrollMask = unrollSize - 1; + const size_t prefixLength = length & unrollMask; size_t i; - if (length < 2) return 1; - for (i = 1; i < length; ++i) { - if (ip[0] != ip[i]) return 0; + if (length == 1) return 1; + /* Check if prefix is RLE first before using unrolled loop */ + if (prefixLength && ZSTD_count(ip+1, ip, ip+prefixLength) != prefixLength-1) { + return 0; } + for (i = prefixLength; i != length; i += unrollSize) { + size_t u; + for (u = 0; u < unrollSize; u += sizeof(size_t)) { + if (MEM_readST(ip + i + u) != valueST) { + return 0; + } } } return 1; } @@ -2407,81 +3528,856 @@ static int ZSTD_maybeRLE(seqStore_t const* seqStore) return nbSeqs < 4 && nbLits < 10; } -static void ZSTD_confirmRepcodesAndEntropyTables(ZSTD_CCtx* zc) +static void +ZSTD_blockState_confirmRepcodesAndEntropyTables(ZSTD_blockState_t* const bs) { - ZSTD_compressedBlockState_t* const tmp = zc->blockState.prevCBlock; - zc->blockState.prevCBlock = zc->blockState.nextCBlock; - zc->blockState.nextCBlock = tmp; + ZSTD_compressedBlockState_t* const tmp = bs->prevCBlock; + bs->prevCBlock = bs->nextCBlock; + bs->nextCBlock = tmp; } -static size_t ZSTD_compressBlock_internal(ZSTD_CCtx* zc, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize, U32 frame) +/* Writes the block header */ +static void +writeBlockHeader(void* op, size_t cSize, size_t blockSize, U32 lastBlock) { - /* This the upper bound for the length of an rle block. - * This isn't the actual upper bound. Finding the real threshold - * needs further investigation. - */ - const U32 rleMaxLength = 25; - size_t cSize; - const BYTE* ip = (const BYTE*)src; - BYTE* op = (BYTE*)dst; - DEBUGLOG(5, "ZSTD_compressBlock_internal (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u)", - (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, - (unsigned)zc->blockState.matchState.nextToUpdate); - - { const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); - FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); - if (bss == ZSTDbss_noCompress) { cSize = 0; goto out; } - } + U32 const cBlockHeader = cSize == 1 ? + lastBlock + (((U32)bt_rle)<<1) + (U32)(blockSize << 3) : + lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); + MEM_writeLE24(op, cBlockHeader); + DEBUGLOG(3, "writeBlockHeader: cSize: %zu blockSize: %zu lastBlock: %u", cSize, blockSize, lastBlock); +} - if (zc->seqCollector.collectSequences) { - ZSTD_copyBlockSequences(zc); +/** ZSTD_buildBlockEntropyStats_literals() : + * Builds entropy for the literals. + * Stores literals block type (raw, rle, compressed, repeat) and + * huffman description table to hufMetadata. + * Requires ENTROPY_WORKSPACE_SIZE workspace + * @return : size of huffman description table, or an error code + */ +static size_t +ZSTD_buildBlockEntropyStats_literals(void* const src, size_t srcSize, + const ZSTD_hufCTables_t* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_hufCTablesMetadata_t* hufMetadata, + const int literalsCompressionIsDisabled, + void* workspace, size_t wkspSize, + int hufFlags) +{ + BYTE* const wkspStart = (BYTE*)workspace; + BYTE* const wkspEnd = wkspStart + wkspSize; + BYTE* const countWkspStart = wkspStart; + unsigned* const countWksp = (unsigned*)workspace; + const size_t countWkspSize = (HUF_SYMBOLVALUE_MAX + 1) * sizeof(unsigned); + BYTE* const nodeWksp = countWkspStart + countWkspSize; + const size_t nodeWkspSize = (size_t)(wkspEnd - nodeWksp); + unsigned maxSymbolValue = HUF_SYMBOLVALUE_MAX; + unsigned huffLog = LitHufLog; + HUF_repeat repeat = prevHuf->repeatMode; + DEBUGLOG(5, "ZSTD_buildBlockEntropyStats_literals (srcSize=%zu)", srcSize); + + /* Prepare nextEntropy assuming reusing the existing table */ + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + + if (literalsCompressionIsDisabled) { + DEBUGLOG(5, "set_basic - disabled"); + hufMetadata->hType = set_basic; return 0; } - /* encode sequences and literals */ - cSize = ZSTD_compressSequences(&zc->seqStore, - &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, - &zc->appliedParams, - dst, dstCapacity, - srcSize, - zc->entropyWorkspace, HUF_WORKSPACE_SIZE /* statically allocated in resetCCtx */, - zc->bmi2); + /* small ? don't even attempt compression (speed opt) */ +#ifndef COMPRESS_LITERALS_SIZE_MIN +# define COMPRESS_LITERALS_SIZE_MIN 63 /* heuristic */ +#endif + { size_t const minLitSize = (prevHuf->repeatMode == HUF_repeat_valid) ? 6 : COMPRESS_LITERALS_SIZE_MIN; + if (srcSize <= minLitSize) { + DEBUGLOG(5, "set_basic - too small"); + hufMetadata->hType = set_basic; + return 0; + } } - if (frame && - /* We don't want to emit our first block as a RLE even if it qualifies because - * doing so will cause the decoder (cli only) to throw a "should consume all input error." - * This is only an issue for zstd <= v1.4.3 - */ - !zc->isFirstBlock && - cSize < rleMaxLength && - ZSTD_isRLE(ip, srcSize)) - { - cSize = 1; - op[0] = ip[0]; - } + /* Scan input and build symbol stats */ + { size_t const largest = + HIST_count_wksp (countWksp, &maxSymbolValue, + (const BYTE*)src, srcSize, + workspace, wkspSize); + FORWARD_IF_ERROR(largest, "HIST_count_wksp failed"); + if (largest == srcSize) { + /* only one literal symbol */ + DEBUGLOG(5, "set_rle"); + hufMetadata->hType = set_rle; + return 0; + } + if (largest <= (srcSize >> 7)+4) { + /* heuristic: likely not compressible */ + DEBUGLOG(5, "set_basic - no gain"); + hufMetadata->hType = set_basic; + return 0; + } } -out: - if (!ZSTD_isError(cSize) && cSize > 1) { - ZSTD_confirmRepcodesAndEntropyTables(zc); + /* Validate the previous Huffman table */ + if (repeat == HUF_repeat_check + && !HUF_validateCTable((HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue)) { + repeat = HUF_repeat_none; } - /* We check that dictionaries have offset codes available for the first - * block. After the first block, the offcode table might not have large - * enough codes to represent the offsets in the data. - */ - if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) - zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; - return cSize; + /* Build Huffman Tree */ + ZSTD_memset(nextHuf->CTable, 0, sizeof(nextHuf->CTable)); + huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue, nodeWksp, nodeWkspSize, nextHuf->CTable, countWksp, hufFlags); + assert(huffLog <= LitHufLog); + { size_t const maxBits = HUF_buildCTable_wksp((HUF_CElt*)nextHuf->CTable, countWksp, + maxSymbolValue, huffLog, + nodeWksp, nodeWkspSize); + FORWARD_IF_ERROR(maxBits, "HUF_buildCTable_wksp"); + huffLog = (U32)maxBits; + } + { /* Build and write the CTable */ + size_t const newCSize = HUF_estimateCompressedSize( + (HUF_CElt*)nextHuf->CTable, countWksp, maxSymbolValue); + size_t const hSize = HUF_writeCTable_wksp( + hufMetadata->hufDesBuffer, sizeof(hufMetadata->hufDesBuffer), + (HUF_CElt*)nextHuf->CTable, maxSymbolValue, huffLog, + nodeWksp, nodeWkspSize); + /* Check against repeating the previous CTable */ + if (repeat != HUF_repeat_none) { + size_t const oldCSize = HUF_estimateCompressedSize( + (HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue); + if (oldCSize < srcSize && (oldCSize <= hSize + newCSize || hSize + 12 >= srcSize)) { + DEBUGLOG(5, "set_repeat - smaller"); + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + hufMetadata->hType = set_repeat; + return 0; + } } + if (newCSize + hSize >= srcSize) { + DEBUGLOG(5, "set_basic - no gains"); + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + hufMetadata->hType = set_basic; + return 0; + } + DEBUGLOG(5, "set_compressed (hSize=%u)", (U32)hSize); + hufMetadata->hType = set_compressed; + nextHuf->repeatMode = HUF_repeat_check; + return hSize; + } } -static size_t ZSTD_compressBlock_targetCBlockSize_body(ZSTD_CCtx* zc, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize, - const size_t bss, U32 lastBlock) + +/* ZSTD_buildDummySequencesStatistics(): + * Returns a ZSTD_symbolEncodingTypeStats_t with all encoding types as set_basic, + * and updates nextEntropy to the appropriate repeatMode. + */ +static ZSTD_symbolEncodingTypeStats_t +ZSTD_buildDummySequencesStatistics(ZSTD_fseCTables_t* nextEntropy) { - DEBUGLOG(6, "Attempting ZSTD_compressSuperBlock()"); + ZSTD_symbolEncodingTypeStats_t stats = {set_basic, set_basic, set_basic, 0, 0, 0}; + nextEntropy->litlength_repeatMode = FSE_repeat_none; + nextEntropy->offcode_repeatMode = FSE_repeat_none; + nextEntropy->matchlength_repeatMode = FSE_repeat_none; + return stats; +} + +/** ZSTD_buildBlockEntropyStats_sequences() : + * Builds entropy for the sequences. + * Stores symbol compression modes and fse table to fseMetadata. + * Requires ENTROPY_WORKSPACE_SIZE wksp. + * @return : size of fse tables or error code */ +static size_t +ZSTD_buildBlockEntropyStats_sequences( + const seqStore_t* seqStorePtr, + const ZSTD_fseCTables_t* prevEntropy, + ZSTD_fseCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize) +{ + ZSTD_strategy const strategy = cctxParams->cParams.strategy; + size_t const nbSeq = (size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + BYTE* const ostart = fseMetadata->fseTablesBuffer; + BYTE* const oend = ostart + sizeof(fseMetadata->fseTablesBuffer); + BYTE* op = ostart; + unsigned* countWorkspace = (unsigned*)workspace; + unsigned* entropyWorkspace = countWorkspace + (MaxSeq + 1); + size_t entropyWorkspaceSize = wkspSize - (MaxSeq + 1) * sizeof(*countWorkspace); + ZSTD_symbolEncodingTypeStats_t stats; + + DEBUGLOG(5, "ZSTD_buildBlockEntropyStats_sequences (nbSeq=%zu)", nbSeq); + stats = nbSeq != 0 ? ZSTD_buildSequencesStatistics(seqStorePtr, nbSeq, + prevEntropy, nextEntropy, op, oend, + strategy, countWorkspace, + entropyWorkspace, entropyWorkspaceSize) + : ZSTD_buildDummySequencesStatistics(nextEntropy); + FORWARD_IF_ERROR(stats.size, "ZSTD_buildSequencesStatistics failed!"); + fseMetadata->llType = (symbolEncodingType_e) stats.LLtype; + fseMetadata->ofType = (symbolEncodingType_e) stats.Offtype; + fseMetadata->mlType = (symbolEncodingType_e) stats.MLtype; + fseMetadata->lastCountSize = stats.lastCountSize; + return stats.size; +} + + +/** ZSTD_buildBlockEntropyStats() : + * Builds entropy for the block. + * Requires workspace size ENTROPY_WORKSPACE_SIZE + * @return : 0 on success, or an error code + * Note : also employed in superblock + */ +size_t ZSTD_buildBlockEntropyStats( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize) +{ + size_t const litSize = (size_t)(seqStorePtr->lit - seqStorePtr->litStart); + int const huf_useOptDepth = (cctxParams->cParams.strategy >= HUF_OPTIMAL_DEPTH_THRESHOLD); + int const hufFlags = huf_useOptDepth ? HUF_flags_optimalDepth : 0; + + entropyMetadata->hufMetadata.hufDesSize = + ZSTD_buildBlockEntropyStats_literals(seqStorePtr->litStart, litSize, + &prevEntropy->huf, &nextEntropy->huf, + &entropyMetadata->hufMetadata, + ZSTD_literalsCompressionIsDisabled(cctxParams), + workspace, wkspSize, hufFlags); + + FORWARD_IF_ERROR(entropyMetadata->hufMetadata.hufDesSize, "ZSTD_buildBlockEntropyStats_literals failed"); + entropyMetadata->fseMetadata.fseTablesSize = + ZSTD_buildBlockEntropyStats_sequences(seqStorePtr, + &prevEntropy->fse, &nextEntropy->fse, + cctxParams, + &entropyMetadata->fseMetadata, + workspace, wkspSize); + FORWARD_IF_ERROR(entropyMetadata->fseMetadata.fseTablesSize, "ZSTD_buildBlockEntropyStats_sequences failed"); + return 0; +} + +/* Returns the size estimate for the literals section (header + content) of a block */ +static size_t +ZSTD_estimateBlockSize_literal(const BYTE* literals, size_t litSize, + const ZSTD_hufCTables_t* huf, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + unsigned* const countWksp = (unsigned*)workspace; + unsigned maxSymbolValue = HUF_SYMBOLVALUE_MAX; + size_t literalSectionHeaderSize = 3 + (litSize >= 1 KB) + (litSize >= 16 KB); + U32 singleStream = litSize < 256; + + if (hufMetadata->hType == set_basic) return litSize; + else if (hufMetadata->hType == set_rle) return 1; + else if (hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat) { + size_t const largest = HIST_count_wksp (countWksp, &maxSymbolValue, (const BYTE*)literals, litSize, workspace, wkspSize); + if (ZSTD_isError(largest)) return litSize; + { size_t cLitSizeEstimate = HUF_estimateCompressedSize((const HUF_CElt*)huf->CTable, countWksp, maxSymbolValue); + if (writeEntropy) cLitSizeEstimate += hufMetadata->hufDesSize; + if (!singleStream) cLitSizeEstimate += 6; /* multi-stream huffman uses 6-byte jump table */ + return cLitSizeEstimate + literalSectionHeaderSize; + } } + assert(0); /* impossible */ + return 0; +} + +/* Returns the size estimate for the FSE-compressed symbols (of, ml, ll) of a block */ +static size_t +ZSTD_estimateBlockSize_symbolType(symbolEncodingType_e type, + const BYTE* codeTable, size_t nbSeq, unsigned maxCode, + const FSE_CTable* fseCTable, + const U8* additionalBits, + short const* defaultNorm, U32 defaultNormLog, U32 defaultMax, + void* workspace, size_t wkspSize) +{ + unsigned* const countWksp = (unsigned*)workspace; + const BYTE* ctp = codeTable; + const BYTE* const ctStart = ctp; + const BYTE* const ctEnd = ctStart + nbSeq; + size_t cSymbolTypeSizeEstimateInBits = 0; + unsigned max = maxCode; + + HIST_countFast_wksp(countWksp, &max, codeTable, nbSeq, workspace, wkspSize); /* can't fail */ + if (type == set_basic) { + /* We selected this encoding type, so it must be valid. */ + assert(max <= defaultMax); + (void)defaultMax; + cSymbolTypeSizeEstimateInBits = ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, countWksp, max); + } else if (type == set_rle) { + cSymbolTypeSizeEstimateInBits = 0; + } else if (type == set_compressed || type == set_repeat) { + cSymbolTypeSizeEstimateInBits = ZSTD_fseBitCost(fseCTable, countWksp, max); + } + if (ZSTD_isError(cSymbolTypeSizeEstimateInBits)) { + return nbSeq * 10; + } + while (ctp < ctEnd) { + if (additionalBits) cSymbolTypeSizeEstimateInBits += additionalBits[*ctp]; + else cSymbolTypeSizeEstimateInBits += *ctp; /* for offset, offset code is also the number of additional bits */ + ctp++; + } + return cSymbolTypeSizeEstimateInBits >> 3; +} + +/* Returns the size estimate for the sequences section (header + content) of a block */ +static size_t +ZSTD_estimateBlockSize_sequences(const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_fseCTables_t* fseTables, + const ZSTD_fseCTablesMetadata_t* fseMetadata, + void* workspace, size_t wkspSize, + int writeEntropy) +{ + size_t sequencesSectionHeaderSize = 1 /* seqHead */ + 1 /* min seqSize size */ + (nbSeq >= 128) + (nbSeq >= LONGNBSEQ); + size_t cSeqSizeEstimate = 0; + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->ofType, ofCodeTable, nbSeq, MaxOff, + fseTables->offcodeCTable, NULL, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->llType, llCodeTable, nbSeq, MaxLL, + fseTables->litlengthCTable, LL_bits, + LL_defaultNorm, LL_defaultNormLog, MaxLL, + workspace, wkspSize); + cSeqSizeEstimate += ZSTD_estimateBlockSize_symbolType(fseMetadata->mlType, mlCodeTable, nbSeq, MaxML, + fseTables->matchlengthCTable, ML_bits, + ML_defaultNorm, ML_defaultNormLog, MaxML, + workspace, wkspSize); + if (writeEntropy) cSeqSizeEstimate += fseMetadata->fseTablesSize; + return cSeqSizeEstimate + sequencesSectionHeaderSize; +} + +/* Returns the size estimate for a given stream of literals, of, ll, ml */ +static size_t +ZSTD_estimateBlockSize(const BYTE* literals, size_t litSize, + const BYTE* ofCodeTable, + const BYTE* llCodeTable, + const BYTE* mlCodeTable, + size_t nbSeq, + const ZSTD_entropyCTables_t* entropy, + const ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize, + int writeLitEntropy, int writeSeqEntropy) +{ + size_t const literalsSize = ZSTD_estimateBlockSize_literal(literals, litSize, + &entropy->huf, &entropyMetadata->hufMetadata, + workspace, wkspSize, writeLitEntropy); + size_t const seqSize = ZSTD_estimateBlockSize_sequences(ofCodeTable, llCodeTable, mlCodeTable, + nbSeq, &entropy->fse, &entropyMetadata->fseMetadata, + workspace, wkspSize, writeSeqEntropy); + return seqSize + literalsSize + ZSTD_blockHeaderSize; +} + +/* Builds entropy statistics and uses them for blocksize estimation. + * + * @return: estimated compressed size of the seqStore, or a zstd error. + */ +static size_t +ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(seqStore_t* seqStore, ZSTD_CCtx* zc) +{ + ZSTD_entropyCTablesMetadata_t* const entropyMetadata = &zc->blockSplitCtx.entropyMetadata; + DEBUGLOG(6, "ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize()"); + FORWARD_IF_ERROR(ZSTD_buildBlockEntropyStats(seqStore, + &zc->blockState.prevCBlock->entropy, + &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + entropyMetadata, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE), ""); + return ZSTD_estimateBlockSize( + seqStore->litStart, (size_t)(seqStore->lit - seqStore->litStart), + seqStore->ofCode, seqStore->llCode, seqStore->mlCode, + (size_t)(seqStore->sequences - seqStore->sequencesStart), + &zc->blockState.nextCBlock->entropy, + entropyMetadata, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE, + (int)(entropyMetadata->hufMetadata.hType == set_compressed), 1); +} + +/* Returns literals bytes represented in a seqStore */ +static size_t ZSTD_countSeqStoreLiteralsBytes(const seqStore_t* const seqStore) +{ + size_t literalsBytes = 0; + size_t const nbSeqs = (size_t)(seqStore->sequences - seqStore->sequencesStart); + size_t i; + for (i = 0; i < nbSeqs; ++i) { + seqDef const seq = seqStore->sequencesStart[i]; + literalsBytes += seq.litLength; + if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_literalLength) { + literalsBytes += 0x10000; + } } + return literalsBytes; +} + +/* Returns match bytes represented in a seqStore */ +static size_t ZSTD_countSeqStoreMatchBytes(const seqStore_t* const seqStore) +{ + size_t matchBytes = 0; + size_t const nbSeqs = (size_t)(seqStore->sequences - seqStore->sequencesStart); + size_t i; + for (i = 0; i < nbSeqs; ++i) { + seqDef seq = seqStore->sequencesStart[i]; + matchBytes += seq.mlBase + MINMATCH; + if (i == seqStore->longLengthPos && seqStore->longLengthType == ZSTD_llt_matchLength) { + matchBytes += 0x10000; + } } + return matchBytes; +} + +/* Derives the seqStore that is a chunk of the originalSeqStore from [startIdx, endIdx). + * Stores the result in resultSeqStore. + */ +static void ZSTD_deriveSeqStoreChunk(seqStore_t* resultSeqStore, + const seqStore_t* originalSeqStore, + size_t startIdx, size_t endIdx) +{ + *resultSeqStore = *originalSeqStore; + if (startIdx > 0) { + resultSeqStore->sequences = originalSeqStore->sequencesStart + startIdx; + resultSeqStore->litStart += ZSTD_countSeqStoreLiteralsBytes(resultSeqStore); + } + + /* Move longLengthPos into the correct position if necessary */ + if (originalSeqStore->longLengthType != ZSTD_llt_none) { + if (originalSeqStore->longLengthPos < startIdx || originalSeqStore->longLengthPos > endIdx) { + resultSeqStore->longLengthType = ZSTD_llt_none; + } else { + resultSeqStore->longLengthPos -= (U32)startIdx; + } + } + resultSeqStore->sequencesStart = originalSeqStore->sequencesStart + startIdx; + resultSeqStore->sequences = originalSeqStore->sequencesStart + endIdx; + if (endIdx == (size_t)(originalSeqStore->sequences - originalSeqStore->sequencesStart)) { + /* This accounts for possible last literals if the derived chunk reaches the end of the block */ + assert(resultSeqStore->lit == originalSeqStore->lit); + } else { + size_t const literalsBytes = ZSTD_countSeqStoreLiteralsBytes(resultSeqStore); + resultSeqStore->lit = resultSeqStore->litStart + literalsBytes; + } + resultSeqStore->llCode += startIdx; + resultSeqStore->mlCode += startIdx; + resultSeqStore->ofCode += startIdx; +} + +/** + * Returns the raw offset represented by the combination of offBase, ll0, and repcode history. + * offBase must represent a repcode in the numeric representation of ZSTD_storeSeq(). + */ +static U32 +ZSTD_resolveRepcodeToRawOffset(const U32 rep[ZSTD_REP_NUM], const U32 offBase, const U32 ll0) +{ + U32 const adjustedRepCode = OFFBASE_TO_REPCODE(offBase) - 1 + ll0; /* [ 0 - 3 ] */ + assert(OFFBASE_IS_REPCODE(offBase)); + if (adjustedRepCode == ZSTD_REP_NUM) { + assert(ll0); + /* litlength == 0 and offCode == 2 implies selection of first repcode - 1 + * This is only valid if it results in a valid offset value, aka > 0. + * Note : it may happen that `rep[0]==1` in exceptional circumstances. + * In which case this function will return 0, which is an invalid offset. + * It's not an issue though, since this value will be + * compared and discarded within ZSTD_seqStore_resolveOffCodes(). + */ + return rep[0] - 1; + } + return rep[adjustedRepCode]; +} + +/** + * ZSTD_seqStore_resolveOffCodes() reconciles any possible divergences in offset history that may arise + * due to emission of RLE/raw blocks that disturb the offset history, + * and replaces any repcodes within the seqStore that may be invalid. + * + * dRepcodes are updated as would be on the decompression side. + * cRepcodes are updated exactly in accordance with the seqStore. + * + * Note : this function assumes seq->offBase respects the following numbering scheme : + * 0 : invalid + * 1-3 : repcode 1-3 + * 4+ : real_offset+3 + */ +static void +ZSTD_seqStore_resolveOffCodes(repcodes_t* const dRepcodes, repcodes_t* const cRepcodes, + const seqStore_t* const seqStore, U32 const nbSeq) +{ + U32 idx = 0; + U32 const longLitLenIdx = seqStore->longLengthType == ZSTD_llt_literalLength ? seqStore->longLengthPos : nbSeq; + for (; idx < nbSeq; ++idx) { + seqDef* const seq = seqStore->sequencesStart + idx; + U32 const ll0 = (seq->litLength == 0) && (idx != longLitLenIdx); + U32 const offBase = seq->offBase; + assert(offBase > 0); + if (OFFBASE_IS_REPCODE(offBase)) { + U32 const dRawOffset = ZSTD_resolveRepcodeToRawOffset(dRepcodes->rep, offBase, ll0); + U32 const cRawOffset = ZSTD_resolveRepcodeToRawOffset(cRepcodes->rep, offBase, ll0); + /* Adjust simulated decompression repcode history if we come across a mismatch. Replace + * the repcode with the offset it actually references, determined by the compression + * repcode history. + */ + if (dRawOffset != cRawOffset) { + seq->offBase = OFFSET_TO_OFFBASE(cRawOffset); + } + } + /* Compression repcode history is always updated with values directly from the unmodified seqStore. + * Decompression repcode history may use modified seq->offset value taken from compression repcode history. + */ + ZSTD_updateRep(dRepcodes->rep, seq->offBase, ll0); + ZSTD_updateRep(cRepcodes->rep, offBase, ll0); + } +} + +/* ZSTD_compressSeqStore_singleBlock(): + * Compresses a seqStore into a block with a block header, into the buffer dst. + * + * Returns the total size of that block (including header) or a ZSTD error code. + */ +static size_t +ZSTD_compressSeqStore_singleBlock(ZSTD_CCtx* zc, + const seqStore_t* const seqStore, + repcodes_t* const dRep, repcodes_t* const cRep, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + U32 lastBlock, U32 isPartition) +{ + const U32 rleMaxLength = 25; + BYTE* op = (BYTE*)dst; + const BYTE* ip = (const BYTE*)src; + size_t cSize; + size_t cSeqsSize; + + /* In case of an RLE or raw block, the simulated decompression repcode history must be reset */ + repcodes_t const dRepOriginal = *dRep; + DEBUGLOG(5, "ZSTD_compressSeqStore_singleBlock"); + if (isPartition) + ZSTD_seqStore_resolveOffCodes(dRep, cRep, seqStore, (U32)(seqStore->sequences - seqStore->sequencesStart)); + + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize, dstSize_tooSmall, "Block header doesn't fit"); + cSeqsSize = ZSTD_entropyCompressSeqStore(seqStore, + &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + op + ZSTD_blockHeaderSize, dstCapacity - ZSTD_blockHeaderSize, + srcSize, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + zc->bmi2); + FORWARD_IF_ERROR(cSeqsSize, "ZSTD_entropyCompressSeqStore failed!"); + + if (!zc->isFirstBlock && + cSeqsSize < rleMaxLength && + ZSTD_isRLE((BYTE const*)src, srcSize)) { + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + cSeqsSize = 1; + } + + /* Sequence collection not supported when block splitting */ + if (zc->seqCollector.collectSequences) { + FORWARD_IF_ERROR(ZSTD_copyBlockSequences(&zc->seqCollector, seqStore, dRepOriginal.rep), "copyBlockSequences failed"); + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return 0; + } + + if (cSeqsSize == 0) { + cSize = ZSTD_noCompressBlock(op, dstCapacity, ip, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "Nocompress block failed"); + DEBUGLOG(4, "Writing out nocompress block, size: %zu", cSize); + *dRep = dRepOriginal; /* reset simulated decompression repcode history */ + } else if (cSeqsSize == 1) { + cSize = ZSTD_rleCompressBlock(op, dstCapacity, *ip, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "RLE compress block failed"); + DEBUGLOG(4, "Writing out RLE block, size: %zu", cSize); + *dRep = dRepOriginal; /* reset simulated decompression repcode history */ + } else { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + writeBlockHeader(op, cSeqsSize, srcSize, lastBlock); + cSize = ZSTD_blockHeaderSize + cSeqsSize; + DEBUGLOG(4, "Writing out compressed block, size: %zu", cSize); + } + + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + return cSize; +} + +/* Struct to keep track of where we are in our recursive calls. */ +typedef struct { + U32* splitLocations; /* Array of split indices */ + size_t idx; /* The current index within splitLocations being worked on */ +} seqStoreSplits; + +#define MIN_SEQUENCES_BLOCK_SPLITTING 300 + +/* Helper function to perform the recursive search for block splits. + * Estimates the cost of seqStore prior to split, and estimates the cost of splitting the sequences in half. + * If advantageous to split, then we recurse down the two sub-blocks. + * If not, or if an error occurred in estimation, then we do not recurse. + * + * Note: The recursion depth is capped by a heuristic minimum number of sequences, + * defined by MIN_SEQUENCES_BLOCK_SPLITTING. + * In theory, this means the absolute largest recursion depth is 10 == log2(maxNbSeqInBlock/MIN_SEQUENCES_BLOCK_SPLITTING). + * In practice, recursion depth usually doesn't go beyond 4. + * + * Furthermore, the number of splits is capped by ZSTD_MAX_NB_BLOCK_SPLITS. + * At ZSTD_MAX_NB_BLOCK_SPLITS == 196 with the current existing blockSize + * maximum of 128 KB, this value is actually impossible to reach. + */ +static void +ZSTD_deriveBlockSplitsHelper(seqStoreSplits* splits, size_t startIdx, size_t endIdx, + ZSTD_CCtx* zc, const seqStore_t* origSeqStore) +{ + seqStore_t* const fullSeqStoreChunk = &zc->blockSplitCtx.fullSeqStoreChunk; + seqStore_t* const firstHalfSeqStore = &zc->blockSplitCtx.firstHalfSeqStore; + seqStore_t* const secondHalfSeqStore = &zc->blockSplitCtx.secondHalfSeqStore; + size_t estimatedOriginalSize; + size_t estimatedFirstHalfSize; + size_t estimatedSecondHalfSize; + size_t midIdx = (startIdx + endIdx)/2; + + DEBUGLOG(5, "ZSTD_deriveBlockSplitsHelper: startIdx=%zu endIdx=%zu", startIdx, endIdx); + assert(endIdx >= startIdx); + if (endIdx - startIdx < MIN_SEQUENCES_BLOCK_SPLITTING || splits->idx >= ZSTD_MAX_NB_BLOCK_SPLITS) { + DEBUGLOG(6, "ZSTD_deriveBlockSplitsHelper: Too few sequences (%zu)", endIdx - startIdx); + return; + } + ZSTD_deriveSeqStoreChunk(fullSeqStoreChunk, origSeqStore, startIdx, endIdx); + ZSTD_deriveSeqStoreChunk(firstHalfSeqStore, origSeqStore, startIdx, midIdx); + ZSTD_deriveSeqStoreChunk(secondHalfSeqStore, origSeqStore, midIdx, endIdx); + estimatedOriginalSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(fullSeqStoreChunk, zc); + estimatedFirstHalfSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(firstHalfSeqStore, zc); + estimatedSecondHalfSize = ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(secondHalfSeqStore, zc); + DEBUGLOG(5, "Estimated original block size: %zu -- First half split: %zu -- Second half split: %zu", + estimatedOriginalSize, estimatedFirstHalfSize, estimatedSecondHalfSize); + if (ZSTD_isError(estimatedOriginalSize) || ZSTD_isError(estimatedFirstHalfSize) || ZSTD_isError(estimatedSecondHalfSize)) { + return; + } + if (estimatedFirstHalfSize + estimatedSecondHalfSize < estimatedOriginalSize) { + DEBUGLOG(5, "split decided at seqNb:%zu", midIdx); + ZSTD_deriveBlockSplitsHelper(splits, startIdx, midIdx, zc, origSeqStore); + splits->splitLocations[splits->idx] = (U32)midIdx; + splits->idx++; + ZSTD_deriveBlockSplitsHelper(splits, midIdx, endIdx, zc, origSeqStore); + } +} + +/* Base recursive function. + * Populates a table with intra-block partition indices that can improve compression ratio. + * + * @return: number of splits made (which equals the size of the partition table - 1). + */ +static size_t ZSTD_deriveBlockSplits(ZSTD_CCtx* zc, U32 partitions[], U32 nbSeq) +{ + seqStoreSplits splits; + splits.splitLocations = partitions; + splits.idx = 0; + if (nbSeq <= 4) { + DEBUGLOG(5, "ZSTD_deriveBlockSplits: Too few sequences to split (%u <= 4)", nbSeq); + /* Refuse to try and split anything with less than 4 sequences */ + return 0; + } + ZSTD_deriveBlockSplitsHelper(&splits, 0, nbSeq, zc, &zc->seqStore); + splits.splitLocations[splits.idx] = nbSeq; + DEBUGLOG(5, "ZSTD_deriveBlockSplits: final nb partitions: %zu", splits.idx+1); + return splits.idx; +} + +/* ZSTD_compressBlock_splitBlock(): + * Attempts to split a given block into multiple blocks to improve compression ratio. + * + * Returns combined size of all blocks (which includes headers), or a ZSTD error code. + */ +static size_t +ZSTD_compressBlock_splitBlock_internal(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t blockSize, + U32 lastBlock, U32 nbSeq) +{ + size_t cSize = 0; + const BYTE* ip = (const BYTE*)src; + BYTE* op = (BYTE*)dst; + size_t i = 0; + size_t srcBytesTotal = 0; + U32* const partitions = zc->blockSplitCtx.partitions; /* size == ZSTD_MAX_NB_BLOCK_SPLITS */ + seqStore_t* const nextSeqStore = &zc->blockSplitCtx.nextSeqStore; + seqStore_t* const currSeqStore = &zc->blockSplitCtx.currSeqStore; + size_t const numSplits = ZSTD_deriveBlockSplits(zc, partitions, nbSeq); + + /* If a block is split and some partitions are emitted as RLE/uncompressed, then repcode history + * may become invalid. In order to reconcile potentially invalid repcodes, we keep track of two + * separate repcode histories that simulate repcode history on compression and decompression side, + * and use the histories to determine whether we must replace a particular repcode with its raw offset. + * + * 1) cRep gets updated for each partition, regardless of whether the block was emitted as uncompressed + * or RLE. This allows us to retrieve the offset value that an invalid repcode references within + * a nocompress/RLE block. + * 2) dRep gets updated only for compressed partitions, and when a repcode gets replaced, will use + * the replacement offset value rather than the original repcode to update the repcode history. + * dRep also will be the final repcode history sent to the next block. + * + * See ZSTD_seqStore_resolveOffCodes() for more details. + */ + repcodes_t dRep; + repcodes_t cRep; + ZSTD_memcpy(dRep.rep, zc->blockState.prevCBlock->rep, sizeof(repcodes_t)); + ZSTD_memcpy(cRep.rep, zc->blockState.prevCBlock->rep, sizeof(repcodes_t)); + ZSTD_memset(nextSeqStore, 0, sizeof(seqStore_t)); + + DEBUGLOG(5, "ZSTD_compressBlock_splitBlock_internal (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, + (unsigned)zc->blockState.matchState.nextToUpdate); + + if (numSplits == 0) { + size_t cSizeSingleBlock = + ZSTD_compressSeqStore_singleBlock(zc, &zc->seqStore, + &dRep, &cRep, + op, dstCapacity, + ip, blockSize, + lastBlock, 0 /* isPartition */); + FORWARD_IF_ERROR(cSizeSingleBlock, "Compressing single block from splitBlock_internal() failed!"); + DEBUGLOG(5, "ZSTD_compressBlock_splitBlock_internal: No splits"); + assert(zc->blockSize <= ZSTD_BLOCKSIZE_MAX); + assert(cSizeSingleBlock <= zc->blockSize + ZSTD_blockHeaderSize); + return cSizeSingleBlock; + } + + ZSTD_deriveSeqStoreChunk(currSeqStore, &zc->seqStore, 0, partitions[0]); + for (i = 0; i <= numSplits; ++i) { + size_t cSizeChunk; + U32 const lastPartition = (i == numSplits); + U32 lastBlockEntireSrc = 0; + + size_t srcBytes = ZSTD_countSeqStoreLiteralsBytes(currSeqStore) + ZSTD_countSeqStoreMatchBytes(currSeqStore); + srcBytesTotal += srcBytes; + if (lastPartition) { + /* This is the final partition, need to account for possible last literals */ + srcBytes += blockSize - srcBytesTotal; + lastBlockEntireSrc = lastBlock; + } else { + ZSTD_deriveSeqStoreChunk(nextSeqStore, &zc->seqStore, partitions[i], partitions[i+1]); + } + + cSizeChunk = ZSTD_compressSeqStore_singleBlock(zc, currSeqStore, + &dRep, &cRep, + op, dstCapacity, + ip, srcBytes, + lastBlockEntireSrc, 1 /* isPartition */); + DEBUGLOG(5, "Estimated size: %zu vs %zu : actual size", + ZSTD_buildEntropyStatisticsAndEstimateSubBlockSize(currSeqStore, zc), cSizeChunk); + FORWARD_IF_ERROR(cSizeChunk, "Compressing chunk failed!"); + + ip += srcBytes; + op += cSizeChunk; + dstCapacity -= cSizeChunk; + cSize += cSizeChunk; + *currSeqStore = *nextSeqStore; + assert(cSizeChunk <= zc->blockSize + ZSTD_blockHeaderSize); + } + /* cRep and dRep may have diverged during the compression. + * If so, we use the dRep repcodes for the next block. + */ + ZSTD_memcpy(zc->blockState.prevCBlock->rep, dRep.rep, sizeof(repcodes_t)); + return cSize; +} + +static size_t +ZSTD_compressBlock_splitBlock(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, U32 lastBlock) +{ + U32 nbSeq; + size_t cSize; + DEBUGLOG(4, "ZSTD_compressBlock_splitBlock"); + assert(zc->appliedParams.useBlockSplitter == ZSTD_ps_enable); + + { const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + if (bss == ZSTDbss_noCompress) { + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + RETURN_ERROR_IF(zc->seqCollector.collectSequences, sequenceProducer_failed, "Uncompressible block"); + cSize = ZSTD_noCompressBlock(dst, dstCapacity, src, srcSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); + DEBUGLOG(4, "ZSTD_compressBlock_splitBlock: Nocompress block"); + return cSize; + } + nbSeq = (U32)(zc->seqStore.sequences - zc->seqStore.sequencesStart); + } + + cSize = ZSTD_compressBlock_splitBlock_internal(zc, dst, dstCapacity, src, srcSize, lastBlock, nbSeq); + FORWARD_IF_ERROR(cSize, "Splitting blocks failed!"); + return cSize; +} + +static size_t +ZSTD_compressBlock_internal(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, U32 frame) +{ + /* This is an estimated upper bound for the length of an rle block. + * This isn't the actual upper bound. + * Finding the real threshold needs further investigation. + */ + const U32 rleMaxLength = 25; + size_t cSize; + const BYTE* ip = (const BYTE*)src; + BYTE* op = (BYTE*)dst; + DEBUGLOG(5, "ZSTD_compressBlock_internal (dstCapacity=%u, dictLimit=%u, nextToUpdate=%u)", + (unsigned)dstCapacity, (unsigned)zc->blockState.matchState.window.dictLimit, + (unsigned)zc->blockState.matchState.nextToUpdate); + + { const size_t bss = ZSTD_buildSeqStore(zc, src, srcSize); + FORWARD_IF_ERROR(bss, "ZSTD_buildSeqStore failed"); + if (bss == ZSTDbss_noCompress) { + RETURN_ERROR_IF(zc->seqCollector.collectSequences, sequenceProducer_failed, "Uncompressible block"); + cSize = 0; + goto out; + } + } + + if (zc->seqCollector.collectSequences) { + FORWARD_IF_ERROR(ZSTD_copyBlockSequences(&zc->seqCollector, ZSTD_getSeqStore(zc), zc->blockState.prevCBlock->rep), "copyBlockSequences failed"); + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + return 0; + } + + /* encode sequences and literals */ + cSize = ZSTD_entropyCompressSeqStore(&zc->seqStore, + &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, + &zc->appliedParams, + dst, dstCapacity, + srcSize, + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + zc->bmi2); + + if (frame && + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + !zc->isFirstBlock && + cSize < rleMaxLength && + ZSTD_isRLE(ip, srcSize)) + { + cSize = 1; + op[0] = ip[0]; + } + +out: + if (!ZSTD_isError(cSize) && cSize > 1) { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); + } + /* We check that dictionaries have offset codes available for the first + * block. After the first block, the offcode table might not have large + * enough codes to represent the offsets in the data. + */ + if (zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + zc->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + return cSize; +} + +static size_t ZSTD_compressBlock_targetCBlockSize_body(ZSTD_CCtx* zc, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const size_t bss, U32 lastBlock) +{ + DEBUGLOG(6, "Attempting ZSTD_compressSuperBlock()"); if (bss == ZSTDbss_compress) { if (/* We don't want to emit our first block as a RLE even if it qualifies because * doing so will cause the decoder (cli only) to throw a "should consume all input error." @@ -2511,18 +4407,19 @@ static size_t ZSTD_compressBlock_targetCBlockSize_body(ZSTD_CCtx* zc, * * cSize >= blockBound(srcSize): We have expanded the block too much so * emit an uncompressed block. */ - { - size_t const cSize = ZSTD_compressSuperBlock(zc, dst, dstCapacity, src, srcSize, lastBlock); + { size_t const cSize = + ZSTD_compressSuperBlock(zc, dst, dstCapacity, src, srcSize, lastBlock); if (cSize != ERROR(dstSize_tooSmall)) { - size_t const maxCSize = srcSize - ZSTD_minGain(srcSize, zc->appliedParams.cParams.strategy); + size_t const maxCSize = + srcSize - ZSTD_minGain(srcSize, zc->appliedParams.cParams.strategy); FORWARD_IF_ERROR(cSize, "ZSTD_compressSuperBlock failed"); - if (cSize != 0 && cSize < maxCSize + ZSTDInternalConstants::ZSTD_blockHeaderSize) { - ZSTD_confirmRepcodesAndEntropyTables(zc); + if (cSize != 0 && cSize < maxCSize + ZSTD_blockHeaderSize) { + ZSTD_blockState_confirmRepcodesAndEntropyTables(&zc->blockState); return cSize; } } } - } + } /* if (bss == ZSTDbss_compress)*/ DEBUGLOG(6, "Resorting to ZSTD_noCompressBlock()"); /* Superblock compression failed, attempt to emit a single no compress block. @@ -2557,9 +4454,9 @@ static void ZSTD_overflowCorrectIfNeeded(ZSTD_matchState_t* ms, void const* ip, void const* iend) { - if (ZSTD_window_needOverflowCorrection(ms->window, iend)) { - U32 const maxDist = (U32)1 << params->cParams.windowLog; - U32 const cycleLog = ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy); + U32 const cycleLog = ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy); + U32 const maxDist = (U32)1 << params->cParams.windowLog; + if (ZSTD_window_needOverflowCorrection(ms->window, cycleLog, maxDist, ms->loadedDictEnd, ip, iend)) { U32 const correction = ZSTD_window_correctOverflow(&ms->window, cycleLog, maxDist, ip); ZSTD_STATIC_ASSERT(ZSTD_CHAINLOG_MAX <= 30); ZSTD_STATIC_ASSERT(ZSTD_WINDOWLOG_MAX_32 <= 30); @@ -2580,9 +4477,9 @@ static void ZSTD_overflowCorrectIfNeeded(ZSTD_matchState_t* ms, * All blocks will be terminated, all input will be consumed. * Function will issue an error if there is not enough `dstCapacity` to hold the compressed content. * Frame is supposed already started (header already produced) -* @return : compressed size, or an error code +* @return : compressed size, or an error code */ -static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx, +static size_t ZSTD_compress_frameChunk(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize, U32 lastFrameChunk) @@ -2596,7 +4493,7 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx, assert(cctx->appliedParams.cParams.windowLog <= ZSTD_WINDOWLOG_MAX); - DEBUGLOG(5, "ZSTD_compress_frameChunk (blockSize=%u)", (unsigned)blockSize); + DEBUGLOG(4, "ZSTD_compress_frameChunk (blockSize=%u)", (unsigned)blockSize); if (cctx->appliedParams.fParams.checksumFlag && srcSize) XXH64_update(&cctx->xxhState, src, srcSize); @@ -2604,7 +4501,9 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx, ZSTD_matchState_t* const ms = &cctx->blockState.matchState; U32 const lastBlock = lastFrameChunk & (blockSize >= remaining); - RETURN_ERROR_IF(dstCapacity < ZSTDInternalConstants::ZSTD_blockHeaderSize + MIN_CBLOCK_SIZE, + /* TODO: See 3090. We reduced MIN_CBLOCK_SIZE from 3 to 2 so to compensate we are adding + * additional 1. We need to revisit and change this logic to be more consistent */ + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize + MIN_CBLOCK_SIZE + 1, dstSize_tooSmall, "not enough space to store compressed block"); if (remaining < blockSize) blockSize = remaining; @@ -2612,6 +4511,7 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx, ZSTD_overflowCorrectIfNeeded( ms, &cctx->workspace, &cctx->appliedParams, ip, ip + blockSize); ZSTD_checkDictValidity(&ms->window, ip + blockSize, maxDist, &ms->loadedDictEnd, &ms->dictMatchState); + ZSTD_window_enforceMaxDist(&ms->window, ip, maxDist, &ms->loadedDictEnd, &ms->dictMatchState); /* Ensure hash/chain table insertion resumes no sooner than lowlimit */ if (ms->nextToUpdate < ms->window.lowLimit) ms->nextToUpdate = ms->window.lowLimit; @@ -2621,10 +4521,14 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx, cSize = ZSTD_compressBlock_targetCBlockSize(cctx, op, dstCapacity, ip, blockSize, lastBlock); FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_targetCBlockSize failed"); assert(cSize > 0); - assert(cSize <= blockSize + ZSTDInternalConstants::ZSTD_blockHeaderSize); + assert(cSize <= blockSize + ZSTD_blockHeaderSize); + } else if (ZSTD_blockSplitterEnabled(&cctx->appliedParams)) { + cSize = ZSTD_compressBlock_splitBlock(cctx, op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_splitBlock failed"); + assert(cSize > 0 || cctx->seqCollector.collectSequences == 1); } else { cSize = ZSTD_compressBlock_internal(cctx, - op+ZSTDInternalConstants::ZSTD_blockHeaderSize, dstCapacity-ZSTDInternalConstants::ZSTD_blockHeaderSize, + op+ZSTD_blockHeaderSize, dstCapacity-ZSTD_blockHeaderSize, ip, blockSize, 1 /* frame */); FORWARD_IF_ERROR(cSize, "ZSTD_compressBlock_internal failed"); @@ -2636,9 +4540,9 @@ static size_t ZSTD_compress_frameChunk (ZSTD_CCtx* cctx, lastBlock + (((U32)bt_rle)<<1) + (U32)(blockSize << 3) : lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); MEM_writeLE24(op, cBlockHeader); - cSize += ZSTDInternalConstants::ZSTD_blockHeaderSize; + cSize += ZSTD_blockHeaderSize; } - } + } /* if (ZSTD_useTargetCBlockSize(&cctx->appliedParams))*/ ip += blockSize; @@ -2676,7 +4580,6 @@ static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity, "dst buf is too small to fit worst-case frame header size."); DEBUGLOG(4, "ZSTD_writeFrameHeader : dictIDFlag : %u ; dictID : %u ; dictIDSizeCode : %u", !params->fParams.noDictIDFlag, (unsigned)dictID, (unsigned)dictIDSizeCode); - if (params->format == ZSTD_f_zstd1) { MEM_writeLE32(dst, ZSTD_MAGICNUMBER); pos = 4; @@ -2685,7 +4588,9 @@ static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity, if (!singleSegment) op[pos++] = windowLogByte; switch(dictIDSizeCode) { - default: assert(0); /* impossible */ + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; case 0 : break; case 1 : op[pos] = (BYTE)(dictID); pos++; break; case 2 : MEM_writeLE16(op+pos, (U16)dictID); pos+=2; break; @@ -2693,7 +4598,9 @@ static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity, } switch(fcsCode) { - default: assert(0); /* impossible */ + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; case 0 : if (singleSegment) op[pos++] = (BYTE)(pledgedSrcSize); break; case 1 : MEM_writeLE16(op+pos, (U16)(pledgedSrcSize-256)); pos+=2; break; case 2 : MEM_writeLE32(op+pos, (U32)(pledgedSrcSize)); pos+=4; break; @@ -2702,6 +4609,26 @@ static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity, return pos; } +/* ZSTD_writeSkippableFrame_advanced() : + * Writes out a skippable frame with the specified magic number variant (16 are supported), + * from ZSTD_MAGIC_SKIPPABLE_START to ZSTD_MAGIC_SKIPPABLE_START+15, and the desired source data. + * + * Returns the total number of bytes written, or a ZSTD error code. + */ +size_t ZSTD_writeSkippableFrame(void* dst, size_t dstCapacity, + const void* src, size_t srcSize, unsigned magicVariant) { + BYTE* op = (BYTE*)dst; + RETURN_ERROR_IF(dstCapacity < srcSize + ZSTD_SKIPPABLEHEADERSIZE /* Skippable frame overhead */, + dstSize_tooSmall, "Not enough room for skippable frame"); + RETURN_ERROR_IF(srcSize > (unsigned)0xFFFFFFFF, srcSize_wrong, "Src size too large for skippable frame"); + RETURN_ERROR_IF(magicVariant > 15, parameter_outOfBound, "Skippable frame magic number variant not supported"); + + MEM_writeLE32(op, (U32)(ZSTD_MAGIC_SKIPPABLE_START + magicVariant)); + MEM_writeLE32(op+4, (U32)srcSize); + ZSTD_memcpy(op+8, src, srcSize); + return srcSize + ZSTD_SKIPPABLEHEADERSIZE; +} + /* ZSTD_writeLastEmptyBlock() : * output an empty Block with end-of-frame mark to complete a frame * @return : size of data written into `dst` (== ZSTD_blockHeaderSize (defined in zstd_internal.h)) @@ -2709,26 +4636,23 @@ static size_t ZSTD_writeFrameHeader(void* dst, size_t dstCapacity, */ size_t ZSTD_writeLastEmptyBlock(void* dst, size_t dstCapacity) { - RETURN_ERROR_IF(dstCapacity < ZSTDInternalConstants::ZSTD_blockHeaderSize, dstSize_tooSmall, + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize, dstSize_tooSmall, "dst buf is too small to write frame trailer empty block."); { U32 const cBlockHeader24 = 1 /*lastBlock*/ + (((U32)bt_raw)<<1); /* 0 size */ MEM_writeLE24(dst, cBlockHeader24); - return ZSTDInternalConstants::ZSTD_blockHeaderSize; + return ZSTD_blockHeaderSize; } } -size_t ZSTD_referenceExternalSequences(ZSTD_CCtx* cctx, rawSeq* seq, size_t nbSeq) +void ZSTD_referenceExternalSequences(ZSTD_CCtx* cctx, rawSeq* seq, size_t nbSeq) { - RETURN_ERROR_IF(cctx->stage != ZSTDcs_init, stage_wrong, - "wrong cctx stage"); - RETURN_ERROR_IF(cctx->appliedParams.ldmParams.enableLdm, - parameter_unsupported, - "incompatible with ldm"); + assert(cctx->stage == ZSTDcs_init); + assert(nbSeq == 0 || cctx->appliedParams.ldmParams.enableLdm != ZSTD_ps_enable); cctx->externSeqStore.seq = seq; cctx->externSeqStore.size = nbSeq; cctx->externSeqStore.capacity = nbSeq; cctx->externSeqStore.pos = 0; - return 0; + cctx->externSeqStore.posInSequence = 0; } @@ -2757,11 +4681,12 @@ static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx, if (!srcSize) return fhSize; /* do not generate an empty block if no input */ - if (!ZSTD_window_update(&ms->window, src, srcSize)) { + if (!ZSTD_window_update(&ms->window, src, srcSize, ms->forceNonContiguous)) { + ms->forceNonContiguous = 0; ms->nextToUpdate = ms->window.dictLimit; } - if (cctx->appliedParams.ldmParams.enableLdm) { - ZSTD_window_update(&cctx->ldmState.window, src, srcSize); + if (cctx->appliedParams.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_window_update(&cctx->ldmState.window, src, srcSize, /* forceNonContiguous */ 0); } if (!frame) { @@ -2792,31 +4717,51 @@ static size_t ZSTD_compressContinue_internal (ZSTD_CCtx* cctx, } } -size_t ZSTD_compressContinue (ZSTD_CCtx* cctx, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize) +size_t ZSTD_compressContinue_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) { DEBUGLOG(5, "ZSTD_compressContinue (srcSize=%u)", (unsigned)srcSize); return ZSTD_compressContinue_internal(cctx, dst, dstCapacity, src, srcSize, 1 /* frame mode */, 0 /* last chunk */); } +/* NOTE: Must just wrap ZSTD_compressContinue_public() */ +size_t ZSTD_compressContinue(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + return ZSTD_compressContinue_public(cctx, dst, dstCapacity, src, srcSize); +} -size_t ZSTD_getBlockSize(const ZSTD_CCtx* cctx) +static size_t ZSTD_getBlockSize_deprecated(const ZSTD_CCtx* cctx) { ZSTD_compressionParameters const cParams = cctx->appliedParams.cParams; assert(!ZSTD_checkCParams(cParams)); - return MIN (ZSTD_BLOCKSIZE_MAX, (U32)1 << cParams.windowLog); + return MIN(cctx->appliedParams.maxBlockSize, (size_t)1 << cParams.windowLog); } -size_t ZSTD_compressBlock(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +/* NOTE: Must just wrap ZSTD_getBlockSize_deprecated() */ +size_t ZSTD_getBlockSize(const ZSTD_CCtx* cctx) +{ + return ZSTD_getBlockSize_deprecated(cctx); +} + +/* NOTE: Must just wrap ZSTD_compressBlock_deprecated() */ +size_t ZSTD_compressBlock_deprecated(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) { DEBUGLOG(5, "ZSTD_compressBlock: srcSize = %u", (unsigned)srcSize); - { size_t const blockSizeMax = ZSTD_getBlockSize(cctx); + { size_t const blockSizeMax = ZSTD_getBlockSize_deprecated(cctx); RETURN_ERROR_IF(srcSize > blockSizeMax, srcSize_wrong, "input is larger than a block"); } return ZSTD_compressContinue_internal(cctx, dst, dstCapacity, src, srcSize, 0 /* frame mode */, 0 /* last chunk */); } +/* NOTE: Must just wrap ZSTD_compressBlock_deprecated() */ +size_t ZSTD_compressBlock(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) +{ + return ZSTD_compressBlock_deprecated(cctx, dst, dstCapacity, src, srcSize); +} + /*! ZSTD_loadDictionaryContent() : * @return : 0, or an error code */ @@ -2825,63 +4770,133 @@ static size_t ZSTD_loadDictionaryContent(ZSTD_matchState_t* ms, ZSTD_cwksp* ws, ZSTD_CCtx_params const* params, const void* src, size_t srcSize, - ZSTD_dictTableLoadMethod_e dtlm) + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp) { const BYTE* ip = (const BYTE*) src; const BYTE* const iend = ip + srcSize; + int const loadLdmDict = params->ldmParams.enableLdm == ZSTD_ps_enable && ls != NULL; - ZSTD_window_update(&ms->window, src, srcSize); - ms->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ms->window.base); + /* Assert that the ms params match the params we're being given */ + ZSTD_assertEqualCParams(params->cParams, ms->cParams); - if (params->ldmParams.enableLdm && ls != NULL) { - ZSTD_window_update(&ls->window, src, srcSize); - ls->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ls->window.base); + { /* Ensure large dictionaries can't cause index overflow */ + + /* Allow the dictionary to set indices up to exactly ZSTD_CURRENT_MAX. + * Dictionaries right at the edge will immediately trigger overflow + * correction, but I don't want to insert extra constraints here. + */ + U32 maxDictSize = ZSTD_CURRENT_MAX - ZSTD_WINDOW_START_INDEX; + + int const CDictTaggedIndices = ZSTD_CDictIndicesAreTagged(¶ms->cParams); + if (CDictTaggedIndices && tfp == ZSTD_tfp_forCDict) { + /* Some dictionary matchfinders in zstd use "short cache", + * which treats the lower ZSTD_SHORT_CACHE_TAG_BITS of each + * CDict hashtable entry as a tag rather than as part of an index. + * When short cache is used, we need to truncate the dictionary + * so that its indices don't overlap with the tag. */ + U32 const shortCacheMaxDictSize = (1u << (32 - ZSTD_SHORT_CACHE_TAG_BITS)) - ZSTD_WINDOW_START_INDEX; + maxDictSize = MIN(maxDictSize, shortCacheMaxDictSize); + assert(!loadLdmDict); + } + + /* If the dictionary is too large, only load the suffix of the dictionary. */ + if (srcSize > maxDictSize) { + ip = iend - maxDictSize; + src = ip; + srcSize = maxDictSize; + } } - /* Assert that we the ms params match the params we're being given */ - ZSTD_assertEqualCParams(params->cParams, ms->cParams); + if (srcSize > ZSTD_CHUNKSIZE_MAX) { + /* We must have cleared our windows when our source is this large. */ + assert(ZSTD_window_isEmpty(ms->window)); + if (loadLdmDict) assert(ZSTD_window_isEmpty(ls->window)); + } + ZSTD_window_update(&ms->window, src, srcSize, /* forceNonContiguous */ 0); - if (srcSize <= HASH_READ_SIZE) return 0; + DEBUGLOG(4, "ZSTD_loadDictionaryContent(): useRowMatchFinder=%d", (int)params->useRowMatchFinder); - while (iend - ip > HASH_READ_SIZE) { - size_t const remaining = (size_t)(iend - ip); - size_t const chunk = MIN(remaining, ZSTD_CHUNKSIZE_MAX); - const BYTE* const ichunk = ip + chunk; + if (loadLdmDict) { /* Load the entire dict into LDM matchfinders. */ + ZSTD_window_update(&ls->window, src, srcSize, /* forceNonContiguous */ 0); + ls->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ls->window.base); + ZSTD_ldm_fillHashTable(ls, ip, iend, ¶ms->ldmParams); + } - ZSTD_overflowCorrectIfNeeded(ms, ws, params, ip, ichunk); + /* If the dict is larger than we can reasonably index in our tables, only load the suffix. */ + if (params->cParams.strategy < ZSTD_btultra) { + U32 maxDictSize = 8U << MIN(MAX(params->cParams.hashLog, params->cParams.chainLog), 28); + if (srcSize > maxDictSize) { + ip = iend - maxDictSize; + src = ip; + srcSize = maxDictSize; + } + } - if (params->ldmParams.enableLdm && ls != NULL) - ZSTD_ldm_fillHashTable(ls, (const BYTE*)src, (const BYTE*)src + srcSize, ¶ms->ldmParams); + ms->nextToUpdate = (U32)(ip - ms->window.base); + ms->loadedDictEnd = params->forceWindow ? 0 : (U32)(iend - ms->window.base); + ms->forceNonContiguous = params->deterministicRefPrefix; - switch(params->cParams.strategy) - { - case ZSTD_fast: - ZSTD_fillHashTable(ms, ichunk, dtlm); - break; - case ZSTD_dfast: - ZSTD_fillDoubleHashTable(ms, ichunk, dtlm); - break; + if (srcSize <= HASH_READ_SIZE) return 0; - case ZSTD_greedy: - case ZSTD_lazy: - case ZSTD_lazy2: - if (chunk >= HASH_READ_SIZE) - ZSTD_insertAndFindFirstIndex(ms, ichunk-HASH_READ_SIZE); - break; + ZSTD_overflowCorrectIfNeeded(ms, ws, params, ip, iend); - case ZSTD_btlazy2: /* we want the dictionary table fully sorted */ - case ZSTD_btopt: - case ZSTD_btultra: - case ZSTD_btultra2: - if (chunk >= HASH_READ_SIZE) - ZSTD_updateTree(ms, ichunk-HASH_READ_SIZE, ichunk); - break; + switch(params->cParams.strategy) + { + case ZSTD_fast: + ZSTD_fillHashTable(ms, iend, dtlm, tfp); + break; + case ZSTD_dfast: +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + ZSTD_fillDoubleHashTable(ms, iend, dtlm, tfp); +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif + break; - default: - assert(0); /* not possible : not a valid strategy id */ + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) + assert(srcSize >= HASH_READ_SIZE); + if (ms->dedicatedDictSearch) { + assert(ms->chainTable != NULL); + ZSTD_dedicatedDictSearch_lazy_loadDictionary(ms, iend-HASH_READ_SIZE); + } else { + assert(params->useRowMatchFinder != ZSTD_ps_auto); + if (params->useRowMatchFinder == ZSTD_ps_enable) { + size_t const tagTableSize = ((size_t)1 << params->cParams.hashLog); + ZSTD_memset(ms->tagTable, 0, tagTableSize); + ZSTD_row_update(ms, iend-HASH_READ_SIZE); + DEBUGLOG(4, "Using row-based hash table for lazy dict"); + } else { + ZSTD_insertAndFindFirstIndex(ms, iend-HASH_READ_SIZE); + DEBUGLOG(4, "Using chain-based hash table for lazy dict"); + } } +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif + break; + + case ZSTD_btlazy2: /* we want the dictionary table fully sorted */ + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: +#if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR) + assert(srcSize >= HASH_READ_SIZE); + ZSTD_updateTree(ms, iend-HASH_READ_SIZE, iend); +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif + break; - ip = ichunk; + default: + assert(0); /* not possible : not a valid strategy id */ } ms->nextToUpdate = (U32)(iend - ms->window.base); @@ -2890,22 +4905,28 @@ static size_t ZSTD_loadDictionaryContent(ZSTD_matchState_t* ms, /* Dictionaries that assign zero probability to symbols that show up causes problems - when FSE encoding. Refuse dictionaries that assign zero probability to symbols - that we may encounter during compression. - NOTE: This behavior is not standard and could be improved in the future. */ -static size_t ZSTD_checkDictNCount(short* normalizedCounter, unsigned dictMaxSymbolValue, unsigned maxSymbolValue) { + * when FSE encoding. Mark dictionaries with zero probability symbols as FSE_repeat_check + * and only dictionaries with 100% valid symbols can be assumed valid. + */ +static FSE_repeat ZSTD_dictNCountRepeat(short* normalizedCounter, unsigned dictMaxSymbolValue, unsigned maxSymbolValue) +{ U32 s; - RETURN_ERROR_IF(dictMaxSymbolValue < maxSymbolValue, dictionary_corrupted, "dict fse tables don't have all symbols"); + if (dictMaxSymbolValue < maxSymbolValue) { + return FSE_repeat_check; + } for (s = 0; s <= maxSymbolValue; ++s) { - RETURN_ERROR_IF(normalizedCounter[s] == 0, dictionary_corrupted, "dict fse tables don't have all symbols"); + if (normalizedCounter[s] == 0) { + return FSE_repeat_check; + } } - return 0; + return FSE_repeat_valid; } size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, - short* offcodeNCount, unsigned* offcodeMaxValue, const void* const dict, size_t dictSize) { + short offcodeNCount[MaxOff+1]; + unsigned offcodeMaxValue = MaxOff; const BYTE* dictPtr = (const BYTE*)dict; /* skip magic num and dict ID */ const BYTE* const dictEnd = dictPtr + dictSize; dictPtr += 8; @@ -2918,25 +4939,24 @@ size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, /* We only set the loaded table as valid if it contains all non-zero * weights. Otherwise, we set it to check */ - if (!hasZeroWeights) + if (!hasZeroWeights && maxSymbolValue == 255) bs->entropy.huf.repeatMode = HUF_repeat_valid; RETURN_ERROR_IF(HUF_isError(hufHeaderSize), dictionary_corrupted, ""); - RETURN_ERROR_IF(maxSymbolValue < 255, dictionary_corrupted, ""); dictPtr += hufHeaderSize; } { unsigned offcodeLog; - size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, offcodeMaxValue, &offcodeLog, dictPtr, dictEnd-dictPtr); + size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, dictEnd-dictPtr); RETURN_ERROR_IF(FSE_isError(offcodeHeaderSize), dictionary_corrupted, ""); RETURN_ERROR_IF(offcodeLog > OffFSELog, dictionary_corrupted, ""); - /* Defer checking offcodeMaxValue because we need to know the size of the dictionary content */ /* fill all offset symbols to avoid garbage at end of table */ RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( bs->entropy.fse.offcodeCTable, offcodeNCount, MaxOff, offcodeLog, workspace, HUF_WORKSPACE_SIZE)), dictionary_corrupted, ""); + /* Defer checking offcodeMaxValue because we need to know the size of the dictionary content */ dictPtr += offcodeHeaderSize; } @@ -2945,13 +4965,12 @@ size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, dictEnd-dictPtr); RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted, ""); RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted, ""); - /* Every match length code must have non-zero probability */ - FORWARD_IF_ERROR( ZSTD_checkDictNCount(matchlengthNCount, matchlengthMaxValue, MaxML), ""); RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( bs->entropy.fse.matchlengthCTable, matchlengthNCount, matchlengthMaxValue, matchlengthLog, workspace, HUF_WORKSPACE_SIZE)), dictionary_corrupted, ""); + bs->entropy.fse.matchlength_repeatMode = ZSTD_dictNCountRepeat(matchlengthNCount, matchlengthMaxValue, MaxML); dictPtr += matchlengthHeaderSize; } @@ -2960,13 +4979,12 @@ size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, dictEnd-dictPtr); RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted, ""); RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted, ""); - /* Every literal length code must have non-zero probability */ - FORWARD_IF_ERROR( ZSTD_checkDictNCount(litlengthNCount, litlengthMaxValue, MaxLL), ""); RETURN_ERROR_IF(FSE_isError(FSE_buildCTable_wksp( bs->entropy.fse.litlengthCTable, litlengthNCount, litlengthMaxValue, litlengthLog, workspace, HUF_WORKSPACE_SIZE)), dictionary_corrupted, ""); + bs->entropy.fse.litlength_repeatMode = ZSTD_dictNCountRepeat(litlengthNCount, litlengthMaxValue, MaxLL); dictPtr += litlengthHeaderSize; } @@ -2976,12 +4994,28 @@ size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, bs->rep[2] = MEM_readLE32(dictPtr+8); dictPtr += 12; + { size_t const dictContentSize = (size_t)(dictEnd - dictPtr); + U32 offcodeMax = MaxOff; + if (dictContentSize <= ((U32)-1) - 128 KB) { + U32 const maxOffset = (U32)dictContentSize + 128 KB; /* The maximum offset that must be supported */ + offcodeMax = ZSTD_highbit32(maxOffset); /* Calculate minimum offset code required to represent maxOffset */ + } + /* All offset values <= dictContentSize + 128 KB must be representable for a valid table */ + bs->entropy.fse.offcode_repeatMode = ZSTD_dictNCountRepeat(offcodeNCount, offcodeMaxValue, MIN(offcodeMax, MaxOff)); + + /* All repCodes must be <= dictContentSize and != 0 */ + { U32 u; + for (u=0; u<3; u++) { + RETURN_ERROR_IF(bs->rep[u] == 0, dictionary_corrupted, ""); + RETURN_ERROR_IF(bs->rep[u] > dictContentSize, dictionary_corrupted, ""); + } } } + return dictPtr - (const BYTE*)dict; } /* Dictionary format : * See : - * https://github.com/facebook/zstd/blob/master/doc/zstd_compression_format.md#dictionary-format + * https://github.com/facebook/zstd/blob/release/doc/zstd_compression_format.md#dictionary-format */ /*! ZSTD_loadZstdDictionary() : * @return : dictID, or an error code @@ -2994,46 +5028,28 @@ static size_t ZSTD_loadZstdDictionary(ZSTD_compressedBlockState_t* bs, ZSTD_CCtx_params const* params, const void* dict, size_t dictSize, ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp, void* workspace) { const BYTE* dictPtr = (const BYTE*)dict; const BYTE* const dictEnd = dictPtr + dictSize; - short offcodeNCount[MaxOff+1]; - unsigned offcodeMaxValue = MaxOff; size_t dictID; size_t eSize; - ZSTD_STATIC_ASSERT(HUF_WORKSPACE_SIZE >= (1<= 8); assert(MEM_readLE32(dictPtr) == ZSTD_MAGIC_DICTIONARY); dictID = params->fParams.noDictIDFlag ? 0 : MEM_readLE32(dictPtr + 4 /* skip magic number */ ); - eSize = ZSTD_loadCEntropy(bs, workspace, offcodeNCount, &offcodeMaxValue, dict, dictSize); + eSize = ZSTD_loadCEntropy(bs, workspace, dict, dictSize); FORWARD_IF_ERROR(eSize, "ZSTD_loadCEntropy failed"); dictPtr += eSize; - { size_t const dictContentSize = (size_t)(dictEnd - dictPtr); - U32 offcodeMax = MaxOff; - if (dictContentSize <= ((U32)-1) - 128 KB) { - U32 const maxOffset = (U32)dictContentSize + 128 KB; /* The maximum offset that must be supported */ - offcodeMax = ZSTD_highbit32(maxOffset); /* Calculate minimum offset code required to represent maxOffset */ - } - /* All offset values <= dictContentSize + 128 KB must be representable */ - FORWARD_IF_ERROR(ZSTD_checkDictNCount(offcodeNCount, offcodeMaxValue, MIN(offcodeMax, MaxOff)), ""); - /* All repCodes must be <= dictContentSize and != 0*/ - { U32 u; - for (u=0; u<3; u++) { - RETURN_ERROR_IF(bs->rep[u] == 0, dictionary_corrupted, ""); - RETURN_ERROR_IF(bs->rep[u] > dictContentSize, dictionary_corrupted, ""); - } } - - bs->entropy.fse.offcode_repeatMode = FSE_repeat_valid; - bs->entropy.fse.matchlength_repeatMode = FSE_repeat_valid; - bs->entropy.fse.litlength_repeatMode = FSE_repeat_valid; + { + size_t const dictContentSize = (size_t)(dictEnd - dictPtr); FORWARD_IF_ERROR(ZSTD_loadDictionaryContent( - ms, NULL, ws, params, dictPtr, dictContentSize, dtlm), ""); - return dictID; + ms, NULL, ws, params, dictPtr, dictContentSize, dtlm, tfp), ""); } + return dictID; } /** ZSTD_compress_insertDictionary() : @@ -3047,6 +5063,7 @@ ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t* bs, const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp, void* workspace) { DEBUGLOG(4, "ZSTD_compress_insertDictionary (dictSize=%u)", (U32)dictSize); @@ -3059,13 +5076,13 @@ ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t* bs, /* dict restricted modes */ if (dictContentType == ZSTD_dct_rawContent) - return ZSTD_loadDictionaryContent(ms, ls, ws, params, dict, dictSize, dtlm); + return ZSTD_loadDictionaryContent(ms, ls, ws, params, dict, dictSize, dtlm, tfp); if (MEM_readLE32(dict) != ZSTD_MAGIC_DICTIONARY) { if (dictContentType == ZSTD_dct_auto) { DEBUGLOG(4, "raw content dictionary detected"); return ZSTD_loadDictionaryContent( - ms, ls, ws, params, dict, dictSize, dtlm); + ms, ls, ws, params, dict, dictSize, dtlm, tfp); } RETURN_ERROR_IF(dictContentType == ZSTD_dct_fullDict, dictionary_wrong, ""); assert(0); /* impossible */ @@ -3073,13 +5090,14 @@ ZSTD_compress_insertDictionary(ZSTD_compressedBlockState_t* bs, /* dict as full zstd dictionary */ return ZSTD_loadZstdDictionary( - bs, ms, ws, params, dict, dictSize, dtlm, workspace); + bs, ms, ws, params, dict, dictSize, dtlm, tfp, workspace); } #define ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF (128 KB) -#define ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER (6) +#define ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER (6ULL) /*! ZSTD_compressBegin_internal() : + * Assumption : either @dict OR @cdict (or none) is non-NULL, never both * @return : 0, or an error code */ static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, @@ -3089,6 +5107,10 @@ static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx, const ZSTD_CCtx_params* params, U64 pledgedSrcSize, ZSTD_buffered_policy_e zbuff) { + size_t const dictContentSize = cdict ? cdict->dictContentSize : dictSize; +#if ZSTD_TRACE + cctx->traceCtx = (ZSTD_trace_compress_begin != NULL) ? ZSTD_trace_compress_begin(cctx) : 0; +#endif DEBUGLOG(4, "ZSTD_compressBegin_internal: wlog=%u", params->cParams.windowLog); /* params are supposed to be fully validated at this point */ assert(!ZSTD_isError(ZSTD_checkCParams(params->cParams))); @@ -3103,21 +5125,23 @@ static size_t ZSTD_compressBegin_internal(ZSTD_CCtx* cctx, return ZSTD_resetCCtx_usingCDict(cctx, cdict, params, pledgedSrcSize, zbuff); } - FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, *params, pledgedSrcSize, + FORWARD_IF_ERROR( ZSTD_resetCCtx_internal(cctx, params, pledgedSrcSize, + dictContentSize, ZSTDcrp_makeClean, zbuff) , ""); { size_t const dictID = cdict ? ZSTD_compress_insertDictionary( cctx->blockState.prevCBlock, &cctx->blockState.matchState, &cctx->ldmState, &cctx->workspace, &cctx->appliedParams, cdict->dictContent, - cdict->dictContentSize, dictContentType, dtlm, - cctx->entropyWorkspace) + cdict->dictContentSize, cdict->dictContentType, dtlm, + ZSTD_tfp_forCCtx, cctx->entropyWorkspace) : ZSTD_compress_insertDictionary( cctx->blockState.prevCBlock, &cctx->blockState.matchState, &cctx->ldmState, &cctx->workspace, &cctx->appliedParams, dict, dictSize, - dictContentType, dtlm, cctx->entropyWorkspace); + dictContentType, dtlm, ZSTD_tfp_forCCtx, cctx->entropyWorkspace); FORWARD_IF_ERROR(dictID, "ZSTD_compress_insertDictionary failed"); assert(dictID <= UINT_MAX); cctx->dictID = (U32)dictID; + cctx->dictContentSize = dictContentSize; } return 0; } @@ -3146,27 +5170,35 @@ size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_parameters params, unsigned long long pledgedSrcSize) { - ZSTD_CCtx_params const cctxParams = - ZSTD_assignParamsToCCtxParams(&cctx->requestedParams, ¶ms); + ZSTD_CCtx_params cctxParams; + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, ZSTD_NO_CLEVEL); return ZSTD_compressBegin_advanced_internal(cctx, dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL /*cdict*/, &cctxParams, pledgedSrcSize); } -size_t ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel) +static size_t +ZSTD_compressBegin_usingDict_deprecated(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel) { - ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize); - ZSTD_CCtx_params const cctxParams = - ZSTD_assignParamsToCCtxParams(&cctx->requestedParams, ¶ms); + ZSTD_CCtx_params cctxParams; + { ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_noAttachDict); + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel); + } DEBUGLOG(4, "ZSTD_compressBegin_usingDict (dictSize=%u)", (unsigned)dictSize); return ZSTD_compressBegin_internal(cctx, dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL, &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, ZSTDb_not_buffered); } +size_t +ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel) +{ + return ZSTD_compressBegin_usingDict_deprecated(cctx, dict, dictSize, compressionLevel); +} + size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel) { - return ZSTD_compressBegin_usingDict(cctx, NULL, 0, compressionLevel); + return ZSTD_compressBegin_usingDict_deprecated(cctx, NULL, 0, compressionLevel); } @@ -3177,14 +5209,13 @@ static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity) { BYTE* const ostart = (BYTE*)dst; BYTE* op = ostart; - size_t fhSize = 0; DEBUGLOG(4, "ZSTD_writeEpilogue"); RETURN_ERROR_IF(cctx->stage == ZSTDcs_created, stage_wrong, "init missing"); /* special case : empty frame */ if (cctx->stage == ZSTDcs_init) { - fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, &cctx->appliedParams, 0, 0); + size_t fhSize = ZSTD_writeFrameHeader(dst, dstCapacity, &cctx->appliedParams, 0, 0); FORWARD_IF_ERROR(fhSize, "ZSTD_writeFrameHeader failed"); dstCapacity -= fhSize; op += fhSize; @@ -3194,10 +5225,11 @@ static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity) if (cctx->stage != ZSTDcs_ending) { /* write one last empty block, make it the "last" block */ U32 const cBlockHeader24 = 1 /* last block */ + (((U32)bt_raw)<<1) + 0; - RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for epilogue"); - MEM_writeLE32(op, cBlockHeader24); - op += ZSTDInternalConstants::ZSTD_blockHeaderSize; - dstCapacity -= ZSTDInternalConstants::ZSTD_blockHeaderSize; + ZSTD_STATIC_ASSERT(ZSTD_BLOCKHEADERSIZE == 3); + RETURN_ERROR_IF(dstCapacity<3, dstSize_tooSmall, "no room for epilogue"); + MEM_writeLE24(op, cBlockHeader24); + op += ZSTD_blockHeaderSize; + dstCapacity -= ZSTD_blockHeaderSize; } if (cctx->appliedParams.fParams.checksumFlag) { @@ -3212,9 +5244,33 @@ static size_t ZSTD_writeEpilogue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity) return op-ostart; } -size_t ZSTD_compressEnd (ZSTD_CCtx* cctx, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize) +void ZSTD_CCtx_trace(ZSTD_CCtx* cctx, size_t extraCSize) +{ +#if ZSTD_TRACE + if (cctx->traceCtx && ZSTD_trace_compress_end != NULL) { + int const streaming = cctx->inBuffSize > 0 || cctx->outBuffSize > 0 || cctx->appliedParams.nbWorkers > 0; + ZSTD_Trace trace; + ZSTD_memset(&trace, 0, sizeof(trace)); + trace.version = ZSTD_VERSION_NUMBER; + trace.streaming = streaming; + trace.dictionaryID = cctx->dictID; + trace.dictionarySize = cctx->dictContentSize; + trace.uncompressedSize = cctx->consumedSrcSize; + trace.compressedSize = cctx->producedCSize + extraCSize; + trace.params = &cctx->appliedParams; + trace.cctx = cctx; + ZSTD_trace_compress_end(cctx->traceCtx, &trace); + } + cctx->traceCtx = 0; +#else + (void)cctx; + (void)extraCSize; +#endif +} + +size_t ZSTD_compressEnd_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) { size_t endResult; size_t const cSize = ZSTD_compressContinue_internal(cctx, @@ -3234,24 +5290,16 @@ size_t ZSTD_compressEnd (ZSTD_CCtx* cctx, (unsigned)cctx->pledgedSrcSizePlusOne-1, (unsigned)cctx->consumedSrcSize); } + ZSTD_CCtx_trace(cctx, endResult); return cSize + endResult; } - -static size_t ZSTD_compress_internal (ZSTD_CCtx* cctx, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize, - const void* dict,size_t dictSize, - const ZSTD_parameters* params) +/* NOTE: Must just wrap ZSTD_compressEnd_public() */ +size_t ZSTD_compressEnd(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) { - ZSTD_CCtx_params const cctxParams = - ZSTD_assignParamsToCCtxParams(&cctx->requestedParams, params); - DEBUGLOG(4, "ZSTD_compress_internal"); - return ZSTD_compress_advanced_internal(cctx, - dst, dstCapacity, - src, srcSize, - dict, dictSize, - &cctxParams); + return ZSTD_compressEnd_public(cctx, dst, dstCapacity, src, srcSize); } size_t ZSTD_compress_advanced (ZSTD_CCtx* cctx, @@ -3262,11 +5310,12 @@ size_t ZSTD_compress_advanced (ZSTD_CCtx* cctx, { DEBUGLOG(4, "ZSTD_compress_advanced"); FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); - return ZSTD_compress_internal(cctx, - dst, dstCapacity, - src, srcSize, - dict, dictSize, - ¶ms); + ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, ZSTD_NO_CLEVEL); + return ZSTD_compress_advanced_internal(cctx, + dst, dstCapacity, + src, srcSize, + dict, dictSize, + &cctx->simpleApiParams); } /* Internal */ @@ -3281,7 +5330,7 @@ size_t ZSTD_compress_advanced_internal( FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx, dict, dictSize, ZSTD_dct_auto, ZSTD_dtlm_fast, NULL, params, srcSize, ZSTDb_not_buffered) , ""); - return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize); + return ZSTD_compressEnd_public(cctx, dst, dstCapacity, src, srcSize); } size_t ZSTD_compress_usingDict(ZSTD_CCtx* cctx, @@ -3290,11 +5339,13 @@ size_t ZSTD_compress_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel) { - ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, srcSize, dict ? dictSize : 0); - ZSTD_CCtx_params cctxParams = ZSTD_assignParamsToCCtxParams(&cctx->requestedParams, ¶ms); + { + ZSTD_parameters const params = ZSTD_getParams_internal(compressionLevel, srcSize, dict ? dictSize : 0, ZSTD_cpm_noAttachDict); + assert(params.fParams.contentSizeFlag == 1); + ZSTD_CCtxParams_init_internal(&cctx->simpleApiParams, ¶ms, (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT: compressionLevel); + } DEBUGLOG(4, "ZSTD_compress_usingDict (srcSize=%u)", (unsigned)srcSize); - assert(params.fParams.contentSizeFlag == 1); - return ZSTD_compress_advanced_internal(cctx, dst, dstCapacity, src, srcSize, dict, dictSize, &cctxParams); + return ZSTD_compress_advanced_internal(cctx, dst, dstCapacity, src, srcSize, dict, dictSize, &cctx->simpleApiParams); } size_t ZSTD_compressCCtx(ZSTD_CCtx* cctx, @@ -3312,10 +5363,17 @@ size_t ZSTD_compress(void* dst, size_t dstCapacity, int compressionLevel) { size_t result; +#if ZSTD_COMPRESS_HEAPMODE + ZSTD_CCtx* cctx = ZSTD_createCCtx(); + RETURN_ERROR_IF(!cctx, memory_allocation, "ZSTD_createCCtx failed"); + result = ZSTD_compressCCtx(cctx, dst, dstCapacity, src, srcSize, compressionLevel); + ZSTD_freeCCtx(cctx); +#else ZSTD_CCtx ctxBody; - ZSTD_initCCtx(&ctxBody, ZSTDInternalConstants::ZSTD_defaultCMem); + ZSTD_initCCtx(&ctxBody, ZSTD_defaultCMem); result = ZSTD_compressCCtx(&ctxBody, dst, dstCapacity, src, srcSize, compressionLevel); ZSTD_freeCCtxContent(&ctxBody); /* can't free ctxBody itself, as it's on stack; free only heap content */ +#endif return result; } @@ -3331,14 +5389,17 @@ size_t ZSTD_estimateCDictSize_advanced( DEBUGLOG(5, "sizeof(ZSTD_CDict) : %u", (unsigned)sizeof(ZSTD_CDict)); return ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) - + ZSTD_sizeof_matchState(&cParams, /* forCCtx */ 0) + /* enableDedicatedDictSearch == 1 ensures that CDict estimation will not be too small + * in case we are using DDS with row-hash. */ + + ZSTD_sizeof_matchState(&cParams, ZSTD_resolveRowMatchFinderMode(ZSTD_ps_auto, &cParams), + /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0) + (dictLoadMethod == ZSTD_dlm_byRef ? 0 : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void *)))); } size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel) { - ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize); + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); return ZSTD_estimateCDictSize_advanced(dictSize, cParams, ZSTD_dlm_byCopy); } @@ -3356,20 +5417,22 @@ static size_t ZSTD_initCDict_internal( const void* dictBuffer, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType, - ZSTD_compressionParameters cParams) + ZSTD_CCtx_params params) { DEBUGLOG(3, "ZSTD_initCDict_internal (dictContentType:%u)", (unsigned)dictContentType); - assert(!ZSTD_checkCParams(cParams)); - cdict->matchState.cParams = cParams; + assert(!ZSTD_checkCParams(params.cParams)); + cdict->matchState.cParams = params.cParams; + cdict->matchState.dedicatedDictSearch = params.enableDedicatedDictSearch; if ((dictLoadMethod == ZSTD_dlm_byRef) || (!dictBuffer) || (!dictSize)) { cdict->dictContent = dictBuffer; } else { void *internalBuffer = ZSTD_cwksp_reserve_object(&cdict->workspace, ZSTD_cwksp_align(dictSize, sizeof(void*))); RETURN_ERROR_IF(!internalBuffer, memory_allocation, "NULL pointer!"); cdict->dictContent = internalBuffer; - memcpy(internalBuffer, dictBuffer, dictSize); + ZSTD_memcpy(internalBuffer, dictBuffer, dictSize); } cdict->dictContentSize = dictSize; + cdict->dictContentType = dictContentType; cdict->entropyWorkspace = (U32*)ZSTD_cwksp_reserve_object(&cdict->workspace, HUF_WORKSPACE_SIZE); @@ -3379,22 +5442,20 @@ static size_t ZSTD_initCDict_internal( FORWARD_IF_ERROR(ZSTD_reset_matchState( &cdict->matchState, &cdict->workspace, - &cParams, + ¶ms.cParams, + params.useRowMatchFinder, ZSTDcrp_makeClean, ZSTDirp_reset, ZSTD_resetTarget_CDict), ""); /* (Maybe) load the dictionary * Skips loading the dictionary if it is < 8 bytes. */ - { ZSTD_CCtx_params params; - memset(¶ms, 0, sizeof(params)); - params.compressionLevel = ZSTD_CLEVEL_DEFAULT; + { params.compressionLevel = ZSTD_CLEVEL_DEFAULT; params.fParams.contentSizeFlag = 1; - params.cParams = cParams; { size_t const dictID = ZSTD_compress_insertDictionary( &cdict->cBlockState, &cdict->matchState, NULL, &cdict->workspace, ¶ms, cdict->dictContent, cdict->dictContentSize, - dictContentType, ZSTD_dtlm_full, cdict->entropyWorkspace); + dictContentType, ZSTD_dtlm_full, ZSTD_tfp_forCDict, cdict->entropyWorkspace); FORWARD_IF_ERROR(dictID, "ZSTD_compress_insertDictionary failed"); assert(dictID <= (size_t)(U32)-1); cdict->dictID = (U32)dictID; @@ -3404,66 +5465,129 @@ static size_t ZSTD_initCDict_internal( return 0; } -ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dictSize, +static ZSTD_CDict* ZSTD_createCDict_advanced_internal(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, - ZSTD_dictContentType_e dictContentType, - ZSTD_compressionParameters cParams, ZSTD_customMem customMem) + ZSTD_compressionParameters cParams, + ZSTD_paramSwitch_e useRowMatchFinder, + U32 enableDedicatedDictSearch, + ZSTD_customMem customMem) { - DEBUGLOG(3, "ZSTD_createCDict_advanced, mode %u", (unsigned)dictContentType); - if (!customMem.customAlloc ^ !customMem.customFree) return NULL; + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; { size_t const workspaceSize = ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + - ZSTD_sizeof_matchState(&cParams, /* forCCtx */ 0) + + ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, enableDedicatedDictSearch, /* forCCtx */ 0) + (dictLoadMethod == ZSTD_dlm_byRef ? 0 : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void*)))); - void* const workspace = ZSTD_malloc(workspaceSize, customMem); + void* const workspace = ZSTD_customMalloc(workspaceSize, customMem); ZSTD_cwksp ws; ZSTD_CDict* cdict; if (!workspace) { - ZSTD_free(workspace, customMem); + ZSTD_customFree(workspace, customMem); return NULL; } - ZSTD_cwksp_init(&ws, workspace, workspaceSize); + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_dynamic_alloc); cdict = (ZSTD_CDict*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CDict)); assert(cdict != NULL); ZSTD_cwksp_move(&cdict->workspace, &ws); cdict->customMem = customMem; - cdict->compressionLevel = 0; /* signals advanced API usage */ + cdict->compressionLevel = ZSTD_NO_CLEVEL; /* signals advanced API usage */ + cdict->useRowMatchFinder = useRowMatchFinder; + return cdict; + } +} - if (ZSTD_isError( ZSTD_initCDict_internal(cdict, - dictBuffer, dictSize, - dictLoadMethod, dictContentType, - cParams) )) { - ZSTD_freeCDict(cdict); - return NULL; - } +ZSTD_CDict* ZSTD_createCDict_advanced(const void* dictBuffer, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_compressionParameters cParams, + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params cctxParams; + ZSTD_memset(&cctxParams, 0, sizeof(cctxParams)); + ZSTD_CCtxParams_init(&cctxParams, 0); + cctxParams.cParams = cParams; + cctxParams.customMem = customMem; + return ZSTD_createCDict_advanced2( + dictBuffer, dictSize, + dictLoadMethod, dictContentType, + &cctxParams, customMem); +} + +ZSTD_CDict* ZSTD_createCDict_advanced2( + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + const ZSTD_CCtx_params* originalCctxParams, + ZSTD_customMem customMem) +{ + ZSTD_CCtx_params cctxParams = *originalCctxParams; + ZSTD_compressionParameters cParams; + ZSTD_CDict* cdict; - return cdict; + DEBUGLOG(3, "ZSTD_createCDict_advanced2, mode %u", (unsigned)dictContentType); + if (!customMem.customAlloc ^ !customMem.customFree) return NULL; + + if (cctxParams.enableDedicatedDictSearch) { + cParams = ZSTD_dedicatedDictSearch_getCParams( + cctxParams.compressionLevel, dictSize); + ZSTD_overrideCParams(&cParams, &cctxParams.cParams); + } else { + cParams = ZSTD_getCParamsFromCCtxParams( + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); } + + if (!ZSTD_dedicatedDictSearch_isSupported(&cParams)) { + /* Fall back to non-DDSS params */ + cctxParams.enableDedicatedDictSearch = 0; + cParams = ZSTD_getCParamsFromCCtxParams( + &cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + } + + DEBUGLOG(3, "ZSTD_createCDict_advanced2: DDS: %u", cctxParams.enableDedicatedDictSearch); + cctxParams.cParams = cParams; + cctxParams.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(cctxParams.useRowMatchFinder, &cParams); + + cdict = ZSTD_createCDict_advanced_internal(dictSize, + dictLoadMethod, cctxParams.cParams, + cctxParams.useRowMatchFinder, cctxParams.enableDedicatedDictSearch, + customMem); + + if (!cdict || ZSTD_isError( ZSTD_initCDict_internal(cdict, + dict, dictSize, + dictLoadMethod, dictContentType, + cctxParams) )) { + ZSTD_freeCDict(cdict); + return NULL; + } + + return cdict; } ZSTD_CDict* ZSTD_createCDict(const void* dict, size_t dictSize, int compressionLevel) { - ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize); - ZSTD_CDict* cdict = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + ZSTD_CDict* const cdict = ZSTD_createCDict_advanced(dict, dictSize, ZSTD_dlm_byCopy, ZSTD_dct_auto, - cParams, ZSTDInternalConstants::ZSTD_defaultCMem); + cParams, ZSTD_defaultCMem); if (cdict) - cdict->compressionLevel = compressionLevel == 0 ? ZSTD_CLEVEL_DEFAULT : compressionLevel; + cdict->compressionLevel = (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel; return cdict; } ZSTD_CDict* ZSTD_createCDict_byReference(const void* dict, size_t dictSize, int compressionLevel) { - ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize); - return ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, ZSTD_CONTENTSIZE_UNKNOWN, dictSize, ZSTD_cpm_createCDict); + ZSTD_CDict* const cdict = ZSTD_createCDict_advanced(dict, dictSize, ZSTD_dlm_byRef, ZSTD_dct_auto, - cParams, ZSTDInternalConstants::ZSTD_defaultCMem); + cParams, ZSTD_defaultCMem); + if (cdict) + cdict->compressionLevel = (compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : compressionLevel; + return cdict; } size_t ZSTD_freeCDict(ZSTD_CDict* cdict) @@ -3473,7 +5597,7 @@ size_t ZSTD_freeCDict(ZSTD_CDict* cdict) int cdictInWorkspace = ZSTD_cwksp_owns_buffer(&cdict->workspace, cdict); ZSTD_cwksp_free(&cdict->workspace, cMem); if (!cdictInWorkspace) { - ZSTD_free(cdict, cMem); + ZSTD_customFree(cdict, cMem); } return 0; } @@ -3499,19 +5623,22 @@ const ZSTD_CDict* ZSTD_initStaticCDict( ZSTD_dictContentType_e dictContentType, ZSTD_compressionParameters cParams) { - size_t const matchStateSize = ZSTD_sizeof_matchState(&cParams, /* forCCtx */ 0); + ZSTD_paramSwitch_e const useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(ZSTD_ps_auto, &cParams); + /* enableDedicatedDictSearch == 1 ensures matchstate is not too small in case this CDict will be used for DDS + row hash */ + size_t const matchStateSize = ZSTD_sizeof_matchState(&cParams, useRowMatchFinder, /* enableDedicatedDictSearch */ 1, /* forCCtx */ 0); size_t const neededSize = ZSTD_cwksp_alloc_size(sizeof(ZSTD_CDict)) + (dictLoadMethod == ZSTD_dlm_byRef ? 0 : ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(dictSize, sizeof(void*)))) + ZSTD_cwksp_alloc_size(HUF_WORKSPACE_SIZE) + matchStateSize; ZSTD_CDict* cdict; + ZSTD_CCtx_params params; if ((size_t)workspace & 7) return NULL; /* 8-aligned */ { ZSTD_cwksp ws; - ZSTD_cwksp_init(&ws, workspace, workspaceSize); + ZSTD_cwksp_init(&ws, workspace, workspaceSize, ZSTD_cwksp_static_alloc); cdict = (ZSTD_CDict*)ZSTD_cwksp_reserve_object(&ws, sizeof(ZSTD_CDict)); if (cdict == NULL) return NULL; ZSTD_cwksp_move(&cdict->workspace, &ws); @@ -3521,10 +5648,16 @@ const ZSTD_CDict* ZSTD_initStaticCDict( (unsigned)workspaceSize, (unsigned)neededSize, (unsigned)(workspaceSize < neededSize)); if (workspaceSize < neededSize) return NULL; + ZSTD_CCtxParams_init(¶ms, 0); + params.cParams = cParams; + params.useRowMatchFinder = useRowMatchFinder; + cdict->useRowMatchFinder = useRowMatchFinder; + cdict->compressionLevel = ZSTD_NO_CLEVEL; + if (ZSTD_isError( ZSTD_initCDict_internal(cdict, dict, dictSize, dictLoadMethod, dictContentType, - cParams) )) + params) )) return NULL; return cdict; @@ -3536,59 +5669,101 @@ ZSTD_compressionParameters ZSTD_getCParamsFromCDict(const ZSTD_CDict* cdict) return cdict->matchState.cParams; } -/* ZSTD_compressBegin_usingCDict_advanced() : - * cdict must be != NULL */ -size_t ZSTD_compressBegin_usingCDict_advanced( +/*! ZSTD_getDictID_fromCDict() : + * Provides the dictID of the dictionary loaded into `cdict`. + * If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + * Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */ +unsigned ZSTD_getDictID_fromCDict(const ZSTD_CDict* cdict) +{ + if (cdict==NULL) return 0; + return cdict->dictID; +} + +/* ZSTD_compressBegin_usingCDict_internal() : + * Implementation of various ZSTD_compressBegin_usingCDict* functions. + */ +static size_t ZSTD_compressBegin_usingCDict_internal( ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize) { - DEBUGLOG(4, "ZSTD_compressBegin_usingCDict_advanced"); + ZSTD_CCtx_params cctxParams; + DEBUGLOG(4, "ZSTD_compressBegin_usingCDict_internal"); RETURN_ERROR_IF(cdict==NULL, dictionary_wrong, "NULL pointer!"); - { ZSTD_CCtx_params params = cctx->requestedParams; + /* Initialize the cctxParams from the cdict */ + { + ZSTD_parameters params; + params.fParams = fParams; params.cParams = ( pledgedSrcSize < ZSTD_USE_CDICT_PARAMS_SRCSIZE_CUTOFF || pledgedSrcSize < cdict->dictContentSize * ZSTD_USE_CDICT_PARAMS_DICTSIZE_MULTIPLIER || pledgedSrcSize == ZSTD_CONTENTSIZE_UNKNOWN - || cdict->compressionLevel == 0 ) - && (params.attachDictPref != ZSTD_dictForceLoad) ? + || cdict->compressionLevel == 0 ) ? ZSTD_getCParamsFromCDict(cdict) : ZSTD_getCParams(cdict->compressionLevel, pledgedSrcSize, cdict->dictContentSize); - /* Increase window log to fit the entire dictionary and source if the - * source size is known. Limit the increase to 19, which is the - * window log for compression level 1 with the largest source size. - */ - if (pledgedSrcSize != ZSTD_CONTENTSIZE_UNKNOWN) { - U32 const limitedSrcSize = (U32)MIN(pledgedSrcSize, 1U << 19); - U32 const limitedSrcLog = limitedSrcSize > 1 ? ZSTD_highbit32(limitedSrcSize - 1) + 1 : 1; - params.cParams.windowLog = MAX(params.cParams.windowLog, limitedSrcLog); - } - params.fParams = fParams; - return ZSTD_compressBegin_internal(cctx, - NULL, 0, ZSTD_dct_auto, ZSTD_dtlm_fast, - cdict, - ¶ms, pledgedSrcSize, - ZSTDb_not_buffered); + ZSTD_CCtxParams_init_internal(&cctxParams, ¶ms, cdict->compressionLevel); } + /* Increase window log to fit the entire dictionary and source if the + * source size is known. Limit the increase to 19, which is the + * window log for compression level 1 with the largest source size. + */ + if (pledgedSrcSize != ZSTD_CONTENTSIZE_UNKNOWN) { + U32 const limitedSrcSize = (U32)MIN(pledgedSrcSize, 1U << 19); + U32 const limitedSrcLog = limitedSrcSize > 1 ? ZSTD_highbit32(limitedSrcSize - 1) + 1 : 1; + cctxParams.cParams.windowLog = MAX(cctxParams.cParams.windowLog, limitedSrcLog); + } + return ZSTD_compressBegin_internal(cctx, + NULL, 0, ZSTD_dct_auto, ZSTD_dtlm_fast, + cdict, + &cctxParams, pledgedSrcSize, + ZSTDb_not_buffered); +} + + +/* ZSTD_compressBegin_usingCDict_advanced() : + * This function is DEPRECATED. + * cdict must be != NULL */ +size_t ZSTD_compressBegin_usingCDict_advanced( + ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, + ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize) +{ + return ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, pledgedSrcSize); } /* ZSTD_compressBegin_usingCDict() : - * pledgedSrcSize=0 means "unknown" - * if pledgedSrcSize>0, it will enable contentSizeFlag */ + * cdict must be != NULL */ +size_t ZSTD_compressBegin_usingCDict_deprecated(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) +{ + ZSTD_frameParameters const fParams = { 0 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; + return ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, ZSTD_CONTENTSIZE_UNKNOWN); +} + size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) { - ZSTD_frameParameters const fParams = { 0 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; - DEBUGLOG(4, "ZSTD_compressBegin_usingCDict : dictIDFlag == %u", !fParams.noDictIDFlag); - return ZSTD_compressBegin_usingCDict_advanced(cctx, cdict, fParams, ZSTD_CONTENTSIZE_UNKNOWN); + return ZSTD_compressBegin_usingCDict_deprecated(cctx, cdict); +} + +/*! ZSTD_compress_usingCDict_internal(): + * Implementation of various ZSTD_compress_usingCDict* functions. + */ +static size_t ZSTD_compress_usingCDict_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict, ZSTD_frameParameters fParams) +{ + FORWARD_IF_ERROR(ZSTD_compressBegin_usingCDict_internal(cctx, cdict, fParams, srcSize), ""); /* will check if cdict != NULL */ + return ZSTD_compressEnd_public(cctx, dst, dstCapacity, src, srcSize); } +/*! ZSTD_compress_usingCDict_advanced(): + * This function is DEPRECATED. + */ size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize, const ZSTD_CDict* cdict, ZSTD_frameParameters fParams) { - FORWARD_IF_ERROR(ZSTD_compressBegin_usingCDict_advanced(cctx, cdict, fParams, srcSize), ""); /* will check if cdict != NULL */ - return ZSTD_compressEnd(cctx, dst, dstCapacity, src, srcSize); + return ZSTD_compress_usingCDict_internal(cctx, dst, dstCapacity, src, srcSize, cdict, fParams); } /*! ZSTD_compress_usingCDict() : @@ -3602,7 +5777,7 @@ size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict) { ZSTD_frameParameters const fParams = { 1 /*content*/, 0 /*checksum*/, 0 /*noDictID*/ }; - return ZSTD_compress_usingCDict_advanced(cctx, dst, dstCapacity, src, srcSize, cdict, fParams); + return ZSTD_compress_usingCDict_internal(cctx, dst, dstCapacity, src, srcSize, cdict, fParams); } @@ -3614,7 +5789,7 @@ size_t ZSTD_compress_usingCDict(ZSTD_CCtx* cctx, ZSTD_CStream* ZSTD_createCStream(void) { DEBUGLOG(3, "ZSTD_createCStream"); - return ZSTD_createCStream_advanced(ZSTDInternalConstants::ZSTD_defaultCMem); + return ZSTD_createCStream_advanced(ZSTD_defaultCMem); } ZSTD_CStream* ZSTD_initStaticCStream(void *workspace, size_t workspaceSize) @@ -3640,35 +5815,15 @@ size_t ZSTD_CStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX; } size_t ZSTD_CStreamOutSize(void) { - return ZSTD_compressBound(ZSTD_BLOCKSIZE_MAX) + ZSTDInternalConstants::ZSTD_blockHeaderSize + 4 /* 32-bits hash */ ; + return ZSTD_compressBound(ZSTD_BLOCKSIZE_MAX) + ZSTD_blockHeaderSize + 4 /* 32-bits hash */ ; } -static size_t ZSTD_resetCStream_internal(ZSTD_CStream* cctx, - const void* const dict, size_t const dictSize, ZSTD_dictContentType_e const dictContentType, - const ZSTD_CDict* const cdict, - ZSTD_CCtx_params params, unsigned long long const pledgedSrcSize) +static ZSTD_cParamMode_e ZSTD_getCParamMode(ZSTD_CDict const* cdict, ZSTD_CCtx_params const* params, U64 pledgedSrcSize) { - DEBUGLOG(4, "ZSTD_resetCStream_internal"); - /* Finalize the compression parameters */ - params.cParams = ZSTD_getCParamsFromCCtxParams(¶ms, pledgedSrcSize, dictSize); - /* params are supposed to be fully validated at this point */ - assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); - assert(!((dict) && (cdict))); /* either dict or cdict, not both */ - - FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx, - dict, dictSize, dictContentType, ZSTD_dtlm_fast, - cdict, - ¶ms, pledgedSrcSize, - ZSTDb_buffered) , ""); - - cctx->inToCompress = 0; - cctx->inBuffPos = 0; - cctx->inBuffTarget = cctx->blockSize - + (cctx->blockSize == pledgedSrcSize); /* for small input: avoid automatic flush on reaching end of block, since it would require to add a 3-bytes null block to end frame */ - cctx->outBuffContentSize = cctx->outBuffFlushedSize = 0; - cctx->streamStage = zcss_load; - cctx->frameEnded = 0; - return 0; /* ready to go */ + if (cdict != NULL && ZSTD_shouldAttachDict(cdict, params, pledgedSrcSize)) + return ZSTD_cpm_attachDict; + else + return ZSTD_cpm_noAttachDict; } /* ZSTD_resetCStream(): @@ -3752,7 +5907,7 @@ size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs, FORWARD_IF_ERROR( ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only) , ""); FORWARD_IF_ERROR( ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize) , ""); FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) , ""); - zcs->requestedParams = ZSTD_assignParamsToCCtxParams(&zcs->requestedParams, ¶ms); + ZSTD_CCtxParams_setZstdParams(&zcs->requestedParams, ¶ms); FORWARD_IF_ERROR( ZSTD_CCtx_loadDictionary(zcs, dict, dictSize) , ""); return 0; } @@ -3794,36 +5949,54 @@ size_t ZSTD_initCStream(ZSTD_CStream* zcs, int compressionLevel) static size_t ZSTD_nextInputSizeHint(const ZSTD_CCtx* cctx) { - size_t hintInSize = cctx->inBuffTarget - cctx->inBuffPos; - if (hintInSize==0) hintInSize = cctx->blockSize; - return hintInSize; + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + return cctx->blockSize - cctx->stableIn_notConsumed; + } + assert(cctx->appliedParams.inBufferMode == ZSTD_bm_buffered); + { size_t hintInSize = cctx->inBuffTarget - cctx->inBuffPos; + if (hintInSize==0) hintInSize = cctx->blockSize; + return hintInSize; + } } /** ZSTD_compressStream_generic(): * internal function for all *compressStream*() variants - * non-static, because can be called from zstdmt_compress.c - * @return : hint size for next input */ + * @return : hint size for next input to complete ongoing block */ static size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuffer* input, ZSTD_EndDirective const flushMode) { - const char* const istart = (const char*)input->src; - const char* const iend = input->size != 0 ? istart + input->size : istart; - const char* ip = input->pos != 0 ? istart + input->pos : istart; - char* const ostart = (char*)output->dst; - char* const oend = output->size != 0 ? ostart + output->size : ostart; - char* op = output->pos != 0 ? ostart + output->pos : ostart; + const char* const istart = (assert(input != NULL), (const char*)input->src); + const char* const iend = (istart != NULL) ? istart + input->size : istart; + const char* ip = (istart != NULL) ? istart + input->pos : istart; + char* const ostart = (assert(output != NULL), (char*)output->dst); + char* const oend = (ostart != NULL) ? ostart + output->size : ostart; + char* op = (ostart != NULL) ? ostart + output->pos : ostart; U32 someMoreWork = 1; /* check expectations */ - DEBUGLOG(5, "ZSTD_compressStream_generic, flush=%u", (unsigned)flushMode); - assert(zcs->inBuff != NULL); - assert(zcs->inBuffSize > 0); - assert(zcs->outBuff != NULL); - assert(zcs->outBuffSize > 0); - assert(output->pos <= output->size); + DEBUGLOG(5, "ZSTD_compressStream_generic, flush=%i, srcSize = %zu", (int)flushMode, input->size - input->pos); + assert(zcs != NULL); + if (zcs->appliedParams.inBufferMode == ZSTD_bm_stable) { + assert(input->pos >= zcs->stableIn_notConsumed); + input->pos -= zcs->stableIn_notConsumed; + if (ip) ip -= zcs->stableIn_notConsumed; + zcs->stableIn_notConsumed = 0; + } + if (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered) { + assert(zcs->inBuff != NULL); + assert(zcs->inBuffSize > 0); + } + if (zcs->appliedParams.outBufferMode == ZSTD_bm_buffered) { + assert(zcs->outBuff != NULL); + assert(zcs->outBuffSize > 0); + } + if (input->src == NULL) assert(input->size == 0); assert(input->pos <= input->size); + if (output->dst == NULL) assert(output->size == 0); + assert(output->pos <= output->size); + assert((U32)flushMode <= (U32)ZSTD_e_end); while (someMoreWork) { switch(zcs->streamStage) @@ -3833,10 +6006,11 @@ static size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs, case zcss_load: if ( (flushMode == ZSTD_e_end) - && ((size_t)(oend-op) >= ZSTD_compressBound(iend-ip)) /* enough dstCapacity */ + && ( (size_t)(oend-op) >= ZSTD_compressBound(iend-ip) /* Enough output space */ + || zcs->appliedParams.outBufferMode == ZSTD_bm_stable) /* OR we are allowed to return dstSizeTooSmall */ && (zcs->inBuffPos == 0) ) { /* shortcut to compression pass directly into output buffer */ - size_t const cSize = ZSTD_compressEnd(zcs, + size_t const cSize = ZSTD_compressEnd_public(zcs, op, oend-op, ip, iend-ip); DEBUGLOG(4, "ZSTD_compressEnd : cSize=%u", (unsigned)cSize); FORWARD_IF_ERROR(cSize, "ZSTD_compressEnd failed"); @@ -3846,14 +6020,14 @@ static size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs, ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); someMoreWork = 0; break; } - /* complete loading into inBuffer */ - { size_t const toLoad = zcs->inBuffTarget - zcs->inBuffPos; + /* complete loading into inBuffer in buffered mode */ + if (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered) { + size_t const toLoad = zcs->inBuffTarget - zcs->inBuffPos; size_t const loaded = ZSTD_limitCopy( zcs->inBuff + zcs->inBuffPos, toLoad, ip, iend-ip); zcs->inBuffPos += loaded; - if (loaded != 0) - ip += loaded; + if (ip) ip += loaded; if ( (flushMode == ZSTD_e_continue) && (zcs->inBuffPos < zcs->inBuffTarget) ) { /* not enough input to fill full block : stop here */ @@ -3864,34 +6038,62 @@ static size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs, /* empty */ someMoreWork = 0; break; } + } else { + assert(zcs->appliedParams.inBufferMode == ZSTD_bm_stable); + if ( (flushMode == ZSTD_e_continue) + && ( (size_t)(iend - ip) < zcs->blockSize) ) { + /* can't compress a full block : stop here */ + zcs->stableIn_notConsumed = (size_t)(iend - ip); + ip = iend; /* pretend to have consumed input */ + someMoreWork = 0; break; + } + if ( (flushMode == ZSTD_e_flush) + && (ip == iend) ) { + /* empty */ + someMoreWork = 0; break; + } } /* compress current block (note : this stage cannot be stopped in the middle) */ DEBUGLOG(5, "stream compression stage (flushMode==%u)", flushMode); - { void* cDst; + { int const inputBuffered = (zcs->appliedParams.inBufferMode == ZSTD_bm_buffered); + void* cDst; size_t cSize; - size_t const iSize = zcs->inBuffPos - zcs->inToCompress; size_t oSize = oend-op; - unsigned const lastBlock = (flushMode == ZSTD_e_end) && (ip==iend); - if (oSize >= ZSTD_compressBound(iSize)) + size_t const iSize = inputBuffered ? zcs->inBuffPos - zcs->inToCompress + : MIN((size_t)(iend - ip), zcs->blockSize); + if (oSize >= ZSTD_compressBound(iSize) || zcs->appliedParams.outBufferMode == ZSTD_bm_stable) cDst = op; /* compress into output buffer, to skip flush stage */ else cDst = zcs->outBuff, oSize = zcs->outBuffSize; - cSize = lastBlock ? - ZSTD_compressEnd(zcs, cDst, oSize, - zcs->inBuff + zcs->inToCompress, iSize) : - ZSTD_compressContinue(zcs, cDst, oSize, - zcs->inBuff + zcs->inToCompress, iSize); - FORWARD_IF_ERROR(cSize, "%s", lastBlock ? "ZSTD_compressEnd failed" : "ZSTD_compressContinue failed"); - zcs->frameEnded = lastBlock; - /* prepare next block */ - zcs->inBuffTarget = zcs->inBuffPos + zcs->blockSize; - if (zcs->inBuffTarget > zcs->inBuffSize) - zcs->inBuffPos = 0, zcs->inBuffTarget = zcs->blockSize; - DEBUGLOG(5, "inBuffTarget:%u / inBuffSize:%u", - (unsigned)zcs->inBuffTarget, (unsigned)zcs->inBuffSize); - if (!lastBlock) - assert(zcs->inBuffTarget <= zcs->inBuffSize); - zcs->inToCompress = zcs->inBuffPos; + if (inputBuffered) { + unsigned const lastBlock = (flushMode == ZSTD_e_end) && (ip==iend); + cSize = lastBlock ? + ZSTD_compressEnd_public(zcs, cDst, oSize, + zcs->inBuff + zcs->inToCompress, iSize) : + ZSTD_compressContinue_public(zcs, cDst, oSize, + zcs->inBuff + zcs->inToCompress, iSize); + FORWARD_IF_ERROR(cSize, "%s", lastBlock ? "ZSTD_compressEnd failed" : "ZSTD_compressContinue failed"); + zcs->frameEnded = lastBlock; + /* prepare next block */ + zcs->inBuffTarget = zcs->inBuffPos + zcs->blockSize; + if (zcs->inBuffTarget > zcs->inBuffSize) + zcs->inBuffPos = 0, zcs->inBuffTarget = zcs->blockSize; + DEBUGLOG(5, "inBuffTarget:%u / inBuffSize:%u", + (unsigned)zcs->inBuffTarget, (unsigned)zcs->inBuffSize); + if (!lastBlock) + assert(zcs->inBuffTarget <= zcs->inBuffSize); + zcs->inToCompress = zcs->inBuffPos; + } else { /* !inputBuffered, hence ZSTD_bm_stable */ + unsigned const lastBlock = (flushMode == ZSTD_e_end) && (ip + iSize == iend); + cSize = lastBlock ? + ZSTD_compressEnd_public(zcs, cDst, oSize, ip, iSize) : + ZSTD_compressContinue_public(zcs, cDst, oSize, ip, iSize); + /* Consume the input prior to error checking to mirror buffered mode. */ + if (ip) ip += iSize; + FORWARD_IF_ERROR(cSize, "%s", lastBlock ? "ZSTD_compressEnd failed" : "ZSTD_compressContinue failed"); + zcs->frameEnded = lastBlock; + if (lastBlock) assert(ip == iend); + } if (cDst == op) { /* no need to flush */ op += cSize; if (zcs->frameEnded) { @@ -3905,9 +6107,10 @@ static size_t ZSTD_compressStream_generic(ZSTD_CStream* zcs, zcs->outBuffFlushedSize = 0; zcs->streamStage = zcss_flush; /* pass-through to flush stage */ } - /* fall-through */ + ZSTD_FALLTHROUGH; case zcss_flush: DEBUGLOG(5, "flush stage"); + assert(zcs->appliedParams.outBufferMode == ZSTD_bm_buffered); { size_t const toFlush = zcs->outBuffContentSize - zcs->outBuffFlushedSize; size_t const flushed = ZSTD_limitCopy(op, (size_t)(oend-op), zcs->outBuff + zcs->outBuffFlushedSize, toFlush); @@ -3962,7 +6165,141 @@ size_t ZSTD_compressStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output, ZSTD_inBuf return ZSTD_nextInputSizeHint_MTorST(zcs); } +/* After a compression call set the expected input/output buffer. + * This is validated at the start of the next compression call. + */ +static void +ZSTD_setBufferExpectations(ZSTD_CCtx* cctx, const ZSTD_outBuffer* output, const ZSTD_inBuffer* input) +{ + DEBUGLOG(5, "ZSTD_setBufferExpectations (for advanced stable in/out modes)"); + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + cctx->expectedInBuffer = *input; + } + if (cctx->appliedParams.outBufferMode == ZSTD_bm_stable) { + cctx->expectedOutBufferSize = output->size - output->pos; + } +} + +/* Validate that the input/output buffers match the expectations set by + * ZSTD_setBufferExpectations. + */ +static size_t ZSTD_checkBufferStability(ZSTD_CCtx const* cctx, + ZSTD_outBuffer const* output, + ZSTD_inBuffer const* input, + ZSTD_EndDirective endOp) +{ + if (cctx->appliedParams.inBufferMode == ZSTD_bm_stable) { + ZSTD_inBuffer const expect = cctx->expectedInBuffer; + if (expect.src != input->src || expect.pos != input->pos) + RETURN_ERROR(stabilityCondition_notRespected, "ZSTD_c_stableInBuffer enabled but input differs!"); + } + (void)endOp; + if (cctx->appliedParams.outBufferMode == ZSTD_bm_stable) { + size_t const outBufferSize = output->size - output->pos; + if (cctx->expectedOutBufferSize != outBufferSize) + RETURN_ERROR(stabilityCondition_notRespected, "ZSTD_c_stableOutBuffer enabled but output size differs!"); + } + return 0; +} + +static size_t ZSTD_CCtx_init_compressStream2(ZSTD_CCtx* cctx, + ZSTD_EndDirective endOp, + size_t inSize) +{ + ZSTD_CCtx_params params = cctx->requestedParams; + ZSTD_prefixDict const prefixDict = cctx->prefixDict; + FORWARD_IF_ERROR( ZSTD_initLocalDict(cctx) , ""); /* Init the local dict if present. */ + ZSTD_memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); /* single usage */ + assert(prefixDict.dict==NULL || cctx->cdict==NULL); /* only one can be set */ + if (cctx->cdict && !cctx->localDict.cdict) { + /* Let the cdict's compression level take priority over the requested params. + * But do not take the cdict's compression level if the "cdict" is actually a localDict + * generated from ZSTD_initLocalDict(). + */ + params.compressionLevel = cctx->cdict->compressionLevel; + } + DEBUGLOG(4, "ZSTD_compressStream2 : transparent init stage"); + if (endOp == ZSTD_e_end) cctx->pledgedSrcSizePlusOne = inSize + 1; /* auto-determine pledgedSrcSize */ + + { size_t const dictSize = prefixDict.dict + ? prefixDict.dictSize + : (cctx->cdict ? cctx->cdict->dictContentSize : 0); + ZSTD_cParamMode_e const mode = ZSTD_getCParamMode(cctx->cdict, ¶ms, cctx->pledgedSrcSizePlusOne - 1); + params.cParams = ZSTD_getCParamsFromCCtxParams( + ¶ms, cctx->pledgedSrcSizePlusOne-1, + dictSize, mode); + } + + params.useBlockSplitter = ZSTD_resolveBlockSplitterMode(params.useBlockSplitter, ¶ms.cParams); + params.ldmParams.enableLdm = ZSTD_resolveEnableLdm(params.ldmParams.enableLdm, ¶ms.cParams); + params.useRowMatchFinder = ZSTD_resolveRowMatchFinderMode(params.useRowMatchFinder, ¶ms.cParams); + params.validateSequences = ZSTD_resolveExternalSequenceValidation(params.validateSequences); + params.maxBlockSize = ZSTD_resolveMaxBlockSize(params.maxBlockSize); + params.searchForExternalRepcodes = ZSTD_resolveExternalRepcodeSearch(params.searchForExternalRepcodes, params.compressionLevel); + +#ifdef ZSTD_MULTITHREAD + /* If external matchfinder is enabled, make sure to fail before checking job size (for consistency) */ + RETURN_ERROR_IF( + ZSTD_hasExtSeqProd(¶ms) && params.nbWorkers >= 1, + parameter_combination_unsupported, + "External sequence producer isn't supported with nbWorkers >= 1" + ); + + if ((cctx->pledgedSrcSizePlusOne-1) <= ZSTDMT_JOBSIZE_MIN) { + params.nbWorkers = 0; /* do not invoke multi-threading when src size is too small */ + } + if (params.nbWorkers > 0) { +#if ZSTD_TRACE + cctx->traceCtx = (ZSTD_trace_compress_begin != NULL) ? ZSTD_trace_compress_begin(cctx) : 0; +#endif + /* mt context creation */ + if (cctx->mtctx == NULL) { + DEBUGLOG(4, "ZSTD_compressStream2: creating new mtctx for nbWorkers=%u", + params.nbWorkers); + cctx->mtctx = ZSTDMT_createCCtx_advanced((U32)params.nbWorkers, cctx->customMem, cctx->pool); + RETURN_ERROR_IF(cctx->mtctx == NULL, memory_allocation, "NULL pointer!"); + } + /* mt compression */ + DEBUGLOG(4, "call ZSTDMT_initCStream_internal as nbWorkers=%u", params.nbWorkers); + FORWARD_IF_ERROR( ZSTDMT_initCStream_internal( + cctx->mtctx, + prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, + cctx->cdict, params, cctx->pledgedSrcSizePlusOne-1) , ""); + cctx->dictID = cctx->cdict ? cctx->cdict->dictID : 0; + cctx->dictContentSize = cctx->cdict ? cctx->cdict->dictContentSize : prefixDict.dictSize; + cctx->consumedSrcSize = 0; + cctx->producedCSize = 0; + cctx->streamStage = zcss_load; + cctx->appliedParams = params; + } else +#endif /* ZSTD_MULTITHREAD */ + { U64 const pledgedSrcSize = cctx->pledgedSrcSizePlusOne - 1; + assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); + FORWARD_IF_ERROR( ZSTD_compressBegin_internal(cctx, + prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, ZSTD_dtlm_fast, + cctx->cdict, + ¶ms, pledgedSrcSize, + ZSTDb_buffered) , ""); + assert(cctx->appliedParams.nbWorkers == 0); + cctx->inToCompress = 0; + cctx->inBuffPos = 0; + if (cctx->appliedParams.inBufferMode == ZSTD_bm_buffered) { + /* for small input: avoid automatic flush on reaching end of block, since + * it would require to add a 3-bytes null block to end frame + */ + cctx->inBuffTarget = cctx->blockSize + (cctx->blockSize == pledgedSrcSize); + } else { + cctx->inBuffTarget = 0; + } + cctx->outBuffContentSize = cctx->outBuffFlushedSize = 0; + cctx->streamStage = zcss_load; + cctx->frameEnded = 0; + } + return 0; +} +/* @return provides a minimum amount of data remaining to be flushed from internal buffers + */ size_t ZSTD_compressStream2( ZSTD_CCtx* cctx, ZSTD_outBuffer* output, ZSTD_inBuffer* input, @@ -3970,82 +6307,95 @@ size_t ZSTD_compressStream2( ZSTD_CCtx* cctx, { DEBUGLOG(5, "ZSTD_compressStream2, endOp=%u ", (unsigned)endOp); /* check conditions */ - RETURN_ERROR_IF(output->pos > output->size, GENERIC, "invalid buffer"); - RETURN_ERROR_IF(input->pos > input->size, GENERIC, "invalid buffer"); - assert(cctx!=NULL); + RETURN_ERROR_IF(output->pos > output->size, dstSize_tooSmall, "invalid output buffer"); + RETURN_ERROR_IF(input->pos > input->size, srcSize_wrong, "invalid input buffer"); + RETURN_ERROR_IF((U32)endOp > (U32)ZSTD_e_end, parameter_outOfBound, "invalid endDirective"); + assert(cctx != NULL); /* transparent initialization stage */ if (cctx->streamStage == zcss_init) { - ZSTD_CCtx_params params = cctx->requestedParams; - ZSTD_prefixDict const prefixDict = cctx->prefixDict; - FORWARD_IF_ERROR( ZSTD_initLocalDict(cctx) , ""); /* Init the local dict if present. */ - memset(&cctx->prefixDict, 0, sizeof(cctx->prefixDict)); /* single usage */ - assert(prefixDict.dict==NULL || cctx->cdict==NULL); /* only one can be set */ - DEBUGLOG(4, "ZSTD_compressStream2 : transparent init stage"); - if (endOp == ZSTD_e_end) cctx->pledgedSrcSizePlusOne = input->size + 1; /* auto-fix pledgedSrcSize */ - params.cParams = ZSTD_getCParamsFromCCtxParams( - &cctx->requestedParams, cctx->pledgedSrcSizePlusOne-1, 0 /*dictSize*/); - - -#ifdef ZSTD_MULTITHREAD - if ((cctx->pledgedSrcSizePlusOne-1) <= ZSTDMT_JOBSIZE_MIN) { - params.nbWorkers = 0; /* do not invoke multi-threading when src size is too small */ - } - if (params.nbWorkers > 0) { - /* mt context creation */ - if (cctx->mtctx == NULL) { - DEBUGLOG(4, "ZSTD_compressStream2: creating new mtctx for nbWorkers=%u", - params.nbWorkers); - cctx->mtctx = ZSTDMT_createCCtx_advanced((U32)params.nbWorkers, cctx->customMem); - RETURN_ERROR_IF(cctx->mtctx == NULL, memory_allocation, "NULL pointer!"); + size_t const inputSize = input->size - input->pos; /* no obligation to start from pos==0 */ + size_t const totalInputSize = inputSize + cctx->stableIn_notConsumed; + if ( (cctx->requestedParams.inBufferMode == ZSTD_bm_stable) /* input is presumed stable, across invocations */ + && (endOp == ZSTD_e_continue) /* no flush requested, more input to come */ + && (totalInputSize < ZSTD_BLOCKSIZE_MAX) ) { /* not even reached one block yet */ + if (cctx->stableIn_notConsumed) { /* not the first time */ + /* check stable source guarantees */ + RETURN_ERROR_IF(input->src != cctx->expectedInBuffer.src, stabilityCondition_notRespected, "stableInBuffer condition not respected: wrong src pointer"); + RETURN_ERROR_IF(input->pos != cctx->expectedInBuffer.size, stabilityCondition_notRespected, "stableInBuffer condition not respected: externally modified pos"); } - /* mt compression */ - DEBUGLOG(4, "call ZSTDMT_initCStream_internal as nbWorkers=%u", params.nbWorkers); - FORWARD_IF_ERROR( ZSTDMT_initCStream_internal( - cctx->mtctx, - prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, - cctx->cdict, params, cctx->pledgedSrcSizePlusOne-1) , ""); - cctx->streamStage = zcss_load; - cctx->appliedParams.nbWorkers = params.nbWorkers; - } else -#endif - { FORWARD_IF_ERROR( ZSTD_resetCStream_internal(cctx, - prefixDict.dict, prefixDict.dictSize, prefixDict.dictContentType, - cctx->cdict, - params, cctx->pledgedSrcSizePlusOne-1) , ""); - assert(cctx->streamStage == zcss_load); - assert(cctx->appliedParams.nbWorkers == 0); - } } + /* pretend input was consumed, to give a sense forward progress */ + input->pos = input->size; + /* save stable inBuffer, for later control, and flush/end */ + cctx->expectedInBuffer = *input; + /* but actually input wasn't consumed, so keep track of position from where compression shall resume */ + cctx->stableIn_notConsumed += inputSize; + /* don't initialize yet, wait for the first block of flush() order, for better parameters adaptation */ + return ZSTD_FRAMEHEADERSIZE_MIN(cctx->requestedParams.format); /* at least some header to produce */ + } + FORWARD_IF_ERROR(ZSTD_CCtx_init_compressStream2(cctx, endOp, totalInputSize), "compressStream2 initialization failed"); + ZSTD_setBufferExpectations(cctx, output, input); /* Set initial buffer expectations now that we've initialized */ + } /* end of transparent initialization stage */ + FORWARD_IF_ERROR(ZSTD_checkBufferStability(cctx, output, input, endOp), "invalid buffers"); /* compression stage */ #ifdef ZSTD_MULTITHREAD if (cctx->appliedParams.nbWorkers > 0) { - int const forceMaxProgress = (endOp == ZSTD_e_flush || endOp == ZSTD_e_end); size_t flushMin; - assert(forceMaxProgress || endOp == ZSTD_e_continue /* Protection for a new flush type */); if (cctx->cParamsChanged) { ZSTDMT_updateCParams_whileCompressing(cctx->mtctx, &cctx->requestedParams); cctx->cParamsChanged = 0; } - do { + if (cctx->stableIn_notConsumed) { + assert(cctx->appliedParams.inBufferMode == ZSTD_bm_stable); + /* some early data was skipped - make it available for consumption */ + assert(input->pos >= cctx->stableIn_notConsumed); + input->pos -= cctx->stableIn_notConsumed; + cctx->stableIn_notConsumed = 0; + } + for (;;) { + size_t const ipos = input->pos; + size_t const opos = output->pos; flushMin = ZSTDMT_compressStream_generic(cctx->mtctx, output, input, endOp); + cctx->consumedSrcSize += (U64)(input->pos - ipos); + cctx->producedCSize += (U64)(output->pos - opos); if ( ZSTD_isError(flushMin) || (endOp == ZSTD_e_end && flushMin == 0) ) { /* compression completed */ + if (flushMin == 0) + ZSTD_CCtx_trace(cctx, 0); ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only); } FORWARD_IF_ERROR(flushMin, "ZSTDMT_compressStream_generic failed"); - } while (forceMaxProgress && flushMin != 0 && output->pos < output->size); + + if (endOp == ZSTD_e_continue) { + /* We only require some progress with ZSTD_e_continue, not maximal progress. + * We're done if we've consumed or produced any bytes, or either buffer is + * full. + */ + if (input->pos != ipos || output->pos != opos || input->pos == input->size || output->pos == output->size) + break; + } else { + assert(endOp == ZSTD_e_flush || endOp == ZSTD_e_end); + /* We require maximal progress. We're done when the flush is complete or the + * output buffer is full. + */ + if (flushMin == 0 || output->pos == output->size) + break; + } + } DEBUGLOG(5, "completed ZSTD_compressStream2 delegating to ZSTDMT_compressStream_generic"); /* Either we don't require maximum forward progress, we've finished the * flush, or we are out of output space. */ - assert(!forceMaxProgress || flushMin == 0 || output->pos == output->size); + assert(endOp == ZSTD_e_continue || flushMin == 0 || output->pos == output->size); + ZSTD_setBufferExpectations(cctx, output, input); return flushMin; } -#endif +#endif /* ZSTD_MULTITHREAD */ FORWARD_IF_ERROR( ZSTD_compressStream_generic(cctx, output, input, endOp) , ""); DEBUGLOG(5, "completed ZSTD_compressStream2"); + ZSTD_setBufferExpectations(cctx, output, input); return cctx->outBuffContentSize - cctx->outBuffFlushedSize; /* remaining to flush */ } @@ -4055,27 +6405,43 @@ size_t ZSTD_compressStream2_simpleArgs ( const void* src, size_t srcSize, size_t* srcPos, ZSTD_EndDirective endOp) { - ZSTD_outBuffer output = { dst, dstCapacity, *dstPos }; - ZSTD_inBuffer input = { src, srcSize, *srcPos }; + ZSTD_outBuffer output; + ZSTD_inBuffer input; + output.dst = dst; + output.size = dstCapacity; + output.pos = *dstPos; + input.src = src; + input.size = srcSize; + input.pos = *srcPos; /* ZSTD_compressStream2() will check validity of dstPos and srcPos */ - size_t const cErr = ZSTD_compressStream2(cctx, &output, &input, endOp); - *dstPos = output.pos; - *srcPos = input.pos; - return cErr; + { size_t const cErr = ZSTD_compressStream2(cctx, &output, &input, endOp); + *dstPos = output.pos; + *srcPos = input.pos; + return cErr; + } } size_t ZSTD_compress2(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize) { + ZSTD_bufferMode_e const originalInBufferMode = cctx->requestedParams.inBufferMode; + ZSTD_bufferMode_e const originalOutBufferMode = cctx->requestedParams.outBufferMode; DEBUGLOG(4, "ZSTD_compress2 (srcSize=%u)", (unsigned)srcSize); ZSTD_CCtx_reset(cctx, ZSTD_reset_session_only); + /* Enable stable input/output buffers. */ + cctx->requestedParams.inBufferMode = ZSTD_bm_stable; + cctx->requestedParams.outBufferMode = ZSTD_bm_stable; { size_t oPos = 0; size_t iPos = 0; size_t const result = ZSTD_compressStream2_simpleArgs(cctx, dst, dstCapacity, &oPos, src, srcSize, &iPos, ZSTD_e_end); + /* Reset to the original values. */ + cctx->requestedParams.inBufferMode = originalInBufferMode; + cctx->requestedParams.outBufferMode = originalOutBufferMode; + FORWARD_IF_ERROR(result, "ZSTD_compressStream2_simpleArgs failed"); if (result != 0) { /* compression not completed, due to lack of output space */ assert(oPos == dstCapacity); @@ -4086,22 +6452,512 @@ size_t ZSTD_compress2(ZSTD_CCtx* cctx, } } +/* ZSTD_validateSequence() : + * @offCode : is presumed to follow format required by ZSTD_storeSeq() + * @returns a ZSTD error code if sequence is not valid + */ +static size_t +ZSTD_validateSequence(U32 offCode, U32 matchLength, U32 minMatch, + size_t posInSrc, U32 windowLog, size_t dictSize, int useSequenceProducer) +{ + U32 const windowSize = 1u << windowLog; + /* posInSrc represents the amount of data the decoder would decode up to this point. + * As long as the amount of data decoded is less than or equal to window size, offsets may be + * larger than the total length of output decoded in order to reference the dict, even larger than + * window size. After output surpasses windowSize, we're limited to windowSize offsets again. + */ + size_t const offsetBound = posInSrc > windowSize ? (size_t)windowSize : posInSrc + (size_t)dictSize; + size_t const matchLenLowerBound = (minMatch == 3 || useSequenceProducer) ? 3 : 4; + RETURN_ERROR_IF(offCode > OFFSET_TO_OFFBASE(offsetBound), externalSequences_invalid, "Offset too large!"); + /* Validate maxNbSeq is large enough for the given matchLength and minMatch */ + RETURN_ERROR_IF(matchLength < matchLenLowerBound, externalSequences_invalid, "Matchlength too small for the minMatch"); + return 0; +} + +/* Returns an offset code, given a sequence's raw offset, the ongoing repcode array, and whether litLength == 0 */ +static U32 ZSTD_finalizeOffBase(U32 rawOffset, const U32 rep[ZSTD_REP_NUM], U32 ll0) +{ + U32 offBase = OFFSET_TO_OFFBASE(rawOffset); + + if (!ll0 && rawOffset == rep[0]) { + offBase = REPCODE1_TO_OFFBASE; + } else if (rawOffset == rep[1]) { + offBase = REPCODE_TO_OFFBASE(2 - ll0); + } else if (rawOffset == rep[2]) { + offBase = REPCODE_TO_OFFBASE(3 - ll0); + } else if (ll0 && rawOffset == rep[0] - 1) { + offBase = REPCODE3_TO_OFFBASE; + } + return offBase; +} + +size_t +ZSTD_copySequencesToSeqStoreExplicitBlockDelim(ZSTD_CCtx* cctx, + ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, + ZSTD_paramSwitch_e externalRepSearch) +{ + U32 idx = seqPos->idx; + U32 const startIdx = idx; + BYTE const* ip = (BYTE const*)(src); + const BYTE* const iend = ip + blockSize; + repcodes_t updatedRepcodes; + U32 dictSize; + + DEBUGLOG(5, "ZSTD_copySequencesToSeqStoreExplicitBlockDelim (blockSize = %zu)", blockSize); + + if (cctx->cdict) { + dictSize = (U32)cctx->cdict->dictContentSize; + } else if (cctx->prefixDict.dict) { + dictSize = (U32)cctx->prefixDict.dictSize; + } else { + dictSize = 0; + } + ZSTD_memcpy(updatedRepcodes.rep, cctx->blockState.prevCBlock->rep, sizeof(repcodes_t)); + for (; idx < inSeqsSize && (inSeqs[idx].matchLength != 0 || inSeqs[idx].offset != 0); ++idx) { + U32 const litLength = inSeqs[idx].litLength; + U32 const matchLength = inSeqs[idx].matchLength; + U32 offBase; + + if (externalRepSearch == ZSTD_ps_disable) { + offBase = OFFSET_TO_OFFBASE(inSeqs[idx].offset); + } else { + U32 const ll0 = (litLength == 0); + offBase = ZSTD_finalizeOffBase(inSeqs[idx].offset, updatedRepcodes.rep, ll0); + ZSTD_updateRep(updatedRepcodes.rep, offBase, ll0); + } + + DEBUGLOG(6, "Storing sequence: (of: %u, ml: %u, ll: %u)", offBase, matchLength, litLength); + if (cctx->appliedParams.validateSequences) { + seqPos->posInSrc += litLength + matchLength; + FORWARD_IF_ERROR(ZSTD_validateSequence(offBase, matchLength, cctx->appliedParams.cParams.minMatch, seqPos->posInSrc, + cctx->appliedParams.cParams.windowLog, dictSize, ZSTD_hasExtSeqProd(&cctx->appliedParams)), + "Sequence validation failed"); + } + RETURN_ERROR_IF(idx - seqPos->idx >= cctx->seqStore.maxNbSeq, externalSequences_invalid, + "Not enough memory allocated. Try adjusting ZSTD_c_minMatch."); + ZSTD_storeSeq(&cctx->seqStore, litLength, ip, iend, offBase, matchLength); + ip += matchLength + litLength; + } + + /* If we skipped repcode search while parsing, we need to update repcodes now */ + assert(externalRepSearch != ZSTD_ps_auto); + assert(idx >= startIdx); + if (externalRepSearch == ZSTD_ps_disable && idx != startIdx) { + U32* const rep = updatedRepcodes.rep; + U32 lastSeqIdx = idx - 1; /* index of last non-block-delimiter sequence */ + + if (lastSeqIdx >= startIdx + 2) { + rep[2] = inSeqs[lastSeqIdx - 2].offset; + rep[1] = inSeqs[lastSeqIdx - 1].offset; + rep[0] = inSeqs[lastSeqIdx].offset; + } else if (lastSeqIdx == startIdx + 1) { + rep[2] = rep[0]; + rep[1] = inSeqs[lastSeqIdx - 1].offset; + rep[0] = inSeqs[lastSeqIdx].offset; + } else { + assert(lastSeqIdx == startIdx); + rep[2] = rep[1]; + rep[1] = rep[0]; + rep[0] = inSeqs[lastSeqIdx].offset; + } + } + + ZSTD_memcpy(cctx->blockState.nextCBlock->rep, updatedRepcodes.rep, sizeof(repcodes_t)); + + if (inSeqs[idx].litLength) { + DEBUGLOG(6, "Storing last literals of size: %u", inSeqs[idx].litLength); + ZSTD_storeLastLiterals(&cctx->seqStore, ip, inSeqs[idx].litLength); + ip += inSeqs[idx].litLength; + seqPos->posInSrc += inSeqs[idx].litLength; + } + RETURN_ERROR_IF(ip != iend, externalSequences_invalid, "Blocksize doesn't agree with block delimiter!"); + seqPos->idx = idx+1; + return 0; +} + +size_t +ZSTD_copySequencesToSeqStoreNoBlockDelim(ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch) +{ + U32 idx = seqPos->idx; + U32 startPosInSequence = seqPos->posInSequence; + U32 endPosInSequence = seqPos->posInSequence + (U32)blockSize; + size_t dictSize; + BYTE const* ip = (BYTE const*)(src); + BYTE const* iend = ip + blockSize; /* May be adjusted if we decide to process fewer than blockSize bytes */ + repcodes_t updatedRepcodes; + U32 bytesAdjustment = 0; + U32 finalMatchSplit = 0; + + /* TODO(embg) support fast parsing mode in noBlockDelim mode */ + (void)externalRepSearch; + + if (cctx->cdict) { + dictSize = cctx->cdict->dictContentSize; + } else if (cctx->prefixDict.dict) { + dictSize = cctx->prefixDict.dictSize; + } else { + dictSize = 0; + } + DEBUGLOG(5, "ZSTD_copySequencesToSeqStoreNoBlockDelim: idx: %u PIS: %u blockSize: %zu", idx, startPosInSequence, blockSize); + DEBUGLOG(5, "Start seq: idx: %u (of: %u ml: %u ll: %u)", idx, inSeqs[idx].offset, inSeqs[idx].matchLength, inSeqs[idx].litLength); + ZSTD_memcpy(updatedRepcodes.rep, cctx->blockState.prevCBlock->rep, sizeof(repcodes_t)); + while (endPosInSequence && idx < inSeqsSize && !finalMatchSplit) { + const ZSTD_Sequence currSeq = inSeqs[idx]; + U32 litLength = currSeq.litLength; + U32 matchLength = currSeq.matchLength; + U32 const rawOffset = currSeq.offset; + U32 offBase; + + /* Modify the sequence depending on where endPosInSequence lies */ + if (endPosInSequence >= currSeq.litLength + currSeq.matchLength) { + if (startPosInSequence >= litLength) { + startPosInSequence -= litLength; + litLength = 0; + matchLength -= startPosInSequence; + } else { + litLength -= startPosInSequence; + } + /* Move to the next sequence */ + endPosInSequence -= currSeq.litLength + currSeq.matchLength; + startPosInSequence = 0; + } else { + /* This is the final (partial) sequence we're adding from inSeqs, and endPosInSequence + does not reach the end of the match. So, we have to split the sequence */ + DEBUGLOG(6, "Require a split: diff: %u, idx: %u PIS: %u", + currSeq.litLength + currSeq.matchLength - endPosInSequence, idx, endPosInSequence); + if (endPosInSequence > litLength) { + U32 firstHalfMatchLength; + litLength = startPosInSequence >= litLength ? 0 : litLength - startPosInSequence; + firstHalfMatchLength = endPosInSequence - startPosInSequence - litLength; + if (matchLength > blockSize && firstHalfMatchLength >= cctx->appliedParams.cParams.minMatch) { + /* Only ever split the match if it is larger than the block size */ + U32 secondHalfMatchLength = currSeq.matchLength + currSeq.litLength - endPosInSequence; + if (secondHalfMatchLength < cctx->appliedParams.cParams.minMatch) { + /* Move the endPosInSequence backward so that it creates match of minMatch length */ + endPosInSequence -= cctx->appliedParams.cParams.minMatch - secondHalfMatchLength; + bytesAdjustment = cctx->appliedParams.cParams.minMatch - secondHalfMatchLength; + firstHalfMatchLength -= bytesAdjustment; + } + matchLength = firstHalfMatchLength; + /* Flag that we split the last match - after storing the sequence, exit the loop, + but keep the value of endPosInSequence */ + finalMatchSplit = 1; + } else { + /* Move the position in sequence backwards so that we don't split match, and break to store + * the last literals. We use the original currSeq.litLength as a marker for where endPosInSequence + * should go. We prefer to do this whenever it is not necessary to split the match, or if doing so + * would cause the first half of the match to be too small + */ + bytesAdjustment = endPosInSequence - currSeq.litLength; + endPosInSequence = currSeq.litLength; + break; + } + } else { + /* This sequence ends inside the literals, break to store the last literals */ + break; + } + } + /* Check if this offset can be represented with a repcode */ + { U32 const ll0 = (litLength == 0); + offBase = ZSTD_finalizeOffBase(rawOffset, updatedRepcodes.rep, ll0); + ZSTD_updateRep(updatedRepcodes.rep, offBase, ll0); + } + + if (cctx->appliedParams.validateSequences) { + seqPos->posInSrc += litLength + matchLength; + FORWARD_IF_ERROR(ZSTD_validateSequence(offBase, matchLength, cctx->appliedParams.cParams.minMatch, seqPos->posInSrc, + cctx->appliedParams.cParams.windowLog, dictSize, ZSTD_hasExtSeqProd(&cctx->appliedParams)), + "Sequence validation failed"); + } + DEBUGLOG(6, "Storing sequence: (of: %u, ml: %u, ll: %u)", offBase, matchLength, litLength); + RETURN_ERROR_IF(idx - seqPos->idx >= cctx->seqStore.maxNbSeq, externalSequences_invalid, + "Not enough memory allocated. Try adjusting ZSTD_c_minMatch."); + ZSTD_storeSeq(&cctx->seqStore, litLength, ip, iend, offBase, matchLength); + ip += matchLength + litLength; + if (!finalMatchSplit) + idx++; /* Next Sequence */ + } + DEBUGLOG(5, "Ending seq: idx: %u (of: %u ml: %u ll: %u)", idx, inSeqs[idx].offset, inSeqs[idx].matchLength, inSeqs[idx].litLength); + assert(idx == inSeqsSize || endPosInSequence <= inSeqs[idx].litLength + inSeqs[idx].matchLength); + seqPos->idx = idx; + seqPos->posInSequence = endPosInSequence; + ZSTD_memcpy(cctx->blockState.nextCBlock->rep, updatedRepcodes.rep, sizeof(repcodes_t)); + + iend -= bytesAdjustment; + if (ip != iend) { + /* Store any last literals */ + U32 lastLLSize = (U32)(iend - ip); + assert(ip <= iend); + DEBUGLOG(6, "Storing last literals of size: %u", lastLLSize); + ZSTD_storeLastLiterals(&cctx->seqStore, ip, lastLLSize); + seqPos->posInSrc += lastLLSize; + } + + return bytesAdjustment; +} + +typedef size_t (*ZSTD_sequenceCopier) (ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch); +static ZSTD_sequenceCopier ZSTD_selectSequenceCopier(ZSTD_sequenceFormat_e mode) +{ + ZSTD_sequenceCopier sequenceCopier = NULL; + assert(ZSTD_cParam_withinBounds(ZSTD_c_blockDelimiters, mode)); + if (mode == ZSTD_sf_explicitBlockDelimiters) { + return ZSTD_copySequencesToSeqStoreExplicitBlockDelim; + } else if (mode == ZSTD_sf_noBlockDelimiters) { + return ZSTD_copySequencesToSeqStoreNoBlockDelim; + } + assert(sequenceCopier != NULL); + return sequenceCopier; +} + +/* Discover the size of next block by searching for the delimiter. + * Note that a block delimiter **must** exist in this mode, + * otherwise it's an input error. + * The block size retrieved will be later compared to ensure it remains within bounds */ +static size_t +blockSize_explicitDelimiter(const ZSTD_Sequence* inSeqs, size_t inSeqsSize, ZSTD_sequencePosition seqPos) +{ + int end = 0; + size_t blockSize = 0; + size_t spos = seqPos.idx; + DEBUGLOG(6, "blockSize_explicitDelimiter : seq %zu / %zu", spos, inSeqsSize); + assert(spos <= inSeqsSize); + while (spos < inSeqsSize) { + end = (inSeqs[spos].offset == 0); + blockSize += inSeqs[spos].litLength + inSeqs[spos].matchLength; + if (end) { + if (inSeqs[spos].matchLength != 0) + RETURN_ERROR(externalSequences_invalid, "delimiter format error : both matchlength and offset must be == 0"); + break; + } + spos++; + } + if (!end) + RETURN_ERROR(externalSequences_invalid, "Reached end of sequences without finding a block delimiter"); + return blockSize; +} + +/* More a "target" block size */ +static size_t blockSize_noDelimiter(size_t blockSize, size_t remaining) +{ + int const lastBlock = (remaining <= blockSize); + return lastBlock ? remaining : blockSize; +} + +static size_t determine_blockSize(ZSTD_sequenceFormat_e mode, + size_t blockSize, size_t remaining, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, ZSTD_sequencePosition seqPos) +{ + DEBUGLOG(6, "determine_blockSize : remainingSize = %zu", remaining); + if (mode == ZSTD_sf_noBlockDelimiters) + return blockSize_noDelimiter(blockSize, remaining); + { size_t const explicitBlockSize = blockSize_explicitDelimiter(inSeqs, inSeqsSize, seqPos); + FORWARD_IF_ERROR(explicitBlockSize, "Error while determining block size with explicit delimiters"); + if (explicitBlockSize > blockSize) + RETURN_ERROR(externalSequences_invalid, "sequences incorrectly define a too large block"); + if (explicitBlockSize > remaining) + RETURN_ERROR(externalSequences_invalid, "sequences define a frame longer than source"); + return explicitBlockSize; + } +} + +/* Compress, block-by-block, all of the sequences given. + * + * Returns the cumulative size of all compressed blocks (including their headers), + * otherwise a ZSTD error. + */ +static size_t +ZSTD_compressSequences_internal(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, + const void* src, size_t srcSize) +{ + size_t cSize = 0; + size_t remaining = srcSize; + ZSTD_sequencePosition seqPos = {0, 0, 0}; + + BYTE const* ip = (BYTE const*)src; + BYTE* op = (BYTE*)dst; + ZSTD_sequenceCopier const sequenceCopier = ZSTD_selectSequenceCopier(cctx->appliedParams.blockDelimiters); + + DEBUGLOG(4, "ZSTD_compressSequences_internal srcSize: %zu, inSeqsSize: %zu", srcSize, inSeqsSize); + /* Special case: empty frame */ + if (remaining == 0) { + U32 const cBlockHeader24 = 1 /* last block */ + (((U32)bt_raw)<<1); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "No room for empty frame block header"); + MEM_writeLE32(op, cBlockHeader24); + op += ZSTD_blockHeaderSize; + dstCapacity -= ZSTD_blockHeaderSize; + cSize += ZSTD_blockHeaderSize; + } + + while (remaining) { + size_t compressedSeqsSize; + size_t cBlockSize; + size_t additionalByteAdjustment; + size_t blockSize = determine_blockSize(cctx->appliedParams.blockDelimiters, + cctx->blockSize, remaining, + inSeqs, inSeqsSize, seqPos); + U32 const lastBlock = (blockSize == remaining); + FORWARD_IF_ERROR(blockSize, "Error while trying to determine block size"); + assert(blockSize <= remaining); + ZSTD_resetSeqStore(&cctx->seqStore); + DEBUGLOG(5, "Working on new block. Blocksize: %zu (total:%zu)", blockSize, (ip - (const BYTE*)src) + blockSize); + + additionalByteAdjustment = sequenceCopier(cctx, &seqPos, inSeqs, inSeqsSize, ip, blockSize, cctx->appliedParams.searchForExternalRepcodes); + FORWARD_IF_ERROR(additionalByteAdjustment, "Bad sequence copy"); + blockSize -= additionalByteAdjustment; + + /* If blocks are too small, emit as a nocompress block */ + /* TODO: See 3090. We reduced MIN_CBLOCK_SIZE from 3 to 2 so to compensate we are adding + * additional 1. We need to revisit and change this logic to be more consistent */ + if (blockSize < MIN_CBLOCK_SIZE+ZSTD_blockHeaderSize+1+1) { + cBlockSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "Nocompress block failed"); + DEBUGLOG(5, "Block too small, writing out nocompress block: cSize: %zu", cBlockSize); + cSize += cBlockSize; + ip += blockSize; + op += cBlockSize; + remaining -= blockSize; + dstCapacity -= cBlockSize; + continue; + } + + RETURN_ERROR_IF(dstCapacity < ZSTD_blockHeaderSize, dstSize_tooSmall, "not enough dstCapacity to write a new compressed block"); + compressedSeqsSize = ZSTD_entropyCompressSeqStore(&cctx->seqStore, + &cctx->blockState.prevCBlock->entropy, &cctx->blockState.nextCBlock->entropy, + &cctx->appliedParams, + op + ZSTD_blockHeaderSize /* Leave space for block header */, dstCapacity - ZSTD_blockHeaderSize, + blockSize, + cctx->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */, + cctx->bmi2); + FORWARD_IF_ERROR(compressedSeqsSize, "Compressing sequences of block failed"); + DEBUGLOG(5, "Compressed sequences size: %zu", compressedSeqsSize); + + if (!cctx->isFirstBlock && + ZSTD_maybeRLE(&cctx->seqStore) && + ZSTD_isRLE(ip, blockSize)) { + /* We don't want to emit our first block as a RLE even if it qualifies because + * doing so will cause the decoder (cli only) to throw a "should consume all input error." + * This is only an issue for zstd <= v1.4.3 + */ + compressedSeqsSize = 1; + } + + if (compressedSeqsSize == 0) { + /* ZSTD_noCompressBlock writes the block header as well */ + cBlockSize = ZSTD_noCompressBlock(op, dstCapacity, ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "ZSTD_noCompressBlock failed"); + DEBUGLOG(5, "Writing out nocompress block, size: %zu", cBlockSize); + } else if (compressedSeqsSize == 1) { + cBlockSize = ZSTD_rleCompressBlock(op, dstCapacity, *ip, blockSize, lastBlock); + FORWARD_IF_ERROR(cBlockSize, "ZSTD_rleCompressBlock failed"); + DEBUGLOG(5, "Writing out RLE block, size: %zu", cBlockSize); + } else { + U32 cBlockHeader; + /* Error checking and repcodes update */ + ZSTD_blockState_confirmRepcodesAndEntropyTables(&cctx->blockState); + if (cctx->blockState.prevCBlock->entropy.fse.offcode_repeatMode == FSE_repeat_valid) + cctx->blockState.prevCBlock->entropy.fse.offcode_repeatMode = FSE_repeat_check; + + /* Write block header into beginning of block*/ + cBlockHeader = lastBlock + (((U32)bt_compressed)<<1) + (U32)(compressedSeqsSize << 3); + MEM_writeLE24(op, cBlockHeader); + cBlockSize = ZSTD_blockHeaderSize + compressedSeqsSize; + DEBUGLOG(5, "Writing out compressed block, size: %zu", cBlockSize); + } + + cSize += cBlockSize; + + if (lastBlock) { + break; + } else { + ip += blockSize; + op += cBlockSize; + remaining -= blockSize; + dstCapacity -= cBlockSize; + cctx->isFirstBlock = 0; + } + DEBUGLOG(5, "cSize running total: %zu (remaining dstCapacity=%zu)", cSize, dstCapacity); + } + + DEBUGLOG(4, "cSize final total: %zu", cSize); + return cSize; +} + +size_t ZSTD_compressSequences(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, + const void* src, size_t srcSize) +{ + BYTE* op = (BYTE*)dst; + size_t cSize = 0; + size_t compressedBlocksSize = 0; + size_t frameHeaderSize = 0; + + /* Transparent initialization stage, same as compressStream2() */ + DEBUGLOG(4, "ZSTD_compressSequences (dstCapacity=%zu)", dstCapacity); + assert(cctx != NULL); + FORWARD_IF_ERROR(ZSTD_CCtx_init_compressStream2(cctx, ZSTD_e_end, srcSize), "CCtx initialization failed"); + /* Begin writing output, starting with frame header */ + frameHeaderSize = ZSTD_writeFrameHeader(op, dstCapacity, &cctx->appliedParams, srcSize, cctx->dictID); + op += frameHeaderSize; + dstCapacity -= frameHeaderSize; + cSize += frameHeaderSize; + if (cctx->appliedParams.fParams.checksumFlag && srcSize) { + XXH64_update(&cctx->xxhState, src, srcSize); + } + /* cSize includes block header size and compressed sequences size */ + compressedBlocksSize = ZSTD_compressSequences_internal(cctx, + op, dstCapacity, + inSeqs, inSeqsSize, + src, srcSize); + FORWARD_IF_ERROR(compressedBlocksSize, "Compressing blocks failed!"); + cSize += compressedBlocksSize; + dstCapacity -= compressedBlocksSize; + + if (cctx->appliedParams.fParams.checksumFlag) { + U32 const checksum = (U32) XXH64_digest(&cctx->xxhState); + RETURN_ERROR_IF(dstCapacity<4, dstSize_tooSmall, "no room for checksum"); + DEBUGLOG(4, "Write checksum : %08X", (unsigned)checksum); + MEM_writeLE32((char*)dst + cSize, checksum); + cSize += 4; + } + + DEBUGLOG(4, "Final compressed size: %zu", cSize); + return cSize; +} + /*====== Finalize ======*/ +static ZSTD_inBuffer inBuffer_forEndFlush(const ZSTD_CStream* zcs) +{ + const ZSTD_inBuffer nullInput = { NULL, 0, 0 }; + const int stableInput = (zcs->appliedParams.inBufferMode == ZSTD_bm_stable); + return stableInput ? zcs->expectedInBuffer : nullInput; +} + /*! ZSTD_flushStream() : * @return : amount of data remaining to flush */ size_t ZSTD_flushStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output) { - ZSTD_inBuffer input = { NULL, 0, 0 }; + ZSTD_inBuffer input = inBuffer_forEndFlush(zcs); + input.size = input.pos; /* do not ingest more input during flush */ return ZSTD_compressStream2(zcs, output, &input, ZSTD_e_flush); } size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output) { - ZSTD_inBuffer input = { NULL, 0, 0 }; + ZSTD_inBuffer input = inBuffer_forEndFlush(zcs); size_t const remainingToFlush = ZSTD_compressStream2(zcs, output, &input, ZSTD_e_end); - FORWARD_IF_ERROR( remainingToFlush , "ZSTD_compressStream2 failed"); + FORWARD_IF_ERROR(remainingToFlush , "ZSTD_compressStream2(,,ZSTD_e_end) failed"); if (zcs->appliedParams.nbWorkers > 0) return remainingToFlush; /* minimal estimation */ /* single thread mode : attempt to calculate remaining to flush more precisely */ { size_t const lastBlockSize = zcs->frameEnded ? 0 : ZSTD_BLOCKHEADERSIZE; @@ -4112,139 +6968,121 @@ size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output) } } +} // namespace duckdb_zstd /*-===== Pre-defined compression levels =====-*/ +#include "zstd/compress/clevels.h" + +namespace duckdb_zstd { -#define ZSTD_MAX_CLEVEL 22 int ZSTD_maxCLevel(void) { return ZSTD_MAX_CLEVEL; } int ZSTD_minCLevel(void) { return (int)-ZSTD_TARGETLENGTH_MAX; } +int ZSTD_defaultCLevel(void) { return ZSTD_CLEVEL_DEFAULT; } -static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = { -{ /* "default" - for any srcSize > 256 KB */ - /* W, C, H, S, L, TL, strat */ - { 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */ - { 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */ - { 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */ - { 21, 16, 17, 1, 5, 0, ZSTD_dfast }, /* level 3 */ - { 21, 18, 18, 1, 5, 0, ZSTD_dfast }, /* level 4 */ - { 21, 18, 19, 2, 5, 2, ZSTD_greedy }, /* level 5 */ - { 21, 19, 19, 3, 5, 4, ZSTD_greedy }, /* level 6 */ - { 21, 19, 19, 3, 5, 8, ZSTD_lazy }, /* level 7 */ - { 21, 19, 19, 3, 5, 16, ZSTD_lazy2 }, /* level 8 */ - { 21, 19, 20, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */ - { 22, 20, 21, 4, 5, 16, ZSTD_lazy2 }, /* level 10 */ - { 22, 21, 22, 4, 5, 16, ZSTD_lazy2 }, /* level 11 */ - { 22, 21, 22, 5, 5, 16, ZSTD_lazy2 }, /* level 12 */ - { 22, 21, 22, 5, 5, 32, ZSTD_btlazy2 }, /* level 13 */ - { 22, 22, 23, 5, 5, 32, ZSTD_btlazy2 }, /* level 14 */ - { 22, 23, 23, 6, 5, 32, ZSTD_btlazy2 }, /* level 15 */ - { 22, 22, 22, 5, 5, 48, ZSTD_btopt }, /* level 16 */ - { 23, 23, 22, 5, 4, 64, ZSTD_btopt }, /* level 17 */ - { 23, 23, 22, 6, 3, 64, ZSTD_btultra }, /* level 18 */ - { 23, 24, 22, 7, 3,256, ZSTD_btultra2}, /* level 19 */ - { 25, 25, 23, 7, 3,256, ZSTD_btultra2}, /* level 20 */ - { 26, 26, 24, 7, 3,512, ZSTD_btultra2}, /* level 21 */ - { 27, 27, 25, 9, 3,999, ZSTD_btultra2}, /* level 22 */ -}, -{ /* for srcSize <= 256 KB */ - /* W, C, H, S, L, T, strat */ - { 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ - { 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */ - { 18, 14, 14, 1, 5, 0, ZSTD_dfast }, /* level 2 */ - { 18, 16, 16, 1, 4, 0, ZSTD_dfast }, /* level 3 */ - { 18, 16, 17, 2, 5, 2, ZSTD_greedy }, /* level 4.*/ - { 18, 18, 18, 3, 5, 2, ZSTD_greedy }, /* level 5.*/ - { 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/ - { 18, 18, 19, 4, 4, 4, ZSTD_lazy }, /* level 7 */ - { 18, 18, 19, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ - { 18, 18, 19, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ - { 18, 18, 19, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ - { 18, 18, 19, 5, 4, 12, ZSTD_btlazy2 }, /* level 11.*/ - { 18, 19, 19, 7, 4, 12, ZSTD_btlazy2 }, /* level 12.*/ - { 18, 18, 19, 4, 4, 16, ZSTD_btopt }, /* level 13 */ - { 18, 18, 19, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ - { 18, 18, 19, 6, 3,128, ZSTD_btopt }, /* level 15.*/ - { 18, 19, 19, 6, 3,128, ZSTD_btultra }, /* level 16.*/ - { 18, 19, 19, 8, 3,256, ZSTD_btultra }, /* level 17.*/ - { 18, 19, 19, 6, 3,128, ZSTD_btultra2}, /* level 18.*/ - { 18, 19, 19, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ - { 18, 19, 19, 10, 3,512, ZSTD_btultra2}, /* level 20.*/ - { 18, 19, 19, 12, 3,512, ZSTD_btultra2}, /* level 21.*/ - { 18, 19, 19, 13, 3,999, ZSTD_btultra2}, /* level 22.*/ -}, -{ /* for srcSize <= 128 KB */ - /* W, C, H, S, L, T, strat */ - { 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ - { 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */ - { 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */ - { 17, 15, 16, 2, 5, 0, ZSTD_dfast }, /* level 3 */ - { 17, 17, 17, 2, 4, 0, ZSTD_dfast }, /* level 4 */ - { 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */ - { 17, 17, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */ - { 17, 17, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */ - { 17, 17, 17, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ - { 17, 17, 17, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ - { 17, 17, 17, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ - { 17, 17, 17, 5, 4, 8, ZSTD_btlazy2 }, /* level 11 */ - { 17, 18, 17, 7, 4, 12, ZSTD_btlazy2 }, /* level 12 */ - { 17, 18, 17, 3, 4, 12, ZSTD_btopt }, /* level 13.*/ - { 17, 18, 17, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ - { 17, 18, 17, 6, 3,256, ZSTD_btopt }, /* level 15.*/ - { 17, 18, 17, 6, 3,128, ZSTD_btultra }, /* level 16.*/ - { 17, 18, 17, 8, 3,256, ZSTD_btultra }, /* level 17.*/ - { 17, 18, 17, 10, 3,512, ZSTD_btultra }, /* level 18.*/ - { 17, 18, 17, 5, 3,256, ZSTD_btultra2}, /* level 19.*/ - { 17, 18, 17, 7, 3,512, ZSTD_btultra2}, /* level 20.*/ - { 17, 18, 17, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ - { 17, 18, 17, 11, 3,999, ZSTD_btultra2}, /* level 22.*/ -}, -{ /* for srcSize <= 16 KB */ - /* W, C, H, S, L, T, strat */ - { 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ - { 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */ - { 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */ - { 14, 14, 15, 2, 4, 0, ZSTD_dfast }, /* level 3 */ - { 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */ - { 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/ - { 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */ - { 14, 14, 14, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */ - { 14, 14, 14, 8, 4, 8, ZSTD_lazy2 }, /* level 8.*/ - { 14, 15, 14, 5, 4, 8, ZSTD_btlazy2 }, /* level 9.*/ - { 14, 15, 14, 9, 4, 8, ZSTD_btlazy2 }, /* level 10.*/ - { 14, 15, 14, 3, 4, 12, ZSTD_btopt }, /* level 11.*/ - { 14, 15, 14, 4, 3, 24, ZSTD_btopt }, /* level 12.*/ - { 14, 15, 14, 5, 3, 32, ZSTD_btultra }, /* level 13.*/ - { 14, 15, 15, 6, 3, 64, ZSTD_btultra }, /* level 14.*/ - { 14, 15, 15, 7, 3,256, ZSTD_btultra }, /* level 15.*/ - { 14, 15, 15, 5, 3, 48, ZSTD_btultra2}, /* level 16.*/ - { 14, 15, 15, 6, 3,128, ZSTD_btultra2}, /* level 17.*/ - { 14, 15, 15, 7, 3,256, ZSTD_btultra2}, /* level 18.*/ - { 14, 15, 15, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ - { 14, 15, 15, 8, 3,512, ZSTD_btultra2}, /* level 20.*/ - { 14, 15, 15, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ - { 14, 15, 15, 10, 3,999, ZSTD_btultra2}, /* level 22.*/ -}, -}; +static ZSTD_compressionParameters ZSTD_dedicatedDictSearch_getCParams(int const compressionLevel, size_t const dictSize) +{ + ZSTD_compressionParameters cParams = ZSTD_getCParams_internal(compressionLevel, 0, dictSize, ZSTD_cpm_createCDict); + switch (cParams.strategy) { + case ZSTD_fast: + case ZSTD_dfast: + break; + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + cParams.hashLog += ZSTD_LAZY_DDSS_BUCKET_LOG; + break; + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + } + return cParams; +} + +static int ZSTD_dedicatedDictSearch_isSupported( + ZSTD_compressionParameters const* cParams) +{ + return (cParams->strategy >= ZSTD_greedy) + && (cParams->strategy <= ZSTD_lazy2) + && (cParams->hashLog > cParams->chainLog) + && (cParams->chainLog <= 24); +} + +/** + * Reverses the adjustment applied to cparams when enabling dedicated dict + * search. This is used to recover the params set to be used in the working + * context. (Otherwise, those tables would also grow.) + */ +static void ZSTD_dedicatedDictSearch_revertCParams( + ZSTD_compressionParameters* cParams) { + switch (cParams->strategy) { + case ZSTD_fast: + case ZSTD_dfast: + break; + case ZSTD_greedy: + case ZSTD_lazy: + case ZSTD_lazy2: + cParams->hashLog -= ZSTD_LAZY_DDSS_BUCKET_LOG; + if (cParams->hashLog < ZSTD_HASHLOG_MIN) { + cParams->hashLog = ZSTD_HASHLOG_MIN; + } + break; + case ZSTD_btlazy2: + case ZSTD_btopt: + case ZSTD_btultra: + case ZSTD_btultra2: + break; + } +} + +static U64 ZSTD_getCParamRowSize(U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) +{ + switch (mode) { + case ZSTD_cpm_unknown: + case ZSTD_cpm_noAttachDict: + case ZSTD_cpm_createCDict: + break; + case ZSTD_cpm_attachDict: + dictSize = 0; + break; + default: + assert(0); + break; + } + { int const unknown = srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN; + size_t const addedSize = unknown && dictSize > 0 ? 500 : 0; + return unknown && dictSize == 0 ? ZSTD_CONTENTSIZE_UNKNOWN : srcSizeHint+dictSize+addedSize; + } +} /*! ZSTD_getCParams_internal() : * @return ZSTD_compressionParameters structure for a selected compression level, srcSize and dictSize. * Note: srcSizeHint 0 means 0, use ZSTD_CONTENTSIZE_UNKNOWN for unknown. - * Use dictSize == 0 for unknown or unused. */ -static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) + * Use dictSize == 0 for unknown or unused. + * Note: `mode` controls how we treat the `dictSize`. See docs for `ZSTD_cParamMode_e`. */ +static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) { - int const unknown = srcSizeHint == ZSTD_CONTENTSIZE_UNKNOWN; - size_t const addedSize = unknown && dictSize > 0 ? 500 : 0; - U64 const rSize = unknown && dictSize == 0 ? ZSTD_CONTENTSIZE_UNKNOWN : srcSizeHint+dictSize+addedSize; + U64 const rSize = ZSTD_getCParamRowSize(srcSizeHint, dictSize, mode); U32 const tableID = (rSize <= 256 KB) + (rSize <= 128 KB) + (rSize <= 16 KB); - int row = compressionLevel; + int row; DEBUGLOG(5, "ZSTD_getCParams_internal (cLevel=%i)", compressionLevel); + + /* row */ if (compressionLevel == 0) row = ZSTD_CLEVEL_DEFAULT; /* 0 == default */ - if (compressionLevel < 0) row = 0; /* entry 0 is baseline for fast mode */ - if (compressionLevel > ZSTD_MAX_CLEVEL) row = ZSTD_MAX_CLEVEL; + else if (compressionLevel < 0) row = 0; /* entry 0 is baseline for fast mode */ + else if (compressionLevel > ZSTD_MAX_CLEVEL) row = ZSTD_MAX_CLEVEL; + else row = compressionLevel; + { ZSTD_compressionParameters cp = ZSTD_defaultCParameters[tableID][row]; - if (compressionLevel < 0) cp.targetLength = (unsigned)(-compressionLevel); /* acceleration factor */ + DEBUGLOG(5, "ZSTD_getCParams_internal selected tableID: %u row: %u strat: %u", tableID, row, (U32)cp.strategy); + /* acceleration factor */ + if (compressionLevel < 0) { + int const clampedCompressionLevel = MAX(ZSTD_minCLevel(), compressionLevel); + cp.targetLength = (unsigned)(-clampedCompressionLevel); + } /* refine parameters based on srcSize & dictSize */ - return ZSTD_adjustCParams_internal(cp, srcSizeHint, dictSize); + return ZSTD_adjustCParams_internal(cp, srcSizeHint, dictSize, mode, ZSTD_ps_auto); } } @@ -4254,18 +7092,18 @@ static ZSTD_compressionParameters ZSTD_getCParams_internal(int compressionLevel, ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) { if (srcSizeHint == 0) srcSizeHint = ZSTD_CONTENTSIZE_UNKNOWN; - return ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize); + return ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize, ZSTD_cpm_unknown); } /*! ZSTD_getParams() : * same idea as ZSTD_getCParams() * @return a `ZSTD_parameters` structure (instead of `ZSTD_compressionParameters`). * Fields of `ZSTD_frameParameters` are set to default values */ -static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) { +static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode) { ZSTD_parameters params; - ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize); + ZSTD_compressionParameters const cParams = ZSTD_getCParams_internal(compressionLevel, srcSizeHint, dictSize, mode); DEBUGLOG(5, "ZSTD_getParams (cLevel=%i)", compressionLevel); - memset(¶ms, 0, sizeof(params)); + ZSTD_memset(¶ms, 0, sizeof(params)); params.cParams = cParams; params.fParams.contentSizeFlag = 1; return params; @@ -4277,7 +7115,33 @@ static ZSTD_parameters ZSTD_getParams_internal(int compressionLevel, unsigned lo * Fields of `ZSTD_frameParameters` are set to default values */ ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long srcSizeHint, size_t dictSize) { if (srcSizeHint == 0) srcSizeHint = ZSTD_CONTENTSIZE_UNKNOWN; - return ZSTD_getParams_internal(compressionLevel, srcSizeHint, dictSize); + return ZSTD_getParams_internal(compressionLevel, srcSizeHint, dictSize, ZSTD_cpm_unknown); +} + +void ZSTD_registerSequenceProducer( + ZSTD_CCtx* zc, + void* extSeqProdState, + ZSTD_sequenceProducer_F extSeqProdFunc +) { + assert(zc != NULL); + ZSTD_CCtxParams_registerSequenceProducer( + &zc->requestedParams, extSeqProdState, extSeqProdFunc + ); +} + +void ZSTD_CCtxParams_registerSequenceProducer( + ZSTD_CCtx_params* params, + void* extSeqProdState, + ZSTD_sequenceProducer_F extSeqProdFunc +) { + assert(params != NULL); + if (extSeqProdFunc != NULL) { + params->extSeqProdFunc = extSeqProdFunc; + params->extSeqProdState = extSeqProdState; + } else { + params->extSeqProdFunc = NULL; + params->extSeqProdState = NULL; + } } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_compress_literals.cpp b/src/duckdb/third_party/zstd/compress/zstd_compress_literals.cpp index ab9dfb45..b68340da 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_compress_literals.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_compress_literals.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -14,11 +14,36 @@ #include "zstd/compress/zstd_compress_literals.h" namespace duckdb_zstd { + +/* ************************************************************** +* Debug Traces +****************************************************************/ +#if DEBUGLEVEL >= 2 + +static size_t showHexa(const void* src, size_t srcSize) +{ + const BYTE* const ip = (const BYTE*)src; + size_t u; + for (u=0; u31) + (srcSize>4095); + DEBUGLOG(5, "ZSTD_noCompressLiterals: srcSize=%zu, dstCapacity=%zu", srcSize, dstCapacity); + RETURN_ERROR_IF(srcSize + flSize > dstCapacity, dstSize_tooSmall, ""); switch(flSize) @@ -36,17 +61,31 @@ size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, const void* src, assert(0); } - memcpy(ostart + flSize, src, srcSize); - DEBUGLOG(5, "Raw literals: %u -> %u", (U32)srcSize, (U32)(srcSize + flSize)); + ZSTD_memcpy(ostart + flSize, src, srcSize); + DEBUGLOG(5, "Raw (uncompressed) literals: %u -> %u", (U32)srcSize, (U32)(srcSize + flSize)); return srcSize + flSize; } +static int allBytesIdentical(const void* src, size_t srcSize) +{ + assert(srcSize >= 1); + assert(src != NULL); + { const BYTE b = ((const BYTE*)src)[0]; + size_t p; + for (p=1; p31) + (srcSize>4095); - (void)dstCapacity; /* dstCapacity already guaranteed to be >=4, hence large enough */ + assert(dstCapacity >= 4); (void)dstCapacity; + assert(allBytesIdentical(src, srcSize)); switch(flSize) { @@ -64,68 +103,103 @@ size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapacity, const void* } ostart[flSize] = *(const BYTE*)src; - DEBUGLOG(5, "RLE literals: %u -> %u", (U32)srcSize, (U32)flSize + 1); + DEBUGLOG(5, "RLE : Repeated Literal (%02X: %u times) -> %u bytes encoded", ((const BYTE*)src)[0], (U32)srcSize, (U32)flSize + 1); return flSize+1; } -size_t ZSTD_compressLiterals (ZSTD_hufCTables_t const* prevHuf, - ZSTD_hufCTables_t* nextHuf, - ZSTD_strategy strategy, int disableLiteralCompression, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize, - void* entropyWorkspace, size_t entropyWorkspaceSize, - const int bmi2) +/* ZSTD_minLiteralsToCompress() : + * returns minimal amount of literals + * for literal compression to even be attempted. + * Minimum is made tighter as compression strategy increases. + */ +static size_t +ZSTD_minLiteralsToCompress(ZSTD_strategy strategy, HUF_repeat huf_repeat) +{ + assert((int)strategy >= 0); + assert((int)strategy <= 9); + /* btultra2 : min 8 bytes; + * then 2x larger for each successive compression strategy + * max threshold 64 bytes */ + { int const shift = MIN(9-(int)strategy, 3); + size_t const mintc = (huf_repeat == HUF_repeat_valid) ? 6 : (size_t)8 << shift; + DEBUGLOG(7, "minLiteralsToCompress = %zu", mintc); + return mintc; + } +} + +size_t ZSTD_compressLiterals ( + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + void* entropyWorkspace, size_t entropyWorkspaceSize, + const ZSTD_hufCTables_t* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_strategy strategy, + int disableLiteralCompression, + int suspectUncompressible, + int bmi2) { - size_t const minGain = ZSTD_minGain(srcSize, strategy); size_t const lhSize = 3 + (srcSize >= 1 KB) + (srcSize >= 16 KB); BYTE* const ostart = (BYTE*)dst; U32 singleStream = srcSize < 256; symbolEncodingType_e hType = set_compressed; size_t cLitSize; - DEBUGLOG(5,"ZSTD_compressLiterals (disableLiteralCompression=%i srcSize=%u)", - disableLiteralCompression, (U32)srcSize); + DEBUGLOG(5,"ZSTD_compressLiterals (disableLiteralCompression=%i, srcSize=%u, dstCapacity=%zu)", + disableLiteralCompression, (U32)srcSize, dstCapacity); + + DEBUGLOG(6, "Completed literals listing (%zu bytes)", showHexa(src, srcSize)); /* Prepare nextEntropy assuming reusing the existing table */ - memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); if (disableLiteralCompression) return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); - /* small ? don't even attempt compression (speed opt) */ -# define COMPRESS_LITERALS_SIZE_MIN 63 - { size_t const minLitSize = (prevHuf->repeatMode == HUF_repeat_valid) ? 6 : COMPRESS_LITERALS_SIZE_MIN; - if (srcSize <= minLitSize) return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); - } + /* if too small, don't even attempt compression (speed opt) */ + if (srcSize < ZSTD_minLiteralsToCompress(strategy, prevHuf->repeatMode)) + return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); RETURN_ERROR_IF(dstCapacity < lhSize+1, dstSize_tooSmall, "not enough space for compression"); { HUF_repeat repeat = prevHuf->repeatMode; - int const preferRepeat = strategy < ZSTD_lazy ? srcSize <= 1024 : 0; + int const flags = 0 + | (bmi2 ? HUF_flags_bmi2 : 0) + | (strategy < ZSTD_lazy && srcSize <= 1024 ? HUF_flags_preferRepeat : 0) + | (strategy >= HUF_OPTIMAL_DEPTH_THRESHOLD ? HUF_flags_optimalDepth : 0) + | (suspectUncompressible ? HUF_flags_suspectUncompressible : 0); + + typedef size_t (*huf_compress_f)(void*, size_t, const void*, size_t, unsigned, unsigned, void*, size_t, HUF_CElt*, HUF_repeat*, int); + huf_compress_f huf_compress; if (repeat == HUF_repeat_valid && lhSize == 3) singleStream = 1; - cLitSize = singleStream ? - HUF_compress1X_repeat( - ostart+lhSize, dstCapacity-lhSize, src, srcSize, - HUF_SYMBOLVALUE_MAX, HUF_TABLELOG_DEFAULT, entropyWorkspace, entropyWorkspaceSize, - (HUF_CElt*)nextHuf->CTable, &repeat, preferRepeat, bmi2) : - HUF_compress4X_repeat( - ostart+lhSize, dstCapacity-lhSize, src, srcSize, - HUF_SYMBOLVALUE_MAX, HUF_TABLELOG_DEFAULT, entropyWorkspace, entropyWorkspaceSize, - (HUF_CElt*)nextHuf->CTable, &repeat, preferRepeat, bmi2); + huf_compress = singleStream ? HUF_compress1X_repeat : HUF_compress4X_repeat; + cLitSize = huf_compress(ostart+lhSize, dstCapacity-lhSize, + src, srcSize, + HUF_SYMBOLVALUE_MAX, LitHufLog, + entropyWorkspace, entropyWorkspaceSize, + (HUF_CElt*)nextHuf->CTable, + &repeat, flags); + DEBUGLOG(5, "%zu literals compressed into %zu bytes (before header)", srcSize, cLitSize); if (repeat != HUF_repeat_none) { /* reused the existing table */ - DEBUGLOG(5, "Reusing previous huffman table"); + DEBUGLOG(5, "reusing statistics from previous huffman block"); hType = set_repeat; } } - if ((cLitSize==0) | (cLitSize >= srcSize - minGain) | ERR_isError(cLitSize)) { - memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); - return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); - } + { size_t const minGain = ZSTD_minGain(srcSize, strategy); + if ((cLitSize==0) || (cLitSize >= srcSize - minGain) || ERR_isError(cLitSize)) { + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + return ZSTD_noCompressLiterals(dst, dstCapacity, src, srcSize); + } } if (cLitSize==1) { - memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); - return ZSTD_compressRleLiteralsBlock(dst, dstCapacity, src, srcSize); - } + /* A return value of 1 signals that the alphabet consists of a single symbol. + * However, in some rare circumstances, it could be the compressed size (a single byte). + * For that outcome to have a chance to happen, it's necessary that `srcSize < 8`. + * (it's also necessary to not generate statistics). + * Therefore, in such a case, actively check that all bytes are identical. */ + if ((srcSize >= 8) || allBytesIdentical(src, srcSize)) { + ZSTD_memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); + return ZSTD_compressRleLiteralsBlock(dst, dstCapacity, src, srcSize); + } } if (hType == set_compressed) { /* using a newly constructed table */ @@ -136,16 +210,19 @@ size_t ZSTD_compressLiterals (ZSTD_hufCTables_t const* prevHuf, switch(lhSize) { case 3: /* 2 - 2 - 10 - 10 */ - { U32 const lhc = hType + ((!singleStream) << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<14); + if (!singleStream) assert(srcSize >= MIN_LITERALS_FOR_4_STREAMS); + { U32 const lhc = hType + ((U32)(!singleStream) << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<14); MEM_writeLE24(ostart, lhc); break; } case 4: /* 2 - 2 - 14 - 14 */ + assert(srcSize >= MIN_LITERALS_FOR_4_STREAMS); { U32 const lhc = hType + (2 << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<18); MEM_writeLE32(ostart, lhc); break; } case 5: /* 2 - 2 - 18 - 18 */ + assert(srcSize >= MIN_LITERALS_FOR_4_STREAMS); { U32 const lhc = hType + (3 << 2) + ((U32)srcSize<<4) + ((U32)cLitSize<<22); MEM_writeLE32(ostart, lhc); ostart[4] = (BYTE)(cLitSize >> 10); @@ -158,4 +235,4 @@ size_t ZSTD_compressLiterals (ZSTD_hufCTables_t const* prevHuf, return lhSize+cLitSize; } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_compress_sequences.cpp b/src/duckdb/third_party/zstd/compress/zstd_compress_sequences.cpp index e1cc1459..0ab82262 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_compress_sequences.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_compress_sequences.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -14,6 +14,7 @@ #include "zstd/compress/zstd_compress_sequences.h" namespace duckdb_zstd { + /** * -log2(x / 256) lookup table for x in [0, 256). * If x == 0: Return 0 @@ -51,6 +52,19 @@ static unsigned ZSTD_getFSEMaxSymbolValue(FSE_CTable const* ctable) { return maxSymbolValue; } +/** + * Returns true if we should use ncount=-1 else we should + * use ncount=1 for low probability symbols instead. + */ +static unsigned ZSTD_useLowProbCount(size_t const nbSeq) +{ + /* Heuristic: This should cover most blocks <= 16K and + * start to fade out after 16K to about 32K depending on + * compressibility. + */ + return nbSeq >= 2048; +} + /** * Returns the cost in bytes of encoding the normalized count header. * Returns an error if any of the helper functions return an error. @@ -61,7 +75,7 @@ static size_t ZSTD_NCountCost(unsigned const* count, unsigned const max, BYTE wksp[FSE_NCOUNTBOUND]; S16 norm[MaxSeq + 1]; const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max); - FORWARD_IF_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq, max), ""); + FORWARD_IF_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq, max, ZSTD_useLowProbCount(nbSeq)), ""); return FSE_writeNCount(wksp, sizeof(wksp), norm, max, tableLog); } @@ -73,6 +87,8 @@ static size_t ZSTD_entropyCost(unsigned const* count, unsigned const max, size_t { unsigned cost = 0; unsigned s; + + assert(total > 0); for (s = 0; s <= max; ++s) { unsigned norm = (unsigned)((256 * count[s]) / total); if (count[s] != 0 && norm == 0) @@ -152,7 +168,7 @@ ZSTD_selectEncodingType( if (mostFrequent == nbSeq) { *repeatMode = FSE_repeat_none; if (isDefaultAllowed && nbSeq <= 2) { - /* Prefer set_basic over set_rle when there are 2 or less symbols, + /* Prefer set_basic over set_rle when there are 2 or fewer symbols, * since RLE uses 1 byte, but set_basic uses 5-6 bits per symbol. * If basic encoding isn't possible, always choose RLE. */ @@ -220,6 +236,11 @@ ZSTD_selectEncodingType( return set_compressed; } +typedef struct { + S16 norm[MaxSeq + 1]; + U32 wksp[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(MaxSeq, MaxFSELog)]; +} ZSTD_BuildCTableWksp; + size_t ZSTD_buildCTable(void* dst, size_t dstCapacity, FSE_CTable* nextCTable, U32 FSELog, symbolEncodingType_e type, @@ -240,13 +261,13 @@ ZSTD_buildCTable(void* dst, size_t dstCapacity, *op = codeTable[0]; return 1; case set_repeat: - memcpy(nextCTable, prevCTable, prevCTableSize); + ZSTD_memcpy(nextCTable, prevCTable, prevCTableSize); return 0; case set_basic: FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, defaultNorm, defaultMax, defaultNormLog, entropyWorkspace, entropyWorkspaceSize), ""); /* note : could be pre-calculated */ return 0; case set_compressed: { - S16 norm[MaxSeq + 1]; + ZSTD_BuildCTableWksp* wksp = (ZSTD_BuildCTableWksp*)entropyWorkspace; size_t nbSeq_1 = nbSeq; const U32 tableLog = FSE_optimalTableLog(FSELog, nbSeq, max); if (count[codeTable[nbSeq-1]] > 1) { @@ -254,10 +275,13 @@ ZSTD_buildCTable(void* dst, size_t dstCapacity, nbSeq_1--; } assert(nbSeq_1 > 1); - FORWARD_IF_ERROR(FSE_normalizeCount(norm, tableLog, count, nbSeq_1, max), ""); - { size_t const NCountSize = FSE_writeNCount(op, oend - op, norm, max, tableLog); /* overflow protected */ + assert(entropyWorkspaceSize >= sizeof(ZSTD_BuildCTableWksp)); + (void)entropyWorkspaceSize; + FORWARD_IF_ERROR(FSE_normalizeCount(wksp->norm, tableLog, count, nbSeq_1, max, ZSTD_useLowProbCount(nbSeq_1)), "FSE_normalizeCount failed"); + assert(oend >= op); + { size_t const NCountSize = FSE_writeNCount(op, (size_t)(oend - op), wksp->norm, max, tableLog); /* overflow protected */ FORWARD_IF_ERROR(NCountSize, "FSE_writeNCount failed"); - FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, norm, max, tableLog, entropyWorkspace, entropyWorkspaceSize), ""); + FORWARD_IF_ERROR(FSE_buildCTable_wksp(nextCTable, wksp->norm, max, tableLog, wksp->wksp, sizeof(wksp->wksp)), "FSE_buildCTable_wksp failed"); return NCountSize; } } @@ -289,21 +313,21 @@ ZSTD_encodeSequences_body( FSE_initCState2(&stateMatchLength, CTable_MatchLength, mlCodeTable[nbSeq-1]); FSE_initCState2(&stateOffsetBits, CTable_OffsetBits, ofCodeTable[nbSeq-1]); FSE_initCState2(&stateLitLength, CTable_LitLength, llCodeTable[nbSeq-1]); - BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, ZSTDInternalConstants::LL_bits[llCodeTable[nbSeq-1]]); + BIT_addBits(&blockStream, sequences[nbSeq-1].litLength, LL_bits[llCodeTable[nbSeq-1]]); if (MEM_32bits()) BIT_flushBits(&blockStream); - BIT_addBits(&blockStream, sequences[nbSeq-1].matchLength, ZSTDInternalConstants::ML_bits[mlCodeTable[nbSeq-1]]); + BIT_addBits(&blockStream, sequences[nbSeq-1].mlBase, ML_bits[mlCodeTable[nbSeq-1]]); if (MEM_32bits()) BIT_flushBits(&blockStream); if (longOffsets) { U32 const ofBits = ofCodeTable[nbSeq-1]; unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1); if (extraBits) { - BIT_addBits(&blockStream, sequences[nbSeq-1].offset, extraBits); + BIT_addBits(&blockStream, sequences[nbSeq-1].offBase, extraBits); BIT_flushBits(&blockStream); } - BIT_addBits(&blockStream, sequences[nbSeq-1].offset >> extraBits, + BIT_addBits(&blockStream, sequences[nbSeq-1].offBase >> extraBits, ofBits - extraBits); } else { - BIT_addBits(&blockStream, sequences[nbSeq-1].offset, ofCodeTable[nbSeq-1]); + BIT_addBits(&blockStream, sequences[nbSeq-1].offBase, ofCodeTable[nbSeq-1]); } BIT_flushBits(&blockStream); @@ -312,13 +336,13 @@ ZSTD_encodeSequences_body( BYTE const llCode = llCodeTable[n]; BYTE const ofCode = ofCodeTable[n]; BYTE const mlCode = mlCodeTable[n]; - U32 const llBits = ZSTDInternalConstants::LL_bits[llCode]; + U32 const llBits = LL_bits[llCode]; U32 const ofBits = ofCode; - U32 const mlBits = ZSTDInternalConstants::ML_bits[mlCode]; + U32 const mlBits = ML_bits[mlCode]; DEBUGLOG(6, "encoding: litlen:%2u - matchlen:%2u - offCode:%7u", (unsigned)sequences[n].litLength, - (unsigned)sequences[n].matchLength + MINMATCH, - (unsigned)sequences[n].offset); + (unsigned)sequences[n].mlBase + MINMATCH, + (unsigned)sequences[n].offBase); /* 32b*/ /* 64b*/ /* (7)*/ /* (7)*/ FSE_encodeSymbol(&blockStream, &stateOffsetBits, ofCode); /* 15 */ /* 15 */ @@ -329,18 +353,18 @@ ZSTD_encodeSequences_body( BIT_flushBits(&blockStream); /* (7)*/ BIT_addBits(&blockStream, sequences[n].litLength, llBits); if (MEM_32bits() && ((llBits+mlBits)>24)) BIT_flushBits(&blockStream); - BIT_addBits(&blockStream, sequences[n].matchLength, mlBits); + BIT_addBits(&blockStream, sequences[n].mlBase, mlBits); if (MEM_32bits() || (ofBits+mlBits+llBits > 56)) BIT_flushBits(&blockStream); if (longOffsets) { unsigned const extraBits = ofBits - MIN(ofBits, STREAM_ACCUMULATOR_MIN-1); if (extraBits) { - BIT_addBits(&blockStream, sequences[n].offset, extraBits); + BIT_addBits(&blockStream, sequences[n].offBase, extraBits); BIT_flushBits(&blockStream); /* (7)*/ } - BIT_addBits(&blockStream, sequences[n].offset >> extraBits, + BIT_addBits(&blockStream, sequences[n].offBase >> extraBits, ofBits - extraBits); /* 31 */ } else { - BIT_addBits(&blockStream, sequences[n].offset, ofBits); /* 31 */ + BIT_addBits(&blockStream, sequences[n].offBase, ofBits); /* 31 */ } BIT_flushBits(&blockStream); /* (7)*/ DEBUGLOG(7, "remaining space : %i", (int)(blockStream.endPtr - blockStream.ptr)); @@ -377,7 +401,7 @@ ZSTD_encodeSequences_default( #if DYNAMIC_BMI2 -static TARGET_ATTRIBUTE("bmi2") size_t +static BMI2_TARGET_ATTRIBUTE size_t ZSTD_encodeSequences_bmi2( void* dst, size_t dstCapacity, FSE_CTable const* CTable_MatchLength, BYTE const* mlCodeTable, @@ -419,4 +443,4 @@ size_t ZSTD_encodeSequences( sequences, nbSeq, longOffsets); } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_compress_superblock.cpp b/src/duckdb/third_party/zstd/compress/zstd_compress_superblock.cpp index 559a3a0c..1ad0d3aa 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_compress_superblock.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_compress_superblock.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -15,288 +15,11 @@ #include "zstd/common/zstd_internal.h" /* ZSTD_getSequenceLength */ #include "zstd/compress/hist.h" /* HIST_countFast_wksp */ -#include "zstd/compress/zstd_compress_internal.h" +#include "zstd/compress/zstd_compress_internal.h" /* ZSTD_[huf|fse|entropy]CTablesMetadata_t */ #include "zstd/compress/zstd_compress_sequences.h" #include "zstd/compress/zstd_compress_literals.h" namespace duckdb_zstd { -/*-************************************* -* Superblock entropy buffer structs -***************************************/ -/** ZSTD_hufCTablesMetadata_t : - * Stores Literals Block Type for a super-block in hType, and - * huffman tree description in hufDesBuffer. - * hufDesSize refers to the size of huffman tree description in bytes. - * This metadata is populated in ZSTD_buildSuperBlockEntropy_literal() */ -typedef struct { - symbolEncodingType_e hType; - BYTE hufDesBuffer[500]; /* TODO give name to this value */ - size_t hufDesSize; -} ZSTD_hufCTablesMetadata_t; - -/** ZSTD_fseCTablesMetadata_t : - * Stores symbol compression modes for a super-block in {ll, ol, ml}Type, and - * fse tables in fseTablesBuffer. - * fseTablesSize refers to the size of fse tables in bytes. - * This metadata is populated in ZSTD_buildSuperBlockEntropy_sequences() */ -typedef struct { - symbolEncodingType_e llType; - symbolEncodingType_e ofType; - symbolEncodingType_e mlType; - BYTE fseTablesBuffer[500]; /* TODO give name to this value */ - size_t fseTablesSize; - size_t lastCountSize; /* This is to account for bug in 1.3.4. More detail in ZSTD_compressSubBlock_sequences() */ -} ZSTD_fseCTablesMetadata_t; - -typedef struct { - ZSTD_hufCTablesMetadata_t hufMetadata; - ZSTD_fseCTablesMetadata_t fseMetadata; -} ZSTD_entropyCTablesMetadata_t; - - -/** ZSTD_buildSuperBlockEntropy_literal() : - * Builds entropy for the super-block literals. - * Stores literals block type (raw, rle, compressed, repeat) and - * huffman description table to hufMetadata. - * @return : size of huffman description table or error code */ -static size_t ZSTD_buildSuperBlockEntropy_literal(void* const src, size_t srcSize, - const ZSTD_hufCTables_t* prevHuf, - ZSTD_hufCTables_t* nextHuf, - ZSTD_hufCTablesMetadata_t* hufMetadata, - const int disableLiteralsCompression, - void* workspace, size_t wkspSize) -{ - BYTE* const wkspStart = (BYTE*)workspace; - BYTE* const wkspEnd = wkspStart + wkspSize; - BYTE* const countWkspStart = wkspStart; - unsigned* const countWksp = (unsigned*)workspace; - const size_t countWkspSize = (HUF_SYMBOLVALUE_MAX + 1) * sizeof(unsigned); - BYTE* const nodeWksp = countWkspStart + countWkspSize; - const size_t nodeWkspSize = wkspEnd-nodeWksp; - unsigned maxSymbolValue = 255; - unsigned huffLog = HUF_TABLELOG_DEFAULT; - HUF_repeat repeat = prevHuf->repeatMode; - - DEBUGLOG(5, "ZSTD_buildSuperBlockEntropy_literal (srcSize=%zu)", srcSize); - - /* Prepare nextEntropy assuming reusing the existing table */ - memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); - - if (disableLiteralsCompression) { - DEBUGLOG(5, "set_basic - disabled"); - hufMetadata->hType = set_basic; - return 0; - } - - /* small ? don't even attempt compression (speed opt) */ -# define COMPRESS_LITERALS_SIZE_MIN 63 - { size_t const minLitSize = (prevHuf->repeatMode == HUF_repeat_valid) ? 6 : COMPRESS_LITERALS_SIZE_MIN; - if (srcSize <= minLitSize) { - DEBUGLOG(5, "set_basic - too small"); - hufMetadata->hType = set_basic; - return 0; - } - } - - /* Scan input and build symbol stats */ - { size_t const largest = HIST_count_wksp (countWksp, &maxSymbolValue, (const BYTE*)src, srcSize, workspace, wkspSize); - FORWARD_IF_ERROR(largest, "HIST_count_wksp failed"); - if (largest == srcSize) { - DEBUGLOG(5, "set_rle"); - hufMetadata->hType = set_rle; - return 0; - } - if (largest <= (srcSize >> 7)+4) { - DEBUGLOG(5, "set_basic - no gain"); - hufMetadata->hType = set_basic; - return 0; - } - } - - /* Validate the previous Huffman table */ - if (repeat == HUF_repeat_check && !HUF_validateCTable((HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue)) { - repeat = HUF_repeat_none; - } - - /* Build Huffman Tree */ - memset(nextHuf->CTable, 0, sizeof(nextHuf->CTable)); - huffLog = HUF_optimalTableLog(huffLog, srcSize, maxSymbolValue); - { size_t const maxBits = HUF_buildCTable_wksp((HUF_CElt*)nextHuf->CTable, countWksp, - maxSymbolValue, huffLog, - nodeWksp, nodeWkspSize); - FORWARD_IF_ERROR(maxBits, "HUF_buildCTable_wksp"); - huffLog = (U32)maxBits; - { /* Build and write the CTable */ - size_t const newCSize = HUF_estimateCompressedSize( - (HUF_CElt*)nextHuf->CTable, countWksp, maxSymbolValue); - size_t const hSize = HUF_writeCTable( - hufMetadata->hufDesBuffer, sizeof(hufMetadata->hufDesBuffer), - (HUF_CElt*)nextHuf->CTable, maxSymbolValue, huffLog); - /* Check against repeating the previous CTable */ - if (repeat != HUF_repeat_none) { - size_t const oldCSize = HUF_estimateCompressedSize( - (HUF_CElt const*)prevHuf->CTable, countWksp, maxSymbolValue); - if (oldCSize < srcSize && (oldCSize <= hSize + newCSize || hSize + 12 >= srcSize)) { - DEBUGLOG(5, "set_repeat - smaller"); - memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); - hufMetadata->hType = set_repeat; - return 0; - } - } - if (newCSize + hSize >= srcSize) { - DEBUGLOG(5, "set_basic - no gains"); - memcpy(nextHuf, prevHuf, sizeof(*prevHuf)); - hufMetadata->hType = set_basic; - return 0; - } - DEBUGLOG(5, "set_compressed (hSize=%u)", (U32)hSize); - hufMetadata->hType = set_compressed; - nextHuf->repeatMode = HUF_repeat_check; - return hSize; - } - } -} - -/** ZSTD_buildSuperBlockEntropy_sequences() : - * Builds entropy for the super-block sequences. - * Stores symbol compression modes and fse table to fseMetadata. - * @return : size of fse tables or error code */ -static size_t ZSTD_buildSuperBlockEntropy_sequences(seqStore_t* seqStorePtr, - const ZSTD_fseCTables_t* prevEntropy, - ZSTD_fseCTables_t* nextEntropy, - const ZSTD_CCtx_params* cctxParams, - ZSTD_fseCTablesMetadata_t* fseMetadata, - void* workspace, size_t wkspSize) -{ - BYTE* const wkspStart = (BYTE*)workspace; - BYTE* const wkspEnd = wkspStart + wkspSize; - BYTE* const countWkspStart = wkspStart; - unsigned* const countWksp = (unsigned*)workspace; - const size_t countWkspSize = (MaxSeq + 1) * sizeof(unsigned); - BYTE* const cTableWksp = countWkspStart + countWkspSize; - const size_t cTableWkspSize = wkspEnd-cTableWksp; - ZSTD_strategy const strategy = cctxParams->cParams.strategy; - FSE_CTable* CTable_LitLength = nextEntropy->litlengthCTable; - FSE_CTable* CTable_OffsetBits = nextEntropy->offcodeCTable; - FSE_CTable* CTable_MatchLength = nextEntropy->matchlengthCTable; - const BYTE* const ofCodeTable = seqStorePtr->ofCode; - const BYTE* const llCodeTable = seqStorePtr->llCode; - const BYTE* const mlCodeTable = seqStorePtr->mlCode; - size_t const nbSeq = seqStorePtr->sequences - seqStorePtr->sequencesStart; - BYTE* const ostart = fseMetadata->fseTablesBuffer; - BYTE* const oend = ostart + sizeof(fseMetadata->fseTablesBuffer); - BYTE* op = ostart; - - assert(cTableWkspSize >= (1 << MaxFSELog) * sizeof(FSE_FUNCTION_TYPE)); - DEBUGLOG(5, "ZSTD_buildSuperBlockEntropy_sequences (nbSeq=%zu)", nbSeq); - memset(workspace, 0, wkspSize); - - fseMetadata->lastCountSize = 0; - /* convert length/distances into codes */ - ZSTD_seqToCodes(seqStorePtr); - /* build CTable for Literal Lengths */ - { U32 LLtype; - unsigned max = MaxLL; - size_t const mostFrequent = HIST_countFast_wksp(countWksp, &max, llCodeTable, nbSeq, workspace, wkspSize); /* can't fail */ - DEBUGLOG(5, "Building LL table"); - nextEntropy->litlength_repeatMode = prevEntropy->litlength_repeatMode; - LLtype = ZSTD_selectEncodingType(&nextEntropy->litlength_repeatMode, - countWksp, max, mostFrequent, nbSeq, - LLFSELog, prevEntropy->litlengthCTable, - ZSTDInternalConstants::LL_defaultNorm, ZSTDInternalConstants::LL_defaultNormLog, - ZSTD_defaultAllowed, strategy); - assert(set_basic < set_compressed && set_rle < set_compressed); - assert(!(LLtype < set_compressed && nextEntropy->litlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ - { size_t const countSize = ZSTD_buildCTable(op, oend - op, CTable_LitLength, LLFSELog, (symbolEncodingType_e)LLtype, - countWksp, max, llCodeTable, nbSeq, ZSTDInternalConstants::LL_defaultNorm, ZSTDInternalConstants::LL_defaultNormLog, MaxLL, - prevEntropy->litlengthCTable, sizeof(prevEntropy->litlengthCTable), - cTableWksp, cTableWkspSize); - FORWARD_IF_ERROR(countSize, "ZSTD_buildCTable for LitLens failed"); - if (LLtype == set_compressed) - fseMetadata->lastCountSize = countSize; - op += countSize; - fseMetadata->llType = (symbolEncodingType_e) LLtype; - } } - /* build CTable for Offsets */ - { U32 Offtype; - unsigned max = MaxOff; - size_t const mostFrequent = HIST_countFast_wksp(countWksp, &max, ofCodeTable, nbSeq, workspace, wkspSize); /* can't fail */ - /* We can only use the basic table if max <= DefaultMaxOff, otherwise the offsets are too large */ - ZSTD_defaultPolicy_e const defaultPolicy = (max <= DefaultMaxOff) ? ZSTD_defaultAllowed : ZSTD_defaultDisallowed; - DEBUGLOG(5, "Building OF table"); - nextEntropy->offcode_repeatMode = prevEntropy->offcode_repeatMode; - Offtype = ZSTD_selectEncodingType(&nextEntropy->offcode_repeatMode, - countWksp, max, mostFrequent, nbSeq, - OffFSELog, prevEntropy->offcodeCTable, - ZSTDInternalConstants::OF_defaultNorm, ZSTDInternalConstants::OF_defaultNormLog, - defaultPolicy, strategy); - assert(!(Offtype < set_compressed && nextEntropy->offcode_repeatMode != FSE_repeat_none)); /* We don't copy tables */ - { size_t const countSize = ZSTD_buildCTable(op, oend - op, CTable_OffsetBits, OffFSELog, (symbolEncodingType_e)Offtype, - countWksp, max, ofCodeTable, nbSeq, ZSTDInternalConstants::OF_defaultNorm, ZSTDInternalConstants::OF_defaultNormLog, DefaultMaxOff, - prevEntropy->offcodeCTable, sizeof(prevEntropy->offcodeCTable), - cTableWksp, cTableWkspSize); - FORWARD_IF_ERROR(countSize, "ZSTD_buildCTable for Offsets failed"); - if (Offtype == set_compressed) - fseMetadata->lastCountSize = countSize; - op += countSize; - fseMetadata->ofType = (symbolEncodingType_e) Offtype; - } } - /* build CTable for MatchLengths */ - { U32 MLtype; - unsigned max = MaxML; - size_t const mostFrequent = HIST_countFast_wksp(countWksp, &max, mlCodeTable, nbSeq, workspace, wkspSize); /* can't fail */ - DEBUGLOG(5, "Building ML table (remaining space : %i)", (int)(oend-op)); - nextEntropy->matchlength_repeatMode = prevEntropy->matchlength_repeatMode; - MLtype = ZSTD_selectEncodingType(&nextEntropy->matchlength_repeatMode, - countWksp, max, mostFrequent, nbSeq, - MLFSELog, prevEntropy->matchlengthCTable, - ZSTDInternalConstants::ML_defaultNorm, ZSTDInternalConstants::ML_defaultNormLog, - ZSTD_defaultAllowed, strategy); - assert(!(MLtype < set_compressed && nextEntropy->matchlength_repeatMode != FSE_repeat_none)); /* We don't copy tables */ - { size_t const countSize = ZSTD_buildCTable(op, oend - op, CTable_MatchLength, MLFSELog, (symbolEncodingType_e)MLtype, - countWksp, max, mlCodeTable, nbSeq, ZSTDInternalConstants::ML_defaultNorm, ZSTDInternalConstants::ML_defaultNormLog, MaxML, - prevEntropy->matchlengthCTable, sizeof(prevEntropy->matchlengthCTable), - cTableWksp, cTableWkspSize); - FORWARD_IF_ERROR(countSize, "ZSTD_buildCTable for MatchLengths failed"); - if (MLtype == set_compressed) - fseMetadata->lastCountSize = countSize; - op += countSize; - fseMetadata->mlType = (symbolEncodingType_e) MLtype; - } } - assert((size_t) (op-ostart) <= sizeof(fseMetadata->fseTablesBuffer)); - return op-ostart; -} - - -/** ZSTD_buildSuperBlockEntropy() : - * Builds entropy for the super-block. - * @return : 0 on success or error code */ -static size_t -ZSTD_buildSuperBlockEntropy(seqStore_t* seqStorePtr, - const ZSTD_entropyCTables_t* prevEntropy, - ZSTD_entropyCTables_t* nextEntropy, - const ZSTD_CCtx_params* cctxParams, - ZSTD_entropyCTablesMetadata_t* entropyMetadata, - void* workspace, size_t wkspSize) -{ - size_t const litSize = seqStorePtr->lit - seqStorePtr->litStart; - DEBUGLOG(5, "ZSTD_buildSuperBlockEntropy"); - entropyMetadata->hufMetadata.hufDesSize = - ZSTD_buildSuperBlockEntropy_literal(seqStorePtr->litStart, litSize, - &prevEntropy->huf, &nextEntropy->huf, - &entropyMetadata->hufMetadata, - ZSTD_disableLiteralsCompression(cctxParams), - workspace, wkspSize); - FORWARD_IF_ERROR(entropyMetadata->hufMetadata.hufDesSize, "ZSTD_buildSuperBlockEntropy_literal failed"); - entropyMetadata->fseMetadata.fseTablesSize = - ZSTD_buildSuperBlockEntropy_sequences(seqStorePtr, - &prevEntropy->fse, &nextEntropy->fse, - cctxParams, - &entropyMetadata->fseMetadata, - workspace, wkspSize); - FORWARD_IF_ERROR(entropyMetadata->fseMetadata.fseTablesSize, "ZSTD_buildSuperBlockEntropy_sequences failed"); - return 0; -} /** ZSTD_compressSubBlock_literal() : * Compresses literals section for a sub-block. @@ -305,7 +28,7 @@ ZSTD_buildSuperBlockEntropy(seqStore_t* seqStorePtr, * before we know the table size + compressed size, so we have a bound on the * table size. If we guessed incorrectly, we fall back to uncompressed literals. * - * We write the header when writeEntropy=1 and set entropyWrriten=1 when we succeeded + * We write the header when writeEntropy=1 and set entropyWritten=1 when we succeeded * in writing the header, otherwise it is set to 0. * * hufMetadata->hType has literals block type info. @@ -315,13 +38,14 @@ ZSTD_buildSuperBlockEntropy(seqStore_t* seqStorePtr, * If it is set_compressed, first sub-block's literals section will be Treeless_Literals_Block * and the following sub-blocks' literals sections will be Treeless_Literals_Block. * @return : compressed size of literals section of a sub-block - * Or 0 if it unable to compress. + * Or 0 if unable to compress. * Or error code */ -static size_t ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, - const ZSTD_hufCTablesMetadata_t* hufMetadata, - const BYTE* literals, size_t litSize, - void* dst, size_t dstSize, - const int bmi2, int writeEntropy, int* entropyWritten) +static size_t +ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, + const ZSTD_hufCTablesMetadata_t* hufMetadata, + const BYTE* literals, size_t litSize, + void* dst, size_t dstSize, + const int bmi2, int writeEntropy, int* entropyWritten) { size_t const header = writeEntropy ? 200 : 0; size_t const lhSize = 3 + (litSize >= (1 KB - header)) + (litSize >= (16 KB - header)); @@ -332,8 +56,6 @@ static size_t ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, symbolEncodingType_e hType = writeEntropy ? hufMetadata->hType : set_repeat; size_t cLitSize = 0; - (void)bmi2; /* TODO bmi2... */ - DEBUGLOG(5, "ZSTD_compressSubBlock_literal (litSize=%zu, lhSize=%zu, writeEntropy=%d)", litSize, lhSize, writeEntropy); *entropyWritten = 0; @@ -349,15 +71,15 @@ static size_t ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, assert(hufMetadata->hType == set_compressed || hufMetadata->hType == set_repeat); if (writeEntropy && hufMetadata->hType == set_compressed) { - memcpy(op, hufMetadata->hufDesBuffer, hufMetadata->hufDesSize); + ZSTD_memcpy(op, hufMetadata->hufDesBuffer, hufMetadata->hufDesSize); op += hufMetadata->hufDesSize; cLitSize += hufMetadata->hufDesSize; DEBUGLOG(5, "ZSTD_compressSubBlock_literal (hSize=%zu)", hufMetadata->hufDesSize); } - /* TODO bmi2 */ - { const size_t cSize = singleStream ? HUF_compress1X_usingCTable(op, oend-op, literals, litSize, hufTable) - : HUF_compress4X_usingCTable(op, oend-op, literals, litSize, hufTable); + { int const flags = bmi2 ? HUF_flags_bmi2 : 0; + const size_t cSize = singleStream ? HUF_compress1X_usingCTable(op, (size_t)(oend-op), literals, litSize, hufTable, flags) + : HUF_compress4X_usingCTable(op, (size_t)(oend-op), literals, litSize, hufTable, flags); op += cSize; cLitSize += cSize; if (cSize == 0 || ERR_isError(cSize)) { @@ -382,7 +104,7 @@ static size_t ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, switch(lhSize) { case 3: /* 2 - 2 - 10 - 10 */ - { U32 const lhc = hType + ((!singleStream) << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<14); + { U32 const lhc = hType + ((U32)(!singleStream) << 2) + ((U32)litSize<<4) + ((U32)cLitSize<<14); MEM_writeLE24(ostart, lhc); break; } @@ -402,19 +124,30 @@ static size_t ZSTD_compressSubBlock_literal(const HUF_CElt* hufTable, } *entropyWritten = 1; DEBUGLOG(5, "Compressed literals: %u -> %u", (U32)litSize, (U32)(op-ostart)); - return op-ostart; + return (size_t)(op-ostart); } -static size_t ZSTD_seqDecompressedSize(seqStore_t const* seqStore, const seqDef* sequences, size_t nbSeq, size_t litSize, int lastSequence) { - const seqDef* const sstart = sequences; - const seqDef* const send = sequences + nbSeq; - const seqDef* sp = sstart; +static size_t +ZSTD_seqDecompressedSize(seqStore_t const* seqStore, + const seqDef* sequences, size_t nbSeqs, + size_t litSize, int lastSubBlock) +{ size_t matchLengthSum = 0; - while (send-sp > 0) { - ZSTD_sequenceLength const seqLen = ZSTD_getSequenceLength(seqStore, sp); + size_t litLengthSum = 0; + size_t n; + for (n=0; ncParams.windowLog > STREAM_ACCUMULATOR_MIN; BYTE* const ostart = (BYTE*)dst; @@ -448,14 +182,14 @@ static size_t ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t* fseTables /* Sequences Header */ RETURN_ERROR_IF((oend-op) < 3 /*max nbSeq Size*/ + 1 /*seqHead*/, dstSize_tooSmall, ""); - if (nbSeq < 0x7F) + if (nbSeq < 128) *op++ = (BYTE)nbSeq; else if (nbSeq < LONGNBSEQ) op[0] = (BYTE)((nbSeq>>8) + 0x80), op[1] = (BYTE)nbSeq, op+=2; else op[0]=0xFF, MEM_writeLE16(op+1, (U16)(nbSeq - LONGNBSEQ)), op+=3; if (nbSeq==0) { - return op - ostart; + return (size_t)(op - ostart); } /* seqHead : flags for FSE encoding type */ @@ -469,7 +203,7 @@ static size_t ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t* fseTables const U32 MLtype = fseMetadata->mlType; DEBUGLOG(5, "ZSTD_compressSubBlock_sequences (fseTablesSize=%zu)", fseMetadata->fseTablesSize); *seqHead = (BYTE)((LLtype<<6) + (Offtype<<4) + (MLtype<<2)); - memcpy(op, fseMetadata->fseTablesBuffer, fseMetadata->fseTablesSize); + ZSTD_memcpy(op, fseMetadata->fseTablesBuffer, fseMetadata->fseTablesSize); op += fseMetadata->fseTablesSize; } else { const U32 repeat = set_repeat; @@ -477,7 +211,7 @@ static size_t ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t* fseTables } { size_t const bitstreamSize = ZSTD_encodeSequences( - op, oend - op, + op, (size_t)(oend - op), fseTables->matchlengthCTable, mlCode, fseTables->offcodeCTable, ofCode, fseTables->litlengthCTable, llCode, @@ -521,7 +255,7 @@ static size_t ZSTD_compressSubBlock_sequences(const ZSTD_fseCTables_t* fseTables #endif *entropyWritten = 1; - return op - ostart; + return (size_t)(op - ostart); } /** ZSTD_compressSubBlock() : @@ -542,12 +276,13 @@ static size_t ZSTD_compressSubBlock(const ZSTD_entropyCTables_t* entropy, { BYTE* const ostart = (BYTE*)dst; BYTE* const oend = ostart + dstCapacity; - BYTE* op = ostart + ZSTDInternalConstants::ZSTD_blockHeaderSize; + BYTE* op = ostart + ZSTD_blockHeaderSize; DEBUGLOG(5, "ZSTD_compressSubBlock (litSize=%zu, nbSeq=%zu, writeLitEntropy=%d, writeSeqEntropy=%d, lastBlock=%d)", litSize, nbSeq, writeLitEntropy, writeSeqEntropy, lastBlock); { size_t cLitSize = ZSTD_compressSubBlock_literal((const HUF_CElt*)entropy->huf.CTable, &entropyMetadata->hufMetadata, literals, litSize, - op, oend-op, bmi2, writeLitEntropy, litEntropyWritten); + op, (size_t)(oend-op), + bmi2, writeLitEntropy, litEntropyWritten); FORWARD_IF_ERROR(cLitSize, "ZSTD_compressSubBlock_literal failed"); if (cLitSize == 0) return 0; op += cLitSize; @@ -557,18 +292,18 @@ static size_t ZSTD_compressSubBlock(const ZSTD_entropyCTables_t* entropy, sequences, nbSeq, llCode, mlCode, ofCode, cctxParams, - op, oend-op, + op, (size_t)(oend-op), bmi2, writeSeqEntropy, seqEntropyWritten); FORWARD_IF_ERROR(cSeqSize, "ZSTD_compressSubBlock_sequences failed"); if (cSeqSize == 0) return 0; op += cSeqSize; } /* Write block header */ - { size_t cSize = (op-ostart)-ZSTDInternalConstants::ZSTD_blockHeaderSize; + { size_t cSize = (size_t)(op-ostart) - ZSTD_blockHeaderSize; U32 const cBlockHeader24 = lastBlock + (((U32)bt_compressed)<<1) + (U32)(cSize << 3); MEM_writeLE24(ostart, cBlockHeader24); } - return op-ostart; + return (size_t)(op-ostart); } static size_t ZSTD_estimateSubBlockSize_literal(const BYTE* literals, size_t litSize, @@ -597,8 +332,8 @@ static size_t ZSTD_estimateSubBlockSize_literal(const BYTE* literals, size_t lit static size_t ZSTD_estimateSubBlockSize_symbolType(symbolEncodingType_e type, const BYTE* codeTable, unsigned maxCode, size_t nbSeq, const FSE_CTable* fseCTable, - const U32* additionalBits, - short const* defaultNorm, U32 defaultNormLog, + const U8* additionalBits, + short const* defaultNorm, U32 defaultNormLog, U32 defaultMax, void* workspace, size_t wkspSize) { unsigned* const countWksp = (unsigned*)workspace; @@ -610,7 +345,11 @@ static size_t ZSTD_estimateSubBlockSize_symbolType(symbolEncodingType_e type, HIST_countFast_wksp(countWksp, &max, codeTable, nbSeq, workspace, wkspSize); /* can't fail */ if (type == set_basic) { - cSymbolTypeSizeEstimateInBits = ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, countWksp, max); + /* We selected this encoding type, so it must be valid. */ + assert(max <= defaultMax); + cSymbolTypeSizeEstimateInBits = max <= defaultMax + ? ZSTD_crossEntropyCost(defaultNorm, defaultNormLog, countWksp, max) + : ERROR(GENERIC); } else if (type == set_rle) { cSymbolTypeSizeEstimateInBits = 0; } else if (type == set_compressed || type == set_repeat) { @@ -634,25 +373,30 @@ static size_t ZSTD_estimateSubBlockSize_sequences(const BYTE* ofCodeTable, void* workspace, size_t wkspSize, int writeEntropy) { - size_t sequencesSectionHeaderSize = 3; /* Use hard coded size of 3 bytes */ + size_t const sequencesSectionHeaderSize = 3; /* Use hard coded size of 3 bytes */ size_t cSeqSizeEstimate = 0; + if (nbSeq == 0) return sequencesSectionHeaderSize; cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->ofType, ofCodeTable, MaxOff, nbSeq, fseTables->offcodeCTable, NULL, - ZSTDInternalConstants::OF_defaultNorm, ZSTDInternalConstants::OF_defaultNormLog, + OF_defaultNorm, OF_defaultNormLog, DefaultMaxOff, workspace, wkspSize); cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->llType, llCodeTable, MaxLL, - nbSeq, fseTables->litlengthCTable, ZSTDInternalConstants::LL_bits, - ZSTDInternalConstants::LL_defaultNorm, ZSTDInternalConstants::LL_defaultNormLog, + nbSeq, fseTables->litlengthCTable, LL_bits, + LL_defaultNorm, LL_defaultNormLog, MaxLL, workspace, wkspSize); cSeqSizeEstimate += ZSTD_estimateSubBlockSize_symbolType(fseMetadata->mlType, mlCodeTable, MaxML, - nbSeq, fseTables->matchlengthCTable, ZSTDInternalConstants::ML_bits, - ZSTDInternalConstants::ML_defaultNorm, ZSTDInternalConstants::ML_defaultNormLog, + nbSeq, fseTables->matchlengthCTable, ML_bits, + ML_defaultNorm, ML_defaultNormLog, MaxML, workspace, wkspSize); if (writeEntropy) cSeqSizeEstimate += fseMetadata->fseTablesSize; return cSeqSizeEstimate + sequencesSectionHeaderSize; } -static size_t ZSTD_estimateSubBlockSize(const BYTE* literals, size_t litSize, +typedef struct { + size_t estLitSize; + size_t estBlockSize; +} EstimatedBlockSize; +static EstimatedBlockSize ZSTD_estimateSubBlockSize(const BYTE* literals, size_t litSize, const BYTE* ofCodeTable, const BYTE* llCodeTable, const BYTE* mlCodeTable, @@ -660,15 +404,17 @@ static size_t ZSTD_estimateSubBlockSize(const BYTE* literals, size_t litSize, const ZSTD_entropyCTables_t* entropy, const ZSTD_entropyCTablesMetadata_t* entropyMetadata, void* workspace, size_t wkspSize, - int writeLitEntropy, int writeSeqEntropy) { - size_t cSizeEstimate = 0; - cSizeEstimate += ZSTD_estimateSubBlockSize_literal(literals, litSize, - &entropy->huf, &entropyMetadata->hufMetadata, - workspace, wkspSize, writeLitEntropy); - cSizeEstimate += ZSTD_estimateSubBlockSize_sequences(ofCodeTable, llCodeTable, mlCodeTable, + int writeLitEntropy, int writeSeqEntropy) +{ + EstimatedBlockSize ebs; + ebs.estLitSize = ZSTD_estimateSubBlockSize_literal(literals, litSize, + &entropy->huf, &entropyMetadata->hufMetadata, + workspace, wkspSize, writeLitEntropy); + ebs.estBlockSize = ZSTD_estimateSubBlockSize_sequences(ofCodeTable, llCodeTable, mlCodeTable, nbSeq, &entropy->fse, &entropyMetadata->fseMetadata, workspace, wkspSize, writeSeqEntropy); - return cSizeEstimate + ZSTDInternalConstants::ZSTD_blockHeaderSize; + ebs.estBlockSize += ebs.estLitSize + ZSTD_blockHeaderSize; + return ebs; } static int ZSTD_needSequenceEntropyTables(ZSTD_fseCTablesMetadata_t const* fseMetadata) @@ -682,13 +428,56 @@ static int ZSTD_needSequenceEntropyTables(ZSTD_fseCTablesMetadata_t const* fseMe return 0; } +static size_t countLiterals(seqStore_t const* seqStore, const seqDef* sp, size_t seqCount) +{ + size_t n, total = 0; + assert(sp != NULL); + for (n=0; n %zu bytes", seqCount, (const void*)sp, total); + return total; +} + +#define BYTESCALE 256 + +static size_t sizeBlockSequences(const seqDef* sp, size_t nbSeqs, + size_t targetBudget, size_t avgLitCost, size_t avgSeqCost, + int firstSubBlock) +{ + size_t n, budget = 0, inSize=0; + /* entropy headers */ + size_t const headerSize = (size_t)firstSubBlock * 120 * BYTESCALE; /* generous estimate */ + assert(firstSubBlock==0 || firstSubBlock==1); + budget += headerSize; + + /* first sequence => at least one sequence*/ + budget += sp[0].litLength * avgLitCost + avgSeqCost; + if (budget > targetBudget) return 1; + inSize = sp[0].litLength + (sp[0].mlBase+MINMATCH); + + /* loop over sequences */ + for (n=1; n targetBudget) + /* though continue to expand until the sub-block is deemed compressible */ + && (budget < inSize * BYTESCALE) ) + break; + } + + return n; +} + /** ZSTD_compressSubBlock_multi() : * Breaks super-block into multiple sub-blocks and compresses them. - * Entropy will be written to the first block. - * The following blocks will use repeat mode to compress. - * All sub-blocks are compressed blocks (no raw or rle blocks). - * @return : compressed size of the super block (which is multiple ZSTD blocks) - * Or 0 if it failed to compress. */ + * Entropy will be written into the first block. + * The following blocks use repeat_mode to compress. + * Sub-blocks are all compressed, except the last one when beneficial. + * @return : compressed size of the super block (which features multiple ZSTD blocks) + * or 0 if it failed to compress. */ static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr, const ZSTD_compressedBlockState_t* prevCBlock, ZSTD_compressedBlockState_t* nextCBlock, @@ -701,10 +490,12 @@ static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr, { const seqDef* const sstart = seqStorePtr->sequencesStart; const seqDef* const send = seqStorePtr->sequences; - const seqDef* sp = sstart; + const seqDef* sp = sstart; /* tracks progresses within seqStorePtr->sequences */ + size_t const nbSeqs = (size_t)(send - sstart); const BYTE* const lstart = seqStorePtr->litStart; const BYTE* const lend = seqStorePtr->lit; const BYTE* lp = lstart; + size_t const nbLiterals = (size_t)(lend - lstart); BYTE const* ip = (BYTE const*)src; BYTE const* const iend = ip + srcSize; BYTE* const ostart = (BYTE*)dst; @@ -713,120 +504,179 @@ static size_t ZSTD_compressSubBlock_multi(const seqStore_t* seqStorePtr, const BYTE* llCodePtr = seqStorePtr->llCode; const BYTE* mlCodePtr = seqStorePtr->mlCode; const BYTE* ofCodePtr = seqStorePtr->ofCode; - size_t targetCBlockSize = cctxParams->targetCBlockSize; - size_t litSize, seqCount; - int writeLitEntropy = entropyMetadata->hufMetadata.hType == set_compressed; + size_t const minTarget = ZSTD_TARGETCBLOCKSIZE_MIN; /* enforce minimum size, to reduce undesirable side effects */ + size_t const targetCBlockSize = MAX(minTarget, cctxParams->targetCBlockSize); + int writeLitEntropy = (entropyMetadata->hufMetadata.hType == set_compressed); int writeSeqEntropy = 1; - int lastSequence = 0; - - DEBUGLOG(5, "ZSTD_compressSubBlock_multi (litSize=%u, nbSeq=%u)", - (unsigned)(lend-lp), (unsigned)(send-sstart)); - - litSize = 0; - seqCount = 0; - do { - size_t cBlockSizeEstimate = 0; - if (sstart == send) { - lastSequence = 1; - } else { - const seqDef* const sequence = sp + seqCount; - lastSequence = sequence == send - 1; - litSize += ZSTD_getSequenceLength(seqStorePtr, sequence).litLength; - seqCount++; - } - if (lastSequence) { - assert(lp <= lend); - assert(litSize <= (size_t)(lend - lp)); - litSize = (size_t)(lend - lp); + + DEBUGLOG(5, "ZSTD_compressSubBlock_multi (srcSize=%u, litSize=%u, nbSeq=%u)", + (unsigned)srcSize, (unsigned)(lend-lstart), (unsigned)(send-sstart)); + + /* let's start by a general estimation for the full block */ + if (nbSeqs > 0) { + EstimatedBlockSize const ebs = + ZSTD_estimateSubBlockSize(lp, nbLiterals, + ofCodePtr, llCodePtr, mlCodePtr, nbSeqs, + &nextCBlock->entropy, entropyMetadata, + workspace, wkspSize, + writeLitEntropy, writeSeqEntropy); + /* quick estimation */ + size_t const avgLitCost = nbLiterals ? (ebs.estLitSize * BYTESCALE) / nbLiterals : BYTESCALE; + size_t const avgSeqCost = ((ebs.estBlockSize - ebs.estLitSize) * BYTESCALE) / nbSeqs; + const size_t nbSubBlocks = MAX((ebs.estBlockSize + (targetCBlockSize/2)) / targetCBlockSize, 1); + size_t n, avgBlockBudget, blockBudgetSupp=0; + avgBlockBudget = (ebs.estBlockSize * BYTESCALE) / nbSubBlocks; + DEBUGLOG(5, "estimated fullblock size=%u bytes ; avgLitCost=%.2f ; avgSeqCost=%.2f ; targetCBlockSize=%u, nbSubBlocks=%u ; avgBlockBudget=%.0f bytes", + (unsigned)ebs.estBlockSize, (double)avgLitCost/BYTESCALE, (double)avgSeqCost/BYTESCALE, + (unsigned)targetCBlockSize, (unsigned)nbSubBlocks, (double)avgBlockBudget/BYTESCALE); + /* simplification: if estimates states that the full superblock doesn't compress, just bail out immediately + * this will result in the production of a single uncompressed block covering @srcSize.*/ + if (ebs.estBlockSize > srcSize) return 0; + + /* compress and write sub-blocks */ + assert(nbSubBlocks>0); + for (n=0; n < nbSubBlocks-1; n++) { + /* determine nb of sequences for current sub-block + nbLiterals from next sequence */ + size_t const seqCount = sizeBlockSequences(sp, (size_t)(send-sp), + avgBlockBudget + blockBudgetSupp, avgLitCost, avgSeqCost, n==0); + /* if reached last sequence : break to last sub-block (simplification) */ + assert(seqCount <= (size_t)(send-sp)); + if (sp + seqCount == send) break; + assert(seqCount > 0); + /* compress sub-block */ + { int litEntropyWritten = 0; + int seqEntropyWritten = 0; + size_t litSize = countLiterals(seqStorePtr, sp, seqCount); + const size_t decompressedSize = + ZSTD_seqDecompressedSize(seqStorePtr, sp, seqCount, litSize, 0); + size_t const cSize = ZSTD_compressSubBlock(&nextCBlock->entropy, entropyMetadata, + sp, seqCount, + lp, litSize, + llCodePtr, mlCodePtr, ofCodePtr, + cctxParams, + op, (size_t)(oend-op), + bmi2, writeLitEntropy, writeSeqEntropy, + &litEntropyWritten, &seqEntropyWritten, + 0); + FORWARD_IF_ERROR(cSize, "ZSTD_compressSubBlock failed"); + + /* check compressibility, update state components */ + if (cSize > 0 && cSize < decompressedSize) { + DEBUGLOG(5, "Committed sub-block compressing %u bytes => %u bytes", + (unsigned)decompressedSize, (unsigned)cSize); + assert(ip + decompressedSize <= iend); + ip += decompressedSize; + lp += litSize; + op += cSize; + llCodePtr += seqCount; + mlCodePtr += seqCount; + ofCodePtr += seqCount; + /* Entropy only needs to be written once */ + if (litEntropyWritten) { + writeLitEntropy = 0; + } + if (seqEntropyWritten) { + writeSeqEntropy = 0; + } + sp += seqCount; + blockBudgetSupp = 0; + } } + /* otherwise : do not compress yet, coalesce current sub-block with following one */ } - /* I think there is an optimization opportunity here. - * Calling ZSTD_estimateSubBlockSize for every sequence can be wasteful - * since it recalculates estimate from scratch. - * For example, it would recount literal distribution and symbol codes everytime. - */ - cBlockSizeEstimate = ZSTD_estimateSubBlockSize(lp, litSize, ofCodePtr, llCodePtr, mlCodePtr, seqCount, - &nextCBlock->entropy, entropyMetadata, - workspace, wkspSize, writeLitEntropy, writeSeqEntropy); - if (cBlockSizeEstimate > targetCBlockSize || lastSequence) { - int litEntropyWritten = 0; - int seqEntropyWritten = 0; - const size_t decompressedSize = ZSTD_seqDecompressedSize(seqStorePtr, sp, seqCount, litSize, lastSequence); - const size_t cSize = ZSTD_compressSubBlock(&nextCBlock->entropy, entropyMetadata, - sp, seqCount, - lp, litSize, - llCodePtr, mlCodePtr, ofCodePtr, - cctxParams, - op, oend-op, - bmi2, writeLitEntropy, writeSeqEntropy, - &litEntropyWritten, &seqEntropyWritten, - lastBlock && lastSequence); - FORWARD_IF_ERROR(cSize, "ZSTD_compressSubBlock failed"); - if (cSize > 0 && cSize < decompressedSize) { - DEBUGLOG(5, "Committed the sub-block"); - assert(ip + decompressedSize <= iend); - ip += decompressedSize; - sp += seqCount; - lp += litSize; - op += cSize; - llCodePtr += seqCount; - mlCodePtr += seqCount; - ofCodePtr += seqCount; - litSize = 0; - seqCount = 0; - /* Entropy only needs to be written once */ - if (litEntropyWritten) { - writeLitEntropy = 0; - } - if (seqEntropyWritten) { - writeSeqEntropy = 0; - } + } /* if (nbSeqs > 0) */ + + /* write last block */ + DEBUGLOG(5, "Generate last sub-block: %u sequences remaining", (unsigned)(send - sp)); + { int litEntropyWritten = 0; + int seqEntropyWritten = 0; + size_t litSize = (size_t)(lend - lp); + size_t seqCount = (size_t)(send - sp); + const size_t decompressedSize = + ZSTD_seqDecompressedSize(seqStorePtr, sp, seqCount, litSize, 1); + size_t const cSize = ZSTD_compressSubBlock(&nextCBlock->entropy, entropyMetadata, + sp, seqCount, + lp, litSize, + llCodePtr, mlCodePtr, ofCodePtr, + cctxParams, + op, (size_t)(oend-op), + bmi2, writeLitEntropy, writeSeqEntropy, + &litEntropyWritten, &seqEntropyWritten, + lastBlock); + FORWARD_IF_ERROR(cSize, "ZSTD_compressSubBlock failed"); + + /* update pointers, the nb of literals borrowed from next sequence must be preserved */ + if (cSize > 0 && cSize < decompressedSize) { + DEBUGLOG(5, "Last sub-block compressed %u bytes => %u bytes", + (unsigned)decompressedSize, (unsigned)cSize); + assert(ip + decompressedSize <= iend); + ip += decompressedSize; + lp += litSize; + op += cSize; + llCodePtr += seqCount; + mlCodePtr += seqCount; + ofCodePtr += seqCount; + /* Entropy only needs to be written once */ + if (litEntropyWritten) { + writeLitEntropy = 0; + } + if (seqEntropyWritten) { + writeSeqEntropy = 0; } + sp += seqCount; } - } while (!lastSequence); + } + + if (writeLitEntropy) { - DEBUGLOG(5, "ZSTD_compressSubBlock_multi has literal entropy tables unwritten"); - memcpy(&nextCBlock->entropy.huf, &prevCBlock->entropy.huf, sizeof(prevCBlock->entropy.huf)); + DEBUGLOG(5, "Literal entropy tables were never written"); + ZSTD_memcpy(&nextCBlock->entropy.huf, &prevCBlock->entropy.huf, sizeof(prevCBlock->entropy.huf)); } if (writeSeqEntropy && ZSTD_needSequenceEntropyTables(&entropyMetadata->fseMetadata)) { /* If we haven't written our entropy tables, then we've violated our contract and * must emit an uncompressed block. */ - DEBUGLOG(5, "ZSTD_compressSubBlock_multi has sequence entropy tables unwritten"); + DEBUGLOG(5, "Sequence entropy tables were never written => cancel, emit an uncompressed block"); return 0; } + if (ip < iend) { - size_t const cSize = ZSTD_noCompressBlock(op, oend - op, ip, iend - ip, lastBlock); - DEBUGLOG(5, "ZSTD_compressSubBlock_multi last sub-block uncompressed, %zu bytes", (size_t)(iend - ip)); + /* some data left : last part of the block sent uncompressed */ + size_t const rSize = (size_t)((iend - ip)); + size_t const cSize = ZSTD_noCompressBlock(op, (size_t)(oend - op), ip, rSize, lastBlock); + DEBUGLOG(5, "Generate last uncompressed sub-block of %u bytes", (unsigned)(rSize)); FORWARD_IF_ERROR(cSize, "ZSTD_noCompressBlock failed"); assert(cSize != 0); op += cSize; /* We have to regenerate the repcodes because we've skipped some sequences */ if (sp < send) { - seqDef const* seq; + const seqDef* seq; repcodes_t rep; - memcpy(&rep, prevCBlock->rep, sizeof(rep)); + ZSTD_memcpy(&rep, prevCBlock->rep, sizeof(rep)); for (seq = sstart; seq < sp; ++seq) { - rep = ZSTD_updateRep(rep.rep, seq->offset - 1, ZSTD_getSequenceLength(seqStorePtr, seq).litLength == 0); + ZSTD_updateRep(rep.rep, seq->offBase, ZSTD_getSequenceLength(seqStorePtr, seq).litLength == 0); } - memcpy(nextCBlock->rep, &rep, sizeof(rep)); + ZSTD_memcpy(nextCBlock->rep, &rep, sizeof(rep)); } } - DEBUGLOG(5, "ZSTD_compressSubBlock_multi compressed"); - return op-ostart; + + DEBUGLOG(5, "ZSTD_compressSubBlock_multi compressed all subBlocks: total compressed size = %u", + (unsigned)(op-ostart)); + return (size_t)(op-ostart); } size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc, void* dst, size_t dstCapacity, - void const* src, size_t srcSize, - unsigned lastBlock) { + const void* src, size_t srcSize, + unsigned lastBlock) +{ ZSTD_entropyCTablesMetadata_t entropyMetadata; - FORWARD_IF_ERROR(ZSTD_buildSuperBlockEntropy(&zc->seqStore, + FORWARD_IF_ERROR(ZSTD_buildBlockEntropyStats(&zc->seqStore, &zc->blockState.prevCBlock->entropy, &zc->blockState.nextCBlock->entropy, &zc->appliedParams, &entropyMetadata, - zc->entropyWorkspace, HUF_WORKSPACE_SIZE /* statically allocated in resetCCtx */), ""); + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */), ""); return ZSTD_compressSubBlock_multi(&zc->seqStore, zc->blockState.prevCBlock, @@ -836,7 +686,7 @@ size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc, dst, dstCapacity, src, srcSize, zc->bmi2, lastBlock, - zc->entropyWorkspace, HUF_WORKSPACE_SIZE /* statically allocated in resetCCtx */); + zc->entropyWorkspace, ENTROPY_WORKSPACE_SIZE /* statically allocated in resetCCtx */); } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_double_fast.cpp b/src/duckdb/third_party/zstd/compress/zstd_double_fast.cpp index ecc1cdb7..d791b724 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_double_fast.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_double_fast.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -13,7 +13,49 @@ namespace duckdb_zstd { -void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillDoubleHashTableForCDict(ZSTD_matchState_t* ms, + void const* end, ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashLarge = ms->hashTable; + U32 const hBitsL = cParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; + U32 const mls = cParams->minMatch; + U32* const hashSmall = ms->chainTable; + U32 const hBitsS = cParams->chainLog + ZSTD_SHORT_CACHE_TAG_BITS; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Always insert every fastHashFillStep position into the hash tables. + * Insert the other positions into the large hash table if their entry + * is empty. + */ + for (; ip + fastHashFillStep - 1 <= iend; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + U32 i; + for (i = 0; i < fastHashFillStep; ++i) { + size_t const smHashAndTag = ZSTD_hashPtr(ip + i, hBitsS, mls); + size_t const lgHashAndTag = ZSTD_hashPtr(ip + i, hBitsL, 8); + if (i == 0) { + ZSTD_writeTaggedIndex(hashSmall, smHashAndTag, curr + i); + } + if (i == 0 || hashLarge[lgHashAndTag >> ZSTD_SHORT_CACHE_TAG_BITS] == 0) { + ZSTD_writeTaggedIndex(hashLarge, lgHashAndTag, curr + i); + } + /* Only load extra positions for ZSTD_dtlm_full */ + if (dtlm == ZSTD_dtlm_fast) + break; + } } +} + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillDoubleHashTableForCCtx(ZSTD_matchState_t* ms, void const* end, ZSTD_dictTableLoadMethod_e dtlm) { const ZSTD_compressionParameters* const cParams = &ms->cParams; @@ -32,27 +74,251 @@ void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, * is empty. */ for (; ip + fastHashFillStep - 1 <= iend; ip += fastHashFillStep) { - U32 const current = (U32)(ip - base); + U32 const curr = (U32)(ip - base); U32 i; for (i = 0; i < fastHashFillStep; ++i) { size_t const smHash = ZSTD_hashPtr(ip + i, hBitsS, mls); size_t const lgHash = ZSTD_hashPtr(ip + i, hBitsL, 8); if (i == 0) - hashSmall[smHash] = current + i; + hashSmall[smHash] = curr + i; if (i == 0 || hashLarge[lgHash] == 0) - hashLarge[lgHash] = current + i; + hashLarge[lgHash] = curr + i; /* Only load extra positions for ZSTD_dtlm_full */ if (dtlm == ZSTD_dtlm_fast) break; - } } + } } +} + +void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp) +{ + if (tfp == ZSTD_tfp_forCDict) { + ZSTD_fillDoubleHashTableForCDict(ms, end, dtlm); + } else { + ZSTD_fillDoubleHashTableForCCtx(ms, end, dtlm); + } +} + + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_doubleFast_noDict_generic( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize, U32 const mls /* template */) +{ + ZSTD_compressionParameters const* cParams = &ms->cParams; + U32* const hashLong = ms->hashTable; + const U32 hBitsL = cParams->hashLog; + U32* const hashSmall = ms->chainTable; + const U32 hBitsS = cParams->chainLog; + const BYTE* const base = ms->window.base; + const BYTE* const istart = (const BYTE*)src; + const BYTE* anchor = istart; + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); + /* presumes that, if there is a dictionary, it must be using Attach mode */ + const U32 prefixLowestIndex = ZSTD_getLowestPrefixIndex(ms, endIndex, cParams->windowLog); + const BYTE* const prefixLowest = base + prefixLowestIndex; + const BYTE* const iend = istart + srcSize; + const BYTE* const ilimit = iend - HASH_READ_SIZE; + U32 offset_1=rep[0], offset_2=rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + + size_t mLength; + U32 offset; + U32 curr; + + /* how many positions to search before increasing step size */ + const size_t kStepIncr = 1 << kSearchStrength; + /* the position at which to increment the step size if no match is found */ + const BYTE* nextStep; + size_t step; /* the current step size */ + + size_t hl0; /* the long hash at ip */ + size_t hl1; /* the long hash at ip1 */ + + U32 idxl0; /* the long match index for ip */ + U32 idxl1; /* the long match index for ip1 */ + + const BYTE* matchl0; /* the long match for ip */ + const BYTE* matchs0; /* the short match for ip */ + const BYTE* matchl1; /* the long match for ip1 */ + + const BYTE* ip = istart; /* the current position */ + const BYTE* ip1; /* the next position */ + + DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_noDict_generic"); + + /* init */ + ip += ((ip - prefixLowest) == 0); + { + U32 const current = (U32)(ip - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, current, cParams->windowLog); + U32 const maxRep = current - windowLow; + if (offset_2 > maxRep) offsetSaved2 = offset_2, offset_2 = 0; + if (offset_1 > maxRep) offsetSaved1 = offset_1, offset_1 = 0; + } + + /* Outer Loop: one iteration per match found and stored */ + while (1) { + step = 1; + nextStep = ip + kStepIncr; + ip1 = ip + step; + + if (ip1 > ilimit) { + goto _cleanup; + } + + hl0 = ZSTD_hashPtr(ip, hBitsL, 8); + idxl0 = hashLong[hl0]; + matchl0 = base + idxl0; + + /* Inner Loop: one iteration per search / position */ + do { + const size_t hs0 = ZSTD_hashPtr(ip, hBitsS, mls); + const U32 idxs0 = hashSmall[hs0]; + curr = (U32)(ip-base); + matchs0 = base + idxs0; + + hashLong[hl0] = hashSmall[hs0] = curr; /* update hash tables */ + + /* check noDict repcode */ + if ((offset_1 > 0) & (MEM_read32(ip+1-offset_1) == MEM_read32(ip+1))) { + mLength = ZSTD_count(ip+1+4, ip+1+4-offset_1, iend) + 4; + ip++; + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); + goto _match_stored; + } + + hl1 = ZSTD_hashPtr(ip1, hBitsL, 8); + + if (idxl0 > prefixLowestIndex) { + /* check prefix long match */ + if (MEM_read64(matchl0) == MEM_read64(ip)) { + mLength = ZSTD_count(ip+8, matchl0+8, iend) + 8; + offset = (U32)(ip-matchl0); + while (((ip>anchor) & (matchl0>prefixLowest)) && (ip[-1] == matchl0[-1])) { ip--; matchl0--; mLength++; } /* catch up */ + goto _match_found; + } + } + + idxl1 = hashLong[hl1]; + matchl1 = base + idxl1; + + if (idxs0 > prefixLowestIndex) { + /* check prefix short match */ + if (MEM_read32(matchs0) == MEM_read32(ip)) { + goto _search_next_long; + } + } + + if (ip1 >= nextStep) { + PREFETCH_L1(ip1 + 64); + PREFETCH_L1(ip1 + 128); + step++; + nextStep += kStepIncr; + } + ip = ip1; + ip1 += step; + + hl0 = hl1; + idxl0 = idxl1; + matchl0 = matchl1; + #if defined(__aarch64__) + PREFETCH_L1(ip+256); + #endif + } while (ip1 <= ilimit); + +_cleanup: + /* If offset_1 started invalid (offsetSaved1 != 0) and became valid (offset_1 != 0), + * rotate saved offsets. See comment in ZSTD_compressBlock_fast_noDict for more context. */ + offsetSaved2 = ((offsetSaved1 != 0) && (offset_1 != 0)) ? offsetSaved1 : offsetSaved2; + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved1; + rep[1] = offset_2 ? offset_2 : offsetSaved2; + + /* Return the last literals size */ + return (size_t)(iend - anchor); + +_search_next_long: + + /* check prefix long +1 match */ + if (idxl1 > prefixLowestIndex) { + if (MEM_read64(matchl1) == MEM_read64(ip1)) { + ip = ip1; + mLength = ZSTD_count(ip+8, matchl1+8, iend) + 8; + offset = (U32)(ip-matchl1); + while (((ip>anchor) & (matchl1>prefixLowest)) && (ip[-1] == matchl1[-1])) { ip--; matchl1--; mLength++; } /* catch up */ + goto _match_found; + } + } + + /* if no long +1 match, explore the short match we found */ + mLength = ZSTD_count(ip+4, matchs0+4, iend) + 4; + offset = (U32)(ip - matchs0); + while (((ip>anchor) & (matchs0>prefixLowest)) && (ip[-1] == matchs0[-1])) { ip--; matchs0--; mLength++; } /* catch up */ + + /* fall-through */ + +_match_found: /* requires ip, offset, mLength */ + offset_2 = offset_1; + offset_1 = offset; + + if (step < 4) { + /* It is unsafe to write this value back to the hashtable when ip1 is + * greater than or equal to the new ip we will have after we're done + * processing this match. Rather than perform that test directly + * (ip1 >= ip + mLength), which costs speed in practice, we do a simpler + * more predictable test. The minmatch even if we take a short match is + * 4 bytes, so as long as step, the distance between ip and ip1 + * (initially) is less than 4, we know ip1 < new ip. */ + hashLong[hl1] = (U32)(ip1 - base); + } + + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + +_match_stored: + /* match found */ + ip += mLength; + anchor = ip; + + if (ip <= ilimit) { + /* Complementary insertion */ + /* done after iLimit test, as candidates could be > iend-8 */ + { U32 const indexToInsert = curr+2; + hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; + hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); + hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; + hashSmall[ZSTD_hashPtr(ip-1, hBitsS, mls)] = (U32)(ip-1-base); + } + + /* check immediate repcode */ + while ( (ip <= ilimit) + && ( (offset_2>0) + & (MEM_read32(ip) == MEM_read32(ip - offset_2)) )) { + /* store sequence */ + size_t const rLength = ZSTD_count(ip+4, ip+4-offset_2, iend) + 4; + U32 const tmpOff = offset_2; offset_2 = offset_1; offset_1 = tmpOff; /* swap offset_2 <=> offset_1 */ + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = (U32)(ip-base); + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = (U32)(ip-base); + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, rLength); + ip += rLength; + anchor = ip; + continue; /* faster when present ... (?) */ + } + } + } } FORCE_INLINE_TEMPLATE -size_t ZSTD_compressBlock_doubleFast_generic( +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_doubleFast_dictMatchState_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize, - U32 const mls /* template */, ZSTD_dictMode_e const dictMode) + U32 const mls /* template */) { ZSTD_compressionParameters const* cParams = &ms->cParams; U32* const hashLong = ms->hashTable; @@ -70,57 +336,39 @@ size_t ZSTD_compressBlock_doubleFast_generic( const BYTE* const iend = istart + srcSize; const BYTE* const ilimit = iend - HASH_READ_SIZE; U32 offset_1=rep[0], offset_2=rep[1]; - U32 offsetSaved = 0; const ZSTD_matchState_t* const dms = ms->dictMatchState; - const ZSTD_compressionParameters* const dictCParams = - dictMode == ZSTD_dictMatchState ? - &dms->cParams : NULL; - const U32* const dictHashLong = dictMode == ZSTD_dictMatchState ? - dms->hashTable : NULL; - const U32* const dictHashSmall = dictMode == ZSTD_dictMatchState ? - dms->chainTable : NULL; - const U32 dictStartIndex = dictMode == ZSTD_dictMatchState ? - dms->window.dictLimit : 0; - const BYTE* const dictBase = dictMode == ZSTD_dictMatchState ? - dms->window.base : NULL; - const BYTE* const dictStart = dictMode == ZSTD_dictMatchState ? - dictBase + dictStartIndex : NULL; - const BYTE* const dictEnd = dictMode == ZSTD_dictMatchState ? - dms->window.nextSrc : NULL; - const U32 dictIndexDelta = dictMode == ZSTD_dictMatchState ? - prefixLowestIndex - (U32)(dictEnd - dictBase) : - 0; - const U32 dictHBitsL = dictMode == ZSTD_dictMatchState ? - dictCParams->hashLog : hBitsL; - const U32 dictHBitsS = dictMode == ZSTD_dictMatchState ? - dictCParams->chainLog : hBitsS; + const ZSTD_compressionParameters* const dictCParams = &dms->cParams; + const U32* const dictHashLong = dms->hashTable; + const U32* const dictHashSmall = dms->chainTable; + const U32 dictStartIndex = dms->window.dictLimit; + const BYTE* const dictBase = dms->window.base; + const BYTE* const dictStart = dictBase + dictStartIndex; + const BYTE* const dictEnd = dms->window.nextSrc; + const U32 dictIndexDelta = prefixLowestIndex - (U32)(dictEnd - dictBase); + const U32 dictHBitsL = dictCParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; + const U32 dictHBitsS = dictCParams->chainLog + ZSTD_SHORT_CACHE_TAG_BITS; const U32 dictAndPrefixLength = (U32)((ip - prefixLowest) + (dictEnd - dictStart)); - DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_generic"); - - assert(dictMode == ZSTD_noDict || dictMode == ZSTD_dictMatchState); + DEBUGLOG(5, "ZSTD_compressBlock_doubleFast_dictMatchState_generic"); /* if a dictionary is attached, it must be within window range */ - if (dictMode == ZSTD_dictMatchState) { - assert(ms->window.dictLimit + (1U << cParams->windowLog) >= endIndex); + assert(ms->window.dictLimit + (1U << cParams->windowLog) >= endIndex); + + if (ms->prefetchCDictTables) { + size_t const hashTableBytes = (((size_t)1) << dictCParams->hashLog) * sizeof(U32); + size_t const chainTableBytes = (((size_t)1) << dictCParams->chainLog) * sizeof(U32); + PREFETCH_AREA(dictHashLong, hashTableBytes); + PREFETCH_AREA(dictHashSmall, chainTableBytes); } /* init */ ip += (dictAndPrefixLength == 0); - if (dictMode == ZSTD_noDict) { - U32 const current = (U32)(ip - base); - U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, current, cParams->windowLog); - U32 const maxRep = current - windowLow; - if (offset_2 > maxRep) offsetSaved = offset_2, offset_2 = 0; - if (offset_1 > maxRep) offsetSaved = offset_1, offset_1 = 0; - } - if (dictMode == ZSTD_dictMatchState) { - /* dictMatchState repCode checks don't currently handle repCode == 0 - * disabling. */ - assert(offset_1 <= dictAndPrefixLength); - assert(offset_2 <= dictAndPrefixLength); - } + + /* dictMatchState repCode checks don't currently handle repCode == 0 + * disabling. */ + assert(offset_1 <= dictAndPrefixLength); + assert(offset_2 <= dictAndPrefixLength); /* Main Search Loop */ while (ip < ilimit) { /* < instead of <=, because repcode check at (ip+1) */ @@ -128,37 +376,30 @@ size_t ZSTD_compressBlock_doubleFast_generic( U32 offset; size_t const h2 = ZSTD_hashPtr(ip, hBitsL, 8); size_t const h = ZSTD_hashPtr(ip, hBitsS, mls); - size_t const dictHL = ZSTD_hashPtr(ip, dictHBitsL, 8); - size_t const dictHS = ZSTD_hashPtr(ip, dictHBitsS, mls); - U32 const current = (U32)(ip-base); + size_t const dictHashAndTagL = ZSTD_hashPtr(ip, dictHBitsL, 8); + size_t const dictHashAndTagS = ZSTD_hashPtr(ip, dictHBitsS, mls); + U32 const dictMatchIndexAndTagL = dictHashLong[dictHashAndTagL >> ZSTD_SHORT_CACHE_TAG_BITS]; + U32 const dictMatchIndexAndTagS = dictHashSmall[dictHashAndTagS >> ZSTD_SHORT_CACHE_TAG_BITS]; + int const dictTagsMatchL = ZSTD_comparePackedTags(dictMatchIndexAndTagL, dictHashAndTagL); + int const dictTagsMatchS = ZSTD_comparePackedTags(dictMatchIndexAndTagS, dictHashAndTagS); + U32 const curr = (U32)(ip-base); U32 const matchIndexL = hashLong[h2]; U32 matchIndexS = hashSmall[h]; const BYTE* matchLong = base + matchIndexL; const BYTE* match = base + matchIndexS; - const U32 repIndex = current + 1 - offset_1; - const BYTE* repMatch = (dictMode == ZSTD_dictMatchState - && repIndex < prefixLowestIndex) ? + const U32 repIndex = curr + 1 - offset_1; + const BYTE* repMatch = (repIndex < prefixLowestIndex) ? dictBase + (repIndex - dictIndexDelta) : base + repIndex; - hashLong[h2] = hashSmall[h] = current; /* update hash tables */ + hashLong[h2] = hashSmall[h] = curr; /* update hash tables */ - /* check dictMatchState repcode */ - if (dictMode == ZSTD_dictMatchState - && ((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) + /* check repcode */ + if (((U32)((prefixLowestIndex-1) - repIndex) >= 3 /* intentional underflow */) && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; ip++; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); - goto _match_stored; - } - - /* check noDict repcode */ - if ( dictMode == ZSTD_noDict - && ((offset_1 > 0) & (MEM_read32(ip+1-offset_1) == MEM_read32(ip+1)))) { - mLength = ZSTD_count(ip+1+4, ip+1+4-offset_1, iend) + 4; - ip++; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); goto _match_stored; } @@ -170,15 +411,15 @@ size_t ZSTD_compressBlock_doubleFast_generic( while (((ip>anchor) & (matchLong>prefixLowest)) && (ip[-1] == matchLong[-1])) { ip--; matchLong--; mLength++; } /* catch up */ goto _match_found; } - } else if (dictMode == ZSTD_dictMatchState) { + } else if (dictTagsMatchL) { /* check dictMatchState long match */ - U32 const dictMatchIndexL = dictHashLong[dictHL]; + U32 const dictMatchIndexL = dictMatchIndexAndTagL >> ZSTD_SHORT_CACHE_TAG_BITS; const BYTE* dictMatchL = dictBase + dictMatchIndexL; assert(dictMatchL < dictEnd); if (dictMatchL > dictStart && MEM_read64(dictMatchL) == MEM_read64(ip)) { mLength = ZSTD_count_2segments(ip+8, dictMatchL+8, iend, dictEnd, prefixLowest) + 8; - offset = (U32)(current - dictMatchIndexL - dictIndexDelta); + offset = (U32)(curr - dictMatchIndexL - dictIndexDelta); while (((ip>anchor) & (dictMatchL>dictStart)) && (ip[-1] == dictMatchL[-1])) { ip--; dictMatchL--; mLength++; } /* catch up */ goto _match_found; } } @@ -188,9 +429,9 @@ size_t ZSTD_compressBlock_doubleFast_generic( if (MEM_read32(match) == MEM_read32(ip)) { goto _search_next_long; } - } else if (dictMode == ZSTD_dictMatchState) { + } else if (dictTagsMatchS) { /* check dictMatchState short match */ - U32 const dictMatchIndexS = dictHashSmall[dictHS]; + U32 const dictMatchIndexS = dictMatchIndexAndTagS >> ZSTD_SHORT_CACHE_TAG_BITS; match = dictBase + dictMatchIndexS; matchIndexS = dictMatchIndexS + dictIndexDelta; @@ -205,12 +446,13 @@ size_t ZSTD_compressBlock_doubleFast_generic( continue; _search_next_long: - { size_t const hl3 = ZSTD_hashPtr(ip+1, hBitsL, 8); - size_t const dictHLNext = ZSTD_hashPtr(ip+1, dictHBitsL, 8); + size_t const dictHashAndTagL3 = ZSTD_hashPtr(ip+1, dictHBitsL, 8); U32 const matchIndexL3 = hashLong[hl3]; + U32 const dictMatchIndexAndTagL3 = dictHashLong[dictHashAndTagL3 >> ZSTD_SHORT_CACHE_TAG_BITS]; + int const dictTagsMatchL3 = ZSTD_comparePackedTags(dictMatchIndexAndTagL3, dictHashAndTagL3); const BYTE* matchL3 = base + matchIndexL3; - hashLong[hl3] = current + 1; + hashLong[hl3] = curr + 1; /* check prefix long +1 match */ if (matchIndexL3 > prefixLowestIndex) { @@ -221,23 +463,23 @@ size_t ZSTD_compressBlock_doubleFast_generic( while (((ip>anchor) & (matchL3>prefixLowest)) && (ip[-1] == matchL3[-1])) { ip--; matchL3--; mLength++; } /* catch up */ goto _match_found; } - } else if (dictMode == ZSTD_dictMatchState) { + } else if (dictTagsMatchL3) { /* check dict long +1 match */ - U32 const dictMatchIndexL3 = dictHashLong[dictHLNext]; + U32 const dictMatchIndexL3 = dictMatchIndexAndTagL3 >> ZSTD_SHORT_CACHE_TAG_BITS; const BYTE* dictMatchL3 = dictBase + dictMatchIndexL3; assert(dictMatchL3 < dictEnd); if (dictMatchL3 > dictStart && MEM_read64(dictMatchL3) == MEM_read64(ip+1)) { mLength = ZSTD_count_2segments(ip+1+8, dictMatchL3+8, iend, dictEnd, prefixLowest) + 8; ip++; - offset = (U32)(current + 1 - dictMatchIndexL3 - dictIndexDelta); + offset = (U32)(curr + 1 - dictMatchIndexL3 - dictIndexDelta); while (((ip>anchor) & (dictMatchL3>dictStart)) && (ip[-1] == dictMatchL3[-1])) { ip--; dictMatchL3--; mLength++; } /* catch up */ goto _match_found; } } } /* if no long +1 match, explore the short match we found */ - if (dictMode == ZSTD_dictMatchState && matchIndexS < prefixLowestIndex) { + if (matchIndexS < prefixLowestIndex) { mLength = ZSTD_count_2segments(ip+4, match+4, iend, dictEnd, prefixLowest) + 4; - offset = (U32)(current - matchIndexS); + offset = (U32)(curr - matchIndexS); while (((ip>anchor) & (match>dictStart)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ } else { mLength = ZSTD_count(ip+4, match+4, iend) + 4; @@ -245,13 +487,11 @@ size_t ZSTD_compressBlock_doubleFast_generic( while (((ip>anchor) & (match>prefixLowest)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ } - /* fall-through */ - _match_found: offset_2 = offset_1; offset_1 = offset; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); _match_stored: /* match found */ @@ -261,7 +501,7 @@ size_t ZSTD_compressBlock_doubleFast_generic( if (ip <= ilimit) { /* Complementary insertion */ /* done after iLimit test, as candidates could be > iend-8 */ - { U32 const indexToInsert = current+2; + { U32 const indexToInsert = curr+2; hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; @@ -269,53 +509,55 @@ size_t ZSTD_compressBlock_doubleFast_generic( } /* check immediate repcode */ - if (dictMode == ZSTD_dictMatchState) { - while (ip <= ilimit) { - U32 const current2 = (U32)(ip-base); - U32 const repIndex2 = current2 - offset_2; - const BYTE* repMatch2 = dictMode == ZSTD_dictMatchState - && repIndex2 < prefixLowestIndex ? - dictBase + repIndex2 - dictIndexDelta : - base + repIndex2; - if ( ((U32)((prefixLowestIndex-1) - (U32)repIndex2) >= 3 /* intentional overflow */) - && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { - const BYTE* const repEnd2 = repIndex2 < prefixLowestIndex ? dictEnd : iend; - size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixLowest) + 4; - U32 tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ - ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, repLength2-MINMATCH); - hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; - hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; - ip += repLength2; - anchor = ip; - continue; - } - break; - } } - - if (dictMode == ZSTD_noDict) { - while ( (ip <= ilimit) - && ( (offset_2>0) - & (MEM_read32(ip) == MEM_read32(ip - offset_2)) )) { - /* store sequence */ - size_t const rLength = ZSTD_count(ip+4, ip+4-offset_2, iend) + 4; - U32 const tmpOff = offset_2; offset_2 = offset_1; offset_1 = tmpOff; /* swap offset_2 <=> offset_1 */ - hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = (U32)(ip-base); - hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = (U32)(ip-base); - ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, rLength-MINMATCH); - ip += rLength; + while (ip <= ilimit) { + U32 const current2 = (U32)(ip-base); + U32 const repIndex2 = current2 - offset_2; + const BYTE* repMatch2 = repIndex2 < prefixLowestIndex ? + dictBase + repIndex2 - dictIndexDelta : + base + repIndex2; + if ( ((U32)((prefixLowestIndex-1) - (U32)repIndex2) >= 3 /* intentional overflow */) + && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixLowestIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixLowest) + 4; + U32 tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); + hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; + hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; + ip += repLength2; anchor = ip; - continue; /* faster when present ... (?) */ - } } } + continue; + } + break; + } + } } /* while (ip < ilimit) */ /* save reps for next block */ - rep[0] = offset_1 ? offset_1 : offsetSaved; - rep[1] = offset_2 ? offset_2 : offsetSaved; + rep[0] = offset_1; + rep[1] = offset_2; /* Return the last literals size */ return (size_t)(iend - anchor); } +#define ZSTD_GEN_DFAST_FN(dictMode, mls) \ + static size_t ZSTD_compressBlock_doubleFast_##dictMode##_##mls( \ + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], \ + void const* src, size_t srcSize) \ + { \ + return ZSTD_compressBlock_doubleFast_##dictMode##_generic(ms, seqStore, rep, src, srcSize, mls); \ + } + +ZSTD_GEN_DFAST_FN(noDict, 4) +ZSTD_GEN_DFAST_FN(noDict, 5) +ZSTD_GEN_DFAST_FN(noDict, 6) +ZSTD_GEN_DFAST_FN(noDict, 7) + +ZSTD_GEN_DFAST_FN(dictMatchState, 4) +ZSTD_GEN_DFAST_FN(dictMatchState, 5) +ZSTD_GEN_DFAST_FN(dictMatchState, 6) +ZSTD_GEN_DFAST_FN(dictMatchState, 7) + size_t ZSTD_compressBlock_doubleFast( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -326,13 +568,13 @@ size_t ZSTD_compressBlock_doubleFast( { default: /* includes case 3 */ case 4 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 4, ZSTD_noDict); + return ZSTD_compressBlock_doubleFast_noDict_4(ms, seqStore, rep, src, srcSize); case 5 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 5, ZSTD_noDict); + return ZSTD_compressBlock_doubleFast_noDict_5(ms, seqStore, rep, src, srcSize); case 6 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 6, ZSTD_noDict); + return ZSTD_compressBlock_doubleFast_noDict_6(ms, seqStore, rep, src, srcSize); case 7 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 7, ZSTD_noDict); + return ZSTD_compressBlock_doubleFast_noDict_7(ms, seqStore, rep, src, srcSize); } } @@ -346,18 +588,20 @@ size_t ZSTD_compressBlock_doubleFast_dictMatchState( { default: /* includes case 3 */ case 4 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 4, ZSTD_dictMatchState); + return ZSTD_compressBlock_doubleFast_dictMatchState_4(ms, seqStore, rep, src, srcSize); case 5 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 5, ZSTD_dictMatchState); + return ZSTD_compressBlock_doubleFast_dictMatchState_5(ms, seqStore, rep, src, srcSize); case 6 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 6, ZSTD_dictMatchState); + return ZSTD_compressBlock_doubleFast_dictMatchState_6(ms, seqStore, rep, src, srcSize); case 7 : - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, 7, ZSTD_dictMatchState); + return ZSTD_compressBlock_doubleFast_dictMatchState_7(ms, seqStore, rep, src, srcSize); } } -static size_t ZSTD_compressBlock_doubleFast_extDict_generic( +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_doubleFast_extDict_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize, U32 const mls /* template */) @@ -388,7 +632,7 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic( /* if extDict is invalidated due to maxDistance, switch to "regular" variant */ if (prefixStartIndex == dictStartIndex) - return ZSTD_compressBlock_doubleFast_generic(ms, seqStore, rep, src, srcSize, mls, ZSTD_noDict); + return ZSTD_compressBlock_doubleFast(ms, seqStore, rep, src, srcSize); /* Search Loop */ while (ip < ilimit) { /* < instead of <=, because (ip+1) */ @@ -402,31 +646,31 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic( const BYTE* const matchLongBase = matchLongIndex < prefixStartIndex ? dictBase : base; const BYTE* matchLong = matchLongBase + matchLongIndex; - const U32 current = (U32)(ip-base); - const U32 repIndex = current + 1 - offset_1; /* offset_1 expected <= current +1 */ + const U32 curr = (U32)(ip-base); + const U32 repIndex = curr + 1 - offset_1; /* offset_1 expected <= curr +1 */ const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; const BYTE* const repMatch = repBase + repIndex; size_t mLength; - hashSmall[hSmall] = hashLong[hLong] = current; /* update hash table */ + hashSmall[hSmall] = hashLong[hLong] = curr; /* update hash table */ if ((((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow : ensure repIndex doesn't overlap dict + prefix */ - & (repIndex > dictStartIndex)) + & (offset_1 <= curr+1 - dictStartIndex)) /* note: we are searching at curr+1 */ && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { const BYTE* repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixStart) + 4; ip++; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); } else { if ((matchLongIndex > dictStartIndex) && (MEM_read64(matchLong) == MEM_read64(ip))) { const BYTE* const matchEnd = matchLongIndex < prefixStartIndex ? dictEnd : iend; const BYTE* const lowMatchPtr = matchLongIndex < prefixStartIndex ? dictStart : prefixStart; U32 offset; mLength = ZSTD_count_2segments(ip+8, matchLong+8, iend, matchEnd, prefixStart) + 8; - offset = current - matchLongIndex; + offset = curr - matchLongIndex; while (((ip>anchor) & (matchLong>lowMatchPtr)) && (ip[-1] == matchLong[-1])) { ip--; matchLong--; mLength++; } /* catch up */ offset_2 = offset_1; offset_1 = offset; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); } else if ((matchIndex > dictStartIndex) && (MEM_read32(match) == MEM_read32(ip))) { size_t const h3 = ZSTD_hashPtr(ip+1, hBitsL, 8); @@ -434,24 +678,24 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic( const BYTE* const match3Base = matchIndex3 < prefixStartIndex ? dictBase : base; const BYTE* match3 = match3Base + matchIndex3; U32 offset; - hashLong[h3] = current + 1; + hashLong[h3] = curr + 1; if ( (matchIndex3 > dictStartIndex) && (MEM_read64(match3) == MEM_read64(ip+1)) ) { const BYTE* const matchEnd = matchIndex3 < prefixStartIndex ? dictEnd : iend; const BYTE* const lowMatchPtr = matchIndex3 < prefixStartIndex ? dictStart : prefixStart; mLength = ZSTD_count_2segments(ip+9, match3+8, iend, matchEnd, prefixStart) + 8; ip++; - offset = current+1 - matchIndex3; + offset = curr+1 - matchIndex3; while (((ip>anchor) & (match3>lowMatchPtr)) && (ip[-1] == match3[-1])) { ip--; match3--; mLength++; } /* catch up */ } else { const BYTE* const matchEnd = matchIndex < prefixStartIndex ? dictEnd : iend; const BYTE* const lowMatchPtr = matchIndex < prefixStartIndex ? dictStart : prefixStart; mLength = ZSTD_count_2segments(ip+4, match+4, iend, matchEnd, prefixStart) + 4; - offset = current - matchIndex; + offset = curr - matchIndex; while (((ip>anchor) & (match>lowMatchPtr)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ } offset_2 = offset_1; offset_1 = offset; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); } else { ip += ((ip-anchor) >> kSearchStrength) + 1; @@ -465,7 +709,7 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic( if (ip <= ilimit) { /* Complementary insertion */ /* done after iLimit test, as candidates could be > iend-8 */ - { U32 const indexToInsert = current+2; + { U32 const indexToInsert = curr+2; hashLong[ZSTD_hashPtr(base+indexToInsert, hBitsL, 8)] = indexToInsert; hashLong[ZSTD_hashPtr(ip-2, hBitsL, 8)] = (U32)(ip-2-base); hashSmall[ZSTD_hashPtr(base+indexToInsert, hBitsS, mls)] = indexToInsert; @@ -478,12 +722,12 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic( U32 const repIndex2 = current2 - offset_2; const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) /* intentional overflow : ensure repIndex2 doesn't overlap dict + prefix */ - & (repIndex2 > dictStartIndex)) + & (offset_2 <= current2 - dictStartIndex)) && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ - ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, repLength2-MINMATCH); + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); hashSmall[ZSTD_hashPtr(ip, hBitsS, mls)] = current2; hashLong[ZSTD_hashPtr(ip, hBitsL, 8)] = current2; ip += repLength2; @@ -501,6 +745,10 @@ static size_t ZSTD_compressBlock_doubleFast_extDict_generic( return (size_t)(iend - anchor); } +ZSTD_GEN_DFAST_FN(extDict, 4) +ZSTD_GEN_DFAST_FN(extDict, 5) +ZSTD_GEN_DFAST_FN(extDict, 6) +ZSTD_GEN_DFAST_FN(extDict, 7) size_t ZSTD_compressBlock_doubleFast_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -511,14 +759,16 @@ size_t ZSTD_compressBlock_doubleFast_extDict( { default: /* includes case 3 */ case 4 : - return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 4); + return ZSTD_compressBlock_doubleFast_extDict_4(ms, seqStore, rep, src, srcSize); case 5 : - return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 5); + return ZSTD_compressBlock_doubleFast_extDict_5(ms, seqStore, rep, src, srcSize); case 6 : - return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 6); + return ZSTD_compressBlock_doubleFast_extDict_6(ms, seqStore, rep, src, srcSize); case 7 : - return ZSTD_compressBlock_doubleFast_extDict_generic(ms, seqStore, rep, src, srcSize, 7); + return ZSTD_compressBlock_doubleFast_extDict_7(ms, seqStore, rep, src, srcSize); } } -} +#endif /* ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR */ + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_fast.cpp b/src/duckdb/third_party/zstd/compress/zstd_fast.cpp index 31da71d8..f45c4d8e 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_fast.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_fast.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -13,7 +13,46 @@ namespace duckdb_zstd { -void ZSTD_fillHashTable(ZSTD_matchState_t* ms, +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillHashTableForCDict(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm) +{ + const ZSTD_compressionParameters* const cParams = &ms->cParams; + U32* const hashTable = ms->hashTable; + U32 const hBits = cParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; + U32 const mls = cParams->minMatch; + const BYTE* const base = ms->window.base; + const BYTE* ip = base + ms->nextToUpdate; + const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; + const U32 fastHashFillStep = 3; + + /* Currently, we always use ZSTD_dtlm_full for filling CDict tables. + * Feel free to remove this assert if there's a good reason! */ + assert(dtlm == ZSTD_dtlm_full); + + /* Always insert every fastHashFillStep position into the hash table. + * Insert the other positions if their hash entry is empty. + */ + for ( ; ip + fastHashFillStep < iend + 2; ip += fastHashFillStep) { + U32 const curr = (U32)(ip - base); + { size_t const hashAndTag = ZSTD_hashPtr(ip, hBits, mls); + ZSTD_writeTaggedIndex(hashTable, hashAndTag, curr); } + + if (dtlm == ZSTD_dtlm_fast) continue; + /* Only load extra positions for ZSTD_dtlm_full */ + { U32 p; + for (p = 1; p < fastHashFillStep; ++p) { + size_t const hashAndTag = ZSTD_hashPtr(ip + p, hBits, mls); + if (hashTable[hashAndTag >> ZSTD_SHORT_CACHE_TAG_BITS] == 0) { /* not yet filled */ + ZSTD_writeTaggedIndex(hashTable, hashAndTag, curr + p); + } } } } +} + +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_fillHashTableForCCtx(ZSTD_matchState_t* ms, const void* const end, ZSTD_dictTableLoadMethod_e dtlm) { @@ -26,163 +65,366 @@ void ZSTD_fillHashTable(ZSTD_matchState_t* ms, const BYTE* const iend = ((const BYTE*)end) - HASH_READ_SIZE; const U32 fastHashFillStep = 3; + /* Currently, we always use ZSTD_dtlm_fast for filling CCtx tables. + * Feel free to remove this assert if there's a good reason! */ + assert(dtlm == ZSTD_dtlm_fast); + /* Always insert every fastHashFillStep position into the hash table. * Insert the other positions if their hash entry is empty. */ for ( ; ip + fastHashFillStep < iend + 2; ip += fastHashFillStep) { - U32 const current = (U32)(ip - base); + U32 const curr = (U32)(ip - base); size_t const hash0 = ZSTD_hashPtr(ip, hBits, mls); - hashTable[hash0] = current; + hashTable[hash0] = curr; if (dtlm == ZSTD_dtlm_fast) continue; /* Only load extra positions for ZSTD_dtlm_full */ { U32 p; for (p = 1; p < fastHashFillStep; ++p) { size_t const hash = ZSTD_hashPtr(ip + p, hBits, mls); if (hashTable[hash] == 0) { /* not yet filled */ - hashTable[hash] = current + p; + hashTable[hash] = curr + p; } } } } } +void ZSTD_fillHashTable(ZSTD_matchState_t* ms, + const void* const end, + ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp) +{ + if (tfp == ZSTD_tfp_forCDict) { + ZSTD_fillHashTableForCDict(ms, end, dtlm); + } else { + ZSTD_fillHashTableForCCtx(ms, end, dtlm); + } +} + -FORCE_INLINE_TEMPLATE size_t -ZSTD_compressBlock_fast_generic( +/** + * If you squint hard enough (and ignore repcodes), the search operation at any + * given position is broken into 4 stages: + * + * 1. Hash (map position to hash value via input read) + * 2. Lookup (map hash val to index via hashtable read) + * 3. Load (map index to value at that position via input read) + * 4. Compare + * + * Each of these steps involves a memory read at an address which is computed + * from the previous step. This means these steps must be sequenced and their + * latencies are cumulative. + * + * Rather than do 1->2->3->4 sequentially for a single position before moving + * onto the next, this implementation interleaves these operations across the + * next few positions: + * + * R = Repcode Read & Compare + * H = Hash + * T = Table Lookup + * M = Match Read & Compare + * + * Pos | Time --> + * ----+------------------- + * N | ... M + * N+1 | ... TM + * N+2 | R H T M + * N+3 | H TM + * N+4 | R H T M + * N+5 | H ... + * N+6 | R ... + * + * This is very much analogous to the pipelining of execution in a CPU. And just + * like a CPU, we have to dump the pipeline when we find a match (i.e., take a + * branch). + * + * When this happens, we throw away our current state, and do the following prep + * to re-enter the loop: + * + * Pos | Time --> + * ----+------------------- + * N | H T + * N+1 | H + * + * This is also the work we do at the beginning to enter the loop initially. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_fast_noDict_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize, - U32 const mls) + U32 const mls, U32 const hasStep) { const ZSTD_compressionParameters* const cParams = &ms->cParams; U32* const hashTable = ms->hashTable; U32 const hlog = cParams->hashLog; /* support stepSize of 0 */ - size_t const stepSize = cParams->targetLength + !(cParams->targetLength) + 1; + size_t const stepSize = hasStep ? (cParams->targetLength + !(cParams->targetLength) + 1) : 2; const BYTE* const base = ms->window.base; const BYTE* const istart = (const BYTE*)src; - /* We check ip0 (ip + 0) and ip1 (ip + 1) each loop */ - const BYTE* ip0 = istart; - const BYTE* ip1; - const BYTE* anchor = istart; const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); const U32 prefixStartIndex = ZSTD_getLowestPrefixIndex(ms, endIndex, cParams->windowLog); const BYTE* const prefixStart = base + prefixStartIndex; const BYTE* const iend = istart + srcSize; const BYTE* const ilimit = iend - HASH_READ_SIZE; - U32 offset_1=rep[0], offset_2=rep[1]; - U32 offsetSaved = 0; - /* init */ + const BYTE* anchor = istart; + const BYTE* ip0 = istart; + const BYTE* ip1; + const BYTE* ip2; + const BYTE* ip3; + U32 current0; + + U32 rep_offset1 = rep[0]; + U32 rep_offset2 = rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + + size_t hash0; /* hash for ip0 */ + size_t hash1; /* hash for ip1 */ + U32 idx; /* match idx for ip0 */ + U32 mval; /* src value at match idx */ + + U32 offcode; + const BYTE* match0; + size_t mLength; + + /* ip0 and ip1 are always adjacent. The targetLength skipping and + * uncompressibility acceleration is applied to every other position, + * matching the behavior of #1562. step therefore represents the gap + * between pairs of positions, from ip0 to ip2 or ip1 to ip3. */ + size_t step; + const BYTE* nextStep; + const size_t kStepIncr = (1 << (kSearchStrength - 1)); + DEBUGLOG(5, "ZSTD_compressBlock_fast_generic"); ip0 += (ip0 == prefixStart); + { U32 const curr = (U32)(ip0 - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, curr, cParams->windowLog); + U32 const maxRep = curr - windowLow; + if (rep_offset2 > maxRep) offsetSaved2 = rep_offset2, rep_offset2 = 0; + if (rep_offset1 > maxRep) offsetSaved1 = rep_offset1, rep_offset1 = 0; + } + + /* start each op */ +_start: /* Requires: ip0 */ + + step = stepSize; + nextStep = ip0 + kStepIncr; + + /* calculate positions, ip0 - anchor == 0, so we skip step calc */ ip1 = ip0 + 1; - { U32 const current = (U32)(ip0 - base); - U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, current, cParams->windowLog); - U32 const maxRep = current - windowLow; - if (offset_2 > maxRep) offsetSaved = offset_2, offset_2 = 0; - if (offset_1 > maxRep) offsetSaved = offset_1, offset_1 = 0; + ip2 = ip0 + step; + ip3 = ip2 + 1; + + if (ip3 >= ilimit) { + goto _cleanup; } - /* Main Search Loop */ -#ifdef __INTEL_COMPILER - /* From intel 'The vector pragma indicates that the loop should be - * vectorized if it is legal to do so'. Can be used together with - * #pragma ivdep (but have opted to exclude that because intel - * warns against using it).*/ - #pragma vector always -#endif - while (ip1 < ilimit) { /* < instead of <=, because check at ip0+2 */ - size_t mLength; - BYTE const* ip2 = ip0 + 2; - size_t const h0 = ZSTD_hashPtr(ip0, hlog, mls); - U32 const val0 = MEM_read32(ip0); - size_t const h1 = ZSTD_hashPtr(ip1, hlog, mls); - U32 const val1 = MEM_read32(ip1); - U32 const current0 = (U32)(ip0-base); - U32 const current1 = (U32)(ip1-base); - U32 const matchIndex0 = hashTable[h0]; - U32 const matchIndex1 = hashTable[h1]; - BYTE const* repMatch = ip2 - offset_1; - const BYTE* match0 = base + matchIndex0; - const BYTE* match1 = base + matchIndex1; - U32 offcode; - -#if defined(__aarch64__) - PREFETCH_L1(ip0+256); -#endif - - hashTable[h0] = current0; /* update hash table */ - hashTable[h1] = current1; /* update hash table */ - - assert(ip0 + 1 == ip1); - - if ((offset_1 > 0) & (MEM_read32(repMatch) == MEM_read32(ip2))) { - mLength = (ip2[-1] == repMatch[-1]) ? 1 : 0; - ip0 = ip2 - mLength; - match0 = repMatch - mLength; + hash0 = ZSTD_hashPtr(ip0, hlog, mls); + hash1 = ZSTD_hashPtr(ip1, hlog, mls); + + idx = hashTable[hash0]; + + do { + /* load repcode match for ip[2]*/ + const U32 rval = MEM_read32(ip2 - rep_offset1); + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + /* check repcode at ip[2] */ + if ((MEM_read32(ip2) == rval) & (rep_offset1 > 0)) { + ip0 = ip2; + match0 = ip0 - rep_offset1; + mLength = ip0[-1] == match0[-1]; + ip0 -= mLength; + match0 -= mLength; + offcode = REPCODE1_TO_OFFBASE; mLength += 4; - offcode = 0; + + /* First write next hash table entry; we've already calculated it. + * This write is known to be safe because the ip1 is before the + * repcode (ip2). */ + hashTable[hash1] = (U32)(ip1 - base); + goto _match; } - if ((matchIndex0 > prefixStartIndex) && MEM_read32(match0) == val0) { - /* found a regular match */ - goto _offset; + + /* load match for ip[0] */ + if (idx >= prefixStartIndex) { + mval = MEM_read32(base + idx); + } else { + mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */ } - if ((matchIndex1 > prefixStartIndex) && MEM_read32(match1) == val1) { - /* found a regular match after one literal */ - ip0 = ip1; - match0 = match1; + + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + + /* First write next hash table entry; we've already calculated it. + * This write is known to be safe because the ip1 == ip0 + 1, so + * we know we will resume searching after ip1 */ + hashTable[hash1] = (U32)(ip1 - base); + goto _offset; } - { size_t const step = ((size_t)(ip0-anchor) >> (kSearchStrength - 1)) + stepSize; - assert(step >= 2); - ip0 += step; - ip1 += step; - continue; + + /* lookup ip[1] */ + idx = hashTable[hash1]; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip3; + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + /* load match for ip[0] */ + if (idx >= prefixStartIndex) { + mval = MEM_read32(base + idx); + } else { + mval = MEM_read32(ip0) ^ 1; /* guaranteed to not match. */ } -_offset: /* Requires: ip0, match0 */ - /* Compute the offset code */ - offset_2 = offset_1; - offset_1 = (U32)(ip0-match0); - offcode = offset_1 + ZSTD_REP_MOVE; - mLength = 4; - /* Count the backwards match length */ - while (((ip0>anchor) & (match0>prefixStart)) - && (ip0[-1] == match0[-1])) { ip0--; match0--; mLength++; } /* catch up */ -_match: /* Requires: ip0, match0, offcode */ - /* Count the forward length */ - mLength += ZSTD_count(ip0+mLength, match0+mLength, iend); - ZSTD_storeSeq(seqStore, (size_t)(ip0-anchor), anchor, iend, offcode, mLength-MINMATCH); - /* match found */ - ip0 += mLength; - anchor = ip0; + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + + /* first write next hash table entry; we've already calculated it */ + if (step <= 4) { + /* We need to avoid writing an index into the hash table >= the + * position at which we will pick up our searching after we've + * taken this match. + * + * The minimum possible match has length 4, so the earliest ip0 + * can be after we take this match will be the current ip0 + 4. + * ip1 is ip0 + step - 1. If ip1 is >= ip0 + 4, we can't safely + * write this position. + */ + hashTable[hash1] = (U32)(ip1 - base); + } - if (ip0 <= ilimit) { - /* Fill Table */ - assert(base+current0+2 > istart); /* check base overflow */ - hashTable[ZSTD_hashPtr(base+current0+2, hlog, mls)] = current0+2; /* here because current+2 could be > iend-8 */ - hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); + goto _offset; + } - if (offset_2 > 0) { /* offset_2==0 means offset_2 is invalidated */ - while ( (ip0 <= ilimit) && (MEM_read32(ip0) == MEM_read32(ip0 - offset_2)) ) { - /* store sequence */ - size_t const rLength = ZSTD_count(ip0+4, ip0+4-offset_2, iend) + 4; - { U32 const tmpOff = offset_2; offset_2 = offset_1; offset_1 = tmpOff; } /* swap offset_2 <=> offset_1 */ - hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = (U32)(ip0-base); - ip0 += rLength; - ZSTD_storeSeq(seqStore, 0 /*litLen*/, anchor, iend, 0 /*offCode*/, rLength-MINMATCH); - anchor = ip0; - continue; /* faster when present (confirmed on gcc-8) ... (?) */ - } } } - ip1 = ip0 + 1; - } + /* lookup ip[1] */ + idx = hashTable[hash1]; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip0 + step; + ip3 = ip1 + step; + + /* calculate step */ + if (ip2 >= nextStep) { + step++; + PREFETCH_L1(ip1 + 64); + PREFETCH_L1(ip1 + 128); + nextStep += kStepIncr; + } + } while (ip3 < ilimit); + +_cleanup: + /* Note that there are probably still a couple positions we could search. + * However, it seems to be a meaningful performance hit to try to search + * them. So let's not. */ + + /* When the repcodes are outside of the prefix, we set them to zero before the loop. + * When the offsets are still zero, we need to restore them after the block to have a correct + * repcode history. If only one offset was invalid, it is easy. The tricky case is when both + * offsets were invalid. We need to figure out which offset to refill with. + * - If both offsets are zero they are in the same order. + * - If both offsets are non-zero, we won't restore the offsets from `offsetSaved[12]`. + * - If only one is zero, we need to decide which offset to restore. + * - If rep_offset1 is non-zero, then rep_offset2 must be offsetSaved1. + * - It is impossible for rep_offset2 to be non-zero. + * + * So if rep_offset1 started invalid (offsetSaved1 != 0) and became valid (rep_offset1 != 0), then + * set rep[0] = rep_offset1 and rep[1] = offsetSaved1. + */ + offsetSaved2 = ((offsetSaved1 != 0) && (rep_offset1 != 0)) ? offsetSaved1 : offsetSaved2; /* save reps for next block */ - rep[0] = offset_1 ? offset_1 : offsetSaved; - rep[1] = offset_2 ? offset_2 : offsetSaved; + rep[0] = rep_offset1 ? rep_offset1 : offsetSaved1; + rep[1] = rep_offset2 ? rep_offset2 : offsetSaved2; /* Return the last literals size */ return (size_t)(iend - anchor); + +_offset: /* Requires: ip0, idx */ + + /* Compute the offset code. */ + match0 = base + idx; + rep_offset2 = rep_offset1; + rep_offset1 = (U32)(ip0-match0); + offcode = OFFSET_TO_OFFBASE(rep_offset1); + mLength = 4; + + /* Count the backwards match length. */ + while (((ip0>anchor) & (match0>prefixStart)) && (ip0[-1] == match0[-1])) { + ip0--; + match0--; + mLength++; + } + +_match: /* Requires: ip0, match0, offcode */ + + /* Count the forward length. */ + mLength += ZSTD_count(ip0 + mLength, match0 + mLength, iend); + + ZSTD_storeSeq(seqStore, (size_t)(ip0 - anchor), anchor, iend, offcode, mLength); + + ip0 += mLength; + anchor = ip0; + + /* Fill table and check for immediate repcode. */ + if (ip0 <= ilimit) { + /* Fill Table */ + assert(base+current0+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+current0+2, hlog, mls)] = current0+2; /* here because current+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); + + if (rep_offset2 > 0) { /* rep_offset2==0 means rep_offset2 is invalidated */ + while ( (ip0 <= ilimit) && (MEM_read32(ip0) == MEM_read32(ip0 - rep_offset2)) ) { + /* store sequence */ + size_t const rLength = ZSTD_count(ip0+4, ip0+4-rep_offset2, iend) + 4; + { U32 const tmpOff = rep_offset2; rep_offset2 = rep_offset1; rep_offset1 = tmpOff; } /* swap rep_offset2 <=> rep_offset1 */ + hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = (U32)(ip0-base); + ip0 += rLength; + ZSTD_storeSeq(seqStore, 0 /*litLen*/, anchor, iend, REPCODE1_TO_OFFBASE, rLength); + anchor = ip0; + continue; /* faster when present (confirmed on gcc-8) ... (?) */ + } } } + + goto _start; } +#define ZSTD_GEN_FAST_FN(dictMode, mls, step) \ + static size_t ZSTD_compressBlock_fast_##dictMode##_##mls##_##step( \ + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], \ + void const* src, size_t srcSize) \ + { \ + return ZSTD_compressBlock_fast_##dictMode##_generic(ms, seqStore, rep, src, srcSize, mls, step); \ + } + +ZSTD_GEN_FAST_FN(noDict, 4, 1) +ZSTD_GEN_FAST_FN(noDict, 5, 1) +ZSTD_GEN_FAST_FN(noDict, 6, 1) +ZSTD_GEN_FAST_FN(noDict, 7, 1) + +ZSTD_GEN_FAST_FN(noDict, 4, 0) +ZSTD_GEN_FAST_FN(noDict, 5, 0) +ZSTD_GEN_FAST_FN(noDict, 6, 0) +ZSTD_GEN_FAST_FN(noDict, 7, 0) size_t ZSTD_compressBlock_fast( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -190,24 +432,41 @@ size_t ZSTD_compressBlock_fast( { U32 const mls = ms->cParams.minMatch; assert(ms->dictMatchState == NULL); - switch(mls) - { - default: /* includes case 3 */ - case 4 : - return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 4); - case 5 : - return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 5); - case 6 : - return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 6); - case 7 : - return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, 7); + if (ms->cParams.targetLength > 1) { + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_noDict_4_1(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_noDict_5_1(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_noDict_6_1(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_noDict_7_1(ms, seqStore, rep, src, srcSize); + } + } else { + switch(mls) + { + default: /* includes case 3 */ + case 4 : + return ZSTD_compressBlock_fast_noDict_4_0(ms, seqStore, rep, src, srcSize); + case 5 : + return ZSTD_compressBlock_fast_noDict_5_0(ms, seqStore, rep, src, srcSize); + case 6 : + return ZSTD_compressBlock_fast_noDict_6_0(ms, seqStore, rep, src, srcSize); + case 7 : + return ZSTD_compressBlock_fast_noDict_7_0(ms, seqStore, rep, src, srcSize); + } + } } FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR size_t ZSTD_compressBlock_fast_dictMatchState_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], - void const* src, size_t srcSize, U32 const mls) + void const* src, size_t srcSize, U32 const mls, U32 const hasStep) { const ZSTD_compressionParameters* const cParams = &ms->cParams; U32* const hashTable = ms->hashTable; @@ -216,14 +475,14 @@ size_t ZSTD_compressBlock_fast_dictMatchState_generic( U32 const stepSize = cParams->targetLength + !(cParams->targetLength); const BYTE* const base = ms->window.base; const BYTE* const istart = (const BYTE*)src; - const BYTE* ip = istart; + const BYTE* ip0 = istart; + const BYTE* ip1 = ip0 + stepSize; /* we assert below that stepSize >= 1 */ const BYTE* anchor = istart; const U32 prefixStartIndex = ms->window.dictLimit; const BYTE* const prefixStart = base + prefixStartIndex; const BYTE* const iend = istart + srcSize; const BYTE* const ilimit = iend - HASH_READ_SIZE; U32 offset_1=rep[0], offset_2=rep[1]; - U32 offsetSaved = 0; const ZSTD_matchState_t* const dms = ms->dictMatchState; const ZSTD_compressionParameters* const dictCParams = &dms->cParams ; @@ -233,125 +492,182 @@ size_t ZSTD_compressBlock_fast_dictMatchState_generic( const BYTE* const dictStart = dictBase + dictStartIndex; const BYTE* const dictEnd = dms->window.nextSrc; const U32 dictIndexDelta = prefixStartIndex - (U32)(dictEnd - dictBase); - const U32 dictAndPrefixLength = (U32)(ip - prefixStart + dictEnd - dictStart); - const U32 dictHLog = dictCParams->hashLog; + const U32 dictAndPrefixLength = (U32)(istart - prefixStart + dictEnd - dictStart); + const U32 dictHBits = dictCParams->hashLog + ZSTD_SHORT_CACHE_TAG_BITS; /* if a dictionary is still attached, it necessarily means that * it is within window size. So we just check it. */ const U32 maxDistance = 1U << cParams->windowLog; - const U32 endIndex = (U32)((size_t)(ip - base) + srcSize); + const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); assert(endIndex - prefixStartIndex <= maxDistance); (void)maxDistance; (void)endIndex; /* these variables are not used when assert() is disabled */ - /* ensure there will be no no underflow + (void)hasStep; /* not currently specialized on whether it's accelerated */ + + /* ensure there will be no underflow * when translating a dict index into a local index */ assert(prefixStartIndex >= (U32)(dictEnd - dictBase)); + if (ms->prefetchCDictTables) { + size_t const hashTableBytes = (((size_t)1) << dictCParams->hashLog) * sizeof(U32); + PREFETCH_AREA(dictHashTable, hashTableBytes); + } + /* init */ DEBUGLOG(5, "ZSTD_compressBlock_fast_dictMatchState_generic"); - ip += (dictAndPrefixLength == 0); + ip0 += (dictAndPrefixLength == 0); /* dictMatchState repCode checks don't currently handle repCode == 0 * disabling. */ assert(offset_1 <= dictAndPrefixLength); assert(offset_2 <= dictAndPrefixLength); - /* Main Search Loop */ - while (ip < ilimit) { /* < instead of <=, because repcode check at (ip+1) */ + /* Outer search loop */ + assert(stepSize >= 1); + while (ip1 <= ilimit) { /* repcode check at (ip0 + 1) is safe because ip0 < ip1 */ size_t mLength; - size_t const h = ZSTD_hashPtr(ip, hlog, mls); - U32 const current = (U32)(ip-base); - U32 const matchIndex = hashTable[h]; - const BYTE* match = base + matchIndex; - const U32 repIndex = current + 1 - offset_1; - const BYTE* repMatch = (repIndex < prefixStartIndex) ? - dictBase + (repIndex - dictIndexDelta) : - base + repIndex; - hashTable[h] = current; /* update hash table */ - - if ( ((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow : ensure repIndex isn't overlapping dict + prefix */ - && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { - const BYTE* const repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; - mLength = ZSTD_count_2segments(ip+1+4, repMatch+4, iend, repMatchEnd, prefixStart) + 4; - ip++; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, mLength-MINMATCH); - } else if ( (matchIndex <= prefixStartIndex) ) { - size_t const dictHash = ZSTD_hashPtr(ip, dictHLog, mls); - U32 const dictMatchIndex = dictHashTable[dictHash]; - const BYTE* dictMatch = dictBase + dictMatchIndex; - if (dictMatchIndex <= dictStartIndex || - MEM_read32(dictMatch) != MEM_read32(ip)) { - assert(stepSize >= 1); - ip += ((ip-anchor) >> kSearchStrength) + stepSize; - continue; - } else { - /* found a dict match */ - U32 const offset = (U32)(current-dictMatchIndex-dictIndexDelta); - mLength = ZSTD_count_2segments(ip+4, dictMatch+4, iend, dictEnd, prefixStart) + 4; - while (((ip>anchor) & (dictMatch>dictStart)) - && (ip[-1] == dictMatch[-1])) { - ip--; dictMatch--; mLength++; + size_t hash0 = ZSTD_hashPtr(ip0, hlog, mls); + + size_t const dictHashAndTag0 = ZSTD_hashPtr(ip0, dictHBits, mls); + U32 dictMatchIndexAndTag = dictHashTable[dictHashAndTag0 >> ZSTD_SHORT_CACHE_TAG_BITS]; + int dictTagsMatch = ZSTD_comparePackedTags(dictMatchIndexAndTag, dictHashAndTag0); + + U32 matchIndex = hashTable[hash0]; + U32 curr = (U32)(ip0 - base); + size_t step = stepSize; + const size_t kStepIncr = 1 << kSearchStrength; + const BYTE* nextStep = ip0 + kStepIncr; + + /* Inner search loop */ + while (1) { + const BYTE* match = base + matchIndex; + const U32 repIndex = curr + 1 - offset_1; + const BYTE* repMatch = (repIndex < prefixStartIndex) ? + dictBase + (repIndex - dictIndexDelta) : + base + repIndex; + const size_t hash1 = ZSTD_hashPtr(ip1, hlog, mls); + size_t const dictHashAndTag1 = ZSTD_hashPtr(ip1, dictHBits, mls); + hashTable[hash0] = curr; /* update hash table */ + + if (((U32) ((prefixStartIndex - 1) - repIndex) >= + 3) /* intentional underflow : ensure repIndex isn't overlapping dict + prefix */ + && (MEM_read32(repMatch) == MEM_read32(ip0 + 1))) { + const BYTE* const repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + mLength = ZSTD_count_2segments(ip0 + 1 + 4, repMatch + 4, iend, repMatchEnd, prefixStart) + 4; + ip0++; + ZSTD_storeSeq(seqStore, (size_t) (ip0 - anchor), anchor, iend, REPCODE1_TO_OFFBASE, mLength); + break; + } + + if (dictTagsMatch) { + /* Found a possible dict match */ + const U32 dictMatchIndex = dictMatchIndexAndTag >> ZSTD_SHORT_CACHE_TAG_BITS; + const BYTE* dictMatch = dictBase + dictMatchIndex; + if (dictMatchIndex > dictStartIndex && + MEM_read32(dictMatch) == MEM_read32(ip0)) { + /* To replicate extDict parse behavior, we only use dict matches when the normal matchIndex is invalid */ + if (matchIndex <= prefixStartIndex) { + U32 const offset = (U32) (curr - dictMatchIndex - dictIndexDelta); + mLength = ZSTD_count_2segments(ip0 + 4, dictMatch + 4, iend, dictEnd, prefixStart) + 4; + while (((ip0 > anchor) & (dictMatch > dictStart)) + && (ip0[-1] == dictMatch[-1])) { + ip0--; + dictMatch--; + mLength++; + } /* catch up */ + offset_2 = offset_1; + offset_1 = offset; + ZSTD_storeSeq(seqStore, (size_t) (ip0 - anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + break; + } + } + } + + if (matchIndex > prefixStartIndex && MEM_read32(match) == MEM_read32(ip0)) { + /* found a regular match */ + U32 const offset = (U32) (ip0 - match); + mLength = ZSTD_count(ip0 + 4, match + 4, iend) + 4; + while (((ip0 > anchor) & (match > prefixStart)) + && (ip0[-1] == match[-1])) { + ip0--; + match--; + mLength++; } /* catch up */ offset_2 = offset_1; offset_1 = offset; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); + ZSTD_storeSeq(seqStore, (size_t) (ip0 - anchor), anchor, iend, OFFSET_TO_OFFBASE(offset), mLength); + break; } - } else if (MEM_read32(match) != MEM_read32(ip)) { - /* it's not a match, and we're not going to check the dictionary */ - assert(stepSize >= 1); - ip += ((ip-anchor) >> kSearchStrength) + stepSize; - continue; - } else { - /* found a regular match */ - U32 const offset = (U32)(ip-match); - mLength = ZSTD_count(ip+4, match+4, iend) + 4; - while (((ip>anchor) & (match>prefixStart)) - && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ - offset_2 = offset_1; - offset_1 = offset; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); - } + + /* Prepare for next iteration */ + dictMatchIndexAndTag = dictHashTable[dictHashAndTag1 >> ZSTD_SHORT_CACHE_TAG_BITS]; + dictTagsMatch = ZSTD_comparePackedTags(dictMatchIndexAndTag, dictHashAndTag1); + matchIndex = hashTable[hash1]; + + if (ip1 >= nextStep) { + step++; + nextStep += kStepIncr; + } + ip0 = ip1; + ip1 = ip1 + step; + if (ip1 > ilimit) goto _cleanup; + + curr = (U32)(ip0 - base); + hash0 = hash1; + } /* end inner search loop */ /* match found */ - ip += mLength; - anchor = ip; + assert(mLength); + ip0 += mLength; + anchor = ip0; - if (ip <= ilimit) { + if (ip0 <= ilimit) { /* Fill Table */ - assert(base+current+2 > istart); /* check base overflow */ - hashTable[ZSTD_hashPtr(base+current+2, hlog, mls)] = current+2; /* here because current+2 could be > iend-8 */ - hashTable[ZSTD_hashPtr(ip-2, hlog, mls)] = (U32)(ip-2-base); + assert(base+curr+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+curr+2, hlog, mls)] = curr+2; /* here because curr+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); /* check immediate repcode */ - while (ip <= ilimit) { - U32 const current2 = (U32)(ip-base); + while (ip0 <= ilimit) { + U32 const current2 = (U32)(ip0-base); U32 const repIndex2 = current2 - offset_2; const BYTE* repMatch2 = repIndex2 < prefixStartIndex ? dictBase - dictIndexDelta + repIndex2 : base + repIndex2; if ( ((U32)((prefixStartIndex-1) - (U32)repIndex2) >= 3 /* intentional overflow */) - && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { + && (MEM_read32(repMatch2) == MEM_read32(ip0))) { const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; - size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + size_t const repLength2 = ZSTD_count_2segments(ip0+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; U32 tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; /* swap offset_2 <=> offset_1 */ - ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, repLength2-MINMATCH); - hashTable[ZSTD_hashPtr(ip, hlog, mls)] = current2; - ip += repLength2; - anchor = ip; + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); + hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = current2; + ip0 += repLength2; + anchor = ip0; continue; } break; } } + + /* Prepare for next iteration */ + assert(ip0 == anchor); + ip1 = ip0 + stepSize; } +_cleanup: /* save reps for next block */ - rep[0] = offset_1 ? offset_1 : offsetSaved; - rep[1] = offset_2 ? offset_2 : offsetSaved; + rep[0] = offset_1; + rep[1] = offset_2; /* Return the last literals size */ return (size_t)(iend - anchor); } + +ZSTD_GEN_FAST_FN(dictMatchState, 4, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 5, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 6, 0) +ZSTD_GEN_FAST_FN(dictMatchState, 7, 0) + size_t ZSTD_compressBlock_fast_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) @@ -362,30 +678,31 @@ size_t ZSTD_compressBlock_fast_dictMatchState( { default: /* includes case 3 */ case 4 : - return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 4); + return ZSTD_compressBlock_fast_dictMatchState_4_0(ms, seqStore, rep, src, srcSize); case 5 : - return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 5); + return ZSTD_compressBlock_fast_dictMatchState_5_0(ms, seqStore, rep, src, srcSize); case 6 : - return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 6); + return ZSTD_compressBlock_fast_dictMatchState_6_0(ms, seqStore, rep, src, srcSize); case 7 : - return ZSTD_compressBlock_fast_dictMatchState_generic(ms, seqStore, rep, src, srcSize, 7); + return ZSTD_compressBlock_fast_dictMatchState_7_0(ms, seqStore, rep, src, srcSize); } } -static size_t ZSTD_compressBlock_fast_extDict_generic( +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_fast_extDict_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], - void const* src, size_t srcSize, U32 const mls) + void const* src, size_t srcSize, U32 const mls, U32 const hasStep) { const ZSTD_compressionParameters* const cParams = &ms->cParams; U32* const hashTable = ms->hashTable; U32 const hlog = cParams->hashLog; /* support stepSize of 0 */ - U32 const stepSize = cParams->targetLength + !(cParams->targetLength); + size_t const stepSize = cParams->targetLength + !(cParams->targetLength) + 1; const BYTE* const base = ms->window.base; const BYTE* const dictBase = ms->window.dictBase; const BYTE* const istart = (const BYTE*)src; - const BYTE* ip = istart; const BYTE* anchor = istart; const U32 endIndex = (U32)((size_t)(istart - base) + srcSize); const U32 lowLimit = ZSTD_getLowestMatchIndex(ms, endIndex, cParams->windowLog); @@ -398,102 +715,258 @@ static size_t ZSTD_compressBlock_fast_extDict_generic( const BYTE* const iend = istart + srcSize; const BYTE* const ilimit = iend - 8; U32 offset_1=rep[0], offset_2=rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + + const BYTE* ip0 = istart; + const BYTE* ip1; + const BYTE* ip2; + const BYTE* ip3; + U32 current0; + + + size_t hash0; /* hash for ip0 */ + size_t hash1; /* hash for ip1 */ + U32 idx; /* match idx for ip0 */ + const BYTE* idxBase; /* base pointer for idx */ + + U32 offcode; + const BYTE* match0; + size_t mLength; + const BYTE* matchEnd = 0; /* initialize to avoid warning, assert != 0 later */ + + size_t step; + const BYTE* nextStep; + const size_t kStepIncr = (1 << (kSearchStrength - 1)); + + (void)hasStep; /* not currently specialized on whether it's accelerated */ DEBUGLOG(5, "ZSTD_compressBlock_fast_extDict_generic (offset_1=%u)", offset_1); /* switch to "regular" variant if extDict is invalidated due to maxDistance */ if (prefixStartIndex == dictStartIndex) - return ZSTD_compressBlock_fast_generic(ms, seqStore, rep, src, srcSize, mls); - - /* Search Loop */ - while (ip < ilimit) { /* < instead of <=, because (ip+1) */ - const size_t h = ZSTD_hashPtr(ip, hlog, mls); - const U32 matchIndex = hashTable[h]; - const BYTE* const matchBase = matchIndex < prefixStartIndex ? dictBase : base; - const BYTE* match = matchBase + matchIndex; - const U32 current = (U32)(ip-base); - const U32 repIndex = current + 1 - offset_1; - const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; - const BYTE* const repMatch = repBase + repIndex; - hashTable[h] = current; /* update hash table */ - DEBUGLOG(7, "offset_1 = %u , current = %u", offset_1, current); - assert(offset_1 <= current +1); /* check repIndex */ - - if ( (((U32)((prefixStartIndex-1) - repIndex) >= 3) /* intentional underflow */ & (repIndex > dictStartIndex)) - && (MEM_read32(repMatch) == MEM_read32(ip+1)) ) { - const BYTE* const repMatchEnd = repIndex < prefixStartIndex ? dictEnd : iend; - size_t const rLength = ZSTD_count_2segments(ip+1 +4, repMatch +4, iend, repMatchEnd, prefixStart) + 4; - ip++; - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, 0, rLength-MINMATCH); - ip += rLength; - anchor = ip; - } else { - if ( (matchIndex < dictStartIndex) || - (MEM_read32(match) != MEM_read32(ip)) ) { - assert(stepSize >= 1); - ip += ((ip-anchor) >> kSearchStrength) + stepSize; - continue; + return ZSTD_compressBlock_fast(ms, seqStore, rep, src, srcSize); + + { U32 const curr = (U32)(ip0 - base); + U32 const maxRep = curr - dictStartIndex; + if (offset_2 >= maxRep) offsetSaved2 = offset_2, offset_2 = 0; + if (offset_1 >= maxRep) offsetSaved1 = offset_1, offset_1 = 0; + } + + /* start each op */ +_start: /* Requires: ip0 */ + + step = stepSize; + nextStep = ip0 + kStepIncr; + + /* calculate positions, ip0 - anchor == 0, so we skip step calc */ + ip1 = ip0 + 1; + ip2 = ip0 + step; + ip3 = ip2 + 1; + + if (ip3 >= ilimit) { + goto _cleanup; + } + + hash0 = ZSTD_hashPtr(ip0, hlog, mls); + hash1 = ZSTD_hashPtr(ip1, hlog, mls); + + idx = hashTable[hash0]; + idxBase = idx < prefixStartIndex ? dictBase : base; + + do { + { /* load repcode match for ip[2] */ + U32 const current2 = (U32)(ip2 - base); + U32 const repIndex = current2 - offset_1; + const BYTE* const repBase = repIndex < prefixStartIndex ? dictBase : base; + U32 rval; + if ( ((U32)(prefixStartIndex - repIndex) >= 4) /* intentional underflow */ + & (offset_1 > 0) ) { + rval = MEM_read32(repBase + repIndex); + } else { + rval = MEM_read32(ip2) ^ 1; /* guaranteed to not match. */ } - { const BYTE* const matchEnd = matchIndex < prefixStartIndex ? dictEnd : iend; - const BYTE* const lowMatchPtr = matchIndex < prefixStartIndex ? dictStart : prefixStart; - U32 const offset = current - matchIndex; - size_t mLength = ZSTD_count_2segments(ip+4, match+4, iend, matchEnd, prefixStart) + 4; - while (((ip>anchor) & (match>lowMatchPtr)) && (ip[-1] == match[-1])) { ip--; match--; mLength++; } /* catch up */ - offset_2 = offset_1; offset_1 = offset; /* update offset history */ - ZSTD_storeSeq(seqStore, (size_t)(ip-anchor), anchor, iend, offset + ZSTD_REP_MOVE, mLength-MINMATCH); - ip += mLength; - anchor = ip; + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + /* check repcode at ip[2] */ + if (MEM_read32(ip2) == rval) { + ip0 = ip2; + match0 = repBase + repIndex; + matchEnd = repIndex < prefixStartIndex ? dictEnd : iend; + assert((match0 != prefixStart) & (match0 != dictStart)); + mLength = ip0[-1] == match0[-1]; + ip0 -= mLength; + match0 -= mLength; + offcode = REPCODE1_TO_OFFBASE; + mLength += 4; + goto _match; } } - if (ip <= ilimit) { - /* Fill Table */ - hashTable[ZSTD_hashPtr(base+current+2, hlog, mls)] = current+2; - hashTable[ZSTD_hashPtr(ip-2, hlog, mls)] = (U32)(ip-2-base); - /* check immediate repcode */ - while (ip <= ilimit) { - U32 const current2 = (U32)(ip-base); - U32 const repIndex2 = current2 - offset_2; - const BYTE* const repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; - if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) & (repIndex2 > dictStartIndex)) /* intentional overflow */ - && (MEM_read32(repMatch2) == MEM_read32(ip)) ) { - const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; - size_t const repLength2 = ZSTD_count_2segments(ip+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; - { U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; } /* swap offset_2 <=> offset_1 */ - ZSTD_storeSeq(seqStore, 0 /*litlen*/, anchor, iend, 0 /*offcode*/, repLength2-MINMATCH); - hashTable[ZSTD_hashPtr(ip, hlog, mls)] = current2; - ip += repLength2; - anchor = ip; - continue; - } - break; - } } } + { /* load match for ip[0] */ + U32 const mval = idx >= dictStartIndex ? + MEM_read32(idxBase + idx) : + MEM_read32(ip0) ^ 1; /* guaranteed not to match */ + + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + goto _offset; + } } + + /* lookup ip[1] */ + idx = hashTable[hash1]; + idxBase = idx < prefixStartIndex ? dictBase : base; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip3; + + /* write back hash table entry */ + current0 = (U32)(ip0 - base); + hashTable[hash0] = current0; + + { /* load match for ip[0] */ + U32 const mval = idx >= dictStartIndex ? + MEM_read32(idxBase + idx) : + MEM_read32(ip0) ^ 1; /* guaranteed not to match */ + + /* check match at ip[0] */ + if (MEM_read32(ip0) == mval) { + /* found a match! */ + goto _offset; + } } + + /* lookup ip[1] */ + idx = hashTable[hash1]; + idxBase = idx < prefixStartIndex ? dictBase : base; + + /* hash ip[2] */ + hash0 = hash1; + hash1 = ZSTD_hashPtr(ip2, hlog, mls); + + /* advance to next positions */ + ip0 = ip1; + ip1 = ip2; + ip2 = ip0 + step; + ip3 = ip1 + step; + + /* calculate step */ + if (ip2 >= nextStep) { + step++; + PREFETCH_L1(ip1 + 64); + PREFETCH_L1(ip1 + 128); + nextStep += kStepIncr; + } + } while (ip3 < ilimit); + +_cleanup: + /* Note that there are probably still a couple positions we could search. + * However, it seems to be a meaningful performance hit to try to search + * them. So let's not. */ + + /* If offset_1 started invalid (offsetSaved1 != 0) and became valid (offset_1 != 0), + * rotate saved offsets. See comment in ZSTD_compressBlock_fast_noDict for more context. */ + offsetSaved2 = ((offsetSaved1 != 0) && (offset_1 != 0)) ? offsetSaved1 : offsetSaved2; /* save reps for next block */ - rep[0] = offset_1; - rep[1] = offset_2; + rep[0] = offset_1 ? offset_1 : offsetSaved1; + rep[1] = offset_2 ? offset_2 : offsetSaved2; /* Return the last literals size */ return (size_t)(iend - anchor); + +_offset: /* Requires: ip0, idx, idxBase */ + + /* Compute the offset code. */ + { U32 const offset = current0 - idx; + const BYTE* const lowMatchPtr = idx < prefixStartIndex ? dictStart : prefixStart; + matchEnd = idx < prefixStartIndex ? dictEnd : iend; + match0 = idxBase + idx; + offset_2 = offset_1; + offset_1 = offset; + offcode = OFFSET_TO_OFFBASE(offset); + mLength = 4; + + /* Count the backwards match length. */ + while (((ip0>anchor) & (match0>lowMatchPtr)) && (ip0[-1] == match0[-1])) { + ip0--; + match0--; + mLength++; + } } + +_match: /* Requires: ip0, match0, offcode, matchEnd */ + + /* Count the forward length. */ + assert(matchEnd != 0); + mLength += ZSTD_count_2segments(ip0 + mLength, match0 + mLength, iend, matchEnd, prefixStart); + + ZSTD_storeSeq(seqStore, (size_t)(ip0 - anchor), anchor, iend, offcode, mLength); + + ip0 += mLength; + anchor = ip0; + + /* write next hash table entry */ + if (ip1 < ip0) { + hashTable[hash1] = (U32)(ip1 - base); + } + + /* Fill table and check for immediate repcode. */ + if (ip0 <= ilimit) { + /* Fill Table */ + assert(base+current0+2 > istart); /* check base overflow */ + hashTable[ZSTD_hashPtr(base+current0+2, hlog, mls)] = current0+2; /* here because current+2 could be > iend-8 */ + hashTable[ZSTD_hashPtr(ip0-2, hlog, mls)] = (U32)(ip0-2-base); + + while (ip0 <= ilimit) { + U32 const repIndex2 = (U32)(ip0-base) - offset_2; + const BYTE* const repMatch2 = repIndex2 < prefixStartIndex ? dictBase + repIndex2 : base + repIndex2; + if ( (((U32)((prefixStartIndex-1) - repIndex2) >= 3) & (offset_2 > 0)) /* intentional underflow */ + && (MEM_read32(repMatch2) == MEM_read32(ip0)) ) { + const BYTE* const repEnd2 = repIndex2 < prefixStartIndex ? dictEnd : iend; + size_t const repLength2 = ZSTD_count_2segments(ip0+4, repMatch2+4, iend, repEnd2, prefixStart) + 4; + { U32 const tmpOffset = offset_2; offset_2 = offset_1; offset_1 = tmpOffset; } /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0 /*litlen*/, anchor, iend, REPCODE1_TO_OFFBASE, repLength2); + hashTable[ZSTD_hashPtr(ip0, hlog, mls)] = (U32)(ip0-base); + ip0 += repLength2; + anchor = ip0; + continue; + } + break; + } } + + goto _start; } +ZSTD_GEN_FAST_FN(extDict, 4, 0) +ZSTD_GEN_FAST_FN(extDict, 5, 0) +ZSTD_GEN_FAST_FN(extDict, 6, 0) +ZSTD_GEN_FAST_FN(extDict, 7, 0) size_t ZSTD_compressBlock_fast_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) { U32 const mls = ms->cParams.minMatch; + assert(ms->dictMatchState == NULL); switch(mls) { default: /* includes case 3 */ case 4 : - return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 4); + return ZSTD_compressBlock_fast_extDict_4_0(ms, seqStore, rep, src, srcSize); case 5 : - return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 5); + return ZSTD_compressBlock_fast_extDict_5_0(ms, seqStore, rep, src, srcSize); case 6 : - return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 6); + return ZSTD_compressBlock_fast_extDict_6_0(ms, seqStore, rep, src, srcSize); case 7 : - return ZSTD_compressBlock_fast_extDict_generic(ms, seqStore, rep, src, srcSize, 7); + return ZSTD_compressBlock_fast_extDict_7_0(ms, seqStore, rep, src, srcSize); } } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_lazy.cpp b/src/duckdb/third_party/zstd/compress/zstd_lazy.cpp index af2d3b70..1e915282 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_lazy.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_lazy.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -10,16 +10,25 @@ #include "zstd/compress/zstd_compress_internal.h" #include "zstd/compress/zstd_lazy.h" +#include "zstd/common/bits.h" /* ZSTD_countTrailingZeros64 */ + +namespace duckdb_zstd { + +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) + +#define kLazySkippingStep 8 /*-************************************* * Binary Tree search ***************************************/ -namespace duckdb_zstd { - -static void -ZSTD_updateDUBT(ZSTD_matchState_t* ms, +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_updateDUBT(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend, U32 mls) { @@ -60,11 +69,12 @@ ZSTD_updateDUBT(ZSTD_matchState_t* ms, /** ZSTD_insertDUBT1() : * sort one already inserted but unsorted position - * assumption : current >= btlow == (current - btmask) + * assumption : curr >= btlow == (curr - btmask) * doesn't fail */ -static void -ZSTD_insertDUBT1(ZSTD_matchState_t* ms, - U32 current, const BYTE* inputEnd, +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_insertDUBT1(const ZSTD_matchState_t* ms, + U32 curr, const BYTE* inputEnd, U32 nbCompares, U32 btLow, const ZSTD_dictMode_e dictMode) { @@ -76,41 +86,41 @@ ZSTD_insertDUBT1(ZSTD_matchState_t* ms, const BYTE* const base = ms->window.base; const BYTE* const dictBase = ms->window.dictBase; const U32 dictLimit = ms->window.dictLimit; - const BYTE* const ip = (current>=dictLimit) ? base + current : dictBase + current; - const BYTE* const iend = (current>=dictLimit) ? inputEnd : dictBase + dictLimit; + const BYTE* const ip = (curr>=dictLimit) ? base + curr : dictBase + curr; + const BYTE* const iend = (curr>=dictLimit) ? inputEnd : dictBase + dictLimit; const BYTE* const dictEnd = dictBase + dictLimit; const BYTE* const prefixStart = base + dictLimit; const BYTE* match; - U32* smallerPtr = bt + 2*(current&btMask); + U32* smallerPtr = bt + 2*(curr&btMask); U32* largerPtr = smallerPtr + 1; U32 matchIndex = *smallerPtr; /* this candidate is unsorted : next sorted candidate is reached through *smallerPtr, while *largerPtr contains previous unsorted candidate (which is already saved and can be overwritten) */ U32 dummy32; /* to be nullified at the end */ U32 const windowValid = ms->window.lowLimit; U32 const maxDistance = 1U << cParams->windowLog; - U32 const windowLow = (current - windowValid > maxDistance) ? current - maxDistance : windowValid; + U32 const windowLow = (curr - windowValid > maxDistance) ? curr - maxDistance : windowValid; DEBUGLOG(8, "ZSTD_insertDUBT1(%u) (dictLimit=%u, lowLimit=%u)", - current, dictLimit, windowLow); - assert(current >= btLow); + curr, dictLimit, windowLow); + assert(curr >= btLow); assert(ip < iend); /* condition for ZSTD_count */ - while (nbCompares-- && (matchIndex > windowLow)) { + for (; nbCompares && (matchIndex > windowLow); --nbCompares) { U32* const nextPtr = bt + 2*(matchIndex & btMask); size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ - assert(matchIndex < current); + assert(matchIndex < curr); /* note : all candidates are now supposed sorted, * but it's still possible to have nextPtr[1] == ZSTD_DUBT_UNSORTED_MARK * when a real index has the same value as ZSTD_DUBT_UNSORTED_MARK */ if ( (dictMode != ZSTD_extDict) || (matchIndex+matchLength >= dictLimit) /* both in current segment*/ - || (current < dictLimit) /* both in extDict */) { + || (curr < dictLimit) /* both in extDict */) { const BYTE* const mBase = ( (dictMode != ZSTD_extDict) || (matchIndex+matchLength >= dictLimit)) ? base : dictBase; assert( (matchIndex+matchLength >= dictLimit) /* might be wrong if extDict is incorrectly set to 0 */ - || (current < dictLimit) ); + || (curr < dictLimit) ); match = mBase + matchIndex; matchLength += ZSTD_count(ip+matchLength, match+matchLength, iend); } else { @@ -121,7 +131,7 @@ ZSTD_insertDUBT1(ZSTD_matchState_t* ms, } DEBUGLOG(8, "ZSTD_insertDUBT1: comparing %u with %u : found %u common bytes ", - current, matchIndex, (U32)matchLength); + curr, matchIndex, (U32)matchLength); if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ break; /* drop , to guarantee consistency ; miss a bit of compression, but other solutions can corrupt tree */ @@ -151,9 +161,10 @@ ZSTD_insertDUBT1(ZSTD_matchState_t* ms, } -static size_t -ZSTD_DUBT_findBetterDictMatch ( - ZSTD_matchState_t* ms, +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_DUBT_findBetterDictMatch ( + const ZSTD_matchState_t* ms, const BYTE* const ip, const BYTE* const iend, size_t* offsetPtr, size_t bestLength, @@ -170,7 +181,7 @@ ZSTD_DUBT_findBetterDictMatch ( const BYTE* const base = ms->window.base; const BYTE* const prefixStart = base + ms->window.dictLimit; - U32 const current = (U32)(ip-base); + U32 const curr = (U32)(ip-base); const BYTE* const dictBase = dms->window.base; const BYTE* const dictEnd = dms->window.nextSrc; U32 const dictHighLimit = (U32)(dms->window.nextSrc - dms->window.base); @@ -187,7 +198,7 @@ ZSTD_DUBT_findBetterDictMatch ( (void)dictMode; assert(dictMode == ZSTD_dictMatchState); - while (nbCompares-- && (dictMatchIndex > dictLowLimit)) { + for (; nbCompares && (dictMatchIndex > dictLowLimit); --nbCompares) { U32* const nextPtr = dictBt + 2*(dictMatchIndex & btMask); size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ const BYTE* match = dictBase + dictMatchIndex; @@ -197,10 +208,10 @@ ZSTD_DUBT_findBetterDictMatch ( if (matchLength > bestLength) { U32 matchIndex = dictMatchIndex + dictIndexDelta; - if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(current-matchIndex+1) - ZSTD_highbit32((U32)offsetPtr[0]+1)) ) { + if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(curr-matchIndex+1) - ZSTD_highbit32((U32)offsetPtr[0]+1)) ) { DEBUGLOG(9, "ZSTD_DUBT_findBetterDictMatch(%u) : found better match length %u -> %u and offsetCode %u -> %u (dictMatchIndex %u, matchIndex %u)", - current, (U32)bestLength, (U32)matchLength, (U32)*offsetPtr, ZSTD_REP_MOVE + current - matchIndex, dictMatchIndex, matchIndex); - bestLength = matchLength, *offsetPtr = ZSTD_REP_MOVE + current - matchIndex; + curr, (U32)bestLength, (U32)matchLength, (U32)*offsetPtr, OFFSET_TO_OFFBASE(curr - matchIndex), dictMatchIndex, matchIndex); + bestLength = matchLength, *offsetPtr = OFFSET_TO_OFFBASE(curr - matchIndex); } if (ip+matchLength == iend) { /* reached end of input : ip[matchLength] is not valid, no way to know if it's larger or smaller than match */ break; /* drop, to guarantee consistency (miss a little bit of compression) */ @@ -220,19 +231,20 @@ ZSTD_DUBT_findBetterDictMatch ( } if (bestLength >= MINMATCH) { - U32 const mIndex = current - ((U32)*offsetPtr - ZSTD_REP_MOVE); (void)mIndex; + U32 const mIndex = curr - (U32)OFFBASE_TO_OFFSET(*offsetPtr); (void)mIndex; DEBUGLOG(8, "ZSTD_DUBT_findBetterDictMatch(%u) : found match of length %u and offsetCode %u (pos %u)", - current, (U32)bestLength, (U32)*offsetPtr, mIndex); + curr, (U32)bestLength, (U32)*offsetPtr, mIndex); } return bestLength; } -static size_t -ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, const BYTE* const ip, const BYTE* const iend, - size_t* offsetPtr, + size_t* offBasePtr, U32 const mls, const ZSTD_dictMode_e dictMode) { @@ -243,13 +255,13 @@ ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, U32 matchIndex = hashTable[h]; const BYTE* const base = ms->window.base; - U32 const current = (U32)(ip-base); - U32 const windowLow = ZSTD_getLowestMatchIndex(ms, current, cParams->windowLog); + U32 const curr = (U32)(ip-base); + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, curr, cParams->windowLog); U32* const bt = ms->chainTable; U32 const btLog = cParams->chainLog - 1; U32 const btMask = (1 << btLog) - 1; - U32 const btLow = (btMask >= current) ? 0 : current - btMask; + U32 const btLow = (btMask >= curr) ? 0 : curr - btMask; U32 const unsortLimit = MAX(btLow, windowLow); U32* nextCandidate = bt + 2*(matchIndex&btMask); @@ -258,8 +270,9 @@ ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, U32 nbCandidates = nbCompares; U32 previousCandidate = 0; - DEBUGLOG(7, "ZSTD_DUBT_findBestMatch (%u) ", current); + DEBUGLOG(7, "ZSTD_DUBT_findBestMatch (%u) ", curr); assert(ip <= iend-8); /* required for h calculation */ + assert(dictMode != ZSTD_dedicatedDictSearch); /* reach end of unsorted candidates list */ while ( (matchIndex > unsortLimit) @@ -301,16 +314,16 @@ ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, const U32 dictLimit = ms->window.dictLimit; const BYTE* const dictEnd = dictBase + dictLimit; const BYTE* const prefixStart = base + dictLimit; - U32* smallerPtr = bt + 2*(current&btMask); - U32* largerPtr = bt + 2*(current&btMask) + 1; - U32 matchEndIdx = current + 8 + 1; + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = bt + 2*(curr&btMask) + 1; + U32 matchEndIdx = curr + 8 + 1; U32 dummy32; /* to be nullified at the end */ size_t bestLength = 0; matchIndex = hashTable[h]; - hashTable[h] = current; /* Update Hash Table */ + hashTable[h] = curr; /* Update Hash Table */ - while (nbCompares-- && (matchIndex > windowLow)) { + for (; nbCompares && (matchIndex > windowLow); --nbCompares) { U32* const nextPtr = bt + 2*(matchIndex & btMask); size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ const BYTE* match; @@ -328,8 +341,8 @@ ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, if (matchLength > bestLength) { if (matchLength > matchEndIdx - matchIndex) matchEndIdx = matchIndex + (U32)matchLength; - if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(current-matchIndex+1) - ZSTD_highbit32((U32)offsetPtr[0]+1)) ) - bestLength = matchLength, *offsetPtr = ZSTD_REP_MOVE + current - matchIndex; + if ( (4*(int)(matchLength-bestLength)) > (int)(ZSTD_highbit32(curr - matchIndex + 1) - ZSTD_highbit32((U32)*offBasePtr)) ) + bestLength = matchLength, *offBasePtr = OFFSET_TO_OFFBASE(curr - matchIndex); if (ip+matchLength == iend) { /* equal : no way to know if inf or sup */ if (dictMode == ZSTD_dictMatchState) { nbCompares = 0; /* in addition to avoiding checking any @@ -358,19 +371,20 @@ ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, *smallerPtr = *largerPtr = 0; + assert(nbCompares <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ if (dictMode == ZSTD_dictMatchState && nbCompares) { bestLength = ZSTD_DUBT_findBetterDictMatch( ms, ip, iend, - offsetPtr, bestLength, nbCompares, + offBasePtr, bestLength, nbCompares, mls, dictMode); } - assert(matchEndIdx > current+8); /* ensure nextToUpdate is increased */ + assert(matchEndIdx > curr+8); /* ensure nextToUpdate is increased */ ms->nextToUpdate = matchEndIdx - 8; /* skip repetitive patterns */ if (bestLength >= MINMATCH) { - U32 const mIndex = current - ((U32)*offsetPtr - ZSTD_REP_MOVE); (void)mIndex; + U32 const mIndex = curr - (U32)OFFBASE_TO_OFFSET(*offBasePtr); (void)mIndex; DEBUGLOG(8, "ZSTD_DUBT_findBestMatch(%u) : found match of length %u and offsetCode %u (pos %u)", - current, (U32)bestLength, (U32)*offsetPtr, mIndex); + curr, (U32)bestLength, (U32)*offBasePtr, mIndex); } return bestLength; } @@ -378,69 +392,236 @@ ZSTD_DUBT_findBestMatch(ZSTD_matchState_t* ms, /** ZSTD_BtFindBestMatch() : Tree updater, providing best match */ -FORCE_INLINE_TEMPLATE size_t -ZSTD_BtFindBestMatch( ZSTD_matchState_t* ms, +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_BtFindBestMatch( ZSTD_matchState_t* ms, const BYTE* const ip, const BYTE* const iLimit, - size_t* offsetPtr, + size_t* offBasePtr, const U32 mls /* template */, const ZSTD_dictMode_e dictMode) { DEBUGLOG(7, "ZSTD_BtFindBestMatch"); if (ip < ms->window.base + ms->nextToUpdate) return 0; /* skipped area */ ZSTD_updateDUBT(ms, ip, iLimit, mls); - return ZSTD_DUBT_findBestMatch(ms, ip, iLimit, offsetPtr, mls, dictMode); + return ZSTD_DUBT_findBestMatch(ms, ip, iLimit, offBasePtr, mls, dictMode); } +/*********************************** +* Dedicated dict search +***********************************/ -static size_t -ZSTD_BtFindBestMatch_selectMLS ( ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* const iLimit, - size_t* offsetPtr) +void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip) { - switch(ms->cParams.minMatch) + const BYTE* const base = ms->window.base; + U32 const target = (U32)(ip - base); + U32* const hashTable = ms->hashTable; + U32* const chainTable = ms->chainTable; + U32 const chainSize = 1 << ms->cParams.chainLog; + U32 idx = ms->nextToUpdate; + U32 const minChain = chainSize < target - idx ? target - chainSize : idx; + U32 const bucketSize = 1 << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 const cacheSize = bucketSize - 1; + U32 const chainAttempts = (1 << ms->cParams.searchLog) - cacheSize; + U32 const chainLimit = chainAttempts > 255 ? 255 : chainAttempts; + + /* We know the hashtable is oversized by a factor of `bucketSize`. + * We are going to temporarily pretend `bucketSize == 1`, keeping only a + * single entry. We will use the rest of the space to construct a temporary + * chaintable. + */ + U32 const hashLog = ms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG; + U32* const tmpHashTable = hashTable; + U32* const tmpChainTable = hashTable + ((size_t)1 << hashLog); + U32 const tmpChainSize = (U32)((1 << ZSTD_LAZY_DDSS_BUCKET_LOG) - 1) << hashLog; + U32 const tmpMinChain = tmpChainSize < target ? target - tmpChainSize : idx; + U32 hashIdx; + + assert(ms->cParams.chainLog <= 24); + assert(ms->cParams.hashLog > ms->cParams.chainLog); + assert(idx != 0); + assert(tmpMinChain <= minChain); + + /* fill conventional hash table and conventional chain table */ + for ( ; idx < target; idx++) { + U32 const h = (U32)ZSTD_hashPtr(base + idx, hashLog, ms->cParams.minMatch); + if (idx >= tmpMinChain) { + tmpChainTable[idx - tmpMinChain] = hashTable[h]; + } + tmpHashTable[h] = idx; + } + + /* sort chains into ddss chain table */ { - default : /* includes case 3 */ - case 4 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 4, ZSTD_noDict); - case 5 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 5, ZSTD_noDict); - case 7 : - case 6 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 6, ZSTD_noDict); + U32 chainPos = 0; + for (hashIdx = 0; hashIdx < (1U << hashLog); hashIdx++) { + U32 count; + U32 countBeyondMinChain = 0; + U32 i = tmpHashTable[hashIdx]; + for (count = 0; i >= tmpMinChain && count < cacheSize; count++) { + /* skip through the chain to the first position that won't be + * in the hash cache bucket */ + if (i < minChain) { + countBeyondMinChain++; + } + i = tmpChainTable[i - tmpMinChain]; + } + if (count == cacheSize) { + for (count = 0; count < chainLimit;) { + if (i < minChain) { + if (!i || ++countBeyondMinChain > cacheSize) { + /* only allow pulling `cacheSize` number of entries + * into the cache or chainTable beyond `minChain`, + * to replace the entries pulled out of the + * chainTable into the cache. This lets us reach + * back further without increasing the total number + * of entries in the chainTable, guaranteeing the + * DDSS chain table will fit into the space + * allocated for the regular one. */ + break; + } + } + chainTable[chainPos++] = i; + count++; + if (i < tmpMinChain) { + break; + } + i = tmpChainTable[i - tmpMinChain]; + } + } else { + count = 0; + } + if (count) { + tmpHashTable[hashIdx] = ((chainPos - count) << 8) + count; + } else { + tmpHashTable[hashIdx] = 0; + } + } + assert(chainPos <= chainSize); /* I believe this is guaranteed... */ + } + + /* move chain pointers into the last entry of each hash bucket */ + for (hashIdx = (1 << hashLog); hashIdx; ) { + U32 const bucketIdx = --hashIdx << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 const chainPackedPointer = tmpHashTable[hashIdx]; + U32 i; + for (i = 0; i < cacheSize; i++) { + hashTable[bucketIdx + i] = 0; + } + hashTable[bucketIdx + bucketSize - 1] = chainPackedPointer; + } + + /* fill the buckets of the hash table */ + for (idx = ms->nextToUpdate; idx < target; idx++) { + U32 const h = (U32)ZSTD_hashPtr(base + idx, hashLog, ms->cParams.minMatch) + << ZSTD_LAZY_DDSS_BUCKET_LOG; + U32 i; + /* Shift hash cache down 1. */ + for (i = cacheSize - 1; i; i--) + hashTable[h + i] = hashTable[h + i - 1]; + hashTable[h] = idx; } + + ms->nextToUpdate = target; } +/* Returns the longest match length found in the dedicated dict search structure. + * If none are longer than the argument ml, then ml will be returned. + */ +FORCE_INLINE_TEMPLATE +size_t ZSTD_dedicatedDictSearch_lazy_search(size_t* offsetPtr, size_t ml, U32 nbAttempts, + const ZSTD_matchState_t* const dms, + const BYTE* const ip, const BYTE* const iLimit, + const BYTE* const prefixStart, const U32 curr, + const U32 dictLimit, const size_t ddsIdx) { + const U32 ddsLowestIndex = dms->window.dictLimit; + const BYTE* const ddsBase = dms->window.base; + const BYTE* const ddsEnd = dms->window.nextSrc; + const U32 ddsSize = (U32)(ddsEnd - ddsBase); + const U32 ddsIndexDelta = dictLimit - ddsSize; + const U32 bucketSize = (1 << ZSTD_LAZY_DDSS_BUCKET_LOG); + const U32 bucketLimit = nbAttempts < bucketSize - 1 ? nbAttempts : bucketSize - 1; + U32 ddsAttempt; + U32 matchIndex; + + for (ddsAttempt = 0; ddsAttempt < bucketSize - 1; ddsAttempt++) { + PREFETCH_L1(ddsBase + dms->hashTable[ddsIdx + ddsAttempt]); + } -static size_t ZSTD_BtFindBestMatch_dictMatchState_selectMLS ( - ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* const iLimit, - size_t* offsetPtr) -{ - switch(ms->cParams.minMatch) { - default : /* includes case 3 */ - case 4 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 4, ZSTD_dictMatchState); - case 5 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 5, ZSTD_dictMatchState); - case 7 : - case 6 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 6, ZSTD_dictMatchState); + U32 const chainPackedPointer = dms->hashTable[ddsIdx + bucketSize - 1]; + U32 const chainIndex = chainPackedPointer >> 8; + + PREFETCH_L1(&dms->chainTable[chainIndex]); } -} + for (ddsAttempt = 0; ddsAttempt < bucketLimit; ddsAttempt++) { + size_t currentMl=0; + const BYTE* match; + matchIndex = dms->hashTable[ddsIdx + ddsAttempt]; + match = ddsBase + matchIndex; + + if (!matchIndex) { + return ml; + } + + /* guaranteed by table construction */ + (void)ddsLowestIndex; + assert(matchIndex >= ddsLowestIndex); + assert(match+4 <= ddsEnd); + if (MEM_read32(match) == MEM_read32(ip)) { + /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, ddsEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + ddsIndexDelta)); + if (ip+currentMl == iLimit) { + /* best possible, avoids read overflow on next attempt */ + return ml; + } + } + } -static size_t ZSTD_BtFindBestMatch_extDict_selectMLS ( - ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* const iLimit, - size_t* offsetPtr) -{ - switch(ms->cParams.minMatch) { - default : /* includes case 3 */ - case 4 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 4, ZSTD_extDict); - case 5 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 5, ZSTD_extDict); - case 7 : - case 6 : return ZSTD_BtFindBestMatch(ms, ip, iLimit, offsetPtr, 6, ZSTD_extDict); + U32 const chainPackedPointer = dms->hashTable[ddsIdx + bucketSize - 1]; + U32 chainIndex = chainPackedPointer >> 8; + U32 const chainLength = chainPackedPointer & 0xFF; + U32 const chainAttempts = nbAttempts - ddsAttempt; + U32 const chainLimit = chainAttempts > chainLength ? chainLength : chainAttempts; + U32 chainAttempt; + + for (chainAttempt = 0 ; chainAttempt < chainLimit; chainAttempt++) { + PREFETCH_L1(ddsBase + dms->chainTable[chainIndex + chainAttempt]); + } + + for (chainAttempt = 0 ; chainAttempt < chainLimit; chainAttempt++, chainIndex++) { + size_t currentMl=0; + const BYTE* match; + matchIndex = dms->chainTable[chainIndex]; + match = ddsBase + matchIndex; + + /* guaranteed by table construction */ + assert(matchIndex >= ddsLowestIndex); + assert(match+4 <= ddsEnd); + if (MEM_read32(match) == MEM_read32(ip)) { + /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, ddsEnd, prefixStart) + 4; + } + + /* save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + ddsIndexDelta)); + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + } } + return ml; } - /* ********************************* * Hash Chain ***********************************/ @@ -448,10 +629,12 @@ static size_t ZSTD_BtFindBestMatch_extDict_selectMLS ( /* Update chains up to ip (excluded) Assumption : always within prefix (i.e. not within extDict) */ -static U32 ZSTD_insertAndFindFirstIndex_internal( +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_insertAndFindFirstIndex_internal( ZSTD_matchState_t* ms, const ZSTD_compressionParameters* const cParams, - const BYTE* ip, U32 const mls) + const BYTE* ip, U32 const mls, U32 const lazySkipping) { U32* const hashTable = ms->hashTable; const U32 hashLog = cParams->hashLog; @@ -466,6 +649,9 @@ static U32 ZSTD_insertAndFindFirstIndex_internal( NEXT_IN_CHAIN(idx, chainMask) = hashTable[h]; hashTable[h] = idx; idx++; + /* Stop inserting every position when in the lazy skipping mode. */ + if (lazySkipping) + break; } ms->nextToUpdate = target; @@ -474,13 +660,13 @@ static U32 ZSTD_insertAndFindFirstIndex_internal( U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip) { const ZSTD_compressionParameters* const cParams = &ms->cParams; - return ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, ms->cParams.minMatch); + return ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, ms->cParams.minMatch, /* lazySkipping*/ 0); } - /* inlining is important to hardwire a hot branch (template emulation) */ FORCE_INLINE_TEMPLATE -size_t ZSTD_HcFindBestMatch_generic ( +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_HcFindBestMatch( ZSTD_matchState_t* ms, const BYTE* const ip, const BYTE* const iLimit, size_t* offsetPtr, @@ -495,25 +681,39 @@ size_t ZSTD_HcFindBestMatch_generic ( const U32 dictLimit = ms->window.dictLimit; const BYTE* const prefixStart = base + dictLimit; const BYTE* const dictEnd = dictBase + dictLimit; - const U32 current = (U32)(ip-base); + const U32 curr = (U32)(ip-base); const U32 maxDistance = 1U << cParams->windowLog; const U32 lowestValid = ms->window.lowLimit; - const U32 withinMaxDistance = (current - lowestValid > maxDistance) ? current - maxDistance : lowestValid; + const U32 withinMaxDistance = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; const U32 isDictionary = (ms->loadedDictEnd != 0); const U32 lowLimit = isDictionary ? lowestValid : withinMaxDistance; - const U32 minChain = current > chainSize ? current - chainSize : 0; + const U32 minChain = curr > chainSize ? curr - chainSize : 0; U32 nbAttempts = 1U << cParams->searchLog; size_t ml=4-1; + const ZSTD_matchState_t* const dms = ms->dictMatchState; + const U32 ddsHashLog = dictMode == ZSTD_dedicatedDictSearch + ? dms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG : 0; + const size_t ddsIdx = dictMode == ZSTD_dedicatedDictSearch + ? ZSTD_hashPtr(ip, ddsHashLog, mls) << ZSTD_LAZY_DDSS_BUCKET_LOG : 0; + + U32 matchIndex; + + if (dictMode == ZSTD_dedicatedDictSearch) { + const U32* entry = &dms->hashTable[ddsIdx]; + PREFETCH_L1(entry); + } + /* HC4 match finder */ - U32 matchIndex = ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, mls); + matchIndex = ZSTD_insertAndFindFirstIndex_internal(ms, cParams, ip, mls, ms->lazySkipping); - for ( ; (matchIndex>lowLimit) & (nbAttempts>0) ; nbAttempts--) { + for ( ; (matchIndex>=lowLimit) & (nbAttempts>0) ; nbAttempts--) { size_t currentMl=0; if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { const BYTE* const match = base + matchIndex; assert(matchIndex >= dictLimit); /* ensures this is true if dictMode != ZSTD_extDict */ - if (match[ml] == ip[ml]) /* potentially better */ + /* read 4B starting from (match + ml + 1 - sizeof(U32)) */ + if (MEM_read32(match + ml - 3) == MEM_read32(ip + ml - 3)) /* potentially better */ currentMl = ZSTD_count(ip, match, iLimit); } else { const BYTE* const match = dictBase + matchIndex; @@ -525,7 +725,7 @@ size_t ZSTD_HcFindBestMatch_generic ( /* save best solution */ if (currentMl > ml) { ml = currentMl; - *offsetPtr = current - matchIndex + ZSTD_REP_MOVE; + *offsetPtr = OFFSET_TO_OFFBASE(curr - matchIndex); if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ } @@ -533,8 +733,11 @@ size_t ZSTD_HcFindBestMatch_generic ( matchIndex = NEXT_IN_CHAIN(matchIndex, chainMask); } - if (dictMode == ZSTD_dictMatchState) { - const ZSTD_matchState_t* const dms = ms->dictMatchState; + assert(nbAttempts <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ + if (dictMode == ZSTD_dedicatedDictSearch) { + ml = ZSTD_dedicatedDictSearch_lazy_search(offsetPtr, ml, nbAttempts, dms, + ip, iLimit, prefixStart, curr, dictLimit, ddsIdx); + } else if (dictMode == ZSTD_dictMatchState) { const U32* const dmsChainTable = dms->chainTable; const U32 dmsChainSize = (1 << dms->cParams.chainLog); const U32 dmsChainMask = dmsChainSize - 1; @@ -547,7 +750,7 @@ size_t ZSTD_HcFindBestMatch_generic ( matchIndex = dms->hashTable[ZSTD_hashPtr(ip, dms->cParams.hashLog, mls)]; - for ( ; (matchIndex>dmsLowestIndex) & (nbAttempts>0) ; nbAttempts--) { + for ( ; (matchIndex>=dmsLowestIndex) & (nbAttempts>0) ; nbAttempts--) { size_t currentMl=0; const BYTE* const match = dmsBase + matchIndex; assert(match+4 <= dmsEnd); @@ -557,11 +760,13 @@ size_t ZSTD_HcFindBestMatch_generic ( /* save best solution */ if (currentMl > ml) { ml = currentMl; - *offsetPtr = current - (matchIndex + dmsIndexDelta) + ZSTD_REP_MOVE; + assert(curr > matchIndex + dmsIndexDelta); + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + dmsIndexDelta)); if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ } if (matchIndex <= dmsMinChain) break; + matchIndex = dmsChainTable[matchIndex & dmsChainMask]; } } @@ -569,62 +774,748 @@ size_t ZSTD_HcFindBestMatch_generic ( return ml; } +/* ********************************* +* (SIMD) Row-based matchfinder +***********************************/ +/* Constants for row-based hash */ +#define ZSTD_ROW_HASH_TAG_MASK ((1u << ZSTD_ROW_HASH_TAG_BITS) - 1) +#define ZSTD_ROW_HASH_MAX_ENTRIES 64 /* absolute maximum number of entries per row, for all configurations */ -FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_selectMLS ( - ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* const iLimit, - size_t* offsetPtr) +#define ZSTD_ROW_HASH_CACHE_MASK (ZSTD_ROW_HASH_CACHE_SIZE - 1) + +typedef U64 ZSTD_VecMask; /* Clarifies when we are interacting with a U64 representing a mask of matches */ + +/* ZSTD_VecMask_next(): + * Starting from the LSB, returns the idx of the next non-zero bit. + * Basically counting the nb of trailing zeroes. + */ +MEM_STATIC U32 ZSTD_VecMask_next(ZSTD_VecMask val) { + return ZSTD_countTrailingZeros64(val); +} + +/* ZSTD_row_nextIndex(): + * Returns the next index to insert at within a tagTable row, and updates the "head" + * value to reflect the update. Essentially cycles backwards from [1, {entries per row}) + */ +FORCE_INLINE_TEMPLATE U32 ZSTD_row_nextIndex(BYTE* const tagRow, U32 const rowMask) { + U32 next = (*tagRow-1) & rowMask; + next += (next == 0) ? rowMask : 0; /* skip first position */ + *tagRow = (BYTE)next; + return next; +} + +/* ZSTD_isAligned(): + * Checks that a pointer is aligned to "align" bytes which must be a power of 2. + */ +MEM_STATIC int ZSTD_isAligned(void const* ptr, size_t align) { + assert((align & (align - 1)) == 0); + return (((size_t)ptr) & (align - 1)) == 0; +} + +/* ZSTD_row_prefetch(): + * Performs prefetching for the hashTable and tagTable at a given row. + */ +FORCE_INLINE_TEMPLATE void ZSTD_row_prefetch(U32 const* hashTable, BYTE const* tagTable, U32 const relRow, U32 const rowLog) { + PREFETCH_L1(hashTable + relRow); + if (rowLog >= 5) { + PREFETCH_L1(hashTable + relRow + 16); + /* Note: prefetching more of the hash table does not appear to be beneficial for 128-entry rows */ + } + PREFETCH_L1(tagTable + relRow); + if (rowLog == 6) { + PREFETCH_L1(tagTable + relRow + 32); + } + assert(rowLog == 4 || rowLog == 5 || rowLog == 6); + assert(ZSTD_isAligned(hashTable + relRow, 64)); /* prefetched hash row always 64-byte aligned */ + assert(ZSTD_isAligned(tagTable + relRow, (size_t)1 << rowLog)); /* prefetched tagRow sits on correct multiple of bytes (32,64,128) */ +} + +/* ZSTD_row_fillHashCache(): + * Fill up the hash cache starting at idx, prefetching up to ZSTD_ROW_HASH_CACHE_SIZE entries, + * but not beyond iLimit. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_row_fillHashCache(ZSTD_matchState_t* ms, const BYTE* base, + U32 const rowLog, U32 const mls, + U32 idx, const BYTE* const iLimit) { - switch(ms->cParams.minMatch) - { - default : /* includes case 3 */ - case 4 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, ZSTD_noDict); - case 5 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, ZSTD_noDict); - case 7 : - case 6 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, ZSTD_noDict); + U32 const* const hashTable = ms->hashTable; + BYTE const* const tagTable = ms->tagTable; + U32 const hashLog = ms->rowHashLog; + U32 const maxElemsToPrefetch = (base + idx) > iLimit ? 0 : (U32)(iLimit - (base + idx) + 1); + U32 const lim = idx + MIN(ZSTD_ROW_HASH_CACHE_SIZE, maxElemsToPrefetch); + + for (; idx < lim; ++idx) { + U32 const hash = (U32)ZSTD_hashPtrSalted(base + idx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, ms->hashSalt); + U32 const row = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + ZSTD_row_prefetch(hashTable, tagTable, row, rowLog); + ms->hashCache[idx & ZSTD_ROW_HASH_CACHE_MASK] = hash; } + + DEBUGLOG(6, "ZSTD_row_fillHashCache(): [%u %u %u %u %u %u %u %u]", ms->hashCache[0], ms->hashCache[1], + ms->hashCache[2], ms->hashCache[3], ms->hashCache[4], + ms->hashCache[5], ms->hashCache[6], ms->hashCache[7]); } +/* ZSTD_row_nextCachedHash(): + * Returns the hash of base + idx, and replaces the hash in the hash cache with the byte at + * base + idx + ZSTD_ROW_HASH_CACHE_SIZE. Also prefetches the appropriate rows from hashTable and tagTable. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_row_nextCachedHash(U32* cache, U32 const* hashTable, + BYTE const* tagTable, BYTE const* base, + U32 idx, U32 const hashLog, + U32 const rowLog, U32 const mls, + U64 const hashSalt) +{ + U32 const newHash = (U32)ZSTD_hashPtrSalted(base+idx+ZSTD_ROW_HASH_CACHE_SIZE, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, hashSalt); + U32 const row = (newHash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + ZSTD_row_prefetch(hashTable, tagTable, row, rowLog); + { U32 const hash = cache[idx & ZSTD_ROW_HASH_CACHE_MASK]; + cache[idx & ZSTD_ROW_HASH_CACHE_MASK] = newHash; + return hash; + } +} -static size_t ZSTD_HcFindBestMatch_dictMatchState_selectMLS ( - ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* const iLimit, - size_t* offsetPtr) +/* ZSTD_row_update_internalImpl(): + * Updates the hash table with positions starting from updateStartIdx until updateEndIdx. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_row_update_internalImpl(ZSTD_matchState_t* ms, + U32 updateStartIdx, U32 const updateEndIdx, + U32 const mls, U32 const rowLog, + U32 const rowMask, U32 const useCache) { - switch(ms->cParams.minMatch) - { - default : /* includes case 3 */ - case 4 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, ZSTD_dictMatchState); - case 5 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, ZSTD_dictMatchState); - case 7 : - case 6 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, ZSTD_dictMatchState); + U32* const hashTable = ms->hashTable; + BYTE* const tagTable = ms->tagTable; + U32 const hashLog = ms->rowHashLog; + const BYTE* const base = ms->window.base; + + DEBUGLOG(6, "ZSTD_row_update_internalImpl(): updateStartIdx=%u, updateEndIdx=%u", updateStartIdx, updateEndIdx); + for (; updateStartIdx < updateEndIdx; ++updateStartIdx) { + U32 const hash = useCache ? ZSTD_row_nextCachedHash(ms->hashCache, hashTable, tagTable, base, updateStartIdx, hashLog, rowLog, mls, ms->hashSalt) + : (U32)ZSTD_hashPtrSalted(base + updateStartIdx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, ms->hashSalt); + U32 const relRow = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + U32* const row = hashTable + relRow; + BYTE* tagRow = tagTable + relRow; + U32 const pos = ZSTD_row_nextIndex(tagRow, rowMask); + + assert(hash == ZSTD_hashPtrSalted(base + updateStartIdx, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, ms->hashSalt)); + tagRow[pos] = hash & ZSTD_ROW_HASH_TAG_MASK; + row[pos] = updateStartIdx; } } +/* ZSTD_row_update_internal(): + * Inserts the byte at ip into the appropriate position in the hash table, and updates ms->nextToUpdate. + * Skips sections of long matches as is necessary. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_row_update_internal(ZSTD_matchState_t* ms, const BYTE* ip, + U32 const mls, U32 const rowLog, + U32 const rowMask, U32 const useCache) +{ + U32 idx = ms->nextToUpdate; + const BYTE* const base = ms->window.base; + const U32 target = (U32)(ip - base); + const U32 kSkipThreshold = 384; + const U32 kMaxMatchStartPositionsToUpdate = 96; + const U32 kMaxMatchEndPositionsToUpdate = 32; + + if (useCache) { + /* Only skip positions when using hash cache, i.e. + * if we are loading a dict, don't skip anything. + * If we decide to skip, then we only update a set number + * of positions at the beginning and end of the match. + */ + if (UNLIKELY(target - idx > kSkipThreshold)) { + U32 const bound = idx + kMaxMatchStartPositionsToUpdate; + ZSTD_row_update_internalImpl(ms, idx, bound, mls, rowLog, rowMask, useCache); + idx = target - kMaxMatchEndPositionsToUpdate; + ZSTD_row_fillHashCache(ms, base, rowLog, mls, idx, ip+1); + } + } + assert(target >= idx); + ZSTD_row_update_internalImpl(ms, idx, target, mls, rowLog, rowMask, useCache); + ms->nextToUpdate = target; +} + +/* ZSTD_row_update(): + * External wrapper for ZSTD_row_update_internal(). Used for filling the hashtable during dictionary + * processing. + */ +void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip) { + const U32 rowLog = BOUNDED(4, ms->cParams.searchLog, 6); + const U32 rowMask = (1u << rowLog) - 1; + const U32 mls = MIN(ms->cParams.minMatch, 6 /* mls caps out at 6 */); + + DEBUGLOG(5, "ZSTD_row_update(), rowLog=%u", rowLog); + ZSTD_row_update_internal(ms, ip, mls, rowLog, rowMask, 0 /* don't use cache */); +} + +/* Returns the mask width of bits group of which will be set to 1. Given not all + * architectures have easy movemask instruction, this helps to iterate over + * groups of bits easier and faster. + */ +FORCE_INLINE_TEMPLATE U32 +ZSTD_row_matchMaskGroupWidth(const U32 rowEntries) +{ + assert((rowEntries == 16) || (rowEntries == 32) || rowEntries == 64); + assert(rowEntries <= ZSTD_ROW_HASH_MAX_ENTRIES); + (void)rowEntries; +#if defined(ZSTD_ARCH_ARM_NEON) + /* NEON path only works for little endian */ + if (!MEM_isLittleEndian()) { + return 1; + } + if (rowEntries == 16) { + return 4; + } + if (rowEntries == 32) { + return 2; + } + if (rowEntries == 64) { + return 1; + } +#endif + return 1; +} -FORCE_INLINE_TEMPLATE size_t ZSTD_HcFindBestMatch_extDict_selectMLS ( +#if defined(ZSTD_ARCH_X86_SSE2) +FORCE_INLINE_TEMPLATE ZSTD_VecMask +ZSTD_row_getSSEMask(int nbChunks, const BYTE* const src, const BYTE tag, const U32 head) +{ + const __m128i comparisonMask = _mm_set1_epi8((char)tag); + int matches[4] = {0}; + int i; + assert(nbChunks == 1 || nbChunks == 2 || nbChunks == 4); + for (i=0; i> chunkSize; + do { + size_t chunk = MEM_readST(&src[i]); + chunk ^= splatChar; + chunk = (((chunk | x80) - x01) | chunk) & x80; + matches <<= chunkSize; + matches |= (chunk * extractMagic) >> shiftAmount; + i -= chunkSize; + } while (i >= 0); + } else { /* big endian: reverse bits during extraction */ + const size_t msb = xFF ^ (xFF >> 1); + const size_t extractMagic = (msb / 0x1FF) | msb; + do { + size_t chunk = MEM_readST(&src[i]); + chunk ^= splatChar; + chunk = (((chunk | x80) - x01) | chunk) & x80; + matches <<= chunkSize; + matches |= ((chunk >> 7) * extractMagic) >> shiftAmount; + i -= chunkSize; + } while (i >= 0); + } + matches = ~matches; + if (rowEntries == 16) { + return ZSTD_rotateRight_U16((U16)matches, headGrouped); + } else if (rowEntries == 32) { + return ZSTD_rotateRight_U32((U32)matches, headGrouped); + } else { + return ZSTD_rotateRight_U64((U64)matches, headGrouped); + } + } +#endif +} + +/* The high-level approach of the SIMD row based match finder is as follows: + * - Figure out where to insert the new entry: + * - Generate a hash for current input posistion and split it into a one byte of tag and `rowHashLog` bits of index. + * - The hash is salted by a value that changes on every contex reset, so when the same table is used + * we will avoid collisions that would otherwise slow us down by intorducing phantom matches. + * - The hashTable is effectively split into groups or "rows" of 15 or 31 entries of U32, and the index determines + * which row to insert into. + * - Determine the correct position within the row to insert the entry into. Each row of 15 or 31 can + * be considered as a circular buffer with a "head" index that resides in the tagTable (overall 16 or 32 bytes + * per row). + * - Use SIMD to efficiently compare the tags in the tagTable to the 1-byte tag calculated for the position and + * generate a bitfield that we can cycle through to check the collisions in the hash table. + * - Pick the longest match. + * - Insert the tag into the equivalent row and position in the tagTable. + */ +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_RowFindBestMatch( ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* const iLimit, - size_t* offsetPtr) + const BYTE* const ip, const BYTE* const iLimit, + size_t* offsetPtr, + const U32 mls, const ZSTD_dictMode_e dictMode, + const U32 rowLog) { - switch(ms->cParams.minMatch) - { - default : /* includes case 3 */ - case 4 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 4, ZSTD_extDict); - case 5 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 5, ZSTD_extDict); - case 7 : - case 6 : return ZSTD_HcFindBestMatch_generic(ms, ip, iLimit, offsetPtr, 6, ZSTD_extDict); + U32* const hashTable = ms->hashTable; + BYTE* const tagTable = ms->tagTable; + U32* const hashCache = ms->hashCache; + const U32 hashLog = ms->rowHashLog; + const ZSTD_compressionParameters* const cParams = &ms->cParams; + const BYTE* const base = ms->window.base; + const BYTE* const dictBase = ms->window.dictBase; + const U32 dictLimit = ms->window.dictLimit; + const BYTE* const prefixStart = base + dictLimit; + const BYTE* const dictEnd = dictBase + dictLimit; + const U32 curr = (U32)(ip-base); + const U32 maxDistance = 1U << cParams->windowLog; + const U32 lowestValid = ms->window.lowLimit; + const U32 withinMaxDistance = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + const U32 isDictionary = (ms->loadedDictEnd != 0); + const U32 lowLimit = isDictionary ? lowestValid : withinMaxDistance; + const U32 rowEntries = (1U << rowLog); + const U32 rowMask = rowEntries - 1; + const U32 cappedSearchLog = MIN(cParams->searchLog, rowLog); /* nb of searches is capped at nb entries per row */ + const U32 groupWidth = ZSTD_row_matchMaskGroupWidth(rowEntries); + const U64 hashSalt = ms->hashSalt; + U32 nbAttempts = 1U << cappedSearchLog; + size_t ml=4-1; + U32 hash; + + /* DMS/DDS variables that may be referenced laster */ + const ZSTD_matchState_t* const dms = ms->dictMatchState; + + /* Initialize the following variables to satisfy static analyzer */ + size_t ddsIdx = 0; + U32 ddsExtraAttempts = 0; /* cctx hash tables are limited in searches, but allow extra searches into DDS */ + U32 dmsTag = 0; + U32* dmsRow = NULL; + BYTE* dmsTagRow = NULL; + + if (dictMode == ZSTD_dedicatedDictSearch) { + const U32 ddsHashLog = dms->cParams.hashLog - ZSTD_LAZY_DDSS_BUCKET_LOG; + { /* Prefetch DDS hashtable entry */ + ddsIdx = ZSTD_hashPtr(ip, ddsHashLog, mls) << ZSTD_LAZY_DDSS_BUCKET_LOG; + PREFETCH_L1(&dms->hashTable[ddsIdx]); + } + ddsExtraAttempts = cParams->searchLog > rowLog ? 1U << (cParams->searchLog - rowLog) : 0; } + + if (dictMode == ZSTD_dictMatchState) { + /* Prefetch DMS rows */ + U32* const dmsHashTable = dms->hashTable; + BYTE* const dmsTagTable = dms->tagTable; + U32 const dmsHash = (U32)ZSTD_hashPtr(ip, dms->rowHashLog + ZSTD_ROW_HASH_TAG_BITS, mls); + U32 const dmsRelRow = (dmsHash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + dmsTag = dmsHash & ZSTD_ROW_HASH_TAG_MASK; + dmsTagRow = (BYTE*)(dmsTagTable + dmsRelRow); + dmsRow = dmsHashTable + dmsRelRow; + ZSTD_row_prefetch(dmsHashTable, dmsTagTable, dmsRelRow, rowLog); + } + + /* Update the hashTable and tagTable up to (but not including) ip */ + if (!ms->lazySkipping) { + ZSTD_row_update_internal(ms, ip, mls, rowLog, rowMask, 1 /* useCache */); + hash = ZSTD_row_nextCachedHash(hashCache, hashTable, tagTable, base, curr, hashLog, rowLog, mls, hashSalt); + } else { + /* Stop inserting every position when in the lazy skipping mode. + * The hash cache is also not kept up to date in this mode. + */ + hash = (U32)ZSTD_hashPtrSalted(ip, hashLog + ZSTD_ROW_HASH_TAG_BITS, mls, hashSalt); + ms->nextToUpdate = curr; + } + ms->hashSaltEntropy += hash; /* collect salt entropy */ + + { /* Get the hash for ip, compute the appropriate row */ + U32 const relRow = (hash >> ZSTD_ROW_HASH_TAG_BITS) << rowLog; + U32 const tag = hash & ZSTD_ROW_HASH_TAG_MASK; + U32* const row = hashTable + relRow; + BYTE* tagRow = (BYTE*)(tagTable + relRow); + U32 const headGrouped = (*tagRow & rowMask) * groupWidth; + U32 matchBuffer[ZSTD_ROW_HASH_MAX_ENTRIES]; + size_t numMatches = 0; + size_t currMatch = 0; + ZSTD_VecMask matches = ZSTD_row_getMatchMask(tagRow, (BYTE)tag, headGrouped, rowEntries); + + /* Cycle through the matches and prefetch */ + for (; (matches > 0) && (nbAttempts > 0); matches &= (matches - 1)) { + U32 const matchPos = ((headGrouped + ZSTD_VecMask_next(matches)) / groupWidth) & rowMask; + U32 const matchIndex = row[matchPos]; + if(matchPos == 0) continue; + assert(numMatches < rowEntries); + if (matchIndex < lowLimit) + break; + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + PREFETCH_L1(base + matchIndex); + } else { + PREFETCH_L1(dictBase + matchIndex); + } + matchBuffer[numMatches++] = matchIndex; + --nbAttempts; + } + + /* Speed opt: insert current byte into hashtable too. This allows us to avoid one iteration of the loop + in ZSTD_row_update_internal() at the next search. */ + { + U32 const pos = ZSTD_row_nextIndex(tagRow, rowMask); + tagRow[pos] = (BYTE)tag; + row[pos] = ms->nextToUpdate++; + } + + /* Return the longest match */ + for (; currMatch < numMatches; ++currMatch) { + U32 const matchIndex = matchBuffer[currMatch]; + size_t currentMl=0; + assert(matchIndex < curr); + assert(matchIndex >= lowLimit); + + if ((dictMode != ZSTD_extDict) || matchIndex >= dictLimit) { + const BYTE* const match = base + matchIndex; + assert(matchIndex >= dictLimit); /* ensures this is true if dictMode != ZSTD_extDict */ + /* read 4B starting from (match + ml + 1 - sizeof(U32)) */ + if (MEM_read32(match + ml - 3) == MEM_read32(ip + ml - 3)) /* potentially better */ + currentMl = ZSTD_count(ip, match, iLimit); + } else { + const BYTE* const match = dictBase + matchIndex; + assert(match+4 <= dictEnd); + if (MEM_read32(match) == MEM_read32(ip)) /* assumption : matchIndex <= dictLimit-4 (by table construction) */ + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dictEnd, prefixStart) + 4; + } + + /* Save best solution */ + if (currentMl > ml) { + ml = currentMl; + *offsetPtr = OFFSET_TO_OFFBASE(curr - matchIndex); + if (ip+currentMl == iLimit) break; /* best possible, avoids read overflow on next attempt */ + } + } + } + + assert(nbAttempts <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ + if (dictMode == ZSTD_dedicatedDictSearch) { + ml = ZSTD_dedicatedDictSearch_lazy_search(offsetPtr, ml, nbAttempts + ddsExtraAttempts, dms, + ip, iLimit, prefixStart, curr, dictLimit, ddsIdx); + } else if (dictMode == ZSTD_dictMatchState) { + /* TODO: Measure and potentially add prefetching to DMS */ + const U32 dmsLowestIndex = dms->window.dictLimit; + const BYTE* const dmsBase = dms->window.base; + const BYTE* const dmsEnd = dms->window.nextSrc; + const U32 dmsSize = (U32)(dmsEnd - dmsBase); + const U32 dmsIndexDelta = dictLimit - dmsSize; + + { U32 const headGrouped = (*dmsTagRow & rowMask) * groupWidth; + U32 matchBuffer[ZSTD_ROW_HASH_MAX_ENTRIES]; + size_t numMatches = 0; + size_t currMatch = 0; + ZSTD_VecMask matches = ZSTD_row_getMatchMask(dmsTagRow, (BYTE)dmsTag, headGrouped, rowEntries); + + for (; (matches > 0) && (nbAttempts > 0); matches &= (matches - 1)) { + U32 const matchPos = ((headGrouped + ZSTD_VecMask_next(matches)) / groupWidth) & rowMask; + U32 const matchIndex = dmsRow[matchPos]; + if(matchPos == 0) continue; + if (matchIndex < dmsLowestIndex) + break; + PREFETCH_L1(dmsBase + matchIndex); + matchBuffer[numMatches++] = matchIndex; + --nbAttempts; + } + + /* Return the longest match */ + for (; currMatch < numMatches; ++currMatch) { + U32 const matchIndex = matchBuffer[currMatch]; + size_t currentMl=0; + assert(matchIndex >= dmsLowestIndex); + assert(matchIndex < curr); + + { const BYTE* const match = dmsBase + matchIndex; + assert(match+4 <= dmsEnd); + if (MEM_read32(match) == MEM_read32(ip)) + currentMl = ZSTD_count_2segments(ip+4, match+4, iLimit, dmsEnd, prefixStart) + 4; + } + + if (currentMl > ml) { + ml = currentMl; + assert(curr > matchIndex + dmsIndexDelta); + *offsetPtr = OFFSET_TO_OFFBASE(curr - (matchIndex + dmsIndexDelta)); + if (ip+currentMl == iLimit) break; + } + } + } + } + return ml; } +/** + * Generate search functions templated on (dictMode, mls, rowLog). + * These functions are outlined for code size & compilation time. + * ZSTD_searchMax() dispatches to the correct implementation function. + * + * TODO: The start of the search function involves loading and calculating a + * bunch of constants from the ZSTD_matchState_t. These computations could be + * done in an initialization function, and saved somewhere in the match state. + * Then we could pass a pointer to the saved state instead of the match state, + * and avoid duplicate computations. + * + * TODO: Move the match re-winding into searchMax. This improves compression + * ratio, and unlocks further simplifications with the next TODO. + * + * TODO: Try moving the repcode search into searchMax. After the re-winding + * and repcode search are in searchMax, there is no more logic in the match + * finder loop that requires knowledge about the dictMode. So we should be + * able to avoid force inlining it, and we can join the extDict loop with + * the single segment loop. It should go in searchMax instead of its own + * function to avoid having multiple virtual function calls per search. + */ + +#define ZSTD_BT_SEARCH_FN(dictMode, mls) ZSTD_BtFindBestMatch_##dictMode##_##mls +#define ZSTD_HC_SEARCH_FN(dictMode, mls) ZSTD_HcFindBestMatch_##dictMode##_##mls +#define ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog) ZSTD_RowFindBestMatch_##dictMode##_##mls##_##rowLog + +#define ZSTD_SEARCH_FN_ATTRS FORCE_NOINLINE + +#define GEN_ZSTD_BT_SEARCH_FN(dictMode, mls) \ + ZSTD_SEARCH_FN_ATTRS size_t ZSTD_BT_SEARCH_FN(dictMode, mls)( \ + ZSTD_matchState_t* ms, \ + const BYTE* ip, const BYTE* const iLimit, \ + size_t* offBasePtr) \ + { \ + assert(MAX(4, MIN(6, ms->cParams.minMatch)) == mls); \ + return ZSTD_BtFindBestMatch(ms, ip, iLimit, offBasePtr, mls, ZSTD_##dictMode); \ + } \ + +#define GEN_ZSTD_HC_SEARCH_FN(dictMode, mls) \ + ZSTD_SEARCH_FN_ATTRS size_t ZSTD_HC_SEARCH_FN(dictMode, mls)( \ + ZSTD_matchState_t* ms, \ + const BYTE* ip, const BYTE* const iLimit, \ + size_t* offsetPtr) \ + { \ + assert(MAX(4, MIN(6, ms->cParams.minMatch)) == mls); \ + return ZSTD_HcFindBestMatch(ms, ip, iLimit, offsetPtr, mls, ZSTD_##dictMode); \ + } \ + +#define GEN_ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog) \ + ZSTD_SEARCH_FN_ATTRS size_t ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)( \ + ZSTD_matchState_t* ms, \ + const BYTE* ip, const BYTE* const iLimit, \ + size_t* offsetPtr) \ + { \ + assert(MAX(4, MIN(6, ms->cParams.minMatch)) == mls); \ + assert(MAX(4, MIN(6, ms->cParams.searchLog)) == rowLog); \ + return ZSTD_RowFindBestMatch(ms, ip, iLimit, offsetPtr, mls, ZSTD_##dictMode, rowLog); \ + } \ + +#define ZSTD_FOR_EACH_ROWLOG(X, dictMode, mls) \ + X(dictMode, mls, 4) \ + X(dictMode, mls, 5) \ + X(dictMode, mls, 6) + +#define ZSTD_FOR_EACH_MLS_ROWLOG(X, dictMode) \ + ZSTD_FOR_EACH_ROWLOG(X, dictMode, 4) \ + ZSTD_FOR_EACH_ROWLOG(X, dictMode, 5) \ + ZSTD_FOR_EACH_ROWLOG(X, dictMode, 6) + +#define ZSTD_FOR_EACH_MLS(X, dictMode) \ + X(dictMode, 4) \ + X(dictMode, 5) \ + X(dictMode, 6) + +#define ZSTD_FOR_EACH_DICT_MODE(X, ...) \ + X(__VA_ARGS__, noDict) \ + X(__VA_ARGS__, extDict) \ + X(__VA_ARGS__, dictMatchState) \ + X(__VA_ARGS__, dedicatedDictSearch) + +/* Generate row search fns for each combination of (dictMode, mls, rowLog) */ +ZSTD_FOR_EACH_DICT_MODE(ZSTD_FOR_EACH_MLS_ROWLOG, GEN_ZSTD_ROW_SEARCH_FN) +/* Generate binary Tree search fns for each combination of (dictMode, mls) */ +ZSTD_FOR_EACH_DICT_MODE(ZSTD_FOR_EACH_MLS, GEN_ZSTD_BT_SEARCH_FN) +/* Generate hash chain search fns for each combination of (dictMode, mls) */ +ZSTD_FOR_EACH_DICT_MODE(ZSTD_FOR_EACH_MLS, GEN_ZSTD_HC_SEARCH_FN) + +typedef enum { search_hashChain=0, search_binaryTree=1, search_rowHash=2 } searchMethod_e; + +#define GEN_ZSTD_CALL_BT_SEARCH_FN(dictMode, mls) \ + case mls: \ + return ZSTD_BT_SEARCH_FN(dictMode, mls)(ms, ip, iend, offsetPtr); +#define GEN_ZSTD_CALL_HC_SEARCH_FN(dictMode, mls) \ + case mls: \ + return ZSTD_HC_SEARCH_FN(dictMode, mls)(ms, ip, iend, offsetPtr); +#define GEN_ZSTD_CALL_ROW_SEARCH_FN(dictMode, mls, rowLog) \ + case rowLog: \ + return ZSTD_ROW_SEARCH_FN(dictMode, mls, rowLog)(ms, ip, iend, offsetPtr); + +#define ZSTD_SWITCH_MLS(X, dictMode) \ + switch (mls) { \ + ZSTD_FOR_EACH_MLS(X, dictMode) \ + } + +#define ZSTD_SWITCH_ROWLOG(dictMode, mls) \ + case mls: \ + switch (rowLog) { \ + ZSTD_FOR_EACH_ROWLOG(GEN_ZSTD_CALL_ROW_SEARCH_FN, dictMode, mls) \ + } \ + ZSTD_UNREACHABLE; \ + break; + +#define ZSTD_SWITCH_SEARCH_METHOD(dictMode) \ + switch (searchMethod) { \ + case search_hashChain: \ + ZSTD_SWITCH_MLS(GEN_ZSTD_CALL_HC_SEARCH_FN, dictMode) \ + break; \ + case search_binaryTree: \ + ZSTD_SWITCH_MLS(GEN_ZSTD_CALL_BT_SEARCH_FN, dictMode) \ + break; \ + case search_rowHash: \ + ZSTD_SWITCH_MLS(ZSTD_SWITCH_ROWLOG, dictMode) \ + break; \ + } \ + ZSTD_UNREACHABLE; + +/** + * Searches for the longest match at @p ip. + * Dispatches to the correct implementation function based on the + * (searchMethod, dictMode, mls, rowLog). We use switch statements + * here instead of using an indirect function call through a function + * pointer because after Spectre and Meltdown mitigations, indirect + * function calls can be very costly, especially in the kernel. + * + * NOTE: dictMode and searchMethod should be templated, so those switch + * statements should be optimized out. Only the mls & rowLog switches + * should be left. + * + * @param ms The match state. + * @param ip The position to search at. + * @param iend The end of the input data. + * @param[out] offsetPtr Stores the match offset into this pointer. + * @param mls The minimum search length, in the range [4, 6]. + * @param rowLog The row log (if applicable), in the range [4, 6]. + * @param searchMethod The search method to use (templated). + * @param dictMode The dictMode (templated). + * + * @returns The length of the longest match found, or < mls if no match is found. + * If a match is found its offset is stored in @p offsetPtr. + */ +FORCE_INLINE_TEMPLATE size_t ZSTD_searchMax( + ZSTD_matchState_t* ms, + const BYTE* ip, + const BYTE* iend, + size_t* offsetPtr, + U32 const mls, + U32 const rowLog, + searchMethod_e const searchMethod, + ZSTD_dictMode_e const dictMode) +{ + if (dictMode == ZSTD_noDict) { + ZSTD_SWITCH_SEARCH_METHOD(noDict) + } else if (dictMode == ZSTD_extDict) { + ZSTD_SWITCH_SEARCH_METHOD(extDict) + } else if (dictMode == ZSTD_dictMatchState) { + ZSTD_SWITCH_SEARCH_METHOD(dictMatchState) + } else if (dictMode == ZSTD_dedicatedDictSearch) { + ZSTD_SWITCH_SEARCH_METHOD(dedicatedDictSearch) + } + ZSTD_UNREACHABLE; + return 0; +} + /* ******************************* * Common parser - lazy strategy *********************************/ -typedef enum { search_hashChain, search_binaryTree } searchMethod_e; -FORCE_INLINE_TEMPLATE size_t -ZSTD_compressBlock_lazy_generic( +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_lazy_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], const void* src, size_t srcSize, @@ -635,53 +1526,52 @@ ZSTD_compressBlock_lazy_generic( const BYTE* ip = istart; const BYTE* anchor = istart; const BYTE* const iend = istart + srcSize; - const BYTE* const ilimit = iend - 8; + const BYTE* const ilimit = (searchMethod == search_rowHash) ? iend - 8 - ZSTD_ROW_HASH_CACHE_SIZE : iend - 8; const BYTE* const base = ms->window.base; const U32 prefixLowestIndex = ms->window.dictLimit; const BYTE* const prefixLowest = base + prefixLowestIndex; + const U32 mls = BOUNDED(4, ms->cParams.minMatch, 6); + const U32 rowLog = BOUNDED(4, ms->cParams.searchLog, 6); - typedef size_t (*searchMax_f)( - ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* iLimit, size_t* offsetPtr); - searchMax_f const searchMax = dictMode == ZSTD_dictMatchState ? - (searchMethod==search_binaryTree ? ZSTD_BtFindBestMatch_dictMatchState_selectMLS - : ZSTD_HcFindBestMatch_dictMatchState_selectMLS) : - (searchMethod==search_binaryTree ? ZSTD_BtFindBestMatch_selectMLS - : ZSTD_HcFindBestMatch_selectMLS); - U32 offset_1 = rep[0], offset_2 = rep[1], savedOffset=0; + U32 offset_1 = rep[0], offset_2 = rep[1]; + U32 offsetSaved1 = 0, offsetSaved2 = 0; + const int isDMS = dictMode == ZSTD_dictMatchState; + const int isDDS = dictMode == ZSTD_dedicatedDictSearch; + const int isDxS = isDMS || isDDS; const ZSTD_matchState_t* const dms = ms->dictMatchState; - const U32 dictLowestIndex = dictMode == ZSTD_dictMatchState ? - dms->window.dictLimit : 0; - const BYTE* const dictBase = dictMode == ZSTD_dictMatchState ? - dms->window.base : NULL; - const BYTE* const dictLowest = dictMode == ZSTD_dictMatchState ? - dictBase + dictLowestIndex : NULL; - const BYTE* const dictEnd = dictMode == ZSTD_dictMatchState ? - dms->window.nextSrc : NULL; - const U32 dictIndexDelta = dictMode == ZSTD_dictMatchState ? + const U32 dictLowestIndex = isDxS ? dms->window.dictLimit : 0; + const BYTE* const dictBase = isDxS ? dms->window.base : NULL; + const BYTE* const dictLowest = isDxS ? dictBase + dictLowestIndex : NULL; + const BYTE* const dictEnd = isDxS ? dms->window.nextSrc : NULL; + const U32 dictIndexDelta = isDxS ? prefixLowestIndex - (U32)(dictEnd - dictBase) : 0; const U32 dictAndPrefixLength = (U32)((ip - prefixLowest) + (dictEnd - dictLowest)); - DEBUGLOG(5, "ZSTD_compressBlock_lazy_generic (dictMode=%u)", (U32)dictMode); - - /* init */ + DEBUGLOG(5, "ZSTD_compressBlock_lazy_generic (dictMode=%u) (searchFunc=%u)", (U32)dictMode, (U32)searchMethod); ip += (dictAndPrefixLength == 0); if (dictMode == ZSTD_noDict) { - U32 const current = (U32)(ip - base); - U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, current, ms->cParams.windowLog); - U32 const maxRep = current - windowLow; - if (offset_2 > maxRep) savedOffset = offset_2, offset_2 = 0; - if (offset_1 > maxRep) savedOffset = offset_1, offset_1 = 0; + U32 const curr = (U32)(ip - base); + U32 const windowLow = ZSTD_getLowestPrefixIndex(ms, curr, ms->cParams.windowLog); + U32 const maxRep = curr - windowLow; + if (offset_2 > maxRep) offsetSaved2 = offset_2, offset_2 = 0; + if (offset_1 > maxRep) offsetSaved1 = offset_1, offset_1 = 0; } - if (dictMode == ZSTD_dictMatchState) { + if (isDxS) { /* dictMatchState repCode checks don't currently handle repCode == 0 * disabling. */ assert(offset_1 <= dictAndPrefixLength); assert(offset_2 <= dictAndPrefixLength); } + /* Reset the lazy skipping state */ + ms->lazySkipping = 0; + + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } + /* Match Loop */ #if defined(__GNUC__) && defined(__x86_64__) /* I've measured random a 5% speed loss on levels 5 & 6 (greedy) when the @@ -691,13 +1581,14 @@ ZSTD_compressBlock_lazy_generic( #endif while (ip < ilimit) { size_t matchLength=0; - size_t offset=0; + size_t offBase = REPCODE1_TO_OFFBASE; const BYTE* start=ip+1; + DEBUGLOG(7, "search baseline (depth 0)"); /* check repCode */ - if (dictMode == ZSTD_dictMatchState) { + if (isDxS) { const U32 repIndex = (U32)(ip - base) + 1 - offset_1; - const BYTE* repMatch = (dictMode == ZSTD_dictMatchState + const BYTE* repMatch = ((dictMode == ZSTD_dictMatchState || dictMode == ZSTD_dedicatedDictSearch) && repIndex < prefixLowestIndex) ? dictBase + (repIndex - dictIndexDelta) : base + repIndex; @@ -715,30 +1606,40 @@ ZSTD_compressBlock_lazy_generic( } /* first search (depth 0) */ - { size_t offsetFound = 999999999; - size_t const ml2 = searchMax(ms, ip, iend, &offsetFound); + { size_t offbaseFound = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &offbaseFound, mls, rowLog, searchMethod, dictMode); if (ml2 > matchLength) - matchLength = ml2, start = ip, offset=offsetFound; + matchLength = ml2, start = ip, offBase = offbaseFound; } if (matchLength < 4) { - ip += ((ip-anchor) >> kSearchStrength) + 1; /* jump faster over incompressible sections */ + size_t const step = ((size_t)(ip-anchor) >> kSearchStrength) + 1; /* jump faster over incompressible sections */; + ip += step; + /* Enter the lazy skipping mode once we are skipping more than 8 bytes at a time. + * In this mode we stop inserting every position into our tables, and only insert + * positions that we search, which is one in step positions. + * The exact cutoff is flexible, I've just chosen a number that is reasonably high, + * so we minimize the compression ratio loss in "normal" scenarios. This mode gets + * triggered once we've gone 2KB without finding any matches. + */ + ms->lazySkipping = step > kLazySkippingStep; continue; } /* let's try to find a better solution */ if (depth>=1) while (ip0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { + && (offBase) && ((offset_1>0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { size_t const mlRep = ZSTD_count(ip+4, ip+4-offset_1, iend) + 4; int const gain2 = (int)(mlRep * 3); - int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offset+1) + 1); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offBase) + 1); if ((mlRep >= 4) && (gain2 > gain1)) - matchLength = mlRep, offset = 0, start = ip; + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; } - if (dictMode == ZSTD_dictMatchState) { + if (isDxS) { const U32 repIndex = (U32)(ip - base) - offset_1; const BYTE* repMatch = repIndex < prefixLowestIndex ? dictBase + (repIndex - dictIndexDelta) : @@ -748,32 +1649,33 @@ ZSTD_compressBlock_lazy_generic( const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; int const gain2 = (int)(mlRep * 3); - int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offset+1) + 1); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offBase) + 1); if ((mlRep >= 4) && (gain2 > gain1)) - matchLength = mlRep, offset = 0, start = ip; + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; } } - { size_t offset2=999999999; - size_t const ml2 = searchMax(ms, ip, iend, &offset2); - int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ - int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 4); + { size_t ofbCandidate=999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, dictMode); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 4); if ((ml2 >= 4) && (gain2 > gain1)) { - matchLength = ml2, offset = offset2, start = ip; + matchLength = ml2, offBase = ofbCandidate, start = ip; continue; /* search a better one */ } } /* let's find an even better one */ if ((depth==2) && (ip0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { + && (offBase) && ((offset_1>0) & (MEM_read32(ip) == MEM_read32(ip - offset_1)))) { size_t const mlRep = ZSTD_count(ip+4, ip+4-offset_1, iend) + 4; int const gain2 = (int)(mlRep * 4); - int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 1); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 1); if ((mlRep >= 4) && (gain2 > gain1)) - matchLength = mlRep, offset = 0, start = ip; + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; } - if (dictMode == ZSTD_dictMatchState) { + if (isDxS) { const U32 repIndex = (U32)(ip - base) - offset_1; const BYTE* repMatch = repIndex < prefixLowestIndex ? dictBase + (repIndex - dictIndexDelta) : @@ -783,64 +1685,69 @@ ZSTD_compressBlock_lazy_generic( const BYTE* repMatchEnd = repIndex < prefixLowestIndex ? dictEnd : iend; size_t const mlRep = ZSTD_count_2segments(ip+4, repMatch+4, iend, repMatchEnd, prefixLowest) + 4; int const gain2 = (int)(mlRep * 4); - int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 1); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 1); if ((mlRep >= 4) && (gain2 > gain1)) - matchLength = mlRep, offset = 0, start = ip; + matchLength = mlRep, offBase = REPCODE1_TO_OFFBASE, start = ip; } } - { size_t offset2=999999999; - size_t const ml2 = searchMax(ms, ip, iend, &offset2); - int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ - int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 7); + { size_t ofbCandidate=999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, dictMode); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 7); if ((ml2 >= 4) && (gain2 > gain1)) { - matchLength = ml2, offset = offset2, start = ip; + matchLength = ml2, offBase = ofbCandidate, start = ip; continue; } } } break; /* nothing found : store previous solution */ } /* NOTE: - * start[-offset+ZSTD_REP_MOVE-1] is undefined behavior. - * (-offset+ZSTD_REP_MOVE-1) is unsigned, and is added to start, which - * overflows the pointer, which is undefined behavior. + * Pay attention that `start[-value]` can lead to strange undefined behavior + * notably if `value` is unsigned, resulting in a large positive `-value`. */ /* catch up */ - if (offset) { + if (OFFBASE_IS_OFFSET(offBase)) { if (dictMode == ZSTD_noDict) { - while ( ((start > anchor) & (start - (offset-ZSTD_REP_MOVE) > prefixLowest)) - && (start[-1] == (start-(offset-ZSTD_REP_MOVE))[-1]) ) /* only search for offset within prefix */ + while ( ((start > anchor) & (start - OFFBASE_TO_OFFSET(offBase) > prefixLowest)) + && (start[-1] == (start-OFFBASE_TO_OFFSET(offBase))[-1]) ) /* only search for offset within prefix */ { start--; matchLength++; } } - if (dictMode == ZSTD_dictMatchState) { - U32 const matchIndex = (U32)((start-base) - (offset - ZSTD_REP_MOVE)); + if (isDxS) { + U32 const matchIndex = (U32)((size_t)(start-base) - OFFBASE_TO_OFFSET(offBase)); const BYTE* match = (matchIndex < prefixLowestIndex) ? dictBase + matchIndex - dictIndexDelta : base + matchIndex; const BYTE* const mStart = (matchIndex < prefixLowestIndex) ? dictLowest : prefixLowest; while ((start>anchor) && (match>mStart) && (start[-1] == match[-1])) { start--; match--; matchLength++; } /* catch up */ } - offset_2 = offset_1; offset_1 = (U32)(offset - ZSTD_REP_MOVE); + offset_2 = offset_1; offset_1 = (U32)OFFBASE_TO_OFFSET(offBase); } /* store sequence */ _storeSequence: - { size_t const litLength = start - anchor; - ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offset, matchLength-MINMATCH); + { size_t const litLength = (size_t)(start - anchor); + ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offBase, matchLength); anchor = ip = start + matchLength; } + if (ms->lazySkipping) { + /* We've found a match, disable lazy skipping mode, and refill the hash cache. */ + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } + ms->lazySkipping = 0; + } /* check immediate repcode */ - if (dictMode == ZSTD_dictMatchState) { + if (isDxS) { while (ip <= ilimit) { U32 const current2 = (U32)(ip-base); U32 const repIndex = current2 - offset_2; - const BYTE* repMatch = dictMode == ZSTD_dictMatchState - && repIndex < prefixLowestIndex ? + const BYTE* repMatch = repIndex < prefixLowestIndex ? dictBase - dictIndexDelta + repIndex : base + repIndex; if ( ((U32)((prefixLowestIndex-1) - (U32)repIndex) >= 3 /* intentional overflow */) && (MEM_read32(repMatch) == MEM_read32(ip)) ) { const BYTE* const repEnd2 = repIndex < prefixLowestIndex ? dictEnd : iend; matchLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd2, prefixLowest) + 4; - offset = offset_2; offset_2 = offset_1; offset_1 = (U32)offset; /* swap offset_2 <=> offset_1 */ - ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, matchLength-MINMATCH); + offBase = offset_2; offset_2 = offset_1; offset_1 = (U32)offBase; /* swap offset_2 <=> offset_1 */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, matchLength); ip += matchLength; anchor = ip; continue; @@ -854,36 +1761,72 @@ ZSTD_compressBlock_lazy_generic( && (MEM_read32(ip) == MEM_read32(ip - offset_2)) ) { /* store sequence */ matchLength = ZSTD_count(ip+4, ip+4-offset_2, iend) + 4; - offset = offset_2; offset_2 = offset_1; offset_1 = (U32)offset; /* swap repcodes */ - ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, matchLength-MINMATCH); + offBase = offset_2; offset_2 = offset_1; offset_1 = (U32)offBase; /* swap repcodes */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, matchLength); ip += matchLength; anchor = ip; continue; /* faster when present ... (?) */ } } } - /* Save reps for next block */ - rep[0] = offset_1 ? offset_1 : savedOffset; - rep[1] = offset_2 ? offset_2 : savedOffset; + /* If offset_1 started invalid (offsetSaved1 != 0) and became valid (offset_1 != 0), + * rotate saved offsets. See comment in ZSTD_compressBlock_fast_noDict for more context. */ + offsetSaved2 = ((offsetSaved1 != 0) && (offset_1 != 0)) ? offsetSaved1 : offsetSaved2; + + /* save reps for next block */ + rep[0] = offset_1 ? offset_1 : offsetSaved1; + rep[1] = offset_2 ? offset_2 : offsetSaved2; /* Return the last literals size */ return (size_t)(iend - anchor); } +#endif /* build exclusions */ -size_t ZSTD_compressBlock_btlazy2( +#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_greedy( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) { - return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_noDict); + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_noDict); } -size_t ZSTD_compressBlock_lazy2( +size_t ZSTD_compressBlock_greedy_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) { - return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_noDict); + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dedicatedDictSearch); } +size_t ZSTD_compressBlock_greedy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_greedy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0, ZSTD_dedicatedDictSearch); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_lazy( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) @@ -891,18 +1834,48 @@ size_t ZSTD_compressBlock_lazy( return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_noDict); } -size_t ZSTD_compressBlock_greedy( +size_t ZSTD_compressBlock_lazy_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) { - return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_noDict); + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dictMatchState); } -size_t ZSTD_compressBlock_btlazy2_dictMatchState( +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) { - return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_dictMatchState); + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dedicatedDictSearch); +} + +size_t ZSTD_compressBlock_lazy_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1, ZSTD_dedicatedDictSearch); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_noDict); } size_t ZSTD_compressBlock_lazy2_dictMatchState( @@ -912,22 +1885,57 @@ size_t ZSTD_compressBlock_lazy2_dictMatchState( return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dictMatchState); } -size_t ZSTD_compressBlock_lazy_dictMatchState( +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) { - return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1, ZSTD_dictMatchState); + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2, ZSTD_dedicatedDictSearch); } -size_t ZSTD_compressBlock_greedy_dictMatchState( +size_t ZSTD_compressBlock_lazy2_row( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) { - return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0, ZSTD_dictMatchState); + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_noDict); +} + +size_t ZSTD_compressBlock_lazy2_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dictMatchState); +} + +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2, ZSTD_dedicatedDictSearch); } +#endif +#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btlazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_noDict); +} +size_t ZSTD_compressBlock_btlazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2, ZSTD_dictMatchState); +} +#endif + +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR size_t ZSTD_compressBlock_lazy_extDict_generic( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -938,7 +1946,7 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( const BYTE* ip = istart; const BYTE* anchor = istart; const BYTE* const iend = istart + srcSize; - const BYTE* const ilimit = iend - 8; + const BYTE* const ilimit = searchMethod == search_rowHash ? iend - 8 - ZSTD_ROW_HASH_CACHE_SIZE : iend - 8; const BYTE* const base = ms->window.base; const U32 dictLimit = ms->window.dictLimit; const BYTE* const prefixStart = base + dictLimit; @@ -946,18 +1954,21 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( const BYTE* const dictEnd = dictBase + dictLimit; const BYTE* const dictStart = dictBase + ms->window.lowLimit; const U32 windowLog = ms->cParams.windowLog; - - typedef size_t (*searchMax_f)( - ZSTD_matchState_t* ms, - const BYTE* ip, const BYTE* iLimit, size_t* offsetPtr); - searchMax_f searchMax = searchMethod==search_binaryTree ? ZSTD_BtFindBestMatch_extDict_selectMLS : ZSTD_HcFindBestMatch_extDict_selectMLS; + const U32 mls = BOUNDED(4, ms->cParams.minMatch, 6); + const U32 rowLog = BOUNDED(4, ms->cParams.searchLog, 6); U32 offset_1 = rep[0], offset_2 = rep[1]; - DEBUGLOG(5, "ZSTD_compressBlock_lazy_extDict_generic"); + DEBUGLOG(5, "ZSTD_compressBlock_lazy_extDict_generic (searchFunc=%u)", (U32)searchMethod); + + /* Reset the lazy skipping state */ + ms->lazySkipping = 0; /* init */ ip += (ip == prefixStart); + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } /* Match Loop */ #if defined(__GNUC__) && defined(__x86_64__) @@ -968,16 +1979,17 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( #endif while (ip < ilimit) { size_t matchLength=0; - size_t offset=0; + size_t offBase = REPCODE1_TO_OFFBASE; const BYTE* start=ip+1; - U32 current = (U32)(ip-base); + U32 curr = (U32)(ip-base); /* check repCode */ - { const U32 windowLow = ZSTD_getLowestMatchIndex(ms, current+1, windowLog); - const U32 repIndex = (U32)(current+1 - offset_1); + { const U32 windowLow = ZSTD_getLowestMatchIndex(ms, curr+1, windowLog); + const U32 repIndex = (U32)(curr+1 - offset_1); const BYTE* const repBase = repIndex < dictLimit ? dictBase : base; const BYTE* const repMatch = repBase + repIndex; - if (((U32)((dictLimit-1) - repIndex) >= 3) & (repIndex > windowLow)) /* intentional overflow */ + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow */ + & (offset_1 <= curr+1 - windowLow) ) /* note: we are searching at curr+1 */ if (MEM_read32(ip+1) == MEM_read32(repMatch)) { /* repcode detected we should take it */ const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; @@ -986,14 +1998,23 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( } } /* first search (depth 0) */ - { size_t offsetFound = 999999999; - size_t const ml2 = searchMax(ms, ip, iend, &offsetFound); + { size_t ofbCandidate = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, ZSTD_extDict); if (ml2 > matchLength) - matchLength = ml2, start = ip, offset=offsetFound; + matchLength = ml2, start = ip, offBase = ofbCandidate; } - if (matchLength < 4) { - ip += ((ip-anchor) >> kSearchStrength) + 1; /* jump faster over incompressible sections */ + if (matchLength < 4) { + size_t const step = ((size_t)(ip-anchor) >> kSearchStrength); + ip += step + 1; /* jump faster over incompressible sections */ + /* Enter the lazy skipping mode once we are skipping more than 8 bytes at a time. + * In this mode we stop inserting every position into our tables, and only insert + * positions that we search, which is one in step positions. + * The exact cutoff is flexible, I've just chosen a number that is reasonably high, + * so we minimize the compression ratio loss in "normal" scenarios. This mode gets + * triggered once we've gone 2KB without finding any matches. + */ + ms->lazySkipping = step > kLazySkippingStep; continue; } @@ -1001,82 +2022,91 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( if (depth>=1) while (ip= 3) & (repIndex > windowLow)) /* intentional overflow */ + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ if (MEM_read32(ip) == MEM_read32(repMatch)) { /* repcode detected */ const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; size_t const repLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; int const gain2 = (int)(repLength * 3); - int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offset+1) + 1); + int const gain1 = (int)(matchLength*3 - ZSTD_highbit32((U32)offBase) + 1); if ((repLength >= 4) && (gain2 > gain1)) - matchLength = repLength, offset = 0, start = ip; + matchLength = repLength, offBase = REPCODE1_TO_OFFBASE, start = ip; } } /* search match, depth 1 */ - { size_t offset2=999999999; - size_t const ml2 = searchMax(ms, ip, iend, &offset2); - int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ - int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 4); + { size_t ofbCandidate = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, ZSTD_extDict); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 4); if ((ml2 >= 4) && (gain2 > gain1)) { - matchLength = ml2, offset = offset2, start = ip; + matchLength = ml2, offBase = ofbCandidate, start = ip; continue; /* search a better one */ } } /* let's find an even better one */ if ((depth==2) && (ip= 3) & (repIndex > windowLow)) /* intentional overflow */ + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_1 <= curr - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ if (MEM_read32(ip) == MEM_read32(repMatch)) { /* repcode detected */ const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; size_t const repLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; int const gain2 = (int)(repLength * 4); - int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 1); + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 1); if ((repLength >= 4) && (gain2 > gain1)) - matchLength = repLength, offset = 0, start = ip; + matchLength = repLength, offBase = REPCODE1_TO_OFFBASE, start = ip; } } /* search match, depth 2 */ - { size_t offset2=999999999; - size_t const ml2 = searchMax(ms, ip, iend, &offset2); - int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)offset2+1)); /* raw approx */ - int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offset+1) + 7); + { size_t ofbCandidate = 999999999; + size_t const ml2 = ZSTD_searchMax(ms, ip, iend, &ofbCandidate, mls, rowLog, searchMethod, ZSTD_extDict); + int const gain2 = (int)(ml2*4 - ZSTD_highbit32((U32)ofbCandidate)); /* raw approx */ + int const gain1 = (int)(matchLength*4 - ZSTD_highbit32((U32)offBase) + 7); if ((ml2 >= 4) && (gain2 > gain1)) { - matchLength = ml2, offset = offset2, start = ip; + matchLength = ml2, offBase = ofbCandidate, start = ip; continue; } } } break; /* nothing found : store previous solution */ } /* catch up */ - if (offset) { - U32 const matchIndex = (U32)((start-base) - (offset - ZSTD_REP_MOVE)); + if (OFFBASE_IS_OFFSET(offBase)) { + U32 const matchIndex = (U32)((size_t)(start-base) - OFFBASE_TO_OFFSET(offBase)); const BYTE* match = (matchIndex < dictLimit) ? dictBase + matchIndex : base + matchIndex; const BYTE* const mStart = (matchIndex < dictLimit) ? dictStart : prefixStart; while ((start>anchor) && (match>mStart) && (start[-1] == match[-1])) { start--; match--; matchLength++; } /* catch up */ - offset_2 = offset_1; offset_1 = (U32)(offset - ZSTD_REP_MOVE); + offset_2 = offset_1; offset_1 = (U32)OFFBASE_TO_OFFSET(offBase); } /* store sequence */ _storeSequence: - { size_t const litLength = start - anchor; - ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offset, matchLength-MINMATCH); + { size_t const litLength = (size_t)(start - anchor); + ZSTD_storeSeq(seqStore, litLength, anchor, iend, (U32)offBase, matchLength); anchor = ip = start + matchLength; } + if (ms->lazySkipping) { + /* We've found a match, disable lazy skipping mode, and refill the hash cache. */ + if (searchMethod == search_rowHash) { + ZSTD_row_fillHashCache(ms, base, rowLog, mls, ms->nextToUpdate, ilimit); + } + ms->lazySkipping = 0; + } /* check immediate repcode */ while (ip <= ilimit) { @@ -1085,13 +2115,14 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( const U32 repIndex = repCurrent - offset_2; const BYTE* const repBase = repIndex < dictLimit ? dictBase : base; const BYTE* const repMatch = repBase + repIndex; - if (((U32)((dictLimit-1) - repIndex) >= 3) & (repIndex > windowLow)) /* intentional overflow */ + if ( ((U32)((dictLimit-1) - repIndex) >= 3) /* intentional overflow : do not test positions overlapping 2 memory segments */ + & (offset_2 <= repCurrent - windowLow) ) /* equivalent to `curr > repIndex >= windowLow` */ if (MEM_read32(ip) == MEM_read32(repMatch)) { /* repcode detected we should take it */ const BYTE* const repEnd = repIndex < dictLimit ? dictEnd : iend; matchLength = ZSTD_count_2segments(ip+4, repMatch+4, iend, repEnd, prefixStart) + 4; - offset = offset_2; offset_2 = offset_1; offset_1 = (U32)offset; /* swap offset history */ - ZSTD_storeSeq(seqStore, 0, anchor, iend, 0, matchLength-MINMATCH); + offBase = offset_2; offset_2 = offset_1; offset_1 = (U32)offBase; /* swap offset history */ + ZSTD_storeSeq(seqStore, 0, anchor, iend, REPCODE1_TO_OFFBASE, matchLength); ip += matchLength; anchor = ip; continue; /* faster when present ... (?) */ @@ -1106,8 +2137,9 @@ size_t ZSTD_compressBlock_lazy_extDict_generic( /* Return the last literals size */ return (size_t)(iend - anchor); } +#endif /* build exclusions */ - +#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_greedy_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) @@ -1115,6 +2147,15 @@ size_t ZSTD_compressBlock_greedy_extDict( return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 0); } +size_t ZSTD_compressBlock_greedy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 0); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_lazy_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) @@ -1123,6 +2164,16 @@ size_t ZSTD_compressBlock_lazy_extDict( return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 1); } +size_t ZSTD_compressBlock_lazy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) + +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 1); +} +#endif + +#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_lazy2_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) @@ -1131,6 +2182,15 @@ size_t ZSTD_compressBlock_lazy2_extDict( return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_hashChain, 2); } +size_t ZSTD_compressBlock_lazy2_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize) +{ + return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_rowHash, 2); +} +#endif + +#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_btlazy2_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize) @@ -1138,5 +2198,6 @@ size_t ZSTD_compressBlock_btlazy2_extDict( { return ZSTD_compressBlock_lazy_extDict_generic(ms, seqStore, rep, src, srcSize, search_binaryTree, 2); } +#endif -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_ldm.cpp b/src/duckdb/third_party/zstd/compress/zstd_ldm.cpp index ee2480bf..a83bf741 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_ldm.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_ldm.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -11,16 +11,130 @@ #include "zstd/compress/zstd_ldm.h" #include "zstd/common/debug.h" +#include "zstd/common/xxhash.hpp" +#include "zstd/common/xxhash_static.hpp" #include "zstd/compress/zstd_fast.h" /* ZSTD_fillHashTable() */ #include "zstd/compress/zstd_double_fast.h" /* ZSTD_fillDoubleHashTable() */ +#include "zstd/compress/zstd_ldm_geartab.h" #define LDM_BUCKET_SIZE_LOG 3 #define LDM_MIN_MATCH_LENGTH 64 #define LDM_HASH_RLOG 7 -#define LDM_HASH_CHAR_OFFSET 10 namespace duckdb_zstd { +typedef struct { + U64 rolling; + U64 stopMask; +} ldmRollingHashState_t; + +/** ZSTD_ldm_gear_init(): + * + * Initializes the rolling hash state such that it will honor the + * settings in params. */ +static void ZSTD_ldm_gear_init(ldmRollingHashState_t* state, ldmParams_t const* params) +{ + unsigned maxBitsInMask = MIN(params->minMatchLength, 64); + unsigned hashRateLog = params->hashRateLog; + + state->rolling = ~(U32)0; + + /* The choice of the splitting criterion is subject to two conditions: + * 1. it has to trigger on average every 2^(hashRateLog) bytes; + * 2. ideally, it has to depend on a window of minMatchLength bytes. + * + * In the gear hash algorithm, bit n depends on the last n bytes; + * so in order to obtain a good quality splitting criterion it is + * preferable to use bits with high weight. + * + * To match condition 1 we use a mask with hashRateLog bits set + * and, because of the previous remark, we make sure these bits + * have the highest possible weight while still respecting + * condition 2. + */ + if (hashRateLog > 0 && hashRateLog <= maxBitsInMask) { + state->stopMask = (((U64)1 << hashRateLog) - 1) << (maxBitsInMask - hashRateLog); + } else { + /* In this degenerate case we simply honor the hash rate. */ + state->stopMask = ((U64)1 << hashRateLog) - 1; + } +} + +/** ZSTD_ldm_gear_reset() + * Feeds [data, data + minMatchLength) into the hash without registering any + * splits. This effectively resets the hash state. This is used when skipping + * over data, either at the beginning of a block, or skipping sections. + */ +static void ZSTD_ldm_gear_reset(ldmRollingHashState_t* state, + BYTE const* data, size_t minMatchLength) +{ + U64 hash = state->rolling; + size_t n = 0; + +#define GEAR_ITER_ONCE() do { \ + hash = (hash << 1) + ZSTD_ldm_gearTab[data[n] & 0xff]; \ + n += 1; \ + } while (0) + while (n + 3 < minMatchLength) { + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + } + while (n < minMatchLength) { + GEAR_ITER_ONCE(); + } +#undef GEAR_ITER_ONCE +} + +/** ZSTD_ldm_gear_feed(): + * + * Registers in the splits array all the split points found in the first + * size bytes following the data pointer. This function terminates when + * either all the data has been processed or LDM_BATCH_SIZE splits are + * present in the splits array. + * + * Precondition: The splits array must not be full. + * Returns: The number of bytes processed. */ +static size_t ZSTD_ldm_gear_feed(ldmRollingHashState_t* state, + BYTE const* data, size_t size, + size_t* splits, unsigned* numSplits) +{ + size_t n; + U64 hash, mask; + + hash = state->rolling; + mask = state->stopMask; + n = 0; + +#define GEAR_ITER_ONCE() do { \ + hash = (hash << 1) + ZSTD_ldm_gearTab[data[n] & 0xff]; \ + n += 1; \ + if (UNLIKELY((hash & mask) == 0)) { \ + splits[*numSplits] = n; \ + *numSplits += 1; \ + if (*numSplits == LDM_BATCH_SIZE) \ + goto done; \ + } \ + } while (0) + + while (n + 3 < size) { + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + GEAR_ITER_ONCE(); + } + while (n < size) { + GEAR_ITER_ONCE(); + } + +#undef GEAR_ITER_ONCE + +done: + state->rolling = hash; + return n; +} + void ZSTD_ldm_adjustParameters(ldmParams_t* params, ZSTD_compressionParameters const* cParams) { @@ -29,13 +143,6 @@ void ZSTD_ldm_adjustParameters(ldmParams_t* params, DEBUGLOG(4, "ZSTD_ldm_adjustParameters"); if (!params->bucketSizeLog) params->bucketSizeLog = LDM_BUCKET_SIZE_LOG; if (!params->minMatchLength) params->minMatchLength = LDM_MIN_MATCH_LENGTH; - if (cParams->strategy >= ZSTD_btopt) { - /* Get out of the way of the optimal parser */ - U32 const minMatch = MAX(cParams->targetLength, params->minMatchLength); - assert(minMatch >= ZSTD_LDM_MINMATCH_MIN); - assert(minMatch <= ZSTD_LDM_MINMATCH_MAX); - params->minMatchLength = minMatch; - } if (params->hashLog == 0) { params->hashLog = MAX(ZSTD_HASHLOG_MIN, params->windowLog - LDM_HASH_RLOG); assert(params->hashLog <= ZSTD_HASHLOG_MAX); @@ -55,47 +162,12 @@ size_t ZSTD_ldm_getTableSize(ldmParams_t params) size_t const ldmBucketSize = ((size_t)1) << (params.hashLog - ldmBucketSizeLog); size_t const totalSize = ZSTD_cwksp_alloc_size(ldmBucketSize) + ZSTD_cwksp_alloc_size(ldmHSize * sizeof(ldmEntry_t)); - return params.enableLdm ? totalSize : 0; + return params.enableLdm == ZSTD_ps_enable ? totalSize : 0; } size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize) { - return params.enableLdm ? (maxChunkSize / params.minMatchLength) : 0; -} - -/** ZSTD_ldm_getSmallHash() : - * numBits should be <= 32 - * If numBits==0, returns 0. - * @return : the most significant numBits of value. */ -static U32 ZSTD_ldm_getSmallHash(U64 value, U32 numBits) -{ - assert(numBits <= 32); - return numBits == 0 ? 0 : (U32)(value >> (64 - numBits)); -} - -/** ZSTD_ldm_getChecksum() : - * numBitsToDiscard should be <= 32 - * @return : the next most significant 32 bits after numBitsToDiscard */ -static U32 ZSTD_ldm_getChecksum(U64 hash, U32 numBitsToDiscard) -{ - assert(numBitsToDiscard <= 32); - return (hash >> (64 - 32 - numBitsToDiscard)) & 0xFFFFFFFF; -} - -/** ZSTD_ldm_getTag() ; - * Given the hash, returns the most significant numTagBits bits - * after (32 + hbits) bits. - * - * If there are not enough bits remaining, return the last - * numTagBits bits. */ -static U32 ZSTD_ldm_getTag(U64 hash, U32 hbits, U32 numTagBits) -{ - assert(numTagBits < 32 && hbits <= 32); - if (32 - hbits < numTagBits) { - return hash & (((U32)1 << numTagBits) - 1); - } else { - return (hash >> (32 - hbits - numTagBits)) & (((U32)1 << numTagBits) - 1); - } + return params.enableLdm == ZSTD_ps_enable ? (maxChunkSize / params.minMatchLength) : 0; } /** ZSTD_ldm_getBucket() : @@ -112,38 +184,12 @@ static void ZSTD_ldm_insertEntry(ldmState_t* ldmState, size_t const hash, const ldmEntry_t entry, ldmParams_t const ldmParams) { - BYTE* const bucketOffsets = ldmState->bucketOffsets; - *(ZSTD_ldm_getBucket(ldmState, hash, ldmParams) + bucketOffsets[hash]) = entry; - bucketOffsets[hash]++; - bucketOffsets[hash] &= ((U32)1 << ldmParams.bucketSizeLog) - 1; -} + BYTE* const pOffset = ldmState->bucketOffsets + hash; + unsigned const offset = *pOffset; + + *(ZSTD_ldm_getBucket(ldmState, hash, ldmParams) + offset) = entry; + *pOffset = (BYTE)((offset + 1) & ((1u << ldmParams.bucketSizeLog) - 1)); -/** ZSTD_ldm_makeEntryAndInsertByTag() : - * - * Gets the small hash, checksum, and tag from the rollingHash. - * - * If the tag matches (1 << ldmParams.hashRateLog)-1, then - * creates an ldmEntry from the offset, and inserts it into the hash table. - * - * hBits is the length of the small hash, which is the most significant hBits - * of rollingHash. The checksum is the next 32 most significant bits, followed - * by ldmParams.hashRateLog bits that make up the tag. */ -static void ZSTD_ldm_makeEntryAndInsertByTag(ldmState_t* ldmState, - U64 const rollingHash, - U32 const hBits, - U32 const offset, - ldmParams_t const ldmParams) -{ - U32 const tag = ZSTD_ldm_getTag(rollingHash, hBits, ldmParams.hashRateLog); - U32 const tagMask = ((U32)1 << ldmParams.hashRateLog) - 1; - if (tag == tagMask) { - U32 const hash = ZSTD_ldm_getSmallHash(rollingHash, hBits); - U32 const checksum = ZSTD_ldm_getChecksum(rollingHash, hBits); - ldmEntry_t entry; - entry.offset = offset; - entry.checksum = checksum; - ZSTD_ldm_insertEntry(ldmState, hash, entry, ldmParams); - } } /** ZSTD_ldm_countBackwardsMatch() : @@ -152,10 +198,10 @@ static void ZSTD_ldm_makeEntryAndInsertByTag(ldmState_t* ldmState, * We count only bytes where pMatch >= pBase and pIn >= pAnchor. */ static size_t ZSTD_ldm_countBackwardsMatch( const BYTE* pIn, const BYTE* pAnchor, - const BYTE* pMatch, const BYTE* pBase) + const BYTE* pMatch, const BYTE* pMatchBase) { size_t matchLength = 0; - while (pIn > pAnchor && pMatch > pBase && pIn[-1] == pMatch[-1]) { + while (pIn > pAnchor && pMatch > pMatchBase && pIn[-1] == pMatch[-1]) { pIn--; pMatch--; matchLength++; @@ -163,6 +209,27 @@ static size_t ZSTD_ldm_countBackwardsMatch( return matchLength; } +/** ZSTD_ldm_countBackwardsMatch_2segments() : + * Returns the number of bytes that match backwards from pMatch, + * even with the backwards match spanning 2 different segments. + * + * On reaching `pMatchBase`, start counting from mEnd */ +static size_t ZSTD_ldm_countBackwardsMatch_2segments( + const BYTE* pIn, const BYTE* pAnchor, + const BYTE* pMatch, const BYTE* pMatchBase, + const BYTE* pExtDictStart, const BYTE* pExtDictEnd) +{ + size_t matchLength = ZSTD_ldm_countBackwardsMatch(pIn, pAnchor, pMatch, pMatchBase); + if (pMatch - matchLength != pMatchBase || pMatchBase == pExtDictStart) { + /* If backwards match is entirely in the extDict or prefix, immediately return */ + return matchLength; + } + DEBUGLOG(7, "ZSTD_ldm_countBackwardsMatch_2segments: found 2-parts backwards match (length in prefix==%zu)", matchLength); + matchLength += ZSTD_ldm_countBackwardsMatch(pIn - matchLength, pAnchor, pExtDictEnd, pExtDictStart); + DEBUGLOG(7, "final backwards match length = %zu", matchLength); + return matchLength; +} + /** ZSTD_ldm_fillFastTables() : * * Fills the relevant tables for the ZSTD_fast and ZSTD_dfast strategies. @@ -178,11 +245,15 @@ static size_t ZSTD_ldm_fillFastTables(ZSTD_matchState_t* ms, switch(ms->cParams.strategy) { case ZSTD_fast: - ZSTD_fillHashTable(ms, iend, ZSTD_dtlm_fast); + ZSTD_fillHashTable(ms, iend, ZSTD_dtlm_fast, ZSTD_tfp_forCCtx); break; case ZSTD_dfast: - ZSTD_fillDoubleHashTable(ms, iend, ZSTD_dtlm_fast); +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + ZSTD_fillDoubleHashTable(ms, iend, ZSTD_dtlm_fast, ZSTD_tfp_forCCtx); +#else + assert(0); /* shouldn't be called: cparams should've been adjusted. */ +#endif break; case ZSTD_greedy: @@ -200,43 +271,42 @@ static size_t ZSTD_ldm_fillFastTables(ZSTD_matchState_t* ms, return 0; } -/** ZSTD_ldm_fillLdmHashTable() : - * - * Fills hashTable from (lastHashed + 1) to iend (non-inclusive). - * lastHash is the rolling hash that corresponds to lastHashed. - * - * Returns the rolling hash corresponding to position iend-1. */ -static U64 ZSTD_ldm_fillLdmHashTable(ldmState_t* state, - U64 lastHash, const BYTE* lastHashed, - const BYTE* iend, const BYTE* base, - U32 hBits, ldmParams_t const ldmParams) -{ - U64 rollingHash = lastHash; - const BYTE* cur = lastHashed + 1; - - while (cur < iend) { - rollingHash = ZSTD_rollingHash_rotate(rollingHash, cur[-1], - cur[ldmParams.minMatchLength-1], - state->hashPower); - ZSTD_ldm_makeEntryAndInsertByTag(state, - rollingHash, hBits, - (U32)(cur - base), ldmParams); - ++cur; - } - return rollingHash; -} - void ZSTD_ldm_fillHashTable( - ldmState_t* state, const BYTE* ip, + ldmState_t* ldmState, const BYTE* ip, const BYTE* iend, ldmParams_t const* params) { + U32 const minMatchLength = params->minMatchLength; + U32 const hBits = params->hashLog - params->bucketSizeLog; + BYTE const* const base = ldmState->window.base; + BYTE const* const istart = ip; + ldmRollingHashState_t hashState; + size_t* const splits = ldmState->splitIndices; + unsigned numSplits; + DEBUGLOG(5, "ZSTD_ldm_fillHashTable"); - if ((size_t)(iend - ip) >= params->minMatchLength) { - U64 startingHash = ZSTD_rollingHash_compute(ip, params->minMatchLength); - ZSTD_ldm_fillLdmHashTable( - state, startingHash, ip, iend - params->minMatchLength, state->window.base, - params->hashLog - params->bucketSizeLog, - *params); + + ZSTD_ldm_gear_init(&hashState, params); + while (ip < iend) { + size_t hashed; + unsigned n; + + numSplits = 0; + hashed = ZSTD_ldm_gear_feed(&hashState, ip, iend - ip, splits, &numSplits); + + for (n = 0; n < numSplits; n++) { + if (ip + splits[n] >= istart + minMatchLength) { + BYTE const* const split = ip + splits[n] - minMatchLength; + U64 const xxhash = XXH64(split, minMatchLength, 0); + U32 const hash = (U32)(xxhash & (((U32)1 << hBits) - 1)); + ldmEntry_t entry; + + entry.offset = (U32)(split - base); + entry.checksum = (U32)(xxhash >> 32); + ZSTD_ldm_insertEntry(ldmState, hash, entry, *params); + } + } + + ip += hashed; } } @@ -248,25 +318,24 @@ void ZSTD_ldm_fillHashTable( * (after a long match, only update tables a limited amount). */ static void ZSTD_ldm_limitTableUpdate(ZSTD_matchState_t* ms, const BYTE* anchor) { - U32 const current = (U32)(anchor - ms->window.base); - if (current > ms->nextToUpdate + 1024) { + U32 const curr = (U32)(anchor - ms->window.base); + if (curr > ms->nextToUpdate + 1024) { ms->nextToUpdate = - current - MIN(512, current - ms->nextToUpdate - 1024); + curr - MIN(512, curr - ms->nextToUpdate - 1024); } } -static size_t ZSTD_ldm_generateSequences_internal( +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_ldm_generateSequences_internal( ldmState_t* ldmState, rawSeqStore_t* rawSeqStore, ldmParams_t const* params, void const* src, size_t srcSize) { /* LDM parameters */ int const extDict = ZSTD_window_hasExtDict(ldmState->window); U32 const minMatchLength = params->minMatchLength; - U64 const hashPower = ldmState->hashPower; + U32 const entsPerBucket = 1U << params->bucketSizeLog; U32 const hBits = params->hashLog - params->bucketSizeLog; - U32 const ldmBucketSize = 1U << params->bucketSizeLog; - U32 const hashRateLog = params->hashRateLog; - U32 const ldmTagMask = (1U << params->hashRateLog) - 1; /* Prefix and extDict parameters */ U32 const dictLimit = ldmState->window.dictLimit; U32 const lowestIndex = extDict ? ldmState->window.lowLimit : dictLimit; @@ -278,45 +347,69 @@ static size_t ZSTD_ldm_generateSequences_internal( /* Input bounds */ BYTE const* const istart = (BYTE const*)src; BYTE const* const iend = istart + srcSize; - BYTE const* const ilimit = iend - MAX(minMatchLength, HASH_READ_SIZE); + BYTE const* const ilimit = iend - HASH_READ_SIZE; /* Input positions */ BYTE const* anchor = istart; BYTE const* ip = istart; - /* Rolling hash */ - BYTE const* lastHashed = NULL; - U64 rollingHash = 0; - - while (ip <= ilimit) { - size_t mLength; - U32 const current = (U32)(ip - base); - size_t forwardMatchLength = 0, backwardMatchLength = 0; - ldmEntry_t* bestEntry = NULL; - if (ip != istart) { - rollingHash = ZSTD_rollingHash_rotate(rollingHash, lastHashed[0], - lastHashed[minMatchLength], - hashPower); - } else { - rollingHash = ZSTD_rollingHash_compute(ip, minMatchLength); + /* Rolling hash state */ + ldmRollingHashState_t hashState; + /* Arrays for staged-processing */ + size_t* const splits = ldmState->splitIndices; + ldmMatchCandidate_t* const candidates = ldmState->matchCandidates; + unsigned numSplits; + + if (srcSize < minMatchLength) + return iend - anchor; + + /* Initialize the rolling hash state with the first minMatchLength bytes */ + ZSTD_ldm_gear_init(&hashState, params); + ZSTD_ldm_gear_reset(&hashState, ip, minMatchLength); + ip += minMatchLength; + + while (ip < ilimit) { + size_t hashed; + unsigned n; + + numSplits = 0; + hashed = ZSTD_ldm_gear_feed(&hashState, ip, ilimit - ip, + splits, &numSplits); + + for (n = 0; n < numSplits; n++) { + BYTE const* const split = ip + splits[n] - minMatchLength; + U64 const xxhash = XXH64(split, minMatchLength, 0); + U32 const hash = (U32)(xxhash & (((U32)1 << hBits) - 1)); + + candidates[n].split = split; + candidates[n].hash = hash; + candidates[n].checksum = (U32)(xxhash >> 32); + candidates[n].bucket = ZSTD_ldm_getBucket(ldmState, hash, *params); + PREFETCH_L1(candidates[n].bucket); } - lastHashed = ip; - /* Do not insert and do not look for a match */ - if (ZSTD_ldm_getTag(rollingHash, hBits, hashRateLog) != ldmTagMask) { - ip++; - continue; - } + for (n = 0; n < numSplits; n++) { + size_t forwardMatchLength = 0, backwardMatchLength = 0, + bestMatchLength = 0, mLength; + U32 offset; + BYTE const* const split = candidates[n].split; + U32 const checksum = candidates[n].checksum; + U32 const hash = candidates[n].hash; + ldmEntry_t* const bucket = candidates[n].bucket; + ldmEntry_t const* cur; + ldmEntry_t const* bestEntry = NULL; + ldmEntry_t newEntry; + + newEntry.offset = (U32)(split - base); + newEntry.checksum = checksum; + + /* If a split point would generate a sequence overlapping with + * the previous one, we merely register it in the hash table and + * move on */ + if (split < anchor) { + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + continue; + } - /* Get the best entry and compute the match lengths */ - { - ldmEntry_t* const bucket = - ZSTD_ldm_getBucket(ldmState, - ZSTD_ldm_getSmallHash(rollingHash, hBits), - *params); - ldmEntry_t* cur; - size_t bestMatchLength = 0; - U32 const checksum = ZSTD_ldm_getChecksum(rollingHash, hBits); - - for (cur = bucket; cur < bucket + ldmBucketSize; ++cur) { + for (cur = bucket; cur < bucket + entsPerBucket; cur++) { size_t curForwardMatchLength, curBackwardMatchLength, curTotalMatchLength; if (cur->checksum != checksum || cur->offset <= lowestIndex) { @@ -330,30 +423,23 @@ static size_t ZSTD_ldm_generateSequences_internal( cur->offset < dictLimit ? dictEnd : iend; BYTE const* const lowMatchPtr = cur->offset < dictLimit ? dictStart : lowPrefixPtr; - - curForwardMatchLength = ZSTD_count_2segments( - ip, pMatch, iend, - matchEnd, lowPrefixPtr); + curForwardMatchLength = + ZSTD_count_2segments(split, pMatch, iend, matchEnd, lowPrefixPtr); if (curForwardMatchLength < minMatchLength) { continue; } - curBackwardMatchLength = - ZSTD_ldm_countBackwardsMatch(ip, anchor, pMatch, - lowMatchPtr); - curTotalMatchLength = curForwardMatchLength + - curBackwardMatchLength; + curBackwardMatchLength = ZSTD_ldm_countBackwardsMatch_2segments( + split, anchor, pMatch, lowMatchPtr, dictStart, dictEnd); } else { /* !extDict */ BYTE const* const pMatch = base + cur->offset; - curForwardMatchLength = ZSTD_count(ip, pMatch, iend); + curForwardMatchLength = ZSTD_count(split, pMatch, iend); if (curForwardMatchLength < minMatchLength) { continue; } curBackwardMatchLength = - ZSTD_ldm_countBackwardsMatch(ip, anchor, pMatch, - lowPrefixPtr); - curTotalMatchLength = curForwardMatchLength + - curBackwardMatchLength; + ZSTD_ldm_countBackwardsMatch(split, anchor, pMatch, lowPrefixPtr); } + curTotalMatchLength = curForwardMatchLength + curBackwardMatchLength; if (curTotalMatchLength > bestMatchLength) { bestMatchLength = curTotalMatchLength; @@ -362,57 +448,54 @@ static size_t ZSTD_ldm_generateSequences_internal( bestEntry = cur; } } - } - - /* No match found -- continue searching */ - if (bestEntry == NULL) { - ZSTD_ldm_makeEntryAndInsertByTag(ldmState, rollingHash, - hBits, current, - *params); - ip++; - continue; - } - /* Match found */ - mLength = forwardMatchLength + backwardMatchLength; - ip -= backwardMatchLength; + /* No match found -- insert an entry into the hash table + * and process the next candidate match */ + if (bestEntry == NULL) { + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); + continue; + } - { - /* Store the sequence: - * ip = current - backwardMatchLength - * The match is at (bestEntry->offset - backwardMatchLength) - */ - U32 const matchIndex = bestEntry->offset; - U32 const offset = current - matchIndex; - rawSeq* const seq = rawSeqStore->seq + rawSeqStore->size; - - /* Out of sequence storage */ - if (rawSeqStore->size == rawSeqStore->capacity) - return ERROR(dstSize_tooSmall); - seq->litLength = (U32)(ip - anchor); - seq->matchLength = (U32)mLength; - seq->offset = offset; - rawSeqStore->size++; - } + /* Match found */ + offset = (U32)(split - base) - bestEntry->offset; + mLength = forwardMatchLength + backwardMatchLength; + { + rawSeq* const seq = rawSeqStore->seq + rawSeqStore->size; + + /* Out of sequence storage */ + if (rawSeqStore->size == rawSeqStore->capacity) + return ERROR(dstSize_tooSmall); + seq->litLength = (U32)(split - backwardMatchLength - anchor); + seq->matchLength = (U32)mLength; + seq->offset = offset; + rawSeqStore->size++; + } - /* Insert the current entry into the hash table */ - ZSTD_ldm_makeEntryAndInsertByTag(ldmState, rollingHash, hBits, - (U32)(lastHashed - base), - *params); + /* Insert the current entry into the hash table --- it must be + * done after the previous block to avoid clobbering bestEntry */ + ZSTD_ldm_insertEntry(ldmState, hash, newEntry, *params); - assert(ip + backwardMatchLength == lastHashed); + anchor = split + forwardMatchLength; - /* Fill the hash table from lastHashed+1 to ip+mLength*/ - /* Heuristic: don't need to fill the entire table at end of block */ - if (ip + mLength <= ilimit) { - rollingHash = ZSTD_ldm_fillLdmHashTable( - ldmState, rollingHash, lastHashed, - ip + mLength, base, hBits, *params); - lastHashed = ip + mLength - 1; + /* If we find a match that ends after the data that we've hashed + * then we have a repeating, overlapping, pattern. E.g. all zeros. + * If one repetition of the pattern matches our `stopMask` then all + * repetitions will. We don't need to insert them all into out table, + * only the first one. So skip over overlapping matches. + * This is a major speed boost (20x) for compressing a single byte + * repeated, when that byte ends up in the table. + */ + if (anchor > ip + hashed) { + ZSTD_ldm_gear_reset(&hashState, anchor - minMatchLength, minMatchLength); + /* Continue the outer loop at anchor (ip + hashed == anchor). */ + ip = anchor - hashed; + break; + } } - ip += mLength; - anchor = ip; + + ip += hashed; } + return iend - anchor; } @@ -461,7 +544,7 @@ size_t ZSTD_ldm_generateSequences( assert(chunkStart < iend); /* 1. Perform overflow correction if necessary. */ - if (ZSTD_window_needOverflowCorrection(ldmState->window, chunkEnd)) { + if (ZSTD_window_needOverflowCorrection(ldmState->window, 0, maxDist, ldmState->loadedDictEnd, chunkStart, chunkEnd)) { U32 const ldmHSize = 1U << params->hashLog; U32 const correction = ZSTD_window_correctOverflow( &ldmState->window, /* cycleLog */ 0, maxDist, chunkStart); @@ -475,7 +558,7 @@ size_t ZSTD_ldm_generateSequences( * the window through early invalidation. * TODO: * Test the chunk size. * * Try invalidation after the sequence generation and test the - * the offset against maxDist directly. + * offset against maxDist directly. * * NOTE: Because of dictionaries + sequence splitting we MUST make sure * that any offset used is valid at the END of the sequence, since it may @@ -505,7 +588,9 @@ size_t ZSTD_ldm_generateSequences( return 0; } -void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, U32 const minMatch) { +void +ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, U32 const minMatch) +{ while (srcSize > 0 && rawSeqStore->pos < rawSeqStore->size) { rawSeq* seq = rawSeqStore->seq + rawSeqStore->pos; if (srcSize <= seq->litLength) { @@ -564,14 +649,32 @@ static rawSeq maybeSplitSequence(rawSeqStore_t* rawSeqStore, return sequence; } +void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) { + U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes); + while (currPos && rawSeqStore->pos < rawSeqStore->size) { + rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos]; + if (currPos >= currSeq.litLength + currSeq.matchLength) { + currPos -= currSeq.litLength + currSeq.matchLength; + rawSeqStore->pos++; + } else { + rawSeqStore->posInSequence = currPos; + break; + } + } + if (currPos == 0 || rawSeqStore->pos == rawSeqStore->size) { + rawSeqStore->posInSequence = 0; + } +} + size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + ZSTD_paramSwitch_e useRowMatchFinder, void const* src, size_t srcSize) { const ZSTD_compressionParameters* const cParams = &ms->cParams; unsigned const minMatch = cParams->minMatch; ZSTD_blockCompressor const blockCompressor = - ZSTD_selectBlockCompressor(cParams->strategy, ZSTD_matchState_dictMode(ms)); + ZSTD_selectBlockCompressor(cParams->strategy, useRowMatchFinder, ZSTD_matchState_dictMode(ms)); /* Input bounds */ BYTE const* const istart = (BYTE const*)src; BYTE const* const iend = istart + srcSize; @@ -579,14 +682,22 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, BYTE const* ip = istart; DEBUGLOG(5, "ZSTD_ldm_blockCompress: srcSize=%zu", srcSize); + /* If using opt parser, use LDMs only as candidates rather than always accepting them */ + if (cParams->strategy >= ZSTD_btopt) { + size_t lastLLSize; + ms->ldmSeqStore = rawSeqStore; + lastLLSize = blockCompressor(ms, seqStore, rep, src, srcSize); + ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore, srcSize); + return lastLLSize; + } + assert(rawSeqStore->pos <= rawSeqStore->size); assert(rawSeqStore->size <= rawSeqStore->capacity); - /* Loop through each sequence and apply the block compressor to the lits */ + /* Loop through each sequence and apply the block compressor to the literals */ while (rawSeqStore->pos < rawSeqStore->size && ip < iend) { /* maybeSplitSequence updates rawSeqStore->pos */ rawSeq const sequence = maybeSplitSequence(rawSeqStore, (U32)(iend - ip), minMatch); - int i; /* End signal */ if (sequence.offset == 0) break; @@ -599,6 +710,7 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, /* Run the block compressor */ DEBUGLOG(5, "pos %u : calling block compressor on segment of size %u", (unsigned)(ip-istart), sequence.litLength); { + int i; size_t const newLitLength = blockCompressor(ms, seqStore, rep, ip, sequence.litLength); ip += sequence.litLength; @@ -608,8 +720,8 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, rep[0] = sequence.offset; /* Store the sequence */ ZSTD_storeSeq(seqStore, newLitLength, ip - newLitLength, iend, - sequence.offset + ZSTD_REP_MOVE, - sequence.matchLength - MINMATCH); + OFFSET_TO_OFFBASE(sequence.offset), + sequence.matchLength); ip += sequence.matchLength; } } @@ -620,4 +732,4 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, return blockCompressor(ms, seqStore, rep, ip, iend - ip); } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstd_opt.cpp b/src/duckdb/third_party/zstd/compress/zstd_opt.cpp index 09e9bff2..12cf5579 100644 --- a/src/duckdb/third_party/zstd/compress/zstd_opt.cpp +++ b/src/duckdb/third_party/zstd/compress/zstd_opt.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Przemyslaw Skibinski, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -12,44 +12,54 @@ #include "zstd/compress/hist.h" #include "zstd/compress/zstd_opt.h" +namespace duckdb_zstd { + +#if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR) #define ZSTD_LITFREQ_ADD 2 /* scaling factor for litFreq, so that frequencies adapt faster to new stats */ -#define ZSTD_FREQ_DIV 4 /* log factor when using previous stats to init next stats */ #define ZSTD_MAX_PRICE (1<<30) -#define ZSTD_PREDEF_THRESHOLD 1024 /* if srcSize < ZSTD_PREDEF_THRESHOLD, symbols' cost is assumed static, directly determined by pre-defined distributions */ +#define ZSTD_PREDEF_THRESHOLD 8 /* if srcSize < ZSTD_PREDEF_THRESHOLD, symbols' cost is assumed static, directly determined by pre-defined distributions */ /*-************************************* * Price functions for optimal parser ***************************************/ -#if 0 /* approximation at bit level */ +#if 0 /* approximation at bit level (for tests) */ # define BITCOST_ACCURACY 0 # define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) -# define WEIGHT(stat) ((void)opt, ZSTD_bitWeight(stat)) -#elif 0 /* fractional bit accuracy */ +# define WEIGHT(stat, opt) ((void)(opt), ZSTD_bitWeight(stat)) +#elif 0 /* fractional bit accuracy (for tests) */ # define BITCOST_ACCURACY 8 # define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) -# define WEIGHT(stat,opt) ((void)opt, ZSTD_fracWeight(stat)) +# define WEIGHT(stat,opt) ((void)(opt), ZSTD_fracWeight(stat)) #else /* opt==approx, ultra==accurate */ # define BITCOST_ACCURACY 8 # define BITCOST_MULTIPLIER (1 << BITCOST_ACCURACY) -# define WEIGHT(stat,opt) (opt ? ZSTD_fracWeight(stat) : ZSTD_bitWeight(stat)) +# define WEIGHT(stat,opt) ((opt) ? ZSTD_fracWeight(stat) : ZSTD_bitWeight(stat)) #endif -namespace duckdb_zstd { - +/* ZSTD_bitWeight() : + * provide estimated "cost" of a stat in full bits only */ MEM_STATIC U32 ZSTD_bitWeight(U32 stat) { return (ZSTD_highbit32(stat+1) * BITCOST_MULTIPLIER); } +/* ZSTD_fracWeight() : + * provide fractional-bit "cost" of a stat, + * using linear interpolation approximation */ MEM_STATIC U32 ZSTD_fracWeight(U32 rawStat) { U32 const stat = rawStat + 1; U32 const hb = ZSTD_highbit32(stat); U32 const BWeight = hb * BITCOST_MULTIPLIER; + /* Fweight was meant for "Fractional weight" + * but it's effectively a value between 1 and 2 + * using fixed point arithmetic */ U32 const FWeight = (stat << BITCOST_ACCURACY) >> hb; U32 const weight = BWeight + FWeight; assert(hb + BITCOST_ACCURACY < 31); @@ -60,7 +70,7 @@ MEM_STATIC U32 ZSTD_fracWeight(U32 rawStat) /* debugging function, * @return price in bytes as fractional value * for debug messages only */ -MEM_STATIC double ZSTD_fCost(U32 price) +MEM_STATIC double ZSTD_fCost(int price) { return (double)price / (BITCOST_MULTIPLIER*8); } @@ -68,7 +78,7 @@ MEM_STATIC double ZSTD_fCost(U32 price) static int ZSTD_compressedLiterals(optState_t const* const optPtr) { - return optPtr->literalCompressionMode != ZSTD_lcm_uncompressed; + return optPtr->literalCompressionMode != ZSTD_ps_disable; } static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel) @@ -81,25 +91,52 @@ static void ZSTD_setBasePrices(optState_t* optPtr, int optLevel) } -/* ZSTD_downscaleStat() : - * reduce all elements in table by a factor 2^(ZSTD_FREQ_DIV+malus) - * return the resulting sum of elements */ -static U32 ZSTD_downscaleStat(unsigned* table, U32 lastEltIndex, int malus) +static U32 sum_u32(const unsigned table[], size_t nbElts) +{ + size_t n; + U32 total = 0; + for (n=0; n 0 && ZSTD_FREQ_DIV+malus < 31); + DEBUGLOG(5, "ZSTD_downscaleStats (nbElts=%u, shift=%u)", + (unsigned)lastEltIndex+1, (unsigned)shift ); + assert(shift < 30); for (s=0; s> (ZSTD_FREQ_DIV+malus)); - sum += table[s]; + unsigned const base = base1 ? 1 : (table[s]>0); + unsigned const newStat = base + (table[s] >> shift); + sum += newStat; + table[s] = newStat; } return sum; } +/* ZSTD_scaleStats() : + * reduce all elt frequencies in table if sum too large + * return the resulting sum of elements */ +static U32 ZSTD_scaleStats(unsigned* table, U32 lastEltIndex, U32 logTarget) +{ + U32 const prevsum = sum_u32(table, lastEltIndex+1); + U32 const factor = prevsum >> logTarget; + DEBUGLOG(5, "ZSTD_scaleStats (nbElts=%u, target=%u)", (unsigned)lastEltIndex+1, (unsigned)logTarget); + assert(logTarget < 30); + if (factor <= 1) return prevsum; + return ZSTD_downscaleStats(table, lastEltIndex, ZSTD_highbit32(factor), base_1guaranteed); +} + /* ZSTD_rescaleFreqs() : * if first block (detected by optPtr->litLengthSum == 0) : init statistics * take hints from dictionary if there is one - * or init from zero, using src for literals stats, or flat 1 for match symbols + * and init from zero if there is none, + * using src for literals stats, and baseline stats for sequence symbols * otherwise downscale existing stats, to be used as seed for next block. */ static void @@ -111,24 +148,28 @@ ZSTD_rescaleFreqs(optState_t* const optPtr, DEBUGLOG(5, "ZSTD_rescaleFreqs (srcSize=%u)", (unsigned)srcSize); optPtr->priceType = zop_dynamic; - if (optPtr->litLengthSum == 0) { /* first block : init */ - if (srcSize <= ZSTD_PREDEF_THRESHOLD) { /* heuristic */ - DEBUGLOG(5, "(srcSize <= ZSTD_PREDEF_THRESHOLD) => zop_predef"); + if (optPtr->litLengthSum == 0) { /* no literals stats collected -> first block assumed -> init */ + + /* heuristic: use pre-defined stats for too small inputs */ + if (srcSize <= ZSTD_PREDEF_THRESHOLD) { + DEBUGLOG(5, "srcSize <= %i : use predefined stats", ZSTD_PREDEF_THRESHOLD); optPtr->priceType = zop_predef; } assert(optPtr->symbolCosts != NULL); if (optPtr->symbolCosts->huf.repeatMode == HUF_repeat_valid) { - /* huffman table presumed generated by dictionary */ + + /* huffman stats covering the full value set : table presumed generated by dictionary */ optPtr->priceType = zop_dynamic; if (compressedLiterals) { + /* generate literals statistics from huffman table */ unsigned lit; assert(optPtr->litFreq != NULL); optPtr->litSum = 0; for (lit=0; lit<=MaxLit; lit++) { U32 const scaleLog = 11; /* scale to 2K */ - U32 const bitCost = HUF_getNbBits(optPtr->symbolCosts->huf.CTable, lit); + U32 const bitCost = HUF_getNbBitsFromCTable(optPtr->symbolCosts->huf.CTable, lit); assert(bitCost <= scaleLog); optPtr->litFreq[lit] = bitCost ? 1 << (scaleLog-bitCost) : 1 /*minimum to calculate cost*/; optPtr->litSum += optPtr->litFreq[lit]; @@ -170,20 +211,26 @@ ZSTD_rescaleFreqs(optState_t* const optPtr, optPtr->offCodeSum += optPtr->offCodeFreq[of]; } } - } else { /* not a dictionary */ + } else { /* first block, no dictionary */ assert(optPtr->litFreq != NULL); if (compressedLiterals) { + /* base initial cost of literals on direct frequency within src */ unsigned lit = MaxLit; HIST_count_simple(optPtr->litFreq, &lit, src, srcSize); /* use raw first block to init statistics */ - optPtr->litSum = ZSTD_downscaleStat(optPtr->litFreq, MaxLit, 1); + optPtr->litSum = ZSTD_downscaleStats(optPtr->litFreq, MaxLit, 8, base_0possible); } - { unsigned ll; - for (ll=0; ll<=MaxLL; ll++) - optPtr->litLengthFreq[ll] = 1; + { unsigned const baseLLfreqs[MaxLL+1] = { + 4, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1 + }; + ZSTD_memcpy(optPtr->litLengthFreq, baseLLfreqs, sizeof(baseLLfreqs)); + optPtr->litLengthSum = sum_u32(baseLLfreqs, MaxLL+1); } - optPtr->litLengthSum = MaxLL+1; { unsigned ml; for (ml=0; ml<=MaxML; ml++) @@ -191,21 +238,25 @@ ZSTD_rescaleFreqs(optState_t* const optPtr, } optPtr->matchLengthSum = MaxML+1; - { unsigned of; - for (of=0; of<=MaxOff; of++) - optPtr->offCodeFreq[of] = 1; + { unsigned const baseOFCfreqs[MaxOff+1] = { + 6, 2, 1, 1, 2, 3, 4, 4, + 4, 3, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1 + }; + ZSTD_memcpy(optPtr->offCodeFreq, baseOFCfreqs, sizeof(baseOFCfreqs)); + optPtr->offCodeSum = sum_u32(baseOFCfreqs, MaxOff+1); } - optPtr->offCodeSum = MaxOff+1; } - } else { /* new block : re-use previous statistics, scaled down */ + } else { /* new block : scale down accumulated statistics */ if (compressedLiterals) - optPtr->litSum = ZSTD_downscaleStat(optPtr->litFreq, MaxLit, 1); - optPtr->litLengthSum = ZSTD_downscaleStat(optPtr->litLengthFreq, MaxLL, 0); - optPtr->matchLengthSum = ZSTD_downscaleStat(optPtr->matchLengthFreq, MaxML, 0); - optPtr->offCodeSum = ZSTD_downscaleStat(optPtr->offCodeFreq, MaxOff, 0); + optPtr->litSum = ZSTD_scaleStats(optPtr->litFreq, MaxLit, 12); + optPtr->litLengthSum = ZSTD_scaleStats(optPtr->litLengthFreq, MaxLL, 11); + optPtr->matchLengthSum = ZSTD_scaleStats(optPtr->matchLengthFreq, MaxML, 11); + optPtr->offCodeSum = ZSTD_scaleStats(optPtr->offCodeFreq, MaxOff, 11); } ZSTD_setBasePrices(optPtr, optLevel); @@ -218,6 +269,7 @@ static U32 ZSTD_rawLiteralsCost(const BYTE* const literals, U32 const litLength, const optState_t* const optPtr, int optLevel) { + DEBUGLOG(8, "ZSTD_rawLiteralsCost (%u literals)", litLength); if (litLength == 0) return 0; if (!ZSTD_compressedLiterals(optPtr)) @@ -227,11 +279,14 @@ static U32 ZSTD_rawLiteralsCost(const BYTE* const literals, U32 const litLength, return (litLength*6) * BITCOST_MULTIPLIER; /* 6 bit per literal - no statistic used */ /* dynamic statistics */ - { U32 price = litLength * optPtr->litSumBasePrice; + { U32 price = optPtr->litSumBasePrice * litLength; + U32 const litPriceMax = optPtr->litSumBasePrice - BITCOST_MULTIPLIER; U32 u; + assert(optPtr->litSumBasePrice >= BITCOST_MULTIPLIER); for (u=0; u < litLength; u++) { - assert(WEIGHT(optPtr->litFreq[literals[u]], optLevel) <= optPtr->litSumBasePrice); /* literal cost should never be negative */ - price -= WEIGHT(optPtr->litFreq[literals[u]], optLevel); + U32 litPrice = WEIGHT(optPtr->litFreq[literals[u]], optLevel); + if (UNLIKELY(litPrice > litPriceMax)) litPrice = litPriceMax; + price -= litPrice; } return price; } @@ -241,33 +296,46 @@ static U32 ZSTD_rawLiteralsCost(const BYTE* const literals, U32 const litLength, * cost of literalLength symbol */ static U32 ZSTD_litLengthPrice(U32 const litLength, const optState_t* const optPtr, int optLevel) { - if (optPtr->priceType == zop_predef) return WEIGHT(litLength, optLevel); + assert(litLength <= ZSTD_BLOCKSIZE_MAX); + if (optPtr->priceType == zop_predef) + return WEIGHT(litLength, optLevel); + + /* ZSTD_LLcode() can't compute litLength price for sizes >= ZSTD_BLOCKSIZE_MAX + * because it isn't representable in the zstd format. + * So instead just pretend it would cost 1 bit more than ZSTD_BLOCKSIZE_MAX - 1. + * In such a case, the block would be all literals. + */ + if (litLength == ZSTD_BLOCKSIZE_MAX) + return BITCOST_MULTIPLIER + ZSTD_litLengthPrice(ZSTD_BLOCKSIZE_MAX - 1, optPtr, optLevel); /* dynamic statistics */ { U32 const llCode = ZSTD_LLcode(litLength); - return (ZSTDInternalConstants::LL_bits[llCode] * BITCOST_MULTIPLIER) + return (LL_bits[llCode] * BITCOST_MULTIPLIER) + optPtr->litLengthSumBasePrice - WEIGHT(optPtr->litLengthFreq[llCode], optLevel); } } /* ZSTD_getMatchPrice() : - * Provides the cost of the match part (offset + matchLength) of a sequence + * Provides the cost of the match part (offset + matchLength) of a sequence. * Must be combined with ZSTD_fullLiteralsCost() to get the full cost of a sequence. - * optLevel: when <2, favors small offset for decompression speed (improved cache efficiency) */ + * @offBase : sumtype, representing an offset or a repcode, and using numeric representation of ZSTD_storeSeq() + * @optLevel: when <2, favors small offset for decompression speed (improved cache efficiency) + */ FORCE_INLINE_TEMPLATE U32 -ZSTD_getMatchPrice(U32 const offset, +ZSTD_getMatchPrice(U32 const offBase, U32 const matchLength, const optState_t* const optPtr, int const optLevel) { U32 price; - U32 const offCode = ZSTD_highbit32(offset+1); + U32 const offCode = ZSTD_highbit32(offBase); U32 const mlBase = matchLength - MINMATCH; assert(matchLength >= MINMATCH); - if (optPtr->priceType == zop_predef) /* fixed scheme, do not use statistics */ - return WEIGHT(mlBase, optLevel) + ((16 + offCode) * BITCOST_MULTIPLIER); + if (optPtr->priceType == zop_predef) /* fixed scheme, does not use statistics */ + return WEIGHT(mlBase, optLevel) + + ((16 + offCode) * BITCOST_MULTIPLIER); /* emulated offset cost */ /* dynamic statistics */ price = (offCode * BITCOST_MULTIPLIER) + (optPtr->offCodeSumBasePrice - WEIGHT(optPtr->offCodeFreq[offCode], optLevel)); @@ -276,7 +344,7 @@ ZSTD_getMatchPrice(U32 const offset, /* match Length */ { U32 const mlCode = ZSTD_MLcode(mlBase); - price += (ZSTDInternalConstants::ML_bits[mlCode] * BITCOST_MULTIPLIER) + (optPtr->matchLengthSumBasePrice - WEIGHT(optPtr->matchLengthFreq[mlCode], optLevel)); + price += (ML_bits[mlCode] * BITCOST_MULTIPLIER) + (optPtr->matchLengthSumBasePrice - WEIGHT(optPtr->matchLengthFreq[mlCode], optLevel)); } price += BITCOST_MULTIPLIER / 5; /* heuristic : make matches a bit more costly to favor less sequences -> faster decompression speed */ @@ -286,10 +354,10 @@ ZSTD_getMatchPrice(U32 const offset, } /* ZSTD_updateStats() : - * assumption : literals + litLengtn <= iend */ + * assumption : literals + litLength <= iend */ static void ZSTD_updateStats(optState_t* const optPtr, U32 litLength, const BYTE* literals, - U32 offsetCode, U32 matchLength) + U32 offBase, U32 matchLength) { /* literals */ if (ZSTD_compressedLiterals(optPtr)) { @@ -305,8 +373,8 @@ static void ZSTD_updateStats(optState_t* const optPtr, optPtr->litLengthSum++; } - /* match offset code (0-2=>repCode; 3+=>offset+2) */ - { U32 const offCode = ZSTD_highbit32(offsetCode+1); + /* offset code : follows storeSeq() numeric representation */ + { U32 const offCode = ZSTD_highbit32(offBase); assert(offCode <= MaxOff); optPtr->offCodeFreq[offCode]++; optPtr->offCodeSum++; @@ -340,9 +408,11 @@ MEM_STATIC U32 ZSTD_readMINMATCH(const void* memPtr, U32 length) /* Update hashTable3 up to ip (excluded) Assumption : always within prefix (i.e. not within extDict) */ -static U32 ZSTD_insertAndFindFirstIndexHash3 (ZSTD_matchState_t* ms, - U32* nextToUpdate3, - const BYTE* const ip) +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_insertAndFindFirstIndexHash3 (const ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* const ip) { U32* const hashTable3 = ms->hashTable3; U32 const hashLog3 = ms->hashLog3; @@ -366,11 +436,15 @@ static U32 ZSTD_insertAndFindFirstIndexHash3 (ZSTD_matchState_t* ms, * Binary Tree search ***************************************/ /** ZSTD_insertBt1() : add one or multiple positions to tree. - * ip : assumed <= iend-8 . + * @param ip assumed <= iend-8 . + * @param target The target of ZSTD_updateTree_internal() - we are filling to this position * @return : nb of positions added */ -static U32 ZSTD_insertBt1( - ZSTD_matchState_t* ms, +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_insertBt1( + const ZSTD_matchState_t* ms, const BYTE* const ip, const BYTE* const iend, + U32 const target, U32 const mls, const int extDict) { const ZSTD_compressionParameters* const cParams = &ms->cParams; @@ -388,32 +462,36 @@ static U32 ZSTD_insertBt1( const BYTE* const dictEnd = dictBase + dictLimit; const BYTE* const prefixStart = base + dictLimit; const BYTE* match; - const U32 current = (U32)(ip-base); - const U32 btLow = btMask >= current ? 0 : current - btMask; - U32* smallerPtr = bt + 2*(current&btMask); + const U32 curr = (U32)(ip-base); + const U32 btLow = btMask >= curr ? 0 : curr - btMask; + U32* smallerPtr = bt + 2*(curr&btMask); U32* largerPtr = smallerPtr + 1; U32 dummy32; /* to be nullified at the end */ - U32 const windowLow = ms->window.lowLimit; - U32 matchEndIdx = current+8+1; + /* windowLow is based on target because + * we only need positions that will be in the window at the end of the tree update. + */ + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, target, cParams->windowLog); + U32 matchEndIdx = curr+8+1; size_t bestLength = 8; U32 nbCompares = 1U << cParams->searchLog; #ifdef ZSTD_C_PREDICT - U32 predictedSmall = *(bt + 2*((current-1)&btMask) + 0); - U32 predictedLarge = *(bt + 2*((current-1)&btMask) + 1); + U32 predictedSmall = *(bt + 2*((curr-1)&btMask) + 0); + U32 predictedLarge = *(bt + 2*((curr-1)&btMask) + 1); predictedSmall += (predictedSmall>0); predictedLarge += (predictedLarge>0); #endif /* ZSTD_C_PREDICT */ - DEBUGLOG(8, "ZSTD_insertBt1 (%u)", current); + DEBUGLOG(8, "ZSTD_insertBt1 (%u)", curr); + assert(curr <= target); assert(ip <= iend-8); /* required for h calculation */ - hashTable[h] = current; /* Update Hash Table */ + hashTable[h] = curr; /* Update Hash Table */ assert(windowLow > 0); - while (nbCompares-- && (matchIndex >= windowLow)) { + for (; nbCompares && (matchIndex >= windowLow); --nbCompares) { U32* const nextPtr = bt + 2*(matchIndex & btMask); size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ - assert(matchIndex < current); + assert(matchIndex < curr); #ifdef ZSTD_C_PREDICT /* note : can create issues when hlog small <= 11 */ const U32* predictPtr = bt + 2*((matchIndex-1) & btMask); /* written this way, as bt is a roll buffer */ @@ -476,12 +554,13 @@ static U32 ZSTD_insertBt1( *smallerPtr = *largerPtr = 0; { U32 positions = 0; if (bestLength > 384) positions = MIN(192, (U32)(bestLength - 384)); /* speed optimization */ - assert(matchEndIdx > current + 8); - return MAX(positions, matchEndIdx - (current + 8)); + assert(matchEndIdx > curr + 8); + return MAX(positions, matchEndIdx - (curr + 8)); } } FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR void ZSTD_updateTree_internal( ZSTD_matchState_t* ms, const BYTE* const ip, const BYTE* const iend, @@ -490,11 +569,11 @@ void ZSTD_updateTree_internal( const BYTE* const base = ms->window.base; U32 const target = (U32)(ip - base); U32 idx = ms->nextToUpdate; - DEBUGLOG(6, "ZSTD_updateTree_internal, from %u to %u (dictMode:%u)", + DEBUGLOG(7, "ZSTD_updateTree_internal, from %u to %u (dictMode:%u)", idx, target, dictMode); while(idx < target) { - U32 const forward = ZSTD_insertBt1(ms, base+idx, iend, mls, dictMode == ZSTD_extDict); + U32 const forward = ZSTD_insertBt1(ms, base+idx, iend, target, mls, dictMode == ZSTD_extDict); assert(idx < (U32)(idx + forward)); idx += forward; } @@ -508,20 +587,23 @@ void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend) { } FORCE_INLINE_TEMPLATE -U32 ZSTD_insertBtAndGetAllMatches ( - ZSTD_match_t* matches, /* store result (found matches) in this table (presumed large enough) */ - ZSTD_matchState_t* ms, - U32* nextToUpdate3, - const BYTE* const ip, const BYTE* const iLimit, const ZSTD_dictMode_e dictMode, - const U32 rep[ZSTD_REP_NUM], - U32 const ll0, /* tells if associated literal length is 0 or not. This value must be 0 or 1 */ - const U32 lengthToBeat, - U32 const mls /* template */) +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 +ZSTD_insertBtAndGetAllMatches ( + ZSTD_match_t* matches, /* store result (found matches) in this table (presumed large enough) */ + ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* const ip, const BYTE* const iLimit, + const ZSTD_dictMode_e dictMode, + const U32 rep[ZSTD_REP_NUM], + const U32 ll0, /* tells if associated literal length is 0 or not. This value must be 0 or 1 */ + const U32 lengthToBeat, + const U32 mls /* template */) { const ZSTD_compressionParameters* const cParams = &ms->cParams; U32 const sufficient_len = MIN(cParams->targetLength, ZSTD_OPT_NUM -1); const BYTE* const base = ms->window.base; - U32 const current = (U32)(ip-base); + U32 const curr = (U32)(ip-base); U32 const hashLog = cParams->hashLog; U32 const minMatch = (mls==3) ? 3 : 4; U32* const hashTable = ms->hashTable; @@ -535,12 +617,12 @@ U32 ZSTD_insertBtAndGetAllMatches ( U32 const dictLimit = ms->window.dictLimit; const BYTE* const dictEnd = dictBase + dictLimit; const BYTE* const prefixStart = base + dictLimit; - U32 const btLow = (btMask >= current) ? 0 : current - btMask; - U32 const windowLow = ZSTD_getLowestMatchIndex(ms, current, cParams->windowLog); + U32 const btLow = (btMask >= curr) ? 0 : curr - btMask; + U32 const windowLow = ZSTD_getLowestMatchIndex(ms, curr, cParams->windowLog); U32 const matchLow = windowLow ? windowLow : 1; - U32* smallerPtr = bt + 2*(current&btMask); - U32* largerPtr = bt + 2*(current&btMask) + 1; - U32 matchEndIdx = current+8+1; /* farthest referenced position of any match => detects repetitive patterns */ + U32* smallerPtr = bt + 2*(curr&btMask); + U32* largerPtr = bt + 2*(curr&btMask) + 1; + U32 matchEndIdx = curr+8+1; /* farthest referenced position of any match => detects repetitive patterns */ U32 dummy32; /* to be nullified at the end */ U32 mnum = 0; U32 nbCompares = 1U << cParams->searchLog; @@ -559,7 +641,7 @@ U32 ZSTD_insertBtAndGetAllMatches ( U32 const dmsBtLow = dictMode == ZSTD_dictMatchState && dmsBtMask < dmsHighLimit - dmsLowLimit ? dmsHighLimit - dmsBtMask : dmsLowLimit; size_t bestLength = lengthToBeat-1; - DEBUGLOG(8, "ZSTD_insertBtAndGetAllMatches: current=%u", current); + DEBUGLOG(8, "ZSTD_insertBtAndGetAllMatches: current=%u", curr); /* check repCode */ assert(ll0 <= 1); /* necessarily 1 or 0 */ @@ -567,29 +649,29 @@ U32 ZSTD_insertBtAndGetAllMatches ( U32 repCode; for (repCode = ll0; repCode < lastR; repCode++) { U32 const repOffset = (repCode==ZSTD_REP_NUM) ? (rep[0] - 1) : rep[repCode]; - U32 const repIndex = current - repOffset; + U32 const repIndex = curr - repOffset; U32 repLen = 0; - assert(current >= dictLimit); - if (repOffset-1 /* intentional overflow, discards 0 and -1 */ < current-dictLimit) { /* equivalent to `current > repIndex >= dictLimit` */ + assert(curr >= dictLimit); + if (repOffset-1 /* intentional overflow, discards 0 and -1 */ < curr-dictLimit) { /* equivalent to `curr > repIndex >= dictLimit` */ /* We must validate the repcode offset because when we're using a dictionary the * valid offset range shrinks when the dictionary goes out of bounds. */ if ((repIndex >= windowLow) & (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(ip - repOffset, minMatch))) { repLen = (U32)ZSTD_count(ip+minMatch, ip+minMatch-repOffset, iLimit) + minMatch; } - } else { /* repIndex < dictLimit || repIndex >= current */ + } else { /* repIndex < dictLimit || repIndex >= curr */ const BYTE* const repMatch = dictMode == ZSTD_dictMatchState ? dmsBase + repIndex - dmsIndexDelta : dictBase + repIndex; - assert(current >= windowLow); + assert(curr >= windowLow); if ( dictMode == ZSTD_extDict - && ( ((repOffset-1) /*intentional overflow*/ < current - windowLow) /* equivalent to `current > repIndex >= windowLow` */ + && ( ((repOffset-1) /*intentional overflow*/ < curr - windowLow) /* equivalent to `curr > repIndex >= windowLow` */ & (((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */) && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) { repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dictEnd, prefixStart) + minMatch; } if (dictMode == ZSTD_dictMatchState - && ( ((repOffset-1) /*intentional overflow*/ < current - (dmsLowLimit + dmsIndexDelta)) /* equivalent to `current > repIndex >= dmsLowLimit` */ + && ( ((repOffset-1) /*intentional overflow*/ < curr - (dmsLowLimit + dmsIndexDelta)) /* equivalent to `curr > repIndex >= dmsLowLimit` */ & ((U32)((dictLimit-1) - repIndex) >= 3) ) /* intentional overflow : do not test positions overlapping 2 memory segments */ && (ZSTD_readMINMATCH(ip, minMatch) == ZSTD_readMINMATCH(repMatch, minMatch)) ) { repLen = (U32)ZSTD_count_2segments(ip+minMatch, repMatch+minMatch, iLimit, dmsEnd, prefixStart) + minMatch; @@ -599,7 +681,7 @@ U32 ZSTD_insertBtAndGetAllMatches ( DEBUGLOG(8, "found repCode %u (ll0:%u, offset:%u) of length %u", repCode, ll0, repOffset, repLen); bestLength = repLen; - matches[mnum].off = repCode - ll0; + matches[mnum].off = REPCODE_TO_OFFBASE(repCode - ll0 + 1); /* expect value between 1 and 3 */ matches[mnum].len = (U32)repLen; mnum++; if ( (repLen > sufficient_len) @@ -611,7 +693,7 @@ U32 ZSTD_insertBtAndGetAllMatches ( if ((mls == 3) /*static*/ && (bestLength < mls)) { U32 const matchIndex3 = ZSTD_insertAndFindFirstIndexHash3(ms, nextToUpdate3, ip); if ((matchIndex3 >= matchLow) - & (current - matchIndex3 < (1<<18)) /*heuristic : longer distance likely too expensive*/ ) { + & (curr - matchIndex3 < (1<<18)) /*heuristic : longer distance likely too expensive*/ ) { size_t mlen; if ((dictMode == ZSTD_noDict) /*static*/ || (dictMode == ZSTD_dictMatchState) /*static*/ || (matchIndex3 >= dictLimit)) { const BYTE* const match = base + matchIndex3; @@ -626,26 +708,26 @@ U32 ZSTD_insertBtAndGetAllMatches ( DEBUGLOG(8, "found small match with hlog3, of length %u", (U32)mlen); bestLength = mlen; - assert(current > matchIndex3); + assert(curr > matchIndex3); assert(mnum==0); /* no prior solution */ - matches[0].off = (current - matchIndex3) + ZSTD_REP_MOVE; + matches[0].off = OFFSET_TO_OFFBASE(curr - matchIndex3); matches[0].len = (U32)mlen; mnum = 1; if ( (mlen > sufficient_len) | (ip+mlen == iLimit) ) { /* best possible length */ - ms->nextToUpdate = current+1; /* skip insertion */ + ms->nextToUpdate = curr+1; /* skip insertion */ return 1; } } } /* no dictMatchState lookup: dicts don't have a populated HC3 table */ - } + } /* if (mls == 3) */ - hashTable[h] = current; /* Update Hash Table */ + hashTable[h] = curr; /* Update Hash Table */ - while (nbCompares-- && (matchIndex >= matchLow)) { + for (; nbCompares && (matchIndex >= matchLow); --nbCompares) { U32* const nextPtr = bt + 2*(matchIndex & btMask); const BYTE* match; size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ - assert(current > matchIndex); + assert(curr > matchIndex); if ((dictMode == ZSTD_noDict) || (dictMode == ZSTD_dictMatchState) || (matchIndex+matchLength >= dictLimit)) { assert(matchIndex+matchLength >= dictLimit); /* ensure the condition is correct when !extDict */ @@ -661,21 +743,20 @@ U32 ZSTD_insertBtAndGetAllMatches ( } if (matchLength > bestLength) { - DEBUGLOG(8, "found match of length %u at distance %u (offCode=%u)", - (U32)matchLength, current - matchIndex, current - matchIndex + ZSTD_REP_MOVE); + DEBUGLOG(8, "found match of length %u at distance %u (offBase=%u)", + (U32)matchLength, curr - matchIndex, OFFSET_TO_OFFBASE(curr - matchIndex)); assert(matchEndIdx > matchIndex); if (matchLength > matchEndIdx - matchIndex) matchEndIdx = matchIndex + (U32)matchLength; bestLength = matchLength; - matches[mnum].off = (current - matchIndex) + ZSTD_REP_MOVE; + matches[mnum].off = OFFSET_TO_OFFBASE(curr - matchIndex); matches[mnum].len = (U32)matchLength; mnum++; if ( (matchLength > ZSTD_OPT_NUM) | (ip+matchLength == iLimit) /* equal : no way to know if inf or sup */) { if (dictMode == ZSTD_dictMatchState) nbCompares = 0; /* break should also skip searching dms */ break; /* drop, to preserve bt consistency (miss a little bit of compression) */ - } - } + } } if (match[matchLength] < ip[matchLength]) { /* match smaller than current */ @@ -694,12 +775,13 @@ U32 ZSTD_insertBtAndGetAllMatches ( *smallerPtr = *largerPtr = 0; + assert(nbCompares <= (1U << ZSTD_SEARCHLOG_MAX)); /* Check we haven't underflowed. */ if (dictMode == ZSTD_dictMatchState && nbCompares) { size_t const dmsH = ZSTD_hashPtr(ip, dmsHashLog, mls); U32 dictMatchIndex = dms->hashTable[dmsH]; const U32* const dmsBt = dms->chainTable; commonLengthSmaller = commonLengthLarger = 0; - while (nbCompares-- && (dictMatchIndex > dmsLowLimit)) { + for (; nbCompares && (dictMatchIndex > dmsLowLimit); --nbCompares) { const U32* const nextPtr = dmsBt + 2*(dictMatchIndex & dmsBtMask); size_t matchLength = MIN(commonLengthSmaller, commonLengthLarger); /* guaranteed minimum nb of common bytes */ const BYTE* match = dmsBase + dictMatchIndex; @@ -709,19 +791,18 @@ U32 ZSTD_insertBtAndGetAllMatches ( if (matchLength > bestLength) { matchIndex = dictMatchIndex + dmsIndexDelta; - DEBUGLOG(8, "found dms match of length %u at distance %u (offCode=%u)", - (U32)matchLength, current - matchIndex, current - matchIndex + ZSTD_REP_MOVE); + DEBUGLOG(8, "found dms match of length %u at distance %u (offBase=%u)", + (U32)matchLength, curr - matchIndex, OFFSET_TO_OFFBASE(curr - matchIndex)); if (matchLength > matchEndIdx - matchIndex) matchEndIdx = matchIndex + (U32)matchLength; bestLength = matchLength; - matches[mnum].off = (current - matchIndex) + ZSTD_REP_MOVE; + matches[mnum].off = OFFSET_TO_OFFBASE(curr - matchIndex); matches[mnum].len = (U32)matchLength; mnum++; if ( (matchLength > ZSTD_OPT_NUM) | (ip+matchLength == iLimit) /* equal : no way to know if inf or sup */) { break; /* drop, to guarantee consistency (miss a little bit of compression) */ - } - } + } } if (dictMatchIndex <= dmsBtLow) { break; } /* beyond tree size, stop the search */ if (match[matchLength] < ip[matchLength]) { @@ -731,52 +812,244 @@ U32 ZSTD_insertBtAndGetAllMatches ( /* match is larger than current */ commonLengthLarger = matchLength; dictMatchIndex = nextPtr[0]; - } - } - } + } } } /* if (dictMode == ZSTD_dictMatchState) */ - assert(matchEndIdx > current+8); + assert(matchEndIdx > curr+8); ms->nextToUpdate = matchEndIdx - 8; /* skip repetitive patterns */ return mnum; } +typedef U32 (*ZSTD_getAllMatchesFn)( + ZSTD_match_t*, + ZSTD_matchState_t*, + U32*, + const BYTE*, + const BYTE*, + const U32 rep[ZSTD_REP_NUM], + U32 const ll0, + U32 const lengthToBeat); -FORCE_INLINE_TEMPLATE U32 ZSTD_BtGetAllMatches ( - ZSTD_match_t* matches, /* store result (match found, increasing size) in this table */ - ZSTD_matchState_t* ms, - U32* nextToUpdate3, - const BYTE* ip, const BYTE* const iHighLimit, const ZSTD_dictMode_e dictMode, - const U32 rep[ZSTD_REP_NUM], - U32 const ll0, - U32 const lengthToBeat) +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_btGetAllMatches_internal( + ZSTD_match_t* matches, + ZSTD_matchState_t* ms, + U32* nextToUpdate3, + const BYTE* ip, + const BYTE* const iHighLimit, + const U32 rep[ZSTD_REP_NUM], + U32 const ll0, + U32 const lengthToBeat, + const ZSTD_dictMode_e dictMode, + const U32 mls) { - const ZSTD_compressionParameters* const cParams = &ms->cParams; - U32 const matchLengthSearch = cParams->minMatch; - DEBUGLOG(8, "ZSTD_BtGetAllMatches"); - if (ip < ms->window.base + ms->nextToUpdate) return 0; /* skipped area */ - ZSTD_updateTree_internal(ms, ip, iHighLimit, matchLengthSearch, dictMode); - switch(matchLengthSearch) - { - case 3 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 3); - default : - case 4 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 4); - case 5 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 5); - case 7 : - case 6 : return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, 6); + assert(BOUNDED(3, ms->cParams.minMatch, 6) == mls); + DEBUGLOG(8, "ZSTD_BtGetAllMatches(dictMode=%d, mls=%u)", (int)dictMode, mls); + if (ip < ms->window.base + ms->nextToUpdate) + return 0; /* skipped area */ + ZSTD_updateTree_internal(ms, ip, iHighLimit, mls, dictMode); + return ZSTD_insertBtAndGetAllMatches(matches, ms, nextToUpdate3, ip, iHighLimit, dictMode, rep, ll0, lengthToBeat, mls); +} + +#define ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, mls) ZSTD_btGetAllMatches_##dictMode##_##mls + +#define GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, mls) \ + static U32 ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, mls)( \ + ZSTD_match_t* matches, \ + ZSTD_matchState_t* ms, \ + U32* nextToUpdate3, \ + const BYTE* ip, \ + const BYTE* const iHighLimit, \ + const U32 rep[ZSTD_REP_NUM], \ + U32 const ll0, \ + U32 const lengthToBeat) \ + { \ + return ZSTD_btGetAllMatches_internal( \ + matches, ms, nextToUpdate3, ip, iHighLimit, \ + rep, ll0, lengthToBeat, ZSTD_##dictMode, mls); \ + } + +#define GEN_ZSTD_BT_GET_ALL_MATCHES(dictMode) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 3) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 4) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 5) \ + GEN_ZSTD_BT_GET_ALL_MATCHES_(dictMode, 6) + +GEN_ZSTD_BT_GET_ALL_MATCHES(noDict) +GEN_ZSTD_BT_GET_ALL_MATCHES(extDict) +GEN_ZSTD_BT_GET_ALL_MATCHES(dictMatchState) + +#define ZSTD_BT_GET_ALL_MATCHES_ARRAY(dictMode) \ + { \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 3), \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 4), \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 5), \ + ZSTD_BT_GET_ALL_MATCHES_FN(dictMode, 6) \ + } + +static ZSTD_getAllMatchesFn +ZSTD_selectBtGetAllMatches(ZSTD_matchState_t const* ms, ZSTD_dictMode_e const dictMode) +{ + ZSTD_getAllMatchesFn const getAllMatchesFns[3][4] = { + ZSTD_BT_GET_ALL_MATCHES_ARRAY(noDict), + ZSTD_BT_GET_ALL_MATCHES_ARRAY(extDict), + ZSTD_BT_GET_ALL_MATCHES_ARRAY(dictMatchState) + }; + U32 const mls = BOUNDED(3, ms->cParams.minMatch, 6); + assert((U32)dictMode < 3); + assert(mls - 3 < 4); + return getAllMatchesFns[(int)dictMode][mls - 3]; +} + +/************************* +* LDM helper functions * +*************************/ + +/* Struct containing info needed to make decision about ldm inclusion */ +typedef struct { + rawSeqStore_t seqStore; /* External match candidates store for this block */ + U32 startPosInBlock; /* Start position of the current match candidate */ + U32 endPosInBlock; /* End position of the current match candidate */ + U32 offset; /* Offset of the match candidate */ +} ZSTD_optLdm_t; + +/* ZSTD_optLdm_skipRawSeqStoreBytes(): + * Moves forward in @rawSeqStore by @nbBytes, + * which will update the fields 'pos' and 'posInSequence'. + */ +static void ZSTD_optLdm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes) +{ + U32 currPos = (U32)(rawSeqStore->posInSequence + nbBytes); + while (currPos && rawSeqStore->pos < rawSeqStore->size) { + rawSeq currSeq = rawSeqStore->seq[rawSeqStore->pos]; + if (currPos >= currSeq.litLength + currSeq.matchLength) { + currPos -= currSeq.litLength + currSeq.matchLength; + rawSeqStore->pos++; + } else { + rawSeqStore->posInSequence = currPos; + break; + } + } + if (currPos == 0 || rawSeqStore->pos == rawSeqStore->size) { + rawSeqStore->posInSequence = 0; } } +/* ZSTD_opt_getNextMatchAndUpdateSeqStore(): + * Calculates the beginning and end of the next match in the current block. + * Updates 'pos' and 'posInSequence' of the ldmSeqStore. + */ +static void +ZSTD_opt_getNextMatchAndUpdateSeqStore(ZSTD_optLdm_t* optLdm, U32 currPosInBlock, + U32 blockBytesRemaining) +{ + rawSeq currSeq; + U32 currBlockEndPos; + U32 literalsBytesRemaining; + U32 matchBytesRemaining; + + /* Setting match end position to MAX to ensure we never use an LDM during this block */ + if (optLdm->seqStore.size == 0 || optLdm->seqStore.pos >= optLdm->seqStore.size) { + optLdm->startPosInBlock = UINT_MAX; + optLdm->endPosInBlock = UINT_MAX; + return; + } + /* Calculate appropriate bytes left in matchLength and litLength + * after adjusting based on ldmSeqStore->posInSequence */ + currSeq = optLdm->seqStore.seq[optLdm->seqStore.pos]; + assert(optLdm->seqStore.posInSequence <= currSeq.litLength + currSeq.matchLength); + currBlockEndPos = currPosInBlock + blockBytesRemaining; + literalsBytesRemaining = (optLdm->seqStore.posInSequence < currSeq.litLength) ? + currSeq.litLength - (U32)optLdm->seqStore.posInSequence : + 0; + matchBytesRemaining = (literalsBytesRemaining == 0) ? + currSeq.matchLength - ((U32)optLdm->seqStore.posInSequence - currSeq.litLength) : + currSeq.matchLength; + + /* If there are more literal bytes than bytes remaining in block, no ldm is possible */ + if (literalsBytesRemaining >= blockBytesRemaining) { + optLdm->startPosInBlock = UINT_MAX; + optLdm->endPosInBlock = UINT_MAX; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, blockBytesRemaining); + return; + } -/*-******************************* -* Optimal parser -*********************************/ + /* Matches may be < MINMATCH by this process. In that case, we will reject them + when we are deciding whether or not to add the ldm */ + optLdm->startPosInBlock = currPosInBlock + literalsBytesRemaining; + optLdm->endPosInBlock = optLdm->startPosInBlock + matchBytesRemaining; + optLdm->offset = currSeq.offset; + + if (optLdm->endPosInBlock > currBlockEndPos) { + /* Match ends after the block ends, we can't use the whole match */ + optLdm->endPosInBlock = currBlockEndPos; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, currBlockEndPos - currPosInBlock); + } else { + /* Consume nb of bytes equal to size of sequence left */ + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, literalsBytesRemaining + matchBytesRemaining); + } +} + +/* ZSTD_optLdm_maybeAddMatch(): + * Adds a match if it's long enough, + * based on it's 'matchStartPosInBlock' and 'matchEndPosInBlock', + * into 'matches'. Maintains the correct ordering of 'matches'. + */ +static void ZSTD_optLdm_maybeAddMatch(ZSTD_match_t* matches, U32* nbMatches, + const ZSTD_optLdm_t* optLdm, U32 currPosInBlock) +{ + U32 const posDiff = currPosInBlock - optLdm->startPosInBlock; + /* Note: ZSTD_match_t actually contains offBase and matchLength (before subtracting MINMATCH) */ + U32 const candidateMatchLength = optLdm->endPosInBlock - optLdm->startPosInBlock - posDiff; + + /* Ensure that current block position is not outside of the match */ + if (currPosInBlock < optLdm->startPosInBlock + || currPosInBlock >= optLdm->endPosInBlock + || candidateMatchLength < MINMATCH) { + return; + } + if (*nbMatches == 0 || ((candidateMatchLength > matches[*nbMatches-1].len) && *nbMatches < ZSTD_OPT_NUM)) { + U32 const candidateOffBase = OFFSET_TO_OFFBASE(optLdm->offset); + DEBUGLOG(6, "ZSTD_optLdm_maybeAddMatch(): Adding ldm candidate match (offBase: %u matchLength %u) at block position=%u", + candidateOffBase, candidateMatchLength, currPosInBlock); + matches[*nbMatches].len = candidateMatchLength; + matches[*nbMatches].off = candidateOffBase; + (*nbMatches)++; + } +} -static U32 ZSTD_totalLen(ZSTD_optimal_t sol) +/* ZSTD_optLdm_processMatchCandidate(): + * Wrapper function to update ldm seq store and call ldm functions as necessary. + */ +static void +ZSTD_optLdm_processMatchCandidate(ZSTD_optLdm_t* optLdm, + ZSTD_match_t* matches, U32* nbMatches, + U32 currPosInBlock, U32 remainingBytes) { - return sol.litlen + sol.mlen; + if (optLdm->seqStore.size == 0 || optLdm->seqStore.pos >= optLdm->seqStore.size) { + return; + } + + if (currPosInBlock >= optLdm->endPosInBlock) { + if (currPosInBlock > optLdm->endPosInBlock) { + /* The position at which ZSTD_optLdm_processMatchCandidate() is called is not necessarily + * at the end of a match from the ldm seq store, and will often be some bytes + * over beyond matchEndPosInBlock. As such, we need to correct for these "overshoots" + */ + U32 const posOvershoot = currPosInBlock - optLdm->endPosInBlock; + ZSTD_optLdm_skipRawSeqStoreBytes(&optLdm->seqStore, posOvershoot); + } + ZSTD_opt_getNextMatchAndUpdateSeqStore(optLdm, currPosInBlock, remainingBytes); + } + ZSTD_optLdm_maybeAddMatch(matches, nbMatches, optLdm, currPosInBlock); } + +/*-******************************* +* Optimal parser +*********************************/ + #if 0 /* debug */ static void @@ -794,7 +1067,13 @@ listStats(const U32* table, int lastEltID) #endif -FORCE_INLINE_TEMPLATE size_t +#define LIT_PRICE(_p) (int)ZSTD_rawLiteralsCost(_p, 1, optStatePtr, optLevel) +#define LL_PRICE(_l) (int)ZSTD_litLengthPrice(_l, optStatePtr, optLevel) +#define LL_INCPRICE(_l) (LL_PRICE(_l) - LL_PRICE(_l-1)) + +FORCE_INLINE_TEMPLATE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], @@ -812,13 +1091,22 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, const BYTE* const prefixStart = base + ms->window.dictLimit; const ZSTD_compressionParameters* const cParams = &ms->cParams; + ZSTD_getAllMatchesFn getAllMatches = ZSTD_selectBtGetAllMatches(ms, dictMode); + U32 const sufficient_len = MIN(cParams->targetLength, ZSTD_OPT_NUM -1); U32 const minMatch = (cParams->minMatch == 3) ? 3 : 4; U32 nextToUpdate3 = ms->nextToUpdate; ZSTD_optimal_t* const opt = optStatePtr->priceTable; ZSTD_match_t* const matches = optStatePtr->matchTable; - ZSTD_optimal_t lastSequence; + ZSTD_optimal_t lastStretch; + ZSTD_optLdm_t optLdm; + + ZSTD_memset(&lastStretch, 0, sizeof(ZSTD_optimal_t)); + + optLdm.seqStore = ms->ldmSeqStore ? *ms->ldmSeqStore : kNullRawSeqStore; + optLdm.endPosInBlock = optLdm.startPosInBlock = optLdm.offset = 0; + ZSTD_opt_getNextMatchAndUpdateSeqStore(&optLdm, (U32)(ip-istart), (U32)(iend-ip)); /* init */ DEBUGLOG(5, "ZSTD_compressBlock_opt_generic: current=%u, prefix=%u, nextToUpdate=%u", @@ -834,102 +1122,141 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, /* find first match */ { U32 const litlen = (U32)(ip - anchor); U32 const ll0 = !litlen; - U32 const nbMatches = ZSTD_BtGetAllMatches(matches, ms, &nextToUpdate3, ip, iend, dictMode, rep, ll0, minMatch); - if (!nbMatches) { ip++; continue; } + U32 nbMatches = getAllMatches(matches, ms, &nextToUpdate3, ip, iend, rep, ll0, minMatch); + ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches, + (U32)(ip-istart), (U32)(iend-ip)); + if (!nbMatches) { + DEBUGLOG(8, "no match found at cPos %u", (unsigned)(ip-istart)); + ip++; + continue; + } + + /* Match found: let's store this solution, and eventually find more candidates. + * During this forward pass, @opt is used to store stretches, + * defined as "a match followed by N literals". + * Note how this is different from a Sequence, which is "N literals followed by a match". + * Storing stretches allows us to store different match predecessors + * for each literal position part of a literals run. */ /* initialize opt[0] */ - { U32 i ; for (i=0; i immediate encoding */ { U32 const maxML = matches[nbMatches-1].len; - U32 const maxOffset = matches[nbMatches-1].off; - DEBUGLOG(6, "found %u matches of maxLength=%u and maxOffCode=%u at cPos=%u => start new series", - nbMatches, maxML, maxOffset, (U32)(ip-prefixStart)); + U32 const maxOffBase = matches[nbMatches-1].off; + DEBUGLOG(6, "found %u matches of maxLength=%u and maxOffBase=%u at cPos=%u => start new series", + nbMatches, maxML, maxOffBase, (U32)(ip-prefixStart)); if (maxML > sufficient_len) { - lastSequence.litlen = litlen; - lastSequence.mlen = maxML; - lastSequence.off = maxOffset; - DEBUGLOG(6, "large match (%u>%u), immediate encoding", + lastStretch.litlen = 0; + lastStretch.mlen = maxML; + lastStretch.off = maxOffBase; + DEBUGLOG(6, "large match (%u>%u) => immediate encoding", maxML, sufficient_len); cur = 0; - last_pos = ZSTD_totalLen(lastSequence); + last_pos = maxML; goto _shortestPath; } } /* set prices for first matches starting position == 0 */ - { U32 const literalsPrice = opt[0].price + ZSTD_litLengthPrice(0, optStatePtr, optLevel); - U32 pos; + assert(opt[0].price >= 0); + { U32 pos; U32 matchNb; for (pos = 1; pos < minMatch; pos++) { - opt[pos].price = ZSTD_MAX_PRICE; /* mlen, litlen and price will be fixed during forward scanning */ + opt[pos].price = ZSTD_MAX_PRICE; + opt[pos].mlen = 0; + opt[pos].litlen = litlen + pos; } for (matchNb = 0; matchNb < nbMatches; matchNb++) { - U32 const offset = matches[matchNb].off; + U32 const offBase = matches[matchNb].off; U32 const end = matches[matchNb].len; for ( ; pos <= end ; pos++ ) { - U32 const matchPrice = ZSTD_getMatchPrice(offset, pos, optStatePtr, optLevel); - U32 const sequencePrice = literalsPrice + matchPrice; + int const matchPrice = (int)ZSTD_getMatchPrice(offBase, pos, optStatePtr, optLevel); + int const sequencePrice = opt[0].price + matchPrice; DEBUGLOG(7, "rPos:%u => set initial price : %.2f", pos, ZSTD_fCost(sequencePrice)); opt[pos].mlen = pos; - opt[pos].off = offset; - opt[pos].litlen = litlen; - opt[pos].price = sequencePrice; - } } + opt[pos].off = offBase; + opt[pos].litlen = 0; /* end of match */ + opt[pos].price = sequencePrice + LL_PRICE(0); + } + } last_pos = pos-1; + opt[pos].price = ZSTD_MAX_PRICE; } } /* check further positions */ for (cur = 1; cur <= last_pos; cur++) { const BYTE* const inr = ip + cur; - assert(cur < ZSTD_OPT_NUM); - DEBUGLOG(7, "cPos:%zi==rPos:%u", inr-istart, cur) + assert(cur <= ZSTD_OPT_NUM); + DEBUGLOG(7, "cPos:%zi==rPos:%u", inr-istart, cur); /* Fix current position with one literal if cheaper */ - { U32 const litlen = (opt[cur-1].mlen == 0) ? opt[cur-1].litlen + 1 : 1; + { U32 const litlen = opt[cur-1].litlen + 1; int const price = opt[cur-1].price - + ZSTD_rawLiteralsCost(ip+cur-1, 1, optStatePtr, optLevel) - + ZSTD_litLengthPrice(litlen, optStatePtr, optLevel) - - ZSTD_litLengthPrice(litlen-1, optStatePtr, optLevel); + + LIT_PRICE(ip+cur-1) + + LL_INCPRICE(litlen); assert(price < 1000000000); /* overflow check */ if (price <= opt[cur].price) { + ZSTD_optimal_t const prevMatch = opt[cur]; DEBUGLOG(7, "cPos:%zi==rPos:%u : better price (%.2f<=%.2f) using literal (ll==%u) (hist:%u,%u,%u)", inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), litlen, opt[cur-1].rep[0], opt[cur-1].rep[1], opt[cur-1].rep[2]); - opt[cur].mlen = 0; - opt[cur].off = 0; + opt[cur] = opt[cur-1]; opt[cur].litlen = litlen; opt[cur].price = price; + if ( (optLevel >= 1) /* additional check only for higher modes */ + && (prevMatch.litlen == 0) /* replace a match */ + && (LL_INCPRICE(1) < 0) /* ll1 is cheaper than ll0 */ + && LIKELY(ip + cur < iend) + ) { + /* check next position, in case it would be cheaper */ + int with1literal = prevMatch.price + LIT_PRICE(ip+cur) + LL_INCPRICE(1); + int withMoreLiterals = price + LIT_PRICE(ip+cur) + LL_INCPRICE(litlen+1); + DEBUGLOG(7, "then at next rPos %u : match+1lit %.2f vs %ulits %.2f", + cur+1, ZSTD_fCost(with1literal), litlen+1, ZSTD_fCost(withMoreLiterals)); + if ( (with1literal < withMoreLiterals) + && (with1literal < opt[cur+1].price) ) { + /* update offset history - before it disappears */ + U32 const prev = cur - prevMatch.mlen; + repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, prevMatch.off, opt[prev].litlen==0); + assert(cur >= prevMatch.mlen); + DEBUGLOG(7, "==> match+1lit is cheaper (%.2f < %.2f) (hist:%u,%u,%u) !", + ZSTD_fCost(with1literal), ZSTD_fCost(withMoreLiterals), + newReps.rep[0], newReps.rep[1], newReps.rep[2] ); + opt[cur+1] = prevMatch; /* mlen & offbase */ + ZSTD_memcpy(opt[cur+1].rep, &newReps, sizeof(repcodes_t)); + opt[cur+1].litlen = 1; + opt[cur+1].price = with1literal; + if (last_pos < cur+1) last_pos = cur+1; + } + } } else { - DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f) (hist:%u,%u,%u)", - inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price), - opt[cur].rep[0], opt[cur].rep[1], opt[cur].rep[2]); + DEBUGLOG(7, "cPos:%zi==rPos:%u : literal would cost more (%.2f>%.2f)", + inr-istart, cur, ZSTD_fCost(price), ZSTD_fCost(opt[cur].price)); } } - /* Set the repcodes of the current position. We must do it here - * because we rely on the repcodes of the 2nd to last sequence being - * correct to set the next chunks repcodes during the backward - * traversal. + /* Offset history is not updated during match comparison. + * Do it here, now that the match is selected and confirmed. */ ZSTD_STATIC_ASSERT(sizeof(opt[cur].rep) == sizeof(repcodes_t)); assert(cur >= opt[cur].mlen); - if (opt[cur].mlen != 0) { + if (opt[cur].litlen == 0) { + /* just finished a match => alter offset history */ U32 const prev = cur - opt[cur].mlen; - repcodes_t newReps = ZSTD_updateRep(opt[prev].rep, opt[cur].off, opt[cur].litlen==0); - memcpy(opt[cur].rep, &newReps, sizeof(repcodes_t)); - } else { - memcpy(opt[cur].rep, opt[cur - 1].rep, sizeof(repcodes_t)); + repcodes_t const newReps = ZSTD_newRep(opt[prev].rep, opt[cur].off, opt[prev].litlen==0); + ZSTD_memcpy(opt[cur].rep, &newReps, sizeof(repcodes_t)); } /* last match must start at a minimum distance of 8 from oend */ @@ -939,33 +1266,36 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, if ( (optLevel==0) /*static_test*/ && (opt[cur+1].price <= opt[cur].price + (BITCOST_MULTIPLIER/2)) ) { - DEBUGLOG(7, "move to next rPos:%u : price is <=", cur+1); + DEBUGLOG(7, "skip current position : next rPos(%u) price is cheaper", cur+1); continue; /* skip unpromising positions; about ~+6% speed, -0.01 ratio */ } - { U32 const ll0 = (opt[cur].mlen != 0); - U32 const litlen = (opt[cur].mlen == 0) ? opt[cur].litlen : 0; - U32 const previousPrice = opt[cur].price; - U32 const basePrice = previousPrice + ZSTD_litLengthPrice(0, optStatePtr, optLevel); - U32 const nbMatches = ZSTD_BtGetAllMatches(matches, ms, &nextToUpdate3, inr, iend, dictMode, opt[cur].rep, ll0, minMatch); + assert(opt[cur].price >= 0); + { U32 const ll0 = (opt[cur].litlen == 0); + int const previousPrice = opt[cur].price; + int const basePrice = previousPrice + LL_PRICE(0); + U32 nbMatches = getAllMatches(matches, ms, &nextToUpdate3, inr, iend, opt[cur].rep, ll0, minMatch); U32 matchNb; + + ZSTD_optLdm_processMatchCandidate(&optLdm, matches, &nbMatches, + (U32)(inr-istart), (U32)(iend-inr)); + if (!nbMatches) { DEBUGLOG(7, "rPos:%u : no match found", cur); continue; } - { U32 const maxML = matches[nbMatches-1].len; - DEBUGLOG(7, "cPos:%zi==rPos:%u, found %u matches, of maxLength=%u", - inr-istart, cur, nbMatches, maxML); - - if ( (maxML > sufficient_len) - || (cur + maxML >= ZSTD_OPT_NUM) ) { - lastSequence.mlen = maxML; - lastSequence.off = matches[nbMatches-1].off; - lastSequence.litlen = litlen; - cur -= (opt[cur].mlen==0) ? opt[cur].litlen : 0; /* last sequence is actually only literals, fix cur to last match - note : may underflow, in which case, it's first sequence, and it's okay */ - last_pos = cur + ZSTD_totalLen(lastSequence); - if (cur > ZSTD_OPT_NUM) cur = 0; /* underflow => first match */ + { U32 const longestML = matches[nbMatches-1].len; + DEBUGLOG(7, "cPos:%zi==rPos:%u, found %u matches, of longest ML=%u", + inr-istart, cur, nbMatches, longestML); + + if ( (longestML > sufficient_len) + || (cur + longestML >= ZSTD_OPT_NUM) + || (ip + cur + longestML >= iend) ) { + lastStretch.mlen = longestML; + lastStretch.off = matches[nbMatches-1].off; + lastStretch.litlen = 0; + last_pos = cur + longestML; goto _shortestPath; } } @@ -976,20 +1306,25 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, U32 const startML = (matchNb>0) ? matches[matchNb-1].len+1 : minMatch; U32 mlen; - DEBUGLOG(7, "testing match %u => offCode=%4u, mlen=%2u, llen=%2u", - matchNb, matches[matchNb].off, lastML, litlen); + DEBUGLOG(7, "testing match %u => offBase=%4u, mlen=%2u, llen=%2u", + matchNb, matches[matchNb].off, lastML, opt[cur].litlen); for (mlen = lastML; mlen >= startML; mlen--) { /* scan downward */ U32 const pos = cur + mlen; - int const price = basePrice + ZSTD_getMatchPrice(offset, mlen, optStatePtr, optLevel); + int const price = basePrice + (int)ZSTD_getMatchPrice(offset, mlen, optStatePtr, optLevel); if ((pos > last_pos) || (price < opt[pos].price)) { DEBUGLOG(7, "rPos:%u (ml=%2u) => new better price (%.2f<%.2f)", pos, mlen, ZSTD_fCost(price), ZSTD_fCost(opt[pos].price)); - while (last_pos < pos) { opt[last_pos+1].price = ZSTD_MAX_PRICE; last_pos++; } /* fill empty positions */ + while (last_pos < pos) { + /* fill empty positions, for future comparisons */ + last_pos++; + opt[last_pos].price = ZSTD_MAX_PRICE; + opt[last_pos].litlen = !0; /* just needs to be != 0, to mean "not an end of match" */ + } opt[pos].mlen = mlen; opt[pos].off = offset; - opt[pos].litlen = litlen; + opt[pos].litlen = 0; opt[pos].price = price; } else { DEBUGLOG(7, "rPos:%u (ml=%2u) => new price is worse (%.2f>=%.2f)", @@ -997,52 +1332,86 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, if (optLevel==0) break; /* early update abort; gets ~+10% speed for about -0.01 ratio loss */ } } } } + opt[last_pos+1].price = ZSTD_MAX_PRICE; } /* for (cur = 1; cur <= last_pos; cur++) */ - lastSequence = opt[last_pos]; - cur = last_pos > ZSTD_totalLen(lastSequence) ? last_pos - ZSTD_totalLen(lastSequence) : 0; /* single sequence, and it starts before `ip` */ - assert(cur < ZSTD_OPT_NUM); /* control overflow*/ + lastStretch = opt[last_pos]; + assert(cur >= lastStretch.mlen); + cur = last_pos - lastStretch.mlen; _shortestPath: /* cur, last_pos, best_mlen, best_off have to be set */ assert(opt[0].mlen == 0); + assert(last_pos >= lastStretch.mlen); + assert(cur == last_pos - lastStretch.mlen); - /* Set the next chunk's repcodes based on the repcodes of the beginning - * of the last match, and the last sequence. This avoids us having to - * update them while traversing the sequences. - */ - if (lastSequence.mlen != 0) { - repcodes_t reps = ZSTD_updateRep(opt[cur].rep, lastSequence.off, lastSequence.litlen==0); - memcpy(rep, &reps, sizeof(reps)); + if (lastStretch.mlen==0) { + /* no solution : all matches have been converted into literals */ + assert(lastStretch.litlen == (ip - anchor) + last_pos); + ip += last_pos; + continue; + } + assert(lastStretch.off > 0); + + /* Update offset history */ + if (lastStretch.litlen == 0) { + /* finishing on a match : update offset history */ + repcodes_t const reps = ZSTD_newRep(opt[cur].rep, lastStretch.off, opt[cur].litlen==0); + ZSTD_memcpy(rep, &reps, sizeof(repcodes_t)); } else { - memcpy(rep, opt[cur].rep, sizeof(repcodes_t)); + ZSTD_memcpy(rep, lastStretch.rep, sizeof(repcodes_t)); + assert(cur >= lastStretch.litlen); + cur -= lastStretch.litlen; } - { U32 const storeEnd = cur + 1; + /* Let's write the shortest path solution. + * It is stored in @opt in reverse order, + * starting from @storeEnd (==cur+2), + * effectively partially @opt overwriting. + * Content is changed too: + * - So far, @opt stored stretches, aka a match followed by literals + * - Now, it will store sequences, aka literals followed by a match + */ + { U32 const storeEnd = cur + 2; U32 storeStart = storeEnd; - U32 seqPos = cur; + U32 stretchPos = cur; DEBUGLOG(6, "start reverse traversal (last_pos:%u, cur:%u)", last_pos, cur); (void)last_pos; - assert(storeEnd < ZSTD_OPT_NUM); - DEBUGLOG(6, "last sequence copied into pos=%u (llen=%u,mlen=%u,ofc=%u)", - storeEnd, lastSequence.litlen, lastSequence.mlen, lastSequence.off); - opt[storeEnd] = lastSequence; - while (seqPos > 0) { - U32 const backDist = ZSTD_totalLen(opt[seqPos]); + assert(storeEnd < ZSTD_OPT_SIZE); + DEBUGLOG(6, "last stretch copied into pos=%u (llen=%u,mlen=%u,ofc=%u)", + storeEnd, lastStretch.litlen, lastStretch.mlen, lastStretch.off); + if (lastStretch.litlen > 0) { + /* last "sequence" is unfinished: just a bunch of literals */ + opt[storeEnd].litlen = lastStretch.litlen; + opt[storeEnd].mlen = 0; + storeStart = storeEnd-1; + opt[storeStart] = lastStretch; + } { + opt[storeEnd] = lastStretch; /* note: litlen will be fixed */ + storeStart = storeEnd; + } + while (1) { + ZSTD_optimal_t nextStretch = opt[stretchPos]; + opt[storeStart].litlen = nextStretch.litlen; + DEBUGLOG(6, "selected sequence (llen=%u,mlen=%u,ofc=%u)", + opt[storeStart].litlen, opt[storeStart].mlen, opt[storeStart].off); + if (nextStretch.mlen == 0) { + /* reaching beginning of segment */ + break; + } storeStart--; - DEBUGLOG(6, "sequence from rPos=%u copied into pos=%u (llen=%u,mlen=%u,ofc=%u)", - seqPos, storeStart, opt[seqPos].litlen, opt[seqPos].mlen, opt[seqPos].off); - opt[storeStart] = opt[seqPos]; - seqPos = (seqPos > backDist) ? seqPos - backDist : 0; + opt[storeStart] = nextStretch; /* note: litlen will be fixed */ + assert(nextStretch.litlen + nextStretch.mlen <= stretchPos); + stretchPos -= nextStretch.litlen + nextStretch.mlen; } /* save sequences */ - DEBUGLOG(6, "sending selected sequences into seqStore") + DEBUGLOG(6, "sending selected sequences into seqStore"); { U32 storePos; for (storePos=storeStart; storePos <= storeEnd; storePos++) { U32 const llen = opt[storePos].litlen; U32 const mlen = opt[storePos].mlen; - U32 const offCode = opt[storePos].off; + U32 const offBase = opt[storePos].off; U32 const advance = llen + mlen; DEBUGLOG(6, "considering seq starting at %zi, llen=%u, mlen=%u", anchor - istart, (unsigned)llen, (unsigned)mlen); @@ -1054,11 +1423,14 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, } assert(anchor + llen <= iend); - ZSTD_updateStats(optStatePtr, llen, anchor, offCode, mlen); - ZSTD_storeSeq(seqStore, llen, anchor, iend, offCode, mlen-MINMATCH); + ZSTD_updateStats(optStatePtr, llen, anchor, offBase, mlen); + ZSTD_storeSeq(seqStore, llen, anchor, iend, offBase, mlen); anchor += advance; ip = anchor; } } + DEBUGLOG(7, "new offset history : %u, %u, %u", rep[0], rep[1], rep[2]); + + /* update all costs */ ZSTD_setBasePrices(optStatePtr, optLevel); } } /* while (ip < ilimit) */ @@ -1066,53 +1438,54 @@ ZSTD_compressBlock_opt_generic(ZSTD_matchState_t* ms, /* Return the last literals size */ return (size_t)(iend - anchor); } +#endif /* build exclusions */ + +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR +static size_t ZSTD_compressBlock_opt0( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, const ZSTD_dictMode_e dictMode) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /* optLevel */, dictMode); +} +#endif +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR +static size_t ZSTD_compressBlock_opt2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize, const ZSTD_dictMode_e dictMode) +{ + return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /* optLevel */, dictMode); +} +#endif +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_btopt( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], const void* src, size_t srcSize) { DEBUGLOG(5, "ZSTD_compressBlock_btopt"); - return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /*optLevel*/, ZSTD_noDict); + return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_noDict); } +#endif -/* used in 2-pass strategy */ -static U32 ZSTD_upscaleStat(unsigned* table, U32 lastEltIndex, int bonus) -{ - U32 s, sum=0; - assert(ZSTD_FREQ_DIV+bonus >= 0); - for (s=0; slitSum = ZSTD_upscaleStat(optPtr->litFreq, MaxLit, 0); - optPtr->litLengthSum = ZSTD_upscaleStat(optPtr->litLengthFreq, MaxLL, 0); - optPtr->matchLengthSum = ZSTD_upscaleStat(optPtr->matchLengthFreq, MaxML, 0); - optPtr->offCodeSum = ZSTD_upscaleStat(optPtr->offCodeFreq, MaxOff, 0); -} +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR /* ZSTD_initStats_ultra(): * make a first compression pass, just to seed stats with more accurate starting values. * only works on first block, with no dictionary and no ldm. - * this function cannot error, hence its contract must be respected. + * this function cannot error out, its narrow contract must be respected. */ -static void -ZSTD_initStats_ultra(ZSTD_matchState_t* ms, - seqStore_t* seqStore, - U32 rep[ZSTD_REP_NUM], - const void* src, size_t srcSize) +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_initStats_ultra(ZSTD_matchState_t* ms, + seqStore_t* seqStore, + U32 rep[ZSTD_REP_NUM], + const void* src, size_t srcSize) { U32 tmpRep[ZSTD_REP_NUM]; /* updated rep codes will sink here */ - memcpy(tmpRep, rep, sizeof(tmpRep)); + ZSTD_memcpy(tmpRep, rep, sizeof(tmpRep)); DEBUGLOG(4, "ZSTD_initStats_ultra (srcSize=%zu)", srcSize); assert(ms->opt.litLengthSum == 0); /* first block */ @@ -1120,17 +1493,15 @@ ZSTD_initStats_ultra(ZSTD_matchState_t* ms, assert(ms->window.dictLimit == ms->window.lowLimit); /* no dictionary */ assert(ms->window.dictLimit - ms->nextToUpdate <= 1); /* no prefix (note: intentional overflow, defined as 2-complement) */ - ZSTD_compressBlock_opt_generic(ms, seqStore, tmpRep, src, srcSize, 2 /*optLevel*/, ZSTD_noDict); /* generate stats into ms->opt*/ + ZSTD_compressBlock_opt2(ms, seqStore, tmpRep, src, srcSize, ZSTD_noDict); /* generate stats into ms->opt*/ - /* invalidate first scan from history */ + /* invalidate first scan from history, only keep entropy stats */ ZSTD_resetSeqStore(seqStore); ms->window.base -= srcSize; ms->window.dictLimit += (U32)srcSize; ms->window.lowLimit = ms->window.dictLimit; ms->nextToUpdate = ms->window.dictLimit; - /* re-inforce weight of collected statistics */ - ZSTD_upscaleStats(&ms->opt); } size_t ZSTD_compressBlock_btultra( @@ -1138,20 +1509,20 @@ size_t ZSTD_compressBlock_btultra( const void* src, size_t srcSize) { DEBUGLOG(5, "ZSTD_compressBlock_btultra (srcSize=%zu)", srcSize); - return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_noDict); + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_noDict); } size_t ZSTD_compressBlock_btultra2( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], const void* src, size_t srcSize) { - U32 const current = (U32)((const BYTE*)src - ms->window.base); + U32 const curr = (U32)((const BYTE*)src - ms->window.base); DEBUGLOG(5, "ZSTD_compressBlock_btultra2 (srcSize=%zu)", srcSize); - /* 2-pass strategy: + /* 2-passes strategy: * this strategy makes a first pass over first block to collect statistics - * and seed next round's statistics with it. - * After 1st pass, function forgets everything, and starts a new block. + * in order to seed next round's statistics with it. + * After 1st pass, function forgets history, and starts a new block. * Consequently, this can only work if no data has been previously loaded in tables, * aka, no dictionary, no prefix, no ldm preprocessing. * The compression ratio gain is generally small (~0.5% on first block), @@ -1160,45 +1531,50 @@ size_t ZSTD_compressBlock_btultra2( if ( (ms->opt.litLengthSum==0) /* first block */ && (seqStore->sequences == seqStore->sequencesStart) /* no ldm */ && (ms->window.dictLimit == ms->window.lowLimit) /* no dictionary */ - && (current == ms->window.dictLimit) /* start of frame, nothing already loaded nor skipped */ - && (srcSize > ZSTD_PREDEF_THRESHOLD) + && (curr == ms->window.dictLimit) /* start of frame, nothing already loaded nor skipped */ + && (srcSize > ZSTD_PREDEF_THRESHOLD) /* input large enough to not employ default stats */ ) { ZSTD_initStats_ultra(ms, seqStore, rep, src, srcSize); } - return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_noDict); + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_noDict); } +#endif +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_btopt_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], const void* src, size_t srcSize) { - return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /*optLevel*/, ZSTD_dictMatchState); + return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_dictMatchState); } -size_t ZSTD_compressBlock_btultra_dictMatchState( +size_t ZSTD_compressBlock_btopt_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], const void* src, size_t srcSize) { - return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_dictMatchState); + return ZSTD_compressBlock_opt0(ms, seqStore, rep, src, srcSize, ZSTD_extDict); } +#endif -size_t ZSTD_compressBlock_btopt_extDict( +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btultra_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], const void* src, size_t srcSize) { - return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 0 /*optLevel*/, ZSTD_extDict); + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_dictMatchState); } size_t ZSTD_compressBlock_btultra_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], const void* src, size_t srcSize) { - return ZSTD_compressBlock_opt_generic(ms, seqStore, rep, src, srcSize, 2 /*optLevel*/, ZSTD_extDict); + return ZSTD_compressBlock_opt2(ms, seqStore, rep, src, srcSize, ZSTD_extDict); } +#endif /* note : no btultra2 variant for extDict nor dictMatchState, * because btultra2 is not meant to work with dictionaries * and is only specific for the first block (no prefix) */ -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/compress/zstdmt_compress.cpp b/src/duckdb/third_party/zstd/compress/zstdmt_compress.cpp new file mode 100644 index 00000000..f0522c8f --- /dev/null +++ b/src/duckdb/third_party/zstd/compress/zstdmt_compress.cpp @@ -0,0 +1,1885 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/* ====== Compiler specifics ====== */ +#if defined(_MSC_VER) +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +#endif + + +/* ====== Dependencies ====== */ +#include "zstd/common/allocations.h" /* ZSTD_customMalloc, ZSTD_customCalloc, ZSTD_customFree */ +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset, INT_MAX, UINT_MAX */ +#include "zstd/common/mem.h" /* MEM_STATIC */ +#include "zstd/common/pool.h" /* threadpool */ +#include "zstd/common/threading.h" /* mutex */ +#include "zstd/compress/zstd_compress_internal.h" /* MIN, ERROR, ZSTD_*, ZSTD_highbit32 */ +#include "zstd/compress/zstd_ldm.h" +#include "zstd/compress/zstdmt_compress.h" + +/* Guards code to support resizing the SeqPool. + * We will want to resize the SeqPool to save memory in the future. + * Until then, comment the code out since it is unused. + */ +#define ZSTD_RESIZE_SEQPOOL 0 + +/* ====== Debug ====== */ +#if defined(DEBUGLEVEL) && (DEBUGLEVEL>=2) \ + && !defined(_MSC_VER) \ + && !defined(__MINGW32__) + +# include +# include +# include + +# define DEBUG_PRINTHEX(l,p,n) \ + do { \ + unsigned debug_u; \ + for (debug_u=0; debug_u<(n); debug_u++) \ + RAWLOG(l, "%02X ", ((const unsigned char*)(p))[debug_u]); \ + RAWLOG(l, " \n"); \ + } while (0) + +static unsigned long long GetCurrentClockTimeMicroseconds(void) +{ + static clock_t _ticksPerSecond = 0; + if (_ticksPerSecond <= 0) _ticksPerSecond = sysconf(_SC_CLK_TCK); + + { struct tms junk; clock_t newTicks = (clock_t) times(&junk); + return ((((unsigned long long)newTicks)*(1000000))/_ticksPerSecond); +} } + +#define MUTEX_WAIT_TIME_DLEVEL 6 +#define ZSTD_PTHREAD_MUTEX_LOCK(mutex) \ + do { \ + if (DEBUGLEVEL >= MUTEX_WAIT_TIME_DLEVEL) { \ + unsigned long long const beforeTime = GetCurrentClockTimeMicroseconds(); \ + ZSTD_pthread_mutex_lock(mutex); \ + { unsigned long long const afterTime = GetCurrentClockTimeMicroseconds(); \ + unsigned long long const elapsedTime = (afterTime-beforeTime); \ + if (elapsedTime > 1000) { \ + /* or whatever threshold you like; I'm using 1 millisecond here */ \ + DEBUGLOG(MUTEX_WAIT_TIME_DLEVEL, \ + "Thread took %llu microseconds to acquire mutex %s \n", \ + elapsedTime, #mutex); \ + } } \ + } else { \ + ZSTD_pthread_mutex_lock(mutex); \ + } \ + } while (0) + +#else + +# define ZSTD_PTHREAD_MUTEX_LOCK(m) ZSTD_pthread_mutex_lock(m) +# define DEBUG_PRINTHEX(l,p,n) do { } while (0) + +#endif + +namespace duckdb_zstd { + +/* ===== Buffer Pool ===== */ +/* a single Buffer Pool can be invoked from multiple threads in parallel */ + +typedef struct buffer_s { + void* start; + size_t capacity; +} buffer_t; + +static const buffer_t g_nullBuffer = { NULL, 0 }; + +typedef struct ZSTDMT_bufferPool_s { + ZSTD_pthread_mutex_t poolMutex; + size_t bufferSize; + unsigned totalBuffers; + unsigned nbBuffers; + ZSTD_customMem cMem; + buffer_t* buffers; +} ZSTDMT_bufferPool; + +static void ZSTDMT_freeBufferPool(ZSTDMT_bufferPool* bufPool) +{ + DEBUGLOG(3, "ZSTDMT_freeBufferPool (address:%08X)", (U32)(size_t)bufPool); + if (!bufPool) return; /* compatibility with free on NULL */ + if (bufPool->buffers) { + unsigned u; + for (u=0; utotalBuffers; u++) { + DEBUGLOG(4, "free buffer %2u (address:%08X)", u, (U32)(size_t)bufPool->buffers[u].start); + ZSTD_customFree(bufPool->buffers[u].start, bufPool->cMem); + } + ZSTD_customFree(bufPool->buffers, bufPool->cMem); + } + ZSTD_pthread_mutex_destroy(&bufPool->poolMutex); + ZSTD_customFree(bufPool, bufPool->cMem); +} + +static ZSTDMT_bufferPool* ZSTDMT_createBufferPool(unsigned maxNbBuffers, ZSTD_customMem cMem) +{ + ZSTDMT_bufferPool* const bufPool = + (ZSTDMT_bufferPool*)ZSTD_customCalloc(sizeof(ZSTDMT_bufferPool), cMem); + if (bufPool==NULL) return NULL; + if (ZSTD_pthread_mutex_init(&bufPool->poolMutex, NULL)) { + ZSTD_customFree(bufPool, cMem); + return NULL; + } + bufPool->buffers = (buffer_t*)ZSTD_customCalloc(maxNbBuffers * sizeof(buffer_t), cMem); + if (bufPool->buffers==NULL) { + ZSTDMT_freeBufferPool(bufPool); + return NULL; + } + bufPool->bufferSize = 64 KB; + bufPool->totalBuffers = maxNbBuffers; + bufPool->nbBuffers = 0; + bufPool->cMem = cMem; + return bufPool; +} + +/* only works at initialization, not during compression */ +static size_t ZSTDMT_sizeof_bufferPool(ZSTDMT_bufferPool* bufPool) +{ + size_t const poolSize = sizeof(*bufPool); + size_t const arraySize = bufPool->totalBuffers * sizeof(buffer_t); + unsigned u; + size_t totalBufferSize = 0; + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + for (u=0; utotalBuffers; u++) + totalBufferSize += bufPool->buffers[u].capacity; + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + + return poolSize + arraySize + totalBufferSize; +} + +/* ZSTDMT_setBufferSize() : + * all future buffers provided by this buffer pool will have _at least_ this size + * note : it's better for all buffers to have same size, + * as they become freely interchangeable, reducing malloc/free usages and memory fragmentation */ +static void ZSTDMT_setBufferSize(ZSTDMT_bufferPool* const bufPool, size_t const bSize) +{ + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + DEBUGLOG(4, "ZSTDMT_setBufferSize: bSize = %u", (U32)bSize); + bufPool->bufferSize = bSize; + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); +} + + +static ZSTDMT_bufferPool* ZSTDMT_expandBufferPool(ZSTDMT_bufferPool* srcBufPool, unsigned maxNbBuffers) +{ + if (srcBufPool==NULL) return NULL; + if (srcBufPool->totalBuffers >= maxNbBuffers) /* good enough */ + return srcBufPool; + /* need a larger buffer pool */ + { ZSTD_customMem const cMem = srcBufPool->cMem; + size_t const bSize = srcBufPool->bufferSize; /* forward parameters */ + ZSTDMT_bufferPool* newBufPool; + ZSTDMT_freeBufferPool(srcBufPool); + newBufPool = ZSTDMT_createBufferPool(maxNbBuffers, cMem); + if (newBufPool==NULL) return newBufPool; + ZSTDMT_setBufferSize(newBufPool, bSize); + return newBufPool; + } +} + +/** ZSTDMT_getBuffer() : + * assumption : bufPool must be valid + * @return : a buffer, with start pointer and size + * note: allocation may fail, in this case, start==NULL and size==0 */ +static buffer_t ZSTDMT_getBuffer(ZSTDMT_bufferPool* bufPool) +{ + size_t const bSize = bufPool->bufferSize; + DEBUGLOG(5, "ZSTDMT_getBuffer: bSize = %u", (U32)bufPool->bufferSize); + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + if (bufPool->nbBuffers) { /* try to use an existing buffer */ + buffer_t const buf = bufPool->buffers[--(bufPool->nbBuffers)]; + size_t const availBufferSize = buf.capacity; + bufPool->buffers[bufPool->nbBuffers] = g_nullBuffer; + if ((availBufferSize >= bSize) & ((availBufferSize>>3) <= bSize)) { + /* large enough, but not too much */ + DEBUGLOG(5, "ZSTDMT_getBuffer: provide buffer %u of size %u", + bufPool->nbBuffers, (U32)buf.capacity); + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + return buf; + } + /* size conditions not respected : scratch this buffer, create new one */ + DEBUGLOG(5, "ZSTDMT_getBuffer: existing buffer does not meet size conditions => freeing"); + ZSTD_customFree(buf.start, bufPool->cMem); + } + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + /* create new buffer */ + DEBUGLOG(5, "ZSTDMT_getBuffer: create a new buffer"); + { buffer_t buffer; + void* const start = ZSTD_customMalloc(bSize, bufPool->cMem); + buffer.start = start; /* note : start can be NULL if malloc fails ! */ + buffer.capacity = (start==NULL) ? 0 : bSize; + if (start==NULL) { + DEBUGLOG(5, "ZSTDMT_getBuffer: buffer allocation failure !!"); + } else { + DEBUGLOG(5, "ZSTDMT_getBuffer: created buffer of size %u", (U32)bSize); + } + return buffer; + } +} + +#if ZSTD_RESIZE_SEQPOOL +/** ZSTDMT_resizeBuffer() : + * assumption : bufPool must be valid + * @return : a buffer that is at least the buffer pool buffer size. + * If a reallocation happens, the data in the input buffer is copied. + */ +static buffer_t ZSTDMT_resizeBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buffer) +{ + size_t const bSize = bufPool->bufferSize; + if (buffer.capacity < bSize) { + void* const start = ZSTD_customMalloc(bSize, bufPool->cMem); + buffer_t newBuffer; + newBuffer.start = start; + newBuffer.capacity = start == NULL ? 0 : bSize; + if (start != NULL) { + assert(newBuffer.capacity >= buffer.capacity); + ZSTD_memcpy(newBuffer.start, buffer.start, buffer.capacity); + DEBUGLOG(5, "ZSTDMT_resizeBuffer: created buffer of size %u", (U32)bSize); + return newBuffer; + } + DEBUGLOG(5, "ZSTDMT_resizeBuffer: buffer allocation failure !!"); + } + return buffer; +} +#endif + +/* store buffer for later re-use, up to pool capacity */ +static void ZSTDMT_releaseBuffer(ZSTDMT_bufferPool* bufPool, buffer_t buf) +{ + DEBUGLOG(5, "ZSTDMT_releaseBuffer"); + if (buf.start == NULL) return; /* compatible with release on NULL */ + ZSTD_pthread_mutex_lock(&bufPool->poolMutex); + if (bufPool->nbBuffers < bufPool->totalBuffers) { + bufPool->buffers[bufPool->nbBuffers++] = buf; /* stored for later use */ + DEBUGLOG(5, "ZSTDMT_releaseBuffer: stored buffer of size %u in slot %u", + (U32)buf.capacity, (U32)(bufPool->nbBuffers-1)); + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + return; + } + ZSTD_pthread_mutex_unlock(&bufPool->poolMutex); + /* Reached bufferPool capacity (note: should not happen) */ + DEBUGLOG(5, "ZSTDMT_releaseBuffer: pool capacity reached => freeing "); + ZSTD_customFree(buf.start, bufPool->cMem); +} + +/* We need 2 output buffers per worker since each dstBuff must be flushed after it is released. + * The 3 additional buffers are as follows: + * 1 buffer for input loading + * 1 buffer for "next input" when submitting current one + * 1 buffer stuck in queue */ +#define BUF_POOL_MAX_NB_BUFFERS(nbWorkers) (2*(nbWorkers) + 3) + +/* After a worker releases its rawSeqStore, it is immediately ready for reuse. + * So we only need one seq buffer per worker. */ +#define SEQ_POOL_MAX_NB_BUFFERS(nbWorkers) (nbWorkers) + +/* ===== Seq Pool Wrapper ====== */ + +typedef ZSTDMT_bufferPool ZSTDMT_seqPool; + +static size_t ZSTDMT_sizeof_seqPool(ZSTDMT_seqPool* seqPool) +{ + return ZSTDMT_sizeof_bufferPool(seqPool); +} + +static rawSeqStore_t bufferToSeq(buffer_t buffer) +{ + rawSeqStore_t seq = kNullRawSeqStore; + seq.seq = (rawSeq*)buffer.start; + seq.capacity = buffer.capacity / sizeof(rawSeq); + return seq; +} + +static buffer_t seqToBuffer(rawSeqStore_t seq) +{ + buffer_t buffer; + buffer.start = seq.seq; + buffer.capacity = seq.capacity * sizeof(rawSeq); + return buffer; +} + +static rawSeqStore_t ZSTDMT_getSeq(ZSTDMT_seqPool* seqPool) +{ + if (seqPool->bufferSize == 0) { + return kNullRawSeqStore; + } + return bufferToSeq(ZSTDMT_getBuffer(seqPool)); +} + +#if ZSTD_RESIZE_SEQPOOL +static rawSeqStore_t ZSTDMT_resizeSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t seq) +{ + return bufferToSeq(ZSTDMT_resizeBuffer(seqPool, seqToBuffer(seq))); +} +#endif + +static void ZSTDMT_releaseSeq(ZSTDMT_seqPool* seqPool, rawSeqStore_t seq) +{ + ZSTDMT_releaseBuffer(seqPool, seqToBuffer(seq)); +} + +static void ZSTDMT_setNbSeq(ZSTDMT_seqPool* const seqPool, size_t const nbSeq) +{ + ZSTDMT_setBufferSize(seqPool, nbSeq * sizeof(rawSeq)); +} + +static ZSTDMT_seqPool* ZSTDMT_createSeqPool(unsigned nbWorkers, ZSTD_customMem cMem) +{ + ZSTDMT_seqPool* const seqPool = ZSTDMT_createBufferPool(SEQ_POOL_MAX_NB_BUFFERS(nbWorkers), cMem); + if (seqPool == NULL) return NULL; + ZSTDMT_setNbSeq(seqPool, 0); + return seqPool; +} + +static void ZSTDMT_freeSeqPool(ZSTDMT_seqPool* seqPool) +{ + ZSTDMT_freeBufferPool(seqPool); +} + +static ZSTDMT_seqPool* ZSTDMT_expandSeqPool(ZSTDMT_seqPool* pool, U32 nbWorkers) +{ + return ZSTDMT_expandBufferPool(pool, SEQ_POOL_MAX_NB_BUFFERS(nbWorkers)); +} + + +/* ===== CCtx Pool ===== */ +/* a single CCtx Pool can be invoked from multiple threads in parallel */ + +typedef struct { + ZSTD_pthread_mutex_t poolMutex; + int totalCCtx; + int availCCtx; + ZSTD_customMem cMem; + ZSTD_CCtx** cctxs; +} ZSTDMT_CCtxPool; + +/* note : all CCtx borrowed from the pool must be reverted back to the pool _before_ freeing the pool */ +static void ZSTDMT_freeCCtxPool(ZSTDMT_CCtxPool* pool) +{ + if (!pool) return; + ZSTD_pthread_mutex_destroy(&pool->poolMutex); + if (pool->cctxs) { + int cid; + for (cid=0; cidtotalCCtx; cid++) + ZSTD_freeCCtx(pool->cctxs[cid]); /* free compatible with NULL */ + ZSTD_customFree(pool->cctxs, pool->cMem); + } + ZSTD_customFree(pool, pool->cMem); +} + +/* ZSTDMT_createCCtxPool() : + * implies nbWorkers >= 1 , checked by caller ZSTDMT_createCCtx() */ +static ZSTDMT_CCtxPool* ZSTDMT_createCCtxPool(int nbWorkers, + ZSTD_customMem cMem) +{ + ZSTDMT_CCtxPool* const cctxPool = + (ZSTDMT_CCtxPool*) ZSTD_customCalloc(sizeof(ZSTDMT_CCtxPool), cMem); + assert(nbWorkers > 0); + if (!cctxPool) return NULL; + if (ZSTD_pthread_mutex_init(&cctxPool->poolMutex, NULL)) { + ZSTD_customFree(cctxPool, cMem); + return NULL; + } + cctxPool->totalCCtx = nbWorkers; + cctxPool->cctxs = (ZSTD_CCtx**)ZSTD_customCalloc(nbWorkers * sizeof(ZSTD_CCtx*), cMem); + if (!cctxPool->cctxs) { + ZSTDMT_freeCCtxPool(cctxPool); + return NULL; + } + cctxPool->cMem = cMem; + cctxPool->cctxs[0] = ZSTD_createCCtx_advanced(cMem); + if (!cctxPool->cctxs[0]) { ZSTDMT_freeCCtxPool(cctxPool); return NULL; } + cctxPool->availCCtx = 1; /* at least one cctx for single-thread mode */ + DEBUGLOG(3, "cctxPool created, with %u workers", nbWorkers); + return cctxPool; +} + +static ZSTDMT_CCtxPool* ZSTDMT_expandCCtxPool(ZSTDMT_CCtxPool* srcPool, + int nbWorkers) +{ + if (srcPool==NULL) return NULL; + if (nbWorkers <= srcPool->totalCCtx) return srcPool; /* good enough */ + /* need a larger cctx pool */ + { ZSTD_customMem const cMem = srcPool->cMem; + ZSTDMT_freeCCtxPool(srcPool); + return ZSTDMT_createCCtxPool(nbWorkers, cMem); + } +} + +/* only works during initialization phase, not during compression */ +static size_t ZSTDMT_sizeof_CCtxPool(ZSTDMT_CCtxPool* cctxPool) +{ + ZSTD_pthread_mutex_lock(&cctxPool->poolMutex); + { unsigned const nbWorkers = cctxPool->totalCCtx; + size_t const poolSize = sizeof(*cctxPool); + size_t const arraySize = cctxPool->totalCCtx * sizeof(ZSTD_CCtx*); + size_t totalCCtxSize = 0; + unsigned u; + for (u=0; ucctxs[u]); + } + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + assert(nbWorkers > 0); + return poolSize + arraySize + totalCCtxSize; + } +} + +static ZSTD_CCtx* ZSTDMT_getCCtx(ZSTDMT_CCtxPool* cctxPool) +{ + DEBUGLOG(5, "ZSTDMT_getCCtx"); + ZSTD_pthread_mutex_lock(&cctxPool->poolMutex); + if (cctxPool->availCCtx) { + cctxPool->availCCtx--; + { ZSTD_CCtx* const cctx = cctxPool->cctxs[cctxPool->availCCtx]; + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + return cctx; + } } + ZSTD_pthread_mutex_unlock(&cctxPool->poolMutex); + DEBUGLOG(5, "create one more CCtx"); + return ZSTD_createCCtx_advanced(cctxPool->cMem); /* note : can be NULL, when creation fails ! */ +} + +static void ZSTDMT_releaseCCtx(ZSTDMT_CCtxPool* pool, ZSTD_CCtx* cctx) +{ + if (cctx==NULL) return; /* compatibility with release on NULL */ + ZSTD_pthread_mutex_lock(&pool->poolMutex); + if (pool->availCCtx < pool->totalCCtx) + pool->cctxs[pool->availCCtx++] = cctx; + else { + /* pool overflow : should not happen, since totalCCtx==nbWorkers */ + DEBUGLOG(4, "CCtx pool overflow : free cctx"); + ZSTD_freeCCtx(cctx); + } + ZSTD_pthread_mutex_unlock(&pool->poolMutex); +} + +/* ==== Serial State ==== */ + +typedef struct { + void const* start; + size_t size; +} range_t; + +typedef struct { + /* All variables in the struct are protected by mutex. */ + ZSTD_pthread_mutex_t mutex; + ZSTD_pthread_cond_t cond; + ZSTD_CCtx_params params; + ldmState_t ldmState; + XXH64_state_t xxhState; + unsigned nextJobID; + /* Protects ldmWindow. + * Must be acquired after the main mutex when acquiring both. + */ + ZSTD_pthread_mutex_t ldmWindowMutex; + ZSTD_pthread_cond_t ldmWindowCond; /* Signaled when ldmWindow is updated */ + ZSTD_window_t ldmWindow; /* A thread-safe copy of ldmState.window */ +} serialState_t; + +static int +ZSTDMT_serialState_reset(serialState_t* serialState, + ZSTDMT_seqPool* seqPool, + ZSTD_CCtx_params params, + size_t jobSize, + const void* dict, size_t const dictSize, + ZSTD_dictContentType_e dictContentType) +{ + /* Adjust parameters */ + if (params.ldmParams.enableLdm == ZSTD_ps_enable) { + DEBUGLOG(4, "LDM window size = %u KB", (1U << params.cParams.windowLog) >> 10); + ZSTD_ldm_adjustParameters(¶ms.ldmParams, ¶ms.cParams); + assert(params.ldmParams.hashLog >= params.ldmParams.bucketSizeLog); + assert(params.ldmParams.hashRateLog < 32); + } else { + ZSTD_memset(¶ms.ldmParams, 0, sizeof(params.ldmParams)); + } + serialState->nextJobID = 0; + if (params.fParams.checksumFlag) + XXH64_reset(&serialState->xxhState, 0); + if (params.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_customMem cMem = params.customMem; + unsigned const hashLog = params.ldmParams.hashLog; + size_t const hashSize = ((size_t)1 << hashLog) * sizeof(ldmEntry_t); + unsigned const bucketLog = + params.ldmParams.hashLog - params.ldmParams.bucketSizeLog; + unsigned const prevBucketLog = + serialState->params.ldmParams.hashLog - + serialState->params.ldmParams.bucketSizeLog; + size_t const numBuckets = (size_t)1 << bucketLog; + /* Size the seq pool tables */ + ZSTDMT_setNbSeq(seqPool, ZSTD_ldm_getMaxNbSeq(params.ldmParams, jobSize)); + /* Reset the window */ + ZSTD_window_init(&serialState->ldmState.window); + /* Resize tables and output space if necessary. */ + if (serialState->ldmState.hashTable == NULL || serialState->params.ldmParams.hashLog < hashLog) { + ZSTD_customFree(serialState->ldmState.hashTable, cMem); + serialState->ldmState.hashTable = (ldmEntry_t*)ZSTD_customMalloc(hashSize, cMem); + } + if (serialState->ldmState.bucketOffsets == NULL || prevBucketLog < bucketLog) { + ZSTD_customFree(serialState->ldmState.bucketOffsets, cMem); + serialState->ldmState.bucketOffsets = (BYTE*)ZSTD_customMalloc(numBuckets, cMem); + } + if (!serialState->ldmState.hashTable || !serialState->ldmState.bucketOffsets) + return 1; + /* Zero the tables */ + ZSTD_memset(serialState->ldmState.hashTable, 0, hashSize); + ZSTD_memset(serialState->ldmState.bucketOffsets, 0, numBuckets); + + /* Update window state and fill hash table with dict */ + serialState->ldmState.loadedDictEnd = 0; + if (dictSize > 0) { + if (dictContentType == ZSTD_dct_rawContent) { + BYTE const* const dictEnd = (const BYTE*)dict + dictSize; + ZSTD_window_update(&serialState->ldmState.window, dict, dictSize, /* forceNonContiguous */ 0); + ZSTD_ldm_fillHashTable(&serialState->ldmState, (const BYTE*)dict, dictEnd, ¶ms.ldmParams); + serialState->ldmState.loadedDictEnd = params.forceWindow ? 0 : (U32)(dictEnd - serialState->ldmState.window.base); + } else { + /* don't even load anything */ + } + } + + /* Initialize serialState's copy of ldmWindow. */ + serialState->ldmWindow = serialState->ldmState.window; + } + + serialState->params = params; + serialState->params.jobSize = (U32)jobSize; + return 0; +} + +static int ZSTDMT_serialState_init(serialState_t* serialState) +{ + int initError = 0; + ZSTD_memset(serialState, 0, sizeof(*serialState)); + initError |= ZSTD_pthread_mutex_init(&serialState->mutex, NULL); + initError |= ZSTD_pthread_cond_init(&serialState->cond, NULL); + initError |= ZSTD_pthread_mutex_init(&serialState->ldmWindowMutex, NULL); + initError |= ZSTD_pthread_cond_init(&serialState->ldmWindowCond, NULL); + return initError; +} + +static void ZSTDMT_serialState_free(serialState_t* serialState) +{ + ZSTD_customMem cMem = serialState->params.customMem; + ZSTD_pthread_mutex_destroy(&serialState->mutex); + ZSTD_pthread_cond_destroy(&serialState->cond); + ZSTD_pthread_mutex_destroy(&serialState->ldmWindowMutex); + ZSTD_pthread_cond_destroy(&serialState->ldmWindowCond); + ZSTD_customFree(serialState->ldmState.hashTable, cMem); + ZSTD_customFree(serialState->ldmState.bucketOffsets, cMem); +} + +static void ZSTDMT_serialState_update(serialState_t* serialState, + ZSTD_CCtx* jobCCtx, rawSeqStore_t seqStore, + range_t src, unsigned jobID) +{ + /* Wait for our turn */ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->mutex); + while (serialState->nextJobID < jobID) { + DEBUGLOG(5, "wait for serialState->cond"); + ZSTD_pthread_cond_wait(&serialState->cond, &serialState->mutex); + } + /* A future job may error and skip our job */ + if (serialState->nextJobID == jobID) { + /* It is now our turn, do any processing necessary */ + if (serialState->params.ldmParams.enableLdm == ZSTD_ps_enable) { + size_t error; + assert(seqStore.seq != NULL && seqStore.pos == 0 && + seqStore.size == 0 && seqStore.capacity > 0); + assert(src.size <= serialState->params.jobSize); + ZSTD_window_update(&serialState->ldmState.window, src.start, src.size, /* forceNonContiguous */ 0); + error = ZSTD_ldm_generateSequences( + &serialState->ldmState, &seqStore, + &serialState->params.ldmParams, src.start, src.size); + /* We provide a large enough buffer to never fail. */ + assert(!ZSTD_isError(error)); (void)error; + /* Update ldmWindow to match the ldmState.window and signal the main + * thread if it is waiting for a buffer. + */ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->ldmWindowMutex); + serialState->ldmWindow = serialState->ldmState.window; + ZSTD_pthread_cond_signal(&serialState->ldmWindowCond); + ZSTD_pthread_mutex_unlock(&serialState->ldmWindowMutex); + } + if (serialState->params.fParams.checksumFlag && src.size > 0) + XXH64_update(&serialState->xxhState, src.start, src.size); + } + /* Now it is the next jobs turn */ + serialState->nextJobID++; + ZSTD_pthread_cond_broadcast(&serialState->cond); + ZSTD_pthread_mutex_unlock(&serialState->mutex); + + if (seqStore.size > 0) { + ZSTD_referenceExternalSequences(jobCCtx, seqStore.seq, seqStore.size); + assert(serialState->params.ldmParams.enableLdm == ZSTD_ps_enable); + } +} + +static void ZSTDMT_serialState_ensureFinished(serialState_t* serialState, + unsigned jobID, size_t cSize) +{ + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->mutex); + if (serialState->nextJobID <= jobID) { + assert(ZSTD_isError(cSize)); (void)cSize; + DEBUGLOG(5, "Skipping past job %u because of error", jobID); + serialState->nextJobID = jobID + 1; + ZSTD_pthread_cond_broadcast(&serialState->cond); + + ZSTD_PTHREAD_MUTEX_LOCK(&serialState->ldmWindowMutex); + ZSTD_window_clear(&serialState->ldmWindow); + ZSTD_pthread_cond_signal(&serialState->ldmWindowCond); + ZSTD_pthread_mutex_unlock(&serialState->ldmWindowMutex); + } + ZSTD_pthread_mutex_unlock(&serialState->mutex); + +} + + +/* ------------------------------------------ */ +/* ===== Worker thread ===== */ +/* ------------------------------------------ */ + +static const range_t kNullRange = { NULL, 0 }; + +typedef struct { + size_t consumed; /* SHARED - set0 by mtctx, then modified by worker AND read by mtctx */ + size_t cSize; /* SHARED - set0 by mtctx, then modified by worker AND read by mtctx, then set0 by mtctx */ + ZSTD_pthread_mutex_t job_mutex; /* Thread-safe - used by mtctx and worker */ + ZSTD_pthread_cond_t job_cond; /* Thread-safe - used by mtctx and worker */ + ZSTDMT_CCtxPool* cctxPool; /* Thread-safe - used by mtctx and (all) workers */ + ZSTDMT_bufferPool* bufPool; /* Thread-safe - used by mtctx and (all) workers */ + ZSTDMT_seqPool* seqPool; /* Thread-safe - used by mtctx and (all) workers */ + serialState_t* serial; /* Thread-safe - used by mtctx and (all) workers */ + buffer_t dstBuff; /* set by worker (or mtctx), then read by worker & mtctx, then modified by mtctx => no barrier */ + range_t prefix; /* set by mtctx, then read by worker & mtctx => no barrier */ + range_t src; /* set by mtctx, then read by worker & mtctx => no barrier */ + unsigned jobID; /* set by mtctx, then read by worker => no barrier */ + unsigned firstJob; /* set by mtctx, then read by worker => no barrier */ + unsigned lastJob; /* set by mtctx, then read by worker => no barrier */ + ZSTD_CCtx_params params; /* set by mtctx, then read by worker => no barrier */ + const ZSTD_CDict* cdict; /* set by mtctx, then read by worker => no barrier */ + unsigned long long fullFrameSize; /* set by mtctx, then read by worker => no barrier */ + size_t dstFlushed; /* used only by mtctx */ + unsigned frameChecksumNeeded; /* used only by mtctx */ +} ZSTDMT_jobDescription; + +#define JOB_ERROR(e) \ + do { \ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); \ + job->cSize = e; \ + ZSTD_pthread_mutex_unlock(&job->job_mutex); \ + goto _endJob; \ + } while (0) + +/* ZSTDMT_compressionJob() is a POOL_function type */ +static void ZSTDMT_compressionJob(void* jobDescription) +{ + ZSTDMT_jobDescription* const job = (ZSTDMT_jobDescription*)jobDescription; + ZSTD_CCtx_params jobParams = job->params; /* do not modify job->params ! copy it, modify the copy */ + ZSTD_CCtx* const cctx = ZSTDMT_getCCtx(job->cctxPool); + rawSeqStore_t rawSeqStore = ZSTDMT_getSeq(job->seqPool); + buffer_t dstBuff = job->dstBuff; + size_t lastCBlockSize = 0; + + /* resources */ + if (cctx==NULL) JOB_ERROR(ERROR(memory_allocation)); + if (dstBuff.start == NULL) { /* streaming job : doesn't provide a dstBuffer */ + dstBuff = ZSTDMT_getBuffer(job->bufPool); + if (dstBuff.start==NULL) JOB_ERROR(ERROR(memory_allocation)); + job->dstBuff = dstBuff; /* this value can be read in ZSTDMT_flush, when it copies the whole job */ + } + if (jobParams.ldmParams.enableLdm == ZSTD_ps_enable && rawSeqStore.seq == NULL) + JOB_ERROR(ERROR(memory_allocation)); + + /* Don't compute the checksum for chunks, since we compute it externally, + * but write it in the header. + */ + if (job->jobID != 0) jobParams.fParams.checksumFlag = 0; + /* Don't run LDM for the chunks, since we handle it externally */ + jobParams.ldmParams.enableLdm = ZSTD_ps_disable; + /* Correct nbWorkers to 0. */ + jobParams.nbWorkers = 0; + + + /* init */ + if (job->cdict) { + size_t const initError = ZSTD_compressBegin_advanced_internal(cctx, NULL, 0, ZSTD_dct_auto, ZSTD_dtlm_fast, job->cdict, &jobParams, job->fullFrameSize); + assert(job->firstJob); /* only allowed for first job */ + if (ZSTD_isError(initError)) JOB_ERROR(initError); + } else { /* srcStart points at reloaded section */ + U64 const pledgedSrcSize = job->firstJob ? job->fullFrameSize : job->src.size; + { size_t const forceWindowError = ZSTD_CCtxParams_setParameter(&jobParams, ZSTD_c_forceMaxWindow, !job->firstJob); + if (ZSTD_isError(forceWindowError)) JOB_ERROR(forceWindowError); + } + if (!job->firstJob) { + size_t const err = ZSTD_CCtxParams_setParameter(&jobParams, ZSTD_c_deterministicRefPrefix, 0); + if (ZSTD_isError(err)) JOB_ERROR(err); + } + { size_t const initError = ZSTD_compressBegin_advanced_internal(cctx, + job->prefix.start, job->prefix.size, ZSTD_dct_rawContent, /* load dictionary in "content-only" mode (no header analysis) */ + ZSTD_dtlm_fast, + NULL, /*cdict*/ + &jobParams, pledgedSrcSize); + if (ZSTD_isError(initError)) JOB_ERROR(initError); + } } + + /* Perform serial step as early as possible, but after CCtx initialization */ + ZSTDMT_serialState_update(job->serial, cctx, rawSeqStore, job->src, job->jobID); + + if (!job->firstJob) { /* flush and overwrite frame header when it's not first job */ + size_t const hSize = ZSTD_compressContinue_public(cctx, dstBuff.start, dstBuff.capacity, job->src.start, 0); + if (ZSTD_isError(hSize)) JOB_ERROR(hSize); + DEBUGLOG(5, "ZSTDMT_compressionJob: flush and overwrite %u bytes of frame header (not first job)", (U32)hSize); + ZSTD_invalidateRepCodes(cctx); + } + + /* compress */ + { size_t const chunkSize = 4*ZSTD_BLOCKSIZE_MAX; + int const nbChunks = (int)((job->src.size + (chunkSize-1)) / chunkSize); + const BYTE* ip = (const BYTE*) job->src.start; + BYTE* const ostart = (BYTE*)dstBuff.start; + BYTE* op = ostart; + BYTE* oend = op + dstBuff.capacity; + int chunkNb; + if (sizeof(size_t) > sizeof(int)) assert(job->src.size < ((size_t)INT_MAX) * chunkSize); /* check overflow */ + DEBUGLOG(5, "ZSTDMT_compressionJob: compress %u bytes in %i blocks", (U32)job->src.size, nbChunks); + assert(job->cSize == 0); + for (chunkNb = 1; chunkNb < nbChunks; chunkNb++) { + size_t const cSize = ZSTD_compressContinue_public(cctx, op, oend-op, ip, chunkSize); + if (ZSTD_isError(cSize)) JOB_ERROR(cSize); + ip += chunkSize; + op += cSize; assert(op < oend); + /* stats */ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); + job->cSize += cSize; + job->consumed = chunkSize * chunkNb; + DEBUGLOG(5, "ZSTDMT_compressionJob: compress new block : cSize==%u bytes (total: %u)", + (U32)cSize, (U32)job->cSize); + ZSTD_pthread_cond_signal(&job->job_cond); /* warns some more data is ready to be flushed */ + ZSTD_pthread_mutex_unlock(&job->job_mutex); + } + /* last block */ + assert(chunkSize > 0); + assert((chunkSize & (chunkSize - 1)) == 0); /* chunkSize must be power of 2 for mask==(chunkSize-1) to work */ + if ((nbChunks > 0) | job->lastJob /*must output a "last block" flag*/ ) { + size_t const lastBlockSize1 = job->src.size & (chunkSize-1); + size_t const lastBlockSize = ((lastBlockSize1==0) & (job->src.size>=chunkSize)) ? chunkSize : lastBlockSize1; + size_t const cSize = (job->lastJob) ? + ZSTD_compressEnd_public(cctx, op, oend-op, ip, lastBlockSize) : + ZSTD_compressContinue_public(cctx, op, oend-op, ip, lastBlockSize); + if (ZSTD_isError(cSize)) JOB_ERROR(cSize); + lastCBlockSize = cSize; + } } + if (!job->firstJob) { + /* Double check that we don't have an ext-dict, because then our + * repcode invalidation doesn't work. + */ + assert(!ZSTD_window_hasExtDict(cctx->blockState.matchState.window)); + } + ZSTD_CCtx_trace(cctx, 0); + +_endJob: + ZSTDMT_serialState_ensureFinished(job->serial, job->jobID, job->cSize); + if (job->prefix.size > 0) + DEBUGLOG(5, "Finished with prefix: %zx", (size_t)job->prefix.start); + DEBUGLOG(5, "Finished with source: %zx", (size_t)job->src.start); + /* release resources */ + ZSTDMT_releaseSeq(job->seqPool, rawSeqStore); + ZSTDMT_releaseCCtx(job->cctxPool, cctx); + /* report */ + ZSTD_PTHREAD_MUTEX_LOCK(&job->job_mutex); + if (ZSTD_isError(job->cSize)) assert(lastCBlockSize == 0); + job->cSize += lastCBlockSize; + job->consumed = job->src.size; /* when job->consumed == job->src.size , compression job is presumed completed */ + ZSTD_pthread_cond_signal(&job->job_cond); + ZSTD_pthread_mutex_unlock(&job->job_mutex); +} + + +/* ------------------------------------------ */ +/* ===== Multi-threaded compression ===== */ +/* ------------------------------------------ */ + +typedef struct { + range_t prefix; /* read-only non-owned prefix buffer */ + buffer_t buffer; + size_t filled; +} inBuff_t; + +typedef struct { + BYTE* buffer; /* The round input buffer. All jobs get references + * to pieces of the buffer. ZSTDMT_tryGetInputRange() + * handles handing out job input buffers, and makes + * sure it doesn't overlap with any pieces still in use. + */ + size_t capacity; /* The capacity of buffer. */ + size_t pos; /* The position of the current inBuff in the round + * buffer. Updated past the end if the inBuff once + * the inBuff is sent to the worker thread. + * pos <= capacity. + */ +} roundBuff_t; + +static const roundBuff_t kNullRoundBuff = {NULL, 0, 0}; + +#define RSYNC_LENGTH 32 +/* Don't create chunks smaller than the zstd block size. + * This stops us from regressing compression ratio too much, + * and ensures our output fits in ZSTD_compressBound(). + * + * If this is shrunk < ZSTD_BLOCKSIZELOG_MIN then + * ZSTD_COMPRESSBOUND() will need to be updated. + */ +#define RSYNC_MIN_BLOCK_LOG ZSTD_BLOCKSIZELOG_MAX +#define RSYNC_MIN_BLOCK_SIZE (1< one job is already prepared, but pool has shortage of workers. Don't create a new job. */ + inBuff_t inBuff; + roundBuff_t roundBuff; + serialState_t serial; + rsyncState_t rsync; + unsigned jobIDMask; + unsigned doneJobID; + unsigned nextJobID; + unsigned frameEnded; + unsigned allJobsCompleted; + unsigned long long frameContentSize; + unsigned long long consumed; + unsigned long long produced; + ZSTD_customMem cMem; + ZSTD_CDict* cdictLocal; + const ZSTD_CDict* cdict; + unsigned providedFactory: 1; +}; + +static void ZSTDMT_freeJobsTable(ZSTDMT_jobDescription* jobTable, U32 nbJobs, ZSTD_customMem cMem) +{ + U32 jobNb; + if (jobTable == NULL) return; + for (jobNb=0; jobNb mtctx->jobIDMask+1) { /* need more job capacity */ + ZSTDMT_freeJobsTable(mtctx->jobs, mtctx->jobIDMask+1, mtctx->cMem); + mtctx->jobIDMask = 0; + mtctx->jobs = ZSTDMT_createJobsTable(&nbJobs, mtctx->cMem); + if (mtctx->jobs==NULL) return ERROR(memory_allocation); + assert((nbJobs != 0) && ((nbJobs & (nbJobs - 1)) == 0)); /* ensure nbJobs is a power of 2 */ + mtctx->jobIDMask = nbJobs - 1; + } + return 0; +} + + +/* ZSTDMT_CCtxParam_setNbWorkers(): + * Internal use only */ +static size_t ZSTDMT_CCtxParam_setNbWorkers(ZSTD_CCtx_params* params, unsigned nbWorkers) +{ + return ZSTD_CCtxParams_setParameter(params, ZSTD_c_nbWorkers, (int)nbWorkers); +} + +MEM_STATIC ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced_internal(unsigned nbWorkers, ZSTD_customMem cMem, ZSTD_threadPool* pool) +{ + ZSTDMT_CCtx* mtctx; + U32 nbJobs = nbWorkers + 2; + int initError; + DEBUGLOG(3, "ZSTDMT_createCCtx_advanced (nbWorkers = %u)", nbWorkers); + + if (nbWorkers < 1) return NULL; + nbWorkers = MIN(nbWorkers , ZSTDMT_NBWORKERS_MAX); + if ((cMem.customAlloc!=NULL) ^ (cMem.customFree!=NULL)) + /* invalid custom allocator */ + return NULL; + + mtctx = (ZSTDMT_CCtx*) ZSTD_customCalloc(sizeof(ZSTDMT_CCtx), cMem); + if (!mtctx) return NULL; + ZSTDMT_CCtxParam_setNbWorkers(&mtctx->params, nbWorkers); + mtctx->cMem = cMem; + mtctx->allJobsCompleted = 1; + if (pool != NULL) { + mtctx->factory = pool; + mtctx->providedFactory = 1; + } + else { + mtctx->factory = POOL_create_advanced(nbWorkers, 0, cMem); + mtctx->providedFactory = 0; + } + mtctx->jobs = ZSTDMT_createJobsTable(&nbJobs, cMem); + assert(nbJobs > 0); assert((nbJobs & (nbJobs - 1)) == 0); /* ensure nbJobs is a power of 2 */ + mtctx->jobIDMask = nbJobs - 1; + mtctx->bufPool = ZSTDMT_createBufferPool(BUF_POOL_MAX_NB_BUFFERS(nbWorkers), cMem); + mtctx->cctxPool = ZSTDMT_createCCtxPool(nbWorkers, cMem); + mtctx->seqPool = ZSTDMT_createSeqPool(nbWorkers, cMem); + initError = ZSTDMT_serialState_init(&mtctx->serial); + mtctx->roundBuff = kNullRoundBuff; + if (!mtctx->factory | !mtctx->jobs | !mtctx->bufPool | !mtctx->cctxPool | !mtctx->seqPool | initError) { + ZSTDMT_freeCCtx(mtctx); + return NULL; + } + DEBUGLOG(3, "mt_cctx created, for %u threads", nbWorkers); + return mtctx; +} + +ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced(unsigned nbWorkers, ZSTD_customMem cMem, ZSTD_threadPool* pool) +{ +#ifdef ZSTD_MULTITHREAD + return ZSTDMT_createCCtx_advanced_internal(nbWorkers, cMem, pool); +#else + (void)nbWorkers; + (void)cMem; + (void)pool; + return NULL; +#endif +} + + +/* ZSTDMT_releaseAllJobResources() : + * note : ensure all workers are killed first ! */ +static void ZSTDMT_releaseAllJobResources(ZSTDMT_CCtx* mtctx) +{ + unsigned jobID; + DEBUGLOG(3, "ZSTDMT_releaseAllJobResources"); + for (jobID=0; jobID <= mtctx->jobIDMask; jobID++) { + /* Copy the mutex/cond out */ + ZSTD_pthread_mutex_t const mutex = mtctx->jobs[jobID].job_mutex; + ZSTD_pthread_cond_t const cond = mtctx->jobs[jobID].job_cond; + + DEBUGLOG(4, "job%02u: release dst address %08X", jobID, (U32)(size_t)mtctx->jobs[jobID].dstBuff.start); + ZSTDMT_releaseBuffer(mtctx->bufPool, mtctx->jobs[jobID].dstBuff); + + /* Clear the job description, but keep the mutex/cond */ + ZSTD_memset(&mtctx->jobs[jobID], 0, sizeof(mtctx->jobs[jobID])); + mtctx->jobs[jobID].job_mutex = mutex; + mtctx->jobs[jobID].job_cond = cond; + } + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + mtctx->allJobsCompleted = 1; +} + +static void ZSTDMT_waitForAllJobsCompleted(ZSTDMT_CCtx* mtctx) +{ + DEBUGLOG(4, "ZSTDMT_waitForAllJobsCompleted"); + while (mtctx->doneJobID < mtctx->nextJobID) { + unsigned const jobID = mtctx->doneJobID & mtctx->jobIDMask; + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[jobID].job_mutex); + while (mtctx->jobs[jobID].consumed < mtctx->jobs[jobID].src.size) { + DEBUGLOG(4, "waiting for jobCompleted signal from job %u", mtctx->doneJobID); /* we want to block when waiting for data to flush */ + ZSTD_pthread_cond_wait(&mtctx->jobs[jobID].job_cond, &mtctx->jobs[jobID].job_mutex); + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[jobID].job_mutex); + mtctx->doneJobID++; + } +} + +size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx) +{ + if (mtctx==NULL) return 0; /* compatible with free on NULL */ + if (!mtctx->providedFactory) + POOL_free(mtctx->factory); /* stop and free worker threads */ + ZSTDMT_releaseAllJobResources(mtctx); /* release job resources into pools first */ + ZSTDMT_freeJobsTable(mtctx->jobs, mtctx->jobIDMask+1, mtctx->cMem); + ZSTDMT_freeBufferPool(mtctx->bufPool); + ZSTDMT_freeCCtxPool(mtctx->cctxPool); + ZSTDMT_freeSeqPool(mtctx->seqPool); + ZSTDMT_serialState_free(&mtctx->serial); + ZSTD_freeCDict(mtctx->cdictLocal); + if (mtctx->roundBuff.buffer) + ZSTD_customFree(mtctx->roundBuff.buffer, mtctx->cMem); + ZSTD_customFree(mtctx, mtctx->cMem); + return 0; +} + +size_t ZSTDMT_sizeof_CCtx(ZSTDMT_CCtx* mtctx) +{ + if (mtctx == NULL) return 0; /* supports sizeof NULL */ + return sizeof(*mtctx) + + POOL_sizeof(mtctx->factory) + + ZSTDMT_sizeof_bufferPool(mtctx->bufPool) + + (mtctx->jobIDMask+1) * sizeof(ZSTDMT_jobDescription) + + ZSTDMT_sizeof_CCtxPool(mtctx->cctxPool) + + ZSTDMT_sizeof_seqPool(mtctx->seqPool) + + ZSTD_sizeof_CDict(mtctx->cdictLocal) + + mtctx->roundBuff.capacity; +} + + +/* ZSTDMT_resize() : + * @return : error code if fails, 0 on success */ +static size_t ZSTDMT_resize(ZSTDMT_CCtx* mtctx, unsigned nbWorkers) +{ + if (POOL_resize(mtctx->factory, nbWorkers)) return ERROR(memory_allocation); + FORWARD_IF_ERROR( ZSTDMT_expandJobsTable(mtctx, nbWorkers) , ""); + mtctx->bufPool = ZSTDMT_expandBufferPool(mtctx->bufPool, BUF_POOL_MAX_NB_BUFFERS(nbWorkers)); + if (mtctx->bufPool == NULL) return ERROR(memory_allocation); + mtctx->cctxPool = ZSTDMT_expandCCtxPool(mtctx->cctxPool, nbWorkers); + if (mtctx->cctxPool == NULL) return ERROR(memory_allocation); + mtctx->seqPool = ZSTDMT_expandSeqPool(mtctx->seqPool, nbWorkers); + if (mtctx->seqPool == NULL) return ERROR(memory_allocation); + ZSTDMT_CCtxParam_setNbWorkers(&mtctx->params, nbWorkers); + return 0; +} + + +/*! ZSTDMT_updateCParams_whileCompressing() : + * Updates a selected set of compression parameters, remaining compatible with currently active frame. + * New parameters will be applied to next compression job. */ +void ZSTDMT_updateCParams_whileCompressing(ZSTDMT_CCtx* mtctx, const ZSTD_CCtx_params* cctxParams) +{ + U32 const saved_wlog = mtctx->params.cParams.windowLog; /* Do not modify windowLog while compressing */ + int const compressionLevel = cctxParams->compressionLevel; + DEBUGLOG(5, "ZSTDMT_updateCParams_whileCompressing (level:%i)", + compressionLevel); + mtctx->params.compressionLevel = compressionLevel; + { ZSTD_compressionParameters cParams = ZSTD_getCParamsFromCCtxParams(cctxParams, ZSTD_CONTENTSIZE_UNKNOWN, 0, ZSTD_cpm_noAttachDict); + cParams.windowLog = saved_wlog; + mtctx->params.cParams = cParams; + } +} + +/* ZSTDMT_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads. + * Note : mutex will be acquired during statistics collection inside workers. */ +ZSTD_frameProgression ZSTDMT_getFrameProgression(ZSTDMT_CCtx* mtctx) +{ + ZSTD_frameProgression fps; + DEBUGLOG(5, "ZSTDMT_getFrameProgression"); + fps.ingested = mtctx->consumed + mtctx->inBuff.filled; + fps.consumed = mtctx->consumed; + fps.produced = fps.flushed = mtctx->produced; + fps.currentJobID = mtctx->nextJobID; + fps.nbActiveWorkers = 0; + { unsigned jobNb; + unsigned lastJobNb = mtctx->nextJobID + mtctx->jobReady; assert(mtctx->jobReady <= 1); + DEBUGLOG(6, "ZSTDMT_getFrameProgression: jobs: from %u to <%u (jobReady:%u)", + mtctx->doneJobID, lastJobNb, mtctx->jobReady); + for (jobNb = mtctx->doneJobID ; jobNb < lastJobNb ; jobNb++) { + unsigned const wJobID = jobNb & mtctx->jobIDMask; + ZSTDMT_jobDescription* jobPtr = &mtctx->jobs[wJobID]; + ZSTD_pthread_mutex_lock(&jobPtr->job_mutex); + { size_t const cResult = jobPtr->cSize; + size_t const produced = ZSTD_isError(cResult) ? 0 : cResult; + size_t const flushed = ZSTD_isError(cResult) ? 0 : jobPtr->dstFlushed; + assert(flushed <= produced); + fps.ingested += jobPtr->src.size; + fps.consumed += jobPtr->consumed; + fps.produced += produced; + fps.flushed += flushed; + fps.nbActiveWorkers += (jobPtr->consumed < jobPtr->src.size); + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + } + } + return fps; +} + + +size_t ZSTDMT_toFlushNow(ZSTDMT_CCtx* mtctx) +{ + size_t toFlush; + unsigned const jobID = mtctx->doneJobID; + assert(jobID <= mtctx->nextJobID); + if (jobID == mtctx->nextJobID) return 0; /* no active job => nothing to flush */ + + /* look into oldest non-fully-flushed job */ + { unsigned const wJobID = jobID & mtctx->jobIDMask; + ZSTDMT_jobDescription* const jobPtr = &mtctx->jobs[wJobID]; + ZSTD_pthread_mutex_lock(&jobPtr->job_mutex); + { size_t const cResult = jobPtr->cSize; + size_t const produced = ZSTD_isError(cResult) ? 0 : cResult; + size_t const flushed = ZSTD_isError(cResult) ? 0 : jobPtr->dstFlushed; + assert(flushed <= produced); + assert(jobPtr->consumed <= jobPtr->src.size); + toFlush = produced - flushed; + /* if toFlush==0, nothing is available to flush. + * However, jobID is expected to still be active: + * if jobID was already completed and fully flushed, + * ZSTDMT_flushProduced() should have already moved onto next job. + * Therefore, some input has not yet been consumed. */ + if (toFlush==0) { + assert(jobPtr->consumed < jobPtr->src.size); + } + } + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + } + + return toFlush; +} + + +/* ------------------------------------------ */ +/* ===== Multi-threaded compression ===== */ +/* ------------------------------------------ */ + +static unsigned ZSTDMT_computeTargetJobLog(const ZSTD_CCtx_params* params) +{ + unsigned jobLog; + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* In Long Range Mode, the windowLog is typically oversized. + * In which case, it's preferable to determine the jobSize + * based on cycleLog instead. */ + jobLog = MAX(21, ZSTD_cycleLog(params->cParams.chainLog, params->cParams.strategy) + 3); + } else { + jobLog = MAX(20, params->cParams.windowLog + 2); + } + return MIN(jobLog, (unsigned)ZSTDMT_JOBLOG_MAX); +} + +static int ZSTDMT_overlapLog_default(ZSTD_strategy strat) +{ + switch(strat) + { + case ZSTD_btultra2: + return 9; + case ZSTD_btultra: + case ZSTD_btopt: + return 8; + case ZSTD_btlazy2: + case ZSTD_lazy2: + return 7; + case ZSTD_lazy: + case ZSTD_greedy: + case ZSTD_dfast: + case ZSTD_fast: + default:; + } + return 6; +} + +static int ZSTDMT_overlapLog(int ovlog, ZSTD_strategy strat) +{ + assert(0 <= ovlog && ovlog <= 9); + if (ovlog == 0) return ZSTDMT_overlapLog_default(strat); + return ovlog; +} + +static size_t ZSTDMT_computeOverlapSize(const ZSTD_CCtx_params* params) +{ + int const overlapRLog = 9 - ZSTDMT_overlapLog(params->overlapLog, params->cParams.strategy); + int ovLog = (overlapRLog >= 8) ? 0 : (params->cParams.windowLog - overlapRLog); + assert(0 <= overlapRLog && overlapRLog <= 8); + if (params->ldmParams.enableLdm == ZSTD_ps_enable) { + /* In Long Range Mode, the windowLog is typically oversized. + * In which case, it's preferable to determine the jobSize + * based on chainLog instead. + * Then, ovLog becomes a fraction of the jobSize, rather than windowSize */ + ovLog = MIN(params->cParams.windowLog, ZSTDMT_computeTargetJobLog(params) - 2) + - overlapRLog; + } + assert(0 <= ovLog && ovLog <= ZSTD_WINDOWLOG_MAX); + DEBUGLOG(4, "overlapLog : %i", params->overlapLog); + DEBUGLOG(4, "overlap size : %i", 1 << ovLog); + return (ovLog==0) ? 0 : (size_t)1 << ovLog; +} + +/* ====================================== */ +/* ======= Streaming API ======= */ +/* ====================================== */ + +size_t ZSTDMT_initCStream_internal( + ZSTDMT_CCtx* mtctx, + const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, + const ZSTD_CDict* cdict, ZSTD_CCtx_params params, + unsigned long long pledgedSrcSize) +{ + DEBUGLOG(4, "ZSTDMT_initCStream_internal (pledgedSrcSize=%u, nbWorkers=%u, cctxPool=%u)", + (U32)pledgedSrcSize, params.nbWorkers, mtctx->cctxPool->totalCCtx); + + /* params supposed partially fully validated at this point */ + assert(!ZSTD_isError(ZSTD_checkCParams(params.cParams))); + assert(!((dict) && (cdict))); /* either dict or cdict, not both */ + + /* init */ + if (params.nbWorkers != mtctx->params.nbWorkers) + FORWARD_IF_ERROR( ZSTDMT_resize(mtctx, params.nbWorkers) , ""); + + if (params.jobSize != 0 && params.jobSize < ZSTDMT_JOBSIZE_MIN) params.jobSize = ZSTDMT_JOBSIZE_MIN; + if (params.jobSize > (size_t)ZSTDMT_JOBSIZE_MAX) params.jobSize = (size_t)ZSTDMT_JOBSIZE_MAX; + + DEBUGLOG(4, "ZSTDMT_initCStream_internal: %u workers", params.nbWorkers); + + if (mtctx->allJobsCompleted == 0) { /* previous compression not correctly finished */ + ZSTDMT_waitForAllJobsCompleted(mtctx); + ZSTDMT_releaseAllJobResources(mtctx); + mtctx->allJobsCompleted = 1; + } + + mtctx->params = params; + mtctx->frameContentSize = pledgedSrcSize; + if (dict) { + ZSTD_freeCDict(mtctx->cdictLocal); + mtctx->cdictLocal = ZSTD_createCDict_advanced(dict, dictSize, + ZSTD_dlm_byCopy, dictContentType, /* note : a loadPrefix becomes an internal CDict */ + params.cParams, mtctx->cMem); + mtctx->cdict = mtctx->cdictLocal; + if (mtctx->cdictLocal == NULL) return ERROR(memory_allocation); + } else { + ZSTD_freeCDict(mtctx->cdictLocal); + mtctx->cdictLocal = NULL; + mtctx->cdict = cdict; + } + + mtctx->targetPrefixSize = ZSTDMT_computeOverlapSize(¶ms); + DEBUGLOG(4, "overlapLog=%i => %u KB", params.overlapLog, (U32)(mtctx->targetPrefixSize>>10)); + mtctx->targetSectionSize = params.jobSize; + if (mtctx->targetSectionSize == 0) { + mtctx->targetSectionSize = 1ULL << ZSTDMT_computeTargetJobLog(¶ms); + } + assert(mtctx->targetSectionSize <= (size_t)ZSTDMT_JOBSIZE_MAX); + + if (params.rsyncable) { + /* Aim for the targetsectionSize as the average job size. */ + U32 const jobSizeKB = (U32)(mtctx->targetSectionSize >> 10); + U32 const rsyncBits = (assert(jobSizeKB >= 1), ZSTD_highbit32(jobSizeKB) + 10); + /* We refuse to create jobs < RSYNC_MIN_BLOCK_SIZE bytes, so make sure our + * expected job size is at least 4x larger. */ + assert(rsyncBits >= RSYNC_MIN_BLOCK_LOG + 2); + DEBUGLOG(4, "rsyncLog = %u", rsyncBits); + mtctx->rsync.hash = 0; + mtctx->rsync.hitMask = (1ULL << rsyncBits) - 1; + mtctx->rsync.primePower = ZSTD_rollingHash_primePower(RSYNC_LENGTH); + } + if (mtctx->targetSectionSize < mtctx->targetPrefixSize) mtctx->targetSectionSize = mtctx->targetPrefixSize; /* job size must be >= overlap size */ + DEBUGLOG(4, "Job Size : %u KB (note : set to %u)", (U32)(mtctx->targetSectionSize>>10), (U32)params.jobSize); + DEBUGLOG(4, "inBuff Size : %u KB", (U32)(mtctx->targetSectionSize>>10)); + ZSTDMT_setBufferSize(mtctx->bufPool, ZSTD_compressBound(mtctx->targetSectionSize)); + { + /* If ldm is enabled we need windowSize space. */ + size_t const windowSize = mtctx->params.ldmParams.enableLdm == ZSTD_ps_enable ? (1U << mtctx->params.cParams.windowLog) : 0; + /* Two buffers of slack, plus extra space for the overlap + * This is the minimum slack that LDM works with. One extra because + * flush might waste up to targetSectionSize-1 bytes. Another extra + * for the overlap (if > 0), then one to fill which doesn't overlap + * with the LDM window. + */ + size_t const nbSlackBuffers = 2 + (mtctx->targetPrefixSize > 0); + size_t const slackSize = mtctx->targetSectionSize * nbSlackBuffers; + /* Compute the total size, and always have enough slack */ + size_t const nbWorkers = MAX(mtctx->params.nbWorkers, 1); + size_t const sectionsSize = mtctx->targetSectionSize * nbWorkers; + size_t const capacity = MAX(windowSize, sectionsSize) + slackSize; + if (mtctx->roundBuff.capacity < capacity) { + if (mtctx->roundBuff.buffer) + ZSTD_customFree(mtctx->roundBuff.buffer, mtctx->cMem); + mtctx->roundBuff.buffer = (BYTE*)ZSTD_customMalloc(capacity, mtctx->cMem); + if (mtctx->roundBuff.buffer == NULL) { + mtctx->roundBuff.capacity = 0; + return ERROR(memory_allocation); + } + mtctx->roundBuff.capacity = capacity; + } + } + DEBUGLOG(4, "roundBuff capacity : %u KB", (U32)(mtctx->roundBuff.capacity>>10)); + mtctx->roundBuff.pos = 0; + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + mtctx->inBuff.prefix = kNullRange; + mtctx->doneJobID = 0; + mtctx->nextJobID = 0; + mtctx->frameEnded = 0; + mtctx->allJobsCompleted = 0; + mtctx->consumed = 0; + mtctx->produced = 0; + if (ZSTDMT_serialState_reset(&mtctx->serial, mtctx->seqPool, params, mtctx->targetSectionSize, + dict, dictSize, dictContentType)) + return ERROR(memory_allocation); + return 0; +} + + +/* ZSTDMT_writeLastEmptyBlock() + * Write a single empty block with an end-of-frame to finish a frame. + * Job must be created from streaming variant. + * This function is always successful if expected conditions are fulfilled. + */ +static void ZSTDMT_writeLastEmptyBlock(ZSTDMT_jobDescription* job) +{ + assert(job->lastJob == 1); + assert(job->src.size == 0); /* last job is empty -> will be simplified into a last empty block */ + assert(job->firstJob == 0); /* cannot be first job, as it also needs to create frame header */ + assert(job->dstBuff.start == NULL); /* invoked from streaming variant only (otherwise, dstBuff might be user's output) */ + job->dstBuff = ZSTDMT_getBuffer(job->bufPool); + if (job->dstBuff.start == NULL) { + job->cSize = ERROR(memory_allocation); + return; + } + assert(job->dstBuff.capacity >= ZSTD_blockHeaderSize); /* no buffer should ever be that small */ + job->src = kNullRange; + job->cSize = ZSTD_writeLastEmptyBlock(job->dstBuff.start, job->dstBuff.capacity); + assert(!ZSTD_isError(job->cSize)); + assert(job->consumed == 0); +} + +static size_t ZSTDMT_createCompressionJob(ZSTDMT_CCtx* mtctx, size_t srcSize, ZSTD_EndDirective endOp) +{ + unsigned const jobID = mtctx->nextJobID & mtctx->jobIDMask; + int const endFrame = (endOp == ZSTD_e_end); + + if (mtctx->nextJobID > mtctx->doneJobID + mtctx->jobIDMask) { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: will not create new job : table is full"); + assert((mtctx->nextJobID & mtctx->jobIDMask) == (mtctx->doneJobID & mtctx->jobIDMask)); + return 0; + } + + if (!mtctx->jobReady) { + BYTE const* src = (BYTE const*)mtctx->inBuff.buffer.start; + DEBUGLOG(5, "ZSTDMT_createCompressionJob: preparing job %u to compress %u bytes with %u preload ", + mtctx->nextJobID, (U32)srcSize, (U32)mtctx->inBuff.prefix.size); + mtctx->jobs[jobID].src.start = src; + mtctx->jobs[jobID].src.size = srcSize; + assert(mtctx->inBuff.filled >= srcSize); + mtctx->jobs[jobID].prefix = mtctx->inBuff.prefix; + mtctx->jobs[jobID].consumed = 0; + mtctx->jobs[jobID].cSize = 0; + mtctx->jobs[jobID].params = mtctx->params; + mtctx->jobs[jobID].cdict = mtctx->nextJobID==0 ? mtctx->cdict : NULL; + mtctx->jobs[jobID].fullFrameSize = mtctx->frameContentSize; + mtctx->jobs[jobID].dstBuff = g_nullBuffer; + mtctx->jobs[jobID].cctxPool = mtctx->cctxPool; + mtctx->jobs[jobID].bufPool = mtctx->bufPool; + mtctx->jobs[jobID].seqPool = mtctx->seqPool; + mtctx->jobs[jobID].serial = &mtctx->serial; + mtctx->jobs[jobID].jobID = mtctx->nextJobID; + mtctx->jobs[jobID].firstJob = (mtctx->nextJobID==0); + mtctx->jobs[jobID].lastJob = endFrame; + mtctx->jobs[jobID].frameChecksumNeeded = mtctx->params.fParams.checksumFlag && endFrame && (mtctx->nextJobID>0); + mtctx->jobs[jobID].dstFlushed = 0; + + /* Update the round buffer pos and clear the input buffer to be reset */ + mtctx->roundBuff.pos += srcSize; + mtctx->inBuff.buffer = g_nullBuffer; + mtctx->inBuff.filled = 0; + /* Set the prefix */ + if (!endFrame) { + size_t const newPrefixSize = MIN(srcSize, mtctx->targetPrefixSize); + mtctx->inBuff.prefix.start = src + srcSize - newPrefixSize; + mtctx->inBuff.prefix.size = newPrefixSize; + } else { /* endFrame==1 => no need for another input buffer */ + mtctx->inBuff.prefix = kNullRange; + mtctx->frameEnded = endFrame; + if (mtctx->nextJobID == 0) { + /* single job exception : checksum is already calculated directly within worker thread */ + mtctx->params.fParams.checksumFlag = 0; + } } + + if ( (srcSize == 0) + && (mtctx->nextJobID>0)/*single job must also write frame header*/ ) { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: creating a last empty block to end frame"); + assert(endOp == ZSTD_e_end); /* only possible case : need to end the frame with an empty last block */ + ZSTDMT_writeLastEmptyBlock(mtctx->jobs + jobID); + mtctx->nextJobID++; + return 0; + } + } + + DEBUGLOG(5, "ZSTDMT_createCompressionJob: posting job %u : %u bytes (end:%u, jobNb == %u (mod:%u))", + mtctx->nextJobID, + (U32)mtctx->jobs[jobID].src.size, + mtctx->jobs[jobID].lastJob, + mtctx->nextJobID, + jobID); + if (POOL_tryAdd(mtctx->factory, ZSTDMT_compressionJob, &mtctx->jobs[jobID])) { + mtctx->nextJobID++; + mtctx->jobReady = 0; + } else { + DEBUGLOG(5, "ZSTDMT_createCompressionJob: no worker available for job %u", mtctx->nextJobID); + mtctx->jobReady = 1; + } + return 0; +} + + +/*! ZSTDMT_flushProduced() : + * flush whatever data has been produced but not yet flushed in current job. + * move to next job if current one is fully flushed. + * `output` : `pos` will be updated with amount of data flushed . + * `blockToFlush` : if >0, the function will block and wait if there is no data available to flush . + * @return : amount of data remaining within internal buffer, 0 if no more, 1 if unknown but > 0, or an error code */ +static size_t ZSTDMT_flushProduced(ZSTDMT_CCtx* mtctx, ZSTD_outBuffer* output, unsigned blockToFlush, ZSTD_EndDirective end) +{ + unsigned const wJobID = mtctx->doneJobID & mtctx->jobIDMask; + DEBUGLOG(5, "ZSTDMT_flushProduced (blocking:%u , job %u <= %u)", + blockToFlush, mtctx->doneJobID, mtctx->nextJobID); + assert(output->size >= output->pos); + + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[wJobID].job_mutex); + if ( blockToFlush + && (mtctx->doneJobID < mtctx->nextJobID) ) { + assert(mtctx->jobs[wJobID].dstFlushed <= mtctx->jobs[wJobID].cSize); + while (mtctx->jobs[wJobID].dstFlushed == mtctx->jobs[wJobID].cSize) { /* nothing to flush */ + if (mtctx->jobs[wJobID].consumed == mtctx->jobs[wJobID].src.size) { + DEBUGLOG(5, "job %u is completely consumed (%u == %u) => don't wait for cond, there will be none", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].consumed, (U32)mtctx->jobs[wJobID].src.size); + break; + } + DEBUGLOG(5, "waiting for something to flush from job %u (currently flushed: %u bytes)", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].dstFlushed); + ZSTD_pthread_cond_wait(&mtctx->jobs[wJobID].job_cond, &mtctx->jobs[wJobID].job_mutex); /* block when nothing to flush but some to come */ + } } + + /* try to flush something */ + { size_t cSize = mtctx->jobs[wJobID].cSize; /* shared */ + size_t const srcConsumed = mtctx->jobs[wJobID].consumed; /* shared */ + size_t const srcSize = mtctx->jobs[wJobID].src.size; /* read-only, could be done after mutex lock, but no-declaration-after-statement */ + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + if (ZSTD_isError(cSize)) { + DEBUGLOG(5, "ZSTDMT_flushProduced: job %u : compression error detected : %s", + mtctx->doneJobID, ZSTD_getErrorName(cSize)); + ZSTDMT_waitForAllJobsCompleted(mtctx); + ZSTDMT_releaseAllJobResources(mtctx); + return cSize; + } + /* add frame checksum if necessary (can only happen once) */ + assert(srcConsumed <= srcSize); + if ( (srcConsumed == srcSize) /* job completed -> worker no longer active */ + && mtctx->jobs[wJobID].frameChecksumNeeded ) { + U32 const checksum = (U32)XXH64_digest(&mtctx->serial.xxhState); + DEBUGLOG(4, "ZSTDMT_flushProduced: writing checksum : %08X \n", checksum); + MEM_writeLE32((char*)mtctx->jobs[wJobID].dstBuff.start + mtctx->jobs[wJobID].cSize, checksum); + cSize += 4; + mtctx->jobs[wJobID].cSize += 4; /* can write this shared value, as worker is no longer active */ + mtctx->jobs[wJobID].frameChecksumNeeded = 0; + } + + if (cSize > 0) { /* compression is ongoing or completed */ + size_t const toFlush = MIN(cSize - mtctx->jobs[wJobID].dstFlushed, output->size - output->pos); + DEBUGLOG(5, "ZSTDMT_flushProduced: Flushing %u bytes from job %u (completion:%u/%u, generated:%u)", + (U32)toFlush, mtctx->doneJobID, (U32)srcConsumed, (U32)srcSize, (U32)cSize); + assert(mtctx->doneJobID < mtctx->nextJobID); + assert(cSize >= mtctx->jobs[wJobID].dstFlushed); + assert(mtctx->jobs[wJobID].dstBuff.start != NULL); + if (toFlush > 0) { + ZSTD_memcpy((char*)output->dst + output->pos, + (const char*)mtctx->jobs[wJobID].dstBuff.start + mtctx->jobs[wJobID].dstFlushed, + toFlush); + } + output->pos += toFlush; + mtctx->jobs[wJobID].dstFlushed += toFlush; /* can write : this value is only used by mtctx */ + + if ( (srcConsumed == srcSize) /* job is completed */ + && (mtctx->jobs[wJobID].dstFlushed == cSize) ) { /* output buffer fully flushed => free this job position */ + DEBUGLOG(5, "Job %u completed (%u bytes), moving to next one", + mtctx->doneJobID, (U32)mtctx->jobs[wJobID].dstFlushed); + ZSTDMT_releaseBuffer(mtctx->bufPool, mtctx->jobs[wJobID].dstBuff); + DEBUGLOG(5, "dstBuffer released"); + mtctx->jobs[wJobID].dstBuff = g_nullBuffer; + mtctx->jobs[wJobID].cSize = 0; /* ensure this job slot is considered "not started" in future check */ + mtctx->consumed += srcSize; + mtctx->produced += cSize; + mtctx->doneJobID++; + } } + + /* return value : how many bytes left in buffer ; fake it to 1 when unknown but >0 */ + if (cSize > mtctx->jobs[wJobID].dstFlushed) return (cSize - mtctx->jobs[wJobID].dstFlushed); + if (srcSize > srcConsumed) return 1; /* current job not completely compressed */ + } + if (mtctx->doneJobID < mtctx->nextJobID) return 1; /* some more jobs ongoing */ + if (mtctx->jobReady) return 1; /* one job is ready to push, just not yet in the list */ + if (mtctx->inBuff.filled > 0) return 1; /* input is not empty, and still needs to be converted into a job */ + mtctx->allJobsCompleted = mtctx->frameEnded; /* all jobs are entirely flushed => if this one is last one, frame is completed */ + if (end == ZSTD_e_end) return !mtctx->frameEnded; /* for ZSTD_e_end, question becomes : is frame completed ? instead of : are internal buffers fully flushed ? */ + return 0; /* internal buffers fully flushed */ +} + +/** + * Returns the range of data used by the earliest job that is not yet complete. + * If the data of the first job is broken up into two segments, we cover both + * sections. + */ +static range_t ZSTDMT_getInputDataInUse(ZSTDMT_CCtx* mtctx) +{ + unsigned const firstJobID = mtctx->doneJobID; + unsigned const lastJobID = mtctx->nextJobID; + unsigned jobID; + + for (jobID = firstJobID; jobID < lastJobID; ++jobID) { + unsigned const wJobID = jobID & mtctx->jobIDMask; + size_t consumed; + + ZSTD_PTHREAD_MUTEX_LOCK(&mtctx->jobs[wJobID].job_mutex); + consumed = mtctx->jobs[wJobID].consumed; + ZSTD_pthread_mutex_unlock(&mtctx->jobs[wJobID].job_mutex); + + if (consumed < mtctx->jobs[wJobID].src.size) { + range_t range = mtctx->jobs[wJobID].prefix; + if (range.size == 0) { + /* Empty prefix */ + range = mtctx->jobs[wJobID].src; + } + /* Job source in multiple segments not supported yet */ + assert(range.start <= mtctx->jobs[wJobID].src.start); + return range; + } + } + return kNullRange; +} + +/** + * Returns non-zero iff buffer and range overlap. + */ +static int ZSTDMT_isOverlapped(buffer_t buffer, range_t range) +{ + BYTE const* const bufferStart = (BYTE const*)buffer.start; + BYTE const* const rangeStart = (BYTE const*)range.start; + + if (rangeStart == NULL || bufferStart == NULL) + return 0; + + { + BYTE const* const bufferEnd = bufferStart + buffer.capacity; + BYTE const* const rangeEnd = rangeStart + range.size; + + /* Empty ranges cannot overlap */ + if (bufferStart == bufferEnd || rangeStart == rangeEnd) + return 0; + + return bufferStart < rangeEnd && rangeStart < bufferEnd; + } +} + +static int ZSTDMT_doesOverlapWindow(buffer_t buffer, ZSTD_window_t window) +{ + range_t extDict; + range_t prefix; + + DEBUGLOG(5, "ZSTDMT_doesOverlapWindow"); + extDict.start = window.dictBase + window.lowLimit; + extDict.size = window.dictLimit - window.lowLimit; + + prefix.start = window.base + window.dictLimit; + prefix.size = window.nextSrc - (window.base + window.dictLimit); + DEBUGLOG(5, "extDict [0x%zx, 0x%zx)", + (size_t)extDict.start, + (size_t)extDict.start + extDict.size); + DEBUGLOG(5, "prefix [0x%zx, 0x%zx)", + (size_t)prefix.start, + (size_t)prefix.start + prefix.size); + + return ZSTDMT_isOverlapped(buffer, extDict) + || ZSTDMT_isOverlapped(buffer, prefix); +} + +static void ZSTDMT_waitForLdmComplete(ZSTDMT_CCtx* mtctx, buffer_t buffer) +{ + if (mtctx->params.ldmParams.enableLdm == ZSTD_ps_enable) { + ZSTD_pthread_mutex_t* mutex = &mtctx->serial.ldmWindowMutex; + DEBUGLOG(5, "ZSTDMT_waitForLdmComplete"); + DEBUGLOG(5, "source [0x%zx, 0x%zx)", + (size_t)buffer.start, + (size_t)buffer.start + buffer.capacity); + ZSTD_PTHREAD_MUTEX_LOCK(mutex); + while (ZSTDMT_doesOverlapWindow(buffer, mtctx->serial.ldmWindow)) { + DEBUGLOG(5, "Waiting for LDM to finish..."); + ZSTD_pthread_cond_wait(&mtctx->serial.ldmWindowCond, mutex); + } + DEBUGLOG(6, "Done waiting for LDM to finish"); + ZSTD_pthread_mutex_unlock(mutex); + } +} + +/** + * Attempts to set the inBuff to the next section to fill. + * If any part of the new section is still in use we give up. + * Returns non-zero if the buffer is filled. + */ +static int ZSTDMT_tryGetInputRange(ZSTDMT_CCtx* mtctx) +{ + range_t const inUse = ZSTDMT_getInputDataInUse(mtctx); + size_t const spaceLeft = mtctx->roundBuff.capacity - mtctx->roundBuff.pos; + size_t const target = mtctx->targetSectionSize; + buffer_t buffer; + + DEBUGLOG(5, "ZSTDMT_tryGetInputRange"); + assert(mtctx->inBuff.buffer.start == NULL); + assert(mtctx->roundBuff.capacity >= target); + + if (spaceLeft < target) { + /* ZSTD_invalidateRepCodes() doesn't work for extDict variants. + * Simply copy the prefix to the beginning in that case. + */ + BYTE* const start = (BYTE*)mtctx->roundBuff.buffer; + size_t const prefixSize = mtctx->inBuff.prefix.size; + + buffer.start = start; + buffer.capacity = prefixSize; + if (ZSTDMT_isOverlapped(buffer, inUse)) { + DEBUGLOG(5, "Waiting for buffer..."); + return 0; + } + ZSTDMT_waitForLdmComplete(mtctx, buffer); + ZSTD_memmove(start, mtctx->inBuff.prefix.start, prefixSize); + mtctx->inBuff.prefix.start = start; + mtctx->roundBuff.pos = prefixSize; + } + buffer.start = mtctx->roundBuff.buffer + mtctx->roundBuff.pos; + buffer.capacity = target; + + if (ZSTDMT_isOverlapped(buffer, inUse)) { + DEBUGLOG(5, "Waiting for buffer..."); + return 0; + } + assert(!ZSTDMT_isOverlapped(buffer, mtctx->inBuff.prefix)); + + ZSTDMT_waitForLdmComplete(mtctx, buffer); + + DEBUGLOG(5, "Using prefix range [%zx, %zx)", + (size_t)mtctx->inBuff.prefix.start, + (size_t)mtctx->inBuff.prefix.start + mtctx->inBuff.prefix.size); + DEBUGLOG(5, "Using source range [%zx, %zx)", + (size_t)buffer.start, + (size_t)buffer.start + buffer.capacity); + + + mtctx->inBuff.buffer = buffer; + mtctx->inBuff.filled = 0; + assert(mtctx->roundBuff.pos + buffer.capacity <= mtctx->roundBuff.capacity); + return 1; +} + +typedef struct { + size_t toLoad; /* The number of bytes to load from the input. */ + int flush; /* Boolean declaring if we must flush because we found a synchronization point. */ +} syncPoint_t; + +/** + * Searches through the input for a synchronization point. If one is found, we + * will instruct the caller to flush, and return the number of bytes to load. + * Otherwise, we will load as many bytes as possible and instruct the caller + * to continue as normal. + */ +static syncPoint_t +findSynchronizationPoint(ZSTDMT_CCtx const* mtctx, ZSTD_inBuffer const input) +{ + BYTE const* const istart = (BYTE const*)input.src + input.pos; + U64 const primePower = mtctx->rsync.primePower; + U64 const hitMask = mtctx->rsync.hitMask; + + syncPoint_t syncPoint; + U64 hash; + BYTE const* prev; + size_t pos; + + syncPoint.toLoad = MIN(input.size - input.pos, mtctx->targetSectionSize - mtctx->inBuff.filled); + syncPoint.flush = 0; + if (!mtctx->params.rsyncable) + /* Rsync is disabled. */ + return syncPoint; + if (mtctx->inBuff.filled + input.size - input.pos < RSYNC_MIN_BLOCK_SIZE) + /* We don't emit synchronization points if it would produce too small blocks. + * We don't have enough input to find a synchronization point, so don't look. + */ + return syncPoint; + if (mtctx->inBuff.filled + syncPoint.toLoad < RSYNC_LENGTH) + /* Not enough to compute the hash. + * We will miss any synchronization points in this RSYNC_LENGTH byte + * window. However, since it depends only in the internal buffers, if the + * state is already synchronized, we will remain synchronized. + * Additionally, the probability that we miss a synchronization point is + * low: RSYNC_LENGTH / targetSectionSize. + */ + return syncPoint; + /* Initialize the loop variables. */ + if (mtctx->inBuff.filled < RSYNC_MIN_BLOCK_SIZE) { + /* We don't need to scan the first RSYNC_MIN_BLOCK_SIZE positions + * because they can't possibly be a sync point. So we can start + * part way through the input buffer. + */ + pos = RSYNC_MIN_BLOCK_SIZE - mtctx->inBuff.filled; + if (pos >= RSYNC_LENGTH) { + prev = istart + pos - RSYNC_LENGTH; + hash = ZSTD_rollingHash_compute(prev, RSYNC_LENGTH); + } else { + assert(mtctx->inBuff.filled >= RSYNC_LENGTH); + prev = (BYTE const*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled - RSYNC_LENGTH; + hash = ZSTD_rollingHash_compute(prev + pos, (RSYNC_LENGTH - pos)); + hash = ZSTD_rollingHash_append(hash, istart, pos); + } + } else { + /* We have enough bytes buffered to initialize the hash, + * and have processed enough bytes to find a sync point. + * Start scanning at the beginning of the input. + */ + assert(mtctx->inBuff.filled >= RSYNC_MIN_BLOCK_SIZE); + assert(RSYNC_MIN_BLOCK_SIZE >= RSYNC_LENGTH); + pos = 0; + prev = (BYTE const*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled - RSYNC_LENGTH; + hash = ZSTD_rollingHash_compute(prev, RSYNC_LENGTH); + if ((hash & hitMask) == hitMask) { + /* We're already at a sync point so don't load any more until + * we're able to flush this sync point. + * This likely happened because the job table was full so we + * couldn't add our job. + */ + syncPoint.toLoad = 0; + syncPoint.flush = 1; + return syncPoint; + } + } + /* Starting with the hash of the previous RSYNC_LENGTH bytes, roll + * through the input. If we hit a synchronization point, then cut the + * job off, and tell the compressor to flush the job. Otherwise, load + * all the bytes and continue as normal. + * If we go too long without a synchronization point (targetSectionSize) + * then a block will be emitted anyways, but this is okay, since if we + * are already synchronized we will remain synchronized. + */ + assert(pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH, RSYNC_LENGTH) == hash); + for (; pos < syncPoint.toLoad; ++pos) { + BYTE const toRemove = pos < RSYNC_LENGTH ? prev[pos] : istart[pos - RSYNC_LENGTH]; + /* This assert is very expensive, and Debian compiles with asserts enabled. + * So disable it for now. We can get similar coverage by checking it at the + * beginning & end of the loop. + * assert(pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH, RSYNC_LENGTH) == hash); + */ + hash = ZSTD_rollingHash_rotate(hash, toRemove, istart[pos], primePower); + assert(mtctx->inBuff.filled + pos >= RSYNC_MIN_BLOCK_SIZE); + if ((hash & hitMask) == hitMask) { + syncPoint.toLoad = pos + 1; + syncPoint.flush = 1; + ++pos; /* for assert */ + break; + } + } + assert(pos < RSYNC_LENGTH || ZSTD_rollingHash_compute(istart + pos - RSYNC_LENGTH, RSYNC_LENGTH) == hash); + return syncPoint; +} + +size_t ZSTDMT_nextInputSizeHint(const ZSTDMT_CCtx* mtctx) +{ + size_t hintInSize = mtctx->targetSectionSize - mtctx->inBuff.filled; + if (hintInSize==0) hintInSize = mtctx->targetSectionSize; + return hintInSize; +} + +/** ZSTDMT_compressStream_generic() : + * internal use only - exposed to be invoked from zstd_compress.c + * assumption : output and input are valid (pos <= size) + * @return : minimum amount of data remaining to flush, 0 if none */ +size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp) +{ + unsigned forwardInputProgress = 0; + DEBUGLOG(5, "ZSTDMT_compressStream_generic (endOp=%u, srcSize=%u)", + (U32)endOp, (U32)(input->size - input->pos)); + assert(output->pos <= output->size); + assert(input->pos <= input->size); + + if ((mtctx->frameEnded) && (endOp==ZSTD_e_continue)) { + /* current frame being ended. Only flush/end are allowed */ + return ERROR(stage_wrong); + } + + /* fill input buffer */ + if ( (!mtctx->jobReady) + && (input->size > input->pos) ) { /* support NULL input */ + if (mtctx->inBuff.buffer.start == NULL) { + assert(mtctx->inBuff.filled == 0); /* Can't fill an empty buffer */ + if (!ZSTDMT_tryGetInputRange(mtctx)) { + /* It is only possible for this operation to fail if there are + * still compression jobs ongoing. + */ + DEBUGLOG(5, "ZSTDMT_tryGetInputRange failed"); + assert(mtctx->doneJobID != mtctx->nextJobID); + } else + DEBUGLOG(5, "ZSTDMT_tryGetInputRange completed successfully : mtctx->inBuff.buffer.start = %p", mtctx->inBuff.buffer.start); + } + if (mtctx->inBuff.buffer.start != NULL) { + syncPoint_t const syncPoint = findSynchronizationPoint(mtctx, *input); + if (syncPoint.flush && endOp == ZSTD_e_continue) { + endOp = ZSTD_e_flush; + } + assert(mtctx->inBuff.buffer.capacity >= mtctx->targetSectionSize); + DEBUGLOG(5, "ZSTDMT_compressStream_generic: adding %u bytes on top of %u to buffer of size %u", + (U32)syncPoint.toLoad, (U32)mtctx->inBuff.filled, (U32)mtctx->targetSectionSize); + ZSTD_memcpy((char*)mtctx->inBuff.buffer.start + mtctx->inBuff.filled, (const char*)input->src + input->pos, syncPoint.toLoad); + input->pos += syncPoint.toLoad; + mtctx->inBuff.filled += syncPoint.toLoad; + forwardInputProgress = syncPoint.toLoad>0; + } + } + if ((input->pos < input->size) && (endOp == ZSTD_e_end)) { + /* Can't end yet because the input is not fully consumed. + * We are in one of these cases: + * - mtctx->inBuff is NULL & empty: we couldn't get an input buffer so don't create a new job. + * - We filled the input buffer: flush this job but don't end the frame. + * - We hit a synchronization point: flush this job but don't end the frame. + */ + assert(mtctx->inBuff.filled == 0 || mtctx->inBuff.filled == mtctx->targetSectionSize || mtctx->params.rsyncable); + endOp = ZSTD_e_flush; + } + + if ( (mtctx->jobReady) + || (mtctx->inBuff.filled >= mtctx->targetSectionSize) /* filled enough : let's compress */ + || ((endOp != ZSTD_e_continue) && (mtctx->inBuff.filled > 0)) /* something to flush : let's go */ + || ((endOp == ZSTD_e_end) && (!mtctx->frameEnded)) ) { /* must finish the frame with a zero-size block */ + size_t const jobSize = mtctx->inBuff.filled; + assert(mtctx->inBuff.filled <= mtctx->targetSectionSize); + FORWARD_IF_ERROR( ZSTDMT_createCompressionJob(mtctx, jobSize, endOp) , ""); + } + + /* check for potential compressed data ready to be flushed */ + { size_t const remainingToFlush = ZSTDMT_flushProduced(mtctx, output, !forwardInputProgress, endOp); /* block if there was no forward input progress */ + if (input->pos < input->size) return MAX(remainingToFlush, 1); /* input not consumed : do not end flush yet */ + DEBUGLOG(5, "end of ZSTDMT_compressStream_generic: remainingToFlush = %u", (U32)remainingToFlush); + return remainingToFlush; + } +} + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/decompress/huf_decompress.cpp b/src/duckdb/third_party/zstd/decompress/huf_decompress.cpp index 3c9a8cdf..736e2f06 100644 --- a/src/duckdb/third_party/zstd/decompress/huf_decompress.cpp +++ b/src/duckdb/third_party/zstd/decompress/huf_decompress.cpp @@ -1,7 +1,7 @@ /* ****************************************************************** * huff0 huffman decoder, * part of Finite State Entropy library - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - FSE+HUF source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -15,19 +15,31 @@ /* ************************************************************** * Dependencies ****************************************************************/ -#include /* memcpy, memset */ +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memset */ #include "zstd/common/compiler.h" #include "zstd/common/bitstream.h" /* BIT_* */ #include "zstd/common/fse.h" /* to compress headers */ #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" #include "zstd/common/error_private.h" +#include "zstd/common/zstd_internal.h" +#include "zstd/common/bits.h" /* ZSTD_highbit32, ZSTD_countTrailingZeros64 */ + +/* ************************************************************** +* Constants +****************************************************************/ + +#define HUF_DECODER_FAST_TABLELOG 11 -namespace duckdb_zstd { /* ************************************************************** * Macros ****************************************************************/ +#ifdef HUF_DISABLE_FAST_DECODE +# define HUF_ENABLE_FAST_DECODE 0 +#else +# define HUF_ENABLE_FAST_DECODE 1 +#endif + /* These two optional macros force the use one way or another of the two * Huffman decompression implementations. You can't force in both directions * at the same time. @@ -37,11 +49,33 @@ namespace duckdb_zstd { #error "Cannot force the use of the X1 and X2 decoders at the same time!" #endif +/* When DYNAMIC_BMI2 is enabled, fast decoders are only called when bmi2 is + * supported at runtime, so we can add the BMI2 target attribute. + * When it is disabled, we will still get BMI2 if it is enabled statically. + */ +#if DYNAMIC_BMI2 +# define HUF_FAST_BMI2_ATTRS BMI2_TARGET_ATTRIBUTE +#else +# define HUF_FAST_BMI2_ATTRS +#endif + +#ifdef __cplusplus +# define HUF_EXTERN_C extern "C" +#else +# define HUF_EXTERN_C +#endif +#define HUF_ASM_DECL HUF_EXTERN_C + +#if DYNAMIC_BMI2 +# define HUF_NEED_BMI2_FUNCTION 1 +#else +# define HUF_NEED_BMI2_FUNCTION 0 +#endif /* ************************************************************** * Error Management ****************************************************************/ -// #define HUF_isError ERR_isError +#define HUF_isError ERR_isError /* ************************************************************** @@ -50,10 +84,16 @@ namespace duckdb_zstd { #define HUF_ALIGN(x, a) HUF_ALIGN_MASK((x), (a) - 1) #define HUF_ALIGN_MASK(x, mask) (((x) + (mask)) & ~(mask)) +namespace duckdb_zstd { /* ************************************************************** * BMI2 Variant Wrappers ****************************************************************/ +typedef size_t (*HUF_DecompressUsingDTableFn)(void *dst, size_t dstSize, + const void *cSrc, + size_t cSrcSize, + const HUF_DTable *DTable); + #if DYNAMIC_BMI2 #define HUF_DGEN(fn) \ @@ -66,7 +106,7 @@ namespace duckdb_zstd { return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ } \ \ - static TARGET_ATTRIBUTE("bmi2") size_t fn##_bmi2( \ + static BMI2_TARGET_ATTRIBUTE size_t fn##_bmi2( \ void* dst, size_t dstSize, \ const void* cSrc, size_t cSrcSize, \ const HUF_DTable* DTable) \ @@ -75,9 +115,9 @@ namespace duckdb_zstd { } \ \ static size_t fn(void* dst, size_t dstSize, void const* cSrc, \ - size_t cSrcSize, HUF_DTable const* DTable, int bmi2) \ + size_t cSrcSize, HUF_DTable const* DTable, int flags) \ { \ - if (bmi2) { \ + if (flags & HUF_flags_bmi2) { \ return fn##_bmi2(dst, dstSize, cSrc, cSrcSize, DTable); \ } \ return fn##_default(dst, dstSize, cSrc, cSrcSize, DTable); \ @@ -87,9 +127,9 @@ namespace duckdb_zstd { #define HUF_DGEN(fn) \ static size_t fn(void* dst, size_t dstSize, void const* cSrc, \ - size_t cSrcSize, HUF_DTable const* DTable, int bmi2) \ + size_t cSrcSize, HUF_DTable const* DTable, int flags) \ { \ - (void)bmi2; \ + (void)flags; \ return fn##_body(dst, dstSize, cSrc, cSrcSize, DTable); \ } @@ -104,92 +144,379 @@ typedef struct { BYTE maxTableLog; BYTE tableType; BYTE tableLog; BYTE reserved; static DTableDesc HUF_getDTableDesc(const HUF_DTable* table) { DTableDesc dtd; - memcpy(&dtd, table, sizeof(dtd)); + ZSTD_memcpy(&dtd, table, sizeof(dtd)); return dtd; } +static size_t HUF_initFastDStream(BYTE const* ip) { + BYTE const lastByte = ip[7]; + size_t const bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; + size_t const value = MEM_readLEST(ip) | 1; + assert(bitsConsumed <= 8); + assert(sizeof(size_t) == 8); + return value << bitsConsumed; +} + + +/** + * The input/output arguments to the Huffman fast decoding loop: + * + * ip [in/out] - The input pointers, must be updated to reflect what is consumed. + * op [in/out] - The output pointers, must be updated to reflect what is written. + * bits [in/out] - The bitstream containers, must be updated to reflect the current state. + * dt [in] - The decoding table. + * ilowest [in] - The beginning of the valid range of the input. Decoders may read + * down to this pointer. It may be below iend[0]. + * oend [in] - The end of the output stream. op[3] must not cross oend. + * iend [in] - The end of each input stream. ip[i] may cross iend[i], + * as long as it is above ilowest, but that indicates corruption. + */ +typedef struct { + BYTE const* ip[4]; + BYTE* op[4]; + U64 bits[4]; + void const* dt; + BYTE const* ilowest; + BYTE* oend; + BYTE const* iend[4]; +} HUF_DecompressFastArgs; + +typedef void (*HUF_DecompressFastLoopFn)(HUF_DecompressFastArgs*); + +/** + * Initializes args for the fast decoding loop. + * @returns 1 on success + * 0 if the fallback implementation should be used. + * Or an error code on failure. + */ +static size_t HUF_DecompressFastArgs_init(HUF_DecompressFastArgs* args, void* dst, size_t dstSize, void const* src, size_t srcSize, const HUF_DTable* DTable) +{ + void const* dt = DTable + 1; + U32 const dtLog = HUF_getDTableDesc(DTable).tableLog; + + const BYTE* const istart = (const BYTE*)src; + + BYTE* const oend = ZSTD_maybeNullPtrAdd((BYTE*)dst, dstSize); + + /* The fast decoding loop assumes 64-bit little-endian. + * This condition is false on x32. + */ + if (!MEM_isLittleEndian() || MEM_32bits()) + return 0; + + /* Avoid nullptr addition */ + if (dstSize == 0) + return 0; + assert(dst != NULL); + + /* strict minimum : jump table + 1 byte per stream */ + if (srcSize < 10) + return ERROR(corruption_detected); + + /* Must have at least 8 bytes per stream because we don't handle initializing smaller bit containers. + * If table log is not correct at this point, fallback to the old decoder. + * On small inputs we don't have enough data to trigger the fast loop, so use the old decoder. + */ + if (dtLog != HUF_DECODER_FAST_TABLELOG) + return 0; + + /* Read the jump table. */ + { + size_t const length1 = MEM_readLE16(istart); + size_t const length2 = MEM_readLE16(istart+2); + size_t const length3 = MEM_readLE16(istart+4); + size_t const length4 = srcSize - (length1 + length2 + length3 + 6); + args->iend[0] = istart + 6; /* jumpTable */ + args->iend[1] = args->iend[0] + length1; + args->iend[2] = args->iend[1] + length2; + args->iend[3] = args->iend[2] + length3; + + /* HUF_initFastDStream() requires this, and this small of an input + * won't benefit from the ASM loop anyways. + */ + if (length1 < 8 || length2 < 8 || length3 < 8 || length4 < 8) + return 0; + if (length4 > srcSize) return ERROR(corruption_detected); /* overflow */ + } + /* ip[] contains the position that is currently loaded into bits[]. */ + args->ip[0] = args->iend[1] - sizeof(U64); + args->ip[1] = args->iend[2] - sizeof(U64); + args->ip[2] = args->iend[3] - sizeof(U64); + args->ip[3] = (BYTE const*)src + srcSize - sizeof(U64); + + /* op[] contains the output pointers. */ + args->op[0] = (BYTE*)dst; + args->op[1] = args->op[0] + (dstSize+3)/4; + args->op[2] = args->op[1] + (dstSize+3)/4; + args->op[3] = args->op[2] + (dstSize+3)/4; + + /* No point to call the ASM loop for tiny outputs. */ + if (args->op[3] >= oend) + return 0; + + /* bits[] is the bit container. + * It is read from the MSB down to the LSB. + * It is shifted left as it is read, and zeros are + * shifted in. After the lowest valid bit a 1 is + * set, so that CountTrailingZeros(bits[]) can be used + * to count how many bits we've consumed. + */ + args->bits[0] = HUF_initFastDStream(args->ip[0]); + args->bits[1] = HUF_initFastDStream(args->ip[1]); + args->bits[2] = HUF_initFastDStream(args->ip[2]); + args->bits[3] = HUF_initFastDStream(args->ip[3]); + + /* The decoders must be sure to never read beyond ilowest. + * This is lower than iend[0], but allowing decoders to read + * down to ilowest can allow an extra iteration or two in the + * fast loop. + */ + args->ilowest = istart; + + args->oend = oend; + args->dt = dt; + + return 1; +} + +static size_t HUF_initRemainingDStream(BIT_DStream_t* bit, HUF_DecompressFastArgs const* args, int stream, BYTE* segmentEnd) +{ + /* Validate that we haven't overwritten. */ + if (args->op[stream] > segmentEnd) + return ERROR(corruption_detected); + /* Validate that we haven't read beyond iend[]. + * Note that ip[] may be < iend[] because the MSB is + * the next bit to read, and we may have consumed 100% + * of the stream, so down to iend[i] - 8 is valid. + */ + if (args->ip[stream] < args->iend[stream] - 8) + return ERROR(corruption_detected); + + /* Construct the BIT_DStream_t. */ + assert(sizeof(size_t) == 8); + bit->bitContainer = MEM_readLEST(args->ip[stream]); + bit->bitsConsumed = ZSTD_countTrailingZeros64(args->bits[stream]); + bit->start = (const char*)args->ilowest; + bit->limitPtr = bit->start + sizeof(size_t); + bit->ptr = (const char*)args->ip[stream]; + + return 0; +} + +/* Calls X(N) for each stream 0, 1, 2, 3. */ +#define HUF_4X_FOR_EACH_STREAM(X) \ + do { \ + X(0); \ + X(1); \ + X(2); \ + X(3); \ + } while (0) + +/* Calls X(N, var) for each stream 0, 1, 2, 3. */ +#define HUF_4X_FOR_EACH_STREAM_WITH_VAR(X, var) \ + do { \ + X(0, (var)); \ + X(1, (var)); \ + X(2, (var)); \ + X(3, (var)); \ + } while (0) + #ifndef HUF_FORCE_DECOMPRESS_X2 /*-***************************/ /* single-symbol decoding */ /*-***************************/ -typedef struct { BYTE byte; BYTE nbBits; } HUF_DEltX1; /* single-symbol decoding */ +typedef struct { BYTE nbBits; BYTE byte; } HUF_DEltX1; /* single-symbol decoding */ + +/** + * Packs 4 HUF_DEltX1 structs into a U64. This is used to lay down 4 entries at + * a time. + */ +static U64 HUF_DEltX1_set4(BYTE symbol, BYTE nbBits) { + U64 D4; + if (MEM_isLittleEndian()) { + D4 = (U64)((symbol << 8) + nbBits); + } else { + D4 = (U64)(symbol + (nbBits << 8)); + } + assert(D4 < (1U << 16)); + D4 *= 0x0001000100010001ULL; + return D4; +} -size_t HUF_readDTableX1_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize) +/** + * Increase the tableLog to targetTableLog and rescales the stats. + * If tableLog > targetTableLog this is a no-op. + * @returns New tableLog + */ +static U32 HUF_rescaleStats(BYTE* huffWeight, U32* rankVal, U32 nbSymbols, U32 tableLog, U32 targetTableLog) +{ + if (tableLog > targetTableLog) + return tableLog; + if (tableLog < targetTableLog) { + U32 const scale = targetTableLog - tableLog; + U32 s; + /* Increase the weight for all non-zero probability symbols by scale. */ + for (s = 0; s < nbSymbols; ++s) { + huffWeight[s] += (BYTE)((huffWeight[s] == 0) ? 0 : scale); + } + /* Update rankVal to reflect the new weights. + * All weights except 0 get moved to weight + scale. + * Weights [1, scale] are empty. + */ + for (s = targetTableLog; s > scale; --s) { + rankVal[s] = rankVal[s - scale]; + } + for (s = scale; s > 0; --s) { + rankVal[s] = 0; + } + } + return targetTableLog; +} + +typedef struct { + U32 rankVal[HUF_TABLELOG_ABSOLUTEMAX + 1]; + U32 rankStart[HUF_TABLELOG_ABSOLUTEMAX + 1]; + U32 statsWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; + BYTE symbols[HUF_SYMBOLVALUE_MAX + 1]; + BYTE huffWeight[HUF_SYMBOLVALUE_MAX + 1]; +} HUF_ReadDTableX1_Workspace; + +size_t HUF_readDTableX1_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int flags) { U32 tableLog = 0; U32 nbSymbols = 0; size_t iSize; void* const dtPtr = DTable + 1; HUF_DEltX1* const dt = (HUF_DEltX1*)dtPtr; + HUF_ReadDTableX1_Workspace* wksp = (HUF_ReadDTableX1_Workspace*)workSpace; - U32* rankVal; - BYTE* huffWeight; - size_t spaceUsed32 = 0; - - rankVal = (U32 *)workSpace + spaceUsed32; - spaceUsed32 += HUF_TABLELOG_ABSOLUTEMAX + 1; - huffWeight = (BYTE *)((U32 *)workSpace + spaceUsed32); - spaceUsed32 += HUF_ALIGN(HUF_SYMBOLVALUE_MAX + 1, sizeof(U32)) >> 2; - - if ((spaceUsed32 << 2) > wkspSize) return ERROR(tableLog_tooLarge); + DEBUG_STATIC_ASSERT(HUF_DECOMPRESS_WORKSPACE_SIZE >= sizeof(*wksp)); + if (sizeof(*wksp) > wkspSize) return ERROR(tableLog_tooLarge); DEBUG_STATIC_ASSERT(sizeof(DTableDesc) == sizeof(HUF_DTable)); - /* memset(huffWeight, 0, sizeof(huffWeight)); */ /* is not necessary, even though some analyzer complain ... */ + /* ZSTD_memset(huffWeight, 0, sizeof(huffWeight)); */ /* is not necessary, even though some analyzer complain ... */ - iSize = HUF_readStats(huffWeight, HUF_SYMBOLVALUE_MAX + 1, rankVal, &nbSymbols, &tableLog, src, srcSize); + iSize = HUF_readStats_wksp(wksp->huffWeight, HUF_SYMBOLVALUE_MAX + 1, wksp->rankVal, &nbSymbols, &tableLog, src, srcSize, wksp->statsWksp, sizeof(wksp->statsWksp), flags); if (HUF_isError(iSize)) return iSize; + /* Table header */ { DTableDesc dtd = HUF_getDTableDesc(DTable); + U32 const maxTableLog = dtd.maxTableLog + 1; + U32 const targetTableLog = MIN(maxTableLog, HUF_DECODER_FAST_TABLELOG); + tableLog = HUF_rescaleStats(wksp->huffWeight, wksp->rankVal, nbSymbols, tableLog, targetTableLog); if (tableLog > (U32)(dtd.maxTableLog+1)) return ERROR(tableLog_tooLarge); /* DTable too small, Huffman tree cannot fit in */ dtd.tableType = 0; dtd.tableLog = (BYTE)tableLog; - memcpy(DTable, &dtd, sizeof(dtd)); + ZSTD_memcpy(DTable, &dtd, sizeof(dtd)); } - /* Calculate starting value for each rank */ - { U32 n, nextRankStart = 0; - for (n=1; n> 1; - size_t const uStart = rankVal[w]; - size_t const uEnd = uStart + length; - size_t u; - HUF_DEltX1 D; - D.byte = (BYTE)n; - D.nbBits = (BYTE)(tableLog + 1 - w); - rankVal[w] = (U32)uEnd; - if (length < 4) { - /* Use length in the loop bound so the compiler knows it is short. */ - for (u = 0; u < length; ++u) - dt[uStart + u] = D; - } else { - /* Unroll the loop 4 times, we know it is a power of 2. */ - for (u = uStart; u < uEnd; u += 4) { - dt[u + 0] = D; - dt[u + 1] = D; - dt[u + 2] = D; - dt[u + 3] = D; - } } } } - return iSize; -} + /* Compute symbols and rankStart given rankVal: + * + * rankVal already contains the number of values of each weight. + * + * symbols contains the symbols ordered by weight. First are the rankVal[0] + * weight 0 symbols, followed by the rankVal[1] weight 1 symbols, and so on. + * symbols[0] is filled (but unused) to avoid a branch. + * + * rankStart contains the offset where each rank belongs in the DTable. + * rankStart[0] is not filled because there are no entries in the table for + * weight 0. + */ + { int n; + U32 nextRankStart = 0; + int const unroll = 4; + int const nLimit = (int)nbSymbols - unroll + 1; + for (n=0; n<(int)tableLog+1; n++) { + U32 const curr = nextRankStart; + nextRankStart += wksp->rankVal[n]; + wksp->rankStart[n] = curr; + } + for (n=0; n < nLimit; n += unroll) { + int u; + for (u=0; u < unroll; ++u) { + size_t const w = wksp->huffWeight[n+u]; + wksp->symbols[wksp->rankStart[w]++] = (BYTE)(n+u); + } + } + for (; n < (int)nbSymbols; ++n) { + size_t const w = wksp->huffWeight[n]; + wksp->symbols[wksp->rankStart[w]++] = (BYTE)n; + } + } -size_t HUF_readDTableX1(HUF_DTable* DTable, const void* src, size_t srcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_readDTableX1_wksp(DTable, src, srcSize, - workSpace, sizeof(workSpace)); + /* fill DTable + * We fill all entries of each weight in order. + * That way length is a constant for each iteration of the outer loop. + * We can switch based on the length to a different inner loop which is + * optimized for that particular case. + */ + { U32 w; + int symbol = wksp->rankVal[0]; + int rankStart = 0; + for (w=1; wrankVal[w]; + int const length = (1 << w) >> 1; + int uStart = rankStart; + BYTE const nbBits = (BYTE)(tableLog + 1 - w); + int s; + int u; + switch (length) { + case 1: + for (s=0; ssymbols[symbol + s]; + D.nbBits = nbBits; + dt[uStart] = D; + uStart += 1; + } + break; + case 2: + for (s=0; ssymbols[symbol + s]; + D.nbBits = nbBits; + dt[uStart+0] = D; + dt[uStart+1] = D; + uStart += 2; + } + break; + case 4: + for (s=0; ssymbols[symbol + s], nbBits); + MEM_write64(dt + uStart, D4); + uStart += 4; + } + break; + case 8: + for (s=0; ssymbols[symbol + s], nbBits); + MEM_write64(dt + uStart, D4); + MEM_write64(dt + uStart + 4, D4); + uStart += 8; + } + break; + default: + for (s=0; ssymbols[symbol + s], nbBits); + for (u=0; u < length; u += 16) { + MEM_write64(dt + uStart + u + 0, D4); + MEM_write64(dt + uStart + u + 4, D4); + MEM_write64(dt + uStart + u + 8, D4); + MEM_write64(dt + uStart + u + 12, D4); + } + assert(u == length); + uStart += length; + } + break; + } + symbol += symbolCount; + rankStart += symbolCount * length; + } + } + return iSize; } FORCE_INLINE_TEMPLATE BYTE @@ -202,15 +529,19 @@ HUF_decodeSymbolX1(BIT_DStream_t* Dstream, const HUF_DEltX1* dt, const U32 dtLog } #define HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr) \ - *ptr++ = HUF_decodeSymbolX1(DStreamPtr, dt, dtLog) + do { *ptr++ = HUF_decodeSymbolX1(DStreamPtr, dt, dtLog); } while (0) -#define HUF_DECODE_SYMBOLX1_1(ptr, DStreamPtr) \ - if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ - HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr) +#define HUF_DECODE_SYMBOLX1_1(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ + HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr); \ + } while (0) -#define HUF_DECODE_SYMBOLX1_2(ptr, DStreamPtr) \ - if (MEM_64bits()) \ - HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr) +#define HUF_DECODE_SYMBOLX1_2(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits()) \ + HUF_DECODE_SYMBOLX1_0(ptr, DStreamPtr); \ + } while (0) HINT_INLINE size_t HUF_decodeStreamX1(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, const HUF_DEltX1* const dt, const U32 dtLog) @@ -218,11 +549,15 @@ HUF_decodeStreamX1(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, cons BYTE* const pStart = p; /* up to 4 symbols at a time */ - while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-3)) { - HUF_DECODE_SYMBOLX1_2(p, bitDPtr); - HUF_DECODE_SYMBOLX1_1(p, bitDPtr); - HUF_DECODE_SYMBOLX1_2(p, bitDPtr); - HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + if ((pEnd - p) > 3) { + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-3)) { + HUF_DECODE_SYMBOLX1_2(p, bitDPtr); + HUF_DECODE_SYMBOLX1_1(p, bitDPtr); + HUF_DECODE_SYMBOLX1_2(p, bitDPtr); + HUF_DECODE_SYMBOLX1_0(p, bitDPtr); + } + } else { + BIT_reloadDStream(bitDPtr); } /* [0-3] symbols remaining */ @@ -234,7 +569,7 @@ HUF_decodeStreamX1(BYTE* p, BIT_DStream_t* const bitDPtr, BYTE* const pEnd, cons while (p < pEnd) HUF_DECODE_SYMBOLX1_0(p, bitDPtr); - return pEnd-pStart; + return (size_t)(pEnd-pStart); } FORCE_INLINE_TEMPLATE size_t @@ -244,7 +579,7 @@ HUF_decompress1X1_usingDTable_internal_body( const HUF_DTable* DTable) { BYTE* op = (BYTE*)dst; - BYTE* const oend = op + dstSize; + BYTE* const oend = ZSTD_maybeNullPtrAdd(op, dstSize); const void* dtPtr = DTable + 1; const HUF_DEltX1* const dt = (const HUF_DEltX1*)dtPtr; BIT_DStream_t bitD; @@ -260,6 +595,10 @@ HUF_decompress1X1_usingDTable_internal_body( return dstSize; } +/* HUF_decompress4X1_usingDTable_internal_body(): + * Conditions : + * @dstSize >= 6 + */ FORCE_INLINE_TEMPLATE size_t HUF_decompress4X1_usingDTable_internal_body( void* dst, size_t dstSize, @@ -268,6 +607,7 @@ HUF_decompress4X1_usingDTable_internal_body( { /* Check */ if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + if (dstSize < 6) return ERROR(corruption_detected); /* stream 4-split doesn't work */ { const BYTE* const istart = (const BYTE*) cSrc; BYTE* const ostart = (BYTE*) dst; @@ -302,33 +642,37 @@ HUF_decompress4X1_usingDTable_internal_body( U32 endSignal = 1; if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + if (opStart4 > oend) return ERROR(corruption_detected); /* overflow */ + assert(dstSize >= 6); /* validated above */ CHECK_F( BIT_initDStream(&bitD1, istart1, length1) ); CHECK_F( BIT_initDStream(&bitD2, istart2, length2) ); CHECK_F( BIT_initDStream(&bitD3, istart3, length3) ); CHECK_F( BIT_initDStream(&bitD4, istart4, length4) ); /* up to 16 symbols per loop (4 symbols per stream) in 64-bit mode */ - for ( ; (endSignal) & (op4 < olimit) ; ) { - HUF_DECODE_SYMBOLX1_2(op1, &bitD1); - HUF_DECODE_SYMBOLX1_2(op2, &bitD2); - HUF_DECODE_SYMBOLX1_2(op3, &bitD3); - HUF_DECODE_SYMBOLX1_2(op4, &bitD4); - HUF_DECODE_SYMBOLX1_1(op1, &bitD1); - HUF_DECODE_SYMBOLX1_1(op2, &bitD2); - HUF_DECODE_SYMBOLX1_1(op3, &bitD3); - HUF_DECODE_SYMBOLX1_1(op4, &bitD4); - HUF_DECODE_SYMBOLX1_2(op1, &bitD1); - HUF_DECODE_SYMBOLX1_2(op2, &bitD2); - HUF_DECODE_SYMBOLX1_2(op3, &bitD3); - HUF_DECODE_SYMBOLX1_2(op4, &bitD4); - HUF_DECODE_SYMBOLX1_0(op1, &bitD1); - HUF_DECODE_SYMBOLX1_0(op2, &bitD2); - HUF_DECODE_SYMBOLX1_0(op3, &bitD3); - HUF_DECODE_SYMBOLX1_0(op4, &bitD4); - endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; - endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; - endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; - endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; + if ((size_t)(oend - op4) >= sizeof(size_t)) { + for ( ; (endSignal) & (op4 < olimit) ; ) { + HUF_DECODE_SYMBOLX1_2(op1, &bitD1); + HUF_DECODE_SYMBOLX1_2(op2, &bitD2); + HUF_DECODE_SYMBOLX1_2(op3, &bitD3); + HUF_DECODE_SYMBOLX1_2(op4, &bitD4); + HUF_DECODE_SYMBOLX1_1(op1, &bitD1); + HUF_DECODE_SYMBOLX1_1(op2, &bitD2); + HUF_DECODE_SYMBOLX1_1(op3, &bitD3); + HUF_DECODE_SYMBOLX1_1(op4, &bitD4); + HUF_DECODE_SYMBOLX1_2(op1, &bitD1); + HUF_DECODE_SYMBOLX1_2(op2, &bitD2); + HUF_DECODE_SYMBOLX1_2(op3, &bitD3); + HUF_DECODE_SYMBOLX1_2(op4, &bitD4); + HUF_DECODE_SYMBOLX1_0(op1, &bitD1); + HUF_DECODE_SYMBOLX1_0(op2, &bitD2); + HUF_DECODE_SYMBOLX1_0(op3, &bitD3); + HUF_DECODE_SYMBOLX1_0(op4, &bitD4); + endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; + } } /* check corruption */ @@ -354,99 +698,230 @@ HUF_decompress4X1_usingDTable_internal_body( } } +#if HUF_NEED_BMI2_FUNCTION +static BMI2_TARGET_ATTRIBUTE +size_t HUF_decompress4X1_usingDTable_internal_bmi2(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X1_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); +} +#endif -typedef size_t (*HUF_decompress_usingDTable_t)(void *dst, size_t dstSize, - const void *cSrc, - size_t cSrcSize, - const HUF_DTable *DTable); +static +size_t HUF_decompress4X1_usingDTable_internal_default(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X1_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); +} -HUF_DGEN(HUF_decompress1X1_usingDTable_internal) -HUF_DGEN(HUF_decompress4X1_usingDTable_internal) +static HUF_FAST_BMI2_ATTRS +void HUF_decompress4X1_usingDTable_internal_fast_c_loop(HUF_DecompressFastArgs* args) +{ + U64 bits[4]; + BYTE const* ip[4]; + BYTE* op[4]; + U16 const* const dtable = (U16 const*)args->dt; + BYTE* const oend = args->oend; + BYTE const* const ilowest = args->ilowest; + + /* Copy the arguments to local variables */ + ZSTD_memcpy(&bits, &args->bits, sizeof(bits)); + ZSTD_memcpy((void*)(&ip), &args->ip, sizeof(ip)); + ZSTD_memcpy(&op, &args->op, sizeof(op)); + + assert(MEM_isLittleEndian()); + assert(!MEM_32bits()); + + for (;;) { + BYTE* olimit; + int stream; + + /* Assert loop preconditions */ +#ifndef NDEBUG + for (stream = 0; stream < 4; ++stream) { + assert(op[stream] <= (stream == 3 ? oend : op[stream + 1])); + assert(ip[stream] >= ilowest); + } +#endif + /* Compute olimit */ + { + /* Each iteration produces 5 output symbols per stream */ + size_t const oiters = (size_t)(oend - op[3]) / 5; + /* Each iteration consumes up to 11 bits * 5 = 55 bits < 7 bytes + * per stream. + */ + size_t const iiters = (size_t)(ip[0] - ilowest) / 7; + /* We can safely run iters iterations before running bounds checks */ + size_t const iters = MIN(oiters, iiters); + size_t const symbols = iters * 5; + + /* We can simply check that op[3] < olimit, instead of checking all + * of our bounds, since we can't hit the other bounds until we've run + * iters iterations, which only happens when op[3] == olimit. + */ + olimit = op[3] + symbols; + + /* Exit fast decoding loop once we reach the end. */ + if (op[3] == olimit) + break; + + /* Exit the decoding loop if any input pointer has crossed the + * previous one. This indicates corruption, and a precondition + * to our loop is that ip[i] >= ip[0]. + */ + for (stream = 1; stream < 4; ++stream) { + if (ip[stream] < ip[stream - 1]) + goto _out; + } + } +#ifndef NDEBUG + for (stream = 1; stream < 4; ++stream) { + assert(ip[stream] >= ip[stream - 1]); + } +#endif +#define HUF_4X1_DECODE_SYMBOL(_stream, _symbol) \ + do { \ + int const index = (int)(bits[(_stream)] >> 53); \ + int const entry = (int)dtable[index]; \ + bits[(_stream)] <<= (entry & 0x3F); \ + op[(_stream)][(_symbol)] = (BYTE)((entry >> 8) & 0xFF); \ + } while (0) + +#define HUF_4X1_RELOAD_STREAM(_stream) \ + do { \ + int const ctz = ZSTD_countTrailingZeros64(bits[(_stream)]); \ + int const nbBits = ctz & 7; \ + int const nbBytes = ctz >> 3; \ + op[(_stream)] += 5; \ + ip[(_stream)] -= nbBytes; \ + bits[(_stream)] = MEM_read64(ip[(_stream)]) | 1; \ + bits[(_stream)] <<= nbBits; \ + } while (0) + + /* Manually unroll the loop because compilers don't consistently + * unroll the inner loops, which destroys performance. + */ + do { + /* Decode 5 symbols in each of the 4 streams */ + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 1); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 2); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 3); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X1_DECODE_SYMBOL, 4); + + /* Reload each of the 4 the bitstreams */ + HUF_4X_FOR_EACH_STREAM(HUF_4X1_RELOAD_STREAM); + } while (op[3] < olimit); + +#undef HUF_4X1_DECODE_SYMBOL +#undef HUF_4X1_RELOAD_STREAM + } -size_t HUF_decompress1X1_usingDTable( - void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize, - const HUF_DTable* DTable) -{ - DTableDesc dtd = HUF_getDTableDesc(DTable); - if (dtd.tableType != 0) return ERROR(GENERIC); - return HUF_decompress1X1_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +_out: + + /* Save the final values of each of the state variables back to args. */ + ZSTD_memcpy(&args->bits, &bits, sizeof(bits)); + ZSTD_memcpy((void*)(&args->ip), &ip, sizeof(ip)); + ZSTD_memcpy(&args->op, &op, sizeof(op)); } -size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize, - void* workSpace, size_t wkspSize) +/** + * @returns @p dstSize on success (>= 6) + * 0 if the fallback implementation should be used + * An error if an error occurred + */ +static HUF_FAST_BMI2_ATTRS +size_t +HUF_decompress4X1_usingDTable_internal_fast( + void* dst, size_t dstSize, + const void* cSrc, size_t cSrcSize, + const HUF_DTable* DTable, + HUF_DecompressFastLoopFn loopFn) { - const BYTE* ip = (const BYTE*) cSrc; + void const* dt = DTable + 1; + BYTE const* const ilowest = (BYTE const*)cSrc; + BYTE* const oend = ZSTD_maybeNullPtrAdd((BYTE*)dst, dstSize); + HUF_DecompressFastArgs args; + { size_t const ret = HUF_DecompressFastArgs_init(&args, dst, dstSize, cSrc, cSrcSize, DTable); + FORWARD_IF_ERROR(ret, "Failed to init fast loop args"); + if (ret == 0) + return 0; + } - size_t const hSize = HUF_readDTableX1_wksp(DCtx, cSrc, cSrcSize, workSpace, wkspSize); - if (HUF_isError(hSize)) return hSize; - if (hSize >= cSrcSize) return ERROR(srcSize_wrong); - ip += hSize; cSrcSize -= hSize; + assert(args.ip[0] >= args.ilowest); + loopFn(&args); + + /* Our loop guarantees that ip[] >= ilowest and that we haven't + * overwritten any op[]. + */ + assert(args.ip[0] >= ilowest); + assert(args.ip[0] >= ilowest); + assert(args.ip[1] >= ilowest); + assert(args.ip[2] >= ilowest); + assert(args.ip[3] >= ilowest); + assert(args.op[3] <= oend); + + assert(ilowest == args.ilowest); + assert(ilowest + 6 == args.iend[0]); + (void)ilowest; + + /* finish bit streams one by one. */ + { size_t const segmentSize = (dstSize+3) / 4; + BYTE* segmentEnd = (BYTE*)dst; + int i; + for (i = 0; i < 4; ++i) { + BIT_DStream_t bit; + if (segmentSize <= (size_t)(oend - segmentEnd)) + segmentEnd += segmentSize; + else + segmentEnd = oend; + FORWARD_IF_ERROR(HUF_initRemainingDStream(&bit, &args, i, segmentEnd), "corruption"); + /* Decompress and validate that we've produced exactly the expected length. */ + args.op[i] += HUF_decodeStreamX1(args.op[i], &bit, segmentEnd, (HUF_DEltX1 const*)dt, HUF_DECODER_FAST_TABLELOG); + if (args.op[i] != segmentEnd) return ERROR(corruption_detected); + } + } - return HUF_decompress1X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, DCtx, /* bmi2 */ 0); + /* decoded size */ + assert(dstSize != 0); + return dstSize; } +HUF_DGEN(HUF_decompress1X1_usingDTable_internal) -size_t HUF_decompress1X1_DCtx(HUF_DTable* DCtx, void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_decompress1X1_DCtx_wksp(DCtx, dst, dstSize, cSrc, cSrcSize, - workSpace, sizeof(workSpace)); -} - -size_t HUF_decompress1X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) +static size_t HUF_decompress4X1_usingDTable_internal(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable, int flags) { - HUF_CREATE_STATIC_DTABLEX1(DTable, HUF_TABLELOG_MAX); - return HUF_decompress1X1_DCtx (DTable, dst, dstSize, cSrc, cSrcSize); -} + HUF_DecompressUsingDTableFn fallbackFn = HUF_decompress4X1_usingDTable_internal_default; + HUF_DecompressFastLoopFn loopFn = HUF_decompress4X1_usingDTable_internal_fast_c_loop; -size_t HUF_decompress4X1_usingDTable( - void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize, - const HUF_DTable* DTable) -{ - DTableDesc dtd = HUF_getDTableDesc(DTable); - if (dtd.tableType != 0) return ERROR(GENERIC); - return HUF_decompress4X1_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +#if DYNAMIC_BMI2 + if (flags & HUF_flags_bmi2) { + fallbackFn = HUF_decompress4X1_usingDTable_internal_bmi2; + } else { + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); + } +#endif + if (HUF_ENABLE_FAST_DECODE && !(flags & HUF_flags_disableFast)) { + size_t const ret = HUF_decompress4X1_usingDTable_internal_fast(dst, dstSize, cSrc, cSrcSize, DTable, loopFn); + if (ret != 0) + return ret; + } + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); } -static size_t HUF_decompress4X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, +static size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, - void* workSpace, size_t wkspSize, int bmi2) + void* workSpace, size_t wkspSize, int flags) { const BYTE* ip = (const BYTE*) cSrc; - size_t const hSize = HUF_readDTableX1_wksp (dctx, cSrc, cSrcSize, - workSpace, wkspSize); + size_t const hSize = HUF_readDTableX1_wksp(dctx, cSrc, cSrcSize, workSpace, wkspSize, flags); if (HUF_isError(hSize)) return hSize; if (hSize >= cSrcSize) return ERROR(srcSize_wrong); ip += hSize; cSrcSize -= hSize; - return HUF_decompress4X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); -} - -size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize, - void* workSpace, size_t wkspSize) -{ - return HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, 0); -} - - -size_t HUF_decompress4X1_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, - workSpace, sizeof(workSpace)); -} -size_t HUF_decompress4X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) -{ - HUF_CREATE_STATIC_DTABLEX1(DTable, HUF_TABLELOG_MAX); - return HUF_decompress4X1_DCtx(DTable, dst, dstSize, cSrc, cSrcSize); + return HUF_decompress4X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, flags); } #endif /* HUF_FORCE_DECOMPRESS_X2 */ @@ -459,209 +934,322 @@ size_t HUF_decompress4X1 (void* dst, size_t dstSize, const void* cSrc, size_t cS /* *************************/ typedef struct { U16 sequence; BYTE nbBits; BYTE length; } HUF_DEltX2; /* double-symbols decoding */ -typedef struct { BYTE symbol; BYTE weight; } sortedSymbol_t; +typedef struct { BYTE symbol; } sortedSymbol_t; typedef U32 rankValCol_t[HUF_TABLELOG_MAX + 1]; typedef rankValCol_t rankVal_t[HUF_TABLELOG_MAX]; +/** + * Constructs a HUF_DEltX2 in a U32. + */ +static U32 HUF_buildDEltX2U32(U32 symbol, U32 nbBits, U32 baseSeq, int level) +{ + U32 seq; + DEBUG_STATIC_ASSERT(offsetof(HUF_DEltX2, sequence) == 0); + DEBUG_STATIC_ASSERT(offsetof(HUF_DEltX2, nbBits) == 2); + DEBUG_STATIC_ASSERT(offsetof(HUF_DEltX2, length) == 3); + DEBUG_STATIC_ASSERT(sizeof(HUF_DEltX2) == sizeof(U32)); + if (MEM_isLittleEndian()) { + seq = level == 1 ? symbol : (baseSeq + (symbol << 8)); + return seq + (nbBits << 16) + ((U32)level << 24); + } else { + seq = level == 1 ? (symbol << 8) : ((baseSeq << 8) + symbol); + return (seq << 16) + (nbBits << 8) + (U32)level; + } +} -/* HUF_fillDTableX2Level2() : - * `rankValOrigin` must be a table of at least (HUF_TABLELOG_MAX + 1) U32 */ -static void HUF_fillDTableX2Level2(HUF_DEltX2* DTable, U32 sizeLog, const U32 consumed, - const U32* rankValOrigin, const int minWeight, - const sortedSymbol_t* sortedSymbols, const U32 sortedListSize, - U32 nbBitsBaseline, U16 baseSeq) +/** + * Constructs a HUF_DEltX2. + */ +static HUF_DEltX2 HUF_buildDEltX2(U32 symbol, U32 nbBits, U32 baseSeq, int level) { HUF_DEltX2 DElt; - U32 rankVal[HUF_TABLELOG_MAX + 1]; + U32 const val = HUF_buildDEltX2U32(symbol, nbBits, baseSeq, level); + DEBUG_STATIC_ASSERT(sizeof(DElt) == sizeof(val)); + ZSTD_memcpy(&DElt, &val, sizeof(val)); + return DElt; +} - /* get pre-calculated rankVal */ - memcpy(rankVal, rankValOrigin, sizeof(rankVal)); +/** + * Constructs 2 HUF_DEltX2s and packs them into a U64. + */ +static U64 HUF_buildDEltX2U64(U32 symbol, U32 nbBits, U16 baseSeq, int level) +{ + U32 DElt = HUF_buildDEltX2U32(symbol, nbBits, baseSeq, level); + return (U64)DElt + ((U64)DElt << 32); +} - /* fill skipped values */ +/** + * Fills the DTable rank with all the symbols from [begin, end) that are each + * nbBits long. + * + * @param DTableRank The start of the rank in the DTable. + * @param begin The first symbol to fill (inclusive). + * @param end The last symbol to fill (exclusive). + * @param nbBits Each symbol is nbBits long. + * @param tableLog The table log. + * @param baseSeq If level == 1 { 0 } else { the first level symbol } + * @param level The level in the table. Must be 1 or 2. + */ +static void HUF_fillDTableX2ForWeight( + HUF_DEltX2* DTableRank, + sortedSymbol_t const* begin, sortedSymbol_t const* end, + U32 nbBits, U32 tableLog, + U16 baseSeq, int const level) +{ + U32 const length = 1U << ((tableLog - nbBits) & 0x1F /* quiet static-analyzer */); + const sortedSymbol_t* ptr; + assert(level >= 1 && level <= 2); + switch (length) { + case 1: + for (ptr = begin; ptr != end; ++ptr) { + HUF_DEltX2 const DElt = HUF_buildDEltX2(ptr->symbol, nbBits, baseSeq, level); + *DTableRank++ = DElt; + } + break; + case 2: + for (ptr = begin; ptr != end; ++ptr) { + HUF_DEltX2 const DElt = HUF_buildDEltX2(ptr->symbol, nbBits, baseSeq, level); + DTableRank[0] = DElt; + DTableRank[1] = DElt; + DTableRank += 2; + } + break; + case 4: + for (ptr = begin; ptr != end; ++ptr) { + U64 const DEltX2 = HUF_buildDEltX2U64(ptr->symbol, nbBits, baseSeq, level); + ZSTD_memcpy(DTableRank + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 2, &DEltX2, sizeof(DEltX2)); + DTableRank += 4; + } + break; + case 8: + for (ptr = begin; ptr != end; ++ptr) { + U64 const DEltX2 = HUF_buildDEltX2U64(ptr->symbol, nbBits, baseSeq, level); + ZSTD_memcpy(DTableRank + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 2, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 4, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 6, &DEltX2, sizeof(DEltX2)); + DTableRank += 8; + } + break; + default: + for (ptr = begin; ptr != end; ++ptr) { + U64 const DEltX2 = HUF_buildDEltX2U64(ptr->symbol, nbBits, baseSeq, level); + HUF_DEltX2* const DTableRankEnd = DTableRank + length; + for (; DTableRank != DTableRankEnd; DTableRank += 8) { + ZSTD_memcpy(DTableRank + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 2, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 4, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTableRank + 6, &DEltX2, sizeof(DEltX2)); + } + } + break; + } +} + +/* HUF_fillDTableX2Level2() : + * `rankValOrigin` must be a table of at least (HUF_TABLELOG_MAX + 1) U32 */ +static void HUF_fillDTableX2Level2(HUF_DEltX2* DTable, U32 targetLog, const U32 consumedBits, + const U32* rankVal, const int minWeight, const int maxWeight1, + const sortedSymbol_t* sortedSymbols, U32 const* rankStart, + U32 nbBitsBaseline, U16 baseSeq) +{ + /* Fill skipped values (all positions up to rankVal[minWeight]). + * These are positions only get a single symbol because the combined weight + * is too large. + */ if (minWeight>1) { - U32 i, skipSize = rankVal[minWeight]; - MEM_writeLE16(&(DElt.sequence), baseSeq); - DElt.nbBits = (BYTE)(consumed); - DElt.length = 1; - for (i = 0; i < skipSize; i++) - DTable[i] = DElt; + U32 const length = 1U << ((targetLog - consumedBits) & 0x1F /* quiet static-analyzer */); + U64 const DEltX2 = HUF_buildDEltX2U64(baseSeq, consumedBits, /* baseSeq */ 0, /* level */ 1); + int const skipSize = rankVal[minWeight]; + assert(length > 1); + assert((U32)skipSize < length); + switch (length) { + case 2: + assert(skipSize == 1); + ZSTD_memcpy(DTable, &DEltX2, sizeof(DEltX2)); + break; + case 4: + assert(skipSize <= 4); + ZSTD_memcpy(DTable + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + 2, &DEltX2, sizeof(DEltX2)); + break; + default: + { + int i; + for (i = 0; i < skipSize; i += 8) { + ZSTD_memcpy(DTable + i + 0, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + i + 2, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + i + 4, &DEltX2, sizeof(DEltX2)); + ZSTD_memcpy(DTable + i + 6, &DEltX2, sizeof(DEltX2)); + } + } + } } - /* fill DTable */ - { U32 s; for (s=0; s= 1 */ - - rankVal[weight] += length; - } } + /* Fill each of the second level symbols by weight. */ + { + int w; + for (w = minWeight; w < maxWeight1; ++w) { + int const begin = rankStart[w]; + int const end = rankStart[w+1]; + U32 const nbBits = nbBitsBaseline - w; + U32 const totalBits = nbBits + consumedBits; + HUF_fillDTableX2ForWeight( + DTable + rankVal[w], + sortedSymbols + begin, sortedSymbols + end, + totalBits, targetLog, + baseSeq, /* level */ 2); + } + } } - static void HUF_fillDTableX2(HUF_DEltX2* DTable, const U32 targetLog, - const sortedSymbol_t* sortedList, const U32 sortedListSize, - const U32* rankStart, rankVal_t rankValOrigin, const U32 maxWeight, + const sortedSymbol_t* sortedList, + const U32* rankStart, rankValCol_t* rankValOrigin, const U32 maxWeight, const U32 nbBitsBaseline) { - U32 rankVal[HUF_TABLELOG_MAX + 1]; + U32* const rankVal = rankValOrigin[0]; const int scaleLog = nbBitsBaseline - targetLog; /* note : targetLog >= srcLog, hence scaleLog <= 1 */ const U32 minBits = nbBitsBaseline - maxWeight; - U32 s; - - memcpy(rankVal, rankValOrigin, sizeof(rankVal)); - - /* fill DTable */ - for (s=0; s= minBits) { /* enough room for a second symbol */ - U32 sortedRank; + int w; + int const wEnd = (int)maxWeight + 1; + + /* Fill DTable in order of weight. */ + for (w = 1; w < wEnd; ++w) { + int const begin = (int)rankStart[w]; + int const end = (int)rankStart[w+1]; + U32 const nbBits = nbBitsBaseline - w; + + if (targetLog-nbBits >= minBits) { + /* Enough room for a second symbol. */ + int start = rankVal[w]; + U32 const length = 1U << ((targetLog - nbBits) & 0x1F /* quiet static-analyzer */); int minWeight = nbBits + scaleLog; + int s; if (minWeight < 1) minWeight = 1; - sortedRank = rankStart[minWeight]; - HUF_fillDTableX2Level2(DTable+start, targetLog-nbBits, nbBits, - rankValOrigin[nbBits], minWeight, - sortedList+sortedRank, sortedListSize-sortedRank, - nbBitsBaseline, symbol); + /* Fill the DTable for every symbol of weight w. + * These symbols get at least 1 second symbol. + */ + for (s = begin; s != end; ++s) { + HUF_fillDTableX2Level2( + DTable + start, targetLog, nbBits, + rankValOrigin[nbBits], minWeight, wEnd, + sortedList, rankStart, + nbBitsBaseline, sortedList[s].symbol); + start += length; + } } else { - HUF_DEltX2 DElt; - MEM_writeLE16(&(DElt.sequence), symbol); - DElt.nbBits = (BYTE)(nbBits); - DElt.length = 1; - { U32 const end = start + length; - U32 u; - for (u = start; u < end; u++) DTable[u] = DElt; - } } - rankVal[weight] += length; + /* Only a single symbol. */ + HUF_fillDTableX2ForWeight( + DTable + rankVal[w], + sortedList + begin, sortedList + end, + nbBits, targetLog, + /* baseSeq */ 0, /* level */ 1); + } } } +typedef struct { + rankValCol_t rankVal[HUF_TABLELOG_MAX]; + U32 rankStats[HUF_TABLELOG_MAX + 1]; + U32 rankStart0[HUF_TABLELOG_MAX + 3]; + sortedSymbol_t sortedSymbol[HUF_SYMBOLVALUE_MAX + 1]; + BYTE weightList[HUF_SYMBOLVALUE_MAX + 1]; + U32 calleeWksp[HUF_READ_STATS_WORKSPACE_SIZE_U32]; +} HUF_ReadDTableX2_Workspace; + size_t HUF_readDTableX2_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, - void* workSpace, size_t wkspSize) + void* workSpace, size_t wkspSize, int flags) { - U32 tableLog, maxW, sizeOfSort, nbSymbols; + U32 tableLog, maxW, nbSymbols; DTableDesc dtd = HUF_getDTableDesc(DTable); - U32 const maxTableLog = dtd.maxTableLog; + U32 maxTableLog = dtd.maxTableLog; size_t iSize; void* dtPtr = DTable+1; /* force compiler to avoid strict-aliasing */ HUF_DEltX2* const dt = (HUF_DEltX2*)dtPtr; U32 *rankStart; - rankValCol_t* rankVal; - U32* rankStats; - U32* rankStart0; - sortedSymbol_t* sortedSymbol; - BYTE* weightList; - size_t spaceUsed32 = 0; - - rankVal = (rankValCol_t *)((U32 *)workSpace + spaceUsed32); - spaceUsed32 += (sizeof(rankValCol_t) * HUF_TABLELOG_MAX) >> 2; - rankStats = (U32 *)workSpace + spaceUsed32; - spaceUsed32 += HUF_TABLELOG_MAX + 1; - rankStart0 = (U32 *)workSpace + spaceUsed32; - spaceUsed32 += HUF_TABLELOG_MAX + 2; - sortedSymbol = (sortedSymbol_t *)workSpace + (spaceUsed32 * sizeof(U32)) / sizeof(sortedSymbol_t); - spaceUsed32 += HUF_ALIGN(sizeof(sortedSymbol_t) * (HUF_SYMBOLVALUE_MAX + 1), sizeof(U32)) >> 2; - weightList = (BYTE *)((U32 *)workSpace + spaceUsed32); - spaceUsed32 += HUF_ALIGN(HUF_SYMBOLVALUE_MAX + 1, sizeof(U32)) >> 2; - - if ((spaceUsed32 << 2) > wkspSize) return ERROR(tableLog_tooLarge); - - rankStart = rankStart0 + 1; - memset(rankStats, 0, sizeof(U32) * (2 * HUF_TABLELOG_MAX + 2 + 1)); + HUF_ReadDTableX2_Workspace* const wksp = (HUF_ReadDTableX2_Workspace*)workSpace; + + if (sizeof(*wksp) > wkspSize) return ERROR(GENERIC); + + rankStart = wksp->rankStart0 + 1; + ZSTD_memset(wksp->rankStats, 0, sizeof(wksp->rankStats)); + ZSTD_memset(wksp->rankStart0, 0, sizeof(wksp->rankStart0)); DEBUG_STATIC_ASSERT(sizeof(HUF_DEltX2) == sizeof(HUF_DTable)); /* if compiler fails here, assertion is wrong */ if (maxTableLog > HUF_TABLELOG_MAX) return ERROR(tableLog_tooLarge); - /* memset(weightList, 0, sizeof(weightList)); */ /* is not necessary, even though some analyzer complain ... */ + /* ZSTD_memset(weightList, 0, sizeof(weightList)); */ /* is not necessary, even though some analyzer complain ... */ - iSize = HUF_readStats(weightList, HUF_SYMBOLVALUE_MAX + 1, rankStats, &nbSymbols, &tableLog, src, srcSize); + iSize = HUF_readStats_wksp(wksp->weightList, HUF_SYMBOLVALUE_MAX + 1, wksp->rankStats, &nbSymbols, &tableLog, src, srcSize, wksp->calleeWksp, sizeof(wksp->calleeWksp), flags); if (HUF_isError(iSize)) return iSize; /* check result */ if (tableLog > maxTableLog) return ERROR(tableLog_tooLarge); /* DTable can't fit code depth */ + if (tableLog <= HUF_DECODER_FAST_TABLELOG && maxTableLog > HUF_DECODER_FAST_TABLELOG) maxTableLog = HUF_DECODER_FAST_TABLELOG; /* find maxWeight */ - for (maxW = tableLog; rankStats[maxW]==0; maxW--) {} /* necessarily finds a solution before 0 */ + for (maxW = tableLog; wksp->rankStats[maxW]==0; maxW--) {} /* necessarily finds a solution before 0 */ /* Get start index of each weight */ { U32 w, nextRankStart = 0; for (w=1; wrankStats[w]; + rankStart[w] = curr; } rankStart[0] = nextRankStart; /* put all 0w symbols at the end of sorted list*/ - sizeOfSort = nextRankStart; + rankStart[maxW+1] = nextRankStart; } /* sort symbols by weight */ { U32 s; for (s=0; sweightList[s]; U32 const r = rankStart[w]++; - sortedSymbol[r].symbol = (BYTE)s; - sortedSymbol[r].weight = (BYTE)w; + wksp->sortedSymbol[r].symbol = (BYTE)s; } rankStart[0] = 0; /* forget 0w symbols; this is beginning of weight(1) */ } /* Build rankVal */ - { U32* const rankVal0 = rankVal[0]; + { U32* const rankVal0 = wksp->rankVal[0]; { int const rescale = (maxTableLog-tableLog) - 1; /* tableLog <= maxTableLog */ U32 nextRankVal = 0; U32 w; for (w=1; wrankStats[w] << (w+rescale); + rankVal0[w] = curr; } } { U32 const minBits = tableLog+1 - maxW; U32 consumed; for (consumed = minBits; consumed < maxTableLog - minBits + 1; consumed++) { - U32* const rankValPtr = rankVal[consumed]; + U32* const rankValPtr = wksp->rankVal[consumed]; U32 w; for (w = 1; w < maxW+1; w++) { rankValPtr[w] = rankVal0[w] >> consumed; } } } } HUF_fillDTableX2(dt, maxTableLog, - sortedSymbol, sizeOfSort, - rankStart0, rankVal, maxW, + wksp->sortedSymbol, + wksp->rankStart0, wksp->rankVal, maxW, tableLog+1); dtd.tableLog = (BYTE)maxTableLog; dtd.tableType = 1; - memcpy(DTable, &dtd, sizeof(dtd)); + ZSTD_memcpy(DTable, &dtd, sizeof(dtd)); return iSize; } -size_t HUF_readDTableX2(HUF_DTable* DTable, const void* src, size_t srcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_readDTableX2_wksp(DTable, src, srcSize, - workSpace, sizeof(workSpace)); -} - FORCE_INLINE_TEMPLATE U32 HUF_decodeSymbolX2(void* op, BIT_DStream_t* DStream, const HUF_DEltX2* dt, const U32 dtLog) { size_t const val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ - memcpy(op, dt+val, 2); + ZSTD_memcpy(op, &dt[val].sequence, 2); BIT_skipBits(DStream, dt[val].nbBits); return dt[val].length; } @@ -670,28 +1258,34 @@ FORCE_INLINE_TEMPLATE U32 HUF_decodeLastSymbolX2(void* op, BIT_DStream_t* DStream, const HUF_DEltX2* dt, const U32 dtLog) { size_t const val = BIT_lookBitsFast(DStream, dtLog); /* note : dtLog >= 1 */ - memcpy(op, dt+val, 1); - if (dt[val].length==1) BIT_skipBits(DStream, dt[val].nbBits); - else { + ZSTD_memcpy(op, &dt[val].sequence, 1); + if (dt[val].length==1) { + BIT_skipBits(DStream, dt[val].nbBits); + } else { if (DStream->bitsConsumed < (sizeof(DStream->bitContainer)*8)) { BIT_skipBits(DStream, dt[val].nbBits); if (DStream->bitsConsumed > (sizeof(DStream->bitContainer)*8)) /* ugly hack; works only because it's the last symbol. Note : can't easily extract nbBits from just this symbol */ DStream->bitsConsumed = (sizeof(DStream->bitContainer)*8); - } } + } + } return 1; } #define HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) \ - ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog) + do { ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog); } while (0) -#define HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr) \ - if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ - ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog) +#define HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits() || (HUF_TABLELOG_MAX<=12)) \ + ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog); \ + } while (0) -#define HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr) \ - if (MEM_64bits()) \ - ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog) +#define HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr) \ + do { \ + if (MEM_64bits()) \ + ptr += HUF_decodeSymbolX2(ptr, DStreamPtr, dt, dtLog); \ + } while (0) HINT_INLINE size_t HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd, @@ -700,19 +1294,37 @@ HUF_decodeStreamX2(BYTE* p, BIT_DStream_t* bitDPtr, BYTE* const pEnd, BYTE* const pStart = p; /* up to 8 symbols at a time */ - while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-(sizeof(bitDPtr->bitContainer)-1))) { - HUF_DECODE_SYMBOLX2_2(p, bitDPtr); - HUF_DECODE_SYMBOLX2_1(p, bitDPtr); - HUF_DECODE_SYMBOLX2_2(p, bitDPtr); - HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + if ((size_t)(pEnd - p) >= sizeof(bitDPtr->bitContainer)) { + if (dtLog <= 11 && MEM_64bits()) { + /* up to 10 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-9)) { + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + } + } else { + /* up to 8 symbols at a time */ + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p < pEnd-(sizeof(bitDPtr->bitContainer)-1))) { + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_1(p, bitDPtr); + HUF_DECODE_SYMBOLX2_2(p, bitDPtr); + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + } + } + } else { + BIT_reloadDStream(bitDPtr); } /* closer to end : up to 2 symbols at a time */ - while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p <= pEnd-2)) - HUF_DECODE_SYMBOLX2_0(p, bitDPtr); + if ((size_t)(pEnd - p) >= 2) { + while ((BIT_reloadDStream(bitDPtr) == BIT_DStream_unfinished) & (p <= pEnd-2)) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); - while (p <= pEnd-2) - HUF_DECODE_SYMBOLX2_0(p, bitDPtr); /* no need to reload : reached the end of DStream */ + while (p <= pEnd-2) + HUF_DECODE_SYMBOLX2_0(p, bitDPtr); /* no need to reload : reached the end of DStream */ + } if (p < pEnd) p += HUF_decodeLastSymbolX2(p, bitDPtr, dt, dtLog); @@ -733,7 +1345,7 @@ HUF_decompress1X2_usingDTable_internal_body( /* decode */ { BYTE* const ostart = (BYTE*) dst; - BYTE* const oend = ostart + dstSize; + BYTE* const oend = ZSTD_maybeNullPtrAdd(ostart, dstSize); const void* const dtPtr = DTable+1; /* force compiler to not use strict-aliasing */ const HUF_DEltX2* const dt = (const HUF_DEltX2*)dtPtr; DTableDesc const dtd = HUF_getDTableDesc(DTable); @@ -747,6 +1359,10 @@ HUF_decompress1X2_usingDTable_internal_body( return dstSize; } +/* HUF_decompress4X2_usingDTable_internal_body(): + * Conditions: + * @dstSize >= 6 + */ FORCE_INLINE_TEMPLATE size_t HUF_decompress4X2_usingDTable_internal_body( void* dst, size_t dstSize, @@ -754,6 +1370,7 @@ HUF_decompress4X2_usingDTable_internal_body( const HUF_DTable* DTable) { if (cSrcSize < 10) return ERROR(corruption_detected); /* strict minimum : jump table + 1 byte per stream */ + if (dstSize < 6) return ERROR(corruption_detected); /* stream 4-split doesn't work */ { const BYTE* const istart = (const BYTE*) cSrc; BYTE* const ostart = (BYTE*) dst; @@ -787,58 +1404,62 @@ HUF_decompress4X2_usingDTable_internal_body( DTableDesc const dtd = HUF_getDTableDesc(DTable); U32 const dtLog = dtd.tableLog; - if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + if (length4 > cSrcSize) return ERROR(corruption_detected); /* overflow */ + if (opStart4 > oend) return ERROR(corruption_detected); /* overflow */ + assert(dstSize >= 6 /* validated above */); CHECK_F( BIT_initDStream(&bitD1, istart1, length1) ); CHECK_F( BIT_initDStream(&bitD2, istart2, length2) ); CHECK_F( BIT_initDStream(&bitD3, istart3, length3) ); CHECK_F( BIT_initDStream(&bitD4, istart4, length4) ); /* 16-32 symbols per loop (4-8 symbols per stream) */ - for ( ; (endSignal) & (op4 < olimit); ) { + if ((size_t)(oend - op4) >= sizeof(size_t)) { + for ( ; (endSignal) & (op4 < olimit); ) { #if defined(__clang__) && (defined(__x86_64__) || defined(__i386__)) - HUF_DECODE_SYMBOLX2_2(op1, &bitD1); - HUF_DECODE_SYMBOLX2_1(op1, &bitD1); - HUF_DECODE_SYMBOLX2_2(op1, &bitD1); - HUF_DECODE_SYMBOLX2_0(op1, &bitD1); - HUF_DECODE_SYMBOLX2_2(op2, &bitD2); - HUF_DECODE_SYMBOLX2_1(op2, &bitD2); - HUF_DECODE_SYMBOLX2_2(op2, &bitD2); - HUF_DECODE_SYMBOLX2_0(op2, &bitD2); - endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; - endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; - HUF_DECODE_SYMBOLX2_2(op3, &bitD3); - HUF_DECODE_SYMBOLX2_1(op3, &bitD3); - HUF_DECODE_SYMBOLX2_2(op3, &bitD3); - HUF_DECODE_SYMBOLX2_0(op3, &bitD3); - HUF_DECODE_SYMBOLX2_2(op4, &bitD4); - HUF_DECODE_SYMBOLX2_1(op4, &bitD4); - HUF_DECODE_SYMBOLX2_2(op4, &bitD4); - HUF_DECODE_SYMBOLX2_0(op4, &bitD4); - endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; - endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + endSignal &= BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished; + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + endSignal &= BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished; + endSignal &= BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished; #else - HUF_DECODE_SYMBOLX2_2(op1, &bitD1); - HUF_DECODE_SYMBOLX2_2(op2, &bitD2); - HUF_DECODE_SYMBOLX2_2(op3, &bitD3); - HUF_DECODE_SYMBOLX2_2(op4, &bitD4); - HUF_DECODE_SYMBOLX2_1(op1, &bitD1); - HUF_DECODE_SYMBOLX2_1(op2, &bitD2); - HUF_DECODE_SYMBOLX2_1(op3, &bitD3); - HUF_DECODE_SYMBOLX2_1(op4, &bitD4); - HUF_DECODE_SYMBOLX2_2(op1, &bitD1); - HUF_DECODE_SYMBOLX2_2(op2, &bitD2); - HUF_DECODE_SYMBOLX2_2(op3, &bitD3); - HUF_DECODE_SYMBOLX2_2(op4, &bitD4); - HUF_DECODE_SYMBOLX2_0(op1, &bitD1); - HUF_DECODE_SYMBOLX2_0(op2, &bitD2); - HUF_DECODE_SYMBOLX2_0(op3, &bitD3); - HUF_DECODE_SYMBOLX2_0(op4, &bitD4); - endSignal = (U32)LIKELY( - (U32)(BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished) - & (U32)(BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished) - & (U32)(BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished) - & (U32)(BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished)); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_1(op1, &bitD1); + HUF_DECODE_SYMBOLX2_1(op2, &bitD2); + HUF_DECODE_SYMBOLX2_1(op3, &bitD3); + HUF_DECODE_SYMBOLX2_1(op4, &bitD4); + HUF_DECODE_SYMBOLX2_2(op1, &bitD1); + HUF_DECODE_SYMBOLX2_2(op2, &bitD2); + HUF_DECODE_SYMBOLX2_2(op3, &bitD3); + HUF_DECODE_SYMBOLX2_2(op4, &bitD4); + HUF_DECODE_SYMBOLX2_0(op1, &bitD1); + HUF_DECODE_SYMBOLX2_0(op2, &bitD2); + HUF_DECODE_SYMBOLX2_0(op3, &bitD3); + HUF_DECODE_SYMBOLX2_0(op4, &bitD4); + endSignal = (U32)LIKELY((U32) + (BIT_reloadDStreamFast(&bitD1) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD2) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD3) == BIT_DStream_unfinished) + & (BIT_reloadDStreamFast(&bitD4) == BIT_DStream_unfinished)); #endif + } } /* check corruption */ @@ -862,94 +1483,268 @@ HUF_decompress4X2_usingDTable_internal_body( } } -HUF_DGEN(HUF_decompress1X2_usingDTable_internal) -HUF_DGEN(HUF_decompress4X2_usingDTable_internal) +#if HUF_NEED_BMI2_FUNCTION +static BMI2_TARGET_ATTRIBUTE +size_t HUF_decompress4X2_usingDTable_internal_bmi2(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X2_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); +} +#endif -size_t HUF_decompress1X2_usingDTable( - void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize, - const HUF_DTable* DTable) -{ - DTableDesc dtd = HUF_getDTableDesc(DTable); - if (dtd.tableType != 1) return ERROR(GENERIC); - return HUF_decompress1X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); +static +size_t HUF_decompress4X2_usingDTable_internal_default(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable) { + return HUF_decompress4X2_usingDTable_internal_body(dst, dstSize, cSrc, cSrcSize, DTable); } -size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize, - void* workSpace, size_t wkspSize) +static HUF_FAST_BMI2_ATTRS +void HUF_decompress4X2_usingDTable_internal_fast_c_loop(HUF_DecompressFastArgs* args) { - const BYTE* ip = (const BYTE*) cSrc; + U64 bits[4]; + BYTE const* ip[4]; + BYTE* op[4]; + BYTE* oend[4]; + HUF_DEltX2 const* const dtable = (HUF_DEltX2 const*)args->dt; + BYTE const* const ilowest = args->ilowest; + + /* Copy the arguments to local registers. */ + ZSTD_memcpy(&bits, &args->bits, sizeof(bits)); + ZSTD_memcpy((void*)(&ip), &args->ip, sizeof(ip)); + ZSTD_memcpy(&op, &args->op, sizeof(op)); + + oend[0] = op[1]; + oend[1] = op[2]; + oend[2] = op[3]; + oend[3] = args->oend; + + assert(MEM_isLittleEndian()); + assert(!MEM_32bits()); + + for (;;) { + BYTE* olimit; + int stream; + + /* Assert loop preconditions */ +#ifndef NDEBUG + for (stream = 0; stream < 4; ++stream) { + assert(op[stream] <= oend[stream]); + assert(ip[stream] >= ilowest); + } +#endif + /* Compute olimit */ + { + /* Each loop does 5 table lookups for each of the 4 streams. + * Each table lookup consumes up to 11 bits of input, and produces + * up to 2 bytes of output. + */ + /* We can consume up to 7 bytes of input per iteration per stream. + * We also know that each input pointer is >= ip[0]. So we can run + * iters loops before running out of input. + */ + size_t iters = (size_t)(ip[0] - ilowest) / 7; + /* Each iteration can produce up to 10 bytes of output per stream. + * Each output stream my advance at different rates. So take the + * minimum number of safe iterations among all the output streams. + */ + for (stream = 0; stream < 4; ++stream) { + size_t const oiters = (size_t)(oend[stream] - op[stream]) / 10; + iters = MIN(iters, oiters); + } + + /* Each iteration produces at least 5 output symbols. So until + * op[3] crosses olimit, we know we haven't executed iters + * iterations yet. This saves us maintaining an iters counter, + * at the expense of computing the remaining # of iterations + * more frequently. + */ + olimit = op[3] + (iters * 5); + + /* Exit the fast decoding loop once we reach the end. */ + if (op[3] == olimit) + break; + + /* Exit the decoding loop if any input pointer has crossed the + * previous one. This indicates corruption, and a precondition + * to our loop is that ip[i] >= ip[0]. + */ + for (stream = 1; stream < 4; ++stream) { + if (ip[stream] < ip[stream - 1]) + goto _out; + } + } - size_t const hSize = HUF_readDTableX2_wksp(DCtx, cSrc, cSrcSize, - workSpace, wkspSize); - if (HUF_isError(hSize)) return hSize; - if (hSize >= cSrcSize) return ERROR(srcSize_wrong); - ip += hSize; cSrcSize -= hSize; +#ifndef NDEBUG + for (stream = 1; stream < 4; ++stream) { + assert(ip[stream] >= ip[stream - 1]); + } +#endif - return HUF_decompress1X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, DCtx, /* bmi2 */ 0); -} +#define HUF_4X2_DECODE_SYMBOL(_stream, _decode3) \ + do { \ + if ((_decode3) || (_stream) != 3) { \ + int const index = (int)(bits[(_stream)] >> 53); \ + HUF_DEltX2 const entry = dtable[index]; \ + MEM_write16(op[(_stream)], entry.sequence); \ + bits[(_stream)] <<= (entry.nbBits) & 0x3F; \ + op[(_stream)] += (entry.length); \ + } \ + } while (0) + +#define HUF_4X2_RELOAD_STREAM(_stream) \ + do { \ + HUF_4X2_DECODE_SYMBOL(3, 1); \ + { \ + int const ctz = ZSTD_countTrailingZeros64(bits[(_stream)]); \ + int const nbBits = ctz & 7; \ + int const nbBytes = ctz >> 3; \ + ip[(_stream)] -= nbBytes; \ + bits[(_stream)] = MEM_read64(ip[(_stream)]) | 1; \ + bits[(_stream)] <<= nbBits; \ + } \ + } while (0) + + /* Manually unroll the loop because compilers don't consistently + * unroll the inner loops, which destroys performance. + */ + do { + /* Decode 5 symbols from each of the first 3 streams. + * The final stream will be decoded during the reload phase + * to reduce register pressure. + */ + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + HUF_4X_FOR_EACH_STREAM_WITH_VAR(HUF_4X2_DECODE_SYMBOL, 0); + + /* Decode one symbol from the final stream */ + HUF_4X2_DECODE_SYMBOL(3, 1); + + /* Decode 4 symbols from the final stream & reload bitstreams. + * The final stream is reloaded last, meaning that all 5 symbols + * are decoded from the final stream before it is reloaded. + */ + HUF_4X_FOR_EACH_STREAM(HUF_4X2_RELOAD_STREAM); + } while (op[3] < olimit); + } +#undef HUF_4X2_DECODE_SYMBOL +#undef HUF_4X2_RELOAD_STREAM -size_t HUF_decompress1X2_DCtx(HUF_DTable* DCtx, void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_decompress1X2_DCtx_wksp(DCtx, dst, dstSize, cSrc, cSrcSize, - workSpace, sizeof(workSpace)); -} +_out: -size_t HUF_decompress1X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) -{ - HUF_CREATE_STATIC_DTABLEX2(DTable, HUF_TABLELOG_MAX); - return HUF_decompress1X2_DCtx(DTable, dst, dstSize, cSrc, cSrcSize); + /* Save the final values of each of the state variables back to args. */ + ZSTD_memcpy(&args->bits, &bits, sizeof(bits)); + ZSTD_memcpy((void*)(&args->ip), &ip, sizeof(ip)); + ZSTD_memcpy(&args->op, &op, sizeof(op)); } -size_t HUF_decompress4X2_usingDTable( + +static HUF_FAST_BMI2_ATTRS size_t +HUF_decompress4X2_usingDTable_internal_fast( void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, - const HUF_DTable* DTable) + const HUF_DTable* DTable, + HUF_DecompressFastLoopFn loopFn) { + void const* dt = DTable + 1; + const BYTE* const ilowest = (const BYTE*)cSrc; + BYTE* const oend = ZSTD_maybeNullPtrAdd((BYTE*)dst, dstSize); + HUF_DecompressFastArgs args; + { + size_t const ret = HUF_DecompressFastArgs_init(&args, dst, dstSize, cSrc, cSrcSize, DTable); + FORWARD_IF_ERROR(ret, "Failed to init asm args"); + if (ret == 0) + return 0; + } + + assert(args.ip[0] >= args.ilowest); + loopFn(&args); + + /* note : op4 already verified within main loop */ + assert(args.ip[0] >= ilowest); + assert(args.ip[1] >= ilowest); + assert(args.ip[2] >= ilowest); + assert(args.ip[3] >= ilowest); + assert(args.op[3] <= oend); + + assert(ilowest == args.ilowest); + assert(ilowest + 6 == args.iend[0]); + (void)ilowest; + + /* finish bitStreams one by one */ + { + size_t const segmentSize = (dstSize+3) / 4; + BYTE* segmentEnd = (BYTE*)dst; + int i; + for (i = 0; i < 4; ++i) { + BIT_DStream_t bit; + if (segmentSize <= (size_t)(oend - segmentEnd)) + segmentEnd += segmentSize; + else + segmentEnd = oend; + FORWARD_IF_ERROR(HUF_initRemainingDStream(&bit, &args, i, segmentEnd), "corruption"); + args.op[i] += HUF_decodeStreamX2(args.op[i], &bit, segmentEnd, (HUF_DEltX2 const*)dt, HUF_DECODER_FAST_TABLELOG); + if (args.op[i] != segmentEnd) + return ERROR(corruption_detected); + } + } + + /* decoded size */ + return dstSize; +} + +static size_t HUF_decompress4X2_usingDTable_internal(void* dst, size_t dstSize, void const* cSrc, + size_t cSrcSize, HUF_DTable const* DTable, int flags) { - DTableDesc dtd = HUF_getDTableDesc(DTable); - if (dtd.tableType != 1) return ERROR(GENERIC); - return HUF_decompress4X2_usingDTable_internal(dst, dstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); + HUF_DecompressUsingDTableFn fallbackFn = HUF_decompress4X2_usingDTable_internal_default; + HUF_DecompressFastLoopFn loopFn = HUF_decompress4X2_usingDTable_internal_fast_c_loop; + +#if DYNAMIC_BMI2 + if (flags & HUF_flags_bmi2) { + fallbackFn = HUF_decompress4X2_usingDTable_internal_bmi2; + } else { + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); + } +#endif + + if (HUF_ENABLE_FAST_DECODE && !(flags & HUF_flags_disableFast)) { + size_t const ret = HUF_decompress4X2_usingDTable_internal_fast(dst, dstSize, cSrc, cSrcSize, DTable, loopFn); + if (ret != 0) + return ret; + } + return fallbackFn(dst, dstSize, cSrc, cSrcSize, DTable); } -static size_t HUF_decompress4X2_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, +HUF_DGEN(HUF_decompress1X2_usingDTable_internal) + +size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* DCtx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, - void* workSpace, size_t wkspSize, int bmi2) + void* workSpace, size_t wkspSize, int flags) { const BYTE* ip = (const BYTE*) cSrc; - size_t hSize = HUF_readDTableX2_wksp(dctx, cSrc, cSrcSize, - workSpace, wkspSize); + size_t const hSize = HUF_readDTableX2_wksp(DCtx, cSrc, cSrcSize, + workSpace, wkspSize, flags); if (HUF_isError(hSize)) return hSize; if (hSize >= cSrcSize) return ERROR(srcSize_wrong); ip += hSize; cSrcSize -= hSize; - return HUF_decompress4X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); + return HUF_decompress1X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, DCtx, flags); } -size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, +static size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, - void* workSpace, size_t wkspSize) + void* workSpace, size_t wkspSize, int flags) { - return HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, /* bmi2 */ 0); -} - + const BYTE* ip = (const BYTE*) cSrc; -size_t HUF_decompress4X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, - workSpace, sizeof(workSpace)); -} + size_t hSize = HUF_readDTableX2_wksp(dctx, cSrc, cSrcSize, + workSpace, wkspSize, flags); + if (HUF_isError(hSize)) return hSize; + if (hSize >= cSrcSize) return ERROR(srcSize_wrong); + ip += hSize; cSrcSize -= hSize; -size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) -{ - HUF_CREATE_STATIC_DTABLEX2(DTable, HUF_TABLELOG_MAX); - return HUF_decompress4X2_DCtx(DTable, dst, dstSize, cSrc, cSrcSize); + return HUF_decompress4X2_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, flags); } #endif /* HUF_FORCE_DECOMPRESS_X1 */ @@ -959,66 +1754,28 @@ size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, size_t cS /* Universal decompression selectors */ /* ***********************************/ -size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, - const void* cSrc, size_t cSrcSize, - const HUF_DTable* DTable) -{ - DTableDesc const dtd = HUF_getDTableDesc(DTable); -#if defined(HUF_FORCE_DECOMPRESS_X1) - (void)dtd; - assert(dtd.tableType == 0); - return HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); -#elif defined(HUF_FORCE_DECOMPRESS_X2) - (void)dtd; - assert(dtd.tableType == 1); - return HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); -#else - return dtd.tableType ? HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0) : - HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); -#endif -} - -size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, - const void* cSrc, size_t cSrcSize, - const HUF_DTable* DTable) -{ - DTableDesc const dtd = HUF_getDTableDesc(DTable); -#if defined(HUF_FORCE_DECOMPRESS_X1) - (void)dtd; - assert(dtd.tableType == 0); - return HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); -#elif defined(HUF_FORCE_DECOMPRESS_X2) - (void)dtd; - assert(dtd.tableType == 1); - return HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); -#else - return dtd.tableType ? HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0) : - HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, /* bmi2 */ 0); -#endif -} - #if !defined(HUF_FORCE_DECOMPRESS_X1) && !defined(HUF_FORCE_DECOMPRESS_X2) typedef struct { U32 tableTime; U32 decode256Time; } algo_time_t; -static const algo_time_t algoTime[16 /* Quantization */][3 /* single, double, quad */] = +static const algo_time_t algoTime[16 /* Quantization */][2 /* single, double */] = { /* single, double, quad */ - {{0,0}, {1,1}, {2,2}}, /* Q==0 : impossible */ - {{0,0}, {1,1}, {2,2}}, /* Q==1 : impossible */ - {{ 38,130}, {1313, 74}, {2151, 38}}, /* Q == 2 : 12-18% */ - {{ 448,128}, {1353, 74}, {2238, 41}}, /* Q == 3 : 18-25% */ - {{ 556,128}, {1353, 74}, {2238, 47}}, /* Q == 4 : 25-32% */ - {{ 714,128}, {1418, 74}, {2436, 53}}, /* Q == 5 : 32-38% */ - {{ 883,128}, {1437, 74}, {2464, 61}}, /* Q == 6 : 38-44% */ - {{ 897,128}, {1515, 75}, {2622, 68}}, /* Q == 7 : 44-50% */ - {{ 926,128}, {1613, 75}, {2730, 75}}, /* Q == 8 : 50-56% */ - {{ 947,128}, {1729, 77}, {3359, 77}}, /* Q == 9 : 56-62% */ - {{1107,128}, {2083, 81}, {4006, 84}}, /* Q ==10 : 62-69% */ - {{1177,128}, {2379, 87}, {4785, 88}}, /* Q ==11 : 69-75% */ - {{1242,128}, {2415, 93}, {5155, 84}}, /* Q ==12 : 75-81% */ - {{1349,128}, {2644,106}, {5260,106}}, /* Q ==13 : 81-87% */ - {{1455,128}, {2422,124}, {4174,124}}, /* Q ==14 : 87-93% */ - {{ 722,128}, {1891,145}, {1936,146}}, /* Q ==15 : 93-99% */ + {{0,0}, {1,1}}, /* Q==0 : impossible */ + {{0,0}, {1,1}}, /* Q==1 : impossible */ + {{ 150,216}, { 381,119}}, /* Q == 2 : 12-18% */ + {{ 170,205}, { 514,112}}, /* Q == 3 : 18-25% */ + {{ 177,199}, { 539,110}}, /* Q == 4 : 25-32% */ + {{ 197,194}, { 644,107}}, /* Q == 5 : 32-38% */ + {{ 221,192}, { 735,107}}, /* Q == 6 : 38-44% */ + {{ 256,189}, { 881,106}}, /* Q == 7 : 44-50% */ + {{ 359,188}, {1167,109}}, /* Q == 8 : 50-56% */ + {{ 582,187}, {1570,114}}, /* Q == 9 : 56-62% */ + {{ 688,187}, {1712,122}}, /* Q ==10 : 62-69% */ + {{ 825,186}, {1965,136}}, /* Q ==11 : 69-75% */ + {{ 976,185}, {2131,150}}, /* Q ==12 : 75-81% */ + {{1180,186}, {2070,175}}, /* Q ==13 : 81-87% */ + {{1377,185}, {1731,202}}, /* Q ==14 : 87-93% */ + {{1412,185}, {1695,202}}, /* Q ==15 : 93-99% */ }; #endif @@ -1045,188 +1802,92 @@ U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize) U32 const D256 = (U32)(dstSize >> 8); U32 const DTime0 = algoTime[Q][0].tableTime + (algoTime[Q][0].decode256Time * D256); U32 DTime1 = algoTime[Q][1].tableTime + (algoTime[Q][1].decode256Time * D256); - DTime1 += DTime1 >> 3; /* advantage to algorithm using less memory, to reduce cache eviction */ + DTime1 += DTime1 >> 5; /* small advantage to algorithm using less memory, to reduce cache eviction */ return DTime1 < DTime0; } #endif } - -typedef size_t (*decompressionAlgo)(void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); - -size_t HUF_decompress (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) -{ -#if !defined(HUF_FORCE_DECOMPRESS_X1) && !defined(HUF_FORCE_DECOMPRESS_X2) - static const decompressionAlgo decompress[2] = { HUF_decompress4X1, HUF_decompress4X2 }; -#endif - - /* validation checks */ - if (dstSize == 0) return ERROR(dstSize_tooSmall); - if (cSrcSize > dstSize) return ERROR(corruption_detected); /* invalid */ - if (cSrcSize == dstSize) { memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ - if (cSrcSize == 1) { memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ - - { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); -#if defined(HUF_FORCE_DECOMPRESS_X1) - (void)algoNb; - assert(algoNb == 0); - return HUF_decompress4X1(dst, dstSize, cSrc, cSrcSize); -#elif defined(HUF_FORCE_DECOMPRESS_X2) - (void)algoNb; - assert(algoNb == 1); - return HUF_decompress4X2(dst, dstSize, cSrc, cSrcSize); -#else - return decompress[algoNb](dst, dstSize, cSrc, cSrcSize); -#endif - } -} - -size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) -{ - /* validation checks */ - if (dstSize == 0) return ERROR(dstSize_tooSmall); - if (cSrcSize > dstSize) return ERROR(corruption_detected); /* invalid */ - if (cSrcSize == dstSize) { memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ - if (cSrcSize == 1) { memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ - - { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); -#if defined(HUF_FORCE_DECOMPRESS_X1) - (void)algoNb; - assert(algoNb == 0); - return HUF_decompress4X1_DCtx(dctx, dst, dstSize, cSrc, cSrcSize); -#elif defined(HUF_FORCE_DECOMPRESS_X2) - (void)algoNb; - assert(algoNb == 1); - return HUF_decompress4X2_DCtx(dctx, dst, dstSize, cSrc, cSrcSize); -#else - return algoNb ? HUF_decompress4X2_DCtx(dctx, dst, dstSize, cSrc, cSrcSize) : - HUF_decompress4X1_DCtx(dctx, dst, dstSize, cSrc, cSrcSize) ; -#endif - } -} - -size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_decompress4X_hufOnly_wksp(dctx, dst, dstSize, cSrc, cSrcSize, - workSpace, sizeof(workSpace)); -} - - -size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, - size_t dstSize, const void* cSrc, - size_t cSrcSize, void* workSpace, - size_t wkspSize) -{ - /* validation checks */ - if (dstSize == 0) return ERROR(dstSize_tooSmall); - if (cSrcSize == 0) return ERROR(corruption_detected); - - { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); -#if defined(HUF_FORCE_DECOMPRESS_X1) - (void)algoNb; - assert(algoNb == 0); - return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); -#elif defined(HUF_FORCE_DECOMPRESS_X2) - (void)algoNb; - assert(algoNb == 1); - return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); -#else - return algoNb ? HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, - cSrcSize, workSpace, wkspSize): - HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize); -#endif - } -} - size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, - void* workSpace, size_t wkspSize) + void* workSpace, size_t wkspSize, int flags) { /* validation checks */ if (dstSize == 0) return ERROR(dstSize_tooSmall); if (cSrcSize > dstSize) return ERROR(corruption_detected); /* invalid */ - if (cSrcSize == dstSize) { memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ - if (cSrcSize == 1) { memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ + if (cSrcSize == dstSize) { ZSTD_memcpy(dst, cSrc, dstSize); return dstSize; } /* not compressed */ + if (cSrcSize == 1) { ZSTD_memset(dst, *(const BYTE*)cSrc, dstSize); return dstSize; } /* RLE */ { U32 const algoNb = HUF_selectDecoder(dstSize, cSrcSize); #if defined(HUF_FORCE_DECOMPRESS_X1) (void)algoNb; assert(algoNb == 0); return HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, - cSrcSize, workSpace, wkspSize); + cSrcSize, workSpace, wkspSize, flags); #elif defined(HUF_FORCE_DECOMPRESS_X2) (void)algoNb; assert(algoNb == 1); return HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, - cSrcSize, workSpace, wkspSize); + cSrcSize, workSpace, wkspSize, flags); #else return algoNb ? HUF_decompress1X2_DCtx_wksp(dctx, dst, dstSize, cSrc, - cSrcSize, workSpace, wkspSize): + cSrcSize, workSpace, wkspSize, flags): HUF_decompress1X1_DCtx_wksp(dctx, dst, dstSize, cSrc, - cSrcSize, workSpace, wkspSize); + cSrcSize, workSpace, wkspSize, flags); #endif } } -size_t HUF_decompress1X_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, - const void* cSrc, size_t cSrcSize) -{ - U32 workSpace[HUF_DECOMPRESS_WORKSPACE_SIZE_U32]; - return HUF_decompress1X_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, - workSpace, sizeof(workSpace)); -} - -size_t HUF_decompress1X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2) +size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags) { DTableDesc const dtd = HUF_getDTableDesc(DTable); #if defined(HUF_FORCE_DECOMPRESS_X1) (void)dtd; assert(dtd.tableType == 0); - return HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); + return HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); #elif defined(HUF_FORCE_DECOMPRESS_X2) (void)dtd; assert(dtd.tableType == 1); - return HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); + return HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); #else - return dtd.tableType ? HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2) : - HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); + return dtd.tableType ? HUF_decompress1X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags) : + HUF_decompress1X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); #endif } #ifndef HUF_FORCE_DECOMPRESS_X2 -size_t HUF_decompress1X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2) +size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags) { const BYTE* ip = (const BYTE*) cSrc; - size_t const hSize = HUF_readDTableX1_wksp(dctx, cSrc, cSrcSize, workSpace, wkspSize); + size_t const hSize = HUF_readDTableX1_wksp(dctx, cSrc, cSrcSize, workSpace, wkspSize, flags); if (HUF_isError(hSize)) return hSize; if (hSize >= cSrcSize) return ERROR(srcSize_wrong); ip += hSize; cSrcSize -= hSize; - return HUF_decompress1X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, bmi2); + return HUF_decompress1X1_usingDTable_internal(dst, dstSize, ip, cSrcSize, dctx, flags); } #endif -size_t HUF_decompress4X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2) +size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags) { DTableDesc const dtd = HUF_getDTableDesc(DTable); #if defined(HUF_FORCE_DECOMPRESS_X1) (void)dtd; assert(dtd.tableType == 0); - return HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); + return HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); #elif defined(HUF_FORCE_DECOMPRESS_X2) (void)dtd; assert(dtd.tableType == 1); - return HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); + return HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); #else - return dtd.tableType ? HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2) : - HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, bmi2); + return dtd.tableType ? HUF_decompress4X2_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags) : + HUF_decompress4X1_usingDTable_internal(dst, maxDstSize, cSrc, cSrcSize, DTable, flags); #endif } -size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2) +size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags) { /* validation checks */ if (dstSize == 0) return ERROR(dstSize_tooSmall); @@ -1236,16 +1897,16 @@ size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t ds #if defined(HUF_FORCE_DECOMPRESS_X1) (void)algoNb; assert(algoNb == 0); - return HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2); + return HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags); #elif defined(HUF_FORCE_DECOMPRESS_X2) (void)algoNb; assert(algoNb == 1); - return HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2); + return HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags); #else - return algoNb ? HUF_decompress4X2_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2) : - HUF_decompress4X1_DCtx_wksp_bmi2(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, bmi2); + return algoNb ? HUF_decompress4X2_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags) : + HUF_decompress4X1_DCtx_wksp(dctx, dst, dstSize, cSrc, cSrcSize, workSpace, wkspSize, flags); #endif } } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/decompress/zstd_ddict.cpp b/src/duckdb/third_party/zstd/decompress/zstd_ddict.cpp index ecb71145..2c6c0ded 100644 --- a/src/duckdb/third_party/zstd/decompress/zstd_ddict.cpp +++ b/src/duckdb/third_party/zstd/decompress/zstd_ddict.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -14,18 +14,19 @@ /*-******************************************************* * Dependencies *********************************************************/ -#include /* memcpy, memmove, memset */ +#include "zstd/common/allocations.h" /* ZSTD_customMalloc, ZSTD_customFree */ +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "zstd/common/cpu.h" /* bmi2 */ #include "zstd/common/mem.h" /* low level memory routines */ +#define FSE_STATIC_LINKING_ONLY #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" #include "zstd/decompress/zstd_decompress_internal.h" #include "zstd/decompress/zstd_ddict.h" -// #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) -// # include "../legacy/zstd_legacy.h" -// #endif +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) +// # include "zstd/legacy/zstd_legacy.h" // DuckDB: comment out otherwise amalgamation won't be happy +#endif namespace duckdb_zstd { @@ -126,14 +127,14 @@ static size_t ZSTD_initDDict_internal(ZSTD_DDict* ddict, ddict->dictContent = dict; if (!dict) dictSize = 0; } else { - void* const internalBuffer = ZSTD_malloc(dictSize, ddict->cMem); + void* const internalBuffer = ZSTD_customMalloc(dictSize, ddict->cMem); ddict->dictBuffer = internalBuffer; ddict->dictContent = internalBuffer; if (!internalBuffer) return ERROR(memory_allocation); - memcpy(internalBuffer, dict, dictSize); + ZSTD_memcpy(internalBuffer, dict, dictSize); } ddict->dictSize = dictSize; - ddict->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian */ + ddict->entropy.hufTable[0] = (HUF_DTable)((ZSTD_HUFFDTABLE_CAPACITY_LOG)*0x1000001); /* cover both little and big endian */ /* parse dictionary content */ FORWARD_IF_ERROR( ZSTD_loadEntropy_intoDDict(ddict, dictContentType) , ""); @@ -146,9 +147,9 @@ ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, ZSTD_customMem customMem) { - if (!customMem.customAlloc ^ !customMem.customFree) return NULL; + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; - { ZSTD_DDict* const ddict = (ZSTD_DDict*) ZSTD_malloc(sizeof(ZSTD_DDict), customMem); + { ZSTD_DDict* const ddict = (ZSTD_DDict*) ZSTD_customMalloc(sizeof(ZSTD_DDict), customMem); if (ddict == NULL) return NULL; ddict->cMem = customMem; { size_t const initResult = ZSTD_initDDict_internal(ddict, @@ -197,7 +198,7 @@ const ZSTD_DDict* ZSTD_initStaticDDict( if ((size_t)sBuffer & 7) return NULL; /* 8-aligned */ if (sBufferSize < neededSpace) return NULL; if (dictLoadMethod == ZSTD_dlm_byCopy) { - memcpy(ddict+1, dict, dictSize); /* local copy */ + ZSTD_memcpy(ddict+1, dict, dictSize); /* local copy */ dict = ddict+1; } if (ZSTD_isError( ZSTD_initDDict_internal(ddict, @@ -212,8 +213,8 @@ size_t ZSTD_freeDDict(ZSTD_DDict* ddict) { if (ddict==NULL) return 0; /* support free on NULL */ { ZSTD_customMem const cMem = ddict->cMem; - ZSTD_free(ddict->dictBuffer, cMem); - ZSTD_free(ddict, cMem); + ZSTD_customFree(ddict->dictBuffer, cMem); + ZSTD_customFree(ddict, cMem); return 0; } } @@ -239,7 +240,7 @@ size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict) unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict) { if (ddict==NULL) return 0; - return ZSTD_getDictID_fromDict(ddict->dictContent, ddict->dictSize); + return ddict->dictID; } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/decompress/zstd_decompress.cpp b/src/duckdb/third_party/zstd/decompress/zstd_decompress.cpp index 19ebd907..1a10de56 100644 --- a/src/duckdb/third_party/zstd/decompress/zstd_decompress.cpp +++ b/src/duckdb/third_party/zstd/decompress/zstd_decompress.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -55,88 +55,167 @@ /*-******************************************************* * Dependencies *********************************************************/ -#include /* memcpy, memmove, memset */ +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ +#include "zstd/common/allocations.h" /* ZSTD_customMalloc, ZSTD_customCalloc, ZSTD_customFree */ +#include "zstd/common/error_private.h" +#include "zstd/common/zstd_internal.h" /* blockProperties_t */ #include "zstd/common/mem.h" /* low level memory routines */ +#include "zstd/common/bits.h" /* ZSTD_highbit32 */ +#define FSE_STATIC_LINKING_ONLY #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" -#include "zstd/common/zstd_internal.h" /* blockProperties_t */ +#include "zstd/common/xxhash.hpp" /* XXH64_reset, XXH64_update, XXH64_digest, XXH64 */ +#include "zstd/common/xxhash_static.hpp" /* XXH64_reset, XXH64_update, XXH64_digest, XXH64 */ #include "zstd/decompress/zstd_decompress_internal.h" /* ZSTD_DCtx */ #include "zstd/decompress/zstd_ddict.h" /* ZSTD_DDictDictContent */ #include "zstd/decompress/zstd_decompress_block.h" /* ZSTD_decompressBlock_internal */ -// #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) -// # include "../legacy/zstd_legacy.h" -// #endif +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) +// # include "zstd/legacy/zstd_legacy.h" // DuckDB: comment out otherwise amalgamation won't be happy +#endif + + + +/************************************* + * Multiple DDicts Hashset internals * + *************************************/ + +#define DDICT_HASHSET_MAX_LOAD_FACTOR_COUNT_MULT 4 +#define DDICT_HASHSET_MAX_LOAD_FACTOR_SIZE_MULT 3 /* These two constants represent SIZE_MULT/COUNT_MULT load factor without using a float. */ + /* Currently, that means a 0.75 load factor. */ + /* So, if count * COUNT_MULT / size * SIZE_MULT != 0, then we've exceeded */ + /* the load factor of the ddict hash set. */ + +#define DDICT_HASHSET_TABLE_BASE_SIZE 64 +#define DDICT_HASHSET_RESIZE_FACTOR 2 + namespace duckdb_zstd { -const U32 ZSTDConstants::LL_base[MaxLL+1] = { - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 18, 20, 22, 24, 28, 32, 40, - 48, 64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, - 0x2000, 0x4000, 0x8000, 0x10000 }; - -const U32 ZSTDConstants::OF_base[MaxOff+1] = { - 0, 1, 1, 5, 0xD, 0x1D, 0x3D, 0x7D, - 0xFD, 0x1FD, 0x3FD, 0x7FD, 0xFFD, 0x1FFD, 0x3FFD, 0x7FFD, - 0xFFFD, 0x1FFFD, 0x3FFFD, 0x7FFFD, 0xFFFFD, 0x1FFFFD, 0x3FFFFD, 0x7FFFFD, - 0xFFFFFD, 0x1FFFFFD, 0x3FFFFFD, 0x7FFFFFD, 0xFFFFFFD, 0x1FFFFFFD, 0x3FFFFFFD, 0x7FFFFFFD }; - -const U32 ZSTDConstants::OF_bits[MaxOff+1] = { - 0, 1, 2, 3, 4, 5, 6, 7, - 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31 }; - -const U32 ZSTDConstants::ML_base[MaxML+1] = { - 3, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, - 35, 37, 39, 41, 43, 47, 51, 59, - 67, 83, 99, 0x83, 0x103, 0x203, 0x403, 0x803, - 0x1003, 0x2003, 0x4003, 0x8003, 0x10003 }; - -const size_t ZSTDInternalConstants::ZSTD_blockHeaderSize = ZSTD_BLOCKHEADERSIZE; -const U32 ZSTDInternalConstants::LL_bits[MaxLL+1] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 2, 2, 3, 3, - 4, 6, 7, 8, 9,10,11,12, - 13,14,15,16 }; -const S16 ZSTDInternalConstants::LL_defaultNorm[MaxLL+1] = { 4, 3, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 3, 2, 1, 1, 1, 1, 1, - -1,-1,-1,-1 }; -#define LL_DEFAULTNORMLOG 6 /* for static allocation */ -const U32 ZSTDInternalConstants::LL_defaultNormLog = LL_DEFAULTNORMLOG; -const U32 ZSTDInternalConstants::ML_bits[MaxML+1] = { 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 1, 1, 1, 1, 2, 2, 3, 3, - 4, 4, 5, 7, 8, 9,10,11, - 12,13,14,15,16 }; -const S16 ZSTDInternalConstants::ML_defaultNorm[MaxML+1] = { 1, 4, 3, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1,-1,-1, - -1,-1,-1,-1,-1 }; -#define ML_DEFAULTNORMLOG 6 /* for static allocation */ -const U32 ZSTDInternalConstants::ML_defaultNormLog = ML_DEFAULTNORMLOG; - -const S16 ZSTDInternalConstants::OF_defaultNorm[DefaultMaxOff+1] = { 1, 1, 1, 1, 1, 1, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - -1,-1,-1,-1,-1 }; -#define OF_DEFAULTNORMLOG 5 /* for static allocation */ -const U32 ZSTDInternalConstants::OF_defaultNormLog = OF_DEFAULTNORMLOG; -const U32 ZSTDInternalConstants::repStartValue[ZSTD_REP_NUM] = { 1, 4, 8 }; - -const ZSTD_customMem ZSTDInternalConstants::ZSTD_defaultCMem = { NULL, NULL, NULL }; /**< this constant defers to stdlib's functions */ + +/* Hash function to determine starting position of dict insertion within the table + * Returns an index between [0, hashSet->ddictPtrTableSize] + */ +static size_t ZSTD_DDictHashSet_getIndex(const ZSTD_DDictHashSet* hashSet, U32 dictID) { + const U64 hash = XXH64(&dictID, sizeof(U32), 0); + /* DDict ptr table size is a multiple of 2, use size - 1 as mask to get index within [0, hashSet->ddictPtrTableSize) */ + return hash & (hashSet->ddictPtrTableSize - 1); +} + +/* Adds DDict to a hashset without resizing it. + * If inserting a DDict with a dictID that already exists in the set, replaces the one in the set. + * Returns 0 if successful, or a zstd error code if something went wrong. + */ +static size_t ZSTD_DDictHashSet_emplaceDDict(ZSTD_DDictHashSet* hashSet, const ZSTD_DDict* ddict) { + const U32 dictID = ZSTD_getDictID_fromDDict(ddict); + size_t idx = ZSTD_DDictHashSet_getIndex(hashSet, dictID); + const size_t idxRangeMask = hashSet->ddictPtrTableSize - 1; + RETURN_ERROR_IF(hashSet->ddictPtrCount == hashSet->ddictPtrTableSize, GENERIC, "Hash set is full!"); + DEBUGLOG(4, "Hashed index: for dictID: %u is %zu", dictID, idx); + while (hashSet->ddictPtrTable[idx] != NULL) { + /* Replace existing ddict if inserting ddict with same dictID */ + if (ZSTD_getDictID_fromDDict(hashSet->ddictPtrTable[idx]) == dictID) { + DEBUGLOG(4, "DictID already exists, replacing rather than adding"); + hashSet->ddictPtrTable[idx] = ddict; + return 0; + } + idx &= idxRangeMask; + idx++; + } + DEBUGLOG(4, "Final idx after probing for dictID %u is: %zu", dictID, idx); + hashSet->ddictPtrTable[idx] = ddict; + hashSet->ddictPtrCount++; + return 0; +} + +/* Expands hash table by factor of DDICT_HASHSET_RESIZE_FACTOR and + * rehashes all values, allocates new table, frees old table. + * Returns 0 on success, otherwise a zstd error code. + */ +static size_t ZSTD_DDictHashSet_expand(ZSTD_DDictHashSet* hashSet, ZSTD_customMem customMem) { + size_t newTableSize = hashSet->ddictPtrTableSize * DDICT_HASHSET_RESIZE_FACTOR; + const ZSTD_DDict** newTable = (const ZSTD_DDict**)ZSTD_customCalloc(sizeof(ZSTD_DDict*) * newTableSize, customMem); + const ZSTD_DDict** oldTable = hashSet->ddictPtrTable; + size_t oldTableSize = hashSet->ddictPtrTableSize; + size_t i; + + DEBUGLOG(4, "Expanding DDict hash table! Old size: %zu new size: %zu", oldTableSize, newTableSize); + RETURN_ERROR_IF(!newTable, memory_allocation, "Expanded hashset allocation failed!"); + hashSet->ddictPtrTable = newTable; + hashSet->ddictPtrTableSize = newTableSize; + hashSet->ddictPtrCount = 0; + for (i = 0; i < oldTableSize; ++i) { + if (oldTable[i] != NULL) { + FORWARD_IF_ERROR(ZSTD_DDictHashSet_emplaceDDict(hashSet, oldTable[i]), ""); + } + } + ZSTD_customFree((void*)oldTable, customMem); + DEBUGLOG(4, "Finished re-hash"); + return 0; +} + +/* Fetches a DDict with the given dictID + * Returns the ZSTD_DDict* with the requested dictID. If it doesn't exist, then returns NULL. + */ +static const ZSTD_DDict* ZSTD_DDictHashSet_getDDict(ZSTD_DDictHashSet* hashSet, U32 dictID) { + size_t idx = ZSTD_DDictHashSet_getIndex(hashSet, dictID); + const size_t idxRangeMask = hashSet->ddictPtrTableSize - 1; + DEBUGLOG(4, "Hashed index: for dictID: %u is %zu", dictID, idx); + for (;;) { + size_t currDictID = ZSTD_getDictID_fromDDict(hashSet->ddictPtrTable[idx]); + if (currDictID == dictID || currDictID == 0) { + /* currDictID == 0 implies a NULL ddict entry */ + break; + } else { + idx &= idxRangeMask; /* Goes to start of table when we reach the end */ + idx++; + } + } + DEBUGLOG(4, "Final idx after probing for dictID %u is: %zu", dictID, idx); + return hashSet->ddictPtrTable[idx]; +} + +/* Allocates space for and returns a ddict hash set + * The hash set's ZSTD_DDict* table has all values automatically set to NULL to begin with. + * Returns NULL if allocation failed. + */ +static ZSTD_DDictHashSet* ZSTD_createDDictHashSet(ZSTD_customMem customMem) { + ZSTD_DDictHashSet* ret = (ZSTD_DDictHashSet*)ZSTD_customMalloc(sizeof(ZSTD_DDictHashSet), customMem); + DEBUGLOG(4, "Allocating new hash set"); + if (!ret) + return NULL; + ret->ddictPtrTable = (const ZSTD_DDict**)ZSTD_customCalloc(DDICT_HASHSET_TABLE_BASE_SIZE * sizeof(ZSTD_DDict*), customMem); + if (!ret->ddictPtrTable) { + ZSTD_customFree(ret, customMem); + return NULL; + } + ret->ddictPtrTableSize = DDICT_HASHSET_TABLE_BASE_SIZE; + ret->ddictPtrCount = 0; + return ret; +} + +/* Frees the table of ZSTD_DDict* within a hashset, then frees the hashset itself. + * Note: The ZSTD_DDict* within the table are NOT freed. + */ +static void ZSTD_freeDDictHashSet(ZSTD_DDictHashSet* hashSet, ZSTD_customMem customMem) { + DEBUGLOG(4, "Freeing ddict hash set"); + if (hashSet && hashSet->ddictPtrTable) { + ZSTD_customFree((void*)hashSet->ddictPtrTable, customMem); + } + if (hashSet) { + ZSTD_customFree(hashSet, customMem); + } +} + +/* Public function: Adds a DDict into the ZSTD_DDictHashSet, possibly triggering a resize of the hash set. + * Returns 0 on success, or a ZSTD error. + */ +static size_t ZSTD_DDictHashSet_addDDict(ZSTD_DDictHashSet* hashSet, const ZSTD_DDict* ddict, ZSTD_customMem customMem) { + DEBUGLOG(4, "Adding dict ID: %u to hashset with - Count: %zu Tablesize: %zu", ZSTD_getDictID_fromDDict(ddict), hashSet->ddictPtrCount, hashSet->ddictPtrTableSize); + if (hashSet->ddictPtrCount * DDICT_HASHSET_MAX_LOAD_FACTOR_COUNT_MULT / hashSet->ddictPtrTableSize * DDICT_HASHSET_MAX_LOAD_FACTOR_SIZE_MULT != 0) { + FORWARD_IF_ERROR(ZSTD_DDictHashSet_expand(hashSet, customMem), ""); + } + FORWARD_IF_ERROR(ZSTD_DDictHashSet_emplaceDDict(hashSet, ddict), ""); + return 0; +} /*-************************************************************* * Context management @@ -160,11 +239,21 @@ static size_t ZSTD_startingInputLength(ZSTD_format_e format) return startingInputLength; } +static void ZSTD_DCtx_resetParameters(ZSTD_DCtx* dctx) +{ + assert(dctx->streamStage == zdss_init); + dctx->format = ZSTD_f_zstd1; + dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; + dctx->outBufferMode = ZSTD_bm_buffered; + dctx->forceIgnoreChecksum = ZSTD_d_validateChecksum; + dctx->refMultipleDDicts = ZSTD_rmd_refSingleDDict; + dctx->disableHufAsm = 0; + dctx->maxBlockSizeParam = 0; +} + static void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx) { - dctx->format = ZSTD_f_zstd1; /* ZSTD_decompressBegin() invokes ZSTD_startingInputLength() with argument dctx->format */ dctx->staticSize = 0; - dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; dctx->ddict = NULL; dctx->ddictLocal = NULL; dctx->dictEnd = NULL; @@ -174,12 +263,18 @@ static void ZSTD_initDCtx_internal(ZSTD_DCtx* dctx) dctx->inBuffSize = 0; dctx->outBuffSize = 0; dctx->streamStage = zdss_init; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) dctx->legacyContext = NULL; dctx->previousLegacyVersion = 0; +#endif dctx->noForwardProgress = 0; dctx->oversizedDuration = 0; - dctx->bmi2 = 0; - dctx->outBufferMode = ZSTD_obm_buffered; + dctx->isFrameDecompression = 1; +#if DYNAMIC_BMI2 + dctx->bmi2 = ZSTD_cpuSupportsBmi2(); +#endif + dctx->ddictSet = NULL; + ZSTD_DCtx_resetParameters(dctx); #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION dctx->dictContentEndForFuzzing = NULL; #endif @@ -198,11 +293,10 @@ ZSTD_DCtx* ZSTD_initStaticDCtx(void *workspace, size_t workspaceSize) return dctx; } -ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem) -{ - if (!customMem.customAlloc ^ !customMem.customFree) return NULL; +static ZSTD_DCtx* ZSTD_createDCtx_internal(ZSTD_customMem customMem) { + if ((!customMem.customAlloc) ^ (!customMem.customFree)) return NULL; - { ZSTD_DCtx* const dctx = (ZSTD_DCtx*)ZSTD_malloc(sizeof(*dctx), customMem); + { ZSTD_DCtx* const dctx = (ZSTD_DCtx*)ZSTD_customMalloc(sizeof(*dctx), customMem); if (!dctx) return NULL; dctx->customMem = customMem; ZSTD_initDCtx_internal(dctx); @@ -210,10 +304,15 @@ ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem) } } +ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createDCtx_internal(customMem); +} + ZSTD_DCtx* ZSTD_createDCtx(void) { DEBUGLOG(3, "ZSTD_createDCtx"); - return ZSTD_createDCtx_advanced(ZSTDInternalConstants::ZSTD_defaultCMem); + return ZSTD_createDCtx_internal(ZSTD_defaultCMem); } static void ZSTD_clearDict(ZSTD_DCtx* dctx) @@ -230,13 +329,17 @@ size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx) RETURN_ERROR_IF(dctx->staticSize, memory_allocation, "not compatible with static DCtx"); { ZSTD_customMem const cMem = dctx->customMem; ZSTD_clearDict(dctx); - ZSTD_free(dctx->inBuff, cMem); + ZSTD_customFree(dctx->inBuff, cMem); dctx->inBuff = NULL; #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) if (dctx->legacyContext) ZSTD_freeLegacyStreamContext(dctx->legacyContext, dctx->previousLegacyVersion); #endif - ZSTD_free(dctx, cMem); + if (dctx->ddictSet) { + ZSTD_freeDDictHashSet(dctx->ddictSet, cMem); + dctx->ddictSet = NULL; + } + ZSTD_customFree(dctx, cMem); return 0; } } @@ -245,7 +348,30 @@ size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx) void ZSTD_copyDCtx(ZSTD_DCtx* dstDCtx, const ZSTD_DCtx* srcDCtx) { size_t const toCopy = (size_t)((char*)(&dstDCtx->inBuff) - (char*)dstDCtx); - memcpy(dstDCtx, srcDCtx, toCopy); /* no need to copy workspace */ + ZSTD_memcpy(dstDCtx, srcDCtx, toCopy); /* no need to copy workspace */ +} + +/* Given a dctx with a digested frame params, re-selects the correct ZSTD_DDict based on + * the requested dict ID from the frame. If there exists a reference to the correct ZSTD_DDict, then + * accordingly sets the ddict to be used to decompress the frame. + * + * If no DDict is found, then no action is taken, and the ZSTD_DCtx::ddict remains as-is. + * + * ZSTD_d_refMultipleDDicts must be enabled for this function to be called. + */ +static void ZSTD_DCtx_selectFrameDDict(ZSTD_DCtx* dctx) { + assert(dctx->refMultipleDDicts && dctx->ddictSet); + DEBUGLOG(4, "Adjusting DDict based on requested dict ID from frame"); + if (dctx->ddict) { + const ZSTD_DDict* frameDDict = ZSTD_DDictHashSet_getDDict(dctx->ddictSet, dctx->fParams.dictID); + if (frameDDict) { + DEBUGLOG(4, "DDict found!"); + ZSTD_clearDict(dctx); + dctx->dictID = dctx->fParams.dictID; + dctx->ddict = frameDDict; + dctx->dictUses = ZSTD_use_indefinitely; + } + } } @@ -271,8 +397,19 @@ unsigned ZSTD_isFrame(const void* buffer, size_t size) return 0; } -static const size_t ZSTD_fcs_fieldSize[4] = { 0, 2, 4, 8 }; -static const size_t ZSTD_did_fieldSize[4] = { 0, 1, 2, 4 }; +/*! ZSTD_isSkippableFrame() : + * Tells if the content of `buffer` starts with a valid Frame Identifier for a skippable frame. + * Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. + */ +unsigned ZSTD_isSkippableFrame(const void* buffer, size_t size) +{ + if (size < ZSTD_FRAMEIDSIZE) return 0; + { U32 const magic = MEM_readLE32(buffer); + if ((magic & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) return 1; + } + return 0; +} + /** ZSTD_frameHeaderSize_internal() : * srcSize must be large enough to reach header size fields. * note : only works for formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless. @@ -308,23 +445,47 @@ size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize) * note : only works for formats ZSTD_f_zstd1 and ZSTD_f_zstd1_magicless * @return : 0, `zfhPtr` is correctly filled, * >0, `srcSize` is too small, value is wanted `srcSize` amount, - * or an error code, which can be tested using ZSTD_isError() */ +** or an error code, which can be tested using ZSTD_isError() */ size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize, ZSTD_format_e format) { const BYTE* ip = (const BYTE*)src; size_t const minInputSize = ZSTD_startingInputLength(format); - memset(zfhPtr, 0, sizeof(*zfhPtr)); /* not strictly necessary, but static analyzer do not understand that zfhPtr is only going to be read only if return value is zero, since they are 2 different signals */ - if (srcSize < minInputSize) return minInputSize; - RETURN_ERROR_IF(src==NULL, GENERIC, "invalid parameter"); + DEBUGLOG(5, "ZSTD_getFrameHeader_advanced: minInputSize = %zu, srcSize = %zu", minInputSize, srcSize); + + if (srcSize > 0) { + /* note : technically could be considered an assert(), since it's an invalid entry */ + RETURN_ERROR_IF(src==NULL, GENERIC, "invalid parameter : src==NULL, but srcSize>0"); + } + if (srcSize < minInputSize) { + if (srcSize > 0 && format != ZSTD_f_zstd1_magicless) { + /* when receiving less than @minInputSize bytes, + * control these bytes at least correspond to a supported magic number + * in order to error out early if they don't. + **/ + size_t const toCopy = MIN(4, srcSize); + unsigned char hbuf[4]; MEM_writeLE32(hbuf, ZSTD_MAGICNUMBER); + assert(src != NULL); + ZSTD_memcpy(hbuf, src, toCopy); + if ( MEM_readLE32(hbuf) != ZSTD_MAGICNUMBER ) { + /* not a zstd frame : let's check if it's a skippable frame */ + MEM_writeLE32(hbuf, ZSTD_MAGIC_SKIPPABLE_START); + ZSTD_memcpy(hbuf, src, toCopy); + if ((MEM_readLE32(hbuf) & ZSTD_MAGIC_SKIPPABLE_MASK) != ZSTD_MAGIC_SKIPPABLE_START) { + RETURN_ERROR(prefix_unknown, + "first bytes don't correspond to any supported magic number"); + } } } + return minInputSize; + } + ZSTD_memset(zfhPtr, 0, sizeof(*zfhPtr)); /* not strictly necessary, but static analyzers may not understand that zfhPtr will be read only if return value is zero, since they are 2 different signals */ if ( (format != ZSTD_f_zstd1_magicless) && (MEM_readLE32(src) != ZSTD_MAGICNUMBER) ) { if ((MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ if (srcSize < ZSTD_SKIPPABLEHEADERSIZE) return ZSTD_SKIPPABLEHEADERSIZE; /* magic number + frame length */ - memset(zfhPtr, 0, sizeof(*zfhPtr)); + ZSTD_memset(zfhPtr, 0, sizeof(*zfhPtr)); zfhPtr->frameContentSize = MEM_readLE32((const char *)src + ZSTD_FRAMEIDSIZE); zfhPtr->frameType = ZSTD_skippableFrame; return 0; @@ -359,7 +520,9 @@ size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, s } switch(dictIDSizeCode) { - default: assert(0); /* impossible */ + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; case 0 : break; case 1 : dictID = ip[pos]; pos++; break; case 2 : dictID = MEM_readLE16(ip+pos); pos+=2; break; @@ -367,7 +530,9 @@ size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, s } switch(fcsID) { - default: assert(0); /* impossible */ + default: + assert(0); /* impossible */ + ZSTD_FALLTHROUGH; case 0 : if (singleSegment) frameContentSize = ip[pos]; break; case 1 : frameContentSize = MEM_readLE16(ip+pos)+256; break; case 2 : frameContentSize = MEM_readLE32(ip+pos); break; @@ -396,7 +561,6 @@ size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src, size_t src return ZSTD_getFrameHeader_advanced(zfhPtr, src, srcSize, ZSTD_f_zstd1); } - /** ZSTD_getFrameContentSize() : * compatible with legacy mode * @return : decompressed size of the single frame pointed to be `src` if known, otherwise @@ -430,18 +594,52 @@ static size_t readSkippableFrameSize(void const* src, size_t srcSize) sizeU32 = MEM_readLE32((BYTE const*)src + ZSTD_FRAMEIDSIZE); RETURN_ERROR_IF((U32)(sizeU32 + ZSTD_SKIPPABLEHEADERSIZE) < sizeU32, frameParameter_unsupported, ""); - { - size_t const skippableSize = skippableHeaderSize + sizeU32; + { size_t const skippableSize = skippableHeaderSize + sizeU32; RETURN_ERROR_IF(skippableSize > srcSize, srcSize_wrong, ""); return skippableSize; } } +/*! ZSTD_readSkippableFrame() : + * Retrieves content of a skippable frame, and writes it to dst buffer. + * + * The parameter magicVariant will receive the magicVariant that was supplied when the frame was written, + * i.e. magicNumber - ZSTD_MAGIC_SKIPPABLE_START. This can be NULL if the caller is not interested + * in the magicVariant. + * + * Returns an error if destination buffer is not large enough, or if this is not a valid skippable frame. + * + * @return : number of bytes written or a ZSTD error. + */ +size_t ZSTD_readSkippableFrame(void* dst, size_t dstCapacity, + unsigned* magicVariant, /* optional, can be NULL */ + const void* src, size_t srcSize) +{ + RETURN_ERROR_IF(srcSize < ZSTD_SKIPPABLEHEADERSIZE, srcSize_wrong, ""); + + { U32 const magicNumber = MEM_readLE32(src); + size_t skippableFrameSize = readSkippableFrameSize(src, srcSize); + size_t skippableContentSize = skippableFrameSize - ZSTD_SKIPPABLEHEADERSIZE; + + /* check input validity */ + RETURN_ERROR_IF(!ZSTD_isSkippableFrame(src, srcSize), frameParameter_unsupported, ""); + RETURN_ERROR_IF(skippableFrameSize < ZSTD_SKIPPABLEHEADERSIZE || skippableFrameSize > srcSize, srcSize_wrong, ""); + RETURN_ERROR_IF(skippableContentSize > dstCapacity, dstSize_tooSmall, ""); + + /* deliver payload */ + if (skippableContentSize > 0 && dst != NULL) + ZSTD_memcpy(dst, (const BYTE *)src + ZSTD_SKIPPABLEHEADERSIZE, skippableContentSize); + if (magicVariant != NULL) + *magicVariant = magicNumber - ZSTD_MAGIC_SKIPPABLE_START; + return skippableContentSize; + } +} + /** ZSTD_findDecompressedSize() : - * compatible with legacy mode * `srcSize` must be the exact length of some number of ZSTD compressed and/or * skippable frames - * @return : decompressed size of the frames contained */ + * note: compatible with legacy mode + * @return : decompressed size of the frames contained */ unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize) { unsigned long long totalDstSize = 0; @@ -451,9 +649,7 @@ unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize) if ((magicNumber & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { size_t const skippableSize = readSkippableFrameSize(src, srcSize); - if (ZSTD_isError(skippableSize)) { - return ZSTD_CONTENTSIZE_ERROR; - } + if (ZSTD_isError(skippableSize)) return ZSTD_CONTENTSIZE_ERROR; assert(skippableSize <= srcSize); src = (const BYTE *)src + skippableSize; @@ -461,17 +657,17 @@ unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize) continue; } - { unsigned long long const ret = ZSTD_getFrameContentSize(src, srcSize); - if (ret >= ZSTD_CONTENTSIZE_ERROR) return ret; + { unsigned long long const fcs = ZSTD_getFrameContentSize(src, srcSize); + if (fcs >= ZSTD_CONTENTSIZE_ERROR) return fcs; - /* check for overflow */ - if (totalDstSize + ret < totalDstSize) return ZSTD_CONTENTSIZE_ERROR; - totalDstSize += ret; + if (totalDstSize + fcs < totalDstSize) + return ZSTD_CONTENTSIZE_ERROR; /* check for overflow */ + totalDstSize += fcs; } + /* skip to next frame */ { size_t const frameSrcSize = ZSTD_findFrameCompressedSize(src, srcSize); - if (ZSTD_isError(frameSrcSize)) { - return ZSTD_CONTENTSIZE_ERROR; - } + if (ZSTD_isError(frameSrcSize)) return ZSTD_CONTENTSIZE_ERROR; + assert(frameSrcSize <= srcSize); src = (const BYTE *)src + frameSrcSize; srcSize -= frameSrcSize; @@ -501,12 +697,19 @@ unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize) /** ZSTD_decodeFrameHeader() : * `headerSize` must be the size provided by ZSTD_frameHeaderSize(). + * If multiple DDict references are enabled, also will choose the correct DDict to use. * @return : 0 if success, or an error code, which can be tested using ZSTD_isError() */ static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t headerSize) { size_t const result = ZSTD_getFrameHeader_advanced(&(dctx->fParams), src, headerSize, dctx->format); if (ZSTD_isError(result)) return result; /* invalid header */ RETURN_ERROR_IF(result>0, srcSize_wrong, "headerSize too small"); + + /* Reference DDict requested by frame if dctx references multiple ddicts */ + if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts && dctx->ddictSet) { + ZSTD_DCtx_selectFrameDDict(dctx); + } + #ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION /* Skip the dictID check in fuzzing mode, because it makes the search * harder. @@ -514,7 +717,9 @@ static size_t ZSTD_decodeFrameHeader(ZSTD_DCtx* dctx, const void* src, size_t he RETURN_ERROR_IF(dctx->fParams.dictID && (dctx->dictID != dctx->fParams.dictID), dictionary_wrong, ""); #endif - if (dctx->fParams.checksumFlag) XXH64_reset(&dctx->xxhState, 0); + dctx->validateChecksum = (dctx->fParams.checksumFlag && !dctx->forceIgnoreChecksum) ? 1 : 0; + if (dctx->validateChecksum) XXH64_reset(&dctx->xxhState, 0); + dctx->processedCSize += headerSize; return 0; } @@ -526,17 +731,17 @@ static ZSTD_frameSizeInfo ZSTD_errorFrameSizeInfo(size_t ret) return frameSizeInfo; } -static ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize) +static ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize, ZSTD_format_e format) { ZSTD_frameSizeInfo frameSizeInfo; - memset(&frameSizeInfo, 0, sizeof(ZSTD_frameSizeInfo)); + ZSTD_memset(&frameSizeInfo, 0, sizeof(ZSTD_frameSizeInfo)); #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) - if (ZSTD_isLegacy(src, srcSize)) + if (format == ZSTD_f_zstd1 && ZSTD_isLegacy(src, srcSize)) return ZSTD_findFrameSizeInfoLegacy(src, srcSize); #endif - if ((srcSize >= ZSTD_SKIPPABLEHEADERSIZE) + if (format == ZSTD_f_zstd1 && (srcSize >= ZSTD_SKIPPABLEHEADERSIZE) && (MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { frameSizeInfo.compressedSize = readSkippableFrameSize(src, srcSize); assert(ZSTD_isError(frameSizeInfo.compressedSize) || @@ -550,7 +755,7 @@ static ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize ZSTD_frameHeader zfh; /* Extract Frame Header */ - { size_t const ret = ZSTD_getFrameHeader(&zfh, src, srcSize); + { size_t const ret = ZSTD_getFrameHeader_advanced(&zfh, src, srcSize, format); if (ZSTD_isError(ret)) return ZSTD_errorFrameSizeInfo(ret); if (ret > 0) @@ -567,11 +772,11 @@ static ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize if (ZSTD_isError(cBlockSize)) return ZSTD_errorFrameSizeInfo(cBlockSize); - if (ZSTDInternalConstants::ZSTD_blockHeaderSize + cBlockSize > remainingSize) + if (ZSTD_blockHeaderSize + cBlockSize > remainingSize) return ZSTD_errorFrameSizeInfo(ERROR(srcSize_wrong)); - ip += ZSTDInternalConstants::ZSTD_blockHeaderSize + cBlockSize; - remainingSize -= ZSTDInternalConstants::ZSTD_blockHeaderSize + cBlockSize; + ip += ZSTD_blockHeaderSize + cBlockSize; + remainingSize -= ZSTD_blockHeaderSize + cBlockSize; nbBlocks++; if (blockProperties.lastBlock) break; @@ -584,23 +789,26 @@ static ZSTD_frameSizeInfo ZSTD_findFrameSizeInfo(const void* src, size_t srcSize ip += 4; } - frameSizeInfo.compressedSize = ip - ipstart; + frameSizeInfo.nbBlocks = nbBlocks; + frameSizeInfo.compressedSize = (size_t)(ip - ipstart); frameSizeInfo.decompressedBound = (zfh.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN) ? zfh.frameContentSize - : nbBlocks * zfh.blockSizeMax; + : (unsigned long long)nbBlocks * zfh.blockSizeMax; return frameSizeInfo; } } +static size_t ZSTD_findFrameCompressedSize_advanced(const void *src, size_t srcSize, ZSTD_format_e format) { + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize, format); + return frameSizeInfo.compressedSize; +} + /** ZSTD_findFrameCompressedSize() : - * compatible with legacy mode - * `src` must point to the start of a ZSTD frame, ZSTD legacy frame, or skippable frame - * `srcSize` must be at least as large as the frame contained - * @return : the compressed size of the frame starting at `src` */ + * See docs in zstd.h + * Note: compatible with legacy mode */ size_t ZSTD_findFrameCompressedSize(const void *src, size_t srcSize) { - ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize); - return frameSizeInfo.compressedSize; + return ZSTD_findFrameCompressedSize_advanced(src, srcSize, ZSTD_f_zstd1); } /** ZSTD_decompressBound() : @@ -614,7 +822,7 @@ unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize) unsigned long long bound = 0; /* Iterate over each frame */ while (srcSize > 0) { - ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize); + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize, ZSTD_f_zstd1); size_t const compressedSize = frameSizeInfo.compressedSize; unsigned long long const decompressedBound = frameSizeInfo.decompressedBound; if (ZSTD_isError(compressedSize) || decompressedBound == ZSTD_CONTENTSIZE_ERROR) @@ -627,6 +835,48 @@ unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize) return bound; } +size_t ZSTD_decompressionMargin(void const* src, size_t srcSize) +{ + size_t margin = 0; + unsigned maxBlockSize = 0; + + /* Iterate over each frame */ + while (srcSize > 0) { + ZSTD_frameSizeInfo const frameSizeInfo = ZSTD_findFrameSizeInfo(src, srcSize, ZSTD_f_zstd1); + size_t const compressedSize = frameSizeInfo.compressedSize; + unsigned long long const decompressedBound = frameSizeInfo.decompressedBound; + ZSTD_frameHeader zfh; + + FORWARD_IF_ERROR(ZSTD_getFrameHeader(&zfh, src, srcSize), ""); + if (ZSTD_isError(compressedSize) || decompressedBound == ZSTD_CONTENTSIZE_ERROR) + return ERROR(corruption_detected); + + if (zfh.frameType == ZSTD_frame) { + /* Add the frame header to our margin */ + margin += zfh.headerSize; + /* Add the checksum to our margin */ + margin += zfh.checksumFlag ? 4 : 0; + /* Add 3 bytes per block */ + margin += 3 * frameSizeInfo.nbBlocks; + + /* Compute the max block size */ + maxBlockSize = MAX(maxBlockSize, zfh.blockSizeMax); + } else { + assert(zfh.frameType == ZSTD_skippableFrame); + /* Add the entire skippable frame size to our margin. */ + margin += compressedSize; + } + + assert(srcSize >= compressedSize); + src = (const BYTE*)src + compressedSize; + srcSize -= compressedSize; + } + + /* Add the max block size back to the margin. */ + margin += maxBlockSize; + + return margin; +} /*-************************************************************* * Frame decoding @@ -637,7 +887,7 @@ unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize) size_t ZSTD_insertBlock(ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize) { DEBUGLOG(5, "ZSTD_insertBlock: %u bytes", (unsigned)blockSize); - ZSTD_checkContinuity(dctx, blockStart); + ZSTD_checkContinuity(dctx, blockStart, blockSize); dctx->previousDstEnd = (const char*)blockStart + blockSize; return blockSize; } @@ -647,12 +897,12 @@ static size_t ZSTD_copyRawBlock(void* dst, size_t dstCapacity, const void* src, size_t srcSize) { DEBUGLOG(5, "ZSTD_copyRawBlock"); + RETURN_ERROR_IF(srcSize > dstCapacity, dstSize_tooSmall, ""); if (dst == NULL) { if (srcSize == 0) return 0; RETURN_ERROR(dstBuffer_null, ""); } - RETURN_ERROR_IF(srcSize > dstCapacity, dstSize_tooSmall, ""); - memcpy(dst, src, srcSize); + ZSTD_memmove(dst, src, srcSize); return srcSize; } @@ -660,15 +910,41 @@ static size_t ZSTD_setRleBlock(void* dst, size_t dstCapacity, BYTE b, size_t regenSize) { + RETURN_ERROR_IF(regenSize > dstCapacity, dstSize_tooSmall, ""); if (dst == NULL) { if (regenSize == 0) return 0; RETURN_ERROR(dstBuffer_null, ""); } - RETURN_ERROR_IF(regenSize > dstCapacity, dstSize_tooSmall, ""); - memset(dst, b, regenSize); + ZSTD_memset(dst, b, regenSize); return regenSize; } +static void ZSTD_DCtx_trace_end(ZSTD_DCtx const* dctx, U64 uncompressedSize, U64 compressedSize, unsigned streaming) +{ +#if ZSTD_TRACE + if (dctx->traceCtx && ZSTD_trace_decompress_end != NULL) { + ZSTD_Trace trace; + ZSTD_memset(&trace, 0, sizeof(trace)); + trace.version = ZSTD_VERSION_NUMBER; + trace.streaming = streaming; + if (dctx->ddict) { + trace.dictionaryID = ZSTD_getDictID_fromDDict(dctx->ddict); + trace.dictionarySize = ZSTD_DDict_dictSize(dctx->ddict); + trace.dictionaryIsCold = dctx->ddictIsCold; + } + trace.uncompressedSize = (size_t)uncompressedSize; + trace.compressedSize = (size_t)compressedSize; + trace.dctx = dctx; + ZSTD_trace_decompress_end(dctx->traceCtx, &trace); + } +#else + (void)dctx; + (void)uncompressedSize; + (void)compressedSize; + (void)streaming; +#endif +} + /*! ZSTD_decompressFrame() : * @dctx must be properly initialized @@ -678,8 +954,9 @@ static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void** srcPtr, size_t *srcSizePtr) { - const BYTE* ip = (const BYTE*)(*srcPtr); - BYTE* const ostart = (BYTE* const)dst; + const BYTE* const istart = (const BYTE*)(*srcPtr); + const BYTE* ip = istart; + BYTE* const ostart = (BYTE*)dst; BYTE* const oend = dstCapacity != 0 ? ostart + dstCapacity : ostart; BYTE* op = ostart; size_t remainingSrcSize = *srcSizePtr; @@ -688,51 +965,77 @@ static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx, /* check */ RETURN_ERROR_IF( - remainingSrcSize < ZSTD_FRAMEHEADERSIZE_MIN(dctx->format)+ZSTDInternalConstants::ZSTD_blockHeaderSize, + remainingSrcSize < ZSTD_FRAMEHEADERSIZE_MIN(dctx->format)+ZSTD_blockHeaderSize, srcSize_wrong, ""); /* Frame Header */ { size_t const frameHeaderSize = ZSTD_frameHeaderSize_internal( ip, ZSTD_FRAMEHEADERSIZE_PREFIX(dctx->format), dctx->format); if (ZSTD_isError(frameHeaderSize)) return frameHeaderSize; - RETURN_ERROR_IF(remainingSrcSize < frameHeaderSize+ZSTDInternalConstants::ZSTD_blockHeaderSize, + RETURN_ERROR_IF(remainingSrcSize < frameHeaderSize+ZSTD_blockHeaderSize, srcSize_wrong, ""); FORWARD_IF_ERROR( ZSTD_decodeFrameHeader(dctx, ip, frameHeaderSize) , ""); ip += frameHeaderSize; remainingSrcSize -= frameHeaderSize; } + /* Shrink the blockSizeMax if enabled */ + if (dctx->maxBlockSizeParam != 0) + dctx->fParams.blockSizeMax = MIN(dctx->fParams.blockSizeMax, (unsigned)dctx->maxBlockSizeParam); + /* Loop on each block */ while (1) { + BYTE* oBlockEnd = oend; size_t decodedSize; blockProperties_t blockProperties; size_t const cBlockSize = ZSTD_getcBlockSize(ip, remainingSrcSize, &blockProperties); if (ZSTD_isError(cBlockSize)) return cBlockSize; - ip += ZSTDInternalConstants::ZSTD_blockHeaderSize; - remainingSrcSize -= ZSTDInternalConstants::ZSTD_blockHeaderSize; + ip += ZSTD_blockHeaderSize; + remainingSrcSize -= ZSTD_blockHeaderSize; RETURN_ERROR_IF(cBlockSize > remainingSrcSize, srcSize_wrong, ""); + if (ip >= op && ip < oBlockEnd) { + /* We are decompressing in-place. Limit the output pointer so that we + * don't overwrite the block that we are currently reading. This will + * fail decompression if the input & output pointers aren't spaced + * far enough apart. + * + * This is important to set, even when the pointers are far enough + * apart, because ZSTD_decompressBlock_internal() can decide to store + * literals in the output buffer, after the block it is decompressing. + * Since we don't want anything to overwrite our input, we have to tell + * ZSTD_decompressBlock_internal to never write past ip. + * + * See ZSTD_allocateLiteralsBuffer() for reference. + */ + oBlockEnd = op + (ip - op); + } + switch(blockProperties.blockType) { case bt_compressed: - decodedSize = ZSTD_decompressBlock_internal(dctx, op, oend-op, ip, cBlockSize, /* frame */ 1); + assert(dctx->isFrameDecompression == 1); + decodedSize = ZSTD_decompressBlock_internal(dctx, op, (size_t)(oBlockEnd-op), ip, cBlockSize, not_streaming); break; case bt_raw : - decodedSize = ZSTD_copyRawBlock(op, oend-op, ip, cBlockSize); + /* Use oend instead of oBlockEnd because this function is safe to overlap. It uses memmove. */ + decodedSize = ZSTD_copyRawBlock(op, (size_t)(oend-op), ip, cBlockSize); break; case bt_rle : - decodedSize = ZSTD_setRleBlock(op, oend-op, *ip, blockProperties.origSize); + decodedSize = ZSTD_setRleBlock(op, (size_t)(oBlockEnd-op), *ip, blockProperties.origSize); break; case bt_reserved : default: RETURN_ERROR(corruption_detected, "invalid block type"); } - - if (ZSTD_isError(decodedSize)) return decodedSize; - if (dctx->fParams.checksumFlag) + FORWARD_IF_ERROR(decodedSize, "Block decompression failure"); + DEBUGLOG(5, "Decompressed block of dSize = %u", (unsigned)decodedSize); + if (dctx->validateChecksum) { XXH64_update(&dctx->xxhState, op, decodedSize); - if (decodedSize != 0) + } + if (decodedSize) /* support dst = NULL,0 */ { op += decodedSize; + } assert(ip != NULL); ip += cBlockSize; remainingSrcSize -= cBlockSize; @@ -744,22 +1047,27 @@ static size_t ZSTD_decompressFrame(ZSTD_DCtx* dctx, corruption_detected, ""); } if (dctx->fParams.checksumFlag) { /* Frame content checksum verification */ - U32 const checkCalc = (U32)XXH64_digest(&dctx->xxhState); - U32 checkRead; RETURN_ERROR_IF(remainingSrcSize<4, checksum_wrong, ""); - checkRead = MEM_readLE32(ip); - RETURN_ERROR_IF(checkRead != checkCalc, checksum_wrong, ""); + if (!dctx->forceIgnoreChecksum) { + U32 const checkCalc = (U32)XXH64_digest(&dctx->xxhState); + U32 checkRead; + checkRead = MEM_readLE32(ip); + RETURN_ERROR_IF(checkRead != checkCalc, checksum_wrong, ""); + } ip += 4; remainingSrcSize -= 4; } - + ZSTD_DCtx_trace_end(dctx, (U64)(op-ostart), (U64)(ip-istart), /* streaming */ 0); /* Allow caller to get size read */ + DEBUGLOG(4, "ZSTD_decompressFrame: decompressed frame of size %zi, consuming %zi bytes of input", op-ostart, ip - (const BYTE*)*srcPtr); *srcPtr = ip; *srcSizePtr = remainingSrcSize; - return op-ostart; + return (size_t)(op-ostart); } -static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, +static +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize, const void* dict, size_t dictSize, @@ -779,7 +1087,7 @@ static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, while (srcSize >= ZSTD_startingInputLength(dctx->format)) { #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT >= 1) - if (ZSTD_isLegacy(src, srcSize)) { + if (dctx->format == ZSTD_f_zstd1 && ZSTD_isLegacy(src, srcSize)) { size_t decodedSize; size_t const frameSize = ZSTD_findFrameCompressedSizeLegacy(src, srcSize); if (ZSTD_isError(frameSize)) return frameSize; @@ -789,7 +1097,16 @@ static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, decodedSize = ZSTD_decompressLegacy(dst, dstCapacity, src, frameSize, dict, dictSize); if (ZSTD_isError(decodedSize)) return decodedSize; - assert(decodedSize <=- dstCapacity); + { + unsigned long long const expectedSize = ZSTD_getFrameContentSize(src, srcSize); + RETURN_ERROR_IF(expectedSize == ZSTD_CONTENTSIZE_ERROR, corruption_detected, "Corrupted frame header!"); + if (expectedSize != ZSTD_CONTENTSIZE_UNKNOWN) { + RETURN_ERROR_IF(expectedSize != decodedSize, corruption_detected, + "Frame header size does not match decoded size!"); + } + } + + assert(decodedSize <= dstCapacity); dst = (BYTE*)dst + decodedSize; dstCapacity -= decodedSize; @@ -800,17 +1117,18 @@ static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, } #endif - { U32 const magicNumber = MEM_readLE32(src); - DEBUGLOG(4, "reading magic number %08X (expecting %08X)", - (unsigned)magicNumber, ZSTD_MAGICNUMBER); + if (dctx->format == ZSTD_f_zstd1 && srcSize >= 4) { + U32 const magicNumber = MEM_readLE32(src); + DEBUGLOG(5, "reading magic number %08X", (unsigned)magicNumber); if ((magicNumber & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { + /* skippable frame detected : skip it */ size_t const skippableSize = readSkippableFrameSize(src, srcSize); - FORWARD_IF_ERROR(skippableSize, "readSkippableFrameSize failed"); + FORWARD_IF_ERROR(skippableSize, "invalid skippable frame"); assert(skippableSize <= srcSize); src = (const BYTE *)src + skippableSize; srcSize -= skippableSize; - continue; + continue; /* check next frame */ } } if (ddict) { @@ -821,7 +1139,7 @@ static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, * use this in all cases but ddict */ FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize), ""); } - ZSTD_checkContinuity(dctx, dst); + ZSTD_checkContinuity(dctx, dst, dstCapacity); { const size_t res = ZSTD_decompressFrame(dctx, dst, dstCapacity, &src, &srcSize); @@ -829,15 +1147,13 @@ static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, (ZSTD_getErrorCode(res) == ZSTD_error_prefix_unknown) && (moreThan1Frame==1), srcSize_wrong, - "at least one frame successfully completed, but following " - "bytes are garbage: it's more likely to be a srcSize error, " - "specifying more bytes than compressed size of frame(s). This " - "error message replaces ERROR(prefix_unknown), which would be " - "confusing, as the first header is actually correct. Note that " - "one could be unlucky, it might be a corruption error instead, " - "happening right at the place where we expect zstd magic " - "bytes. But this is _much_ less likely than a srcSize field " - "error."); + "At least one frame successfully completed, " + "but following bytes are garbage: " + "it's more likely to be a srcSize error, " + "specifying more input bytes than size of frame(s). " + "Note: one could be unlucky, it might be a corruption error instead, " + "happening right at the place where we expect zstd magic bytes. " + "But this is _much_ less likely than a srcSize field error."); if (ZSTD_isError(res)) return res; assert(res <= dstCapacity); if (res != 0) @@ -849,7 +1165,7 @@ static size_t ZSTD_decompressMultiFrame(ZSTD_DCtx* dctx, RETURN_ERROR_IF(srcSize, srcSize_wrong, "input not entirely consumed"); - return (BYTE*)dst - (BYTE*)dststart; + return (size_t)((BYTE*)dst - (BYTE*)dststart); } size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx, @@ -866,7 +1182,7 @@ static ZSTD_DDict const* ZSTD_getDDict(ZSTD_DCtx* dctx) switch (dctx->dictUses) { default: assert(0 /* Impossible */); - /* fall-through */ + ZSTD_FALLTHROUGH; case ZSTD_dont_use: ZSTD_clearDict(dctx); return NULL; @@ -888,7 +1204,7 @@ size_t ZSTD_decompress(void* dst, size_t dstCapacity, const void* src, size_t sr { #if defined(ZSTD_HEAPMODE) && (ZSTD_HEAPMODE>=1) size_t regenSize; - ZSTD_DCtx* const dctx = ZSTD_createDCtx(); + ZSTD_DCtx* const dctx = ZSTD_createDCtx_internal(ZSTD_defaultCMem); RETURN_ERROR_IF(dctx==NULL, memory_allocation, "NULL pointer!"); regenSize = ZSTD_decompressDCtx(dctx, dst, dstCapacity, src, srcSize); ZSTD_freeDCtx(dctx); @@ -908,8 +1224,8 @@ size_t ZSTD_decompress(void* dst, size_t dstCapacity, const void* src, size_t sr size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx) { return dctx->expected; } /** - * Similar to ZSTD_nextSrcSizeToDecompress(), but when when a block input can be streamed, - * we allow taking a partial block as the input. Currently only raw uncompressed blocks can + * Similar to ZSTD_nextSrcSizeToDecompress(), but when a block input can be streamed, we + * allow taking a partial block as the input. Currently only raw uncompressed blocks can * be streamed. * * For blocks that can be streamed, this allows us to reduce the latency until we produce @@ -922,7 +1238,7 @@ static size_t ZSTD_nextSrcSizeToDecompressWithInputSize(ZSTD_DCtx* dctx, size_t return dctx->expected; if (dctx->bType != bt_raw) return dctx->expected; - return MIN(MAX(inputSize, 1), dctx->expected); + return BOUNDED(1, inputSize, dctx->expected); } ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) { @@ -930,7 +1246,9 @@ ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) { { default: /* should not happen */ assert(0); + ZSTD_FALLTHROUGH; case ZSTDds_getFrameHeaderSize: + ZSTD_FALLTHROUGH; case ZSTDds_decodeFrameHeader: return ZSTDnit_frameHeader; case ZSTDds_decodeBlockHeader: @@ -942,6 +1260,7 @@ ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx) { case ZSTDds_checkChecksum: return ZSTDnit_checksum; case ZSTDds_decodeSkippableHeader: + ZSTD_FALLTHROUGH; case ZSTDds_skipFrame: return ZSTDnit_skippableFrame; } @@ -958,7 +1277,9 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c DEBUGLOG(5, "ZSTD_decompressContinue (srcSize:%u)", (unsigned)srcSize); /* Sanity check */ RETURN_ERROR_IF(srcSize != ZSTD_nextSrcSizeToDecompressWithInputSize(dctx, srcSize), srcSize_wrong, "not allowed"); - if (dstCapacity) ZSTD_checkContinuity(dctx, dst); + ZSTD_checkContinuity(dctx, dst, dstCapacity); + + dctx->processedCSize += srcSize; switch (dctx->stage) { @@ -967,29 +1288,29 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c if (dctx->format == ZSTD_f_zstd1) { /* allows header */ assert(srcSize >= ZSTD_FRAMEIDSIZE); /* to read skippable magic number */ if ((MEM_readLE32(src) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ - memcpy(dctx->headerBuffer, src, srcSize); + ZSTD_memcpy(dctx->headerBuffer, src, srcSize); dctx->expected = ZSTD_SKIPPABLEHEADERSIZE - srcSize; /* remaining to load to get full skippable frame header */ dctx->stage = ZSTDds_decodeSkippableHeader; return 0; } } dctx->headerSize = ZSTD_frameHeaderSize_internal(src, srcSize, dctx->format); if (ZSTD_isError(dctx->headerSize)) return dctx->headerSize; - memcpy(dctx->headerBuffer, src, srcSize); + ZSTD_memcpy(dctx->headerBuffer, src, srcSize); dctx->expected = dctx->headerSize - srcSize; dctx->stage = ZSTDds_decodeFrameHeader; return 0; case ZSTDds_decodeFrameHeader: assert(src != NULL); - memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize); + ZSTD_memcpy(dctx->headerBuffer + (dctx->headerSize - srcSize), src, srcSize); FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(dctx, dctx->headerBuffer, dctx->headerSize), ""); - dctx->expected = ZSTDInternalConstants::ZSTD_blockHeaderSize; + dctx->expected = ZSTD_blockHeaderSize; dctx->stage = ZSTDds_decodeBlockHeader; return 0; case ZSTDds_decodeBlockHeader: { blockProperties_t bp; - size_t const cBlockSize = ZSTD_getcBlockSize(src, ZSTDInternalConstants::ZSTD_blockHeaderSize, &bp); + size_t const cBlockSize = ZSTD_getcBlockSize(src, ZSTD_blockHeaderSize, &bp); if (ZSTD_isError(cBlockSize)) return cBlockSize; RETURN_ERROR_IF(cBlockSize > dctx->fParams.blockSizeMax, corruption_detected, "Block Size Exceeds Maximum"); dctx->expected = cBlockSize; @@ -1009,7 +1330,7 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c dctx->stage = ZSTDds_getFrameHeaderSize; } } else { - dctx->expected = ZSTDInternalConstants::ZSTD_blockHeaderSize; /* jump to next header */ + dctx->expected = ZSTD_blockHeaderSize; /* jump to next header */ dctx->stage = ZSTDds_decodeBlockHeader; } return 0; @@ -1023,7 +1344,8 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c { case bt_compressed: DEBUGLOG(5, "ZSTD_decompressContinue: case bt_compressed"); - rSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, /* frame */ 1); + assert(dctx->isFrameDecompression == 1); + rSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, is_streaming); dctx->expected = 0; /* Streaming not supported */ break; case bt_raw : @@ -1045,7 +1367,7 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c RETURN_ERROR_IF(rSize > dctx->fParams.blockSizeMax, corruption_detected, "Decompressed Block Size Exceeds Maximum"); DEBUGLOG(5, "ZSTD_decompressContinue: decoded size from block : %u", (unsigned)rSize); dctx->decodedSize += rSize; - if (dctx->fParams.checksumFlag) XXH64_update(&dctx->xxhState, dst, rSize); + if (dctx->validateChecksum) XXH64_update(&dctx->xxhState, dst, rSize); dctx->previousDstEnd = (char*)dst + rSize; /* Stay on the same stage until we are finished streaming the block. */ @@ -1063,22 +1385,27 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c dctx->expected = 4; dctx->stage = ZSTDds_checkChecksum; } else { + ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); dctx->expected = 0; /* ends here */ dctx->stage = ZSTDds_getFrameHeaderSize; } } else { dctx->stage = ZSTDds_decodeBlockHeader; - dctx->expected = ZSTDInternalConstants::ZSTD_blockHeaderSize; + dctx->expected = ZSTD_blockHeaderSize; } return rSize; } case ZSTDds_checkChecksum: assert(srcSize == 4); /* guaranteed by dctx->expected */ - { U32 const h32 = (U32)XXH64_digest(&dctx->xxhState); - U32 const check32 = MEM_readLE32(src); - DEBUGLOG(4, "ZSTD_decompressContinue: checksum : calculated %08X :: %08X read", (unsigned)h32, (unsigned)check32); - RETURN_ERROR_IF(check32 != h32, checksum_wrong, ""); + { + if (dctx->validateChecksum) { + U32 const h32 = (U32)XXH64_digest(&dctx->xxhState); + U32 const check32 = MEM_readLE32(src); + DEBUGLOG(4, "ZSTD_decompressContinue: checksum : calculated %08X :: %08X read", (unsigned)h32, (unsigned)check32); + RETURN_ERROR_IF(check32 != h32, checksum_wrong, ""); + } + ZSTD_DCtx_trace_end(dctx, dctx->decodedSize, dctx->processedCSize, /* streaming */ 1); dctx->expected = 0; dctx->stage = ZSTDds_getFrameHeaderSize; return 0; @@ -1087,7 +1414,8 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c case ZSTDds_decodeSkippableHeader: assert(src != NULL); assert(srcSize <= ZSTD_SKIPPABLEHEADERSIZE); - memcpy(dctx->headerBuffer + (ZSTD_SKIPPABLEHEADERSIZE - srcSize), src, srcSize); /* complete skippable header */ + assert(dctx->format != ZSTD_f_zstd1_magicless); + ZSTD_memcpy(dctx->headerBuffer + (ZSTD_SKIPPABLEHEADERSIZE - srcSize), src, srcSize); /* complete skippable header */ dctx->expected = MEM_readLE32(dctx->headerBuffer + ZSTD_FRAMEIDSIZE); /* note : dctx->expected can grow seriously large, beyond local buffer size */ dctx->stage = ZSTDds_skipFrame; return 0; @@ -1099,7 +1427,7 @@ size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, c default: assert(0); /* impossible */ - RETURN_ERROR(GENERIC, "impossible to reach"); /* some compiler require default to do something */ + RETURN_ERROR(GENERIC, "impossible to reach"); /* some compilers require default to do something */ } } @@ -1140,11 +1468,11 @@ ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, /* in minimal huffman, we always use X1 variants */ size_t const hSize = HUF_readDTableX1_wksp(entropy->hufTable, dictPtr, dictEnd - dictPtr, - workspace, workspaceSize); + workspace, workspaceSize, /* flags */ 0); #else size_t const hSize = HUF_readDTableX2_wksp(entropy->hufTable, - dictPtr, dictEnd - dictPtr, - workspace, workspaceSize); + dictPtr, (size_t)(dictEnd - dictPtr), + workspace, workspaceSize, /* flags */ 0); #endif RETURN_ERROR_IF(HUF_isError(hSize), dictionary_corrupted, ""); dictPtr += hSize; @@ -1152,40 +1480,46 @@ ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, { short offcodeNCount[MaxOff+1]; unsigned offcodeMaxValue = MaxOff, offcodeLog; - size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, dictEnd-dictPtr); + size_t const offcodeHeaderSize = FSE_readNCount(offcodeNCount, &offcodeMaxValue, &offcodeLog, dictPtr, (size_t)(dictEnd-dictPtr)); RETURN_ERROR_IF(FSE_isError(offcodeHeaderSize), dictionary_corrupted, ""); RETURN_ERROR_IF(offcodeMaxValue > MaxOff, dictionary_corrupted, ""); RETURN_ERROR_IF(offcodeLog > OffFSELog, dictionary_corrupted, ""); ZSTD_buildFSETable( entropy->OFTable, offcodeNCount, offcodeMaxValue, - ZSTDConstants::OF_base, ZSTDConstants::OF_bits, - offcodeLog); + OF_base, OF_bits, + offcodeLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */0); dictPtr += offcodeHeaderSize; } { short matchlengthNCount[MaxML+1]; unsigned matchlengthMaxValue = MaxML, matchlengthLog; - size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, dictEnd-dictPtr); + size_t const matchlengthHeaderSize = FSE_readNCount(matchlengthNCount, &matchlengthMaxValue, &matchlengthLog, dictPtr, (size_t)(dictEnd-dictPtr)); RETURN_ERROR_IF(FSE_isError(matchlengthHeaderSize), dictionary_corrupted, ""); RETURN_ERROR_IF(matchlengthMaxValue > MaxML, dictionary_corrupted, ""); RETURN_ERROR_IF(matchlengthLog > MLFSELog, dictionary_corrupted, ""); ZSTD_buildFSETable( entropy->MLTable, matchlengthNCount, matchlengthMaxValue, - ZSTDConstants::ML_base, ZSTDInternalConstants::ML_bits, - matchlengthLog); + ML_base, ML_bits, + matchlengthLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */ 0); dictPtr += matchlengthHeaderSize; } { short litlengthNCount[MaxLL+1]; unsigned litlengthMaxValue = MaxLL, litlengthLog; - size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, dictEnd-dictPtr); + size_t const litlengthHeaderSize = FSE_readNCount(litlengthNCount, &litlengthMaxValue, &litlengthLog, dictPtr, (size_t)(dictEnd-dictPtr)); RETURN_ERROR_IF(FSE_isError(litlengthHeaderSize), dictionary_corrupted, ""); RETURN_ERROR_IF(litlengthMaxValue > MaxLL, dictionary_corrupted, ""); RETURN_ERROR_IF(litlengthLog > LLFSELog, dictionary_corrupted, ""); ZSTD_buildFSETable( entropy->LLTable, litlengthNCount, litlengthMaxValue, - ZSTDConstants::LL_base, ZSTDInternalConstants::LL_bits, - litlengthLog); + LL_base, LL_bits, + litlengthLog, + entropy->workspace, sizeof(entropy->workspace), + /* bmi2 */ 0); dictPtr += litlengthHeaderSize; } @@ -1199,7 +1533,7 @@ ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, entropy->rep[i] = rep; } } - return dictPtr - (const BYTE*)dict; + return (size_t)(dictPtr - (const BYTE*)dict); } static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize) @@ -1223,24 +1557,27 @@ static size_t ZSTD_decompress_insertDictionary(ZSTD_DCtx* dctx, const void* dict return ZSTD_refDictContent(dctx, dict, dictSize); } -static const U32 repStartValue[ZSTD_REP_NUM] = { 1, 4, 8 }; - size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx) { assert(dctx != NULL); +#if ZSTD_TRACE + dctx->traceCtx = (ZSTD_trace_decompress_begin != NULL) ? ZSTD_trace_decompress_begin(dctx) : 0; +#endif dctx->expected = ZSTD_startingInputLength(dctx->format); /* dctx->format must be properly set */ dctx->stage = ZSTDds_getFrameHeaderSize; + dctx->processedCSize = 0; dctx->decodedSize = 0; dctx->previousDstEnd = NULL; dctx->prefixStart = NULL; dctx->virtualStart = NULL; dctx->dictEnd = NULL; - dctx->entropy.hufTable[0] = (HUF_DTable)((HufLog)*0x1000001); /* cover both little and big endian */ + dctx->entropy.hufTable[0] = (HUF_DTable)((ZSTD_HUFFDTABLE_CAPACITY_LOG)*0x1000001); /* cover both little and big endian */ dctx->litEntropy = dctx->fseEntropy = 0; dctx->dictID = 0; dctx->bType = bt_reserved; + dctx->isFrameDecompression = 1; ZSTD_STATIC_ASSERT(sizeof(dctx->entropy.rep) == sizeof(repStartValue)); - memcpy(dctx->entropy.rep, repStartValue, sizeof(repStartValue)); /* initial repcodes */ + ZSTD_memcpy(dctx->entropy.rep, repStartValue, sizeof(repStartValue)); /* initial repcodes */ dctx->LLTptr = dctx->entropy.LLTable; dctx->MLTptr = dctx->entropy.MLTable; dctx->OFTptr = dctx->entropy.OFTable; @@ -1297,7 +1634,7 @@ unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize) * This could for one of the following reasons : * - The frame does not require a dictionary (most common case). * - The frame was built with dictID intentionally removed. - * Needed dictionary is a hidden information. + * Needed dictionary is a hidden piece of information. * Note : this use case also happens when using a non-conformant dictionary. * - `srcSize` is too small, and as a result, frame header could not be decoded. * Note : possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`. @@ -1306,7 +1643,7 @@ unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize) * ZSTD_getFrameHeader(), which will provide a more precise error code. */ unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize) { - ZSTD_frameHeader zfp = { 0, 0, 0, ZSTD_frame, 0, 0, 0 }; + ZSTD_frameHeader zfp = { 0, 0, 0, ZSTD_frame, 0, 0, 0, 0, 0 }; size_t const hError = ZSTD_getFrameHeader(&zfp, src, srcSize); if (ZSTD_isError(hError)) return 0; return zfp.dictID; @@ -1335,7 +1672,7 @@ size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx, ZSTD_DStream* ZSTD_createDStream(void) { DEBUGLOG(3, "ZSTD_createDStream"); - return ZSTD_createDStream_advanced(ZSTDInternalConstants::ZSTD_defaultCMem); + return ZSTD_createDCtx_internal(ZSTD_defaultCMem); } ZSTD_DStream* ZSTD_initStaticDStream(void *workspace, size_t workspaceSize) @@ -1345,7 +1682,7 @@ ZSTD_DStream* ZSTD_initStaticDStream(void *workspace, size_t workspaceSize) ZSTD_DStream* ZSTD_createDStream_advanced(ZSTD_customMem customMem) { - return ZSTD_createDCtx_advanced(customMem); + return ZSTD_createDCtx_internal(customMem); } size_t ZSTD_freeDStream(ZSTD_DStream* zds) @@ -1356,7 +1693,7 @@ size_t ZSTD_freeDStream(ZSTD_DStream* zds) /* *** Initialization *** */ -size_t ZSTD_DStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX + ZSTDInternalConstants::ZSTD_blockHeaderSize; } +size_t ZSTD_DStreamInSize(void) { return ZSTD_BLOCKSIZE_MAX + ZSTD_blockHeaderSize; } size_t ZSTD_DStreamOutSize(void) { return ZSTD_BLOCKSIZE_MAX; } size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, @@ -1413,7 +1750,9 @@ size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t di size_t ZSTD_initDStream(ZSTD_DStream* zds) { DEBUGLOG(4, "ZSTD_initDStream"); - return ZSTD_initDStream_usingDDict(zds, NULL); + FORWARD_IF_ERROR(ZSTD_DCtx_reset(zds, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_DCtx_refDDict(zds, NULL), ""); + return ZSTD_startingInputLength(zds->format); } /* ZSTD_initDStream_usingDDict() : @@ -1421,6 +1760,7 @@ size_t ZSTD_initDStream(ZSTD_DStream* zds) * this function cannot fail */ size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict* ddict) { + DEBUGLOG(4, "ZSTD_initDStream_usingDDict"); FORWARD_IF_ERROR( ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only) , ""); FORWARD_IF_ERROR( ZSTD_DCtx_refDDict(dctx, ddict) , ""); return ZSTD_startingInputLength(dctx->format); @@ -1431,6 +1771,7 @@ size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* dctx, const ZSTD_DDict* ddict) * this function cannot fail */ size_t ZSTD_resetDStream(ZSTD_DStream* dctx) { + DEBUGLOG(4, "ZSTD_resetDStream"); FORWARD_IF_ERROR(ZSTD_DCtx_reset(dctx, ZSTD_reset_session_only), ""); return ZSTD_startingInputLength(dctx->format); } @@ -1443,6 +1784,16 @@ size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict) if (ddict) { dctx->ddict = ddict; dctx->dictUses = ZSTD_use_indefinitely; + if (dctx->refMultipleDDicts == ZSTD_rmd_refMultipleDDicts) { + if (dctx->ddictSet == NULL) { + dctx->ddictSet = ZSTD_createDDictHashSet(dctx->customMem); + if (!dctx->ddictSet) { + RETURN_ERROR(memory_allocation, "Failed to allocate memory for hash set!"); + } + } + assert(!dctx->staticSize); /* Impossible: ddictSet cannot have been allocated if static dctx */ + FORWARD_IF_ERROR(ZSTD_DDictHashSet_addDDict(dctx->ddictSet, ddict, dctx->customMem), ""); + } } return 0; } @@ -1464,7 +1815,7 @@ size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize) size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format) { - return ZSTD_DCtx_setParameter(dctx, ZSTD_d_format, format); + return ZSTD_DCtx_setParameter(dctx, ZSTD_d_format, (int)format); } ZSTD_bounds ZSTD_dParam_getBounds(ZSTD_dParameter dParam) @@ -1481,9 +1832,26 @@ ZSTD_bounds ZSTD_dParam_getBounds(ZSTD_dParameter dParam) ZSTD_STATIC_ASSERT(ZSTD_f_zstd1 < ZSTD_f_zstd1_magicless); return bounds; case ZSTD_d_stableOutBuffer: - bounds.lowerBound = (int)ZSTD_obm_buffered; - bounds.upperBound = (int)ZSTD_obm_stable; + bounds.lowerBound = (int)ZSTD_bm_buffered; + bounds.upperBound = (int)ZSTD_bm_stable; + return bounds; + case ZSTD_d_forceIgnoreChecksum: + bounds.lowerBound = (int)ZSTD_d_validateChecksum; + bounds.upperBound = (int)ZSTD_d_ignoreChecksum; + return bounds; + case ZSTD_d_refMultipleDDicts: + bounds.lowerBound = (int)ZSTD_rmd_refSingleDDict; + bounds.upperBound = (int)ZSTD_rmd_refMultipleDDicts; + return bounds; + case ZSTD_d_disableHuffmanAssembly: + bounds.lowerBound = 0; + bounds.upperBound = 1; + return bounds; + case ZSTD_d_maxBlockSize: + bounds.lowerBound = ZSTD_BLOCKSIZE_MAX_MIN; + bounds.upperBound = ZSTD_BLOCKSIZE_MAX; return bounds; + default:; } bounds.error = ERROR(parameter_unsupported); @@ -1506,6 +1874,35 @@ static int ZSTD_dParam_withinBounds(ZSTD_dParameter dParam, int value) RETURN_ERROR_IF(!ZSTD_dParam_withinBounds(p, v), parameter_outOfBound, ""); \ } +size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int* value) +{ + switch (param) { + case ZSTD_d_windowLogMax: + *value = (int)ZSTD_highbit32((U32)dctx->maxWindowSize); + return 0; + case ZSTD_d_format: + *value = (int)dctx->format; + return 0; + case ZSTD_d_stableOutBuffer: + *value = (int)dctx->outBufferMode; + return 0; + case ZSTD_d_forceIgnoreChecksum: + *value = (int)dctx->forceIgnoreChecksum; + return 0; + case ZSTD_d_refMultipleDDicts: + *value = (int)dctx->refMultipleDDicts; + return 0; + case ZSTD_d_disableHuffmanAssembly: + *value = (int)dctx->disableHufAsm; + return 0; + case ZSTD_d_maxBlockSize: + *value = dctx->maxBlockSizeParam; + return 0; + default:; + } + RETURN_ERROR(parameter_unsupported, ""); +} + size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter dParam, int value) { RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); @@ -1521,7 +1918,26 @@ size_t ZSTD_DCtx_setParameter(ZSTD_DCtx* dctx, ZSTD_dParameter dParam, int value return 0; case ZSTD_d_stableOutBuffer: CHECK_DBOUNDS(ZSTD_d_stableOutBuffer, value); - dctx->outBufferMode = (ZSTD_outBufferMode_e)value; + dctx->outBufferMode = (ZSTD_bufferMode_e)value; + return 0; + case ZSTD_d_forceIgnoreChecksum: + CHECK_DBOUNDS(ZSTD_d_forceIgnoreChecksum, value); + dctx->forceIgnoreChecksum = (ZSTD_forceIgnoreChecksum_e)value; + return 0; + case ZSTD_d_refMultipleDDicts: + CHECK_DBOUNDS(ZSTD_d_refMultipleDDicts, value); + if (dctx->staticSize != 0) { + RETURN_ERROR(parameter_unsupported, "Static dctx does not support multiple DDicts!"); + } + dctx->refMultipleDDicts = (ZSTD_refMultipleDDicts_e)value; + return 0; + case ZSTD_d_disableHuffmanAssembly: + CHECK_DBOUNDS(ZSTD_d_disableHuffmanAssembly, value); + dctx->disableHufAsm = value != 0; + return 0; + case ZSTD_d_maxBlockSize: + if (value != 0) CHECK_DBOUNDS(ZSTD_d_maxBlockSize, value); + dctx->maxBlockSizeParam = value; return 0; default:; } @@ -1534,13 +1950,13 @@ size_t ZSTD_DCtx_reset(ZSTD_DCtx* dctx, ZSTD_ResetDirective reset) || (reset == ZSTD_reset_session_and_parameters) ) { dctx->streamStage = zdss_init; dctx->noForwardProgress = 0; + dctx->isFrameDecompression = 1; } if ( (reset == ZSTD_reset_parameters) || (reset == ZSTD_reset_session_and_parameters) ) { RETURN_ERROR_IF(dctx->streamStage != zdss_init, stage_wrong, ""); ZSTD_clearDict(dctx); - dctx->format = ZSTD_f_zstd1; - dctx->maxWindowSize = ZSTD_MAXWINDOWSIZE_DEFAULT; + ZSTD_DCtx_resetParameters(dctx); } return 0; } @@ -1551,10 +1967,17 @@ size_t ZSTD_sizeof_DStream(const ZSTD_DStream* dctx) return ZSTD_sizeof_DCtx(dctx); } -size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long long frameContentSize) +static size_t ZSTD_decodingBufferSize_internal(unsigned long long windowSize, unsigned long long frameContentSize, size_t blockSizeMax) { - size_t const blockSize = (size_t) MIN(windowSize, ZSTD_BLOCKSIZE_MAX); - unsigned long long const neededRBSize = windowSize + blockSize + (WILDCOPY_OVERLENGTH * 2); + size_t const blockSize = MIN((size_t)MIN(windowSize, ZSTD_BLOCKSIZE_MAX), blockSizeMax); + /* We need blockSize + WILDCOPY_OVERLENGTH worth of buffer so that if a block + * ends at windowSize + WILDCOPY_OVERLENGTH + 1 bytes, we can start writing + * the block at the beginning of the output buffer, and maintain a full window. + * + * We need another blockSize worth of buffer so that we can store split + * literals at the end of the block without overwriting the extDict window. + */ + unsigned long long const neededRBSize = windowSize + (blockSize * 2) + (WILDCOPY_OVERLENGTH * 2); unsigned long long const neededSize = MIN(frameContentSize, neededRBSize); size_t const minRBSize = (size_t) neededSize; RETURN_ERROR_IF((unsigned long long)minRBSize != neededSize, @@ -1562,6 +1985,11 @@ size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long return minRBSize; } +size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long long frameContentSize) +{ + return ZSTD_decodingBufferSize_internal(windowSize, frameContentSize, ZSTD_BLOCKSIZE_MAX); +} + size_t ZSTD_estimateDStreamSize(size_t windowSize) { size_t const blockSize = MIN(windowSize, ZSTD_BLOCKSIZE_MAX); @@ -1608,7 +2036,7 @@ static size_t ZSTD_checkOutBuffer(ZSTD_DStream const* zds, ZSTD_outBuffer const* { ZSTD_outBuffer const expect = zds->expectedOutBuffer; /* No requirement when ZSTD_obm_stable is not enabled. */ - if (zds->outBufferMode != ZSTD_obm_stable) + if (zds->outBufferMode != ZSTD_bm_stable) return 0; /* Any buffer is allowed in zdss_init, this must be the same for every other call until * the context is reset. @@ -1618,7 +2046,7 @@ static size_t ZSTD_checkOutBuffer(ZSTD_DStream const* zds, ZSTD_outBuffer const* /* The buffer must match our expectation exactly. */ if (expect.dst == output->dst && expect.pos == output->pos && expect.size == output->size) return 0; - RETURN_ERROR(dstBuffer_wrong, "ZSTD_obm_stable enabled but output differs!"); + RETURN_ERROR(dstBuffer_wrong, "ZSTD_d_stableOutBuffer enabled but output differs!"); } /* Calls ZSTD_decompressContinue() with the right parameters for ZSTD_decompressStream() @@ -1630,7 +2058,7 @@ static size_t ZSTD_decompressContinueStream( ZSTD_DStream* zds, char** op, char* oend, void const* src, size_t srcSize) { int const isSkipFrame = ZSTD_isSkipFrame(zds); - if (zds->outBufferMode == ZSTD_obm_buffered) { + if (zds->outBufferMode == ZSTD_bm_buffered) { size_t const dstSize = isSkipFrame ? 0 : zds->outBuffSize - zds->outStart; size_t const decodedSize = ZSTD_decompressContinue(zds, zds->outBuff + zds->outStart, dstSize, src, srcSize); @@ -1643,14 +2071,14 @@ static size_t ZSTD_decompressContinueStream( } } else { /* Write directly into the output buffer */ - size_t const dstSize = isSkipFrame ? 0 : oend - *op; + size_t const dstSize = isSkipFrame ? 0 : (size_t)(oend - *op); size_t const decodedSize = ZSTD_decompressContinue(zds, *op, dstSize, src, srcSize); FORWARD_IF_ERROR(decodedSize, ""); *op += decodedSize; /* Flushing is not needed. */ zds->streamStage = zdss_read; assert(*op <= oend); - assert(zds->outBufferMode == ZSTD_obm_stable); + assert(zds->outBufferMode == ZSTD_bm_stable); } return 0; } @@ -1688,10 +2116,12 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB DEBUGLOG(5, "stage zdss_init => transparent reset "); zds->streamStage = zdss_loadHeader; zds->lhSize = zds->inPos = zds->outStart = zds->outEnd = 0; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) zds->legacyVersion = 0; +#endif zds->hostageByte = 0; zds->expectedOutBuffer = *output; - /* fall-through */ + ZSTD_FALLTHROUGH; case zdss_loadHeader : DEBUGLOG(5, "stage zdss_loadHeader (srcSize : %u)", (U32)(iend - ip)); @@ -1705,7 +2135,9 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB } } #endif { size_t const hSize = ZSTD_getFrameHeader_advanced(&zds->fParams, zds->headerBuffer, zds->lhSize, zds->format); - DEBUGLOG(5, "header size : %u", (U32)hSize); + if (zds->refMultipleDDicts && zds->ddictSet) { + ZSTD_DCtx_selectFrameDDict(zds); + } if (ZSTD_isError(hSize)) { #if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) U32 const legacyVersion = ZSTD_isLegacy(istart, iend-istart); @@ -1733,14 +2165,19 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB assert(iend >= ip); if (toLoad > remainingInput) { /* not enough input to load full header */ if (remainingInput > 0) { - memcpy(zds->headerBuffer + zds->lhSize, ip, remainingInput); + ZSTD_memcpy(zds->headerBuffer + zds->lhSize, ip, remainingInput); zds->lhSize += remainingInput; } input->pos = input->size; - return (MAX((size_t)ZSTD_FRAMEHEADERSIZE_MIN(zds->format), hSize) - zds->lhSize) + ZSTDInternalConstants::ZSTD_blockHeaderSize; /* remaining header bytes + next block header */ + /* check first few bytes */ + FORWARD_IF_ERROR( + ZSTD_getFrameHeader_advanced(&zds->fParams, zds->headerBuffer, zds->lhSize, zds->format), + "First few bytes detected incorrect" ); + /* return hint input size */ + return (MAX((size_t)ZSTD_FRAMEHEADERSIZE_MIN(zds->format), hSize) - zds->lhSize) + ZSTD_blockHeaderSize; /* remaining header bytes + next block header */ } assert(ip != NULL); - memcpy(zds->headerBuffer + zds->lhSize, ip, toLoad); zds->lhSize = hSize; ip += toLoad; + ZSTD_memcpy(zds->headerBuffer + zds->lhSize, ip, toLoad); zds->lhSize = hSize; ip += toLoad; break; } } @@ -1748,14 +2185,15 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB if (zds->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN && zds->fParams.frameType != ZSTD_skippableFrame && (U64)(size_t)(oend-op) >= zds->fParams.frameContentSize) { - size_t const cSize = ZSTD_findFrameCompressedSize(istart, iend-istart); + size_t const cSize = ZSTD_findFrameCompressedSize_advanced(istart, (size_t)(iend-istart), zds->format); if (cSize <= (size_t)(iend-istart)) { /* shortcut : using single-pass mode */ - size_t const decompressedSize = ZSTD_decompress_usingDDict(zds, op, oend-op, istart, cSize, ZSTD_getDDict(zds)); + size_t const decompressedSize = ZSTD_decompress_usingDDict(zds, op, (size_t)(oend-op), istart, cSize, ZSTD_getDDict(zds)); if (ZSTD_isError(decompressedSize)) return decompressedSize; - DEBUGLOG(4, "shortcut to single-pass ZSTD_decompress_usingDDict()") + DEBUGLOG(4, "shortcut to single-pass ZSTD_decompress_usingDDict()"); + assert(istart != NULL); ip = istart + cSize; - op += decompressedSize; + op = op ? op + decompressedSize : op; /* can occur if frameContentSize = 0 (empty frame) */ zds->expected = 0; zds->streamStage = zdss_init; someMoreWork = 0; @@ -1763,7 +2201,7 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB } } /* Check output buffer is large enough for ZSTD_odm_stable. */ - if (zds->outBufferMode == ZSTD_obm_stable + if (zds->outBufferMode == ZSTD_bm_stable && zds->fParams.frameType != ZSTD_skippableFrame && zds->fParams.frameContentSize != ZSTD_CONTENTSIZE_UNKNOWN && (U64)(size_t)(oend-op) < zds->fParams.frameContentSize) { @@ -1774,12 +2212,13 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB DEBUGLOG(4, "Consume header"); FORWARD_IF_ERROR(ZSTD_decompressBegin_usingDDict(zds, ZSTD_getDDict(zds)), ""); - if ((MEM_readLE32(zds->headerBuffer) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ + if (zds->format == ZSTD_f_zstd1 + && (MEM_readLE32(zds->headerBuffer) & ZSTD_MAGIC_SKIPPABLE_MASK) == ZSTD_MAGIC_SKIPPABLE_START) { /* skippable frame */ zds->expected = MEM_readLE32(zds->headerBuffer + ZSTD_FRAMEIDSIZE); zds->stage = ZSTDds_skipFrame; } else { FORWARD_IF_ERROR(ZSTD_decodeFrameHeader(zds, zds->headerBuffer, zds->lhSize), ""); - zds->expected = ZSTDInternalConstants::ZSTD_blockHeaderSize; + zds->expected = ZSTD_blockHeaderSize; zds->stage = ZSTDds_decodeBlockHeader; } @@ -1790,11 +2229,13 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB zds->fParams.windowSize = MAX(zds->fParams.windowSize, 1U << ZSTD_WINDOWLOG_ABSOLUTEMIN); RETURN_ERROR_IF(zds->fParams.windowSize > zds->maxWindowSize, frameParameter_windowTooLarge, ""); + if (zds->maxBlockSizeParam != 0) + zds->fParams.blockSizeMax = MIN(zds->fParams.blockSizeMax, (unsigned)zds->maxBlockSizeParam); /* Adapt buffer sizes to frame header instructions */ { size_t const neededInBuffSize = MAX(zds->fParams.blockSizeMax, 4 /* frame checksum */); - size_t const neededOutBuffSize = zds->outBufferMode == ZSTD_obm_buffered - ? ZSTD_decodingBufferSize_min(zds->fParams.windowSize, zds->fParams.frameContentSize) + size_t const neededOutBuffSize = zds->outBufferMode == ZSTD_bm_buffered + ? ZSTD_decodingBufferSize_internal(zds->fParams.windowSize, zds->fParams.frameContentSize, zds->fParams.blockSizeMax) : 0; ZSTD_DCtx_updateOversizedDuration(zds, neededInBuffSize, neededOutBuffSize); @@ -1815,10 +2256,10 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB bufferSize > zds->staticSize - sizeof(ZSTD_DCtx), memory_allocation, ""); } else { - ZSTD_free(zds->inBuff, zds->customMem); + ZSTD_customFree(zds->inBuff, zds->customMem); zds->inBuffSize = 0; zds->outBuffSize = 0; - zds->inBuff = (char*)ZSTD_malloc(bufferSize, zds->customMem); + zds->inBuff = (char*)ZSTD_customMalloc(bufferSize, zds->customMem); RETURN_ERROR_IF(zds->inBuff == NULL, memory_allocation, ""); } zds->inBuffSize = neededInBuffSize; @@ -1826,11 +2267,11 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB zds->outBuffSize = neededOutBuffSize; } } } zds->streamStage = zdss_read; - /* fall-through */ + ZSTD_FALLTHROUGH; case zdss_read: DEBUGLOG(5, "stage zdss_read"); - { size_t const neededInSize = ZSTD_nextSrcSizeToDecompressWithInputSize(zds, iend - ip); + { size_t const neededInSize = ZSTD_nextSrcSizeToDecompressWithInputSize(zds, (size_t)(iend - ip)); DEBUGLOG(5, "neededInSize = %u", (U32)neededInSize); if (neededInSize==0) { /* end of frame */ zds->streamStage = zdss_init; @@ -1839,13 +2280,14 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB } if ((size_t)(iend-ip) >= neededInSize) { /* decode directly from src */ FORWARD_IF_ERROR(ZSTD_decompressContinueStream(zds, &op, oend, ip, neededInSize), ""); + assert(ip != NULL); ip += neededInSize; /* Function modifies the stage so we must break */ break; } } if (ip==iend) { someMoreWork = 0; break; } /* no more input */ zds->streamStage = zdss_load; - /* fall-through */ + ZSTD_FALLTHROUGH; case zdss_load: { size_t const neededInSize = ZSTD_nextSrcSizeToDecompress(zds); @@ -1853,17 +2295,20 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB int const isSkipFrame = ZSTD_isSkipFrame(zds); size_t loadedSize; /* At this point we shouldn't be decompressing a block that we can stream. */ - assert(neededInSize == ZSTD_nextSrcSizeToDecompressWithInputSize(zds, iend - ip)); + assert(neededInSize == ZSTD_nextSrcSizeToDecompressWithInputSize(zds, (size_t)(iend - ip))); if (isSkipFrame) { loadedSize = MIN(toLoad, (size_t)(iend-ip)); } else { RETURN_ERROR_IF(toLoad > zds->inBuffSize - zds->inPos, corruption_detected, "should never happen"); - loadedSize = ZSTD_limitCopy(zds->inBuff + zds->inPos, toLoad, ip, iend-ip); + loadedSize = ZSTD_limitCopy(zds->inBuff + zds->inPos, toLoad, ip, (size_t)(iend-ip)); + } + if (loadedSize != 0) { + /* ip may be NULL */ + ip += loadedSize; + zds->inPos += loadedSize; } - ip += loadedSize; - zds->inPos += loadedSize; if (loadedSize < toLoad) { someMoreWork = 0; break; } /* not enough input, wait for more */ /* decode loaded input */ @@ -1873,14 +2318,17 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB break; } case zdss_flush: - { size_t const toFlushSize = zds->outEnd - zds->outStart; - size_t const flushedSize = ZSTD_limitCopy(op, oend-op, zds->outBuff + zds->outStart, toFlushSize); - op += flushedSize; + { + size_t const toFlushSize = zds->outEnd - zds->outStart; + size_t const flushedSize = ZSTD_limitCopy(op, (size_t)(oend-op), zds->outBuff + zds->outStart, toFlushSize); + + op = op ? op + flushedSize : op; + zds->outStart += flushedSize; if (flushedSize == toFlushSize) { /* flush completed */ zds->streamStage = zdss_read; if ( (zds->outBuffSize < zds->fParams.frameContentSize) - && (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) { + && (zds->outStart + zds->fParams.blockSizeMax > zds->outBuffSize) ) { DEBUGLOG(5, "restart filling outBuff from beginning (left:%i, needed:%u)", (int)(zds->outBuffSize - zds->outStart), (U32)zds->fParams.blockSizeMax); @@ -1894,7 +2342,7 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB default: assert(0); /* impossible */ - RETURN_ERROR(GENERIC, "impossible to reach"); /* some compiler require default to do something */ + RETURN_ERROR(GENERIC, "impossible to reach"); /* some compilers require default to do something */ } } /* result */ @@ -1907,8 +2355,8 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB if ((ip==istart) && (op==ostart)) { /* no forward progress */ zds->noForwardProgress ++; if (zds->noForwardProgress >= ZSTD_NO_FORWARD_PROGRESS_MAX) { - RETURN_ERROR_IF(op==oend, dstSize_tooSmall, ""); - RETURN_ERROR_IF(ip==iend, srcSize_wrong, ""); + RETURN_ERROR_IF(op==oend, noForwardProgress_destFull, ""); + RETURN_ERROR_IF(ip==iend, noForwardProgress_inputEmpty, ""); assert(0); } } else { @@ -1933,7 +2381,7 @@ size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inB } return 1; } /* nextSrcSizeHint==0 */ - nextSrcSizeHint += ZSTDInternalConstants::ZSTD_blockHeaderSize * (ZSTD_nextInputType(zds) == ZSTDnit_block); /* preload header of next block */ + nextSrcSizeHint += ZSTD_blockHeaderSize * (ZSTD_nextInputType(zds) == ZSTDnit_block); /* preload header of next block */ assert(zds->inPos <= nextSrcSizeHint); nextSrcSizeHint -= zds->inPos; /* part already loaded*/ return nextSrcSizeHint; @@ -1945,13 +2393,19 @@ size_t ZSTD_decompressStream_simpleArgs ( void* dst, size_t dstCapacity, size_t* dstPos, const void* src, size_t srcSize, size_t* srcPos) { - ZSTD_outBuffer output = { dst, dstCapacity, *dstPos }; - ZSTD_inBuffer input = { src, srcSize, *srcPos }; - /* ZSTD_compress_generic() will check validity of dstPos and srcPos */ - size_t const cErr = ZSTD_decompressStream(dctx, &output, &input); - *dstPos = output.pos; - *srcPos = input.pos; - return cErr; + ZSTD_outBuffer output; + ZSTD_inBuffer input; + output.dst = dst; + output.size = dstCapacity; + output.pos = *dstPos; + input.src = src; + input.size = srcSize; + input.pos = *srcPos; + { size_t const cErr = ZSTD_decompressStream(dctx, &output, &input); + *dstPos = output.pos; + *srcPos = input.pos; + return cErr; + } } -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp b/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp index f7574918..75955fde 100644 --- a/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp +++ b/src/duckdb/third_party/zstd/decompress/zstd_decompress_block.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -14,18 +14,19 @@ /*-******************************************************* * Dependencies *********************************************************/ -#include /* memcpy, memmove, memset */ +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy, ZSTD_memmove, ZSTD_memset */ #include "zstd/common/compiler.h" /* prefetch */ +#include "zstd/common/cpu.h" /* bmi2 */ #include "zstd/common/mem.h" /* low level memory routines */ +#define FSE_STATIC_LINKING_ONLY #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" #include "zstd/common/zstd_internal.h" #include "zstd/decompress/zstd_decompress_internal.h" /* ZSTD_DCtx */ #include "zstd/decompress/zstd_ddict.h" /* ZSTD_DDictDictContent */ #include "zstd/decompress/zstd_decompress_block.h" -namespace duckdb_zstd { +#include "zstd/common/bits.h" /* ZSTD_highbit32 */ + /*_******************************************************* * Macros **********************************************************/ @@ -39,23 +40,31 @@ namespace duckdb_zstd { #error "Cannot force the use of the short and the long ZSTD_decompressSequences variants!" #endif +namespace duckdb_zstd { /*_******************************************************* * Memory operations **********************************************************/ -static void ZSTD_copy4(void* dst, const void* src) { memcpy(dst, src, 4); } +static void ZSTD_copy4(void* dst, const void* src) { ZSTD_memcpy(dst, src, 4); } /*-************************************************************* * Block decoding ***************************************************************/ +static size_t ZSTD_blockSizeMax(ZSTD_DCtx const* dctx) +{ + size_t const blockSizeMax = dctx->isFrameDecompression ? dctx->fParams.blockSizeMax : ZSTD_BLOCKSIZE_MAX; + assert(blockSizeMax <= ZSTD_BLOCKSIZE_MAX); + return blockSizeMax; +} + /*! ZSTD_getcBlockSize() : * Provides the size of compressed block from block header `src` */ size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr) { - RETURN_ERROR_IF(srcSize < ZSTDInternalConstants::ZSTD_blockHeaderSize, srcSize_wrong, ""); + RETURN_ERROR_IF(srcSize < ZSTD_blockHeaderSize, srcSize_wrong, ""); { U32 const cBlockHeader = MEM_readLE24(src); U32 const cSize = cBlockHeader >> 3; @@ -68,36 +77,90 @@ size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, } } +/* Allocate buffer for literals, either overlapping current dst, or split between dst and litExtraBuffer, or stored entirely within litExtraBuffer */ +static void ZSTD_allocateLiteralsBuffer(ZSTD_DCtx* dctx, void* const dst, const size_t dstCapacity, const size_t litSize, + const streaming_operation streaming, const size_t expectedWriteSize, const unsigned splitImmediately) +{ + size_t const blockSizeMax = ZSTD_blockSizeMax(dctx); + assert(litSize <= blockSizeMax); + assert(dctx->isFrameDecompression || streaming == not_streaming); + assert(expectedWriteSize <= blockSizeMax); + if (streaming == not_streaming && dstCapacity > blockSizeMax + WILDCOPY_OVERLENGTH + litSize + WILDCOPY_OVERLENGTH) { + /* If we aren't streaming, we can just put the literals after the output + * of the current block. We don't need to worry about overwriting the + * extDict of our window, because it doesn't exist. + * So if we have space after the end of the block, just put it there. + */ + dctx->litBuffer = (BYTE*)dst + blockSizeMax + WILDCOPY_OVERLENGTH; + dctx->litBufferEnd = dctx->litBuffer + litSize; + dctx->litBufferLocation = ZSTD_in_dst; + } else if (litSize <= ZSTD_LITBUFFEREXTRASIZE) { + /* Literals fit entirely within the extra buffer, put them there to avoid + * having to split the literals. + */ + dctx->litBuffer = dctx->litExtraBuffer; + dctx->litBufferEnd = dctx->litBuffer + litSize; + dctx->litBufferLocation = ZSTD_not_in_dst; + } else { + assert(blockSizeMax > ZSTD_LITBUFFEREXTRASIZE); + /* Literals must be split between the output block and the extra lit + * buffer. We fill the extra lit buffer with the tail of the literals, + * and put the rest of the literals at the end of the block, with + * WILDCOPY_OVERLENGTH of buffer room to allow for overreads. + * This MUST not write more than our maxBlockSize beyond dst, because in + * streaming mode, that could overwrite part of our extDict window. + */ + if (splitImmediately) { + /* won't fit in litExtraBuffer, so it will be split between end of dst and extra buffer */ + dctx->litBuffer = (BYTE*)dst + expectedWriteSize - litSize + ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH; + dctx->litBufferEnd = dctx->litBuffer + litSize - ZSTD_LITBUFFEREXTRASIZE; + } else { + /* initially this will be stored entirely in dst during huffman decoding, it will partially be shifted to litExtraBuffer after */ + dctx->litBuffer = (BYTE*)dst + expectedWriteSize - litSize; + dctx->litBufferEnd = (BYTE*)dst + expectedWriteSize; + } + dctx->litBufferLocation = ZSTD_split; + assert(dctx->litBufferEnd <= (BYTE*)dst + expectedWriteSize); + } +} -/* Hidden declaration for fullbench */ -size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, - const void* src, size_t srcSize); /*! ZSTD_decodeLiteralsBlock() : + * Where it is possible to do so without being stomped by the output during decompression, the literals block will be stored + * in the dstBuffer. If there is room to do so, it will be stored in full in the excess dst space after where the current + * block will be output. Otherwise it will be stored at the end of the current dst blockspace, with a small portion being + * stored in dctx->litExtraBuffer to help keep it "ahead" of the current output write. + * * @return : nb of bytes read from src (< srcSize ) * note : symbol not declared but exposed for fullbench */ -size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, - const void* src, size_t srcSize) /* note : srcSize < BLOCKSIZE */ +static size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, + const void* src, size_t srcSize, /* note : srcSize < BLOCKSIZE */ + void* dst, size_t dstCapacity, const streaming_operation streaming) { DEBUGLOG(5, "ZSTD_decodeLiteralsBlock"); RETURN_ERROR_IF(srcSize < MIN_CBLOCK_SIZE, corruption_detected, ""); { const BYTE* const istart = (const BYTE*) src; symbolEncodingType_e const litEncType = (symbolEncodingType_e)(istart[0] & 3); + size_t const blockSizeMax = ZSTD_blockSizeMax(dctx); switch(litEncType) { case set_repeat: DEBUGLOG(5, "set_repeat flag : re-using stats from previous compressed literals block"); RETURN_ERROR_IF(dctx->litEntropy==0, dictionary_corrupted, ""); - /* fall-through */ + ZSTD_FALLTHROUGH; case set_compressed: - RETURN_ERROR_IF(srcSize < 5, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 3; here we need up to 5 for case 3"); + RETURN_ERROR_IF(srcSize < 5, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need up to 5 for case 3"); { size_t lhSize, litSize, litCSize; U32 singleStream=0; U32 const lhlCode = (istart[0] >> 2) & 3; U32 const lhc = MEM_readLE32(istart); size_t hufSuccess; + size_t expectedWriteSize = MIN(blockSizeMax, dstCapacity); + int const flags = 0 + | (ZSTD_DCtx_get_bmi2(dctx) ? HUF_flags_bmi2 : 0) + | (dctx->disableHufAsm ? HUF_flags_disableAsm : 0); switch(lhlCode) { case 0: case 1: default: /* note : default is impossible, since lhlCode into [0..3] */ @@ -120,8 +183,15 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, litCSize = (lhc >> 22) + ((size_t)istart[4] << 10); break; } - RETURN_ERROR_IF(litSize > ZSTD_BLOCKSIZE_MAX, corruption_detected, ""); + RETURN_ERROR_IF(litSize > 0 && dst == NULL, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(litSize > blockSizeMax, corruption_detected, ""); + if (!singleStream) + RETURN_ERROR_IF(litSize < MIN_LITERALS_FOR_4_STREAMS, literals_headerWrong, + "Not enough literals (%zu) for the 4-streams mode (min %u)", + litSize, MIN_LITERALS_FOR_4_STREAMS); RETURN_ERROR_IF(litCSize + lhSize > srcSize, corruption_detected, ""); + RETURN_ERROR_IF(expectedWriteSize < litSize , dstSize_tooSmall, ""); + ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 0); /* prefetch huffman table if cold */ if (dctx->ddictIsCold && (litSize > 768 /* heuristic */)) { @@ -130,13 +200,14 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, if (litEncType==set_repeat) { if (singleStream) { - hufSuccess = HUF_decompress1X_usingDTable_bmi2( + hufSuccess = HUF_decompress1X_usingDTable( dctx->litBuffer, litSize, istart+lhSize, litCSize, - dctx->HUFptr, dctx->bmi2); + dctx->HUFptr, flags); } else { - hufSuccess = HUF_decompress4X_usingDTable_bmi2( + assert(litSize >= MIN_LITERALS_FOR_4_STREAMS); + hufSuccess = HUF_decompress4X_usingDTable( dctx->litBuffer, litSize, istart+lhSize, litCSize, - dctx->HUFptr, dctx->bmi2); + dctx->HUFptr, flags); } } else { if (singleStream) { @@ -144,20 +215,29 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, hufSuccess = HUF_decompress1X_DCtx_wksp( dctx->entropy.hufTable, dctx->litBuffer, litSize, istart+lhSize, litCSize, dctx->workspace, - sizeof(dctx->workspace)); + sizeof(dctx->workspace), flags); #else - hufSuccess = HUF_decompress1X1_DCtx_wksp_bmi2( + hufSuccess = HUF_decompress1X1_DCtx_wksp( dctx->entropy.hufTable, dctx->litBuffer, litSize, istart+lhSize, litCSize, dctx->workspace, - sizeof(dctx->workspace), dctx->bmi2); + sizeof(dctx->workspace), flags); #endif } else { - hufSuccess = HUF_decompress4X_hufOnly_wksp_bmi2( + hufSuccess = HUF_decompress4X_hufOnly_wksp( dctx->entropy.hufTable, dctx->litBuffer, litSize, istart+lhSize, litCSize, dctx->workspace, - sizeof(dctx->workspace), dctx->bmi2); + sizeof(dctx->workspace), flags); } } + if (dctx->litBufferLocation == ZSTD_split) + { + assert(litSize > ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memcpy(dctx->litExtraBuffer, dctx->litBufferEnd - ZSTD_LITBUFFEREXTRASIZE, ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memmove(dctx->litBuffer + ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH, dctx->litBuffer, litSize - ZSTD_LITBUFFEREXTRASIZE); + dctx->litBuffer += ZSTD_LITBUFFEREXTRASIZE - WILDCOPY_OVERLENGTH; + dctx->litBufferEnd -= WILDCOPY_OVERLENGTH; + assert(dctx->litBufferEnd <= (BYTE*)dst + blockSizeMax); + } RETURN_ERROR_IF(HUF_isError(hufSuccess), corruption_detected, ""); @@ -165,13 +245,13 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, dctx->litSize = litSize; dctx->litEntropy = 1; if (litEncType==set_compressed) dctx->HUFptr = dctx->entropy.hufTable; - memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH); return litCSize + lhSize; } case set_basic: { size_t litSize, lhSize; U32 const lhlCode = ((istart[0]) >> 2) & 3; + size_t expectedWriteSize = MIN(blockSizeMax, dstCapacity); switch(lhlCode) { case 0: case 2: default: /* note : default is impossible, since lhlCode into [0..3] */ @@ -184,27 +264,42 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, break; case 3: lhSize = 3; + RETURN_ERROR_IF(srcSize<3, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need lhSize = 3"); litSize = MEM_readLE24(istart) >> 4; break; } + RETURN_ERROR_IF(litSize > 0 && dst == NULL, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(litSize > blockSizeMax, corruption_detected, ""); + RETURN_ERROR_IF(expectedWriteSize < litSize, dstSize_tooSmall, ""); + ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 1); if (lhSize+litSize+WILDCOPY_OVERLENGTH > srcSize) { /* risk reading beyond src buffer with wildcopy */ RETURN_ERROR_IF(litSize+lhSize > srcSize, corruption_detected, ""); - memcpy(dctx->litBuffer, istart+lhSize, litSize); + if (dctx->litBufferLocation == ZSTD_split) + { + ZSTD_memcpy(dctx->litBuffer, istart + lhSize, litSize - ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memcpy(dctx->litExtraBuffer, istart + lhSize + litSize - ZSTD_LITBUFFEREXTRASIZE, ZSTD_LITBUFFEREXTRASIZE); + } + else + { + ZSTD_memcpy(dctx->litBuffer, istart + lhSize, litSize); + } dctx->litPtr = dctx->litBuffer; dctx->litSize = litSize; - memset(dctx->litBuffer + dctx->litSize, 0, WILDCOPY_OVERLENGTH); return lhSize+litSize; } /* direct reference into compressed stream */ dctx->litPtr = istart+lhSize; dctx->litSize = litSize; + dctx->litBufferEnd = dctx->litPtr + litSize; + dctx->litBufferLocation = ZSTD_not_in_dst; return lhSize+litSize; } case set_rle: { U32 const lhlCode = ((istart[0]) >> 2) & 3; size_t litSize, lhSize; + size_t expectedWriteSize = MIN(blockSizeMax, dstCapacity); switch(lhlCode) { case 0: case 2: default: /* note : default is impossible, since lhlCode into [0..3] */ @@ -213,16 +308,28 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, break; case 1: lhSize = 2; + RETURN_ERROR_IF(srcSize<3, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need lhSize+1 = 3"); litSize = MEM_readLE16(istart) >> 4; break; case 3: lhSize = 3; + RETURN_ERROR_IF(srcSize<4, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 2; here we need lhSize+1 = 4"); litSize = MEM_readLE24(istart) >> 4; - RETURN_ERROR_IF(srcSize<4, corruption_detected, "srcSize >= MIN_CBLOCK_SIZE == 3; here we need lhSize+1 = 4"); break; } - RETURN_ERROR_IF(litSize > ZSTD_BLOCKSIZE_MAX, corruption_detected, ""); - memset(dctx->litBuffer, istart[lhSize], litSize + WILDCOPY_OVERLENGTH); + RETURN_ERROR_IF(litSize > 0 && dst == NULL, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(litSize > blockSizeMax, corruption_detected, ""); + RETURN_ERROR_IF(expectedWriteSize < litSize, dstSize_tooSmall, ""); + ZSTD_allocateLiteralsBuffer(dctx, dst, dstCapacity, litSize, streaming, expectedWriteSize, 1); + if (dctx->litBufferLocation == ZSTD_split) + { + ZSTD_memset(dctx->litBuffer, istart[lhSize], litSize - ZSTD_LITBUFFEREXTRASIZE); + ZSTD_memset(dctx->litExtraBuffer, istart[lhSize], ZSTD_LITBUFFEREXTRASIZE); + } + else + { + ZSTD_memset(dctx->litBuffer, istart[lhSize], litSize); + } dctx->litPtr = dctx->litBuffer; dctx->litSize = litSize; return lhSize+1; @@ -233,9 +340,21 @@ size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx* dctx, } } +/* Hidden declaration for fullbench */ +size_t ZSTD_decodeLiteralsBlock_wrapper(ZSTD_DCtx* dctx, + const void* src, size_t srcSize, + void* dst, size_t dstCapacity); +size_t ZSTD_decodeLiteralsBlock_wrapper(ZSTD_DCtx* dctx, + const void* src, size_t srcSize, + void* dst, size_t dstCapacity) +{ + dctx->isFrameDecompression = 0; + return ZSTD_decodeLiteralsBlock(dctx, src, srcSize, dst, dstCapacity, not_streaming); +} + /* Default FSE distribution tables. * These are pre-calculated FSE decoding tables using default distributions as defined in specification : - * https://github.com/facebook/zstd/blob/master/doc/zstd_compression_format.md#default-distributions + * https://github.com/facebook/zstd/blob/release/doc/zstd_compression_format.md#default-distributions * They were generated programmatically with following method : * - start from default distributions, present in /lib/common/zstd_internal.h * - generate tables normally, using ZSTD_buildFSETable() @@ -342,7 +461,7 @@ static const ZSTD_seqSymbol ML_defaultDTable[(1<nbBits = 0; cell->nextState = 0; assert(nbAddBits < 255); - cell->nbAdditionalBits = (BYTE)nbAddBits; + cell->nbAdditionalBits = nbAddBits; cell->baseValue = baseValue; } @@ -363,23 +482,26 @@ static void ZSTD_buildSeqTable_rle(ZSTD_seqSymbol* dt, U32 baseValue, U32 nbAddB * generate FSE decoding table for one symbol (ll, ml or off) * cannot fail if input is valid => * all inputs are presumed validated at this stage */ -void -ZSTD_buildFSETable(ZSTD_seqSymbol* dt, +FORCE_INLINE_TEMPLATE +void ZSTD_buildFSETable_body(ZSTD_seqSymbol* dt, const short* normalizedCounter, unsigned maxSymbolValue, - const U32* baseValue, const U32* nbAdditionalBits, - unsigned tableLog) + const U32* baseValue, const U8* nbAdditionalBits, + unsigned tableLog, void* wksp, size_t wkspSize) { ZSTD_seqSymbol* const tableDecode = dt+1; - U16 symbolNext[MaxSeq+1]; - U32 const maxSV1 = maxSymbolValue + 1; U32 const tableSize = 1 << tableLog; - U32 highThreshold = tableSize-1; + + U16* symbolNext = (U16*)wksp; + BYTE* spread = (BYTE*)(symbolNext + MaxSeq + 1); + U32 highThreshold = tableSize - 1; + /* Sanity Checks */ assert(maxSymbolValue <= MaxSeq); assert(tableLog <= MaxFSELog); - + assert(wkspSize >= ZSTD_BUILD_FSE_TABLE_WKSP_SIZE); + (void)wkspSize; /* Init, lay down lowprob symbols */ { ZSTD_seqSymbol_header DTableH; DTableH.tableLog = tableLog; @@ -395,34 +517,128 @@ ZSTD_buildFSETable(ZSTD_seqSymbol* dt, assert(normalizedCounter[s]>=0); symbolNext[s] = (U16)normalizedCounter[s]; } } } - memcpy(dt, &DTableH, sizeof(DTableH)); + ZSTD_memcpy(dt, &DTableH, sizeof(DTableH)); } /* Spread symbols */ - { U32 const tableMask = tableSize-1; + assert(tableSize <= 512); + /* Specialized symbol spreading for the case when there are + * no low probability (-1 count) symbols. When compressing + * small blocks we avoid low probability symbols to hit this + * case, since header decoding speed matters more. + */ + if (highThreshold == tableSize - 1) { + size_t const tableMask = tableSize-1; + size_t const step = FSE_TABLESTEP(tableSize); + /* First lay down the symbols in order. + * We use a uint64_t to lay down 8 bytes at a time. This reduces branch + * misses since small blocks generally have small table logs, so nearly + * all symbols have counts <= 8. We ensure we have 8 bytes at the end of + * our buffer to handle the over-write. + */ + { + U64 const add = 0x0101010101010101ull; + size_t pos = 0; + U64 sv = 0; + U32 s; + for (s=0; s=0); + pos += (size_t)n; + } + } + /* Now we spread those positions across the table. + * The benefit of doing it in two stages is that we avoid the + * variable size inner loop, which caused lots of branch misses. + * Now we can run through all the positions without any branch misses. + * We unroll the loop twice, since that is what empirically worked best. + */ + { + size_t position = 0; + size_t s; + size_t const unroll = 2; + assert(tableSize % unroll == 0); /* FSE_MIN_TABLELOG is 5 */ + for (s = 0; s < (size_t)tableSize; s += unroll) { + size_t u; + for (u = 0; u < unroll; ++u) { + size_t const uPosition = (position + (u * step)) & tableMask; + tableDecode[uPosition].baseValue = spread[s + u]; + } + position = (position + (unroll * step)) & tableMask; + } + assert(position == 0); + } + } else { + U32 const tableMask = tableSize-1; U32 const step = FSE_TABLESTEP(tableSize); U32 s, position = 0; for (s=0; s highThreshold) position = (position + step) & tableMask; /* lowprob area */ + while (UNLIKELY(position > highThreshold)) position = (position + step) & tableMask; /* lowprob area */ } } assert(position == 0); /* position must reach all cells once, otherwise normalizedCounter is incorrect */ } /* Build Decoding table */ - { U32 u; + { + U32 u; for (u=0; u max, corruption_detected, ""); { U32 const symbol = *(const BYTE*)src; U32 const baseline = baseValue[symbol]; - U32 const nbBits = nbAdditionalBits[symbol]; + U8 const nbBits = nbAdditionalBits[symbol]; ZSTD_buildSeqTable_rle(DTableSpace, baseline, nbBits); } *DTablePtr = DTableSpace; @@ -466,7 +683,7 @@ static size_t ZSTD_buildSeqTable(ZSTD_seqSymbol* DTableSpace, const ZSTD_seqSymb size_t const headerSize = FSE_readNCount(norm, &max, &tableLog, src, srcSize); RETURN_ERROR_IF(FSE_isError(headerSize), corruption_detected, ""); RETURN_ERROR_IF(tableLog > maxLog, corruption_detected, ""); - ZSTD_buildFSETable(DTableSpace, norm, max, baseValue, nbAdditionalBits, tableLog); + ZSTD_buildFSETable(DTableSpace, norm, max, baseValue, nbAdditionalBits, tableLog, wksp, wkspSize, bmi2); *DTablePtr = DTableSpace; return headerSize; } @@ -479,7 +696,7 @@ static size_t ZSTD_buildSeqTable(ZSTD_seqSymbol* DTableSpace, const ZSTD_seqSymb size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, const void* src, size_t srcSize) { - const BYTE* const istart = (const BYTE* const)src; + const BYTE* const istart = (const BYTE*)src; const BYTE* const iend = istart + srcSize; const BYTE* ip = istart; int nbSeq; @@ -490,15 +707,11 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, /* SeqHead */ nbSeq = *ip++; - if (!nbSeq) { - *nbSeqPtr=0; - RETURN_ERROR_IF(srcSize != 1, srcSize_wrong, ""); - return 1; - } if (nbSeq > 0x7F) { if (nbSeq == 0xFF) { RETURN_ERROR_IF(ip+2 > iend, srcSize_wrong, ""); - nbSeq = MEM_readLE16(ip) + LONGNBSEQ, ip+=2; + nbSeq = MEM_readLE16(ip) + LONGNBSEQ; + ip+=2; } else { RETURN_ERROR_IF(ip >= iend, srcSize_wrong, ""); nbSeq = ((nbSeq-0x80)<<8) + *ip++; @@ -506,8 +719,16 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, } *nbSeqPtr = nbSeq; + if (nbSeq == 0) { + /* No sequence : section ends immediately */ + RETURN_ERROR_IF(ip != iend, corruption_detected, + "extraneous data present in the Sequences section"); + return (size_t)(ip - istart); + } + /* FSE table descriptors */ RETURN_ERROR_IF(ip+1 > iend, srcSize_wrong, ""); /* minimum possible size: 1 byte for symbol encoding types */ + RETURN_ERROR_IF(*ip & 3, corruption_detected, ""); /* The last field, Reserved, must be all-zeroes. */ { symbolEncodingType_e const LLtype = (symbolEncodingType_e)(*ip >> 6); symbolEncodingType_e const OFtype = (symbolEncodingType_e)((*ip >> 4) & 3); symbolEncodingType_e const MLtype = (symbolEncodingType_e)((*ip >> 2) & 3); @@ -517,9 +738,11 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, { size_t const llhSize = ZSTD_buildSeqTable(dctx->entropy.LLTable, &dctx->LLTptr, LLtype, MaxLL, LLFSELog, ip, iend-ip, - ZSTDConstants::LL_base, ZSTDInternalConstants::LL_bits, + LL_base, LL_bits, LL_defaultDTable, dctx->fseEntropy, - dctx->ddictIsCold, nbSeq); + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + ZSTD_DCtx_get_bmi2(dctx)); RETURN_ERROR_IF(ZSTD_isError(llhSize), corruption_detected, "ZSTD_buildSeqTable failed"); ip += llhSize; } @@ -527,9 +750,11 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, { size_t const ofhSize = ZSTD_buildSeqTable(dctx->entropy.OFTable, &dctx->OFTptr, OFtype, MaxOff, OffFSELog, ip, iend-ip, - ZSTDConstants::OF_base, ZSTDConstants::OF_bits, + OF_base, OF_bits, OF_defaultDTable, dctx->fseEntropy, - dctx->ddictIsCold, nbSeq); + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + ZSTD_DCtx_get_bmi2(dctx)); RETURN_ERROR_IF(ZSTD_isError(ofhSize), corruption_detected, "ZSTD_buildSeqTable failed"); ip += ofhSize; } @@ -537,9 +762,11 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, { size_t const mlhSize = ZSTD_buildSeqTable(dctx->entropy.MLTable, &dctx->MLTptr, MLtype, MaxML, MLFSELog, ip, iend-ip, - ZSTDConstants::ML_base, ZSTDInternalConstants::ML_bits, + ML_base, ML_bits, ML_defaultDTable, dctx->fseEntropy, - dctx->ddictIsCold, nbSeq); + dctx->ddictIsCold, nbSeq, + dctx->workspace, sizeof(dctx->workspace), + ZSTD_DCtx_get_bmi2(dctx)); RETURN_ERROR_IF(ZSTD_isError(mlhSize), corruption_detected, "ZSTD_buildSeqTable failed"); ip += mlhSize; } @@ -553,7 +780,6 @@ typedef struct { size_t litLength; size_t matchLength; size_t offset; - const BYTE* match; } seq_t; typedef struct { @@ -567,9 +793,6 @@ typedef struct { ZSTD_fseState stateOffb; ZSTD_fseState stateML; size_t prevOffset[ZSTD_REP_NUM]; - const BYTE* prefixStart; - const BYTE* dictEnd; - size_t pos; } seqState_t; /*! ZSTD_overlapCopy8() : @@ -612,7 +835,7 @@ HINT_INLINE void ZSTD_overlapCopy8(BYTE** op, BYTE const** ip, size_t offset) { * - ZSTD_overlap_src_before_dst: The src and dst may overlap and may be any distance apart. * The src buffer must be before the dst buffer. */ -static void ZSTD_safecopy(BYTE* op, BYTE* const oend_w, BYTE const* ip, ptrdiff_t length, ZSTD_overlap_e ovtype) { +static void ZSTD_safecopy(BYTE* op, const BYTE* const oend_w, BYTE const* ip, ptrdiff_t length, ZSTD_overlap_e ovtype) { ptrdiff_t const diff = op - ip; BYTE* const oend = op + length; @@ -628,6 +851,7 @@ static void ZSTD_safecopy(BYTE* op, BYTE* const oend_w, BYTE const* ip, ptrdiff_ /* Copy 8 bytes and ensure the offset >= 8 when there can be overlap. */ assert(length >= 8); ZSTD_overlapCopy8(&op, &ip, diff); + length -= 8; assert(op - ip >= 8); assert(op <= oend); } @@ -642,12 +866,35 @@ static void ZSTD_safecopy(BYTE* op, BYTE* const oend_w, BYTE const* ip, ptrdiff_ assert(oend > oend_w); ZSTD_wildcopy(op, ip, oend_w - op, ovtype); ip += oend_w - op; - op = oend_w; + op += oend_w - op; } /* Handle the leftovers. */ while (op < oend) *op++ = *ip++; } +/* ZSTD_safecopyDstBeforeSrc(): + * This version allows overlap with dst before src, or handles the non-overlap case with dst after src + * Kept separate from more common ZSTD_safecopy case to avoid performance impact to the safecopy common case */ +static void ZSTD_safecopyDstBeforeSrc(BYTE* op, const BYTE* ip, ptrdiff_t length) { + ptrdiff_t const diff = op - ip; + BYTE* const oend = op + length; + + if (length < 8 || diff > -8) { + /* Handle short lengths, close overlaps, and dst not before src. */ + while (op < oend) *op++ = *ip++; + return; + } + + if (op <= oend - WILDCOPY_OVERLENGTH && diff < -WILDCOPY_VECLEN) { + ZSTD_wildcopy(op, ip, oend - WILDCOPY_OVERLENGTH - op, ZSTD_no_overlap); + ip += oend - WILDCOPY_OVERLENGTH - op; + op += oend - WILDCOPY_OVERLENGTH - op; + } + + /* Handle the leftovers. */ + while (op < oend) *op++ = *ip++; +} + /* ZSTD_execSequenceEnd(): * This version handles cases that are near the end of the output buffer. It requires * more careful checks to make sure there is no overflow. By separating out these hard @@ -657,10 +904,11 @@ static void ZSTD_safecopy(BYTE* op, BYTE* const oend_w, BYTE const* ip, ptrdiff_ * to be optimized for many small sequences, since those fall into ZSTD_execSequence(). */ FORCE_NOINLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR size_t ZSTD_execSequenceEnd(BYTE* op, - BYTE* const oend, seq_t sequence, - const BYTE** litPtr, const BYTE* const litLimit, - const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) + BYTE* const oend, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) { BYTE* const oLitEnd = op + sequence.litLength; size_t const sequenceLength = sequence.litLength + sequence.matchLength; @@ -683,27 +931,78 @@ size_t ZSTD_execSequenceEnd(BYTE* op, if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { /* offset beyond prefix */ RETURN_ERROR_IF(sequence.offset > (size_t)(oLitEnd - virtualStart), corruption_detected, ""); - match = dictEnd - (prefixStart-match); + match = dictEnd - (prefixStart - match); if (match + sequence.matchLength <= dictEnd) { - memmove(oLitEnd, match, sequence.matchLength); + ZSTD_memmove(oLitEnd, match, sequence.matchLength); return sequenceLength; } /* span extDict & currentPrefixSegment */ { size_t const length1 = dictEnd - match; - memmove(oLitEnd, match, length1); - op = oLitEnd + length1; - sequence.matchLength -= length1; - match = prefixStart; - } } + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } + } + ZSTD_safecopy(op, oend_w, match, sequence.matchLength, ZSTD_overlap_src_before_dst); + return sequenceLength; +} + +/* ZSTD_execSequenceEndSplitLitBuffer(): + * This version is intended to be used during instances where the litBuffer is still split. It is kept separate to avoid performance impact for the good case. + */ +FORCE_NOINLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_execSequenceEndSplitLitBuffer(BYTE* op, + BYTE* const oend, const BYTE* const oend_w, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + + + /* bounds checks : careful of address space overflow in 32-bit mode */ + RETURN_ERROR_IF(sequenceLength > (size_t)(oend - op), dstSize_tooSmall, "last match must fit within dstBuffer"); + RETURN_ERROR_IF(sequence.litLength > (size_t)(litLimit - *litPtr), corruption_detected, "try to read beyond literal buffer"); + assert(op < op + sequenceLength); + assert(oLitEnd < op + sequenceLength); + + /* copy literals */ + RETURN_ERROR_IF(op > *litPtr && op < *litPtr + sequence.litLength, dstSize_tooSmall, "output should not catch up to and overwrite literal buffer"); + ZSTD_safecopyDstBeforeSrc(op, *litPtr, sequence.litLength); + op = oLitEnd; + *litPtr = iLitEnd; + + /* copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix */ + RETURN_ERROR_IF(sequence.offset > (size_t)(oLitEnd - virtualStart), corruption_detected, ""); + match = dictEnd - (prefixStart - match); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } + } ZSTD_safecopy(op, oend_w, match, sequence.matchLength, ZSTD_overlap_src_before_dst); return sequenceLength; } HINT_INLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR size_t ZSTD_execSequence(BYTE* op, - BYTE* const oend, seq_t sequence, - const BYTE** litPtr, const BYTE* const litLimit, - const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) + BYTE* const oend, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) { BYTE* const oLitEnd = op + sequence.litLength; size_t const sequenceLength = sequence.litLength + sequence.matchLength; @@ -714,6 +1013,104 @@ size_t ZSTD_execSequence(BYTE* op, assert(op != NULL /* Precondition */); assert(oend_w < oend /* No underflow */); + +#if defined(__aarch64__) + /* prefetch sequence starting from match that will be used for copy later */ + PREFETCH_L1(match); +#endif + /* Handle edge cases in a slow path: + * - Read beyond end of literals + * - Match end is within WILDCOPY_OVERLIMIT of oend + * - 32-bit mode and the match length overflows + */ + if (UNLIKELY( + iLitEnd > litLimit || + oMatchEnd > oend_w || + (MEM_32bits() && (size_t)(oend - op) < sequenceLength + WILDCOPY_OVERLENGTH))) + return ZSTD_execSequenceEnd(op, oend, sequence, litPtr, litLimit, prefixStart, virtualStart, dictEnd); + + /* Assumptions (everything else goes into ZSTD_execSequenceEnd()) */ + assert(op <= oLitEnd /* No overflow */); + assert(oLitEnd < oMatchEnd /* Non-zero match & no overflow */); + assert(oMatchEnd <= oend /* No underflow */); + assert(iLitEnd <= litLimit /* Literal length is in bounds */); + assert(oLitEnd <= oend_w /* Can wildcopy literals */); + assert(oMatchEnd <= oend_w /* Can wildcopy matches */); + + /* Copy Literals: + * Split out litLength <= 16 since it is nearly always true. +1.6% on gcc-9. + * We likely don't need the full 32-byte wildcopy. + */ + assert(WILDCOPY_OVERLENGTH >= 16); + ZSTD_copy16(op, (*litPtr)); + if (UNLIKELY(sequence.litLength > 16)) { + ZSTD_wildcopy(op + 16, (*litPtr) + 16, sequence.litLength - 16, ZSTD_no_overlap); + } + op = oLitEnd; + *litPtr = iLitEnd; /* update for next sequence */ + + /* Copy Match */ + if (sequence.offset > (size_t)(oLitEnd - prefixStart)) { + /* offset beyond prefix -> go into extDict */ + RETURN_ERROR_IF(UNLIKELY(sequence.offset > (size_t)(oLitEnd - virtualStart)), corruption_detected, ""); + match = dictEnd + (match - prefixStart); + if (match + sequence.matchLength <= dictEnd) { + ZSTD_memmove(oLitEnd, match, sequence.matchLength); + return sequenceLength; + } + /* span extDict & currentPrefixSegment */ + { size_t const length1 = dictEnd - match; + ZSTD_memmove(oLitEnd, match, length1); + op = oLitEnd + length1; + sequence.matchLength -= length1; + match = prefixStart; + } + } + /* Match within prefix of 1 or more bytes */ + assert(op <= oMatchEnd); + assert(oMatchEnd <= oend_w); + assert(match >= prefixStart); + assert(sequence.matchLength >= 1); + + /* Nearly all offsets are >= WILDCOPY_VECLEN bytes, which means we can use wildcopy + * without overlap checking. + */ + if (LIKELY(sequence.offset >= WILDCOPY_VECLEN)) { + /* We bet on a full wildcopy for matches, since we expect matches to be + * longer than literals (in general). In silesia, ~10% of matches are longer + * than 16 bytes. + */ + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength, ZSTD_no_overlap); + return sequenceLength; + } + assert(sequence.offset < WILDCOPY_VECLEN); + + /* Copy 8 bytes and spread the offset to be >= 8. */ + ZSTD_overlapCopy8(&op, &match, sequence.offset); + + /* If the match length is > 8 bytes, then continue with the wildcopy. */ + if (sequence.matchLength > 8) { + assert(op < oMatchEnd); + ZSTD_wildcopy(op, match, (ptrdiff_t)sequence.matchLength - 8, ZSTD_overlap_src_before_dst); + } + return sequenceLength; +} + +HINT_INLINE +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +size_t ZSTD_execSequenceSplitLitBuffer(BYTE* op, + BYTE* const oend, const BYTE* const oend_w, seq_t sequence, + const BYTE** litPtr, const BYTE* const litLimit, + const BYTE* const prefixStart, const BYTE* const virtualStart, const BYTE* const dictEnd) +{ + BYTE* const oLitEnd = op + sequence.litLength; + size_t const sequenceLength = sequence.litLength + sequence.matchLength; + BYTE* const oMatchEnd = op + sequenceLength; /* risk : address space overflow (32-bits) */ + const BYTE* const iLitEnd = *litPtr + sequence.litLength; + const BYTE* match = oLitEnd - sequence.offset; + + assert(op != NULL /* Precondition */); + assert(oend_w < oend /* No underflow */); /* Handle edge cases in a slow path: * - Read beyond end of literals * - Match end is within WILDCOPY_OVERLIMIT of oend @@ -723,7 +1120,7 @@ size_t ZSTD_execSequence(BYTE* op, iLitEnd > litLimit || oMatchEnd > oend_w || (MEM_32bits() && (size_t)(oend - op) < sequenceLength + WILDCOPY_OVERLENGTH))) - return ZSTD_execSequenceEnd(op, oend, sequence, litPtr, litLimit, prefixStart, virtualStart, dictEnd); + return ZSTD_execSequenceEndSplitLitBuffer(op, oend, oend_w, sequence, litPtr, litLimit, prefixStart, virtualStart, dictEnd); /* Assumptions (everything else goes into ZSTD_execSequenceEnd()) */ assert(op <= oLitEnd /* No overflow */); @@ -751,12 +1148,12 @@ size_t ZSTD_execSequence(BYTE* op, RETURN_ERROR_IF(UNLIKELY(sequence.offset > (size_t)(oLitEnd - virtualStart)), corruption_detected, ""); match = dictEnd + (match - prefixStart); if (match + sequence.matchLength <= dictEnd) { - memmove(oLitEnd, match, sequence.matchLength); + ZSTD_memmove(oLitEnd, match, sequence.matchLength); return sequenceLength; } /* span extDict & currentPrefixSegment */ { size_t const length1 = dictEnd - match; - memmove(oLitEnd, match, length1); + ZSTD_memmove(oLitEnd, match, length1); op = oLitEnd + length1; sequence.matchLength -= length1; match = prefixStart; @@ -791,6 +1188,7 @@ size_t ZSTD_execSequence(BYTE* op, return sequenceLength; } + static void ZSTD_initFseState(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, const ZSTD_seqSymbol* dt) { @@ -804,24 +1202,14 @@ ZSTD_initFseState(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, const ZSTD_seqS } FORCE_INLINE_TEMPLATE void -ZSTD_updateFseState(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD) -{ - ZSTD_seqSymbol const DInfo = DStatePtr->table[DStatePtr->state]; - U32 const nbBits = DInfo.nbBits; - size_t const lowBits = BIT_readBits(bitD, nbBits); - DStatePtr->state = DInfo.nextState + lowBits; -} - -FORCE_INLINE_TEMPLATE void -ZSTD_updateFseStateWithDInfo(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, ZSTD_seqSymbol const DInfo) +ZSTD_updateFseStateWithDInfo(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, U16 nextState, U32 nbBits) { - U32 const nbBits = DInfo.nbBits; size_t const lowBits = BIT_readBits(bitD, nbBits); - DStatePtr->state = DInfo.nextState + lowBits; + DStatePtr->state = nextState + lowBits; } /* We need to add at most (ZSTD_WINDOWLOG_MAX_32 - 1) bits to read the maximum - * offset bits. But we can only read at most (STREAM_ACCUMULATOR_MIN_32 - 1) + * offset bits. But we can only read at most STREAM_ACCUMULATOR_MIN_32 * bits before reloading. This value is the maximum number of bytes we read * after reloading when we are decoding long offsets. */ @@ -831,122 +1219,135 @@ ZSTD_updateFseStateWithDInfo(ZSTD_fseState* DStatePtr, BIT_DStream_t* bitD, ZSTD : 0) typedef enum { ZSTD_lo_isRegularOffset, ZSTD_lo_isLongOffset=1 } ZSTD_longOffset_e; -typedef enum { ZSTD_p_noPrefetch=0, ZSTD_p_prefetch=1 } ZSTD_prefetch_e; +/** + * ZSTD_decodeSequence(): + * @p longOffsets : tells the decoder to reload more bit while decoding large offsets + * only used in 32-bit mode + * @return : Sequence (litL + matchL + offset) + */ FORCE_INLINE_TEMPLATE seq_t -ZSTD_decodeSequence(seqState_t* seqState, const ZSTD_longOffset_e longOffsets, const ZSTD_prefetch_e prefetch) +ZSTD_decodeSequence(seqState_t* seqState, const ZSTD_longOffset_e longOffsets, const int isLastSeq) { seq_t seq; - ZSTD_seqSymbol const llDInfo = seqState->stateLL.table[seqState->stateLL.state]; - ZSTD_seqSymbol const mlDInfo = seqState->stateML.table[seqState->stateML.state]; - ZSTD_seqSymbol const ofDInfo = seqState->stateOffb.table[seqState->stateOffb.state]; - U32 const llBase = llDInfo.baseValue; - U32 const mlBase = mlDInfo.baseValue; - U32 const ofBase = ofDInfo.baseValue; - BYTE const llBits = llDInfo.nbAdditionalBits; - BYTE const mlBits = mlDInfo.nbAdditionalBits; - BYTE const ofBits = ofDInfo.nbAdditionalBits; - BYTE const totalBits = llBits+mlBits+ofBits; - - /* sequence */ - { size_t offset; - if (ofBits > 1) { - ZSTD_STATIC_ASSERT(ZSTD_lo_isLongOffset == 1); - ZSTD_STATIC_ASSERT(LONG_OFFSETS_MAX_EXTRA_BITS_32 == 5); - assert(ofBits <= MaxOff); - if (MEM_32bits() && longOffsets && (ofBits >= STREAM_ACCUMULATOR_MIN_32)) { - U32 const extraBits = ofBits - MIN(ofBits, 32 - seqState->DStream.bitsConsumed); - offset = ofBase + (BIT_readBitsFast(&seqState->DStream, ofBits - extraBits) << extraBits); - BIT_reloadDStream(&seqState->DStream); - if (extraBits) offset += BIT_readBitsFast(&seqState->DStream, extraBits); - assert(extraBits <= LONG_OFFSETS_MAX_EXTRA_BITS_32); /* to avoid another reload */ - } else { - offset = ofBase + BIT_readBitsFast(&seqState->DStream, ofBits/*>0*/); /* <= (ZSTD_WINDOWLOG_MAX-1) bits */ - if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); - } - seqState->prevOffset[2] = seqState->prevOffset[1]; - seqState->prevOffset[1] = seqState->prevOffset[0]; - seqState->prevOffset[0] = offset; - } else { - U32 const ll0 = (llBase == 0); - if (LIKELY((ofBits == 0))) { - if (LIKELY(!ll0)) - offset = seqState->prevOffset[0]; - else { - offset = seqState->prevOffset[1]; - seqState->prevOffset[1] = seqState->prevOffset[0]; - seqState->prevOffset[0] = offset; + /* + * ZSTD_seqSymbol is a 64 bits wide structure. + * It can be loaded in one operation + * and its fields extracted by simply shifting or bit-extracting on aarch64. + * GCC doesn't recognize this and generates more unnecessary ldr/ldrb/ldrh + * operations that cause performance drop. This can be avoided by using this + * ZSTD_memcpy hack. + */ +#if defined(__aarch64__) && (defined(__GNUC__) && !defined(__clang__)) + ZSTD_seqSymbol llDInfoS, mlDInfoS, ofDInfoS; + ZSTD_seqSymbol* const llDInfo = &llDInfoS; + ZSTD_seqSymbol* const mlDInfo = &mlDInfoS; + ZSTD_seqSymbol* const ofDInfo = &ofDInfoS; + ZSTD_memcpy(llDInfo, seqState->stateLL.table + seqState->stateLL.state, sizeof(ZSTD_seqSymbol)); + ZSTD_memcpy(mlDInfo, seqState->stateML.table + seqState->stateML.state, sizeof(ZSTD_seqSymbol)); + ZSTD_memcpy(ofDInfo, seqState->stateOffb.table + seqState->stateOffb.state, sizeof(ZSTD_seqSymbol)); +#else + const ZSTD_seqSymbol* const llDInfo = seqState->stateLL.table + seqState->stateLL.state; + const ZSTD_seqSymbol* const mlDInfo = seqState->stateML.table + seqState->stateML.state; + const ZSTD_seqSymbol* const ofDInfo = seqState->stateOffb.table + seqState->stateOffb.state; +#endif + seq.matchLength = mlDInfo->baseValue; + seq.litLength = llDInfo->baseValue; + { U32 const ofBase = ofDInfo->baseValue; + BYTE const llBits = llDInfo->nbAdditionalBits; + BYTE const mlBits = mlDInfo->nbAdditionalBits; + BYTE const ofBits = ofDInfo->nbAdditionalBits; + BYTE const totalBits = llBits+mlBits+ofBits; + + U16 const llNext = llDInfo->nextState; + U16 const mlNext = mlDInfo->nextState; + U16 const ofNext = ofDInfo->nextState; + U32 const llnbBits = llDInfo->nbBits; + U32 const mlnbBits = mlDInfo->nbBits; + U32 const ofnbBits = ofDInfo->nbBits; + + assert(llBits <= MaxLLBits); + assert(mlBits <= MaxMLBits); + assert(ofBits <= MaxOff); + /* + * As gcc has better branch and block analyzers, sometimes it is only + * valuable to mark likeliness for clang, it gives around 3-4% of + * performance. + */ + + /* sequence */ + { size_t offset; + if (ofBits > 1) { + ZSTD_STATIC_ASSERT(ZSTD_lo_isLongOffset == 1); + ZSTD_STATIC_ASSERT(LONG_OFFSETS_MAX_EXTRA_BITS_32 == 5); + ZSTD_STATIC_ASSERT(STREAM_ACCUMULATOR_MIN_32 > LONG_OFFSETS_MAX_EXTRA_BITS_32); + ZSTD_STATIC_ASSERT(STREAM_ACCUMULATOR_MIN_32 - LONG_OFFSETS_MAX_EXTRA_BITS_32 >= MaxMLBits); + if (MEM_32bits() && longOffsets && (ofBits >= STREAM_ACCUMULATOR_MIN_32)) { + /* Always read extra bits, this keeps the logic simple, + * avoids branches, and avoids accidentally reading 0 bits. + */ + U32 const extraBits = LONG_OFFSETS_MAX_EXTRA_BITS_32; + offset = ofBase + (BIT_readBitsFast(&seqState->DStream, ofBits - extraBits) << extraBits); + BIT_reloadDStream(&seqState->DStream); + offset += BIT_readBitsFast(&seqState->DStream, extraBits); + } else { + offset = ofBase + BIT_readBitsFast(&seqState->DStream, ofBits/*>0*/); /* <= (ZSTD_WINDOWLOG_MAX-1) bits */ + if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); } + seqState->prevOffset[2] = seqState->prevOffset[1]; + seqState->prevOffset[1] = seqState->prevOffset[0]; + seqState->prevOffset[0] = offset; } else { - offset = ofBase + ll0 + BIT_readBitsFast(&seqState->DStream, 1); - { size_t temp = (offset==3) ? seqState->prevOffset[0] - 1 : seqState->prevOffset[offset]; - temp += !temp; /* 0 is not valid; input is corrupted; force offset to 1 */ - if (offset != 1) seqState->prevOffset[2] = seqState->prevOffset[1]; - seqState->prevOffset[1] = seqState->prevOffset[0]; - seqState->prevOffset[0] = offset = temp; - } } } - seq.offset = offset; - } + U32 const ll0 = (llDInfo->baseValue == 0); + if (LIKELY((ofBits == 0))) { + offset = seqState->prevOffset[ll0]; + seqState->prevOffset[1] = seqState->prevOffset[!ll0]; + seqState->prevOffset[0] = offset; + } else { + offset = ofBase + ll0 + BIT_readBitsFast(&seqState->DStream, 1); + { size_t temp = (offset==3) ? seqState->prevOffset[0] - 1 : seqState->prevOffset[offset]; + temp -= !temp; /* 0 is not valid: input corrupted => force offset to -1 => corruption detected at execSequence */ + if (offset != 1) seqState->prevOffset[2] = seqState->prevOffset[1]; + seqState->prevOffset[1] = seqState->prevOffset[0]; + seqState->prevOffset[0] = offset = temp; + } } } + seq.offset = offset; + } - seq.matchLength = mlBase; - if (mlBits > 0) - seq.matchLength += BIT_readBitsFast(&seqState->DStream, mlBits/*>0*/); + if (mlBits > 0) + seq.matchLength += BIT_readBitsFast(&seqState->DStream, mlBits/*>0*/); - if (MEM_32bits() && (mlBits+llBits >= STREAM_ACCUMULATOR_MIN_32-LONG_OFFSETS_MAX_EXTRA_BITS_32)) - BIT_reloadDStream(&seqState->DStream); - if (MEM_64bits() && UNLIKELY(totalBits >= STREAM_ACCUMULATOR_MIN_64-(LLFSELog+MLFSELog+OffFSELog))) - BIT_reloadDStream(&seqState->DStream); - /* Ensure there are enough bits to read the rest of data in 64-bit mode. */ - ZSTD_STATIC_ASSERT(16+LLFSELog+MLFSELog+OffFSELog < STREAM_ACCUMULATOR_MIN_64); + if (MEM_32bits() && (mlBits+llBits >= STREAM_ACCUMULATOR_MIN_32-LONG_OFFSETS_MAX_EXTRA_BITS_32)) + BIT_reloadDStream(&seqState->DStream); + if (MEM_64bits() && UNLIKELY(totalBits >= STREAM_ACCUMULATOR_MIN_64-(LLFSELog+MLFSELog+OffFSELog))) + BIT_reloadDStream(&seqState->DStream); + /* Ensure there are enough bits to read the rest of data in 64-bit mode. */ + ZSTD_STATIC_ASSERT(16+LLFSELog+MLFSELog+OffFSELog < STREAM_ACCUMULATOR_MIN_64); - seq.litLength = llBase; - if (llBits > 0) - seq.litLength += BIT_readBitsFast(&seqState->DStream, llBits/*>0*/); + if (llBits > 0) + seq.litLength += BIT_readBitsFast(&seqState->DStream, llBits/*>0*/); - if (MEM_32bits()) - BIT_reloadDStream(&seqState->DStream); + if (MEM_32bits()) + BIT_reloadDStream(&seqState->DStream); - DEBUGLOG(6, "seq: litL=%u, matchL=%u, offset=%u", - (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); + DEBUGLOG(6, "seq: litL=%u, matchL=%u, offset=%u", + (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); - if (prefetch == ZSTD_p_prefetch) { - size_t const pos = seqState->pos + seq.litLength; - const BYTE* const matchBase = (seq.offset > pos) ? seqState->dictEnd : seqState->prefixStart; - seq.match = matchBase + pos - seq.offset; /* note : this operation can overflow when seq.offset is really too large, which can only happen when input is corrupted. - * No consequence though : no memory access will occur, offset is only used for prefetching */ - seqState->pos = pos + seq.matchLength; - } - - /* ANS state update - * gcc-9.0.0 does 2.5% worse with ZSTD_updateFseStateWithDInfo(). - * clang-9.2.0 does 7% worse with ZSTD_updateFseState(). - * Naturally it seems like ZSTD_updateFseStateWithDInfo() should be the - * better option, so it is the default for other compilers. But, if you - * measure that it is worse, please put up a pull request. - */ - { -#if defined(__GNUC__) && !defined(__clang__) - const int kUseUpdateFseState = 1; -#else - const int kUseUpdateFseState = 0; -#endif - if (kUseUpdateFseState) { - ZSTD_updateFseState(&seqState->stateLL, &seqState->DStream); /* <= 9 bits */ - ZSTD_updateFseState(&seqState->stateML, &seqState->DStream); /* <= 9 bits */ + if (!isLastSeq) { + /* don't update FSE state for last Sequence */ + ZSTD_updateFseStateWithDInfo(&seqState->stateLL, &seqState->DStream, llNext, llnbBits); /* <= 9 bits */ + ZSTD_updateFseStateWithDInfo(&seqState->stateML, &seqState->DStream, mlNext, mlnbBits); /* <= 9 bits */ if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); /* <= 18 bits */ - ZSTD_updateFseState(&seqState->stateOffb, &seqState->DStream); /* <= 8 bits */ - } else { - ZSTD_updateFseStateWithDInfo(&seqState->stateLL, &seqState->DStream, llDInfo); /* <= 9 bits */ - ZSTD_updateFseStateWithDInfo(&seqState->stateML, &seqState->DStream, mlDInfo); /* <= 9 bits */ - if (MEM_32bits()) BIT_reloadDStream(&seqState->DStream); /* <= 18 bits */ - ZSTD_updateFseStateWithDInfo(&seqState->stateOffb, &seqState->DStream, ofDInfo); /* <= 8 bits */ + ZSTD_updateFseStateWithDInfo(&seqState->stateOffb, &seqState->DStream, ofNext, ofnbBits); /* <= 8 bits */ + BIT_reloadDStream(&seqState->DStream); } } return seq; } -#ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) +#if DEBUGLEVEL >= 1 static int ZSTD_dictionaryIsActive(ZSTD_DCtx const* dctx, BYTE const* prefixStart, BYTE const* oLitEnd) { size_t const windowSize = dctx->fParams.windowSize; @@ -961,59 +1362,65 @@ static int ZSTD_dictionaryIsActive(ZSTD_DCtx const* dctx, BYTE const* prefixStar /* Dictionary is active. */ return 1; } +#endif -MEM_STATIC void ZSTD_assertValidSequence( +static void ZSTD_assertValidSequence( ZSTD_DCtx const* dctx, BYTE const* op, BYTE const* oend, seq_t const seq, BYTE const* prefixStart, BYTE const* virtualStart) { - size_t const windowSize = dctx->fParams.windowSize; - size_t const sequenceSize = seq.litLength + seq.matchLength; - BYTE const* const oLitEnd = op + seq.litLength; - DEBUGLOG(6, "Checking sequence: litL=%u matchL=%u offset=%u", - (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); - assert(op <= oend); - assert((size_t)(oend - op) >= sequenceSize); - assert(sequenceSize <= ZSTD_BLOCKSIZE_MAX); - if (ZSTD_dictionaryIsActive(dctx, prefixStart, oLitEnd)) { - size_t const dictSize = (size_t)((char const*)dctx->dictContentEndForFuzzing - (char const*)dctx->dictContentBeginForFuzzing); - /* Offset must be within the dictionary. */ - assert(seq.offset <= (size_t)(oLitEnd - virtualStart)); - assert(seq.offset <= windowSize + dictSize); - } else { - /* Offset must be within our window. */ - assert(seq.offset <= windowSize); +#if DEBUGLEVEL >= 1 + if (dctx->isFrameDecompression) { + size_t const windowSize = dctx->fParams.windowSize; + size_t const sequenceSize = seq.litLength + seq.matchLength; + BYTE const* const oLitEnd = op + seq.litLength; + DEBUGLOG(6, "Checking sequence: litL=%u matchL=%u offset=%u", + (U32)seq.litLength, (U32)seq.matchLength, (U32)seq.offset); + assert(op <= oend); + assert((size_t)(oend - op) >= sequenceSize); + assert(sequenceSize <= ZSTD_blockSizeMax(dctx)); + if (ZSTD_dictionaryIsActive(dctx, prefixStart, oLitEnd)) { + size_t const dictSize = (size_t)((char const*)dctx->dictContentEndForFuzzing - (char const*)dctx->dictContentBeginForFuzzing); + /* Offset must be within the dictionary. */ + assert(seq.offset <= (size_t)(oLitEnd - virtualStart)); + assert(seq.offset <= windowSize + dictSize); + } else { + /* Offset must be within our window. */ + assert(seq.offset <= windowSize); + } } +#else + (void)dctx, (void)op, (void)oend, (void)seq, (void)prefixStart, (void)virtualStart; +#endif } #endif #ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG + + FORCE_INLINE_TEMPLATE size_t DONT_VECTORIZE -ZSTD_decompressSequences_body( ZSTD_DCtx* dctx, +ZSTD_decompressSequences_bodySplitLitBuffer( ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame) + const ZSTD_longOffset_e isLongOffset) { const BYTE* ip = (const BYTE*)seqStart; const BYTE* const iend = ip + seqSize; - BYTE* const ostart = (BYTE* const)dst; - BYTE* const oend = ostart + maxDstSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = ZSTD_maybeNullPtrAdd(ostart, maxDstSize); BYTE* op = ostart; const BYTE* litPtr = dctx->litPtr; - const BYTE* const litEnd = litPtr + dctx->litSize; + const BYTE* litBufferEnd = dctx->litBufferEnd; const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); const BYTE* const vBase = (const BYTE*) (dctx->virtualStart); const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); - DEBUGLOG(5, "ZSTD_decompressSequences_body"); - (void)frame; + DEBUGLOG(5, "ZSTD_decompressSequences_bodySplitLitBuffer (%i seqs)", nbSeq); - /* Regen sequences */ + /* Literals are split between internal buffer & output buffer */ if (nbSeq) { seqState_t seqState; - size_t error = 0; dctx->fseEntropy = 1; { U32 i; for (i=0; ientropy.rep[i]; } RETURN_ERROR_IF( @@ -1029,134 +1436,331 @@ ZSTD_decompressSequences_body( ZSTD_DCtx* dctx, BIT_DStream_endOfBuffer < BIT_DStream_completed && BIT_DStream_completed < BIT_DStream_overflow); + /* decompress without overrunning litPtr begins */ + { seq_t sequence = {0,0,0}; /* some static analyzer believe that @sequence is not initialized (it necessarily is, since for(;;) loop as at least one iteration) */ + /* Align the decompression loop to 32 + 16 bytes. + * + * zstd compiled with gcc-9 on an Intel i9-9900k shows 10% decompression + * speed swings based on the alignment of the decompression loop. This + * performance swing is caused by parts of the decompression loop falling + * out of the DSB. The entire decompression loop should fit in the DSB, + * when it can't we get much worse performance. You can measure if you've + * hit the good case or the bad case with this perf command for some + * compressed file test.zst: + * + * perf stat -e cycles -e instructions -e idq.all_dsb_cycles_any_uops \ + * -e idq.all_mite_cycles_any_uops -- ./zstd -tq test.zst + * + * If you see most cycles served out of the MITE you've hit the bad case. + * If you see most cycles served out of the DSB you've hit the good case. + * If it is pretty even then you may be in an okay case. + * + * This issue has been reproduced on the following CPUs: + * - Kabylake: Macbook Pro (15-inch, 2019) 2.4 GHz Intel Core i9 + * Use Instruments->Counters to get DSB/MITE cycles. + * I never got performance swings, but I was able to + * go from the good case of mostly DSB to half of the + * cycles served from MITE. + * - Coffeelake: Intel i9-9900k + * - Coffeelake: Intel i7-9700k + * + * I haven't been able to reproduce the instability or DSB misses on any + * of the following CPUS: + * - Haswell + * - Broadwell: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GH + * - Skylake + * + * Alignment is done for each of the three major decompression loops: + * - ZSTD_decompressSequences_bodySplitLitBuffer - presplit section of the literal buffer + * - ZSTD_decompressSequences_bodySplitLitBuffer - postsplit section of the literal buffer + * - ZSTD_decompressSequences_body + * Alignment choices are made to minimize large swings on bad cases and influence on performance + * from changes external to this code, rather than to overoptimize on the current commit. + * + * If you are seeing performance stability this script can help test. + * It tests on 4 commits in zstd where I saw performance change. + * + * https://gist.github.com/terrelln/9889fc06a423fd5ca6e99351564473f4 + */ #if defined(__GNUC__) && defined(__x86_64__) - /* Align the decompression loop to 32 + 16 bytes. - * - * zstd compiled with gcc-9 on an Intel i9-9900k shows 10% decompression - * speed swings based on the alignment of the decompression loop. This - * performance swing is caused by parts of the decompression loop falling - * out of the DSB. The entire decompression loop should fit in the DSB, - * when it can't we get much worse performance. You can measure if you've - * hit the good case or the bad case with this perf command for some - * compressed file test.zst: - * - * perf stat -e cycles -e instructions -e idq.all_dsb_cycles_any_uops \ - * -e idq.all_mite_cycles_any_uops -- ./zstd -tq test.zst - * - * If you see most cycles served out of the MITE you've hit the bad case. - * If you see most cycles served out of the DSB you've hit the good case. - * If it is pretty even then you may be in an okay case. - * - * I've been able to reproduce this issue on the following CPUs: - * - Kabylake: Macbook Pro (15-inch, 2019) 2.4 GHz Intel Core i9 - * Use Instruments->Counters to get DSB/MITE cycles. - * I never got performance swings, but I was able to - * go from the good case of mostly DSB to half of the - * cycles served from MITE. - * - Coffeelake: Intel i9-9900k - * - * I haven't been able to reproduce the instability or DSB misses on any - * of the following CPUS: - * - Haswell - * - Broadwell: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GH - * - Skylake - * - * If you are seeing performance stability this script can help test. - * It tests on 4 commits in zstd where I saw performance change. - * - * https://gist.github.com/terrelln/9889fc06a423fd5ca6e99351564473f4 - */ - __asm__(".p2align 5"); - __asm__("nop"); - __asm__(".p2align 4"); + __asm__(".p2align 6"); +# if __GNUC__ >= 7 + /* good for gcc-7, gcc-9, and gcc-11 */ + __asm__("nop"); + __asm__(".p2align 5"); + __asm__("nop"); + __asm__(".p2align 4"); +# if __GNUC__ == 8 || __GNUC__ == 10 + /* good for gcc-8 and gcc-10 */ + __asm__("nop"); + __asm__(".p2align 3"); +# endif +# endif #endif - for ( ; ; ) { - seq_t const sequence = ZSTD_decodeSequence(&seqState, isLongOffset, ZSTD_p_noPrefetch); - size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litEnd, prefixStart, vBase, dictEnd); + + /* Handle the initial state where litBuffer is currently split between dst and litExtraBuffer */ + for ( ; nbSeq; nbSeq--) { + sequence = ZSTD_decodeSequence(&seqState, isLongOffset, nbSeq==1); + if (litPtr + sequence.litLength > dctx->litBufferEnd) break; + { size_t const oneSeqSize = ZSTD_execSequenceSplitLitBuffer(op, oend, litPtr + sequence.litLength - WILDCOPY_OVERLENGTH, sequence, &litPtr, litBufferEnd, prefixStart, vBase, dictEnd); #if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) - assert(!ZSTD_isError(oneSeqSize)); - if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); #endif - DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); - BIT_reloadDStream(&(seqState.DStream)); - /* gcc and clang both don't like early returns in this loop. - * gcc doesn't like early breaks either. - * Instead save an error and report it at the end. - * When there is an error, don't increment op, so we don't - * overwrite. - */ - if (UNLIKELY(ZSTD_isError(oneSeqSize))) error = oneSeqSize; - else op += oneSeqSize; - if (UNLIKELY(!--nbSeq)) break; + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + } } + DEBUGLOG(6, "reached: (litPtr + sequence.litLength > dctx->litBufferEnd)"); + + /* If there are more sequences, they will need to read literals from litExtraBuffer; copy over the remainder from dst and update litPtr and litEnd */ + if (nbSeq > 0) { + const size_t leftoverLit = dctx->litBufferEnd - litPtr; + DEBUGLOG(6, "There are %i sequences left, and %zu/%zu literals left in buffer", nbSeq, leftoverLit, sequence.litLength); + if (leftoverLit) { + RETURN_ERROR_IF(leftoverLit > (size_t)(oend - op), dstSize_tooSmall, "remaining lit must fit within dstBuffer"); + ZSTD_safecopyDstBeforeSrc(op, litPtr, leftoverLit); + sequence.litLength -= leftoverLit; + op += leftoverLit; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + { size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litBufferEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + } + nbSeq--; + } + } + + if (nbSeq > 0) { + /* there is remaining lit from extra buffer */ + +#if defined(__GNUC__) && defined(__x86_64__) + __asm__(".p2align 6"); + __asm__("nop"); +# if __GNUC__ != 7 + /* worse for gcc-7 better for gcc-8, gcc-9, and gcc-10 and clang */ + __asm__(".p2align 4"); + __asm__("nop"); + __asm__(".p2align 3"); +# elif __GNUC__ >= 11 + __asm__(".p2align 3"); +# else + __asm__(".p2align 5"); + __asm__("nop"); + __asm__(".p2align 3"); +# endif +#endif + + for ( ; nbSeq ; nbSeq--) { + seq_t const sequence = ZSTD_decodeSequence(&seqState, isLongOffset, nbSeq==1); + size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litBufferEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; + } } /* check if reached exact end */ - DEBUGLOG(5, "ZSTD_decompressSequences_body: after decode loop, remaining nbSeq : %i", nbSeq); - if (ZSTD_isError(error)) return error; + DEBUGLOG(5, "ZSTD_decompressSequences_bodySplitLitBuffer: after decode loop, remaining nbSeq : %i", nbSeq); RETURN_ERROR_IF(nbSeq, corruption_detected, ""); - RETURN_ERROR_IF(BIT_reloadDStream(&seqState.DStream) < BIT_DStream_completed, corruption_detected, ""); + DEBUGLOG(5, "bitStream : start=%p, ptr=%p, bitsConsumed=%u", seqState.DStream.start, seqState.DStream.ptr, seqState.DStream.bitsConsumed); + RETURN_ERROR_IF(!BIT_endOfDStream(&seqState.DStream), corruption_detected, ""); /* save reps for next block */ { U32 i; for (i=0; ientropy.rep[i] = (U32)(seqState.prevOffset[i]); } } /* last literal segment */ - { size_t const lastLLSize = litEnd - litPtr; + if (dctx->litBufferLocation == ZSTD_split) { + /* split hasn't been reached yet, first get dst then copy litExtraBuffer */ + size_t const lastLLSize = (size_t)(litBufferEnd - litPtr); + DEBUGLOG(6, "copy last literals from segment : %u", (U32)lastLLSize); + RETURN_ERROR_IF(lastLLSize > (size_t)(oend - op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memmove(op, litPtr, lastLLSize); + op += lastLLSize; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + } + /* copy last literals from internal buffer */ + { size_t const lastLLSize = (size_t)(litBufferEnd - litPtr); + DEBUGLOG(6, "copy last literals from internal buffer : %u", (U32)lastLLSize); RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); if (op != NULL) { - memcpy(op, litPtr, lastLLSize); + ZSTD_memcpy(op, litPtr, lastLLSize); op += lastLLSize; + } } + + DEBUGLOG(6, "decoded block of size %u bytes", (U32)(op - ostart)); + return (size_t)(op - ostart); +} + +FORCE_INLINE_TEMPLATE size_t +DONT_VECTORIZE +ZSTD_decompressSequences_body(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + const BYTE* ip = (const BYTE*)seqStart; + const BYTE* const iend = ip + seqSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = dctx->litBufferLocation == ZSTD_not_in_dst ? ZSTD_maybeNullPtrAdd(ostart, maxDstSize) : dctx->litBuffer; + BYTE* op = ostart; + const BYTE* litPtr = dctx->litPtr; + const BYTE* const litEnd = litPtr + dctx->litSize; + const BYTE* const prefixStart = (const BYTE*)(dctx->prefixStart); + const BYTE* const vBase = (const BYTE*)(dctx->virtualStart); + const BYTE* const dictEnd = (const BYTE*)(dctx->dictEnd); + DEBUGLOG(5, "ZSTD_decompressSequences_body: nbSeq = %d", nbSeq); + + /* Regen sequences */ + if (nbSeq) { + seqState_t seqState; + dctx->fseEntropy = 1; + { U32 i; for (i = 0; i < ZSTD_REP_NUM; i++) seqState.prevOffset[i] = dctx->entropy.rep[i]; } + RETURN_ERROR_IF( + ERR_isError(BIT_initDStream(&seqState.DStream, ip, iend - ip)), + corruption_detected, ""); + ZSTD_initFseState(&seqState.stateLL, &seqState.DStream, dctx->LLTptr); + ZSTD_initFseState(&seqState.stateOffb, &seqState.DStream, dctx->OFTptr); + ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); + assert(dst != NULL); + +#if defined(__GNUC__) && defined(__x86_64__) + __asm__(".p2align 6"); + __asm__("nop"); +# if __GNUC__ >= 7 + __asm__(".p2align 5"); + __asm__("nop"); + __asm__(".p2align 3"); +# else + __asm__(".p2align 4"); + __asm__("nop"); + __asm__(".p2align 3"); +# endif +#endif + + for ( ; nbSeq ; nbSeq--) { + seq_t const sequence = ZSTD_decodeSequence(&seqState, isLongOffset, nbSeq==1); + size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequence, &litPtr, litEnd, prefixStart, vBase, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequence, prefixStart, vBase); +#endif + if (UNLIKELY(ZSTD_isError(oneSeqSize))) + return oneSeqSize; + DEBUGLOG(6, "regenerated sequence size : %u", (U32)oneSeqSize); + op += oneSeqSize; } + + /* check if reached exact end */ + assert(nbSeq == 0); + RETURN_ERROR_IF(!BIT_endOfDStream(&seqState.DStream), corruption_detected, ""); + /* save reps for next block */ + { U32 i; for (i=0; ientropy.rep[i] = (U32)(seqState.prevOffset[i]); } } - return op-ostart; + /* last literal segment */ + { size_t const lastLLSize = (size_t)(litEnd - litPtr); + DEBUGLOG(6, "copy last literals : %u", (U32)lastLLSize); + RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memcpy(op, litPtr, lastLLSize); + op += lastLLSize; + } } + + DEBUGLOG(6, "decoded block of size %u bytes", (U32)(op - ostart)); + return (size_t)(op - ostart); } static size_t ZSTD_decompressSequences_default(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame) + const ZSTD_longOffset_e isLongOffset) { - return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); + return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} + +static size_t +ZSTD_decompressSequencesSplitLitBuffer_default(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequences_bodySplitLitBuffer(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); } #endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ #ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT + +FORCE_INLINE_TEMPLATE + +size_t ZSTD_prefetchMatch(size_t prefetchPos, seq_t const sequence, + const BYTE* const prefixStart, const BYTE* const dictEnd) +{ + prefetchPos += sequence.litLength; + { const BYTE* const matchBase = (sequence.offset > prefetchPos) ? dictEnd : prefixStart; + /* note : this operation can overflow when seq.offset is really too large, which can only happen when input is corrupted. + * No consequence though : memory address is only used for prefetching, not for dereferencing */ + const BYTE* const match = ZSTD_wrappedPtrSub(ZSTD_wrappedPtrAdd(matchBase, prefetchPos), sequence.offset); + PREFETCH_L1(match); PREFETCH_L1(match+CACHELINE_SIZE); /* note : it's safe to invoke PREFETCH() on any memory address, including invalid ones */ + } + return prefetchPos + sequence.matchLength; +} + +/* This decoding function employs prefetching + * to reduce latency impact of cache misses. + * It's generally employed when block contains a significant portion of long-distance matches + * or when coupled with a "cold" dictionary */ FORCE_INLINE_TEMPLATE size_t ZSTD_decompressSequencesLong_body( ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame) + const ZSTD_longOffset_e isLongOffset) { const BYTE* ip = (const BYTE*)seqStart; const BYTE* const iend = ip + seqSize; - BYTE* const ostart = (BYTE* const)dst; - BYTE* const oend = ostart + maxDstSize; + BYTE* const ostart = (BYTE*)dst; + BYTE* const oend = dctx->litBufferLocation == ZSTD_in_dst ? dctx->litBuffer : ZSTD_maybeNullPtrAdd(ostart, maxDstSize); BYTE* op = ostart; const BYTE* litPtr = dctx->litPtr; - const BYTE* const litEnd = litPtr + dctx->litSize; + const BYTE* litBufferEnd = dctx->litBufferEnd; const BYTE* const prefixStart = (const BYTE*) (dctx->prefixStart); const BYTE* const dictStart = (const BYTE*) (dctx->virtualStart); const BYTE* const dictEnd = (const BYTE*) (dctx->dictEnd); - (void)frame; /* Regen sequences */ if (nbSeq) { -#define STORED_SEQS 4 +#define STORED_SEQS 8 #define STORED_SEQS_MASK (STORED_SEQS-1) -#define ADVANCED_SEQS 4 +#define ADVANCED_SEQS STORED_SEQS seq_t sequences[STORED_SEQS]; int const seqAdvance = MIN(nbSeq, ADVANCED_SEQS); seqState_t seqState; int seqNb; + size_t prefetchPos = (size_t)(op-prefixStart); /* track position relative to prefixStart */ + dctx->fseEntropy = 1; { int i; for (i=0; ientropy.rep[i]; } - seqState.prefixStart = prefixStart; - seqState.pos = (size_t)(op-prefixStart); - seqState.dictEnd = dictEnd; assert(dst != NULL); assert(iend >= ip); RETURN_ERROR_IF( @@ -1167,37 +1771,95 @@ ZSTD_decompressSequencesLong_body( ZSTD_initFseState(&seqState.stateML, &seqState.DStream, dctx->MLTptr); /* prepare in advance */ - for (seqNb=0; (BIT_reloadDStream(&seqState.DStream) <= BIT_DStream_completed) && (seqNblitBufferLocation == ZSTD_split && litPtr + sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK].litLength > dctx->litBufferEnd) { + /* lit buffer is reaching split point, empty out the first buffer and transition to litExtraBuffer */ + const size_t leftoverLit = dctx->litBufferEnd - litPtr; + if (leftoverLit) + { + RETURN_ERROR_IF(leftoverLit > (size_t)(oend - op), dstSize_tooSmall, "remaining lit must fit within dstBuffer"); + ZSTD_safecopyDstBeforeSrc(op, litPtr, leftoverLit); + sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK].litLength -= leftoverLit; + op += leftoverLit; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + { size_t const oneSeqSize = ZSTD_execSequence(op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); #if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) - assert(!ZSTD_isError(oneSeqSize)); - if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb-ADVANCED_SEQS) & STORED_SEQS_MASK], prefixStart, dictStart); + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], prefixStart, dictStart); #endif - if (ZSTD_isError(oneSeqSize)) return oneSeqSize; - PREFETCH_L1(sequence.match); PREFETCH_L1(sequence.match + sequence.matchLength - 1); /* note : it's safe to invoke PREFETCH() on any memory address, including invalid ones */ - sequences[seqNb & STORED_SEQS_MASK] = sequence; - op += oneSeqSize; + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + + prefetchPos = ZSTD_prefetchMatch(prefetchPos, sequence, prefixStart, dictEnd); + sequences[seqNb & STORED_SEQS_MASK] = sequence; + op += oneSeqSize; + } } + else + { + /* lit buffer is either wholly contained in first or second split, or not split at all*/ + size_t const oneSeqSize = dctx->litBufferLocation == ZSTD_split ? + ZSTD_execSequenceSplitLitBuffer(op, oend, litPtr + sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK].litLength - WILDCOPY_OVERLENGTH, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd) : + ZSTD_execSequence(op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[(seqNb - ADVANCED_SEQS) & STORED_SEQS_MASK], prefixStart, dictStart); +#endif + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + + prefetchPos = ZSTD_prefetchMatch(prefetchPos, sequence, prefixStart, dictEnd); + sequences[seqNb & STORED_SEQS_MASK] = sequence; + op += oneSeqSize; + } } - RETURN_ERROR_IF(seqNblitBufferLocation == ZSTD_split && litPtr + sequence->litLength > dctx->litBufferEnd) { + const size_t leftoverLit = dctx->litBufferEnd - litPtr; + if (leftoverLit) { + RETURN_ERROR_IF(leftoverLit > (size_t)(oend - op), dstSize_tooSmall, "remaining lit must fit within dstBuffer"); + ZSTD_safecopyDstBeforeSrc(op, litPtr, leftoverLit); + sequence->litLength -= leftoverLit; + op += leftoverLit; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + dctx->litBufferLocation = ZSTD_not_in_dst; + { size_t const oneSeqSize = ZSTD_execSequence(op, oend, *sequence, &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); #if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) - assert(!ZSTD_isError(oneSeqSize)); - if (frame) ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart, dictStart); + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart, dictStart); #endif - if (ZSTD_isError(oneSeqSize)) return oneSeqSize; - op += oneSeqSize; + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + op += oneSeqSize; + } + } + else + { + size_t const oneSeqSize = dctx->litBufferLocation == ZSTD_split ? + ZSTD_execSequenceSplitLitBuffer(op, oend, litPtr + sequence->litLength - WILDCOPY_OVERLENGTH, *sequence, &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd) : + ZSTD_execSequence(op, oend, *sequence, &litPtr, litBufferEnd, prefixStart, dictStart, dictEnd); +#if defined(FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION) && defined(FUZZING_ASSERT_VALID_SEQUENCE) + assert(!ZSTD_isError(oneSeqSize)); + ZSTD_assertValidSequence(dctx, op, oend, sequences[seqNb&STORED_SEQS_MASK], prefixStart, dictStart); +#endif + if (ZSTD_isError(oneSeqSize)) return oneSeqSize; + op += oneSeqSize; + } } /* save reps for next block */ @@ -1205,25 +1867,34 @@ ZSTD_decompressSequencesLong_body( } /* last literal segment */ - { size_t const lastLLSize = litEnd - litPtr; + if (dctx->litBufferLocation == ZSTD_split) { /* first deplete literal buffer in dst, then copy litExtraBuffer */ + size_t const lastLLSize = litBufferEnd - litPtr; + RETURN_ERROR_IF(lastLLSize > (size_t)(oend - op), dstSize_tooSmall, ""); + if (op != NULL) { + ZSTD_memmove(op, litPtr, lastLLSize); + op += lastLLSize; + } + litPtr = dctx->litExtraBuffer; + litBufferEnd = dctx->litExtraBuffer + ZSTD_LITBUFFEREXTRASIZE; + } + { size_t const lastLLSize = litBufferEnd - litPtr; RETURN_ERROR_IF(lastLLSize > (size_t)(oend-op), dstSize_tooSmall, ""); if (op != NULL) { - memcpy(op, litPtr, lastLLSize); + ZSTD_memmove(op, litPtr, lastLLSize); op += lastLLSize; } } - return op-ostart; + return (size_t)(op - ostart); } static size_t ZSTD_decompressSequencesLong_default(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame) + const ZSTD_longOffset_e isLongOffset) { - return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); + return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); } #endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ @@ -1232,17 +1903,34 @@ ZSTD_decompressSequencesLong_default(ZSTD_DCtx* dctx, #if DYNAMIC_BMI2 #ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG +static BMI2_TARGET_ATTRIBUTE size_t +DONT_VECTORIZE +ZSTD_decompressSequences_bmi2(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequences_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +static BMI2_TARGET_ATTRIBUTE size_t +DONT_VECTORIZE +ZSTD_decompressSequencesSplitLitBuffer_bmi2(ZSTD_DCtx* dctx, + void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + return ZSTD_decompressSequences_bodySplitLitBuffer(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} #endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ #ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT -static TARGET_ATTRIBUTE("bmi2") size_t +static BMI2_TARGET_ATTRIBUTE size_t ZSTD_decompressSequencesLong_bmi2(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame) + const ZSTD_longOffset_e isLongOffset) { - return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); + return ZSTD_decompressSequencesLong_body(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); } #endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ @@ -1252,18 +1940,34 @@ typedef size_t (*ZSTD_decompressSequences_t)( ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame); + const ZSTD_longOffset_e isLongOffset); #ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG static size_t ZSTD_decompressSequences(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame) + const ZSTD_longOffset_e isLongOffset) { DEBUGLOG(5, "ZSTD_decompressSequences"); - return ZSTD_decompressSequences_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); +#if DYNAMIC_BMI2 + if (ZSTD_DCtx_get_bmi2(dctx)) { + return ZSTD_decompressSequences_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); + } +#endif + return ZSTD_decompressSequences_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); +} +static size_t +ZSTD_decompressSequencesSplitLitBuffer(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, + const void* seqStart, size_t seqSize, int nbSeq, + const ZSTD_longOffset_e isLongOffset) +{ + DEBUGLOG(5, "ZSTD_decompressSequencesSplitLitBuffer"); +#if DYNAMIC_BMI2 + if (ZSTD_DCtx_get_bmi2(dctx)) { + return ZSTD_decompressSequencesSplitLitBuffer_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); + } +#endif + return ZSTD_decompressSequencesSplitLitBuffer_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); } #endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG */ @@ -1278,69 +1982,114 @@ static size_t ZSTD_decompressSequencesLong(ZSTD_DCtx* dctx, void* dst, size_t maxDstSize, const void* seqStart, size_t seqSize, int nbSeq, - const ZSTD_longOffset_e isLongOffset, - const int frame) + const ZSTD_longOffset_e isLongOffset) { DEBUGLOG(5, "ZSTD_decompressSequencesLong"); #if DYNAMIC_BMI2 - if (dctx->bmi2) { - return ZSTD_decompressSequencesLong_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); + if (ZSTD_DCtx_get_bmi2(dctx)) { + return ZSTD_decompressSequencesLong_bmi2(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); } #endif - return ZSTD_decompressSequencesLong_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset, frame); + return ZSTD_decompressSequencesLong_default(dctx, dst, maxDstSize, seqStart, seqSize, nbSeq, isLongOffset); } #endif /* ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT */ +/** + * @returns The total size of the history referenceable by zstd, including + * both the prefix and the extDict. At @p op any offset larger than this + * is invalid. + */ +static size_t ZSTD_totalHistorySize(BYTE* op, BYTE const* virtualStart) +{ + return (size_t)(op - virtualStart); +} -#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ - !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) -/* ZSTD_getLongOffsetsShare() : +typedef struct { + unsigned longOffsetShare; + unsigned maxNbAdditionalBits; +} ZSTD_OffsetInfo; + +/* ZSTD_getOffsetInfo() : * condition : offTable must be valid * @return : "share" of long offsets (arbitrarily defined as > (1<<23)) - * compared to maximum possible of (1< 22) total += 1; + ZSTD_OffsetInfo info = {0, 0}; + /* If nbSeq == 0, then the offTable is uninitialized, but we have + * no sequences, so both values should be 0. + */ + if (nbSeq != 0) { + const void* ptr = offTable; + U32 const tableLog = ((const ZSTD_seqSymbol_header*)ptr)[0].tableLog; + const ZSTD_seqSymbol* table = offTable + 1; + U32 const max = 1 << tableLog; + U32 u; + DEBUGLOG(5, "ZSTD_getLongOffsetsShare: (tableLog=%u)", tableLog); + + assert(max <= (1 << OffFSELog)); /* max not too large */ + for (u=0; u 22) info.longOffsetShare += 1; + } + + assert(tableLog <= OffFSELog); + info.longOffsetShare <<= (OffFSELog - tableLog); /* scale to OffFSELog */ } - assert(tableLog <= OffFSELog); - total <<= (OffFSELog - tableLog); /* scale to OffFSELog */ + return info; +} - return total; +/** + * @returns The maximum offset we can decode in one read of our bitstream, without + * reloading more bits in the middle of the offset bits read. Any offsets larger + * than this must use the long offset decoder. + */ +static size_t ZSTD_maxShortOffset(void) +{ + if (MEM_64bits()) { + /* We can decode any offset without reloading bits. + * This might change if the max window size grows. + */ + ZSTD_STATIC_ASSERT(ZSTD_WINDOWLOG_MAX <= 31); + return (size_t)-1; + } else { + /* The maximum offBase is (1 << (STREAM_ACCUMULATOR_MIN + 1)) - 1. + * This offBase would require STREAM_ACCUMULATOR_MIN extra bits. + * Then we have to subtract ZSTD_REP_NUM to get the maximum possible offset. + */ + size_t const maxOffbase = ((size_t)1 << (STREAM_ACCUMULATOR_MIN + 1)) - 1; + size_t const maxOffset = maxOffbase - ZSTD_REP_NUM; + assert(ZSTD_highbit32((U32)maxOffbase) == STREAM_ACCUMULATOR_MIN); + return maxOffset; + } } -#endif size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, - const void* src, size_t srcSize, const int frame) + const void* src, size_t srcSize, const streaming_operation streaming) { /* blockType == blockCompressed */ const BYTE* ip = (const BYTE*)src; - /* isLongOffset must be true if there are long offsets. - * Offsets are long if they are larger than 2^STREAM_ACCUMULATOR_MIN. - * We don't expect that to be the case in 64-bit mode. - * In block mode, window size is not known, so we have to be conservative. - * (note: but it could be evaluated from current-lowLimit) - */ - ZSTD_longOffset_e const isLongOffset = (ZSTD_longOffset_e)(MEM_32bits() && (!frame || (dctx->fParams.windowSize > (1ULL << STREAM_ACCUMULATOR_MIN)))); - DEBUGLOG(5, "ZSTD_decompressBlock_internal (size : %u)", (U32)srcSize); - - RETURN_ERROR_IF(srcSize >= ZSTD_BLOCKSIZE_MAX, srcSize_wrong, ""); + DEBUGLOG(5, "ZSTD_decompressBlock_internal (cSize : %u)", (unsigned)srcSize); + + /* Note : the wording of the specification + * allows compressed block to be sized exactly ZSTD_blockSizeMax(dctx). + * This generally does not happen, as it makes little sense, + * since an uncompressed block would feature same size and have no decompression cost. + * Also, note that decoder from reference libzstd before < v1.5.4 + * would consider this edge case as an error. + * As a consequence, avoid generating compressed blocks of size ZSTD_blockSizeMax(dctx) + * for broader compatibility with the deployed ecosystem of zstd decoders */ + RETURN_ERROR_IF(srcSize > ZSTD_blockSizeMax(dctx), srcSize_wrong, ""); /* Decode literals section */ - { size_t const litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize); - DEBUGLOG(5, "ZSTD_decodeLiteralsBlock : %u", (U32)litCSize); + { size_t const litCSize = ZSTD_decodeLiteralsBlock(dctx, src, srcSize, dst, dstCapacity, streaming); + DEBUGLOG(5, "ZSTD_decodeLiteralsBlock : cSize=%u, nbLiterals=%zu", (U32)litCSize, dctx->litSize); if (ZSTD_isError(litCSize)) return litCSize; ip += litCSize; srcSize -= litCSize; @@ -1348,6 +2097,23 @@ ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, /* Build Decoding Tables */ { + /* Compute the maximum block size, which must also work when !frame and fParams are unset. + * Additionally, take the min with dstCapacity to ensure that the totalHistorySize fits in a size_t. + */ + size_t const blockSizeMax = MIN(dstCapacity, ZSTD_blockSizeMax(dctx)); + size_t const totalHistorySize = ZSTD_totalHistorySize(ZSTD_maybeNullPtrAdd((BYTE*)dst, blockSizeMax), (BYTE const*)dctx->virtualStart); + /* isLongOffset must be true if there are long offsets. + * Offsets are long if they are larger than ZSTD_maxShortOffset(). + * We don't expect that to be the case in 64-bit mode. + * + * We check here to see if our history is large enough to allow long offsets. + * If it isn't, then we can't possible have (valid) long offsets. If the offset + * is invalid, then it is okay to read it incorrectly. + * + * If isLongOffsets is true, then we will later check our decoding table to see + * if it is even possible to generate long offsets. + */ + ZSTD_longOffset_e isLongOffset = (ZSTD_longOffset_e)(MEM_32bits() && (totalHistorySize > ZSTD_maxShortOffset())); /* These macros control at build-time which decompressor implementation * we use. If neither is defined, we do some inspection and dispatch at * runtime. @@ -1355,6 +2121,11 @@ ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, #if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) int usePrefetchDecoder = dctx->ddictIsCold; +#else + /* Set to 1 to avoid computing offset info if we don't need to. + * Otherwise this value is ignored. + */ + int usePrefetchDecoder = 1; #endif int nbSeq; size_t const seqHSize = ZSTD_decodeSeqHeaders(dctx, &nbSeq, ip, srcSize); @@ -1362,40 +2133,58 @@ ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, ip += seqHSize; srcSize -= seqHSize; - RETURN_ERROR_IF(dst == NULL && nbSeq > 0, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF((dst == NULL || dstCapacity == 0) && nbSeq > 0, dstSize_tooSmall, "NULL not handled"); + RETURN_ERROR_IF(MEM_64bits() && sizeof(size_t) == sizeof(void*) && (size_t)(-1) - (size_t)dst < (size_t)(1 << 20), dstSize_tooSmall, + "invalid dst"); -#if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ - !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) - if ( !usePrefetchDecoder - && (!frame || (dctx->fParams.windowSize > (1<<24))) - && (nbSeq>ADVANCED_SEQS) ) { /* could probably use a larger nbSeq limit */ - U32 const shareLongOffsets = ZSTD_getLongOffsetsShare(dctx->OFTptr); - U32 const minShare = MEM_64bits() ? 7 : 20; /* heuristic values, correspond to 2.73% and 7.81% */ - usePrefetchDecoder = (shareLongOffsets >= minShare); + /* If we could potentially have long offsets, or we might want to use the prefetch decoder, + * compute information about the share of long offsets, and the maximum nbAdditionalBits. + * NOTE: could probably use a larger nbSeq limit + */ + if (isLongOffset || (!usePrefetchDecoder && (totalHistorySize > (1u << 24)) && (nbSeq > 8))) { + ZSTD_OffsetInfo const info = ZSTD_getOffsetInfo(dctx->OFTptr, nbSeq); + if (isLongOffset && info.maxNbAdditionalBits <= STREAM_ACCUMULATOR_MIN) { + /* If isLongOffset, but the maximum number of additional bits that we see in our table is small + * enough, then we know it is impossible to have too long an offset in this block, so we can + * use the regular offset decoder. + */ + isLongOffset = ZSTD_lo_isRegularOffset; + } + if (!usePrefetchDecoder) { + U32 const minShare = MEM_64bits() ? 7 : 20; /* heuristic values, correspond to 2.73% and 7.81% */ + usePrefetchDecoder = (info.longOffsetShare >= minShare); + } } -#endif dctx->ddictIsCold = 0; #if !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT) && \ !defined(ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG) - if (usePrefetchDecoder) + if (usePrefetchDecoder) { +#else + (void)usePrefetchDecoder; + { #endif #ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT - return ZSTD_decompressSequencesLong(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, frame); + return ZSTD_decompressSequencesLong(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset); #endif + } #ifndef ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG /* else */ - return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset, frame); + if (dctx->litBufferLocation == ZSTD_split) + return ZSTD_decompressSequencesSplitLitBuffer(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset); + else + return ZSTD_decompressSequences(dctx, dst, dstCapacity, ip, srcSize, nbSeq, isLongOffset); #endif } } -void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst) +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize) { - if (dst != dctx->previousDstEnd) { /* not contiguous */ + if (dst != dctx->previousDstEnd && dstSize > 0) { /* not contiguous */ dctx->dictEnd = dctx->previousDstEnd; dctx->virtualStart = (const char*)dst - ((const char*)(dctx->previousDstEnd) - (const char*)(dctx->prefixStart)); dctx->prefixStart = dst; @@ -1404,15 +2193,26 @@ void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst) } -size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize) +size_t ZSTD_decompressBlock_deprecated(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) { size_t dSize; - ZSTD_checkContinuity(dctx, dst); - dSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, /* frame */ 0); + dctx->isFrameDecompression = 0; + ZSTD_checkContinuity(dctx, dst, dstCapacity); + dSize = ZSTD_decompressBlock_internal(dctx, dst, dstCapacity, src, srcSize, not_streaming); + FORWARD_IF_ERROR(dSize, ""); dctx->previousDstEnd = (char*)dst + dSize; return dSize; } -} \ No newline at end of file + +/* NOTE: Must just wrap ZSTD_decompressBlock_deprecated() */ +size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize) +{ + return ZSTD_decompressBlock_deprecated(dctx, dst, dstCapacity, src, srcSize); +} + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/deprecated/zbuff_common.cpp b/src/duckdb/third_party/zstd/deprecated/zbuff_common.cpp new file mode 100644 index 00000000..489498ce --- /dev/null +++ b/src/duckdb/third_party/zstd/deprecated/zbuff_common.cpp @@ -0,0 +1,30 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include "zstd/common/error_private.h" +#include "zstd/deprecated/zbuff.h" + +namespace duckdb_zstd { + +/*-**************************************** +* ZBUFF Error Management (deprecated) +******************************************/ + +/*! ZBUFF_isError() : +* tells if a return value is an error code */ +unsigned ZBUFF_isError(size_t errorCode) { return ERR_isError(errorCode); } +/*! ZBUFF_getErrorName() : +* provides error code string from function result (useful for debugging) */ +const char* ZBUFF_getErrorName(size_t errorCode) { return ERR_getErrorName(errorCode); } + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/deprecated/zbuff_compress.cpp b/src/duckdb/third_party/zstd/deprecated/zbuff_compress.cpp new file mode 100644 index 00000000..5c63dac4 --- /dev/null +++ b/src/duckdb/third_party/zstd/deprecated/zbuff_compress.cpp @@ -0,0 +1,171 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + + +/* ************************************* +* Dependencies +***************************************/ +#define ZBUFF_STATIC_LINKING_ONLY +#include "zstd/deprecated/zbuff.h" +#include "zstd/common/error_private.h" + + +/*-*********************************************************** +* Streaming compression +* +* A ZBUFF_CCtx object is required to track streaming operation. +* Use ZBUFF_createCCtx() and ZBUFF_freeCCtx() to create/release resources. +* Use ZBUFF_compressInit() to start a new compression operation. +* ZBUFF_CCtx objects can be reused multiple times. +* +* Use ZBUFF_compressContinue() repetitively to consume your input. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written by modifying *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to call again the function with remaining input. +* The content of dst will be overwritten (up to *dstCapacityPtr) at each function call, so save its content if it matters or change dst . +* @return : a hint to preferred nb of bytes to use as input for next function call (it's only a hint, to improve latency) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressFlush() can be used to instruct ZBUFF to compress and output whatever remains within its buffer. +* Note that it will not output more than *dstCapacityPtr. +* Therefore, some content might still be left into its internal buffer if dst buffer is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressEnd() instructs to finish a frame. +* It will perform a flush and write frame epilogue. +* Similar to ZBUFF_compressFlush(), it may not be able to output the entire internal buffer content if *dstCapacityPtr is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : recommended buffer sizes (not compulsory) +* input : ZSTD_BLOCKSIZE_MAX (128 KB), internal unit size, it improves latency to use this value. +* output : ZSTD_compressBound(ZSTD_BLOCKSIZE_MAX) + ZSTD_blockHeaderSize + ZBUFF_endFrameSize : ensures it's always possible to write/flush/end a full block at best speed. +* ***********************************************************/ + +namespace duckdb_zstd { + +ZBUFF_CCtx* ZBUFF_createCCtx(void) +{ + return ZSTD_createCStream(); +} + +ZBUFF_CCtx* ZBUFF_createCCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createCStream_advanced(customMem); +} + +size_t ZBUFF_freeCCtx(ZBUFF_CCtx* zbc) +{ + return ZSTD_freeCStream(zbc); +} + + +/* ====== Initialization ====== */ + +size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize) +{ + if (pledgedSrcSize==0) pledgedSrcSize = ZSTD_CONTENTSIZE_UNKNOWN; /* preserve "0 == unknown" behavior */ + FORWARD_IF_ERROR(ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setPledgedSrcSize(zbc, pledgedSrcSize), ""); + + FORWARD_IF_ERROR(ZSTD_checkCParams(params.cParams), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_windowLog, params.cParams.windowLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_hashLog, params.cParams.hashLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_chainLog, params.cParams.chainLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_searchLog, params.cParams.searchLog), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_minMatch, params.cParams.minMatch), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_targetLength, params.cParams.targetLength), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_strategy, params.cParams.strategy), ""); + + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_contentSizeFlag, params.fParams.contentSizeFlag), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_checksumFlag, params.fParams.checksumFlag), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_dictIDFlag, params.fParams.noDictIDFlag), ""); + + FORWARD_IF_ERROR(ZSTD_CCtx_loadDictionary(zbc, dict, dictSize), ""); + return 0; +} + +size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, int compressionLevel) +{ + FORWARD_IF_ERROR(ZSTD_CCtx_reset(zbc, ZSTD_reset_session_only), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_setParameter(zbc, ZSTD_c_compressionLevel, compressionLevel), ""); + FORWARD_IF_ERROR(ZSTD_CCtx_loadDictionary(zbc, dict, dictSize), ""); + return 0; +} + +size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel) +{ + return ZSTD_initCStream(zbc, compressionLevel); +} + +/* ====== Compression ====== */ + + +size_t ZBUFF_compressContinue(ZBUFF_CCtx* zbc, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + ZSTD_inBuffer inBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + inBuff.src = src; + inBuff.pos = 0; + inBuff.size = *srcSizePtr; + result = ZSTD_compressStream(zbc, &outBuff, &inBuff); + *dstCapacityPtr = outBuff.pos; + *srcSizePtr = inBuff.pos; + return result; +} + + + +/* ====== Finalize ====== */ + +size_t ZBUFF_compressFlush(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapacityPtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + result = ZSTD_flushStream(zbc, &outBuff); + *dstCapacityPtr = outBuff.pos; + return result; +} + + +size_t ZBUFF_compressEnd(ZBUFF_CCtx* zbc, void* dst, size_t* dstCapacityPtr) +{ + size_t result; + ZSTD_outBuffer outBuff; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + result = ZSTD_endStream(zbc, &outBuff); + *dstCapacityPtr = outBuff.pos; + return result; +} + + + +/* ************************************* +* Tool functions +***************************************/ +size_t ZBUFF_recommendedCInSize(void) { return ZSTD_CStreamInSize(); } +size_t ZBUFF_recommendedCOutSize(void) { return ZSTD_CStreamOutSize(); } + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/deprecated/zbuff_decompress.cpp b/src/duckdb/third_party/zstd/deprecated/zbuff_decompress.cpp new file mode 100644 index 00000000..c55fd569 --- /dev/null +++ b/src/duckdb/third_party/zstd/deprecated/zbuff_decompress.cpp @@ -0,0 +1,80 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + + +/* ************************************* +* Dependencies +***************************************/ +#define ZSTD_DISABLE_DEPRECATE_WARNINGS /* suppress warning on ZSTD_initDStream_usingDict */ +#include "zstd.h" /* ZSTD_CStream, ZSTD_DStream, ZSTDLIB_API */ +#define ZBUFF_STATIC_LINKING_ONLY +#include "zstd/deprecated/zbuff.h" + +namespace duckdb_zstd { + +ZBUFF_DCtx* ZBUFF_createDCtx(void) +{ + return ZSTD_createDStream(); +} + +ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem) +{ + return ZSTD_createDStream_advanced(customMem); +} + +size_t ZBUFF_freeDCtx(ZBUFF_DCtx* zbd) +{ + return ZSTD_freeDStream(zbd); +} + + +/* *** Initialization *** */ + +size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* zbd, const void* dict, size_t dictSize) +{ + return ZSTD_initDStream_usingDict(zbd, dict, dictSize); +} + +size_t ZBUFF_decompressInit(ZBUFF_DCtx* zbd) +{ + return ZSTD_initDStream(zbd); +} + + +/* *** Decompression *** */ + +size_t ZBUFF_decompressContinue(ZBUFF_DCtx* zbd, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr) +{ + ZSTD_outBuffer outBuff; + ZSTD_inBuffer inBuff; + size_t result; + outBuff.dst = dst; + outBuff.pos = 0; + outBuff.size = *dstCapacityPtr; + inBuff.src = src; + inBuff.pos = 0; + inBuff.size = *srcSizePtr; + result = ZSTD_decompressStream(zbd, &outBuff, &inBuff); + *dstCapacityPtr = outBuff.pos; + *srcSizePtr = inBuff.pos; + return result; +} + + +/* ************************************* +* Tool functions +***************************************/ +size_t ZBUFF_recommendedDInSize(void) { return ZSTD_DStreamInSize(); } +size_t ZBUFF_recommendedDOutSize(void) { return ZSTD_DStreamOutSize(); } + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/dict/cover.cpp b/src/duckdb/third_party/zstd/dict/cover.cpp new file mode 100644 index 00000000..b35351f0 --- /dev/null +++ b/src/duckdb/third_party/zstd/dict/cover.cpp @@ -0,0 +1,1271 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* ***************************************************************************** + * Constructs a dictionary using a heuristic based on the following paper: + * + * Liao, Petri, Moffat, Wirth + * Effective Construction of Relative Lempel-Ziv Dictionaries + * Published in WWW 2016. + * + * Adapted from code originally written by @ot (Giuseppe Ottaviano). + ******************************************************************************/ + +/*-************************************* +* Dependencies +***************************************/ +#include /* fprintf */ +#include /* malloc, free, qsort */ +#include /* memset */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "zstd/common/mem.h" /* read */ +#include "zstd/common/pool.h" /* POOL_ctx */ +#include "zstd/common/threading.h" /* ZSTD_pthread_mutex_t */ +#include "zstd/common/zstd_internal.h" /* includes zstd.h */ +#include "zstd/common/bits.h" /* ZSTD_highbit32 */ +#include "zdict.h" +#include "zstd/dict/cover.h" + +/*-************************************* +* Constants +***************************************/ +/** +* There are 32bit indexes used to ref samples, so limit samples size to 4GB +* on 64bit builds. +* For 32bit builds we choose 1 GB. +* Most 32bit platforms have 2GB user-mode addressable space and we allocate a large +* contiguous buffer, so 1GB is already a high limit. +*/ +#define COVER_MAX_SAMPLES_SIZE (sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB)) +#define COVER_DEFAULT_SPLITPOINT 1.0 + +/*-************************************* +* Console display +***************************************/ +#ifndef LOCALDISPLAYLEVEL +static int g_displayLevel = 0; +#endif +#undef DISPLAY +#define DISPLAY(...) \ + { \ + fprintf(stderr, __VA_ARGS__); \ + fflush(stderr); \ + } +#undef LOCALDISPLAYLEVEL +#define LOCALDISPLAYLEVEL(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + DISPLAY(__VA_ARGS__); \ + } /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) LOCALDISPLAYLEVEL(g_displayLevel, l, __VA_ARGS__) + +#ifndef LOCALDISPLAYUPDATE +static const clock_t g_refreshRate = CLOCKS_PER_SEC * 15 / 100; +static clock_t g_time = 0; +#endif +#undef LOCALDISPLAYUPDATE +#define LOCALDISPLAYUPDATE(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + if ((clock() - g_time > g_refreshRate) || (displayLevel >= 4)) { \ + g_time = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + } +#undef DISPLAYUPDATE +#define DISPLAYUPDATE(l, ...) LOCALDISPLAYUPDATE(g_displayLevel, l, __VA_ARGS__) + +namespace duckdb_zstd { + +/*-************************************* +* Hash table +*************************************** +* A small specialized hash map for storing activeDmers. +* The map does not resize, so if it becomes full it will loop forever. +* Thus, the map must be large enough to store every value. +* The map implements linear probing and keeps its load less than 0.5. +*/ + +#define MAP_EMPTY_VALUE ((U32)-1) +typedef struct COVER_map_pair_t_s { + U32 key; + U32 value; +} COVER_map_pair_t; + +typedef struct COVER_map_s { + COVER_map_pair_t *data; + U32 sizeLog; + U32 size; + U32 sizeMask; +} COVER_map_t; + +/** + * Clear the map. + */ +static void COVER_map_clear(COVER_map_t *map) { + memset(map->data, MAP_EMPTY_VALUE, map->size * sizeof(COVER_map_pair_t)); +} + +/** + * Initializes a map of the given size. + * Returns 1 on success and 0 on failure. + * The map must be destroyed with COVER_map_destroy(). + * The map is only guaranteed to be large enough to hold size elements. + */ +static int COVER_map_init(COVER_map_t *map, U32 size) { + map->sizeLog = ZSTD_highbit32(size) + 2; + map->size = (U32)1 << map->sizeLog; + map->sizeMask = map->size - 1; + map->data = (COVER_map_pair_t *)malloc(map->size * sizeof(COVER_map_pair_t)); + if (!map->data) { + map->sizeLog = 0; + map->size = 0; + return 0; + } + COVER_map_clear(map); + return 1; +} + +/** + * Internal hash function + */ +static const U32 COVER_prime4bytes = 2654435761U; +static U32 COVER_map_hash(COVER_map_t *map, U32 key) { + return (key * COVER_prime4bytes) >> (32 - map->sizeLog); +} + +/** + * Helper function that returns the index that a key should be placed into. + */ +static U32 COVER_map_index(COVER_map_t *map, U32 key) { + const U32 hash = COVER_map_hash(map, key); + U32 i; + for (i = hash;; i = (i + 1) & map->sizeMask) { + COVER_map_pair_t *pos = &map->data[i]; + if (pos->value == MAP_EMPTY_VALUE) { + return i; + } + if (pos->key == key) { + return i; + } + } +} + +/** + * Returns the pointer to the value for key. + * If key is not in the map, it is inserted and the value is set to 0. + * The map must not be full. + */ +static U32 *COVER_map_at(COVER_map_t *map, U32 key) { + COVER_map_pair_t *pos = &map->data[COVER_map_index(map, key)]; + if (pos->value == MAP_EMPTY_VALUE) { + pos->key = key; + pos->value = 0; + } + return &pos->value; +} + +/** + * Deletes key from the map if present. + */ +static void COVER_map_remove(COVER_map_t *map, U32 key) { + U32 i = COVER_map_index(map, key); + COVER_map_pair_t *del = &map->data[i]; + U32 shift = 1; + if (del->value == MAP_EMPTY_VALUE) { + return; + } + for (i = (i + 1) & map->sizeMask;; i = (i + 1) & map->sizeMask) { + COVER_map_pair_t *const pos = &map->data[i]; + /* If the position is empty we are done */ + if (pos->value == MAP_EMPTY_VALUE) { + del->value = MAP_EMPTY_VALUE; + return; + } + /* If pos can be moved to del do so */ + if (((i - COVER_map_hash(map, pos->key)) & map->sizeMask) >= shift) { + del->key = pos->key; + del->value = pos->value; + del = pos; + shift = 1; + } else { + ++shift; + } + } +} + +/** + * Destroys a map that is inited with COVER_map_init(). + */ +static void COVER_map_destroy(COVER_map_t *map) { + if (map->data) { + free(map->data); + } + map->data = NULL; + map->size = 0; +} + +/*-************************************* +* Context +***************************************/ + +typedef struct { + const BYTE *samples; + size_t *offsets; + const size_t *samplesSizes; + size_t nbSamples; + size_t nbTrainSamples; + size_t nbTestSamples; + U32 *suffix; + size_t suffixSize; + U32 *freqs; + U32 *dmerAt; + unsigned d; +} COVER_ctx_t; + +/* We need a global context for qsort... */ +static COVER_ctx_t *g_coverCtx = NULL; + +/*-************************************* +* Helper functions +***************************************/ + +/** + * Returns the sum of the sample sizes. + */ +size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples) { + size_t sum = 0; + unsigned i; + for (i = 0; i < nbSamples; ++i) { + sum += samplesSizes[i]; + } + return sum; +} + +/** + * Returns -1 if the dmer at lp is less than the dmer at rp. + * Return 0 if the dmers at lp and rp are equal. + * Returns 1 if the dmer at lp is greater than the dmer at rp. + */ +static int COVER_cmp(COVER_ctx_t *ctx, const void *lp, const void *rp) { + U32 const lhs = *(U32 const *)lp; + U32 const rhs = *(U32 const *)rp; + return memcmp(ctx->samples + lhs, ctx->samples + rhs, ctx->d); +} +/** + * Faster version for d <= 8. + */ +static int COVER_cmp8(COVER_ctx_t *ctx, const void *lp, const void *rp) { + U64 const mask = (ctx->d == 8) ? (U64)-1 : (((U64)1 << (8 * ctx->d)) - 1); + U64 const lhs = MEM_readLE64(ctx->samples + *(U32 const *)lp) & mask; + U64 const rhs = MEM_readLE64(ctx->samples + *(U32 const *)rp) & mask; + if (lhs < rhs) { + return -1; + } + return (lhs > rhs); +} + +/** + * Same as COVER_cmp() except ties are broken by pointer value + * NOTE: g_coverCtx must be set to call this function. A global is required because + * qsort doesn't take an opaque pointer. + */ +static int WIN_CDECL COVER_strict_cmp(const void *lp, const void *rp) { + int result = COVER_cmp(g_coverCtx, lp, rp); + if (result == 0) { + result = lp < rp ? -1 : 1; + } + return result; +} +/** + * Faster version for d <= 8. + */ +static int WIN_CDECL COVER_strict_cmp8(const void *lp, const void *rp) { + int result = COVER_cmp8(g_coverCtx, lp, rp); + if (result == 0) { + result = lp < rp ? -1 : 1; + } + return result; +} + +/** + * Returns the first pointer in [first, last) whose element does not compare + * less than value. If no such element exists it returns last. + */ +static const size_t *COVER_lower_bound(const size_t* first, const size_t* last, + size_t value) { + size_t count = (size_t)(last - first); + assert(last >= first); + while (count != 0) { + size_t step = count / 2; + const size_t *ptr = first; + ptr += step; + if (*ptr < value) { + first = ++ptr; + count -= step + 1; + } else { + count = step; + } + } + return first; +} + +/** + * Generic groupBy function. + * Groups an array sorted by cmp into groups with equivalent values. + * Calls grp for each group. + */ +static void +COVER_groupBy(const void *data, size_t count, size_t size, COVER_ctx_t *ctx, + int (*cmp)(COVER_ctx_t *, const void *, const void *), + void (*grp)(COVER_ctx_t *, const void *, const void *)) { + const BYTE *ptr = (const BYTE *)data; + size_t num = 0; + while (num < count) { + const BYTE *grpEnd = ptr + size; + ++num; + while (num < count && cmp(ctx, ptr, grpEnd) == 0) { + grpEnd += size; + ++num; + } + grp(ctx, ptr, grpEnd); + ptr = grpEnd; + } +} + +/*-************************************* +* Cover functions +***************************************/ + +/** + * Called on each group of positions with the same dmer. + * Counts the frequency of each dmer and saves it in the suffix array. + * Fills `ctx->dmerAt`. + */ +static void COVER_group(COVER_ctx_t *ctx, const void *group, + const void *groupEnd) { + /* The group consists of all the positions with the same first d bytes. */ + const U32 *grpPtr = (const U32 *)group; + const U32 *grpEnd = (const U32 *)groupEnd; + /* The dmerId is how we will reference this dmer. + * This allows us to map the whole dmer space to a much smaller space, the + * size of the suffix array. + */ + const U32 dmerId = (U32)(grpPtr - ctx->suffix); + /* Count the number of samples this dmer shows up in */ + U32 freq = 0; + /* Details */ + const size_t *curOffsetPtr = ctx->offsets; + const size_t *offsetsEnd = ctx->offsets + ctx->nbSamples; + /* Once *grpPtr >= curSampleEnd this occurrence of the dmer is in a + * different sample than the last. + */ + size_t curSampleEnd = ctx->offsets[0]; + for (; grpPtr != grpEnd; ++grpPtr) { + /* Save the dmerId for this position so we can get back to it. */ + ctx->dmerAt[*grpPtr] = dmerId; + /* Dictionaries only help for the first reference to the dmer. + * After that zstd can reference the match from the previous reference. + * So only count each dmer once for each sample it is in. + */ + if (*grpPtr < curSampleEnd) { + continue; + } + freq += 1; + /* Binary search to find the end of the sample *grpPtr is in. + * In the common case that grpPtr + 1 == grpEnd we can skip the binary + * search because the loop is over. + */ + if (grpPtr + 1 != grpEnd) { + const size_t *sampleEndPtr = + COVER_lower_bound(curOffsetPtr, offsetsEnd, *grpPtr); + curSampleEnd = *sampleEndPtr; + curOffsetPtr = sampleEndPtr + 1; + } + } + /* At this point we are never going to look at this segment of the suffix + * array again. We take advantage of this fact to save memory. + * We store the frequency of the dmer in the first position of the group, + * which is dmerId. + */ + ctx->suffix[dmerId] = freq; +} + + +/** + * Selects the best segment in an epoch. + * Segments of are scored according to the function: + * + * Let F(d) be the frequency of dmer d. + * Let S_i be the dmer at position i of segment S which has length k. + * + * Score(S) = F(S_1) + F(S_2) + ... + F(S_{k-d+1}) + * + * Once the dmer d is in the dictionary we set F(d) = 0. + */ +static COVER_segment_t COVER_selectSegment(const COVER_ctx_t *ctx, U32 *freqs, + COVER_map_t *activeDmers, U32 begin, + U32 end, + ZDICT_cover_params_t parameters) { + /* Constants */ + const U32 k = parameters.k; + const U32 d = parameters.d; + const U32 dmersInK = k - d + 1; + /* Try each segment (activeSegment) and save the best (bestSegment) */ + COVER_segment_t bestSegment = {0, 0, 0}; + COVER_segment_t activeSegment; + /* Reset the activeDmers in the segment */ + COVER_map_clear(activeDmers); + /* The activeSegment starts at the beginning of the epoch. */ + activeSegment.begin = begin; + activeSegment.end = begin; + activeSegment.score = 0; + /* Slide the activeSegment through the whole epoch. + * Save the best segment in bestSegment. + */ + while (activeSegment.end < end) { + /* The dmerId for the dmer at the next position */ + U32 newDmer = ctx->dmerAt[activeSegment.end]; + /* The entry in activeDmers for this dmerId */ + U32 *newDmerOcc = COVER_map_at(activeDmers, newDmer); + /* If the dmer isn't already present in the segment add its score. */ + if (*newDmerOcc == 0) { + /* The paper suggest using the L-0.5 norm, but experiments show that it + * doesn't help. + */ + activeSegment.score += freqs[newDmer]; + } + /* Add the dmer to the segment */ + activeSegment.end += 1; + *newDmerOcc += 1; + + /* If the window is now too large, drop the first position */ + if (activeSegment.end - activeSegment.begin == dmersInK + 1) { + U32 delDmer = ctx->dmerAt[activeSegment.begin]; + U32 *delDmerOcc = COVER_map_at(activeDmers, delDmer); + activeSegment.begin += 1; + *delDmerOcc -= 1; + /* If this is the last occurrence of the dmer, subtract its score */ + if (*delDmerOcc == 0) { + COVER_map_remove(activeDmers, delDmer); + activeSegment.score -= freqs[delDmer]; + } + } + + /* If this segment is the best so far save it */ + if (activeSegment.score > bestSegment.score) { + bestSegment = activeSegment; + } + } + { + /* Trim off the zero frequency head and tail from the segment. */ + U32 newBegin = bestSegment.end; + U32 newEnd = bestSegment.begin; + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + U32 freq = freqs[ctx->dmerAt[pos]]; + if (freq != 0) { + newBegin = MIN(newBegin, pos); + newEnd = pos + 1; + } + } + bestSegment.begin = newBegin; + bestSegment.end = newEnd; + } + { + /* Zero out the frequency of each dmer covered by the chosen segment. */ + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + freqs[ctx->dmerAt[pos]] = 0; + } + } + return bestSegment; +} + +/** + * Check the validity of the parameters. + * Returns non-zero if the parameters are valid and 0 otherwise. + */ +static int COVER_checkParameters(ZDICT_cover_params_t parameters, + size_t maxDictSize) { + /* k and d are required parameters */ + if (parameters.d == 0 || parameters.k == 0) { + return 0; + } + /* k <= maxDictSize */ + if (parameters.k > maxDictSize) { + return 0; + } + /* d <= k */ + if (parameters.d > parameters.k) { + return 0; + } + /* 0 < splitPoint <= 1 */ + if (parameters.splitPoint <= 0 || parameters.splitPoint > 1){ + return 0; + } + return 1; +} + +/** + * Clean up a context initialized with `COVER_ctx_init()`. + */ +static void COVER_ctx_destroy(COVER_ctx_t *ctx) { + if (!ctx) { + return; + } + if (ctx->suffix) { + free(ctx->suffix); + ctx->suffix = NULL; + } + if (ctx->freqs) { + free(ctx->freqs); + ctx->freqs = NULL; + } + if (ctx->dmerAt) { + free(ctx->dmerAt); + ctx->dmerAt = NULL; + } + if (ctx->offsets) { + free(ctx->offsets); + ctx->offsets = NULL; + } +} + +/** + * Prepare a context for dictionary building. + * The context is only dependent on the parameter `d` and can be used multiple + * times. + * Returns 0 on success or error code on error. + * The context must be destroyed with `COVER_ctx_destroy()`. + */ +static size_t COVER_ctx_init(COVER_ctx_t *ctx, const void *samplesBuffer, + const size_t *samplesSizes, unsigned nbSamples, + unsigned d, double splitPoint) +{ + const BYTE *const samples = (const BYTE *)samplesBuffer; + const size_t totalSamplesSize = COVER_sum(samplesSizes, nbSamples); + /* Split samples into testing and training sets */ + const unsigned nbTrainSamples = splitPoint < 1.0 ? (unsigned)((double)nbSamples * splitPoint) : nbSamples; + const unsigned nbTestSamples = splitPoint < 1.0 ? nbSamples - nbTrainSamples : nbSamples; + const size_t trainingSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes, nbTrainSamples) : totalSamplesSize; + const size_t testSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes + nbTrainSamples, nbTestSamples) : totalSamplesSize; + + (void) testSamplesSize; + + /* Checks */ + if (totalSamplesSize < MAX(d, sizeof(U64)) || + totalSamplesSize >= (size_t)COVER_MAX_SAMPLES_SIZE) { + DISPLAYLEVEL(1, "Total samples size is too large (%u MB), maximum size is %u MB\n", + (unsigned)(totalSamplesSize>>20), (COVER_MAX_SAMPLES_SIZE >> 20)); + return ERROR(srcSize_wrong); + } + /* Check if there are at least 5 training samples */ + if (nbTrainSamples < 5) { + DISPLAYLEVEL(1, "Total number of training samples is %u and is invalid.", nbTrainSamples); + return ERROR(srcSize_wrong); + } + /* Check if there's testing sample */ + if (nbTestSamples < 1) { + DISPLAYLEVEL(1, "Total number of testing samples is %u and is invalid.", nbTestSamples); + return ERROR(srcSize_wrong); + } + /* Zero the context */ + memset(ctx, 0, sizeof(*ctx)); + DISPLAYLEVEL(2, "Training on %u samples of total size %u\n", nbTrainSamples, + (unsigned)trainingSamplesSize); + DISPLAYLEVEL(2, "Testing on %u samples of total size %u\n", nbTestSamples, + (unsigned)testSamplesSize); + ctx->samples = samples; + ctx->samplesSizes = samplesSizes; + ctx->nbSamples = nbSamples; + ctx->nbTrainSamples = nbTrainSamples; + ctx->nbTestSamples = nbTestSamples; + /* Partial suffix array */ + ctx->suffixSize = trainingSamplesSize - MAX(d, sizeof(U64)) + 1; + ctx->suffix = (U32 *)malloc(ctx->suffixSize * sizeof(U32)); + /* Maps index to the dmerID */ + ctx->dmerAt = (U32 *)malloc(ctx->suffixSize * sizeof(U32)); + /* The offsets of each file */ + ctx->offsets = (size_t *)malloc((nbSamples + 1) * sizeof(size_t)); + if (!ctx->suffix || !ctx->dmerAt || !ctx->offsets) { + DISPLAYLEVEL(1, "Failed to allocate scratch buffers\n"); + COVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + ctx->freqs = NULL; + ctx->d = d; + + /* Fill offsets from the samplesSizes */ + { + U32 i; + ctx->offsets[0] = 0; + for (i = 1; i <= nbSamples; ++i) { + ctx->offsets[i] = ctx->offsets[i - 1] + samplesSizes[i - 1]; + } + } + DISPLAYLEVEL(2, "Constructing partial suffix array\n"); + { + /* suffix is a partial suffix array. + * It only sorts suffixes by their first parameters.d bytes. + * The sort is stable, so each dmer group is sorted by position in input. + */ + U32 i; + for (i = 0; i < ctx->suffixSize; ++i) { + ctx->suffix[i] = i; + } + /* qsort doesn't take an opaque pointer, so pass as a global. + * On OpenBSD qsort() is not guaranteed to be stable, their mergesort() is. + */ + g_coverCtx = ctx; +#if defined(__OpenBSD__) + mergesort(ctx->suffix, ctx->suffixSize, sizeof(U32), + (ctx->d <= 8 ? &COVER_strict_cmp8 : &COVER_strict_cmp)); +#else + qsort(ctx->suffix, ctx->suffixSize, sizeof(U32), + (ctx->d <= 8 ? &COVER_strict_cmp8 : &COVER_strict_cmp)); +#endif + } + DISPLAYLEVEL(2, "Computing frequencies\n"); + /* For each dmer group (group of positions with the same first d bytes): + * 1. For each position we set dmerAt[position] = dmerID. The dmerID is + * (groupBeginPtr - suffix). This allows us to go from position to + * dmerID so we can look up values in freq. + * 2. We calculate how many samples the dmer occurs in and save it in + * freqs[dmerId]. + */ + COVER_groupBy(ctx->suffix, ctx->suffixSize, sizeof(U32), ctx, + (ctx->d <= 8 ? &COVER_cmp8 : &COVER_cmp), &COVER_group); + ctx->freqs = ctx->suffix; + ctx->suffix = NULL; + return 0; +} + +void COVER_warnOnSmallCorpus(size_t maxDictSize, size_t nbDmers, int displayLevel) +{ + const double ratio = (double)nbDmers / (double)maxDictSize; + if (ratio >= 10) { + return; + } + LOCALDISPLAYLEVEL(displayLevel, 1, + "WARNING: The maximum dictionary size %u is too large " + "compared to the source size %u! " + "size(source)/size(dictionary) = %f, but it should be >= " + "10! This may lead to a subpar dictionary! We recommend " + "training on sources at least 10x, and preferably 100x " + "the size of the dictionary! \n", (U32)maxDictSize, + (U32)nbDmers, ratio); +} + +COVER_epoch_info_t COVER_computeEpochs(U32 maxDictSize, + U32 nbDmers, U32 k, U32 passes) +{ + const U32 minEpochSize = k * 10; + COVER_epoch_info_t epochs; + epochs.num = MAX(1, maxDictSize / k / passes); + epochs.size = nbDmers / epochs.num; + if (epochs.size >= minEpochSize) { + assert(epochs.size * epochs.num <= nbDmers); + return epochs; + } + epochs.size = MIN(minEpochSize, nbDmers); + epochs.num = nbDmers / epochs.size; + assert(epochs.size * epochs.num <= nbDmers); + return epochs; +} + +/** + * Given the prepared context build the dictionary. + */ +static size_t COVER_buildDictionary(const COVER_ctx_t *ctx, U32 *freqs, + COVER_map_t *activeDmers, void *dictBuffer, + size_t dictBufferCapacity, + ZDICT_cover_params_t parameters) { + BYTE *const dict = (BYTE *)dictBuffer; + size_t tail = dictBufferCapacity; + /* Divide the data into epochs. We will select one segment from each epoch. */ + const COVER_epoch_info_t epochs = COVER_computeEpochs( + (U32)dictBufferCapacity, (U32)ctx->suffixSize, parameters.k, 4); + const size_t maxZeroScoreRun = MAX(10, MIN(100, epochs.num >> 3)); + size_t zeroScoreRun = 0; + size_t epoch; + DISPLAYLEVEL(2, "Breaking content into %u epochs of size %u\n", + (U32)epochs.num, (U32)epochs.size); + /* Loop through the epochs until there are no more segments or the dictionary + * is full. + */ + for (epoch = 0; tail > 0; epoch = (epoch + 1) % epochs.num) { + const U32 epochBegin = (U32)(epoch * epochs.size); + const U32 epochEnd = epochBegin + epochs.size; + size_t segmentSize; + /* Select a segment */ + COVER_segment_t segment = COVER_selectSegment( + ctx, freqs, activeDmers, epochBegin, epochEnd, parameters); + /* If the segment covers no dmers, then we are out of content. + * There may be new content in other epochs, for continue for some time. + */ + if (segment.score == 0) { + if (++zeroScoreRun >= maxZeroScoreRun) { + break; + } + continue; + } + zeroScoreRun = 0; + /* Trim the segment if necessary and if it is too small then we are done */ + segmentSize = MIN(segment.end - segment.begin + parameters.d - 1, tail); + if (segmentSize < parameters.d) { + break; + } + /* We fill the dictionary from the back to allow the best segments to be + * referenced with the smallest offsets. + */ + tail -= segmentSize; + memcpy(dict + tail, ctx->samples + segment.begin, segmentSize); + DISPLAYUPDATE( + 2, "\r%u%% ", + (unsigned)(((dictBufferCapacity - tail) * 100) / dictBufferCapacity)); + } + DISPLAYLEVEL(2, "\r%79s\r", ""); + return tail; +} + +ZDICTLIB_STATIC_API size_t ZDICT_trainFromBuffer_cover( + void *dictBuffer, size_t dictBufferCapacity, + const void *samplesBuffer, const size_t *samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t parameters) +{ + BYTE* const dict = (BYTE*)dictBuffer; + COVER_ctx_t ctx; + COVER_map_t activeDmers; + parameters.splitPoint = 1.0; + /* Initialize global data */ + g_displayLevel = (int)parameters.zParams.notificationLevel; + /* Checks */ + if (!COVER_checkParameters(parameters, dictBufferCapacity)) { + DISPLAYLEVEL(1, "Cover parameters incorrect\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "Cover must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + /* Initialize context and activeDmers */ + { + size_t const initVal = COVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, + parameters.d, parameters.splitPoint); + if (ZSTD_isError(initVal)) { + return initVal; + } + } + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.suffixSize, g_displayLevel); + if (!COVER_map_init(&activeDmers, parameters.k - parameters.d + 1)) { + DISPLAYLEVEL(1, "Failed to allocate dmer map: out of memory\n"); + COVER_ctx_destroy(&ctx); + return ERROR(memory_allocation); + } + + DISPLAYLEVEL(2, "Building dictionary\n"); + { + const size_t tail = + COVER_buildDictionary(&ctx, ctx.freqs, &activeDmers, dictBuffer, + dictBufferCapacity, parameters); + const size_t dictionarySize = ZDICT_finalizeDictionary( + dict, dictBufferCapacity, dict + tail, dictBufferCapacity - tail, + samplesBuffer, samplesSizes, nbSamples, parameters.zParams); + if (!ZSTD_isError(dictionarySize)) { + DISPLAYLEVEL(2, "Constructed dictionary of size %u\n", + (unsigned)dictionarySize); + } + COVER_ctx_destroy(&ctx); + COVER_map_destroy(&activeDmers); + return dictionarySize; + } +} + + + +size_t COVER_checkTotalCompressedSize(const ZDICT_cover_params_t parameters, + const size_t *samplesSizes, const BYTE *samples, + size_t *offsets, + size_t nbTrainSamples, size_t nbSamples, + BYTE *const dict, size_t dictBufferCapacity) { + size_t totalCompressedSize = ERROR(GENERIC); + /* Pointers */ + ZSTD_CCtx *cctx; + ZSTD_CDict *cdict; + void *dst; + /* Local variables */ + size_t dstCapacity; + size_t i; + /* Allocate dst with enough space to compress the maximum sized sample */ + { + size_t maxSampleSize = 0; + i = parameters.splitPoint < 1.0 ? nbTrainSamples : 0; + for (; i < nbSamples; ++i) { + maxSampleSize = MAX(samplesSizes[i], maxSampleSize); + } + dstCapacity = ZSTD_compressBound(maxSampleSize); + dst = malloc(dstCapacity); + } + /* Create the cctx and cdict */ + cctx = ZSTD_createCCtx(); + cdict = ZSTD_createCDict(dict, dictBufferCapacity, + parameters.zParams.compressionLevel); + if (!dst || !cctx || !cdict) { + goto _compressCleanup; + } + /* Compress each sample and sum their sizes (or error) */ + totalCompressedSize = dictBufferCapacity; + i = parameters.splitPoint < 1.0 ? nbTrainSamples : 0; + for (; i < nbSamples; ++i) { + const size_t size = ZSTD_compress_usingCDict( + cctx, dst, dstCapacity, samples + offsets[i], + samplesSizes[i], cdict); + if (ZSTD_isError(size)) { + totalCompressedSize = size; + goto _compressCleanup; + } + totalCompressedSize += size; + } +_compressCleanup: + ZSTD_freeCCtx(cctx); + ZSTD_freeCDict(cdict); + if (dst) { + free(dst); + } + return totalCompressedSize; +} + + +/** + * Initialize the `COVER_best_t`. + */ +void COVER_best_init(COVER_best_t *best) { + if (best==NULL) return; /* compatible with init on NULL */ + (void)ZSTD_pthread_mutex_init(&best->mutex, NULL); + (void)ZSTD_pthread_cond_init(&best->cond, NULL); + best->liveJobs = 0; + best->dict = NULL; + best->dictSize = 0; + best->compressedSize = (size_t)-1; + memset(&best->parameters, 0, sizeof(best->parameters)); +} + +/** + * Wait until liveJobs == 0. + */ +void COVER_best_wait(COVER_best_t *best) { + if (!best) { + return; + } + ZSTD_pthread_mutex_lock(&best->mutex); + while (best->liveJobs != 0) { + ZSTD_pthread_cond_wait(&best->cond, &best->mutex); + } + ZSTD_pthread_mutex_unlock(&best->mutex); +} + +/** + * Call COVER_best_wait() and then destroy the COVER_best_t. + */ +void COVER_best_destroy(COVER_best_t *best) { + if (!best) { + return; + } + COVER_best_wait(best); + if (best->dict) { + free(best->dict); + } + ZSTD_pthread_mutex_destroy(&best->mutex); + ZSTD_pthread_cond_destroy(&best->cond); +} + +/** + * Called when a thread is about to be launched. + * Increments liveJobs. + */ +void COVER_best_start(COVER_best_t *best) { + if (!best) { + return; + } + ZSTD_pthread_mutex_lock(&best->mutex); + ++best->liveJobs; + ZSTD_pthread_mutex_unlock(&best->mutex); +} + +/** + * Called when a thread finishes executing, both on error or success. + * Decrements liveJobs and signals any waiting threads if liveJobs == 0. + * If this dictionary is the best so far save it and its parameters. + */ +void COVER_best_finish(COVER_best_t* best, + ZDICT_cover_params_t parameters, + COVER_dictSelection_t selection) +{ + void* dict = selection.dictContent; + size_t compressedSize = selection.totalCompressedSize; + size_t dictSize = selection.dictSize; + if (!best) { + return; + } + { + size_t liveJobs; + ZSTD_pthread_mutex_lock(&best->mutex); + --best->liveJobs; + liveJobs = best->liveJobs; + /* If the new dictionary is better */ + if (compressedSize < best->compressedSize) { + /* Allocate space if necessary */ + if (!best->dict || best->dictSize < dictSize) { + if (best->dict) { + free(best->dict); + } + best->dict = malloc(dictSize); + if (!best->dict) { + best->compressedSize = ERROR(GENERIC); + best->dictSize = 0; + ZSTD_pthread_cond_signal(&best->cond); + ZSTD_pthread_mutex_unlock(&best->mutex); + return; + } + } + /* Save the dictionary, parameters, and size */ + if (dict) { + memcpy(best->dict, dict, dictSize); + best->dictSize = dictSize; + best->parameters = parameters; + best->compressedSize = compressedSize; + } + } + if (liveJobs == 0) { + ZSTD_pthread_cond_broadcast(&best->cond); + } + ZSTD_pthread_mutex_unlock(&best->mutex); + } +} + +static COVER_dictSelection_t setDictSelection(BYTE* buf, size_t s, size_t csz) +{ + COVER_dictSelection_t ds; + ds.dictContent = buf; + ds.dictSize = s; + ds.totalCompressedSize = csz; + return ds; +} + +COVER_dictSelection_t COVER_dictSelectionError(size_t error) { + return setDictSelection(NULL, 0, error); +} + +unsigned COVER_dictSelectionIsError(COVER_dictSelection_t selection) { + return (ZSTD_isError(selection.totalCompressedSize) || !selection.dictContent); +} + +void COVER_dictSelectionFree(COVER_dictSelection_t selection){ + free(selection.dictContent); +} + +COVER_dictSelection_t COVER_selectDict(BYTE* customDictContent, size_t dictBufferCapacity, + size_t dictContentSize, const BYTE* samplesBuffer, const size_t* samplesSizes, unsigned nbFinalizeSamples, + size_t nbCheckSamples, size_t nbSamples, ZDICT_cover_params_t params, size_t* offsets, size_t totalCompressedSize) { + + size_t largestDict = 0; + size_t largestCompressed = 0; + BYTE* customDictContentEnd = customDictContent + dictContentSize; + + BYTE* largestDictbuffer = (BYTE*)malloc(dictBufferCapacity); + BYTE* candidateDictBuffer = (BYTE*)malloc(dictBufferCapacity); + double regressionTolerance = ((double)params.shrinkDictMaxRegression / 100.0) + 1.00; + + if (!largestDictbuffer || !candidateDictBuffer) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + } + + /* Initial dictionary size and compressed size */ + memcpy(largestDictbuffer, customDictContent, dictContentSize); + dictContentSize = ZDICT_finalizeDictionary( + largestDictbuffer, dictBufferCapacity, customDictContent, dictContentSize, + samplesBuffer, samplesSizes, nbFinalizeSamples, params.zParams); + + if (ZDICT_isError(dictContentSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + } + + totalCompressedSize = COVER_checkTotalCompressedSize(params, samplesSizes, + samplesBuffer, offsets, + nbCheckSamples, nbSamples, + largestDictbuffer, dictContentSize); + + if (ZSTD_isError(totalCompressedSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(totalCompressedSize); + } + + if (params.shrinkDict == 0) { + free(candidateDictBuffer); + return setDictSelection(largestDictbuffer, dictContentSize, totalCompressedSize); + } + + largestDict = dictContentSize; + largestCompressed = totalCompressedSize; + dictContentSize = ZDICT_DICTSIZE_MIN; + + /* Largest dict is initially at least ZDICT_DICTSIZE_MIN */ + while (dictContentSize < largestDict) { + memcpy(candidateDictBuffer, largestDictbuffer, largestDict); + dictContentSize = ZDICT_finalizeDictionary( + candidateDictBuffer, dictBufferCapacity, customDictContentEnd - dictContentSize, dictContentSize, + samplesBuffer, samplesSizes, nbFinalizeSamples, params.zParams); + + if (ZDICT_isError(dictContentSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(dictContentSize); + + } + + totalCompressedSize = COVER_checkTotalCompressedSize(params, samplesSizes, + samplesBuffer, offsets, + nbCheckSamples, nbSamples, + candidateDictBuffer, dictContentSize); + + if (ZSTD_isError(totalCompressedSize)) { + free(largestDictbuffer); + free(candidateDictBuffer); + return COVER_dictSelectionError(totalCompressedSize); + } + + if ((double)totalCompressedSize <= (double)largestCompressed * regressionTolerance) { + free(largestDictbuffer); + return setDictSelection( candidateDictBuffer, dictContentSize, totalCompressedSize ); + } + dictContentSize *= 2; + } + dictContentSize = largestDict; + totalCompressedSize = largestCompressed; + free(candidateDictBuffer); + return setDictSelection( largestDictbuffer, dictContentSize, totalCompressedSize ); +} + +/** + * Parameters for COVER_tryParameters(). + */ +typedef struct COVER_tryParameters_data_s { + const COVER_ctx_t *ctx; + COVER_best_t *best; + size_t dictBufferCapacity; + ZDICT_cover_params_t parameters; +} COVER_tryParameters_data_t; + +/** + * Tries a set of parameters and updates the COVER_best_t with the results. + * This function is thread safe if zstd is compiled with multithreaded support. + * It takes its parameters as an *OWNING* opaque pointer to support threading. + */ +static void COVER_tryParameters(void *opaque) +{ + /* Save parameters as local variables */ + COVER_tryParameters_data_t *const data = (COVER_tryParameters_data_t*)opaque; + const COVER_ctx_t *const ctx = data->ctx; + const ZDICT_cover_params_t parameters = data->parameters; + size_t dictBufferCapacity = data->dictBufferCapacity; + size_t totalCompressedSize = ERROR(GENERIC); + /* Allocate space for hash table, dict, and freqs */ + COVER_map_t activeDmers; + BYTE* const dict = (BYTE*)malloc(dictBufferCapacity); + COVER_dictSelection_t selection = COVER_dictSelectionError(ERROR(GENERIC)); + U32* const freqs = (U32*)malloc(ctx->suffixSize * sizeof(U32)); + if (!COVER_map_init(&activeDmers, parameters.k - parameters.d + 1)) { + DISPLAYLEVEL(1, "Failed to allocate dmer map: out of memory\n"); + goto _cleanup; + } + if (!dict || !freqs) { + DISPLAYLEVEL(1, "Failed to allocate buffers: out of memory\n"); + goto _cleanup; + } + /* Copy the frequencies because we need to modify them */ + memcpy(freqs, ctx->freqs, ctx->suffixSize * sizeof(U32)); + /* Build the dictionary */ + { + const size_t tail = COVER_buildDictionary(ctx, freqs, &activeDmers, dict, + dictBufferCapacity, parameters); + selection = COVER_selectDict(dict + tail, dictBufferCapacity, dictBufferCapacity - tail, + ctx->samples, ctx->samplesSizes, (unsigned)ctx->nbTrainSamples, ctx->nbTrainSamples, ctx->nbSamples, parameters, ctx->offsets, + totalCompressedSize); + + if (COVER_dictSelectionIsError(selection)) { + DISPLAYLEVEL(1, "Failed to select dictionary\n"); + goto _cleanup; + } + } +_cleanup: + free(dict); + COVER_best_finish(data->best, parameters, selection); + free(data); + COVER_map_destroy(&activeDmers); + COVER_dictSelectionFree(selection); + free(freqs); +} + +ZDICTLIB_STATIC_API size_t ZDICT_optimizeTrainFromBuffer_cover( + void* dictBuffer, size_t dictBufferCapacity, const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t* parameters) +{ + /* constants */ + const unsigned nbThreads = parameters->nbThreads; + const double splitPoint = + parameters->splitPoint <= 0.0 ? COVER_DEFAULT_SPLITPOINT : parameters->splitPoint; + const unsigned kMinD = parameters->d == 0 ? 6 : parameters->d; + const unsigned kMaxD = parameters->d == 0 ? 8 : parameters->d; + const unsigned kMinK = parameters->k == 0 ? 50 : parameters->k; + const unsigned kMaxK = parameters->k == 0 ? 2000 : parameters->k; + const unsigned kSteps = parameters->steps == 0 ? 40 : parameters->steps; + const unsigned kStepSize = MAX((kMaxK - kMinK) / kSteps, 1); + const unsigned kIterations = + (1 + (kMaxD - kMinD) / 2) * (1 + (kMaxK - kMinK) / kStepSize); + const unsigned shrinkDict = 0; + /* Local variables */ + const int displayLevel = parameters->zParams.notificationLevel; + unsigned iteration = 1; + unsigned d; + unsigned k; + COVER_best_t best; + POOL_ctx *pool = NULL; + int warned = 0; + + (void) kIterations; + (void) iteration; + + /* Checks */ + if (splitPoint <= 0 || splitPoint > 1) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect parameters\n"); + return ERROR(parameter_outOfBound); + } + if (kMinK < kMaxD || kMaxK < kMinK) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect parameters\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "Cover must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + if (nbThreads > 1) { + pool = POOL_create(nbThreads, 1); + if (!pool) { + return ERROR(memory_allocation); + } + } + /* Initialization */ + COVER_best_init(&best); + /* Turn down global display level to clean up display at level 2 and below */ + g_displayLevel = displayLevel == 0 ? 0 : displayLevel - 1; + /* Loop through d first because each new value needs a new context */ + LOCALDISPLAYLEVEL(displayLevel, 2, "Trying %u different sets of parameters\n", + kIterations); + for (d = kMinD; d <= kMaxD; d += 2) { + /* Initialize the context for this value of d */ + COVER_ctx_t ctx; + LOCALDISPLAYLEVEL(displayLevel, 3, "d=%u\n", d); + { + const size_t initVal = COVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, d, splitPoint); + if (ZSTD_isError(initVal)) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to initialize context\n"); + COVER_best_destroy(&best); + POOL_free(pool); + return initVal; + } + } + if (!warned) { + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.suffixSize, displayLevel); + warned = 1; + } + /* Loop through k reusing the same context */ + for (k = kMinK; k <= kMaxK; k += kStepSize) { + /* Prepare the arguments */ + COVER_tryParameters_data_t *data = (COVER_tryParameters_data_t *)malloc( + sizeof(COVER_tryParameters_data_t)); + LOCALDISPLAYLEVEL(displayLevel, 3, "k=%u\n", k); + if (!data) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to allocate parameters\n"); + COVER_best_destroy(&best); + COVER_ctx_destroy(&ctx); + POOL_free(pool); + return ERROR(memory_allocation); + } + data->ctx = &ctx; + data->best = &best; + data->dictBufferCapacity = dictBufferCapacity; + data->parameters = *parameters; + data->parameters.k = k; + data->parameters.d = d; + data->parameters.splitPoint = splitPoint; + data->parameters.steps = kSteps; + data->parameters.shrinkDict = shrinkDict; + data->parameters.zParams.notificationLevel = g_displayLevel; + /* Check the parameters */ + if (!COVER_checkParameters(data->parameters, dictBufferCapacity)) { + DISPLAYLEVEL(1, "Cover parameters incorrect\n"); + free(data); + continue; + } + /* Call the function and pass ownership of data to it */ + COVER_best_start(&best); + if (pool) { + POOL_add(pool, &COVER_tryParameters, data); + } else { + COVER_tryParameters(data); + } + /* Print status */ + LOCALDISPLAYUPDATE(displayLevel, 2, "\r%u%% ", + (unsigned)((iteration * 100) / kIterations)); + ++iteration; + } + COVER_best_wait(&best); + COVER_ctx_destroy(&ctx); + } + LOCALDISPLAYLEVEL(displayLevel, 2, "\r%79s\r", ""); + /* Fill the output buffer and parameters with output of the best parameters */ + { + const size_t dictSize = best.dictSize; + if (ZSTD_isError(best.compressedSize)) { + const size_t compressedSize = best.compressedSize; + COVER_best_destroy(&best); + POOL_free(pool); + return compressedSize; + } + *parameters = best.parameters; + memcpy(dictBuffer, best.dict, dictSize); + COVER_best_destroy(&best); + POOL_free(pool); + return dictSize; + } +} + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/dict/divsufsort.cpp b/src/duckdb/third_party/zstd/dict/divsufsort.cpp new file mode 100644 index 00000000..b4090173 --- /dev/null +++ b/src/duckdb/third_party/zstd/dict/divsufsort.cpp @@ -0,0 +1,1916 @@ +/* + * divsufsort.c for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +/*- Compiler specifics -*/ +#ifdef __clang__ +#pragma clang diagnostic ignored "-Wshorten-64-to-32" +#endif + +#if defined(_MSC_VER) +# pragma warning(disable : 4244) +# pragma warning(disable : 4127) /* C4127 : Condition expression is constant */ +#endif + + +/*- Dependencies -*/ +#include +#include +#include + +#include "zstd/dict/divsufsort.h" + +/*- Constants -*/ +#if defined(INLINE) +# undef INLINE +#endif +#if !defined(INLINE) +# define INLINE __inline +#endif +#if defined(ALPHABET_SIZE) && (ALPHABET_SIZE < 1) +# undef ALPHABET_SIZE +#endif +#if !defined(ALPHABET_SIZE) +# define ALPHABET_SIZE (256) +#endif +#define BUCKET_A_SIZE (ALPHABET_SIZE) +#define BUCKET_B_SIZE (ALPHABET_SIZE * ALPHABET_SIZE) +#if defined(SS_INSERTIONSORT_THRESHOLD) +# if SS_INSERTIONSORT_THRESHOLD < 1 +# undef SS_INSERTIONSORT_THRESHOLD +# define SS_INSERTIONSORT_THRESHOLD (1) +# endif +#else +# define SS_INSERTIONSORT_THRESHOLD (8) +#endif +#if defined(SS_BLOCKSIZE) +# if SS_BLOCKSIZE < 0 +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (0) +# elif 32768 <= SS_BLOCKSIZE +# undef SS_BLOCKSIZE +# define SS_BLOCKSIZE (32767) +# endif +#else +# define SS_BLOCKSIZE (1024) +#endif +/* minstacksize = log(SS_BLOCKSIZE) / log(3) * 2 */ +#if SS_BLOCKSIZE == 0 +# define SS_MISORT_STACKSIZE (96) +#elif SS_BLOCKSIZE <= 4096 +# define SS_MISORT_STACKSIZE (16) +#else +# define SS_MISORT_STACKSIZE (24) +#endif +#define SS_SMERGE_STACKSIZE (32) +#define TR_INSERTIONSORT_THRESHOLD (8) +#define TR_STACKSIZE (64) + + +/*- Macros -*/ +#ifndef SWAP +# define SWAP(_a, _b) do { t = (_a); (_a) = (_b); (_b) = t; } while(0) +#endif /* SWAP */ +#ifndef MIN +# define MIN(_a, _b) (((_a) < (_b)) ? (_a) : (_b)) +#endif /* MIN */ +#ifndef MAX +# define MAX(_a, _b) (((_a) > (_b)) ? (_a) : (_b)) +#endif /* MAX */ +#define STACK_PUSH(_a, _b, _c, _d)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize++].d = (_d);\ + } while(0) +#define STACK_PUSH5(_a, _b, _c, _d, _e)\ + do {\ + assert(ssize < STACK_SIZE);\ + stack[ssize].a = (_a), stack[ssize].b = (_b),\ + stack[ssize].c = (_c), stack[ssize].d = (_d), stack[ssize++].e = (_e);\ + } while(0) +#define STACK_POP(_a, _b, _c, _d)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d;\ + } while(0) +#define STACK_POP5(_a, _b, _c, _d, _e)\ + do {\ + assert(0 <= ssize);\ + if(ssize == 0) { return; }\ + (_a) = stack[--ssize].a, (_b) = stack[ssize].b,\ + (_c) = stack[ssize].c, (_d) = stack[ssize].d, (_e) = stack[ssize].e;\ + } while(0) +#define BUCKET_A(_c0) bucket_A[(_c0)] +#if ALPHABET_SIZE == 256 +#define BUCKET_B(_c0, _c1) (bucket_B[((_c1) << 8) | (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[((_c0) << 8) | (_c1)]) +#else +#define BUCKET_B(_c0, _c1) (bucket_B[(_c1) * ALPHABET_SIZE + (_c0)]) +#define BUCKET_BSTAR(_c0, _c1) (bucket_B[(_c0) * ALPHABET_SIZE + (_c1)]) +#endif + +namespace duckdb_zstd { + +/*- Private Functions -*/ + +static const int lg_table[256]= { + -1,0,1,1,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 +}; + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +int +ss_ilg(int n) { +#if SS_BLOCKSIZE == 0 + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +#elif SS_BLOCKSIZE < 256 + return lg_table[n]; +#else + return (n & 0xff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]; +#endif +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + +#if SS_BLOCKSIZE != 0 + +static const int sqq_table[256] = { + 0, 16, 22, 27, 32, 35, 39, 42, 45, 48, 50, 53, 55, 57, 59, 61, + 64, 65, 67, 69, 71, 73, 75, 76, 78, 80, 81, 83, 84, 86, 87, 89, + 90, 91, 93, 94, 96, 97, 98, 99, 101, 102, 103, 104, 106, 107, 108, 109, +110, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, +128, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, +143, 144, 144, 145, 146, 147, 148, 149, 150, 150, 151, 152, 153, 154, 155, 155, +156, 157, 158, 159, 160, 160, 161, 162, 163, 163, 164, 165, 166, 167, 167, 168, +169, 170, 170, 171, 172, 173, 173, 174, 175, 176, 176, 177, 178, 178, 179, 180, +181, 181, 182, 183, 183, 184, 185, 185, 186, 187, 187, 188, 189, 189, 190, 191, +192, 192, 193, 193, 194, 195, 195, 196, 197, 197, 198, 199, 199, 200, 201, 201, +202, 203, 203, 204, 204, 205, 206, 206, 207, 208, 208, 209, 209, 210, 211, 211, +212, 212, 213, 214, 214, 215, 215, 216, 217, 217, 218, 218, 219, 219, 220, 221, +221, 222, 222, 223, 224, 224, 225, 225, 226, 226, 227, 227, 228, 229, 229, 230, +230, 231, 231, 232, 232, 233, 234, 234, 235, 235, 236, 236, 237, 237, 238, 238, +239, 240, 240, 241, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, +247, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255 +}; + +static INLINE +int +ss_isqrt(int x) { + int y, e; + + if(x >= (SS_BLOCKSIZE * SS_BLOCKSIZE)) { return SS_BLOCKSIZE; } + e = (x & 0xffff0000) ? + ((x & 0xff000000) ? + 24 + lg_table[(x >> 24) & 0xff] : + 16 + lg_table[(x >> 16) & 0xff]) : + ((x & 0x0000ff00) ? + 8 + lg_table[(x >> 8) & 0xff] : + 0 + lg_table[(x >> 0) & 0xff]); + + if(e >= 16) { + y = sqq_table[x >> ((e - 6) - (e & 1))] << ((e >> 1) - 7); + if(e >= 24) { y = (y + 1 + x / y) >> 1; } + y = (y + 1 + x / y) >> 1; + } else if(e >= 8) { + y = (sqq_table[x >> ((e - 6) - (e & 1))] >> (7 - (e >> 1))) + 1; + } else { + return sqq_table[x] >> 4; + } + + return (x < (y * y)) ? y - 1 : y; +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Compares two suffixes. */ +static INLINE +int +ss_compare(const unsigned char *T, + const int *p1, const int *p2, + int depth) { + const unsigned char *U1, *U2, *U1n, *U2n; + + for(U1 = T + depth + *p1, + U2 = T + depth + *p2, + U1n = T + *(p1 + 1) + 2, + U2n = T + *(p2 + 1) + 2; + (U1 < U1n) && (U2 < U2n) && (*U1 == *U2); + ++U1, ++U2) { + } + + return U1 < U1n ? + (U2 < U2n ? *U1 - *U2 : 1) : + (U2 < U2n ? -1 : 0); +} + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) + +/* Insertionsort for small size groups */ +static +void +ss_insertionsort(const unsigned char *T, const int *PA, + int *first, int *last, int depth) { + int *i, *j; + int t; + int r; + + for(i = last - 2; first <= i; --i) { + for(t = *i, j = i + 1; 0 < (r = ss_compare(T, PA + t, PA + *j, depth));) { + do { *(j - 1) = *j; } while((++j < last) && (*j < 0)); + if(last <= j) { break; } + } + if(r == 0) { *j = ~*j; } + *(j - 1) = t; + } +} + +#endif /* (SS_BLOCKSIZE != 1) && (SS_INSERTIONSORT_THRESHOLD != 1) */ + + +/*---------------------------------------------------------------------------*/ + +#if (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) + +static INLINE +void +ss_fixdown(const unsigned char *Td, const int *PA, + int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = Td[PA[v]]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = Td[PA[SA[k = j++]]]; + if(d < (e = Td[PA[SA[j]]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +ss_heapsort(const unsigned char *Td, const int *PA, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(Td[PA[SA[m / 2]]] < Td[PA[SA[m]]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { ss_fixdown(Td, PA, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); ss_fixdown(Td, PA, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + ss_fixdown(Td, PA, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +ss_median3(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3) { + int *t; + if(Td[PA[*v1]] > Td[PA[*v2]]) { SWAP(v1, v2); } + if(Td[PA[*v2]] > Td[PA[*v3]]) { + if(Td[PA[*v1]] > Td[PA[*v3]]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +ss_median5(const unsigned char *Td, const int *PA, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(Td[PA[*v2]] > Td[PA[*v3]]) { SWAP(v2, v3); } + if(Td[PA[*v4]] > Td[PA[*v5]]) { SWAP(v4, v5); } + if(Td[PA[*v2]] > Td[PA[*v4]]) { SWAP(v2, v4); SWAP(v3, v5); } + if(Td[PA[*v1]] > Td[PA[*v3]]) { SWAP(v1, v3); } + if(Td[PA[*v1]] > Td[PA[*v4]]) { SWAP(v1, v4); SWAP(v3, v5); } + if(Td[PA[*v3]] > Td[PA[*v4]]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +ss_pivot(const unsigned char *Td, const int *PA, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return ss_median3(Td, PA, first, middle, last - 1); + } else { + t >>= 2; + return ss_median5(Td, PA, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = ss_median3(Td, PA, first, first + t, first + (t << 1)); + middle = ss_median3(Td, PA, middle - t, middle, middle + t); + last = ss_median3(Td, PA, last - 1 - (t << 1), last - 1 - t, last - 1); + return ss_median3(Td, PA, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +/* Binary partition for substrings. */ +static INLINE +int * +ss_partition(const int *PA, + int *first, int *last, int depth) { + int *a, *b; + int t; + for(a = first - 1, b = last;;) { + for(; (++a < b) && ((PA[*a] + depth) >= (PA[*a + 1] + 1));) { *a = ~*a; } + for(; (a < --b) && ((PA[*b] + depth) < (PA[*b + 1] + 1));) { } + if(b <= a) { break; } + t = ~*b; + *b = *a; + *a = t; + } + if(first < a) { *first = ~*first; } + return a; +} + +/* Multikey introsort for medium size groups. */ +static +void +ss_mintrosort(const unsigned char *T, const int *PA, + int *first, int *last, + int depth) { +#define STACK_SIZE SS_MISORT_STACKSIZE + struct { int *a, *b, c; int d; } stack[STACK_SIZE]; + const unsigned char *Td; + int *a, *b, *c, *d, *e, *f; + int s, t; + int ssize; + int limit; + int v, x = 0; + + for(ssize = 0, limit = ss_ilg(last - first);;) { + + if((last - first) <= SS_INSERTIONSORT_THRESHOLD) { +#if 1 < SS_INSERTIONSORT_THRESHOLD + if(1 < (last - first)) { ss_insertionsort(T, PA, first, last, depth); } +#endif + STACK_POP(first, last, depth, limit); + continue; + } + + Td = T + depth; + if(limit-- == 0) { ss_heapsort(Td, PA, first, last - first); } + if(limit < 0) { + for(a = first + 1, v = Td[PA[*first]]; a < last; ++a) { + if((x = Td[PA[*a]]) != v) { + if(1 < (a - first)) { break; } + v = x; + first = a; + } + } + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, a, depth); + } + if((a - first) <= (last - a)) { + if(1 < (a - first)) { + STACK_PUSH(a, last, depth, -1); + last = a, depth += 1, limit = ss_ilg(a - first); + } else { + first = a, limit = -1; + } + } else { + if(1 < (last - a)) { + STACK_PUSH(first, a, depth + 1, ss_ilg(a - first)); + first = a, limit = -1; + } else { + last = a, depth += 1, limit = ss_ilg(a - first); + } + } + continue; + } + + /* choose pivot */ + a = ss_pivot(Td, PA, first, last); + v = Td[PA[*a]]; + SWAP(*first, *a); + + /* partition */ + for(b = first; (++b < last) && ((x = Td[PA[*b]]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = Td[PA[*c]]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = Td[PA[*b]]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = Td[PA[*c]]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + + a = first + (b - a), c = last - (d - c); + b = (v <= Td[PA[*a] - 1]) ? a : ss_partition(PA, a, c, depth); + + if((a - first) <= (last - c)) { + if((last - c) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(c, last, depth, limit); + last = a; + } else if((a - first) <= (c - b)) { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + last = a; + } else { + STACK_PUSH(c, last, depth, limit); + STACK_PUSH(first, a, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } else { + if((a - first) <= (c - b)) { + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + STACK_PUSH(first, a, depth, limit); + first = c; + } else if((last - c) <= (c - b)) { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(b, c, depth + 1, ss_ilg(c - b)); + first = c; + } else { + STACK_PUSH(first, a, depth, limit); + STACK_PUSH(c, last, depth, limit); + first = b, last = c, depth += 1, limit = ss_ilg(c - b); + } + } + } else { + limit += 1; + if(Td[PA[*first] - 1] < v) { + first = ss_partition(PA, first, last, depth); + limit = ss_ilg(last - first); + } + depth += 1; + } + } +#undef STACK_SIZE +} + +#endif /* (SS_BLOCKSIZE == 0) || (SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE) */ + + +/*---------------------------------------------------------------------------*/ + +#if SS_BLOCKSIZE != 0 + +static INLINE +void +ss_blockswap(int *a, int *b, int n) { + int t; + for(; 0 < n; --n, ++a, ++b) { + t = *a, *a = *b, *b = t; + } +} + +static INLINE +void +ss_rotate(int *first, int *middle, int *last) { + int *a, *b, t; + int l, r; + l = middle - first, r = last - middle; + for(; (0 < l) && (0 < r);) { + if(l == r) { ss_blockswap(first, middle, l); break; } + if(l < r) { + a = last - 1, b = middle - 1; + t = *a; + do { + *a-- = *b, *b-- = *a; + if(b < first) { + *a = t; + last = a; + if((r -= l + 1) <= l) { break; } + a -= 1, b = middle - 1; + t = *a; + } + } while(1); + } else { + a = first, b = middle; + t = *a; + do { + *a++ = *b, *b++ = *a; + if(last <= b) { + *a = t; + first = a + 1; + if((l -= r + 1) <= r) { break; } + a += 1, b = middle; + t = *a; + } + } while(1); + } + } +} + + +/*---------------------------------------------------------------------------*/ + +static +void +ss_inplacemerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int depth) { + const int *p; + int *a, *b; + int len, half; + int q, r; + int x; + + for(;;) { + if(*(last - 1) < 0) { x = 1; p = PA + ~*(last - 1); } + else { x = 0; p = PA + *(last - 1); } + for(a = first, len = middle - first, half = len >> 1, r = -1; + 0 < len; + len = half, half >>= 1) { + b = a + half; + q = ss_compare(T, PA + ((0 <= *b) ? *b : ~*b), p, depth); + if(q < 0) { + a = b + 1; + half -= (len & 1) ^ 1; + } else { + r = q; + } + } + if(a < middle) { + if(r == 0) { *a = ~*a; } + ss_rotate(a, middle, last); + last -= middle - a; + middle = a; + if(first == middle) { break; } + } + --last; + if(x != 0) { while(*--last < 0) { } } + if(middle == last) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Merge-forward with internal buffer. */ +static +void +ss_mergeforward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + int *a, *b, *c, *bufend; + int t; + int r; + + bufend = buf + (middle - first) - 1; + ss_blockswap(buf, first, middle - first); + + for(t = *(a = first), b = buf, c = middle;;) { + r = ss_compare(T, PA + *b, PA + *c, depth); + if(r < 0) { + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + } else if(r > 0) { + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } else { + *c = ~*c; + do { + *a++ = *b; + if(bufend <= b) { *bufend = t; return; } + *b++ = *a; + } while(*b < 0); + + do { + *a++ = *c, *c++ = *a; + if(last <= c) { + while(b < bufend) { *a++ = *b, *b++ = *a; } + *a = *b, *b = t; + return; + } + } while(*c < 0); + } + } +} + +/* Merge-backward with internal buffer. */ +static +void +ss_mergebackward(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int depth) { + const int *p1, *p2; + int *a, *b, *c, *bufend; + int t; + int r; + int x; + + bufend = buf + (last - middle) - 1; + ss_blockswap(buf, middle, last - middle); + + x = 0; + if(*bufend < 0) { p1 = PA + ~*bufend; x |= 1; } + else { p1 = PA + *bufend; } + if(*(middle - 1) < 0) { p2 = PA + ~*(middle - 1); x |= 2; } + else { p2 = PA + *(middle - 1); } + for(t = *(a = last - 1), b = bufend, c = middle - 1;;) { + r = ss_compare(T, p1, p2, depth); + if(0 < r) { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = *b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + } else if(r < 0) { + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } else { + if(x & 1) { do { *a-- = *b, *b-- = *a; } while(*b < 0); x ^= 1; } + *a-- = ~*b; + if(b <= buf) { *buf = t; break; } + *b-- = *a; + if(x & 2) { do { *a-- = *c, *c-- = *a; } while(*c < 0); x ^= 2; } + *a-- = *c, *c-- = *a; + if(c < first) { + while(buf < b) { *a-- = *b, *b-- = *a; } + *a = *b, *b = t; + break; + } + if(*b < 0) { p1 = PA + ~*b; x |= 1; } + else { p1 = PA + *b; } + if(*c < 0) { p2 = PA + ~*c; x |= 2; } + else { p2 = PA + *c; } + } + } +} + +/* D&C based merge. */ +static +void +ss_swapmerge(const unsigned char *T, const int *PA, + int *first, int *middle, int *last, + int *buf, int bufsize, int depth) { +#define STACK_SIZE SS_SMERGE_STACKSIZE +#define GETIDX(a) ((0 <= (a)) ? (a) : (~(a))) +#define MERGE_CHECK(a, b, c)\ + do {\ + if(((c) & 1) ||\ + (((c) & 2) && (ss_compare(T, PA + GETIDX(*((a) - 1)), PA + *(a), depth) == 0))) {\ + *(a) = ~*(a);\ + }\ + if(((c) & 4) && ((ss_compare(T, PA + GETIDX(*((b) - 1)), PA + *(b), depth) == 0))) {\ + *(b) = ~*(b);\ + }\ + } while(0) + struct { int *a, *b, *c; int d; } stack[STACK_SIZE]; + int *l, *r, *lm, *rm; + int m, len, half; + int ssize; + int check, next; + + for(check = 0, ssize = 0;;) { + if((last - middle) <= bufsize) { + if((first < middle) && (middle < last)) { + ss_mergebackward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + if((middle - first) <= bufsize) { + if(first < middle) { + ss_mergeforward(T, PA, first, middle, last, buf, depth); + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + continue; + } + + for(m = 0, len = MIN(middle - first, last - middle), half = len >> 1; + 0 < len; + len = half, half >>= 1) { + if(ss_compare(T, PA + GETIDX(*(middle + m + half)), + PA + GETIDX(*(middle - m - half - 1)), depth) < 0) { + m += half + 1; + half -= (len & 1) ^ 1; + } + } + + if(0 < m) { + lm = middle - m, rm = middle + m; + ss_blockswap(lm, middle, m); + l = r = middle, next = 0; + if(rm < last) { + if(*rm < 0) { + *rm = ~*rm; + if(first < lm) { for(; *--l < 0;) { } next |= 4; } + next |= 1; + } else if(first < lm) { + for(; *r < 0; ++r) { } + next |= 2; + } + } + + if((l - first) <= (last - r)) { + STACK_PUSH(r, rm, last, (next & 3) | (check & 4)); + middle = lm, last = l, check = (check & 3) | (next & 4); + } else { + if((next & 2) && (r == middle)) { next ^= 6; } + STACK_PUSH(first, lm, l, (check & 3) | (next & 4)); + first = r, middle = rm, check = (next & 3) | (check & 4); + } + } else { + if(ss_compare(T, PA + GETIDX(*(middle - 1)), PA + *middle, depth) == 0) { + *middle = ~*middle; + } + MERGE_CHECK(first, last, check); + STACK_POP(first, middle, last, check); + } + } +#undef STACK_SIZE +} + +#endif /* SS_BLOCKSIZE != 0 */ + + +/*---------------------------------------------------------------------------*/ + +/* Substring sort */ +static +void +sssort(const unsigned char *T, const int *PA, + int *first, int *last, + int *buf, int bufsize, + int depth, int n, int lastsuffix) { + int *a; +#if SS_BLOCKSIZE != 0 + int *b, *middle, *curbuf; + int j, k, curbufsize, limit; +#endif + int i; + + if(lastsuffix != 0) { ++first; } + +#if SS_BLOCKSIZE == 0 + ss_mintrosort(T, PA, first, last, depth); +#else + if((bufsize < SS_BLOCKSIZE) && + (bufsize < (last - first)) && + (bufsize < (limit = ss_isqrt(last - first)))) { + if(SS_BLOCKSIZE < limit) { limit = SS_BLOCKSIZE; } + buf = middle = last - limit, bufsize = limit; + } else { + middle = last, limit = 0; + } + for(a = first, i = 0; SS_BLOCKSIZE < (middle - a); a += SS_BLOCKSIZE, ++i) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, a + SS_BLOCKSIZE, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, a + SS_BLOCKSIZE, depth); +#endif + curbufsize = last - (a + SS_BLOCKSIZE); + curbuf = a + SS_BLOCKSIZE; + if(curbufsize <= bufsize) { curbufsize = bufsize, curbuf = buf; } + for(b = a, k = SS_BLOCKSIZE, j = i; j & 1; b -= k, k <<= 1, j >>= 1) { + ss_swapmerge(T, PA, b - k, b, b + k, curbuf, curbufsize, depth); + } + } +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, a, middle, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, a, middle, depth); +#endif + for(k = SS_BLOCKSIZE; i != 0; k <<= 1, i >>= 1) { + if(i & 1) { + ss_swapmerge(T, PA, a - k, a, middle, buf, bufsize, depth); + a -= k; + } + } + if(limit != 0) { +#if SS_INSERTIONSORT_THRESHOLD < SS_BLOCKSIZE + ss_mintrosort(T, PA, middle, last, depth); +#elif 1 < SS_BLOCKSIZE + ss_insertionsort(T, PA, middle, last, depth); +#endif + ss_inplacemerge(T, PA, first, middle, last, depth); + } +#endif + + if(lastsuffix != 0) { + /* Insert last type B* suffix. */ + int PAi[2]; PAi[0] = PA[*(first - 1)], PAi[1] = n - 2; + for(a = first, i = *(first - 1); + (a < last) && ((*a < 0) || (0 < ss_compare(T, &(PAi[0]), PA + *a, depth))); + ++a) { + *(a - 1) = *a; + } + *(a - 1) = i; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +int +tr_ilg(int n) { + return (n & 0xffff0000) ? + ((n & 0xff000000) ? + 24 + lg_table[(n >> 24) & 0xff] : + 16 + lg_table[(n >> 16) & 0xff]) : + ((n & 0x0000ff00) ? + 8 + lg_table[(n >> 8) & 0xff] : + 0 + lg_table[(n >> 0) & 0xff]); +} + + +/*---------------------------------------------------------------------------*/ + +/* Simple insertionsort for small size groups. */ +static +void +tr_insertionsort(const int *ISAd, int *first, int *last) { + int *a, *b; + int t, r; + + for(a = first + 1; a < last; ++a) { + for(t = *a, b = a - 1; 0 > (r = ISAd[t] - ISAd[*b]);) { + do { *(b + 1) = *b; } while((first <= --b) && (*b < 0)); + if(b < first) { break; } + } + if(r == 0) { *b = ~*b; } + *(b + 1) = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_fixdown(const int *ISAd, int *SA, int i, int size) { + int j, k; + int v; + int c, d, e; + + for(v = SA[i], c = ISAd[v]; (j = 2 * i + 1) < size; SA[i] = SA[k], i = k) { + d = ISAd[SA[k = j++]]; + if(d < (e = ISAd[SA[j]])) { k = j; d = e; } + if(d <= c) { break; } + } + SA[i] = v; +} + +/* Simple top-down heapsort. */ +static +void +tr_heapsort(const int *ISAd, int *SA, int size) { + int i, m; + int t; + + m = size; + if((size % 2) == 0) { + m--; + if(ISAd[SA[m / 2]] < ISAd[SA[m]]) { SWAP(SA[m], SA[m / 2]); } + } + + for(i = m / 2 - 1; 0 <= i; --i) { tr_fixdown(ISAd, SA, i, m); } + if((size % 2) == 0) { SWAP(SA[0], SA[m]); tr_fixdown(ISAd, SA, 0, m); } + for(i = m - 1; 0 < i; --i) { + t = SA[0], SA[0] = SA[i]; + tr_fixdown(ISAd, SA, 0, i); + SA[i] = t; + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Returns the median of three elements. */ +static INLINE +int * +tr_median3(const int *ISAd, int *v1, int *v2, int *v3) { + int *t; + if(ISAd[*v1] > ISAd[*v2]) { SWAP(v1, v2); } + if(ISAd[*v2] > ISAd[*v3]) { + if(ISAd[*v1] > ISAd[*v3]) { return v1; } + else { return v3; } + } + return v2; +} + +/* Returns the median of five elements. */ +static INLINE +int * +tr_median5(const int *ISAd, + int *v1, int *v2, int *v3, int *v4, int *v5) { + int *t; + if(ISAd[*v2] > ISAd[*v3]) { SWAP(v2, v3); } + if(ISAd[*v4] > ISAd[*v5]) { SWAP(v4, v5); } + if(ISAd[*v2] > ISAd[*v4]) { SWAP(v2, v4); SWAP(v3, v5); } + if(ISAd[*v1] > ISAd[*v3]) { SWAP(v1, v3); } + if(ISAd[*v1] > ISAd[*v4]) { SWAP(v1, v4); SWAP(v3, v5); } + if(ISAd[*v3] > ISAd[*v4]) { return v4; } + return v3; +} + +/* Returns the pivot element. */ +static INLINE +int * +tr_pivot(const int *ISAd, int *first, int *last) { + int *middle; + int t; + + t = last - first; + middle = first + t / 2; + + if(t <= 512) { + if(t <= 32) { + return tr_median3(ISAd, first, middle, last - 1); + } else { + t >>= 2; + return tr_median5(ISAd, first, first + t, middle, last - 1 - t, last - 1); + } + } + t >>= 3; + first = tr_median3(ISAd, first, first + t, first + (t << 1)); + middle = tr_median3(ISAd, middle - t, middle, middle + t); + last = tr_median3(ISAd, last - 1 - (t << 1), last - 1 - t, last - 1); + return tr_median3(ISAd, first, middle, last); +} + + +/*---------------------------------------------------------------------------*/ + +typedef struct _trbudget_t trbudget_t; +struct _trbudget_t { + int chance; + int remain; + int incval; + int count; +}; + +static INLINE +void +trbudget_init(trbudget_t *budget, int chance, int incval) { + budget->chance = chance; + budget->remain = budget->incval = incval; +} + +static INLINE +int +trbudget_check(trbudget_t *budget, int size) { + if(size <= budget->remain) { budget->remain -= size; return 1; } + if(budget->chance == 0) { budget->count += size; return 0; } + budget->remain += budget->incval - size; + budget->chance -= 1; + return 1; +} + + +/*---------------------------------------------------------------------------*/ + +static INLINE +void +tr_partition(const int *ISAd, + int *first, int *middle, int *last, + int **pa, int **pb, int v) { + int *a, *b, *c, *d, *e, *f; + int t, s; + int x = 0; + + for(b = middle - 1; (++b < last) && ((x = ISAd[*b]) == v);) { } + if(((a = b) < last) && (x < v)) { + for(; (++b < last) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + } + for(c = last; (b < --c) && ((x = ISAd[*c]) == v);) { } + if((b < (d = c)) && (x > v)) { + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + for(; b < c;) { + SWAP(*b, *c); + for(; (++b < c) && ((x = ISAd[*b]) <= v);) { + if(x == v) { SWAP(*b, *a); ++a; } + } + for(; (b < --c) && ((x = ISAd[*c]) >= v);) { + if(x == v) { SWAP(*c, *d); --d; } + } + } + + if(a <= d) { + c = b - 1; + if((s = a - first) > (t = b - a)) { s = t; } + for(e = first, f = b - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + if((s = d - c) > (t = last - d - 1)) { s = t; } + for(e = b, f = last - s; 0 < s; --s, ++e, ++f) { SWAP(*e, *f); } + first += (b - a), last -= (d - c); + } + *pa = first, *pb = last; +} + +static +void +tr_copy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + /* sort suffixes of middle partition + by using sorted order of suffixes of left and right partition. */ + int *c, *d, *e; + int s, v; + + v = b - SA - 1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + ISA[s] = d - SA; + } + } + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + ISA[s] = d - SA; + } + } +} + +static +void +tr_partialcopy(int *ISA, const int *SA, + int *first, int *a, int *b, int *last, + int depth) { + int *c, *d, *e; + int s, v; + int rank, lastrank, newrank = -1; + + v = b - SA - 1; + lastrank = -1; + for(c = first, d = a - 1; c <= d; ++c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *++d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } + + lastrank = -1; + for(e = d; first <= e; --e) { + rank = ISA[*e]; + if(lastrank != rank) { lastrank = rank; newrank = e - SA; } + if(newrank != rank) { ISA[*e] = newrank; } + } + + lastrank = -1; + for(c = last - 1, e = d + 1, d = b; e < d; --c) { + if((0 <= (s = *c - depth)) && (ISA[s] == v)) { + *--d = s; + rank = ISA[s + depth]; + if(lastrank != rank) { lastrank = rank; newrank = d - SA; } + ISA[s] = newrank; + } + } +} + +static +void +tr_introsort(int *ISA, const int *ISAd, + int *SA, int *first, int *last, + trbudget_t *budget) { +#define STACK_SIZE TR_STACKSIZE + struct { const int *a; int *b, *c; int d, e; }stack[STACK_SIZE]; + int *a, *b, *c; + int t; + int v, x = 0; + int incr = ISAd - ISA; + int limit, next; + int ssize, trlink = -1; + + for(ssize = 0, limit = tr_ilg(last - first);;) { + + if(limit < 0) { + if(limit == -1) { + /* tandem repeat partition */ + tr_partition(ISAd - incr, first, first, last, &a, &b, last - SA - 1); + + /* update ranks */ + if(a < last) { + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + } + if(b < last) { + for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } + } + + /* push */ + if(1 < (b - a)) { + STACK_PUSH5(NULL, a, b, 0, 0); + STACK_PUSH5(ISAd - incr, first, last, -2, trlink); + trlink = ssize - 2; + } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, tr_ilg(last - b), trlink); + last = a, limit = tr_ilg(a - first); + } else if(1 < (last - b)) { + first = b, limit = tr_ilg(last - b); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, tr_ilg(a - first), trlink); + first = b, limit = tr_ilg(last - b); + } else if(1 < (a - first)) { + last = a, limit = tr_ilg(a - first); + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else if(limit == -2) { + /* tandem repeat copy */ + a = stack[--ssize].b, b = stack[ssize].c; + if(stack[ssize].d == 0) { + tr_copy(ISA, SA, first, a, b, last, ISAd - ISA); + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + tr_partialcopy(ISA, SA, first, a, b, last, ISAd - ISA); + } + STACK_POP5(ISAd, first, last, limit, trlink); + } else { + /* sorted partition */ + if(0 <= *first) { + a = first; + do { ISA[*a] = a - SA; } while((++a < last) && (0 <= *a)); + first = a; + } + if(first < last) { + a = first; do { *a = ~*a; } while(*++a < 0); + next = (ISA[*a] != ISAd[*a]) ? tr_ilg(a - first + 1) : -1; + if(++a < last) { for(b = first, v = a - SA - 1; b < a; ++b) { ISA[*b] = v; } } + + /* push */ + if(trbudget_check(budget, a - first)) { + if((a - first) <= (last - a)) { + STACK_PUSH5(ISAd, a, last, -3, trlink); + ISAd += incr, last = a, limit = next; + } else { + if(1 < (last - a)) { + STACK_PUSH5(ISAd + incr, first, a, next, trlink); + first = a, limit = -3; + } else { + ISAd += incr, last = a, limit = next; + } + } + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + if(1 < (last - a)) { + first = a, limit = -3; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + continue; + } + + if((last - first) <= TR_INSERTIONSORT_THRESHOLD) { + tr_insertionsort(ISAd, first, last); + limit = -3; + continue; + } + + if(limit-- == 0) { + tr_heapsort(ISAd, first, last - first); + for(a = last - 1; first < a; a = b) { + for(x = ISAd[*a], b = a - 1; (first <= b) && (ISAd[*b] == x); --b) { *b = ~*b; } + } + limit = -3; + continue; + } + + /* choose pivot */ + a = tr_pivot(ISAd, first, last); + SWAP(*first, *a); + v = ISAd[*first]; + + /* partition */ + tr_partition(ISAd, first, first + 1, last, &a, &b, v); + if((last - first) != (b - a)) { + next = (ISA[*a] != v) ? tr_ilg(b - a) : -1; + + /* update ranks */ + for(c = first, v = a - SA - 1; c < a; ++c) { ISA[*c] = v; } + if(b < last) { for(c = a, v = b - SA - 1; c < b; ++c) { ISA[*c] = v; } } + + /* push */ + if((1 < (b - a)) && (trbudget_check(budget, b - a))) { + if((a - first) <= (last - b)) { + if((last - b) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((a - first) <= (b - a)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, b, last, limit, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + if((a - first) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + last = a; + } else { + ISAd += incr, first = a, last = b, limit = next; + } + } else if((last - b) <= (b - a)) { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd + incr, a, b, next, trlink); + first = b; + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } else { + STACK_PUSH5(ISAd, first, a, limit, trlink); + STACK_PUSH5(ISAd, b, last, limit, trlink); + ISAd += incr, first = a, last = b, limit = next; + } + } + } else { + if((1 < (b - a)) && (0 <= trlink)) { stack[trlink].d = -1; } + if((a - first) <= (last - b)) { + if(1 < (a - first)) { + STACK_PUSH5(ISAd, b, last, limit, trlink); + last = a; + } else if(1 < (last - b)) { + first = b; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } else { + if(1 < (last - b)) { + STACK_PUSH5(ISAd, first, a, limit, trlink); + first = b; + } else if(1 < (a - first)) { + last = a; + } else { + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } + } else { + if(trbudget_check(budget, last - first)) { + limit = tr_ilg(last - first), ISAd += incr; + } else { + if(0 <= trlink) { stack[trlink].d = -1; } + STACK_POP5(ISAd, first, last, limit, trlink); + } + } + } +#undef STACK_SIZE +} + + + +/*---------------------------------------------------------------------------*/ + +/* Tandem repeat sort */ +static +void +trsort(int *ISA, int *SA, int n, int depth) { + int *ISAd; + int *first, *last; + trbudget_t budget; + int t, skip, unsorted; + + trbudget_init(&budget, tr_ilg(n) * 2 / 3, n); +/* trbudget_init(&budget, tr_ilg(n) * 3 / 4, n); */ + for(ISAd = ISA + depth; -n < *SA; ISAd += ISAd - ISA) { + first = SA; + skip = 0; + unsorted = 0; + do { + if((t = *first) < 0) { first -= t; skip += t; } + else { + if(skip != 0) { *(first + skip) = skip; skip = 0; } + last = SA + ISA[t] + 1; + if(1 < (last - first)) { + budget.count = 0; + tr_introsort(ISA, ISAd, SA, first, last, &budget); + if(budget.count != 0) { unsorted += budget.count; } + else { skip = first - last; } + } else if((last - first) == 1) { + skip = -1; + } + first = last; + } + } while(first < (SA + n)); + if(skip != 0) { *(first + skip) = skip; } + if(unsorted == 0) { break; } + } +} + + +/*---------------------------------------------------------------------------*/ + +/* Sorts suffixes of type B*. */ +static +int +sort_typeBstar(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int openMP) { + int *PAb, *ISAb, *buf; +#ifdef LIBBSC_OPENMP + int *curbuf; + int l; +#endif + int i, j, k, t, m, bufsize; + int c0, c1; +#ifdef LIBBSC_OPENMP + int d0, d1; +#endif + (void)openMP; + + /* Initialize bucket arrays. */ + for(i = 0; i < BUCKET_A_SIZE; ++i) { bucket_A[i] = 0; } + for(i = 0; i < BUCKET_B_SIZE; ++i) { bucket_B[i] = 0; } + + /* Count the number of occurrences of the first one or two characters of each + type A, B and B* suffix. Moreover, store the beginning position of all + type B* suffixes into the array SA. */ + for(i = n - 1, m = n, c0 = T[n - 1]; 0 <= i;) { + /* type A suffix. */ + do { ++BUCKET_A(c1 = c0); } while((0 <= --i) && ((c0 = T[i]) >= c1)); + if(0 <= i) { + /* type B* suffix. */ + ++BUCKET_BSTAR(c0, c1); + SA[--m] = i; + /* type B suffix. */ + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { + ++BUCKET_B(c0, c1); + } + } + } + m = n - m; +/* +note: + A type B* suffix is lexicographically smaller than a type B suffix that + begins with the same first two characters. +*/ + + /* Calculate the index of start/end point of each bucket. */ + for(c0 = 0, i = 0, j = 0; c0 < ALPHABET_SIZE; ++c0) { + t = i + BUCKET_A(c0); + BUCKET_A(c0) = i + j; /* start point */ + i = t + BUCKET_B(c0, c0); + for(c1 = c0 + 1; c1 < ALPHABET_SIZE; ++c1) { + j += BUCKET_BSTAR(c0, c1); + BUCKET_BSTAR(c0, c1) = j; /* end point */ + i += BUCKET_B(c0, c1); + } + } + + if(0 < m) { + /* Sort the type B* suffixes by their first two characters. */ + PAb = SA + n - m; ISAb = SA + m; + for(i = m - 2; 0 <= i; --i) { + t = PAb[i], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = i; + } + t = PAb[m - 1], c0 = T[t], c1 = T[t + 1]; + SA[--BUCKET_BSTAR(c0, c1)] = m - 1; + + /* Sort the type B* substrings using sssort. */ +#ifdef LIBBSC_OPENMP + if (openMP) + { + buf = SA + m; + c0 = ALPHABET_SIZE - 2, c1 = ALPHABET_SIZE - 1, j = m; +#pragma omp parallel default(shared) private(bufsize, curbuf, k, l, d0, d1) + { + bufsize = (n - (2 * m)) / omp_get_num_threads(); + curbuf = buf + omp_get_thread_num() * bufsize; + k = 0; + for(;;) { + #pragma omp critical(sssort_lock) + { + if(0 < (l = j)) { + d0 = c0, d1 = c1; + do { + k = BUCKET_BSTAR(d0, d1); + if(--d1 <= d0) { + d1 = ALPHABET_SIZE - 1; + if(--d0 < 0) { break; } + } + } while(((l - k) <= 1) && (0 < (l = k))); + c0 = d0, c1 = d1, j = k; + } + } + if(l == 0) { break; } + sssort(T, PAb, SA + k, SA + l, + curbuf, bufsize, 2, n, *(SA + k) == (m - 1)); + } + } + } + else + { + buf = SA + m, bufsize = n - (2 * m); + for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { + for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { + i = BUCKET_BSTAR(c0, c1); + if(1 < (j - i)) { + sssort(T, PAb, SA + i, SA + j, + buf, bufsize, 2, n, *(SA + i) == (m - 1)); + } + } + } + } +#else + buf = SA + m, bufsize = n - (2 * m); + for(c0 = ALPHABET_SIZE - 2, j = m; 0 < j; --c0) { + for(c1 = ALPHABET_SIZE - 1; c0 < c1; j = i, --c1) { + i = BUCKET_BSTAR(c0, c1); + if(1 < (j - i)) { + sssort(T, PAb, SA + i, SA + j, + buf, bufsize, 2, n, *(SA + i) == (m - 1)); + } + } + } +#endif + + /* Compute ranks of type B* substrings. */ + for(i = m - 1; 0 <= i; --i) { + if(0 <= SA[i]) { + j = i; + do { ISAb[SA[i]] = i; } while((0 <= --i) && (0 <= SA[i])); + SA[i + 1] = i - j; + if(i <= 0) { break; } + } + j = i; + do { ISAb[SA[i] = ~SA[i]] = j; } while(SA[--i] < 0); + ISAb[SA[i]] = j; + } + + /* Construct the inverse suffix array of type B* suffixes using trsort. */ + trsort(ISAb, SA, m, 1); + + /* Set the sorted order of type B* suffixes. */ + for(i = n - 1, j = m, c0 = T[n - 1]; 0 <= i;) { + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) >= c1); --i, c1 = c0) { } + if(0 <= i) { + t = i; + for(--i, c1 = c0; (0 <= i) && ((c0 = T[i]) <= c1); --i, c1 = c0) { } + SA[ISAb[--j]] = ((t == 0) || (1 < (t - i))) ? t : ~t; + } + } + + /* Calculate the index of start/end point of each bucket. */ + BUCKET_B(ALPHABET_SIZE - 1, ALPHABET_SIZE - 1) = n; /* end point */ + for(c0 = ALPHABET_SIZE - 2, k = m - 1; 0 <= c0; --c0) { + i = BUCKET_A(c0 + 1) - 1; + for(c1 = ALPHABET_SIZE - 1; c0 < c1; --c1) { + t = i - BUCKET_B(c0, c1); + BUCKET_B(c0, c1) = i; /* end point */ + + /* Move all type B* suffixes to the correct position. */ + for(i = t, j = BUCKET_BSTAR(c0, c1); + j <= k; + --i, --k) { SA[i] = SA[k]; } + } + BUCKET_BSTAR(c0, c0 + 1) = i - BUCKET_B(c0, c0) + 1; /* start point */ + BUCKET_B(c0, c0) = i; /* end point */ + } + } + + return m; +} + +/* Constructs the suffix array by using the sorted order of type B* suffixes. */ +static +void +construct_SA(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + *j = ~s; + c0 = T[--s]; + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else { + assert(((s == 0) && (T[s] == c1)) || (s < 0)); + *j = ~s; + } + } + } + } + + /* Construct the suffix array by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~(n - 1) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + if((s == 0) || (T[s - 1] < c0)) { s = ~s; } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else { + assert(s < 0); + *i = ~s; + } + } +} + +/* Constructs the burrows-wheeler transformed string directly + by using the sorted order of type B* suffixes. */ +static +int +construct_BWT(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m) { + int *i, *j, *k, *orig; + int s; + int c0, c1, c2; + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + c0 = T[--s]; + *j = ~((int)c0); + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else if(s != 0) { + *j = ~s; +#ifndef NDEBUG + } else { + assert(T[s] == c1); +#endif + } + } + } + } + + /* Construct the BWTed string by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + *k++ = (T[n - 2] < c2) ? ~((int)T[n - 2]) : (n - 1); + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n, orig = SA; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + c0 = T[--s]; + *i = c0; + if((0 < s) && (T[s - 1] < c0)) { s = ~((int)T[s - 1]); } + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + *k++ = s; + } else if(s != 0) { + *i = ~s; + } else { + orig = i; + } + } + + return orig - SA; +} + +/* Constructs the burrows-wheeler transformed string directly + by using the sorted order of type B* suffixes. */ +static +int +construct_BWT_indexes(const unsigned char *T, int *SA, + int *bucket_A, int *bucket_B, + int n, int m, + unsigned char * num_indexes, int * indexes) { + int *i, *j, *k, *orig; + int s; + int c0, c1, c2; + + int mod = n / 8; + { + mod |= mod >> 1; mod |= mod >> 2; + mod |= mod >> 4; mod |= mod >> 8; + mod |= mod >> 16; mod >>= 1; + + *num_indexes = (unsigned char)((n - 1) / (mod + 1)); + } + + if(0 < m) { + /* Construct the sorted order of type B suffixes by using + the sorted order of type B* suffixes. */ + for(c1 = ALPHABET_SIZE - 2; 0 <= c1; --c1) { + /* Scan the suffix array from right to left. */ + for(i = SA + BUCKET_BSTAR(c1, c1 + 1), + j = SA + BUCKET_A(c1 + 1) - 1, k = NULL, c2 = -1; + i <= j; + --j) { + if(0 < (s = *j)) { + assert(T[s] == c1); + assert(((s + 1) < n) && (T[s] <= T[s + 1])); + assert(T[s - 1] <= T[s]); + + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = j - SA; + + c0 = T[--s]; + *j = ~((int)c0); + if((0 < s) && (T[s - 1] > c0)) { s = ~s; } + if(c0 != c2) { + if(0 <= c2) { BUCKET_B(c2, c1) = k - SA; } + k = SA + BUCKET_B(c2 = c0, c1); + } + assert(k < j); assert(k != NULL); + *k-- = s; + } else if(s != 0) { + *j = ~s; +#ifndef NDEBUG + } else { + assert(T[s] == c1); +#endif + } + } + } + } + + /* Construct the BWTed string by using + the sorted order of type B suffixes. */ + k = SA + BUCKET_A(c2 = T[n - 1]); + if (T[n - 2] < c2) { + if (((n - 1) & mod) == 0) indexes[(n - 1) / (mod + 1) - 1] = k - SA; + *k++ = ~((int)T[n - 2]); + } + else { + *k++ = n - 1; + } + + /* Scan the suffix array from left to right. */ + for(i = SA, j = SA + n, orig = SA; i < j; ++i) { + if(0 < (s = *i)) { + assert(T[s - 1] >= T[s]); + + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = i - SA; + + c0 = T[--s]; + *i = c0; + if(c0 != c2) { + BUCKET_A(c2) = k - SA; + k = SA + BUCKET_A(c2 = c0); + } + assert(i < k); + if((0 < s) && (T[s - 1] < c0)) { + if ((s & mod) == 0) indexes[s / (mod + 1) - 1] = k - SA; + *k++ = ~((int)T[s - 1]); + } else + *k++ = s; + } else if(s != 0) { + *i = ~s; + } else { + orig = i; + } + } + + return orig - SA; +} + + +/*---------------------------------------------------------------------------*/ + +/*- Function -*/ + +int +divsufsort(const unsigned char *T, int *SA, int n, int openMP) { + int *bucket_A, *bucket_B; + int m; + int err = 0; + + /* Check arguments. */ + if((T == NULL) || (SA == NULL) || (n < 0)) { return -1; } + else if(n == 0) { return 0; } + else if(n == 1) { SA[0] = 0; return 0; } + else if(n == 2) { m = (T[0] < T[1]); SA[m ^ 1] = 0, SA[m] = 1; return 0; } + + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Suffixsort. */ + if((bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, SA, bucket_A, bucket_B, n, openMP); + construct_SA(T, SA, bucket_A, bucket_B, n, m); + } else { + err = -2; + } + + free(bucket_B); + free(bucket_A); + + return err; +} + +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n, unsigned char * num_indexes, int * indexes, int openMP) { + int *B; + int *bucket_A, *bucket_B; + int m, pidx, i; + + /* Check arguments. */ + if((T == NULL) || (U == NULL) || (n < 0)) { return -1; } + else if(n <= 1) { if(n == 1) { U[0] = T[0]; } return n; } + + if((B = A) == NULL) { B = (int *)malloc((size_t)(n + 1) * sizeof(int)); } + bucket_A = (int *)malloc(BUCKET_A_SIZE * sizeof(int)); + bucket_B = (int *)malloc(BUCKET_B_SIZE * sizeof(int)); + + /* Burrows-Wheeler Transform. */ + if((B != NULL) && (bucket_A != NULL) && (bucket_B != NULL)) { + m = sort_typeBstar(T, B, bucket_A, bucket_B, n, openMP); + + if (num_indexes == NULL || indexes == NULL) { + pidx = construct_BWT(T, B, bucket_A, bucket_B, n, m); + } else { + pidx = construct_BWT_indexes(T, B, bucket_A, bucket_B, n, m, num_indexes, indexes); + } + + /* Copy to output string. */ + U[0] = T[n - 1]; + for(i = 0; i < pidx; ++i) { U[i + 1] = (unsigned char)B[i]; } + for(i += 1; i < n; ++i) { U[i] = (unsigned char)B[i]; } + pidx += 1; + } else { + pidx = -2; + } + + free(bucket_B); + free(bucket_A); + if(A == NULL) { free(B); } + + return pidx; +} + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/dict/fastcover.cpp b/src/duckdb/third_party/zstd/dict/fastcover.cpp new file mode 100644 index 00000000..f54d9250 --- /dev/null +++ b/src/duckdb/third_party/zstd/dict/fastcover.cpp @@ -0,0 +1,775 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/*-************************************* +* Dependencies +***************************************/ +#include /* fprintf */ +#include /* malloc, free, qsort */ +#include /* memset */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "zstd/common/mem.h" /* read */ +#include "zstd/common/pool.h" +#include "zstd/common/threading.h" +#include "zstd/common/zstd_internal.h" /* includes zstd.h */ +#include "zstd/compress/zstd_compress_internal.h" /* ZSTD_hash*() */ +#include "zdict.h" +#include "zstd/dict/cover.h" + + +/*-************************************* +* Constants +***************************************/ +/** +* There are 32bit indexes used to ref samples, so limit samples size to 4GB +* on 64bit builds. +* For 32bit builds we choose 1 GB. +* Most 32bit platforms have 2GB user-mode addressable space and we allocate a large +* contiguous buffer, so 1GB is already a high limit. +*/ +#define FASTCOVER_MAX_SAMPLES_SIZE (sizeof(size_t) == 8 ? ((unsigned)-1) : ((unsigned)1 GB)) +#define FASTCOVER_MAX_F 31 +#define FASTCOVER_MAX_ACCEL 10 +#define FASTCOVER_DEFAULT_SPLITPOINT 0.75 +#define DEFAULT_F 20 +#define DEFAULT_ACCEL 1 + +namespace duckdb_zstd { + +/*-************************************* +* Console display +***************************************/ +#ifndef LOCALDISPLAYLEVEL +static int g_displayLevel = 0; +#endif +#undef DISPLAY +#define DISPLAY(...) \ + { \ + fprintf(stderr, __VA_ARGS__); \ + fflush(stderr); \ + } +#undef LOCALDISPLAYLEVEL +#define LOCALDISPLAYLEVEL(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + DISPLAY(__VA_ARGS__); \ + } /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) LOCALDISPLAYLEVEL(g_displayLevel, l, __VA_ARGS__) + +#ifndef LOCALDISPLAYUPDATE +static const clock_t g_refreshRate = CLOCKS_PER_SEC * 15 / 100; +static clock_t g_time = 0; +#endif +#undef LOCALDISPLAYUPDATE +#define LOCALDISPLAYUPDATE(displayLevel, l, ...) \ + if (displayLevel >= l) { \ + if ((clock() - g_time > g_refreshRate) || (displayLevel >= 4)) { \ + g_time = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + } +#undef DISPLAYUPDATE +#define DISPLAYUPDATE(l, ...) LOCALDISPLAYUPDATE(g_displayLevel, l, __VA_ARGS__) + + +/*-************************************* +* Hash Functions +***************************************/ +/** + * Hash the d-byte value pointed to by p and mod 2^f into the frequency vector + */ +static size_t FASTCOVER_hashPtrToIndex(const void* p, U32 f, unsigned d) { + if (d == 6) { + return ZSTD_hash6Ptr(p, f); + } + return ZSTD_hash8Ptr(p, f); +} + + +/*-************************************* +* Acceleration +***************************************/ +typedef struct { + unsigned finalize; /* Percentage of training samples used for ZDICT_finalizeDictionary */ + unsigned skip; /* Number of dmer skipped between each dmer counted in computeFrequency */ +} FASTCOVER_accel_t; + + +static const FASTCOVER_accel_t FASTCOVER_defaultAccelParameters[FASTCOVER_MAX_ACCEL+1] = { + { 100, 0 }, /* accel = 0, should not happen because accel = 0 defaults to accel = 1 */ + { 100, 0 }, /* accel = 1 */ + { 50, 1 }, /* accel = 2 */ + { 34, 2 }, /* accel = 3 */ + { 25, 3 }, /* accel = 4 */ + { 20, 4 }, /* accel = 5 */ + { 17, 5 }, /* accel = 6 */ + { 14, 6 }, /* accel = 7 */ + { 13, 7 }, /* accel = 8 */ + { 11, 8 }, /* accel = 9 */ + { 10, 9 }, /* accel = 10 */ +}; + + +/*-************************************* +* Context +***************************************/ +typedef struct { + const BYTE *samples; + size_t *offsets; + const size_t *samplesSizes; + size_t nbSamples; + size_t nbTrainSamples; + size_t nbTestSamples; + size_t nbDmers; + U32 *freqs; + unsigned d; + unsigned f; + FASTCOVER_accel_t accelParams; +} FASTCOVER_ctx_t; + + +/*-************************************* +* Helper functions +***************************************/ +/** + * Selects the best segment in an epoch. + * Segments of are scored according to the function: + * + * Let F(d) be the frequency of all dmers with hash value d. + * Let S_i be hash value of the dmer at position i of segment S which has length k. + * + * Score(S) = F(S_1) + F(S_2) + ... + F(S_{k-d+1}) + * + * Once the dmer with hash value d is in the dictionary we set F(d) = 0. + */ +static COVER_segment_t FASTCOVER_selectSegment(const FASTCOVER_ctx_t *ctx, + U32 *freqs, U32 begin, U32 end, + ZDICT_cover_params_t parameters, + U16* segmentFreqs) { + /* Constants */ + const U32 k = parameters.k; + const U32 d = parameters.d; + const U32 f = ctx->f; + const U32 dmersInK = k - d + 1; + + /* Try each segment (activeSegment) and save the best (bestSegment) */ + COVER_segment_t bestSegment = {0, 0, 0}; + COVER_segment_t activeSegment; + + /* Reset the activeDmers in the segment */ + /* The activeSegment starts at the beginning of the epoch. */ + activeSegment.begin = begin; + activeSegment.end = begin; + activeSegment.score = 0; + + /* Slide the activeSegment through the whole epoch. + * Save the best segment in bestSegment. + */ + while (activeSegment.end < end) { + /* Get hash value of current dmer */ + const size_t idx = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.end, f, d); + + /* Add frequency of this index to score if this is the first occurrence of index in active segment */ + if (segmentFreqs[idx] == 0) { + activeSegment.score += freqs[idx]; + } + /* Increment end of segment and segmentFreqs*/ + activeSegment.end += 1; + segmentFreqs[idx] += 1; + /* If the window is now too large, drop the first position */ + if (activeSegment.end - activeSegment.begin == dmersInK + 1) { + /* Get hash value of the dmer to be eliminated from active segment */ + const size_t delIndex = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.begin, f, d); + segmentFreqs[delIndex] -= 1; + /* Subtract frequency of this index from score if this is the last occurrence of this index in active segment */ + if (segmentFreqs[delIndex] == 0) { + activeSegment.score -= freqs[delIndex]; + } + /* Increment start of segment */ + activeSegment.begin += 1; + } + + /* If this segment is the best so far save it */ + if (activeSegment.score > bestSegment.score) { + bestSegment = activeSegment; + } + } + + /* Zero out rest of segmentFreqs array */ + while (activeSegment.begin < end) { + const size_t delIndex = FASTCOVER_hashPtrToIndex(ctx->samples + activeSegment.begin, f, d); + segmentFreqs[delIndex] -= 1; + activeSegment.begin += 1; + } + + { + /* Zero the frequency of hash value of each dmer covered by the chosen segment. */ + U32 pos; + for (pos = bestSegment.begin; pos != bestSegment.end; ++pos) { + const size_t i = FASTCOVER_hashPtrToIndex(ctx->samples + pos, f, d); + freqs[i] = 0; + } + } + + return bestSegment; +} + + +static int FASTCOVER_checkParameters(ZDICT_cover_params_t parameters, + size_t maxDictSize, unsigned f, + unsigned accel) { + /* k, d, and f are required parameters */ + if (parameters.d == 0 || parameters.k == 0) { + return 0; + } + /* d has to be 6 or 8 */ + if (parameters.d != 6 && parameters.d != 8) { + return 0; + } + /* k <= maxDictSize */ + if (parameters.k > maxDictSize) { + return 0; + } + /* d <= k */ + if (parameters.d > parameters.k) { + return 0; + } + /* 0 < f <= FASTCOVER_MAX_F*/ + if (f > FASTCOVER_MAX_F || f == 0) { + return 0; + } + /* 0 < splitPoint <= 1 */ + if (parameters.splitPoint <= 0 || parameters.splitPoint > 1) { + return 0; + } + /* 0 < accel <= 10 */ + if (accel > 10 || accel == 0) { + return 0; + } + return 1; +} + + +/** + * Clean up a context initialized with `FASTCOVER_ctx_init()`. + */ +static void +FASTCOVER_ctx_destroy(FASTCOVER_ctx_t* ctx) +{ + if (!ctx) return; + + free(ctx->freqs); + ctx->freqs = NULL; + + free(ctx->offsets); + ctx->offsets = NULL; +} + + +/** + * Calculate for frequency of hash value of each dmer in ctx->samples + */ +static void +FASTCOVER_computeFrequency(U32* freqs, const FASTCOVER_ctx_t* ctx) +{ + const unsigned f = ctx->f; + const unsigned d = ctx->d; + const unsigned skip = ctx->accelParams.skip; + const unsigned readLength = MAX(d, 8); + size_t i; + assert(ctx->nbTrainSamples >= 5); + assert(ctx->nbTrainSamples <= ctx->nbSamples); + for (i = 0; i < ctx->nbTrainSamples; i++) { + size_t start = ctx->offsets[i]; /* start of current dmer */ + size_t const currSampleEnd = ctx->offsets[i+1]; + while (start + readLength <= currSampleEnd) { + const size_t dmerIndex = FASTCOVER_hashPtrToIndex(ctx->samples + start, f, d); + freqs[dmerIndex]++; + start = start + skip + 1; + } + } +} + + +/** + * Prepare a context for dictionary building. + * The context is only dependent on the parameter `d` and can be used multiple + * times. + * Returns 0 on success or error code on error. + * The context must be destroyed with `FASTCOVER_ctx_destroy()`. + */ +static size_t +FASTCOVER_ctx_init(FASTCOVER_ctx_t* ctx, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + unsigned d, double splitPoint, unsigned f, + FASTCOVER_accel_t accelParams) +{ + const BYTE* const samples = (const BYTE*)samplesBuffer; + const size_t totalSamplesSize = COVER_sum(samplesSizes, nbSamples); + /* Split samples into testing and training sets */ + const unsigned nbTrainSamples = splitPoint < 1.0 ? (unsigned)((double)nbSamples * splitPoint) : nbSamples; + const unsigned nbTestSamples = splitPoint < 1.0 ? nbSamples - nbTrainSamples : nbSamples; + const size_t trainingSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes, nbTrainSamples) : totalSamplesSize; + const size_t testSamplesSize = splitPoint < 1.0 ? COVER_sum(samplesSizes + nbTrainSamples, nbTestSamples) : totalSamplesSize; + + (void) testSamplesSize; + + /* Checks */ + if (totalSamplesSize < MAX(d, sizeof(U64)) || + totalSamplesSize >= (size_t)FASTCOVER_MAX_SAMPLES_SIZE) { + DISPLAYLEVEL(1, "Total samples size is too large (%u MB), maximum size is %u MB\n", + (unsigned)(totalSamplesSize >> 20), (FASTCOVER_MAX_SAMPLES_SIZE >> 20)); + return ERROR(srcSize_wrong); + } + + /* Check if there are at least 5 training samples */ + if (nbTrainSamples < 5) { + DISPLAYLEVEL(1, "Total number of training samples is %u and is invalid\n", nbTrainSamples); + return ERROR(srcSize_wrong); + } + + /* Check if there's testing sample */ + if (nbTestSamples < 1) { + DISPLAYLEVEL(1, "Total number of testing samples is %u and is invalid.\n", nbTestSamples); + return ERROR(srcSize_wrong); + } + + /* Zero the context */ + memset(ctx, 0, sizeof(*ctx)); + DISPLAYLEVEL(2, "Training on %u samples of total size %u\n", nbTrainSamples, + (unsigned)trainingSamplesSize); + DISPLAYLEVEL(2, "Testing on %u samples of total size %u\n", nbTestSamples, + (unsigned)testSamplesSize); + + ctx->samples = samples; + ctx->samplesSizes = samplesSizes; + ctx->nbSamples = nbSamples; + ctx->nbTrainSamples = nbTrainSamples; + ctx->nbTestSamples = nbTestSamples; + ctx->nbDmers = trainingSamplesSize - MAX(d, sizeof(U64)) + 1; + ctx->d = d; + ctx->f = f; + ctx->accelParams = accelParams; + + /* The offsets of each file */ + ctx->offsets = (size_t*)calloc((nbSamples + 1), sizeof(size_t)); + if (ctx->offsets == NULL) { + DISPLAYLEVEL(1, "Failed to allocate scratch buffers \n"); + FASTCOVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + + /* Fill offsets from the samplesSizes */ + { U32 i; + ctx->offsets[0] = 0; + assert(nbSamples >= 5); + for (i = 1; i <= nbSamples; ++i) { + ctx->offsets[i] = ctx->offsets[i - 1] + samplesSizes[i - 1]; + } + } + + /* Initialize frequency array of size 2^f */ + ctx->freqs = (U32*)calloc(((U64)1 << f), sizeof(U32)); + if (ctx->freqs == NULL) { + DISPLAYLEVEL(1, "Failed to allocate frequency table \n"); + FASTCOVER_ctx_destroy(ctx); + return ERROR(memory_allocation); + } + + DISPLAYLEVEL(2, "Computing frequencies\n"); + FASTCOVER_computeFrequency(ctx->freqs, ctx); + + return 0; +} + + +/** + * Given the prepared context build the dictionary. + */ +static size_t +FASTCOVER_buildDictionary(const FASTCOVER_ctx_t* ctx, + U32* freqs, + void* dictBuffer, size_t dictBufferCapacity, + ZDICT_cover_params_t parameters, + U16* segmentFreqs) +{ + BYTE *const dict = (BYTE *)dictBuffer; + size_t tail = dictBufferCapacity; + /* Divide the data into epochs. We will select one segment from each epoch. */ + const COVER_epoch_info_t epochs = COVER_computeEpochs( + (U32)dictBufferCapacity, (U32)ctx->nbDmers, parameters.k, 1); + const size_t maxZeroScoreRun = 10; + size_t zeroScoreRun = 0; + size_t epoch; + DISPLAYLEVEL(2, "Breaking content into %u epochs of size %u\n", + (U32)epochs.num, (U32)epochs.size); + /* Loop through the epochs until there are no more segments or the dictionary + * is full. + */ + for (epoch = 0; tail > 0; epoch = (epoch + 1) % epochs.num) { + const U32 epochBegin = (U32)(epoch * epochs.size); + const U32 epochEnd = epochBegin + epochs.size; + size_t segmentSize; + /* Select a segment */ + COVER_segment_t segment = FASTCOVER_selectSegment( + ctx, freqs, epochBegin, epochEnd, parameters, segmentFreqs); + + /* If the segment covers no dmers, then we are out of content. + * There may be new content in other epochs, for continue for some time. + */ + if (segment.score == 0) { + if (++zeroScoreRun >= maxZeroScoreRun) { + break; + } + continue; + } + zeroScoreRun = 0; + + /* Trim the segment if necessary and if it is too small then we are done */ + segmentSize = MIN(segment.end - segment.begin + parameters.d - 1, tail); + if (segmentSize < parameters.d) { + break; + } + + /* We fill the dictionary from the back to allow the best segments to be + * referenced with the smallest offsets. + */ + tail -= segmentSize; + memcpy(dict + tail, ctx->samples + segment.begin, segmentSize); + DISPLAYUPDATE( + 2, "\r%u%% ", + (unsigned)(((dictBufferCapacity - tail) * 100) / dictBufferCapacity)); + } + DISPLAYLEVEL(2, "\r%79s\r", ""); + return tail; +} + +/** + * Parameters for FASTCOVER_tryParameters(). + */ +typedef struct FASTCOVER_tryParameters_data_s { + const FASTCOVER_ctx_t* ctx; + COVER_best_t* best; + size_t dictBufferCapacity; + ZDICT_cover_params_t parameters; +} FASTCOVER_tryParameters_data_t; + + +/** + * Tries a set of parameters and updates the COVER_best_t with the results. + * This function is thread safe if zstd is compiled with multithreaded support. + * It takes its parameters as an *OWNING* opaque pointer to support threading. + */ +static void FASTCOVER_tryParameters(void* opaque) +{ + /* Save parameters as local variables */ + FASTCOVER_tryParameters_data_t *const data = (FASTCOVER_tryParameters_data_t*)opaque; + const FASTCOVER_ctx_t *const ctx = data->ctx; + const ZDICT_cover_params_t parameters = data->parameters; + size_t dictBufferCapacity = data->dictBufferCapacity; + size_t totalCompressedSize = ERROR(GENERIC); + /* Initialize array to keep track of frequency of dmer within activeSegment */ + U16* segmentFreqs = (U16*)calloc(((U64)1 << ctx->f), sizeof(U16)); + /* Allocate space for hash table, dict, and freqs */ + BYTE *const dict = (BYTE*)malloc(dictBufferCapacity); + COVER_dictSelection_t selection = COVER_dictSelectionError(ERROR(GENERIC)); + U32* freqs = (U32*) malloc(((U64)1 << ctx->f) * sizeof(U32)); + if (!segmentFreqs || !dict || !freqs) { + DISPLAYLEVEL(1, "Failed to allocate buffers: out of memory\n"); + goto _cleanup; + } + /* Copy the frequencies because we need to modify them */ + memcpy(freqs, ctx->freqs, ((U64)1 << ctx->f) * sizeof(U32)); + /* Build the dictionary */ + { const size_t tail = FASTCOVER_buildDictionary(ctx, freqs, dict, dictBufferCapacity, + parameters, segmentFreqs); + + const unsigned nbFinalizeSamples = (unsigned)(ctx->nbTrainSamples * ctx->accelParams.finalize / 100); + selection = COVER_selectDict(dict + tail, dictBufferCapacity, dictBufferCapacity - tail, + ctx->samples, ctx->samplesSizes, nbFinalizeSamples, ctx->nbTrainSamples, ctx->nbSamples, parameters, ctx->offsets, + totalCompressedSize); + + if (COVER_dictSelectionIsError(selection)) { + DISPLAYLEVEL(1, "Failed to select dictionary\n"); + goto _cleanup; + } + } +_cleanup: + free(dict); + COVER_best_finish(data->best, parameters, selection); + free(data); + free(segmentFreqs); + COVER_dictSelectionFree(selection); + free(freqs); +} + + +static void +FASTCOVER_convertToCoverParams(ZDICT_fastCover_params_t fastCoverParams, + ZDICT_cover_params_t* coverParams) +{ + coverParams->k = fastCoverParams.k; + coverParams->d = fastCoverParams.d; + coverParams->steps = fastCoverParams.steps; + coverParams->nbThreads = fastCoverParams.nbThreads; + coverParams->splitPoint = fastCoverParams.splitPoint; + coverParams->zParams = fastCoverParams.zParams; + coverParams->shrinkDict = fastCoverParams.shrinkDict; +} + + +static void +FASTCOVER_convertToFastCoverParams(ZDICT_cover_params_t coverParams, + ZDICT_fastCover_params_t* fastCoverParams, + unsigned f, unsigned accel) +{ + fastCoverParams->k = coverParams.k; + fastCoverParams->d = coverParams.d; + fastCoverParams->steps = coverParams.steps; + fastCoverParams->nbThreads = coverParams.nbThreads; + fastCoverParams->splitPoint = coverParams.splitPoint; + fastCoverParams->f = f; + fastCoverParams->accel = accel; + fastCoverParams->zParams = coverParams.zParams; + fastCoverParams->shrinkDict = coverParams.shrinkDict; +} + + +ZDICTLIB_STATIC_API size_t +ZDICT_trainFromBuffer_fastCover(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t parameters) +{ + BYTE* const dict = (BYTE*)dictBuffer; + FASTCOVER_ctx_t ctx; + ZDICT_cover_params_t coverParams; + FASTCOVER_accel_t accelParams; + /* Initialize global data */ + g_displayLevel = (int)parameters.zParams.notificationLevel; + /* Assign splitPoint and f if not provided */ + parameters.splitPoint = 1.0; + parameters.f = parameters.f == 0 ? DEFAULT_F : parameters.f; + parameters.accel = parameters.accel == 0 ? DEFAULT_ACCEL : parameters.accel; + /* Convert to cover parameter */ + memset(&coverParams, 0 , sizeof(coverParams)); + FASTCOVER_convertToCoverParams(parameters, &coverParams); + /* Checks */ + if (!FASTCOVER_checkParameters(coverParams, dictBufferCapacity, parameters.f, + parameters.accel)) { + DISPLAYLEVEL(1, "FASTCOVER parameters incorrect\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + DISPLAYLEVEL(1, "FASTCOVER must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + DISPLAYLEVEL(1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + /* Assign corresponding FASTCOVER_accel_t to accelParams*/ + accelParams = FASTCOVER_defaultAccelParameters[parameters.accel]; + /* Initialize context */ + { + size_t const initVal = FASTCOVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, + coverParams.d, parameters.splitPoint, parameters.f, + accelParams); + if (ZSTD_isError(initVal)) { + DISPLAYLEVEL(1, "Failed to initialize context\n"); + return initVal; + } + } + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.nbDmers, g_displayLevel); + /* Build the dictionary */ + DISPLAYLEVEL(2, "Building dictionary\n"); + { + /* Initialize array to keep track of frequency of dmer within activeSegment */ + U16* segmentFreqs = (U16 *)calloc(((U64)1 << parameters.f), sizeof(U16)); + const size_t tail = FASTCOVER_buildDictionary(&ctx, ctx.freqs, dictBuffer, + dictBufferCapacity, coverParams, segmentFreqs); + const unsigned nbFinalizeSamples = (unsigned)(ctx.nbTrainSamples * ctx.accelParams.finalize / 100); + const size_t dictionarySize = ZDICT_finalizeDictionary( + dict, dictBufferCapacity, dict + tail, dictBufferCapacity - tail, + samplesBuffer, samplesSizes, nbFinalizeSamples, coverParams.zParams); + if (!ZSTD_isError(dictionarySize)) { + DISPLAYLEVEL(2, "Constructed dictionary of size %u\n", + (unsigned)dictionarySize); + } + FASTCOVER_ctx_destroy(&ctx); + free(segmentFreqs); + return dictionarySize; + } +} + + +ZDICTLIB_STATIC_API size_t +ZDICT_optimizeTrainFromBuffer_fastCover( + void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t* parameters) +{ + ZDICT_cover_params_t coverParams; + FASTCOVER_accel_t accelParams; + /* constants */ + const unsigned nbThreads = parameters->nbThreads; + const double splitPoint = + parameters->splitPoint <= 0.0 ? FASTCOVER_DEFAULT_SPLITPOINT : parameters->splitPoint; + const unsigned kMinD = parameters->d == 0 ? 6 : parameters->d; + const unsigned kMaxD = parameters->d == 0 ? 8 : parameters->d; + const unsigned kMinK = parameters->k == 0 ? 50 : parameters->k; + const unsigned kMaxK = parameters->k == 0 ? 2000 : parameters->k; + const unsigned kSteps = parameters->steps == 0 ? 40 : parameters->steps; + const unsigned kStepSize = MAX((kMaxK - kMinK) / kSteps, 1); + const unsigned kIterations = + (1 + (kMaxD - kMinD) / 2) * (1 + (kMaxK - kMinK) / kStepSize); + const unsigned f = parameters->f == 0 ? DEFAULT_F : parameters->f; + const unsigned accel = parameters->accel == 0 ? DEFAULT_ACCEL : parameters->accel; + const unsigned shrinkDict = 0; + /* Local variables */ + const int displayLevel = (int)parameters->zParams.notificationLevel; + unsigned iteration = 1; + unsigned d; + unsigned k; + COVER_best_t best; + POOL_ctx *pool = NULL; + int warned = 0; + + (void) kIterations; + (void) iteration; + + /* Checks */ + if (splitPoint <= 0 || splitPoint > 1) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect splitPoint\n"); + return ERROR(parameter_outOfBound); + } + if (accel == 0 || accel > FASTCOVER_MAX_ACCEL) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect accel\n"); + return ERROR(parameter_outOfBound); + } + if (kMinK < kMaxD || kMaxK < kMinK) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Incorrect k\n"); + return ERROR(parameter_outOfBound); + } + if (nbSamples == 0) { + LOCALDISPLAYLEVEL(displayLevel, 1, "FASTCOVER must have at least one input file\n"); + return ERROR(srcSize_wrong); + } + if (dictBufferCapacity < ZDICT_DICTSIZE_MIN) { + LOCALDISPLAYLEVEL(displayLevel, 1, "dictBufferCapacity must be at least %u\n", + ZDICT_DICTSIZE_MIN); + return ERROR(dstSize_tooSmall); + } + if (nbThreads > 1) { + pool = POOL_create(nbThreads, 1); + if (!pool) { + return ERROR(memory_allocation); + } + } + /* Initialization */ + COVER_best_init(&best); + memset(&coverParams, 0 , sizeof(coverParams)); + FASTCOVER_convertToCoverParams(*parameters, &coverParams); + accelParams = FASTCOVER_defaultAccelParameters[accel]; + /* Turn down global display level to clean up display at level 2 and below */ + g_displayLevel = displayLevel == 0 ? 0 : displayLevel - 1; + /* Loop through d first because each new value needs a new context */ + LOCALDISPLAYLEVEL(displayLevel, 2, "Trying %u different sets of parameters\n", + kIterations); + for (d = kMinD; d <= kMaxD; d += 2) { + /* Initialize the context for this value of d */ + FASTCOVER_ctx_t ctx; + LOCALDISPLAYLEVEL(displayLevel, 3, "d=%u\n", d); + { + size_t const initVal = FASTCOVER_ctx_init(&ctx, samplesBuffer, samplesSizes, nbSamples, d, splitPoint, f, accelParams); + if (ZSTD_isError(initVal)) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to initialize context\n"); + COVER_best_destroy(&best); + POOL_free(pool); + return initVal; + } + } + if (!warned) { + COVER_warnOnSmallCorpus(dictBufferCapacity, ctx.nbDmers, displayLevel); + warned = 1; + } + /* Loop through k reusing the same context */ + for (k = kMinK; k <= kMaxK; k += kStepSize) { + /* Prepare the arguments */ + FASTCOVER_tryParameters_data_t *data = (FASTCOVER_tryParameters_data_t *)malloc( + sizeof(FASTCOVER_tryParameters_data_t)); + LOCALDISPLAYLEVEL(displayLevel, 3, "k=%u\n", k); + if (!data) { + LOCALDISPLAYLEVEL(displayLevel, 1, "Failed to allocate parameters\n"); + COVER_best_destroy(&best); + FASTCOVER_ctx_destroy(&ctx); + POOL_free(pool); + return ERROR(memory_allocation); + } + data->ctx = &ctx; + data->best = &best; + data->dictBufferCapacity = dictBufferCapacity; + data->parameters = coverParams; + data->parameters.k = k; + data->parameters.d = d; + data->parameters.splitPoint = splitPoint; + data->parameters.steps = kSteps; + data->parameters.shrinkDict = shrinkDict; + data->parameters.zParams.notificationLevel = (unsigned)g_displayLevel; + /* Check the parameters */ + if (!FASTCOVER_checkParameters(data->parameters, dictBufferCapacity, + data->ctx->f, accel)) { + DISPLAYLEVEL(1, "FASTCOVER parameters incorrect\n"); + free(data); + continue; + } + /* Call the function and pass ownership of data to it */ + COVER_best_start(&best); + if (pool) { + POOL_add(pool, &FASTCOVER_tryParameters, data); + } else { + FASTCOVER_tryParameters(data); + } + /* Print status */ + LOCALDISPLAYUPDATE(displayLevel, 2, "\r%u%% ", + (unsigned)((iteration * 100) / kIterations)); + ++iteration; + } + COVER_best_wait(&best); + FASTCOVER_ctx_destroy(&ctx); + } + LOCALDISPLAYLEVEL(displayLevel, 2, "\r%79s\r", ""); + /* Fill the output buffer and parameters with output of the best parameters */ + { + const size_t dictSize = best.dictSize; + if (ZSTD_isError(best.compressedSize)) { + const size_t compressedSize = best.compressedSize; + COVER_best_destroy(&best); + POOL_free(pool); + return compressedSize; + } + FASTCOVER_convertToFastCoverParams(best.parameters, parameters, f, accel); + memcpy(dictBuffer, best.dict, dictSize); + COVER_best_destroy(&best); + POOL_free(pool); + return dictSize; + } + +} + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/dict/zdict.cpp b/src/duckdb/third_party/zstd/dict/zdict.cpp new file mode 100644 index 00000000..2e9e319c --- /dev/null +++ b/src/duckdb/third_party/zstd/dict/zdict.cpp @@ -0,0 +1,1139 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +/*-************************************** +* Tuning parameters +****************************************/ +#define MINRATIO 4 /* minimum nb of apparition to be selected in dictionary */ +#define ZDICT_MAX_SAMPLES_SIZE (2000U << 20) +#define ZDICT_MIN_SAMPLES_SIZE (ZDICT_CONTENTSIZE_MIN * MINRATIO) + + +/*-************************************** +* Compiler Options +****************************************/ +/* Unix Large Files support (>4GB) */ +#define _FILE_OFFSET_BITS 64 +#if (defined(__sun__) && (!defined(__LP64__))) /* Sun Solaris 32-bits requires specific definitions */ +# ifndef _LARGEFILE_SOURCE +# define _LARGEFILE_SOURCE +# endif +#elif ! defined(__LP64__) /* No point defining Large file for 64 bit */ +# ifndef _LARGEFILE64_SOURCE +# define _LARGEFILE64_SOURCE +# endif +#endif + + +/*-************************************* +* Dependencies +***************************************/ +#include /* malloc, free */ +#include /* memset */ +#include /* fprintf, fopen, ftello64 */ +#include /* clock */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "zstd/common/mem.h" /* read */ +#include "zstd/common/fse.h" /* FSE_normalizeCount, FSE_writeNCount */ +#include "zstd/common/huf.h" /* HUF_buildCTable, HUF_writeCTable */ +#include "zstd/common/zstd_internal.h" /* includes zstd.h */ +#include "zstd/common/xxhash.hpp" /* XXH64 */ +#include "zstd/compress/zstd_compress_internal.h" /* ZSTD_loadCEntropy() */ +#include "zdict.h" +#include "zstd/dict/divsufsort.h" +#include "zstd/common/bits.h" /* ZSTD_NbCommonBytes */ + +namespace duckdb_zstd { + +/*-************************************* +* Constants +***************************************/ +#define KB *(1 <<10) +#define MB *(1 <<20) +#define GB *(1U<<30) + +#define DICTLISTSIZE_DEFAULT 10000 + +#define NOISELENGTH 32 + +static const U32 g_selectivity_default = 9; + + +/*-************************************* +* Console display +***************************************/ +#undef DISPLAY +#define DISPLAY(...) do { fprintf(stderr, __VA_ARGS__); fflush( stderr ); } while (0) +#undef DISPLAYLEVEL +#define DISPLAYLEVEL(l, ...) do { if (notificationLevel>=l) { DISPLAY(__VA_ARGS__); } } while (0) /* 0 : no display; 1: errors; 2: default; 3: details; 4: debug */ + +static clock_t ZDICT_clockSpan(clock_t nPrevious) { return clock() - nPrevious; } + +static void ZDICT_printHex(const void* ptr, size_t length) +{ + const BYTE* const b = (const BYTE*)ptr; + size_t u; + for (u=0; u126) c = '.'; /* non-printable char */ + DISPLAY("%c", c); + } +} + + +/*-******************************************************** +* Helper functions +**********************************************************/ +unsigned ZDICT_isError(size_t errorCode) { return ERR_isError(errorCode); } + +const char* ZDICT_getErrorName(size_t errorCode) { return ERR_getErrorName(errorCode); } + +unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize) +{ + if (dictSize < 8) return 0; + if (MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return 0; + return MEM_readLE32((const char*)dictBuffer + 4); +} + +size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize) +{ + size_t headerSize; + if (dictSize <= 8 || MEM_readLE32(dictBuffer) != ZSTD_MAGIC_DICTIONARY) return ERROR(dictionary_corrupted); + + { ZSTD_compressedBlockState_t* bs = (ZSTD_compressedBlockState_t*)malloc(sizeof(ZSTD_compressedBlockState_t)); + U32* wksp = (U32*)malloc(HUF_WORKSPACE_SIZE); + if (!bs || !wksp) { + headerSize = ERROR(memory_allocation); + } else { + ZSTD_reset_compressedBlockState(bs); + headerSize = ZSTD_loadCEntropy(bs, wksp, dictBuffer, dictSize); + } + + free(bs); + free(wksp); + } + + return headerSize; +} + +/*-******************************************************** +* Dictionary training functions +**********************************************************/ +/*! ZDICT_count() : + Count the nb of common bytes between 2 pointers. + Note : this function presumes end of buffer followed by noisy guard band. +*/ +static size_t ZDICT_count(const void* pIn, const void* pMatch) +{ + const char* const pStart = (const char*)pIn; + for (;;) { + size_t const diff = MEM_readST(pMatch) ^ MEM_readST(pIn); + if (!diff) { + pIn = (const char*)pIn+sizeof(size_t); + pMatch = (const char*)pMatch+sizeof(size_t); + continue; + } + pIn = (const char*)pIn+ZSTD_NbCommonBytes(diff); + return (size_t)((const char*)pIn - pStart); + } +} + + +typedef struct { + U32 pos; + U32 length; + U32 savings; +} dictItem; + +static void ZDICT_initDictItem(dictItem* d) +{ + d->pos = 1; + d->length = 0; + d->savings = (U32)(-1); +} + + +#define LLIMIT 64 /* heuristic determined experimentally */ +#define MINMATCHLENGTH 7 /* heuristic determined experimentally */ +static dictItem ZDICT_analyzePos( + BYTE* doneMarks, + const int* suffix, U32 start, + const void* buffer, U32 minRatio, U32 notificationLevel) +{ + U32 lengthList[LLIMIT] = {0}; + U32 cumulLength[LLIMIT] = {0}; + U32 savings[LLIMIT] = {0}; + const BYTE* b = (const BYTE*)buffer; + size_t maxLength = LLIMIT; + size_t pos = (size_t)suffix[start]; + U32 end = start; + dictItem solution; + + /* init */ + memset(&solution, 0, sizeof(solution)); + doneMarks[pos] = 1; + + /* trivial repetition cases */ + if ( (MEM_read16(b+pos+0) == MEM_read16(b+pos+2)) + ||(MEM_read16(b+pos+1) == MEM_read16(b+pos+3)) + ||(MEM_read16(b+pos+2) == MEM_read16(b+pos+4)) ) { + /* skip and mark segment */ + U16 const pattern16 = MEM_read16(b+pos+4); + U32 u, patternEnd = 6; + while (MEM_read16(b+pos+patternEnd) == pattern16) patternEnd+=2 ; + if (b[pos+patternEnd] == b[pos+patternEnd-1]) patternEnd++; + for (u=1; u= MINMATCHLENGTH); + } + + /* look backward */ + { size_t length; + do { + length = ZDICT_count(b + pos, b + *(suffix+start-1)); + if (length >=MINMATCHLENGTH) start--; + } while(length >= MINMATCHLENGTH); + } + + /* exit if not found a minimum nb of repetitions */ + if (end-start < minRatio) { + U32 idx; + for(idx=start; idx= %i at pos %7u ", (unsigned)(end-start), MINMATCHLENGTH, (unsigned)pos); + DISPLAYLEVEL(4, "\n"); + + for (mml = MINMATCHLENGTH ; ; mml++) { + BYTE currentChar = 0; + U32 currentCount = 0; + U32 currentID = refinedStart; + U32 id; + U32 selectedCount = 0; + U32 selectedID = currentID; + for (id =refinedStart; id < refinedEnd; id++) { + if (b[suffix[id] + mml] != currentChar) { + if (currentCount > selectedCount) { + selectedCount = currentCount; + selectedID = currentID; + } + currentID = id; + currentChar = b[ suffix[id] + mml]; + currentCount = 0; + } + currentCount ++; + } + if (currentCount > selectedCount) { /* for last */ + selectedCount = currentCount; + selectedID = currentID; + } + + if (selectedCount < minRatio) + break; + refinedStart = selectedID; + refinedEnd = refinedStart + selectedCount; + } + + /* evaluate gain based on new dict */ + start = refinedStart; + pos = suffix[refinedStart]; + end = start; + memset(lengthList, 0, sizeof(lengthList)); + + /* look forward */ + { size_t length; + do { + end++; + length = ZDICT_count(b + pos, b + suffix[end]); + if (length >= LLIMIT) length = LLIMIT-1; + lengthList[length]++; + } while (length >=MINMATCHLENGTH); + } + + /* look backward */ + { size_t length = MINMATCHLENGTH; + while ((length >= MINMATCHLENGTH) & (start > 0)) { + length = ZDICT_count(b + pos, b + suffix[start - 1]); + if (length >= LLIMIT) length = LLIMIT - 1; + lengthList[length]++; + if (length >= MINMATCHLENGTH) start--; + } + } + + /* largest useful length */ + memset(cumulLength, 0, sizeof(cumulLength)); + cumulLength[maxLength-1] = lengthList[maxLength-1]; + for (i=(int)(maxLength-2); i>=0; i--) + cumulLength[i] = cumulLength[i+1] + lengthList[i]; + + for (i=LLIMIT-1; i>=MINMATCHLENGTH; i--) if (cumulLength[i]>=minRatio) break; + maxLength = i; + + /* reduce maxLength in case of final into repetitive data */ + { U32 l = (U32)maxLength; + BYTE const c = b[pos + maxLength-1]; + while (b[pos+l-2]==c) l--; + maxLength = l; + } + if (maxLength < MINMATCHLENGTH) return solution; /* skip : no long-enough solution */ + + /* calculate savings */ + savings[5] = 0; + for (i=MINMATCHLENGTH; i<=(int)maxLength; i++) + savings[i] = savings[i-1] + (lengthList[i] * (i-3)); + + DISPLAYLEVEL(4, "Selected dict at position %u, of length %u : saves %u (ratio: %.2f) \n", + (unsigned)pos, (unsigned)maxLength, (unsigned)savings[maxLength], (double)savings[maxLength] / (double)maxLength); + + solution.pos = (U32)pos; + solution.length = (U32)maxLength; + solution.savings = savings[maxLength]; + + /* mark positions done */ + { U32 id; + for (id=start; id solution.length) length = solution.length; + } + pEnd = (U32)(testedPos + length); + for (p=testedPos; ppos; + const U32 eltEnd = elt.pos + elt.length; + const char* const buf = (const char*) buffer; + + /* tail overlap */ + U32 u; for (u=1; u elt.pos) && (table[u].pos <= eltEnd)) { /* overlap, existing > new */ + /* append */ + U32 const addedLength = table[u].pos - elt.pos; + table[u].length += addedLength; + table[u].pos = elt.pos; + table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */ + table[u].savings += elt.length / 8; /* rough approx bonus */ + elt = table[u]; + /* sort : improve rank */ + while ((u>1) && (table[u-1].savings < elt.savings)) + table[u] = table[u-1], u--; + table[u] = elt; + return u; + } } + + /* front overlap */ + for (u=1; u= elt.pos) && (table[u].pos < elt.pos)) { /* overlap, existing < new */ + /* append */ + int const addedLength = (int)eltEnd - (int)(table[u].pos + table[u].length); + table[u].savings += elt.length / 8; /* rough approx bonus */ + if (addedLength > 0) { /* otherwise, elt fully included into existing */ + table[u].length += addedLength; + table[u].savings += elt.savings * addedLength / elt.length; /* rough approx */ + } + /* sort : improve rank */ + elt = table[u]; + while ((u>1) && (table[u-1].savings < elt.savings)) + table[u] = table[u-1], u--; + table[u] = elt; + return u; + } + + if (MEM_read64(buf + table[u].pos) == MEM_read64(buf + elt.pos + 1)) { + if (isIncluded(buf + table[u].pos, buf + elt.pos + 1, table[u].length)) { + size_t const addedLength = MAX( (int)elt.length - (int)table[u].length , 1 ); + table[u].pos = elt.pos; + table[u].savings += (U32)(elt.savings * addedLength / elt.length); + table[u].length = MIN(elt.length, table[u].length + 1); + return u; + } + } + } + + return 0; +} + + +static void ZDICT_removeDictItem(dictItem* table, U32 id) +{ + /* convention : table[0].pos stores nb of elts */ + U32 const max = table[0].pos; + U32 u; + if (!id) return; /* protection, should never happen */ + for (u=id; upos--; +} + + +static void ZDICT_insertDictItem(dictItem* table, U32 maxSize, dictItem elt, const void* buffer) +{ + /* merge if possible */ + U32 mergeId = ZDICT_tryMerge(table, elt, 0, buffer); + if (mergeId) { + U32 newMerge = 1; + while (newMerge) { + newMerge = ZDICT_tryMerge(table, table[mergeId], mergeId, buffer); + if (newMerge) ZDICT_removeDictItem(table, mergeId); + mergeId = newMerge; + } + return; + } + + /* insert */ + { U32 current; + U32 nextElt = table->pos; + if (nextElt >= maxSize) nextElt = maxSize-1; + current = nextElt-1; + while (table[current].savings < elt.savings) { + table[current+1] = table[current]; + current--; + } + table[current+1] = elt; + table->pos = nextElt+1; + } +} + + +static U32 ZDICT_dictSize(const dictItem* dictList) +{ + U32 u, dictSize = 0; + for (u=1; u=l) { \ + if (ZDICT_clockSpan(displayClock) > refreshRate) { \ + displayClock = clock(); \ + DISPLAY(__VA_ARGS__); \ + } \ + if (notificationLevel>=4) fflush(stderr); \ + } \ + } while (0) + + /* init */ + DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */ + if (!suffix0 || !reverseSuffix || !doneMarks || !filePos) { + result = ERROR(memory_allocation); + goto _cleanup; + } + if (minRatio < MINRATIO) minRatio = MINRATIO; + memset(doneMarks, 0, bufferSize+16); + + /* limit sample set size (divsufsort limitation)*/ + if (bufferSize > ZDICT_MAX_SAMPLES_SIZE) DISPLAYLEVEL(3, "sample set too large : reduced to %u MB ...\n", (unsigned)(ZDICT_MAX_SAMPLES_SIZE>>20)); + while (bufferSize > ZDICT_MAX_SAMPLES_SIZE) bufferSize -= fileSizes[--nbFiles]; + + /* sort */ + DISPLAYLEVEL(2, "sorting %u files of total size %u MB ...\n", nbFiles, (unsigned)(bufferSize>>20)); + { int const divSuftSortResult = divsufsort((const unsigned char*)buffer, suffix, (int)bufferSize, 0); + if (divSuftSortResult != 0) { result = ERROR(GENERIC); goto _cleanup; } + } + suffix[bufferSize] = (int)bufferSize; /* leads into noise */ + suffix0[0] = (int)bufferSize; /* leads into noise */ + /* build reverse suffix sort */ + { size_t pos; + for (pos=0; pos < bufferSize; pos++) + reverseSuffix[suffix[pos]] = (U32)pos; + /* note filePos tracks borders between samples. + It's not used at this stage, but planned to become useful in a later update */ + filePos[0] = 0; + for (pos=1; pos> 21); + } +} + + +typedef struct +{ + ZSTD_CDict* dict; /* dictionary */ + ZSTD_CCtx* zc; /* working context */ + void* workPlace; /* must be ZSTD_BLOCKSIZE_MAX allocated */ +} EStats_ress_t; + +#define MAXREPOFFSET 1024 + +static void ZDICT_countEStats(EStats_ress_t esr, const ZSTD_parameters* params, + unsigned* countLit, unsigned* offsetcodeCount, unsigned* matchlengthCount, unsigned* litlengthCount, U32* repOffsets, + const void* src, size_t srcSize, + U32 notificationLevel) +{ + size_t const blockSizeMax = MIN (ZSTD_BLOCKSIZE_MAX, 1 << params->cParams.windowLog); + size_t cSize; + + if (srcSize > blockSizeMax) srcSize = blockSizeMax; /* protection vs large samples */ + { size_t const errorCode = ZSTD_compressBegin_usingCDict_deprecated(esr.zc, esr.dict); + if (ZSTD_isError(errorCode)) { DISPLAYLEVEL(1, "warning : ZSTD_compressBegin_usingCDict failed \n"); return; } + + } + cSize = ZSTD_compressBlock_deprecated(esr.zc, esr.workPlace, ZSTD_BLOCKSIZE_MAX, src, srcSize); + if (ZSTD_isError(cSize)) { DISPLAYLEVEL(3, "warning : could not compress sample size %u \n", (unsigned)srcSize); return; } + + if (cSize) { /* if == 0; block is not compressible */ + const seqStore_t* const seqStorePtr = ZSTD_getSeqStore(esr.zc); + + /* literals stats */ + { const BYTE* bytePtr; + for(bytePtr = seqStorePtr->litStart; bytePtr < seqStorePtr->lit; bytePtr++) + countLit[*bytePtr]++; + } + + /* seqStats */ + { U32 const nbSeq = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + ZSTD_seqToCodes(seqStorePtr); + + { const BYTE* codePtr = seqStorePtr->ofCode; + U32 u; + for (u=0; umlCode; + U32 u; + for (u=0; ullCode; + U32 u; + for (u=0; u= 2) { /* rep offsets */ + const seqDef* const seq = seqStorePtr->sequencesStart; + U32 offset1 = seq[0].offBase - ZSTD_REP_NUM; + U32 offset2 = seq[1].offBase - ZSTD_REP_NUM; + if (offset1 >= MAXREPOFFSET) offset1 = 0; + if (offset2 >= MAXREPOFFSET) offset2 = 0; + repOffsets[offset1] += 3; + repOffsets[offset2] += 1; + } } } +} + +static size_t ZDICT_totalSampleSize(const size_t* fileSizes, unsigned nbFiles) +{ + size_t total=0; + unsigned u; + for (u=0; u0; u--) { + offsetCount_t tmp; + if (table[u-1].count >= table[u].count) break; + tmp = table[u-1]; + table[u-1] = table[u]; + table[u] = tmp; + } +} + +/* ZDICT_flatLit() : + * rewrite `countLit` to contain a mostly flat but still compressible distribution of literals. + * necessary to avoid generating a non-compressible distribution that HUF_writeCTable() cannot encode. + */ +static void ZDICT_flatLit(unsigned* countLit) +{ + int u; + for (u=1; u<256; u++) countLit[u] = 2; + countLit[0] = 4; + countLit[253] = 1; + countLit[254] = 1; +} + +#define OFFCODE_MAX 30 /* only applicable to first block */ +static size_t ZDICT_analyzeEntropy(void* dstBuffer, size_t maxDstSize, + int compressionLevel, + const void* srcBuffer, const size_t* fileSizes, unsigned nbFiles, + const void* dictBuffer, size_t dictBufferSize, + unsigned notificationLevel) +{ + unsigned countLit[256]; + HUF_CREATE_STATIC_CTABLE(hufTable, 255); + unsigned offcodeCount[OFFCODE_MAX+1]; + short offcodeNCount[OFFCODE_MAX+1]; + U32 offcodeMax = ZSTD_highbit32((U32)(dictBufferSize + 128 KB)); + unsigned matchLengthCount[MaxML+1]; + short matchLengthNCount[MaxML+1]; + unsigned litLengthCount[MaxLL+1]; + short litLengthNCount[MaxLL+1]; + U32 repOffset[MAXREPOFFSET]; + offsetCount_t bestRepOffset[ZSTD_REP_NUM+1]; + EStats_ress_t esr = { NULL, NULL, NULL }; + ZSTD_parameters params; + U32 u, huffLog = 11, Offlog = OffFSELog, mlLog = MLFSELog, llLog = LLFSELog, total; + size_t pos = 0, errorCode; + size_t eSize = 0; + size_t const totalSrcSize = ZDICT_totalSampleSize(fileSizes, nbFiles); + size_t const averageSampleSize = totalSrcSize / (nbFiles + !nbFiles); + BYTE* dstPtr = (BYTE*)dstBuffer; + U32 wksp[HUF_CTABLE_WORKSPACE_SIZE_U32]; + + /* init */ + DEBUGLOG(4, "ZDICT_analyzeEntropy"); + if (offcodeMax>OFFCODE_MAX) { eSize = ERROR(dictionaryCreation_failed); goto _cleanup; } /* too large dictionary */ + for (u=0; u<256; u++) countLit[u] = 1; /* any character must be described */ + for (u=0; u<=offcodeMax; u++) offcodeCount[u] = 1; + for (u=0; u<=MaxML; u++) matchLengthCount[u] = 1; + for (u=0; u<=MaxLL; u++) litLengthCount[u] = 1; + memset(repOffset, 0, sizeof(repOffset)); + repOffset[1] = repOffset[4] = repOffset[8] = 1; + memset(bestRepOffset, 0, sizeof(bestRepOffset)); + if (compressionLevel==0) compressionLevel = ZSTD_CLEVEL_DEFAULT; + params = ZSTD_getParams(compressionLevel, averageSampleSize, dictBufferSize); + + esr.dict = ZSTD_createCDict_advanced(dictBuffer, dictBufferSize, ZSTD_dlm_byRef, ZSTD_dct_rawContent, params.cParams, ZSTD_defaultCMem); + esr.zc = ZSTD_createCCtx(); + esr.workPlace = malloc(ZSTD_BLOCKSIZE_MAX); + if (!esr.dict || !esr.zc || !esr.workPlace) { + eSize = ERROR(memory_allocation); + DISPLAYLEVEL(1, "Not enough memory \n"); + goto _cleanup; + } + + /* collect stats on all samples */ + for (u=0; u= 4) { + /* writeStats */ + DISPLAYLEVEL(4, "Offset Code Frequencies : \n"); + for (u=0; u<=offcodeMax; u++) { + DISPLAYLEVEL(4, "%2u :%7u \n", u, offcodeCount[u]); + } } + + /* analyze, build stats, starting with literals */ + { size_t maxNbBits = HUF_buildCTable_wksp(hufTable, countLit, 255, huffLog, wksp, sizeof(wksp)); + if (HUF_isError(maxNbBits)) { + eSize = maxNbBits; + DISPLAYLEVEL(1, " HUF_buildCTable error \n"); + goto _cleanup; + } + if (maxNbBits==8) { /* not compressible : will fail on HUF_writeCTable() */ + DISPLAYLEVEL(2, "warning : pathological dataset : literals are not compressible : samples are noisy or too regular \n"); + ZDICT_flatLit(countLit); /* replace distribution by a fake "mostly flat but still compressible" distribution, that HUF_writeCTable() can encode */ + maxNbBits = HUF_buildCTable_wksp(hufTable, countLit, 255, huffLog, wksp, sizeof(wksp)); + assert(maxNbBits==9); + } + huffLog = (U32)maxNbBits; + } + + /* looking for most common first offsets */ + { U32 offset; + for (offset=1; offset dictBufferCapacity) { + dictContentSize = dictBufferCapacity - hSize; + } + + /* Pad the dictionary content with zeros if it is too small */ + if (dictContentSize < minContentSize) { + RETURN_ERROR_IF(hSize + minContentSize > dictBufferCapacity, dstSize_tooSmall, + "dictBufferCapacity too small to fit max repcode"); + paddingSize = minContentSize - dictContentSize; + } else { + paddingSize = 0; + } + + { + size_t const dictSize = hSize + paddingSize + dictContentSize; + + /* The dictionary consists of the header, optional padding, and the content. + * The padding comes before the content because the "best" position in the + * dictionary is the last byte. + */ + BYTE* const outDictHeader = (BYTE*)dictBuffer; + BYTE* const outDictPadding = outDictHeader + hSize; + BYTE* const outDictContent = outDictPadding + paddingSize; + + assert(dictSize <= dictBufferCapacity); + assert(outDictContent + dictContentSize == (BYTE*)dictBuffer + dictSize); + + /* First copy the customDictContent into its final location. + * `customDictContent` and `dictBuffer` may overlap, so we must + * do this before any other writes into the output buffer. + * Then copy the header & padding into the output buffer. + */ + memmove(outDictContent, customDictContent, dictContentSize); + memcpy(outDictHeader, header, hSize); + memset(outDictPadding, 0, paddingSize); + + return dictSize; + } +} + + +static size_t ZDICT_addEntropyTablesFromBuffer_advanced( + void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_params_t params) +{ + int const compressionLevel = (params.compressionLevel == 0) ? ZSTD_CLEVEL_DEFAULT : params.compressionLevel; + U32 const notificationLevel = params.notificationLevel; + size_t hSize = 8; + + /* calculate entropy tables */ + DISPLAYLEVEL(2, "\r%70s\r", ""); /* clean display line */ + DISPLAYLEVEL(2, "statistics ... \n"); + { size_t const eSize = ZDICT_analyzeEntropy((char*)dictBuffer+hSize, dictBufferCapacity-hSize, + compressionLevel, + samplesBuffer, samplesSizes, nbSamples, + (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize, + notificationLevel); + if (ZDICT_isError(eSize)) return eSize; + hSize += eSize; + } + + /* add dictionary header (after entropy tables) */ + MEM_writeLE32(dictBuffer, ZSTD_MAGIC_DICTIONARY); + { U64 const randomID = XXH64((char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize, 0); + U32 const compliantID = (randomID % ((1U<<31)-32768)) + 32768; + U32 const dictID = params.dictID ? params.dictID : compliantID; + MEM_writeLE32((char*)dictBuffer+4, dictID); + } + + if (hSize + dictContentSize < dictBufferCapacity) + memmove((char*)dictBuffer + hSize, (char*)dictBuffer + dictBufferCapacity - dictContentSize, dictContentSize); + return MIN(dictBufferCapacity, hSize+dictContentSize); +} + +/*! ZDICT_trainFromBuffer_unsafe_legacy() : +* Warning : `samplesBuffer` must be followed by noisy guard band !!! +* @return : size of dictionary, or an error code which can be tested with ZDICT_isError() +*/ +static size_t ZDICT_trainFromBuffer_unsafe_legacy( + void* dictBuffer, size_t maxDictSize, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_legacy_params_t params) +{ + U32 const dictListSize = MAX(MAX(DICTLISTSIZE_DEFAULT, nbSamples), (U32)(maxDictSize/16)); + dictItem* const dictList = (dictItem*)malloc(dictListSize * sizeof(*dictList)); + unsigned const selectivity = params.selectivityLevel == 0 ? g_selectivity_default : params.selectivityLevel; + unsigned const minRep = (selectivity > 30) ? MINRATIO : nbSamples >> selectivity; + size_t const targetDictSize = maxDictSize; + size_t const samplesBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); + size_t dictSize = 0; + U32 const notificationLevel = params.zParams.notificationLevel; + + /* checks */ + if (!dictList) return ERROR(memory_allocation); + if (maxDictSize < ZDICT_DICTSIZE_MIN) { free(dictList); return ERROR(dstSize_tooSmall); } /* requested dictionary size is too small */ + if (samplesBuffSize < ZDICT_MIN_SAMPLES_SIZE) { free(dictList); return ERROR(dictionaryCreation_failed); } /* not enough source to create dictionary */ + + /* init */ + ZDICT_initDictItem(dictList); + + /* build dictionary */ + ZDICT_trainBuffer_legacy(dictList, dictListSize, + samplesBuffer, samplesBuffSize, + samplesSizes, nbSamples, + minRep, notificationLevel); + + /* display best matches */ + if (params.zParams.notificationLevel>= 3) { + unsigned const nb = MIN(25, dictList[0].pos); + unsigned const dictContentSize = ZDICT_dictSize(dictList); + unsigned u; + + (void) dictContentSize; + + DISPLAYLEVEL(3, "\n %u segments found, of total size %u \n", (unsigned)dictList[0].pos-1, dictContentSize); + DISPLAYLEVEL(3, "list %u best segments \n", nb-1); + for (u=1; u samplesBuffSize) || ((pos + length) > samplesBuffSize)) { + free(dictList); + return ERROR(GENERIC); /* should never happen */ + } + DISPLAYLEVEL(3, "%3u:%3u bytes at pos %8u, savings %7u bytes |", + u, length, pos, (unsigned)dictList[u].savings); + ZDICT_printHex((const char*)samplesBuffer+pos, printedLength); + DISPLAYLEVEL(3, "| \n"); + } } + + + /* create dictionary */ + { unsigned dictContentSize = ZDICT_dictSize(dictList); + if (dictContentSize < ZDICT_CONTENTSIZE_MIN) { free(dictList); return ERROR(dictionaryCreation_failed); } /* dictionary content too small */ + if (dictContentSize < targetDictSize/4) { + DISPLAYLEVEL(2, "! warning : selected content significantly smaller than requested (%u < %u) \n", dictContentSize, (unsigned)maxDictSize); + if (samplesBuffSize < 10 * targetDictSize) + DISPLAYLEVEL(2, "! consider increasing the number of samples (total size : %u MB)\n", (unsigned)(samplesBuffSize>>20)); + if (minRep > MINRATIO) { + DISPLAYLEVEL(2, "! consider increasing selectivity to produce larger dictionary (-s%u) \n", selectivity+1); + DISPLAYLEVEL(2, "! note : larger dictionaries are not necessarily better, test its efficiency on samples \n"); + } + } + + if ((dictContentSize > targetDictSize*3) && (nbSamples > 2*MINRATIO) && (selectivity>1)) { + unsigned proposedSelectivity = selectivity-1; + while ((nbSamples >> proposedSelectivity) <= MINRATIO) { proposedSelectivity--; } + DISPLAYLEVEL(2, "! note : calculated dictionary significantly larger than requested (%u > %u) \n", dictContentSize, (unsigned)maxDictSize); + DISPLAYLEVEL(2, "! consider increasing dictionary size, or produce denser dictionary (-s%u) \n", proposedSelectivity); + DISPLAYLEVEL(2, "! always test dictionary efficiency on real samples \n"); + } + + /* limit dictionary size */ + { U32 const max = dictList->pos; /* convention : nb of useful elts within dictList */ + U32 currentSize = 0; + U32 n; for (n=1; n targetDictSize) { currentSize -= dictList[n].length; break; } + } + dictList->pos = n; + dictContentSize = currentSize; + } + + /* build dict content */ + { U32 u; + BYTE* ptr = (BYTE*)dictBuffer + maxDictSize; + for (u=1; upos; u++) { + U32 l = dictList[u].length; + ptr -= l; + if (ptr<(BYTE*)dictBuffer) { free(dictList); return ERROR(GENERIC); } /* should not happen */ + memcpy(ptr, (const char*)samplesBuffer+dictList[u].pos, l); + } } + + dictSize = ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, maxDictSize, + samplesBuffer, samplesSizes, nbSamples, + params.zParams); + } + + /* clean up */ + free(dictList); + return dictSize; +} + + +/* ZDICT_trainFromBuffer_legacy() : + * issue : samplesBuffer need to be followed by a noisy guard band. + * work around : duplicate the buffer, and add the noise */ +size_t ZDICT_trainFromBuffer_legacy(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_legacy_params_t params) +{ + size_t result; + void* newBuff; + size_t const sBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); + if (sBuffSize < ZDICT_MIN_SAMPLES_SIZE) return 0; /* not enough content => no dictionary */ + + newBuff = malloc(sBuffSize + NOISELENGTH); + if (!newBuff) return ERROR(memory_allocation); + + memcpy(newBuff, samplesBuffer, sBuffSize); + ZDICT_fillNoise((char*)newBuff + sBuffSize, NOISELENGTH); /* guard band, for end of buffer condition */ + + result = + ZDICT_trainFromBuffer_unsafe_legacy(dictBuffer, dictBufferCapacity, newBuff, + samplesSizes, nbSamples, params); + free(newBuff); + return result; +} + + +size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples) +{ + ZDICT_fastCover_params_t params; + DEBUGLOG(3, "ZDICT_trainFromBuffer"); + memset(¶ms, 0, sizeof(params)); + params.d = 8; + params.steps = 4; + /* Use default level since no compression level information is available */ + params.zParams.compressionLevel = ZSTD_CLEVEL_DEFAULT; +#if defined(DEBUGLEVEL) && (DEBUGLEVEL>=1) + params.zParams.notificationLevel = DEBUGLEVEL; +#endif + return ZDICT_optimizeTrainFromBuffer_fastCover(dictBuffer, dictBufferCapacity, + samplesBuffer, samplesSizes, nbSamples, + ¶ms); +} + +size_t ZDICT_addEntropyTablesFromBuffer(void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples) +{ + ZDICT_params_t params; + memset(¶ms, 0, sizeof(params)); + return ZDICT_addEntropyTablesFromBuffer_advanced(dictBuffer, dictContentSize, dictBufferCapacity, + samplesBuffer, samplesSizes, nbSamples, + params); +} + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/include/zdict.h b/src/duckdb/third_party/zstd/include/zdict.h new file mode 100644 index 00000000..eaf87727 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zdict.h @@ -0,0 +1,473 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + +#ifndef ZSTD_ZDICT_H +#define ZSTD_ZDICT_H + +/*====== Dependencies ======*/ +#include /* size_t */ + +namespace duckdb_zstd { + +/* ===== ZDICTLIB_API : control library symbols visibility ===== */ +#ifndef ZDICTLIB_VISIBLE + /* Backwards compatibility with old macro name */ +# ifdef ZDICTLIB_VISIBILITY +# define ZDICTLIB_VISIBLE ZDICTLIB_VISIBILITY +# elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) +# define ZDICTLIB_VISIBLE __attribute__ ((visibility ("default"))) +# else +# define ZDICTLIB_VISIBLE +# endif +#endif + +#ifndef ZDICTLIB_HIDDEN +# if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) +# define ZDICTLIB_HIDDEN __attribute__ ((visibility ("hidden"))) +# else +# define ZDICTLIB_HIDDEN +# endif +#endif + +#if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1) +# define ZDICTLIB_API __declspec(dllexport) ZDICTLIB_VISIBLE +#elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1) +# define ZDICTLIB_API __declspec(dllimport) ZDICTLIB_VISIBLE /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +#else +# define ZDICTLIB_API ZDICTLIB_VISIBLE +#endif + +/******************************************************************************* + * Zstd dictionary builder + * + * FAQ + * === + * Why should I use a dictionary? + * ------------------------------ + * + * Zstd can use dictionaries to improve compression ratio of small data. + * Traditionally small files don't compress well because there is very little + * repetition in a single sample, since it is small. But, if you are compressing + * many similar files, like a bunch of JSON records that share the same + * structure, you can train a dictionary on ahead of time on some samples of + * these files. Then, zstd can use the dictionary to find repetitions that are + * present across samples. This can vastly improve compression ratio. + * + * When is a dictionary useful? + * ---------------------------- + * + * Dictionaries are useful when compressing many small files that are similar. + * The larger a file is, the less benefit a dictionary will have. Generally, + * we don't expect dictionary compression to be effective past 100KB. And the + * smaller a file is, the more we would expect the dictionary to help. + * + * How do I use a dictionary? + * -------------------------- + * + * Simply pass the dictionary to the zstd compressor with + * `ZSTD_CCtx_loadDictionary()`. The same dictionary must then be passed to + * the decompressor, using `ZSTD_DCtx_loadDictionary()`. There are other + * more advanced functions that allow selecting some options, see zstd.h for + * complete documentation. + * + * What is a zstd dictionary? + * -------------------------- + * + * A zstd dictionary has two pieces: Its header, and its content. The header + * contains a magic number, the dictionary ID, and entropy tables. These + * entropy tables allow zstd to save on header costs in the compressed file, + * which really matters for small data. The content is just bytes, which are + * repeated content that is common across many samples. + * + * What is a raw content dictionary? + * --------------------------------- + * + * A raw content dictionary is just bytes. It doesn't have a zstd dictionary + * header, a dictionary ID, or entropy tables. Any buffer is a valid raw + * content dictionary. + * + * How do I train a dictionary? + * ---------------------------- + * + * Gather samples from your use case. These samples should be similar to each + * other. If you have several use cases, you could try to train one dictionary + * per use case. + * + * Pass those samples to `ZDICT_trainFromBuffer()` and that will train your + * dictionary. There are a few advanced versions of this function, but this + * is a great starting point. If you want to further tune your dictionary + * you could try `ZDICT_optimizeTrainFromBuffer_cover()`. If that is too slow + * you can try `ZDICT_optimizeTrainFromBuffer_fastCover()`. + * + * If the dictionary training function fails, that is likely because you + * either passed too few samples, or a dictionary would not be effective + * for your data. Look at the messages that the dictionary trainer printed, + * if it doesn't say too few samples, then a dictionary would not be effective. + * + * How large should my dictionary be? + * ---------------------------------- + * + * A reasonable dictionary size, the `dictBufferCapacity`, is about 100KB. + * The zstd CLI defaults to a 110KB dictionary. You likely don't need a + * dictionary larger than that. But, most use cases can get away with a + * smaller dictionary. The advanced dictionary builders can automatically + * shrink the dictionary for you, and select the smallest size that doesn't + * hurt compression ratio too much. See the `shrinkDict` parameter. + * A smaller dictionary can save memory, and potentially speed up + * compression. + * + * How many samples should I provide to the dictionary builder? + * ------------------------------------------------------------ + * + * We generally recommend passing ~100x the size of the dictionary + * in samples. A few thousand should suffice. Having too few samples + * can hurt the dictionaries effectiveness. Having more samples will + * only improve the dictionaries effectiveness. But having too many + * samples can slow down the dictionary builder. + * + * How do I determine if a dictionary will be effective? + * ----------------------------------------------------- + * + * Simply train a dictionary and try it out. You can use zstd's built in + * benchmarking tool to test the dictionary effectiveness. + * + * # Benchmark levels 1-3 without a dictionary + * zstd -b1e3 -r /path/to/my/files + * # Benchmark levels 1-3 with a dictionary + * zstd -b1e3 -r /path/to/my/files -D /path/to/my/dictionary + * + * When should I retrain a dictionary? + * ----------------------------------- + * + * You should retrain a dictionary when its effectiveness drops. Dictionary + * effectiveness drops as the data you are compressing changes. Generally, we do + * expect dictionaries to "decay" over time, as your data changes, but the rate + * at which they decay depends on your use case. Internally, we regularly + * retrain dictionaries, and if the new dictionary performs significantly + * better than the old dictionary, we will ship the new dictionary. + * + * I have a raw content dictionary, how do I turn it into a zstd dictionary? + * ------------------------------------------------------------------------- + * + * If you have a raw content dictionary, e.g. by manually constructing it, or + * using a third-party dictionary builder, you can turn it into a zstd + * dictionary by using `ZDICT_finalizeDictionary()`. You'll also have to + * provide some samples of the data. It will add the zstd header to the + * raw content, which contains a dictionary ID and entropy tables, which + * will improve compression ratio, and allow zstd to write the dictionary ID + * into the frame, if you so choose. + * + * Do I have to use zstd's dictionary builder? + * ------------------------------------------- + * + * No! You can construct dictionary content however you please, it is just + * bytes. It will always be valid as a raw content dictionary. If you want + * a zstd dictionary, which can improve compression ratio, use + * `ZDICT_finalizeDictionary()`. + * + * What is the attack surface of a zstd dictionary? + * ------------------------------------------------ + * + * Zstd is heavily fuzz tested, including loading fuzzed dictionaries, so + * zstd should never crash, or access out-of-bounds memory no matter what + * the dictionary is. However, if an attacker can control the dictionary + * during decompression, they can cause zstd to generate arbitrary bytes, + * just like if they controlled the compressed data. + * + ******************************************************************************/ + + +/*! ZDICT_trainFromBuffer(): + * Train a dictionary from an array of samples. + * Redirect towards ZDICT_optimizeTrainFromBuffer_fastCover() single-threaded, with d=8, steps=4, + * f=20, and accel=1. + * Samples must be stored concatenated in a single flat buffer `samplesBuffer`, + * supplied with an array of sizes `samplesSizes`, providing the size of each sample, in order. + * The resulting dictionary will be saved into `dictBuffer`. + * @return: size of dictionary stored into `dictBuffer` (<= `dictBufferCapacity`) + * or an error code, which can be tested with ZDICT_isError(). + * Note: Dictionary training will fail if there are not enough samples to construct a + * dictionary, or if most of the samples are too small (< 8 bytes being the lower limit). + * If dictionary training fails, you should use zstd without a dictionary, as the dictionary + * would've been ineffective anyways. If you believe your samples would benefit from a dictionary + * please open an issue with details, and we can look into it. + * Note: ZDICT_trainFromBuffer()'s memory usage is about 6 MB. + * Tips: In general, a reasonable dictionary has a size of ~ 100 KB. + * It's possible to select smaller or larger size, just by specifying `dictBufferCapacity`. + * In general, it's recommended to provide a few thousands samples, though this can vary a lot. + * It's recommended that total size of all samples be about ~x100 times the target size of dictionary. + */ +ZDICTLIB_API size_t ZDICT_trainFromBuffer(void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples); + +typedef struct { + int compressionLevel; /**< optimize for a specific zstd compression level; 0 means default */ + unsigned notificationLevel; /**< Write log to stderr; 0 = none (default); 1 = errors; 2 = progression; 3 = details; 4 = debug; */ + unsigned dictID; /**< force dictID value; 0 means auto mode (32-bits random value) + * NOTE: The zstd format reserves some dictionary IDs for future use. + * You may use them in private settings, but be warned that they + * may be used by zstd in a public dictionary registry in the future. + * These dictionary IDs are: + * - low range : <= 32767 + * - high range : >= (2^31) + */ +} ZDICT_params_t; + +/*! ZDICT_finalizeDictionary(): + * Given a custom content as a basis for dictionary, and a set of samples, + * finalize dictionary by adding headers and statistics according to the zstd + * dictionary format. + * + * Samples must be stored concatenated in a flat buffer `samplesBuffer`, + * supplied with an array of sizes `samplesSizes`, providing the size of each + * sample in order. The samples are used to construct the statistics, so they + * should be representative of what you will compress with this dictionary. + * + * The compression level can be set in `parameters`. You should pass the + * compression level you expect to use in production. The statistics for each + * compression level differ, so tuning the dictionary for the compression level + * can help quite a bit. + * + * You can set an explicit dictionary ID in `parameters`, or allow us to pick + * a random dictionary ID for you, but we can't guarantee no collisions. + * + * The dstDictBuffer and the dictContent may overlap, and the content will be + * appended to the end of the header. If the header + the content doesn't fit in + * maxDictSize the beginning of the content is truncated to make room, since it + * is presumed that the most profitable content is at the end of the dictionary, + * since that is the cheapest to reference. + * + * `maxDictSize` must be >= max(dictContentSize, ZSTD_DICTSIZE_MIN). + * + * @return: size of dictionary stored into `dstDictBuffer` (<= `maxDictSize`), + * or an error code, which can be tested by ZDICT_isError(). + * Note: ZDICT_finalizeDictionary() will push notifications into stderr if + * instructed to, using notificationLevel>0. + * NOTE: This function currently may fail in several edge cases including: + * * Not enough samples + * * Samples are uncompressible + * * Samples are all exactly the same + */ +ZDICTLIB_API size_t ZDICT_finalizeDictionary(void* dstDictBuffer, size_t maxDictSize, + const void* dictContent, size_t dictContentSize, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_params_t parameters); + + +/*====== Helper functions ======*/ +ZDICTLIB_API unsigned ZDICT_getDictID(const void* dictBuffer, size_t dictSize); /**< extracts dictID; @return zero if error (not a valid dictionary) */ +ZDICTLIB_API size_t ZDICT_getDictHeaderSize(const void* dictBuffer, size_t dictSize); /* returns dict header size; returns a ZSTD error code on failure */ +ZDICTLIB_API unsigned ZDICT_isError(size_t errorCode); +ZDICTLIB_API const char* ZDICT_getErrorName(size_t errorCode); + +} // namespace duckdb_zstd + +#endif /* ZSTD_ZDICT_H */ + +#if defined(ZDICT_STATIC_LINKING_ONLY) && !defined(ZSTD_ZDICT_H_STATIC) +#define ZSTD_ZDICT_H_STATIC + +namespace duckdb_zstd { + +/* This can be overridden externally to hide static symbols. */ +#ifndef ZDICTLIB_STATIC_API +# if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1) +# define ZDICTLIB_STATIC_API __declspec(dllexport) ZDICTLIB_VISIBLE +# elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1) +# define ZDICTLIB_STATIC_API __declspec(dllimport) ZDICTLIB_VISIBLE +# else +# define ZDICTLIB_STATIC_API ZDICTLIB_VISIBLE +# endif +#endif + +/* ==================================================================================== + * The definitions in this section are considered experimental. + * They should never be used with a dynamic library, as they may change in the future. + * They are provided for advanced usages. + * Use them only in association with static linking. + * ==================================================================================== */ + +#define ZDICT_DICTSIZE_MIN 256 +/* Deprecated: Remove in v1.6.0 */ +#define ZDICT_CONTENTSIZE_MIN 128 + +/*! ZDICT_cover_params_t: + * k and d are the only required parameters. + * For others, value 0 means default. + */ +typedef struct { + unsigned k; /* Segment size : constraint: 0 < k : Reasonable range [16, 2048+] */ + unsigned d; /* dmer size : constraint: 0 < d <= k : Reasonable range [6, 16] */ + unsigned steps; /* Number of steps : Only used for optimization : 0 means default (40) : Higher means more parameters checked */ + unsigned nbThreads; /* Number of threads : constraint: 0 < nbThreads : 1 means single-threaded : Only used for optimization : Ignored if ZSTD_MULTITHREAD is not defined */ + double splitPoint; /* Percentage of samples used for training: Only used for optimization : the first nbSamples * splitPoint samples will be used to training, the last nbSamples * (1 - splitPoint) samples will be used for testing, 0 means default (1.0), 1.0 when all samples are used for both training and testing */ + unsigned shrinkDict; /* Train dictionaries to shrink in size starting from the minimum size and selects the smallest dictionary that is shrinkDictMaxRegression% worse than the largest dictionary. 0 means no shrinking and 1 means shrinking */ + unsigned shrinkDictMaxRegression; /* Sets shrinkDictMaxRegression so that a smaller dictionary can be at worse shrinkDictMaxRegression% worse than the max dict size dictionary. */ + ZDICT_params_t zParams; +} ZDICT_cover_params_t; + +typedef struct { + unsigned k; /* Segment size : constraint: 0 < k : Reasonable range [16, 2048+] */ + unsigned d; /* dmer size : constraint: 0 < d <= k : Reasonable range [6, 16] */ + unsigned f; /* log of size of frequency array : constraint: 0 < f <= 31 : 1 means default(20)*/ + unsigned steps; /* Number of steps : Only used for optimization : 0 means default (40) : Higher means more parameters checked */ + unsigned nbThreads; /* Number of threads : constraint: 0 < nbThreads : 1 means single-threaded : Only used for optimization : Ignored if ZSTD_MULTITHREAD is not defined */ + double splitPoint; /* Percentage of samples used for training: Only used for optimization : the first nbSamples * splitPoint samples will be used to training, the last nbSamples * (1 - splitPoint) samples will be used for testing, 0 means default (0.75), 1.0 when all samples are used for both training and testing */ + unsigned accel; /* Acceleration level: constraint: 0 < accel <= 10, higher means faster and less accurate, 0 means default(1) */ + unsigned shrinkDict; /* Train dictionaries to shrink in size starting from the minimum size and selects the smallest dictionary that is shrinkDictMaxRegression% worse than the largest dictionary. 0 means no shrinking and 1 means shrinking */ + unsigned shrinkDictMaxRegression; /* Sets shrinkDictMaxRegression so that a smaller dictionary can be at worse shrinkDictMaxRegression% worse than the max dict size dictionary. */ + + ZDICT_params_t zParams; +} ZDICT_fastCover_params_t; + +/*! ZDICT_trainFromBuffer_cover(): + * Train a dictionary from an array of samples using the COVER algorithm. + * Samples must be stored concatenated in a single flat buffer `samplesBuffer`, + * supplied with an array of sizes `samplesSizes`, providing the size of each sample, in order. + * The resulting dictionary will be saved into `dictBuffer`. + * @return: size of dictionary stored into `dictBuffer` (<= `dictBufferCapacity`) + * or an error code, which can be tested with ZDICT_isError(). + * See ZDICT_trainFromBuffer() for details on failure modes. + * Note: ZDICT_trainFromBuffer_cover() requires about 9 bytes of memory for each input byte. + * Tips: In general, a reasonable dictionary has a size of ~ 100 KB. + * It's possible to select smaller or larger size, just by specifying `dictBufferCapacity`. + * In general, it's recommended to provide a few thousands samples, though this can vary a lot. + * It's recommended that total size of all samples be about ~x100 times the target size of dictionary. + */ +ZDICTLIB_STATIC_API size_t ZDICT_trainFromBuffer_cover( + void *dictBuffer, size_t dictBufferCapacity, + const void *samplesBuffer, const size_t *samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t parameters); + +/*! ZDICT_optimizeTrainFromBuffer_cover(): + * The same requirements as above hold for all the parameters except `parameters`. + * This function tries many parameter combinations and picks the best parameters. + * `*parameters` is filled with the best parameters found, + * dictionary constructed with those parameters is stored in `dictBuffer`. + * + * All of the parameters d, k, steps are optional. + * If d is non-zero then we don't check multiple values of d, otherwise we check d = {6, 8}. + * if steps is zero it defaults to its default value. + * If k is non-zero then we don't check multiple values of k, otherwise we check steps values in [50, 2000]. + * + * @return: size of dictionary stored into `dictBuffer` (<= `dictBufferCapacity`) + * or an error code, which can be tested with ZDICT_isError(). + * On success `*parameters` contains the parameters selected. + * See ZDICT_trainFromBuffer() for details on failure modes. + * Note: ZDICT_optimizeTrainFromBuffer_cover() requires about 8 bytes of memory for each input byte and additionally another 5 bytes of memory for each byte of memory for each thread. + */ +ZDICTLIB_STATIC_API size_t ZDICT_optimizeTrainFromBuffer_cover( + void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_cover_params_t* parameters); + +/*! ZDICT_trainFromBuffer_fastCover(): + * Train a dictionary from an array of samples using a modified version of COVER algorithm. + * Samples must be stored concatenated in a single flat buffer `samplesBuffer`, + * supplied with an array of sizes `samplesSizes`, providing the size of each sample, in order. + * d and k are required. + * All other parameters are optional, will use default values if not provided + * The resulting dictionary will be saved into `dictBuffer`. + * @return: size of dictionary stored into `dictBuffer` (<= `dictBufferCapacity`) + * or an error code, which can be tested with ZDICT_isError(). + * See ZDICT_trainFromBuffer() for details on failure modes. + * Note: ZDICT_trainFromBuffer_fastCover() requires 6 * 2^f bytes of memory. + * Tips: In general, a reasonable dictionary has a size of ~ 100 KB. + * It's possible to select smaller or larger size, just by specifying `dictBufferCapacity`. + * In general, it's recommended to provide a few thousands samples, though this can vary a lot. + * It's recommended that total size of all samples be about ~x100 times the target size of dictionary. + */ +ZDICTLIB_STATIC_API size_t ZDICT_trainFromBuffer_fastCover(void *dictBuffer, + size_t dictBufferCapacity, const void *samplesBuffer, + const size_t *samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t parameters); + +/*! ZDICT_optimizeTrainFromBuffer_fastCover(): + * The same requirements as above hold for all the parameters except `parameters`. + * This function tries many parameter combinations (specifically, k and d combinations) + * and picks the best parameters. `*parameters` is filled with the best parameters found, + * dictionary constructed with those parameters is stored in `dictBuffer`. + * All of the parameters d, k, steps, f, and accel are optional. + * If d is non-zero then we don't check multiple values of d, otherwise we check d = {6, 8}. + * if steps is zero it defaults to its default value. + * If k is non-zero then we don't check multiple values of k, otherwise we check steps values in [50, 2000]. + * If f is zero, default value of 20 is used. + * If accel is zero, default value of 1 is used. + * + * @return: size of dictionary stored into `dictBuffer` (<= `dictBufferCapacity`) + * or an error code, which can be tested with ZDICT_isError(). + * On success `*parameters` contains the parameters selected. + * See ZDICT_trainFromBuffer() for details on failure modes. + * Note: ZDICT_optimizeTrainFromBuffer_fastCover() requires about 6 * 2^f bytes of memory for each thread. + */ +ZDICTLIB_STATIC_API size_t ZDICT_optimizeTrainFromBuffer_fastCover(void* dictBuffer, + size_t dictBufferCapacity, const void* samplesBuffer, + const size_t* samplesSizes, unsigned nbSamples, + ZDICT_fastCover_params_t* parameters); + +typedef struct { + unsigned selectivityLevel; /* 0 means default; larger => select more => larger dictionary */ + ZDICT_params_t zParams; +} ZDICT_legacy_params_t; + +/*! ZDICT_trainFromBuffer_legacy(): + * Train a dictionary from an array of samples. + * Samples must be stored concatenated in a single flat buffer `samplesBuffer`, + * supplied with an array of sizes `samplesSizes`, providing the size of each sample, in order. + * The resulting dictionary will be saved into `dictBuffer`. + * `parameters` is optional and can be provided with values set to 0 to mean "default". + * @return: size of dictionary stored into `dictBuffer` (<= `dictBufferCapacity`) + * or an error code, which can be tested with ZDICT_isError(). + * See ZDICT_trainFromBuffer() for details on failure modes. + * Tips: In general, a reasonable dictionary has a size of ~ 100 KB. + * It's possible to select smaller or larger size, just by specifying `dictBufferCapacity`. + * In general, it's recommended to provide a few thousands samples, though this can vary a lot. + * It's recommended that total size of all samples be about ~x100 times the target size of dictionary. + * Note: ZDICT_trainFromBuffer_legacy() will send notifications into stderr if instructed to, using notificationLevel>0. + */ +ZDICTLIB_STATIC_API size_t ZDICT_trainFromBuffer_legacy( + void* dictBuffer, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples, + ZDICT_legacy_params_t parameters); + + +/* Deprecation warnings */ +/* It is generally possible to disable deprecation warnings from compiler, + for example with -Wno-deprecated-declarations for gcc + or _CRT_SECURE_NO_WARNINGS in Visual. + Otherwise, it's also possible to manually define ZDICT_DISABLE_DEPRECATE_WARNINGS */ +#ifdef ZDICT_DISABLE_DEPRECATE_WARNINGS +# define ZDICT_DEPRECATED(message) /* disable deprecation warnings */ +#else +# define ZDICT_GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__) +# if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */ +# define ZDICT_DEPRECATED(message) [[deprecated(message)]] +# elif defined(__clang__) || (ZDICT_GCC_VERSION >= 405) +# define ZDICT_DEPRECATED(message) __attribute__((deprecated(message))) +# elif (ZDICT_GCC_VERSION >= 301) +# define ZDICT_DEPRECATED(message) __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define ZDICT_DEPRECATED(message) __declspec(deprecated(message)) +# else +# pragma message("WARNING: You need to implement ZDICT_DEPRECATED for this compiler") +# define ZDICT_DEPRECATED(message) +# endif +#endif /* ZDICT_DISABLE_DEPRECATE_WARNINGS */ + +ZDICT_DEPRECATED("use ZDICT_finalizeDictionary() instead") +ZDICTLIB_STATIC_API +size_t ZDICT_addEntropyTablesFromBuffer(void* dictBuffer, size_t dictContentSize, size_t dictBufferCapacity, + const void* samplesBuffer, const size_t* samplesSizes, unsigned nbSamples); + +} // namespace duckdb_zstd + +#endif /* ZSTD_ZDICT_H_STATIC */ diff --git a/src/duckdb/third_party/zstd/include/zstd.h b/src/duckdb/third_party/zstd/include/zstd.h index ade94c2d..8b40c366 100644 --- a/src/duckdb/third_party/zstd/include/zstd.h +++ b/src/duckdb/third_party/zstd/include/zstd.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -7,31 +7,71 @@ * in the COPYING file in the root directory of this source tree). * You may select, at your option, one of the above-listed licenses. */ + #ifndef ZSTD_H_235446 #define ZSTD_H_235446 -/* ====== Dependency ======*/ +// DuckDB: just enable everything for amalgamation +#ifdef DUCKDB_AMALGAMATION +#define ZSTD_STATIC_LINKING_ONLY +#endif + +/* ====== Dependencies ======*/ #include /* INT_MAX */ #include /* size_t */ +namespace duckdb_zstd { /* ===== ZSTDLIB_API : control library symbols visibility ===== */ -#ifndef ZSTDLIB_VISIBILITY -# if defined(__GNUC__) && (__GNUC__ >= 4) -# define ZSTDLIB_VISIBILITY __attribute__ ((visibility ("default"))) +#ifndef ZSTDLIB_VISIBLE + /* Backwards compatibility with old macro name */ +# ifdef ZSTDLIB_VISIBILITY +# define ZSTDLIB_VISIBLE ZSTDLIB_VISIBILITY +# elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) +# define ZSTDLIB_VISIBLE __attribute__ ((visibility ("default"))) +# else +# define ZSTDLIB_VISIBLE +# endif +#endif + +#ifndef ZSTDLIB_HIDDEN +# if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) +# define ZSTDLIB_HIDDEN __attribute__ ((visibility ("hidden"))) # else -# define ZSTDLIB_VISIBILITY +# define ZSTDLIB_HIDDEN # endif #endif + #if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1) -# define ZSTDLIB_API __declspec(dllexport) ZSTDLIB_VISIBILITY +# define ZSTDLIB_API __declspec(dllexport) ZSTDLIB_VISIBLE #elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1) -# define ZSTDLIB_API __declspec(dllimport) ZSTDLIB_VISIBILITY /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +# define ZSTDLIB_API __declspec(dllimport) ZSTDLIB_VISIBLE /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ #else -# define ZSTDLIB_API ZSTDLIB_VISIBILITY +# define ZSTDLIB_API ZSTDLIB_VISIBLE #endif -namespace duckdb_zstd { +/* Deprecation warnings : + * Should these warnings be a problem, it is generally possible to disable them, + * typically with -Wno-deprecated-declarations for gcc or _CRT_SECURE_NO_WARNINGS in Visual. + * Otherwise, it's also possible to define ZSTD_DISABLE_DEPRECATE_WARNINGS. + */ +#ifdef ZSTD_DISABLE_DEPRECATE_WARNINGS +# define ZSTD_DEPRECATED(message) /* disable deprecation warnings */ +#else +# if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */ +# define ZSTD_DEPRECATED(message) [[deprecated(message)]] +# elif (defined(GNUC) && (GNUC > 4 || (GNUC == 4 && GNUC_MINOR >= 5))) || defined(__clang__) +# define ZSTD_DEPRECATED(message) __attribute__((deprecated(message))) +# elif defined(__GNUC__) && (__GNUC__ >= 3) +# define ZSTD_DEPRECATED(message) __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define ZSTD_DEPRECATED(message) __declspec(deprecated(message)) +# else +# pragma message("WARNING: You need to implement ZSTD_DEPRECATED for this compiler") +# define ZSTD_DEPRECATED(message) +# endif +#endif /* ZSTD_DISABLE_DEPRECATE_WARNINGS */ + /******************************************************************************* Introduction @@ -68,17 +108,22 @@ namespace duckdb_zstd { /*------ Version ------*/ #define ZSTD_VERSION_MAJOR 1 -#define ZSTD_VERSION_MINOR 4 -#define ZSTD_VERSION_RELEASE 5 - +#define ZSTD_VERSION_MINOR 5 +#define ZSTD_VERSION_RELEASE 6 #define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE) -ZSTDLIB_API unsigned ZSTD_versionNumber(void); /**< to check runtime library version */ + +/*! ZSTD_versionNumber() : + * Return runtime library version, the value is (MAJOR*100*100 + MINOR*100 + RELEASE). */ +ZSTDLIB_API unsigned ZSTD_versionNumber(void); #define ZSTD_LIB_VERSION ZSTD_VERSION_MAJOR.ZSTD_VERSION_MINOR.ZSTD_VERSION_RELEASE #define ZSTD_QUOTE(str) #str #define ZSTD_EXPAND_AND_QUOTE(str) ZSTD_QUOTE(str) #define ZSTD_VERSION_STRING ZSTD_EXPAND_AND_QUOTE(ZSTD_LIB_VERSION) -ZSTDLIB_API const char* ZSTD_versionString(void); /* requires v1.3.0+ */ + +/*! ZSTD_versionString() : + * Return runtime library version, like "1.4.5". Requires v1.3.0+. */ +ZSTDLIB_API const char* ZSTD_versionString(void); /* ************************************* * Default constant @@ -101,13 +146,13 @@ ZSTDLIB_API const char* ZSTD_versionString(void); /* requires v1.3.0+ */ #define ZSTD_BLOCKSIZE_MAX (1<= `ZSTD_compressBound(srcSize)`. + * NOTE: Providing `dstCapacity >= ZSTD_compressBound(srcSize)` guarantees that zstd will have + * enough space to successfully compress the data. * @return : compressed size written into `dst` (<= `dstCapacity), * or an error code if it fails (which can be tested using ZSTD_isError()). */ ZSTDLIB_API size_t ZSTD_compress( void* dst, size_t dstCapacity, @@ -156,9 +201,11 @@ ZSTDLIB_API unsigned long long ZSTD_getFrameContentSize(const void *src, size_t * "empty", "unknown" and "error" results to the same return value (0), * while ZSTD_getFrameContentSize() gives them separate return values. * @return : decompressed size of `src` frame content _if known and not empty_, 0 otherwise. */ -ZSTDLIB_API unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize); +ZSTD_DEPRECATED("Replaced by ZSTD_getFrameContentSize") +ZSTDLIB_API +unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize); -/*! ZSTD_findFrameCompressedSize() : +/*! ZSTD_findFrameCompressedSize() : Requires v1.4.0+ * `src` should point to the start of a ZSTD frame or skippable frame. * `srcSize` must be >= first frame size * @return : the compressed size of the first frame starting at `src`, @@ -168,12 +215,35 @@ ZSTDLIB_API size_t ZSTD_findFrameCompressedSize(const void* src, size_t srcSize) /*====== Helper functions ======*/ -#define ZSTD_COMPRESSBOUND(srcSize) ((srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0)) /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */ -ZSTDLIB_API size_t ZSTD_compressBound(size_t srcSize); /*!< maximum compressed size in worst case single-pass scenario */ +/* ZSTD_compressBound() : + * maximum compressed size in worst case single-pass scenario. + * When invoking `ZSTD_compress()` or any other one-pass compression function, + * it's recommended to provide @dstCapacity >= ZSTD_compressBound(srcSize) + * as it eliminates one potential failure scenario, + * aka not enough room in dst buffer to write the compressed frame. + * Note : ZSTD_compressBound() itself can fail, if @srcSize > ZSTD_MAX_INPUT_SIZE . + * In which case, ZSTD_compressBound() will return an error code + * which can be tested using ZSTD_isError(). + * + * ZSTD_COMPRESSBOUND() : + * same as ZSTD_compressBound(), but as a macro. + * It can be used to produce constants, which can be useful for static allocation, + * for example to size a static array on stack. + * Will produce constant value 0 if srcSize too large. + */ +#define ZSTD_MAX_INPUT_SIZE ((sizeof(size_t)==8) ? 0xFF00FF00FF00FF00ULL : 0xFF00FF00U) +#define ZSTD_COMPRESSBOUND(srcSize) (((size_t)(srcSize) >= ZSTD_MAX_INPUT_SIZE) ? 0 : (srcSize) + ((srcSize)>>8) + (((srcSize) < (128<<10)) ? (((128<<10) - (srcSize)) >> 11) /* margin, from 64 to 0 */ : 0)) /* this formula ensures that bound(A) + bound(B) <= bound(A+B) as long as A and B >= 128 KB */ +ZSTDLIB_API size_t ZSTD_compressBound(size_t srcSize); /*!< maximum compressed size in worst case single-pass scenario */ +/* ZSTD_isError() : + * Most ZSTD_* functions returning a size_t value can be tested for error, + * using ZSTD_isError(). + * @return 1 if error, 0 otherwise + */ ZSTDLIB_API unsigned ZSTD_isError(size_t code); /*!< tells if a `size_t` function result is an error code */ ZSTDLIB_API const char* ZSTD_getErrorName(size_t code); /*!< provides readable string from an error code */ -ZSTDLIB_API int ZSTD_minCLevel(void); /*!< minimum negative compression level allowed */ +ZSTDLIB_API int ZSTD_minCLevel(void); /*!< minimum negative compression level allowed, requires v1.4.0+ */ ZSTDLIB_API int ZSTD_maxCLevel(void); /*!< maximum compression level available */ +ZSTDLIB_API int ZSTD_defaultCLevel(void); /*!< default compression level, specified by ZSTD_CLEVEL_DEFAULT, requires v1.5.0+ */ /*************************************** @@ -182,7 +252,7 @@ ZSTDLIB_API int ZSTD_maxCLevel(void); /*!< maximum compres /*= Compression context * When compressing many times, * it is recommended to allocate a context just once, - * and re-use it for each successive compression operation. + * and reuse it for each successive compression operation. * This will make workload friendlier for system's memory. * Note : re-using context is just a speed / resource optimization. * It doesn't change the compression ratio, which remains identical. @@ -191,13 +261,13 @@ ZSTDLIB_API int ZSTD_maxCLevel(void); /*!< maximum compres */ typedef struct ZSTD_CCtx_s ZSTD_CCtx; ZSTDLIB_API ZSTD_CCtx* ZSTD_createCCtx(void); -ZSTDLIB_API size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx); +ZSTDLIB_API size_t ZSTD_freeCCtx(ZSTD_CCtx* cctx); /* accept NULL pointer */ /*! ZSTD_compressCCtx() : * Same as ZSTD_compress(), using an explicit ZSTD_CCtx. - * Important : in order to behave similarly to `ZSTD_compress()`, - * this function compresses at requested compression level, - * __ignoring any other parameter__ . + * Important : in order to mirror `ZSTD_compress()` behavior, + * this function compresses at the requested compression level, + * __ignoring any other advanced parameter__ . * If any advanced parameter was set using the advanced API, * they will all be reset. Only `compressionLevel` remains. */ @@ -209,38 +279,38 @@ ZSTDLIB_API size_t ZSTD_compressCCtx(ZSTD_CCtx* cctx, /*= Decompression context * When decompressing many times, * it is recommended to allocate a context only once, - * and re-use it for each successive compression operation. + * and reuse it for each successive compression operation. * This will make workload friendlier for system's memory. * Use one context per thread for parallel execution. */ typedef struct ZSTD_DCtx_s ZSTD_DCtx; ZSTDLIB_API ZSTD_DCtx* ZSTD_createDCtx(void); -ZSTDLIB_API size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx); +ZSTDLIB_API size_t ZSTD_freeDCtx(ZSTD_DCtx* dctx); /* accept NULL pointer */ /*! ZSTD_decompressDCtx() : * Same as ZSTD_decompress(), * requires an allocated ZSTD_DCtx. - * Compatible with sticky parameters. + * Compatible with sticky parameters (see below). */ ZSTDLIB_API size_t ZSTD_decompressDCtx(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); -/*************************************** -* Advanced compression API -***************************************/ +/********************************************* +* Advanced compression API (Requires v1.4.0+) +**********************************************/ /* API design : * Parameters are pushed one by one into an existing context, * using ZSTD_CCtx_set*() functions. * Pushed parameters are sticky : they are valid for next compressed frame, and any subsequent frame. * "sticky" parameters are applicable to `ZSTD_compress2()` and `ZSTD_compressStream*()` ! - * __They do not apply to "simple" one-shot variants such as ZSTD_compressCCtx()__ . + * __They do not apply to one-shot variants such as ZSTD_compressCCtx()__ . * * It's possible to reset all parameters to "default" using ZSTD_CCtx_reset(). * - * This API supercedes all other "advanced" API entry points in the experimental section. - * In the future, we expect to remove from experimental API entry points which are redundant with this API. + * This API supersedes all other "advanced" API entry points in the experimental section. + * In the future, we expect to remove API entry points from experimental which are redundant with this API. */ @@ -258,7 +328,6 @@ typedef enum { ZSTD_fast=1, Only the order (from fast to strong) is guaranteed */ } ZSTD_strategy; - typedef enum { /* compression parameters @@ -325,13 +394,27 @@ typedef enum { * resulting in stronger and slower compression. * Special: value 0 means "use default strategy". */ + ZSTD_c_targetCBlockSize=130, /* v1.5.6+ + * Attempts to fit compressed block size into approximatively targetCBlockSize. + * Bound by ZSTD_TARGETCBLOCKSIZE_MIN and ZSTD_TARGETCBLOCKSIZE_MAX. + * Note that it's not a guarantee, just a convergence target (default:0). + * No target when targetCBlockSize == 0. + * This is helpful in low bandwidth streaming environments to improve end-to-end latency, + * when a client can make use of partial documents (a prominent example being Chrome). + * Note: this parameter is stable since v1.5.6. + * It was present as an experimental parameter in earlier versions, + * but it's not recommended using it with earlier library versions + * due to massive performance regressions. + */ /* LDM mode parameters */ ZSTD_c_enableLongDistanceMatching=160, /* Enable long distance matching. * This parameter is designed to improve compression ratio * for large inputs, by finding large matches at long distance. * It increases memory usage and window size. * Note: enabling this parameter increases default ZSTD_c_windowLog to 128 MB - * except when expressly set to a different value. */ + * except when expressly set to a different value. + * Note: will be enabled by default if ZSTD_c_windowLog >= 128 MB and + * compression strategy >= ZSTD_btopt (== compression level 16+) */ ZSTD_c_ldmHashLog=161, /* Size of the table for long distance matching, as a power of 2. * Larger values increase memory usage and compression ratio, * but decrease compression speed. @@ -362,20 +445,24 @@ typedef enum { ZSTD_c_dictIDFlag=202, /* When applicable, dictionary's ID is written into frame header (default:1) */ /* multi-threading parameters */ - /* These parameters are only useful if multi-threading is enabled (compiled with build macro ZSTD_MULTITHREAD). - * They return an error otherwise. */ + /* These parameters are only active if multi-threading is enabled (compiled with build macro ZSTD_MULTITHREAD). + * Otherwise, trying to set any other value than default (0) will be a no-op and return an error. + * In a situation where it's unknown if the linked library supports multi-threading or not, + * setting ZSTD_c_nbWorkers to any value >= 1 and consulting the return value provides a quick way to check this property. + */ ZSTD_c_nbWorkers=400, /* Select how many threads will be spawned to compress in parallel. - * When nbWorkers >= 1, triggers asynchronous mode when used with ZSTD_compressStream*() : + * When nbWorkers >= 1, triggers asynchronous mode when invoking ZSTD_compressStream*() : * ZSTD_compressStream*() consumes input and flush output if possible, but immediately gives back control to caller, - * while compression work is performed in parallel, within worker threads. + * while compression is performed in parallel, within worker thread(s). * (note : a strong exception to this rule is when first invocation of ZSTD_compressStream2() sets ZSTD_e_end : * in which case, ZSTD_compressStream2() delegates to ZSTD_compress2(), which is always a blocking call). * More workers improve speed, but also increase memory usage. - * Default value is `0`, aka "single-threaded mode" : no worker is spawned, compression is performed inside Caller's thread, all invocations are blocking */ + * Default value is `0`, aka "single-threaded mode" : no worker is spawned, + * compression is performed inside Caller's thread, and all invocations are blocking */ ZSTD_c_jobSize=401, /* Size of a compression job. This value is enforced only when nbWorkers >= 1. * Each compression job is completed in parallel, so this value can indirectly impact the nb of active threads. * 0 means default, which is dynamically determined based on compression parameters. - * Job size must be a minimum of overlap size, or 1 MB, whichever is largest. + * Job size must be a minimum of overlap size, or ZSTDMT_JOBSIZE_MIN (= 512 KB), whichever is largest. * The minimum size is automatically and transparently enforced. */ ZSTD_c_overlapLog=402, /* Control the overlap size, as a fraction of window size. * The overlap size is an amount of data reloaded from previous job at the beginning of a new job. @@ -398,8 +485,17 @@ typedef enum { * ZSTD_c_forceMaxWindow * ZSTD_c_forceAttachDict * ZSTD_c_literalCompressionMode - * ZSTD_c_targetCBlockSize * ZSTD_c_srcSizeHint + * ZSTD_c_enableDedicatedDictSearch + * ZSTD_c_stableInBuffer + * ZSTD_c_stableOutBuffer + * ZSTD_c_blockDelimiters + * ZSTD_c_validateSequences + * ZSTD_c_useBlockSplitter + * ZSTD_c_useRowMatchFinder + * ZSTD_c_prefetchCDictTables + * ZSTD_c_enableSeqProducerFallback + * ZSTD_c_maxBlockSize * Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them. * note : never ever use experimentalParam? names directly; * also, the enums values themselves are unstable and can still change. @@ -409,8 +505,20 @@ typedef enum { ZSTD_c_experimentalParam3=1000, ZSTD_c_experimentalParam4=1001, ZSTD_c_experimentalParam5=1002, - ZSTD_c_experimentalParam6=1003, - ZSTD_c_experimentalParam7=1004 + /* was ZSTD_c_experimentalParam6=1003; is now ZSTD_c_targetCBlockSize */ + ZSTD_c_experimentalParam7=1004, + ZSTD_c_experimentalParam8=1005, + ZSTD_c_experimentalParam9=1006, + ZSTD_c_experimentalParam10=1007, + ZSTD_c_experimentalParam11=1008, + ZSTD_c_experimentalParam12=1009, + ZSTD_c_experimentalParam13=1010, + ZSTD_c_experimentalParam14=1011, + ZSTD_c_experimentalParam15=1012, + ZSTD_c_experimentalParam16=1013, + ZSTD_c_experimentalParam17=1014, + ZSTD_c_experimentalParam18=1015, + ZSTD_c_experimentalParam19=1016 } ZSTD_cParameter; typedef struct { @@ -473,7 +581,7 @@ typedef enum { * They will be used to compress next frame. * Resetting session never fails. * - The parameters : changes all parameters back to "default". - * This removes any reference to any dictionary too. + * This also removes any reference to any dictionary or external sequence producer. * Parameters can only be changed between 2 sessions (i.e. no compression is currently ongoing) * otherwise the reset fails, and function returns an error value (which can be tested using ZSTD_isError()) * - Both : similar to resetting the session, followed by resetting parameters. @@ -482,11 +590,13 @@ ZSTDLIB_API size_t ZSTD_CCtx_reset(ZSTD_CCtx* cctx, ZSTD_ResetDirective reset); /*! ZSTD_compress2() : * Behave the same as ZSTD_compressCCtx(), but compression parameters are set using the advanced API. + * (note that this entry point doesn't even expose a compression level parameter). * ZSTD_compress2() always starts a new frame. * Should cctx hold data from a previously unfinished frame, everything about it is forgotten. * - Compression parameters are pushed into CCtx before starting compression, using ZSTD_CCtx_set*() * - The function is always blocking, returns when compression is completed. - * Hint : compression runs faster if `dstCapacity` >= `ZSTD_compressBound(srcSize)`. + * NOTE: Providing `dstCapacity >= ZSTD_compressBound(srcSize)` guarantees that zstd will have + * enough space to successfully compress the data, though it is possible it fails for other reasons. * @return : compressed size written into `dst` (<= `dstCapacity), * or an error code if it fails (which can be tested using ZSTD_isError()). */ @@ -495,9 +605,9 @@ ZSTDLIB_API size_t ZSTD_compress2( ZSTD_CCtx* cctx, const void* src, size_t srcSize); -/*************************************** -* Advanced decompression API -***************************************/ +/*********************************************** +* Advanced decompression API (Requires v1.4.0+) +************************************************/ /* The advanced API pushes parameters one by one into an existing DCtx context. * Parameters are sticky, and remain valid for all following frames @@ -521,11 +631,19 @@ typedef enum { * At the time of this writing, they include : * ZSTD_d_format * ZSTD_d_stableOutBuffer + * ZSTD_d_forceIgnoreChecksum + * ZSTD_d_refMultipleDDicts + * ZSTD_d_disableHuffmanAssembly + * ZSTD_d_maxBlockSize * Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them. * note : never ever use experimentalParam? names directly */ ZSTD_d_experimentalParam1=1000, - ZSTD_d_experimentalParam2=1001 + ZSTD_d_experimentalParam2=1001, + ZSTD_d_experimentalParam3=1002, + ZSTD_d_experimentalParam4=1003, + ZSTD_d_experimentalParam5=1004, + ZSTD_d_experimentalParam6=1005 } ZSTD_dParameter; @@ -580,14 +698,14 @@ typedef struct ZSTD_outBuffer_s { * A ZSTD_CStream object is required to track streaming operation. * Use ZSTD_createCStream() and ZSTD_freeCStream() to create/release resources. * ZSTD_CStream objects can be reused multiple times on consecutive compression operations. -* It is recommended to re-use ZSTD_CStream since it will play nicer with system's memory, by re-using already allocated memory. +* It is recommended to reuse ZSTD_CStream since it will play nicer with system's memory, by re-using already allocated memory. * * For parallel execution, use one separate ZSTD_CStream per thread. * * note : since v1.3.0, ZSTD_CStream and ZSTD_CCtx are the same thing. * * Parameters are sticky : when starting a new compression on the same context, -* it will re-use the same sticky parameters as previous compression session. +* it will reuse the same sticky parameters as previous compression session. * When in doubt, it's recommended to fully initialize the context before usage. * Use ZSTD_CCtx_reset() to reset the context and ZSTD_CCtx_setParameter(), * ZSTD_CCtx_setPledgedSrcSize(), or ZSTD_CCtx_loadDictionary() and friends to @@ -639,7 +757,7 @@ typedef ZSTD_CCtx ZSTD_CStream; /**< CCtx and CStream are now effectively same /* Continue to distinguish them for compatibility with older versions <= v1.2.0 */ /*===== ZSTD_CStream management functions =====*/ ZSTDLIB_API ZSTD_CStream* ZSTD_createCStream(void); -ZSTDLIB_API size_t ZSTD_freeCStream(ZSTD_CStream* zcs); +ZSTDLIB_API size_t ZSTD_freeCStream(ZSTD_CStream* zcs); /* accept NULL pointer */ /*===== Streaming compression functions =====*/ typedef enum { @@ -655,14 +773,15 @@ typedef enum { : note : multithreaded compression will block to flush as much output as possible. */ } ZSTD_EndDirective; -/*! ZSTD_compressStream2() : +/*! ZSTD_compressStream2() : Requires v1.4.0+ * Behaves about the same as ZSTD_compressStream, with additional control on end directive. * - Compression parameters are pushed into CCtx before starting compression, using ZSTD_CCtx_set*() * - Compression parameters cannot be changed once compression is started (save a list of exceptions in multi-threading mode) * - output->pos must be <= dstCapacity, input->pos must be <= srcSize * - output->pos and input->pos will be updated. They are guaranteed to remain below their respective limit. + * - endOp must be a valid directive * - When nbWorkers==0 (default), function is blocking : it completes its job before returning to caller. - * - When nbWorkers>=1, function is non-blocking : it just acquires a copy of input, and distributes jobs to internal worker threads, flush whatever is available, + * - When nbWorkers>=1, function is non-blocking : it copies a portion of input, distributes jobs to internal worker threads, flush to output whatever is available, * and then immediately returns, just indicating that there is some data remaining to be flushed. * The function nonetheless guarantees forward progress : it will return only after it reads or write at least 1+ byte. * - Exception : if the first call requests a ZSTD_e_end directive and provides enough dstCapacity, the function delegates to ZSTD_compress2() which is always blocking. @@ -675,6 +794,11 @@ typedef enum { * only ZSTD_e_end or ZSTD_e_flush operations are allowed. * Before starting a new compression job, or changing compression parameters, * it is required to fully flush internal buffers. + * - note: if an operation ends with an error, it may leave @cctx in an undefined state. + * Therefore, it's UB to invoke ZSTD_compressStream2() of ZSTD_compressStream() on such a state. + * In order to be re-employed after an error, a state must be reset, + * which can be done explicitly (ZSTD_CCtx_reset()), + * or is sometimes implied by methods starting a new compression job (ZSTD_initCStream(), ZSTD_compressCCtx()) */ ZSTDLIB_API size_t ZSTD_compressStream2( ZSTD_CCtx* cctx, ZSTD_outBuffer* output, @@ -700,11 +824,9 @@ ZSTDLIB_API size_t ZSTD_CStreamOutSize(void); /**< recommended size for output /* ***************************************************************************** - * This following is a legacy streaming API. + * This following is a legacy streaming API, available since v1.0+ . * It can be replaced by ZSTD_CCtx_reset() and ZSTD_compressStream2(). * It is redundant, but remains fully supported. - * Advanced parameters and dictionary compression can only be used through the - * new API. ******************************************************************************/ /*! @@ -713,6 +835,9 @@ ZSTDLIB_API size_t ZSTD_CStreamOutSize(void); /**< recommended size for output * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); * ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any) * ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); + * + * Note that ZSTD_initCStream() clears any previously set dictionary. Use the new API + * to compress with a dictionary. */ ZSTDLIB_API size_t ZSTD_initCStream(ZSTD_CStream* zcs, int compressionLevel); /*! @@ -733,7 +858,7 @@ ZSTDLIB_API size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output); * * A ZSTD_DStream object is required to track streaming operations. * Use ZSTD_createDStream() and ZSTD_freeDStream() to create/release resources. -* ZSTD_DStream objects can be re-used multiple times. +* ZSTD_DStream objects can be reused multiple times. * * Use ZSTD_initDStream() to start a new decompression operation. * @return : recommended first input size @@ -759,17 +884,41 @@ typedef ZSTD_DCtx ZSTD_DStream; /**< DCtx and DStream are now effectively same /* For compatibility with versions <= v1.2.0, prefer differentiating them. */ /*===== ZSTD_DStream management functions =====*/ ZSTDLIB_API ZSTD_DStream* ZSTD_createDStream(void); -ZSTDLIB_API size_t ZSTD_freeDStream(ZSTD_DStream* zds); +ZSTDLIB_API size_t ZSTD_freeDStream(ZSTD_DStream* zds); /* accept NULL pointer */ /*===== Streaming decompression functions =====*/ -/* This function is redundant with the advanced API and equivalent to: +/*! ZSTD_initDStream() : + * Initialize/reset DStream state for new decompression operation. + * Call before new decompression operation using same DStream. * + * Note : This function is redundant with the advanced API and equivalent to: * ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); * ZSTD_DCtx_refDDict(zds, NULL); */ ZSTDLIB_API size_t ZSTD_initDStream(ZSTD_DStream* zds); +/*! ZSTD_decompressStream() : + * Streaming decompression function. + * Call repetitively to consume full input updating it as necessary. + * Function will update both input and output `pos` fields exposing current state via these fields: + * - `input.pos < input.size`, some input remaining and caller should provide remaining input + * on the next call. + * - `output.pos < output.size`, decoder finished and flushed all remaining buffers. + * - `output.pos == output.size`, potentially uncflushed data present in the internal buffers, + * call ZSTD_decompressStream() again to flush remaining data to output. + * Note : with no additional input, amount of data flushed <= ZSTD_BLOCKSIZE_MAX. + * + * @return : 0 when a frame is completely decoded and fully flushed, + * or an error code, which can be tested using ZSTD_isError(), + * or any other value > 0, which means there is some decoding or flushing to do to complete current frame. + * + * Note: when an operation returns with an error code, the @zds state may be left in undefined state. + * It's UB to invoke `ZSTD_decompressStream()` on such a state. + * In order to re-use such a state, it must be first reset, + * which can be done explicitly (`ZSTD_DCtx_reset()`), + * or is implied for operations starting some new decompression job (`ZSTD_initDStream`, `ZSTD_decompressDCtx()`, `ZSTD_decompress_usingDict()`) + */ ZSTDLIB_API size_t ZSTD_decompressStream(ZSTD_DStream* zds, ZSTD_outBuffer* output, ZSTD_inBuffer* input); ZSTDLIB_API size_t ZSTD_DStreamInSize(void); /*!< recommended size for input buffer */ @@ -782,7 +931,7 @@ ZSTDLIB_API size_t ZSTD_DStreamOutSize(void); /*!< recommended size for output /*! ZSTD_compress_usingDict() : * Compression at an explicit compression level using a Dictionary. * A dictionary can be any arbitrary data segment (also called a prefix), - * or a buffer with specified information (see dict/zdict.h). + * or a buffer with specified information (see zdict.h). * Note : This function loads the dictionary, resulting in significant startup delay. * It's intended for a dictionary used only once. * Note 2 : When `dict == NULL || dictSize < 8` no dictionary is used. */ @@ -825,7 +974,8 @@ ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict(const void* dictBuffer, size_t dictSize int compressionLevel); /*! ZSTD_freeCDict() : - * Function frees memory allocated by ZSTD_createCDict(). */ + * Function frees memory allocated by ZSTD_createCDict(). + * If a NULL pointer is passed, no operation is performed. */ ZSTDLIB_API size_t ZSTD_freeCDict(ZSTD_CDict* CDict); /*! ZSTD_compress_usingCDict() : @@ -847,7 +997,8 @@ typedef struct ZSTD_DDict_s ZSTD_DDict; ZSTDLIB_API ZSTD_DDict* ZSTD_createDDict(const void* dictBuffer, size_t dictSize); /*! ZSTD_freeDDict() : - * Function frees memory allocated with ZSTD_createDDict() */ + * Function frees memory allocated with ZSTD_createDDict() + * If a NULL pointer is passed, no operation is performed. */ ZSTDLIB_API size_t ZSTD_freeDDict(ZSTD_DDict* ddict); /*! ZSTD_decompress_usingDDict() : @@ -863,24 +1014,30 @@ ZSTDLIB_API size_t ZSTD_decompress_usingDDict(ZSTD_DCtx* dctx, * Dictionary helper functions *******************************/ -/*! ZSTD_getDictID_fromDict() : +/*! ZSTD_getDictID_fromDict() : Requires v1.4.0+ * Provides the dictID stored within dictionary. * if @return == 0, the dictionary is not conformant with Zstandard specification. * It can still be loaded, but as a content-only dictionary. */ ZSTDLIB_API unsigned ZSTD_getDictID_fromDict(const void* dict, size_t dictSize); -/*! ZSTD_getDictID_fromDDict() : +/*! ZSTD_getDictID_fromCDict() : Requires v1.5.0+ + * Provides the dictID of the dictionary loaded into `cdict`. + * If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. + * Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */ +ZSTDLIB_API unsigned ZSTD_getDictID_fromCDict(const ZSTD_CDict* cdict); + +/*! ZSTD_getDictID_fromDDict() : Requires v1.4.0+ * Provides the dictID of the dictionary loaded into `ddict`. * If @return == 0, the dictionary is not conformant to Zstandard specification, or empty. * Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */ ZSTDLIB_API unsigned ZSTD_getDictID_fromDDict(const ZSTD_DDict* ddict); -/*! ZSTD_getDictID_fromFrame() : +/*! ZSTD_getDictID_fromFrame() : Requires v1.4.0+ * Provides the dictID required to decompressed the frame stored within `src`. * If @return == 0, the dictID could not be decoded. * This could for one of the following reasons : * - The frame does not require a dictionary to be decoded (most common case). - * - The frame was built with dictID intentionally removed. Whatever dictionary is necessary is a hidden information. + * - The frame was built with dictID intentionally removed. Whatever dictionary is necessary is a hidden piece of information. * Note : this use case also happens when using a non-conformant dictionary. * - `srcSize` is too small, and as a result, the frame header could not be decoded (only possible if `srcSize < ZSTD_FRAMEHEADERSIZE_MAX`). * - This is not a Zstandard frame. @@ -889,23 +1046,26 @@ ZSTDLIB_API unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize); /******************************************************************************* - * Advanced dictionary and prefix API + * Advanced dictionary and prefix API (Requires v1.4.0+) * * This API allows dictionaries to be used with ZSTD_compress2(), - * ZSTD_compressStream2(), and ZSTD_decompress(). Dictionaries are sticky, and - * only reset with the context is reset with ZSTD_reset_parameters or - * ZSTD_reset_session_and_parameters. Prefixes are single-use. + * ZSTD_compressStream2(), and ZSTD_decompressDCtx(). + * Dictionaries are sticky, they remain valid when same context is reused, + * they only reset when the context is reset + * with ZSTD_reset_parameters or ZSTD_reset_session_and_parameters. + * In contrast, Prefixes are single-use. ******************************************************************************/ -/*! ZSTD_CCtx_loadDictionary() : +/*! ZSTD_CCtx_loadDictionary() : Requires v1.4.0+ * Create an internal CDict from `dict` buffer. * Decompression will have to use same dictionary. * @result : 0, or an error code (which can be tested with ZSTD_isError()). * Special: Loading a NULL (or 0-size) dictionary invalidates previous dictionary, * meaning "return to no-dictionary mode". - * Note 1 : Dictionary is sticky, it will be used for all future compressed frames. - * To return to "no-dictionary" situation, load a NULL dictionary (or reset parameters). + * Note 1 : Dictionary is sticky, it will be used for all future compressed frames, + * until parameters are reset, a new dictionary is loaded, or the dictionary + * is explicitly invalidated by loading a NULL dictionary. * Note 2 : Loading a dictionary involves building tables. * It's also a CPU consuming operation, with non-negligible impact on latency. * Tables are dependent on compression parameters, and for this reason, @@ -914,14 +1074,18 @@ ZSTDLIB_API unsigned ZSTD_getDictID_fromFrame(const void* src, size_t srcSize); * Use experimental ZSTD_CCtx_loadDictionary_byReference() to reference content instead. * In such a case, dictionary buffer must outlive its users. * Note 4 : Use ZSTD_CCtx_loadDictionary_advanced() - * to precisely select how dictionary content must be interpreted. */ + * to precisely select how dictionary content must be interpreted. + * Note 5 : This method does not benefit from LDM (long distance mode). + * If you want to employ LDM on some large dictionary content, + * prefer employing ZSTD_CCtx_refPrefix() described below. + */ ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, size_t dictSize); -/*! ZSTD_CCtx_refCDict() : - * Reference a prepared dictionary, to be used for all next compressed frames. +/*! ZSTD_CCtx_refCDict() : Requires v1.4.0+ + * Reference a prepared dictionary, to be used for all future compressed frames. * Note that compression parameters are enforced from within CDict, * and supersede any compression parameter previously set within CCtx. - * The parameters ignored are labled as "superseded-by-cdict" in the ZSTD_cParameter enum docs. + * The parameters ignored are labelled as "superseded-by-cdict" in the ZSTD_cParameter enum docs. * The ignored parameters will be used again if the CCtx is returned to no-dictionary mode. * The dictionary will remain valid for future compressed frames using same CCtx. * @result : 0, or an error code (which can be tested with ZSTD_isError()). @@ -931,12 +1095,13 @@ ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary(ZSTD_CCtx* cctx, const void* dict, s * Note 2 : CDict is just referenced, its lifetime must outlive its usage within CCtx. */ ZSTDLIB_API size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict); -/*! ZSTD_CCtx_refPrefix() : +/*! ZSTD_CCtx_refPrefix() : Requires v1.4.0+ * Reference a prefix (single-usage dictionary) for next compressed frame. * A prefix is **only used once**. Tables are discarded at end of frame (ZSTD_e_end). * Decompression will need same prefix to properly regenerate data. * Compressing with a prefix is similar in outcome as performing a diff and compressing it, * but performs much faster, especially during decompression (compression speed is tunable with compression level). + * This method is compatible with LDM (long distance mode). * @result : 0, or an error code (which can be tested with ZSTD_isError()). * Special: Adding any prefix (including NULL) invalidates any previous prefix or dictionary * Note 1 : Prefix buffer is referenced. It **must** outlive compression. @@ -952,10 +1117,10 @@ ZSTDLIB_API size_t ZSTD_CCtx_refCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict); ZSTDLIB_API size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize); -/*! ZSTD_DCtx_loadDictionary() : - * Create an internal DDict from dict buffer, - * to be used to decompress next frames. - * The dictionary remains valid for all future frames, until explicitly invalidated. +/*! ZSTD_DCtx_loadDictionary() : Requires v1.4.0+ + * Create an internal DDict from dict buffer, to be used to decompress all future frames. + * The dictionary remains valid for all future frames, until explicitly invalidated, or + * a new dictionary is loaded. * @result : 0, or an error code (which can be tested with ZSTD_isError()). * Special : Adding a NULL (or 0-size) dictionary invalidates any previous dictionary, * meaning "return to no-dictionary mode". @@ -969,18 +1134,26 @@ ZSTDLIB_API size_t ZSTD_CCtx_refPrefix(ZSTD_CCtx* cctx, */ ZSTDLIB_API size_t ZSTD_DCtx_loadDictionary(ZSTD_DCtx* dctx, const void* dict, size_t dictSize); -/*! ZSTD_DCtx_refDDict() : +/*! ZSTD_DCtx_refDDict() : Requires v1.4.0+ * Reference a prepared dictionary, to be used to decompress next frames. * The dictionary remains active for decompression of future frames using same DCtx. + * + * If called with ZSTD_d_refMultipleDDicts enabled, repeated calls of this function + * will store the DDict references in a table, and the DDict used for decompression + * will be determined at decompression time, as per the dict ID in the frame. + * The memory for the table is allocated on the first call to refDDict, and can be + * freed with ZSTD_freeDCtx(). + * + * If called with ZSTD_d_refMultipleDDicts disabled (the default), only one dictionary + * will be managed, and referencing a dictionary effectively "discards" any previous one. + * * @result : 0, or an error code (which can be tested with ZSTD_isError()). - * Note 1 : Currently, only one dictionary can be managed. - * Referencing a new dictionary effectively "discards" any previous one. * Special: referencing a NULL DDict means "return to no-dictionary mode". * Note 2 : DDict is just referenced, its lifetime must outlive its usage from DCtx. */ ZSTDLIB_API size_t ZSTD_DCtx_refDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict); -/*! ZSTD_DCtx_refPrefix() : +/*! ZSTD_DCtx_refPrefix() : Requires v1.4.0+ * Reference a prefix (single-usage dictionary) to decompress next frame. * This is the reverse operation of ZSTD_CCtx_refPrefix(), * and must use the same prefix as the one used during compression. @@ -1001,7 +1174,7 @@ ZSTDLIB_API size_t ZSTD_DCtx_refPrefix(ZSTD_DCtx* dctx, /* === Memory management === */ -/*! ZSTD_sizeof_*() : +/*! ZSTD_sizeof_*() : Requires v1.4.0+ * These functions give the _current_ memory usage of selected object. * Note that object memory usage can evolve (increase or decrease) over time. */ ZSTDLIB_API size_t ZSTD_sizeof_CCtx(const ZSTD_CCtx* cctx); @@ -1011,5 +1184,1910 @@ ZSTDLIB_API size_t ZSTD_sizeof_DStream(const ZSTD_DStream* zds); ZSTDLIB_API size_t ZSTD_sizeof_CDict(const ZSTD_CDict* cdict); ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict); -} +} // namespace duckdb_zstd + #endif /* ZSTD_H_235446 */ + +namespace duckdb_zstd { + +/* ************************************************************************************** + * ADVANCED AND EXPERIMENTAL FUNCTIONS + **************************************************************************************** + * The definitions in the following section are considered experimental. + * They are provided for advanced scenarios. + * They should never be used with a dynamic library, as prototypes may change in the future. + * Use them only in association with static linking. + * ***************************************************************************************/ + +#if defined(ZSTD_STATIC_LINKING_ONLY) && !defined(ZSTD_H_ZSTD_STATIC_LINKING_ONLY) +#define ZSTD_H_ZSTD_STATIC_LINKING_ONLY + +/* This can be overridden externally to hide static symbols. */ +#ifndef ZSTDLIB_STATIC_API +# if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1) +# define ZSTDLIB_STATIC_API __declspec(dllexport) ZSTDLIB_VISIBLE +# elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1) +# define ZSTDLIB_STATIC_API __declspec(dllimport) ZSTDLIB_VISIBLE +# else +# define ZSTDLIB_STATIC_API ZSTDLIB_VISIBLE +# endif +#endif + +/**************************************************************************************** + * experimental API (static linking only) + **************************************************************************************** + * The following symbols and constants + * are not planned to join "stable API" status in the near future. + * They can still change in future versions. + * Some of them are planned to remain in the static_only section indefinitely. + * Some of them might be removed in the future (especially when redundant with existing stable functions) + * ***************************************************************************************/ + +#define ZSTD_FRAMEHEADERSIZE_PREFIX(format) ((format) == ZSTD_f_zstd1 ? 5 : 1) /* minimum input size required to query frame header size */ +#define ZSTD_FRAMEHEADERSIZE_MIN(format) ((format) == ZSTD_f_zstd1 ? 6 : 2) +#define ZSTD_FRAMEHEADERSIZE_MAX 18 /* can be useful for static allocation */ +#define ZSTD_SKIPPABLEHEADERSIZE 8 + +/* compression parameter bounds */ +#define ZSTD_WINDOWLOG_MAX_32 30 +#define ZSTD_WINDOWLOG_MAX_64 31 +#define ZSTD_WINDOWLOG_MAX ((int)(sizeof(size_t) == 4 ? ZSTD_WINDOWLOG_MAX_32 : ZSTD_WINDOWLOG_MAX_64)) +#define ZSTD_WINDOWLOG_MIN 10 +#define ZSTD_HASHLOG_MAX ((ZSTD_WINDOWLOG_MAX < 30) ? ZSTD_WINDOWLOG_MAX : 30) +#define ZSTD_HASHLOG_MIN 6 +#define ZSTD_CHAINLOG_MAX_32 29 +#define ZSTD_CHAINLOG_MAX_64 30 +#define ZSTD_CHAINLOG_MAX ((int)(sizeof(size_t) == 4 ? ZSTD_CHAINLOG_MAX_32 : ZSTD_CHAINLOG_MAX_64)) +#define ZSTD_CHAINLOG_MIN ZSTD_HASHLOG_MIN +#define ZSTD_SEARCHLOG_MAX (ZSTD_WINDOWLOG_MAX-1) +#define ZSTD_SEARCHLOG_MIN 1 +#define ZSTD_MINMATCH_MAX 7 /* only for ZSTD_fast, other strategies are limited to 6 */ +#define ZSTD_MINMATCH_MIN 3 /* only for ZSTD_btopt+, faster strategies are limited to 4 */ +#define ZSTD_TARGETLENGTH_MAX ZSTD_BLOCKSIZE_MAX +#define ZSTD_TARGETLENGTH_MIN 0 /* note : comparing this constant to an unsigned results in a tautological test */ +#define ZSTD_STRATEGY_MIN ZSTD_fast +#define ZSTD_STRATEGY_MAX ZSTD_btultra2 +#define ZSTD_BLOCKSIZE_MAX_MIN (1 << 10) /* The minimum valid max blocksize. Maximum blocksizes smaller than this make compressBound() inaccurate. */ + + +#define ZSTD_OVERLAPLOG_MIN 0 +#define ZSTD_OVERLAPLOG_MAX 9 + +#define ZSTD_WINDOWLOG_LIMIT_DEFAULT 27 /* by default, the streaming decoder will refuse any frame */ + /* requiring larger than (1< 0: + * If litLength != 0: + * rep == 1 --> offset == repeat_offset_1 + * rep == 2 --> offset == repeat_offset_2 + * rep == 3 --> offset == repeat_offset_3 + * If litLength == 0: + * rep == 1 --> offset == repeat_offset_2 + * rep == 2 --> offset == repeat_offset_3 + * rep == 3 --> offset == repeat_offset_1 - 1 + * + * Note: This field is optional. ZSTD_generateSequences() will calculate the value of + * 'rep', but repeat offsets do not necessarily need to be calculated from an external + * sequence provider's perspective. For example, ZSTD_compressSequences() does not + * use this 'rep' field at all (as of now). + */ +} ZSTD_Sequence; + +typedef struct { + unsigned windowLog; /**< largest match distance : larger == more compression, more memory needed during decompression */ + unsigned chainLog; /**< fully searched segment : larger == more compression, slower, more memory (useless for fast) */ + unsigned hashLog; /**< dispatch table : larger == faster, more memory */ + unsigned searchLog; /**< nb of searches : larger == more compression, slower */ + unsigned minMatch; /**< match length searched : larger == faster decompression, sometimes less compression */ + unsigned targetLength; /**< acceptable match size for optimal parser (only) : larger == more compression, slower */ + ZSTD_strategy strategy; /**< see ZSTD_strategy definition above */ +} ZSTD_compressionParameters; + +typedef struct { + int contentSizeFlag; /**< 1: content size will be in frame header (when known) */ + int checksumFlag; /**< 1: generate a 32-bits checksum using XXH64 algorithm at end of frame, for error detection */ + int noDictIDFlag; /**< 1: no dictID will be saved into frame header (dictID is only useful for dictionary compression) */ +} ZSTD_frameParameters; + +typedef struct { + ZSTD_compressionParameters cParams; + ZSTD_frameParameters fParams; +} ZSTD_parameters; + +typedef enum { + ZSTD_dct_auto = 0, /* dictionary is "full" when starting with ZSTD_MAGIC_DICTIONARY, otherwise it is "rawContent" */ + ZSTD_dct_rawContent = 1, /* ensures dictionary is always loaded as rawContent, even if it starts with ZSTD_MAGIC_DICTIONARY */ + ZSTD_dct_fullDict = 2 /* refuses to load a dictionary if it does not respect Zstandard's specification, starting with ZSTD_MAGIC_DICTIONARY */ +} ZSTD_dictContentType_e; + +typedef enum { + ZSTD_dlm_byCopy = 0, /**< Copy dictionary content internally */ + ZSTD_dlm_byRef = 1 /**< Reference dictionary content -- the dictionary buffer must outlive its users. */ +} ZSTD_dictLoadMethod_e; + +typedef enum { + ZSTD_f_zstd1 = 0, /* zstd frame format, specified in zstd_compression_format.md (default) */ + ZSTD_f_zstd1_magicless = 1 /* Variant of zstd frame format, without initial 4-bytes magic number. + * Useful to save 4 bytes per generated frame. + * Decoder cannot recognise automatically this format, requiring this instruction. */ +} ZSTD_format_e; + +typedef enum { + /* Note: this enum controls ZSTD_d_forceIgnoreChecksum */ + ZSTD_d_validateChecksum = 0, + ZSTD_d_ignoreChecksum = 1 +} ZSTD_forceIgnoreChecksum_e; + +typedef enum { + /* Note: this enum controls ZSTD_d_refMultipleDDicts */ + ZSTD_rmd_refSingleDDict = 0, + ZSTD_rmd_refMultipleDDicts = 1 +} ZSTD_refMultipleDDicts_e; + +typedef enum { + /* Note: this enum and the behavior it controls are effectively internal + * implementation details of the compressor. They are expected to continue + * to evolve and should be considered only in the context of extremely + * advanced performance tuning. + * + * Zstd currently supports the use of a CDict in three ways: + * + * - The contents of the CDict can be copied into the working context. This + * means that the compression can search both the dictionary and input + * while operating on a single set of internal tables. This makes + * the compression faster per-byte of input. However, the initial copy of + * the CDict's tables incurs a fixed cost at the beginning of the + * compression. For small compressions (< 8 KB), that copy can dominate + * the cost of the compression. + * + * - The CDict's tables can be used in-place. In this model, compression is + * slower per input byte, because the compressor has to search two sets of + * tables. However, this model incurs no start-up cost (as long as the + * working context's tables can be reused). For small inputs, this can be + * faster than copying the CDict's tables. + * + * - The CDict's tables are not used at all, and instead we use the working + * context alone to reload the dictionary and use params based on the source + * size. See ZSTD_compress_insertDictionary() and ZSTD_compress_usingDict(). + * This method is effective when the dictionary sizes are very small relative + * to the input size, and the input size is fairly large to begin with. + * + * Zstd has a simple internal heuristic that selects which strategy to use + * at the beginning of a compression. However, if experimentation shows that + * Zstd is making poor choices, it is possible to override that choice with + * this enum. + */ + ZSTD_dictDefaultAttach = 0, /* Use the default heuristic. */ + ZSTD_dictForceAttach = 1, /* Never copy the dictionary. */ + ZSTD_dictForceCopy = 2, /* Always copy the dictionary. */ + ZSTD_dictForceLoad = 3 /* Always reload the dictionary */ +} ZSTD_dictAttachPref_e; + +typedef enum { + ZSTD_lcm_auto = 0, /**< Automatically determine the compression mode based on the compression level. + * Negative compression levels will be uncompressed, and positive compression + * levels will be compressed. */ + ZSTD_lcm_huffman = 1, /**< Always attempt Huffman compression. Uncompressed literals will still be + * emitted if Huffman compression is not profitable. */ + ZSTD_lcm_uncompressed = 2 /**< Always emit uncompressed literals. */ +} ZSTD_literalCompressionMode_e; + +typedef enum { + /* Note: This enum controls features which are conditionally beneficial. Zstd typically will make a final + * decision on whether or not to enable the feature (ZSTD_ps_auto), but setting the switch to ZSTD_ps_enable + * or ZSTD_ps_disable allow for a force enable/disable the feature. + */ + ZSTD_ps_auto = 0, /* Let the library automatically determine whether the feature shall be enabled */ + ZSTD_ps_enable = 1, /* Force-enable the feature */ + ZSTD_ps_disable = 2 /* Do not use the feature */ +} ZSTD_paramSwitch_e; + +/*************************************** +* Frame header and size functions +***************************************/ + +/*! ZSTD_findDecompressedSize() : + * `src` should point to the start of a series of ZSTD encoded and/or skippable frames + * `srcSize` must be the _exact_ size of this series + * (i.e. there should be a frame boundary at `src + srcSize`) + * @return : - decompressed size of all data in all successive frames + * - if the decompressed size cannot be determined: ZSTD_CONTENTSIZE_UNKNOWN + * - if an error occurred: ZSTD_CONTENTSIZE_ERROR + * + * note 1 : decompressed size is an optional field, that may not be present, especially in streaming mode. + * When `return==ZSTD_CONTENTSIZE_UNKNOWN`, data to decompress could be any size. + * In which case, it's necessary to use streaming mode to decompress data. + * note 2 : decompressed size is always present when compression is done with ZSTD_compress() + * note 3 : decompressed size can be very large (64-bits value), + * potentially larger than what local system can handle as a single memory segment. + * In which case, it's necessary to use streaming mode to decompress data. + * note 4 : If source is untrusted, decompressed size could be wrong or intentionally modified. + * Always ensure result fits within application's authorized limits. + * Each application can set its own limits. + * note 5 : ZSTD_findDecompressedSize handles multiple frames, and so it must traverse the input to + * read each contained frame header. This is fast as most of the data is skipped, + * however it does mean that all frame data must be present and valid. */ +ZSTDLIB_STATIC_API unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize); + +/*! ZSTD_decompressBound() : + * `src` should point to the start of a series of ZSTD encoded and/or skippable frames + * `srcSize` must be the _exact_ size of this series + * (i.e. there should be a frame boundary at `src + srcSize`) + * @return : - upper-bound for the decompressed size of all data in all successive frames + * - if an error occurred: ZSTD_CONTENTSIZE_ERROR + * + * note 1 : an error can occur if `src` contains an invalid or incorrectly formatted frame. + * note 2 : the upper-bound is exact when the decompressed size field is available in every ZSTD encoded frame of `src`. + * in this case, `ZSTD_findDecompressedSize` and `ZSTD_decompressBound` return the same value. + * note 3 : when the decompressed size field isn't available, the upper-bound for that frame is calculated by: + * upper-bound = # blocks * min(128 KB, Window_Size) + */ +ZSTDLIB_STATIC_API unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize); + +/*! ZSTD_frameHeaderSize() : + * srcSize must be >= ZSTD_FRAMEHEADERSIZE_PREFIX. + * @return : size of the Frame Header, + * or an error code (if srcSize is too small) */ +ZSTDLIB_STATIC_API size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize); + +typedef enum { ZSTD_frame, ZSTD_skippableFrame } ZSTD_frameType_e; +typedef struct { + unsigned long long frameContentSize; /* if == ZSTD_CONTENTSIZE_UNKNOWN, it means this field is not available. 0 means "empty" */ + unsigned long long windowSize; /* can be very large, up to <= frameContentSize */ + unsigned blockSizeMax; + ZSTD_frameType_e frameType; /* if == ZSTD_skippableFrame, frameContentSize is the size of skippable content */ + unsigned headerSize; + unsigned dictID; + unsigned checksumFlag; + unsigned _reserved1; + unsigned _reserved2; +} ZSTD_frameHeader; + +/*! ZSTD_getFrameHeader() : + * decode Frame Header, or requires larger `srcSize`. + * @return : 0, `zfhPtr` is correctly filled, + * >0, `srcSize` is too small, value is wanted `srcSize` amount, + * or an error code, which can be tested using ZSTD_isError() */ +ZSTDLIB_STATIC_API size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize); /**< doesn't consume input */ +/*! ZSTD_getFrameHeader_advanced() : + * same as ZSTD_getFrameHeader(), + * with added capability to select a format (like ZSTD_f_zstd1_magicless) */ +ZSTDLIB_STATIC_API size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize, ZSTD_format_e format); + +/*! ZSTD_decompressionMargin() : + * Zstd supports in-place decompression, where the input and output buffers overlap. + * In this case, the output buffer must be at least (Margin + Output_Size) bytes large, + * and the input buffer must be at the end of the output buffer. + * + * _______________________ Output Buffer ________________________ + * | | + * | ____ Input Buffer ____| + * | | | + * v v v + * |---------------------------------------|-----------|----------| + * ^ ^ ^ + * |___________________ Output_Size ___________________|_ Margin _| + * + * NOTE: See also ZSTD_DECOMPRESSION_MARGIN(). + * NOTE: This applies only to single-pass decompression through ZSTD_decompress() or + * ZSTD_decompressDCtx(). + * NOTE: This function supports multi-frame input. + * + * @param src The compressed frame(s) + * @param srcSize The size of the compressed frame(s) + * @returns The decompression margin or an error that can be checked with ZSTD_isError(). + */ +ZSTDLIB_STATIC_API size_t ZSTD_decompressionMargin(const void* src, size_t srcSize); + +/*! ZSTD_DECOMPRESS_MARGIN() : + * Similar to ZSTD_decompressionMargin(), but instead of computing the margin from + * the compressed frame, compute it from the original size and the blockSizeLog. + * See ZSTD_decompressionMargin() for details. + * + * WARNING: This macro does not support multi-frame input, the input must be a single + * zstd frame. If you need that support use the function, or implement it yourself. + * + * @param originalSize The original uncompressed size of the data. + * @param blockSize The block size == MIN(windowSize, ZSTD_BLOCKSIZE_MAX). + * Unless you explicitly set the windowLog smaller than + * ZSTD_BLOCKSIZELOG_MAX you can just use ZSTD_BLOCKSIZE_MAX. + */ +#define ZSTD_DECOMPRESSION_MARGIN(originalSize, blockSize) ((size_t)( \ + ZSTD_FRAMEHEADERSIZE_MAX /* Frame header */ + \ + 4 /* checksum */ + \ + ((originalSize) == 0 ? 0 : 3 * (((originalSize) + (blockSize) - 1) / blockSize)) /* 3 bytes per block */ + \ + (blockSize) /* One block of margin */ \ + )) + +typedef enum { + ZSTD_sf_noBlockDelimiters = 0, /* Representation of ZSTD_Sequence has no block delimiters, sequences only */ + ZSTD_sf_explicitBlockDelimiters = 1 /* Representation of ZSTD_Sequence contains explicit block delimiters */ +} ZSTD_sequenceFormat_e; + +/*! ZSTD_sequenceBound() : + * `srcSize` : size of the input buffer + * @return : upper-bound for the number of sequences that can be generated + * from a buffer of srcSize bytes + * + * note : returns number of sequences - to get bytes, multiply by sizeof(ZSTD_Sequence). + */ +ZSTDLIB_STATIC_API size_t ZSTD_sequenceBound(size_t srcSize); + +/*! ZSTD_generateSequences() : + * WARNING: This function is meant for debugging and informational purposes ONLY! + * Its implementation is flawed, and it will be deleted in a future version. + * It is not guaranteed to succeed, as there are several cases where it will give + * up and fail. You should NOT use this function in production code. + * + * This function is deprecated, and will be removed in a future version. + * + * Generate sequences using ZSTD_compress2(), given a source buffer. + * + * @param zc The compression context to be used for ZSTD_compress2(). Set any + * compression parameters you need on this context. + * @param outSeqs The output sequences buffer of size @p outSeqsSize + * @param outSeqsSize The size of the output sequences buffer. + * ZSTD_sequenceBound(srcSize) is an upper bound on the number + * of sequences that can be generated. + * @param src The source buffer to generate sequences from of size @p srcSize. + * @param srcSize The size of the source buffer. + * + * Each block will end with a dummy sequence + * with offset == 0, matchLength == 0, and litLength == length of last literals. + * litLength may be == 0, and if so, then the sequence of (of: 0 ml: 0 ll: 0) + * simply acts as a block delimiter. + * + * @returns The number of sequences generated, necessarily less than + * ZSTD_sequenceBound(srcSize), or an error code that can be checked + * with ZSTD_isError(). + */ +ZSTD_DEPRECATED("For debugging only, will be replaced by ZSTD_extractSequences()") +ZSTDLIB_STATIC_API size_t +ZSTD_generateSequences(ZSTD_CCtx* zc, + ZSTD_Sequence* outSeqs, size_t outSeqsSize, + const void* src, size_t srcSize); + +/*! ZSTD_mergeBlockDelimiters() : + * Given an array of ZSTD_Sequence, remove all sequences that represent block delimiters/last literals + * by merging them into the literals of the next sequence. + * + * As such, the final generated result has no explicit representation of block boundaries, + * and the final last literals segment is not represented in the sequences. + * + * The output of this function can be fed into ZSTD_compressSequences() with CCtx + * setting of ZSTD_c_blockDelimiters as ZSTD_sf_noBlockDelimiters + * @return : number of sequences left after merging + */ +ZSTDLIB_STATIC_API size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize); + +/*! ZSTD_compressSequences() : + * Compress an array of ZSTD_Sequence, associated with @src buffer, into dst. + * @src contains the entire input (not just the literals). + * If @srcSize > sum(sequence.length), the remaining bytes are considered all literals + * If a dictionary is included, then the cctx should reference the dict. (see: ZSTD_CCtx_refCDict(), ZSTD_CCtx_loadDictionary(), etc.) + * The entire source is compressed into a single frame. + * + * The compression behavior changes based on cctx params. In particular: + * If ZSTD_c_blockDelimiters == ZSTD_sf_noBlockDelimiters, the array of ZSTD_Sequence is expected to contain + * no block delimiters (defined in ZSTD_Sequence). Block boundaries are roughly determined based on + * the block size derived from the cctx, and sequences may be split. This is the default setting. + * + * If ZSTD_c_blockDelimiters == ZSTD_sf_explicitBlockDelimiters, the array of ZSTD_Sequence is expected to contain + * block delimiters (defined in ZSTD_Sequence). Behavior is undefined if no block delimiters are provided. + * + * If ZSTD_c_validateSequences == 0, this function will blindly accept the sequences provided. Invalid sequences cause undefined + * behavior. If ZSTD_c_validateSequences == 1, then if sequence is invalid (see doc/zstd_compression_format.md for + * specifics regarding offset/matchlength requirements) then the function will bail out and return an error. + * + * In addition to the two adjustable experimental params, there are other important cctx params. + * - ZSTD_c_minMatch MUST be set as less than or equal to the smallest match generated by the match finder. It has a minimum value of ZSTD_MINMATCH_MIN. + * - ZSTD_c_compressionLevel accordingly adjusts the strength of the entropy coder, as it would in typical compression. + * - ZSTD_c_windowLog affects offset validation: this function will return an error at higher debug levels if a provided offset + * is larger than what the spec allows for a given window log and dictionary (if present). See: doc/zstd_compression_format.md + * + * Note: Repcodes are, as of now, always re-calculated within this function, so ZSTD_Sequence::rep is unused. + * Note 2: Once we integrate ability to ingest repcodes, the explicit block delims mode must respect those repcodes exactly, + * and cannot emit an RLE block that disagrees with the repcode history + * @return : final compressed size, or a ZSTD error code. + */ +ZSTDLIB_STATIC_API size_t +ZSTD_compressSequences( ZSTD_CCtx* cctx, void* dst, size_t dstSize, + const ZSTD_Sequence* inSeqs, size_t inSeqsSize, + const void* src, size_t srcSize); + + +/*! ZSTD_writeSkippableFrame() : + * Generates a zstd skippable frame containing data given by src, and writes it to dst buffer. + * + * Skippable frames begin with a 4-byte magic number. There are 16 possible choices of magic number, + * ranging from ZSTD_MAGIC_SKIPPABLE_START to ZSTD_MAGIC_SKIPPABLE_START+15. + * As such, the parameter magicVariant controls the exact skippable frame magic number variant used, so + * the magic number used will be ZSTD_MAGIC_SKIPPABLE_START + magicVariant. + * + * Returns an error if destination buffer is not large enough, if the source size is not representable + * with a 4-byte unsigned int, or if the parameter magicVariant is greater than 15 (and therefore invalid). + * + * @return : number of bytes written or a ZSTD error. + */ +ZSTDLIB_STATIC_API size_t ZSTD_writeSkippableFrame(void* dst, size_t dstCapacity, + const void* src, size_t srcSize, unsigned magicVariant); + +/*! ZSTD_readSkippableFrame() : + * Retrieves a zstd skippable frame containing data given by src, and writes it to dst buffer. + * + * The parameter magicVariant will receive the magicVariant that was supplied when the frame was written, + * i.e. magicNumber - ZSTD_MAGIC_SKIPPABLE_START. This can be NULL if the caller is not interested + * in the magicVariant. + * + * Returns an error if destination buffer is not large enough, or if the frame is not skippable. + * + * @return : number of bytes written or a ZSTD error. + */ +ZSTDLIB_API size_t ZSTD_readSkippableFrame(void* dst, size_t dstCapacity, unsigned* magicVariant, + const void* src, size_t srcSize); + +/*! ZSTD_isSkippableFrame() : + * Tells if the content of `buffer` starts with a valid Frame Identifier for a skippable frame. + */ +ZSTDLIB_API unsigned ZSTD_isSkippableFrame(const void* buffer, size_t size); + + + +/*************************************** +* Memory management +***************************************/ + +/*! ZSTD_estimate*() : + * These functions make it possible to estimate memory usage + * of a future {D,C}Ctx, before its creation. + * This is useful in combination with ZSTD_initStatic(), + * which makes it possible to employ a static buffer for ZSTD_CCtx* state. + * + * ZSTD_estimateCCtxSize() will provide a memory budget large enough + * to compress data of any size using one-shot compression ZSTD_compressCCtx() or ZSTD_compress2() + * associated with any compression level up to max specified one. + * The estimate will assume the input may be arbitrarily large, + * which is the worst case. + * + * Note that the size estimation is specific for one-shot compression, + * it is not valid for streaming (see ZSTD_estimateCStreamSize*()) + * nor other potential ways of using a ZSTD_CCtx* state. + * + * When srcSize can be bound by a known and rather "small" value, + * this knowledge can be used to provide a tighter budget estimation + * because the ZSTD_CCtx* state will need less memory for small inputs. + * This tighter estimation can be provided by employing more advanced functions + * ZSTD_estimateCCtxSize_usingCParams(), which can be used in tandem with ZSTD_getCParams(), + * and ZSTD_estimateCCtxSize_usingCCtxParams(), which can be used in tandem with ZSTD_CCtxParams_setParameter(). + * Both can be used to estimate memory using custom compression parameters and arbitrary srcSize limits. + * + * Note : only single-threaded compression is supported. + * ZSTD_estimateCCtxSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1. + */ +ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize(int maxCompressionLevel); +ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams); +ZSTDLIB_STATIC_API size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params); +ZSTDLIB_STATIC_API size_t ZSTD_estimateDCtxSize(void); + +/*! ZSTD_estimateCStreamSize() : + * ZSTD_estimateCStreamSize() will provide a memory budget large enough for streaming compression + * using any compression level up to the max specified one. + * It will also consider src size to be arbitrarily "large", which is a worst case scenario. + * If srcSize is known to always be small, ZSTD_estimateCStreamSize_usingCParams() can provide a tighter estimation. + * ZSTD_estimateCStreamSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel. + * ZSTD_estimateCStreamSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParams_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_c_nbWorkers is >= 1. + * Note : CStream size estimation is only correct for single-threaded compression. + * ZSTD_estimateCStreamSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1. + * Note 2 : ZSTD_estimateCStreamSize* functions are not compatible with the Block-Level Sequence Producer API at this time. + * Size estimates assume that no external sequence producer is registered. + * + * ZSTD_DStream memory budget depends on frame's window Size. + * This information can be passed manually, using ZSTD_estimateDStreamSize, + * or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame(); + * Any frame requesting a window size larger than max specified one will be rejected. + * Note : if streaming is init with function ZSTD_init?Stream_usingDict(), + * an internal ?Dict will be created, which additional size is not estimated here. + * In this case, get total size by adding ZSTD_estimate?DictSize + */ +ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize(int maxCompressionLevel); +ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams); +ZSTDLIB_STATIC_API size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params); +ZSTDLIB_STATIC_API size_t ZSTD_estimateDStreamSize(size_t maxWindowSize); +ZSTDLIB_STATIC_API size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize); + +/*! ZSTD_estimate?DictSize() : + * ZSTD_estimateCDictSize() will bet that src size is relatively "small", and content is copied, like ZSTD_createCDict(). + * ZSTD_estimateCDictSize_advanced() makes it possible to control compression parameters precisely, like ZSTD_createCDict_advanced(). + * Note : dictionaries created by reference (`ZSTD_dlm_byRef`) are logically smaller. + */ +ZSTDLIB_STATIC_API size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel); +ZSTDLIB_STATIC_API size_t ZSTD_estimateCDictSize_advanced(size_t dictSize, ZSTD_compressionParameters cParams, ZSTD_dictLoadMethod_e dictLoadMethod); +ZSTDLIB_STATIC_API size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod); + +/*! ZSTD_initStatic*() : + * Initialize an object using a pre-allocated fixed-size buffer. + * workspace: The memory area to emplace the object into. + * Provided pointer *must be 8-bytes aligned*. + * Buffer must outlive object. + * workspaceSize: Use ZSTD_estimate*Size() to determine + * how large workspace must be to support target scenario. + * @return : pointer to object (same address as workspace, just different type), + * or NULL if error (size too small, incorrect alignment, etc.) + * Note : zstd will never resize nor malloc() when using a static buffer. + * If the object requires more memory than available, + * zstd will just error out (typically ZSTD_error_memory_allocation). + * Note 2 : there is no corresponding "free" function. + * Since workspace is allocated externally, it must be freed externally too. + * Note 3 : cParams : use ZSTD_getCParams() to convert a compression level + * into its associated cParams. + * Limitation 1 : currently not compatible with internal dictionary creation, triggered by + * ZSTD_CCtx_loadDictionary(), ZSTD_initCStream_usingDict() or ZSTD_initDStream_usingDict(). + * Limitation 2 : static cctx currently not compatible with multi-threading. + * Limitation 3 : static dctx is incompatible with legacy support. + */ +ZSTDLIB_STATIC_API ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize); +ZSTDLIB_STATIC_API ZSTD_CStream* ZSTD_initStaticCStream(void* workspace, size_t workspaceSize); /**< same as ZSTD_initStaticCCtx() */ + +ZSTDLIB_STATIC_API ZSTD_DCtx* ZSTD_initStaticDCtx(void* workspace, size_t workspaceSize); +ZSTDLIB_STATIC_API ZSTD_DStream* ZSTD_initStaticDStream(void* workspace, size_t workspaceSize); /**< same as ZSTD_initStaticDCtx() */ + +ZSTDLIB_STATIC_API const ZSTD_CDict* ZSTD_initStaticCDict( + void* workspace, size_t workspaceSize, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_compressionParameters cParams); + +ZSTDLIB_STATIC_API const ZSTD_DDict* ZSTD_initStaticDDict( + void* workspace, size_t workspaceSize, + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType); + + +/*! Custom memory allocation : + * These prototypes make it possible to pass your own allocation/free functions. + * ZSTD_customMem is provided at creation time, using ZSTD_create*_advanced() variants listed below. + * All allocation/free operations will be completed using these custom variants instead of regular ones. + */ +typedef void* (*ZSTD_allocFunction) (void* opaque, size_t size); +typedef void (*ZSTD_freeFunction) (void* opaque, void* address); +typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction customFree; void* opaque; } ZSTD_customMem; +static +#ifdef __GNUC__ +__attribute__((__unused__)) +#endif +ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL }; /**< this constant defers to stdlib's functions */ + +ZSTDLIB_STATIC_API ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem); +ZSTDLIB_STATIC_API ZSTD_CStream* ZSTD_createCStream_advanced(ZSTD_customMem customMem); +ZSTDLIB_STATIC_API ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem); +ZSTDLIB_STATIC_API ZSTD_DStream* ZSTD_createDStream_advanced(ZSTD_customMem customMem); + +ZSTDLIB_STATIC_API ZSTD_CDict* ZSTD_createCDict_advanced(const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_compressionParameters cParams, + ZSTD_customMem customMem); + +/*! Thread pool : + * These prototypes make it possible to share a thread pool among multiple compression contexts. + * This can limit resources for applications with multiple threads where each one uses + * a threaded compression mode (via ZSTD_c_nbWorkers parameter). + * ZSTD_createThreadPool creates a new thread pool with a given number of threads. + * Note that the lifetime of such pool must exist while being used. + * ZSTD_CCtx_refThreadPool assigns a thread pool to a context (use NULL argument value + * to use an internal thread pool). + * ZSTD_freeThreadPool frees a thread pool, accepts NULL pointer. + */ +typedef struct POOL_ctx_s ZSTD_threadPool; +ZSTDLIB_STATIC_API ZSTD_threadPool* ZSTD_createThreadPool(size_t numThreads); +ZSTDLIB_STATIC_API void ZSTD_freeThreadPool (ZSTD_threadPool* pool); /* accept NULL pointer */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_refThreadPool(ZSTD_CCtx* cctx, ZSTD_threadPool* pool); + + +/* + * This API is temporary and is expected to change or disappear in the future! + */ +ZSTDLIB_STATIC_API ZSTD_CDict* ZSTD_createCDict_advanced2( + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + const ZSTD_CCtx_params* cctxParams, + ZSTD_customMem customMem); + +ZSTDLIB_STATIC_API ZSTD_DDict* ZSTD_createDDict_advanced( + const void* dict, size_t dictSize, + ZSTD_dictLoadMethod_e dictLoadMethod, + ZSTD_dictContentType_e dictContentType, + ZSTD_customMem customMem); + + +/*************************************** +* Advanced compression functions +***************************************/ + +/*! ZSTD_createCDict_byReference() : + * Create a digested dictionary for compression + * Dictionary content is just referenced, not duplicated. + * As a consequence, `dictBuffer` **must** outlive CDict, + * and its content must remain unmodified throughout the lifetime of CDict. + * note: equivalent to ZSTD_createCDict_advanced(), with dictLoadMethod==ZSTD_dlm_byRef */ +ZSTDLIB_STATIC_API ZSTD_CDict* ZSTD_createCDict_byReference(const void* dictBuffer, size_t dictSize, int compressionLevel); + +/*! ZSTD_getCParams() : + * @return ZSTD_compressionParameters structure for a selected compression level and estimated srcSize. + * `estimatedSrcSize` value is optional, select 0 if not known */ +ZSTDLIB_STATIC_API ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize); + +/*! ZSTD_getParams() : + * same as ZSTD_getCParams(), but @return a full `ZSTD_parameters` object instead of sub-component `ZSTD_compressionParameters`. + * All fields of `ZSTD_frameParameters` are set to default : contentSize=1, checksum=0, noDictID=0 */ +ZSTDLIB_STATIC_API ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize); + +/*! ZSTD_checkCParams() : + * Ensure param values remain within authorized range. + * @return 0 on success, or an error code (can be checked with ZSTD_isError()) */ +ZSTDLIB_STATIC_API size_t ZSTD_checkCParams(ZSTD_compressionParameters params); + +/*! ZSTD_adjustCParams() : + * optimize params for a given `srcSize` and `dictSize`. + * `srcSize` can be unknown, in which case use ZSTD_CONTENTSIZE_UNKNOWN. + * `dictSize` must be `0` when there is no dictionary. + * cPar can be invalid : all parameters will be clamped within valid range in the @return struct. + * This function never fails (wide contract) */ +ZSTDLIB_STATIC_API ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters cPar, unsigned long long srcSize, size_t dictSize); + +/*! ZSTD_CCtx_setCParams() : + * Set all parameters provided within @p cparams into the working @p cctx. + * Note : if modifying parameters during compression (MT mode only), + * note that changes to the .windowLog parameter will be ignored. + * @return 0 on success, or an error code (can be checked with ZSTD_isError()). + * On failure, no parameters are updated. + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_setCParams(ZSTD_CCtx* cctx, ZSTD_compressionParameters cparams); + +/*! ZSTD_CCtx_setFParams() : + * Set all parameters provided within @p fparams into the working @p cctx. + * @return 0 on success, or an error code (can be checked with ZSTD_isError()). + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_setFParams(ZSTD_CCtx* cctx, ZSTD_frameParameters fparams); + +/*! ZSTD_CCtx_setParams() : + * Set all parameters provided within @p params into the working @p cctx. + * @return 0 on success, or an error code (can be checked with ZSTD_isError()). + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_setParams(ZSTD_CCtx* cctx, ZSTD_parameters params); + +/*! ZSTD_compress_advanced() : + * Note : this function is now DEPRECATED. + * It can be replaced by ZSTD_compress2(), in combination with ZSTD_CCtx_setParameter() and other parameter setters. + * This prototype will generate compilation warnings. */ +ZSTD_DEPRECATED("use ZSTD_compress2") +ZSTDLIB_STATIC_API +size_t ZSTD_compress_advanced(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const void* dict,size_t dictSize, + ZSTD_parameters params); + +/*! ZSTD_compress_usingCDict_advanced() : + * Note : this function is now DEPRECATED. + * It can be replaced by ZSTD_compress2(), in combination with ZSTD_CCtx_loadDictionary() and other parameter setters. + * This prototype will generate compilation warnings. */ +ZSTD_DEPRECATED("use ZSTD_compress2 with ZSTD_CCtx_loadDictionary") +ZSTDLIB_STATIC_API +size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize, + const ZSTD_CDict* cdict, + ZSTD_frameParameters fParams); + + +/*! ZSTD_CCtx_loadDictionary_byReference() : + * Same as ZSTD_CCtx_loadDictionary(), but dictionary content is referenced, instead of being copied into CCtx. + * It saves some memory, but also requires that `dict` outlives its usage within `cctx` */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_loadDictionary_byReference(ZSTD_CCtx* cctx, const void* dict, size_t dictSize); + +/*! ZSTD_CCtx_loadDictionary_advanced() : + * Same as ZSTD_CCtx_loadDictionary(), but gives finer control over + * how to load the dictionary (by copy ? by reference ?) + * and how to interpret it (automatic ? force raw mode ? full mode only ?) */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_loadDictionary_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType); + +/*! ZSTD_CCtx_refPrefix_advanced() : + * Same as ZSTD_CCtx_refPrefix(), but gives finer control over + * how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType); + +/* === experimental parameters === */ +/* these parameters can be used with ZSTD_setParameter() + * they are not guaranteed to remain supported in the future */ + + /* Enables rsyncable mode, + * which makes compressed files more rsync friendly + * by adding periodic synchronization points to the compressed data. + * The target average block size is ZSTD_c_jobSize / 2. + * It's possible to modify the job size to increase or decrease + * the granularity of the synchronization point. + * Once the jobSize is smaller than the window size, + * it will result in compression ratio degradation. + * NOTE 1: rsyncable mode only works when multithreading is enabled. + * NOTE 2: rsyncable performs poorly in combination with long range mode, + * since it will decrease the effectiveness of synchronization points, + * though mileage may vary. + * NOTE 3: Rsyncable mode limits maximum compression speed to ~400 MB/s. + * If the selected compression level is already running significantly slower, + * the overall speed won't be significantly impacted. + */ + #define ZSTD_c_rsyncable ZSTD_c_experimentalParam1 + +/* Select a compression format. + * The value must be of type ZSTD_format_e. + * See ZSTD_format_e enum definition for details */ +#define ZSTD_c_format ZSTD_c_experimentalParam2 + +/* Force back-reference distances to remain < windowSize, + * even when referencing into Dictionary content (default:0) */ +#define ZSTD_c_forceMaxWindow ZSTD_c_experimentalParam3 + +/* Controls whether the contents of a CDict + * are used in place, or copied into the working context. + * Accepts values from the ZSTD_dictAttachPref_e enum. + * See the comments on that enum for an explanation of the feature. */ +#define ZSTD_c_forceAttachDict ZSTD_c_experimentalParam4 + +/* Controlled with ZSTD_paramSwitch_e enum. + * Default is ZSTD_ps_auto. + * Set to ZSTD_ps_disable to never compress literals. + * Set to ZSTD_ps_enable to always compress literals. (Note: uncompressed literals + * may still be emitted if huffman is not beneficial to use.) + * + * By default, in ZSTD_ps_auto, the library will decide at runtime whether to use + * literals compression based on the compression parameters - specifically, + * negative compression levels do not use literal compression. + */ +#define ZSTD_c_literalCompressionMode ZSTD_c_experimentalParam5 + +/* User's best guess of source size. + * Hint is not valid when srcSizeHint == 0. + * There is no guarantee that hint is close to actual source size, + * but compression ratio may regress significantly if guess considerably underestimates */ +#define ZSTD_c_srcSizeHint ZSTD_c_experimentalParam7 + +/* Controls whether the new and experimental "dedicated dictionary search + * structure" can be used. This feature is still rough around the edges, be + * prepared for surprising behavior! + * + * How to use it: + * + * When using a CDict, whether to use this feature or not is controlled at + * CDict creation, and it must be set in a CCtxParams set passed into that + * construction (via ZSTD_createCDict_advanced2()). A compression will then + * use the feature or not based on how the CDict was constructed; the value of + * this param, set in the CCtx, will have no effect. + * + * However, when a dictionary buffer is passed into a CCtx, such as via + * ZSTD_CCtx_loadDictionary(), this param can be set on the CCtx to control + * whether the CDict that is created internally can use the feature or not. + * + * What it does: + * + * Normally, the internal data structures of the CDict are analogous to what + * would be stored in a CCtx after compressing the contents of a dictionary. + * To an approximation, a compression using a dictionary can then use those + * data structures to simply continue what is effectively a streaming + * compression where the simulated compression of the dictionary left off. + * Which is to say, the search structures in the CDict are normally the same + * format as in the CCtx. + * + * It is possible to do better, since the CDict is not like a CCtx: the search + * structures are written once during CDict creation, and then are only read + * after that, while the search structures in the CCtx are both read and + * written as the compression goes along. This means we can choose a search + * structure for the dictionary that is read-optimized. + * + * This feature enables the use of that different structure. + * + * Note that some of the members of the ZSTD_compressionParameters struct have + * different semantics and constraints in the dedicated search structure. It is + * highly recommended that you simply set a compression level in the CCtxParams + * you pass into the CDict creation call, and avoid messing with the cParams + * directly. + * + * Effects: + * + * This will only have any effect when the selected ZSTD_strategy + * implementation supports this feature. Currently, that's limited to + * ZSTD_greedy, ZSTD_lazy, and ZSTD_lazy2. + * + * Note that this means that the CDict tables can no longer be copied into the + * CCtx, so the dict attachment mode ZSTD_dictForceCopy will no longer be + * usable. The dictionary can only be attached or reloaded. + * + * In general, you should expect compression to be faster--sometimes very much + * so--and CDict creation to be slightly slower. Eventually, we will probably + * make this mode the default. + */ +#define ZSTD_c_enableDedicatedDictSearch ZSTD_c_experimentalParam8 + +/* ZSTD_c_stableInBuffer + * Experimental parameter. + * Default is 0 == disabled. Set to 1 to enable. + * + * Tells the compressor that input data presented with ZSTD_inBuffer + * will ALWAYS be the same between calls. + * Technically, the @src pointer must never be changed, + * and the @pos field can only be updated by zstd. + * However, it's possible to increase the @size field, + * allowing scenarios where more data can be appended after compressions starts. + * These conditions are checked by the compressor, + * and compression will fail if they are not respected. + * Also, data in the ZSTD_inBuffer within the range [src, src + pos) + * MUST not be modified during compression or it will result in data corruption. + * + * When this flag is enabled zstd won't allocate an input window buffer, + * because the user guarantees it can reference the ZSTD_inBuffer until + * the frame is complete. But, it will still allocate an output buffer + * large enough to fit a block (see ZSTD_c_stableOutBuffer). This will also + * avoid the memcpy() from the input buffer to the input window buffer. + * + * NOTE: So long as the ZSTD_inBuffer always points to valid memory, using + * this flag is ALWAYS memory safe, and will never access out-of-bounds + * memory. However, compression WILL fail if conditions are not respected. + * + * WARNING: The data in the ZSTD_inBuffer in the range [src, src + pos) MUST + * not be modified during compression or it will result in data corruption. + * This is because zstd needs to reference data in the ZSTD_inBuffer to find + * matches. Normally zstd maintains its own window buffer for this purpose, + * but passing this flag tells zstd to rely on user provided buffer instead. + */ +#define ZSTD_c_stableInBuffer ZSTD_c_experimentalParam9 + +/* ZSTD_c_stableOutBuffer + * Experimental parameter. + * Default is 0 == disabled. Set to 1 to enable. + * + * Tells he compressor that the ZSTD_outBuffer will not be resized between + * calls. Specifically: (out.size - out.pos) will never grow. This gives the + * compressor the freedom to say: If the compressed data doesn't fit in the + * output buffer then return ZSTD_error_dstSizeTooSmall. This allows us to + * always decompress directly into the output buffer, instead of decompressing + * into an internal buffer and copying to the output buffer. + * + * When this flag is enabled zstd won't allocate an output buffer, because + * it can write directly to the ZSTD_outBuffer. It will still allocate the + * input window buffer (see ZSTD_c_stableInBuffer). + * + * Zstd will check that (out.size - out.pos) never grows and return an error + * if it does. While not strictly necessary, this should prevent surprises. + */ +#define ZSTD_c_stableOutBuffer ZSTD_c_experimentalParam10 + +/* ZSTD_c_blockDelimiters + * Default is 0 == ZSTD_sf_noBlockDelimiters. + * + * For use with sequence compression API: ZSTD_compressSequences(). + * + * Designates whether or not the given array of ZSTD_Sequence contains block delimiters + * and last literals, which are defined as sequences with offset == 0 and matchLength == 0. + * See the definition of ZSTD_Sequence for more specifics. + */ +#define ZSTD_c_blockDelimiters ZSTD_c_experimentalParam11 + +/* ZSTD_c_validateSequences + * Default is 0 == disabled. Set to 1 to enable sequence validation. + * + * For use with sequence compression API: ZSTD_compressSequences(). + * Designates whether or not we validate sequences provided to ZSTD_compressSequences() + * during function execution. + * + * Without validation, providing a sequence that does not conform to the zstd spec will cause + * undefined behavior, and may produce a corrupted block. + * + * With validation enabled, if sequence is invalid (see doc/zstd_compression_format.md for + * specifics regarding offset/matchlength requirements) then the function will bail out and + * return an error. + * + */ +#define ZSTD_c_validateSequences ZSTD_c_experimentalParam12 + +/* ZSTD_c_useBlockSplitter + * Controlled with ZSTD_paramSwitch_e enum. + * Default is ZSTD_ps_auto. + * Set to ZSTD_ps_disable to never use block splitter. + * Set to ZSTD_ps_enable to always use block splitter. + * + * By default, in ZSTD_ps_auto, the library will decide at runtime whether to use + * block splitting based on the compression parameters. + */ +#define ZSTD_c_useBlockSplitter ZSTD_c_experimentalParam13 + +/* ZSTD_c_useRowMatchFinder + * Controlled with ZSTD_paramSwitch_e enum. + * Default is ZSTD_ps_auto. + * Set to ZSTD_ps_disable to never use row-based matchfinder. + * Set to ZSTD_ps_enable to force usage of row-based matchfinder. + * + * By default, in ZSTD_ps_auto, the library will decide at runtime whether to use + * the row-based matchfinder based on support for SIMD instructions and the window log. + * Note that this only pertains to compression strategies: greedy, lazy, and lazy2 + */ +#define ZSTD_c_useRowMatchFinder ZSTD_c_experimentalParam14 + +/* ZSTD_c_deterministicRefPrefix + * Default is 0 == disabled. Set to 1 to enable. + * + * Zstd produces different results for prefix compression when the prefix is + * directly adjacent to the data about to be compressed vs. when it isn't. + * This is because zstd detects that the two buffers are contiguous and it can + * use a more efficient match finding algorithm. However, this produces different + * results than when the two buffers are non-contiguous. This flag forces zstd + * to always load the prefix in non-contiguous mode, even if it happens to be + * adjacent to the data, to guarantee determinism. + * + * If you really care about determinism when using a dictionary or prefix, + * like when doing delta compression, you should select this option. It comes + * at a speed penalty of about ~2.5% if the dictionary and data happened to be + * contiguous, and is free if they weren't contiguous. We don't expect that + * intentionally making the dictionary and data contiguous will be worth the + * cost to memcpy() the data. + */ +#define ZSTD_c_deterministicRefPrefix ZSTD_c_experimentalParam15 + +/* ZSTD_c_prefetchCDictTables + * Controlled with ZSTD_paramSwitch_e enum. Default is ZSTD_ps_auto. + * + * In some situations, zstd uses CDict tables in-place rather than copying them + * into the working context. (See docs on ZSTD_dictAttachPref_e above for details). + * In such situations, compression speed is seriously impacted when CDict tables are + * "cold" (outside CPU cache). This parameter instructs zstd to prefetch CDict tables + * when they are used in-place. + * + * For sufficiently small inputs, the cost of the prefetch will outweigh the benefit. + * For sufficiently large inputs, zstd will by default memcpy() CDict tables + * into the working context, so there is no need to prefetch. This parameter is + * targeted at a middle range of input sizes, where a prefetch is cheap enough to be + * useful but memcpy() is too expensive. The exact range of input sizes where this + * makes sense is best determined by careful experimentation. + * + * Note: for this parameter, ZSTD_ps_auto is currently equivalent to ZSTD_ps_disable, + * but in the future zstd may conditionally enable this feature via an auto-detection + * heuristic for cold CDicts. + * Use ZSTD_ps_disable to opt out of prefetching under any circumstances. + */ +#define ZSTD_c_prefetchCDictTables ZSTD_c_experimentalParam16 + +/* ZSTD_c_enableSeqProducerFallback + * Allowed values are 0 (disable) and 1 (enable). The default setting is 0. + * + * Controls whether zstd will fall back to an internal sequence producer if an + * external sequence producer is registered and returns an error code. This fallback + * is block-by-block: the internal sequence producer will only be called for blocks + * where the external sequence producer returns an error code. Fallback parsing will + * follow any other cParam settings, such as compression level, the same as in a + * normal (fully-internal) compression operation. + * + * The user is strongly encouraged to read the full Block-Level Sequence Producer API + * documentation (below) before setting this parameter. */ +#define ZSTD_c_enableSeqProducerFallback ZSTD_c_experimentalParam17 + +/* ZSTD_c_maxBlockSize + * Allowed values are between 1KB and ZSTD_BLOCKSIZE_MAX (128KB). + * The default is ZSTD_BLOCKSIZE_MAX, and setting to 0 will set to the default. + * + * This parameter can be used to set an upper bound on the blocksize + * that overrides the default ZSTD_BLOCKSIZE_MAX. It cannot be used to set upper + * bounds greater than ZSTD_BLOCKSIZE_MAX or bounds lower than 1KB (will make + * compressBound() inaccurate). Only currently meant to be used for testing. + * + */ +#define ZSTD_c_maxBlockSize ZSTD_c_experimentalParam18 + +/* ZSTD_c_searchForExternalRepcodes + * This parameter affects how zstd parses external sequences, such as sequences + * provided through the compressSequences() API or from an external block-level + * sequence producer. + * + * If set to ZSTD_ps_enable, the library will check for repeated offsets in + * external sequences, even if those repcodes are not explicitly indicated in + * the "rep" field. Note that this is the only way to exploit repcode matches + * while using compressSequences() or an external sequence producer, since zstd + * currently ignores the "rep" field of external sequences. + * + * If set to ZSTD_ps_disable, the library will not exploit repeated offsets in + * external sequences, regardless of whether the "rep" field has been set. This + * reduces sequence compression overhead by about 25% while sacrificing some + * compression ratio. + * + * The default value is ZSTD_ps_auto, for which the library will enable/disable + * based on compression level. + * + * Note: for now, this param only has an effect if ZSTD_c_blockDelimiters is + * set to ZSTD_sf_explicitBlockDelimiters. That may change in the future. + */ +#define ZSTD_c_searchForExternalRepcodes ZSTD_c_experimentalParam19 + +/*! ZSTD_CCtx_getParameter() : + * Get the requested compression parameter value, selected by enum ZSTD_cParameter, + * and store it into int* value. + * @return : 0, or an error code (which can be tested with ZSTD_isError()). + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_getParameter(const ZSTD_CCtx* cctx, ZSTD_cParameter param, int* value); + + +/*! ZSTD_CCtx_params : + * Quick howto : + * - ZSTD_createCCtxParams() : Create a ZSTD_CCtx_params structure + * - ZSTD_CCtxParams_setParameter() : Push parameters one by one into + * an existing ZSTD_CCtx_params structure. + * This is similar to + * ZSTD_CCtx_setParameter(). + * - ZSTD_CCtx_setParametersUsingCCtxParams() : Apply parameters to + * an existing CCtx. + * These parameters will be applied to + * all subsequent frames. + * - ZSTD_compressStream2() : Do compression using the CCtx. + * - ZSTD_freeCCtxParams() : Free the memory, accept NULL pointer. + * + * This can be used with ZSTD_estimateCCtxSize_advanced_usingCCtxParams() + * for static allocation of CCtx for single-threaded compression. + */ +ZSTDLIB_STATIC_API ZSTD_CCtx_params* ZSTD_createCCtxParams(void); +ZSTDLIB_STATIC_API size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params); /* accept NULL pointer */ + +/*! ZSTD_CCtxParams_reset() : + * Reset params to default values. + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params); + +/*! ZSTD_CCtxParams_init() : + * Initializes the compression parameters of cctxParams according to + * compression level. All other parameters are reset to their default values. + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel); + +/*! ZSTD_CCtxParams_init_advanced() : + * Initializes the compression and frame parameters of cctxParams according to + * params. All other parameters are reset to their default values. + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params); + +/*! ZSTD_CCtxParams_setParameter() : Requires v1.4.0+ + * Similar to ZSTD_CCtx_setParameter. + * Set one compression parameter, selected by enum ZSTD_cParameter. + * Parameters must be applied to a ZSTD_CCtx using + * ZSTD_CCtx_setParametersUsingCCtxParams(). + * @result : a code representing success or failure (which can be tested with + * ZSTD_isError()). + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int value); + +/*! ZSTD_CCtxParams_getParameter() : + * Similar to ZSTD_CCtx_getParameter. + * Get the requested value of one compression parameter, selected by enum ZSTD_cParameter. + * @result : 0, or an error code (which can be tested with ZSTD_isError()). + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtxParams_getParameter(const ZSTD_CCtx_params* params, ZSTD_cParameter param, int* value); + +/*! ZSTD_CCtx_setParametersUsingCCtxParams() : + * Apply a set of ZSTD_CCtx_params to the compression context. + * This can be done even after compression is started, + * if nbWorkers==0, this will have no impact until a new compression is started. + * if nbWorkers>=1, new parameters will be picked up at next job, + * with a few restrictions (windowLog, pledgedSrcSize, nbWorkers, jobSize, and overlapLog are not updated). + */ +ZSTDLIB_STATIC_API size_t ZSTD_CCtx_setParametersUsingCCtxParams( + ZSTD_CCtx* cctx, const ZSTD_CCtx_params* params); + +/*! ZSTD_compressStream2_simpleArgs() : + * Same as ZSTD_compressStream2(), + * but using only integral types as arguments. + * This variant might be helpful for binders from dynamic languages + * which have troubles handling structures containing memory pointers. + */ +ZSTDLIB_STATIC_API size_t ZSTD_compressStream2_simpleArgs ( + ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, size_t* dstPos, + const void* src, size_t srcSize, size_t* srcPos, + ZSTD_EndDirective endOp); + + +/*************************************** +* Advanced decompression functions +***************************************/ + +/*! ZSTD_isFrame() : + * Tells if the content of `buffer` starts with a valid Frame Identifier. + * Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. + * Note 2 : Legacy Frame Identifiers are considered valid only if Legacy Support is enabled. + * Note 3 : Skippable Frame Identifiers are considered valid. */ +ZSTDLIB_STATIC_API unsigned ZSTD_isFrame(const void* buffer, size_t size); + +/*! ZSTD_createDDict_byReference() : + * Create a digested dictionary, ready to start decompression operation without startup delay. + * Dictionary content is referenced, and therefore stays in dictBuffer. + * It is important that dictBuffer outlives DDict, + * it must remain read accessible throughout the lifetime of DDict */ +ZSTDLIB_STATIC_API ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize); + +/*! ZSTD_DCtx_loadDictionary_byReference() : + * Same as ZSTD_DCtx_loadDictionary(), + * but references `dict` content instead of copying it into `dctx`. + * This saves memory if `dict` remains around., + * However, it's imperative that `dict` remains accessible (and unmodified) while being used, so it must outlive decompression. */ +ZSTDLIB_STATIC_API size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize); + +/*! ZSTD_DCtx_loadDictionary_advanced() : + * Same as ZSTD_DCtx_loadDictionary(), + * but gives direct control over + * how to load the dictionary (by copy ? by reference ?) + * and how to interpret it (automatic ? force raw mode ? full mode only ?). */ +ZSTDLIB_STATIC_API size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType); + +/*! ZSTD_DCtx_refPrefix_advanced() : + * Same as ZSTD_DCtx_refPrefix(), but gives finer control over + * how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) */ +ZSTDLIB_STATIC_API size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType); + +/*! ZSTD_DCtx_setMaxWindowSize() : + * Refuses allocating internal buffers for frames requiring a window size larger than provided limit. + * This protects a decoder context from reserving too much memory for itself (potential attack scenario). + * This parameter is only useful in streaming mode, since no internal buffer is allocated in single-pass mode. + * By default, a decompression context accepts all window sizes <= (1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT) + * @return : 0, or an error code (which can be tested using ZSTD_isError()). + */ +ZSTDLIB_STATIC_API size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize); + +/*! ZSTD_DCtx_getParameter() : + * Get the requested decompression parameter value, selected by enum ZSTD_dParameter, + * and store it into int* value. + * @return : 0, or an error code (which can be tested with ZSTD_isError()). + */ +ZSTDLIB_STATIC_API size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int* value); + +/* ZSTD_d_format + * experimental parameter, + * allowing selection between ZSTD_format_e input compression formats + */ +#define ZSTD_d_format ZSTD_d_experimentalParam1 +/* ZSTD_d_stableOutBuffer + * Experimental parameter. + * Default is 0 == disabled. Set to 1 to enable. + * + * Tells the decompressor that the ZSTD_outBuffer will ALWAYS be the same + * between calls, except for the modifications that zstd makes to pos (the + * caller must not modify pos). This is checked by the decompressor, and + * decompression will fail if it ever changes. Therefore the ZSTD_outBuffer + * MUST be large enough to fit the entire decompressed frame. This will be + * checked when the frame content size is known. The data in the ZSTD_outBuffer + * in the range [dst, dst + pos) MUST not be modified during decompression + * or you will get data corruption. + * + * When this flag is enabled zstd won't allocate an output buffer, because + * it can write directly to the ZSTD_outBuffer, but it will still allocate + * an input buffer large enough to fit any compressed block. This will also + * avoid the memcpy() from the internal output buffer to the ZSTD_outBuffer. + * If you need to avoid the input buffer allocation use the buffer-less + * streaming API. + * + * NOTE: So long as the ZSTD_outBuffer always points to valid memory, using + * this flag is ALWAYS memory safe, and will never access out-of-bounds + * memory. However, decompression WILL fail if you violate the preconditions. + * + * WARNING: The data in the ZSTD_outBuffer in the range [dst, dst + pos) MUST + * not be modified during decompression or you will get data corruption. This + * is because zstd needs to reference data in the ZSTD_outBuffer to regenerate + * matches. Normally zstd maintains its own buffer for this purpose, but passing + * this flag tells zstd to use the user provided buffer. + */ +#define ZSTD_d_stableOutBuffer ZSTD_d_experimentalParam2 + +/* ZSTD_d_forceIgnoreChecksum + * Experimental parameter. + * Default is 0 == disabled. Set to 1 to enable + * + * Tells the decompressor to skip checksum validation during decompression, regardless + * of whether checksumming was specified during compression. This offers some + * slight performance benefits, and may be useful for debugging. + * Param has values of type ZSTD_forceIgnoreChecksum_e + */ +#define ZSTD_d_forceIgnoreChecksum ZSTD_d_experimentalParam3 + +/* ZSTD_d_refMultipleDDicts + * Experimental parameter. + * Default is 0 == disabled. Set to 1 to enable + * + * If enabled and dctx is allocated on the heap, then additional memory will be allocated + * to store references to multiple ZSTD_DDict. That is, multiple calls of ZSTD_refDDict() + * using a given ZSTD_DCtx, rather than overwriting the previous DDict reference, will instead + * store all references. At decompression time, the appropriate dictID is selected + * from the set of DDicts based on the dictID in the frame. + * + * Usage is simply calling ZSTD_refDDict() on multiple dict buffers. + * + * Param has values of byte ZSTD_refMultipleDDicts_e + * + * WARNING: Enabling this parameter and calling ZSTD_DCtx_refDDict(), will trigger memory + * allocation for the hash table. ZSTD_freeDCtx() also frees this memory. + * Memory is allocated as per ZSTD_DCtx::customMem. + * + * Although this function allocates memory for the table, the user is still responsible for + * memory management of the underlying ZSTD_DDict* themselves. + */ +#define ZSTD_d_refMultipleDDicts ZSTD_d_experimentalParam4 + +/* ZSTD_d_disableHuffmanAssembly + * Set to 1 to disable the Huffman assembly implementation. + * The default value is 0, which allows zstd to use the Huffman assembly + * implementation if available. + * + * This parameter can be used to disable Huffman assembly at runtime. + * If you want to disable it at compile time you can define the macro + * ZSTD_DISABLE_ASM. + */ +#define ZSTD_d_disableHuffmanAssembly ZSTD_d_experimentalParam5 + +/* ZSTD_d_maxBlockSize + * Allowed values are between 1KB and ZSTD_BLOCKSIZE_MAX (128KB). + * The default is ZSTD_BLOCKSIZE_MAX, and setting to 0 will set to the default. + * + * Forces the decompressor to reject blocks whose content size is + * larger than the configured maxBlockSize. When maxBlockSize is + * larger than the windowSize, the windowSize is used instead. + * This saves memory on the decoder when you know all blocks are small. + * + * This option is typically used in conjunction with ZSTD_c_maxBlockSize. + * + * WARNING: This causes the decoder to reject otherwise valid frames + * that have block sizes larger than the configured maxBlockSize. + */ +#define ZSTD_d_maxBlockSize ZSTD_d_experimentalParam6 + + +/*! ZSTD_DCtx_setFormat() : + * This function is REDUNDANT. Prefer ZSTD_DCtx_setParameter(). + * Instruct the decoder context about what kind of data to decode next. + * This instruction is mandatory to decode data without a fully-formed header, + * such ZSTD_f_zstd1_magicless for example. + * @return : 0, or an error code (which can be tested using ZSTD_isError()). */ +ZSTD_DEPRECATED("use ZSTD_DCtx_setParameter() instead") +ZSTDLIB_STATIC_API +size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format); + +/*! ZSTD_decompressStream_simpleArgs() : + * Same as ZSTD_decompressStream(), + * but using only integral types as arguments. + * This can be helpful for binders from dynamic languages + * which have troubles handling structures containing memory pointers. + */ +ZSTDLIB_STATIC_API size_t ZSTD_decompressStream_simpleArgs ( + ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, size_t* dstPos, + const void* src, size_t srcSize, size_t* srcPos); + + +/******************************************************************** +* Advanced streaming functions +* Warning : most of these functions are now redundant with the Advanced API. +* Once Advanced API reaches "stable" status, +* redundant functions will be deprecated, and then at some point removed. +********************************************************************/ + +/*===== Advanced Streaming compression functions =====*/ + +/*! ZSTD_initCStream_srcSize() : + * This function is DEPRECATED, and equivalent to: + * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + * ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any) + * ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); + * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + * + * pledgedSrcSize must be correct. If it is not known at init time, use + * ZSTD_CONTENTSIZE_UNKNOWN. Note that, for compatibility with older programs, + * "0" also disables frame content size field. It may be enabled in the future. + * This prototype will generate compilation warnings. + */ +ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API +size_t ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, + int compressionLevel, + unsigned long long pledgedSrcSize); + +/*! ZSTD_initCStream_usingDict() : + * This function is DEPRECATED, and is equivalent to: + * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + * ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); + * ZSTD_CCtx_loadDictionary(zcs, dict, dictSize); + * + * Creates of an internal CDict (incompatible with static CCtx), except if + * dict == NULL or dictSize < 8, in which case no dict is used. + * Note: dict is loaded with ZSTD_dct_auto (treated as a full zstd dictionary if + * it begins with ZSTD_MAGIC_DICTIONARY, else as raw content) and ZSTD_dlm_byCopy. + * This prototype will generate compilation warnings. + */ +ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API +size_t ZSTD_initCStream_usingDict(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, + int compressionLevel); + +/*! ZSTD_initCStream_advanced() : + * This function is DEPRECATED, and is equivalent to: + * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + * ZSTD_CCtx_setParams(zcs, params); + * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + * ZSTD_CCtx_loadDictionary(zcs, dict, dictSize); + * + * dict is loaded with ZSTD_dct_auto and ZSTD_dlm_byCopy. + * pledgedSrcSize must be correct. + * If srcSize is not known at init time, use value ZSTD_CONTENTSIZE_UNKNOWN. + * This prototype will generate compilation warnings. + */ +ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API +size_t ZSTD_initCStream_advanced(ZSTD_CStream* zcs, + const void* dict, size_t dictSize, + ZSTD_parameters params, + unsigned long long pledgedSrcSize); + +/*! ZSTD_initCStream_usingCDict() : + * This function is DEPRECATED, and equivalent to: + * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + * ZSTD_CCtx_refCDict(zcs, cdict); + * + * note : cdict will just be referenced, and must outlive compression session + * This prototype will generate compilation warnings. + */ +ZSTD_DEPRECATED("use ZSTD_CCtx_reset and ZSTD_CCtx_refCDict, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API +size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict* cdict); + +/*! ZSTD_initCStream_usingCDict_advanced() : + * This function is DEPRECATED, and is equivalent to: + * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + * ZSTD_CCtx_setFParams(zcs, fParams); + * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + * ZSTD_CCtx_refCDict(zcs, cdict); + * + * same as ZSTD_initCStream_usingCDict(), with control over frame parameters. + * pledgedSrcSize must be correct. If srcSize is not known at init time, use + * value ZSTD_CONTENTSIZE_UNKNOWN. + * This prototype will generate compilation warnings. + */ +ZSTD_DEPRECATED("use ZSTD_CCtx_reset and ZSTD_CCtx_refCDict, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API +size_t ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, + const ZSTD_CDict* cdict, + ZSTD_frameParameters fParams, + unsigned long long pledgedSrcSize); + +/*! ZSTD_resetCStream() : + * This function is DEPRECATED, and is equivalent to: + * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); + * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); + * Note: ZSTD_resetCStream() interprets pledgedSrcSize == 0 as ZSTD_CONTENTSIZE_UNKNOWN, but + * ZSTD_CCtx_setPledgedSrcSize() does not do the same, so ZSTD_CONTENTSIZE_UNKNOWN must be + * explicitly specified. + * + * start a new frame, using same parameters from previous frame. + * This is typically useful to skip dictionary loading stage, since it will reuse it in-place. + * Note that zcs must be init at least once before using ZSTD_resetCStream(). + * If pledgedSrcSize is not known at reset time, use macro ZSTD_CONTENTSIZE_UNKNOWN. + * If pledgedSrcSize > 0, its value must be correct, as it will be written in header, and controlled at the end. + * For the time being, pledgedSrcSize==0 is interpreted as "srcSize unknown" for compatibility with older programs, + * but it will change to mean "empty" in future version, so use macro ZSTD_CONTENTSIZE_UNKNOWN instead. + * @return : 0, or an error code (which can be tested using ZSTD_isError()) + * This prototype will generate compilation warnings. + */ +ZSTD_DEPRECATED("use ZSTD_CCtx_reset, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API +size_t ZSTD_resetCStream(ZSTD_CStream* zcs, unsigned long long pledgedSrcSize); + + +typedef struct { + unsigned long long ingested; /* nb input bytes read and buffered */ + unsigned long long consumed; /* nb input bytes actually compressed */ + unsigned long long produced; /* nb of compressed bytes generated and buffered */ + unsigned long long flushed; /* nb of compressed bytes flushed : not provided; can be tracked from caller side */ + unsigned currentJobID; /* MT only : latest started job nb */ + unsigned nbActiveWorkers; /* MT only : nb of workers actively compressing at probe time */ +} ZSTD_frameProgression; + +/* ZSTD_getFrameProgression() : + * tells how much data has been ingested (read from input) + * consumed (input actually compressed) and produced (output) for current frame. + * Note : (ingested - consumed) is amount of input data buffered internally, not yet compressed. + * Aggregates progression inside active worker threads. + */ +ZSTDLIB_STATIC_API ZSTD_frameProgression ZSTD_getFrameProgression(const ZSTD_CCtx* cctx); + +/*! ZSTD_toFlushNow() : + * Tell how many bytes are ready to be flushed immediately. + * Useful for multithreading scenarios (nbWorkers >= 1). + * Probe the oldest active job, defined as oldest job not yet entirely flushed, + * and check its output buffer. + * @return : amount of data stored in oldest job and ready to be flushed immediately. + * if @return == 0, it means either : + * + there is no active job (could be checked with ZSTD_frameProgression()), or + * + oldest job is still actively compressing data, + * but everything it has produced has also been flushed so far, + * therefore flush speed is limited by production speed of oldest job + * irrespective of the speed of concurrent (and newer) jobs. + */ +ZSTDLIB_STATIC_API size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx); + + +/*===== Advanced Streaming decompression functions =====*/ + +/*! + * This function is deprecated, and is equivalent to: + * + * ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); + * ZSTD_DCtx_loadDictionary(zds, dict, dictSize); + * + * note: no dictionary will be used if dict == NULL or dictSize < 8 + */ +ZSTD_DEPRECATED("use ZSTD_DCtx_reset + ZSTD_DCtx_loadDictionary, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize); + +/*! + * This function is deprecated, and is equivalent to: + * + * ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); + * ZSTD_DCtx_refDDict(zds, ddict); + * + * note : ddict is referenced, it must outlive decompression session + */ +ZSTD_DEPRECATED("use ZSTD_DCtx_reset + ZSTD_DCtx_refDDict, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* zds, const ZSTD_DDict* ddict); + +/*! + * This function is deprecated, and is equivalent to: + * + * ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); + * + * reuse decompression parameters from previous init; saves dictionary loading + */ +ZSTD_DEPRECATED("use ZSTD_DCtx_reset, see zstd.h for detailed instructions") +ZSTDLIB_STATIC_API size_t ZSTD_resetDStream(ZSTD_DStream* zds); + + +/* ********************* BLOCK-LEVEL SEQUENCE PRODUCER API ********************* + * + * *** OVERVIEW *** + * The Block-Level Sequence Producer API allows users to provide their own custom + * sequence producer which libzstd invokes to process each block. The produced list + * of sequences (literals and matches) is then post-processed by libzstd to produce + * valid compressed blocks. + * + * This block-level offload API is a more granular complement of the existing + * frame-level offload API compressSequences() (introduced in v1.5.1). It offers + * an easier migration story for applications already integrated with libzstd: the + * user application continues to invoke the same compression functions + * ZSTD_compress2() or ZSTD_compressStream2() as usual, and transparently benefits + * from the specific advantages of the external sequence producer. For example, + * the sequence producer could be tuned to take advantage of known characteristics + * of the input, to offer better speed / ratio, or could leverage hardware + * acceleration not available within libzstd itself. + * + * See contrib/externalSequenceProducer for an example program employing the + * Block-Level Sequence Producer API. + * + * *** USAGE *** + * The user is responsible for implementing a function of type + * ZSTD_sequenceProducer_F. For each block, zstd will pass the following + * arguments to the user-provided function: + * + * - sequenceProducerState: a pointer to a user-managed state for the sequence + * producer. + * + * - outSeqs, outSeqsCapacity: an output buffer for the sequence producer. + * outSeqsCapacity is guaranteed >= ZSTD_sequenceBound(srcSize). The memory + * backing outSeqs is managed by the CCtx. + * + * - src, srcSize: an input buffer for the sequence producer to parse. + * srcSize is guaranteed to be <= ZSTD_BLOCKSIZE_MAX. + * + * - dict, dictSize: a history buffer, which may be empty, which the sequence + * producer may reference as it parses the src buffer. Currently, zstd will + * always pass dictSize == 0 into external sequence producers, but this will + * change in the future. + * + * - compressionLevel: a signed integer representing the zstd compression level + * set by the user for the current operation. The sequence producer may choose + * to use this information to change its compression strategy and speed/ratio + * tradeoff. Note: the compression level does not reflect zstd parameters set + * through the advanced API. + * + * - windowSize: a size_t representing the maximum allowed offset for external + * sequences. Note that sequence offsets are sometimes allowed to exceed the + * windowSize if a dictionary is present, see doc/zstd_compression_format.md + * for details. + * + * The user-provided function shall return a size_t representing the number of + * sequences written to outSeqs. This return value will be treated as an error + * code if it is greater than outSeqsCapacity. The return value must be non-zero + * if srcSize is non-zero. The ZSTD_SEQUENCE_PRODUCER_ERROR macro is provided + * for convenience, but any value greater than outSeqsCapacity will be treated as + * an error code. + * + * If the user-provided function does not return an error code, the sequences + * written to outSeqs must be a valid parse of the src buffer. Data corruption may + * occur if the parse is not valid. A parse is defined to be valid if the + * following conditions hold: + * - The sum of matchLengths and literalLengths must equal srcSize. + * - All sequences in the parse, except for the final sequence, must have + * matchLength >= ZSTD_MINMATCH_MIN. The final sequence must have + * matchLength >= ZSTD_MINMATCH_MIN or matchLength == 0. + * - All offsets must respect the windowSize parameter as specified in + * doc/zstd_compression_format.md. + * - If the final sequence has matchLength == 0, it must also have offset == 0. + * + * zstd will only validate these conditions (and fail compression if they do not + * hold) if the ZSTD_c_validateSequences cParam is enabled. Note that sequence + * validation has a performance cost. + * + * If the user-provided function returns an error, zstd will either fall back + * to an internal sequence producer or fail the compression operation. The user can + * choose between the two behaviors by setting the ZSTD_c_enableSeqProducerFallback + * cParam. Fallback compression will follow any other cParam settings, such as + * compression level, the same as in a normal compression operation. + * + * The user shall instruct zstd to use a particular ZSTD_sequenceProducer_F + * function by calling + * ZSTD_registerSequenceProducer(cctx, + * sequenceProducerState, + * sequenceProducer) + * This setting will persist until the next parameter reset of the CCtx. + * + * The sequenceProducerState must be initialized by the user before calling + * ZSTD_registerSequenceProducer(). The user is responsible for destroying the + * sequenceProducerState. + * + * *** LIMITATIONS *** + * This API is compatible with all zstd compression APIs which respect advanced parameters. + * However, there are three limitations: + * + * First, the ZSTD_c_enableLongDistanceMatching cParam is not currently supported. + * COMPRESSION WILL FAIL if it is enabled and the user tries to compress with a block-level + * external sequence producer. + * - Note that ZSTD_c_enableLongDistanceMatching is auto-enabled by default in some + * cases (see its documentation for details). Users must explicitly set + * ZSTD_c_enableLongDistanceMatching to ZSTD_ps_disable in such cases if an external + * sequence producer is registered. + * - As of this writing, ZSTD_c_enableLongDistanceMatching is disabled by default + * whenever ZSTD_c_windowLog < 128MB, but that's subject to change. Users should + * check the docs on ZSTD_c_enableLongDistanceMatching whenever the Block-Level Sequence + * Producer API is used in conjunction with advanced settings (like ZSTD_c_windowLog). + * + * Second, history buffers are not currently supported. Concretely, zstd will always pass + * dictSize == 0 to the external sequence producer (for now). This has two implications: + * - Dictionaries are not currently supported. Compression will *not* fail if the user + * references a dictionary, but the dictionary won't have any effect. + * - Stream history is not currently supported. All advanced compression APIs, including + * streaming APIs, work with external sequence producers, but each block is treated as + * an independent chunk without history from previous blocks. + * + * Third, multi-threading within a single compression is not currently supported. In other words, + * COMPRESSION WILL FAIL if ZSTD_c_nbWorkers > 0 and an external sequence producer is registered. + * Multi-threading across compressions is fine: simply create one CCtx per thread. + * + * Long-term, we plan to overcome all three limitations. There is no technical blocker to + * overcoming them. It is purely a question of engineering effort. + */ + +#define ZSTD_SEQUENCE_PRODUCER_ERROR ((size_t)(-1)) + +typedef size_t (*ZSTD_sequenceProducer_F) ( + void* sequenceProducerState, + ZSTD_Sequence* outSeqs, size_t outSeqsCapacity, + const void* src, size_t srcSize, + const void* dict, size_t dictSize, + int compressionLevel, + size_t windowSize +); + +/*! ZSTD_registerSequenceProducer() : + * Instruct zstd to use a block-level external sequence producer function. + * + * The sequenceProducerState must be initialized by the caller, and the caller is + * responsible for managing its lifetime. This parameter is sticky across + * compressions. It will remain set until the user explicitly resets compression + * parameters. + * + * Sequence producer registration is considered to be an "advanced parameter", + * part of the "advanced API". This means it will only have an effect on compression + * APIs which respect advanced parameters, such as compress2() and compressStream2(). + * Older compression APIs such as compressCCtx(), which predate the introduction of + * "advanced parameters", will ignore any external sequence producer setting. + * + * The sequence producer can be "cleared" by registering a NULL function pointer. This + * removes all limitations described above in the "LIMITATIONS" section of the API docs. + * + * The user is strongly encouraged to read the full API documentation (above) before + * calling this function. */ +ZSTDLIB_STATIC_API void +ZSTD_registerSequenceProducer( + ZSTD_CCtx* cctx, + void* sequenceProducerState, + ZSTD_sequenceProducer_F sequenceProducer +); + +/*! ZSTD_CCtxParams_registerSequenceProducer() : + * Same as ZSTD_registerSequenceProducer(), but operates on ZSTD_CCtx_params. + * This is used for accurate size estimation with ZSTD_estimateCCtxSize_usingCCtxParams(), + * which is needed when creating a ZSTD_CCtx with ZSTD_initStaticCCtx(). + * + * If you are using the external sequence producer API in a scenario where ZSTD_initStaticCCtx() + * is required, then this function is for you. Otherwise, you probably don't need it. + * + * See tests/zstreamtest.c for example usage. */ +ZSTDLIB_STATIC_API void +ZSTD_CCtxParams_registerSequenceProducer( + ZSTD_CCtx_params* params, + void* sequenceProducerState, + ZSTD_sequenceProducer_F sequenceProducer +); + + +/********************************************************************* +* Buffer-less and synchronous inner streaming functions (DEPRECATED) +* +* This API is deprecated, and will be removed in a future version. +* It allows streaming (de)compression with user allocated buffers. +* However, it is hard to use, and not as well tested as the rest of +* our API. +* +* Please use the normal streaming API instead: ZSTD_compressStream2, +* and ZSTD_decompressStream. +* If there is functionality that you need, but it doesn't provide, +* please open an issue on our GitHub. +********************************************************************* */ + +/** + Buffer-less streaming compression (synchronous mode) + + A ZSTD_CCtx object is required to track streaming operations. + Use ZSTD_createCCtx() / ZSTD_freeCCtx() to manage resource. + ZSTD_CCtx object can be reused multiple times within successive compression operations. + + Start by initializing a context. + Use ZSTD_compressBegin(), or ZSTD_compressBegin_usingDict() for dictionary compression. + + Then, consume your input using ZSTD_compressContinue(). + There are some important considerations to keep in mind when using this advanced function : + - ZSTD_compressContinue() has no internal buffer. It uses externally provided buffers only. + - Interface is synchronous : input is consumed entirely and produces 1+ compressed blocks. + - Caller must ensure there is enough space in `dst` to store compressed data under worst case scenario. + Worst case evaluation is provided by ZSTD_compressBound(). + ZSTD_compressContinue() doesn't guarantee recover after a failed compression. + - ZSTD_compressContinue() presumes prior input ***is still accessible and unmodified*** (up to maximum distance size, see WindowLog). + It remembers all previous contiguous blocks, plus one separated memory segment (which can itself consists of multiple contiguous blocks) + - ZSTD_compressContinue() detects that prior input has been overwritten when `src` buffer overlaps. + In which case, it will "discard" the relevant memory section from its history. + + Finish a frame with ZSTD_compressEnd(), which will write the last block(s) and optional checksum. + It's possible to use srcSize==0, in which case, it will write a final empty block to end the frame. + Without last block mark, frames are considered unfinished (hence corrupted) by compliant decoders. + + `ZSTD_CCtx` object can be reused (ZSTD_compressBegin()) to compress again. +*/ + +/*===== Buffer-less streaming compression functions =====*/ +ZSTD_DEPRECATED("The buffer-less API is deprecated in favor of the normal streaming API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel); +ZSTD_DEPRECATED("The buffer-less API is deprecated in favor of the normal streaming API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel); +ZSTD_DEPRECATED("The buffer-less API is deprecated in favor of the normal streaming API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict); /**< note: fails if cdict==NULL */ + +ZSTD_DEPRECATED("This function will likely be removed in a future release. It is misleading and has very limited utility.") +ZSTDLIB_STATIC_API +size_t ZSTD_copyCCtx(ZSTD_CCtx* cctx, const ZSTD_CCtx* preparedCCtx, unsigned long long pledgedSrcSize); /**< note: if pledgedSrcSize is not known, use ZSTD_CONTENTSIZE_UNKNOWN */ + +ZSTD_DEPRECATED("The buffer-less API is deprecated in favor of the normal streaming API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_compressContinue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); +ZSTD_DEPRECATED("The buffer-less API is deprecated in favor of the normal streaming API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_compressEnd(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); + +/* The ZSTD_compressBegin_advanced() and ZSTD_compressBegin_usingCDict_advanced() are now DEPRECATED and will generate a compiler warning */ +ZSTD_DEPRECATED("use advanced API to access custom parameters") +ZSTDLIB_STATIC_API +size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_parameters params, unsigned long long pledgedSrcSize); /**< pledgedSrcSize : If srcSize is not known at init time, use ZSTD_CONTENTSIZE_UNKNOWN */ +ZSTD_DEPRECATED("use advanced API to access custom parameters") +ZSTDLIB_STATIC_API +size_t ZSTD_compressBegin_usingCDict_advanced(ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize); /* compression parameters are already set within cdict. pledgedSrcSize must be correct. If srcSize is not known, use macro ZSTD_CONTENTSIZE_UNKNOWN */ +/** + Buffer-less streaming decompression (synchronous mode) + + A ZSTD_DCtx object is required to track streaming operations. + Use ZSTD_createDCtx() / ZSTD_freeDCtx() to manage it. + A ZSTD_DCtx object can be reused multiple times. + + First typical operation is to retrieve frame parameters, using ZSTD_getFrameHeader(). + Frame header is extracted from the beginning of compressed frame, so providing only the frame's beginning is enough. + Data fragment must be large enough to ensure successful decoding. + `ZSTD_frameHeaderSize_max` bytes is guaranteed to always be large enough. + result : 0 : successful decoding, the `ZSTD_frameHeader` structure is correctly filled. + >0 : `srcSize` is too small, please provide at least result bytes on next attempt. + errorCode, which can be tested using ZSTD_isError(). + + It fills a ZSTD_frameHeader structure with important information to correctly decode the frame, + such as the dictionary ID, content size, or maximum back-reference distance (`windowSize`). + Note that these values could be wrong, either because of data corruption, or because a 3rd party deliberately spoofs false information. + As a consequence, check that values remain within valid application range. + For example, do not allocate memory blindly, check that `windowSize` is within expectation. + Each application can set its own limits, depending on local restrictions. + For extended interoperability, it is recommended to support `windowSize` of at least 8 MB. + + ZSTD_decompressContinue() needs previous data blocks during decompression, up to `windowSize` bytes. + ZSTD_decompressContinue() is very sensitive to contiguity, + if 2 blocks don't follow each other, make sure that either the compressor breaks contiguity at the same place, + or that previous contiguous segment is large enough to properly handle maximum back-reference distance. + There are multiple ways to guarantee this condition. + + The most memory efficient way is to use a round buffer of sufficient size. + Sufficient size is determined by invoking ZSTD_decodingBufferSize_min(), + which can return an error code if required value is too large for current system (in 32-bits mode). + In a round buffer methodology, ZSTD_decompressContinue() decompresses each block next to previous one, + up to the moment there is not enough room left in the buffer to guarantee decoding another full block, + which maximum size is provided in `ZSTD_frameHeader` structure, field `blockSizeMax`. + At which point, decoding can resume from the beginning of the buffer. + Note that already decoded data stored in the buffer should be flushed before being overwritten. + + There are alternatives possible, for example using two or more buffers of size `windowSize` each, though they consume more memory. + + Finally, if you control the compression process, you can also ignore all buffer size rules, + as long as the encoder and decoder progress in "lock-step", + aka use exactly the same buffer sizes, break contiguity at the same place, etc. + + Once buffers are setup, start decompression, with ZSTD_decompressBegin(). + If decompression requires a dictionary, use ZSTD_decompressBegin_usingDict() or ZSTD_decompressBegin_usingDDict(). + + Then use ZSTD_nextSrcSizeToDecompress() and ZSTD_decompressContinue() alternatively. + ZSTD_nextSrcSizeToDecompress() tells how many bytes to provide as 'srcSize' to ZSTD_decompressContinue(). + ZSTD_decompressContinue() requires this _exact_ amount of bytes, or it will fail. + + result of ZSTD_decompressContinue() is the number of bytes regenerated within 'dst' (necessarily <= dstCapacity). + It can be zero : it just means ZSTD_decompressContinue() has decoded some metadata item. + It can also be an error code, which can be tested with ZSTD_isError(). + + A frame is fully decoded when ZSTD_nextSrcSizeToDecompress() returns zero. + Context can then be reset to start a new decompression. + + Note : it's possible to know if next input to present is a header or a block, using ZSTD_nextInputType(). + This information is not required to properly decode a frame. + + == Special case : skippable frames == + + Skippable frames allow integration of user-defined data into a flow of concatenated frames. + Skippable frames will be ignored (skipped) by decompressor. + The format of skippable frames is as follows : + a) Skippable frame ID - 4 Bytes, Little endian format, any value from 0x184D2A50 to 0x184D2A5F + b) Frame Size - 4 Bytes, Little endian format, unsigned 32-bits + c) Frame Content - any content (User Data) of length equal to Frame Size + For skippable frames ZSTD_getFrameHeader() returns zfhPtr->frameType==ZSTD_skippableFrame. + For skippable frames ZSTD_decompressContinue() always returns 0 : it only skips the content. +*/ + +/*===== Buffer-less streaming decompression functions =====*/ + +ZSTDLIB_STATIC_API size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long long frameContentSize); /**< when frame content size is not known, pass in frameContentSize == ZSTD_CONTENTSIZE_UNKNOWN */ + +ZSTDLIB_STATIC_API size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx); +ZSTDLIB_STATIC_API size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize); +ZSTDLIB_STATIC_API size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict); + +ZSTDLIB_STATIC_API size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx); +ZSTDLIB_STATIC_API size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); + +/* misc */ +ZSTD_DEPRECATED("This function will likely be removed in the next minor release. It is misleading and has very limited utility.") +ZSTDLIB_STATIC_API void ZSTD_copyDCtx(ZSTD_DCtx* dctx, const ZSTD_DCtx* preparedDCtx); +typedef enum { ZSTDnit_frameHeader, ZSTDnit_blockHeader, ZSTDnit_block, ZSTDnit_lastBlock, ZSTDnit_checksum, ZSTDnit_skippableFrame } ZSTD_nextInputType_e; +ZSTDLIB_STATIC_API ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx); + + + + +/* ========================================= */ +/** Block level API (DEPRECATED) */ +/* ========================================= */ + +/*! + + This API is deprecated in favor of the regular compression API. + You can get the frame header down to 2 bytes by setting: + - ZSTD_c_format = ZSTD_f_zstd1_magicless + - ZSTD_c_contentSizeFlag = 0 + - ZSTD_c_checksumFlag = 0 + - ZSTD_c_dictIDFlag = 0 + + This API is not as well tested as our normal API, so we recommend not using it. + We will be removing it in a future version. If the normal API doesn't provide + the functionality you need, please open a GitHub issue. + + Block functions produce and decode raw zstd blocks, without frame metadata. + Frame metadata cost is typically ~12 bytes, which can be non-negligible for very small blocks (< 100 bytes). + But users will have to take in charge needed metadata to regenerate data, such as compressed and content sizes. + + A few rules to respect : + - Compressing and decompressing require a context structure + + Use ZSTD_createCCtx() and ZSTD_createDCtx() + - It is necessary to init context before starting + + compression : any ZSTD_compressBegin*() variant, including with dictionary + + decompression : any ZSTD_decompressBegin*() variant, including with dictionary + - Block size is limited, it must be <= ZSTD_getBlockSize() <= ZSTD_BLOCKSIZE_MAX == 128 KB + + If input is larger than a block size, it's necessary to split input data into multiple blocks + + For inputs larger than a single block, consider using regular ZSTD_compress() instead. + Frame metadata is not that costly, and quickly becomes negligible as source size grows larger than a block. + - When a block is considered not compressible enough, ZSTD_compressBlock() result will be 0 (zero) ! + ===> In which case, nothing is produced into `dst` ! + + User __must__ test for such outcome and deal directly with uncompressed data + + A block cannot be declared incompressible if ZSTD_compressBlock() return value was != 0. + Doing so would mess up with statistics history, leading to potential data corruption. + + ZSTD_decompressBlock() _doesn't accept uncompressed data as input_ !! + + In case of multiple successive blocks, should some of them be uncompressed, + decoder must be informed of their existence in order to follow proper history. + Use ZSTD_insertBlock() for such a case. +*/ + +/*===== Raw zstd block functions =====*/ +ZSTD_DEPRECATED("The block API is deprecated in favor of the normal compression API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_getBlockSize (const ZSTD_CCtx* cctx); +ZSTD_DEPRECATED("The block API is deprecated in favor of the normal compression API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_compressBlock (ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); +ZSTD_DEPRECATED("The block API is deprecated in favor of the normal compression API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); +ZSTD_DEPRECATED("The block API is deprecated in favor of the normal compression API. See docs.") +ZSTDLIB_STATIC_API size_t ZSTD_insertBlock (ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize); /**< insert uncompressed block into `dctx` history. Useful for multi-blocks decompression. */ + +#endif /* ZSTD_H_ZSTD_STATIC_LINKING_ONLY */ + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/include/zstd/common/allocations.h b/src/duckdb/third_party/zstd/include/zstd/common/allocations.h new file mode 100644 index 00000000..0bb1506b --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/allocations.h @@ -0,0 +1,58 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* This file provides custom allocation primitives + */ +#ifndef ZSTD_ALLOCATIONS_H +#define ZSTD_ALLOCATIONS_H + +#define ZSTD_DEPS_NEED_MALLOC +#include "zstd/common/zstd_deps.h" /* ZSTD_malloc, ZSTD_calloc, ZSTD_free, ZSTD_memset */ + +#include "zstd/common/compiler.h" /* MEM_STATIC */ +#define ZSTD_STATIC_LINKING_ONLY +#include "zstd.h" /* ZSTD_customMem */ + +namespace duckdb_zstd { + +/* custom memory allocation functions */ + +MEM_STATIC void* ZSTD_customMalloc(size_t size, ZSTD_customMem customMem) +{ + if (customMem.customAlloc) + return customMem.customAlloc(customMem.opaque, size); + return ZSTD_malloc(size); +} + +MEM_STATIC void* ZSTD_customCalloc(size_t size, ZSTD_customMem customMem) +{ + if (customMem.customAlloc) { + /* calloc implemented as malloc+memset; + * not as efficient as calloc, but next best guess for custom malloc */ + void* const ptr = customMem.customAlloc(customMem.opaque, size); + ZSTD_memset(ptr, 0, size); + return ptr; + } + return ZSTD_calloc(1, size); +} + +MEM_STATIC void ZSTD_customFree(void* ptr, ZSTD_customMem customMem) +{ + if (ptr!=NULL) { + if (customMem.customFree) + customMem.customFree(customMem.opaque, ptr); + else + ZSTD_free(ptr); + } +} + +} // namespace duckdb_zstd + +#endif /* ZSTD_ALLOCATIONS_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/bits.h b/src/duckdb/third_party/zstd/include/zstd/common/bits.h new file mode 100644 index 00000000..ecdf916d --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/bits.h @@ -0,0 +1,204 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_BITS_H +#define ZSTD_BITS_H + +#include "zstd/common/mem.h" + +namespace duckdb_zstd { + +MEM_STATIC unsigned ZSTD_countTrailingZeros32_fallback(U32 val) +{ + assert(val != 0); + { + static const U32 DeBruijnBytePos[32] = {0, 1, 28, 2, 29, 14, 24, 3, + 30, 22, 20, 15, 25, 17, 4, 8, + 31, 27, 13, 23, 21, 19, 16, 7, + 26, 12, 18, 6, 11, 5, 10, 9}; + return DeBruijnBytePos[((U32) ((val & -(S32) val) * 0x077CB531U)) >> 27]; + } +} + +MEM_STATIC unsigned ZSTD_countTrailingZeros32(U32 val) +{ + assert(val != 0); +# if defined(_MSC_VER) +# if STATIC_BMI2 == 1 + return (unsigned)_tzcnt_u32(val); +# else + if (val != 0) { + unsigned long r; + _BitScanForward(&r, val); + return (unsigned)r; + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (unsigned)__builtin_ctz(val); +# else + return ZSTD_countTrailingZeros32_fallback(val); +# endif +} + +MEM_STATIC unsigned ZSTD_countLeadingZeros32_fallback(U32 val) { + assert(val != 0); + { + static const U32 DeBruijnClz[32] = {0, 9, 1, 10, 13, 21, 2, 29, + 11, 14, 16, 18, 22, 25, 3, 30, + 8, 12, 20, 28, 15, 17, 24, 7, + 19, 27, 23, 6, 26, 5, 4, 31}; + val |= val >> 1; + val |= val >> 2; + val |= val >> 4; + val |= val >> 8; + val |= val >> 16; + return 31 - DeBruijnClz[(val * 0x07C4ACDDU) >> 27]; + } +} + +MEM_STATIC unsigned ZSTD_countLeadingZeros32(U32 val) +{ + assert(val != 0); +# if defined(_MSC_VER) +# if STATIC_BMI2 == 1 + return (unsigned)_lzcnt_u32(val); +# else + if (val != 0) { + unsigned long r; + _BitScanReverse(&r, val); + return (unsigned)(31 - r); + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (unsigned)__builtin_clz(val); +# else + return ZSTD_countLeadingZeros32_fallback(val); +# endif +} + +MEM_STATIC unsigned ZSTD_countTrailingZeros64(U64 val) +{ + assert(val != 0); +# if defined(_MSC_VER) && defined(_WIN64) +# if STATIC_BMI2 == 1 + return (unsigned)_tzcnt_u64(val); +# else + if (val != 0) { + unsigned long r; + _BitScanForward64(&r, val); + return (unsigned)r; + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) && defined(__LP64__) + return (unsigned)__builtin_ctzll(val); +# else + { + U32 mostSignificantWord = (U32)(val >> 32); + U32 leastSignificantWord = (U32)val; + if (leastSignificantWord == 0) { + return 32 + ZSTD_countTrailingZeros32(mostSignificantWord); + } else { + return ZSTD_countTrailingZeros32(leastSignificantWord); + } + } +# endif +} + +MEM_STATIC unsigned ZSTD_countLeadingZeros64(U64 val) +{ + assert(val != 0); +# if defined(_MSC_VER) && defined(_WIN64) +# if STATIC_BMI2 == 1 + return (unsigned)_lzcnt_u64(val); +# else + if (val != 0) { + unsigned long r; + _BitScanReverse64(&r, val); + return (unsigned)(63 - r); + } else { + /* Should not reach this code path */ + __assume(0); + } +# endif +# elif defined(__GNUC__) && (__GNUC__ >= 4) + return (unsigned)(__builtin_clzll(val)); +# else + { + U32 mostSignificantWord = (U32)(val >> 32); + U32 leastSignificantWord = (U32)val; + if (mostSignificantWord == 0) { + return 32 + ZSTD_countLeadingZeros32(leastSignificantWord); + } else { + return ZSTD_countLeadingZeros32(mostSignificantWord); + } + } +# endif +} + +MEM_STATIC unsigned ZSTD_NbCommonBytes(size_t val) +{ + if (MEM_isLittleEndian()) { + if (MEM_64bits()) { + return ZSTD_countTrailingZeros64((U64)val) >> 3; + } else { + return ZSTD_countTrailingZeros32((U32)val) >> 3; + } + } else { /* Big Endian CPU */ + if (MEM_64bits()) { + return ZSTD_countLeadingZeros64((U64)val) >> 3; + } else { + return ZSTD_countLeadingZeros32((U32)val) >> 3; + } + } +} + +MEM_STATIC unsigned ZSTD_highbit32(U32 val) /* compress, dictBuilder, decodeCorpus */ +{ + assert(val != 0); + return 31 - ZSTD_countLeadingZeros32(val); +} + +/* ZSTD_rotateRight_*(): + * Rotates a bitfield to the right by "count" bits. + * https://en.wikipedia.org/w/index.php?title=Circular_shift&oldid=991635599#Implementing_circular_shifts + */ +MEM_STATIC +U64 ZSTD_rotateRight_U64(U64 const value, U32 count) { + assert(count < 64); + count &= 0x3F; /* for fickle pattern recognition */ + return (value >> count) | (U64)(value << ((0U - count) & 0x3F)); +} + +MEM_STATIC +U32 ZSTD_rotateRight_U32(U32 const value, U32 count) { + assert(count < 32); + count &= 0x1F; /* for fickle pattern recognition */ + return (value >> count) | (U32)(value << ((0U - count) & 0x1F)); +} + +MEM_STATIC +U16 ZSTD_rotateRight_U16(U16 const value, U32 count) { + assert(count < 16); + count &= 0x0F; /* for fickle pattern recognition */ + return (value >> count) | (U16)(value << ((0U - count) & 0x0F)); +} + +} // namespace duckdb_zstd + +#endif /* ZSTD_BITS_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/bitstream.h b/src/duckdb/third_party/zstd/include/zstd/common/bitstream.h index 65307466..2b162429 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/bitstream.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/bitstream.h @@ -1,7 +1,7 @@ /* ****************************************************************** * bitstream * Part of FSE library - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -27,15 +27,17 @@ #include "zstd/common/compiler.h" /* UNLIKELY() */ #include "zstd/common/debug.h" /* assert(), DEBUGLOG(), RAWLOG() */ #include "zstd/common/error_private.h" /* error codes and messages */ - +#include "zstd/common/bits.h" /* ZSTD_highbit32 */ /*========================================= * Target specific =========================================*/ -#if defined(__BMI__) && defined(__GNUC__) -# include /* support for bextr (experimental) */ -#elif defined(__ICCARM__) -# include +#ifndef ZSTD_NO_INTRINSICS +# if (defined(__BMI__) || defined(__BMI2__)) && defined(__GNUC__) +# include /* support for bextr (experimental)/bzhi */ +# elif defined(__ICCARM__) +# include +# endif #endif #define STREAM_ACCUMULATOR_MIN_32 25 @@ -85,19 +87,20 @@ MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC); /*-******************************************** * bitStream decoding API (read backward) **********************************************/ +typedef size_t BitContainerType; typedef struct { - size_t bitContainer; + BitContainerType bitContainer; unsigned bitsConsumed; const char* ptr; const char* start; const char* limitPtr; } BIT_DStream_t; -typedef enum { BIT_DStream_unfinished = 0, - BIT_DStream_endOfBuffer = 1, - BIT_DStream_completed = 2, - BIT_DStream_overflow = 3 } BIT_DStream_status; /* result of BIT_reloadDStream() */ - /* 1,2,4,8 would be better for bitmap combinations, but slows down performance a bit ... :( */ +typedef enum { BIT_DStream_unfinished = 0, /* fully refilled */ + BIT_DStream_endOfBuffer = 1, /* still some bits left in bitstream */ + BIT_DStream_completed = 2, /* bitstream entirely consumed, bit-exact */ + BIT_DStream_overflow = 3 /* user requested more bits than present in bitstream */ + } BIT_DStream_status; /* result of BIT_reloadDStream() */ MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize); MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits); @@ -107,7 +110,7 @@ MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* bitD); /* Start by invoking BIT_initDStream(). * A chunk of the bitStream is then stored into a local register. -* Local register size is 64-bits on 64-bits systems, 32-bits on 32-bits systems (size_t). +* Local register size is 64-bits on 64-bits systems, 32-bits on 32-bits systems (BitContainerType). * You can then retrieve bitFields stored into the local register, **in reverse order**. * Local register is explicitly reloaded from memory by the BIT_reloadDStream() method. * A reload guarantee a minimum of ((8*sizeof(bitD->bitContainer))-7) bits when its result is BIT_DStream_unfinished. @@ -128,38 +131,6 @@ MEM_STATIC void BIT_flushBitsFast(BIT_CStream_t* bitC); MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits); /* faster, but works only if nbBits >= 1 */ - - -/*-************************************************************** -* Internal functions -****************************************************************/ -MEM_STATIC unsigned BIT_highbit32 (U32 val) -{ - assert(val != 0); - { -# if defined(_MSC_VER) /* Visual */ - unsigned long r=0; - return _BitScanReverse ( &r, val ) ? (unsigned)r : 0; -# elif defined(__GNUC__) && (__GNUC__ >= 3) /* Use GCC Intrinsic */ - return __builtin_clz (val) ^ 31; -# elif defined(__ICCARM__) /* IAR Intrinsic */ - return 31 - __CLZ(val); -# else /* Software version */ - static const unsigned DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, - 11, 14, 16, 18, 22, 25, 3, 30, - 8, 12, 20, 28, 15, 17, 24, 7, - 19, 27, 23, 6, 26, 5, 4, 31 }; - U32 v = val; - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - return DeBruijnClz[ (U32) (v * 0x07C4ACDDU) >> 27]; -# endif - } -} - /*===== Local Constants =====*/ static const unsigned BIT_mask[] = { 0, 1, 3, 7, 0xF, 0x1F, @@ -189,16 +160,26 @@ MEM_STATIC size_t BIT_initCStream(BIT_CStream_t* bitC, return 0; } +FORCE_INLINE_TEMPLATE size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits) +{ +#if defined(STATIC_BMI2) && STATIC_BMI2 == 1 && !defined(ZSTD_NO_INTRINSICS) + return _bzhi_u64(bitContainer, nbBits); +#else + assert(nbBits < BIT_MASK_SIZE); + return bitContainer & BIT_mask[nbBits]; +#endif +} + /*! BIT_addBits() : * can add up to 31 bits into `bitC`. * Note : does not check for register overflow ! */ MEM_STATIC void BIT_addBits(BIT_CStream_t* bitC, size_t value, unsigned nbBits) { - MEM_STATIC_ASSERT(BIT_MASK_SIZE == 32); + DEBUG_STATIC_ASSERT(BIT_MASK_SIZE == 32); assert(nbBits < BIT_MASK_SIZE); assert(nbBits + bitC->bitPos < sizeof(bitC->bitContainer) * 8); - bitC->bitContainer |= (value & BIT_mask[nbBits]) << bitC->bitPos; + bitC->bitContainer |= BIT_getLowerBits(value, nbBits) << bitC->bitPos; bitC->bitPos += nbBits; } @@ -268,7 +249,7 @@ MEM_STATIC size_t BIT_closeCStream(BIT_CStream_t* bitC) */ MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, size_t srcSize) { - if (srcSize < 1) { memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); } + if (srcSize < 1) { ZSTD_memset(bitD, 0, sizeof(*bitD)); return ERROR(srcSize_wrong); } bitD->start = (const char*)srcBuffer; bitD->limitPtr = bitD->start + sizeof(bitD->bitContainer); @@ -277,35 +258,35 @@ MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, si bitD->ptr = (const char*)srcBuffer + srcSize - sizeof(bitD->bitContainer); bitD->bitContainer = MEM_readLEST(bitD->ptr); { BYTE const lastByte = ((const BYTE*)srcBuffer)[srcSize-1]; - bitD->bitsConsumed = lastByte ? 8 - BIT_highbit32(lastByte) : 0; /* ensures bitsConsumed is always set */ + bitD->bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; /* ensures bitsConsumed is always set */ if (lastByte == 0) return ERROR(GENERIC); /* endMark not present */ } } else { bitD->ptr = bitD->start; bitD->bitContainer = *(const BYTE*)(bitD->start); switch(srcSize) { - case 7: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[6]) << (sizeof(bitD->bitContainer)*8 - 16); - /* fall-through */ + case 7: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[6]) << (sizeof(bitD->bitContainer)*8 - 16); + ZSTD_FALLTHROUGH; - case 6: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[5]) << (sizeof(bitD->bitContainer)*8 - 24); - /* fall-through */ + case 6: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[5]) << (sizeof(bitD->bitContainer)*8 - 24); + ZSTD_FALLTHROUGH; - case 5: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[4]) << (sizeof(bitD->bitContainer)*8 - 32); - /* fall-through */ + case 5: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[4]) << (sizeof(bitD->bitContainer)*8 - 32); + ZSTD_FALLTHROUGH; - case 4: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[3]) << 24; - /* fall-through */ + case 4: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[3]) << 24; + ZSTD_FALLTHROUGH; - case 3: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[2]) << 16; - /* fall-through */ + case 3: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[2]) << 16; + ZSTD_FALLTHROUGH; - case 2: bitD->bitContainer += (size_t)(((const BYTE*)(srcBuffer))[1]) << 8; - /* fall-through */ + case 2: bitD->bitContainer += (BitContainerType)(((const BYTE*)(srcBuffer))[1]) << 8; + ZSTD_FALLTHROUGH; default: break; } { BYTE const lastByte = ((const BYTE*)srcBuffer)[srcSize-1]; - bitD->bitsConsumed = lastByte ? 8 - BIT_highbit32(lastByte) : 0; + bitD->bitsConsumed = lastByte ? 8 - ZSTD_highbit32(lastByte) : 0; if (lastByte == 0) return ERROR(corruption_detected); /* endMark not present */ } bitD->bitsConsumed += (U32)(sizeof(bitD->bitContainer) - srcSize)*8; @@ -314,23 +295,26 @@ MEM_STATIC size_t BIT_initDStream(BIT_DStream_t* bitD, const void* srcBuffer, si return srcSize; } -MEM_STATIC size_t BIT_getUpperBits(size_t bitContainer, U32 const start) +FORCE_INLINE_TEMPLATE size_t BIT_getUpperBits(BitContainerType bitContainer, U32 const start) { return bitContainer >> start; } -MEM_STATIC size_t BIT_getMiddleBits(size_t bitContainer, U32 const start, U32 const nbBits) +FORCE_INLINE_TEMPLATE size_t BIT_getMiddleBits(BitContainerType bitContainer, U32 const start, U32 const nbBits) { U32 const regMask = sizeof(bitContainer)*8 - 1; /* if start > regMask, bitstream is corrupted, and result is undefined */ assert(nbBits < BIT_MASK_SIZE); + /* x86 transform & ((1 << nbBits) - 1) to bzhi instruction, it is better + * than accessing memory. When bmi2 instruction is not present, we consider + * such cpus old (pre-Haswell, 2013) and their performance is not of that + * importance. + */ +#if defined(__x86_64__) || defined(_M_X86) + return (bitContainer >> (start & regMask)) & ((((U64)1) << nbBits) - 1); +#else return (bitContainer >> (start & regMask)) & BIT_mask[nbBits]; -} - -MEM_STATIC size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits) -{ - assert(nbBits < BIT_MASK_SIZE); - return bitContainer & BIT_mask[nbBits]; +#endif } /*! BIT_lookBits() : @@ -339,7 +323,7 @@ MEM_STATIC size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits) * On 32-bits, maxNbBits==24. * On 64-bits, maxNbBits==56. * @return : value extracted */ -MEM_STATIC size_t BIT_lookBits(const BIT_DStream_t* bitD, U32 nbBits) +FORCE_INLINE_TEMPLATE size_t BIT_lookBits(const BIT_DStream_t* bitD, U32 nbBits) { /* arbitrate between double-shift and shift+mask */ #if 1 @@ -362,7 +346,7 @@ MEM_STATIC size_t BIT_lookBitsFast(const BIT_DStream_t* bitD, U32 nbBits) return (bitD->bitContainer << (bitD->bitsConsumed & regMask)) >> (((regMask+1)-nbBits) & regMask); } -MEM_STATIC void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) +FORCE_INLINE_TEMPLATE void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) { bitD->bitsConsumed += nbBits; } @@ -371,7 +355,7 @@ MEM_STATIC void BIT_skipBits(BIT_DStream_t* bitD, U32 nbBits) * Read (consume) next n bits from local register and update. * Pay attention to not read more than nbBits contained into local register. * @return : extracted value. */ -MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits) +FORCE_INLINE_TEMPLATE size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits) { size_t const value = BIT_lookBits(bitD, nbBits); BIT_skipBits(bitD, nbBits); @@ -379,7 +363,7 @@ MEM_STATIC size_t BIT_readBits(BIT_DStream_t* bitD, unsigned nbBits) } /*! BIT_readBitsFast() : - * unsafe version; only works only if nbBits >= 1 */ + * unsafe version; only works if nbBits >= 1 */ MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits) { size_t const value = BIT_lookBitsFast(bitD, nbBits); @@ -388,6 +372,21 @@ MEM_STATIC size_t BIT_readBitsFast(BIT_DStream_t* bitD, unsigned nbBits) return value; } +/*! BIT_reloadDStream_internal() : + * Simple variant of BIT_reloadDStream(), with two conditions: + * 1. bitstream is valid : bitsConsumed <= sizeof(bitD->bitContainer)*8 + * 2. look window is valid after shifted down : bitD->ptr >= bitD->start + */ +MEM_STATIC BIT_DStream_status BIT_reloadDStream_internal(BIT_DStream_t* bitD) +{ + assert(bitD->bitsConsumed <= sizeof(bitD->bitContainer)*8); + bitD->ptr -= bitD->bitsConsumed >> 3; + assert(bitD->ptr >= bitD->start); + bitD->bitsConsumed &= 7; + bitD->bitContainer = MEM_readLEST(bitD->ptr); + return BIT_DStream_unfinished; +} + /*! BIT_reloadDStreamFast() : * Similar to BIT_reloadDStream(), but with two differences: * 1. bitsConsumed <= sizeof(bitD->bitContainer)*8 must hold! @@ -398,31 +397,35 @@ MEM_STATIC BIT_DStream_status BIT_reloadDStreamFast(BIT_DStream_t* bitD) { if (UNLIKELY(bitD->ptr < bitD->limitPtr)) return BIT_DStream_overflow; - assert(bitD->bitsConsumed <= sizeof(bitD->bitContainer)*8); - bitD->ptr -= bitD->bitsConsumed >> 3; - bitD->bitsConsumed &= 7; - bitD->bitContainer = MEM_readLEST(bitD->ptr); - return BIT_DStream_unfinished; + return BIT_reloadDStream_internal(bitD); } /*! BIT_reloadDStream() : * Refill `bitD` from buffer previously set in BIT_initDStream() . - * This function is safe, it guarantees it will not read beyond src buffer. + * This function is safe, it guarantees it will not never beyond src buffer. * @return : status of `BIT_DStream_t` internal register. * when status == BIT_DStream_unfinished, internal register is filled with at least 25 or 57 bits */ -MEM_STATIC BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD) +FORCE_INLINE_TEMPLATE BIT_DStream_status BIT_reloadDStream(BIT_DStream_t* bitD) { - if (bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8)) /* overflow detected, like end of stream */ + /* note : once in overflow mode, a bitstream remains in this mode until it's reset */ + if (UNLIKELY(bitD->bitsConsumed > (sizeof(bitD->bitContainer)*8))) { + static const BitContainerType zeroFilled = 0; + bitD->ptr = (const char*)&zeroFilled; /* aliasing is allowed for char */ + /* overflow detected, erroneous scenario or end of stream: no update */ return BIT_DStream_overflow; + } + + assert(bitD->ptr >= bitD->start); if (bitD->ptr >= bitD->limitPtr) { - return BIT_reloadDStreamFast(bitD); + return BIT_reloadDStream_internal(bitD); } if (bitD->ptr == bitD->start) { + /* reached end of bitStream => no update */ if (bitD->bitsConsumed < sizeof(bitD->bitContainer)*8) return BIT_DStream_endOfBuffer; return BIT_DStream_completed; } - /* start < ptr < limitPtr */ + /* start < ptr < limitPtr => cautious update */ { U32 nbBytes = bitD->bitsConsumed >> 3; BIT_DStream_status result = BIT_DStream_unfinished; if (bitD->ptr - nbBytes < bitD->start) { @@ -444,6 +447,6 @@ MEM_STATIC unsigned BIT_endOfDStream(const BIT_DStream_t* DStream) return ((DStream->ptr == DStream->start) && (DStream->bitsConsumed == sizeof(DStream->bitContainer)*8)); } -} +} // namespace duckdb_zstd #endif /* BITSTREAM_H_MODULE */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/compiler.h b/src/duckdb/third_party/zstd/include/zstd/common/compiler.h index b94dbad1..f880f0b1 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/compiler.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/compiler.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -11,6 +11,10 @@ #ifndef ZSTD_COMPILER_H #define ZSTD_COMPILER_H +#include + +#include "zstd/common/portability_macros.h" + /*-******************************************************* * Compiler specifics *********************************************************/ @@ -38,12 +42,30 @@ #endif +/** + On MSVC qsort requires that functions passed into it use the __cdecl calling conversion(CC). + This explicitly marks such functions as __cdecl so that the code will still compile + if a CC other than __cdecl has been made the default. +*/ +#if defined(_MSC_VER) +# define WIN_CDECL __cdecl +#else +# define WIN_CDECL +#endif + +/* UNUSED_ATTR tells the compiler it is okay if the function is unused. */ +#if defined(__GNUC__) +# define UNUSED_ATTR __attribute__((unused)) +#else +# define UNUSED_ATTR +#endif + /** * FORCE_INLINE_TEMPLATE is used to define C "templates", which take constant * parameters. They must be inlined for the compiler to eliminate the constant * branches. */ -#define FORCE_INLINE_TEMPLATE static INLINE_KEYWORD FORCE_INLINE_ATTR +#define FORCE_INLINE_TEMPLATE static INLINE_KEYWORD FORCE_INLINE_ATTR UNUSED_ATTR /** * HINT_INLINE is used to help the compiler generate better code. It is *not* * used for "templates", so it can be tweaked based on the compilers @@ -58,14 +80,28 @@ #if !defined(__clang__) && defined(__GNUC__) && __GNUC__ >= 4 && __GNUC_MINOR__ >= 8 && __GNUC__ < 5 # define HINT_INLINE static INLINE_KEYWORD #else -# define HINT_INLINE static INLINE_KEYWORD FORCE_INLINE_ATTR +# define HINT_INLINE FORCE_INLINE_TEMPLATE #endif -/* UNUSED_ATTR tells the compiler it is okay if the function is unused. */ +/* "soft" inline : + * The compiler is free to select if it's a good idea to inline or not. + * The main objective is to silence compiler warnings + * when a defined function in included but not used. + * + * Note : this macro is prefixed `MEM_` because it used to be provided by `mem.h` unit. + * Updating the prefix is probably preferable, but requires a fairly large codemod, + * since this name is used everywhere. + */ +#ifndef MEM_STATIC /* already defined in Linux Kernel mem.h */ #if defined(__GNUC__) -# define UNUSED_ATTR __attribute__((unused)) +# define MEM_STATIC static __inline UNUSED_ATTR +#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) +# define MEM_STATIC static inline +#elif defined(_MSC_VER) +# define MEM_STATIC static __inline #else -# define UNUSED_ATTR +# define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ +#endif #endif /* force no inlining */ @@ -79,67 +115,58 @@ # endif #endif + /* target attribute */ -#ifndef __has_attribute - #define __has_attribute(x) 0 /* Compatibility with non-clang compilers. */ -#endif #if defined(__GNUC__) || defined(__ICCARM__) # define TARGET_ATTRIBUTE(target) __attribute__((__target__(target))) #else # define TARGET_ATTRIBUTE(target) #endif -/* Enable runtime BMI2 dispatch based on the CPU. - * Enabled for clang & gcc >=4.8 on x86 when BMI2 isn't enabled by default. +/* Target attribute for BMI2 dynamic dispatch. + * Enable lzcnt, bmi, and bmi2. + * We test for bmi1 & bmi2. lzcnt is included in bmi1. */ -#ifndef DYNAMIC_BMI2 - #if ((defined(__clang__) && __has_attribute(__target__)) \ - || (defined(__GNUC__) \ - && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))) \ - && (defined(__x86_64__) || defined(_M_X86)) \ - && !defined(__BMI2__) - # define DYNAMIC_BMI2 1 - #else - # define DYNAMIC_BMI2 0 - #endif -#endif +#define BMI2_TARGET_ATTRIBUTE TARGET_ATTRIBUTE("lzcnt,bmi,bmi2") /* prefetch * can be disabled, by declaring NO_PREFETCH build macro */ #if defined(NO_PREFETCH) -# define PREFETCH_L1(ptr) (void)(ptr) /* disabled */ -# define PREFETCH_L2(ptr) (void)(ptr) /* disabled */ +# define PREFETCH_L1(ptr) do { (void)(ptr); } while (0) /* disabled */ +# define PREFETCH_L2(ptr) do { (void)(ptr); } while (0) /* disabled */ #else -# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) /* _mm_prefetch() is not defined outside of x86/x64 */ +# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) && !defined(_M_ARM64EC) /* _mm_prefetch() is not defined outside of x86/x64 */ # include /* https://msdn.microsoft.com/fr-fr/library/84szxsww(v=vs.90).aspx */ # define PREFETCH_L1(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T0) # define PREFETCH_L2(ptr) _mm_prefetch((const char*)(ptr), _MM_HINT_T1) -# elif defined(__aarch64__) -# define PREFETCH_L1(ptr) __asm__ __volatile__("prfm pldl1keep, %0" ::"Q"(*(ptr))) -# define PREFETCH_L2(ptr) __asm__ __volatile__("prfm pldl2keep, %0" ::"Q"(*(ptr))) # elif defined(__GNUC__) && ( (__GNUC__ >= 4) || ( (__GNUC__ == 3) && (__GNUC_MINOR__ >= 1) ) ) # define PREFETCH_L1(ptr) __builtin_prefetch((ptr), 0 /* rw==read */, 3 /* locality */) # define PREFETCH_L2(ptr) __builtin_prefetch((ptr), 0 /* rw==read */, 2 /* locality */) +# elif defined(__aarch64__) +# define PREFETCH_L1(ptr) do { __asm__ __volatile__("prfm pldl1keep, %0" ::"Q"(*(ptr))); } while (0) +# define PREFETCH_L2(ptr) do { __asm__ __volatile__("prfm pldl2keep, %0" ::"Q"(*(ptr))); } while (0) # else -# define PREFETCH_L1(ptr) (void)(ptr) /* disabled */ -# define PREFETCH_L2(ptr) (void)(ptr) /* disabled */ +# define PREFETCH_L1(ptr) do { (void)(ptr); } while (0) /* disabled */ +# define PREFETCH_L2(ptr) do { (void)(ptr); } while (0) /* disabled */ # endif #endif /* NO_PREFETCH */ #define CACHELINE_SIZE 64 -#define PREFETCH_AREA(p, s) { \ - const char* const _ptr = (const char*)(p); \ - size_t const _size = (size_t)(s); \ - size_t _pos; \ - for (_pos=0; _pos<_size; _pos+=CACHELINE_SIZE) { \ - PREFETCH_L2(_ptr + _pos); \ - } \ -} +#define PREFETCH_AREA(p, s) \ + do { \ + const char* const _ptr = (const char*)(p); \ + size_t const _size = (size_t)(s); \ + size_t _pos; \ + for (_pos=0; _pos<_size; _pos+=CACHELINE_SIZE) { \ + PREFETCH_L2(_ptr + _pos); \ + } \ + } while (0) /* vectorization - * older GCC (pre gcc-4.3 picked as the cutoff) uses a different syntax */ -#if !defined(__INTEL_COMPILER) && !defined(__clang__) && defined(__GNUC__) + * older GCC (pre gcc-4.3 picked as the cutoff) uses a different syntax, + * and some compilers, like Intel ICC and MCST LCC, do not support it at all. */ +#if !defined(__INTEL_COMPILER) && !defined(__clang__) && defined(__GNUC__) && !defined(__LCC__) # if (__GNUC__ == 4 && __GNUC_MINOR__ > 3) || (__GNUC__ >= 5) # define DONT_VECTORIZE __attribute__((optimize("no-tree-vectorize"))) # else @@ -155,19 +182,188 @@ * and clang, please do. */ #if defined(__GNUC__) -#ifndef LIKELY #define LIKELY(x) (__builtin_expect((x), 1)) -#endif -#ifndef UNLIKELY #define UNLIKELY(x) (__builtin_expect((x), 0)) -#endif #else -#ifndef LIKELY #define LIKELY(x) (x) -#endif -#ifndef UNLIKELY #define UNLIKELY(x) (x) #endif + +#if __has_builtin(__builtin_unreachable) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5))) +# define ZSTD_UNREACHABLE do { assert(0), __builtin_unreachable(); } while (0) +#else +# define ZSTD_UNREACHABLE do { assert(0); } while (0) +#endif + +/* disable warnings */ +#ifdef _MSC_VER /* Visual Studio */ +# include /* For Visual 2005 */ +# pragma warning(disable : 4100) /* disable: C4100: unreferenced formal parameter */ +# pragma warning(disable : 4127) /* disable: C4127: conditional expression is constant */ +# pragma warning(disable : 4204) /* disable: C4204: non-constant aggregate initializer */ +# pragma warning(disable : 4214) /* disable: C4214: non-int bitfields */ +# pragma warning(disable : 4324) /* disable: C4324: padded structure */ +#endif + +/*Like DYNAMIC_BMI2 but for compile time determination of BMI2 support*/ +#ifndef STATIC_BMI2 +# if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_I86)) +# ifdef __AVX2__ //MSVC does not have a BMI2 specific flag, but every CPU that supports AVX2 also supports BMI2 +# define STATIC_BMI2 1 +# endif +# elif defined(__BMI2__) && defined(__x86_64__) && defined(__GNUC__) +# define STATIC_BMI2 1 +# endif +#endif + +#ifndef STATIC_BMI2 + #define STATIC_BMI2 0 +#endif + +/* compile time determination of SIMD support */ +#if !defined(ZSTD_NO_INTRINSICS) +# if defined(__SSE2__) || defined(_M_AMD64) || (defined (_M_IX86) && defined(_M_IX86_FP) && (_M_IX86_FP >= 2)) +# define ZSTD_ARCH_X86_SSE2 +# endif +# if defined(__ARM_NEON) || defined(_M_ARM64) +# define ZSTD_ARCH_ARM_NEON +# endif +# +# if defined(ZSTD_ARCH_X86_SSE2) +# include +# elif defined(ZSTD_ARCH_ARM_NEON) +# include +# endif +#endif + +/* C-language Attributes are added in C23. */ +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ > 201710L) && defined(__has_c_attribute) +# define ZSTD_HAS_C_ATTRIBUTE(x) __has_c_attribute(x) +#else +# define ZSTD_HAS_C_ATTRIBUTE(x) 0 #endif +/* Only use C++ attributes in C++. Some compilers report support for C++ + * attributes when compiling with C. + */ +#if defined(__cplusplus) && defined(__has_cpp_attribute) +# define ZSTD_HAS_CPP_ATTRIBUTE(x) __has_cpp_attribute(x) +#else +# define ZSTD_HAS_CPP_ATTRIBUTE(x) 0 +#endif + +/* Define ZSTD_FALLTHROUGH macro for annotating switch case with the 'fallthrough' attribute. + * - C23: https://en.cppreference.com/w/c/language/attributes/fallthrough + * - CPP17: https://en.cppreference.com/w/cpp/language/attributes/fallthrough + * - Else: __attribute__((__fallthrough__)) + */ +#ifndef ZSTD_FALLTHROUGH +# define ZSTD_FALLTHROUGH +#endif + +/*-************************************************************** +* Alignment check +*****************************************************************/ + +/* this test was initially positioned in mem.h, + * but this file is removed (or replaced) for linux kernel + * so it's now hosted in compiler.h, + * which remains valid for both user & kernel spaces. + */ + +#ifndef ZSTD_ALIGNOF +# if defined(__GNUC__) || defined(_MSC_VER) +/* covers gcc, clang & MSVC */ +/* note : this section must come first, before C11, + * due to a limitation in the kernel source generator */ +# define ZSTD_ALIGNOF(T) __alignof(T) + +# elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) +/* C11 support */ +# include +# define ZSTD_ALIGNOF(T) alignof(T) + +# else +/* No known support for alignof() - imperfect backup */ +# define ZSTD_ALIGNOF(T) (sizeof(void*) < sizeof(T) ? sizeof(void*) : sizeof(T)) + +# endif +#endif /* ZSTD_ALIGNOF */ + +/*-************************************************************** +* Sanitizer +*****************************************************************/ + +/** + * Zstd relies on pointer overflow in its decompressor. + * We add this attribute to functions that rely on pointer overflow. + */ +#ifndef ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +# if __has_attribute(no_sanitize) +# if !defined(__clang__) && defined(__GNUC__) && __GNUC__ < 8 + /* gcc < 8 only has signed-integer-overlow which triggers on pointer overflow */ +# define ZSTD_ALLOW_POINTER_OVERFLOW_ATTR __attribute__((no_sanitize("signed-integer-overflow"))) +# else + /* older versions of clang [3.7, 5.0) will warn that pointer-overflow is ignored. */ +# define ZSTD_ALLOW_POINTER_OVERFLOW_ATTR __attribute__((no_sanitize("pointer-overflow"))) +# endif +# else +# define ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +# endif +#endif + +namespace duckdb_zstd { + +/** + * Helper function to perform a wrapped pointer difference without trigging + * UBSAN. + * + * @returns lhs - rhs with wrapping + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +ptrdiff_t ZSTD_wrappedPtrDiff(unsigned char const* lhs, unsigned char const* rhs) +{ + return lhs - rhs; +} + +/** + * Helper function to perform a wrapped pointer add without triggering UBSAN. + * + * @return ptr + add with wrapping + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +unsigned char const* ZSTD_wrappedPtrAdd(unsigned char const* ptr, ptrdiff_t add) +{ + return ptr + add; +} + +/** + * Helper function to perform a wrapped pointer subtraction without triggering + * UBSAN. + * + * @return ptr - sub with wrapping + */ +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +unsigned char const* ZSTD_wrappedPtrSub(unsigned char const* ptr, ptrdiff_t sub) +{ + return ptr - sub; +} + +/** + * Helper function to add to a pointer that works around C's undefined behavior + * of adding 0 to NULL. + * + * @returns `ptr + add` except it defines `NULL + 0 == NULL`. + */ +MEM_STATIC +unsigned char* ZSTD_maybeNullPtrAdd(unsigned char* ptr, ptrdiff_t add) +{ + return add > 0 ? ptr + add : ptr; +} + +} // namespace duckdb_zstd + #endif /* ZSTD_COMPILER_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/cpu.h b/src/duckdb/third_party/zstd/include/zstd/common/cpu.h new file mode 100644 index 00000000..892f9851 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/cpu.h @@ -0,0 +1,253 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_COMMON_CPU_H +#define ZSTD_COMMON_CPU_H + +/** + * Implementation taken from folly/CpuId.h + * https://github.com/facebook/folly/blob/master/folly/CpuId.h + */ + +#include "zstd/common/mem.h" + +#ifdef _MSC_VER +#include +#endif + +namespace duckdb_zstd { + +typedef struct { + U32 f1c; + U32 f1d; + U32 f7b; + U32 f7c; +} ZSTD_cpuid_t; + +MEM_STATIC ZSTD_cpuid_t ZSTD_cpuid(void) { + U32 f1c = 0; + U32 f1d = 0; + U32 f7b = 0; + U32 f7c = 0; +#if defined(_MSC_VER) && (defined(_M_X64) || defined(_M_IX86)) +#if !defined(__clang__) + int reg[4]; + __cpuid((int*)reg, 0); + { + int const n = reg[0]; + if (n >= 1) { + __cpuid((int*)reg, 1); + f1c = (U32)reg[2]; + f1d = (U32)reg[3]; + } + if (n >= 7) { + __cpuidex((int*)reg, 7, 0); + f7b = (U32)reg[1]; + f7c = (U32)reg[2]; + } + } +#else + /* Clang compiler has a bug (fixed in https://reviews.llvm.org/D101338) in + * which the `__cpuid` intrinsic does not save and restore `rbx` as it needs + * to due to being a reserved register. So in that case, do the `cpuid` + * ourselves. Clang supports inline assembly anyway. + */ + U32 n; + __asm__( + "pushq %%rbx\n\t" + "cpuid\n\t" + "popq %%rbx\n\t" + : "=a"(n) + : "a"(0) + : "rcx", "rdx"); + if (n >= 1) { + U32 f1a; + __asm__( + "pushq %%rbx\n\t" + "cpuid\n\t" + "popq %%rbx\n\t" + : "=a"(f1a), "=c"(f1c), "=d"(f1d) + : "a"(1) + :); + } + if (n >= 7) { + __asm__( + "pushq %%rbx\n\t" + "cpuid\n\t" + "movq %%rbx, %%rax\n\t" + "popq %%rbx" + : "=a"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "rdx"); + } +#endif +#elif defined(__i386__) && defined(__PIC__) && !defined(__clang__) && defined(__GNUC__) + /* The following block like the normal cpuid branch below, but gcc + * reserves ebx for use of its pic register so we must specially + * handle the save and restore to avoid clobbering the register + */ + U32 n; + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "popl %%ebx\n\t" + : "=a"(n) + : "a"(0) + : "ecx", "edx"); + if (n >= 1) { + U32 f1a; + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "popl %%ebx\n\t" + : "=a"(f1a), "=c"(f1c), "=d"(f1d) + : "a"(1)); + } + if (n >= 7) { + __asm__( + "pushl %%ebx\n\t" + "cpuid\n\t" + "movl %%ebx, %%eax\n\t" + "popl %%ebx" + : "=a"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "edx"); + } +#elif defined(__x86_64__) || defined(_M_X64) || defined(__i386__) + U32 n; + __asm__("cpuid" : "=a"(n) : "a"(0) : "ebx", "ecx", "edx"); + if (n >= 1) { + U32 f1a; + __asm__("cpuid" : "=a"(f1a), "=c"(f1c), "=d"(f1d) : "a"(1) : "ebx"); + } + if (n >= 7) { + U32 f7a; + __asm__("cpuid" + : "=a"(f7a), "=b"(f7b), "=c"(f7c) + : "a"(7), "c"(0) + : "edx"); + } +#endif + { + ZSTD_cpuid_t cpuid; + cpuid.f1c = f1c; + cpuid.f1d = f1d; + cpuid.f7b = f7b; + cpuid.f7c = f7c; + return cpuid; + } +} + +#define X(name, r, bit) \ + MEM_STATIC int ZSTD_cpuid_##name(ZSTD_cpuid_t const cpuid) { \ + return ((cpuid.r) & (1U << bit)) != 0; \ + } + +/* cpuid(1): Processor Info and Feature Bits. */ +#define C(name, bit) X(name, f1c, bit) + C(sse3, 0) + C(pclmuldq, 1) + C(dtes64, 2) + C(monitor, 3) + C(dscpl, 4) + C(vmx, 5) + C(smx, 6) + C(eist, 7) + C(tm2, 8) + C(ssse3, 9) + C(cnxtid, 10) + C(fma, 12) + C(cx16, 13) + C(xtpr, 14) + C(pdcm, 15) + C(pcid, 17) + C(dca, 18) + C(sse41, 19) + C(sse42, 20) + C(x2apic, 21) + C(movbe, 22) + C(popcnt, 23) + C(tscdeadline, 24) + C(aes, 25) + C(xsave, 26) + C(osxsave, 27) + C(avx, 28) + C(f16c, 29) + C(rdrand, 30) +#undef C +#define D(name, bit) X(name, f1d, bit) + D(fpu, 0) + D(vme, 1) + D(de, 2) + D(pse, 3) + D(tsc, 4) + D(msr, 5) + D(pae, 6) + D(mce, 7) + D(cx8, 8) + D(apic, 9) + D(sep, 11) + D(mtrr, 12) + D(pge, 13) + D(mca, 14) + D(cmov, 15) + D(pat, 16) + D(pse36, 17) + D(psn, 18) + D(clfsh, 19) + D(ds, 21) + D(acpi, 22) + D(mmx, 23) + D(fxsr, 24) + D(sse, 25) + D(sse2, 26) + D(ss, 27) + D(htt, 28) + D(tm, 29) + D(pbe, 31) +#undef D + +/* cpuid(7): Extended Features. */ +#define B(name, bit) X(name, f7b, bit) + B(bmi1, 3) + B(hle, 4) + B(avx2, 5) + B(smep, 7) + B(bmi2, 8) + B(erms, 9) + B(invpcid, 10) + B(rtm, 11) + B(mpx, 14) + B(avx512f, 16) + B(avx512dq, 17) + B(rdseed, 18) + B(adx, 19) + B(smap, 20) + B(avx512ifma, 21) + B(pcommit, 22) + B(clflushopt, 23) + B(clwb, 24) + B(avx512pf, 26) + B(avx512er, 27) + B(avx512cd, 28) + B(sha, 29) + B(avx512bw, 30) + B(avx512vl, 31) +#undef B +#define C(name, bit) X(name, f7c, bit) + C(prefetchwt1, 0) + C(avx512vbmi, 1) +#undef C + +#undef X + +} // namespace duckdb_zstd + +#endif /* ZSTD_COMMON_CPU_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/debug.h b/src/duckdb/third_party/zstd/include/zstd/common/debug.h index ac622488..55989777 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/debug.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/debug.h @@ -1,7 +1,7 @@ /* ****************************************************************** * debug * Part of FSE library - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -32,10 +32,7 @@ #ifndef DEBUG_H_12987983217 #define DEBUG_H_12987983217 -#if defined (__cplusplus) -extern "C" { -#endif - +#include "zstd/common/zstd_deps.h" // DuckDB: added here /* static assert is triggered at compile time, leaving no runtime artefact. * static assert only works with compile-time constants. @@ -51,15 +48,6 @@ extern "C" { #endif -/* DEBUGFILE can be defined externally, - * typically through compiler command line. - * note : currently useless. - * Value must be stderr or stdout */ -#ifndef DEBUGFILE -# define DEBUGFILE stderr -#endif - - /* recommended values for DEBUGLEVEL : * 0 : release mode, no debug, all run-time checks disabled * 1 : enables assert() only, no display @@ -76,7 +64,8 @@ extern "C" { */ #if (DEBUGLEVEL>=1) -# include +# define ZSTD_DEPS_NEED_ASSERT +// # include "zstd/common/zstd_deps.h" // DuckDB: comment out otherwise amalgamation won't be happy #else # ifndef assert /* assert may be already defined, due to prior #include */ # define assert(condition) ((void)0) /* disable assert (default) */ @@ -84,7 +73,11 @@ extern "C" { #endif #if (DEBUGLEVEL>=2) -# include +# define ZSTD_DEPS_NEED_IO +// # include "zstd/common/zstd_deps.h" // DuckDB: comment out otherwise amalgamation won't be happy + +namespace duckdb_zstd { + extern int g_debuglevel; /* the variable is only declared, it actually lives in debug.c, and is shared by the whole process. @@ -92,23 +85,30 @@ extern int g_debuglevel; /* the variable is only declared, It's useful when enabling very verbose levels on selective conditions (such as position in src) */ -# define RAWLOG(l, ...) { \ - if (l<=g_debuglevel) { \ - fprintf(stderr, __VA_ARGS__); \ - } } -# define DEBUGLOG(l, ...) { \ - if (l<=g_debuglevel) { \ - fprintf(stderr, __FILE__ ": " __VA_ARGS__); \ - fprintf(stderr, " \n"); \ - } } -#else -# define RAWLOG(l, ...) {} /* disabled */ -# define DEBUGLOG(l, ...) {} /* disabled */ -#endif +# define RAWLOG(l, ...) \ + do { \ + if (l<=g_debuglevel) { \ + ZSTD_DEBUG_PRINT(__VA_ARGS__); \ + } \ + } while (0) +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) +#define LINE_AS_STRING TOSTRING(__LINE__) -#if defined (__cplusplus) -} +# define DEBUGLOG(l, ...) \ + do { \ + if (l<=g_debuglevel) { \ + ZSTD_DEBUG_PRINT(__FILE__ ":" LINE_AS_STRING ": " __VA_ARGS__); \ + ZSTD_DEBUG_PRINT(" \n"); \ + } \ + } while (0) + +} // namespace duckdb_zstd + +#else +# define RAWLOG(l, ...) do { } while (0) /* disabled */ +# define DEBUGLOG(l, ...) do { } while (0) /* disabled */ #endif #endif /* DEBUG_H_12987983217 */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/error_private.h b/src/duckdb/third_party/zstd/include/zstd/common/error_private.h index b1af95d1..7fe7701d 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/error_private.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/error_private.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -16,10 +16,13 @@ /* **************************************** * Dependencies ******************************************/ -#include /* size_t */ -#include "zstd/common/zstd_errors.h" /* enum list */ +#include "zstd_errors.h" /* enum list */ +#include "zstd/common/compiler.h" +#include "zstd/common/debug.h" +#include "zstd/common/zstd_deps.h" /* size_t */ namespace duckdb_zstd { + /* **************************************** * Compiler-specific ******************************************/ @@ -33,7 +36,6 @@ namespace duckdb_zstd { # define ERR_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ #endif - /*-**************************************** * Customization (error_public.h) ******************************************/ @@ -53,8 +55,13 @@ ERR_STATIC unsigned ERR_isError(size_t code) { return (code > ERROR(maxCode)); } ERR_STATIC ERR_enum ERR_getErrorCode(size_t code) { if (!ERR_isError(code)) return (ERR_enum)0; return (ERR_enum) (0-code); } /* check and forward error code */ -#define CHECK_V_F(e, f) size_t const e = f; if (ERR_isError(e)) return e -#define CHECK_F(f) { CHECK_V_F(_var_err__, f); } +#define CHECK_V_F(e, f) \ + size_t const e = f; \ + do { \ + if (ERR_isError(e)) \ + return e; \ + } while (0) +#define CHECK_F(f) do { CHECK_V_F(_var_err__, f); } while (0) /*-**************************************** @@ -68,6 +75,87 @@ ERR_STATIC const char* ERR_getErrorName(size_t code) return ERR_getErrorString(ERR_getErrorCode(code)); } +/** + * Ignore: this is an internal helper. + * + * This is a helper function to help force C99-correctness during compilation. + * Under strict compilation modes, variadic macro arguments can't be empty. + * However, variadic function arguments can be. Using a function therefore lets + * us statically check that at least one (string) argument was passed, + * independent of the compilation flags. + */ +static INLINE_KEYWORD UNUSED_ATTR +void _force_has_format_string(const char *format, ...) { + (void)format; } +/** + * Ignore: this is an internal helper. + * + * We want to force this function invocation to be syntactically correct, but + * we don't want to force runtime evaluation of its arguments. + */ +#define _FORCE_HAS_FORMAT_STRING(...) \ + do { \ + if (0) { \ + _force_has_format_string(__VA_ARGS__); \ + } \ + } while (0) + +#define ERR_QUOTE(str) #str + +/** + * Return the specified error if the condition evaluates to true. + * + * In debug modes, prints additional information. + * In order to do that (particularly, printing the conditional that failed), + * this can't just wrap RETURN_ERROR(). + */ +#define RETURN_ERROR_IF(cond, err, ...) \ + do { \ + if (cond) { \ + RAWLOG(3, "%s:%d: ERROR!: check %s failed, returning %s", \ + __FILE__, __LINE__, ERR_QUOTE(cond), ERR_QUOTE(ERROR(err))); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return ERROR(err); \ + } \ + } while (0) + +/** + * Unconditionally return the specified error. + * + * In debug modes, prints additional information. + */ +#define RETURN_ERROR(err, ...) \ + do { \ + RAWLOG(3, "%s:%d: ERROR!: unconditional check failed, returning %s", \ + __FILE__, __LINE__, ERR_QUOTE(ERROR(err))); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return ERROR(err); \ + } while(0) + +/** + * If the provided expression evaluates to an error code, returns that error code. + * + * In debug modes, prints additional information. + */ +#define FORWARD_IF_ERROR(err, ...) \ + do { \ + size_t const err_code = (err); \ + if (ERR_isError(err_code)) { \ + RAWLOG(3, "%s:%d: ERROR!: forwarding error in %s: %s", \ + __FILE__, __LINE__, ERR_QUOTE(err), ERR_getErrorName(err_code)); \ + _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ + RAWLOG(3, ": " __VA_ARGS__); \ + RAWLOG(3, "\n"); \ + return err_code; \ + } \ + } while(0) + +} // namespace duckdb_zstd + #endif /* ERROR_H_MODULE */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/fse.h b/src/duckdb/third_party/zstd/include/zstd/common/fse.h index 6600fee5..9df59ff1 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/fse.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/fse.h @@ -1,7 +1,7 @@ /* ****************************************************************** * FSE : Finite State Entropy codec * Public Prototypes declaration - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -12,6 +12,7 @@ * You may select, at your option, one of the above-listed licenses. ****************************************************************** */ + #ifndef FSE_H #define FSE_H @@ -19,10 +20,11 @@ /*-***************************************** * Dependencies ******************************************/ -#include /* size_t, ptrdiff_t */ +#include "zstd/common/zstd_deps.h" /* size_t, ptrdiff_t */ namespace duckdb_zstd { + /*-***************************************** * FSE_PUBLIC_API : control library symbols visibility ******************************************/ @@ -50,34 +52,6 @@ namespace duckdb_zstd { FSE_PUBLIC_API unsigned FSE_versionNumber(void); /**< library version number; to be used when checking dll version */ -/*-**************************************** -* FSE simple functions -******************************************/ -/*! FSE_compress() : - Compress content of buffer 'src', of size 'srcSize', into destination buffer 'dst'. - 'dst' buffer must be already allocated. Compression runs faster is dstCapacity >= FSE_compressBound(srcSize). - @return : size of compressed data (<= dstCapacity). - Special values : if return == 0, srcData is not compressible => Nothing is stored within dst !!! - if return == 1, srcData is a single byte symbol * srcSize times. Use RLE compression instead. - if FSE_isError(return), compression failed (more details using FSE_getErrorName()) -*/ -FSE_PUBLIC_API size_t FSE_compress(void* dst, size_t dstCapacity, - const void* src, size_t srcSize); - -/*! FSE_decompress(): - Decompress FSE data from buffer 'cSrc', of size 'cSrcSize', - into already allocated destination buffer 'dst', of size 'dstCapacity'. - @return : size of regenerated data (<= maxDstSize), - or an error code, which can be tested using FSE_isError() . - - ** Important ** : FSE_decompress() does not decompress non-compressible nor RLE data !!! - Why ? : making this distinction requires a header. - Header management is intentionally delegated to the user layer, which can better manage special cases. -*/ -FSE_PUBLIC_API size_t FSE_decompress(void* dst, size_t dstCapacity, - const void* cSrc, size_t cSrcSize); - - /*-***************************************** * Tool functions ******************************************/ @@ -88,20 +62,6 @@ FSE_PUBLIC_API unsigned FSE_isError(size_t code); /* tells if a return FSE_PUBLIC_API const char* FSE_getErrorName(size_t code); /* provides error code string (useful for debugging) */ -/*-***************************************** -* FSE advanced functions -******************************************/ -/*! FSE_compress2() : - Same as FSE_compress(), but allows the selection of 'maxSymbolValue' and 'tableLog' - Both parameters can be defined as '0' to mean : use default value - @return : size of compressed data - Special values : if return == 0, srcData is not compressible => Nothing is stored within cSrc !!! - if return == 1, srcData is a single byte symbol * srcSize times. Use RLE compression. - if FSE_isError(return), it's an error code. -*/ -FSE_PUBLIC_API size_t FSE_compress2 (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog); - - /*-***************************************** * FSE detailed API ******************************************/ @@ -134,10 +94,16 @@ FSE_PUBLIC_API unsigned FSE_optimalTableLog(unsigned maxTableLog, size_t srcSize /*! FSE_normalizeCount(): normalize counts so that sum(count[]) == Power_of_2 (2^tableLog) 'normalizedCounter' is a table of short, of minimum size (maxSymbolValue+1). + useLowProbCount is a boolean parameter which trades off compressed size for + faster header decoding. When it is set to 1, the compressed data will be slightly + smaller. And when it is set to 0, FSE_readNCount() and FSE_buildDTable() will be + faster. If you are compressing a small amount of data (< 2 KB) then useLowProbCount=0 + is a good default, since header deserialization makes a big speed difference. + Otherwise, useLowProbCount=1 is a good default, since the speed difference is small. @return : tableLog, or an errorCode, which can be tested using FSE_isError() */ FSE_PUBLIC_API size_t FSE_normalizeCount(short* normalizedCounter, unsigned tableLog, - const unsigned* count, size_t srcSize, unsigned maxSymbolValue); + const unsigned* count, size_t srcSize, unsigned maxSymbolValue, unsigned useLowProbCount); /*! FSE_NCountWriteBound(): Provides the maximum possible size of an FSE normalized table, given 'maxSymbolValue' and 'tableLog'. @@ -155,8 +121,6 @@ FSE_PUBLIC_API size_t FSE_writeNCount (void* buffer, size_t bufferSize, /*! Constructor and Destructor of FSE_CTable. Note that FSE_CTable size depends on 'tableLog' and 'maxSymbolValue' */ typedef unsigned FSE_CTable; /* don't allocate that. It's only meant to be more restrictive than void* */ -FSE_PUBLIC_API FSE_CTable* FSE_createCTable (unsigned maxSymbolValue, unsigned tableLog); -FSE_PUBLIC_API void FSE_freeCTable (FSE_CTable* ct); /*! FSE_buildCTable(): Builds `ct`, which must be already allocated, using FSE_createCTable(). @@ -225,23 +189,14 @@ FSE_PUBLIC_API size_t FSE_readNCount (short* normalizedCounter, unsigned* maxSymbolValuePtr, unsigned* tableLogPtr, const void* rBuffer, size_t rBuffSize); -/*! Constructor and Destructor of FSE_DTable. - Note that its size depends on 'tableLog' */ +/*! FSE_readNCount_bmi2(): + * Same as FSE_readNCount() but pass bmi2=1 when your CPU supports BMI2 and 0 otherwise. + */ +FSE_PUBLIC_API size_t FSE_readNCount_bmi2(short* normalizedCounter, + unsigned* maxSymbolValuePtr, unsigned* tableLogPtr, + const void* rBuffer, size_t rBuffSize, int bmi2); + typedef unsigned FSE_DTable; /* don't allocate that. It's just a way to be more restrictive than void* */ -FSE_PUBLIC_API FSE_DTable* FSE_createDTable(unsigned tableLog); -FSE_PUBLIC_API void FSE_freeDTable(FSE_DTable* dt); - -/*! FSE_buildDTable(): - Builds 'dt', which must be already allocated, using FSE_createDTable(). - return : 0, or an errorCode, which can be tested using FSE_isError() */ -FSE_PUBLIC_API size_t FSE_buildDTable (FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog); - -/*! FSE_decompress_usingDTable(): - Decompress compressed source `cSrc` of size `cSrcSize` using `dt` - into `dst` which must be already allocated. - @return : size of regenerated data (necessarily <= `dstCapacity`), - or an errorCode, which can be tested using FSE_isError() */ -FSE_PUBLIC_API size_t FSE_decompress_usingDTable(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, const FSE_DTable* dt); /*! Tutorial : @@ -271,7 +226,412 @@ FSE_decompress_usingDTable() result will tell how many bytes were regenerated (< If there is an error, the function will return an error code, which can be tested using FSE_isError(). (ex: dst buffer too small) */ -} +} // namespace duckdb_zstd #endif /* FSE_H */ +#if defined(FSE_STATIC_LINKING_ONLY) && !defined(FSE_H_FSE_STATIC_LINKING_ONLY) +#define FSE_H_FSE_STATIC_LINKING_ONLY + +/* *** Dependency *** */ +#include "zstd/common/bitstream.h" + +namespace duckdb_zstd { + +/* ***************************************** +* Static allocation +*******************************************/ +/* FSE buffer bounds */ +#define FSE_NCOUNTBOUND 512 +#define FSE_BLOCKBOUND(size) ((size) + ((size)>>7) + 4 /* fse states */ + sizeof(size_t) /* bitContainer */) +#define FSE_COMPRESSBOUND(size) (FSE_NCOUNTBOUND + FSE_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* It is possible to statically allocate FSE CTable/DTable as a table of FSE_CTable/FSE_DTable using below macros */ +#define FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) (1 + (1<<((maxTableLog)-1)) + (((maxSymbolValue)+1)*2)) +#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1<<(maxTableLog))) + +/* or use the size to malloc() space directly. Pay attention to alignment restrictions though */ +#define FSE_CTABLE_SIZE(maxTableLog, maxSymbolValue) (FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) * sizeof(FSE_CTable)) +#define FSE_DTABLE_SIZE(maxTableLog) (FSE_DTABLE_SIZE_U32(maxTableLog) * sizeof(FSE_DTable)) + + +/* ***************************************** + * FSE advanced API + ***************************************** */ + +unsigned FSE_optimalTableLog_internal(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, unsigned minus); +/**< same as FSE_optimalTableLog(), which used `minus==2` */ + +size_t FSE_buildCTable_rle (FSE_CTable* ct, unsigned char symbolValue); +/**< build a fake FSE_CTable, designed to compress always the same symbolValue */ + +/* FSE_buildCTable_wksp() : + * Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`). + * `wkspSize` must be >= `FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog)` of `unsigned`. + * See FSE_buildCTable_wksp() for breakdown of workspace usage. + */ +#define FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog) (((maxSymbolValue + 2) + (1ull << (tableLog)))/2 + sizeof(U64)/sizeof(U32) /* additional 8 bytes for potential table overwrite */) +#define FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) (sizeof(unsigned) * FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog)) +size_t FSE_buildCTable_wksp(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); + +#define FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) (sizeof(short) * (maxSymbolValue + 1) + (1ULL << maxTableLog) + 8) +#define FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) ((FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) + sizeof(unsigned) - 1) / sizeof(unsigned)) +FSE_PUBLIC_API size_t FSE_buildDTable_wksp(FSE_DTable* dt, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); +/**< Same as FSE_buildDTable(), using an externally allocated `workspace` produced with `FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxSymbolValue)` */ + +#define FSE_DECOMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) (FSE_DTABLE_SIZE_U32(maxTableLog) + 1 + FSE_BUILD_DTABLE_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) + (FSE_MAX_SYMBOL_VALUE + 1) / 2 + 1) +#define FSE_DECOMPRESS_WKSP_SIZE(maxTableLog, maxSymbolValue) (FSE_DECOMPRESS_WKSP_SIZE_U32(maxTableLog, maxSymbolValue) * sizeof(unsigned)) +size_t FSE_decompress_wksp_bmi2(void* dst, size_t dstCapacity, const void* cSrc, size_t cSrcSize, unsigned maxLog, void* workSpace, size_t wkspSize, int bmi2); +/**< same as FSE_decompress(), using an externally allocated `workSpace` produced with `FSE_DECOMPRESS_WKSP_SIZE_U32(maxLog, maxSymbolValue)`. + * Set bmi2 to 1 if your CPU supports BMI2 or 0 if it doesn't */ + +typedef enum { + FSE_repeat_none, /**< Cannot use the previous table */ + FSE_repeat_check, /**< Can use the previous table but it must be checked */ + FSE_repeat_valid /**< Can use the previous table and it is assumed to be valid */ + } FSE_repeat; + +/* ***************************************** +* FSE symbol compression API +*******************************************/ +/*! + This API consists of small unitary functions, which highly benefit from being inlined. + Hence their body are included in next section. +*/ +typedef struct { + ptrdiff_t value; + const void* stateTable; + const void* symbolTT; + unsigned stateLog; +} FSE_CState_t; + +static void FSE_initCState(FSE_CState_t* CStatePtr, const FSE_CTable* ct); + +static void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* CStatePtr, unsigned symbol); + +static void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t* CStatePtr); + +/**< +These functions are inner components of FSE_compress_usingCTable(). +They allow the creation of custom streams, mixing multiple tables and bit sources. + +A key property to keep in mind is that encoding and decoding are done **in reverse direction**. +So the first symbol you will encode is the last you will decode, like a LIFO stack. + +You will need a few variables to track your CStream. They are : + +FSE_CTable ct; // Provided by FSE_buildCTable() +BIT_CStream_t bitStream; // bitStream tracking structure +FSE_CState_t state; // State tracking structure (can have several) + + +The first thing to do is to init bitStream and state. + size_t errorCode = BIT_initCStream(&bitStream, dstBuffer, maxDstSize); + FSE_initCState(&state, ct); + +Note that BIT_initCStream() can produce an error code, so its result should be tested, using FSE_isError(); +You can then encode your input data, byte after byte. +FSE_encodeSymbol() outputs a maximum of 'tableLog' bits at a time. +Remember decoding will be done in reverse direction. + FSE_encodeByte(&bitStream, &state, symbol); + +At any time, you can also add any bit sequence. +Note : maximum allowed nbBits is 25, for compatibility with 32-bits decoders + BIT_addBits(&bitStream, bitField, nbBits); + +The above methods don't commit data to memory, they just store it into local register, for speed. +Local register size is 64-bits on 64-bits systems, 32-bits on 32-bits systems (size_t). +Writing data to memory is a manual operation, performed by the flushBits function. + BIT_flushBits(&bitStream); + +Your last FSE encoding operation shall be to flush your last state value(s). + FSE_flushState(&bitStream, &state); + +Finally, you must close the bitStream. +The function returns the size of CStream in bytes. +If data couldn't fit into dstBuffer, it will return a 0 ( == not compressible) +If there is an error, it returns an errorCode (which can be tested using FSE_isError()). + size_t size = BIT_closeCStream(&bitStream); +*/ + + +/* ***************************************** +* FSE symbol decompression API +*******************************************/ +typedef struct { + size_t state; + const void* table; /* precise table may vary, depending on U16 */ +} FSE_DState_t; + + +static void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt); + +static unsigned char FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD); + +static unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr); + +/**< +Let's now decompose FSE_decompress_usingDTable() into its unitary components. +You will decode FSE-encoded symbols from the bitStream, +and also any other bitFields you put in, **in reverse order**. + +You will need a few variables to track your bitStream. They are : + +BIT_DStream_t DStream; // Stream context +FSE_DState_t DState; // State context. Multiple ones are possible +FSE_DTable* DTablePtr; // Decoding table, provided by FSE_buildDTable() + +The first thing to do is to init the bitStream. + errorCode = BIT_initDStream(&DStream, srcBuffer, srcSize); + +You should then retrieve your initial state(s) +(in reverse flushing order if you have several ones) : + errorCode = FSE_initDState(&DState, &DStream, DTablePtr); + +You can then decode your data, symbol after symbol. +For information the maximum number of bits read by FSE_decodeSymbol() is 'tableLog'. +Keep in mind that symbols are decoded in reverse order, like a LIFO stack (last in, first out). + unsigned char symbol = FSE_decodeSymbol(&DState, &DStream); + +You can retrieve any bitfield you eventually stored into the bitStream (in reverse order) +Note : maximum allowed nbBits is 25, for 32-bits compatibility + size_t bitField = BIT_readBits(&DStream, nbBits); + +All above operations only read from local register (which size depends on size_t). +Refueling the register from memory is manually performed by the reload method. + endSignal = FSE_reloadDStream(&DStream); + +BIT_reloadDStream() result tells if there is still some more data to read from DStream. +BIT_DStream_unfinished : there is still some data left into the DStream. +BIT_DStream_endOfBuffer : Dstream reached end of buffer. Its container may no longer be completely filled. +BIT_DStream_completed : Dstream reached its exact end, corresponding in general to decompression completed. +BIT_DStream_tooFar : Dstream went too far. Decompression result is corrupted. + +When reaching end of buffer (BIT_DStream_endOfBuffer), progress slowly, notably if you decode multiple symbols per loop, +to properly detect the exact end of stream. +After each decoded symbol, check if DStream is fully consumed using this simple test : + BIT_reloadDStream(&DStream) >= BIT_DStream_completed + +When it's done, verify decompression is fully completed, by checking both DStream and the relevant states. +Checking if DStream has reached its end is performed by : + BIT_endOfDStream(&DStream); +Check also the states. There might be some symbols left there, if some high probability ones (>50%) are possible. + FSE_endOfDState(&DState); +*/ + + +/* ***************************************** +* FSE unsafe API +*******************************************/ +static unsigned char FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD); +/* faster, but works only if nbBits is always >= 1 (otherwise, result will be corrupted) */ + + +/* ***************************************** +* Implementation of inlined functions +*******************************************/ +typedef struct { + int deltaFindState; + U32 deltaNbBits; +} FSE_symbolCompressionTransform; /* total 8 bytes */ + +MEM_STATIC void FSE_initCState(FSE_CState_t* statePtr, const FSE_CTable* ct) +{ + const void* ptr = ct; + const U16* u16ptr = (const U16*) ptr; + const U32 tableLog = MEM_read16(ptr); + statePtr->value = (ptrdiff_t)1<stateTable = u16ptr+2; + statePtr->symbolTT = ct + 1 + (tableLog ? (1<<(tableLog-1)) : 1); + statePtr->stateLog = tableLog; +} + + +/*! FSE_initCState2() : +* Same as FSE_initCState(), but the first symbol to include (which will be the last to be read) +* uses the smallest state value possible, saving the cost of this symbol */ +MEM_STATIC void FSE_initCState2(FSE_CState_t* statePtr, const FSE_CTable* ct, U32 symbol) +{ + FSE_initCState(statePtr, ct); + { const FSE_symbolCompressionTransform symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; + const U16* stateTable = (const U16*)(statePtr->stateTable); + U32 nbBitsOut = (U32)((symbolTT.deltaNbBits + (1<<15)) >> 16); + statePtr->value = (nbBitsOut << 16) - symbolTT.deltaNbBits; + statePtr->value = stateTable[(statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; + } +} + +MEM_STATIC void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* statePtr, unsigned symbol) +{ + FSE_symbolCompressionTransform const symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; + const U16* const stateTable = (const U16*)(statePtr->stateTable); + U32 const nbBitsOut = (U32)((statePtr->value + symbolTT.deltaNbBits) >> 16); + BIT_addBits(bitC, (size_t)statePtr->value, nbBitsOut); + statePtr->value = stateTable[ (statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; +} + +MEM_STATIC void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t* statePtr) +{ + BIT_addBits(bitC, (size_t)statePtr->value, statePtr->stateLog); + BIT_flushBits(bitC); +} + + +/* FSE_getMaxNbBits() : + * Approximate maximum cost of a symbol, in bits. + * Fractional get rounded up (i.e. a symbol with a normalized frequency of 3 gives the same result as a frequency of 2) + * note 1 : assume symbolValue is valid (<= maxSymbolValue) + * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ +MEM_STATIC U32 FSE_getMaxNbBits(const void* symbolTTPtr, U32 symbolValue) +{ + const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; + return (symbolTT[symbolValue].deltaNbBits + ((1<<16)-1)) >> 16; +} + +/* FSE_bitCost() : + * Approximate symbol cost, as fractional value, using fixed-point format (accuracyLog fractional bits) + * note 1 : assume symbolValue is valid (<= maxSymbolValue) + * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ +MEM_STATIC U32 FSE_bitCost(const void* symbolTTPtr, U32 tableLog, U32 symbolValue, U32 accuracyLog) +{ + const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; + U32 const minNbBits = symbolTT[symbolValue].deltaNbBits >> 16; + U32 const threshold = (minNbBits+1) << 16; + assert(tableLog < 16); + assert(accuracyLog < 31-tableLog); /* ensure enough room for renormalization double shift */ + { U32 const tableSize = 1 << tableLog; + U32 const deltaFromThreshold = threshold - (symbolTT[symbolValue].deltaNbBits + tableSize); + U32 const normalizedDeltaFromThreshold = (deltaFromThreshold << accuracyLog) >> tableLog; /* linear interpolation (very approximate) */ + U32 const bitMultiplier = 1 << accuracyLog; + assert(symbolTT[symbolValue].deltaNbBits + tableSize <= threshold); + assert(normalizedDeltaFromThreshold <= bitMultiplier); + return (minNbBits+1)*bitMultiplier - normalizedDeltaFromThreshold; + } +} + + +/* ====== Decompression ====== */ + +typedef struct { + U16 tableLog; + U16 fastMode; +} FSE_DTableHeader; /* sizeof U32 */ + +typedef struct +{ + unsigned short newState; + unsigned char symbol; + unsigned char nbBits; +} FSE_decode_t; /* size == U32 */ + +MEM_STATIC void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt) +{ + const void* ptr = dt; + const FSE_DTableHeader* const DTableH = (const FSE_DTableHeader*)ptr; + DStatePtr->state = BIT_readBits(bitD, DTableH->tableLog); + BIT_reloadDStream(bitD); + DStatePtr->table = dt + 1; +} + +MEM_STATIC BYTE FSE_peekSymbol(const FSE_DState_t* DStatePtr) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + return DInfo.symbol; +} + +MEM_STATIC void FSE_updateState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + size_t const lowBits = BIT_readBits(bitD, nbBits); + DStatePtr->state = DInfo.newState + lowBits; +} + +MEM_STATIC BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + BYTE const symbol = DInfo.symbol; + size_t const lowBits = BIT_readBits(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +/*! FSE_decodeSymbolFast() : + unsafe, only works if no symbol has a probability > 50% */ +MEM_STATIC BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) +{ + FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; + U32 const nbBits = DInfo.nbBits; + BYTE const symbol = DInfo.symbol; + size_t const lowBits = BIT_readBitsFast(bitD, nbBits); + + DStatePtr->state = DInfo.newState + lowBits; + return symbol; +} + +MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) +{ + return DStatePtr->state == 0; +} + + + +#ifndef FSE_COMMONDEFS_ONLY + +/* ************************************************************** +* Tuning parameters +****************************************************************/ +/*!MEMORY_USAGE : +* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) +* Increasing memory usage improves compression ratio +* Reduced memory usage can improve speed, due to cache effect +* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ +#ifndef FSE_MAX_MEMORY_USAGE +# define FSE_MAX_MEMORY_USAGE 14 +#endif +#ifndef FSE_DEFAULT_MEMORY_USAGE +# define FSE_DEFAULT_MEMORY_USAGE 13 +#endif +#if (FSE_DEFAULT_MEMORY_USAGE > FSE_MAX_MEMORY_USAGE) +# error "FSE_DEFAULT_MEMORY_USAGE must be <= FSE_MAX_MEMORY_USAGE" +#endif + +/*!FSE_MAX_SYMBOL_VALUE : +* Maximum symbol value authorized. +* Required for proper stack allocation */ +#ifndef FSE_MAX_SYMBOL_VALUE +# define FSE_MAX_SYMBOL_VALUE 255 +#endif + +/* ************************************************************** +* template functions type & suffix +****************************************************************/ +#define FSE_FUNCTION_TYPE BYTE +#define FSE_FUNCTION_EXTENSION +#define FSE_DECODE_TYPE FSE_decode_t + + +#endif /* !FSE_COMMONDEFS_ONLY */ + + +/* *************************************************************** +* Constants +*****************************************************************/ +#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) +#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX +# error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" +#endif + +#define FSE_TABLESTEP(tableSize) (((tableSize)>>1) + ((tableSize)>>3) + 3) + +} // namespace duckdb_zstd + +#endif /* FSE_STATIC_LINKING_ONLY */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/fse_static.h b/src/duckdb/third_party/zstd/include/zstd/common/fse_static.h deleted file mode 100644 index 7d8267e3..00000000 --- a/src/duckdb/third_party/zstd/include/zstd/common/fse_static.h +++ /dev/null @@ -1,421 +0,0 @@ -/* ****************************************************************** - * FSE : Finite State Entropy codec - * Public Prototypes declaration - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. - * - * You can contact the author at : - * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy - * - * This source code is licensed under both the BSD-style license (found in the - * LICENSE file in the root directory of this source tree) and the GPLv2 (found - * in the COPYING file in the root directory of this source tree). - * You may select, at your option, one of the above-listed licenses. -****************************************************************** */ - -#ifndef FSE_H_FSE_STATIC_LINKING_ONLY -#define FSE_H_FSE_STATIC_LINKING_ONLY - -/* *** Dependency *** */ -#include "zstd/common/bitstream.h" - -namespace duckdb_zstd { - -/* ***************************************** -* Static allocation -*******************************************/ -/* FSE buffer bounds */ -#define FSE_NCOUNTBOUND 512 -#define FSE_BLOCKBOUND(size) (size + (size>>7) + 4 /* fse states */ + sizeof(size_t) /* bitContainer */) -#define FSE_COMPRESSBOUND(size) (FSE_NCOUNTBOUND + FSE_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ - -/* It is possible to statically allocate FSE CTable/DTable as a table of FSE_CTable/FSE_DTable using below macros */ -#define FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) (1 + (1<<(maxTableLog-1)) + ((maxSymbolValue+1)*2)) -#define FSE_DTABLE_SIZE_U32(maxTableLog) (1 + (1< 12) ? (1 << (maxTableLog - 2)) : 1024) ) -size_t FSE_compress_wksp (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); - -size_t FSE_buildCTable_raw (FSE_CTable* ct, unsigned nbBits); -/**< build a fake FSE_CTable, designed for a flat distribution, where each symbol uses nbBits */ - -size_t FSE_buildCTable_rle (FSE_CTable* ct, unsigned char symbolValue); -/**< build a fake FSE_CTable, designed to compress always the same symbolValue */ - -/* FSE_buildCTable_wksp() : - * Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`). - * `wkspSize` must be >= `(1<= BIT_DStream_completed - -When it's done, verify decompression is fully completed, by checking both DStream and the relevant states. -Checking if DStream has reached its end is performed by : - BIT_endOfDStream(&DStream); -Check also the states. There might be some symbols left there, if some high probability ones (>50%) are possible. - FSE_endOfDState(&DState); -*/ - - -/* ***************************************** -* FSE unsafe API -*******************************************/ -static unsigned char FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD); -/* faster, but works only if nbBits is always >= 1 (otherwise, result will be corrupted) */ - - -/* ***************************************** -* Implementation of inlined functions -*******************************************/ -typedef struct { - int deltaFindState; - U32 deltaNbBits; -} FSE_symbolCompressionTransform; /* total 8 bytes */ - -MEM_STATIC void FSE_initCState(FSE_CState_t* statePtr, const FSE_CTable* ct) -{ - const void* ptr = ct; - const U16* u16ptr = (const U16*) ptr; - const U32 tableLog = MEM_read16(ptr); - statePtr->value = (ptrdiff_t)1<stateTable = u16ptr+2; - statePtr->symbolTT = ct + 1 + (tableLog ? (1<<(tableLog-1)) : 1); - statePtr->stateLog = tableLog; -} - - -/*! FSE_initCState2() : -* Same as FSE_initCState(), but the first symbol to include (which will be the last to be read) -* uses the smallest state value possible, saving the cost of this symbol */ -MEM_STATIC void FSE_initCState2(FSE_CState_t* statePtr, const FSE_CTable* ct, U32 symbol) -{ - FSE_initCState(statePtr, ct); - { const FSE_symbolCompressionTransform symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; - const U16* stateTable = (const U16*)(statePtr->stateTable); - U32 nbBitsOut = (U32)((symbolTT.deltaNbBits + (1<<15)) >> 16); - statePtr->value = (nbBitsOut << 16) - symbolTT.deltaNbBits; - statePtr->value = stateTable[(statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; - } -} - -MEM_STATIC void FSE_encodeSymbol(BIT_CStream_t* bitC, FSE_CState_t* statePtr, unsigned symbol) -{ - FSE_symbolCompressionTransform const symbolTT = ((const FSE_symbolCompressionTransform*)(statePtr->symbolTT))[symbol]; - const U16* const stateTable = (const U16*)(statePtr->stateTable); - U32 const nbBitsOut = (U32)((statePtr->value + symbolTT.deltaNbBits) >> 16); - BIT_addBits(bitC, statePtr->value, nbBitsOut); - statePtr->value = stateTable[ (statePtr->value >> nbBitsOut) + symbolTT.deltaFindState]; -} - -MEM_STATIC void FSE_flushCState(BIT_CStream_t* bitC, const FSE_CState_t* statePtr) -{ - BIT_addBits(bitC, statePtr->value, statePtr->stateLog); - BIT_flushBits(bitC); -} - - -/* FSE_getMaxNbBits() : - * Approximate maximum cost of a symbol, in bits. - * Fractional get rounded up (i.e : a symbol with a normalized frequency of 3 gives the same result as a frequency of 2) - * note 1 : assume symbolValue is valid (<= maxSymbolValue) - * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ -MEM_STATIC U32 FSE_getMaxNbBits(const void* symbolTTPtr, U32 symbolValue) -{ - const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; - return (symbolTT[symbolValue].deltaNbBits + ((1<<16)-1)) >> 16; -} - -/* FSE_bitCost() : - * Approximate symbol cost, as fractional value, using fixed-point format (accuracyLog fractional bits) - * note 1 : assume symbolValue is valid (<= maxSymbolValue) - * note 2 : if freq[symbolValue]==0, @return a fake cost of tableLog+1 bits */ -MEM_STATIC U32 FSE_bitCost(const void* symbolTTPtr, U32 tableLog, U32 symbolValue, U32 accuracyLog) -{ - const FSE_symbolCompressionTransform* symbolTT = (const FSE_symbolCompressionTransform*) symbolTTPtr; - U32 const minNbBits = symbolTT[symbolValue].deltaNbBits >> 16; - U32 const threshold = (minNbBits+1) << 16; - assert(tableLog < 16); - assert(accuracyLog < 31-tableLog); /* ensure enough room for renormalization double shift */ - { U32 const tableSize = 1 << tableLog; - U32 const deltaFromThreshold = threshold - (symbolTT[symbolValue].deltaNbBits + tableSize); - U32 const normalizedDeltaFromThreshold = (deltaFromThreshold << accuracyLog) >> tableLog; /* linear interpolation (very approximate) */ - U32 const bitMultiplier = 1 << accuracyLog; - assert(symbolTT[symbolValue].deltaNbBits + tableSize <= threshold); - assert(normalizedDeltaFromThreshold <= bitMultiplier); - return (minNbBits+1)*bitMultiplier - normalizedDeltaFromThreshold; - } -} - - -/* ====== Decompression ====== */ - -typedef struct { - U16 tableLog; - U16 fastMode; -} FSE_DTableHeader; /* sizeof U32 */ - -typedef struct -{ - unsigned short newState; - unsigned char symbol; - unsigned char nbBits; -} FSE_decode_t; /* size == U32 */ - -MEM_STATIC void FSE_initDState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD, const FSE_DTable* dt) -{ - const void* ptr = dt; - const FSE_DTableHeader* const DTableH = (const FSE_DTableHeader*)ptr; - DStatePtr->state = BIT_readBits(bitD, DTableH->tableLog); - BIT_reloadDStream(bitD); - DStatePtr->table = dt + 1; -} - -MEM_STATIC BYTE FSE_peekSymbol(const FSE_DState_t* DStatePtr) -{ - FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; - return DInfo.symbol; -} - -MEM_STATIC void FSE_updateState(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) -{ - FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; - U32 const nbBits = DInfo.nbBits; - size_t const lowBits = BIT_readBits(bitD, nbBits); - DStatePtr->state = DInfo.newState + lowBits; -} - -MEM_STATIC BYTE FSE_decodeSymbol(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) -{ - FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; - U32 const nbBits = DInfo.nbBits; - BYTE const symbol = DInfo.symbol; - size_t const lowBits = BIT_readBits(bitD, nbBits); - - DStatePtr->state = DInfo.newState + lowBits; - return symbol; -} - -/*! FSE_decodeSymbolFast() : - unsafe, only works if no symbol has a probability > 50% */ -MEM_STATIC BYTE FSE_decodeSymbolFast(FSE_DState_t* DStatePtr, BIT_DStream_t* bitD) -{ - FSE_decode_t const DInfo = ((const FSE_decode_t*)(DStatePtr->table))[DStatePtr->state]; - U32 const nbBits = DInfo.nbBits; - BYTE const symbol = DInfo.symbol; - size_t const lowBits = BIT_readBitsFast(bitD, nbBits); - - DStatePtr->state = DInfo.newState + lowBits; - return symbol; -} - -MEM_STATIC unsigned FSE_endOfDState(const FSE_DState_t* DStatePtr) -{ - return DStatePtr->state == 0; -} - - - -#ifndef FSE_COMMONDEFS_ONLY - -/* ************************************************************** -* Tuning parameters -****************************************************************/ -/*!MEMORY_USAGE : -* Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) -* Increasing memory usage improves compression ratio -* Reduced memory usage can improve speed, due to cache effect -* Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache */ -#ifndef FSE_MAX_MEMORY_USAGE -# define FSE_MAX_MEMORY_USAGE 14 -#endif -#ifndef FSE_DEFAULT_MEMORY_USAGE -# define FSE_DEFAULT_MEMORY_USAGE 13 -#endif - -/*!FSE_MAX_SYMBOL_VALUE : -* Maximum symbol value authorized. -* Required for proper stack allocation */ -#ifndef FSE_MAX_SYMBOL_VALUE -# define FSE_MAX_SYMBOL_VALUE 255 -#endif - -/* ************************************************************** -* template functions type & suffix -****************************************************************/ -#define FSE_FUNCTION_TYPE BYTE -#define FSE_FUNCTION_EXTENSION -#define FSE_DECODE_TYPE FSE_decode_t - - -#endif /* !FSE_COMMONDEFS_ONLY */ - - -/* *************************************************************** -* Constants -*****************************************************************/ -#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) -#define FSE_MAX_TABLESIZE (1U< FSE_TABLELOG_ABSOLUTE_MAX -# error "FSE_MAX_TABLELOG > FSE_TABLELOG_ABSOLUTE_MAX is not supported" -#endif - -#define FSE_TABLESTEP(tableSize) ((tableSize>>1) + (tableSize>>3) + 3) - -} - -#endif /* FSE_H_FSE_STATIC_LINKING_ONLY */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/huf.h b/src/duckdb/third_party/zstd/include/zstd/common/huf.h index 4bba7272..a28595ce 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/huf.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/huf.h @@ -1,7 +1,7 @@ /* ****************************************************************** * huff0 huffman codec, * part of Finite State Entropy library - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - Source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -12,86 +12,271 @@ * You may select, at your option, one of the above-listed licenses. ****************************************************************** */ + #ifndef HUF_H_298734234 #define HUF_H_298734234 /* *** Dependencies *** */ -#include /* size_t */ - - -/* *** library symbols visibility *** */ -/* Note : when linking with -fvisibility=hidden on gcc, or by default on Visual, - * HUF symbols remain "private" (internal symbols for library only). - * Set macro FSE_DLL_EXPORT to 1 if you want HUF symbols visible on DLL interface */ -#if defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) && defined(__GNUC__) && (__GNUC__ >= 4) -# define HUF_PUBLIC_API __attribute__ ((visibility ("default"))) -#elif defined(FSE_DLL_EXPORT) && (FSE_DLL_EXPORT==1) /* Visual expected */ -# define HUF_PUBLIC_API __declspec(dllexport) -#elif defined(FSE_DLL_IMPORT) && (FSE_DLL_IMPORT==1) -# define HUF_PUBLIC_API __declspec(dllimport) /* not required, just to generate faster code (saves a function pointer load from IAT and an indirect jump) */ -#else -# define HUF_PUBLIC_API -#endif +#include "zstd/common/zstd_deps.h" /* size_t */ +#include "zstd/common/mem.h" /* U32 */ +#define FSE_STATIC_LINKING_ONLY +#include "zstd/common/fse.h" namespace duckdb_zstd { -/* ========================== */ -/* *** simple functions *** */ -/* ========================== */ - -/** HUF_compress() : - * Compress content from buffer 'src', of size 'srcSize', into buffer 'dst'. - * 'dst' buffer must be already allocated. - * Compression runs faster if `dstCapacity` >= HUF_compressBound(srcSize). - * `srcSize` must be <= `HUF_BLOCKSIZE_MAX` == 128 KB. - * @return : size of compressed data (<= `dstCapacity`). - * Special values : if return == 0, srcData is not compressible => Nothing is stored within dst !!! - * if HUF_isError(return), compression failed (more details using HUF_getErrorName()) +/* *** Tool functions *** */ +#define HUF_BLOCKSIZE_MAX (128 * 1024) /**< maximum input size for a single block compressed with HUF_compress */ +size_t HUF_compressBound(size_t size); /**< maximum compressed size (worst case) */ + +/* Error Management */ +unsigned HUF_isError(size_t code); /**< tells if a return value is an error code */ +const char* HUF_getErrorName(size_t code); /**< provides error code string (useful for debugging) */ + + +#define HUF_WORKSPACE_SIZE ((8 << 10) + 512 /* sorting scratch space */) +#define HUF_WORKSPACE_SIZE_U64 (HUF_WORKSPACE_SIZE / sizeof(U64)) + +/* *** Constants *** */ +#define HUF_TABLELOG_MAX 12 /* max runtime value of tableLog (due to static allocation); can be modified up to HUF_TABLELOG_ABSOLUTEMAX */ +#define HUF_TABLELOG_DEFAULT 11 /* default tableLog value when none specified */ +#define HUF_SYMBOLVALUE_MAX 255 + +#define HUF_TABLELOG_ABSOLUTEMAX 12 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ +#if (HUF_TABLELOG_MAX > HUF_TABLELOG_ABSOLUTEMAX) +# error "HUF_TABLELOG_MAX is too large !" +#endif + + +/* **************************************** +* Static allocation +******************************************/ +/* HUF buffer bounds */ +#define HUF_CTABLEBOUND 129 +#define HUF_BLOCKBOUND(size) (size + (size>>8) + 8) /* only true when incompressible is pre-filtered with fast heuristic */ +#define HUF_COMPRESSBOUND(size) (HUF_CTABLEBOUND + HUF_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ + +/* static allocation of HUF's Compression Table */ +/* this is a private definition, just exposed for allocation and strict aliasing purpose. never EVER access its members directly */ +typedef size_t HUF_CElt; /* consider it an incomplete type */ +#define HUF_CTABLE_SIZE_ST(maxSymbolValue) ((maxSymbolValue)+2) /* Use tables of size_t, for proper alignment */ +#define HUF_CTABLE_SIZE(maxSymbolValue) (HUF_CTABLE_SIZE_ST(maxSymbolValue) * sizeof(size_t)) +#define HUF_CREATE_STATIC_CTABLE(name, maxSymbolValue) \ + HUF_CElt name[HUF_CTABLE_SIZE_ST(maxSymbolValue)] /* no final ; */ + +/* static allocation of HUF's DTable */ +typedef U32 HUF_DTable; +#define HUF_DTABLE_SIZE(maxTableLog) (1 + (1<<(maxTableLog))) +#define HUF_CREATE_STATIC_DTABLEX1(DTable, maxTableLog) \ + HUF_DTable DTable[HUF_DTABLE_SIZE((maxTableLog)-1)] = { ((U32)((maxTableLog)-1) * 0x01000001) } +#define HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog) \ + HUF_DTable DTable[HUF_DTABLE_SIZE(maxTableLog)] = { ((U32)(maxTableLog) * 0x01000001) } + + +/* **************************************** +* Advanced decompression functions +******************************************/ + +/** + * Huffman flags bitset. + * For all flags, 0 is the default value. */ -HUF_PUBLIC_API size_t HUF_compress(void* dst, size_t dstCapacity, - const void* src, size_t srcSize); - -/** HUF_decompress() : - * Decompress HUF data from buffer 'cSrc', of size 'cSrcSize', - * into already allocated buffer 'dst', of minimum size 'dstSize'. - * `originalSize` : **must** be the ***exact*** size of original (uncompressed) data. - * Note : in contrast with FSE, HUF_decompress can regenerate - * RLE (cSrcSize==1) and uncompressed (cSrcSize==dstSize) data, - * because it knows size to regenerate (originalSize). - * @return : size of regenerated data (== originalSize), - * or an error code, which can be tested using HUF_isError() +typedef enum { + /** + * If compiled with DYNAMIC_BMI2: Set flag only if the CPU supports BMI2 at runtime. + * Otherwise: Ignored. + */ + HUF_flags_bmi2 = (1 << 0), + /** + * If set: Test possible table depths to find the one that produces the smallest header + encoded size. + * If unset: Use heuristic to find the table depth. + */ + HUF_flags_optimalDepth = (1 << 1), + /** + * If set: If the previous table can encode the input, always reuse the previous table. + * If unset: If the previous table can encode the input, reuse the previous table if it results in a smaller output. + */ + HUF_flags_preferRepeat = (1 << 2), + /** + * If set: Sample the input and check if the sample is uncompressible, if it is then don't attempt to compress. + * If unset: Always histogram the entire input. + */ + HUF_flags_suspectUncompressible = (1 << 3), + /** + * If set: Don't use assembly implementations + * If unset: Allow using assembly implementations + */ + HUF_flags_disableAsm = (1 << 4), + /** + * If set: Don't use the fast decoding loop, always use the fallback decoding loop. + * If unset: Use the fast decoding loop when possible. + */ + HUF_flags_disableFast = (1 << 5) +} HUF_flags_e; + + +/* **************************************** + * HUF detailed API + * ****************************************/ +#define HUF_OPTIMAL_DEPTH_THRESHOLD ZSTD_btultra + +/*! HUF_compress() does the following: + * 1. count symbol occurrence from source[] into table count[] using FSE_count() (exposed within "fse.h") + * 2. (optional) refine tableLog using HUF_optimalTableLog() + * 3. build Huffman table from count using HUF_buildCTable() + * 4. save Huffman table to memory buffer using HUF_writeCTable() + * 5. encode the data stream using HUF_compress4X_usingCTable() + * + * The following API allows targeting specific sub-functions for advanced tasks. + * For example, it's possible to compress several blocks using the same 'CTable', + * or to save and regenerate 'CTable' using external methods. */ -HUF_PUBLIC_API size_t HUF_decompress(void* dst, size_t originalSize, - const void* cSrc, size_t cSrcSize); +unsigned HUF_minTableLog(unsigned symbolCardinality); +unsigned HUF_cardinality(const unsigned* count, unsigned maxSymbolValue); +unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue, void* workSpace, + size_t wkspSize, HUF_CElt* table, const unsigned* count, int flags); /* table is used as scratch space for building and testing tables, not a return value */ +size_t HUF_writeCTable_wksp(void* dst, size_t maxDstSize, const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog, void* workspace, size_t workspaceSize); +size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags); +size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); +int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); +typedef enum { + HUF_repeat_none, /**< Cannot use the previous table */ + HUF_repeat_check, /**< Can use the previous table but it must be checked. Note : The previous table must have been constructed by HUF_compress{1, 4}X_repeat */ + HUF_repeat_valid /**< Can use the previous table and it is assumed to be valid */ + } HUF_repeat; -/* *** Tool functions *** */ -#define HUF_BLOCKSIZE_MAX (128 * 1024) /**< maximum input size for a single block compressed with HUF_compress */ -HUF_PUBLIC_API size_t HUF_compressBound(size_t size); /**< maximum compressed size (worst case) */ +/** HUF_compress4X_repeat() : + * Same as HUF_compress4X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. + * If it uses hufTable it does not modify hufTable or repeat. + * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. + * If preferRepeat then the old table will always be used if valid. + * If suspectUncompressible then some sampling checks will be run to potentially skip huffman coding */ +size_t HUF_compress4X_repeat(void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog, + void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ + HUF_CElt* hufTable, HUF_repeat* repeat, int flags); -/* Error Management */ -HUF_PUBLIC_API unsigned HUF_isError(size_t code); /**< tells if a return value is an error code */ -HUF_PUBLIC_API const char* HUF_getErrorName(size_t code); /**< provides error code string (useful for debugging) */ - - -/* *** Advanced function *** */ - -/** HUF_compress2() : - * Same as HUF_compress(), but offers control over `maxSymbolValue` and `tableLog`. - * `maxSymbolValue` must be <= HUF_SYMBOLVALUE_MAX . - * `tableLog` must be `<= HUF_TABLELOG_MAX` . */ -HUF_PUBLIC_API size_t HUF_compress2 (void* dst, size_t dstCapacity, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned tableLog); - -/** HUF_compress4X_wksp() : - * Same as HUF_compress2(), but uses externally allocated `workSpace`. - * `workspace` must have minimum alignment of 4, and be at least as large as HUF_WORKSPACE_SIZE */ -#define HUF_WORKSPACE_SIZE ((6 << 10) + 256) -#define HUF_WORKSPACE_SIZE_U32 (HUF_WORKSPACE_SIZE / sizeof(U32)) -HUF_PUBLIC_API size_t HUF_compress4X_wksp (void* dst, size_t dstCapacity, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned tableLog, - void* workSpace, size_t wkspSize); +/** HUF_buildCTable_wksp() : + * Same as HUF_buildCTable(), but using externally allocated scratch buffer. + * `workSpace` must be aligned on 4-bytes boundaries, and its size must be >= HUF_CTABLE_WORKSPACE_SIZE. + */ +#define HUF_CTABLE_WORKSPACE_SIZE_U32 ((4 * (HUF_SYMBOLVALUE_MAX + 1)) + 192) +#define HUF_CTABLE_WORKSPACE_SIZE (HUF_CTABLE_WORKSPACE_SIZE_U32 * sizeof(unsigned)) +size_t HUF_buildCTable_wksp (HUF_CElt* tree, + const unsigned* count, U32 maxSymbolValue, U32 maxNbBits, + void* workSpace, size_t wkspSize); + +/*! HUF_readStats() : + * Read compact Huffman tree, saved by HUF_writeCTable(). + * `huffWeight` is destination buffer. + * @return : size read from `src` , or an error Code . + * Note : Needed by HUF_readCTable() and HUF_readDTableXn() . */ +size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, + U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize); + +/*! HUF_readStats_wksp() : + * Same as HUF_readStats() but takes an external workspace which must be + * 4-byte aligned and its size must be >= HUF_READ_STATS_WORKSPACE_SIZE. + * If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0. + */ +#define HUF_READ_STATS_WORKSPACE_SIZE_U32 FSE_DECOMPRESS_WKSP_SIZE_U32(6, HUF_TABLELOG_MAX-1) +#define HUF_READ_STATS_WORKSPACE_SIZE (HUF_READ_STATS_WORKSPACE_SIZE_U32 * sizeof(unsigned)) +size_t HUF_readStats_wksp(BYTE* huffWeight, size_t hwSize, + U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, + const void* src, size_t srcSize, + void* workspace, size_t wkspSize, + int flags); + +/** HUF_readCTable() : + * Loading a CTable saved with HUF_writeCTable() */ +size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize, unsigned *hasZeroWeights); + +/** HUF_getNbBitsFromCTable() : + * Read nbBits from CTable symbolTable, for symbol `symbolValue` presumed <= HUF_SYMBOLVALUE_MAX + * Note 1 : If symbolValue > HUF_readCTableHeader(symbolTable).maxSymbolValue, returns 0 + * Note 2 : is not inlined, as HUF_CElt definition is private + */ +U32 HUF_getNbBitsFromCTable(const HUF_CElt* symbolTable, U32 symbolValue); + +typedef struct { + BYTE tableLog; + BYTE maxSymbolValue; + BYTE unused[sizeof(size_t) - 2]; +} HUF_CTableHeader; + +/** HUF_readCTableHeader() : + * @returns The header from the CTable specifying the tableLog and the maxSymbolValue. + */ +HUF_CTableHeader HUF_readCTableHeader(HUF_CElt const* ctable); + +/* + * HUF_decompress() does the following: + * 1. select the decompression algorithm (X1, X2) based on pre-computed heuristics + * 2. build Huffman table from save, using HUF_readDTableX?() + * 3. decode 1 or 4 segments in parallel using HUF_decompress?X?_usingDTable() + */ + +/** HUF_selectDecoder() : + * Tells which decoder is likely to decode faster, + * based on a set of pre-computed metrics. + * @return : 0==HUF_decompress4X1, 1==HUF_decompress4X2 . + * Assumption : 0 < dstSize <= 128 KB */ +U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize); + +/** + * The minimum workspace size for the `workSpace` used in + * HUF_readDTableX1_wksp() and HUF_readDTableX2_wksp(). + * + * The space used depends on HUF_TABLELOG_MAX, ranging from ~1500 bytes when + * HUF_TABLE_LOG_MAX=12 to ~1850 bytes when HUF_TABLE_LOG_MAX=15. + * Buffer overflow errors may potentially occur if code modifications result in + * a required workspace size greater than that specified in the following + * macro. + */ +#define HUF_DECOMPRESS_WORKSPACE_SIZE ((2 << 10) + (1 << 9)) +#define HUF_DECOMPRESS_WORKSPACE_SIZE_U32 (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32)) + + +/* ====================== */ +/* single stream variants */ +/* ====================== */ + +size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable, int flags); +/** HUF_compress1X_repeat() : + * Same as HUF_compress1X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. + * If it uses hufTable it does not modify hufTable or repeat. + * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. + * If preferRepeat then the old table will always be used if valid. + * If suspectUncompressible then some sampling checks will be run to potentially skip huffman coding */ +size_t HUF_compress1X_repeat(void* dst, size_t dstSize, + const void* src, size_t srcSize, + unsigned maxSymbolValue, unsigned tableLog, + void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ + HUF_CElt* hufTable, HUF_repeat* repeat, int flags); + +size_t HUF_decompress1X_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); /**< double-symbols decoder */ +#endif + +/* BMI2 variants. + * If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0. + */ +size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); +#endif +size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int flags); +size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int flags); +#ifndef HUF_FORCE_DECOMPRESS_X2 +size_t HUF_readDTableX1_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int flags); +#endif +#ifndef HUF_FORCE_DECOMPRESS_X1 +size_t HUF_readDTableX2_wksp(HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize, int flags); +#endif + +} // namespace duckdb_zstd #endif /* HUF_H_298734234 */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/huf_static.h b/src/duckdb/third_party/zstd/include/zstd/common/huf_static.h deleted file mode 100644 index 7701972e..00000000 --- a/src/duckdb/third_party/zstd/include/zstd/common/huf_static.h +++ /dev/null @@ -1,238 +0,0 @@ -/* ****************************************************************** - * WARNING !! - * The following section contains advanced and experimental definitions - * which shall never be used in the context of a dynamic library, - * because they are not guaranteed to remain stable in the future. - * Only consider them in association with static linking. - * **************************************************************** */ -#ifndef HUF_H_HUF_STATIC_LINKING_ONLY -#define HUF_H_HUF_STATIC_LINKING_ONLY - -/* *** Dependencies *** */ -#include "zstd/common/mem.h" /* U32 */ - - -/* *** Constants *** */ -#define HUF_TABLELOG_MAX 12 /* max runtime value of tableLog (due to static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG */ -#define HUF_TABLELOG_DEFAULT 11 /* default tableLog value when none specified */ -#define HUF_SYMBOLVALUE_MAX 255 - -#define HUF_TABLELOG_ABSOLUTEMAX 15 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ -#if (HUF_TABLELOG_MAX > HUF_TABLELOG_ABSOLUTEMAX) -# error "HUF_TABLELOG_MAX is too large !" -#endif - - -/* **************************************** -* Static allocation -******************************************/ -/* HUF buffer bounds */ -#define HUF_CTABLEBOUND 129 -#define HUF_BLOCKBOUND(size) (size + (size>>8) + 8) /* only true when incompressible is pre-filtered with fast heuristic */ -#define HUF_COMPRESSBOUND(size) (HUF_CTABLEBOUND + HUF_BLOCKBOUND(size)) /* Macro version, useful for static allocation */ - -/* static allocation of HUF's Compression Table */ -#define HUF_CTABLE_SIZE_U32(maxSymbolValue) ((maxSymbolValue)+1) /* Use tables of U32, for proper alignment */ -#define HUF_CTABLE_SIZE(maxSymbolValue) (HUF_CTABLE_SIZE_U32(maxSymbolValue) * sizeof(U32)) -#define HUF_CREATE_STATIC_CTABLE(name, maxSymbolValue) \ - U32 name##hb[HUF_CTABLE_SIZE_U32(maxSymbolValue)]; \ - void* name##hv = &(name##hb); \ - HUF_CElt* name = (HUF_CElt*)(name##hv) /* no final ; */ - -/* static allocation of HUF's DTable */ -typedef U32 HUF_DTable; -#define HUF_DTABLE_SIZE(maxTableLog) (1 + (1<<(maxTableLog))) -#define HUF_CREATE_STATIC_DTABLEX1(DTable, maxTableLog) \ - HUF_DTable DTable[HUF_DTABLE_SIZE((maxTableLog)-1)] = { ((U32)((maxTableLog)-1) * 0x01000001) } -#define HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog) \ - HUF_DTable DTable[HUF_DTABLE_SIZE(maxTableLog)] = { ((U32)(maxTableLog) * 0x01000001) } - - -/* **************************************** -* Advanced decompression functions -******************************************/ -size_t HUF_decompress4X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */ -#ifndef HUF_FORCE_DECOMPRESS_X1 -size_t HUF_decompress4X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */ -#endif - -size_t HUF_decompress4X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< decodes RLE and uncompressed */ -size_t HUF_decompress4X_hufOnly(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< considers RLE and uncompressed as errors */ -size_t HUF_decompress4X_hufOnly_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< considers RLE and uncompressed as errors */ -size_t HUF_decompress4X1_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */ -size_t HUF_decompress4X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< single-symbol decoder */ -#ifndef HUF_FORCE_DECOMPRESS_X1 -size_t HUF_decompress4X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */ -size_t HUF_decompress4X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< double-symbols decoder */ -#endif - - -/* **************************************** - * HUF detailed API - * ****************************************/ - -/*! HUF_compress() does the following: - * 1. count symbol occurrence from source[] into table count[] using FSE_count() (exposed within "zstd/common/fse.h") - * 2. (optional) refine tableLog using HUF_optimalTableLog() - * 3. build Huffman table from count using HUF_buildCTable() - * 4. save Huffman table to memory buffer using HUF_writeCTable() - * 5. encode the data stream using HUF_compress4X_usingCTable() - * - * The following API allows targeting specific sub-functions for advanced tasks. - * For example, it's possible to compress several blocks using the same 'CTable', - * or to save and regenerate 'CTable' using external methods. - */ -unsigned HUF_optimalTableLog(unsigned maxTableLog, size_t srcSize, unsigned maxSymbolValue); -typedef struct HUF_CElt_s HUF_CElt; /* incomplete type */ -size_t HUF_buildCTable (HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue, unsigned maxNbBits); /* @return : maxNbBits; CTable and count can overlap. In which case, CTable will overwrite count content */ -size_t HUF_writeCTable (void* dst, size_t maxDstSize, const HUF_CElt* CTable, unsigned maxSymbolValue, unsigned huffLog); -size_t HUF_compress4X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable); -size_t HUF_estimateCompressedSize(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); -int HUF_validateCTable(const HUF_CElt* CTable, const unsigned* count, unsigned maxSymbolValue); - -typedef enum { - HUF_repeat_none, /**< Cannot use the previous table */ - HUF_repeat_check, /**< Can use the previous table but it must be checked. Note : The previous table must have been constructed by HUF_compress{1, 4}X_repeat */ - HUF_repeat_valid /**< Can use the previous table and it is assumed to be valid */ - } HUF_repeat; -/** HUF_compress4X_repeat() : - * Same as HUF_compress4X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. - * If it uses hufTable it does not modify hufTable or repeat. - * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. - * If preferRepeat then the old table will always be used if valid. */ -size_t HUF_compress4X_repeat(void* dst, size_t dstSize, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned tableLog, - void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ - HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2); - -/** HUF_buildCTable_wksp() : - * Same as HUF_buildCTable(), but using externally allocated scratch buffer. - * `workSpace` must be aligned on 4-bytes boundaries, and its size must be >= HUF_CTABLE_WORKSPACE_SIZE. - */ -#define HUF_CTABLE_WORKSPACE_SIZE_U32 (2*HUF_SYMBOLVALUE_MAX +1 +1) -#define HUF_CTABLE_WORKSPACE_SIZE (HUF_CTABLE_WORKSPACE_SIZE_U32 * sizeof(unsigned)) -size_t HUF_buildCTable_wksp (HUF_CElt* tree, - const unsigned* count, U32 maxSymbolValue, U32 maxNbBits, - void* workSpace, size_t wkspSize); - -/*! HUF_readStats() : - * Read compact Huffman tree, saved by HUF_writeCTable(). - * `huffWeight` is destination buffer. - * @return : size read from `src` , or an error Code . - * Note : Needed by HUF_readCTable() and HUF_readDTableXn() . */ -size_t HUF_readStats(BYTE* huffWeight, size_t hwSize, - U32* rankStats, U32* nbSymbolsPtr, U32* tableLogPtr, - const void* src, size_t srcSize); - -/** HUF_readCTable() : - * Loading a CTable saved with HUF_writeCTable() */ -size_t HUF_readCTable (HUF_CElt* CTable, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize, unsigned *hasZeroWeights); - -/** HUF_getNbBits() : - * Read nbBits from CTable symbolTable, for symbol `symbolValue` presumed <= HUF_SYMBOLVALUE_MAX - * Note 1 : is not inlined, as HUF_CElt definition is private - * Note 2 : const void* used, so that it can provide a statically allocated table as argument (which uses type U32) */ -U32 HUF_getNbBits(const void* symbolTable, U32 symbolValue); - -/* - * HUF_decompress() does the following: - * 1. select the decompression algorithm (X1, X2) based on pre-computed heuristics - * 2. build Huffman table from save, using HUF_readDTableX?() - * 3. decode 1 or 4 segments in parallel using HUF_decompress?X?_usingDTable() - */ - -/** HUF_selectDecoder() : - * Tells which decoder is likely to decode faster, - * based on a set of pre-computed metrics. - * @return : 0==HUF_decompress4X1, 1==HUF_decompress4X2 . - * Assumption : 0 < dstSize <= 128 KB */ -U32 HUF_selectDecoder (size_t dstSize, size_t cSrcSize); - -/** - * The minimum workspace size for the `workSpace` used in - * HUF_readDTableX1_wksp() and HUF_readDTableX2_wksp(). - * - * The space used depends on HUF_TABLELOG_MAX, ranging from ~1500 bytes when - * HUF_TABLE_LOG_MAX=12 to ~1850 bytes when HUF_TABLE_LOG_MAX=15. - * Buffer overflow errors may potentially occur if code modifications result in - * a required workspace size greater than that specified in the following - * macro. - */ -#define HUF_DECOMPRESS_WORKSPACE_SIZE (2 << 10) -#define HUF_DECOMPRESS_WORKSPACE_SIZE_U32 (HUF_DECOMPRESS_WORKSPACE_SIZE / sizeof(U32)) - -#ifndef HUF_FORCE_DECOMPRESS_X2 -size_t HUF_readDTableX1 (HUF_DTable* DTable, const void* src, size_t srcSize); -size_t HUF_readDTableX1_wksp (HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize); -#endif -#ifndef HUF_FORCE_DECOMPRESS_X1 -size_t HUF_readDTableX2 (HUF_DTable* DTable, const void* src, size_t srcSize); -size_t HUF_readDTableX2_wksp (HUF_DTable* DTable, const void* src, size_t srcSize, void* workSpace, size_t wkspSize); -#endif - -size_t HUF_decompress4X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); -#ifndef HUF_FORCE_DECOMPRESS_X2 -size_t HUF_decompress4X1_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); -#endif -#ifndef HUF_FORCE_DECOMPRESS_X1 -size_t HUF_decompress4X2_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); -#endif - - -/* ====================== */ -/* single stream variants */ -/* ====================== */ - -size_t HUF_compress1X (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog); -size_t HUF_compress1X_wksp (void* dst, size_t dstSize, const void* src, size_t srcSize, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); /**< `workSpace` must be a table of at least HUF_WORKSPACE_SIZE_U32 unsigned */ -size_t HUF_compress1X_usingCTable(void* dst, size_t dstSize, const void* src, size_t srcSize, const HUF_CElt* CTable); -/** HUF_compress1X_repeat() : - * Same as HUF_compress1X_wksp(), but considers using hufTable if *repeat != HUF_repeat_none. - * If it uses hufTable it does not modify hufTable or repeat. - * If it doesn't, it sets *repeat = HUF_repeat_none, and it sets hufTable to the table used. - * If preferRepeat then the old table will always be used if valid. */ -size_t HUF_compress1X_repeat(void* dst, size_t dstSize, - const void* src, size_t srcSize, - unsigned maxSymbolValue, unsigned tableLog, - void* workSpace, size_t wkspSize, /**< `workSpace` must be aligned on 4-bytes boundaries, `wkspSize` must be >= HUF_WORKSPACE_SIZE */ - HUF_CElt* hufTable, HUF_repeat* repeat, int preferRepeat, int bmi2); - -size_t HUF_decompress1X1 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /* single-symbol decoder */ -#ifndef HUF_FORCE_DECOMPRESS_X1 -size_t HUF_decompress1X2 (void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /* double-symbol decoder */ -#endif - -size_t HUF_decompress1X_DCtx (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); -size_t HUF_decompress1X_DCtx_wksp (HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); -#ifndef HUF_FORCE_DECOMPRESS_X2 -size_t HUF_decompress1X1_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< single-symbol decoder */ -size_t HUF_decompress1X1_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< single-symbol decoder */ -#endif -#ifndef HUF_FORCE_DECOMPRESS_X1 -size_t HUF_decompress1X2_DCtx(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize); /**< double-symbols decoder */ -size_t HUF_decompress1X2_DCtx_wksp(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize); /**< double-symbols decoder */ -#endif - -size_t HUF_decompress1X_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); /**< automatic selection of sing or double symbol decoder, based on DTable */ -#ifndef HUF_FORCE_DECOMPRESS_X2 -size_t HUF_decompress1X1_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); -#endif -#ifndef HUF_FORCE_DECOMPRESS_X1 -size_t HUF_decompress1X2_usingDTable(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable); -#endif - -/* BMI2 variants. - * If the CPU has BMI2 support, pass bmi2=1, otherwise pass bmi2=0. - */ -size_t HUF_decompress1X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2); -#ifndef HUF_FORCE_DECOMPRESS_X2 -size_t HUF_decompress1X1_DCtx_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2); -#endif -size_t HUF_decompress4X_usingDTable_bmi2(void* dst, size_t maxDstSize, const void* cSrc, size_t cSrcSize, const HUF_DTable* DTable, int bmi2); -size_t HUF_decompress4X_hufOnly_wksp_bmi2(HUF_DTable* dctx, void* dst, size_t dstSize, const void* cSrc, size_t cSrcSize, void* workSpace, size_t wkspSize, int bmi2); - -} - -#endif /* HUF_STATIC_LINKING_ONLY */ - diff --git a/src/duckdb/third_party/zstd/include/zstd/common/mem.h b/src/duckdb/third_party/zstd/include/zstd/common/mem.h index 7c7b1f32..4d36251d 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/mem.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/mem.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -14,8 +14,10 @@ /*-**************************************** * Dependencies ******************************************/ -#include /* size_t, ptrdiff_t */ -#include /* memcpy */ +#include /* size_t, ptrdiff_t */ +#include "zstd/common/compiler.h" /* __has_builtin */ +#include "zstd/common/debug.h" /* DEBUG_STATIC_ASSERT */ +#include "zstd/common/zstd_deps.h" /* ZSTD_memcpy */ /*-**************************************** @@ -25,37 +27,19 @@ # include /* _byteswap_ulong */ # include /* _byteswap_* */ #endif -#if defined(__GNUC__) -# define MEM_STATIC static __inline __attribute__((unused)) -#elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) -# define MEM_STATIC static inline -#elif defined(_MSC_VER) -# define MEM_STATIC static __inline -#else -# define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ -#endif - -#ifndef __has_builtin -# define __has_builtin(x) 0 /* compat. with non-clang compilers */ -#endif - -/* code only tested on 32 and 64 bits systems */ -#define MEM_STATIC_ASSERT(c) { enum { MEM_static_assert = 1/(int)(!!(c)) }; } -MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (sizeof(size_t)==8)); } - -/* detects whether we are being compiled under msan */ -#if defined (__has_feature) -# if __has_feature(memory_sanitizer) -# define MEMORY_SANITIZER 1 -# endif -#endif /*-************************************************************** * Basic Types *****************************************************************/ #if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) ) -# include +# if defined(_AIX) +# include +# else +# include /* intptr_t */ +# endif typedef uint8_t BYTE; + typedef uint8_t U8; + typedef int8_t S8; typedef uint16_t U16; typedef int16_t S16; typedef uint32_t U32; @@ -68,6 +52,8 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size # error "this implementation requires char to be exactly 8-bit type" #endif typedef unsigned char BYTE; + typedef unsigned char U8; + typedef signed char S8; #if USHRT_MAX != 65535 # error "this implementation requires short to be exactly 16-bit type" #endif @@ -87,25 +73,63 @@ MEM_STATIC void MEM_check(void) { MEM_STATIC_ASSERT((sizeof(size_t)==4) || (size namespace duckdb_zstd { /*-************************************************************** -* Memory I/O +* Memory I/O API *****************************************************************/ -/* MEM_FORCE_MEMORY_ACCESS : - * By default, access to unaligned memory is controlled by `memcpy()`, which is safe and portable. - * Unfortunately, on some target/compiler combinations, the generated assembly is sub-optimal. - * The below switch allow to select different access method for improved performance. - * Method 0 (default) : use `memcpy()`. Safe and portable. - * Method 1 : `__packed` statement. It depends on compiler extension (i.e., not portable). - * This method is safe if your compiler supports it, and *generally* as fast or faster than `memcpy`. +/*=== Static platform detection ===*/ +MEM_STATIC unsigned MEM_32bits(void); +MEM_STATIC unsigned MEM_64bits(void); +MEM_STATIC unsigned MEM_isLittleEndian(void); + +/*=== Native unaligned read/write ===*/ +MEM_STATIC U16 MEM_read16(const void* memPtr); +MEM_STATIC U32 MEM_read32(const void* memPtr); +MEM_STATIC U64 MEM_read64(const void* memPtr); +MEM_STATIC size_t MEM_readST(const void* memPtr); + +MEM_STATIC void MEM_write16(void* memPtr, U16 value); +MEM_STATIC void MEM_write32(void* memPtr, U32 value); +MEM_STATIC void MEM_write64(void* memPtr, U64 value); + +/*=== Little endian unaligned read/write ===*/ +MEM_STATIC U16 MEM_readLE16(const void* memPtr); +MEM_STATIC U32 MEM_readLE24(const void* memPtr); +MEM_STATIC U32 MEM_readLE32(const void* memPtr); +MEM_STATIC U64 MEM_readLE64(const void* memPtr); +MEM_STATIC size_t MEM_readLEST(const void* memPtr); + +MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val); +MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val); +MEM_STATIC void MEM_writeLE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeLE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeLEST(void* memPtr, size_t val); + +/*=== Big endian unaligned read/write ===*/ +MEM_STATIC U32 MEM_readBE32(const void* memPtr); +MEM_STATIC U64 MEM_readBE64(const void* memPtr); +MEM_STATIC size_t MEM_readBEST(const void* memPtr); + +MEM_STATIC void MEM_writeBE32(void* memPtr, U32 val32); +MEM_STATIC void MEM_writeBE64(void* memPtr, U64 val64); +MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val); + +/*=== Byteswap ===*/ +MEM_STATIC U32 MEM_swap32(U32 in); +MEM_STATIC U64 MEM_swap64(U64 in); +MEM_STATIC size_t MEM_swapST(size_t in); + + +/*-************************************************************** +* Memory I/O Implementation +*****************************************************************/ +/* MEM_FORCE_MEMORY_ACCESS : For accessing unaligned memory: + * Method 0 : always use `memcpy()`. Safe and portable. + * Method 1 : Use compiler extension to set unaligned access. * Method 2 : direct access. This method is portable but violate C standard. * It can generate buggy code on targets depending on alignment. - * In some circumstances, it's the only known way to get the most performance (i.e. GCC + ARMv6) - * See http://fastcompression.blogspot.fr/2015/08/accessing-unaligned-memory.html for details. - * Prefer these methods in priority order (0 > 1 > 2) + * Default : method 1 if supported, else method 0 */ #ifndef MEM_FORCE_MEMORY_ACCESS /* can be defined externally, on command line for example */ -# if defined(__GNUC__) && ( defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__) ) -# define MEM_FORCE_MEMORY_ACCESS 2 -# elif defined(__INTEL_COMPILER) || defined(__GNUC__) || defined(__ICCARM__) +# ifdef __GNUC__ # define MEM_FORCE_MEMORY_ACCESS 1 # endif #endif @@ -115,8 +139,22 @@ MEM_STATIC unsigned MEM_64bits(void) { return sizeof(size_t)==8; } MEM_STATIC unsigned MEM_isLittleEndian(void) { +#if defined(__BYTE_ORDER__) && defined(__ORDER_LITTLE_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) + return 1; +#elif defined(__BYTE_ORDER__) && defined(__ORDER_BIG_ENDIAN__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) + return 0; +#elif defined(__clang__) && __LITTLE_ENDIAN__ + return 1; +#elif defined(__clang__) && __BIG_ENDIAN__ + return 0; +#elif defined(_MSC_VER) && (_M_AMD64 || _M_IX86) + return 1; +#elif defined(__DMC__) && defined(_M_IX86) + return 1; +#else const union { U32 u; BYTE c[4]; } one = { 1 }; /* don't use static : performance detrimental */ return one.c[0]; +#endif } #if defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==2) @@ -134,30 +172,19 @@ MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(U64*)memPtr = value; } #elif defined(MEM_FORCE_MEMORY_ACCESS) && (MEM_FORCE_MEMORY_ACCESS==1) -/* __pack instructions are safer, but compiler specific, hence potentially problematic for some compilers */ -/* currently only defined for gcc and icc */ -#if defined(_MSC_VER) || (defined(__INTEL_COMPILER) && defined(WIN32)) - __pragma( pack(push, 1) ) - typedef struct { U16 v; } unalign16; - typedef struct { U32 v; } unalign32; - typedef struct { U64 v; } unalign64; - typedef struct { size_t v; } unalignArch; - __pragma( pack(pop) ) -#else - typedef struct { U16 v; } __attribute__((packed)) unalign16; - typedef struct { U32 v; } __attribute__((packed)) unalign32; - typedef struct { U64 v; } __attribute__((packed)) unalign64; - typedef struct { size_t v; } __attribute__((packed)) unalignArch; -#endif +typedef __attribute__((aligned(1))) U16 unalign16; +typedef __attribute__((aligned(1))) U32 unalign32; +typedef __attribute__((aligned(1))) U64 unalign64; +typedef __attribute__((aligned(1))) size_t unalignArch; -MEM_STATIC U16 MEM_read16(const void* ptr) { return ((const unalign16*)ptr)->v; } -MEM_STATIC U32 MEM_read32(const void* ptr) { return ((const unalign32*)ptr)->v; } -MEM_STATIC U64 MEM_read64(const void* ptr) { return ((const unalign64*)ptr)->v; } -MEM_STATIC size_t MEM_readST(const void* ptr) { return ((const unalignArch*)ptr)->v; } +MEM_STATIC U16 MEM_read16(const void* ptr) { return *(const unalign16*)ptr; } +MEM_STATIC U32 MEM_read32(const void* ptr) { return *(const unalign32*)ptr; } +MEM_STATIC U64 MEM_read64(const void* ptr) { return *(const unalign64*)ptr; } +MEM_STATIC size_t MEM_readST(const void* ptr) { return *(const unalignArch*)ptr; } -MEM_STATIC void MEM_write16(void* memPtr, U16 value) { ((unalign16*)memPtr)->v = value; } -MEM_STATIC void MEM_write32(void* memPtr, U32 value) { ((unalign32*)memPtr)->v = value; } -MEM_STATIC void MEM_write64(void* memPtr, U64 value) { ((unalign64*)memPtr)->v = value; } +MEM_STATIC void MEM_write16(void* memPtr, U16 value) { *(unalign16*)memPtr = value; } +MEM_STATIC void MEM_write32(void* memPtr, U32 value) { *(unalign32*)memPtr = value; } +MEM_STATIC void MEM_write64(void* memPtr, U64 value) { *(unalign64*)memPtr = value; } #else @@ -166,41 +193,49 @@ MEM_STATIC void MEM_write64(void* memPtr, U64 value) { ((unalign64*)memPtr)->v = MEM_STATIC U16 MEM_read16(const void* memPtr) { - U16 val; memcpy(&val, memPtr, sizeof(val)); return val; + U16 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; } MEM_STATIC U32 MEM_read32(const void* memPtr) { - U32 val; memcpy(&val, memPtr, sizeof(val)); return val; + U32 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; } MEM_STATIC U64 MEM_read64(const void* memPtr) { - U64 val; memcpy(&val, memPtr, sizeof(val)); return val; + U64 val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; } MEM_STATIC size_t MEM_readST(const void* memPtr) { - size_t val; memcpy(&val, memPtr, sizeof(val)); return val; + size_t val; ZSTD_memcpy(&val, memPtr, sizeof(val)); return val; } MEM_STATIC void MEM_write16(void* memPtr, U16 value) { - memcpy(memPtr, &value, sizeof(value)); + ZSTD_memcpy(memPtr, &value, sizeof(value)); } MEM_STATIC void MEM_write32(void* memPtr, U32 value) { - memcpy(memPtr, &value, sizeof(value)); + ZSTD_memcpy(memPtr, &value, sizeof(value)); } MEM_STATIC void MEM_write64(void* memPtr, U64 value) { - memcpy(memPtr, &value, sizeof(value)); + ZSTD_memcpy(memPtr, &value, sizeof(value)); } #endif /* MEM_FORCE_MEMORY_ACCESS */ +MEM_STATIC U32 MEM_swap32_fallback(U32 in) +{ + return ((in << 24) & 0xff000000 ) | + ((in << 8) & 0x00ff0000 ) | + ((in >> 8) & 0x0000ff00 ) | + ((in >> 24) & 0x000000ff ); +} + MEM_STATIC U32 MEM_swap32(U32 in) { #if defined(_MSC_VER) /* Visual Studio */ @@ -209,22 +244,13 @@ MEM_STATIC U32 MEM_swap32(U32 in) || (defined(__clang__) && __has_builtin(__builtin_bswap32)) return __builtin_bswap32(in); #else - return ((in << 24) & 0xff000000 ) | - ((in << 8) & 0x00ff0000 ) | - ((in >> 8) & 0x0000ff00 ) | - ((in >> 24) & 0x000000ff ); + return MEM_swap32_fallback(in); #endif } -MEM_STATIC U64 MEM_swap64(U64 in) +MEM_STATIC U64 MEM_swap64_fallback(U64 in) { -#if defined(_MSC_VER) /* Visual Studio */ - return _byteswap_uint64(in); -#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \ - || (defined(__clang__) && __has_builtin(__builtin_bswap64)) - return __builtin_bswap64(in); -#else - return ((in << 56) & 0xff00000000000000ULL) | + return ((in << 56) & 0xff00000000000000ULL) | ((in << 40) & 0x00ff000000000000ULL) | ((in << 24) & 0x0000ff0000000000ULL) | ((in << 8) & 0x000000ff00000000ULL) | @@ -232,6 +258,17 @@ MEM_STATIC U64 MEM_swap64(U64 in) ((in >> 24) & 0x0000000000ff0000ULL) | ((in >> 40) & 0x000000000000ff00ULL) | ((in >> 56) & 0x00000000000000ffULL); +} + +MEM_STATIC U64 MEM_swap64(U64 in) +{ +#if defined(_MSC_VER) /* Visual Studio */ + return _byteswap_uint64(in); +#elif (defined (__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 403)) \ + || (defined(__clang__) && __has_builtin(__builtin_bswap64)) + return __builtin_bswap64(in); +#else + return MEM_swap64_fallback(in); #endif } @@ -268,7 +305,7 @@ MEM_STATIC void MEM_writeLE16(void* memPtr, U16 val) MEM_STATIC U32 MEM_readLE24(const void* memPtr) { - return MEM_readLE16(memPtr) + (((const BYTE*)memPtr)[2] << 16); + return (U32)MEM_readLE16(memPtr) + ((U32)(((const BYTE*)memPtr)[2]) << 16); } MEM_STATIC void MEM_writeLE24(void* memPtr, U32 val) @@ -375,6 +412,9 @@ MEM_STATIC void MEM_writeBEST(void* memPtr, size_t val) MEM_writeBE64(memPtr, (U64)val); } -} +/* code only tested on 32 and 64 bits systems */ +MEM_STATIC void MEM_check(void) { DEBUG_STATIC_ASSERT((sizeof(size_t)==4) || (sizeof(size_t)==8)); } + +} // namespace duckdb_zstd #endif /* MEM_H_MODULE */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/pool.h b/src/duckdb/third_party/zstd/include/zstd/common/pool.h new file mode 100644 index 00000000..e85948f0 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/pool.h @@ -0,0 +1,84 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef POOL_H +#define POOL_H + +#include "zstd/common/zstd_deps.h" +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_customMem */ +#include "zstd.h" + +namespace duckdb_zstd { + +typedef struct POOL_ctx_s POOL_ctx; + +/*! POOL_create() : + * Create a thread pool with at most `numThreads` threads. + * `numThreads` must be at least 1. + * The maximum number of queued jobs before blocking is `queueSize`. + * @return : POOL_ctx pointer on success, else NULL. +*/ +POOL_ctx* POOL_create(size_t numThreads, size_t queueSize); + +POOL_ctx* POOL_create_advanced(size_t numThreads, size_t queueSize, + ZSTD_customMem customMem); + +/*! POOL_free() : + * Free a thread pool returned by POOL_create(). + */ +void POOL_free(POOL_ctx* ctx); + + +/*! POOL_joinJobs() : + * Waits for all queued jobs to finish executing. + */ +void POOL_joinJobs(POOL_ctx* ctx); + +/*! POOL_resize() : + * Expands or shrinks pool's number of threads. + * This is more efficient than releasing + creating a new context, + * since it tries to preserve and reuse existing threads. + * `numThreads` must be at least 1. + * @return : 0 when resize was successful, + * !0 (typically 1) if there is an error. + * note : only numThreads can be resized, queueSize remains unchanged. + */ +int POOL_resize(POOL_ctx* ctx, size_t numThreads); + +/*! POOL_sizeof() : + * @return threadpool memory usage + * note : compatible with NULL (returns 0 in this case) + */ +size_t POOL_sizeof(const POOL_ctx* ctx); + +/*! POOL_function : + * The function type that can be added to a thread pool. + */ +typedef void (*POOL_function)(void*); + +/*! POOL_add() : + * Add the job `function(opaque)` to the thread pool. `ctx` must be valid. + * Possibly blocks until there is room in the queue. + * Note : The function may be executed asynchronously, + * therefore, `opaque` must live until function has been completed. + */ +void POOL_add(POOL_ctx* ctx, POOL_function function, void* opaque); + + +/*! POOL_tryAdd() : + * Add the job `function(opaque)` to thread pool _if_ a queue slot is available. + * Returns immediately even if not (does not block). + * @return : 1 if successful, 0 if not. + */ +int POOL_tryAdd(POOL_ctx* ctx, POOL_function function, void* opaque); + +} // namespace duckdb_zstd + +#endif diff --git a/src/duckdb/third_party/zstd/include/zstd/common/portability_macros.h b/src/duckdb/third_party/zstd/include/zstd/common/portability_macros.h new file mode 100644 index 00000000..e50314a7 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/portability_macros.h @@ -0,0 +1,158 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_PORTABILITY_MACROS_H +#define ZSTD_PORTABILITY_MACROS_H + +/** + * This header file contains macro definitions to support portability. + * This header is shared between C and ASM code, so it MUST only + * contain macro definitions. It MUST not contain any C code. + * + * This header ONLY defines macros to detect platforms/feature support. + * + */ + + +/* compat. with non-clang compilers */ +#ifndef __has_attribute + #define __has_attribute(x) 0 +#endif + +/* compat. with non-clang compilers */ +#ifndef __has_builtin +# define __has_builtin(x) 0 +#endif + +/* compat. with non-clang compilers */ +#ifndef __has_feature +# define __has_feature(x) 0 +#endif + +/* detects whether we are being compiled under msan */ +#ifndef ZSTD_MEMORY_SANITIZER +# if __has_feature(memory_sanitizer) +# define ZSTD_MEMORY_SANITIZER 1 +# else +# define ZSTD_MEMORY_SANITIZER 0 +# endif +#endif + +/* detects whether we are being compiled under asan */ +#ifndef ZSTD_ADDRESS_SANITIZER +# if __has_feature(address_sanitizer) +# define ZSTD_ADDRESS_SANITIZER 1 +# elif defined(__SANITIZE_ADDRESS__) +# define ZSTD_ADDRESS_SANITIZER 1 +# else +# define ZSTD_ADDRESS_SANITIZER 0 +# endif +#endif + +/* detects whether we are being compiled under dfsan */ +#ifndef ZSTD_DATAFLOW_SANITIZER +# if __has_feature(dataflow_sanitizer) +# define ZSTD_DATAFLOW_SANITIZER 1 +# else +# define ZSTD_DATAFLOW_SANITIZER 0 +# endif +#endif + +/* Mark the internal assembly functions as hidden */ +#ifdef __ELF__ +# define ZSTD_HIDE_ASM_FUNCTION(func) .hidden func +#elif defined(__APPLE__) +# define ZSTD_HIDE_ASM_FUNCTION(func) .private_extern func +#else +# define ZSTD_HIDE_ASM_FUNCTION(func) +#endif + +/* Enable runtime BMI2 dispatch based on the CPU. + * Enabled for clang & gcc >=4.8 on x86 when BMI2 isn't enabled by default. + */ +#ifndef DYNAMIC_BMI2 + #if ((defined(__clang__) && __has_attribute(__target__)) \ + || (defined(__GNUC__) \ + && (__GNUC__ >= 5 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)))) \ + && (defined(__x86_64__) || defined(_M_X64)) \ + && !defined(__BMI2__) + # define DYNAMIC_BMI2 1 + #else + # define DYNAMIC_BMI2 0 + #endif +#endif + +/** + * Only enable assembly for GNUC compatible compilers, + * because other platforms may not support GAS assembly syntax. + * + * Only enable assembly for Linux / MacOS, other platforms may + * work, but they haven't been tested. This could likely be + * extended to BSD systems. + * + * Disable assembly when MSAN is enabled, because MSAN requires + * 100% of code to be instrumented to work. + */ +#if defined(__GNUC__) +# if defined(__linux__) || defined(__linux) || defined(__APPLE__) +# if ZSTD_MEMORY_SANITIZER +# define ZSTD_ASM_SUPPORTED 0 +# elif ZSTD_DATAFLOW_SANITIZER +# define ZSTD_ASM_SUPPORTED 0 +# else +# define ZSTD_ASM_SUPPORTED 1 +# endif +# else +# define ZSTD_ASM_SUPPORTED 0 +# endif +#else +# define ZSTD_ASM_SUPPORTED 0 +#endif + +/** + * Determines whether we should enable assembly for x86-64 + * with BMI2. + * + * Enable if all of the following conditions hold: + * - ASM hasn't been explicitly disabled by defining ZSTD_DISABLE_ASM + * - Assembly is supported + * - We are compiling for x86-64 and either: + * - DYNAMIC_BMI2 is enabled + * - BMI2 is supported at compile time + */ +#if !defined(ZSTD_DISABLE_ASM) && \ + ZSTD_ASM_SUPPORTED && \ + defined(__x86_64__) && \ + (DYNAMIC_BMI2 || defined(__BMI2__)) +# define ZSTD_ENABLE_ASM_X86_64_BMI2 1 +#else +# define ZSTD_ENABLE_ASM_X86_64_BMI2 0 +#endif + +/* + * For x86 ELF targets, add .note.gnu.property section for Intel CET in + * assembly sources when CET is enabled. + * + * Additionally, any function that may be called indirectly must begin + * with ZSTD_CET_ENDBRANCH. + */ +#if defined(__ELF__) && (defined(__x86_64__) || defined(__i386__)) \ + && defined(__has_include) +# if __has_include() +# include +# define ZSTD_CET_ENDBRANCH _CET_ENDBR +# endif +#endif + +#ifndef ZSTD_CET_ENDBRANCH +# define ZSTD_CET_ENDBRANCH +#endif + +#endif /* ZSTD_PORTABILITY_MACROS_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/threading.h b/src/duckdb/third_party/zstd/include/zstd/common/threading.h new file mode 100644 index 00000000..fc13da1b --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/threading.h @@ -0,0 +1,152 @@ +/** + * Copyright (c) 2016 Tino Reichardt + * All rights reserved. + * + * You can contact the author at: + * - zstdmt source repository: https://github.com/mcmilk/zstdmt + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef THREADING_H_938743 +#define THREADING_H_938743 + +#include "zstd/common/debug.h" + +#if defined(ZSTD_MULTITHREAD) && defined(_WIN32) + +/** + * Windows minimalist Pthread Wrapper + */ +#ifdef WINVER +# undef WINVER +#endif +#define WINVER 0x0600 + +#ifdef _WIN32_WINNT +# undef _WIN32_WINNT +#endif +#define _WIN32_WINNT 0x0600 + +#ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +#endif + +#undef ERROR /* reported already defined on VS 2015 (Rich Geldreich) */ +#include +#undef ERROR +#define ERROR(name) ZSTD_ERROR(name) + +/* mutex */ +#define ZSTD_pthread_mutex_t CRITICAL_SECTION +#define ZSTD_pthread_mutex_init(a, b) ((void)(b), InitializeCriticalSection((a)), 0) +#define ZSTD_pthread_mutex_destroy(a) DeleteCriticalSection((a)) +#define ZSTD_pthread_mutex_lock(a) EnterCriticalSection((a)) +#define ZSTD_pthread_mutex_unlock(a) LeaveCriticalSection((a)) + +/* condition variable */ +#define ZSTD_pthread_cond_t CONDITION_VARIABLE +#define ZSTD_pthread_cond_init(a, b) ((void)(b), InitializeConditionVariable((a)), 0) +#define ZSTD_pthread_cond_destroy(a) ((void)(a)) +#define ZSTD_pthread_cond_wait(a, b) SleepConditionVariableCS((a), (b), INFINITE) +#define ZSTD_pthread_cond_signal(a) WakeConditionVariable((a)) +#define ZSTD_pthread_cond_broadcast(a) WakeAllConditionVariable((a)) + +namespace duckdb_zstd { + +/* ZSTD_pthread_create() and ZSTD_pthread_join() */ +typedef HANDLE ZSTD_pthread_t; + +int ZSTD_pthread_create(ZSTD_pthread_t* thread, const void* unused, + void* (*start_routine) (void*), void* arg); + +int ZSTD_pthread_join(ZSTD_pthread_t thread); + +} // namespace duckdb_zstd + +/** + * add here more wrappers as required + */ + + +#elif defined(ZSTD_MULTITHREAD) /* posix assumed ; need a better detection method */ +/* === POSIX Systems === */ +# include + +# if DEBUGLEVEL < 1 + +#define ZSTD_pthread_mutex_t pthread_mutex_t +#define ZSTD_pthread_mutex_init(a, b) pthread_mutex_init((a), (b)) +#define ZSTD_pthread_mutex_destroy(a) pthread_mutex_destroy((a)) +#define ZSTD_pthread_mutex_lock(a) pthread_mutex_lock((a)) +#define ZSTD_pthread_mutex_unlock(a) pthread_mutex_unlock((a)) + +#define ZSTD_pthread_cond_t pthread_cond_t +#define ZSTD_pthread_cond_init(a, b) pthread_cond_init((a), (b)) +#define ZSTD_pthread_cond_destroy(a) pthread_cond_destroy((a)) +#define ZSTD_pthread_cond_wait(a, b) pthread_cond_wait((a), (b)) +#define ZSTD_pthread_cond_signal(a) pthread_cond_signal((a)) +#define ZSTD_pthread_cond_broadcast(a) pthread_cond_broadcast((a)) + +#define ZSTD_pthread_t pthread_t +#define ZSTD_pthread_create(a, b, c, d) pthread_create((a), (b), (c), (d)) +#define ZSTD_pthread_join(a) pthread_join((a),NULL) + +# else /* DEBUGLEVEL >= 1 */ + +/* Debug implementation of threading. + * In this implementation we use pointers for mutexes and condition variables. + * This way, if we forget to init/destroy them the program will crash or ASAN + * will report leaks. + */ + +namespace duckdb_zstd { + +#define ZSTD_pthread_mutex_t pthread_mutex_t* +int ZSTD_pthread_mutex_init(ZSTD_pthread_mutex_t* mutex, pthread_mutexattr_t const* attr); +int ZSTD_pthread_mutex_destroy(ZSTD_pthread_mutex_t* mutex); +#define ZSTD_pthread_mutex_lock(a) pthread_mutex_lock(*(a)) +#define ZSTD_pthread_mutex_unlock(a) pthread_mutex_unlock(*(a)) + +#define ZSTD_pthread_cond_t pthread_cond_t* +int ZSTD_pthread_cond_init(ZSTD_pthread_cond_t* cond, pthread_condattr_t const* attr); +int ZSTD_pthread_cond_destroy(ZSTD_pthread_cond_t* cond); +#define ZSTD_pthread_cond_wait(a, b) pthread_cond_wait(*(a), *(b)) +#define ZSTD_pthread_cond_signal(a) pthread_cond_signal(*(a)) +#define ZSTD_pthread_cond_broadcast(a) pthread_cond_broadcast(*(a)) + +#define ZSTD_pthread_t pthread_t +#define ZSTD_pthread_create(a, b, c, d) pthread_create((a), (b), (c), (d)) +#define ZSTD_pthread_join(a) pthread_join((a),NULL) + +} // namespace duckdb_zstd + +# endif + +#else /* ZSTD_MULTITHREAD not defined */ +/* No multithreading support */ + +namespace duckdb_zstd { + +typedef int ZSTD_pthread_mutex_t; +#define ZSTD_pthread_mutex_init(a, b) ((void)(a), (void)(b), 0) +#define ZSTD_pthread_mutex_destroy(a) ((void)(a)) +#define ZSTD_pthread_mutex_lock(a) ((void)(a)) +#define ZSTD_pthread_mutex_unlock(a) ((void)(a)) + +typedef int ZSTD_pthread_cond_t; +#define ZSTD_pthread_cond_init(a, b) ((void)(a), (void)(b), 0) +#define ZSTD_pthread_cond_destroy(a) ((void)(a)) +#define ZSTD_pthread_cond_wait(a, b) ((void)(a), (void)(b)) +#define ZSTD_pthread_cond_signal(a) ((void)(a)) +#define ZSTD_pthread_cond_broadcast(a) ((void)(a)) + +/* do not use ZSTD_pthread_t */ + +} // namespace duckdb_zstd + +#endif /* ZSTD_MULTITHREAD */ +#endif /* THREADING_H_938743 */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/xxhash.h b/src/duckdb/third_party/zstd/include/zstd/common/xxhash.hpp similarity index 99% rename from src/duckdb/third_party/zstd/include/zstd/common/xxhash.h rename to src/duckdb/third_party/zstd/include/zstd/common/xxhash.hpp index a6b7990c..1ebadc46 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/xxhash.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/xxhash.hpp @@ -232,4 +232,3 @@ XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(const XXH64_canonical_t* src } #endif /* XXHASH_H_5627135585666179 */ - diff --git a/src/duckdb/third_party/zstd/include/zstd/common/xxhash_static.h b/src/duckdb/third_party/zstd/include/zstd/common/xxhash_static.hpp similarity index 99% rename from src/duckdb/third_party/zstd/include/zstd/common/xxhash_static.h rename to src/duckdb/third_party/zstd/include/zstd/common/xxhash_static.hpp index b8a8f2a7..7faed33e 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/xxhash_static.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/xxhash_static.hpp @@ -42,4 +42,4 @@ namespace duckdb_zstd { // # include "xxhash.cpp" /* include xxhash functions as `static`, for inlining */ // # endif -#endif /* XXH_STATIC_LINKING_ONLY && XXH_STATIC_H_3543687687345 */ +#endif /* XXH_STATIC_LINKING_ONLY && XXH_STATIC_H_3543687687345 */ \ No newline at end of file diff --git a/src/duckdb/third_party/zstd/include/zstd/common/zstd_deps.h b/src/duckdb/third_party/zstd/include/zstd/common/zstd_deps.h new file mode 100644 index 00000000..0be68bbb --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/zstd_deps.h @@ -0,0 +1,122 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* This file provides common libc dependencies that zstd requires. + * The purpose is to allow replacing this file with a custom implementation + * to compile zstd without libc support. + */ + +/* Need: + * NULL + * INT_MAX + * UINT_MAX + * ZSTD_memcpy() + * ZSTD_memset() + * ZSTD_memmove() + */ +#ifndef ZSTD_DEPS_COMMON +#define ZSTD_DEPS_COMMON + +#include +#include +#include + +// DuckDB: just enable everything for amalgamation +#ifdef DUCKDB_AMALGAMATION +#define ZSTD_DEPS_NEED_MALLOC +#define ZSTD_DEPS_NEED_MATH64 +#define ZSTD_DEPS_NEED_ASSERT +#define ZSTD_DEPS_NEED_IO +#define ZSTD_DEPS_NEED_STDINT +#define ZSTD_MULTITHREAD +#define FSE_STATIC_LINKING_ONLY +#endif + +#if defined(__GNUC__) && __GNUC__ >= 4 +# define ZSTD_memcpy(d,s,l) __builtin_memcpy((d),(s),(l)) +# define ZSTD_memmove(d,s,l) __builtin_memmove((d),(s),(l)) +# define ZSTD_memset(p,v,l) __builtin_memset((p),(v),(l)) +#else +# define ZSTD_memcpy(d,s,l) memcpy((d),(s),(l)) +# define ZSTD_memmove(d,s,l) memmove((d),(s),(l)) +# define ZSTD_memset(p,v,l) memset((p),(v),(l)) +#endif + +#endif /* ZSTD_DEPS_COMMON */ + +/* Need: + * ZSTD_malloc() + * ZSTD_free() + * ZSTD_calloc() + */ +#ifdef ZSTD_DEPS_NEED_MALLOC +#ifndef ZSTD_DEPS_MALLOC +#define ZSTD_DEPS_MALLOC + +#include + +#define ZSTD_malloc(s) malloc(s) +#define ZSTD_calloc(n,s) calloc((n), (s)) +#define ZSTD_free(p) free((p)) + +#endif /* ZSTD_DEPS_MALLOC */ +#endif /* ZSTD_DEPS_NEED_MALLOC */ + +/* + * Provides 64-bit math support. + * Need: + * U64 ZSTD_div64(U64 dividend, U32 divisor) + */ +#ifdef ZSTD_DEPS_NEED_MATH64 +#ifndef ZSTD_DEPS_MATH64 +#define ZSTD_DEPS_MATH64 + +#define ZSTD_div64(dividend, divisor) ((dividend) / (divisor)) + +#endif /* ZSTD_DEPS_MATH64 */ +#endif /* ZSTD_DEPS_NEED_MATH64 */ + +/* Need: + * assert() + */ +#ifdef ZSTD_DEPS_NEED_ASSERT +#ifndef ZSTD_DEPS_ASSERT +#define ZSTD_DEPS_ASSERT + +#include + +#endif /* ZSTD_DEPS_ASSERT */ +#endif /* ZSTD_DEPS_NEED_ASSERT */ + +/* Need: + * ZSTD_DEBUG_PRINT() + */ +#ifdef ZSTD_DEPS_NEED_IO +#ifndef ZSTD_DEPS_IO +#define ZSTD_DEPS_IO + +#include +#define ZSTD_DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) + +#endif /* ZSTD_DEPS_IO */ +#endif /* ZSTD_DEPS_NEED_IO */ + +/* Only requested when is known to be present. + * Need: + * intptr_t + */ +#ifdef ZSTD_DEPS_NEED_STDINT +#ifndef ZSTD_DEPS_STDINT +#define ZSTD_DEPS_STDINT + +#include + +#endif /* ZSTD_DEPS_STDINT */ +#endif /* ZSTD_DEPS_NEED_STDINT */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/zstd_internal.h b/src/duckdb/third_party/zstd/include/zstd/common/zstd_internal.h index 93cb4585..3e800e3d 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/zstd_internal.h +++ b/src/duckdb/third_party/zstd/include/zstd/common/zstd_internal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -19,29 +19,34 @@ /*-************************************* * Dependencies ***************************************/ -#ifdef __aarch64__ -#include -#endif #include "zstd/common/compiler.h" +#include "zstd/common/cpu.h" #include "zstd/common/mem.h" #include "zstd/common/debug.h" /* assert, DEBUGLOG, RAWLOG, g_debuglevel */ #include "zstd/common/error_private.h" +#define ZSTD_STATIC_LINKING_ONLY #include "zstd.h" -#include "zstd_static.h" +#define FSE_STATIC_LINKING_ONLY #include "zstd/common/fse.h" -#include "zstd/common/fse_static.h" #include "zstd/common/huf.h" -#include "zstd/common/huf_static.h" -#include "zstd/common/xxhash.h" /* XXH_reset, update, digest */ -#include "zstd/common/xxhash_static.h" /* XXH_reset, update, digest */ +#ifndef XXH_STATIC_LINKING_ONLY +# define XXH_STATIC_LINKING_ONLY /* XXH64_state_t */ +#endif +#include "zstd/common/xxhash.hpp" /* XXH_reset, update, digest */ +#include "zstd/common/xxhash_static.hpp" +#ifndef ZSTD_NO_TRACE +# include "zstd/common/zstd_trace.h" +#else +# define ZSTD_TRACE 0 +#endif namespace duckdb_zstd { /* ---- static assert (debug) --- */ #define ZSTD_STATIC_ASSERT(c) DEBUG_STATIC_ASSERT(c) #define ZSTD_isError ERR_isError /* for inlining */ -// #define FSE_isError ERR_isError -// #define HUF_isError ERR_isError +#define FSE_isError ERR_isError +#define HUF_isError ERR_isError /*-************************************* @@ -51,81 +56,7 @@ namespace duckdb_zstd { #undef MAX #define MIN(a,b) ((a)<(b) ? (a) : (b)) #define MAX(a,b) ((a)>(b) ? (a) : (b)) - -/** - * Ignore: this is an internal helper. - * - * This is a helper function to help force C99-correctness during compilation. - * Under strict compilation modes, variadic macro arguments can't be empty. - * However, variadic function arguments can be. Using a function therefore lets - * us statically check that at least one (string) argument was passed, - * independent of the compilation flags. - */ -static INLINE_KEYWORD UNUSED_ATTR -void _force_has_format_string(const char *format, ...) { - (void)format; -} - -/** - * Ignore: this is an internal helper. - * - * We want to force this function invocation to be syntactically correct, but - * we don't want to force runtime evaluation of its arguments. - */ -#define _FORCE_HAS_FORMAT_STRING(...) \ - if (0) { \ - _force_has_format_string(__VA_ARGS__); \ - } - -/** - * Return the specified error if the condition evaluates to true. - * - * In debug modes, prints additional information. - * In order to do that (particularly, printing the conditional that failed), - * this can't just wrap RETURN_ERROR(). - */ -#define RETURN_ERROR_IF(cond, err, ...) \ - if (cond) { \ - RAWLOG(3, "%s:%d: ERROR!: check %s failed, returning %s", \ - __FILE__, __LINE__, ZSTD_QUOTE(cond), ZSTD_QUOTE(ERROR(err))); \ - _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ - RAWLOG(3, ": " __VA_ARGS__); \ - RAWLOG(3, "\n"); \ - return ERROR(err); \ - } - -/** - * Unconditionally return the specified error. - * - * In debug modes, prints additional information. - */ -#define RETURN_ERROR(err, ...) \ - do { \ - RAWLOG(3, "%s:%d: ERROR!: unconditional check failed, returning %s", \ - __FILE__, __LINE__, ZSTD_QUOTE(ERROR(err))); \ - _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ - RAWLOG(3, ": " __VA_ARGS__); \ - RAWLOG(3, "\n"); \ - return ERROR(err); \ - } while(0); - -/** - * If the provided expression evaluates to an error code, returns that error code. - * - * In debug modes, prints additional information. - */ -#define FORWARD_IF_ERROR(err, ...) \ - do { \ - size_t const err_code = (err); \ - if (ERR_isError(err_code)) { \ - RAWLOG(3, "%s:%d: ERROR!: forwarding error in %s: %s", \ - __FILE__, __LINE__, ZSTD_QUOTE(err), ERR_getErrorName(err_code)); \ - _FORCE_HAS_FORMAT_STRING(__VA_ARGS__); \ - RAWLOG(3, ": " __VA_ARGS__); \ - RAWLOG(3, "\n"); \ - return err_code; \ - } \ - } while(0); +#define BOUNDED(min,val,max) (MAX(min,MIN(val,max))) /*-************************************* @@ -134,7 +65,7 @@ void _force_has_format_string(const char *format, ...) { #define ZSTD_OPT_NUM (1<<12) #define ZSTD_REP_NUM 3 /* number of repcodes */ -#define ZSTD_REP_MOVE (ZSTD_REP_NUM-1) +static UNUSED_ATTR const U32 repStartValue[ZSTD_REP_NUM] = { 1, 4, 8 }; #define KB *(1 <<10) #define MB *(1 <<20) @@ -148,19 +79,21 @@ void _force_has_format_string(const char *format, ...) { #define BIT0 1 #define ZSTD_WINDOWLOG_ABSOLUTEMIN 10 +static UNUSED_ATTR const size_t ZSTD_fcs_fieldSize[4] = { 0, 2, 4, 8 }; +static UNUSED_ATTR const size_t ZSTD_did_fieldSize[4] = { 0, 1, 2, 4 }; #define ZSTD_FRAMEIDSIZE 4 /* magic number size */ #define ZSTD_BLOCKHEADERSIZE 3 /* C standard doesn't allow `static const` variable to be init using another `static const` variable */ - +static UNUSED_ATTR const size_t ZSTD_blockHeaderSize = ZSTD_BLOCKHEADERSIZE; typedef enum { bt_raw, bt_rle, bt_compressed, bt_reserved } blockType_e; #define ZSTD_FRAMECHECKSUMSIZE 4 #define MIN_SEQUENCES_SIZE 1 /* nbSeq==0 */ -#define MIN_CBLOCK_SIZE (1 /*litCSize*/ + 1 /* RLE or RAW */ + MIN_SEQUENCES_SIZE /* nbSeq==0 */) /* for a non-null block */ +#define MIN_CBLOCK_SIZE (1 /*litCSize*/ + 1 /* RLE or RAW */) /* for a non-null block */ +#define MIN_LITERALS_FOR_4_STREAMS 6 -#define HufLog 12 typedef enum { set_basic, set_rle, set_compressed, set_repeat } symbolEncodingType_e; #define LONGNBSEQ 0x7F00 @@ -168,6 +101,7 @@ typedef enum { set_basic, set_rle, set_compressed, set_repeat } symbolEncodingTy #define MINMATCH 3 #define Litbits 8 +#define LitHufLog 11 #define MaxLit ((1<= 8 || (ovtype == ZSTD_no_overlap && diff <= -WILDCOPY_VECLEN)); - if (ovtype == ZSTD_overlap_src_before_dst && diff < WILDCOPY_VECLEN) { /* Handle short offset copies. */ do { - COPY8(op, ip) + COPY8(op, ip); } while (op < oend); } else { assert(diff >= WILDCOPY_VECLEN || diff <= -WILDCOPY_VECLEN); @@ -260,20 +236,15 @@ void ZSTD_wildcopy(void* dst, const void* src, ptrdiff_t length, ZSTD_overlap_e * one COPY16() in the first call. Then, do two calls per loop since * at that point it is more likely to have a high trip count. */ -#ifndef __aarch64__ - do { - COPY16(op, ip); - } - while (op < oend); -#else - COPY16(op, ip); - if (op >= oend) return; + ZSTD_copy16(op, ip); + if (16 >= length) return; + op += 16; + ip += 16; do { COPY16(op, ip); COPY16(op, ip); } while (op < oend); -#endif } } @@ -281,7 +252,7 @@ MEM_STATIC size_t ZSTD_limitCopy(void* dst, size_t dstCapacity, const void* src, { size_t const length = MIN(dstCapacity, srcSize); if (length > 0) { - memcpy(dst, src, length); + ZSTD_memcpy(dst, src, length); } return length; } @@ -296,28 +267,46 @@ MEM_STATIC size_t ZSTD_limitCopy(void* dst, size_t dstCapacity, const void* src, * In which case, resize it down to free some memory */ #define ZSTD_WORKSPACETOOLARGE_MAXDURATION 128 +/* Controls whether the input/output buffer is buffered or stable. */ +typedef enum { + ZSTD_bm_buffered = 0, /* Buffer the input/output */ + ZSTD_bm_stable = 1 /* ZSTD_inBuffer/ZSTD_outBuffer is stable */ +} ZSTD_bufferMode_e; + /*-******************************************* * Private declarations *********************************************/ typedef struct seqDef_s { - U32 offset; + U32 offBase; /* offBase == Offset + ZSTD_REP_NUM, or repcode 1,2,3 */ U16 litLength; - U16 matchLength; + U16 mlBase; /* mlBase == matchLength - MINMATCH */ } seqDef; +/* Controls whether seqStore has a single "long" litLength or matchLength. See seqStore_t. */ +typedef enum { + ZSTD_llt_none = 0, /* no longLengthType */ + ZSTD_llt_literalLength = 1, /* represents a long literal */ + ZSTD_llt_matchLength = 2 /* represents a long match */ +} ZSTD_longLengthType_e; + typedef struct { seqDef* sequencesStart; - seqDef* sequences; - BYTE* litStart; - BYTE* lit; - BYTE* llCode; - BYTE* mlCode; - BYTE* ofCode; + seqDef* sequences; /* ptr to end of sequences */ + BYTE* litStart; + BYTE* lit; /* ptr to end of literals */ + BYTE* llCode; + BYTE* mlCode; + BYTE* ofCode; size_t maxNbSeq; size_t maxNbLit; - U32 longLengthID; /* 0 == no longLength; 1 == Lit.longLength; 2 == Match.longLength; */ - U32 longLengthPos; + + /* longLengthPos and longLengthType to allow us to represent either a single litLength or matchLength + * in the seqStore that has a value larger than U16 (if it exists). To do so, we increment + * the existing value of the litLength or matchLength by 0x10000. + */ + ZSTD_longLengthType_e longLengthType; + U32 longLengthPos; /* Index of the sequence to apply long length modification to */ } seqStore_t; typedef struct { @@ -327,19 +316,19 @@ typedef struct { /** * Returns the ZSTD_sequenceLength for the given sequences. It handles the decoding of long sequences - * indicated by longLengthPos and longLengthID, and adds MINMATCH back to matchLength. + * indicated by longLengthPos and longLengthType, and adds MINMATCH back to matchLength. */ MEM_STATIC ZSTD_sequenceLength ZSTD_getSequenceLength(seqStore_t const* seqStore, seqDef const* seq) { ZSTD_sequenceLength seqLen; seqLen.litLength = seq->litLength; - seqLen.matchLength = seq->matchLength + MINMATCH; + seqLen.matchLength = seq->mlBase + MINMATCH; if (seqStore->longLengthPos == (U32)(seq - seqStore->sequencesStart)) { - if (seqStore->longLengthID == 1) { - seqLen.litLength += 0xFFFF; + if (seqStore->longLengthType == ZSTD_llt_literalLength) { + seqLen.litLength += 0x10000; } - if (seqStore->longLengthID == 2) { - seqLen.matchLength += 0xFFFF; + if (seqStore->longLengthType == ZSTD_llt_matchLength) { + seqLen.matchLength += 0x10000; } } return seqLen; @@ -352,42 +341,13 @@ MEM_STATIC ZSTD_sequenceLength ZSTD_getSequenceLength(seqStore_t const* seqStore * `decompressedBound != ZSTD_CONTENTSIZE_ERROR` */ typedef struct { + size_t nbBlocks; size_t compressedSize; unsigned long long decompressedBound; } ZSTD_frameSizeInfo; /* decompress & legacy */ const seqStore_t* ZSTD_getSeqStore(const ZSTD_CCtx* ctx); /* compress & dictBuilder */ -void ZSTD_seqToCodes(const seqStore_t* seqStorePtr); /* compress, dictBuilder, decodeCorpus (shouldn't get its definition from here) */ - -/* custom memory allocation functions */ -void* ZSTD_malloc(size_t size, ZSTD_customMem customMem); -void* ZSTD_calloc(size_t size, ZSTD_customMem customMem); -void ZSTD_free(void* ptr, ZSTD_customMem customMem); - - -MEM_STATIC U32 ZSTD_highbit32(U32 val) /* compress, dictBuilder, decodeCorpus */ -{ - assert(val != 0); - { -# if defined(_MSC_VER) /* Visual */ - unsigned long r=0; - return _BitScanReverse(&r, val) ? (unsigned)r : 0; -# elif defined(__GNUC__) && (__GNUC__ >= 3) /* GCC Intrinsic */ - return __builtin_clz (val) ^ 31; -# elif defined(__ICCARM__) /* IAR Intrinsic */ - return 31 - __CLZ(val); -# else /* Software version */ - static const U32 DeBruijnClz[32] = { 0, 9, 1, 10, 13, 21, 2, 29, 11, 14, 16, 18, 22, 25, 3, 30, 8, 12, 20, 28, 15, 17, 24, 7, 19, 27, 23, 6, 26, 5, 4, 31 }; - U32 v = val; - v |= v >> 1; - v |= v >> 2; - v |= v >> 4; - v |= v >> 8; - v |= v >> 16; - return DeBruijnClz[(v * 0x07C4ACDDU) >> 27]; -# endif - } -} +int ZSTD_seqToCodes(const seqStore_t* seqStorePtr); /* compress, dictBuilder, decodeCorpus (shouldn't get its definition from here) */ /* ZSTD_invalidateRepCodes() : @@ -405,16 +365,25 @@ typedef struct { /*! ZSTD_getcBlockSize() : * Provides the size of compressed block from block header `src` */ -/* Used by: decompress, fullbench (does not get its definition from here) */ +/* Used by: decompress, fullbench */ size_t ZSTD_getcBlockSize(const void* src, size_t srcSize, blockProperties_t* bpPtr); /*! ZSTD_decodeSeqHeaders() : * decode sequence header from src */ -/* Used by: decompress, fullbench (does not get its definition from here) */ +/* Used by: zstd_decompress_block, fullbench */ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr, const void* src, size_t srcSize); +/** + * @returns true iff the CPU supports dynamic BMI2 dispatch. + */ +MEM_STATIC int ZSTD_cpuSupportsBmi2(void) +{ + ZSTD_cpuid_t cpuid = ZSTD_cpuid(); + return ZSTD_cpuid_bmi1(cpuid) && ZSTD_cpuid_bmi2(cpuid); } +} // namespace duckdb_zstd + #endif /* ZSTD_CCOMMON_H_MODULE */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/zstd_trace.h b/src/duckdb/third_party/zstd/include/zstd/common/zstd_trace.h new file mode 100644 index 00000000..045ce906 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/common/zstd_trace.h @@ -0,0 +1,159 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_TRACE_H +#define ZSTD_TRACE_H + +#include + +namespace duckdb_zstd { + +/* weak symbol support + * For now, enable conservatively: + * - Only GNUC + * - Only ELF + * - Only x86-64, i386 and aarch64 + * Also, explicitly disable on platforms known not to work so they aren't + * forgotten in the future. + */ +#if !defined(ZSTD_HAVE_WEAK_SYMBOLS) && \ + defined(__GNUC__) && defined(__ELF__) && \ + (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86) || defined(__aarch64__)) && \ + !defined(__APPLE__) && !defined(_WIN32) && !defined(__MINGW32__) && \ + !defined(__CYGWIN__) && !defined(_AIX) +# define ZSTD_HAVE_WEAK_SYMBOLS 1 +#else +# define ZSTD_HAVE_WEAK_SYMBOLS 0 +#endif +#if ZSTD_HAVE_WEAK_SYMBOLS +# define ZSTD_WEAK_ATTR __attribute__((__weak__)) +#else +# define ZSTD_WEAK_ATTR +#endif + +/* Only enable tracing when weak symbols are available. */ +#ifndef ZSTD_TRACE +# define ZSTD_TRACE ZSTD_HAVE_WEAK_SYMBOLS +#endif + +#if ZSTD_TRACE + +struct ZSTD_CCtx_s; +struct ZSTD_DCtx_s; +struct ZSTD_CCtx_params_s; + +typedef struct { + /** + * ZSTD_VERSION_NUMBER + * + * This is guaranteed to be the first member of ZSTD_trace. + * Otherwise, this struct is not stable between versions. If + * the version number does not match your expectation, you + * should not interpret the rest of the struct. + */ + unsigned version; + /** + * Non-zero if streaming (de)compression is used. + */ + unsigned streaming; + /** + * The dictionary ID. + */ + unsigned dictionaryID; + /** + * Is the dictionary cold? + * Only set on decompression. + */ + unsigned dictionaryIsCold; + /** + * The dictionary size or zero if no dictionary. + */ + size_t dictionarySize; + /** + * The uncompressed size of the data. + */ + size_t uncompressedSize; + /** + * The compressed size of the data. + */ + size_t compressedSize; + /** + * The fully resolved CCtx parameters (NULL on decompression). + */ + struct ZSTD_CCtx_params_s const* params; + /** + * The ZSTD_CCtx pointer (NULL on decompression). + */ + struct ZSTD_CCtx_s const* cctx; + /** + * The ZSTD_DCtx pointer (NULL on compression). + */ + struct ZSTD_DCtx_s const* dctx; +} ZSTD_Trace; + +/** + * A tracing context. It must be 0 when tracing is disabled. + * Otherwise, any non-zero value returned by a tracing begin() + * function is presented to any subsequent calls to end(). + * + * Any non-zero value is treated as tracing is enabled and not + * interpreted by the library. + * + * Two possible uses are: + * * A timestamp for when the begin() function was called. + * * A unique key identifying the (de)compression, like the + * address of the [dc]ctx pointer if you need to track + * more information than just a timestamp. + */ +typedef unsigned long long ZSTD_TraceCtx; + +/** + * Trace the beginning of a compression call. + * @param cctx The dctx pointer for the compression. + * It can be used as a key to map begin() to end(). + * @returns Non-zero if tracing is enabled. The return value is + * passed to ZSTD_trace_compress_end(). + */ +ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_compress_begin( + struct ZSTD_CCtx_s const* cctx); + +/** + * Trace the end of a compression call. + * @param ctx The return value of ZSTD_trace_compress_begin(). + * @param trace The zstd tracing info. + */ +ZSTD_WEAK_ATTR void ZSTD_trace_compress_end( + ZSTD_TraceCtx ctx, + ZSTD_Trace const* trace); + +/** + * Trace the beginning of a decompression call. + * @param dctx The dctx pointer for the decompression. + * It can be used as a key to map begin() to end(). + * @returns Non-zero if tracing is enabled. The return value is + * passed to ZSTD_trace_compress_end(). + */ +ZSTD_WEAK_ATTR ZSTD_TraceCtx ZSTD_trace_decompress_begin( + struct ZSTD_DCtx_s const* dctx); + +/** + * Trace the end of a decompression call. + * @param ctx The return value of ZSTD_trace_decompress_begin(). + * @param trace The zstd tracing info. + */ +ZSTD_WEAK_ATTR void ZSTD_trace_decompress_end( + ZSTD_TraceCtx ctx, + ZSTD_Trace const* trace); + +#endif /* ZSTD_TRACE */ + +} // namespace duckdb_zstd + +#endif /* ZSTD_TRACE_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/clevels.h b/src/duckdb/third_party/zstd/include/zstd/compress/clevels.h new file mode 100644 index 00000000..be9424b1 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/compress/clevels.h @@ -0,0 +1,136 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_CLEVELS_H +#define ZSTD_CLEVELS_H + +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_compressionParameters */ +#include "zstd.h" + +namespace duckdb_zstd { + +/*-===== Pre-defined compression levels =====-*/ + +#define ZSTD_MAX_CLEVEL 22 + +#ifdef __GNUC__ +__attribute__((__unused__)) +#endif + +static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEVEL+1] = { +{ /* "default" - for any srcSize > 256 KB */ + /* W, C, H, S, L, TL, strat */ + { 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */ + { 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */ + { 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */ + { 21, 16, 17, 1, 5, 0, ZSTD_dfast }, /* level 3 */ + { 21, 18, 18, 1, 5, 0, ZSTD_dfast }, /* level 4 */ + { 21, 18, 19, 3, 5, 2, ZSTD_greedy }, /* level 5 */ + { 21, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6 */ + { 21, 19, 20, 4, 5, 8, ZSTD_lazy }, /* level 7 */ + { 21, 19, 20, 4, 5, 16, ZSTD_lazy2 }, /* level 8 */ + { 22, 20, 21, 4, 5, 16, ZSTD_lazy2 }, /* level 9 */ + { 22, 21, 22, 5, 5, 16, ZSTD_lazy2 }, /* level 10 */ + { 22, 21, 22, 6, 5, 16, ZSTD_lazy2 }, /* level 11 */ + { 22, 22, 23, 6, 5, 32, ZSTD_lazy2 }, /* level 12 */ + { 22, 22, 22, 4, 5, 32, ZSTD_btlazy2 }, /* level 13 */ + { 22, 22, 23, 5, 5, 32, ZSTD_btlazy2 }, /* level 14 */ + { 22, 23, 23, 6, 5, 32, ZSTD_btlazy2 }, /* level 15 */ + { 22, 22, 22, 5, 5, 48, ZSTD_btopt }, /* level 16 */ + { 23, 23, 22, 5, 4, 64, ZSTD_btopt }, /* level 17 */ + { 23, 23, 22, 6, 3, 64, ZSTD_btultra }, /* level 18 */ + { 23, 24, 22, 7, 3,256, ZSTD_btultra2}, /* level 19 */ + { 25, 25, 23, 7, 3,256, ZSTD_btultra2}, /* level 20 */ + { 26, 26, 24, 7, 3,512, ZSTD_btultra2}, /* level 21 */ + { 27, 27, 25, 9, 3,999, ZSTD_btultra2}, /* level 22 */ +}, +{ /* for srcSize <= 256 KB */ + /* W, C, H, S, L, T, strat */ + { 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */ + { 18, 14, 14, 1, 5, 0, ZSTD_dfast }, /* level 2 */ + { 18, 16, 16, 1, 4, 0, ZSTD_dfast }, /* level 3 */ + { 18, 16, 17, 3, 5, 2, ZSTD_greedy }, /* level 4.*/ + { 18, 17, 18, 5, 5, 2, ZSTD_greedy }, /* level 5.*/ + { 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/ + { 18, 18, 19, 4, 4, 4, ZSTD_lazy }, /* level 7 */ + { 18, 18, 19, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ + { 18, 18, 19, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ + { 18, 18, 19, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ + { 18, 18, 19, 5, 4, 12, ZSTD_btlazy2 }, /* level 11.*/ + { 18, 19, 19, 7, 4, 12, ZSTD_btlazy2 }, /* level 12.*/ + { 18, 18, 19, 4, 4, 16, ZSTD_btopt }, /* level 13 */ + { 18, 18, 19, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ + { 18, 18, 19, 6, 3,128, ZSTD_btopt }, /* level 15.*/ + { 18, 19, 19, 6, 3,128, ZSTD_btultra }, /* level 16.*/ + { 18, 19, 19, 8, 3,256, ZSTD_btultra }, /* level 17.*/ + { 18, 19, 19, 6, 3,128, ZSTD_btultra2}, /* level 18.*/ + { 18, 19, 19, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 18, 19, 19, 10, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 18, 19, 19, 12, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 18, 19, 19, 13, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +{ /* for srcSize <= 128 KB */ + /* W, C, H, S, L, T, strat */ + { 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */ + { 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */ + { 17, 15, 16, 2, 5, 0, ZSTD_dfast }, /* level 3 */ + { 17, 17, 17, 2, 4, 0, ZSTD_dfast }, /* level 4 */ + { 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */ + { 17, 16, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */ + { 17, 16, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */ + { 17, 16, 17, 4, 4, 8, ZSTD_lazy2 }, /* level 8 */ + { 17, 16, 17, 5, 4, 8, ZSTD_lazy2 }, /* level 9 */ + { 17, 16, 17, 6, 4, 8, ZSTD_lazy2 }, /* level 10 */ + { 17, 17, 17, 5, 4, 8, ZSTD_btlazy2 }, /* level 11 */ + { 17, 18, 17, 7, 4, 12, ZSTD_btlazy2 }, /* level 12 */ + { 17, 18, 17, 3, 4, 12, ZSTD_btopt }, /* level 13.*/ + { 17, 18, 17, 4, 3, 32, ZSTD_btopt }, /* level 14.*/ + { 17, 18, 17, 6, 3,256, ZSTD_btopt }, /* level 15.*/ + { 17, 18, 17, 6, 3,128, ZSTD_btultra }, /* level 16.*/ + { 17, 18, 17, 8, 3,256, ZSTD_btultra }, /* level 17.*/ + { 17, 18, 17, 10, 3,512, ZSTD_btultra }, /* level 18.*/ + { 17, 18, 17, 5, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 17, 18, 17, 7, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 17, 18, 17, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 17, 18, 17, 11, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +{ /* for srcSize <= 16 KB */ + /* W, C, H, S, L, T, strat */ + { 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */ + { 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */ + { 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */ + { 14, 14, 15, 2, 4, 0, ZSTD_dfast }, /* level 3 */ + { 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */ + { 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/ + { 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */ + { 14, 14, 14, 6, 4, 8, ZSTD_lazy2 }, /* level 7 */ + { 14, 14, 14, 8, 4, 8, ZSTD_lazy2 }, /* level 8.*/ + { 14, 15, 14, 5, 4, 8, ZSTD_btlazy2 }, /* level 9.*/ + { 14, 15, 14, 9, 4, 8, ZSTD_btlazy2 }, /* level 10.*/ + { 14, 15, 14, 3, 4, 12, ZSTD_btopt }, /* level 11.*/ + { 14, 15, 14, 4, 3, 24, ZSTD_btopt }, /* level 12.*/ + { 14, 15, 14, 5, 3, 32, ZSTD_btultra }, /* level 13.*/ + { 14, 15, 15, 6, 3, 64, ZSTD_btultra }, /* level 14.*/ + { 14, 15, 15, 7, 3,256, ZSTD_btultra }, /* level 15.*/ + { 14, 15, 15, 5, 3, 48, ZSTD_btultra2}, /* level 16.*/ + { 14, 15, 15, 6, 3,128, ZSTD_btultra2}, /* level 17.*/ + { 14, 15, 15, 7, 3,256, ZSTD_btultra2}, /* level 18.*/ + { 14, 15, 15, 8, 3,256, ZSTD_btultra2}, /* level 19.*/ + { 14, 15, 15, 8, 3,512, ZSTD_btultra2}, /* level 20.*/ + { 14, 15, 15, 9, 3,512, ZSTD_btultra2}, /* level 21.*/ + { 14, 15, 15, 10, 3,999, ZSTD_btultra2}, /* level 22.*/ +}, +}; + +} // namespace duckdb_zstd + +#endif /* ZSTD_CLEVELS_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/hist.h b/src/duckdb/third_party/zstd/include/zstd/compress/hist.h index 41bbbbea..083af82c 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/hist.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/hist.h @@ -1,7 +1,7 @@ /* ****************************************************************** * hist : Histogram functions * part of Finite State Entropy project - * Copyright (c) 2013-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * * You can contact the author at : * - FSE source repository : https://github.com/Cyan4973/FiniteStateEntropy @@ -14,10 +14,10 @@ ****************************************************************** */ /* --- dependencies --- */ -#include /* size_t */ - +#include "zstd/common/zstd_deps.h" /* size_t */ namespace duckdb_zstd { + /* --- simple histogram functions --- */ /*! HIST_count(): @@ -75,4 +75,4 @@ size_t HIST_countFast_wksp(unsigned* count, unsigned* maxSymbolValuePtr, unsigned HIST_count_simple(unsigned* count, unsigned* maxSymbolValuePtr, const void* src, size_t srcSize); -} +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_internal.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_internal.h index 5e8c6e09..1f55ab1b 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_internal.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_internal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -20,9 +20,12 @@ ***************************************/ #include "zstd/common/zstd_internal.h" #include "zstd/compress/zstd_cwksp.h" -// #ifdef ZSTD_MULTITHREAD -// # include "zstdmt_compress.h" -// #endif +#ifdef ZSTD_MULTITHREAD +# include "zstd/compress/zstdmt_compress.h" +#endif +#include "zstd/common/bits.h" /* ZSTD_highbit32, ZSTD_NbCommonBytes */ + +namespace duckdb_zstd { /*-************************************* * Constants @@ -34,11 +37,10 @@ It's not a big deal though : candidate will just be sorted again. Additionally, candidate position 1 will be lost. But candidate 1 cannot hide a large tree of candidates, so it's a minimal loss. - The benefit is that ZSTD_DUBT_UNSORTED_MARK cannot be mishandled after table re-use with a different strategy. + The benefit is that ZSTD_DUBT_UNSORTED_MARK cannot be mishandled after table reuse with a different strategy. This constant is required by ZSTD_compressBlock_btlazy2() and ZSTD_reduceTable_internal() */ -namespace duckdb_zstd { /*-************************************* * Context memory management ***************************************/ @@ -60,7 +62,7 @@ typedef struct { } ZSTD_localDict; typedef struct { - U32 CTable[HUF_CTABLE_SIZE_U32(255)]; + HUF_CElt CTable[HUF_CTABLE_SIZE_ST(255)]; HUF_repeat repeatMode; } ZSTD_hufCTables_t; @@ -78,29 +80,101 @@ typedef struct { ZSTD_fseCTables_t fse; } ZSTD_entropyCTables_t; +/*********************************************** +* Entropy buffer statistics structs and funcs * +***********************************************/ +/** ZSTD_hufCTablesMetadata_t : + * Stores Literals Block Type for a super-block in hType, and + * huffman tree description in hufDesBuffer. + * hufDesSize refers to the size of huffman tree description in bytes. + * This metadata is populated in ZSTD_buildBlockEntropyStats_literals() */ +typedef struct { + symbolEncodingType_e hType; + BYTE hufDesBuffer[ZSTD_MAX_HUF_HEADER_SIZE]; + size_t hufDesSize; +} ZSTD_hufCTablesMetadata_t; + +/** ZSTD_fseCTablesMetadata_t : + * Stores symbol compression modes for a super-block in {ll, ol, ml}Type, and + * fse tables in fseTablesBuffer. + * fseTablesSize refers to the size of fse tables in bytes. + * This metadata is populated in ZSTD_buildBlockEntropyStats_sequences() */ typedef struct { - U32 off; - U32 len; + symbolEncodingType_e llType; + symbolEncodingType_e ofType; + symbolEncodingType_e mlType; + BYTE fseTablesBuffer[ZSTD_MAX_FSE_HEADERS_SIZE]; + size_t fseTablesSize; + size_t lastCountSize; /* This is to account for bug in 1.3.4. More detail in ZSTD_entropyCompressSeqStore_internal() */ +} ZSTD_fseCTablesMetadata_t; + +typedef struct { + ZSTD_hufCTablesMetadata_t hufMetadata; + ZSTD_fseCTablesMetadata_t fseMetadata; +} ZSTD_entropyCTablesMetadata_t; + +/** ZSTD_buildBlockEntropyStats() : + * Builds entropy for the block. + * @return : 0 on success or error code */ +size_t ZSTD_buildBlockEntropyStats( + const seqStore_t* seqStorePtr, + const ZSTD_entropyCTables_t* prevEntropy, + ZSTD_entropyCTables_t* nextEntropy, + const ZSTD_CCtx_params* cctxParams, + ZSTD_entropyCTablesMetadata_t* entropyMetadata, + void* workspace, size_t wkspSize); + +/********************************* +* Compression internals structs * +*********************************/ + +typedef struct { + U32 off; /* Offset sumtype code for the match, using ZSTD_storeSeq() format */ + U32 len; /* Raw length of match */ } ZSTD_match_t; typedef struct { - int price; - U32 off; - U32 mlen; - U32 litlen; - U32 rep[ZSTD_REP_NUM]; + U32 offset; /* Offset of sequence */ + U32 litLength; /* Length of literals prior to match */ + U32 matchLength; /* Raw length of match */ +} rawSeq; + +typedef struct { + rawSeq* seq; /* The start of the sequences */ + size_t pos; /* The index in seq where reading stopped. pos <= size. */ + size_t posInSequence; /* The position within the sequence at seq[pos] where reading + stopped. posInSequence <= seq[pos].litLength + seq[pos].matchLength */ + size_t size; /* The number of sequences. <= capacity. */ + size_t capacity; /* The capacity starting from `seq` pointer */ +} rawSeqStore_t; + +typedef struct { + U32 idx; /* Index in array of ZSTD_Sequence */ + U32 posInSequence; /* Position within sequence at idx */ + size_t posInSrc; /* Number of bytes given by sequences provided so far */ +} ZSTD_sequencePosition; + +UNUSED_ATTR static const rawSeqStore_t kNullRawSeqStore = {NULL, 0, 0, 0, 0}; + +typedef struct { + int price; /* price from beginning of segment to this position */ + U32 off; /* offset of previous match */ + U32 mlen; /* length of previous match */ + U32 litlen; /* nb of literals since previous match */ + U32 rep[ZSTD_REP_NUM]; /* offset history after previous match */ } ZSTD_optimal_t; typedef enum { zop_dynamic=0, zop_predef } ZSTD_OptPrice_e; +#define ZSTD_OPT_SIZE (ZSTD_OPT_NUM+3) typedef struct { /* All tables are allocated inside cctx->workspace by ZSTD_resetCCtx_internal() */ unsigned* litFreq; /* table of literals statistics, of size 256 */ unsigned* litLengthFreq; /* table of litLength statistics, of size (MaxLL+1) */ unsigned* matchLengthFreq; /* table of matchLength statistics, of size (MaxML+1) */ unsigned* offCodeFreq; /* table of offCode statistics, of size (MaxOff+1) */ - ZSTD_match_t* matchTable; /* list of found matches, of size ZSTD_OPT_NUM+1 */ - ZSTD_optimal_t* priceTable; /* All positions tracked by optimal parser, of size ZSTD_OPT_NUM+1 */ + ZSTD_match_t* matchTable; /* list of found matches, of size ZSTD_OPT_SIZE */ + ZSTD_optimal_t* priceTable; /* All positions tracked by optimal parser, of size ZSTD_OPT_SIZE */ U32 litSum; /* nb of literals */ U32 litLengthSum; /* nb of litLength codes */ @@ -112,7 +186,7 @@ typedef struct { U32 offCodeSumBasePrice; /* to compare to log2(offreq) */ ZSTD_OptPrice_e priceType; /* prices can be determined dynamically, or follow a pre-defined cost structure */ const ZSTD_entropyCTables_t* symbolCosts; /* pre-calculated dictionary statistics */ - ZSTD_literalCompressionMode_e literalCompressionMode; + ZSTD_paramSwitch_e literalCompressionMode; } optState_t; typedef struct { @@ -121,14 +195,23 @@ typedef struct { } ZSTD_compressedBlockState_t; typedef struct { - BYTE const* nextSrc; /* next block here to continue on current prefix */ - BYTE const* base; /* All regular indexes relative to this position */ - BYTE const* dictBase; /* extDict indexes relative to this position */ - U32 dictLimit; /* below that point, need extDict */ - U32 lowLimit; /* below that point, no more valid data */ + BYTE const* nextSrc; /* next block here to continue on current prefix */ + BYTE const* base; /* All regular indexes relative to this position */ + BYTE const* dictBase; /* extDict indexes relative to this position */ + U32 dictLimit; /* below that point, need extDict */ + U32 lowLimit; /* below that point, no more valid data */ + U32 nbOverflowCorrections; /* Number of times overflow correction has run since + * ZSTD_window_init(). Useful for debugging coredumps + * and for ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY. + */ } ZSTD_window_t; +#define ZSTD_WINDOW_START_INDEX 2 + typedef struct ZSTD_matchState_t ZSTD_matchState_t; + +#define ZSTD_ROW_HASH_CACHE_SIZE 8 /* Size of prefetching hash cache for row-based matchfinder */ + struct ZSTD_matchState_t { ZSTD_window_t window; /* State for window round buffer management */ U32 loadedDictEnd; /* index of end of dictionary, within context's referential. @@ -140,12 +223,38 @@ struct ZSTD_matchState_t { */ U32 nextToUpdate; /* index from which to continue table update */ U32 hashLog3; /* dispatch table for matches of len==3 : larger == faster, more memory */ + + U32 rowHashLog; /* For row-based matchfinder: Hashlog based on nb of rows in the hashTable.*/ + BYTE* tagTable; /* For row-based matchFinder: A row-based table containing the hashes and head index. */ + U32 hashCache[ZSTD_ROW_HASH_CACHE_SIZE]; /* For row-based matchFinder: a cache of hashes to improve speed */ + U64 hashSalt; /* For row-based matchFinder: salts the hash for reuse of tag table */ + U32 hashSaltEntropy; /* For row-based matchFinder: collects entropy for salt generation */ + U32* hashTable; U32* hashTable3; U32* chainTable; + + U32 forceNonContiguous; /* Non-zero if we should force non-contiguous load for the next window update. */ + + int dedicatedDictSearch; /* Indicates whether this matchState is using the + * dedicated dictionary search structure. + */ optState_t opt; /* optimal parser state */ const ZSTD_matchState_t* dictMatchState; ZSTD_compressionParameters cParams; + const rawSeqStore_t* ldmSeqStore; + + /* Controls prefetching in some dictMatchState matchfinders. + * This behavior is controlled from the cctx ms. + * This parameter has no effect in the cdict ms. */ + int prefetchCDictTables; + + /* When == 0, lazy match finders insert every position. + * When != 0, lazy match finders only insert positions they search. + * This allows them to skip much faster over incompressible data, + * at a small cost to compression ratio. + */ + int lazySkipping; }; typedef struct { @@ -159,17 +268,26 @@ typedef struct { U32 checksum; } ldmEntry_t; +typedef struct { + BYTE const* split; + U32 hash; + U32 checksum; + ldmEntry_t* bucket; +} ldmMatchCandidate_t; + +#define LDM_BATCH_SIZE 64 + typedef struct { ZSTD_window_t window; /* State for the window round buffer management */ ldmEntry_t* hashTable; U32 loadedDictEnd; BYTE* bucketOffsets; /* Next position in bucket to insert entry */ - U64 hashPower; /* Used to compute the rolling hash. - * Depends on ldmParams.minMatchLength */ + size_t splitIndices[LDM_BATCH_SIZE]; + ldmMatchCandidate_t matchCandidates[LDM_BATCH_SIZE]; } ldmState_t; typedef struct { - U32 enableLdm; /* 1 if enable long distance matching */ + ZSTD_paramSwitch_e enableLdm; /* ZSTD_ps_enable to enable LDM. ZSTD_ps_auto by default */ U32 hashLog; /* Log size of hashTable */ U32 bucketSizeLog; /* Log bucket size for collision resolution, at most 8 */ U32 minMatchLength; /* Minimum match length */ @@ -177,19 +295,6 @@ typedef struct { U32 windowLog; /* Window log for the LDM */ } ldmParams_t; -typedef struct { - U32 offset; - U32 litLength; - U32 matchLength; -} rawSeq; - -typedef struct { - rawSeq* seq; /* The start of the sequences */ - size_t pos; /* The position where reading stopped. <= size. */ - size_t size; /* The number of sequences. <= capacity. */ - size_t capacity; /* The capacity starting from `seq` pointer */ -} rawSeqStore_t; - typedef struct { int collectSequences; ZSTD_Sequence* seqStart; @@ -213,7 +318,7 @@ struct ZSTD_CCtx_params_s { * There is no guarantee that hint is close to actual source size */ ZSTD_dictAttachPref_e attachDictPref; - ZSTD_literalCompressionMode_e literalCompressionMode; + ZSTD_paramSwitch_e literalCompressionMode; /* Multithreading: used to pass parameters to mtctx */ int nbWorkers; @@ -224,17 +329,87 @@ struct ZSTD_CCtx_params_s { /* Long distance matching parameters */ ldmParams_t ldmParams; + /* Dedicated dict search algorithm trigger */ + int enableDedicatedDictSearch; + + /* Input/output buffer modes */ + ZSTD_bufferMode_e inBufferMode; + ZSTD_bufferMode_e outBufferMode; + + /* Sequence compression API */ + ZSTD_sequenceFormat_e blockDelimiters; + int validateSequences; + + /* Block splitting */ + ZSTD_paramSwitch_e useBlockSplitter; + + /* Param for deciding whether to use row-based matchfinder */ + ZSTD_paramSwitch_e useRowMatchFinder; + + /* Always load a dictionary in ext-dict mode (not prefix mode)? */ + int deterministicRefPrefix; + /* Internal use, for createCCtxParams() and freeCCtxParams() only */ ZSTD_customMem customMem; + + /* Controls prefetching in some dictMatchState matchfinders */ + ZSTD_paramSwitch_e prefetchCDictTables; + + /* Controls whether zstd will fall back to an internal matchfinder + * if the external matchfinder returns an error code. */ + int enableMatchFinderFallback; + + /* Parameters for the external sequence producer API. + * Users set these parameters through ZSTD_registerSequenceProducer(). + * It is not possible to set these parameters individually through the public API. */ + void* extSeqProdState; + ZSTD_sequenceProducer_F extSeqProdFunc; + + /* Adjust the max block size*/ + size_t maxBlockSize; + + /* Controls repcode search in external sequence parsing */ + ZSTD_paramSwitch_e searchForExternalRepcodes; }; /* typedef'd to ZSTD_CCtx_params within "zstd.h" */ +#define COMPRESS_SEQUENCES_WORKSPACE_SIZE (sizeof(unsigned) * (MaxSeq + 2)) +#define ENTROPY_WORKSPACE_SIZE (HUF_WORKSPACE_SIZE + COMPRESS_SEQUENCES_WORKSPACE_SIZE) + +/** + * Indicates whether this compression proceeds directly from user-provided + * source buffer to user-provided destination buffer (ZSTDb_not_buffered), or + * whether the context needs to buffer the input/output (ZSTDb_buffered). + */ +typedef enum { + ZSTDb_not_buffered, + ZSTDb_buffered +} ZSTD_buffered_policy_e; + +/** + * Struct that contains all elements of block splitter that should be allocated + * in a wksp. + */ +#define ZSTD_MAX_NB_BLOCK_SPLITS 196 +typedef struct { + seqStore_t fullSeqStoreChunk; + seqStore_t firstHalfSeqStore; + seqStore_t secondHalfSeqStore; + seqStore_t currSeqStore; + seqStore_t nextSeqStore; + + U32 partitions[ZSTD_MAX_NB_BLOCK_SPLITS]; + ZSTD_entropyCTablesMetadata_t entropyMetadata; +} ZSTD_blockSplitCtx; + struct ZSTD_CCtx_s { ZSTD_compressionStage_e stage; int cParamsChanged; /* == 1 if cParams(except wlog) or compression level are changed in requestedParams. Triggers transmission of new params to ZSTDMT (if available) then reset to 0. */ int bmi2; /* == 1 if the CPU supports BMI2 and 0 otherwise. CPU support is determined dynamically once per context lifetime. */ ZSTD_CCtx_params requestedParams; ZSTD_CCtx_params appliedParams; + ZSTD_CCtx_params simpleApiParams; /* Param storage used by the simple API - not sticky. Must only be used in top-level simple API functions for storage. */ U32 dictID; + size_t dictContentSize; ZSTD_cwksp workspace; /* manages buffer for dynamic allocations */ size_t blockSize; @@ -243,6 +418,7 @@ struct ZSTD_CCtx_s { unsigned long long producedCSize; XXH64_state_t xxhState; ZSTD_customMem customMem; + ZSTD_threadPool* pool; size_t staticSize; SeqCollector seqCollector; int isFirstBlock; @@ -254,7 +430,10 @@ struct ZSTD_CCtx_s { size_t maxNbLdmSequences; rawSeqStore_t externSeqStore; /* Mutable reference to external sequences */ ZSTD_blockState_t blockState; - U32* entropyWorkspace; /* entropy workspace of HUF_WORKSPACE_SIZE bytes */ + U32* entropyWorkspace; /* entropy workspace of ENTROPY_WORKSPACE_SIZE bytes */ + + /* Whether we are streaming or not */ + ZSTD_buffered_policy_e bufferedPolicy; /* streaming */ char* inBuff; @@ -269,6 +448,11 @@ struct ZSTD_CCtx_s { ZSTD_cStreamStage streamStage; U32 frameEnded; + /* Stable in/out buffer verification */ + ZSTD_inBuffer expectedInBuffer; + size_t stableIn_notConsumed; /* nb bytes within stable input buffer that are said to be consumed but are not */ + size_t expectedOutBufferSize; + /* Dictionary */ ZSTD_localDict localDict; const ZSTD_CDict* cdict; @@ -278,17 +462,54 @@ struct ZSTD_CCtx_s { #ifdef ZSTD_MULTITHREAD ZSTDMT_CCtx* mtctx; #endif -}; -typedef enum { ZSTD_dtlm_fast, ZSTD_dtlm_full } ZSTD_dictTableLoadMethod_e; + /* Tracing */ +#if ZSTD_TRACE + ZSTD_TraceCtx traceCtx; +#endif -typedef enum { ZSTD_noDict = 0, ZSTD_extDict = 1, ZSTD_dictMatchState = 2 } ZSTD_dictMode_e; + /* Workspace for block splitter */ + ZSTD_blockSplitCtx blockSplitCtx; + /* Buffer for output from external sequence producer */ + ZSTD_Sequence* extSeqBuf; + size_t extSeqBufCapacity; +}; + +typedef enum { ZSTD_dtlm_fast, ZSTD_dtlm_full } ZSTD_dictTableLoadMethod_e; +typedef enum { ZSTD_tfp_forCCtx, ZSTD_tfp_forCDict } ZSTD_tableFillPurpose_e; + +typedef enum { + ZSTD_noDict = 0, + ZSTD_extDict = 1, + ZSTD_dictMatchState = 2, + ZSTD_dedicatedDictSearch = 3 +} ZSTD_dictMode_e; + +typedef enum { + ZSTD_cpm_noAttachDict = 0, /* Compression with ZSTD_noDict or ZSTD_extDict. + * In this mode we use both the srcSize and the dictSize + * when selecting and adjusting parameters. + */ + ZSTD_cpm_attachDict = 1, /* Compression with ZSTD_dictMatchState or ZSTD_dedicatedDictSearch. + * In this mode we only take the srcSize into account when selecting + * and adjusting parameters. + */ + ZSTD_cpm_createCDict = 2, /* Creating a CDict. + * In this mode we take both the source size and the dictionary size + * into account when selecting and adjusting the parameters. + */ + ZSTD_cpm_unknown = 3 /* ZSTD_getCParams, ZSTD_getParams, ZSTD_adjustParams. + * We don't know what these parameters are for. We default to the legacy + * behavior of taking both the source size and the dict size into account + * when selecting and adjusting parameters. + */ +} ZSTD_cParamMode_e; typedef size_t (*ZSTD_blockCompressor) ( ZSTD_matchState_t* bs, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_dictMode_e dictMode); +ZSTD_blockCompressor ZSTD_selectBlockCompressor(ZSTD_strategy strat, ZSTD_paramSwitch_e rowMatchfinderMode, ZSTD_dictMode_e dictMode); MEM_STATIC U32 ZSTD_LLcode(U32 litLength) @@ -322,31 +543,6 @@ MEM_STATIC U32 ZSTD_MLcode(U32 mlBase) return (mlBase > 127) ? ZSTD_highbit32(mlBase) + ML_deltaCode : ML_Code[mlBase]; } -typedef struct repcodes_s { - U32 rep[3]; -} repcodes_t; - -MEM_STATIC repcodes_t ZSTD_updateRep(U32 const rep[3], U32 const offset, U32 const ll0) -{ - repcodes_t newReps; - if (offset >= ZSTD_REP_NUM) { /* full offset */ - newReps.rep[2] = rep[1]; - newReps.rep[1] = rep[0]; - newReps.rep[0] = offset - ZSTD_REP_MOVE; - } else { /* repcode */ - U32 const repCode = offset + ll0; - if (repCode > 0) { /* note : if repCode==0, no change */ - U32 const currentOffset = (repCode==ZSTD_REP_NUM) ? (rep[0] - 1) : rep[repCode]; - newReps.rep[2] = (repCode >= 2) ? rep[1] : rep[2]; - newReps.rep[1] = rep[0]; - newReps.rep[0] = currentOffset; - } else { /* repCode == 0 */ - memcpy(&newReps, rep, sizeof(newReps)); - } - } - return newReps; -} - /* ZSTD_cParam_withinBounds: * @return 1 if value is within cParam bounds, * 0 otherwise */ @@ -362,17 +558,20 @@ MEM_STATIC int ZSTD_cParam_withinBounds(ZSTD_cParameter cParam, int value) /* ZSTD_noCompressBlock() : * Writes uncompressed block to dst buffer from given src. * Returns the size of the block */ -MEM_STATIC size_t ZSTD_noCompressBlock (void* dst, size_t dstCapacity, const void* src, size_t srcSize, U32 lastBlock) +MEM_STATIC size_t +ZSTD_noCompressBlock(void* dst, size_t dstCapacity, const void* src, size_t srcSize, U32 lastBlock) { U32 const cBlockHeader24 = lastBlock + (((U32)bt_raw)<<1) + (U32)(srcSize << 3); - RETURN_ERROR_IF(srcSize + ZSTDInternalConstants::ZSTD_blockHeaderSize > dstCapacity, + DEBUGLOG(5, "ZSTD_noCompressBlock (srcSize=%zu, dstCapacity=%zu)", srcSize, dstCapacity); + RETURN_ERROR_IF(srcSize + ZSTD_blockHeaderSize > dstCapacity, dstSize_tooSmall, "dst buf too small for uncompressed block"); MEM_writeLE24(dst, cBlockHeader24); - memcpy((BYTE*)dst + ZSTDInternalConstants::ZSTD_blockHeaderSize, src, srcSize); - return ZSTDInternalConstants::ZSTD_blockHeaderSize + srcSize; + ZSTD_memcpy((BYTE*)dst + ZSTD_blockHeaderSize, src, srcSize); + return ZSTD_blockHeaderSize + srcSize; } -MEM_STATIC size_t ZSTD_rleCompressBlock (void* dst, size_t dstCapacity, BYTE src, size_t srcSize, U32 lastBlock) +MEM_STATIC size_t +ZSTD_rleCompressBlock(void* dst, size_t dstCapacity, BYTE src, size_t srcSize, U32 lastBlock) { BYTE* const op = (BYTE*)dst; U32 const cBlockHeader = lastBlock + (((U32)bt_rle)<<1) + (U32)(srcSize << 3); @@ -391,21 +590,21 @@ MEM_STATIC size_t ZSTD_minGain(size_t srcSize, ZSTD_strategy strat) { U32 const minlog = (strat>=ZSTD_btultra) ? (U32)(strat) - 1 : 6; ZSTD_STATIC_ASSERT(ZSTD_btultra == 8); - assert(ZSTD_cParam_withinBounds(ZSTD_c_strategy, strat)); + assert(ZSTD_cParam_withinBounds(ZSTD_c_strategy, (int)strat)); return (srcSize >> minlog) + 2; } -MEM_STATIC int ZSTD_disableLiteralsCompression(const ZSTD_CCtx_params* cctxParams) +MEM_STATIC int ZSTD_literalsCompressionIsDisabled(const ZSTD_CCtx_params* cctxParams) { switch (cctxParams->literalCompressionMode) { - case ZSTD_lcm_huffman: + case ZSTD_ps_enable: return 0; - case ZSTD_lcm_uncompressed: + case ZSTD_ps_disable: return 1; default: assert(0 /* impossible: pre-validated */); - /* fall-through */ - case ZSTD_lcm_auto: + ZSTD_FALLTHROUGH; + case ZSTD_ps_auto: return (cctxParams->cParams.strategy == ZSTD_fast) && (cctxParams->cParams.targetLength > 0); } } @@ -415,7 +614,9 @@ MEM_STATIC int ZSTD_disableLiteralsCompression(const ZSTD_CCtx_params* cctxParam * Only called when the sequence ends past ilimit_w, so it only needs to be optimized for single * large copies. */ -static void ZSTD_safecopyLiterals(BYTE* op, BYTE const* ip, BYTE const* const iend, BYTE const* ilimit_w) { +static void +ZSTD_safecopyLiterals(BYTE* op, BYTE const* ip, BYTE const* const iend, BYTE const* ilimit_w) +{ assert(iend > ilimit_w); if (ip <= ilimit_w) { ZSTD_wildcopy(op, ip, ilimit_w - ip, ZSTD_no_overlap); @@ -425,14 +626,28 @@ static void ZSTD_safecopyLiterals(BYTE* op, BYTE const* ip, BYTE const* const ie while (ip < iend) *op++ = *ip++; } + +#define REPCODE1_TO_OFFBASE REPCODE_TO_OFFBASE(1) +#define REPCODE2_TO_OFFBASE REPCODE_TO_OFFBASE(2) +#define REPCODE3_TO_OFFBASE REPCODE_TO_OFFBASE(3) +#define REPCODE_TO_OFFBASE(r) (assert((r)>=1), assert((r)<=ZSTD_REP_NUM), (r)) /* accepts IDs 1,2,3 */ +#define OFFSET_TO_OFFBASE(o) (assert((o)>0), o + ZSTD_REP_NUM) +#define OFFBASE_IS_OFFSET(o) ((o) > ZSTD_REP_NUM) +#define OFFBASE_IS_REPCODE(o) ( 1 <= (o) && (o) <= ZSTD_REP_NUM) +#define OFFBASE_TO_OFFSET(o) (assert(OFFBASE_IS_OFFSET(o)), (o) - ZSTD_REP_NUM) +#define OFFBASE_TO_REPCODE(o) (assert(OFFBASE_IS_REPCODE(o)), (o)) /* returns ID 1,2,3 */ + /*! ZSTD_storeSeq() : - * Store a sequence (litlen, litPtr, offCode and mlBase) into seqStore_t. - * `offCode` : distance to match + ZSTD_REP_MOVE (values <= ZSTD_REP_MOVE are repCodes). - * `mlBase` : matchLength - MINMATCH - * Allowed to overread literals up to litLimit. + * Store a sequence (litlen, litPtr, offBase and matchLength) into seqStore_t. + * @offBase : Users should employ macros REPCODE_TO_OFFBASE() and OFFSET_TO_OFFBASE(). + * @matchLength : must be >= MINMATCH + * Allowed to over-read literals up to litLimit. */ -HINT_INLINE UNUSED_ATTR -void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* literals, const BYTE* litLimit, U32 offCode, size_t mlBase) +HINT_INLINE UNUSED_ATTR void +ZSTD_storeSeq(seqStore_t* seqStorePtr, + size_t litLength, const BYTE* literals, const BYTE* litLimit, + U32 offBase, + size_t matchLength) { BYTE const* const litLimit_w = litLimit - WILDCOPY_OVERLENGTH; BYTE const* const litEnd = literals + litLength; @@ -440,8 +655,8 @@ void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* litera static const BYTE* g_start = NULL; if (g_start==NULL) g_start = (const BYTE*)literals; /* note : index only works for compression within a single segment */ { U32 const pos = (U32)((const BYTE*)literals - g_start); - DEBUGLOG(6, "Cpos%7u :%3u literals, match%4u bytes at offCode%7u", - pos, (U32)litLength, (U32)mlBase+MINMATCH, (U32)offCode); + DEBUGLOG(6, "Cpos%7u :%3u literals, match%4u bytes at offBase%7u", + pos, (U32)litLength, (U32)matchLength, (U32)offBase); } #endif assert((size_t)(seqStorePtr->sequences - seqStorePtr->sequencesStart) < seqStorePtr->maxNbSeq); @@ -451,9 +666,9 @@ void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* litera assert(literals + litLength <= litLimit); if (litEnd <= litLimit_w) { /* Common case we can use wildcopy. - * First copy 16 bytes, because literals are likely short. - */ - assert(WILDCOPY_OVERLENGTH >= 16); + * First copy 16 bytes, because literals are likely short. + */ + ZSTD_STATIC_ASSERT(WILDCOPY_OVERLENGTH >= 16); ZSTD_copy16(seqStorePtr->lit, literals); if (litLength > 16) { ZSTD_wildcopy(seqStorePtr->lit+16, literals+16, (ptrdiff_t)litLength-16, ZSTD_no_overlap); @@ -465,95 +680,70 @@ void ZSTD_storeSeq(seqStore_t* seqStorePtr, size_t litLength, const BYTE* litera /* literal Length */ if (litLength>0xFFFF) { - assert(seqStorePtr->longLengthID == 0); /* there can only be a single long length */ - seqStorePtr->longLengthID = 1; + assert(seqStorePtr->longLengthType == ZSTD_llt_none); /* there can only be a single long length */ + seqStorePtr->longLengthType = ZSTD_llt_literalLength; seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); } seqStorePtr->sequences[0].litLength = (U16)litLength; /* match offset */ - seqStorePtr->sequences[0].offset = offCode + 1; + seqStorePtr->sequences[0].offBase = offBase; /* match Length */ - if (mlBase>0xFFFF) { - assert(seqStorePtr->longLengthID == 0); /* there can only be a single long length */ - seqStorePtr->longLengthID = 2; - seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + assert(matchLength >= MINMATCH); + { size_t const mlBase = matchLength - MINMATCH; + if (mlBase>0xFFFF) { + assert(seqStorePtr->longLengthType == ZSTD_llt_none); /* there can only be a single long length */ + seqStorePtr->longLengthType = ZSTD_llt_matchLength; + seqStorePtr->longLengthPos = (U32)(seqStorePtr->sequences - seqStorePtr->sequencesStart); + } + seqStorePtr->sequences[0].mlBase = (U16)mlBase; } - seqStorePtr->sequences[0].matchLength = (U16)mlBase; seqStorePtr->sequences++; } - -/*-************************************* -* Match length counter -***************************************/ -static unsigned ZSTD_NbCommonBytes (size_t val) +/* ZSTD_updateRep() : + * updates in-place @rep (array of repeat offsets) + * @offBase : sum-type, using numeric representation of ZSTD_storeSeq() + */ +MEM_STATIC void +ZSTD_updateRep(U32 rep[ZSTD_REP_NUM], U32 const offBase, U32 const ll0) { - if (MEM_isLittleEndian()) { - if (MEM_64bits()) { -# if defined(_MSC_VER) && defined(_WIN64) - unsigned long r = 0; - return _BitScanForward64( &r, (U64)val ) ? (unsigned)(r >> 3) : 0; -# elif defined(__GNUC__) && (__GNUC__ >= 4) - return (__builtin_ctzll((U64)val) >> 3); -# else - static const int DeBruijnBytePos[64] = { 0, 0, 0, 0, 0, 1, 1, 2, - 0, 3, 1, 3, 1, 4, 2, 7, - 0, 2, 3, 6, 1, 5, 3, 5, - 1, 3, 4, 4, 2, 5, 6, 7, - 7, 0, 1, 2, 3, 3, 4, 6, - 2, 6, 5, 5, 3, 4, 5, 6, - 7, 1, 2, 4, 6, 4, 4, 5, - 7, 2, 6, 5, 7, 6, 7, 7 }; - return DeBruijnBytePos[((U64)((val & -(long long)val) * 0x0218A392CDABBD3FULL)) >> 58]; -# endif - } else { /* 32 bits */ -# if defined(_MSC_VER) - unsigned long r=0; - return _BitScanForward( &r, (U32)val ) ? (unsigned)(r >> 3) : 0; -# elif defined(__GNUC__) && (__GNUC__ >= 3) - return (__builtin_ctz((U32)val) >> 3); -# else - static const int DeBruijnBytePos[32] = { 0, 0, 3, 0, 3, 1, 3, 0, - 3, 2, 2, 1, 3, 2, 0, 1, - 3, 3, 1, 2, 2, 2, 2, 0, - 3, 1, 2, 0, 1, 0, 1, 1 }; - return DeBruijnBytePos[((U32)((val & -(S32)val) * 0x077CB531U)) >> 27]; -# endif + if (OFFBASE_IS_OFFSET(offBase)) { /* full offset */ + rep[2] = rep[1]; + rep[1] = rep[0]; + rep[0] = OFFBASE_TO_OFFSET(offBase); + } else { /* repcode */ + U32 const repCode = OFFBASE_TO_REPCODE(offBase) - 1 + ll0; + if (repCode > 0) { /* note : if repCode==0, no change */ + U32 const currentOffset = (repCode==ZSTD_REP_NUM) ? (rep[0] - 1) : rep[repCode]; + rep[2] = (repCode >= 2) ? rep[1] : rep[2]; + rep[1] = rep[0]; + rep[0] = currentOffset; + } else { /* repCode == 0 */ + /* nothing to do */ } - } else { /* Big Endian CPU */ - if (MEM_64bits()) { -# if defined(_MSC_VER) && defined(_WIN64) - unsigned long r = 0; - return _BitScanReverse64( &r, val ) ? (unsigned)(r >> 3) : 0; -# elif defined(__GNUC__) && (__GNUC__ >= 4) - return (__builtin_clzll(val) >> 3); -# else - unsigned r; - const unsigned n32 = sizeof(size_t)*4; /* calculate this way due to compiler complaining in 32-bits mode */ - if (!(val>>n32)) { r=4; } else { r=0; val>>=n32; } - if (!(val>>16)) { r+=2; val>>=8; } else { val>>=24; } - r += (!val); - return r; -# endif - } else { /* 32 bits */ -# if defined(_MSC_VER) - unsigned long r = 0; - return _BitScanReverse( &r, (unsigned long)val ) ? (unsigned)(r >> 3) : 0; -# elif defined(__GNUC__) && (__GNUC__ >= 3) - return (__builtin_clz((U32)val) >> 3); -# else - unsigned r; - if (!(val>>16)) { r=2; val>>=8; } else { r=0; val>>=24; } - r += (!val); - return r; -# endif - } } + } +} + +typedef struct repcodes_s { + U32 rep[3]; +} repcodes_t; + +MEM_STATIC repcodes_t +ZSTD_newRep(U32 const rep[ZSTD_REP_NUM], U32 const offBase, U32 const ll0) +{ + repcodes_t newReps; + ZSTD_memcpy(&newReps, rep, sizeof(newReps)); + ZSTD_updateRep(newReps.rep, offBase, ll0); + return newReps; } +/*-************************************* +* Match length counter +***************************************/ MEM_STATIC size_t ZSTD_count(const BYTE* pIn, const BYTE* pMatch, const BYTE* const pInLimit) { const BYTE* const pStart = pIn; @@ -599,31 +789,43 @@ ZSTD_count_2segments(const BYTE* ip, const BYTE* match, * Hashes ***************************************/ static const U32 prime3bytes = 506832829U; -static U32 ZSTD_hash3(U32 u, U32 h) { return ((u << (32-24)) * prime3bytes) >> (32-h) ; } -MEM_STATIC size_t ZSTD_hash3Ptr(const void* ptr, U32 h) { return ZSTD_hash3(MEM_readLE32(ptr), h); } /* only in zstd_opt.h */ +static U32 ZSTD_hash3(U32 u, U32 h, U32 s) { assert(h <= 32); return (((u << (32-24)) * prime3bytes) ^ s) >> (32-h) ; } +MEM_STATIC size_t ZSTD_hash3Ptr(const void* ptr, U32 h) { return ZSTD_hash3(MEM_readLE32(ptr), h, 0); } /* only in zstd_opt.h */ +MEM_STATIC size_t ZSTD_hash3PtrS(const void* ptr, U32 h, U32 s) { return ZSTD_hash3(MEM_readLE32(ptr), h, s); } static const U32 prime4bytes = 2654435761U; -static U32 ZSTD_hash4(U32 u, U32 h) { return (u * prime4bytes) >> (32-h) ; } -static size_t ZSTD_hash4Ptr(const void* ptr, U32 h) { return ZSTD_hash4(MEM_read32(ptr), h); } +static U32 ZSTD_hash4(U32 u, U32 h, U32 s) { assert(h <= 32); return ((u * prime4bytes) ^ s) >> (32-h) ; } +static size_t ZSTD_hash4Ptr(const void* ptr, U32 h) { return ZSTD_hash4(MEM_readLE32(ptr), h, 0); } +static size_t ZSTD_hash4PtrS(const void* ptr, U32 h, U32 s) { return ZSTD_hash4(MEM_readLE32(ptr), h, s); } static const U64 prime5bytes = 889523592379ULL; -static size_t ZSTD_hash5(U64 u, U32 h) { return (size_t)(((u << (64-40)) * prime5bytes) >> (64-h)) ; } -static size_t ZSTD_hash5Ptr(const void* p, U32 h) { return ZSTD_hash5(MEM_readLE64(p), h); } +static size_t ZSTD_hash5(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u << (64-40)) * prime5bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash5Ptr(const void* p, U32 h) { return ZSTD_hash5(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash5PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash5(MEM_readLE64(p), h, s); } static const U64 prime6bytes = 227718039650203ULL; -static size_t ZSTD_hash6(U64 u, U32 h) { return (size_t)(((u << (64-48)) * prime6bytes) >> (64-h)) ; } -static size_t ZSTD_hash6Ptr(const void* p, U32 h) { return ZSTD_hash6(MEM_readLE64(p), h); } +static size_t ZSTD_hash6(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u << (64-48)) * prime6bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash6Ptr(const void* p, U32 h) { return ZSTD_hash6(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash6PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash6(MEM_readLE64(p), h, s); } static const U64 prime7bytes = 58295818150454627ULL; -static size_t ZSTD_hash7(U64 u, U32 h) { return (size_t)(((u << (64-56)) * prime7bytes) >> (64-h)) ; } -static size_t ZSTD_hash7Ptr(const void* p, U32 h) { return ZSTD_hash7(MEM_readLE64(p), h); } +static size_t ZSTD_hash7(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u << (64-56)) * prime7bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash7Ptr(const void* p, U32 h) { return ZSTD_hash7(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash7PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash7(MEM_readLE64(p), h, s); } static const U64 prime8bytes = 0xCF1BBCDCB7A56463ULL; -static size_t ZSTD_hash8(U64 u, U32 h) { return (size_t)(((u) * prime8bytes) >> (64-h)) ; } -static size_t ZSTD_hash8Ptr(const void* p, U32 h) { return ZSTD_hash8(MEM_readLE64(p), h); } +static size_t ZSTD_hash8(U64 u, U32 h, U64 s) { assert(h <= 64); return (size_t)((((u) * prime8bytes) ^ s) >> (64-h)) ; } +static size_t ZSTD_hash8Ptr(const void* p, U32 h) { return ZSTD_hash8(MEM_readLE64(p), h, 0); } +static size_t ZSTD_hash8PtrS(const void* p, U32 h, U64 s) { return ZSTD_hash8(MEM_readLE64(p), h, s); } + -MEM_STATIC size_t ZSTD_hashPtr(const void* p, U32 hBits, U32 mls) +MEM_STATIC FORCE_INLINE_ATTR +size_t ZSTD_hashPtr(const void* p, U32 hBits, U32 mls) { + /* Although some of these hashes do support hBits up to 64, some do not. + * To be on the safe side, always avoid hBits > 32. */ + assert(hBits <= 32); + switch(mls) { default: @@ -635,6 +837,24 @@ MEM_STATIC size_t ZSTD_hashPtr(const void* p, U32 hBits, U32 mls) } } +MEM_STATIC FORCE_INLINE_ATTR +size_t ZSTD_hashPtrSalted(const void* p, U32 hBits, U32 mls, const U64 hashSalt) { + /* Although some of these hashes do support hBits up to 64, some do not. + * To be on the safe side, always avoid hBits > 32. */ + assert(hBits <= 32); + + switch(mls) + { + default: + case 4: return ZSTD_hash4PtrS(p, hBits, (U32)hashSalt); + case 5: return ZSTD_hash5PtrS(p, hBits, hashSalt); + case 6: return ZSTD_hash6PtrS(p, hBits, hashSalt); + case 7: return ZSTD_hash7PtrS(p, hBits, hashSalt); + case 8: return ZSTD_hash8PtrS(p, hBits, hashSalt); + } +} + + /** ZSTD_ipow() : * Return base^exponent. */ @@ -719,6 +939,13 @@ MEM_STATIC void ZSTD_window_clear(ZSTD_window_t* window) window->dictLimit = end; } +MEM_STATIC U32 ZSTD_window_isEmpty(ZSTD_window_t const window) +{ + return window.dictLimit == ZSTD_WINDOW_START_INDEX && + window.lowLimit == ZSTD_WINDOW_START_INDEX && + (window.nextSrc - window.base) == ZSTD_WINDOW_START_INDEX; +} + /** * ZSTD_window_hasExtDict(): * Returns non-zero if the window has a non-empty extDict. @@ -738,20 +965,76 @@ MEM_STATIC ZSTD_dictMode_e ZSTD_matchState_dictMode(const ZSTD_matchState_t *ms) return ZSTD_window_hasExtDict(ms->window) ? ZSTD_extDict : ms->dictMatchState != NULL ? - ZSTD_dictMatchState : + (ms->dictMatchState->dedicatedDictSearch ? ZSTD_dedicatedDictSearch : ZSTD_dictMatchState) : ZSTD_noDict; } +/* Defining this macro to non-zero tells zstd to run the overflow correction + * code much more frequently. This is very inefficient, and should only be + * used for tests and fuzzers. + */ +#ifndef ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY +# ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION +# define ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY 1 +# else +# define ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY 0 +# endif +#endif + +/** + * ZSTD_window_canOverflowCorrect(): + * Returns non-zero if the indices are large enough for overflow correction + * to work correctly without impacting compression ratio. + */ +MEM_STATIC U32 ZSTD_window_canOverflowCorrect(ZSTD_window_t const window, + U32 cycleLog, + U32 maxDist, + U32 loadedDictEnd, + void const* src) +{ + U32 const cycleSize = 1u << cycleLog; + U32 const curr = (U32)((BYTE const*)src - window.base); + U32 const minIndexToOverflowCorrect = cycleSize + + MAX(maxDist, cycleSize) + + ZSTD_WINDOW_START_INDEX; + + /* Adjust the min index to backoff the overflow correction frequency, + * so we don't waste too much CPU in overflow correction. If this + * computation overflows we don't really care, we just need to make + * sure it is at least minIndexToOverflowCorrect. + */ + U32 const adjustment = window.nbOverflowCorrections + 1; + U32 const adjustedIndex = MAX(minIndexToOverflowCorrect * adjustment, + minIndexToOverflowCorrect); + U32 const indexLargeEnough = curr > adjustedIndex; + + /* Only overflow correct early if the dictionary is invalidated already, + * so we don't hurt compression ratio. + */ + U32 const dictionaryInvalidated = curr > maxDist + loadedDictEnd; + + return indexLargeEnough && dictionaryInvalidated; +} + /** * ZSTD_window_needOverflowCorrection(): * Returns non-zero if the indices are getting too large and need overflow * protection. */ MEM_STATIC U32 ZSTD_window_needOverflowCorrection(ZSTD_window_t const window, + U32 cycleLog, + U32 maxDist, + U32 loadedDictEnd, + void const* src, void const* srcEnd) { - U32 const current = (U32)((BYTE const*)srcEnd - window.base); - return current > ZSTD_CURRENT_MAX; + U32 const curr = (U32)((BYTE const*)srcEnd - window.base); + if (ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY) { + if (ZSTD_window_canOverflowCorrect(window, cycleLog, maxDist, loadedDictEnd, src)) { + return 1; + } + } + return curr > ZSTD_CURRENT_MAX; } /** @@ -762,9 +1045,10 @@ MEM_STATIC U32 ZSTD_window_needOverflowCorrection(ZSTD_window_t const window, * * The least significant cycleLog bits of the indices must remain the same, * which may be 0. Every index up to maxDist in the past must be valid. - * NOTE: (maxDist & cycleMask) must be zero. */ -MEM_STATIC U32 ZSTD_window_correctOverflow(ZSTD_window_t* window, U32 cycleLog, +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_window_correctOverflow(ZSTD_window_t* window, U32 cycleLog, U32 maxDist, void const* src) { /* preemptive overflow correction: @@ -786,32 +1070,52 @@ MEM_STATIC U32 ZSTD_window_correctOverflow(ZSTD_window_t* window, U32 cycleLog, * 3. (cctx->lowLimit + 1< 3<<29 + 1<base); - U32 const currentCycle0 = current & cycleMask; - /* Exclude zero so that newCurrent - maxDist >= 1. */ - U32 const currentCycle1 = currentCycle0 == 0 ? (1U << cycleLog) : currentCycle0; - U32 const newCurrent = currentCycle1 + maxDist; - U32 const correction = current - newCurrent; - assert((maxDist & cycleMask) == 0); - assert(current > newCurrent); - /* Loose bound, should be around 1<<29 (see above) */ - assert(correction > 1<<28); + U32 const cycleSize = 1u << cycleLog; + U32 const cycleMask = cycleSize - 1; + U32 const curr = (U32)((BYTE const*)src - window->base); + U32 const currentCycle = curr & cycleMask; + /* Ensure newCurrent - maxDist >= ZSTD_WINDOW_START_INDEX. */ + U32 const currentCycleCorrection = currentCycle < ZSTD_WINDOW_START_INDEX + ? MAX(cycleSize, ZSTD_WINDOW_START_INDEX) + : 0; + U32 const newCurrent = currentCycle + + currentCycleCorrection + + MAX(maxDist, cycleSize); + U32 const correction = curr - newCurrent; + /* maxDist must be a power of two so that: + * (newCurrent & cycleMask) == (curr & cycleMask) + * This is required to not corrupt the chains / binary tree. + */ + assert((maxDist & (maxDist - 1)) == 0); + assert((curr & cycleMask) == (newCurrent & cycleMask)); + assert(curr > newCurrent); + if (!ZSTD_WINDOW_OVERFLOW_CORRECT_FREQUENTLY) { + /* Loose bound, should be around 1<<29 (see above) */ + assert(correction > 1<<28); + } window->base += correction; window->dictBase += correction; - if (window->lowLimit <= correction) window->lowLimit = 1; - else window->lowLimit -= correction; - if (window->dictLimit <= correction) window->dictLimit = 1; - else window->dictLimit -= correction; + if (window->lowLimit < correction + ZSTD_WINDOW_START_INDEX) { + window->lowLimit = ZSTD_WINDOW_START_INDEX; + } else { + window->lowLimit -= correction; + } + if (window->dictLimit < correction + ZSTD_WINDOW_START_INDEX) { + window->dictLimit = ZSTD_WINDOW_START_INDEX; + } else { + window->dictLimit -= correction; + } /* Ensure we can still reference the full window. */ assert(newCurrent >= maxDist); - assert(newCurrent - maxDist >= 1); + assert(newCurrent - maxDist >= ZSTD_WINDOW_START_INDEX); /* Ensure that lowLimit and dictLimit didn't underflow. */ assert(window->lowLimit <= newCurrent); assert(window->dictLimit <= newCurrent); + ++window->nbOverflowCorrections; + DEBUGLOG(4, "Correction of 0x%x bytes to lowLimit=0x%x", correction, window->lowLimit); return correction; @@ -900,10 +1204,15 @@ ZSTD_checkDictValidity(const ZSTD_window_t* window, (unsigned)blockEndIdx, (unsigned)maxDist, (unsigned)loadedDictEnd); assert(blockEndIdx >= loadedDictEnd); - if (blockEndIdx > loadedDictEnd + maxDist) { + if (blockEndIdx > loadedDictEnd + maxDist || loadedDictEnd != window->dictLimit) { /* On reaching window size, dictionaries are invalidated. * For simplification, if window size is reached anywhere within next block, * the dictionary is invalidated for the full block. + * + * We also have to invalidate the dictionary if ZSTD_window_update() has detected + * non-contiguous segments, which means that loadedDictEnd != window->dictLimit. + * loadedDictEnd may be 0, if forceWindow is true, but in that case we never use + * dictMatchState, so setting it to NULL is not a problem. */ DEBUGLOG(6, "invalidating dictionary for current block (distance > windowSize)"); *loadedDictEndPtr = 0; @@ -915,12 +1224,14 @@ ZSTD_checkDictValidity(const ZSTD_window_t* window, } MEM_STATIC void ZSTD_window_init(ZSTD_window_t* window) { - memset(window, 0, sizeof(*window)); - window->base = (BYTE const*)""; - window->dictBase = (BYTE const*)""; - window->dictLimit = 1; /* start from 1, so that 1st position is valid */ - window->lowLimit = 1; /* it ensures first and later CCtx usages compress the same */ - window->nextSrc = window->base + 1; /* see issue #1241 */ + ZSTD_memset(window, 0, sizeof(*window)); + window->base = (BYTE const*)" "; + window->dictBase = (BYTE const*)" "; + ZSTD_STATIC_ASSERT(ZSTD_DUBT_UNSORTED_MARK < ZSTD_WINDOW_START_INDEX); /* Start above ZSTD_DUBT_UNSORTED_MARK */ + window->dictLimit = ZSTD_WINDOW_START_INDEX; /* start from >0, so that 1st position is valid */ + window->lowLimit = ZSTD_WINDOW_START_INDEX; /* it ensures first and later CCtx usages compress the same */ + window->nextSrc = window->base + ZSTD_WINDOW_START_INDEX; /* see issue #1241 */ + window->nbOverflowCorrections = 0; } /** @@ -930,8 +1241,11 @@ MEM_STATIC void ZSTD_window_init(ZSTD_window_t* window) { * forget about the extDict. Handles overlap of the prefix and extDict. * Returns non-zero if the segment is contiguous. */ -MEM_STATIC U32 ZSTD_window_update(ZSTD_window_t* window, - void const* src, size_t srcSize) +MEM_STATIC +ZSTD_ALLOW_POINTER_OVERFLOW_ATTR +U32 ZSTD_window_update(ZSTD_window_t* window, + void const* src, size_t srcSize, + int forceNonContiguous) { BYTE const* const ip = (BYTE const*)src; U32 contiguous = 1; @@ -941,7 +1255,7 @@ MEM_STATIC U32 ZSTD_window_update(ZSTD_window_t* window, assert(window->base != NULL); assert(window->dictBase != NULL); /* Check if blocks follow each other */ - if (src != window->nextSrc) { + if (src != window->nextSrc || forceNonContiguous) { /* not contiguous */ size_t const distanceFromBase = (size_t)(window->nextSrc - window->base); DEBUGLOG(5, "Non contiguous blocks, new segment starts at %u", window->dictLimit); @@ -969,25 +1283,32 @@ MEM_STATIC U32 ZSTD_window_update(ZSTD_window_t* window, /** * Returns the lowest allowed match index. It may either be in the ext-dict or the prefix. */ -MEM_STATIC U32 ZSTD_getLowestMatchIndex(const ZSTD_matchState_t* ms, U32 current, unsigned windowLog) +MEM_STATIC U32 ZSTD_getLowestMatchIndex(const ZSTD_matchState_t* ms, U32 curr, unsigned windowLog) { - U32 const maxDistance = 1U << windowLog; - U32 const lowestValid = ms->window.lowLimit; - U32 const withinWindow = (current - lowestValid > maxDistance) ? current - maxDistance : lowestValid; - U32 const isDictionary = (ms->loadedDictEnd != 0); - U32 const matchLowest = isDictionary ? lowestValid : withinWindow; + U32 const maxDistance = 1U << windowLog; + U32 const lowestValid = ms->window.lowLimit; + U32 const withinWindow = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; + U32 const isDictionary = (ms->loadedDictEnd != 0); + /* When using a dictionary the entire dictionary is valid if a single byte of the dictionary + * is within the window. We invalidate the dictionary (and set loadedDictEnd to 0) when it isn't + * valid for the entire block. So this check is sufficient to find the lowest valid match index. + */ + U32 const matchLowest = isDictionary ? lowestValid : withinWindow; return matchLowest; } /** * Returns the lowest allowed match index in the prefix. */ -MEM_STATIC U32 ZSTD_getLowestPrefixIndex(const ZSTD_matchState_t* ms, U32 current, unsigned windowLog) +MEM_STATIC U32 ZSTD_getLowestPrefixIndex(const ZSTD_matchState_t* ms, U32 curr, unsigned windowLog) { U32 const maxDistance = 1U << windowLog; U32 const lowestValid = ms->window.dictLimit; - U32 const withinWindow = (current - lowestValid > maxDistance) ? current - maxDistance : lowestValid; + U32 const withinWindow = (curr - lowestValid > maxDistance) ? curr - maxDistance : lowestValid; U32 const isDictionary = (ms->loadedDictEnd != 0); + /* When computing the lowest prefix index we need to take the dictionary into account to handle + * the edge case where the dictionary and the source are contiguous in memory. + */ U32 const matchLowest = isDictionary ? lowestValid : withinWindow; return matchLowest; } @@ -1025,6 +1346,43 @@ MEM_STATIC void ZSTD_debugTable(const U32* table, U32 max) #endif +/* Short Cache */ + +/* Normally, zstd matchfinders follow this flow: + * 1. Compute hash at ip + * 2. Load index from hashTable[hash] + * 3. Check if *ip == *(base + index) + * In dictionary compression, loading *(base + index) is often an L2 or even L3 miss. + * + * Short cache is an optimization which allows us to avoid step 3 most of the time + * when the data doesn't actually match. With short cache, the flow becomes: + * 1. Compute (hash, currentTag) at ip. currentTag is an 8-bit independent hash at ip. + * 2. Load (index, matchTag) from hashTable[hash]. See ZSTD_writeTaggedIndex to understand how this works. + * 3. Only if currentTag == matchTag, check *ip == *(base + index). Otherwise, continue. + * + * Currently, short cache is only implemented in CDict hashtables. Thus, its use is limited to + * dictMatchState matchfinders. + */ +#define ZSTD_SHORT_CACHE_TAG_BITS 8 +#define ZSTD_SHORT_CACHE_TAG_MASK ((1u << ZSTD_SHORT_CACHE_TAG_BITS) - 1) + +/* Helper function for ZSTD_fillHashTable and ZSTD_fillDoubleHashTable. + * Unpacks hashAndTag into (hash, tag), then packs (index, tag) into hashTable[hash]. */ +MEM_STATIC void ZSTD_writeTaggedIndex(U32* const hashTable, size_t hashAndTag, U32 index) { + size_t const hash = hashAndTag >> ZSTD_SHORT_CACHE_TAG_BITS; + U32 const tag = (U32)(hashAndTag & ZSTD_SHORT_CACHE_TAG_MASK); + assert(index >> (32 - ZSTD_SHORT_CACHE_TAG_BITS) == 0); + hashTable[hash] = (index << ZSTD_SHORT_CACHE_TAG_BITS) | tag; +} + +/* Helper function for short cache matchfinders. + * Unpacks tag1 and tag2 from lower bits of packedTag1 and packedTag2, then checks if the tags match. */ +MEM_STATIC int ZSTD_comparePackedTags(size_t packedTag1, size_t packedTag2) { + U32 const tag1 = packedTag1 & ZSTD_SHORT_CACHE_TAG_MASK; + U32 const tag2 = packedTag2 & ZSTD_SHORT_CACHE_TAG_MASK; + return tag1 == tag2; +} + /* =============================================================== * Shared internal declarations * These prototypes may be called from sources not in lib/compress @@ -1036,7 +1394,6 @@ MEM_STATIC void ZSTD_debugTable(const U32* table, U32 max) * assumptions : magic number supposed already checked * and dictSize >= 8 */ size_t ZSTD_loadCEntropy(ZSTD_compressedBlockState_t* bs, void* workspace, - short* offcodeNCount, unsigned* offcodeMaxValue, const void* const dict, size_t dictSize); void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs); @@ -1052,7 +1409,7 @@ void ZSTD_reset_compressedBlockState(ZSTD_compressedBlockState_t* bs); * Note: srcSizeHint == 0 means 0! */ ZSTD_compressionParameters ZSTD_getCParamsFromCCtxParams( - const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize); + const ZSTD_CCtx_params* CCtxParams, U64 srcSizeHint, size_t dictSize, ZSTD_cParamMode_e mode); /*! ZSTD_initCStream_internal() : * Private use only. Init streaming operation. @@ -1103,16 +1460,70 @@ size_t ZSTD_writeLastEmptyBlock(void* dst, size_t dstCapacity); * This cannot be used when long range matching is enabled. * Zstd will use these sequences, and pass the literals to a secondary block * compressor. - * @return : An error code on failure. * NOTE: seqs are not verified! Invalid sequences can cause out-of-bounds memory * access and data corruption. */ -size_t ZSTD_referenceExternalSequences(ZSTD_CCtx* cctx, rawSeq* seq, size_t nbSeq); +void ZSTD_referenceExternalSequences(ZSTD_CCtx* cctx, rawSeq* seq, size_t nbSeq); /** ZSTD_cycleLog() : * condition for correct operation : hashLog > 1 */ U32 ZSTD_cycleLog(U32 hashLog, ZSTD_strategy strat); +/** ZSTD_CCtx_trace() : + * Trace the end of a compression call. + */ +void ZSTD_CCtx_trace(ZSTD_CCtx* cctx, size_t extraCSize); + +/* Returns 0 on success, and a ZSTD_error otherwise. This function scans through an array of + * ZSTD_Sequence, storing the sequences it finds, until it reaches a block delimiter. + * Note that the block delimiter must include the last literals of the block. + */ +size_t +ZSTD_copySequencesToSeqStoreExplicitBlockDelim(ZSTD_CCtx* cctx, + ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch); + +/* Returns the number of bytes to move the current read position back by. + * Only non-zero if we ended up splitting a sequence. + * Otherwise, it may return a ZSTD error if something went wrong. + * + * This function will attempt to scan through blockSize bytes + * represented by the sequences in @inSeqs, + * storing any (partial) sequences. + * + * Occasionally, we may want to change the actual number of bytes we consumed from inSeqs to + * avoid splitting a match, or to avoid splitting a match such that it would produce a match + * smaller than MINMATCH. In this case, we return the number of bytes that we didn't read from this block. + */ +size_t +ZSTD_copySequencesToSeqStoreNoBlockDelim(ZSTD_CCtx* cctx, ZSTD_sequencePosition* seqPos, + const ZSTD_Sequence* const inSeqs, size_t inSeqsSize, + const void* src, size_t blockSize, ZSTD_paramSwitch_e externalRepSearch); + +/* Returns 1 if an external sequence producer is registered, otherwise returns 0. */ +MEM_STATIC int ZSTD_hasExtSeqProd(const ZSTD_CCtx_params* params) { + return params->extSeqProdFunc != NULL; } +/* =============================================================== + * Deprecated definitions that are still used internally to avoid + * deprecation warnings. These functions are exactly equivalent to + * their public variants, but avoid the deprecation warnings. + * =============================================================== */ + +size_t ZSTD_compressBegin_usingCDict_deprecated(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict); + +size_t ZSTD_compressContinue_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize); + +size_t ZSTD_compressEnd_public(ZSTD_CCtx* cctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize); + +size_t ZSTD_compressBlock_deprecated(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); + +} // namespace duckdb_zstd + #endif /* ZSTD_COMPRESS_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_literals.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_literals.h index 7082db52..a8fc05ba 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_literals.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_literals.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -17,16 +17,26 @@ namespace duckdb_zstd { size_t ZSTD_noCompressLiterals (void* dst, size_t dstCapacity, const void* src, size_t srcSize); +/* ZSTD_compressRleLiteralsBlock() : + * Conditions : + * - All bytes in @src are identical + * - dstCapacity >= 4 */ size_t ZSTD_compressRleLiteralsBlock (void* dst, size_t dstCapacity, const void* src, size_t srcSize); -size_t ZSTD_compressLiterals (ZSTD_hufCTables_t const* prevHuf, - ZSTD_hufCTables_t* nextHuf, - ZSTD_strategy strategy, int disableLiteralCompression, - void* dst, size_t dstCapacity, +/* ZSTD_compressLiterals(): + * @entropyWorkspace: must be aligned on 4-bytes boundaries + * @entropyWorkspaceSize : must be >= HUF_WORKSPACE_SIZE + * @suspectUncompressible: sampling checks, to potentially skip huffman coding + */ +size_t ZSTD_compressLiterals (void* dst, size_t dstCapacity, const void* src, size_t srcSize, void* entropyWorkspace, size_t entropyWorkspaceSize, - const int bmi2); + const ZSTD_hufCTables_t* prevHuf, + ZSTD_hufCTables_t* nextHuf, + ZSTD_strategy strategy, int disableLiteralCompression, + int suspectUncompressible, + int bmi2); -} +} // namespace duckdb_zstd #endif /* ZSTD_COMPRESS_LITERALS_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_sequences.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_sequences.h index 63e27ea6..885663f2 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_sequences.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_sequences.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -54,6 +54,6 @@ size_t ZSTD_fseBitCost( size_t ZSTD_crossEntropyCost(short const* norm, unsigned accuracyLog, unsigned const* count, unsigned const max); -} +} // namespace duckdb_zstd #endif /* ZSTD_COMPRESS_SEQUENCES_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_superblock.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_superblock.h index df405503..34b7a3bf 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_superblock.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_compress_superblock.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -18,6 +18,7 @@ #include "zstd.h" /* ZSTD_CCtx */ namespace duckdb_zstd { + /*-************************************* * Target Compressed Block Size ***************************************/ @@ -29,7 +30,7 @@ size_t ZSTD_compressSuperBlock(ZSTD_CCtx* zc, void* dst, size_t dstCapacity, void const* src, size_t srcSize, unsigned lastBlock); -} +} // namespace duckdb_zstd #endif /* ZSTD_COMPRESS_ADVANCED_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h index aea4f469..70cfcfa5 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_cwksp.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -14,7 +14,11 @@ /*-************************************* * Dependencies ***************************************/ +#include "zstd/common/allocations.h" /* ZSTD_customMalloc, ZSTD_customFree */ #include "zstd/common/zstd_internal.h" +#include "zstd/common/portability_macros.h" + +namespace duckdb_zstd { /*-************************************* * Constants @@ -31,21 +35,30 @@ #define ZSTD_CWKSP_ASAN_REDZONE_SIZE 128 #endif -#if defined (MEMORY_SANITIZER) -#include -#endif -namespace duckdb_zstd { +/* Set our tables and aligneds to align by 64 bytes */ +#define ZSTD_CWKSP_ALIGNMENT_BYTES 64 /*-************************************* * Structures ***************************************/ typedef enum { ZSTD_cwksp_alloc_objects, - ZSTD_cwksp_alloc_buffers, - ZSTD_cwksp_alloc_aligned + ZSTD_cwksp_alloc_aligned_init_once, + ZSTD_cwksp_alloc_aligned, + ZSTD_cwksp_alloc_buffers } ZSTD_cwksp_alloc_phase_e; +/** + * Used to describe whether the workspace is statically allocated (and will not + * necessarily ever be freed), or if it's dynamically allocated and we can + * expect a well-formed caller to free this. + */ +typedef enum { + ZSTD_cwksp_dynamic_alloc, + ZSTD_cwksp_static_alloc +} ZSTD_cwksp_static_alloc_e; + /** * Zstd fits all its internal datastructures into a single continuous buffer, * so that it only needs to perform a single OS allocation (or so that a buffer @@ -86,15 +99,15 @@ typedef enum { * * Workspace Layout: * - * [ ... workspace ... ] - * [objects][tables ... ->] free space [<- ... aligned][<- ... buffers] + * [ ... workspace ... ] + * [objects][tables ->] free space [<- buffers][<- aligned][<- init once] * * The various objects that live in the workspace are divided into the * following categories, and are allocated separately: * * - Static objects: this is optionally the enclosing ZSTD_CCtx or ZSTD_CDict, * so that literally everything fits in a single buffer. Note: if present, - * this must be the first object in the workspace, since ZSTD_free{CCtx, + * this must be the first object in the workspace, since ZSTD_customFree{CCtx, * CDict}() rely on a pointer comparison to see whether one or two frees are * required. * @@ -109,10 +122,20 @@ typedef enum { * - Tables: these are any of several different datastructures (hash tables, * chain tables, binary trees) that all respect a common format: they are * uint32_t arrays, all of whose values are between 0 and (nextSrc - base). - * Their sizes depend on the cparams. + * Their sizes depend on the cparams. These tables are 64-byte aligned. + * + * - Init once: these buffers require to be initialized at least once before + * use. They should be used when we want to skip memory initialization + * while not triggering memory checkers (like Valgrind) when reading from + * from this memory without writing to it first. + * These buffers should be used carefully as they might contain data + * from previous compressions. + * Buffers are aligned to 64 bytes. * - * - Aligned: these buffers are used for various purposes that require 4 byte - * alignment, but don't require any initialization before they're used. + * - Aligned: these buffers don't require any initialization before they're + * used. The user of the buffer should make sure they write into a buffer + * location before reading from it. + * Buffers are aligned to 64 bytes. * * - Buffers: these buffers are used for various purposes that don't require * any alignment or initialization before they're used. This means they can @@ -124,9 +147,9 @@ typedef enum { * correctly packed into the workspace buffer. That order is: * * 1. Objects - * 2. Buffers - * 3. Aligned - * 4. Tables + * 2. Init once / Tables + * 3. Aligned / Tables + * 4. Buffers / Tables * * Attempts to reserve objects of different types out of order will fail. */ @@ -138,10 +161,12 @@ typedef struct { void* tableEnd; void* tableValidEnd; void* allocStart; + void* initOnceStart; - int allocFailed; + BYTE allocFailed; int workspaceOversizedDuration; ZSTD_cwksp_alloc_phase_e phase; + ZSTD_cwksp_static_alloc_e isStatic; } ZSTD_cwksp; /*-************************************* @@ -149,6 +174,7 @@ typedef struct { ***************************************/ MEM_STATIC size_t ZSTD_cwksp_available_space(ZSTD_cwksp* ws); +MEM_STATIC void* ZSTD_cwksp_initialAllocStart(ZSTD_cwksp* ws); MEM_STATIC void ZSTD_cwksp_assert_internal_consistency(ZSTD_cwksp* ws) { (void)ws; @@ -158,6 +184,21 @@ MEM_STATIC void ZSTD_cwksp_assert_internal_consistency(ZSTD_cwksp* ws) { assert(ws->tableEnd <= ws->allocStart); assert(ws->tableValidEnd <= ws->allocStart); assert(ws->allocStart <= ws->workspaceEnd); + assert(ws->initOnceStart <= ZSTD_cwksp_initialAllocStart(ws)); + assert(ws->workspace <= ws->initOnceStart); +#if ZSTD_MEMORY_SANITIZER + { + intptr_t const offset = __msan_test_shadow(ws->initOnceStart, + (U8*)ZSTD_cwksp_initialAllocStart(ws) - (U8*)ws->initOnceStart); + (void)offset; +#if defined(ZSTD_MSAN_PRINT) + if(offset!=-1) { + __msan_print_shadow((U8*)ws->initOnceStart + offset - 8, 32); + } +#endif + assert(offset==-1); + }; +#endif } /** @@ -178,63 +219,68 @@ MEM_STATIC size_t ZSTD_cwksp_align(size_t size, size_t const align) { * Since tables aren't currently redzoned, you don't need to call through this * to figure out how much space you need for the matchState tables. Everything * else is though. + * + * Do not use for sizing aligned buffers. Instead, use ZSTD_cwksp_aligned_alloc_size(). */ MEM_STATIC size_t ZSTD_cwksp_alloc_size(size_t size) { -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - return size + 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; -#else + if (size == 0) + return 0; return size; -#endif } -MEM_STATIC void ZSTD_cwksp_internal_advance_phase( - ZSTD_cwksp* ws, ZSTD_cwksp_alloc_phase_e phase) { - assert(phase >= ws->phase); - if (phase > ws->phase) { - if (ws->phase < ZSTD_cwksp_alloc_buffers && - phase >= ZSTD_cwksp_alloc_buffers) { - ws->tableValidEnd = ws->objectEnd; - } - if (ws->phase < ZSTD_cwksp_alloc_aligned && - phase >= ZSTD_cwksp_alloc_aligned) { - /* If unaligned allocations down from a too-large top have left us - * unaligned, we need to realign our alloc ptr. Technically, this - * can consume space that is unaccounted for in the neededSpace - * calculation. However, I believe this can only happen when the - * workspace is too large, and specifically when it is too large - * by a larger margin than the space that will be consumed. */ - /* TODO: cleaner, compiler warning friendly way to do this??? */ - ws->allocStart = (BYTE*)ws->allocStart - ((size_t)ws->allocStart & (sizeof(U32)-1)); - if (ws->allocStart < ws->tableValidEnd) { - ws->tableValidEnd = ws->allocStart; - } - } - ws->phase = phase; - } +/** + * Returns an adjusted alloc size that is the nearest larger multiple of 64 bytes. + * Used to determine the number of bytes required for a given "aligned". + */ +MEM_STATIC size_t ZSTD_cwksp_aligned_alloc_size(size_t size) { + return ZSTD_cwksp_alloc_size(ZSTD_cwksp_align(size, ZSTD_CWKSP_ALIGNMENT_BYTES)); } /** - * Returns whether this object/buffer/etc was allocated in this workspace. + * Returns the amount of additional space the cwksp must allocate + * for internal purposes (currently only alignment). */ -MEM_STATIC int ZSTD_cwksp_owns_buffer(const ZSTD_cwksp* ws, const void* ptr) { - return (ptr != NULL) && (ws->workspace <= ptr) && (ptr <= ws->workspaceEnd); +MEM_STATIC size_t ZSTD_cwksp_slack_space_required(void) { + /* For alignment, the wksp will always allocate an additional 2*ZSTD_CWKSP_ALIGNMENT_BYTES + * bytes to align the beginning of tables section and end of buffers; + */ + size_t const slackSpace = ZSTD_CWKSP_ALIGNMENT_BYTES * 2; + return slackSpace; } + /** - * Internal function. Do not use directly. + * Return the number of additional bytes required to align a pointer to the given number of bytes. + * alignBytes must be a power of two. */ -MEM_STATIC void* ZSTD_cwksp_reserve_internal( - ZSTD_cwksp* ws, size_t bytes, ZSTD_cwksp_alloc_phase_e phase) { - void* alloc; - void* bottom = ws->tableEnd; - ZSTD_cwksp_internal_advance_phase(ws, phase); - alloc = (BYTE *)ws->allocStart - bytes; +MEM_STATIC size_t ZSTD_cwksp_bytes_to_align_ptr(void* ptr, const size_t alignBytes) { + size_t const alignBytesMask = alignBytes - 1; + size_t const bytes = (alignBytes - ((size_t)ptr & (alignBytesMask))) & alignBytesMask; + assert((alignBytes & alignBytesMask) == 0); + assert(bytes < alignBytes); + return bytes; +} -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - /* over-reserve space */ - alloc = (BYTE *)alloc - 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; -#endif +/** + * Returns the initial value for allocStart which is used to determine the position from + * which we can allocate from the end of the workspace. + */ +MEM_STATIC void* ZSTD_cwksp_initialAllocStart(ZSTD_cwksp* ws) { + return (void*)((size_t)ws->workspaceEnd & ~(ZSTD_CWKSP_ALIGNMENT_BYTES-1)); +} +/** + * Internal function. Do not use directly. + * Reserves the given number of bytes within the aligned/buffer segment of the wksp, + * which counts from the end of the wksp (as opposed to the object/table segment). + * + * Returns a pointer to the beginning of that space. + */ +MEM_STATIC void* +ZSTD_cwksp_reserve_internal_buffer_space(ZSTD_cwksp* ws, size_t const bytes) +{ + void* const alloc = (BYTE*)ws->allocStart - bytes; + void* const bottom = ws->tableEnd; DEBUGLOG(5, "cwksp: reserving %p %zd bytes, %zd bytes remaining", alloc, bytes, ZSTD_cwksp_available_space(ws) - bytes); ZSTD_cwksp_assert_internal_consistency(ws); @@ -244,51 +290,149 @@ MEM_STATIC void* ZSTD_cwksp_reserve_internal( ws->allocFailed = 1; return NULL; } + /* the area is reserved from the end of wksp. + * If it overlaps with tableValidEnd, it voids guarantees on values' range */ if (alloc < ws->tableValidEnd) { ws->tableValidEnd = alloc; } ws->allocStart = alloc; + return alloc; +} -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - /* Move alloc so there's ZSTD_CWKSP_ASAN_REDZONE_SIZE unused space on - * either size. */ - alloc = (BYTE *)alloc + ZSTD_CWKSP_ASAN_REDZONE_SIZE; - __asan_unpoison_memory_region(alloc, bytes); -#endif +/** + * Moves the cwksp to the next phase, and does any necessary allocations. + * cwksp initialization must necessarily go through each phase in order. + * Returns a 0 on success, or zstd error + */ +MEM_STATIC size_t +ZSTD_cwksp_internal_advance_phase(ZSTD_cwksp* ws, ZSTD_cwksp_alloc_phase_e phase) +{ + assert(phase >= ws->phase); + if (phase > ws->phase) { + /* Going from allocating objects to allocating initOnce / tables */ + if (ws->phase < ZSTD_cwksp_alloc_aligned_init_once && + phase >= ZSTD_cwksp_alloc_aligned_init_once) { + ws->tableValidEnd = ws->objectEnd; + ws->initOnceStart = ZSTD_cwksp_initialAllocStart(ws); + + { /* Align the start of the tables to 64 bytes. Use [0, 63] bytes */ + void *const alloc = ws->objectEnd; + size_t const bytesToAlign = ZSTD_cwksp_bytes_to_align_ptr(alloc, ZSTD_CWKSP_ALIGNMENT_BYTES); + void *const objectEnd = (BYTE *) alloc + bytesToAlign; + DEBUGLOG(5, "reserving table alignment addtl space: %zu", bytesToAlign); + RETURN_ERROR_IF(objectEnd > ws->workspaceEnd, memory_allocation, + "table phase - alignment initial allocation failed!"); + ws->objectEnd = objectEnd; + ws->tableEnd = objectEnd; /* table area starts being empty */ + if (ws->tableValidEnd < ws->tableEnd) { + ws->tableValidEnd = ws->tableEnd; + } + } + } + ws->phase = phase; + ZSTD_cwksp_assert_internal_consistency(ws); + } + return 0; +} +/** + * Returns whether this object/buffer/etc was allocated in this workspace. + */ +MEM_STATIC int ZSTD_cwksp_owns_buffer(const ZSTD_cwksp* ws, const void* ptr) +{ + return (ptr != NULL) && (ws->workspace <= ptr) && (ptr < ws->workspaceEnd); +} + +/** + * Internal function. Do not use directly. + */ +MEM_STATIC void* +ZSTD_cwksp_reserve_internal(ZSTD_cwksp* ws, size_t bytes, ZSTD_cwksp_alloc_phase_e phase) +{ + void* alloc; + if (ZSTD_isError(ZSTD_cwksp_internal_advance_phase(ws, phase)) || bytes == 0) { + return NULL; + } + + alloc = ZSTD_cwksp_reserve_internal_buffer_space(ws, bytes); return alloc; } /** * Reserves and returns unaligned memory. */ -MEM_STATIC BYTE* ZSTD_cwksp_reserve_buffer(ZSTD_cwksp* ws, size_t bytes) { +MEM_STATIC BYTE* ZSTD_cwksp_reserve_buffer(ZSTD_cwksp* ws, size_t bytes) +{ return (BYTE*)ZSTD_cwksp_reserve_internal(ws, bytes, ZSTD_cwksp_alloc_buffers); } /** - * Reserves and returns memory sized on and aligned on sizeof(unsigned). + * Reserves and returns memory sized on and aligned on ZSTD_CWKSP_ALIGNMENT_BYTES (64 bytes). + * This memory has been initialized at least once in the past. + * This doesn't mean it has been initialized this time, and it might contain data from previous + * operations. + * The main usage is for algorithms that might need read access into uninitialized memory. + * The algorithm must maintain safety under these conditions and must make sure it doesn't + * leak any of the past data (directly or in side channels). */ -MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes) { - assert((bytes & (sizeof(U32)-1)) == 0); - return ZSTD_cwksp_reserve_internal(ws, ZSTD_cwksp_align(bytes, sizeof(U32)), ZSTD_cwksp_alloc_aligned); +MEM_STATIC void* ZSTD_cwksp_reserve_aligned_init_once(ZSTD_cwksp* ws, size_t bytes) +{ + size_t const alignedBytes = ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES); + void* ptr = ZSTD_cwksp_reserve_internal(ws, alignedBytes, ZSTD_cwksp_alloc_aligned_init_once); + assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); + if(ptr && ptr < ws->initOnceStart) { + /* We assume the memory following the current allocation is either: + * 1. Not usable as initOnce memory (end of workspace) + * 2. Another initOnce buffer that has been allocated before (and so was previously memset) + * 3. An ASAN redzone, in which case we don't want to write on it + * For these reasons it should be fine to not explicitly zero every byte up to ws->initOnceStart. + * Note that we assume here that MSAN and ASAN cannot run in the same time. */ + ZSTD_memset(ptr, 0, MIN((size_t)((U8*)ws->initOnceStart - (U8*)ptr), alignedBytes)); + ws->initOnceStart = ptr; + } +#if ZSTD_MEMORY_SANITIZER + assert(__msan_test_shadow(ptr, bytes) == -1); +#endif + return ptr; +} + +/** + * Reserves and returns memory sized on and aligned on ZSTD_CWKSP_ALIGNMENT_BYTES (64 bytes). + */ +MEM_STATIC void* ZSTD_cwksp_reserve_aligned(ZSTD_cwksp* ws, size_t bytes) +{ + void* ptr = ZSTD_cwksp_reserve_internal(ws, ZSTD_cwksp_align(bytes, ZSTD_CWKSP_ALIGNMENT_BYTES), + ZSTD_cwksp_alloc_aligned); + assert(((size_t)ptr & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); + return ptr; } /** - * Aligned on sizeof(unsigned). These buffers have the special property that - * their values remain constrained, allowing us to re-use them without + * Aligned on 64 bytes. These buffers have the special property that + * their values remain constrained, allowing us to reuse them without * memset()-ing them. */ -MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes) { - const ZSTD_cwksp_alloc_phase_e phase = ZSTD_cwksp_alloc_aligned; - void* alloc = ws->tableEnd; - void* end = (BYTE *)alloc + bytes; - void* top = ws->allocStart; +MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes) +{ + const ZSTD_cwksp_alloc_phase_e phase = ZSTD_cwksp_alloc_aligned_init_once; + void* alloc; + void* end; + void* top; + + /* We can only start allocating tables after we are done reserving space for objects at the + * start of the workspace */ + if(ws->phase < phase) { + if (ZSTD_isError(ZSTD_cwksp_internal_advance_phase(ws, phase))) { + return NULL; + } + } + alloc = ws->tableEnd; + end = (BYTE *)alloc + bytes; + top = ws->allocStart; DEBUGLOG(5, "cwksp: reserving %p table %zd bytes, %zd bytes remaining", alloc, bytes, ZSTD_cwksp_available_space(ws) - bytes); assert((bytes & (sizeof(U32)-1)) == 0); - ZSTD_cwksp_internal_advance_phase(ws, phase); ZSTD_cwksp_assert_internal_consistency(ws); assert(end <= top); if (end > top) { @@ -298,35 +442,30 @@ MEM_STATIC void* ZSTD_cwksp_reserve_table(ZSTD_cwksp* ws, size_t bytes) { } ws->tableEnd = end; -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - __asan_unpoison_memory_region(alloc, bytes); -#endif - + assert((bytes & (ZSTD_CWKSP_ALIGNMENT_BYTES-1)) == 0); + assert(((size_t)alloc & (ZSTD_CWKSP_ALIGNMENT_BYTES-1))== 0); return alloc; } /** * Aligned on sizeof(void*). + * Note : should happen only once, at workspace first initialization */ -MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) { - size_t roundedBytes = ZSTD_cwksp_align(bytes, sizeof(void*)); +MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) +{ + size_t const roundedBytes = ZSTD_cwksp_align(bytes, sizeof(void*)); void* alloc = ws->objectEnd; void* end = (BYTE*)alloc + roundedBytes; -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - /* over-reserve space */ - end = (BYTE *)end + 2 * ZSTD_CWKSP_ASAN_REDZONE_SIZE; -#endif - - DEBUGLOG(5, + DEBUGLOG(4, "cwksp: reserving %p object %zd bytes (rounded to %zd), %zd bytes remaining", alloc, bytes, roundedBytes, ZSTD_cwksp_available_space(ws) - roundedBytes); - assert(((size_t)alloc & (sizeof(void*)-1)) == 0); - assert((bytes & (sizeof(void*)-1)) == 0); + assert((size_t)alloc % ZSTD_ALIGNOF(void*) == 0); + assert(bytes % ZSTD_ALIGNOF(void*) == 0); ZSTD_cwksp_assert_internal_consistency(ws); /* we must be in the first phase, no advance is possible */ if (ws->phase != ZSTD_cwksp_alloc_objects || end > ws->workspaceEnd) { - DEBUGLOG(4, "cwksp: object alloc failed!"); + DEBUGLOG(3, "cwksp: object alloc failed!"); ws->allocFailed = 1; return NULL; } @@ -334,30 +473,13 @@ MEM_STATIC void* ZSTD_cwksp_reserve_object(ZSTD_cwksp* ws, size_t bytes) { ws->tableEnd = end; ws->tableValidEnd = end; -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - /* Move alloc so there's ZSTD_CWKSP_ASAN_REDZONE_SIZE unused space on - * either size. */ - alloc = (BYTE *)alloc + ZSTD_CWKSP_ASAN_REDZONE_SIZE; - __asan_unpoison_memory_region(alloc, bytes); -#endif - return alloc; } -MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws) { +MEM_STATIC void ZSTD_cwksp_mark_tables_dirty(ZSTD_cwksp* ws) +{ DEBUGLOG(4, "cwksp: ZSTD_cwksp_mark_tables_dirty"); -#if defined (MEMORY_SANITIZER) && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) - /* To validate that the table re-use logic is sound, and that we don't - * access table space that we haven't cleaned, we re-"poison" the table - * space every time we mark it dirty. */ - { - size_t size = (BYTE*)ws->tableValidEnd - (BYTE*)ws->objectEnd; - assert(__msan_test_shadow(ws->objectEnd, size) == -1); - __msan_poison(ws->objectEnd, size); - } -#endif - assert(ws->tableValidEnd >= ws->objectEnd); assert(ws->tableValidEnd <= ws->allocStart); ws->tableValidEnd = ws->objectEnd; @@ -382,7 +504,7 @@ MEM_STATIC void ZSTD_cwksp_clean_tables(ZSTD_cwksp* ws) { assert(ws->tableValidEnd >= ws->objectEnd); assert(ws->tableValidEnd <= ws->allocStart); if (ws->tableValidEnd < ws->tableEnd) { - memset(ws->tableValidEnd, 0, (BYTE*)ws->tableEnd - (BYTE*)ws->tableValidEnd); + ZSTD_memset(ws->tableValidEnd, 0, (size_t)((BYTE*)ws->tableEnd - (BYTE*)ws->tableValidEnd)); } ZSTD_cwksp_mark_tables_clean(ws); } @@ -394,13 +516,6 @@ MEM_STATIC void ZSTD_cwksp_clean_tables(ZSTD_cwksp* ws) { MEM_STATIC void ZSTD_cwksp_clear_tables(ZSTD_cwksp* ws) { DEBUGLOG(4, "cwksp: clearing tables!"); -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - { - size_t size = (BYTE*)ws->tableValidEnd - (BYTE*)ws->objectEnd; - __asan_poison_memory_region(ws->objectEnd, size); - } -#endif - ws->tableEnd = ws->objectEnd; ZSTD_cwksp_assert_internal_consistency(ws); } @@ -412,77 +527,66 @@ MEM_STATIC void ZSTD_cwksp_clear_tables(ZSTD_cwksp* ws) { MEM_STATIC void ZSTD_cwksp_clear(ZSTD_cwksp* ws) { DEBUGLOG(4, "cwksp: clearing!"); -#if defined (MEMORY_SANITIZER) && !defined (ZSTD_MSAN_DONT_POISON_WORKSPACE) - /* To validate that the context re-use logic is sound, and that we don't - * access stuff that this compression hasn't initialized, we re-"poison" - * the workspace (or at least the non-static, non-table parts of it) - * every time we start a new compression. */ - { - size_t size = (BYTE*)ws->workspaceEnd - (BYTE*)ws->tableValidEnd; - __msan_poison(ws->tableValidEnd, size); - } -#endif - -#if defined (ADDRESS_SANITIZER) && !defined (ZSTD_ASAN_DONT_POISON_WORKSPACE) - { - size_t size = (BYTE*)ws->workspaceEnd - (BYTE*)ws->objectEnd; - __asan_poison_memory_region(ws->objectEnd, size); - } -#endif - ws->tableEnd = ws->objectEnd; - ws->allocStart = ws->workspaceEnd; + ws->allocStart = ZSTD_cwksp_initialAllocStart(ws); ws->allocFailed = 0; - if (ws->phase > ZSTD_cwksp_alloc_buffers) { - ws->phase = ZSTD_cwksp_alloc_buffers; + if (ws->phase > ZSTD_cwksp_alloc_aligned_init_once) { + ws->phase = ZSTD_cwksp_alloc_aligned_init_once; } ZSTD_cwksp_assert_internal_consistency(ws); } +MEM_STATIC size_t ZSTD_cwksp_sizeof(const ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->workspace); +} + +MEM_STATIC size_t ZSTD_cwksp_used(const ZSTD_cwksp* ws) { + return (size_t)((BYTE*)ws->tableEnd - (BYTE*)ws->workspace) + + (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->allocStart); +} + /** * The provided workspace takes ownership of the buffer [start, start+size). * Any existing values in the workspace are ignored (the previously managed * buffer, if present, must be separately freed). */ -MEM_STATIC void ZSTD_cwksp_init(ZSTD_cwksp* ws, void* start, size_t size) { +MEM_STATIC void ZSTD_cwksp_init(ZSTD_cwksp* ws, void* start, size_t size, ZSTD_cwksp_static_alloc_e isStatic) { DEBUGLOG(4, "cwksp: init'ing workspace with %zd bytes", size); assert(((size_t)start & (sizeof(void*)-1)) == 0); /* ensure correct alignment */ ws->workspace = start; ws->workspaceEnd = (BYTE*)start + size; ws->objectEnd = ws->workspace; ws->tableValidEnd = ws->objectEnd; + ws->initOnceStart = ZSTD_cwksp_initialAllocStart(ws); ws->phase = ZSTD_cwksp_alloc_objects; + ws->isStatic = isStatic; ZSTD_cwksp_clear(ws); ws->workspaceOversizedDuration = 0; ZSTD_cwksp_assert_internal_consistency(ws); } MEM_STATIC size_t ZSTD_cwksp_create(ZSTD_cwksp* ws, size_t size, ZSTD_customMem customMem) { - void* workspace = ZSTD_malloc(size, customMem); + void* workspace = ZSTD_customMalloc(size, customMem); DEBUGLOG(4, "cwksp: creating new workspace with %zd bytes", size); RETURN_ERROR_IF(workspace == NULL, memory_allocation, "NULL pointer!"); - ZSTD_cwksp_init(ws, workspace, size); + ZSTD_cwksp_init(ws, workspace, size, ZSTD_cwksp_dynamic_alloc); return 0; } MEM_STATIC void ZSTD_cwksp_free(ZSTD_cwksp* ws, ZSTD_customMem customMem) { void *ptr = ws->workspace; DEBUGLOG(4, "cwksp: freeing workspace"); - memset(ws, 0, sizeof(ZSTD_cwksp)); - ZSTD_free(ptr, customMem); + ZSTD_memset(ws, 0, sizeof(ZSTD_cwksp)); + ZSTD_customFree(ptr, customMem); } /** * Moves the management of a workspace from one cwksp to another. The src cwksp - * is left in an invalid state (src must be re-init()'ed before its used again). + * is left in an invalid state (src must be re-init()'ed before it's used again). */ MEM_STATIC void ZSTD_cwksp_move(ZSTD_cwksp* dst, ZSTD_cwksp* src) { *dst = *src; - memset(src, 0, sizeof(ZSTD_cwksp)); -} - -MEM_STATIC size_t ZSTD_cwksp_sizeof(const ZSTD_cwksp* ws) { - return (size_t)((BYTE*)ws->workspaceEnd - (BYTE*)ws->workspace); + ZSTD_memset(src, 0, sizeof(ZSTD_cwksp)); } MEM_STATIC int ZSTD_cwksp_reserve_failed(const ZSTD_cwksp* ws) { @@ -493,6 +597,18 @@ MEM_STATIC int ZSTD_cwksp_reserve_failed(const ZSTD_cwksp* ws) { * Functions Checking Free Space ***************************************/ +/* ZSTD_alignmentSpaceWithinBounds() : + * Returns if the estimated space needed for a wksp is within an acceptable limit of the + * actual amount of space used. + */ +MEM_STATIC int ZSTD_cwksp_estimated_space_within_bounds(const ZSTD_cwksp *const ws, size_t const estimatedSpace) { + /* We have an alignment space between objects and tables between tables and buffers, so we can have up to twice + * the alignment bytes difference between estimation and actual usage */ + return (estimatedSpace - ZSTD_cwksp_slack_space_required()) <= ZSTD_cwksp_used(ws) && + ZSTD_cwksp_used(ws) <= estimatedSpace; +} + + MEM_STATIC size_t ZSTD_cwksp_available_space(ZSTD_cwksp* ws) { return (size_t)((BYTE*)ws->allocStart - (BYTE*)ws->tableEnd); } @@ -520,6 +636,6 @@ MEM_STATIC void ZSTD_cwksp_bump_oversized_duration( } } -} +} // namespace duckdb_zstd #endif /* ZSTD_CWKSP_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_double_fast.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_double_fast.h index 7991711f..c91680ab 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_double_fast.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_double_fast.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -16,8 +16,12 @@ namespace duckdb_zstd { +#ifndef ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR + void ZSTD_fillDoubleHashTable(ZSTD_matchState_t* ms, - void const* end, ZSTD_dictTableLoadMethod_e dtlm); + void const* end, ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp); + size_t ZSTD_compressBlock_doubleFast( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); @@ -28,6 +32,15 @@ size_t ZSTD_compressBlock_doubleFast_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -} +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST ZSTD_compressBlock_doubleFast +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE ZSTD_compressBlock_doubleFast_dictMatchState +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT ZSTD_compressBlock_doubleFast_extDict +#else +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST NULL +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_DOUBLEFAST_EXTDICT NULL +#endif /* ZSTD_EXCLUDE_DFAST_BLOCK_COMPRESSOR */ + +} // namespace duckdb_zstd #endif /* ZSTD_DOUBLE_FAST_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_fast.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_fast.h index a75839a0..2f7ee5b6 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_fast.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_fast.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -17,7 +17,8 @@ namespace duckdb_zstd { void ZSTD_fillHashTable(ZSTD_matchState_t* ms, - void const* end, ZSTD_dictTableLoadMethod_e dtlm); + void const* end, ZSTD_dictTableLoadMethod_e dtlm, + ZSTD_tableFillPurpose_e tfp); size_t ZSTD_compressBlock_fast( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); @@ -28,6 +29,6 @@ size_t ZSTD_compressBlock_fast_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -} +} // namespace duckdb_zstd #endif /* ZSTD_FAST_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_lazy.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_lazy.h index 555edbf1..d43882c4 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_lazy.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_lazy.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -15,49 +15,183 @@ namespace duckdb_zstd { +/** + * Dedicated Dictionary Search Structure bucket log. In the + * ZSTD_dedicatedDictSearch mode, the hashTable has + * 2 ** ZSTD_LAZY_DDSS_BUCKET_LOG entries in each bucket, rather than just + * one. + */ +#define ZSTD_LAZY_DDSS_BUCKET_LOG 2 + +#define ZSTD_ROW_HASH_TAG_BITS 8 /* nb bits to use for the tag */ + +#if !defined(ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) U32 ZSTD_insertAndFindFirstIndex(ZSTD_matchState_t* ms, const BYTE* ip); +void ZSTD_row_update(ZSTD_matchState_t* const ms, const BYTE* ip); + +void ZSTD_dedicatedDictSearch_lazy_loadDictionary(ZSTD_matchState_t* ms, const BYTE* const ip); void ZSTD_preserveUnsortedMark (U32* const table, U32 const size, U32 const reducerValue); /*! used in ZSTD_reduceIndex(). preemptively increase value of ZSTD_DUBT_UNSORTED_MARK */ +#endif -size_t ZSTD_compressBlock_btlazy2( +#ifndef ZSTD_EXCLUDE_GREEDY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_greedy( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_lazy2( +size_t ZSTD_compressBlock_greedy_row( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_lazy( +size_t ZSTD_compressBlock_greedy_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_greedy( +size_t ZSTD_compressBlock_greedy_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_extDict( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_greedy_extDict_row( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_btlazy2_dictMatchState( +#define ZSTD_COMPRESSBLOCK_GREEDY ZSTD_compressBlock_greedy +#define ZSTD_COMPRESSBLOCK_GREEDY_ROW ZSTD_compressBlock_greedy_row +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE ZSTD_compressBlock_greedy_dictMatchState +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW ZSTD_compressBlock_greedy_dictMatchState_row +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH ZSTD_compressBlock_greedy_dedicatedDictSearch +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_greedy_dedicatedDictSearch_row +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT ZSTD_compressBlock_greedy_extDict +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW ZSTD_compressBlock_greedy_extDict_row +#else +#define ZSTD_COMPRESSBLOCK_GREEDY NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_ROW NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DICTMATCHSTATE_ROW NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_DEDICATEDDICTSEARCH_ROW NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_GREEDY_EXTDICT_ROW NULL +#endif + +#ifndef ZSTD_EXCLUDE_LAZY_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_lazy2_dictMatchState( +size_t ZSTD_compressBlock_lazy_row( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); size_t ZSTD_compressBlock_lazy_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_greedy_dictMatchState( +size_t ZSTD_compressBlock_lazy_dictMatchState_row( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); - -size_t ZSTD_compressBlock_greedy_extDict( +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_dedicatedDictSearch_row( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); size_t ZSTD_compressBlock_lazy_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_LAZY ZSTD_compressBlock_lazy +#define ZSTD_COMPRESSBLOCK_LAZY_ROW ZSTD_compressBlock_lazy_row +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE ZSTD_compressBlock_lazy_dictMatchState +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy_dictMatchState_row +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy_dedicatedDictSearch +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy_dedicatedDictSearch_row +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT ZSTD_compressBlock_lazy_extDict +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW ZSTD_compressBlock_lazy_extDict_row +#else +#define ZSTD_COMPRESSBLOCK_LAZY NULL +#define ZSTD_COMPRESSBLOCK_LAZY_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DICTMATCHSTATE_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH NULL +#define ZSTD_COMPRESSBLOCK_LAZY_DEDICATEDDICTSEARCH_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_LAZY_EXTDICT_ROW NULL +#endif + +#ifndef ZSTD_EXCLUDE_LAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_lazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dictMatchState_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_dedicatedDictSearch_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); size_t ZSTD_compressBlock_lazy2_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); +size_t ZSTD_compressBlock_lazy2_extDict_row( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_LAZY2 ZSTD_compressBlock_lazy2 +#define ZSTD_COMPRESSBLOCK_LAZY2_ROW ZSTD_compressBlock_lazy2_row +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE ZSTD_compressBlock_lazy2_dictMatchState +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW ZSTD_compressBlock_lazy2_dictMatchState_row +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH ZSTD_compressBlock_lazy2_dedicatedDictSearch +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW ZSTD_compressBlock_lazy2_dedicatedDictSearch_row +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT ZSTD_compressBlock_lazy2_extDict +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW ZSTD_compressBlock_lazy2_extDict_row +#else +#define ZSTD_COMPRESSBLOCK_LAZY2 NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DICTMATCHSTATE_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_DEDICATEDDICTSEARCH_ROW NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_LAZY2_EXTDICT_ROW NULL +#endif + +#ifndef ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btlazy2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); +size_t ZSTD_compressBlock_btlazy2_dictMatchState( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); size_t ZSTD_compressBlock_btlazy2_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -} +#define ZSTD_COMPRESSBLOCK_BTLAZY2 ZSTD_compressBlock_btlazy2 +#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE ZSTD_compressBlock_btlazy2_dictMatchState +#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT ZSTD_compressBlock_btlazy2_extDict +#else +#define ZSTD_COMPRESSBLOCK_BTLAZY2 NULL +#define ZSTD_COMPRESSBLOCK_BTLAZY2_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_BTLAZY2_EXTDICT NULL +#endif + +} // namespace duckdb_zstd #endif /* ZSTD_LAZY_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm.h index d2640c77..a389c64f 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -11,17 +11,18 @@ #ifndef ZSTD_LDM_H #define ZSTD_LDM_H + #include "zstd/compress/zstd_compress_internal.h" /* ldmParams_t, U32 */ #include "zstd.h" /* ZSTD_CCtx, size_t */ +namespace duckdb_zstd { + /*-************************************* * Long distance matching ***************************************/ #define ZSTD_LDM_DEFAULT_WINDOW_LOG ZSTD_WINDOWLOG_LIMIT_DEFAULT -namespace duckdb_zstd { - void ZSTD_ldm_fillHashTable( ldmState_t* state, const BYTE* ip, const BYTE* iend, ldmParams_t const* params); @@ -64,6 +65,7 @@ size_t ZSTD_ldm_generateSequences( */ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + ZSTD_paramSwitch_e useRowMatchFinder, void const* src, size_t srcSize); /** @@ -71,11 +73,17 @@ size_t ZSTD_ldm_blockCompress(rawSeqStore_t* rawSeqStore, * * Skip past `srcSize` bytes worth of sequences in `rawSeqStore`. * Avoids emitting matches less than `minMatch` bytes. - * Must be called for data with is not passed to ZSTD_ldm_blockCompress(). + * Must be called for data that is not passed to ZSTD_ldm_blockCompress(). */ void ZSTD_ldm_skipSequences(rawSeqStore_t* rawSeqStore, size_t srcSize, U32 const minMatch); +/* ZSTD_ldm_skipRawSeqStoreBytes(): + * Moves forward in rawSeqStore by nbBytes, updating fields 'pos' and 'posInSequence'. + * Not to be used in conjunction with ZSTD_ldm_skipSequences(). + * Must be called for data with is not passed to ZSTD_ldm_blockCompress(). + */ +void ZSTD_ldm_skipRawSeqStoreBytes(rawSeqStore_t* rawSeqStore, size_t nbBytes); /** ZSTD_ldm_getTableSize() : * Estimate the space needed for long distance matching tables or 0 if LDM is @@ -101,6 +109,6 @@ size_t ZSTD_ldm_getMaxNbSeq(ldmParams_t params, size_t maxChunkSize); void ZSTD_ldm_adjustParameters(ldmParams_t* params, ZSTD_compressionParameters const* cParams); -} +} // namespace duckdb_zstd -#endif /* ZSTD_FAST_H */ +#endif /* ZSTD_LDM_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm_geartab.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm_geartab.h new file mode 100644 index 00000000..3d4b1daa --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_ldm_geartab.h @@ -0,0 +1,110 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZSTD_LDM_GEARTAB_H +#define ZSTD_LDM_GEARTAB_H + +#include "zstd/common/compiler.h" /* UNUSED_ATTR */ +#include "zstd/common/mem.h" /* U64 */ + +namespace duckdb_zstd { + +static UNUSED_ATTR const U64 ZSTD_ldm_gearTab[256] = { + 0xf5b8f72c5f77775c, 0x84935f266b7ac412, 0xb647ada9ca730ccc, + 0xb065bb4b114fb1de, 0x34584e7e8c3a9fd0, 0x4e97e17c6ae26b05, + 0x3a03d743bc99a604, 0xcecd042422c4044f, 0x76de76c58524259e, + 0x9c8528f65badeaca, 0x86563706e2097529, 0x2902475fa375d889, + 0xafb32a9739a5ebe6, 0xce2714da3883e639, 0x21eaf821722e69e, + 0x37b628620b628, 0x49a8d455d88caf5, 0x8556d711e6958140, + 0x4f7ae74fc605c1f, 0x829f0c3468bd3a20, 0x4ffdc885c625179e, + 0x8473de048a3daf1b, 0x51008822b05646b2, 0x69d75d12b2d1cc5f, + 0x8c9d4a19159154bc, 0xc3cc10f4abbd4003, 0xd06ddc1cecb97391, + 0xbe48e6e7ed80302e, 0x3481db31cee03547, 0xacc3f67cdaa1d210, + 0x65cb771d8c7f96cc, 0x8eb27177055723dd, 0xc789950d44cd94be, + 0x934feadc3700b12b, 0x5e485f11edbdf182, 0x1e2e2a46fd64767a, + 0x2969ca71d82efa7c, 0x9d46e9935ebbba2e, 0xe056b67e05e6822b, + 0x94d73f55739d03a0, 0xcd7010bdb69b5a03, 0x455ef9fcd79b82f4, + 0x869cb54a8749c161, 0x38d1a4fa6185d225, 0xb475166f94bbe9bb, + 0xa4143548720959f1, 0x7aed4780ba6b26ba, 0xd0ce264439e02312, + 0x84366d746078d508, 0xa8ce973c72ed17be, 0x21c323a29a430b01, + 0x9962d617e3af80ee, 0xab0ce91d9c8cf75b, 0x530e8ee6d19a4dbc, + 0x2ef68c0cf53f5d72, 0xc03a681640a85506, 0x496e4e9f9c310967, + 0x78580472b59b14a0, 0x273824c23b388577, 0x66bf923ad45cb553, + 0x47ae1a5a2492ba86, 0x35e304569e229659, 0x4765182a46870b6f, + 0x6cbab625e9099412, 0xddac9a2e598522c1, 0x7172086e666624f2, + 0xdf5003ca503b7837, 0x88c0c1db78563d09, 0x58d51865acfc289d, + 0x177671aec65224f1, 0xfb79d8a241e967d7, 0x2be1e101cad9a49a, + 0x6625682f6e29186b, 0x399553457ac06e50, 0x35dffb4c23abb74, + 0x429db2591f54aade, 0xc52802a8037d1009, 0x6acb27381f0b25f3, + 0xf45e2551ee4f823b, 0x8b0ea2d99580c2f7, 0x3bed519cbcb4e1e1, + 0xff452823dbb010a, 0x9d42ed614f3dd267, 0x5b9313c06257c57b, + 0xa114b8008b5e1442, 0xc1fe311c11c13d4b, 0x66e8763ea34c5568, + 0x8b982af1c262f05d, 0xee8876faaa75fbb7, 0x8a62a4d0d172bb2a, + 0xc13d94a3b7449a97, 0x6dbbba9dc15d037c, 0xc786101f1d92e0f1, + 0xd78681a907a0b79b, 0xf61aaf2962c9abb9, 0x2cfd16fcd3cb7ad9, + 0x868c5b6744624d21, 0x25e650899c74ddd7, 0xba042af4a7c37463, + 0x4eb1a539465a3eca, 0xbe09dbf03b05d5ca, 0x774e5a362b5472ba, + 0x47a1221229d183cd, 0x504b0ca18ef5a2df, 0xdffbdfbde2456eb9, + 0x46cd2b2fbee34634, 0xf2aef8fe819d98c3, 0x357f5276d4599d61, + 0x24a5483879c453e3, 0x88026889192b4b9, 0x28da96671782dbec, + 0x4ef37c40588e9aaa, 0x8837b90651bc9fb3, 0xc164f741d3f0e5d6, + 0xbc135a0a704b70ba, 0x69cd868f7622ada, 0xbc37ba89e0b9c0ab, + 0x47c14a01323552f6, 0x4f00794bacee98bb, 0x7107de7d637a69d5, + 0x88af793bb6f2255e, 0xf3c6466b8799b598, 0xc288c616aa7f3b59, + 0x81ca63cf42fca3fd, 0x88d85ace36a2674b, 0xd056bd3792389e7, + 0xe55c396c4e9dd32d, 0xbefb504571e6c0a6, 0x96ab32115e91e8cc, + 0xbf8acb18de8f38d1, 0x66dae58801672606, 0x833b6017872317fb, + 0xb87c16f2d1c92864, 0xdb766a74e58b669c, 0x89659f85c61417be, + 0xc8daad856011ea0c, 0x76a4b565b6fe7eae, 0xa469d085f6237312, + 0xaaf0365683a3e96c, 0x4dbb746f8424f7b8, 0x638755af4e4acc1, + 0x3d7807f5bde64486, 0x17be6d8f5bbb7639, 0x903f0cd44dc35dc, + 0x67b672eafdf1196c, 0xa676ff93ed4c82f1, 0x521d1004c5053d9d, + 0x37ba9ad09ccc9202, 0x84e54d297aacfb51, 0xa0b4b776a143445, + 0x820d471e20b348e, 0x1874383cb83d46dc, 0x97edeec7a1efe11c, + 0xb330e50b1bdc42aa, 0x1dd91955ce70e032, 0xa514cdb88f2939d5, + 0x2791233fd90db9d3, 0x7b670a4cc50f7a9b, 0x77c07d2a05c6dfa5, + 0xe3778b6646d0a6fa, 0xb39c8eda47b56749, 0x933ed448addbef28, + 0xaf846af6ab7d0bf4, 0xe5af208eb666e49, 0x5e6622f73534cd6a, + 0x297daeca42ef5b6e, 0x862daef3d35539a6, 0xe68722498f8e1ea9, + 0x981c53093dc0d572, 0xfa09b0bfbf86fbf5, 0x30b1e96166219f15, + 0x70e7d466bdc4fb83, 0x5a66736e35f2a8e9, 0xcddb59d2b7c1baef, + 0xd6c7d247d26d8996, 0xea4e39eac8de1ba3, 0x539c8bb19fa3aff2, + 0x9f90e4c5fd508d8, 0xa34e5956fbaf3385, 0x2e2f8e151d3ef375, + 0x173691e9b83faec1, 0xb85a8d56bf016379, 0x8382381267408ae3, + 0xb90f901bbdc0096d, 0x7c6ad32933bcec65, 0x76bb5e2f2c8ad595, + 0x390f851a6cf46d28, 0xc3e6064da1c2da72, 0xc52a0c101cfa5389, + 0xd78eaf84a3fbc530, 0x3781b9e2288b997e, 0x73c2f6dea83d05c4, + 0x4228e364c5b5ed7, 0x9d7a3edf0da43911, 0x8edcfeda24686756, + 0x5e7667a7b7a9b3a1, 0x4c4f389fa143791d, 0xb08bc1023da7cddc, + 0x7ab4be3ae529b1cc, 0x754e6132dbe74ff9, 0x71635442a839df45, + 0x2f6fb1643fbe52de, 0x961e0a42cf7a8177, 0xf3b45d83d89ef2ea, + 0xee3de4cf4a6e3e9b, 0xcd6848542c3295e7, 0xe4cee1664c78662f, + 0x9947548b474c68c4, 0x25d73777a5ed8b0b, 0xc915b1d636b7fc, + 0x21c2ba75d9b0d2da, 0x5f6b5dcf608a64a1, 0xdcf333255ff9570c, + 0x633b922418ced4ee, 0xc136dde0b004b34a, 0x58cc83b05d4b2f5a, + 0x5eb424dda28e42d2, 0x62df47369739cd98, 0xb4e0b42485e4ce17, + 0x16e1f0c1f9a8d1e7, 0x8ec3916707560ebf, 0x62ba6e2df2cc9db3, + 0xcbf9f4ff77d83a16, 0x78d9d7d07d2bbcc4, 0xef554ce1e02c41f4, + 0x8d7581127eccf94d, 0xa9b53336cb3c8a05, 0x38c42c0bf45c4f91, + 0x640893cdf4488863, 0x80ec34bc575ea568, 0x39f324f5b48eaa40, + 0xe9d9ed1f8eff527f, 0x9224fc058cc5a214, 0xbaba00b04cfe7741, + 0x309a9f120fcf52af, 0xa558f3ec65626212, 0x424bec8b7adabe2f, + 0x41622513a6aea433, 0xb88da2d5324ca798, 0xd287733b245528a4, + 0x9a44697e6d68aec3, 0x7b1093be2f49bb28, 0x50bbec632e3d8aad, + 0x6cd90723e1ea8283, 0x897b9e7431b02bf3, 0x219efdcb338a7047, + 0x3b0311f0a27c0656, 0xdb17bf91c0db96e7, 0x8cd4fd6b4e85a5b2, + 0xfab071054ba6409d, 0x40d6fe831fa9dfd9, 0xaf358debad7d791e, + 0xeb8d0e25a65e3e58, 0xbbcbd3df14e08580, 0xcf751f27ecdab2b, + 0x2b4da14f2613d8f4 +}; + +} // namespace duckdb_zstd + +#endif /* ZSTD_LDM_GEARTAB_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_opt.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_opt.h index b0d7bc3e..e2d45826 100644 --- a/src/duckdb/third_party/zstd/include/zstd/compress/zstd_opt.h +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstd_opt.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -15,30 +15,40 @@ namespace duckdb_zstd { +#if !defined(ZSTD_EXCLUDE_BTLAZY2_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR) \ + || !defined(ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR) /* used in ZSTD_loadDictionaryContent() */ void ZSTD_updateTree(ZSTD_matchState_t* ms, const BYTE* ip, const BYTE* iend); +#endif +#ifndef ZSTD_EXCLUDE_BTOPT_BLOCK_COMPRESSOR size_t ZSTD_compressBlock_btopt( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_btultra( +size_t ZSTD_compressBlock_btopt_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); -size_t ZSTD_compressBlock_btultra2( +size_t ZSTD_compressBlock_btopt_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); +#define ZSTD_COMPRESSBLOCK_BTOPT ZSTD_compressBlock_btopt +#define ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE ZSTD_compressBlock_btopt_dictMatchState +#define ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT ZSTD_compressBlock_btopt_extDict +#else +#define ZSTD_COMPRESSBLOCK_BTOPT NULL +#define ZSTD_COMPRESSBLOCK_BTOPT_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_BTOPT_EXTDICT NULL +#endif -size_t ZSTD_compressBlock_btopt_dictMatchState( +#ifndef ZSTD_EXCLUDE_BTULTRA_BLOCK_COMPRESSOR +size_t ZSTD_compressBlock_btultra( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); size_t ZSTD_compressBlock_btultra_dictMatchState( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); - -size_t ZSTD_compressBlock_btopt_extDict( - ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], - void const* src, size_t srcSize); size_t ZSTD_compressBlock_btultra_extDict( ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], void const* src, size_t srcSize); @@ -46,7 +56,21 @@ size_t ZSTD_compressBlock_btultra_extDict( /* note : no btultra2 variant for extDict nor dictMatchState, * because btultra2 is not meant to work with dictionaries * and is only specific for the first block (no prefix) */ +size_t ZSTD_compressBlock_btultra2( + ZSTD_matchState_t* ms, seqStore_t* seqStore, U32 rep[ZSTD_REP_NUM], + void const* src, size_t srcSize); + +#define ZSTD_COMPRESSBLOCK_BTULTRA ZSTD_compressBlock_btultra +#define ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE ZSTD_compressBlock_btultra_dictMatchState +#define ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT ZSTD_compressBlock_btultra_extDict +#define ZSTD_COMPRESSBLOCK_BTULTRA2 ZSTD_compressBlock_btultra2 +#else +#define ZSTD_COMPRESSBLOCK_BTULTRA NULL +#define ZSTD_COMPRESSBLOCK_BTULTRA_DICTMATCHSTATE NULL +#define ZSTD_COMPRESSBLOCK_BTULTRA_EXTDICT NULL +#define ZSTD_COMPRESSBLOCK_BTULTRA2 NULL +#endif -} +} // namespace duckdb_zstd #endif /* ZSTD_OPT_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/compress/zstdmt_compress.h b/src/duckdb/third_party/zstd/include/zstd/compress/zstdmt_compress.h new file mode 100644 index 00000000..99f7757d --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/compress/zstdmt_compress.h @@ -0,0 +1,107 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + + #ifndef ZSTDMT_COMPRESS_H + #define ZSTDMT_COMPRESS_H + +/* Note : This is an internal API. + * These APIs used to be exposed with ZSTDLIB_API, + * because it used to be the only way to invoke MT compression. + * Now, you must use ZSTD_compress2 and ZSTD_compressStream2() instead. + * + * This API requires ZSTD_MULTITHREAD to be defined during compilation, + * otherwise ZSTDMT_createCCtx*() will fail. + */ + +/* === Dependencies === */ +#include "zstd/common/zstd_deps.h" /* size_t */ +#define ZSTD_STATIC_LINKING_ONLY /* ZSTD_parameters */ +#include "zstd.h" /* ZSTD_inBuffer, ZSTD_outBuffer, ZSTDLIB_API */ + +namespace duckdb_zstd { + +/* === Constants === */ +#ifndef ZSTDMT_NBWORKERS_MAX /* a different value can be selected at compile time */ +# define ZSTDMT_NBWORKERS_MAX ((sizeof(void*)==4) /*32-bit*/ ? 64 : 256) +#endif +#ifndef ZSTDMT_JOBSIZE_MIN /* a different value can be selected at compile time */ +# define ZSTDMT_JOBSIZE_MIN (512 KB) +#endif +#define ZSTDMT_JOBLOG_MAX (MEM_32bits() ? 29 : 30) +#define ZSTDMT_JOBSIZE_MAX (MEM_32bits() ? (512 MB) : (1024 MB)) + + +/* ======================================================== + * === Private interface, for use by ZSTD_compress.c === + * === Not exposed in libzstd. Never invoke directly === + * ======================================================== */ + +/* === Memory management === */ +typedef struct ZSTDMT_CCtx_s ZSTDMT_CCtx; +/* Requires ZSTD_MULTITHREAD to be defined during compilation, otherwise it will return NULL. */ +ZSTDMT_CCtx* ZSTDMT_createCCtx_advanced(unsigned nbWorkers, + ZSTD_customMem cMem, + ZSTD_threadPool *pool); +size_t ZSTDMT_freeCCtx(ZSTDMT_CCtx* mtctx); + +size_t ZSTDMT_sizeof_CCtx(ZSTDMT_CCtx* mtctx); + +/* === Streaming functions === */ + +size_t ZSTDMT_nextInputSizeHint(const ZSTDMT_CCtx* mtctx); + +/*! ZSTDMT_initCStream_internal() : + * Private use only. Init streaming operation. + * expects params to be valid. + * must receive dict, or cdict, or none, but not both. + * mtctx can be freshly constructed or reused from a prior compression. + * If mtctx is reused, memory allocations from the prior compression may not be freed, + * even if they are not needed for the current compression. + * @return : 0, or an error code */ +size_t ZSTDMT_initCStream_internal(ZSTDMT_CCtx* mtctx, + const void* dict, size_t dictSize, ZSTD_dictContentType_e dictContentType, + const ZSTD_CDict* cdict, + ZSTD_CCtx_params params, unsigned long long pledgedSrcSize); + +/*! ZSTDMT_compressStream_generic() : + * Combines ZSTDMT_compressStream() with optional ZSTDMT_flushStream() or ZSTDMT_endStream() + * depending on flush directive. + * @return : minimum amount of data still to be flushed + * 0 if fully flushed + * or an error code + * note : needs to be init using any ZSTD_initCStream*() variant */ +size_t ZSTDMT_compressStream_generic(ZSTDMT_CCtx* mtctx, + ZSTD_outBuffer* output, + ZSTD_inBuffer* input, + ZSTD_EndDirective endOp); + + /*! ZSTDMT_toFlushNow() + * Tell how many bytes are ready to be flushed immediately. + * Probe the oldest active job (not yet entirely flushed) and check its output buffer. + * If return 0, it means there is no active job, + * or, it means oldest job is still active, but everything produced has been flushed so far, + * therefore flushing is limited by speed of oldest job. */ +size_t ZSTDMT_toFlushNow(ZSTDMT_CCtx* mtctx); + +/*! ZSTDMT_updateCParams_whileCompressing() : + * Updates only a selected set of compression parameters, to remain compatible with current frame. + * New parameters will be applied to next compression job. */ +void ZSTDMT_updateCParams_whileCompressing(ZSTDMT_CCtx* mtctx, const ZSTD_CCtx_params* cctxParams); + +/*! ZSTDMT_getFrameProgression(): + * tells how much data has been consumed (input) and produced (output) for current frame. + * able to count progression inside worker threads. + */ +ZSTD_frameProgression ZSTDMT_getFrameProgression(ZSTDMT_CCtx* mtctx); + + +} // namespace duckdb_zstd + +#endif /* ZSTDMT_COMPRESS_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_ddict.h b/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_ddict.h index a95f384f..7dc64793 100644 --- a/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_ddict.h +++ b/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_ddict.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -15,10 +15,11 @@ /*-******************************************************* * Dependencies *********************************************************/ -#include /* size_t */ +#include "zstd/common/zstd_deps.h" /* size_t */ #include "zstd.h" /* ZSTD_DDict, and several public functions */ namespace duckdb_zstd { + /*-******************************************************* * Interface *********************************************************/ @@ -39,6 +40,6 @@ size_t ZSTD_DDict_dictSize(const ZSTD_DDict* ddict); void ZSTD_copyDDictParameters(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict); -} +} // namespace duckdb_zstd #endif /* ZSTD_DDICT_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_block.h b/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_block.h index 46d4a210..7131a0d9 100644 --- a/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_block.h +++ b/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_block.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -15,7 +15,7 @@ /*-******************************************************* * Dependencies *********************************************************/ -#include /* size_t */ +#include "zstd/common/zstd_deps.h" /* size_t */ #include "zstd.h" /* DCtx, and some public functions */ #include "zstd/common/zstd_internal.h" /* blockProperties_t, and some public functions */ #include "zstd/decompress/zstd_decompress_internal.h" /* ZSTD_seqSymbol */ @@ -34,6 +34,12 @@ namespace duckdb_zstd { */ + /* Streaming state is used to inform allocation of the literal buffer */ +typedef enum { + not_streaming = 0, + is_streaming = 1 +} streaming_operation; + /* ZSTD_decompressBlock_internal() : * decompress block, starting at `src`, * into destination buffer `dst`. @@ -42,20 +48,28 @@ namespace duckdb_zstd { */ size_t ZSTD_decompressBlock_internal(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, - const void* src, size_t srcSize, const int frame); + const void* src, size_t srcSize, const streaming_operation streaming); /* ZSTD_buildFSETable() : * generate FSE decoding table for one symbol (ll, ml or off) * this function must be called with valid parameters only * (dt is large enough, normalizedCounter distribution total is a power of 2, max is within range, etc.) * in which case it cannot fail. + * The workspace must be 4-byte aligned and at least ZSTD_BUILD_FSE_TABLE_WKSP_SIZE bytes, which is + * defined in zstd_decompress_internal.h. * Internal use only. */ void ZSTD_buildFSETable(ZSTD_seqSymbol* dt, const short* normalizedCounter, unsigned maxSymbolValue, - const U32* baseValue, const U32* nbAdditionalBits, - unsigned tableLog); + const U32* baseValue, const U8* nbAdditionalBits, + unsigned tableLog, void* wksp, size_t wkspSize, + int bmi2); + +/* Internal definition of ZSTD_decompressBlock() to avoid deprecation warnings. */ +size_t ZSTD_decompressBlock_deprecated(ZSTD_DCtx* dctx, + void* dst, size_t dstCapacity, + const void* src, size_t srcSize); -} +} // namespace duckdb_zstd #endif /* ZSTD_DEC_BLOCK_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_internal.h b/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_internal.h index 6ff422e2..0f7e198e 100644 --- a/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_internal.h +++ b/src/duckdb/third_party/zstd/include/zstd/decompress/zstd_decompress_internal.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -20,19 +20,40 @@ * Dependencies *********************************************************/ #include "zstd/common/mem.h" /* BYTE, U16, U32 */ -#include "zstd/common/zstd_internal.h" /* ZSTD_seqSymbol */ +#include "zstd/common/zstd_internal.h" /* constants : MaxLL, MaxML, MaxOff, LLFSELog, etc. */ namespace duckdb_zstd { /*-******************************************************* * Constants *********************************************************/ -struct ZSTDConstants { - static const U32 LL_base[MaxLL+1]; - static const U32 OF_base[MaxOff+1]; - static const U32 OF_bits[MaxOff+1]; - static const U32 ML_base[MaxML+1]; -}; +static UNUSED_ATTR const U32 LL_base[MaxLL+1] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 18, 20, 22, 24, 28, 32, 40, + 48, 64, 0x80, 0x100, 0x200, 0x400, 0x800, 0x1000, + 0x2000, 0x4000, 0x8000, 0x10000 }; + +static UNUSED_ATTR const U32 OF_base[MaxOff+1] = { + 0, 1, 1, 5, 0xD, 0x1D, 0x3D, 0x7D, + 0xFD, 0x1FD, 0x3FD, 0x7FD, 0xFFD, 0x1FFD, 0x3FFD, 0x7FFD, + 0xFFFD, 0x1FFFD, 0x3FFFD, 0x7FFFD, 0xFFFFD, 0x1FFFFD, 0x3FFFFD, 0x7FFFFD, + 0xFFFFFD, 0x1FFFFFD, 0x3FFFFFD, 0x7FFFFFD, 0xFFFFFFD, 0x1FFFFFFD, 0x3FFFFFFD, 0x7FFFFFFD }; + +static UNUSED_ATTR const U8 OF_bits[MaxOff+1] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31 }; + +static UNUSED_ATTR const U32 ML_base[MaxML+1] = { + 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, + 35, 37, 39, 41, 43, 47, 51, 59, + 67, 83, 99, 0x83, 0x103, 0x203, 0x403, 0x803, + 0x1003, 0x2003, 0x4003, 0x8003, 0x10003 }; /*-******************************************************* @@ -52,12 +73,17 @@ struct ZSTDConstants { #define SEQSYMBOL_TABLE_SIZE(log) (1 + (1 << (log))) +#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE (sizeof(S16) * (MaxSeq + 1) + (1u << MaxFSELog) + sizeof(U64)) +#define ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32 ((ZSTD_BUILD_FSE_TABLE_WKSP_SIZE + sizeof(U32) - 1) / sizeof(U32)) +#define ZSTD_HUFFDTABLE_CAPACITY_LOG 12 + typedef struct { ZSTD_seqSymbol LLTable[SEQSYMBOL_TABLE_SIZE(LLFSELog)]; /* Note : Space reserved for FSE Tables */ ZSTD_seqSymbol OFTable[SEQSYMBOL_TABLE_SIZE(OffFSELog)]; /* is also used as temporary workspace while building hufTable during DDict creation */ ZSTD_seqSymbol MLTable[SEQSYMBOL_TABLE_SIZE(MLFSELog)]; /* and therefore must be at least HUF_DECOMPRESS_WORKSPACE_SIZE large */ - HUF_DTable hufTable[HUF_DTABLE_SIZE(HufLog)]; /* can accommodate HUF_decompress4X */ + HUF_DTable hufTable[HUF_DTABLE_SIZE(ZSTD_HUFFDTABLE_CAPACITY_LOG)]; /* can accommodate HUF_decompress4X */ U32 rep[ZSTD_REP_NUM]; + U32 workspace[ZSTD_BUILD_FSE_TABLE_WKSP_SIZE_U32]; } ZSTD_entropyDTables_t; typedef enum { ZSTDds_getFrameHeaderSize, ZSTDds_decodeFrameHeader, @@ -74,10 +100,28 @@ typedef enum { ZSTD_use_once = 1 /* Use the dictionary once and set to ZSTD_dont_use */ } ZSTD_dictUses_e; +/* Hashset for storing references to multiple ZSTD_DDict within ZSTD_DCtx */ +typedef struct { + const ZSTD_DDict** ddictPtrTable; + size_t ddictPtrTableSize; + size_t ddictPtrCount; +} ZSTD_DDictHashSet; + +#ifndef ZSTD_DECODER_INTERNAL_BUFFER +# define ZSTD_DECODER_INTERNAL_BUFFER (1 << 16) +#endif + +#define ZSTD_LBMIN 64 +#define ZSTD_LBMAX (128 << 10) + +/* extra buffer, compensates when dst is not large enough to store litBuffer */ +#define ZSTD_LITBUFFEREXTRASIZE BOUNDED(ZSTD_LBMIN, ZSTD_DECODER_INTERNAL_BUFFER, ZSTD_LBMAX) + typedef enum { - ZSTD_obm_buffered = 0, /* Buffer the output */ - ZSTD_obm_stable = 1 /* ZSTD_outBuffer is stable */ -} ZSTD_outBufferMode_e; + ZSTD_not_in_dst = 0, /* Stored entirely within litExtraBuffer */ + ZSTD_in_dst = 1, /* Stored entirely within dst (in memory after current output write) */ + ZSTD_split = 2 /* Split between litExtraBuffer and dst */ +} ZSTD_litLocation_e; struct ZSTD_DCtx_s { @@ -93,6 +137,7 @@ struct ZSTD_DCtx_s const void* dictEnd; /* end of previous segment */ size_t expected; ZSTD_frameHeader fParams; + U64 processedCSize; U64 decodedSize; blockType_e bType; /* used in ZSTD_decompressContinue(), store blockType between block header decoding and block decompression stages */ ZSTD_dStage stage; @@ -101,12 +146,17 @@ struct ZSTD_DCtx_s XXH64_state_t xxhState; size_t headerSize; ZSTD_format_e format; + ZSTD_forceIgnoreChecksum_e forceIgnoreChecksum; /* User specified: if == 1, will ignore checksums in compressed frame. Default == 0 */ + U32 validateChecksum; /* if == 1, will validate checksum. Is == 1 if (fParams.checksumFlag == 1) and (forceIgnoreChecksum == 0). */ const BYTE* litPtr; ZSTD_customMem customMem; size_t litSize; size_t rleSize; size_t staticSize; + int isFrameDecompression; +#if DYNAMIC_BMI2 != 0 int bmi2; /* == 1 if the CPU supports BMI2 and 0 otherwise. CPU support is determined dynamically once per context lifetime. */ +#endif /* dictionary */ ZSTD_DDict* ddictLocal; @@ -114,6 +164,10 @@ struct ZSTD_DCtx_s U32 dictID; int ddictIsCold; /* if == 1 : dictionary is "new" for working context, and presumed "cold" (not in cpu cache) */ ZSTD_dictUses_e dictUses; + ZSTD_DDictHashSet* ddictSet; /* Hash set for multiple ddicts */ + ZSTD_refMultipleDDicts_e refMultipleDDicts; /* User specified: if == 1, will allow references to multiple DDicts. Default == 0 (disabled) */ + int disableHufAsm; + int maxBlockSizeParam; /* streaming */ ZSTD_dStreamStage streamStage; @@ -126,16 +180,21 @@ struct ZSTD_DCtx_s size_t outStart; size_t outEnd; size_t lhSize; +#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT>=1) void* legacyContext; U32 previousLegacyVersion; U32 legacyVersion; +#endif U32 hostageByte; int noForwardProgress; - ZSTD_outBufferMode_e outBufferMode; + ZSTD_bufferMode_e outBufferMode; ZSTD_outBuffer expectedOutBuffer; /* workspace */ - BYTE litBuffer[ZSTD_BLOCKSIZE_MAX + WILDCOPY_OVERLENGTH]; + BYTE* litBuffer; + const BYTE* litBufferEnd; + ZSTD_litLocation_e litBufferLocation; + BYTE litExtraBuffer[ZSTD_LITBUFFEREXTRASIZE + WILDCOPY_OVERLENGTH]; /* literal buffer can be split between storage within dst and within this scratch buffer */ BYTE headerBuffer[ZSTD_FRAMEHEADERSIZE_MAX]; size_t oversizedDuration; @@ -144,8 +203,21 @@ struct ZSTD_DCtx_s void const* dictContentBeginForFuzzing; void const* dictContentEndForFuzzing; #endif + + /* Tracing */ +#if ZSTD_TRACE + ZSTD_TraceCtx traceCtx; +#endif }; /* typedef'd to ZSTD_DCtx within "zstd.h" */ +MEM_STATIC int ZSTD_DCtx_get_bmi2(const struct ZSTD_DCtx_s *dctx) { +#if DYNAMIC_BMI2 != 0 + return dctx->bmi2; +#else + (void)dctx; + return 0; +#endif +} /*-******************************************************* * Shared internal functions @@ -162,8 +234,8 @@ size_t ZSTD_loadDEntropy(ZSTD_entropyDTables_t* entropy, * If yes, do nothing (continue on current segment). * If not, classify previous segment as "external dictionary", and start a new segment. * This function cannot fail. */ -void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst); +void ZSTD_checkContinuity(ZSTD_DCtx* dctx, const void* dst, size_t dstSize); -} +} // namespace duckdb_zstd #endif /* ZSTD_DECOMPRESS_INTERNAL_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/deprecated/zbuff.h b/src/duckdb/third_party/zstd/include/zstd/deprecated/zbuff.h new file mode 100644 index 00000000..04c75ef1 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/deprecated/zbuff.h @@ -0,0 +1,214 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +/* *************************************************************** +* NOTES/WARNINGS +******************************************************************/ +/* The streaming API defined here is deprecated. + * Consider migrating towards ZSTD_compressStream() API in `zstd.h` + * See 'lib/README.md'. + *****************************************************************/ + +#ifndef ZSTD_BUFFERED_H_23987 +#define ZSTD_BUFFERED_H_23987 + +/* ************************************* +* Dependencies +***************************************/ +// DuckDB: just enable everything +#define ZSTD_STATIC_LINKING_ONLY + +#include /* size_t */ +#include "zstd.h" /* ZSTD_CStream, ZSTD_DStream, ZSTDLIB_API */ + +namespace duckdb_zstd { + +/* *************************************************************** +* Compiler specifics +*****************************************************************/ +/* Deprecation warnings */ +/* Should these warnings be a problem, + * it is generally possible to disable them, + * typically with -Wno-deprecated-declarations for gcc + * or _CRT_SECURE_NO_WARNINGS in Visual. + * Otherwise, it's also possible to define ZBUFF_DISABLE_DEPRECATE_WARNINGS + */ +#ifdef ZBUFF_DISABLE_DEPRECATE_WARNINGS +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API /* disable deprecation warnings */ +#else +# if defined (__cplusplus) && (__cplusplus >= 201402) /* C++14 or greater */ +# define ZBUFF_DEPRECATED(message) [[deprecated(message)]] ZSTDLIB_API +# elif (defined(GNUC) && (GNUC > 4 || (GNUC == 4 && GNUC_MINOR >= 5))) || defined(__clang__) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated(message))) +# elif defined(__GNUC__) && (__GNUC__ >= 3) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __attribute__((deprecated)) +# elif defined(_MSC_VER) +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API __declspec(deprecated(message)) +# else +# pragma message("WARNING: You need to implement ZBUFF_DEPRECATED for this compiler") +# define ZBUFF_DEPRECATED(message) ZSTDLIB_API +# endif +#endif /* ZBUFF_DISABLE_DEPRECATE_WARNINGS */ + + +/* ************************************* +* Streaming functions +***************************************/ +/* This is the easier "buffered" streaming API, +* using an internal buffer to lift all restrictions on user-provided buffers +* which can be any size, any place, for both input and output. +* ZBUFF and ZSTD are 100% interoperable, +* frames created by one can be decoded by the other one */ + +typedef ZSTD_CStream ZBUFF_CCtx; +ZBUFF_DEPRECATED("use ZSTD_createCStream") ZBUFF_CCtx* ZBUFF_createCCtx(void); +ZBUFF_DEPRECATED("use ZSTD_freeCStream") size_t ZBUFF_freeCCtx(ZBUFF_CCtx* cctx); + +ZBUFF_DEPRECATED("use ZSTD_initCStream") size_t ZBUFF_compressInit(ZBUFF_CCtx* cctx, int compressionLevel); +ZBUFF_DEPRECATED("use ZSTD_initCStream_usingDict") size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel); + +ZBUFF_DEPRECATED("use ZSTD_compressStream") size_t ZBUFF_compressContinue(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr, const void* src, size_t* srcSizePtr); +ZBUFF_DEPRECATED("use ZSTD_flushStream") size_t ZBUFF_compressFlush(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr); +ZBUFF_DEPRECATED("use ZSTD_endStream") size_t ZBUFF_compressEnd(ZBUFF_CCtx* cctx, void* dst, size_t* dstCapacityPtr); + +/*-************************************************* +* Streaming compression - howto +* +* A ZBUFF_CCtx object is required to track streaming operation. +* Use ZBUFF_createCCtx() and ZBUFF_freeCCtx() to create/release resources. +* ZBUFF_CCtx objects can be reused multiple times. +* +* Start by initializing ZBUF_CCtx. +* Use ZBUFF_compressInit() to start a new compression operation. +* Use ZBUFF_compressInitDictionary() for a compression which requires a dictionary. +* +* Use ZBUFF_compressContinue() repetitively to consume input stream. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written within *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to present again remaining data. +* The content of `dst` will be overwritten (up to *dstCapacityPtr) at each call, so save its content if it matters or change @dst . +* @return : a hint to preferred nb of bytes to use as input for next function call (it's just a hint, to improve latency) +* or an error code, which can be tested using ZBUFF_isError(). +* +* At any moment, it's possible to flush whatever data remains within buffer, using ZBUFF_compressFlush(). +* The nb of bytes written into `dst` will be reported into *dstCapacityPtr. +* Note that the function cannot output more than *dstCapacityPtr, +* therefore, some content might still be left into internal buffer if *dstCapacityPtr is too small. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* ZBUFF_compressEnd() instructs to finish a frame. +* It will perform a flush and write frame epilogue. +* The epilogue is required for decoders to consider a frame completed. +* Similar to ZBUFF_compressFlush(), it may not be able to output the entire internal buffer content if *dstCapacityPtr is too small. +* In which case, call again ZBUFF_compressFlush() to complete the flush. +* @return : nb of bytes still present into internal buffer (0 if it's empty) +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : _recommended buffer_ sizes (not compulsory) : ZBUFF_recommendedCInSize() / ZBUFF_recommendedCOutSize() +* input : ZBUFF_recommendedCInSize==128 KB block size is the internal unit, use this value to reduce intermediate stages (better latency) +* output : ZBUFF_recommendedCOutSize==ZSTD_compressBound(128 KB) + 3 + 3 : ensures it's always possible to write/flush/end a full block. Skip some buffering. +* By using both, it ensures that input will be entirely consumed, and output will always contain the result, reducing intermediate buffering. +* **************************************************/ + + +typedef ZSTD_DStream ZBUFF_DCtx; +ZBUFF_DEPRECATED("use ZSTD_createDStream") ZBUFF_DCtx* ZBUFF_createDCtx(void); +ZBUFF_DEPRECATED("use ZSTD_freeDStream") size_t ZBUFF_freeDCtx(ZBUFF_DCtx* dctx); + +ZBUFF_DEPRECATED("use ZSTD_initDStream") size_t ZBUFF_decompressInit(ZBUFF_DCtx* dctx); +ZBUFF_DEPRECATED("use ZSTD_initDStream_usingDict") size_t ZBUFF_decompressInitDictionary(ZBUFF_DCtx* dctx, const void* dict, size_t dictSize); + +ZBUFF_DEPRECATED("use ZSTD_decompressStream") size_t ZBUFF_decompressContinue(ZBUFF_DCtx* dctx, + void* dst, size_t* dstCapacityPtr, + const void* src, size_t* srcSizePtr); + +/*-*************************************************************************** +* Streaming decompression howto +* +* A ZBUFF_DCtx object is required to track streaming operations. +* Use ZBUFF_createDCtx() and ZBUFF_freeDCtx() to create/release resources. +* Use ZBUFF_decompressInit() to start a new decompression operation, +* or ZBUFF_decompressInitDictionary() if decompression requires a dictionary. +* Note that ZBUFF_DCtx objects can be re-init multiple times. +* +* Use ZBUFF_decompressContinue() repetitively to consume your input. +* *srcSizePtr and *dstCapacityPtr can be any size. +* The function will report how many bytes were read or written by modifying *srcSizePtr and *dstCapacityPtr. +* Note that it may not consume the entire input, in which case it's up to the caller to present remaining input again. +* The content of `dst` will be overwritten (up to *dstCapacityPtr) at each function call, so save its content if it matters, or change `dst`. +* @return : 0 when a frame is completely decoded and fully flushed, +* 1 when there is still some data left within internal buffer to flush, +* >1 when more data is expected, with value being a suggested next input size (it's just a hint, which helps latency), +* or an error code, which can be tested using ZBUFF_isError(). +* +* Hint : recommended buffer sizes (not compulsory) : ZBUFF_recommendedDInSize() and ZBUFF_recommendedDOutSize() +* output : ZBUFF_recommendedDOutSize== 128 KB block size is the internal unit, it ensures it's always possible to write a full block when decoded. +* input : ZBUFF_recommendedDInSize == 128KB + 3; +* just follow indications from ZBUFF_decompressContinue() to minimize latency. It should always be <= 128 KB + 3 . +* *******************************************************************************/ + + +/* ************************************* +* Tool functions +***************************************/ +ZBUFF_DEPRECATED("use ZSTD_isError") unsigned ZBUFF_isError(size_t errorCode); +ZBUFF_DEPRECATED("use ZSTD_getErrorName") const char* ZBUFF_getErrorName(size_t errorCode); + +/** Functions below provide recommended buffer sizes for Compression or Decompression operations. +* These sizes are just hints, they tend to offer better latency */ +ZBUFF_DEPRECATED("use ZSTD_CStreamInSize") size_t ZBUFF_recommendedCInSize(void); +ZBUFF_DEPRECATED("use ZSTD_CStreamOutSize") size_t ZBUFF_recommendedCOutSize(void); +ZBUFF_DEPRECATED("use ZSTD_DStreamInSize") size_t ZBUFF_recommendedDInSize(void); +ZBUFF_DEPRECATED("use ZSTD_DStreamOutSize") size_t ZBUFF_recommendedDOutSize(void); + +} // namespace duckdb_zstd + +#endif /* ZSTD_BUFFERED_H_23987 */ + +#ifdef ZBUFF_STATIC_LINKING_ONLY +# ifndef ZBUFF_STATIC_H_30298098432 +# define ZBUFF_STATIC_H_30298098432 + +/* ==================================================================================== + * The definitions in this section are considered experimental. + * They should never be used in association with a dynamic library, as they may change in the future. + * They are provided for advanced usages. + * Use them only in association with static linking. + * ==================================================================================== */ + + +/*--- Dependency ---*/ +// DuckDB: comment out otherwise amalgamation won't be happy +// # define ZSTD_STATIC_LINKING_ONLY /* ZSTD_parameters, ZSTD_customMem */ +// #include "zstd.h" + +namespace duckdb_zstd { + +/*--- Custom memory allocator ---*/ +/*! ZBUFF_createCCtx_advanced() : + * Create a ZBUFF compression context using external alloc and free functions */ +ZBUFF_DEPRECATED("use ZSTD_createCStream_advanced") ZBUFF_CCtx* ZBUFF_createCCtx_advanced(ZSTD_customMem customMem); + +/*! ZBUFF_createDCtx_advanced() : + * Create a ZBUFF decompression context using external alloc and free functions */ +ZBUFF_DEPRECATED("use ZSTD_createDStream_advanced") ZBUFF_DCtx* ZBUFF_createDCtx_advanced(ZSTD_customMem customMem); + + +/*--- Advanced Streaming Initialization ---*/ +ZBUFF_DEPRECATED("use ZSTD_initDStream_usingDict") size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, + const void* dict, size_t dictSize, + ZSTD_parameters params, unsigned long long pledgedSrcSize); + +} // namespace duckdb_zstd + +# endif /* ZBUFF_STATIC_H_30298098432 */ +#endif /* ZBUFF_STATIC_LINKING_ONLY */ + diff --git a/src/duckdb/third_party/zstd/include/zstd/dict/cover.h b/src/duckdb/third_party/zstd/include/zstd/dict/cover.h new file mode 100644 index 00000000..dd458ce5 --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/dict/cover.h @@ -0,0 +1,156 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * All rights reserved. + * + * This source code is licensed under both the BSD-style license (found in the + * LICENSE file in the root directory of this source tree) and the GPLv2 (found + * in the COPYING file in the root directory of this source tree). + * You may select, at your option, one of the above-listed licenses. + */ + +#ifndef ZDICT_STATIC_LINKING_ONLY +# define ZDICT_STATIC_LINKING_ONLY +#endif + +#include "zstd/common/threading.h" /* ZSTD_pthread_mutex_t */ +#include "zstd/common/mem.h" /* U32, BYTE */ +#include "zdict.h" + +namespace duckdb_zstd { + +/** + * COVER_best_t is used for two purposes: + * 1. Synchronizing threads. + * 2. Saving the best parameters and dictionary. + * + * All of the methods except COVER_best_init() are thread safe if zstd is + * compiled with multithreaded support. + */ +typedef struct COVER_best_s { + ZSTD_pthread_mutex_t mutex; + ZSTD_pthread_cond_t cond; + size_t liveJobs; + void *dict; + size_t dictSize; + ZDICT_cover_params_t parameters; + size_t compressedSize; +} COVER_best_t; + +/** + * A segment is a range in the source as well as the score of the segment. + */ +typedef struct { + U32 begin; + U32 end; + U32 score; +} COVER_segment_t; + +/** + *Number of epochs and size of each epoch. + */ +typedef struct { + U32 num; + U32 size; +} COVER_epoch_info_t; + +/** + * Struct used for the dictionary selection function. + */ +typedef struct COVER_dictSelection { + BYTE* dictContent; + size_t dictSize; + size_t totalCompressedSize; +} COVER_dictSelection_t; + +/** + * Computes the number of epochs and the size of each epoch. + * We will make sure that each epoch gets at least 10 * k bytes. + * + * The COVER algorithms divide the data up into epochs of equal size and + * select one segment from each epoch. + * + * @param maxDictSize The maximum allowed dictionary size. + * @param nbDmers The number of dmers we are training on. + * @param k The parameter k (segment size). + * @param passes The target number of passes over the dmer corpus. + * More passes means a better dictionary. + */ +COVER_epoch_info_t COVER_computeEpochs(U32 maxDictSize, U32 nbDmers, + U32 k, U32 passes); + +/** + * Warns the user when their corpus is too small. + */ +void COVER_warnOnSmallCorpus(size_t maxDictSize, size_t nbDmers, int displayLevel); + +/** + * Checks total compressed size of a dictionary + */ +size_t COVER_checkTotalCompressedSize(const ZDICT_cover_params_t parameters, + const size_t *samplesSizes, const BYTE *samples, + size_t *offsets, + size_t nbTrainSamples, size_t nbSamples, + BYTE *const dict, size_t dictBufferCapacity); + +/** + * Returns the sum of the sample sizes. + */ +size_t COVER_sum(const size_t *samplesSizes, unsigned nbSamples) ; + +/** + * Initialize the `COVER_best_t`. + */ +void COVER_best_init(COVER_best_t *best); + +/** + * Wait until liveJobs == 0. + */ +void COVER_best_wait(COVER_best_t *best); + +/** + * Call COVER_best_wait() and then destroy the COVER_best_t. + */ +void COVER_best_destroy(COVER_best_t *best); + +/** + * Called when a thread is about to be launched. + * Increments liveJobs. + */ +void COVER_best_start(COVER_best_t *best); + +/** + * Called when a thread finishes executing, both on error or success. + * Decrements liveJobs and signals any waiting threads if liveJobs == 0. + * If this dictionary is the best so far save it and its parameters. + */ +void COVER_best_finish(COVER_best_t *best, ZDICT_cover_params_t parameters, + COVER_dictSelection_t selection); +/** + * Error function for COVER_selectDict function. Checks if the return + * value is an error. + */ +unsigned COVER_dictSelectionIsError(COVER_dictSelection_t selection); + + /** + * Error function for COVER_selectDict function. Returns a struct where + * return.totalCompressedSize is a ZSTD error. + */ +COVER_dictSelection_t COVER_dictSelectionError(size_t error); + +/** + * Always call after selectDict is called to free up used memory from + * newly created dictionary. + */ +void COVER_dictSelectionFree(COVER_dictSelection_t selection); + +/** + * Called to finalize the dictionary and select one based on whether or not + * the shrink-dict flag was enabled. If enabled the dictionary used is the + * smallest dictionary within a specified regression of the compressed size + * from the largest dictionary. + */ + COVER_dictSelection_t COVER_selectDict(BYTE* customDictContent, size_t dictBufferCapacity, + size_t dictContentSize, const BYTE* samplesBuffer, const size_t* samplesSizes, unsigned nbFinalizeSamples, + size_t nbCheckSamples, size_t nbSamples, ZDICT_cover_params_t params, size_t* offsets, size_t totalCompressedSize); + +} // namespace duckdb_zstd diff --git a/src/duckdb/third_party/zstd/include/zstd/dict/divsufsort.h b/src/duckdb/third_party/zstd/include/zstd/dict/divsufsort.h new file mode 100644 index 00000000..4f7cbdee --- /dev/null +++ b/src/duckdb/third_party/zstd/include/zstd/dict/divsufsort.h @@ -0,0 +1,62 @@ +/* + * divsufsort.h for libdivsufsort-lite + * Copyright (c) 2003-2008 Yuta Mori All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person + * obtaining a copy of this software and associated documentation + * files (the "Software"), to deal in the Software without + * restriction, including without limitation the rights to use, + * copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following + * conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES + * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT + * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, + * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. + */ + +#ifndef _DIVSUFSORT_H +#define _DIVSUFSORT_H 1 + +namespace duckdb_zstd { + +/*- Prototypes -*/ + +/** + * Constructs the suffix array of a given string. + * @param T [0..n-1] The input string. + * @param SA [0..n-1] The output array of suffixes. + * @param n The length of the given string. + * @param openMP enables OpenMP optimization. + * @return 0 if no error occurred, -1 or -2 otherwise. + */ +int +divsufsort(const unsigned char *T, int *SA, int n, int openMP); + +/** + * Constructs the burrows-wheeler transformed string of a given string. + * @param T [0..n-1] The input string. + * @param U [0..n-1] The output string. (can be T) + * @param A [0..n-1] The temporary array. (can be NULL) + * @param n The length of the given string. + * @param num_indexes The length of secondary indexes array. (can be NULL) + * @param indexes The secondary indexes array. (can be NULL) + * @param openMP enables OpenMP optimization. + * @return The primary index if no error occurred, -1 or -2 otherwise. + */ +int +divbwt(const unsigned char *T, unsigned char *U, int *A, int n, unsigned char * num_indexes, int * indexes, int openMP); + + +} // namespace duckdb_zstd + +#endif /* _DIVSUFSORT_H */ diff --git a/src/duckdb/third_party/zstd/include/zstd/common/zstd_errors.h b/src/duckdb/third_party/zstd/include/zstd_errors.h similarity index 73% rename from src/duckdb/third_party/zstd/include/zstd/common/zstd_errors.h rename to src/duckdb/third_party/zstd/include/zstd_errors.h index a719982b..401f6700 100644 --- a/src/duckdb/third_party/zstd/include/zstd/common/zstd_errors.h +++ b/src/duckdb/third_party/zstd/include/zstd_errors.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2020, Yann Collet, Facebook, Inc. + * Copyright (c) Meta Platforms, Inc. and affiliates. * All rights reserved. * * This source code is licensed under both the BSD-style license (found in the @@ -14,23 +14,36 @@ /*===== dependency =====*/ #include /* size_t */ +namespace duckdb_zstd { /* ===== ZSTDERRORLIB_API : control library symbols visibility ===== */ -#ifndef ZSTDERRORLIB_VISIBILITY -# if defined(__GNUC__) && (__GNUC__ >= 4) -# define ZSTDERRORLIB_VISIBILITY __attribute__ ((visibility ("default"))) +#ifndef ZSTDERRORLIB_VISIBLE + /* Backwards compatibility with old macro name */ +# ifdef ZSTDERRORLIB_VISIBILITY +# define ZSTDERRORLIB_VISIBLE ZSTDERRORLIB_VISIBILITY +# elif defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) +# define ZSTDERRORLIB_VISIBLE __attribute__ ((visibility ("default"))) +# else +# define ZSTDERRORLIB_VISIBLE +# endif +#endif + +#ifndef ZSTDERRORLIB_HIDDEN +# if defined(__GNUC__) && (__GNUC__ >= 4) && !defined(__MINGW32__) +# define ZSTDERRORLIB_HIDDEN __attribute__ ((visibility ("hidden"))) # else -# define ZSTDERRORLIB_VISIBILITY +# define ZSTDERRORLIB_HIDDEN # endif #endif + #if defined(ZSTD_DLL_EXPORT) && (ZSTD_DLL_EXPORT==1) -# define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBILITY +# define ZSTDERRORLIB_API __declspec(dllexport) ZSTDERRORLIB_VISIBLE #elif defined(ZSTD_DLL_IMPORT) && (ZSTD_DLL_IMPORT==1) -# define ZSTDERRORLIB_API __declspec(dllimport) ZSTDERRORLIB_VISIBILITY /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ +# define ZSTDERRORLIB_API __declspec(dllimport) ZSTDERRORLIB_VISIBLE /* It isn't required but allows to generate better code, saving a function pointer load from the IAT and an indirect jump.*/ #else -# define ZSTDERRORLIB_API ZSTDERRORLIB_VISIBILITY +# define ZSTDERRORLIB_API ZSTDERRORLIB_VISIBLE #endif -namespace duckdb_zstd { + /*-********************************************* * Error codes list *-********************************************* @@ -54,14 +67,17 @@ typedef enum { ZSTD_error_frameParameter_windowTooLarge = 16, ZSTD_error_corruption_detected = 20, ZSTD_error_checksum_wrong = 22, + ZSTD_error_literals_headerWrong = 24, ZSTD_error_dictionary_corrupted = 30, ZSTD_error_dictionary_wrong = 32, ZSTD_error_dictionaryCreation_failed = 34, ZSTD_error_parameter_unsupported = 40, + ZSTD_error_parameter_combination_unsupported = 41, ZSTD_error_parameter_outOfBound = 42, ZSTD_error_tableLog_tooLarge = 44, ZSTD_error_maxSymbolValue_tooLarge = 46, ZSTD_error_maxSymbolValue_tooSmall = 48, + ZSTD_error_stabilityCondition_notRespected = 50, ZSTD_error_stage_wrong = 60, ZSTD_error_init_missing = 62, ZSTD_error_memory_allocation = 64, @@ -69,10 +85,15 @@ typedef enum { ZSTD_error_dstSize_tooSmall = 70, ZSTD_error_srcSize_wrong = 72, ZSTD_error_dstBuffer_null = 74, + ZSTD_error_noForwardProgress_destFull = 80, + ZSTD_error_noForwardProgress_inputEmpty = 82, /* following error codes are __NOT STABLE__, they can be removed or changed in future versions */ ZSTD_error_frameIndex_tooLarge = 100, ZSTD_error_seekableIO = 102, ZSTD_error_dstBuffer_wrong = 104, + ZSTD_error_srcBuffer_wrong = 105, + ZSTD_error_sequenceProducer_failed = 106, + ZSTD_error_externalSequences_invalid = 107, ZSTD_error_maxCode = 120 /* never EVER use this value directly, it can change in future versions! Use ZSTD_isError() instead */ } ZSTD_ErrorCode; @@ -82,6 +103,7 @@ typedef enum { ZSTDERRORLIB_API ZSTD_ErrorCode ZSTD_getErrorCode(size_t functionResult); ZSTDERRORLIB_API const char* ZSTD_getErrorString(ZSTD_ErrorCode code); /**< Same as ZSTD_getErrorName, but using a `ZSTD_ErrorCode` enum argument */ -} + +} // namespace duckdb_zstd #endif /* ZSTD_ERRORS_H_398273423 */ diff --git a/src/duckdb/third_party/zstd/include/zstd_static.h b/src/duckdb/third_party/zstd/include/zstd_static.h deleted file mode 100644 index e4f1f3b0..00000000 --- a/src/duckdb/third_party/zstd/include/zstd_static.h +++ /dev/null @@ -1,1070 +0,0 @@ - -/* ************************************************************************************** - * ADVANCED AND EXPERIMENTAL FUNCTIONS - **************************************************************************************** - * The definitions in the following section are considered experimental. - * They are provided for advanced scenarios. - * They should never be used with a dynamic library, as prototypes may change in the future. - * Use them only in association with static linking. - * ***************************************************************************************/ - -#ifndef ZSTD_H_ZSTD_STATIC_LINKING_ONLY -#define ZSTD_H_ZSTD_STATIC_LINKING_ONLY - -namespace duckdb_zstd { - -/**************************************************************************************** - * experimental API (static linking only) - **************************************************************************************** - * The following symbols and constants - * are not planned to join "stable API" status in the near future. - * They can still change in future versions. - * Some of them are planned to remain in the static_only section indefinitely. - * Some of them might be removed in the future (especially when redundant with existing stable functions) - * ***************************************************************************************/ - -#define ZSTD_FRAMEHEADERSIZE_PREFIX(format) ((format) == ZSTD_f_zstd1 ? 5 : 1) /* minimum input size required to query frame header size */ -#define ZSTD_FRAMEHEADERSIZE_MIN(format) ((format) == ZSTD_f_zstd1 ? 6 : 2) -#define ZSTD_FRAMEHEADERSIZE_MAX 18 /* can be useful for static allocation */ -#define ZSTD_SKIPPABLEHEADERSIZE 8 - -/* compression parameter bounds */ -#define ZSTD_WINDOWLOG_MAX_32 30 -#define ZSTD_WINDOWLOG_MAX_64 31 -#define ZSTD_WINDOWLOG_MAX ((int)(sizeof(size_t) == 4 ? ZSTD_WINDOWLOG_MAX_32 : ZSTD_WINDOWLOG_MAX_64)) -#define ZSTD_WINDOWLOG_MIN 10 -#define ZSTD_HASHLOG_MAX ((ZSTD_WINDOWLOG_MAX < 30) ? ZSTD_WINDOWLOG_MAX : 30) -#define ZSTD_HASHLOG_MIN 6 -#define ZSTD_CHAINLOG_MAX_32 29 -#define ZSTD_CHAINLOG_MAX_64 30 -#define ZSTD_CHAINLOG_MAX ((int)(sizeof(size_t) == 4 ? ZSTD_CHAINLOG_MAX_32 : ZSTD_CHAINLOG_MAX_64)) -#define ZSTD_CHAINLOG_MIN ZSTD_HASHLOG_MIN -#define ZSTD_SEARCHLOG_MAX (ZSTD_WINDOWLOG_MAX-1) -#define ZSTD_SEARCHLOG_MIN 1 -#define ZSTD_MINMATCH_MAX 7 /* only for ZSTD_fast, other strategies are limited to 6 */ -#define ZSTD_MINMATCH_MIN 3 /* only for ZSTD_btopt+, faster strategies are limited to 4 */ -#define ZSTD_TARGETLENGTH_MAX ZSTD_BLOCKSIZE_MAX -#define ZSTD_TARGETLENGTH_MIN 0 /* note : comparing this constant to an unsigned results in a tautological test */ -#define ZSTD_STRATEGY_MIN ZSTD_fast -#define ZSTD_STRATEGY_MAX ZSTD_btultra2 - - -#define ZSTD_OVERLAPLOG_MIN 0 -#define ZSTD_OVERLAPLOG_MAX 9 - -#define ZSTD_WINDOWLOG_LIMIT_DEFAULT 27 /* by default, the streaming decoder will refuse any frame - * requiring larger than (1< 3, then this is seqDef.offset - 3 - * If seqDef.offset < 3, then this is the corresponding repeat offset - * But if seqDef.offset < 3 and litLength == 0, this is the - * repeat offset before the corresponding repeat offset - * And if seqDef.offset == 3 and litLength == 0, this is the - * most recent repeat offset - 1 - */ - unsigned int offset; - unsigned int litLength; /* Literal length */ - unsigned int matchLength; /* Match length */ - /* 0 when seq not rep and seqDef.offset otherwise - * when litLength == 0 this will be <= 4, otherwise <= 3 like normal - */ - unsigned int rep; -} ZSTD_Sequence; - -typedef struct { - unsigned windowLog; /**< largest match distance : larger == more compression, more memory needed during decompression */ - unsigned chainLog; /**< fully searched segment : larger == more compression, slower, more memory (useless for fast) */ - unsigned hashLog; /**< dispatch table : larger == faster, more memory */ - unsigned searchLog; /**< nb of searches : larger == more compression, slower */ - unsigned minMatch; /**< match length searched : larger == faster decompression, sometimes less compression */ - unsigned targetLength; /**< acceptable match size for optimal parser (only) : larger == more compression, slower */ - ZSTD_strategy strategy; /**< see ZSTD_strategy definition above */ -} ZSTD_compressionParameters; - -typedef struct { - int contentSizeFlag; /**< 1: content size will be in frame header (when known) */ - int checksumFlag; /**< 1: generate a 32-bits checksum using XXH64 algorithm at end of frame, for error detection */ - int noDictIDFlag; /**< 1: no dictID will be saved into frame header (dictID is only useful for dictionary compression) */ -} ZSTD_frameParameters; - -typedef struct { - ZSTD_compressionParameters cParams; - ZSTD_frameParameters fParams; -} ZSTD_parameters; - -typedef enum { - ZSTD_dct_auto = 0, /* dictionary is "full" when starting with ZSTD_MAGIC_DICTIONARY, otherwise it is "rawContent" */ - ZSTD_dct_rawContent = 1, /* ensures dictionary is always loaded as rawContent, even if it starts with ZSTD_MAGIC_DICTIONARY */ - ZSTD_dct_fullDict = 2 /* refuses to load a dictionary if it does not respect Zstandard's specification, starting with ZSTD_MAGIC_DICTIONARY */ -} ZSTD_dictContentType_e; - -typedef enum { - ZSTD_dlm_byCopy = 0, /**< Copy dictionary content internally */ - ZSTD_dlm_byRef = 1 /**< Reference dictionary content -- the dictionary buffer must outlive its users. */ -} ZSTD_dictLoadMethod_e; - -typedef enum { - ZSTD_f_zstd1 = 0, /* zstd frame format, specified in zstd_compression_format.md (default) */ - ZSTD_f_zstd1_magicless = 1 /* Variant of zstd frame format, without initial 4-bytes magic number. - * Useful to save 4 bytes per generated frame. - * Decoder cannot recognise automatically this format, requiring this instruction. */ -} ZSTD_format_e; - -typedef enum { - /* Note: this enum and the behavior it controls are effectively internal - * implementation details of the compressor. They are expected to continue - * to evolve and should be considered only in the context of extremely - * advanced performance tuning. - * - * Zstd currently supports the use of a CDict in three ways: - * - * - The contents of the CDict can be copied into the working context. This - * means that the compression can search both the dictionary and input - * while operating on a single set of internal tables. This makes - * the compression faster per-byte of input. However, the initial copy of - * the CDict's tables incurs a fixed cost at the beginning of the - * compression. For small compressions (< 8 KB), that copy can dominate - * the cost of the compression. - * - * - The CDict's tables can be used in-place. In this model, compression is - * slower per input byte, because the compressor has to search two sets of - * tables. However, this model incurs no start-up cost (as long as the - * working context's tables can be reused). For small inputs, this can be - * faster than copying the CDict's tables. - * - * - The CDict's tables are not used at all, and instead we use the working - * context alone to reload the dictionary and use params based on the source - * size. See ZSTD_compress_insertDictionary() and ZSTD_compress_usingDict(). - * This method is effective when the dictionary sizes are very small relative - * to the input size, and the input size is fairly large to begin with. - * - * Zstd has a simple internal heuristic that selects which strategy to use - * at the beginning of a compression. However, if experimentation shows that - * Zstd is making poor choices, it is possible to override that choice with - * this enum. - */ - ZSTD_dictDefaultAttach = 0, /* Use the default heuristic. */ - ZSTD_dictForceAttach = 1, /* Never copy the dictionary. */ - ZSTD_dictForceCopy = 2, /* Always copy the dictionary. */ - ZSTD_dictForceLoad = 3 /* Always reload the dictionary */ -} ZSTD_dictAttachPref_e; - -typedef enum { - ZSTD_lcm_auto = 0, /**< Automatically determine the compression mode based on the compression level. - * Negative compression levels will be uncompressed, and positive compression - * levels will be compressed. */ - ZSTD_lcm_huffman = 1, /**< Always attempt Huffman compression. Uncompressed literals will still be - * emitted if Huffman compression is not profitable. */ - ZSTD_lcm_uncompressed = 2 /**< Always emit uncompressed literals. */ -} ZSTD_literalCompressionMode_e; - - -/*************************************** -* Frame size functions -***************************************/ - -/*! ZSTD_findDecompressedSize() : - * `src` should point to the start of a series of ZSTD encoded and/or skippable frames - * `srcSize` must be the _exact_ size of this series - * (i.e. there should be a frame boundary at `src + srcSize`) - * @return : - decompressed size of all data in all successive frames - * - if the decompressed size cannot be determined: ZSTD_CONTENTSIZE_UNKNOWN - * - if an error occurred: ZSTD_CONTENTSIZE_ERROR - * - * note 1 : decompressed size is an optional field, that may not be present, especially in streaming mode. - * When `return==ZSTD_CONTENTSIZE_UNKNOWN`, data to decompress could be any size. - * In which case, it's necessary to use streaming mode to decompress data. - * note 2 : decompressed size is always present when compression is done with ZSTD_compress() - * note 3 : decompressed size can be very large (64-bits value), - * potentially larger than what local system can handle as a single memory segment. - * In which case, it's necessary to use streaming mode to decompress data. - * note 4 : If source is untrusted, decompressed size could be wrong or intentionally modified. - * Always ensure result fits within application's authorized limits. - * Each application can set its own limits. - * note 5 : ZSTD_findDecompressedSize handles multiple frames, and so it must traverse the input to - * read each contained frame header. This is fast as most of the data is skipped, - * however it does mean that all frame data must be present and valid. */ -ZSTDLIB_API unsigned long long ZSTD_findDecompressedSize(const void* src, size_t srcSize); - -/*! ZSTD_decompressBound() : - * `src` should point to the start of a series of ZSTD encoded and/or skippable frames - * `srcSize` must be the _exact_ size of this series - * (i.e. there should be a frame boundary at `src + srcSize`) - * @return : - upper-bound for the decompressed size of all data in all successive frames - * - if an error occured: ZSTD_CONTENTSIZE_ERROR - * - * note 1 : an error can occur if `src` contains an invalid or incorrectly formatted frame. - * note 2 : the upper-bound is exact when the decompressed size field is available in every ZSTD encoded frame of `src`. - * in this case, `ZSTD_findDecompressedSize` and `ZSTD_decompressBound` return the same value. - * note 3 : when the decompressed size field isn't available, the upper-bound for that frame is calculated by: - * upper-bound = # blocks * min(128 KB, Window_Size) - */ -ZSTDLIB_API unsigned long long ZSTD_decompressBound(const void* src, size_t srcSize); - -/*! ZSTD_frameHeaderSize() : - * srcSize must be >= ZSTD_FRAMEHEADERSIZE_PREFIX. - * @return : size of the Frame Header, - * or an error code (if srcSize is too small) */ -ZSTDLIB_API size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize); - -/*! ZSTD_getSequences() : - * Extract sequences from the sequence store - * zc can be used to insert custom compression params. - * This function invokes ZSTD_compress2 - * @return : number of sequences extracted - */ -ZSTDLIB_API size_t ZSTD_getSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, - size_t outSeqsSize, const void* src, size_t srcSize); - - -/*************************************** -* Memory management -***************************************/ - -/*! ZSTD_estimate*() : - * These functions make it possible to estimate memory usage - * of a future {D,C}Ctx, before its creation. - * - * ZSTD_estimateCCtxSize() will provide a memory budget large enough - * for any compression level up to selected one. - * Note : Unlike ZSTD_estimateCStreamSize*(), this estimate - * does not include space for a window buffer. - * Therefore, the estimation is only guaranteed for single-shot compressions, not streaming. - * The estimate will assume the input may be arbitrarily large, - * which is the worst case. - * - * When srcSize can be bound by a known and rather "small" value, - * this fact can be used to provide a tighter estimation - * because the CCtx compression context will need less memory. - * This tighter estimation can be provided by more advanced functions - * ZSTD_estimateCCtxSize_usingCParams(), which can be used in tandem with ZSTD_getCParams(), - * and ZSTD_estimateCCtxSize_usingCCtxParams(), which can be used in tandem with ZSTD_CCtxParams_setParameter(). - * Both can be used to estimate memory using custom compression parameters and arbitrary srcSize limits. - * - * Note 2 : only single-threaded compression is supported. - * ZSTD_estimateCCtxSize_usingCCtxParams() will return an error code if ZSTD_c_nbWorkers is >= 1. - */ -ZSTDLIB_API size_t ZSTD_estimateCCtxSize(int compressionLevel); -ZSTDLIB_API size_t ZSTD_estimateCCtxSize_usingCParams(ZSTD_compressionParameters cParams); -ZSTDLIB_API size_t ZSTD_estimateCCtxSize_usingCCtxParams(const ZSTD_CCtx_params* params); -ZSTDLIB_API size_t ZSTD_estimateDCtxSize(void); - -/*! ZSTD_estimateCStreamSize() : - * ZSTD_estimateCStreamSize() will provide a budget large enough for any compression level up to selected one. - * It will also consider src size to be arbitrarily "large", which is worst case. - * If srcSize is known to always be small, ZSTD_estimateCStreamSize_usingCParams() can provide a tighter estimation. - * ZSTD_estimateCStreamSize_usingCParams() can be used in tandem with ZSTD_getCParams() to create cParams from compressionLevel. - * ZSTD_estimateCStreamSize_usingCCtxParams() can be used in tandem with ZSTD_CCtxParams_setParameter(). Only single-threaded compression is supported. This function will return an error code if ZSTD_c_nbWorkers is >= 1. - * Note : CStream size estimation is only correct for single-threaded compression. - * ZSTD_DStream memory budget depends on window Size. - * This information can be passed manually, using ZSTD_estimateDStreamSize, - * or deducted from a valid frame Header, using ZSTD_estimateDStreamSize_fromFrame(); - * Note : if streaming is init with function ZSTD_init?Stream_usingDict(), - * an internal ?Dict will be created, which additional size is not estimated here. - * In this case, get total size by adding ZSTD_estimate?DictSize */ -ZSTDLIB_API size_t ZSTD_estimateCStreamSize(int compressionLevel); -ZSTDLIB_API size_t ZSTD_estimateCStreamSize_usingCParams(ZSTD_compressionParameters cParams); -ZSTDLIB_API size_t ZSTD_estimateCStreamSize_usingCCtxParams(const ZSTD_CCtx_params* params); -ZSTDLIB_API size_t ZSTD_estimateDStreamSize(size_t windowSize); -ZSTDLIB_API size_t ZSTD_estimateDStreamSize_fromFrame(const void* src, size_t srcSize); - -/*! ZSTD_estimate?DictSize() : - * ZSTD_estimateCDictSize() will bet that src size is relatively "small", and content is copied, like ZSTD_createCDict(). - * ZSTD_estimateCDictSize_advanced() makes it possible to control compression parameters precisely, like ZSTD_createCDict_advanced(). - * Note : dictionaries created by reference (`ZSTD_dlm_byRef`) are logically smaller. - */ -ZSTDLIB_API size_t ZSTD_estimateCDictSize(size_t dictSize, int compressionLevel); -ZSTDLIB_API size_t ZSTD_estimateCDictSize_advanced(size_t dictSize, ZSTD_compressionParameters cParams, ZSTD_dictLoadMethod_e dictLoadMethod); -ZSTDLIB_API size_t ZSTD_estimateDDictSize(size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod); - -/*! ZSTD_initStatic*() : - * Initialize an object using a pre-allocated fixed-size buffer. - * workspace: The memory area to emplace the object into. - * Provided pointer *must be 8-bytes aligned*. - * Buffer must outlive object. - * workspaceSize: Use ZSTD_estimate*Size() to determine - * how large workspace must be to support target scenario. - * @return : pointer to object (same address as workspace, just different type), - * or NULL if error (size too small, incorrect alignment, etc.) - * Note : zstd will never resize nor malloc() when using a static buffer. - * If the object requires more memory than available, - * zstd will just error out (typically ZSTD_error_memory_allocation). - * Note 2 : there is no corresponding "free" function. - * Since workspace is allocated externally, it must be freed externally too. - * Note 3 : cParams : use ZSTD_getCParams() to convert a compression level - * into its associated cParams. - * Limitation 1 : currently not compatible with internal dictionary creation, triggered by - * ZSTD_CCtx_loadDictionary(), ZSTD_initCStream_usingDict() or ZSTD_initDStream_usingDict(). - * Limitation 2 : static cctx currently not compatible with multi-threading. - * Limitation 3 : static dctx is incompatible with legacy support. - */ -ZSTDLIB_API ZSTD_CCtx* ZSTD_initStaticCCtx(void* workspace, size_t workspaceSize); -ZSTDLIB_API ZSTD_CStream* ZSTD_initStaticCStream(void* workspace, size_t workspaceSize); /**< same as ZSTD_initStaticCCtx() */ - -ZSTDLIB_API ZSTD_DCtx* ZSTD_initStaticDCtx(void* workspace, size_t workspaceSize); -ZSTDLIB_API ZSTD_DStream* ZSTD_initStaticDStream(void* workspace, size_t workspaceSize); /**< same as ZSTD_initStaticDCtx() */ - -ZSTDLIB_API const ZSTD_CDict* ZSTD_initStaticCDict( - void* workspace, size_t workspaceSize, - const void* dict, size_t dictSize, - ZSTD_dictLoadMethod_e dictLoadMethod, - ZSTD_dictContentType_e dictContentType, - ZSTD_compressionParameters cParams); - -ZSTDLIB_API const ZSTD_DDict* ZSTD_initStaticDDict( - void* workspace, size_t workspaceSize, - const void* dict, size_t dictSize, - ZSTD_dictLoadMethod_e dictLoadMethod, - ZSTD_dictContentType_e dictContentType); - - -/*! Custom memory allocation : - * These prototypes make it possible to pass your own allocation/free functions. - * ZSTD_customMem is provided at creation time, using ZSTD_create*_advanced() variants listed below. - * All allocation/free operations will be completed using these custom variants instead of regular ones. - */ -typedef void* (*ZSTD_allocFunction) (void* opaque, size_t size); -typedef void (*ZSTD_freeFunction) (void* opaque, void* address); -typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction customFree; void* opaque; } ZSTD_customMem; - -ZSTDLIB_API ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem); -ZSTDLIB_API ZSTD_CStream* ZSTD_createCStream_advanced(ZSTD_customMem customMem); -ZSTDLIB_API ZSTD_DCtx* ZSTD_createDCtx_advanced(ZSTD_customMem customMem); -ZSTDLIB_API ZSTD_DStream* ZSTD_createDStream_advanced(ZSTD_customMem customMem); - -ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_advanced(const void* dict, size_t dictSize, - ZSTD_dictLoadMethod_e dictLoadMethod, - ZSTD_dictContentType_e dictContentType, - ZSTD_compressionParameters cParams, - ZSTD_customMem customMem); - -ZSTDLIB_API ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize, - ZSTD_dictLoadMethod_e dictLoadMethod, - ZSTD_dictContentType_e dictContentType, - ZSTD_customMem customMem); - - - -/*************************************** -* Advanced compression functions -***************************************/ - -/*! ZSTD_createCDict_byReference() : - * Create a digested dictionary for compression - * Dictionary content is just referenced, not duplicated. - * As a consequence, `dictBuffer` **must** outlive CDict, - * and its content must remain unmodified throughout the lifetime of CDict. - * note: equivalent to ZSTD_createCDict_advanced(), with dictLoadMethod==ZSTD_dlm_byRef */ -ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_byReference(const void* dictBuffer, size_t dictSize, int compressionLevel); - -/*! ZSTD_getCParams() : - * @return ZSTD_compressionParameters structure for a selected compression level and estimated srcSize. - * `estimatedSrcSize` value is optional, select 0 if not known */ -ZSTDLIB_API ZSTD_compressionParameters ZSTD_getCParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize); - -/*! ZSTD_getParams() : - * same as ZSTD_getCParams(), but @return a full `ZSTD_parameters` object instead of sub-component `ZSTD_compressionParameters`. - * All fields of `ZSTD_frameParameters` are set to default : contentSize=1, checksum=0, noDictID=0 */ -ZSTDLIB_API ZSTD_parameters ZSTD_getParams(int compressionLevel, unsigned long long estimatedSrcSize, size_t dictSize); - -/*! ZSTD_checkCParams() : - * Ensure param values remain within authorized range. - * @return 0 on success, or an error code (can be checked with ZSTD_isError()) */ -ZSTDLIB_API size_t ZSTD_checkCParams(ZSTD_compressionParameters params); - -/*! ZSTD_adjustCParams() : - * optimize params for a given `srcSize` and `dictSize`. - * `srcSize` can be unknown, in which case use ZSTD_CONTENTSIZE_UNKNOWN. - * `dictSize` must be `0` when there is no dictionary. - * cPar can be invalid : all parameters will be clamped within valid range in the @return struct. - * This function never fails (wide contract) */ -ZSTDLIB_API ZSTD_compressionParameters ZSTD_adjustCParams(ZSTD_compressionParameters cPar, unsigned long long srcSize, size_t dictSize); - -/*! ZSTD_compress_advanced() : - * Note : this function is now DEPRECATED. - * It can be replaced by ZSTD_compress2(), in combination with ZSTD_CCtx_setParameter() and other parameter setters. - * This prototype will be marked as deprecated and generate compilation warning on reaching v1.5.x */ -ZSTDLIB_API size_t ZSTD_compress_advanced(ZSTD_CCtx* cctx, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize, - const void* dict,size_t dictSize, - ZSTD_parameters params); - -/*! ZSTD_compress_usingCDict_advanced() : - * Note : this function is now REDUNDANT. - * It can be replaced by ZSTD_compress2(), in combination with ZSTD_CCtx_loadDictionary() and other parameter setters. - * This prototype will be marked as deprecated and generate compilation warning in some future version */ -ZSTDLIB_API size_t ZSTD_compress_usingCDict_advanced(ZSTD_CCtx* cctx, - void* dst, size_t dstCapacity, - const void* src, size_t srcSize, - const ZSTD_CDict* cdict, - ZSTD_frameParameters fParams); - - -/*! ZSTD_CCtx_loadDictionary_byReference() : - * Same as ZSTD_CCtx_loadDictionary(), but dictionary content is referenced, instead of being copied into CCtx. - * It saves some memory, but also requires that `dict` outlives its usage within `cctx` */ -ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary_byReference(ZSTD_CCtx* cctx, const void* dict, size_t dictSize); - -/*! ZSTD_CCtx_loadDictionary_advanced() : - * Same as ZSTD_CCtx_loadDictionary(), but gives finer control over - * how to load the dictionary (by copy ? by reference ?) - * and how to interpret it (automatic ? force raw mode ? full mode only ?) */ -ZSTDLIB_API size_t ZSTD_CCtx_loadDictionary_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType); - -/*! ZSTD_CCtx_refPrefix_advanced() : - * Same as ZSTD_CCtx_refPrefix(), but gives finer control over - * how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) */ -ZSTDLIB_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType); - -/* === experimental parameters === */ -/* these parameters can be used with ZSTD_setParameter() - * they are not guaranteed to remain supported in the future */ - - /* Enables rsyncable mode, - * which makes compressed files more rsync friendly - * by adding periodic synchronization points to the compressed data. - * The target average block size is ZSTD_c_jobSize / 2. - * It's possible to modify the job size to increase or decrease - * the granularity of the synchronization point. - * Once the jobSize is smaller than the window size, - * it will result in compression ratio degradation. - * NOTE 1: rsyncable mode only works when multithreading is enabled. - * NOTE 2: rsyncable performs poorly in combination with long range mode, - * since it will decrease the effectiveness of synchronization points, - * though mileage may vary. - * NOTE 3: Rsyncable mode limits maximum compression speed to ~400 MB/s. - * If the selected compression level is already running significantly slower, - * the overall speed won't be significantly impacted. - */ - #define ZSTD_c_rsyncable ZSTD_c_experimentalParam1 - -/* Select a compression format. - * The value must be of type ZSTD_format_e. - * See ZSTD_format_e enum definition for details */ -#define ZSTD_c_format ZSTD_c_experimentalParam2 - -/* Force back-reference distances to remain < windowSize, - * even when referencing into Dictionary content (default:0) */ -#define ZSTD_c_forceMaxWindow ZSTD_c_experimentalParam3 - -/* Controls whether the contents of a CDict - * are used in place, or copied into the working context. - * Accepts values from the ZSTD_dictAttachPref_e enum. - * See the comments on that enum for an explanation of the feature. */ -#define ZSTD_c_forceAttachDict ZSTD_c_experimentalParam4 - -/* Controls how the literals are compressed (default is auto). - * The value must be of type ZSTD_literalCompressionMode_e. - * See ZSTD_literalCompressionMode_t enum definition for details. - */ -#define ZSTD_c_literalCompressionMode ZSTD_c_experimentalParam5 - -/* Tries to fit compressed block size to be around targetCBlockSize. - * No target when targetCBlockSize == 0. - * There is no guarantee on compressed block size (default:0) */ -#define ZSTD_c_targetCBlockSize ZSTD_c_experimentalParam6 - -/* User's best guess of source size. - * Hint is not valid when srcSizeHint == 0. - * There is no guarantee that hint is close to actual source size, - * but compression ratio may regress significantly if guess considerably underestimates */ -#define ZSTD_c_srcSizeHint ZSTD_c_experimentalParam7 - -/*! ZSTD_CCtx_getParameter() : - * Get the requested compression parameter value, selected by enum ZSTD_cParameter, - * and store it into int* value. - * @return : 0, or an error code (which can be tested with ZSTD_isError()). - */ -ZSTDLIB_API size_t ZSTD_CCtx_getParameter(ZSTD_CCtx* cctx, ZSTD_cParameter param, int* value); - - -/*! ZSTD_CCtx_params : - * Quick howto : - * - ZSTD_createCCtxParams() : Create a ZSTD_CCtx_params structure - * - ZSTD_CCtxParams_setParameter() : Push parameters one by one into - * an existing ZSTD_CCtx_params structure. - * This is similar to - * ZSTD_CCtx_setParameter(). - * - ZSTD_CCtx_setParametersUsingCCtxParams() : Apply parameters to - * an existing CCtx. - * These parameters will be applied to - * all subsequent frames. - * - ZSTD_compressStream2() : Do compression using the CCtx. - * - ZSTD_freeCCtxParams() : Free the memory. - * - * This can be used with ZSTD_estimateCCtxSize_advanced_usingCCtxParams() - * for static allocation of CCtx for single-threaded compression. - */ -ZSTDLIB_API ZSTD_CCtx_params* ZSTD_createCCtxParams(void); -ZSTDLIB_API size_t ZSTD_freeCCtxParams(ZSTD_CCtx_params* params); - -/*! ZSTD_CCtxParams_reset() : - * Reset params to default values. - */ -ZSTDLIB_API size_t ZSTD_CCtxParams_reset(ZSTD_CCtx_params* params); - -/*! ZSTD_CCtxParams_init() : - * Initializes the compression parameters of cctxParams according to - * compression level. All other parameters are reset to their default values. - */ -ZSTDLIB_API size_t ZSTD_CCtxParams_init(ZSTD_CCtx_params* cctxParams, int compressionLevel); - -/*! ZSTD_CCtxParams_init_advanced() : - * Initializes the compression and frame parameters of cctxParams according to - * params. All other parameters are reset to their default values. - */ -ZSTDLIB_API size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_parameters params); - -/*! ZSTD_CCtxParams_setParameter() : - * Similar to ZSTD_CCtx_setParameter. - * Set one compression parameter, selected by enum ZSTD_cParameter. - * Parameters must be applied to a ZSTD_CCtx using ZSTD_CCtx_setParametersUsingCCtxParams(). - * @result : 0, or an error code (which can be tested with ZSTD_isError()). - */ -ZSTDLIB_API size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int value); - -/*! ZSTD_CCtxParams_getParameter() : - * Similar to ZSTD_CCtx_getParameter. - * Get the requested value of one compression parameter, selected by enum ZSTD_cParameter. - * @result : 0, or an error code (which can be tested with ZSTD_isError()). - */ -ZSTDLIB_API size_t ZSTD_CCtxParams_getParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int* value); - -/*! ZSTD_CCtx_setParametersUsingCCtxParams() : - * Apply a set of ZSTD_CCtx_params to the compression context. - * This can be done even after compression is started, - * if nbWorkers==0, this will have no impact until a new compression is started. - * if nbWorkers>=1, new parameters will be picked up at next job, - * with a few restrictions (windowLog, pledgedSrcSize, nbWorkers, jobSize, and overlapLog are not updated). - */ -ZSTDLIB_API size_t ZSTD_CCtx_setParametersUsingCCtxParams( - ZSTD_CCtx* cctx, const ZSTD_CCtx_params* params); - -/*! ZSTD_compressStream2_simpleArgs() : - * Same as ZSTD_compressStream2(), - * but using only integral types as arguments. - * This variant might be helpful for binders from dynamic languages - * which have troubles handling structures containing memory pointers. - */ -ZSTDLIB_API size_t ZSTD_compressStream2_simpleArgs ( - ZSTD_CCtx* cctx, - void* dst, size_t dstCapacity, size_t* dstPos, - const void* src, size_t srcSize, size_t* srcPos, - ZSTD_EndDirective endOp); - - -/*************************************** -* Advanced decompression functions -***************************************/ - -/*! ZSTD_isFrame() : - * Tells if the content of `buffer` starts with a valid Frame Identifier. - * Note : Frame Identifier is 4 bytes. If `size < 4`, @return will always be 0. - * Note 2 : Legacy Frame Identifiers are considered valid only if Legacy Support is enabled. - * Note 3 : Skippable Frame Identifiers are considered valid. */ -ZSTDLIB_API unsigned ZSTD_isFrame(const void* buffer, size_t size); - -/*! ZSTD_createDDict_byReference() : - * Create a digested dictionary, ready to start decompression operation without startup delay. - * Dictionary content is referenced, and therefore stays in dictBuffer. - * It is important that dictBuffer outlives DDict, - * it must remain read accessible throughout the lifetime of DDict */ -ZSTDLIB_API ZSTD_DDict* ZSTD_createDDict_byReference(const void* dictBuffer, size_t dictSize); - -/*! ZSTD_DCtx_loadDictionary_byReference() : - * Same as ZSTD_DCtx_loadDictionary(), - * but references `dict` content instead of copying it into `dctx`. - * This saves memory if `dict` remains around., - * However, it's imperative that `dict` remains accessible (and unmodified) while being used, so it must outlive decompression. */ -ZSTDLIB_API size_t ZSTD_DCtx_loadDictionary_byReference(ZSTD_DCtx* dctx, const void* dict, size_t dictSize); - -/*! ZSTD_DCtx_loadDictionary_advanced() : - * Same as ZSTD_DCtx_loadDictionary(), - * but gives direct control over - * how to load the dictionary (by copy ? by reference ?) - * and how to interpret it (automatic ? force raw mode ? full mode only ?). */ -ZSTDLIB_API size_t ZSTD_DCtx_loadDictionary_advanced(ZSTD_DCtx* dctx, const void* dict, size_t dictSize, ZSTD_dictLoadMethod_e dictLoadMethod, ZSTD_dictContentType_e dictContentType); - -/*! ZSTD_DCtx_refPrefix_advanced() : - * Same as ZSTD_DCtx_refPrefix(), but gives finer control over - * how to interpret prefix content (automatic ? force raw mode (default) ? full mode only ?) */ -ZSTDLIB_API size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* prefix, size_t prefixSize, ZSTD_dictContentType_e dictContentType); - -/*! ZSTD_DCtx_setMaxWindowSize() : - * Refuses allocating internal buffers for frames requiring a window size larger than provided limit. - * This protects a decoder context from reserving too much memory for itself (potential attack scenario). - * This parameter is only useful in streaming mode, since no internal buffer is allocated in single-pass mode. - * By default, a decompression context accepts all window sizes <= (1 << ZSTD_WINDOWLOG_LIMIT_DEFAULT) - * @return : 0, or an error code (which can be tested using ZSTD_isError()). - */ -ZSTDLIB_API size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize); - -/* ZSTD_d_format - * experimental parameter, - * allowing selection between ZSTD_format_e input compression formats - */ -#define ZSTD_d_format ZSTD_d_experimentalParam1 -/* ZSTD_d_stableOutBuffer - * Experimental parameter. - * Default is 0 == disabled. Set to 1 to enable. - * - * Tells the decompressor that the ZSTD_outBuffer will ALWAYS be the same - * between calls, except for the modifications that zstd makes to pos (the - * caller must not modify pos). This is checked by the decompressor, and - * decompression will fail if it ever changes. Therefore the ZSTD_outBuffer - * MUST be large enough to fit the entire decompressed frame. This will be - * checked when the frame content size is known. The data in the ZSTD_outBuffer - * in the range [dst, dst + pos) MUST not be modified during decompression - * or you will get data corruption. - * - * When this flags is enabled zstd won't allocate an output buffer, because - * it can write directly to the ZSTD_outBuffer, but it will still allocate - * an input buffer large enough to fit any compressed block. This will also - * avoid the memcpy() from the internal output buffer to the ZSTD_outBuffer. - * If you need to avoid the input buffer allocation use the buffer-less - * streaming API. - * - * NOTE: So long as the ZSTD_outBuffer always points to valid memory, using - * this flag is ALWAYS memory safe, and will never access out-of-bounds - * memory. However, decompression WILL fail if you violate the preconditions. - * - * WARNING: The data in the ZSTD_outBuffer in the range [dst, dst + pos) MUST - * not be modified during decompression or you will get data corruption. This - * is because zstd needs to reference data in the ZSTD_outBuffer to regenerate - * matches. Normally zstd maintains its own buffer for this purpose, but passing - * this flag tells zstd to use the user provided buffer. - */ -#define ZSTD_d_stableOutBuffer ZSTD_d_experimentalParam2 - -/*! ZSTD_DCtx_setFormat() : - * Instruct the decoder context about what kind of data to decode next. - * This instruction is mandatory to decode data without a fully-formed header, - * such ZSTD_f_zstd1_magicless for example. - * @return : 0, or an error code (which can be tested using ZSTD_isError()). */ -ZSTDLIB_API size_t ZSTD_DCtx_setFormat(ZSTD_DCtx* dctx, ZSTD_format_e format); - -/*! ZSTD_decompressStream_simpleArgs() : - * Same as ZSTD_decompressStream(), - * but using only integral types as arguments. - * This can be helpful for binders from dynamic languages - * which have troubles handling structures containing memory pointers. - */ -ZSTDLIB_API size_t ZSTD_decompressStream_simpleArgs ( - ZSTD_DCtx* dctx, - void* dst, size_t dstCapacity, size_t* dstPos, - const void* src, size_t srcSize, size_t* srcPos); - - -/******************************************************************** -* Advanced streaming functions -* Warning : most of these functions are now redundant with the Advanced API. -* Once Advanced API reaches "stable" status, -* redundant functions will be deprecated, and then at some point removed. -********************************************************************/ - -/*===== Advanced Streaming compression functions =====*/ -/**! ZSTD_initCStream_srcSize() : - * This function is deprecated, and equivalent to: - * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); - * ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any) - * ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); - * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); - * - * pledgedSrcSize must be correct. If it is not known at init time, use - * ZSTD_CONTENTSIZE_UNKNOWN. Note that, for compatibility with older programs, - * "0" also disables frame content size field. It may be enabled in the future. - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t -ZSTD_initCStream_srcSize(ZSTD_CStream* zcs, - int compressionLevel, - unsigned long long pledgedSrcSize); - -/**! ZSTD_initCStream_usingDict() : - * This function is deprecated, and is equivalent to: - * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); - * ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel); - * ZSTD_CCtx_loadDictionary(zcs, dict, dictSize); - * - * Creates of an internal CDict (incompatible with static CCtx), except if - * dict == NULL or dictSize < 8, in which case no dict is used. - * Note: dict is loaded with ZSTD_dct_auto (treated as a full zstd dictionary if - * it begins with ZSTD_MAGIC_DICTIONARY, else as raw content) and ZSTD_dlm_byCopy. - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t -ZSTD_initCStream_usingDict(ZSTD_CStream* zcs, - const void* dict, size_t dictSize, - int compressionLevel); - -/**! ZSTD_initCStream_advanced() : - * This function is deprecated, and is approximately equivalent to: - * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); - * // Pseudocode: Set each zstd parameter and leave the rest as-is. - * for ((param, value) : params) { - * ZSTD_CCtx_setParameter(zcs, param, value); - * } - * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); - * ZSTD_CCtx_loadDictionary(zcs, dict, dictSize); - * - * dict is loaded with ZSTD_dct_auto and ZSTD_dlm_byCopy. - * pledgedSrcSize must be correct. - * If srcSize is not known at init time, use value ZSTD_CONTENTSIZE_UNKNOWN. - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t -ZSTD_initCStream_advanced(ZSTD_CStream* zcs, - const void* dict, size_t dictSize, - ZSTD_parameters params, - unsigned long long pledgedSrcSize); - -/**! ZSTD_initCStream_usingCDict() : - * This function is deprecated, and equivalent to: - * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); - * ZSTD_CCtx_refCDict(zcs, cdict); - * - * note : cdict will just be referenced, and must outlive compression session - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict* cdict); - -/**! ZSTD_initCStream_usingCDict_advanced() : - * This function is DEPRECATED, and is approximately equivalent to: - * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); - * // Pseudocode: Set each zstd frame parameter and leave the rest as-is. - * for ((fParam, value) : fParams) { - * ZSTD_CCtx_setParameter(zcs, fParam, value); - * } - * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); - * ZSTD_CCtx_refCDict(zcs, cdict); - * - * same as ZSTD_initCStream_usingCDict(), with control over frame parameters. - * pledgedSrcSize must be correct. If srcSize is not known at init time, use - * value ZSTD_CONTENTSIZE_UNKNOWN. - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t -ZSTD_initCStream_usingCDict_advanced(ZSTD_CStream* zcs, - const ZSTD_CDict* cdict, - ZSTD_frameParameters fParams, - unsigned long long pledgedSrcSize); - -/*! ZSTD_resetCStream() : - * This function is deprecated, and is equivalent to: - * ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only); - * ZSTD_CCtx_setPledgedSrcSize(zcs, pledgedSrcSize); - * - * start a new frame, using same parameters from previous frame. - * This is typically useful to skip dictionary loading stage, since it will re-use it in-place. - * Note that zcs must be init at least once before using ZSTD_resetCStream(). - * If pledgedSrcSize is not known at reset time, use macro ZSTD_CONTENTSIZE_UNKNOWN. - * If pledgedSrcSize > 0, its value must be correct, as it will be written in header, and controlled at the end. - * For the time being, pledgedSrcSize==0 is interpreted as "srcSize unknown" for compatibility with older programs, - * but it will change to mean "empty" in future version, so use macro ZSTD_CONTENTSIZE_UNKNOWN instead. - * @return : 0, or an error code (which can be tested using ZSTD_isError()) - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t ZSTD_resetCStream(ZSTD_CStream* zcs, unsigned long long pledgedSrcSize); - - -typedef struct { - unsigned long long ingested; /* nb input bytes read and buffered */ - unsigned long long consumed; /* nb input bytes actually compressed */ - unsigned long long produced; /* nb of compressed bytes generated and buffered */ - unsigned long long flushed; /* nb of compressed bytes flushed : not provided; can be tracked from caller side */ - unsigned currentJobID; /* MT only : latest started job nb */ - unsigned nbActiveWorkers; /* MT only : nb of workers actively compressing at probe time */ -} ZSTD_frameProgression; - -/* ZSTD_getFrameProgression() : - * tells how much data has been ingested (read from input) - * consumed (input actually compressed) and produced (output) for current frame. - * Note : (ingested - consumed) is amount of input data buffered internally, not yet compressed. - * Aggregates progression inside active worker threads. - */ -ZSTDLIB_API ZSTD_frameProgression ZSTD_getFrameProgression(const ZSTD_CCtx* cctx); - -/*! ZSTD_toFlushNow() : - * Tell how many bytes are ready to be flushed immediately. - * Useful for multithreading scenarios (nbWorkers >= 1). - * Probe the oldest active job, defined as oldest job not yet entirely flushed, - * and check its output buffer. - * @return : amount of data stored in oldest job and ready to be flushed immediately. - * if @return == 0, it means either : - * + there is no active job (could be checked with ZSTD_frameProgression()), or - * + oldest job is still actively compressing data, - * but everything it has produced has also been flushed so far, - * therefore flush speed is limited by production speed of oldest job - * irrespective of the speed of concurrent (and newer) jobs. - */ -ZSTDLIB_API size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx); - - -/*===== Advanced Streaming decompression functions =====*/ -/** - * This function is deprecated, and is equivalent to: - * - * ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); - * ZSTD_DCtx_loadDictionary(zds, dict, dictSize); - * - * note: no dictionary will be used if dict == NULL or dictSize < 8 - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize); - -/** - * This function is deprecated, and is equivalent to: - * - * ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); - * ZSTD_DCtx_refDDict(zds, ddict); - * - * note : ddict is referenced, it must outlive decompression session - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* zds, const ZSTD_DDict* ddict); - -/** - * This function is deprecated, and is equivalent to: - * - * ZSTD_DCtx_reset(zds, ZSTD_reset_session_only); - * - * re-use decompression parameters from previous init; saves dictionary loading - * Note : this prototype will be marked as deprecated and generate compilation warnings on reaching v1.5.x - */ -ZSTDLIB_API size_t ZSTD_resetDStream(ZSTD_DStream* zds); - - -/********************************************************************* -* Buffer-less and synchronous inner streaming functions -* -* This is an advanced API, giving full control over buffer management, for users which need direct control over memory. -* But it's also a complex one, with several restrictions, documented below. -* Prefer normal streaming API for an easier experience. -********************************************************************* */ - -/** - Buffer-less streaming compression (synchronous mode) - - A ZSTD_CCtx object is required to track streaming operations. - Use ZSTD_createCCtx() / ZSTD_freeCCtx() to manage resource. - ZSTD_CCtx object can be re-used multiple times within successive compression operations. - - Start by initializing a context. - Use ZSTD_compressBegin(), or ZSTD_compressBegin_usingDict() for dictionary compression, - or ZSTD_compressBegin_advanced(), for finer parameter control. - It's also possible to duplicate a reference context which has already been initialized, using ZSTD_copyCCtx() - - Then, consume your input using ZSTD_compressContinue(). - There are some important considerations to keep in mind when using this advanced function : - - ZSTD_compressContinue() has no internal buffer. It uses externally provided buffers only. - - Interface is synchronous : input is consumed entirely and produces 1+ compressed blocks. - - Caller must ensure there is enough space in `dst` to store compressed data under worst case scenario. - Worst case evaluation is provided by ZSTD_compressBound(). - ZSTD_compressContinue() doesn't guarantee recover after a failed compression. - - ZSTD_compressContinue() presumes prior input ***is still accessible and unmodified*** (up to maximum distance size, see WindowLog). - It remembers all previous contiguous blocks, plus one separated memory segment (which can itself consists of multiple contiguous blocks) - - ZSTD_compressContinue() detects that prior input has been overwritten when `src` buffer overlaps. - In which case, it will "discard" the relevant memory section from its history. - - Finish a frame with ZSTD_compressEnd(), which will write the last block(s) and optional checksum. - It's possible to use srcSize==0, in which case, it will write a final empty block to end the frame. - Without last block mark, frames are considered unfinished (hence corrupted) by compliant decoders. - - `ZSTD_CCtx` object can be re-used (ZSTD_compressBegin()) to compress again. -*/ - -/*===== Buffer-less streaming compression functions =====*/ -ZSTDLIB_API size_t ZSTD_compressBegin(ZSTD_CCtx* cctx, int compressionLevel); -ZSTDLIB_API size_t ZSTD_compressBegin_usingDict(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, int compressionLevel); -ZSTDLIB_API size_t ZSTD_compressBegin_advanced(ZSTD_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_parameters params, unsigned long long pledgedSrcSize); /**< pledgedSrcSize : If srcSize is not known at init time, use ZSTD_CONTENTSIZE_UNKNOWN */ -ZSTDLIB_API size_t ZSTD_compressBegin_usingCDict(ZSTD_CCtx* cctx, const ZSTD_CDict* cdict); /**< note: fails if cdict==NULL */ -ZSTDLIB_API size_t ZSTD_compressBegin_usingCDict_advanced(ZSTD_CCtx* const cctx, const ZSTD_CDict* const cdict, ZSTD_frameParameters const fParams, unsigned long long const pledgedSrcSize); /* compression parameters are already set within cdict. pledgedSrcSize must be correct. If srcSize is not known, use macro ZSTD_CONTENTSIZE_UNKNOWN */ -ZSTDLIB_API size_t ZSTD_copyCCtx(ZSTD_CCtx* cctx, const ZSTD_CCtx* preparedCCtx, unsigned long long pledgedSrcSize); /**< note: if pledgedSrcSize is not known, use ZSTD_CONTENTSIZE_UNKNOWN */ - -ZSTDLIB_API size_t ZSTD_compressContinue(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); -ZSTDLIB_API size_t ZSTD_compressEnd(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); - - -/*- - Buffer-less streaming decompression (synchronous mode) - - A ZSTD_DCtx object is required to track streaming operations. - Use ZSTD_createDCtx() / ZSTD_freeDCtx() to manage it. - A ZSTD_DCtx object can be re-used multiple times. - - First typical operation is to retrieve frame parameters, using ZSTD_getFrameHeader(). - Frame header is extracted from the beginning of compressed frame, so providing only the frame's beginning is enough. - Data fragment must be large enough to ensure successful decoding. - `ZSTD_frameHeaderSize_max` bytes is guaranteed to always be large enough. - @result : 0 : successful decoding, the `ZSTD_frameHeader` structure is correctly filled. - >0 : `srcSize` is too small, please provide at least @result bytes on next attempt. - errorCode, which can be tested using ZSTD_isError(). - - It fills a ZSTD_frameHeader structure with important information to correctly decode the frame, - such as the dictionary ID, content size, or maximum back-reference distance (`windowSize`). - Note that these values could be wrong, either because of data corruption, or because a 3rd party deliberately spoofs false information. - As a consequence, check that values remain within valid application range. - For example, do not allocate memory blindly, check that `windowSize` is within expectation. - Each application can set its own limits, depending on local restrictions. - For extended interoperability, it is recommended to support `windowSize` of at least 8 MB. - - ZSTD_decompressContinue() needs previous data blocks during decompression, up to `windowSize` bytes. - ZSTD_decompressContinue() is very sensitive to contiguity, - if 2 blocks don't follow each other, make sure that either the compressor breaks contiguity at the same place, - or that previous contiguous segment is large enough to properly handle maximum back-reference distance. - There are multiple ways to guarantee this condition. - - The most memory efficient way is to use a round buffer of sufficient size. - Sufficient size is determined by invoking ZSTD_decodingBufferSize_min(), - which can @return an error code if required value is too large for current system (in 32-bits mode). - In a round buffer methodology, ZSTD_decompressContinue() decompresses each block next to previous one, - up to the moment there is not enough room left in the buffer to guarantee decoding another full block, - which maximum size is provided in `ZSTD_frameHeader` structure, field `blockSizeMax`. - At which point, decoding can resume from the beginning of the buffer. - Note that already decoded data stored in the buffer should be flushed before being overwritten. - - There are alternatives possible, for example using two or more buffers of size `windowSize` each, though they consume more memory. - - Finally, if you control the compression process, you can also ignore all buffer size rules, - as long as the encoder and decoder progress in "lock-step", - aka use exactly the same buffer sizes, break contiguity at the same place, etc. - - Once buffers are setup, start decompression, with ZSTD_decompressBegin(). - If decompression requires a dictionary, use ZSTD_decompressBegin_usingDict() or ZSTD_decompressBegin_usingDDict(). - - Then use ZSTD_nextSrcSizeToDecompress() and ZSTD_decompressContinue() alternatively. - ZSTD_nextSrcSizeToDecompress() tells how many bytes to provide as 'srcSize' to ZSTD_decompressContinue(). - ZSTD_decompressContinue() requires this _exact_ amount of bytes, or it will fail. - - @result of ZSTD_decompressContinue() is the number of bytes regenerated within 'dst' (necessarily <= dstCapacity). - It can be zero : it just means ZSTD_decompressContinue() has decoded some metadata item. - It can also be an error code, which can be tested with ZSTD_isError(). - - A frame is fully decoded when ZSTD_nextSrcSizeToDecompress() returns zero. - Context can then be reset to start a new decompression. - - Note : it's possible to know if next input to present is a header or a block, using ZSTD_nextInputType(). - This information is not required to properly decode a frame. - - == Special case : skippable frames == - - Skippable frames allow integration of user-defined data into a flow of concatenated frames. - Skippable frames will be ignored (skipped) by decompressor. - The format of skippable frames is as follows : - a) Skippable frame ID - 4 Bytes, Little endian format, any value from 0x184D2A50 to 0x184D2A5F - b) Frame Size - 4 Bytes, Little endian format, unsigned 32-bits - c) Frame Content - any content (User Data) of length equal to Frame Size - For skippable frames ZSTD_getFrameHeader() returns zfhPtr->frameType==ZSTD_skippableFrame. - For skippable frames ZSTD_decompressContinue() always returns 0 : it only skips the content. -*/ - -/*===== Buffer-less streaming decompression functions =====*/ -typedef enum { ZSTD_frame, ZSTD_skippableFrame } ZSTD_frameType_e; -typedef struct { - unsigned long long frameContentSize; /* if == ZSTD_CONTENTSIZE_UNKNOWN, it means this field is not available. 0 means "empty" */ - unsigned long long windowSize; /* can be very large, up to <= frameContentSize */ - unsigned blockSizeMax; - ZSTD_frameType_e frameType; /* if == ZSTD_skippableFrame, frameContentSize is the size of skippable content */ - unsigned headerSize; - unsigned dictID; - unsigned checksumFlag; -} ZSTD_frameHeader; - -/*! ZSTD_getFrameHeader() : - * decode Frame Header, or requires larger `srcSize`. - * @return : 0, `zfhPtr` is correctly filled, - * >0, `srcSize` is too small, value is wanted `srcSize` amount, - * or an error code, which can be tested using ZSTD_isError() */ -ZSTDLIB_API size_t ZSTD_getFrameHeader(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize); /**< doesn't consume input */ -/*! ZSTD_getFrameHeader_advanced() : - * same as ZSTD_getFrameHeader(), - * with added capability to select a format (like ZSTD_f_zstd1_magicless) */ -ZSTDLIB_API size_t ZSTD_getFrameHeader_advanced(ZSTD_frameHeader* zfhPtr, const void* src, size_t srcSize, ZSTD_format_e format); -ZSTDLIB_API size_t ZSTD_decodingBufferSize_min(unsigned long long windowSize, unsigned long long frameContentSize); /**< when frame content size is not known, pass in frameContentSize == ZSTD_CONTENTSIZE_UNKNOWN */ - -ZSTDLIB_API size_t ZSTD_decompressBegin(ZSTD_DCtx* dctx); -ZSTDLIB_API size_t ZSTD_decompressBegin_usingDict(ZSTD_DCtx* dctx, const void* dict, size_t dictSize); -ZSTDLIB_API size_t ZSTD_decompressBegin_usingDDict(ZSTD_DCtx* dctx, const ZSTD_DDict* ddict); - -ZSTDLIB_API size_t ZSTD_nextSrcSizeToDecompress(ZSTD_DCtx* dctx); -ZSTDLIB_API size_t ZSTD_decompressContinue(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); - -/* misc */ -ZSTDLIB_API void ZSTD_copyDCtx(ZSTD_DCtx* dctx, const ZSTD_DCtx* preparedDCtx); -typedef enum { ZSTDnit_frameHeader, ZSTDnit_blockHeader, ZSTDnit_block, ZSTDnit_lastBlock, ZSTDnit_checksum, ZSTDnit_skippableFrame } ZSTD_nextInputType_e; -ZSTDLIB_API ZSTD_nextInputType_e ZSTD_nextInputType(ZSTD_DCtx* dctx); - - - - -/* ============================ */ -/** Block level API */ -/* ============================ */ - -/*! - Block functions produce and decode raw zstd blocks, without frame metadata. - Frame metadata cost is typically ~12 bytes, which can be non-negligible for very small blocks (< 100 bytes). - But users will have to take in charge needed metadata to regenerate data, such as compressed and content sizes. - - A few rules to respect : - - Compressing and decompressing require a context structure - + Use ZSTD_createCCtx() and ZSTD_createDCtx() - - It is necessary to init context before starting - + compression : any ZSTD_compressBegin*() variant, including with dictionary - + decompression : any ZSTD_decompressBegin*() variant, including with dictionary - + copyCCtx() and copyDCtx() can be used too - - Block size is limited, it must be <= ZSTD_getBlockSize() <= ZSTD_BLOCKSIZE_MAX == 128 KB - + If input is larger than a block size, it's necessary to split input data into multiple blocks - + For inputs larger than a single block, consider using regular ZSTD_compress() instead. - Frame metadata is not that costly, and quickly becomes negligible as source size grows larger than a block. - - When a block is considered not compressible enough, ZSTD_compressBlock() result will be 0 (zero) ! - ===> In which case, nothing is produced into `dst` ! - + User __must__ test for such outcome and deal directly with uncompressed data - + A block cannot be declared incompressible if ZSTD_compressBlock() return value was != 0. - Doing so would mess up with statistics history, leading to potential data corruption. - + ZSTD_decompressBlock() _doesn't accept uncompressed data as input_ !! - + In case of multiple successive blocks, should some of them be uncompressed, - decoder must be informed of their existence in order to follow proper history. - Use ZSTD_insertBlock() for such a case. -*/ - -/*===== Raw zstd block functions =====*/ -ZSTDLIB_API size_t ZSTD_getBlockSize (const ZSTD_CCtx* cctx); -ZSTDLIB_API size_t ZSTD_compressBlock (ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); -ZSTDLIB_API size_t ZSTD_decompressBlock(ZSTD_DCtx* dctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize); -ZSTDLIB_API size_t ZSTD_insertBlock (ZSTD_DCtx* dctx, const void* blockStart, size_t blockSize); /**< insert uncompressed block into `dctx` history. Useful for multi-blocks decompression. */ - -} - -#endif /* ZSTD_H_ZSTD_STATIC_LINKING_ONLY */ diff --git a/src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp b/src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp new file mode 100644 index 00000000..e9930d89 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_aggregate_algebraic.cpp @@ -0,0 +1,8 @@ +#include "extension/core_functions/aggregate/algebraic/stddev.cpp" + +#include "extension/core_functions/aggregate/algebraic/corr.cpp" + +#include "extension/core_functions/aggregate/algebraic/covar.cpp" + +#include "extension/core_functions/aggregate/algebraic/avg.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp b/src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp new file mode 100644 index 00000000..12ca3066 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_aggregate_distributive.cpp @@ -0,0 +1,20 @@ +#include "extension/core_functions/aggregate/distributive/skew.cpp" + +#include "extension/core_functions/aggregate/distributive/kurtosis.cpp" + +#include "extension/core_functions/aggregate/distributive/bitstring_agg.cpp" + +#include "extension/core_functions/aggregate/distributive/product.cpp" + +#include "extension/core_functions/aggregate/distributive/sum.cpp" + +#include "extension/core_functions/aggregate/distributive/bitagg.cpp" + +#include "extension/core_functions/aggregate/distributive/bool.cpp" + +#include "extension/core_functions/aggregate/distributive/arg_min_max.cpp" + +#include "extension/core_functions/aggregate/distributive/string_agg.cpp" + +#include "extension/core_functions/aggregate/distributive/approx_count.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp b/src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp new file mode 100644 index 00000000..0362fc3e --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_aggregate_holistic.cpp @@ -0,0 +1,12 @@ +#include "extension/core_functions/aggregate/holistic/quantile.cpp" + +#include "extension/core_functions/aggregate/holistic/approx_top_k.cpp" + +#include "extension/core_functions/aggregate/holistic/approximate_quantile.cpp" + +#include "extension/core_functions/aggregate/holistic/mode.cpp" + +#include "extension/core_functions/aggregate/holistic/reservoir_quantile.cpp" + +#include "extension/core_functions/aggregate/holistic/mad.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_aggregate_nested.cpp b/src/duckdb/ub_extension_core_functions_aggregate_nested.cpp new file mode 100644 index 00000000..8f3f5452 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_aggregate_nested.cpp @@ -0,0 +1,6 @@ +#include "extension/core_functions/aggregate/nested/binned_histogram.cpp" + +#include "extension/core_functions/aggregate/nested/histogram.cpp" + +#include "extension/core_functions/aggregate/nested/list.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_aggregate_regression.cpp b/src/duckdb/ub_extension_core_functions_aggregate_regression.cpp new file mode 100644 index 00000000..7c97319a --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_aggregate_regression.cpp @@ -0,0 +1,14 @@ +#include "extension/core_functions/aggregate/regression/regr_sxx_syy.cpp" + +#include "extension/core_functions/aggregate/regression/regr_avg.cpp" + +#include "extension/core_functions/aggregate/regression/regr_count.cpp" + +#include "extension/core_functions/aggregate/regression/regr_slope.cpp" + +#include "extension/core_functions/aggregate/regression/regr_sxy.cpp" + +#include "extension/core_functions/aggregate/regression/regr_r2.cpp" + +#include "extension/core_functions/aggregate/regression/regr_intercept.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_array.cpp b/src/duckdb/ub_extension_core_functions_scalar_array.cpp new file mode 100644 index 00000000..9b9a475b --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_array.cpp @@ -0,0 +1,4 @@ +#include "extension/core_functions/scalar/array/array_value.cpp" + +#include "extension/core_functions/scalar/array/array_functions.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_bit.cpp b/src/duckdb/ub_extension_core_functions_scalar_bit.cpp new file mode 100644 index 00000000..0e48db86 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_bit.cpp @@ -0,0 +1,2 @@ +#include "extension/core_functions/scalar/bit/bitstring.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_blob.cpp b/src/duckdb/ub_extension_core_functions_scalar_blob.cpp new file mode 100644 index 00000000..f50a9422 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_blob.cpp @@ -0,0 +1,4 @@ +#include "extension/core_functions/scalar/blob/encode.cpp" + +#include "extension/core_functions/scalar/blob/base64.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_date.cpp b/src/duckdb/ub_extension_core_functions_scalar_date.cpp new file mode 100644 index 00000000..89ebc58f --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_date.cpp @@ -0,0 +1,20 @@ +#include "extension/core_functions/scalar/date/date_part.cpp" + +#include "extension/core_functions/scalar/date/date_sub.cpp" + +#include "extension/core_functions/scalar/date/current.cpp" + +#include "extension/core_functions/scalar/date/date_trunc.cpp" + +#include "extension/core_functions/scalar/date/epoch.cpp" + +#include "extension/core_functions/scalar/date/to_interval.cpp" + +#include "extension/core_functions/scalar/date/time_bucket.cpp" + +#include "extension/core_functions/scalar/date/age.cpp" + +#include "extension/core_functions/scalar/date/date_diff.cpp" + +#include "extension/core_functions/scalar/date/make_date.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_debug.cpp b/src/duckdb/ub_extension_core_functions_scalar_debug.cpp new file mode 100644 index 00000000..f1c3fa82 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_debug.cpp @@ -0,0 +1,2 @@ +#include "extension/core_functions/scalar/debug/vector_type.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_enum.cpp b/src/duckdb/ub_extension_core_functions_scalar_enum.cpp new file mode 100644 index 00000000..74e9bf3f --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_enum.cpp @@ -0,0 +1,2 @@ +#include "extension/core_functions/scalar/enum/enum_functions.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_generic.cpp b/src/duckdb/ub_extension_core_functions_scalar_generic.cpp new file mode 100644 index 00000000..d2458089 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_generic.cpp @@ -0,0 +1,18 @@ +#include "extension/core_functions/scalar/generic/alias.cpp" + +#include "extension/core_functions/scalar/generic/binning.cpp" + +#include "extension/core_functions/scalar/generic/can_implicitly_cast.cpp" + +#include "extension/core_functions/scalar/generic/current_setting.cpp" + +#include "extension/core_functions/scalar/generic/hash.cpp" + +#include "extension/core_functions/scalar/generic/least.cpp" + +#include "extension/core_functions/scalar/generic/stats.cpp" + +#include "extension/core_functions/scalar/generic/typeof.cpp" + +#include "extension/core_functions/scalar/generic/system_functions.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_list.cpp b/src/duckdb/ub_extension_core_functions_scalar_list.cpp new file mode 100644 index 00000000..5fdfebc4 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_list.cpp @@ -0,0 +1,22 @@ +#include "extension/core_functions/scalar/list/array_slice.cpp" + +#include "extension/core_functions/scalar/list/list_transform.cpp" + +#include "extension/core_functions/scalar/list/list_reduce.cpp" + +#include "extension/core_functions/scalar/list/flatten.cpp" + +#include "extension/core_functions/scalar/list/list_distance.cpp" + +#include "extension/core_functions/scalar/list/list_has_any_or_all.cpp" + +#include "extension/core_functions/scalar/list/list_sort.cpp" + +#include "extension/core_functions/scalar/list/list_filter.cpp" + +#include "extension/core_functions/scalar/list/list_value.cpp" + +#include "extension/core_functions/scalar/list/list_aggregates.cpp" + +#include "extension/core_functions/scalar/list/range.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_map.cpp b/src/duckdb/ub_extension_core_functions_scalar_map.cpp new file mode 100644 index 00000000..14edf3a9 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_map.cpp @@ -0,0 +1,14 @@ +#include "extension/core_functions/scalar/map/cardinality.cpp" + +#include "extension/core_functions/scalar/map/map_entries.cpp" + +#include "extension/core_functions/scalar/map/map_concat.cpp" + +#include "extension/core_functions/scalar/map/map.cpp" + +#include "extension/core_functions/scalar/map/map_keys_values.cpp" + +#include "extension/core_functions/scalar/map/map_from_entries.cpp" + +#include "extension/core_functions/scalar/map/map_extract.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_math.cpp b/src/duckdb/ub_extension_core_functions_scalar_math.cpp new file mode 100644 index 00000000..27320ea9 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_math.cpp @@ -0,0 +1,2 @@ +#include "extension/core_functions/scalar/math/numeric.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_operators.cpp b/src/duckdb/ub_extension_core_functions_scalar_operators.cpp new file mode 100644 index 00000000..47383d4e --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_operators.cpp @@ -0,0 +1,2 @@ +#include "extension/core_functions/scalar/operators/bitwise.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_random.cpp b/src/duckdb/ub_extension_core_functions_scalar_random.cpp new file mode 100644 index 00000000..3e74feb3 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_random.cpp @@ -0,0 +1,4 @@ +#include "extension/core_functions/scalar/random/setseed.cpp" + +#include "extension/core_functions/scalar/random/random.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_string.cpp b/src/duckdb/ub_extension_core_functions_scalar_string.cpp new file mode 100644 index 00000000..1b8f5770 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_string.cpp @@ -0,0 +1,48 @@ +#include "extension/core_functions/scalar/string/reverse.cpp" + +#include "extension/core_functions/scalar/string/levenshtein.cpp" + +#include "extension/core_functions/scalar/string/damerau_levenshtein.cpp" + +#include "extension/core_functions/scalar/string/repeat.cpp" + +#include "extension/core_functions/scalar/string/to_base.cpp" + +#include "extension/core_functions/scalar/string/jaccard.cpp" + +#include "extension/core_functions/scalar/string/trim.cpp" + +#include "extension/core_functions/scalar/string/translate.cpp" + +#include "extension/core_functions/scalar/string/hex.cpp" + +#include "extension/core_functions/scalar/string/chr.cpp" + +#include "extension/core_functions/scalar/string/pad.cpp" + +#include "extension/core_functions/scalar/string/jaro_winkler.cpp" + +#include "extension/core_functions/scalar/string/starts_with.cpp" + +#include "extension/core_functions/scalar/string/hamming.cpp" + +#include "extension/core_functions/scalar/string/left_right.cpp" + +#include "extension/core_functions/scalar/string/unicode.cpp" + +#include "extension/core_functions/scalar/string/replace.cpp" + +#include "extension/core_functions/scalar/string/printf.cpp" + +#include "extension/core_functions/scalar/string/parse_path.cpp" + +#include "extension/core_functions/scalar/string/instr.cpp" + +#include "extension/core_functions/scalar/string/ascii.cpp" + +#include "extension/core_functions/scalar/string/bar.cpp" + +#include "extension/core_functions/scalar/string/format_bytes.cpp" + +#include "extension/core_functions/scalar/string/url_encode.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_struct.cpp b/src/duckdb/ub_extension_core_functions_scalar_struct.cpp new file mode 100644 index 00000000..8d52b2f9 --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_struct.cpp @@ -0,0 +1,2 @@ +#include "extension/core_functions/scalar/struct/struct_insert.cpp" + diff --git a/src/duckdb/ub_extension_core_functions_scalar_union.cpp b/src/duckdb/ub_extension_core_functions_scalar_union.cpp new file mode 100644 index 00000000..5b68509a --- /dev/null +++ b/src/duckdb/ub_extension_core_functions_scalar_union.cpp @@ -0,0 +1,6 @@ +#include "extension/core_functions/scalar/union/union_tag.cpp" + +#include "extension/core_functions/scalar/union/union_extract.cpp" + +#include "extension/core_functions/scalar/union/union_value.cpp" + diff --git a/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp b/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp index 3106e89f..4d22eddd 100644 --- a/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp +++ b/src/duckdb/ub_extension_icu_third_party_icu_i18n.cpp @@ -348,17 +348,17 @@ #include "extension/icu/third_party/icu/i18n/wintzimpl.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-bignum-dtoa.cpp" - #include "extension/icu/third_party/icu/i18n/double-conversion-strtod.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-double-to-string.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-fast-dtoa.cpp" + +#include "extension/icu/third_party/icu/i18n/double-conversion-bignum.cpp" #include "extension/icu/third_party/icu/i18n/double-conversion-cached-powers.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-bignum.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-bignum-dtoa.cpp" -#include "extension/icu/third_party/icu/i18n/double-conversion-fast-dtoa.cpp" +#include "extension/icu/third_party/icu/i18n/double-conversion-double-to-string.cpp" #include "extension/icu/third_party/icu/i18n/double-conversion-string-to-double.cpp" diff --git a/src/duckdb/ub_src_common.cpp b/src/duckdb/ub_src_common.cpp index 07cab6cd..626816b8 100644 --- a/src/duckdb/ub_src_common.cpp +++ b/src/duckdb/ub_src_common.cpp @@ -46,6 +46,8 @@ #include "src/common/error_data.cpp" +#include "src/common/opener_file_system.cpp" + #include "src/common/printer.cpp" #include "src/common/radix_partitioning.cpp" diff --git a/src/duckdb/ub_src_common_arrow.cpp b/src/duckdb/ub_src_common_arrow.cpp index 8f599997..9c8e239d 100644 --- a/src/duckdb/ub_src_common_arrow.cpp +++ b/src/duckdb/ub_src_common_arrow.cpp @@ -2,6 +2,8 @@ #include "src/common/arrow/arrow_converter.cpp" +#include "src/common/arrow/arrow_util.cpp" + #include "src/common/arrow/arrow_merge_event.cpp" #include "src/common/arrow/arrow_query_result.cpp" diff --git a/src/duckdb/ub_src_core_functions.cpp b/src/duckdb/ub_src_core_functions.cpp deleted file mode 100644 index 961929d4..00000000 --- a/src/duckdb/ub_src_core_functions.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "src/core_functions/core_functions.cpp" - -#include "src/core_functions/function_list.cpp" - -#include "src/core_functions/lambda_functions.cpp" - diff --git a/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp b/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp deleted file mode 100644 index 5aee83e9..00000000 --- a/src/duckdb/ub_src_core_functions_aggregate_algebraic.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "src/core_functions/aggregate/algebraic/avg.cpp" - -#include "src/core_functions/aggregate/algebraic/covar.cpp" - -#include "src/core_functions/aggregate/algebraic/stddev.cpp" - -#include "src/core_functions/aggregate/algebraic/corr.cpp" - diff --git a/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp b/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp deleted file mode 100644 index 7deed6d3..00000000 --- a/src/duckdb/ub_src_core_functions_aggregate_distributive.cpp +++ /dev/null @@ -1,24 +0,0 @@ -#include "src/core_functions/aggregate/distributive/approx_count.cpp" - -#include "src/core_functions/aggregate/distributive/arg_min_max.cpp" - -#include "src/core_functions/aggregate/distributive/bitagg.cpp" - -#include "src/core_functions/aggregate/distributive/bitstring_agg.cpp" - -#include "src/core_functions/aggregate/distributive/bool.cpp" - -#include "src/core_functions/aggregate/distributive/entropy.cpp" - -#include "src/core_functions/aggregate/distributive/kurtosis.cpp" - -#include "src/core_functions/aggregate/distributive/minmax.cpp" - -#include "src/core_functions/aggregate/distributive/product.cpp" - -#include "src/core_functions/aggregate/distributive/skew.cpp" - -#include "src/core_functions/aggregate/distributive/string_agg.cpp" - -#include "src/core_functions/aggregate/distributive/sum.cpp" - diff --git a/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp b/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp deleted file mode 100644 index 67d8f8f0..00000000 --- a/src/duckdb/ub_src_core_functions_aggregate_holistic.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "src/core_functions/aggregate/holistic/approx_top_k.cpp" - -#include "src/core_functions/aggregate/holistic/quantile.cpp" - -#include "src/core_functions/aggregate/holistic/mad.cpp" - -#include "src/core_functions/aggregate/holistic/mode.cpp" - -#include "src/core_functions/aggregate/holistic/approximate_quantile.cpp" - -#include "src/core_functions/aggregate/holistic/reservoir_quantile.cpp" - diff --git a/src/duckdb/ub_src_core_functions_aggregate_nested.cpp b/src/duckdb/ub_src_core_functions_aggregate_nested.cpp deleted file mode 100644 index ecd5e3be..00000000 --- a/src/duckdb/ub_src_core_functions_aggregate_nested.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "src/core_functions/aggregate/nested/binned_histogram.cpp" - -#include "src/core_functions/aggregate/nested/list.cpp" - -#include "src/core_functions/aggregate/nested/histogram.cpp" - diff --git a/src/duckdb/ub_src_core_functions_aggregate_regression.cpp b/src/duckdb/ub_src_core_functions_aggregate_regression.cpp deleted file mode 100644 index 19053bcc..00000000 --- a/src/duckdb/ub_src_core_functions_aggregate_regression.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "src/core_functions/aggregate/regression/regr_avg.cpp" - -#include "src/core_functions/aggregate/regression/regr_count.cpp" - -#include "src/core_functions/aggregate/regression/regr_slope.cpp" - -#include "src/core_functions/aggregate/regression/regr_r2.cpp" - -#include "src/core_functions/aggregate/regression/regr_sxx_syy.cpp" - -#include "src/core_functions/aggregate/regression/regr_sxy.cpp" - -#include "src/core_functions/aggregate/regression/regr_intercept.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_array.cpp b/src/duckdb/ub_src_core_functions_scalar_array.cpp deleted file mode 100644 index 49ed0ec3..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_array.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include "src/core_functions/scalar/array/array_value.cpp" - -#include "src/core_functions/scalar/array/array_functions.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_bit.cpp b/src/duckdb/ub_src_core_functions_scalar_bit.cpp deleted file mode 100644 index c0db0828..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_bit.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "src/core_functions/scalar/bit/bitstring.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_blob.cpp b/src/duckdb/ub_src_core_functions_scalar_blob.cpp deleted file mode 100644 index d1ae2334..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_blob.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "src/core_functions/scalar/blob/base64.cpp" - -#include "src/core_functions/scalar/blob/create_sort_key.cpp" - -#include "src/core_functions/scalar/blob/encode.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_date.cpp b/src/duckdb/ub_src_core_functions_scalar_date.cpp deleted file mode 100644 index 49bb85bd..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_date.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "src/core_functions/scalar/date/age.cpp" - -#include "src/core_functions/scalar/date/current.cpp" - -#include "src/core_functions/scalar/date/epoch.cpp" - -#include "src/core_functions/scalar/date/date_diff.cpp" - -#include "src/core_functions/scalar/date/date_part.cpp" - -#include "src/core_functions/scalar/date/date_sub.cpp" - -#include "src/core_functions/scalar/date/date_trunc.cpp" - -#include "src/core_functions/scalar/date/make_date.cpp" - -#include "src/core_functions/scalar/date/strftime.cpp" - -#include "src/core_functions/scalar/date/time_bucket.cpp" - -#include "src/core_functions/scalar/date/to_interval.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_debug.cpp b/src/duckdb/ub_src_core_functions_scalar_debug.cpp deleted file mode 100644 index 7675ec52..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_debug.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "src/core_functions/scalar/debug/vector_type.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_enum.cpp b/src/duckdb/ub_src_core_functions_scalar_enum.cpp deleted file mode 100644 index e84741f5..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_enum.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "src/core_functions/scalar/enum/enum_functions.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_generic.cpp b/src/duckdb/ub_src_core_functions_scalar_generic.cpp deleted file mode 100644 index 7c80d7db..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_generic.cpp +++ /dev/null @@ -1,18 +0,0 @@ -#include "src/core_functions/scalar/generic/alias.cpp" - -#include "src/core_functions/scalar/generic/can_implicitly_cast.cpp" - -#include "src/core_functions/scalar/generic/current_setting.cpp" - -#include "src/core_functions/scalar/generic/error.cpp" - -#include "src/core_functions/scalar/generic/hash.cpp" - -#include "src/core_functions/scalar/generic/least.cpp" - -#include "src/core_functions/scalar/generic/stats.cpp" - -#include "src/core_functions/scalar/generic/typeof.cpp" - -#include "src/core_functions/scalar/generic/system_functions.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_list.cpp b/src/duckdb/ub_src_core_functions_scalar_list.cpp deleted file mode 100644 index 53a32589..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_list.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "src/core_functions/scalar/list/array_slice.cpp" - -#include "src/core_functions/scalar/list/flatten.cpp" - -#include "src/core_functions/scalar/list/list_aggregates.cpp" - -#include "src/core_functions/scalar/list/list_filter.cpp" - -#include "src/core_functions/scalar/list/list_has_any_or_all.cpp" - -#include "src/core_functions/scalar/list/list_sort.cpp" - -#include "src/core_functions/scalar/list/list_distance.cpp" - -#include "src/core_functions/scalar/list/list_reduce.cpp" - -#include "src/core_functions/scalar/list/list_transform.cpp" - -#include "src/core_functions/scalar/list/list_value.cpp" - -#include "src/core_functions/scalar/list/range.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_map.cpp b/src/duckdb/ub_src_core_functions_scalar_map.cpp deleted file mode 100644 index e8690715..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_map.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "src/core_functions/scalar/map/map.cpp" - -#include "src/core_functions/scalar/map/map_extract.cpp" - -#include "src/core_functions/scalar/map/map_from_entries.cpp" - -#include "src/core_functions/scalar/map/map_entries.cpp" - -#include "src/core_functions/scalar/map/map_concat.cpp" - -#include "src/core_functions/scalar/map/map_contains.cpp" - -#include "src/core_functions/scalar/map/map_keys_values.cpp" - -#include "src/core_functions/scalar/map/cardinality.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_math.cpp b/src/duckdb/ub_src_core_functions_scalar_math.cpp deleted file mode 100644 index d8fcaa8e..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_math.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "src/core_functions/scalar/math/numeric.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_operators.cpp b/src/duckdb/ub_src_core_functions_scalar_operators.cpp deleted file mode 100644 index edb917bc..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_operators.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "src/core_functions/scalar/operators/bitwise.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_random.cpp b/src/duckdb/ub_src_core_functions_scalar_random.cpp deleted file mode 100644 index 44b6ee63..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_random.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include "src/core_functions/scalar/random/random.cpp" - -#include "src/core_functions/scalar/random/setseed.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_string.cpp b/src/duckdb/ub_src_core_functions_scalar_string.cpp deleted file mode 100644 index 507f1e60..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_string.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "src/core_functions/scalar/string/ascii.cpp" - -#include "src/core_functions/scalar/string/bar.cpp" - -#include "src/core_functions/scalar/string/chr.cpp" - -#include "src/core_functions/scalar/string/damerau_levenshtein.cpp" - -#include "src/core_functions/scalar/string/format_bytes.cpp" - -#include "src/core_functions/scalar/string/hamming.cpp" - -#include "src/core_functions/scalar/string/hex.cpp" - -#include "src/core_functions/scalar/string/instr.cpp" - -#include "src/core_functions/scalar/string/jaccard.cpp" - -#include "src/core_functions/scalar/string/jaro_winkler.cpp" - -#include "src/core_functions/scalar/string/left_right.cpp" - -#include "src/core_functions/scalar/string/levenshtein.cpp" - -#include "src/core_functions/scalar/string/md5.cpp" - -#include "src/core_functions/scalar/string/pad.cpp" - -#include "src/core_functions/scalar/string/parse_path.cpp" - -#include "src/core_functions/scalar/string/printf.cpp" - -#include "src/core_functions/scalar/string/regexp_escape.cpp" - -#include "src/core_functions/scalar/string/repeat.cpp" - -#include "src/core_functions/scalar/string/replace.cpp" - -#include "src/core_functions/scalar/string/reverse.cpp" - -#include "src/core_functions/scalar/string/sha1.cpp" - -#include "src/core_functions/scalar/string/sha256.cpp" - -#include "src/core_functions/scalar/string/starts_with.cpp" - -#include "src/core_functions/scalar/string/string_split.cpp" - -#include "src/core_functions/scalar/string/to_base.cpp" - -#include "src/core_functions/scalar/string/translate.cpp" - -#include "src/core_functions/scalar/string/trim.cpp" - -#include "src/core_functions/scalar/string/unicode.cpp" - -#include "src/core_functions/scalar/string/url_encode.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_struct.cpp b/src/duckdb/ub_src_core_functions_scalar_struct.cpp deleted file mode 100644 index a58c0d38..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_struct.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include "src/core_functions/scalar/struct/struct_pack.cpp" - -#include "src/core_functions/scalar/struct/struct_insert.cpp" - diff --git a/src/duckdb/ub_src_core_functions_scalar_union.cpp b/src/duckdb/ub_src_core_functions_scalar_union.cpp deleted file mode 100644 index 41adab65..00000000 --- a/src/duckdb/ub_src_core_functions_scalar_union.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "src/core_functions/scalar/union/union_extract.cpp" - -#include "src/core_functions/scalar/union/union_tag.cpp" - -#include "src/core_functions/scalar/union/union_value.cpp" - diff --git a/src/duckdb/ub_src_execution.cpp b/src/duckdb/ub_src_execution.cpp index d845738b..85125d0d 100644 --- a/src/duckdb/ub_src_execution.cpp +++ b/src/duckdb/ub_src_execution.cpp @@ -22,7 +22,3 @@ #include "src/execution/reservoir_sample.cpp" -#include "src/execution/window_executor.cpp" - -#include "src/execution/window_segment_tree.cpp" - diff --git a/src/duckdb/ub_src_execution_index_art.cpp b/src/duckdb/ub_src_execution_index_art.cpp index 503c9e38..2f700eb0 100644 --- a/src/duckdb/ub_src_execution_index_art.cpp +++ b/src/duckdb/ub_src_execution_index_art.cpp @@ -20,3 +20,5 @@ #include "src/execution/index/art/art.cpp" +#include "src/execution/index/art/plan_art.cpp" + diff --git a/src/duckdb/ub_src_execution_operator_aggregate.cpp b/src/duckdb/ub_src_execution_operator_aggregate.cpp index d7ee3d50..f8555ee9 100644 --- a/src/duckdb/ub_src_execution_operator_aggregate.cpp +++ b/src/duckdb/ub_src_execution_operator_aggregate.cpp @@ -6,6 +6,8 @@ #include "src/execution/operator/aggregate/grouped_aggregate_data.cpp" +#include "src/execution/operator/aggregate/physical_partitioned_aggregate.cpp" + #include "src/execution/operator/aggregate/physical_perfecthash_aggregate.cpp" #include "src/execution/operator/aggregate/physical_ungrouped_aggregate.cpp" diff --git a/src/duckdb/ub_src_execution_operator_csv_scanner_encode.cpp b/src/duckdb/ub_src_execution_operator_csv_scanner_encode.cpp new file mode 100644 index 00000000..f1db7c41 --- /dev/null +++ b/src/duckdb/ub_src_execution_operator_csv_scanner_encode.cpp @@ -0,0 +1,2 @@ +#include "src/execution/operator/csv_scanner/encode/csv_encoder.cpp" + diff --git a/src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp b/src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp index 7deec5a7..5fd16fb6 100644 --- a/src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp +++ b/src/duckdb/ub_src_execution_operator_csv_scanner_util.cpp @@ -2,3 +2,5 @@ #include "src/execution/operator/csv_scanner/util/csv_reader_options.cpp" +#include "src/execution/operator/csv_scanner/util/csv_validator.cpp" + diff --git a/src/duckdb/ub_src_function.cpp b/src/duckdb/ub_src_function.cpp index 586fb8fa..06938e55 100644 --- a/src/duckdb/ub_src_function.cpp +++ b/src/duckdb/ub_src_function.cpp @@ -8,16 +8,22 @@ #include "src/function/copy_function.cpp" +#include "src/function/encoding_function.cpp" + #include "src/function/function.cpp" #include "src/function/function_binder.cpp" +#include "src/function/function_list.cpp" + #include "src/function/function_set.cpp" #include "src/function/pragma_function.cpp" #include "src/function/macro_function.cpp" +#include "src/function/register_function_list.cpp" + #include "src/function/scalar_macro_function.cpp" #include "src/function/table_macro_function.cpp" diff --git a/src/duckdb/ub_src_function_aggregate.cpp b/src/duckdb/ub_src_function_aggregate.cpp index 389a81ce..6bfe0ba8 100644 --- a/src/duckdb/ub_src_function_aggregate.cpp +++ b/src/duckdb/ub_src_function_aggregate.cpp @@ -1,4 +1,2 @@ -#include "src/function/aggregate/distributive_functions.cpp" - #include "src/function/aggregate/sorted_aggregate_function.cpp" diff --git a/src/duckdb/ub_src_function_aggregate_distributive.cpp b/src/duckdb/ub_src_function_aggregate_distributive.cpp index 00530419..92bcd6c5 100644 --- a/src/duckdb/ub_src_function_aggregate_distributive.cpp +++ b/src/duckdb/ub_src_function_aggregate_distributive.cpp @@ -1,4 +1,6 @@ #include "src/function/aggregate/distributive/count.cpp" -#include "src/function/aggregate/distributive/first.cpp" +#include "src/function/aggregate/distributive/first_last_any.cpp" + +#include "src/function/aggregate/distributive/minmax.cpp" diff --git a/src/duckdb/ub_src_function_scalar.cpp b/src/duckdb/ub_src_function_scalar.cpp index cb65cab2..a0da28dc 100644 --- a/src/duckdb/ub_src_function_scalar.cpp +++ b/src/duckdb/ub_src_function_scalar.cpp @@ -1,16 +1,10 @@ -#include "src/function/scalar/compressed_materialization_functions.cpp" +#include "src/function/scalar/compressed_materialization_utils.cpp" -#include "src/function/scalar/generic_functions.cpp" - -#include "src/function/scalar/string_functions.cpp" +#include "src/function/scalar/create_sort_key.cpp" #include "src/function/scalar/strftime_format.cpp" #include "src/function/scalar/nested_functions.cpp" -#include "src/function/scalar/operators.cpp" - #include "src/function/scalar/pragma_functions.cpp" -#include "src/function/scalar/sequence_functions.cpp" - diff --git a/src/duckdb/ub_src_function_scalar_date.cpp b/src/duckdb/ub_src_function_scalar_date.cpp new file mode 100644 index 00000000..81e2c26c --- /dev/null +++ b/src/duckdb/ub_src_function_scalar_date.cpp @@ -0,0 +1,2 @@ +#include "src/function/scalar/date/strftime.cpp" + diff --git a/src/duckdb/ub_src_function_scalar_generic.cpp b/src/duckdb/ub_src_function_scalar_generic.cpp index 842724af..926f394d 100644 --- a/src/duckdb/ub_src_function_scalar_generic.cpp +++ b/src/duckdb/ub_src_function_scalar_generic.cpp @@ -1,6 +1,6 @@ -#include "src/function/scalar/generic/binning.cpp" - #include "src/function/scalar/generic/constant_or_null.cpp" +#include "src/function/scalar/generic/error.cpp" + #include "src/function/scalar/generic/getvariable.cpp" diff --git a/src/duckdb/ub_src_function_scalar_map.cpp b/src/duckdb/ub_src_function_scalar_map.cpp new file mode 100644 index 00000000..0978d7e0 --- /dev/null +++ b/src/duckdb/ub_src_function_scalar_map.cpp @@ -0,0 +1,2 @@ +#include "src/function/scalar/map/map_contains.cpp" + diff --git a/src/duckdb/ub_src_function_scalar_operator.cpp b/src/duckdb/ub_src_function_scalar_operator.cpp new file mode 100644 index 00000000..f31f6591 --- /dev/null +++ b/src/duckdb/ub_src_function_scalar_operator.cpp @@ -0,0 +1,8 @@ +#include "src/function/scalar/operator/add.cpp" + +#include "src/function/scalar/operator/arithmetic.cpp" + +#include "src/function/scalar/operator/multiply.cpp" + +#include "src/function/scalar/operator/subtract.cpp" + diff --git a/src/duckdb/ub_src_function_scalar_operators.cpp b/src/duckdb/ub_src_function_scalar_operators.cpp deleted file mode 100644 index 8bd5e0bf..00000000 --- a/src/duckdb/ub_src_function_scalar_operators.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "src/function/scalar/operators/add.cpp" - -#include "src/function/scalar/operators/arithmetic.cpp" - -#include "src/function/scalar/operators/multiply.cpp" - -#include "src/function/scalar/operators/subtract.cpp" - diff --git a/src/duckdb/ub_src_function_scalar_string.cpp b/src/duckdb/ub_src_function_scalar_string.cpp index 9e62653c..c39a28ea 100644 --- a/src/duckdb/ub_src_function_scalar_string.cpp +++ b/src/duckdb/ub_src_function_scalar_string.cpp @@ -8,6 +8,8 @@ #include "src/function/scalar/string/like.cpp" +#include "src/function/scalar/string/md5.cpp" + #include "src/function/scalar/string/nfc_normalize.cpp" #include "src/function/scalar/string/regexp.cpp" @@ -16,8 +18,16 @@ #include "src/function/scalar/string/prefix.cpp" +#include "src/function/scalar/string/regexp_escape.cpp" + +#include "src/function/scalar/string/sha1.cpp" + +#include "src/function/scalar/string/sha256.cpp" + #include "src/function/scalar/string/strip_accents.cpp" +#include "src/function/scalar/string/string_split.cpp" + #include "src/function/scalar/string/suffix.cpp" #include "src/function/scalar/string/contains.cpp" diff --git a/src/duckdb/ub_src_function_scalar_struct.cpp b/src/duckdb/ub_src_function_scalar_struct.cpp index 2d3888e7..67f44766 100644 --- a/src/duckdb/ub_src_function_scalar_struct.cpp +++ b/src/duckdb/ub_src_function_scalar_struct.cpp @@ -1,2 +1,6 @@ #include "src/function/scalar/struct/struct_extract.cpp" +#include "src/function/scalar/struct/struct_pack.cpp" + +#include "src/function/scalar/struct/struct_concat.cpp" + diff --git a/src/duckdb/ub_src_function_window.cpp b/src/duckdb/ub_src_function_window.cpp new file mode 100644 index 00000000..3d74f068 --- /dev/null +++ b/src/duckdb/ub_src_function_window.cpp @@ -0,0 +1,32 @@ +#include "src/function/window/window_aggregate_function.cpp" + +#include "src/function/window/window_aggregate_states.cpp" + +#include "src/function/window/window_aggregator.cpp" + +#include "src/function/window/window_boundaries_state.cpp" + +#include "src/function/window/window_collection.cpp" + +#include "src/function/window/window_constant_aggregator.cpp" + +#include "src/function/window/window_custom_aggregator.cpp" + +#include "src/function/window/window_cumedist_function.cpp" + +#include "src/function/window/window_distinct_aggregator.cpp" + +#include "src/function/window/window_executor.cpp" + +#include "src/function/window/window_naive_aggregator.cpp" + +#include "src/function/window/window_rank_function.cpp" + +#include "src/function/window/window_rownumber_function.cpp" + +#include "src/function/window/window_segment_tree.cpp" + +#include "src/function/window/window_shared_expressions.cpp" + +#include "src/function/window/window_value_function.cpp" + diff --git a/src/duckdb/ub_src_main_settings.cpp b/src/duckdb/ub_src_main_settings.cpp index 77cb91e4..6dbcd419 100644 --- a/src/duckdb/ub_src_main_settings.cpp +++ b/src/duckdb/ub_src_main_settings.cpp @@ -1,2 +1,4 @@ -#include "src/main/settings/settings.cpp" +#include "src/main/settings/custom_settings.cpp" + +#include "src/main/settings/autogenerated_settings.cpp" diff --git a/src/duckdb/ub_src_optimizer.cpp b/src/duckdb/ub_src_optimizer.cpp index 5ef91f3d..26f4abe5 100644 --- a/src/duckdb/ub_src_optimizer.cpp +++ b/src/duckdb/ub_src_optimizer.cpp @@ -4,6 +4,8 @@ #include "src/optimizer/column_lifetime_analyzer.cpp" +#include "src/optimizer/empty_result_pullup.cpp" + #include "src/optimizer/common_aggregate_optimizer.cpp" #include "src/optimizer/compressed_materialization.cpp" @@ -44,3 +46,7 @@ #include "src/optimizer/unnest_rewriter.cpp" +#include "src/optimizer/sampling_pushdown.cpp" + +#include "src/optimizer/sum_rewriter.cpp" + diff --git a/src/duckdb/ub_src_optimizer_pushdown.cpp b/src/duckdb/ub_src_optimizer_pushdown.cpp index a96fc9d8..26f3d9c4 100644 --- a/src/duckdb/ub_src_optimizer_pushdown.cpp +++ b/src/duckdb/ub_src_optimizer_pushdown.cpp @@ -26,3 +26,5 @@ #include "src/optimizer/pushdown/pushdown_window.cpp" +#include "src/optimizer/pushdown/pushdown_unnest.cpp" + diff --git a/src/duckdb/ub_src_optimizer_rule.cpp b/src/duckdb/ub_src_optimizer_rule.cpp index 882887e6..ee39a886 100644 --- a/src/duckdb/ub_src_optimizer_rule.cpp +++ b/src/duckdb/ub_src_optimizer_rule.cpp @@ -10,6 +10,8 @@ #include "src/optimizer/rule/date_part_simplification.cpp" +#include "src/optimizer/rule/distinct_aggregate_optimizer.cpp" + #include "src/optimizer/rule/distributivity.cpp" #include "src/optimizer/rule/empty_needle_removal.cpp" diff --git a/src/duckdb/ub_src_parser.cpp b/src/duckdb/ub_src_parser.cpp index efcbb825..39c2c836 100644 --- a/src/duckdb/ub_src_parser.cpp +++ b/src/duckdb/ub_src_parser.cpp @@ -16,6 +16,8 @@ #include "src/parser/parser.cpp" +#include "src/parser/qualified_name.cpp" + #include "src/parser/query_error_context.cpp" #include "src/parser/query_node.cpp" diff --git a/src/duckdb/ub_src_parser_parsed_data.cpp b/src/duckdb/ub_src_parser_parsed_data.cpp index 47459ee1..b5bc6591 100644 --- a/src/duckdb/ub_src_parser_parsed_data.cpp +++ b/src/duckdb/ub_src_parser_parsed_data.cpp @@ -14,6 +14,8 @@ #include "src/parser/parsed_data/create_info.cpp" +#include "src/parser/parsed_data/create_function_info.cpp" + #include "src/parser/parsed_data/create_index_info.cpp" #include "src/parser/parsed_data/create_aggregate_function_info.cpp" @@ -46,6 +48,8 @@ #include "src/parser/parsed_data/drop_info.cpp" +#include "src/parser/parsed_data/exported_table_data.cpp" + #include "src/parser/parsed_data/extra_drop_info.cpp" #include "src/parser/parsed_data/load_info.cpp" diff --git a/src/duckdb/ub_src_planner.cpp b/src/duckdb/ub_src_planner.cpp index a02a3742..450ea623 100644 --- a/src/duckdb/ub_src_planner.cpp +++ b/src/duckdb/ub_src_planner.cpp @@ -1,3 +1,5 @@ +#include "src/planner/binding_alias.cpp" + #include "src/planner/bound_result_modifier.cpp" #include "src/planner/bound_parameter_map.cpp" diff --git a/src/duckdb/ub_src_planner_filter.cpp b/src/duckdb/ub_src_planner_filter.cpp index 057a0771..a7f44ee8 100644 --- a/src/duckdb/ub_src_planner_filter.cpp +++ b/src/duckdb/ub_src_planner_filter.cpp @@ -2,7 +2,13 @@ #include "src/planner/filter/constant_filter.cpp" +#include "src/planner/filter/dynamic_filter.cpp" + +#include "src/planner/filter/in_filter.cpp" + #include "src/planner/filter/null_filter.cpp" #include "src/planner/filter/struct_filter.cpp" +#include "src/planner/filter/optional_filter.cpp" + diff --git a/src/duckdb/ub_src_planner_operator.cpp b/src/duckdb/ub_src_planner_operator.cpp index 0ec5e67d..88b3bc63 100644 --- a/src/duckdb/ub_src_planner_operator.cpp +++ b/src/duckdb/ub_src_planner_operator.cpp @@ -32,6 +32,8 @@ #include "src/planner/operator/logical_empty_result.cpp" +#include "src/planner/operator/logical_export.cpp" + #include "src/planner/operator/logical_expression_get.cpp" #include "src/planner/operator/logical_extension_operator.cpp" diff --git a/src/duckdb/ub_src_storage_compression.cpp b/src/duckdb/ub_src_storage_compression.cpp index ded26082..66e0303b 100644 --- a/src/duckdb/ub_src_storage_compression.cpp +++ b/src/duckdb/ub_src_storage_compression.cpp @@ -18,6 +18,8 @@ #include "src/storage/compression/patas.cpp" +#include "src/storage/compression/zstd.cpp" + #include "src/storage/compression/alprd.cpp" #include "src/storage/compression/fsst.cpp" diff --git a/src/duckdb/ub_src_storage_compression_roaring.cpp b/src/duckdb/ub_src_storage_compression_roaring.cpp new file mode 100644 index 00000000..cef83799 --- /dev/null +++ b/src/duckdb/ub_src_storage_compression_roaring.cpp @@ -0,0 +1,10 @@ +#include "src/storage/compression/roaring/common.cpp" + +#include "src/storage/compression/roaring/metadata.cpp" + +#include "src/storage/compression/roaring/analyze.cpp" + +#include "src/storage/compression/roaring/compress.cpp" + +#include "src/storage/compression/roaring/scan.cpp" + diff --git a/src/duckdb/ub_src_transaction.cpp b/src/duckdb/ub_src_transaction.cpp index f1f43375..c2b15db5 100644 --- a/src/duckdb/ub_src_transaction.cpp +++ b/src/duckdb/ub_src_transaction.cpp @@ -4,6 +4,8 @@ #include "src/transaction/meta_transaction.cpp" +#include "src/transaction/undo_buffer_allocator.cpp" + #include "src/transaction/undo_buffer.cpp" #include "src/transaction/transaction_context.cpp" diff --git a/src/jni/duckdb_java.cpp b/src/jni/duckdb_java.cpp index 7b3560f0..46022096 100644 --- a/src/jni/duckdb_java.cpp +++ b/src/jni/duckdb_java.cpp @@ -612,7 +612,7 @@ Value ToValue(JNIEnv *env, jobject param, duckdb::shared_ptr cont } else if (env->IsInstanceOf(param, J_Long)) { return (Value::BIGINT(env->CallLongMethod(param, J_Long_longValue))); } else if (env->IsInstanceOf(param, J_TimestampTZ)) { // Check for subclass before superclass! - return (Value::TIMESTAMPTZ((timestamp_t)env->CallLongMethod(param, J_TimestampTZ_getMicrosEpoch))); + return (Value::TIMESTAMPTZ((timestamp_tz_t)env->CallLongMethod(param, J_TimestampTZ_getMicrosEpoch))); } else if (env->IsInstanceOf(param, J_DuckDBDate)) { return (Value::DATE((date_t)env->CallLongMethod(param, J_DuckDBDate_getDaysSinceEpoch))); @@ -1003,15 +1003,20 @@ jobject ProcessVector(JNIEnv *env, Connection *conn_ref, Vector &vec, idx_t row_ break; } case LogicalTypeId::BLOB: - varlen_data = env->NewObjectArray(row_count, J_ByteBuffer, nullptr); + varlen_data = env->NewObjectArray(row_count, J_ByteArray, nullptr); for (idx_t row_idx = 0; row_idx < row_count; row_idx++) { if (FlatVector::IsNull(vec, row_idx)) { continue; } auto &d_str = ((string_t *)FlatVector::GetData(vec))[row_idx]; - auto j_obj = env->NewDirectByteBuffer((void *)d_str.GetData(), d_str.GetSize()); - env->SetObjectArrayElement(varlen_data, row_idx, j_obj); + + auto j_arr = env->NewByteArray(d_str.GetSize()); + auto j_arr_el = env->GetByteArrayElements(j_arr, nullptr); + memcpy((void *)j_arr_el, (void *)d_str.GetData(), d_str.GetSize()); + env->ReleaseByteArrayElements(j_arr, j_arr_el, 0); + + env->SetObjectArrayElement(varlen_data, row_idx, j_arr); } break; case LogicalTypeId::UUID: diff --git a/src/main/java/org/duckdb/DuckDBDatabaseMetaData.java b/src/main/java/org/duckdb/DuckDBDatabaseMetaData.java index 7074b0ca..2a6f8f5e 100644 --- a/src/main/java/org/duckdb/DuckDBDatabaseMetaData.java +++ b/src/main/java/org/duckdb/DuckDBDatabaseMetaData.java @@ -243,7 +243,7 @@ public String getTimeDateFunctions() throws SQLException { @Override public String getSearchStringEscape() throws SQLException { - return null; + return "\\"; } @Override @@ -719,7 +719,7 @@ public ResultSet getSchemas(String catalog, String schemaPattern) throws SQLExce if (schemaPattern.isEmpty()) { sb.append("schema_name IS NULL"); } else { - sb.append("schema_name LIKE ?"); + sb.append("schema_name LIKE ? ESCAPE '\\'"); } sb.append(lineSeparator()); } @@ -784,7 +784,7 @@ public ResultSet getTables(String catalog, String schemaPattern, String tableNam // non-standard behavior. tableNamePattern = "%"; } - str.append("WHERE table_name LIKE ?").append(lineSeparator()); + str.append("WHERE table_name LIKE ? ESCAPE '\\'").append(lineSeparator()); // catalog - a catalog name; must match the catalog name as it is stored in // the database; @@ -811,7 +811,7 @@ public ResultSet getTables(String catalog, String schemaPattern, String tableNam if (schemaPattern.isEmpty()) { str.append("IS NULL").append(lineSeparator()); } else { - str.append("LIKE ?").append(lineSeparator()); + str.append("LIKE ? ESCAPE '\\'").append(lineSeparator()); hasSchemaParam = true; } } @@ -878,8 +878,8 @@ public ResultSet getColumns(String catalogPattern, String schemaPattern, String + "column_name as 'COLUMN_NAME', " + makeDataMap("regexp_replace(c.data_type, '\\(.*\\)', '')", "DATA_TYPE") + ", " + "c.data_type AS 'TYPE_NAME', " - + "NULL AS 'COLUMN_SIZE', NULL AS 'BUFFER_LENGTH', " - + "numeric_precision AS 'DECIMAL_DIGITS', " + + "numeric_precision AS 'COLUMN_SIZE', NULL AS 'BUFFER_LENGTH', " + + "numeric_scale AS 'DECIMAL_DIGITS', " + "10 AS 'NUM_PREC_RADIX', " + "CASE WHEN is_nullable = 'YES' THEN 1 else 0 END AS 'NULLABLE', " + "COLUMN_COMMENT as 'REMARKS', " @@ -896,10 +896,10 @@ public ResultSet getColumns(String catalogPattern, String schemaPattern, String + "'' AS 'IS_AUTOINCREMENT', " + "'' AS 'IS_GENERATEDCOLUMN' " + "FROM information_schema.columns c " - + "WHERE table_catalog LIKE ? AND " - + "table_schema LIKE ? AND " - + "table_name LIKE ? AND " - + "column_name LIKE ? " + + "WHERE table_catalog LIKE ? ESCAPE '\\' AND " + + "table_schema LIKE ? ESCAPE '\\' AND " + + "table_name LIKE ? ESCAPE '\\' AND " + + "column_name LIKE ? ESCAPE '\\' " + "ORDER BY \"TABLE_CAT\",\"TABLE_SCHEM\", \"TABLE_NAME\", \"ORDINAL_POSITION\""); ps.setString(1, catalogPattern); ps.setString(2, schemaPattern); diff --git a/src/main/java/org/duckdb/DuckDBPreparedStatement.java b/src/main/java/org/duckdb/DuckDBPreparedStatement.java index 3227e2ee..1b078f03 100644 --- a/src/main/java/org/duckdb/DuckDBPreparedStatement.java +++ b/src/main/java/org/duckdb/DuckDBPreparedStatement.java @@ -124,6 +124,10 @@ private void prepare(String sql) throws SQLException { @Override public boolean execute() throws SQLException { + return execute(true); + } + + private boolean execute(boolean startTransaction) throws SQLException { if (isClosed()) { throw new SQLException("Statement was closed"); } @@ -138,7 +142,9 @@ public boolean execute() throws SQLException { select_result = null; try { - startTransaction(); + if (startTransaction) { + startTransaction(); + } result_ref = DuckDBNative.duckdb_jdbc_execute(stmt_ref, params); DuckDBResultSetMetaData result_meta = DuckDBNative.duckdb_jdbc_query_result_meta(result_ref); select_result = new DuckDBResultSet(this, result_meta, result_ref, conn.conn_ref); @@ -476,9 +482,11 @@ public int[] executeBatch() throws SQLException { private int[] executeBatchedPreparedStatement() throws SQLException { int[] updateCounts = new int[this.batchedParams.size()]; + + startTransaction(); for (int i = 0; i < this.batchedParams.size(); i++) { params = this.batchedParams.get(i); - execute(); + execute(false); updateCounts[i] = getUpdateCount(); } return updateCounts; @@ -486,9 +494,11 @@ private int[] executeBatchedPreparedStatement() throws SQLException { private int[] executeBatchedStatements() throws SQLException { int[] updateCounts = new int[this.batchedStatements.size()]; + + startTransaction(); for (int i = 0; i < this.batchedStatements.size(); i++) { prepare(this.batchedStatements.get(i)); - execute(); + execute(false); updateCounts[i] = getUpdateCount(); } return updateCounts; diff --git a/src/main/java/org/duckdb/DuckDBTimestamp.java b/src/main/java/org/duckdb/DuckDBTimestamp.java index f3a72028..3afbae8a 100644 --- a/src/main/java/org/duckdb/DuckDBTimestamp.java +++ b/src/main/java/org/duckdb/DuckDBTimestamp.java @@ -4,6 +4,7 @@ import java.sql.Time; import java.sql.Timestamp; import java.time.Instant; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.OffsetDateTime; @@ -108,6 +109,8 @@ public static Object valueOf(Object x) { x = new DuckDBTimestamp((Timestamp) x); } else if (x instanceof LocalDateTime) { x = new DuckDBTimestamp((LocalDateTime) x); + } else if (x instanceof LocalDate) { + x = new DuckDBDate(Date.valueOf((LocalDate) x)); } else if (x instanceof OffsetDateTime) { x = new DuckDBTimestampTZ((OffsetDateTime) x); } else if (x instanceof Date) { diff --git a/src/main/java/org/duckdb/DuckDBVector.java b/src/main/java/org/duckdb/DuckDBVector.java index fe62174c..d6d3c240 100644 --- a/src/main/java/org/duckdb/DuckDBVector.java +++ b/src/main/java/org/duckdb/DuckDBVector.java @@ -278,7 +278,7 @@ Blob getBlob(int idx) throws SQLException { return null; } if (isType(DuckDBColumnType.BLOB)) { - return new DuckDBResultSet.DuckDBBlobResult((ByteBuffer) varlen_data[idx]); + return new DuckDBResultSet.DuckDBBlobResult(ByteBuffer.wrap((byte[]) varlen_data[idx])); } throw new SQLFeatureNotSupportedException("getBlob"); @@ -290,11 +290,7 @@ byte[] getBytes(int idx) throws SQLException { } if (isType(DuckDBColumnType.BLOB)) { - ByteBuffer bb = (ByteBuffer) varlen_data[idx]; - bb.position(0); - byte[] bytes = new byte[bb.remaining()]; - bb.get(bytes); - return bytes; + return (byte[]) varlen_data[idx]; } throw new SQLFeatureNotSupportedException("getBytes"); diff --git a/src/test/java/org/duckdb/TestDuckDBJDBC.java b/src/test/java/org/duckdb/TestDuckDBJDBC.java index 362cd409..6f8ea985 100644 --- a/src/test/java/org/duckdb/TestDuckDBJDBC.java +++ b/src/test/java/org/duckdb/TestDuckDBJDBC.java @@ -920,6 +920,9 @@ public static void test_duckdb_localdate() throws Exception { PreparedStatement ps1 = conn.prepareStatement("INSERT INTO x VALUES (?)"); ps1.setObject(1, date); ps1.execute(); + + ps1.setObject(1, ld); + ps1.execute(); ps1.close(); PreparedStatement ps2 = conn.prepareStatement("SELECT * FROM x"); @@ -930,6 +933,11 @@ public static void test_duckdb_localdate() throws Exception { assertEquals(rs2.getObject(1, LocalDate.class), ld); assertEquals(rs2.getObject("dt", LocalDate.class), ld); + rs2.next(); + assertEquals(rs2.getDate(1), rs2.getObject(1, Date.class)); + assertEquals(rs2.getObject(1, LocalDate.class), ld); + assertEquals(rs2.getObject("dt", LocalDate.class), ld); + rs2.close(); ps2.close(); stmt.close(); @@ -1773,6 +1781,29 @@ public static void test_decimal() throws Exception { stmt.close(); conn.close(); } + public static void test_wildcard_reflection() throws Exception { + Connection conn = DriverManager.getConnection(JDBC_URL); + Statement stmt = conn.createStatement(); + stmt.execute("CREATE TABLE _a (_i INTEGER, xi INTEGER)"); + stmt.execute("CREATE TABLE xa (i INTEGER)"); + + DatabaseMetaData md = conn.getMetaData(); + ResultSet rs; + rs = md.getTables(null, null, "\\_a", null); + assertTrue(rs.next()); + assertEquals(rs.getString("TABLE_NAME"), "_a"); + assertFalse(rs.next()); + rs.close(); + + rs = md.getColumns(null, DuckDBConnection.DEFAULT_SCHEMA, "\\_a", "\\_i"); + assertTrue(rs.next()); + assertEquals(rs.getString("TABLE_NAME"), "_a"); + assertEquals(rs.getString("COLUMN_NAME"), "_i"); + assertFalse(rs.next()); + + rs.close(); + conn.close(); + } public static void test_schema_reflection() throws Exception { Connection conn = DriverManager.getConnection(JDBC_URL); @@ -1893,8 +1924,8 @@ public static void test_schema_reflection() throws Exception { assertEquals(rs.getInt(5), Types.INTEGER); assertEquals(rs.getString("TYPE_NAME"), "INTEGER"); assertEquals(rs.getString(6), "INTEGER"); - assertNull(rs.getObject("COLUMN_SIZE")); - assertNull(rs.getObject(7)); + assertEquals(rs.getInt("COLUMN_SIZE"), 32); // this should 10 for INTEGER + assertEquals(rs.getInt(7), 32); assertNull(rs.getObject("BUFFER_LENGTH")); assertNull(rs.getObject(8)); @@ -1916,8 +1947,8 @@ public static void test_schema_reflection() throws Exception { assertEquals(rs.getInt(5), Types.INTEGER); assertEquals(rs.getString("TYPE_NAME"), "INTEGER"); assertEquals(rs.getString(6), "INTEGER"); - assertNull(rs.getObject("COLUMN_SIZE")); - assertNull(rs.getObject(7)); + assertEquals(rs.getInt("COLUMN_SIZE"), 32); + assertEquals(rs.getInt(7), 32); assertNull(rs.getObject("BUFFER_LENGTH")); assertNull(rs.getObject(8)); assertEquals(rs.getString("REMARKS"), "a column"); @@ -1938,8 +1969,8 @@ public static void test_schema_reflection() throws Exception { assertEquals(rs.getInt(5), Types.INTEGER); assertEquals(rs.getString("TYPE_NAME"), "INTEGER"); assertEquals(rs.getString(6), "INTEGER"); - assertNull(rs.getObject("COLUMN_SIZE")); - assertNull(rs.getObject(7)); + assertEquals(rs.getInt("COLUMN_SIZE"), 32); + assertEquals(rs.getInt(7), 32); assertNull(rs.getObject("BUFFER_LENGTH")); assertNull(rs.getObject(8)); @@ -1960,6 +1991,48 @@ public static void test_schema_reflection() throws Exception { conn.close(); } + public static void test_column_reflection() throws Exception { + Connection conn = DriverManager.getConnection(JDBC_URL); + Statement stmt = conn.createStatement(); + stmt.execute("CREATE TABLE a (a DECIMAL(20,5), b CHAR(10), c VARCHAR(30), d LONG)"); + + DatabaseMetaData md = conn.getMetaData(); + ResultSet rs; + rs = md.getColumns(null, null, "a", null); + assertTrue(rs.next()); + assertEquals(rs.getString("TABLE_NAME"), "a"); + assertEquals(rs.getString("COLUMN_NAME"), "a"); + assertEquals(rs.getInt("DATA_TYPE"), Types.DECIMAL); + assertEquals(rs.getString("TYPE_NAME"), "DECIMAL(20,5)"); + assertEquals(rs.getString(6), "DECIMAL(20,5)"); + assertEquals(rs.getInt("COLUMN_SIZE"), 20); + assertEquals(rs.getInt("DECIMAL_DIGITS"), 5); + + assertTrue(rs.next()); + assertEquals(rs.getString("COLUMN_NAME"), "b"); + assertEquals(rs.getInt("DATA_TYPE"), Types.VARCHAR); + assertEquals(rs.getString("TYPE_NAME"), "VARCHAR"); + assertNull(rs.getObject("COLUMN_SIZE")); + assertNull(rs.getObject("DECIMAL_DIGITS")); + + assertTrue(rs.next()); + assertEquals(rs.getString("COLUMN_NAME"), "c"); + assertEquals(rs.getInt("DATA_TYPE"), Types.VARCHAR); + assertEquals(rs.getString("TYPE_NAME"), "VARCHAR"); + assertNull(rs.getObject("COLUMN_SIZE")); + assertNull(rs.getObject("DECIMAL_DIGITS")); + + assertTrue(rs.next()); + assertEquals(rs.getString("COLUMN_NAME"), "d"); + assertEquals(rs.getInt("DATA_TYPE"), Types.BIGINT); + assertEquals(rs.getString("TYPE_NAME"), "BIGINT"); + assertEquals(rs.getInt("COLUMN_SIZE"), 64); // should be 19 + assertEquals(rs.getInt("DECIMAL_DIGITS"), 0); + + rs.close(); + conn.close(); + } + public static void test_time_tz() throws Exception { try (Connection conn = DriverManager.getConnection(JDBC_URL); Statement s = conn.createStatement()) { s.execute("set timezone = 'UTC'"); @@ -3083,7 +3156,7 @@ public static void test_describe() throws Exception { assertEquals(rs.getString("column_type"), "INTEGER"); assertEquals(rs.getString("null"), "YES"); assertNull(rs.getString("key")); - assertNull(rs.getString("default")); + assertEquals(rs.getString("default"), "42"); assertNull(rs.getString("extra")); } } @@ -4558,6 +4631,20 @@ public static void test_metadata_get_index_info() throws Exception { } } + public static void test_blob_after_rs_next() throws Exception { + try (Connection conn = DriverManager.getConnection(JDBC_URL)) { + try (Statement stmt = conn.createStatement()) { + try (ResultSet rs = stmt.executeQuery("SELECT 'AAAA'::BLOB;")) { + Blob blob = null; + while (rs.next()) { + blob = rs.getBlob(1); + } + assertEquals(blob_to_string(blob), "AAAA"); + } + } + } + } + public static void main(String[] args) throws Exception { System.exit(runTests(args, TestDuckDBJDBC.class, TestExtensionTypes.class)); } diff --git a/vendor.py b/vendor.py index b0cf53b0..c34a52e0 100644 --- a/vendor.py +++ b/vendor.py @@ -15,7 +15,7 @@ # list of extensions to bundle -extensions = ['parquet', 'icu', 'json'] +extensions = ['core_functions', 'parquet', 'icu', 'json'] # path to target basedir = os.getcwd()